diff -Nrcpad gcc-13.2.0/.github/CONTRIBUTING.md gcc-14.1.0/.github/CONTRIBUTING.md
*** gcc-13.2.0/.github/CONTRIBUTING.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/.github/CONTRIBUTING.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,24 ----
+ ## Contributing to GCC
+ 
+ Thanks for taking the time to contribute to GCC! Please be advised that if you are
+ viewing this on `github.com`, that the mirror there is unofficial and unmonitored.
+ The GCC community does not use `github.com` for their contributions. Instead, we use
+ a mailing list (`gcc-patches@gcc.gnu.org`) for code submissions, code
+ reviews, and bug reports.
+ 
+ Perhaps one day it will be possible to use [GitGitGadget](https://gitgitgadget.github.io/)
+ to conveniently send Pull Requests commits to GCC's mailing list, the way that the Git
+ project currently allows it to be used to send PRs to their mailing list, but until that
+ day arrives, please send your patches to the mailing list manually.
+ 
+ Please read ["Contributing to GCC"](https://gcc.gnu.org/contribute.html) on the main GCC
+ website to learn how the GCC project is managed, and how you can work with it.
+ In addition, we highly recommend you to read
+ [our guidelines for read-write Git access](https://gcc.gnu.org/gitwrite.html).
+ 
+ Or, you can follow the
+ ["Contributing to GCC in 10 easy steps"](https://gcc.gnu.org/wiki/GettingStarted#Basics:_Contributing_to_GCC_in_10_easy_steps)
+ section of the ["Getting Started" page](https://gcc.gnu.org/wiki/GettingStarted) on
+ [the wiki](https://gcc.gnu.org/wiki) for another example of the contribution process.
+ 
+ Your friendly GCC community!
diff -Nrcpad gcc-13.2.0/.github/PULL_REQUEST_TEMPLATE.md gcc-14.1.0/.github/PULL_REQUEST_TEMPLATE.md
*** gcc-13.2.0/.github/PULL_REQUEST_TEMPLATE.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/.github/PULL_REQUEST_TEMPLATE.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,5 ----
+ Thanks for taking the time to contribute to GCC! Please be advised that if you are
+ viewing this on `github.com`, that the mirror there is unofficial and unmonitored.
+ The GCC community does not use `github.com` for their contributions. Instead, we use
+ a mailing list (`gcc-patches@gcc.gnu.org`) for code submissions, code reviews, and
+ bug reports. Please send patches there instead.
diff -Nrcpad gcc-13.2.0/.gitignore gcc-14.1.0/.gitignore
*** gcc-13.2.0/.gitignore	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/.gitignore	Tue May  7 06:51:37 2024
*************** stamp-*
*** 69,71 ****
--- 69,72 ----
  /mpc*
  /gmp*
  /isl*
+ /gettext*
diff -Nrcpad gcc-13.2.0/ChangeLog gcc-14.1.0/ChangeLog
*** gcc-13.2.0/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/ChangeLog	Tue May  7 06:52:34 2024
***************
*** 1,17 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
! 2023-04-18  Jakub Jelinek  <jakub@redhat.com>
  
- 	* configure.ac: For --enable-languages= mentioning explicitly
- 	rust emit an error, if included in all etc., silently disable
- 	rust.
  	* configure: Regenerated.
  
  2023-04-06  Indu Bhagat  <indu.bhagat@oracle.com>
  
--- 1,582 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* configure.ac (have_cargo): Force to "no" in Canadian cross
! 	configurations
! 	* configure: Regenerate.
  
! 2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* configure: Regenerate.
! 
! 2024-04-15  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Emit an error message when cargo
! 	is missing.
! 
! 2024-04-04  Paul-Antoine Arras  <parras@baylibre.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2024-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
! 
! 	* MAINTAINERS: Update my email details, remove myself as arm
! 	maintainer.  Add myself to DCO section.
! 
! 2024-04-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR bootstrap/106472
! 	* Makefile.tpl (make-postboot-target-dep): New lambda.
! 	Use it to add --enable-bootstrap dependencies of target modules
! 	on other target modules if the latter aren't bootstrapped.
! 	* Makefile.in: Regenerate.
! 
! 2024-04-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* Makefile.tpl: Fix duplicated words; returns returns ->
! 	returns.
! 
! 2024-03-08  Filip Kastl  <fkastl@suse.cz>
! 
! 	* MAINTAINERS: Fix order of names in Write After Aproval
! 
! 2024-03-04  demin.han  <demin.han@starfivetech.com>
! 
! 	* MAINTAINERS: Add myself
! 
! 2024-02-28  Fangrui Song  <maskray@gcc.gnu.org>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2024-02-26  Juergen Christ  <jchrist@linux.ibm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval and DCO.
! 
! 2024-02-23  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* configure.ac (ENABLE_GOLD): Remove loongarch*-*-* from target
! 	list.
! 	* configure: Regenerate.
! 
! 2024-02-23  Monk Chiang  <monk.chiang@sifive.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2024-02-10  Alexander Westbrooks  <alexanderw@gcc.gnu.org>
! 
! 	* MAINTAINERS: Add myself to write after approval and DCO.
! 
! 2024-02-03  Maciej W. Rozycki  <macro@orcam.me.uk>
! 
! 	* MAINTAINERS: Update my e-mail address.
! 
! 2024-02-02  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* MAINTAINERS: Update my e-mail address.
! 
! 2024-01-29  Kwok Cheung Yeung  <kcy@codesourcery.com>
! 
! 	* MAINTAINERS: Update my work email address.
! 
! 2024-01-25  Chung-Lin Tang  <cltang@baylibre.com>
! 
! 	* MAINTAINERS: Update my work email address.
! 
! 2024-01-24  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* MAINTAINERS: Update my work email address.
! 
! 2024-01-23  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2024-01-23  Andrew Stubbs  <ams@baylibre.com>
! 
! 	* MAINTAINERS: Update
! 
! 2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 
! 	* Makefile.def: Add a dependency to libgrust for all-gcc.
! 	* Makefile.in: Regenerate the file.
! 
! 2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 
! 	* Makefile.def: Add libgrust target to bootstrap.
! 	* Makefile.in: Regenerate.
! 
! 2024-01-15  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	* MAINTAINERS (DCO): Add myself.
! 
! 2024-01-09  Siddhesh Poyarekar  <siddhesh@gotplt.org>
! 
! 	* SECURITY.txt: Drop "exploitable" in the hardening section.
! 
! 2024-01-09  Tom Tromey  <tom@tromey.com>
! 
! 	* Makefile.in: Rebuild.
! 	* Makefile.tpl (BASE_EXPORTS): Add GUILE.
! 	(GUILE): New variable.
! 	* Makefile.def (flags_to_pass): Add GUILE.
! 
! 2024-01-08  Joseph Myers  <josmyers@redhat.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2023-12-30  Joseph Myers  <jsm@polyomino.org.uk>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2023-12-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 	    Thomas Schwinge  <thomas@codesourcery.com>
! 
! 	* Makefile.def: Add libgrust as host & target module.
! 	* configure.ac: Add libgrust to host tools list. Add libgrust to
! 	noconfigdirs if we're not building target libstdc++.
! 	* Makefile.in: Regenerate.
! 	* configure: Regenerate.
! 
! 2023-12-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 	    Arthur Cohen  <arthur.cohen@embecosm.com>
! 
! 	* MAINTAINERS: Add maintainers for libgrust.
! 
! 2023-12-13  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* Makefile.def (gettext): Disable (via missing)
! 	{install-,}{pdf,html,info,dvi} and TAGS targets.  Set no_install
! 	to true.  Add --disable-threads --disable-libasprintf.  Drop the
! 	lib_path (as there are no shared libs).
! 	* Makefile.in: Regenerate.
! 
! 2023-12-12  Paul Iannetta  <piannetta@kalrayinc.com>
! 
! 	* MAINTAINERS: Add myself to write after approval
! 
! 2023-12-12  Feng Wang  <wangfeng@eswincomputing.com>
! 
! 	* MAINTAINERS: Update my email address
! 
! 2023-12-12  Feng Wang  <wangfeng@eswincomputing.com>
! 
! 	* MAINTAINERS: Add myself to write after approval
! 
! 2023-11-23  Nathaniel Shead  <nathanieloshead@gmail.com>
! 
! 	* MAINTAINERS: Add myself to write after approval and DCO
! 
! 2023-11-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* libtool.m4: Fix stray call
! 
! 2023-11-19  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	* Makefile.in: Regenerate.
! 	* Makefile.tpl: Add dependency on site.exp to check-gcc-* targets
! 
! 2023-11-18  Petter Tomner  <tomner@bahnhof.se>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2023-11-18  Frederik Harwath  <frederik@harwath.name>
! 
! 	* MAINTAINERS: Change my address.
! 
! 2023-11-16  Michal Jires  <mjires@suse.cz>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2023-11-13  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	PR bootstrap/12596
! 	* .gitignore: Add '/gettext*'.
! 	* configure.ac (host_libs): Replace intl with gettext.
! 	(hbaseargs, bbaseargs, baseargs): Split baseargs into
! 	{h,b}baseargs.
! 	(skip_barg): New flag.  Skips appending current flag to
! 	bbaseargs.
! 	<library exemptions>: Exempt --with-libintl-{type,prefix} from
! 	target and build machine argument passing.
! 	* configure: Regenerate.
! 	* Makefile.def (host_modules): Replace intl module with gettext
! 	module.
! 	(configure-ld): Depend on configure-gettext.
! 	* Makefile.in: Regenerate.
! 
! 2023-11-13  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* intl/*: Remove.
! 
! 2023-11-09  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2023-11-09  YunQiang Su  <yunqiang.su@cipunited.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2023-11-06  Carl Love  <cel@linux.ibm.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2023-11-01  Eric Gallager  <egallager@gcc.gnu.org>
! 
! 	* .github/CONTRIBUTING.md: Wrap lines more tightly.
! 
! 2023-11-01  Eric Gallager  <egallager@gcc.gnu.org>
! 
! 	* .github/CONTRIBUTING.md: New file.
! 	* .github/PULL_REQUEST_TEMPLATE.md: New file.
! 
! 2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Do not add default runpaths to GCC exes
! 	when we are building -static-libstdc++/-static-libgcc (the
! 	default).
! 	* libtool.m4: Add 'enable-darwin-at-runpath'.  Act  on the
! 	enable flag to alter Darwin libraries to use @rpath names.
! 
! 2023-10-15  Mike Frysinger  <vapier@gentoo.org>
! 
! 	* Makefile.def: Add distclean-sim dependency on distclean-gnulib.
! 	* Makefile.in: Regenerate.
! 
! 2023-10-11  Filip Kastl  <fkastl@suse.cz>
! 
! 	* MAINTAINERS: Fix name order.
! 
! 2023-10-10  Christoph Müllner  <christoph.muellner@vrull.eu>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2023-10-06  Sergei Trofimovich  <siarheit@google.com>
! 
! 	PR bootstrap/111663
! 	* Makefile.tpl (STAGEfeedback_CONFIGURE_FLAGS): Disable -Werror.
! 	* Makefile.in: Regenerate.
! 
! 2023-10-05  Jan Engelhardt  <jengelh@inai.de>
! 
! 	* SECURITY.txt: Fix up indentation.
! 
! 2023-10-05  Jan Engelhardt  <jengelh@inai.de>
! 
! 	* SECURITY.txt: Fix up commas.
! 
! 2023-10-04  Siddhesh Poyarekar  <siddhesh@gotplt.org>
! 
! 	* SECURITY.txt: New file.
! 
! 2023-09-18  Fei Gao  <gaofei@eswincomputing.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2023-09-15  Yang Yujie  <yangyujie@loongson.cn>
! 
! 	* config-ml.in: Remove unneeded loongarch clause.
! 	* configure.ac: Register custom makefile fragments mt-loongarch-*
! 	for loongarch targets.
! 	* configure: Regenerate.
! 
! 2023-09-12  Edwin Lu  <ewlu@rivosinc.com>
! 
! 	* MAINTAINERS: Add myself
! 
! 2023-09-12  Thomas Schwinge  <thomas@codesourcery.com>
! 	    Chung-Lin Tang  <cltang@codesourcery.com>
! 
! 	PR testsuite/109951
! 	* Makefile.tpl (BASE_TARGET_EXPORTS): Add
! 	'SYSROOT_CFLAGS_FOR_TARGET'.
! 	* Makefile.in: Regenerate.
! 
! 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
! 
! 	* config-ml.in: Do not build the multilib library variant
! 	that is duplicate with the toplevel one.
! 
! 2023-08-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2023-08-22  Filip Kastl  <fkastl@suse.cz>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2023-08-11  Eric Feng  <ef2648@columbia.edu>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2023-08-07  Indu Bhagat  <indu.bhagat@oracle.com>
! 
! 	* Makefile.def: Reflect that libsframe needs to installed before
! 	libbfd.  Reorder a bit to better track libsframe dependencies.
! 	* Makefile.in: Regenerate.
! 
! 2023-08-07  Indu Bhagat  <indu.bhagat@oracle.com>
! 
! 	* Makefile.def: Add install dependency on libsframe for libbfd.
! 	* Makefile.in: Regenerated.
! 
! 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
! 
! 	* libtool.m4 (lt_cv_sys_global_symbol_pipe): Augment symcode for
! 	Solaris 11.
! 
! 2023-08-07  Alexander von Gluck IV  <kallisti5@unixzen.com>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Add Haiku to list of ELF OSes
! 	* libtool.m4: Update sys_lib_dlsearch_path_spec on Haiku.
! 
! 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
! 
! 	* libtool.m4 (LT_PATH_NM): Handle user-specified NM with
! 	options, including options containing paths.
! 
! 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
! 
! 	* libtool.m4 (LT_PATH_NM): Try BSDization flags with a user-provided
! 	NM, if there is one.  Run nm on itself, not on /dev/null, to avoid
! 	errors from nms that refuse to work on non-regular files.  Remove
! 	other workarounds for this problem.  Strip out blank lines from the
! 	nm output.
! 
! 2023-08-07  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* configure.ac: Reinstate 32b PA-RISC HP-UX targets
! 	* configure: Regenerate.
! 
! 2023-08-07  Simon Marchi  <simon.marchi@efficios.com>
! 
! 	* configure.ac: Add AC_SUBST(PKG_CONFIG_PATH).
! 	* configure: Re-generate.
! 	* Makefile.tpl (HOST_EXPORTS): Pass PKG_CONFIG_PATH.
! 	(PKG_CONFIG_PATH): New.
! 	* Makefile.in: Re-generate.
! 
! 2023-08-07  Luis Machado  <luis.machado@arm.com>
! 
! 	* configure.ac: Disable year2038 by default on 32-bit hosts.
! 	* configure: Regenerate.
! 
! 2023-08-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
! 
! 	* Makefile.def: Add gprofng module.
! 	* configure.ac: Add --enable-gprofng option.
! 	* Makefile.in: Regenerate.
! 	* configure: Regenerate.
! 
! 2023-08-07  Martin Liska  <mliska@suse.cz>
! 
! 	* configure.ac: Add --enable-default-compressed-debug-sections-algorithm.
! 	* configure: Regenerate.
! 
! 2023-08-07  Fangrui Song  <maskray@google.com>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Add --with-zstd.
! 
! 2023-08-07  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Recover tilegx/tilepro targets.
! 
! 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
  
  	* configure: Regenerated.
+ 	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Check if AR works with
+ 	--plugin and rc before enabling --plugin.
+ 
+ 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* Makefile.tpl (AR): Add @AR_PLUGIN_OPTION@
+ 	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
+ 	* configure.ac: Include config/gcc-plugin.m4.
+ 	AC_SUBST AR_PLUGIN_OPTION and RANLIB_PLUGIN_OPTION.
+ 	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Pass --plugin to AR and
+ 	RANLIB if possible.
+ 	* Makefile.in: Regenerated.
+ 	* configure: Likewise.
+ 
+ 2023-08-07  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* Makefile.tpl: Substitute @GDCFLAGS@ instead of using
+ 	$(CFLAGS).
+ 
+ 2023-08-07  David Faust  <david.faust@oracle.com>
+ 
+ 	* MAINTAINERS: Add the BPF port to my reviewer listing.
+ 
+ 2023-08-02  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* MAINTAINERS: Correct my email address.
+ 
+ 2023-08-02  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* MAINTAINERS (Write After Approval): Add myself.
+ 
+ 2023-08-01  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* MAINTAINERS: Add myself.
+ 
+ 2023-07-31  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* configure.ac (GDCFLAGS): Set default from ${CFLAGS}.
+ 	* configure: Regenerate.
+ 	* Makefile.in (GDCFLAGS): Substitute @GDCFLAGS@.
+ 
+ 2023-07-31  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* MAINTAINERS: Add myself.
+ 
+ 2023-07-25  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* MAINTAINERS: List myself as "nvptx port" maintainer.
+ 
+ 2023-07-21  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* MAINTAINERS: Add myself to write after approval
+ 
+ 2023-07-18  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* MAINTAINERS: Add myself as a reviewer for the riscv port.
+ 
+ 2023-07-18  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* MAINTAINERS: Add myself as a reviewer for the riscv port.
+ 
+ 2023-07-12  Hao Liu  <hliu@os.amperecomputing.com>
+ 
+ 	* MAINTAINERS: Add Hao Liu to write after approval
+ 
+ 2023-07-12  Ken Matsui  <kmatsui@gcc.gnu.org>
+ 
+ 	* MAINTAINERS: Add Ken Matsui to write after approval
+ 
+ 2023-07-07  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	* Makefile.in: Collect both kernel and user events for autofdo
+ 	* Makefile.tpl: Collect both kernel and user events for autofdo
+ 
+ 2023-06-30  Rishi Raj  <rishiraj45035@gmail.com>
+ 
+ 	* MAINTAINERS: Added myself to Write After Approval and DCO
+ 
+ 2023-06-29  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	* Makefile.in: Remove -gtoggle for STAGEautoprofile
+ 	* Makefile.tpl: Remove -gtoggle for STAGEautoprofile
+ 
+ 2023-06-25  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* MAINTAINERS: Add Lehua Ding to write after approval
+ 
+ 2023-06-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* Makefile.def: Pass the enable-host-pie value to GCC configure.
+ 	* Makefile.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Adjust the logic for shared and PIE host flags to
+ 	ensure that PIE is passed for hosts that require it.
+ 
+ 2023-06-16  YunQiang Su  <yunqiang.su@cipunited.com>
+ 
+ 	* MAINTAINERS (Write After Approval): move Matthew Fortune
+ 	to Write After Approval.
+ 
+ 2023-06-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* configure.ac (--enable-host-pie): New check.  Set PICFLAG after this
+ 	check.
+ 	* configure: Regenerate.
+ 
+ 2023-06-14  Filip Kastl  <filip.kastl@gmail.com>
+ 
+ 	* MAINTAINERS: Add myself to write after approval
+ 
+ 2023-06-02  YunQiang Su  <yunqiang.su@cipunited.com>
+ 
+ 	* MAINTAINERS (CPU Port Maintainers): Add myself as MIPS
+ 	port maintainer.
+ 	(Write After Approval): Remove myself.
+ 
+ 2023-05-30  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	* MAINTAINERS (Write After Approval): Add myself.
+ 
+ 2023-05-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* MAINTAINERS: Replace spaces with tabs.
+ 
+ 2023-05-27  Benjamin Priour  <vultkayn@gcc.gnu.org>
+ 
+ 	* MAINTAINERS: New entry.
+ 
+ 2023-05-18  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	* Makefile.tpl: Disable warnings as errors for STAGEautofeedback
+ 	* Makefile.in: Regenerate
+ 
+ 2023-05-17  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	* Makefile.in: Disable warnings as errors for STAGEautofeedback
+ 
+ 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.
+ 
+ 2023-04-28  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	* Makefile.in: Define PROFILE_MERGER
+ 	* Makefile.tpl: Define PROFILE_MERGER
+ 
+ 2023-04-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* MAINTAINERS: Change my email address.
+ 
+ 2023-04-26  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* MAINTAINERS: Add myself.
+ 
+ 2023-04-26  Martin Liska  <mliska@suse.cz>
+ 
+ 	* MAINTAINERS: fix sorting
+ 
+ 2023-04-25  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* MAINTAINERS (Write After Approval): Add myself.
+ 
+ 2023-04-24  Martin Liska  <mliska@suse.cz>
+ 
+ 	* MAINTAINERS: Fix sorting.
+ 
+ 2023-04-21  Peter Foley  <pefoley2@pefoley.com>
+ 
+ 	* configure: Regenerate.
+ 	* configure.ac: Only create serdep.tmp if needed
+ 
+ 2023-04-21  “ajit.kumar.agarwal@ibm.com”  <aagarwa@ltcden2-lp1.aus.stglabs.ibm.com>
+ 
+ 	* MAINTAINERS (Write After Approval): Add myself.
+ 
+ 2023-04-21  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* MAINTAINERS (Write After Approval): Add myself.
+ 	Ref: <680c7bbe-5d6e-07cd-8468-247afc65e1dd@gmail.com>
  
  2023-04-06  Indu Bhagat  <indu.bhagat@oracle.com>
  
diff -Nrcpad gcc-13.2.0/INSTALL/binaries.html gcc-14.1.0/INSTALL/binaries.html
*** gcc-13.2.0/INSTALL/binaries.html	Thu Jul 27 08:17:17 2023
--- gcc-14.1.0/INSTALL/binaries.html	Tue May  7 06:52:55 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
diff -Nrcpad gcc-13.2.0/INSTALL/build.html gcc-14.1.0/INSTALL/build.html
*** gcc-13.2.0/INSTALL/build.html	Thu Jul 27 08:17:16 2023
--- gcc-14.1.0/INSTALL/build.html	Tue May  7 06:52:54 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** It is recommended to only use GCC for th
*** 459,465 ****
  </p>
  <p>On Linux/x86_64 hosts with some restrictions (no virtualization) it is
  also possible to do autofdo build with &lsquo;<samp>make
! autoprofiledback</samp>&rsquo;. This uses Linux perf to sample branches in the
  binary and then rebuild it with feedback derived from the profile.
  Linux perf and the <code>autofdo</code> toolkit needs to be installed for
  this.
--- 459,465 ----
  </p>
  <p>On Linux/x86_64 hosts with some restrictions (no virtualization) it is
  also possible to do autofdo build with &lsquo;<samp>make
! autoprofiledbootstrap</samp>&rsquo;. This uses Linux perf to sample branches in the
  binary and then rebuild it with feedback derived from the profile.
  Linux perf and the <code>autofdo</code> toolkit needs to be installed for
  this.
diff -Nrcpad gcc-13.2.0/INSTALL/configure.html gcc-14.1.0/INSTALL/configure.html
*** gcc-13.2.0/INSTALL/configure.html	Thu Jul 27 08:17:16 2023
--- gcc-14.1.0/INSTALL/configure.html	Tue May  7 06:52:54 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** phases.
*** 104,112 ****
  <p>First, we <strong>highly</strong> recommend that GCC be built into a
  separate directory from the sources which does <strong>not</strong> reside
  within the source tree.  This is how we generally build GCC; building
! where <var>srcdir</var> == <var>objdir</var> should still work, but doesn&rsquo;t
! get extensive testing; building where <var>objdir</var> is a subdirectory
! of <var>srcdir</var> is unsupported.
  </p>
  <p>If you have previously built GCC in the same directory for a
  different target machine, do &lsquo;<samp>make distclean</samp>&rsquo; to delete all files
--- 104,111 ----
  <p>First, we <strong>highly</strong> recommend that GCC be built into a
  separate directory from the sources which does <strong>not</strong> reside
  within the source tree.  This is how we generally build GCC; building
! where <var>objdir</var> is a subdirectory of <var>srcdir</var> should work as well;
! building where <var>objdir</var> == <var>srcdir</var> is unsupported.
  </p>
  <p>If you have previously built GCC in the same directory for a
  different target machine, do &lsquo;<samp>make distclean</samp>&rsquo; to delete all files
*************** if you determine that they are not bugs
*** 159,165 ****
  <dd><p>Specify the URL root that contains GCC option documentation.  The <var>url</var>
  should end with a <code>/</code> character.
  </p>
! <p>The default value is <a href="https://gcc.gnu.org/onlinedocs/">https://gcc.gnu.org/onlinedocs/</a>.
  </p>
  </dd>
  <dt><span><code>--with-changes-root-url=<var>url</var></code></span></dt>
--- 158,166 ----
  <dd><p>Specify the URL root that contains GCC option documentation.  The <var>url</var>
  should end with a <code>/</code> character.
  </p>
! <p>The default value is <a href="https://gcc.gnu.org/onlinedocs/">https://gcc.gnu.org/onlinedocs/</a>
! on the GCC main development trunk.  On release branches, the default
! is <code>https://gcc.gnu.org/onlinedocs/gcc-<var>major</var>.<var>minor</var>.0/</code>.
  </p>
  </dd>
  <dt><span><code>--with-changes-root-url=<var>url</var></code></span></dt>
*************** code.
*** 501,508 ****
  </dd>
  <dt><span><code>--enable-host-shared</code></span></dt>
  <dd><p>Specify that the <em>host</em> code should be built into position-independent
! machine code (with -fPIC), allowing it to be used within shared libraries,
! but yielding a slightly slower compiler.
  </p>
  <p>This option is required when building the libgccjit.so library.
  </p>
--- 502,509 ----
  </dd>
  <dt><span><code>--enable-host-shared</code></span></dt>
  <dd><p>Specify that the <em>host</em> code should be built into position-independent
! machine code (with <samp>-fPIC</samp>), allowing it to be used within shared
! libraries, but yielding a slightly slower compiler.
  </p>
  <p>This option is required when building the libgccjit.so library.
  </p>
*************** but yielding a slightly slower compiler.
*** 510,515 ****
--- 511,536 ----
  libraries.
  </p>
  </dd>
+ <dt><span><code>--enable-host-pie</code></span></dt>
+ <dd><p>Specify that the <em>host</em> executables should be built into
+ position-independent executables (with <samp>-fPIE</samp> and <samp>-pie</samp>),
+ yielding a slightly slower compiler (but faster than
+ <samp>--enable-host-shared</samp>).  Position-independent executables are loaded
+ at random addresses each time they are executed, therefore provide additional
+ protection against Return Oriented Programming (ROP) attacks.
+ </p>
+ <p><samp>--enable-host-pie</samp>) may be used with <samp>--enable-host-shared</samp>),
+ in which case <samp>-fPIC</samp> is used when compiling, and <samp>-pie</samp> when
+ linking.
+ </p>
+ </dd>
+ <dt><span><code>--enable-host-bind-now</code></span></dt>
+ <dd><p>Specify that the <em>host</em> executables should be linked with the option
+ <samp>-Wl,-z,now</samp>, which means that the dynamic linker will resolve all
+ symbols when the executables are started, and that in turn allows RELRO to
+ mark the GOT read-only, resulting in better security.
+ </p>
+ </dd>
  <dt><span><code><span id="with-gnu-as"></span>--with-gnu-as</code></span></dt>
  <dd><p>Specify that the compiler should assume that the
  assembler it finds is the GNU assembler.  However, this does not modify
*************** but for the debug linker (only used on D
*** 584,589 ****
--- 605,613 ----
  For ARM targets, possible values for <var>dialect</var> are <code>gnu</code> or
  <code>gnu2</code>, which select between the original GNU dialect and the GNU TLS
  descriptor-based dialect.
+ For RISC-V targets, possible values for <var>dialect</var> are <code>trad</code> or
+ <code>desc</code>, which select between the traditional GNU dialect and the GNU TLS
+ descriptor-based dialect.
  </p>
  </dd>
  <dt><span><code>--enable-multiarch</code></span></dt>
*************** sysv, aix.
*** 657,664 ****
  <dt><span><code>--without-multilib-list</code></span></dt>
  <dd><p>Specify what multilibs to build.  <var>list</var> is a comma separated list of
  values, possibly consisting of a single value.  Currently only implemented
! for aarch64*-*-*, arm*-*-*, loongarch64-*-*, riscv*-*-*, sh*-*-* and
! x86-64-*-linux*.  The accepted values and meaning for each target is given
  below.
  </p>
  <dl compact="compact">
--- 681,688 ----
  <dt><span><code>--without-multilib-list</code></span></dt>
  <dd><p>Specify what multilibs to build.  <var>list</var> is a comma separated list of
  values, possibly consisting of a single value.  Currently only implemented
! for aarch64*-*-*, amdgcn*-*-*, arm*-*-*, loongarch*-*-*, riscv*-*-*, sh*-*-*
! and x86-64-*-linux*.  The accepted values and meaning for each target is given
  below.
  </p>
  <dl compact="compact">
*************** default set of libraries is selected bas
*** 672,677 ****
--- 696,712 ----
  <samp>--target</samp>.
  </p>
  </dd>
+ <dt><span><code>amdgcn*-*-*</code></span></dt>
+ <dd><p><var>list</var> is a comma separated list of ISA names (allowed values: <code>fiji</code>,
+ <code>gfx900</code>, <code>gfx906</code>, <code>gfx908</code>, <code>gfx90a</code>, <code>gfx90c</code>, 
+ <code>gfx1030</code>, <code>gfx1036</code>, <code>gfx1100</code>, <code>gfx1103</code>).
+ It ought not include the name of the default
+ ISA, specified via <samp>--with-arch</samp>.  If <var>list</var> is empty, then there
+ will be no multilibs and only the default run-time library will be built.  If
+ <var>list</var> is <code>default</code> or <samp>--with-multilib-list=</samp> is not
+ specified, then the default set of libraries is selected.
+ </p>
+ </dd>
  <dt><span><code>arm*-*-*</code></span></dt>
  <dd><p><var>list</var> is a comma separated list of <code>aprofile</code> and
  <code>rmprofile</code> to build multilibs for A or R and M architecture
*************** profile.  The union of these options is
*** 735,746 ****
  
  </dd>
  <dt><span><code>loongarch*-*-*</code></span></dt>
! <dd><p><var>list</var> is a comma-separated list of the following ABI identifiers:
! <code>lp64d[/base]</code> <code>lp64f[/base]</code> <code>lp64d[/base]</code>, where the
! <code>/base</code> suffix may be omitted, to enable their respective run-time
! libraries.  If <var>list</var> is empty or <code>default</code>,
! or if <samp>--with-multilib-list</samp> is not specified, then the default ABI
! as specified by <samp>--with-abi</samp> or implied by <samp>--target</samp> is selected.
  </p>
  </dd>
  <dt><span><code>riscv*-*-*</code></span></dt>
--- 770,802 ----
  
  </dd>
  <dt><span><code>loongarch*-*-*</code></span></dt>
! <dd><p><var>list</var> is a comma-separated list, with each of the element starting with
! the following ABI identifiers: <code>lp64d[/base]</code> <code>lp64f[/base]</code>
! <code>lp64d[/base]</code> (the <code>/base</code> suffix may be omitted)
! to enable their respective run-time libraries.
! </p>
! <p>A suffix <code>[/<var>arch</var>][/<var>option</var>/&hellip;]</code> may follow immediately
! after the ABI identifier to customize the compiler options for building the
! given set of libraries.  <var>arch</var> denotes the architecture name recognized
! by the <samp>-march=<var>arch</var></samp> compiler option, which acts as a basic target
! ISA configuration that can be adjusted using the subsequent <var>option</var>
! suffixes, where each <var>option</var> is a compiler option without a leading dash
! (&rsquo;-&rsquo;).
! </p>
! <p>If no such suffix is present for a given multilib variant, the
! configured value of <samp>--with-multilib-default</samp> is appended as a default
! suffix.  If <samp>--with-multilib-default</samp> is not given, the default build
! option <samp>-march=abi-default</samp> is applied when building the variants
! without a suffix.
! </p>
! <p>As a special case, <code>fixed</code> may be used in the position of <var>arch</var>,
! which means using the architecture configured with
! <samp>--with-arch=<var>arch</var></samp>, or its default value (e.g. <code>loongarch64</code>
! for <code>loongarch64-*</code> targets).
! </p>
! <p>If <var>list</var> is empty or <code>default</code>, or if <samp>--with-multilib-list</samp>
! is not specified, then only the default variant of the libraries are built,
! where the default ABI is implied by the configured target triplet.
  </p>
  </dd>
  <dt><span><code>riscv*-*-*</code></span></dt>
*************** and only the default run-time library wi
*** 796,801 ****
--- 852,876 ----
  </dl>
  
  </dd>
+ <dt><span><code>--with-multilib-default</code></span></dt>
+ <dd><p>On LoongArch targets, set the default build options for enabled multilibs
+ without build options appended to their corresponding
+ <samp>--with-multilib-list</samp> items.  The format of this value is
+ <code>[/<var>arch</var>][/<var>option</var>/&hellip;]</code>, where <var>arch</var> is an
+ architecture name recognized by <samp>-march=<var>arch</var></samp> compiler option,
+ and subsequent <var>option</var> suffixes are compiler options minus a leading
+ dash (&rsquo;-&rsquo;).
+ </p>
+ <p>Multiple <var>option</var>s may appear consecutively while <var>arch</var> may only
+ appear in the beginning or be omitted (which means <samp>-march=abi-default</samp>
+ is applied when building the libraries).
+ </p>
+ </dd>
+ <dt><span><code>--with-strict-align-lib</code></span></dt>
+ <dd><p>On LoongArch targets, build all enabled multilibs with <samp>-mstrict-align</samp>
+ (Not enabled by default).
+ </p>
+ </dd>
  <dt><span><code>--with-multilib-generator=<var>config</var></code></span></dt>
  <dd><p>Specify what multilibs to build.  <var>config</var> is a semicolon separated list of
  values, possibly consisting of a single value.  Currently only implemented
*************** x86-64, PowerPC, and SPARC.
*** 969,974 ****
--- 1044,1050 ----
  <dt><span><code>--with-abi=<var>abi</var></code></span></dt>
  <dt><span><code>--with-fpu=<var>type</var></code></span></dt>
  <dt><span><code>--with-float=<var>type</var></code></span></dt>
+ <dt><span><code>--with-simd=<var>type</var></code></span></dt>
  <dd><p>These configure options provide default values for the <samp>-mschedule=</samp>,
  <samp>-march=</samp>, <samp>-mtune=</samp>, <samp>-mabi=</samp>, and <samp>-mfpu=</samp>
  options and for <samp>-mhard-float</samp> or <samp>-msoft-float</samp>.  As with
*************** parallel.  The default is &lsquo;<samp>y
*** 1293,1298 ****
--- 1369,1381 ----
  the remaining libraries.
  </p>
  </dd>
+ <dt><span><code>--with-darwin-extra-rpath</code></span></dt>
+ <dd><p>This is provided to allow distributions to add a single additional
+ runpath on Darwin / macOS systems. This allows for cases where the
+ installed GCC library directories are then symlinked to a common
+ directory outside of the GCC installation.
+ </p>
+ </dd>
  <dt><span><code><span id="WithAixSoname"></span>--with-aix-soname=&lsquo;<samp>aix</samp>&rsquo;, &lsquo;<samp>svr4</samp>&rsquo; or &lsquo;<samp>both</samp>&rsquo;</code></span></dt>
  <dd><p>Traditional AIX shared library versioning (versioned <code>Shared Object</code>
  files as members of unversioned <code>Archive Library</code> files named
*************** which lets GCC output diagnostics in lan
*** 1662,1672 ****
  English.  Native Language Support is enabled by default if not doing a
  canadian cross build.  The <samp>--disable-nls</samp> option disables NLS.
  </p>
  </dd>
  <dt><span><code>--with-included-gettext</code></span></dt>
! <dd><p>If NLS is enabled, the <samp>--with-included-gettext</samp> option causes the build
! procedure to prefer its copy of GNU <code>gettext</code>.
  </p>
  </dd>
  <dt><span><code>--with-catgets</code></span></dt>
  <dd><p>If NLS is enabled, and if the host lacks <code>gettext</code> but has the
--- 1745,1796 ----
  English.  Native Language Support is enabled by default if not doing a
  canadian cross build.  The <samp>--disable-nls</samp> option disables NLS.
  </p>
+ <p>Note that this functionality requires either libintl (provided by GNU
+ gettext) or C standard library that contains support for gettext (such
+ as the GNU C Library).
+ See <a href="#with-included-gettext">&ndash;with-included-gettext</a> for more
+ information on the conditions required to get gettext support.
+ </p>
  </dd>
+ <dt><span><code>--with-libintl-prefix=<var>dir</var></code></span></dt>
+ <dt><span><code>--without-libintl-prefix</code></span></dt>
+ <dd><p>Searches for libintl in <samp><var>dir</var>/include</samp> and
+ <samp><var>dir</var>/lib</samp>, or disables manual searching for it, letting the
+ linker handle it.
+ </p>
+ </dd>
+ <dt><span><code>--with-libintl-type=<var>type</var></code></span></dt>
+ <dd><p>Specifies the type of library to search for when looking for libintl.
+ <var>type</var> can be one of <code>auto</code>, <code>static</code> or <code>shared</code>.
+ </p>
+ <span id="with-included-gettext"></span></dd>
  <dt><span><code>--with-included-gettext</code></span></dt>
! <dd><p>Only available if <samp>gettext</samp> is present in the source tree.
  </p>
+ <p>Forces the gettext tree to be configured to build and use a new static
+ libintl, overriding the system libintl.  Results in GCC being built
+ against the newly built libintl rather than the system libintl.
+ </p>
+ <p>The build system makes a somewhat complicated choice when picking where
+ to get gettext routines from.  The following table is a summary of the
+ possible options:
+ </p>
+ <table>
+ <thead><tr><th width="12%">GNU gettext present in sources</th><th width="12%">libintl installed on the system</th><th width="12%"><code>gettext</code> present in libc</th><th width="20%"><code>--with-included-gettext</code></th><th width="44%">Effects on localization</th></tr></thead>
+ <tr><td width="12%">No</td><td width="12%">No</td><td width="12%">No</td><td width="20%">(ignored)</td><td width="44%">No localization</td></tr>
+ <tr><td width="12%">No</td><td width="12%">No</td><td width="12%">Yes</td><td width="20%">(ignored)</td><td width="44%">Localized, libc gettext</td></tr>
+ <tr><td width="12%">No</td><td width="12%">Yes</td><td width="12%">No</td><td width="20%">(ignored)</td><td width="44%">Localized, libintl</td></tr>
+ <tr><td width="12%">No</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">(ignored)</td><td width="44%">Localized, libintl</td></tr>
+ <tr><td width="12%">Yes</td><td width="12%">No</td><td width="12%">No</td><td width="20%">No</td><td width="44%">Localized, new, static libintl</td></tr>
+ <tr><td width="12%">Yes</td><td width="12%">No</td><td width="12%">No</td><td width="20%">Yes</td><td width="44%">Localized, new, static libintl</td></tr>
+ <tr><td width="12%">Yes</td><td width="12%">No</td><td width="12%">Yes</td><td width="20%">No</td><td width="44%">Localized, libc gettext</td></tr>
+ <tr><td width="12%">Yes</td><td width="12%">No</td><td width="12%">Yes</td><td width="20%">Yes</td><td width="44%">Localized, new, static libintl</td></tr>
+ <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">No</td><td width="20%">No</td><td width="44%">Localized, libintl</td></tr>
+ <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">No</td><td width="20%">Yes</td><td width="44%">Localized, new, static libintl</td></tr>
+ <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">No</td><td width="44%">Localized, libintl</td></tr>
+ <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">Yes</td><td width="44%">Localized, new, static libintl</td></tr>
+ </table>
+ 
  </dd>
  <dt><span><code>--with-catgets</code></span></dt>
  <dd><p>If NLS is enabled, and if the host lacks <code>gettext</code> but has the
diff -Nrcpad gcc-13.2.0/INSTALL/download.html gcc-14.1.0/INSTALL/download.html
*** gcc-13.2.0/INSTALL/download.html	Thu Jul 27 08:17:16 2023
--- gcc-14.1.0/INSTALL/download.html	Tue May  7 06:52:53 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** HTTPS as tarballs compressed with <code>
*** 86,94 ****
  <p>Please refer to the <a href="https://gcc.gnu.org/releases.html">releases web page</a>
  for information on how to obtain GCC.
  </p>
! <p>The source distribution includes the C, C++, Objective-C, Fortran,
! and Ada (in the case of GCC 3.1 and later) compilers, as well as
! runtime libraries for C++, Objective-C, and Fortran.
  For previous versions these were downloadable as separate components such
  as the core GCC distribution, which included the C language front end and
  shared components, and language-specific distributions including the
--- 86,94 ----
  <p>Please refer to the <a href="https://gcc.gnu.org/releases.html">releases web page</a>
  for information on how to obtain GCC.
  </p>
! <p>The source distribution includes the Ada, C, C++, Objective-C, D (GCC 9
! and later), Fortran, Go, and Modula-2 (GCC 13 and later) compilers, as
! well as runtime libraries for C++, Objective-C, and Fortran.
  For previous versions these were downloadable as separate components such
  as the core GCC distribution, which included the C language front end and
  shared components, and language-specific distributions including the
*************** components of the binutils you intend to
*** 102,115 ****
  (<samp>bfd</samp>, <samp>binutils</samp>, <samp>gas</samp>, <samp>gprof</samp>, <samp>ld</samp>,
  <samp>opcodes</samp>, &hellip;) to the directory containing the GCC sources.
  </p>
! <p>Likewise the GMP, MPFR and MPC libraries can be automatically built
! together with GCC.  You may simply run the
  <code>contrib/download_prerequisites</code> script in the GCC source directory
  to set up everything.
! Otherwise unpack the GMP, MPFR and/or MPC source
  distributions in the directory containing the GCC sources and rename
! their directories to <samp>gmp</samp>, <samp>mpfr</samp> and <samp>mpc</samp>,
! respectively (or use symbolic links with the same name).
  </p>
  <hr />
  <p>
--- 102,115 ----
  (<samp>bfd</samp>, <samp>binutils</samp>, <samp>gas</samp>, <samp>gprof</samp>, <samp>ld</samp>,
  <samp>opcodes</samp>, &hellip;) to the directory containing the GCC sources.
  </p>
! <p>Likewise the GMP, MPFR, MPC and Gettext libraries can be automatically
! built together with GCC.  You may simply run the
  <code>contrib/download_prerequisites</code> script in the GCC source directory
  to set up everything.
! Otherwise unpack the GMP, MPFR, MPC and/or Gettext source
  distributions in the directory containing the GCC sources and rename
! their directories to <samp>gmp</samp>, <samp>mpfr</samp>, <samp>mpc</samp> and
! <samp>gettext</samp>, respectively (or use symbolic links with the same name).
  </p>
  <hr />
  <p>
diff -Nrcpad gcc-13.2.0/INSTALL/finalinstall.html gcc-14.1.0/INSTALL/finalinstall.html
*** gcc-13.2.0/INSTALL/finalinstall.html	Thu Jul 27 08:17:17 2023
--- gcc-14.1.0/INSTALL/finalinstall.html	Tue May  7 06:52:54 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** Alternatively, there are prebuilt online
*** 163,206 ****
  released versions of GCC on
  <a href="https://gcc.gnu.org/onlinedocs/">the GCC web site</a>.
  </p>
! <p>If you are bootstrapping a released version of GCC then please
! quickly review the build status page for your release, available from
! <a href="https://gcc.gnu.org/buildstat.html">https://gcc.gnu.org/buildstat.html</a>.
! If your system is not listed for the version of GCC that you built,
! send a note to
! <a href="mailto:gcc@gcc.gnu.org">gcc@gcc.gnu.org</a> indicating
! that you successfully built and installed GCC.
! Include the following information:
! </p>
! <ul>
! <li> Output from running <samp><var>srcdir</var>/config.guess</samp>.  Do not send
! that file itself, just the one-line output from running it.
! 
! </li><li> The output of &lsquo;<samp>gcc -v</samp>&rsquo; for your newly installed <code>gcc</code>.
! This tells us which version of GCC you built and the options you passed to
! configure.
! 
! </li><li> If the build was for GNU/Linux, also include:
! <ul>
! <li> The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3);
! this information should be available from <samp>/etc/issue</samp>.
! 
! </li><li> The version of the Linux kernel, available from &lsquo;<samp>uname --version</samp>&rsquo;
! or &lsquo;<samp>uname -a</samp>&rsquo;.
! 
! </li><li> The version of glibc you used; for RPM-based systems like Red Hat,
! Mandrake, and SuSE type &lsquo;<samp>rpm -q glibc</samp>&rsquo; to get the glibc version,
! and on systems like Debian and Progeny use &lsquo;<samp>dpkg -l libc6</samp>&rsquo;.
! </li></ul>
! <p>For other systems, you can include similar information if you think it is
! relevant.
! </p>
! </li><li> Any other information that you think would be useful to people building
! GCC on the same configuration.  The new entry in the build status list
! will include a link to the archived copy of your message.
! </li></ul>
! 
! <p>We&rsquo;d also like to know if the
  <a href="specific.html">host/target specific installation notes</a>
  didn&rsquo;t include your host/target information or if that information is
  incomplete or out of date.  Send a note to
--- 163,169 ----
  released versions of GCC on
  <a href="https://gcc.gnu.org/onlinedocs/">the GCC web site</a>.
  </p>
! <p>If you built GCC yourself we would like to know if the
  <a href="specific.html">host/target specific installation notes</a>
  didn&rsquo;t include your host/target information or if that information is
  incomplete or out of date.  Send a note to
diff -Nrcpad gcc-13.2.0/INSTALL/gfdl.html gcc-14.1.0/INSTALL/gfdl.html
*** gcc-13.2.0/INSTALL/gfdl.html	Thu Jul 27 08:17:17 2023
--- gcc-14.1.0/INSTALL/gfdl.html	Tue May  7 06:52:55 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
diff -Nrcpad gcc-13.2.0/INSTALL/index.html gcc-14.1.0/INSTALL/index.html
*** gcc-13.2.0/INSTALL/index.html	Thu Jul 27 08:17:15 2023
--- gcc-14.1.0/INSTALL/index.html	Tue May  7 06:52:53 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** package-specific installation instructio
*** 93,102 ****
  We recommend you browse the entire generic installation instructions before
  you proceed.
  </p>
- <p>Lists of successful builds for released versions of GCC are
- available at <a href="https://gcc.gnu.org/buildstat.html">https://gcc.gnu.org/buildstat.html</a>.
- These lists are updated as new information becomes available.
- </p>
  <p>The installation procedure itself is broken into five steps.
  </p>
  <ol>
--- 93,98 ----
*************** more binaries exist that use them.
*** 119,125 ****
  <p>
  <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
! <p>Copyright &copy; 1988-2023 Free Software Foundation, Inc.
  </p><br>
  <p>Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 115,121 ----
  <p>
  <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
! <p>Copyright &copy; 1988-2024 Free Software Foundation, Inc.
  </p><br>
  <p>Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
diff -Nrcpad gcc-13.2.0/INSTALL/prerequisites.html gcc-14.1.0/INSTALL/prerequisites.html
*** gcc-13.2.0/INSTALL/prerequisites.html	Thu Jul 27 08:17:16 2023
--- gcc-14.1.0/INSTALL/prerequisites.html	Tue May  7 06:52:53 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** name of the package depends on your dist
*** 117,122 ****
--- 117,128 ----
  &lsquo;<samp>fatal error: gnu/stubs-32.h: No such file</samp>&rsquo;
  </p>
  </dd>
+ <dt><span>Python</span></dt>
+ <dd><p>If you configure a RISC-V compiler with the option <samp>--with-arch</samp> and
+ the specified architecture string is non-canonical, then you will need
+ <code>python</code> installed on the build system.
+ </p>
+ </dd>
  <dt><span><span id="GNAT-prerequisite"></span>GNAT</span></dt>
  <dd>
  <p>In order to build GNAT, the Ada compiler, you need a working GNAT
*************** systems&rsquo; <code>tar</code> programs
*** 235,241 ****
  <code>tar</code> if you have problems.
  </p>
  </dd>
! <dt><span>Perl version between 5.6.1 and 5.6.24</span></dt>
  <dd>
  <p>Necessary when targeting Darwin, building &lsquo;<samp>libstdc++</samp>&rsquo;,
  and not using <samp>--disable-symvers</samp>.
--- 241,247 ----
  <code>tar</code> if you have problems.
  </p>
  </dd>
! <dt><span>Perl version 5.6.1 (or later)</span></dt>
  <dd>
  <p>Necessary when targeting Darwin, building &lsquo;<samp>libstdc++</samp>&rsquo;,
  and not using <samp>--disable-symvers</samp>.
*************** is shown below:
*** 359,364 ****
--- 365,382 ----
  </dl>
  
  </dd>
+ <dt><span>GNU gettext</span></dt>
+ <dd>
+ <p>Necessary to build GCC with internationalization support via
+ <samp>--enable-nls</samp>.  It can be downloaded from
+ <a href="https://www.gnu.org/software/gettext/">https://www.gnu.org/software/gettext/</a>. If a GNU gettext distribution
+ is found in a subdirectory of your GCC sources named <samp>gettext</samp>, it
+ will be built together with GCC, unless present in the system (either in
+ libc or as a stand-alone library).
+ </p>
+ <p>The in-tree configuration requires GNU gettext version 0.22 or later.
+ </p>
+ </dd>
  </dl>
  
  <span id="Tools_002fpackages-necessary-for-modifying-GCC"></span><h3 class="heading">Tools/packages necessary for modifying GCC</h3>
*************** details.
*** 417,422 ****
--- 435,442 ----
  <p>Necessary to regenerate the top level <samp>Makefile.in</samp> file from
  <samp>Makefile.tpl</samp> and <samp>Makefile.def</samp>.
  </p>
+ <p>Necessary to regenerate the <samp>bits/version.h</samp> header for libstdc++.
+ </p>
  </dd>
  <dt><span>Flex version 2.5.4 (or later)</span></dt>
  <dd>
diff -Nrcpad gcc-13.2.0/INSTALL/specific.html gcc-14.1.0/INSTALL/specific.html
*** gcc-13.2.0/INSTALL/specific.html	Thu Jul 27 08:17:16 2023
--- gcc-14.1.0/INSTALL/specific.html	Tue May  7 06:52:53 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** information have to.
*** 99,105 ****
  </p>
  <ul>
  <li> <a href="#aarch64-x-x">aarch64*-*-*</a>
- </li><li> <a href="#alpha-x-x">alpha*-*-*</a>
  </li><li> <a href="#amdgcn-x-amdhsa">amdgcn-*-amdhsa</a>
  </li><li> <a href="#amd64-x-solaris2">amd64-*-solaris2*</a>
  </li><li> <a href="#arc-x-elf32">arc-*-elf32</a>
--- 99,104 ----
*************** information have to.
*** 114,120 ****
  </li><li> <a href="#x-x-freebsd">*-*-freebsd*</a>
  </li><li> <a href="#h8300-hms">h8300-hms</a>
  </li><li> <a href="#hppa-hp-hpux">hppa*-hp-hpux*</a>
- </li><li> <a href="#hppa-hp-hpux10">hppa*-hp-hpux10</a>
  </li><li> <a href="#hppa-hp-hpux11">hppa*-hp-hpux11</a>
  </li><li> <a href="#x-x-linux-gnu">*-*-linux-gnu</a>
  </li><li> <a href="#ix86-x-linux">i?86-*-linux*</a>
--- 113,118 ----
*************** protections by default.  This mechanism
*** 222,233 ****
  of the options are given at configure time.
  </p>
  <hr />
- <span id="alpha-x-x"></span><span id="alpha*-*-*"></span><h3 class="heading">alpha*-*-*</h3>
- <p>This section contains general configuration information for all
- Alpha-based platforms using ELF.  In addition to reading this
- section, please read all other sections that match your target.
- </p>
- <hr />
  <span id="amd64-x-solaris2"></span><span id="amd64-*-solaris2*"></span><h3 class="heading">amd64-*-solaris2*</h3>
  <p>This is a synonym for &lsquo;<samp>x86_64-*-solaris2*</samp>&rsquo;.
  </p>
--- 220,225 ----
*************** section, please read all other sections
*** 235,254 ****
  <span id="amdgcn-x-amdhsa"></span><span id="amdgcn-*-amdhsa"></span><h3 class="heading">amdgcn-*-amdhsa</h3>
  <p>AMD GCN GPU target.
  </p>
! <p>Instead of GNU Binutils, you will need to install LLVM 13.0.1, or later, and copy
  <samp>bin/llvm-mc</samp> to <samp>amdgcn-amdhsa/bin/as</samp>,
  <samp>bin/lld</samp> to <samp>amdgcn-amdhsa/bin/ld</samp>,
  <samp>bin/llvm-nm</samp> to <samp>amdgcn-amdhsa/bin/nm</samp>, and
  <samp>bin/llvm-ar</samp> to both <samp>bin/amdgcn-amdhsa-ar</samp> and
! <samp>bin/amdgcn-amdhsa-ranlib</samp>.
  </p>
! <p>Use Newlib (4.3.0 or newer).
  </p>
  <p>To run the binaries, install the HSA Runtime from the
! <a href="https://rocm.github.io">ROCm Platform</a>, and use
  <samp>libexec/gcc/amdhsa-amdhsa/<var>version</var>/gcn-run</samp> to launch them
  on the GPU.
  </p>
  <hr />
  <span id="arc-x-elf32"></span><span id="arc-*-elf32"></span><h3 class="heading">arc-*-elf32</h3>
  
--- 227,256 ----
  <span id="amdgcn-x-amdhsa"></span><span id="amdgcn-*-amdhsa"></span><h3 class="heading">amdgcn-*-amdhsa</h3>
  <p>AMD GCN GPU target.
  </p>
! <p>Instead of GNU Binutils, you will need to install LLVM 15, or later, and copy
  <samp>bin/llvm-mc</samp> to <samp>amdgcn-amdhsa/bin/as</samp>,
  <samp>bin/lld</samp> to <samp>amdgcn-amdhsa/bin/ld</samp>,
  <samp>bin/llvm-nm</samp> to <samp>amdgcn-amdhsa/bin/nm</samp>, and
  <samp>bin/llvm-ar</samp> to both <samp>bin/amdgcn-amdhsa-ar</samp> and
! <samp>bin/amdgcn-amdhsa-ranlib</samp>.  Note that LLVM 13.0.1 or LLVM 14 can be used
! by specifying a <code>--with-multilib-list=</code> that does not list <code>gfx1100</code>
! and <code>gfx1103</code>.
  </p>
! <p>Use Newlib (4.3.0 or newer; 4.4.0 contains some improvements and git commit
! 7dd4eb1db (2025-03-25, post-4.4.0) fixes device console output for GFX10 and
! GFX11 devices).
  </p>
  <p>To run the binaries, install the HSA Runtime from the
! <a href="https://rocm.docs.amd.com/">ROCm Platform</a>, and use
  <samp>libexec/gcc/amdhsa-amdhsa/<var>version</var>/gcn-run</samp> to launch them
  on the GPU.
  </p>
+ <p>To enable support for GCN3 Fiji devices (gfx803), GCC has to be configured with
+ <samp>--with-arch=<code>fiji</code></samp> or
+ <samp>--with-multilib-list=<code>fiji</code>,...</samp>.  Note that support for Fiji
+ devices has been removed in ROCm 4.0 and support in LLVM was deprecated and has
+ been removed in LLVM 18.
+ </p>
  <hr />
  <span id="arc-x-elf32"></span><span id="arc-*-elf32"></span><h3 class="heading">arc-*-elf32</h3>
  
*************** This configuration is intended for embed
*** 327,340 ****
  </p>
  <hr />
  <span id="x-x-freebsd"></span><span id="g_t*-*-freebsd*"></span><h3 class="heading">*-*-freebsd*</h3>
- <p>In order to better utilize FreeBSD base system functionality and match
- the configuration of the system compiler, GCC 4.5 and above as well as
- GCC 4.4 past 2010-06-20 leverage SSP support in libc (which is present
- on FreeBSD 7 or later) and the use of <code>__cxa_atexit</code> by default
- (on FreeBSD 6 or later).  The use of <code>dl_iterate_phdr</code> inside
- <samp>libgcc_s.so.1</samp> and boehm-gc (on FreeBSD 7 or later) is enabled
- by GCC 4.5 and above.
- </p>
  <p>We support FreeBSD using the ELF file format with DWARF 2 debugging
  for all CPU architectures.  There are
  no known issues with mixing object files and libraries with different
--- 329,334 ----
*************** longer a multiple of 2 bytes.
*** 373,402 ****
  </p>
  <hr />
  <span id="hppa-hp-hpux"></span><span id="hppa*-hp-hpux*"></span><h3 class="heading">hppa*-hp-hpux*</h3>
! <p>Support for HP-UX version 9 and older was discontinued in GCC 3.4.
! </p>
! <p>We require using gas/binutils on all hppa platforms.  Version 2.19 or
  later is recommended.
  </p>
  <p>It may be helpful to configure GCC with the
  <a href="./configure.html#with-gnu-as"><samp>--with-gnu-as</samp></a> and
  <samp>--with-as=&hellip;</samp> options to ensure that GCC can find GAS.
  </p>
- <p>The HP assembler should not be used with GCC.  It is rarely tested and may
- not work.  It shouldn&rsquo;t be used with any languages other than C due to its
- many limitations.
- </p>
- <p>Specifically, <samp>-g</samp> does not work (HP-UX uses a peculiar debugging
- format which GCC does not know about).  It also inserts timestamps
- into each object file it creates, causing the 3-stage comparison test to
- fail during a bootstrap.  You should be able to continue by saying
- &lsquo;<samp>make all-host all-target</samp>&rsquo; after getting the failure from &lsquo;<samp>make</samp>&rsquo;.
- </p>
- <p>Various GCC features are not supported.  For example, it does not support weak
- symbols or alias definitions.  As a result, explicit template instantiations
- are required when using C++.  This makes it difficult if not impossible to
- build many C++ applications.
- </p>
  <p>There are two default scheduling models for instructions.  These are
  PROCESSOR_7100LC and PROCESSOR_8000.  They are selected from the pa-risc
  architecture specified for the target machine when configuring.
--- 367,379 ----
  </p>
  <hr />
  <span id="hppa-hp-hpux"></span><span id="hppa*-hp-hpux*"></span><h3 class="heading">hppa*-hp-hpux*</h3>
! <p>We require using gas on all hppa platforms.  Version 2.19 or
  later is recommended.
  </p>
  <p>It may be helpful to configure GCC with the
  <a href="./configure.html#with-gnu-as"><samp>--with-gnu-as</samp></a> and
  <samp>--with-as=&hellip;</samp> options to ensure that GCC can find GAS.
  </p>
  <p>There are two default scheduling models for instructions.  These are
  PROCESSOR_7100LC and PROCESSOR_8000.  They are selected from the pa-risc
  architecture specified for the target machine when configuring.
*************** a list of the predefines used with each
*** 422,443 ****
  <p>More specific information to &lsquo;<samp>hppa*-hp-hpux*</samp>&rsquo; targets follows.
  </p>
  <hr />
- <span id="hppa-hp-hpux10"></span><span id="hppa*-hp-hpux10"></span><h3 class="heading">hppa*-hp-hpux10</h3>
- <p>For hpux10.20, we <em>highly</em> recommend you pick up the latest sed patch
- <code>PHCO_19798</code> from HP.
- </p>
- <p>The C++ ABI has changed incompatibly in GCC 4.0.  COMDAT subspaces are
- used for one-only code and data.  This resolves many of the previous
- problems in using C++ on this target.  However, the ABI is not compatible
- with the one implemented under HP-UX 11 using secondary definitions.
- </p>
- <hr />
  <span id="hppa-hp-hpux11"></span><span id="hppa*-hp-hpux11"></span><h3 class="heading">hppa*-hp-hpux11</h3>
- <p>GCC 3.0 and up support HP-UX 11.  GCC 2.95.x is not supported and cannot
- be used to compile GCC 3.0 and up.
- </p>
- <p>The libffi library haven&rsquo;t been ported to 64-bit HP-UX&nbsp;and doesn&rsquo;t build.
- </p>
  <p>Refer to <a href="binaries.html">binaries</a> for information about obtaining
  precompiled GCC binaries for HP-UX.  Precompiled binaries must be obtained
  to build the Ada language as it cannot be bootstrapped using C.  Ada is
--- 399,405 ----
*************** options, including program core dumps.
*** 515,523 ****
  problem on the 64-bit port resulting from HP&rsquo;s non-standard use of
  the .init and .fini sections for array initializers and finalizers.
  </p>
! <p>Although the HP and GNU linkers are both supported for the
! &lsquo;<samp>hppa64-hp-hpux11*</samp>&rsquo; target, it is strongly recommended that the
! HP linker be used for link editing on this target.
  </p>
  <p>At this time, the GNU linker does not support the creation of long
  branch stubs.  As a result, it cannot successfully link binaries
--- 477,483 ----
  problem on the 64-bit port resulting from HP&rsquo;s non-standard use of
  the .init and .fini sections for array initializers and finalizers.
  </p>
! <p>Only the HP linker is supported for the &lsquo;<samp>hppa64-hp-hpux11*</samp>&rsquo; target.
  </p>
  <p>At this time, the GNU linker does not support the creation of long
  branch stubs.  As a result, it cannot successfully link binaries
*************** with a small set of possible suffixes to
*** 782,789 ****
  
  </dd>
  <dt><span><code>loongarch64-linux-gnu</code></span></dt>
! <dd><p>Same as <code>loongarch64-linux-gnuf64</code>, but may be used with
! <samp>--with-abi=*</samp> to configure the default ABI type.
  </p></dd>
  </dl>
  
--- 742,748 ----
  
  </dd>
  <dt><span><code>loongarch64-linux-gnu</code></span></dt>
! <dd><p>Same as <code>loongarch64-linux-gnuf64</code> for legacy support.
  </p></dd>
  </dl>
  
*************** in a minimal run-time environment by def
*** 914,920 ****
  <p>Nvidia PTX target.
  </p>
  <p>Instead of GNU binutils, you will need to install
! <a href="https://github.com/MentorEmbedded/nvptx-tools/">nvptx-tools</a>.
  Tell GCC where to find it:
  <samp>--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin</samp>.
  </p>
--- 873,879 ----
  <p>Nvidia PTX target.
  </p>
  <p>Instead of GNU binutils, you will need to install
! <a href="https://github.com/SourceryTools/nvptx-tools">nvptx-tools</a>.
  Tell GCC where to find it:
  <samp>--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin</samp>.
  </p>
diff -Nrcpad gcc-13.2.0/INSTALL/test.html gcc-14.1.0/INSTALL/test.html
*** gcc-13.2.0/INSTALL/test.html	Thu Jul 27 08:17:17 2023
--- gcc-14.1.0/INSTALL/test.html	Tue May  7 06:52:54 2024
***************
*** 3,9 ****
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
--- 3,9 ----
  <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3 or
*************** ul.no-bullet {list-style: none}
*** 88,96 ****
  compare your results with results from a similar configuration that have
  been submitted to the
  <a href="https://gcc.gnu.org/ml/gcc-testresults/">gcc-testresults mailing list</a>.
- Some of these archived results are linked from the build status lists
- at <a href="https://gcc.gnu.org/buildstat.html">https://gcc.gnu.org/buildstat.html</a>, although not everyone who
- reports a successful build runs the testsuites and submits the results.
  This step is optional and may require you to download additional software,
  but it can give you confidence in your new GCC installation or point out
  problems before you install and start using your new GCC.
--- 88,93 ----
diff -Nrcpad gcc-13.2.0/LAST_UPDATED gcc-14.1.0/LAST_UPDATED
*** gcc-13.2.0/LAST_UPDATED	Thu Jul 27 08:17:15 2023
--- gcc-14.1.0/LAST_UPDATED	Tue May  7 06:52:53 2024
***************
*** 1 ****
! Obtained from git: releases/gcc-13.2.0 revision c891d8dc23e1a46ad9f3e757d09e57b500d40044
--- 1 ----
! Obtained from git: releases/gcc-14.1.0 revision cd0059a1976303638cea95f216de129334fc04d1
diff -Nrcpad gcc-13.2.0/MAINTAINERS gcc-14.1.0/MAINTAINERS
*** gcc-13.2.0/MAINTAINERS	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/MAINTAINERS	Tue May  7 06:51:37 2024
*************** Jeff Law					<jlaw@ventanamicro.com>
*** 34,40 ****
  Michael Meissner				<gnu@the-meissners.org>
  Jason Merrill					<jason@redhat.com>
  David S. Miller					<davem@redhat.com>
! Joseph Myers					<joseph@codesourcery.com>
  Richard Sandiford				<richard.sandiford@arm.com>
  Bernd Schmidt					<bernds_cb1@t-online.de>
  Ian Lance Taylor				<ian@airs.com>
--- 34,40 ----
  Michael Meissner				<gnu@the-meissners.org>
  Jason Merrill					<jason@redhat.com>
  David S. Miller					<davem@redhat.com>
! Joseph Myers					<josmyers@redhat.com>
  Richard Sandiford				<richard.sandiford@arm.com>
  Bernd Schmidt					<bernds_cb1@t-online.de>
  Ian Lance Taylor				<ian@airs.com>
*************** docs, and the testsuite related to that.
*** 52,67 ****
  aarch64 port		Richard Earnshaw	<richard.earnshaw@arm.com>
  aarch64 port		Richard Sandiford	<richard.sandiford@arm.com>
  aarch64 port		Marcus Shawcroft	<marcus.shawcroft@arm.com>
! aarch64 port		Kyrylo Tkachov		<kyrylo.tkachov@arm.com>
  alpha port		Richard Henderson	<rth@gcc.gnu.org>
  amdgcn port		Julian Brown		<julian@codesourcery.com>
! amdgcn port		Andrew Stubbs		<ams@codesourcery.com>
  arc port		Joern Rennecke		<gnu@amylaar.uk>
  arc port		Claudiu Zissulescu	<claziss@synopsys.com>
  arm port		Nick Clifton		<nickc@redhat.com>
  arm port		Richard Earnshaw	<richard.earnshaw@arm.com>
  arm port		Ramana Radhakrishnan	<ramana.gcc@gmail.com>
- arm port		Kyrylo Tkachov		<kyrylo.tkachov@arm.com>
  avr port		Denis Chertykov		<chertykov@gmail.com>
  bfin port		Jie Zhang		<jzhang918@gmail.com>
  bpf port		Jose E. Marchesi	<jose.marchesi@oracle.com>
--- 52,66 ----
  aarch64 port		Richard Earnshaw	<richard.earnshaw@arm.com>
  aarch64 port		Richard Sandiford	<richard.sandiford@arm.com>
  aarch64 port		Marcus Shawcroft	<marcus.shawcroft@arm.com>
! aarch64 port		Kyrylo Tkachov		<ktkachov@gcc.gnu.org>
  alpha port		Richard Henderson	<rth@gcc.gnu.org>
  amdgcn port		Julian Brown		<julian@codesourcery.com>
! amdgcn port		Andrew Stubbs		<ams@baylibre.com>
  arc port		Joern Rennecke		<gnu@amylaar.uk>
  arc port		Claudiu Zissulescu	<claziss@synopsys.com>
  arm port		Nick Clifton		<nickc@redhat.com>
  arm port		Richard Earnshaw	<richard.earnshaw@arm.com>
  arm port		Ramana Radhakrishnan	<ramana.gcc@gmail.com>
  avr port		Denis Chertykov		<chertykov@gmail.com>
  bfin port		Jie Zhang		<jzhang918@gmail.com>
  bpf port		Jose E. Marchesi	<jose.marchesi@oracle.com>
*************** m68k port		Andreas Schwab		<schwab@linux
*** 91,97 ****
  m68k-motorola-sysv port	Philippe De Muyter	<phdm@macqel.be>
  mcore port		Nick Clifton		<nickc@redhat.com>
  microblaze		Michael Eager		<eager@eagercon.com>
! mips port		Matthew Fortune		<mfortune@gmail.com>
  mmix port		Hans-Peter Nilsson	<hp@bitrange.com>
  mn10300 port		Jeff Law		<jeffreyalaw@gmail.com>
  mn10300 port		Alexandre Oliva		<aoliva@gcc.gnu.org>
--- 90,96 ----
  m68k-motorola-sysv port	Philippe De Muyter	<phdm@macqel.be>
  mcore port		Nick Clifton		<nickc@redhat.com>
  microblaze		Michael Eager		<eager@eagercon.com>
! mips port		YunQiang Su		<syq@gcc.gnu.org>
  mmix port		Hans-Peter Nilsson	<hp@bitrange.com>
  mn10300 port		Jeff Law		<jeffreyalaw@gmail.com>
  mn10300 port		Alexandre Oliva		<aoliva@gcc.gnu.org>
*************** moxie port		Anthony Green		<green@moxiel
*** 99,107 ****
  msp430 port		Nick Clifton		<nickc@redhat.com>
  nds32 port		Chung-Ju Wu		<jasonwucj@gmail.com>
  nds32 port		Shiva Chen		<shiva0217@gmail.com>
! nios2 port		Chung-Lin Tang		<cltang@codesourcery.com>
! nios2 port		Sandra Loosemore	<sandra@codesourcery.com>
  nvptx port		Tom de Vries		<tdevries@suse.de>
  or1k port		Stafford Horne		<shorne@gmail.com>
  pdp11 port		Paul Koning		<ni1d@arrl.net>
  powerpcspe port		Andrew Jenner		<andrew@codesourcery.com>
--- 98,107 ----
  msp430 port		Nick Clifton		<nickc@redhat.com>
  nds32 port		Chung-Ju Wu		<jasonwucj@gmail.com>
  nds32 port		Shiva Chen		<shiva0217@gmail.com>
! nios2 port		Chung-Lin Tang		<cltang@baylibre.com>
! nios2 port		Sandra Loosemore	<sloosemore@baylibre.com>
  nvptx port		Tom de Vries		<tdevries@suse.de>
+ nvptx port		Thomas Schwinge		<tschwinge@baylibre.com>
  or1k port		Stafford Horne		<shorne@gmail.com>
  pdp11 port		Paul Koning		<ni1d@arrl.net>
  powerpcspe port		Andrew Jenner		<andrew@codesourcery.com>
*************** sparc port		David S. Miller		<davem@redh
*** 123,129 ****
  sparc port		Eric Botcazou		<ebotcazou@libertysurf.fr>
  v850 port		Nick Clifton		<nickc@redhat.com>
  vax port		Matt Thomas		<matt@3am-software.com>
! vax port		Maciej W. Rozycki	<macro@embecosm.com>
  visium port		Eric Botcazou		<ebotcazou@libertysurf.fr>
  x86-64 port		Jan Hubicka		<hubicka@ucw.cz>
  xstormy16 port		Nick Clifton		<nickc@redhat.com>
--- 123,129 ----
  sparc port		Eric Botcazou		<ebotcazou@libertysurf.fr>
  v850 port		Nick Clifton		<nickc@redhat.com>
  vax port		Matt Thomas		<matt@3am-software.com>
! vax port		Maciej W. Rozycki	<macro@orcam.me.uk>
  visium port		Eric Botcazou		<ebotcazou@libertysurf.fr>
  x86-64 port		Jan Hubicka		<hubicka@ucw.cz>
  xstormy16 port		Nick Clifton		<nickc@redhat.com>
*************** cygwin, mingw-w64	Jonathan Yong		<10wall
*** 154,160 ****
  
  			Language Front Ends Maintainers
  
! C front end/ISO C99	Joseph Myers		<joseph@codesourcery.com>
  Ada front end		Arnaud Charlet		<charlet@adacore.com>
  Ada front end		Eric Botcazou		<ebotcazou@libertysurf.fr>
  Ada front end		Marc Poulhiès		<poulhies@adacore.com>
--- 154,160 ----
  
  			Language Front Ends Maintainers
  
! C front end/ISO C99	Joseph Myers		<josmyers@redhat.com>
  Ada front end		Arnaud Charlet		<charlet@adacore.com>
  Ada front end		Eric Botcazou		<ebotcazou@libertysurf.fr>
  Ada front end		Marc Poulhiès		<poulhies@adacore.com>
*************** fp-bit			Ian Lance Taylor	<ian@airs.com>
*** 179,196 ****
  libgcc			Ian Lance Taylor	<ian@airs.com>
  libgo			Ian Lance Taylor	<ian@airs.com>
  libgomp			Jakub Jelinek		<jakub@redhat.com>
! libgomp			Tobias Burnus		<tobias@codesourcery.com>
! libgomp (OpenACC)	Thomas Schwinge		<thomas@codesourcery.com>
  libiberty		Ian Lance Taylor	<ian@airs.com>
  libitm			Torvald Riegel		<triegel@redhat.com>
  libobjc			Nicola Pero		<nicola.pero@meta-innovation.com>
  libobjc			Andrew Pinski		<pinskia@gmail.com>
! libquadmath		Tobias Burnus		<tobias@codesourcery.com>
  libquadmath		Jakub Jelinek		<jakub@redhat.com>
  libvtv			Caroline Tice		<cmtice@google.com>
  libphobos		Iain Buclaw		<ibuclaw@gdcproject.org>
  line map		Dodji Seketeli		<dodji@redhat.com>
! soft-fp			Joseph Myers		<joseph@codesourcery.com>
  scheduler (+ haifa)	Jim Wilson		<wilson@tuliptree.org>
  scheduler (+ haifa)	Michael Meissner	<gnu@the-meissners.org>
  scheduler (+ haifa)	Jeff Law		<jeffreyalaw@gmail.com>
--- 179,197 ----
  libgcc			Ian Lance Taylor	<ian@airs.com>
  libgo			Ian Lance Taylor	<ian@airs.com>
  libgomp			Jakub Jelinek		<jakub@redhat.com>
! libgomp			Tobias Burnus		<tburnus@baylibre.com>
! libgomp (OpenACC)	Thomas Schwinge		<tschwinge@baylibre.com>
! libgrust		All Rust front end maintainers
  libiberty		Ian Lance Taylor	<ian@airs.com>
  libitm			Torvald Riegel		<triegel@redhat.com>
  libobjc			Nicola Pero		<nicola.pero@meta-innovation.com>
  libobjc			Andrew Pinski		<pinskia@gmail.com>
! libquadmath		Tobias Burnus		<tburnus@baylibre.com>
  libquadmath		Jakub Jelinek		<jakub@redhat.com>
  libvtv			Caroline Tice		<cmtice@google.com>
  libphobos		Iain Buclaw		<ibuclaw@gdcproject.org>
  line map		Dodji Seketeli		<dodji@redhat.com>
! soft-fp			Joseph Myers		<josmyers@redhat.com>
  scheduler (+ haifa)	Jim Wilson		<wilson@tuliptree.org>
  scheduler (+ haifa)	Michael Meissner	<gnu@the-meissners.org>
  scheduler (+ haifa)	Jeff Law		<jeffreyalaw@gmail.com>
*************** jump.cc			David S. Miller		<davem@redhat
*** 217,223 ****
  web pages		Gerald Pfeifer		<gerald@pfeifer.com>
  config.sub/config.guess	Ben Elliston		<config-patches@gnu.org>
  i18n			Philipp Thomas		<pth@suse.de>
! i18n			Joseph Myers		<joseph@codesourcery.com>
  diagnostic messages	Dodji Seketeli		<dodji@redhat.com>
  diagnostic messages	David Malcolm		<dmalcolm@redhat.com>
  build machinery (*.in)	Paolo Bonzini		<bonzini@gnu.org>
--- 218,224 ----
  web pages		Gerald Pfeifer		<gerald@pfeifer.com>
  config.sub/config.guess	Ben Elliston		<config-patches@gnu.org>
  i18n			Philipp Thomas		<pth@suse.de>
! i18n			Joseph Myers		<josmyers@redhat.com>
  diagnostic messages	Dodji Seketeli		<dodji@redhat.com>
  diagnostic messages	David Malcolm		<dmalcolm@redhat.com>
  build machinery (*.in)	Paolo Bonzini		<bonzini@gnu.org>
*************** build machinery (*.in)	Nathanael Nerode
*** 225,238 ****
  build machinery (*.in)	Alexandre Oliva		<aoliva@gcc.gnu.org>
  build machinery (*.in)	Ralf Wildenhues		<Ralf.Wildenhues@gmx.de>
  docs co-maintainer	Gerald Pfeifer		<gerald@pfeifer.com>
! docs co-maintainer	Joseph Myers		<joseph@codesourcery.com>
! docs co-maintainer	Sandra Loosemore	<sandra@codesourcery.com>
  docstring relicensing	Gerald Pfeifer		<gerald@pfeifer.com>
! docstring relicensing	Joseph Myers		<joseph@codesourcery.com>
  predict.def		Jan Hubicka		<hubicka@ucw.cz>
  gcov			Jan Hubicka		<hubicka@ucw.cz>
  gcov			Nathan Sidwell		<nathan@acm.org>
! option handling		Joseph Myers		<joseph@codesourcery.com>
  middle-end		Jeff Law		<jeffreyalaw@gmail.com>
  middle-end		Ian Lance Taylor	<ian@airs.com>
  middle-end		Richard Biener		<rguenther@suse.de>
--- 226,239 ----
  build machinery (*.in)	Alexandre Oliva		<aoliva@gcc.gnu.org>
  build machinery (*.in)	Ralf Wildenhues		<Ralf.Wildenhues@gmx.de>
  docs co-maintainer	Gerald Pfeifer		<gerald@pfeifer.com>
! docs co-maintainer	Joseph Myers		<josmyers@redhat.com>
! docs co-maintainer	Sandra Loosemore	<sloosemore@baylibre.com>
  docstring relicensing	Gerald Pfeifer		<gerald@pfeifer.com>
! docstring relicensing	Joseph Myers		<josmyers@redhat.com>
  predict.def		Jan Hubicka		<hubicka@ucw.cz>
  gcov			Jan Hubicka		<hubicka@ucw.cz>
  gcov			Nathan Sidwell		<nathan@acm.org>
! option handling		Joseph Myers		<josmyers@redhat.com>
  middle-end		Jeff Law		<jeffreyalaw@gmail.com>
  middle-end		Ian Lance Taylor	<ian@airs.com>
  middle-end		Richard Biener		<rguenther@suse.de>
*************** auto-vectorizer		Zdenek Dvorak		<ook@ucw
*** 251,260 ****
  loop infrastructure	Zdenek Dvorak		<ook@ucw.cz>
  loop ivopts		Bin Cheng		<bin.cheng@linux.alibaba.com>
  loop optimizer		Bin Cheng		<bin.cheng@linux.alibaba.com>
! OpenACC			Thomas Schwinge		<thomas@codesourcery.com>
! OpenACC			Tobias Burnus		<tobias@codesourcery.com>
  OpenMP			Jakub Jelinek		<jakub@redhat.com>
! OpenMP			Tobias Burnus		<tobias@codesourcery.com>
  testsuite		Rainer Orth		<ro@CeBiTec.Uni-Bielefeld.DE>
  testsuite		Mike Stump		<mikestump@comcast.net>
  register allocation	Vladimir Makarov	<vmakarov@redhat.com>
--- 252,261 ----
  loop infrastructure	Zdenek Dvorak		<ook@ucw.cz>
  loop ivopts		Bin Cheng		<bin.cheng@linux.alibaba.com>
  loop optimizer		Bin Cheng		<bin.cheng@linux.alibaba.com>
! OpenACC			Thomas Schwinge		<tschwinge@baylibre.com>
! OpenACC			Tobias Burnus		<tburnus@baylibre.com>
  OpenMP			Jakub Jelinek		<jakub@redhat.com>
! OpenMP			Tobias Burnus		<tburnus@baylibre.com>
  testsuite		Rainer Orth		<ro@CeBiTec.Uni-Bielefeld.DE>
  testsuite		Mike Stump		<mikestump@comcast.net>
  register allocation	Vladimir Makarov	<vmakarov@redhat.com>
*************** arc port		Claudiu Zissulescu	<claziss@sy
*** 272,285 ****
  callgraph		Martin Jambor		<mjambor@suse.cz>
  C front end		Marek Polacek		<polacek@redhat.com>
  CTF, BTF		Indu Bhagat		<indu.bhagat@oracle.com>
! CTF, BTF		David Faust		<david.faust@oracle.com>
  dataflow		Paolo Bonzini		<bonzini@gnu.org>
  dataflow		Seongbae Park		<seongbae.park@gmail.com>
  dataflow		Kenneth Zadeck		<zadeck@naturalbridge.com>
! driver			Joseph Myers		<joseph@codesourcery.com>
  Fortran			Harald Anlauf		<anlauf@gmx.de>
  Fortran			Janne Blomqvist		<jb@gcc.gnu.org>
! Fortran			Tobias Burnus		<tobias@codesourcery.com>
  Fortran			François-Xavier Coudert	<fxcoudert@gcc.gnu.org>
  Fortran			Jerry DeLisle		<jvdelisle@gcc.gnu.org>
  Fortran			Erik Edelmann		<erik.edelmann@iki.fi>
--- 273,286 ----
  callgraph		Martin Jambor		<mjambor@suse.cz>
  C front end		Marek Polacek		<polacek@redhat.com>
  CTF, BTF		Indu Bhagat		<indu.bhagat@oracle.com>
! CTF, BTF, bpf port	David Faust		<david.faust@oracle.com>
  dataflow		Paolo Bonzini		<bonzini@gnu.org>
  dataflow		Seongbae Park		<seongbae.park@gmail.com>
  dataflow		Kenneth Zadeck		<zadeck@naturalbridge.com>
! driver			Joseph Myers		<josmyers@redhat.com>
  Fortran			Harald Anlauf		<anlauf@gmx.de>
  Fortran			Janne Blomqvist		<jb@gcc.gnu.org>
! Fortran			Tobias Burnus		<tburnus@baylibre.com>
  Fortran			François-Xavier Coudert	<fxcoudert@gcc.gnu.org>
  Fortran			Jerry DeLisle		<jvdelisle@gcc.gnu.org>
  Fortran			Erik Edelmann		<erik.edelmann@iki.fi>
*************** Plugin			Le-Chun Wu		<lcwu@google.com>
*** 305,310 ****
--- 306,313 ----
  register allocation	Peter Bergner		<bergner@linux.ibm.com>
  register allocation	Kenneth Zadeck		<zadeck@naturalbridge.com>
  register allocation	Seongbae Park		<seongbae.park@gmail.com>
+ riscv port		Robin Dapp		<rdapp.gcc@gmail.com>
+ riscv port		Juzhe Zhong		<juzhe.zhong@rivai.ai>
  RTL optimizers		Steven Bosscher		<steven@gcc.gnu.org>
  selective scheduling	Andrey Belevantsev	<abel@ispras.ru>
  selective scheduling	Alexander Monakov	<amonakov@ispras.ru>
*************** from other maintainers or reviewers.
*** 319,326 ****
  			Write After Approval	(last name alphabetical order)
  
  Mark G. Adams					<mark.g.adams@sympatico.ca>
  Pedro Alves					<palves@redhat.com>
! Paul-Antoine Arras				<pa@codesourcery.com>
  Arsen Arsenović		      	    		<arsen@aarsen.me>
  Raksit Ashok					<raksit@google.com>
  Matt Austern					<austern@google.com>
--- 322,330 ----
  			Write After Approval	(last name alphabetical order)
  
  Mark G. Adams					<mark.g.adams@sympatico.ca>
+ Ajit Kumar Agarwal				<aagarwa1@linux.ibm.com>
  Pedro Alves					<palves@redhat.com>
! Paul-Antoine Arras				<parras@baylibre.com>
  Arsen Arsenović		      	    		<arsen@aarsen.me>
  Raksit Ashok					<raksit@google.com>
  Matt Austern					<austern@google.com>
*************** David Ayers					<ayers@fsfe.org>
*** 328,333 ****
--- 332,338 ----
  Prakhar Bahuguna				<prakhar.bahuguna@arm.com>
  Giovanni Bajo					<giovannibajo@gcc.gnu.org>
  Simon Baldwin					<simonb@google.com>
+ Richard Ball					<richard.ball@arm.com>
  Scott Bambrough					<scottb@netwinder.org>
  Wolfgang Bangerth				<bangerth@dealii.org>
  Gergö Barany					<gergo@codesourcery.com>
*************** Andrew Bennett					<andrew.bennett@imgte
*** 340,346 ****
  Andrew Benson					<abensonca@gmail.com>
  Daniel Berlin					<dberlin@dberlin.org>
  Pat Bernardi					<bernardi@adacore.com>
! Jan Beulich					<jbeulich@novell.com>
  David Billinghurst				<David.Billinghurst@riotinto.com>
  Tomas Bily					<tbily@suse.cz>
  Laurynas Biveinis				<laurynas.biveinis@gmail.com>
--- 345,351 ----
  Andrew Benson					<abensonca@gmail.com>
  Daniel Berlin					<dberlin@dberlin.org>
  Pat Bernardi					<bernardi@adacore.com>
! Jan Beulich					<jbeulich@suse.com>
  David Billinghurst				<David.Billinghurst@riotinto.com>
  Tomas Bily					<tbily@suse.cz>
  Laurynas Biveinis				<laurynas.biveinis@gmail.com>
*************** Gabriel Charette				<gchare@google.com>
*** 367,374 ****
--- 372,381 ----
  Chandra Chavva					<cchavva@redhat.com>
  Dehao Chen					<dehao@google.com>
  Fabien Chêne					<fabien@gcc.gnu.org>
+ Monk Chiang					<monkchiang@gmail.com>
  Clément Chigot					<chigot@adacore.com>
  Harshit Chopra					<harshit@google.com>
+ Juergen Christ					<jchrist@linux.ibm.com>
  Tamar Christina					<tamar.christina@arm.com>
  Eric Christopher				<echristo@gmail.com>
  Paul Clarke					<pc@us.ibm.com>
*************** Lawrence Crowl					<crowl@google.com>
*** 384,390 ****
  Lili Cui					<lili.cui@intel.com>
  Ian Dall					<ian@beware.dropbear.id.au>
  David Daney					<david.daney@caviumnetworks.com>
- Robin Dapp					<rdapp@linux.ibm.com>
  Simon Dardis					<simon.dardis@gmail.com>
  Sudakshina Das					<sudi.das@arm.com>
  Bud Davis					<jmdavis@link.com>
--- 391,396 ----
*************** Chris Demetriou					<cgd@google.com>
*** 392,397 ****
--- 398,404 ----
  Sameera Deshpande				<sameera.deshpande@linaro.org>
  Wilco Dijkstra					<wdijkstr@arm.com>
  Benoit Dupont de Dinechin			<benoit.dupont-de-dinechin@st.com>
+ Lehua Ding					<lehua.ding@rivai.ai>
  Jason Eckhardt					<jle@rice.edu>
  Bernd Edlinger					<bernd.edlinger@hotmail.de>
  Phil Edwards					<pme@gcc.gnu.org>
*************** Chris Fairles					<cfairles@gcc.gnu.org>
*** 406,415 ****
--- 413,424 ----
  Alessandro Fanfarillo				<fanfarillo.gcc@gmail.com>
  Changpeng Fang					<changpeng.fang@amd.com>
  Sam Feifer					<sfeifer@redhat.com>
+ Eric Feng						<ef2648@columbia.edu>
  Li Feng						<nemokingdom@gmail.com>
  Thomas Fitzsimmons				<fitzsim@redhat.com>
  Alexander Fomin					<afomin.mailbox@gmail.com>
  Brian Ford					<ford@vss.fsi.com>
+ Matthew Fortune					<mfortune@gmail.com>
  John Freeman					<jfreeman08@gmail.com>
  Nathan Froyd					<froydnj@gcc.gnu.org>
  Chao-ying Fu					<fu@mips.com>
*************** Gary Funck					<gary@intrepid.com>
*** 417,422 ****
--- 426,432 ----
  Pompapathi V Gadad				<Pompapathi.V.Gadad@nsc.com>
  Eric Gallager					<egall@gwmail.gwu.edu>
  Gopalasubramanian Ganesh			<Ganesh.Gopalasubramanian@amd.com>
+ Fei Gao						<gaofei@eswincomputing.com>
  Kaveh Ghazi					<ghazi@gcc.gnu.org>
  Doug Gilmore					<Doug.Gilmore@imgtec.com>
  Matthew Gingell					<gingell@gnat.com>
*************** Haochen Gui					<guihaoc@gcc.gnu.org>
*** 434,443 ****
  Jiufu Guo					<guojiufu@linux.ibm.com>
  Xuepeng Guo					<terry.xpguo@gmail.com>
  Wei Guozhi					<carrot@google.com>
  Naveen H.S					<naveenh@marvell.com>
  Mostafa Hagog					<hagog@gcc.gnu.org>
  Andrew Haley					<aph@redhat.com>
! Frederik Harwath				<frederik@codesourcery.com>
  Stuart Hastings					<stuart@apple.com>
  Michael Haubenwallner				<michael.haubenwallner@ssi-schaefer.com>
  Pat Haugen					<pthaugen@us.ibm.com>
--- 444,456 ----
  Jiufu Guo					<guojiufu@linux.ibm.com>
  Xuepeng Guo					<terry.xpguo@gmail.com>
  Wei Guozhi					<carrot@google.com>
+ Vineet Gupta					<vineetg@rivosinc.com>
  Naveen H.S					<naveenh@marvell.com>
  Mostafa Hagog					<hagog@gcc.gnu.org>
+ Jivan Hakobyan					<jivanhakobyan9@gmail.com>
  Andrew Haley					<aph@redhat.com>
! Demin Han					<demin.han@starfivetech.com>
! Frederik Harwath				<frederik@harwath.name>
  Stuart Hastings					<stuart@apple.com>
  Michael Haubenwallner				<michael.haubenwallner@ssi-schaefer.com>
  Pat Haugen					<pthaugen@us.ibm.com>
*************** Matthew Hiller					<hiller@redhat.com>
*** 454,465 ****
--- 467,480 ----
  Kazu Hirata					<kazu@codesourcery.com>
  Manfred Hollstein				<mh@suse.com>
  Cong Hou					<congh@google.com>
+ Lin Hu						<lin1.hu@intel.com>
  Falk Hueffner					<falk@debian.org>
  Andrew John Hughes				<gnu_andrew@member.fsf.org>
  Dominique d'Humieres				<dhumieres.dominique@free.fr>
  Andy Hutchinson					<hutchinsonandy@aim.com>
  Joel Hutton					<joel.hutton@arm.com>
  Lewis Hyatt					<lhyatt@gmail.com>
+ Paul Iannetta					<piannetta@kalrayinc.com>
  Roland Illig					<roland.illig@gmx.de>
  Meador Inge					<meadori@codesourcery.com>
  Bernardo Innocenti				<bernie@develer.com>
*************** Fariborz Jahanian				<fjahanian@apple.co
*** 475,486 ****
--- 490,503 ----
  Surya Kumari Jangala				<jskumari@linux.ibm.com>
  Haochen Jiang					<haochen.jiang@intel.com>
  Qian Jianhua					<qianjh@fujitsu.com>
+ Michal Jires					<mjires@suse.cz>
  Janis Johnson					<janis.marie.johnson@gmail.com>
  Teresa Johnson					<tejohnson@google.com>
  Kean Johnston					<jkj@sco.com>
  Phillip Jordan					<phillip.m.jordan@gmail.com>
  Tim Josling					<tej@melbpc.org.au>
  Victor Kaplansky				<victork@il.ibm.com>
+ Filip Kastl					<fkastl@suse.cz>
  Geoffrey Keating				<geoffk@geoffk.org>
  Brendan Kehoe					<brendan@zen.org>
  Andi Kleen					<andi@firstfloor.org>
*************** Marc Lehmann					<pcg@goof.com>
*** 517,534 ****
  James Lemke					<jim@lemke.org>
  Ilya Leoshkevich				<iii@linux.ibm.com>
  Kriang Lerdsuwanakij				<lerdsuwa@users.sourceforge.net>
  Renlin Li					<renlin.li@arm.com>
  Xinliang David Li				<davidxl@google.com>
  Chen Liqin					<liqin.gcc@gmail.com>
  Martin Liska					<mliska@suse.cz>
  Jiangning Liu					<jiangning.liu@arm.com>
  Sa Liu						<saliu@de.ibm.com>
  Ralph Loader					<rcl@ihug.co.nz>
  Sheldon Lobo					<sheldon.lobo@oracle.com
  Gabor Loki					<loki@inf.u-szeged.hu>
  Manuel López-Ibáñez				<manu@gcc.gnu.org>
! Carl Love					<cel@us.ibm.com>
  Martin v. Löwis					<loewis@informatik.hu-berlin.de>
  H.J. Lu						<hjl.tools@gmail.com>
  Xiong Hu Luo					<luoxhu@gcc.gnu.org>
  Bin Bin Lv					<shlb@linux.ibm.com>
--- 534,554 ----
  James Lemke					<jim@lemke.org>
  Ilya Leoshkevich				<iii@linux.ibm.com>
  Kriang Lerdsuwanakij				<lerdsuwa@users.sourceforge.net>
+ Pan Li						<pan2.li@intel.com>
  Renlin Li					<renlin.li@arm.com>
  Xinliang David Li				<davidxl@google.com>
  Chen Liqin					<liqin.gcc@gmail.com>
  Martin Liska					<mliska@suse.cz>
+ Hao Liu					<hliu@os.amperecomputing.com>
  Jiangning Liu					<jiangning.liu@arm.com>
  Sa Liu						<saliu@de.ibm.com>
  Ralph Loader					<rcl@ihug.co.nz>
  Sheldon Lobo					<sheldon.lobo@oracle.com
  Gabor Loki					<loki@inf.u-szeged.hu>
  Manuel López-Ibáñez				<manu@gcc.gnu.org>
! Carl Love					<cel@linux.ibm.com>
  Martin v. Löwis					<loewis@informatik.hu-berlin.de>
+ Edwin Lu						<ewlu@rivosinc.com>
  H.J. Lu						<hjl.tools@gmail.com>
  Xiong Hu Luo					<luoxhu@gcc.gnu.org>
  Bin Bin Lv					<shlb@linux.ibm.com>
*************** Simon Martin					<simartin@users.sourcef
*** 544,549 ****
--- 564,570 ----
  Alejandro Martinez				<alejandro.martinezvicente@arm.com>
  Ranjit Mathew					<rmathew@hotmail.com>
  Paulo Matos					<pmatos@linki.tools>
+ Ken Matsui					<kmatsui@gcc.gnu.org>
  Michael Matz					<matz@suse.de>
  Greg McGary					<gkm@gnu.org>
  Roland McGrath					<roland@hack.frob.com>
*************** Jim Meyering					<jim@meyering.net>
*** 554,559 ****
--- 575,581 ----
  Martin Michlmayr				<tbm@cyrius.com>
  Lee Millward					<lee.millward@gmail.com>
  Immad Mir					<mir@sourceware.org>
+ Cupertino Miranda				<cupertino.miranda@oracle.com>
  Dragan Mladjenovic				<Dragan.Mladjenovic@syrmia.com>
  Alan Modra					<amodra@gmail.com>
  Catherine Moore					<clm@codesourcery.com>
*************** Brooks Moses					<bmoses@google.com>
*** 562,569 ****
--- 584,593 ----
  Dirk Mueller					<dmueller@suse.de>
  Phil Muldoon					<pmuldoon@redhat.com>
  Gaius Mulley					<gaiusmod2@gmail.com>
+ Christoph Müllner				<christoph.muellner@vrull.eu>
  Steven Munroe					<munroesj52@gmail.com>
  Szabolcs Nagy					<szabolcs.nagy@arm.com>
+ Victor Do Nascimento				<victor.donascimento@arm.com>
  Quentin Neill					<quentin.neill.gnu@gmail.com>
  Adam Nemet					<adambnemet@gmail.com>
  Thomas Neumann					<tneumann@users.sourceforge.net>
*************** Dorit Nuzman					<dorit@il.ibm.com>
*** 575,583 ****
--- 599,610 ----
  David O'Brien					<obrien@FreeBSD.org>
  Carlos O'Donell					<carlos@redhat.com>
  Peter O'Gorman					<pogma@thewrittenword.com>
+ Patrick O'Neill					<patrick@rivosinc.com>
  Braden Obrzut					<admin@maniacsvault.net>
+ Tsukasa Oi					<research_trasio@irq.a4lg.com>
  Andrea Ornstein					<andrea.ornstein@st.com>
  Maxim Ostapenko					<m.ostapenko@samsung.com>
+ Jeevitha Palanisamy				<jeevitha@linux.ibm.com>
  Patrick Palka					<ppalka@gcc.gnu.org>
  Srinath Parvathaneni				<srinath.parvathaneni@arm.com>
  Devang Patel					<dpatel@apple.com>
*************** Antoniu Pop					<antoniu.pop@gmail.com>
*** 594,604 ****
--- 621,633 ----
  Siddhesh Poyarekar				<siddhesh@gotplt.org>
  Vidya Praveen					<vidyapraveen@arm.com>
  Thomas Preud'homme				<thomas.preudhomme@celest.fr>
+ Benjamin Priour					<priour.be@gmail.com>
  Vladimir Prus					<vladimir@codesourcery.com>
  Hafiz Abid Qadeer				<abidh@codesourcery.com>
  Yao Qi						<yao@codesourcery.com>
  Jerry Quinn					<jlquinn@optonline.net>
  Navid Rahimi					<navidrahimi@microsoft.com>
+ Rishi Raj						<rishiraj45035@gmail.com>
  Easwaran Raman					<eraman@google.com>
  Joe Ramsay					<joe.ramsay@arm.com>
  Rolf Rasmussen					<rolfwr@gcc.gnu.org>
*************** Svein Seldal					<svein@dev.seldal.com>
*** 628,633 ****
--- 657,663 ----
  Senthil Kumar Selvaraj				<saaadhu@gcc.gnu.org>
  Thiemo Seufer					<ths@networkno.de>
  Bill Seurer					<seurer@linux.vnet.ibm.com>
+ Nathaniel Shead					<nathanieloshead@gmail.com>
  Tim Shen					<timshen@google.com>
  David Sherwood					<david.sherwood@arm.com>
  Sharad Singhai					<singhai@google.com>
*************** Edward Smith-Rowland				<esmithrowland@g
*** 639,650 ****
  Anatoly Sokolov					<aesok@dol.ru>
  Michael Sokolov					<msokolov@ivan.Harhan.ORG>
  Jayant Sonar					<rsonar.jayant@gmail.com>
  Richard Stallman				<rms@gnu.org>
  Basile Starynkevitch				<basile@starynkevitch.net>
  Jakub Staszak					<kuba@et.pl>
  Graham Stott					<graham.stott@btinternet.com>
  Jeff Sturm					<jsturm@gcc.gnu.org>
- YunQiang Su					<yunqiang.su@cipunited.com>
  Robert Suchanek					<rsuchy84@gmail.com>
  Andrew Sutton					<andrew.n.sutton@gmail.com>
  Gabriele Svelto					<gabriele.svelto@st.com>
--- 669,680 ----
  Anatoly Sokolov					<aesok@dol.ru>
  Michael Sokolov					<msokolov@ivan.Harhan.ORG>
  Jayant Sonar					<rsonar.jayant@gmail.com>
+ Fangrui Song	                                <maskray@gcc.gnu.org>
  Richard Stallman				<rms@gnu.org>
  Basile Starynkevitch				<basile@starynkevitch.net>
  Jakub Staszak					<kuba@et.pl>
  Graham Stott					<graham.stott@btinternet.com>
  Jeff Sturm					<jsturm@gcc.gnu.org>
  Robert Suchanek					<rsuchy84@gmail.com>
  Andrew Sutton					<andrew.n.sutton@gmail.com>
  Gabriele Svelto					<gabriele.svelto@st.com>
*************** Dinar Temirbulatov				<dtemirbulatov@gma
*** 658,664 ****
  Kresten Krab Thorup				<krab@gcc.gnu.org>
  Kai Tietz					<ktietz70@googlemail.com>
  Ilya Tocar					<tocarip@gmail.com>
! Petter Tomner					<tomner@kth.se>
  Philipp Tomsich					<philipp.tomsich@vrull.eu>
  Daniel Towner					<dant@picochip.com>
  Konrad Trifunovic				<konrad.trifunovic@inria.fr>
--- 688,694 ----
  Kresten Krab Thorup				<krab@gcc.gnu.org>
  Kai Tietz					<ktietz70@googlemail.com>
  Ilya Tocar					<tocarip@gmail.com>
! Petter Tomner					<tomner@bahnhof.se>
  Philipp Tomsich					<philipp.tomsich@vrull.eu>
  Daniel Towner					<dant@picochip.com>
  Konrad Trifunovic				<konrad.trifunovic@inria.fr>
*************** Marcel Vollweiler				<marcel@codesourcer
*** 680,691 ****
--- 710,723 ----
  Ville Voutilainen				<ville.voutilainen@gmail.com>
  Nenad Vukicevic					<nenad@intrepid.com>
  Feng Wang					<fengwang@nudt.edu.cn>
+ Feng Wang					<wangfeng@eswincomputing.com>
  Hongyu Wang					<hongyu.wang@intel.com>
  Jiong Wang					<jiong.wang@arm.com>
  Stephen M. Webb					<stephen.webb@bregmasoft.com>
  John Wehle					<john@feith.com>
  Florian Weimer					<fweimer@redhat.com>
  Zack Weinberg					<zackw@panix.com>
+ Alexander Westbrooks			<alexanderw@gcc.gnu.org>
  Mark Wielaard					<mark@gcc.gnu.org>
  Edmar Wienskoski				<edmar@freescale.com>
  Ollie Wild					<aaw@google.com>
*************** Jonathan Wright					<jonathan.wright@arm
*** 697,707 ****
  Ruoyao Xi					<xry111@xry111.site>
  Mingjie Xing					<mingjie.xing@gmail.com>
  Chenghua Xu					<paul.hua.gm@gmail.com>
  Canqun Yang					<canqun@nudt.edu.cn>
  Fei Yang					<felix.yang@huawei.com>
  Jeffrey Yasskin					<jyasskin@google.com>
  Joey Ye						<joey.ye@arm.com>
! Kwok Cheung Yeung				<kcy@codesourcery.com>
  Greta Yorsh					<greta.yorsh@arm.com>
  David Yuste					<david.yuste@gmail.com>
  Adhemerval Zanella				<azanella@linux.vnet.ibm.com>
--- 729,740 ----
  Ruoyao Xi					<xry111@xry111.site>
  Mingjie Xing					<mingjie.xing@gmail.com>
  Chenghua Xu					<paul.hua.gm@gmail.com>
+ Li Xu						<xuli1@eswincomputing.com>
  Canqun Yang					<canqun@nudt.edu.cn>
  Fei Yang					<felix.yang@huawei.com>
  Jeffrey Yasskin					<jyasskin@google.com>
  Joey Ye						<joey.ye@arm.com>
! Kwok Cheung Yeung				<kcyeung@baylibre.com>
  Greta Yorsh					<greta.yorsh@arm.com>
  David Yuste					<david.yuste@gmail.com>
  Adhemerval Zanella				<azanella@linux.vnet.ibm.com>
*************** Certificate of Origin Version 1.1.  See
*** 727,732 ****
--- 760,769 ----
  information.
  
  
+ Juergen Christ                                  <jchrist@linux.ibm.com>
+ Robin Dapp					<rdapp.gcc@gmail.com>
+ Robin Dapp					<rdapp@ventanamicro.com>
+ Michal Jires					<mjires@suse.cz>
  Matthias Kretz					<m.kretz@gsi.de>
  Tim Lange					<mail@tim-lange.me>
  Jeff Law					<jeffreyalaw@gmail.com>
*************** Jeff Law					<jlaw@tachyum.com>
*** 734,746 ****
  Jeff Law					<jlaw@ventanamicro.com>
  Immad Mir					<mir@sourceware.org>
  Gaius Mulley					<gaiusmod2@gmail.com>
  Siddhesh Poyarekar				<siddhesh@gotplt.org>
  Navid Rahimi					<navidrahimi@microsoft.com>
  Trevor Saunders					<tbsaunde+gcc@tbsaunde.org>
  Bill Schmidt					<bill.schmidt@fastmail.com>
  Nathan Sidwell					<nathan@acm.org>
  Edward Smith-Rowland				<esmithrowland@gmail.com>
! Petter Tomner					<tomner@kth.se>
  Martin Uecker					<uecker@gcc.gnu.org>
  Jonathan Wakely					<jwakely@redhat.com>
  Chung-Ju Wu					<jasonwucj@gmail.com>
--- 771,789 ----
  Jeff Law					<jlaw@ventanamicro.com>
  Immad Mir					<mir@sourceware.org>
  Gaius Mulley					<gaiusmod2@gmail.com>
+ Andrew Pinski					<quic_apinski@quicinc.com>
  Siddhesh Poyarekar				<siddhesh@gotplt.org>
  Navid Rahimi					<navidrahimi@microsoft.com>
+ Rishi Raj						<rishiraj45035@gmail.com>
  Trevor Saunders					<tbsaunde+gcc@tbsaunde.org>
  Bill Schmidt					<bill.schmidt@fastmail.com>
+ Nathaniel Shead					<nathanieloshead@gmail.org>
  Nathan Sidwell					<nathan@acm.org>
  Edward Smith-Rowland				<esmithrowland@gmail.com>
! Fangrui Song	                                <maskray@gcc.gnu.org>
! Kyrylo Tkachov					<ktkachov@gcc.gnu.org>
! Petter Tomner					<tomner@bahnhof.se>
  Martin Uecker					<uecker@gcc.gnu.org>
  Jonathan Wakely					<jwakely@redhat.com>
+ Alexander Westbrooks			<alexanderw@gcc.gnu.org>
  Chung-Ju Wu					<jasonwucj@gmail.com>
diff -Nrcpad gcc-13.2.0/MD5SUMS gcc-14.1.0/MD5SUMS
*** gcc-13.2.0/MD5SUMS	Thu Jul 27 08:43:38 2023
--- gcc-14.1.0/MD5SUMS	Tue May  7 07:20:38 2024
***************
*** 1,5 ****
! # This file contains the MD5 checksums of the files in the 
! # gcc-13.2.0.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
! # This file contains the MD5 checksums of the files in the
! # gcc-14.1.0.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
***************
*** 10,60 ****
  #
  c234515d9056662b94af0653f8562888  .dir-locals.el
  5b296b32e07d2a84f4ac051ed7f95b91  .gitattributes
! 78f03ce2c5b940584941e67069126a48  .gitignore
  8c00452ef1e298846493ec8b239f93e2  ABOUT-NLS
  59530bdf33659b29e73d4adb9f9f6552  COPYING
  2d5025d4aa3495befef8f17206a5b0a1  COPYING.LIB
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! f17f1d70069613f64e9f95bb0e974bd1  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! e611a6d09222f5d36a873ea66fe9a9f2  INSTALL/binaries.html
! a2eb6e11d0c89068f788113372c76b23  INSTALL/build.html
! b9ec3c7a83c86f7307278e13f486234d  INSTALL/configure.html
! b505e790ec3f9e097a4b1d43a7bdd178  INSTALL/download.html
! 06e5c3d38f648573ed6e03c7bbbb672c  INSTALL/finalinstall.html
! fe07f4a77b2b246f67cc5eae162b510e  INSTALL/gfdl.html
! 1d59b420876d0ffc1fa8dd47836597cb  INSTALL/index.html
! cd5076051085f5cff39d8bfe54d1e160  INSTALL/prerequisites.html
! 2c354642f325b07772e4d3c926b98f79  INSTALL/specific.html
! 62069886bede1942dc164b60e4e4f62c  INSTALL/test.html
! dadd56ae78af90859a5dc25de70e7872  LAST_UPDATED
! 81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
! 2b61ddbd876fa839639a7ca551773426  Makefile.def
! cd4f0a8b49cee46e90b2bc67bea3158e  Makefile.in
! 04a743630d1f6ef760bcb6ee98e801d1  Makefile.tpl
! f2f7ce95f8e3cdf89c8ad5b0059bbf0c  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 7b60b473400285c1914f4d39e1b8583b  c++tools/ChangeLog
! 032c26e766fcea31a5d1a469ae7bf9e1  c++tools/Makefile.in
  edf805e559bf9ecb62db313d2e6edb47  c++tools/config.h.in
! ccd3498e6b247dfe4e65793a88a27296  c++tools/configure
! 36d275ea6dd9691ffdb6a8e36416e5f9  c++tools/configure.ac
! 5abf02a9f70f5107dad4e21f3c564a58  c++tools/resolver.cc
! 262db8428e607466fb680eab34471cef  c++tools/resolver.h
! 96e9ad871ea6a15a37175a9c968bdb78  c++tools/server.cc
  500b9244caa7a7ab23ece1db37efa76d  compile
  0a5df71d999a1a0135a99ab79fb42e4f  config-ml.in
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! dfa132eda55872de1294defa295b5f2e  config/ChangeLog
! 0d9cf183f9cbbe5f59796e35831fe774  config/acinclude.m4
! 6afba47df446a629761ab1aa13a547cf  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
  a6bf9c39c62222092ea6d5d8551c077f  config/ax_check_define.m4
  fa1446baa94824d733d33eb615217d23  config/ax_count_cpus.m4
--- 10,63 ----
  #
  c234515d9056662b94af0653f8562888  .dir-locals.el
  5b296b32e07d2a84f4ac051ed7f95b91  .gitattributes
! 426ab4ae9cc194b71b388a6471471772  .github/CONTRIBUTING.md
! b8acb527560fc760209d200fcfab8ff4  .github/PULL_REQUEST_TEMPLATE.md
! b5dd7aa122f477b65a3aa1a980ca55fb  .gitignore
  8c00452ef1e298846493ec8b239f93e2  ABOUT-NLS
  59530bdf33659b29e73d4adb9f9f6552  COPYING
  2d5025d4aa3495befef8f17206a5b0a1  COPYING.LIB
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 51633ff6ce6a717dcfa35ad79ffa26f5  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 650686bb6beb059f5e57b947173082f7  INSTALL/binaries.html
! 6e9944a1862c2b801110ebd4ca766143  INSTALL/build.html
! 5a20d1c379df59b1ac8935094c1b49ba  INSTALL/configure.html
! f499d3f066e2d1bcebd3b75f740fcd90  INSTALL/download.html
! 94b0eab7fcae7533837effd2c162db80  INSTALL/finalinstall.html
! 7b9da5aae9658222aa54b436c5f9a9b2  INSTALL/gfdl.html
! 513e057446ca1541968d5e5041255916  INSTALL/index.html
! 8f19f75a9d521b32f49bc16ac36fdbb8  INSTALL/prerequisites.html
! cd936ec6dffb2ac2844214e009e019fe  INSTALL/specific.html
! 441a8c39e67fdcf481ea4e7fc1035e10  INSTALL/test.html
! c494711e25e73bb29087de95c42ee331  LAST_UPDATED
! 1671040823f8eb8436a06fdd18065e02  MAINTAINERS
! 304c3887135aefa27c21292ec585b0a3  Makefile.def
! 8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
! 04e7c3cf75f7111c005a8c0dee7adc5c  Makefile.tpl
! 7c2d529fe5e54bb58bee8760a5ef07b7  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
+ 9379732cf9aa74b691cf12d440536a33  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 5ca72ce6f46d9faa20ab7ea7d4beca8f  c++tools/ChangeLog
! 754745d9d027da06b78c47e63f95fd12  c++tools/Makefile.in
  edf805e559bf9ecb62db313d2e6edb47  c++tools/config.h.in
! 720de9f56ece10ad41506c5c0bbef155  c++tools/configure
! 72980da88609b8bd1fdfde2ef4068ea1  c++tools/configure.ac
! 9efa666885ee2be7507266db3b697450  c++tools/resolver.cc
! 3e0c57e4a01c27dae380ab89eceb2bbf  c++tools/resolver.h
! c1c818a7803853fba582eae0d29d974d  c++tools/server.cc
  500b9244caa7a7ab23ece1db37efa76d  compile
  0a5df71d999a1a0135a99ab79fb42e4f  config-ml.in
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! 7500f85ceacc1b43263c314b2e92957c  config/ChangeLog
! e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
! e1b259699840442ff915265a77b3a578  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
  a6bf9c39c62222092ea6d5d8551c077f  config/ax_check_define.m4
  fa1446baa94824d733d33eb615217d23  config/ax_count_cpus.m4
*************** a763364d451e805a934f6520b8b4d602  config
*** 87,110 ****
  15b8d5adf53ad5ec75f055b193a6b1c2  config/extensions.m4
  2f2de833dd86bba89d64e5813be81550  config/futex.m4
  d3eafe382a46e6747e3644cf4a55d5cc  config/gc++filt.m4
! f5c794b5ff253c9eb5f9dd60441aa951  config/gcc-plugin.m4
! 1282ef4331970c26224afd363968e276  config/gettext-sister.m4
! b90ad089e8e05e8e4a3f865bca41504f  config/gettext.m4
  29c9c3d57667bc9e6f14d625b2cd5894  config/glibc21.m4
  8df79e8a64590050a069d28f0094da95  config/gthr.m4
  c385066b0fe61ef55d44cf2619e79b26  config/gxx-include-dir.m4
! b7384c06ff3d09212ac04dbab4ce969c  config/hwcaps.m4
! bce7c97d56a16836e49ff576ffa33089  config/iconv.m4
  7cdde9f19fc614304e49342c660e2d47  config/intdiv0.m4
  e32906a3177f3b368bcd56f9e86a620c  config/inttypes-pri.m4
  b17ad59a69316040fae6c3b09187bcbc  config/inttypes.m4
  0b63117973333c343e0d0819012b8187  config/inttypes_h.m4
  f8cc157a22bc4fae23cee0f7da613154  config/isl.m4
  07787fd35e89d9397661e5026802e457  config/largefile.m4
! db111161c56fa9d53a03abfb188ad1d0  config/lcmessage.m4
  cbcbd9977ef1239ccac0c5c54d214302  config/ld-symbolic.m4
  1cbbc8830601bf43a3c42ee10a01eecd  config/lead-dot.m4
! 77931c860806547ce9fc56097a731c6f  config/lib-ld.m4
  0a70244d959a1a5320a786bc0fa37268  config/lib-link.m4
  4455537cdae70977a1283180062a2d8d  config/lib-prefix.m4
  b75e527c5a9b8dcbcfb1ac321fa244eb  config/libstdc++-raw-cxx.m4
--- 90,114 ----
  15b8d5adf53ad5ec75f055b193a6b1c2  config/extensions.m4
  2f2de833dd86bba89d64e5813be81550  config/futex.m4
  d3eafe382a46e6747e3644cf4a55d5cc  config/gc++filt.m4
! 29f1b1fc22273243f0409b3b3da84a71  config/gcc-plugin.m4
! 668132e429b5a64836ff6f2e6a52bcd2  config/gettext-sister.m4
! 891029ae654600a455aee41cac4eb400  config/gettext.m4
  29c9c3d57667bc9e6f14d625b2cd5894  config/glibc21.m4
  8df79e8a64590050a069d28f0094da95  config/gthr.m4
  c385066b0fe61ef55d44cf2619e79b26  config/gxx-include-dir.m4
! 8f800a90638a3f714bf44a8321cc5003  config/hwcaps.m4
! c5515337a3d16c0eabc21d8c8ddd0909  config/iconv.m4
  7cdde9f19fc614304e49342c660e2d47  config/intdiv0.m4
+ b954ba3fbbb84859b0d9084516bb359d  config/intlmacosx.m4
  e32906a3177f3b368bcd56f9e86a620c  config/inttypes-pri.m4
  b17ad59a69316040fae6c3b09187bcbc  config/inttypes.m4
  0b63117973333c343e0d0819012b8187  config/inttypes_h.m4
  f8cc157a22bc4fae23cee0f7da613154  config/isl.m4
  07787fd35e89d9397661e5026802e457  config/largefile.m4
! 25b1c7366ebd60470729a703332ae585  config/lcmessage.m4
  cbcbd9977ef1239ccac0c5c54d214302  config/ld-symbolic.m4
  1cbbc8830601bf43a3c42ee10a01eecd  config/lead-dot.m4
! d9835512bc6d5a706cfd0cfa62810e86  config/lib-ld.m4
  0a70244d959a1a5320a786bc0fa37268  config/lib-link.m4
  4455537cdae70977a1283180062a2d8d  config/lib-prefix.m4
  b75e527c5a9b8dcbcfb1ac321fa244eb  config/libstdc++-raw-cxx.m4
*************** e10d31316e03a59577fb4ed90a670914  config
*** 114,120 ****
  3fe4a576c2a75736c8da3af1d0824217  config/mh-cygwin
  12e3e525300d7b265337e9f2dfe0e2af  config/mh-darwin
  625bacc09b9992290d94831bd7506bd0  config/mh-djgpp
! 8fe20cd58711408e779e723c7e4981ad  config/mh-mingw
  cd7034dccd04e50150b14c597dd545a5  config/mh-pa
  76d638a67d840715b2de89afee8ef49a  config/mh-ppc-aix
  bd6855445bd58ae7e066221ade8cc55d  config/mmap.m4
--- 118,124 ----
  3fe4a576c2a75736c8da3af1d0824217  config/mh-cygwin
  12e3e525300d7b265337e9f2dfe0e2af  config/mh-darwin
  625bacc09b9992290d94831bd7506bd0  config/mh-djgpp
! fd9ed5b9d9dbb22a41f305c72c411ba1  config/mh-mingw
  cd7034dccd04e50150b14c597dd545a5  config/mh-pa
  76d638a67d840715b2de89afee8ef49a  config/mh-ppc-aix
  bd6855445bd58ae7e066221ade8cc55d  config/mmap.m4
*************** bd6855445bd58ae7e066221ade8cc55d  config
*** 122,127 ****
--- 126,134 ----
  0aeb00868c61b9095b7a4553c9637221  config/mt-android
  96289d06809692c31d71e69c4bedb6d7  config/mt-d30v
  5886463c7411d3bf8e57fcfa560b904d  config/mt-gnu
+ 7f2de8d74d2a7486a7a99027824a8636  config/mt-loongarch-elf
+ bd3775977b9abad709ebe3deee24c7ca  config/mt-loongarch-gnu
+ 2b649264bf9cf27d2fb9b4e37dab01b6  config/mt-loongarch-mlib
  1d7419534d43fda437ce0a4f0719ee5f  config/mt-mips-elfoabi
  8d6647b6e881a11ae46d9bcaeaa0bd0f  config/mt-mips-gnu
  e5f16579c830ccc42e238b49e8409e99  config/mt-mips16-compat
*************** c950e3234da1eb9ad5f29bc1c2d2ae74  config
*** 132,140 ****
  4641658da74a0c3af1b517487876ff0e  config/multi.m4
  120ec56e3aa27739a2945bc1c8a2530a  config/nls.m4
  8f2bd36861dd8e2742bcd719a977271b  config/no-executables.m4
! 5135144630c100a01c62fa64629aafb4  config/override.m4
! 9a51a7a177dce9ef0c5574cbe35de7ef  config/picflag.m4
! f82299b33f28607e9d15e486a58add90  config/pkg.m4
  a155332d4af74bcf3f4c52b4dbadca34  config/plugins.m4
  5413d2cdbde706860854a69f6fc12f81  config/po.m4
  b2d511a8a77414eda79bdee0daccfea8  config/proginstall.m4
--- 139,147 ----
  4641658da74a0c3af1b517487876ff0e  config/multi.m4
  120ec56e3aa27739a2945bc1c8a2530a  config/nls.m4
  8f2bd36861dd8e2742bcd719a977271b  config/no-executables.m4
! 1a7a7cdb62ea0c3cdec8787f3a229ce7  config/override.m4
! 063c0e9a8ccaa04af0f829badcec290b  config/picflag.m4
! d7cfead8c20016c2dab7ea5b65b075d7  config/pkg.m4
  a155332d4af74bcf3f4c52b4dbadca34  config/plugins.m4
  5413d2cdbde706860854a69f6fc12f81  config/po.m4
  b2d511a8a77414eda79bdee0daccfea8  config/proginstall.m4
*************** e2dc6b4fd62b77bff96b7951ef74f78f  config
*** 152,215 ****
  5cabffc02a90bd9698105b9eef507f11  config/warnings.m4
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
! 4dd4461c381dd94b116f27aa48dbef09  configure
! 645c07e5dbfc57dcb04d206512423d1e  configure.ac
! 3b7b0311f6477d2fbfd039eb0e904d82  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
! d6334dc7fdcc1de5203f8b6b62f993c4  contrib/analyze_brprob.py
! c3aebe01c13bbf001255992bb0803fc4  contrib/analyze_brprob_spec.py
! 913f83f0582ab5948a7fbf4eaeb8b549  contrib/bench-stringop
! 0d2c9d35564a8621ebd99510784910ca  contrib/check-MAINTAINERS.py
  14d637c1673ab29eb925fc542cf5955c  contrib/check-internal-format-escaping.py
! dd1f8b68af05959e470acd4fff813ce9  contrib/check-params-in-docs.py
! 6f50d040a8419b6dbeb71006b2ff1dd7  contrib/check_GNU_style.py
! e4e3eab9da7e8cf2ca774e50429b10f8  contrib/check_GNU_style.sh
! 3b8a071268886e456701ea9481aaf1f2  contrib/check_GNU_style_lib.py
! b599463cb9ca9ba2fe58fce7de7a37a7  contrib/check_makefile_deps.sh
! 88f4765aeacad1e91650faddfd51c900  contrib/check_warning_flags.sh
! 81decea7e3dd1933881657f158ff6a2f  contrib/clang-format
! b646693bb0832bd08dff97911d66260b  contrib/compare-all-tests
! 0ef5ec55ae1801b14055919f6de8916a  contrib/compare-debug
! 29a57cd3d6b87740ecaab780feea5709  contrib/compare-lto
! 442918871c9ab00254804ec9bc264dad  contrib/compareSumTests3
! 54f31390bacd889f234ca6a9b189a9fd  contrib/compare_tests
! a960a70b190f65e6a630a69fe24d4d4b  contrib/compare_two_ftime_report_sets
! 3715f4e694176bc70bf5643f5ee3bd11  contrib/config-list.mk
! 4bb5a9c29969602068c4a6c8d5ef4829  contrib/dg-cmp-results.sh
! 0be220e91403e88451ddd0efc33c7db3  contrib/dg-extract-results.py
! 82f2cf50ca47d3e41a0b53c4643d9166  contrib/dg-extract-results.sh
! a661bd2b87df4d1cc8be30f435c52cfe  contrib/dg-out-generator.pl
! d31803126a1e8c0cc212bf7f61d2d9ed  contrib/dglib.pm
! 947bc2db8925f4e9ea4c5c90b832b40b  contrib/download_prerequisites
! 5b857b7f41b67d7e25540a6b5af3ec29  contrib/filter-clang-warnings.py
! 080dea8d6b4a4c8c6bf8ae7b8ecf15a6  contrib/filter_gcc_for_doxygen
  db03e57377f9eb202b7b783eb81fe40d  contrib/filter_knr2ansi.pl
! b038940be99369232106ef9e9b15bee3  contrib/filter_params.py
! ee2573ec91e4e54bbc1aa0bdf1a12d25  contrib/gcc-changelog/git_check_commit.py
! 5fa93b0efd1620cf9dc6e2fb1df5ddd3  contrib/gcc-changelog/git_commit.py
! 717ec763b8dbfbe8e0a9f67613236287  contrib/gcc-changelog/git_email.py
! 727e36b4de0442d7efde9866ffc7c919  contrib/gcc-changelog/git_repository.py
! f8b96038b7565ef8063d75a74b4f84d9  contrib/gcc-changelog/git_update_version.py
  6e731268209cc6d4936196233e28bae9  contrib/gcc-changelog/setup.cfg
! b9009d939e7fc17c12d7dad23fb2c9e5  contrib/gcc-changelog/test_email.py
  6662a65218b0a11d673a65656b98d821  contrib/gcc-changelog/test_patches.txt
! 2e6ec5b0179e47a683e1c4214f9fb3af  contrib/gcc-git-customization.sh
  5c76e763f702a9ff0203a12551e348d0  contrib/gcc.doxy
! f79781b825a1f60cac072c334a70b01a  contrib/gcc_build
! 29f0fe5f421c26e8f42c43688d81ed75  contrib/gcc_update
! 7c49558a2820cb50d5d8702673cad33d  contrib/gen_autofdo_event.py
! cfeda470eddff8eb7364d970dfafd3dc  contrib/gennews
  25491ab6a5a68d252f311f5a9c6f4c8f  contrib/git-add-user-branch.sh
  7e5729822d673e846d5ef26e1f1b8591  contrib/git-add-vendor-branch.sh
! 4cd65995c69f5c7715f402ec5f2ee9fc  contrib/git-backport.py
! f03de2f6492b5449fc1a238b3104c5bc  contrib/git-commit-mklog.py
  89713b3aaf65e7ae575e6fe0c0c2adf1  contrib/git-descr.sh
  464e86ccd2b5dee7df40905d86e0be06  contrib/git-fetch-vendor.sh
! e074a10ed2cf3c78e317247bf6208823  contrib/git-fix-changelog.py
  5d80e88da5ae83c53513280bcff7c0a1  contrib/git-undescr.sh
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! 045f0b940a6c9882459b3a8a51dbb401  contrib/header-tools/ChangeLog
  72d70766ec87033813e1378c5697fa87  contrib/header-tools/README
  05ef7fb87e90ba93ee04659be072a357  contrib/header-tools/count-headers
  ba0485a3c721bce9e32407ef996d2a9d  contrib/header-tools/gcc-order-headers
--- 159,223 ----
  5cabffc02a90bd9698105b9eef507f11  config/warnings.m4
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
! db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
! eba7e6b872b1e4f0d926b2fd01a5494a  configure
! afe3388411dd3da22291f15b87d9534b  configure.ac
! 36686956a89028c8b3526ccb7498b886  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
! d18372dbb38568c6e94b1a3262a35d5f  contrib/analyze_brprob.py
! 346825ee231c04045b8c709443798e7e  contrib/analyze_brprob_spec.py
! 671d30df5bf2efc82f1755ee632f2566  contrib/bench-stringop
! d676efe4b1852dfc96eed842f4f65188  contrib/check-MAINTAINERS.py
  14d637c1673ab29eb925fc542cf5955c  contrib/check-internal-format-escaping.py
! 9c8cd85690a951da2e7d9a7e39847fc2  contrib/check-params-in-docs.py
! f7574103d32793b58a35f1ce46202841  contrib/check_GNU_style.py
! 7a514da06a24e3575fba3eb35bf874e6  contrib/check_GNU_style.sh
! 76c1b63852254d20acfd49a27213dd5d  contrib/check_GNU_style_lib.py
! a055a9b0200d9adeaa16fe24a66cb7d4  contrib/check_makefile_deps.sh
! 22f50f71c7d9da7a8cfa8f988392a949  contrib/check_warning_flags.sh
! b77abdb7223e7b1a81c9e27a4d6beffc  contrib/clang-format
! 4f8124ba6fc3f349e7982a71badb812d  contrib/compare-all-tests
! 7a77c3eaedda552e7da7574b0db534cc  contrib/compare-debug
! b6b6f9ea56349ec3e406e245a92f1425  contrib/compare-lto
! 648dd8f20ff837deacfb6a3fdcb784ad  contrib/compareSumTests3
! fc5d12bb94b4667b18df90dda451f776  contrib/compare_tests
! c30bd31956a2d8c50cdf72ff2a1bb369  contrib/compare_two_ftime_report_sets
! 8520d47ad848942cd3e8565705dcc99c  contrib/config-list.mk
! 6e3fc2a628bac9c0b2f3049583c3e106  contrib/dg-cmp-results.sh
! cbf2a4e5a4aaef288c1c65513bfc56bd  contrib/dg-extract-results.py
! f17b9bd5e6023726b04cb908e34155d7  contrib/dg-extract-results.sh
! 0ba0d6aa322decc4f336b7a57ebb0080  contrib/dg-out-generator.pl
! fd28bc6d1830dfda941f2388cae06345  contrib/dglib.pm
! 068c5ed65ed58d963681ed1342e8a823  contrib/download_prerequisites
! 891c58f484e1fa93e58b6ebbdda826b8  contrib/filter-clang-warnings.py
! 332fd0835826d637b5b6cf8db14358a5  contrib/filter_gcc_for_doxygen
  db03e57377f9eb202b7b783eb81fe40d  contrib/filter_knr2ansi.pl
! d577ea19d05f19a8364f73c9901223b7  contrib/filter_params.py
! 7da4e25ba1bb553b4302b8d64af15fda  contrib/gcc-changelog/git_check_commit.py
! 9062913257054d9add4c3efa90436780  contrib/gcc-changelog/git_commit.py
! bb86d477e77df1bd6f10ef0e82161e61  contrib/gcc-changelog/git_email.py
! 9678001f8ddc77930c22a434868793f4  contrib/gcc-changelog/git_repository.py
! f6a74f810dc8d58c86a5492bc531a0a6  contrib/gcc-changelog/git_update_version.py
  6e731268209cc6d4936196233e28bae9  contrib/gcc-changelog/setup.cfg
! 2797e6013e6326f2bf9aba63bf02ee8b  contrib/gcc-changelog/test_email.py
  6662a65218b0a11d673a65656b98d821  contrib/gcc-changelog/test_patches.txt
! 3427bfbcc03306d042726c2ff8a1215d  contrib/gcc-git-customization.sh
  5c76e763f702a9ff0203a12551e348d0  contrib/gcc.doxy
! 8476106e93020bdc9cd6173c00346731  contrib/gcc_build
! 82442fc6741ee2beff3a151b0f05b0cc  contrib/gcc_update
! 35600e627b7bcc10ab0c0bf0d443cb36  contrib/gen_autofdo_event.py
! 208bea31922ba9eb04c6ca1bc4fed3ba  contrib/gennews
  25491ab6a5a68d252f311f5a9c6f4c8f  contrib/git-add-user-branch.sh
  7e5729822d673e846d5ef26e1f1b8591  contrib/git-add-vendor-branch.sh
! 640df94821370581fbacd52eb2a83e59  contrib/git-backport.py
! cf6245464c26132b6548e87147886268  contrib/git-commit-mklog.py
  89713b3aaf65e7ae575e6fe0c0c2adf1  contrib/git-descr.sh
  464e86ccd2b5dee7df40905d86e0be06  contrib/git-fetch-vendor.sh
! 44bbc076f52d8af4c7b1eb08dd5375a4  contrib/git-fix-changelog.py
  5d80e88da5ae83c53513280bcff7c0a1  contrib/git-undescr.sh
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! ae268b66382dcf62b44700dabb05e38a  contrib/header-tools/ChangeLog
  72d70766ec87033813e1378c5697fa87  contrib/header-tools/README
  05ef7fb87e90ba93ee04659be072a357  contrib/header-tools/count-headers
  ba0485a3c721bce9e32407ef996d2a9d  contrib/header-tools/gcc-order-headers
*************** b8bfe6ffdd32bd23730587a7aab605b7  contri
*** 221,265 ****
  4997716611d1c3a1dc693e016178cb5d  contrib/header-tools/replace-header
  7f9fd87ecac948bc070878c70d4f96ce  contrib/header-tools/show-headers
  fa945bac89ee68b410027dcfe1312f4b  contrib/index-prop
! 4c2bd0b50fc4c3507dc8624432dc8a4d  contrib/jit-coverage-report.py
! bef0f96d3139ec2acebf008a1aafaca6  contrib/legacy/mklog
! 2bac6e12cbc1c996e3f9f82d57f20c67  contrib/legacy/mklog.pl
  43e3d77ae19b5c6304d6d6846792c173  contrib/make-obstacks-texi.pl
  51a10ab0d8cd98dded991335a36a61f2  contrib/make_sunver.pl
! 168c6a41bad585f5c6ee88b897faea26  contrib/mark_spam.py
! 0b8e5ae91e1d2be0a895b4960014d210  contrib/mklog.py
  9bb8c12fc069b7624268da15bd911667  contrib/paranoia.cc
! eedb9aee4fd5829d8ebc95c23a09687a  contrib/patch_tester.sh
! 0f985c999a9314df48416a4809007b35  contrib/prepare-commit-msg
! cb477dd95d5e602e9b906fc057a1fe16  contrib/prepare_patch.sh
! bad2b96e4296c0938aab1c646e9ccf33  contrib/prerequisites.md5
! 4a395ab2dd4d15d66cb0183ec7e7bbd0  contrib/prerequisites.sha512
! 808599bd0ea6449051c2d539d2f3a558  contrib/reghunt/ChangeLog
! 562a0a9f9e5cc4e9c95319b727a1df94  contrib/reghunt/bin/gcc-build-full
! f1c54c76b9d27a6ac0169fe0c8d50f9d  contrib/reghunt/bin/gcc-build-simple
  3f2318bae7562a4ad1639e686916a545  contrib/reghunt/bin/gcc-cleanup
  7e5943aa7b912e06cdb5766905e96eb7  contrib/reghunt/bin/gcc-svn-checkfail
  cd504499b51d378df198fc1c96fed2d9  contrib/reghunt/bin/gcc-svn-ids
! 2914d579362fc50fe0793d3d2a5546ce  contrib/reghunt/bin/gcc-svn-patchlist
  3e86e81ae296e0660fe17fbd507ab006  contrib/reghunt/bin/gcc-svn-recordfail
  7e9c7f64150f74c86a1bfa6bc5823252  contrib/reghunt/bin/gcc-svn-report
! 1f293689ca1ce4362136015f76749d90  contrib/reghunt/bin/gcc-svn-update
  50dc103e0edd95d6cde45a9ca782c79a  contrib/reghunt/bin/gcc-svn-update-fix
! 2134e8d3373a780e4e50d342ede62dbe  contrib/reghunt/bin/gcc-test-accepts-invalid
! 7c874058f719ed600dc41b5b103271a5  contrib/reghunt/bin/gcc-test-bogus-warning
! f08e94bcd81a724cd0a332528975497d  contrib/reghunt/bin/gcc-test-compiler-hangs
! 870e24047d99ca2d84d0fc86f6fcf186  contrib/reghunt/bin/gcc-test-ice-on-invalid-code
! 33ed46ef6ae4eabbeae190994afbe0c3  contrib/reghunt/bin/gcc-test-ice-on-valid-code
! d6f76cca982f9a9d61ab7c31961b71a5  contrib/reghunt/bin/gcc-test-missing-warning
! 98a5e91c819b7abe8cc1f8d8c9558bb5  contrib/reghunt/bin/gcc-test-rejects-valid
! 72b9b8c06eec2d06e7bf6126d8124ee3  contrib/reghunt/bin/gcc-test-segfault-on-valid-code
! e618c6834f657bc6165dadc4d5d265ac  contrib/reghunt/bin/gcc-test-wrong-code
! 859ea8aca50c96b4a6bc02cd7c8cdd84  contrib/reghunt/bin/reg-hunt
! 2d3e7d1b708f5fb0fa88ec01f958e795  contrib/reghunt/bin/reg-newmid
! 818a0cc4b1507256a5d2b74750ccde8d  contrib/reghunt/bin/reg-test
  ab31219466ac7df2a1aa15900540bc8a  contrib/reghunt/date_based/README
! 242a3857002fb1e84589f556fffa861a  contrib/reghunt/date_based/reg_periodic
! d9c1c74fcf045c3b91a58ed5ced2c3fc  contrib/reghunt/date_based/reg_search
  d3dd0bcec99c2e140b86efb5f63860b4  contrib/reghunt/date_based/reg_test_template
  dacbecec8b04ec121d7f0ae90e0c02e6  contrib/reghunt/examples/28970.c
  54297bd9eb1c9406472def597bbcd0e6  contrib/reghunt/examples/28970.config
--- 229,289 ----
  4997716611d1c3a1dc693e016178cb5d  contrib/header-tools/replace-header
  7f9fd87ecac948bc070878c70d4f96ce  contrib/header-tools/show-headers
  fa945bac89ee68b410027dcfe1312f4b  contrib/index-prop
! 724a3d58353ad9f6ee8d681871624132  contrib/jit-coverage-report.py
! abd9e34c3552e2241797d3ee4e6d01b3  contrib/legacy/mklog
! 32603c1823660a08611cc2be4fee83e9  contrib/legacy/mklog.pl
  43e3d77ae19b5c6304d6d6846792c173  contrib/make-obstacks-texi.pl
  51a10ab0d8cd98dded991335a36a61f2  contrib/make_sunver.pl
! b70475d757e276311316ab757d9b3141  contrib/mark_spam.py
! 3750caf71c3971f691d15bd3976fc335  contrib/mdcompact/mdcompact-testsuite.el
! 2f4682b551593328cd7f8431c1fe497f  contrib/mdcompact/mdcompact.el
! 4e0b2ff9279c39804751de6012b9b570  contrib/mdcompact/tests/1.md
! d63d3d39a1410d81adf6202e1774a8a0  contrib/mdcompact/tests/1.md.out
! a8ec53ebe0722cd0c4354848a74c620e  contrib/mdcompact/tests/2.md
! e2b7d94b232db5a70bf5be5271aea9f8  contrib/mdcompact/tests/2.md.out
! 9cb8ef78c2479f605b22273edb8a2759  contrib/mdcompact/tests/3.md
! 4926159b078444391c394fac3bd17be8  contrib/mdcompact/tests/3.md.out
! 3b28eea67210a7688e06510c8b978b25  contrib/mdcompact/tests/4.md
! 3b28eea67210a7688e06510c8b978b25  contrib/mdcompact/tests/4.md.out
! cf3dae99e204e6f0572d227518dbd000  contrib/mdcompact/tests/5.md
! 8568ab8d2c88fb8bfe75bab835fb3234  contrib/mdcompact/tests/5.md.out
! ef13953e64bd4e093d01aad4a9309c10  contrib/mdcompact/tests/6.md
! ef13953e64bd4e093d01aad4a9309c10  contrib/mdcompact/tests/6.md.out
! e4c7c4ac31575610ebd46840cc5d9ac6  contrib/mdcompact/tests/7.md
! bda0e2d8e6960465c7778fe3856cdacc  contrib/mdcompact/tests/7.md.out
! 3a80832f74bf7425748afe44a97fe3c5  contrib/mklog.py
  9bb8c12fc069b7624268da15bd911667  contrib/paranoia.cc
! dbfe7cf00dca8ee18891904128e30197  contrib/patch_tester.sh
! d5890495d38471958819f7ea2d90456b  contrib/prepare-commit-msg
! 5e5c3cf7689ee8774db226fbf3e91064  contrib/prepare_patch.sh
! 2809fb88a72709fdece476dcdcb841a4  contrib/prerequisites.md5
! 17fac6b39df387ffce2f399bf24a4193  contrib/prerequisites.sha512
! e05f035904c37bec32a927fb80018284  contrib/reghunt/ChangeLog
! c38a4226b3d372b76f3108df8248f962  contrib/reghunt/bin/gcc-build-full
! eefa9babb239300ac518b7cff0ede7c7  contrib/reghunt/bin/gcc-build-simple
  3f2318bae7562a4ad1639e686916a545  contrib/reghunt/bin/gcc-cleanup
  7e5943aa7b912e06cdb5766905e96eb7  contrib/reghunt/bin/gcc-svn-checkfail
  cd504499b51d378df198fc1c96fed2d9  contrib/reghunt/bin/gcc-svn-ids
! ee0ba5a5ecdc7dfdbf268165cc808a10  contrib/reghunt/bin/gcc-svn-patchlist
  3e86e81ae296e0660fe17fbd507ab006  contrib/reghunt/bin/gcc-svn-recordfail
  7e9c7f64150f74c86a1bfa6bc5823252  contrib/reghunt/bin/gcc-svn-report
! 4890088c0095054b0f96d9dde258ddfe  contrib/reghunt/bin/gcc-svn-update
  50dc103e0edd95d6cde45a9ca782c79a  contrib/reghunt/bin/gcc-svn-update-fix
! 9e38d66dd9b8ebb0c771604553baf889  contrib/reghunt/bin/gcc-test-accepts-invalid
! e29d2905a743063def060066f9481cc4  contrib/reghunt/bin/gcc-test-bogus-warning
! 4f70a81ca32edb1a1721b3241c8a45c4  contrib/reghunt/bin/gcc-test-compiler-hangs
! b0a124da9d2c325f88bf85850c4fd8d4  contrib/reghunt/bin/gcc-test-ice-on-invalid-code
! c3f22aa52cb451a6bce3ebb4e7c609e9  contrib/reghunt/bin/gcc-test-ice-on-valid-code
! 75ad8f60d807fdc026ce30e66a54ed0e  contrib/reghunt/bin/gcc-test-missing-warning
! 51aea00426f9a65de1b8f4dfbb15edff  contrib/reghunt/bin/gcc-test-rejects-valid
! 15589bea14d2029d25205c2695d6f485  contrib/reghunt/bin/gcc-test-segfault-on-valid-code
! 2ca0d0139fc045efa25569277a5fca9e  contrib/reghunt/bin/gcc-test-wrong-code
! c1d9f3622ad12329856b14728cb4d497  contrib/reghunt/bin/reg-hunt
! b1c56a84006e77edad1fb3fe429935e5  contrib/reghunt/bin/reg-newmid
! 94fef7b281eb2e327a2ca5189e9d7b3e  contrib/reghunt/bin/reg-test
  ab31219466ac7df2a1aa15900540bc8a  contrib/reghunt/date_based/README
! 12daec13f0c02b6e9d4cb8cb03652d33  contrib/reghunt/date_based/reg_periodic
! ca231bc9bf9d2217b1ed2c9cc36e4e60  contrib/reghunt/date_based/reg_search
  d3dd0bcec99c2e140b86efb5f63860b4  contrib/reghunt/date_based/reg_test_template
  dacbecec8b04ec121d7f0ae90e0c02e6  contrib/reghunt/examples/28970.c
  54297bd9eb1c9406472def597bbcd0e6  contrib/reghunt/examples/28970.config
*************** f251d49dd87647250fcd74dd50b7835f  contri
*** 293,362 ****
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! 5ab23d210571ca1032fc39a44c0f3a26  contrib/regression/ChangeLog
  30553bfced1b2b46bf7ca01ef6ba69d1  contrib/regression/GCC_Regression_Tester.wdgt/Default.png
  ad38ddd771df222eb9d413e3c7f6a751  contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
  777bd286c147cc02861811f66b9a4440  contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
  82c9f16421ce2f6efe0ad68151c792a5  contrib/regression/GCC_Regression_Tester.wdgt/de.lproj/InfoPlist.strings
  b017a8530c74c1d79f3b4436169ae9b0  contrib/regression/GCC_Regression_Tester.wdgt/en.lproj/InfoPlist.strings
  3fd4bca42f39c06eff4024376b935265  contrib/regression/GCC_Regression_Tester.wdgt/ja.lproj/InfoPlist.strings
! 0081d522bb93a088e8e391035859f5ac  contrib/regression/GCC_Regression_Tester.wdgt/widget.html
  1e4aedcd2db5dd845a6c778f4ba73b9b  contrib/regression/README
! 7f00172d2edd556d4fbea9c8780e3f0a  contrib/regression/btest-gcc.sh
! 5ac9c78855ba776fb6df22762d747a4a  contrib/regression/mkindex.pl
! d27bf003c6909d3b72c669f162079366  contrib/regression/objs-gcc.sh
  dc562ddb86567c65e82953825713dc4b  contrib/regression/site.exp
! 7f6418948396f8250447e3e6182322d8  contrib/repro_fail
! f9be6e921306d5723c2588978cb8bf69  contrib/test_installed
! 5df704b56b2afa89d01024ff0cfd9302  contrib/test_mklog.py
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
  c650e776de65a2de80bbfb0033641805  contrib/test_summary
! 732c6b05f522996df84ec9220009e971  contrib/testsuite-management/validate_failures.py
  0202e4875fa43ec09cf5e8442c873a56  contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
! 9d2872396f09ff662d170e4934504ec3  contrib/texi2pod.pl
! 2b5b53583b4bc3786c2cf018636106ed  contrib/unicode/DerivedCoreProperties.txt
! 7c454536b2430e7fe3eb68a615577b1f  contrib/unicode/DerivedNormalizationProps.txt
! ed78e50166219a3505ca5beac1804656  contrib/unicode/EastAsianWidth.txt
! a334e3134419035ff250534fc3d29a4e  contrib/unicode/NameAliases.txt
! def86c24016f2b0b69ac18d444899b69  contrib/unicode/PropList.txt
! c1493fffac94a2669b0ed0df204c5e7d  contrib/unicode/README
! cf389823b6ff1d0e42b8138e3661d516  contrib/unicode/UnicodeData.txt
! aa7e56ec0abd6f5b67619af1ae1ad730  contrib/unicode/from_glibc/unicode_utils.py
! 4d8b45c7383c5270c3f368837254d40e  contrib/unicode/from_glibc/utf8_gen.py
! 53bce7c8a18d257ac361919611f46022  contrib/unicode/gen_wcwidth.py
  8b5fa928c1da8636733a0a76a2da5bc8  contrib/unicode/unicode-license.txt
  93fd39f4c6ff7bf4e5f9e035b65e6e1a  contrib/unicode/utf8-dump.py
  13955dc4ee3f74718a3869155e474db6  contrib/uninclude
! b665a36ccad61eddd5b9352911193ac6  contrib/unused_functions.py
! 81b671fe375b49ad598d09af153b5d7c  contrib/update-copyright.py
  e96e470317bafce43e11f5d3dc027f1c  contrib/vim-gcc-dev/README
! 6d24c6a5b85730a00a252ff4c8238f62  contrib/vim-gcc-dev/ftdetect/gcc-dev.vim
! e49c998085ca49d5cdd5b1dd744b2e03  contrib/vim-gcc-dev/syntax/gcc-match.vim
! 54bedcf2c35a94e429210213c2d282c5  contrib/vim-gcc-dev/syntax/gcc-rtl.vim
! 0965b015a27e9396cefcb41612a69c42  contrib/vim-gcc-dev/syntax/gimple.vim
! f896f3b2aae98b892d733dab4575cc66  contrib/vimrc
  da7aeedeb5a86ee6f5982e559a2d6dcc  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! b7814700f87ba9500919badc1f22daa5  fixincludes/ChangeLog
! 6de190723745dc3f75080144dfa2215e  fixincludes/Makefile.in
  b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
  1f4e46c32c0fe1905e25e75d991c931a  fixincludes/aclocal.m4
  06c68af3013771f49738a0ade1579050  fixincludes/check.tpl
  baef7ba9b787bf0e8083a807ade166c2  fixincludes/config.h.in
! 6dcdfd5a25056c2c0665cba223855118  fixincludes/configure
! 7a218102a34375eaf07c8918816c06df  fixincludes/configure.ac
  2002770d703d59245d89f941a21f783d  fixincludes/fixfixes.c
  77fbad4fc8ec7be3578d045d003446ec  fixincludes/fixinc.in
  8ca216a7024876b7eb9b8abc30a30775  fixincludes/fixincl.c
  adf245e3714f799eafba40af16be8eb5  fixincludes/fixincl.tpl
! 9781772ed7ad0a77750cdbd1f756f566  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! 35056e035a592efbda56527fbdd2292d  fixincludes/inclhack.def
  dd5ae70d9f725bcaf2a15212782db49a  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
--- 317,392 ----
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! f8c552bf65b18b856b30088439e040f7  contrib/regression/ChangeLog
  30553bfced1b2b46bf7ca01ef6ba69d1  contrib/regression/GCC_Regression_Tester.wdgt/Default.png
  ad38ddd771df222eb9d413e3c7f6a751  contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
  777bd286c147cc02861811f66b9a4440  contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
  82c9f16421ce2f6efe0ad68151c792a5  contrib/regression/GCC_Regression_Tester.wdgt/de.lproj/InfoPlist.strings
  b017a8530c74c1d79f3b4436169ae9b0  contrib/regression/GCC_Regression_Tester.wdgt/en.lproj/InfoPlist.strings
  3fd4bca42f39c06eff4024376b935265  contrib/regression/GCC_Regression_Tester.wdgt/ja.lproj/InfoPlist.strings
! 3f10135a7836b6bab760c77b884347cc  contrib/regression/GCC_Regression_Tester.wdgt/widget.html
  1e4aedcd2db5dd845a6c778f4ba73b9b  contrib/regression/README
! a6ede3981b504b8b860bc18ae7d42040  contrib/regression/btest-gcc.sh
! 3f62c0d466e0d6560d714e1c51ceb296  contrib/regression/mkindex.pl
! 1bb7458b08f5725e1604f852639fd133  contrib/regression/objs-gcc.sh
  dc562ddb86567c65e82953825713dc4b  contrib/regression/site.exp
! 5e4ee087708d8039fdd3e37392496a3f  contrib/repro_fail
! 19cbdce176a2d448e82dd6c4bd282fae  contrib/test_installed
! 8d6fa639c436b34b63c51bc8020d22c1  contrib/test_mklog.py
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
  c650e776de65a2de80bbfb0033641805  contrib/test_summary
! 21c26e3ba0bac3540dd6d8954d9dc54e  contrib/testsuite-management/validate_failures.py
  0202e4875fa43ec09cf5e8442c873a56  contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
! 0af113ba0e82cc91a10b40011b2eb6eb  contrib/texi2pod.pl
! 265e3427cf2ea76209ca3c861f679ac1  contrib/unicode/DerivedCoreProperties.txt
! cd4c6e7b74b97f4d48ce19916c0d5481  contrib/unicode/DerivedNormalizationProps.txt
! 9fe46fd901e8ae19bdecdbbffca30cdd  contrib/unicode/EastAsianWidth.txt
! 3f0ddaa5693380ea627bfdf0e5c56085  contrib/unicode/GraphemeBreakProperty.txt
! fd2a622f939eeb7bf13341815fd47e19  contrib/unicode/NameAliases.txt
! 23f7d59fe7f04e06fe7dc322d5a4d4bd  contrib/unicode/PropList.txt
! 86fa0ee7a5828a6264bbcf0e00c25b95  contrib/unicode/README
! c94d3d92f1c66e50f750fe84b8055939  contrib/unicode/UnicodeData.txt
! 3ae64df6ebbce8f67ff8730e8cc1e800  contrib/unicode/emoji-data.txt
! a99d204f86250c10e7f692f05d277640  contrib/unicode/from_glibc/unicode_utils.py
! 8047ab496166867f38057d53207dfb07  contrib/unicode/from_glibc/utf8_gen.py
! b43dc8f19341ef09bf927ea0485d2f1a  contrib/unicode/gen-box-drawing-chars.py
! 9f1d172363dc56ad17938788adaf02b1  contrib/unicode/gen-combining-chars.py
! bfd0156a35f146cd1fd12934ede7764f  contrib/unicode/gen-printable-chars.py
! bd6a2a1ceecf86b688a1832522e5ce53  contrib/unicode/gen_libstdcxx_unicode_data.py
! 8ec0eeb5656a711cd81ffedbb2b98f54  contrib/unicode/gen_wcwidth.py
  8b5fa928c1da8636733a0a76a2da5bc8  contrib/unicode/unicode-license.txt
  93fd39f4c6ff7bf4e5f9e035b65e6e1a  contrib/unicode/utf8-dump.py
  13955dc4ee3f74718a3869155e474db6  contrib/uninclude
! 3dfb7aa9d706ab13dcf998317358e3e9  contrib/unused_functions.py
! 33dbde8d12cd752afb9043716338bddb  contrib/update-copyright.py
  e96e470317bafce43e11f5d3dc027f1c  contrib/vim-gcc-dev/README
! c3dafec11f570f31b4bb1d5158f5a224  contrib/vim-gcc-dev/ftdetect/gcc-dev.vim
! 1232c3e9ce3fb723bacf7828b06cee0c  contrib/vim-gcc-dev/syntax/gcc-match.vim
! 1c9fc4b3d3f44ba667aff50f9b6c0d9c  contrib/vim-gcc-dev/syntax/gcc-rtl.vim
! daaf19e8b17e0a90bee0d82fc8e856c7  contrib/vim-gcc-dev/syntax/gimple.vim
! d0d170da8f721b0a129a75ff9e4e7c8e  contrib/vimrc
  da7aeedeb5a86ee6f5982e559a2d6dcc  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! 0b88e1acdcd80b84040a564ab86ac7ad  fixincludes/ChangeLog
! 4afe55f959b7cceb7055ff11a9ca0e32  fixincludes/Makefile.in
  b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
  1f4e46c32c0fe1905e25e75d991c931a  fixincludes/aclocal.m4
  06c68af3013771f49738a0ade1579050  fixincludes/check.tpl
  baef7ba9b787bf0e8083a807ade166c2  fixincludes/config.h.in
! 7c2caef8893c82b0279f7c5d67bdc48a  fixincludes/configure
! b6ffc204128adbd2c41ac0cb4ce98dc7  fixincludes/configure.ac
  2002770d703d59245d89f941a21f783d  fixincludes/fixfixes.c
  77fbad4fc8ec7be3578d045d003446ec  fixincludes/fixinc.in
  8ca216a7024876b7eb9b8abc30a30775  fixincludes/fixincl.c
  adf245e3714f799eafba40af16be8eb5  fixincludes/fixincl.tpl
! 17e251630d3b32193d301ccac107f85c  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! 9a22071077df0449fb7b7a1a2a1d3680  fixincludes/inclhack.def
  dd5ae70d9f725bcaf2a15212782db49a  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
*************** e1bd28539aceeab13a3028da02f8c4ae  fixinc
*** 407,413 ****
  8ac97a3367b9a99503c5b21430993cd4  fixincludes/tests/base/mach-o/dyld.h
  dbbbc9ead412bbd125f56bc509994066  fixincludes/tests/base/mach-o/swap.h
  c48dea510c587eea0b229def965ef77a  fixincludes/tests/base/malloc.h
! d312017cecca26f45fb733bb2dbdf8db  fixincludes/tests/base/math.h
  d2cbc665e9046f8acb42c1271592be47  fixincludes/tests/base/net/if.h
  98099ff70c675f84c19b58da050f3712  fixincludes/tests/base/net/if_arp.h
  a911f5fbb127353024e77149fcf90596  fixincludes/tests/base/netdnet/dnetdb.h
--- 437,443 ----
  8ac97a3367b9a99503c5b21430993cd4  fixincludes/tests/base/mach-o/dyld.h
  dbbbc9ead412bbd125f56bc509994066  fixincludes/tests/base/mach-o/swap.h
  c48dea510c587eea0b229def965ef77a  fixincludes/tests/base/malloc.h
! 8caa56e587a1d6f487453f3250c80db8  fixincludes/tests/base/math.h
  d2cbc665e9046f8acb42c1271592be47  fixincludes/tests/base/net/if.h
  98099ff70c675f84c19b58da050f3712  fixincludes/tests/base/net/if_arp.h
  a911f5fbb127353024e77149fcf90596  fixincludes/tests/base/netdnet/dnetdb.h
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 480,492 ****
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  8baab8698bb83c6b90ef4091c00ddc1e  fixincludes/tests/base/unistd.h
  75d75572793b62bdd8ff4d1504e0cb4c  fixincludes/tests/base/yvals.h
! 6593c1e7d0535b989e3b12084f001039  gcc/ABOUT-GCC-NLS
! 480d4e87ea72fcedc6097627dcc01856  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! bb2fbe4a8e8083695dae434cf1d8da33  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 510,522 ----
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  8baab8698bb83c6b90ef4091c00ddc1e  fixincludes/tests/base/unistd.h
  75d75572793b62bdd8ff4d1504e0cb4c  fixincludes/tests/base/yvals.h
! baf9b6e2583cff7f3b9de94370dd739e  gcc/ABOUT-GCC-NLS
! 5528b5751d1ebf25790b11a0271dd69a  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 35c353842124e389d4f22fc15d3aa905  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** e70c675c353dff12c134496566b63c83  gcc/Ch
*** 513,518 ****
--- 543,549 ----
  a8115a08b5042f830403fa427ce7c243  gcc/ChangeLog-2020
  393ff914a89e665be5638fc0ebce548f  gcc/ChangeLog-2021
  d75beda6756e3fb23a8fe4bce262c38a  gcc/ChangeLog-2022
+ c5b3a3e8833087c6316b28685d3d914b  gcc/ChangeLog-2023
  99fbd9e13a4133855332bf21b0e8fc4c  gcc/ChangeLog.dataflow
  e36816ca56b2bbc8bfc358e0185fc1d3  gcc/ChangeLog.gimple-classes
  fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/ChangeLog.graphite
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 521,539 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 51d03b74dc206e1578aa7dd85ceb204d  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
! 1f93f45664cdb0f660bcb8a952ca6078  gcc/LANGUAGES
! 49f87a7e0f2b3f3730bdd17bfe67af21  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
! 8c961c26ecaaf1660ca9888b2b0bca59  gcc/README.Portability
! f6d47a542d432aed7e7eaaecb71d3a4c  gcc/acinclude.m4
! 6526979dd900a0b58b7691b478a91fec  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 016b2117aad5dd29ede8e7c30c79de77  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 552,570 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! e420e67ba83a0c7ae17374dc4cc6ca8d  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
! 6560dbdd4b5a35d23087255c9a8b806a  gcc/LANGUAGES
! 31fa1866f3628f064a868ca389570ee9  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
! 0ebb5212dca47eaf22a8c5644c7fb865  gcc/README.Portability
! 4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
! 496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 1f206fbb7f8cca15a111cace64a3140f  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** e886b111487071a30a52edb616ff7844  gcc/ad
*** 556,1295 ****
  25a37c68917fa9927277f5c8fda08d05  gcc/ada/ChangeLog-2020
  eb047ffc35b1d44455bed0519888503c  gcc/ada/ChangeLog-2021
  c81efe8ccbd5f5b8399a3496f5015859  gcc/ada/ChangeLog-2022
  5598cfcecd6612ea21efddabbbe1ecc0  gcc/ada/ChangeLog.ptr
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
! 79432d3beb46b4a8f4c4c114203a6527  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! 0777b736aa8842cdda79a70c7870dd03  gcc/ada/Makefile.rtl
! 328b32369db4e87b95cc21b16114a723  gcc/ada/accessibility.adb
! 8398361054d01170d7c487f246c526e5  gcc/ada/accessibility.ads
! 13cf7e52e4314ac021f4e7d70a814880  gcc/ada/ada_get_targ.adb
! 0f56be340d9797e3780165a3de27f26d  gcc/ada/adabkend.adb
! 6b271163709fbc06df6ef8a7fd1c13da  gcc/ada/adabkend.ads
! a9e8e57440f10ce2ff3fbe5984b1c56c  gcc/ada/adadecode.c
! 5933c19a89a051b38aa7a6e4716f502c  gcc/ada/adadecode.h
! 18bb16ad13ce57c6f4e8ca399648f1d6  gcc/ada/adaint.c
! 6276ae5d40f1552dee393838e562b00b  gcc/ada/adaint.h
! 6fb46a612b1053603893b4c055a97bde  gcc/ada/affinity.c
! 4482e2fcea81b8826350b4f00907a278  gcc/ada/ali-util.adb
! 63eaeacf118594e946b0c5c30a8d467e  gcc/ada/ali-util.ads
! 6cf79a53bae9f9f4ca7a62441b8ce33c  gcc/ada/ali.adb
! ef99e4663685fcafea6392a40e25d51c  gcc/ada/ali.ads
! 7af275ac24b4c8e43ad788b8451b7025  gcc/ada/alloc.ads
! f57e4aa5b04feb981e9cc0bcd097d441  gcc/ada/argv-lynxos178-raven-cert.c
! 41901835ca046ca3d648f97c24c884d4  gcc/ada/argv.c
! 3dd02d9a98209eab13e64e363ce4e406  gcc/ada/aspects.adb
! 4f926b5afe9e831b9b3c57a295937ced  gcc/ada/aspects.ads
! 354e8341856c51fe0f57b1b7f131274f  gcc/ada/atree.adb
! c99902292cb36e029b69efc029bfb89a  gcc/ada/atree.ads
! 77902e25964ec1e07d41a28962af01e3  gcc/ada/atree.h
! 82506b9b83335c38e1e96d461ff93adf  gcc/ada/aux-io.c
! 36c44473a11c218cbdf16a1d01146ea4  gcc/ada/back_end.adb
! df4481820cb62f2e320bf617cef54764  gcc/ada/back_end.ads
! 420d6c211c53578b1284be6d1845ef20  gcc/ada/backend_utils.adb
! 4e41ae1265d23f27ebd42a69a0eead99  gcc/ada/backend_utils.ads
! f6b824e8dd6890b47c3dbe4bd6a7dcfe  gcc/ada/bcheck.adb
! 9954eb6fca7f610a528856671169db34  gcc/ada/bcheck.ads
! cc49610b36b01bb8f5a735ff8c129ecf  gcc/ada/binde.adb
! bca078d4c847cc567be65aaccdea015f  gcc/ada/binde.ads
! a9bcb5571c84a4374ba1cc675190f7eb  gcc/ada/binderr.adb
! a2bf5c66c573cbaa59e9d81595b2c2f0  gcc/ada/binderr.ads
! e157aa2666cc38b0ae9a86b3655ef1f6  gcc/ada/bindgen.adb
! 879c30a46bc8fd3fa2557428325e4d38  gcc/ada/bindgen.ads
! a0272e1d38250bdaa7f03cb3f295536c  gcc/ada/bindo-augmentors.adb
! f9386ad6f47ac050f42132d4acba45c5  gcc/ada/bindo-augmentors.ads
! 659782b24df1f8001207552a5736fb35  gcc/ada/bindo-builders.adb
! 124c19eb4ab72b09c7ad1dcad70ac62d  gcc/ada/bindo-builders.ads
! 3f8459f16eb3fd001738af18218d96f9  gcc/ada/bindo-diagnostics.adb
! 67938b0e515af00092e6c8d7ca1cf1be  gcc/ada/bindo-diagnostics.ads
! d167af93d96929a4f34c835f3daa2659  gcc/ada/bindo-elaborators.adb
! 0876e5fecfa5186f46cf378d24df9d11  gcc/ada/bindo-elaborators.ads
! 995364c7f24a62812cda431aa943ca4d  gcc/ada/bindo-graphs.adb
! 2bafa6311c7669eee757e4b21ed5342f  gcc/ada/bindo-graphs.ads
! bfdee7b3abb3076d76a0e14e20dcff47  gcc/ada/bindo-units.adb
! 481137fd27d93554363611c68e45ee0c  gcc/ada/bindo-units.ads
! e2811eee2c6be08f96b678047991e538  gcc/ada/bindo-validators.adb
! 6298c51d9bf987bb66160ca353d48681  gcc/ada/bindo-validators.ads
! 0a371eee4b967ba51d7fa5e5b58da6ce  gcc/ada/bindo-writers.adb
! 6602189de6518b02a4649ebb5d9b7efa  gcc/ada/bindo-writers.ads
! 460a5e988022913c42dea6942f3305a6  gcc/ada/bindo.adb
! 56df74e9e12e3b9ab4cc34c5cac5c96e  gcc/ada/bindo.ads
! a4fa42f2e410f7b3213f7cd44dabe699  gcc/ada/bindusg.adb
! 50bc2f8e631ae589c3052f8ec5ad4e8b  gcc/ada/bindusg.ads
! 527a71a3f68e0deaf7d02f7522f9a269  gcc/ada/butil.adb
! a46d69407e1aeacce9b0e18f8c1d3526  gcc/ada/butil.ads
! 98e4b1c85455e4b4bd4123863802d057  gcc/ada/cal.c
! 4579d69a42e45e17fc08f2159fed02c7  gcc/ada/casing.adb
! a5d2684c3fa28eb916f7b7a78892adb3  gcc/ada/casing.ads
! a9eb8d5450714df8e48ff1f8e83bc7f0  gcc/ada/checks.adb
! 6eb178f5eb724a32f7541210a274ed19  gcc/ada/checks.ads
! ddd0ea57bd86f9494ea40dde8726a984  gcc/ada/cio.c
! d1b507d1ceaa7c53d3b70b63676a2990  gcc/ada/clean.adb
! f02792164fd40ec5e9723df166ac5b64  gcc/ada/clean.ads
! 5f216c96df15ab091d34fff669ec7298  gcc/ada/comperr.adb
! 9862c4ed9277242e3ff527ec30252dec  gcc/ada/comperr.ads
! fbd23958a6d5c4207e39317e708436ac  gcc/ada/config-lang.in
! 30a2c7fb42c3f5f9e94c6da9b4559157  gcc/ada/contracts.adb
! 997d6387c88313d9c7cafbeebd86f081  gcc/ada/contracts.ads
! 48a3fc8b80994bbd1ada81db3d683a41  gcc/ada/csets.adb
! d4dd9b7af14e80bbeaca0dba2e12d567  gcc/ada/csets.ads
! 4669751b2bbd783e8ba76b5c7523c3ab  gcc/ada/cstand.adb
! 216ac88f4985bc5389ae164e12161787  gcc/ada/cstand.ads
! 3e16924ef40271c114e75affd0bbc1b4  gcc/ada/cstreams.c
! fe5d25ca4fc20b39558983efa8321373  gcc/ada/ctrl_c.c
! 14d44a31974c6f5f8a83ba93b9005d49  gcc/ada/debug.adb
! e2f7a872a5566c30ce7f3381c4fc1642  gcc/ada/debug.ads
! daa56ebd1b22a42db6d08e1a258a8ad6  gcc/ada/debug_a.adb
! 704fa6c91d2c15f9d10d1ace755c86f6  gcc/ada/debug_a.ads
  e985c86f5eb27a1af5221f7338ac92cb  gcc/ada/doc/Makefile
  a012e0cb5df366014b5a4988036a509a  gcc/ada/doc/gnat-style.rst
! 146dcc045a420b5f36161c6e32a7dea8  gcc/ada/doc/gnat_rm.rst
  c4f5f27a027adfe3db5b39193542c956  gcc/ada/doc/gnat_rm/about_this_guide.rst
  e183e323bf87ac50a5767106862fef97  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
  2afac013799ef401d4c876589443dcf3  gcc/ada/doc/gnat_rm/implementation_advice.rst
! b3d438a9215c1e83c029eae0f4824da5  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
  a511a1ae18ac5459a3f2ef89b42375a5  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
! 53743d72cb019e6fda0bcf1c22a03e5d  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 3fccce1208a18e70cb6bc2b0b074bc34  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
  4c8f34f9d69c20b677b885ec36ef9844  gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst
  1ce2dc848df98bcbbb9d443501c48132  gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst
  8ac597e4a14e2e70cf692a87fa810b0a  gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
  d3ffb5a905c9520d87b68e10029eb023  gcc/ada/doc/gnat_rm/intrinsic_subprograms.rst
  bb3c8ae8aaf1cbd06bc44135da97d801  gcc/ada/doc/gnat_rm/obsolescent_features.rst
  7f40736efcf972e491a726f58badbb04  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
! b126885ce137447c32b8fa21db10fe36  gcc/ada/doc/gnat_rm/security_hardening_features.rst
  03676be4f649629e37041b8c849c7825  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
! 5e387bd2af6e25b5b69852152b862595  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
  328f91fe087e552ce7ef53d8c1d73e3d  gcc/ada/doc/gnat_rm/standard_library_routines.rst
  c19830e73e611a82a0d522e460290c80  gcc/ada/doc/gnat_rm/the_gnat_library.rst
! f0e9410f2a1440890ddedcf89e10d3f9  gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
  ad0b18bc67f8911f5f0d9d2762f19f82  gcc/ada/doc/gnat_ugn.rst
! 522a8b1f4fc69117e20c4690b1cde1a3  gcc/ada/doc/gnat_ugn/about_this_guide.rst
! 7d25201b82e92c48287c58c0720f6b41  gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
  26a89b9a7c38c57de536819af879195e  gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst
  c8c5cebc5a8966a6a0b278b30b2f5738  gcc/ada/doc/gnat_ugn/example_of_binder_output.rst
  329d0c3464eb53db9196226f014d72c9  gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst
! 960f93cb649abdecb8fc4e4127fa2755  gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
! 8cbfc8d1d9c87e6e2cdeabc18ebb4cec  gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
  bb8384ade6350af533fa2875e0c29c13  gcc/ada/doc/gnat_ugn/inline_assembler.rst
! 80fd9eb6274ce823d1644fe028bd5de1  gcc/ada/doc/gnat_ugn/platform_specific_information.rst
  062c912e168e9f97d4b4ae9c766300b8  gcc/ada/doc/gnat_ugn/rtlibrary-structure.png
! e855a2fffd533c8851a8cf3ce3d4d2ff  gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
  caf064904358a8a1d6029b136176ff9d  gcc/ada/doc/share/ada_pygments.py
! f1ee2bea80c510232c141f626f856a0d  gcc/ada/doc/share/conf.py
  c7da61a05156d50b4888cdfaae4241d0  gcc/ada/doc/share/copyright.tex
  1b7b0904041eb97a9ac023e776774561  gcc/ada/doc/share/gnat.sty
  0a025bfec2a94c0fcd11a19d18f6c0c5  gcc/ada/doc/share/gnu_free_documentation_license.rst
  f1c71b64e1c84e240c7b5aea7331a32a  gcc/ada/doc/share/latex_elements.py
  90adfcde2feb6d6c090c2b18a1578145  gcc/ada/doc/share/sphinx.sty
! 6882805f8ff6eea088da720bfe5532cd  gcc/ada/einfo-utils.adb
! 27a01636d0a0236e57bc5a8d0f61d22d  gcc/ada/einfo-utils.ads
! e43b0cc77364659177befd1077efa47e  gcc/ada/einfo.adb
! d146e0f8a77110d4616a7f4c263e588a  gcc/ada/einfo.ads
! 60245449c2195b151310b2ff839a5b78  gcc/ada/elists.adb
! f8b698192cf13df98b157df82bbbd82a  gcc/ada/elists.ads
! a2ecaafad1cbda0fb81e66fedd98690a  gcc/ada/elists.h
! ff9fe3a93f6f1dda167af20200acf466  gcc/ada/env.c
! e61587d5186b53b81a9ed49dc6190797  gcc/ada/env.h
! 2b34df78cacc46a68811d509a04043ea  gcc/ada/err_vars.ads
! 588b2bd68d9a72e0afce20a0748172df  gcc/ada/errno.c
! 18a4aef904677da1648cbe659b6e59d9  gcc/ada/errout.adb
! 53cd440b1937fd4071b4997f338d0667  gcc/ada/errout.ads
! 08430b06ad1d216a41f9a7feead5323b  gcc/ada/erroutc.adb
! 853279ac396f8204c3d8fa7ee546ac2b  gcc/ada/erroutc.ads
! 92856e74bed1db6183c55d912c47ba69  gcc/ada/errutil.adb
! 2a1599968d338fe3f974a4b0104c09fc  gcc/ada/errutil.ads
! d37cc0a25d34e042d5dea64c9e740a45  gcc/ada/eval_fat.adb
! f1d86c3f88f5650d8de59f52e9e8083c  gcc/ada/eval_fat.ads
! 3da935b78c544f50a354b87d5e568d41  gcc/ada/exit.c
! 2b8ff94c7516696f0765024145e8c1cf  gcc/ada/exp_aggr.adb
! 3b09213e625a7d78641da4c3f7b1af7e  gcc/ada/exp_aggr.ads
! f692b29add58ef2b71899d01acbc201a  gcc/ada/exp_atag.adb
! 93759d533df63d41d11ae6ad2277af4f  gcc/ada/exp_atag.ads
! a22898d5944022480e0b01d418cb7625  gcc/ada/exp_attr.adb
! 0d479048972bab03722aaf5712cf5cc7  gcc/ada/exp_attr.ads
! 6c8cc9f126365a019cccece3f9346c4d  gcc/ada/exp_cg.adb
! c9381db8130873a5e6bc9c811ad14504  gcc/ada/exp_cg.ads
! c74dd3b86c19df068038119a77462524  gcc/ada/exp_ch10.ads
! b989a7c6b1c5cc32357303dd95b3abfc  gcc/ada/exp_ch11.adb
! 7e89fdcfc002ece5c5933bb68e8af037  gcc/ada/exp_ch11.ads
! 67e2ff6830d8f5a02ad9f2e8cc7e815d  gcc/ada/exp_ch12.adb
! a9c24cbcffac5d49ea9292aebe5db0c4  gcc/ada/exp_ch12.ads
! 764c0f39ff6b795aa889da01f26b2e69  gcc/ada/exp_ch13.adb
! da828d4dca65dbb421d61d7faa8d0487  gcc/ada/exp_ch13.ads
! 1014458fddfddaa600134bdd0b7ee2df  gcc/ada/exp_ch2.adb
! 874379155c2b31c67f54611f40fb4cde  gcc/ada/exp_ch2.ads
! 5722ba5eaf680e4a79fb636471c7d22e  gcc/ada/exp_ch3.adb
! d218e87874041895cd5628dbbd8a6666  gcc/ada/exp_ch3.ads
! fb1910b10dc695905e125fbf101f0868  gcc/ada/exp_ch4.adb
! 6dcf102318099fe9b7d14dd8165a8dd8  gcc/ada/exp_ch4.ads
! fc00621fc781d27e5379343a49641de9  gcc/ada/exp_ch5.adb
! 523a3e2d742ada054c744993ab53e80e  gcc/ada/exp_ch5.ads
! 6f3b9c4fc88f5488bc26d8b482bd87c0  gcc/ada/exp_ch6.adb
! 2aac87fd887c3cfd52393aea7d8e10b7  gcc/ada/exp_ch6.ads
! d86b35388e3337c32b4f8971783bf9aa  gcc/ada/exp_ch7.adb
! 58bed2052a219c0f136e6acab4a327c4  gcc/ada/exp_ch7.ads
! 4506e0557f75c933e6a8e3ff5714d1f2  gcc/ada/exp_ch8.adb
! 275bc4f2211aa14d22a900c06a8b4c05  gcc/ada/exp_ch8.ads
! 4e6c9227258f0b30811138f88ec32918  gcc/ada/exp_ch9.adb
! ffd254999738b44138692693e4ec8246  gcc/ada/exp_ch9.ads
! 51434d4ebaf52be12fff3277a3602e8c  gcc/ada/exp_code.adb
! 93034d15564e4f67a44c092eda19507b  gcc/ada/exp_code.ads
! 495728024a13da7c710853b44fe489c3  gcc/ada/exp_dbug.adb
! 2e339eaa627f1be2a8f2ef1d0d60bcb6  gcc/ada/exp_dbug.ads
! 51520a79f643053705759f809587edb0  gcc/ada/exp_disp.adb
! fc3f0f1ac573321d7aeaef22b7acb6fb  gcc/ada/exp_disp.ads
! 47a5a9e29e4d9afcbe069953f4f866e0  gcc/ada/exp_dist.adb
! 8fe237a78a35f962f3ee7e105322db64  gcc/ada/exp_dist.ads
! 60de9154059012d01f876ea302b212e6  gcc/ada/exp_fixd.adb
! 01f16454a82ef6b2e3853cc096178590  gcc/ada/exp_fixd.ads
! 096e6522f29de35623f2ae8e57c5dcd5  gcc/ada/exp_imgv.adb
! 897b83459bea3ffce4ed07b3eb134d23  gcc/ada/exp_imgv.ads
! 210c2a0d7e6d1974e681bb7826fcfd92  gcc/ada/exp_intr.adb
! d1aeeae1258e8e67e9a54adda5962d98  gcc/ada/exp_intr.ads
! 74626c75ad857f007048ec299fb5e90e  gcc/ada/exp_pakd.adb
! 9a293dcaad9cdae7da20aa663daa0367  gcc/ada/exp_pakd.ads
! 10f71b915a4c827618fb2cc9a2ef91b7  gcc/ada/exp_prag.adb
! c355a5c9807909948e926e0eff0c8886  gcc/ada/exp_prag.ads
! ba0d63fc6928573357b49f30e4226cd4  gcc/ada/exp_put_image.adb
! 584d34519aaaf49d65053dbda65375d0  gcc/ada/exp_put_image.ads
! 8a7a0d8a8a4ea74d2245b22cb7659c8d  gcc/ada/exp_sel.adb
! 4272be673f70088d0ae37c6e5b354518  gcc/ada/exp_sel.ads
! 432d19d9f95c52e3c6f2c656a741188c  gcc/ada/exp_smem.adb
! 15c3bae9c7e932fdb76839e6b875a581  gcc/ada/exp_smem.ads
! 59a584f12c3d3b6485aa82171c793717  gcc/ada/exp_spark.adb
! 2b7bf2342b3c7a2c48b7e4f1ad8c65c2  gcc/ada/exp_spark.ads
! 2b34043232af7f04bb2d1079cdb4f031  gcc/ada/exp_strm.adb
! 5a478f3a449ad9885df09defb2d247b1  gcc/ada/exp_strm.ads
! d7b2305cd7daf72574c3e439e9dad5fe  gcc/ada/exp_tss.adb
! 8401d274c26d8ccae635f94df6d80993  gcc/ada/exp_tss.ads
! f389f2094366b0be1f6243f845940f2b  gcc/ada/exp_unst.adb
! 561664a119ff189f9ac4fa58333fd49d  gcc/ada/exp_unst.ads
! 07b7ccfdc010cafcb41ac395dded8392  gcc/ada/exp_util.adb
! 93549b6bb4f5744b025b146d62187fbe  gcc/ada/exp_util.ads
! 442c80ee20fb5fb9447b3324a7f012d6  gcc/ada/expander.adb
! 2195225a2f41ae7e918665cc084dbd57  gcc/ada/expander.ads
! bf36b97874e01c015cd292d5516a4a61  gcc/ada/expect.c
! d70fe09c324385c412543ebcdaf9de24  gcc/ada/fe.h
! 040c94527977f94e0ef3e332bd3c7ae5  gcc/ada/final.c
! dfd843deea85b16bcd53040cc228c735  gcc/ada/fmap.adb
! 6aee6ab4442a07c6b2bf867846078e4d  gcc/ada/fmap.ads
! f4ab7012fc1b7a5f58489d9bf9c243f8  gcc/ada/fname-sf.adb
! da7fc66a925f2cd645d97fa25d48bbe0  gcc/ada/fname-sf.ads
! 6a2a31ffc6d2243e17a9c5b76cbd586a  gcc/ada/fname-uf.adb
! 734fea8e20ae1b161f7fb43e06b47664  gcc/ada/fname-uf.ads
! e39cd04b46b8013d415fad0cbac7f914  gcc/ada/fname.adb
! 0a66f21e4b0ec91ceb708bcc73195f4c  gcc/ada/fname.ads
! e58404b22e02464c1232931e8909f15d  gcc/ada/freeze.adb
! eaa99f30cedb70d373958e90d5383eee  gcc/ada/freeze.ads
! 131adcd6d1d265f6fe77b9979ccf7b02  gcc/ada/frontend.adb
! 2c5de1f52e506a4e1cbddd13168a45e8  gcc/ada/frontend.ads
! cd59136dcb2d38239991de3af7451df1  gcc/ada/gcc-interface/Make-lang.in
! 85cb08f87b7710fa60a7a1526e6fd8e1  gcc/ada/gcc-interface/Makefile.in
! c8dc75597da5762105409a8b6c351576  gcc/ada/gcc-interface/ada-builtin-types.def
! f0e21f07164cbc4e8e7f438ed00912dc  gcc/ada/gcc-interface/ada-builtins.def
! d69e0fff19957a7b29ee08926fc6f3cf  gcc/ada/gcc-interface/ada-tree.def
! 6bb4a7f620808e4d085788dff146b29f  gcc/ada/gcc-interface/ada-tree.h
! 29e1f3d1ec783849cfedc4ba5b3f86d2  gcc/ada/gcc-interface/ada.h
! 67dc9599090345bd6fc9fed0361f76ee  gcc/ada/gcc-interface/config-lang.in
! df2ffb467ff9812983d01da40295ec68  gcc/ada/gcc-interface/cuintp.cc
! cf4b7f77a70b65905634251350346d65  gcc/ada/gcc-interface/decl.cc
! 2e46e3864371bc11eae92e2f030fe9c3  gcc/ada/gcc-interface/gadaint.h
! 1e23461a8b089b3f96b0eec67b96b60d  gcc/ada/gcc-interface/gigi.h
! 9f177b1d16ab7e6e558ee0eccca943ff  gcc/ada/gcc-interface/lang-specs.h
! 274964d5df0a628691565b1c411d5c47  gcc/ada/gcc-interface/lang.opt
! 74cf3b6eca660d86a3d825ddc373b3be  gcc/ada/gcc-interface/misc.cc
! 98e36f508f7c769bcd5983c57836e8c7  gcc/ada/gcc-interface/system.ads
! bfb9a4dce47d966bd926113ec79bd306  gcc/ada/gcc-interface/targtyps.cc
! c44a32286837f883d44111d22ff54326  gcc/ada/gcc-interface/trans.cc
! 6f0095bfbdb857126b89772872fc3ed1  gcc/ada/gcc-interface/utils.cc
! a7f76d974397a6883e148b5faba3827f  gcc/ada/gcc-interface/utils2.cc
! 40e0d992ce6e9be735b40d94c1c1255c  gcc/ada/gen_il-fields.ads
! 6066d153ad6d2f0c2a89e9c170be125c  gcc/ada/gen_il-gen-gen_entities.adb
! 460ae9eaf4c292b48b4616f4dc61e583  gcc/ada/gen_il-gen-gen_nodes.adb
! f09dbf238948b614844c0c00c644ac7a  gcc/ada/gen_il-gen.adb
! cc13c168222313f941cf1175e328e4bd  gcc/ada/gen_il-gen.ads
! ec9be8365cf3d59cd75201a34f5ad56e  gcc/ada/gen_il-internals.adb
! 97b5671bd7c71beba8378b080b38de28  gcc/ada/gen_il-internals.ads
! b1e4836227923be7da3f704f188bd551  gcc/ada/gen_il-main.adb
! 8e3f39a0a4923e1f4f89ef3eb2589d21  gcc/ada/gen_il-types.ads
! b35cf43896e67077c71bb70ac01be958  gcc/ada/gen_il.adb
! 6e37340bccd8971f0629a0ef9c53b3ce  gcc/ada/gen_il.ads
! d8399e70b68078f50838a82a341ef734  gcc/ada/get_scos.adb
! 1d846acd98e937399d2e6b57d2a4eca5  gcc/ada/get_scos.ads
! 5e6f6cd29f776f431050ff787fededf1  gcc/ada/get_targ.adb
! 16dbf466ee34ec29d23f0f773f7a8cf1  gcc/ada/get_targ.ads
! cb7b9c7ffee8a4d5f7b9cec5c2bd4e1a  gcc/ada/ghost.adb
! 121aaf46e298350f84f8647bff54f9f9  gcc/ada/ghost.ads
! f5c959d5b3f3c2c3df458d4194a990b1  gcc/ada/gnat-style.texi
! 4002565b7eb8d7e7b62738552008b99d  gcc/ada/gnat1drv.adb
! 94e012de8cf768e11d48ae69396db9f9  gcc/ada/gnat1drv.ads
! 832df20b2e92cc9570455a0fa518ed2c  gcc/ada/gnat_cuda.adb
! 02d21f6dc14988da581fc1ce496aab0e  gcc/ada/gnat_cuda.ads
! fb154a11f0899e1a521b59f0d8492f47  gcc/ada/gnat_rm.texi
! 2bcaf95f9e80fb0a9af48df885a7acfb  gcc/ada/gnat_ugn.texi
! fb2a07c990a0ee778829d0aa465dbfcb  gcc/ada/gnatbind.adb
! 81535e0fa764b9bf56c361fa31147d59  gcc/ada/gnatbind.ads
! 73e68c8d6a35899f6766882ac0fcb303  gcc/ada/gnatchop.adb
! 76dc55c37da4d3f6fb082c39d827bf9d  gcc/ada/gnatclean.adb
! 5f07ff7079f22734d35eef0763e44fba  gcc/ada/gnatcmd.adb
! 78efbf59a589c6cf2ad0fdb3f62c60ec  gcc/ada/gnatcmd.ads
! 32d952be50c5ac9c4fe72c82e59a31bb  gcc/ada/gnatdll.adb
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
! 00618d29c11660fc54399efd2789c800  gcc/ada/gnatkr.adb
! f53843b6c6f1e336ff08060483f2d7b3  gcc/ada/gnatkr.ads
! dfb91a7c7582e7a2164f253428424e0f  gcc/ada/gnatlink.adb
! 6269e692e4262f34bed4c855a4c7c526  gcc/ada/gnatlink.ads
! 52141dad7aa8cbc2047ae35d733c7921  gcc/ada/gnatls.adb
! 19a9c46a44c9143de4cc8e48c27aeb91  gcc/ada/gnatls.ads
! 66d17c21213f8ff228f08c7d5360a87c  gcc/ada/gnatmake.adb
! c45ce4bec75bd35fa94d27e6b5a3c0a9  gcc/ada/gnatmake.ads
! ce48dd634807d3b2757ca3a92d1c5831  gcc/ada/gnatname.adb
! a4acb2fbdcf04791241b928ee0e91015  gcc/ada/gnatname.ads
! 99f2c81295d05677da660c9e0c0cd3c6  gcc/ada/gnatprep.adb
! 2f85dfce619363b5f5b10dbd049aa9ac  gcc/ada/gnatprep.ads
! 210e9441890ef1581c66d9853b40b98e  gcc/ada/gnatvsn.adb
! de77f4f096f2a869f2bbcb5a037da63b  gcc/ada/gnatvsn.ads
! a456d976bd979ec4ecf2d115bc606425  gcc/ada/gprep.adb
! 6c031683ac4fe03ecb810e771e3bf1e0  gcc/ada/gprep.ads
! 8185e397145fad080cd13bd47f2d7f57  gcc/ada/gsocket.h
! 2b8159b07fe22c45ddfc5009c3f1caa3  gcc/ada/hostparm.ads
! 32d94919527646baf6d535a8c8bd1fa1  gcc/ada/impunit.adb
! 4f1101b52618ebc888521db09a65bc6e  gcc/ada/impunit.ads
! b1fe247fec2ad340748b46ba5baeef10  gcc/ada/indepsw-aix.adb
! c9e455822e013448265934f271d26078  gcc/ada/indepsw-darwin.adb
! 4f2273f74db1ac2302d727a9ec682755  gcc/ada/indepsw-gnu.adb
! 3aeba5136158b7fc5f6dc0b7c1b20f1e  gcc/ada/indepsw.adb
! 08b6b407fb70ab584d31f060bcfcb85f  gcc/ada/indepsw.ads
! 871c1163606e1886faedec2dedb26ed0  gcc/ada/init.c
! b8aafb984d33f1d16777ad198afc4b2a  gcc/ada/initialize.c
! 870e18c5ce81937d0ddfb05a90fd3ea1  gcc/ada/inline.adb
! 896a70c60870f1ee662c64fbc5177dcb  gcc/ada/inline.ads
! fc83cdce66c6e2b19b7fee4cf3418e1a  gcc/ada/itypes.adb
! 662aacf4d2de51a18202564379031306  gcc/ada/itypes.ads
! 0d18677320fe45b48bcb51c5d9c9be63  gcc/ada/krunch.adb
! c088075d5d34a6d1a726d31077fc772a  gcc/ada/krunch.ads
! 2dfe5b856dcd220f20dd54c708b7b176  gcc/ada/layout.adb
! 184d3f3129ac8ba278aa0316b9ffa1ad  gcc/ada/layout.ads
! 76a689d5abc6eab9ce978c4051d99e68  gcc/ada/lib-list.adb
! 09e0219ed03a258983bfc167a8e6ce3d  gcc/ada/lib-load.adb
! 9aa6b5e8883a72ddccd9615a2bb37da9  gcc/ada/lib-load.ads
! 2d5184ddff670d4e2ef86d63e31a3b8a  gcc/ada/lib-sort.adb
! 9909515d389cd13ea866f94f93c8a189  gcc/ada/lib-util.adb
! 2412fc5e9d4053fc5ba265414d0512f2  gcc/ada/lib-util.ads
! 977891c6439e1c5e863274f91e6cc474  gcc/ada/lib-writ.adb
! 742d02c340f0a918552d89bcddbe200a  gcc/ada/lib-writ.ads
! f1a27a5f5af3c7acd9964b07b51d7336  gcc/ada/lib-xref-spark_specific.adb
! 77cae8c75ad5879ff407f4693dab9b8c  gcc/ada/lib-xref.adb
! 4a07b92ea509bd5fca71b06ddfb3a3c8  gcc/ada/lib-xref.ads
! 2d96ecf378d7d820dc1f89efc504a42c  gcc/ada/lib.adb
! c6ebffdbf56ea3b91debca2b0c4a61c3  gcc/ada/lib.ads
! c27b648cbae7589de5debac64e22950c  gcc/ada/libgnarl/a-astaco.adb
  c13d27ec688dfebb1965a8e9eaf55c2c  gcc/ada/libgnarl/a-astaco.ads
  66247d074eecb4270e7cf01d16e0cfce  gcc/ada/libgnarl/a-dinopr.ads
  c4e9620896065355c1895fb26186b8d2  gcc/ada/libgnarl/a-diroro.ads
  d33d03640fb0fae0a821bbeb1be518f7  gcc/ada/libgnarl/a-disedf.ads
! 3a0e6e6e92a405aadbdfc17d660dc743  gcc/ada/libgnarl/a-dispat.adb
  380695cb64d70014260c4cbc5dc99e54  gcc/ada/libgnarl/a-dispat.ads
! ad51c8a7b2d728c09ceee0f678e41a3f  gcc/ada/libgnarl/a-dynpri.adb
  a2784499cf21750d8840eeaf03b9e700  gcc/ada/libgnarl/a-dynpri.ads
! cbb7698b90e23e736ebd35e46cd43657  gcc/ada/libgnarl/a-etgrbu.ads
  3e60794a02e6ff3380c0daf20c7c6bc2  gcc/ada/libgnarl/a-exetim.ads
! da1197dd758d2fc5feada7d1ef2cb147  gcc/ada/libgnarl/a-exetim__darwin.adb
! fdcf404c0840f2c168abb54485d6698d  gcc/ada/libgnarl/a-exetim__default.ads
! af202c75d722b4e4a30d927757143b5a  gcc/ada/libgnarl/a-exetim__mingw.adb
! 865c95dcb4061bc60c9c5368445e623b  gcc/ada/libgnarl/a-exetim__mingw.ads
! 6bb6e6a4a3e8a1179cfec2b993cbb0d8  gcc/ada/libgnarl/a-exetim__posix.adb
  8a70e70c5d53efd2ae8de2a025db3217  gcc/ada/libgnarl/a-extiin.ads
  66ba8470ba07e36d23031779e1ebee31  gcc/ada/libgnarl/a-extiti.ads
! b81afd12d5a3a328d8a0ec2ae06abce5  gcc/ada/libgnarl/a-interr.adb
! 7cf706be556f2e24979b244713512e12  gcc/ada/libgnarl/a-interr.ads
! 2444951b05d002a9ac06323b887f71d8  gcc/ada/libgnarl/a-intnam.ads
! fd2afea5292055ba08f8df377a40f231  gcc/ada/libgnarl/a-intnam__aix.ads
! 2fd25caa79dc43ee145a630100019ac2  gcc/ada/libgnarl/a-intnam__darwin.ads
! 63534835ea0e1be0652f5d661258dcad  gcc/ada/libgnarl/a-intnam__dragonfly.ads
! 3d0b1e354473a994d3d7e8edbe8a80c3  gcc/ada/libgnarl/a-intnam__dummy.ads
! 3757766a3c0788dc80800a290b87c0ae  gcc/ada/libgnarl/a-intnam__freebsd.ads
! 3a21cdd15049e0a6a628f053e2647e9b  gcc/ada/libgnarl/a-intnam__hpux.ads
! ccbad8bd96cd175b1b8e6071d59b5687  gcc/ada/libgnarl/a-intnam__linux.ads
! 61e4d2a02f4be84896f27bb1e5b475df  gcc/ada/libgnarl/a-intnam__lynxos.ads
! 149ddb45805984b038ed1a67873532e3  gcc/ada/libgnarl/a-intnam__mingw.ads
! 6669186d2a5902d7eff8dcd0df6d37a2  gcc/ada/libgnarl/a-intnam__qnx.ads
! d88bdee21b39bdbfd7811ea4357ff2df  gcc/ada/libgnarl/a-intnam__rtems.ads
! f92dc2a27c239496f8a00d705a105195  gcc/ada/libgnarl/a-intnam__solaris.ads
! 96500e546172ac4800fc0d5a53477cd2  gcc/ada/libgnarl/a-intnam__vxworks.ads
! aad4e2f6a5f9391ab2c3f6276e48841a  gcc/ada/libgnarl/a-reatim.adb
! 84c9e985201296d3b4104452b32c03be  gcc/ada/libgnarl/a-reatim.ads
! a1f1b91bf7245ecff020dab8f28c2b28  gcc/ada/libgnarl/a-retide.adb
! 0ceec23899fe53aa165a12eb61e34962  gcc/ada/libgnarl/a-retide.ads
! 211b2586553838a0f43783b304111774  gcc/ada/libgnarl/a-rttiev.adb
! 5f07ea8488d99e678b5d5dffc0db3500  gcc/ada/libgnarl/a-rttiev.ads
  c04bb8934366f43faa60d914e7ebea7a  gcc/ada/libgnarl/a-stcoed.ads
! 4de9d24d2f11332282303875db2e241e  gcc/ada/libgnarl/a-synbar.adb
! 6ae97b0a32ce7fcdd754125075aeb60b  gcc/ada/libgnarl/a-synbar.ads
! ae6b9fcf4c6e774ab73c9025ac1d355b  gcc/ada/libgnarl/a-synbar__posix.adb
! 3e7d8d804f6019ff612970ae1b67cfc1  gcc/ada/libgnarl/a-synbar__posix.ads
! 01785065d982afc217bbdeba316d12ef  gcc/ada/libgnarl/a-sytaco.adb
! 95862d08131b16b417adda630b05d7aa  gcc/ada/libgnarl/a-sytaco.ads
! 64a3e5d8171890f49ed95256a37d352b  gcc/ada/libgnarl/a-tasatt.adb
! 7d0e2ba07b5f96a0e92b293a2775365a  gcc/ada/libgnarl/a-tasatt.ads
! 41cdb718839fe89eb6af1f86509ecfaa  gcc/ada/libgnarl/a-taside.adb
! ee0d808d8846fc39ac6a0ab3f89c7925  gcc/ada/libgnarl/a-taside.ads
! 119bca3c58d48b373db54f3f9bb35af7  gcc/ada/libgnarl/a-tasini.adb
! f2ff4ed03de4ee9b27ce571206aa8a9d  gcc/ada/libgnarl/a-tasini.ads
! b59cc4edc1b2a912f93f9ba1ae93a625  gcc/ada/libgnarl/a-taster.adb
  281fc9a014bf9c5a3677f1dd38cc9d5d  gcc/ada/libgnarl/a-taster.ads
! 48a46f5af12395a7ef83998b24443d63  gcc/ada/libgnarl/g-boubuf.adb
! d8a21d637562ba6469f9db1185590cc4  gcc/ada/libgnarl/g-boubuf.ads
! 51cf271ebda21e1cd08c8e6904d990e3  gcc/ada/libgnarl/g-boumai.ads
! a2a496ae3fabe091984ff65df48e14f2  gcc/ada/libgnarl/g-semaph.adb
! b642a983d00d42f1ecd72f075908497f  gcc/ada/libgnarl/g-semaph.ads
! 4924cb581cad06e6334af56188ee8103  gcc/ada/libgnarl/g-signal.adb
! dae838498958f180891f6b1fd24448fe  gcc/ada/libgnarl/g-signal.ads
! 4b2873143a1e191c637cb84bf571b6ab  gcc/ada/libgnarl/g-tastus.ads
! 8bb5ab750d0a900e44224079e101beb0  gcc/ada/libgnarl/g-thread.adb
! 235e7fcaf914b52fbe5f4888dfe63711  gcc/ada/libgnarl/g-thread.ads
! ff59571e80bb09a262db3e09508f80f6  gcc/ada/libgnarl/i-vxinco.adb
! 34ea2d40dc5513e9018c037457ded4b3  gcc/ada/libgnarl/i-vxinco.ads
  5cfb9f62dd9599caab03143b5745a967  gcc/ada/libgnarl/libgnarl.gpr
! f632c0ca5a4371ca436e4933ddce247a  gcc/ada/libgnarl/s-inmaop.ads
! cc4c6b8a0368ed2678675a1d620a8f73  gcc/ada/libgnarl/s-inmaop__dummy.adb
! 46d00d60128ec0aaa82da7fde1bcd40f  gcc/ada/libgnarl/s-inmaop__hwint.adb
! ace3889ddceca321d86a77e3442c6d76  gcc/ada/libgnarl/s-inmaop__posix.adb
! 85719d877b68535ec7b7146f2b1605cf  gcc/ada/libgnarl/s-interr.adb
! c93d7847b04683aa019e3193cb3d3405  gcc/ada/libgnarl/s-interr.ads
! 1766fe6ece77985e300dcaea98a8a9d2  gcc/ada/libgnarl/s-interr__dummy.adb
! c12129daa808cbb5d8124cf1c0b22a40  gcc/ada/libgnarl/s-interr__hwint.adb
! f98ed57965ac38b000e8beed1aacad16  gcc/ada/libgnarl/s-interr__sigaction.adb
! a03caea165ee8d579b523cbbfaa470f3  gcc/ada/libgnarl/s-interr__vxworks.adb
! 78a91da703382e1ae36561d514a94721  gcc/ada/libgnarl/s-intman.ads
! 97747e523d7d09fa739fac4870765089  gcc/ada/libgnarl/s-intman__android.adb
! 176e6acaa6ec3a822a7502ff45687a39  gcc/ada/libgnarl/s-intman__dummy.adb
! c3975c4001d3a46de0ccd93c8f034a4c  gcc/ada/libgnarl/s-intman__lynxos.adb
! 2b84f95146a06017b3ee11bcfbf3ebe4  gcc/ada/libgnarl/s-intman__mingw.adb
! ca7dd907d4fe0a7dd4e3f30f93f6b516  gcc/ada/libgnarl/s-intman__posix.adb
! 9f2b72b4888af94773378ce692c2f6fc  gcc/ada/libgnarl/s-intman__qnx.adb
! 40789f5e3482a31cc913e32ff2b4ced6  gcc/ada/libgnarl/s-intman__rtems.adb
! bf168a817ef15fdd5b4ba943601b7185  gcc/ada/libgnarl/s-intman__rtems.ads
! 341de0a88093a7db4b64db095303b8ab  gcc/ada/libgnarl/s-intman__solaris.adb
! a3d7c07cea11f1c2899f911d36220282  gcc/ada/libgnarl/s-intman__susv3.adb
! 7a26726ba4c2d3ccb61a2f4d0ac59b9f  gcc/ada/libgnarl/s-intman__vxworks.adb
! 66561cd2787c6f645510064eb7bfadbb  gcc/ada/libgnarl/s-intman__vxworks.ads
! 7d50495b8779b6c87593ee03e1b4467b  gcc/ada/libgnarl/s-linux.ads
! e465e941166b8b0636e1346434f58958  gcc/ada/libgnarl/s-linux__alpha.ads
! 3d7df352d60bb51bc0497eee29332dfc  gcc/ada/libgnarl/s-linux__android.ads
! f6964e478905260c5445a1baf12aebaf  gcc/ada/libgnarl/s-linux__hppa.ads
! 7454be8891f881aac3e0180f70f0bbc7  gcc/ada/libgnarl/s-linux__mips.ads
! 6927aa9e7f2af0eb71cf201d47632c30  gcc/ada/libgnarl/s-linux__riscv.ads
! 6af242502704cd1829aac3f902cea731  gcc/ada/libgnarl/s-linux__sparc.ads
! f20b7e9bd97df62a086c2a1542251a1c  gcc/ada/libgnarl/s-linux__x32.ads
! eca7af35377e324cc290496d74616f50  gcc/ada/libgnarl/s-mudido.adb
! e6304ab8465d5bc7fadbcaf1933a0980  gcc/ada/libgnarl/s-mudido.ads
! 99cddadb77e5c66bffde07878a21fdf5  gcc/ada/libgnarl/s-mudido__affinity.adb
! fcd2dcd0dcef77ff3d0bc1d6a7402066  gcc/ada/libgnarl/s-osinte__aix.adb
! ccace4d3b31cecaf0e2a482be5f61e07  gcc/ada/libgnarl/s-osinte__aix.ads
! d9991a71f8b88f0c19c0ca43986e2407  gcc/ada/libgnarl/s-osinte__android.adb
! e601522b2e8e5d28e66678f456ab01ad  gcc/ada/libgnarl/s-osinte__android.ads
! 648b3915cfc853ab1aa7bc68bd1e3256  gcc/ada/libgnarl/s-osinte__darwin.adb
! 07fdfdbaeb1549dec4e281410cdee8bb  gcc/ada/libgnarl/s-osinte__darwin.ads
! d6c4ef4a0c04843da479835ff4faadbb  gcc/ada/libgnarl/s-osinte__dragonfly.adb
! 7b6bfb9632fc98f2dfc94c78a92fad31  gcc/ada/libgnarl/s-osinte__dragonfly.ads
! 7e3dde0a0da05f1fb34dab39717fc466  gcc/ada/libgnarl/s-osinte__dummy.ads
! 36e32d22afa1d609b2c13a16a6c7d3d5  gcc/ada/libgnarl/s-osinte__freebsd.adb
! da66f57e07eafd63eef890106d12f444  gcc/ada/libgnarl/s-osinte__freebsd.ads
! 489b287f1c7c48849a2680e53c15ca50  gcc/ada/libgnarl/s-osinte__gnu.adb
! 121ade618a74687c2c78fd6b1af71b0a  gcc/ada/libgnarl/s-osinte__gnu.ads
! ea1a33f8688ddcc82dd6e33b50db7dc1  gcc/ada/libgnarl/s-osinte__hpux-dce.adb
! 0a2b95ec775437d94cfadbf73cf2b71c  gcc/ada/libgnarl/s-osinte__hpux-dce.ads
! 64def1dbc77570cb314c7d41655ea786  gcc/ada/libgnarl/s-osinte__hpux.ads
! 1845e394f8f8b850cafe619db496085d  gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
! 7a37ff6c94a60e649f17935cc1bdf4b2  gcc/ada/libgnarl/s-osinte__linux.ads
! 8179bc44d4664c40f14a1734c5810bda  gcc/ada/libgnarl/s-osinte__lynxos178.adb
! 46433be586a6c51b16799179be2a9df2  gcc/ada/libgnarl/s-osinte__lynxos178e.ads
! 498090d0dd6a5243ab07fd89c871277e  gcc/ada/libgnarl/s-osinte__mingw.ads
! 563bf146956a954226ea7b6754496efc  gcc/ada/libgnarl/s-osinte__posix.adb
! 92d250558371f29d223adada93eb7e2b  gcc/ada/libgnarl/s-osinte__qnx.adb
! 3f59767a7d4f8b5d570c36beb478c830  gcc/ada/libgnarl/s-osinte__qnx.ads
! c80fdd36972abc00c0e3340403ba5238  gcc/ada/libgnarl/s-osinte__rtems.adb
! fe751b5b2c7e57dd5d9ea1446f52a632  gcc/ada/libgnarl/s-osinte__rtems.ads
! 935b5859228770a9af9bf27bb7fe874f  gcc/ada/libgnarl/s-osinte__solaris.adb
! 779556e27cc1be61562bbc8f1d37fa58  gcc/ada/libgnarl/s-osinte__solaris.ads
! 22250b6762070ba739a2b3cd271b8a4a  gcc/ada/libgnarl/s-osinte__vxworks.adb
! 2f33c026a66e140bb9c1c4b0791aa2f3  gcc/ada/libgnarl/s-osinte__vxworks.ads
! b804f0afbd71a8c0d512937ba428e3a1  gcc/ada/libgnarl/s-osinte__x32.adb
! 09332c80039f458f7a62c6125a555c02  gcc/ada/libgnarl/s-proinf.adb
! 2c76a5d34faf40b4462d4384cd22950a  gcc/ada/libgnarl/s-proinf.ads
! 4de6022fff1d643176e605d2008176bd  gcc/ada/libgnarl/s-putaim.adb
! 19aa64b2dd2fce310259d90d41ab8819  gcc/ada/libgnarl/s-putaim.ads
! 09a9a584d7ecce11d7d6d3fed9c374ce  gcc/ada/libgnarl/s-qnx.ads
! d9cfe4dbc0ddd77e59bd4c44984ec74a  gcc/ada/libgnarl/s-solita.adb
! 5e110d5a3a07c4527b35cfbcd0acf773  gcc/ada/libgnarl/s-solita.ads
! bc5570a4219900f19efa6d265f28f069  gcc/ada/libgnarl/s-stusta.adb
! 3b0544432097efc37ebddc80f023d6bf  gcc/ada/libgnarl/s-stusta.ads
! 9c77c9e83191ba69fa655a44fbb041cb  gcc/ada/libgnarl/s-taasde.adb
! ef138c27364d3050cc83814d042d90cb  gcc/ada/libgnarl/s-taasde.ads
! a4ccfde4d50c5eaab728ce5051153d20  gcc/ada/libgnarl/s-tadeca.adb
! df36e80764563dbe1979b722db39598a  gcc/ada/libgnarl/s-tadeca.ads
! 3837f06837d3e27648c64c1128c1f2d7  gcc/ada/libgnarl/s-tadert.adb
! 9da8815be6cf0dc085288244093ecd43  gcc/ada/libgnarl/s-tadert.ads
! c05450c642d1006629d7339a5a7a2759  gcc/ada/libgnarl/s-taenca.adb
! 3432dc09b01d2502d1a716f1a6889c79  gcc/ada/libgnarl/s-taenca.ads
! 43964d1593669d040e4248638713ecf7  gcc/ada/libgnarl/s-taprob.adb
! db9c0ccf4708058c2aaccba9d92e26a1  gcc/ada/libgnarl/s-taprob.ads
! d450207eda810423d7d8dfd38d4834a2  gcc/ada/libgnarl/s-taprop.ads
! 167d4db37b85ceb7c487ded0bc3269c9  gcc/ada/libgnarl/s-taprop__dummy.adb
! 5fc47199a0065876f919d6a86274c714  gcc/ada/libgnarl/s-taprop__hpux-dce.adb
! 0b26f5eb2a5499d42e2da26788cc1cc5  gcc/ada/libgnarl/s-taprop__linux.adb
! 4004097f1b98722aaa91decb8a99e431  gcc/ada/libgnarl/s-taprop__mingw.adb
! 71db5e3f42881ef6a5f7a3d71998b4e9  gcc/ada/libgnarl/s-taprop__posix.adb
! 0fef4ac5b9de6f92d09362713938bb97  gcc/ada/libgnarl/s-taprop__qnx.adb
! c02e25df3f24830eb9e2a8f7ad4cb889  gcc/ada/libgnarl/s-taprop__rtems.adb
! 857d2604a937e590c3a29b117c1c87e7  gcc/ada/libgnarl/s-taprop__solaris.adb
! 750e054c6d94fd7f2c7e12160fe87e5a  gcc/ada/libgnarl/s-taprop__vxworks.adb
! c0d8f71862140b729dbe0b9864873bfa  gcc/ada/libgnarl/s-tarest.adb
! 91ab71fa80a2845532c820bdea7ad46d  gcc/ada/libgnarl/s-tarest.ads
! 72b3d7103e78c846d3c252bf037d098a  gcc/ada/libgnarl/s-tasdeb.adb
! 984c95e09b6dc6c9243e8a8e45fc0fbd  gcc/ada/libgnarl/s-tasdeb.ads
! 16b07f2ab5a59424ba8f246a21ab6acd  gcc/ada/libgnarl/s-tasinf.adb
! d095e18ff1a34b5c2d393a2f9690847e  gcc/ada/libgnarl/s-tasinf.ads
! ca8d409afb3558a0b4ed0d32de82a5f7  gcc/ada/libgnarl/s-tasinf__linux.adb
! 4d8d59fabe8c9924efebb4f7c6b346b7  gcc/ada/libgnarl/s-tasinf__linux.ads
! ea74a80d156e3b7423fd7fbeb2adaba9  gcc/ada/libgnarl/s-tasinf__mingw.adb
! 9588b479a5bea5cf600a2f255e31a490  gcc/ada/libgnarl/s-tasinf__mingw.ads
! b3f4f2a8c0c0d27fb4ee31d6f1931e39  gcc/ada/libgnarl/s-tasinf__solaris.adb
! 4e27cac8c0dce76074b53ab24f63866d  gcc/ada/libgnarl/s-tasinf__solaris.ads
! 131f86029a9badb846870c68d0502d7b  gcc/ada/libgnarl/s-tasinf__vxworks.ads
! 52e7aa45c73edfd1173916e56f281a27  gcc/ada/libgnarl/s-tasini.adb
! 195488affa8eddf9cff937cd12d98fda  gcc/ada/libgnarl/s-tasini.ads
! 5726abe7180770c525ba8192fe355112  gcc/ada/libgnarl/s-taskin.adb
! ec0ac07f91aed21a1bbb8e42706a8136  gcc/ada/libgnarl/s-taskin.ads
! c5df003a2c2e0fc4ee5f25421d5a3ce9  gcc/ada/libgnarl/s-taspri__dummy.ads
! ea1848dbc453bd976d789371811780ca  gcc/ada/libgnarl/s-taspri__hpux-dce.ads
! e5a058407ba62a5dd6ab81c16b1a51a4  gcc/ada/libgnarl/s-taspri__lynxos.ads
! de50a9c3a6a1ad1159c8f7ab084226b6  gcc/ada/libgnarl/s-taspri__mingw.ads
! 7797747b8b8f5e1a5701afc81aff4d62  gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads
! 9a127f8b5f6c7c8d1d0c78b9ed388b50  gcc/ada/libgnarl/s-taspri__posix.ads
! 8b81c4da69cbb1ca7c8a3e64fa7649b2  gcc/ada/libgnarl/s-taspri__solaris.ads
! d66d585689cdf03654970c09a668b783  gcc/ada/libgnarl/s-taspri__vxworks.ads
! 1460a4b3e37b0a59ceb1ed7a9cbea150  gcc/ada/libgnarl/s-tasque.adb
! b33059b3ac39f04fd0f84aa43fa5d669  gcc/ada/libgnarl/s-tasque.ads
! e6dcc4d44afb3bbbbc7da305f9a42f7a  gcc/ada/libgnarl/s-tasren.adb
! 9c96883a7c360ffa23d9c37b7977927d  gcc/ada/libgnarl/s-tasren.ads
! 345a9d8fa539e007e366252f8c56a182  gcc/ada/libgnarl/s-tasres.ads
! c438e0ac1e5bec85cc65741dbfc1b6e0  gcc/ada/libgnarl/s-tassta.adb
! 8d8d54c9f86bb5dfda34b4ed8ac3f317  gcc/ada/libgnarl/s-tassta.ads
! 4d7b79dd01e95cf4df0445e634ab87c6  gcc/ada/libgnarl/s-tasuti.adb
! 14ad6faabda046094e77a1a933cff5db  gcc/ada/libgnarl/s-tasuti.ads
! d37ef2d7dd39400bf216f0c085a2e8ee  gcc/ada/libgnarl/s-tataat.adb
! 1c7d4a1daf7cf5b14d31ccab789f9999  gcc/ada/libgnarl/s-tataat.ads
! d009eeb572ee9bd4ed4810ecfafe34e3  gcc/ada/libgnarl/s-tpinop.adb
! 7f087db23b965a1e0662ede4c835291b  gcc/ada/libgnarl/s-tpinop.ads
! 0f5839972c12c4f38c9b39a6b00ea965  gcc/ada/libgnarl/s-tpoaal.adb
! 3439f3cc904fd1ebca2c70feeac56a96  gcc/ada/libgnarl/s-tpoben.adb
! 5c7c41cd1d9f8397b0982b7f900ecd5f  gcc/ada/libgnarl/s-tpoben.ads
! 1b69757993ffcc4b279a2d74d8d93cbe  gcc/ada/libgnarl/s-tpobmu.adb
! 60058bcc0f6bd1076d1822faa1e66bea  gcc/ada/libgnarl/s-tpobmu.ads
! 0053f5df190db182528c611a44816018  gcc/ada/libgnarl/s-tpobop.adb
! fa36ad3c329cb229f5e23a67a302b6de  gcc/ada/libgnarl/s-tpobop.ads
! 2f5a1fe63bee14f27cf930ea798298f0  gcc/ada/libgnarl/s-tpopmo.adb
! 834f154664b5c79d9656418740448246  gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb
! 0da68d57cd56895ad4c2369fcfd0632a  gcc/ada/libgnarl/s-tpopsp__posix.adb
! e77852dbf14076d89060eae53a9a201d  gcc/ada/libgnarl/s-tpopsp__solaris.adb
! 6f7178dea04175f0c0856702a8176851  gcc/ada/libgnarl/s-tpopsp__tls.adb
! fae37fa5e4771be448f107881fc02a96  gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
! fcca85039904cd84cb1c3e696558a4ba  gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb
! d226f5d6caa759955cd5b29c40635828  gcc/ada/libgnarl/s-tpopsp__vxworks.adb
! f0fe00b7f0d46496a8ffd1bd567e2d33  gcc/ada/libgnarl/s-tporft.adb
! 156a7bec725cd11e369d966a38c4cf85  gcc/ada/libgnarl/s-tposen.adb
! f0cb55100f734689ac086f4adc99c2ff  gcc/ada/libgnarl/s-tposen.ads
! 43af921b0bc5f23014d44b2f103e00d3  gcc/ada/libgnarl/s-vxwext.adb
! d8a5c133909f0b284e9a8b068fcbb4b6  gcc/ada/libgnarl/s-vxwext.ads
! bb31794451a08e3c3353ebab525e8088  gcc/ada/libgnarl/s-vxwext__kernel-smp.adb
! 9b196a7359e1c45a8415174b1021f89f  gcc/ada/libgnarl/s-vxwext__kernel.adb
! 5f21f213c37ca25176db74b880c35898  gcc/ada/libgnarl/s-vxwext__kernel.ads
! ba85c856cc9bdb4e8e5b7bc3c8f8858a  gcc/ada/libgnarl/s-vxwext__rtp-smp.adb
! 5b6723b3a38d202306d72eab9fe09614  gcc/ada/libgnarl/s-vxwext__rtp.adb
! 8c89dcac12ee78d2748ecb586fb02f1e  gcc/ada/libgnarl/s-vxwext__rtp.ads
! 23efd3a8f52ad9cf590c4cc4187ddfcb  gcc/ada/libgnarl/s-vxwork__aarch64.ads
! 2fd36c2cc0bf56e0f4b649c14592c1cb  gcc/ada/libgnarl/s-vxwork__arm.ads
! 04b7b8e03286e9b4c19a2e8eeb093ecf  gcc/ada/libgnarl/s-vxwork__ppc.ads
! cb7058be2d27ea21857f4861a4823daf  gcc/ada/libgnarl/s-vxwork__x86.ads
! 1d8d54e2791951c0dcf144f8a3cec318  gcc/ada/libgnarl/thread.c
! 6b859744b6b31dfdc683bbe098b1c7f6  gcc/ada/libgnat/a-assert.adb
! 9ad82bde8acc5a9c209af8621bb0d3f1  gcc/ada/libgnat/a-assert.ads
! a4c69a8e9f6eb806cd239985bcb76c78  gcc/ada/libgnat/a-btgbso.adb
! c68096f5f5fe6c51943658abd2dc381e  gcc/ada/libgnat/a-btgbso.ads
! 4fa840d6910473e6a58fc93f1226175d  gcc/ada/libgnat/a-calari.adb
! 1213cc324c4b8914eca09f79fb3fd2e9  gcc/ada/libgnat/a-calari.ads
! ef618837b97336020e05a4ef248f5f72  gcc/ada/libgnat/a-calcon.adb
! d92ea66db950146480f65dcd8dc68940  gcc/ada/libgnat/a-calcon.ads
! 87b0b81056312af7ecce8c0661877355  gcc/ada/libgnat/a-caldel.adb
! 627edf91af40e63fbd1fca6c177cea89  gcc/ada/libgnat/a-caldel.ads
! d4be8c45bf3a1a6922ccec8a3aec5fd4  gcc/ada/libgnat/a-calend.adb
! 7d4e0b9e749358f03647ee2ade4f3acd  gcc/ada/libgnat/a-calend.ads
! 7e4689208b323577cf34badaa97e9d12  gcc/ada/libgnat/a-calfor.adb
! a97697972f10e250dafbedd3a415fd4a  gcc/ada/libgnat/a-calfor.ads
! f3dfcab29843909d909a33e37196bce3  gcc/ada/libgnat/a-catizo.adb
  d731f2a00c2328507e1708628b8f8534  gcc/ada/libgnat/a-catizo.ads
! 7927a33ef4f49f4b9419443a4b2ccb77  gcc/ada/libgnat/a-cbdlli.adb
! 847018c9ce148aa2a4ff84a57f4c15f6  gcc/ada/libgnat/a-cbdlli.ads
! d050cf9389021145df4ffd837e9c3be6  gcc/ada/libgnat/a-cbhama.adb
! 4205f02db4736849669648c5421cec9c  gcc/ada/libgnat/a-cbhama.ads
! cf1b5d54d5c0675d2e7c6b95f4ed9f21  gcc/ada/libgnat/a-cbhase.adb
! 3429b74f0435c25470509ed77da564c6  gcc/ada/libgnat/a-cbhase.ads
! 6f514acbacc9b6288543f3e689f3d635  gcc/ada/libgnat/a-cbmutr.adb
! 8b84739cac634bf8de6e0cd6904e6b0b  gcc/ada/libgnat/a-cbmutr.ads
! c07036917ae26219e749647e72ffe395  gcc/ada/libgnat/a-cborma.adb
! cf93f97cb291f16005329fabca673cf5  gcc/ada/libgnat/a-cborma.ads
! 182b8af95456c78a117d3baa104cf2a1  gcc/ada/libgnat/a-cborse.adb
! 07691e15cb88defeb918efdf444bd4dc  gcc/ada/libgnat/a-cborse.ads
! 086b17951219d14b1eaf582da82a43f1  gcc/ada/libgnat/a-cbprqu.adb
! 69c4f15b3990e61384ebb3830331384e  gcc/ada/libgnat/a-cbprqu.ads
! f8922b2479145e1ea751bbc5644cc5c9  gcc/ada/libgnat/a-cbsyqu.adb
! 0dd73e2379a819579f9a7ba0a82f92d8  gcc/ada/libgnat/a-cbsyqu.ads
! fd1a8dc0427d7249b9477347dc2081a4  gcc/ada/libgnat/a-cdlili.adb
! 9e3ecc1473d730d754006cc55a15ff0d  gcc/ada/libgnat/a-cdlili.ads
! 7c36cf5257d50dfefa219979894bce0d  gcc/ada/libgnat/a-cfdlli.ads
! d487238ea3104ad08b3556e3b25b6e72  gcc/ada/libgnat/a-cfhama.ads
! 2586a1cffaa7a72607f2da48cd2ea3d4  gcc/ada/libgnat/a-cfhase.ads
! 4b7abf1e49aea5fed4de20281289a64b  gcc/ada/libgnat/a-cfidll.ads
! f03a158e2268c2e59bb8915c7167f21b  gcc/ada/libgnat/a-cfinse.ads
! a8de5aacf949123f5189ed231708212d  gcc/ada/libgnat/a-cfinve.ads
! 332b4f2c580b7f60a50acb6d4abd8635  gcc/ada/libgnat/a-cforma.ads
! b76af7869cd9880a8b5546b857611daa  gcc/ada/libgnat/a-cforse.ads
! 2135df2f7845a8777cf26b4c73e45b20  gcc/ada/libgnat/a-cgaaso.adb
! 97fec2b7470185f5782985a10936d979  gcc/ada/libgnat/a-cgaaso.ads
! eb7edfd615260b6a67186e8aeaa174bf  gcc/ada/libgnat/a-cgarso.adb
  ef7fab6c5e61256ac64c9dae1dd27960  gcc/ada/libgnat/a-cgarso.ads
! f347742e2b57893e8c004da5e5f89619  gcc/ada/libgnat/a-cgcaso.adb
  68226484befc5e389cd3dafaab608090  gcc/ada/libgnat/a-cgcaso.ads
! 8c52beb285706bf42544326401a6cb58  gcc/ada/libgnat/a-chacon.adb
! 32ac0c0240485d7acfcb22b0fd648f5b  gcc/ada/libgnat/a-chacon.ads
! 5bb35d234955883b466bd4b3eb70c9aa  gcc/ada/libgnat/a-chahan.adb
! fea456113a0b72fca9e47bddbfed23f0  gcc/ada/libgnat/a-chahan.ads
  00b37c98f6f96d2b5499c1f98cb503f0  gcc/ada/libgnat/a-charac.ads
  1e2a45aa2f9324faab423eb0f9a85a8e  gcc/ada/libgnat/a-chlat1.ads
! 14ab1f30b61562c149c94392b71e4d17  gcc/ada/libgnat/a-chlat9.ads
! 4ad4a1f44e24e1d1a6510fe66844e810  gcc/ada/libgnat/a-chtgbk.adb
! e76887e6f32ec689ff356e36de6707b0  gcc/ada/libgnat/a-chtgbk.ads
! b1ffa36a58522941219ce8635c52365e  gcc/ada/libgnat/a-chtgbo.adb
! 60c28a2da42b76355e257a4f333d8bef  gcc/ada/libgnat/a-chtgbo.ads
! d71c894ab0d13a7653c4a0beda911193  gcc/ada/libgnat/a-chtgfk.adb
! d76e2082a00571738ab1156e51348a13  gcc/ada/libgnat/a-chtgfk.ads
! becdfe0a09da4f9ef1a1882f7506e224  gcc/ada/libgnat/a-chtgfo.adb
! 7615671166028bb7c335d209d96161a9  gcc/ada/libgnat/a-chtgfo.ads
! a2fe150484f8a467b9a34fcd859e99eb  gcc/ada/libgnat/a-chtgke.adb
! 31d5cda72b0ed38227e9f2fdc443de4a  gcc/ada/libgnat/a-chtgke.ads
! d1a0d005a5fb1d0e7aa0258dba741201  gcc/ada/libgnat/a-chtgop.adb
! 975a91b1e750a7fe0957260af2ba111b  gcc/ada/libgnat/a-chtgop.ads
! a2ee405a8dc8939cbf8547974b143e4c  gcc/ada/libgnat/a-chzla1.ads
! aceeaa761d8843fad7dca2718f299507  gcc/ada/libgnat/a-chzla9.ads
! af0889c026c8f46388e658c2029ec28c  gcc/ada/libgnat/a-cidlli.adb
! 786934da802ca5e789d0584e430387d8  gcc/ada/libgnat/a-cidlli.ads
! 5a7c4351b9fff5eba8f62620a1518d80  gcc/ada/libgnat/a-cihama.adb
! db24d10d4dda4f5919b6e88b45e3a503  gcc/ada/libgnat/a-cihama.ads
! 6f61f6f3c7e895e933b49fd747148528  gcc/ada/libgnat/a-cihase.adb
! d0fb383a58cbcae729fc8250f4988327  gcc/ada/libgnat/a-cihase.ads
! 61b7c80b06a4b3ed062afed7060176cd  gcc/ada/libgnat/a-cimutr.adb
! e76d53841f9305e9d603553298f35e1f  gcc/ada/libgnat/a-cimutr.ads
! ca90cb7661067cf49744203aec86990a  gcc/ada/libgnat/a-ciorma.adb
! e9f288488e5de1605fe373b9429c484e  gcc/ada/libgnat/a-ciorma.ads
! 28ef3baf7ead6add9112e0cdfdfbf99b  gcc/ada/libgnat/a-ciormu.adb
! 7c3f5ff6cd003508ae1843d63099b5e3  gcc/ada/libgnat/a-ciormu.ads
! 76b0af7ed18da9bcd3122b2fd4f9de96  gcc/ada/libgnat/a-ciorse.adb
! 93d045d3273c345f6f22173924bd528a  gcc/ada/libgnat/a-ciorse.ads
! 05305d8039faaa58458b366277e544f1  gcc/ada/libgnat/a-clrefi.adb
! b59de8aebdc6296fff32715ddb4eb1a3  gcc/ada/libgnat/a-clrefi.ads
! 23aaa35bc98c46a291db60caa5e6ab21  gcc/ada/libgnat/a-coboho.adb
! d6f875f14b861a7136cfc9c599f217fb  gcc/ada/libgnat/a-coboho.ads
! ce25fafd156bd5c1da7096b1f2259151  gcc/ada/libgnat/a-cobove.adb
! 61cd5b36b5290336bfcdefbfd2269643  gcc/ada/libgnat/a-cobove.ads
! 85db0457c02c9b1fdfac599f17f39a87  gcc/ada/libgnat/a-cofove.ads
! 0ce8362373ffeb63c58f62b250660b18  gcc/ada/libgnat/a-cofuma.ads
! d84f3a0cc43fbeac593dedb8d4d1e7f6  gcc/ada/libgnat/a-cofuse.ads
! 4c353d6d9d8766a8075b2e1f70a10a82  gcc/ada/libgnat/a-cofuve.ads
! c23470652df6af90270d097651d28af0  gcc/ada/libgnat/a-cogeso.adb
! 8517dda099a4676fe2cf19d624a8c8d0  gcc/ada/libgnat/a-cogeso.ads
! 77acec13c716ab881a8a3ec092a0ac5a  gcc/ada/libgnat/a-cohama.adb
! 937b9fcccbeadc5100db0c6e44d7e6bd  gcc/ada/libgnat/a-cohama.ads
! cdfd30a3dd39eb3670a3fdacba23ca44  gcc/ada/libgnat/a-cohase.adb
! 4433f1a4fbdeb5420989755dbac5007b  gcc/ada/libgnat/a-cohase.ads
! dad19ec65dab43f4a29eb7b825836d3e  gcc/ada/libgnat/a-cohata.ads
! 97f9bacd7ff6693416e1e4ea3b2528b4  gcc/ada/libgnat/a-coinho.adb
! fc3b38ea4c6b597fff267e59ded9899b  gcc/ada/libgnat/a-coinho.ads
! cfe8881cfc7be8e30ac807c8fff04474  gcc/ada/libgnat/a-coinho__shared.adb
! c0a82339144c39f22debed4ff749e4ed  gcc/ada/libgnat/a-coinho__shared.ads
! d9eedab0bd66cf9e25df391ac1987c77  gcc/ada/libgnat/a-coinve.adb
! d0c5e409806957000a7d3c89bacfdf8c  gcc/ada/libgnat/a-coinve.ads
! 3aac4c991a7fb31b4a9197f4612b6958  gcc/ada/libgnat/a-colien.adb
! 684c10dd52b817b7222ff03c92972163  gcc/ada/libgnat/a-colien.ads
! a2d3ce270b112db1cba35073e52364ad  gcc/ada/libgnat/a-colire.adb
! 5167b64ef8703f447ac03f70dbd0e75f  gcc/ada/libgnat/a-colire.ads
! d19805d9b8c8f234156ce3e7632583e6  gcc/ada/libgnat/a-comlin.adb
! 41b103b8f1653b06d2a887af72895f7e  gcc/ada/libgnat/a-comlin.ads
! 3c2819d273b159b71cd6e9149d32d20b  gcc/ada/libgnat/a-comutr.adb
! 5e7018bc0c98b697ce9c61754c545012  gcc/ada/libgnat/a-comutr.ads
! e90e86682c4c3dbb05a39b6cd3636d5e  gcc/ada/libgnat/a-conhel.adb
! a924641e6cf7c6f9b3ffe31ee08e8237  gcc/ada/libgnat/a-conhel.ads
  38baf99435420fa514890cac49ee9242  gcc/ada/libgnat/a-contai.ads
! ca82ffa0ce4c1a16ffd71ee00dc48b6a  gcc/ada/libgnat/a-convec.adb
! 2385f0fd24ff3e848d3de49619c30f91  gcc/ada/libgnat/a-convec.ads
! 9902d5aeccb796d13799efeaa70e1cf4  gcc/ada/libgnat/a-coorma.adb
! 8a0b6ade186688823c7bda47774541c4  gcc/ada/libgnat/a-coorma.ads
! e436dbcb0924127f596e815caa6a198c  gcc/ada/libgnat/a-coormu.adb
! 4f02a20cd7f9f81c33dc1e3a2dc98463  gcc/ada/libgnat/a-coormu.ads
! 2d7f980b0666c4bd8f1672c4009efd42  gcc/ada/libgnat/a-coorse.adb
! 4d44a7f0f0e7bf2f2d633946010b2353  gcc/ada/libgnat/a-coorse.ads
! e0b5cdd5f65b918fcaa76f2dadea8c44  gcc/ada/libgnat/a-coprnu.adb
! b4ad2ab24aedfaf752976fd04d4cdc5e  gcc/ada/libgnat/a-coprnu.ads
! d7c9d28b74e1c3847dd7456037e3d264  gcc/ada/libgnat/a-costso.adb
! 78f4b687960cb65a1495f1d29552f1bb  gcc/ada/libgnat/a-costso.ads
  2399731eabd6e0bbc0a8f28a60d3c3c8  gcc/ada/libgnat/a-coteio.ads
! 68bacb72a3033c258cff795fc1b9c326  gcc/ada/libgnat/a-crbltr.ads
! bf79404c2d5a8f72f3b7cfc14ca32f47  gcc/ada/libgnat/a-crbtgk.adb
! 833fe95847b939f671ec5eea6e6ebeef  gcc/ada/libgnat/a-crbtgk.ads
! 8f1cacec981ac2c50fc957440b02ceb8  gcc/ada/libgnat/a-crbtgo.adb
! eec641d65ca5163eb54937ec3ec56543  gcc/ada/libgnat/a-crbtgo.ads
! 40cb3ffb411c733ba0ff2971bc1d392e  gcc/ada/libgnat/a-crdlli.adb
! 34a2104120fcb9356a165b6082c06016  gcc/ada/libgnat/a-crdlli.ads
! b8e7632dac86d9e67397a0dd45c9551a  gcc/ada/libgnat/a-csquin.ads
! 0f461eeeae5aa72b05d18864f49f46a0  gcc/ada/libgnat/a-cuprqu.adb
! de7f2ec6ffa592324c34cf42553899fa  gcc/ada/libgnat/a-cuprqu.ads
! 563d6527544668b8896023d407dd97d1  gcc/ada/libgnat/a-cusyqu.adb
! 78a5d7d2e694e20b7d1dc7a6e4667533  gcc/ada/libgnat/a-cusyqu.ads
! df83e47f58181ae827293274e83f8fa8  gcc/ada/libgnat/a-cwila1.ads
! fda5de9b70efa02e457c3f3a6a604d7b  gcc/ada/libgnat/a-cwila9.ads
! 8095ac3b9a30fccc2842ce63adb08c9e  gcc/ada/libgnat/a-decima.adb
! 4f58ca334de160d17753933c4b906734  gcc/ada/libgnat/a-decima.ads
! f4528aed6e4b39346d3960a22de23716  gcc/ada/libgnat/a-decima__128.ads
! a01cb5ec314291355c87696a0bfb6144  gcc/ada/libgnat/a-dhfina.adb
! c4787ca39b901617e2d1ae5c3834e982  gcc/ada/libgnat/a-dhfina.ads
! ddc6d1950a3b0e1ebf736005f2acd001  gcc/ada/libgnat/a-diocst.adb
! 96e2059de1ee9a1c78ff5c0a38f01330  gcc/ada/libgnat/a-diocst.ads
! b5e203a0bda36c4a3da1d4d6c4472e2a  gcc/ada/libgnat/a-direct.adb
! 2801ec8a7e5f99b762e0bc6d8a3bc414  gcc/ada/libgnat/a-direct.ads
! f2a21de232c405ca10a9c16b6e46750e  gcc/ada/libgnat/a-direio.adb
! 022cff9053b2aca3b45cf879061d2874  gcc/ada/libgnat/a-direio.ads
! 83079fbd4e6372ddb49c67fb03ae6c37  gcc/ada/libgnat/a-dirval.adb
! bd13f90a8c314adec7dc40b929bfbdb3  gcc/ada/libgnat/a-dirval.ads
! e145b91cd66a19bb02afe130da04a99a  gcc/ada/libgnat/a-dirval__mingw.adb
! 50276fbfb4ff3c2216a42ce54c765db7  gcc/ada/libgnat/a-einuoc.adb
! c6f03a6d7bb3ce866e219450f5a93cfa  gcc/ada/libgnat/a-einuoc.ads
! a433caf5f8b104ce776de768ff59e383  gcc/ada/libgnat/a-elchha.adb
! 0a49a68a06bda1f751d3e60c4b64840d  gcc/ada/libgnat/a-elchha.ads
! 714b27fe849d2fa3e95bd3e82235508d  gcc/ada/libgnat/a-envvar.adb
  e77a221e76c3e19394bf433277f04c0f  gcc/ada/libgnat/a-envvar.ads
! 720aee665f7cd4564cd22b998b87bcca  gcc/ada/libgnat/a-excach.adb
! 23eeb1d5c4ca3df0e01fd527511c10ea  gcc/ada/libgnat/a-except.adb
! a7d8814f3bb253147b317725061bc271  gcc/ada/libgnat/a-except.ads
! 03d5acfc2ddb9d66313566329b1a828a  gcc/ada/libgnat/a-exctra.adb
! 9772a2cb14779fd59328a4c6506898f6  gcc/ada/libgnat/a-exctra.ads
! 3de7bd7da32cfe5ea14e06aa805a561f  gcc/ada/libgnat/a-exexda.adb
! 68f6de95c3575fb44145cb397f88aac8  gcc/ada/libgnat/a-exexpr.adb
! e368962ec8b477dec786d37d94e4d0ff  gcc/ada/libgnat/a-exextr.adb
! b84b943b203dbc5b564d2d35195aabd0  gcc/ada/libgnat/a-exstat.adb
! 3f251e47a36bec2ba1dd2e020b2d9040  gcc/ada/libgnat/a-finali.adb
! 16e824d042a91d6411f0a8f8d2e89917  gcc/ada/libgnat/a-finali.ads
  b6ba93109a253e15591b1eefa685bc24  gcc/ada/libgnat/a-flteio.ads
  f7e337bf223b3a491d58fb6db81ef7b1  gcc/ada/libgnat/a-fwteio.ads
  2bf5d12193c278c4a482ae0dda1129a9  gcc/ada/libgnat/a-fzteio.ads
--- 587,1330 ----
  25a37c68917fa9927277f5c8fda08d05  gcc/ada/ChangeLog-2020
  eb047ffc35b1d44455bed0519888503c  gcc/ada/ChangeLog-2021
  c81efe8ccbd5f5b8399a3496f5015859  gcc/ada/ChangeLog-2022
+ 8705d554e26508f3d915092e70c16245  gcc/ada/ChangeLog-2023
  5598cfcecd6612ea21efddabbbe1ecc0  gcc/ada/ChangeLog.ptr
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
! 711afb6f8ec14edf7425445a669e85ed  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! 0fa7d7f9fd824cc92b5e45e2aa6ceaf2  gcc/ada/Makefile.rtl
! 8fc60e49303a639f7ec7c61a44f3f460  gcc/ada/accessibility.adb
! d19afffa65b63be4a8fd705f4b3f891f  gcc/ada/accessibility.ads
! 14559d7d76c0ae16e72bf37828ab86a6  gcc/ada/ada_get_targ.adb
! d7e80ed6dc120d292c92120a7d566b74  gcc/ada/adabkend.adb
! dacffa0d5abeed22123335e3f6b8e61f  gcc/ada/adabkend.ads
! 0ae00ad41c876f51ffa36e7e0c47f014  gcc/ada/adadecode.c
! 0393ceca2b2879e7848e5b1cf7ad3016  gcc/ada/adadecode.h
! a437dcd18577a150213a4cb353eb578b  gcc/ada/adaint.c
! 8ed92ebba3a19283274f9d3a536e9b7f  gcc/ada/adaint.h
! 53e1b8b954d1909dd54d42f601b58306  gcc/ada/affinity.c
! 23b2f7a3d261df5e4175f459ac3b7fc5  gcc/ada/ali-util.adb
! 4e54741c5a4c8db738b6eb82e4185f60  gcc/ada/ali-util.ads
! 71a93bb85ba9390f30d6ca5565b937f8  gcc/ada/ali.adb
! 861da48ba67934d89099243c96927d45  gcc/ada/ali.ads
! b96da0939c37f28ed77e0e0833dbff48  gcc/ada/alloc.ads
! 9039d38ef7f9661ab737624c4314cb41  gcc/ada/argv-lynxos178-raven-cert.c
! 6f02873d1400e9d25aac2c4930dce3d1  gcc/ada/argv.c
! 13e6f37eee5cc37bd81e0a507dc4598d  gcc/ada/aspects.adb
! 55222eb3e23ad9458ec84f035656a43f  gcc/ada/aspects.ads
! 030ee12ce4187faa21be900d356abc6c  gcc/ada/atree.adb
! abb4c0a33cf7c0c3825b600013fac71f  gcc/ada/atree.ads
! 1126714d933e7968b5a8766ea6de9cc9  gcc/ada/atree.h
! c6031ff93769cc05c899487d6b756c85  gcc/ada/aux-io.c
! 6cc964ebb6ce8a1ff71f2466c8b24eaf  gcc/ada/back_end.adb
! 4a1c33f5f9aefe1f0387ac012b714bd1  gcc/ada/back_end.ads
! dc86ce81f8a924ca72f7e628c94540c3  gcc/ada/backend_utils.adb
! b50377499eee4d5148cf6c9753cedbe6  gcc/ada/backend_utils.ads
! 6d6f95d03aa23a3ab8fe66607b507158  gcc/ada/bcheck.adb
! 15bb227ef924c1d850efb83eab0271a8  gcc/ada/bcheck.ads
! 45713510c927bd6fe676d12b43ff5237  gcc/ada/binde.adb
! 01d2e9d3d36fd97037c6bb112d18bb84  gcc/ada/binde.ads
! a597502120d3ffa33a4cced46596cbcd  gcc/ada/binderr.adb
! a7c916b032cc04eb5c9b6a1188f7852c  gcc/ada/binderr.ads
! c1f429932a0ed757d1ea2690560f7d4b  gcc/ada/bindgen.adb
! 7e569a6cdc985e49741f58ed4038c6e0  gcc/ada/bindgen.ads
! 62cbfc7688050774d9305bf84975cec0  gcc/ada/bindo-augmentors.adb
! 990603d26a5a45cb05af6543bbee105a  gcc/ada/bindo-augmentors.ads
! bab4f611037d5758a7f088abc1dbe57c  gcc/ada/bindo-builders.adb
! 903346e3ed2e08491dc4e734c6d52527  gcc/ada/bindo-builders.ads
! 7e0b9165845b61810c4133cf59f4b4ec  gcc/ada/bindo-diagnostics.adb
! bfff4bfca906cb8b0c2275437907dcef  gcc/ada/bindo-diagnostics.ads
! 329ba4ed3e762230ddf3580816f603fa  gcc/ada/bindo-elaborators.adb
! 9c8469469c846c2c285805cf13cf7672  gcc/ada/bindo-elaborators.ads
! ac2e4849d3d471b6523d07b0cfd21627  gcc/ada/bindo-graphs.adb
! 735d5cb049af010f87dca54653c1d62c  gcc/ada/bindo-graphs.ads
! 95fec47c39776a0c71f160ab49606623  gcc/ada/bindo-units.adb
! 7dbdafeb6da87a5e3034a41f6b43de12  gcc/ada/bindo-units.ads
! d5e26f7990a56a5831b4daf97cdccb49  gcc/ada/bindo-validators.adb
! 9305260a5f68b9f7fd49311e65275c71  gcc/ada/bindo-validators.ads
! ff1f8ccafbb0819543067e468079affc  gcc/ada/bindo-writers.adb
! 0e6021acb6ae3d7135f23cbe7f55a92d  gcc/ada/bindo-writers.ads
! fb242a5e127497ea4fa30f055b8edb56  gcc/ada/bindo.adb
! 2fe8e1daa9692049c486bdba30a8ee4e  gcc/ada/bindo.ads
! a6fed717894a71e220941aa9809dd96d  gcc/ada/bindusg.adb
! 5a5a71da4cf5b6213ef4680fa7775b45  gcc/ada/bindusg.ads
! 79b57e9483df5fe9a24fd56c469a1755  gcc/ada/butil.adb
! 9833e7414ed44bf4fb2779d6961fdd5b  gcc/ada/butil.ads
! a1b3d4925666ff23ae2b7cc9b3415bcb  gcc/ada/cal.c
! 1ae20f90b139a38c5f72632bad8b1df7  gcc/ada/casing.adb
! 655cb5f6b208c82aaf091b3903c19e98  gcc/ada/casing.ads
! 1be77f018d02fc84d1cd6a3ab8489c64  gcc/ada/checks.adb
! 3c5b8d576fde097c5d9cb37f49f2092f  gcc/ada/checks.ads
! 11639d6d0bac4cb0db05e0c49d19d7e8  gcc/ada/cio.c
! 515f27f5d37b34f122272a4bf414667e  gcc/ada/clean.adb
! 65002b8e7ebf0a8700c3c1e9bfb23b9a  gcc/ada/clean.ads
! e8833e852a4f8cd2c92fb2ab9102be30  gcc/ada/comperr.adb
! ab11c4e7baef102649c133f7346bfaf0  gcc/ada/comperr.ads
! 9a33c3c0dcce166b284466b4e55532c5  gcc/ada/config-lang.in
! 50ac21adb9918621d95398e3a3ed5a60  gcc/ada/contracts.adb
! 86c95624c75e51402de26537689a15e3  gcc/ada/contracts.ads
! 3d21484ce8b1a10e7b297ff2166a6be1  gcc/ada/csets.adb
! 5979d342dc64bda13f9d734040747d27  gcc/ada/csets.ads
! fd224eb2cfd9be8c2f3835b7062a99ea  gcc/ada/cstand.adb
! ff766cfc791f11392f0a65dddb87a2e6  gcc/ada/cstand.ads
! 0893e76cdcd2f7b87d63c19c87139921  gcc/ada/cstreams.c
! ea575f92a3cd68521af35bcf22cf6cf4  gcc/ada/ctrl_c.c
! 928132a0506576718b08a0e15549c305  gcc/ada/debug.adb
! 794c3d7c57912db334f2250e032f57ff  gcc/ada/debug.ads
! 5244e3da80206ee1ba3517d56d748af1  gcc/ada/debug_a.adb
! e47e803670118baa1f1e0c65cbb1c84e  gcc/ada/debug_a.ads
  e985c86f5eb27a1af5221f7338ac92cb  gcc/ada/doc/Makefile
  a012e0cb5df366014b5a4988036a509a  gcc/ada/doc/gnat-style.rst
! a279ed6487990a204e636674f9c44623  gcc/ada/doc/gnat_rm.rst
  c4f5f27a027adfe3db5b39193542c956  gcc/ada/doc/gnat_rm/about_this_guide.rst
  e183e323bf87ac50a5767106862fef97  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
+ fd37d182ed90baed06fd8a4ac8a2d79f  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
  2afac013799ef401d4c876589443dcf3  gcc/ada/doc/gnat_rm/implementation_advice.rst
! 21945a82936c26718c53856e2d96c26d  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
  a511a1ae18ac5459a3f2ef89b42375a5  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
! d8ba2b080860efc46999a331d3500096  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 6b3c41fd82fa80c15821827892b1abc6  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
  4c8f34f9d69c20b677b885ec36ef9844  gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst
  1ce2dc848df98bcbbb9d443501c48132  gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst
  8ac597e4a14e2e70cf692a87fa810b0a  gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
  d3ffb5a905c9520d87b68e10029eb023  gcc/ada/doc/gnat_rm/intrinsic_subprograms.rst
  bb3c8ae8aaf1cbd06bc44135da97d801  gcc/ada/doc/gnat_rm/obsolescent_features.rst
  7f40736efcf972e491a726f58badbb04  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
! 1fb33f7304c23a143fa3a6313055f70b  gcc/ada/doc/gnat_rm/security_hardening_features.rst
  03676be4f649629e37041b8c849c7825  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
! a6635b66433fe9e3ae9b9aafbbf0c565  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
  328f91fe087e552ce7ef53d8c1d73e3d  gcc/ada/doc/gnat_rm/standard_library_routines.rst
  c19830e73e611a82a0d522e460290c80  gcc/ada/doc/gnat_rm/the_gnat_library.rst
! d9ab108e6b9f3dc43b31a4d8f99364a4  gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
  ad0b18bc67f8911f5f0d9d2762f19f82  gcc/ada/doc/gnat_ugn.rst
! 39346ce2ba4d43ea4e411fc3a4e06fe7  gcc/ada/doc/gnat_ugn/about_this_guide.rst
! eed47675492f7264c1eec88bddac432e  gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
  26a89b9a7c38c57de536819af879195e  gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst
  c8c5cebc5a8966a6a0b278b30b2f5738  gcc/ada/doc/gnat_ugn/example_of_binder_output.rst
  329d0c3464eb53db9196226f014d72c9  gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst
! e819b7ac0953a501a41ae8e0c7bd5add  gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
! e9a0c1404e151eafa5819fbdd74cf6fc  gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
  bb8384ade6350af533fa2875e0c29c13  gcc/ada/doc/gnat_ugn/inline_assembler.rst
! 910b34930231998532a4a98eddc7bdb1  gcc/ada/doc/gnat_ugn/platform_specific_information.rst
  062c912e168e9f97d4b4ae9c766300b8  gcc/ada/doc/gnat_ugn/rtlibrary-structure.png
! 3466b58909c9aa7f040eb5a0ad032939  gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
  caf064904358a8a1d6029b136176ff9d  gcc/ada/doc/share/ada_pygments.py
! 32b64eb2bfda56adcea7d1f563bee6bb  gcc/ada/doc/share/conf.py
  c7da61a05156d50b4888cdfaae4241d0  gcc/ada/doc/share/copyright.tex
  1b7b0904041eb97a9ac023e776774561  gcc/ada/doc/share/gnat.sty
  0a025bfec2a94c0fcd11a19d18f6c0c5  gcc/ada/doc/share/gnu_free_documentation_license.rst
  f1c71b64e1c84e240c7b5aea7331a32a  gcc/ada/doc/share/latex_elements.py
  90adfcde2feb6d6c090c2b18a1578145  gcc/ada/doc/share/sphinx.sty
! 06e1d5c3732d40f7ffdd5f46e043662e  gcc/ada/einfo-utils.adb
! bee054a7fd2b46f1858b8c09cbd5327e  gcc/ada/einfo-utils.ads
! e4965ab7d5bc3cab910cb38241114ba1  gcc/ada/einfo.adb
! 7ba7ecdfd3b098e4751509ca402c3474  gcc/ada/einfo.ads
! d103f398a963e38c95e99016c43a3ec5  gcc/ada/elists.adb
! b3b089238e6ac65042dea789f7a4f9ab  gcc/ada/elists.ads
! 01274a5e7b9cab74ba8defb0611abcae  gcc/ada/elists.h
! cd8bc89f8e2d3292293b004df77e00d3  gcc/ada/env.c
! 2aaef438a43b355d3965f4a507c0606f  gcc/ada/env.h
! f75cab473271584d576793eb79d5ff8d  gcc/ada/err_vars.ads
! 844cb78da7aaba457bd651c8bf09bcef  gcc/ada/errno.c
! 0a9c8b844c1c86322cf046744cef1c61  gcc/ada/errout.adb
! cfb4683affafca37f8df6339869c22a2  gcc/ada/errout.ads
! d8adfb0e95f6aac26256c1fcf8c3c1ed  gcc/ada/erroutc.adb
! 9863823380aca4a2c042987a5314a2f8  gcc/ada/erroutc.ads
! 2a978d4394111ea731d0b9ab80350b9f  gcc/ada/errutil.adb
! 768c04a40077ca07cde747018a7ac6fd  gcc/ada/errutil.ads
! 5f32ccb930b36ce183bdf1f7fffad9a3  gcc/ada/eval_fat.adb
! bb1ac51d891c2c88e66b325ec4ba37b6  gcc/ada/eval_fat.ads
! 44ff8dcdf3f8afc2d49457f203d317d8  gcc/ada/exit.c
! 37ba832cb8ed6c0dd4e2f6ffa1ca1318  gcc/ada/exp_aggr.adb
! 661b007e75d0a285180124141181edba  gcc/ada/exp_aggr.ads
! 505062d76424b26ea35495f992e978ec  gcc/ada/exp_atag.adb
! f9d94a939aaa986fb1957454afcc5783  gcc/ada/exp_atag.ads
! a1e4480e82cd509ee409e3cb2a1b283d  gcc/ada/exp_attr.adb
! 1f0d00e4f924cd79fcb70a729dcad92f  gcc/ada/exp_attr.ads
! 33fd3e67f2d31ec03f6c604e5824bdfd  gcc/ada/exp_cg.adb
! ac19bd8c659aa1e17cfa0e35d7b09495  gcc/ada/exp_cg.ads
! 2394132d084f49b9aeeccdbd35bb1de0  gcc/ada/exp_ch10.ads
! 89bf98be5d6697dcc41c4a0a3ec837c2  gcc/ada/exp_ch11.adb
! 27998daa1688bace86314478707f6bd2  gcc/ada/exp_ch11.ads
! 9528249aa6a68bb6bd4a3932c338f304  gcc/ada/exp_ch12.adb
! 5c04b41f9e620809675530141c3f64d8  gcc/ada/exp_ch12.ads
! f1bfa2648500a71b4c4c0d24081c9662  gcc/ada/exp_ch13.adb
! 193e648141a05608c24771d4ce12cf91  gcc/ada/exp_ch13.ads
! 9fd3a98ae8c86e7f77cb0056423df3fe  gcc/ada/exp_ch2.adb
! 12ef8e19cc84af2f3c87be58df3f410e  gcc/ada/exp_ch2.ads
! eb689f31705058c27e0703c7b0c51a9e  gcc/ada/exp_ch3.adb
! ecce68e20f7bfd0dacc18bbc60e5fd89  gcc/ada/exp_ch3.ads
! a99675e2905f1fcc975075e8d4d99655  gcc/ada/exp_ch4.adb
! bd7720c5f01afd52050aaa1379d7c41e  gcc/ada/exp_ch4.ads
! 07415781357054497531ab80a03e3e2e  gcc/ada/exp_ch5.adb
! 12989fbdd0324ccca43790feab509aca  gcc/ada/exp_ch5.ads
! 36bd5597fe42d8bd4af574d865854f44  gcc/ada/exp_ch6.adb
! cd643f66385153e405f6ede55f10df5d  gcc/ada/exp_ch6.ads
! 56e0c1185628456245641b4d83d961ea  gcc/ada/exp_ch7.adb
! 12c7919095c97ce108181b2f43d11e7e  gcc/ada/exp_ch7.ads
! aef4f29eb0abe39c14db4193d48cfd55  gcc/ada/exp_ch8.adb
! 0790a933097e04c804a43cee13174ed0  gcc/ada/exp_ch8.ads
! 34dd907639105c78b6ffd7ae70867a18  gcc/ada/exp_ch9.adb
! 7406623c27ec8e36b2c3790aab6e7b66  gcc/ada/exp_ch9.ads
! 7fbdc7578850772cd1a667b2ed3372db  gcc/ada/exp_code.adb
! 1cb1bc9b93e91c57afabf3614af4ff02  gcc/ada/exp_code.ads
! 967dd7409f0119dea508bd713a320a8a  gcc/ada/exp_dbug.adb
! b5941dea321599607f4d7abf95037644  gcc/ada/exp_dbug.ads
! f9d6a5f02c57f193648fcd6bac625c6c  gcc/ada/exp_disp.adb
! 85a2f816996d5fbf5d5113834f50e609  gcc/ada/exp_disp.ads
! 49e48382206c40fceee0bef3db9f0378  gcc/ada/exp_dist.adb
! 24eda9db83ec4f9a2d32460a05a1cdcb  gcc/ada/exp_dist.ads
! 0477b55ec1fa2e2b3aff22172c0b3490  gcc/ada/exp_fixd.adb
! 1cc7eb6f6350e15a9a7ae37ffcbc115f  gcc/ada/exp_fixd.ads
! 0a7d2c7cd0683895488a973855b037d1  gcc/ada/exp_imgv.adb
! 3770e84a6610132ba36a4f5f67675280  gcc/ada/exp_imgv.ads
! b4aba14df3823919578b6754fd0708bc  gcc/ada/exp_intr.adb
! 8e7b9be42cf34d1333150f01f744e0a3  gcc/ada/exp_intr.ads
! bd4f1c03c993c4ca37db28130e9b0bbf  gcc/ada/exp_pakd.adb
! 51c6fa400b57762c2365f20b291de647  gcc/ada/exp_pakd.ads
! 6c161311e146456028313836e29881df  gcc/ada/exp_prag.adb
! 0971f9b1e57a51d1db3a47da0f3d1bd5  gcc/ada/exp_prag.ads
! 2aecd24b4da332e09368b5fa3cbf2ad3  gcc/ada/exp_put_image.adb
! 7b9a2cd60f2618ab00d81989de782533  gcc/ada/exp_put_image.ads
! 3c5b684e77566520e28fd045e6e2b9ff  gcc/ada/exp_sel.adb
! 11a9d75b785a9d294dab55f9bbbc80d7  gcc/ada/exp_sel.ads
! eca12faeb797ff9211ade8bcb08c649d  gcc/ada/exp_smem.adb
! 053de514a5f6a51b3ab0a14556937160  gcc/ada/exp_smem.ads
! 91be4134519da6e8e1516f6657e9251d  gcc/ada/exp_spark.adb
! dad55e0bcaff99440f8cda8ca100abfc  gcc/ada/exp_spark.ads
! adffaa3044b157bf016186985ffe4837  gcc/ada/exp_strm.adb
! d442a282b5f1e993db71c27a1df66202  gcc/ada/exp_strm.ads
! 44ddb67dcac75511c7cbb41666950fdb  gcc/ada/exp_tss.adb
! efa3416bc0e51f3858a21a466b2c6f6c  gcc/ada/exp_tss.ads
! 2c23d26627b2efe2b7fb5a9bfc93788a  gcc/ada/exp_unst.adb
! dc9d384d2576e406d529076be6d18977  gcc/ada/exp_unst.ads
! 15d7cf65a0394a9fbc5981b1b71098a8  gcc/ada/exp_util.adb
! 0b62792097714802891536d3f17a09c9  gcc/ada/exp_util.ads
! 3f1e58cf90baa959ac85bd611acd8c73  gcc/ada/expander.adb
! 64bed4d08afaab7ba62cb23398f322c0  gcc/ada/expander.ads
! 9f5ba096f007d65b66f03084c32cf527  gcc/ada/expect.c
! 999ce44c7856ba83defd8eaec9a5e5ee  gcc/ada/fe.h
! 585cd5ead78adda458b3dd6183463417  gcc/ada/final.c
! 3e1e25815ce1c233199d902c0867f7be  gcc/ada/fmap.adb
! c084e2487fe93f7284abcae81866607d  gcc/ada/fmap.ads
! 20585f9a38926aff1ac6e5cb8bee971d  gcc/ada/fname-sf.adb
! 14d71e6ed78afcfe27153f3cd2d4a3f1  gcc/ada/fname-sf.ads
! c3f0e2c172bb60f503a35585c1009a94  gcc/ada/fname-uf.adb
! 802b5918dd7c805f5baac5d160800259  gcc/ada/fname-uf.ads
! 1728b27f08e91b190f5be52ddbeafe9a  gcc/ada/fname.adb
! 902502fbff76c640c88516162c677345  gcc/ada/fname.ads
! 42e49621271a3098bd9b0d366343e801  gcc/ada/freeze.adb
! 9084f737dc5090b4683febcfab1370c9  gcc/ada/freeze.ads
! 17437eda84b99bfdd095c5860feeedcb  gcc/ada/frontend.adb
! 6e0674dd153e4a2f5f47855c9c4db95c  gcc/ada/frontend.ads
! 65e08c7882cf1efd1525ad29e13c0580  gcc/ada/gcc-interface/Make-lang.in
! e6dedec5b5403c4846bd368c54124a85  gcc/ada/gcc-interface/Makefile.in
! 31af75105a7e50a05c0dd45b031da217  gcc/ada/gcc-interface/ada-builtin-types.def
! eece73bb8df5d8e966ff30b18bc77b4f  gcc/ada/gcc-interface/ada-builtins.def
! 669f7df0837a527e705df1b02478cc32  gcc/ada/gcc-interface/ada-tree.def
! e76788ae5fdae399904afcee294d994e  gcc/ada/gcc-interface/ada-tree.h
! 2d59d22647c9cc2b47b4898c4dd4cb21  gcc/ada/gcc-interface/ada.h
! ace55b710e2eba0e33421198b158de00  gcc/ada/gcc-interface/config-lang.in
! 52ac0b9aec1b1a53cb183788c4a36595  gcc/ada/gcc-interface/cuintp.cc
! 8d265b120e81b75a53d3e1797c5c8a31  gcc/ada/gcc-interface/decl.cc
! e95c0feeaced6a36656b245efe836c63  gcc/ada/gcc-interface/gadaint.h
! f61a98e52a715a073f777f982f1394b7  gcc/ada/gcc-interface/gigi.h
! 0609d8dffb6cdfbd0d07912a8da3038d  gcc/ada/gcc-interface/lang-specs.h
! 43e609e56eeb0ff4e57be465cd17ddbc  gcc/ada/gcc-interface/lang.opt
! 5cfa9a532dbd072148b16b70e89c9d52  gcc/ada/gcc-interface/lang.opt.urls
! 75f89bd5fd4ae55879dff32371ee01bf  gcc/ada/gcc-interface/misc.cc
! c04f30ccd26df7b20a118015913dc8d1  gcc/ada/gcc-interface/system.ads
! 8abd80bc601182d50d4f835dcfb9350c  gcc/ada/gcc-interface/targtyps.cc
! a2c3d0ea0939d7df537e7b9c557c383b  gcc/ada/gcc-interface/trans.cc
! afc89bcf5977d8ddc4aedf635d18a82d  gcc/ada/gcc-interface/utils.cc
! 24d282dce1b4ea4028f6526a978c21a0  gcc/ada/gcc-interface/utils2.cc
! 436eced51949ed1ca279a6a8745fdc85  gcc/ada/gen_il-fields.ads
! fa8c0b5e369960e72685e36f3adce798  gcc/ada/gen_il-gen-gen_entities.adb
! b971cd9d6daeb70141ca5d4371c2eb79  gcc/ada/gen_il-gen-gen_nodes.adb
! 3e9b72b5ce1ffc2f9899d3dc1db9efa2  gcc/ada/gen_il-gen.adb
! 865585d64c70aaa2d1c570f356780e1b  gcc/ada/gen_il-gen.ads
! 885b152a834686122318c093d8453cfe  gcc/ada/gen_il-internals.adb
! b3e4ebb3a86ee872c9ff924928f8b3ce  gcc/ada/gen_il-internals.ads
! 21ac6e95ac08901d81959028c777cc3f  gcc/ada/gen_il-main.adb
! 2b96292a585591f4bf9b9cc822bdf04b  gcc/ada/gen_il-types.ads
! 3f1e11df434d7c4357dfc22bb2dd02d9  gcc/ada/gen_il.adb
! dd09e9744277c7e59e0ac38351c161fa  gcc/ada/gen_il.ads
! 1b4cfdb5c20d4a2dd573db657ba7d21a  gcc/ada/get_scos.adb
! 24b098da4d453670d2e6cf4b97a9cb6b  gcc/ada/get_scos.ads
! 22ff8ebe416119a979d146dfd1550530  gcc/ada/get_targ.adb
! 8f5d02e010291e5bb7ed6298c90fda9f  gcc/ada/get_targ.ads
! 52d92ad10fa3c06bcd703bc3719d25d4  gcc/ada/ghost.adb
! 45303c79139120daac85ca65b27c2706  gcc/ada/ghost.ads
! c48f92a1ea3d65987688f5dc487e267c  gcc/ada/gnat-style.texi
! 88adcb747b22eae79b5ffba9ceefa93c  gcc/ada/gnat1drv.adb
! cb60394af3c2d8cddeb950f9445854bb  gcc/ada/gnat1drv.ads
! 01597fc77c78f870a5ed60bc5d76f113  gcc/ada/gnat_cuda.adb
! 7381effe82f3258388803c51e46f610a  gcc/ada/gnat_cuda.ads
! 8dc76b09f6f5a60a5b8213567c5c9991  gcc/ada/gnat_rm.texi
! 56216abb93096945f8111763670bb816  gcc/ada/gnat_ugn.texi
! cf071a3273e05083ff14a81710a5fc15  gcc/ada/gnatbind.adb
! 64e08dfea3b1fdb422cfc197cabdda29  gcc/ada/gnatbind.ads
! 1330ad51f5f43a11fb95bcc6c2aa675a  gcc/ada/gnatchop.adb
! 339973abcbb862f6bc5d64cb028616bc  gcc/ada/gnatclean.adb
! d1016529fb2e3b59940aaccc9673969d  gcc/ada/gnatcmd.adb
! afaf7505e39f509606cba378a83cc24a  gcc/ada/gnatcmd.ads
! 40147ea9b746840eb059464ef751928d  gcc/ada/gnatdll.adb
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
! e5e038f5592f759e0233ef2d3d43d557  gcc/ada/gnatkr.adb
! d60e249ac4f00797157e78a0ca353f0c  gcc/ada/gnatkr.ads
! 99a64c02a43f41235647fc41965ddac9  gcc/ada/gnatlink.adb
! 6afb11a86e3ed85d11e53514aeff0a57  gcc/ada/gnatlink.ads
! c23827611ef2cfc28588c09f0e74302d  gcc/ada/gnatls.adb
! 6dcf23bddf565dcb75fb450369b91d92  gcc/ada/gnatls.ads
! a5eebdfd1dee5dc9ab4864d13ed7dea8  gcc/ada/gnatmake.adb
! c95914ca4c6206e0acc3a805a6f4bdae  gcc/ada/gnatmake.ads
! bae131f24de63aaf00d75e2ac6e8b74c  gcc/ada/gnatname.adb
! 3f039579b505d065c01fbb89ba3a886c  gcc/ada/gnatname.ads
! 07d732b935d43f638eca19b6ab2206cb  gcc/ada/gnatprep.adb
! 7ee761db429b57b20ad3d8ca382e6718  gcc/ada/gnatprep.ads
! 8ebc00ffb2ebd4a31184ee5c11f82961  gcc/ada/gnatvsn.adb
! f37cfc06279bbbc49687bc94feeb7c1c  gcc/ada/gnatvsn.ads
! 36ba3bca611526f408579e691fda8e04  gcc/ada/gprep.adb
! 416b39b4f7a8e27257ead408251ef10b  gcc/ada/gprep.ads
! 7d66fbf3936f1aab5920f460ece2fb57  gcc/ada/gsocket.h
! c433adfe12c04cc86b7c1ce133f1992c  gcc/ada/hostparm.ads
! 4c4b315e9e37497e22cc3d292674e911  gcc/ada/impunit.adb
! 2343a064b40f8c5a779af8434a078715  gcc/ada/impunit.ads
! af2a948e5a1bd2486a1c7e10ff19030b  gcc/ada/indepsw-aix.adb
! cf82045d76953b7cd671b96f5c6b6653  gcc/ada/indepsw-darwin.adb
! 562e46df3ffd8ebc812bc7abcaf1c620  gcc/ada/indepsw-gnu.adb
! 96794826d70190599e7fbf7a64d1d4ce  gcc/ada/indepsw.adb
! 6cac7ba8aa98b2851525fc5bbe7ba17c  gcc/ada/indepsw.ads
! 6e21692599afe5be1ba60a60a19b7c02  gcc/ada/init.c
! 14334f97858a9104859a359e6fb6b283  gcc/ada/initialize.c
! b754a9933472bb5ee9364967cbe42205  gcc/ada/inline.adb
! 5b52de15c59dd10c857e4be45b1ad045  gcc/ada/inline.ads
! 9fb39d002e463dc045bace1667ed0182  gcc/ada/itypes.adb
! 1382f5b90cf5991db4c4cd456071aa81  gcc/ada/itypes.ads
! c8a78aea61e1713b8e2e7e36f30e6eae  gcc/ada/krunch.adb
! 7514f81d2b43b46b74151c5739850b91  gcc/ada/krunch.ads
! 5bf6d226f93e975964da1c28c4f578dd  gcc/ada/layout.adb
! d0247a696b4894daa0b4daa6ae1038bf  gcc/ada/layout.ads
! 072a9ca7f6c5530c4083270f14974f37  gcc/ada/lib-list.adb
! 8dd2258de883b9ebde00972738715891  gcc/ada/lib-load.adb
! 6a6c21e9204bac664aabeb685586a75d  gcc/ada/lib-load.ads
! d89f41972a2cd1ca1c5748299ae6acaf  gcc/ada/lib-sort.adb
! 1c09d426d183f911d05f289d2289f76d  gcc/ada/lib-util.adb
! 1eeb1cd17b3f189664941a66ac77542d  gcc/ada/lib-util.ads
! 7e94074eb825fca64b0b2acefe1f17aa  gcc/ada/lib-writ.adb
! 4b5e340f0a9d81db106c83a8cc8a3101  gcc/ada/lib-writ.ads
! b5c074e5213d68d6f765a0df6bf9e308  gcc/ada/lib-xref-spark_specific.adb
! 22c71753c35f70378e51cc26e3ef17ce  gcc/ada/lib-xref.adb
! 7d9421813a19ba8e9934a6c49f5ea6a9  gcc/ada/lib-xref.ads
! 362b9f9a4044d8fc3a9a425c77cdef17  gcc/ada/lib.adb
! e9cb06d0aaa91af69c67b4637881d6a0  gcc/ada/lib.ads
! ea7ac7530a15ffc90ed5d5ad056a6c8d  gcc/ada/libgnarl/a-astaco.adb
  c13d27ec688dfebb1965a8e9eaf55c2c  gcc/ada/libgnarl/a-astaco.ads
  66247d074eecb4270e7cf01d16e0cfce  gcc/ada/libgnarl/a-dinopr.ads
  c4e9620896065355c1895fb26186b8d2  gcc/ada/libgnarl/a-diroro.ads
  d33d03640fb0fae0a821bbeb1be518f7  gcc/ada/libgnarl/a-disedf.ads
! 366239b7830eca266c81e6edda300d6d  gcc/ada/libgnarl/a-dispat.adb
  380695cb64d70014260c4cbc5dc99e54  gcc/ada/libgnarl/a-dispat.ads
! 2d21adb4e68f0f2db4d7b5255c441f23  gcc/ada/libgnarl/a-dynpri.adb
  a2784499cf21750d8840eeaf03b9e700  gcc/ada/libgnarl/a-dynpri.ads
! af8d34ed0a580688313cb7e2c585727c  gcc/ada/libgnarl/a-etgrbu.ads
  3e60794a02e6ff3380c0daf20c7c6bc2  gcc/ada/libgnarl/a-exetim.ads
! 023f1278c43be303273d026c7479c19f  gcc/ada/libgnarl/a-exetim__darwin.adb
! 85855a5d663ed2077a930d2aebf0c77c  gcc/ada/libgnarl/a-exetim__default.ads
! 65759318d43af94523daefee6f1369f8  gcc/ada/libgnarl/a-exetim__mingw.adb
! 10ecc731c71999c7d85017af2f0369ed  gcc/ada/libgnarl/a-exetim__mingw.ads
! 27d33ecaab51623b1d3b04bdec4e33ec  gcc/ada/libgnarl/a-exetim__posix.adb
  8a70e70c5d53efd2ae8de2a025db3217  gcc/ada/libgnarl/a-extiin.ads
  66ba8470ba07e36d23031779e1ebee31  gcc/ada/libgnarl/a-extiti.ads
! 6cd915900e402e52e5f3aa77b71d2c85  gcc/ada/libgnarl/a-interr.adb
! c2805f29e40a7ec209f4b39be45195aa  gcc/ada/libgnarl/a-interr.ads
! 64588a10100930380d4a7a93a93a6b7d  gcc/ada/libgnarl/a-intnam.ads
! ca9ab88fe84f04cdb99aca1e96e20575  gcc/ada/libgnarl/a-intnam__aix.ads
! 8f3db070113175d33d73fd3db9649f4b  gcc/ada/libgnarl/a-intnam__darwin.ads
! 2cea22aeaa7e16df6240b84800049ce4  gcc/ada/libgnarl/a-intnam__dragonfly.ads
! 361c253a844e149be1b84fa2226a54c2  gcc/ada/libgnarl/a-intnam__dummy.ads
! 66df18f56d87f19ea34d371efa3cec78  gcc/ada/libgnarl/a-intnam__freebsd.ads
! 0b0c605cdb3863a723b2c52c6164e552  gcc/ada/libgnarl/a-intnam__hpux.ads
! ea06bca63c1347b9876d19c6d24d745e  gcc/ada/libgnarl/a-intnam__linux.ads
! 315fc1a740c83ec928c18114793fe5be  gcc/ada/libgnarl/a-intnam__lynxos.ads
! 8daaf0d808af1823d112fbad91ed68f6  gcc/ada/libgnarl/a-intnam__mingw.ads
! e06d43667f5ec7be0eb4acfdaeda1952  gcc/ada/libgnarl/a-intnam__qnx.ads
! e85b1bacb205792cf4dac8329e354814  gcc/ada/libgnarl/a-intnam__rtems.ads
! a36a5d6dbc9ca6d389c3c9a6535cda03  gcc/ada/libgnarl/a-intnam__solaris.ads
! 0b93dff3baf67df1a1460a8c16fcb17b  gcc/ada/libgnarl/a-intnam__vxworks.ads
! 59ec4cce77e0c82588b49107b33ec6a4  gcc/ada/libgnarl/a-reatim.adb
! f4ba1228daff76a947b124b92c0652d2  gcc/ada/libgnarl/a-reatim.ads
! 84311b992a27e9c27f6b916bb09936e7  gcc/ada/libgnarl/a-retide.adb
! 489b92aae01d4dd3bbabe5f8f29989da  gcc/ada/libgnarl/a-retide.ads
! a4395fd904cf513275c2ef2b1a2287f0  gcc/ada/libgnarl/a-rttiev.adb
! c5b571b099680988f32475e1588c7373  gcc/ada/libgnarl/a-rttiev.ads
  c04bb8934366f43faa60d914e7ebea7a  gcc/ada/libgnarl/a-stcoed.ads
! 1bd6bf20b8ca715e11600cda65302cc9  gcc/ada/libgnarl/a-synbar.adb
! 6ddb16a3061056e2fb8f7cb642cefe20  gcc/ada/libgnarl/a-synbar.ads
! 3ba7e68ff17d723c759f3ae9428480e2  gcc/ada/libgnarl/a-synbar__posix.adb
! a2ea184853544ecaefcfe68025d421e7  gcc/ada/libgnarl/a-synbar__posix.ads
! f49548fc8bb1f24ea79fab3be990891f  gcc/ada/libgnarl/a-sytaco.adb
! d83cbc6554006a0812c0a1693d735fe0  gcc/ada/libgnarl/a-sytaco.ads
! 34e9ea7e5deef6e519d54239fc48abd5  gcc/ada/libgnarl/a-tasatt.adb
! e16bcc9d9529a5eb8528f71ecbdf822f  gcc/ada/libgnarl/a-tasatt.ads
! e9df3c8701242858b66862a15205bc53  gcc/ada/libgnarl/a-taside.adb
! dad0539c950012ce78fa0a065ec7433c  gcc/ada/libgnarl/a-taside.ads
! 9232a4b705c0314e94d64a923d987f67  gcc/ada/libgnarl/a-tasini.adb
! ccedc9608004256d7d4ee7046321798a  gcc/ada/libgnarl/a-tasini.ads
! 14e3e8d0d2a1c3f2db9c30b107a70779  gcc/ada/libgnarl/a-taster.adb
  281fc9a014bf9c5a3677f1dd38cc9d5d  gcc/ada/libgnarl/a-taster.ads
! ae66e3d596c9f6af13a115abd190b699  gcc/ada/libgnarl/g-boubuf.adb
! a976b2397c78c42aad2ea3813db3bb4d  gcc/ada/libgnarl/g-boubuf.ads
! 0c86c88619b9b33e91f7703a45848a3f  gcc/ada/libgnarl/g-boumai.ads
! af5c24ce98a16a9ffbe95dfedf188e2c  gcc/ada/libgnarl/g-semaph.adb
! 47fce559fa8f3a2d4faf1b95fb9e43e2  gcc/ada/libgnarl/g-semaph.ads
! d7a195b48532a6e484d39613e6219e09  gcc/ada/libgnarl/g-signal.adb
! c0f35e91c409a70e416ed829a976a57d  gcc/ada/libgnarl/g-signal.ads
! 1caa438eaa67c1cc14e52f4a89009660  gcc/ada/libgnarl/g-tastus.ads
! 1a1401a7df9ee22c827c1f28215d9fb0  gcc/ada/libgnarl/g-thread.adb
! 05c316fed817b7fd0bde23c019ad7de5  gcc/ada/libgnarl/g-thread.ads
! 05e6a8bf8be1891c691032263fad9125  gcc/ada/libgnarl/i-vxinco.adb
! bc54f3763ee4910d884b71b13c8d49fd  gcc/ada/libgnarl/i-vxinco.ads
  5cfb9f62dd9599caab03143b5745a967  gcc/ada/libgnarl/libgnarl.gpr
! d6602fcc6d764b63651b447062d52211  gcc/ada/libgnarl/s-inmaop.ads
! abaace9f52ea1878e961a9ace068a40b  gcc/ada/libgnarl/s-inmaop__dummy.adb
! 6ce0b8a7df27628dc2daa64ce68c6b31  gcc/ada/libgnarl/s-inmaop__hwint.adb
! 74c813b161865093ea33371f0afc685a  gcc/ada/libgnarl/s-inmaop__posix.adb
! 1f55dbc42e2599a725ceeac6f2323abd  gcc/ada/libgnarl/s-interr.adb
! f705a3fd946591ff870bdf09180f478c  gcc/ada/libgnarl/s-interr.ads
! 265df40ade63181151201af4fe4a42ee  gcc/ada/libgnarl/s-interr__dummy.adb
! 920fe8ffb2d9d31a5a2693f60c15e3d0  gcc/ada/libgnarl/s-interr__hwint.adb
! e297856945b3cd448debcd5e62aa57cc  gcc/ada/libgnarl/s-interr__sigaction.adb
! ed206b66eb41d9b13f48d4faad497b1a  gcc/ada/libgnarl/s-interr__vxworks.adb
! e8d232f45147f53de1f34e97484b3fba  gcc/ada/libgnarl/s-intman.ads
! 2e58a35cedda6738d9546c669dab9d79  gcc/ada/libgnarl/s-intman__android.adb
! 1ec9d9ebf557ce22529c47e9088dcda6  gcc/ada/libgnarl/s-intman__dummy.adb
! 57934adfb09568afa7c54eedf5216411  gcc/ada/libgnarl/s-intman__lynxos.adb
! 34171eb6fc2813ad2697c21af1fe7f76  gcc/ada/libgnarl/s-intman__mingw.adb
! db873a5be21d454f9e413da9a15d1c5f  gcc/ada/libgnarl/s-intman__posix.adb
! 762cbd0774cad27ace1be3ad6c41e668  gcc/ada/libgnarl/s-intman__qnx.adb
! 717930f0fa4ee242f6f0e5d637c3f843  gcc/ada/libgnarl/s-intman__rtems.adb
! 180671d16582ce745728785e9089fb6e  gcc/ada/libgnarl/s-intman__rtems.ads
! e34440ad612b13a62e51bbc8c04b8b74  gcc/ada/libgnarl/s-intman__solaris.adb
! e486e6792b470c676fe258ce8bf121c4  gcc/ada/libgnarl/s-intman__susv3.adb
! ce2588344ad3e758a548706513cda070  gcc/ada/libgnarl/s-intman__vxworks.adb
! 163b11d4b63ed9b9fceff98034e6db25  gcc/ada/libgnarl/s-intman__vxworks.ads
! b553da4397b986a25d2be43181432a95  gcc/ada/libgnarl/s-linux.ads
! bb09115406eb2a7d69f0d5d9a342f849  gcc/ada/libgnarl/s-linux__alpha.ads
! d2a718eb0df1a4b191296bfb4f24e0f1  gcc/ada/libgnarl/s-linux__android.ads
! a940ed75b25914dbc87f13ad581b11f4  gcc/ada/libgnarl/s-linux__hppa.ads
! 5c90c4804ccd998313aa54aeb7613087  gcc/ada/libgnarl/s-linux__loongarch.ads
! 7d4ea818b25a7d4322e86709ca001666  gcc/ada/libgnarl/s-linux__mips.ads
! f35b7b7b3ad70695a38fcaf10d881fef  gcc/ada/libgnarl/s-linux__riscv.ads
! 07d8a58d2898d88b4bced61e9bf6d6ce  gcc/ada/libgnarl/s-linux__sparc.ads
! 805ac0b558240768cca450400bce8dc4  gcc/ada/libgnarl/s-linux__x32.ads
! 286edefe808d96d4152d639fc242fa0c  gcc/ada/libgnarl/s-mudido.adb
! d3d1bd17a6972764e499389c7f19f407  gcc/ada/libgnarl/s-mudido.ads
! fd9ca68f0d0c4a50564d0cd09b8dcc02  gcc/ada/libgnarl/s-mudido__affinity.adb
! 8397dc2515bd84c931b6605c7720aeb6  gcc/ada/libgnarl/s-osinte__aix.adb
! d2b45c9b6537632f5420295a5a589330  gcc/ada/libgnarl/s-osinte__aix.ads
! 26580ea7c189f59c727a49ec9a78d7de  gcc/ada/libgnarl/s-osinte__android.adb
! b588686897c15797d0a099a0c5f3e85c  gcc/ada/libgnarl/s-osinte__android.ads
! 0b09b49a92f1f25be92b8772ce548fd9  gcc/ada/libgnarl/s-osinte__darwin.adb
! c87eea356358187c9ff4a094db6ae77c  gcc/ada/libgnarl/s-osinte__darwin.ads
! ea2e6e271b50cd28e231b9556a51045d  gcc/ada/libgnarl/s-osinte__dragonfly.adb
! 47e6380b011c1405fc9006a34fd1734c  gcc/ada/libgnarl/s-osinte__dragonfly.ads
! 7cebf73fa94c8d3c9372793aa89ef8f6  gcc/ada/libgnarl/s-osinte__dummy.ads
! 4c3b41b65144fcdcb05d87b8300f5100  gcc/ada/libgnarl/s-osinte__freebsd.adb
! cd9103be4b5f5fe40c9715ba1e03a7e5  gcc/ada/libgnarl/s-osinte__freebsd.ads
! 81f13fa3ea4156267f9cc4da6c5bce6c  gcc/ada/libgnarl/s-osinte__gnu.adb
! 48660e5079e6297a60752446627e2a37  gcc/ada/libgnarl/s-osinte__gnu.ads
! 1d82f8b9b7c0ee089cd579d4fa0d097a  gcc/ada/libgnarl/s-osinte__hpux-dce.adb
! 51783371ea518fe6e398480ce12a2412  gcc/ada/libgnarl/s-osinte__hpux-dce.ads
! 61f89740f00219be2c618b1d0bb81f74  gcc/ada/libgnarl/s-osinte__hpux.ads
! 5915e600081d60c7f0334cb525c8ce1c  gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
! e8f092beb851047d2428960b16cb475a  gcc/ada/libgnarl/s-osinte__linux.ads
! 13006af03b6a0d99230f95b88f98faf2  gcc/ada/libgnarl/s-osinte__lynxos178.adb
! 151cea842ea9b0e0fb49986fb7a7f373  gcc/ada/libgnarl/s-osinte__lynxos178e.ads
! 9a2cd6b8df1c390ad49d3fe5b76b4a4e  gcc/ada/libgnarl/s-osinte__mingw.ads
! 496ec54aaf7aadaf8dee85ed453a02c4  gcc/ada/libgnarl/s-osinte__posix.adb
! 30b178903981ec1e0849448256e0750f  gcc/ada/libgnarl/s-osinte__qnx.adb
! 54633d54c3d375a94eeebcd8671ffafb  gcc/ada/libgnarl/s-osinte__qnx.ads
! 613a7dec4e7a6f38c9a5e3ba98a7a285  gcc/ada/libgnarl/s-osinte__rtems.adb
! 34ab35848312a6df969fff1ed28c9494  gcc/ada/libgnarl/s-osinte__rtems.ads
! 048dd5d248d8a3d451259d7c2e0d8d2b  gcc/ada/libgnarl/s-osinte__solaris.adb
! d1f7be06adea327743aad1caae39f535  gcc/ada/libgnarl/s-osinte__solaris.ads
! e00d51e30312029870d6bcaf3a475123  gcc/ada/libgnarl/s-osinte__vxworks.adb
! 33c6025a183ed40a2f1ea6d563339de0  gcc/ada/libgnarl/s-osinte__vxworks.ads
! c64cee90a2b735582953727449335346  gcc/ada/libgnarl/s-osinte__x32.adb
! a5d9bada85fba18a882aa0b1a32cf9a8  gcc/ada/libgnarl/s-proinf.adb
! 02d7f8852229403da984583f723c292a  gcc/ada/libgnarl/s-proinf.ads
! 0532824e1ebb5000915560c548221f7a  gcc/ada/libgnarl/s-putaim.adb
! c8f36cb2df939264c2bc6b8fb2f7d023  gcc/ada/libgnarl/s-putaim.ads
! 52fc49659ffeffd18ef10ea6500e2f21  gcc/ada/libgnarl/s-qnx.ads
! 43d1175086a52eda7b21361c785fa441  gcc/ada/libgnarl/s-solita.adb
! f84329c3ebb9c6adfacafafd7c2633fb  gcc/ada/libgnarl/s-solita.ads
! a278948f494f3619889d1240cbeda967  gcc/ada/libgnarl/s-stusta.adb
! b75aec5276345bf155b9a7163ef9d017  gcc/ada/libgnarl/s-stusta.ads
! f90fa1abd65ee3e6526aa83effff3441  gcc/ada/libgnarl/s-taasde.adb
! 17cea4b9716fefb9255db62652751364  gcc/ada/libgnarl/s-taasde.ads
! 047e9cf16ab497eb09eebf018cded66c  gcc/ada/libgnarl/s-tadeca.adb
! 195b56598d43b06aa01c086fc70ff966  gcc/ada/libgnarl/s-tadeca.ads
! c63c6d7520703ba73f66b155cfe9738b  gcc/ada/libgnarl/s-tadert.adb
! 3cb29baec9b555267463bec1057f251f  gcc/ada/libgnarl/s-tadert.ads
! a471ac8ecc3915ec24660e7b83a4840f  gcc/ada/libgnarl/s-taenca.adb
! 01934b457e642edd13388e6abf8aa43e  gcc/ada/libgnarl/s-taenca.ads
! c0e44f8cc342d5017ce6aaf549ff19fa  gcc/ada/libgnarl/s-taprob.adb
! 1c639b4bb4462058d433440fc3e2063e  gcc/ada/libgnarl/s-taprob.ads
! 4d1535daf9c79b4663a6d78fa2d868c8  gcc/ada/libgnarl/s-taprop.ads
! d4ce9429d452be45080d4fd8534546c9  gcc/ada/libgnarl/s-taprop__dummy.adb
! 0d68763d381cb293d779c8331d0e2ab3  gcc/ada/libgnarl/s-taprop__hpux-dce.adb
! 7c1ac64170a3c3222f681d97f1c14f39  gcc/ada/libgnarl/s-taprop__linux.adb
! 774d449a15def4974929e9e7bf1aa330  gcc/ada/libgnarl/s-taprop__mingw.adb
! a9955450414a2a90f58a4f453941df0a  gcc/ada/libgnarl/s-taprop__posix.adb
! 02ec4ca4fad6eddf50908475bd0c067a  gcc/ada/libgnarl/s-taprop__qnx.adb
! 7677b3a98c97b7d078da902a656f2315  gcc/ada/libgnarl/s-taprop__rtems.adb
! 4ba78b365784862eb7313d3f64f1a95e  gcc/ada/libgnarl/s-taprop__solaris.adb
! 8939c05b20873dd87a54b1d75f546736  gcc/ada/libgnarl/s-taprop__vxworks.adb
! 215c6c052fb4b7abce0a2503713c41b5  gcc/ada/libgnarl/s-tarest.adb
! 71a624fcd3237f9d2145f28b35b8c868  gcc/ada/libgnarl/s-tarest.ads
! 5b755dc106adba012cc4c1ab7cdbc0de  gcc/ada/libgnarl/s-tasdeb.adb
! d2b213a7d0739560974a0cd4fe6e939c  gcc/ada/libgnarl/s-tasdeb.ads
! 767327c9f0b4796e5229d0a3942902a6  gcc/ada/libgnarl/s-tasinf.adb
! 36a0f486e7192684d1171b4b149b8016  gcc/ada/libgnarl/s-tasinf.ads
! 5090480277c0549682c1854c966a4f9a  gcc/ada/libgnarl/s-tasinf__linux.adb
! 0217820eb22f2d048694c15dc5125c6b  gcc/ada/libgnarl/s-tasinf__linux.ads
! 57ffd67632fe648cecd915315bcb5d23  gcc/ada/libgnarl/s-tasinf__mingw.adb
! a92eec4edb9d855b648cfbd90ab67632  gcc/ada/libgnarl/s-tasinf__mingw.ads
! 4fd4bb13396b244e572356ce8cf03e75  gcc/ada/libgnarl/s-tasinf__solaris.adb
! 63f8143a8c2f7410bd83a5d3e92b47fd  gcc/ada/libgnarl/s-tasinf__solaris.ads
! 9be2f8a7f0c898406ee703fee130527f  gcc/ada/libgnarl/s-tasinf__vxworks.ads
! 006a7055e7158692df36c3135b2aa2d8  gcc/ada/libgnarl/s-tasini.adb
! a1fb9908f3ea0a0b2b89d4ee191acdf3  gcc/ada/libgnarl/s-tasini.ads
! 9e5d737619feee3cea826639581d0b78  gcc/ada/libgnarl/s-taskin.adb
! 49ec3d3a50260a551a2a347afa8fc972  gcc/ada/libgnarl/s-taskin.ads
! adae80212425891555d5e59ee60470cf  gcc/ada/libgnarl/s-taspri__dummy.ads
! 2e549ad3c72fca9cce9a25b8752cd4c1  gcc/ada/libgnarl/s-taspri__hpux-dce.ads
! 379c9ea4c57be573f9b94970b783b663  gcc/ada/libgnarl/s-taspri__lynxos.ads
! 097fb816edee0322c6f2c82ff43e648b  gcc/ada/libgnarl/s-taspri__mingw.ads
! 12648124ffe81cd2b05040ceba78b54a  gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads
! 9169419b9fbe7fddd869c42a1416ba18  gcc/ada/libgnarl/s-taspri__posix.ads
! c166d1b8ec47c0c26745c91d97427874  gcc/ada/libgnarl/s-taspri__solaris.ads
! 46b432d0e6aa2a07c64db1dd02af9531  gcc/ada/libgnarl/s-taspri__vxworks.ads
! c364be5f5d25c0d6c748784c7bf183cf  gcc/ada/libgnarl/s-tasque.adb
! f9019ba73336ff5d5486d0b9d06b073c  gcc/ada/libgnarl/s-tasque.ads
! 323530c74bf746c6a2775d6451f63ed2  gcc/ada/libgnarl/s-tasren.adb
! 5813c520113c8b6e75e88c9004f76e48  gcc/ada/libgnarl/s-tasren.ads
! ddb0b6f75282b4a4288d1b5221412f66  gcc/ada/libgnarl/s-tasres.ads
! b9bc32285cae00537b89b7d717ca054f  gcc/ada/libgnarl/s-tassta.adb
! 0eff329810ff540cf2e6ff26dd48d89d  gcc/ada/libgnarl/s-tassta.ads
! d7667bcbc84562d3fed35a97d9b8c408  gcc/ada/libgnarl/s-tasuti.adb
! f879acde8c997ee5c28a0d73980f0630  gcc/ada/libgnarl/s-tasuti.ads
! fdb7f7153ce7d9495d99af3c55c59d41  gcc/ada/libgnarl/s-tataat.adb
! 5d369cfaf57b62c2af25414f9428460f  gcc/ada/libgnarl/s-tataat.ads
! ddbb1882261ed69030105957f5f8276d  gcc/ada/libgnarl/s-tpinop.adb
! 7b52626cf8c22e87cdf19517f39c7150  gcc/ada/libgnarl/s-tpinop.ads
! fc811a701cb69816affc88a2b3469595  gcc/ada/libgnarl/s-tpoaal.adb
! d904b6ede1d01fe1df3549804776573c  gcc/ada/libgnarl/s-tpoben.adb
! 78ef7c819c5717b84b8a31f56ec52493  gcc/ada/libgnarl/s-tpoben.ads
! 1cb0bbe1ea07903e23f80eb4ebf33100  gcc/ada/libgnarl/s-tpobmu.adb
! 9fcd3513ed1682e3c89e37421fdf1b6a  gcc/ada/libgnarl/s-tpobmu.ads
! 9b123f304793dbe95c51b36e8e16c412  gcc/ada/libgnarl/s-tpobop.adb
! 3eb266bf500873b6a7e4785303139c33  gcc/ada/libgnarl/s-tpobop.ads
! 3499c693770560bf438d58a75b2e8ef0  gcc/ada/libgnarl/s-tpopmo.adb
! 275db9d5560588225e84103afa134152  gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb
! d32ec8fdc8385a1e7b55dea6189f3b46  gcc/ada/libgnarl/s-tpopsp__posix.adb
! 41033ded44846aef2e4af677c49939ae  gcc/ada/libgnarl/s-tpopsp__solaris.adb
! 32f226b77469ca28fc6957d45271d9bc  gcc/ada/libgnarl/s-tpopsp__tls.adb
! ca43e40973865d56f4e0c841aaf8b480  gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
! 01a1b0f420d07f605e906acdf2e925a3  gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb
! 37098b875c3971dca8747c80fc4283cf  gcc/ada/libgnarl/s-tpopsp__vxworks.adb
! 4a5823685f0ad6a20aebb6d8348b3d42  gcc/ada/libgnarl/s-tporft.adb
! f75e20e2a1601987253a09da6aa74d72  gcc/ada/libgnarl/s-tposen.adb
! 3eb8fd545a4daa3a3372319621ef749d  gcc/ada/libgnarl/s-tposen.ads
! 58036df6348123173d9d1eb2e2c653bb  gcc/ada/libgnarl/s-vxwext.adb
! 88f679178ea0eaf12b85c1d173272fb2  gcc/ada/libgnarl/s-vxwext.ads
! 21c0bbbf0bbe4dd597219801c4f400ff  gcc/ada/libgnarl/s-vxwext__kernel-smp.adb
! fa941a6096b97e2288280c108decdf02  gcc/ada/libgnarl/s-vxwext__kernel.adb
! c0dec7a7a5b235561293aa25f241b1db  gcc/ada/libgnarl/s-vxwext__kernel.ads
! f4ba000f966b5569e70bb6cd02936a08  gcc/ada/libgnarl/s-vxwext__rtp-smp.adb
! e6989a74a3390d23db5e14dc5270f52d  gcc/ada/libgnarl/s-vxwext__rtp.adb
! 7078b766be3d586959a04184f217f546  gcc/ada/libgnarl/s-vxwext__rtp.ads
! f20476a63ef82afd41a84941d8bb8168  gcc/ada/libgnarl/s-vxwork__aarch64.ads
! 995b85ef597c416a162d118e6ebf7f05  gcc/ada/libgnarl/s-vxwork__arm.ads
! db62a51345eaf313843c7ca64e233be3  gcc/ada/libgnarl/s-vxwork__ppc.ads
! 1940c39d7fa4f59805f729a8f75c028d  gcc/ada/libgnarl/s-vxwork__x86.ads
! 38d2e33828214a7842315a4b05b811fd  gcc/ada/libgnarl/thread.c
! e71b60c0ad74c8f9e26a5c6040f1d56e  gcc/ada/libgnat/a-assert.adb
! 7d439a40cfcf37e3b054b55107c703ad  gcc/ada/libgnat/a-assert.ads
! 82407b4bf496e0ce28fe9b671eb64cb7  gcc/ada/libgnat/a-btgbso.adb
! 8e5d11f024ff89483870b3f3952b35ee  gcc/ada/libgnat/a-btgbso.ads
! b7389aa5c4c8bb4140a8cf82aab490f1  gcc/ada/libgnat/a-calari.adb
! c828356011d61bd77fcf346d9bf10310  gcc/ada/libgnat/a-calari.ads
! a19daa0dfdbbacfcd6867123008015f9  gcc/ada/libgnat/a-calcon.adb
! 404591d076075291030b958b98eac174  gcc/ada/libgnat/a-calcon.ads
! d537c3de16239e7a2818fc7dde2c89fa  gcc/ada/libgnat/a-caldel.adb
! 3a5049d98d23c0256fc1bea67235db33  gcc/ada/libgnat/a-caldel.ads
! 02f485169286928c5ee04c2abc92103f  gcc/ada/libgnat/a-calend.adb
! a23123ce49befc2e7972149c2e9c48e6  gcc/ada/libgnat/a-calend.ads
! d4c6c81b9cd3648846b6a03383cf91dd  gcc/ada/libgnat/a-calfor.adb
! 6454d9b9d7c608781a324ebe0027410d  gcc/ada/libgnat/a-calfor.ads
! fb7816ce476dcbc9b4ae82e3dc1b6578  gcc/ada/libgnat/a-catizo.adb
  d731f2a00c2328507e1708628b8f8534  gcc/ada/libgnat/a-catizo.ads
! aaf863f690f063f00c3ca29d5270e6b4  gcc/ada/libgnat/a-cbdlli.adb
! 59a333caa760e2ef21cbcc7854eaa503  gcc/ada/libgnat/a-cbdlli.ads
! 35aff0383cb75ab5ed8bd42fdd71333f  gcc/ada/libgnat/a-cbhama.adb
! 876a05f24516996c1d3ed27cb9d299bd  gcc/ada/libgnat/a-cbhama.ads
! e550858620f209c02fbbc52f60d479ba  gcc/ada/libgnat/a-cbhase.adb
! f1915b67b5e692ee6910a08f1b575901  gcc/ada/libgnat/a-cbhase.ads
! 053dc42baaec499c231efbb0f11a6118  gcc/ada/libgnat/a-cbmutr.adb
! 1b954fe6a71af3be6cb1b8f9ae3d2f76  gcc/ada/libgnat/a-cbmutr.ads
! 53c2432b867ae119f7e54b20c66c0067  gcc/ada/libgnat/a-cborma.adb
! 22b3af9603fcd505fbb1260cc3228fed  gcc/ada/libgnat/a-cborma.ads
! 209a0f73ff4251ec0b73c83e7c337b20  gcc/ada/libgnat/a-cborse.adb
! 8ad651e1f29ab026f15c7dff2c51d635  gcc/ada/libgnat/a-cborse.ads
! 3388321af653f8239651ff6ba25ccf67  gcc/ada/libgnat/a-cbprqu.adb
! 1dc5a613a8de0b142ccd486fdde1f44f  gcc/ada/libgnat/a-cbprqu.ads
! 3c2668370e30e1603692d1436d82280a  gcc/ada/libgnat/a-cbsyqu.adb
! 8a83d2103491c0d386be90122a65238c  gcc/ada/libgnat/a-cbsyqu.ads
! 3e7b93110c0e3fa1684c66cbeedf26fb  gcc/ada/libgnat/a-cdlili.adb
! 449a01c3b80aa9228c2affdfe24f1e68  gcc/ada/libgnat/a-cdlili.ads
! c882ed864a83ae893eb0ce6235f5c762  gcc/ada/libgnat/a-cfdlli.ads
! 85969b616e27eec03b85dbc1405eb686  gcc/ada/libgnat/a-cfhama.ads
! e85ac3cbfa16d0722246297f4fa92e1f  gcc/ada/libgnat/a-cfhase.ads
! 9d57c1c0532f29bfb723d749f9bfb7f0  gcc/ada/libgnat/a-cfidll.ads
! 456d3c69000dea491966ea0ed25ab34e  gcc/ada/libgnat/a-cfinse.ads
! 08a1c78b955fc56b8bfea3b1f652fe15  gcc/ada/libgnat/a-cfinve.ads
! da2846052bd7e3ce1b57c8591efe83a9  gcc/ada/libgnat/a-cforma.ads
! 920f1e07ffdb86316233da09dbcbc375  gcc/ada/libgnat/a-cforse.ads
! a0bdc0f46790bfef5a0bcb762481564d  gcc/ada/libgnat/a-cgaaso.adb
! b3d5352c6587c629b20952fed334d1f8  gcc/ada/libgnat/a-cgaaso.ads
! 2e6bf95a3887cf9917a5af13c9a2f9dc  gcc/ada/libgnat/a-cgarso.adb
  ef7fab6c5e61256ac64c9dae1dd27960  gcc/ada/libgnat/a-cgarso.ads
! 5b708a27fc29a034e568bb3cc139c7df  gcc/ada/libgnat/a-cgcaso.adb
  68226484befc5e389cd3dafaab608090  gcc/ada/libgnat/a-cgcaso.ads
! 6fe3a69040dd10521dab0b01fec8dab3  gcc/ada/libgnat/a-chacon.adb
! 3951feafe22eb1589341f4023527cfe3  gcc/ada/libgnat/a-chacon.ads
! 411fd249c83eef701f14cf4015500338  gcc/ada/libgnat/a-chahan.adb
! 6f5a8f2c558f2eab7d37fdeccfd9c1fc  gcc/ada/libgnat/a-chahan.ads
  00b37c98f6f96d2b5499c1f98cb503f0  gcc/ada/libgnat/a-charac.ads
  1e2a45aa2f9324faab423eb0f9a85a8e  gcc/ada/libgnat/a-chlat1.ads
! e3010425ca3b5235ef5092c355bda1e0  gcc/ada/libgnat/a-chlat9.ads
! c9ad5b82c15c93767c5e6a7521811726  gcc/ada/libgnat/a-chtgbk.adb
! 03cf0e615e16c8af7a4f4d4a6b2abfb6  gcc/ada/libgnat/a-chtgbk.ads
! ed50914a5b6bc3b497a9c25c6835eb9e  gcc/ada/libgnat/a-chtgbo.adb
! f3ed6c694e07001befca887d7c3a6651  gcc/ada/libgnat/a-chtgbo.ads
! 789da0a90e12305c41c67c83af30a2d2  gcc/ada/libgnat/a-chtgfk.adb
! 4ae799e6a13ba30dc7d0b23f93b81abf  gcc/ada/libgnat/a-chtgfk.ads
! c99d46fbc75c020fe8fc9fc94975048e  gcc/ada/libgnat/a-chtgfo.adb
! 09ce1790f28e8a78088ae32a258a6707  gcc/ada/libgnat/a-chtgfo.ads
! 89e8f9ed897dc80b5ae9f217f4359eab  gcc/ada/libgnat/a-chtgke.adb
! f22deace96112a61b36b47abf056c317  gcc/ada/libgnat/a-chtgke.ads
! cc0ba4cd000f15cd627055aba4f117c9  gcc/ada/libgnat/a-chtgop.adb
! afb8d959d7208495049b46fc466ee60b  gcc/ada/libgnat/a-chtgop.ads
! c58ae6444607a2d89fcdf1f787dd3798  gcc/ada/libgnat/a-chzla1.ads
! 773da344707d23a45ebe4ab72844c55f  gcc/ada/libgnat/a-chzla9.ads
! dc2470cd41d8fe56bd31e7769d9d7715  gcc/ada/libgnat/a-cidlli.adb
! 2843bd8747c09ea318e4e15cb142cda5  gcc/ada/libgnat/a-cidlli.ads
! c5191e13bb896a98b41379bd032c8bf1  gcc/ada/libgnat/a-cihama.adb
! 9a5d5a8c1bf3bf0f8fed215537ff93d3  gcc/ada/libgnat/a-cihama.ads
! cd091557b7ab32c93ba16818bb712ffe  gcc/ada/libgnat/a-cihase.adb
! 7abc6c241e52501322948f4450c6faac  gcc/ada/libgnat/a-cihase.ads
! ec074a35e1d102af0ef20496e48713b6  gcc/ada/libgnat/a-cimutr.adb
! d63c04bf7169164931f8711657e47009  gcc/ada/libgnat/a-cimutr.ads
! e45eb6e7568090a9abfe9e7178ea40ed  gcc/ada/libgnat/a-ciorma.adb
! 0f60a688324dad292b960c6baf5baaed  gcc/ada/libgnat/a-ciorma.ads
! 42ca048b38ef0eb1e003f12f161ff193  gcc/ada/libgnat/a-ciormu.adb
! 4a3aa378e85343cecf5472e3e5440f6c  gcc/ada/libgnat/a-ciormu.ads
! e0fae559ab3af93898f6b3b72958a811  gcc/ada/libgnat/a-ciorse.adb
! 2197ac171bd63302341ff2bac7cd58b9  gcc/ada/libgnat/a-ciorse.ads
! 200100ff360e3b249aabd426812e2b34  gcc/ada/libgnat/a-clrefi.adb
! 65c322ef3c2ec9427b4b669e38dc9605  gcc/ada/libgnat/a-clrefi.ads
! 95092019844421f13642e1588aa9998f  gcc/ada/libgnat/a-coboho.adb
! a73b9a4a502f15a26fc047f9fe278b06  gcc/ada/libgnat/a-coboho.ads
! d337502c4801073191875ccd610d4840  gcc/ada/libgnat/a-cobove.adb
! 81a55829704d4cec15df32996aee107c  gcc/ada/libgnat/a-cobove.ads
! cb0fdda53808a9cd919c00e56b447c8b  gcc/ada/libgnat/a-cofove.ads
! 8f3b878d8144af522b50a02c39815abe  gcc/ada/libgnat/a-cofuma.ads
! 4b5b09958f4a94ddf84a724cf0416c43  gcc/ada/libgnat/a-cofuse.ads
! ca99b0023188611f412033a621bdd3ea  gcc/ada/libgnat/a-cofuve.ads
! 825f15596126a1804829b0a98ea0c60c  gcc/ada/libgnat/a-cogeso.adb
! 2c1175b3036def493016713041501fda  gcc/ada/libgnat/a-cogeso.ads
! 7ee40a00ec73e2e34407a78178a302c8  gcc/ada/libgnat/a-cohama.adb
! c226e9103a0dbf1e077fdc5b0711cfd5  gcc/ada/libgnat/a-cohama.ads
! 6bd4684f11ecf2b9780cfb853df27a57  gcc/ada/libgnat/a-cohase.adb
! 530bed987f444d90aa6206a46fb7a7ee  gcc/ada/libgnat/a-cohase.ads
! e1edb307c009d849b7ea341e63a5e4b6  gcc/ada/libgnat/a-cohata.ads
! ea8335226dcf00e9293eb40b2a9b60c9  gcc/ada/libgnat/a-coinho.adb
! c4cab110e4cb52248a4fe5f010b07bec  gcc/ada/libgnat/a-coinho.ads
! 88d6ba48ca51dc61278681f9f26b61a9  gcc/ada/libgnat/a-coinho__shared.adb
! d258e57737a62787797db5b8a95b70be  gcc/ada/libgnat/a-coinho__shared.ads
! 333dc4efb7cba8cc4920664cfbd1ff93  gcc/ada/libgnat/a-coinve.adb
! 6e10e44f03cc5344f5de8bf0c6b895f0  gcc/ada/libgnat/a-coinve.ads
! cef2a0b72e3503d5f225a103a76ef530  gcc/ada/libgnat/a-colien.adb
! f5ab03196bd4a7cffda254daf184012e  gcc/ada/libgnat/a-colien.ads
! a7ec723d45c4fbc728a6407c154765b1  gcc/ada/libgnat/a-colire.adb
! 289025749b2b8acb36a9e51528baa514  gcc/ada/libgnat/a-colire.ads
! c9b0d6eb2ad15b629141d56eec01f5e2  gcc/ada/libgnat/a-comlin.adb
! e9e31b99faec357ce052d86cb96ca330  gcc/ada/libgnat/a-comlin.ads
! e0d7a61909c6f0f7f0d7295a15292f31  gcc/ada/libgnat/a-comutr.adb
! 9d173f5e5ad7e7086c2de75eec526eef  gcc/ada/libgnat/a-comutr.ads
! 07effef575708de4390f1805904f5c84  gcc/ada/libgnat/a-conhel.adb
! cbaafd54320538c954dbb4b43581be3d  gcc/ada/libgnat/a-conhel.ads
  38baf99435420fa514890cac49ee9242  gcc/ada/libgnat/a-contai.ads
! eec1e8c817ab4a11e9411e35f5c6047b  gcc/ada/libgnat/a-convec.adb
! 8f22a5b5d33bfe7e8de071b8bac44312  gcc/ada/libgnat/a-convec.ads
! 6f850cc1cac871befc2c456c45cf2684  gcc/ada/libgnat/a-coorma.adb
! a3366894cdbb4237fc61e4a322b8354c  gcc/ada/libgnat/a-coorma.ads
! c28c9b5a598e900069a9c37745a61389  gcc/ada/libgnat/a-coormu.adb
! a6ed1b766c52e96aa20dc807ff18edf8  gcc/ada/libgnat/a-coormu.ads
! 525d5b1081883d445131b101f1d892ab  gcc/ada/libgnat/a-coorse.adb
! f3af98cc43a26567b3c41e7b58bf49de  gcc/ada/libgnat/a-coorse.ads
! e689038dda8708ae7ba417b41219c986  gcc/ada/libgnat/a-coprnu.adb
! efaacb32117b8ecd69c7b3655d03c175  gcc/ada/libgnat/a-coprnu.ads
! c176f1fe80f7ac407d30da9e94c38a84  gcc/ada/libgnat/a-costso.adb
! b04a57bc85aefad6800eb4764166ece0  gcc/ada/libgnat/a-costso.ads
  2399731eabd6e0bbc0a8f28a60d3c3c8  gcc/ada/libgnat/a-coteio.ads
! ca2fcb22cec2126dc81f7e80934f7c11  gcc/ada/libgnat/a-crbltr.ads
! 6de5bf82da1d59ca2002b4789eb3d64b  gcc/ada/libgnat/a-crbtgk.adb
! bc799e2ee8fee7ef39e162f491f9701a  gcc/ada/libgnat/a-crbtgk.ads
! c9c8eb018eb15a50480c80d0a8bc7a50  gcc/ada/libgnat/a-crbtgo.adb
! a3f1c4ae6a6e375805d9534a9ec712c7  gcc/ada/libgnat/a-crbtgo.ads
! 05e6083b4c4555ef6095d8b29d191005  gcc/ada/libgnat/a-crdlli.adb
! 31f304578545ee89bb98513e5cb179ff  gcc/ada/libgnat/a-crdlli.ads
! df05528c6b33ae601cb96b27332771c2  gcc/ada/libgnat/a-csquin.ads
! 2ff6b8aa7748bb153b99b98b692c57b0  gcc/ada/libgnat/a-cuprqu.adb
! a4d098835c898339bc6985f756f4d3ce  gcc/ada/libgnat/a-cuprqu.ads
! 0deed0d41592983442837d29b12116d0  gcc/ada/libgnat/a-cusyqu.adb
! bb7069da9abd781d02913e42197233bf  gcc/ada/libgnat/a-cusyqu.ads
! a114218cdd6241f40062b8838adf9274  gcc/ada/libgnat/a-cwila1.ads
! 4cfd393154caaeeac0456dbe85d25cf9  gcc/ada/libgnat/a-cwila9.ads
! e34e99fcc3c2df54a5bd5d5836fdf248  gcc/ada/libgnat/a-decima.adb
! a23a556a0ad9a82d2376d9648ecb1abb  gcc/ada/libgnat/a-decima.ads
! 6385e5506da73c6f3da06389905016f4  gcc/ada/libgnat/a-decima__128.ads
! 197aa773cd08bdc751df3a787328dfa1  gcc/ada/libgnat/a-dhfina.adb
! 1b83a01697f4ec9b967e47e0d5f0ef1d  gcc/ada/libgnat/a-dhfina.ads
! 77079dc72d4f21ce630f4ef388d63ef4  gcc/ada/libgnat/a-diocst.adb
! 3e3a0403c9ffbfc31f41cc3b858c5c09  gcc/ada/libgnat/a-diocst.ads
! 37b87b22d7b71390380430f62338cf6d  gcc/ada/libgnat/a-direct.adb
! 9ad4da42a9b723ba2d00407b520ee46d  gcc/ada/libgnat/a-direct.ads
! 6daceec63b98c35393d76a2caef756eb  gcc/ada/libgnat/a-direio.adb
! 6a041962f5b4234ba9053c56dac6b6cc  gcc/ada/libgnat/a-direio.ads
! 4346f6cfdfd0d5f41c596c8c60af9c0f  gcc/ada/libgnat/a-dirval.adb
! d0202df6f02857137c8f41222b74749f  gcc/ada/libgnat/a-dirval.ads
! 1fd04b88a99187e14e513407f7eef871  gcc/ada/libgnat/a-dirval__mingw.adb
! 9f249cc0155c694015ab6f2647f00f41  gcc/ada/libgnat/a-einuoc.adb
! 96d3244de10e24414d4ca4fd7546e531  gcc/ada/libgnat/a-einuoc.ads
! e181e59e49d9fd7792887c0bf7433ee6  gcc/ada/libgnat/a-elchha.adb
! d1657015e37c65a841993bed60e2247e  gcc/ada/libgnat/a-elchha.ads
! 5cee3e85a56e2d38a9f82dded99d7b2b  gcc/ada/libgnat/a-envvar.adb
  e77a221e76c3e19394bf433277f04c0f  gcc/ada/libgnat/a-envvar.ads
! 7fb9a040242e68230c7237a599cd19c1  gcc/ada/libgnat/a-excach.adb
! 8f11467b2450719d7a125f0bb0f5d7b5  gcc/ada/libgnat/a-except.adb
! 7018210f210feb48d74789837dccc0a5  gcc/ada/libgnat/a-except.ads
! 52e052126ef740497443a59cffb9ab15  gcc/ada/libgnat/a-exctra.adb
! d12e9b51ceafb00734e819c70a75782d  gcc/ada/libgnat/a-exctra.ads
! 0fb571d414e25383d784be199e0d51a1  gcc/ada/libgnat/a-exexda.adb
! afbc73ad166ca87f7157c67b7682be48  gcc/ada/libgnat/a-exexpr.adb
! c59bd767d3177f2f6b06155b78496b18  gcc/ada/libgnat/a-exextr.adb
! 1fc2acaee31179941a9aec3b6a86ff31  gcc/ada/libgnat/a-exstat.adb
! 81b0dcb30b6a0f0ed52c8676c47d5f27  gcc/ada/libgnat/a-finali.adb
! 92f38793f1a4455a589e45f03418b80d  gcc/ada/libgnat/a-finali.ads
  b6ba93109a253e15591b1eefa685bc24  gcc/ada/libgnat/a-flteio.ads
  f7e337bf223b3a491d58fb6db81ef7b1  gcc/ada/libgnat/a-fwteio.ads
  2bf5d12193c278c4a482ae0dda1129a9  gcc/ada/libgnat/a-fzteio.ads
*************** efa823912da5d16e6f8d4aa6f78b768a  gcc/ad
*** 1315,5050 ****
  d90ff1db87e7c9bf483659701a55671c  gcc/ada/libgnat/a-llltio.ads
  b8fcc586001cbdaddc04c29fc016fa48  gcc/ada/libgnat/a-lllwti.ads
  5faeef2817310c83968117416e0120b0  gcc/ada/libgnat/a-lllzti.ads
! 90fd990015ec95f31d5be8a26210c013  gcc/ada/libgnat/a-locale.adb
! 5a5ce72315930b444a0038823798426c  gcc/ada/libgnat/a-locale.ads
! 6b8532b66479375e07ef9c2691600e79  gcc/ada/libgnat/a-nagefl.ads
! 9c8062207b30cd99491f7fcc0c731995  gcc/ada/libgnat/a-naliop.ads
! da1bb8cd7e90a447707f7cd31dd53af4  gcc/ada/libgnat/a-naliop__nolibm.ads
! dd70d147e6d2fea93fc491c8e90e10e5  gcc/ada/libgnat/a-nallfl.ads
! cc6cfd448859eb50bfc26f3a32462047  gcc/ada/libgnat/a-nallfl__wraplf.ads
! f0d8683a415eecd6a2dd7a0baeff60f2  gcc/ada/libgnat/a-nalofl.ads
! 83a10cbd9cd86fa4d12890abc250230d  gcc/ada/libgnat/a-nalofl__simd.ads
! 80878d481275a5d17b3b98dda0520fd3  gcc/ada/libgnat/a-nashfl.ads
! 51782cce190e5f28eef69f57c78bad1c  gcc/ada/libgnat/a-nashfl__wraplf.ads
! 3bdab553e54b9cbeee86cd11a54250b8  gcc/ada/libgnat/a-nbnbig.adb
! 8035fbd4329cb7766a6f786de3d02a2d  gcc/ada/libgnat/a-nbnbig.ads
! 1eaf250165dfb40898da85d4e1ea3c4b  gcc/ada/libgnat/a-nbnbin.adb
! 04e058ce755b54708b6d16ef5ca8a95b  gcc/ada/libgnat/a-nbnbin.ads
! 67281b20f6df48d248c3142ed0559028  gcc/ada/libgnat/a-nbnbin__gmp.adb
! 3a0496696c033a603294853c6a3a5eaa  gcc/ada/libgnat/a-nbnbre.adb
! e83ffabe7c0ddbf4d79fb74b607dd571  gcc/ada/libgnat/a-nbnbre.ads
  f8a74f5169bf9eba09b0050d2ce025f4  gcc/ada/libgnat/a-ncelfu.ads
! e890dadfdee4451c5c59b94792d98a2a  gcc/ada/libgnat/a-ngcefu.adb
  2e229d27b615410dbc242fd1d7d4bd98  gcc/ada/libgnat/a-ngcefu.ads
! fff323e7288212bcc2d58c781a5c74a0  gcc/ada/libgnat/a-ngcoar.adb
  03d934454f8cbd5b382c05c95cd2a70a  gcc/ada/libgnat/a-ngcoar.ads
! 040128d3a2014e3fe7ebb2de287a4147  gcc/ada/libgnat/a-ngcoty.adb
! f5718c863ea8dfdc9ef570b19557791a  gcc/ada/libgnat/a-ngcoty.ads
! d06cdbd078d4988636f6c387b29e98fc  gcc/ada/libgnat/a-ngelfu.adb
! d08a004ab0bb389ab0cf5ee9399aa47b  gcc/ada/libgnat/a-ngelfu.ads
! 5484ef37569eaec97cbdaa968b65adb4  gcc/ada/libgnat/a-ngrear.adb
! 763fb271e83332161551ac2459d1e540  gcc/ada/libgnat/a-ngrear.ads
  7f894c161f872e68b50172715a8a311e  gcc/ada/libgnat/a-nlcefu.ads
  307582c16af8c2d164031fd8dfb72581  gcc/ada/libgnat/a-nlcoar.ads
  2341d761d1df9c74f5d4396b2a243874  gcc/ada/libgnat/a-nlcoty.ads
! 15a96cdedebe392da5afeda01bd7e495  gcc/ada/libgnat/a-nlelfu.ads
  44394b04703b7121f6dafb77b7eb7dda  gcc/ada/libgnat/a-nllcar.ads
  b1c1bbccd0e624d2b5753adeaa355876  gcc/ada/libgnat/a-nllcef.ads
  4b51dc5d67f507aed187528008aa427d  gcc/ada/libgnat/a-nllcty.ads
! 7b3664d95bbed9dac210938bed1f5f8d  gcc/ada/libgnat/a-nllefu.ads
  dd270955ac40f18eb7ef0bb7122fbc06  gcc/ada/libgnat/a-nllrar.ads
  dc556e736d290554bf97bb7153c2e96b  gcc/ada/libgnat/a-nlrear.ads
  ed8c8d1cff975d8128d8a34e6fa60333  gcc/ada/libgnat/a-nscefu.ads
  ae6657265a333ec061d886c2e0a9be47  gcc/ada/libgnat/a-nscoty.ads
! 68dc105e51a1e1cc9ce3e69a5d888505  gcc/ada/libgnat/a-nselfu.ads
! 890c601b3dbdad40f604d70384fd459f  gcc/ada/libgnat/a-nuauco.ads
! 2b80f3c12904f77118d4cccc8d0c4a2c  gcc/ada/libgnat/a-nuauco__x86.ads
! 61832ea7fc779dc789e6f7d7b754897b  gcc/ada/libgnat/a-nuaufl.ads
! 5aaa48db8ee9663af833395d50e448a0  gcc/ada/libgnat/a-nuaufl__simd.ads
! 043eafc8e6d224c930896574045de0d4  gcc/ada/libgnat/a-nuaufl__wraplf.ads
  7714df1a41c354211d217f99429093ef  gcc/ada/libgnat/a-nubinu.ads
  22a793d6936415ee70b725c6d2b2020a  gcc/ada/libgnat/a-nucoar.ads
  bda677b507deb699333f9baa2c37a694  gcc/ada/libgnat/a-nucoty.ads
! c3bd5eadce25dddad776b055e98b811d  gcc/ada/libgnat/a-nudira.adb
! f29806b9422261ce80110c94cc4a4d44  gcc/ada/libgnat/a-nudira.ads
! 03bc2403a006ae60dc50571008b25eb7  gcc/ada/libgnat/a-nuelfu.ads
! 5e7001e37d885238a1d15cd77f9b331a  gcc/ada/libgnat/a-nuflra.adb
! 0aea43cabd339b060541d42b69b12759  gcc/ada/libgnat/a-nuflra.ads
! 929001f3ac8a87b61ec0ad6aca938f01  gcc/ada/libgnat/a-numaux.ads
  c4d4bea6dcd8066d2ddcb0789ef64586  gcc/ada/libgnat/a-numeri.ads
  88b948f6713b009c76e8b3b7b75a22c9  gcc/ada/libgnat/a-nurear.ads
! 4ebb7d52f45a4f45c0a7352d827c166b  gcc/ada/libgnat/a-rbtgbk.adb
! 4e641efb34058b50f0fef1a5f7caf59e  gcc/ada/libgnat/a-rbtgbk.ads
! 52308b996cde5f0250a01ddff59d72ee  gcc/ada/libgnat/a-rbtgbo.adb
! ded9209535cd666b0cd117af99911c2d  gcc/ada/libgnat/a-rbtgbo.ads
! 0076d329b1d87402539c6bd8fad4b47b  gcc/ada/libgnat/a-rbtgso.adb
! ce87763a0f2b1208407205df5835f481  gcc/ada/libgnat/a-rbtgso.ads
! 30172d7e208b6eba2d5168873e894de2  gcc/ada/libgnat/a-sbecin.adb
! d3cb488a477e8b04075a608884539b2a  gcc/ada/libgnat/a-sbecin.ads
! ff08163eb7c5cb301a0891d8da9653e3  gcc/ada/libgnat/a-sbhcin.adb
! dd4da311df33a4ecf93174597254e2ea  gcc/ada/libgnat/a-sbhcin.ads
! efecc09a707c7c2cf7e668a706dec90b  gcc/ada/libgnat/a-sblcin.adb
! 762c500b8b8d31b8c9f27ec5b1810647  gcc/ada/libgnat/a-sblcin.ads
  67b280f23d76be962783b397ef7e60c7  gcc/ada/libgnat/a-scteio.ads
! c500a69db1479707918fa337be8e7316  gcc/ada/libgnat/a-secain.adb
! f2222607e3f12be679d44195558ce612  gcc/ada/libgnat/a-secain.ads
! 1a9fbc4713b3ee80b140d0ea7263f66a  gcc/ada/libgnat/a-sequio.adb
! 1132443921a009707780a53fbccf7082  gcc/ada/libgnat/a-sequio.ads
! da9091a9def4d537e621b12804611cfd  gcc/ada/libgnat/a-sfecin.ads
! eeda0ad3cd06bf30c28ae2e07881d1eb  gcc/ada/libgnat/a-sfhcin.ads
! f67e090fdfb63febc2a717163f868eed  gcc/ada/libgnat/a-sflcin.ads
  43123af888cd4637ee6a1eaf9dde9e34  gcc/ada/libgnat/a-sfteio.ads
  63d0f0f0aed733a972873cb3a4b767ea  gcc/ada/libgnat/a-sfwtio.ads
  7207d517b5474be90def505e3a2be187  gcc/ada/libgnat/a-sfztio.ads
! 2429d4be09d417f5f3239a9a3e2ed96f  gcc/ada/libgnat/a-shcain.adb
! 8207550b7fb2d5d124e1e6e5b648545d  gcc/ada/libgnat/a-shcain.ads
! 41080fa89d9ec2066cf93ae26e7bea03  gcc/ada/libgnat/a-siocst.adb
! f8cb7b8fa2ef0b84e1b0c3e134038abf  gcc/ada/libgnat/a-siocst.ads
  6fce3ea5eecdf93f2ec7d0446ebd14af  gcc/ada/libgnat/a-siteio.ads
  9330fbe80fe3844d3bf5aeb4946381f6  gcc/ada/libgnat/a-siwtio.ads
  c816a5bc136362b2468801e67deb9ae9  gcc/ada/libgnat/a-siztio.ads
! a919d0009da762df71b4cb87286d23d8  gcc/ada/libgnat/a-slcain.adb
! daf277e892669497fbf0b5449c96e306  gcc/ada/libgnat/a-slcain.ads
! 0c12bc7407053cf274808da7086ecf53  gcc/ada/libgnat/a-ssicst.adb
! ceaa4ff90553c6742ad055175197b27a  gcc/ada/libgnat/a-ssicst.ads
  3ec2f925719d14de3a80c38042157f78  gcc/ada/libgnat/a-ssitio.ads
  387afdf3ceb85d07a14d8ae4e2f0eeec  gcc/ada/libgnat/a-ssiwti.ads
  366683e8278e7e71bc63a8c7a3f2238f  gcc/ada/libgnat/a-ssizti.ads
! 26814437796d52e5ce6454de34f8fd0f  gcc/ada/libgnat/a-stboha.adb
  8274f77970c3b1ed9a51aa8ddf6a4d0f  gcc/ada/libgnat/a-stboha.ads
! d052ff78db95ccfc84ddd509bad5f5c6  gcc/ada/libgnat/a-stbubo.adb
! 88aad618fff722baa4f6adabb7192350  gcc/ada/libgnat/a-stbubo.ads
! 2818d1418a5d4fdf0483748cfd20f766  gcc/ada/libgnat/a-stbufi.adb
! 9645be200a9ed7bdfb653452fd17f6e9  gcc/ada/libgnat/a-stbufi.ads
! 4870c76014e7a0306ffb5be3d51d2026  gcc/ada/libgnat/a-stbufo.adb
! 7458a0689b1853ecdc83f6dc25d267d1  gcc/ada/libgnat/a-stbufo.ads
! ee80178b6c6a2b15ca3a80d66dd2de5b  gcc/ada/libgnat/a-stbuun.adb
  1e900014d9809db78ef32d2e97e1531b  gcc/ada/libgnat/a-stbuun.ads
! 13bb706e04c3f7a3cbf658c4b8ce577e  gcc/ada/libgnat/a-stbuut.adb
! 4c6023fb10950c41185b88ac9507267a  gcc/ada/libgnat/a-stbuut.ads
  756f44b0c7f4483ecd7302aee8bc110a  gcc/ada/libgnat/a-stfiha.ads
! 6510b21f3ff3cf8cc6e83899f76c1ae8  gcc/ada/libgnat/a-stmaco.ads
! 1ed0395f2fd20c256ebb268db2c93ee5  gcc/ada/libgnat/a-storio.adb
  34175bb2f712422ab4cfd24b3e452b0d  gcc/ada/libgnat/a-storio.ads
! 87b456a6d4b5d02507d556e08620d59f  gcc/ada/libgnat/a-strbou.adb
! 1e7f4967924e35fc49ac099a7e33f987  gcc/ada/libgnat/a-strbou.ads
! 99e3d78be855240528e46d8d7db48d03  gcc/ada/libgnat/a-stream.adb
! 05ff10e4a415b723e64abf438dfc452f  gcc/ada/libgnat/a-stream.ads
! 019ff733249c6adccad2247e37a59e0d  gcc/ada/libgnat/a-strfix.adb
! 4f7d39c96cbcca73943bd54b73e1bbbf  gcc/ada/libgnat/a-strfix.ads
! b63b74216d78657d3a8bb7a105634ce4  gcc/ada/libgnat/a-strhas.adb
  b0a210089b94e668314dbcff62c4c997  gcc/ada/libgnat/a-strhas.ads
  de0f93afe5feaf6819d5a9a2e09172e6  gcc/ada/libgnat/a-string.ads
! 2d8ff17e4fa2889578f624a7f1dfb894  gcc/ada/libgnat/a-strmap.adb
! 82051b10dea14b7b21ea78b27a1c0994  gcc/ada/libgnat/a-strmap.ads
! e6adf23ba6dafc703152a6a7fa7e2fe7  gcc/ada/libgnat/a-strsea.adb
! 1e4352d934435a9a212c47121be30bfb  gcc/ada/libgnat/a-strsea.ads
! 3ace9d958db5d4aa33e439965dd6ff01  gcc/ada/libgnat/a-strsto.ads
! 2ea6be62c6f8038a590a25b2e1302dd6  gcc/ada/libgnat/a-strsup.adb
! 5e4ff14711502fa45c1263409d84a933  gcc/ada/libgnat/a-strsup.ads
! 1c5ae92b7f9ecbdda188b33e1987fdb6  gcc/ada/libgnat/a-strunb.adb
! 86ebb095f3b90781e5c7a132bd4d584a  gcc/ada/libgnat/a-strunb.ads
! 1731b7d0536985f68bea97b51ade46ec  gcc/ada/libgnat/a-strunb__shared.adb
! e0e3868017ce481663fa31f247b874fc  gcc/ada/libgnat/a-strunb__shared.ads
! d6b5cfd374b5a3d57a6c5c9a8c72bedc  gcc/ada/libgnat/a-ststbo.adb
! f02d303d013eb0a65cbb170628e9e04c  gcc/ada/libgnat/a-ststbo.ads
! ba69f0136d7ac63f6cece288739d5bb1  gcc/ada/libgnat/a-ststio.adb
! 8e4f7dbe5185132f8e0ff5fff7dbd34e  gcc/ada/libgnat/a-ststio.ads
! a7601c973ec1816ba21f7e482683737e  gcc/ada/libgnat/a-ststun.adb
! 1b089a7396752c934ed02fc636db8ddb  gcc/ada/libgnat/a-ststun.ads
! f8e88f2c71c959bddc8379567d838e2a  gcc/ada/libgnat/a-sttebu.adb
  3c26fa3924701bf0fb31cc7ce9580ec6  gcc/ada/libgnat/a-sttebu.ads
! 6b87b2e5c7204a9af32cd20d0b9365f4  gcc/ada/libgnat/a-stunau.adb
! 635c13664bb86e8cdf58dd3c9806c036  gcc/ada/libgnat/a-stunau.ads
! 0117436b12e3f48465e39668ac3eff7a  gcc/ada/libgnat/a-stunau__shared.adb
! 0f596334322ac6063d6c604cb024002b  gcc/ada/libgnat/a-stunha.adb
  da4a8d13f76850d714a8213ada7477d2  gcc/ada/libgnat/a-stunha.ads
! 0463fafaad5e21fcc8602075142f8853  gcc/ada/libgnat/a-stuten.adb
  0f5fe8e890a5c8c46160b756ee5500f3  gcc/ada/libgnat/a-stuten.ads
! b02f589c43d41bb246c94142c56ea1cb  gcc/ada/libgnat/a-stwibo.adb
! e0ad3b67d79f75c4281becdae1dee0d9  gcc/ada/libgnat/a-stwibo.ads
! 7ca292dbb9632dd0e18ca5ea4820a2f1  gcc/ada/libgnat/a-stwifi.adb
  b0cf3f05e49e1640bf231034269cb951  gcc/ada/libgnat/a-stwifi.ads
! bc2b33730af6c6fef54306ff113a47e8  gcc/ada/libgnat/a-stwiha.adb
  3255ad19d07346032c9d005d6a27475f  gcc/ada/libgnat/a-stwiha.ads
! a3aa4556a531e8ba9d8ee48227db1e41  gcc/ada/libgnat/a-stwima.adb
! e2382ff4c908a7e39ddd347f12889005  gcc/ada/libgnat/a-stwima.ads
! 5c4013ec65b9bff80d229eaf83a47c68  gcc/ada/libgnat/a-stwise.adb
! d13f865d646cc0679747993f95e40431  gcc/ada/libgnat/a-stwise.ads
! 57a6e906fe0457412d156e1cd653a59a  gcc/ada/libgnat/a-stwisu.adb
! d5c9976ec896afa60f97eae3ad9c18a9  gcc/ada/libgnat/a-stwisu.ads
! e3a4451752a390811dd12cc478303b64  gcc/ada/libgnat/a-stwiun.adb
! 18c428c34ae0eaae511548ff5338b682  gcc/ada/libgnat/a-stwiun.ads
! 3e2370d54befcad7dfc693aaf9d65c87  gcc/ada/libgnat/a-stwiun__shared.adb
! 1a2fd7e1136f710c0fe0c32dac8e12e6  gcc/ada/libgnat/a-stwiun__shared.ads
! 6a72c4e32cade7b9f5ad5edde2baff20  gcc/ada/libgnat/a-stzbou.adb
! f2b41d6fabaf0a83922eabcd4b5ae620  gcc/ada/libgnat/a-stzbou.ads
! 7ac3b93b2fcf4edcb0b9205afb77bc78  gcc/ada/libgnat/a-stzfix.adb
  f3ddc25c20b07c4072918c6c0ea20ff9  gcc/ada/libgnat/a-stzfix.ads
! d002c9d65bc15444a9cf87b7baef94d4  gcc/ada/libgnat/a-stzhas.adb
  41c71febbb354000bccca4ccd3a59c54  gcc/ada/libgnat/a-stzhas.ads
! c6ed9afe811cc2054c8b9aee81a0be7f  gcc/ada/libgnat/a-stzmap.adb
! 92cb7ab3fd8bba30cd02f061961f3b58  gcc/ada/libgnat/a-stzmap.ads
! b450edffada6dc1d1f8c9c7bd751830b  gcc/ada/libgnat/a-stzsea.adb
! d574b23e8b6322a7fda2e51797a79931  gcc/ada/libgnat/a-stzsea.ads
! 05d503ffe0e5866eb94cc0b3d27c34f0  gcc/ada/libgnat/a-stzsup.adb
! ef6057f6333b8c33224d70b7cf8125d6  gcc/ada/libgnat/a-stzsup.ads
! ec988d22029ba2c66bac7b740b6a90ad  gcc/ada/libgnat/a-stzunb.adb
! 583ab33811069ed37c4cdaf2071171d9  gcc/ada/libgnat/a-stzunb.ads
! 6de7b84f4c16d3ecbf50b4c45cbfcceb  gcc/ada/libgnat/a-stzunb__shared.adb
! 83e468dbe638a539ffd1fce66c86f616  gcc/ada/libgnat/a-stzunb__shared.ads
! a0a485492822b2f58979f276b785ba0e  gcc/ada/libgnat/a-suecin.adb
! 3c2e120ab9c3e2cf221b2e65f19aebef  gcc/ada/libgnat/a-suecin.ads
! 8ba20ef95193ba57489059a4c63f5927  gcc/ada/libgnat/a-suenco.adb
  24c625ef90e191bc1baa69c58ae2600f  gcc/ada/libgnat/a-suenco.ads
! 8d38f127f53cd0832ecd4e6619f75a08  gcc/ada/libgnat/a-suenst.adb
  5a81ae9196b241db71c16198169dbed7  gcc/ada/libgnat/a-suenst.ads
! fc74ae57274e0cb8f313061d41c47d66  gcc/ada/libgnat/a-suewst.adb
  88073629f5531c7f6fba98820112cd02  gcc/ada/libgnat/a-suewst.ads
! a91d34ca52b217ffdc7a3edc250431b3  gcc/ada/libgnat/a-suezst.adb
  5aaf32a65e951f050f1cbb5adf5af9d2  gcc/ada/libgnat/a-suezst.ads
! 76fc5ef0f3425545dc1037e3e79f0aea  gcc/ada/libgnat/a-suhcin.adb
! 3cbbd221f11b9f0a2edd23e73049c002  gcc/ada/libgnat/a-suhcin.ads
! 42804efc613db79fbbf2c60dad37f4c4  gcc/ada/libgnat/a-sulcin.adb
! 39b2ba9b527fdf442440cf2cb46aa66c  gcc/ada/libgnat/a-sulcin.ads
! e258aecfc4212363782c34c9b5ef4d48  gcc/ada/libgnat/a-suteio.adb
! 9b38eef7563bb6fcf848c418bcc778dc  gcc/ada/libgnat/a-suteio.ads
! a2eb9c4ba0f16200080186430d401a16  gcc/ada/libgnat/a-suteio__shared.adb
! 8538be162614c8c3bac689050fd935b6  gcc/ada/libgnat/a-swbwha.adb
  65f3f68c6718760b4c2b0beba2af9f82  gcc/ada/libgnat/a-swbwha.ads
  aaf273ef9a113dedcab8fb87b71b7365  gcc/ada/libgnat/a-swfwha.ads
! a3b5746f22640955c8024aca73c592e4  gcc/ada/libgnat/a-swmwco.ads
! e9032a63e6f71512a7d294c05dc1e86d  gcc/ada/libgnat/a-swunau.adb
! 28ed7530712187231cd6846868e6be33  gcc/ada/libgnat/a-swunau.ads
! 02fcde63dd454e731e01e4e419be329e  gcc/ada/libgnat/a-swunau__shared.adb
! 297e1bf9db9497409ec0ddd81401593a  gcc/ada/libgnat/a-swuwha.adb
  45d76b5b911889e181b3717ab6c91651  gcc/ada/libgnat/a-swuwha.ads
! 38b0168cb9f1bfe70397c0777992c846  gcc/ada/libgnat/a-swuwti.adb
! ede4f9c881678a488e71eecb1333722a  gcc/ada/libgnat/a-swuwti.ads
! 2123281ca33a4aae6db2507cd01e5bf1  gcc/ada/libgnat/a-swuwti__shared.adb
! 7b71ffe551f688d3cfde9eb74c47abcb  gcc/ada/libgnat/a-szbzha.adb
  18b9cf476495930cec4ac3eb881257db  gcc/ada/libgnat/a-szbzha.ads
  32bb3b01e46ff7648c862537bd77aa0d  gcc/ada/libgnat/a-szfzha.ads
! 111dffefc8f624896dd406c4cd0ef61f  gcc/ada/libgnat/a-szmzco.ads
! abed98e87f68cd68e17fe68330a3fa47  gcc/ada/libgnat/a-szunau.adb
! 50726445f117e74d496fdf0f16b7d184  gcc/ada/libgnat/a-szunau.ads
! 48d0083c68b5d845905d75c33e43045c  gcc/ada/libgnat/a-szunau__shared.adb
! 1b0a3cb152749935bb629905170e3525  gcc/ada/libgnat/a-szuzha.adb
  01cf107c9e66d7e5284c9b7ce2e2ed7e  gcc/ada/libgnat/a-szuzha.ads
! 81b423746edaf32c7effcac9cd5e0e8e  gcc/ada/libgnat/a-szuzti.adb
! 8eac4e123a703852dc6952377353308c  gcc/ada/libgnat/a-szuzti.ads
! c7511bdaa2f3e4ecd7c2400104657178  gcc/ada/libgnat/a-szuzti__shared.adb
! f07cae4eaf0c9ec332e6ba6aac7e02bc  gcc/ada/libgnat/a-tags.adb
! 6d443f484c17548a591b50edf2b832cf  gcc/ada/libgnat/a-tags.ads
! 00329c112cffff59137f1698fa0d20e4  gcc/ada/libgnat/a-teioed.adb
! 3419f7d00c67b3c9eb5d76bddb348a73  gcc/ada/libgnat/a-teioed.ads
! 9c031b073ca76e20775d307461d9fa2f  gcc/ada/libgnat/a-textio.adb
! aab4c2f60d06677390ce8c1d3372efbd  gcc/ada/libgnat/a-textio.ads
  c74a673b222c3d0037a22fb766c67488  gcc/ada/libgnat/a-tgdico.ads
! 24b965b75e914eb13d21f8b7b2172d5d  gcc/ada/libgnat/a-tiboio.adb
  7b163db9f1467e9392f347bee1400136  gcc/ada/libgnat/a-tiboio.ads
! f74259004855d7a35ec2334fa260545a  gcc/ada/libgnat/a-ticoau.adb
! c10415cef89ad26eb1891fb8e9db27ee  gcc/ada/libgnat/a-ticoau.ads
! cfc421c61b50e1cbb2bb9dc53f3ceaab  gcc/ada/libgnat/a-ticoio.adb
! c176958de42e2ef6cf9a8a4fcc74498d  gcc/ada/libgnat/a-ticoio.ads
! 50548a5801f08c3fb8f7f5966a0c3cd6  gcc/ada/libgnat/a-tideau.adb
! e7e09e0d4a94fcef095c9d376e7cd31a  gcc/ada/libgnat/a-tideau.ads
! 55afb7dce0837cfcf7b201dba9cd57e8  gcc/ada/libgnat/a-tideio.adb
! ce094f6db2618c326dac95909b665737  gcc/ada/libgnat/a-tideio.ads
! 7c0bb5a3eda4b019edc1305019b02aec  gcc/ada/libgnat/a-tideio__128.adb
! 2b3dac8b640ab452097dba4cbd5573ec  gcc/ada/libgnat/a-tienau.adb
! d1c4100cef8dab1e654e92d1538af33b  gcc/ada/libgnat/a-tienau.ads
! b7e5d50c819f52674fd813395871f9ab  gcc/ada/libgnat/a-tienio.adb
! 8748f2debbff0fcfd1b7ef2ed7d169dd  gcc/ada/libgnat/a-tienio.ads
! 11c88ec2336a262e48711f48f7db73cb  gcc/ada/libgnat/a-tifiau.adb
! 7ae598d1f021a52802b07848c675bd42  gcc/ada/libgnat/a-tifiau.ads
! 0d9a431850d16c592d20a70750b51940  gcc/ada/libgnat/a-tifiio.adb
! 064247cf38af3b630042a059c4804943  gcc/ada/libgnat/a-tifiio.ads
! 7b262024c12278011079970a57c3efb8  gcc/ada/libgnat/a-tifiio__128.adb
! 925745adb72b2afe804390508d4ece05  gcc/ada/libgnat/a-tiflau.adb
! d2d033f875500b00567d3e9f877928dc  gcc/ada/libgnat/a-tiflau.ads
! b0cc42ede5b5d33fb83e6e62f0e9d3b3  gcc/ada/libgnat/a-tiflio.adb
! 627fa1a661b673236f0a9f39de45e414  gcc/ada/libgnat/a-tiflio.ads
! 291c9be36e3e00de808b10797255ccad  gcc/ada/libgnat/a-tigeau.adb
! bd1c8d9e8d1a26ad3bedcb4cbc111a85  gcc/ada/libgnat/a-tigeau.ads
! cc3921340b6bdb803272e871ae3f9756  gcc/ada/libgnat/a-tigeli.adb
! d0c3221b0f81ad8248e70ac9e42d860b  gcc/ada/libgnat/a-tiinau.adb
! bbec42165dac4f5c8b1748cf942624da  gcc/ada/libgnat/a-tiinau.ads
! 23bfa870f9351b9bf6b69b4304e6b22f  gcc/ada/libgnat/a-tiinio.adb
! e8bb8b5bb627b504ad607778495d2579  gcc/ada/libgnat/a-tiinio.ads
! 7a2662d7f6a18fd5df0d3d4c2399baac  gcc/ada/libgnat/a-tiinio__128.adb
! d30db58ffd1e57f9861277dd74400ce2  gcc/ada/libgnat/a-timoio.adb
! 2620fe40dbbe4ca93ba7075e8af17759  gcc/ada/libgnat/a-timoio.ads
! 91b867381ebbfaa63cef06ee005a9089  gcc/ada/libgnat/a-timoio__128.adb
! 0cdd3c014d499854cf25dc0b04031ad1  gcc/ada/libgnat/a-tiocst.adb
! e5c3357f0fce5ca95c1813d9eb9a05fb  gcc/ada/libgnat/a-tiocst.ads
! e156a5de562b37c56ad24c7bea351f78  gcc/ada/libgnat/a-tirsfi.adb
! 40f4bd7d097a4210394d63a8085b2295  gcc/ada/libgnat/a-tirsfi.ads
! b179c50ec61d34ae5d548a779d188364  gcc/ada/libgnat/a-titest.adb
  7b71ac41d87e6c43f98663d1d110846c  gcc/ada/libgnat/a-titest.ads
  1a5a51a7ff392f1819e96c8c7b6ba50b  gcc/ada/libgnat/a-tiunio.ads
  ebdefb0717ee54e84334b4468aea7da2  gcc/ada/libgnat/a-unccon.ads
  8eb8e50901a7293468a57fa9630abb8c  gcc/ada/libgnat/a-uncdea.ads
! 5aa6d62133e80ca4d31190c3286fd832  gcc/ada/libgnat/a-undesu.adb
  82a804005be52b8d315b11082ce952d4  gcc/ada/libgnat/a-undesu.ads
! 5174d918e15060f2393a6faf5aa99e04  gcc/ada/libgnat/a-wichha.adb
  bc85d10bd14a8eda24559935a5472a57  gcc/ada/libgnat/a-wichha.ads
! 2500bc60f6a27d04f7705aa039b2fd16  gcc/ada/libgnat/a-wichun.adb
! 2123652849f79ff1cfe343b3eac7511b  gcc/ada/libgnat/a-wichun.ads
  495dc144d91ae1388ae48ceb32e47f91  gcc/ada/libgnat/a-widcha.ads
! 874f33b63742d6301be6da48f304e406  gcc/ada/libgnat/a-witeio.adb
! cdc8015ddea02a973d07efd344d0b4f4  gcc/ada/libgnat/a-witeio.ads
! e57ce33c8d57668aa44173699655534e  gcc/ada/libgnat/a-wrstfi.adb
! bc62ee8bde1ab04aaa9c6c855addbf87  gcc/ada/libgnat/a-wrstfi.ads
! 75368b386fa881d7960590853fb9265b  gcc/ada/libgnat/a-wtcoau.adb
! 5fc564733ec4bb9abb19171ba8f3dfb7  gcc/ada/libgnat/a-wtcoau.ads
! 108ad24ba3000bd91838383a7a601d31  gcc/ada/libgnat/a-wtcoio.adb
  d76fe24c6988d732303e4f40830c2082  gcc/ada/libgnat/a-wtcoio.ads
! 4c7e0b4c99c94d44ef03861c29ad3130  gcc/ada/libgnat/a-wtcstr.adb
! cd59aba8f08886157906c1f89192e368  gcc/ada/libgnat/a-wtcstr.ads
! ab0494bd4b8dbebfb49190ee6b441fda  gcc/ada/libgnat/a-wtdeau.adb
! 84e66098fbb6f1b581f7a9bbe3d74d7e  gcc/ada/libgnat/a-wtdeau.ads
! a3c34e4d020e19185589ac8a9e3e467c  gcc/ada/libgnat/a-wtdeio.adb
  20d4a8b1dbec170436bce906004aaac8  gcc/ada/libgnat/a-wtdeio.ads
! e7945ed43de7e631995217cbb9d88404  gcc/ada/libgnat/a-wtdeio__128.adb
! 05e6abba89c804994b74da6926650f6b  gcc/ada/libgnat/a-wtedit.adb
! f1b3bbc599b9d42f6c27f7a18dc9c067  gcc/ada/libgnat/a-wtedit.ads
! 18a1313c6ebd1227b208cda1f428ef66  gcc/ada/libgnat/a-wtenau.adb
! 3472cc0e032c0622115554dce42803c8  gcc/ada/libgnat/a-wtenau.ads
! ffe1d78ff00fb5bfdd51740030ffc3e6  gcc/ada/libgnat/a-wtenio.adb
  fa13b730a5c90ff293982415bf7bcecb  gcc/ada/libgnat/a-wtenio.ads
! 43ad5b1392acf7413b6aac5baf9de666  gcc/ada/libgnat/a-wtfiau.adb
! fc09d2e1f032e8b5c795538cfc6ffa20  gcc/ada/libgnat/a-wtfiau.ads
! 65cb49c7b108779a2d04829c7d8f007b  gcc/ada/libgnat/a-wtfiio.adb
  495444487be476924785b4b8eff6b910  gcc/ada/libgnat/a-wtfiio.ads
! 7982a364187a2f16b55d66cdd4a79841  gcc/ada/libgnat/a-wtfiio__128.adb
! 885c1f25dfec40da23066c8df720b986  gcc/ada/libgnat/a-wtflau.adb
! b982bd5403bfa10962455741c1897f37  gcc/ada/libgnat/a-wtflau.ads
! ee3002d0c7a5ec638e53d7947da54841  gcc/ada/libgnat/a-wtflio.adb
  bb57e8648d7de30496bb43f8a849fc3f  gcc/ada/libgnat/a-wtflio.ads
! 851180d0ce7474127b321b8a594b562c  gcc/ada/libgnat/a-wtgeau.adb
! c0e6ff4eb0a3dee84e25437683fa6689  gcc/ada/libgnat/a-wtgeau.ads
! 410b793d24676ac7c98ed920c1646e21  gcc/ada/libgnat/a-wtinau.adb
! 4457307ff0ce6b043e42a6022a3a5196  gcc/ada/libgnat/a-wtinau.ads
! 13c5390bb24a74d50224eae820560b8f  gcc/ada/libgnat/a-wtinio.adb
  62a64f1715aaaa145cf2b6d360381363  gcc/ada/libgnat/a-wtinio.ads
! 0f373d87be42cebdf44c9ac3e65f7000  gcc/ada/libgnat/a-wtinio__128.adb
! ca71626e2e6161c05e4b1c6bc89ce76a  gcc/ada/libgnat/a-wtmoio.adb
! 43b643425abb41aa1e6d43383e24aff5  gcc/ada/libgnat/a-wtmoio.ads
! 67505b361ccfb37a4324498fd2489788  gcc/ada/libgnat/a-wtmoio__128.adb
! 35785f565564834d8d4e96d713d1b388  gcc/ada/libgnat/a-wttest.adb
  53d3d301f9afb69992013f55fe363511  gcc/ada/libgnat/a-wttest.ads
! 66411e0ced1ccd68a98238a7544fd42b  gcc/ada/libgnat/a-wwboio.adb
  899e14502ec4dedbf4fdb28f8cecfa35  gcc/ada/libgnat/a-wwboio.ads
  1c2480c111fa5b71fca7c67f21525f8f  gcc/ada/libgnat/a-wwunio.ads
  107d2989204d28e32923acc02d444f67  gcc/ada/libgnat/a-zchara.ads
! 698e29e46b161682375edbfde6fe3af3  gcc/ada/libgnat/a-zchhan.adb
  ce55ee9974e330611ce057d096fe581f  gcc/ada/libgnat/a-zchhan.ads
! e380cca27215649e0d8b462d1178adca  gcc/ada/libgnat/a-zchuni.adb
! 09dd9fd910bd7753703756d364d319c6  gcc/ada/libgnat/a-zchuni.ads
! 1159889e49622c727565bc03004fec27  gcc/ada/libgnat/a-zrstfi.adb
! 581b40a8dc3bb4652526bc5f37ac9331  gcc/ada/libgnat/a-zrstfi.ads
! a9c5c0b53eac257c43c40976077d55a2  gcc/ada/libgnat/a-ztcoau.adb
  fe39d89a6c321af618f6fa9308e66666  gcc/ada/libgnat/a-ztcoau.ads
! 816f8fbc9040d2a0719d57d6e92aa2e7  gcc/ada/libgnat/a-ztcoio.adb
  7440d81a0d7886b3f76b271c7fcbf8b3  gcc/ada/libgnat/a-ztcoio.ads
! ad4b323e4196d5d26eadd796b51062c3  gcc/ada/libgnat/a-ztcstr.adb
! 563b59127c2aa048f48b7d1f498c123e  gcc/ada/libgnat/a-ztcstr.ads
! 6144e969b82cdc30f32b03fd5aff8da5  gcc/ada/libgnat/a-ztdeau.adb
! c6d1651cc1f9f4dc665662e0fa29a08d  gcc/ada/libgnat/a-ztdeau.ads
! be6b5a04d6b0bff4176c565730be929a  gcc/ada/libgnat/a-ztdeio.adb
  a1457649e626ebf32915696e5afd2ac0  gcc/ada/libgnat/a-ztdeio.ads
! 50171ca016d80893dd8f14cb4dbd3677  gcc/ada/libgnat/a-ztdeio__128.adb
! a4b465dea86377a3154eeb4dba6129d4  gcc/ada/libgnat/a-ztedit.adb
! dfdeb3081d255ca390e7e52a5264b49c  gcc/ada/libgnat/a-ztedit.ads
! dfe38c5787c747fad2119dd5e03e961f  gcc/ada/libgnat/a-ztenau.adb
! 4e974e0e38e338087b52e7f0abae2d4b  gcc/ada/libgnat/a-ztenau.ads
! 7607291af8c7a963977225db7294aaea  gcc/ada/libgnat/a-ztenio.adb
  33aa889d92f43b14a348a444135fc992  gcc/ada/libgnat/a-ztenio.ads
! b3373262c3462c3da98f37db389ab5f5  gcc/ada/libgnat/a-ztexio.adb
! e0ec49c84bc498f80782c45e38d79d26  gcc/ada/libgnat/a-ztexio.ads
! c4a3920b6d6dbed15eab93dca8dca514  gcc/ada/libgnat/a-ztfiau.adb
! e0a33b2d3776733a33440786293c8541  gcc/ada/libgnat/a-ztfiau.ads
! bca662f5ab2c7a27dd57afb586d8d21d  gcc/ada/libgnat/a-ztfiio.adb
  9e2efe8c1c2d6658a575fbecb5ab1418  gcc/ada/libgnat/a-ztfiio.ads
! a549fed7e741b94556cefd181d863489  gcc/ada/libgnat/a-ztfiio__128.adb
! 629e210a3f3bb2dedc795e516b6521c7  gcc/ada/libgnat/a-ztflau.adb
! 970fe61f038d673bdb63f8e9596dbbcc  gcc/ada/libgnat/a-ztflau.ads
! 858b7a9684245f5986532b182a3c775f  gcc/ada/libgnat/a-ztflio.adb
  7aae0945e67f16f4f77aa54a65552f3e  gcc/ada/libgnat/a-ztflio.ads
! 5c5fbc763ef603c503cdf0d9a18dcbf7  gcc/ada/libgnat/a-ztgeau.adb
! b47490466f613b3c6d20e0d5102f74ad  gcc/ada/libgnat/a-ztgeau.ads
! d05c74dd62e898516f117a6bc05d34c1  gcc/ada/libgnat/a-ztinau.adb
! 3a9807a0a11e3ebef16c97ebb4b3d987  gcc/ada/libgnat/a-ztinau.ads
! 94bece9e654c102060e99a929e44b997  gcc/ada/libgnat/a-ztinio.adb
  f0456d31ec0aa6f6786e1b635f8023cb  gcc/ada/libgnat/a-ztinio.ads
! 98f97f39e2a8a65d3a9853cb803629de  gcc/ada/libgnat/a-ztinio__128.adb
! fdb6f3268dac9713d9e51dee200b87a3  gcc/ada/libgnat/a-ztmoio.adb
  9831d312ef279fc55e5e051745be05d2  gcc/ada/libgnat/a-ztmoio.ads
! b6cdcaa25ea0c3dc764752193cc4ef31  gcc/ada/libgnat/a-ztmoio__128.adb
! 842274ea898827c6df52ca80e0044186  gcc/ada/libgnat/a-zttest.adb
  2caf047380f684add2bd5a35dc4e1091  gcc/ada/libgnat/a-zttest.ads
! 314251e26d19dfe3593a3d5bf52afbdc  gcc/ada/libgnat/a-zzboio.adb
  a80428bcd2bf9ab7214609e68ff1651c  gcc/ada/libgnat/a-zzboio.ads
  a6d7b54a7a1a401188cfe54d1c2bad3b  gcc/ada/libgnat/a-zzunio.ads
  aad41855092e5648dbc6e7ab9d94cda3  gcc/ada/libgnat/ada.ads
  71c71bcd90c113e366bf720c3d886660  gcc/ada/libgnat/calendar.ads
  e150ba4c7f01d70e0086543a96ffd40b  gcc/ada/libgnat/directio.ads
! 4d92e0d3c623d72317e36567f0d44b89  gcc/ada/libgnat/g-allein.ads
! ad874384ff9a7ebbd383c19bde950a6d  gcc/ada/libgnat/g-alleve.adb
! 8b39c52baa46d48455b5758897961863  gcc/ada/libgnat/g-alleve.ads
! d14cdf67166728c6bc4bbfdb35d01bc0  gcc/ada/libgnat/g-alleve__hard.adb
! 69f6a982d6cf1fb3d9cc8b98c8924612  gcc/ada/libgnat/g-alleve__hard.ads
! 7978e50688a6f5cdb6601a7178135b4c  gcc/ada/libgnat/g-altcon.adb
! 5b4553076e7138a8ec869dcd76e96f25  gcc/ada/libgnat/g-altcon.ads
! 3ffac7bd81156d0635e631f66948d54a  gcc/ada/libgnat/g-altive.ads
! fdce82aad210e8faa6d5b7b9ffc99072  gcc/ada/libgnat/g-alveop.adb
! 095e97cbbf4696b27fda2c28cae8927d  gcc/ada/libgnat/g-alveop.ads
! d0a1d283ffaa212bc2d74046a8cdf242  gcc/ada/libgnat/g-alvety.ads
! f77977ec1a4d2e7c794d30613f33c4b4  gcc/ada/libgnat/g-alvevi.ads
! aff1948d7990f8fc4b0f4f312821c8af  gcc/ada/libgnat/g-arrspl.adb
! 996a01b0120b3fa2b1ffab35ab0c4e26  gcc/ada/libgnat/g-arrspl.ads
! 5936bdbd108a2ee0410ce5f5da0fcbcf  gcc/ada/libgnat/g-awk.adb
! 80a8ffad0646f1fbf5c2f82731e96d8d  gcc/ada/libgnat/g-awk.ads
! 29b6d2a40a57772d109deebf29cb08c8  gcc/ada/libgnat/g-binenv.adb
! c0e0c3459f9d9867a6dfc21536c7ece8  gcc/ada/libgnat/g-binenv.ads
! 252819650ceff465553db4d3835743ab  gcc/ada/libgnat/g-binsea.adb
! 32811eadc5638474ce8d0c8ec2cb1f8c  gcc/ada/libgnat/g-binsea.ads
! 4273cc6ee91b551857eb724800e88cfd  gcc/ada/libgnat/g-brapre.ads
! 68455ff88b87da02c4c31bfa9d8717ff  gcc/ada/libgnat/g-bubsor.adb
! eccfa5931e7142a0f4fa1736cd5a27fd  gcc/ada/libgnat/g-bubsor.ads
! 34a6e2f6c3340099b2264589f5f07e70  gcc/ada/libgnat/g-busora.adb
! 5d6e89bab62ec17c6a9b26c6247a977f  gcc/ada/libgnat/g-busora.ads
! a92834758d0572d6d7eb753b83753c15  gcc/ada/libgnat/g-busorg.adb
! 2f258e0a9f991726c02388889e038a29  gcc/ada/libgnat/g-busorg.ads
! 993521eea167aa6b4ead6d4da787ce40  gcc/ada/libgnat/g-byorma.adb
! 23144b235d2d9490037d3f02cfa8eaec  gcc/ada/libgnat/g-byorma.ads
! 26b5a32860b3df9a8448ce9feb9a924a  gcc/ada/libgnat/g-bytswa.adb
! 90780c906f19e074bd567ae3cc854068  gcc/ada/libgnat/g-bytswa.ads
! 60f42b223dbba6b03343a673f0b5ee58  gcc/ada/libgnat/g-calend.adb
! 1a2dc8a7853b4b23c414b9c96f6ef545  gcc/ada/libgnat/g-calend.ads
! 8e9111a566c791f3707d0be6a2f2ab73  gcc/ada/libgnat/g-casuti.adb
! b2ef9ab2bce299475a51664da9487ace  gcc/ada/libgnat/g-casuti.ads
! c68410d8e72132fbc3326797343d8b77  gcc/ada/libgnat/g-catiio.adb
! efceecf03d24c94f93e9527eb4c6c992  gcc/ada/libgnat/g-catiio.ads
! f968a5633349e503fdffaefda8780faf  gcc/ada/libgnat/g-cgi.adb
! b6f051322f7bc3fb446e08c3f38bfd60  gcc/ada/libgnat/g-cgi.ads
! 6615d91596ad0555348cf2d6f9ab0724  gcc/ada/libgnat/g-cgicoo.adb
! eca5eeaa1f87565c36b874459ee6bfd6  gcc/ada/libgnat/g-cgicoo.ads
! 7df93d781d1a395c84256fc7cea08b11  gcc/ada/libgnat/g-cgideb.adb
! 68a442923ec8fb7d8502312ffd4fb3cf  gcc/ada/libgnat/g-cgideb.ads
! a4af576ac77d13667f82b1e2de4bfa89  gcc/ada/libgnat/g-comlin.adb
! b518e2921c58ef0865605ef061ec09c8  gcc/ada/libgnat/g-comlin.ads
! f4645815bceb7679ecbb26a680b18b96  gcc/ada/libgnat/g-comver.adb
! b85f331ed68f4113dfddc1f719b8042f  gcc/ada/libgnat/g-comver.ads
! c990016bf3c9b9dffaa8f92ed16a7580  gcc/ada/libgnat/g-cppexc.adb
! 4522b346c7b5378c103db91512191dde  gcc/ada/libgnat/g-cppexc.ads
! 65b3b3fdc3c7994829cb26bb07419f7d  gcc/ada/libgnat/g-crc32.adb
! 069c8ed42eee53a394ca20a7ff9a1440  gcc/ada/libgnat/g-crc32.ads
! 76bb16f0008d32678c04307b9fd2bf90  gcc/ada/libgnat/g-ctrl_c.adb
! 249e15540841a276b3bb70b0692ea022  gcc/ada/libgnat/g-ctrl_c.ads
! 53b40060d47c3a23c05344a8503de9af  gcc/ada/libgnat/g-curexc.ads
! 5790732038e1ccb7a4114866561aea50  gcc/ada/libgnat/g-debpoo.adb
! 88d17f3e6492b8b13b0f8cfea72dd3b6  gcc/ada/libgnat/g-debpoo.ads
! d9fe54b9e9eea1a80facaa5b584c6606  gcc/ada/libgnat/g-debuti.adb
! 98c4bc8aec539371766eaaf52b9b8498  gcc/ada/libgnat/g-debuti.ads
! 52b90b392061c4418f44e501ccc40612  gcc/ada/libgnat/g-decstr.adb
! a560aee79065e643d0bb427917c3fea6  gcc/ada/libgnat/g-decstr.ads
! 963d598d9e2eb307eb570462bad15ab6  gcc/ada/libgnat/g-deutst.ads
! b1c867bdf7e87c323b09c2edafb16c95  gcc/ada/libgnat/g-diopit.adb
! 9509626fcef403834ada16bb27649655  gcc/ada/libgnat/g-diopit.ads
! cacbdd27f5d11796f845b06d9c0d518a  gcc/ada/libgnat/g-dirope.adb
! 17ca35a9d450dec5df0878b6b0da2153  gcc/ada/libgnat/g-dirope.ads
! 1e6e9621332dafea157a9536b7a61dab  gcc/ada/libgnat/g-dynhta.adb
! e8290f84f3a53efed091fc59af1bbaef  gcc/ada/libgnat/g-dynhta.ads
! b7ff6617476416d36a0a3bf3333a800d  gcc/ada/libgnat/g-dyntab.adb
! ccf7c4467798fa714061a1898df6feef  gcc/ada/libgnat/g-dyntab.ads
! ae1f2c1d0e06bc184476084c1992c042  gcc/ada/libgnat/g-eacodu.adb
! 1d6a4ffa7fc753070c820af94d3cc2fd  gcc/ada/libgnat/g-encstr.adb
! d627e20b2938fd71f4196b0463c84b51  gcc/ada/libgnat/g-encstr.ads
! 43e2f912d729d319419a51e7780b233a  gcc/ada/libgnat/g-enutst.ads
! e6ee69c58445d486328786ec4772151d  gcc/ada/libgnat/g-excact.adb
! fe7082c4a400ea83dfe29b245f0b413f  gcc/ada/libgnat/g-excact.ads
! 1645900070be5033f4f79e11472bd74e  gcc/ada/libgnat/g-except.ads
! bbd1b089b766eeec2eb49e57e0bdff47  gcc/ada/libgnat/g-exctra.adb
! 68f59a93cf78755425d8a5c9fb717521  gcc/ada/libgnat/g-exctra.ads
! edbab9f3e0fa3ecc28e7539b1b809589  gcc/ada/libgnat/g-expect.adb
! 92af8aa759a2735bdc694af115377948  gcc/ada/libgnat/g-expect.ads
! bc514f466d6a19ab775cf94e3204caf1  gcc/ada/libgnat/g-exptty.adb
! 83b44dd85a03883af2eeffb9416ca93a  gcc/ada/libgnat/g-exptty.ads
! 6923c1adcdb7c17982caeae50fcb3985  gcc/ada/libgnat/g-flocon.ads
! 74af5bb038dd9ebab9332f9230258dda  gcc/ada/libgnat/g-forstr.adb
! 43d29d6d386d85763f7b9c9275bcbb1b  gcc/ada/libgnat/g-forstr.ads
! 75b093542573c05cf9e4e8b040d899f5  gcc/ada/libgnat/g-gfmafu.ads
! 4be9a41d1366287248237df1a2806894  gcc/ada/libgnat/g-graphs.adb
! 5064ef29d0787c6fdbd3b39319f1004b  gcc/ada/libgnat/g-graphs.ads
! fe2c1d1af83414b93934a7d9cba90a38  gcc/ada/libgnat/g-heasor.adb
! 5d0a37ae4a2a755cddd1a0ac505896a4  gcc/ada/libgnat/g-heasor.ads
! ecdb97ed3c53baa51f4ed02ae2e3b80a  gcc/ada/libgnat/g-hesora.adb
! 7160eb60fac9bccd192c6632da546fb5  gcc/ada/libgnat/g-hesora.ads
! e55e4fc5e136792d27b0fa8cc56572cf  gcc/ada/libgnat/g-hesorg.adb
! cc12f530477bcfb548ac3679cc26de7e  gcc/ada/libgnat/g-hesorg.ads
! 3843f649c92223d4b6e9dbafc6a20a4a  gcc/ada/libgnat/g-htable.adb
! da7c7eab42d35c5d68fea2ca3bc70208  gcc/ada/libgnat/g-htable.ads
! 2db33d83709bf8af1c2983d113b1cc1f  gcc/ada/libgnat/g-io.adb
! 45133c6a9043b8ca968e47e2bd2a5b26  gcc/ada/libgnat/g-io.ads
! 73b0c1813541a8bc4693e36d786e56c9  gcc/ada/libgnat/g-io_aux.adb
! d7d87637f8cfee1089e298dfc396aa62  gcc/ada/libgnat/g-io_aux.ads
! 06fbfb2c132d1860d8ec62b21a5a5bd3  gcc/ada/libgnat/g-lists.adb
! b6fc7cdfe5f269265a07d06f1ba8e06b  gcc/ada/libgnat/g-lists.ads
! 95e7b2fb5880eaaabdf86e11a44539c9  gcc/ada/libgnat/g-locfil.adb
! 5a840cdde883ecec06365bb7e1e66bde  gcc/ada/libgnat/g-locfil.ads
! 554523bc90b0887f85bfbcea7a0c6803  gcc/ada/libgnat/g-mbdira.adb
! 5b7892a2c0d404203cbbf51c3b867004  gcc/ada/libgnat/g-mbdira.ads
! 6bad2a8db1d0c299ee2ad48c33ac2f3c  gcc/ada/libgnat/g-mbflra.adb
! de4439eb73de5bbff88e841694fbfa74  gcc/ada/libgnat/g-mbflra.ads
! ecda141877158cb9e29770393927de1f  gcc/ada/libgnat/g-md5.adb
! 7e5ce4f5beb2284ea43ed2e10f3d014b  gcc/ada/libgnat/g-md5.ads
! 1a3348d730fc836f7c75efb7f74439d0  gcc/ada/libgnat/g-memdum.adb
! c3554f24be8936cfc9f1de1e5f699394  gcc/ada/libgnat/g-memdum.ads
! bf3b5aeb712d1c6590fc918b131b1b30  gcc/ada/libgnat/g-moreex.adb
! e8fd1c1694b5614c76b53887e5ed57d3  gcc/ada/libgnat/g-moreex.ads
! 0b842333438981b46889bb262f38dde4  gcc/ada/libgnat/g-os_lib.adb
! e8149ef1008863e4bfd1fdb0e081981c  gcc/ada/libgnat/g-os_lib.ads
! 99f83ca3081e52cecbf645cab3b283eb  gcc/ada/libgnat/g-pehage.adb
! f47f412085fe9187d0a68d8c0a5d93d5  gcc/ada/libgnat/g-pehage.ads
! 1254a0b7970668d62bd166574672e587  gcc/ada/libgnat/g-rannum.adb
! d07185d746fb69d9329b517b84ac8a4e  gcc/ada/libgnat/g-rannum.ads
! 6ea1a98579702ab8a768699f578c3f42  gcc/ada/libgnat/g-regexp.adb
! 4b268bf19688c01c07f64978d1f947b1  gcc/ada/libgnat/g-regexp.ads
! a35dbf300a3e6f1ce86dad08ccce082f  gcc/ada/libgnat/g-regist.adb
! 759509c4ec2be1be47390b5512fb0458  gcc/ada/libgnat/g-regist.ads
! c2347305c37cb4ff9937dacbff8c7f1b  gcc/ada/libgnat/g-regpat.adb
! 25f2e7db87a3b604b06820303a8a3e9a  gcc/ada/libgnat/g-regpat.ads
! 7399a6d3f2e519265fbdef1cabcf51ac  gcc/ada/libgnat/g-rewdat.adb
! 3d8751d7369bfbf167277826e916d328  gcc/ada/libgnat/g-rewdat.ads
! 257756ad0788e553d365aee0e6921e5a  gcc/ada/libgnat/g-sechas.adb
! c61622c01de6ab68262d55fb60a2237c  gcc/ada/libgnat/g-sechas.ads
! d6c66e8f94a7dfcad41cf871b926ed89  gcc/ada/libgnat/g-sehamd.adb
! 09de0f560bd03790c8820852547a6f3e  gcc/ada/libgnat/g-sehamd.ads
! 94812ac2a18dcdb2a6dfacd7ea6a6932  gcc/ada/libgnat/g-sehash.adb
! e470c324964aa248d1854ff44a49ab75  gcc/ada/libgnat/g-sehash.ads
! 568f8236514e9fc93368db812579c117  gcc/ada/libgnat/g-sercom.adb
! 8cbddddd4fed9f63eb428c8cacedd5e4  gcc/ada/libgnat/g-sercom.ads
! 9a73d2477789383d141c90c8fb879d01  gcc/ada/libgnat/g-sercom__linux.adb
! e8b3c8e39e40e8beed229f80dbc637bf  gcc/ada/libgnat/g-sercom__mingw.adb
! d4e35e820040ad6b747ea9d4cf9fc12f  gcc/ada/libgnat/g-sestin.ads
! 94a447f30a15e895c94a8ce7d6cf7f60  gcc/ada/libgnat/g-sets.adb
! d3eb793384643a3450062e5c88a77bc3  gcc/ada/libgnat/g-sets.ads
! 0c2c198b03f23fe6fc60143f9372cd03  gcc/ada/libgnat/g-sha1.adb
! ab844de76387e750c1f19eb6cb9f24b0  gcc/ada/libgnat/g-sha1.ads
! d9695806c656d319196c18903640378b  gcc/ada/libgnat/g-sha224.ads
! 10869f44caa5a79909eaa561b300fd5e  gcc/ada/libgnat/g-sha256.ads
! 2f168f4866c8d037f6674c0f1d7f6ee4  gcc/ada/libgnat/g-sha384.ads
! aadb24efb3d6c9e8a391f967f79a421f  gcc/ada/libgnat/g-sha512.ads
! cf934d7cd55eb6a4e016bb103afa8c7e  gcc/ada/libgnat/g-shsh32.adb
! f2d8eae70172d5272d3e454c1b1b2051  gcc/ada/libgnat/g-shsh32.ads
! 99e504a6337b45b80b5ac2a67f9511a9  gcc/ada/libgnat/g-shsh64.adb
! 6c3c8216513f7eefdcaf56a7812d3571  gcc/ada/libgnat/g-shsh64.ads
! b347daf965f1992fd32844617d11efd0  gcc/ada/libgnat/g-shshco.adb
! 94e2549753574d95fa89cdd1cd1ab8ab  gcc/ada/libgnat/g-shshco.ads
! 16fa2e00fece34a2d5783c282f260554  gcc/ada/libgnat/g-soccon.ads
! 707e83f3c64c8e91f87bf1c6db65af93  gcc/ada/libgnat/g-socket.adb
! 2329dfc702483f5353d20a7563a3a60e  gcc/ada/libgnat/g-socket.ads
! 4c854d4f031fbd6f7848662f4c8de12f  gcc/ada/libgnat/g-socket__dummy.adb
! 747a5623dc49e1d03443915a093855cd  gcc/ada/libgnat/g-socket__dummy.ads
! f60410916fefd45f43617c11b37627f3  gcc/ada/libgnat/g-socpol.adb
! bba809ac3d6ef7638ab4e837655ecfd2  gcc/ada/libgnat/g-socpol.ads
! 110dc5d23553b81275239ac2b1559d5c  gcc/ada/libgnat/g-socpol__dummy.adb
! a4c59fa51f2c8077321c8065cc8b9222  gcc/ada/libgnat/g-socpol__dummy.ads
! a709662fb10f73f5f06a357d91fbdbae  gcc/ada/libgnat/g-socthi.adb
! dc779bd662f042b633ece09007bdf857  gcc/ada/libgnat/g-socthi.ads
! 39e8b4d9271ac8dfffbbf73dd54c2264  gcc/ada/libgnat/g-socthi__dummy.adb
! f3666eb97e40377c81be753c58c755b3  gcc/ada/libgnat/g-socthi__dummy.ads
! 092d7737fba703bbb01219b4dea52504  gcc/ada/libgnat/g-socthi__mingw.adb
! f114752b20184edac895fc1dc1377dad  gcc/ada/libgnat/g-socthi__mingw.ads
! 86a7d44ec3f954a74cb0f9288007734b  gcc/ada/libgnat/g-socthi__vxworks.adb
! 35857078d2aab6c589e6157176c0f946  gcc/ada/libgnat/g-socthi__vxworks.ads
! fb96913e6a939407e687a5b8267fb286  gcc/ada/libgnat/g-soliop.ads
! b92064f7c023f5a9f08ebac4d4df82cc  gcc/ada/libgnat/g-soliop__lynxos.ads
! a950f1332d806ebee5d777eb54262211  gcc/ada/libgnat/g-soliop__mingw.ads
! 92af5f6e67d2729ed90a3154b4225514  gcc/ada/libgnat/g-soliop__qnx.ads
! e6f69e39b4f07180c6b721ebf938dcd0  gcc/ada/libgnat/g-soliop__solaris.ads
! e76558b8735d017d61c600b874a8d392  gcc/ada/libgnat/g-sopowa.adb
! cfbc23a780d0f8f2ed89de1d188a262f  gcc/ada/libgnat/g-sopowa__mingw.adb
! 73190ce31962a5cfa9fb39dd3335ec02  gcc/ada/libgnat/g-sopowa__posix.adb
! 664dba5099e46d34c72e5d413007c542  gcc/ada/libgnat/g-sothco.adb
! 9d65d5c1321b8a877b434bce766e15c9  gcc/ada/libgnat/g-sothco.ads
! 4e09d9262db3530a9d5fd7b55b7dd815  gcc/ada/libgnat/g-sothco__dummy.adb
! 1507fa3579ff091fe6695f3d2222e5d5  gcc/ada/libgnat/g-sothco__dummy.ads
! 1b24fa0c779dbf5d71fa3ff480f13cf5  gcc/ada/libgnat/g-souinf.ads
! 3fc7facb410e847236e30b9a21fa61ec  gcc/ada/libgnat/g-spchge.adb
! 898f366ab02f3b88478412efde140377  gcc/ada/libgnat/g-spchge.ads
! 06dfe69f818c7140d602af844691eba0  gcc/ada/libgnat/g-speche.adb
! 99e27d2904b4e0a9bcce48a0ecf890a9  gcc/ada/libgnat/g-speche.ads
! 945d684020a26eebc822819b4b6725e3  gcc/ada/libgnat/g-spipat.adb
! 5cf2ee11efafd5b629b7cddba3bd156c  gcc/ada/libgnat/g-spipat.ads
! 748d282dd20dd29a08649206f7c0fe69  gcc/ada/libgnat/g-spitbo.adb
! d13ebacb612c43d698657fd443cbdc0b  gcc/ada/libgnat/g-spitbo.ads
! 60c5fe073a1fba864c4fc01ee3e23dae  gcc/ada/libgnat/g-spogwa.adb
! 837e8ee32a413012a1fa332c94f8aa78  gcc/ada/libgnat/g-spogwa.ads
! 87aa1763984429867c854cc858d6e917  gcc/ada/libgnat/g-sptabo.ads
! 9bbb31e2c895095d94be016716a5fab7  gcc/ada/libgnat/g-sptain.ads
! 318c6b9aef9ad335965d8f6612742a7a  gcc/ada/libgnat/g-sptavs.ads
! 3b63f00dc35a76ada468082c5936cf6d  gcc/ada/libgnat/g-sse.ads
! ac11a86f067e51308b84146d8b5f42a3  gcc/ada/libgnat/g-ssvety.ads
! 1807addefc3b014a21cddcc32206127d  gcc/ada/libgnat/g-sthcso.adb
! 34d6fec636612eca826a5be6349f1eee  gcc/ada/libgnat/g-stheme.adb
! 623ccf1bf569ad311cac8ca042546bdd  gcc/ada/libgnat/g-strhas.ads
! e7e7a2c8ecb750641d76a505979286fa  gcc/ada/libgnat/g-string.adb
! 68ab8df1a74e643559374b7d10d73497  gcc/ada/libgnat/g-string.ads
! fd526b0a9e595826d941e9f6052fece8  gcc/ada/libgnat/g-strspl.ads
! 36088017f7fae43da8d7990aa60f7e4a  gcc/ada/libgnat/g-stseme.adb
! 6843e0370f871377a0e646eb907b06fc  gcc/ada/libgnat/g-stsifd__sockets.adb
! eb924758cf9cdd75ec9cfd94b63278c4  gcc/ada/libgnat/g-table.adb
! 8210890f36f66cc022db2a9ea40b5f8a  gcc/ada/libgnat/g-table.ads
! 2588da75cae8575bcd3f02f261a176a8  gcc/ada/libgnat/g-tasloc.adb
! fa9d4bc98c2135f3e8227109747988a9  gcc/ada/libgnat/g-tasloc.ads
! 08fa7d796be4c7fc58d890d196cc9f7e  gcc/ada/libgnat/g-timsta.adb
! c6fadd0b4732f2f5de68817df19767c8  gcc/ada/libgnat/g-timsta.ads
! c720c3fe8b8af8719abf5d713638b934  gcc/ada/libgnat/g-traceb.adb
! 7eb55c52c2012022648ed34d0c7e09e8  gcc/ada/libgnat/g-traceb.ads
! a19d4b58b576f1aefa2435cfff652d0d  gcc/ada/libgnat/g-trasym.adb
! 586e95b3a90564056aa6e9d2d97bd835  gcc/ada/libgnat/g-trasym.ads
! 6ead27ccbc399501f3ac68f318bd45bd  gcc/ada/libgnat/g-tty.adb
! 56aa1226fa9c88016ad95a4a5790657a  gcc/ada/libgnat/g-tty.ads
! d2778daeb1d63889e59fff3a917021fa  gcc/ada/libgnat/g-u3spch.adb
! 00251cd898a2ecf24eb13bacab8a0509  gcc/ada/libgnat/g-u3spch.ads
! 98dc838352da7c06b1505545bafcb771  gcc/ada/libgnat/g-utf_32.adb
! 31c81f18d8fff503875e8fb770c5b5b5  gcc/ada/libgnat/g-utf_32.ads
! 5486aa425cce9adbfc5ecce8526a1e30  gcc/ada/libgnat/g-wispch.adb
! eed6182cccb1e36102c6093ecf5edbd8  gcc/ada/libgnat/g-wispch.ads
! acfe49743f116b386e2b86854490d6f6  gcc/ada/libgnat/g-wistsp.ads
! 82d31ffa8f81a2adeaedf0173eb9c4c1  gcc/ada/libgnat/g-zspche.adb
! be3a255852278bfff0e013275e3590ee  gcc/ada/libgnat/g-zspche.ads
! 05aec4e0bda031ccc58e01cd62609f03  gcc/ada/libgnat/g-zstspl.ads
! 9a1256ead1ae4501bc7bfe15fac88a3c  gcc/ada/libgnat/gnat.ads
! 966ff8768954813ed493ccec60f895df  gcc/ada/libgnat/i-c.adb
! af51227bb8b3a293ea632fa7bb5275d1  gcc/ada/libgnat/i-c.ads
! 086e313508ca6a2c9b357053da6d7541  gcc/ada/libgnat/i-cexten.ads
! 63a5514e15fee37533e09393e0e1b022  gcc/ada/libgnat/i-cexten__128.ads
! 6b062b936aa771bbef0c852c89595280  gcc/ada/libgnat/i-cobol.adb
! 55277c0aea84386a3afc17e8854a9b3f  gcc/ada/libgnat/i-cobol.ads
! 0b638aa61ff9ec1e1263d060b0a0a2ee  gcc/ada/libgnat/i-cpoint.adb
! eccac19c4847e8a1b274c1a13cd887b6  gcc/ada/libgnat/i-cpoint.ads
! 4d56fa0776ea98f8d60189ad7c8544b8  gcc/ada/libgnat/i-cstrea.adb
! e044d22f710e7bca8326086668c736ba  gcc/ada/libgnat/i-cstrea.ads
! 51e7e0be8af4267a76dda21d41edfaf9  gcc/ada/libgnat/i-cstrin.adb
! 627ec1266d44d9c89304f33479d0a3c7  gcc/ada/libgnat/i-cstrin.ads
! 3ef302f4c78288e920d061a6994df706  gcc/ada/libgnat/i-fortra.adb
  fe08792d30f40125dd75d63c7bcd68fe  gcc/ada/libgnat/i-fortra.ads
! a2434e0d284f29b6c361cc227d2dcf3b  gcc/ada/libgnat/i-pacdec.adb
! a3c1b7ac824c83210b645d9844930746  gcc/ada/libgnat/i-pacdec.ads
! 034b515247f5323244463f9785732789  gcc/ada/libgnat/i-vxwoio.adb
! dc51e417813c470a86e22f1d90f5b7d5  gcc/ada/libgnat/i-vxwoio.ads
! 4066df12033769a2750654b34c693000  gcc/ada/libgnat/i-vxwork.ads
! 7878edb68c4a0574b248233d82feaa9a  gcc/ada/libgnat/i-vxwork__x86.ads
! 4718f1427322015766857fbe076f2642  gcc/ada/libgnat/interfac.ads
! f44e8eacf9b60bd871a56bfceba7552c  gcc/ada/libgnat/interfac__2020.ads
  c2121d458a346c0b9d83825c544b9516  gcc/ada/libgnat/ioexcept.ads
! a8eb2329946dd4041335c2c4cfd086af  gcc/ada/libgnat/libada.gpr
  9b37ec6e60899a7dadce7f301acc9eee  gcc/ada/libgnat/libgnat.gpr
! fbe275186bb4f8ccd7519acfa1499671  gcc/ada/libgnat/libgnat_common.gpr
  38f101ad4a6eba55ef694b1ab6315683  gcc/ada/libgnat/machcode.ads
! f7610ae81ab1953836221820adefcf41  gcc/ada/libgnat/memtrack.adb
! 06ef2789bee9fe70fc21740ae9cc9988  gcc/ada/libgnat/s-addima.adb
! c9b67f7a636510f2c0c1535bb58047ad  gcc/ada/libgnat/s-addima.ads
! 1f40342a29f0fd720d862e9bb8adcff5  gcc/ada/libgnat/s-addope.adb
! 150099cfa39e0417feebe825560bb517  gcc/ada/libgnat/s-addope.ads
! edcbe45b85a71c515a10b86c215ff948  gcc/ada/libgnat/s-aoinar.adb
! a94c7fd56d787604927b49d5a948443b  gcc/ada/libgnat/s-aoinar.ads
! b963f40f8c44c875400b2d24385dfe1a  gcc/ada/libgnat/s-aomoar.adb
! 8ec7597d2f39bc993676e61326ac07a1  gcc/ada/libgnat/s-aomoar.ads
! 724abb8ad34ffc809ef6d8f378ece28b  gcc/ada/libgnat/s-aotase.adb
! c9b8a1113d47313ed7e71fc00b45e2e9  gcc/ada/libgnat/s-aotase.ads
! 724705967c42197f78766497b8cb2caf  gcc/ada/libgnat/s-aridou.adb
! 6706eddcea301a7442198b9c25a4732d  gcc/ada/libgnat/s-aridou.ads
! fa34d55131238c43f5bb818fecfb1e7a  gcc/ada/libgnat/s-arit128.adb
! f1f9e4a0acdc798697e10f4f97374c76  gcc/ada/libgnat/s-arit128.ads
! 5d9f71c36bec06f2a2cddf0ad648276a  gcc/ada/libgnat/s-arit32.adb
! 5f2e8c5bd87ae36a0f231f37b78e6feb  gcc/ada/libgnat/s-arit32.ads
! db4b7e7f312a885f800a9b0b2390da7f  gcc/ada/libgnat/s-arit64.adb
! a770ecbdb06f951ce696cf5dc6cb0cb8  gcc/ada/libgnat/s-arit64.ads
! eda6d9d52b59ef9d7f4bd35380740fd2  gcc/ada/libgnat/s-assert.adb
! 3475fb68e180fa9ffc24757e13ffa35d  gcc/ada/libgnat/s-assert.ads
! 89a8e4ebb4f4d6a1f299ee4c70b38ae3  gcc/ada/libgnat/s-atacco.adb
! 73da84c2911c81e2bb2d5c7da24affb7  gcc/ada/libgnat/s-atacco.ads
! a2200418d528906de69a03eb220500da  gcc/ada/libgnat/s-atocou.adb
! d288d07e2928e4079050fbe2fd6b249f  gcc/ada/libgnat/s-atocou.ads
! 5636a5e5e4c157e452d9b777aafcee05  gcc/ada/libgnat/s-atocou__builtin.adb
! 39213656d9d7253db9958fbc307bda92  gcc/ada/libgnat/s-atoope.ads
! ae0bff4ba928e071e1ca0f189151b5f4  gcc/ada/libgnat/s-atopex.adb
! 7c1d743aa86f31546ea179eed88655a0  gcc/ada/libgnat/s-atopex.ads
! ea156537fca09ec56ce8e9ea0346f998  gcc/ada/libgnat/s-atopri.adb
! ff6bfb9ad40b36890a36144066f91d0f  gcc/ada/libgnat/s-atopri.ads
! 149ddefe25d79cbcf5af45c3fdf4e99c  gcc/ada/libgnat/s-auxdec.adb
! ae9cfbf461203475a7d0437a7291e7a9  gcc/ada/libgnat/s-auxdec.ads
! 5799a39a00affb9f78b4a40f139b018e  gcc/ada/libgnat/s-bignum.adb
! fff3c73cd248d0bd5ec4d933f4a02a69  gcc/ada/libgnat/s-bignum.ads
! 0c84fa80e88e2c251e4d1745491fa88b  gcc/ada/libgnat/s-bitfie.ads
! a392af178afb60cdb483f6ba15b8116d  gcc/ada/libgnat/s-bitops.adb
! cb49ae898d6e582fe7f19b1847baecc4  gcc/ada/libgnat/s-bitops.ads
! e3396ce6d41ed13ba87349e6fdd26efa  gcc/ada/libgnat/s-bituti.adb
! 3ec79db781410a69cd3576f8b52ec421  gcc/ada/libgnat/s-bituti.ads
! 94b178337353500385fe3c5c0269b6d1  gcc/ada/libgnat/s-boarop.ads
! 16b9d3fe36f3ca460efd54f04c9c415f  gcc/ada/libgnat/s-boustr.adb
! b38b16bc6d29a69c0d159bd166457f7d  gcc/ada/libgnat/s-boustr.ads
! 4ba314dba56623195907dea87d0c7cd8  gcc/ada/libgnat/s-bytswa.ads
! 7e8daeb8d5875b2f1358c80df02724e2  gcc/ada/libgnat/s-carsi8.adb
! a4eb6b99dd7e903ab96c9dccde2e38d5  gcc/ada/libgnat/s-carsi8.ads
! 3acc29c357d5cc5b55df4d6c099d43a1  gcc/ada/libgnat/s-carun8.adb
! a03cdc921383f51be86523612b4f0131  gcc/ada/libgnat/s-carun8.ads
! 81b033357704401f372f8b7299f11501  gcc/ada/libgnat/s-casi128.adb
! b4adb59738a4c0315ca1e87b6b7ffeb4  gcc/ada/libgnat/s-casi128.ads
! 98d185ac115b7e041a2c9fe25bd9e527  gcc/ada/libgnat/s-casi16.adb
! 72cdb2c3841eed1789fd14b11972b47e  gcc/ada/libgnat/s-casi16.ads
! 8f0852566b28134ef69a35f600e61969  gcc/ada/libgnat/s-casi32.adb
! fbb01b7caaadd443f3aa1a2959fa94ce  gcc/ada/libgnat/s-casi32.ads
! 194a88a2d8f349c8e6fe4ae08481a951  gcc/ada/libgnat/s-casi64.adb
! b460c434b669312e48ae1bc98a6019a8  gcc/ada/libgnat/s-casi64.ads
! c2c012c28a57899bc17c4941d32501bf  gcc/ada/libgnat/s-casuti.adb
! cc4c028493c27a7ca5912f17129647a4  gcc/ada/libgnat/s-casuti.ads
! fd0261d8962b502fa531fb330106e61f  gcc/ada/libgnat/s-caun128.adb
! 1b454c7494bb7bdcf64ecd58124c0f11  gcc/ada/libgnat/s-caun128.ads
! 6be474702b35e2af5f9b70d1b095c240  gcc/ada/libgnat/s-caun16.adb
! 86f9990dd8990a19277b74b36c7a3e6f  gcc/ada/libgnat/s-caun16.ads
! e8e143dee538fbf067bfe5e6f5e75968  gcc/ada/libgnat/s-caun32.adb
! 2be384170de0752609455511ee552eda  gcc/ada/libgnat/s-caun32.ads
! 178787d035404783b741c5e97f26bda4  gcc/ada/libgnat/s-caun64.adb
! 1c7dc251d5f7c2b1b62e6f185197b776  gcc/ada/libgnat/s-caun64.ads
! d64d371ef83ede99a2c278aed3483c77  gcc/ada/libgnat/s-chepoo.ads
! 58018206f82f7ca7410200ae03dfaf17  gcc/ada/libgnat/s-commun.adb
! 736037ee45f5551574043fe12d32296b  gcc/ada/libgnat/s-commun.ads
! ba403d2bc8cf0949aff2da2e4bf1a3cd  gcc/ada/libgnat/s-conca2.adb
! 9122876e19c5b9b0ebb360606dd2d7d1  gcc/ada/libgnat/s-conca2.ads
! f406e71765bcc9503d2c9de6e09d9c4e  gcc/ada/libgnat/s-conca3.adb
! 80bedac518f9e25a6c3d6af924cda6c8  gcc/ada/libgnat/s-conca3.ads
! ac682f044f2f813635c00484191c4daa  gcc/ada/libgnat/s-conca4.adb
! a4feb22f2f47af7f55b32d5e5611904d  gcc/ada/libgnat/s-conca4.ads
! 714985964dcc0b7073e4b5c6f129e4ab  gcc/ada/libgnat/s-conca5.adb
! d432e8240558d639b3ee646a2737e4bb  gcc/ada/libgnat/s-conca5.ads
! f6b94ef45be3ad24816011fa74617b7a  gcc/ada/libgnat/s-conca6.adb
! 79dcbe47e9245361d00944ea3b3234ba  gcc/ada/libgnat/s-conca6.ads
! 9067b577202bf77e72f185c1d6355afa  gcc/ada/libgnat/s-conca7.adb
! bde1303c7bac5e94a061453ddf309725  gcc/ada/libgnat/s-conca7.ads
! 709c473953cbcfd4336cef91db7e187d  gcc/ada/libgnat/s-conca8.adb
! 6e6e7b77843d02f96ebd2c52bbc2d72a  gcc/ada/libgnat/s-conca8.ads
! ddd1fdca7501078ef940f10cdf91f3f0  gcc/ada/libgnat/s-conca9.adb
! a352b6a4aad7f282b072ffd0dabddfb3  gcc/ada/libgnat/s-conca9.ads
! 7ea19ff29aa460c7de1da52fe4cd1751  gcc/ada/libgnat/s-crc32.adb
! a08cf5430788a273806e24140c7a2762  gcc/ada/libgnat/s-crc32.ads
! aaccede6def938c2ad85d9d1549cc8d9  gcc/ada/libgnat/s-crtl.ads
! 2c315491c1c502e40f15cc73f1b151f7  gcc/ada/libgnat/s-dfmkio.ads
! 532597236e2bf29ea240506ed2d1583e  gcc/ada/libgnat/s-dfmopr.ads
! 86fc51b4f6cf575e5c916e04e133b818  gcc/ada/libgnat/s-dgmgop.ads
! 34ec6187b72ca15bcf42884ea547367c  gcc/ada/libgnat/s-diflio.adb
! 46d9ccd5218a9b8c9f283f7782de5889  gcc/ada/libgnat/s-diflio.ads
! 6c4a0b553495093a1f3480abffed70cc  gcc/ada/libgnat/s-diflmk.ads
! 7bb5656c81dfb43b49decbb725cfa3ef  gcc/ada/libgnat/s-digemk.ads
! f06822575d65ff39c7601b3d36d58569  gcc/ada/libgnat/s-diinio.adb
! 1f5df624afa85dc0400745e83d5541bc  gcc/ada/libgnat/s-diinio.ads
! 1a141f292307279e99b187c98e808450  gcc/ada/libgnat/s-dilomk.ads
! bf939cbd1ca37e14cd1b398e10bb3249  gcc/ada/libgnat/s-dim.ads
! f6369901ed7af08499bf34c4d408f9c2  gcc/ada/libgnat/s-dimkio.ads
! 7fc5fa7e60d644d1b4ec14d883232a3f  gcc/ada/libgnat/s-dimmks.ads
! 9ec19e22364401d7d76c6f7be9043f21  gcc/ada/libgnat/s-direio.adb
! c53b8b539bb9040aa23d66a744b7b3a9  gcc/ada/libgnat/s-direio.ads
! c7db1cc4543deb8894cd5f586f40608f  gcc/ada/libgnat/s-dlmkio.ads
! 438d7f149986fd69595e3bc1f2bd1914  gcc/ada/libgnat/s-dlmopr.ads
! ddb1428e2a1f24e383a48d6cd4b22b53  gcc/ada/libgnat/s-dmotpr.ads
! 28f43708c010cf1a53c29ec40b211ce4  gcc/ada/libgnat/s-dorepr.adb
! 4de630227a5fae0cebf22b2102826afb  gcc/ada/libgnat/s-dorepr__fma.adb
! bd6a5f844ed0716238d14636ab8867a7  gcc/ada/libgnat/s-dourea.adb
! ae598e036b0ab59a2e0afe7146e52534  gcc/ada/libgnat/s-dourea.ads
! e57ab33a5d1a46aacdb08c8e7e22d2cc  gcc/ada/libgnat/s-dsaser.ads
! 0295120a824627adf1a156289ba090d7  gcc/ada/libgnat/s-dwalin.adb
! 59b36b20d841ca18c5998f4f2d599d25  gcc/ada/libgnat/s-dwalin.ads
! 52f22ee731f8e1bf496f603b855c1911  gcc/ada/libgnat/s-elaall.adb
! cac1c512c1f5281d901b72bd1ad23e5d  gcc/ada/libgnat/s-elaall.ads
! d88ff03299587e43686ca131d55eaa5f  gcc/ada/libgnat/s-excdeb.adb
! 8e8215d1b30b8beec939e92895f54ec0  gcc/ada/libgnat/s-excdeb.ads
! 7195cabfec3c8809c6e06d475b0f2e12  gcc/ada/libgnat/s-except.adb
! 979b8b2cc53d7b247c5364d1ffcd654a  gcc/ada/libgnat/s-except.ads
! c3adbca6dfef2ad49f0b53b3f27ea0bd  gcc/ada/libgnat/s-excmac__arm.adb
! e63347da9d4e287b765d61f103a85380  gcc/ada/libgnat/s-excmac__arm.ads
! ec2dc0125a2a97b45ee0f4fd91b0c109  gcc/ada/libgnat/s-excmac__gcc.adb
! d0af7bb01bf66f1ffbf23455f562243e  gcc/ada/libgnat/s-excmac__gcc.ads
! e26070b1ccd92c2011ed03640dc6f009  gcc/ada/libgnat/s-exctab.adb
! 7cad22f8093b4796dc6cb5609ceed12d  gcc/ada/libgnat/s-exctab.ads
! 553bb632b763cde5cb5d3062ef2bdb2e  gcc/ada/libgnat/s-exctra.adb
! cae836cf4ee92482786ebd821b288836  gcc/ada/libgnat/s-exctra.ads
! 6661c3027dc629acc37aa8429919f8da  gcc/ada/libgnat/s-exnflt.ads
! a89e277f3414a37826232879b2128aa1  gcc/ada/libgnat/s-exnint.adb
! 9f7bdbd54fe9c22abcb6b53e8f5665e1  gcc/ada/libgnat/s-exnint.ads
! 6af84a45e6a6e08b5898c753da680189  gcc/ada/libgnat/s-exnlfl.ads
! c63df6f0678643e895512637cce03e8a  gcc/ada/libgnat/s-exnllf.adb
! 34751fb016b49318e1a2f01e8337f99e  gcc/ada/libgnat/s-exnllf.ads
! 225a6ce8ec5e7039e84f5613771ff57c  gcc/ada/libgnat/s-exnlli.adb
! cb9d16be2c8e0f4ffe4198b563eb5616  gcc/ada/libgnat/s-exnlli.ads
! 31b5b4f6daa8094b6246cc8f186b9383  gcc/ada/libgnat/s-exnllli.ads
! 489f4069da8a0a02ed5f1455808ba854  gcc/ada/libgnat/s-expint.adb
! ac7e9bacad5acedf26d79048f7fcebe9  gcc/ada/libgnat/s-expint.ads
! 11fd18db45bf59f4fedf0504ab673388  gcc/ada/libgnat/s-explli.adb
! 84c083b09c22216a129cb6e599d545ea  gcc/ada/libgnat/s-explli.ads
! 15464b80f3a3d55236087d02d8c37af2  gcc/ada/libgnat/s-expllli.ads
! 45397bef5d4a976785b2a912ac316c98  gcc/ada/libgnat/s-explllu.ads
! 577543f6a4d765bbe821b51c07d376bf  gcc/ada/libgnat/s-expllu.adb
! 8304c09feb7ff460ceeae074337a95a2  gcc/ada/libgnat/s-expllu.ads
! 8374ec9c01d87444093923ea4c40ad7e  gcc/ada/libgnat/s-expmod.adb
! 1bbd9e743dd64e9ceff1b44efdf5bb7b  gcc/ada/libgnat/s-expmod.ads
! 7a359f2ede44f4fdd9e17f24ff5ff43f  gcc/ada/libgnat/s-exponn.adb
! 80f416a51f00bae9cd837d44d9e99802  gcc/ada/libgnat/s-exponn.ads
! 4daca817ca307a111967d860e456d882  gcc/ada/libgnat/s-exponr.adb
! 7436d7b9e030e44e4f17bdfbe02fc6b6  gcc/ada/libgnat/s-exponr.ads
! a2a97950c093c507007fb5dc958076a3  gcc/ada/libgnat/s-expont.adb
! 0990310b8dfbdd712a4cf76b4b8f684e  gcc/ada/libgnat/s-expont.ads
! 1abec7c9646730a26cb0d57b7d03f109  gcc/ada/libgnat/s-exponu.adb
! 9bce6e7edcce894b4287f113fc3ce31c  gcc/ada/libgnat/s-exponu.ads
! 14aebc8be36d90878bbf3fa74b6dfbaf  gcc/ada/libgnat/s-expuns.adb
! 6741d00029fe29eb43e510da1fc69348  gcc/ada/libgnat/s-expuns.ads
! 116ee624ff448ab30f1a9e7747800ea3  gcc/ada/libgnat/s-fatflt.ads
! 7b65ab71af2477773c9582b0bbb4ad21  gcc/ada/libgnat/s-fatgen.adb
! da49f8c178edae80d43f287c963f673d  gcc/ada/libgnat/s-fatgen.ads
! aa7305c0bd35922c2f84ae9452b0244b  gcc/ada/libgnat/s-fatlfl.ads
! 6bea259dd86e0e4dc7953af5518c37c9  gcc/ada/libgnat/s-fatllf.ads
! 573de5881617a30b3a53a1764f26f493  gcc/ada/libgnat/s-ficobl.ads
! fb4160a3ee3512a2f54e07c1a4461020  gcc/ada/libgnat/s-filatt.ads
! a0534b255ba50e2dc27dd7dc81ba6aca  gcc/ada/libgnat/s-fileio.adb
! ee2247ade5ce3b8ec5390c210f47fe7a  gcc/ada/libgnat/s-fileio.ads
! 0e375d977bfdc7ab866bddc81d6ed3d0  gcc/ada/libgnat/s-finmas.adb
! 2f87e771ca38c527faa4a0095f2ea437  gcc/ada/libgnat/s-finmas.ads
! e774ada783b29576b5d0e552fe80cec9  gcc/ada/libgnat/s-finroo.adb
! 7eb054c4146be27b88a1d82e9dd7e9fd  gcc/ada/libgnat/s-finroo.ads
! 8f06d90ed6b0d19f0ac52019c3f0cab7  gcc/ada/libgnat/s-flocon.adb
! 72bcf78228422487b353b3ef293b47b5  gcc/ada/libgnat/s-flocon.ads
! 2868a054ff8a75f08871444752806f19  gcc/ada/libgnat/s-flocon__none.adb
! d9100ac54d886a820bc761d4b1011367  gcc/ada/libgnat/s-fode128.ads
! 6e1b8086647695ea252a985c234187d6  gcc/ada/libgnat/s-fode32.ads
! 97bd21ed38f484a3dcd79f726721a75c  gcc/ada/libgnat/s-fode64.ads
! 8b4261f24818813edf49d33e80104862  gcc/ada/libgnat/s-fofi128.ads
! 8f4fec52d2e87d175e3014802dfb4895  gcc/ada/libgnat/s-fofi32.ads
! 75db4e558b17136337a31385ac750638  gcc/ada/libgnat/s-fofi64.ads
! 92018ac460ab4ff9b04e302e652d64c4  gcc/ada/libgnat/s-fore_d.adb
! 8f1d263e2e28dfaf142b43c82f706b15  gcc/ada/libgnat/s-fore_d.ads
! 76e30b1e40552b96fc426faf3b61cdfd  gcc/ada/libgnat/s-fore_f.adb
! 512b09cdec5d879f25798a7abf7c58c6  gcc/ada/libgnat/s-fore_f.ads
! ba346875ad154b36248e6079d3289fbc  gcc/ada/libgnat/s-forrea.adb
! bd502dda780d8937cb41db3f3f0e2e2b  gcc/ada/libgnat/s-forrea.ads
! 5ca3fdd5ab1b38ab57ba492007c4e17c  gcc/ada/libgnat/s-gearop.adb
! cb3a5533d9038f16078dc2c96ea9af4a  gcc/ada/libgnat/s-gearop.ads
! ff6a9f72bc1e109569388dee6b3254e0  gcc/ada/libgnat/s-genbig.adb
! 23caa17005b767020406d5758fe2cb02  gcc/ada/libgnat/s-genbig.ads
! 245b86cdfb6f5b2c7e4b1d771dc2ffb8  gcc/ada/libgnat/s-geveop.adb
! 0f77fdbf1ddfe614fe464e248db0be4a  gcc/ada/libgnat/s-geveop.ads
! ca37fcc1d27a452eec9cba482d681604  gcc/ada/libgnat/s-gloloc.adb
! 291125b5723bd3b57325af48bc88aaf9  gcc/ada/libgnat/s-gloloc.ads
! ee8b7aa312e7df739cdb1b51fd391f28  gcc/ada/libgnat/s-gloloc__mingw.adb
! 607d78f697323e569aee853d829f1c30  gcc/ada/libgnat/s-htable.adb
! 79fcc0ab2eff85c19ba31c24ce3dac2a  gcc/ada/libgnat/s-htable.ads
! b4e9e83bee32a0c9f2068f0fc433f003  gcc/ada/libgnat/s-imageb.adb
! e1839397ca6b095c61540f48bdcec394  gcc/ada/libgnat/s-imageb.ads
! 651a2d822562255008ecccb31964c0c2  gcc/ada/libgnat/s-imaged.adb
! 452b38a09fec27d07893c95b85eff1e3  gcc/ada/libgnat/s-imaged.ads
! 1d329e9ffe103ffc7f649a7490242e7f  gcc/ada/libgnat/s-imagef.adb
! 7cf85c9907120bcadad87caadef2f093  gcc/ada/libgnat/s-imagef.ads
! 92480b8a6b8718744720309b04377f30  gcc/ada/libgnat/s-imagei.adb
! 15ed749cfd087715749570093f6948c9  gcc/ada/libgnat/s-imagei.ads
! 248bd7892456dcfe650f4c49efa663ec  gcc/ada/libgnat/s-imagen.adb
! f8ef17e64d325b7b0fa5aaf485dd6771  gcc/ada/libgnat/s-imagen.ads
! 3e3a8bbd324c67782fbb8368d69de778  gcc/ada/libgnat/s-imager.adb
! 681988682571761db81f040d27cd3d2e  gcc/ada/libgnat/s-imager.ads
! 0d68d1ad7fb1587a6c7105bd58e5bd2b  gcc/ada/libgnat/s-imageu.adb
! 4ea01eda44514bb5a72429239a23b1fe  gcc/ada/libgnat/s-imageu.ads
! 3c2ac02f10fef8b6aa5408262dc6de52  gcc/ada/libgnat/s-imagew.adb
! 308e6733c4a6787518f0782988528974  gcc/ada/libgnat/s-imagew.ads
! b9c24f0c023479442ac713b3a06180cf  gcc/ada/libgnat/s-imde128.ads
! d3d1269625e48a465d1d2b60bf6251b6  gcc/ada/libgnat/s-imde32.ads
! 19476a04aa026d230c11819398de1f5a  gcc/ada/libgnat/s-imde64.ads
! 3ecdcf716e22ce525fa30b54c417c742  gcc/ada/libgnat/s-imen16.ads
! 5c06c21ac0900e3cf7b072cd507d3088  gcc/ada/libgnat/s-imen32.ads
! e004b6a7d15913aa0f309abd059da2db  gcc/ada/libgnat/s-imenu8.ads
! fb3f989ac16f1d0c3f01f460eb9ea88a  gcc/ada/libgnat/s-imfi128.ads
! b6e806508f463b1a6230a39a7f187b9a  gcc/ada/libgnat/s-imfi32.ads
! 4233a1083da387fe94701a0ebd1fd89f  gcc/ada/libgnat/s-imfi64.ads
! b01d3525f2ba9c2e0382c73b74958974  gcc/ada/libgnat/s-imgbiu.adb
! 344d1b07118617ea19c141aeaddc82e9  gcc/ada/libgnat/s-imgbiu.ads
! 01c8d9d748dfc3d52a24617c8ec42b12  gcc/ada/libgnat/s-imgboo.adb
! d70bfd0182c35ed6698d05e407ed0746  gcc/ada/libgnat/s-imgboo.ads
! bcbc3c5f5403fd63ecf26e8e4be62f4c  gcc/ada/libgnat/s-imgcha.adb
! 3f43530ee5e725e3fe512ac6e04fa150  gcc/ada/libgnat/s-imgcha.ads
! a4cfaf5f5bb956dacf0f4dd61d51ded7  gcc/ada/libgnat/s-imgflt.ads
! 7244ff38a45bff2392df3300ab8893f6  gcc/ada/libgnat/s-imgint.adb
! ad6ba27627d5e2b76a88beff308ee1fa  gcc/ada/libgnat/s-imgint.ads
! 93199d606e36963200458bfe9e8dbd1b  gcc/ada/libgnat/s-imglfl.ads
! 6143e32c8d26c9501b55d18f2ca8c0a3  gcc/ada/libgnat/s-imgllb.adb
! 51f4e0bdfb45d3b326b8db3beae9dfd1  gcc/ada/libgnat/s-imgllb.ads
! f2d644d41f9bc93bd64882b13b4290a7  gcc/ada/libgnat/s-imgllf.ads
! 351c40b473199ad347a47a0ae3bf500b  gcc/ada/libgnat/s-imglli.adb
! 527def7e0930c3bdfe1f5f5e24214cba  gcc/ada/libgnat/s-imglli.ads
! 24165a6c9ecb128ef8469c64279ada04  gcc/ada/libgnat/s-imglllb.ads
! 10117c5d1fa390691e9ca04843e76d4b  gcc/ada/libgnat/s-imgllli.ads
! 1e5df5459175bd2e37c428f9ef8a5a21  gcc/ada/libgnat/s-imglllu.ads
! 22078c4ca41d578b245c2fad9d8033f9  gcc/ada/libgnat/s-imglllw.ads
! f5cf38ea8309630dc3c308e2678bae42  gcc/ada/libgnat/s-imgllu.adb
! 58083eb683482374bbf030fa39aa7f87  gcc/ada/libgnat/s-imgllu.ads
! d872df006c0a2e200580c34f3225bc77  gcc/ada/libgnat/s-imgllw.adb
! 16b3788ceb68446afd0c5f1a2afb6cb9  gcc/ada/libgnat/s-imgllw.ads
! fefe5c44ea532d63bff7335658d5b7c7  gcc/ada/libgnat/s-imgrea.adb
! 7eddcecdc17e121ec2a264656dc359f4  gcc/ada/libgnat/s-imgrea.ads
! 5fe5f99698e2909d6ef7f40c3c2273d0  gcc/ada/libgnat/s-imguns.adb
! 49fa4baf1ee81b45202d22a5344cbe14  gcc/ada/libgnat/s-imguns.ads
! 87adf7b3ba7f785827442f507069ba9b  gcc/ada/libgnat/s-imguti.adb
! 7ac96728917421da97f09a5da00c22de  gcc/ada/libgnat/s-imguti.ads
! 902ab828ef6cf26faf2bc93523613752  gcc/ada/libgnat/s-imgwch.adb
! adab05bc12343a7df732defe4afd821e  gcc/ada/libgnat/s-imgwch.ads
! 5cc89e3686cb238be0714258032b40e4  gcc/ada/libgnat/s-imgwiu.adb
! f13b9f8b71f4dcbab7e4727ecd2a8959  gcc/ada/libgnat/s-imgwiu.ads
! 28f1aca2bed9eaeec8f34295c6b860f7  gcc/ada/libgnat/s-io.adb
! 6b57c2fec73ebae7cf6135d6915c91bf  gcc/ada/libgnat/s-io.ads
! 320f3f41a7f7a2185831585e3707edb3  gcc/ada/libgnat/s-llflex.ads
! c79a38f6fe9a7007ec08da6c860312c0  gcc/ada/libgnat/s-maccod.ads
! 301039cc524df87a3e5688c4d1c05818  gcc/ada/libgnat/s-mantis.adb
! f623c088dca12ea5ded580e73c4e54c2  gcc/ada/libgnat/s-mantis.ads
! 4027896219be3509e6773ce748cb8b32  gcc/ada/libgnat/s-mastop.adb
! defa3dbe4a1d2b1ec69483ec24a937e4  gcc/ada/libgnat/s-mastop.ads
! 95034e3f9415eae054fb876fbeab6291  gcc/ada/libgnat/s-memcop.ads
! 085c243e60a5ccd9184dfcaae766d134  gcc/ada/libgnat/s-memory.adb
! cfe60c711f02afa308070e738b95734b  gcc/ada/libgnat/s-memory.ads
! 07e0782982fdbcbfc304a2b2bf18172d  gcc/ada/libgnat/s-mmap.adb
! b6e867413d7906404727f047103b4e25  gcc/ada/libgnat/s-mmap.ads
! 56463b134804444a2ba3800440ec7766  gcc/ada/libgnat/s-mmauni__long.ads
! f66b8196c0a83d867c7e14e71b2068ec  gcc/ada/libgnat/s-mmosin__mingw.adb
! fc5fcfd874cb57520e557654ab11d530  gcc/ada/libgnat/s-mmosin__mingw.ads
! 2127ce4045f7ef9ebb47c2376d701fc6  gcc/ada/libgnat/s-mmosin__unix.adb
! d3fc5f9974b69fe0bcfd7165d5a0d0ee  gcc/ada/libgnat/s-mmosin__unix.ads
! 54717e96f8ab0a23f51ee72f054b99a0  gcc/ada/libgnat/s-multip.adb
  c4045ad22005510940d70e1a445db431  gcc/ada/libgnat/s-multip.ads
! cb33954d55679fea62ec3fdc6aa801b1  gcc/ada/libgnat/s-objrea.adb
! 3bcd2b88b0abe704df34a7a2090cf029  gcc/ada/libgnat/s-objrea.ads
! 24fa35de602c7ff23642c6edd5468127  gcc/ada/libgnat/s-optide.adb
! 2c0de527ccbc5debea94e065b1fb7a33  gcc/ada/libgnat/s-os_lib.adb
! 9421da0ca0b42a3dbb96a44737d7603d  gcc/ada/libgnat/s-os_lib.ads
! 1caf4649068df2c49e1b346f53d65371  gcc/ada/libgnat/s-osprim.ads
! 0aaeb300f8be8dac76c8d40256197cd9  gcc/ada/libgnat/s-osprim__darwin.adb
! ad65a0d332575119d56e88f119b92c3f  gcc/ada/libgnat/s-osprim__lynxos.ads
! 3aeadefbcc4ef90f22767f4537da3828  gcc/ada/libgnat/s-osprim__mingw.adb
! abe705ddf10b18c36ec0e430d84e2564  gcc/ada/libgnat/s-osprim__posix.adb
! 0a62049a92487c574ce8d1c72e15894f  gcc/ada/libgnat/s-osprim__posix2008.adb
! 8a84c7ca92c5c4741d948ea4287d6f47  gcc/ada/libgnat/s-osprim__rtems.adb
! 19c20a2e1787a04edbf5de909e92a8c0  gcc/ada/libgnat/s-osprim__solaris.adb
! 4b3fff34030828ac71b2b3d0cf00a6e5  gcc/ada/libgnat/s-osprim__unix.adb
! 5a63c03b026252de5cb564fd63737478  gcc/ada/libgnat/s-osprim__x32.adb
! d25641aaf33d7f666fbb3772c363be99  gcc/ada/libgnat/s-pack03.adb
! 9f4fdf3fd49f0f3b2f08a83f464d9d96  gcc/ada/libgnat/s-pack03.ads
! 200fe2e72e23cc4a94c006cf7b8f4f13  gcc/ada/libgnat/s-pack05.adb
! 275f3c1444598f8a459f98148a4a4624  gcc/ada/libgnat/s-pack05.ads
! 33eab0ca9722d477c99180ec7cff8b88  gcc/ada/libgnat/s-pack06.adb
! 3ffbf84f7c40e6927d7f7488a530cfca  gcc/ada/libgnat/s-pack06.ads
! 4c826ce8873961725512d47fa5a701cc  gcc/ada/libgnat/s-pack07.adb
! ba6a5e2f222e8cbc22d4062d2d96177c  gcc/ada/libgnat/s-pack07.ads
! 1cd9d4020044ca4ec1173ca860b55489  gcc/ada/libgnat/s-pack09.adb
! b714d2769823db0726a8b9803df67c61  gcc/ada/libgnat/s-pack09.ads
! ef452b0122f53c9ec7af6d40117e99fc  gcc/ada/libgnat/s-pack10.adb
! 0c9fe3d7c6873c7ba9215a2fd0995744  gcc/ada/libgnat/s-pack10.ads
! 5929ace58ef0d945e001f1b953648f6d  gcc/ada/libgnat/s-pack100.adb
! 90ce2ebf8b6013ead9513c41918b0523  gcc/ada/libgnat/s-pack100.ads
! 0cf955b591b2beab99fab003c1b44bd1  gcc/ada/libgnat/s-pack101.adb
! 06be736dbbf4322a19311ffa0b87237b  gcc/ada/libgnat/s-pack101.ads
! b22f78e410bdb91ee1299df0626bef3d  gcc/ada/libgnat/s-pack102.adb
! a8b8cb6dc717506ce03b3a9f2172eeaf  gcc/ada/libgnat/s-pack102.ads
! 42cfef1b4ab1e04035188f92f464abb9  gcc/ada/libgnat/s-pack103.adb
! cfcfdbadd3aa4becff8fdf90be367901  gcc/ada/libgnat/s-pack103.ads
! d9ba365f6d51ef3bb645fccec31c1b3e  gcc/ada/libgnat/s-pack104.adb
! 68da42587a578c34ab3094291e775c8d  gcc/ada/libgnat/s-pack104.ads
! 07f5461e55d7c6de90dbc02faa721e1a  gcc/ada/libgnat/s-pack105.adb
! 2918a814fcf772d70c1526af81064584  gcc/ada/libgnat/s-pack105.ads
! d094e04cd5e5df84c91531a7969f4acb  gcc/ada/libgnat/s-pack106.adb
! 3af114ad20d5b5839f6ad3de7f8dae2e  gcc/ada/libgnat/s-pack106.ads
! c00ac5825bfc8a32510508d0b912e69f  gcc/ada/libgnat/s-pack107.adb
! 2fde88f13548137aac68ee5ee6d3ed33  gcc/ada/libgnat/s-pack107.ads
! 046b062970f1d96256b523e455051514  gcc/ada/libgnat/s-pack108.adb
! 3b9c89ce7b8d306e6c6314576f4b0399  gcc/ada/libgnat/s-pack108.ads
! 077d24be1b66af1b9949cdee2ef85528  gcc/ada/libgnat/s-pack109.adb
! b9840758b6b59e07a4562b00a3ebbb00  gcc/ada/libgnat/s-pack109.ads
! 6cc07afd261648cf3ef8127a98eace28  gcc/ada/libgnat/s-pack11.adb
! c1f057c595b42fef8e0e28b219707d36  gcc/ada/libgnat/s-pack11.ads
! d296ebbe34f969ec2b51db5574a3e705  gcc/ada/libgnat/s-pack110.adb
! 48646c423fabcc7d0fbdc6c9d7cb15ea  gcc/ada/libgnat/s-pack110.ads
! 7b3695ea6e1cd9066189923def9c37a2  gcc/ada/libgnat/s-pack111.adb
! ff46d57a89537cf3080a661be245ca32  gcc/ada/libgnat/s-pack111.ads
! 0bcaac1733f959d253f2d94ca965558d  gcc/ada/libgnat/s-pack112.adb
! c87e1b3ae1831e6fb8daba55303e212c  gcc/ada/libgnat/s-pack112.ads
! 84d4a9102e1fc4fb2da464a79c7f5682  gcc/ada/libgnat/s-pack113.adb
! 1feb42509683b1fbd90cbad7eee64b8e  gcc/ada/libgnat/s-pack113.ads
! 8cab8151b6ebb7ea6cbf91872817e6e1  gcc/ada/libgnat/s-pack114.adb
! 822a18d9d2f0bbff595f9a8a36a6f816  gcc/ada/libgnat/s-pack114.ads
! dceeb58aacd13dee3a7198388278a889  gcc/ada/libgnat/s-pack115.adb
! e0423d6b821fe5be2fe6f10f86893169  gcc/ada/libgnat/s-pack115.ads
! b191152b08bac732701ab0e1b69e1a99  gcc/ada/libgnat/s-pack116.adb
! 498929ca30cc266c8d7c1f4938894c58  gcc/ada/libgnat/s-pack116.ads
! 4d0dc6673cceef2b3baead8d0ca482f4  gcc/ada/libgnat/s-pack117.adb
! 6edc43307f9608895c18d1b66c6b755b  gcc/ada/libgnat/s-pack117.ads
! 251f135935b416801f50357d5fc8cbe5  gcc/ada/libgnat/s-pack118.adb
! dbd959ac84d4d4fd10d079dc0ef15758  gcc/ada/libgnat/s-pack118.ads
! 42ddafbfba2e12a8ed6bc71728db5201  gcc/ada/libgnat/s-pack119.adb
! d44074326f428581711dbd66fb40c8b5  gcc/ada/libgnat/s-pack119.ads
! b533bb2865277777a5c835479a206cec  gcc/ada/libgnat/s-pack12.adb
! 776a911286eb5bbb84a2ed1b21df47c1  gcc/ada/libgnat/s-pack12.ads
! a26e39e2d175dabb3c67ab910068a0e5  gcc/ada/libgnat/s-pack120.adb
! 26e07342045744b2735a079052637d18  gcc/ada/libgnat/s-pack120.ads
! 58b2f60440236abc252379562b404787  gcc/ada/libgnat/s-pack121.adb
! 7a12d4f85dd410ecd74efa9a23a55b7c  gcc/ada/libgnat/s-pack121.ads
! 5b7b3751acc238a2a5d2c5ff5bfef272  gcc/ada/libgnat/s-pack122.adb
! ed46f9c526a063b9341c15a1615fdb9c  gcc/ada/libgnat/s-pack122.ads
! 68434c7b491447e3f4d788d237dfe6d4  gcc/ada/libgnat/s-pack123.adb
! c7d513350ca1f0a9e4fa5524fdeab580  gcc/ada/libgnat/s-pack123.ads
! 0ba596dab560e2109f77401658bfd753  gcc/ada/libgnat/s-pack124.adb
! 3542acf00ae6a394c1489da6aacdc63c  gcc/ada/libgnat/s-pack124.ads
! b485ffbd119b826a132325a2f10d320a  gcc/ada/libgnat/s-pack125.adb
! d9620b1cbd51ef518bbdb811998042a0  gcc/ada/libgnat/s-pack125.ads
! 11f86b513e37a70a0ee9119126239697  gcc/ada/libgnat/s-pack126.adb
! a348fcaa9e1626d5ce710e7b3984aae7  gcc/ada/libgnat/s-pack126.ads
! edbbe5cb5b650103a9e2054944ec8da7  gcc/ada/libgnat/s-pack127.adb
! b3dfd962f2a3caf94a005864af38bbe6  gcc/ada/libgnat/s-pack127.ads
! 8300e8e576b668fb9f307fb898b63d2c  gcc/ada/libgnat/s-pack13.adb
! 54d9552362a662d00f7dd2eaf1058d45  gcc/ada/libgnat/s-pack13.ads
! 11b1d6fb847a8be88db3a2c427f7238b  gcc/ada/libgnat/s-pack14.adb
! 1e461003362cf711f620b0e2298a02c6  gcc/ada/libgnat/s-pack14.ads
! 8be4fb050d96e472803880bbfb909e9a  gcc/ada/libgnat/s-pack15.adb
! 8ec5f5d58993982c172b62616d07c1aa  gcc/ada/libgnat/s-pack15.ads
! f522cdc2215f8bee278cd7d69e655745  gcc/ada/libgnat/s-pack17.adb
! 1412b1efbd1d1566d0be2d2637f6d0d4  gcc/ada/libgnat/s-pack17.ads
! 8da3c2d3ced9ab248246db267ae53d14  gcc/ada/libgnat/s-pack18.adb
! ae932c5a47b74e54df482ddee13848cc  gcc/ada/libgnat/s-pack18.ads
! c606782df34fcefb55bc6c57652c06e4  gcc/ada/libgnat/s-pack19.adb
! ef72f7ac4927751dbbdb49182c118fde  gcc/ada/libgnat/s-pack19.ads
! 0aa5ea09b0e9d11b3d3b96b969b11451  gcc/ada/libgnat/s-pack20.adb
! acba69dad08d96069cf50b32b401a3c5  gcc/ada/libgnat/s-pack20.ads
! dbd70945a0cc915a52916b62fa0282d0  gcc/ada/libgnat/s-pack21.adb
! 82e252ff8dd4349f012aa37724978a24  gcc/ada/libgnat/s-pack21.ads
! d7a7552ee84103ba9b2d41776c1d3bb8  gcc/ada/libgnat/s-pack22.adb
! 549721bd8074a3bc6bcc2da729af406c  gcc/ada/libgnat/s-pack22.ads
! a3bb100ef436c6ee9847476f0e05a178  gcc/ada/libgnat/s-pack23.adb
! 2e7981b238752a423ae838743f0b3ec7  gcc/ada/libgnat/s-pack23.ads
! dccc69a737f4f0da16a1c71db552c405  gcc/ada/libgnat/s-pack24.adb
! 45606d02d24d719ce6bbd353750f7ab3  gcc/ada/libgnat/s-pack24.ads
! fc2e1dcdcc46330e7343ef1231f0d996  gcc/ada/libgnat/s-pack25.adb
! 142f20da741d936f19b23d31509afa75  gcc/ada/libgnat/s-pack25.ads
! 4338247777594e5e245b6467a5a73947  gcc/ada/libgnat/s-pack26.adb
! eb325d24d6e07ebc0c673718dc0dfeaa  gcc/ada/libgnat/s-pack26.ads
! 961abf78d747c2a5570a1fe54c97651e  gcc/ada/libgnat/s-pack27.adb
! e4bbcf5eeac32668eba63969bd601c20  gcc/ada/libgnat/s-pack27.ads
! 15befc690db3987847a7e37e9f702e90  gcc/ada/libgnat/s-pack28.adb
! 266c1cfc03bf30b90ebd3b9097014735  gcc/ada/libgnat/s-pack28.ads
! d4bb9655fd743eb7451b2bdada64b3b6  gcc/ada/libgnat/s-pack29.adb
! 474a087eead66708fd59eb9dd09f7037  gcc/ada/libgnat/s-pack29.ads
! 2bd7ca0d7115bab0823580b2c54d26f1  gcc/ada/libgnat/s-pack30.adb
! c11f1d0d888965ae7e9f8dab57d67d7f  gcc/ada/libgnat/s-pack30.ads
! 8327f99f704ba593a886122f8f335a8f  gcc/ada/libgnat/s-pack31.adb
! ef2bf47153095b2d1ab9acc96023d233  gcc/ada/libgnat/s-pack31.ads
! f5f22afa53d0298aa1a64948924f09ca  gcc/ada/libgnat/s-pack33.adb
! 542d852f26854a95bc50324bd4e156a2  gcc/ada/libgnat/s-pack33.ads
! 3fc27b698884290d290a68ac6eb4f7f3  gcc/ada/libgnat/s-pack34.adb
! d271ac237f014eec2c80b33ac5438f40  gcc/ada/libgnat/s-pack34.ads
! 84468a9e4ecc0b11ae84c8ca0e488b13  gcc/ada/libgnat/s-pack35.adb
! 97585cd3da6a64d517be8256487cb13a  gcc/ada/libgnat/s-pack35.ads
! 748ad7b25d66626b9b2de17dfb8e21f5  gcc/ada/libgnat/s-pack36.adb
! 2cdc52e622da8b6097778e9ee07dc151  gcc/ada/libgnat/s-pack36.ads
! 8cba9c8335c3396d5668ce014a5d765e  gcc/ada/libgnat/s-pack37.adb
! 8376d58a09b83d9786cec955d691838a  gcc/ada/libgnat/s-pack37.ads
! 547abeac04fff297d844c56789374bb6  gcc/ada/libgnat/s-pack38.adb
! af9d638c5b5d7e02a7ea81321a801c2b  gcc/ada/libgnat/s-pack38.ads
! 652375d41682361ac2236e1200d43458  gcc/ada/libgnat/s-pack39.adb
! e6c131053689f7b9d4dfafcd86823441  gcc/ada/libgnat/s-pack39.ads
! 72793ae836c66abe332921ae2ba80fb4  gcc/ada/libgnat/s-pack40.adb
! 12b6cc1bd936e14c67aa670d9d984817  gcc/ada/libgnat/s-pack40.ads
! 3b498d338ade5164b03a4839563c808d  gcc/ada/libgnat/s-pack41.adb
! 44757dfb4c7f2d06639b30d566897d6f  gcc/ada/libgnat/s-pack41.ads
! fb0b740d0316319630965f1380f6d976  gcc/ada/libgnat/s-pack42.adb
! d2f81524fbb5783bf83088dd8c0b2a59  gcc/ada/libgnat/s-pack42.ads
! 159d7e6be00a385ae600f1c7dd5c0ade  gcc/ada/libgnat/s-pack43.adb
! e73444ecb59901dc4abbc58639956409  gcc/ada/libgnat/s-pack43.ads
! c68e4525acde084bd70752a3500dab9d  gcc/ada/libgnat/s-pack44.adb
! b29f166d54367d94a0a3e91949aa330c  gcc/ada/libgnat/s-pack44.ads
! 50f7527ef2809e90142196287948fa00  gcc/ada/libgnat/s-pack45.adb
! 8a53b6032fcbc1d7b93fcd873897043c  gcc/ada/libgnat/s-pack45.ads
! 1f5dda181e843531fa9e3093801bbbc2  gcc/ada/libgnat/s-pack46.adb
! 371bca975e84150c5f7068988f1e2d5d  gcc/ada/libgnat/s-pack46.ads
! 11a721a1b28c625b488e9223a4a4730d  gcc/ada/libgnat/s-pack47.adb
! 74cb086335051c23116b832b90d3e975  gcc/ada/libgnat/s-pack47.ads
! 354f8a9bd3762f8ce6746fee0898074a  gcc/ada/libgnat/s-pack48.adb
! 8e71e801d6d265ea5748558db23d8529  gcc/ada/libgnat/s-pack48.ads
! 5f68b98b250d12cb939cb280a626e41c  gcc/ada/libgnat/s-pack49.adb
! 9ed8563c6803ba87054e5e6ed0fe3172  gcc/ada/libgnat/s-pack49.ads
! 331bdaac9a953cd06c707d447ded824e  gcc/ada/libgnat/s-pack50.adb
! 4e932532d50a2e3d316983284f5fbbb3  gcc/ada/libgnat/s-pack50.ads
! ed213cda9f438d7317075394e982e991  gcc/ada/libgnat/s-pack51.adb
! 317a090e189736eab0a4d6c0262e79c2  gcc/ada/libgnat/s-pack51.ads
! 706951de51a1cf67d9b8e8a8333d45e8  gcc/ada/libgnat/s-pack52.adb
! 4e89ae5a06c58f595c19d414e616c26b  gcc/ada/libgnat/s-pack52.ads
! 2ea5ca1f3c3f1297efcb6669bdd25de5  gcc/ada/libgnat/s-pack53.adb
! 78dc3833025da81b67b180dab7aaab5c  gcc/ada/libgnat/s-pack53.ads
! fa106ce649ac7b7876eeb98909e269a1  gcc/ada/libgnat/s-pack54.adb
! ff68618ba5a05e29e52ef77594332a81  gcc/ada/libgnat/s-pack54.ads
! 3971cefd060fabf107100f794f19c8e2  gcc/ada/libgnat/s-pack55.adb
! e9e426b18eb8e9830d6beb55e6a5c367  gcc/ada/libgnat/s-pack55.ads
! 322ab3b8d960968e1cdb7f01a99c7d1b  gcc/ada/libgnat/s-pack56.adb
! 4180f1cf959bcee1092f8940cf385bd7  gcc/ada/libgnat/s-pack56.ads
! 70bb967624cba3ef94d56ed57c13d9c8  gcc/ada/libgnat/s-pack57.adb
! 04878eb14283c77a496b322d10b52ab0  gcc/ada/libgnat/s-pack57.ads
! ad7203f2865a40b3ba5f2b1a07ca4f75  gcc/ada/libgnat/s-pack58.adb
! 8cbc0cb4432ba917d87bd6e1ab313cdf  gcc/ada/libgnat/s-pack58.ads
! 4f81c3b6d3e98fb5dd24acc16dac5025  gcc/ada/libgnat/s-pack59.adb
! b66b11c529d3eec96a2313a5aa36d3ad  gcc/ada/libgnat/s-pack59.ads
! 7a48724ff0d51d61d8192df9f436f4a3  gcc/ada/libgnat/s-pack60.adb
! 5df289de8808f48a2f5516bc4b0a5bb4  gcc/ada/libgnat/s-pack60.ads
! c96af3de8c1763a3667767aab0d438c9  gcc/ada/libgnat/s-pack61.adb
! 074d77cbd9f9ea8d107a4ba0a4c43942  gcc/ada/libgnat/s-pack61.ads
! e808f4ecff83122e74edc599653d745a  gcc/ada/libgnat/s-pack62.adb
! 3c81a32d97b263ebe2943d02906f475c  gcc/ada/libgnat/s-pack62.ads
! e269ae7c9708de1af4f73d5c9c1a6c64  gcc/ada/libgnat/s-pack63.adb
! af6d464962400ffe489fa0f7796f971d  gcc/ada/libgnat/s-pack63.ads
! 3fddb1973e7b7c4110eeef1bb7a26933  gcc/ada/libgnat/s-pack65.adb
! e00cd0419d8bf5ff5f387ebc64d714a7  gcc/ada/libgnat/s-pack65.ads
! 1fb5d5bf75ab30e984b001058e3c5c41  gcc/ada/libgnat/s-pack66.adb
! 74b3a5129e650074921b39e12329e289  gcc/ada/libgnat/s-pack66.ads
! 906e2764f743b49f8f506093c310ac66  gcc/ada/libgnat/s-pack67.adb
! 9d4cc6f3d92876f167965a07c70995ef  gcc/ada/libgnat/s-pack67.ads
! 252c2651a4f9105d29ab6812f2c128f5  gcc/ada/libgnat/s-pack68.adb
! d32b4b99e48cec1376166d858a033058  gcc/ada/libgnat/s-pack68.ads
! e1f1b4fb54310e1e5bb7decc4918ba82  gcc/ada/libgnat/s-pack69.adb
! 891149b57b838d1d1bd09fd60d9169da  gcc/ada/libgnat/s-pack69.ads
! ae6d2cd0af5744d45a1789ace9ba9c69  gcc/ada/libgnat/s-pack70.adb
! 2645bdecefbd9dd6b9d2fc8689921ebe  gcc/ada/libgnat/s-pack70.ads
! 45c23b129a95c944f5343d38bf11c74c  gcc/ada/libgnat/s-pack71.adb
! f1f35828542b58de2b58fec481c724f4  gcc/ada/libgnat/s-pack71.ads
! df0873f2ca1d07f0bf1c48408fb73f95  gcc/ada/libgnat/s-pack72.adb
! be24fccf4883510779ec63bb7d8f6c05  gcc/ada/libgnat/s-pack72.ads
! c1a55806463b2eaaa090b7ce9a45a2ff  gcc/ada/libgnat/s-pack73.adb
! 2067ad1839efccf7616c4a6b8118e241  gcc/ada/libgnat/s-pack73.ads
! a3ecaa80d0a25e73d77a035e6d80ff51  gcc/ada/libgnat/s-pack74.adb
! 3376d6cc673fe8f845952c51f35ae2ba  gcc/ada/libgnat/s-pack74.ads
! 545a0ee374e5a60a3a556d11e10d3d74  gcc/ada/libgnat/s-pack75.adb
! 5fa908d0c5cef25e97cb880352b9cd90  gcc/ada/libgnat/s-pack75.ads
! 9e7254036947a67bd83634148711b041  gcc/ada/libgnat/s-pack76.adb
! 986131959959f183b7888b6bc1a21409  gcc/ada/libgnat/s-pack76.ads
! a44651e136eb214e7414a6573622b0b2  gcc/ada/libgnat/s-pack77.adb
! 0051621cabdc1e845e0350a0123c02cb  gcc/ada/libgnat/s-pack77.ads
! 07335c628bdf07973719163e214b85fb  gcc/ada/libgnat/s-pack78.adb
! 10aef6932b8066282858128d2d04911b  gcc/ada/libgnat/s-pack78.ads
! 00f0665ba2af061338280741bdfbafbe  gcc/ada/libgnat/s-pack79.adb
! c34f359c4e28a4a08eaa94f24f69eeb9  gcc/ada/libgnat/s-pack79.ads
! d6ad08e056b07b9f0239a03101e94f7c  gcc/ada/libgnat/s-pack80.adb
! dc3ee3e1424a365637402ef9fc0a48e1  gcc/ada/libgnat/s-pack80.ads
! b09b3073a59fc8fccd3868118359650a  gcc/ada/libgnat/s-pack81.adb
! 37c59077e3fe5f4353e0475568fcf642  gcc/ada/libgnat/s-pack81.ads
! 17adb6aa4fcfdca1ec6891a6de26afe4  gcc/ada/libgnat/s-pack82.adb
! 957233a649cf79202dbe57b11ec18050  gcc/ada/libgnat/s-pack82.ads
! e47ce14fd74b580a3057c26d3fc66920  gcc/ada/libgnat/s-pack83.adb
! c0db63d5f508d35d38ca819796f27c3f  gcc/ada/libgnat/s-pack83.ads
! 902d47977ea45559a18678287b4b08f0  gcc/ada/libgnat/s-pack84.adb
! b5a1dff326d9f224be406d98c535dcf7  gcc/ada/libgnat/s-pack84.ads
! f46149401d11e651047a38a38dd0e14f  gcc/ada/libgnat/s-pack85.adb
! 260740c0249879179df459162a9e94fd  gcc/ada/libgnat/s-pack85.ads
! 0c114eaccee540bbf2ec94b89f4578ad  gcc/ada/libgnat/s-pack86.adb
! 2c06d9e081c1a14038ebdbc0eb426811  gcc/ada/libgnat/s-pack86.ads
! 364da4bbb8e722dae2794bb822da0754  gcc/ada/libgnat/s-pack87.adb
! d9c111b1a35a647835050881c4deb6ad  gcc/ada/libgnat/s-pack87.ads
! a5203d08aeff045922d0e34c6f072f34  gcc/ada/libgnat/s-pack88.adb
! 32a26ba81619859221657efd6b534faf  gcc/ada/libgnat/s-pack88.ads
! c3b810ee737894e242f4d142c06ac673  gcc/ada/libgnat/s-pack89.adb
! 0fcb214d1ff471cb5971429e49a223eb  gcc/ada/libgnat/s-pack89.ads
! 380bcfe58fc4cca83a9a59a2886a2438  gcc/ada/libgnat/s-pack90.adb
! 591d51d0caedff3a92d021ede090646f  gcc/ada/libgnat/s-pack90.ads
! a2228c358f6c00f5a2974c59b9f3b37a  gcc/ada/libgnat/s-pack91.adb
! c9914af959fa3c828c2c7e15c0d376d7  gcc/ada/libgnat/s-pack91.ads
! a800ac6b20011186fc4e5a05b9fa7ce2  gcc/ada/libgnat/s-pack92.adb
! 34767a0c771f7df7a4866cedc37196e4  gcc/ada/libgnat/s-pack92.ads
! 0e579d94459c0bcf014c17327d948773  gcc/ada/libgnat/s-pack93.adb
! e92466e21a0cf6d6757a4130ac417e92  gcc/ada/libgnat/s-pack93.ads
! b1a5a1d43bf7cc7d19f2c90b33284be7  gcc/ada/libgnat/s-pack94.adb
! 6955b90a3f8d4d6bad5a267f1e63d61b  gcc/ada/libgnat/s-pack94.ads
! c2621d1b3cdbb4400253ddc446425d33  gcc/ada/libgnat/s-pack95.adb
! 995d044094faa1a0a9e601629af4a57c  gcc/ada/libgnat/s-pack95.ads
! 73bb1f2552393a6b35ce0d568e51c50e  gcc/ada/libgnat/s-pack96.adb
! 143ba2338fc80d5e4f5a0b124f1bfb3c  gcc/ada/libgnat/s-pack96.ads
! 76148d5f1f5903ef6004690caa0e98a9  gcc/ada/libgnat/s-pack97.adb
! b74d1cab04e1f53ff16e145e5de933b6  gcc/ada/libgnat/s-pack97.ads
! d2c525ea03b7ff11cf4329c9eb943d6e  gcc/ada/libgnat/s-pack98.adb
! 7154d2374426392242d2bef9121eb10b  gcc/ada/libgnat/s-pack98.ads
! 8ac552fd0f5323d52da2ba9e806e2432  gcc/ada/libgnat/s-pack99.adb
! a1f4ddb54110788c6585d9d1423a549f  gcc/ada/libgnat/s-pack99.ads
! 6b8c8383dffcee5f51ed0307ccb36010  gcc/ada/libgnat/s-parame.adb
! 2a4cbb39e4eb44ac1b38e6090a75b5bc  gcc/ada/libgnat/s-parame.ads
! 88b2b8deb8fa9c7a240f4117b5d27bd9  gcc/ada/libgnat/s-parame__hpux.ads
! 105a2869c691ef05b7f4180b36d21a7e  gcc/ada/libgnat/s-parame__posix2008.ads
! 67e535229a2c706fc0d211e642090cc8  gcc/ada/libgnat/s-parame__rtems.adb
! 7f2c038a8d7c4567ead15b351f447f46  gcc/ada/libgnat/s-parame__vxworks.adb
! 1e1b1825237465a19ca23acd0d2747f5  gcc/ada/libgnat/s-parame__vxworks.ads
! 8b5b7b647003b6984fa9018e07db2dc7  gcc/ada/libgnat/s-parint.adb
! 79cf2a481371e1774445273dac87c595  gcc/ada/libgnat/s-parint.ads
! 94dbb93b124e60ac101e79e31377967f  gcc/ada/libgnat/s-pehage.adb
! cfafd4578831586f82d5b71ecda3efeb  gcc/ada/libgnat/s-pehage.ads
! f4dbc60ca4c28f1ccdcf4fa0bdee1caa  gcc/ada/libgnat/s-pooglo.adb
! e0324de347fbb2f0c51cdb8a386b2e6f  gcc/ada/libgnat/s-pooglo.ads
! 19aaf27ebfe338c63f03d6fbb853df30  gcc/ada/libgnat/s-pooloc.adb
! 342d99649457d6e6668b71c61f34d02a  gcc/ada/libgnat/s-pooloc.ads
! ca72e0e95f1b4713a6362fa2f543a9de  gcc/ada/libgnat/s-poosiz.adb
! a2917e13bfa8180db629aa25be4d5645  gcc/ada/libgnat/s-poosiz.ads
! 2ef3c88738f10d7373bdc2b4c5d628e8  gcc/ada/libgnat/s-powflt.ads
! 744c98de7d0264a1d3ffdf26b49db3e1  gcc/ada/libgnat/s-powlfl.ads
! cd17904cc74ac299cb2c0dc094aea3b5  gcc/ada/libgnat/s-powllf.ads
! 37e2f450d59f18813e249fa0bda5077a  gcc/ada/libgnat/s-purexc.ads
! 12d53f0c0b10d54825e231bffed46681  gcc/ada/libgnat/s-putima.adb
! 67aaa69d792e38332f1c0d71d3a3ef71  gcc/ada/libgnat/s-putima.ads
! cf9ebac9d87faa4340e94ad5fc86794d  gcc/ada/libgnat/s-rannum.adb
! 20fcc7a1e6a83bf65f6dbbd70c6fe7e4  gcc/ada/libgnat/s-rannum.ads
! 7ac70c7f69793ddc1c72e476b3b3811f  gcc/ada/libgnat/s-ransee.adb
! 41a6d2cf1b265d9203d64e4ed32900e3  gcc/ada/libgnat/s-ransee.ads
! 403f1b35092d7922bfa24ebdcaf737ca  gcc/ada/libgnat/s-regexp.adb
! b15fea0bceb3ae376e64530af8c09f1a  gcc/ada/libgnat/s-regexp.ads
! 90c8a27f2a951ef5fd99bf0c76748d17  gcc/ada/libgnat/s-regpat.adb
! fe4aa33ba86eec3dc51fff4af3a25966  gcc/ada/libgnat/s-regpat.ads
! 70431524b316abc951617552ed0916b6  gcc/ada/libgnat/s-resfil.adb
! 7209216d5599d5925f5395be7d6e858d  gcc/ada/libgnat/s-resfil.ads
! bdee469c3a61358bf33f95e5e9ef40b4  gcc/ada/libgnat/s-restri.adb
! 5adc97a2bae8b99fdb1eca6a7aadaa41  gcc/ada/libgnat/s-restri.ads
! 45b41d595a35e341adfc96fb86989d24  gcc/ada/libgnat/s-retsta.ads
! 31ff0d588c403375e195ef283ec967ad  gcc/ada/libgnat/s-rident.ads
! c255735e681f8026e2857305a811bebc  gcc/ada/libgnat/s-rpc.adb
! 664946446a9e8226503fa8352d66dd3e  gcc/ada/libgnat/s-rpc.ads
! 9888548b0cc6a0070ac103ffa2b0b329  gcc/ada/libgnat/s-scaval.adb
! d33d83cd7b3be40a6ee3384a7a053c99  gcc/ada/libgnat/s-scaval.ads
! 25ab1ed448c321cbc4121ddfb2a9b6f8  gcc/ada/libgnat/s-scaval__128.adb
! 4bf90f57e2644da6048a8424b24e3b75  gcc/ada/libgnat/s-scaval__128.ads
! f99118398fd2035552352c6f44e8a92d  gcc/ada/libgnat/s-secsta.adb
! bcddab6579e422662254bfe7e72b8b34  gcc/ada/libgnat/s-secsta.ads
! 65c6d3912c28f572a2014af008181587  gcc/ada/libgnat/s-sequio.adb
! d6804a98444a1f5401d8dde0fcf28ce2  gcc/ada/libgnat/s-sequio.ads
! dd8b3ff863ac1e6e4d2fae57e7ecb4ad  gcc/ada/libgnat/s-shabig.ads
! 887ab854f2b42b638e45ffce1ee0b8f7  gcc/ada/libgnat/s-shasto.adb
! e6c71a5c8522fe52c4b6d9c2725aad9a  gcc/ada/libgnat/s-shasto.ads
! 2c6746932903c6146e576766b5721986  gcc/ada/libgnat/s-soflin.adb
! 475cbd6734f0bf6aab456a7c8f9c90de  gcc/ada/libgnat/s-soflin.ads
! 61800566b35256484032faa098bb1fcb  gcc/ada/libgnat/s-soliin.adb
! ea285eb895ac516a282d7901d6a96b73  gcc/ada/libgnat/s-soliin.ads
! c5697ce232357ed259d869aeee5e4a7a  gcc/ada/libgnat/s-spark.ads
! 550c4d81ed79658ab9491f4f01595fca  gcc/ada/libgnat/s-spcuop.adb
! 1fb954de7c71d8e60d55ec862880f46f  gcc/ada/libgnat/s-spcuop.ads
! 3f65b2082f8c4823fc399a4ced3d2811  gcc/ada/libgnat/s-spsufi.adb
! d8249ddf153fd252160e2843b0967bfd  gcc/ada/libgnat/s-spsufi.ads
! f2df299b58b54d7485736192991411c0  gcc/ada/libgnat/s-stache.adb
! 753ee680cc0951dfe95c73c172dc76ae  gcc/ada/libgnat/s-stache.ads
! feceefe26547305e101a97af5d34c767  gcc/ada/libgnat/s-stalib.adb
! f6b59d231fdd81730fd6d2f2b9ffa069  gcc/ada/libgnat/s-stalib.ads
! 8d8bac57aa30b358d2566fe83465e4e7  gcc/ada/libgnat/s-statxd.adb
! dc8ba98da070464b91221f3dfc8ffeb6  gcc/ada/libgnat/s-statxd.ads
! e8c58cda496af3241b4ca46cf945c689  gcc/ada/libgnat/s-stausa.adb
! a975a7f18de1f1f5c8da6f2384175b1b  gcc/ada/libgnat/s-stausa.ads
! 51b35ec7234a3224deee695e22d57ddd  gcc/ada/libgnat/s-stchop.adb
! fbc760344ff4867f4868b2928137db8f  gcc/ada/libgnat/s-stchop.ads
! 5924e5cb4b3e32809113b795e418efc5  gcc/ada/libgnat/s-stchop__limit.ads
! a845759ca7545ffe7ea7d86a6a867c69  gcc/ada/libgnat/s-stchop__vxworks.adb
! 939534b88bac6edc0e057a28352af518  gcc/ada/libgnat/s-stoele.adb
! 38e48db96a47eb13259c70ae75ac3cf1  gcc/ada/libgnat/s-stoele.ads
! 425a5d46fd725b290bc16d8e6a778a9d  gcc/ada/libgnat/s-stopoo.adb
! 9324411deb777159107eefa6d17ed9ea  gcc/ada/libgnat/s-stopoo.ads
! 3aebb5ee4350f712d8f571f6326a1f6e  gcc/ada/libgnat/s-stposu.adb
! ea1e1a3f35f2d87d360a6fa148cf942f  gcc/ada/libgnat/s-stposu.ads
! 013a1fe809f60910c3103c300c64bd3d  gcc/ada/libgnat/s-stratt.adb
! 6c3dfd4ebb852fee1d9774d767dbb81f  gcc/ada/libgnat/s-stratt.ads
! 70b332da7eda1ec450237b14aa2af268  gcc/ada/libgnat/s-strcom.adb
! 2a0218d1c1e6ec64488268f095bf2e48  gcc/ada/libgnat/s-strcom.ads
! 8344e9be8858b4a58f811df7d3c9d77e  gcc/ada/libgnat/s-strhas.adb
! 21a5c32951993cb9999c1c887dfb1d62  gcc/ada/libgnat/s-strhas.ads
! 5f7210023091fc1d4dc8aa691efbba96  gcc/ada/libgnat/s-string.adb
! aedb78fa51f5b11d16e365ca1dd6884c  gcc/ada/libgnat/s-string.ads
! 52b7b9904dfc7a365e58a85664d595e5  gcc/ada/libgnat/s-ststop.adb
! 17a462e1e90582ecdb10b2cfb29ea655  gcc/ada/libgnat/s-ststop.ads
! 3292a6ae948975ed1b9c3ab84e4d859d  gcc/ada/libgnat/s-tasloc.adb
! 88be282fd0b5232eb3dd04166bec7b08  gcc/ada/libgnat/s-tasloc.ads
! b758f1cffe4a1b2698558b4de461b191  gcc/ada/libgnat/s-traceb.adb
! 1f7e72436ff71804219d195ac95d9396  gcc/ada/libgnat/s-traceb.ads
! a936ee5656c7d0b966b358d6f7923747  gcc/ada/libgnat/s-traceb__hpux.adb
! 70c491a107fee30a48b6cd00a47f810e  gcc/ada/libgnat/s-traceb__mastop.adb
! 8176a37b5372fc95dbb4402206b5dcf2  gcc/ada/libgnat/s-traent.adb
! da73d2c0552f6bf0274628bb262d8e15  gcc/ada/libgnat/s-traent.ads
! de3beb6a96cb5bde5ecf6286289eb9af  gcc/ada/libgnat/s-trasym.adb
! cb4176896127cfed83a4d4cd8a9cebdd  gcc/ada/libgnat/s-trasym.ads
! 7b7c2276e964a4fd738568845db8a3e5  gcc/ada/libgnat/s-trasym__dwarf.adb
! 97ae80ac65fb2fc4931a1af0770629fb  gcc/ada/libgnat/s-tsmona.adb
! 2d04c24c4830d3f99356a82a9751455b  gcc/ada/libgnat/s-tsmona__linux.adb
! d4d61fa96db565590cf71776b204bc48  gcc/ada/libgnat/s-tsmona__mingw.adb
! ca8d2d879fd8db9e676b8986b0f97081  gcc/ada/libgnat/s-unstyp.ads
! 5e6d12c7f8cd251e5578ee5f6e00765d  gcc/ada/libgnat/s-utf_32.adb
! 39e0e15366c5df8ab1d6b696daa0767e  gcc/ada/libgnat/s-utf_32.ads
! 20ec81199aeec5fcf471601cb0a96581  gcc/ada/libgnat/s-vade128.ads
! 427225212d72102de0ada6a215f035d0  gcc/ada/libgnat/s-vade32.ads
! f20f08c54938d44abb6b62fbff9b0b0d  gcc/ada/libgnat/s-vade64.ads
! 77851498f995173f449a55c400430976  gcc/ada/libgnat/s-vaen16.ads
! 311b9c20f00a2a4dc54130bbb8d3980b  gcc/ada/libgnat/s-vaen32.ads
! cd492b73e3e478c7cbd4215c896615cb  gcc/ada/libgnat/s-vaenu8.ads
! 6aabe67cf2b1c063af8505ab64efab6e  gcc/ada/libgnat/s-vafi128.ads
! f8086352d83a087fa2e5d6db8b967b4b  gcc/ada/libgnat/s-vafi32.ads
! 8fb9addd9cc9440c30bad32c9f2332c4  gcc/ada/libgnat/s-vafi64.ads
! e2f501bb97ca94460b0968c743c834f9  gcc/ada/libgnat/s-vaispe.adb
! d0d32f3b3d669b23b6b9521cab30132e  gcc/ada/libgnat/s-vaispe.ads
! f2318310d797df0879e02e8b9e2570ba  gcc/ada/libgnat/s-valboo.adb
! 72a8289d274a7173ec2509dd54c1bc26  gcc/ada/libgnat/s-valboo.ads
! e3865dd77c898ab75028319bcbff1fc5  gcc/ada/libgnat/s-valcha.adb
! cb4b37b4bbc122067dcd0551c64de447  gcc/ada/libgnat/s-valcha.ads
! 5821165ecffe775a1faeec072599a3b7  gcc/ada/libgnat/s-valflt.ads
! d2af1561e1c40909033bbdcb98c0499f  gcc/ada/libgnat/s-valint.adb
! 87ba99dd0be6bbe02d4160ed48b3d648  gcc/ada/libgnat/s-valint.ads
! 2ab616c6bbac1d42f33251ff07c247d0  gcc/ada/libgnat/s-vallfl.ads
! 8544863bae79f91d849d86595f5fe1e0  gcc/ada/libgnat/s-valllf.ads
! 1ea9b4867d6f0c7bd1b1931406ece0aa  gcc/ada/libgnat/s-vallli.adb
! ab879a3cdb6a435d9d6c32ae4785f8d9  gcc/ada/libgnat/s-vallli.ads
! f6b1c80ef89f1f06c423a858965a8db0  gcc/ada/libgnat/s-valllli.ads
! e1228ae9c3ef343daf106213d30e9740  gcc/ada/libgnat/s-vallllu.ads
! d7e9deda7289dfa746a3ca360055ff33  gcc/ada/libgnat/s-valllu.adb
! e7c313bd44df770f06b52e2ac9fc02eb  gcc/ada/libgnat/s-valllu.ads
! 22258154166d7788dd69358131771776  gcc/ada/libgnat/s-valrea.adb
! 0f29ce33983e7b1ab5b8c091671312e9  gcc/ada/libgnat/s-valrea.ads
! 477180aa3d9bbd323893538eefe44c0e  gcc/ada/libgnat/s-valued.adb
! ba1624ef858cbd7567f98363399042f2  gcc/ada/libgnat/s-valued.ads
! 5a4c56d26b5bec3e3f5c3796aaa2a133  gcc/ada/libgnat/s-valuef.adb
! 889aaab46d6ffeb7089fb920e11d3588  gcc/ada/libgnat/s-valuef.ads
! 116babf827e032d5e07092319a469250  gcc/ada/libgnat/s-valuei.adb
! 66985ce92e1e132ca9d7569c7d37285a  gcc/ada/libgnat/s-valuei.ads
! 5006d70c3fbf614f95c5e85728e1c1b4  gcc/ada/libgnat/s-valuen.adb
! 93ed1c347dc8b107b7eb34a039467f57  gcc/ada/libgnat/s-valuen.ads
! 22bcc2307ca4b84efbf1cbe959fe6319  gcc/ada/libgnat/s-valuer.adb
! d1afb777cf8aa1c1f64a412bf6f91e49  gcc/ada/libgnat/s-valuer.ads
! 7819e2eebb9e276fd047f71f849e7a1b  gcc/ada/libgnat/s-valueu.adb
! 6bb7207db3d9c86a63c3848809485802  gcc/ada/libgnat/s-valueu.ads
! 9f63252ff81390e275e1e1154f361dbc  gcc/ada/libgnat/s-valuns.adb
! bda5260e61331069ef1b0e1e10b4b744  gcc/ada/libgnat/s-valuns.ads
! d511c58a76a9c3a319be70ab21b6245c  gcc/ada/libgnat/s-valuti.adb
! 437f5c77fe8eb556b16a49096f5e3f3c  gcc/ada/libgnat/s-valuti.ads
! 27dbea6ff10890e442879c7119f2ce4d  gcc/ada/libgnat/s-valwch.adb
! c8365998bc69654e964b463a6468f47e  gcc/ada/libgnat/s-valwch.ads
! 8e26757492c8c33b2c7bc5df5cdc38f3  gcc/ada/libgnat/s-vauspe.adb
! e580b3a5e8dac2022afeae0399043ab9  gcc/ada/libgnat/s-vauspe.ads
! 22db0074fb88504648466b9dbbc30f97  gcc/ada/libgnat/s-veboop.adb
! 133f85cf28f88be94ba63e1cb0895b9c  gcc/ada/libgnat/s-veboop.ads
! 9357b56a313540c313f06fbf6d241238  gcc/ada/libgnat/s-vector.ads
! b7d9a9e2e9e56fe9383b77fd7b09387e  gcc/ada/libgnat/s-vercon.adb
! c916cd0f65ac60ab2c1407907511170c  gcc/ada/libgnat/s-vercon.ads
! 9dd2a23f018a4f1b0245fde9d746d0eb  gcc/ada/libgnat/s-wchcnv.adb
! dff69d9d5b9a298392058929f83dd924  gcc/ada/libgnat/s-wchcnv.ads
! dc9d933bb811ba2ad68d5fc13bde1c95  gcc/ada/libgnat/s-wchcon.adb
! a05020ced6cb3656d195e6705084ad7a  gcc/ada/libgnat/s-wchcon.ads
! 5a285193eaeb347cdfe0d1e96e3d1988  gcc/ada/libgnat/s-wchjis.adb
! 09369fe2cc2e6fb215bad8372077f3fb  gcc/ada/libgnat/s-wchjis.ads
! 42c8599817f4ef881c601497ccb77484  gcc/ada/libgnat/s-wchstw.adb
! 66991a29516d97dc4e0ecc73d58b97bc  gcc/ada/libgnat/s-wchstw.ads
! a22bea101c88c4933cf06c22c3aa09bf  gcc/ada/libgnat/s-wchwts.adb
! b00182d0d9665e238a160abd29fe1b2c  gcc/ada/libgnat/s-wchwts.ads
! 8e9abb6d516d87dfe73753e621064da7  gcc/ada/libgnat/s-widboo.adb
! fee0d81a7c2b9421d516e6b809762cad  gcc/ada/libgnat/s-widboo.ads
! 02a19c4405a89d694922d50a9c617e7a  gcc/ada/libgnat/s-widcha.adb
! dad0b471b80c0858d62eb32c5ef7c849  gcc/ada/libgnat/s-widcha.ads
! cce81a7a3b0fd0e838a560efba87ce75  gcc/ada/libgnat/s-widenu.adb
! a25feee36c863ada5763ee3bb8eb4a72  gcc/ada/libgnat/s-widenu.ads
! a59112536aaf61e5c7355aa95c97978d  gcc/ada/libgnat/s-widint.ads
! cec100171a758a0ee0af84ebb5a565f0  gcc/ada/libgnat/s-widlli.adb
! 4ebaccbf155e1f1749d478d1987319d7  gcc/ada/libgnat/s-widlli.ads
! 7cbe61b49fdae0f61cdd3e216fb13ccb  gcc/ada/libgnat/s-widllli.ads
! 8aaa5eb5ef15c3b76a2b7d84845f30dd  gcc/ada/libgnat/s-widlllu.ads
! dc277dc443cb62d526851b0a3a82aaf3  gcc/ada/libgnat/s-widllu.adb
! 575e83b21a3ed1f31d802abb686ee462  gcc/ada/libgnat/s-widllu.ads
! afc99e78ac79514f77035404e9619e8b  gcc/ada/libgnat/s-widthi.adb
! d294d37248a5cfcf79dfc5da948e5d2c  gcc/ada/libgnat/s-widthi.ads
! 3d1c729860217bb5317646dc1332098b  gcc/ada/libgnat/s-widthu.adb
! df8474bdce97d9edca6667f15ae6ad57  gcc/ada/libgnat/s-widthu.ads
! e30177b8c93cf871fb4095ba3ca001d1  gcc/ada/libgnat/s-widuns.ads
! b15e302560ce350e7b160b5b945f96a0  gcc/ada/libgnat/s-widwch.adb
! 32254390b12ba0f1143de85425e5f611  gcc/ada/libgnat/s-widwch.ads
! af6f1d0afc76533a8040b714af4db7d3  gcc/ada/libgnat/s-win32.ads
! 89ab1e909e6ff9abe72b16d2914bb215  gcc/ada/libgnat/s-winext.ads
! 5d99d733b591c161581e11bde70aef7a  gcc/ada/libgnat/s-wwdcha.adb
! f4bc912b17c2873b27c1886e343187a7  gcc/ada/libgnat/s-wwdcha.ads
! 11c43ade7da24d947c108caa3ad97093  gcc/ada/libgnat/s-wwdenu.adb
! 311ecc2087691b421c3f0b3bc1dac0b8  gcc/ada/libgnat/s-wwdenu.ads
! 5197b12404980424501b36e188ae519e  gcc/ada/libgnat/s-wwdwch.adb
! 674164808e9c693cdb0d4bb95b7f9ba4  gcc/ada/libgnat/s-wwdwch.ads
  0f4c21401ad2531f8c5d4010537dc6d2  gcc/ada/libgnat/sequenio.ads
! b3ab823521f7609c88a8cc4657e0c11d  gcc/ada/libgnat/system-aix.ads
! 3b9a4b8b4613daf47865c169b2a9d78c  gcc/ada/libgnat/system-darwin-arm.ads
! 73250bad49318ee0ee27f9041de0cf00  gcc/ada/libgnat/system-darwin-ppc.ads
! 0b2be746cb241822cbebbd2505e55920  gcc/ada/libgnat/system-darwin-x86.ads
! 23e6f5d6b06007c269295c2f6a7db088  gcc/ada/libgnat/system-djgpp.ads
! 70d93fcfbff4872338f3a69b74a3336f  gcc/ada/libgnat/system-dragonfly-x86_64.ads
! 4648fbb95672b5ec71827f4256799bdc  gcc/ada/libgnat/system-freebsd.ads
! 5e8c2840d431c7a9c16e34e0c050476a  gcc/ada/libgnat/system-hpux-ia64.ads
! 3f7b11867d19c95f60f79c2f359e814b  gcc/ada/libgnat/system-hpux.ads
! 3c4e68acb069a48b7363db22d55d3ad7  gcc/ada/libgnat/system-linux-alpha.ads
! ff015ac9ab86504c1d2d77b85a925cd8  gcc/ada/libgnat/system-linux-arm.ads
! 7b78374b298c1d25df4d13d950f888ff  gcc/ada/libgnat/system-linux-hppa.ads
! 294c5da6682b99b8f075194e3a25ebb4  gcc/ada/libgnat/system-linux-ia64.ads
! 6d6fc4dcc7009ef644d6ca2f19f8484e  gcc/ada/libgnat/system-linux-m68k.ads
! 125e353b3fd05135e5de3ed45dddfb36  gcc/ada/libgnat/system-linux-mips.ads
! 723605ad084efc620c5952d682663b64  gcc/ada/libgnat/system-linux-ppc.ads
! 30cd5bc7ecd743d93245fb99a65a95ce  gcc/ada/libgnat/system-linux-riscv.ads
! fbf1d5b71e0c6b1cd4a706da187ecba0  gcc/ada/libgnat/system-linux-s390.ads
! 87aa90b6f3d86d339210b489a1f44ff7  gcc/ada/libgnat/system-linux-sh4.ads
! 95b566a4ee7871802e6d9a36362c6dcf  gcc/ada/libgnat/system-linux-sparc.ads
! 04faa6a40a7e2100825c8dd451919996  gcc/ada/libgnat/system-linux-x86.ads
! 31f29772276936dc62ca0588b8e12897  gcc/ada/libgnat/system-lynxos178-ppc.ads
! b187da622c21c29fb9c876d5df8e32bf  gcc/ada/libgnat/system-lynxos178-x86.ads
! 645049aa4984357aeeda9fd29c302ba9  gcc/ada/libgnat/system-mingw.ads
! 67926cb9937b53886afc0c8284ae6948  gcc/ada/libgnat/system-qnx-arm.ads
! cb08f8032fef957b9c255c51cabd3412  gcc/ada/libgnat/system-rtems.ads
! 4a5cb064a68b048073b5bb12d75127b2  gcc/ada/libgnat/system-solaris-sparc.ads
! 04ef16618095863c6aa0dc8d82ef4310  gcc/ada/libgnat/system-solaris-x86.ads
! 052aeec9df72b793ecbd0063fb003695  gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
! 4f80136c7e51eb6be7244c93a2a73869  gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
! 5ebae731982ba2de5082d6abddfad278  gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
! 147e6f880fe5d5253232f9534d1ada23  gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
! fbbc6bf51630cca752404c7e46a3c073  gcc/ada/libgnat/system-vxworks7-aarch64.ads
! df181d95ad645c80304897b4b0e57fed  gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
! 4195f942974a95f4425a707e0b57f3cd  gcc/ada/libgnat/system-vxworks7-arm.ads
! 53ce4a9d00c499b093bedf15a1373e26  gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
! 254a505f32c483adde5d69e66c7e6dd4  gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
! 21f1129cadfcd8db2ae9ea56ec972ac3  gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
! f18d0de66d27848e9fd60de6affc3940  gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
! 21b7104329ad9a3e3fb165223f37186b  gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
! a3a6bceb94dbaa25eca38ff160831fdf  gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
! 7aadc4e884f20446e44ce8cbafe219f4  gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
! 9c76dc74d7443f30848364956ca802c7  gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
  2dc890e2791f7e9d6e1e9ca1cfb55c71  gcc/ada/libgnat/text_io.ads
  9a646eb97c6840de5d4bbb081dd2031a  gcc/ada/libgnat/unchconv.ads
  b8b0f9c3471d18ee5ac33521fe6f6d31  gcc/ada/libgnat/unchdeal.ads
! 13f7f4d11e30a4a3d2d2dd099d32cde6  gcc/ada/link.c
! cb83820ae465a1f28d0791876a40f166  gcc/ada/live.adb
! 859bcdf61eb6236897bc502ef5b37145  gcc/ada/live.ads
! 814fbf6a7b76cfa76b732ef9aa06839e  gcc/ada/locales.c
! 80937ed8efb52d368bac71fc63a407d8  gcc/ada/make.adb
! 1654b996de56a379223fed1a7e86241a  gcc/ada/make.ads
! a0c635a0e7701270a29568439ceba86f  gcc/ada/make_util.adb
! 056e3e90645428480635d42b9f481ecb  gcc/ada/make_util.ads
! 5fe0196a43fb661559977ec3c09ad03a  gcc/ada/makeusg.adb
! 55673f210fc8f3cfeae2c9e0c370f08a  gcc/ada/makeusg.ads
! a475e2f168ee7ebdff632c06dc74f023  gcc/ada/mdll-fil.adb
! bd77dc8c5c8c0f5ff4f6c7a0fe6890f4  gcc/ada/mdll-fil.ads
! 1c7e1139d4c0bbf71c972998e2f1494d  gcc/ada/mdll-utl.adb
! d19d069c261d3f6dfd000d4aa00de0fe  gcc/ada/mdll-utl.ads
! 9ca4456c9dc92acf670e8f06e27fe6aa  gcc/ada/mdll.adb
! f5af8f4f1dfdab8d9d9cb5339310e403  gcc/ada/mdll.ads
! 06ae728496b4246ec96fd83add13f478  gcc/ada/mingw32.h
! 2061b2d163b4fd4832409610dd2475de  gcc/ada/mkdir.c
! 8659166eaacc3b66166865a0c79882e6  gcc/ada/namet-sp.adb
! 0b560d4b320c374a731f72917680723e  gcc/ada/namet-sp.ads
! d10d15249c950fceba4d50ab36444e6b  gcc/ada/namet.adb
! 444c9cae62d503793e70bc66e620f60a  gcc/ada/namet.ads
! 7a63e2e4b9a4b592bb126f559e11a71b  gcc/ada/namet.h
! 48b2821f36c1d869d461dbed78a82e3c  gcc/ada/nlists.adb
! 0d6bd57b6ace45ea015927910f695508  gcc/ada/nlists.ads
! ff9ff9f959ddfa3c713348cef26f212e  gcc/ada/nlists.h
! 479971937cfe615e6f76fe69a9d4102f  gcc/ada/opt.adb
! 6ac11d061f061a1f3ab1b53a3159aa67  gcc/ada/opt.ads
! d003c5fc33d443626047379e20c572d6  gcc/ada/osint-b.adb
! 0a30c94a9c1e92d635f002118649d609  gcc/ada/osint-b.ads
! cc6fba3e78cba5f45caa777a83c0c49f  gcc/ada/osint-c.adb
! 0f195575cb26de3d9c8ba2914a2a6728  gcc/ada/osint-c.ads
! 9dd0d3305bb8d8a52ee901ad8548097a  gcc/ada/osint-l.adb
! 261a3ab0d0e7a90006b011378ce591b1  gcc/ada/osint-l.ads
! ab628a8ad6e901f0be96dc5e82ad2cd5  gcc/ada/osint-m.adb
! c70f3748ea640af36babf4a4028c0dad  gcc/ada/osint-m.ads
! cec7a46d10a3bc24e05befdd1d218b16  gcc/ada/osint.adb
! a69f43f9357715ceeca20d244c71803f  gcc/ada/osint.ads
! 31fee3548d4ef64edf8e94275f4137aa  gcc/ada/output.adb
! a322b246a3d17c3f1832766cf8cac75b  gcc/ada/output.ads
! 39fe4ab70f71ef6da1250762932ad4f5  gcc/ada/par-ch10.adb
! 97f8912ba81ec9dca9db17f079ba2d04  gcc/ada/par-ch11.adb
! 0d08f7cab4d916df6a50a5d021a8f1bb  gcc/ada/par-ch12.adb
! 0608361dbdf799dc7a44674d20b2c6d2  gcc/ada/par-ch13.adb
! 72b9dff886eecde1318935a346861a8f  gcc/ada/par-ch2.adb
! c4c2bee7a1e6722a599329cb37e824d5  gcc/ada/par-ch3.adb
! 2dc2ba9e0dca0a0a25f29dd0e7ae7e22  gcc/ada/par-ch4.adb
! 803a73a9e138df8cd2094197ac85b7f2  gcc/ada/par-ch5.adb
! c562491ed077a62954d7769ca3026810  gcc/ada/par-ch6.adb
! 75d7186b24290e56a92fd51640f13ace  gcc/ada/par-ch7.adb
! ff7f8fef7274a2065b88731f71464179  gcc/ada/par-ch8.adb
! 84b6dba62bf64c214228d151014e0a5a  gcc/ada/par-ch9.adb
! 2aa9d79f324466680ab97b497fd12226  gcc/ada/par-endh.adb
! f10f7a061445c4971e3a5cd4caf43fdc  gcc/ada/par-labl.adb
! 5e28be53a887b71554a0008797e09b48  gcc/ada/par-load.adb
! be495b88a5b40553fae25cb88cb5d987  gcc/ada/par-prag.adb
! cbeed44fce6f0237cd362f41a4defd5a  gcc/ada/par-sync.adb
! dc2085d9408290bcab5fc29a763c3185  gcc/ada/par-tchk.adb
! 16dd125fa49404f1b741bb38bdb4c89d  gcc/ada/par-util.adb
! 7b88b0e9b0636c6f91228c3e892c5698  gcc/ada/par.adb
! 975baa4d4f8e2483370a606cb4adba41  gcc/ada/par.ads
! 5842c6636d24ef1f2a7c93ff9b60b646  gcc/ada/par_sco.adb
! 89e8ad8d3d7bd364c45acda7b86e485d  gcc/ada/par_sco.ads
! 2545ab811fab0d4ca95e45de2c6a3f63  gcc/ada/pprint.adb
! 060f9e46399ce8e4bf17ebe829c0febc  gcc/ada/pprint.ads
! 1c1ab8bcb44c139b299499f6511611ea  gcc/ada/prep.adb
! 6c4d450e3faf9a503ce63f52d065f374  gcc/ada/prep.ads
! c4d18e2d76029d14a546584a7525323a  gcc/ada/prepcomp.adb
! 8bbf57e1dec86d3656b56236da19520a  gcc/ada/prepcomp.ads
! 580c038ef418440204c5caf53f56ee93  gcc/ada/put_scos.adb
! 197a3e646eccec22624c91fcf6e6d6b0  gcc/ada/put_scos.ads
! a013ca58bc7cd65cdfb8e107ba9a561d  gcc/ada/raise-gcc.c
! beeb499d161ef67535137d1d7594e749  gcc/ada/raise.c
! a9989140d84d82025fa6b5ca95e71a39  gcc/ada/raise.h
! c04d922b208c3adc140a041145705e55  gcc/ada/repinfo-input.adb
! b334baaa9a9b96149cbfbb6ce64d1dab  gcc/ada/repinfo-input.ads
! 638b0a443c331051c244ad30d42dcb11  gcc/ada/repinfo.adb
! 6989cef8c8854d238ab353fd26ff522f  gcc/ada/repinfo.ads
! e6ce5adad5c56ba067dfe6755141a1c0  gcc/ada/repinfo.h
! cac48cc4a4d9530bc462b3cd0e212eea  gcc/ada/restrict.adb
! b27c6e8308446f073d73b502cf17e712  gcc/ada/restrict.ads
! 712c0640ca70923fd6ebb3d11941016b  gcc/ada/rident.ads
! 0c77fe52c5bd1c086f239c85d5e3d3ec  gcc/ada/rtfinal.c
! aee4d9fd0d9751d6a9f3a3fa8c0ab929  gcc/ada/rtinit.c
! 882845c6d9a03cfd35c9628a2c7b0a7a  gcc/ada/rtsfind.adb
! a25b181dadc848373913851c5f2560d6  gcc/ada/rtsfind.ads
! b4073c5d3847998e6bec472830284bea  gcc/ada/runtime.h
! 004083f2d35e0565cd5d55a1df0c9870  gcc/ada/s-oscons-tmplt.c
! 3264825cbf649b08945d70865c7c1c26  gcc/ada/scans.adb
! d431d98e3f963ce89ba3e0f1977ee21f  gcc/ada/scans.ads
! 1928870773596916f224acee4ad3ae5a  gcc/ada/scil_ll.adb
! 0c49414f4544b9bab3203c70a7e380c2  gcc/ada/scil_ll.ads
! d0763582f9f11e6db32d506ead67254e  gcc/ada/scn.adb
! 527e74de2382c6bb3297efd17ed22b9f  gcc/ada/scn.ads
! 86b1dae0dd4e0b8f3cbb37c3ee39b648  gcc/ada/scng.adb
! 16c7f42f429c21a28e9cef10d3f0f780  gcc/ada/scng.ads
! 3a5e4eb664972d377949f2acf4bf9d57  gcc/ada/scos.adb
! ea0e09977063a57d40d7eb9614c05190  gcc/ada/scos.ads
! 668ea4b59246c263c92767ed0e9bec73  gcc/ada/scos.h
! dd3c4c7e7bba2fd96ad87555473b1be8  gcc/ada/sdefault.ads
! c37b5cae64bc71d5b30139e04c31796d  gcc/ada/seh_init.c
! b60f965eb0068f4ef9f60362378b0c9e  gcc/ada/sem.adb
! e70e0fe1deaf9153a4884095d153dd82  gcc/ada/sem.ads
! 0485c822ca845d653ff1c5ed3e84dc6c  gcc/ada/sem_aggr.adb
! bc71ad0491fa61390ba4b31d799b2dae  gcc/ada/sem_aggr.ads
! 3f982826a1738412c31f07d70afc68e8  gcc/ada/sem_attr.adb
! 3d50876170b765a588430f4d1cd04558  gcc/ada/sem_attr.ads
! 8e42c26d133289bc49008e92fd966b83  gcc/ada/sem_aux.adb
! 088bd6652821c1edc3b504cc95da3f42  gcc/ada/sem_aux.ads
! 3643d8f0d7fe39effeea7660676c4f7c  gcc/ada/sem_case.adb
! cb017ef183c47348a71d052d39be4bb0  gcc/ada/sem_case.ads
! 9410ba5ff97c5701fdccfdaf1dfb7303  gcc/ada/sem_cat.adb
! 93825171ac85d9e03db3e47c220ff7f9  gcc/ada/sem_cat.ads
! f2c6ce6a625a22419e78b1594dc98c96  gcc/ada/sem_ch10.adb
! 40f63c56f82085566f13ca50914990e7  gcc/ada/sem_ch10.ads
! ed28c0c11a48d3eff130c0afc09b7e0f  gcc/ada/sem_ch11.adb
! 3c73933ed4c54ac6090736275b072542  gcc/ada/sem_ch11.ads
! f0a9d27efd2c4562fa3e3aab97dd8a1d  gcc/ada/sem_ch12.adb
! a432065f95efc62fd49d139a9da251c4  gcc/ada/sem_ch12.ads
! 3d0bfbd778ac1442d950f081d52c0bf3  gcc/ada/sem_ch13.adb
! aaf7cf57dc41bc250bfe241c089cae3e  gcc/ada/sem_ch13.ads
! 927ab853493439ecf619d639e5173bb4  gcc/ada/sem_ch2.adb
! c4875c3fb6f6e196123c4bee7db7923b  gcc/ada/sem_ch2.ads
! 9beb687d00e0f51ad3cf3b3561e61705  gcc/ada/sem_ch3.adb
! 1fca2e6b2bc36a4d6328c9d96af6cfb3  gcc/ada/sem_ch3.ads
! 79c86ae3b42c5430c31624257e53f05b  gcc/ada/sem_ch4.adb
! d0d55b5c7178730b4379dbea4d669abe  gcc/ada/sem_ch4.ads
! c3ad3d10f8b77c300a53661e624021eb  gcc/ada/sem_ch5.adb
! ab69996d3822ad660d28709ab3cf046b  gcc/ada/sem_ch5.ads
! 5df18a551da23bdac33c37ed5556b339  gcc/ada/sem_ch6.adb
! 1880e12d15e4f7a2655d25e1a39eb8c4  gcc/ada/sem_ch6.ads
! e80c2fc0177cad40b56d91fb367bcc52  gcc/ada/sem_ch7.adb
! ba37c865ac4be0ab3408a156f217b148  gcc/ada/sem_ch7.ads
! 46d3153cf9f6d1c551a40268bce2b762  gcc/ada/sem_ch8.adb
! ecd7edf93ca918e3d9736ef3ca4b6529  gcc/ada/sem_ch8.ads
! 3aee871b3b421b0e0ddc10b2ddd4f326  gcc/ada/sem_ch9.adb
! 73911dd4e01a6a002f8167979f314d80  gcc/ada/sem_ch9.ads
! d2afb7331ebc0fa27eda24672abaf916  gcc/ada/sem_dim.adb
! 004ea1929047617d9e7a229ac5798a94  gcc/ada/sem_dim.ads
! c156ead71c635cc56cae1c48807cfb5c  gcc/ada/sem_disp.adb
! f978d8f8f0edbaf8c197284638108b29  gcc/ada/sem_disp.ads
! 168aef97312277b4f89436222a3460ae  gcc/ada/sem_dist.adb
! 8b571ad8113f9236f95206ab1f00a46f  gcc/ada/sem_dist.ads
! 6be9e9d751399d1ef7c1c67316b326e8  gcc/ada/sem_elab.adb
! d1499d742250ba3357ffe435a3bab8b6  gcc/ada/sem_elab.ads
! 109d959ed516000de7fd993de2c9ae63  gcc/ada/sem_elim.adb
! 3e62676371055aca95243aee2b7afc2b  gcc/ada/sem_elim.ads
! 3d0664b8ffdb064e4f6a1ca6755e1029  gcc/ada/sem_eval.adb
! 1fbc78cc3986e5167ef73d52862b3a33  gcc/ada/sem_eval.ads
! ce27239f99361e61d12bb5bdfff0a208  gcc/ada/sem_intr.adb
! dcf2c3ccb5cc555e421ba9893cb3a2c8  gcc/ada/sem_intr.ads
! cd1485ab473af7619af9b0cdb75ff5f4  gcc/ada/sem_mech.adb
! 2628f4db0a13a198a497a1438f61ffa9  gcc/ada/sem_mech.ads
! bae94e12c9fdbf4a46f0a050968a1a68  gcc/ada/sem_prag.adb
! 2fc94fa1637a92b8548fdb0b65fd7bd4  gcc/ada/sem_prag.ads
! c2413e20316a24bc46560204ad3e7df6  gcc/ada/sem_res.adb
! 8ed4f4454daa145c7fddf86782258422  gcc/ada/sem_res.ads
! e4b6d1e16b208ca35791c42ee9c3d067  gcc/ada/sem_scil.adb
! 55301aee52465a299b07b1bb889a8304  gcc/ada/sem_scil.ads
! f8d57c959d78db9bc3e28697e1ec08ca  gcc/ada/sem_smem.adb
! a8b48863de3b07302a6dded1699bca0f  gcc/ada/sem_smem.ads
! e79e4c1e0518e3b9693043d0785d1d17  gcc/ada/sem_type.adb
! c071d50bf00e96003f25bc610c901949  gcc/ada/sem_type.ads
! b6c39c866362434064a8a73d15d101ed  gcc/ada/sem_util.adb
! e0470a8dd81fc3a95a3cd7bf8c3d5a58  gcc/ada/sem_util.ads
! 3c74440d6680a37e1605e0696651e98b  gcc/ada/sem_warn.adb
! 3ea742e0239d48146217b2888477f742  gcc/ada/sem_warn.ads
! 515bb2980bf2da708a3a883fa201b105  gcc/ada/set_targ.adb
! 296119347eb6f9c2638d31e594dda49f  gcc/ada/set_targ.ads
! 9cadd675768af23acb14914d6cbd42f8  gcc/ada/sfn_scan.adb
! 95355b532292f306fcd4283913a95eca  gcc/ada/sfn_scan.ads
! 9760d32a183273eca8099a6e9880bb33  gcc/ada/sigtramp-arm-qnx.c
! 1da4c79da57ea821c45a3b33331431ae  gcc/ada/sigtramp-armdroid.c
! 99cf6ab877e36eccea4d4ddea55a3833  gcc/ada/sigtramp-ios.c
! 3e67a969061d5b3ad4d7cef9de00a2bf  gcc/ada/sigtramp-qnx.c
! 2b01354b93697a19565a86b457dbdeb1  gcc/ada/sigtramp-vxworks-target.h
! cccfbb2bb146d70091d0b3c68a26e1e9  gcc/ada/sigtramp-vxworks.c
! bffa024056c9f27f1476f5fb6aa96deb  gcc/ada/sigtramp.h
! 383dab59b43bda5ba35f9d2e75396763  gcc/ada/sinfo-cn.adb
! 681b82d5766e1431fad27601b8a09fe0  gcc/ada/sinfo-cn.ads
! d025b325e2160d95af7aedf493d00a01  gcc/ada/sinfo-utils.adb
! 0466c161b26b1ad6c38e68e8e104473f  gcc/ada/sinfo-utils.ads
! 09a953a7ef3cd2c02091ca4ede0f91a1  gcc/ada/sinfo.adb
! 88ceb062f71f056e32628bc7a773781f  gcc/ada/sinfo.ads
! cf5fa17dfd9479dea7902be377334337  gcc/ada/sinput-c.adb
! 4c9a129cb9922aedd2b7a2ebdc9a8cff  gcc/ada/sinput-c.ads
! fbf6190226aad6cb94e5a6401a6edff6  gcc/ada/sinput-d.adb
! f26ffc8e7f43252ab89a291d89c31968  gcc/ada/sinput-d.ads
! 1c1334c8681d1359000e3db17a2087a3  gcc/ada/sinput-l.adb
! 19d39999e22347fbe00c7e0adcd9e321  gcc/ada/sinput-l.ads
! 34df665e0b9e50503f9d96f60b67e2ca  gcc/ada/sinput.adb
! 516e22cb83febc66720937f3de0c30c0  gcc/ada/sinput.ads
! 4f6928dfbd5b486e9b927dbc21dc0ced  gcc/ada/snames.adb-tmpl
! 229dfaf019b3a0decc7b6d1d89cfa052  gcc/ada/snames.ads-tmpl
! 1d0f0a946dfb952f009ada43305106dd  gcc/ada/snames.h-tmpl
! 7b5ae30ea1d9ec9a3d273f4bb69d3be1  gcc/ada/socket.c
! 35295d580a04ef93e238d3840e7f6a37  gcc/ada/spark_xrefs.adb
! 5420932e60fafc0d77f3a24a62e330c3  gcc/ada/spark_xrefs.ads
! acce486d72a7e674a74918f54a1f66b0  gcc/ada/sprint.adb
! 309fab9e637006b42191c642ac8ff482  gcc/ada/sprint.ads
! 168446184734b3b3643229bab475bbe3  gcc/ada/stand.ads
  92510faaca8c15e63e6f22f0b28dbe5f  gcc/ada/standard.ads.h
! 38295e8b31130a69b2c97d7125000099  gcc/ada/stringt.adb
! 843c0bb8dd2913a662fa32a8ba9c46b6  gcc/ada/stringt.ads
! 2e038be0667416a118de4f72041f0560  gcc/ada/stringt.h
! c6304434e8218d5dc70f89e452012722  gcc/ada/strub.adb
! 1d85ec4ded633f00b4981f0d9fd12131  gcc/ada/strub.ads
! bd0a95301dae8e766aef59763ca2b281  gcc/ada/style.adb
! dee7c423ad2140357a41410352d549b1  gcc/ada/style.ads
! 8e51c2d3e072d0dd1094daf3c97d94e7  gcc/ada/styleg.adb
! f2f853df3920f8b9d4e71200acccfa11  gcc/ada/styleg.ads
! 4ec3e0553dfd458e0fc2a84b3e5ee08b  gcc/ada/stylesw.adb
! 57aedb0af980fa4ed95c2bd412faa5f9  gcc/ada/stylesw.ads
! 740bce94da73787385f321afa99b712f  gcc/ada/switch-b.adb
! 7dbe16623f55677a54c23321308c4840  gcc/ada/switch-b.ads
! 60f9a3efbb8dce4978f31f74a797fc96  gcc/ada/switch-c.adb
! 8440a74ec4f8ec85dc99e17fe22c8b8f  gcc/ada/switch-c.ads
! 225c174bb2fc557c8130b8faf7903cc9  gcc/ada/switch-m.adb
! 9dd4d5f5929c59ecc034a043f440a343  gcc/ada/switch-m.ads
! 1e282409733427886f2422d365e8fd70  gcc/ada/switch.adb
! ab2fe2ad8e6fb460e00cfef666a0bd0b  gcc/ada/switch.ads
! 3e7cbd0f5ab02b4a01a998387e7c56af  gcc/ada/sysdep.c
! c65b4ef82c3d521871124f8961ad9ed1  gcc/ada/table.adb
! 11a214708ccb1550ffe0e9789003414d  gcc/ada/table.ads
! 27e59ad1eef5c72427c1eda8ca09812d  gcc/ada/targext.c
! da865a90b6a2d35a85500cd7111763e9  gcc/ada/targparm.adb
! 8f609362a58c6bbdacc143df78ddf622  gcc/ada/targparm.ads
! 74e3d94b642eadeeb70be571e5221108  gcc/ada/tbuild.adb
! a879475c399c620a933f9478ea5b6d2e  gcc/ada/tbuild.ads
! caaa6c4d9927eb3e67e75c49e10dd089  gcc/ada/tempdir.adb
! 1fd8d3d6700f8569cfbcd62afa528303  gcc/ada/tempdir.ads
! 4df4b519064e1fe4539a2b9b8d4b7445  gcc/ada/terminals.c
! c50d9c12efbc2f6fb7327c27bdec5618  gcc/ada/tracebak.c
! 8cc1a51644bcca84821852c2f327770d  gcc/ada/treepr.adb
! 648fc53cdb3ca7037e1abc008de842d9  gcc/ada/treepr.ads
! 603f8296f51f130d6c499ec140014c83  gcc/ada/ttypes.ads
! 1805194152442d78cc749615d795b06e  gcc/ada/types.adb
! 0af47accb0cac8824bb96a9f51696456  gcc/ada/types.ads
! 76546dd81086ef99bccb02f826c1e904  gcc/ada/types.h
! ed9a513f262688714bc7049ec309ae26  gcc/ada/uintp.adb
! 1ed3c5aeee283563cea8fff3378568f6  gcc/ada/uintp.ads
! 68debf1451ef37eac52bd13ce0c598fb  gcc/ada/uintp.h
! 0e75a8ded17c272d1f0c4112a7370856  gcc/ada/uname.adb
! 870168146711c928daa696c85705287f  gcc/ada/uname.ads
! 12c9160b033df02f4a09d7dd3bc13c95  gcc/ada/urealp.adb
! 4ff10cfb0e349b81188d6d3f70eee193  gcc/ada/urealp.ads
! 901231b71c5099196b940d400f1e9c30  gcc/ada/urealp.h
! 98bfc88cf867b43af251faae691ed9b7  gcc/ada/usage.adb
! 29502d768e6ac0f319f7d2b48a9e276c  gcc/ada/usage.ads
! fa0dfbf0b3c5e0a4f28fccdd596e0f97  gcc/ada/validsw.adb
! c103be07028e95592ee5562a178cb50d  gcc/ada/validsw.ads
! 0c66cbc282eee965c09e4248768932ec  gcc/ada/vast.adb
! 5796310e13c4553d943749517ecc6cbe  gcc/ada/vast.ads
  107a84185fe50c348afd3b9e76042a6e  gcc/ada/version.c
! 49ef8bc97a344f91b927f23054ade642  gcc/ada/vx_stack_info.c
  230f0a2f69b8ad56cc0d730f9fe0964b  gcc/ada/vxworks-ppc-link.spec
  745188949cd7ff6df266579735782385  gcc/ada/vxworks-smp-ppc-link.spec
  cf24e76097812a932a26f6600d193208  gcc/ada/vxworks-x86-link.spec
! 06e57b640d1aca0be4b6da38098e4157  gcc/ada/vxworks7-cert-rtp-base-link.spec
! 3f3270b5bb2062f4d0477ab7e768d46d  gcc/ada/vxworks7-cert-rtp-base-link__ppc64.spec
! c0ffb82152caa9bd08b1350cec3ffcba  gcc/ada/vxworks7-cert-rtp-base-link__x86.spec
! 2ed87baf5014d1345a1142ceab80bb13  gcc/ada/vxworks7-cert-rtp-base-link__x86_64.spec
! 987b48a23594fd72c3697baf88d4e628  gcc/ada/vxworks7-cert-rtp-link.spec
! d374967a9c157fd079d5b2491f43f68a  gcc/ada/vxworks7-cert-rtp-link__ppcXX.spec
! e280a30a5fa2394beaff42ee255c47b7  gcc/ada/warnsw.adb
! aae7312be3fd13722ca6f5fe0973129a  gcc/ada/warnsw.ads
! 5dba5502668dec6b627d9ad32975183d  gcc/ada/widechar.adb
! d390be42e16ca49380c6cef2f215d33f  gcc/ada/widechar.ads
! a47b8b8dc470d9aa3e21e509be2bbf1f  gcc/ada/xoscons.adb
! c639abfea0fd6ce8174c76689f8098b9  gcc/ada/xsnamest.adb
! 8e03b8475c004f3488c3b646b3ace22f  gcc/ada/xutil.adb
! 576518abce20cefac18d69412e741a99  gcc/ada/xutil.ads
! 978031793256be605b05ec556e69fc09  gcc/addresses.h
! 6104bb06e8b5a16c6679280b8bd89a47  gcc/adjust-alignment.cc
! 5d438dee0a1e7b7d8e461b07198f9f7a  gcc/alias.cc
! e1f9606817a872c9b1770a2950665e17  gcc/alias.h
! e2c04eccc631052e7aa15c27e287e593  gcc/align.h
! 889f9ffc24064f8ad2fbaf928d50d3e6  gcc/alloc-pool.cc
! aad6b6421ba955142beb58263efb7ca8  gcc/alloc-pool.h
! 862349cf69e7a85934ac81369c356236  gcc/analyzer/ChangeLog
! 71cd762fdeee724b494e94ea479c15fa  gcc/analyzer/analysis-plan.cc
! 2400916c9f340c6914b8432d05919cec  gcc/analyzer/analysis-plan.h
! 6084312218152cf76e77ec8df68925c8  gcc/analyzer/analyzer-language.cc
! 35da98c8ba32903fc53f27c7b60c76b4  gcc/analyzer/analyzer-language.h
! f64c8df2f59288df47e7137c22b82890  gcc/analyzer/analyzer-logging.cc
! 404e6b4c6833265580638c3916610f15  gcc/analyzer/analyzer-logging.h
! 92e040f30cba506709d2f7820d084fcf  gcc/analyzer/analyzer-pass.cc
! e5ad4adec1aadc1fb52476107b0db416  gcc/analyzer/analyzer-selftests.cc
! 82e5b94760ed762832503af1f46fccf5  gcc/analyzer/analyzer-selftests.h
! 8f93d2636b6152ee9fa7a667e5450df3  gcc/analyzer/analyzer.cc
! 3a7c4e4e9b1d9fa10a4952d2096a0c99  gcc/analyzer/analyzer.h
! 1c5871f9755f92c05f13b394de25addb  gcc/analyzer/analyzer.opt
! cded5757047ead6e74730e54e18f7acf  gcc/analyzer/bar-chart.cc
! 60b27c106c9537bd1e781ae8464adf1b  gcc/analyzer/bar-chart.h
! 0a08ca261123d8fc98a5aa3b2ff58ca0  gcc/analyzer/bounds-checking.cc
! 6b6e0901473290ad319a87cda3947b02  gcc/analyzer/call-details.cc
! 245e7b9a0108f14c71f67b9a9b009325  gcc/analyzer/call-details.h
! 3189e382c5a9be7e71ebf627e0b75961  gcc/analyzer/call-info.cc
! a0e15438ec04b2556ebb112e01e89952  gcc/analyzer/call-info.h
! 2239ec787fad77a5b6dea3ca6a0620f7  gcc/analyzer/call-string.cc
! 46d32244c2de1cd5d9bdddd851210e53  gcc/analyzer/call-string.h
! c51d4fb626f56786fce68579af18ec47  gcc/analyzer/call-summary.cc
! 819c37f4afeb81a9a97415a089000223  gcc/analyzer/call-summary.h
! 8a41323aa257065885bf96dfaf8cb986  gcc/analyzer/checker-event.cc
! 095f746318c2c0b54322b39483925ef0  gcc/analyzer/checker-event.h
! d2e0b822c9f7c5bcd0cf55ce1bb05e5c  gcc/analyzer/checker-path.cc
! 9e4c31b74f0c53c83ec54d8b5e5e7fdf  gcc/analyzer/checker-path.h
! 6d1f392b0a7b3ad5fb775709ffd9d9b2  gcc/analyzer/complexity.cc
! 3c69f624c442f52947d127f78c5f0785  gcc/analyzer/complexity.h
! 89e949f41aa8f2a681b38499fa613a21  gcc/analyzer/constraint-manager.cc
! 409d6fa751305734672adc0510a6dd78  gcc/analyzer/constraint-manager.h
! 356e8f28d83330404dd8a5b5b891469d  gcc/analyzer/diagnostic-manager.cc
! f77bcbdfbc52ea12a50fef39dd640bc5  gcc/analyzer/diagnostic-manager.h
! 5056bb759da397c6e45974f84d555b21  gcc/analyzer/engine.cc
! 5fad989c6cf29a58131d954d5e869f6d  gcc/analyzer/engine.h
! b046d01a504b00ed0c8f0209ba0892c2  gcc/analyzer/exploded-graph.h
! e84037dd3458b141b35f6f718aeb1ca1  gcc/analyzer/feasible-graph.cc
! 4a03c303129be5defe21cb7525c2d5d8  gcc/analyzer/feasible-graph.h
! 174e5e626a09974301c14113f7aa2eb4  gcc/analyzer/function-set.cc
! 8b4b965355b6e6f8078aa2f58733b1c2  gcc/analyzer/function-set.h
! 88201b6dddc1371f6f47d023a6bf5eeb  gcc/analyzer/infinite-recursion.cc
! e1eef3cefe2c5c66ad3a72f4af11df7e  gcc/analyzer/inlining-iterator.h
! 4da22ec289817922154891f28955bbb3  gcc/analyzer/kf-analyzer.cc
! ed32e24c398ffb49bd829c77b37f9577  gcc/analyzer/kf-lang-cp.cc
! cf25a862be97599133dfce78fa57ee1d  gcc/analyzer/kf.cc
! d24d56ded560a10b2edc0e92d0faaa22  gcc/analyzer/known-function-manager.cc
! eba4edd647868d36322e7c38bebdde60  gcc/analyzer/known-function-manager.h
! 3d5c36ce6cdb84c3e3b900f5f2bc06b8  gcc/analyzer/pending-diagnostic.cc
! d405ae8ce33151394d8318c041553037  gcc/analyzer/pending-diagnostic.h
! 4fb578b13b9c13582515bb98a9d8a44b  gcc/analyzer/program-point.cc
! a2282f17682c81de6bbf63bb8faae034  gcc/analyzer/program-point.h
! 828c46920a8dd63084fef2b0a7791608  gcc/analyzer/program-state.cc
! 212950fc0faff93dd23ba489ec66d3b1  gcc/analyzer/program-state.h
! 624821064dcb4a4879da1c6f63792920  gcc/analyzer/reachability.h
! a6d8f7d03a8c67f25d62ce7c28bb017c  gcc/analyzer/region-model-asm.cc
! fba261679900e26a6fc2a9626ccb8fc4  gcc/analyzer/region-model-manager.cc
! cfcffee1211384fccf393a4fd2b2064f  gcc/analyzer/region-model-manager.h
! 6b215a2b0593ce9b93d92bc26c058b55  gcc/analyzer/region-model-reachability.cc
! bac0ef51d6cb9e568a105621c3595fc3  gcc/analyzer/region-model-reachability.h
! e02011caba2d56a60f9ea6d0bf66b9e8  gcc/analyzer/region-model.cc
! 82dcc67124a82c84a906aaac246fd168  gcc/analyzer/region-model.h
! a805ae3a5f4e40a3e25c774a087bd08d  gcc/analyzer/region.cc
! 080d3e83da6bdaa6d2bb7b433034f044  gcc/analyzer/region.h
! 4687dc517264a9c9464c3babe9978c1a  gcc/analyzer/sm-fd.cc
! 281c241da80afbc19464d68d9ec58cb4  gcc/analyzer/sm-fd.dot
! 0a4df09d154ac49bece0fd155d590a45  gcc/analyzer/sm-file.cc
! 799b0b58cf75d61bdf36a18def9580c8  gcc/analyzer/sm-file.dot
! 5bb98f90fbeece882226e04af09ffe6f  gcc/analyzer/sm-malloc.cc
! bf15e55ffdb8d42d8ea6f33329a44eb1  gcc/analyzer/sm-malloc.dot
! b621465e0fa31d19e84fc40b460b3264  gcc/analyzer/sm-pattern-test.cc
! 9f3d09065bd05bf19a476fc5af18c56d  gcc/analyzer/sm-sensitive.cc
! cbab4d229b54b60402326e97cc337f31  gcc/analyzer/sm-signal.cc
! 127173b38b545e9e39145503328d0540  gcc/analyzer/sm-taint.cc
! 3a191d66e39aaada43bdab4a6908131e  gcc/analyzer/sm.cc
! 1489c45be87c0a2b68d855ed3953ad55  gcc/analyzer/sm.h
! f83ba210d05f5329ca4ca2aeb3a649d7  gcc/analyzer/state-purge.cc
! 34c1ff5539fdfdcc25afa2c74dd492fd  gcc/analyzer/state-purge.h
! ffa9ab3ff70c495547abd4f0990f26af  gcc/analyzer/store.cc
! ce1502221a6b4f60b4d68e17e432e0aa  gcc/analyzer/store.h
! 4d00a8a1ae1d1e516cfa48dde565b388  gcc/analyzer/supergraph.cc
! c2f2cde735be8754015b085d20409b06  gcc/analyzer/supergraph.h
! 8ce4c3c6eb2473c657a3093fa09cbc89  gcc/analyzer/svalue.cc
! 2b6839e6b48483b78f9f7bbc3e075147  gcc/analyzer/svalue.h
! 8a66bccea7048ad36db80ad3a60556d0  gcc/analyzer/trimmed-graph.cc
! 6cc535d62619ab8fe9d621ed17dcebbb  gcc/analyzer/trimmed-graph.h
! a9cca2fc577d8b5039354046f9abf62f  gcc/analyzer/varargs.cc
! 47edda2a9e4ad848260206e8228a4ee2  gcc/analyzer/varargs.dot
! 6062e521f076f3ebecb6b7c10bc9c19c  gcc/array-traits.h
! 652c3cf62ea26ccbcbe15d6b09ee9fe6  gcc/asan.cc
! e88bf1ee507e058adecd43ef10ff557b  gcc/asan.h
! 1116915f4adb131b5451010ff6eb3264  gcc/attr-fnspec.h
! 75403fb1a76ddaafeebf05698a693e98  gcc/attribs.cc
! 910cd70bc9d3cdcaf432c9d1669b1393  gcc/attribs.h
! e174b4caa93ad41c4f53efed203ea6a9  gcc/auto-inc-dec.cc
! 5e297ee0acade8ac97fabe760b5e9ff3  gcc/auto-profile.cc
! 53e6081015db1da68c92d954c932ac53  gcc/auto-profile.h
! 340edf75f9fdacfbe681185c549b56e3  gcc/backend.h
! 2c7acdc49c294ee259cf96681120a757  gcc/basic-block.h
! 0bf2369d106e1b2a0daf5c20b8c18c1a  gcc/bb-reorder.cc
! 3ad42f3195454ddf0ad44aea8bdfa110  gcc/bb-reorder.h
! dcf82fc32dd2e8e29c5853bf4dc6fa1e  gcc/bitmap.cc
! 8b6ce913c0d62cb3d8a7c660be194357  gcc/bitmap.h
! 294ed61d52ae893dd5c09710fe945aca  gcc/btfout.cc
! bbdd0e6a2c558889d7b99c9e61ca5571  gcc/builtin-attrs.def
! cd880946aff3cd75bff1d0edafa92c14  gcc/builtin-types.def
! 8339eabb575538481e84e2e65c7e9384  gcc/builtins.cc
! 8a86b0c51f15d3cd6813b9c29784719f  gcc/builtins.def
! 92a923d816f64b2130d01c337f74afaa  gcc/builtins.h
! 8d979c85cc99f9bed25674a07af3aa84  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
! cb2dd3887aec46346c8b6f2e25cd2134  gcc/c-family/c-ada-spec.cc
! de8eafcdf817fbea182e701f29a59aa1  gcc/c-family/c-ada-spec.h
! 747d2e204f111e041977a8f383beada4  gcc/c-family/c-attribs.cc
! f144232c8e61d31781c975287cc87633  gcc/c-family/c-common.cc
! 14cc2c078b45b45e351e4ee4453dffe7  gcc/c-family/c-common.def
! 5dae9e83d3de07bbde587cb0204b8f57  gcc/c-family/c-common.h
! 71f04ad211b574b2cc40ed074b45e0dd  gcc/c-family/c-cppbuiltin.cc
! 3eb0b238f33b875eeedcf4ea912551cc  gcc/c-family/c-dump.cc
! 902577b245ca4efaf2dfa561b6fcbd6c  gcc/c-family/c-format.cc
! b45a3a85918a7fc67dd9ed25c98bb687  gcc/c-family/c-format.h
! 8601b945674da639ae713c6937e5edb3  gcc/c-family/c-gimplify.cc
! bf34104a64fd989a22d8b5502f957b44  gcc/c-family/c-indentation.cc
! 3234ffc53c680057ee5d3ff2ab383d77  gcc/c-family/c-indentation.h
! 078251e9ad9919f61135834da54e90a2  gcc/c-family/c-lex.cc
! 93df9aa0873ff86ddfffca340dfe26c7  gcc/c-family/c-objc.h
! 29d42f64cf0379ecb0c46b6edba3f4db  gcc/c-family/c-omp.cc
! 1fe613d2f471ea5e7c5cc28a55b63972  gcc/c-family/c-opts.cc
! 64a297825314ac3a33ed87583c63fc98  gcc/c-family/c-pch.cc
! 4e954855cc5471cec6e2f92e6029d510  gcc/c-family/c-ppoutput.cc
! e6c5f730dd701ef7973785a7c8deef42  gcc/c-family/c-pragma.cc
! 291e6dbd1f3ff17d1ba067d22eb8d6c2  gcc/c-family/c-pragma.h
! 3393a82ed74a9d1d9eb122a67a23a694  gcc/c-family/c-pretty-print.cc
! 41423bec7eaf515748c1e4cb455fd2be  gcc/c-family/c-pretty-print.h
! 0adbeaa3e205c1aba943bdbf75128ec0  gcc/c-family/c-semantics.cc
! 4db228f8d2a2a8197f03b026c662ced9  gcc/c-family/c-spellcheck.cc
! b61b11fd774225229263a3340bfa12df  gcc/c-family/c-spellcheck.h
! 8411b634e6ec8162b939e5dcb34197d3  gcc/c-family/c-target-def.h
! 049ab05c5422404998ab3673cf18a8ad  gcc/c-family/c-target.def
! f2fccfe3cc85eeb29299baf4e96dee97  gcc/c-family/c-target.h
! beb75e8a7cb114d9af708092226dc0ad  gcc/c-family/c-ubsan.cc
! 79e54a900b8b64b90c3eb82e40a758de  gcc/c-family/c-ubsan.h
! 5530d921cdae7bb1c72bc92c703c9ea2  gcc/c-family/c-warn.cc
! 59b4098846e607d14af0bb533d761dd2  gcc/c-family/c.opt
! 9e25d532fa20a9040f4d74794f090453  gcc/c-family/cppspec.cc
! 6c751e1baf3d7c296dd2b20e431b37d2  gcc/c-family/known-headers.cc
! 8ec9a4912d8b3f7d94a11ee04da7517e  gcc/c-family/known-headers.h
! 6b3898853ed0b8ac1c9365f8e0da36bd  gcc/c-family/name-hint.h
! 78725d6bd115506bafd5753f5e1e3cd0  gcc/c-family/stub-objc.cc
! 2f9e500a524636c37d74e2a1d2b02155  gcc/c/ChangeLog
! 99998984ca5752ab57a30960e8384032  gcc/c/Make-lang.in
! 5d00d791728697d48bdf1b6e276ce5bb  gcc/c/c-aux-info.cc
! 1c014228ffb2f2191a1ab3cbd03422dc  gcc/c/c-convert.cc
! df852b690a75bba89d32592872a61f48  gcc/c/c-decl.cc
! 1d53fd8d8e52cf57a0005164f40c31b7  gcc/c/c-errors.cc
! b425749aff683118700bf07ba9eb0653  gcc/c/c-fold.cc
! 36f1771d9957e6a1622b001a02e07e2c  gcc/c/c-lang.cc
! 3e5bd36fb34468c5f3a3b04875ded56e  gcc/c/c-lang.h
! 2c0aa1a5cafc6b82712c83a6a8499b61  gcc/c/c-objc-common.cc
! 319c8e804a253f36ed22b5b45df085fe  gcc/c/c-objc-common.h
! a6102f28720e472dd5ddc359bda6873b  gcc/c/c-parser.cc
! cb80c5b43133affc0dd1cdce71b319a0  gcc/c/c-parser.h
! 335ea162b657e6b61a17f3160590808c  gcc/c/c-tree.h
! 365c7e9ff9f0d2080855756b113f96ac  gcc/c/c-typeck.cc
! ab9869768090ce9680785aa66ec30241  gcc/c/config-lang.in
! 52877b1ddcc264e0b1e414c092ad78b2  gcc/c/gccspec.cc
! 05681ad54ba0d53b5bbfab61b6f033c9  gcc/c/gimple-parser.cc
! b533a52e577cb5b931c58ea29447e7a3  gcc/c/gimple-parser.h
! 906b2b6452ced7cb3661999408b82872  gcc/caller-save.cc
! 3c0b3a048a3c3abca678219398795c6c  gcc/calls.cc
! 158b2cc7af4b3645a2fa5d18b0711705  gcc/calls.h
! 7d2bc64e4484a0e55e1b7844b91204b6  gcc/ccmp.cc
! 081acff617120e3e3c99bafb4566d3d6  gcc/ccmp.h
! 4725a43a4cb6f02f9508f8d2bcf6b102  gcc/cfg-flags.def
! 74a43796a6b87d63e7141b67e6c9f78a  gcc/cfg.cc
! d2612ae30caab0fafd85f75b5c424177  gcc/cfg.h
! 75ec4eb4154c56649f6794c70e8211d7  gcc/cfganal.cc
! d2ee82e91fa150947cec2d680d653ad4  gcc/cfganal.h
! 705401865d5d99040773177efb1a6b29  gcc/cfgbuild.cc
! 650ab513e0404ac58a19e4200f491d8a  gcc/cfgbuild.h
! f58dfd6d19e5f05cdc84465ac491c541  gcc/cfgcleanup.cc
! faf5886336423b3c1589e8b8b55f2cec  gcc/cfgcleanup.h
! fe6774e694bd837ef62720fe344c1061  gcc/cfgexpand.cc
! e0f3df5bcd51198c70302a24cfecea78  gcc/cfgexpand.h
! 8645e0e85a21570658b7cd0f8b66028b  gcc/cfghooks.cc
! 38772c7ea67be80e15630312bda73eba  gcc/cfghooks.h
! b5f4ea42b8d9f3a3c90ebad493a090e4  gcc/cfgloop.cc
! 8654bc61679ffe8ddd2bdc28d664660d  gcc/cfgloop.h
! c1c032d2fc3eeaf6c0fa41ca7fa43fd6  gcc/cfgloopanal.cc
! d019cb2ea45f5fa1f8a9cf4c24738ff7  gcc/cfgloopmanip.cc
! 19dacb8567e06231de7fe4cc82fe63da  gcc/cfgloopmanip.h
! a3d3b9e0a19270da863980e32620853b  gcc/cfgrtl.cc
! ff0d9982292c281a6b688f5197843d72  gcc/cfgrtl.h
! 7ceb652e154c56d26946dcba0de00024  gcc/cgraph.cc
! 28bcd60d7f5480e7730f95b1b8683af3  gcc/cgraph.h
! 4adf120975b7f6553fea856b9e4c1622  gcc/cgraphbuild.cc
! e12eced2454a68c176f1d69ad3c515dc  gcc/cgraphclones.cc
! bd7f29e22e5d0cd3a6b598a82053e799  gcc/cgraphunit.cc
! 40601133406a9a11490ce86068a4e987  gcc/cif-code.def
! cf7fe7388be54e205514fd0c3032a455  gcc/collect-utils.cc
! fee34544a58c3b31ff2755596f6bcc79  gcc/collect-utils.h
! a2954cb0e881d6365706d9a91c59f24c  gcc/collect2-aix.cc
! a72185fb3571a1a22bbb61fc3b7454f3  gcc/collect2-aix.h
! 9ecfab7cfbeb854828d8a0109add6718  gcc/collect2.cc
! 44030d04130f80c7a8b32788a7d2f5e7  gcc/collect2.h
! cb80b744e071259c95e671849491dde2  gcc/color-macros.h
! e2b80b721f5d66e672c4f7978b551172  gcc/combine-stack-adj.cc
! c504f00fff763e20410a1053b7da498b  gcc/combine.cc
! 043cecacdd70fa8fef961a26b00040fa  gcc/common.md
! 23f07ab4bf90cbb512abeddcbcb4ed93  gcc/common.opt
! dbdf1cd9a2b5243c1b082761a4401069  gcc/common/common-target-def.h
! 259c1705f9cffe9f4cfa777db03f4643  gcc/common/common-target.def
! af9eb41a9005138a377c5c3228fa354e  gcc/common/common-target.h
! cb86bee78570cfcfdddea72c500d6ca0  gcc/common/common-targhooks.cc
! 6931fc217063c5dacb45b4e131629b48  gcc/common/common-targhooks.h
! fc58b748aac3806aacde6dded07976ab  gcc/common/config/aarch64/aarch64-common.cc
! d983944b066a9f91d172e604162aec56  gcc/common/config/alpha/alpha-common.cc
! cf52ea7bf51ae49e7e06fa2382572eff  gcc/common/config/arc/arc-common.cc
! 84e073cf5e63cefa544a5487559115db  gcc/common/config/arm/arm-common.cc
! cd30ab3b2f8d3619c517bbbb11327e90  gcc/common/config/avr/avr-common.cc
! b6aa06bc7a7bd27c2cb491c7f4fcb99c  gcc/common/config/bfin/bfin-common.cc
! 3f4c33e47f1dd32c6a3941e0d29da768  gcc/common/config/bpf/bpf-common.cc
! 72f7ae607e7fc2c7741c3c59750bc7de  gcc/common/config/c6x/c6x-common.cc
! 4c28e69040d0254af8f04a8d52d89fa4  gcc/common/config/cris/cris-common.cc
! 4832abbd303e0b8b26f95f722c1bd344  gcc/common/config/csky/csky-common.cc
! 66b2b8dd6d88c949891c7153251430a4  gcc/common/config/default-common.cc
! de9d29214668de8ff1d3342f112399b1  gcc/common/config/epiphany/epiphany-common.cc
! f5af84006ceedb8b558effab5e966caf  gcc/common/config/fr30/fr30-common.cc
! ef4bef6bcc0fd9bc205e0372936e2e9a  gcc/common/config/frv/frv-common.cc
! 92884e3745a520bd79446127d0e0cc1e  gcc/common/config/gcn/gcn-common.cc
! e9b5eb9f763e7c9c37f0cae3b2c2b227  gcc/common/config/h8300/h8300-common.cc
! d21c730dc37786b5299281f83a6d4fd2  gcc/common/config/i386/cpuinfo.h
! 0a78766a448c8a131457f5792fc31ae9  gcc/common/config/i386/i386-common.cc
! 9cb11e917d5515cc841c70c6b5a47a25  gcc/common/config/i386/i386-cpuinfo.h
! 4731966ebb40e4a624fc35f7076c0036  gcc/common/config/i386/i386-isas.h
! dd1706199d92845c343787ef21d4905f  gcc/common/config/ia64/ia64-common.cc
! d927e055cae5a7415d9a5837fd8dee27  gcc/common/config/iq2000/iq2000-common.cc
! 7f8b927f124783ae4cdee22ed57aee36  gcc/common/config/lm32/lm32-common.cc
! 41d9d01694d5c853747e6ba83ec37056  gcc/common/config/loongarch/loongarch-common.cc
! 3449bea6ef097f9b427efa9390197472  gcc/common/config/m32r/m32r-common.cc
! 602fe7c954132e48c3ed603a07932711  gcc/common/config/m68k/m68k-common.cc
! 8978f30fb8a5d81cacd5278a53e2fd12  gcc/common/config/mcore/mcore-common.cc
! 021bab1c98825fb1474aa0acfa11a210  gcc/common/config/microblaze/microblaze-common.cc
! 5cb05f682793316dbd1c40981dcef3da  gcc/common/config/mips/mips-common.cc
! 27278cd6eafbc92f951228b55d4a971e  gcc/common/config/mmix/mmix-common.cc
! 5bbc8f6ca4c6ab305133e527aa31d5f3  gcc/common/config/mn10300/mn10300-common.cc
! f457bb5638d934a151e7edc46827a64b  gcc/common/config/msp430/msp430-common.cc
! 204372fbc82b4058ead1ef512cf163e6  gcc/common/config/nds32/nds32-common.cc
! f090baa3eeef4f208d7d913eabec5765  gcc/common/config/nios2/nios2-common.cc
! 734965276e103515c51e4c5536c9fd07  gcc/common/config/nvptx/nvptx-common.cc
! fd9a622518df22b26e1d4c9b056de562  gcc/common/config/or1k/or1k-common.cc
! d7323dce1d39c8223cfe9d5e63ab846a  gcc/common/config/pa/pa-common.cc
! eaca975168796f157689ee9c7886096f  gcc/common/config/pdp11/pdp11-common.cc
! 0c355defac80c5da069d598be8a62dc9  gcc/common/config/pru/pru-common.cc
! 4cf23fe9040f863f48818a8b026265bb  gcc/common/config/riscv/riscv-common.cc
! a3c48e330c3cebe2d63f2c6fa396cfbc  gcc/common/config/rs6000/rs6000-common.cc
! 420ccb27cc2fb142e68507d18e2c2867  gcc/common/config/rx/rx-common.cc
! ef3b5f7ac092d1a20fbc3f6a59c9b390  gcc/common/config/s390/s390-common.cc
! 8c9d3545d6757160ca523f22c7631ed7  gcc/common/config/sh/sh-common.cc
! 9ecb8529886dda4cec275564b100b6ca  gcc/common/config/sparc/sparc-common.cc
! 0b63749d5d177dcabb7ba2185c66e872  gcc/common/config/v850/v850-common.cc
! 5aac2b9e8228dcedc200f814f094efd4  gcc/common/config/vax/vax-common.cc
! 5a05722a094c6d8561854ab9f61af260  gcc/common/config/visium/visium-common.cc
! fd0d3682ed953a3e7bbf135987dba0c6  gcc/common/config/xstormy16/xstormy16-common.cc
! bbb86dc26326c9e21536b29093ef0ccd  gcc/common/config/xtensa/xtensa-common.cc
! 08b08b7d10f25136197b98ebe582137e  gcc/compare-elim.cc
! c29a5051809c4038f65af7557c1e9fcd  gcc/conditions.h
! d343cb4b75d4bf1ab6e7001d3ce082eb  gcc/config.build
! d336699ad975d8add517758768d7dcdb  gcc/config.gcc
! b662bae3a7d9c705974244dea91c4cd2  gcc/config.host
! 8da4fc9ae08876e38bb09cdd25570478  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
! 6e675f729ec3b60e4084e37271317fd6  gcc/config/aarch64/aarch64-arches.def
! a79eaefe614145186fc7c5df98e8e176  gcc/config/aarch64/aarch64-builtins.cc
! 5261e48fdbbcfcfec5dd15cc3777a339  gcc/config/aarch64/aarch64-c.cc
! 2d006aaa471ab025cdc16bfe082c0dad  gcc/config/aarch64/aarch64-cc-fusion.cc
! ac2537b14908595ef01f03ea88895736  gcc/config/aarch64/aarch64-cores.def
! c92fe8de39f59c29808fbc4d06bb296a  gcc/config/aarch64/aarch64-cost-tables.h
! f36cfc0d8235a8638c1c878f0a78f3b9  gcc/config/aarch64/aarch64-d.cc
! 412f7e5d8e9b61050a72b7115a3b0849  gcc/config/aarch64/aarch64-d.h
! aa79e6c435e5a0665d38133b42f5d51e  gcc/config/aarch64/aarch64-elf-raw.h
! fdc449f6d081929b3aac795e0f3fdb8b  gcc/config/aarch64/aarch64-elf.h
! f3af4a840fabb36f7cfd20df12d20cd8  gcc/config/aarch64/aarch64-errata.h
! c078babb011318067b0732afd220560c  gcc/config/aarch64/aarch64-feature-deps.h
! bcce9f393a1c20a7530aee1fb89f531d  gcc/config/aarch64/aarch64-freebsd.h
! da1c20bb52f8669f737e6852bf618530  gcc/config/aarch64/aarch64-fusion-pairs.def
! 4595dd7acaa56b83651a39124c9c7540  gcc/config/aarch64/aarch64-ldpstp.md
! 836c7bac12f6d83fae19773b92f72bd7  gcc/config/aarch64/aarch64-linux.h
! 9a775e661e3e8aa11568f29ebef0f1a4  gcc/config/aarch64/aarch64-modes.def
! 146b51cf983ab44a878c1351b8f4c6aa  gcc/config/aarch64/aarch64-netbsd.h
! d359a88302c0b2bb716e8b617f4b2350  gcc/config/aarch64/aarch64-option-extensions.def
! 8bbbeb4756cec87eab1d89246bd01f25  gcc/config/aarch64/aarch64-opts.h
! 91176342d31ac6307d443997a999b243  gcc/config/aarch64/aarch64-passes.def
! d93b24df2711bc7b43bd4a9fb9089155  gcc/config/aarch64/aarch64-protos.h
! 23dc6883d113e3276cfc51cd7602663a  gcc/config/aarch64/aarch64-simd-builtin-types.def
! afd3ea5ae83178ba9ef0abc732623c75  gcc/config/aarch64/aarch64-simd-builtins.def
! a8aad92f02ba8729f4cd1b8b3c4efc5f  gcc/config/aarch64/aarch64-simd.md
! 0fd01f881e8207e1d6c6521e7122e0a0  gcc/config/aarch64/aarch64-speculation.cc
! 3bb5af31e0168e86e3ebab238957919c  gcc/config/aarch64/aarch64-sve-builtins-base.cc
! 59c3c335a6c6e57c547fb2e9fef3eef9  gcc/config/aarch64/aarch64-sve-builtins-base.def
! 33bd4a836a53e47b04b4c46ba55098c9  gcc/config/aarch64/aarch64-sve-builtins-base.h
! 768e4d9fba61f6fed2d93aa6876abcc2  gcc/config/aarch64/aarch64-sve-builtins-functions.h
! 95fba8f677af6b5ce473993252b2e591  gcc/config/aarch64/aarch64-sve-builtins-shapes.cc
! 33225ba0ccaf7cef5d184301b71d91f2  gcc/config/aarch64/aarch64-sve-builtins-shapes.h
! fb2af51188d71aa0ad4edbb97be3fe41  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
! 94a640c820db6e5f2bde180059533e41  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
! 458403098e98fa807f0a9df51c118ca1  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 45d75fc8775a4aa44d49b8571fdf7b29  gcc/config/aarch64/aarch64-sve-builtins.cc
! d944ba1876e827e8299a96fc31433c22  gcc/config/aarch64/aarch64-sve-builtins.def
! 4ec15579b7cd3388c4d8eb7117540e35  gcc/config/aarch64/aarch64-sve-builtins.h
! 1fe26d857090234eb7ecd771b092f5fe  gcc/config/aarch64/aarch64-sve.md
! 539c5094467274e03fa1ea0087d02d65  gcc/config/aarch64/aarch64-sve2.md
! 9f9353410944e1ba22a73985a4dcdd50  gcc/config/aarch64/aarch64-tune.md
! 59a2e50c10aa66ea9757d8594c3cb6dc  gcc/config/aarch64/aarch64-tuning-flags.def
! 703c876523c318a07e43cdfe4a0a2bee  gcc/config/aarch64/aarch64-vxworks.h
! 1581978d68e409820d90a86639f25f94  gcc/config/aarch64/aarch64.cc
! 24d28d2a8356bf6e5b9d5f2df99ba7c9  gcc/config/aarch64/aarch64.h
! 7be653fa598aed3a4004f9c7d74993d8  gcc/config/aarch64/aarch64.md
! 27b3d58e07a631b044b51b2920e36271  gcc/config/aarch64/aarch64.opt
! f10e987cf60989a2c0882723035228c8  gcc/config/aarch64/arm_acle.h
! 037341ded31b1b6e3ab4e48e63f32185  gcc/config/aarch64/arm_bf16.h
! 9daab2a4cceb64a105423dbe8ef5181e  gcc/config/aarch64/arm_fp16.h
! 49f3c6f105768a506f86a302f827c988  gcc/config/aarch64/arm_neon.h
! 986e88e2f91801a99c68c9caa2a129d6  gcc/config/aarch64/arm_sve.h
! e0d82c4a6ccdb783c299ef853b07a85a  gcc/config/aarch64/atomics.md
! 2076279934af8fccc1c16c1a8e563aa1  gcc/config/aarch64/biarchilp32.h
! 69dd4b2a05ab2311a8b4ad2b29ecfa6e  gcc/config/aarch64/biarchlp64.h
! 5d97853bf44cafd1dd5a692c7ecd6d9e  gcc/config/aarch64/check-sve-md.awk
! 13907bf624e4b4301887700631c9e355  gcc/config/aarch64/constraints.md
! cb3895773e41ffc0b75ab3f97389f5d5  gcc/config/aarch64/cortex-a57-fma-steering.cc
! 71f38a11477d951dc128122e18895417  gcc/config/aarch64/driver-aarch64.cc
! 1ccc0238da5ced89db717f38da7987aa  gcc/config/aarch64/falkor-tag-collision-avoidance.cc
! 6ea648b863a85cca380d5385687c7249  gcc/config/aarch64/falkor.md
! c89c7b8fec07c5b75e3628a6ee822c1f  gcc/config/aarch64/fractional-cost.h
! 47ed472d8ab7676239a8c2afaee00d0c  gcc/config/aarch64/geniterators.sh
! 02eca4bc365f9478480ced1203a5fbf8  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
! b638f297b47e48ec8ffd6d671c876392  gcc/config/aarch64/iterators.md
! 3ffffea8efebe8709a5fb79b70ebef56  gcc/config/aarch64/predicates.md
! 0cba3aa930062f2526baf26c05de99ce  gcc/config/aarch64/rtems.h
! bfaa30c9cf04a5f4960f9507fb6c93ed  gcc/config/aarch64/saphira.md
! f8401c41771320e42d82d904528f30d4  gcc/config/aarch64/t-aarch64
! b13fbbb8bc5ad0779c37bd8922986739  gcc/config/aarch64/t-aarch64-freebsd
! 1833a05cc15835bd438ca7c0ac5e9a3c  gcc/config/aarch64/t-aarch64-linux
! b13fbbb8bc5ad0779c37bd8922986739  gcc/config/aarch64/t-aarch64-netbsd
! 257426d7678bfa2fbdd578bf4207e214  gcc/config/aarch64/t-aarch64-vxworks
! 2671580d2cd97f3bb851ee3ea005d652  gcc/config/aarch64/thunderx.md
! ed9df866f7edea86e3a9c21812574f51  gcc/config/aarch64/thunderx2t99.md
! 3134b09b8ad99a96f925eb2ab4e7da25  gcc/config/aarch64/thunderx3t110.md
! cd9ec5d7e095ec94526157a6d9ec93eb  gcc/config/aarch64/tsv110.md
! 88acf4a83af801cf69b1a23964f4c67f  gcc/config/aarch64/x-aarch64
  a07ee362a4961e9d41cb0ab83553de74  gcc/config/aarch64/x-darwin
! 6565aa0e22b20e2a9485e9d3f2e6e71a  gcc/config/alpha/alpha-modes.def
! 53e995fef3331a988f2b320316d159f1  gcc/config/alpha/alpha-passes.def
! aff485c72ebe107fc7c9599affeb2726  gcc/config/alpha/alpha-protos.h
! 2d35094dc6653a8e437fba42c170ec94  gcc/config/alpha/alpha.cc
! 446505a9b6a502168faad76aec44808e  gcc/config/alpha/alpha.h
! 3938a9d967b17b9bdfdba71e0d3bcf8e  gcc/config/alpha/alpha.md
! f6ac905f9f792ff6b01903c1e1a9c8c0  gcc/config/alpha/alpha.opt
! f7fa0546a73c06f853e5f9f9a1c1e0b6  gcc/config/alpha/constraints.md
! e0f40b5bfbc064296f490ee0452a7c6e  gcc/config/alpha/driver-alpha.cc
! 68b07461f0b20c6f7a8b740b1b090bab  gcc/config/alpha/elf.h
! 76dbc2f9ee0598fe4cb6f4593a18f3ca  gcc/config/alpha/elf.opt
! 1238edd224e1c6969def31c7265a39c8  gcc/config/alpha/ev4.md
! 3c2649edfb87acdb158622213f4beee0  gcc/config/alpha/ev5.md
! 3e11b46d6ef93a0721e4533e57000615  gcc/config/alpha/ev6.md
! 323a0ab4d399e25867e0d652981296ad  gcc/config/alpha/linux-elf.h
! 3d91718d29f4da8e4d1326d62a0b4792  gcc/config/alpha/linux.h
! 8d6f9aa171920cee56c102ffbfb205b5  gcc/config/alpha/netbsd.h
! 4075675b2faba714a429d47412fb1539  gcc/config/alpha/openbsd.h
! af36894cdf865cf5dcc800ed285fe79f  gcc/config/alpha/predicates.md
! 25df3ffb7ab01bb56b4723ed9a97d10a  gcc/config/alpha/sync.md
! a096ab4161f729079c0fd149934c5b5e  gcc/config/alpha/t-alpha
  6e8dd648b9668f18b1dfd9f1203c9885  gcc/config/alpha/t-linux
! f9c3f1e0b74bc195458d82f5abc17b8e  gcc/config/alpha/t-vms
! fcef7c9d97aa024585c78df87c0c12ed  gcc/config/alpha/vms.h
  b3c50e1f46a9bdacf84333c01cb8ec66  gcc/config/alpha/x-alpha
! 488a89436b1885606fd9724942a1b35e  gcc/config/arc/arc-arch.h
! bf27aebcc079431d639962fd79fa8fa2  gcc/config/arc/arc-arches.def
! 65fdde55320a9b719ca577cdf817b18c  gcc/config/arc/arc-c.cc
! 547bc8393f60800315bbfa33dc45776e  gcc/config/arc/arc-c.def
! 6d063f9a3a54f2e958d5040786dc49c2  gcc/config/arc/arc-cpus.def
! 9c4772413f9895f55a6110b4dd4b1500  gcc/config/arc/arc-modes.def
! 1a4368486cdf41ab84e3056cc729a797  gcc/config/arc/arc-options.def
! 5fba547c5dc5931b194cd3f290973d5a  gcc/config/arc/arc-opts.h
! b17178668bfa12ad9307406aca1faace  gcc/config/arc/arc-passes.def
! 0ebbb1becd4dfef7a00df66b7a46e953  gcc/config/arc/arc-protos.h
! 751b7f6b5b81abb81d75c5af0c3093c7  gcc/config/arc/arc-simd.h
! 9385817a3443d22f5d8ff389eb2fab65  gcc/config/arc/arc-tables.opt
! 6a27f4df00bf129c2a49154412644c12  gcc/config/arc/arc.cc
! e1f5520b7247550fb08ef72d131490ab  gcc/config/arc/arc.h
! 8dc7332c9a2687c43ddc1c96d4dab8d1  gcc/config/arc/arc.md
! cd858ee590fe991287a78c891cf2115c  gcc/config/arc/arc.opt
! 3ad64ff532deb8a9673ba5bbcb468127  gcc/config/arc/arc600.md
! 591b14f706fd5046f96298674fb91688  gcc/config/arc/arc700.md
! 2ae33b1b1c6ffbcd60c63a82a75fb9e9  gcc/config/arc/arcEM.md
! 9e5970cdb9a22045b2dc2c4b846a63a1  gcc/config/arc/arcHS.md
! e94d1cc5c247dbcba24791eaa6b15c79  gcc/config/arc/arcHS4x.md
! 572a5cc163fddcc751e3abe8fd6a106d  gcc/config/arc/atomic.md
! 463a0cde34402d6b2d7a8181828529b9  gcc/config/arc/big.h
! ec6216a9d898937e176604598271e455  gcc/config/arc/builtins.def
! 9fd1714d22a63ec63dc4274c13875629  gcc/config/arc/constraints.md
! 52c775008c398e80ddf757617f07133a  gcc/config/arc/driver-arc.cc
! 839d107b60bede70569e0fe80b062df2  gcc/config/arc/elf.h
  255d583e6d23d9cbed1614263d159a1b  gcc/config/arc/fpu.md
! 469cd19791d794436de5f5f708548e29  gcc/config/arc/fpx.md
! 54014014165c4f334db056379ca63ab9  gcc/config/arc/genmultilib.awk
! 17096c6bd9ed887614e5b45969c387d0  gcc/config/arc/genoptions.awk
! da2a4e1909d513619be20657791f8cc0  gcc/config/arc/linux.h
! 6bc9f2c2c9f9705ad16aa321baef5c87  gcc/config/arc/predicates.md
! ff0aa36e9bc7748727e1184f18c119f9  gcc/config/arc/simdext.md
! 3388669ae6a8bea6285b93a784c19011  gcc/config/arc/t-arc
! ecc6706c3bc146b03c852ebcd5ad175b  gcc/config/arc/t-multilib
! 86a236d66b1cae8670990b1e08b30817  gcc/config/arc/t-multilib-linux
! b1bfb621f3f29a159c8650f3647fb4b8  gcc/config/arm/README-interworking
! 07f99dc0baa703ab076108b6e77054b1  gcc/config/arm/aarch-bti-insert.cc
! ca63c4366e212243c7df9824bdd68fe7  gcc/config/arm/aarch-common-protos.h
! db65e82cee423509d0be6685d5ecba68  gcc/config/arm/aarch-common.cc
! 5c6bfb59d5d81b0a6ff419d96bd362ce  gcc/config/arm/aarch-common.h
! 7f436ffa505547298b395cd6c9ec0b66  gcc/config/arm/aarch-cost-tables.h
! 7ee04988275aa4b7a25fb2feb6eabc83  gcc/config/arm/aout.h
! 22d5aaa4f0f3b0dca556c188d502cd60  gcc/config/arm/arm-builtins.cc
! 29d74474ed17edc15e48db1b64adb2c5  gcc/config/arm/arm-builtins.h
! c993c632c370d6cc88ac464888ab2144  gcc/config/arm/arm-c.cc
! 4b061521832370a4d57af48a6a4607a9  gcc/config/arm/arm-cpus.in
! 6f0a1fb7d932c6780f07e9ad4aaca5ed  gcc/config/arm/arm-d.cc
! 1584b4f2e7943ad5335720be7ddd9598  gcc/config/arm/arm-d.h
! 067fff54a8f3d4697aa4086ae0a05613  gcc/config/arm/arm-fixed.md
! c0dc86b3481cd0647e619cf0306f7186  gcc/config/arm/arm-flags.h
! 28ca7e8ad93c9a282432883362bee779  gcc/config/arm/arm-generic.md
! 930a49224eb7b12c277288c30728ed7d  gcc/config/arm/arm-ldmstm.ml
! add542f5904e67e032c6773e4e0419e9  gcc/config/arm/arm-mlib.h
! 98ac166693410cb2c583b7f66d27c68a  gcc/config/arm/arm-modes.def
! 4632e14f9b9406fd5c2a5c610a8e4331  gcc/config/arm/arm-mve-builtins.cc
! fb7e79a24a6fc10abe71d89c8eea2695  gcc/config/arm/arm-mve-builtins.def
! 17ef96859270b9bcb1911b14dc2f355e  gcc/config/arm/arm-mve-builtins.h
! fec195815e161a958d804dff02373640  gcc/config/arm/arm-opts.h
! a66f3c594c6fc329800e3fb836fdfd26  gcc/config/arm/arm-passes.def
! 38803f192ea6370abe161ef10e0b1a80  gcc/config/arm/arm-protos.h
! 604d3b4e6182f09e4a772f53ed92d704  gcc/config/arm/arm-simd-builtin-types.def
! 0e7b2ceea31abf677030625bec385ac3  gcc/config/arm/arm-tables.opt
! 5a144b12347f9e5cd1b3b8c2fcf8a8a3  gcc/config/arm/arm-tune.md
! 753a9c781f0df4ee0d1c924d44408ddf  gcc/config/arm/arm.cc
! c14964f7e41f42d7c9bf3b5b0b556ebf  gcc/config/arm/arm.h
! 4b623b84f69c0f93d1212fd10edf4ab5  gcc/config/arm/arm.md
! cf127021475a9bc9dca6dabb24611b52  gcc/config/arm/arm.opt
! ae0d6a7918a07a46e029c0586ebfd584  gcc/config/arm/arm1020e.md
! 411234d30435fe643f2aea88d2a73e8c  gcc/config/arm/arm1026ejs.md
! 7f49d46f824488f7bdd015d23d8f802c  gcc/config/arm/arm1136jfs.md
! 59473ee500695fdd1ff05006d60a3848  gcc/config/arm/arm926ejs.md
! b6c98c64a8f1a6f1b78d2afe227937bc  gcc/config/arm/arm_acle.h
! df69a8be574605f025ea19dc33d19fbc  gcc/config/arm/arm_acle_builtins.def
! 0eae0de3bf3cea54f2364e976143a87a  gcc/config/arm/arm_bf16.h
! 4acb9461296ac7345818fa91dce849ab  gcc/config/arm/arm_cde.h
! 7e6d9928423c323cde4eca1cfab9306d  gcc/config/arm/arm_cde_builtins.def
! dfc83255445673e1d6614fe8c8b5e6c2  gcc/config/arm/arm_cmse.h
! d6fef70ace0ae4ee8c79342bdd439e8b  gcc/config/arm/arm_fp16.h
! b641373612212f74e6a061622aa27323  gcc/config/arm/arm_mve.h
! 70355c5056697a2abb28cf3390269afb  gcc/config/arm/arm_mve_builtins.def
! 972ecc9a7f1d9ef1cb9957095e0de3bb  gcc/config/arm/arm_mve_types.h
! 05a32396895a46991ff4b4cee44c31da  gcc/config/arm/arm_neon.h
! 0cc2962c49dec12eb6d5a69963c371ae  gcc/config/arm/arm_neon_builtins.def
! 84ecce562f7cb7b7cc93005aac1c1017  gcc/config/arm/arm_vfp_builtins.def
! 79ab104de3312f2b4cf0f67d914a2d2b  gcc/config/arm/bpabi.h
! 65a7ab5fcf7564784afb364788a4283b  gcc/config/arm/common.md
! dd0f07e4c2335b9e8ee1d77a9ebb20a3  gcc/config/arm/constraints.md
! f6d76c35442b52381ff0dcd26efa83bf  gcc/config/arm/cortex-a15-neon.md
! 15f1c652045e6f032a1195b533ddb7ab  gcc/config/arm/cortex-a15.md
! 0f5b810c73bc341aee5e91fda44872a5  gcc/config/arm/cortex-a17-neon.md
! f1aa2053e0f54c0841f84986c2dc993a  gcc/config/arm/cortex-a17.md
! c24ca7ee2af7320414515bc61b949338  gcc/config/arm/cortex-a5.md
! 3097561328c10a36873d09981447f61c  gcc/config/arm/cortex-a53.md
! cd22dccd2f17aac9158028a09c2574a3  gcc/config/arm/cortex-a57.md
! f00fd170806fbcfd68663132b6b2b247  gcc/config/arm/cortex-a7.md
! bb0c61be0991ac39c05203f9fd56a36b  gcc/config/arm/cortex-a8-neon.md
! aa357fdebecf7f5f07d338bd4dd995d4  gcc/config/arm/cortex-a8.md
! e9518436e24007ef524142a934131672  gcc/config/arm/cortex-a9-neon.md
! 95fd5d849f6c5f9ab37a5aa3833b1116  gcc/config/arm/cortex-a9.md
! 5b5f511d118f7b1468e034e229c3a2f2  gcc/config/arm/cortex-m4-fpu.md
! 220b246afebc32ae5001f083785acb4a  gcc/config/arm/cortex-m4.md
! a4ed1a0f246682f8d51745c5b4a776c7  gcc/config/arm/cortex-m7.md
! 2a56d3aa33a63fc835640fd001c26ca9  gcc/config/arm/cortex-r4.md
! 0053da9e67f25bdddb1e584497f8a4bd  gcc/config/arm/cortex-r4f.md
! a6573f71c694ab598402b0d67c91609b  gcc/config/arm/crypto.def
! f00be1b6c44deb931ecc7cdf2238d651  gcc/config/arm/crypto.md
! bd05195d3f12420fad726b333d7a8192  gcc/config/arm/driver-arm.cc
! 8741e6b2ebda22d190749f330520e95d  gcc/config/arm/elf.h
! d8fbc01c1b1e2ad8f809a64cf588a705  gcc/config/arm/exynos-m1.md
! 01aba8e6f90716f42b42f853b9bb1fa9  gcc/config/arm/fa526.md
! e104a0a4449c8d71cd7bba42a336b2d1  gcc/config/arm/fa606te.md
! 77cb5c60fe53c88c25353346c7b608c8  gcc/config/arm/fa626te.md
! db1d888a13c8d3fe34e5276ce2819975  gcc/config/arm/fa726te.md
! 4ca792540ddb2c72f2d995c08d4223da  gcc/config/arm/fmp626.md
! 36a5628abd5fe7376df7e45729ca3fb4  gcc/config/arm/freebsd.h
! 3513a27a77451eee41b1d9a273634a6f  gcc/config/arm/fuchsia-elf.h
! aaf960f6a664546f0a30d21b35065302  gcc/config/arm/iterators.md
! ca361a03f818d15e0a9b6f7f79074713  gcc/config/arm/iwmmxt.md
! b56ab606861fed99a1573cdaf0ecbae9  gcc/config/arm/iwmmxt2.md
! d43b414f86a2fd389cf14e277c49ff2b  gcc/config/arm/ldmstm.md
! f9fe823fe08db8d96747679c884a5fbd  gcc/config/arm/ldrdstrd.md
! a753bd7ca5713decc30657e2cc8b7c30  gcc/config/arm/linux-eabi.h
! e45b1532fdeb51e5fe9fb275034b486f  gcc/config/arm/linux-elf.h
! fcd6b308d68cd7bc641bb91e473518bf  gcc/config/arm/linux-gas.h
! e2efbd2171ce4a6433002f5b9dabc4e6  gcc/config/arm/marvell-f-iwmmxt.md
! de8cd2160d601b4afb431254b804f705  gcc/config/arm/marvell-pj4.md
! be508a7c9d8bb071759bff618b2fbc2c  gcc/config/arm/mmintrin.h
! ca8c9182286824ade9c9ea366e90a540  gcc/config/arm/mve.md
! 86236a4f68353237e85467077b85fa66  gcc/config/arm/neon.md
! e092dc54e5e4e06263edfb3ec84d76af  gcc/config/arm/netbsd-eabi.h
! 6accf4d7d44501880bfd48b1eb70b05e  gcc/config/arm/netbsd-elf.h
! 70de61044d28e1a7d681e20415c69aeb  gcc/config/arm/parsecpu.awk
! 94d0d1e9a6ce530abdf9576dd9d161c0  gcc/config/arm/predicates.md
! 30753649d7ce578d7ddd26de429efda7  gcc/config/arm/rtems.h
! 547a0b07ca3a45b0c1471683ce4dfce9  gcc/config/arm/semi.h
! 310ae1480f31a67e5eb0b7042c1b9048  gcc/config/arm/symbian.h
! 19dd342c6042f83a2b293f7cd01b551a  gcc/config/arm/sync.md
! 5fa8ac854dd2c25ac5209eb919ac5bc5  gcc/config/arm/t-aprofile
! ac7a93ec9fe5b9530ac2f4477f8c6f20  gcc/config/arm/t-arm
! f5e458f99cfd08e756dd0bc40d7b9513  gcc/config/arm/t-arm-elf
  4dc427c456af5e56b1ac39bda8969af6  gcc/config/arm/t-bpabi
! 0c5fe8f8839feada333352fb1580d8f9  gcc/config/arm/t-fuchsia
  e3950ec6bd159734835f8f8fb143efc6  gcc/config/arm/t-linux-androideabi
! 735b618ba351ed0b8899d7b8bcb94f7e  gcc/config/arm/t-linux-eabi
! 687c0e473a8357eb9bbdf5b628db1fd7  gcc/config/arm/t-multilib
! dd332b5c4bf7f5818c7f79cc3af2ceb0  gcc/config/arm/t-phoenix
! 3c5684b96d4856f15396bf751735a810  gcc/config/arm/t-rmprofile
  c434e99f4fc47fd32ffab26fbeea8464  gcc/config/arm/t-rtems
! 99532a3b480860f7a66fd99e84508362  gcc/config/arm/t-symbian
! 951be86a80be890746abaaf44836bd12  gcc/config/arm/t-vxworks
! 3f0d4ea121f03e0f25da9fbf40fda7c7  gcc/config/arm/thumb1.md
! b864052b21701670ce016e2bf0220ed6  gcc/config/arm/thumb2.md
! 828cfc365756bb6e28d16660a2722f18  gcc/config/arm/types.md
! 8f644b0d696c8000b5b31ac50912783f  gcc/config/arm/uclinux-eabi.h
! 53ad55adc5a9fd90930c0335e26244d8  gcc/config/arm/uclinux-elf.h
! e7e7ef073cb669f87b1c3d19a818da5f  gcc/config/arm/uclinuxfdpiceabi.h
! 81115de2baf547c45bac2d5a9351d0d1  gcc/config/arm/unknown-elf.h
! ba045ad86a2d928edec4dd73916e3bfe  gcc/config/arm/unspecs.md
! d3f86ea670553a63589dd121a82deda4  gcc/config/arm/vec-common.md
! 6b0999f69646c0e1acbf4c59437ddb12  gcc/config/arm/vfp.md
! a373ca0dfe835fe420a8d470352225d5  gcc/config/arm/vfp11.md
! 0c48cf1cdfe34e99dab3413a702c4b55  gcc/config/arm/vxworks.h
! 19d25b9fb05789a755ec49d65b5d6fcd  gcc/config/arm/vxworks.opt
  8bb1a840fb87b138c620682ccad6aee4  gcc/config/arm/x-arm
! 6557b7f6ab628dc278de34a967b55c6f  gcc/config/arm/xgene1.md
! c06375fedec56db8bdb1195c9a2080cf  gcc/config/avr/avr-arch.h
! 381efaebb87fd07e32734f6e3b160252  gcc/config/avr/avr-c.cc
! e7d437ddab475cde666ae68d62c0e322  gcc/config/avr/avr-devices.cc
! 1a8dcd65c377e063a63bb97bad385cf3  gcc/config/avr/avr-dimode.md
! 708f772e2588821bfa91118474a89d0a  gcc/config/avr/avr-fixed.md
! c3ab3d8980033cd869c1c27b318115ce  gcc/config/avr/avr-log.cc
! 19333eea3074ad82cd12a01c285f27ba  gcc/config/avr/avr-mcus.def
! 69b36d3d75fa8c748a6f1c843d6888f7  gcc/config/avr/avr-modes.def
! 9126e9ec7dee9b9d66f6893bb9926647  gcc/config/avr/avr-passes.def
! 7fa305f06b48848dfa8858e3ac47abde  gcc/config/avr/avr-protos.h
! 55c51229f13ced0bdddbfd397c9a57d4  gcc/config/avr/avr-stdint.h
! ed2dc442bc461fed8e66f31f790af833  gcc/config/avr/avr.cc
! 04926666a46570c47a3a09b87eb42001  gcc/config/avr/avr.h
! b5ddce92f2d098d94851468a9024c622  gcc/config/avr/avr.md
! 992bc72e7412c260c381c794091a4a63  gcc/config/avr/avr.opt
! d5ca1928fb0eef4a39e419faa25782b4  gcc/config/avr/avrlibc.h
! 82e55abb13cdee932b88cb4c074f76fe  gcc/config/avr/builtins.def
! f0880103f5af621d5051b6b0ef710ba1  gcc/config/avr/constraints.md
! 905139871da55857966ac5fdab9d0ce2  gcc/config/avr/driver-avr.cc
! 828f146c096d2950c6ab263bc3818e13  gcc/config/avr/elf.h
! eac5e28984d593928e1e3adce65797e4  gcc/config/avr/gen-avr-mmcu-specs.cc
! bcef8a3e0aed8ec9bca46e7c98959588  gcc/config/avr/gen-avr-mmcu-texi.cc
! b66a49b68d591a6c0b7af5fc6a368c25  gcc/config/avr/genmultilib.awk
! bcf32309fb3db2a9d7062f64b15abd3a  gcc/config/avr/predicates.md
! 55f61938445efff9a372e6135a536342  gcc/config/avr/specs.h
! a90b049a5422ac5aa92130f8d01d1a39  gcc/config/avr/stdfix.h
! 5f9b9e751722dbcab353617d7f7521a1  gcc/config/avr/t-avr
! 17266d6ea4ed538b3d9b230711b7213f  gcc/config/bfin/bfin-modes.def
! 7d02e96e590a23cf552742256e6b40fd  gcc/config/bfin/bfin-opts.h
! 810d6fad9e530e06b117bb7a07a62e4a  gcc/config/bfin/bfin-protos.h
! aa36a5018e8544e8de3af92a62a7b06b  gcc/config/bfin/bfin.cc
! dc55459717f652bde791724f7b8039cb  gcc/config/bfin/bfin.h
! 075a0db1ed6c90ea423c7a0b4b5e661b  gcc/config/bfin/bfin.md
! 9b542f2f1ad2911350fbc8a7c24f057c  gcc/config/bfin/bfin.opt
! 3b42217f240addb4b11d91dc6319d6d5  gcc/config/bfin/constraints.md
! 0bc2a303988768893003637d9e2a6840  gcc/config/bfin/elf.h
! aa213aa8c02fdc9ec36c106ba3b045fd  gcc/config/bfin/linux.h
! 67a604eb0da33c19382fa98e9b079671  gcc/config/bfin/predicates.md
! 0a4cbe541bfd49ad024761acfc63c7c5  gcc/config/bfin/print-sysroot-suffix.sh
! 49f8d709dbe2a67ebf0ee65b0c8e0223  gcc/config/bfin/rtems.h
! 4ddce57f5057a2cdc0cdc991b8f6f656  gcc/config/bfin/sync.md
! 7ae51ed04a026f2a7d735498f228aa62  gcc/config/bfin/t-bfin-elf
! 82b9d2d8ef06f890114b03ebe61bf1b6  gcc/config/bfin/t-bfin-linux
! 632189c422f7384251fc690c3c96535c  gcc/config/bfin/t-bfin-uclinux
  6f4817f759fcac5ac27233ee451780a6  gcc/config/bfin/t-rtems
! adbd8828f9b4c2334f595a5f3abeb257  gcc/config/bfin/uclinux.h
! 0c0d1f8641917d84b02511efddc6e9fb  gcc/config/bpf/bpf-helpers.h
! 165525062339406acd3268c8ef5b7ca8  gcc/config/bpf/bpf-opts.h
! 867d74558ab2b7a875b2585a51537ee8  gcc/config/bpf/bpf-passes.def
! 8ea522949ff9faaf597963853c5875e5  gcc/config/bpf/bpf-protos.h
! a75f743c149ed9a79d30987210174048  gcc/config/bpf/bpf.cc
! ca01480b6c2135de6dc2217725956f16  gcc/config/bpf/bpf.h
! a539aebf891dc87161f6f9cc532b5466  gcc/config/bpf/bpf.md
! fe8fafbe3c73b1f057a29ad866f9446c  gcc/config/bpf/bpf.opt
! e33b3c4c9c6d3c17bbf24c0452d768c7  gcc/config/bpf/constraints.md
! 8ed2522205eead01a145c59591bf23f2  gcc/config/bpf/coreout.cc
! b4f0e80273c188b51f257fe46b7633aa  gcc/config/bpf/coreout.h
! b6cd521749e01e6eb38288fe2b9fa906  gcc/config/bpf/predicates.md
! 290c61502f2095fde313896f88d95081  gcc/config/bpf/t-bpf
! c2083c99e2df05dfe4de72bbf81962ba  gcc/config/c6x/c6x-isas.def
! 77709387e0039fb7e471aaa4829ace5a  gcc/config/c6x/c6x-modes.def
! 0d05427c02bce55eaaeb9ad58d249256  gcc/config/c6x/c6x-mult.md
! 8057378996df5f6010962282fa418b42  gcc/config/c6x/c6x-mult.md.in
! a00fb3aedfc5a637c9f4d39e3c5b047c  gcc/config/c6x/c6x-opts.h
! 176e3ad81dad099dea3fb1e474453c76  gcc/config/c6x/c6x-protos.h
! ad12c24ac0ba7bc00cc3b05a2b03a271  gcc/config/c6x/c6x-sched.md
! 449c3797415fda8b6e23a6673c2d8fd7  gcc/config/c6x/c6x-sched.md.in
! 4ef316b33b3a9cea68e33a6323b63808  gcc/config/c6x/c6x-tables.opt
! 2821881bbd6e1987aa6b23d189146d9f  gcc/config/c6x/c6x.cc
! af13fb79499732535f0053bd39dfcc5d  gcc/config/c6x/c6x.h
! 1393e7fa16d26a5d481d646ab2aa7bc5  gcc/config/c6x/c6x.md
! 15f6aabadaa6fea0bbee5f8bdd0266a2  gcc/config/c6x/c6x.opt
! c01577c9da48a3fde6ac8c77d791985e  gcc/config/c6x/c6x_intrinsics.h
! bd6b7fb6ed7bd06f266ca8e297733e9f  gcc/config/c6x/constraints.md
! c116569820ebd6b70eede9b7e4789637  gcc/config/c6x/elf-common.h
! 38095ad8443f288cbc265ad28d09750a  gcc/config/c6x/elf.h
! f3626989252713d5c15e6542749ec6f3  gcc/config/c6x/genmult.sh
! 47bef1c71903670446cfb53f76b56023  gcc/config/c6x/genopt.sh
! 9090ddd267e6445761356a12f6f784b6  gcc/config/c6x/gensched.sh
! c8d544fc92cce2f4e19b86092f67b1b3  gcc/config/c6x/predicates.md
! 846b3a2df31f9be7bdd149d6f3565106  gcc/config/c6x/sync.md
! 925e94eb04615d56cb9e3cc29733a47e  gcc/config/c6x/t-c6x
! 4ba9cc5e61d80fb5db21e97253f4531f  gcc/config/c6x/t-c6x-elf
  428034a210600b6b423dfadb06636e03  gcc/config/c6x/t-c6x-uclinux
! 7c1d9395838d00db0300f688b0724ce0  gcc/config/c6x/uclinux-elf.h
! ede07ed71e327aef30d0e3afdb9d0d89  gcc/config/cris/constraints.md
! e907fc5424c440f748a6a5d4ffc39a8d  gcc/config/cris/cris-modes.def
! a15cacb91defbe6eff2abf59d38fd98b  gcc/config/cris/cris-passes.def
! f2c3af2b218d26a48be71332ab3d3837  gcc/config/cris/cris-protos.h
! 6a40ba1f0dac24d0171eab8d89413a40  gcc/config/cris/cris.cc
! 4bc47fd3b743b393ea3514d53b95e81e  gcc/config/cris/cris.h
! 47afeeaf84be23fc30c7d414f35e8c84  gcc/config/cris/cris.md
! 0fcde1ca773a46b4b021de3c2b225fa4  gcc/config/cris/cris.opt
! 4224eaf9e86e89ee1ee38260368e1f46  gcc/config/cris/elf.opt
! af2b2b2fa58c719778f80ae1994f9572  gcc/config/cris/predicates.md
! 904024d02e77ddb36578b1485fcf6b39  gcc/config/cris/sync.md
! 28abcc4dab5a6e355f6b11c7ab60f110  gcc/config/cris/t-cris
! 102d51b8ee464f869c15ebe38d83ee93  gcc/config/cris/t-elfmulti
! e8d6badeffaddc788755eceffe91f08a  gcc/config/csky/constraints.md
! ae8bc0ae5e246fa2a41877af651526d8  gcc/config/csky/csky-elf.h
! 0b1105f80e411c144f1f312a01c2773f  gcc/config/csky/csky-linux-elf.h
! 18d2e2f2ee403a1828b57fea528c3cb7  gcc/config/csky/csky-modes.def
! 630574afafae23fb6f7f42e147f5dc29  gcc/config/csky/csky-protos.h
! b74854702ea96d0eef4aad4b91153ca3  gcc/config/csky/csky.cc
! 47808c2a02dce80c47de318fc9cffa2d  gcc/config/csky/csky.h
! feafcdf0bbe3ddd7aa498e86894ec6b7  gcc/config/csky/csky.md
! 91681a425d4824fe2c0af4a8dfe346f5  gcc/config/csky/csky.opt
! a5928b42615f2579113c7befd6d8f548  gcc/config/csky/csky_cores.def
! 60f760a7651121dc4be995b082cc42d5  gcc/config/csky/csky_genopt.sh
! 003be9ea72af3ebebece939b8ed3cf2e  gcc/config/csky/csky_insn_dsp.md
! 583270ad4cb92d9ee4f00323d0e5f46e  gcc/config/csky/csky_insn_fpu.md
! 2bcc44baa7272a9ce4f4d39a83bc3dba  gcc/config/csky/csky_insn_fpuv2.md
! d474545a10500aef4abf8494916326f2  gcc/config/csky/csky_insn_fpuv3.md
! 363a8636493f9db7d1cc78856e33acf9  gcc/config/csky/csky_isa.def
! 50dac77bce7573aebc671cf3c718d55f  gcc/config/csky/csky_isa.h
! 8c1c207bba1289d6a6223e56eb352bd8  gcc/config/csky/csky_opts.h
! eb3c96b1bbbf8c2d61de0e86fc317fca  gcc/config/csky/csky_pipeline_ck801.md
! 5bd1b7c7adf1e153a1aadfe1849d19b2  gcc/config/csky/csky_pipeline_ck802.md
! adcc9b2aa98e1651e09517b0e5e7dd93  gcc/config/csky/csky_pipeline_ck803.md
! 26cb8b39e17ad2a73b4f83f474ad05c2  gcc/config/csky/csky_pipeline_ck810.md
! 1fde3545d624ac0c81fabfcb39a17683  gcc/config/csky/csky_tables.opt
! 5ccecb6edd58fe07538f6c1f5db8563b  gcc/config/csky/predicates.md
! cd03b988a7bd186e66210d7bb24d12ed  gcc/config/csky/t-csky
! 38641d1c973c0eb92953d7e542792f02  gcc/config/csky/t-csky-elf
! 92e09d436d26dd5f2e2b2090dba422ce  gcc/config/csky/t-csky-linux
! b62a47b77dccb47ce687a46ca17cec43  gcc/config/darwin-c.cc
! 2556b4330fdb56e9355a33998b8b94d3  gcc/config/darwin-d.cc
! 09733777605726a19bf8f3de69b594e3  gcc/config/darwin-driver.cc
! 3c146a1c17fda17c760cd5672fb5a5a8  gcc/config/darwin-f.cc
! 7b2dacd23f2809fe6462e592b6ff5744  gcc/config/darwin-ppc-ldouble-patch.def
! 1cfc3c2a6447cc7e0d196c1d420dae9e  gcc/config/darwin-protos.h
! d2485f51f197476f96061c1d9f71080e  gcc/config/darwin-sections.def
! 50ad8d2ff561a7c3101c63f983a5ce0b  gcc/config/darwin.cc
! fae6ddfcb63d56ff9a3f0252908239f3  gcc/config/darwin.h
! 2d0c2e46036e1142674c71c1683e5029  gcc/config/darwin.opt
! e995cbf40e93284ca4ad4576deae0b57  gcc/config/default-c.cc
! d492599e2fe59e667eb069826c292f25  gcc/config/default-d.cc
! 63f73e79d61aad20d5bda3ba222f7084  gcc/config/dragonfly-d.cc
! 565c8f9a5a88c8e360ab14488ee2cd6d  gcc/config/dragonfly-stdint.h
! 40fe7c4898153d6b828938232245bf14  gcc/config/dragonfly.h
! 75735afabc08d6bf0159b137e1d6d147  gcc/config/dragonfly.opt
! 78dbd25cd0f8974d536f853a1bcfabd9  gcc/config/elfos.h
! 9bb80217aedb0528772d30c6154ed3d7  gcc/config/epiphany/constraints.md
! cad5b029cc343d9cb05d771f9ac84a1b  gcc/config/epiphany/epiphany-modes.def
! db54456f1c211b068bdda470918b3bc8  gcc/config/epiphany/epiphany-protos.h
! 296bc4cc359f43ac66f2fe17a689043f  gcc/config/epiphany/epiphany-sched.md
! f76acd88c1b5ce763cd3db90c04f2725  gcc/config/epiphany/epiphany.cc
! 71fc078aa689775876043486b0000ec3  gcc/config/epiphany/epiphany.h
! 76326e5b3f7025ac4c2134e4b35f4b57  gcc/config/epiphany/epiphany.md
! 38fe363624c6b30d36028dc2ba368f7e  gcc/config/epiphany/epiphany.opt
! 048c70394ad0d7fab583647e9a11953c  gcc/config/epiphany/epiphany_intrinsics.h
! b599942ce5cdae5a7d39b33205448ea6  gcc/config/epiphany/mode-switch-use.cc
! 8dd91e51319cdee24ec5026424fcd36f  gcc/config/epiphany/predicates.md
! 8c35fcd168d9ddbccaee5bb54831528b  gcc/config/epiphany/resolve-sw-modes.cc
! 8634f75cd5ca5f048495db1aee5d7d69  gcc/config/epiphany/rtems.h
! f1e84e80d2b96098dbe4f4b54c815b89  gcc/config/epiphany/t-epiphany
! 9304691b53f83600cf1b07208739248d  gcc/config/flat.h
! 6ce7342512c92b485a1ae7f47ab9c8f1  gcc/config/fr30/constraints.md
! d18555da18714ec580141066465a1d27  gcc/config/fr30/fr30-protos.h
! 724c8f2cd2770723797e46776f35c0ca  gcc/config/fr30/fr30.cc
! 2f2c1920f9c1fff2b4378bacb80cf843  gcc/config/fr30/fr30.h
! b8e8b401593d4347be0a920265452f7d  gcc/config/fr30/fr30.md
! 206d98cd901975b8db476daafb620646  gcc/config/fr30/fr30.opt
! 86ad7d130cfe80f1ad9f1c7b1b372cfe  gcc/config/fr30/predicates.md
! 0225d3a0c5926ad58b3dbfb7415624b9  gcc/config/freebsd-d.cc
! c7b5aa1df838fa1bd0e96aa886998f99  gcc/config/freebsd-nthr.h
! f4ba9bc3a839054fcb5ee4a55dc469ef  gcc/config/freebsd-spec.h
! 9b3580983bfd5a99db492af12b479144  gcc/config/freebsd-stdint.h
! c3f69841406bbfcf2e5efda655c10e7a  gcc/config/freebsd.h
! fea21f2974267988390e9375f392c0a6  gcc/config/freebsd.opt
! 40698e230a886ae6a183c9c8d82c05bc  gcc/config/frv/constraints.md
! 126fdcc4a50612e0748053744bcdeb2e  gcc/config/frv/frv-asm.h
! dcc6c59d1cb04aa5a3e5e4e03c4e4417  gcc/config/frv/frv-modes.def
! 93f80258ec4180de434640004ad6bfc4  gcc/config/frv/frv-opts.h
! 5e33de7e8808cfdfeaaaa8fb926ad236  gcc/config/frv/frv-protos.h
! ff506c208e429353b276dc63bc51e095  gcc/config/frv/frv.cc
! e45addff4f346aba28d6fe3de885a39a  gcc/config/frv/frv.h
! 5a3214fe748f6745651888d14c0d01e8  gcc/config/frv/frv.md
! e5ef4ff30fbb0c99ea11b937bab6e376  gcc/config/frv/frv.opt
! 02a6e01ab41c049d1ffbf01a914be9d9  gcc/config/frv/linux.h
! 43b1c1f60632d1aba802b6a2b8d9dc4f  gcc/config/frv/predicates.md
! 2c4759bc511ec6fbcaeeb2e65f5cb129  gcc/config/frv/t-frv
! ad2b138db0b05c40eefe36a45ae7367f  gcc/config/frv/t-linux
! 6954451da0562f1ee357c38b060d2a4f  gcc/config/ft32/constraints.md
! ed9510546d5405bb3dc4cc494450f54c  gcc/config/ft32/ft32-protos.h
! d6ed27bf8d610f944e01fa9aa5ba0c4f  gcc/config/ft32/ft32.cc
! cb8580c2d6b14878acffa8fa83e954c5  gcc/config/ft32/ft32.h
! ba4b2c1b9daf45cfe2685dd3d206d712  gcc/config/ft32/ft32.md
! f6fa1db6cc84e6686236219594cfb15c  gcc/config/ft32/ft32.opt
! aec82f64c66e26bdb3cb902d8b199e8c  gcc/config/ft32/predicates.md
! 1bd57c8bf0fdb43664bc83813079f6b1  gcc/config/ft32/t-ft32
! 87ac79088cb5e8989df94b45b0237584  gcc/config/fuchsia.h
! 41df2c0ac4bc12399d5451f041fe410a  gcc/config/fused-madd.opt
! 03a682e350fbaeffcfa4ee55cffb90da  gcc/config/g.opt
! dd72dd8a7b3f1f045c595d7b99fb7a5a  gcc/config/gcn/constraints.md
! 8b06ec215f616c34e6db87904e6e0b02  gcc/config/gcn/driver-gcn.cc
! 3fbde69b36df1eb61c853b758812649d  gcc/config/gcn/gcn-builtins.def
! 90f7a67c8be1737ba2616a6f6fc2fc52  gcc/config/gcn/gcn-hsa.h
! 3541897063e9c24722592aa2adabc8e6  gcc/config/gcn/gcn-modes.def
! 23c741409060a32aa5362f5587a5f07b  gcc/config/gcn/gcn-opts.h
! f6e7b3cc65db5e78f895f2117663ddae  gcc/config/gcn/gcn-protos.h
! 3cd891d2430420ce3dae1210eb11e93b  gcc/config/gcn/gcn-run.cc
! 0b10bda902d6218ffb4fd4577333a4a2  gcc/config/gcn/gcn-tree.cc
! fce3fee463c6ea25e782ab215019abcf  gcc/config/gcn/gcn-valu.md
! df0107a1a0ef6341a7c4c6ea9646b6e2  gcc/config/gcn/gcn.cc
! 064406459b91a70e27c08a3260cb9124  gcc/config/gcn/gcn.h
! a66eb42775d7f4c0277352c539ecbb74  gcc/config/gcn/gcn.md
! 185ec6d83d4274749b29058c253dcb64  gcc/config/gcn/gcn.opt
! 0e1335850e6f10dff65da4b4577f3fea  gcc/config/gcn/mkoffload.cc
! 43e8863589453c75de1be59eed551481  gcc/config/gcn/offload.h
! 3f3b29a24c9522093c1f500b9c0b9c7f  gcc/config/gcn/predicates.md
! 4eb39192c082f027d87d65009836e07e  gcc/config/gcn/t-gcn-hsa
! 29fe634a5e37cc4357b1043fba7c57bf  gcc/config/gcn/t-omp-device
! ed52c14ae2117a1e2218b99326e827f7  gcc/config/glibc-c.cc
! 2077520306ad553f4448e35972e58554  gcc/config/glibc-stdint.h
! 84710268000799a6e443185c65b5083e  gcc/config/gnu-d.cc
! 66b5cf864ec6eee452dbe2a23c5f63b8  gcc/config/gnu-user.h
! e678ec61caa08addb752cf31cf39ea19  gcc/config/gnu-user.opt
! df334611bfceb7de93b71522186c97a8  gcc/config/gnu.h
! 614bb3102b667d8f96684dddffd1f625  gcc/config/h8300/addsub.md
  cddc64825ce6e6e92692684251745f9e  gcc/config/h8300/bitfield.md
! 7e3877c14e73e7008a634518dea17e1a  gcc/config/h8300/combiner.md
! 844200a660440c56cc71fc552ccc2716  gcc/config/h8300/constraints.md
  6951bae6ec523668ea56b4c855810ce3  gcc/config/h8300/divmod.md
! ddf43a9e37f6389690be0b54342c7704  gcc/config/h8300/elf.h
! 651b8f73d23f711ec0d104cc75652c0f  gcc/config/h8300/extensions.md
! 8eb9f7831675820c9b367cb8f41b70e3  gcc/config/h8300/genmova.sh
! 55cba95e5355758b6958be128e1fa86d  gcc/config/h8300/h8300-modes.def
! d301d1856fd453a3035d2013d3474f34  gcc/config/h8300/h8300-protos.h
! 3066f685023c18bd5302a74bdb940e78  gcc/config/h8300/h8300.cc
! 98a209c0b5d77bbe60b96d930cc5d670  gcc/config/h8300/h8300.h
! 84243f84ed443454f872e38cb06deba7  gcc/config/h8300/h8300.md
! f27af5cae5c580e2a2a80d98089ea732  gcc/config/h8300/h8300.opt
  b5d25924674b9d28333ecf000341f07e  gcc/config/h8300/jumpcall.md
! 68382be4f90ca9b366898a4bf787d665  gcc/config/h8300/linux.h
! aadf1bc3214dfe74ed3fcee32bc9332c  gcc/config/h8300/logical.md
! 5297875720c6dcfecc0483877faf934a  gcc/config/h8300/mova.md
  d329c98204120e78e720acd16234ad63  gcc/config/h8300/movepush.md
  6497e83ede4f1f9ec82eb6a07ba6f856  gcc/config/h8300/multiply.md
  56b9e51103f6a9c3bfc3777663b9a4f7  gcc/config/h8300/other.md
  e673e4aefe8a67834929eb43e99ac3df  gcc/config/h8300/peepholes.md
! 90a9dcea81a3202aa484c0d95c39ce85  gcc/config/h8300/predicates.md
  229fc2c8a83deb14625c4ee888cbb642  gcc/config/h8300/proepi.md
  daa266a3eae63ee1e65cb8c441f4c9c2  gcc/config/h8300/shiftrotate.md
! 4f7c280fc8cd5b24a401cc846309c31c  gcc/config/h8300/t-h8300
! 69198a0c8d147e02401120365f05bdf6  gcc/config/h8300/t-linux
! 8260488075a9e93d685f7a10d6dd5126  gcc/config/h8300/testcompare.md
! 7920da6f349d7f5b89ea751a81c745be  gcc/config/host-darwin.cc
! e7804843eb0a64776c47655d24acd9d3  gcc/config/host-darwin.h
! 26e5475763219f07524bc4b10d8858bb  gcc/config/host-hpux.cc
! 506060880b3936449a3b610d017ebee3  gcc/config/host-linux.cc
! 657b03115e4d3a2a5fb6d0d889bb3e03  gcc/config/host-netbsd.cc
! 0a10e633504dd5661ca6e147f68cbdd8  gcc/config/host-openbsd.cc
! 7a3cd33c3708c30bbc39e4867f5c774a  gcc/config/host-solaris.cc
  2c191e2d8d033611c6fccc8362d9e8f0  gcc/config/hpux-stdint.h
! 96509d4dd1922555873784e523a931a2  gcc/config/hpux11.opt
! 55883df46978a976c938c240c6dce165  gcc/config/i386/adxintrin.h
! c062d8c4f543cce10ae4bbb7c220a765  gcc/config/i386/ammintrin.h
! b2f4aad298263f48f1ac8a7ad50e6f53  gcc/config/i386/amxbf16intrin.h
! 1e1e5e7dc305e186cdbf59e26f4150d7  gcc/config/i386/amxcomplexintrin.h
! d66542a1143209ed7ff609cc1351aad2  gcc/config/i386/amxfp16intrin.h
! f7ec04b3ae6ab0665561d3c64e2a8eb6  gcc/config/i386/amxint8intrin.h
! 58befca760baf6dc42bfba8fd3d6cbea  gcc/config/i386/amxtileintrin.h
! 5ad8113f98b3741dba255479fb0b4c5c  gcc/config/i386/athlon.md
! e34a8bf10542af8efc22acbb32ee2fdd  gcc/config/i386/atom.md
! f15918dfd12bc1857aa07367503167fd  gcc/config/i386/att.h
! 9ef2d68be3a207077c8183933c8e5dc4  gcc/config/i386/avx2intrin.h
! ab2f37ffcf27bd727a410299157b5509  gcc/config/i386/avx5124fmapsintrin.h
! 254ba18a77b8781f866a956ae501e7d6  gcc/config/i386/avx5124vnniwintrin.h
! 09752ab0ff6f938f828ee83a13662f2d  gcc/config/i386/avx512bf16intrin.h
! b8695cdce964102e0ac837d1033a8d4a  gcc/config/i386/avx512bf16vlintrin.h
! 37a8378c33d1cd7dcadcddcb39f093a6  gcc/config/i386/avx512bitalgintrin.h
! d60f0dd52fd58d6cdaa795cd7aa379a7  gcc/config/i386/avx512bwintrin.h
! fc8ba175719967cb3897734b04aaa152  gcc/config/i386/avx512cdintrin.h
! d606104e61ee4184b105a29dd9f8874d  gcc/config/i386/avx512dqintrin.h
! 89ad5161864151492138726742065bd4  gcc/config/i386/avx512erintrin.h
! 3e485b91edc94f598c1586d50924107b  gcc/config/i386/avx512fintrin.h
! 6c0b3b014c64f96f9154305ad050e192  gcc/config/i386/avx512fp16intrin.h
! 425bfb3a013e3d22cf85414c6976c54b  gcc/config/i386/avx512fp16vlintrin.h
! 73911bb30ce2898efe5abaeed585f849  gcc/config/i386/avx512ifmaintrin.h
! b48423c9093a9e3f3e70c05090d7ed6f  gcc/config/i386/avx512ifmavlintrin.h
! 5f83acbcdc40eb734a1604afaddb58e7  gcc/config/i386/avx512pfintrin.h
! 4d11435508702d0c2568ff605c96d445  gcc/config/i386/avx512vbmi2intrin.h
! 1dac4b3b63df64d7731becf1987ac0d6  gcc/config/i386/avx512vbmi2vlintrin.h
! c4284954469dcfe25e15abf877171d6e  gcc/config/i386/avx512vbmiintrin.h
! d268e16dae79f5a97951c6073c15f760  gcc/config/i386/avx512vbmivlintrin.h
! 66c8baba8d8fbd130adf636459242de4  gcc/config/i386/avx512vlbwintrin.h
! 3ed761d84d7f85efe8900af054b34adf  gcc/config/i386/avx512vldqintrin.h
! 471f241ee9f1c35967843a23b8dcd887  gcc/config/i386/avx512vlintrin.h
! c3f87fa01dedc77d30f7751b9d1c5497  gcc/config/i386/avx512vnniintrin.h
! e37ee6d1b89cb1c19910985b2aa737e1  gcc/config/i386/avx512vnnivlintrin.h
! cf862e171533f14c8449c9977f1b344b  gcc/config/i386/avx512vp2intersectintrin.h
! d4f2b0eeacef8c5f8237ded885035a85  gcc/config/i386/avx512vp2intersectvlintrin.h
! e552130be5dadd9f0697ed17a24070f5  gcc/config/i386/avx512vpopcntdqintrin.h
! d8996cda097e3356520593b8f5241372  gcc/config/i386/avx512vpopcntdqvlintrin.h
! 444a6b064529b37402b617c2ccf4a94e  gcc/config/i386/avxifmaintrin.h
! edde64e9a81febdc9688ca29a8cebce0  gcc/config/i386/avxintrin.h
! dc30c7790bad2dc575405df451df3127  gcc/config/i386/avxmath.h
! 6975482cd330668327205942524783a7  gcc/config/i386/avxneconvertintrin.h
! e536edbcac47b201a5f22e654d073825  gcc/config/i386/avxvnniint8intrin.h
! 90dae42e771f91eceffac535dd51dceb  gcc/config/i386/avxvnniintrin.h
! 08c897604cbe35c30760e6713307cca6  gcc/config/i386/bdver1.md
! 4dc1325ec265b319c9270583b68c0345  gcc/config/i386/bdver3.md
! 2c9c3c84d099070fce6147a08d5e4626  gcc/config/i386/biarch64.h
! f4259232ae95f40c8d01091fb635c235  gcc/config/i386/biarchx32.h
! 1c4aa62f05093c645d557624d7931cb1  gcc/config/i386/bmi2intrin.h
! 543a266eacbf8014fce634ac4dee92cc  gcc/config/i386/bmiintrin.h
! c0b1e25b004e885c4f4565547d4aba76  gcc/config/i386/bmmintrin.h
! f1e8d379b4b0271425e722570a4d1f90  gcc/config/i386/bsd.h
! cac4fc3255d7dd10cc9113bb4245af01  gcc/config/i386/btver2.md
! e9798a246c59e41bc8592dd5c0e3526f  gcc/config/i386/cet.h
! e146cc080a7a71e632b794d7fe566014  gcc/config/i386/cetintrin.h
! 1136cf96008eb0668c110a6b11187cbc  gcc/config/i386/cldemoteintrin.h
! a905ae6a96a437211eb7c3bee6971774  gcc/config/i386/clflushoptintrin.h
! c21b5a888da33e9d722aed1166d447bf  gcc/config/i386/clwbintrin.h
! f8c18b60f8d694d9b04cc4f5352e2c9f  gcc/config/i386/clzerointrin.h
! b38f7b52c769a7a8a9150b9492951672  gcc/config/i386/cmpccxaddintrin.h
! dea8aa711b0d85027336c0a9e9f11aa2  gcc/config/i386/constraints.md
! d58c22e340508ccef0f5f2762e78242d  gcc/config/i386/core2.md
! 93a70c3283b459b6d922b7d8a54086d1  gcc/config/i386/cpuid.h
! fc6740866dfd896d6b233e6c3fe047b3  gcc/config/i386/cross-stdarg.h
! 667d19f1a950f4c2b779e96f8141e11f  gcc/config/i386/crtdll.h
! a7e595b8f3d2618c6934377aef6b7768  gcc/config/i386/cygming.h
! af5582aa9ebfbcfce6fd773213f09989  gcc/config/i386/cygming.opt
! d5da110d7e8a9c76366dd4a40e6adb0e  gcc/config/i386/cygwin-d.cc
! 177d40d1bc9ce406fa151ad56af99d20  gcc/config/i386/cygwin-stdint.h
! 23945aeac6b859540430f2609681fbfc  gcc/config/i386/cygwin-w64.h
! e27d70deb4e43235a37cd9075401de82  gcc/config/i386/cygwin.h
! f3541cb57fe4aa85dd8b86cf26586a9b  gcc/config/i386/cygwin.opt
! a653ed5e4551f4c44f26f027755dee47  gcc/config/i386/darwin.h
! 1f6a3eab79cdac91c0d4f9123067049c  gcc/config/i386/darwin32-biarch.h
! 7fced3e35c3703796b4140ade5a5e956  gcc/config/i386/darwin64-biarch.h
! b942499d27601a7aba3efdeb5a8d300b  gcc/config/i386/djgpp-stdint.h
! 78b0bb86441024508f17eae054f52737  gcc/config/i386/djgpp.cc
! 6382c293f599527a86ff907f0794f4b7  gcc/config/i386/djgpp.h
! c64ce798db81479c69da1344e38dd450  gcc/config/i386/djgpp.opt
! 17255f7edc13e66cee8ce104a1a16d7e  gcc/config/i386/dragonfly.h
! 89e85ccf9c264c85110d5c7e485c88d6  gcc/config/i386/driver-i386.cc
! 0db2a1b877b9b70a4f1314795cd9fce4  gcc/config/i386/driver-mingw32.cc
! 230f254705a227cf2e3e968f01d82187  gcc/config/i386/emmintrin.h
! 49b2eed6267812453a577bc231736495  gcc/config/i386/enqcmdintrin.h
! fc0629522816ca6cd8f3a9dc0669fe56  gcc/config/i386/f16cintrin.h
! 5ade51009e0905689bda324eb7ce5f2c  gcc/config/i386/fma4intrin.h
! c36f1bf728e19aa1f1982a3eee0ff843  gcc/config/i386/fmaintrin.h
! 7207dcaf5f541010f8939ced1feb755b  gcc/config/i386/freebsd.h
! aa4eef0a8dc27bb5ee8e7c713fd03d96  gcc/config/i386/freebsd64.h
! 94adad2d2cc10d6b8a1343b58ac8c6e0  gcc/config/i386/fxsrintrin.h
! 942b10e6d8feadd376d9c697fec0e971  gcc/config/i386/gas.h
! 5fe43bd191553cf1fa4b80b584a64d1c  gcc/config/i386/gcc-auto-profile
! 990ae63980c91c6671a1c05ce2c1f206  gcc/config/i386/geode.md
! 4979154dc459fb74b0453ffb9af8ad45  gcc/config/i386/gfniintrin.h
! 8b13d3e8a979685111c50fe0e52fbe3a  gcc/config/i386/glm.md
! 3f36b056cd323aa177dfa9e88f252b5e  gcc/config/i386/gmm_malloc.h
! 8796fb84e2e1828a1cd5aef84d9d6c83  gcc/config/i386/gnu-property.cc
! 89d2cb0fe9c646c0bfc8027e8e98f61d  gcc/config/i386/gnu-user-common.h
! 87b2cecc339487b9d9acd34de3f0b5d8  gcc/config/i386/gnu-user.h
! 87311bdb2ce3ba229fde8d03650b7254  gcc/config/i386/gnu-user64.h
! 6782d235e56850aed52178e989fe5193  gcc/config/i386/gnu.h
! e92e6092340e3f2f41fe23e91d749ca0  gcc/config/i386/gnu64.h
! 362075d5c55c01a58a8688d152965d39  gcc/config/i386/haswell.md
! 519fbd902e6476af80fccdd9c3ddf609  gcc/config/i386/host-cygwin.cc
! 6e90fcf8b884d9635ab934026d3f144e  gcc/config/i386/host-i386-darwin.cc
! 43ba62e2c05246010d29bc459f648c78  gcc/config/i386/host-mingw32.cc
! c712f75327bcb8b5d026dfb3dea205df  gcc/config/i386/hresetintrin.h
! 05b81cca7926b1d1ab6ed9ad1de53cf0  gcc/config/i386/i386-builtin-types.awk
! 3d2082f02d6f85c1c7931b78a04b1f0e  gcc/config/i386/i386-builtin-types.def
! e671b7cc0b419ac65a0784a49ea98bd1  gcc/config/i386/i386-builtin.def
! 407d58c3dd343e65eae794d0314e3fd4  gcc/config/i386/i386-builtins.cc
! 142e87103f036ad8c37d13ec10c7b6e1  gcc/config/i386/i386-builtins.h
! 0f0ae6ff148bdb8fd932e202b6799c47  gcc/config/i386/i386-c.cc
! 111cfdf2d21796a75b1dc6dad85b1e0b  gcc/config/i386/i386-d.cc
! 8a2fd04b87d1c3d5e2c0f09d28bbbabb  gcc/config/i386/i386-d.h
! b1539407f2d48b3d686c4823e1b0c666  gcc/config/i386/i386-expand.cc
! 41a8f20de760a6af6575dd59a61d9d53  gcc/config/i386/i386-expand.h
! a4dd891e8ef93f95857954aa66c7776e  gcc/config/i386/i386-features.cc
! 56fdbfdbc30b14f12e07f1e89723787f  gcc/config/i386/i386-features.h
! fe11cb894ffe7ab98667ab56d2f4723f  gcc/config/i386/i386-isa.def
! 879010cdeb2877b05749acd5f54492a6  gcc/config/i386/i386-modes.def
! f4361fea142eb66ed5a0219f13eb89fe  gcc/config/i386/i386-options.cc
! 003ffbe43bb8f6a09f829ad391579ca5  gcc/config/i386/i386-options.h
! 7512d54a6f733ab8b39bf9b02c1ba4db  gcc/config/i386/i386-opts.h
! 3d980f6dc86b67acb7d8e5be6c08c589  gcc/config/i386/i386-passes.def
! 15146e6cff34da8c1205b0df0813ccb0  gcc/config/i386/i386-protos.h
! 4ba84ea255def231270a2abeb9b84812  gcc/config/i386/i386.cc
! f0d519ae01ea2564a3635eab0e2d6030  gcc/config/i386/i386.h
! 31b2704ae1401b3ac5afa22e3e740fa7  gcc/config/i386/i386.md
! 1e4205de1cf322c3e26153b3cd19802c  gcc/config/i386/i386.opt
! faa318618e52a0740019e9aa0764b007  gcc/config/i386/i386elf.h
! 7c89dc80159b83f67c1fa47a10c88c13  gcc/config/i386/ia32intrin.h
! e22a6170ba3a96af69f106d6b8906f74  gcc/config/i386/iamcu.h
! f4afdef082262b8cc534567663819965  gcc/config/i386/immintrin.h
! 474edff5b2611795518e5c12fb4c2814  gcc/config/i386/k6.md
! 6e3db853badb69c028b5cce8547368ca  gcc/config/i386/keylockerintrin.h
! 57d6e47b4724b9b02d1ab00113d027c9  gcc/config/i386/kfreebsd-gnu.h
! 7beeca11c3371560a780b6aeaeedc9ae  gcc/config/i386/kfreebsd-gnu64.h
! 85959b479a472f35eaf204c647303533  gcc/config/i386/kopensolaris-gnu.h
! 6ed22fa4fd97e8bd0a9ceb9f093a8966  gcc/config/i386/linux-common.h
! b03d09f6f9228dfe19d36064f8f3f41f  gcc/config/i386/linux.h
! e6f15effc4a20421499a9853ac59ed42  gcc/config/i386/linux64.h
! 3874a38d8dc170df109ef80a99c33ce5  gcc/config/i386/lujiazui.md
! c19d7d8115ae7a603360685c75063bb9  gcc/config/i386/lwpintrin.h
! 8e424ee7cfb269fdd08d268c220b2521  gcc/config/i386/lynx.h
! da79e6281bb9db4c89c9762bf4450a7c  gcc/config/i386/lzcntintrin.h
  fefe46f8b06de933480400b9f58e9d31  gcc/config/i386/mingw-mcfgthread.h
! 2c2d27bfe80e4de3834fadbdb9adae26  gcc/config/i386/mingw-pthread.h
! edef1eca7e51064b4a9a6b81500e7dea  gcc/config/i386/mingw-stdint.h
! fa15d7fde577d7fec88287a92105de99  gcc/config/i386/mingw-w64.h
! ad22c01391693d2c5eb002cb02cb3f83  gcc/config/i386/mingw-w64.opt
! 74c0caefc695a2967850a249e143a9c0  gcc/config/i386/mingw.opt
! 51fa82a0bcb22b2e3517bbf8798aa95b  gcc/config/i386/mingw32.h
! 633776df667177d305a751c611575d8a  gcc/config/i386/mm3dnow.h
! 20fbc82922a421279fbf3edff568d23a  gcc/config/i386/mmintrin.h
! 3fcd2ca28eb38e41e4aba49cc9001e72  gcc/config/i386/mmx.md
! bfa7cf46263456c8ad884141d12b6ef0  gcc/config/i386/movdirintrin.h
! 4c8a6fb31d927ee7d125479a97ca8967  gcc/config/i386/msformat-c.cc
! c85dbd71dc69c188d5864af35ecf2292  gcc/config/i386/mwaitintrin.h
! 9d35c876060f43c1d16bd464d93bc5a6  gcc/config/i386/mwaitxintrin.h
! 2b97388df9ddda3761772d3bed3488e2  gcc/config/i386/netbsd-elf.h
! fdbfcd825ab7d2795a716aca5c7ee97b  gcc/config/i386/netbsd64.h
! 08f589107b390f43cbac39a2e81d0053  gcc/config/i386/nmmintrin.h
! ac7968f897faee1761caa6d148277823  gcc/config/i386/nto.h
! 8b1d1d893e33090346947f2daa6febfc  gcc/config/i386/nto.opt
! 05286bf8ecdca1504cb74a25c6dbc10a  gcc/config/i386/openbsdelf.h
! bd74e5564aca07b84233d4aa8b90615a  gcc/config/i386/pconfigintrin.h
! 2a967c65076b2c100b4f7016d98d9df7  gcc/config/i386/pentium.md
! a73cf5d585143cf30302ee1dc11a1eca  gcc/config/i386/pkuintrin.h
! fdb61469c12e56b4016a6a403f4457f5  gcc/config/i386/pmm_malloc.h
! 80f697c852862b44a8157b0efea36d0b  gcc/config/i386/pmmintrin.h
! 2d2286f829251a7b7b024d0df060dd93  gcc/config/i386/popcntintrin.h
! 290846a24853c7f93564e21cacbfb24d  gcc/config/i386/ppro.md
! cfb676e27f056a72bda51c6a87241427  gcc/config/i386/predicates.md
! 09399504e7c23318087f370cc84ad067  gcc/config/i386/prfchiintrin.h
! 5d19ef9f68d49944d62aa30eccf5bca5  gcc/config/i386/prfchwintrin.h
! d4285d0c922c64b0040fab9420989bf5  gcc/config/i386/raointintrin.h
! ccb73dbea8f44f1a08e8f88b641b0109  gcc/config/i386/rdos.h
! f375d8749124aad175de62e621d27f8b  gcc/config/i386/rdos64.h
! 871282a2ee7f5fa8bc9bccb0f9859531  gcc/config/i386/rdseedintrin.h
! 0d7f5fc2425f19b35365fede079a3ba8  gcc/config/i386/rtemself.h
! aa9d4c802147d014db47190bf34523e6  gcc/config/i386/rtmintrin.h
! c8b17dca6d683aeb5fbdff1b409ff35f  gcc/config/i386/serializeintrin.h
! f71c2e5572561a74ea464ac5e46b48e9  gcc/config/i386/sgxintrin.h
! 019c925c6a253cd9d596b40229027590  gcc/config/i386/shaintrin.h
! 9ac8a2404b744a4725303bcaa6eb18ee  gcc/config/i386/slm.md
! 78848cd4caaf8dc8240bd6c097488abe  gcc/config/i386/smmintrin.h
! f636ec0022d2efe9257b23fc816e2b32  gcc/config/i386/sol2.h
! e5c7c7026c2f7aba7949eec26e5c8f65  gcc/config/i386/sse.md
! d5e445dfcfe76b4409b1d6a2115663fc  gcc/config/i386/ssemath.h
! 0547e7c6a1807f6096d1ef483c6f9c13  gcc/config/i386/stringop.def
! f7ae3b5e53998d952d6de4ec0fa87479  gcc/config/i386/subst.md
  945c6888d50080573fad6f6c8969b67f  gcc/config/i386/sym-mingw32.cc
! 5927dc15e6d5c74d087d26beb013139d  gcc/config/i386/sync.md
! 2d4c630f2726c23bf8ece1af1e9f5655  gcc/config/i386/sysv4.h
! 3efb47ccd473b950c058108a64652335  gcc/config/i386/t-cygming
  d41d8cd98f00b204e9800998ecf8427e  gcc/config/i386/t-cygwin-w64
  98d94861be252f8541038afee279417f  gcc/config/i386/t-darwin32-biarch
  8f92133cb94c59e2939cd65dc5fc8cb4  gcc/config/i386/t-darwin64-biarch
  633a95f7feb14d4eebe0039fa5ef4dec  gcc/config/i386/t-djgpp
! ad0ba96b79bacf5c0df050b78f14feca  gcc/config/i386/t-freebsd64
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
! 1f8dfcea2f11f1d390a5bf723c463acc  gcc/config/i386/t-gnu-property
! ec05069b8c6c796b9cdfd8492da92810  gcc/config/i386/t-i386
  51dcf9826007c01cfd67be11d5f0d538  gcc/config/i386/t-kfreebsd
  39ad69cb2a2e67aa8d46664a75b02789  gcc/config/i386/t-linux
! 48769bdde624f35ccf02701f43a06b88  gcc/config/i386/t-linux64
  cd662e746e08a18749e8272fa759278e  gcc/config/i386/t-mingw-w32
  67bcf41f125bbec93a13ad3bd98abaee  gcc/config/i386/t-mingw-w64
  12a68576d3577a8da82089f18d60c613  gcc/config/i386/t-pmm_malloc
! 66ad437670137446409930c06453c6df  gcc/config/i386/t-rtems
! 41f190cc566db8dd7ef18946821642b3  gcc/config/i386/t-sol2
  6c6dc6647856991d7275637384be6c03  gcc/config/i386/t-vxworks
  b80a5a4a8c8fc32ca318158abc98dc20  gcc/config/i386/t-vxworksae
! dcfd62bf992c59823559037c9bc5933c  gcc/config/i386/tbmintrin.h
! 6dc764167c9ded016d98ae2a08c58b83  gcc/config/i386/tmmintrin.h
! 9fe68cef534febffb35ad1ef847401e9  gcc/config/i386/tsxldtrkintrin.h
! 6bfcaf6894aaea6ffeca89c4f53996c4  gcc/config/i386/uintrintrin.h
! c51f747e61ad2f707ccbeb3411be4a4d  gcc/config/i386/unix.h
  81edd33206e44c8dbcd4165f97407774  gcc/config/i386/utf8-mingw32.rc
! 3b92b3eae9656b798ba795343faf434d  gcc/config/i386/vaesintrin.h
! 7bfabf005327630e4c60ebaa59a0247e  gcc/config/i386/vpclmulqdqintrin.h
! 73cf0b2a1c68a76bb732869abdd516e3  gcc/config/i386/vxworks.h
! 710c8c1dfd5081ac010b59573d9e16f5  gcc/config/i386/vxworksae.h
! 3805b71228fcc6d0b6f26c904a2769f1  gcc/config/i386/waitpkgintrin.h
! c4c180494248f20b21bde574239cf71b  gcc/config/i386/wbnoinvdintrin.h
! 14245e51a804d3784b06c57047af83f4  gcc/config/i386/winnt-cxx.cc
! 6306f2d4a93ad28a0db393cccebc0eec  gcc/config/i386/winnt-d.cc
! 92a5c32283a27a6341d793260527dae3  gcc/config/i386/winnt-stubs.cc
  b60494d53d08e39def55bcf62076b56c  gcc/config/i386/winnt-utf8.manifest
! f3fb16ceb30e993337ac39983235a870  gcc/config/i386/winnt.cc
! a80b30640741e517dda1f687e1aeba06  gcc/config/i386/wmmintrin.h
  b4cde95b709fc93c90bf4d6b3edc7fd0  gcc/config/i386/x-cygwin
  1ab2099a92787dd158135dbcaceb0bf9  gcc/config/i386/x-darwin
  8d6956f3535d501680a321eb01dafb35  gcc/config/i386/x-i386
! 8c1a4c75367c242e4240f63182298102  gcc/config/i386/x-mingw32
! 382a0dd1703f45cfe6f1a5d3db496a84  gcc/config/i386/x-mingw32-utf8
! 34e124411c74493d2987ca67a64213cd  gcc/config/i386/x86-64.h
! 483ae34cdadb3784655df5566b98bac9  gcc/config/i386/x86-tune-costs.h
! ceeba8f332c332a7db03815dd3144457  gcc/config/i386/x86-tune-sched-atom.cc
! cf77688a79e9eb5530fb5a30f8ead444  gcc/config/i386/x86-tune-sched-bd.cc
! 30bef3dbd64dfc29211a442df4597f25  gcc/config/i386/x86-tune-sched-core.cc
! 70b97860072bcc5c13ce7ffe8d7c3a7d  gcc/config/i386/x86-tune-sched.cc
! 0107ea657920f09fbf2d6b29c32f09f0  gcc/config/i386/x86-tune.def
! bd48650a48294465d345812ad5e1b4e8  gcc/config/i386/x86gprintrin.h
! 9bbe408d1dc406ddf72aa175ea24a4ab  gcc/config/i386/x86intrin.h
! 8262b37347a6f221be8fda380c23e595  gcc/config/i386/xm-cygwin.h
! be0b0f2d6bbac5aa9acc0aa9ca9939bb  gcc/config/i386/xm-djgpp.h
! 5a5edc97dfee054c50445d3976a1f593  gcc/config/i386/xm-mingw32.h
! e20d725be97ea6dcf6d6796132a2fe44  gcc/config/i386/xmmintrin.h
! a215229c735d32f3d01211350fd1f318  gcc/config/i386/xopintrin.h
! 389521d349b62cd9a6946fee844e5397  gcc/config/i386/xsavecintrin.h
! 90f4cdaf601934d2d661a2b054020133  gcc/config/i386/xsaveintrin.h
! f1f5f84a8dd49e6d726f7e2c20ed8e79  gcc/config/i386/xsaveoptintrin.h
! 6275f6421011176a82b480067cd8773d  gcc/config/i386/xsavesintrin.h
! 0ee718569f13b7df03c4919999566ddb  gcc/config/i386/xtestintrin.h
! 3df7133920a3226cf278a7da93340bdd  gcc/config/i386/znver.md
! 6f6d5b0830a741f384328da33b52fdc0  gcc/config/i386/znver4.md
! 99ac9eca82d2eb34419a7f546dbdf0a4  gcc/config/ia64/constraints.md
! 48401aec42c82f35c84ac47cd01d83f6  gcc/config/ia64/div.md
! 18fce4fb1a588e94b444c4fcd4f14157  gcc/config/ia64/elf.h
! acba31df4ea284fe039057d66372143e  gcc/config/ia64/freebsd.h
  89edd175b4bfe583ec3ee965092fd5d0  gcc/config/ia64/hpux-unix2003.h
! bc8de5bb7e58419a61f0a4e834c084df  gcc/config/ia64/hpux.h
! 10a32882ce4eaed04f9acb3c2091fd52  gcc/config/ia64/ia64-c.cc
! fdbe0d04c181c78799042e1c25721f18  gcc/config/ia64/ia64-modes.def
! f060e4b2c9907fe1d89d30252c257ff9  gcc/config/ia64/ia64-opts.h
! 3a1a0730cb8abdb7caa1e4adca8010e7  gcc/config/ia64/ia64-protos.h
! dd46e49e22d1b83447bd6a17243e59dc  gcc/config/ia64/ia64.cc
! 341b1c1a878b4b12483bc586b50540ac  gcc/config/ia64/ia64.h
! 10ff136c4ec261abdf9bead27129a151  gcc/config/ia64/ia64.md
! 8d058503899992ed21c71eccf4766847  gcc/config/ia64/ia64.opt
  dcc77d7023d20b64688bf213c2d327b5  gcc/config/ia64/ia64intrin.h
  4b86fa74a7636ffdb9787a8643220eec  gcc/config/ia64/ilp32.opt
! 142ea74f747b618a6a7be76f3414d269  gcc/config/ia64/itanium2.md
! b93731e5bc7933e65a7b3213ca44efc2  gcc/config/ia64/linux.h
! 3054b4d4a0b0bef13f217fab44da045d  gcc/config/ia64/predicates.md
! 5fbbc24b6b5b8226b739b1b7a9349b35  gcc/config/ia64/sync.md
! b118ca4800a941ba1b551d4f4e991971  gcc/config/ia64/sysv4.h
! 138df2894e42f7b35ec4d3dd4454b62d  gcc/config/ia64/t-hpux
! 3d9e22008d00c2ecce2b7ba5157a809c  gcc/config/ia64/t-ia64
  67736f64800d10923b58be4e448620d6  gcc/config/ia64/t-linux
! e9ef433eb8dada368c748bf51c46ab4a  gcc/config/ia64/vect.md
! 772f12ab8dc78fe38f5978ee32eb71b4  gcc/config/ia64/vms.h
! 8df1343d11f4a6e2149d5a8b6746c255  gcc/config/ia64/vms.opt
! 3ff7fe1829fc0a315623e9b7ea7bb439  gcc/config/initfini-array.h
! 43a8e61cee59d2e064b053db790ec5ec  gcc/config/iq2000/abi
! 1631bc1750ce72e6148f5226837199a0  gcc/config/iq2000/constraints.md
! f1d73a41c631ae06b54bba93c4ecc9fa  gcc/config/iq2000/iq2000-opts.h
! 9448965aae37891f1aff882dcc565928  gcc/config/iq2000/iq2000-protos.h
! 6e9ba29c4d8aad7138e7f2c762dd1905  gcc/config/iq2000/iq2000.cc
! 40d71f6be2b11f49063d0e4f6ad6decd  gcc/config/iq2000/iq2000.h
! 8d5ec1522ba6942a9f73fff77fdebaf9  gcc/config/iq2000/iq2000.md
! a8433b0ca4400a6815d88586679ed1fd  gcc/config/iq2000/iq2000.opt
! 8bfd6b7cba316719598f6936ec97e979  gcc/config/iq2000/predicates.md
! c382a6590f0db191b3bef10909332fff  gcc/config/kfreebsd-d.cc
! 4ffa33935c7955e9a3bd1786cc4a78ac  gcc/config/kfreebsd-gnu.h
! b47308cc0d5393e0103ad567d8a2e5b4  gcc/config/kopensolaris-d.cc
! 0be9b13fede39265367f514ae0e05b25  gcc/config/kopensolaris-gnu.h
! 7ca01af8cce5302257b16332c81cc4fb  gcc/config/linux-android.h
! 51548946ff4ac6c0a888273931e08c26  gcc/config/linux-android.opt
! dc79dfbea2ed24fac915f56b97b6f4e2  gcc/config/linux-d.cc
! aae89dfe37b6962b2f81a32846a2a717  gcc/config/linux-protos.h
! a6ef074773b50f4c3e2d3ef18fcea199  gcc/config/linux.cc
! 0f318e4aaba564bb3fd76086e933df3e  gcc/config/linux.h
! 0c2d7f25cbdfe820ff6a01fc8e08b4e9  gcc/config/linux.opt
! 89e5f51fed98c28dad702735e788ebf5  gcc/config/lm32/constraints.md
! ba752a42f4ca2856db27f576e1f48232  gcc/config/lm32/lm32-protos.h
! bbcb9180a6500397530127e9345b90fc  gcc/config/lm32/lm32.cc
! 4d16a4eea143e5f51e2bd330be3159bf  gcc/config/lm32/lm32.h
! 7393aca2ea5104a790c302d0fe479c1e  gcc/config/lm32/lm32.md
! 5d0044a24847a5865e20d2a6c72690b6  gcc/config/lm32/lm32.opt
! 9e65ece7a237c4ec3f04bcdc771ade9b  gcc/config/lm32/predicates.md
! 97358b28bdd9fa2978f1575b1e2865f2  gcc/config/lm32/rtems.h
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
! 8ef085012d9493b632c484a8fb32b403  gcc/config/lm32/uclinux-elf.h
! 8417e1e84ade261be3883c9b991c14a6  gcc/config/loongarch/constraints.md
! db93094f0d4b754b9521b7a08ff59eb3  gcc/config/loongarch/generic.md
! 56ef1e2b8eb28fe4018b37a6a9a6f26e  gcc/config/loongarch/genopts/genstr.sh
! 9ce5785ab5a5194757c33063bafb644b  gcc/config/loongarch/genopts/loongarch-strings
! ded350b029380de277251c3b7347583b  gcc/config/loongarch/genopts/loongarch.opt.in
! acdb91543627a815a798b11956b07b2a  gcc/config/loongarch/gnu-user.h
! 95ae01096113fe96d619bad8856f42bb  gcc/config/loongarch/la464.md
! 56e5168bbc8e9c193b87fc1920fcfb6d  gcc/config/loongarch/larchintrin.h
! 4931a2a272cc8a3b79988a7d6ccc02c8  gcc/config/loongarch/linux.h
! 4478ba8b020d217b6c1a11fc9c47b936  gcc/config/loongarch/loongarch-builtins.cc
! 8e2625d9c6c2c35c490b0cd31993b76a  gcc/config/loongarch/loongarch-c.cc
! ace73e7e757a4f56adafcb35fb9e486c  gcc/config/loongarch/loongarch-cpu.cc
! a2aeb48ff36c7ee14b7c676fc27a7121  gcc/config/loongarch/loongarch-cpu.h
! 1a91f08260f98519d414b9a3876fa1f7  gcc/config/loongarch/loongarch-def.c
! a5a8ae397bdf9e20c3426ef156508e74  gcc/config/loongarch/loongarch-def.h
! 4670015876dc5a6e00ef40d1c64e9927  gcc/config/loongarch/loongarch-driver.cc
! 2aecf54c515ea3d787acb6c1e7a12179  gcc/config/loongarch/loongarch-driver.h
! 2e31c78b40b220a07ed80f61efc3dc69  gcc/config/loongarch/loongarch-ftypes.def
! ae7cfcf36635345c7a6629d3bfbb53d6  gcc/config/loongarch/loongarch-modes.def
! 857bf8095d8124985c2246a77f21991e  gcc/config/loongarch/loongarch-opts.cc
! aae7b2afa9f097a27363ba46977609e4  gcc/config/loongarch/loongarch-opts.h
! d46c773909f62a30c91885fbb5ee4416  gcc/config/loongarch/loongarch-protos.h
! b7e7ae8ebef609fa5b3638fc6d8da01c  gcc/config/loongarch/loongarch-str.h
! 1d43515673828076071c491e3cdd6f1f  gcc/config/loongarch/loongarch-tune.h
! 5b2363c74394edf1a424e4a493a039fe  gcc/config/loongarch/loongarch.cc
! e446efa41b6eb3b45fecc85334dc92e6  gcc/config/loongarch/loongarch.h
! 19cf02de9955a0da9609da2ca7fa956f  gcc/config/loongarch/loongarch.md
! e4801451e4a5033b9051b0387667a75a  gcc/config/loongarch/loongarch.opt
! 2f8826252720e1086662bde87ecbe35f  gcc/config/loongarch/predicates.md
! 79e5d3aad1cd3f508decbc918ee4419c  gcc/config/loongarch/sync.md
! b99456ed262c9decb8e975492dece6b9  gcc/config/loongarch/t-linux
! e0de5482d1cfc851b546ea8ca8bc701c  gcc/config/loongarch/t-loongarch
! 9d3e662c86b39e1b1706950c1178e350  gcc/config/lynx.h
! 23506809f52488ffbf9ff1d84b85d128  gcc/config/lynx.opt
! 016e52ad546e21ac6239f824ded324fd  gcc/config/m32c/addsub.md
! 8b586abd8a9b900436591c0e7f840b44  gcc/config/m32c/bitops.md
! d58b6bc72439219ee755327e323761d1  gcc/config/m32c/blkmov.md
! 99569be57f76019b23009d2bc1d3046a  gcc/config/m32c/cond.md
! fbb5c3bcde4fcc65dd9cd417ed453978  gcc/config/m32c/constraints.md
! 0eb99796f46713993b979497a11c3a04  gcc/config/m32c/jump.md
! 3cacdb3f9d9906bc7b3fc63e39ef8a37  gcc/config/m32c/m32c-modes.def
! 5f99b5979c129b35bf248648e0aa2bf3  gcc/config/m32c/m32c-pragma.cc
! dbde15fa098e25f96c66c5e56ee25a6f  gcc/config/m32c/m32c-protos.h
! 0fa989c9e792dac756bb3ce78db29b0e  gcc/config/m32c/m32c.abi
! 6d5af05fee8b5b653fcb216fbd8b51c2  gcc/config/m32c/m32c.cc
! 885758875b07d3807384b0e0151eb380  gcc/config/m32c/m32c.h
! 230f2b6d7b66aa1a362cd1558bdcaedc  gcc/config/m32c/m32c.md
! bb4cd415019744a47fe8a97a1390587e  gcc/config/m32c/m32c.opt
! f5e82b6610f0e990b6c8a62d792e86e1  gcc/config/m32c/minmax.md
! 8bf829a6dcb11f1919f9a86d29051d21  gcc/config/m32c/mov.md
! ab04893f8fce2e463a4394718ac81489  gcc/config/m32c/muldiv.md
! 1d488412b7aeab27385ebf608274f058  gcc/config/m32c/predicates.md
! 82588cf270344c96622056a59ceb71d8  gcc/config/m32c/prologue.md
! 27c0f6f29bef7adf5f2f544ff79078a4  gcc/config/m32c/shift.md
! 03446dbf80e1e73239f23434488ca1cb  gcc/config/m32c/t-m32c
! c2cb241feb926094d5e0edc8f52f5059  gcc/config/m32r/constraints.md
! 24b95bb041b11bc328c6069ffbd7b8e3  gcc/config/m32r/little.h
! 39f2582339f7aa11ed234d4a35de19f1  gcc/config/m32r/m32r-opts.h
! 41a1134a3b4a3946e232f14d94caccf4  gcc/config/m32r/m32r-protos.h
! 24dc7010c41af14453e91733dd23aa62  gcc/config/m32r/m32r.cc
! d12d9ac92b1aeb3f9d9091e5ab3cccc9  gcc/config/m32r/m32r.h
! db7a255449e5ebe9b04b0772a59fe3c1  gcc/config/m32r/m32r.md
! 48ce6304855bcfc17ade3b3a047f6fbf  gcc/config/m32r/m32r.opt
! 792e8c457e303a414e49fdbc84e06d63  gcc/config/m32r/predicates.md
! 8d7dd29937b63ed7c5875e291fb3c8b9  gcc/config/m32r/t-m32r
! 2d3cea415dce88d0436dcf5dd442bd5b  gcc/config/m68k/cf.md
! 798cb191098bd84f8921d601fef3c226  gcc/config/m68k/constraints.md
! 0861a0a0037e82364b388464e3ebaeef  gcc/config/m68k/genopt.sh
! e3aa7f53971c7a1c0547ceb4e3293867  gcc/config/m68k/ieee.opt
! 8f209221764ec9a61bd061595ce3ab15  gcc/config/m68k/linux.h
! 14c386cda6a4da94f7949488335867df  gcc/config/m68k/m68020-elf.h
! e69652ec0da1b16748e49d9a9aa43fd1  gcc/config/m68k/m68k-devices.def
! 7fa0597ff34e73399d5f986bbe1f85ee  gcc/config/m68k/m68k-isas.def
! 3fcc967caf3a1ffde1a3beaa614ee528  gcc/config/m68k/m68k-microarchs.def
! 52786dd463843336ff462cf4ee7da333  gcc/config/m68k/m68k-modes.def
! 4f3e9a740e548652d75199963b835286  gcc/config/m68k/m68k-none.h
! f2262f7fe73123d5bb67e9ea0a46f45e  gcc/config/m68k/m68k-opts.h
! f37294a8c93a385692fcf8a6c34bbb4e  gcc/config/m68k/m68k-protos.h
! 8ef7f85123f80efd70ca2053b76fabb6  gcc/config/m68k/m68k-tables.opt
! 762efe6c5eb32766eb2d564eba692ba7  gcc/config/m68k/m68k.cc
! 33bf35b7f6f7b51b60091914e1cc7f71  gcc/config/m68k/m68k.h
! 16eeef2b76981ead0ff80cdab763aedf  gcc/config/m68k/m68k.md
! 018e6dfdd405d345967e6a283f1d9f7c  gcc/config/m68k/m68k.opt
! 6bc1a5d45ab16f3c9faffb5f3a5f07c9  gcc/config/m68k/m68kelf.h
! 6f1eec5637b95bd36d716cd9c791cf79  gcc/config/m68k/m68kemb.h
  c0472199959f16fcb58702880954da6e  gcc/config/m68k/math-68881.h
! b5cccdb72f07b26c040c131158501ef9  gcc/config/m68k/netbsd-elf.h
! ba42dcac5fe296a389e5207c0574bc52  gcc/config/m68k/openbsd.h
! 80a85bee9a95623e7bccedc2cd185439  gcc/config/m68k/predicates.md
! 79bee862afacb4c34dfc1ced957e2ebe  gcc/config/m68k/print-sysroot-suffix.sh
! 348f647976c840e422f2e6edb6bcee70  gcc/config/m68k/rtemself.h
! 4e7906a1f312bd5ec1caf3c4d87e8fc9  gcc/config/m68k/sync.md
  19d5ed41f3394c9423ff3afe64804076  gcc/config/m68k/t-cf
! 11229d6cb151a96a68a0a70072ffbc63  gcc/config/m68k/t-linux
  baa4595148bafa6426b8d665881ced45  gcc/config/m68k/t-m68k
  c8278c25339f71d746d91a193efd6cea  gcc/config/m68k/t-m68kbare
! d74faa470a39855df51f466c4898f107  gcc/config/m68k/t-mlibs
  0fd519d41689e5af998ca53a2f11e7d2  gcc/config/m68k/t-openbsd
  2919d876e31e6c4e0955d8cd4be5ce28  gcc/config/m68k/t-opts
  2899d62cd61c46fe504594a232959581  gcc/config/m68k/t-rtems
! 229aae7b2d085e51e675e7302b5ecc82  gcc/config/m68k/t-uclinux
! fda941ae02e51a80a4ebe460e0bd3867  gcc/config/m68k/uclinux.h
! 6e4a1cc8757cadd80fbce45da7e6c307  gcc/config/m68k/uclinux.opt
! 27ad9e177bf2acc977fe9d75abc8a144  gcc/config/mcore/constraints.md
! be9181bb16e07652d1c15ecc77816593  gcc/config/mcore/mcore-elf.h
! e71b97f4966f5e8ead43765420adef2c  gcc/config/mcore/mcore-protos.h
! 7cbfe27a9494cefc423be82b141bece2  gcc/config/mcore/mcore.cc
! 93115bfd015f185d8c559009bcdee6ec  gcc/config/mcore/mcore.h
! 8addc6804a0435c54edc06da5e0b125e  gcc/config/mcore/mcore.md
! 8a99c6e1e14d2d04131f13e2dfefa42a  gcc/config/mcore/mcore.opt
! 1c1847f59d486e530e2120476556cbe3  gcc/config/mcore/predicates.md
! 04140e4ad891529f72132ddc3fe62a2d  gcc/config/mcore/t-mcore
! a8f362504d7fe2934de773cf5d76e1f6  gcc/config/microblaze/constraints.md
! 535b98cb509fcf7a3029618618e142ab  gcc/config/microblaze/linux.h
! e37424b2a8529db0640af5c2106ecaf2  gcc/config/microblaze/microblaze-c.cc
! 8b0442b11fe603c25982f45e9871f63c  gcc/config/microblaze/microblaze-protos.h
! dcc7a068cb08f52797f9c445f3a90c4c  gcc/config/microblaze/microblaze.cc
! 4553b7f963c104ee07918e94240f7fcf  gcc/config/microblaze/microblaze.h
! 8ba01fa707c6aaadb510044b081a0206  gcc/config/microblaze/microblaze.md
! 29f473e772e6de583f79391fcdfa3df3  gcc/config/microblaze/microblaze.opt
! 240820b26da0767245f027b651885623  gcc/config/microblaze/predicates.md
! cec1c4d2def09486ca1ea66fafd37669  gcc/config/microblaze/rtems.h
! 49c243e716e9d42f05bdb5e45234b79d  gcc/config/microblaze/sync.md
  df031372af9c825d21d2058d266247a0  gcc/config/microblaze/t-microblaze
  63ccba4e7f745d36609d7c129bac6288  gcc/config/microblaze/t-microblaze-linux
  a8b08640136e3e7712d2278eb84c21d9  gcc/config/microblaze/t-rtems
! 3fd8d272e3fbc12aca5101e3fce8984c  gcc/config/mips/10000.md
! ce75b9468bcf1f1c9d8037bf003a57e2  gcc/config/mips/20kc.md
! fc05ee0e3d07e79cb3ad3b811ae911e9  gcc/config/mips/24k.md
! ae48bd3db75ae4f739f956dd6149c98e  gcc/config/mips/3000.md
! 7c8dccfbaf2f7434a466e1dd3d6bd7f6  gcc/config/mips/4000.md
! 0d3073c13a03a9d5b5a715b8c6c2c393  gcc/config/mips/4100.md
! 878dda1121b681ed50fa3c8bfdb89663  gcc/config/mips/4130.md
! 7faa94d46ec587e1820bc65a53ec43b0  gcc/config/mips/4300.md
! 79e2d75ebb4e3363002b565fe215d2e9  gcc/config/mips/4600.md
! 9684c25f8ab37529162f7f2cacd2d200  gcc/config/mips/4k.md
! a7eee6cf039aa12d55e8973ce5e2fded  gcc/config/mips/5000.md
! 3ea91aa92c87efdd5d65cf8db5638269  gcc/config/mips/5400.md
! 289b14d390bca42862ddd6c922ff9471  gcc/config/mips/5500.md
! 65c9340672885ca4f0ccbf6749dd1bcd  gcc/config/mips/5k.md
! 23d143c81c71b1a7e04631823380ba1b  gcc/config/mips/6000.md
! 54d863a694ef80ae45bd87dfc5b36244  gcc/config/mips/7000.md
! b8d1296ede02cb613ca1733bd0a067d1  gcc/config/mips/74k.md
! 417d7beb506d09400408e452ff8eab6d  gcc/config/mips/9000.md
! ef701699babe6b4109ea6eb7ef5a6fed  gcc/config/mips/constraints.md
! b295d4052fb03ef383dc8260f7d8f85c  gcc/config/mips/driver-native.cc
! fcf51d35a900789cb92722ab62ac55e1  gcc/config/mips/elf.h
! 1ecacee3d49cec1177f0cc53654acc57  gcc/config/mips/elfoabi.h
! f6eb13f4de92ed1a37dfdd87773356d9  gcc/config/mips/elforion.h
! f193eaa7bf50f1d933ec91faa0655ae2  gcc/config/mips/frame-header-opt.cc
! a1644bf3f55a5bbcdc29d6252ad54f6b  gcc/config/mips/generic.md
! 2d3c5db0f53ac8a177ef6fa4125f2569  gcc/config/mips/genopt.sh
! 498ac73327e3a44ce7383258f455f8fc  gcc/config/mips/gnu-user.h
! 71892bab0a5ecc907f02ca4039f63ced  gcc/config/mips/gs264e.md
! 20014aa5cc4c13142e37f7196d499c6d  gcc/config/mips/gs464.md
! 10032bee7cc7fc023fcd95778eed8808  gcc/config/mips/gs464e.md
! 88e1577acdfc4968c5f4689dc2c5ea8a  gcc/config/mips/i6400.md
! 5552a2c5843bcc8206f23325a7853002  gcc/config/mips/linux-common.h
! bced7b25b271ade624c6902d5c1cfab0  gcc/config/mips/linux.h
! 007dda5c748860a750005cbb63973198  gcc/config/mips/loongson-mmi.md
! 0f8f9f4cb38c113fd78e570855ab089c  gcc/config/mips/loongson-mmiintrin.h
! 773255a813d68a14ed467e90122bb610  gcc/config/mips/loongson.h
! c239f0ca4a0f419fbd84dd1d201c147b  gcc/config/mips/loongson2ef.md
! 0b3591da1e2abd5575b9e89e3b94c66c  gcc/config/mips/m5100.md
! 99aea14df909b7b6ec53c6908c411899  gcc/config/mips/micromips.md
! 0274332261cef4427731eb461120be25  gcc/config/mips/mips-cpus.def
! cb2b8abd6a7784d25fa02dc7aa2ec0e9  gcc/config/mips/mips-d.cc
! e2a5b46a69472ea8c1b02e68518c0831  gcc/config/mips/mips-d.h
! ac7b52c7fc21bb9196eee41f2f0dc65a  gcc/config/mips/mips-dsp.md
! d7c7d648633e3751538d001af47d7dc0  gcc/config/mips/mips-dspr2.md
! c2cfe00ae73a68f07ce649b980612c9c  gcc/config/mips/mips-fixed.md
! c08e4bab6c1e75a72083a45020a5b446  gcc/config/mips/mips-ftypes.def
! 78532a885490fb3a90b0c4a85437f2e1  gcc/config/mips/mips-modes.def
! 95304392ef1c512d3f1d5e81af2ff243  gcc/config/mips/mips-msa.md
! 30376b626fc9050218641fcde797c92f  gcc/config/mips/mips-opts.h
! b6ef595c9b75af5e5679a8799c944443  gcc/config/mips/mips-protos.h
! 32ba594f8a210398a1e585dfcc8b1d8d  gcc/config/mips/mips-ps-3d.md
! e0f0f7f5cd3f66adff43ada64fd352e1  gcc/config/mips/mips-tables.opt
! 78bf9e899b0629b2d5c306cdb23f4f35  gcc/config/mips/mips.cc
! 9e3bffdb2b33a326178eddd2138674d0  gcc/config/mips/mips.h
! fd1a1985d2fa9e92b6867215ad4b9127  gcc/config/mips/mips.md
! 3b233a9733cc91ecbf6950b871004528  gcc/config/mips/mips.opt
! 38552810daf255602b06ef0e6de4f4be  gcc/config/mips/msa.h
! d8bb19f061c5751183b69fc61ede2614  gcc/config/mips/mti-elf.h
! 99b836a7c69e58e13960c0e222c5f1af  gcc/config/mips/mti-linux.h
! f9e42d7b91a52c81253723e958b1f4e8  gcc/config/mips/n32-elf.h
! 6b0ad25e157683a41ca840c1400d801c  gcc/config/mips/netbsd.h
! 11f2d8030053a1a3d372c1f804706e02  gcc/config/mips/octeon.md
! 8cc1550c86282a1158b6cb2ea0eafa78  gcc/config/mips/p5600.md
! 13e106e8edcdb8e59b8ea3cc1804c4c8  gcc/config/mips/p6600.md
! 1ec21ff2ad71e112fab20366a478200f  gcc/config/mips/predicates.md
! d670f95c96a32d2a10610c5a608c3c08  gcc/config/mips/r3900.h
! a3b8384daa8aeb8b0b04fc124f2908d6  gcc/config/mips/rtems.h
! 6eb561f3bcbcd869be40a5355628e983  gcc/config/mips/sb1.md
! 0b2f37aedd8b8564441b364605af3e85  gcc/config/mips/sde.h
! 01014869482d2669c74652c1b6646977  gcc/config/mips/sde.opt
! d46febe424ccc9d61f0f62a46fdf1e1c  gcc/config/mips/sdemtk.h
! 2230b0966c693d3f41deff38420d589f  gcc/config/mips/sr71k.md
! 2c4045a057e7986416dda11e662d91b8  gcc/config/mips/st.h
! 773b9e9f89dc673bb5a1116331786966  gcc/config/mips/sync.md
! 105324a7c4d96709ed89718b62899dae  gcc/config/mips/t-elf
! 882af6e76b3769a81c6032275f2c80e8  gcc/config/mips/t-img-elf
! 53b4a4903211900cb004e5c80c986cb5  gcc/config/mips/t-img-linux
  f99fd825138aaee60804b8915e20d22e  gcc/config/mips/t-irix6
! eee558daeede1040a5859c8e30d5a7bf  gcc/config/mips/t-isa3264
! 3c133cce327239765e140f18b20673a3  gcc/config/mips/t-linux64
! b243d8428e0410fe448e31770df1a12c  gcc/config/mips/t-mips
! 5ac761b0ef9e3aea4b1312e4d0d9f7f7  gcc/config/mips/t-mti-elf
! 8204c5bb5f55367889d397d9250fc7e6  gcc/config/mips/t-mti-linux
! ca5473df790f1e357f928d832a0eb44d  gcc/config/mips/t-r3900
! 788fe7d3a593dbb0869a13efb087e5d3  gcc/config/mips/t-rtems
! 84cfe34b411a3f95fabe3d5e3e81e54c  gcc/config/mips/t-sb1
! 0ef632dc71010084170ce62e194ecbdf  gcc/config/mips/t-sde
! f6ac790a786fec873736a1bb178664d8  gcc/config/mips/t-sdemtk
! c45f62e8122fe49ae21b6f371d6119ac  gcc/config/mips/t-sr71k
! 8e75097ddf2559b5889f57e5c18773a4  gcc/config/mips/t-st
! 9f803e78ee9275aa699b62a257772ddf  gcc/config/mips/t-vr
! 47112a17b3e731038bff71888381e1d1  gcc/config/mips/t-vxworks
! 4d04f086b5e53a9ca6a06cb5568edba6  gcc/config/mips/vr.h
! c971d00e213c8f8f5e3e88c4c63bc429  gcc/config/mips/vxworks.h
  06537756ff14579bc850163a24d5a2f8  gcc/config/mips/x-native
! e761789d938248c299cc8697266cc49c  gcc/config/mips/xlp.md
! df03bfd5b8b46a33a2ee9f6a152ca229  gcc/config/mips/xlr.md
! 686174d66a27e474efb1a60601fd60aa  gcc/config/mmix/constraints.md
! 0bd29f4ebf15da84dfee7991ef155384  gcc/config/mmix/mmix-modes.def
! 9ab3f9b438d61d22bd3cbc4bf9e4de88  gcc/config/mmix/mmix-protos.h
! c03a6751ead85afb28244dbc93f089b7  gcc/config/mmix/mmix.cc
! 9b8a99051c09be18f059708a0ae075d7  gcc/config/mmix/mmix.h
! 6b864e936fee519e653b58df9d8f35b6  gcc/config/mmix/mmix.md
! 9958aa497a551644bba6982f6eb5e4fa  gcc/config/mmix/mmix.opt
! 2cdd8afcaf2d23dacd930fcfe5a5d85d  gcc/config/mmix/predicates.md
! ef47c9ec88f84e91fc7245cb3ff38879  gcc/config/mmix/t-mmix
! 015ec1564fd649e99ec64b35ea13bf4e  gcc/config/mn10300/constraints.md
! 2b509cde05d1fae1d8d52caede19d437  gcc/config/mn10300/linux.h
! 909ba78b625eb6003ad2badbca1456f8  gcc/config/mn10300/mn10300-modes.def
! 9ab2cd7dd17e5885fe57c64193957d40  gcc/config/mn10300/mn10300-opts.h
! 1515225132a5e6312c3ebc4424c07f74  gcc/config/mn10300/mn10300-protos.h
! 77984f764a233eafdd1bc0ebe00c1234  gcc/config/mn10300/mn10300.cc
! 7666bc1ce560748b4ebd4a3bfb7b4f87  gcc/config/mn10300/mn10300.h
! 1853784d3a2a2632bd9aa96098fc1a26  gcc/config/mn10300/mn10300.md
! 980008582027a9aaca7eb9dd295a24ce  gcc/config/mn10300/mn10300.opt
! 49251c5f3b920645c82298d762f7aa3a  gcc/config/mn10300/predicates.md
! 7eb3ce4cd098d0cf4ffcf36e92a96aed  gcc/config/mn10300/t-mn10300
! d5511f533f317b9aad0a7141a157ce04  gcc/config/moxie/constraints.md
! dae48d5cfba91f9c4ed07e9441fc538c  gcc/config/moxie/moxie-protos.h
! f6834fdcb2f26d4f597aba06a4ebcacc  gcc/config/moxie/moxie.cc
! ae06eba16a4ce8ed63d8ea8f3041b7f9  gcc/config/moxie/moxie.h
! 7140911694d9c9091199b03db93620d8  gcc/config/moxie/moxie.md
! 1837028ced96d309e750efe8c90f14ea  gcc/config/moxie/moxie.opt
! aff2266755956e4e731119867e41732d  gcc/config/moxie/moxiebox.h
! 3d6393c7cc858cd8666fe7b02a8ba36f  gcc/config/moxie/predicates.md
! ae66c6b3b5ee41205c4c3b98150da25e  gcc/config/moxie/rtems.h
! 54177c30b256e619bdbce787c301a52e  gcc/config/moxie/t-moxie
! f42a793e62dc90e7824772c759961acd  gcc/config/moxie/uclinux.h
  f276505b774e975b88b6c90362783e73  gcc/config/msp430/README.txt
! de41174f599e93592b0edad3c5a5960f  gcc/config/msp430/constraints.md
! 4426e3a5af524b08ee9af7d09259d696  gcc/config/msp430/driver-msp430.cc
! 793140a066cc3f3bbde3d97c1b9ffa72  gcc/config/msp430/msp430-c.cc
! 0aae0b6e3327f804ff070ca8043ad9b2  gcc/config/msp430/msp430-devices.cc
! 9447d9286f19921a535476a06bcdafa8  gcc/config/msp430/msp430-devices.h
  e081143def3cf3a59cd1181fc9162d41  gcc/config/msp430/msp430-modes.def
! d990fef13cd9e360d159edbc7ca71d98  gcc/config/msp430/msp430-opts.h
! 372ca3540e477fa86f54f61e61148696  gcc/config/msp430/msp430-protos.h
! afb03bbb36dcf0cd96cd37df67d1c645  gcc/config/msp430/msp430.cc
! 055371e3a6249a9310c239780ce0d565  gcc/config/msp430/msp430.h
! b9d91e165417db680bc5e582e9cd89d1  gcc/config/msp430/msp430.md
  a20875cf634836537faeacfb5a4f59d1  gcc/config/msp430/msp430.opt
! fea186c1e4ce847ecd34a8634686a253  gcc/config/msp430/predicates.md
! 044e57ade5ab2b96a9bdba1919529b7c  gcc/config/msp430/t-msp430
! 87bbc20019afb9b98cb19a16c8603e36  gcc/config/nds32/constants.md
! 3a47506ae0f7519a5e9f4c43c5286f64  gcc/config/nds32/constraints.md
! d5cc0fce76e87da930b756ae71235582  gcc/config/nds32/elf.h
! 59fe2ce3986bfd436cbffcf64c6f0305  gcc/config/nds32/iterators.md
! 95709e31a69b9341e53d01c70b26623e  gcc/config/nds32/linux.h
! 413dc56fd8a10ae1df391e867c70a4bc  gcc/config/nds32/nds32-cost.cc
! f9c3431641f1b2dda1d1ca20eab0f5be  gcc/config/nds32/nds32-doubleword.md
! 884707335775dae45253ea347846ebb2  gcc/config/nds32/nds32-dspext.md
! a0a945e38d127ae387cebe430771511c  gcc/config/nds32/nds32-e8.md
  c316334a86026beb55e5c25b4b855f95  gcc/config/nds32/nds32-elf.opt
! fe10a4f9bc73b32dd62e7e59f16cc681  gcc/config/nds32/nds32-fp-as-gp.cc
! 9175602158be5b174d11233937c4a9f6  gcc/config/nds32/nds32-fpu.md
! 16935f2565971a2db953bad7100bfc1a  gcc/config/nds32/nds32-graywolf.md
! cdbfac1b83a167bd20e9d7361e31837d  gcc/config/nds32/nds32-intrinsic.cc
! 997412cf3b25411d62701c816701a99b  gcc/config/nds32/nds32-intrinsic.md
! 61be4a68fa0ce9005bdd1cbe0f079f0a  gcc/config/nds32/nds32-isr.cc
  d94163fd5e4660359b8b12a0d90ed1bd  gcc/config/nds32/nds32-linux.opt
! f75f732a9f8ad1bb870569e2b36c7fc6  gcc/config/nds32/nds32-md-auxiliary.cc
! 7bd94222db80b18f4d97a65e1863b39f  gcc/config/nds32/nds32-memory-manipulation.cc
! 23771d7dc0668cdfc3da500506305a7e  gcc/config/nds32/nds32-modes.def
! 6ff1d189045848d41f9b7c8f7082b9d4  gcc/config/nds32/nds32-multiple.md
! 1bb464e16da61020c96d85240f7d0a1f  gcc/config/nds32/nds32-n10.md
! 0096e72cdab08dc5680e82fafe217656  gcc/config/nds32/nds32-n13.md
! e66b381438033e8605466a102e7d9f01  gcc/config/nds32/nds32-n7.md
! 414f93d41f814e292bba3a2c9c3444a7  gcc/config/nds32/nds32-n8.md
! 0f80d0f3a24668ce2d554fb6c59f61f3  gcc/config/nds32/nds32-n9-2r1w.md
! 55ef3c6dbe0e3496d7a5708b7276f214  gcc/config/nds32/nds32-n9-3r2w.md
! 2c4b1b9805d611ecbd5a7d2824d92093  gcc/config/nds32/nds32-opts.h
! f6513944f4e44ed2f271e3b55aa624ef  gcc/config/nds32/nds32-peephole2.md
! 6df9fa0d8fc17db597336d37672a7742  gcc/config/nds32/nds32-pipelines-auxiliary.cc
! 52a63d0407e159aa438e57c2b85fe953  gcc/config/nds32/nds32-predicates.cc
! b3a05f47ce92fcf67e1c23259289c7f0  gcc/config/nds32/nds32-protos.h
! f516003b49868c78e5b053cbdfacbe47  gcc/config/nds32/nds32-relax-opt.cc
! 7c832c3e3db3b050acd25af3276d86c4  gcc/config/nds32/nds32-utils.cc
! 51c69a59782879442ad53c1b616a6814  gcc/config/nds32/nds32.cc
! 83cd95f8643bbf3041167196ae7e8c3e  gcc/config/nds32/nds32.h
! 52089dac78a46bf66a614efc8b246a08  gcc/config/nds32/nds32.md
! 422640720fe2f9b6a6b6c66c282d48b3  gcc/config/nds32/nds32.opt
  c09acceb380f58ddb795ee3e973945d7  gcc/config/nds32/nds32_init.inc
! 86429f22a193270622b0838dc1500b15  gcc/config/nds32/nds32_intrinsic.h
! bc9312acc05fd09d36eb81f2983ccad5  gcc/config/nds32/nds32_isr.h
! aede8a09fd9a773bbecfbf6e8c08038c  gcc/config/nds32/pipelines.md
! 80f57eb77038d191b05449c0a80e3504  gcc/config/nds32/predicates.md
! 19002bb606ee60cac57c8291d659a153  gcc/config/nds32/t-elf
! d7e08980494ecd20189985785a175f6a  gcc/config/nds32/t-linux
! ae4bc654cc60dcaf2edfe76cb645ad23  gcc/config/nds32/t-mlibs
! bed1ce23479587dc6ddff8566705eccb  gcc/config/nds32/t-nds32
! 69c7537270e57cf486e383cd459fe421  gcc/config/netbsd-d.cc
! 966626ea0b02c93ba357e0784f3679c3  gcc/config/netbsd-elf.h
! 4d34e79920cee6463f0d786e9585d6c9  gcc/config/netbsd-elf.opt
! 3835db93f54677ef27aee4168b18acc6  gcc/config/netbsd-protos.h
! 91f5206e6f0286feffbf3ba55cd5ab9f  gcc/config/netbsd-stdint.h
! eca10ced41e82a8813a21f6ff7331c0b  gcc/config/netbsd.cc
! f30b86255a43119c935a7d5e9c5be7b9  gcc/config/netbsd.h
! 46eebba6697be072f93b747ac0d234d0  gcc/config/netbsd.opt
! 94129e547c26cd2f7be1b70e33e2eb87  gcc/config/newlib-stdint.h
! a7effe8c5872b7bc046275e653549353  gcc/config/nios2/constraints.md
! c149753ff5a1b66a9afc26fc048339b3  gcc/config/nios2/elf.h
! c9dd0ff78df70dc43c48714111d73062  gcc/config/nios2/elf.opt
! df5ddef9ef74666e3c22ef05e2b5d8ba  gcc/config/nios2/ldstwm.md
! 76d093101ccc86f203261cf0c6b90d46  gcc/config/nios2/linux.h
! 5cfb086db47eb08bcd1defead906bfdc  gcc/config/nios2/nios2-ldstwm.sml
! 208172f05ae03bc93b6789b356f8df0e  gcc/config/nios2/nios2-opts.h
! 37a9c078b28b8244f4fcf9ff08a74428  gcc/config/nios2/nios2-protos.h
! 912ac5f9be96872a8f3cef6a9b82b6fb  gcc/config/nios2/nios2.cc
! 4420a3d2bfa12a42c840889a25c8016f  gcc/config/nios2/nios2.h
! 9db5acb3074c4c2fe9b74e98fd9f5a29  gcc/config/nios2/nios2.md
! 597bd1586f7d01ed24872af4b787f125  gcc/config/nios2/nios2.opt
! b75c4b63cb509eae2c35f71c4421b25e  gcc/config/nios2/predicates.md
! 1eea628b2ad3122cb2ba6ebddfef4507  gcc/config/nios2/rtems.h
! d555ceeef4a0514d64e9cce261bf335c  gcc/config/nios2/sync.md
! 5fefc74a42eebc11746e9038cddde8c1  gcc/config/nios2/t-nios2
  3369cb7fd894ad0eaae773a6ab4a00dd  gcc/config/nios2/t-rtems
! 4cf5fbe884f50c8e940b209ed6d2a5fa  gcc/config/nvptx/gen-copyright.sh
! bc6a34abce497a2395e9530da3899fcb  gcc/config/nvptx/gen-h.sh
! 180c6874a6ae3249c84851d1f183ec2b  gcc/config/nvptx/gen-multilib-matches.sh
! 0d5c39d35e35f7bc6547d7f3220cda8d  gcc/config/nvptx/gen-omp-device-properties.sh
! 49f3ec7d2242d30c8fbdbaec46246cce  gcc/config/nvptx/gen-opt.sh
! 73ddf03a26688d5528adb38cbd47e051  gcc/config/nvptx/mkoffload.cc
! 435c5815322d90978171812cf2369ca0  gcc/config/nvptx/nvptx-c.cc
! fb5e4ae6b9ac27e8a5d895927e338ac3  gcc/config/nvptx/nvptx-gen.h
! 7530aaad722528afb44d183f793d21af  gcc/config/nvptx/nvptx-gen.opt
  83dfca9e2eb78c0e3ab66a3ff9681ad3  gcc/config/nvptx/nvptx-modes.def
! 5715146529b157ba9fe83d41ae7fce48  gcc/config/nvptx/nvptx-opts.h
! 150dfbfb507d4c608d4d20b126b5fdce  gcc/config/nvptx/nvptx-protos.h
! eb2b7fd7d95a42a6075a41141051d9bc  gcc/config/nvptx/nvptx-sm.def
! 66a953260e5d8e62a7327f72e780c96d  gcc/config/nvptx/nvptx.cc
! 7f391f72b033867c9d904eb6c94585b1  gcc/config/nvptx/nvptx.h
! 765b71da81288f74bad49799b07e8378  gcc/config/nvptx/nvptx.md
! 1a6cb783e21267f9ea1b9e52f864a575  gcc/config/nvptx/nvptx.opt
! 246a6413fefc23b4bab120f6c3b7e3b8  gcc/config/nvptx/offload.h
  64e41b90884bcc60ef49490cc20e0fc1  gcc/config/nvptx/t-nvptx
  bc001c03517e71a9f90411d80f0f2134  gcc/config/nvptx/t-omp-device
! 2d7852b75d5d086ea6977f90696db975  gcc/config/openbsd-d.cc
! a1d344d5b3d984fa4601efddd3f3485d  gcc/config/openbsd-libpthread.h
  3d4a70d0decf61f1fba17df545cea7f5  gcc/config/openbsd-stdint.h
! 758475d8386fa07e56728ce8227e5aa6  gcc/config/openbsd.h
! 42b0147c1c5264691eccb2dd159b2bb8  gcc/config/openbsd.opt
! 4bec063065973e797c65c81be67cb8bf  gcc/config/or1k/constraints.md
! cf0dc58f98994391b26db1df2da0dc5a  gcc/config/or1k/elf.h
! 1cacdd058732a643e03ddd0735aa64bf  gcc/config/or1k/elf.opt
! 389f95f6cc42c48e6fe66561c7312389  gcc/config/or1k/linux.h
! 2942dcd3a9b25aa4c85b45981f3b9f9a  gcc/config/or1k/or1k-opts.h
! 268f33128b5150856c2afd0ed48ba20a  gcc/config/or1k/or1k-protos.h
! 0b43339e95e9828f3d6195f2f9eae7d0  gcc/config/or1k/or1k.cc
! cd2d430ccafa1c4e0adb49e85e5f9d27  gcc/config/or1k/or1k.h
! caff17c926b71b8c98b61d7f1444acd8  gcc/config/or1k/or1k.md
! 71bb5b257d9977b77da3d2e4cbc779dc  gcc/config/or1k/or1k.opt
! 5de9bd314c00cf2823cd148f80c2a82d  gcc/config/or1k/predicates.md
! 2c237e1aa11f3c3ccb08ed78a04b7243  gcc/config/or1k/rtems.h
! d36036008f5afc69e1828e2c6728bdb6  gcc/config/or1k/t-or1k
  f58d4380ee68891690f4302989ce00cb  gcc/config/or1k/t-rtems
! 59e546fda21ab5e2834abc318385247b  gcc/config/pa/constraints.md
! ef2b5d14f2d69172c1bdd4c5a868994a  gcc/config/pa/elf.h
! 2d5b6f834e5271a82ce17ef9d2dba887  gcc/config/pa/pa-64.h
! 5eae63f8d57aa8dc775cb1e624882795  gcc/config/pa/pa-d.cc
! cd1b69e771282528105e840b22a5b857  gcc/config/pa/pa-d.h
! 57262f0d0e4cc64ad59378e8575e80d5  gcc/config/pa/pa-hpux.h
! de4634deb58f1ffb77af288bd4e8ff65  gcc/config/pa/pa-hpux.opt
! 2335ba3f835b2da87a506d81fc26540e  gcc/config/pa/pa-hpux1010.h
! 403bf4484fde9a94fb752d9384db0f05  gcc/config/pa/pa-hpux1010.opt
! a3544faaedbbf432069adffe270a58d9  gcc/config/pa/pa-hpux11.h
! b30a2b89233d310f6be15cb46069ae60  gcc/config/pa/pa-hpux1111.h
! 4ad32e7623de40f1c03d99c01b056f13  gcc/config/pa/pa-hpux1111.opt
! 8962dc7a9fa03b766a4606f2513b8386  gcc/config/pa/pa-hpux1131.h
! 6a37880bed7f96557cb92d4090a85c6c  gcc/config/pa/pa-hpux1131.opt
! 58bc928a5f7db9b5a8b975bee98b7904  gcc/config/pa/pa-linux.h
! 0f2572c80f183ff28125bbb6375e50cc  gcc/config/pa/pa-modes.def
! 71596c89e8b56d028c1753b980794531  gcc/config/pa/pa-netbsd.h
! d6ed3ea0b084fce25b744c74274588a5  gcc/config/pa/pa-openbsd.h
! e90c5d0d138f683915e32d52840e42cc  gcc/config/pa/pa-opts.h
! 6d7f17931666ea98e5793e2f41c93ac3  gcc/config/pa/pa-protos.h
! 055e67a791c0237e361cf7aa8678abc5  gcc/config/pa/pa.cc
! 948a0f04a993401c0b8969f0c9c708e1  gcc/config/pa/pa.h
! 5f0e46544e13c5c70a90247b685cffe5  gcc/config/pa/pa.md
! 20ba6e16f7d2cf5e5eb89348793f2610  gcc/config/pa/pa.opt
! 5268cfc61e7af09cd3b9ba6d2fa3faff  gcc/config/pa/pa32-linux.h
! c14312e902452e23e82cf7aea2550044  gcc/config/pa/pa32-netbsd.h
! caa0cd2212d43533afb7a45d04b90d37  gcc/config/pa/pa32-openbsd.h
! c7291c4ab3d77b3f24e59ddcdee9656a  gcc/config/pa/pa32-regs.h
! d0d96945cd58ca17fa448932b5e659a6  gcc/config/pa/pa64-hpux.h
! 718dfdd18a2fdc17a1b3b0ab54f882dc  gcc/config/pa/pa64-hpux.opt
! a3aabcc63a7cb1d7d4fc907b4a3cc6ed  gcc/config/pa/pa64-linux.h
! ec3f04e42dcd7729f90f95b82822bce2  gcc/config/pa/pa64-regs.h
  a9a6afd79b827565ffb8de8330b4cfe6  gcc/config/pa/pa64-start.h
! 2206b03033398ae4bd6feea7a7e5a1cf  gcc/config/pa/predicates.md
! 77adf6190588d2e1bcac8905fd70f92f  gcc/config/pa/som.h
  6fd25f8c665d2d7390ea94c01dcb8e34  gcc/config/pa/t-linux
  16f4ce216414d19c044dd93c60d948ae  gcc/config/pa/t-pa
! 27592c1a3f440e53677d9a2506ed70a7  gcc/config/pdp11/constraints.md
! 41d830bebd54df2ce568681aa6de5878  gcc/config/pdp11/pdp11-modes.def
! b3ea13ea7ec004166b15744610815ecb  gcc/config/pdp11/pdp11-protos.h
! 8e737445990cf3f2dca2a30b374140d8  gcc/config/pdp11/pdp11.cc
! b3698a15f6dc0dd0be58d0edcd0bf549  gcc/config/pdp11/pdp11.h
! d0502c99dec9d5093df045cc586b0787  gcc/config/pdp11/pdp11.md
! 8785abe522af897a165a5d5d48871de8  gcc/config/pdp11/pdp11.opt
! 8ee3ccd1010f888302a236ff4ac540c4  gcc/config/pdp11/predicates.md
! c62eb02b7d0f6419236b2205ad9c47ea  gcc/config/pdp11/t-pdp11
! 3fe93a2a9bc6c1685b754b19f16a44cc  gcc/config/phoenix.h
! 4366582ec630b83be7163c5806b3783b  gcc/config/print-sysroot-suffix.sh
! 8d7e596f5c3db8b0371456849358b8ab  gcc/config/pru/alu-zext.md
! b069df1ef729c1cb0e123e9b35bebe31  gcc/config/pru/constraints.md
! b67ceabccf744a397b2520b8ea812b71  gcc/config/pru/predicates.md
! 4701bcdf88ad035ef344fff8779b9689  gcc/config/pru/pru-opts.h
! 28d90b5168091eddc31696b45b84fab2  gcc/config/pru/pru-passes.cc
! 29c7eb5409493aa6d04742b0f90e7235  gcc/config/pru/pru-pragma.cc
! 399c1319f1cf91a4f8b5efcaa9c7dcad  gcc/config/pru/pru-protos.h
! 0c4b52feab5371bf000d1c863b42a896  gcc/config/pru/pru.cc
! 16c747fc04d8ae71b20ed5561f1f7741  gcc/config/pru/pru.h
! 68081b58c72050678ab7b4646af573ac  gcc/config/pru/pru.md
! 0982d9d6c6c40fbf151b170da5698f08  gcc/config/pru/pru.opt
! a958a54f1eb9a02a649cc3a370a76be9  gcc/config/pru/t-pru
! e9af861b5837e640380b2d5ffc107d7d  gcc/config/riscv/arch-canonicalize
! d7016c15adb54a488bc10f953e91d2fd  gcc/config/riscv/bitmanip.md
! a4737c69a5d0ed9c26fb7664bbbf4965  gcc/config/riscv/constraints.md
! 9ab80786137b8674a48e3f8eef8e592b  gcc/config/riscv/crypto.md
! 65832be0e854802d491839f721961187  gcc/config/riscv/elf.h
! 40f4593bb42cb3cd1433436d3a14d3cb  gcc/config/riscv/freebsd.h
! 506caa4941639a4cac9b4ad34c5a2a60  gcc/config/riscv/generic.md
! 13567b8f9fc115dd93de3793a5667084  gcc/config/riscv/genrvv-type-indexer.cc
! 3a424027ba3a05cd351ad2979a41e368  gcc/config/riscv/iterators.md
! 4830972ce717ed3a743c3c260d1a0689  gcc/config/riscv/linux.h
! 701b528027b9b3d6efb0f26e336a6807  gcc/config/riscv/multilib-generator
! cbbd219aa739aad3052e17ac19f818fc  gcc/config/riscv/peephole.md
! 01c87cf58c6118e6a0dbdf85a6ad3c69  gcc/config/riscv/pic.md
! fb0d9014ef0677751abf296ee2a47bd6  gcc/config/riscv/predicates.md
! 69d85a36573a3d30b78f76e9dc78ffa3  gcc/config/riscv/riscv-builtins.cc
! f47e685e40948cab97f9ac8e5ff183a5  gcc/config/riscv/riscv-c.cc
! f0d69fa14a6488707934eaa098111b55  gcc/config/riscv/riscv-cmo.def
! c68d776c689c30d435d258eaede86792  gcc/config/riscv/riscv-cores.def
! 8734a078b5eb1a8e0546c141d48d9c9d  gcc/config/riscv/riscv-d.cc
! a3abbf03afde9a189a78c91beec94e64  gcc/config/riscv/riscv-d.h
! e30be5d2c4f7dfa2b6beb305bea2ea12  gcc/config/riscv/riscv-ftypes.def
! f3f94b653d8cecc0249cd794b4c799e0  gcc/config/riscv/riscv-modes.def
! b72da54e700631e19e0763c290831bd9  gcc/config/riscv/riscv-opts.h
! dbc1bcb911341ab64939d304e80f5552  gcc/config/riscv/riscv-passes.def
! 6820d64bf12cf021edaca4583e8a17b2  gcc/config/riscv/riscv-protos.h
! 83bcab9a1e5c3acab0c9b8df5fe07818  gcc/config/riscv/riscv-scalar-crypto.def
! ad3c79a3cefcfe0857cd6f6b4392ab24  gcc/config/riscv/riscv-selftests.cc
! 8d8399855655179e1f73eea5741550b0  gcc/config/riscv/riscv-shorten-memrefs.cc
! e3b04ea19f480d8ad374b844ed5dbb8e  gcc/config/riscv/riscv-sr.cc
! b0810ecd0d08084a321b9b025c6dbcd4  gcc/config/riscv/riscv-subset.h
! 7a76f07f1aac810394eafa4fa12f522e  gcc/config/riscv/riscv-v.cc
! 82db10e870bc18dc73a094bbb4e158ec  gcc/config/riscv/riscv-vector-builtins-bases.cc
! 50048c66ba232d8add15b01662a1a0a4  gcc/config/riscv/riscv-vector-builtins-bases.h
! a12f4965fb6339b5c8085978ead1d5f8  gcc/config/riscv/riscv-vector-builtins-functions.def
! 2dff81d29e4427dd04f4551d2052f6ca  gcc/config/riscv/riscv-vector-builtins-shapes.cc
! dea62e3acd642311d5bd0e7a98df2b17  gcc/config/riscv/riscv-vector-builtins-shapes.h
! 7d5e3e3dfb8d2d5f6a25d8c884940240  gcc/config/riscv/riscv-vector-builtins-types.def
! 63a85324820250c836b419e68c2d3d4d  gcc/config/riscv/riscv-vector-builtins.cc
! 83bba22dba6d9f4786e80d804e1f312f  gcc/config/riscv/riscv-vector-builtins.def
! 830cfe8061a11b71e18672cc3e8664c4  gcc/config/riscv/riscv-vector-builtins.h
! 8a86dc06d44baa9e41a9391db5abdcea  gcc/config/riscv/riscv-vector-switch.def
! faf8d6d655c64d512ffd8a1d60f8d644  gcc/config/riscv/riscv-vsetvl.cc
! 8fe843c7d03cb46cc233ba5d894d10d3  gcc/config/riscv/riscv-vsetvl.def
! 4367da9bcb4a7e9b0c992e6bee066af8  gcc/config/riscv/riscv-vsetvl.h
! efbad94825a117c977a76252a555d562  gcc/config/riscv/riscv.cc
! 2b3c4e370e43ce97c06af8380c289dcc  gcc/config/riscv/riscv.h
! 71a0a64843bda989740f74fd7dca641d  gcc/config/riscv/riscv.md
! e8b00efbf2006bd1d55add7e5a1658fd  gcc/config/riscv/riscv.opt
! 1a3b56eb5996b87319935b8b3123e371  gcc/config/riscv/riscv_vector.h
! ac558403504463a2fadd429bc0dfe20e  gcc/config/riscv/rtems.h
! 462630614e6e7a6209f8f18b6dff0eef  gcc/config/riscv/sifive-7.md
! a2f3d38a5263b2b9bcb0d42d591ae93f  gcc/config/riscv/sync.md
  1c27821991689abdaa7a908a0cc8dfa4  gcc/config/riscv/t-elf-multilib
! d8ae7bee35ef1ecd77143535da9aae78  gcc/config/riscv/t-linux
  1ed181a166b1d0e206c4a4e0024cce2a  gcc/config/riscv/t-linux-multilib
! 7de892add3c6f26df1abcd91dbdbe42b  gcc/config/riscv/t-riscv
  b46131fe425be428d4d66c8f653f3d13  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
! 90703af517362babbdd4e7725ed9def2  gcc/config/riscv/thead.cc
! 3a60f8d771ec97e366fd23d19b081ea5  gcc/config/riscv/thead.md
! a73a2533a40d109ce2f50ab199b77fa6  gcc/config/riscv/vector-iterators.md
! 54f69fc9d9408960f28c18b405185f87  gcc/config/riscv/vector.md
! 62ba601d9d78ca4212a545e3742bf0a6  gcc/config/rl78/constraints.md
! 38d47829df0abf5c0b926e5aa13e73de  gcc/config/rl78/predicates.md
! 1730d77ec2ff27c2c031abaf2b78d45a  gcc/config/rl78/rl78-c.cc
! 4f924440f01f9a17f8b4b11264a60d15  gcc/config/rl78/rl78-expand.md
! 640353aec1c2dad476bef07da57b7166  gcc/config/rl78/rl78-opts.h
! bfaf727d42b0188a3d5599ab0500d489  gcc/config/rl78/rl78-protos.h
! bdfa7ecc3647fc5669b8d6f31cafb62a  gcc/config/rl78/rl78-real.md
! b5770c6053c787e381a200e9505f05c2  gcc/config/rl78/rl78-virt.md
! 2b3e1904b300cad3be2505046e86b608  gcc/config/rl78/rl78.cc
! c7eb68618103586e900471b720a49cae  gcc/config/rl78/rl78.h
! 693bc35d317254b10cf35aaeef48a57d  gcc/config/rl78/rl78.md
! 5e6835205f477e3b134c0855cc848b06  gcc/config/rl78/rl78.opt
! cd2ba5cbd82e5555c49004aeb34ee612  gcc/config/rl78/t-rl78
! 19b2c3a1d56343b27bedb7275f8568c7  gcc/config/rpath.opt
! 9939d839208c761212c54402f517e092  gcc/config/rs6000/40x.md
! 8cf12c16e8258b8139502583c52a32e3  gcc/config/rs6000/440.md
! 72e14633203bfd09bcef6cc6a39284cb  gcc/config/rs6000/476.h
! 36b2b88fb6117b37b8e439fee1bd8c33  gcc/config/rs6000/476.md
! 298f1237299608baef7e4f916e6ddf33  gcc/config/rs6000/476.opt
! c794aebab9cb9ea8f65a9aff0ca46944  gcc/config/rs6000/601.md
! 8bf7984c6a8df19f46cdd847d0e187b6  gcc/config/rs6000/603.md
! d910da6919ac5db4583b4c606a2a94e5  gcc/config/rs6000/6xx.md
! 4b943c206a91a3bf705ea5bd94807af6  gcc/config/rs6000/7450.md
! 93396c037f88d81ab6ffa7fa85986a46  gcc/config/rs6000/7xx.md
! 331273395372eddd12e125c743ba20b0  gcc/config/rs6000/8540.md
! 0574596a3aa61f5ed67581712ce8a431  gcc/config/rs6000/a2.md
! 7066cb868f097d4aedbe42b4de90f4ca  gcc/config/rs6000/aix-stdint.h
! 13f319aa5c2928f7ad24baf9da2ac70e  gcc/config/rs6000/aix.h
! bd35332d6b4881a6b7c1887edcbc4760  gcc/config/rs6000/aix64.opt
! b4ae894c7649abb1dc14070d9797b00d  gcc/config/rs6000/aix71.h
! 43cf8f7978a5d583e2342acb04cc595b  gcc/config/rs6000/aix72.h
! a87be9ee98a714eeeb92bad73f32f88f  gcc/config/rs6000/aix73.h
! 02b877a569032dd21efb85d41dac9c4f  gcc/config/rs6000/altivec.h
! 7d89e7cdfded537fa96f3699774354de  gcc/config/rs6000/altivec.md
! 45bfb40325f39a90f2e32f88f229cffb  gcc/config/rs6000/amo.h
! 656fb98293d82a76779be75ae8207857  gcc/config/rs6000/biarch64.h
! 8eb9a873478c1238a6d5921b1c5ed77e  gcc/config/rs6000/bmi2intrin.h
! 6ed5b6dd2a551b41cb3f2724d04523c3  gcc/config/rs6000/bmiintrin.h
! 3af1e371e42dd1cbf1076be49d9f6a37  gcc/config/rs6000/cell.md
! 7b53db14b5ad6d85c6af28a596286ea0  gcc/config/rs6000/constraints.md
! 26abc07169e7b7b6019364ad2315c6a4  gcc/config/rs6000/crypto.md
! 35b97bca4c1badd6e25fb41b627d6ad5  gcc/config/rs6000/darwin.h
! def924cf70cad004908dd8e1d38c073c  gcc/config/rs6000/darwin.md
! 798aebfba809ef2b93383a337a52b105  gcc/config/rs6000/darwin.opt
! eb88c9841f6ae8e90e09a036fff600ef  gcc/config/rs6000/darwin32-biarch.h
! 347157caf8b83c6c137b9a0d89f78536  gcc/config/rs6000/darwin64-biarch.h
! 8cbddb87ecf5ffe013fb832eef835f7d  gcc/config/rs6000/darwin7.h
! b02249d6df5a15ad9e8fb6de40f13676  gcc/config/rs6000/default64.h
! 0720fd621fe1a27526b7d20a2f0ec339  gcc/config/rs6000/dfp.md
! 8047e61464310227beabfa5042a69f68  gcc/config/rs6000/driver-rs6000.cc
! 8a053a05b6cc55f710af397dff8b941f  gcc/config/rs6000/e300c2c3.md
! 150d671f4fb16a651380a678baf8f2c1  gcc/config/rs6000/e500mc.md
! 65b1db55321012429ac7f1d860f87000  gcc/config/rs6000/e500mc64.md
! 402f14f1fffab304d26ddc7f04fc4000  gcc/config/rs6000/e5500.md
! 22fb2fd4efe263c93bf4922da7902499  gcc/config/rs6000/e6500.md
! d4d352a74b5d6500c8c07ab9833cf907  gcc/config/rs6000/eabi.h
! 73afb844c52e1ff0344d3d38946e31dd  gcc/config/rs6000/eabialtivec.h
! 2722739019574b47b5d7c58f3abe9bac  gcc/config/rs6000/eabisim.h
! 5eafe47b399ad9ef57b60982bfe3fb20  gcc/config/rs6000/emmintrin.h
! 743766fc14e2ad8a4375ae5d16f8c423  gcc/config/rs6000/freebsd.h
! 77f0bc4dfe9c32d6f33610a4361632bf  gcc/config/rs6000/freebsd64.h
! 51f772dba999b6c47e9afb00d4182755  gcc/config/rs6000/fusion.md
! ed1d3dca670d137022e574a142dba764  gcc/config/rs6000/genfusion.pl
! a112654f6df4b75096ef3cfc34745eef  gcc/config/rs6000/genopt.sh
! 5ba3f28a7f1f7f7d4a4fd324da2cce25  gcc/config/rs6000/host-darwin.cc
! 63823a40e63c18bc4c6ff07665c935b8  gcc/config/rs6000/host-ppc64-darwin.cc
! 2935cafa517d8f4066b2a664ff74ce9f  gcc/config/rs6000/htm.md
! d36bf739a044db81355167273d31bdc8  gcc/config/rs6000/htmintrin.h
! d382b2f14c42608297d8d264792330b3  gcc/config/rs6000/htmxlintrin.h
! b6f92d129c35d3ad3168875e75adc9d8  gcc/config/rs6000/immintrin.h
! cbabb1705f69dcc4d10468d902fc9942  gcc/config/rs6000/linux.h
! f5c3ba6395d6eb6177f8c91aabcbd5a6  gcc/config/rs6000/linux64.h
! 1f8387f9fababbf3716aed8c9c805a13  gcc/config/rs6000/linux64.opt
! 09728c6b9c5e7d90973aca3d98b4b27c  gcc/config/rs6000/linuxaltivec.h
! f51fdc3939c771f200d9a918380966f1  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
! 389d0bf272bb89e1261c874b7a9ec947  gcc/config/rs6000/mm_malloc.h
! 3633bb3a609730a30cb0663dc7e023ba  gcc/config/rs6000/mma.md
! a789bab758efe38df9cc413c568c5942  gcc/config/rs6000/mmintrin.h
! 72d5af6a1d84104d21789de53c32483d  gcc/config/rs6000/mpc.md
! 1fe014a70daa2bb4d4641253aa097496  gcc/config/rs6000/netbsd.h
! c942518ae7947bf3adccadbb27b9ab7e  gcc/config/rs6000/nmmintrin.h
! 02bfb5fcb16b57a7f67e388910cb8884  gcc/config/rs6000/option-defaults.h
! b6a7d9c820c45091b03eaf8fdf3190dc  gcc/config/rs6000/pcrel-opt.md
! 1fb7c939977278483d630f2fd6aaafd3  gcc/config/rs6000/pmmintrin.h
! 71e2a481bbd8dac1b4241316100c1256  gcc/config/rs6000/power10.md
! f9da5b9b4b401ad3520f41441d3acb1f  gcc/config/rs6000/power4.md
! 5f041279d91e1a0c3564a4589befc1ea  gcc/config/rs6000/power5.md
! 6b823511cf5244aaeb574f5bf2c63875  gcc/config/rs6000/power6.md
! d48c95e153ee8f415702b472bc20a02e  gcc/config/rs6000/power7.md
! 22fbcb7a71b601d8ad0c22a66e3ce4a4  gcc/config/rs6000/power8.md
! 2a0f67c8eed6b157add93a3a8b7b3ed3  gcc/config/rs6000/power9.md
! 06aa26bfaafcb89d4a99c0e317af4707  gcc/config/rs6000/ppc-asm.h
! d1baa29d9961c7dc84928daba90fcb81  gcc/config/rs6000/ppc-auxv.h
! 5e7762217e9facebadb81f105d1bf501  gcc/config/rs6000/ppu_intrinsics.h
! e247c1906b14077d8906d63ed6e1f2d1  gcc/config/rs6000/predicates.md
! e5a56c67ccfa1b82910448cc8537ca90  gcc/config/rs6000/rbtree.cc
! 41cca449520459ae09c87c093327fa5d  gcc/config/rs6000/rbtree.h
! a51d5702d8cf31a25e01e5edd0fe291a  gcc/config/rs6000/rs6000-builtin.cc
! ac53034bd09fb01f93ea842cf5c909fc  gcc/config/rs6000/rs6000-builtins.def
! 5686f83167396f0c581a1c6504b8ae11  gcc/config/rs6000/rs6000-c.cc
! 899b3a930627708fcdae122e3b3285c9  gcc/config/rs6000/rs6000-call.cc
! 6b94f136d45a0d1a0bef9e58fa9c1e15  gcc/config/rs6000/rs6000-cpus.def
! c4bd99f21aa66eed69bd520b225485ef  gcc/config/rs6000/rs6000-d.cc
! 9ec1220497ad19253e259bcf72531180  gcc/config/rs6000/rs6000-d.h
! e39af002491bc8a962f6b2f0cc7304de  gcc/config/rs6000/rs6000-gen-builtins.cc
! 5f2ed696da94a5a7ce06f115eaf05ef1  gcc/config/rs6000/rs6000-internal.h
! 5c2bdb9dbbeef816761ed742a138a457  gcc/config/rs6000/rs6000-linux.cc
! 3ac8202f4574b740fad8eb70f4a064bc  gcc/config/rs6000/rs6000-logue.cc
! 65280da8a93ee3b7561bfa95c73e5627  gcc/config/rs6000/rs6000-modes.def
! 50658fd1a187f0dea15f89e04aeabd41  gcc/config/rs6000/rs6000-modes.h
! 716db8b1d7952658da5eafaef58408db  gcc/config/rs6000/rs6000-opts.h
! 950b77a5c94e9ba599bbc208ee84477b  gcc/config/rs6000/rs6000-overload.def
! c153115d2136d49f3f4b6f7477797041  gcc/config/rs6000/rs6000-p8swap.cc
! 63dc1084063d0b0e7ee538d3941b6990  gcc/config/rs6000/rs6000-passes.def
! 71cb7581d344fb01762cdd080bd833a5  gcc/config/rs6000/rs6000-pcrel-opt.cc
! 1d69f9a2848499db58524c55c1803b51  gcc/config/rs6000/rs6000-protos.h
! 371fdc38274c8f19c0079d100adc91c4  gcc/config/rs6000/rs6000-string.cc
! e6df0fb2cf41aa438e44a0a400ced1a4  gcc/config/rs6000/rs6000-tables.opt
! 48e0e542e73b5675a6588a8e6f28893e  gcc/config/rs6000/rs6000.cc
! e65fb6f0bfb4b88a346fd3006fb5ea4e  gcc/config/rs6000/rs6000.h
! 97e64f94d0089fc5f997d485bad4ab3c  gcc/config/rs6000/rs6000.md
! d16831453dc0dec2a796ba21d6f984a9  gcc/config/rs6000/rs6000.opt
! 1f85593465476dff8f1a05954653d962  gcc/config/rs6000/rs64.md
! dd0028fa69924b6ab77e26d755d5b1e8  gcc/config/rs6000/rtems.h
! bb9d184abf8f6c8c3765d0979f9c9050  gcc/config/rs6000/secureplt.h
! fcfeeef0441253402f37264d272c84b5  gcc/config/rs6000/si2vmx.h
! fa89ac38426979c76ffce6119b4b95e2  gcc/config/rs6000/smmintrin.h
! 31c2160e56942951076f3d875a3d3ef3  gcc/config/rs6000/spu2vmx.h
! 9d06d3f95b630c8f4ed3f6ef3c422dbc  gcc/config/rs6000/sync.md
! 43d2bb4bf090fd69c53d59dabb3d518a  gcc/config/rs6000/sysv4.h
! 229078c9392d0c561108aa65b0d094af  gcc/config/rs6000/sysv4.opt
! 2854da1fb5cd3321b88f52080fd2ca2f  gcc/config/rs6000/sysv4le.h
! efe8102b960925ab0905d8f0dcb1c90a  gcc/config/rs6000/t-aix52
! 9b2d24fe11fb832205439b2f7af3618e  gcc/config/rs6000/t-aix64
  636250eb91fc5dada4804efcd525fc02  gcc/config/rs6000/t-darwin32-biarch
  f3250b9720d1149346f1ef8e21b52ea9  gcc/config/rs6000/t-darwin64-biarch
! e6e4a6611d0f4aabfd50619c4934ee6d  gcc/config/rs6000/t-fprules
! 56b4895ba292ab42911b292ec8f89c2b  gcc/config/rs6000/t-freebsd64
  7708df4fc7a5677f2dd3097c7bb5b338  gcc/config/rs6000/t-linux
! 40a493b7651ae22db32277e143a1a33d  gcc/config/rs6000/t-linux64
  71c0a0470047f0171a3bb4c483eb2b72  gcc/config/rs6000/t-linux64bele
  489699b655594f05bae0b429fd261edb  gcc/config/rs6000/t-linux64le
  60f26523152f6a061a12cb17e987de12  gcc/config/rs6000/t-linux64lebe
! 7ee3eb4f045d982f676e2fe3555d42da  gcc/config/rs6000/t-lynx
! 3c81d32073b298175e91a48a987747d0  gcc/config/rs6000/t-netbsd
! 0cd72c229a13d84ea51bedc123d6188b  gcc/config/rs6000/t-ppccomm
! 6c8e557da45ddd22262a95b03140e4cd  gcc/config/rs6000/t-ppcendian
! 7f06eb742fa21d34e7102dcc49702918  gcc/config/rs6000/t-ppcgas
  1b8aba690a39464c4ea9c647d73d6983  gcc/config/rs6000/t-ppcos
! ec5a8d4c0cc0d7174cc60c26e3f7a1c8  gcc/config/rs6000/t-rs6000
! 429fa5c2570618d0ac2b28f857fa3f0b  gcc/config/rs6000/t-rtems
! 6e4931d39c7afb45d5ab26530fe786ac  gcc/config/rs6000/t-vxworks
  f11925c88524d2fd457bf77944da1302  gcc/config/rs6000/t-vxworksae
  3f0601a68de7a0aee8264b538228d943  gcc/config/rs6000/t-vxworksmils
! 5e706ce7356cc1a9c7a44e6a06d32726  gcc/config/rs6000/titan.md
! 11283c3d497b8f9e14d0f7b2e6c767e9  gcc/config/rs6000/tmmintrin.h
! 8a427618716df54fe24964916961793c  gcc/config/rs6000/vec_types.h
! fc0103d6513257aadfcac62f4c7d98c3  gcc/config/rs6000/vector.md
! 8cd1c651effe3e6c5f3122dd159cd461  gcc/config/rs6000/vsx.md
! 4d40423d832e238fa189465ab2fed898  gcc/config/rs6000/vxworks.h
! 71931e4a1a4bd00dded5b5ed4292e9d4  gcc/config/rs6000/vxworksae.h
! cf7960e5b95d3ca2732d3e96e5f3c80f  gcc/config/rs6000/vxworksmils.h
  44a93bbae0ad5aba424ba7b97cc6914d  gcc/config/rs6000/x-aix
  b56ad5be71cef10dc9ee90f9f5577c21  gcc/config/rs6000/x-darwin
  0d6a4902892897c148fbf634ca039f71  gcc/config/rs6000/x-darwin64
  3f42272f4bcf66031ebf71a6c876adb8  gcc/config/rs6000/x-linux-relax
  c8b5860d3a61eeddd3a9790a0f09ed6c  gcc/config/rs6000/x-rs6000
! 7bccf29680ef59bbba40cde23f9d3111  gcc/config/rs6000/x86gprintrin.h
! 70bad66229789d86f028ae0f3bd477cb  gcc/config/rs6000/x86intrin.h
! e64e4b447abe627522f88826488e0f3d  gcc/config/rs6000/xcoff.h
! 217cb86c12190d67931957c967870933  gcc/config/rs6000/xmmintrin.h
! 9149e299be49ded29822e84b5bf79e5c  gcc/config/rtems.h
! b7b6f087a361b8d9e7ff54509f92aa06  gcc/config/rtems.opt
! a28bcaf997409e2f62994625353cec93  gcc/config/rx/constraints.md
! 19e204559dddcf7ec7958773b3a7a53a  gcc/config/rx/elf.opt
  84ae77475029b49553276e3d7ed74cec  gcc/config/rx/linux.h
! 6f94d4e63f8a9ce7065a3b4db4d6978e  gcc/config/rx/predicates.md
! 336a39ddf93bd1c9175b5fb8cfccdf3e  gcc/config/rx/rx-modes.def
! 6d01975c5b2a65d1834cffc61734ea2c  gcc/config/rx/rx-opts.h
! a4df5d7235eee67b0c2f42e2e6f42471  gcc/config/rx/rx-protos.h
! a1726b438d1f63560557626983e7ec21  gcc/config/rx/rx.cc
! acdc78843139a44ae81c322d9886dae9  gcc/config/rx/rx.h
! 03ccc353a4815770354603b149513e15  gcc/config/rx/rx.md
! 6367d05adebee392495b1c52c28559be  gcc/config/rx/rx.opt
  032cf36abc28f171fc24229e32796402  gcc/config/rx/t-linux
! 7bb76487a80156b528d3e046d2e21d34  gcc/config/rx/t-rx
! 35aa7f34969f0f486d95d2ed641eb3ff  gcc/config/s390/2064.md
! 7003b0aab40eda58e05b327cb30fb4a0  gcc/config/s390/2084.md
! f9561dae3c011f6282d770725b63878a  gcc/config/s390/2097.md
! b28ca95b8b556053aacce35b8d758109  gcc/config/s390/2817.md
! 40fdb274e3a83ba9b3e9863d96423346  gcc/config/s390/2827.md
! 56a15f0fa3bb1bb72f16a3cad4140b37  gcc/config/s390/2964.md
! 57b1168c5b2333d9d70bd25830396346  gcc/config/s390/3906.md
! e2be7628f834ca0ebb5138ed553ac27d  gcc/config/s390/3931.md
! ab45ba53c0d3a1f3eba1cb6c17534ae2  gcc/config/s390/8561.md
! 3a30ed5d6754bacf6acbc336aa3d5532  gcc/config/s390/constraints.md
! 48f3989195522515e2c2f477ee1fc0b2  gcc/config/s390/driver-native.cc
! 0413f9ee10a8f997dd72f61aee5e7405  gcc/config/s390/htmintrin.h
! 18192b3587f90ba67bc6ac3cd4b095fb  gcc/config/s390/htmxlintrin.h
! 0455474d19e72241a2f931eb5838414f  gcc/config/s390/linux.h
! bc0f35f11df98a3ea8154afd95aa8d0d  gcc/config/s390/predicates.md
! f4fded4219d7abeba4d1752b63a47c1b  gcc/config/s390/s390-builtin-types.def
! 9766dc05b49056b74fe8e10a9be25aaa  gcc/config/s390/s390-builtins.def
! e274089c979fe8cca36a358523639d7f  gcc/config/s390/s390-builtins.h
! d05bbbfa628a4e2a7b8b8b1c04d39657  gcc/config/s390/s390-c.cc
! ed576fb9a2ba561b17ab61f2a9bfe17f  gcc/config/s390/s390-d.cc
! 445c8dfdbd431a0ac7b33f1c659bd733  gcc/config/s390/s390-d.h
! 55bd22b1e6a549132e0c515ae9044df9  gcc/config/s390/s390-modes.def
! c7d2c6e9b07c780b3b02da4f5165316e  gcc/config/s390/s390-opts.h
! 5871932ed4c83ad11e5593250b1e04a4  gcc/config/s390/s390-passes.def
! 55737d7f8c38ddd5e7b5430d910e0ed6  gcc/config/s390/s390-protos.h
! ba3493b8c659a51abf99f21a3aff1c12  gcc/config/s390/s390.cc
! 0889a37d3bd6fd89b5ac6ae2d35ecee4  gcc/config/s390/s390.h
! 0f170902018152359f841ba28cd95c0d  gcc/config/s390/s390.md
! 7eeb85e77191dec9449c41ad7680f212  gcc/config/s390/s390.opt
! f38f665269ada42e34f30f19b3fe7040  gcc/config/s390/s390intrin.h
! eae55aa734af7d9845853bc4a69f29d5  gcc/config/s390/s390x.h
! 42ad4d6933976b65f9d58393c575f5a9  gcc/config/s390/subst.md
  551847ee4c38fa1a7e95fd93cdb32f17  gcc/config/s390/t-linux64
! 25b9248d1bcb196b6beadf0578b9f0c7  gcc/config/s390/t-s390
! fe1e650ea556632c1f992b768969e17f  gcc/config/s390/tpf.h
! fef82f4d1e1a0a5d89db5abe7477c685  gcc/config/s390/tpf.md
! dd2d83fd2c5bd7e08fd6f9d0cdb88e05  gcc/config/s390/tpf.opt
! da267810de1aafcd04a83e0432f15e77  gcc/config/s390/vecintrin.h
! 23f21fe566e6c79f42be06d7c4b214c7  gcc/config/s390/vector.md
! 2703cdfbd359495a6b381ec1d11d5a5b  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
! 00c4f5a037a71b2f382274bd12d0e9a4  gcc/config/sh/constraints.md
! c8487ca5366e8272f2abc9492073dae7  gcc/config/sh/divcost-analysis
! e8bf200417671f23f7bdf18802046d54  gcc/config/sh/divtab-sh4-300.cc
! 1a4983202a4af20935c6f41da4f28ace  gcc/config/sh/divtab-sh4.cc
! b7a1f055a8a09865a64d0c3d5eb6469b  gcc/config/sh/divtab.cc
! 29cf2048a711cdec85f7a38619c4197c  gcc/config/sh/elf.h
! 042534abe7d24fde22006849f5c61b93  gcc/config/sh/embed-elf.h
! e4cf24ce466ece41166c514e5cdee7e6  gcc/config/sh/iterators.md
! 94b62e4404532b5101df05fbadbbb9e0  gcc/config/sh/linux.h
! 257e5be05e74dbcdd82f0894fa91056c  gcc/config/sh/little.h
! c0ff786ada7ab740f5d7b3be48962a9b  gcc/config/sh/netbsd-elf.h
! 4dd6f9aa7255bec916d73084cef84b71  gcc/config/sh/newlib.h
! f792ddcda87ac095866fc79becd15dd6  gcc/config/sh/predicates.md
! d69a5df380ef56b12cc7e5d6ee6a56ee  gcc/config/sh/rtems.h
! d8aef56cfaaff919fbee9bfafdff6c2b  gcc/config/sh/rtemself.h
! cceba0c8dc90312627444162a8078239  gcc/config/sh/sh-c.cc
! edd218d93f2616cdf22e23c86e41f678  gcc/config/sh/sh-mem.cc
! dafa05de62e4f5bb6c9b7a2ffb7a55df  gcc/config/sh/sh-modes.def
! 4515312140f2002feb7cd75134f2c396  gcc/config/sh/sh-protos.h
! 3cd820b989f5e4714580821c3e0a5372  gcc/config/sh/sh.cc
! 37b97b8797def6afb72ea964a453eca5  gcc/config/sh/sh.h
! e30fdee87ae4cb265de8b19d52406c3d  gcc/config/sh/sh.md
! b5bc1e3d906715c2267ae3b833e714a8  gcc/config/sh/sh.opt
! 3a51dff173dae73355e8cad1f8bd5866  gcc/config/sh/sh1.md
! 8980e2d146877b565a494bb33095eb9e  gcc/config/sh/sh4-300.md
! b852aaa445a59d88a8600a18840b1fd6  gcc/config/sh/sh4.md
! 64234f0093a2c054203539b8c80dfd9f  gcc/config/sh/sh4a.md
! ece0f82448d83858d029e0b41c3729fa  gcc/config/sh/sh_optimize_sett_clrt.cc
! c65adb47c2a81fc24e51464333694208  gcc/config/sh/sh_treg_combine.cc
! 0c841c3e15c9c85d689edcc70c3c0372  gcc/config/sh/superh.h
  06158b0f1e33501120db330d7734228d  gcc/config/sh/superh.opt
! e203b5735f354602d01bbbdbc3a72c60  gcc/config/sh/sync.md
  88130a11ca77c8572260539cc46ef7ac  gcc/config/sh/t-linux
  ad88281b142c81e6c7017a842c281d5f  gcc/config/sh/t-rtems
! a6d3ff446851f67016081e49925c6518  gcc/config/sh/t-sh
  9f0e9638f478c08d204c5dce468c95ce  gcc/config/sh/t-vxworks
! 73358c9018c9b50f822c48b932695530  gcc/config/sh/vxworks.h
! 8355ee38ab3e4c5a5403177f3f4c2ada  gcc/config/sol2-c.cc
  5c26c2321d68d4724b0d0076803c6b89  gcc/config/sol2-clearcap.map
  73dd11dea23019ab25cbbd70968694e7  gcc/config/sol2-clearcapv2.map
! 4ba790392108e9f7e21f36f5845287a9  gcc/config/sol2-cxx.cc
! bdd19d5a1e7e4579dcfec2e9e954107b  gcc/config/sol2-d.cc
! d8b7d7a2040952f45637a4c5274a9a79  gcc/config/sol2-protos.h
! 15b63f0b3a1f3da132108cd005ee7712  gcc/config/sol2-stubs.cc
! da0841783754376699789a7b4c8ace16  gcc/config/sol2.cc
! 1ab6976a54278635c410f8461e6f0721  gcc/config/sol2.h
! f36f491e78abfad5b282be259980f0ec  gcc/config/sol2.opt
! 678ee204e4124363a3b2681d314b6b2b  gcc/config/sparc/biarch64.h
! e570e7998ea203e35ffcb960e5d1d8e6  gcc/config/sparc/constraints.md
! df90ccaa1c13a1d80aeb0242dfc07063  gcc/config/sparc/cypress.md
! 1f88b133ad8d32e4ac97a473cc312014  gcc/config/sparc/default64.h
! 218c349fde5ea664ff49e06a591d4c03  gcc/config/sparc/driver-sparc.cc
! 26473e51ede0dd3b2171ed22271bafff  gcc/config/sparc/freebsd.h
! 4bc6ce516a5980bee56ba06fa2f73397  gcc/config/sparc/hypersparc.md
! 88f46e54a16c50d6cec6287587322d76  gcc/config/sparc/leon.md
! 23cc6a69b647f0d8a2a178c830a54547  gcc/config/sparc/leon5.md
! f86882ccbeb419481898e745c70139ce  gcc/config/sparc/linux.h
! caa2273a67f623c1eac0580b59d29f2f  gcc/config/sparc/linux64.h
! ca9eb4a7212166ed3a26927b379543c3  gcc/config/sparc/long-double-switch.opt
! d26bca1bbd7ef418cff8d1007d0ef24a  gcc/config/sparc/m8.md
! 6761931a83608c8c020f3df6a8d70087  gcc/config/sparc/netbsd-elf.h
! 0ea8d810cccd21b2e8f310c1ab0b8560  gcc/config/sparc/niagara.md
! e4c1f44fa9c5ebc5a861ea234b18eb10  gcc/config/sparc/niagara2.md
! eb1e5bee53e734fcad378a618d6426a1  gcc/config/sparc/niagara4.md
! e526259c0a197f4ed49b90b859467eb0  gcc/config/sparc/niagara7.md
! 78734c5d24090aca818363592c1098ea  gcc/config/sparc/openbsd1-64.h
! 46d5fa2c3daf70ca4639c70dd78bc2b3  gcc/config/sparc/openbsd64.h
! 867098acbf9546c1a9852fa5ee1672f3  gcc/config/sparc/predicates.md
! 6fd084277090ba7cb7def41b4af4fc0b  gcc/config/sparc/rtemself.h
! a8c5a3e75869d6cb1954594286e744b0  gcc/config/sparc/sol2.h
! 985e58fa67c4c777474415ee595dcd47  gcc/config/sparc/sp-elf.h
! a2ac5919029d88f6593876c4f3bcaa34  gcc/config/sparc/sp64-elf.h
! cdf4a33a175f8fe850aab562d3d2d29f  gcc/config/sparc/sparc-c.cc
! 4ac5688cf408eccca7628548ee92a729  gcc/config/sparc/sparc-d.cc
! 4ae11108d80772e2304cf803a7d1b527  gcc/config/sparc/sparc-d.h
! bd3c25f5a3a340605210356043d8a922  gcc/config/sparc/sparc-modes.def
! 5fe50014653d9cf16747a02facbd8dda  gcc/config/sparc/sparc-opts.h
! 6df273288aa59b1d947ac95b91451ebf  gcc/config/sparc/sparc-passes.def
! 7cab410d6730137ed7525827eb7dec71  gcc/config/sparc/sparc-protos.h
! 5db45b56679308d5af7de2b5325fc8d2  gcc/config/sparc/sparc.cc
! 397877923c1572ea23e1df6650c428d9  gcc/config/sparc/sparc.h
! 21927b300584f83dad232c12e8f5e7c7  gcc/config/sparc/sparc.md
! a6106b074178cf1b60ed55d350cd9062  gcc/config/sparc/sparc.opt
! 99b46577eda89f715bc747c3af07c6bb  gcc/config/sparc/sparclet.md
! 7cb40cf452f681faa258fb76bd35a9dc  gcc/config/sparc/supersparc.md
! 7d3060af592414a4bb0bb392370e4a95  gcc/config/sparc/sync.md
! 4e20f9b37d1d1f8fd472aa300f0819e1  gcc/config/sparc/sysv4.h
! 03a49b7783f24fb0f8c1746c3792a1a3  gcc/config/sparc/t-elf
! ff942aeffa1f797a7e9198e3f5c80cf7  gcc/config/sparc/t-leon
! b10f35c095651f2e095e4a3c25ecf0f2  gcc/config/sparc/t-leon3
  4a7d3f368a24d549fabaafbe44fcb134  gcc/config/sparc/t-linux
! 196904db18c2583d755ced7af0fc6d9c  gcc/config/sparc/t-linux64
  75987b7fdc6fa9c9ff2108ff1003e6d2  gcc/config/sparc/t-netbsd64
! 4280cc526170564121d6f3bfe4284b9e  gcc/config/sparc/t-rtems
! fd442f60e5b5776f11381d039937c9dd  gcc/config/sparc/t-rtems-64
  511770bb20c2707fabd4f231ce8b83cf  gcc/config/sparc/t-sol2
! 14345b91556df245c52ecfaf130ad905  gcc/config/sparc/t-sparc
  b04597637b0c08dd3e6d1a40c43e76b4  gcc/config/sparc/t-vxworks
! cb88fdef63f4db45ea479787f7e7992f  gcc/config/sparc/tso.h
! fff60b51cfb346ae496d0790a1211836  gcc/config/sparc/ultra1_2.md
! 96c8b69df8b1cff02d423a1f11459e5e  gcc/config/sparc/ultra3.md
! 7f999343fe9abb727ca9791b0d1420dc  gcc/config/sparc/visintrin.h
! 49bf1e178fcfbb388c5de05cd136000e  gcc/config/sparc/vxworks.h
  5e0da0cb45fdd1424679c054727e1bfd  gcc/config/sparc/x-sparc
! 08f40d5b8604fb1058fd674194aa50ff  gcc/config/stormy16/constraints.md
! 6dba43ee679697c1a94f42507cdb554c  gcc/config/stormy16/predicates.md
! bad6f7ffa710b9b2813cfdf3b77adfaf  gcc/config/stormy16/stormy-abi
! cb072cae4da41f9f1bc6fa031fb122f9  gcc/config/stormy16/stormy16-protos.h
! 38715a0a5a61180e6c16234a6fd9cafe  gcc/config/stormy16/stormy16.cc
! 00eda4c9c98e4592b43471ddc63327cd  gcc/config/stormy16/stormy16.h
! df5b858a1b965cb24e979c418bea86ae  gcc/config/stormy16/stormy16.md
! f371373cded2bea85c998ed3f97ef7a0  gcc/config/stormy16/stormy16.opt
! 3985ed2b75fc211e7959805671ba9c77  gcc/config/t-darwin
! a61c08fb359276fa06dcc27759c41333  gcc/config/t-dragonfly
! cfb3215edb950e218a6b1f761ff2bf6c  gcc/config/t-freebsd
! b03d485e315710236bd3d3bd4f35b41c  gcc/config/t-glibc
! 942edae01ec7d9a0c131afa6af081903  gcc/config/t-libunwind
! a57fa398ac61003e7a388cc08c1b8cb7  gcc/config/t-linux
! cc9b7480e77657318c9cbad0a2c638ca  gcc/config/t-lynx
  5dad674732908a1c6e62e627e047929e  gcc/config/t-musl
! 44244f0b801d41a66adb0402aaa2bc31  gcc/config/t-netbsd
! a11abd37e1474532461e8f226466c582  gcc/config/t-openbsd
! b9cf1776e98de71c8517ff85b3cb45ce  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
! 770223b99fadf66a8674d8fae9b9466a  gcc/config/t-sol2
  94b3e10150e75899d2fc1410cf218e3f  gcc/config/t-sysroot-suffix
  6f78c5decbfb4b465e7c289b60109023  gcc/config/t-uclibc
! 1d4f9a7580458a48393e4970d3946894  gcc/config/t-vxworks
! 53b55da3ca57e776b32417f0335ce348  gcc/config/t-winnt
  17fd5cabcc31b720b23bad47cf7fe84c  gcc/config/tm-dwarf2.h
! 6a15f9955e0c125d58b8755e7eaf0e4a  gcc/config/usegas.h
  a6ae71a556271cc116214b3e9e87d867  gcc/config/usegld.h
! 21c1a4079458ef00dea8d1784c73549d  gcc/config/v850/constraints.md
! b0fc37595e8eb337081bcd0f6921fa00  gcc/config/v850/predicates.md
! 6dffba8841b741c05b45f641aac3265e  gcc/config/v850/rtems.h
  41b5d5e91cc905b1e3ba5de47db5f9c6  gcc/config/v850/t-rtems
! 84d81e442454bbde58195be5629ce1b8  gcc/config/v850/t-v850
! d753ebec2e8e25a03c9616cdfdc68164  gcc/config/v850/v850-c.cc
! 8aeb581e78b83055d00a68e8a2e98e2b  gcc/config/v850/v850-modes.def
! 65214781d15660b86320b79f7264c075  gcc/config/v850/v850-opts.h
! f4c052f23eda78e1c40b9d0654fc6848  gcc/config/v850/v850-protos.h
! 4ae9b34dddc5aa54eff516cac33dd16d  gcc/config/v850/v850.cc
! 382037b8fe29fbadd0cda6b12a929703  gcc/config/v850/v850.h
! 094ad5a26a84083b71364fae38c248e1  gcc/config/v850/v850.md
! 2dad840f68b879ee690ec3fdd8f6be71  gcc/config/v850/v850.opt
! e60d73c26f374630f9e59c0484e2cd66  gcc/config/vax/builtins.md
! ef03a0a222c440f6437a4e7dd833402e  gcc/config/vax/constraints.md
! 28a2454a4cd587828ebf5c64f59d9bff  gcc/config/vax/elf.h
! 8c491584dc75701af04a255b6defacbb  gcc/config/vax/elf.opt
! 179519a1e6463fe1bbcd4fec30a1d931  gcc/config/vax/linux.h
! 3fae15b92d92a16e6d69da748edb1e06  gcc/config/vax/netbsd-elf.h
! e8ed901649371c9d930bf253582fafd0  gcc/config/vax/openbsd.h
! c02c2e60a2b7403e97217854b6697545  gcc/config/vax/openbsd1.h
! 597b2b86de45d65cf90f3e85fea6d187  gcc/config/vax/predicates.md
! 51cde4f364613aca605ed85aae2bc8f1  gcc/config/vax/vax-modes.def
! 8f8e1b1a1dc2614e0b2b036dd47fb5bc  gcc/config/vax/vax-protos.h
! 1b85e49a822b1e35b2f7d78e1ff2ea68  gcc/config/vax/vax.cc
! 4a28295dcd9cad1669329908a7982023  gcc/config/vax/vax.h
! 00059b8f723cd17f61829ad0b035118e  gcc/config/vax/vax.md
! 41d56a166600eba6041cd52c0e1fedfd  gcc/config/vax/vax.opt
! 1d6ede1e8b576a8ff0cc70391c119740  gcc/config/visium/constraints.md
! b709eba0a7e411322054701a24a1c12d  gcc/config/visium/elf.h
! 43a09511e9e612f981000a650a5b4f13  gcc/config/visium/gr5.md
! 124505c0560bb30b6cb1afe89fc144c6  gcc/config/visium/gr6.md
! 6daa1a8bb2dd196c6c767d7978de7044  gcc/config/visium/predicates.md
! 064beb2d0b80ec0fe5aaeba2d2e8d709  gcc/config/visium/t-visium
! a4baca0de6c668e4a7a0a2d70a4333b2  gcc/config/visium/visium-modes.def
! 45e46ff334aa42b8d3620d28586f8595  gcc/config/visium/visium-opts.h
! d9382ccf10982cccc9aa9efc2c0cfa07  gcc/config/visium/visium-passes.def
! 48b962e0c1f6686e7edb25596596cf88  gcc/config/visium/visium-protos.h
! 7d8b96f6775b61ff68bf1621495f71af  gcc/config/visium/visium.cc
! c2baa5580de52322c5c3aa78fd2f75ee  gcc/config/visium/visium.h
! 614b79d326d85ca3cf807a4173d4aefb  gcc/config/visium/visium.md
! a528e0e6b8b1a9600fc5914330066181  gcc/config/visium/visium.opt
! a1627c85545be49c31c92f69b534a721  gcc/config/vms/make-crtlmap.awk
! cc9eaa01bdb2ed78dba5ffc75d524aec  gcc/config/vms/t-vms
! b2d16810daf7bc8ee30fcf10e0f1fedc  gcc/config/vms/t-vmsnative
! 36371876e6caeb2e0765177ed30ed5b3  gcc/config/vms/vms-ar.c
! 9e591df7d1b5289f80afdff6aa2d963e  gcc/config/vms/vms-c.cc
  c4603dec4151d376a2092ed7555c06d7  gcc/config/vms/vms-crtlmap.map
! 0471d99ab70dc46cecb7cf04366d992c  gcc/config/vms/vms-f.cc
! 33549467f6407ada6fe46cddf931b58d  gcc/config/vms/vms-ld.c
! f509cdfc4ddfb72b96ee44e81acd3113  gcc/config/vms/vms-opts.h
! 955a747bdead214094953393168ae1e3  gcc/config/vms/vms-protos.h
! a87729f70b137c5f75254498c615fdf6  gcc/config/vms/vms-stdint.h
! e90b3ebcf8692d9d3a138bc9988ecc7b  gcc/config/vms/vms.cc
! 8283d3f45039fa67898a2a56bd84e23b  gcc/config/vms/vms.h
! 2f421663028a840c85cfd612181c6197  gcc/config/vms/vms.opt
! 0fecab9b90d1e5b27faf274a8d4e9164  gcc/config/vms/x-vms
! f07731b40b4a59babf212ee23d0a1567  gcc/config/vms/xm-vms.h
! 36dc171ffb859623740cd11f4d50b45e  gcc/config/vx-common.h
! f8a26443b3a2a4542895267438a29017  gcc/config/vxworks-c.cc
! 5bb2eea179ea6123f7e93570d95803a4  gcc/config/vxworks-driver.cc
! dd942f4d20211a67244d7480abce699d  gcc/config/vxworks-dummy.h
! a41a2335691d708587bc5d9b29bb28c4  gcc/config/vxworks-stdint.h
! 1c213092e55e68b2c0f5145620262e33  gcc/config/vxworks.cc
! b5e0811371cabd29023447cd8babd113  gcc/config/vxworks.h
! dae4f9a8e5f85aad95fb15606aecbc16  gcc/config/vxworks.opt
  36a893b52ae4d79dd9eb41107ead34be  gcc/config/vxworks/_vxworks-versions.h
  2c7fb7482d87758a9305ce4fec4c94ea  gcc/config/vxworks/_yvals-wrapper.h
  83f08d69839ac4c7dc87a99be6c69a2b  gcc/config/vxworks/_yvals.h
--- 1350,5328 ----
  d90ff1db87e7c9bf483659701a55671c  gcc/ada/libgnat/a-llltio.ads
  b8fcc586001cbdaddc04c29fc016fa48  gcc/ada/libgnat/a-lllwti.ads
  5faeef2817310c83968117416e0120b0  gcc/ada/libgnat/a-lllzti.ads
! 680bc6047428c03859503c0905b9631e  gcc/ada/libgnat/a-locale.adb
! e9527ec9a38c9e8d3db1ba8f625ed1c3  gcc/ada/libgnat/a-locale.ads
! 7a84de7843a63d673545d5c534e2a074  gcc/ada/libgnat/a-nagefl.ads
! 067aeda528bcdb0d9b2d663b854bb99d  gcc/ada/libgnat/a-naliop.ads
! 01b44341ac28e6df76ef10d1889896cf  gcc/ada/libgnat/a-naliop__nolibm.ads
! d25a379bd277d47b139f93f252bb4e4f  gcc/ada/libgnat/a-nallfl.ads
! bd59393ac7b1c221994e5cc15e083370  gcc/ada/libgnat/a-nallfl__wraplf.ads
! e802c07eaced412176b61fb887c4f499  gcc/ada/libgnat/a-nalofl.ads
! d978c8712860758815c936db2f2e9a7a  gcc/ada/libgnat/a-nalofl__simd.ads
! 03e5e110450b7a64bec1f11484a2c757  gcc/ada/libgnat/a-nashfl.ads
! 764326d786daf000949bbd6d570b2544  gcc/ada/libgnat/a-nashfl__wraplf.ads
! 8d9be783803cfa847db757d391d7740c  gcc/ada/libgnat/a-nbnbig.adb
! 2e36a18953d2b3129a10437c4fda1350  gcc/ada/libgnat/a-nbnbig.ads
! 67e6ae58d18746c9c29f497678098218  gcc/ada/libgnat/a-nbnbin.adb
! e570135fe58307ce95594d2d3e0b85df  gcc/ada/libgnat/a-nbnbin.ads
! 1b72dc6c6d63e71303cf4c6237efbe0e  gcc/ada/libgnat/a-nbnbin__gmp.adb
! 63df1e120a8973b5d63896ca3aee3d93  gcc/ada/libgnat/a-nbnbre.adb
! 454fc2632d21666120b10d84b2706b1b  gcc/ada/libgnat/a-nbnbre.ads
  f8a74f5169bf9eba09b0050d2ce025f4  gcc/ada/libgnat/a-ncelfu.ads
! 6dbb7c8c3e345c2811f4be61cd6ee884  gcc/ada/libgnat/a-ngcefu.adb
  2e229d27b615410dbc242fd1d7d4bd98  gcc/ada/libgnat/a-ngcefu.ads
! 015601b9c1b287112832af76e17bd431  gcc/ada/libgnat/a-ngcoar.adb
  03d934454f8cbd5b382c05c95cd2a70a  gcc/ada/libgnat/a-ngcoar.ads
! d558b09e72edbfe0c81ecaee110829c4  gcc/ada/libgnat/a-ngcoty.adb
! 03adbe7d6858a3fc32c40a836f409655  gcc/ada/libgnat/a-ngcoty.ads
! 5c83fc507aa55d76f42664aee84be538  gcc/ada/libgnat/a-ngelfu.adb
! 671a44abe6dbacdccbd0a8bc8d15a8a0  gcc/ada/libgnat/a-ngelfu.ads
! b9367248ed1d98bda2e432051383a8d5  gcc/ada/libgnat/a-ngrear.adb
! 0ab6ea16d15e75a2236a49d9df1db9e0  gcc/ada/libgnat/a-ngrear.ads
  7f894c161f872e68b50172715a8a311e  gcc/ada/libgnat/a-nlcefu.ads
  307582c16af8c2d164031fd8dfb72581  gcc/ada/libgnat/a-nlcoar.ads
  2341d761d1df9c74f5d4396b2a243874  gcc/ada/libgnat/a-nlcoty.ads
! ab84950480ebd62289e41d3ec50b400b  gcc/ada/libgnat/a-nlelfu.ads
  44394b04703b7121f6dafb77b7eb7dda  gcc/ada/libgnat/a-nllcar.ads
  b1c1bbccd0e624d2b5753adeaa355876  gcc/ada/libgnat/a-nllcef.ads
  4b51dc5d67f507aed187528008aa427d  gcc/ada/libgnat/a-nllcty.ads
! c4df697bfe43f078325051bf17f2462c  gcc/ada/libgnat/a-nllefu.ads
  dd270955ac40f18eb7ef0bb7122fbc06  gcc/ada/libgnat/a-nllrar.ads
  dc556e736d290554bf97bb7153c2e96b  gcc/ada/libgnat/a-nlrear.ads
  ed8c8d1cff975d8128d8a34e6fa60333  gcc/ada/libgnat/a-nscefu.ads
  ae6657265a333ec061d886c2e0a9be47  gcc/ada/libgnat/a-nscoty.ads
! c7bddd6abb488c8cd0d9982769254df5  gcc/ada/libgnat/a-nselfu.ads
! 428c5fd577bd441513e497dfe168e90e  gcc/ada/libgnat/a-nuauco.ads
! ebdb0116c729fb39ae518d89772f5678  gcc/ada/libgnat/a-nuauco__x86.ads
! 5c71aa7228479be10b30558b33ccb97e  gcc/ada/libgnat/a-nuaufl.ads
! def91b15f7f0d41b7b70de3c8f50b213  gcc/ada/libgnat/a-nuaufl__simd.ads
! 867147001440c22ea0a2b8ec7a181a40  gcc/ada/libgnat/a-nuaufl__wraplf.ads
  7714df1a41c354211d217f99429093ef  gcc/ada/libgnat/a-nubinu.ads
  22a793d6936415ee70b725c6d2b2020a  gcc/ada/libgnat/a-nucoar.ads
  bda677b507deb699333f9baa2c37a694  gcc/ada/libgnat/a-nucoty.ads
! 5b815eacadaa24069afb638515ff56cf  gcc/ada/libgnat/a-nudira.adb
! 6a2d2875f4fb6a67e16d219ff2736053  gcc/ada/libgnat/a-nudira.ads
! bd9eed0e40585ba218b0badca225b64c  gcc/ada/libgnat/a-nuelfu.ads
! 8b5d9ba0114dec9fdb0adb13dc67b528  gcc/ada/libgnat/a-nuflra.adb
! 280838bdec1b139d347182b8f2ed3caa  gcc/ada/libgnat/a-nuflra.ads
! eb37a45bc38c1b6fb1758741ed907f7f  gcc/ada/libgnat/a-numaux.ads
  c4d4bea6dcd8066d2ddcb0789ef64586  gcc/ada/libgnat/a-numeri.ads
  88b948f6713b009c76e8b3b7b75a22c9  gcc/ada/libgnat/a-nurear.ads
! 28bbe21b96277a215a8e08a55bd06513  gcc/ada/libgnat/a-rbtgbk.adb
! 78c693ee5b71aa295a7687ce4449be77  gcc/ada/libgnat/a-rbtgbk.ads
! 7c1163f4517f637a65af134108cedf9e  gcc/ada/libgnat/a-rbtgbo.adb
! 9ec20b9a3ff44c614779bd7f002d0bae  gcc/ada/libgnat/a-rbtgbo.ads
! 3dddced7b86cc604445199ef17d8dae9  gcc/ada/libgnat/a-rbtgso.adb
! 836eb8bf535eb35736b1d5ad07f16692  gcc/ada/libgnat/a-rbtgso.ads
! 80e24c37f4646a1f4781839e32056d2c  gcc/ada/libgnat/a-sbecin.adb
! 5b6595c16ef3597ab7d9eb1c0339d501  gcc/ada/libgnat/a-sbecin.ads
! 69c8a28ce9c82743ec97ba6c30eb03c4  gcc/ada/libgnat/a-sbhcin.adb
! 3420c65a930da7c01e7ab8f289792d68  gcc/ada/libgnat/a-sbhcin.ads
! e1b33975829d3f24033bbf5028acd054  gcc/ada/libgnat/a-sblcin.adb
! 476572171216d6fa8b21f58e7a12cc03  gcc/ada/libgnat/a-sblcin.ads
  67b280f23d76be962783b397ef7e60c7  gcc/ada/libgnat/a-scteio.ads
! 68f64ef033fceec5be26cb951fe8bdb6  gcc/ada/libgnat/a-secain.adb
! edc774b26cbd2c70c7b4a32c7b8e83e9  gcc/ada/libgnat/a-secain.ads
! 99ac6f432f83ff6faca3a3c5f4d7cb9a  gcc/ada/libgnat/a-sequio.adb
! 90195bc3ad2c091d3b51b673ec61d5f5  gcc/ada/libgnat/a-sequio.ads
! 8fd199f0f5993991d51bcb4c2b635732  gcc/ada/libgnat/a-sfecin.ads
! 205b47364d72976de7aee62033f5a23d  gcc/ada/libgnat/a-sfhcin.ads
! ab7aafb7b58a0edfa49ead1a8b970f86  gcc/ada/libgnat/a-sflcin.ads
  43123af888cd4637ee6a1eaf9dde9e34  gcc/ada/libgnat/a-sfteio.ads
  63d0f0f0aed733a972873cb3a4b767ea  gcc/ada/libgnat/a-sfwtio.ads
  7207d517b5474be90def505e3a2be187  gcc/ada/libgnat/a-sfztio.ads
! 8b95d39800f9eabd3054d96f9af3a7a0  gcc/ada/libgnat/a-shcain.adb
! 97e783d0fa9ca7f81b876ff38593d63c  gcc/ada/libgnat/a-shcain.ads
! 394e0babe15bc9f817b6467c486b5ff6  gcc/ada/libgnat/a-siocst.adb
! 06b0fe1b384543fd81b4a9609eb506ec  gcc/ada/libgnat/a-siocst.ads
  6fce3ea5eecdf93f2ec7d0446ebd14af  gcc/ada/libgnat/a-siteio.ads
  9330fbe80fe3844d3bf5aeb4946381f6  gcc/ada/libgnat/a-siwtio.ads
  c816a5bc136362b2468801e67deb9ae9  gcc/ada/libgnat/a-siztio.ads
! a301367a53819ac7e571546e901e1d4d  gcc/ada/libgnat/a-slcain.adb
! 94e843f13bbdb08b02ce1fc5d199ad99  gcc/ada/libgnat/a-slcain.ads
! 77e3b7b16640a3f6d8f34fb262e7ba6c  gcc/ada/libgnat/a-ssicst.adb
! 665a2dd5384e799945b74ecceabc584c  gcc/ada/libgnat/a-ssicst.ads
  3ec2f925719d14de3a80c38042157f78  gcc/ada/libgnat/a-ssitio.ads
  387afdf3ceb85d07a14d8ae4e2f0eeec  gcc/ada/libgnat/a-ssiwti.ads
  366683e8278e7e71bc63a8c7a3f2238f  gcc/ada/libgnat/a-ssizti.ads
! 0c8b1cbb85cd0b38ab0e734b5105dc86  gcc/ada/libgnat/a-stboha.adb
  8274f77970c3b1ed9a51aa8ddf6a4d0f  gcc/ada/libgnat/a-stboha.ads
! d2c9e8b023ee31561d6c265bec199dd3  gcc/ada/libgnat/a-stbubo.adb
! 3e7f36f19a7dc8483de008d598cb99eb  gcc/ada/libgnat/a-stbubo.ads
! 1011c7ebba9d915d74d4fa65fd5ed87c  gcc/ada/libgnat/a-stbufi.adb
! 7628849e941f7e099780c4222b3c9c71  gcc/ada/libgnat/a-stbufi.ads
! d9154c65101bbc017b76ce3a95984238  gcc/ada/libgnat/a-stbufo.adb
! 7d93995906b8fa2791b2c97016c7686b  gcc/ada/libgnat/a-stbufo.ads
! 3223d1984dd7a6fa8fda5eff43d75bf0  gcc/ada/libgnat/a-stbuun.adb
  1e900014d9809db78ef32d2e97e1531b  gcc/ada/libgnat/a-stbuun.ads
! a88e2d90c95233506a9dd7b00508fa6c  gcc/ada/libgnat/a-stbuut.adb
! 51ed15efe8f1e95a0a0671b379ed9af8  gcc/ada/libgnat/a-stbuut.ads
  756f44b0c7f4483ecd7302aee8bc110a  gcc/ada/libgnat/a-stfiha.ads
! 9c8936502dc0e5a135d049bf1af23b2f  gcc/ada/libgnat/a-stmaco.ads
! ad9e82c5cc289c5bc507b128ad8322bf  gcc/ada/libgnat/a-storio.adb
  34175bb2f712422ab4cfd24b3e452b0d  gcc/ada/libgnat/a-storio.ads
! 5ec3e4e0a4ac3695a20ab6431c2336a2  gcc/ada/libgnat/a-strbou.adb
! 772a161c8facb4ce7786c357579b888b  gcc/ada/libgnat/a-strbou.ads
! a19b96964d2dad6e59bb2a093fd27244  gcc/ada/libgnat/a-stream.adb
! a42e7b3e6a9845bd1446b947f06498d5  gcc/ada/libgnat/a-stream.ads
! 84fe76b4aa3e05fd8073244530c4cfad  gcc/ada/libgnat/a-strfix.adb
! 691efc1db5e10f88c59245ffd0d70083  gcc/ada/libgnat/a-strfix.ads
! 6865cbfe49cc18ac523eb36cacf14e31  gcc/ada/libgnat/a-strhas.adb
  b0a210089b94e668314dbcff62c4c997  gcc/ada/libgnat/a-strhas.ads
  de0f93afe5feaf6819d5a9a2e09172e6  gcc/ada/libgnat/a-string.ads
! 7d1a662cb8bfdfeb5f1658881b59c87c  gcc/ada/libgnat/a-strmap.adb
! 2432102bec8cef5c5fbc22f4c55bfe7a  gcc/ada/libgnat/a-strmap.ads
! 5d3e7ff29000bd84d27c3787d564aacd  gcc/ada/libgnat/a-strsea.adb
! ada0e861a612c30ddd3e8ca244c2306f  gcc/ada/libgnat/a-strsea.ads
! 6b412ddcf888c236b03e7927aa759f0e  gcc/ada/libgnat/a-strsto.ads
! 319d763f3ee392881d56e3af532200fe  gcc/ada/libgnat/a-strsup.adb
! 66d49c84bd3f966e842f759b68aee2e5  gcc/ada/libgnat/a-strsup.ads
! 4b472d356e690b761660bde5125425c1  gcc/ada/libgnat/a-strunb.adb
! 417c019e1ba0b507c5001e347d9cde60  gcc/ada/libgnat/a-strunb.ads
! 204d9f2302af5761c1fc01dcbba197d2  gcc/ada/libgnat/a-strunb__shared.adb
! f70b082c3f0954a6e469eabcbfe260e2  gcc/ada/libgnat/a-strunb__shared.ads
! 2084558bc946d0216bfbacf593b5f59c  gcc/ada/libgnat/a-ststbo.adb
! d8061f94fc37cbdbabdd708bfe1ad9dd  gcc/ada/libgnat/a-ststbo.ads
! 2b28e88d230ad46deb969a34d843f762  gcc/ada/libgnat/a-ststio.adb
! e6cb66933ae62bc5c124bac71cf5c9c5  gcc/ada/libgnat/a-ststio.ads
! ddb6fecdf48d2bed4b008f8a25ebe700  gcc/ada/libgnat/a-ststun.adb
! 9e2fcdc926d8c9610d2ac6e7fd6318d9  gcc/ada/libgnat/a-ststun.ads
! f5e71451560f60fdbf31b79972311d8f  gcc/ada/libgnat/a-sttebu.adb
  3c26fa3924701bf0fb31cc7ce9580ec6  gcc/ada/libgnat/a-sttebu.ads
! dfad23528e312ac8105cdcc203948663  gcc/ada/libgnat/a-stunau.adb
! dc04fed1e146cd810177ebabc7d574c6  gcc/ada/libgnat/a-stunau.ads
! 23b65feddda8d9b4005d5fcd1d0b4375  gcc/ada/libgnat/a-stunau__shared.adb
! 13e6fb01c283d47d9eded9c6cac1f002  gcc/ada/libgnat/a-stunha.adb
  da4a8d13f76850d714a8213ada7477d2  gcc/ada/libgnat/a-stunha.ads
! c88bff765664344177c994842a186b26  gcc/ada/libgnat/a-stuten.adb
  0f5fe8e890a5c8c46160b756ee5500f3  gcc/ada/libgnat/a-stuten.ads
! 9e73bb874eff6e228f2fec8697dc21ea  gcc/ada/libgnat/a-stwibo.adb
! 503998b50974d9c8e242e967c3a82918  gcc/ada/libgnat/a-stwibo.ads
! 24be37cbaf7d5454f6761a2c730c269b  gcc/ada/libgnat/a-stwifi.adb
  b0cf3f05e49e1640bf231034269cb951  gcc/ada/libgnat/a-stwifi.ads
! c9beca1f4ca01e3062141b576b5b22ed  gcc/ada/libgnat/a-stwiha.adb
  3255ad19d07346032c9d005d6a27475f  gcc/ada/libgnat/a-stwiha.ads
! 1a6ead652bb25638e5addb065cf77a9d  gcc/ada/libgnat/a-stwima.adb
! eaf01e839a1e3b07ff9f71fa33c946cf  gcc/ada/libgnat/a-stwima.ads
! 8e3827f342b4fe92e805121102b0777f  gcc/ada/libgnat/a-stwise.adb
! 3293c7132079f23daf6744a2d5783a97  gcc/ada/libgnat/a-stwise.ads
! 61ea3e995a8fb53d20f263cbee7f8902  gcc/ada/libgnat/a-stwisu.adb
! 6a7619b7bb5138ebecf80b9b6e74a0a6  gcc/ada/libgnat/a-stwisu.ads
! 19772a85bb53d0c24d0c0ec59834e066  gcc/ada/libgnat/a-stwiun.adb
! 36752cb3e685a7d54dcaff1edc54ff80  gcc/ada/libgnat/a-stwiun.ads
! 2d4a330938a01fd942d38936175d29cc  gcc/ada/libgnat/a-stwiun__shared.adb
! 92cd6ee67cc87be2c38332a8cb28750a  gcc/ada/libgnat/a-stwiun__shared.ads
! 3e6b6d6dc7127bc559e44527dcae7140  gcc/ada/libgnat/a-stzbou.adb
! f47e922f73aa07e05dcb9a57d6e65115  gcc/ada/libgnat/a-stzbou.ads
! 08948ddea14bc31f0fd53b0a3aeafc63  gcc/ada/libgnat/a-stzfix.adb
  f3ddc25c20b07c4072918c6c0ea20ff9  gcc/ada/libgnat/a-stzfix.ads
! cfa99c6e152e6459b864d278f6b5cca2  gcc/ada/libgnat/a-stzhas.adb
  41c71febbb354000bccca4ccd3a59c54  gcc/ada/libgnat/a-stzhas.ads
! 6e4cb1664b161d4351b23b2c03fbf4aa  gcc/ada/libgnat/a-stzmap.adb
! ef858637cddc204a3d669852295cb366  gcc/ada/libgnat/a-stzmap.ads
! 9cbe7741e1cf69de23078ad515ed7587  gcc/ada/libgnat/a-stzsea.adb
! d2eaf042baf3ea371acff076bd5aa442  gcc/ada/libgnat/a-stzsea.ads
! e54387077b5ecad358740d37960bf0bb  gcc/ada/libgnat/a-stzsup.adb
! fb55e0e8eb17c7ba98eb892975da71ea  gcc/ada/libgnat/a-stzsup.ads
! 63c96b791481a98184982a1df74d7f92  gcc/ada/libgnat/a-stzunb.adb
! 27ddae91c0158dd89e8ea65ae189d737  gcc/ada/libgnat/a-stzunb.ads
! 92991fea5d8b12b993ca0b26872976e0  gcc/ada/libgnat/a-stzunb__shared.adb
! 1a787fdabcfb168580862bf606fc3950  gcc/ada/libgnat/a-stzunb__shared.ads
! 5e5b32f5e05734ce4b49ebe27ffc6bac  gcc/ada/libgnat/a-suecin.adb
! ca2c1465804ebdc2280ad0e058709c86  gcc/ada/libgnat/a-suecin.ads
! 17a8fd4ba800f999a0e9e9c3007831db  gcc/ada/libgnat/a-suenco.adb
  24c625ef90e191bc1baa69c58ae2600f  gcc/ada/libgnat/a-suenco.ads
! db9f3bb070bbb18ca43f7ea72b39cfcc  gcc/ada/libgnat/a-suenst.adb
  5a81ae9196b241db71c16198169dbed7  gcc/ada/libgnat/a-suenst.ads
! c8fc899440e74ab920a37fae20632de6  gcc/ada/libgnat/a-suewst.adb
  88073629f5531c7f6fba98820112cd02  gcc/ada/libgnat/a-suewst.ads
! 459333818cbb3157a6a55642cc498f0c  gcc/ada/libgnat/a-suezst.adb
  5aaf32a65e951f050f1cbb5adf5af9d2  gcc/ada/libgnat/a-suezst.ads
! 1fa959d3f3934c32452f42bcf653be0c  gcc/ada/libgnat/a-suhcin.adb
! b37ce2b4b9038eb07fb3ecd3c0ac861d  gcc/ada/libgnat/a-suhcin.ads
! 0cb6cd89839ae279a3c37ea7f4e49de3  gcc/ada/libgnat/a-sulcin.adb
! c64493b5896e3181efc277798360a2ba  gcc/ada/libgnat/a-sulcin.ads
! 1b89ada0810dd7756451ecc78a795172  gcc/ada/libgnat/a-suteio.adb
! 35a12b09d6d36d837a5339ec7b5b1f06  gcc/ada/libgnat/a-suteio.ads
! 6e64387ee10a95d9b6a1d3813bedbadd  gcc/ada/libgnat/a-suteio__shared.adb
! 459d8c9971f6bf02d051c73edd712bc5  gcc/ada/libgnat/a-swbwha.adb
  65f3f68c6718760b4c2b0beba2af9f82  gcc/ada/libgnat/a-swbwha.ads
  aaf273ef9a113dedcab8fb87b71b7365  gcc/ada/libgnat/a-swfwha.ads
! 523a2025d5e0c845f353b7606874b04c  gcc/ada/libgnat/a-swmwco.ads
! 42fd1f141952da355a721e2a564da733  gcc/ada/libgnat/a-swunau.adb
! b616ad66f4e5296265480ee57651bf27  gcc/ada/libgnat/a-swunau.ads
! ce55f4855aa6f82e7b19adcaae0612e9  gcc/ada/libgnat/a-swunau__shared.adb
! 801f4ad08567da597de56642fba77cd1  gcc/ada/libgnat/a-swuwha.adb
  45d76b5b911889e181b3717ab6c91651  gcc/ada/libgnat/a-swuwha.ads
! eeda622402e81be24a45253185234928  gcc/ada/libgnat/a-swuwti.adb
! 5d8925a86225ce2f910a9724b8b5a740  gcc/ada/libgnat/a-swuwti.ads
! e642cbb1c0b2b3a29536f9f34899f41e  gcc/ada/libgnat/a-swuwti__shared.adb
! 7f14eef3c04412fca33ab3547c92fb10  gcc/ada/libgnat/a-szbzha.adb
  18b9cf476495930cec4ac3eb881257db  gcc/ada/libgnat/a-szbzha.ads
  32bb3b01e46ff7648c862537bd77aa0d  gcc/ada/libgnat/a-szfzha.ads
! fe3aa03516b7c2e7b39573a528d97756  gcc/ada/libgnat/a-szmzco.ads
! d792e68aa363d2726ac9026546d1fe38  gcc/ada/libgnat/a-szunau.adb
! 50b016487fff87bc4605e1954113c71a  gcc/ada/libgnat/a-szunau.ads
! d6b2c3a59f4571661d32bdc5935b2107  gcc/ada/libgnat/a-szunau__shared.adb
! 10898909c4d46f460c89b63d3896c9e8  gcc/ada/libgnat/a-szuzha.adb
  01cf107c9e66d7e5284c9b7ce2e2ed7e  gcc/ada/libgnat/a-szuzha.ads
! b5f25daac0648a3b98054cadbedd6e4f  gcc/ada/libgnat/a-szuzti.adb
! 3bfd681df9c63243ee907f6bd52fc234  gcc/ada/libgnat/a-szuzti.ads
! 57772eb2074013d73e481b8a2a2421c1  gcc/ada/libgnat/a-szuzti__shared.adb
! 92bce14154c6e851630c24a9e8b9101e  gcc/ada/libgnat/a-tags.adb
! ed534a9df8c89104817a1f43485d5d4a  gcc/ada/libgnat/a-tags.ads
! ff6f3c69227bd610743a4fc0f5390665  gcc/ada/libgnat/a-teioed.adb
! 59e7805e2f26dbbb21e91e1635434712  gcc/ada/libgnat/a-teioed.ads
! 4728bf475f318657868ecd585fec8b81  gcc/ada/libgnat/a-textio.adb
! 03462e58df2c364cc18da54c7dc1435c  gcc/ada/libgnat/a-textio.ads
  c74a673b222c3d0037a22fb766c67488  gcc/ada/libgnat/a-tgdico.ads
! 545cb87ac59d7f978d4b25c46af0fab2  gcc/ada/libgnat/a-tiboio.adb
  7b163db9f1467e9392f347bee1400136  gcc/ada/libgnat/a-tiboio.ads
! 9f1923819fa6b27ac1d147a87fb499d4  gcc/ada/libgnat/a-ticoau.adb
! fe23e085b7547c29aec3113d05a88749  gcc/ada/libgnat/a-ticoau.ads
! 686a9d006760b366e3122869ee8571b2  gcc/ada/libgnat/a-ticoio.adb
! 375f6a51e8294a309ccc3abb56f05cad  gcc/ada/libgnat/a-ticoio.ads
! fdd409bab217dced24e5e22424e336ab  gcc/ada/libgnat/a-tideau.adb
! 82e15427d320891618955476db3556e9  gcc/ada/libgnat/a-tideau.ads
! 4c2d78a94690fed4750f8f6f0db4ff3c  gcc/ada/libgnat/a-tideio.adb
! b7aa37b14cc129bea3676bc0d80fce8d  gcc/ada/libgnat/a-tideio.ads
! 8e735adf75b14302b0a0f0ac596058a3  gcc/ada/libgnat/a-tideio__128.adb
! 722c7369b3846ed9e210b8f7ff3e2495  gcc/ada/libgnat/a-tienau.adb
! 21de74bc74b1e97901262b97d50b7bdd  gcc/ada/libgnat/a-tienau.ads
! 46f9d6d7dca791742863224e4ebb2212  gcc/ada/libgnat/a-tienio.adb
! 4f45fb79824b66021fe483d1b210e8c9  gcc/ada/libgnat/a-tienio.ads
! 528bb23b65dd6438764f24bde47faed1  gcc/ada/libgnat/a-tifiau.adb
! fd2f7dc457ae6c92c59217a40062ece3  gcc/ada/libgnat/a-tifiau.ads
! 2a601644faf162da265bc9e565439a8e  gcc/ada/libgnat/a-tifiio.adb
! c16ad9374e832bfec80cdb19f8afaa99  gcc/ada/libgnat/a-tifiio.ads
! 17abd360016a3b2588c7a1c60108b288  gcc/ada/libgnat/a-tifiio__128.adb
! 68b3ee7424a8d97d4769665c2826b795  gcc/ada/libgnat/a-tiflau.adb
! 384747149d4883a1a519d30a731b0906  gcc/ada/libgnat/a-tiflau.ads
! 93bb228e671a75dcbbbe9e7a06017d9e  gcc/ada/libgnat/a-tiflio.adb
! 81c93f8f3761b2d146d7be34b5cb5c06  gcc/ada/libgnat/a-tiflio.ads
! 996700904ce84c40425326eada1f0513  gcc/ada/libgnat/a-tigeau.adb
! f34495e684f05ccca0960d265713fc5f  gcc/ada/libgnat/a-tigeau.ads
! 8713a3ed34060068a6f905af9bfb6afb  gcc/ada/libgnat/a-tigeli.adb
! c0bf14d321836115c66d02a8cd7a6f95  gcc/ada/libgnat/a-tiinau.adb
! df63d27846890d30e0ae214dee48a3df  gcc/ada/libgnat/a-tiinau.ads
! 2491bc2e66fa1fd5a7c4f7f3c690a303  gcc/ada/libgnat/a-tiinio.adb
! b6564ed6bebf3e934db41169e00bbbe5  gcc/ada/libgnat/a-tiinio.ads
! 7bb4ff58fcab78206dc9b18312115aa6  gcc/ada/libgnat/a-tiinio__128.adb
! 7f7af8555af25b9f0e88a26e8d56afdb  gcc/ada/libgnat/a-timoio.adb
! f4a9dcc7dfb647e860a89dbd3e8e071b  gcc/ada/libgnat/a-timoio.ads
! 6d1918e6ec35a150c60645af07182bc5  gcc/ada/libgnat/a-timoio__128.adb
! 9a844ee4339dac5c281178b600f2ddae  gcc/ada/libgnat/a-tiocst.adb
! 1d9731d31c4ff6e417216f48a133e3f1  gcc/ada/libgnat/a-tiocst.ads
! 1a29a4e7d45d956380b8f19ceee5230f  gcc/ada/libgnat/a-tirsfi.adb
! 6ebafda6c930954fa8da9e71b7568133  gcc/ada/libgnat/a-tirsfi.ads
! fb5f9a35907ac4ae2416b52d7338b24e  gcc/ada/libgnat/a-titest.adb
  7b71ac41d87e6c43f98663d1d110846c  gcc/ada/libgnat/a-titest.ads
  1a5a51a7ff392f1819e96c8c7b6ba50b  gcc/ada/libgnat/a-tiunio.ads
  ebdefb0717ee54e84334b4468aea7da2  gcc/ada/libgnat/a-unccon.ads
  8eb8e50901a7293468a57fa9630abb8c  gcc/ada/libgnat/a-uncdea.ads
! b8179dbdeec10d1a04ec32b843d08988  gcc/ada/libgnat/a-undesu.adb
  82a804005be52b8d315b11082ce952d4  gcc/ada/libgnat/a-undesu.ads
! dc5ca808899d51ec791598bb4b6d5817  gcc/ada/libgnat/a-wichha.adb
  bc85d10bd14a8eda24559935a5472a57  gcc/ada/libgnat/a-wichha.ads
! f2eeaac71808ccdd42d33e2a6b628f82  gcc/ada/libgnat/a-wichun.adb
! 4f25854846b8367e575a62564767a54c  gcc/ada/libgnat/a-wichun.ads
  495dc144d91ae1388ae48ceb32e47f91  gcc/ada/libgnat/a-widcha.ads
! 02937f176c4573cdc3316824c973119c  gcc/ada/libgnat/a-witeio.adb
! b0d06d455a59801697f5ee9a12564f9e  gcc/ada/libgnat/a-witeio.ads
! e980c57d63f69202fb8f5c35cddbcb9e  gcc/ada/libgnat/a-wrstfi.adb
! ddb76072c30fb03773e20953eed6131d  gcc/ada/libgnat/a-wrstfi.ads
! 20e482e2c030c6e0ef27b25abd4f2362  gcc/ada/libgnat/a-wtcoau.adb
! 4dcf088ad4dc9e403c79ec90a8f331ae  gcc/ada/libgnat/a-wtcoau.ads
! 21a1dd39c46140773d675929677e682b  gcc/ada/libgnat/a-wtcoio.adb
  d76fe24c6988d732303e4f40830c2082  gcc/ada/libgnat/a-wtcoio.ads
! d1a1503be2321dadf0288130bf55cd88  gcc/ada/libgnat/a-wtcstr.adb
! 2e1342d6b3b892a581614d60b755042d  gcc/ada/libgnat/a-wtcstr.ads
! 0387a219bbfcfcdd604330673cd73ba8  gcc/ada/libgnat/a-wtdeau.adb
! 5189a208d81cdc49316292256a8f69b6  gcc/ada/libgnat/a-wtdeau.ads
! d4de285d229ca8dda3d8bfdf601618bf  gcc/ada/libgnat/a-wtdeio.adb
  20d4a8b1dbec170436bce906004aaac8  gcc/ada/libgnat/a-wtdeio.ads
! 2138a7e14a7436022c6c8d712b614332  gcc/ada/libgnat/a-wtdeio__128.adb
! 90b11e0a6c735104b55b549c0917eb11  gcc/ada/libgnat/a-wtedit.adb
! c82693658838b3c777351c5106f7d05e  gcc/ada/libgnat/a-wtedit.ads
! 03f67daec0b8d93a8dc41c106e870bae  gcc/ada/libgnat/a-wtenau.adb
! fd4014259401cc5b80e3b1840d18235a  gcc/ada/libgnat/a-wtenau.ads
! ff96420380c1b7732681c612edeb68b2  gcc/ada/libgnat/a-wtenio.adb
  fa13b730a5c90ff293982415bf7bcecb  gcc/ada/libgnat/a-wtenio.ads
! ad54fc9b1cb2d7cba818fb44501e3954  gcc/ada/libgnat/a-wtfiau.adb
! 8f5cd8185afd87759f4373bae0b376a8  gcc/ada/libgnat/a-wtfiau.ads
! e8cc815f827131f61a7de2d236482846  gcc/ada/libgnat/a-wtfiio.adb
  495444487be476924785b4b8eff6b910  gcc/ada/libgnat/a-wtfiio.ads
! 77fb7b9dfa5496b26d5c94f2d4ffbac1  gcc/ada/libgnat/a-wtfiio__128.adb
! 885e0e4afba71af4c4a276919725a263  gcc/ada/libgnat/a-wtflau.adb
! b483f21766f203f4d1be8e0abc4d6963  gcc/ada/libgnat/a-wtflau.ads
! 53c2624a90eafec2d0c7e0a512133eeb  gcc/ada/libgnat/a-wtflio.adb
  bb57e8648d7de30496bb43f8a849fc3f  gcc/ada/libgnat/a-wtflio.ads
! 27f578b59abde153477ad39173bd826b  gcc/ada/libgnat/a-wtgeau.adb
! b71695ec28eeee2888340ed84d6513c1  gcc/ada/libgnat/a-wtgeau.ads
! 0901e03b817d137960e69746ce285439  gcc/ada/libgnat/a-wtinau.adb
! 72599650ae5c0db33fe98827b818a89e  gcc/ada/libgnat/a-wtinau.ads
! 4e758b6ff68763fd935ace4ae9a8a7a8  gcc/ada/libgnat/a-wtinio.adb
  62a64f1715aaaa145cf2b6d360381363  gcc/ada/libgnat/a-wtinio.ads
! 93e29634ceb808c0700a3f2b47d3c926  gcc/ada/libgnat/a-wtinio__128.adb
! 4da5b498ff6249b9bce93a8dbf484ed7  gcc/ada/libgnat/a-wtmoio.adb
! db489beafc08a5289914ee29fd589928  gcc/ada/libgnat/a-wtmoio.ads
! 6fb5069e9c02877a999aba442f57e177  gcc/ada/libgnat/a-wtmoio__128.adb
! 3ceb19225a535d6106e2c11eca19867a  gcc/ada/libgnat/a-wttest.adb
  53d3d301f9afb69992013f55fe363511  gcc/ada/libgnat/a-wttest.ads
! 6767dd024a48191dcbf21a911f82d1ca  gcc/ada/libgnat/a-wwboio.adb
  899e14502ec4dedbf4fdb28f8cecfa35  gcc/ada/libgnat/a-wwboio.ads
  1c2480c111fa5b71fca7c67f21525f8f  gcc/ada/libgnat/a-wwunio.ads
  107d2989204d28e32923acc02d444f67  gcc/ada/libgnat/a-zchara.ads
! 27bac228dba617f9c2d6cbe1fade8ad6  gcc/ada/libgnat/a-zchhan.adb
  ce55ee9974e330611ce057d096fe581f  gcc/ada/libgnat/a-zchhan.ads
! aeea6a2cd22640af8abcf1be890a46b6  gcc/ada/libgnat/a-zchuni.adb
! 151e010857e9199afe492e2a5cd42599  gcc/ada/libgnat/a-zchuni.ads
! bf671a07bef572ab6b1624d01e262358  gcc/ada/libgnat/a-zrstfi.adb
! 3ec484fb3d2a0021322e2366af54dce4  gcc/ada/libgnat/a-zrstfi.ads
! 7dc42d0629511c880da19a785c0ba5f0  gcc/ada/libgnat/a-ztcoau.adb
  fe39d89a6c321af618f6fa9308e66666  gcc/ada/libgnat/a-ztcoau.ads
! 0a9a1b8a22262e1927d6f7f642b4f680  gcc/ada/libgnat/a-ztcoio.adb
  7440d81a0d7886b3f76b271c7fcbf8b3  gcc/ada/libgnat/a-ztcoio.ads
! f90a3e944d8f47a3a5091f03194b2d66  gcc/ada/libgnat/a-ztcstr.adb
! d3cc699b9dd5a419c265ef0715c8c83b  gcc/ada/libgnat/a-ztcstr.ads
! b038ddf79e2084ec9bb3a98ae455c2e9  gcc/ada/libgnat/a-ztdeau.adb
! 13ad95669263bf982f61fb91570b2e93  gcc/ada/libgnat/a-ztdeau.ads
! 95d9a99831d144c0c31c626d5b8c1ada  gcc/ada/libgnat/a-ztdeio.adb
  a1457649e626ebf32915696e5afd2ac0  gcc/ada/libgnat/a-ztdeio.ads
! 15b9d37ea8d2aed6afc47ca7988d37b8  gcc/ada/libgnat/a-ztdeio__128.adb
! 83980fc10f1bdf831b0ca5d5e87fb4a5  gcc/ada/libgnat/a-ztedit.adb
! 35c8b2fae5ba44b5391d4e0cc9004418  gcc/ada/libgnat/a-ztedit.ads
! 74a46b15afec4dd262ec04ec2aa08f4e  gcc/ada/libgnat/a-ztenau.adb
! fa93e36d53658bb6955df02f5eb4b1a3  gcc/ada/libgnat/a-ztenau.ads
! 7ccef3bba6244ce60337ce706d32bb7f  gcc/ada/libgnat/a-ztenio.adb
  33aa889d92f43b14a348a444135fc992  gcc/ada/libgnat/a-ztenio.ads
! d75a6c45ec79283f0dba76bb6e131269  gcc/ada/libgnat/a-ztexio.adb
! 90d08b8d4377124c54d0a14313da4661  gcc/ada/libgnat/a-ztexio.ads
! 3add90215550c02d191ded9164c23dbe  gcc/ada/libgnat/a-ztfiau.adb
! 6746a5e00dee535db1e08744f81067e6  gcc/ada/libgnat/a-ztfiau.ads
! 0414c43a56599fc9bccc9f0c669b2163  gcc/ada/libgnat/a-ztfiio.adb
  9e2efe8c1c2d6658a575fbecb5ab1418  gcc/ada/libgnat/a-ztfiio.ads
! 56bbe6a710a9d7be279d90f703ceb624  gcc/ada/libgnat/a-ztfiio__128.adb
! 3ddcba555eb0f620c532840d5f0ef9db  gcc/ada/libgnat/a-ztflau.adb
! f291249a5a273c27822ee310d9f2157c  gcc/ada/libgnat/a-ztflau.ads
! ecf61576718a2e760f325a878e66fcc6  gcc/ada/libgnat/a-ztflio.adb
  7aae0945e67f16f4f77aa54a65552f3e  gcc/ada/libgnat/a-ztflio.ads
! 2caf8e70d7e3f603837ce72dd20cabb7  gcc/ada/libgnat/a-ztgeau.adb
! 7a3082141bebf8c963339b0238597acc  gcc/ada/libgnat/a-ztgeau.ads
! b1ec78a6531b207d13074fa9a066ce1f  gcc/ada/libgnat/a-ztinau.adb
! 671da1011ff50e772cf2ff65ea435471  gcc/ada/libgnat/a-ztinau.ads
! 6da2926bd3968cb08bd8cacc50ce9c53  gcc/ada/libgnat/a-ztinio.adb
  f0456d31ec0aa6f6786e1b635f8023cb  gcc/ada/libgnat/a-ztinio.ads
! 8359e7395eb412335c87d013c5505f86  gcc/ada/libgnat/a-ztinio__128.adb
! 7dfa9761a70c708fec842c07515ad440  gcc/ada/libgnat/a-ztmoio.adb
  9831d312ef279fc55e5e051745be05d2  gcc/ada/libgnat/a-ztmoio.ads
! 35f5f7b3715ef9d0b48cf5200a618c8c  gcc/ada/libgnat/a-ztmoio__128.adb
! c309e6c6d2f9a81a62a7d03169df7ee6  gcc/ada/libgnat/a-zttest.adb
  2caf047380f684add2bd5a35dc4e1091  gcc/ada/libgnat/a-zttest.ads
! 66010f7e960188bd410729da88bbe2c6  gcc/ada/libgnat/a-zzboio.adb
  a80428bcd2bf9ab7214609e68ff1651c  gcc/ada/libgnat/a-zzboio.ads
  a6d7b54a7a1a401188cfe54d1c2bad3b  gcc/ada/libgnat/a-zzunio.ads
  aad41855092e5648dbc6e7ab9d94cda3  gcc/ada/libgnat/ada.ads
  71c71bcd90c113e366bf720c3d886660  gcc/ada/libgnat/calendar.ads
  e150ba4c7f01d70e0086543a96ffd40b  gcc/ada/libgnat/directio.ads
! edee977b5775732f73544a90962141de  gcc/ada/libgnat/g-allein.ads
! 332629bba922b5a55c3c0aabb29c020f  gcc/ada/libgnat/g-alleve.adb
! f6e547dd819f33d0c247ca33853c17b4  gcc/ada/libgnat/g-alleve.ads
! f281acf82c31b0e737121bcf403c0b21  gcc/ada/libgnat/g-alleve__hard.adb
! b7da81e14665227a8a60f80a25667748  gcc/ada/libgnat/g-alleve__hard.ads
! d40709c00c53c52271e7bbdf9f37e244  gcc/ada/libgnat/g-altcon.adb
! 5c4f79682df19aa59647b777f6f99cce  gcc/ada/libgnat/g-altcon.ads
! 43aec925df4886c8c66e93f1eee4b2fa  gcc/ada/libgnat/g-altive.ads
! d3172bda2f6bc9ffa9adec6539900650  gcc/ada/libgnat/g-alveop.adb
! efd149f8ad0517e8233de4401ff11146  gcc/ada/libgnat/g-alveop.ads
! 7ea4fa93d46885913b954bb03f4fcd5e  gcc/ada/libgnat/g-alvety.ads
! 389a45800e6addb603b53dd315712848  gcc/ada/libgnat/g-alvevi.ads
! e11c9cf1b874c8727754d7c10afdf109  gcc/ada/libgnat/g-arrspl.adb
! 8e7528842dd6b0bc267bba131fdbb359  gcc/ada/libgnat/g-arrspl.ads
! ebc0ccf46edb54f6e767353a08266b29  gcc/ada/libgnat/g-awk.adb
! ffc8df7d62aa7c03468ebd9e3ee21d8e  gcc/ada/libgnat/g-awk.ads
! fd1a20f843936409354f215d6f08319b  gcc/ada/libgnat/g-binenv.adb
! 9c8b7af400062c9470d4a9378cfd9869  gcc/ada/libgnat/g-binenv.ads
! 898d3edb4df010685a162f97da0185dc  gcc/ada/libgnat/g-binsea.adb
! 351560b6d7c4a068ec66333220457b66  gcc/ada/libgnat/g-binsea.ads
! 192b7d14e345c62bc3828a862c2115a8  gcc/ada/libgnat/g-brapre.ads
! 02fe4d0bac6650b8c51b9508c033b89c  gcc/ada/libgnat/g-bubsor.adb
! 6303b881905b68eb3df6868efd039731  gcc/ada/libgnat/g-bubsor.ads
! d12c59914b6a7487f7e328144910fa0b  gcc/ada/libgnat/g-busora.adb
! b02b2f534868a54cc649d5e2c185ec09  gcc/ada/libgnat/g-busora.ads
! 341f71fcf8392e2048809bfb31ad4353  gcc/ada/libgnat/g-busorg.adb
! e05df3423b3fbd0dd3e1dfb1315d827e  gcc/ada/libgnat/g-busorg.ads
! 69dc9ff5690cca237c6fca430db9d9cd  gcc/ada/libgnat/g-byorma.adb
! f5922ea5516064cc36ad3b00789c7590  gcc/ada/libgnat/g-byorma.ads
! 0d405e689adbe8d102ba66cd9b90e93e  gcc/ada/libgnat/g-bytswa.adb
! 56cb07fd3b5805daf1ef0d7da8efc8a1  gcc/ada/libgnat/g-bytswa.ads
! c1f7b18e8f3e83f6a70067d6c590f3c8  gcc/ada/libgnat/g-calend.adb
! 10407de6689609bc938c213f504c3831  gcc/ada/libgnat/g-calend.ads
! b69c563986277a84a180e07612cd232c  gcc/ada/libgnat/g-casuti.adb
! 205f573945990a0f7a46a35af32e56fb  gcc/ada/libgnat/g-casuti.ads
! 65dc0465ad53f5b8d87cf52fddc5c789  gcc/ada/libgnat/g-catiio.adb
! 3480e78205503f8625454764a76b3b94  gcc/ada/libgnat/g-catiio.ads
! aa21d42107e8d73840fdc6757045474a  gcc/ada/libgnat/g-cgi.adb
! 294143e03a043c9381ed70d2834ba5c9  gcc/ada/libgnat/g-cgi.ads
! 59b625234d2a888e60275c2fe7db22a6  gcc/ada/libgnat/g-cgicoo.adb
! f9e5143d27c107bfc35fe28d07c13726  gcc/ada/libgnat/g-cgicoo.ads
! 7a779a91b4eaeed64ba0e1a664640077  gcc/ada/libgnat/g-cgideb.adb
! 75d24c18f98fd950cbfa2386a0a03cdd  gcc/ada/libgnat/g-cgideb.ads
! 34ae38adcce11ae6cb18a19ab93b7b8d  gcc/ada/libgnat/g-comlin.adb
! f6bbbd3e5f854e22f0884d8b8c6e8a89  gcc/ada/libgnat/g-comlin.ads
! cd4b87c7e33ac8acb24e4b93386a7e38  gcc/ada/libgnat/g-comver.adb
! 3b4dcc57b0a8f8f3a72ae29b2bb74ed5  gcc/ada/libgnat/g-comver.ads
! ddfc2cfcd95c2d640ee228ac8197e866  gcc/ada/libgnat/g-cppexc.adb
! 9edce2634d3cddfae13f74706697895f  gcc/ada/libgnat/g-cppexc.ads
! c4e65881b4ff192606616100419078fd  gcc/ada/libgnat/g-crc32.adb
! 4009ec335b348ebdf2be3f0ddc7486c3  gcc/ada/libgnat/g-crc32.ads
! 6385810e07def7a207c0f92d64cbc9a5  gcc/ada/libgnat/g-ctrl_c.adb
! eaec660b31a8f8e22109f97756222aa6  gcc/ada/libgnat/g-ctrl_c.ads
! 56ad446e072988546f004cc4cf105574  gcc/ada/libgnat/g-curexc.ads
! 4a5973c520d59ce35d832f56fcf2ddea  gcc/ada/libgnat/g-debpoo.adb
! 7bf14201af766e7a4bac3979c1b94c11  gcc/ada/libgnat/g-debpoo.ads
! b4d629f9d5726f257548863d54b43120  gcc/ada/libgnat/g-debuti.adb
! af78f89535063a5d30afbb26c18bb969  gcc/ada/libgnat/g-debuti.ads
! 2f105d5979ec141350c03f485d1c98fc  gcc/ada/libgnat/g-decstr.adb
! 4c8f89cb72f85116c7b3f666c996da69  gcc/ada/libgnat/g-decstr.ads
! 599918cedafd7d5a8d1df003b2d1357f  gcc/ada/libgnat/g-deutst.ads
! 6b4c894b4615b4194355f47ed75ccfdf  gcc/ada/libgnat/g-diopit.adb
! b6764c73273b705b79b2788055fc8a3a  gcc/ada/libgnat/g-diopit.ads
! 0d282910809fdecad01576482e8f3330  gcc/ada/libgnat/g-dirope.adb
! 4aec264aad55a92d5f6caaa251a07715  gcc/ada/libgnat/g-dirope.ads
! dd53d6cc2996d3fa8565d1a60b825014  gcc/ada/libgnat/g-dynhta.adb
! 18b2121f91362c2b5a21dcb17bde6bca  gcc/ada/libgnat/g-dynhta.ads
! 17be2e54736a8cc2e1e06d9d26999163  gcc/ada/libgnat/g-dyntab.adb
! e3df1974a7a19117a09ffba1d3c9da16  gcc/ada/libgnat/g-dyntab.ads
! fa839ef4134fce660f7e6af6f6b9aaf8  gcc/ada/libgnat/g-eacodu.adb
! 9354092e3283eacbeacf561be0fe58bf  gcc/ada/libgnat/g-encstr.adb
! 5dc7de4ad349e1bf627881a493d044d9  gcc/ada/libgnat/g-encstr.ads
! 4b797b8c1bf57510f04a1f1c0d6a065d  gcc/ada/libgnat/g-enutst.ads
! a033865beb58e8a22546a48e0bed0424  gcc/ada/libgnat/g-excact.adb
! 97fc0ffe2f19e58a5b44440fdc65a05d  gcc/ada/libgnat/g-excact.ads
! 1937ad7805ee4e3e16a868206b2135ce  gcc/ada/libgnat/g-except.ads
! 6600e3d79384599a0439d464285e1633  gcc/ada/libgnat/g-exctra.adb
! b8c726d87c7d5641772f1e5e12af5fa1  gcc/ada/libgnat/g-exctra.ads
! 09d0575777f9e3e4a36b19b4ffc921dc  gcc/ada/libgnat/g-expect.adb
! 52ca00397a0faa83e7dbef73091be2a3  gcc/ada/libgnat/g-expect.ads
! 91ede9c54bf9bc226f568383d3309c36  gcc/ada/libgnat/g-exptty.adb
! 780cf57931008c55f41b457a0ffd08c4  gcc/ada/libgnat/g-exptty.ads
! 3628ded8d684eff5d5468cc707ebd019  gcc/ada/libgnat/g-flocon.ads
! a6f3ebeda47754b7dc82a5572804ae52  gcc/ada/libgnat/g-forstr.adb
! ab3e22da424417a1afd02cbd75f565b2  gcc/ada/libgnat/g-forstr.ads
! c2add6503e264ca4b61629b5fd68279b  gcc/ada/libgnat/g-gfmafu.ads
! 4e7e0453fb5ef2b808679d36d213f4c3  gcc/ada/libgnat/g-graphs.adb
! 52b7851d03604c90ff7d8ae05b9da2e3  gcc/ada/libgnat/g-graphs.ads
! 0626839849499bd0231251d9b7b14a04  gcc/ada/libgnat/g-heasor.adb
! cc1a34fd4c91c66aabf0543be1469fa2  gcc/ada/libgnat/g-heasor.ads
! c36c078a09d8ac3380c2a87d781ba11c  gcc/ada/libgnat/g-hesora.adb
! 5f3a46437738a68e63c5031fb75a4103  gcc/ada/libgnat/g-hesora.ads
! 76b380b5998a66a91eb7560c596473ac  gcc/ada/libgnat/g-hesorg.adb
! 85a83589619552c6becf55509357733c  gcc/ada/libgnat/g-hesorg.ads
! 36169e5083e9819708c425d867242721  gcc/ada/libgnat/g-htable.adb
! afb670dd3c6527bc3c65eb5a0a58875b  gcc/ada/libgnat/g-htable.ads
! b6439388d1c08d5dbe8e4cd8656e833d  gcc/ada/libgnat/g-io.adb
! e4cbd7b69353249829497d9bfb82aa0e  gcc/ada/libgnat/g-io.ads
! 70d17185f5968b662f1de83fafb36a2a  gcc/ada/libgnat/g-io_aux.adb
! b2da47dd3557a8cc231495819350db62  gcc/ada/libgnat/g-io_aux.ads
! a4fa7cc4b4f4a7db53fdf488ada738d4  gcc/ada/libgnat/g-lists.adb
! 5d374b18f0dacd06925b6c28c0c4d75f  gcc/ada/libgnat/g-lists.ads
! d69e5284e2f49e6f8cba6ddae93de38a  gcc/ada/libgnat/g-locfil.adb
! 0cdcb776f0d1ee36dc5fb8a0e828240d  gcc/ada/libgnat/g-locfil.ads
! b4fc3e5312ade7be3b727bf6c6ad6f15  gcc/ada/libgnat/g-mbdira.adb
! 74c4726d9988dd52a5092439e2103f64  gcc/ada/libgnat/g-mbdira.ads
! bddca06480513a640e1b5b6156f3d289  gcc/ada/libgnat/g-mbflra.adb
! 882992ea8b514da7b4d88f40170a7ad2  gcc/ada/libgnat/g-mbflra.ads
! 1fabd50269880c5879db8757d14c4efc  gcc/ada/libgnat/g-md5.adb
! 517e7b37d2b2407c59aba0baea0e6a98  gcc/ada/libgnat/g-md5.ads
! e9b48e35602ce8298f1173b047f64cad  gcc/ada/libgnat/g-memdum.adb
! 273adf622a2e0dff06bf2f70a7faf9a6  gcc/ada/libgnat/g-memdum.ads
! bdeb7aa28daa53809b9c4bfbff8f187a  gcc/ada/libgnat/g-moreex.adb
! 770f10de007050cfee3052358fb106c0  gcc/ada/libgnat/g-moreex.ads
! 89725c66f54634728d1d16d2bf67b229  gcc/ada/libgnat/g-os_lib.adb
! ff677e3ce1a10ed2aca49c182e733e22  gcc/ada/libgnat/g-os_lib.ads
! b4a6b21327d4c6c3f8ef4e5a4c56c8b8  gcc/ada/libgnat/g-pehage.adb
! 05f7e45746f1ad6a57d46c1cf21b1517  gcc/ada/libgnat/g-pehage.ads
! 3f48c662ce0050a4ed18c58a1879536a  gcc/ada/libgnat/g-rannum.adb
! b2d6c7894daa1543260789ad0c73f8f3  gcc/ada/libgnat/g-rannum.ads
! c630865bfe7e1ed42f4759075458be1f  gcc/ada/libgnat/g-regexp.adb
! 12fdfbaf9155134e2f10a06a2f3fbbe2  gcc/ada/libgnat/g-regexp.ads
! 7d20950a6e0dad0d92339aab3677db03  gcc/ada/libgnat/g-regist.adb
! b7e58c910dced22d87a400980de174b4  gcc/ada/libgnat/g-regist.ads
! d756d0528d330eeaea20506da80b1226  gcc/ada/libgnat/g-regpat.adb
! 7c6ebc158defffb7e8735fb5ea3a0e46  gcc/ada/libgnat/g-regpat.ads
! 437444e15dd10accd34f9a19bd80e5c0  gcc/ada/libgnat/g-rewdat.adb
! 6bf34835f5f743661fd577ac96af191c  gcc/ada/libgnat/g-rewdat.ads
! a974bf1561d52157d23c382d081d6ed1  gcc/ada/libgnat/g-sechas.adb
! 63214b428c8fe64889e366c0b8e82d06  gcc/ada/libgnat/g-sechas.ads
! f391e1e16b227ccb7defa5413befee49  gcc/ada/libgnat/g-sehamd.adb
! 8207c76b2665973b9a996045800003f2  gcc/ada/libgnat/g-sehamd.ads
! caf610b055926b3bc7b43d8de6333cb3  gcc/ada/libgnat/g-sehash.adb
! 81f1290522ccf9a0ec2784c7d77fe7a3  gcc/ada/libgnat/g-sehash.ads
! e0de0e88c7169a49f4ce04dfab89e9bc  gcc/ada/libgnat/g-sercom.adb
! a640ec368a8e6ba4d53dd1a10cb7c444  gcc/ada/libgnat/g-sercom.ads
! cb14a3933733fbef5f7a7c81b547e408  gcc/ada/libgnat/g-sercom__linux.adb
! e8531e3f76df341510caea97acaf114f  gcc/ada/libgnat/g-sercom__mingw.adb
! cfcf8ccd59018218c76ad63b54ae6d95  gcc/ada/libgnat/g-sestin.ads
! 8e8a0a7a813b0ec0f5be987061bb1335  gcc/ada/libgnat/g-sets.adb
! 5836e5a66e26a84da519daebeab8343f  gcc/ada/libgnat/g-sets.ads
! 62f13c1355f1b9d76c878045a333a2e8  gcc/ada/libgnat/g-sha1.adb
! d74d0aa62a719c6fc94e6ab404172ac8  gcc/ada/libgnat/g-sha1.ads
! 99ac48dc59f44291a8efb15eca865c69  gcc/ada/libgnat/g-sha224.ads
! 228ec837f9a75940347784b869566d3e  gcc/ada/libgnat/g-sha256.ads
! 320a7a689be666b4527072af23aab2eb  gcc/ada/libgnat/g-sha384.ads
! e1a2ca5e3115d7fb361864b725c287d1  gcc/ada/libgnat/g-sha512.ads
! 7ea654d824a8505367bd255e99de9cd1  gcc/ada/libgnat/g-shsh32.adb
! df3633ec98af718bc575a59e2e6593b1  gcc/ada/libgnat/g-shsh32.ads
! f9f60688fae01597b7f5196436f21bc2  gcc/ada/libgnat/g-shsh64.adb
! 1950a3c1c0185b1c4dd8d72aba5a1b5f  gcc/ada/libgnat/g-shsh64.ads
! a182ca6ef1fb139d19c9b577ff923baf  gcc/ada/libgnat/g-shshco.adb
! 544cea61c13319fe4a7f58ff67298b1e  gcc/ada/libgnat/g-shshco.ads
! 55915021eb095398bdf8fcaa345cc928  gcc/ada/libgnat/g-soccon.ads
! 5c3a2b8d26aae866cf1ecded604b295c  gcc/ada/libgnat/g-socket.adb
! 239fd853a1c1b819a1bd9437226ed279  gcc/ada/libgnat/g-socket.ads
! 2049f06392f7507d7ec56847f8856e12  gcc/ada/libgnat/g-socket__dummy.adb
! a106191b9c4f1030c92fe550145b0ad7  gcc/ada/libgnat/g-socket__dummy.ads
! a588e7c7aa044a0f9f3de747c347e259  gcc/ada/libgnat/g-socpol.adb
! c47405f2432ef6e11cd5b62d4b69349c  gcc/ada/libgnat/g-socpol.ads
! 8bbb5783cdb4cda62b15d1fb66f3532e  gcc/ada/libgnat/g-socpol__dummy.adb
! 0aaec0338c20179f7f76fb880ff86a8c  gcc/ada/libgnat/g-socpol__dummy.ads
! 1851f283baea668cc2dd4d116350dbf7  gcc/ada/libgnat/g-socthi.adb
! 72a87d5f03864d3c119aa3d18a225b94  gcc/ada/libgnat/g-socthi.ads
! c2f61d1f9151c73a4f567261c737eaf3  gcc/ada/libgnat/g-socthi__dummy.adb
! 5b28033646503e5de4ab8d2ef20a82a4  gcc/ada/libgnat/g-socthi__dummy.ads
! 9af3dba66cea775691da0b3c20200293  gcc/ada/libgnat/g-socthi__mingw.adb
! b1314cf6bfe2673443cfb29ae59e2478  gcc/ada/libgnat/g-socthi__mingw.ads
! c86c70290dc931442f02e6e60d0cd795  gcc/ada/libgnat/g-socthi__vxworks.adb
! 094c71d5b9088fe4888731de316efffd  gcc/ada/libgnat/g-socthi__vxworks.ads
! 5f8efd75cb648fe83e52ad7246458917  gcc/ada/libgnat/g-soliop.ads
! faa7522bb37c30b00ce083a7393b31ed  gcc/ada/libgnat/g-soliop__lynxos.ads
! 58c39f843076c39abec9b85c73a62c45  gcc/ada/libgnat/g-soliop__mingw.ads
! 52b9706e920d7e4256bbb0c879d94f29  gcc/ada/libgnat/g-soliop__qnx.ads
! ac946c77347702dcea5a575f0167af54  gcc/ada/libgnat/g-soliop__solaris.ads
! 7adcef1c66b0c666c9fc63b51f858b7a  gcc/ada/libgnat/g-sopowa.adb
! 73627181cbec5087d073fdbed6cacc37  gcc/ada/libgnat/g-sopowa__mingw.adb
! 843a3599f8a8e61a0f210e6026342430  gcc/ada/libgnat/g-sopowa__posix.adb
! 0042bd77c8c4b4c7ad95f138457d9060  gcc/ada/libgnat/g-sothco.adb
! c4ee94ad870688a2831eaa31abd9c985  gcc/ada/libgnat/g-sothco.ads
! 30fe4cced168f5a4fab63d02d871394d  gcc/ada/libgnat/g-sothco__dummy.adb
! f065c1716d9b2e5b8ecde0dc4d9567aa  gcc/ada/libgnat/g-sothco__dummy.ads
! c83bb970dcaa96510e1a94b1b7741c0f  gcc/ada/libgnat/g-souinf.ads
! 8b2f74264dfd7d12ed25f9391449f69f  gcc/ada/libgnat/g-spchge.adb
! 94b4d2d1c0c47e4cd32488cf7e90a1cd  gcc/ada/libgnat/g-spchge.ads
! 0bef2bfe52f08e5a1fb565e8f09710b5  gcc/ada/libgnat/g-speche.adb
! 9e0407047e4d7b33a0f5a8abfa0e700b  gcc/ada/libgnat/g-speche.ads
! 70e056f996c2a9bb642ccf4b3f54afb6  gcc/ada/libgnat/g-spipat.adb
! 4180ade66ffc056d74329dd6f8d3f5e1  gcc/ada/libgnat/g-spipat.ads
! 7ec5e11b5a06e6b66218fd2570be0cd2  gcc/ada/libgnat/g-spitbo.adb
! e9c5bef688d2ead7296fe36c9fe3381a  gcc/ada/libgnat/g-spitbo.ads
! 922f4377829065ca1535f4d8fa77fb2d  gcc/ada/libgnat/g-spogwa.adb
! a78c2e54338777e0f02bef2a6530a3d4  gcc/ada/libgnat/g-spogwa.ads
! 9c9b62d98c1d17d92d6cfe6d02863ef5  gcc/ada/libgnat/g-sptabo.ads
! ff833abfe2e4171a99a58b1da88d8cb1  gcc/ada/libgnat/g-sptain.ads
! 1c1203c8dafd6d947f0aacaf6e9ec8fe  gcc/ada/libgnat/g-sptavs.ads
! 9ec9ff1fb8743bc83852c16d5402dee6  gcc/ada/libgnat/g-sse.ads
! 48dc25385bc0405041e884f6722ef8e7  gcc/ada/libgnat/g-ssvety.ads
! 86417a83aa3e801157f7c030f6bc2209  gcc/ada/libgnat/g-sthcso.adb
! c227a95603af21333c81e1041d210762  gcc/ada/libgnat/g-stheme.adb
! ad0357a23bcd1a2f4017a53f034e1bf5  gcc/ada/libgnat/g-strhas.ads
! 682fe6a868d6179e1c792f998278fe30  gcc/ada/libgnat/g-string.adb
! 4cfbaf461ebca176a36d4b8302f61ebf  gcc/ada/libgnat/g-string.ads
! e5ae190ff7c06c7116f9f66692becd5d  gcc/ada/libgnat/g-strspl.ads
! 458fa59c78d5040b0bed6e17f3ed9f28  gcc/ada/libgnat/g-stseme.adb
! 02073a6526b6700c8e9a7a925731b617  gcc/ada/libgnat/g-stsifd__sockets.adb
! cbde49c445fd7fe520dea1b4defd3d34  gcc/ada/libgnat/g-table.adb
! 110d071774e15c81722f1a809d421a66  gcc/ada/libgnat/g-table.ads
! 61e530dbc4e240e65a851aa088ec2de6  gcc/ada/libgnat/g-tasloc.adb
! cbc1cb587a0dfd99b64833e607732f3f  gcc/ada/libgnat/g-tasloc.ads
! 6d05b61a74f1113ba51743cfd0635342  gcc/ada/libgnat/g-timsta.adb
! e777266d2ace83c73519fb7e97c11648  gcc/ada/libgnat/g-timsta.ads
! 777a9a4496ea9bfbffb05e117409d755  gcc/ada/libgnat/g-traceb.adb
! fd77979fb9ed128f29c881e775419490  gcc/ada/libgnat/g-traceb.ads
! 139d72def4a055fba52e89a1e77860f2  gcc/ada/libgnat/g-trasym.adb
! 3932fdf922641ceee52b9a5788f0344c  gcc/ada/libgnat/g-trasym.ads
! 9a99c8c4b7159d3c3b9d34d33767fcb0  gcc/ada/libgnat/g-tty.adb
! 18a609fa0535c3752e14f99c8bea65b2  gcc/ada/libgnat/g-tty.ads
! 186f865be19b1dd77e027cb1a3a18d64  gcc/ada/libgnat/g-u3spch.adb
! 972a16bb3dce7d4f92262022e0421136  gcc/ada/libgnat/g-u3spch.ads
! caf5ed24dabd312761611a861a55eaf3  gcc/ada/libgnat/g-utf_32.adb
! d6d88308934a7ba0a09c92c63e2df1d8  gcc/ada/libgnat/g-utf_32.ads
! ef6109300d49c6293b40ad13a1db48a6  gcc/ada/libgnat/g-wispch.adb
! 123f89738cff2100197a36b901f7b69a  gcc/ada/libgnat/g-wispch.ads
! 045ef7d217de17547b414ec10516357f  gcc/ada/libgnat/g-wistsp.ads
! 04bdb9a60bb1ffea9f32fb386bc44596  gcc/ada/libgnat/g-zspche.adb
! f1b883794fac0895d10510a0834adc59  gcc/ada/libgnat/g-zspche.ads
! 3dc95335841697d5ea438fdcdeafb861  gcc/ada/libgnat/g-zstspl.ads
! 1cc1b392ef9ee0a64c76d4a060eaac05  gcc/ada/libgnat/gnat.ads
! 8f41dc0c031f528237b9c0a82cb63100  gcc/ada/libgnat/i-c.adb
! 256d7e56ef75329ead6ed484d2552965  gcc/ada/libgnat/i-c.ads
! e48c29105fbff76e8a2d980c7b8761c7  gcc/ada/libgnat/i-cexten.ads
! 8caee3e0d714dfe302d9432421b1d06e  gcc/ada/libgnat/i-cexten__128.ads
! e1bd304475c80884f026d449b905fa69  gcc/ada/libgnat/i-cheri.adb
! f15d217318d74e7dd936768ce9564314  gcc/ada/libgnat/i-cheri.ads
! b3111c6f709db1c59c04d930ec6bc41a  gcc/ada/libgnat/i-cobol.adb
! 44f1edecfebd5319eb7f6cceb975f479  gcc/ada/libgnat/i-cobol.ads
! aac1e82d3a6bb8b47dead83ba29e83e4  gcc/ada/libgnat/i-cpoint.adb
! 20e1081787c3aa5deefb1b57c7d69367  gcc/ada/libgnat/i-cpoint.ads
! 274bb0bdff7cc5f140dfe8f25e8acaa5  gcc/ada/libgnat/i-cstrea.adb
! 13b00471aa432056a3fa0ab9d3d8a3ef  gcc/ada/libgnat/i-cstrea.ads
! 0e417d558af78cfc6160ea735012d0dd  gcc/ada/libgnat/i-cstrin.adb
! c39fe68fe12bd98fff819cad0d86bfdc  gcc/ada/libgnat/i-cstrin.ads
! 22bfaa12e6a53a324312a4e5b8e8b625  gcc/ada/libgnat/i-fortra.adb
  fe08792d30f40125dd75d63c7bcd68fe  gcc/ada/libgnat/i-fortra.ads
! f43a70d66548232a7f22ad363b3d4daa  gcc/ada/libgnat/i-pacdec.adb
! 2b7ce2bc0a65b62a2c3e471bda0a68a7  gcc/ada/libgnat/i-pacdec.ads
! a982625a3d743238c405922145c50bfa  gcc/ada/libgnat/i-vxwoio.adb
! dfd948210cbfad22c9bfbd284186fc60  gcc/ada/libgnat/i-vxwoio.ads
! fb0debe7da1fe040973246ccc4168c04  gcc/ada/libgnat/i-vxwork.ads
! a6374d189d0aeb5ca862de748dd996a3  gcc/ada/libgnat/i-vxwork__x86.ads
! a40aebfa2477376f9024c05fa79bb13a  gcc/ada/libgnat/interfac.ads
! e8d0259da95bb7de1eb0013f8f9263f9  gcc/ada/libgnat/interfac__2020.ads
  c2121d458a346c0b9d83825c544b9516  gcc/ada/libgnat/ioexcept.ads
! e793c8df6f0ffab52eef39bb5d82d97f  gcc/ada/libgnat/libada.gpr
  9b37ec6e60899a7dadce7f301acc9eee  gcc/ada/libgnat/libgnat.gpr
! cf5fbbe7ae49ee16e33e55135bc15876  gcc/ada/libgnat/libgnat_common.gpr
  38f101ad4a6eba55ef694b1ab6315683  gcc/ada/libgnat/machcode.ads
! cfd8de49d8cf078cabd3e7c1057a55bc  gcc/ada/libgnat/memtrack.adb
! 06d02c6402b8801c3db154fe81326847  gcc/ada/libgnat/s-addima.adb
! 379e56c5e8467b9ae6e4c2fbb446e4d1  gcc/ada/libgnat/s-addima.ads
! 122120c5cbb3d5c2642f0837c3def92b  gcc/ada/libgnat/s-addope.adb
! 8aa82af2fac71e158b950974f2f6deb7  gcc/ada/libgnat/s-addope.ads
! a8d561388a4ab03583f1ff365f150f32  gcc/ada/libgnat/s-aoinar.adb
! a3bfea7328546ae6cbe7c1b2e046ef44  gcc/ada/libgnat/s-aoinar.ads
! 45040baa47738efcd08d6d565756a725  gcc/ada/libgnat/s-aomoar.adb
! 149b15f028707fa48cfd1f13e4b7ae52  gcc/ada/libgnat/s-aomoar.ads
! 8297045557517b5d189ae9331d45dad5  gcc/ada/libgnat/s-aotase.adb
! e076e8a8148f8507947a92d0a031e4c8  gcc/ada/libgnat/s-aotase.ads
! 610ac538e9d96625d35b6327183a2fff  gcc/ada/libgnat/s-aridou.adb
! c6b974498bace3a7013b8975ed36cf28  gcc/ada/libgnat/s-aridou.ads
! 6c5a4199db3524d1574a9af127b5cab8  gcc/ada/libgnat/s-arit128.adb
! f856217f7ff0af46d4c6c06770f514b3  gcc/ada/libgnat/s-arit128.ads
! 8830acae01b88d1035ed9b6e39b473e5  gcc/ada/libgnat/s-arit32.adb
! cd97546b936461256976ca2ed5c669a7  gcc/ada/libgnat/s-arit32.ads
! 2f3106e7d7813458e8ce026f7cfef3e2  gcc/ada/libgnat/s-arit64.adb
! ec4bca1d9ac56358a73f836b0860b65a  gcc/ada/libgnat/s-arit64.ads
! 92ed5a9710b2855e953ec7309300d655  gcc/ada/libgnat/s-assert.adb
! eeec5ce85e5a6d214059c8695ac1df74  gcc/ada/libgnat/s-assert.ads
! e41be68b22562e1f84f4810c1fa8ba0f  gcc/ada/libgnat/s-atacco.adb
! d2071af474e6b8d08064a74be637f0ed  gcc/ada/libgnat/s-atacco.ads
! f5eb89dbf032343dbd199dec3e56f5d3  gcc/ada/libgnat/s-atocou.adb
! 02d6c529a9adaa9eb57a973ce258d9af  gcc/ada/libgnat/s-atocou.ads
! add4ce392dada4169c663722789f13c0  gcc/ada/libgnat/s-atocou__builtin.adb
! 2bd70cbc2429a2d5ea6a315632e42368  gcc/ada/libgnat/s-atoope.ads
! f9d9868422dc5d7dba5f4d0691fb994b  gcc/ada/libgnat/s-atopex.adb
! 83586cc46cf8e19b05ca61c3e3a523ab  gcc/ada/libgnat/s-atopex.ads
! 4d15f845d0fd14d1cb1f191ff04e6b20  gcc/ada/libgnat/s-atopri.adb
! d748f445e3fff0e27880b67f40d1e36e  gcc/ada/libgnat/s-atopri.ads
! 40db9dd7ef34f7cdd08a82276692f715  gcc/ada/libgnat/s-atopri__32.ads
! dc5be26e276c81a33cfcbde33e749f32  gcc/ada/libgnat/s-auxdec.adb
! aca8a7e017e6a60df3e8181331ef716e  gcc/ada/libgnat/s-auxdec.ads
! 22037d33e67367d1178b1d68f90d8090  gcc/ada/libgnat/s-bignum.adb
! 02552c0b57206c8797993e58968d806e  gcc/ada/libgnat/s-bignum.ads
! 342747c1fea0755dfce94fe1abd720f2  gcc/ada/libgnat/s-bitfie.ads
! 17432cc032be1108cc4d26ba40463f4c  gcc/ada/libgnat/s-bitops.adb
! b9aceca335170d0ef2f9494000e59c5d  gcc/ada/libgnat/s-bitops.ads
! 3b53cfa0b4f32c1ace0c325ba7e8fc30  gcc/ada/libgnat/s-bituti.adb
! b8945cb69c86fd8c406c645b12c18752  gcc/ada/libgnat/s-bituti.ads
! 626508e80d5d1b434d9ba96d7efcb808  gcc/ada/libgnat/s-boarop.ads
! c07b9ddc570cba6a9759c84fd9b1f6e9  gcc/ada/libgnat/s-boustr.adb
! c220d62e0f4446bf33e93f62ddf72ff8  gcc/ada/libgnat/s-boustr.ads
! 2b0893a2e7b9f2e39a8d2ca557b604d7  gcc/ada/libgnat/s-bytswa.ads
! 840246170b514a4cbba8dddf592ad68a  gcc/ada/libgnat/s-carsi8.adb
! 7167675a9d7bbac721e4f843efa39cca  gcc/ada/libgnat/s-carsi8.ads
! 4c4b801496e5f71fc5000b4d9514fe48  gcc/ada/libgnat/s-carun8.adb
! a5710240a11466af11e4018ac74d90bb  gcc/ada/libgnat/s-carun8.ads
! 887796467df83c0b002637532de27e03  gcc/ada/libgnat/s-casi128.adb
! a717fa16b2e3ae0e980deea1890dfcdc  gcc/ada/libgnat/s-casi128.ads
! f604206aa2fcdadc7e870af80cbabfe5  gcc/ada/libgnat/s-casi16.adb
! df0b1adc4e03673cb73124311fd9fb37  gcc/ada/libgnat/s-casi16.ads
! fd071b0937e15d152af8e6e456728bd5  gcc/ada/libgnat/s-casi32.adb
! c1bc39e209d6f1230a98de192b075757  gcc/ada/libgnat/s-casi32.ads
! 9228342b0036834884f37c13152c0cf5  gcc/ada/libgnat/s-casi64.adb
! acbaa7680201f68cb332961311c0a499  gcc/ada/libgnat/s-casi64.ads
! 725495eb04e6ac4ac37f25c8893f8501  gcc/ada/libgnat/s-casuti.adb
! 52f6df3e53e3060d1a3a7f89cd60055b  gcc/ada/libgnat/s-casuti.ads
! 97ea0c70924832815b9d85e498a66a1f  gcc/ada/libgnat/s-caun128.adb
! efbd20eb1309074449a0c66e0314fa4a  gcc/ada/libgnat/s-caun128.ads
! d9a29a235da47bace7453ad9ec4771aa  gcc/ada/libgnat/s-caun16.adb
! e70b36fcbf52df7c860f8ba1bdae9f4e  gcc/ada/libgnat/s-caun16.ads
! 713699214c0e00cefdaa183aa579b6dc  gcc/ada/libgnat/s-caun32.adb
! 42cb5eb98359948fd53e4b323b9bcfec  gcc/ada/libgnat/s-caun32.ads
! 3e8bd0f9585478abd16f2093b887f947  gcc/ada/libgnat/s-caun64.adb
! 03eedf9ca95b715b2962a3e8cbcceaf7  gcc/ada/libgnat/s-caun64.ads
! 00ae27f87908dc8b2bc7d57d5bb650cd  gcc/ada/libgnat/s-chepoo.ads
! 233961097071aa661d4e715e72716dad  gcc/ada/libgnat/s-commun.adb
! 6df2e98131a8bd60311caaa74dd99804  gcc/ada/libgnat/s-commun.ads
! bb7bdf44de76c7ea7076d7eabe7593b0  gcc/ada/libgnat/s-conca2.adb
! 57abf9f85d4a6f178e93c7a1022236de  gcc/ada/libgnat/s-conca2.ads
! 4dcf400c09ac88740f746e4563780e2b  gcc/ada/libgnat/s-conca3.adb
! 4572f409a074bcc414ee6c3ac1a412de  gcc/ada/libgnat/s-conca3.ads
! 5f23709286394c96364af6cc5aa7c106  gcc/ada/libgnat/s-conca4.adb
! d3bcbc1e33e37a479ff1d433f6f283a5  gcc/ada/libgnat/s-conca4.ads
! 572da306861c82cdcb5dc33d9cccb01a  gcc/ada/libgnat/s-conca5.adb
! 17b0b48c68db336044d737c5cee218b4  gcc/ada/libgnat/s-conca5.ads
! de8492f7751e96f5be58fd606401c9c5  gcc/ada/libgnat/s-conca6.adb
! ec66f78bf07b12763a3d022ac47f7094  gcc/ada/libgnat/s-conca6.ads
! fa53007ec0b5fe0e3b3e2e4b9026b5d8  gcc/ada/libgnat/s-conca7.adb
! 8bc2ce56e40accb4291c35daf9455482  gcc/ada/libgnat/s-conca7.ads
! 2e69b4fc112eb03f124bf04266f2fec0  gcc/ada/libgnat/s-conca8.adb
! 8059be22b657a70c0f6966635aad4a51  gcc/ada/libgnat/s-conca8.ads
! c8d49711d4c6149241b797178092fe39  gcc/ada/libgnat/s-conca9.adb
! 20dea213fdefb01c598ce16c361b818e  gcc/ada/libgnat/s-conca9.ads
! ad715fe0e851557992a62e71c4ad2a8d  gcc/ada/libgnat/s-crc32.adb
! 7ffae1f617d18ad7a271efa2d292bd2e  gcc/ada/libgnat/s-crc32.ads
! 8859ff77b7857ef3ea7aa87c838f545c  gcc/ada/libgnat/s-crtl.ads
! c2e6772988571aae4cbb50fa926d3261  gcc/ada/libgnat/s-dfmkio.ads
! 69a269fba94e1ea1c04d15d0e13558ae  gcc/ada/libgnat/s-dfmopr.ads
! 21c2d1b0f89e01449527354f9d7c8d81  gcc/ada/libgnat/s-dgmgop.ads
! f55c45cf2cb23750b6cd45c4590e6fc5  gcc/ada/libgnat/s-diflio.adb
! b3f2f6022c7a54a3347cba475961876e  gcc/ada/libgnat/s-diflio.ads
! fb43d640c0cd13790ac38f559eaff1e7  gcc/ada/libgnat/s-diflmk.ads
! 46b26087d626c3aac0e246e598f77e3a  gcc/ada/libgnat/s-digemk.ads
! a3c42df0e378e7d387a7a2b5f57dd8d1  gcc/ada/libgnat/s-diinio.adb
! 3a2f85645e3e970d9f7a7d883452066c  gcc/ada/libgnat/s-diinio.ads
! 4ffbda532aeb0b7a02dc66f0d2483aa3  gcc/ada/libgnat/s-dilomk.ads
! 1af668d4530a7c15be2696b4e7ddc3d6  gcc/ada/libgnat/s-dim.ads
! f2dcee22bb65bedc6016dc63c7784029  gcc/ada/libgnat/s-dimkio.ads
! a5ac519ca2d5715593bb40d27f71afae  gcc/ada/libgnat/s-dimmks.ads
! 4da6d8bb11ebd5c02cbdb97169a7afdc  gcc/ada/libgnat/s-direio.adb
! 86cc99c611f42c44ab1755478b717036  gcc/ada/libgnat/s-direio.ads
! cf701fe3a4262464ce11918a1e7c1ac8  gcc/ada/libgnat/s-dlmkio.ads
! 3d96504cc95a777e769049fed212a5c9  gcc/ada/libgnat/s-dlmopr.ads
! 328356701909c0758b7d44f4e0cc2b93  gcc/ada/libgnat/s-dmotpr.ads
! 3b5cd0081f88f550731d7ca672cb51a8  gcc/ada/libgnat/s-dorepr.adb
! 1a7b1d1e3b1948a937b8efd2166afc9b  gcc/ada/libgnat/s-dorepr__fma.adb
! d5c591097a806a2f01001c835f537bee  gcc/ada/libgnat/s-dourea.adb
! e1528dfa862f392276ecb1064b82234f  gcc/ada/libgnat/s-dourea.ads
! 173efe308be0d8ddde3b4f9a767ad7db  gcc/ada/libgnat/s-dsaser.ads
! 27aad1f27d832df576e7fc828d939964  gcc/ada/libgnat/s-dwalin.adb
! 8a73e158aedbb2ea6a7e2e07f583ca2d  gcc/ada/libgnat/s-dwalin.ads
! 68fe25b036f7cb99c4a6bf87dcd62561  gcc/ada/libgnat/s-elaall.adb
! 4a5a45ac7db89fa2f234373753c79803  gcc/ada/libgnat/s-elaall.ads
! e6ef7375bc4b623389356f1b5c5fae7e  gcc/ada/libgnat/s-excdeb.adb
! 95cb16bdf32b50a5313b8a2750a90099  gcc/ada/libgnat/s-excdeb.ads
! 759ffd10f903378ea2892527ed7bfead  gcc/ada/libgnat/s-except.adb
! 24597005442b24efa1647641bafa4fdd  gcc/ada/libgnat/s-except.ads
! 072ff61bdf591c014783bfbe93c6f2bb  gcc/ada/libgnat/s-excmac__arm.adb
! d9012a4a022b5fb499bc496af8bd9a7a  gcc/ada/libgnat/s-excmac__arm.ads
! 3252a8fce432fa9f23a191cdba84656f  gcc/ada/libgnat/s-excmac__gcc.adb
! edff91fc9e53c6afd805021632a248c4  gcc/ada/libgnat/s-excmac__gcc.ads
! 21b9bd59389af7037ddc850c2a432761  gcc/ada/libgnat/s-exctab.adb
! c7c6afd1623020c07983d936a4a6e014  gcc/ada/libgnat/s-exctab.ads
! 50b639f046f1ad51b97a022ce9c5830f  gcc/ada/libgnat/s-exctra.adb
! 0a0b3fdd4f4f226d94a05f61a84a6a5e  gcc/ada/libgnat/s-exctra.ads
! 280ca2f936e96f88faffaf31a5ce63fe  gcc/ada/libgnat/s-exnflt.ads
! 634da5b98384cf808152ee61f30b5222  gcc/ada/libgnat/s-exnint.adb
! 17934e030bc11a0e47754245051f3f3a  gcc/ada/libgnat/s-exnint.ads
! 5c7e9212584382165ca7663350d82366  gcc/ada/libgnat/s-exnlfl.ads
! 5faa18f7e691c7d53bcfcd8bd6cee720  gcc/ada/libgnat/s-exnllf.adb
! fe20f46ba4ef7aa5be5bb9629ea940ca  gcc/ada/libgnat/s-exnllf.ads
! 7cf69de5d04721eb517d1aec3945fcea  gcc/ada/libgnat/s-exnlli.adb
! cad31486e43ad58887072fc4aa41210f  gcc/ada/libgnat/s-exnlli.ads
! b7665214f16c1e689d55cbd220ebd5a3  gcc/ada/libgnat/s-exnllli.ads
! ea967e67909b2a78656f0059c8b34d3e  gcc/ada/libgnat/s-expint.adb
! d2d955ae97ecd2fae284c677ec491e40  gcc/ada/libgnat/s-expint.ads
! 6c1a5b211ce70fd6e4a5cffa2d73d046  gcc/ada/libgnat/s-explli.adb
! c133c650aee41fdea7428892f446446a  gcc/ada/libgnat/s-explli.ads
! fa4799159be57b6faf0748e0aeec6310  gcc/ada/libgnat/s-expllli.ads
! 5a410a924f141c5fd42e558fc0c0e856  gcc/ada/libgnat/s-explllu.ads
! d1a06a3b8fccede1eb7d0ee78e65322d  gcc/ada/libgnat/s-expllu.adb
! 7997293bab6c114ed4df85d85b952226  gcc/ada/libgnat/s-expllu.ads
! 022e1f32657abe67ff753f991788eda5  gcc/ada/libgnat/s-expmod.adb
! 0c160bc94918cb83416111e937ddbad8  gcc/ada/libgnat/s-expmod.ads
! 858ba8963da35bcfe47ed65d1eafd931  gcc/ada/libgnat/s-exponn.adb
! 24295602b648c9d08885a8d2a2463970  gcc/ada/libgnat/s-exponn.ads
! f04a8b6f252fba101258ca3ee221c61e  gcc/ada/libgnat/s-exponr.adb
! b41ab486604053fd38f7925589b7a099  gcc/ada/libgnat/s-exponr.ads
! 4e3cb325139435de998778e92d5c8bc7  gcc/ada/libgnat/s-expont.adb
! 186673a2555fca847eb3e73a73a63923  gcc/ada/libgnat/s-expont.ads
! 7386bb7198c55d59f0b553a0cc5a8cec  gcc/ada/libgnat/s-exponu.adb
! 28d5d1fe2dcacd74ccb5fdb1453840ca  gcc/ada/libgnat/s-exponu.ads
! d03b0c3e47dcab0dba19821c16a84d13  gcc/ada/libgnat/s-expuns.adb
! a5d7b53a95d6ec9d148ff9f1d8b353ab  gcc/ada/libgnat/s-expuns.ads
! a7ea5a81be334d2d09a2facc88008e5e  gcc/ada/libgnat/s-fatflt.ads
! d6299dafdce775b8201ac9fef5beecdb  gcc/ada/libgnat/s-fatgen.adb
! 480ed54cf31550b6c7823fc3bed1a7db  gcc/ada/libgnat/s-fatgen.ads
! 296da519c2dd25994be9a4def49b22a4  gcc/ada/libgnat/s-fatlfl.ads
! 6fba2c564989d54d6c8c37d0ee7a364f  gcc/ada/libgnat/s-fatllf.ads
! 4e8a2d1b50efd2d672f76317c0cfaa92  gcc/ada/libgnat/s-ficobl.ads
! fc7374ecb1e486ccadbe507220ea39ab  gcc/ada/libgnat/s-filatt.ads
! 7cc2596200e72bffc6e08395075a68e9  gcc/ada/libgnat/s-fileio.adb
! e2052f4e8f874b1cc277811abb9b922c  gcc/ada/libgnat/s-fileio.ads
! ddec4d8e36b1871a7ee4d585f5498deb  gcc/ada/libgnat/s-finmas.adb
! 5a75f23d550e4b2c0dee0e40dd626a38  gcc/ada/libgnat/s-finmas.ads
! dbb4943790d31d364ad5b06f2143df8e  gcc/ada/libgnat/s-finroo.adb
! 5f1e91d05f26ab775b2e969cbfa56353  gcc/ada/libgnat/s-finroo.ads
! 01d42d92b3ea592237e95b1e2d07e08a  gcc/ada/libgnat/s-flocon.adb
! 5970eb2a1f8266a368273e777f5bd59d  gcc/ada/libgnat/s-flocon.ads
! 3d0e0b7e026335edf509e6ab0838c0b6  gcc/ada/libgnat/s-flocon__none.adb
! 68ac7358cef263af306dca4b90b0e365  gcc/ada/libgnat/s-fode128.ads
! 80c2b0c571f178924ab2c381e69ae67d  gcc/ada/libgnat/s-fode32.ads
! e914e5a679118ea774d9942be8e9ecb3  gcc/ada/libgnat/s-fode64.ads
! ae4128a443a104b7e715577bed42c326  gcc/ada/libgnat/s-fofi128.ads
! 731857f16695f985589be478754a0b4e  gcc/ada/libgnat/s-fofi32.ads
! 4886b3698ef38a88a20ec3933e93dc4b  gcc/ada/libgnat/s-fofi64.ads
! 9e738b34ed5766e8c77279f1b66ec965  gcc/ada/libgnat/s-fore_d.adb
! 716d033690ba433b355306c7b3d91434  gcc/ada/libgnat/s-fore_d.ads
! b2a9c21a3a5eec5fe7937505a59f8bd3  gcc/ada/libgnat/s-fore_f.adb
! e6f533a142760b2a27ef8d3137fa57c9  gcc/ada/libgnat/s-fore_f.ads
! e3278151cbffbda15622ee6e514feb12  gcc/ada/libgnat/s-forrea.adb
! b657b4be2fa53ecca6ecf74fb822c581  gcc/ada/libgnat/s-forrea.ads
! e202b72f4e41473077da605938fb7d8c  gcc/ada/libgnat/s-gearop.adb
! 955feca07ad547b58b5ea56690826684  gcc/ada/libgnat/s-gearop.ads
! 1a35da100fe688a08f9ed6fff19613be  gcc/ada/libgnat/s-genbig.adb
! c90046860d2f4f880a33b25e10f79245  gcc/ada/libgnat/s-genbig.ads
! daf36f04dced8b04cfe641e1ebfd7fb0  gcc/ada/libgnat/s-geveop.adb
! c9f67439e38700a3542acfbbf92e5cee  gcc/ada/libgnat/s-geveop.ads
! 2804c35e26967fb3888efa18aa25efda  gcc/ada/libgnat/s-gloloc.adb
! f0300b7d6474c53939f23b2ae7814141  gcc/ada/libgnat/s-gloloc.ads
! 96ea9d1c0ca48e1f842a1e3d2102d009  gcc/ada/libgnat/s-gloloc__mingw.adb
! 38942dd86ab640bc607ecd8069ba6250  gcc/ada/libgnat/s-htable.adb
! aef0a2a49025ad28bcde46351f1145fc  gcc/ada/libgnat/s-htable.ads
! 37e9b8234a9bb1502dfe01009035d453  gcc/ada/libgnat/s-imageb.adb
! d53b5de7965833ba4cf8b6b50e85037b  gcc/ada/libgnat/s-imageb.ads
! 305f8cd9a54400c21cedc74232ed40a7  gcc/ada/libgnat/s-imaged.adb
! 4e3f0b04ec79986d07c041e1b4520962  gcc/ada/libgnat/s-imaged.ads
! fe8bcb9aeae0b80694c067e35df73509  gcc/ada/libgnat/s-imagef.adb
! 2961bb27fcaec539a43d4d16af080304  gcc/ada/libgnat/s-imagef.ads
! 841c232277b1305ced903e0863fd9f77  gcc/ada/libgnat/s-imagei.adb
! 24d50687e465622b48ac2d7ab5db27ca  gcc/ada/libgnat/s-imagei.ads
! 3b028cd3f1578050384a0717eb2ef5b7  gcc/ada/libgnat/s-imagen.adb
! 77558e6eaca67bf7fe6de14685ef92a0  gcc/ada/libgnat/s-imagen.ads
! 2a1ef92537a88e61475f1a5aaa8e94ad  gcc/ada/libgnat/s-imager.adb
! 40d720628c728aabb4fe47dad7db7c8c  gcc/ada/libgnat/s-imager.ads
! 52aa60587a9756e4883730d1922750de  gcc/ada/libgnat/s-imageu.adb
! 2b9886a9f67d5353aec5d234973779fe  gcc/ada/libgnat/s-imageu.ads
! 63bc834348e779529bf8a02c358ce2cf  gcc/ada/libgnat/s-imagew.adb
! 67f8a2bd32d639a3f9db02aca1d2ec68  gcc/ada/libgnat/s-imagew.ads
! bfee0f209a1ad30bb77aee43b72edc05  gcc/ada/libgnat/s-imde128.ads
! fbd75bf70a1186e7600c819fd2408481  gcc/ada/libgnat/s-imde32.ads
! ff130566bb41c437ba798ff2dd870df9  gcc/ada/libgnat/s-imde64.ads
! c8ffbc2694be961bb09fa6495922016a  gcc/ada/libgnat/s-imen16.ads
! 78a31182e5057f48e65ca803cac6378b  gcc/ada/libgnat/s-imen32.ads
! 97e66f18ad14604f6dc85a89733833eb  gcc/ada/libgnat/s-imenu8.ads
! b45327dd20408c834974088797eccead  gcc/ada/libgnat/s-imfi128.ads
! 0980c64c6bd95678adb5bdc3115dc1e7  gcc/ada/libgnat/s-imfi32.ads
! 36fee25a5e0fd811cdef04e7e4895a42  gcc/ada/libgnat/s-imfi64.ads
! c0632a420afb54cb236361f3511566e8  gcc/ada/libgnat/s-imgbiu.adb
! 30eaae9bb373b36377b3d2990f279af8  gcc/ada/libgnat/s-imgbiu.ads
! 4cbb810bb25bc3f94b93cfa63afdbb65  gcc/ada/libgnat/s-imgboo.adb
! 38be438637fcae137634fec8097cd822  gcc/ada/libgnat/s-imgboo.ads
! 367e6ddac9d4ecf678d0380d503b3e93  gcc/ada/libgnat/s-imgcha.adb
! 5a7fa4b11be79b4ba548b7acb73759d3  gcc/ada/libgnat/s-imgcha.ads
! 2a77ae9a836812b92a10817832c3a27a  gcc/ada/libgnat/s-imgflt.ads
! df5ca34cf1a71545aad63eacb84119b9  gcc/ada/libgnat/s-imgint.adb
! 13863327eaef9ca3a26dcb2ddbc2387d  gcc/ada/libgnat/s-imgint.ads
! dc9cf08b9be5aa843eb9260ad74100c2  gcc/ada/libgnat/s-imglfl.ads
! 62a4ca6c82ecacff2ea9ff8f32c818d1  gcc/ada/libgnat/s-imgllb.adb
! b0ac4dc5f3ec9cce4aca9596d38597d4  gcc/ada/libgnat/s-imgllb.ads
! c00ba164505b93e7c9ade7ff670b0974  gcc/ada/libgnat/s-imgllf.ads
! d371d16cec7fc3451310e00158c5726d  gcc/ada/libgnat/s-imglli.adb
! ff36e69a6d6c5bbd4e41582ef4a623d9  gcc/ada/libgnat/s-imglli.ads
! 21e84f9fc10100f4f8632fdb804f58f7  gcc/ada/libgnat/s-imglllb.ads
! 503389bbace7c9a2198296c3071bdc4f  gcc/ada/libgnat/s-imgllli.ads
! 492cbc626abf7fbb9d723a10ff961263  gcc/ada/libgnat/s-imglllu.ads
! ef61dac40ef5bbc982e7cb7cbd963604  gcc/ada/libgnat/s-imglllw.ads
! 6a4a2fe84a55aab10c5f43dc7c900393  gcc/ada/libgnat/s-imgllu.adb
! 8a9af68ffb31b88875745d492ff747f1  gcc/ada/libgnat/s-imgllu.ads
! 5c7395548aa9a9b252737ee3da4f7ff3  gcc/ada/libgnat/s-imgllw.adb
! 4250b573f03579a23fdc859a84a5bded  gcc/ada/libgnat/s-imgllw.ads
! d4af37e266d283465da27e44806cb9a3  gcc/ada/libgnat/s-imgrea.adb
! ca5028454c08ed812f3abbe6d4f35754  gcc/ada/libgnat/s-imgrea.ads
! 069d6a270287afb21ec6e829fcb01ed1  gcc/ada/libgnat/s-imguns.adb
! 57d88f69368449d345973d541360eb02  gcc/ada/libgnat/s-imguns.ads
! b558bf6a971a4f74b14b53f9e2e087ae  gcc/ada/libgnat/s-imguti.adb
! e905308d109e2584797f42b2e664aab7  gcc/ada/libgnat/s-imguti.ads
! 811147fbb3ec457ac8db07a6d0c15809  gcc/ada/libgnat/s-imgwch.adb
! 4e6d850570e4dccfaa557332447d0208  gcc/ada/libgnat/s-imgwch.ads
! 9f1e712543a4e0130ad7149be3a881ce  gcc/ada/libgnat/s-imgwiu.adb
! a7a392092bd40f20b51794c2fcd425ea  gcc/ada/libgnat/s-imgwiu.ads
! a5c9f051e6b9dc371562e0d11c937989  gcc/ada/libgnat/s-io.adb
! 44519853f6de29cad8f275ae42645dee  gcc/ada/libgnat/s-io.ads
! 39a82dcee38084ea31055bee40b9e787  gcc/ada/libgnat/s-llflex.ads
! 02d6c91635ea2fddeec13c226ad2dff4  gcc/ada/libgnat/s-maccod.ads
! 9dbe7725698bc9ea149136df2bcaa1ac  gcc/ada/libgnat/s-mantis.adb
! 46ea3fbbff45720bb00b453a0ce8d72f  gcc/ada/libgnat/s-mantis.ads
! fad843ee30cedc46093d405a12261268  gcc/ada/libgnat/s-mastop.adb
! 4e36756e861a918d7928346d82c61552  gcc/ada/libgnat/s-mastop.ads
! 2d32316d1c50812fdd1d1dc3728d10dd  gcc/ada/libgnat/s-memcop.ads
! 1ae26a17759656de84821257c83fce2c  gcc/ada/libgnat/s-memory.adb
! 10c62b4824324f4d21976771c80e1795  gcc/ada/libgnat/s-memory.ads
! ea127da502fd09d1e69e5c0208d28806  gcc/ada/libgnat/s-mmap.adb
! 093b7da6ad9a5d51a1ad5243e9132d9a  gcc/ada/libgnat/s-mmap.ads
! f0b9913677f27ca7bdfb17f50b54dd29  gcc/ada/libgnat/s-mmauni__long.ads
! 5664a648bc3645b7d8141eafd21694c2  gcc/ada/libgnat/s-mmosin__mingw.adb
! a1628ac16457ac9a45809e731f82b9c2  gcc/ada/libgnat/s-mmosin__mingw.ads
! f9c1ff49f3d99a49787937f1a0b78b64  gcc/ada/libgnat/s-mmosin__unix.adb
! ada5b129592ea8089ce9b00a191a116b  gcc/ada/libgnat/s-mmosin__unix.ads
! 4bc906ece1def7c3bf7b15d5bf7edc61  gcc/ada/libgnat/s-multip.adb
  c4045ad22005510940d70e1a445db431  gcc/ada/libgnat/s-multip.ads
! 1957f8332c6b380dd13697800496eb71  gcc/ada/libgnat/s-objrea.adb
! 524f2c88ace3e62eb6bc469b8c744a0d  gcc/ada/libgnat/s-objrea.ads
! f4aff450fee447efc10635391033ac0c  gcc/ada/libgnat/s-optide.adb
! 11c61040951b8cb5d366a12b7843044a  gcc/ada/libgnat/s-os_lib.adb
! 3714033e6dfad5556e5d414bc62d55e1  gcc/ada/libgnat/s-os_lib.ads
! 4edd2db81fe3c385bad052e0350700e6  gcc/ada/libgnat/s-osprim.ads
! 184072be4a075ec5d89e80bc4a13a9a1  gcc/ada/libgnat/s-osprim__darwin.adb
! be04023b47936a4e8a9b0397ffa5d6f6  gcc/ada/libgnat/s-osprim__lynxos.ads
! bd63df2a0d4fe403389c4d6b850d71c7  gcc/ada/libgnat/s-osprim__mingw.adb
! 161cb992aa0a338df36803c6246c1b4d  gcc/ada/libgnat/s-osprim__posix.adb
! 076a80edbad2f7a96174dc8339e0a3f2  gcc/ada/libgnat/s-osprim__posix2008.adb
! 433c2d529a8f05823b8e36cc65578b41  gcc/ada/libgnat/s-osprim__rtems.adb
! 8d3cc033e28323d4286551420a76cb42  gcc/ada/libgnat/s-osprim__solaris.adb
! cf2931b007c1e520a39d884aca6cb6d2  gcc/ada/libgnat/s-osprim__unix.adb
! 17f9713e346a6aa8807497b456d742c6  gcc/ada/libgnat/s-osprim__x32.adb
! 152a9c463684f72b85e33b61522e1c62  gcc/ada/libgnat/s-pack03.adb
! 0b6fa23a42b815946b01fb1c9c2da4aa  gcc/ada/libgnat/s-pack03.ads
! ce6f7338df401f641ac5570a88e7b02b  gcc/ada/libgnat/s-pack05.adb
! 822203995de9da3c93e1832e451ad810  gcc/ada/libgnat/s-pack05.ads
! d35688d6a9cf7f6f944548c3181db85d  gcc/ada/libgnat/s-pack06.adb
! 4f115af80ff5ea77b3a75c75e4c4137c  gcc/ada/libgnat/s-pack06.ads
! fb78afa545c31c40ce89cb13caa3ef0d  gcc/ada/libgnat/s-pack07.adb
! 7e4d4a2f301be95ff015ff81669b3bb9  gcc/ada/libgnat/s-pack07.ads
! 48894e1af1fa697e5d970a44b3162c63  gcc/ada/libgnat/s-pack09.adb
! 2408648e0553b6422d451bbf33186ad7  gcc/ada/libgnat/s-pack09.ads
! cdae9e07c974b33c9db4a8fd072cc003  gcc/ada/libgnat/s-pack10.adb
! c6be6dbe01619af245d3bb3cbf74c30a  gcc/ada/libgnat/s-pack10.ads
! a72023661f350fa7e3116019168bed6b  gcc/ada/libgnat/s-pack100.adb
! aea8f3233cdd1f2b53aab78a82c07bb3  gcc/ada/libgnat/s-pack100.ads
! 9b342906fae4ec570143e5547868e5cb  gcc/ada/libgnat/s-pack101.adb
! 0546194852c39d86d89bf4500204078a  gcc/ada/libgnat/s-pack101.ads
! 66e63545b0e7538384aa3cf62e7de98c  gcc/ada/libgnat/s-pack102.adb
! 87595fd93a52f45a01c92249148df1bf  gcc/ada/libgnat/s-pack102.ads
! fabcc22b37f217cefdb5c6edc2f95a2d  gcc/ada/libgnat/s-pack103.adb
! a2dbf21798c3c126081766538ea452ba  gcc/ada/libgnat/s-pack103.ads
! e8ac1256a822a09811a13cb045fb3342  gcc/ada/libgnat/s-pack104.adb
! 6b18afcd40cfd09071ba3d3d70a2f503  gcc/ada/libgnat/s-pack104.ads
! 02dc37b4af4a8d2578d96c3b0f9064bb  gcc/ada/libgnat/s-pack105.adb
! 7f1e9a06d043a1d1f4dd80481384e2b7  gcc/ada/libgnat/s-pack105.ads
! d579cfad7bf5943102e47775c9868479  gcc/ada/libgnat/s-pack106.adb
! 8b0d92ed18e97943f25119c462d9d641  gcc/ada/libgnat/s-pack106.ads
! 55c16ad6d82eca06caf690fd4cc2b234  gcc/ada/libgnat/s-pack107.adb
! 7dde640d12ce76efc7a9a3688edd2d50  gcc/ada/libgnat/s-pack107.ads
! c50eb9c3d4077c1f6813dc4160dd2124  gcc/ada/libgnat/s-pack108.adb
! b0ae40c8d704fcbd2ce00d5ac54133c5  gcc/ada/libgnat/s-pack108.ads
! a8cdae818faa75a87b44215bdf8ff756  gcc/ada/libgnat/s-pack109.adb
! 506b5c0f0e7d4d64e9630656a8794ef0  gcc/ada/libgnat/s-pack109.ads
! 09d1b0b6a57a9bf2ce4d716a8da0ce6b  gcc/ada/libgnat/s-pack11.adb
! 90390d55d5c7e807cff255b47bc939d9  gcc/ada/libgnat/s-pack11.ads
! 8d8d561cf60975d8ba916f48e42a400c  gcc/ada/libgnat/s-pack110.adb
! 29ad5798702380bad3193a0c7d476bb1  gcc/ada/libgnat/s-pack110.ads
! 312d170305ee524f22f3aa374c77dbf1  gcc/ada/libgnat/s-pack111.adb
! efebe1715ab1830a7e820e43eae1b45c  gcc/ada/libgnat/s-pack111.ads
! 37b9efdcc0849467f8c3241939f49d2b  gcc/ada/libgnat/s-pack112.adb
! a94bbcfb2cb9d8921981dbfbbb7f5490  gcc/ada/libgnat/s-pack112.ads
! 50eea2ce3190a45f9342383c9f72f44d  gcc/ada/libgnat/s-pack113.adb
! be5ec9abc2e1d844d706eda4c982391e  gcc/ada/libgnat/s-pack113.ads
! ba464644ca891ed2748a479fd36fb078  gcc/ada/libgnat/s-pack114.adb
! 7fa147d2acf81c3f87927d782b8eab5f  gcc/ada/libgnat/s-pack114.ads
! d0f50a16481c58edd35b9dee59ffc692  gcc/ada/libgnat/s-pack115.adb
! 90a975e0dddc3aa32fc37e7cd1440db3  gcc/ada/libgnat/s-pack115.ads
! 4e24e6ca787a6797030c5e178716535f  gcc/ada/libgnat/s-pack116.adb
! f391a76b92b31c13458597c4345edfdc  gcc/ada/libgnat/s-pack116.ads
! d0b4fa5715c40a3cd9b8ab2a14376bb7  gcc/ada/libgnat/s-pack117.adb
! 06afb4f99b579423f726e9e472f9d898  gcc/ada/libgnat/s-pack117.ads
! 13de304997b9c5bdd1858ad4f08897fd  gcc/ada/libgnat/s-pack118.adb
! 06c52f2b367fbb5d64713d82485d4a2a  gcc/ada/libgnat/s-pack118.ads
! 78882a27a929eb5384c6d5bf4c35a842  gcc/ada/libgnat/s-pack119.adb
! 89a7e47af0e667d10198a1ad5f8b1c2d  gcc/ada/libgnat/s-pack119.ads
! c60debe8266cf3675323df5731182f6b  gcc/ada/libgnat/s-pack12.adb
! a46b57df5469d8aa37a2d864dfab7217  gcc/ada/libgnat/s-pack12.ads
! fd46be09f9077434673b69570a0d5805  gcc/ada/libgnat/s-pack120.adb
! 14d4b572ee4cacc08e9fb5d38844acd6  gcc/ada/libgnat/s-pack120.ads
! 11c1778005c021ecc3bfc6980cc6e456  gcc/ada/libgnat/s-pack121.adb
! 8888ed2fdd0afe376f7e52510d6d51a8  gcc/ada/libgnat/s-pack121.ads
! c43ccf18e2fa85a93e8762edea3bf60a  gcc/ada/libgnat/s-pack122.adb
! 1728a794062bb498f3e57ea364419aec  gcc/ada/libgnat/s-pack122.ads
! 9b9c390972845511365dfd1e44a237df  gcc/ada/libgnat/s-pack123.adb
! fc31f8d393b1075356dbdeb1b5193a1c  gcc/ada/libgnat/s-pack123.ads
! 498ad2bcf13597e53e62aa9d5f91b043  gcc/ada/libgnat/s-pack124.adb
! 96aabc87d5fae8acfd0692c905da0a5e  gcc/ada/libgnat/s-pack124.ads
! c5da94ea237bc41a4983b89e85cd10d2  gcc/ada/libgnat/s-pack125.adb
! 5c338928c6bde3c16fbb1fb3b7d20318  gcc/ada/libgnat/s-pack125.ads
! 1ed06ab30135fbb1394e89584b68a587  gcc/ada/libgnat/s-pack126.adb
! 40ffa9d954062a4098d69f9e21162bd9  gcc/ada/libgnat/s-pack126.ads
! 0c689da259bfa39a0e4b7412e4de66f9  gcc/ada/libgnat/s-pack127.adb
! 82210269b168c9e74da76b5b8963d7d6  gcc/ada/libgnat/s-pack127.ads
! 4f8a5250ee82a3896e20e45d5878f327  gcc/ada/libgnat/s-pack13.adb
! cf6f80086287d1184481a416bceb8e83  gcc/ada/libgnat/s-pack13.ads
! c8692619137a28190fb2d94f81a09c91  gcc/ada/libgnat/s-pack14.adb
! dbf052db2e66f6091bb229e3a98ad6b6  gcc/ada/libgnat/s-pack14.ads
! 3275c83818e3149efbc17a3d092fa93a  gcc/ada/libgnat/s-pack15.adb
! 7f6887ff0615eec12ff8064ec489978c  gcc/ada/libgnat/s-pack15.ads
! 26ee263a51649967d82acb61e4343ed8  gcc/ada/libgnat/s-pack17.adb
! 3a761f2d98258aa9e4355159445befec  gcc/ada/libgnat/s-pack17.ads
! 0d5a2f89ea1b50c7604a4c18bdc35313  gcc/ada/libgnat/s-pack18.adb
! f7605a4545a83b4d168b1a9740b5a01a  gcc/ada/libgnat/s-pack18.ads
! 2cde7307f4c2d37ce66c59d7f9bd5b7f  gcc/ada/libgnat/s-pack19.adb
! bc221c1025ef2c7f924e2fb0e005082a  gcc/ada/libgnat/s-pack19.ads
! eddc7fcef014c66036540482fed9b25c  gcc/ada/libgnat/s-pack20.adb
! b4d667a31ce5b53b7f93fbc9b6a20b5b  gcc/ada/libgnat/s-pack20.ads
! 594989b51413e059b459921e391cbcde  gcc/ada/libgnat/s-pack21.adb
! 6c7ea01c1927a7e6f6ea2fb3d2520d09  gcc/ada/libgnat/s-pack21.ads
! d805f46f47daa3f3b8557bb1d53ea128  gcc/ada/libgnat/s-pack22.adb
! 498c2ab58eddbb124964ee97001196cc  gcc/ada/libgnat/s-pack22.ads
! 49eb09d74ef6e3b9746ae19553c04970  gcc/ada/libgnat/s-pack23.adb
! 5592c458740b66897a2e223be78cfb40  gcc/ada/libgnat/s-pack23.ads
! c9831ed18ca616c8f76fa96c2b930f88  gcc/ada/libgnat/s-pack24.adb
! fe26707b18c1ea4b29002a1e7e80ffe3  gcc/ada/libgnat/s-pack24.ads
! 6494fcc886b075e4fed0d7c4616a0681  gcc/ada/libgnat/s-pack25.adb
! 573537428f5e72f3e516bf120fc7c238  gcc/ada/libgnat/s-pack25.ads
! 2e2b6d949d7a36c2a52f6dbdbbbd1f4c  gcc/ada/libgnat/s-pack26.adb
! f413f471e2794a8cd0b7411047afaa71  gcc/ada/libgnat/s-pack26.ads
! 0ec26e9ad304af1031438b54a84ef8ba  gcc/ada/libgnat/s-pack27.adb
! a80bce547b416079b83613d439b86340  gcc/ada/libgnat/s-pack27.ads
! 180307ecca488976fe92d5467b08e525  gcc/ada/libgnat/s-pack28.adb
! 9bed5f94b014e0ecc5a3e88456dceac8  gcc/ada/libgnat/s-pack28.ads
! 5865dc80624ee47b706c5f2314677cbb  gcc/ada/libgnat/s-pack29.adb
! 9364ba5765ce791d87a507af580a4a1d  gcc/ada/libgnat/s-pack29.ads
! 16c764fd21e60ab7f0c73280b3a3e4a6  gcc/ada/libgnat/s-pack30.adb
! 92eb057b5ffedfb317fff72f0cf99244  gcc/ada/libgnat/s-pack30.ads
! e3588e30a9c130d0e65cc66aceddb096  gcc/ada/libgnat/s-pack31.adb
! efcb5064d502bd9d0105fb55b0e94759  gcc/ada/libgnat/s-pack31.ads
! cb30f4484fac968a191ca58fabbea1eb  gcc/ada/libgnat/s-pack33.adb
! e275e26c327ea6ceeaad10c970624dde  gcc/ada/libgnat/s-pack33.ads
! 73d86e48dd4c0af45bc38244b44a960c  gcc/ada/libgnat/s-pack34.adb
! 16ede73ed8b9f86234a7702a773218e0  gcc/ada/libgnat/s-pack34.ads
! 47b3752ffeefc2201ea8c789a7a67b9c  gcc/ada/libgnat/s-pack35.adb
! 881eeef522eb205a96058d925cd1c8a5  gcc/ada/libgnat/s-pack35.ads
! a26265e047a2d77ce0cdf1c497135096  gcc/ada/libgnat/s-pack36.adb
! dd0f1ec55ebb57ec487e72b45f400012  gcc/ada/libgnat/s-pack36.ads
! 7b9aa89f5d60af40877c7a584106dd24  gcc/ada/libgnat/s-pack37.adb
! 22366eeeb9ccbf004c03ce13bb96c677  gcc/ada/libgnat/s-pack37.ads
! 9898be77a4d8f1f314689943af09532e  gcc/ada/libgnat/s-pack38.adb
! 2566425e736daf475a4dd97a20234200  gcc/ada/libgnat/s-pack38.ads
! 15bae6f00f86f46cea5dc75717aa542e  gcc/ada/libgnat/s-pack39.adb
! 59a0cadce785a0c8a981b90f128f74ee  gcc/ada/libgnat/s-pack39.ads
! 27311d703227a2d000957713bfb62018  gcc/ada/libgnat/s-pack40.adb
! c2e5d1bc50aa56f46a939462016db2cb  gcc/ada/libgnat/s-pack40.ads
! 15dbc73f93c41ddb90514089e9b9ad84  gcc/ada/libgnat/s-pack41.adb
! bd632bc2d4a98ecba3caaa2a37799e88  gcc/ada/libgnat/s-pack41.ads
! 69f939209f868ee054bf28d8804563cb  gcc/ada/libgnat/s-pack42.adb
! 536606bbefbbe2b1555dec1f253b0d84  gcc/ada/libgnat/s-pack42.ads
! e710a2c9157eba33c037df45524da977  gcc/ada/libgnat/s-pack43.adb
! a26bb810e98010af7d1ccaf78e1cfba6  gcc/ada/libgnat/s-pack43.ads
! 268b85a1c96ed839d6ef0cbfd781a0bc  gcc/ada/libgnat/s-pack44.adb
! d23c501ad6d9877d0715be220b3bd000  gcc/ada/libgnat/s-pack44.ads
! 51e1e31e75fdd1ddd715663d6cee5e7f  gcc/ada/libgnat/s-pack45.adb
! b6d01be5b7aff1057b6f72687ffef77f  gcc/ada/libgnat/s-pack45.ads
! e9d5843c23bcc2ac47fa1030b090bed2  gcc/ada/libgnat/s-pack46.adb
! 74e3ba107796c1fc9d7e582417923094  gcc/ada/libgnat/s-pack46.ads
! 233b7761dbac112f553923bd4c95357a  gcc/ada/libgnat/s-pack47.adb
! 68f4632610264a4f2d51b2d77cb336bc  gcc/ada/libgnat/s-pack47.ads
! db6381a8c77f820567ada810cc606b02  gcc/ada/libgnat/s-pack48.adb
! 7b2301aea863ef593ebf68b84a05e740  gcc/ada/libgnat/s-pack48.ads
! 4e06d332ffb1510d28dc8e278cb81288  gcc/ada/libgnat/s-pack49.adb
! dd020d84f6c4d8e849abc60104ca5f75  gcc/ada/libgnat/s-pack49.ads
! d6fdf9b68dc66809fcf4a0a9ed84fbd8  gcc/ada/libgnat/s-pack50.adb
! 3c53fbb2ad90b64c77b68134cead61bb  gcc/ada/libgnat/s-pack50.ads
! 58f7cb4cc8a2cc09e225f8ef8f89f225  gcc/ada/libgnat/s-pack51.adb
! 91e981d029a88c06ec0686ac2b03756b  gcc/ada/libgnat/s-pack51.ads
! ff24145ce9e1a58c66ee8d95fac83d78  gcc/ada/libgnat/s-pack52.adb
! 27f80bbc3774df2141b6cb43321b3960  gcc/ada/libgnat/s-pack52.ads
! 19ebbb82e2091a5b66a46293a6656690  gcc/ada/libgnat/s-pack53.adb
! 416de4014265e2877486f6f6255ee44d  gcc/ada/libgnat/s-pack53.ads
! 974002cebeab6d31ce550a5a4111f603  gcc/ada/libgnat/s-pack54.adb
! 7dd6815ea00002e657a84664e632bca8  gcc/ada/libgnat/s-pack54.ads
! 661e51ffcbe7dbfa8412cf1b02256d85  gcc/ada/libgnat/s-pack55.adb
! d9e19436df5a7c589c05392e19041db4  gcc/ada/libgnat/s-pack55.ads
! 5e4e4f248488396f2f9121be7b06a9be  gcc/ada/libgnat/s-pack56.adb
! 92968857e976ccfac6effcaf66c60cfb  gcc/ada/libgnat/s-pack56.ads
! 7e0b790a544130df0f858a228e1be676  gcc/ada/libgnat/s-pack57.adb
! d83dd066a335371fbee5d56632ee950e  gcc/ada/libgnat/s-pack57.ads
! 0743bc90b1eb164107e54f4e2035fa81  gcc/ada/libgnat/s-pack58.adb
! 7e912b9eab3a01e14501510c1c68ff40  gcc/ada/libgnat/s-pack58.ads
! f813058bc1904df2d5546cbb6099d68d  gcc/ada/libgnat/s-pack59.adb
! 710ee588186aabf1965a4d731bc81b83  gcc/ada/libgnat/s-pack59.ads
! b67cdbff90e9a836c18355eb4eef8c13  gcc/ada/libgnat/s-pack60.adb
! b655349b00e2338ccb04b5a9c1f781ea  gcc/ada/libgnat/s-pack60.ads
! ca74d9a68acd1037422acf5d6716c7f7  gcc/ada/libgnat/s-pack61.adb
! e1549412055ef7411d614dbd58b76fe9  gcc/ada/libgnat/s-pack61.ads
! e844a122d498a86f0d42a3ee7ad6794f  gcc/ada/libgnat/s-pack62.adb
! 7536e4a66cd8544dec8851ad990a7d4b  gcc/ada/libgnat/s-pack62.ads
! ebd87e707e528027d8fd5fcc5b173454  gcc/ada/libgnat/s-pack63.adb
! d92480671f4bd3a2eec00f708ac7c3ac  gcc/ada/libgnat/s-pack63.ads
! 2d4a396769f99ae3bf9e85ca86e2f4f5  gcc/ada/libgnat/s-pack65.adb
! b9ce1b28c12928a2a4a806cb9c27a680  gcc/ada/libgnat/s-pack65.ads
! a2652efdc47f27a33c8f050788245a9e  gcc/ada/libgnat/s-pack66.adb
! 397dd58cd93fe5690cd50b4e88fd5a90  gcc/ada/libgnat/s-pack66.ads
! 81ba35fc98ae6abbee3258cca4113578  gcc/ada/libgnat/s-pack67.adb
! 9c5bd7c80db398931735aaf6fd167025  gcc/ada/libgnat/s-pack67.ads
! b48bf904c98e4ca5c7ab052b2de0395e  gcc/ada/libgnat/s-pack68.adb
! 8c0e2078ecfc1a5cd25ada0f3b067188  gcc/ada/libgnat/s-pack68.ads
! 7042dd207517fdd96600ccfe01a8248b  gcc/ada/libgnat/s-pack69.adb
! 3b8fc2762b2658a818dfb1c8396abfdb  gcc/ada/libgnat/s-pack69.ads
! d24701cbcaf8f4a437d40a303e0a8d53  gcc/ada/libgnat/s-pack70.adb
! b6e7ebf09862f255471762555f50a1f2  gcc/ada/libgnat/s-pack70.ads
! 717930fb48c9c084a2cc5e7c9496f7da  gcc/ada/libgnat/s-pack71.adb
! 6e1c169931ab3ea101c04bbbc6c785f7  gcc/ada/libgnat/s-pack71.ads
! adf18d98e5902591b9e1678a76a47809  gcc/ada/libgnat/s-pack72.adb
! 93e3f142f79f30c28bfb1cd09b36d7b1  gcc/ada/libgnat/s-pack72.ads
! d45ec7e66f4de1b4be13f39790c67f5c  gcc/ada/libgnat/s-pack73.adb
! 67b1b3a7925cf3766ed24522b67d967b  gcc/ada/libgnat/s-pack73.ads
! b767b9452e5445d3bb09fa231f92c78d  gcc/ada/libgnat/s-pack74.adb
! 6ef4b809a59a2a1c8fae7abf9ec635af  gcc/ada/libgnat/s-pack74.ads
! d8515d6a1ba28e2ceb8b20c885293975  gcc/ada/libgnat/s-pack75.adb
! 5e9861c24ea3c0df061b3f3c0b49a73c  gcc/ada/libgnat/s-pack75.ads
! 1b68cfcd48e4ee4a019c5465f91bbde8  gcc/ada/libgnat/s-pack76.adb
! 4fa069d18687c33f253f7aca0820efff  gcc/ada/libgnat/s-pack76.ads
! 6d0e3f71f2205f589c715a4cac5e5523  gcc/ada/libgnat/s-pack77.adb
! fa5462a62166448dc04c7dad92bc4e47  gcc/ada/libgnat/s-pack77.ads
! ed8b8f2ef925eae83c686895136c70aa  gcc/ada/libgnat/s-pack78.adb
! 721f25ab3b527c7185e23be17cc08cb2  gcc/ada/libgnat/s-pack78.ads
! 667e0c75169be8b4dcb391fbd1a72693  gcc/ada/libgnat/s-pack79.adb
! 75905e73b01cf8bf54dee06da401a5ea  gcc/ada/libgnat/s-pack79.ads
! da4492b054db435b37fe964b83d03269  gcc/ada/libgnat/s-pack80.adb
! adf0e32e14438bd3738b35304251e04e  gcc/ada/libgnat/s-pack80.ads
! 1fe0789496c12ab3e1e298dd90f0a7bf  gcc/ada/libgnat/s-pack81.adb
! 183c6f5b628e466068cbc9ec4c2f3526  gcc/ada/libgnat/s-pack81.ads
! e9ea63f580d8fbe753c44a5a79ce16f2  gcc/ada/libgnat/s-pack82.adb
! 88c727621d7e158b0a77fc1e24fbb5fe  gcc/ada/libgnat/s-pack82.ads
! 5bbfa191f7c91d288056c367b496f912  gcc/ada/libgnat/s-pack83.adb
! dbc92839bd4fe4b4bad581baa878c0a0  gcc/ada/libgnat/s-pack83.ads
! 7ba3212aa1f392891c7ac65974d54ec3  gcc/ada/libgnat/s-pack84.adb
! f71be9be6b5c70435f7f72d0fc77348b  gcc/ada/libgnat/s-pack84.ads
! ecf3f89035ad46547864673f7ed7f7b1  gcc/ada/libgnat/s-pack85.adb
! 5a00159af586bf2be64ff1b136fde790  gcc/ada/libgnat/s-pack85.ads
! c9b8bee895e8051ee2f7ccc95c21de28  gcc/ada/libgnat/s-pack86.adb
! 903bfdd8ddc0fc685eb6660e68d1a218  gcc/ada/libgnat/s-pack86.ads
! 3a947aea7eb92210911ad046d6ebce06  gcc/ada/libgnat/s-pack87.adb
! 36d54cb6b94e79fdc6103c2d3e8505a2  gcc/ada/libgnat/s-pack87.ads
! 354b83d362df257e9b1ed8d352006f4f  gcc/ada/libgnat/s-pack88.adb
! 2950169026676ad3f63e5017c64a2d4f  gcc/ada/libgnat/s-pack88.ads
! ec2c079b217dca48b77f420273ee1413  gcc/ada/libgnat/s-pack89.adb
! 717b4cc356e80b8fb5cc25e476fffb6b  gcc/ada/libgnat/s-pack89.ads
! 1e8ddf038458259abf6e45efbd8b990d  gcc/ada/libgnat/s-pack90.adb
! 4c74340954e4f5f8e3eb60c65ef5e379  gcc/ada/libgnat/s-pack90.ads
! 621907c4f767a5541c5a2b1974fe2f82  gcc/ada/libgnat/s-pack91.adb
! 6496b8cee89bb9655dfc1422f687c0ed  gcc/ada/libgnat/s-pack91.ads
! 8bd8860bb83bb840f63e822664e9101b  gcc/ada/libgnat/s-pack92.adb
! ba7855448670eac6255bc9e9a5c7be42  gcc/ada/libgnat/s-pack92.ads
! 4102687097ce1ef70fe066af0bdf7711  gcc/ada/libgnat/s-pack93.adb
! c703a36a058db1f82d0c2d774a1d6d0a  gcc/ada/libgnat/s-pack93.ads
! 7b83bda559c11790e77a78c24359f14d  gcc/ada/libgnat/s-pack94.adb
! cbe513c0db810380b1dc2f039a5d59a1  gcc/ada/libgnat/s-pack94.ads
! 424faf820cde808f1a662a5621582f5d  gcc/ada/libgnat/s-pack95.adb
! 487cfa289998721cf91f11fb340dd76d  gcc/ada/libgnat/s-pack95.ads
! a3a3f4bc6e997709e27470eebaffdcf7  gcc/ada/libgnat/s-pack96.adb
! d21cb7776cfe586763615ac11c12f3b8  gcc/ada/libgnat/s-pack96.ads
! 0557b878c81391b8fc7e4a96ada65262  gcc/ada/libgnat/s-pack97.adb
! 6f77985edd0b447d5016894dcfcfc41c  gcc/ada/libgnat/s-pack97.ads
! 8ec97dadb69c28f00c96a6865ae2f6f7  gcc/ada/libgnat/s-pack98.adb
! b19b0f0a74ca0c2265207f238dd5e0de  gcc/ada/libgnat/s-pack98.ads
! 5e535389cc1a8231dffeef32cf1788c4  gcc/ada/libgnat/s-pack99.adb
! 0964ce47f6adebfb7114b955c6b63ec0  gcc/ada/libgnat/s-pack99.ads
! e579b8d64b737a8dcffca5193ef42443  gcc/ada/libgnat/s-parame.adb
! 210b516f060d0561bdfc703cd41c4c89  gcc/ada/libgnat/s-parame.ads
! 9ddfcf29b8fd95d5fc75fc366ba2195e  gcc/ada/libgnat/s-parame__hpux.ads
! ff58c199c50ab756d355c657b7be5a25  gcc/ada/libgnat/s-parame__posix2008.ads
! d9f02c054278d9a7cdff7d4b5b3e4043  gcc/ada/libgnat/s-parame__qnx.adb
! 43cb62687195c0f501f2b69d9c10005f  gcc/ada/libgnat/s-parame__rtems.adb
! c2a1d9bde82590b56b225f5c39e2b5e5  gcc/ada/libgnat/s-parame__vxworks.adb
! d983bc0c511dacc5736833f24760e844  gcc/ada/libgnat/s-parame__vxworks.ads
! 734d78cfdb7cc0072132d33cae601b6e  gcc/ada/libgnat/s-parint.adb
! 4b0680d74b8b0b1a0e4529c88e5d5ad6  gcc/ada/libgnat/s-parint.ads
! 65634a265fd45e9fe10624f572ab0f13  gcc/ada/libgnat/s-pehage.adb
! dc042664900dbef40fa612eb22534e46  gcc/ada/libgnat/s-pehage.ads
! ab0742f3ef5faaa8900392805306d191  gcc/ada/libgnat/s-pooglo.adb
! 698c9d5149c3db82d4feb71f3d9fe1b7  gcc/ada/libgnat/s-pooglo.ads
! f1ae3b21b392761c3565a0003ab8f71c  gcc/ada/libgnat/s-pooloc.adb
! d767dd84c05d066cdaa0c641d0c57b65  gcc/ada/libgnat/s-pooloc.ads
! efedbed02b02d450955d83770589ae41  gcc/ada/libgnat/s-poosiz.adb
! 2d43a0b7291718446c1e8e087513b7d1  gcc/ada/libgnat/s-poosiz.ads
! 2c1999d5e8614f23d4ae80c9855080f4  gcc/ada/libgnat/s-powflt.ads
! a6a713a838db708aed28385e51ba5321  gcc/ada/libgnat/s-powlfl.ads
! 2f34246faf4fae139ffcc6fee38924ab  gcc/ada/libgnat/s-powllf.ads
! a360d9ded39d7e9912e7cc3867fc5e3c  gcc/ada/libgnat/s-purexc.ads
! 95933b41da82889e2cda9c6fce2ad424  gcc/ada/libgnat/s-putima.adb
! 9dc59fd7fe2fb4d0fa0e250473b9089f  gcc/ada/libgnat/s-putima.ads
! 6a01270c563f13e8c04fa1d94d601404  gcc/ada/libgnat/s-rannum.adb
! be3a3905a770fc36605b27fb3f3cf908  gcc/ada/libgnat/s-rannum.ads
! 07fda7c2855cfe2c9c52f53aaa4a253e  gcc/ada/libgnat/s-ransee.adb
! d85cfaf7a99e11bc5a242853dc6c14fc  gcc/ada/libgnat/s-ransee.ads
! cbf991fec61bc448b819f3f66edf1c41  gcc/ada/libgnat/s-regexp.adb
! 90d0fc1b354e5ba4be1d755d3d663b17  gcc/ada/libgnat/s-regexp.ads
! c1ed15c0954599d910aaf85613af5bed  gcc/ada/libgnat/s-regpat.adb
! 4a2d38e54304c2694c46dfc32bbc0af6  gcc/ada/libgnat/s-regpat.ads
! df7f2198b0e21503886d6c26e235d67e  gcc/ada/libgnat/s-resfil.adb
! ad4da6585258481d56ca1a698d4d61ce  gcc/ada/libgnat/s-resfil.ads
! 4ba2cbbf8dc61de53427d6f0983bb3c5  gcc/ada/libgnat/s-restri.adb
! 23904fa8e32e26422c3d63bd1d9532a9  gcc/ada/libgnat/s-restri.ads
! 9bed504572d16db019d2b0c1d4400931  gcc/ada/libgnat/s-retsta.ads
! 9d19a9c216b874d4e70cb62693dff93c  gcc/ada/libgnat/s-rident.ads
! 5e3f85c27ca59c38e33aab45df02f5dc  gcc/ada/libgnat/s-rpc.adb
! 46f5da46387e6c54b6b61f13ae455f65  gcc/ada/libgnat/s-rpc.ads
! 52f7e1d5a4598ec008f0359f7cc9792f  gcc/ada/libgnat/s-scaval.adb
! 40b7d74949f63ebaf070c87fe68a7238  gcc/ada/libgnat/s-scaval.ads
! cd7c6438c83689080bb401305d37aedd  gcc/ada/libgnat/s-scaval__128.adb
! 470060fc3c98d0bffe59e81e04b7f950  gcc/ada/libgnat/s-scaval__128.ads
! c6ad07903a3aba6545169b536610109d  gcc/ada/libgnat/s-secsta.adb
! 128f6457bdf798b30f0ac01f651efc74  gcc/ada/libgnat/s-secsta.ads
! 8483e6722e2ff962bd8036d103040add  gcc/ada/libgnat/s-sequio.adb
! 1a54b4e6b1424712cb52ef4d1f5e1d63  gcc/ada/libgnat/s-sequio.ads
! 80b13c5463d11aebd78cf9d1e3f9c5a1  gcc/ada/libgnat/s-shabig.ads
! fefd83949cbfea98b17e0e91076f2f50  gcc/ada/libgnat/s-shasto.adb
! b2e76ba3962abe318b88c9286c65b554  gcc/ada/libgnat/s-shasto.ads
! e4605c43bc054f66ffcfb3b426ed16e6  gcc/ada/libgnat/s-soflin.adb
! a6ab17b13fd2195d74f6f405ca2f8a37  gcc/ada/libgnat/s-soflin.ads
! 145bc7829c6ea8b43f3fced3e4cc41bb  gcc/ada/libgnat/s-soliin.adb
! e0dd23682602f078b36132fca5f1ce09  gcc/ada/libgnat/s-soliin.ads
! 3de05818e947af24d2b69fbfce220618  gcc/ada/libgnat/s-spark.ads
! 3b7f09522697587705dfb4a55967de20  gcc/ada/libgnat/s-spcuop.adb
! 7215f65f62154db649373baec554e6fc  gcc/ada/libgnat/s-spcuop.ads
! 209727fa0945db5414327a0cf1f48952  gcc/ada/libgnat/s-spsufi.adb
! 7c01f35ee6fc678078aa73dd220fd186  gcc/ada/libgnat/s-spsufi.ads
! faefecd9d323d059cb24bd69a820822e  gcc/ada/libgnat/s-stache.adb
! 4c3d6316edb93ef5b74deb77c7aa9000  gcc/ada/libgnat/s-stache.ads
! 3da0a6fb8904a0d3c663bb81383f0b98  gcc/ada/libgnat/s-stalib.adb
! 949bb54af4354b6fabc464ba256dd5f8  gcc/ada/libgnat/s-stalib.ads
! 5f5182d67632070031f785cbf99bfa24  gcc/ada/libgnat/s-statxd.adb
! 100a6b18790851f20393dc8cd2bd6828  gcc/ada/libgnat/s-statxd.ads
! e38133cd6318c0241145a82faa1a2b21  gcc/ada/libgnat/s-stausa.adb
! bb0713a33991773e5d37c1deb980d800  gcc/ada/libgnat/s-stausa.ads
! 18c197de9cca21825575ed9e681a4d32  gcc/ada/libgnat/s-stchop.adb
! a1247c5c4bb9eff5d1a779da67295661  gcc/ada/libgnat/s-stchop.ads
! f8ed5d7de1805f88c616da1fc6db296f  gcc/ada/libgnat/s-stchop__limit.ads
! 0fb874b0d228ecda91d5ba5f34e1fed8  gcc/ada/libgnat/s-stchop__vxworks.adb
! 21e99b0b8967c6befdb117a91a841ad2  gcc/ada/libgnat/s-stoele.adb
! 216cb40a8c5e7320eabd8152c93fe765  gcc/ada/libgnat/s-stoele.ads
! f5282c29a72e62145ea1c266dea51032  gcc/ada/libgnat/s-stopoo.adb
! 1713c674a5ff1626e0cfbf2437051261  gcc/ada/libgnat/s-stopoo.ads
! 04ecd4e8f101e346d98861663bf191bf  gcc/ada/libgnat/s-stposu.adb
! 5058409e38dd0596ecf8ce6aa6b37549  gcc/ada/libgnat/s-stposu.ads
! 5a2a368cfceee81555b6a6fd198d2bcd  gcc/ada/libgnat/s-stratt.adb
! 33547a946aa759d0c95317ff08ede32c  gcc/ada/libgnat/s-stratt.ads
! 6e524b2f4f61612d2eafd6adb2b2cda8  gcc/ada/libgnat/s-stratt__cheri.adb
! 6db6e8b97e6c3127debc2da4293124b8  gcc/ada/libgnat/s-strcom.adb
! 70de557e86c98204caf9ca488a9e83cc  gcc/ada/libgnat/s-strcom.ads
! fafb2fff45b71436cc913200665194f5  gcc/ada/libgnat/s-strhas.adb
! 8a214666f7233c03ae9638734cdf15d2  gcc/ada/libgnat/s-strhas.ads
! 4a746f8297199f4eb8750481eca6c6de  gcc/ada/libgnat/s-string.adb
! 90e9a7523217c2aeb24e9d02826396e0  gcc/ada/libgnat/s-string.ads
! f8ab530112ade8aca9aba8cdd1d1426b  gcc/ada/libgnat/s-ststop.adb
! 4ac27c5b0c6b5cf31d5948c959a6b5fb  gcc/ada/libgnat/s-ststop.ads
! 69db5b49a36b8fb32e1f77ab272c0d37  gcc/ada/libgnat/s-tasloc.adb
! 5517377c7c8d98936ded713dfe322caf  gcc/ada/libgnat/s-tasloc.ads
! 2275ff15a9d4250e46eb5e651dea25e5  gcc/ada/libgnat/s-traceb.adb
! ec7bb71adb0653b849299200c62dbcee  gcc/ada/libgnat/s-traceb.ads
! 7fb78039bed55b3737d17bd8a6c93d28  gcc/ada/libgnat/s-traceb__hpux.adb
! da664a65de870f400d40e8ea14901446  gcc/ada/libgnat/s-traceb__mastop.adb
! c6327702bc0f983080d9796e2bebb69c  gcc/ada/libgnat/s-traent.adb
! 0c9112f56bb121e7576ce16207304e14  gcc/ada/libgnat/s-traent.ads
! 47137d267bd5e658ae6e5d8960ee0a28  gcc/ada/libgnat/s-trasym.adb
! 60c6f0924d9a177cf27a8f7b7a5f0bc3  gcc/ada/libgnat/s-trasym.ads
! c6b10e3ec8fb986cb4d16410e4d6cd3d  gcc/ada/libgnat/s-trasym__dwarf.adb
! 197bc00cddb84e4e9b1375407f52a279  gcc/ada/libgnat/s-tsmona.adb
! 8d38055ee9b048d80016e678c738b571  gcc/ada/libgnat/s-tsmona__linux.adb
! dfc9a8e49789d081b8974d4167668300  gcc/ada/libgnat/s-tsmona__mingw.adb
! f7734aff740e51f23447b563da75e115  gcc/ada/libgnat/s-unstyp.ads
! 30a411e6de9bb90cab8fc158ada9999f  gcc/ada/libgnat/s-utf_32.adb
! 38e12abf262db6aa4a9b47bc821bae9c  gcc/ada/libgnat/s-utf_32.ads
! 0ae5e8232ed5a51cd466bc9aece1ae64  gcc/ada/libgnat/s-vade128.ads
! 51fc7cdac1c0f457301369558cbfa009  gcc/ada/libgnat/s-vade32.ads
! b2171bdb27c370e3a8d895870b9fb2ed  gcc/ada/libgnat/s-vade64.ads
! 84ecd45f64d5358f2c949b4b0e8cf4e7  gcc/ada/libgnat/s-vaen16.ads
! 236c22320515afb08773b25fc3f2ba93  gcc/ada/libgnat/s-vaen32.ads
! 75e1e6938bcfea7ad03672b120c4d06e  gcc/ada/libgnat/s-vaenu8.ads
! 0c5d15bef94eb0d2aed6236c46835102  gcc/ada/libgnat/s-vafi128.ads
! dbbd5f7b35b7738f4875e9bd328355cd  gcc/ada/libgnat/s-vafi32.ads
! 0a376e349aecce448abc0a6b748d2d64  gcc/ada/libgnat/s-vafi64.ads
! 4ebef7065cffd0169af1babbaf3f89fb  gcc/ada/libgnat/s-vaispe.adb
! 1455e08c81e6a53b1f71dcfbe9987815  gcc/ada/libgnat/s-vaispe.ads
! e0817687f423a26facfbd6ef68cfed43  gcc/ada/libgnat/s-valboo.adb
! 5cfc95bdf91b6102e377442036bc422d  gcc/ada/libgnat/s-valboo.ads
! 5825579dbe6a73c331c65071710ae8e5  gcc/ada/libgnat/s-valcha.adb
! cf5da606cc5b6c3a501ee334eaba58d1  gcc/ada/libgnat/s-valcha.ads
! 062c5e1c58646936cdaa14c5e1e470ce  gcc/ada/libgnat/s-valflt.ads
! 95c8dd226e7cccbd269bc69b415bb4ed  gcc/ada/libgnat/s-valint.adb
! 5e6a9251288a6f94bed749141d3ed687  gcc/ada/libgnat/s-valint.ads
! a2b6c28e8d8fe0452d881772230e3701  gcc/ada/libgnat/s-vallfl.ads
! f251efc3575235d0a488a16a3f98d97e  gcc/ada/libgnat/s-valllf.ads
! 9c83e4293277dff770e6a2d19a2af4d4  gcc/ada/libgnat/s-vallli.adb
! 5bdd2dc20fd41e02dc14e8023086b2a5  gcc/ada/libgnat/s-vallli.ads
! 71a6c1dced8f9e7dafbe465b1ed97476  gcc/ada/libgnat/s-valllli.ads
! 48238e17f1405ad20c6873842ccc67d6  gcc/ada/libgnat/s-vallllu.ads
! 38767ba60facca70d9648f110ddfe81d  gcc/ada/libgnat/s-valllu.adb
! 57cef25b2f1647dbc0895b1d058c8774  gcc/ada/libgnat/s-valllu.ads
! 864df128475be4383759a86287088fe5  gcc/ada/libgnat/s-valrea.adb
! 2a41f3f487d1bafa1cf84cb9367d89cd  gcc/ada/libgnat/s-valrea.ads
! 95b12e95dd22e5e4540c6927cbbb2708  gcc/ada/libgnat/s-valspe.adb
! e8f46b602ec60b6526496945b707123b  gcc/ada/libgnat/s-valspe.ads
! c301b9870de28610393218c71233c4b6  gcc/ada/libgnat/s-valued.adb
! 36e45ff6b1615b4d992730bb218d018b  gcc/ada/libgnat/s-valued.ads
! eed9d274e93b78ccf5ef81524c778471  gcc/ada/libgnat/s-valuef.adb
! d28abd543f651a3eb4f8fe135e0cc97e  gcc/ada/libgnat/s-valuef.ads
! b97b2d8cb6ab3ec32c2ed4fa5129753b  gcc/ada/libgnat/s-valuei.adb
! 62ea7a731842e97b662c60f7635445b3  gcc/ada/libgnat/s-valuei.ads
! 25c0ce7e276450904c51b04da764fcbf  gcc/ada/libgnat/s-valuen.adb
! 990f369c497fbde1cb1f6bb8bb03f31b  gcc/ada/libgnat/s-valuen.ads
! bccf81bb7c2810994435b2be4cfa37dc  gcc/ada/libgnat/s-valuer.adb
! 063b9cea2b97264e863c4d10b2c2b5c1  gcc/ada/libgnat/s-valuer.ads
! f79a50be3b36e565b098899bf5f3ddcc  gcc/ada/libgnat/s-valueu.adb
! 13d88c85a6e4f2d6c35aa4267df51fc5  gcc/ada/libgnat/s-valueu.ads
! 2874bd8b302acddb922948b200493346  gcc/ada/libgnat/s-valuns.adb
! 49d90eb3c1b2b19a61c52989a3386195  gcc/ada/libgnat/s-valuns.ads
! 6657d930c89cb16a3a30ed44b0281b11  gcc/ada/libgnat/s-valuti.adb
! e90e51d3214a17ad6167943b72bc19a2  gcc/ada/libgnat/s-valuti.ads
! 002453cf605df6a2b0698276aba534b1  gcc/ada/libgnat/s-valwch.adb
! 024d2b6a784dcf09a5014694d5fccfff  gcc/ada/libgnat/s-valwch.ads
! 9577d71e0c5304cddd9617d945f6d43d  gcc/ada/libgnat/s-vauspe.adb
! 881b6c30fcc1977c4f622b9d973611c7  gcc/ada/libgnat/s-vauspe.ads
! 33fcbe084c6a1df99cbb78cf502101f3  gcc/ada/libgnat/s-veboop.adb
! 84e25b9bf663713abfea88e8a0dffbc2  gcc/ada/libgnat/s-veboop.ads
! a684127db63b5afb65646dbe0325d30b  gcc/ada/libgnat/s-vector.ads
! e0fe502ecab6a08a3d26432a915f7b53  gcc/ada/libgnat/s-vercon.adb
! c19eda1fb9605857931d8ca19e8e72ea  gcc/ada/libgnat/s-vercon.ads
! 804bbf0efa3dce47d7efc0161457b9c0  gcc/ada/libgnat/s-vs_int.ads
! 9aaf1e0cba239ad0c6260c1eb07ef820  gcc/ada/libgnat/s-vs_lli.ads
! c8c279a6b5fb78e941697122bc7fbc7e  gcc/ada/libgnat/s-vs_llu.ads
! aa76e0720c4abb7c36db19addc964c1a  gcc/ada/libgnat/s-vs_uns.ads
! c38038ff5eae58e42922f2ce6a17eaaa  gcc/ada/libgnat/s-vsllli.ads
! bb752f102542423b439f587aeda3b324  gcc/ada/libgnat/s-vslllu.ads
! f1e0da9f9327f3dabf68f788cbcc0c7f  gcc/ada/libgnat/s-wchcnv.adb
! 1420b2feb1fbc2f450a61e31aedb975f  gcc/ada/libgnat/s-wchcnv.ads
! 6e240ad1de2e99eaac273ccf65e73638  gcc/ada/libgnat/s-wchcon.adb
! e6b97ce8a41a30a4224eb92752a35c1b  gcc/ada/libgnat/s-wchcon.ads
! 35d717adbe8fdb3f884890c147b2bc8b  gcc/ada/libgnat/s-wchjis.adb
! 736b890b40f4a0d8f6f42af18dccf3b2  gcc/ada/libgnat/s-wchjis.ads
! f5018624c585e18d870ba464bb108a38  gcc/ada/libgnat/s-wchstw.adb
! 17ab6440f04b41d2d8ec4b4c0e960fd1  gcc/ada/libgnat/s-wchstw.ads
! fcbbe79071cb581e2b6a0fb247c7b7c6  gcc/ada/libgnat/s-wchwts.adb
! 7ad1c910f82152701521b7a7774d5413  gcc/ada/libgnat/s-wchwts.ads
! dbca5c4e316214d8f9b58a711efb783c  gcc/ada/libgnat/s-widboo.adb
! 1e73455104632d7818ba2431f338a5b3  gcc/ada/libgnat/s-widboo.ads
! 4d1f40584d9955e017536f184c4db526  gcc/ada/libgnat/s-widcha.adb
! fb843b64e80eed482f225cc76e3bc7e5  gcc/ada/libgnat/s-widcha.ads
! d4e4916eff6482ab6f93e38ea66be2da  gcc/ada/libgnat/s-widenu.adb
! 724121fdfd3f06f0ea5e1e1a09e67b3e  gcc/ada/libgnat/s-widenu.ads
! 268fceb875435438ae5b3960cd99428c  gcc/ada/libgnat/s-widint.ads
! 0a9aa519feef577318ec1b100df5737d  gcc/ada/libgnat/s-widlli.adb
! 44f48679529388d51d08b73af5ac3e1f  gcc/ada/libgnat/s-widlli.ads
! ed889cd2bb7bbec002cae6227919a775  gcc/ada/libgnat/s-widllli.ads
! d35cb95ba7c9fd94df0abcd66de6454b  gcc/ada/libgnat/s-widlllu.ads
! f88c7f934b91dee49149bf502d1be4a8  gcc/ada/libgnat/s-widllu.adb
! 2dc920fa2bc3f30bc20cae8548f1cbb1  gcc/ada/libgnat/s-widllu.ads
! 5082f0fa3f1e8b3ea7c049098de87788  gcc/ada/libgnat/s-widthi.adb
! 04e171819fc44f5a3dab98b628cd8b16  gcc/ada/libgnat/s-widthi.ads
! 5f47968a8b0f51c5e802ee445c9416dc  gcc/ada/libgnat/s-widthu.adb
! 73b4239e663bb09a5db53829cf4c8c32  gcc/ada/libgnat/s-widthu.ads
! 0cca97d4259134bab42abb9aec1e7dce  gcc/ada/libgnat/s-widuns.ads
! 769c8fbc4cfaa1eb168c2bc5fadac34f  gcc/ada/libgnat/s-widwch.adb
! 9d38ed18c38f834359e4b7bf1857cb77  gcc/ada/libgnat/s-widwch.ads
! fa8cedf59dded05d268d5a7f8cef9c2c  gcc/ada/libgnat/s-win32.ads
! 57ac8cb8de56518667a8b16c6a135959  gcc/ada/libgnat/s-winext.ads
! a08290fd93f982b5e5dd821353744514  gcc/ada/libgnat/s-wwdcha.adb
! e27f67eaa0df7ff0b7c496d99e430508  gcc/ada/libgnat/s-wwdcha.ads
! f194086759ea0972bd810bf1481dcc90  gcc/ada/libgnat/s-wwdenu.adb
! deaf0eb6c61c1f37b86138dc8ad12728  gcc/ada/libgnat/s-wwdenu.ads
! 7ba50ad1582b621b62134fde144e6cf4  gcc/ada/libgnat/s-wwdwch.adb
! e491b86c70489c9368bb40353706e0eb  gcc/ada/libgnat/s-wwdwch.ads
  0f4c21401ad2531f8c5d4010537dc6d2  gcc/ada/libgnat/sequenio.ads
! d6aef4e85ad61137bab701ddf358f7f6  gcc/ada/libgnat/system-aix.ads
! 2495fc92e0b48251905a5fde33b16f93  gcc/ada/libgnat/system-darwin-arm.ads
! a55a033de7cec634074f1e4966097ffb  gcc/ada/libgnat/system-darwin-ppc.ads
! 4389d6d52a9fd971c838180d0bf4c54b  gcc/ada/libgnat/system-darwin-x86.ads
! 52c235a529c602003b9c7f4ee617d266  gcc/ada/libgnat/system-djgpp.ads
! 54d885426027dae25d8fcd9088b3580d  gcc/ada/libgnat/system-dragonfly-x86_64.ads
! e91cb5b4cbdda3a2170805353434e6bb  gcc/ada/libgnat/system-freebsd.ads
! c24d2d1082998743e24cd8a3ab873e51  gcc/ada/libgnat/system-hpux-ia64.ads
! e011173ba679923c76750db7f714b74c  gcc/ada/libgnat/system-hpux.ads
! c3e105b8e4ef476f9504c4bd95b16fc4  gcc/ada/libgnat/system-linux-alpha.ads
! 61438b257972c479df398813ba92da55  gcc/ada/libgnat/system-linux-arm.ads
! 1992f7b8b5a3020137d048d227d492a7  gcc/ada/libgnat/system-linux-hppa.ads
! 452b711e5e523a65b5d694b48cf8de4a  gcc/ada/libgnat/system-linux-ia64.ads
! 7bd9df64099aebfcaba4cc40c9c0ff66  gcc/ada/libgnat/system-linux-loongarch.ads
! 480a61d83eed366cd531010ef5577d62  gcc/ada/libgnat/system-linux-m68k.ads
! 61156ab81207df6fb164a6015040b983  gcc/ada/libgnat/system-linux-mips.ads
! 0654f6fcc824e196149d3a4024203b15  gcc/ada/libgnat/system-linux-ppc.ads
! 2ef1cf4b78c8bd91ab21dec41ca7ffe2  gcc/ada/libgnat/system-linux-riscv.ads
! eedc614b46c79cdb3b9ea74003b7afe5  gcc/ada/libgnat/system-linux-s390.ads
! bba20ce2c6900a95dda7344834fd9c9a  gcc/ada/libgnat/system-linux-sh4.ads
! 95376aa6b08e1585ebfed649e8fd19ea  gcc/ada/libgnat/system-linux-sparc.ads
! c94e08259af70b7a04998461eba72964  gcc/ada/libgnat/system-linux-x86.ads
! 8be3f2fc9a42fccf9850ed4b6e513d97  gcc/ada/libgnat/system-lynxos178-ppc.ads
! 44cc4f2c79f0c9c67301c8a612bf9a57  gcc/ada/libgnat/system-lynxos178-x86.ads
! 72f1dae604fde9d3c8564b309993c94f  gcc/ada/libgnat/system-mingw.ads
! 5505c22d651be55173954946d6a56d40  gcc/ada/libgnat/system-qnx-arm.ads
! 4a047c0bf59d5ae245217b50f5eb0d7a  gcc/ada/libgnat/system-rtems.ads
! aaeca6003231627c17befebdc5b7c035  gcc/ada/libgnat/system-solaris-sparc.ads
! 26dbe4c8db1129ad1f5945a8aa8265e7  gcc/ada/libgnat/system-solaris-x86.ads
! 1ad955b4aa8fd8cc9997986fc640cc7e  gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
! 02d9c0007ed92d56615a98356b8e9356  gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
! 5b76b376d60da85650c4d51922c79ade  gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
! deba84d06c5d25d6f81eeb0cf56839c3  gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
! 0d934e5c0ba0ead2ee63a845867e3076  gcc/ada/libgnat/system-vxworks7-aarch64.ads
! 22a285a7c76f0e7d9027969e3456a1b0  gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
! 7fa9a6702748f1b0ec274fa00f2105a0  gcc/ada/libgnat/system-vxworks7-arm.ads
! 0778e968366bea268906acc6cacd13dc  gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
! 0f27b3b87aa3da7558624faa8737ba33  gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
! a4dfc71376062ef17f1173df8af140b5  gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
! 726cf6538fdd70fe97dbcd9869ecfda2  gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
! 5e75c6818950c125b21b5eea31a642d1  gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
! 299e1dfb2f97b31800485fdaf736879c  gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
! 18355a168147d9ec7e67165be19a14ad  gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
! 013d745eec439420a3e1b0fa19d10db1  gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
  2dc890e2791f7e9d6e1e9ca1cfb55c71  gcc/ada/libgnat/text_io.ads
  9a646eb97c6840de5d4bbb081dd2031a  gcc/ada/libgnat/unchconv.ads
  b8b0f9c3471d18ee5ac33521fe6f6d31  gcc/ada/libgnat/unchdeal.ads
! 877c08234ffc2018ef7d67d9b7dbc95f  gcc/ada/link.c
! 90fcf5f48e02467a56b23d9b721abadb  gcc/ada/live.adb
! 6e2cd1d5c8e37677dfbaf599797a5731  gcc/ada/live.ads
! 1ad57fe336db0161dc254f7aace26a82  gcc/ada/local_restrict.adb
! 7825fb8657eda32559da6936561177be  gcc/ada/local_restrict.ads
! 246d6d1052f218822774949c055e6cd9  gcc/ada/locales.c
! 612d2f288b0e2b2eda45f8f30fa4489a  gcc/ada/make.adb
! 5aea75ed3f34d1efe78453b0cbae1029  gcc/ada/make.ads
! 73291579daf56215a7b0b2e0b1be96d8  gcc/ada/make_util.adb
! d7a172b3afb2438fa638d8984b9e40f7  gcc/ada/make_util.ads
! ff88a7fb20ba9dfd49bc710ca195a528  gcc/ada/makeusg.adb
! 6b8fb875f20778489cea07be80757c4d  gcc/ada/makeusg.ads
! 5164be4e2153c8516b3d763215a578e6  gcc/ada/mdll-fil.adb
! 28800cd1cc9b09894c04f19a0adf6132  gcc/ada/mdll-fil.ads
! 060bc69a188825f2def6f4ba1e2f7b41  gcc/ada/mdll-utl.adb
! 43e4f3e1f67af95dc45d1b127d4f4ca1  gcc/ada/mdll-utl.ads
! ca4b9fa8a24cbde0760c5170e4af3d28  gcc/ada/mdll.adb
! 44fbcf0461b391483e3c3f064e9e181b  gcc/ada/mdll.ads
! 4e87ddf1a974325dbd63d18ebd1ba331  gcc/ada/mingw32.h
! 93cb128d897e397c655fa4ba18b89ee7  gcc/ada/mkdir.c
! a65ee226511f7bb3f642182c0c3acd8d  gcc/ada/namet-sp.adb
! 511c8457784ee4d0dc05c9b40380abca  gcc/ada/namet-sp.ads
! 3ac86f9929fe5bfd09e61e5fcaf0da6d  gcc/ada/namet.adb
! f8ed25e218d92778d1f45f3768a9d04b  gcc/ada/namet.ads
! 45f0b224c482523abaecf688d7f527ba  gcc/ada/namet.h
! 115de7b010e83a0a32f4a31f5f5814bf  gcc/ada/nlists.adb
! 604c75ce93b28dc86ef1421c3465da5a  gcc/ada/nlists.ads
! 430f003722e4aa8afac11c03d5c8c4dc  gcc/ada/nlists.h
! 15a04ccda7d3326243591149bdd17e52  gcc/ada/opt.adb
! ed81550ac2f7528b4942f5895f20cbb4  gcc/ada/opt.ads
! 558c65e41018e0a40645062b78a76034  gcc/ada/osint-b.adb
! f0a80b76bb312add9427ae1e9d6df5fe  gcc/ada/osint-b.ads
! a2cc9685b22088859c5b05cdb45106fb  gcc/ada/osint-c.adb
! e5bbf9ee2f492bfda6f88683c095e9c1  gcc/ada/osint-c.ads
! b30ea1d6ad3521f2fd632b1c14919e25  gcc/ada/osint-l.adb
! 6f30732f4c0033f74dca01dfef3a6032  gcc/ada/osint-l.ads
! 2f4f6e0be9d0684388fefbb30f6c2d5b  gcc/ada/osint-m.adb
! 30f109124773df54162ee43866e0bd4a  gcc/ada/osint-m.ads
! eb0e99f7d4195655d16e3d1aed179a04  gcc/ada/osint.adb
! 0f229df84d63f9ab46e9ffb29f3389aa  gcc/ada/osint.ads
! 9be693c7904a2a483574feebfd22c975  gcc/ada/output.adb
! 0fe20dfe7ff6450b0523d5bd60fefc69  gcc/ada/output.ads
! abca320a952939d11da9392ed088afdf  gcc/ada/par-ch10.adb
! 58ec6770f17cde23f3832f3b33dd1a04  gcc/ada/par-ch11.adb
! 7395680f5977b331af5094d48273a391  gcc/ada/par-ch12.adb
! 6098c5c4fb488eee634dbfedb9ebc8b6  gcc/ada/par-ch13.adb
! 5f2212f0bf837728f4b285e9a1aba381  gcc/ada/par-ch2.adb
! c46b248f694ad5443494d5baf9735569  gcc/ada/par-ch3.adb
! 420177d3480ed6aa05b9d663f84e238b  gcc/ada/par-ch4.adb
! d1571d8abf6b6224a890d87b6b610829  gcc/ada/par-ch5.adb
! 163f049cc396e9d54339a1915018d484  gcc/ada/par-ch6.adb
! d56a0f5e4db05c450fc1388ecab31cf9  gcc/ada/par-ch7.adb
! af84882db3654e44318486b4e181caad  gcc/ada/par-ch8.adb
! d7b3f1f6ebf4ee544754316af04cdf85  gcc/ada/par-ch9.adb
! 68501d3e000e71895052bc64c3a45ae1  gcc/ada/par-endh.adb
! cdc5a3f00d02893db02a06dacbb6dc1f  gcc/ada/par-labl.adb
! b00911e51b4af33f8ba0222754c3e1db  gcc/ada/par-load.adb
! 8e71440eab23ccc8bda30699f31b69df  gcc/ada/par-prag.adb
! de488f4e4cf4a4a9d7a18b126fb4db64  gcc/ada/par-sync.adb
! ebbdf3731c159b9fe29de540e6f643d9  gcc/ada/par-tchk.adb
! 77fb52d2c0d30b5b067913ce44d60922  gcc/ada/par-util.adb
! a1cc2a987136edf0c9b0601b9ac03388  gcc/ada/par.adb
! 226e69d29f1c7bb51b76c30f9591b760  gcc/ada/par.ads
! 5c78b45f6f853eb1c89a6c594341dcae  gcc/ada/par_sco.adb
! 3ffef82b581bd09f0e9859d3f3e3a426  gcc/ada/par_sco.ads
! 2ac76b1cec15bf8a7052987f11973681  gcc/ada/pprint.adb
! 31908a9d956e2b94dd9947a4688d9687  gcc/ada/pprint.ads
! c3013ccb862d85e7127a1d4ce2d648aa  gcc/ada/prep.adb
! b094e420f43df27367e769453ccd5f23  gcc/ada/prep.ads
! 4f766332746124b76ef26a9e3d705e2f  gcc/ada/prepcomp.adb
! edc5c30af23ea6d7ebbac7f04dabd43b  gcc/ada/prepcomp.ads
! 0fdc4567257bd25fcb51cfd95cd63bb0  gcc/ada/put_scos.adb
! 64288342d9b62a789bc72c2bd6532571  gcc/ada/put_scos.ads
! 538cea7642e01e5d0cc81e5e276b18e9  gcc/ada/raise-gcc.c
! aacacabf5297becab78d9b540069e63b  gcc/ada/raise.c
! d350fdd4561c8aa6eae5cf8aa75f0a4c  gcc/ada/raise.h
! a1aee0ff70753d2aec4a8b8a7c4d9287  gcc/ada/repinfo-input.adb
! f8b0e08ffea6c8be056ce17592fca6d0  gcc/ada/repinfo-input.ads
! c2fede9a59705b4c1648763ad0c88001  gcc/ada/repinfo.adb
! 858bfe3040e88936263eb5b4c8a92565  gcc/ada/repinfo.ads
! d3f48b24bee1ebb67264130c4bd0bafd  gcc/ada/repinfo.h
! 182ecb32da5e9ddd8620bbf6ad7f0125  gcc/ada/restrict.adb
! 2398960d40b55b16a098cdc034a1915b  gcc/ada/restrict.ads
! 5823921d98d4d8693a49717bce055e83  gcc/ada/rident.ads
! 5cb854430ca251c93cce629f6043d97f  gcc/ada/rtfinal.c
! c074bc8838e7b2082e73a9c79a6c55cf  gcc/ada/rtinit.c
! 52e056d9744a234313c85f9307668b9e  gcc/ada/rtsfind.adb
! 8e8db7d0b4e100232784713ccfa149db  gcc/ada/rtsfind.ads
! e35cd26c1eee4337fb27200b11cc659b  gcc/ada/runtime.h
! d39e11cf20fd39416f0534578faa9e55  gcc/ada/s-oscons-tmplt.c
! c562819ea06cae3ae1729cd348b1ce68  gcc/ada/scans.adb
! 50fdd17de33f3b0c47ed1a003db426c9  gcc/ada/scans.ads
! 4514ab33e82a5d618b7c542299fe44ce  gcc/ada/scil_ll.adb
! 2303c1cccd860afa6bd90d37e274db2e  gcc/ada/scil_ll.ads
! 7f76fc2303fce2c0b7f87a5fb1bf200d  gcc/ada/scn.adb
! 6f736d9993cef6fecf91bc172497f97d  gcc/ada/scn.ads
! 6f83733b0edf1a67bc32968a86df9b25  gcc/ada/scng.adb
! ebb56cca277676baa2675ae9f1e59aca  gcc/ada/scng.ads
! abbd30169b131cbb9ff48b27f543d2d2  gcc/ada/scos.adb
! 70e9d2a24afcf5a685b84e9ec65911e9  gcc/ada/scos.ads
! 509da7078aeb4eb07ffbdd705caa07b1  gcc/ada/scos.h
! ab2c6f8d575dda78302fc8a90f0e58d2  gcc/ada/sdefault.ads
! 18bbadbd501e8cf2230bb502025dd0dc  gcc/ada/seh_init.c
! b933d50718bbf8c37af06c1cabbf8ad7  gcc/ada/sem.adb
! eb5b758ba3e85b8f175dc116b6db80fb  gcc/ada/sem.ads
! ea95f379311ce24cb1270c0f9fd6928e  gcc/ada/sem_aggr.adb
! 436d93842434a4c75c4c10d1c61ecff6  gcc/ada/sem_aggr.ads
! 32d9baf07ef34e059861e3dadfe14678  gcc/ada/sem_attr.adb
! 74003bfd4a4ddc226d22ff250b7311da  gcc/ada/sem_attr.ads
! 8c1e03cef41e17303ae7283fc83878c3  gcc/ada/sem_aux.adb
! 9e1f7aa41949f281c2a8571972eebd97  gcc/ada/sem_aux.ads
! 38951c5c3243d33c39310fa16cc62ff0  gcc/ada/sem_case.adb
! 4720d3b624b67eb8b0bd3ecf72e5036e  gcc/ada/sem_case.ads
! 20e1377be7c164bfe42091d5a2818b12  gcc/ada/sem_cat.adb
! b0afafbff8da051dd403a4a6f0a248ea  gcc/ada/sem_cat.ads
! 71641fe62a5d2820fe4a164acbbd3ab9  gcc/ada/sem_ch10.adb
! bf74f6e2c62b4e2464758bb57dc318f1  gcc/ada/sem_ch10.ads
! 674123905ccf9e89912ba95a9b85b587  gcc/ada/sem_ch11.adb
! a42d1434a6e8051360f7eac7ca8b8621  gcc/ada/sem_ch11.ads
! 9d3c3d7c68d17165313206e05fd13b76  gcc/ada/sem_ch12.adb
! 896f5b203b3fb877f57c4eaf1e9b3c4f  gcc/ada/sem_ch12.ads
! dbd738800bd8d52cac7c0cb6c761558c  gcc/ada/sem_ch13.adb
! d4c2fa9c2e05bd04b3cf5bb65c4bc03c  gcc/ada/sem_ch13.ads
! 2f9b939583011a4cabb6b7a882b61f05  gcc/ada/sem_ch2.adb
! 5d2d57f3675319ba7ce63149ee068264  gcc/ada/sem_ch2.ads
! 74593dfdf373a030889a6173a33fdd99  gcc/ada/sem_ch3.adb
! 9456f998cef130d8f6b828523b5b0232  gcc/ada/sem_ch3.ads
! 6e7ff17b0060274196cbb5251cc9cfb2  gcc/ada/sem_ch4.adb
! 20d172ce6087a2ed238c367af63048b1  gcc/ada/sem_ch4.ads
! b464fa4be903f61deb60ad3d11490581  gcc/ada/sem_ch5.adb
! ee04b8d2a5f54597eff4153a2887d540  gcc/ada/sem_ch5.ads
! f3daaab0e66b0932bd666509f95f410f  gcc/ada/sem_ch6.adb
! 66c8f90b976ab595888d71b7fd917bba  gcc/ada/sem_ch6.ads
! 35275b1571dc88b02116af60cb70334b  gcc/ada/sem_ch7.adb
! e781f781599b524e97c5353fba049e92  gcc/ada/sem_ch7.ads
! 7064ea5cc74129b36132f1f995864c6a  gcc/ada/sem_ch8.adb
! ab048777605cd1eaf9e72d7870a2f0b0  gcc/ada/sem_ch8.ads
! 38d790159e896fd5437c589bb527dae2  gcc/ada/sem_ch9.adb
! 5312c92c9cf432c51de28985511eabb4  gcc/ada/sem_ch9.ads
! ae5a773c940f7d18496faa6dea15ae3a  gcc/ada/sem_dim.adb
! a2d500c96e386078290596a7c11fc749  gcc/ada/sem_dim.ads
! aecb842d76fc399f8fc370849a9d9129  gcc/ada/sem_disp.adb
! fde7a59c931876f5221d8c088f4e9cb9  gcc/ada/sem_disp.ads
! 3ed683f4141f83ceb764aef056e360ac  gcc/ada/sem_dist.adb
! 744cc764c9e676171c6c9c2a7b7540e6  gcc/ada/sem_dist.ads
! a5f55e174ef43a753e3e9e06ea83a917  gcc/ada/sem_elab.adb
! 2b5599a6b9e36d4947b2cc6f89c3aa2c  gcc/ada/sem_elab.ads
! 456bc69903dc6e1c39ca009d24433f2f  gcc/ada/sem_elim.adb
! 75977e6ca2d3fa68e4c675ddb42ddcf2  gcc/ada/sem_elim.ads
! d8221b564e90118f68790a70a2c7feb2  gcc/ada/sem_eval.adb
! e077bff526d566aec76757e7eb1a47c0  gcc/ada/sem_eval.ads
! c41ea1eec3b0830963f79c14d063d22f  gcc/ada/sem_intr.adb
! 7215fb58282d8b5a58fb09973fa48d18  gcc/ada/sem_intr.ads
! 93d4c27ed8d2772294665e39fa6b8030  gcc/ada/sem_mech.adb
! 7f1041dd5ba5109f1e6025c630b63adb  gcc/ada/sem_mech.ads
! b3a39b8394fc84cd37d3e086c70d3b2c  gcc/ada/sem_prag.adb
! 63a8f08f2cccf6ee8accd90898431e27  gcc/ada/sem_prag.ads
! a0a4a3ac03b577e670e1c99c5792b906  gcc/ada/sem_res.adb
! eaeb267a8aaf6d54e425b8635c939aa7  gcc/ada/sem_res.ads
! ca7ac9d028d99b2476761193d5918cd2  gcc/ada/sem_scil.adb
! b50105a263aa360fa58f319f08d1922f  gcc/ada/sem_scil.ads
! 0ad5427163863a084e7411c4ab9cc101  gcc/ada/sem_smem.adb
! 6bd2e8a94974ceb68c08e6cef142a5fa  gcc/ada/sem_smem.ads
! 5af54a2100cad73c62a267d810281d3e  gcc/ada/sem_type.adb
! d180f59c47af065a756026f4f995b1dc  gcc/ada/sem_type.ads
! feb52b7d497566740289a7b7a481c494  gcc/ada/sem_util.adb
! 95a3065eb6e04722002d4e0b4bde7609  gcc/ada/sem_util.ads
! 3f55d31239fefc17fdada4ce21ad9679  gcc/ada/sem_warn.adb
! 7d6381ce19ef054f4895df3d06c95bb4  gcc/ada/sem_warn.ads
! 262f60ec5a29ea60af0ecaf4851b7943  gcc/ada/set_targ.adb
! 5ca509de6a4c9a7ac1f6f37309371636  gcc/ada/set_targ.ads
! 1f49a33243899597b1638905b149ddd3  gcc/ada/sfn_scan.adb
! 0f3287f65517ef02e0b47a1e4a82b7ec  gcc/ada/sfn_scan.ads
! 2de74b75aef3cd87a0b6750214a5be5d  gcc/ada/sigtramp-arm-qnx.c
! 8c5df3e79e3ecb684c754766740746ad  gcc/ada/sigtramp-armdroid.c
! dc0dac8acebb5c549fa75a38bd6fbed6  gcc/ada/sigtramp-ios.c
! 8ab2738d49a9b1e379c86de0f6f96cd6  gcc/ada/sigtramp-qnx.c
! 6b53dc0c0c0d3fb544c513dd483d8908  gcc/ada/sigtramp-vxworks-target.h
! 4069522bc0de3158049288368c435ac0  gcc/ada/sigtramp-vxworks.c
! 1acdada36142455bc4f7a3c04b6ba7f6  gcc/ada/sigtramp.h
! 357ee6a49e294c28d4c0fb9aab0b1360  gcc/ada/sinfo-cn.adb
! af6cc4483addbe54d0f3e4f48107ca60  gcc/ada/sinfo-cn.ads
! 847df08e76f8b5dc9516661cd4ed4c64  gcc/ada/sinfo-utils.adb
! 9c572abcf318e9ee814951f36e11a7b0  gcc/ada/sinfo-utils.ads
! 24eda3a2b462b6d8be755512f15543a6  gcc/ada/sinfo.adb
! 24c97835c6a30eb254594c357858947e  gcc/ada/sinfo.ads
! 89d4b31e9e77b9aaad3b086b07a1a257  gcc/ada/sinput-c.adb
! bea97b1a20e52ddd1b3529e0baaebfd4  gcc/ada/sinput-c.ads
! 63764e9118acff5fc4275999a1c0c42b  gcc/ada/sinput-d.adb
! a30ab55fb465c5c7b7fe163f196b8ed4  gcc/ada/sinput-d.ads
! aa8093a41356c7e8343fc93dcdd4723d  gcc/ada/sinput-l.adb
! 37a11f7c32c8bfe46d081330d5927ad5  gcc/ada/sinput-l.ads
! e6c1df9591faaeda9711b0e0bcbd6528  gcc/ada/sinput.adb
! f8794acd86a547fb8df9dd38e68520d2  gcc/ada/sinput.ads
! 6698f2b6b4390b28cec8afbb41ce9015  gcc/ada/snames.adb-tmpl
! d0b360a10865fafdf21558c8a5cafcb2  gcc/ada/snames.ads-tmpl
! b5bad059d1da34b0f6f1f8e3b605f212  gcc/ada/snames.h-tmpl
! 6f8e5dd905cb1dc32e8fe8c2ba02b10b  gcc/ada/socket.c
! 7c064967bea7b065cda88b2461e1e1cc  gcc/ada/spark_xrefs.adb
! d1d6bffcec49964ce0916e3edc0abb93  gcc/ada/spark_xrefs.ads
! 33654dadd3145b3f49f2f55bb823eab9  gcc/ada/sprint.adb
! e97d3fe4c68164e1378a4a7ef0556a91  gcc/ada/sprint.ads
! 563666dffddb25e1e9a39ac26d46c6e5  gcc/ada/stand.ads
  92510faaca8c15e63e6f22f0b28dbe5f  gcc/ada/standard.ads.h
! 60bc24e30597d482c5161201dcce5182  gcc/ada/stringt.adb
! 763b59c518ddc20da23f0db9ac644149  gcc/ada/stringt.ads
! 09f1b602d82e65c958e0d863fa7cc248  gcc/ada/stringt.h
! 0c97ca46d34d197ba5275a26c4143d46  gcc/ada/strub.adb
! 1c5166edb33673d2ad3708893500eb7c  gcc/ada/strub.ads
! c2bc29385ca1e13a74bdf229ef9cee02  gcc/ada/style.adb
! dccc07f68f909c0e3e59dd132cc17c28  gcc/ada/style.ads
! 953fe6802776d15f68246a3e7c368183  gcc/ada/styleg.adb
! b1ae9e8ffb868110d871cbfca62ff626  gcc/ada/styleg.ads
! a23a94350c8a71f6d9a194bcaa11b961  gcc/ada/stylesw.adb
! 6582aa8b4c06c4ff5940586b82c58482  gcc/ada/stylesw.ads
! a26c6b2c5e4919f8a09fd14740bd696d  gcc/ada/switch-b.adb
! 52aac3ff522ac27564df93514a8d56c2  gcc/ada/switch-b.ads
! 52384b31cf27cb0fac4fda3fba4c2452  gcc/ada/switch-c.adb
! 1a48c7c46e2e6efe503141258b0caac5  gcc/ada/switch-c.ads
! ea1f4fe2e6eaf09268225fa0bb6c0401  gcc/ada/switch-m.adb
! 791b3fa8b385ccda2cf34ef5261af30b  gcc/ada/switch-m.ads
! 2da77f57913d013e2e8b6f315d9bfe91  gcc/ada/switch.adb
! ac5a65704704be77054c89e98fd818b2  gcc/ada/switch.ads
! 912cf41fc9aa449d5ffd33633d19ece7  gcc/ada/sysdep.c
! 964921c1e3531864be36dd4215e7adcb  gcc/ada/table.adb
! 08ceff060ae2c143056936a6b597b92d  gcc/ada/table.ads
! ee14b71704ac79e4345e938b8c168138  gcc/ada/targext.c
! 6cb6e19ddfce93277f7484eaa3ed1e78  gcc/ada/targparm.adb
! 2afbdc1e9f2f31fd907d9518292460c1  gcc/ada/targparm.ads
! 8d619bd7edf18c4a84215d57a77ec7bd  gcc/ada/tbuild.adb
! 26c4d2fb1d0c8b8b84501d3725677f88  gcc/ada/tbuild.ads
! 6e88a2d493326110b7f11802191c80b6  gcc/ada/tempdir.adb
! aac9c9a412725a2305c22fb7867c91ca  gcc/ada/tempdir.ads
! bd818811cd13f60b13b58c4428753070  gcc/ada/terminals.c
! a2e113ceda698cfc47186fa8596aaff8  gcc/ada/tracebak.c
! 86cad840cf859116c5202a3b2e5ee763  gcc/ada/treepr.adb
! 3f7bbb2e3e809100bf61162f1d6a91d4  gcc/ada/treepr.ads
! c00c36893869900968d1ee24a43d6f72  gcc/ada/ttypes.ads
! 624d43c6d31ab09d3178e343e834df92  gcc/ada/types.adb
! 723311bbb78c76a11f7ab20ff527e515  gcc/ada/types.ads
! f9289de53beb73e943f48f0b94d5f2c5  gcc/ada/types.h
! 5e48114658514ef58786fbc0b33964e6  gcc/ada/uintp.adb
! 23fe9a37b63d8a23fcd76f846bd88993  gcc/ada/uintp.ads
! c08e43ceb1c41862d6058d4df0273b5c  gcc/ada/uintp.h
! 60f7383b064453647049e948e0f28330  gcc/ada/uname.adb
! 04e5ed56dcb8dda7f7101c3db5011a57  gcc/ada/uname.ads
! 52abe5731a17ee3ceef15a822e3fdbed  gcc/ada/urealp.adb
! 65705a906f311a560aef93e30981176a  gcc/ada/urealp.ads
! ba57a6a74f16f6540d118d7329f45688  gcc/ada/urealp.h
! 52d03b138f69aff94bce1158558e3694  gcc/ada/usage.adb
! 526f6b8d527494de0a67edaf5d4844ff  gcc/ada/usage.ads
! 9a5c62835667bee09f2f0a44e9cdc395  gcc/ada/validsw.adb
! 505ed1766609d5569dbf894427bf7bb4  gcc/ada/validsw.ads
! f8003e1367912f27d68d015ed53079c4  gcc/ada/vast.adb
! b6d5afd8584b4c7f9b8e17878f13c29b  gcc/ada/vast.ads
  107a84185fe50c348afd3b9e76042a6e  gcc/ada/version.c
! bc61e4b213a5ee91596d41b17c702a80  gcc/ada/vx_stack_info.c
  230f0a2f69b8ad56cc0d730f9fe0964b  gcc/ada/vxworks-ppc-link.spec
  745188949cd7ff6df266579735782385  gcc/ada/vxworks-smp-ppc-link.spec
  cf24e76097812a932a26f6600d193208  gcc/ada/vxworks-x86-link.spec
! 66b0eadebdc650ff1e13c4a6b570ef83  gcc/ada/warnsw.adb
! 976b2a80f9c94479381af6e098e020e9  gcc/ada/warnsw.ads
! 9e445b5cf3911f008fc08dab4f17bb81  gcc/ada/widechar.adb
! 8a7ac9c7cdf198d59927b6eadfcbf239  gcc/ada/widechar.ads
! 00631d28189ca185f7c5dd51fba2f021  gcc/ada/xoscons.adb
! 4fd4e3a53700cf179d01e9962ce24416  gcc/ada/xsnamest.adb
! d833b4b6e2dc4e170cf059f5286d55d8  gcc/ada/xutil.adb
! 24eade18dfea4858d18e0befd8b97a7e  gcc/ada/xutil.ads
! 6b61c248d8d365e41e3056a6b692cc1d  gcc/addresses.h
! 85955146c0cd00b4541afc4076fa17b9  gcc/adjust-alignment.cc
! d26f49a857a199a0971344812eeb04c3  gcc/alias.cc
! 0f4702138fd7573d96ae2c8135b41255  gcc/alias.h
! 1cd09d1b18b5ce7d249387ae22ccfaec  gcc/align.h
! 1810c60b7a3a20ff5222ab395bfcb9b8  gcc/alloc-pool.cc
! 70fcb458fbb566795a112c1c4acc6ba3  gcc/alloc-pool.h
! dfcdc44ad3cc555c7a03f742363ccefa  gcc/analyzer/ChangeLog
! f32738e01d875553db98649ee922ac89  gcc/analyzer/access-diagram.cc
! 288c2e0f18804938ea90737b356795a7  gcc/analyzer/access-diagram.h
! a805619319bbeaf2dfb10570535cc2cf  gcc/analyzer/analysis-plan.cc
! 95534a0d894b4cb68912cc87b7259d28  gcc/analyzer/analysis-plan.h
! 5e452199a8a9c12441a8b4035f53bf41  gcc/analyzer/analyzer-language.cc
! 0a08125de0192ae88eed91f3f75ad8da  gcc/analyzer/analyzer-language.h
! 48e354c9a8f47e1310b04f8f572e82ba  gcc/analyzer/analyzer-logging.cc
! f3d975d9255dfd2642c6fca9603e0f41  gcc/analyzer/analyzer-logging.h
! 4c15ed616eeea02278f3a64eb4bd7a1b  gcc/analyzer/analyzer-pass.cc
! e40bb56e1f69fff7a872df6cea3234ef  gcc/analyzer/analyzer-selftests.cc
! ff08ad6f0b1d9b2e324393af34bfbeec  gcc/analyzer/analyzer-selftests.h
! 5d71ea8ed35f3a4bda8b2c71b159a041  gcc/analyzer/analyzer.cc
! fa750038ac187e5120635a63a535416d  gcc/analyzer/analyzer.h
! cd79961c884548eed0e3e332dde9a943  gcc/analyzer/analyzer.opt
! d1d87fdb2580cd512896acb3d9c8c81a  gcc/analyzer/analyzer.opt.urls
! 283299878a52060b17bf342182984416  gcc/analyzer/bar-chart.cc
! 86d9b2a4e6c8767139221650be3cb7ca  gcc/analyzer/bar-chart.h
! f9976dcd29fbbaccef05f6f324384ce4  gcc/analyzer/bounds-checking.cc
! 229506304a39be61916e3de7fd9fc56c  gcc/analyzer/call-details.cc
! 915249cb2f4702a1bee3a2e610a7d99b  gcc/analyzer/call-details.h
! daaf1cc6f6e9279eddb88c9f0651b865  gcc/analyzer/call-info.cc
! f0e5546fbc2e4c5b971944c642d82296  gcc/analyzer/call-info.h
! d996280ab27dab3779f8774907587f3c  gcc/analyzer/call-string.cc
! 4c0152fd4f54ad3a3f4213ea01d8c6ab  gcc/analyzer/call-string.h
! 93c3d59362cf5d06b307893bc9493769  gcc/analyzer/call-summary.cc
! 801d7f3b2433d9aaa117946dd795bcc6  gcc/analyzer/call-summary.h
! 4537d379295b618fc49e66942f386267  gcc/analyzer/checker-event.cc
! b35b14bf4d9b4cb7b91976b387f43996  gcc/analyzer/checker-event.h
! ee8e3f1d9688fc2e035cf55a0507d118  gcc/analyzer/checker-path.cc
! 2e9bdcbd3bd9e03dad1b227eb5e2371a  gcc/analyzer/checker-path.h
! 835d7b61cb9e2a4c7c6c3fd494f5afc7  gcc/analyzer/complexity.cc
! 32167da278bee413f6997f0c75a85d0b  gcc/analyzer/complexity.h
! 2782b0bb760024a8326a01d2db2b4e83  gcc/analyzer/constraint-manager.cc
! 239ef0d7ef112a2d6c211b47e1c8a0bc  gcc/analyzer/constraint-manager.h
! e29ad813a6823c34ecb968a5b0200699  gcc/analyzer/diagnostic-manager.cc
! 25872feb2982723b6147a15cc2a84ab5  gcc/analyzer/diagnostic-manager.h
! bd2657c18f21942fd1b0be40ad5abe0d  gcc/analyzer/engine.cc
! b48307a7f8ee077e6922aeb7f29d6618  gcc/analyzer/engine.h
! 6b2c1b2f68882278b99b3f91493381cb  gcc/analyzer/exploded-graph.h
! 47d7bb040420d5e3a55bbd7943fff334  gcc/analyzer/feasible-graph.cc
! b5c7602d60f1cd64d1f1d8827158244e  gcc/analyzer/feasible-graph.h
! ea0808521c1a2bb5156369a90b5a6df0  gcc/analyzer/function-set.cc
! db323743e490fc7dd8d8fdb3986f1545  gcc/analyzer/function-set.h
! 6d00b80653085d2f8ff6082d9928c837  gcc/analyzer/infinite-loop.cc
! 3871374d13405e9baa3bf98f66e3a59e  gcc/analyzer/infinite-recursion.cc
! 68ce3e0366fdefd98d9d3cefc83a2d67  gcc/analyzer/inlining-iterator.h
! 6362d54873dfb84284862eddd2149e63  gcc/analyzer/kf-analyzer.cc
! c2dec447021e97891a647eb424018425  gcc/analyzer/kf-lang-cp.cc
! 3e899a0fb5d1905520a616d838ef7327  gcc/analyzer/kf.cc
! 11c16b90e204cbbe7ed3b307c1ac8bf6  gcc/analyzer/known-function-manager.cc
! 1b816e367a768da158950a04cb810bfe  gcc/analyzer/known-function-manager.h
! efa0614f169859c88233e35d4f69e1ea  gcc/analyzer/pending-diagnostic.cc
! cd26ab549ca5ce0a0d93add15fa5fe3d  gcc/analyzer/pending-diagnostic.h
! fe9240e02627da9f1a04f9502b0e101b  gcc/analyzer/program-point.cc
! cf615a93a70e20a3941aaec49d49759d  gcc/analyzer/program-point.h
! 2c3122f7468c85c611c5e92faac4026b  gcc/analyzer/program-state.cc
! 8eccdda5221eb2c8060fe26b0766406a  gcc/analyzer/program-state.h
! 4ffa1b7beefce83299207e70016dfb6f  gcc/analyzer/ranges.cc
! 01c4232699659fd10c321a18ad3bff59  gcc/analyzer/ranges.h
! 03afd945198d4f3f19ce9795c6f4fee9  gcc/analyzer/reachability.h
! 18c4ec5bc768f8d1d87b72a4f4fbe2e4  gcc/analyzer/record-layout.cc
! 14d1b30459774b2c63d91f32a893060d  gcc/analyzer/record-layout.h
! 0aace5709168c543c067e5edcb492878  gcc/analyzer/region-model-asm.cc
! f75532205fa7230f130697e81a4dff6c  gcc/analyzer/region-model-manager.cc
! f727ef6be896fd67165abff1e4c1fc2c  gcc/analyzer/region-model-manager.h
! bd87a2d3a0d61848e578981800e0c24b  gcc/analyzer/region-model-reachability.cc
! ef7ebd6ad0885a5b058756207c2b7c5b  gcc/analyzer/region-model-reachability.h
! bf5a20b6a6249fa9c253572f136a1369  gcc/analyzer/region-model.cc
! 41358a7aae8300539b38bfec294a330b  gcc/analyzer/region-model.h
! 9433dc50b9155dc95ba644291a5122e8  gcc/analyzer/region.cc
! 096796a6ae75267be13c6b646f32fcc7  gcc/analyzer/region.h
! 24a3a1add85c5e316ee6ced613434bce  gcc/analyzer/sm-fd.cc
! 65d0a032934c712a435b7a6bf8f9a59b  gcc/analyzer/sm-fd.dot
! 51955b525626326884c99320457ac55b  gcc/analyzer/sm-file.cc
! 8f75d262878cf57871150d90d72f6099  gcc/analyzer/sm-file.dot
! 2dfcd24a506b93151598474ddfd641d8  gcc/analyzer/sm-malloc.cc
! d414f1d665b7d4356f4c03cd703ee68c  gcc/analyzer/sm-malloc.dot
! 531ce133e3fb2c55671e8ce56da45b7f  gcc/analyzer/sm-pattern-test.cc
! 675d1a6406af078435c07dc0fc8edb5b  gcc/analyzer/sm-sensitive.cc
! 0926349aeb99a7ceefd8b4ee25726457  gcc/analyzer/sm-signal.cc
! 4a979609c63d46506c89c1720f008a9d  gcc/analyzer/sm-taint.cc
! 1289fc8ef9380a243283e2187687dea4  gcc/analyzer/sm.cc
! 557f443a4d1c5aebea0d56322f9a0be9  gcc/analyzer/sm.h
! de07f4cd6759d9ec41ecc33ca1755b38  gcc/analyzer/state-purge.cc
! 8ee0ba14e2a0bb48d147f454f6a7d75b  gcc/analyzer/state-purge.h
! 2063ae9cbedb9570cf91fd3356a445e9  gcc/analyzer/store.cc
! aeac4d272dfb537e2577365aafe8e3a8  gcc/analyzer/store.h
! 6426072b1e97e6646a95bb59c2aa8674  gcc/analyzer/supergraph.cc
! 9adbfdb5ef8595b77e1384e532179872  gcc/analyzer/supergraph.h
! f7dfcf9b1e61b61dd9cf56eca3d5fbc9  gcc/analyzer/svalue.cc
! 91b3771ecdd665f06966cdcfeec4b4e5  gcc/analyzer/svalue.h
! 65ca462b9bb3299b4d0b36f4b20f1130  gcc/analyzer/symbol.cc
! 8390f0f30268a84527a18feed21688ac  gcc/analyzer/symbol.h
! a913bc3600436582a60c6f755a606ab1  gcc/analyzer/trimmed-graph.cc
! ad007817aa7619a468ed1170813b6db5  gcc/analyzer/trimmed-graph.h
! 905adf1d4cf246bc964c3b038b8a8d6b  gcc/analyzer/varargs.cc
! 733d03ce2ca95a5f394a941608eceacd  gcc/analyzer/varargs.dot
! a5d1710bd0815aedfadf000a59e4e6e8  gcc/array-traits.h
! 7907f80d14fdbb34fc467c2e99f22eba  gcc/asan.cc
! 5cd39cb21293297fd59456f58fd96a63  gcc/asan.h
! 41363d1e7b0909805289fb8a9fa0d421  gcc/attr-fnspec.h
! b9d414d284ccd081f33920ca29f22415  gcc/attribs.cc
! 79fd01c71c9f826c48749a8da876a19f  gcc/attribs.h
! 43aeaa85371b2122d367cdcc7423618d  gcc/auto-inc-dec.cc
! f17ad6a26474d713f8dd17227a30b5b6  gcc/auto-profile.cc
! 519e98c7d5f08eb7388a1580a08ae9ab  gcc/auto-profile.h
! bbcab7e8a779ac71728f53d5deff751c  gcc/backend.h
! f9233c93df43568e7a9582ca3f60f2a5  gcc/basic-block.h
! c7a232d1787a10a989a2a7304616599b  gcc/bb-reorder.cc
! 7bb0b61ab8dab1168e74a22c3a1afab3  gcc/bb-reorder.h
! fdca8fc9a6bbdade1a8aeceee3e00285  gcc/bitmap.cc
! 613a79d403e4a06917c0b556080be284  gcc/bitmap.h
! 46dfb234fa66d9bd9a5e085b662b7c5a  gcc/btfout.cc
! bceab672982ecb211cc6c6ed241b9758  gcc/builtin-attrs.def
! fb5f673cea6166ff90878e05bfa7dfe0  gcc/builtin-types.def
! 6e5ce9aa0d9ced0a96939eea5c377370  gcc/builtins.cc
! 7bc731b65a1287130883ea830f32b347  gcc/builtins.def
! 7fad42491d4a625f93bf21a7e2fb37de  gcc/builtins.h
! df468c4c946f7dfcb9b2ab68b340f8e7  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
! c2468814ee664c882341ab588b896b74  gcc/c-family/c-ada-spec.cc
! ba22e0144578c7dbcaa1887e6fd6046c  gcc/c-family/c-ada-spec.h
! d8e1cd0b904797f173e2493caaa19e03  gcc/c-family/c-attribs.cc
! 5f9ede4ceb2488d7ed89581e2e47c8ac  gcc/c-family/c-common.cc
! dcb799a087d0efa961cbccffce4da284  gcc/c-family/c-common.def
! cf7bc96576dd64bbba1e34932aae4320  gcc/c-family/c-common.h
! 3c8c4815be38d874230cadae236be6ce  gcc/c-family/c-cppbuiltin.cc
! 3c51c8a1bf9841ca850a743c9335be7b  gcc/c-family/c-dump.cc
! ed5e4fdaaa3c0c77618731dc0294dbc4  gcc/c-family/c-format.cc
! 4b9c119ce2a0502632ac9f26fe560055  gcc/c-family/c-format.h
! c00ae110f52b414bb327d33bbdd16caa  gcc/c-family/c-gimplify.cc
! a6e23bc5770570ef1db57c75a2b60194  gcc/c-family/c-indentation.cc
! b6f81fd23a6e9c02b80c995f6f92273a  gcc/c-family/c-indentation.h
! 0bc0e96f91611812a0952337bf4c84e7  gcc/c-family/c-lex.cc
! 5ad374072abfc69eec01e0eaaf5c8a77  gcc/c-family/c-objc.h
! 40d12c93ad6d8953e9c812bd9d5ee94c  gcc/c-family/c-omp.cc
! 2a0bdde8b7279db3d3cc2d5843550a5f  gcc/c-family/c-opts.cc
! 0c3c1d36726374f6e5d955fcb4a18a22  gcc/c-family/c-pch.cc
! 0a8959f2536c34a416a77725bcb2af8d  gcc/c-family/c-ppoutput.cc
! 138a619426b26612ba81771556e6958a  gcc/c-family/c-pragma.cc
! eac62bcb56a8ffff45406e9a3475e55a  gcc/c-family/c-pragma.h
! c8bac086b88107bf3f21dbb60036c94d  gcc/c-family/c-pretty-print.cc
! f9af750631f00a2c34617ccfc8f197f7  gcc/c-family/c-pretty-print.h
! b09d9d6aee1af92f8929b0c5b6995d7b  gcc/c-family/c-semantics.cc
! 57ee6735011a3ab79761f06f397f67ac  gcc/c-family/c-spellcheck.cc
! 5ba378263787692abb26c78fca9dfcc4  gcc/c-family/c-spellcheck.h
! 2457327527de3def5270e6006c2a32d8  gcc/c-family/c-target-def.h
! 085724efec485fdc227d010c8a971176  gcc/c-family/c-target.def
! 20902ff635a8cf1f9e1d09ed5b2cf670  gcc/c-family/c-target.h
! bcdb4469cbe287703b77ab4cf0d78130  gcc/c-family/c-ubsan.cc
! b3ac1850d65a4a98a5f313d9b56a64a9  gcc/c-family/c-ubsan.h
! 22d6f917b68bae0d953f95ac8b537b0c  gcc/c-family/c-warn.cc
! 69049abc9c87a858c76568b843343145  gcc/c-family/c.opt
! 355fc1eed07ec7c32004de75f7931388  gcc/c-family/c.opt.urls
! 673747e9584b022b8413ed211371a1e6  gcc/c-family/cppspec.cc
! 0e0782ccf52413acf84a7e60e2a27dc7  gcc/c-family/known-headers.cc
! 083198bbb0e08402af9e32302cfb13f4  gcc/c-family/known-headers.h
! 889dd6dda61d7bfa71bdc10ce6b98b06  gcc/c-family/name-hint.h
! 65a88820b5866ee19cd29ed45ef95c5c  gcc/c-family/stub-objc.cc
! f8af1d8c2811855f4b83b34a7625e47d  gcc/c/ChangeLog
! fb28ab1a3ac7e093beffa6875b5b921b  gcc/c/Make-lang.in
! 6c28a645fc3125bc8a52d498324306de  gcc/c/c-aux-info.cc
! 22456b24e2c3a46534e7f1e7516dae5f  gcc/c/c-convert.cc
! ff41d9d7b9ad36fe50f0114622fc81d3  gcc/c/c-decl.cc
! d5abc77cf8004e86fb7798f7912b35da  gcc/c/c-errors.cc
! 3408879c9715f96eff9f06865f32349d  gcc/c/c-fold.cc
! 7e4a9e386e03d8359d4acd839dac46fe  gcc/c/c-lang.cc
! b9bf011e452a601e725ffcb30945779c  gcc/c/c-lang.h
! eab11ca7ce18dcc502177ae41cb79387  gcc/c/c-objc-common.cc
! 635c9f49a64ec06b9d726610e6c1b737  gcc/c/c-objc-common.h
! 9c36351cd4669d740c7b4c9f5184888e  gcc/c/c-parser.cc
! 53d5e1e1caa35af2eebf2cc719526fbb  gcc/c/c-parser.h
! ded332de6b113723402269d9adc62136  gcc/c/c-tree.def
! 095efc96d64b8cb2004e84a20f34b0b5  gcc/c/c-tree.h
! 90af8d5ced78ec06064b53c09fa73239  gcc/c/c-typeck.cc
! d0fea54f92cd003f0df6829625314382  gcc/c/config-lang.in
! 29eb0d8b8058ee0c5e7298d3a5a59533  gcc/c/gccspec.cc
! a958b0df2e8852f212af8cf1f793458d  gcc/c/gimple-parser.cc
! 6bcb5ae7ab7f258bd72374da5c85d4ec  gcc/c/gimple-parser.h
! 29212331211477edd46752433ab7d99a  gcc/caller-save.cc
! 786b464eec53dfb78a594916d55beb5a  gcc/calls.cc
! a8816fe40a8499b10062d1940c93b1a9  gcc/calls.h
! 40e220efca37063e9233d3b252dc0daf  gcc/ccmp.cc
! 5bb15c682a088eb8bd641f287acf2c0d  gcc/ccmp.h
! eb10d55eb677cbf88b54b2d97b8f47af  gcc/cfg-flags.def
! d19411e199861a7fc21c15cebcea3078  gcc/cfg.cc
! be68b92865e5332668cf28137b17ffd6  gcc/cfg.h
! f1dd9f1e7ed0fc3ac58021d0ad6463d4  gcc/cfganal.cc
! 2f7d35d9c3142f9c21560ce780ffea54  gcc/cfganal.h
! 8204f7b1147509e33beb341a24d11541  gcc/cfgbuild.cc
! 77b93f18c80b59bdd503ef437d9dcb07  gcc/cfgbuild.h
! a32902aba7ecfc0e993a63acb83b85fa  gcc/cfgcleanup.cc
! adc4224754a28694047a40d09b2406d9  gcc/cfgcleanup.h
! 2c5d37fc9892b259ede336523fb6437d  gcc/cfgexpand.cc
! 0c5481b392d18841208d50dbc003d34c  gcc/cfgexpand.h
! 07458bdd829e0db278bfd80486dc882e  gcc/cfghooks.cc
! 8b8be944d5a2bf93159ccbc273ecc32c  gcc/cfghooks.h
! 0376e5574321c5be3288f74546c2ec9e  gcc/cfgloop.cc
! d2e2dbc63c0154344dea94259ba7515b  gcc/cfgloop.h
! 749499045fcab71473fa7045412d9fec  gcc/cfgloopanal.cc
! 469ed8437e5347547dcc428662491ec7  gcc/cfgloopmanip.cc
! 85d2f4cd89ca64ed13cf1784d099c7ef  gcc/cfgloopmanip.h
! 55ff3fae3774d7d1f4cf793cdc85d36a  gcc/cfgrtl.cc
! 621be2da689efc912f68e163b182acac  gcc/cfgrtl.h
! 2e2ccc28bed3b3e6051ef6575bd5579d  gcc/cgraph.cc
! 18fbe7f9e2b6016552d7ceefd5509ed3  gcc/cgraph.h
! 48d1e1b2c184a043a04232867cbbf4ee  gcc/cgraphbuild.cc
! 4ded5c271370d02b3168ab314ecab5d5  gcc/cgraphclones.cc
! 07ff6a5a4ebc4ee6b81980d65ee65753  gcc/cgraphunit.cc
! aa88558fe6b5f9d16955067b2e0ff1cf  gcc/cif-code.def
! cbd6d8995cfcad18b2f5ae1153282276  gcc/collect-utils.cc
! 5cecb6d65182a6d779f5febcf38866b9  gcc/collect-utils.h
! 39a72e420637d8d62a4a761322b6a7f4  gcc/collect2-aix.cc
! 507dcc356bc65d05654d8a5db5ec144a  gcc/collect2-aix.h
! 2c78af750587fc72be6584523102416f  gcc/collect2.cc
! 607393ed0e257b432264a6620e2a13f1  gcc/collect2.h
! e2a09d84946e20cd6e720937153c454d  gcc/color-macros.h
! b2acfb49d4e75a712a34942113c2d747  gcc/combine-stack-adj.cc
! 5146fcb700e7a0b4107e44ddf4e99ed2  gcc/combine.cc
! cc2f48cb176b5b4703617fb5dfc1acf0  gcc/common.md
! 322473405a30de3627ba85a314faac7d  gcc/common.opt
! 6b452769b5c1240c33daf177e1f3f847  gcc/common.opt.urls
! 65e16747e708ca6a8032646b6bad3107  gcc/common/common-target-def.h
! 494328918548fa6ae675531a47549c3a  gcc/common/common-target.def
! ae83dd37dcce485207f254b6f7f0c1fe  gcc/common/common-target.h
! b1cd121f9b00e063422852ab43d70561  gcc/common/common-targhooks.cc
! cebc8417b8323a81b2fe2ced1006a713  gcc/common/common-targhooks.h
! e001b81d6c5692e6af812c4fce2bf76a  gcc/common/config/aarch64/aarch64-common.cc
! 9615465ef814a79394ab64522b68f5d5  gcc/common/config/aarch64/cpuinfo.h
! 06619ee1718f18e3f29b4d07cb640b2c  gcc/common/config/alpha/alpha-common.cc
! a8c00733608fe1011f08dac2c20a9a1a  gcc/common/config/arc/arc-common.cc
! 1f03e90667938ec56879a963c84fbe92  gcc/common/config/arm/arm-common.cc
! 38421b8fbe371e0bf572fb4d3ec9e7fe  gcc/common/config/avr/avr-common.cc
! 53b34db3ddff4a58abaad22147861801  gcc/common/config/bfin/bfin-common.cc
! ba829c2da1bd58a1a225c367d208474f  gcc/common/config/bpf/bpf-common.cc
! 7e9ee0784a0b7530b09942de3a602e35  gcc/common/config/c6x/c6x-common.cc
! 4b9ab900c9ca4e56f2807a182cf92d48  gcc/common/config/cris/cris-common.cc
! 4f362bc28fba524d85349201a3f43131  gcc/common/config/csky/csky-common.cc
! 1d87b24a15844af422d8032db863548d  gcc/common/config/default-common.cc
! 43e0c81742ad54fbd9290104a72381e1  gcc/common/config/epiphany/epiphany-common.cc
! d51cfdf0046d5f452684fcd4dbb9147d  gcc/common/config/fr30/fr30-common.cc
! 6efbfba6474eda7d8b7b7eb92ba07f9f  gcc/common/config/frv/frv-common.cc
! 06360737e5a8b8b38d12809118809aba  gcc/common/config/gcn/gcn-common.cc
! 7e6c95ae5a1fde71887205a61f27297f  gcc/common/config/h8300/h8300-common.cc
! ef2b89f4d14681f5ab5c39054de3634f  gcc/common/config/i386/cpuinfo.h
! f83bf6f5676e454698eedddc6be89f21  gcc/common/config/i386/i386-common.cc
! 802b0ff4e623d04e24dbc62fbdeb1b4f  gcc/common/config/i386/i386-cpuinfo.h
! f5e4b67d3ce522bc0e4be4f586cb4bbd  gcc/common/config/i386/i386-isas.h
! d44a9adc80069a247d14748ba6ca6888  gcc/common/config/ia64/ia64-common.cc
! 2303ddb3efa879de69e9bd6346b75f18  gcc/common/config/iq2000/iq2000-common.cc
! 0b763742ec618db211d103bca2282744  gcc/common/config/lm32/lm32-common.cc
! 592e1c8cb1d212d5a0def93636593aa5  gcc/common/config/loongarch/loongarch-common.cc
! efc146dc586b830b96a99d4f64f32816  gcc/common/config/m32r/m32r-common.cc
! 570a53efbd4e2d15c78e660e888794ce  gcc/common/config/m68k/m68k-common.cc
! b68d66788869e187193b27a55fd0c8d6  gcc/common/config/mcore/mcore-common.cc
! 0bc7e19296232ad76bb60a791f8d8f3e  gcc/common/config/microblaze/microblaze-common.cc
! 5a3d430cfb4478e5b9192a664ed75f98  gcc/common/config/mips/mips-common.cc
! ef5115c89961cb6ae261c353419849d8  gcc/common/config/mmix/mmix-common.cc
! e9aedad082f5b81eb70dbf4eb5cba4b2  gcc/common/config/mn10300/mn10300-common.cc
! 5ee926f32edee28356a51755c8fe4bbd  gcc/common/config/msp430/msp430-common.cc
! 0c7a4ccddf2eaf0c8bf6240d9d9b2c41  gcc/common/config/nds32/nds32-common.cc
! 776024c2279ee1968840f538b65c6bf1  gcc/common/config/nios2/nios2-common.cc
! a0435972f43d7456de4f3ec8914d7238  gcc/common/config/nvptx/nvptx-common.cc
! 0b5c5d487237e1e53499ceb0e77da9ed  gcc/common/config/or1k/or1k-common.cc
! 6b2360ab81b36e9808bfff517a92e09c  gcc/common/config/pa/pa-common.cc
! 53d7a0845ed02b2ad7ab45f42c719ff7  gcc/common/config/pdp11/pdp11-common.cc
! 056ef5a807468c4bdf13bedcc41ae0cb  gcc/common/config/pru/pru-common.cc
! 328ce71ef4b17982f96ed780a307e851  gcc/common/config/riscv/riscv-common.cc
! be688e434793ea02a7f9ee52992ea34d  gcc/common/config/rs6000/rs6000-common.cc
! 8f7c8f341fea33cfb522d49e09a7e8b6  gcc/common/config/rx/rx-common.cc
! 7048a7b17ef73d5039b2aab30cc44200  gcc/common/config/s390/s390-common.cc
! 03a9863bb3a84853b0a6cef91bd0928a  gcc/common/config/sh/sh-common.cc
! 5b51ef1dd642dad520d3bdcb298f4455  gcc/common/config/sparc/sparc-common.cc
! 7e5256811fb3bf667657066c12f0145d  gcc/common/config/v850/v850-common.cc
! 3bfb8401012931705ec6996fde6c8b2f  gcc/common/config/vax/vax-common.cc
! 2887fe7f3666d5820b187a6f9b79b3db  gcc/common/config/visium/visium-common.cc
! 1b35bd9c11ef9334e622f29ff29c2cb1  gcc/common/config/xstormy16/xstormy16-common.cc
! 5489c7a719ceb3faae21ae5014994001  gcc/common/config/xtensa/xtensa-common.cc
! 32188ac2131c770df03339725367ae4e  gcc/compare-elim.cc
! d7b7be0853c1adedc2ef4b171f9d8522  gcc/conditions.h
! ce915e557866ffa3df9a5b35ed401ce0  gcc/config.build
! 08d0316f7392d417c13d6ea29ba090e3  gcc/config.gcc
! a838f308e3dcdd63685c24e6ff2586be  gcc/config.host
! f774419d52770343937c56e283dd570d  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
! 9cdb6f241c973fd5ce4c0b36c5a282c6  gcc/config/aarch64/aarch64-arches.def
! 2a914e8641891915ee49817d1f0c7c8f  gcc/config/aarch64/aarch64-builtins.cc
! 0bb8e93654406d5816462dc1f8842769  gcc/config/aarch64/aarch64-builtins.h
! 328ac05ff2783b32a331f01d3ff90df3  gcc/config/aarch64/aarch64-c.cc
! d3b3f877b2f7ba7842ef909af5fc5c7b  gcc/config/aarch64/aarch64-cc-fusion.cc
! 2cf06164901e29ee07c133863ab19708  gcc/config/aarch64/aarch64-cores.def
! d925338e5d17fde6b5de263fd751e66a  gcc/config/aarch64/aarch64-cost-tables.h
! 19827f863b9abd957d663a067d5b2db2  gcc/config/aarch64/aarch64-d.cc
! 4ddea453344c4e39481f379718aed12e  gcc/config/aarch64/aarch64-d.h
! dcae99023e6292c01fd3e62f3265d3c0  gcc/config/aarch64/aarch64-early-ra.cc
! 4d5e3969a5f34509454d8ae9fb320737  gcc/config/aarch64/aarch64-elf-raw.h
! 216353ccada5a78e01754365c3eb2d77  gcc/config/aarch64/aarch64-elf.h
! a289174b82942eb716cb2570624a336a  gcc/config/aarch64/aarch64-errata.h
! 1f6f229a22614a889abbbb563a8ccf62  gcc/config/aarch64/aarch64-feature-deps.h
! dc342fe54e467ef6273457ac76f1e015  gcc/config/aarch64/aarch64-freebsd.h
! 45a94f4cc4cebd09631e803b24201464  gcc/config/aarch64/aarch64-fusion-pairs.def
! c346ab44a65e934d35c27220462e42d7  gcc/config/aarch64/aarch64-gnu.h
! 2daa8cd364a2d0d83646985eb842ce00  gcc/config/aarch64/aarch64-isa-modes.def
! 5b5b08645931596f493bf8dc74aa3ed6  gcc/config/aarch64/aarch64-ldp-fusion.cc
! 890b7e64475a75caf55c99b232a18c8a  gcc/config/aarch64/aarch64-ldpstp.md
! 922a07997417e74b4828b4a65c0dc9c6  gcc/config/aarch64/aarch64-linux.h
! c56d40f70ef926ddfb09ae258ccff40b  gcc/config/aarch64/aarch64-modes.def
! e3e9b5f54d74124ed2134ed9adb9cfa2  gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def
! 1fed0f67de656fe6f3a39a3613f6c151  gcc/config/aarch64/aarch64-netbsd.h
! d1a1d7693a94b8604a3ba47c735ba2ac  gcc/config/aarch64/aarch64-option-extensions.def
! 79e4ec77882101517b089ed6a907d0ae  gcc/config/aarch64/aarch64-opts.h
! d9397260c45e57a1d9da554ae2e2a646  gcc/config/aarch64/aarch64-passes.def
! ebe658cd634657f150db439b419b85fa  gcc/config/aarch64/aarch64-protos.h
! 7c179f0d23167a6411dadbbe19b1adcf  gcc/config/aarch64/aarch64-simd-builtin-types.def
! 7235658ecb695c8e01083f68a4dd0b61  gcc/config/aarch64/aarch64-simd-builtins.def
! d56d2fb0c7037429b83bda351d563302  gcc/config/aarch64/aarch64-simd.md
! 54435c62211d08bd572b8a19fc35dcfc  gcc/config/aarch64/aarch64-sme.md
! 35478e154309fb549cd6bae4d905e2e9  gcc/config/aarch64/aarch64-speculation.cc
! dd27e958bc445d66a2d11f22e4c0d170  gcc/config/aarch64/aarch64-sve-builtins-base.cc
! d395fb78c3aa58cc46156e4ae2ca50ab  gcc/config/aarch64/aarch64-sve-builtins-base.def
! 2b738432736edd4eddd5722e5a062dce  gcc/config/aarch64/aarch64-sve-builtins-base.h
! 6aafb313053814ce802da580b6e77c75  gcc/config/aarch64/aarch64-sve-builtins-functions.h
! 029141cce3292cf34c2d8422c733d6f4  gcc/config/aarch64/aarch64-sve-builtins-shapes.cc
! 7588702da59d40548d6c91889a877747  gcc/config/aarch64/aarch64-sve-builtins-shapes.h
! 232272deb157f5db86fe218568b3be08  gcc/config/aarch64/aarch64-sve-builtins-sme.cc
! 2b63a6f2121fc3cac4ff447fe2815405  gcc/config/aarch64/aarch64-sve-builtins-sme.def
! 4851bb56ed95bc5cb440a54540666b72  gcc/config/aarch64/aarch64-sve-builtins-sme.h
! cd125b9dc0e6daa6b77218f12e2bebe2  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
! 55e8574d48e1b926b77805aa0dd9eadf  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
! 2ec2e73abc3fe528b0fb979e466733aa  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 8685f2862953f3f0d05285bbbaf97f0a  gcc/config/aarch64/aarch64-sve-builtins.cc
! b9d38b6180a44e1f8f6103870af5dba2  gcc/config/aarch64/aarch64-sve-builtins.def
! ef06d72bc9e60ff08580d377b7f8883a  gcc/config/aarch64/aarch64-sve-builtins.h
! 9ee135da8b8ddff1cfee2600c36a8f1a  gcc/config/aarch64/aarch64-sve.md
! b468dce384b89255f8d8759bf45082ff  gcc/config/aarch64/aarch64-sve2.md
! b8ea4d0fbacd00d61908ce1633d440fb  gcc/config/aarch64/aarch64-sys-regs.def
! e0fb24ca44fd975f77b0de67a11e621f  gcc/config/aarch64/aarch64-tune.md
! 6ede31fb52cae2cf590b667c55706637  gcc/config/aarch64/aarch64-tuning-flags.def
! 93d2ce2396c397f594f146a9d7d80c52  gcc/config/aarch64/aarch64-vxworks.h
! 29ab4085f9d3f07e7ba9b1188d444c4b  gcc/config/aarch64/aarch64.cc
! 0aca8be4d6a6811cd456f3e296d9d08e  gcc/config/aarch64/aarch64.h
! 5520c437745a0fd8768fc0129f3bcaa5  gcc/config/aarch64/aarch64.md
! 3948f2f1b7b27ca528cac06ae5fe36ff  gcc/config/aarch64/aarch64.opt
! 1277617373f7bad91a5af74470db72b3  gcc/config/aarch64/aarch64.opt.urls
! 213d0fc642e1fc76bd3a11f36a6c7ad4  gcc/config/aarch64/arm_acle.h
! c55b48fec74c65f795a066248defd73c  gcc/config/aarch64/arm_bf16.h
! bc7f4369a16c4662b3bddb54d086bbf7  gcc/config/aarch64/arm_fp16.h
! cdbd4445c7cfe7382e25c6b15ce3a42a  gcc/config/aarch64/arm_neon.h
! 8a25682faea76f5f512dadd7e10a9507  gcc/config/aarch64/arm_neon_sve_bridge.h
! 6d4360a2f950b6d97abcb412f6a58c11  gcc/config/aarch64/arm_sme.h
! 707f4351624f520c36ccdd0a16af6a40  gcc/config/aarch64/arm_sve.h
! 264d85eb1bd6cca6b9dc55f3afce4bf3  gcc/config/aarch64/atomics.md
! f264a7cdf39dc7c34215b657ecdab490  gcc/config/aarch64/biarchilp32.h
! 2ab25798b8fa195d30b6330fe6597f14  gcc/config/aarch64/biarchlp64.h
! 593e182d30df91139461ca665ca7384d  gcc/config/aarch64/check-sve-md.awk
! ef02129ad3898185285333aee59a6464  gcc/config/aarch64/constraints.md
! fc92ffdf40d78ec4e4e6f91302316333  gcc/config/aarch64/cortex-a57-fma-steering.cc
! 41b85ca31c1b89a9ea287ee50b6810a3  gcc/config/aarch64/driver-aarch64.cc
! dfe6036ce10136f693830ab9024c93c7  gcc/config/aarch64/falkor-tag-collision-avoidance.cc
! e0d1658875ae28cce6de0a5f4ebaed7c  gcc/config/aarch64/falkor.md
! d0eb4ba200acb78424e4f81fef87ed74  gcc/config/aarch64/fractional-cost.h
! 1e10a63f5542acfb7d0e13c5500255fb  gcc/config/aarch64/geniterators.sh
! 6f921f57310ac8daa6901b15863863df  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
! 4836f19222184068a1026cb2dfc66372  gcc/config/aarch64/iterators.md
! 2f7e5ada6f28833a37f9956a0de121a1  gcc/config/aarch64/predicates.md
! e721d5af96cbf8d649cdded53033e622  gcc/config/aarch64/rtems.h
! da189dac438d6c01da7266b02ddb1d2f  gcc/config/aarch64/saphira.md
! f32a20bf4a4a3f99d3148d1fab9767b4  gcc/config/aarch64/t-aarch64
! 62af384f901fee23585178e3ab6b2026  gcc/config/aarch64/t-aarch64-freebsd
! 33e6ecfd143c128e2595d9ceaaa61d2c  gcc/config/aarch64/t-aarch64-linux
! 62af384f901fee23585178e3ab6b2026  gcc/config/aarch64/t-aarch64-netbsd
! b6f016a428d43008eb601016b91c9a91  gcc/config/aarch64/t-aarch64-rtems
! 47eab531fecbeebc6226c468730beca3  gcc/config/aarch64/t-aarch64-vxworks
! 41dc1735d522b4ec3bee241bfd14ef04  gcc/config/aarch64/thunderx.md
! 914790f2817de7c0da7f13d4c2529e12  gcc/config/aarch64/thunderx2t99.md
! 3c89b5b0583f3f57e3cc7fbc2bb23a4a  gcc/config/aarch64/thunderx3t110.md
! b512ee76d71efa7cb556eddfd0f9a231  gcc/config/aarch64/tsv110.md
! 2b124844daed44c398da37619355e4dd  gcc/config/aarch64/tuning_models/a64fx.h
! 1a5ac5cc5d9bb72c861eb73bf0d9d10c  gcc/config/aarch64/tuning_models/ampere1.h
! ed8c412a30c84346b8898013221cfb2b  gcc/config/aarch64/tuning_models/ampere1a.h
! b5b446b4f5ab567677999b4df5c12da9  gcc/config/aarch64/tuning_models/ampere1b.h
! 31b403c21013b0b53f731e5024db4b7e  gcc/config/aarch64/tuning_models/cortexa35.h
! 12fb2bc90d9a09430f9bf17f7e44a3ad  gcc/config/aarch64/tuning_models/cortexa53.h
! 8cf43ce97d38ee60f55b5f5e8d4ff5f0  gcc/config/aarch64/tuning_models/cortexa57.h
! 433ead04c8b58ca35cc4912f0a5a82e2  gcc/config/aarch64/tuning_models/cortexa72.h
! 2150c80bb10731b070aec779100442aa  gcc/config/aarch64/tuning_models/cortexa73.h
! 47293a122bfb8e5f606ae32112950aab  gcc/config/aarch64/tuning_models/emag.h
! 095906d3a43dbf0e13c5471fabcf1473  gcc/config/aarch64/tuning_models/exynosm1.h
! d35355ab4d0ccdea4076688532d48a05  gcc/config/aarch64/tuning_models/generic.h
! 7a9a276714666f9890a3a5d6a980112c  gcc/config/aarch64/tuning_models/generic_armv8_a.h
! 5508125b75bb109851c1d396c106f943  gcc/config/aarch64/tuning_models/generic_armv9_a.h
! d068cb56d5712ac565cc516fc88dba6c  gcc/config/aarch64/tuning_models/neoverse512tvb.h
! 202265af3c034cfb711d38ec66a8be25  gcc/config/aarch64/tuning_models/neoversen1.h
! 3a9dd309e6e618ae56d5a65241605bbd  gcc/config/aarch64/tuning_models/neoversen2.h
! 1addc74594905a7db2b7ba6e9ef31193  gcc/config/aarch64/tuning_models/neoversev1.h
! d18da56e6d51d63a521e85050a5389b3  gcc/config/aarch64/tuning_models/neoversev2.h
! c74a7e43efac10f66f3565dd973b4113  gcc/config/aarch64/tuning_models/qdf24xx.h
! 53dcffa4405eecd1a4c03bcebba27e1d  gcc/config/aarch64/tuning_models/saphira.h
! a4bd942a43f0542e7775e35855d8efdb  gcc/config/aarch64/tuning_models/thunderx.h
! 635814da804b11a94220ca454130bc66  gcc/config/aarch64/tuning_models/thunderx2t99.h
! 974120d8ee032a0637166d79ad0736a3  gcc/config/aarch64/tuning_models/thunderx3t110.h
! c99da0244e34555e6358276097b48a2f  gcc/config/aarch64/tuning_models/thunderxt88.h
! de3cd00ea4f6d4146c133497a83b8e1f  gcc/config/aarch64/tuning_models/tsv110.h
! 5e6074470d9cd46c6069bf714d68bddf  gcc/config/aarch64/tuning_models/xgene1.h
! 73f622005e7fda6d36e6cc106567cf33  gcc/config/aarch64/x-aarch64
  a07ee362a4961e9d41cb0ab83553de74  gcc/config/aarch64/x-darwin
! f3ca6af5256c037d24bd7a10318f9f35  gcc/config/alpha/alpha-modes.def
! 6669aea44d3c0a778f776a4cb28bdcea  gcc/config/alpha/alpha-passes.def
! a6df8d0e94b4063991abfd3836987a62  gcc/config/alpha/alpha-protos.h
! bf98c35a585bcc8eeb84ffbdb3617d7e  gcc/config/alpha/alpha.cc
! 07bdf82790cf44b31c0c06e20b43eb53  gcc/config/alpha/alpha.h
! ef1bb01edbfc8e58c06673931d655a72  gcc/config/alpha/alpha.md
! e578613421d867f32568b46f25778046  gcc/config/alpha/alpha.opt
! e8b515ecf84b01d28a824731de7b0a20  gcc/config/alpha/alpha.opt.urls
! 9ba47cce28e17a703c246dc135b5d754  gcc/config/alpha/constraints.md
! 5de1a3be4b332714b57e103f9358c202  gcc/config/alpha/driver-alpha.cc
! b210e4582167467068d11017f94f57a0  gcc/config/alpha/elf.h
! 3913ae446bb7e255d8d619edc879397e  gcc/config/alpha/elf.opt
! 9623ffdc7f80c52e1e1e755653229680  gcc/config/alpha/elf.opt.urls
! 0d2e25de5661004b9f1d8f978543907f  gcc/config/alpha/ev4.md
! b90d39bdf5166820773ab1d84defa9e7  gcc/config/alpha/ev5.md
! 792dc802d03f2ad8a2e5954374e5ee88  gcc/config/alpha/ev6.md
! 6eef419773c6de988a66bf7c0ff39226  gcc/config/alpha/linux-elf.h
! 54f9345000e3ee6c6eeb34baaea29898  gcc/config/alpha/linux.h
! b94a67336f3dfd532f50acc84b3eacc8  gcc/config/alpha/netbsd.h
! 96e0dbaf67332f6c471d2784372c1708  gcc/config/alpha/openbsd.h
! 01bf0255df216a559ea54048f948be55  gcc/config/alpha/predicates.md
! dc1ea69550dd202f803df9d4972e812c  gcc/config/alpha/sync.md
! 30cdbfc08b189ee365a4b2bf87762b5f  gcc/config/alpha/t-alpha
  6e8dd648b9668f18b1dfd9f1203c9885  gcc/config/alpha/t-linux
! 1e2b29cae87b16e4647db108a4f929f3  gcc/config/alpha/t-vms
! 159bfd5e986ba4f0e786e4505b1b415d  gcc/config/alpha/vms.h
  b3c50e1f46a9bdacf84333c01cb8ec66  gcc/config/alpha/x-alpha
! a481cd9779183c035238f42e25179a3f  gcc/config/arc/arc-arch.h
! 28a17047ded557d91b68b37d24bd92c3  gcc/config/arc/arc-arches.def
! 76495e1a8a5237342447269dc3453ad2  gcc/config/arc/arc-c.cc
! c49109c649d9ccac6d9c4a95892b8025  gcc/config/arc/arc-c.def
! 6f94e4ba6a83a71fdd2130c37eddef98  gcc/config/arc/arc-cpus.def
! 8843be96d9f744250d49e6f0f66cc7ba  gcc/config/arc/arc-modes.def
! f02c74428913d4eef107d20bdc992f9c  gcc/config/arc/arc-options.def
! c302dcb1d18d806af57c4488494d0edd  gcc/config/arc/arc-opts.h
! 3b9a82ca8089c4303a4fd8fdd03235f0  gcc/config/arc/arc-passes.def
! 0a16ab0964e285661af3d85693c68d65  gcc/config/arc/arc-protos.h
! 99162288a187323ef36a1f091ef0ca94  gcc/config/arc/arc-simd.h
! eb0e88bc37224e30ec0f6e09a6f8c783  gcc/config/arc/arc-tables.opt
! 6704645d075bf670b5ed5d77f0a88b86  gcc/config/arc/arc-tables.opt.urls
! 38229ff2dfadd268db531e88050fa307  gcc/config/arc/arc.cc
! 3f1e581466a434d464dd60eb31dfd72b  gcc/config/arc/arc.h
! 38793f52e7b27c5d5d1491686ded8278  gcc/config/arc/arc.md
! 76f1b55707de21b44a6747df9a92820b  gcc/config/arc/arc.opt
! 37a4012c7ff454831fdb2049d8fa1e27  gcc/config/arc/arc.opt.urls
! 23ef04c7541599dcd40377bad9039478  gcc/config/arc/arc600.md
! f8090fdaf63808f28e3f7e0dcc205616  gcc/config/arc/arc700.md
! 45f9cfe5a1444a7d242e2f0463398be7  gcc/config/arc/arcEM.md
! 2d697a27f82efb72e7447c11b15a8058  gcc/config/arc/arcHS.md
! f419e7dba2ea323b6c4d98d9c0122704  gcc/config/arc/arcHS4x.md
! d0f004cd487a12b2c2a91c8db6d022ce  gcc/config/arc/atomic.md
! 7dd18bfb77743e6b764aafb84c9fa017  gcc/config/arc/big.h
! e5a4f274ed648d5bcd33bc0914d6f33c  gcc/config/arc/builtins.def
! 72ffe1ab11a5d4f1f3ead71f062dd0c1  gcc/config/arc/constraints.md
! fdcc786cc614240ed88f026c47931680  gcc/config/arc/driver-arc.cc
! 1cf15d140828085fde9df75a5f17324b  gcc/config/arc/elf.h
  255d583e6d23d9cbed1614263d159a1b  gcc/config/arc/fpu.md
! 0c0bc89ed650c8750c9215f25320255e  gcc/config/arc/fpx.md
! 27660b94c348b9f3dcfdf31c75818ce9  gcc/config/arc/genmultilib.awk
! f1dc3042bd66f082283b42bbbc72b1ab  gcc/config/arc/genoptions.awk
! 78d305e4b78b0aaf9c0ab913d87a599c  gcc/config/arc/linux.h
! 2f8f590f400107eae28e04d277456f56  gcc/config/arc/predicates.md
! f82e19abccdfeead6b88e364cf70796a  gcc/config/arc/simdext.md
! 11745c841e02120d54e1f4769ae5d201  gcc/config/arc/t-arc
! 17ec988369ee0402b3b5370d5c7965bc  gcc/config/arc/t-multilib
! e0fd734f31789b0e8e0db9e49078cb20  gcc/config/arc/t-multilib-linux
! 0d410863700122d3dcf4373d14090cea  gcc/config/arm/README-interworking
! e73436aad4ee580322b05e161d62c039  gcc/config/arm/aarch-bti-insert.cc
! 132a9f8d414fadb5e576dff211469a7e  gcc/config/arm/aarch-common-protos.h
! 023f920505875a6cd63456229c3f90b1  gcc/config/arm/aarch-common.cc
! 019fd6d5a8724cad3d9823e3e2f135b6  gcc/config/arm/aarch-common.h
! 77322ef3d70b07c9eb16b41290acceab  gcc/config/arm/aarch-cost-tables.h
! 2a30c4486f093e8e0672b43cf11b697f  gcc/config/arm/aout.h
! e221bd99d5bf28ff8adfe4b0eba9054c  gcc/config/arm/arm-builtins.cc
! 1ea9d0a9de5d22fc0494336ebe428282  gcc/config/arm/arm-builtins.h
! 86abdb4f268415995d24c3cd9820d9ee  gcc/config/arm/arm-c.cc
! 094aa08ccf4d8e8dec4700fa5a81a560  gcc/config/arm/arm-cpus.in
! efe0c3c9cff35dd8af019d3661b44857  gcc/config/arm/arm-d.cc
! 224b3d56f1f141f81ed0f3450c0a5fa1  gcc/config/arm/arm-d.h
! 720914ff96cdd18cb161a2034b829440  gcc/config/arm/arm-fixed.md
! fd0868d0f792ce8ed1427944bd2ceca2  gcc/config/arm/arm-flags.h
! b198d5ef24e633b071c03d3d765e9709  gcc/config/arm/arm-generic.md
! d2d9a3749af7da79ce168a3f9990775b  gcc/config/arm/arm-ldmstm.ml
! ff4c5ba31208e71be409cc2871925fad  gcc/config/arm/arm-mlib.h
! 1af68851ae127354bf0a6e3fdb201bc4  gcc/config/arm/arm-modes.def
! 2ba9e51fa2bbf9a26109f6be6dca9b95  gcc/config/arm/arm-mve-builtins-base.cc
! b4a06503a728cdcee134e582a0aca2fa  gcc/config/arm/arm-mve-builtins-base.def
! 9150aaeecebe73b5bc5cb59ed4084584  gcc/config/arm/arm-mve-builtins-base.h
! 0fd373842b167a33222372bda1f6d096  gcc/config/arm/arm-mve-builtins-functions.h
! 8529402e701c2d3c2275bc21023b05f8  gcc/config/arm/arm-mve-builtins-shapes.cc
! 2258ca7e0ef9f3123f5fd1ff0f62bc0b  gcc/config/arm/arm-mve-builtins-shapes.h
! 409e6aa78b8601e9da7955a8cded794c  gcc/config/arm/arm-mve-builtins.cc
! 66e69097502f0ddb24c2dad1f58994bb  gcc/config/arm/arm-mve-builtins.def
! 5f4e8f9cba29981f3c2e4320930ea3b9  gcc/config/arm/arm-mve-builtins.h
! 00b2a1e9aba44990562b2030df68f43d  gcc/config/arm/arm-opts.h
! a32e244dd629c43a93ec8aadecdbeb14  gcc/config/arm/arm-passes.def
! 6d9a52d20ba58ad12525120cabe90d47  gcc/config/arm/arm-protos.h
! 1385250ce65d1c5197ad0cb0316f0407  gcc/config/arm/arm-simd-builtin-types.def
! 1795b7bf4992d29ce0f407ca9b90a7c3  gcc/config/arm/arm-tables.opt
! f805d118929dd79f6bd4dc75c77c968b  gcc/config/arm/arm-tables.opt.urls
! f68c4ef34df906d99e11d3cda55c8375  gcc/config/arm/arm-tune.md
! 9bb1b860b5fffc282a7b76150c384f33  gcc/config/arm/arm.cc
! 0607cc4b434a085d6f0c404b68a8f7ce  gcc/config/arm/arm.h
! 97b4603e6ca37e47af465188725976d1  gcc/config/arm/arm.md
! aafba6eef2fa39161c820beb71e74b41  gcc/config/arm/arm.opt
! d96083967a30e6eb0f75d624af2d831a  gcc/config/arm/arm.opt.urls
! 6fdbac79ee439703b0df3733036e4839  gcc/config/arm/arm1020e.md
! 135fde4ae954083d0da9630aae3a4840  gcc/config/arm/arm1026ejs.md
! 28cf98a0aeecbf6602fd3175362ba063  gcc/config/arm/arm1136jfs.md
! 5ac29a17d2c472f769ae718ec4ebf518  gcc/config/arm/arm926ejs.md
! 4ea300b8db4cc6a86fab2c79cc51f3b4  gcc/config/arm/arm_acle.h
! a267a9f70d5390f6f2840728e8483e35  gcc/config/arm/arm_acle_builtins.def
! 10b4ef3cfc1a7899aa61c8032415f959  gcc/config/arm/arm_bf16.h
! f1e5cd8f3fdc1496e6db0924e5ebfa07  gcc/config/arm/arm_cde.h
! 25dc3670659aea43e555e8f9c15312de  gcc/config/arm/arm_cde_builtins.def
! d3a23e380b7e99d29fe507d5a583e69a  gcc/config/arm/arm_cmse.h
! 89ad5a04bf547798509fe47737d6edce  gcc/config/arm/arm_fp16.h
! 6166a660bef51e6dda45441b0406b653  gcc/config/arm/arm_mve.h
! 5907ff1806ee0c882d86361c6b803784  gcc/config/arm/arm_mve_builtins.def
! e7679b7ff057ea576812ae13466a0c2e  gcc/config/arm/arm_mve_types.h
! cd9de7b16d7d597f6dc6d922bb9ce157  gcc/config/arm/arm_neon.h
! 25edddf23cb1a36b3cc2e7530d1eb1ea  gcc/config/arm/arm_neon_builtins.def
! 79b208f586b8b79a87d0e0d183a9859b  gcc/config/arm/arm_vfp_builtins.def
! 44aabc3fd5a327f292ac676c9f8d4e0f  gcc/config/arm/bpabi.h
! ad6e059da4221423e47cd82a275f8334  gcc/config/arm/common.md
! 4c26e4da16ba5c4fa7ae8557ce0e3ef5  gcc/config/arm/constraints.md
! b7fc6c4cf02e42b67011a38656264b4d  gcc/config/arm/cortex-a15-neon.md
! 95acd1f05e4d798ed609c28a7b3ebd2d  gcc/config/arm/cortex-a15.md
! 02d2088e0a2904b232a292e7102ba647  gcc/config/arm/cortex-a17-neon.md
! 54ec8844f4bbab1aad6a19b77e86fe94  gcc/config/arm/cortex-a17.md
! ed16983e37e12e2bcfbd286cecf929e0  gcc/config/arm/cortex-a5.md
! 7b7e6c271bba5be97b298650832276d7  gcc/config/arm/cortex-a53.md
! 97194490ff41b53110a16bacb58710a0  gcc/config/arm/cortex-a57.md
! b38694c4691a4fb0145bd4c46b4d99c9  gcc/config/arm/cortex-a7.md
! b91f3ba2ee5903ab727cd468c1055fa5  gcc/config/arm/cortex-a8-neon.md
! 9cfeaafe1a6ffe9677f346a0a87d4405  gcc/config/arm/cortex-a8.md
! 480eb617f1e8e05d289a92884d0c952c  gcc/config/arm/cortex-a9-neon.md
! 2b1d9b0180a2fdaa7934bbd5fda209ab  gcc/config/arm/cortex-a9.md
! 2ebe1d437ba64b3a4aa57e344fd64870  gcc/config/arm/cortex-m4-fpu.md
! 3859fda63d32e63c54b8db9cd0af5010  gcc/config/arm/cortex-m4.md
! 3fb3f28654657177173f3865ec014cf9  gcc/config/arm/cortex-m7.md
! 7f525e069b5b2bd27fe90bfe3022b178  gcc/config/arm/cortex-r4.md
! 0e22fd0a345f30d5d5d7cdfbefa67924  gcc/config/arm/cortex-r4f.md
! dbfe2af68927898639ca2e90f92460ba  gcc/config/arm/crypto.def
! e9607182bcee9cb0dac7154b9875eb16  gcc/config/arm/crypto.md
! 435c5ebc91de2b11950f016ea75f0c28  gcc/config/arm/driver-arm.cc
! b3c86771b5ad129c19fe16838cbedd52  gcc/config/arm/elf.h
! 5a57abd04599d4b715f52cbf28a2257a  gcc/config/arm/exynos-m1.md
! e6a1dbfb8a7eecca505bd27f37ae07a7  gcc/config/arm/fa526.md
! c8c9d937960dee413c9acba0a8f7cc78  gcc/config/arm/fa606te.md
! 3c47b9626b791e120d107263a07423d3  gcc/config/arm/fa626te.md
! ac186ce9622e1ec2bc0e4fd950b964f7  gcc/config/arm/fa726te.md
! 3eafe11b597922c9c03e6b6367ef8bb6  gcc/config/arm/fmp626.md
! 0dfee410e6afc16a46514abd0585ef69  gcc/config/arm/freebsd.h
! f544852f5cc21cdf14c2c4c80452bd43  gcc/config/arm/fuchsia-elf.h
! ccf45a55161926b761bda1a860083248  gcc/config/arm/iterators.md
! 330dc477e6373ebe87a836573ea95494  gcc/config/arm/iwmmxt.md
! 24837e6bd27434d2416ff3523490f95f  gcc/config/arm/iwmmxt2.md
! 9fd1f5d2b8da81e36aaf4041624ce375  gcc/config/arm/ldmstm.md
! 66a415207fe43505131a76aa71286c40  gcc/config/arm/ldrdstrd.md
! 5eaabd94e0037b6522ed9a45392cd350  gcc/config/arm/linux-eabi.h
! d64263b134031262a36428a26496f75e  gcc/config/arm/linux-elf.h
! 4ea728222e22c82478cc690594831254  gcc/config/arm/linux-gas.h
! b69614df1cd4256f58e75a572fbda03a  gcc/config/arm/marvell-f-iwmmxt.md
! e8affac9772d93f38b77832072baa1de  gcc/config/arm/marvell-pj4.md
! f95aae25737fa2b67f658ae27a55bf24  gcc/config/arm/mmintrin.h
! b79d32196e5fecb30fc00f10b2e59a0b  gcc/config/arm/mve.md
! 90755fdf5049c51974a29f7443aad437  gcc/config/arm/neon.md
! 99dedecb099a6f7fef75514f6cfb51f6  gcc/config/arm/netbsd-eabi.h
! 49dc7f194a7a56dbfa95c9d614987485  gcc/config/arm/netbsd-elf.h
! 07d12636c252e170d71bcadfca2c2538  gcc/config/arm/parsecpu.awk
! da6b3901a6d58731be02a7fc704c2488  gcc/config/arm/predicates.md
! 8728b87570afb29ed1ff4123e74ac682  gcc/config/arm/rtems.h
! 595836a2cd01d474efb6cc4bd4593be0  gcc/config/arm/semi.h
! 715e3671509e0ab901deaa7531d1788e  gcc/config/arm/symbian.h
! 1eb95025f9cd5adcd2dba4a172c4e6a2  gcc/config/arm/sync.md
! 55ef7bf32a729f4cbd815cbee0949fbc  gcc/config/arm/t-aprofile
! 8c12623daa5ae7bb20d91c73e5377c29  gcc/config/arm/t-arm
! feee8c3cd3c05b63765d6d71f43af4ed  gcc/config/arm/t-arm-elf
  4dc427c456af5e56b1ac39bda8969af6  gcc/config/arm/t-bpabi
! c1eb2282a5fbb98209a01a40a162e71d  gcc/config/arm/t-fuchsia
  e3950ec6bd159734835f8f8fb143efc6  gcc/config/arm/t-linux-androideabi
! 0b889c2ad0208e7df84275f7d9e4cd74  gcc/config/arm/t-linux-eabi
! 362e806c9e2ec8bec0cf8bdbd2f72a2c  gcc/config/arm/t-multilib
! 15514d0bc5b01d8402c3136f75eee8d6  gcc/config/arm/t-phoenix
! 1ac5e77816a6484a73a165eeae398cdc  gcc/config/arm/t-rmprofile
  c434e99f4fc47fd32ffab26fbeea8464  gcc/config/arm/t-rtems
! 8c0b4a60653a17f203a5cfb1a8fc002a  gcc/config/arm/t-symbian
! 39be57a549825d2444946fe5f693a90e  gcc/config/arm/t-vxworks
! 87896a997e36e53ebdce8c63842d9282  gcc/config/arm/thumb1.md
! d365e30d51e84eee3d4c690431b36a5b  gcc/config/arm/thumb2.md
! 04f108386512544ce1d6596ad6e66db1  gcc/config/arm/types.md
! 734d555ff2653ad7065e13ddce683abf  gcc/config/arm/uclinux-eabi.h
! 62ee64e5a550f39e265007bb0bbcdd7c  gcc/config/arm/uclinux-elf.h
! 92334ebaffb0d129acfc57fef831f2c6  gcc/config/arm/uclinuxfdpiceabi.h
! 89fac906bcc09977ddb7f431282695ae  gcc/config/arm/unknown-elf.h
! cbf753ccacebb14f1ea069d00bd48785  gcc/config/arm/unspecs.md
! 03d75586d505d936b481025195452fcc  gcc/config/arm/vec-common.md
! 0ecf35b93594826345444b0a0d454df4  gcc/config/arm/vfp.md
! 37331c99c09350c25917558f4d26ecee  gcc/config/arm/vfp11.md
! 7ad219ccd35d0a98f29c2f2a4552334c  gcc/config/arm/vxworks.h
! 0d3ded2f97981b036dd0ae73cfa93a0c  gcc/config/arm/vxworks.opt
! e219596493ffcd798a48b24b22b5e077  gcc/config/arm/vxworks.opt.urls
  8bb1a840fb87b138c620682ccad6aee4  gcc/config/arm/x-arm
! 5374b54e109a19a2feb7bf38477c0f45  gcc/config/arm/xgene1.md
! 872cf59810856b0fb4270b406084d4c1  gcc/config/avr/avr-arch.h
! 979d316e0a30598a6a3d7716a48307bb  gcc/config/avr/avr-c.cc
! bfe56ce9bd6fa014dfb8ec10b0e220e7  gcc/config/avr/avr-devices.cc
! 15a2a209f6c1c59c5c44a4de2715dc2e  gcc/config/avr/avr-dimode.md
! 7ae67bca77c9ea131be5692c358dda69  gcc/config/avr/avr-fixed.md
! 5ca3add3bb846b864908fa520718a481  gcc/config/avr/avr-log.cc
! b160f53b2566bf5f5e8eb989cd9ca35f  gcc/config/avr/avr-mcus.def
! 8e3ae0ce3a1eb610f878cf19540a249f  gcc/config/avr/avr-modes.def
! e463aeaf15d36b313935a1486e19fe50  gcc/config/avr/avr-passes.def
! 5227d87be2fe7b6b432a7cd09c5e37ed  gcc/config/avr/avr-protos.h
! f6bd61a4d455db58f9425812a337b890  gcc/config/avr/avr-stdint.h
! 68fa4201b52bff2512d79c387c7845c3  gcc/config/avr/avr.cc
! 7cc3c5e2451b04c38f10f0bd06790ba0  gcc/config/avr/avr.h
! 6674fd011024d588c028a370cc196dc1  gcc/config/avr/avr.md
! d966b0c41bfba722c0e38c55d7256e8b  gcc/config/avr/avr.opt
! a8f95050d166f48c225a2f8e916c6324  gcc/config/avr/avr.opt.urls
! c303762800db2d03566efcca0c473770  gcc/config/avr/avrlibc.h
! 5f50128af85c97f8a945289b214c6796  gcc/config/avr/builtins.def
! c81342d62b7c673dddb01c2fe022e31c  gcc/config/avr/constraints.md
! 6f86a74aad4c6d406125533121fac7c8  gcc/config/avr/driver-avr.cc
! 1008ab86977d8a828903d64e60330ac1  gcc/config/avr/elf.h
! ca321a5148953102f755e05b59b7bb1a  gcc/config/avr/gen-avr-mmcu-specs.cc
! 18da6b098212aae9f6f9b0200eeb9134  gcc/config/avr/gen-avr-mmcu-texi.cc
! b3573dd42f78369fa82623b922370aa4  gcc/config/avr/genmultilib.awk
! 28e6f4462ed42a18b0270e5755e73dc4  gcc/config/avr/predicates.md
! edcd8c674a9d3952a4c3d848649efd56  gcc/config/avr/specs.h
! b676cbf410071d39adf1d2dbab2defe3  gcc/config/avr/stdfix.h
! 3b770b008cc51d652a8983a5dd8c2597  gcc/config/avr/t-avr
! 8bf2f66c0bc639581bb4cbe96a90c238  gcc/config/bfin/bfin-modes.def
! b4f3b1f587ef61b524e54c9acb05211e  gcc/config/bfin/bfin-opts.h
! 55152b4ad375741227ccc1f34012ad51  gcc/config/bfin/bfin-protos.h
! dec44f55b8f34e9bef0f144e10a0a9c5  gcc/config/bfin/bfin.cc
! a8bd5da1aafd792d991ae73d3aad2c3f  gcc/config/bfin/bfin.h
! c4f0ef96f800f72d31434b3ceba6c9ad  gcc/config/bfin/bfin.md
! 027f822b1d27f541cdc686f505963dde  gcc/config/bfin/bfin.opt
! 36e8977d5439597ecb609e7bfb848abb  gcc/config/bfin/bfin.opt.urls
! 1c7c34d2f874d6c30ccceafb16d1d569  gcc/config/bfin/constraints.md
! 751be4cb017f337cfa696fff055dcbbc  gcc/config/bfin/elf.h
! 470b827515c863d7cd9e319ee0c5ea11  gcc/config/bfin/linux.h
! 2414344bf6d37a2fdc1db1909b163d99  gcc/config/bfin/predicates.md
! cb7badc68f9abc97739182f859a0a8b4  gcc/config/bfin/print-sysroot-suffix.sh
! 4db322de6c03491c478ffa3917456fea  gcc/config/bfin/rtems.h
! f4dc2aac34d624bba28c600f04d78f12  gcc/config/bfin/sync.md
! 4866d33c3a4db48fc0be5609ef81278f  gcc/config/bfin/t-bfin-elf
! 0a9ed135e28f4abccac2f36e74c3307b  gcc/config/bfin/t-bfin-linux
! 70e38cfc6b535cf71f38ff5704ce6707  gcc/config/bfin/t-bfin-uclinux
  6f4817f759fcac5ac27233ee451780a6  gcc/config/bfin/t-rtems
! 3c2466fa25071d30bd0049c3d47872ab  gcc/config/bfin/uclinux.h
! 30af6fea6e8c2d633e2104c654ac44de  gcc/config/bpf/atomic.md
! 9aae7b37a9ce4571a9f1af9d87fbee03  gcc/config/bpf/bpf-c.cc
! d073957defda2ef6d4698acc1ede9c21  gcc/config/bpf/bpf-opts.h
! ad036a7c51066866d6c2042bece8aaff  gcc/config/bpf/bpf-passes.def
! 3c86e529f2ab0f01c73c9ad46d43ea5c  gcc/config/bpf/bpf-protos.h
! 55ec3f1d1979d14d5ccda2be6203e892  gcc/config/bpf/bpf.cc
! ffc95b8825c0b30f8090b40bab7a790f  gcc/config/bpf/bpf.h
! 5f9c659b134f914221a2740716326740  gcc/config/bpf/bpf.md
! 3e2b3464e70e61d52865a50b69d995b3  gcc/config/bpf/bpf.opt
! d1646e4aefa23fc8825148057531cb58  gcc/config/bpf/bpf.opt.urls
! c6847c3fbeaac77699a34384af5f211a  gcc/config/bpf/btfext-out.cc
! bc93921573893a20052c4cfa601c4907  gcc/config/bpf/btfext-out.h
! 500ec6ecc6ce37fbf3a76632e3a001c7  gcc/config/bpf/constraints.md
! d61d80dacf05838539fd193e42878560  gcc/config/bpf/core-builtins.cc
! 988e922d069a72cea8291afbd9c40fe5  gcc/config/bpf/core-builtins.h
! 21032151b36abbdd530f9b705172ba31  gcc/config/bpf/predicates.md
! 3f3bbe48c9291a5679f9d0ecc5c79139  gcc/config/bpf/t-bpf
! 2b62d5e19e5be41f5c261001fe01239b  gcc/config/c6x/c6x-isas.def
! e837e6b64906ae782bbc51f9ecca6cfd  gcc/config/c6x/c6x-modes.def
! a57b309b3c6abd0022d1305a829962c6  gcc/config/c6x/c6x-mult.md
! bfa87b9c49854e18c8d762a1ec2391e2  gcc/config/c6x/c6x-mult.md.in
! 2b448bc460d30389541a8d0275967b66  gcc/config/c6x/c6x-opts.h
! 27834649698ff092b43b012ae8c8ee83  gcc/config/c6x/c6x-protos.h
! 0ebe76e970961c59f49f0a6b35a2ceff  gcc/config/c6x/c6x-sched.md
! dfede4f326c4bef319b83df4a5d97c50  gcc/config/c6x/c6x-sched.md.in
! e3bf3db0e15b192653778d0a30b44ef8  gcc/config/c6x/c6x-tables.opt
! b536f834b2933bc77c0d771ff150df59  gcc/config/c6x/c6x-tables.opt.urls
! 011989932220d540be193906fa3bd119  gcc/config/c6x/c6x.cc
! 0fcdb055431f142927b53bc65a808812  gcc/config/c6x/c6x.h
! 747e9eefb99f273a89c6cbaa5a163513  gcc/config/c6x/c6x.md
! f053b42a1d92b1b4f157463ffaf2cbeb  gcc/config/c6x/c6x.opt
! 44c7fa05441dbdf34c81d2027338e38b  gcc/config/c6x/c6x.opt.urls
! 9921ab23db5b8166b1fa0f679aa52525  gcc/config/c6x/c6x_intrinsics.h
! 8a673f0ab42c6c418c6eb6559c87b276  gcc/config/c6x/constraints.md
! 8869c8f74ceb9494469298a3e710ccaa  gcc/config/c6x/elf-common.h
! 38cc40182f20c6560a7710c3c4dfc428  gcc/config/c6x/elf.h
! cefd27242e98039e83505f38c2765980  gcc/config/c6x/genmult.sh
! 9fe95ef4ccff2f22dc95cbb7cf08cb54  gcc/config/c6x/genopt.sh
! f7f5e93d6320cd9874b6f941af78596a  gcc/config/c6x/gensched.sh
! ed53da5acf5ed6acf070d3904faa3c27  gcc/config/c6x/predicates.md
! edf88e19bdeaaaf81f80ef8be6cf0ad3  gcc/config/c6x/sync.md
! 445d1ac9c64ef745d99db7110bb93b5e  gcc/config/c6x/t-c6x
! 01007d918ea0d02b08443ffd7e84f5d3  gcc/config/c6x/t-c6x-elf
  428034a210600b6b423dfadb06636e03  gcc/config/c6x/t-c6x-uclinux
! 931d70ef7996a6552940e9d46b8c885a  gcc/config/c6x/uclinux-elf.h
! 005f83fa19edf0354ca684107337a3fa  gcc/config/cris/constraints.md
! 5f142c1949ce8da332eea5607a8c4f37  gcc/config/cris/cris-modes.def
! a0bb80faafaf545a38eda465247e0e9b  gcc/config/cris/cris-passes.def
! 7354ce7821f395ed6f0d8194904435ad  gcc/config/cris/cris-protos.h
! 58735812bea3f81c8d6ca1d251243db2  gcc/config/cris/cris.cc
! 52d855baa8f9a8ac1699c0c1b8774bd8  gcc/config/cris/cris.h
! 90916a913e9124a347e0725c2b7e1413  gcc/config/cris/cris.md
! c154650d0558060f93f7249e5ba14b3a  gcc/config/cris/cris.opt
! 50946b44376ed14014403951a60a6de6  gcc/config/cris/cris.opt.urls
! 7c43b2bc82ab956223b8b5873a0900f6  gcc/config/cris/elf.opt
! b54f8e1c24ac896bed470d9f6cab26fa  gcc/config/cris/elf.opt.urls
! 6cd8d8513a4038e1eba65d38da822e27  gcc/config/cris/predicates.md
! 06352348dfa0f717deb3f593024a8869  gcc/config/cris/sync.md
! 0eb9e810b1721415c8626fd54322c6ac  gcc/config/cris/t-cris
! 6e85d52d90652730b94b405f238c758a  gcc/config/cris/t-elfmulti
! 6f8c80e70045fa129b4e042f00a144e3  gcc/config/csky/constraints.md
! 11778e0c11bee69254735ea03326a947  gcc/config/csky/csky-elf.h
! f002c5e70ac03ad20cc44a1ab0558b47  gcc/config/csky/csky-linux-elf.h
! f1852b47bf68011d40c07d14536be1ff  gcc/config/csky/csky-modes.def
! ad58576b92f05480554c999cccf785b4  gcc/config/csky/csky-protos.h
! 7f6b3235ca180ebbfd698e23e90e9722  gcc/config/csky/csky.cc
! e8e041657bda4e496382a4cc3bcb97f2  gcc/config/csky/csky.h
! fd2882bb73eaba5ceb740d91ec1675a1  gcc/config/csky/csky.md
! 3e42ca6606ada1b3007806e6afe69038  gcc/config/csky/csky.opt
! af957505ebfff6becaa7b030a6aeb610  gcc/config/csky/csky.opt.urls
! 804461fe7dde878376b04c80b34e4f4e  gcc/config/csky/csky_cores.def
! 7bd620dbf40b162c81eb42a231562580  gcc/config/csky/csky_genopt.sh
! 58f05e05d4c1fc6124974d7a296f619f  gcc/config/csky/csky_insn_dsp.md
! 9b64bc5deae7617bb4c71d9adf19fb08  gcc/config/csky/csky_insn_fpu.md
! a25f50472c35e531b9954848c5c0de1b  gcc/config/csky/csky_insn_fpuv2.md
! f391fd00d04ba68605a17824ffcacdff  gcc/config/csky/csky_insn_fpuv3.md
! 49c102c359e989af63d4b550a31a31da  gcc/config/csky/csky_isa.def
! 0729917446768725cbc3f37ff94e6b90  gcc/config/csky/csky_isa.h
! a2b60e2d59a424368c56bd6ce292e990  gcc/config/csky/csky_opts.h
! 25d2f85e606b41fab1e70eb1f6b0450a  gcc/config/csky/csky_pipeline_ck801.md
! 169e8d6b0d2263775839d89d65c67dd4  gcc/config/csky/csky_pipeline_ck802.md
! 98d4be51eaaaac7815a9d4b975dde2ac  gcc/config/csky/csky_pipeline_ck803.md
! 383e2ef6cd47b5090f8621490402575d  gcc/config/csky/csky_pipeline_ck810.md
! 0bcd339163b0663b2b90c0dc73395dd7  gcc/config/csky/csky_tables.opt
! 0adb5f079721c7b0bfb6fa5b036fd78f  gcc/config/csky/csky_tables.opt.urls
! 57bd3edcfac082d30efa042ef2361795  gcc/config/csky/predicates.md
! 8204efd28a890ff5d91ce44d4d67c69e  gcc/config/csky/t-csky
! 41d11f8e00eb780dca95b1608c019423  gcc/config/csky/t-csky-elf
! 700a3cbbccd3bfc817d662d80f67144e  gcc/config/csky/t-csky-linux
! 0fff6c806cad8ae8820da65b3d34f043  gcc/config/darwin-c.cc
! 202d5571d888bc2fdb0c2b3fa79c0e18  gcc/config/darwin-d.cc
! 9f65d6371bdae49ecf6c859dac518574  gcc/config/darwin-driver.cc
! d420db205af99a4d1013bc0714bcca16  gcc/config/darwin-f.cc
! 2a2d50ad93e70b1359386c857f4a28d9  gcc/config/darwin-ppc-ldouble-patch.def
! 06eaaa848e93b47187a31f9976509788  gcc/config/darwin-protos.h
! ff647e6851cebecaf394272c183d4020  gcc/config/darwin-rust.cc
! 3026a91e5feb107bf0b1acb32e14cac9  gcc/config/darwin-sections.def
! e55ce9dd176fe3245a6c58be151f15c4  gcc/config/darwin.cc
! 10dd023cb1bdcddc03a3d0c0dfd6d315  gcc/config/darwin.h
! 86b9ccd132e574ef70f04a9d7994048f  gcc/config/darwin.opt
! 7c6d1c1425e31bca754e3318d5b15d32  gcc/config/darwin.opt.urls
! 5e5bdc5302018d2fede1c68388c8577a  gcc/config/default-c.cc
! 91aebbe962a774484ef5981872002102  gcc/config/default-d.cc
! 59e9eaab33331d1fcab529682bcfa15d  gcc/config/default-rust.cc
! e1449ff89a8cf8ab62f51999bee3a042  gcc/config/dragonfly-d.cc
! aa757a1cb9f9f9e5ba69f8a37ac9ff6a  gcc/config/dragonfly-rust.cc
! 6815ac0c8d09130897c7c3dc6d6222b3  gcc/config/dragonfly-stdint.h
! 11f81f059970baa8096d3d0762c82f00  gcc/config/dragonfly.h
! 6cb42d4dba3213de03efcdcef372a749  gcc/config/dragonfly.opt
! 2d1f27bc790d8994ba813be59ce7072b  gcc/config/dragonfly.opt.urls
! af40ef72cd86da109ced53718ceaddc5  gcc/config/elfos.h
! bfe83331e4962bf356dae34d5c5f5b02  gcc/config/epiphany/constraints.md
! 41df373eeb2600df5a50d90bf95307ad  gcc/config/epiphany/epiphany-modes.def
! a2ae4dd2698e6335c7805ff381404956  gcc/config/epiphany/epiphany-protos.h
! 4605332b94ed895202b9077b2b5f30a6  gcc/config/epiphany/epiphany-sched.md
! 8c973d2578753975e3adf34da3d17976  gcc/config/epiphany/epiphany.cc
! 32858933f0956d2c41b29ab50ddcac94  gcc/config/epiphany/epiphany.h
! 4babae874a893037db77916cb872425f  gcc/config/epiphany/epiphany.md
! 7d248b05c4c084032012021fb6d861eb  gcc/config/epiphany/epiphany.opt
! 423f06a3ee40a6b6852e5e21c30b8495  gcc/config/epiphany/epiphany.opt.urls
! f15565d680bf80309b8c9d76e6df3496  gcc/config/epiphany/epiphany_intrinsics.h
! 4b8b915ed4245267256c4ffb39de9c4b  gcc/config/epiphany/mode-switch-use.cc
! fb68388e8b9c8b4833928d8688dac85e  gcc/config/epiphany/predicates.md
! b5c3e72ab01fbcf3b9a8f9f88b1c9069  gcc/config/epiphany/resolve-sw-modes.cc
! b7207984882303a2fde0e0fd145ed291  gcc/config/epiphany/rtems.h
! dc1fbe60b2c529f227ef6d2bd5924e1a  gcc/config/epiphany/t-epiphany
! 2439443a8ae8374d9179f36198c99f04  gcc/config/flat.h
! 332c323bb9e02c752521c6ad7ab06e41  gcc/config/fr30/constraints.md
! c7749fdc2d13bfc8c08441cd012fefe3  gcc/config/fr30/fr30-protos.h
! cf4cc44c50554073f2e0f9f078e7e474  gcc/config/fr30/fr30.cc
! ee2b17673805bc155459e95971c7faa4  gcc/config/fr30/fr30.h
! c32a8a2e315c55d83b34fa55f6399743  gcc/config/fr30/fr30.md
! 5688764057fa0f6690de645fdc8e1610  gcc/config/fr30/fr30.opt
! 6492ad033c8269ba2e0093c3a143b1a3  gcc/config/fr30/fr30.opt.urls
! e8cb30a1ddce0656b0818c1eca3926dd  gcc/config/fr30/predicates.md
! 0305b967744c47ced3beab7da8ac51fe  gcc/config/freebsd-d.cc
! c5b689799e3510fee7ee09caf7fbff71  gcc/config/freebsd-nthr.h
! 5d5768235f95e82bcaf0ac9322159fdd  gcc/config/freebsd-rust.cc
! b2d179788773d04e1631d528e1d8c24d  gcc/config/freebsd-spec.h
! 97ab086f049412a904e64541ab485538  gcc/config/freebsd-stdint.h
! 684ab3407a4bc558a107953b03a04478  gcc/config/freebsd.h
! 137529223db62c82b9895c468e3cee8d  gcc/config/freebsd.opt
! b4bfc5fa6c82a78a53970e852b99aded  gcc/config/freebsd.opt.urls
! 92dbee3eea0515594d2ee80a472ecebc  gcc/config/frv/constraints.md
! 16707cf01d678349c8becc98a4ec2250  gcc/config/frv/frv-asm.h
! 0ff8bbb1f1bc5d90c570ee34351dbe05  gcc/config/frv/frv-modes.def
! 224d90766cba20afa322893958edc692  gcc/config/frv/frv-opts.h
! b65f3fc1d0a49976f3d48bfe11fd5d58  gcc/config/frv/frv-protos.h
! 2f89f1a1f3b993dd8a8c14d7821abaac  gcc/config/frv/frv.cc
! 3d4811fbc641013caff87c1c7769e663  gcc/config/frv/frv.h
! 3f34c3906e1c3dd068f168a48b3f141e  gcc/config/frv/frv.md
! 36e7638e6c875772b24425e24be8bf5c  gcc/config/frv/frv.opt
! ef8faf84b26737662fc7790f117b55bc  gcc/config/frv/frv.opt.urls
! 2917f15fb8d9c361ea6dd599806a8fe1  gcc/config/frv/linux.h
! 482e52bf69031733640da496d0a8eb4b  gcc/config/frv/predicates.md
! a5f16d5c4061a48be951ac23b59851fb  gcc/config/frv/t-frv
! c504a61f6051b4badd15961d17492406  gcc/config/frv/t-linux
! 41d6e2ee4a6dd2ae63e3a3f4039c8a6b  gcc/config/ft32/constraints.md
! 296e5c75c4f783baa0ccb1508523e530  gcc/config/ft32/ft32-protos.h
! 14205f30f9d9965fa36e93ab4c759795  gcc/config/ft32/ft32.cc
! 1533ab5fafe4d61d8f2193e92c3f10e4  gcc/config/ft32/ft32.h
! 62fa5c878bf43af9f918882295695a2a  gcc/config/ft32/ft32.md
! 58bb8ca5aab5124d406c8608f1e0461e  gcc/config/ft32/ft32.opt
! 8a56d9991bfac628d38e804a277c6568  gcc/config/ft32/ft32.opt.urls
! c8c46138d986db65fbe4fbdbfbe26f7c  gcc/config/ft32/predicates.md
! d2f41f10c6182871c066f8fb9eae4ac2  gcc/config/ft32/t-ft32
! 193bfe87ab220078404db95a7a07f5ef  gcc/config/fuchsia-rust.cc
! e784b211fb0c979def62717e65bb571e  gcc/config/fuchsia.h
! 79b4d331a82a2fccae540e7b73f233af  gcc/config/fused-madd.opt
! 45e1c702124918c893e2ef5ca76ae958  gcc/config/fused-madd.opt.urls
! 7c2391e2aad825359d2e6969b9b903c9  gcc/config/g.opt
! 96050b4b2455697e8f797ff6286b6575  gcc/config/g.opt.urls
! 8c68d60153a15f9416a0af4d8505094f  gcc/config/gcn/constraints.md
! a4f7963c5a0d63b348fd73289a18b8c5  gcc/config/gcn/gcn-builtins.def
! 53b059d19f799c76a81a028e256e70fe  gcc/config/gcn/gcn-hsa.h
! b6fece4e17a91412293c371d94a475dd  gcc/config/gcn/gcn-modes.def
! 46778452db34cdbc71d9f4a4171c7307  gcc/config/gcn/gcn-opts.h
! 6311f782fb16b86924e7de0897f91839  gcc/config/gcn/gcn-protos.h
! 529601da612d323a28830d974c99a61e  gcc/config/gcn/gcn-run.cc
! d2f77077ece33211873ed1bee31762e3  gcc/config/gcn/gcn-tree.cc
! 12b1c04c3a624aeb5c08755c4b84aecf  gcc/config/gcn/gcn-valu.md
! a074b57c00fa2fc300e5667b3ecbce0f  gcc/config/gcn/gcn.cc
! 75105178902bafa67e5dadcce49fef36  gcc/config/gcn/gcn.h
! c7295aa69d0b641ff0c1160fe52eab43  gcc/config/gcn/gcn.md
! fc07632e306561b078ee9f674f81fa60  gcc/config/gcn/gcn.opt
! 6c96a5ccd826ec5a9ddf7ffe7fda572d  gcc/config/gcn/gcn.opt.urls
! 4e7c3dc306bf9e61e07e5492421c482b  gcc/config/gcn/mkoffload.cc
! 400dbdb30861a123f8411f875eef57b1  gcc/config/gcn/offload.h
! 71028715b590f8c58d25025018e50b05  gcc/config/gcn/predicates.md
! 7f81e1a30a365e4ba268ecec3b492df4  gcc/config/gcn/t-gcn-hsa
! 729624f1ab566330d03060a8b4e008f1  gcc/config/gcn/t-omp-device
! 5897a0e6715b7df1ca3c48bfbb1cd6b8  gcc/config/glibc-c.cc
! b278c721aa8368b642ae5cb9a65245e0  gcc/config/glibc-stdint.h
! 9d37b8f32505e9662fa69a166c77c8f0  gcc/config/gnu-d.cc
! 6a696cae7a44d868d78e9cda14336b34  gcc/config/gnu-user.h
! a2273f1834933e181d0f704e3beccddc  gcc/config/gnu-user.opt
! 6b439d9b69b8df92af49c7024df0d474  gcc/config/gnu-user.opt.urls
! 71358d5d16455cafedfe6d4610bf04a4  gcc/config/gnu.h
! d0a6e969946f8dfa6f2a114d426de2d5  gcc/config/h8300/addsub.md
  cddc64825ce6e6e92692684251745f9e  gcc/config/h8300/bitfield.md
! e0f182e6b6c3f56eae0c152e463235ef  gcc/config/h8300/combiner.md
! f09192fe7bfd79cb52c30c6a49bb4eb1  gcc/config/h8300/constraints.md
  6951bae6ec523668ea56b4c855810ce3  gcc/config/h8300/divmod.md
! 091a4a360ea6a60e2213740571681651  gcc/config/h8300/elf.h
! 4664439672c5dddfd6148672f30ab54b  gcc/config/h8300/extensions.md
! d0650fd3777200db4380e421cf08663d  gcc/config/h8300/genmova.sh
! 08141f44826fbf4417b4178c1b12306d  gcc/config/h8300/h8300-modes.def
! 9c537816c6abe6d80ecbf4e812fb3390  gcc/config/h8300/h8300-protos.h
! 2001e280d7b01bfff2179af75e0bb1c4  gcc/config/h8300/h8300.cc
! 84ba8da09d2d9a1784f217ff6e2e4a6f  gcc/config/h8300/h8300.h
! d8378cb8a624cb7616d4726443144caf  gcc/config/h8300/h8300.md
! cf5ffd75faf245561b1f78aa473ee2ff  gcc/config/h8300/h8300.opt
! 7950bf0c1ee6b8ccc34ec33806c7b7d9  gcc/config/h8300/h8300.opt.urls
  b5d25924674b9d28333ecf000341f07e  gcc/config/h8300/jumpcall.md
! e6a4e3e6426083b5f5b0e5dfd94cf6ce  gcc/config/h8300/linux.h
! 6a6a1bff12129c7fd3f2ca9dc5bb1fbd  gcc/config/h8300/logical.md
! 5ff40e38576f47b44362c3fbea0c876e  gcc/config/h8300/mova.md
  d329c98204120e78e720acd16234ad63  gcc/config/h8300/movepush.md
  6497e83ede4f1f9ec82eb6a07ba6f856  gcc/config/h8300/multiply.md
  56b9e51103f6a9c3bfc3777663b9a4f7  gcc/config/h8300/other.md
  e673e4aefe8a67834929eb43e99ac3df  gcc/config/h8300/peepholes.md
! 9fca1a21518fef5318a17a3b7a1cdfd6  gcc/config/h8300/predicates.md
  229fc2c8a83deb14625c4ee888cbb642  gcc/config/h8300/proepi.md
  daa266a3eae63ee1e65cb8c441f4c9c2  gcc/config/h8300/shiftrotate.md
! f8e17317f94f734e50b128466865e972  gcc/config/h8300/t-h8300
! 52862a7441b707ea0807addb77df3b6e  gcc/config/h8300/t-linux
! 9608ba7444746bdc63336f311f431044  gcc/config/h8300/testcompare.md
! fe97dee880b98da6aacf2f5a37c03e0f  gcc/config/host-darwin.cc
! 81bcef191edce40c81e1d14cf996bd01  gcc/config/host-darwin.h
! 689db705248decb4b126a84ccd9af71d  gcc/config/host-hpux.cc
! c2a5ce1ee84615aa52b4f799a2145596  gcc/config/host-linux.cc
! 73a66908ad77a38519ea3b39f1d31588  gcc/config/host-netbsd.cc
! 029bc56d5a833600081186db0e79f74d  gcc/config/host-openbsd.cc
! 442cafa83a1e7b89d9064bde491ecef3  gcc/config/host-solaris.cc
  2c191e2d8d033611c6fccc8362d9e8f0  gcc/config/hpux-stdint.h
! 84c2a4a078b712885f38c373ad66b894  gcc/config/hpux11.opt
! 6fb8f575d2ba05a77e86b2a4670259bb  gcc/config/hpux11.opt.urls
! ae17e86c8fe5840b6a46050b1cfcfe1e  gcc/config/i386/adxintrin.h
! cec853bfbc05465372e2d9209db77190  gcc/config/i386/ammintrin.h
! 1bec839682bc45593f2151042e170b96  gcc/config/i386/amxbf16intrin.h
! ec029ca822a74239a707f2af46e6fdd8  gcc/config/i386/amxcomplexintrin.h
! 161f86283fe6c5f1fbc3b31b18b55e6c  gcc/config/i386/amxfp16intrin.h
! 75a05cb93c9574d532bd22516622b6b8  gcc/config/i386/amxint8intrin.h
! 93230e68087adc86d3522722f61691de  gcc/config/i386/amxtileintrin.h
! 71924dc46e17c794c14a1714c186e882  gcc/config/i386/athlon.md
! 1137d7b41f29f9980a579371eaf574bf  gcc/config/i386/atom.md
! 7bcdf33d98d5875d2591173680db353e  gcc/config/i386/att.h
! 1038b5753a0fe47ba09718ac78841767  gcc/config/i386/avx2intrin.h
! dfae3d44ec047197c7dbad91eeb5c7c3  gcc/config/i386/avx5124fmapsintrin.h
! a4d9a04f2995bb5ae7c4bd49839ce537  gcc/config/i386/avx5124vnniwintrin.h
! f25fd859b50274239407625a078ccf0f  gcc/config/i386/avx512bf16intrin.h
! 5273416c2e181bfba99f3a83aaa036d4  gcc/config/i386/avx512bf16vlintrin.h
! 655f021e60c686c239cbb65b9483ab03  gcc/config/i386/avx512bitalgintrin.h
! 1655a7c18db9894d92096da3de56444c  gcc/config/i386/avx512bitalgvlintrin.h
! bfe5cb029f9c099d1efdc300367d97c4  gcc/config/i386/avx512bwintrin.h
! 2f8e43414663b99ce8799277aaa90345  gcc/config/i386/avx512cdintrin.h
! 4efbe9b2bd0f21856cbdd11749414dd6  gcc/config/i386/avx512dqintrin.h
! 3f87825a9c1021c88b959976b9251b64  gcc/config/i386/avx512erintrin.h
! fb6f85df9cfe5be1e0bfbcf14723c6c6  gcc/config/i386/avx512fintrin.h
! 3bfeb2321bcb9efb7e075c5dcff31ace  gcc/config/i386/avx512fp16intrin.h
! 14f110d99e0fe26055648a1ed606c1d2  gcc/config/i386/avx512fp16vlintrin.h
! 57449d9ba7c9dbb2915dff08916db6da  gcc/config/i386/avx512ifmaintrin.h
! de5b8dbd045cc4244b1450193e9ccd7a  gcc/config/i386/avx512ifmavlintrin.h
! 5be70a34c81c6721b292c012eb4e8d3c  gcc/config/i386/avx512pfintrin.h
! 3b1c599dbbadc37149e57e75e1f8bdd6  gcc/config/i386/avx512vbmi2intrin.h
! b4773de6d23aa684edc8705b5758c8fe  gcc/config/i386/avx512vbmi2vlintrin.h
! ccedc51507a5482495100dc67bc794c8  gcc/config/i386/avx512vbmiintrin.h
! 582996f5d514a502e61f5804f216cfbb  gcc/config/i386/avx512vbmivlintrin.h
! 8b7a7bfc68a25f54af3634df8a999f3c  gcc/config/i386/avx512vlbwintrin.h
! 79d382d0053b109b779d99ae87657ce0  gcc/config/i386/avx512vldqintrin.h
! cc37d6052ffb92824f70e2f731debbec  gcc/config/i386/avx512vlintrin.h
! b27cb6d1c3d937b65768a67547c8a1c2  gcc/config/i386/avx512vnniintrin.h
! b02d09852a2e1b72aaa76ca6813e4cce  gcc/config/i386/avx512vnnivlintrin.h
! 561e769c25b0ba248975986442cb88eb  gcc/config/i386/avx512vp2intersectintrin.h
! 3fc5eb6b0c536e687eb62be270db5fb3  gcc/config/i386/avx512vp2intersectvlintrin.h
! a4f0a50972ce3943af738716a9d12b5c  gcc/config/i386/avx512vpopcntdqintrin.h
! 076063dee54f564c013826a38b947320  gcc/config/i386/avx512vpopcntdqvlintrin.h
! b8915c352e22fcbc38b568229b7adaae  gcc/config/i386/avxifmaintrin.h
! a20749f17c3187210b4248cd39e2b3a8  gcc/config/i386/avxintrin.h
! 8b964d2c350290955b63d21a1246926c  gcc/config/i386/avxmath.h
! eadf2aeb4ef156775cebebbdd9ce8e07  gcc/config/i386/avxneconvertintrin.h
! 4d67fda3bae0c3e49a0f62d31d5d2e13  gcc/config/i386/avxvnniint16intrin.h
! fafbc9e935634c5bbc4d01ca8df1dcc9  gcc/config/i386/avxvnniint8intrin.h
! d532d8f06304b0e50e69ad64dc2fab3d  gcc/config/i386/avxvnniintrin.h
! dc95a331ad1cdbac2276c1e534ae439e  gcc/config/i386/bdver1.md
! 27b91403121c2cb5bfc51080b35c9de3  gcc/config/i386/bdver3.md
! 9686e9deb0d8dbb14151fd5e9d7d0d86  gcc/config/i386/biarch64.h
! 531173fce2568ce8a278a810786cf307  gcc/config/i386/biarchx32.h
! 9f9f3d148439467fd0c8f5f4f197df0e  gcc/config/i386/bmi2intrin.h
! 09256fde3aba34e53121cdb7c14e3172  gcc/config/i386/bmiintrin.h
! d4bebcfda9507eed7f756fb75bc76998  gcc/config/i386/bmmintrin.h
! 20d46ae3b8c26075548e9a40cd9dffd5  gcc/config/i386/bsd.h
! ef437a2578ad242de575fa7082fd86be  gcc/config/i386/btver2.md
! 24f74f6e7a6dae7ae92c93b53fcc4e53  gcc/config/i386/cet.h
! 9b54a36c82177b12c84c9612c94da89e  gcc/config/i386/cetintrin.h
! 3f5fb7795418bdb391322aeb343b0267  gcc/config/i386/cldemoteintrin.h
! 796728b11a1c6045859428f20a29733e  gcc/config/i386/clflushoptintrin.h
! 2acc7cab5a6a7a7d31fc4d2fcb7418e4  gcc/config/i386/clwbintrin.h
! 2fe649ccf51d9c5fee37af3d91d0df7e  gcc/config/i386/clzerointrin.h
! 393a4572dbcbeb8deee71c8f361fa85a  gcc/config/i386/cmpccxaddintrin.h
! 8b61d5367e86f261671bd7ce3204f1be  gcc/config/i386/constraints.md
! d2100b7cb12db9e2b123e2f4857f1f9f  gcc/config/i386/core2.md
! 416fe6d56885fde5d7abef3525e75b5d  gcc/config/i386/cpuid.h
! e649a5071671f0b09c69818c63e149ce  gcc/config/i386/cross-stdarg.h
! 53177dd1a18a859e6140d720710b474f  gcc/config/i386/crtdll.h
! 4ea8b628a10c4ed7d692d2ca98079a65  gcc/config/i386/cygming.h
! b8ebb7fb6c8ee84654d76109914cfda6  gcc/config/i386/cygming.opt
! 0758b6eb9eadc24f211e957805219c45  gcc/config/i386/cygming.opt.urls
! 604bb0a92b37491787dc0f86264b09cf  gcc/config/i386/cygwin-d.cc
! eb6ee0397993d2d4797a360b022f8817  gcc/config/i386/cygwin-stdint.h
! 6de9181d6ed6cd734ad8fd5e0f6b0662  gcc/config/i386/cygwin-w64.h
! eed87f5445a424a9bb2c324af88ffb0e  gcc/config/i386/cygwin.h
! 1fb1a9f845f8ebdf0a468030c408b7ef  gcc/config/i386/cygwin.opt
! 3b362955aab83912528fe683b571c289  gcc/config/i386/cygwin.opt.urls
! b1691136f3e6b17e519f0a9e8025aa94  gcc/config/i386/darwin.h
! 590afe4e72b7624170f68ad525edd433  gcc/config/i386/darwin32-biarch.h
! 5ccf0e52eb63cc16cc02f0891043896d  gcc/config/i386/darwin64-biarch.h
! 21fc813ddc7b9185fe5da46704cad167  gcc/config/i386/djgpp-stdint.h
! d8489b835ee31bead8a6e6d69e91f7c3  gcc/config/i386/djgpp.cc
! 866f201519dbe0f0d32348c3a5a28eff  gcc/config/i386/djgpp.h
! 45b973eff75adfbcf46eafe622d51111  gcc/config/i386/djgpp.opt
! 1b346c8cab1daa697ecd6c31e8e0e1d5  gcc/config/i386/djgpp.opt.urls
! bec83a086bf337dbd2e154506b2602d2  gcc/config/i386/dragonfly.h
! cd6421a2c032adf73b9e954477456151  gcc/config/i386/driver-i386.cc
! 0eb383b96b421d47115ebf3f8ba6ee3a  gcc/config/i386/driver-mingw32.cc
! e8a9784f37380c5b3dd741023389d394  gcc/config/i386/emmintrin.h
! a25cb50167eb66bf3228ad4aebd5dabf  gcc/config/i386/enqcmdintrin.h
! 20c5d7655eeeb58455eb0dcc6e1d383c  gcc/config/i386/f16cintrin.h
! 5487e634f602e87b08446aebdf507ffd  gcc/config/i386/fma4intrin.h
! df41a10a03dc8fed743ef33faf906abf  gcc/config/i386/fmaintrin.h
! 2ed186ac1343afb57219b1ac244f5eb7  gcc/config/i386/freebsd.h
! af8ac984ffac43ba66af1196609a96a9  gcc/config/i386/freebsd64.h
! 33c77d1d72ac5b5ad5e438483a25157e  gcc/config/i386/fxsrintrin.h
! 42a6a7cdc704d30800bf5e4993b6e1de  gcc/config/i386/gas.h
! 754f42ae9dc9a398157f5aaf58bd20be  gcc/config/i386/gcc-auto-profile
! 916eb971097dcf55a41bcc436c547638  gcc/config/i386/geode.md
! fe49e0109fb4a839773ba145b332c888  gcc/config/i386/gfniintrin.h
! 8e70cd3e550a7dcb6b54db38fb72c6a6  gcc/config/i386/glm.md
! 793a40a496271de053e42b388c296a90  gcc/config/i386/gmm_malloc.h
! 08b346f687189aca4ac44a698e81fc54  gcc/config/i386/gnu-property.cc
! c947356fd5abffc1890c1bb44f7a1272  gcc/config/i386/gnu-user-common.h
! 75fbe311492be729716a433dee0cf82b  gcc/config/i386/gnu-user.h
! aac26e4810ce5cd28b73cf7f6f1668d7  gcc/config/i386/gnu-user64.h
! cb343fc92a4017dd72ecf925e609e5b3  gcc/config/i386/gnu.h
! 88b7dbaed74b324e68398d3a41f01021  gcc/config/i386/gnu64.h
! 99fea335b0d0e75274fb0d332965e1ee  gcc/config/i386/haswell.md
! 9e0c1a273f1b48297e027d2b57fe6a5b  gcc/config/i386/host-cygwin.cc
! 8aa8340199913a36316957cfca64c183  gcc/config/i386/host-i386-darwin.cc
! 9511f2cacd4e3753bbcef34478635941  gcc/config/i386/host-mingw32.cc
! 4e2bbdb4e2a8e4ff852b573efffc33e4  gcc/config/i386/hresetintrin.h
! 2ea007891ddab468cc4699c13996a23c  gcc/config/i386/i386-builtin-types.awk
! c1088807627bcbd8c85a659852f57ce9  gcc/config/i386/i386-builtin-types.def
! aa99f8d58b3da23a2d212df9f67a2d4e  gcc/config/i386/i386-builtin.def
! a2336f4f657548fce5c8c4590f2550ba  gcc/config/i386/i386-builtins.cc
! a4714f98b53e073b615a5d93fe6fdba9  gcc/config/i386/i386-builtins.h
! f8a1590a72967fdf495715278a205905  gcc/config/i386/i386-c.cc
! fbc24076c7e09cff381fd3713e0e35b8  gcc/config/i386/i386-d.cc
! bc57c8d6121c70b7f671f4551d518806  gcc/config/i386/i386-d.h
! aea731cda07b584becd9f67d990d7717  gcc/config/i386/i386-expand.cc
! aad6a1409988666a85b150e3fe82bb3e  gcc/config/i386/i386-expand.h
! f12b061557ea1896d7c1957fb29a0947  gcc/config/i386/i386-features.cc
! fccc6d65638a2ce66ebc6b06766912c2  gcc/config/i386/i386-features.h
! 09f8541e9793b6862628bb28d61bbae8  gcc/config/i386/i386-isa.def
! 071a7048367ae05545447d7afde45633  gcc/config/i386/i386-modes.def
! 8d230f3767846dadc68cc75fc2180193  gcc/config/i386/i386-options.cc
! 4f9ab098f79123df3e7c4e8beb04a1b3  gcc/config/i386/i386-options.h
! 80b84844305586e681ea93488862a626  gcc/config/i386/i386-opts.h
! 4adde03ac7b7f40e6f38b8fd77beca54  gcc/config/i386/i386-passes.def
! c579dd84c0c0a8efd49f8053e5f9fdc3  gcc/config/i386/i386-protos.h
! 89067df9b8c57e29603ffaca8dcc692b  gcc/config/i386/i386-rust.cc
! 4f7ab8c57b3148a31d24838528313ef2  gcc/config/i386/i386-rust.h
! 0cd5912726e555de2a6b667ecdabf470  gcc/config/i386/i386.cc
! f7a191fd8bd8b73c26baf6672f61cf94  gcc/config/i386/i386.h
! dd2e425f748e987bc019056124476e2a  gcc/config/i386/i386.md
! 5ef25b564e1deaeea8d25ba9b4ec10df  gcc/config/i386/i386.opt
! fb32c950c45e643174eb7c58d7f4218f  gcc/config/i386/i386.opt.urls
! 95e430a8a19e9226167376a9a7ca34d9  gcc/config/i386/i386elf.h
! a778500391839a19a544023060ca562f  gcc/config/i386/ia32intrin.h
! c931b8ed7ac9d30859007078440e7f28  gcc/config/i386/iamcu.h
! 8e2d693b62b0a19fd761fdb64d5872fa  gcc/config/i386/immintrin.h
! dba0b9285e7ba81e15db0af9228b0199  gcc/config/i386/k6.md
! 429334866c319f15abbf8c55268ad574  gcc/config/i386/keylockerintrin.h
! 1dd6f42cbbda8221da5aa5ecca56c3d6  gcc/config/i386/kfreebsd-gnu.h
! e5a42d2a0415452056ccdb17e26e1c0b  gcc/config/i386/kfreebsd-gnu64.h
! e33484286fc1b1b7110dab4a298363aa  gcc/config/i386/kopensolaris-gnu.h
! 21b63e4ac3e2259a001dd952cc258fa1  gcc/config/i386/linux-common.h
! 9dd519f4dc93480aa935e2897d3b18c9  gcc/config/i386/linux.h
! 3eb18b0cd5be7d717d62086b8a2e3729  gcc/config/i386/linux64.h
! 773791eb685133455b209f8c0a5704ea  gcc/config/i386/lujiazui.md
! 46928ddbf41c351b51f875eadc3731c1  gcc/config/i386/lwpintrin.h
! f7279e473bb49123162315b4d3b464b3  gcc/config/i386/lynx.h
! c283ecd60cc5b074bd8e3b1b3c566d76  gcc/config/i386/lzcntintrin.h
  fefe46f8b06de933480400b9f58e9d31  gcc/config/i386/mingw-mcfgthread.h
! b271faf9af311b4732077e402a82776b  gcc/config/i386/mingw-pthread.h
! f659c00067444112cc4593f75e7c4436  gcc/config/i386/mingw-stdint.h
! d1c0c178d95edaefbd59432e974e5db0  gcc/config/i386/mingw-w64.h
! 76feac032d74842674894ad3420d4e36  gcc/config/i386/mingw-w64.opt
! 64b43591c22a886323b4bdf8f1f34c48  gcc/config/i386/mingw-w64.opt.urls
! 27dbe2c94a340b9cc784d5b925797aaf  gcc/config/i386/mingw.opt
! ba58451441e23c01b6eba20ce3c8eb9b  gcc/config/i386/mingw.opt.urls
! 61a00740d8cd0a469e1582d5a52b47ba  gcc/config/i386/mingw32.h
! cc9849ddfde01b94df2eeb13ec5bab0a  gcc/config/i386/mm3dnow.h
! 90b9e7122f60a899bf229dc11f24000d  gcc/config/i386/mmintrin.h
! b4423d9947906a2a03d6518c51f85e89  gcc/config/i386/mmx.md
! ea7d7799efdd0d920495d7aaa4e3b7a2  gcc/config/i386/movdirintrin.h
! e576d2eed73a4571de7093a92f6dd156  gcc/config/i386/msformat-c.cc
! a0576d502ba7007ac2cebdc16b79ea32  gcc/config/i386/mwaitintrin.h
! 14b3e4c251fd9cc1557a9eb151542a1c  gcc/config/i386/mwaitxintrin.h
! 220befe527cd6f3b4ac6df90f018d806  gcc/config/i386/netbsd-elf.h
! 33173246f1d08f8aef1aa03d16d118af  gcc/config/i386/netbsd64.h
! 2e4d402c1703623d71bf29676f57a7c7  gcc/config/i386/nmmintrin.h
! 0f0077c72b9e630ecd5ddba5e7a0de50  gcc/config/i386/nto.h
! 52b89c2bb66cb5c57a9309e391cbffd4  gcc/config/i386/nto.opt
! 229c4c48ca14c2b8202dadc4fc13f8d5  gcc/config/i386/nto.opt.urls
! 6312c31f3d88e5264e1f45719c027073  gcc/config/i386/openbsdelf.h
! c802dd0f88fe76d019f606fc3d9c88a4  gcc/config/i386/pconfigintrin.h
! f0fb429281d2972ec6d5b8dfaad99a2e  gcc/config/i386/pentium.md
! 0c7b2ce3f6bec370f1178abe863b0277  gcc/config/i386/pkuintrin.h
! 426d23fde0bd1023818a46682dee73ae  gcc/config/i386/pmm_malloc.h
! 4bcaf59111dff3536a590c7991909507  gcc/config/i386/pmmintrin.h
! e7897c9943ea9d58a20b8308a6a61862  gcc/config/i386/popcntintrin.h
! 6d75ea131db6d3e2bf45e0d22968918a  gcc/config/i386/ppro.md
! 65907170cf827bbb4c0625034d33f1cf  gcc/config/i386/predicates.md
! 3856fc2d4db83e3fbf8fe63969e6c748  gcc/config/i386/prfchiintrin.h
! 544e4357af1c9e5b8b5745552e22ae54  gcc/config/i386/prfchwintrin.h
! 592410101b47be5aa84798707b091e23  gcc/config/i386/raointintrin.h
! a728137ad82eb3f98566a44017f44085  gcc/config/i386/rdos.h
! 0b03bf4a6b171744b238c1b135fdc683  gcc/config/i386/rdos64.h
! 652398f3fb7dc40c4cb35502ce03d54a  gcc/config/i386/rdseedintrin.h
! 08e15c08764b5bee324848cabfc6340b  gcc/config/i386/rtemself.h
! 82c38faf8264df0ded1313e7645de996  gcc/config/i386/rtmintrin.h
! 35051822960712857af0c069286718da  gcc/config/i386/serializeintrin.h
! 60a8629180201056d4fd1968fd7703df  gcc/config/i386/sgxintrin.h
! 2d9f30221686b397a45e8938c51dce40  gcc/config/i386/sha512intrin.h
! 690dd16e9bced3fc3c1369ff2ee4b427  gcc/config/i386/shaintrin.h
! e82f2dd2df5fd204d1c7102be6f29c11  gcc/config/i386/slm.md
! 08d5f13db1cd7c969bb98534dbff9c88  gcc/config/i386/sm3intrin.h
! 70a56f513b7336a41d2b3a23877154f8  gcc/config/i386/sm4intrin.h
! 8fce480b063b9abc4081b814b0fc7e01  gcc/config/i386/smmintrin.h
! fe9eadd749e61a2279304a5617888723  gcc/config/i386/sol2.h
! deafb4fcd18279b019ca3bf59206384c  gcc/config/i386/sse.md
! b415a4e3e2cdd58a97ae395bffcb7e09  gcc/config/i386/ssemath.h
! 618acc597863bc9b3c097b7b7669aed0  gcc/config/i386/stringop.def
! 28492cc506389a3cb120d5d836a2802a  gcc/config/i386/subst.md
  945c6888d50080573fad6f6c8969b67f  gcc/config/i386/sym-mingw32.cc
! 67cf4f5a13fcf71032df7aa7645b46f4  gcc/config/i386/sync.md
! d1e6b547d4ed10e1c05b4ab91bd946eb  gcc/config/i386/sysv4.h
! c6697a0fb2ad999b8899727db8e3bbf6  gcc/config/i386/t-cygming
  d41d8cd98f00b204e9800998ecf8427e  gcc/config/i386/t-cygwin-w64
  98d94861be252f8541038afee279417f  gcc/config/i386/t-darwin32-biarch
  8f92133cb94c59e2939cd65dc5fc8cb4  gcc/config/i386/t-darwin64-biarch
  633a95f7feb14d4eebe0039fa5ef4dec  gcc/config/i386/t-djgpp
! f936343730c9e4d225c56681f26381a4  gcc/config/i386/t-freebsd64
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
! acc7123a965948b0c7f3fa9129cc2586  gcc/config/i386/t-gnu-property
! e6a89c92ca622c81d4150e7d9dab2d49  gcc/config/i386/t-gnu64
! e25adf37a8a322bb645db480d136b8d2  gcc/config/i386/t-i386
  51dcf9826007c01cfd67be11d5f0d538  gcc/config/i386/t-kfreebsd
  39ad69cb2a2e67aa8d46664a75b02789  gcc/config/i386/t-linux
! f989c724365d2ac7fd3911b3b29a2573  gcc/config/i386/t-linux64
  cd662e746e08a18749e8272fa759278e  gcc/config/i386/t-mingw-w32
  67bcf41f125bbec93a13ad3bd98abaee  gcc/config/i386/t-mingw-w64
  12a68576d3577a8da82089f18d60c613  gcc/config/i386/t-pmm_malloc
! 4f1e64f7cd05bd778dc57738a2c12b23  gcc/config/i386/t-rtems
! 17128865e2c2ba4f110973e67ca608ec  gcc/config/i386/t-sol2
  6c6dc6647856991d7275637384be6c03  gcc/config/i386/t-vxworks
  b80a5a4a8c8fc32ca318158abc98dc20  gcc/config/i386/t-vxworksae
! 21aacf5d3115335f81b6878839d0b070  gcc/config/i386/tbmintrin.h
! 9e74241bdfeb3bc9a030588c28521319  gcc/config/i386/tmmintrin.h
! 120ff8805d63e135ff0f4274cff4ecb4  gcc/config/i386/tsxldtrkintrin.h
! feabc72c91d4148b070d5c62e4de26ab  gcc/config/i386/uintrintrin.h
! a5b0fd352deac130c11b1297495ff74b  gcc/config/i386/unix.h
! 2e3ccd70b54aff3b716cef27e4390708  gcc/config/i386/usermsrintrin.h
  81edd33206e44c8dbcd4165f97407774  gcc/config/i386/utf8-mingw32.rc
! 0ce89504498e5037cc63642e10ce1faa  gcc/config/i386/vaesintrin.h
! 5df90a4f37add0466d180376a8ce8241  gcc/config/i386/vpclmulqdqintrin.h
! c3968df128b11784d828ed1dcd83b6bf  gcc/config/i386/vxworks.h
! c150caa47d0b627b00e8acb663e8e346  gcc/config/i386/vxworksae.h
! 64d64269da749f747dd46a89c792e634  gcc/config/i386/waitpkgintrin.h
! 033f7e15c455574ecfaabd5acc147c44  gcc/config/i386/wbnoinvdintrin.h
! f2357e8cc412988f86c50771bb83c0e6  gcc/config/i386/winnt-cxx.cc
! 876882f242f09c1925675c8c0edf0ea6  gcc/config/i386/winnt-d.cc
! 7af196c5627039797aaf359cfed41250  gcc/config/i386/winnt-stubs.cc
  b60494d53d08e39def55bcf62076b56c  gcc/config/i386/winnt-utf8.manifest
! f305dd16e570bf8b6376c07a4e9fdc49  gcc/config/i386/winnt.cc
! 9c763727a47e4a3314bc11cb35c2ec5b  gcc/config/i386/wmmintrin.h
  b4cde95b709fc93c90bf4d6b3edc7fd0  gcc/config/i386/x-cygwin
  1ab2099a92787dd158135dbcaceb0bf9  gcc/config/i386/x-darwin
  8d6956f3535d501680a321eb01dafb35  gcc/config/i386/x-i386
! 59ddc1a3e9d715cb62fa263ae8b6b7e3  gcc/config/i386/x-mingw32
! 2ae5ffde48dfad335b3a6665b95564e9  gcc/config/i386/x-mingw32-utf8
! d5cdcd16b8897c341f9a386b1f71135f  gcc/config/i386/x86-64.h
! baa61bea371efc1c3c7e9744609c7bed  gcc/config/i386/x86-tune-costs.h
! e5595c37dd7b9ea4344a7be0dc5d9d5a  gcc/config/i386/x86-tune-sched-atom.cc
! 30b9c6f1a4b0b23de02c33b969a71348  gcc/config/i386/x86-tune-sched-bd.cc
! 3a8550d487a86d6a596183d13fdca950  gcc/config/i386/x86-tune-sched-core.cc
! 923f591450eeab1ebffcf2500a4cfa8b  gcc/config/i386/x86-tune-sched.cc
! daaeb05f59689bcc133b8add7fd2ea78  gcc/config/i386/x86-tune.def
! 53eb359a7a4854a587b6cf5ddde9a9b2  gcc/config/i386/x86gprintrin.h
! a1d442d51dcc0044d7b3e109d2bff5c2  gcc/config/i386/x86intrin.h
! a616ea353ccf63fc1b6f2254a35ee131  gcc/config/i386/xm-cygwin.h
! 71654b3cde734ebd7421186658d4c1b2  gcc/config/i386/xm-djgpp.h
! f9dfe535e493d0e00708e43ec0926e85  gcc/config/i386/xm-mingw32.h
! e94ce974a9c58f32e2d62503f864c719  gcc/config/i386/xmmintrin.h
! 97ed6bb079056c473a7db3d9dabeefa5  gcc/config/i386/xopintrin.h
! 503dc664e04c155fc074847b20d88e3b  gcc/config/i386/xsavecintrin.h
! 57b8326804a45d16090b1f02f05c36db  gcc/config/i386/xsaveintrin.h
! a19afd6e61736bdb06c67c02fc9d43a1  gcc/config/i386/xsaveoptintrin.h
! 1a0ad2f30b3df696d5d423ea9d6170ae  gcc/config/i386/xsavesintrin.h
! 39f9b78b66e13f0806e960bcb1281dbb  gcc/config/i386/xtestintrin.h
! fee804ad1f929009fe961caaccb573b0  gcc/config/i386/yongfeng.md
! 81aee71a26429b0fb3b36474068b2699  gcc/config/i386/zn4zn5.md
! 4e5576d6fc61e34e89a485dfe1ed9aa9  gcc/config/i386/znver.md
! 054241dcbf3270fcd132647c7217d81d  gcc/config/ia64/constraints.md
! f924e6addb1c14037b5b41cd5d7497a5  gcc/config/ia64/div.md
! f005952611be136b8dda4a7e324980d0  gcc/config/ia64/elf.h
! 3687a183e97f38a4993e77624245445f  gcc/config/ia64/freebsd.h
  89edd175b4bfe583ec3ee965092fd5d0  gcc/config/ia64/hpux-unix2003.h
! 625adb36634c526b802f60ef388d50e9  gcc/config/ia64/hpux.h
! 829002be6e19750576dac89b98dc58a4  gcc/config/ia64/ia64-c.cc
! 22137c93e44a5e8d05e7c03570f91109  gcc/config/ia64/ia64-modes.def
! f0c175a465564f0afd0f04b73576db39  gcc/config/ia64/ia64-opts.h
! 550d9e09ee7a25a4d5213fa294a257ae  gcc/config/ia64/ia64-protos.h
! dd7cdd538c97b343a65f190ee7fca5fe  gcc/config/ia64/ia64.cc
! 0964a742480ec8e98a70edaacb0c53d1  gcc/config/ia64/ia64.h
! 705e63bb3d213be14d286d354162a8d4  gcc/config/ia64/ia64.md
! 9c2b0e1dbb27eaf7efda79db8fe03c70  gcc/config/ia64/ia64.opt
! 118eccd8e7953b64c3bbb38384de55db  gcc/config/ia64/ia64.opt.urls
  dcc77d7023d20b64688bf213c2d327b5  gcc/config/ia64/ia64intrin.h
  4b86fa74a7636ffdb9787a8643220eec  gcc/config/ia64/ilp32.opt
! c123eb5a542afae24ac8defb18f961f8  gcc/config/ia64/ilp32.opt.urls
! 922ac1905b0718884e12dbf2d11991a6  gcc/config/ia64/itanium2.md
! 8640d3a8248455c685b847ccb44622f5  gcc/config/ia64/linux.h
! 651df65fbc1ccdf87aaad3f8bacbe812  gcc/config/ia64/predicates.md
! e2b70bd381cdfe5e059ccb040f93d2ce  gcc/config/ia64/sync.md
! a00b4703649b6497dc925c4c5c1e97cb  gcc/config/ia64/sysv4.h
! 3094c1493aaf0854a5927e821ab5448c  gcc/config/ia64/t-hpux
! abbdcb5c18bc42ed83cf449e0d24f86b  gcc/config/ia64/t-ia64
  67736f64800d10923b58be4e448620d6  gcc/config/ia64/t-linux
! 4f358cbbf660825a90f2a3e29c54a026  gcc/config/ia64/vect.md
! b33efcb0e407b2e7e028c3aa80286e3c  gcc/config/ia64/vms.h
! 8c817118934c5fa373f1b0673571e4db  gcc/config/ia64/vms.opt
! 58c641df71a1f8993f6e5e1bfaac466d  gcc/config/ia64/vms.opt.urls
! d6b0cc5c26e9dacced5adbacce40b62e  gcc/config/initfini-array.h
! 3b6e1fdcec47d985c8730335bd4b6195  gcc/config/iq2000/abi
! c8fe30f491acad76b1a51d5369fd9862  gcc/config/iq2000/constraints.md
! 0405316c0b0a813075f2ed481959495a  gcc/config/iq2000/iq2000-opts.h
! d403c22abb3904f78677e81d4baeed49  gcc/config/iq2000/iq2000-protos.h
! 2725fa9a68dbb036b665002739634b90  gcc/config/iq2000/iq2000.cc
! 360e7cbea50405e3a389677c1652b04d  gcc/config/iq2000/iq2000.h
! a3d1397ac1c4fa82b40c0960eaf4c9f3  gcc/config/iq2000/iq2000.md
! 30fbedcb0e72529f1c02a13d381633b1  gcc/config/iq2000/iq2000.opt
! 5ddaa4d82bc6f1b1e52472e3b03c1f96  gcc/config/iq2000/iq2000.opt.urls
! ae6294f3dc578a4b4feb16410e736a64  gcc/config/iq2000/predicates.md
! d0ddfcd6d84390dcf0b035000cf6baac  gcc/config/kfreebsd-d.cc
! ebf5481d970203557ff589853fa1ec22  gcc/config/kfreebsd-gnu.h
! 42e924f68bd7d6b30a8fab5aca2a9891  gcc/config/kopensolaris-d.cc
! e6afaffab251fb0f8b22cf46304bd6d9  gcc/config/kopensolaris-gnu.h
! dab36a66eb25b8907f0d4457d379f6fd  gcc/config/linux-android.h
! 0ba0a7c656e69579844e6331fd1b65e6  gcc/config/linux-android.opt
! 39159899219836ff091187e768ce6675  gcc/config/linux-android.opt.urls
! 829c65e1c72225a75d813a00ad578688  gcc/config/linux-d.cc
! 187746c54042971dbed411c718a6a865  gcc/config/linux-protos.h
! 9eaebc9087d0424e08bc3e99950ff39f  gcc/config/linux-rust.cc
! dc3640377d56fb01499872bc1ecc03f5  gcc/config/linux.cc
! f328a8172c55337baad8c39b82e7d1af  gcc/config/linux.h
! 8b60ef5177a76bae0cfee641ba8b57fd  gcc/config/linux.opt
! 0e0d7a8230d05f9b8b796bdcfd935d94  gcc/config/linux.opt.urls
! bd20fcf03872ab6f5de35112dc6ad749  gcc/config/lm32/constraints.md
! 15ab6fbcc94512bb847e9ae65bffdda9  gcc/config/lm32/lm32-protos.h
! b8304fa36ec2e6636fee2333d234d3c4  gcc/config/lm32/lm32.cc
! dbcb159a1a9feb5be616555bac75f2f1  gcc/config/lm32/lm32.h
! c91bf8719ddb26916dc166fb24b92a3f  gcc/config/lm32/lm32.md
! cc68db36c7e26368cce1af309ad2308d  gcc/config/lm32/lm32.opt
! 27e82783778bb7f706fa85a3c551f6a2  gcc/config/lm32/lm32.opt.urls
! 854f3eaa3f328d2c01dedd620b74adf2  gcc/config/lm32/predicates.md
! 7d884af9c9abeb9ebfc299ccd2bc9043  gcc/config/lm32/rtems.h
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
! ddefbf04240463de3ebe735c18bd3da8  gcc/config/lm32/uclinux-elf.h
! 8ed53c8d6e2ffd1c4348b1509c392da9  gcc/config/loongarch/constraints.md
! d4a731bdf01a61d063fe5c12e0ae15a3  gcc/config/loongarch/elf.h
! 17e35e205e8d128d6658e239c7abcee0  gcc/config/loongarch/generic.md
! 5fd347c4e7531711abb29b614963da64  gcc/config/loongarch/genopts/gen-evolution.awk
! 8b5533dc044a7f8d01e2c18c5c9be651  gcc/config/loongarch/genopts/genstr.sh
! 6c3cb64931933c31d4984eaf2b6f69e2  gcc/config/loongarch/genopts/isa-evolution.in
! 64bc38c6fa0b420896061653328a2e04  gcc/config/loongarch/genopts/loongarch-strings
! ba884745a15d4b194d0ad2e286b0c617  gcc/config/loongarch/genopts/loongarch.opt.in
! 33ffb3b80383744cc4872c3213e50ac5  gcc/config/loongarch/gnu-user.h
! 73cc35d0159715accf631cf5373b9fcf  gcc/config/loongarch/la464.md
! 56be38a805f1110cf87ba4a7105324a5  gcc/config/loongarch/larchintrin.h
! 881d4076cff56aa10f3d974c126dcf16  gcc/config/loongarch/lasx.md
! 5843a3b53f0891806244de2ecc7ec5f8  gcc/config/loongarch/lasxintrin.h
! 82679ddaca16efc485abf4e3b347a3c9  gcc/config/loongarch/linux.h
! c7f68c7b071c7c4551378832cb02001b  gcc/config/loongarch/loongarch-builtins.cc
! c2915ef1c4a97fb652d4f7be5ae9e06b  gcc/config/loongarch/loongarch-c.cc
! fda2bfdc2de3eafec6a40c91767e52d7  gcc/config/loongarch/loongarch-cpu.cc
! 28b82a3dc53ed6429b995a5f0d0c7c4a  gcc/config/loongarch/loongarch-cpu.h
! 66d9b24f384ba4184bf0a381bb1dec9a  gcc/config/loongarch/loongarch-d.cc
! 2d3afabbc0f7ba9387da15e529bdb4dd  gcc/config/loongarch/loongarch-d.h
! 34ceb522909aece43cfb18de874e0862  gcc/config/loongarch/loongarch-def-array.h
! 4f6e1d94a7da4cda9a95e36b76ad0980  gcc/config/loongarch/loongarch-def.cc
! fcb261ab8415277a573edfcf4c726d7a  gcc/config/loongarch/loongarch-def.h
! fc08ad18c12daeb6c459e9a5da085d02  gcc/config/loongarch/loongarch-driver.cc
! 812e559b949ba7a34e3a56087a6eaa21  gcc/config/loongarch/loongarch-driver.h
! 98c48e68e1e9c13958b3b218c3d3a47f  gcc/config/loongarch/loongarch-evolution.cc
! 8bd09542013a17e1ffcdc2ccc1fc3a5c  gcc/config/loongarch/loongarch-evolution.h
! 70eb5ed91f67ab6f78dc1e60a869583b  gcc/config/loongarch/loongarch-ftypes.def
! e79a168e4a8c0322a884b11ed18cf218  gcc/config/loongarch/loongarch-modes.def
! ea6cc43b3fa3313db4228947eed2152e  gcc/config/loongarch/loongarch-opts.cc
! 8869aeb1ace55d4ee67306c723b6069c  gcc/config/loongarch/loongarch-opts.h
! 3ce5af4b5c069929ba519548d5342e90  gcc/config/loongarch/loongarch-protos.h
! 3b7b410fd2ede1c56c692fa390a8d415  gcc/config/loongarch/loongarch-str.h
! 2088d1b3164d3464806a7627d2fd6e52  gcc/config/loongarch/loongarch-tune.h
! 5ed9c3455e5207d5e95a29afa6e171bc  gcc/config/loongarch/loongarch.cc
! bd5c0e7f40b4575e9973d1ef033b5ef0  gcc/config/loongarch/loongarch.h
! c88b641f0a3549ec0da381782d77362b  gcc/config/loongarch/loongarch.md
! b62396c60e7bd1b4de8956c5869d45f2  gcc/config/loongarch/loongarch.opt
! 93b3f21362e888da73ecb40a067439a3  gcc/config/loongarch/loongarch.opt.urls
! 610d8713bd4eb38abda34a06061ffc4f  gcc/config/loongarch/lsx.md
! eb98ea748bc7c12155011e9bc8010d92  gcc/config/loongarch/lsxintrin.h
! 42270d3318bceb069807243f3475a89f  gcc/config/loongarch/musl.h
! f6fd546f0f47cd5d43b7f1082da4ede6  gcc/config/loongarch/predicates.md
! 138112a675b6ccd0771ba1d45c0ee01e  gcc/config/loongarch/simd.md
! f4de53ee085303195a3c4eb57c3663c6  gcc/config/loongarch/sync.md
! 49279b28d5c2ec9c67b9f93840713af2  gcc/config/loongarch/t-linux
! 88690e1c28b92ae6052572c149de682f  gcc/config/loongarch/t-loongarch
! c66140ad2bf9766f3bfcda799820b9c1  gcc/config/loongarch/t-multilib
! 44737d9371a379fdedc85521d56a26ed  gcc/config/lynx.h
! 2b07db74c2bc46e1c2dc5f7c0dc42dd4  gcc/config/lynx.opt
! afc69cd739436bc4e0717055a4003453  gcc/config/lynx.opt.urls
! cc06558c6d947e120d12951e887f7267  gcc/config/m32c/addsub.md
! ac4741fd79d772d4812570c823378ed9  gcc/config/m32c/bitops.md
! 4d877df7db8df59d9bca882eead13dfb  gcc/config/m32c/blkmov.md
! 0e859ae548d1bb3c612371438fe67b33  gcc/config/m32c/cond.md
! 1444277fa57ed55dd9e3bcf8a6de88b6  gcc/config/m32c/constraints.md
! 138f537070e4aa27912dd751c5911512  gcc/config/m32c/jump.md
! 7d7f337d8d87e2b2b0664563383e85c3  gcc/config/m32c/m32c-modes.def
! c961d4b132cef034bcc20324d1553b83  gcc/config/m32c/m32c-pragma.cc
! afc6bbfc4c3be2328eb4548704590fdf  gcc/config/m32c/m32c-protos.h
! edf1631304088efdfbf28427a3f216ec  gcc/config/m32c/m32c.abi
! da25cede21483b44b595c41a14947b66  gcc/config/m32c/m32c.cc
! d7e53f47b668b894551c734e51c02268  gcc/config/m32c/m32c.h
! 7ac5e8647dca9bac7a89414ce5d84084  gcc/config/m32c/m32c.md
! a1a0658613a42371b176f2a8f1195f56  gcc/config/m32c/m32c.opt
! b6d95155757f26bad53a0223afa9f6f9  gcc/config/m32c/m32c.opt.urls
! 48125469433ab623b4db905f1aaca5a4  gcc/config/m32c/minmax.md
! 281815771bd4806acbd2cc044c64ac6c  gcc/config/m32c/mov.md
! 553379fc1ec3588454b6ece8ad20a95e  gcc/config/m32c/muldiv.md
! 978aa843996e6682395f702983b7ba7b  gcc/config/m32c/predicates.md
! 4f9793f3595ca91ab7b5a8e0a8257251  gcc/config/m32c/prologue.md
! c3187943e5d6adace3f81d1d3b66c5e4  gcc/config/m32c/shift.md
! c9a5aca87fcef30d34b2b4f6b9898fd8  gcc/config/m32c/t-m32c
! 2a1fe32f4862dfe450bbdb57c9fbf4c6  gcc/config/m32r/constraints.md
! 8576b0774063c02d581763d64d26b4c4  gcc/config/m32r/little.h
! bfb5ec1bdc9c8473f672e116db07ac1d  gcc/config/m32r/m32r-opts.h
! d87c49b68c70c42bb6990afd5585e5e2  gcc/config/m32r/m32r-protos.h
! b1f658b2070856edbb6b240088577f3f  gcc/config/m32r/m32r.cc
! c4bcdab9a7277c04a7e5cd20077a51ab  gcc/config/m32r/m32r.h
! 199b017ec186650203e74b87cc758c7f  gcc/config/m32r/m32r.md
! bb3c9b4233d371856654ed885ce36122  gcc/config/m32r/m32r.opt
! 1b619e144313c0fbf5062c63561ad744  gcc/config/m32r/m32r.opt.urls
! e4077aae4949243a8492c08db966b441  gcc/config/m32r/predicates.md
! 88b6e4b3f8cf0776d6752c733ec39829  gcc/config/m32r/t-m32r
! 665eae2064c5039aee6c2055e2cdb91c  gcc/config/m68k/cf.md
! ec52555da918ac16e66a80705989a509  gcc/config/m68k/constraints.md
! 154fe6ddfa77a76d99f07b644c370f76  gcc/config/m68k/genopt.sh
! bc7d245e51d920de152b9f0312ca5236  gcc/config/m68k/ieee.opt
! 1778e9d0151397001871eb8aa31c7878  gcc/config/m68k/ieee.opt.urls
! b4926b36560a5cf68933841d9e2ea60c  gcc/config/m68k/linux.h
! fcb3de0870049a8bd129cd9686b71c7f  gcc/config/m68k/m68020-elf.h
! d30d0a8c52a44c3ca83028b08f2041ca  gcc/config/m68k/m68k-devices.def
! 7aed6cedb22bdbcef50d06a320782e3c  gcc/config/m68k/m68k-isas.def
! 141df1e269eac47ee3a60f443e966444  gcc/config/m68k/m68k-microarchs.def
! 153c5f8a2cf7147624e85f610e58b018  gcc/config/m68k/m68k-modes.def
! f0050e0578ea248709da0e78aa7ac914  gcc/config/m68k/m68k-none.h
! 2bd01481ef37a4f52b2572481318f922  gcc/config/m68k/m68k-opts.h
! bad20a8b37f052ff97180a14d49f89e4  gcc/config/m68k/m68k-protos.h
! 3929b33774fc15aa7bfe3935cc087d11  gcc/config/m68k/m68k-tables.opt
! 76abf9d767893fa61fddacca5cea079e  gcc/config/m68k/m68k-tables.opt.urls
! 9feb17e9c8a3c1c0a1eef42622cd102a  gcc/config/m68k/m68k.cc
! f49edd3f675eea03a1051b64ac1a13a8  gcc/config/m68k/m68k.h
! ac686d0bd876ac2a91a65abcd83c0472  gcc/config/m68k/m68k.md
! e33af36900fe32d942453ef989511212  gcc/config/m68k/m68k.opt
! 1b484866a4d9be4c37b6b22672bca525  gcc/config/m68k/m68k.opt.urls
! 937a196ab71b9e1fd6af76c4f77c9e60  gcc/config/m68k/m68kelf.h
! 42b3dc9fd3d8f804df9ad478df82d3d2  gcc/config/m68k/m68kemb.h
  c0472199959f16fcb58702880954da6e  gcc/config/m68k/math-68881.h
! 39f3f5ee61edc0eacda5b42ca506b968  gcc/config/m68k/netbsd-elf.h
! c941afb1ee79c40deb73d109979a4d68  gcc/config/m68k/openbsd.h
! 9b330551bd8a9127046ad45fd3c82170  gcc/config/m68k/predicates.md
! e8319ec86e81de4ed3bd8ef96134de17  gcc/config/m68k/print-sysroot-suffix.sh
! c5b7048a3e46235c2c6cf2b8b6d1cf72  gcc/config/m68k/rtemself.h
! 0cc8fe39827e3c1ce9bcfe9eb3f278e8  gcc/config/m68k/sync.md
  19d5ed41f3394c9423ff3afe64804076  gcc/config/m68k/t-cf
! d14e631e36cc0037efdf0944dbbdd6cf  gcc/config/m68k/t-linux
  baa4595148bafa6426b8d665881ced45  gcc/config/m68k/t-m68k
  c8278c25339f71d746d91a193efd6cea  gcc/config/m68k/t-m68kbare
! 0cd8357c565eddfcca6fc24b205f19ed  gcc/config/m68k/t-mlibs
  0fd519d41689e5af998ca53a2f11e7d2  gcc/config/m68k/t-openbsd
  2919d876e31e6c4e0955d8cd4be5ce28  gcc/config/m68k/t-opts
  2899d62cd61c46fe504594a232959581  gcc/config/m68k/t-rtems
! 83bbc8c6f22b08c0a679258219047091  gcc/config/m68k/t-uclinux
! 94042d0e845f8e39820af6bd9a27fd50  gcc/config/m68k/uclinux.h
! e05601a09cf8d7a4cd79b6f537546b6f  gcc/config/m68k/uclinux.opt
! 99a98298f0811865fcd36b2173e92323  gcc/config/m68k/uclinux.opt.urls
! db6705ff0956c05ac15f5da009804f97  gcc/config/mcore/constraints.md
! 5fbb7be0d1a2c09178da102c8d9ec9e8  gcc/config/mcore/mcore-elf.h
! 61a6a8ec74c559870400224c47ef15c4  gcc/config/mcore/mcore-protos.h
! 983c9530b9dcb30f42683908a2274fe6  gcc/config/mcore/mcore.cc
! 6cc29a4e233b55fde35a3855569b3b17  gcc/config/mcore/mcore.h
! 81d7a639bf3bd767d9ff5956f2ca4013  gcc/config/mcore/mcore.md
! 45cd11eb64fb2239a5a8be90327a7cec  gcc/config/mcore/mcore.opt
! cb26f6c0709fd9533aec72a07a36bf8b  gcc/config/mcore/mcore.opt.urls
! 225dc655e791eb82bc0cd5477d84046f  gcc/config/mcore/predicates.md
! 1dd06ef15dd426381100de36055c51d7  gcc/config/mcore/t-mcore
! 82487fb2fbd50cb690ac1b406b085737  gcc/config/microblaze/constraints.md
! 9b8779320526aa5f273de983bdc206ce  gcc/config/microblaze/linux.h
! ef3714e630d226fc9f9a52d072ae6d49  gcc/config/microblaze/microblaze-c.cc
! 5b4dece5790de432c81f12521dc1c3f8  gcc/config/microblaze/microblaze-protos.h
! fe73a15d0d3e7f53d281ee102dfe15fa  gcc/config/microblaze/microblaze.cc
! 15444436357947286ccf30f90e3a28c8  gcc/config/microblaze/microblaze.h
! c16b6c77f514fb5e2247d16dcfcc5b22  gcc/config/microblaze/microblaze.md
! 38180380f0c251974ab87d52c6680c1f  gcc/config/microblaze/microblaze.opt
! ab7ecb87ef3b7a388cab0e4d0d2eb0db  gcc/config/microblaze/microblaze.opt.urls
! 6122aa8145720d14b86bdf0e7a6171f5  gcc/config/microblaze/predicates.md
! 24cc98144fc2514eb9d0a4959efcba46  gcc/config/microblaze/rtems.h
! 8abeae4e9debaaeb4950f5fdff621fbc  gcc/config/microblaze/sync.md
  df031372af9c825d21d2058d266247a0  gcc/config/microblaze/t-microblaze
  63ccba4e7f745d36609d7c129bac6288  gcc/config/microblaze/t-microblaze-linux
  a8b08640136e3e7712d2278eb84c21d9  gcc/config/microblaze/t-rtems
! 17809591fbbce21debf8a6efeab94fdb  gcc/config/mips/10000.md
! 08655b1d4e9446c9e40d04b1d1718d1a  gcc/config/mips/20kc.md
! 8d1cf07185841b9b63f772776c7b3ab6  gcc/config/mips/24k.md
! f0ddcbd409ef1899d431b9de7073d0ba  gcc/config/mips/3000.md
! 3ae467e5d3ca13212fcfafc0989d18fb  gcc/config/mips/4000.md
! 88d1da6fe56e11a7b56e37c0ccf644b8  gcc/config/mips/4100.md
! c98ab5ee95c9c98be3ecb2bcadb44510  gcc/config/mips/4130.md
! 7c276b30041af4c7b9e73ab46bc450f3  gcc/config/mips/4300.md
! 2829c29936971ba12471438afabb3fb5  gcc/config/mips/4600.md
! 9fa7a89c6f61a74625fe4b552b7a99ab  gcc/config/mips/4k.md
! 7bbdeee0a8fa1d592332e09923e7fb91  gcc/config/mips/5000.md
! 3598b04c8f7f7cc4b4544e81aefeb593  gcc/config/mips/5400.md
! 86009bbd1007a3a69da7ec085a5a97b5  gcc/config/mips/5500.md
! a69516fe6f0134c71c551370d44a3cd7  gcc/config/mips/5k.md
! d03f856f14ccca15cbebf4e69f5688ed  gcc/config/mips/6000.md
! 0084d4184d21c90c2a5252b67a18f5d8  gcc/config/mips/7000.md
! 54e28d6f6f74a17487de37a3ff4f09cd  gcc/config/mips/74k.md
! 29ab9120615bd91e4b1fda2132901083  gcc/config/mips/9000.md
! c70e070fe046bb1b573fcd4c3abbb40e  gcc/config/mips/constraints.md
! 3b3fc22ecba65d919ba8842d1eb34f11  gcc/config/mips/driver-native.cc
! 3e5112f2672868f86f0e465215739f51  gcc/config/mips/elf.h
! 3f1661b132c0cf0b53c3c7842b13b817  gcc/config/mips/elfoabi.h
! 3a911d4c9980d24556dd15f8da3481bd  gcc/config/mips/elforion.h
! 3043d7dba47ce25217106dbd1a5c5d2e  gcc/config/mips/frame-header-opt.cc
! aef501feadb06e3cc87199ad5dd56206  gcc/config/mips/generic.md
! 792325924eb1df3a1c45051a775136e6  gcc/config/mips/genopt.sh
! 7e1db6fa14290df1accdb28c892f5bbf  gcc/config/mips/gnu-user.h
! 0652c135f70542b2413a3b14f15ddad8  gcc/config/mips/gs264e.md
! eed7898eef53fd6ff626edb3a7ed4313  gcc/config/mips/gs464.md
! 2ce879d4de2bd31d99f4fa2c846604fe  gcc/config/mips/gs464e.md
! 8f741b9024b10212d8f77662cfeb0968  gcc/config/mips/i6400.md
! 392a0512b858934bda329cd273b93157  gcc/config/mips/linux-common.h
! 70c427f5155e8f11cc5109ad93055ee9  gcc/config/mips/linux.h
! 32946bcb3ab95efaa34b8553f9c875af  gcc/config/mips/loongson-mmi.md
! 6275cffb585afce53102ddc7fe7b9b75  gcc/config/mips/loongson-mmiintrin.h
! 405c8322580020c576a216df475ad9fd  gcc/config/mips/loongson.h
! 5ed0af5b4dcc3451a7481bdf3077d03d  gcc/config/mips/loongson2ef.md
! fb7afe3088913e5894f91f98bb725ba2  gcc/config/mips/m5100.md
! 30fde310cf197e3c03c206113681cf9e  gcc/config/mips/micromips.md
! 5cfff6f5af96d8a1bfb8cbe15b31af6c  gcc/config/mips/mips-cpus.def
! b0483ae8e8a3754819ce55ed750a1122  gcc/config/mips/mips-d.cc
! 3556b331ea1e7e4b0a711c1f4fb24224  gcc/config/mips/mips-d.h
! 6bc23f22218f9dd28ecc8573b85c2654  gcc/config/mips/mips-dsp.md
! a13edb3add986a3d277ff8d9262d2a8b  gcc/config/mips/mips-dspr2.md
! 169f3b68c79c428232d66c5e105684cb  gcc/config/mips/mips-fixed.md
! f2090b05b2caf339e85c589af39b7fa0  gcc/config/mips/mips-ftypes.def
! 5a9d89470d3619ad8152e9ccd8859b68  gcc/config/mips/mips-modes.def
! 8b290236ab9c0b10e041be0026e71955  gcc/config/mips/mips-msa.md
! 2349db6533263c062b2ee9d7dc63d041  gcc/config/mips/mips-opts.h
! 03210467518a18a3616f74b541334ad2  gcc/config/mips/mips-protos.h
! d5588f0317ad62fc020d826f6a2dd0ef  gcc/config/mips/mips-ps-3d.md
! 157df9f74e372fdcbd4d925f0840421c  gcc/config/mips/mips-tables.opt
! 216c87627424d946f6245f736be7b5f1  gcc/config/mips/mips-tables.opt.urls
! e6f9f12d4e4893585b12d88ce4cf3442  gcc/config/mips/mips.cc
! 4860e4167a0d35efb3d34f92f18ca25e  gcc/config/mips/mips.h
! e77aa0fac9fc66ac733052149481cf85  gcc/config/mips/mips.md
! 921f6350343da4a30cfa791983946fdc  gcc/config/mips/mips.opt
! deba20e974d1341625f1e9dc83a6853e  gcc/config/mips/mips.opt.urls
! 731baf4e2b268d2675c4aa3438b6220f  gcc/config/mips/msa.h
! d9aa2f8e313354d95544c656bf98e206  gcc/config/mips/mti-elf.h
! dc1939cfb14e0a325a67ec85535d32bb  gcc/config/mips/mti-linux.h
! 9502906afc22447f5ec96736b2c43a1d  gcc/config/mips/n32-elf.h
! 112660dd4cda8c99af19b37411256e03  gcc/config/mips/netbsd.h
! 53a7bd62d2b07d1f8cd290d4a7157ab7  gcc/config/mips/octeon.md
! cc1f6f48a2dd1945226eef3a197d007a  gcc/config/mips/p5600.md
! 2639ddd439764882c462d2875be20ecb  gcc/config/mips/p6600.md
! a02cb57b4e272d0955b64817bd3b88e3  gcc/config/mips/predicates.md
! 1957db17f7429ff5c33a19fd20173df5  gcc/config/mips/r3900.h
! 16bb11f026d0645a53108b7ab92a665b  gcc/config/mips/rtems.h
! 148f0a2cd5a5928208012a34231c4aa7  gcc/config/mips/sb1.md
! 3ec93e2f31d733ff8e8c5d1ff271217b  gcc/config/mips/sde.h
! 5ea8040960e3e6c822b3208b9dd7f575  gcc/config/mips/sde.opt
! b071da46f4d4d78223b4f2ecf6d3895c  gcc/config/mips/sde.opt.urls
! 7ff291a027b983a394a130b350642348  gcc/config/mips/sdemtk.h
! d2d45060118750c15fee2316faf3c359  gcc/config/mips/sr71k.md
! 352bc9a44675057accdb27bf999cd151  gcc/config/mips/st.h
! 9a76e8e0c46e7487df53b331efeeed78  gcc/config/mips/sync.md
! d14e00ce2a674f906c7aa45001d83b5a  gcc/config/mips/t-elf
! b62c113c5a89321b53ea16cbd1fd24f1  gcc/config/mips/t-img-elf
! fb89f16c6cfea4421ba1264e91dfc3ad  gcc/config/mips/t-img-linux
  f99fd825138aaee60804b8915e20d22e  gcc/config/mips/t-irix6
! be52788b991afbb8b49a5f28d3db875a  gcc/config/mips/t-isa3264
! 920906125ed0f4025d9d389494799839  gcc/config/mips/t-linux64
! 94873f1ab49e5682319ccfe9de0f4f96  gcc/config/mips/t-mips
! 39b9dab7afd3e88b7a24f391dd0c2478  gcc/config/mips/t-mti-elf
! 672ce6019afdf13b4d8f3f061692fc9c  gcc/config/mips/t-mti-linux
! 3f7118d002598fe152fcc132bf83e591  gcc/config/mips/t-r3900
! 11a5010f087742d3c454da01d1ac48c9  gcc/config/mips/t-rtems
! c32eaa8601ecfdd2c7ccf5e467618a7a  gcc/config/mips/t-sb1
! 84ad794809c2aa903dedb6d2bb7d24d3  gcc/config/mips/t-sde
! 4e8bd34b313d86a66ce1e4dfdc9fca90  gcc/config/mips/t-sdemtk
! 1211b865ae0b0a398bd39600bd76ebe6  gcc/config/mips/t-sr71k
! 49a8ba150f55d77ffb0a41cf8162365f  gcc/config/mips/t-st
! 9da2cc30278f77197243c06680dfdd84  gcc/config/mips/t-vr
! 58419547866099357283a8eb84792dfb  gcc/config/mips/t-vxworks
! 35bb99bca21f62d8ee4c99bdd7ce3b2c  gcc/config/mips/vr.h
! a4e5b4717bd82deb9691ae0adeb9b548  gcc/config/mips/vxworks.h
  06537756ff14579bc850163a24d5a2f8  gcc/config/mips/x-native
! dacd17169d06c28223bad2a385ad9234  gcc/config/mips/xlp.md
! 1c0e2cac386e13f472ae802bd1b93d99  gcc/config/mips/xlr.md
! 3e535f054466cf636d53974ada89f456  gcc/config/mmix/constraints.md
! 40c76434e0fbd451425b228206664b57  gcc/config/mmix/mmix-modes.def
! c29f468c455bed3857ad344f6f42029d  gcc/config/mmix/mmix-protos.h
! 80e2488f394abffd32c728e5cda2cb20  gcc/config/mmix/mmix.cc
! 258ff83c61e745365986d98366ce97bc  gcc/config/mmix/mmix.h
! 0ad7f6a5ef943e2b42930a638bde204e  gcc/config/mmix/mmix.md
! 85ff385860b2f98c4640d416986db785  gcc/config/mmix/mmix.opt
! 1fc4fd001702b5999b134c729b9437a5  gcc/config/mmix/mmix.opt.urls
! 8a6e491f3b2592d384dffc171fe24604  gcc/config/mmix/predicates.md
! a31e7d26c011348ab5d8649acd7b0b43  gcc/config/mmix/t-mmix
! 80c0e5a47ffd8c6087df9725b7a7354d  gcc/config/mn10300/constraints.md
! 3bc4caf267e9caf22b2b3bcc1f2ccb87  gcc/config/mn10300/linux.h
! 287e61bd6a9efaacc7dfcd40bd6ab635  gcc/config/mn10300/mn10300-modes.def
! 9c76ca0e2f688b42c0c981d358174f25  gcc/config/mn10300/mn10300-opts.h
! e63de4dd27bde006eff838387dab14b4  gcc/config/mn10300/mn10300-protos.h
! 6955315bcbcdb6dddab26da41b343bcc  gcc/config/mn10300/mn10300.cc
! 1abb3745669199701f801869497c2ba0  gcc/config/mn10300/mn10300.h
! d60ab4f16722ff07d74f5e95f38adc60  gcc/config/mn10300/mn10300.md
! 5ce97afb54839e478bb02b4d1ad4436f  gcc/config/mn10300/mn10300.opt
! 84e37d8a4a927311a81a258b6fbb6d2d  gcc/config/mn10300/mn10300.opt.urls
! b64bfbee7c3271ef1bb054fc385e9bdf  gcc/config/mn10300/predicates.md
! 834ab12ce66144e3236e2e9f8c5a337b  gcc/config/mn10300/t-mn10300
! 6438e915e98edbd4ba087b8b0703a136  gcc/config/moxie/constraints.md
! 1f0465f09c78d694d92c92e0a0a9fe31  gcc/config/moxie/moxie-protos.h
! 964aa3119ec82d1ccc84387dd5943790  gcc/config/moxie/moxie.cc
! 9efc4dd203d80e990a7b3168067f472e  gcc/config/moxie/moxie.h
! 6fa70dcf5a4b0e80d3f5d3eb1f6131be  gcc/config/moxie/moxie.md
! 0daf03d5688c9ce42d377b62c1139752  gcc/config/moxie/moxie.opt
! 3760ae8613d750b00a08d88bdd2f1ce0  gcc/config/moxie/moxie.opt.urls
! d488239681cf2a8f27d505a580fc3ead  gcc/config/moxie/moxiebox.h
! f40ed67eaeca956649cf553a47ce938a  gcc/config/moxie/predicates.md
! 0c6a6f1485c61719508a1580d6cd16c6  gcc/config/moxie/rtems.h
! 55dca34f9ef7192d4d00e3137cb2190e  gcc/config/moxie/t-moxie
! 54a303974ba00c7699cd8340508ce10c  gcc/config/moxie/uclinux.h
  f276505b774e975b88b6c90362783e73  gcc/config/msp430/README.txt
! 1358a32909e3fe9a8de470e4281e3bdd  gcc/config/msp430/constraints.md
! b85e98cec382a2a80f0b42d81dc6da48  gcc/config/msp430/driver-msp430.cc
! 859de6618bae4bb6933de06fadb77c8f  gcc/config/msp430/msp430-c.cc
! 3f21a07ab45fa4f278a1af580e9dfe19  gcc/config/msp430/msp430-devices.cc
! f3769e3f1b68739dd29c83ffc781fc2a  gcc/config/msp430/msp430-devices.h
  e081143def3cf3a59cd1181fc9162d41  gcc/config/msp430/msp430-modes.def
! 43dce80c06d480124fed813c65928657  gcc/config/msp430/msp430-opts.h
! dc16dc8d8b4d8a079d147e487b3d42f5  gcc/config/msp430/msp430-protos.h
! 001211c171dc9609fe9e2a1bdbbf5138  gcc/config/msp430/msp430.cc
! eb8a46e1e582f089a08db2bbb3b0553b  gcc/config/msp430/msp430.h
! db2ab006f79181b00d56652933080942  gcc/config/msp430/msp430.md
  a20875cf634836537faeacfb5a4f59d1  gcc/config/msp430/msp430.opt
! ffac48d9c1c0b7c08d6358c02254559d  gcc/config/msp430/msp430.opt.urls
! 46f95093b7c8e7cb519a1699be158dde  gcc/config/msp430/predicates.md
! cab42af5db3f8cfb8a6565d40973bb75  gcc/config/msp430/t-msp430
! 5445a1cbd913f532b1f66da9341bb231  gcc/config/nds32/constants.md
! 82ce0c12dbf14d8e57bd246d44a1e029  gcc/config/nds32/constraints.md
! 646ca5feea374809640e179a16a6a9a1  gcc/config/nds32/elf.h
! 598d7054949b1fe7d3269f0d6eb41bd5  gcc/config/nds32/iterators.md
! 47ab76028d47628cf518ae5eb96126d3  gcc/config/nds32/linux.h
! 13204f1c16a06396f6b896e264367ab1  gcc/config/nds32/nds32-cost.cc
! bfdc1bbc075ff8534f3019051574549d  gcc/config/nds32/nds32-doubleword.md
! e4c70889df77b91d82c68251424788d1  gcc/config/nds32/nds32-dspext.md
! 5669a23ba0c4df1f910fbf6f1f2c8526  gcc/config/nds32/nds32-e8.md
  c316334a86026beb55e5c25b4b855f95  gcc/config/nds32/nds32-elf.opt
! f18342139ac271b2b26de15ee1345316  gcc/config/nds32/nds32-elf.opt.urls
! ebe6074fecadba9edb0635584743a1be  gcc/config/nds32/nds32-fp-as-gp.cc
! d9f18cff53430f8b3c92a119fcf088bf  gcc/config/nds32/nds32-fpu.md
! 22ea6fc7d58be484fea0e89740fa0785  gcc/config/nds32/nds32-graywolf.md
! e0c278b22fdfc5f735c5a2dd9676826d  gcc/config/nds32/nds32-intrinsic.cc
! 35e3cd204ff4039aae66502297a8bbea  gcc/config/nds32/nds32-intrinsic.md
! 4c3c4ed9284e35c608c766e7f0a8ee31  gcc/config/nds32/nds32-isr.cc
  d94163fd5e4660359b8b12a0d90ed1bd  gcc/config/nds32/nds32-linux.opt
! 719e4aabef7a328f098e59ff93acec20  gcc/config/nds32/nds32-linux.opt.urls
! 4c649d1c23cea7bb7c497b7bf944a509  gcc/config/nds32/nds32-md-auxiliary.cc
! 242d5cf5641a9ab1d7abb681379bd9f0  gcc/config/nds32/nds32-memory-manipulation.cc
! f5ca243858c6977f061c3b77ffe64b36  gcc/config/nds32/nds32-modes.def
! 780196c4ba58a424968968f944b73fbb  gcc/config/nds32/nds32-multiple.md
! 90df7a8ed408360d3b43c1c8c72ad9c5  gcc/config/nds32/nds32-n10.md
! be4240b3a91be59e7c50138572ab9155  gcc/config/nds32/nds32-n13.md
! 76a2337f60769892ae1dbd020d37ee4b  gcc/config/nds32/nds32-n7.md
! 683ada44ce41c84ecb67a740cbdaf78d  gcc/config/nds32/nds32-n8.md
! bc550973ca1e27fca3363ed86273afd0  gcc/config/nds32/nds32-n9-2r1w.md
! 3976c3fd9a232b6de63b914cba30fc15  gcc/config/nds32/nds32-n9-3r2w.md
! e1bfe6b71c3dfbdbb8ddedd5c7a6741f  gcc/config/nds32/nds32-opts.h
! e8cd28ff7616f6394a9ebd5905081727  gcc/config/nds32/nds32-peephole2.md
! 3817d764cbae9999496694edce2d3f00  gcc/config/nds32/nds32-pipelines-auxiliary.cc
! ef27ac9b2893b44ff08fc310b082ef9e  gcc/config/nds32/nds32-predicates.cc
! 90cf3373424b6f7822cbe45ff10dc93a  gcc/config/nds32/nds32-protos.h
! 0af1f3c3fd4a3db68bb43fcf136cb612  gcc/config/nds32/nds32-relax-opt.cc
! 0b583d4b240716664c4cfe26cdf5dd0b  gcc/config/nds32/nds32-utils.cc
! bba4e7b6f24c91a5c59aa96285fa9f95  gcc/config/nds32/nds32.cc
! f404dc7927596e68c8e205f39023308a  gcc/config/nds32/nds32.h
! 6e4a02350c7d18b551c61ae40579d2d2  gcc/config/nds32/nds32.md
! aebf38af043e0038787a2f648af2be64  gcc/config/nds32/nds32.opt
! 0a4b950a741ef3f9364b2178341bf6ae  gcc/config/nds32/nds32.opt.urls
  c09acceb380f58ddb795ee3e973945d7  gcc/config/nds32/nds32_init.inc
! 4625e9f4a74af3711e4c6dd8475e268b  gcc/config/nds32/nds32_intrinsic.h
! 8ebf04fe6544d8d775ca89ba0d46069e  gcc/config/nds32/nds32_isr.h
! 81644572e19bd81e5f9cc5b2762a4074  gcc/config/nds32/pipelines.md
! b3c99a725ab0a1ed9bc8628e004e48e4  gcc/config/nds32/predicates.md
! 9f6f594f1a02037e38476fbdf1dc1333  gcc/config/nds32/t-elf
! a02589bbafcfffa03e40b96741fc841d  gcc/config/nds32/t-linux
! 329bc98ad6347ced89f257cc4c276289  gcc/config/nds32/t-mlibs
! a82aa04e8d61dcb3b79ff4b349893562  gcc/config/nds32/t-nds32
! 0a0f2c7292a8c2541e602f1cdcdc44fa  gcc/config/netbsd-d.cc
! 194bf0cc394eb1d7dbbf0efc01ecab77  gcc/config/netbsd-elf.h
! 39feaa4d276eeaec3dc68ac29e91073c  gcc/config/netbsd-elf.opt
! 1a1e29e72d811e31228d3a71e808ff60  gcc/config/netbsd-elf.opt.urls
! dcb36e46a5f7f83ddeb3cd4dc07b426d  gcc/config/netbsd-protos.h
! 271655352eff23eb66b968c7a6bcd74e  gcc/config/netbsd-rust.cc
! 0700808b6ba1440db61f9bf19e2073d8  gcc/config/netbsd-stdint.h
! ccef1440d8b02196f64dd199c872307f  gcc/config/netbsd.cc
! b77fe142b3c34e2ffc032cb177dbecde  gcc/config/netbsd.h
! 5c0d7b5e6159759096192baddff30adc  gcc/config/netbsd.opt
! 2d8ddf3cb6445f1f788bf4c1f6f61300  gcc/config/netbsd.opt.urls
! a01bdbfe2529860c96a5588b899676ab  gcc/config/newlib-stdint.h
! a9c0caa5eab21c78dca08b1796cf1b1c  gcc/config/nios2/constraints.md
! dc85b7cfc8e4cba2460de105960dbe42  gcc/config/nios2/elf.h
! 770902e068686f6738be3cf67ded7242  gcc/config/nios2/elf.opt
! 4e415540231006f457c7fc54a6e99816  gcc/config/nios2/elf.opt.urls
! 849cd78aa2cb71df0185558f0fa9cd48  gcc/config/nios2/ldstwm.md
! b5ab281fbe51df5751de03e6ddaa4f62  gcc/config/nios2/linux.h
! 6d9cde397eafabe3919f02702f96590d  gcc/config/nios2/nios2-ldstwm.sml
! 77ef996ea29e1f516f5228866c36db58  gcc/config/nios2/nios2-opts.h
! 1fe008e750b7b153c58205e86087f284  gcc/config/nios2/nios2-protos.h
! dfa96a1763efa79462f4adc2f55671f9  gcc/config/nios2/nios2.cc
! 30c004ffa2de3ae1681a78f01c44c3cd  gcc/config/nios2/nios2.h
! 8cbaa3a6614cb0ad87ca2950d8ec9eed  gcc/config/nios2/nios2.md
! 7f62a6a895a9df2ac222da215d2aa916  gcc/config/nios2/nios2.opt
! 159531fefd516aaea05290c9f1ddbca6  gcc/config/nios2/nios2.opt.urls
! cd1726be72fe694fa4fbcabdc3d4a87d  gcc/config/nios2/predicates.md
! bb676c0ea92e8d245ca93f77ebf10724  gcc/config/nios2/rtems.h
! b7030e57163261f008a7c582240e65fb  gcc/config/nios2/sync.md
! b94ba58d7929315a19f45a1026989c44  gcc/config/nios2/t-nios2
  3369cb7fd894ad0eaae773a6ab4a00dd  gcc/config/nios2/t-rtems
! 03c23db1a4a517dff10c27da9593d1cf  gcc/config/nvptx/gen-copyright.sh
! dce785a0f9985c1153dc4ed6b0f632dc  gcc/config/nvptx/gen-h.sh
! 53c52fe254ffa5f57da90ac520262852  gcc/config/nvptx/gen-multilib-matches.sh
! 97eab4243fce1294e870085e7b71341d  gcc/config/nvptx/gen-omp-device-properties.sh
! a4c6fd4aaa811c8e040c15c56863e0bf  gcc/config/nvptx/gen-opt.sh
! baddea398212f18b17285b3fcadad0e3  gcc/config/nvptx/mkoffload.cc
! 1e342f11ea167537962a1103cfc6de69  gcc/config/nvptx/nvptx-c.cc
! 0796d961c0a76716c7c10f62c4cb1e0e  gcc/config/nvptx/nvptx-gen.h
! f19f579bcdee26d62bab821d45729ef5  gcc/config/nvptx/nvptx-gen.opt
! bbb2a2cf5c79743f967571a1b148fa76  gcc/config/nvptx/nvptx-gen.opt.urls
  83dfca9e2eb78c0e3ab66a3ff9681ad3  gcc/config/nvptx/nvptx-modes.def
! 2d39d9bb8a06adfa5f063f2273d83530  gcc/config/nvptx/nvptx-opts.h
! 5e5aad03a6e4f52add0dfb3caa22a812  gcc/config/nvptx/nvptx-protos.h
! 7d3534711d4135ef43d3ed23b7b0e862  gcc/config/nvptx/nvptx-sm.def
! 79443a5147b8055edb9512e642b94c62  gcc/config/nvptx/nvptx.cc
! bfec65923e6c17cb359eddfe8b0b41ad  gcc/config/nvptx/nvptx.h
! 2ac86ad52b9353c177b042069552f562  gcc/config/nvptx/nvptx.md
! 8e59803d94be8613c34c8dc2ed71cb57  gcc/config/nvptx/nvptx.opt
! 9f6a6bd81fd60202f0fc899508209227  gcc/config/nvptx/nvptx.opt.urls
! 9e15c83dca398907bd00fa803301d67a  gcc/config/nvptx/offload.h
  64e41b90884bcc60ef49490cc20e0fc1  gcc/config/nvptx/t-nvptx
  bc001c03517e71a9f90411d80f0f2134  gcc/config/nvptx/t-omp-device
! be403cddc9907da37c08fa6e8daa7de8  gcc/config/openbsd-d.cc
! 8d0b2f528461ac753a0e5bd2ad1d7cde  gcc/config/openbsd-libpthread.h
! 985adf48731900a0cc2bc15179e2b525  gcc/config/openbsd-rust.cc
  3d4a70d0decf61f1fba17df545cea7f5  gcc/config/openbsd-stdint.h
! 8e72268f56f6e7215f16a8a44f6b678f  gcc/config/openbsd.h
! 839d1656be1c65df8b39bbfe23dc531d  gcc/config/openbsd.opt
! f2528020fcdc72755829904c1e2bd9cd  gcc/config/openbsd.opt.urls
! 93afb5c37280d7057d41f97cb9652303  gcc/config/or1k/constraints.md
! 76f47ee2d2c2043785daa02f69adcd5c  gcc/config/or1k/elf.h
! 1c67560c086aa98832e685647e2b485e  gcc/config/or1k/elf.opt
! 8e462ede2b5e4ca4e9b77d96feeea5ff  gcc/config/or1k/elf.opt.urls
! 9487a16b15521782929ca62d7215fc3b  gcc/config/or1k/linux.h
! e271d2b9e84052852ddf7a76210824cd  gcc/config/or1k/or1k-opts.h
! 87161d0800f278ec9f69392c6db1efe3  gcc/config/or1k/or1k-protos.h
! 31c9f76d7248931a07057cd4820a6f89  gcc/config/or1k/or1k.cc
! 8ac271eb3fe5e9df995b0da677e170e4  gcc/config/or1k/or1k.h
! 72f6fbd17f5f3e1bf87370eaebab21dd  gcc/config/or1k/or1k.md
! ec86c2f80af5fabfe38a5550b022de82  gcc/config/or1k/or1k.opt
! a02f9609ab31ebce723e17fcc93e6a1e  gcc/config/or1k/or1k.opt.urls
! c451f136fd38e9eb411ab119f6a03a6f  gcc/config/or1k/predicates.md
! 4f79c9da24a976d0be07c85dda113f97  gcc/config/or1k/rtems.h
! 849e90daceb1e8271155dc46cb3f3b14  gcc/config/or1k/t-or1k
  f58d4380ee68891690f4302989ce00cb  gcc/config/or1k/t-rtems
! c3e8a975864faf6ac01dee27c5efe059  gcc/config/pa/constraints.md
! 7b39cf9e736761c2a549cd91177c34e9  gcc/config/pa/elf.h
! ad209e31a0b7237ec467dd7c032c2d42  gcc/config/pa/pa-64.h
! 4e1207a70de8e601a141a2e7dce62a32  gcc/config/pa/pa-d.cc
! 66b153e75a9aa242f6518cc72a6f371e  gcc/config/pa/pa-d.h
! ece8b499b3bfea4f80635f8ad1838a41  gcc/config/pa/pa-hpux.h
! a85d2a4cf8f325c98182ba077961e5ff  gcc/config/pa/pa-hpux.opt
! c72bd414f990a9fee6e01780673cdd56  gcc/config/pa/pa-hpux.opt.urls
! 7bc01f457922ec3bf22cc5e5bf9939c8  gcc/config/pa/pa-hpux1010.h
! b07c534b1b5f2d8cbe554c71eb2512c5  gcc/config/pa/pa-hpux1010.opt
! e13114ae33cfe970d30b76ba8cd4f419  gcc/config/pa/pa-hpux1010.opt.urls
! d1aa0b2a8d82f96aea295bb82d26f350  gcc/config/pa/pa-hpux11.h
! 5623ce98f2687efed47c5e26d497e97c  gcc/config/pa/pa-hpux1111.h
! 25d152fba9c48ab817249f8f89c15e49  gcc/config/pa/pa-hpux1111.opt
! 8442020af66ca252bb847f6f824cb155  gcc/config/pa/pa-hpux1111.opt.urls
! 9b7d1762c668621582b7171e622b85ea  gcc/config/pa/pa-hpux1131.h
! c992e1d21afdfa8a13cb427a468792c4  gcc/config/pa/pa-hpux1131.opt
! 43fc590b7aacc54072ef9661be7c024e  gcc/config/pa/pa-hpux1131.opt.urls
! 888855eb499903ed506569992258ed34  gcc/config/pa/pa-linux.h
! 670bfe92433565761112fe829101ccb9  gcc/config/pa/pa-modes.def
! b7669cc185ce4e8fa5543db9fc552fad  gcc/config/pa/pa-netbsd.h
! 961575276a4c92065805fa132d6f96a1  gcc/config/pa/pa-openbsd.h
! 9a661bb63af8309862f216a5145b35ff  gcc/config/pa/pa-opts.h
! 1ab2b014b27f77e96f50795bfab8fcbd  gcc/config/pa/pa-protos.h
! 5e7bd06971fa251b78ada8e4874d9151  gcc/config/pa/pa.cc
! 236e2aa482ef7ba69da0730d16395b1b  gcc/config/pa/pa.h
! 661d567a2204f3ceb15300db6f81d52a  gcc/config/pa/pa.md
! 99a0932bde9ea4de72d6b9b3cb2b2d99  gcc/config/pa/pa.opt
! 8cc2f0b358c76ec2ce7a16d18a9ecdab  gcc/config/pa/pa.opt.urls
! a1446d33e89118d0751edab5743fff48  gcc/config/pa/pa32-linux.h
! cf244d98954d0ae296af3233559817c9  gcc/config/pa/pa32-netbsd.h
! e13fa24d8035310d9d4cab013259fb09  gcc/config/pa/pa32-openbsd.h
! aeac851d81ac41009ebd6143f1855a70  gcc/config/pa/pa32-regs.h
! 17498f089c9f66743357ceed3d2f4c38  gcc/config/pa/pa64-hpux.h
! b87266431f34c0a5e354637ea22ce4d3  gcc/config/pa/pa64-hpux.opt
! b9670a9aa8c6577d9c71118121d7f9a8  gcc/config/pa/pa64-hpux.opt.urls
! 7b2073c847d6b2d0c525ab1243bd166a  gcc/config/pa/pa64-linux.h
! 4fc050150d7598b1b265cf032a7a201e  gcc/config/pa/pa64-regs.h
  a9a6afd79b827565ffb8de8330b4cfe6  gcc/config/pa/pa64-start.h
! 49c80654e375d305126df871962b0baf  gcc/config/pa/predicates.md
! 6d8fd7158a4616e761bc26cfa7a68457  gcc/config/pa/som.h
  6fd25f8c665d2d7390ea94c01dcb8e34  gcc/config/pa/t-linux
  16f4ce216414d19c044dd93c60d948ae  gcc/config/pa/t-pa
! c1336be70e1617a6776b347c8987311d  gcc/config/pdp11/constraints.md
! 6b630312a3db19867b774b0d92c8969d  gcc/config/pdp11/pdp11-modes.def
! 535d8ae84d3fc97e7ee16cb5d4feb8d3  gcc/config/pdp11/pdp11-protos.h
! f5e5ef5ac6d3ef4ba4c479cd8951d8c1  gcc/config/pdp11/pdp11.cc
! aa21c3037bd3d2fb64a9851d53018271  gcc/config/pdp11/pdp11.h
! 7bef40d73ee841f4b8387eaec8d8c4b8  gcc/config/pdp11/pdp11.md
! 5195cd1530318f685cc9979f02f60656  gcc/config/pdp11/pdp11.opt
! 635cae153d933366eee0a122693ed3e9  gcc/config/pdp11/pdp11.opt.urls
! 4ec6dedac3c00f79055307d434e6f3ad  gcc/config/pdp11/predicates.md
! 46645269acdd4dabb5ae1838023cf2ba  gcc/config/pdp11/t-pdp11
! e6b375094e157d50ccf48aea3545eaa0  gcc/config/phoenix.h
! 2d9b05537e5194b675ea88b74550c21c  gcc/config/print-sysroot-suffix.sh
! da8a7f454b699c3b7a86cc0d420bce4c  gcc/config/pru/alu-zext.md
! 71c06c8cccbea7b2419936379102739d  gcc/config/pru/constraints.md
! dcce42c5cbd9b32976bf3427af8f25b3  gcc/config/pru/predicates.md
! 8bd8917c8f24a0cdd090920f27512142  gcc/config/pru/pru-opts.h
! 13ca59b98b5f9bb4f7f6dc773f37b3db  gcc/config/pru/pru-passes.cc
! 46db74b503137d6be9955c243db12812  gcc/config/pru/pru-pragma.cc
! da6d20611081847c6d0a6c074d0295de  gcc/config/pru/pru-protos.h
! 4a12329e5800ba6840ee400076f9c603  gcc/config/pru/pru.cc
! 4239d4a3f648b7ce43e098e684184e10  gcc/config/pru/pru.h
! 8ba1173953866538310a65f551d68d74  gcc/config/pru/pru.md
! 40df1af7d7f36efb4df7dc28f979d2b9  gcc/config/pru/pru.opt
! cd13b51383c99c08d86250b61fed3805  gcc/config/pru/pru.opt.urls
! 925fefbfe10f585ae43a5f536e35ed8e  gcc/config/pru/t-pru
! 36b5239210d6056bc2a9b75ced8628cc  gcc/config/riscv/arch-canonicalize
! bfd0539b34b31ec4b1071313c474c03a  gcc/config/riscv/autovec-opt.md
! 90d20453dd68ff7ff723eb7343d62545  gcc/config/riscv/autovec.md
! 068e15259fb4483ac432370be4cb08af  gcc/config/riscv/bitmanip.md
! 9bb0c19bd342a2abfa23fa98af63e67e  gcc/config/riscv/constraints.md
! 4e0968dc35562b151fd162778542718f  gcc/config/riscv/corev.def
! 8825a9803873a36f2c4419e121b8704e  gcc/config/riscv/corev.md
! b1c5aa940007c6348dba4f5ddd5777b9  gcc/config/riscv/crypto.md
! 78f88d9b60ba63e87f9b94a5de5c5581  gcc/config/riscv/elf.h
! e784517329f5f7f1b97c3fdad0151cb9  gcc/config/riscv/freebsd.h
! 67349b6abc9ca0f9462d4a4a4c63ba66  gcc/config/riscv/generic-ooo.md
! 7b21804a866d1aefc8ff9f9f2b799a46  gcc/config/riscv/generic-vector-ooo.md
! e4b06767ed172a173408006bc78fe8b5  gcc/config/riscv/generic.md
! 3327220ba0d914e2bd4a0fb8a1d3c78a  gcc/config/riscv/genrvv-type-indexer.cc
! ba2590081eeaa8b3873bab3d90fdc339  gcc/config/riscv/iterators.md
! f5af4aeb79392091287bcb0e58073815  gcc/config/riscv/linux.h
! c3b7fa956c542244a4f14866f3100a36  gcc/config/riscv/multilib-generator
! 350ce079519878cb36e7ba6e6cde1d14  gcc/config/riscv/peephole.md
! f29f2c65dd508b9b9925c7a4adaca3d1  gcc/config/riscv/pic.md
! 8d26720f7035dc4d86aabbeafdfc06e5  gcc/config/riscv/predicates.md
! 95dc36e4fbb7e94d838c02035ddc1127  gcc/config/riscv/riscv-avlprop.cc
! b5f0d6922d5f28d045df03b2e83f9df4  gcc/config/riscv/riscv-builtins.cc
! 4bd9efb2d47b1b765756163715054b13  gcc/config/riscv/riscv-c.cc
! 3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
! 065e84866de16f19bdf3041a828ffff0  gcc/config/riscv/riscv-cores.def
! b3cc72fa930df5e954eabc6418777fb1  gcc/config/riscv/riscv-d.cc
! 8bc7bbace9a41a7994f08b7175e23f14  gcc/config/riscv/riscv-d.h
! 4aaa2fad5cce26a747bf5143d8b8a6dd  gcc/config/riscv/riscv-ftypes.def
! a0742dc4c1dbbf1c2280dc2fd5cb1b22  gcc/config/riscv/riscv-modes.def
! 97e570bfe440faba5768b82e0ef85530  gcc/config/riscv/riscv-opts.h
! 4ba168676c5142faab20d8549a50c572  gcc/config/riscv/riscv-passes.def
! b10c291d9fbf8c7ed24cc9851ecc0071  gcc/config/riscv/riscv-protos.h
! 47243c088f75032850a676e28848d300  gcc/config/riscv/riscv-scalar-crypto.def
! 8599f55379a8c8fc0b569c7401645a66  gcc/config/riscv/riscv-selftests.cc
! 65eccada1e1fa71149c3e0c4affebc61  gcc/config/riscv/riscv-shorten-memrefs.cc
! 5c3428e560989d67f2ebe3b3ac03eb7b  gcc/config/riscv/riscv-sr.cc
! c4abbcf86352b7dee6f69dedf9777c32  gcc/config/riscv/riscv-string.cc
! 1c27a448f675f166526978a227215964  gcc/config/riscv/riscv-subset.h
! 8db1ec44d4f7584e1a2f5e28063be7a0  gcc/config/riscv/riscv-target-attr.cc
! bcc7aefb4c5b562401b68b0558ae66a6  gcc/config/riscv/riscv-v.cc
! 06431190e55511329e02b338d789784a  gcc/config/riscv/riscv-vector-builtins-bases.cc
! c34f914da7fbda14b1071fada8f6e6d8  gcc/config/riscv/riscv-vector-builtins-bases.h
! e5994b69fca42473b2755542472e1d36  gcc/config/riscv/riscv-vector-builtins-functions.def
! 0dce25be85c82ec1304867659b573255  gcc/config/riscv/riscv-vector-builtins-shapes.cc
! e7b016b9c4ea7dda4fac519d1b7103b2  gcc/config/riscv/riscv-vector-builtins-shapes.h
! 909b149eb030b1beae6a541cebe19be2  gcc/config/riscv/riscv-vector-builtins-types.def
! 80034be67be0fec4e7538b466e1a4279  gcc/config/riscv/riscv-vector-builtins.cc
! 455f3d7c358009737898d478b2e56191  gcc/config/riscv/riscv-vector-builtins.def
! 79f918a11f4859db5e23443fb384b720  gcc/config/riscv/riscv-vector-builtins.h
! 654f267f76053c5658a1d061ada5ed32  gcc/config/riscv/riscv-vector-costs.cc
! d99509eaecd0c207104902aad225c650  gcc/config/riscv/riscv-vector-costs.h
! dade0b49152a8c59a779044da51013cc  gcc/config/riscv/riscv-vector-switch.def
! aa4c931b38e31aaa41dead9fd1407d7b  gcc/config/riscv/riscv-vsetvl.cc
! e8c3db2e9a3a0a27503c6f22655b68cb  gcc/config/riscv/riscv-vsetvl.def
! c324276109696786ba27028bd3ae6e26  gcc/config/riscv/riscv.cc
! 16119f3f181a96d14e1b5d8f95695c89  gcc/config/riscv/riscv.h
! 18b86eb6a9d14f983f52ea232a010bb7  gcc/config/riscv/riscv.md
! 1bea1008bae8b3c77d9e9fb148d4410b  gcc/config/riscv/riscv.opt
! f6ce058c6efa408fe8c66c420007726f  gcc/config/riscv/riscv.opt.urls
! b665da1fdaa8aa38e828c888fdd4fdf4  gcc/config/riscv/riscv_bitmanip.h
! 0fe261f9efaf4e1ae371c3fb922035e8  gcc/config/riscv/riscv_crypto.h
! 3449e0a67d07de8c9e2692d564ec5286  gcc/config/riscv/riscv_th_vector.h
! be9235fb5c36236ad72b5be803994ce4  gcc/config/riscv/riscv_vector.h
! 71d1a997d7d3a1de8da27230f3a69507  gcc/config/riscv/rtems.h
! 99dd4cb267c57eabec23a59dbd781c96  gcc/config/riscv/sfb.md
! be325acf7e97346df2b332f8be3e7c26  gcc/config/riscv/sifive-7.md
! 4bd546da4f447a6411214164ad27c10e  gcc/config/riscv/sifive-p400.md
! 573ed3885e39b6ef4cf281949a9762d5  gcc/config/riscv/sifive-p600.md
! b251c573096a206a8933a2bb144cb661  gcc/config/riscv/sync-rvwmo.md
! 2b6b4a116070440fa88e0d9cebb68ed6  gcc/config/riscv/sync-ztso.md
! 9aad0ec1aa271c5e9b9e4aef47a51a60  gcc/config/riscv/sync.md
  1c27821991689abdaa7a908a0cc8dfa4  gcc/config/riscv/t-elf-multilib
! 381cb38e167feed84dad697fce89cabd  gcc/config/riscv/t-linux
  1ed181a166b1d0e206c4a4e0024cce2a  gcc/config/riscv/t-linux-multilib
! ec02e967b14debba17bf429a6f0e7914  gcc/config/riscv/t-riscv
  b46131fe425be428d4d66c8f653f3d13  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
! 39d9c3d7ef5259e656441e5a5a5b03b6  gcc/config/riscv/thead-peephole.md
! 325f22596295559607b476e5a2a4d491  gcc/config/riscv/thead-vector-builtins-functions.def
! 16054f1c85f94ab69d91cae160575415  gcc/config/riscv/thead-vector.md
! cee5f12dba96bedd20cdaf3774690355  gcc/config/riscv/thead.cc
! c388a1237ba7f2ab12a33cb145f43640  gcc/config/riscv/thead.md
! 07cd95ea9283a84f02a2d51ea74a1069  gcc/config/riscv/vector-crypto.md
! 4171865241b5129a36b18b41c9697602  gcc/config/riscv/vector-iterators.md
! e552d8df88198fafb6ecafcd3321672d  gcc/config/riscv/vector.md
! 7762b3bd400424c958f2f2bdd75ec5b0  gcc/config/riscv/xiangshan.md
! e8a61087443cebc7a9395388b07dd370  gcc/config/riscv/zc.md
! 83f721e7aec94b5267ee044f4e6fdb04  gcc/config/riscv/zicond.md
! af6cda0ae434136d489e94f8cffd7b3d  gcc/config/rl78/constraints.md
! 3b398466474cf0d04e5239e01eb95b1f  gcc/config/rl78/predicates.md
! 108f054db62f647374ffc2dd77df9cdb  gcc/config/rl78/rl78-c.cc
! cf5ddccebe3c9797e9fd4719d5016660  gcc/config/rl78/rl78-expand.md
! c1da1789174e4797422c4cac513a805c  gcc/config/rl78/rl78-opts.h
! abdb6b186a0d88ef64a510725323e98d  gcc/config/rl78/rl78-protos.h
! 83daf1f3c4102a915f91e589dc7ace47  gcc/config/rl78/rl78-real.md
! 721dde7ebcba1925b4e71e9f642699a8  gcc/config/rl78/rl78-virt.md
! dcf9bede185abd61bc0ea9f1df9bcba7  gcc/config/rl78/rl78.cc
! dd9bab3b788041355dea98bc51dc8f5e  gcc/config/rl78/rl78.h
! 1b77929a2941249a9341a7c9a19b5049  gcc/config/rl78/rl78.md
! 9a10fa9de4a5d670cfd0b23f403ef8bb  gcc/config/rl78/rl78.opt
! 0b873eb0e14cb2abf80aa2e90955904d  gcc/config/rl78/rl78.opt.urls
! 671528f327e072ccc919eb935bedd63a  gcc/config/rl78/t-rl78
! e930709475e75d9d748409147510767d  gcc/config/rpath.opt
! 1ba216c6712cc1a82121154d5193a339  gcc/config/rpath.opt.urls
! 77e9eba3c100980b12089ac899081ac5  gcc/config/rs6000/40x.md
! b9bdee19a6baacad40d1d9f5fd48a03b  gcc/config/rs6000/440.md
! c478bc4056536df202907bbd6487dc7b  gcc/config/rs6000/476.h
! fdc507f1a8dc590fc92e27e8eeca6002  gcc/config/rs6000/476.md
! 31559556f643d02438ef2f3765a5495e  gcc/config/rs6000/476.opt
! e1a9c8119beed7008786bcb91a9dfe0a  gcc/config/rs6000/476.opt.urls
! b90be7241b09b6dba2869ccc3a294c7b  gcc/config/rs6000/601.md
! 2b8590c7183e02d1a09be66458a5f8d1  gcc/config/rs6000/603.md
! 283294f60c6e427747a3e5c29b786a71  gcc/config/rs6000/6xx.md
! ab96e4c20c9c841f1292ab0babbfc0b1  gcc/config/rs6000/7450.md
! ca2b2d3742c347b81fe1aec30d830735  gcc/config/rs6000/7xx.md
! 88bace7f271c41d15e1776ce901c81d4  gcc/config/rs6000/8540.md
! ace447911502244415407168b2b26546  gcc/config/rs6000/a2.md
! 07856219672480d75398d24a15048832  gcc/config/rs6000/aix-stdint.h
! c64df3316d3e58a27e1ab2161d16ba84  gcc/config/rs6000/aix.h
! 715344e1ef4fbd3e74d831e493df765a  gcc/config/rs6000/aix64.opt
! 7ed2003156dc5875ca3b657a11836729  gcc/config/rs6000/aix64.opt.urls
! dc688b5f626585d25113aef49d081f9b  gcc/config/rs6000/aix71.h
! ffc5586f80b9788d4b55d8331f0f850a  gcc/config/rs6000/aix72.h
! 5e8be43368467469a49a8ae25a3a5a99  gcc/config/rs6000/aix73.h
! 5e39c7d6e3640a3400fe9e5bb2a2f131  gcc/config/rs6000/altivec.h
! f16a7135c4c0300318a5e9f2eb36627d  gcc/config/rs6000/altivec.md
! 4c19337be8b22dedef423434cf0a12be  gcc/config/rs6000/amo.h
! 4ceef8d1de734345cc9e53fddee7b98b  gcc/config/rs6000/biarch64.h
! 13c13869e4dd869e54cf393e1c6541c6  gcc/config/rs6000/bmi2intrin.h
! d664ff6b3c4e795d95e67b565ce7e019  gcc/config/rs6000/bmiintrin.h
! 630fb850674d676fdff9b7d8a33e2965  gcc/config/rs6000/cell.md
! 5275dc9a6d237dd6e83496ac3279393f  gcc/config/rs6000/constraints.md
! e9ad3ccad40ce71d5c287bc67e2568e7  gcc/config/rs6000/crypto.md
! 0906c4158948756bc91b43cb97407f48  gcc/config/rs6000/darwin.h
! db031c4dea9e32ea7f2fdb191803529d  gcc/config/rs6000/darwin.md
! f460662c0a0a5cd3d352d9702c731613  gcc/config/rs6000/darwin.opt
! 465e67f2fa0bad834639122551e17ab2  gcc/config/rs6000/darwin.opt.urls
! c20a9342c81be3c9f779ce69bae65e30  gcc/config/rs6000/darwin32-biarch.h
! 3f5fcd866bf169a2212ad6bf44edab98  gcc/config/rs6000/darwin64-biarch.h
! d7ae4cfcd5d159cc6e32671d54347485  gcc/config/rs6000/darwin7.h
! 89fb88ea0af9a0acb2082685ea2e53b9  gcc/config/rs6000/default64.h
! 4c13d08e72a1c018f045809bc45e72c5  gcc/config/rs6000/dfp.md
! defd762a5d784d0e554cdc0e9fe6e214  gcc/config/rs6000/driver-rs6000.cc
! 5d2d3bd9094073ca96454ce0517c7f0a  gcc/config/rs6000/e300c2c3.md
! 6bb73bdcf5a4f4dc0d0e67e9dc6ba9d7  gcc/config/rs6000/e500mc.md
! 92d1e6cf753055ddee533b8b900f2c4d  gcc/config/rs6000/e500mc64.md
! 6b25f71ac979f87c9659e1c2fe019455  gcc/config/rs6000/e5500.md
! 6aadb0bcfa0d3c2c4bf6ec198c58b794  gcc/config/rs6000/e6500.md
! ff9a66815b819fcdb63f92c34ac7820d  gcc/config/rs6000/eabi.h
! 2731639d5f800874a5b4e6aae95c5e23  gcc/config/rs6000/eabialtivec.h
! 7eb875fd2fea98c75f8c51787a1e247f  gcc/config/rs6000/eabisim.h
! 10e293b54be24f58c077cdacb044ad45  gcc/config/rs6000/emmintrin.h
! 03a4bcf0998c553f60759c332d12d492  gcc/config/rs6000/freebsd.h
! 055fdb6ca2267d0a927b6d4acbbbe579  gcc/config/rs6000/freebsd64.h
! 7238b035f18e2b88be7a213a4e8d769b  gcc/config/rs6000/fusion.md
! dc817b389ec934f882aca3e82e1257fd  gcc/config/rs6000/genfusion.pl
! a35c0d81ceeda3b23dab305941ec5e4d  gcc/config/rs6000/genopt.sh
! 5fd89d2ec8e0690174b1511be8bd128c  gcc/config/rs6000/host-darwin.cc
! 28aa6941589488591d9d2099fdb46271  gcc/config/rs6000/host-ppc64-darwin.cc
! 19b5909a7f12b0ea57a980055545cd6c  gcc/config/rs6000/htm.md
! ba2ab60fa1318d44abe7a62a5af7de7a  gcc/config/rs6000/htmintrin.h
! 2f77fe2072468445ea21e09ab1b6ff55  gcc/config/rs6000/htmxlintrin.h
! 5c8e9790e53d576531a51205834430a6  gcc/config/rs6000/immintrin.h
! 47fc797e5d41176601b5e4af5d4da834  gcc/config/rs6000/linux.h
! 5ed92819f1bfd485d1c32a1903e4c618  gcc/config/rs6000/linux64.h
! 7202a1aaaa9afe74bef516c05897edcd  gcc/config/rs6000/linux64.opt
! 9fa6a809661bc257a6e01e3906850e3b  gcc/config/rs6000/linux64.opt.urls
! 925c6025f31525580c668151520609b5  gcc/config/rs6000/linuxaltivec.h
! 49b52723f313e95bdc0c09d9dc9442b1  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
! 6f1746b0c64c9c49742ceedf680dd3af  gcc/config/rs6000/mm_malloc.h
! 31bc734abcc16b9cb17cb59b0d6ea00d  gcc/config/rs6000/mma.md
! f123d353049f070c574461ecb7ab8374  gcc/config/rs6000/mmintrin.h
! 10f9053d0b9848a78d6879c38282fb29  gcc/config/rs6000/mpc.md
! 6bab9f6ddecf1c08f4b86a4afb3a7ecf  gcc/config/rs6000/netbsd.h
! 5f25e02a051c541d6488cdd195a26e7f  gcc/config/rs6000/nmmintrin.h
! a68bea754f3d8e6e116284e4a2722e0f  gcc/config/rs6000/option-defaults.h
! fd37764448313ce587ac1300d6d3a8f6  gcc/config/rs6000/pcrel-opt.md
! 458b3fa53053aa50c066ad35644e12a1  gcc/config/rs6000/pmmintrin.h
! be32291a4ca80b881e69e2f965293955  gcc/config/rs6000/power10.md
! 7a74854f55db27e8268e68a53e668942  gcc/config/rs6000/power4.md
! 32b1aa193db3a4af28cb07edb6858358  gcc/config/rs6000/power5.md
! 01d883a1b0c4989f084fd53fc4be0446  gcc/config/rs6000/power6.md
! 66fd1abf974b6b08386d8ccb343ff6f6  gcc/config/rs6000/power7.md
! be74e9d9f50b113a3b00ed3fe44f930e  gcc/config/rs6000/power8.md
! 58cf9dff2d7dc44c4b5adfa196189b94  gcc/config/rs6000/power9.md
! 4c2392f6eb73f71a6837c4c21dce374c  gcc/config/rs6000/ppc-asm.h
! 3d1e69cbeb5330f895c37e44d0cfe004  gcc/config/rs6000/ppc-auxv.h
! 3a11d74714c9678a757410ec5b83d23c  gcc/config/rs6000/ppu_intrinsics.h
! 85fcbc6c0c464c6e71b27a3656a6d37c  gcc/config/rs6000/predicates.md
! ddc27d9ceea8191a7cbfb42159a56be4  gcc/config/rs6000/rbtree.cc
! 200b6eccb63040bee4a9133bab14bb26  gcc/config/rs6000/rbtree.h
! d76b7d6081d1f0b1fda3dbcd7d83401e  gcc/config/rs6000/rs6000-builtin.cc
! c16f627e7bf0fcbd3a7f08aec359a092  gcc/config/rs6000/rs6000-builtins.def
! fa620a71e74ac2353a0c6faf091d343e  gcc/config/rs6000/rs6000-c.cc
! 8119e87823cbb6f1761f91aeb4d3c6ea  gcc/config/rs6000/rs6000-call.cc
! 6d757bc300be00bb395a28d2394f1abd  gcc/config/rs6000/rs6000-cpus.def
! 814d95cd094abacbcf3e466bfdc3646f  gcc/config/rs6000/rs6000-d.cc
! 352434ec043433b9c854bc6a1a5d1c6e  gcc/config/rs6000/rs6000-d.h
! 30f4e247bf44a4605a74023a5938bfce  gcc/config/rs6000/rs6000-gen-builtins.cc
! 4e40768415787540c7aed2700bb4ef5c  gcc/config/rs6000/rs6000-internal.h
! 487ad2b30042f0c9269249ccd36f8105  gcc/config/rs6000/rs6000-linux.cc
! 52156264f104b8cb9de546f9f1f5e8ea  gcc/config/rs6000/rs6000-logue.cc
! e05768afb38466ef41729c3114f73bee  gcc/config/rs6000/rs6000-modes.def
! 5955f1d898e13eb24f4c2a785802d5f7  gcc/config/rs6000/rs6000-modes.h
! 18a9547c5e579aa06052d806cc2e3d7a  gcc/config/rs6000/rs6000-opts.h
! 71d27bad6a7f32aa9578e972dc8d2393  gcc/config/rs6000/rs6000-overload.def
! 7c88881b4a1b097a2c671a55c832e5b5  gcc/config/rs6000/rs6000-p8swap.cc
! 06c1fe7d6c0f56d4711c159fcfd5d356  gcc/config/rs6000/rs6000-passes.def
! 373bd99acab7b333130b52f9f3310780  gcc/config/rs6000/rs6000-pcrel-opt.cc
! e99d78e4dd33a6aa584724df90e53b4e  gcc/config/rs6000/rs6000-protos.h
! d1b6440bd517cf225cfb3fc456f4e255  gcc/config/rs6000/rs6000-string.cc
! 85fa108131e3f426fddb02a2b46206ed  gcc/config/rs6000/rs6000-tables.opt
! ce8de9a27f36b759a69194616c02eb38  gcc/config/rs6000/rs6000-tables.opt.urls
! 75354b0050dc3d7a6dc6cbbcc9222140  gcc/config/rs6000/rs6000.cc
! 1f435f0805c4a7880227fc7bdc020904  gcc/config/rs6000/rs6000.h
! a7160210de39227beec843aa635f45be  gcc/config/rs6000/rs6000.md
! 0067e312c15743199c1342845f4eed87  gcc/config/rs6000/rs6000.opt
! f041ba7cede4ca8e4e8a9e987adbe629  gcc/config/rs6000/rs6000.opt.urls
! 29600bfcf064db2d3bccf3470cb14924  gcc/config/rs6000/rs64.md
! a3838656dfadaf00ef293f58e605491e  gcc/config/rs6000/rtems.h
! 1359f1feabeda5f4a74fcead3b1b0994  gcc/config/rs6000/secureplt.h
! 85770b6f199946280840cc280a401456  gcc/config/rs6000/si2vmx.h
! ed7737e5c6e8aecacd28f09a01277fbe  gcc/config/rs6000/smmintrin.h
! 1528b21b29064f396157975a02a7479f  gcc/config/rs6000/spu2vmx.h
! 8308c8171c552d27f245f47ca2539277  gcc/config/rs6000/sync.md
! 81d05e7a82179801305ecb2b6cdcc408  gcc/config/rs6000/sysv4.h
! f2bdb7c82db5fc3c5f1e66ff0e995185  gcc/config/rs6000/sysv4.opt
! 665ad5fb698deb6ee59b34e0b9f64c6d  gcc/config/rs6000/sysv4.opt.urls
! e026cf1d74bddf541c91afa4a66b9404  gcc/config/rs6000/sysv4le.h
! e5b58900ac0e6ca3f00cfbae643cc420  gcc/config/rs6000/t-aix52
! dea6f314b6c22cad626ad47d6595521e  gcc/config/rs6000/t-aix64
  636250eb91fc5dada4804efcd525fc02  gcc/config/rs6000/t-darwin32-biarch
  f3250b9720d1149346f1ef8e21b52ea9  gcc/config/rs6000/t-darwin64-biarch
! 304201f9b714a743bcb205ee963da887  gcc/config/rs6000/t-fprules
! c93c7c5b0e2b3a623194d9b9419fa41d  gcc/config/rs6000/t-freebsd64
  7708df4fc7a5677f2dd3097c7bb5b338  gcc/config/rs6000/t-linux
! 8ce3d9c33eb5a6b7eb468c5c81c4ab4b  gcc/config/rs6000/t-linux64
  71c0a0470047f0171a3bb4c483eb2b72  gcc/config/rs6000/t-linux64bele
  489699b655594f05bae0b429fd261edb  gcc/config/rs6000/t-linux64le
  60f26523152f6a061a12cb17e987de12  gcc/config/rs6000/t-linux64lebe
! c5d37f1c886af81f064849e7ae94e5ca  gcc/config/rs6000/t-lynx
! f6cab4f43527986d1fd000c554a8ec01  gcc/config/rs6000/t-netbsd
! 20028a235bbac0e08bbe11df6162c419  gcc/config/rs6000/t-ppccomm
! c9d8c2412eb62bc04bfac20206a1166f  gcc/config/rs6000/t-ppcendian
! 2c4fce738182c1993bcd8af3caa463ad  gcc/config/rs6000/t-ppcgas
  1b8aba690a39464c4ea9c647d73d6983  gcc/config/rs6000/t-ppcos
! 82ec18f7e5b77db59003e785be449d70  gcc/config/rs6000/t-rs6000
! 0bfa837dd878560078c9177d7298b9b0  gcc/config/rs6000/t-rtems
! 172ddcfe5b92d548f196a7562ed1024f  gcc/config/rs6000/t-vxworks
  f11925c88524d2fd457bf77944da1302  gcc/config/rs6000/t-vxworksae
  3f0601a68de7a0aee8264b538228d943  gcc/config/rs6000/t-vxworksmils
! 61025a66bc7d58f34a093da601089b32  gcc/config/rs6000/titan.md
! 0a88b1fc4b596cd84e7825b3a5f3b524  gcc/config/rs6000/tmmintrin.h
! 869601137999c1447aaab0b73104dcdb  gcc/config/rs6000/vec_types.h
! 205bbf4f9ece545c1eff934c146a75b2  gcc/config/rs6000/vector.md
! 01f7b00cfc78572425043cbe071ddcba  gcc/config/rs6000/vsx.md
! 62cd6bf777af9270cbc8947ee14941f1  gcc/config/rs6000/vxworks.h
! 6400c28de85928df70c96f8795d988a1  gcc/config/rs6000/vxworksae.h
! a8c4ccdf64c535c04aea49b25e2edd70  gcc/config/rs6000/vxworksmils.h
  44a93bbae0ad5aba424ba7b97cc6914d  gcc/config/rs6000/x-aix
  b56ad5be71cef10dc9ee90f9f5577c21  gcc/config/rs6000/x-darwin
  0d6a4902892897c148fbf634ca039f71  gcc/config/rs6000/x-darwin64
  3f42272f4bcf66031ebf71a6c876adb8  gcc/config/rs6000/x-linux-relax
  c8b5860d3a61eeddd3a9790a0f09ed6c  gcc/config/rs6000/x-rs6000
! 4ac749de4ed0465485f641a5969c4fb6  gcc/config/rs6000/x86gprintrin.h
! 3c384b22e5ca6ec3f96781e61c0759f9  gcc/config/rs6000/x86intrin.h
! e93e10f75213bddb7988b6ba5a69547b  gcc/config/rs6000/xcoff.h
! 60441713c16d9e181d94bffc8a54c574  gcc/config/rs6000/xmmintrin.h
! d816cd78e598b739e34366ba99b902ed  gcc/config/rtems.h
! d9d97685dca75857b55e0503c9482223  gcc/config/rtems.opt
! 63d27d06289d5f9814baae9a6feaa996  gcc/config/rtems.opt.urls
! 7d23e6c729179711c904c8f9ad0ceea7  gcc/config/rx/constraints.md
! 2868f31c4be2578bcad3ba1e66e3de10  gcc/config/rx/elf.opt
! 495c9b539f4b3f5645b59d1084a92957  gcc/config/rx/elf.opt.urls
  84ae77475029b49553276e3d7ed74cec  gcc/config/rx/linux.h
! f54b260bf95c98c583c18c044bb1a5c3  gcc/config/rx/predicates.md
! dd7e1906b465f219c108a458406f9016  gcc/config/rx/rx-modes.def
! 7d635c4fceef1848d8f410ff8210c7c9  gcc/config/rx/rx-opts.h
! eeb42993e9929af42157187c8a48b897  gcc/config/rx/rx-protos.h
! 266b873c0c5fba2f2e5dc02ee3fdd4e0  gcc/config/rx/rx.cc
! 6980625a211f6ecca7acaf222685ddda  gcc/config/rx/rx.h
! 6a6b391a0dad3c2a70ad0537999dadd7  gcc/config/rx/rx.md
! 205d3c953fcff5eb1ce48e1b3aa9c6b5  gcc/config/rx/rx.opt
! c21b979855aa34ddfe209a0d2f136053  gcc/config/rx/rx.opt.urls
  032cf36abc28f171fc24229e32796402  gcc/config/rx/t-linux
! adcd1f6208d250f49c7cfcd08ee8c3de  gcc/config/rx/t-rx
! d507559488bd3c5c6e0ec9d29833a8eb  gcc/config/s390/2064.md
! 02a84a1fe13bb4931bcf228f17e4c754  gcc/config/s390/2084.md
! dc262715c6ab91f98552c369a74102f0  gcc/config/s390/2097.md
! 86a8704f034d2c44794b3c93d0d148fb  gcc/config/s390/2817.md
! 31547f6a09431ad9a1cb6dead135cad0  gcc/config/s390/2827.md
! c47200b02cbde702ea4b20c208b725e9  gcc/config/s390/2964.md
! 78d0febd0a52f646f86f329f32e996e3  gcc/config/s390/3906.md
! ce733298c3ca29d717f400be6cb1da06  gcc/config/s390/3931.md
! 61a73b7f0099c096565b83d1b06d2207  gcc/config/s390/8561.md
! 406f86bedc00d93dc5c2f743a5a006a4  gcc/config/s390/constraints.md
! 2c59003b9ac75dfe25e283763bea8f7c  gcc/config/s390/driver-native.cc
! 481cedb082556ac72a73a0b7af74e1ee  gcc/config/s390/htmintrin.h
! ffbab317936f19aca1d68f20c0b2696d  gcc/config/s390/htmxlintrin.h
! f57dfa1ae7a4511a6ea8f45d0fc4a75a  gcc/config/s390/linux.h
! 08bfeb3f9c213cc2e4548c687891a673  gcc/config/s390/predicates.md
! 6cd2387e492b0d69dba06dc65b54c557  gcc/config/s390/s390-builtin-types.def
! 3b287d76e8155190846b906e785216af  gcc/config/s390/s390-builtins.def
! 5f03c8e163a04a44285cd038001f8c97  gcc/config/s390/s390-builtins.h
! b1fb6cb29d851ddb951ac961314874c7  gcc/config/s390/s390-c.cc
! a5a54c7c2bc12aee90c87a116610c28e  gcc/config/s390/s390-d.cc
! 0c0d77114d0edfb53c43ca9fb02f0fd3  gcc/config/s390/s390-d.h
! 84ef9d31839adb5305d31242ed55dbc8  gcc/config/s390/s390-modes.def
! 962d3918be92ec1c1c3c6ccf426d0053  gcc/config/s390/s390-opts.h
! 7fff0ef02ee685ac6a5d6568faf42497  gcc/config/s390/s390-passes.def
! 26aba6ba6df3d1d10e8da93edc9aaf21  gcc/config/s390/s390-protos.h
! 219d6593d6c226b6580221a8bfed5e9d  gcc/config/s390/s390.cc
! 147006e730fe3e106809eac19cfd90dc  gcc/config/s390/s390.h
! a5ccb643c89cd9b8d1ccb28247b806e1  gcc/config/s390/s390.md
! cb0b2736d73615065dbf9dd10eb64d5a  gcc/config/s390/s390.opt
! 4afe70778cb47f5ab74798a74ebe0ee2  gcc/config/s390/s390.opt.urls
! 2c3dc8c98bc81eca16182e930c08db3b  gcc/config/s390/s390intrin.h
! 33c0241e8b0323ad4b2a880321580239  gcc/config/s390/s390x.h
! 7c2903a3ed9dd4bb72129a8e18967235  gcc/config/s390/subst.md
  551847ee4c38fa1a7e95fd93cdb32f17  gcc/config/s390/t-linux64
! e2e50c477f234875fd9fc66727097083  gcc/config/s390/t-s390
! 6c2551cc1b0ac9eea45ed757850b3247  gcc/config/s390/tpf.h
! 245ffd21c811fd8336b8076ede535179  gcc/config/s390/tpf.md
! 9eb7894e650772c40cbdb9e6ed254142  gcc/config/s390/tpf.opt
! 34c54b547202715f11db388829243402  gcc/config/s390/tpf.opt.urls
! 5bac7807db49395d310bdd05b6f88c66  gcc/config/s390/vecintrin.h
! 02cb78b22748f8ec35fc2fc2c3f02378  gcc/config/s390/vector.md
! e877e0d9d25e0c82ba5ac653e77686f4  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
! 481e371a2719a54e96d2efd0b7ceb35b  gcc/config/sh/constraints.md
! 2106cd0ab36da57c1f4e4aa2e56b12ce  gcc/config/sh/divcost-analysis
! 548be045b15be59260fa878ca473a1c2  gcc/config/sh/divtab-sh4-300.cc
! f4246f50c0b963ac39a5eef3fb89cfc8  gcc/config/sh/divtab-sh4.cc
! 6bcc5183349ff1464f61dfb2565b25ee  gcc/config/sh/elf.h
! 87e3a3f511a4c2259f113eed3de4d3a0  gcc/config/sh/embed-elf.h
! 155d666f1f144d5facd1b12980708e0c  gcc/config/sh/iterators.md
! 095882f0d9a646f7ea1afb1737a1e0d5  gcc/config/sh/linux.h
! f2fa5782ea1ddc7c99991fb77571725c  gcc/config/sh/little.h
! 44bab739a94d6e46ed440ecc6b1be020  gcc/config/sh/netbsd-elf.h
! 027f1f05d6266b28da1739b2b700fd82  gcc/config/sh/newlib.h
! 5dd21b76c8dc6acbf42b8743ea43150b  gcc/config/sh/predicates.md
! 0d0bc0b9e96318dc92959af7a61058b5  gcc/config/sh/rtems.h
! 65fed04b21602688776ddab6aab970d1  gcc/config/sh/rtemself.h
! ea291a22c5a9f0e90b459897b441efa2  gcc/config/sh/sh-c.cc
! a6a594c6295302a57cf858e9265cb370  gcc/config/sh/sh-mem.cc
! ac44d65003116db3901272a4fa8b0309  gcc/config/sh/sh-modes.def
! 8edf915e1e65aed1ec311841495dad8f  gcc/config/sh/sh-protos.h
! ef313877ba58782843ef89dd323a885d  gcc/config/sh/sh.cc
! 3e0451c8eee2aa905e412b57af6d01f0  gcc/config/sh/sh.h
! 0b28bde6f8a4ffba83d281b8c2646d87  gcc/config/sh/sh.md
! b8302959a6c86dfd0096159f9cae81f9  gcc/config/sh/sh.opt
! 670e5840056f2d5bcfb8444910abd200  gcc/config/sh/sh.opt.urls
! 109cd969129cb44d8f08efcf8f899666  gcc/config/sh/sh1.md
! b880a7e6611bef96cc2453141f122b4e  gcc/config/sh/sh4-300.md
! 64fef03208f072bfbf599321b97215bd  gcc/config/sh/sh4.md
! b7bca7e18978781e47a8edd5d3781abe  gcc/config/sh/sh4a.md
! 0325c111e06be4ecf9b09b4208561429  gcc/config/sh/sh_optimize_sett_clrt.cc
! 95ec9d0626a02da1f1b8480e452feea5  gcc/config/sh/sh_treg_combine.cc
! 2eeb100e2dd3dc866b907970930ef05b  gcc/config/sh/superh.h
  06158b0f1e33501120db330d7734228d  gcc/config/sh/superh.opt
! 5561a4532b44f8176f955ae87b996363  gcc/config/sh/superh.opt.urls
! 363d0dc00656a0cee1c95681ed9d77f5  gcc/config/sh/sync.md
  88130a11ca77c8572260539cc46ef7ac  gcc/config/sh/t-linux
  ad88281b142c81e6c7017a842c281d5f  gcc/config/sh/t-rtems
! a8edce731d2b90410b5c2af64b803580  gcc/config/sh/t-sh
  9f0e9638f478c08d204c5dce468c95ce  gcc/config/sh/t-vxworks
! 83afaa0cd853afb158b3988e23298493  gcc/config/sh/vxworks.h
! caddfa2a7d278e9f3b4e1701b51b0191  gcc/config/sol2-c.cc
  5c26c2321d68d4724b0d0076803c6b89  gcc/config/sol2-clearcap.map
  73dd11dea23019ab25cbbd70968694e7  gcc/config/sol2-clearcapv2.map
! 1a4c510c6133737b4c2c8e295fb40b34  gcc/config/sol2-cxx.cc
! 5a8a2e1461c47c35dd4ede31e6aabe1a  gcc/config/sol2-d.cc
! def8c84cc2539fd395e9bda344c110db  gcc/config/sol2-protos.h
! 26b7de1960f866d6d75338fc3ab1943c  gcc/config/sol2-rust.cc
! 5d7c42752c0c517166f7371b53d514b7  gcc/config/sol2-stubs.cc
! dba5a070ad8fc2ccebbdf7bc849ed881  gcc/config/sol2.cc
! 0aa93834a08190fefaa4a813d9ad0c28  gcc/config/sol2.h
! 9a5f91f7d83ba3f3e07c061c664c8aa7  gcc/config/sol2.opt
! c9d3baaa833c42e5184e73236cc13b0e  gcc/config/sol2.opt.urls
! 9162ac4dc69ef0534fb00f3022afd9fe  gcc/config/sparc/biarch64.h
! 59421ecac3dff04ee89164eccc39794d  gcc/config/sparc/constraints.md
! 7401b75f3d139a426d598e999f620fda  gcc/config/sparc/cypress.md
! 4e271db7c504056407dbea40269445c8  gcc/config/sparc/default64.h
! 3b897bfdcb1ab019107c66f6aab8cb21  gcc/config/sparc/driver-sparc.cc
! b64ed7da25845d53a93da3eb8ac720e7  gcc/config/sparc/freebsd.h
! 6ed0392c1926378d65a897b1bbb5d9f5  gcc/config/sparc/hypersparc.md
! abb3f02d84ac16a9f2b4231b33e76b4b  gcc/config/sparc/leon.md
! e37eeeff6cd46e70f6cc9064b71ab0e2  gcc/config/sparc/leon5.md
! 2f248231d7403b91da654835fffffe98  gcc/config/sparc/linux.h
! 9de27e7724dd789cefeca4d537a6a46a  gcc/config/sparc/linux64.h
! 811c271f3b55974dc53fb35e08fe2b57  gcc/config/sparc/long-double-switch.opt
! 4d77ec43ed4c960c7b17df26f8ad8add  gcc/config/sparc/long-double-switch.opt.urls
! c8c0905bdceed192ad11f9e86ff6fac0  gcc/config/sparc/m8.md
! 9953e3969e36f576bf560fff9a36f004  gcc/config/sparc/netbsd-elf.h
! 94c2abd9c15f7485670199bca002bc9e  gcc/config/sparc/niagara.md
! 8a82b332bbc013c31cc7eb407b441f1f  gcc/config/sparc/niagara2.md
! 60e4c2b5461a0ea2fad4c755aaee4906  gcc/config/sparc/niagara4.md
! 52d1609cbd7f6cf3c9dbf5fc9d871da3  gcc/config/sparc/niagara7.md
! 62f64a8c4e67a6530fd67a51ddd35545  gcc/config/sparc/openbsd1-64.h
! 30ddc54788ff260249e4ae0a708ed6a2  gcc/config/sparc/openbsd64.h
! 1f351372b15b4fdd42f048d29701efde  gcc/config/sparc/predicates.md
! c3aa029fbc5144e832940256f57e843b  gcc/config/sparc/rtemself.h
! 3c6b7f1f7d3cc80b808640a5fff2359b  gcc/config/sparc/sol2.h
! ea7c060572f5cda53f7b5f681773cbef  gcc/config/sparc/sp-elf.h
! 77bc90e5747121a86ff382ddcc3413af  gcc/config/sparc/sp64-elf.h
! ba225774269401b258baf40f8ca75eed  gcc/config/sparc/sparc-c.cc
! cdbf21aa342018f3be609a62696b1e4a  gcc/config/sparc/sparc-d.cc
! 2206975a83a06b0c8fca0fb720f87e33  gcc/config/sparc/sparc-d.h
! 0a5a94fed436182aadbeb6edec80b079  gcc/config/sparc/sparc-modes.def
! 0a46c266881c6b089a0c13f7bb221e76  gcc/config/sparc/sparc-opts.h
! 47585d9cf242c19dcaa4cac88df6d2ee  gcc/config/sparc/sparc-passes.def
! 967b50b2cc3de92dfc9a77a27eb5c6c7  gcc/config/sparc/sparc-protos.h
! 90c19f90794989dda232a06e7271b5dc  gcc/config/sparc/sparc.cc
! bc630edf216e7d5fa56151fa03d61099  gcc/config/sparc/sparc.h
! 7cdd94356f8272cfe647f3cd9b45bcc1  gcc/config/sparc/sparc.md
! 4cd38c8baed89225ea5f68a17161078f  gcc/config/sparc/sparc.opt
! 257131c9a74ac7ad36e3198d3a5aac58  gcc/config/sparc/sparc.opt.urls
! 23573c73a64baf0f67814a94adddabc5  gcc/config/sparc/sparclet.md
! 45bc1ed22c3333fc82a24d9f4970d9b3  gcc/config/sparc/supersparc.md
! 8c4ee44378ce424ea1d353d55ffc28d6  gcc/config/sparc/sync.md
! 2b938938938f5126f77fa00cb986b975  gcc/config/sparc/sysv4.h
! 6b7a023b4ebe7f92ecb8131d6bdd65d1  gcc/config/sparc/t-elf
! 42638bf13e3b996153117255d7472a0c  gcc/config/sparc/t-leon
! 33af05df69b4663ede15123a1bc04e78  gcc/config/sparc/t-leon3
  4a7d3f368a24d549fabaafbe44fcb134  gcc/config/sparc/t-linux
! 15a553b92c74c7fd61dc3e97fc86a388  gcc/config/sparc/t-linux64
  75987b7fdc6fa9c9ff2108ff1003e6d2  gcc/config/sparc/t-netbsd64
! 12977f9bcd6e0fc9f8972aee6e1efc5d  gcc/config/sparc/t-rtems
! ba2a973c7a6081814a40120bfc4bd1bb  gcc/config/sparc/t-rtems-64
  511770bb20c2707fabd4f231ce8b83cf  gcc/config/sparc/t-sol2
! f19922cf94584a4860c45de5ac2cf989  gcc/config/sparc/t-sparc
  b04597637b0c08dd3e6d1a40c43e76b4  gcc/config/sparc/t-vxworks
! 292513419e65d73222980b3fe3f0271f  gcc/config/sparc/tso.h
! 7701533048a42c47942b642dcd6e927c  gcc/config/sparc/ultra1_2.md
! f41d52f60183489c85dd21e10db8c182  gcc/config/sparc/ultra3.md
! be5a14a5fc53503e42edef1f3a9c4af3  gcc/config/sparc/visintrin.h
! 7cc5cce4e07a0a13bc1c413355aaf116  gcc/config/sparc/vxworks.h
  5e0da0cb45fdd1424679c054727e1bfd  gcc/config/sparc/x-sparc
! cafe84df6b65f15c8539a13545f2ca05  gcc/config/stormy16/constraints.md
! 2291cb200b15b7c87dca1e1cc6a0ce7b  gcc/config/stormy16/predicates.md
! 8c4538dfc0bbabd0d9e9269363e90257  gcc/config/stormy16/stormy-abi
! 6a27235e0c3c372c473b22b2ce4d6977  gcc/config/stormy16/stormy16-protos.h
! ad75ac7b17c600b2dbe224c63fd83336  gcc/config/stormy16/stormy16.cc
! ef983a61ff43e5b59349adbbfb9bdce0  gcc/config/stormy16/stormy16.h
! c126cdfd3114ce124f4e010ff8f8eb6a  gcc/config/stormy16/stormy16.md
! fb1c7a48495eb895ef9d3c4739fa4387  gcc/config/stormy16/stormy16.opt
! 83f5016198e7f4905149f32898b70e29  gcc/config/stormy16/stormy16.opt.urls
! b5fac317b0a7436b269ce4518668b25b  gcc/config/t-darwin
! 783943b0995677e20fbd6de3f884999f  gcc/config/t-dragonfly
! 7c82170e87c833f65c4e597bbc370e23  gcc/config/t-freebsd
! 1008ee7fba1ba0f357025760eaf2755b  gcc/config/t-fuchsia
! 01e0c9fa1c41ffe1152c285d28fdba10  gcc/config/t-glibc
! 3d8ab00c13904963cbf5cc21eb94600f  gcc/config/t-libunwind
! 855a416b04ca86f0bc907eee6efea59b  gcc/config/t-linux
! 4ace3eb7c07193553832b74933fcbc7f  gcc/config/t-lynx
  5dad674732908a1c6e62e627e047929e  gcc/config/t-musl
! 6b71fc67404b61a7866f634e156a5db3  gcc/config/t-netbsd
! 1aacff07575e71ba693f03e992cf4e49  gcc/config/t-openbsd
! 78a587999728f82b55f284e9280476a7  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
! 064b7feef3b2abcfb3b62b2d5d9f4ed4  gcc/config/t-sol2
  94b3e10150e75899d2fc1410cf218e3f  gcc/config/t-sysroot-suffix
  6f78c5decbfb4b465e7c289b60109023  gcc/config/t-uclibc
! 684916a729da19545f2d9395d0df909f  gcc/config/t-vxworks
! 604881b693eb21794716c60df7ffafe4  gcc/config/t-winnt
  17fd5cabcc31b720b23bad47cf7fe84c  gcc/config/tm-dwarf2.h
! 58d4868e96ba7521b69cf92b2bd4cc02  gcc/config/usegas.h
  a6ae71a556271cc116214b3e9e87d867  gcc/config/usegld.h
! 9b97577f5847d05d3de776f76a6c3f29  gcc/config/v850/constraints.md
! 6f0348c3579f10f1bcfd29d513795dfb  gcc/config/v850/predicates.md
! b864fb4e32d692cd9989685bc69c097c  gcc/config/v850/rtems.h
  41b5d5e91cc905b1e3ba5de47db5f9c6  gcc/config/v850/t-rtems
! 629eda53797596d11d24cf058656fef2  gcc/config/v850/t-v850
! afebbed1bfcb799ea5ae6049355f6956  gcc/config/v850/v850-c.cc
! dd1dd6a8477feed524d79fc588bd183f  gcc/config/v850/v850-modes.def
! 486161e675466e370d33361fa295422e  gcc/config/v850/v850-opts.h
! 077a04a173309ff862a91ecfae835b50  gcc/config/v850/v850-protos.h
! 971b3b0ecc2e800f39f7c06c68a65338  gcc/config/v850/v850.cc
! 2e0ee10ef946f834743deda34269b553  gcc/config/v850/v850.h
! 45b682b6b0002c0c3f6960bd43a7afe1  gcc/config/v850/v850.md
! a5e85ae615ae1b1e4892492efb17eef7  gcc/config/v850/v850.opt
! 75b484ad25f20c81ecb020007eecdd46  gcc/config/v850/v850.opt.urls
! 2a63260658d86ee47dcc5d90d97bd4c1  gcc/config/vax/builtins.md
! c84e93d5750a4bf7d514b69aa2e4ca71  gcc/config/vax/constraints.md
! b2bfb0834329f8d90e4990fe97c6d3f2  gcc/config/vax/elf.h
! 52993ff2886c3c6faa847a636237feac  gcc/config/vax/elf.opt
! ffe8c3dbf2e5ade855212ca387dfd0ac  gcc/config/vax/elf.opt.urls
! 02d80871f0e9373bf179ae868ca86175  gcc/config/vax/linux.h
! a4b4165ed798c295f6efa4bdf2e7d71c  gcc/config/vax/netbsd-elf.h
! fb67acb1d1c2a841747ff4d880477b60  gcc/config/vax/openbsd.h
! 1c189f8fd12eea89b3b6df03a930ad77  gcc/config/vax/openbsd1.h
! ae7d512c89d68a199632c8e4833ec548  gcc/config/vax/predicates.md
! 3c745ec22a34d4db41383e203e8bbc34  gcc/config/vax/vax-modes.def
! a3620453ae83ae76c8d836eb96587391  gcc/config/vax/vax-protos.h
! ae82ae0b00b4637a81eb63fc44c4b4b1  gcc/config/vax/vax.cc
! 229199e643644f927b9e9faee465a1c3  gcc/config/vax/vax.h
! 07c4dbabb21183633592e7b919bba44a  gcc/config/vax/vax.md
! b47cdf79a98e21dfe43144453a5d8ea5  gcc/config/vax/vax.opt
! b1022676f71e609c37ddec4d60517004  gcc/config/vax/vax.opt.urls
! 3a1e13187cbe98f04b0b80554d1b73f7  gcc/config/visium/constraints.md
! 1f937c79277cea58729f2f27ce838c8e  gcc/config/visium/elf.h
! f235846f2fcfe41e3dce0f3d9a404bbf  gcc/config/visium/gr5.md
! 865ad51c0b0006909292c33b46d467de  gcc/config/visium/gr6.md
! e4bd6d753fce5c0a5145835fb25e11f4  gcc/config/visium/predicates.md
! dc9fd0fcdfaf5a7b39301896d07d63c5  gcc/config/visium/t-visium
! 300ebd2886d97dd4826db1b8f3eae627  gcc/config/visium/visium-modes.def
! 4416d4ba39609e521032e32fdf1ad79b  gcc/config/visium/visium-opts.h
! c466f20388471f7f7e805b9ddd205c6c  gcc/config/visium/visium-passes.def
! c8898e904cf5a77ecb86f8663e5a2643  gcc/config/visium/visium-protos.h
! a3ed5beed845f598537471cf79787b58  gcc/config/visium/visium.cc
! 964b91c2ca076676dfc9467ca31c9ccc  gcc/config/visium/visium.h
! 3a74956889365c1915f8c4a3a3471dc4  gcc/config/visium/visium.md
! 94bb52dc27e61c9942f28da2e3d7ad9f  gcc/config/visium/visium.opt
! cb58a5003b350acfc6b46e18686c6041  gcc/config/visium/visium.opt.urls
! 85059e005c9bdc1c65026fdd772d1d14  gcc/config/vms/make-crtlmap.awk
! 437b5ab54e342023c1713152a50b375c  gcc/config/vms/t-vms
! c66ffb181769db908dbf13533e91bcd3  gcc/config/vms/t-vmsnative
! 9615c312d9f90d9bfdba69b4de3917b1  gcc/config/vms/vms-ar.c
! e966e13946fc0a230a63da4296f86378  gcc/config/vms/vms-c.cc
  c4603dec4151d376a2092ed7555c06d7  gcc/config/vms/vms-crtlmap.map
! ca9a560a9acac420159155c3afeaa521  gcc/config/vms/vms-f.cc
! 377e3769b76b968a860d0686e87c45d5  gcc/config/vms/vms-ld.c
! 07b102f0cd1efc7b5fd9128a671e413c  gcc/config/vms/vms-opts.h
! 0abb0a7cb618dd5c090ba286a5b69d2d  gcc/config/vms/vms-protos.h
! 10a224c8c0d79b5b8d8331992535a3b1  gcc/config/vms/vms-stdint.h
! e158ba859a8ee82dc91a2428a091e9a7  gcc/config/vms/vms.cc
! 34781de9668ef256919bf3781601feae  gcc/config/vms/vms.h
! 91d2de1f4ca9c502925acf56627a0d94  gcc/config/vms/vms.opt
! 4cc4a480573474816840755220793eea  gcc/config/vms/vms.opt.urls
! 204aca7ef97e50072be42813809420fd  gcc/config/vms/x-vms
! 69354227b078c88a544ec5d767d3133e  gcc/config/vms/xm-vms.h
! a433967073759a090f8b9dfe4edbb2b7  gcc/config/vx-common.h
! 33ee18e29957ada2fd62845ab36ba94f  gcc/config/vxworks-c.cc
! d6fc92f58f938764c127fffbcba25bca  gcc/config/vxworks-driver.cc
! dedceff5b7090c6b80460bcf9c71b36b  gcc/config/vxworks-dummy.h
! 5ef22721a63565cd8368a9486b590980  gcc/config/vxworks-rust.cc
! 290dea54193183025cadd446a805e53d  gcc/config/vxworks-smp.opt
! 3476c374b6049ca2b3e35e6db0261dc3  gcc/config/vxworks-smp.opt.urls
! db41c3afe6400aa617a29fed939098b3  gcc/config/vxworks-stdint.h
! d116c8735d54ccd8a16dee907edc0d4b  gcc/config/vxworks.cc
! f38dbc9b3f3b1b3b20db584ddc96806d  gcc/config/vxworks.h
! de29289842da20c73d7041c958de931d  gcc/config/vxworks.opt
! 3452aecee51149d81f83ff52b39acead  gcc/config/vxworks.opt.urls
  36a893b52ae4d79dd9eb41107ead34be  gcc/config/vxworks/_vxworks-versions.h
  2c7fb7482d87758a9305ce4fec4c94ea  gcc/config/vxworks/_yvals-wrapper.h
  83f08d69839ac4c7dc87a99be6c69a2b  gcc/config/vxworks/_yvals.h
*************** dae4f9a8e5f85aad95fb15606aecbc16  gcc/co
*** 5053,5060 ****
  4e93f0754151b93c5a74975e7d3cc3b1  gcc/config/vxworks/math.h
  6844198023015462d685c40332394d86  gcc/config/vxworks/setjmp.h
  e8eef5870ca1f50784d7ccedc98d709d  gcc/config/vxworks/vxworks-predef.h
! 1611f02a898d4f414ac92c409f9f36a3  gcc/config/vxworksae.h
! 235a203e9557fc527944fa25bffe7c2d  gcc/config/winnt-c.cc
  5cc0a69d6149e22cb7ea38c2206a2af3  gcc/config/x-cflags-O1
  459b5094b535d46dc221505b9407603b  gcc/config/x-darwin
  6f4ad358c209ab9f624d9537b4f0be78  gcc/config/x-hpux
--- 5331,5339 ----
  4e93f0754151b93c5a74975e7d3cc3b1  gcc/config/vxworks/math.h
  6844198023015462d685c40332394d86  gcc/config/vxworks/setjmp.h
  e8eef5870ca1f50784d7ccedc98d709d  gcc/config/vxworks/vxworks-predef.h
! 8711c2f3ac6f9de5d1e4b9fd7f829424  gcc/config/vxworksae.h
! 7e31f0397562aa4fd275cc5478878cf4  gcc/config/winnt-c.cc
! e4d7e2b8e188391ef0b7e3e940fa1be0  gcc/config/winnt-rust.cc
  5cc0a69d6149e22cb7ea38c2206a2af3  gcc/config/x-cflags-O1
  459b5094b535d46dc221505b9407603b  gcc/config/x-darwin
  6f4ad358c209ab9f624d9537b4f0be78  gcc/config/x-hpux
*************** e8eef5870ca1f50784d7ccedc98d709d  gcc/co
*** 5062,5093 ****
  17f9168a86db5596e32e2a9091f99d7f  gcc/config/x-netbsd
  622a11bb30d8162bffd0e70d8e546b5e  gcc/config/x-openbsd
  60c44ffe57cc1280e854dc1840adc766  gcc/config/x-solaris
! 673acff4cdcaf3b70a6563b7b163bfc0  gcc/config/xtensa/constraints.md
! 08f386354cd0e2398a10138f79efdeaa  gcc/config/xtensa/elf.h
! ff4c2a22dc51fa3d17569672eac49591  gcc/config/xtensa/elf.opt
! 9344af08af1f004759d68c34e9f5bd41  gcc/config/xtensa/linux.h
! d4a9a78e020edc3baf6586ef16a85c37  gcc/config/xtensa/predicates.md
! 8e08d9ac5ff28939f410a7bad8649c31  gcc/config/xtensa/t-xtensa
! 04428fd6a45b70ad8af967a84be62313  gcc/config/xtensa/uclinux.h
! 6c5b10d98f570fe43a55f8214df1b297  gcc/config/xtensa/uclinux.opt
! adb83b51d66f6da98d8cb332e7d3ab57  gcc/config/xtensa/xtensa-dynconfig.cc
! 0c7255fd6bb30a2dcb41940b76c249cc  gcc/config/xtensa/xtensa-protos.h
! aacbf1e83201eb77692a157d6e3c5f45  gcc/config/xtensa/xtensa.cc
! ffa27afe9bfa1c3d0a00c4512eb2c4b5  gcc/config/xtensa/xtensa.h
! f88fbbab5f3aff39a56b40c7929d2048  gcc/config/xtensa/xtensa.md
! f10ec7eaade722a89338c0ffe897f9e2  gcc/config/xtensa/xtensa.opt
! 679b5e9e43683c9d55a3322387f7ab5d  gcc/configure
! f0d24ec4d54f5ae9dc142db1c09e8dde  gcc/configure.ac
! 229f188a38efc970482185093cf21584  gcc/context.cc
! 1ad60ec65e12637c35bfaf841220544d  gcc/context.h
! bc123b739cfba026c4d6ce3b43313c55  gcc/convert.cc
! 8466e2e51a7343c8cd1e9807ecb2f324  gcc/convert.h
! 7f4bad3387b301dd994d28b6e3ca3b0a  gcc/coretypes.h
! a92be6f532ece352cab8309520cf28f0  gcc/coroutine-builtins.def
! 6614aac0ce8960f693faf880a7560bc5  gcc/coroutine-passes.cc
! 9d6931fedff9a87a6266d15841579e67  gcc/coverage.cc
! b964f4291cd58a61a06769149429435f  gcc/coverage.h
! 6c257cab94470a84a5be4ae099dcd5de  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 5341,5376 ----
  17f9168a86db5596e32e2a9091f99d7f  gcc/config/x-netbsd
  622a11bb30d8162bffd0e70d8e546b5e  gcc/config/x-openbsd
  60c44ffe57cc1280e854dc1840adc766  gcc/config/x-solaris
! 3cee7074aa7cddc3462099478016a3c5  gcc/config/xtensa/constraints.md
! 5cc70d16cc6a905eef1510a65ad4f8cb  gcc/config/xtensa/elf.h
! 72c05753254c55dd46fff04894121231  gcc/config/xtensa/elf.opt
! f140d72c4f00aa6f39295fedb6f6fc92  gcc/config/xtensa/elf.opt.urls
! c62ef8d11e32213a817df50a852a2ce9  gcc/config/xtensa/linux.h
! 286ade1fcd7635429c683a8b6badf124  gcc/config/xtensa/predicates.md
! 354a95df1ae98c2c5f03a62a81aa649d  gcc/config/xtensa/t-xtensa
! e97f5da7184df401d7a5e85122d50beb  gcc/config/xtensa/uclinux.h
! 05655df2f21196b3d68fbeb962af7f56  gcc/config/xtensa/uclinux.opt
! 83fbfe1c588f31edbd8e4a77807087fb  gcc/config/xtensa/uclinux.opt.urls
! 0f7ff1053c46d4db57fcd905857db326  gcc/config/xtensa/xtensa-dynconfig.cc
! ada5d66a2369be4a955465a6e4eb8c40  gcc/config/xtensa/xtensa-opts.h
! c6fd7ebf8e5de13b7b86cc752888bbf7  gcc/config/xtensa/xtensa-protos.h
! e39fbc1efc9306edf11feb2c8e574d00  gcc/config/xtensa/xtensa.cc
! 054113e5b6cc1e68c7707bfa666f32d0  gcc/config/xtensa/xtensa.h
! 091e4857c740530a3e86986eb0b00257  gcc/config/xtensa/xtensa.md
! 46e0d23511cfc2a24b12db0a07e39093  gcc/config/xtensa/xtensa.opt
! db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! ce6b26d4bae0045df4baf8f19b3f4098  gcc/configure
! 6f566b9fd1c1981abdc46eadb64d17fe  gcc/configure.ac
! 5972b8ff2fe88708ed4ec23776bf1701  gcc/context.cc
! 52b17b28143186732f26298b000bc5bd  gcc/context.h
! ef6eb019220dc23fd0adccd9bdd5c35e  gcc/convert.cc
! b2245059a9571ee7345914f533817909  gcc/convert.h
! 3ec3393ac38dfddb60842d39351b0cd1  gcc/coretypes.h
! d36a2aabdf8da39363d9be0efef739b0  gcc/coroutine-builtins.def
! c59586748f2760da4b4b93526be5cc64  gcc/coroutine-passes.cc
! f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
! bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! 09b62284a57d21f454e25c835e79f9c8  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** f6ebb1c64d8e002666e58a4da0d97ecb  gcc/cp
*** 5118,5201 ****
  1ea0510e0c84257e030079fda09b655d  gcc/cp/ChangeLog-2020
  bb663add91c7d9a78c9ac229a8930cef  gcc/cp/ChangeLog-2021
  cb06dcbb3232403bb30ebd0d7d1feae1  gcc/cp/ChangeLog-2022
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! d75ff9438918fb614a4d72f7ca8b08e8  gcc/cp/Make-lang.in
! f75bae2465fe685d86a1237a556df9c1  gcc/cp/call.cc
! 002c198593210fa169a51ff63dd31f2a  gcc/cp/cfns.gperf
! 896d83eec5aaaa6e6d65eaf91d39d283  gcc/cp/cfns.h
! 5d91035b1ad071a1bc5d395865b048e4  gcc/cp/class.cc
! b0062ee9c9d42ee91eaf7512f6e1e0be  gcc/cp/config-lang.in
! a10a1f95dcb423d06e40820d59f10c1f  gcc/cp/constexpr.cc
! 62c5fb7a0e751cb87d4d60216ecec85a  gcc/cp/constraint.cc
! 7252037f52ba41e16614c507df7343df  gcc/cp/contracts.cc
! 3fff7a95b0ebd54a1f3f2b2ace365aae  gcc/cp/contracts.h
! 6fb5d560bb71f24a7b95bcc1c3075968  gcc/cp/coroutines.cc
! 1dfbdfc122218e634a79fff96ac660e4  gcc/cp/cp-gimplify.cc
! 763112e63cfba590bfc20b96b0ea7682  gcc/cp/cp-lang.cc
! 7e2d55513904b00505ff25684de6b935  gcc/cp/cp-name-hint.h
! 9f5255a2208bbea4c0b0a31667896ad4  gcc/cp/cp-objcp-common.cc
! 44864edbff7221ce5b72f9f551fe9269  gcc/cp/cp-objcp-common.h
! 1ff6ed82de7381c392b01839746c2f74  gcc/cp/cp-trait.def
! d6887ccac1e3a9dea9c2908ef57ec747  gcc/cp/cp-tree.def
! cd865832f76f5fbb032bd4fe31ce30a4  gcc/cp/cp-tree.h
! b65da920bdc209a44d1cba37f4a1e4a7  gcc/cp/cp-ubsan.cc
! 7c8cb89616dfd4228ce7017a63abd999  gcc/cp/cvt.cc
! 19039aafd1782b27e26a94ad2316d35e  gcc/cp/cxx-pretty-print.cc
! e0aeb037cb4d8ca738781ded46d00a5d  gcc/cp/cxx-pretty-print.h
! c1b4ec8db711e8a297a5d4e85d0aeb7e  gcc/cp/cxxapi-data.csv
! c81d2b6ccb2c7e61881fbacd500fc0af  gcc/cp/decl.cc
! 04eca9fc6dc327f816ff062ad8e899a5  gcc/cp/decl.h
! 2757764f5578221e1ff34594bcf308a8  gcc/cp/decl2.cc
! c00489cd7633dcb8caed5defda9fdc95  gcc/cp/dump.cc
! 1bcab327fe1f6fb1402f82439488dce5  gcc/cp/error.cc
! 2ca4744679ca833e05a3cd3104dea7b9  gcc/cp/except.cc
! 15a221742a7bc56a599ea1bf93e7e0b0  gcc/cp/expr.cc
! 281fa9e99941b10d92e580b8d8b19a97  gcc/cp/friend.cc
! 38d795f01430a0d433f133d955f161f4  gcc/cp/g++spec.cc
! aae4769663c02dfe48e64b7622706074  gcc/cp/gen-cxxapi-file.py
! 885b70aa6cf13edf98d7591a566d67ff  gcc/cp/init.cc
! 6bd222a6b8cbe1c6cc29ff623d02ab70  gcc/cp/lambda.cc
! 0c9e7039d9e6c649820e714e1877a4c3  gcc/cp/lang-specs.h
! f6faa21098c86eb47a6c838ddfcdca1b  gcc/cp/lex.cc
! 0aa2860fccee2e2e75b2e00297d0f39f  gcc/cp/logic.cc
! 0a56c4f22a02c37dda3fe049724c2181  gcc/cp/mangle.cc
! c7cdcc0d91396db6f388061dec91b1bb  gcc/cp/mapper-client.cc
! 73e96c254c4c826c654b7a43099710d0  gcc/cp/mapper-client.h
! ad0c37db747b2c38777b4746b7e9ccd8  gcc/cp/mapper-resolver.cc
! 911529d3bd5ea82ab15eec9377a74f92  gcc/cp/method.cc
! e99f1c941daa60c220221a5bef64116b  gcc/cp/module.cc
! 8740c7c9f2fd38589ccc750f2f0a9455  gcc/cp/name-lookup.cc
! 340bb6c30bc1451bc4e2aee47ac22c19  gcc/cp/name-lookup.h
! 8cef47f00b2658d60aa8aeac08d34464  gcc/cp/operators.def
! f85201a1e836c959c5c786648cc6d972  gcc/cp/optimize.cc
! 9c4ee6bcd200a2a8bc0a7628e6ccf53c  gcc/cp/parser.cc
! fbb3d4644cdc4c0c8d47620a0b3a8094  gcc/cp/parser.h
! c24d846d950dad2d56c7ff87aed35883  gcc/cp/pt.cc
! d03dc5c4f806d6a6841801d7d7d0080c  gcc/cp/ptree.cc
! fe1c482387564398745b4aeef90dacd0  gcc/cp/rtti.cc
! 28a680085dafc994c4c8136245441f35  gcc/cp/search.cc
! 3a19b64c9f4bca65b58eb13e80d1d6ff  gcc/cp/semantics.cc
! fb2be2f3133f876739c03004015d47f5  gcc/cp/std-name-hint.gperf
! d26ed61dc964da99efa5bf2bcab640d9  gcc/cp/std-name-hint.h
! 9b4cf266285352571496b1adf2e6e546  gcc/cp/tree.cc
! 48f7db9af3b30491ed4f238605782993  gcc/cp/type-utils.h
! d1fe36073ff82f15c59bc8e37bfe5fd6  gcc/cp/typeck.cc
! b1207dce713a8592cfcb8c93046aa983  gcc/cp/typeck2.cc
! d1622a9e8d6f8df6c5834932b9488b97  gcc/cp/vtable-class-hierarchy.cc
! 2597401b7544997a7f6e4811a977c2c8  gcc/cppbuiltin.cc
! ec059990dce01decdd41fdf61eb21678  gcc/cppbuiltin.h
! 88101fa4198c4ab42be4ea3192666f9c  gcc/cppdefault.cc
! 9e61120d1db695867893215d871ef62f  gcc/cppdefault.h
! 80b2750515e06d163b5fd96d303beaed  gcc/cprop.cc
! 1199ae4f00c89472ef090c97647099ea  gcc/cse.cc
! b1e287d0d0732952fad4f20cefc2aa7e  gcc/cselib.cc
! 19399561ae12aed1eea23b8a6a04bbf3  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
! a667c8581cf5009d6af17f19f1186065  gcc/ctfc.cc
! 9881edbbb726db4859766d0a32beb6a7  gcc/ctfc.h
! 744cafae198aaa990e1c303aa66f0504  gcc/ctfout.cc
! 04f22295850b93b5d19656cdc179dbc9  gcc/d/ChangeLog
  86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
  70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
  a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
--- 5401,5485 ----
  1ea0510e0c84257e030079fda09b655d  gcc/cp/ChangeLog-2020
  bb663add91c7d9a78c9ac229a8930cef  gcc/cp/ChangeLog-2021
  cb06dcbb3232403bb30ebd0d7d1feae1  gcc/cp/ChangeLog-2022
+ 95a20f9d52a4673ee5505177eed3c42b  gcc/cp/ChangeLog-2023
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! 458dd30ec01e1ab016feef4141e9cd70  gcc/cp/Make-lang.in
! cb4b79738400a6361f4168f5009299aa  gcc/cp/call.cc
! eb0e2e62caf98260cc2641216d140ae9  gcc/cp/cfns.gperf
! dee1bc8866869d1becc1c1459cf3853d  gcc/cp/cfns.h
! cece9d48fd49b2e27c93c08c799d3a43  gcc/cp/class.cc
! c2cee7941d7a9d85eb87f70b7f8495ac  gcc/cp/config-lang.in
! 81c7a3f86ce3159af046ac66448c8e20  gcc/cp/constexpr.cc
! 78ef195dda86602dc935e90326bbdb94  gcc/cp/constraint.cc
! c454ea653413867402ff12c6ca04c7ed  gcc/cp/contracts.cc
! bd0b88c1ae53d9b381e7e6ca10b9c7b9  gcc/cp/contracts.h
! 062b918e54593c93001d5a7eec4d25b8  gcc/cp/coroutines.cc
! dc67dd7ddd96f2684cd259eb4d47d78f  gcc/cp/cp-gimplify.cc
! d3243151c2dc95476f1ffe37daeac128  gcc/cp/cp-lang.cc
! 7c2a3efea776c90aa874253dbc0d63d5  gcc/cp/cp-name-hint.h
! 85e21b04cf2b169a286ee97efb85c1b4  gcc/cp/cp-objcp-common.cc
! 435279c2effa4bff943c983b01d2b6a5  gcc/cp/cp-objcp-common.h
! 821d270a560d4fc013061cdea0f0a956  gcc/cp/cp-trait.def
! a5599d1cd180d05b45d78f09c98ceb60  gcc/cp/cp-tree.def
! d5f4d84d1826ebd773dd304cbcce296a  gcc/cp/cp-tree.h
! e1f1e00efaa3ab325dcde6256bd453ea  gcc/cp/cp-ubsan.cc
! 5836a7129668e078e2db462fc25e3616  gcc/cp/cvt.cc
! 56f39bfaef18eed52575804302d7f065  gcc/cp/cxx-pretty-print.cc
! 08e116dfeec3d3e6814661d5e4274639  gcc/cp/cxx-pretty-print.h
! 089cdbf33408e230e2bd93fdade6e381  gcc/cp/cxxapi-data.csv
! a0fe74e84ebb107c44adaf3d94448efb  gcc/cp/decl.cc
! 1abb8e5bf838320c47bbb41c28ac53c8  gcc/cp/decl.h
! ec4328f8b18eb87124bd9284f8840aa3  gcc/cp/decl2.cc
! db1260dd767707d8dcbdbdcd7982bfad  gcc/cp/dump.cc
! 59bf1da855227c5935dc3e19aae2d725  gcc/cp/error.cc
! 14c61ee332d8da13020fdb330e1e52bb  gcc/cp/except.cc
! 7dc09b1b70064fa190fd9060df614538  gcc/cp/expr.cc
! a067c19b95bfc08094e338eb152ec647  gcc/cp/friend.cc
! e459328dad760653a7ba4c5c6a0e07b1  gcc/cp/g++spec.cc
! 36027d22493b558f5a557dac9993fd54  gcc/cp/gen-cxxapi-file.py
! 7c88a416fe509c48e070c71bedf1d8aa  gcc/cp/init.cc
! a6e29d8145782f93c5bdb367494552f2  gcc/cp/lambda.cc
! 66bc6ee758a433ad34ad94d5b839154b  gcc/cp/lang-specs.h
! d12efe90a1bc48c1279579e51d07c2f6  gcc/cp/lex.cc
! c92948054dfa6966f3a6aefc2fe77fef  gcc/cp/logic.cc
! 2a244147f38ac2bf4b4508728fb708e0  gcc/cp/mangle.cc
! 7add7f50dbf2cd5e7154942a14edba9e  gcc/cp/mapper-client.cc
! 7f5ee917afe43784e616d41f8008c5f7  gcc/cp/mapper-client.h
! a5b251983ab6036fe6739433864419c7  gcc/cp/mapper-resolver.cc
! da3c8562ee9142d5a5cd0b76321f3982  gcc/cp/method.cc
! 6b67829917f248d97e225fcfcb18b662  gcc/cp/module.cc
! e56dbd2bc00f472082467baa75217114  gcc/cp/name-lookup.cc
! 4c2302075ee88f154fe1d9d5bc880b38  gcc/cp/name-lookup.h
! 9071e61b746a07f7ae419836317ea8d4  gcc/cp/operators.def
! a5178a17074b2e0f06a19b0af420dbad  gcc/cp/optimize.cc
! f662c5368c56d1c71a33299be4092a67  gcc/cp/parser.cc
! 64953966b085a9e770be93c5d1bdca4e  gcc/cp/parser.h
! 33a0aff386f062cb90427c626cfff1c5  gcc/cp/pt.cc
! c59b967f38f4705696e11724814e2a06  gcc/cp/ptree.cc
! f1b051a1b18a2fb2823f2ca48d577734  gcc/cp/rtti.cc
! 7764edeba26dbb6b15962e6395cba9d2  gcc/cp/search.cc
! 29c5b9a7d0e223706651f095e4c0119a  gcc/cp/semantics.cc
! ffec78e20084d795cd181bc62c432bd7  gcc/cp/std-name-hint.gperf
! 250dbab970f9eb3793d0a595df3ffb40  gcc/cp/std-name-hint.h
! 965a30aa562e0fa97540dc3e0c54b7f1  gcc/cp/tree.cc
! ade60cf10e86c87a2d3960a453e78059  gcc/cp/type-utils.h
! 0784b8144a7885fa1d8fdab3eb7ad4da  gcc/cp/typeck.cc
! c63d033454b89a18d34634a17d81d782  gcc/cp/typeck2.cc
! b04e03a3822d8b9ab15575d78d4309f1  gcc/cp/vtable-class-hierarchy.cc
! d9039dac3f86bf082870bf78b964568b  gcc/cppbuiltin.cc
! c2ff7817297154695270be6f932730a6  gcc/cppbuiltin.h
! 191d64b087c6302f97be6681653b1dd0  gcc/cppdefault.cc
! dba9a9584db67bce81cb489ca8b13396  gcc/cppdefault.h
! e507d631984ba5c424cfa8c5586bd54c  gcc/cprop.cc
! 445d7a800ef05bf3e0631159e33d94a8  gcc/cse.cc
! 6557a89bee5e65b71b1b7c65bc93fff6  gcc/cselib.cc
! 7cb7858299cde7776c4d453abc8d968b  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
! aba39deaa8ad2ad555dc0798497a6c58  gcc/ctfc.cc
! 94a425b811af1e25020f3a86ae78ee7c  gcc/ctfc.h
! 7f33e05a76e2406be70d93293850b281  gcc/ctfout.cc
! ad53f5e68ac3aa1dc356f3b1276f4ba0  gcc/d/ChangeLog
  86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
  70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
  a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
*************** d46228dde1a38d9a1d640d737074c7c6  gcc/d/
*** 5213,5607 ****
  e432bfc5c605ae0b1beedf0492ad40d1  gcc/d/ChangeLog-2020
  1978e6674dd960299d771fdb335a9df2  gcc/d/ChangeLog-2021
  c7b625d76017d2ec4f8970c167523c57  gcc/d/ChangeLog-2022
! c5d7dbe4d1b63f56eeee925e03e3eaca  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
! 758e5fe316e70ac29cdf3b2f894655eb  gcc/d/config-lang.in
! 85746b2dfddc127a55b01ebb697bf36d  gcc/d/d-attribs.cc
! e5f210f7bf09e2a85096eeaa11306625  gcc/d/d-builtins.cc
! 56dd9f6c16a9b83ebcb1badf5b346dd7  gcc/d/d-codegen.cc
! 971f4804175b7a391dcd1281695fa5a2  gcc/d/d-compiler.cc
! a357b9fb56358db83da9c1deaea52654  gcc/d/d-convert.cc
! 93b3db7f73e5e1032c65e1f7ebdd23dd  gcc/d/d-ctfloat.cc
! b983a82870c682654e0b4a768273922d  gcc/d/d-diagnostic.cc
! 35453b303e365085046bccb08e0d9adc  gcc/d/d-frontend.cc
! 4a718835cb15902eb75c17c137867c6b  gcc/d/d-frontend.h
! eed95c64afa2c5152ed24f9e036c8558  gcc/d/d-gimplify.cc
! 083320fd80e27f2723b9e7d3369f1b6b  gcc/d/d-incpath.cc
! ce6b33dda672c5a4dd51d395bb584cb5  gcc/d/d-lang.cc
! 0a3699396462263e3afd622842ec578c  gcc/d/d-longdouble.cc
! 81613174ef788429ef4d2d6b795c5e01  gcc/d/d-port.cc
! 185499ceba21feb6f33c538ec84ccc2b  gcc/d/d-spec.cc
! 3d5fc447a9af0885c21b752580606718  gcc/d/d-system.h
! 702fee3dac729038fda2766339cd7526  gcc/d/d-target-def.h
! 6594f17a5096da1202690c6b82ac5922  gcc/d/d-target.cc
! 2486691b93c0575a1b386f8a4c476f94  gcc/d/d-target.def
! 0ef8ddb83bcd9713cc0bc91299edff2c  gcc/d/d-target.h
! df7deb9723aa01d867aaeec5d746c208  gcc/d/d-tree.def
! d5794386bd49a6ff05384866457f490f  gcc/d/d-tree.h
! 5dfa8ad57f44a2ccef5f353a14eb0aa2  gcc/d/decl.cc
! 2d7446d51cf4738aad1c8ceb43174a72  gcc/d/dmd/MERGE
! 39fa65f9345bb0319180e90c1912a1ae  gcc/d/dmd/README.md
! dde7939f1c35c9e979832ac123e5692f  gcc/d/dmd/VERSION
! 1600403cfeb38d80ba4ca5e6e5086d0d  gcc/d/dmd/access.d
! cfff9e7be9abe3576bdfa857cc053bc6  gcc/d/dmd/aggregate.d
! 40a365246f9395ab244498d9808c0249  gcc/d/dmd/aggregate.h
! 69198e0fc251aa10640f9ee21c1852a0  gcc/d/dmd/aliasthis.d
! 5f03c42a9d7e0f4a473bb401605ef90b  gcc/d/dmd/aliasthis.h
! 53508d2b859802d0f7239247b0fd8e93  gcc/d/dmd/apply.d
! be11aed600f54423a66a5494dd802daf  gcc/d/dmd/arrayop.d
! f9a6d2921d1809a2a15fbbf8c347f83b  gcc/d/dmd/arraytypes.d
! ff832740a1ffd4e25a40349941dd429d  gcc/d/dmd/arraytypes.h
! 44e93bfee23e0c1e0d0f471b3465fec5  gcc/d/dmd/ast_node.d
! ed857dd927e29079e32f053f9551057a  gcc/d/dmd/ast_node.h
! 30dc80ea532b838d4ecebbf63bbb2649  gcc/d/dmd/astcodegen.d
! 752301088b9645ab848a31290909adc6  gcc/d/dmd/astenums.d
! d2bc8a5cdd6f57bb46fe6cbe18511387  gcc/d/dmd/attrib.d
! e83ad7f075a466215125ca81c879ce50  gcc/d/dmd/attrib.h
! fb1530f13abdef33fd3b63dc5bde9e79  gcc/d/dmd/blockexit.d
  e4224ccaecb14d942c71d31bef20d78c  gcc/d/dmd/boostlicense.txt
! 01b86ef284745eab0c81531c044c860c  gcc/d/dmd/builtin.d
! 3b2ef95f57ca69dfe989ca8170f8f743  gcc/d/dmd/canthrow.d
! 1f386e76497131e4c53c4d4568d3932a  gcc/d/dmd/chkformat.d
! 2f06bdac0918dce7f99d5c618844f2d5  gcc/d/dmd/clone.d
! b1b6ce2a848a34ab2657a055c2a0ff98  gcc/d/dmd/common/README.md
! 26865224403ce4c14b49da31433f0219  gcc/d/dmd/common/bitfields.d
! 9bf9527fab52c49c8bb0755bb7c62b73  gcc/d/dmd/common/file.d
! d60a0c7e8255a0b799b7d82bb4719772  gcc/d/dmd/common/outbuffer.d
! b1b8a7f7acdc955eb640096218b8106a  gcc/d/dmd/common/outbuffer.h
! ac97a57afa7655042dbbd4567acf145e  gcc/d/dmd/common/string.d
! 013148290519195576b4fab8e419a203  gcc/d/dmd/compiler.d
! 2b8b95b940f034f44a376df46a18c2a8  gcc/d/dmd/compiler.h
! d3889e91d2e6c6df296fa726b86aa097  gcc/d/dmd/cond.d
! ab62db4986061c54c60216122247b7c7  gcc/d/dmd/cond.h
! 45c048b038d156f6b60caed8cd7dc263  gcc/d/dmd/constfold.d
! a6dfc7bd71dd4fbec6e3ac55c81b5f43  gcc/d/dmd/cparse.d
! 36cdcceeded7818bb78c76bc58951bfc  gcc/d/dmd/cppmangle.d
! 30f5e787b3c4a0e551030c1af7c8fd82  gcc/d/dmd/ctfe.h
! cdeb97b5bb9b0b28c2cc830ec97b47a8  gcc/d/dmd/ctfeexpr.d
! c211c1d1d0e48ba16bdde6402b54eb58  gcc/d/dmd/ctorflow.d
! 7c462d397fdb35ceb46258cc7001df01  gcc/d/dmd/dcast.d
! 19065e5b196a87c3faf97e4bcb6a10df  gcc/d/dmd/dclass.d
! 657740ff26eef206d2bc1369fc5334ae  gcc/d/dmd/declaration.d
! 7fc798d716534bb1180d735533408cc0  gcc/d/dmd/declaration.h
! 0648b56e7194610747139e1deb09389c  gcc/d/dmd/delegatize.d
! bb04bdfc86677b9ac79d0d16f3400ef2  gcc/d/dmd/denum.d
! 71a0743efd2bdf0d00fe13856564a554  gcc/d/dmd/dimport.d
! 00e22660a905c061544deb300381d4ea  gcc/d/dmd/dinterpret.d
! 02041256dc973d46bf49d869f953f755  gcc/d/dmd/dmacro.d
! 1fd25ea329e3402f5733fc14f560d5af  gcc/d/dmd/dmangle.d
! e2c767cd8edd1436388cdeefb0843f42  gcc/d/dmd/dmodule.d
! 2aa104a077d012b582bb2bd54e79e2d6  gcc/d/dmd/doc.d
! b6cc2ba88dfcf1d7123f81a4dc00455e  gcc/d/dmd/doc.h
! 4719bd9235446fdb53e89a1548de1859  gcc/d/dmd/dscope.d
! f97fe6b638d87151ef81e028993f7d4a  gcc/d/dmd/dstruct.d
! 46a421631d33893df3a4162700036fb2  gcc/d/dmd/dsymbol.d
! b73a7f68fb19fa32312ab52fe32eb90b  gcc/d/dmd/dsymbol.h
! 5cd7ed5294b5d8592e0905ccb248a9f8  gcc/d/dmd/dsymbolsem.d
! 4aa9fcb88daad5cb742f7b90c99f40ba  gcc/d/dmd/dtemplate.d
! 10e35416fda7e96721ac7cb928781b01  gcc/d/dmd/dtoh.d
! d8ef75f1d4e4df3f944b66eb26bf8751  gcc/d/dmd/dversion.d
! ff2683063dce4c0b66a858612e0785e9  gcc/d/dmd/entity.d
! 0b5d9c26e5e7c0b9034ba97802e350da  gcc/d/dmd/enum.h
! ee655e738f5fac1c6b5eccc90f12d27b  gcc/d/dmd/errors.d
! a4eec50185cdf2414d2f331dd851aacf  gcc/d/dmd/errors.h
! 8689e7fe1ba6137d1ee4f21fb1ca9679  gcc/d/dmd/errorsink.d
! 62dadbd0ac0b775edbf05c4324e8f6ff  gcc/d/dmd/escape.d
! 27a9f2c6d5b44bd1a019eede261015c1  gcc/d/dmd/expression.d
! d5d8d13f54bfaade65a94a52471e299f  gcc/d/dmd/expression.h
! 5410c0a6a4173dfc611bab22dfa9e1e7  gcc/d/dmd/expressionsem.d
! 5592a278bdd9b248d2084bcc173fa841  gcc/d/dmd/file_manager.d
! cd9c10d6640327e5f01158e175d93b98  gcc/d/dmd/foreachvar.d
! bad457773b3ea20d4e6d0976029633d4  gcc/d/dmd/func.d
! 6058d8a8fc4e672d44ba1567f5ce1078  gcc/d/dmd/globals.d
! 89e03a3209bf8467f3f55785ae1edddb  gcc/d/dmd/globals.h
! 9ba7596d5860eef9c98ce7cb109bfa05  gcc/d/dmd/gluelayer.d
! 1d7719df78b0415a6ea4627970a6446e  gcc/d/dmd/hdrgen.d
! 221a6ad865d0bf2ef10482aac842ea82  gcc/d/dmd/hdrgen.h
! d5287d039108d0a1be12f6c6194f9ce6  gcc/d/dmd/iasm.d
! a36a0cd05a780d5808e803aa56a572e9  gcc/d/dmd/iasmgcc.d
! d5d675d411fc988c2d174bff8816cfb1  gcc/d/dmd/id.d
! dcd50eb9bdc861a00685395ec004a234  gcc/d/dmd/id.h
! 6b8b0e553ea035782cdc361c9780eac1  gcc/d/dmd/identifier.d
! 747e491c9255125f3f51ac97e713788b  gcc/d/dmd/identifier.h
! 8e8c3894e7184b7220219e1c300f4476  gcc/d/dmd/impcnvtab.d
! 7e964e761eb1735f0abe1b2ebdd9be02  gcc/d/dmd/imphint.d
! e4812c3e7f7ffe2d69cbb9dff2a75f1a  gcc/d/dmd/import.h
! 0fca848aa9d2a5003db43805936eae6a  gcc/d/dmd/importc.d
! d2cd8b43af8ce8e5e75bcb66e32409fc  gcc/d/dmd/init.d
! a481dbac8a9ab8e2cd8ee5db436f7381  gcc/d/dmd/init.h
! eaf273a24ae7239ff9a0a1597a945c33  gcc/d/dmd/initsem.d
! efe4ce21ab2020e5843ca1ff07b13359  gcc/d/dmd/inline.d
! c466c1d5a7c7c1e2b45fc68548771f69  gcc/d/dmd/intrange.d
! a5db3f1b26b4401b4f35588edc1911ee  gcc/d/dmd/json.d
! 20a5789c0d0756fe9de737dfcaffa386  gcc/d/dmd/json.h
! ef44ce5101d4e3ae8961381efb6ad158  gcc/d/dmd/lambdacomp.d
! 6276f2c5c3711d020f63d35a52ee0fc6  gcc/d/dmd/lexer.d
! f0d626b45d9c5cf84ffc95c69e9dc172  gcc/d/dmd/location.d
! b1870484bd83e8802cddce6459672c25  gcc/d/dmd/mangle.h
! 12cd05fc1965d9dfb5505d4af0e98257  gcc/d/dmd/module.h
! 63840594825589adb004d1abe2525c03  gcc/d/dmd/mtype.d
! 5cc2f42157c999d54db12cdce41c7699  gcc/d/dmd/mtype.h
! 757d99dfed75b788732c00869aa2ad2f  gcc/d/dmd/mustuse.d
! 5768138c708d4557f9e15fb8bb9f7355  gcc/d/dmd/nogc.d
! ee1884c356dafcd80012eabe35a1b57f  gcc/d/dmd/nspace.d
! 3f12d5558ea056538b03cc6f056c61a6  gcc/d/dmd/nspace.h
! 149c4949ce8fa0c649e99fef4e995652  gcc/d/dmd/ob.d
! 44db2d2c4e1ffd14a7522a618ebced9b  gcc/d/dmd/objc.d
! ac9d2c1a151357834a900491fbdb04f1  gcc/d/dmd/objc.h
! cb33eaedff098e61d0a8ab705905a0e9  gcc/d/dmd/opover.d
! 03670b9c125a36fb416d5b4ae10b28c8  gcc/d/dmd/optimize.d
! 73f4f7d5b90cd002a76ba5182540d500  gcc/d/dmd/parse.d
! ea7e016dac7afbb3b1a0145e3637ce85  gcc/d/dmd/parsetimevisitor.d
  ee6e0066bd1ecd30866617f68d1387dc  gcc/d/dmd/permissivevisitor.d
! a7aa76c75085121cfc4eac7b3f2db73e  gcc/d/dmd/printast.d
! 1e405e3030862fbf076562d0cf79da95  gcc/d/dmd/res/default_ddoc_theme.ddoc
  04f57d64eeeaa73285101503465b193b  gcc/d/dmd/root/README.md
! f0afbd9e4f494d17a97357b32c732e78  gcc/d/dmd/root/aav.d
! 1e98e4d2ff4f54542757098347cae2bb  gcc/d/dmd/root/array.d
! 116c04ae88076e5e28da94b88806e981  gcc/d/dmd/root/array.h
! ec3d19020fc29c18fbd1390f324f19e6  gcc/d/dmd/root/bitarray.d
! 49aa162aab501fc2ad94d1d4128e4ce2  gcc/d/dmd/root/bitarray.h
! 30304b401fc47e5f953b77bd2e61550b  gcc/d/dmd/root/complex.d
! 94485437bd8e734504bfd5a07118a725  gcc/d/dmd/root/complex_t.h
! dd218146fa12825fff428ad1d782986d  gcc/d/dmd/root/ctfloat.d
! a453e207bd27c7917ee679b20fd21a4e  gcc/d/dmd/root/ctfloat.h
! cb0b1c56e5ead51f27eee24ca194ad5f  gcc/d/dmd/root/dcompat.h
! d5c8287fe5e925759b578b9a6989104b  gcc/d/dmd/root/dsystem.h
! 3814396e5294c1f20cf1eb6c6ccdff70  gcc/d/dmd/root/file.d
! b73e81be30a0bc0dc71233b1bd317efc  gcc/d/dmd/root/filename.d
! 3bfd0303afe653ff999fb6b8d7b75a75  gcc/d/dmd/root/filename.h
! f636de4e066cf9eb4b32217bcd2d33a4  gcc/d/dmd/root/hash.d
! a1450b3c9eac5e95a587421552649d9f  gcc/d/dmd/root/longdouble.d
! 5c9c72800fd7fde641ae53b335ed9e6a  gcc/d/dmd/root/object.h
! 7ee9f66ebf832f8613149b8bf289b624  gcc/d/dmd/root/optional.d
! e6c777c83adbc8840d76218c6a3921ff  gcc/d/dmd/root/optional.h
! a62a602ff9736eaf798b63d9c075f215  gcc/d/dmd/root/port.d
! 471925b0d4b8dddd31bfdb63ec72f162  gcc/d/dmd/root/port.h
! 5600f2f2ad1c34a58f4e7ec09ea3da4f  gcc/d/dmd/root/region.d
! d27c1592da3f5e98c1c39b71f580f25a  gcc/d/dmd/root/rmem.d
! 171e9947211e2ae23fcc6b66f30209dc  gcc/d/dmd/root/rmem.h
! e1336cf92b569d4bec75e92b47d0fca4  gcc/d/dmd/root/rootobject.d
! 449f91b3a972160c74277653c5c2e79a  gcc/d/dmd/root/speller.d
! baaadb4e378905441b214be751100460  gcc/d/dmd/root/string.d
! 4300f05a922d928b2a8ab04a22a7fcf8  gcc/d/dmd/root/stringtable.d
! 94fd0da283f0d491fb7b90c7ed25d421  gcc/d/dmd/root/utf.d
! 6c82a1aa3b9ef9dfe39bb53821830427  gcc/d/dmd/safe.d
! 631b535b8dd9186ee2d2c47179757bcb  gcc/d/dmd/sapply.d
! 39db656595c65a28248ebeaffad62155  gcc/d/dmd/scope.h
! 259e55010e6bdebac2cc82e3492ba172  gcc/d/dmd/semantic2.d
! d1e45545be1762345af5453db284b557  gcc/d/dmd/semantic3.d
! 3a94a16cb486d42b3bd3896dace74902  gcc/d/dmd/sideeffect.d
! ab6ae8e46ef4bb483edb862c04179052  gcc/d/dmd/statement.d
! de92a34d26ec2f59f7bf568d3ef34247  gcc/d/dmd/statement.h
! f5128a7d5e25235a8f8aa6a9816d5f07  gcc/d/dmd/statement_rewrite_walker.d
! 7972daa0b9778ea12bd9e8d1945063bb  gcc/d/dmd/statementsem.d
! 1f88d457e321d0fc83448af86994c204  gcc/d/dmd/staticassert.d
! b483978b840b70be85f7e68867bf28cb  gcc/d/dmd/staticassert.h
! dc18d6f38095dbfb7399ca51bb465e45  gcc/d/dmd/staticcond.d
! 3fcb44874d7057fa71e97e93f49d7f22  gcc/d/dmd/stmtstate.d
! 2b518fa558d4af5b7e394c6ad5e1ea01  gcc/d/dmd/target.d
! 9cf3b6f7234fb531536bd6dd65346885  gcc/d/dmd/target.h
! 373c3b9f93a3a665618f1c58229adedd  gcc/d/dmd/template.h
! 3a69e722d2d838e987fd469c46733e32  gcc/d/dmd/templateparamsem.d
! d836774a039cc0245902a64c3cdf1888  gcc/d/dmd/tokens.d
! 3253a019340e0b21f48ad0dc8118c2f8  gcc/d/dmd/tokens.h
! 7558a10794809da35fd77a51791fbc27  gcc/d/dmd/traits.d
! c9a7dddb98d89035d4e0853147d7fb06  gcc/d/dmd/transitivevisitor.d
! 30f0571113af6788f7de567ff2044c4d  gcc/d/dmd/typesem.d
! 4d8646d7068570d4c7511d125a4bdea5  gcc/d/dmd/typinf.d
! 2d05120ce54130d3e5186e73b5c9d96b  gcc/d/dmd/utils.d
! 0e19f04aef543d4fabb6ec79def5b2df  gcc/d/dmd/version.h
! f9c518566ad51d0492965951bb50bc49  gcc/d/dmd/visitor.d
! 0479d55eda5ee9de0e2106ae722ad649  gcc/d/dmd/visitor.h
! 4486b7c921a2a18ba53826e75a6c19d7  gcc/d/expr.cc
! 7c8d068883546d6053ab89a4aa3ad55c  gcc/d/gdc.texi
! 09d8459a6a0334281c058ddbf35b079a  gcc/d/implement-d.texi
! e4c10d0521a4da4ca6e2b2c3f697716c  gcc/d/imports.cc
! f9a817d9bb4f6506675b8e8a688f0e11  gcc/d/intrinsics.cc
! f48e7f23e5575562bfba2a7778e519f4  gcc/d/intrinsics.def
! a21521366267b1a7b68ceb6ce15a9246  gcc/d/lang-specs.h
! 3a84c708114b1f0e47fcf7d131e2b560  gcc/d/lang.opt
! 170eed96a8d3563a9bcb03ac0fc59cbc  gcc/d/longdouble.h
! 2196710b2e6916e3d18e9146321d8b8d  gcc/d/modules.cc
! b1d8cca7f88b3b7a419bdaad940457c0  gcc/d/runtime.cc
! 7fbf81ad217c5efa6f267572778e7ab8  gcc/d/runtime.def
! 48b3a4ef1af87b926e52c50d3bc81595  gcc/d/toir.cc
! 168e3e721d8dc43fb9d250ca847af79a  gcc/d/typeinfo.cc
! 105a988a58700c3caab038fb30ba22a1  gcc/d/types.cc
! accc2d7f211bb139fde71fcb94dbbf92  gcc/data-streamer-in.cc
! 888eb4c7a007875545f7f89fa223643c  gcc/data-streamer-out.cc
! 047c64792c9f1e60b4b6498df8817c94  gcc/data-streamer.cc
! cd88545b3adc4c16c0ba514f15de4640  gcc/data-streamer.h
! 6b6d35f115f46c604aeaa495717c5715  gcc/dbgcnt.cc
! 42632d56323e6dae96fca30939a64d74  gcc/dbgcnt.def
! a6d0bb901e25b89558de1509a08a93f4  gcc/dbgcnt.h
! 23f2d5977573a7798443bbb46e41a259  gcc/dce.cc
! 4dbb090934653bb6cee869e47656c9ba  gcc/dce.h
! 61c19e6fdcf19bc8f4e7b17ab7e293d8  gcc/ddg.cc
! 077716fea9b8edd866b8379f1291752d  gcc/ddg.h
! 2bf6310ccb68d5538625e3c5b43cc979  gcc/debug.cc
! ffaa76bc85940e5a2ce2d979fb3526d7  gcc/debug.h
! 05f283c3358e737d36e036c1346ba5bf  gcc/defaults.h
! 2559a7b14817860d335928172b0561ff  gcc/df-core.cc
! 8e05ca4414d5c36a982b6cad294025c5  gcc/df-problems.cc
! 5ee0fa11da11a9c210c16c65460d9e55  gcc/df-scan.cc
! a711fb3e5abbc6d9dac11f2fa50e9836  gcc/df.h
! da8633f2ee3b0b40c380fab5776aa33e  gcc/dfp.cc
! 6541892fa62952b41ebd9c35e46148a5  gcc/dfp.h
! f0800e1697d1bc4f2be052fe32dcb5a4  gcc/diagnostic-client-data-hooks.h
! 6fb6c58a5614a30c13a9e76289ff2d7d  gcc/diagnostic-color.cc
! 7e59fca7cd11dfcac3b600558c7dd159  gcc/diagnostic-color.h
! 52fd98caf23d21f7c6c22b20c973681c  gcc/diagnostic-core.h
! 93bc8b33f09e95c3eb643a4d12de3c93  gcc/diagnostic-event-id.h
! 7a328714995156b9a243971690d7a43c  gcc/diagnostic-format-json.cc
! 8b996ea4def31df33ce81bb1736242f2  gcc/diagnostic-format-sarif.cc
! b5cf698f62fc897667ca73b3cf884ea2  gcc/diagnostic-metadata.h
! 505fca1f45774683076668edb51df8fb  gcc/diagnostic-path.h
! 4ddf25c5487c0ad0187391fb2992c2b8  gcc/diagnostic-show-locus.cc
! 1ef25caa15e3cb5ab9492b923312e4cc  gcc/diagnostic-spec.cc
! 0aa96cf64ff55c2058c4f77d12b1f9b7  gcc/diagnostic-spec.h
! aec86f5bdff3085fdd00d7f8271d8bd0  gcc/diagnostic-url.h
! aea92e8e3db548d1fddcbe984981c95d  gcc/diagnostic.cc
! d80c9704cdea98d063f65ef7fae04621  gcc/diagnostic.def
! e927561ee87ffd471419ab7c04a9c03d  gcc/diagnostic.h
! 768604617d8710f1848e11fd6d4f6713  gcc/digraph.cc
! 1309ef041fe49676049fddd61225f25e  gcc/digraph.h
! ed4a41716cd834ae3e0120f4e94f21f6  gcc/doc/analyzer.texi
! a7b783d8787a7a0422d75987f7ae4605  gcc/doc/avr-mmcu.texi
! b55159f9c9fbeadedbd6a971434bef5e  gcc/doc/bugreport.texi
! 97af20afa0c976df424f847ab0e7072d  gcc/doc/cfg.texi
! 8784212b864de1903df4a7574095012f  gcc/doc/collect2.texi
! ab5a29a444213b7a4b7edbae0720adf0  gcc/doc/compat.texi
! 9197a2ae9aaf2d9863fdb032b480ce39  gcc/doc/configfiles.texi
! 8c23b33261e6d434a3bb388d13bf9750  gcc/doc/configterms.texi
! 41fe29b312b42ee001aa367476b9444e  gcc/doc/contrib.texi
! 42159646cb48b375710fd78e3dd6e6b4  gcc/doc/contribute.texi
! d07fea714f0e50400adcc4362cd75000  gcc/doc/cpp.1
! 49ae2819f851d04602cabadd39edfe4b  gcc/doc/cpp.info
! 6d296baf9bec85f59c79959e355efb3b  gcc/doc/cpp.texi
! 417eef489bd26f8def602795e86741fa  gcc/doc/cppdiropts.texi
! 2011321798f5e6d57961e25563305e06  gcc/doc/cppenv.texi
! 285e8a199dd7f9c4a06f98fa0f38cd37  gcc/doc/cppinternals.info
! 60a3fa41bf1f6e279008366c78cb007c  gcc/doc/cppinternals.texi
! 8d68aa98b0af8010285255a92aea623d  gcc/doc/cppopts.texi
! 50173f3902d3d3c6e3bdb1a4f9044352  gcc/doc/cppwarnopts.texi
! de9f1681bbc35c543ab2490f0e8dd58f  gcc/doc/extend.texi
! 9da857d64fdcfd6b1982a75cf86bc597  gcc/doc/fragments.texi
! e3892bc4361a803d8c568c54c20cbcd9  gcc/doc/frontends.texi
! 5f6bc7e5c4c521300cd18778b68d8fd2  gcc/doc/fsf-funding.7
! a18ebe214e53a3965ecff99dc457997d  gcc/doc/g++.1
! a18ebe214e53a3965ecff99dc457997d  gcc/doc/gcc.1
! dff164c803209e063a3a2b114f0ea118  gcc/doc/gcc.info
! 295291ec7baa70b04da2b1b6ecffee99  gcc/doc/gcc.texi
! b732036db666d1191019593ac6523278  gcc/doc/gccinstall.info
! 71735687030d23b86525032eba345d28  gcc/doc/gccint.info
! edc0e7584ec44bfd909e0126057141b2  gcc/doc/gccint.texi
! ca673ae41a2db647e0df20c0b09692ae  gcc/doc/gcov-dump.1
! 8cbf639fe99f374f9e305a031d0d6736  gcc/doc/gcov-dump.texi
! 2014016d36051f6f9cb5a0b6e3c6de0d  gcc/doc/gcov-tool.1
! a4e8708b41fe686d6ecdc5246226e3e3  gcc/doc/gcov-tool.texi
! df57440b075cc7bcb04de0db151733e7  gcc/doc/gcov.1
! ccaf4e1393ac66805b8317145261710e  gcc/doc/gcov.texi
! 3c202146fad27388f5ad6ed27eb061ab  gcc/doc/generic.texi
! 7b702682c71f720abeeadd60f2699b0b  gcc/doc/gfdl.7
! 4cc8d0399c6575ec328eaefab9c0e5b3  gcc/doc/gfortran.1
! 5630240c5ef619f03fc1bd750bde7b61  gcc/doc/gimple.texi
! beb3e1a9cc10e38f6c8c8aa22f36d578  gcc/doc/gm2.texi
  dc4ccd9843d88bc01c909438dabfd6ab  gcc/doc/gnu.texi
! fb81f5a2e71fedbf6ce25b1b5a7f9a82  gcc/doc/gpl.7
! 9c051a6abfe79317ad83904f042d2738  gcc/doc/gty.texi
! 42ebfb9fc08dafdae427760be5354428  gcc/doc/headerdirs.texi
! 971cd503a0a7fde3063283de000ba2ea  gcc/doc/hostconfig.texi
! 5d7fc3533bf9938c87d24a293ffc2f60  gcc/doc/implement-c.texi
! 69d80ae59e4524d440a609c2615fd49b  gcc/doc/implement-cxx.texi
  8bed7c13f2521176c0f9f4f79c920551  gcc/doc/include/fdl.texi
  8787976f426cd52da24a856cd41d87be  gcc/doc/include/funding.texi
! 918ccfd7be5640e27067c203dbf40d2f  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! b4c57b64e59441421fbf276de0639649  gcc/doc/install.texi
! 0f44cc63abf9b607d1b8880175256326  gcc/doc/install.texi2html
! 34b99c10f577dd2da256de717941c862  gcc/doc/interface.texi
! 55ad18e9b402499ef9a472b0b6b83c21  gcc/doc/invoke.texi
! f64676ceacf4c713f83bad704dbc5eaf  gcc/doc/languages.texi
! e36a87d027eabff1a8595ee341342560  gcc/doc/libgcc.texi
! 8b6fb2575a94998971924157a5cabfd8  gcc/doc/loop.texi
! 33a55b87ecaa69e598e9a8a8c06a6bfe  gcc/doc/lto-dump.1
! ecfae67b5004f374351f0448f9b764e0  gcc/doc/lto-dump.texi
! a1c3440fcd17355fcd9956685728338c  gcc/doc/lto.texi
! e215e75acc6a49ab683dd3a4560fb7f8  gcc/doc/makefile.texi
! ac506e04e4e513f2e736736ace0a17ac  gcc/doc/match-and-simplify.texi
! 41a368efad7b97a4b0d02368aa139e8f  gcc/doc/md.texi
! a8c44c8e4b4d32a8f55021f75e5be589  gcc/doc/objc.texi
! e0b4de59aa47be39959b67c77c3e5f96  gcc/doc/optinfo.texi
! e2d2927a5d31ebe8d7adacbce711b3b1  gcc/doc/options.texi
! 4aad5bb7e2eca9febc6f08131006f929  gcc/doc/passes.texi
! 8723a60f26c67e21edbd8853125a98f8  gcc/doc/plugins.texi
  0603ab3940871fa2a55ddbd7c2719eb7  gcc/doc/poly-int.texi
! 625cf0e114de21441ae7fb94506c91cb  gcc/doc/portability.texi
! d1bcaa542a5530c31802110177ee4e8d  gcc/doc/rtl.texi
! cc4bb1ea13d49e12bc658ffbf09bcdb0  gcc/doc/service.texi
! 37e85dc01252c02dab5f7024a33e19a8  gcc/doc/sourcebuild.texi
! 0e31025715547eefb8e38f6c42f11582  gcc/doc/standards.texi
! 1b12cb2c041170cdebeef6b35026b6bc  gcc/doc/tm.texi
! 8ff52d7640f35621019f505acbf7c697  gcc/doc/tm.texi.in
! cb1937169083092d296fe865caa42233  gcc/doc/tree-ssa.texi
! a41743f25c15ebc52983cfe7b40e013b  gcc/doc/trouble.texi
! 5f797f1c1c623d84dc06c5e7839e8abf  gcc/doc/ux.texi
! b27ab449bea9d59b4fc8f51fbc84a3be  gcc/dojump.cc
! a281851392abb8220c82d93122bbd813  gcc/dojump.h
! 5c84f9c9c3753cac4d0d6687b2dd6fa4  gcc/dominance.cc
! 7bd40e2c4b3b78f79a1982e937dd5e54  gcc/dominance.h
! 4613aa102c6023ce1989230ded3f00e7  gcc/domwalk.cc
! 590b7faf49265506edf4350a83e27f34  gcc/domwalk.h
! bd9a28f0b9c1df93c93d20711940ffbb  gcc/double-int.cc
! d7039a063609512d531816adc085e3fd  gcc/double-int.h
! ff15a9f4a15149ff9d7c5275673e2af2  gcc/dse.cc
! bcfc3857a75f879ec761a824ae77aa77  gcc/dump-context.h
! 52f12315abc001a6345e995675976567  gcc/dumpfile.cc
! 276fcdf9faad8f99eba0c32558648e49  gcc/dumpfile.h
! 50aca9ac7cdb870a668d002112fa13c8  gcc/dwarf2asm.cc
! 33772782dd7447901ccef94fe3260cd9  gcc/dwarf2asm.h
! 3aecdcd1ecb4330fb6d35220436b4e16  gcc/dwarf2cfi.cc
! 4b4d88e890847c2849c8a0dd429ad7d4  gcc/dwarf2ctf.cc
! 6339307d1a91f4115e2184f117a9152f  gcc/dwarf2ctf.h
! 7f8d12e5631f9eddf9b50ea04d175baf  gcc/dwarf2out.cc
! da9eb5f94d9f2537c44626df2e2d0731  gcc/dwarf2out.h
! 56a3faa5b916a76e3e8e799879bb6f9f  gcc/early-remat.cc
! c916e1e3ac5144157fdf894c31dca957  gcc/edit-context.cc
! 49f526debb7f23de868e29fe0f4ddbdc  gcc/edit-context.h
! 4523d41f7daec511966151638f63259a  gcc/emit-rtl.cc
! 5606c317e109b78bd646867d4f2a5bd9  gcc/emit-rtl.h
! ece276800266c6e2e7e65e6f96ec5be4  gcc/errors.cc
! 659a8a79c801df56521644da176872c9  gcc/errors.h
! f81327904e356ae043c572c54bd25316  gcc/escaped_string.h
! 61fc91903dd907005648d7413269ccd3  gcc/et-forest.cc
! 860bca68f977fa9a726d09a684e1fbac  gcc/et-forest.h
! 43c71d0cd101eacd0ea048459db5a83b  gcc/except.cc
! b50077475f8f7a1b64242ec5e01d7784  gcc/except.h
! d2189b62c37dd572addf61825a41d344  gcc/exec-tool.in
! 10518df9c294e40a2a7660c8d93f39a3  gcc/explow.cc
! 16380b9326d8ac062959a6a82043cce3  gcc/explow.h
! aa87fe7a6bdb0d5979cc7df2a1ff6ba2  gcc/expmed.cc
! 19036d67b94612828e60a36131f73399  gcc/expmed.h
! 2cfe5d01d327199e9105cd745caa6726  gcc/expr.cc
! a58f8d09aca5337953e4002f8d46ada5  gcc/expr.h
! cd6cdc4e13b4d3a4a2d3e2b1014be838  gcc/fibonacci_heap.cc
! cd2c85f077113c6ef641407b8172b6d6  gcc/fibonacci_heap.h
! bea216ccfb736c1b9a309ecf9afff70a  gcc/file-find.cc
! 57947e4060d24d010e8c4dd7ba984127  gcc/file-find.h
! afd42e14b3f2852408195e6a82376326  gcc/file-prefix-map.cc
! cd0af84836966e2df321c3d08905a631  gcc/file-prefix-map.h
! 917ebde63babc279cc2dbdf9ebf5af07  gcc/final.cc
! 5ecf2be631b0f86d2248af1c89340d18  gcc/fixed-value.cc
! fe6768163b0ca6c41fea1719448908eb  gcc/fixed-value.h
! 20c9ffc1f2abf2ab017b88632fa9f63a  gcc/flag-types.h
! c2dbf831f4bbc53553765214d1b2d674  gcc/flags.h
! 84632412a9570c311bb6f9944fdacccf  gcc/fold-const-call.cc
! 46538296abcbd26df93f276f5974ec0f  gcc/fold-const-call.h
! b8e677fe7dd6c8ce7ce945ea32bf8f6b  gcc/fold-const.cc
! 9dd2c87502c864095a8b942bea07b5f3  gcc/fold-const.h
! bf93f5c1654f47ef8d2ad3dcbcb32c9c  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5497,5903 ----
  e432bfc5c605ae0b1beedf0492ad40d1  gcc/d/ChangeLog-2020
  1978e6674dd960299d771fdb335a9df2  gcc/d/ChangeLog-2021
  c7b625d76017d2ec4f8970c167523c57  gcc/d/ChangeLog-2022
! aa32055c6187aaae65fc2885158d5e47  gcc/d/ChangeLog-2023
! a96eb8f711faa206ff585e88316b11d9  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
! f73e07ffa2fced196f38346c405549cb  gcc/d/config-lang.in
! 3ae19f975d50889b5f03df6c38bc0c61  gcc/d/d-attribs.cc
! 15411c6b54ea91d24785d34b3d1671eb  gcc/d/d-builtins.cc
! 39670d0737366b5dde1f601dae52f3a8  gcc/d/d-codegen.cc
! 5a1fb9f5b78bb830327c58023e0a8115  gcc/d/d-compiler.cc
! b61a881ef449869906f48f9dd6b9c591  gcc/d/d-convert.cc
! 1555fa455770d0e0b284cffb87ea144d  gcc/d/d-ctfloat.cc
! 00a34f4c238b4761551445af757ff44b  gcc/d/d-diagnostic.cc
! 10a2bbedfbad177f3e09125ed45b79fc  gcc/d/d-frontend.cc
! 2e5f92187ec88a77ed49ca603eb9b1f3  gcc/d/d-frontend.h
! 8aa70b137bd1c085345321d68708d2bb  gcc/d/d-gimplify.cc
! 53a2becfb65ca792ab570a4c8d909483  gcc/d/d-incpath.cc
! 933fad50b502c1073de1af4c28d29235  gcc/d/d-lang.cc
! 834493e7566d05c07e3987ec8b3c9e3d  gcc/d/d-longdouble.cc
! 9cc6d3e85cc73e5196bb4162bb0673a4  gcc/d/d-port.cc
! f74323ae44ea5fdd0a663d81deb67553  gcc/d/d-spec.cc
! b9c48c809f8cf9c3ab7ae114509d3d1a  gcc/d/d-system.h
! 9aa179202bbb20ad5fdab16cefd7103a  gcc/d/d-target-def.h
! 0f91af6df397b8a405e1868d0435e209  gcc/d/d-target.cc
! 19c6cf49d168af9bf2f674d82cf2e20f  gcc/d/d-target.def
! b19c1c032d04a6e603d0ec0be5eaf210  gcc/d/d-target.h
! b1ac7d5abaf19efc889f97c469081fed  gcc/d/d-tree.def
! b4ed30104da1ee3c62f919545e369805  gcc/d/d-tree.h
! 0ea6a90d5d565d3131100fcb38d9934e  gcc/d/decl.cc
! 9213651de0ab086aa7193a8e1286527d  gcc/d/dmd/MERGE
! 123db03ec877052aff84a8926416b377  gcc/d/dmd/README.md
! 166ecca70dba17c57a2ad2d11c687d71  gcc/d/dmd/VERSION
! a987423a1a73fdf433b3ee00baf12ac7  gcc/d/dmd/access.d
! f44a4c7512fe91b1b1ae9779b613f46d  gcc/d/dmd/aggregate.d
! 17dc2f833e4fef3b10210f1c9f3237d9  gcc/d/dmd/aggregate.h
! 390366a91318aa7fb653d33e7842ab44  gcc/d/dmd/aliasthis.d
! 9f22872279e0b64489b3aa06365945bb  gcc/d/dmd/aliasthis.h
! 8acee6bb28824f71f74ad32624f19b08  gcc/d/dmd/arrayop.d
! 1464679b937b6f791b746f87963a3588  gcc/d/dmd/arraytypes.d
! a8bd8c4e56994404eb995796a56022f8  gcc/d/dmd/arraytypes.h
! 60b849af8e649317918bcbfea8cfb913  gcc/d/dmd/ast_node.d
! 8008dd4d2ef83bdf5fcead561007e915  gcc/d/dmd/ast_node.h
! 57cb6c7031a80421f88153e98afe31f3  gcc/d/dmd/astcodegen.d
! b0390ae849327b42b5938fd3bf1d6998  gcc/d/dmd/astenums.d
! 55d5cbbe4b319e66358f69bc52963949  gcc/d/dmd/attrib.d
! e6b6a28cb4122d0e50bdbee424e33b50  gcc/d/dmd/attrib.h
! d703bb43f5ba952027e69f70f56f3cda  gcc/d/dmd/basicmangle.d
! edbc5b2ce719448ee2af00fc2974763e  gcc/d/dmd/blockexit.d
  e4224ccaecb14d942c71d31bef20d78c  gcc/d/dmd/boostlicense.txt
! 7192ab79c26286bf5b98ac72cb8959f1  gcc/d/dmd/builtin.d
! 9babb158322436156ef7d11877b906f0  gcc/d/dmd/canthrow.d
! 24aab4c77056ef8599054d3cc10633eb  gcc/d/dmd/chkformat.d
! fbf76aac4580d4e606f2083c49652ba3  gcc/d/dmd/clone.d
! a439029b15d096cc69638a68c99a808b  gcc/d/dmd/common/README.md
! 02c5d84c2c6f892f4b9867b56720bfba  gcc/d/dmd/common/bitfields.d
! b730f93bd48633323879601a70c975e4  gcc/d/dmd/common/file.d
! da9027fe517ae857f425b5588beb4b4f  gcc/d/dmd/common/outbuffer.d
! b268647fbc0b0d02b48c5ae6c4298428  gcc/d/dmd/common/outbuffer.h
! 3a6cd90da8861ee7f40e28ca02652cc6  gcc/d/dmd/common/smallbuffer.d
! 30a5b23ab4b5b4400e321e4e2e24b74d  gcc/d/dmd/compiler.d
! c5b8b5100cc17c39e00d2396e24a8ae2  gcc/d/dmd/compiler.h
! 2b0f53e98b9a6698789de52cd9bdf871  gcc/d/dmd/cond.d
! 974207d27879534c6d7e8a032b288dd0  gcc/d/dmd/cond.h
! 0e4c95bf22f07d88fd02f7d72e45bdfd  gcc/d/dmd/constfold.d
! 6644633d9ff230fc9ba5d2ed1a557162  gcc/d/dmd/cparse.d
! 90b4c840ccdb055459b804c99a613d42  gcc/d/dmd/cppmangle.d
! 3e88c006bef3b500c752284ebec3a293  gcc/d/dmd/ctfe.h
! 1a70c323aa486fd60b7bf16a27607a05  gcc/d/dmd/ctfeexpr.d
! 29e7dc493c553c183b0d767d03d8c979  gcc/d/dmd/ctorflow.d
! 9372c9d3e300893741c61afdd6c070e5  gcc/d/dmd/cxxfrontend.d
! df13b77ccc39891618c20eda6c4edeef  gcc/d/dmd/dcast.d
! 1544245d410ba0fdfa83a961b693afbf  gcc/d/dmd/dclass.d
! 37cdbfb3b6d7253a6c5a31902fa760ef  gcc/d/dmd/declaration.d
! 3d8c053f8130cecf84fc012d59b4cecd  gcc/d/dmd/declaration.h
! da6642d6bd612f2f1fa0b3b369a5419e  gcc/d/dmd/delegatize.d
! 7142d51c4fb4be8f33c57877d980f065  gcc/d/dmd/denum.d
! 4ca216145037c19c073a8655dbb5127e  gcc/d/dmd/dimport.d
! 6133acf42bf69899f57e8b90aa277237  gcc/d/dmd/dinterpret.d
! db844dbfeca2df65803621a42d10ad80  gcc/d/dmd/dmacro.d
! 8ebafac26283b473944d49249804899d  gcc/d/dmd/dmangle.d
! 7dcd4a414a9bccf848b40bb4a234e780  gcc/d/dmd/dmodule.d
! 7297d74eda1b80ce8e5c34cc0df38c5d  gcc/d/dmd/doc.d
! 47ab6e871a94bda9eb3d31e2e11f4c1c  gcc/d/dmd/doc.h
! fc6b1722c95a2271a9cb8fc0c7a1d18b  gcc/d/dmd/dscope.d
! d5278fe7c5db32975fafc458857667a0  gcc/d/dmd/dstruct.d
! 45ce703f2e906a3f2cfc63433bba850b  gcc/d/dmd/dsymbol.d
! c024d6e2418d3c3ddfc8a840ea249afa  gcc/d/dmd/dsymbol.h
! 75e0928f080208e78efae411ea051454  gcc/d/dmd/dsymbolsem.d
! bd62ca4d64ac29614d9728be703c0e4d  gcc/d/dmd/dtemplate.d
! 6b99b4c1b339fc4ce1cb35a79291b110  gcc/d/dmd/dtoh.d
! 8298ad01471c3284d372e94114af23b0  gcc/d/dmd/dversion.d
! 68eb175e4d77ac80716b7bfa8970dd8a  gcc/d/dmd/entity.d
! 32f72036d1528bec8b9dce327f25db49  gcc/d/dmd/enum.h
! 7f96fc2a0b7feab189b527ad1f4f6243  gcc/d/dmd/enumsem.d
! 4a9d185b789b13f1f2c82f2a6abd3c78  gcc/d/dmd/errors.d
! 102e6b807a3c82ccfc51a847b9d75468  gcc/d/dmd/errors.h
! d8bfad1f5fe27c838b4cab68a6943153  gcc/d/dmd/errorsink.d
! 846ee6361a3e866f039d71eccbbda8af  gcc/d/dmd/escape.d
! f63fadb24d1b9cb950e1372f8814d6db  gcc/d/dmd/expression.d
! ca79875419b22051a83b6396ebae9579  gcc/d/dmd/expression.h
! 0769dbe9f63ffe185672f90f5af026d1  gcc/d/dmd/expressionsem.d
! f2e6b47636d31ff722185a4a4147a10b  gcc/d/dmd/file_manager.d
! 58aa068309aecd228d9c8f3abe090396  gcc/d/dmd/foreachvar.d
! e46a2513798909bcf396a075c0d5f0a6  gcc/d/dmd/func.d
! ebb34eeaa6f7291451d9beeb154f732d  gcc/d/dmd/funcsem.d
! d1d3f3097b83bf7390c42bb079b3e885  gcc/d/dmd/globals.d
! ce2086283fb8a0a28c5b9e97fc41c8ba  gcc/d/dmd/globals.h
! b9e0ec4ab5104a133a782ce6f32b7e0f  gcc/d/dmd/gluelayer.d
! 767a1d80e024def9fed590aaf516c9a7  gcc/d/dmd/hdrgen.d
! 305232ecfeba67978961bd2eb42cafaf  gcc/d/dmd/hdrgen.h
! 93e352c6680f74662ca0c96d2c16cd91  gcc/d/dmd/iasm.d
! 514a02dcc22f4449088037910675d733  gcc/d/dmd/iasmgcc.d
! 680b6cd9a87a2aa1121d417098c976ff  gcc/d/dmd/id.d
! bf5d24f17f3290abd8be02f2cd9f9386  gcc/d/dmd/id.h
! 6f51faa8152ec05696280e38ba2af7d6  gcc/d/dmd/identifier.d
! 606a4cca42596bf840f01601fe84e905  gcc/d/dmd/identifier.h
! 0d98370b22536432224e8706ade72882  gcc/d/dmd/impcnvtab.d
! 05ec9b3e2f7c1f7908a6ed3246c68b5b  gcc/d/dmd/imphint.d
! 6e2a4982c48db2d8dd4d1503ec107528  gcc/d/dmd/import.h
! 867068efa5f631da272b16703a71cfce  gcc/d/dmd/importc.d
! 7d25a27227afa76491c0d53440a74247  gcc/d/dmd/init.d
! 2cc317e1cd7ea958e6b1199fcd35f2e1  gcc/d/dmd/init.h
! 536dec4972f89218d84c8b7e6963bfca  gcc/d/dmd/initsem.d
! 0c268d233e095fe71877679792d5e8a6  gcc/d/dmd/inline.d
! 219c43f8c61d70e6edab432345839030  gcc/d/dmd/intrange.d
! e743c988ad9c0ca61be82e32e4766419  gcc/d/dmd/json.d
! 19fb046e374d97121f32fd573d92dd1c  gcc/d/dmd/json.h
! 213c06b0a7d490cfa22ebd5372ef4286  gcc/d/dmd/lambdacomp.d
! c4d37a3f3987b558c474f5f8e307eb70  gcc/d/dmd/lexer.d
! b0c180ca3f27a9d5e1dd9ff7d70662cd  gcc/d/dmd/location.d
! 49d7550d522bd43c121d62a341eee2a6  gcc/d/dmd/mangle.h
! 455a2f7c2ced69c6c59b404c288eecc5  gcc/d/dmd/module.h
! 02c5741c24e42c39d8c397350def0301  gcc/d/dmd/mtype.d
! 13a9416f5df3a22ae055e99ae2f0f80e  gcc/d/dmd/mtype.h
! 2e1840291c675bcc6d9f0f9f1bde3aa0  gcc/d/dmd/mustuse.d
! ec68729ad43e0b7df527a7d92fb1604a  gcc/d/dmd/nogc.d
! 6c4e1b2f544d387e742044c3ec99c6fa  gcc/d/dmd/nspace.d
! ee4448247382827398a73f9047695d36  gcc/d/dmd/nspace.h
! dfc49c01f706836bfce352a1c4eb7996  gcc/d/dmd/ob.d
! ffda0c60b6e6a3990804304d73572b55  gcc/d/dmd/objc.d
! eedd902ae09754fa0b894e5afadeb116  gcc/d/dmd/objc.h
! b1405b4cc2a48976b4427fd240030dcf  gcc/d/dmd/opover.d
! aa4bde912a8d19f7592e72596fa35617  gcc/d/dmd/optimize.d
! ef2531058f03126388e2c8df27e8c1f9  gcc/d/dmd/parse.d
! 37188684f6bda7dfe1596a265650d6ce  gcc/d/dmd/parsetimevisitor.d
  ee6e0066bd1ecd30866617f68d1387dc  gcc/d/dmd/permissivevisitor.d
! 489ae7e1ce1281935e30b1407ad03c60  gcc/d/dmd/postordervisitor.d
! 85fda4b84e3fb6fd7cddc35febb30070  gcc/d/dmd/pragmasem.d
! fa55c23fcba8a8edf888d8b4efa6cbe5  gcc/d/dmd/printast.d
! f38789894c6b0b28bedba3bb9ec03010  gcc/d/dmd/res/default_ddoc_theme.ddoc
  04f57d64eeeaa73285101503465b193b  gcc/d/dmd/root/README.md
! 0494cc41f0834c1e16f2edb532f30c43  gcc/d/dmd/root/aav.d
! 8a8bd0cd4db43955112c61cc979440a3  gcc/d/dmd/root/array.d
! 2f8ff8269a05d3301afecc9d95a19509  gcc/d/dmd/root/array.h
! ec499e73533d79ab3a0ff52c2c744535  gcc/d/dmd/root/bitarray.d
! c1a102d0a883ad463ec29c9900977bc4  gcc/d/dmd/root/bitarray.h
! ecf15b8fe9be7d5fe86f47cd90aae966  gcc/d/dmd/root/complex.d
! 5437f54b7daee470723f15a0929e1214  gcc/d/dmd/root/complex_t.h
! cc6f9b170f6a187afb1307e38f54fd08  gcc/d/dmd/root/ctfloat.d
! 85f336c3c6118455e79a5bfdb619a321  gcc/d/dmd/root/ctfloat.h
! 8a059b43852f6ea57e7fa76b673d935a  gcc/d/dmd/root/dcompat.h
! a5361b801f63c99fb607d569047bbb17  gcc/d/dmd/root/dsystem.h
! ea2e458c748d8563662c2d890fc9a5a7  gcc/d/dmd/root/file.d
! 63625746081c634015cb3d0a09901293  gcc/d/dmd/root/filename.d
! 3bd0ce7883b8f9db940239244796a1fc  gcc/d/dmd/root/filename.h
! 4ceaa7f126c614f856735b37a89b7984  gcc/d/dmd/root/hash.d
! 9fdcb9f6b0fef4ec2adbbaf5304b248b  gcc/d/dmd/root/longdouble.d
! 0c2a923261f41be786c91f07f102b400  gcc/d/dmd/root/optional.d
! 7f88bdb6743e2cc0ebdec170bf824c62  gcc/d/dmd/root/optional.h
! 12d3bc5e5a5bb76442171e3b4db5c188  gcc/d/dmd/root/port.d
! e9b63fa3371d85ab6a209d680b0728c3  gcc/d/dmd/root/port.h
! 0f3d8809078bbe256bdd3b4a847b15a8  gcc/d/dmd/root/region.d
! 07b6925cd7ffcda9fe4fc19e84d40e85  gcc/d/dmd/root/rmem.d
! ce8c158e63f370c4b0f88b14d2ba6523  gcc/d/dmd/root/rmem.h
! bf218b70d56c662f1dcec8d6091b8cdf  gcc/d/dmd/root/speller.d
! 3d1129e75804006043dda0eb9859ca17  gcc/d/dmd/root/string.d
! 86cdb01679127d59d87186d5815d5ae0  gcc/d/dmd/root/stringtable.d
! a7e02049309f9b84d899f34d6259be9c  gcc/d/dmd/root/utf.d
! 91c3b2c5f62847a41d1c9054d361f3a8  gcc/d/dmd/rootobject.d
! 7de76b389a0e4b6f7c3c1b5840638cfc  gcc/d/dmd/rootobject.h
! 50ba1ef398e2f0578c57157f0bb5a3a8  gcc/d/dmd/safe.d
! 823e07ae34a2f291c21592b53699916e  gcc/d/dmd/sapply.d
! 67c720bf578fc1f9f3a3abbcdc2c148a  gcc/d/dmd/scope.h
! a7162b4a0a706329a7ebaadbd2e25885  gcc/d/dmd/semantic2.d
! 73b9bc474b17d95c3263873cbeb64bff  gcc/d/dmd/semantic3.d
! 6d4b009c41b91fe0dd57e3d680740cda  gcc/d/dmd/sideeffect.d
! 70797cb69ae9ffd9fbf4341b1b8c6f86  gcc/d/dmd/statement.d
! 62683f492278289449727e989068ad76  gcc/d/dmd/statement.h
! 23accd7232594575a824f3243323a62d  gcc/d/dmd/statement_rewrite_walker.d
! 66071432969f30a8c7859013c66049fa  gcc/d/dmd/statementsem.d
! 5726f9d7d67eeceb2049722776b24fd4  gcc/d/dmd/staticassert.d
! 2af57a7fb43bf871584c5f6e456200b6  gcc/d/dmd/staticassert.h
! 6c93c517d0f2fb132c456ba27b0df7a0  gcc/d/dmd/staticcond.d
! bfe456a22457cc257592060ced6c1f49  gcc/d/dmd/stmtstate.d
! f495542fa655e22589b28736db19b83b  gcc/d/dmd/target.d
! cc3c148029fc723feac9e0524b7e2d52  gcc/d/dmd/target.h
! ce1f8faddeade28c5ae62fe74d04909e  gcc/d/dmd/template.h
! dfd91754b0e12f62d723ca1e9f27f74c  gcc/d/dmd/templateparamsem.d
! d74c79ed2b9c547a706fa9ad093296f7  gcc/d/dmd/templatesem.d
! d8bfe1b8a5a24cf5da0e7ae0f25cbdb5  gcc/d/dmd/tokens.d
! efa80649a339ebc0b10baf8b76d01e1e  gcc/d/dmd/tokens.h
! 47c46189231a3db8a52a7b26cb6e63f4  gcc/d/dmd/traits.d
! c0596abbb0c893aeea6daddab486bd7b  gcc/d/dmd/transitivevisitor.d
! a30e9e386ecb4fe657b5d010988f7091  gcc/d/dmd/typesem.d
! 9e2c16e9626c71df74c80633f918f54b  gcc/d/dmd/typinf.d
! fe3adbfe008586887f099739803ad0e9  gcc/d/dmd/typinf.h
! ad0f78ba8b0701a44bdecc5faa124807  gcc/d/dmd/utils.d
! 44c7f391ce2df261118780dad2e204ef  gcc/d/dmd/version.h
! 39f4362c93869c60a676f338ba6aafa1  gcc/d/dmd/visitor.d
! 28ad876b926e1a11eef92fa93a0c76d8  gcc/d/dmd/visitor.h
! 7db0458d8645214b933ab3a59908cc82  gcc/d/expr.cc
! 31c6c893c7016bba33894d4ecb870186  gcc/d/gdc.texi
! b2292b1eddab0999ca356e893894aef3  gcc/d/implement-d.texi
! 6662e24d334b3376f2755f23e6d020ca  gcc/d/imports.cc
! a2a8bcc6e58eb14940ee9d109982d9b8  gcc/d/intrinsics.cc
! a2ff0f8963e08d62bf77e93a1734b6f7  gcc/d/intrinsics.def
! 176d153b406c4fc24092411e1e0a0be6  gcc/d/lang-specs.h
! e92dc5999fefa8bcaa6c0bb0c9e9a040  gcc/d/lang.opt
! 226c02980ab51d1dd3dc58a3bcfb7eaa  gcc/d/lang.opt.urls
! 6077278d139701f464c4824d6a089f2a  gcc/d/longdouble.h
! d70fa556ba3ca62e4b992e91cb0b96d8  gcc/d/modules.cc
! 918b9b087e54573309c3a81fe5289d2a  gcc/d/runtime.cc
! fdd878f60fc02f2c1628ec0b9fc264f0  gcc/d/runtime.def
! d0f4c3717ad53298ccc90fc2ad69bd2d  gcc/d/toir.cc
! ccc865c287ef0afbb841c54b011c8532  gcc/d/typeinfo.cc
! 84818d17e5d943eee7b4ecabe804cb10  gcc/d/types.cc
! 9b691c3fc5f14ea13cd63d6d15b9ea63  gcc/data-streamer-in.cc
! 22fb7e3959d063cf127ad7941fa4f134  gcc/data-streamer-out.cc
! 331b9caf0050578236302ddc6adbad7b  gcc/data-streamer.cc
! ff02ff3d0d4b8770763b7d9ed77d28e9  gcc/data-streamer.h
! f3cf745a34f39f9e0c95baf4079a7db8  gcc/dbgcnt.cc
! 357536e0fbc8d05cd88dda1413131a39  gcc/dbgcnt.def
! af9a57e2d392176d8fa3508c3135fc89  gcc/dbgcnt.h
! 419605ef6575c8c47fda06177aa16ea9  gcc/dce.cc
! dbbdd03d68bb01da86b4972821fbf154  gcc/dce.h
! 26558b6e72f675e3e9b6c786fcc3703c  gcc/ddg.cc
! ad6e5a1af15939d1bb32f846f3eae833  gcc/ddg.h
! 4c00a2f713a54beb04795617a35401c7  gcc/debug.cc
! 6561d9d34899768db205bdfdbaf5424e  gcc/debug.h
! 8ee842646b186eaad9ce169d02e33aa7  gcc/defaults.h
! 0e3c7a5d613039e6be24dbd2420ba7ab  gcc/df-core.cc
! c786d1a48d5a99abb172e621544e16ce  gcc/df-problems.cc
! 6c79a717822b0e865b1d98d9c6f60af9  gcc/df-scan.cc
! e2e02f995d0e8f5573556099f90400eb  gcc/df.h
! 22e6e87c0306a9bbb45eb3924abd96bb  gcc/dfp.cc
! 6639e6fa393d4d695230c8249f7f9cdb  gcc/dfp.h
! 8c7157e2630f68b08b1016a55fbf28a6  gcc/diagnostic-client-data-hooks.h
! 1b2c0bddc4abec6876ffe0c377add384  gcc/diagnostic-color.cc
! eb22ce678f316a3ea10673d9e94ae212  gcc/diagnostic-color.h
! 5d6c5c743c0173fa7b1802a62565d566  gcc/diagnostic-core.h
! 691246fb2a6d6d39ee9fc1050787b7a3  gcc/diagnostic-diagram.h
! e9e04b106b3ea766d0f121755a170a60  gcc/diagnostic-event-id.h
! 4e018c130ecd04c644fe3e84ca7a3895  gcc/diagnostic-format-json.cc
! 92639a7ec6ad112337e7ef016c5060d8  gcc/diagnostic-format-sarif.cc
! 9dab87ebdf87b3b61a07d2b7bdbe3b9d  gcc/diagnostic-format-sarif.h
! a14fcf79c1e70036b39e0dd7547d42a4  gcc/diagnostic-metadata.h
! e8bbee6a5e33ad3d8031cd3af2c03791  gcc/diagnostic-path.h
! 4797c71a20887dd129196931b0cd62a2  gcc/diagnostic-show-locus.cc
! 408fe90eba25ae524e37ff995d545527  gcc/diagnostic-spec.cc
! 8913d6b5f4d620d1cae708e00c4411c3  gcc/diagnostic-spec.h
! c9132e63d297ba23a6f9993e34a99114  gcc/diagnostic-url.h
! 56c14f8de0e7d074d9ebc0a42aa88e2c  gcc/diagnostic.cc
! 66ce1509fa44d91467ea72956bbbeb54  gcc/diagnostic.def
! aa1c9493107eefcfd7a64479fccc57e8  gcc/diagnostic.h
! 1d5406c2c00778685af4d54cedf49ae6  gcc/digraph.cc
! 84e9d01f2dbadb091f992b9902508cb6  gcc/digraph.h
! a84ff6fc2f7744beef98a11d4d3c1c6c  gcc/doc/analyzer.texi
! a665a8e026147fcc1b543c039d9832e4  gcc/doc/avr-mmcu.texi
! b44c0e4fd6840dc6fd667f8f678ef28e  gcc/doc/bugreport.texi
! 40403afec90bef8912a33c829ef123d4  gcc/doc/cfg.texi
! 7c0efad1ccaaaafbfb1dd4b2c3fecaa5  gcc/doc/collect2.texi
! ed484c80158c26981aa92eb9db02bca1  gcc/doc/compat.texi
! 87e175f992cc3447d3ed679343ed51bf  gcc/doc/configfiles.texi
! 8500f86c6eeecad392959c7e0cff5e6e  gcc/doc/configterms.texi
! 4d2454c26871b7e16f203fafd8a16eff  gcc/doc/contrib.texi
! bcb568abf327b00f131bad9c9f7e7bb3  gcc/doc/contribute.texi
! 501b813209ada22d016ebb7c5e7cdbec  gcc/doc/cpp.1
! 2292f38ceca98d5bb6aed1df37bbed46  gcc/doc/cpp.info
! aff712138d9414a9fe1716ba2d1587c6  gcc/doc/cpp.texi
! 93589248ae7c20fb580e9f207c4144fc  gcc/doc/cppdiropts.texi
! 0a2477e1c71642a6f431e44b14622752  gcc/doc/cppenv.texi
! bc3b4fb7b90196bb7cb475c648b3430c  gcc/doc/cppinternals.info
! 0d7cad95038d3ab60de21c0b6bf9d5f4  gcc/doc/cppinternals.texi
! 2d634d06b732b28d386a9095438628af  gcc/doc/cppopts.texi
! ac6062ca0cac2513de84bff3633d1352  gcc/doc/cppwarnopts.texi
! 374e4433b1393ee9d91e493fde571373  gcc/doc/extend.texi
! 36d2f8d35ab67c1ac73a3efd75a38aac  gcc/doc/fragments.texi
! b5f11d19f8c6228987f197fa8d65a9a3  gcc/doc/frontends.texi
! 6db7608c2ef404cf25d46269b27ef064  gcc/doc/fsf-funding.7
! 3f9a6d957135a22050bb7c51f237b24f  gcc/doc/g++.1
! 3f9a6d957135a22050bb7c51f237b24f  gcc/doc/gcc.1
! fd59e977d5f927efb5e5d1d8b62705a1  gcc/doc/gcc.info
! 7040b312fc54f9359916634c463730b1  gcc/doc/gcc.texi
! d68b6fc8d20ccce030a7dcc3c643f5bc  gcc/doc/gccinstall.info
! 0b1c15949cc1f7d1356c074a84871a51  gcc/doc/gccint.info
! d2a951eb3484c8af7edaccda1a4be08b  gcc/doc/gccint.texi
! b5a556bc465981b8947bae153f9d9e6b  gcc/doc/gcov-dump.1
! 5a424a8818a97ec6666383758d38ebab  gcc/doc/gcov-dump.texi
! 3e29d7fe653070b138101c8983504d45  gcc/doc/gcov-tool.1
! add92879a4857f715951ddaa6e770058  gcc/doc/gcov-tool.texi
! db8e69d186b0f385dd6600a1d40a5941  gcc/doc/gcov.1
! 4aab84b1792e1157b40a77e359cbe32a  gcc/doc/gcov.texi
! 7f660598e1931c414df299ccfd785529  gcc/doc/generic.texi
! 5e7c881b8f4e93d1f5b247ccc1234749  gcc/doc/gfdl.7
! e7fe5a9c823f2076eeebb5fa2e111098  gcc/doc/gfortran.1
! 48a379c2e4ebafac8675d80865f16aaf  gcc/doc/gimple.texi
! 2bd96cf0123a441f27bd3fccaa7b3dcb  gcc/doc/gm2.texi
  dc4ccd9843d88bc01c909438dabfd6ab  gcc/doc/gnu.texi
! 5732f1f5ba2a019c4a15c05e69e1adfd  gcc/doc/gpl.7
! 008636cf6a73b2a679e8c8259aec3d79  gcc/doc/gty.texi
! a05b7ba0afedc246e50b186f08721687  gcc/doc/headerdirs.texi
! 7f0c07d5823270acc42cb62767eb4fc1  gcc/doc/hostconfig.texi
! 82bd8ec3630f17b3a124b0f13e276934  gcc/doc/implement-c.texi
! bb6c0501956266c8d43a2c2ecd36941c  gcc/doc/implement-cxx.texi
  8bed7c13f2521176c0f9f4f79c920551  gcc/doc/include/fdl.texi
  8787976f426cd52da24a856cd41d87be  gcc/doc/include/funding.texi
! ef644ebebe5d8bca5dd86653f2a242b7  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! 45d1b1f48f810558d8c5d9934570021d  gcc/doc/install.texi
! 2ef5aff8fc8a7cedf6236f86835e2608  gcc/doc/install.texi2html
! 26c53e1edece23eebf72e40881f20e46  gcc/doc/interface.texi
! 4085c85919d4e4a5e61256d9b52a1b20  gcc/doc/invoke.texi
! 4eb965d8ead78f1e3757415ae4d7872f  gcc/doc/languages.texi
! d2687b47a74c0bb7a227308dc1e7ba84  gcc/doc/libgcc.texi
! 1e7dce602334edeb2ec545b9da6e4206  gcc/doc/loop.texi
! bb1fc9b0ed172514510e7cea4aa9f1f2  gcc/doc/lto-dump.1
! c4c96046878c6a7d1cec0d55bdc1d3c0  gcc/doc/lto-dump.texi
! f7e393ecf55da7875ffe48cf97d93113  gcc/doc/lto.texi
! 3805b40075ad0234e5c1094fb3685065  gcc/doc/makefile.texi
! af3fd517733d45195dea5652ca52345b  gcc/doc/match-and-simplify.texi
! 7e5385442503aff6253445d0dda0eb2a  gcc/doc/md.texi
! f539b10f0713111acf400805382795b6  gcc/doc/objc.texi
! 82f85103d0aa6e6233e9bd8adafb8e9c  gcc/doc/optinfo.texi
! 5be54c7b0f0bbedc905e8331f77cc319  gcc/doc/options.texi
! c8f7d73c0019711303d537b68567d9c3  gcc/doc/passes.texi
! 1eb34e50f7b23e22fe3a9b778b063ffa  gcc/doc/plugins.texi
  0603ab3940871fa2a55ddbd7c2719eb7  gcc/doc/poly-int.texi
! ccd9b82bd3e39bc1102ae6658779b9fa  gcc/doc/portability.texi
! b54aca370d7104c8f824313f42db5d88  gcc/doc/rtl.texi
! 1b7d041bff2f4a6d961caaddaaa68e68  gcc/doc/service.texi
! 75ecf124b89bf77ae0337cdf3a0a40ce  gcc/doc/sourcebuild.texi
! 148dbf041706b95032dd58b402f407b1  gcc/doc/standards.texi
! b1e55e9cacbe186fc5a26695c3a19305  gcc/doc/tm.texi
! 1e8c7eeac0f6d6cfda0336f1a56721a3  gcc/doc/tm.texi.in
! 2278e656d9d5fc3124829fd9596b9e55  gcc/doc/tree-ssa.texi
! 3aac4c714da658c0d252f8b3c337c4a6  gcc/doc/trouble.texi
! a8b6cbb8b63c3454d4dfb39db985f57d  gcc/doc/ux.texi
! 55bb307bece71c6e8d6f5e8e17696671  gcc/dojump.cc
! 68293972ee39d50fee319560b56c3755  gcc/dojump.h
! c1dcd6f3a738eed32cfd895aa1d7c8a6  gcc/dominance.cc
! 6816f4c4e48cab8f520a01146c77ac6e  gcc/dominance.h
! 34a2cd1cfcfdb98613a8202229c4d3cf  gcc/domwalk.cc
! 335a5919c5f3951441bdb1c23a4aec9f  gcc/domwalk.h
! daff71b08321afe3ee27afca24431814  gcc/double-int.cc
! 20c1bf25156bf31a0cc993c6c4f3c197  gcc/double-int.h
! 4dba037c17d097f86cdd7e2a435c7704  gcc/dse.cc
! 4b55186c3cb7afeeef3ef595c7712646  gcc/dump-context.h
! de190af17b56f025e38cc7b80eb99c8b  gcc/dumpfile.cc
! 8d72acdb05890d8e08bdff52e2110299  gcc/dumpfile.h
! bf004846f6a5531c6749cdef5f5e91f6  gcc/dwarf2asm.cc
! ca9033ff37a39734edcb55c478a3a1fa  gcc/dwarf2asm.h
! 40224310d2b6e68a058c4c1079917a1f  gcc/dwarf2cfi.cc
! 163e5e9e8282834ce39f40a4696495a8  gcc/dwarf2ctf.cc
! be8084cbe55394042e43e039c8ed9452  gcc/dwarf2ctf.h
! ac317e8c918731719d2ececb1b5b9db8  gcc/dwarf2out.cc
! 15ac2573846d37a9fc761ca237cfcbb3  gcc/dwarf2out.h
! 949b4f69bfb006cfb1da508bd737e550  gcc/early-remat.cc
! 764b36482faefc5dac455631acf458cb  gcc/edit-context.cc
! 26a88a11700d977deee844d0e5518500  gcc/edit-context.h
! 7f8c1fa82fa9a2f4eaca5b79c5e4dd77  gcc/emit-rtl.cc
! c298cd0daba91db2cd1321da1a414535  gcc/emit-rtl.h
! 188b362c0e3d7ab7be6d688ff0098242  gcc/errors.cc
! af8d2de8b465cb45874825193dc3bf97  gcc/errors.h
! b255d6f4457722f14775f9aa8a929830  gcc/escaped_string.h
! a5fc41cc98ae6fa01564177547cd44a6  gcc/et-forest.cc
! 8fe2b834a1c158abe9a5eeba693f1038  gcc/et-forest.h
! f3cef0b55016dffde8455841d6ffa5a1  gcc/except.cc
! 294743b365febe990dd4a2c96ae3829b  gcc/except.h
! 2372f40e0b8d7fea3f7a324caf3414f6  gcc/exec-tool.in
! 101682a5aeb491e1097d4cc5d2df1a3c  gcc/explow.cc
! 0a8ed642c186cdddebb6a5ab6beeb4fc  gcc/explow.h
! 55139a54e99d6c3f339256680a2ff869  gcc/expmed.cc
! 698a745f400cd248d2a1c1b1bb392dba  gcc/expmed.h
! 040ecebd3aa96f5b8e2553c66a4f65d9  gcc/expr.cc
! b94536f82db12f3d8eb00942b9d6336c  gcc/expr.h
! 0a07d298ca38921bb2e7424255927983  gcc/fibonacci_heap.cc
! 306f3330039cf9bff9d26f3f64465ff4  gcc/fibonacci_heap.h
! a43a9b94e705e86ad90f4a5f91117cc6  gcc/file-find.cc
! 33dc79bb052f00d288904f8f51fe9a56  gcc/file-find.h
! 9ce851f606069da28537ea2610354edb  gcc/file-prefix-map.cc
! 23460e9d5f714b4c92d070ce4e8850d4  gcc/file-prefix-map.h
! 16570c7c41dad556ec5a2d517cfeb4f7  gcc/final.cc
! 417554d2d034fd13b8e584c37694fa49  gcc/fixed-value.cc
! f509ae019760fb711e40cefd2283fb1a  gcc/fixed-value.h
! 93312491577dbdc275772a99528a516a  gcc/flag-types.h
! 4832215f7646ad49b3833ee7b2e3a035  gcc/flags.h
! f6cf52e81c3175f2874b197050a59478  gcc/fold-const-call.cc
! dce7dac7e905ada28c6563d930b531eb  gcc/fold-const-call.h
! b3e373213beb46c8da74bf4de6c36336  gcc/fold-const.cc
! 62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
! 4f7bb701e35eb24cb47a14b01183f031  gcc/fold-mem-offsets.cc
! 29a3237d1a392814153dd8a7013ebc2f  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** a71efd3e199a80ee07c7f350cc8fcf91  gcc/fo
*** 5623,5897 ****
  d1595b2ed8fb2a33f6ce0dc595f4f33c  gcc/fortran/ChangeLog-2020
  6c371391409a36c72d51955cc875301c  gcc/fortran/ChangeLog-2021
  5c5a825ed06bb99f8fc71a6f8d0872ae  gcc/fortran/ChangeLog-2022
  9e0636f92243fb9b3480e27cefc96749  gcc/fortran/ChangeLog.ptr
! a1031ddafa666ce3ade625f41c0dc3f8  gcc/fortran/Make-lang.in
! dbe3c824aa079ab2e1977b69c3311c97  gcc/fortran/arith.cc
! d725b555490bb7f2cd61f6bcc2c3de67  gcc/fortran/arith.h
! 6862ae7ef2b51d178c04725c07fdbde7  gcc/fortran/array.cc
! 35e889b2dd5fcf9ccf78e37ed082d6e6  gcc/fortran/bbt.cc
! 767092f3b1a131a42c4a748fafcf0234  gcc/fortran/check.cc
! ce0a28d639a1a02f929ac8d86d857e84  gcc/fortran/class.cc
! e3250461219cfa76e4436196538109fc  gcc/fortran/config-lang.in
! 25b8459831a3492589703f8ac166fb8c  gcc/fortran/constructor.cc
! dead8f794e0bc7ece3c9f46a4b9ead58  gcc/fortran/constructor.h
! 2b11c42608012cd0b983a05194e5493a  gcc/fortran/convert.cc
! 3ed4366ef8aa1cfbbb2032a559712c39  gcc/fortran/cpp.cc
! bc8a50172db20622023d7b83c31d7737  gcc/fortran/cpp.h
! d49d08bf3282ebea910b14cf88b1b5ee  gcc/fortran/data.cc
! 86b2ebfc95645333cba0df8f79638b62  gcc/fortran/data.h
! ee37a420357297794511b72f8c09a0d3  gcc/fortran/decl.cc
! 92b2a0849ab19332ebb5633d75c3565d  gcc/fortran/dependency.cc
! 528121f9fe625a6b314dd0e4e9601e70  gcc/fortran/dependency.h
! 638a4c6c1f147853ccf44c5442c876f9  gcc/fortran/dump-parse-tree.cc
! 75860b58e8a01aadbfb046789efa8a88  gcc/fortran/error.cc
! 3038e63c53d1f1dd9cfe52a34fc936ab  gcc/fortran/expr.cc
! 012392c6483a51939022df7c6de22fbc  gcc/fortran/f95-lang.cc
! cb0736e48f79ba7f94783d7501f4a136  gcc/fortran/frontend-passes.cc
! 5d21a6b2bc38e36e9ce485f9b899cf5d  gcc/fortran/gfc-diagnostic.def
! d428ee96a4c880140da26aec0f107bda  gcc/fortran/gfc-internals.texi
! 0a1523a3e11b195dcff11a7f6285808f  gcc/fortran/gfortran.h
! ce2c41ac939cc0f893f610988ea3220d  gcc/fortran/gfortran.info
! c477697c9380a63ab2bbe06ee3e5e441  gcc/fortran/gfortran.texi
! 538b040a49c9f6c46cbd59c2a9ce1afd  gcc/fortran/gfortranspec.cc
! 920681285743032ca14d49a65dea58aa  gcc/fortran/interface.cc
! fa6aa4009c0eec8232b24902c6900993  gcc/fortran/intrinsic.cc
! d9000cac276ba162b0a7fcc76c6f8be0  gcc/fortran/intrinsic.h
! 9c38010b39eaa7dc10c02b510ddd4d20  gcc/fortran/intrinsic.texi
! 211ec2a87dfb468db93dc18be3821b87  gcc/fortran/invoke.texi
! e25a04efa7ac5e920a21a383235da157  gcc/fortran/io.cc
! 1b49007c5da8e0831c984754f0905035  gcc/fortran/ioparm.def
! dab05b735b8cb3f052d21778d880e650  gcc/fortran/iresolve.cc
! ad808a3e3c725da4d83aa2253f4b6bc3  gcc/fortran/iso-c-binding.def
! d2a4c5315fb086aeaa125c4b2829a29f  gcc/fortran/iso-fortran-env.def
! 5659bf0ae0187cfd21cd8f599d82f98d  gcc/fortran/lang-specs.h
! 92cf8f5887329d298f04e41b7fd4b780  gcc/fortran/lang.opt
! dfe2708ae1610f0355d4e3f64825ed31  gcc/fortran/libgfortran.h
! 08a1a0779191b3b5841023000ea002fc  gcc/fortran/match.cc
! 6da0bc7042d9bd55ddf1b96015c07579  gcc/fortran/match.h
! 38fc5448e9ea8b828a44496034ac708e  gcc/fortran/matchexp.cc
! 540b2df11e809f8e922d0bc5b5562d6b  gcc/fortran/mathbuiltins.def
! 7d747e480d55c8abf8c69b45a4d2b572  gcc/fortran/misc.cc
! 9e2b905df5f9fc837a357446869f949e  gcc/fortran/module.cc
! c310fb2cf5f2bb20fbf7f911e7a5b2cc  gcc/fortran/openmp.cc
! 47d8fa5113c1f84c750b8fa73bbc5cfa  gcc/fortran/options.cc
! e01b3ff4f9a34a0d8ea09103b65e1480  gcc/fortran/parse.cc
! b07d21325e9bf64201a6131a3dacb9e2  gcc/fortran/parse.h
! ca3099f4567ce46ee6b30bbbc9cff3c8  gcc/fortran/primary.cc
! 9d1d3bb577046a3f569b564062483a4a  gcc/fortran/resolve.cc
! 4c64219f591caa92c353a8d113120d87  gcc/fortran/scanner.cc
! 0ea05c5f1f9c27f26a76525f5eed9380  gcc/fortran/scanner.h
! 42ff730746d606955267518dba62febf  gcc/fortran/simplify.cc
! 72519934fee840610460010d9b5e0503  gcc/fortran/st.cc
! b51ee6b2a9e4f3e8bf69662f69c8f23c  gcc/fortran/symbol.cc
! e99e43daa5fef5f3d2c6dce6be81a683  gcc/fortran/target-memory.cc
! 70445c82cc8c84eb76adf2a52acad00d  gcc/fortran/target-memory.h
! 6adbd8aaf54d330a1738b7b96e95e9fb  gcc/fortran/trans-array.cc
! 23946ddd5d17c204402c44a0b9a00d75  gcc/fortran/trans-array.h
! 4c2eb969dbee5d6b83074ed09773b70b  gcc/fortran/trans-common.cc
! 45ab297b0b34853431ed0f3c09a63db3  gcc/fortran/trans-const.cc
! 2825c959ade33ef2a6492d640b05ef8c  gcc/fortran/trans-const.h
! 7c67a63f4b154b22cb30dea7903ab085  gcc/fortran/trans-decl.cc
! 5cdb002ed97ee28c8396dc310e69db89  gcc/fortran/trans-expr.cc
! aa7db01c621f70aaafdec88f841c85a4  gcc/fortran/trans-intrinsic.cc
! c2777cd0e39ba69462f4cf01549e1001  gcc/fortran/trans-io.cc
! 4100e048c21085f4f2f9bdb70f4e29a2  gcc/fortran/trans-openmp.cc
! f80e2b35dd9984f23ec5e900639fe3e7  gcc/fortran/trans-stmt.cc
! 61675b3c591abd1d33f4d00338f84245  gcc/fortran/trans-stmt.h
! b1f95ad84f13bfa7353375c5f77c3998  gcc/fortran/trans-types.cc
! 5581dfe9c36f8428667284c49aa3d0a8  gcc/fortran/trans-types.h
! c2539b2f896d34768eab33e1666b7ab6  gcc/fortran/trans.cc
! f816175a2ce44db1f8492faf3a65da0d  gcc/fortran/trans.h
! bae9bee7bfae062bb68f7c3b8d6acdb0  gcc/fortran/trigd_fe.inc
! 630fb1a9d96d7163a799226c47d93e42  gcc/fortran/types.def
! 6e6676a600dabdc095824090f0413b0f  gcc/fp-test.cc
! 5a80a7008007e116025a7a3c9796fdc0  gcc/function-abi.cc
! 3a145e6b7f87c4e84c84bbb84f77d201  gcc/function-abi.h
! 9d3f4e62a09a4f1b7e01c2611985469b  gcc/function-tests.cc
! 1b9cd2186d1c1e9b86c956a5673f0aa9  gcc/function.cc
! 26caa4b20f75c2eb576da5bea538a2bc  gcc/function.h
! 97522e4b206b460428df4f324aa88fe4  gcc/fwprop.cc
! 8b44f92603525757cdb88056f5f18ca2  gcc/gcc-ar.cc
! 5d0b85771982e816a798a8206c3fc74c  gcc/gcc-main.cc
! 73e2fac76430bce31ea211c315bda445  gcc/gcc-plugin.h
! c1a2319dd98fbb3cf4d0f1bc3bd9411d  gcc/gcc-rich-location.cc
! 311b586e10061aa51fe4a5104b704149  gcc/gcc-rich-location.h
! d0550adc071932f54b7e84efcf70390f  gcc/gcc-symtab.h
! 593b02fa14d7eeebe3b683e93b2228e2  gcc/gcc.cc
! ffa75db321d301638c5a896b4a82acb0  gcc/gcc.h
! 2d213a0bc44c748c31a963119269ec27  gcc/gcov-counter.def
! 21a831f5ad30a77681f463ffb6778855  gcc/gcov-dump.cc
! a061f3b1bc13792371e3aea9bcea55e9  gcc/gcov-io.cc
! ec7a2d8bbff219eabbfd6c27d5ba0f1a  gcc/gcov-io.h
! 372a66cfa298d942686c4d60a0e6a54e  gcc/gcov-tool.cc
! 086e9bebaabf0330af3ff55c3299b092  gcc/gcov.cc
! fc765fe2c0376a323c3e05199a6642c6  gcc/gcse-common.cc
! d93e600542d14d20d983a105d37e4b7b  gcc/gcse-common.h
! 89356c0b0593711eb0320e9660d75975  gcc/gcse.cc
! afb7e14e477ad7ce68d069b83e7b8347  gcc/gcse.h
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
! f440dc2cddd542a8b1c8bae604d0ac1c  gcc/gdbhooks.py
! f0597f3cb560d84362303308540350d0  gcc/gdbinit.in
! ded5ec60ebdb05bebcfc3e1e29738ff1  gcc/gen-pass-instances.awk
! 32694c1fab4d6999b237e60631242209  gcc/genattr-common.cc
! fbf24911aa41bb149b45c91aca3c9919  gcc/genattr.cc
! 2504227e2763bbdef5a8414d22894951  gcc/genattrtab.cc
! 03df20173faf9f2be4993619d9461aad  gcc/genautomata.cc
! e83d5121aed1484b28a27fb9beb475b7  gcc/gencfn-macros.cc
! 187fd832a68e96b8341cf58b74deefc9  gcc/gencheck.cc
! 8bdfd96e35a0803ec2371e14bd280bac  gcc/genchecksum.cc
! 2272622f91c3d513cfa191512eff4cd3  gcc/gencodes.cc
! f3cd048b40e6a1a1f89bd8ba625eb5a3  gcc/genconditions.cc
! 8cdf4e9d1a3cf8eca9fcff8db60473c2  gcc/genconfig.cc
! c95ebf198c7a70ab69714b54f1796482  gcc/genconstants.cc
! 2b0b291e06d85277dbea1657b030d0d2  gcc/genemit.cc
! cc162e4b8e4003593f5a6fcfadd4d07e  gcc/genenums.cc
! d258b1bcd3dd4ab8eb1bbf09f60dc200  gcc/generic-match-head.cc
! 368d6797b244786570ddd98e596d1d29  gcc/generic-match.h
! 7a825a2d078d154675036b7133c6816a  gcc/genextract.cc
! 7dc273587dd4838a57817b211ad1f139  gcc/genflags.cc
! b6fd297a00cab6b8993690131bc4c0f7  gcc/gengenrtl.cc
! b22f073f4678ae222e2bc01ff7948ecd  gcc/gengtype-lex.cc
! ff24fa6416a039455ff62a41252d6f7b  gcc/gengtype-lex.l
! 91e7a263b28c131771f0c6463ebb1bcb  gcc/gengtype-parse.cc
! 433b94a87abdc5536d0c8d2b097cb669  gcc/gengtype-state.cc
! 2c09e645967b3f68ada4e18d3dd2d63d  gcc/gengtype.cc
! e0d0f369c0b3561c1811db4cda5ee811  gcc/gengtype.h
! 681dd3836e8a4b75afc0f76ca76192e4  gcc/genhooks.cc
! a48a6cfafd3fc5f0bc54808ba23fe214  gcc/genmatch.cc
! c0ed410bbe477ba49f81bddb8761859a  gcc/genmddeps.cc
! 063e980b03cc459fd39e65e4df6e0e8f  gcc/genmddump.cc
! 54fe4a99cfccd066490a5ba47d032ab3  gcc/genmodes.cc
! e2e9db28455bc20db77aa12f8e780af1  gcc/genmultilib
! 3a844bbc8e25a2e772beff53ed5841a6  gcc/genopinit.cc
! bbcdcff0044f4a94d656298db3e3d47c  gcc/genoutput.cc
! 88fdeae8426487598a7a5575e1a9af24  gcc/genpeep.cc
! de97768c4d4323bb137034c8bf3c9ad9  gcc/genpreds.cc
! 9e728909e91dc86ee7a7b70d2c134043  gcc/genrecog.cc
! 52e1fbb713df6457876a374017cbafdd  gcc/gensupport.cc
! 3e95c7746e4b605d3b22047b24a18429  gcc/gensupport.h
! d1e7a4290ee9f49476e6ca7776d601cf  gcc/gentarget-def.cc
! 3497c1c9f188ae7378e60e5df68973c8  gcc/genversion.cc
! 3a3ac110be12dfd050b63e4b5bcb85d0  gcc/ggc-common.cc
! 56b94e598841b52eccd3237acd19cd2c  gcc/ggc-internal.h
! 597a6553536f682558b00f2e0ea1e68e  gcc/ggc-none.cc
! 1a7a41c389b096e066ca689404ef77aa  gcc/ggc-page.cc
! fcadf1cd28fcc01c89bc61f8c8fd3779  gcc/ggc-tests.cc
! ccc5711ecd52f17d0dc04a5cd9ead00c  gcc/ggc.h
! 5a50cadd1dcc81f8e75d4bdebc373e0e  gcc/gimple-array-bounds.cc
! 0e5407e2356362d7df736b05dd2f4438  gcc/gimple-array-bounds.h
! db0ccc0edfede8aba0098ae504276e86  gcc/gimple-builder.cc
! 2e82b4bd416d82267e23cfb6b62145d3  gcc/gimple-builder.h
! e634f1d7185ba18b7409d0caf5dda150  gcc/gimple-expr.cc
! 029271620b653993e15dfe20ddd2d37b  gcc/gimple-expr.h
! 5d5d242e64ed174aa6bbfaac6418ca3c  gcc/gimple-fold.cc
! 9a9d95793deb7de9860fc0d1215b3390  gcc/gimple-fold.h
! 7cf98e471595ea406079ac821d418500  gcc/gimple-harden-conditionals.cc
! ab5c0e8e80c5a594037aa3a03ad791c9  gcc/gimple-if-to-switch.cc
! abbfb806967247261721a1426b3ca8b3  gcc/gimple-isel.cc
! b069e9e3036a5be85f13d7ed6b712446  gcc/gimple-iterator.cc
! 8546ceb8b61e658a5611b91453822fbe  gcc/gimple-iterator.h
! 9cb5accb4acfb52a12c188eb63da85aa  gcc/gimple-laddress.cc
! 72e941e28563893bc3e6b2d86bcd8154  gcc/gimple-loop-interchange.cc
! 98ac4e2d69f0aa03e94034e43fa19b9c  gcc/gimple-loop-jam.cc
! 4b9a3d495fb62afd583b19545c823417  gcc/gimple-loop-versioning.cc
! e8ae7c4811c6ea1d7ca4300595f6a351  gcc/gimple-low.cc
! f56d763b660a3269a8502a8976fb3400  gcc/gimple-low.h
! 33016ce950bb4d535a7f5b26e06daa9f  gcc/gimple-match-head.cc
! 81662d1e70874dc5ddebb9cab55de6d7  gcc/gimple-match.h
! 4c2a2863e7bbae1b2523c6d0492da638  gcc/gimple-predicate-analysis.cc
! 9d5e6300c4a359fcde1abf212245eb5d  gcc/gimple-predicate-analysis.h
! c006b7e8bf1d5bbb53532c7d765a7b5b  gcc/gimple-predict.h
! 254be4975243d1918c2e1e4de2d45f33  gcc/gimple-pretty-print.cc
! 1f6de5d464fb403c0d90293d38ac4e28  gcc/gimple-pretty-print.h
! 7d19f76dd3504f1be48c003e2e57a12a  gcc/gimple-range-cache.cc
! cd5746fe031b5d538b360fa10b1d17af  gcc/gimple-range-cache.h
! b25199c5ed0e508a53d8475feccb5c61  gcc/gimple-range-edge.cc
! 63552731dc609ddfd75542482f4ac3f9  gcc/gimple-range-edge.h
! 026c72667bfbb609f4eb2edd688d7f93  gcc/gimple-range-fold.cc
! 80a33f217a8462e04c962982e13c342f  gcc/gimple-range-fold.h
! e95708c518cce98f2e90ca2b346487c7  gcc/gimple-range-gori.cc
! 83fa369894ed79484edcd88e46e5ff5d  gcc/gimple-range-gori.h
! 7b1dc20ba60b4caa74daea9f1f124b18  gcc/gimple-range-infer.cc
! 9f35006871562ecf765135728e0d57c4  gcc/gimple-range-infer.h
! 487a96f6c36ce32cfe9885b8dcb738ee  gcc/gimple-range-op.cc
! 40bb619c45615b32a7d0005623488726  gcc/gimple-range-op.h
! 8172ae668f7250132a8b9a287010fa34  gcc/gimple-range-path.cc
! e29891d13b0ac2e960cac756204b9b46  gcc/gimple-range-path.h
! a03b4f17862e24c25dc27bd52bf6e4c9  gcc/gimple-range-tests.cc
! 1d284fef5facc9d3af2d9f27e0a7939b  gcc/gimple-range-trace.cc
! 7a8faab9d11d2332278fc21791ee0b3e  gcc/gimple-range-trace.h
! dfa9268a94fe4ee9bba75c8c97f0200d  gcc/gimple-range.cc
! 0976244211621a90be645055605c6daf  gcc/gimple-range.h
! 56830cf539b3435d091891bbba95ef6b  gcc/gimple-ssa-backprop.cc
! b3178e7dacab1eeef6f1baaa46a35607  gcc/gimple-ssa-isolate-paths.cc
! 749a81e49450342357c075a9b79b8992  gcc/gimple-ssa-nonnull-compare.cc
! 11b5e3a1e0c7638d90da5ecf2cdb04e3  gcc/gimple-ssa-split-paths.cc
! 23b52ef0e64595de3e63ce532ff3c36b  gcc/gimple-ssa-sprintf.cc
! 2bcaf4808315c05c9d18f47fdfc47043  gcc/gimple-ssa-store-merging.cc
! feb1e49f3049b5493cdc6992e835aac8  gcc/gimple-ssa-strength-reduction.cc
! 6092b36acbaecc4d75350ed8a552aaac  gcc/gimple-ssa-warn-access.cc
! 5552bbd93405fe7df3168326c4937c69  gcc/gimple-ssa-warn-access.h
! 9d79faa40edf139ffdf7d68d1537b0a0  gcc/gimple-ssa-warn-alloca.cc
! 40441da7b03d2997dffa1122ded5e2f4  gcc/gimple-ssa-warn-restrict.cc
! 422e0a09e39554ba2887528c8bed90bb  gcc/gimple-ssa-warn-restrict.h
! 5f8d9f93d02bcd5879dec56a1bdd3f2a  gcc/gimple-ssa.h
! 46f04f99566834e7cc84a3d2d8c9bda5  gcc/gimple-streamer-in.cc
! f2ac4765424453762a2ec4deb1a07d64  gcc/gimple-streamer-out.cc
! 27e1f2dcfc6351d766a10f88df8d79b8  gcc/gimple-streamer.h
! 97728845afc62662a2b2a3c43fe667b3  gcc/gimple-walk.cc
! 7ad8fca7963a892e60b9571e760e7ec5  gcc/gimple-walk.h
! 1f64478d544cbac57eed955b9b2b709c  gcc/gimple-warn-recursion.cc
! 8816cef486527a9fec6b68b907bba021  gcc/gimple.cc
! cdca7003d337efe5219b5d19f7155bc8  gcc/gimple.def
! bb54e7f3ff9957dcf7b1b10fcd527797  gcc/gimple.h
! 839b10eca81556c0515395365235a888  gcc/gimplify-me.cc
! 0a4464e175c1aed6501ea243476b7c6d  gcc/gimplify-me.h
! 902365babce99c24f9027e12af9af2b9  gcc/gimplify.cc
! d0042a88c5e87b0904397052ddc6c33a  gcc/gimplify.h
! 02d1486ff7d3d34b7868801df9534c0e  gcc/ginclude/float.h
! b0ab9b7ae13d3afe6cdbfc24425a93fe  gcc/ginclude/iso646.h
! c8899b06ef78a5999996cf52cd344c91  gcc/ginclude/stdalign.h
! 9eb2d2dee513b57d67037d86d49ddf4e  gcc/ginclude/stdarg.h
! 280375b0549a5bb8e2f366a4c8e1a45f  gcc/ginclude/stdatomic.h
! 80a9c1aa0fa71b8fa9412be8589c4794  gcc/ginclude/stdbool.h
! 00b3c045a13f7594b628c670532dde1e  gcc/ginclude/stddef.h
! 9f63387ae6ceb7b7baad05091512a829  gcc/ginclude/stdfix.h
! b62976756703b087708c4f6915eb8ff7  gcc/ginclude/stdint-gcc.h
  f85aa0745c3e9e0d32fa64753089b2f1  gcc/ginclude/stdint-wrap.h
! d805766cac737a191548368792524f9d  gcc/ginclude/stdnoreturn.h
! 5402c032b10ed83d1f77ec71616dd286  gcc/ginclude/tgmath.h
! c92410f8fdb1cb95371b72c53ad55b5f  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
! 5a3af36f882f0b8588bf6b6d2a2dd6d4  gcc/glimits.h
! 07cf971e6521609dfad2480ce0799f22  gcc/go/ChangeLog
! 1e68fc87619f2cd82132ed974cbcea92  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
! 401d2277f19452f5b013534ed200a591  gcc/go/config-lang.in
! e72c6c1dad1019d9aaafe0dfdfc61c86  gcc/go/gccgo.texi
! 42a515c6337f5588abe87eb14903fc84  gcc/go/go-backend.cc
! 9c66a14b95f620af8dadd7983c6e59f3  gcc/go/go-c.h
! 345e1be9f23e685801689c8a988d6c9e  gcc/go/go-gcc-diagnostics.cc
! d498ee616922ea9508f4676dd81d46f3  gcc/go/go-gcc.cc
! 01ea211f2ed2cade1e750fba940c8a0d  gcc/go/go-gcc.h
! db42697ec979630a7149dcf923bb0d1a  gcc/go/go-lang.cc
  c5d6aaa7e913ef205113a2bba2e5206f  gcc/go/go-linemap.cc
  91c7a6773e207cc086ae0888826cc3c4  gcc/go/go-location.h
! 379a0029afea43244e05e7365d87fb0d  gcc/go/go-sha1.cc
! 098ac0c723c55fd6475303003a79a570  gcc/go/go-system.h
  5d4950ecb7b26d2c5e4e7b4e0dd74707  gcc/go/gofrontend/LICENSE
! 3fc22e35b1774e97400b8b7337450167  gcc/go/gofrontend/MERGE
  3a55d95595a6f9e37dee53826b4daff2  gcc/go/gofrontend/PATENTS
  31c16a91d82f8ad3319819ebbba2d17f  gcc/go/gofrontend/README
! 38df5a2d45162cae2b454cd17fa8df7a  gcc/go/gofrontend/ast-dump.cc
  456b6d4cc785176b6e3eb0c685a93b39  gcc/go/gofrontend/ast-dump.h
  ea386ab9fecd1e6a9d230d51e7190683  gcc/go/gofrontend/backend.h
! f4698d5111935f1c789b7efd8ed91a74  gcc/go/gofrontend/embed.cc
  7963756a49674b738fac31837f53c23c  gcc/go/gofrontend/escape.cc
  ee8753eb1d8ca2fa168f6a71d3991455  gcc/go/gofrontend/escape.h
! 3705b4e2024d6d36ef4c72d36152dfc6  gcc/go/gofrontend/export.cc
! c10142760925e22c72c7072c9c214bf8  gcc/go/gofrontend/export.h
! 9e25465bf263c23a89ae92f8a1cdf1f6  gcc/go/gofrontend/expressions.cc
! 916b62cc20abf79c5919886f855539d3  gcc/go/gofrontend/expressions.h
  bf7f8a519eadaa90804fe15cfa37ba6f  gcc/go/gofrontend/go-diagnostics.cc
  accfd5ea41ee789e6adbaec31a228cfe  gcc/go/gofrontend/go-diagnostics.h
  19e66447fa803385274b4e1a7501a4d5  gcc/go/gofrontend/go-dump.cc
--- 5919,6206 ----
  d1595b2ed8fb2a33f6ce0dc595f4f33c  gcc/fortran/ChangeLog-2020
  6c371391409a36c72d51955cc875301c  gcc/fortran/ChangeLog-2021
  5c5a825ed06bb99f8fc71a6f8d0872ae  gcc/fortran/ChangeLog-2022
+ fbb872b566e2ec4cfaf854a2bc7b0670  gcc/fortran/ChangeLog-2023
  9e0636f92243fb9b3480e27cefc96749  gcc/fortran/ChangeLog.ptr
! d2b5e19b5750919b1dc193e2846090e8  gcc/fortran/Make-lang.in
! 628502163ecbbf74cc0f64c524199ed0  gcc/fortran/arith.cc
! 2cc199a14e3d9dcce43322fc86fc1263  gcc/fortran/arith.h
! 52732cfaa58afb755f57e871203c6280  gcc/fortran/array.cc
! c6240012d4d50e01e012119cb17ff776  gcc/fortran/bbt.cc
! 6a6916e85a5a32415c36443edbd50feb  gcc/fortran/check.cc
! 36913a064fdd8132c8fcb8319df754f4  gcc/fortran/class.cc
! 7e9b4fe2af6c413d3294cdd91306351e  gcc/fortran/config-lang.in
! 627377e8cf3bf29504a9be5beebe3381  gcc/fortran/constructor.cc
! c2daec9eb9d9753bcdfcb0b8ef08cd8e  gcc/fortran/constructor.h
! af0d7f72f88d0810924a6a579045eeab  gcc/fortran/convert.cc
! 1207ac9e14b5c8f704156dde571c6559  gcc/fortran/cpp.cc
! 2df1006a61dabc70f90426595056788a  gcc/fortran/cpp.h
! aa3e28e6adf564765577a4f376bb9d05  gcc/fortran/data.cc
! 2a77523a8c759e7a5e480175dfce3e06  gcc/fortran/data.h
! ae30e0a8a750a66670bac15c8a30aa28  gcc/fortran/decl.cc
! d0ce344efb7992b517f4c6804e6aba26  gcc/fortran/dependency.cc
! 5a69241d57d8b6127ecb02e0a22bee6e  gcc/fortran/dependency.h
! af59533c4bfc13e7b07e6ec1c164832c  gcc/fortran/dump-parse-tree.cc
! eaa509e23c681b4615a43afdbfe3cb0d  gcc/fortran/error.cc
! 3e71542ff3b4af60bc25de49531deb18  gcc/fortran/expr.cc
! 5790e4e2fb5a21288fcb647a0dca23c4  gcc/fortran/f95-lang.cc
! 695ece4eeb62bb39b955ec351fdbd8bf  gcc/fortran/frontend-passes.cc
! f12471f71a85ea43d5295d1190faf890  gcc/fortran/gfc-diagnostic.def
! 21286a817891898ac50a2b843007652d  gcc/fortran/gfc-internals.texi
! ccc422b59902ffec57a53f35a4eceea1  gcc/fortran/gfortran.h
! 7cff38fc25884efa2cb15745c9502469  gcc/fortran/gfortran.info
! fff36d91835958b7f1df8c7906129b96  gcc/fortran/gfortran.texi
! cc84451cbcaa91ddd59babe04bda0b1a  gcc/fortran/gfortranspec.cc
! 98c31e244971b5a4619e45461dd9f6c2  gcc/fortran/interface.cc
! df46b68ac2bc3086485916347795a6e2  gcc/fortran/intrinsic.cc
! 7c5c308109e781e905a4606be634b46f  gcc/fortran/intrinsic.h
! 3f7081a11cbca781ba26400c16f44044  gcc/fortran/intrinsic.texi
! d02a37f560d24e6c93ca58015c439402  gcc/fortran/invoke.texi
! 0bab6e26e07b4784cc43cb3dc20010dc  gcc/fortran/io.cc
! 93612186f78a67603a9b0339261c2469  gcc/fortran/ioparm.def
! b258c6930065d935a9e352127ff98b6c  gcc/fortran/iresolve.cc
! 196ec628fe20afcf9090d2f773750a95  gcc/fortran/iso-c-binding.def
! fe42cd7b44c39f11d30fbe2708744a2d  gcc/fortran/iso-fortran-env.def
! f731d32ce05d070f1df4967c2ba8c9c2  gcc/fortran/lang-specs.h
! 9842051e2822d8130f578344e561d394  gcc/fortran/lang.opt
! c90ca625190445c2f9e5014f2643e5f1  gcc/fortran/lang.opt.urls
! 8f70b6af9bb7b493f688d2387ae11bd8  gcc/fortran/libgfortran.h
! 369a17b3bdf94003e8d38cf733894882  gcc/fortran/match.cc
! 79e462d1e87fb685a920318246f348d4  gcc/fortran/match.h
! 5796e2abb1ed0b90aafbca3796a9e5b8  gcc/fortran/matchexp.cc
! 610d97669425c033f4edb591e02b22d3  gcc/fortran/mathbuiltins.def
! 982581c25caf363e8ff4933ece911983  gcc/fortran/misc.cc
! e85c32445c6de7c1d06b379a0d1f12ad  gcc/fortran/module.cc
! 2788da2a93ded20d578d7ac14a5c9d61  gcc/fortran/openmp.cc
! ba11ab9ac11e6a78fa7706263e42f1fc  gcc/fortran/options.cc
! 56af741644ab30aa09221a750079e265  gcc/fortran/parse.cc
! 6afe26dd3f7a33ff8c524687d1958f05  gcc/fortran/parse.h
! 9e5e8cb3a6398025cad466e4b8bbfc90  gcc/fortran/primary.cc
! fe55b83b16abb46a18a292b024b965a5  gcc/fortran/resolve.cc
! bf73188a78ecc3c99bc6915db827d75f  gcc/fortran/scanner.cc
! 1cfffbabece85f419a6ca2676917e619  gcc/fortran/scanner.h
! bf3941062b53979c5c61599c591f5275  gcc/fortran/simplify.cc
! a0bad1c11baa50813a82d72f738f0872  gcc/fortran/st.cc
! ccd588322c2553ad8f44622e1efa6aad  gcc/fortran/symbol.cc
! 74785cb703ffef31c77a2efb99685bb4  gcc/fortran/target-memory.cc
! d418319a23a87a1e1e8054eaeb5d527b  gcc/fortran/target-memory.h
! 8bee7af84a57a0b9e63733b3fe1a116b  gcc/fortran/trans-array.cc
! c0fda053eecaf4f55c32d4fe8c8db3e5  gcc/fortran/trans-array.h
! 700878379c55cdec457b83a922d93699  gcc/fortran/trans-common.cc
! c420f80da3e0e794311a9b90c49abce5  gcc/fortran/trans-const.cc
! 5644e20cd4aa0324875834a377cf89a4  gcc/fortran/trans-const.h
! ebc88028eecd423a0a2c018a5f84a9f0  gcc/fortran/trans-decl.cc
! 68f1e34485775c8ec162a4c9c69cef80  gcc/fortran/trans-expr.cc
! 6c7a8c1c2bf4ea5ac8e3e12a30272d81  gcc/fortran/trans-intrinsic.cc
! c98d7a82f7c05a8ce2fde2f58a00a4e0  gcc/fortran/trans-io.cc
! be2abe61b914863c8dce5e37cb7f1491  gcc/fortran/trans-openmp.cc
! 4de2ca47e831ff2254777b5135774e20  gcc/fortran/trans-stmt.cc
! 1b5e4247678ad0441b5b0f26de2ebd4f  gcc/fortran/trans-stmt.h
! d02a0c195101aefb94edf69cc46275be  gcc/fortran/trans-types.cc
! 99093042b01c6c4c1ee2c064808bdaa0  gcc/fortran/trans-types.h
! d9d274d783642f6e1749266ab7178b64  gcc/fortran/trans.cc
! 29a1230eb3bca55231d07eb0a5c33e86  gcc/fortran/trans.h
! a5dcb5f38620ab51c2408b1d0fade263  gcc/fortran/trigd_fe.inc
! 14d5ef9c0a16145fc4d821f1a1eaecbb  gcc/fortran/types.def
! 2c61c6deb62c5b2a8f5eb059ac90ed17  gcc/fp-test.cc
! 17acdf4056683086f51937078a1f1d3f  gcc/function-abi.cc
! 93f272a4955c63a9aa6f65f8390b3e0f  gcc/function-abi.h
! b21ae9e84969c22c844658e40c64cc2d  gcc/function-tests.cc
! eca0442b4aeff7cbb48bfb919da8162a  gcc/function.cc
! 2c579d1fa729263df07005d4f111c7c1  gcc/function.h
! 848d42ef9bcae535474b0754f93e4266  gcc/fwprop.cc
! 4cf32700135520df98871f3d7552f316  gcc/gcc-ar.cc
! 53e961fe521d8feb57a1b0245faf9e5b  gcc/gcc-main.cc
! 1c6e5ddd7e0f700d52d0d9a865b7ad0f  gcc/gcc-plugin.h
! 3dad39f67f26a6f0bbf80da8d3103d54  gcc/gcc-rich-location.cc
! 764f54b37cc70ce60f44a442ae90bdcf  gcc/gcc-rich-location.h
! 294688392026dee53e408a238b49be39  gcc/gcc-symtab.h
! a70660922d2da60b8d4fc0ede6dcdf23  gcc/gcc-urlifier.cc
! 3ba51d67080efcd8791ea2eaf4103d72  gcc/gcc-urlifier.def
! 58f2f8eb4a32c8fb8f09057231f8e7d2  gcc/gcc-urlifier.h
! a52089a88e34e02c9d6fa7d1a51b2d88  gcc/gcc.cc
! d5b5fd54cf9d68c3815ec1194c3b85cf  gcc/gcc.h
! 73f1c885562ffae9c54575b89c6b4cfc  gcc/gcov-counter.def
! 24fc8b285d6665cfc61bab91042e6c0a  gcc/gcov-dump.cc
! 23db1422424b0e1d4d37556bdc58de37  gcc/gcov-io.cc
! 30403a012d00bbe1843fb2bec8b4a1c7  gcc/gcov-io.h
! 7a9c1b44557d174a28424309cbf5b5e6  gcc/gcov-tool.cc
! 88f3d3b8a15229118865d8fdfa128f2b  gcc/gcov.cc
! 14708a403e0d2b9f25537c4d7ff7318d  gcc/gcse-common.cc
! c82f8243cb92d3253b4e2abe1dae2bbd  gcc/gcse-common.h
! 2fc559c7cfc202fb9e52c727b82cf60c  gcc/gcse.cc
! 1140c3d8d9f268e72ca97f13ca4fe278  gcc/gcse.h
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
! 1bddf8005165ca2ed46592f75cd11393  gcc/gdbhooks.py
! 5b54b542f3673e3cff6d4898c7fcab43  gcc/gdbinit.in
! 686b6016e3f1d123f35ed695dbe783cb  gcc/gen-pass-instances.awk
! ad6f4a5a45c8f57f90d5535fdf2999c0  gcc/genattr-common.cc
! fdf9f5ed875786872dd8158acca7185e  gcc/genattr.cc
! 731b9824ce8662910c9b9b2f8ac315c1  gcc/genattrtab.cc
! 432427c65fa30d8dc6beeba96d3f3862  gcc/genautomata.cc
! b19a98dd3e16714cbada09cd9c65bbdf  gcc/gencfn-macros.cc
! 09a38d7dbd20c5a314082777dfc3f5b8  gcc/gencheck.cc
! 9ef4126a91c733d1d75675e0988f746a  gcc/genchecksum.cc
! 8f4f8c5c59cd63ba3d0e2f8577ab82f7  gcc/gencodes.cc
! 92c6e72a89c97e2ca39b90864b281d46  gcc/genconditions.cc
! bb7378727cbc8346ebdf8cd0176af412  gcc/genconfig.cc
! 9fbc939eb3de1b24e44fe11079188734  gcc/genconstants.cc
! 943979b69fdc9944eca15baf362f98e4  gcc/genemit.cc
! f3a7764a7c793e3d3df9b9acec2f48d0  gcc/genenums.cc
! 2eeedeeeb51c596de137156b7537bbe9  gcc/generic-match-head.cc
! 0c416ac0631bf27d14efb4448314ae77  gcc/generic-match.h
! 1390ddecf16e4f6bd2726bedbabe9efc  gcc/genextract.cc
! b888eb75bc8713a70f6e9c5d97c71dc3  gcc/genflags.cc
! 25d950e53b1556c41c6e8bc0104c131e  gcc/gengenrtl.cc
! f1d3e55778b16a22e527ef8572ab4b7b  gcc/gengtype-lex.cc
! 7fa5283075bec5085d8defb3fb49a887  gcc/gengtype-lex.l
! c05467763def60f5f6de8496dc73733d  gcc/gengtype-parse.cc
! f5c84ac923e5a487eff1fc34c4e2a98f  gcc/gengtype-state.cc
! 147d51856ba6175e4753729e9a3189b7  gcc/gengtype.cc
! 13b78a44315249c749513ea759435b1a  gcc/gengtype.h
! 983c5b906ee41223a0aa5f3bdd2ef304  gcc/genhooks.cc
! c95084d8da18da94d8f0abbee35218f8  gcc/genmatch.cc
! aca52652b20f4f0d360efb0c17fdd436  gcc/genmddeps.cc
! 305ec0e8b3735525e349504e235b5bea  gcc/genmddump.cc
! 32bbad1107a5d4b118142c0b17ef7c28  gcc/genmodes.cc
! 5220c3e64350b734aab570a3b1e5ad01  gcc/genmultilib
! 458104bbde5fa748d21d596a0efc0224  gcc/genopinit.cc
! 5556f6c26079f9eb663c96d5969083b2  gcc/genoutput.cc
! 2953bb20e56195a989a9e6d603c38f63  gcc/genpeep.cc
! 04537c2499001ca6c757ff7e682c1b7b  gcc/genpreds.cc
! 8acf4f7cf4ea7aaac50c56bac6d4a1fe  gcc/genrecog.cc
! 13cf1c53f018677c027e413a389ee6c5  gcc/gensupport.cc
! bcd635b9b2a00eee06797a630dec5d54  gcc/gensupport.h
! 622470a844384260886bd3d46d97a2ef  gcc/gentarget-def.cc
! 437e8cfa4923b14e6530be7a3ce936d3  gcc/genversion.cc
! 27094b4c223d1f70a5fd9dac967be0d7  gcc/ggc-common.cc
! d190fdb80afb3e9ef3fe16c71a190a02  gcc/ggc-internal.h
! 761617edf560c2d9dfd5493c0cc187e9  gcc/ggc-none.cc
! da4d6a510a9da09792e7b27a06669f10  gcc/ggc-page.cc
! 1fa6bb5dd1f2db423aee4009f76eb6ab  gcc/ggc-tests.cc
! 331c057efe3b24a3afbddfb840eded2b  gcc/ggc.h
! 9c13538d7916134dba70ee57ee2d9f19  gcc/gimple-array-bounds.cc
! f5fce15ee41886e8fb3da933238d1454  gcc/gimple-array-bounds.h
! c234572876f75890cc99027aed682b90  gcc/gimple-builder.cc
! 422023fc20fa277895b77d52f2183524  gcc/gimple-builder.h
! 5183c7d9b67603ffcff52a42af01a19c  gcc/gimple-expr.cc
! 0f70f2b47fe0c3ba8e84cdc0d8635964  gcc/gimple-expr.h
! 8115e7e571795a890144eb4378df082d  gcc/gimple-fold.cc
! 0d56f593f441abaac17b0e32d153edde  gcc/gimple-fold.h
! 2c9bf44778a0d4078822e0867f454d35  gcc/gimple-harden-conditionals.cc
! c7112787b043c022d8874ce63d5b7a10  gcc/gimple-harden-control-flow.cc
! 7b9c652a539854b936cc26f338cbb75d  gcc/gimple-if-to-switch.cc
! 43f8b8bf6a49590155c84b07b89f0c6f  gcc/gimple-isel.cc
! a81f7f0172ce4eb3ca285e0cc9ddbd68  gcc/gimple-iterator.cc
! 1a7fa33c9fca25ddfbd2d1424ee5a53a  gcc/gimple-iterator.h
! 15643e1e01d585f6452ec246a61a2053  gcc/gimple-laddress.cc
! e6b2d93b47d32d3548cab7706f1c48ce  gcc/gimple-loop-interchange.cc
! 3550309a8bc7a3d0e32dc53d6843f73e  gcc/gimple-loop-jam.cc
! 9061d044f3fa87c56e4207cfed15dbd4  gcc/gimple-loop-versioning.cc
! 5aa7e08e0bae2dfcbc188dcbbf48e035  gcc/gimple-low.cc
! 1011dfdbac8762024379fe999e10572d  gcc/gimple-low.h
! 3af843b435244871dade9344007de52a  gcc/gimple-lower-bitint.cc
! 30eeb27075ff1c254237317a6afa8a7e  gcc/gimple-lower-bitint.h
! 5c2192ff61d3b830e2f5ccf2825f79ee  gcc/gimple-match-exports.cc
! 52905dc6829d45f26f8fbd85e434b469  gcc/gimple-match-head.cc
! 31611e4e0bafcf373d9ef16549d2068d  gcc/gimple-match.h
! a2774d6e6bb2338986570646e859eda0  gcc/gimple-predicate-analysis.cc
! 8f1e804189ae411c585fe95b40c35b4c  gcc/gimple-predicate-analysis.h
! 557ac74039ee8bf182bd5c956f304f46  gcc/gimple-predict.h
! 9e6e61990fc37ad1d1009514c3f2bff2  gcc/gimple-pretty-print.cc
! 8fc54d5c94a93f0c73258142f7b19655  gcc/gimple-pretty-print.h
! 8a0138aa48c04a1736c9798699d23b34  gcc/gimple-range-cache.cc
! 14d0498976dc3cac161a8fd059e73540  gcc/gimple-range-cache.h
! fd011a3c26857b41c3be519f3bb6bb4c  gcc/gimple-range-edge.cc
! b8854cd80bb187319a41cc07e71d2cd4  gcc/gimple-range-edge.h
! 4481d4ca51c7d1d4fcbf19808bb7da29  gcc/gimple-range-fold.cc
! 69c0c15b77faa32707a4fdbc15e896dd  gcc/gimple-range-fold.h
! 85e4bf91e0170553e3dea12ba3c47fb6  gcc/gimple-range-gori.cc
! 49512dcbe7855a1ca5ed1aa17a3af656  gcc/gimple-range-gori.h
! f94d5d9d416368499396b5af95c640a1  gcc/gimple-range-infer.cc
! 59a4e75211652f0f0985dde451461c62  gcc/gimple-range-infer.h
! 1bdc02d72c591ed0e1c733aea008bf3d  gcc/gimple-range-op.cc
! bf7905528673c9d4ef520313c8ac3341  gcc/gimple-range-op.h
! 87b78f5fbf377f08c8f3c4c1090d85d3  gcc/gimple-range-path.cc
! 8bae8ef4fc63b92a166177f469f16f2f  gcc/gimple-range-path.h
! 0d68662f765d5c8ed416760cd218bb17  gcc/gimple-range-phi.cc
! 1af8cace270071937211e97e8146c0fd  gcc/gimple-range-phi.h
! a8b5cd5c218902eae6bbccc1d0be5b80  gcc/gimple-range-tests.cc
! 52801da01f2d672a48f3a93df4f90cc2  gcc/gimple-range-trace.cc
! 7c3a5fa5a6d53c7365ef04747b3a8581  gcc/gimple-range-trace.h
! 0e07f52eb54f6cbcbdeac9a1da83b2fd  gcc/gimple-range.cc
! b6331fba9cc79c275796150f53d2340e  gcc/gimple-range.h
! 9c513e85c3b5b1ce204b917216c2d278  gcc/gimple-ssa-backprop.cc
! 2ac3ffd7448d9bcad9c65e604172bfed  gcc/gimple-ssa-isolate-paths.cc
! 2fc6c230ffcb053416f70f12a4b75355  gcc/gimple-ssa-nonnull-compare.cc
! b40914c29edd869a996c91db4f4d99d5  gcc/gimple-ssa-sccopy.cc
! 40a9709570d315119e4151e29a6e5235  gcc/gimple-ssa-split-paths.cc
! 7e12a42fd13d4f95e015f25f26db266c  gcc/gimple-ssa-sprintf.cc
! 7be64bf8761e373be79f638129d644db  gcc/gimple-ssa-store-merging.cc
! 0f929c8553845e353809a3143a67930d  gcc/gimple-ssa-strength-reduction.cc
! cd13326f284a7988cc910447c27acaca  gcc/gimple-ssa-warn-access.cc
! 972380becf9146f7df932ff8948f87c1  gcc/gimple-ssa-warn-access.h
! 4ad1b8d1dd8be61da151f2622251c3a5  gcc/gimple-ssa-warn-alloca.cc
! d48276e209e6bee6085d686007fc50c7  gcc/gimple-ssa-warn-restrict.cc
! 37f47c5bf9bbf56c75c61460f9397132  gcc/gimple-ssa-warn-restrict.h
! 88802b0b8305e762117a4c688b49ef11  gcc/gimple-ssa.h
! bec30695ff947a8740e932d02c735a56  gcc/gimple-streamer-in.cc
! d7db5d7614e64fb3cbcf1ead13bd832f  gcc/gimple-streamer-out.cc
! fce3e12dc3a84a0fd0785b18d9940c92  gcc/gimple-streamer.h
! 019900f1b40ef3d0d685782c35c7ac03  gcc/gimple-walk.cc
! b13ef89fa355900b2c561e2d521a5b36  gcc/gimple-walk.h
! 6e42f92c5b3058251524074700ae9ef5  gcc/gimple-warn-recursion.cc
! c4e1e930218f4dce5ef2a3a3a6b23b3b  gcc/gimple.cc
! c4df74d81805c4bd5129d36bb2a68562  gcc/gimple.def
! 111dff63f363b5601fa6ea70225f869c  gcc/gimple.h
! 38023efd45885e11111aa624febf5783  gcc/gimplify-me.cc
! 85e953ee7730a9690d8c9449d974b5c9  gcc/gimplify-me.h
! ef801550cfd43de5de507fb82f25dedc  gcc/gimplify.cc
! 8f261c08379d1ad7b5ca607ff26ae1fb  gcc/gimplify.h
! 82fc433faa62fad9f37c79e38dc2bf1c  gcc/ginclude/float.h
! f792d34f340e2e7a7655cf10325a519d  gcc/ginclude/iso646.h
! 10bd6c6ab5d18d7c4359ee18f7a7e4e8  gcc/ginclude/stdalign.h
! 583bb9dc4abce47fb389f60d6dcc07c9  gcc/ginclude/stdarg.h
! e61f7f48b5e505fc054bcb3b838462e3  gcc/ginclude/stdatomic.h
! e41775229e031cf6b904da72157b328f  gcc/ginclude/stdbool.h
! fbf7d548cfb69fda253e93c5e99f5ab6  gcc/ginclude/stdckdint.h
! c72179bc6c3ee46a833feaf09e791166  gcc/ginclude/stddef.h
! c3eea4149dcf122b8de68266ed989192  gcc/ginclude/stdfix.h
! d37a869af0d930a8a0c201d243f6891c  gcc/ginclude/stdint-gcc.h
  f85aa0745c3e9e0d32fa64753089b2f1  gcc/ginclude/stdint-wrap.h
! f29bc8223d79e79c24df8633419aedc0  gcc/ginclude/stdnoreturn.h
! a1de12677e091d55cc4f2cd872cdf135  gcc/ginclude/tgmath.h
! d58161aa8eee5f48836d1bd9f6c6c161  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
! 3909afbb81b3a1e02d67d89aaf6c0c11  gcc/glimits.h
! d5d1fec4d059caaa92734cbdda7a936f  gcc/go/ChangeLog
! 1c0876aed1113bbf60fd04709c1af5de  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
! 7eac6a5cdde9ce4bc75625cb22e30fff  gcc/go/config-lang.in
! dc364df356db8bfbe00ced6089b9ad32  gcc/go/gccgo.texi
! 9213dee42c742a937746f6c16b5e7948  gcc/go/go-backend.cc
! 681079fdbb849f75fabe4198e66985fa  gcc/go/go-c.h
! 633857e743fec9bba907bde27d3a063f  gcc/go/go-gcc-diagnostics.cc
! 939988b3eac93f09f1f0a80587162b61  gcc/go/go-gcc.cc
! c13634f2483f567508cf9f253770ce9c  gcc/go/go-gcc.h
! 7e28315e8787230f751e9dd388dc2941  gcc/go/go-lang.cc
  c5d6aaa7e913ef205113a2bba2e5206f  gcc/go/go-linemap.cc
  91c7a6773e207cc086ae0888826cc3c4  gcc/go/go-location.h
! f15c93522cda3277567ba6f80385ffaa  gcc/go/go-sha1.cc
! 3c4c08796339b12605f7651fc32f3775  gcc/go/go-system.h
  5d4950ecb7b26d2c5e4e7b4e0dd74707  gcc/go/gofrontend/LICENSE
! aa015521dde1b82759b846fb4a4a86a5  gcc/go/gofrontend/MERGE
  3a55d95595a6f9e37dee53826b4daff2  gcc/go/gofrontend/PATENTS
  31c16a91d82f8ad3319819ebbba2d17f  gcc/go/gofrontend/README
! f121b2384cf688c9a215cd09a62e60b8  gcc/go/gofrontend/ast-dump.cc
  456b6d4cc785176b6e3eb0c685a93b39  gcc/go/gofrontend/ast-dump.h
  ea386ab9fecd1e6a9d230d51e7190683  gcc/go/gofrontend/backend.h
! a6d0f9cca0bcb0b9a401158ade0d1c83  gcc/go/gofrontend/embed.cc
  7963756a49674b738fac31837f53c23c  gcc/go/gofrontend/escape.cc
  ee8753eb1d8ca2fa168f6a71d3991455  gcc/go/gofrontend/escape.h
! d19c57b193a0d1606e203010b058a7a5  gcc/go/gofrontend/export.cc
! b82ec94338a817bee1d6b0626e47af9d  gcc/go/gofrontend/export.h
! 107557745838a8b3de74e54fa45ef6b4  gcc/go/gofrontend/expressions.cc
! b3e79bc7777f37d0853b1fabe466a800  gcc/go/gofrontend/expressions.h
  bf7f8a519eadaa90804fe15cfa37ba6f  gcc/go/gofrontend/go-diagnostics.cc
  accfd5ea41ee789e6adbaec31a228cfe  gcc/go/gofrontend/go-diagnostics.h
  19e66447fa803385274b4e1a7501a4d5  gcc/go/gofrontend/go-dump.cc
*************** d1f133d9f54a935571cc84512acdeb69  gcc/go
*** 5902,7685 ****
  c08c0bc386a3e50faacf99daf94c080f  gcc/go/gofrontend/go-optimize.cc
  ead5ac25b7b99d361225e0fd940e286a  gcc/go/gofrontend/go-optimize.h
  5b59619fab7e543c5bb28dd8a6d62793  gcc/go/gofrontend/go-sha1.h
! 371c1744ba0e9e0cd427eea4dd006180  gcc/go/gofrontend/go.cc
! 0774050bdb746808925ca3c161429dea  gcc/go/gofrontend/gogo.cc
! 482da843ad5e2a734165747e14d075df  gcc/go/gofrontend/gogo.h
  f9015ccccf7764d4c6eeae1bd5e01c7f  gcc/go/gofrontend/import-archive.cc
! 69248b78bc1185657dbc63be6016ac45  gcc/go/gofrontend/import.cc
  0a9e27f1c3baa96ef288093aae5e2d3d  gcc/go/gofrontend/import.h
  52b99a209e77281dd06be084c671c85f  gcc/go/gofrontend/lex.cc
  41a3768614d6403a2d963ff36ad73f66  gcc/go/gofrontend/lex.h
  8c4c336f6edc93802ab60628e46ebf75  gcc/go/gofrontend/names.cc
  98235b1a736055cd6a130337a9ee8e8e  gcc/go/gofrontend/operator.h
! 7ff3eb132afc6fccf5a0fbd254f53dbb  gcc/go/gofrontend/parse.cc
  d1791687826a1bb33b9681aef8b30dae  gcc/go/gofrontend/parse.h
! 2c0d81f700bca5c56dfcd3a7673e2e82  gcc/go/gofrontend/runtime.cc
  06ed40caa7a515346c6a4708bc2dd50e  gcc/go/gofrontend/runtime.def
! 978a7b1924ca7f696fa5d0da3c9ccf60  gcc/go/gofrontend/runtime.h
! de503167b3910779538ba9ac70188ed5  gcc/go/gofrontend/statements.cc
! bc2d40b1110a6cb991aa29c873aa356c  gcc/go/gofrontend/statements.h
  bfc57c7a1e73452c4b277ad13efbddbd  gcc/go/gofrontend/string-dump.h
! f2733bd8769a60e587fa3ee7bef9b152  gcc/go/gofrontend/types.cc
! 826aeaf3a6c91346dcd39411f0c14e97  gcc/go/gofrontend/types.h
  1a87c48a17e95c935789de3db97a6ba8  gcc/go/gofrontend/unsafe.cc
! 4253050cd425cf4a4469a34c0248c5b3  gcc/go/gofrontend/wb.cc
! 107f3fe8466d3aea95d3a59d56c018af  gcc/go/gospec.cc
! 0f11152eeacec810639fbe236f1f6ab9  gcc/go/lang-specs.h
! 5ca333f8e2687aeb1d208a9db22ae43f  gcc/go/lang.opt
! c539c6223d4da129f6dbebac29884ba8  gcc/godump.cc
! a9a04b1d305b98d74a49acbf3e5875fd  gcc/graph.cc
! 9f87084f59d48ddedfe9e9878eef2deb  gcc/graph.h
! 5aaef2c6d37ad6626e1402ba0aad0ca9  gcc/graphds.cc
! 87169b797cdba8871d9a103df8038d67  gcc/graphds.h
! 829529faa446cc75d31f38002f01cfec  gcc/graphite-dependences.cc
! 21d597ec63fbc03a32a343e2dcdbade6  gcc/graphite-isl-ast-to-gimple.cc
! f1be6fd4e6c8e9573630d044720d16fa  gcc/graphite-optimize-isl.cc
! dd8454618851b4476554c6eeb9aaf88d  gcc/graphite-poly.cc
! 93878ecf34f5b1c3d019172b11d4f4e9  gcc/graphite-scop-detection.cc
! 0100284254f4d9ca3a3e184057d1cf2f  gcc/graphite-sese-to-poly.cc
! 652950f29268d6960416fb24c6fc280a  gcc/graphite.cc
! a36eddb0cf48bade74c308210f722f71  gcc/graphite.h
! d4187a499dfa40016b23ac9723cc5a2c  gcc/graphviz.cc
! e05d20afb26ce53b0fc39c6e90bf6994  gcc/graphviz.h
! 77b3218165d3edc218698020b1d26c63  gcc/gsstruct.def
! 3869432f2d3730a43af51f75f867e9cb  gcc/gsyms.h
  c32a1d882e7039afe158bb9e59b65223  gcc/gsyslimits.h
  053ee4a84e4593c88c088f25e153d1a5  gcc/gtm-builtins.def
! 68c16821df33561d9a0d2d04380ec073  gcc/haifa-sched.cc
! 1eefdf52e4ce3bfa9327490d4f1a031a  gcc/hard-reg-set.h
! a10dac22a2b33a86be16d0efa27749d2  gcc/hash-map-tests.cc
! 2c6716a60f9cf92b4cc67f03f59cc460  gcc/hash-map-traits.h
! 8194dfdbe497e10423ad224101e0d252  gcc/hash-map.h
! 844b710fb2cdf3ae53a06990b4a55357  gcc/hash-set-tests.cc
! e851c9757df2348436af3d2b5890db33  gcc/hash-set.h
! 81ec3cadc9b7bb741fe08b3d7211d8c4  gcc/hash-table.cc
! 222e911376ca8a441a33a71973b18506  gcc/hash-table.h
! dba27c58c47cf222113d081c390a4553  gcc/hash-traits.h
! c0ca3c57460c1c1d9448072702aae874  gcc/highlev-plugin-common.h
! 4b718113926d679cad05d9187e20ddee  gcc/hooks.cc
! fa7d4481797426321fb9156f3f2ed73c  gcc/hooks.h
! f2466d2fe2afbd59cded96c0e60712e7  gcc/host-default.cc
! d9e81770094112cf4032968e90ddb26e  gcc/hosthooks-def.h
! 081421b43c309c4cc3170f3a6d60fb49  gcc/hosthooks.h
! d9aef0bb49476bc2d492b82983032a3d  gcc/hw-doloop.cc
! 01b52dd1df8c52ed9edf50b535362f54  gcc/hw-doloop.h
! a2c970a78392773f57877bd6b739f5a5  gcc/hwint.cc
! 44500fc305015a9aba3b0e4521e64a20  gcc/hwint.h
! 94b26ea9cc3c6cf63edc05afdc14fad4  gcc/ifcvt.cc
! af5696bbd759bde4b826b69e196cfdfd  gcc/ifcvt.h
! e628722087508f838cdb4899f48c7f43  gcc/inchash.cc
! a5b79003066c0e5bfacf7d9d006f46cd  gcc/inchash.h
! 8262367501cdedec8b0c9e45caadce43  gcc/incpath.cc
! a8e3cc8cb723d5ba4f5d1e2f04287f63  gcc/incpath.h
! cb14e93247326b8ffa6eb712f41e7c27  gcc/init-regs.cc
! 94fbc6d552ff7bbeb71f638d99d2f6e0  gcc/input.cc
! e5e0ca7e1753fd5d89c8a7736badc975  gcc/input.h
! d34bbd252c9510b2d967d3c7b17f66bc  gcc/insn-addr.h
! 113e3f5328ae586d49a4d449755c406f  gcc/insn-notes.def
! 5c0f3c404fd37cca65b30f97fbbef8f4  gcc/int-vector-builder.h
! 24233ef42035f96cab80084a3aff40b7  gcc/internal-fn.cc
! de6d49db609e5109f5b73c4fa39fd732  gcc/internal-fn.def
! c12e2732707baf23e73a14d0b1b36dfd  gcc/internal-fn.h
! b604200ebd6bbb8075a58d20d96105e3  gcc/intl.cc
! 2086a023243c1aeb61f8be26da7a72ad  gcc/intl.h
! f1c9645780e7d29c2d852ae147ef5d45  gcc/ipa-comdats.cc
! 9c732e56ba4b30b487ca6714102f4029  gcc/ipa-cp.cc
! 55517140580887ca4deb8ce1e0321892  gcc/ipa-devirt.cc
! d454148b5247b81f13abdb82a69ea474  gcc/ipa-fnsummary.cc
! fb25c569d03784bece5c17aaaaa369c5  gcc/ipa-fnsummary.h
! 1101fd17ebb3014a7be788f45a328e40  gcc/ipa-free-lang-data.cc
! 462a3856a6c0e71ca1906823c9839a1d  gcc/ipa-icf-gimple.cc
! efbca05f610d43f92d4785f0e3c140c2  gcc/ipa-icf-gimple.h
! 309678fae1f677120bd08243a3607eb7  gcc/ipa-icf.cc
! 7ff31fb3ed107fddec8cfac0849344d3  gcc/ipa-icf.h
! 104e82a0a369ff3f6b580044a153fe82  gcc/ipa-inline-analysis.cc
! fc07475faa73a53e202938a58e7cac70  gcc/ipa-inline-transform.cc
! cd174164366ec63306585c2d13efcc1b  gcc/ipa-inline.cc
! d4b7959c20a98ff6f25372701739be82  gcc/ipa-inline.h
! bf2c8193144d067992fafe66ec1b66c4  gcc/ipa-modref-tree.cc
! c4370973ef8ca23676e8dd1782308f9c  gcc/ipa-modref-tree.h
! 2e9275d14ba42dd0fae6f51aa0afb13e  gcc/ipa-modref.cc
! b2fae5a0c725823232307d1ff107c412  gcc/ipa-modref.h
! 9a6d65808b97a3f5554037c6b939f92c  gcc/ipa-param-manipulation.cc
! 6380acac9667f5632167649df5974f7a  gcc/ipa-param-manipulation.h
! 7cea60b3666f6942e8ff38e2854bcfc2  gcc/ipa-polymorphic-call.cc
! eeca019a2a20494b0c27fccd9ffa6e38  gcc/ipa-predicate.cc
! a37e46df93e9fdd5778f6c479d45c848  gcc/ipa-predicate.h
! d333e55ebff3f204e5c62a9f85f0b960  gcc/ipa-profile.cc
! b25df447de2481d1a0f98020a97ada6d  gcc/ipa-prop.cc
! b7b01a20205d7152cf5e0e90bf5c084b  gcc/ipa-prop.h
! f5f5042251c5cf364068ae7041d1f402  gcc/ipa-pure-const.cc
! fea3656d7117f5bd9eb678ce7031b9cb  gcc/ipa-ref.cc
! 7083d1fd93928160d417413231e4735e  gcc/ipa-ref.h
! af7c79ee2c4119a45f7424269eeca17b  gcc/ipa-reference.cc
! 854b54fd489dd96b9961e88be7f7b919  gcc/ipa-reference.h
! a868c75269d9dc9bcba5914603a445ca  gcc/ipa-split.cc
! 97c5cc7be6819135f3f460054fcef2a9  gcc/ipa-sra.cc
! 0dd8ceab6156d8ec5c11a356a7810a6b  gcc/ipa-utils.cc
! 9ba52d14c04352d1812510443e99efb6  gcc/ipa-utils.h
! 511f62c5d61101a088f6bf207caf3ba6  gcc/ipa-visibility.cc
! b7f8dfd9aa35c133f2d21657d28f5a45  gcc/ipa.cc
! 6d8d0cb2c168378bf014af9d08fcbe4f  gcc/ira-build.cc
! 918e14fe87dd453fa60668415bbcbcb8  gcc/ira-color.cc
! 683efbeb5fa644827dbe9801723fdb57  gcc/ira-conflicts.cc
! f64420b638d7ebaa362a56a8ee6e09b9  gcc/ira-costs.cc
! 04825acf2804a1cbac4ea42e34f5d78a  gcc/ira-emit.cc
! 221ce32bce49d374e617c10cc457c146  gcc/ira-int.h
! 11f493755c61302aed33b9e2e678c8ca  gcc/ira-lives.cc
! ca3aaf780b4820c2efb4f99d452eafb2  gcc/ira.cc
! daec5f5daeb40974ee5715d87b784866  gcc/ira.h
! 794ab6840c05630c3df07341a0f339e5  gcc/is-a.h
! 83fa9cced7fd3d64ba760bf4dd2f1414  gcc/iterator-utils.h
! c9114f3461393a135ab6b7662c946d41  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
! 8476ebeec1b0f434e5468cb887e39ac4  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
! 1bbcd8c4c1cbecd0d0207b024f87aec5  gcc/jit/config-lang.in
  df53fb6b84c435b56ac2cb2727b62b27  gcc/jit/docs/Makefile
  aefe50c9e37a2e7a06545dbc6b38bbd4  gcc/jit/docs/_build/texinfo/Makefile
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/_build/texinfo/libgccjit-figures/factorial.png
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/_build/texinfo/libgccjit-figures/factorial1.png
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/_build/texinfo/libgccjit-figures/sum-of-squares.png
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png
! 4e17cf28a87f622ac44b6f53dba87a60  gcc/jit/docs/_build/texinfo/libgccjit.texi
! 8d0d0aacba30f7fc0735289b07afd832  gcc/jit/docs/conf.py
! 26a2b1c2e065fbe67b6e9823bcb260dd  gcc/jit/docs/cp/index.rst
! 18832f49558f66a611b3dd858c21c266  gcc/jit/docs/cp/intro/index.rst
! 32f65f0236de6b980eaed36f0013a31d  gcc/jit/docs/cp/intro/tutorial01.rst
! 293eae4201bf42ea3b2c33ddc385bfa0  gcc/jit/docs/cp/intro/tutorial02.rst
! 38bb027f995add44665e450589f13284  gcc/jit/docs/cp/intro/tutorial03.rst
! 937639cca9f4119bd6b59088447cfb98  gcc/jit/docs/cp/intro/tutorial04.rst
! 0e0462e994344e99284fc2c263c67515  gcc/jit/docs/cp/topics/asm.rst
! 9f2eecb9dfc1c4b6c2ba5236b2fe11a0  gcc/jit/docs/cp/topics/compilation.rst
! 0c0ec6beb6df56a89d7d9a11a985aed3  gcc/jit/docs/cp/topics/contexts.rst
! dd47b78fff4536f086ef6e6f060a3a47  gcc/jit/docs/cp/topics/expressions.rst
! a25b3565f91850ca6f021963e302f9e7  gcc/jit/docs/cp/topics/functions.rst
! 4169ec60ae16042f30e8bce052e7f5cf  gcc/jit/docs/cp/topics/index.rst
! 75d07fb7300613153b1dbe2d84ac862c  gcc/jit/docs/cp/topics/locations.rst
! c330b8688b717308bd419c5c4fb9d6aa  gcc/jit/docs/cp/topics/objects.rst
! 61ffb51975c5cac863d20a9457a428fb  gcc/jit/docs/cp/topics/types.rst
  98a4c0efa41e5eb7177483e4cd99a81e  gcc/jit/docs/examples/emit-alphabet.bf
! f7874463bf96c5096436cc1f764fc825  gcc/jit/docs/examples/tut01-hello-world.c
! b076e2a71f2cfd49b6c13f4605b76011  gcc/jit/docs/examples/tut01-hello-world.cc
! 954b1c7d0b3f68b7ba71638e67e39564  gcc/jit/docs/examples/tut02-square.c
! 66c6f6117ff56463eca4efdb323ad90e  gcc/jit/docs/examples/tut02-square.cc
! 0b94bebd78c9e6ec3e327f22131053aa  gcc/jit/docs/examples/tut03-sum-of-squares.c
! e3c3f1ae0bb718e1ed6f0ea73102f9ac  gcc/jit/docs/examples/tut03-sum-of-squares.cc
  6369d2b07520cb0fc9d14082499f6be2  gcc/jit/docs/examples/tut04-toyvm/Makefile
  999c1d2b92d5d71565c67854aad60e9c  gcc/jit/docs/examples/tut04-toyvm/factorial.toy
  efe1998ded06ac3721d9ced4d96056f0  gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy
! 8583be0b108a212e93c4033e02d0636e  gcc/jit/docs/examples/tut04-toyvm/toyvm.c
! deb520cd3a2dad9864c0bdf82eec9d9d  gcc/jit/docs/examples/tut04-toyvm/toyvm.cc
  3cbe9daf70398730ee60aa4caf2fc200  gcc/jit/docs/examples/tut05-bf.c
! 575254475b27f03372e33b4b37bccf11  gcc/jit/docs/index.rst
! e931d22236dd1c2a53825156940fd1af  gcc/jit/docs/internals/index.rst
  d72502d68617b68873d385bcee6e9c4b  gcc/jit/docs/internals/test-hello-world.exe.log.txt
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/intro/factorial.png
! d03d31f4783c10b3494846aeb96b9602  gcc/jit/docs/intro/index.rst
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/intro/sum-of-squares.png
! c07387f59298cb02cc408d44ca87a9b9  gcc/jit/docs/intro/tutorial01.rst
! b241f8cc70c302f48bb39847b5c074cf  gcc/jit/docs/intro/tutorial02.rst
! b79ad40737ff88d196466b477d7b9797  gcc/jit/docs/intro/tutorial03.rst
! 30a930fe19001052dde7441f9beb8d3c  gcc/jit/docs/intro/tutorial04.rst
! 892ada9c13b1978ef727967ed98d38c5  gcc/jit/docs/intro/tutorial05.rst
! 1e9c47ea4c3e8bfaa2793f7550f11238  gcc/jit/docs/topics/asm.rst
! a2ca8351458b51ae47a0f969b961620f  gcc/jit/docs/topics/compatibility.rst
! 03189e4fc8e64319e698c328e309e84d  gcc/jit/docs/topics/compilation.rst
! a2691cd32c5adc747c780ccd47792f84  gcc/jit/docs/topics/contexts.rst
! 548c8f80a1369cd2243bab694e75d44a  gcc/jit/docs/topics/expressions.rst
! 05fcd28c706df4f18af35c69c1556826  gcc/jit/docs/topics/function-pointers.rst
! 749701210fc08573689f9f8e86e0a011  gcc/jit/docs/topics/functions.rst
! c0daecf8ea49bb0bcfeeaf7624de3976  gcc/jit/docs/topics/index.rst
! ddfc58941702b9e2442d605806dd2124  gcc/jit/docs/topics/locations.rst
! 3734afe54ae7b3649d74bc3119606a26  gcc/jit/docs/topics/objects.rst
! 9dd7a3733e6c71720855853b42b93959  gcc/jit/docs/topics/performance.rst
! 135f6b8825cad4d76ee779ea4ea4b617  gcc/jit/docs/topics/types.rst
! fa949675427118082c7787417e7acffd  gcc/jit/dummy-frontend.cc
! 8bcb27b76e3dbffb93cb4c0bae873cfc  gcc/jit/jit-builtins.cc
! c4c7449278cafbafd910adefcb0538cb  gcc/jit/jit-builtins.h
! 63d4e21da1341bb39114719faea3240e  gcc/jit/jit-common.h
! 6818dd9f17ca0afc1dd95badbc645ea9  gcc/jit/jit-dejagnu.h
! 35586f69ac552479fa52d7c485d52bcf  gcc/jit/jit-logging.cc
! 5aa44993b9fb9a380da286eaf9a52748  gcc/jit/jit-logging.h
! 7c9079754b3b27f9bfff94b5bfcb298f  gcc/jit/jit-playback.cc
! 206bd9ef117c6b84ffd9e2de4b9f54c2  gcc/jit/jit-playback.h
! 87a66ab85309ed684069a427e21d90a9  gcc/jit/jit-recording.cc
! 79c47ba6c9a2ba79c33c88c791e3e465  gcc/jit/jit-recording.h
! f39a4947637d7dbbad4e6871f9a348df  gcc/jit/jit-result.cc
! 1f767b235b0f89c05295b429bd1720ba  gcc/jit/jit-result.h
! cde64615a5920a7cc57e007b61e670b9  gcc/jit/jit-spec.cc
! 1643978a06c78212047af3717e00baef  gcc/jit/jit-tempdir.cc
! cefffe9d99f9a9f9a2f2a43eacf5a271  gcc/jit/jit-tempdir.h
! ce484ca24b42d9c19a0e1352c4495caf  gcc/jit/jit-w32.cc
! 14640c9c60009896c499dc0765fd8a8a  gcc/jit/jit-w32.h
! d3f9ed6a4ee28f7cb3c35bc9ae793726  gcc/jit/libgccjit++.h
! 8299f0b9f9464b4973ad243f21909ada  gcc/jit/libgccjit.cc
! b67857e907fb0e92fa5350b5272623c6  gcc/jit/libgccjit.h
! a4e699235dad75bea459d7cd927a3589  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
! 38204655193c6f601e5be9613d2e92ef  gcc/json.cc
! f76da24a148ff2084c218a4c3ff69e23  gcc/json.h
! b6155d21f4c6140ba275399b4c94f2d6  gcc/jump.cc
! d24f5328a13bb763b4057e92a3d786bc  gcc/langhooks-def.h
! 0bc762d1bb2527972655810c0fe98706  gcc/langhooks.cc
! 586d9a40cda3d1e9dd2286bdb7b460aa  gcc/langhooks.h
! e2c2b4c29dd562166e457ad5cd9d3ab4  gcc/lcm.cc
! 7a501dceb06088b713e574dafeeca3ea  gcc/lcm.h
! 3a6f5880ea2ae9d616fbe850bb16871c  gcc/libfuncs.h
! 24611054f2152d3499ed36c45cf3335e  gcc/limitx.h
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
! 472fea06d68ad0de5d8fdfae7873bc63  gcc/lists.cc
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
! 86c53cb5fd2a7a7b0267db043ad0c017  gcc/logical-location.h
! 2c32d851483812d59cb183c0f6452ee0  gcc/loop-doloop.cc
! 859d2f097f5e034fbcf23370c719eaad  gcc/loop-init.cc
! 2cc756bec31fac101c34285d0717832f  gcc/loop-invariant.cc
! 4c49af76db981526de035551f5c2745d  gcc/loop-iv.cc
! fdb910a61276129e6981a007c1cd94f6  gcc/loop-unroll.cc
! 244bd1ac6f02573201143dcf1a456d36  gcc/loop-unroll.h
! a04cd2beaecdaef5b7019518ca4eeb16  gcc/lower-subreg.cc
! 0196e3b94cf6fd637ba9f3bf6a314bd5  gcc/lower-subreg.h
! 1843969b87343439d9591acd32785e25  gcc/lra-assigns.cc
! 6f8948f5953e4ded18580ae4df9a36f1  gcc/lra-coalesce.cc
! 62366226f7bef6fe22bfd3a1378b0d05  gcc/lra-constraints.cc
! ed3a3ee1d59440bde2427b7b43cf2e6a  gcc/lra-eliminations.cc
! 7c8aeab71bcfacb356aecdcdb7762210  gcc/lra-int.h
! 399337ad638584d9290158ea06d18de8  gcc/lra-lives.cc
! bc8532df35c2dd9a4e262d85ed29ffd4  gcc/lra-remat.cc
! f29a4612195d306e5b22fd456cfb2a91  gcc/lra-spills.cc
! a99c9451bdde633c19f5b521d31b666b  gcc/lra.cc
! e39f5642047f20c01157ff09360cf476  gcc/lra.h
! 3c0fc2beeb57bc91017e1ef0252f0c2f  gcc/lto-cgraph.cc
! 6fc03350ec53f915e1e4e39ca5122e10  gcc/lto-compress.cc
! 838379d3b336c074b7a518024dfc1524  gcc/lto-compress.h
! fe456b00f469a6237ac21a07bf3791a8  gcc/lto-opts.cc
! 862eb9c06442298e051e94342486f26e  gcc/lto-section-in.cc
! 2c1a311ccac95e377a112adacca59e52  gcc/lto-section-names.h
! aa824edd3a2322925eef8c0e675c646f  gcc/lto-section-out.cc
! c65f55fed79f6f011c286a8c15d49485  gcc/lto-streamer-in.cc
! 404aeba9be544810a4471166b3c47865  gcc/lto-streamer-out.cc
! 84bdf4dde2c999956f004a2cec5fcdfa  gcc/lto-streamer.cc
! 6ce0e12c942ed0719e43deb19d3d23e6  gcc/lto-streamer.h
! 99434819bef00f148b682b64adc85f39  gcc/lto-wrapper.cc
! fbc110f99aaa06e945f972e9cb5c2948  gcc/lto/ChangeLog
! 1c031130b442e688f20c6f97577f6f1c  gcc/lto/Make-lang.in
! 10ec91fabc2cd5424224460087811ade  gcc/lto/common.cc
! 797d875c24181ac44cc33ff020e1b788  gcc/lto/common.h
! a96eccac19201e035cb7755057ec5b89  gcc/lto/config-lang.in
! 71fd3323282cca590e71117dc7d88b6e  gcc/lto/lang-specs.h
! 00ab061f413bd810f0e9b6c1d04b7d9a  gcc/lto/lang.opt
! 4e0eae5852e5142a6119196a17f3c5c8  gcc/lto/lto-common.cc
! 76a4469765c0c22dcc06124c5d125599  gcc/lto/lto-common.h
! b4a90dba73d706a4915afdf4c458eff5  gcc/lto/lto-dump.cc
! a497c0ed98b232be3d905aa138636779  gcc/lto/lto-lang.cc
! db24810ac399c4a5d6146bd71ef73426  gcc/lto/lto-object.cc
! f018d5b0f30e1d8cb11793871268668a  gcc/lto/lto-partition.cc
! b42fe0b38243f7d8bd946b42c8b1fdcc  gcc/lto/lto-partition.h
! f91cdf415b673bc55139d4738952c1dd  gcc/lto/lto-symtab.cc
! 64117f906dfc57aab1b4dcf007dc88fb  gcc/lto/lto-symtab.h
! e1760b67860124dafbbaf58a3e22c65e  gcc/lto/lto-tree.h
! 885788a8016feb1e435d6099e3eebde0  gcc/lto/lto.cc
! 2fdf2f282ea30fb5f77204a958cd7a87  gcc/lto/lto.h
! 98487a7e2fda670e2e7436d5cb395e37  gcc/m2/COPYING.FDL
! a8dfb49da43514f61fc1ed162db2447b  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! 45a184e5074f9b7920061b3bbebc1baf  gcc/m2/ChangeLog
! eef28ac70aaa78bdba9d98972540cd31  gcc/m2/Make-lang.in
! 1e5187a62031df54ee1aa86d3936b27d  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
! 1259833ae730cd1789960cfceae66ee6  gcc/m2/README
! eb1599754d7e0e2fb843b249b19aad7c  gcc/m2/config-lang.in
! a988f7b53ad627283964db6f0456f9ab  gcc/m2/config-make.in
! 8a7f8f9d6c83db345c1a8a98cc592b4a  gcc/m2/configure
! 231ddb2dc41cd5361c2841fd4773eca6  gcc/m2/configure.ac
! 41c1f9a6da19532c7bfc7a5438dbb2e3  gcc/m2/gm2-compiler/CLexBuf.def
! d826719042427da8a9c2b0cc58c430ad  gcc/m2/gm2-compiler/CLexBuf.mod
! a1f79882a6c26b6796131896bfb1efae  gcc/m2/gm2-compiler/DynamicPath.def
! 1512b03912ab1201a89998231f6a5522  gcc/m2/gm2-compiler/DynamicPath.mod
! f8bf56a5b7fd82eee178d88cbec0c3de  gcc/m2/gm2-compiler/FifoQueue.def
! 09f05adb133f47135aeb04b9abcec389  gcc/m2/gm2-compiler/FifoQueue.mod
! 8a0e7cdd30a71137694f3152675e4951  gcc/m2/gm2-compiler/Lists.def
! 3ad5d736f3ec813addb89e68da25e616  gcc/m2/gm2-compiler/Lists.mod
! a2d8f762ec5e3244ee19435251593b00  gcc/m2/gm2-compiler/M2ALU.def
! 46a1e5a9cf7f59d54965a0b9677cd5c8  gcc/m2/gm2-compiler/M2ALU.mod
! 4c18bb997628290bd1f7535d0a503e23  gcc/m2/gm2-compiler/M2AsmUtil.def
! c632e26c81b95e9b256caad279e218cd  gcc/m2/gm2-compiler/M2AsmUtil.mod
! d71310d044ff8b82fcae64e2194fdb37  gcc/m2/gm2-compiler/M2Base.def
! 0796b2516ae450771fb80e0a9d68ae74  gcc/m2/gm2-compiler/M2Base.mod
! 0fb619cbf89d2ab62175cc601f2f4fbe  gcc/m2/gm2-compiler/M2BasicBlock.def
! 49e6be2cb206cdd20964d5ec36da1c51  gcc/m2/gm2-compiler/M2BasicBlock.mod
! 6f53570c03f553a74cb90c8ff755f5da  gcc/m2/gm2-compiler/M2Batch.def
! 634cb52bc52b7adaa2975ce83b03f1f9  gcc/m2/gm2-compiler/M2Batch.mod
! ac30504084574f06338785e69b5f8afd  gcc/m2/gm2-compiler/M2Bitset.def
! e53b71fe64d958a7003c64f59431cf4f  gcc/m2/gm2-compiler/M2Bitset.mod
! 9ecc8ed9aa4b533eccaac20367c25210  gcc/m2/gm2-compiler/M2CaseList.def
! 0fb869942bc5b063b624ade0d8fa935e  gcc/m2/gm2-compiler/M2CaseList.mod
! 1bddee8c06ef747acfa18397e352c00b  gcc/m2/gm2-compiler/M2Check.def
! 9c169f6d8a6c7b461bc4fe60fcfbbbb4  gcc/m2/gm2-compiler/M2Check.mod
! 290feedd4647585c8d2b075a035b389d  gcc/m2/gm2-compiler/M2Code.def
! 83dc902194f1a2e1f052c67f1571902d  gcc/m2/gm2-compiler/M2Code.mod
! 4e1228915c97ac365d550fc35524928b  gcc/m2/gm2-compiler/M2ColorString.def
! 5120babf0526808316117dba88bff468  gcc/m2/gm2-compiler/M2ColorString.mod
! 118167f77779572910d32d2d4a4c12a6  gcc/m2/gm2-compiler/M2Comp.def
! 43e5e520d78b4bc3c5114f4f1832880b  gcc/m2/gm2-compiler/M2Comp.mod
! 11230e19c40b5bd65ad22b4f9a457249  gcc/m2/gm2-compiler/M2Const.def
! ed823dab8d80a0f4bd8bf970def3a111  gcc/m2/gm2-compiler/M2Const.mod
! c1742b8684bd905a7b44558c8bdb320d  gcc/m2/gm2-compiler/M2Debug.def
! 5aaa0a299d98f306c9953244633d7965  gcc/m2/gm2-compiler/M2Debug.mod
! 999c6ad0ae787e22bd7a149c2cfbf3b0  gcc/m2/gm2-compiler/M2DebugStack.def
! 210b45338ad4534097e349b0f1cb6002  gcc/m2/gm2-compiler/M2DebugStack.mod
! 89813622bf9db56dba3d8be87b3d8cf1  gcc/m2/gm2-compiler/M2Defaults.def
! 80184eff2abf21029bc4a4e822151330  gcc/m2/gm2-compiler/M2Defaults.mod
! c7e6b62713a2bef8eaa93279d5e0743a  gcc/m2/gm2-compiler/M2DriverOptions.def
! 676fb02d107e5ae713b38331ee6bf607  gcc/m2/gm2-compiler/M2DriverOptions.mod
! c53535d2e04d70fcbb452b8d5e3e1ba7  gcc/m2/gm2-compiler/M2Emit.def
! 76b65ef2361a4fc7b9fe60fe56ce2f73  gcc/m2/gm2-compiler/M2Emit.mod
! c12ca80675357cb96d258f5b6c3996e1  gcc/m2/gm2-compiler/M2Error.def
! 1be66d95124ef47f09a96283b03d56c8  gcc/m2/gm2-compiler/M2Error.mod
! bc3e7afbf37fe9ca99868cca44270773  gcc/m2/gm2-compiler/M2EvalSym.def
! 00c5062e6973c55551e230e8e1ead0bb  gcc/m2/gm2-compiler/M2FileName.def
! b838bd8a17e7170e89decd1b0d33083a  gcc/m2/gm2-compiler/M2FileName.mod
! 5b89f7c875b32c173b3ded7bd7e8d11e  gcc/m2/gm2-compiler/M2GCCDeclare.def
! 95d8d3ffa4a9ee16ff06fffe5ff19a69  gcc/m2/gm2-compiler/M2GCCDeclare.mod
! 581fef9be9d21b0df045a0fd9d3514b0  gcc/m2/gm2-compiler/M2GenGCC.def
! d6c39d76650c9e694404c2de18f007b6  gcc/m2/gm2-compiler/M2GenGCC.mod
! 2ed183a1189e5bc8bafa1842e275959e  gcc/m2/gm2-compiler/M2Graph.def
! 584853a747ececb3b3f7cc1e911000df  gcc/m2/gm2-compiler/M2Graph.mod
! 7bcb051229d0115a28be58f01f3181aa  gcc/m2/gm2-compiler/M2Lex.def
! b3ff1900d33e4b1912c5388c98a4ef5b  gcc/m2/gm2-compiler/M2Lex.mod
! 6d90d5ed02c9869c6800177d0637f114  gcc/m2/gm2-compiler/M2LexBuf.def
! 8fcc0d7a4944e11fe60fce6d57a37606  gcc/m2/gm2-compiler/M2LexBuf.mod
! c65c1c8749ce497ce9490bb0800b702d  gcc/m2/gm2-compiler/M2MetaError.def
! f616e44dded481aa1b2f367b5d815294  gcc/m2/gm2-compiler/M2MetaError.mod
! e3c69c23b26aff99978d6eea6fca3666  gcc/m2/gm2-compiler/M2Optimize.def
! 957016b99d4728d1a725a4c52adcee7f  gcc/m2/gm2-compiler/M2Optimize.mod
! fa15d30a34aa13fd38b7a880ccd495d8  gcc/m2/gm2-compiler/M2Options.def
! e6444848d083ceb1b5cff263a34b41b9  gcc/m2/gm2-compiler/M2Options.mod
! 1106fb38f0213cdf3e0e45c185e2da6f  gcc/m2/gm2-compiler/M2Pass.def
! c072946b43f48549fa9ef6362afdb828  gcc/m2/gm2-compiler/M2Pass.mod
! e175eb861069caa12d59afe0c38dc80f  gcc/m2/gm2-compiler/M2Preprocess.def
! 2d419c2f4454cb19ab346cff3931f294  gcc/m2/gm2-compiler/M2Preprocess.mod
! 860a2ae7cbf8faa48ccdfe5a320426d7  gcc/m2/gm2-compiler/M2Printf.def
! c576f289c892f1f82340f1fc4f81c0df  gcc/m2/gm2-compiler/M2Printf.mod
! e45ca747793a958d86f5d7b71a696e5d  gcc/m2/gm2-compiler/M2Quads.def
! 236584096c9dbe9cd2b82df6da2e6d20  gcc/m2/gm2-compiler/M2Quads.mod
! 6c64542046467b30b548dff85413f90f  gcc/m2/gm2-compiler/M2Quiet.def
! 23102502e8c1c2d48478e9e700d05269  gcc/m2/gm2-compiler/M2Quiet.mod
! 030272e5198550936e59caa21f553081  gcc/m2/gm2-compiler/M2Range.def
! e4937d61f3768b7ef034e50ba279774a  gcc/m2/gm2-compiler/M2Range.mod
! ce5374396d41e6bcf88db36de3037d1c  gcc/m2/gm2-compiler/M2Reserved.def
! 31223b709b0499b24766b0bc7e50571a  gcc/m2/gm2-compiler/M2Reserved.mod
  ed9342d46dccb1fef2e7dd1b2a268c89  gcc/m2/gm2-compiler/M2SSA.def
! 8f5bb2d2e59edfc3bb287e3d4e16c7eb  gcc/m2/gm2-compiler/M2SSA.mod
! 900e7ad74c6b97131a3d167e1af9e46b  gcc/m2/gm2-compiler/M2Scaffold.def
! 6794c556b884c1e80d67972dcd684e17  gcc/m2/gm2-compiler/M2Scaffold.mod
! 6843444ac2cee909cd2a2e3dc6045412  gcc/m2/gm2-compiler/M2Scope.def
! bfb8ebc2dacf8d79e5c4a1de6b6b2c77  gcc/m2/gm2-compiler/M2Scope.mod
! 3b55fb27781f848c79a50020ca3423b4  gcc/m2/gm2-compiler/M2Search.def
! 04b3b465e419394f61c8c9b4d5d7d5c2  gcc/m2/gm2-compiler/M2Search.mod
! d6aed6b97d7d51f051e44154d33f2579  gcc/m2/gm2-compiler/M2Size.def
! 9073a2b26b27dd0383f1f147ad62403b  gcc/m2/gm2-compiler/M2Size.mod
! 9bc8f87b4857242e3ed2387faa334299  gcc/m2/gm2-compiler/M2StackAddress.def
! 967b150720a4591ae7de58fff556a5ff  gcc/m2/gm2-compiler/M2StackAddress.mod
! 1cb51636aaeabeb59f201eff1f93abb8  gcc/m2/gm2-compiler/M2StackWord.def
! 6a1ddfec355137b19b38735ed7ab5d5c  gcc/m2/gm2-compiler/M2StackWord.mod
! d54ee3b3e58e1a8c2a184a0fa095b469  gcc/m2/gm2-compiler/M2Students.def
! 9fa59ff3d400f972e94577a82399af48  gcc/m2/gm2-compiler/M2Students.mod
! 20233ff6f550a64f08b2096624c92e2b  gcc/m2/gm2-compiler/M2Swig.def
! 7b715a2a88466c2a545561d662f266df  gcc/m2/gm2-compiler/M2Swig.mod
! e1e44b953e68ae3c7d71b9a7b633f9fc  gcc/m2/gm2-compiler/M2System.def
! 636266ac2e9e76be392faa019e964243  gcc/m2/gm2-compiler/M2System.mod
! 41d8b62d6c09a83361b2f8745b389d3a  gcc/m2/gm2-compiler/M2Version.def
! 07fb5d442a3148698488c6d2ef22bd9f  gcc/m2/gm2-compiler/NameKey.def
! 4e7ed10da450cf7c22b2ed642a358577  gcc/m2/gm2-compiler/NameKey.mod
! 5f608569623503415a1c66a5e73c915b  gcc/m2/gm2-compiler/ObjectFiles.def
! 4c60cc3fb450dc8ca2854042f6688324  gcc/m2/gm2-compiler/ObjectFiles.mod
! 86b58cf3b548edbf90d8709a9d63eeee  gcc/m2/gm2-compiler/Output.def
! e903123c63dbfea2ef561336c8d13f7b  gcc/m2/gm2-compiler/Output.mod
! db47b49ecaf8ec0b3208ffa11df841e8  gcc/m2/gm2-compiler/P0SymBuild.def
! 9a4ae0de1ea97699a1e1a3be7822173f  gcc/m2/gm2-compiler/P0SymBuild.mod
! f37455d1f534411b19f9f064d1ed8f0a  gcc/m2/gm2-compiler/P0SyntaxCheck.bnf
! 159988656fc541e67e4197a92370215e  gcc/m2/gm2-compiler/P0SyntaxCheck.def
! e37f2bccf8095deedf5f68e6d7945fd9  gcc/m2/gm2-compiler/P1Build.bnf
! 2bc327bee69a3075e06af950cf6d92b2  gcc/m2/gm2-compiler/P1Build.def
! 2b771f8d725bcf31f3e7fca36d4faecd  gcc/m2/gm2-compiler/P1SymBuild.def
! 8a6ce3c0bb8ecdf4418a05676a4e3045  gcc/m2/gm2-compiler/P1SymBuild.mod
! e6c4d5c863f1f3c7cabee1899c0b90af  gcc/m2/gm2-compiler/P2Build.bnf
! b4eb4a45d9d4f2c3be15fa42617d99bd  gcc/m2/gm2-compiler/P2Build.def
! 5a275c7f96e415bd4c60f2f9c4e91703  gcc/m2/gm2-compiler/P2SymBuild.def
! a68567e1bc5a30812df33d33fb42b6e4  gcc/m2/gm2-compiler/P2SymBuild.mod
! 42fda125f761be18ab26c04e614ca158  gcc/m2/gm2-compiler/P3Build.bnf
! 0e61328237fcaf450191501b161573fa  gcc/m2/gm2-compiler/P3Build.def
! 4e2a315c14f7308d00e36ec05131d5af  gcc/m2/gm2-compiler/P3SymBuild.def
! f4cada80b1f309b56e38b5bc6de3b819  gcc/m2/gm2-compiler/P3SymBuild.mod
! 919554d63fbf50ae873a17dfd8e282f5  gcc/m2/gm2-compiler/PCBuild.bnf
! 76ab067b99f32eec9ad2f19861ea1077  gcc/m2/gm2-compiler/PCBuild.def
! 507af5e61ef56254f6ea179ba1732125  gcc/m2/gm2-compiler/PCSymBuild.def
! 73be2bbe51cf66ab70ecdbd16eb0752f  gcc/m2/gm2-compiler/PCSymBuild.mod
! 7a1a156be63ec9ac6dcaf5c900826f9a  gcc/m2/gm2-compiler/PHBuild.bnf
! 5eebed3700a811b84ff148edfc48507e  gcc/m2/gm2-compiler/PHBuild.def
  b521bc37b844fd46fdfddcf3d2287f13  gcc/m2/gm2-compiler/PathName.def
  96de7226734080944c4bdf83b7dbb0ca  gcc/m2/gm2-compiler/PathName.mod
  db0fe572d275f12368c3037e218c3bd6  gcc/m2/gm2-compiler/README
! 0269a99e1d0ce2593235fe53dfad3ac5  gcc/m2/gm2-compiler/Sets.def
! ccb383b502775d121afdb7a53e65b933  gcc/m2/gm2-compiler/Sets.mod
! 8c995df53f330a0e5a272870a725532c  gcc/m2/gm2-compiler/SymbolConversion.def
! a81a75167edfc8f2197c46d1c7c14b84  gcc/m2/gm2-compiler/SymbolConversion.mod
! b9739a0ee3a9107c328593c986aae7a0  gcc/m2/gm2-compiler/SymbolKey.def
! 6a3e6657751ccafb60c5b5c22b95e8da  gcc/m2/gm2-compiler/SymbolKey.mod
! 0fd412278bb74612892c5c751f098c9e  gcc/m2/gm2-compiler/SymbolTable.def
! 966a935c4ba15d92e5a58ca0c7c89ad4  gcc/m2/gm2-compiler/SymbolTable.mod
! 6ec97d3045588d43d3d5178b69836f74  gcc/m2/gm2-compiler/bnflex.def
! 48e6abddc0d62652f9f0db44650bff71  gcc/m2/gm2-compiler/bnflex.mod
! 04ffb53fa523a1dc2d595f086fa9635c  gcc/m2/gm2-compiler/cflex.def
! c3ba36c86c9047a833bd2b0b47ef5284  gcc/m2/gm2-compiler/gm2.mod
! 8ba367a63a76a10195c1e3524eff4a73  gcc/m2/gm2-compiler/gm2lcc.mod
! 4117c2b360c22dccf550dc9786f94aab  gcc/m2/gm2-compiler/gm2lgen.mod
! 191bf668932915adfcee672a6f0ce3ea  gcc/m2/gm2-compiler/gm2lorder.mod
! 17265b1bcee8a73fca95d3d8690deae7  gcc/m2/gm2-compiler/m2flex.def
! 4bd389913678ce073ee8f420f12ffe3a  gcc/m2/gm2-compiler/ppg.mod
  4ff5d76d706ef1de0bbdca3ebaff7877  gcc/m2/gm2-gcc/README
! 499a15b622c6af4999b02c430a73ace8  gcc/m2/gm2-gcc/dynamicstrings.h
! 57fae1bf142ec9d2aee6280dfa9c672b  gcc/m2/gm2-gcc/gcc-consolidation.h
! 27cc43b86475a964a4b14f3b6a6addd4  gcc/m2/gm2-gcc/init.cc
! 4ed608a5d0c03b44ea2a84ed3d0a8a3c  gcc/m2/gm2-gcc/init.def
! 219088b0d7f3a32242195bbc256aefa3  gcc/m2/gm2-gcc/init.h
! 7f48d6038c5963e7ca3c21825b591a21  gcc/m2/gm2-gcc/m2assert.cc
! 45c5cf72ce3b9ff58b9a02e435817579  gcc/m2/gm2-gcc/m2assert.h
! d55ca9908a618c6305bad7a90a7750e6  gcc/m2/gm2-gcc/m2block.cc
! 60faa99a05f97d59f9100e93551c0cfb  gcc/m2/gm2-gcc/m2block.def
! ddbb6520640128398cb15340854403e4  gcc/m2/gm2-gcc/m2block.h
! f2f5d2fb98977cd7dc93f0d571397eaa  gcc/m2/gm2-gcc/m2builtins.cc
! b6aa358556386dcad6c450401ff60b27  gcc/m2/gm2-gcc/m2builtins.def
! 63e7edfbff4243884bca28db3008d64b  gcc/m2/gm2-gcc/m2builtins.h
! 774a04165b7d24ded8713bc46e3d7026  gcc/m2/gm2-gcc/m2color.cc
! 4b5bc747da30fc0781ddc92d6441484c  gcc/m2/gm2-gcc/m2color.def
! 53fb6cbb2452a44902a846825857b58c  gcc/m2/gm2-gcc/m2color.h
! c57e121a775e14b76a95e82093d85f9d  gcc/m2/gm2-gcc/m2configure.cc
! 7a97e0e6b69222bae75feb7e9df0e4cb  gcc/m2/gm2-gcc/m2configure.def
! cd981344174b70ad14e17659fd420028  gcc/m2/gm2-gcc/m2configure.h
! 784f3b6b4293180b31665b322d50ebac  gcc/m2/gm2-gcc/m2convert.cc
! b4ff6906713a2fcefde47fa9e049663e  gcc/m2/gm2-gcc/m2convert.def
! d542c4187688dd6d3f4c6203c7869b11  gcc/m2/gm2-gcc/m2convert.h
! 4c2d8ec63fcd25d2bd38e06d3435a09b  gcc/m2/gm2-gcc/m2decl.cc
! 15c57e1fcb9441186b286414cc733f94  gcc/m2/gm2-gcc/m2decl.def
! 587b7bbf38310c8a74b837671bfc167e  gcc/m2/gm2-gcc/m2decl.h
! c1a94ce50a8866aa560c9b3ede25d8e6  gcc/m2/gm2-gcc/m2except.cc
! 3efbf405680d327d9937aa805a7742c5  gcc/m2/gm2-gcc/m2except.def
! 6b4a0f8a1419d29ca2d51fcef30ed5f0  gcc/m2/gm2-gcc/m2except.h
! 209bc8e5ce9a1595213d353f8db678c0  gcc/m2/gm2-gcc/m2expr.cc
! 362d42409f143a7a1892bc03a9d016ce  gcc/m2/gm2-gcc/m2expr.def
! 3d3cfc8c39bfaed38ae17b604f312b6f  gcc/m2/gm2-gcc/m2expr.h
! cf93fc26a5bf7be652735df683ae8edf  gcc/m2/gm2-gcc/m2linemap.cc
! fde7d5e80857c6be234b63286ecb1ea4  gcc/m2/gm2-gcc/m2linemap.def
! 72d2ff1160fa43ac995a93cc8ed301d0  gcc/m2/gm2-gcc/m2linemap.h
! 2353c2dfcd7e35ff231e5870956a7753  gcc/m2/gm2-gcc/m2misc.cc
! 96d257b0686aed2488c2220326179b1a  gcc/m2/gm2-gcc/m2misc.def
! 9c14ffd57bc50055379d261c50e5d73f  gcc/m2/gm2-gcc/m2misc.h
! 8cf29d1a0f954532c2a906eabcf11918  gcc/m2/gm2-gcc/m2options.h
! 28b8ea1eeafbd26c37f273e970dea0f4  gcc/m2/gm2-gcc/m2range.h
! 65770b89c43cec2fe92da4d1fdc6286a  gcc/m2/gm2-gcc/m2search.h
! ffd8f690193f51f2f00e7780a069116a  gcc/m2/gm2-gcc/m2statement.cc
! a498f3beb102ba135377eb4a4d2c7f56  gcc/m2/gm2-gcc/m2statement.def
! cca8ade75d6f99c62d8cff0d4d4c5f20  gcc/m2/gm2-gcc/m2statement.h
! 9a4a59176339f415ec9422c6f1e4291b  gcc/m2/gm2-gcc/m2top.cc
! c881440990b8612061aefbc41ae86e11  gcc/m2/gm2-gcc/m2top.def
! 7aa8f8ad24b1dbf4f16434fe7ae3cc7e  gcc/m2/gm2-gcc/m2top.h
! 1c9f6764e9aa85fa5da4623e2b9583e7  gcc/m2/gm2-gcc/m2tree.cc
! c8b9167b2e1a459c25975df54f6ad69d  gcc/m2/gm2-gcc/m2tree.def
! bdfdc5ba787ad40d8a2a2e235d478f20  gcc/m2/gm2-gcc/m2tree.h
! 263ffead8408e2af85756981e002b365  gcc/m2/gm2-gcc/m2treelib.cc
! bcfd723553ab9f502170f74c8cf85c00  gcc/m2/gm2-gcc/m2treelib.def
! 37a5b2891af6d1dc87f386fa1c62ff06  gcc/m2/gm2-gcc/m2treelib.h
! 48d22f8604ee244c3d95f4e4aa40ce02  gcc/m2/gm2-gcc/m2type.cc
! 8aaff4f014eaa9f9c335f03e804b4b94  gcc/m2/gm2-gcc/m2type.def
! d2b3393b82a22a65e187048f6ce5e9e7  gcc/m2/gm2-gcc/m2type.h
! 87266491b24aefec8811d68e57ee1ff7  gcc/m2/gm2-gcc/rtegraph.cc
! e70b1c69debf47e6f7923cebf7843699  gcc/m2/gm2-gcc/rtegraph.h
! 7afbbe662e4478509b29062da1850077  gcc/m2/gm2-ici/M2Emit.mod
  d5db4a0704741e24958241fe74fd007c  gcc/m2/gm2-ici/README
! 594bedbd8dfe3c5833031592581a2e27  gcc/m2/gm2-ici/m2linemap.c
! 9220130272f85c698acb2436b170e23a  gcc/m2/gm2-internals.texi
! 97a0377fca54edb64087e78909d5cf4a  gcc/m2/gm2-lang.cc
! 9e3e42eb147c35d61614dda2127e4470  gcc/m2/gm2-lang.h
  2b1d730bdeb600463475d3bb94f17f12  gcc/m2/gm2-libiberty/README
! a88120ec3b60093ac6912f4edc03a160  gcc/m2/gm2-libiberty/choosetemp.def
! 08b1af8b346a4101507fe5449aa90594  gcc/m2/gm2-libiberty/pexecute.def
! 01643905c0e70029c2998b574b428c77  gcc/m2/gm2-libs-ch/M2LINK.c
  62fbe07131fda60be5a71a8773c3dcd4  gcc/m2/gm2-libs-ch/README
! 734efe8dbc1bf208a04780a2f4d0b5ee  gcc/m2/gm2-libs-ch/RTcodummy.c
! 4c23ee0664e8cc90e2c04c4294cdf52c  gcc/m2/gm2-libs-ch/RTintdummy.c
! 21007c25abe2ea4310e4466669579662  gcc/m2/gm2-libs-ch/Selective.c
! 771365e1cd0097131f892cc3fb26b99d  gcc/m2/gm2-libs-ch/SysExceptions.c
! b33e8d4f4a4c6a8f8f21ba3464eaca6e  gcc/m2/gm2-libs-ch/UnixArgs.cc
! c352ffc849effd08e1b1da0fa503ac65  gcc/m2/gm2-libs-ch/cgetopt.c
! 31371c90add5772a2e2016d855d90806  gcc/m2/gm2-libs-ch/choosetemp.c
! ff8a2617b17fc55dbef9a9a526e3a8a2  gcc/m2/gm2-libs-ch/dtoa.cc
! 4fb1a945e65ed40887aa53bd22cd9f5e  gcc/m2/gm2-libs-ch/errno.c
! 07850e8750e733cfc887a0b2663693e1  gcc/m2/gm2-libs-ch/host.c
! fd9a35cdc8d34a0949900b3ad66f1003  gcc/m2/gm2-libs-ch/ldtoa.cc
! 392a5f634e6407e4211d384bc66f8e52  gcc/m2/gm2-libs-ch/m2rts.h
! 1f51812febeee7828d6956e08bc7406d  gcc/m2/gm2-libs-ch/termios.c
! 32b71a5f8a0832777137b1c05e8ce8ae  gcc/m2/gm2-libs-ch/tools.c
! 6d722c73af61f2507acdceb5a0a956fc  gcc/m2/gm2-libs-ch/wrapc.c
! cb05aaea9b98cbf50ef543ae47225027  gcc/m2/gm2-libs-ch/xlibc.c
! 474297e2d68cc259f905256a40501f35  gcc/m2/gm2-libs-coroutines/Executive.def
! 19e2637ac51b44e91ecb192e6485e703  gcc/m2/gm2-libs-coroutines/Executive.mod
! daa222b92b774c3eecb1fd647a7ffbff  gcc/m2/gm2-libs-coroutines/KeyBoardLEDs.def
! b9ef554a88efbec2234a12ebc89a00db  gcc/m2/gm2-libs-coroutines/README.texi
! f03913f3a65afdb4cd8529b23d1c17da  gcc/m2/gm2-libs-coroutines/SYSTEM.def
! 7fee385db3bf61f156a868627b39c8d5  gcc/m2/gm2-libs-coroutines/SYSTEM.mod
! 9988bbc2924f5a3342c49dd7cd1a45ab  gcc/m2/gm2-libs-coroutines/TimerHandler.def
! 8fba133e638b617c2bca8e7b70011723  gcc/m2/gm2-libs-coroutines/TimerHandler.mod
  389f62af2918433359e5d632b9cfa7cb  gcc/m2/gm2-libs-iso/COROUTINES.def
! 1ce5a2f15123c04a5edd246d59a99502  gcc/m2/gm2-libs-iso/COROUTINES.mod
  b40ce77b637c8356536cc7317b37bd15  gcc/m2/gm2-libs-iso/ChanConsts.def
! 2b7b7ca2fd53af6d1c975eb05d77563b  gcc/m2/gm2-libs-iso/ChanConsts.h
! 07891f41862136e515bcd288d36a0d75  gcc/m2/gm2-libs-iso/ChanConsts.mod
  26d4fa17c751999369c175e64f4db462  gcc/m2/gm2-libs-iso/CharClass.def
! f92f96fdb6f9671f5eed0453b8ccbce3  gcc/m2/gm2-libs-iso/CharClass.mod
! 1cb70d91cafabd98549391d7aa50e766  gcc/m2/gm2-libs-iso/ClientSocket.def
! fcb85ae535f0db7e0551f6643d404547  gcc/m2/gm2-libs-iso/ClientSocket.mod
  7e412d2d4dd38bc7acae6ef37f58a343  gcc/m2/gm2-libs-iso/ComplexMath.def
! ee603d52d96aea66e114e08a3c1824b5  gcc/m2/gm2-libs-iso/ComplexMath.mod
! 02d3eb0359f9576ab2e3feb346291007  gcc/m2/gm2-libs-iso/ConvStringLong.def
! 2887e06a4139232b8a0d55f87b064f6e  gcc/m2/gm2-libs-iso/ConvStringLong.mod
! a896ebfc012ad99ac99c9eaa55b95c01  gcc/m2/gm2-libs-iso/ConvStringReal.def
! bd0bebd2bff70c5deb8038a4b3e78ecc  gcc/m2/gm2-libs-iso/ConvStringReal.mod
  b61783ff6abc22b746e6979c0bcee2dd  gcc/m2/gm2-libs-iso/ConvTypes.def
! 9747e5e33c6180564d5c6fd89707034b  gcc/m2/gm2-libs-iso/ConvTypes.mod
  06b39eaf4e88d493000c7360c310ba97  gcc/m2/gm2-libs-iso/EXCEPTIONS.def
! 193f5d82b16ff7824721a525ae53ddaf  gcc/m2/gm2-libs-iso/EXCEPTIONS.mod
! 8bb04ae6a784c997e0db16bc6539a867  gcc/m2/gm2-libs-iso/ErrnoCategory.def
  c9c5e6e4fbd4b365b1738fb97167c772  gcc/m2/gm2-libs-iso/GeneralUserExceptions.def
! 25be7abf5cfcd988b97f0b3c49b7fd8a  gcc/m2/gm2-libs-iso/GeneralUserExceptions.mod
  3be4b03912f03e5164671e278a4ba6a1  gcc/m2/gm2-libs-iso/IOChan.def
! 367f22e00cd2294a86ddbae5150e23b3  gcc/m2/gm2-libs-iso/IOChan.mod
  58b81b1b97143b27dfd3d5c225da285c  gcc/m2/gm2-libs-iso/IOConsts.def
! 80ae9dcbb3d552360c1c6d66ac1257a7  gcc/m2/gm2-libs-iso/IOConsts.mod
  3d1e4b84b179c15fe8b1fc60b7d46e6c  gcc/m2/gm2-libs-iso/IOLink.def
! f9b3e77903070b43220b8adb591490d0  gcc/m2/gm2-libs-iso/IOLink.mod
  e5ea2ed3bf2ca24aeda732fb92f74111  gcc/m2/gm2-libs-iso/IOResult.def
! 0c67eff84baab529efc805107a489bb7  gcc/m2/gm2-libs-iso/IOResult.mod
  5c708f49fa403c8243782ec5145e99ca  gcc/m2/gm2-libs-iso/LongComplexMath.def
! 2b324c68c37cb3f5ea8b11bb2393fa31  gcc/m2/gm2-libs-iso/LongComplexMath.mod
  018ee564b5b6d66051cf2ee4c7aea2fc  gcc/m2/gm2-libs-iso/LongConv.def
! dad589a3a3b7729571905838c79ba2bc  gcc/m2/gm2-libs-iso/LongConv.mod
  4869ce48d2aff46481adb5534764774b  gcc/m2/gm2-libs-iso/LongIO.def
! 55dcdd221dc4f65d2dd1a6e03dc3c70c  gcc/m2/gm2-libs-iso/LongIO.mod
  33a10b599c8fdf13d8d4e1b9b4a2ffc3  gcc/m2/gm2-libs-iso/LongMath.def
! 50f9902d936149e291e00e0f27e45a92  gcc/m2/gm2-libs-iso/LongMath.mod
  8ad351822e38056538ef1e9efe8b5cac  gcc/m2/gm2-libs-iso/LongStr.def
! 08b19f451cf3fbd81aa9a5a4338c1a41  gcc/m2/gm2-libs-iso/LongStr.mod
! f6937d6aa1bc52ed8e124f14e75844a4  gcc/m2/gm2-libs-iso/LongWholeIO.def
! 5a7235557c0bb7eb0fe53b09e1496f57  gcc/m2/gm2-libs-iso/LongWholeIO.mod
  34685287385135c3fbaa60ba1d894854  gcc/m2/gm2-libs-iso/LowLong.def
! 5d2dcbf01a1b51ef8e87f3dd5eb6b84c  gcc/m2/gm2-libs-iso/LowLong.mod
  78be5cf8b1f715e70e0c61838c761d10  gcc/m2/gm2-libs-iso/LowReal.def
! 0716fc8c45e79b6e7037e7a85dcdb823  gcc/m2/gm2-libs-iso/LowReal.mod
! a095ee6f8c9af1f7a8acb6e86639d490  gcc/m2/gm2-libs-iso/LowShort.def
! ed519399aac96d1dcc87744ba6349c94  gcc/m2/gm2-libs-iso/LowShort.mod
  e23b19886a6564119fe2b28e7d21f270  gcc/m2/gm2-libs-iso/M2EXCEPTION.def
! bd676c47a745fa9ad01bff1fc8a08344  gcc/m2/gm2-libs-iso/M2EXCEPTION.mod
! c3241a143d3ceb65a623c84684a46e06  gcc/m2/gm2-libs-iso/M2RTS.def
! 695bfb5ced163c8a1f9891606b77155a  gcc/m2/gm2-libs-iso/M2RTS.mod
! d9d3e78b70105ed5222b292de56157da  gcc/m2/gm2-libs-iso/MemStream.def
! 96df9af35093aa8f53a28b9bfcb4e59e  gcc/m2/gm2-libs-iso/MemStream.mod
! 76392741be38999673a9d8f84981146c  gcc/m2/gm2-libs-iso/Preemptive.def
! 9757b1af464931cf4576103887b8e48d  gcc/m2/gm2-libs-iso/Preemptive.mod
  617142b6611a41ce58eb9ae27d709342  gcc/m2/gm2-libs-iso/Processes.def
! def9d56258b4440b2b8897a29843ac64  gcc/m2/gm2-libs-iso/Processes.mod
  f99d0ab4d95b7c909aebc4eee8923beb  gcc/m2/gm2-libs-iso/ProgramArgs.def
! 3ae6e54d8113a24947272673f640b939  gcc/m2/gm2-libs-iso/ProgramArgs.mod
! 41c8e4676f8d1d53b2ebcd3fa4228e35  gcc/m2/gm2-libs-iso/README.texi
! 6009cc9267f2f6c80d066f2331211b12  gcc/m2/gm2-libs-iso/RTco.def
! a7ee6263f890b4331fa80fdd78dc5f55  gcc/m2/gm2-libs-iso/RTdata.def
! 3d3e8d1bdd2942f1a970f9e6798a9c73  gcc/m2/gm2-libs-iso/RTdata.mod
! 9c81a48f6bda0bc411fa1701a38167b3  gcc/m2/gm2-libs-iso/RTentity.def
! 06ec407e2c2a4f33c830308ebe9bb815  gcc/m2/gm2-libs-iso/RTentity.mod
! 7864a4094d3257ae4a3114e9ae01532a  gcc/m2/gm2-libs-iso/RTfio.def
! 0d1cb14e2cab5d84c3af2785f995a84a  gcc/m2/gm2-libs-iso/RTfio.mod
! a97510439fd12aed085753d9bbf3429e  gcc/m2/gm2-libs-iso/RTgen.def
! 40a39336ec2af095c24c898b04126507  gcc/m2/gm2-libs-iso/RTgen.mod
! 89638440b66d0a21eea1fc4d27ba3bba  gcc/m2/gm2-libs-iso/RTgenif.def
! 8ab1ee709c358a302d2c5146ebdc310e  gcc/m2/gm2-libs-iso/RTgenif.mod
! b4454194bee0c3848e6822fb4fd3f9c5  gcc/m2/gm2-libs-iso/RTio.def
! 646fcde9ce218d466af3948ab5e5c9ac  gcc/m2/gm2-libs-iso/RTio.mod
! 7784060b9df612c1f0eca8d5ce3d5aee  gcc/m2/gm2-libs-iso/RandomNumber.def
! be35a2dca23ded4a483961d33770d79c  gcc/m2/gm2-libs-iso/RandomNumber.mod
  40277b3de34e1a5d9df0b7cc45c14d15  gcc/m2/gm2-libs-iso/RawIO.def
! 98166f7556e00a0c362563e0e99621e8  gcc/m2/gm2-libs-iso/RawIO.mod
  df153efe4a594ad9e9d8cca8b83c8df2  gcc/m2/gm2-libs-iso/RealConv.def
! 4c60347e26ca3232bdc5f3990a11b37f  gcc/m2/gm2-libs-iso/RealConv.mod
  eba391eef02297c03d7a651d6073fc82  gcc/m2/gm2-libs-iso/RealIO.def
! b47a32741f8a11ffe7091f7ca47dd59a  gcc/m2/gm2-libs-iso/RealIO.mod
  26b3c4e00ec2554e4506a35049bc3f0c  gcc/m2/gm2-libs-iso/RealMath.def
! d5d58ea1bba5453b6e79d96cc359be83  gcc/m2/gm2-libs-iso/RealMath.mod
  a97765c0f82b53bb50acb8e67e5374e6  gcc/m2/gm2-libs-iso/RealStr.def
! 9051c36d682bfc3f0a7c153072abf428  gcc/m2/gm2-libs-iso/RealStr.mod
  44b3b908b90d74d002a06bfb54262671  gcc/m2/gm2-libs-iso/RndFile.def
! abfc76b14934386a7f310a6ffdb19689  gcc/m2/gm2-libs-iso/RndFile.mod
  227a83f272114ad4e64c8f3c9ef346fd  gcc/m2/gm2-libs-iso/SIOResult.def
! 2c2e9419b7bfb0536dfaee09e92051cc  gcc/m2/gm2-libs-iso/SIOResult.mod
  fd1983de497a0e10765806998b96e7a1  gcc/m2/gm2-libs-iso/SLongIO.def
! f8ce1571926cabeb86a5b6ded82d4f45  gcc/m2/gm2-libs-iso/SLongIO.mod
! 8536136dcd21b080d4ae620fdd370e5c  gcc/m2/gm2-libs-iso/SLongWholeIO.def
! 514bb46ff5901795569be50eabedd7da  gcc/m2/gm2-libs-iso/SLongWholeIO.mod
  5d7062666ffc5c5db7890b0b53f21387  gcc/m2/gm2-libs-iso/SRawIO.def
! e267d7385d13ca0a6fe03b23299f287d  gcc/m2/gm2-libs-iso/SRawIO.mod
  29dc788abe06750b87ad7f8c7605ddad  gcc/m2/gm2-libs-iso/SRealIO.def
! 4cb82593db6f2e94f23cc70a6048722f  gcc/m2/gm2-libs-iso/SRealIO.mod
! cdb04ed3bdb97c441d44ffec71c70510  gcc/m2/gm2-libs-iso/SShortIO.def
! cba1eb23c45bcd4fb755ad65d6096a50  gcc/m2/gm2-libs-iso/SShortIO.mod
! c620485b3e9c2f8998e4c33c6e019a54  gcc/m2/gm2-libs-iso/SShortWholeIO.def
! e58bc411f62cd2119cf71526deb8d56c  gcc/m2/gm2-libs-iso/SShortWholeIO.mod
  037039b67d035c6da1fe676b93e98273  gcc/m2/gm2-libs-iso/STextIO.def
! 8e3d0b1c7aaf67707592638818abe66d  gcc/m2/gm2-libs-iso/STextIO.mod
  4806b44e4a85776e1d5015f2013974a3  gcc/m2/gm2-libs-iso/SWholeIO.def
! 7811b754b6fe0f4d0d624b1295149aad  gcc/m2/gm2-libs-iso/SWholeIO.mod
  e40fdae4d0992bbfc83c127235813e82  gcc/m2/gm2-libs-iso/SYSTEM.def
! 3800bab3620532995468ba194f646b68  gcc/m2/gm2-libs-iso/SYSTEM.mod
  cb047c38f5ef851681b19de3902ffebe  gcc/m2/gm2-libs-iso/Semaphores.def
! 39599a5c38d59d5fce374bac8ae1e98d  gcc/m2/gm2-libs-iso/Semaphores.mod
  0123a3eb7dc065b38800f7157f415c27  gcc/m2/gm2-libs-iso/SeqFile.def
! c9b5f3c956e7f3187223d8cf601b6106  gcc/m2/gm2-libs-iso/SeqFile.mod
! 5237862b61a823e2927510fbb25fff2e  gcc/m2/gm2-libs-iso/ShortComplexMath.def
! 8f56c7947659859465159f919073386a  gcc/m2/gm2-libs-iso/ShortComplexMath.mod
! 93009686521560cc8f268f51441cf1d1  gcc/m2/gm2-libs-iso/ShortIO.def
! 395e988ac12137c93c66946e5dc8b81c  gcc/m2/gm2-libs-iso/ShortIO.mod
! 01687494d7989b9a32645dcab016322c  gcc/m2/gm2-libs-iso/ShortWholeIO.def
! 4be179f43c7544de70d488ba0bef7fa4  gcc/m2/gm2-libs-iso/ShortWholeIO.mod
! 2844178f7daffa687028ca7e3fb57971  gcc/m2/gm2-libs-iso/SimpleCipher.def
! 18d9ea25e9aadc24e2e1f4cccc37524f  gcc/m2/gm2-libs-iso/SimpleCipher.mod
  8b8a01b2a2ce71ef914ac2c6cc8c3b75  gcc/m2/gm2-libs-iso/StdChans.def
! 5fca33f7f7d4bdf7d3ceb6c6b0624731  gcc/m2/gm2-libs-iso/StdChans.mod
  e2ce5b09829edfcec26970649d78d4dc  gcc/m2/gm2-libs-iso/Storage.def
! 53199f76051c3206fd7e0dcb6bb2aee8  gcc/m2/gm2-libs-iso/Storage.mod
  be819007a2908ba602c8757b5d53a335  gcc/m2/gm2-libs-iso/StreamFile.def
! aab1f63933d28147159620ba6ee38c88  gcc/m2/gm2-libs-iso/StreamFile.mod
! 770d687f2e85505cb261597434d7efd2  gcc/m2/gm2-libs-iso/StringChan.def
! 16e0c5868d4112cfa5d7e5abb53f80d3  gcc/m2/gm2-libs-iso/StringChan.mod
  8f11555f792697e6e70bdabf60c96447  gcc/m2/gm2-libs-iso/Strings.def
! 4b0be966d9adae1964a45a151e8e4f43  gcc/m2/gm2-libs-iso/Strings.mod
  decb080d52ed383b759f5da725dcc91f  gcc/m2/gm2-libs-iso/SysClock.def
! ad97e28b2b5f5901bab3f5981f96b2fe  gcc/m2/gm2-libs-iso/SysClock.mod
  62d31afe6dbffd3c51bcaa5af7575bcd  gcc/m2/gm2-libs-iso/TERMINATION.def
! d79b7c04c72fcfe51a7aa9eb2ba3b755  gcc/m2/gm2-libs-iso/TERMINATION.mod
  665eef372cb297013ff37bc80a4eb66d  gcc/m2/gm2-libs-iso/TermFile.def
! e8f69e9c8ab9b95b79dbe73d127ab56a  gcc/m2/gm2-libs-iso/TermFile.mod
  3e80217d87e3e0aa014739829f7cc23a  gcc/m2/gm2-libs-iso/TextIO.def
! 5f14b6cdf781046b36b503efa9730a6d  gcc/m2/gm2-libs-iso/TextIO.mod
  63a72ee284f83e558fb34e32fe4cc1fb  gcc/m2/gm2-libs-iso/WholeConv.def
! 7bff7d6ea229e2a85acda75fc121d965  gcc/m2/gm2-libs-iso/WholeConv.mod
  108023618e22cb8631ac14d0bf21510a  gcc/m2/gm2-libs-iso/WholeIO.def
! aae3176d6c1a767dd377d504977806a0  gcc/m2/gm2-libs-iso/WholeIO.mod
  a27fdd32dbd31b2e992eceaf29b2fe76  gcc/m2/gm2-libs-iso/WholeStr.def
! be3b1d273b1a28f7dd7dae905b63ecef  gcc/m2/gm2-libs-iso/WholeStr.mod
! c8686e39fa3d904d0ba435489fa135c1  gcc/m2/gm2-libs-iso/wrapsock.def
! e90d87cc30a33cfcb39979016544d2cb  gcc/m2/gm2-libs-iso/wraptime.def
! a40ff2314d621e42c52067023b1441d9  gcc/m2/gm2-libs-log/BitBlockOps.def
! b95eef0e55f925e7cf6aae032c6612f6  gcc/m2/gm2-libs-log/BitBlockOps.mod
! 61f6642670975f9888e71e93fb979c66  gcc/m2/gm2-libs-log/BitByteOps.def
! b9973d18ccc9f9781b5d4f66e8401a3e  gcc/m2/gm2-libs-log/BitByteOps.mod
! 9becaff1b1d92e657af9ae6e5197d7aa  gcc/m2/gm2-libs-log/BitWordOps.def
! 16056e1ed48f8127537fbe29ddbad072  gcc/m2/gm2-libs-log/BitWordOps.mod
! 0341daabeb4dcd077d9fd287afd80484  gcc/m2/gm2-libs-log/BlockOps.def
! 0b90e379bfd4b74e5d65ab30afae0662  gcc/m2/gm2-libs-log/BlockOps.mod
! ea654933af37db956bfb3db947cac959  gcc/m2/gm2-libs-log/Break.c
! 9f92c8d8394051f70e33c177eb4c2e5a  gcc/m2/gm2-libs-log/Break.def
! 7a2ad7522efc8c3ddabd50a1462a016a  gcc/m2/gm2-libs-log/CardinalIO.def
! bfb46074251e5e74d6340f9e554e3fbb  gcc/m2/gm2-libs-log/CardinalIO.mod
! 53c22a858c8ac720771544d47f17d647  gcc/m2/gm2-libs-log/Conversions.def
! bab12c267813f8ee5a7ae171bca66036  gcc/m2/gm2-libs-log/Conversions.mod
! dc9bba75d9a92edb050f69fd8aaf5c85  gcc/m2/gm2-libs-log/DebugPMD.def
! a8409dad9081044a3d8e2b1c06f23dff  gcc/m2/gm2-libs-log/DebugPMD.mod
! fd28cb0bcff1ec71b3b5a85e79f186f3  gcc/m2/gm2-libs-log/DebugTrace.def
! 8a21f0808f8f819064e189b4de17f58b  gcc/m2/gm2-libs-log/DebugTrace.mod
! 8590197f6e27c4c166e238ef35e6df5c  gcc/m2/gm2-libs-log/Delay.def
! c9c6e9eb1fb5fcb71a7d65a422bfdb3b  gcc/m2/gm2-libs-log/Delay.mod
! 99362fac95bd4c484922b2ae0b5f3bb6  gcc/m2/gm2-libs-log/Display.def
! 31ed21d2624689cdf444781e7bdeb833  gcc/m2/gm2-libs-log/Display.mod
! 230fcedd3a4a8c05e6908ca1d0a2e117  gcc/m2/gm2-libs-log/ErrorCode.def
! 43fa9086cd33bf7cdefb1a8bcddac6a0  gcc/m2/gm2-libs-log/ErrorCode.mod
! 5a5bfb94cd7a4406abf80643240b43fc  gcc/m2/gm2-libs-log/FileSystem.def
! 8ad4b637a0915b0fbdafc5901e20bdf1  gcc/m2/gm2-libs-log/FileSystem.mod
! 367f88bed3d144584162f12bb1f73dc3  gcc/m2/gm2-libs-log/FloatingUtilities.def
! 9a798d3114264ab9363bba62ad896b4d  gcc/m2/gm2-libs-log/FloatingUtilities.mod
! 5d0818ba01ffc7c06dc2bf73b2beb133  gcc/m2/gm2-libs-log/InOut.def
! 2acebf4db36f11abd8f9e83df000fd93  gcc/m2/gm2-libs-log/InOut.mod
! 9ad4dcad97d9bd7ed600f8ea204564d9  gcc/m2/gm2-libs-log/Keyboard.def
! 32038d8013689fa6de6f299f424dea6e  gcc/m2/gm2-libs-log/Keyboard.mod
! 999be8115fe82e6f09c050882316a2d8  gcc/m2/gm2-libs-log/LongIO.def
! 08f90c812ca9b3f675eae673094a3738  gcc/m2/gm2-libs-log/LongIO.mod
! 5da6f8268c73c569637b1e6dcb806e4b  gcc/m2/gm2-libs-log/NumberConversion.def
! 4fef5f5553805bcb0b12b76ffb6038de  gcc/m2/gm2-libs-log/NumberConversion.mod
! 0c6088dd608aa8f1f1d64dbb43a3cda1  gcc/m2/gm2-libs-log/README.texi
! cdbc71e11513e23513283c7624065c4e  gcc/m2/gm2-libs-log/Random.def
! 1258e8b2800c01043086285b854d426f  gcc/m2/gm2-libs-log/Random.mod
! b4dac9717f90735a558983e363307968  gcc/m2/gm2-libs-log/RealConversions.def
! 697c484b5ffb416add4d2354b6487d59  gcc/m2/gm2-libs-log/RealConversions.mod
! 9b6ec82a722608c4f416f8a126032925  gcc/m2/gm2-libs-log/RealInOut.def
! 09ff8ea1d715d6c6f4ed39737a1fcb29  gcc/m2/gm2-libs-log/RealInOut.mod
! d656b0a428f03a798255297b30204832  gcc/m2/gm2-libs-log/Strings.def
! 02f07db4684758971417be90f1be1627  gcc/m2/gm2-libs-log/Strings.mod
! 71bcaaee63e8c5cdd94f7ee7385e284f  gcc/m2/gm2-libs-log/Termbase.def
! 7c5e08d65e9614a0a95196469676cc02  gcc/m2/gm2-libs-log/Termbase.mod
! eae744ece053e82400d5afffda9d50e0  gcc/m2/gm2-libs-log/Terminal.def
! 54b3e3f865bcff9abf75d2541f8fe2fe  gcc/m2/gm2-libs-log/Terminal.mod
! 036ee20c46aed13fc4d1da4d5e30d4eb  gcc/m2/gm2-libs-log/TimeDate.def
! 6d924625fa0bc252af84aaa44007fd35  gcc/m2/gm2-libs-log/TimeDate.mod
! 566e49607d4418b3bcfb2357c60b3054  gcc/m2/gm2-libs-min/M2RTS.def
! 22d8e304aa8f3a39c576dfccc2136541  gcc/m2/gm2-libs-min/M2RTS.mod
! 24ea50c3ef65a2564362ef226f56dcf3  gcc/m2/gm2-libs-min/SYSTEM.def
! fbcaf73aa552f0ac2f32a85231824c14  gcc/m2/gm2-libs-min/SYSTEM.mod
! 32a346e26c214d5efcb9c1fdc3aeeeaa  gcc/m2/gm2-libs-min/libc.c
! a2aeae63702e083dfb7bc028c6e1ebe4  gcc/m2/gm2-libs-min/libc.def
! 6cc0cc31764129365fb953094ddc9145  gcc/m2/gm2-libs/ASCII.def
! 94b8e018933a269ea7755fe56290ab59  gcc/m2/gm2-libs/ASCII.mod
! 478ce000b276aaf00d81533709abf1e8  gcc/m2/gm2-libs/Args.def
! e3fccb9235824f3e227c92d0e2d81a05  gcc/m2/gm2-libs/Args.mod
! 6f43413c26450f72cfd1ce607f5a44be  gcc/m2/gm2-libs/Assertion.def
! 383d512a4b4e8af61d0b8993b95b983b  gcc/m2/gm2-libs/Assertion.mod
! abe79247af7c51ae7f4961cd80053d92  gcc/m2/gm2-libs/Break.def
! 2ed135bc7b634d008c29f0723a3edd09  gcc/m2/gm2-libs/Break.mod
! ab179f2fd5d82f05cb777b1a6c500247  gcc/m2/gm2-libs/Builtins.def
! 6d3287f825899303b45aaa326d28e9d9  gcc/m2/gm2-libs/Builtins.mod
! 1d35a2f734ccfcc3e1da57095bae966e  gcc/m2/gm2-libs/COROUTINES.def
! 7aa623b79d8ae2cffe294fb038305731  gcc/m2/gm2-libs/COROUTINES.mod
! d2683ec90a5cf945a08811f3dbdf02b7  gcc/m2/gm2-libs/CmdArgs.def
! 18608f793ad1e72f6c61aa6c17169010  gcc/m2/gm2-libs/CmdArgs.mod
! 64b5538da8ef57c24f003b89eade6aea  gcc/m2/gm2-libs/Debug.def
! d173462bca4d41927b0ab36c5ae08dfe  gcc/m2/gm2-libs/Debug.mod
! 8913e71a5ef3ce1658bef00741a2b339  gcc/m2/gm2-libs/DynamicStrings.def
! 00cde8bad6bba2bd01f58e4e0c136c64  gcc/m2/gm2-libs/DynamicStrings.mod
! adcc1d27331453eaf3d19b4ff6d3c1ba  gcc/m2/gm2-libs/Environment.def
! 2f27faf82e2a995767655e4cb2715dfd  gcc/m2/gm2-libs/Environment.mod
! be75460f688cf4a889a53671132520e7  gcc/m2/gm2-libs/FIO.def
! edac0fdcfd4770c1c16400439bd04514  gcc/m2/gm2-libs/FIO.mod
! 68e0a0d32bd9639121daf1001db9dd05  gcc/m2/gm2-libs/FormatStrings.def
! 9c941c9a4855e870fd28651647b745fd  gcc/m2/gm2-libs/FormatStrings.mod
! 78d829b48ef00b8a8d2c016b770628dd  gcc/m2/gm2-libs/FpuIO.def
! 18040d0c61f408ead5dde44832fec08e  gcc/m2/gm2-libs/FpuIO.mod
! 9b0045f280b51aee9c91ff00622f2eb1  gcc/m2/gm2-libs/GetOpt.def
! bc1a4b60d30af5258818aeb6b9419a58  gcc/m2/gm2-libs/GetOpt.mod
! c10897b480022c6448b615008c9dd188  gcc/m2/gm2-libs/IO.def
! 33e67c89a0e5b347b4b8b1255caefad4  gcc/m2/gm2-libs/IO.mod
! afd90ce364910d91fa384a463a1dcab9  gcc/m2/gm2-libs/Indexing.def
! 7f61d60bfe7564507a22f89eeedf2a26  gcc/m2/gm2-libs/Indexing.mod
! 25611159e0f0b8fcefb26d6d64200c77  gcc/m2/gm2-libs/LMathLib0.def
! 94f4c8c4aa7791f7db7f59365e8e8c6b  gcc/m2/gm2-libs/LMathLib0.mod
! 9c44b633baf1fbff30ae84fd240f9361  gcc/m2/gm2-libs/LegacyReal.def
! a3c8371b1b610828abbe89f0cb3866d7  gcc/m2/gm2-libs/LegacyReal.mod
! 84571cff693fb9fb593d29dacfe88559  gcc/m2/gm2-libs/M2Dependent.def
! d9ddfd1d9bbaf6fa9c3e1ce86144b370  gcc/m2/gm2-libs/M2Dependent.mod
! 78291d36f3d14a83a3dd6a3ed2687a99  gcc/m2/gm2-libs/M2EXCEPTION.def
! 5d02fc7f3ba450684d735a822771f5e0  gcc/m2/gm2-libs/M2EXCEPTION.mod
! 86579db60dd6710d616f8fe6988854d3  gcc/m2/gm2-libs/M2RTS.def
! 2f80c852d9c34a7a4e2ff908918f3dd5  gcc/m2/gm2-libs/M2RTS.mod
! 62c246a6d1111d0144d69f90f7bb9514  gcc/m2/gm2-libs/MathLib0.def
! 3d13293b0ff7d7beb526edfe6d9c359e  gcc/m2/gm2-libs/MathLib0.mod
! 557f374c349973c2532b0896d477c191  gcc/m2/gm2-libs/MemUtils.def
! 02b38b00454945d242b08a85838ceefb  gcc/m2/gm2-libs/MemUtils.mod
! 10d5247bfc400757ff1a7a188c449d79  gcc/m2/gm2-libs/NumberIO.def
! 8372741b863dee101bf838608bee11e4  gcc/m2/gm2-libs/NumberIO.mod
! 25694e08ef3825920e753aed21cd91ee  gcc/m2/gm2-libs/OptLib.def
! c5a540d913c90e594b679d96732a7dc6  gcc/m2/gm2-libs/OptLib.mod
! ae3185607e9e42d92a2680eeb371cbed  gcc/m2/gm2-libs/PushBackInput.def
! 3f41c1c3a2e90f8bec972d4297fab880  gcc/m2/gm2-libs/PushBackInput.mod
! a4136c585305353c2519c5ac772f7886  gcc/m2/gm2-libs/README.texi
! ea4ae8ec5e18f2ccda802c4b57ea46a2  gcc/m2/gm2-libs/RTExceptions.def
! b82f893f1f94548a7445594bf965e94f  gcc/m2/gm2-libs/RTExceptions.mod
! 200d7111b0c08d747aed63ba754cd031  gcc/m2/gm2-libs/RTint.def
! d145f983550572a436dccafb6c898520  gcc/m2/gm2-libs/RTint.mod
! b578ba32c78a74f33d1bc75eaab2d00f  gcc/m2/gm2-libs/SArgs.def
! ecb0abab8c87925973c3b93b46e09a37  gcc/m2/gm2-libs/SArgs.mod
! 827b79ad4087a3aa78582feccabbb2c8  gcc/m2/gm2-libs/SCmdArgs.def
! 0434761287c4f1eb1e616bc141a1cf15  gcc/m2/gm2-libs/SCmdArgs.mod
! bc056d9fdc977d98bdc69e899f564ccb  gcc/m2/gm2-libs/SEnvironment.def
! c11d9bc4499857c7a2d4f9d2fc43d287  gcc/m2/gm2-libs/SEnvironment.mod
! 740dcaac91ef3d4011d5c5cc89ffae5f  gcc/m2/gm2-libs/SFIO.def
! c50df2161c949d3e37655365f593ff2d  gcc/m2/gm2-libs/SFIO.mod
! 29287208cd3cacce6ccfdcc02479b5c6  gcc/m2/gm2-libs/SMathLib0.def
! 42df01ee12105bcfe33f8447ff6f95ce  gcc/m2/gm2-libs/SMathLib0.mod
! a3caa384740792669108141b5f3b6e17  gcc/m2/gm2-libs/SYSTEM.def
! 3d3dcc44cef278adbd28042511a387f2  gcc/m2/gm2-libs/SYSTEM.mod
! cd7269471a44292dc52b58b8fd5c0cd5  gcc/m2/gm2-libs/Scan.def
! e06ba5bcef9eed65a8333152bfcf4376  gcc/m2/gm2-libs/Scan.mod
! 1cce92414550ab056dafd35055018d02  gcc/m2/gm2-libs/Selective.def
! 5ee500f820b27a7c4699d2df2b6f0682  gcc/m2/gm2-libs/StdIO.def
! 18d25dc118dd1f696d541a6db56b1ae4  gcc/m2/gm2-libs/StdIO.mod
! 9ebbbfdaaeee39bd25e2069d15f53202  gcc/m2/gm2-libs/Storage.def
! 74a77257197f1102b4a70e5bac60656d  gcc/m2/gm2-libs/Storage.mod
! 9443f1aa22aa45d84cb4eb28d147bc0c  gcc/m2/gm2-libs/StrCase.def
! 3a412029de35c678d43c039642f9e53e  gcc/m2/gm2-libs/StrCase.mod
! 2c5f97267446a2b1952486573e6059ff  gcc/m2/gm2-libs/StrIO.def
! 46ab7662184a41dce9b3bb3948715c23  gcc/m2/gm2-libs/StrIO.mod
! a2612c797af3b3bc8b6bb6ae49f593f4  gcc/m2/gm2-libs/StrLib.def
! 0de2a4029cfe9e1ca579c68f9596e248  gcc/m2/gm2-libs/StrLib.mod
! 4ae21fd21a1d4c9ab3cfe7ab6bdef2fe  gcc/m2/gm2-libs/StringConvert.def
! a5b9b05862e5486e1ff8e626c0a607f9  gcc/m2/gm2-libs/StringConvert.mod
! 698f5d82762b704fda655e49f02976f3  gcc/m2/gm2-libs/SysExceptions.def
! 29546e7f4e94504d158492ccb766891e  gcc/m2/gm2-libs/SysStorage.def
! e476e69a624cc019b29d03a0b0fd27c5  gcc/m2/gm2-libs/SysStorage.mod
! 050c8aad640c3ae15c9caf8034ae01cd  gcc/m2/gm2-libs/TimeString.def
! 527fcec80d38e115b2be209ca0715727  gcc/m2/gm2-libs/TimeString.mod
! 987e1ca20f9ebe6e09445caf454488d7  gcc/m2/gm2-libs/UnixArgs.def
! 851d5a6cdf1050d6ea527165112ee5b0  gcc/m2/gm2-libs/cbuiltin.def
! 55ca8d6dccef5c8e25c905db1bbf4ff6  gcc/m2/gm2-libs/cgetopt.def
! ddb30d1656f81b105ea85cd9320d03ca  gcc/m2/gm2-libs/config-host
! 01f8d0d7843920a5243b1082bc6b26a8  gcc/m2/gm2-libs/config-host.in
! e30a8257687056afaefe36ebbb18c783  gcc/m2/gm2-libs/cxxabi.def
! 4b2fa034c3f3e5c5069e63acf89a95fc  gcc/m2/gm2-libs/dtoa.def
! 887ca5008b260d5ab6411d36e1c62f6f  gcc/m2/gm2-libs/errno.def
! 3dd9948901dd61e721a048e750bee91e  gcc/m2/gm2-libs/gdbif.def
! 438a7b090a73d8198c9d428d08a2a025  gcc/m2/gm2-libs/gdbif.mod
! 367a759a235a1fba4e8b412bee35c211  gcc/m2/gm2-libs/gm2-libs-host.h.in
! ebfee068547d24bec77889574ce03cb3  gcc/m2/gm2-libs/ldtoa.def
! 601d2f7914f36607b76a4d9ff30a14ba  gcc/m2/gm2-libs/libc.def
! 673ac738d27feb179e3a6bf66bcf239a  gcc/m2/gm2-libs/libm.def
! 23d6611e3c8ba8ad77a9c8572a9df86e  gcc/m2/gm2-libs/sckt.def
! f5e3505ca9e35809b0e816412f6646b2  gcc/m2/gm2-libs/termios.def
! 2c9b4a2c42506275158fb4edb23fd384  gcc/m2/gm2-libs/wrapc.def
  ccaa683ba714cdbeafc186000b6c8dd1  gcc/m2/gm2config.aci.in
! 271930c30354b62b9b8260f4262366e9  gcc/m2/gm2spec.cc
! 40898863b66a4914ce1a79d2636ded72  gcc/m2/gm2version.h
! b773646bf260ce040f22648140172958  gcc/m2/images/LICENSE.IMG
  28628f59c0ab73240ccd25e2be0bcb6a  gcc/m2/images/gnu.eps
  d41d8cd98f00b204e9800998ecf8427e  gcc/m2/images/gnupng
  d02bb7b852c2149c474702f929b72f2d  gcc/m2/init/README
! 2bec82e138e801417f0fbaa5609096b6  gcc/m2/init/mcinit
! b6886c959d02079a74d01380ece89bd4  gcc/m2/init/ppginit
! 134ee7ee8b3ce07dfcc9a49f07931a6e  gcc/m2/lang-specs.h
! 2f7cdcd252396f4ea8ba72a0c34b800f  gcc/m2/lang.opt
! 4bc145ddc086daeb8716415130839103  gcc/m2/m2-tree.def
! 5916f095ac4ecbed229327a97396debd  gcc/m2/m2-tree.h
! d35ce9754008f6579adc7eed275e8ab3  gcc/m2/m2.flex
! 2102606ee54baae50d1c6a8d12764045  gcc/m2/m2pp.cc
! 3be1afa2f5f01bab267841426102eff8  gcc/m2/m2pp.h
! d529b8158b03d8e0825ba5673228ef6f  gcc/m2/mc-boot-ch/GBuiltins.cc
! f079be95a973fca7bf8bd0b8a4ef1e46  gcc/m2/mc-boot-ch/GM2LINK.c
! 8dad4cdce455601a07fc147ee4359eb8  gcc/m2/mc-boot-ch/GSYSTEM.c
! b425fd4ab90a6670ffef76fb1d0f6fc2  gcc/m2/mc-boot-ch/GSelective.c
! 65c38a8f1ff8370d98cccf4b2942c500  gcc/m2/mc-boot-ch/GSysExceptions.c
! 50ad9c51cb3bae92cc87e9e5412fe451  gcc/m2/mc-boot-ch/GUnixArgs.cc
! 366da8b4793e830b1d5639801cd2ee64  gcc/m2/mc-boot-ch/Gabort.c
! afe50741aaf469e7a3cce04270f0c25f  gcc/m2/mc-boot-ch/Gcbuiltin.c
! 912d74a55306f82437ceb12edf2db24c  gcc/m2/mc-boot-ch/Gdtoa.cc
! 8555998a8bbccabddd323ec941aeb9a9  gcc/m2/mc-boot-ch/Gerrno.cc
! 48f580665edf5d52e875a54a0be1c124  gcc/m2/mc-boot-ch/Gldtoa.cc
! ad4c22b0be003b98370aec1426d54293  gcc/m2/mc-boot-ch/Glibc.c
! 987e0bf92497f63f7744fc3267a4dc62  gcc/m2/mc-boot-ch/Glibm.c
! f12b5d92f02bece460f3e1d9897603a1  gcc/m2/mc-boot-ch/Gm2rtsdummy.cc
! 1bb0ba964a32244b01a85422a991e3c8  gcc/m2/mc-boot-ch/Gmcrts.c
! 80a90c4ca87adbf49344b8ba2b88633a  gcc/m2/mc-boot-ch/Gmcrts.h
! cf651796966b51f2625a9b223cc2d21e  gcc/m2/mc-boot-ch/Gnetwork.h
! 741c62229b8655838d85343c23f2a40e  gcc/m2/mc-boot-ch/Gtermios.cc
! f00ac9330702330b3951fde2d6de3b1e  gcc/m2/mc-boot-ch/Gwrapc.c
  ce2b38596d501052b9fae2df29aafa66  gcc/m2/mc-boot-ch/README
! cf33c9860660686a84a7215e720816cc  gcc/m2/mc-boot-ch/m2rts.h
! 1570403427bb6e3aee5530372ae4ba97  gcc/m2/mc-boot-ch/network.c
! d198cdd621fe540917ba7c4d64b0828a  gcc/m2/mc-boot/GASCII.cc
! 7d8d8dcf2c6a24f102a038958575d8ac  gcc/m2/mc-boot/GASCII.h
! 7c6425847b77b1f58e9f021e5a5d17f9  gcc/m2/mc-boot/GArgs.cc
! 5ab43d14342a211dbaf72f17524e71ad  gcc/m2/mc-boot/GArgs.h
! 5c071d0242f411a1f2caea686641ccad  gcc/m2/mc-boot/GAssertion.cc
! f9c5d084f465352a97dc03a8865b11c9  gcc/m2/mc-boot/GAssertion.h
! 778bda9f1c7f4a298e17277da5da41b7  gcc/m2/mc-boot/GBreak.cc
! e4f0c182b812d80ad2fa538e1738a4ba  gcc/m2/mc-boot/GBreak.h
! d5f1403e3be9867d18d65b78fa47faf6  gcc/m2/mc-boot/GCOROUTINES.h
! 46fe55a5680f1ab4edd5c131496686f0  gcc/m2/mc-boot/GCmdArgs.cc
! af72b0909c7ec7d9e8e66f71c849bdd5  gcc/m2/mc-boot/GCmdArgs.h
! b0bbd0d1098a0ba2256e1150d1272ac0  gcc/m2/mc-boot/GDebug.cc
! 37d360f7e36fc1da7d7b99fb2a9a1933  gcc/m2/mc-boot/GDebug.h
! d2d0183c0e521aeec97bb6103fcb7a4a  gcc/m2/mc-boot/GDynamicStrings.cc
! 975ef9e0f2667fa71d6c298497a7cbe7  gcc/m2/mc-boot/GDynamicStrings.h
! bbf43cc6e6be26c48c851cb1122abb3e  gcc/m2/mc-boot/GEnvironment.cc
! 7b0f103d106e0df360747078c19e8008  gcc/m2/mc-boot/GEnvironment.h
! 4fb30e9ba68cc559430a57db83aefb09  gcc/m2/mc-boot/GFIO.cc
! 06019acc5e8e82cbe0b278ca86fdb442  gcc/m2/mc-boot/GFIO.h
! b4f287539f3c5169dc1ae5a5288cab78  gcc/m2/mc-boot/GFormatStrings.cc
! b74dfed7b7d79571a34d8200d27ee26d  gcc/m2/mc-boot/GFormatStrings.h
! 23aa96b538e71a24c70592c5beb86841  gcc/m2/mc-boot/GFpuIO.cc
! b8d8889e96fe71d6fc6e9ffeb58f3a41  gcc/m2/mc-boot/GFpuIO.h
! ba54cf1f658729d1be420cd21e6b3e50  gcc/m2/mc-boot/GIO.cc
! eeff5e8ab0a467da8073f80d0ec4c6a9  gcc/m2/mc-boot/GIO.h
! 904748eef6b4f4f8dfd50fc791a637ad  gcc/m2/mc-boot/GIndexing.cc
! 4b164b89dbdee73eab0ed6273c126036  gcc/m2/mc-boot/GIndexing.h
! 97268ba25d6412d430eb97221977ef9e  gcc/m2/mc-boot/GM2Dependent.cc
! 32cdec1e78a9995a234cd4c2005fdfb7  gcc/m2/mc-boot/GM2Dependent.h
! fce8e2de853fca049cfd17377d38c3a7  gcc/m2/mc-boot/GM2EXCEPTION.cc
! 3ef7a33055f85a49626c3fb027c07813  gcc/m2/mc-boot/GM2EXCEPTION.h
! a2498949de306ebf0d0969e9d5eb38d8  gcc/m2/mc-boot/GM2LINK.h
! a3985360fc876c9a51efb84449d84e8c  gcc/m2/mc-boot/GM2RTS.cc
! 69befd62c6e065b96c1ad6ba4bde65c8  gcc/m2/mc-boot/GM2RTS.h
! 2e7e39207972179fe86fa81c899f13e3  gcc/m2/mc-boot/GMemUtils.cc
! ad2aa0ce416c77acfe2b76e06ead1d9b  gcc/m2/mc-boot/GMemUtils.h
! c37904b4f301a945c68c976b2fa131ec  gcc/m2/mc-boot/GNumberIO.cc
! d7dca9439958a4625a264baf5cb30ad0  gcc/m2/mc-boot/GNumberIO.h
! 80e57da7c2547561d4e5fd6238d5bf05  gcc/m2/mc-boot/GPushBackInput.cc
! 1499912a603b94034135cfe4efe8b69b  gcc/m2/mc-boot/GPushBackInput.h
! 5e0ab171f4bf9bd08a9dd5db1dc5a8ae  gcc/m2/mc-boot/GRTExceptions.cc
! 00a4693b96b3707173b57a1b692e70f1  gcc/m2/mc-boot/GRTExceptions.h
! 9f9be1bdb177168567e594e63bca1098  gcc/m2/mc-boot/GRTco.h
! cbc3df9edfaaff1e81dad348972462d3  gcc/m2/mc-boot/GRTentity.h
! 7e5c2fa1b06e835fa7e0658dd7435537  gcc/m2/mc-boot/GRTint.cc
! 9db19707d52c687e98dd0836e90892f9  gcc/m2/mc-boot/GRTint.h
! 5a7456325f6c13a63f43917e154ae48d  gcc/m2/mc-boot/GSArgs.cc
! 0374d0fda535bd35839a23fb9748cd54  gcc/m2/mc-boot/GSArgs.h
! 73a8c5fe0154a2d0e2915e6cc24fc414  gcc/m2/mc-boot/GSFIO.cc
! 7cf42fb02b8b0cfd52be03c5eebaa715  gcc/m2/mc-boot/GSFIO.h
! 76c610bf878ecda77dcc18cab4c93d47  gcc/m2/mc-boot/GSYSTEM.h
! f4d3b1f8e74ab5cd68bf044821e9807b  gcc/m2/mc-boot/GSelective.h
! 861e6ba3ab1e1c902fb532f7d20d624a  gcc/m2/mc-boot/GStdIO.cc
! 31f65d8f7e5736a3a971561a158d845c  gcc/m2/mc-boot/GStdIO.h
! 6a23f3afdba3ebbbf1dec9fbd5b98ffa  gcc/m2/mc-boot/GStorage.cc
! b8e884b1fbfe023dffe4fef41f3d5775  gcc/m2/mc-boot/GStorage.h
! ba6ef800e39093d66504e75794824a72  gcc/m2/mc-boot/GStrCase.cc
! c2b76a0d0505d97727f87772aff69d37  gcc/m2/mc-boot/GStrCase.h
! 64f7c59eba4fef3bbbdd059a638f1588  gcc/m2/mc-boot/GStrIO.cc
! 0c1f8b68ae599ac6c3838fb988cb5045  gcc/m2/mc-boot/GStrIO.h
! 4decc58668e7136575b60b97faa5d475  gcc/m2/mc-boot/GStrLib.cc
! b72d1fa8ccc75fc32c6de9bb4c0a4bb4  gcc/m2/mc-boot/GStrLib.h
! cb166ce24a015628def33bc416a0aae0  gcc/m2/mc-boot/GStringConvert.cc
! 280884233bc94231351093080759a066  gcc/m2/mc-boot/GStringConvert.h
! 55d56cb42d4701315026296a2e0a3f80  gcc/m2/mc-boot/GSysExceptions.h
! c3eb9a4c9cb773b5740d158b90a05cef  gcc/m2/mc-boot/GSysStorage.cc
! afb83f5814fe32e48e2ec2e2116324e5  gcc/m2/mc-boot/GSysStorage.h
! f2e1c89d20f26e79543126230957d6ee  gcc/m2/mc-boot/GTimeString.cc
! b83fe6e3fffff61c3db1c47256ab1acb  gcc/m2/mc-boot/GTimeString.h
! 823bafa37aee847f942c580efcf5330c  gcc/m2/mc-boot/GUnixArgs.h
! 8117ee0032395458c141f82f4795e2ab  gcc/m2/mc-boot/Galists.cc
! 392b1e0c4edc9ddbd6264fd336a26e37  gcc/m2/mc-boot/Galists.h
! d2d6725c2e28f60027c4936f37360ee5  gcc/m2/mc-boot/Gdecl.cc
! 56b83004d70600b701276f187b5b33e9  gcc/m2/mc-boot/Gdecl.h
! a19b58d529e7458adbd08320a4b7c2b9  gcc/m2/mc-boot/Gdtoa.h
! 9ee62c1541b929cc35112061c5ae7e90  gcc/m2/mc-boot/Gerrno.h
! c409eebb82bfb45f54fe0c5f2d0ce10b  gcc/m2/mc-boot/Gkeyc.cc
! 8a628d11bcf33704f48e782caf2c859f  gcc/m2/mc-boot/Gkeyc.h
! 4b6a144b65017a814e4dabe9665be10a  gcc/m2/mc-boot/Gldtoa.h
! 4f07d3bedde0e1f1cc3fdc0dbab3e3e7  gcc/m2/mc-boot/Glibc.h
! d9e96d42673ba10d01a156dc392d820e  gcc/m2/mc-boot/Glibm.h
! e8dca96adbc9077e1571e962e70c9b25  gcc/m2/mc-boot/Glists.cc
! 9e947dbdb4340cefa01d925739403bef  gcc/m2/mc-boot/Glists.h
! 11ba90d4ef9ca406f55b7443ade3ab4d  gcc/m2/mc-boot/GmcComment.cc
! e423c29a0a67729080f794117f52ac70  gcc/m2/mc-boot/GmcComment.h
! 2334c2ba6a23b6938ccddf9cbade481d  gcc/m2/mc-boot/GmcComp.cc
! 9b97271295de5cbfae1d1c4a76543e02  gcc/m2/mc-boot/GmcComp.h
! 8277bd718ece094e00372babe5e240c6  gcc/m2/mc-boot/GmcDebug.cc
! 6c306e77c14ee3f2c9c9e2de9b894794  gcc/m2/mc-boot/GmcDebug.h
! f3284db5b1ce5968d7a337eff1682ffd  gcc/m2/mc-boot/GmcError.cc
! 3d68fc8b0296ddcbd125274f1f89017b  gcc/m2/mc-boot/GmcError.h
  5d85bb47d927f4ca22639c9f2cf2e391  gcc/m2/mc-boot/GmcFileName.cc
! 03afa93dd82140e005aa84a66ebc8f30  gcc/m2/mc-boot/GmcFileName.h
! 52e66fc8d38978e4af29d8bbf0e260d0  gcc/m2/mc-boot/GmcLexBuf.cc
! 829e3676d633949ee81e007fc2d94873  gcc/m2/mc-boot/GmcLexBuf.h
! 05d2499c4247a7b75f2aa68b7eb62d75  gcc/m2/mc-boot/GmcMetaError.cc
! 3464a78b5e587657c21df5907c6753b5  gcc/m2/mc-boot/GmcMetaError.h
! 59e53813fe5268519d387c310135b6b4  gcc/m2/mc-boot/GmcOptions.cc
! 55f12059362728c14454e3a2876a7ced  gcc/m2/mc-boot/GmcOptions.h
  03c7bb4d4d1e7eb24913b650b3df3fdf  gcc/m2/mc-boot/GmcPreprocess.cc
! 7d70c53c2424519894eafb9409dd5300  gcc/m2/mc-boot/GmcPreprocess.h
  1a459e67174f26c134a9e248876675f8  gcc/m2/mc-boot/GmcPretty.cc
! 4c65a5f126bf8e2ea7faeb90dde7388b  gcc/m2/mc-boot/GmcPretty.h
  2861b3287a3ed9e1611630a4eec40f4c  gcc/m2/mc-boot/GmcPrintf.cc
! 08581166656bd7a25de8f52ccea027b0  gcc/m2/mc-boot/GmcPrintf.h
  9c52779ab3513ce4cdcf8c7754a697a1  gcc/m2/mc-boot/GmcQuiet.cc
! 6933dbb82fe95c6789b8bde1c7bf6526  gcc/m2/mc-boot/GmcQuiet.h
  c885e1f2d8cb12d68b7216d9dd8e81e6  gcc/m2/mc-boot/GmcReserved.cc
! 456576e228417a7098d0ef1cb8483ad8  gcc/m2/mc-boot/GmcReserved.h
  58aeed5456d7409aa931c0f290d6f32e  gcc/m2/mc-boot/GmcSearch.cc
! 924981725d6c53c8eb7de2e41b18a47a  gcc/m2/mc-boot/GmcSearch.h
! 7b7e047f3aa219f4f4d6b97fcc0ca75d  gcc/m2/mc-boot/GmcStack.cc
! 38a55d01295fc6723e8cc9c28800f037  gcc/m2/mc-boot/GmcStack.h
! 6cfc6899e652d0067d01d687b0dc185a  gcc/m2/mc-boot/GmcStream.cc
! a5011bf97d3850b06662a9a99d03d9a6  gcc/m2/mc-boot/GmcStream.h
! 7f2769a01cb04aeb08a8f6ccaa72cc3c  gcc/m2/mc-boot/Gmcflex.h
! 629660437179c5284e0013a38e1448ec  gcc/m2/mc-boot/Gmcp1.cc
! da43aff9a655e4c9072c7347fd5148e6  gcc/m2/mc-boot/Gmcp1.h
! 45f988e6410f6b88f6d5ca6bf3a083e2  gcc/m2/mc-boot/Gmcp2.cc
! 480d37c0ee21119c586335f4bcb34ac4  gcc/m2/mc-boot/Gmcp2.h
! 09306af07221a9f13eab1bc3e498f674  gcc/m2/mc-boot/Gmcp3.cc
! 1aa2c2f6ca2da0031744c0a80fdf2dee  gcc/m2/mc-boot/Gmcp3.h
! 6ff38431f180e6bcba0586ee1db58832  gcc/m2/mc-boot/Gmcp4.cc
! 2c7f9c649fa005e253c58689f8bd0003  gcc/m2/mc-boot/Gmcp4.h
! 28f3ef04d9170cec906f9a39495d5cf4  gcc/m2/mc-boot/Gmcp5.cc
! eaf002ae686b2d160f600b8910d2747b  gcc/m2/mc-boot/Gmcp5.h
! af9299b5ce8d9a60594b7f739138454f  gcc/m2/mc-boot/GnameKey.cc
! b0245f510f22f2cc4e4a6582fcf05177  gcc/m2/mc-boot/GnameKey.h
! ab794d8617d0503c12863361d3c0cf3c  gcc/m2/mc-boot/GsymbolKey.cc
! 5add4738e0217ac997859ab43b6aa680  gcc/m2/mc-boot/GsymbolKey.h
! 3b34a06fdbe2a83468780c7f747743d8  gcc/m2/mc-boot/Gtermios.h
! 1b6ab62f766ba15ddade16ca687059b3  gcc/m2/mc-boot/Gtop.cc
! 335148a2cde7e750334d39f9c6b885b4  gcc/m2/mc-boot/Gvarargs.cc
! a7f899a711f662979b30b752dd6b66e3  gcc/m2/mc-boot/Gvarargs.h
! 4b0a5a9736de706d3bb691e014b2b489  gcc/m2/mc-boot/Gwlists.cc
! 25c7edf9cf9d5e840a757e238151f628  gcc/m2/mc-boot/Gwlists.h
! 0c156e32adebbf499ef39678abdbee73  gcc/m2/mc-boot/Gwrapc.h
  0353f1ec4e4fbfb6eb0e9080da3e5aef  gcc/m2/mc-boot/README
! c0e0ea96eb989af059169f975e3d26b2  gcc/m2/mc/Indexing.def
! cf54c0a848bb31b3f9391957acebb6f1  gcc/m2/mc/Indexing.mod
  f8f98e9ffb642286dd61fd52be017824  gcc/m2/mc/README
! c8a5bed8b6ce7d5630f69c322d99f68e  gcc/m2/mc/alists.def
! 3f082b85bcba538b8ca83ab04f2e9468  gcc/m2/mc/alists.mod
! a5c0cc09103bcabdcd7c8cd7a094a7b6  gcc/m2/mc/decl.def
! 1026afdbf17ad3dfa7457369ced2ed1e  gcc/m2/mc/decl.mod
  73d148ed772aa468cc7657a403f3edc2  gcc/m2/mc/decl.mod-extra
! 87a87ccec6259038a0a8fc93e4e771b8  gcc/m2/mc/keyc.def
! edc98bae80c1969b402bc038f16a1905  gcc/m2/mc/keyc.mod
! 4ac0b421e8e393a51d793721561e2c02  gcc/m2/mc/lists.def
! b1ce15cdca85d0fc5edcc06ad7af88d4  gcc/m2/mc/lists.mod
! dd39597ef9ccaa591262fd61a3a9876c  gcc/m2/mc/m2flex.def
! ad8da373d7a83a514881b86435703fbf  gcc/m2/mc/mc.flex
! 55e90d8211fde7cd8cc4e0eaef4e86e2  gcc/m2/mc/mcComment.def
! 4998bd32208981c7d492254acd7bf518  gcc/m2/mc/mcComment.h
! 0fd53f595c1c19875cc29c8cdc34601c  gcc/m2/mc/mcComment.mod
! 65c570626210968710e3a0d01bbcaeec  gcc/m2/mc/mcComp.def
! 62f7d3bce5f68d06b766dd6930f1250d  gcc/m2/mc/mcComp.mod
! 1454f1baff41c0c1dc157598b85f6678  gcc/m2/mc/mcDebug.def
! 1cbf3c47e3d6e86fdb74121504cb1e03  gcc/m2/mc/mcDebug.mod
! a5b47dfd12218d5773d742faac976f9d  gcc/m2/mc/mcError.def
! bca952800de329da678917e35d53d457  gcc/m2/mc/mcError.mod
! 64bff005e7c40532a482ad5f11ad897f  gcc/m2/mc/mcFileName.def
! 92d57f222834ae5ef8015a7c18fd41cd  gcc/m2/mc/mcFileName.mod
! 92d8cfeba151f775aaa1352c0eef925d  gcc/m2/mc/mcLexBuf.def
! 7bc9ece8c99789bb3a78ed17909032c8  gcc/m2/mc/mcLexBuf.h
! 798de44d8c365fdcc59ed0b2a966be7d  gcc/m2/mc/mcLexBuf.mod
! 12cea64d47d9e9a8a54a8976636f1847  gcc/m2/mc/mcMetaError.def
! 38fb6104395df141b34e72c3488aeaf3  gcc/m2/mc/mcMetaError.mod
! a2b4b55a7da7c280f8a1d016e2a2a7fe  gcc/m2/mc/mcOptions.def
! e863d4fbab6c53c46a11075dee19fe6a  gcc/m2/mc/mcOptions.mod
! 88e1c291dbb347c9b8e455fc12885980  gcc/m2/mc/mcPreprocess.def
! 2c5ddde8e107205d5633c4336b6231be  gcc/m2/mc/mcPreprocess.mod
! f360538db80ecc869097116a2c3643e0  gcc/m2/mc/mcPretty.def
! 08d3cbaf109062c82790b19eb2217b27  gcc/m2/mc/mcPretty.mod
! 7e9c9957af18e3dc8a71e447625fbd92  gcc/m2/mc/mcPrintf.def
! 0f36d4c174c63e00ffdd82cf16e51420  gcc/m2/mc/mcPrintf.mod
! d86aa50374b55b3547f4889590b95586  gcc/m2/mc/mcQuiet.def
! 5ebb1dc6c94975f335f8b04629fa7f41  gcc/m2/mc/mcQuiet.mod
! 0f43f248224b4b5bb4a966b921cfa5c1  gcc/m2/mc/mcReserved.def
! 0a46144ad9c331bdcad2241a6eb2547a  gcc/m2/mc/mcReserved.h
! c7d8735907d3f0a86eb6e6790db9185c  gcc/m2/mc/mcReserved.mod
! 02e42b24d2505cffc5da282de7b074d8  gcc/m2/mc/mcSearch.def
! 0ece1da0d39098cbf00b3a27fa8399ea  gcc/m2/mc/mcSearch.mod
! 00858ac081ada58c4fc6c53015df64aa  gcc/m2/mc/mcStack.def
! da5a50752f707dcd239c0a854d80046a  gcc/m2/mc/mcStack.mod
! 576f99c0d70837aca141eb329c7c7597  gcc/m2/mc/mcStream.def
! e39b435d9639c0d980ab42c594ed7c49  gcc/m2/mc/mcStream.mod
! d03821e7d070451f3c070caf819e53e5  gcc/m2/mc/mcflex.def
! ce083bdef4431a11976a51193f09df92  gcc/m2/mc/mcp1.bnf
! 786954c1ef85a4327bfdbbc2213db5a3  gcc/m2/mc/mcp1.def
! 88150d42fc7b1d79062b72ff6c29b704  gcc/m2/mc/mcp2.bnf
! 3f2ce264ab9d1faadf89cdc0df0a749f  gcc/m2/mc/mcp2.def
! a761b05b9509ba62724a163a222d0162  gcc/m2/mc/mcp3.bnf
! 413ad4d06b3b739ee99538ed1813ec12  gcc/m2/mc/mcp3.def
! a8e510bead15e080d9c35aa5e05dd8ae  gcc/m2/mc/mcp4.bnf
! 6b619c4d880d3b0e1597611c554bbc1c  gcc/m2/mc/mcp4.def
! 743ba8a3f2fabc749ecaade312d3dc77  gcc/m2/mc/mcp5.bnf
! 9d1ad1793876bc5e482102dc04eeee81  gcc/m2/mc/mcp5.def
! 76a1d7c2a0d3d7e4b250e6d965560912  gcc/m2/mc/nameKey.def
! b20c088c2c3c5434b3bf5ae7e501b81c  gcc/m2/mc/nameKey.mod
! 53b911ed75149d7689e06b597163010d  gcc/m2/mc/symbolKey.def
! 5df750c3322f664b92c484876005096f  gcc/m2/mc/symbolKey.mod
! 5433ea15725ca366f035fe276d97c7b5  gcc/m2/mc/top.mod
! bee418b038f1597528675ae0a5270a07  gcc/m2/mc/varargs.def
! 187b56cc77dd9c0bc2e7867c63e34eaf  gcc/m2/mc/varargs.mod
! e3d909369325324f588ae3844a6d9ca9  gcc/m2/mc/wlists.def
! 404d6a88948a5f1a85acbd032f6ded93  gcc/m2/mc/wlists.mod
! a31d91d96b7b9ffe2016b112c2aaca3e  gcc/m2/pge-boot/GASCII.cc
! 12e3b5b0e23988c12071db1db6ad7d4a  gcc/m2/pge-boot/GASCII.h
! 3fd373c754cd419b914717d3fc0fce70  gcc/m2/pge-boot/GArgs.cc
! 7eb9a9ec0febcd1339955900408f27ae  gcc/m2/pge-boot/GArgs.h
! e16b6e6bd1a1e741172107599487aa29  gcc/m2/pge-boot/GAssertion.cc
! 2e8de5da383cd9742f3690a97c3d1bfd  gcc/m2/pge-boot/GAssertion.h
! 1d5521f864a14683eae4803569c3306c  gcc/m2/pge-boot/GBreak.h
! d0e091cc2a49335ff6a88137851d46ca  gcc/m2/pge-boot/GBuiltins.cc
! a56134a09795cf823baca54ccbda0aa5  gcc/m2/pge-boot/GCmdArgs.h
! 16ab45178d3dbd80bad144ea2a04c941  gcc/m2/pge-boot/GDebug.cc
! aa980130a4e42876c6aba1910dafc9cd  gcc/m2/pge-boot/GDebug.h
! 32f905a216d3f8d3f5fb8f65c1592bc5  gcc/m2/pge-boot/GDynamicStrings.cc
! ef5c4b70b8ff883dfc423a1c1337b6f5  gcc/m2/pge-boot/GDynamicStrings.h
! 62d7bc5ed9fbca53c458948e7a163037  gcc/m2/pge-boot/GEnvironment.h
! 7b5648913259b3add2e1469efa1048dc  gcc/m2/pge-boot/GFIO.cc
! e364c6540b7b56f13c6543061aca863e  gcc/m2/pge-boot/GFIO.h
! aa64339f8e05685b10506de5e804fbf7  gcc/m2/pge-boot/GFormatStrings.h
! 17c69ce5ad26ec6d950758e59267770c  gcc/m2/pge-boot/GFpuIO.h
! 5f235dac04c8f5bca737f7e0bea6a9ab  gcc/m2/pge-boot/GIO.cc
! d86e07f12e63333c02da755a799222b0  gcc/m2/pge-boot/GIO.h
! b3f1d3e6b5ff01ae2cd410d6728d96d6  gcc/m2/pge-boot/GIndexing.cc
! 7d268babe7a564d36af69615fd865ad0  gcc/m2/pge-boot/GIndexing.h
! 6247a65d263073c051b5626593cfbb74  gcc/m2/pge-boot/GLists.cc
! abb3316c842590b5595a7da274e98c2c  gcc/m2/pge-boot/GLists.h
! f4984acee3369bfe67c82430581ec5f2  gcc/m2/pge-boot/GM2Dependent.cc
! 346ecd78b960160ce698c1845940b24c  gcc/m2/pge-boot/GM2Dependent.h
! afd73419ba275a51d5b10cfbbeb21468  gcc/m2/pge-boot/GM2EXCEPTION.cc
! 0d0959c61cc9764ccb3d1170f9c1c750  gcc/m2/pge-boot/GM2EXCEPTION.h
! f079be95a973fca7bf8bd0b8a4ef1e46  gcc/m2/pge-boot/GM2LINK.cc
! b9edfcb46d50e67f2bc5d3cd49c36be7  gcc/m2/pge-boot/GM2LINK.h
! e74fde70cee4662123f1d40a149aca9d  gcc/m2/pge-boot/GM2RTS.cc
! 69d6db185a25a881ec2dc00ae9be67cf  gcc/m2/pge-boot/GM2RTS.h
! 0747761765ba899427947f49c5ecb777  gcc/m2/pge-boot/GNameKey.cc
! 4137bda88d004d174f5e9b5165b33d43  gcc/m2/pge-boot/GNameKey.h
! 8ebe161f9b32eb46f871b65317ec516f  gcc/m2/pge-boot/GNumberIO.cc
! 53bcfc024356932333e61f9288969135  gcc/m2/pge-boot/GNumberIO.h
! 02bd3ef2a6f7ddede0df7b869406965b  gcc/m2/pge-boot/GOutput.cc
! 7fc07aac3951c98753ef8e8bee7ae243  gcc/m2/pge-boot/GOutput.h
! 4eb7708623671a56badaffd6f8b3c7ab  gcc/m2/pge-boot/GPushBackInput.cc
! bf98574ff15e0a4dd65d72c20309720b  gcc/m2/pge-boot/GPushBackInput.h
! 91104538d6311d7f416b8c458331b3b2  gcc/m2/pge-boot/GRTExceptions.cc
! 127e2466f62c4d90436021be0130717e  gcc/m2/pge-boot/GRTExceptions.h
! 0c9bf751db464271f4957f1fed68f79b  gcc/m2/pge-boot/GRTco.cc
! 639c933064353cbf470e2ec89ce46967  gcc/m2/pge-boot/GSArgs.h
! 7f0ce8bb1ee58eae02b66caaf2b7e030  gcc/m2/pge-boot/GSEnvironment.h
! e4f1bad210ae2be27c281ff025ccaeed  gcc/m2/pge-boot/GSFIO.cc
! 51a05f5194240a46dde6560a6146568d  gcc/m2/pge-boot/GSFIO.h
! 682e2e2dbe61372993b40254d9c5b1ff  gcc/m2/pge-boot/GSYSTEM.cc
! 7a5071fc28edd87118aa8613db88dd16  gcc/m2/pge-boot/GSYSTEM.h
! 66c04c514049a38dc69b953c92a8ff3e  gcc/m2/pge-boot/GScan.h
! e3ee06fe0ec247e8bb5f34f431565af3  gcc/m2/pge-boot/GSelective.cc
! 9a12505896284a2883b5834355f75b0e  gcc/m2/pge-boot/GStdIO.cc
! c999493d3e57a78e7989806d1dcf38c2  gcc/m2/pge-boot/GStdIO.h
! 900458edb475f98da9a940d1d8ac2a6b  gcc/m2/pge-boot/GStorage.cc
! 29062371ecc4326a5214afe563239472  gcc/m2/pge-boot/GStorage.h
! 0713888f8bc750aa7d6c35362583be57  gcc/m2/pge-boot/GStrCase.cc
! 2ecb4c66a533aa643e60f752326f2026  gcc/m2/pge-boot/GStrCase.h
! 0f9231f9a05b6201a012cd983bdbe377  gcc/m2/pge-boot/GStrIO.cc
! b29988e06ae09971a5eaf1e2d4a80c23  gcc/m2/pge-boot/GStrIO.h
! 5f8a0c23cbb2e0f7e7fbed2388c39949  gcc/m2/pge-boot/GStrLib.cc
! 297fb37e0621abb48825e897eb50e8c5  gcc/m2/pge-boot/GStrLib.h
! 35168e98e601543ff11edfd6d94bf0a3  gcc/m2/pge-boot/GStringConvert.h
! edabc53fc74291ddec8e6ad047cb78ff  gcc/m2/pge-boot/GSymbolKey.cc
! 951249943ef21fc3cd97d79d5c147b67  gcc/m2/pge-boot/GSymbolKey.h
! 83fb71a782c34240cc62ce5714b29098  gcc/m2/pge-boot/GSysExceptions.cc
! 6d97799da56bde7045e88d8bac965388  gcc/m2/pge-boot/GSysExceptions.h
! 7dc5bd3d1fba4e2b7ae2e725135720e2  gcc/m2/pge-boot/GSysStorage.cc
! a9857930f2fca856b2eb85ec24f5969b  gcc/m2/pge-boot/GSysStorage.h
! df81ed6e4d2051ab3bdeef10905ba4f1  gcc/m2/pge-boot/GTimeString.h
! ebeb8d70d500da8ab0e515c9d398c662  gcc/m2/pge-boot/GUnixArgs.cc
! e1e3b125a9e3d32443675d176e3a7914  gcc/m2/pge-boot/GUnixArgs.h
! 366da8b4793e830b1d5639801cd2ee64  gcc/m2/pge-boot/Gabort.cc
! dea58cd33c1656745ed2d81464a72eac  gcc/m2/pge-boot/Gbnflex.cc
! 4089c3cd05276a84afcbda725c6580e5  gcc/m2/pge-boot/Gbnflex.h
! afe50741aaf469e7a3cce04270f0c25f  gcc/m2/pge-boot/Gcbuiltin.cc
! 99c30faffd1440b23f313848ef99cef6  gcc/m2/pge-boot/Gdtoa.cc
! a7c133b1bd8da00955cc8f8721ef5e49  gcc/m2/pge-boot/Gdtoa.h
! 822c195e14065d6eae14c189f5df8af4  gcc/m2/pge-boot/Gerrno.cc
! c66892a2033c8812a7ef5a79ade3e40c  gcc/m2/pge-boot/Gerrno.h
! 1b8a482c893da557a0d273b9738666ba  gcc/m2/pge-boot/Gldtoa.cc
! 443a875fb27ce0f3ea0e4f1ef02bd04b  gcc/m2/pge-boot/Gldtoa.h
! 590dfc252895f8d1ebff77cbc500d9f9  gcc/m2/pge-boot/Glibc.cc
! 74cfba789938152aed139a905756fcff  gcc/m2/pge-boot/Glibc.h
! 987e0bf92497f63f7744fc3267a4dc62  gcc/m2/pge-boot/Glibm.cc
! a5fa64c13b59b88634182dd4a8007c75  gcc/m2/pge-boot/Glibm.h
! 1bb0ba964a32244b01a85422a991e3c8  gcc/m2/pge-boot/Gmcrts.cc
! 80a90c4ca87adbf49344b8ba2b88633a  gcc/m2/pge-boot/Gmcrts.h
! cf651796966b51f2625a9b223cc2d21e  gcc/m2/pge-boot/Gnetwork.h
! 3fe312fabde3e732c4c8f0b43b26ee43  gcc/m2/pge-boot/Gpge.cc
! a29885f518cd099d12454c4db6c8df22  gcc/m2/pge-boot/Gtermios.cc
! 629333318707bf8ab347f43f4cdc0a0e  gcc/m2/pge-boot/Gtermios.h
! 68dbbf49c11244d747df93f1ce4556b0  gcc/m2/pge-boot/Gwrapc.cc
! b3e9929968a41cc65cb0d1415dff629f  gcc/m2/pge-boot/Gwrapc.h
  32de17e5bdad997b43794d330fc5dae5  gcc/m2/pge-boot/README
! 61ce245a6e0bca72188bce4133f9fb65  gcc/m2/pge-boot/m2rts.h
  8b33b15307e9ec5d5dc5f5ce40ae479b  gcc/m2/pge-boot/main.cc
! 1570403427bb6e3aee5530372ae4ba97  gcc/m2/pge-boot/network.cc
  18840892def349c0982fbe40111d6a91  gcc/m2/plugin/README
! c679c0f088b031992ae7a9af0e444a37  gcc/m2/plugin/m2rte.cc
! 26da30e80385c11ff7da320b8550c6d7  gcc/m2/target-independent/m2/Builtins.texi
  ff2cddc8e82d26e626d51a518f97024d  gcc/m2/target-independent/m2/SYSTEM-iso.texi
  803e2e2c4293fdba546b2340322ba0ce  gcc/m2/target-independent/m2/SYSTEM-pim.texi
! 8ab0186eb6d526b907b4fa9b698c2259  gcc/m2/target-independent/m2/gm2-ebnf.texi
! 17e6eaf355aab3e2ade6ab373c54ae09  gcc/m2/target-independent/m2/gm2-libs.texi
  3eed1eee3be7e4c14fa1d8f611ab2c90  gcc/m2/target-independent/m2/gpl_v3_without_node.texi
  90ef5843055db95072a5e0dcaad1e694  gcc/m2/target-independent/readme.txt
  7625da2d2347161386e94664ab2ceac9  gcc/m2/tools-src/README
! 815f4a4ccebfcf06a8890142ac8aca17  gcc/m2/tools-src/boilerplate.py
! 53e14ee5efd9483f20ac2c71208f84f3  gcc/m2/tools-src/buildpg
! c33c52aebb020de5414c2bce120606c5  gcc/m2/tools-src/calcpath
! 28c12fa6f06658127a966f3fa9cecfc7  gcc/m2/tools-src/def2doc.py
! 144395b707c4bc58b879a0aac1158481  gcc/m2/tools-src/makeSystem
! bd2a5307db4ad8df1913ab95bfed0690  gcc/m2/tools-src/mklink.c
! 14cfe8f0487c8fb81866af7d2fcfc02d  gcc/m2/tools-src/tidydates.py
  f9608e9005487c369e6c38949ab36fa1  gcc/m2/version.c
! d26ca7644b0c87e9afba723a82e83ffa  gcc/machmode.def
! 020ac57561ab532784bab813afc03f17  gcc/machmode.h
! f837fae8701f147a459629038cc2f8d1  gcc/main.cc
! 1f00c2ae711dcf705d2724bc1912adec  gcc/make-unique.h
! 1d5ea4bb37f372259c1adb57a7117d0b  gcc/match.pd
! ad32d5a9a041bd32e3123d6caba1f49d  gcc/mcf.cc
! c3df3b1477c180924303d737bff27c46  gcc/mem-stats-traits.h
! 6682c830fe9e4f4ab3d82e31b7e3aa49  gcc/mem-stats.h
! d0caebd6daf62e3e5144c3a086d8762c  gcc/memmodel.h
! 79626b77e9cb37fb56379d23159110d2  gcc/memory-block.cc
! 6372d090c19ccc21a579bd770f815b19  gcc/memory-block.h
! 5901d2378ef791b55799a6e04443fca9  gcc/mkconfig.sh
! ebce6bd265d67531664bf1d4203ca138  gcc/mode-classes.def
! bc246446b97c858bc3cd1ae581f45202  gcc/mode-switching.cc
! 6345379a31fea8924d61d305aae331cb  gcc/modulo-sched.cc
! e180d1930560f600f32938bf307f6af0  gcc/multiple_target.cc
! a2fed7a2244bb9b0027adc70211df092  gcc/mux-utils.h
! 3e21f8782c73debd9808afb0014fc9f2  gcc/objc/ChangeLog
! f81a2e6746035c07e9e9dac7756ac658  gcc/objc/Make-lang.in
! b2ccd327d5f58dcac13e441e7a2e0200  gcc/objc/config-lang.in
! 8f2dc56b3457df7ec0043be18397a760  gcc/objc/lang-specs.h
! 6ee597eebc36616db22727ff0fb81341  gcc/objc/objc-act.cc
! 38d47ddeb9eb0844af66c06249c796fd  gcc/objc/objc-act.h
! f6caba7367bd2eb1be06c49651f1cb6b  gcc/objc/objc-encoding.cc
! 73779348c8e405696c4a8fc89dbfbd88  gcc/objc/objc-encoding.h
! 1e6a49d1dc2f96f4e537306f01acfe5c  gcc/objc/objc-gnu-runtime-abi-01.cc
! 7e39c98f456522f101bca1362eadccb2  gcc/objc/objc-lang.cc
! 973c19f3a3c341e49fd7364d9d6551b9  gcc/objc/objc-map.cc
! ed689f68f303d6ca4885e72aefc9c08a  gcc/objc/objc-map.h
! 357daa77234ff8cb76bc23c61408ab08  gcc/objc/objc-next-metadata-tags.h
! 31fb9b35924534de1dd817e862e97db9  gcc/objc/objc-next-runtime-abi-01.cc
! d76f1f648440058b726884012dee334e  gcc/objc/objc-next-runtime-abi-02.cc
! d6c198e878e546711874d25453047822  gcc/objc/objc-runtime-hooks.h
! 7821acbc09c6fe959483529e9f3ae10d  gcc/objc/objc-runtime-shared-support.cc
! fda5f7307dfc5b2817741a8e4061e51d  gcc/objc/objc-runtime-shared-support.h
! dca9bc33b5b769910000a9513ae55357  gcc/objc/objc-tree.def
! 035a6ea6b55c67c0fb7b6658b5398e8c  gcc/objcp/ChangeLog
! b96d36f1290b06a5131e5b92d5adb66d  gcc/objcp/Make-lang.in
! 35a444dbc66b72d53307a36f689fb73d  gcc/objcp/config-lang.in
! 637bad28f1f1c9e646083bcda12973f9  gcc/objcp/lang-specs.h
! dadcfdc4c2674da3bb7172f1bda846a5  gcc/objcp/objcp-decl.cc
! 00955defd234ab63020a3c779a7f5384  gcc/objcp/objcp-decl.h
! 37450e1d0a6c6e763d0044f7bd625e1c  gcc/objcp/objcp-lang.cc
! b33ce8e63d322a6dc9496144d93baefb  gcc/obstack-utils.h
! e8768e7bddbebe0721552be034c8a56d  gcc/omp-builtins.def
! e58e255dd25cc87c001b000c84595973  gcc/omp-expand.cc
! b602f2dfec40ed722b5aee2bf7e3e8ac  gcc/omp-expand.h
! e82073a6eb81a0c7e2715dffb046afea  gcc/omp-general.cc
! 009c63d00f91f4e914f53c0ecdee6908  gcc/omp-general.h
! 711c590e7e6af52526895c4008ee7671  gcc/omp-low.cc
! c28514b051bd58349c8ce22a92021e01  gcc/omp-low.h
! 297d0a39fb8707da61286135c64c3cda  gcc/omp-oacc-kernels-decompose.cc
! 2ecc74cf5fab725715493514e0c7a5bb  gcc/omp-oacc-neuter-broadcast.cc
! 445c459485eb548b07a792c4386fa227  gcc/omp-offload.cc
! 28ad8898669e529dc47c566719759afc  gcc/omp-offload.h
! f306e4577c7212b03b7d7d40600be87f  gcc/omp-simd-clone.cc
! cab4dc96449aa496c527da19eb68206a  gcc/omp-simd-clone.h
! 96c1864b541cc301b6786fded2905d4f  gcc/opt-functions.awk
! 40ace02ead21ed7b7a3c920bf3edc8c7  gcc/opt-gather.awk
! d8b2b6a9d82bb173fd998a51344f0af3  gcc/opt-include.awk
! bddf69ca9602442193ea19533499aa04  gcc/opt-problem.cc
! 496b697c4fcf0d1d2a5aa7cb71f16571  gcc/opt-problem.h
! eb42aee5f98f8f74181aaf2a24242868  gcc/opt-read.awk
! 74e31942cc1d7fd16008890693f3f976  gcc/opt-suggestions.cc
! 2c7e0eb8c977caade89510a8b6c8f3ba  gcc/opt-suggestions.h
! aade09e8dd18cbb6a7850bc51e4b4de1  gcc/optabs-libfuncs.cc
! 04358f91cfd91036383d359cdf5b049f  gcc/optabs-libfuncs.h
! f8f3df70c36095097945cb03323a693b  gcc/optabs-query.cc
! 74bc067eadc826ac4c141664fff05ae4  gcc/optabs-query.h
! 6ddb0119ae19dadd9224a450c1e3e8b6  gcc/optabs-tree.cc
! 1c8dfa2acc3b3ae4f083ef0d55515944  gcc/optabs-tree.h
! 7c90f9a44f9f5dcffe2881376f3d9f63  gcc/optabs.cc
! 425698078194ac5f06fe487ecbba9dfe  gcc/optabs.def
! 65ccc81ac4251caf331468bf897a4d21  gcc/optabs.h
! 3dfd8d122c4d56a7627db3105cc0942f  gcc/optc-gen.awk
! 37e71871ee91c7863864c5d3d24d1985  gcc/optc-save-gen.awk
! be6cb7f9fbd9adbdd9060ceae7d37029  gcc/opth-gen.awk
! dfc051acb42805606a14abc06c814aa1  gcc/optinfo-emit-json.cc
! 23a32bb6db5cc27f62e96f583a074dd5  gcc/optinfo-emit-json.h
! b7bd0b389d55d860eaef6b9957616899  gcc/optinfo.cc
! 211aec5ccb8c1fb43ae8e372589b6652  gcc/optinfo.h
! 8d930e8b995aa12eff99ffbf3a815361  gcc/opts-common.cc
! 4fdbf157243a5a1f53d3cd5b903ba290  gcc/opts-diagnostic.h
! 3dc746f8732ba9f90e77f29ed51e1bed  gcc/opts-global.cc
! ba6821f04d884d92f0a7fed9a3232bb3  gcc/opts-jobserver.h
! 3f8ee1fa8366b8fe67bb94bb217ea300  gcc/opts.cc
! 81e9511e9d8153c5230e3aaa4b257cdc  gcc/opts.h
! cdfe5fd905e3710da59f22318bb32b03  gcc/ordered-hash-map-tests.cc
! d632bfde05b332853454952189949258  gcc/ordered-hash-map.h
! 9bb4a835deca56dfd0b9a1c21b5242d5  gcc/output.h
! e5e200ddde4fe3d249e573878068e55c  gcc/params.opt
! 6d5e1909a25f7d21fbdbc4466bfc2f10  gcc/pass_manager.h
! a5e166ed8d84e4d0e1a8b637fc1e86f4  gcc/passes.cc
! f79c56de25494e8b3f384aeb3297e5b1  gcc/passes.def
! e4b251c052d442b33f51258301aaf71f  gcc/plugin.cc
! b7c23a22025fc638936c8776d5141077  gcc/plugin.def
! 0d98256396aa9909139748326fe2ec5a  gcc/plugin.h
! 0481bdbe5b7af83015abd51ba8fc6abb  gcc/po/ChangeLog
! 529a60fd475862c5330245c858e844e1  gcc/po/EXCLUDES
  e4e35545a1fab9b9decbe9b06b468f72  gcc/po/be.gmo
! 33bff60c13db6df4b785fda4d7c1a88f  gcc/po/be.po
! 526c65acd465c005385d7aa0608f31d9  gcc/po/da.gmo
! 6b57d50f658a05c08895114cfad270dc  gcc/po/da.po
! 4d749d0dee87b2855ebab2533b7eb4ce  gcc/po/de.gmo
! e8abda7650f3617b2b8ab2a3818c3e91  gcc/po/de.po
  189b9d1af87594807b0d0e10036a64c3  gcc/po/el.gmo
! 7a0b32659f9925d4779af418dc037e30  gcc/po/el.po
! f8c66f2d87931e85c7dbf4b94f461633  gcc/po/es.gmo
! 2b3a8e34cfa385bcfbde79e9854088a7  gcc/po/es.po
! fcc59da6d201e71a314340459e140b80  gcc/po/exgettext
! 8ab0131ebe40c0627ccdd0ae4eb2ccc4  gcc/po/fi.gmo
! 9ef6318d9b7fa1cd65405bac3e43ec66  gcc/po/fi.po
! b69952007a6c0b694a2c0132d0975641  gcc/po/fr.gmo
! f1be67944956959b7170235739702ed6  gcc/po/fr.po
! df7ea335e1fc6e41c7c14462e5ff8e26  gcc/po/gcc.pot
! d4577eb6be47dc8290df0dfbd0145ecd  gcc/po/hr.gmo
! dd9e750eae8d56d19c1b493bd4926d80  gcc/po/hr.po
! 3c1cd9a547de9c7e50fd85d47abb5587  gcc/po/id.gmo
! be02a92175fe8108d4ce1c84debc91b7  gcc/po/id.po
! cc1f48b6706c3b9ab09d19ef09ca1379  gcc/po/ja.gmo
! 39851284220e72c7987248dcac89cc06  gcc/po/ja.po
! bbe550748750cc1921f378787759f926  gcc/po/nl.gmo
! f4a2e133afbb6c6c8ae76b8473fcde69  gcc/po/nl.po
! 21d3a1ecde54b91f1a643a7c2c18c901  gcc/po/ru.gmo
! ee58456fc9a486ec147a622fc22dc952  gcc/po/ru.po
! 081424ac286147f96e73ec707133e10c  gcc/po/sr.gmo
! 915fedf42a22beda3223e5ce8363c781  gcc/po/sr.po
! 3a2c0da7f424c7c115c227a371989a37  gcc/po/sv.gmo
! cab0d0772bf88171747b2580113d5714  gcc/po/sv.po
! 09b2826254b9f021ec8ebe47a78a2a30  gcc/po/tr.gmo
! d6cfd2bb35ae4e431401b369c27f2328  gcc/po/tr.po
! 3717123acaae95c5d1db919a6222a382  gcc/po/uk.gmo
! 1470e419b1eae1d3cdb649c88c63ca68  gcc/po/uk.po
! fa8106d896207062355af92b88108420  gcc/po/vi.gmo
! e12b1deb68452b4bdd2ef504153465e9  gcc/po/vi.po
! ee1babd2a362a332e0c4713a846aa62b  gcc/po/zh_CN.gmo
! 20ea00da24b95cc53bbdceff46069818  gcc/po/zh_CN.po
! 26080b5d6659bf16b31d74c084bbe8d2  gcc/po/zh_TW.gmo
! 5731bfd2f98a5282b1b620c325387094  gcc/po/zh_TW.po
! cbf955d69da4dcc78738dcadff3e0da4  gcc/pointer-query.cc
! 27a82acfef939a6105653100ca817c22  gcc/pointer-query.h
! 826e8613602ff66b4826777cca1f0f8c  gcc/poly-int-types.h
! 904c1ca12d0557980609eab0e8c559a7  gcc/poly-int.h
! 8d639c83a53e2fc94a92dd31a295728e  gcc/postreload-gcse.cc
! aa38a16aae72c73780bfc35f1192be5e  gcc/postreload.cc
! e391674d14a8a9d1efc43643c37b2f21  gcc/predict.cc
! a4947e8f0ddcbc7eb9df2fa43790fec7  gcc/predict.def
! 005dc519df06271b4a76719be9cc89ed  gcc/predict.h
! 2dd09489c1cad791c06fdbb8ea241d6b  gcc/prefix.cc
! 8021565db57821d78ba6cbcea1db05ed  gcc/prefix.h
! d8d3041d9147829b0574196df8e8311a  gcc/pretty-print.cc
! 6bf3ce6e1254c09f4a99258968675078  gcc/pretty-print.h
! 1764e0d6ed8c38df1de4431084f0689f  gcc/print-rtl-function.cc
! 65b4d7de0d5a0934535a96ad6109d192  gcc/print-rtl.cc
! cd1c1c50e1890c41fc844e7f5c6b03e2  gcc/print-rtl.h
! e8627c87ea01f9f273bb02b8b6ac82f2  gcc/print-tree.cc
! 0a1f191186edb9f41a0affc339addd7c  gcc/print-tree.h
! 879605cacbe5b067d1d35cb366994624  gcc/profile-count.cc
! 9a5b08eb9403220d864d191d5b5bc551  gcc/profile-count.h
! 38675dd56002512bad75809f6c8501b6  gcc/profile.cc
! 139e817371eff9511cbb43f0f6774b34  gcc/profile.h
! 0c1f75ad85e261e1eee8db01e7b0fd0b  gcc/range-op-float.cc
! e8b027dd989122187bd42d87f4c5525d  gcc/range-op.cc
! a97482360b7088e2305d2382195e523a  gcc/range-op.h
! c1360f9d799d927a43938d0fa2197c2f  gcc/range.cc
! 5c498ea82f946739bfa6733b7e379daa  gcc/range.h
! 0c8f751aaf1d08caec4def346807faeb  gcc/read-md.cc
! 40e593628675937539cb0428ac64b2dd  gcc/read-md.h
! 6846faf0997a4e8ecce23929c94109be  gcc/read-rtl-function.cc
! 537d10d7fa9077013a7396eb9ab761a0  gcc/read-rtl-function.h
! 4323304c8d4c3b3f7a1a709a952b0eb6  gcc/read-rtl.cc
! 25281c1ad69703fcb08cf754d82ebad8  gcc/real.cc
! 6d8554acc44b5e2e21e38a2b49a99b5a  gcc/real.h
! dc90e239bc529e45b018414e41f712d7  gcc/realmpfr.cc
! 8b3665ee0408167deba63225c18ac5a1  gcc/realmpfr.h
! 623389f92d7a177afdb11fff86a46a42  gcc/recog.cc
! 591f5b69245ef7f926a3b3fef9ca9989  gcc/recog.h
! 219c3276affb43bc7f35c1ede7a3eacc  gcc/ree.cc
! 229b5d92619affa254e70bb3f0369837  gcc/reg-notes.def
! 3f84b03ca2ce228f604801270b0d54c5  gcc/reg-stack.cc
! 49eaeefc0aaedbe828880daec61c5e61  gcc/regcprop.cc
! 4a01a2d58e3ec6ba8693c8e68e948ebe  gcc/regcprop.h
! 9ff50d21a64a70b9b3998b32720f0c8b  gcc/reginfo.cc
! ee38e1f3a7a1ab325c4c6c4376b1d1f6  gcc/regrename.cc
! 87d4742f206e55197364c5f4fa7336d8  gcc/regrename.h
! 02aca530b2731fbe9db26ed0d58a7359  gcc/regs.h
! 48d8ce2509f9ea959aff8e7d11629912  gcc/regset.h
! dd0ae195ddcf06998329b73113a0107a  gcc/regstat.cc
! 2a818cbdbd5406a63c71a18f7ec7809f  gcc/reload.cc
! 2c10603003864024bc233887578ab725  gcc/reload.h
! a923e6ee5eb5118449aa9c3a9ea1cb2e  gcc/reload1.cc
! 26cc4b908ccaca6822b0a682c16343c7  gcc/reorg.cc
! 8847210067f0ab5a79fd62bbaebad8c2  gcc/resource.cc
! 5e0f1c136548ffafc06dde7759d0b618  gcc/resource.h
! d4270c50409d0a37e41e87d9c5ad50b7  gcc/rtl-error.cc
! 5ea30c9356f47fdae42becb044019f44  gcc/rtl-error.h
! 09c7d9be974cf8eef8aa27b80998709f  gcc/rtl-iter.h
! e425f0e0c0a3a373e9ced2896d85e43e  gcc/rtl-ssa.h
! 6bec061fb6c5eec6566ff15977dc17d8  gcc/rtl-ssa/access-utils.h
! 120254bfa882a101305e0c98ff15b4fc  gcc/rtl-ssa/accesses.cc
! c08484d088fc8c35557aaccdfc898fc6  gcc/rtl-ssa/accesses.h
! d2e4a41a257c31fad56c18d763880a57  gcc/rtl-ssa/blocks.cc
! b0ec78b49609a46f1aa381fc0b7f9303  gcc/rtl-ssa/blocks.h
! 9ffa12a479933cf27d86c9ac637d4f52  gcc/rtl-ssa/change-utils.h
! 3a01c123145a9937cd51e4b22265c18c  gcc/rtl-ssa/changes.cc
! f7f6d0e7aad93534016ef2f9ba392d4e  gcc/rtl-ssa/changes.h
! 0be8f892b8737f9e94508605fea7985a  gcc/rtl-ssa/functions.cc
! 77007985a1d5824a4f5cbb786e963ebd  gcc/rtl-ssa/functions.h
! d8c5b220537f993222a13e4b070f90da  gcc/rtl-ssa/insn-utils.h
! 755d631742c96dbad1f1c3387f63ff70  gcc/rtl-ssa/insns.cc
! 7ed973b4eb2d6346c338fa891d280573  gcc/rtl-ssa/insns.h
! 4dce71c05f5e7038dddbb9b6aa8b442b  gcc/rtl-ssa/internals.h
! 002fd48b37b346b92761d7e5b67cba96  gcc/rtl-ssa/internals.inl
! 41495d13856a5728abf206f6c6580eaf  gcc/rtl-ssa/is-a.inl
! 7a747dc63719ba9f2a731705e9cf6e8e  gcc/rtl-ssa/member-fns.inl
! 90dac5747f8732e6187637ec08663ef3  gcc/rtl-ssa/movement.h
! aee77626ccd631c6244e760ea6512546  gcc/rtl-tests.cc
! 6da60f7ec749d1cbf3c21f746d20c664  gcc/rtl.cc
! 59013392133f50ef45d51c7f46134d1d  gcc/rtl.def
! 47270968f06521df14a2e62a83eafc93  gcc/rtl.h
! db9bdffe7009b10db3c091d1751d8e75  gcc/rtlanal.cc
! 30abea10709860b810994624ada0576a  gcc/rtlanal.h
! 622683dfa4d77248f393d30dd55e7a56  gcc/rtlhash.cc
! 8f0d4d09cea60a4cd6b2117d158a7c58  gcc/rtlhash.h
! 568be9814fdfe76fcb154787ced92529  gcc/rtlhooks-def.h
! 75972dd652456e1688adeb39c0feb7c1  gcc/rtlhooks.cc
! 978162b1eb7b8179c8ecdc2da8e7da61  gcc/rtx-vector-builder.cc
! d14e86636104f8e63873d0f94694d4f2  gcc/rtx-vector-builder.h
! c7bcaa81dd77c23ab3a266bcbf9a0dd1  gcc/run-rtl-passes.cc
! 89d68ba5dc6c7c5c9545c87886d96fa6  gcc/run-rtl-passes.h
  add9bd82fcec23469a4d0f7df03d9589  gcc/rust/CONTRIBUTING.md
! 7fd2e1749513f278d7975efd96d868f0  gcc/rust/ChangeLog
! 74b5c91895b4f121d23a07141ee9691c  gcc/rust/Make-lang.in
! 080109fdd25bde98f968ee692c3e0200  gcc/rust/README.md
! 656ef73d834ec5110c9e15fa59242e41  gcc/rust/ast/rust-ast-dump.cc
! 0e184ba6abb92aa32e45f0eb70f3cca7  gcc/rust/ast/rust-ast-dump.h
! 29e4d2ca48165a277bda09e3bdcfb0e6  gcc/rust/ast/rust-ast-fragment.cc
! a1f22b134be23067f69dfcb894c7ca7c  gcc/rust/ast/rust-ast-fragment.h
! 8d29cd066c44059cf5ad80e79bfb8a44  gcc/rust/ast/rust-ast-full-decls.h
! b7a4c46da4ffe5ad1025a8370c9ff93d  gcc/rust/ast/rust-ast-full.h
! e2c5585c631ed9b69b034b9464ccbe5d  gcc/rust/ast/rust-ast-visitor.h
! b81ded285ef42e4a1350c91c7aa8e19d  gcc/rust/ast/rust-ast.cc
! 4808354483a3abd8ce5a85e5a945f72c  gcc/rust/ast/rust-ast.h
! 8c577a1782ca9bdb11646ce4730eb8c6  gcc/rust/ast/rust-cond-compilation.h
! 7600cfb1095baa797ee285a00314e44f  gcc/rust/ast/rust-expr.h
! 32288d66281cfd2d4f1a714c2fac1e3a  gcc/rust/ast/rust-item.h
! 0f7a361407be728f378f9c3dc5c0767c  gcc/rust/ast/rust-macro.cc
! e0ac62ffcb2dec3348f7d2863c2f7e7b  gcc/rust/ast/rust-macro.h
! 4505111a5ca876f7e419ebc79a525fd6  gcc/rust/ast/rust-path.h
! 8b2ebe986a6271fed0a4e651b7606fa5  gcc/rust/ast/rust-pattern.h
! 8978be3f05bae7d6574f98b3f829a19e  gcc/rust/ast/rust-stmt.h
! e80c4add905a5322e35a768098a6ef8f  gcc/rust/ast/rust-type.h
! 7a65079d364d5cee4dab24d3b091a20d  gcc/rust/backend/rust-builtins.cc
! c2acd85b4460f7ba3ee7d1a795bfe00a  gcc/rust/backend/rust-builtins.h
! 21797ccb82a7631f1ee36a200ffd846c  gcc/rust/backend/rust-compile-base.cc
! 89f2466e5a685ceae8cf2e3674cac2aa  gcc/rust/backend/rust-compile-base.h
! 193c505b26f5fd808da0ecd6a8770d5a  gcc/rust/backend/rust-compile-block.cc
! fabf64fe7484c4397a53d8d70eaa78ba  gcc/rust/backend/rust-compile-block.h
! 33a17da7a0cab21deeb193774723bd89  gcc/rust/backend/rust-compile-context.cc
! ddc815013e0d7c27ce7d5cb3a8bc45e1  gcc/rust/backend/rust-compile-context.h
! fbe51de19c22edebc41bb4b4b10ee3d1  gcc/rust/backend/rust-compile-expr.cc
! 12cd26fb5ebeed601c97b254a76bb2ba  gcc/rust/backend/rust-compile-expr.h
! 744f7df2c4b9b6fabf89f085080ab477  gcc/rust/backend/rust-compile-extern.h
! e35cc1dba67e3043b60bc54221013edf  gcc/rust/backend/rust-compile-fnparam.cc
! 7df6c7c06ae13b0076264a6dc69cb90b  gcc/rust/backend/rust-compile-fnparam.h
! 220503ad06f93fe6bd7f2df646c94d3d  gcc/rust/backend/rust-compile-implitem.cc
! 6827b8ea4c0a2b13c2c96dde9252815c  gcc/rust/backend/rust-compile-implitem.h
! 8ff2f2419b1edc440fca891fec380964  gcc/rust/backend/rust-compile-intrinsic.cc
  a1fb8689400958af8126ae9c477c873e  gcc/rust/backend/rust-compile-intrinsic.h
! 5f47e09b718285911e1dd572e5253b99  gcc/rust/backend/rust-compile-item.cc
! bfb369e2f437665bc0994eb2ee8e6702  gcc/rust/backend/rust-compile-item.h
! 0012cdb470d712fe178d3b3ee3e33828  gcc/rust/backend/rust-compile-pattern.cc
! 01d6c7135c32f265ac9d48f3cdcac103  gcc/rust/backend/rust-compile-pattern.h
! a51734d03744052d79ad4978abb29f03  gcc/rust/backend/rust-compile-resolve-path.cc
! 5420f2f96bb75cdc0e62a6b53609f4a7  gcc/rust/backend/rust-compile-resolve-path.h
! 444b1582f28990f7c708b0c32d33b2d9  gcc/rust/backend/rust-compile-stmt.cc
! 7eaae12f4404b97c67616889118848f7  gcc/rust/backend/rust-compile-stmt.h
! 515c88a5749f227fa7c9fdbc3f5f2ab3  gcc/rust/backend/rust-compile-struct-field-expr.cc
! 4a84afcd02c8ec10a12465ae56badce7  gcc/rust/backend/rust-compile-struct-field-expr.h
! 0c0a3095ea809d1912f700d99e25130b  gcc/rust/backend/rust-compile-type.cc
! 0abd661ced89deb23d4ca4438a9ab1ac  gcc/rust/backend/rust-compile-type.h
! 27e71e120ad4985a215380f7d50b159e  gcc/rust/backend/rust-compile-var-decl.h
! 37eac62daf7f779ae40ae1dc09da0835  gcc/rust/backend/rust-compile.cc
! 6bce485c625f282c3149b9badee1b988  gcc/rust/backend/rust-compile.h
! e53af2e40a10f3aee236fbd3fcfbf5af  gcc/rust/backend/rust-constexpr.cc
  3778b6c3ad2a1fad766013bb9e1d8ea3  gcc/rust/backend/rust-constexpr.h
! 1702ff85e464e0b56639208100740f85  gcc/rust/backend/rust-mangle.cc
! 01a3d78c605e3d350632d629fe716cdf  gcc/rust/backend/rust-mangle.h
! eea33201f4e8fd8543acdb8d7ce0ffa0  gcc/rust/backend/rust-tree.cc
! bfbc425e12abaec080661d8fadb78489  gcc/rust/backend/rust-tree.h
! eab5787a85e9133ae700a250b732a630  gcc/rust/checks/errors/privacy/rust-privacy-check.cc
! e19d49331621e78a4db569039fa93cbd  gcc/rust/checks/errors/privacy/rust-privacy-check.h
! 310089dc1b8ebffb3cf4724bddbe94cd  gcc/rust/checks/errors/privacy/rust-privacy-common.h
! 9155583d4acd7a16b84c02840c2880f0  gcc/rust/checks/errors/privacy/rust-privacy-ctx.cc
! 0235dd835d85b8265791e16414620989  gcc/rust/checks/errors/privacy/rust-privacy-ctx.h
! 89ccc693c22eab7fab69c238f52fcdbe  gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
! 0d5eccdc57f396bf42b9d54fda3a69c7  gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
! fcba205499c77d450da1dff931f139b2  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
! 337b3395c770e1a51f60eaf55e905951  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.h
! fdc1a11b86fb6ad6a3f900e2213790e0  gcc/rust/checks/errors/privacy/rust-reachability.cc
! a6cb2e472ab3c49b77f1d6903b575646  gcc/rust/checks/errors/privacy/rust-reachability.h
! 6c4ce883e54e7dfa11fe4ce5617e190e  gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
! 540ad6b8f062ae1ed267a07ed650a53e  gcc/rust/checks/errors/privacy/rust-visibility-resolver.h
! a764b9b366c1fa4d529a6c4775979c04  gcc/rust/checks/errors/rust-const-checker.cc
! 12afbcb2ea3b3f7fcaea84aeac6878b9  gcc/rust/checks/errors/rust-const-checker.h
! b250c490558b751017b7ecfaa026c545  gcc/rust/checks/errors/rust-feature-gate.cc
! e10c72f46ca441409b249ccadd8a14a0  gcc/rust/checks/errors/rust-feature-gate.h
! 7dfff60ed1fe14fd64ba92731e662444  gcc/rust/checks/errors/rust-feature.cc
! e30d6a76b88d44c0057026db0bd62094  gcc/rust/checks/errors/rust-feature.h
! eb71c595a209147005c19c0de9ee7182  gcc/rust/checks/errors/rust-unsafe-checker.cc
! 058f4007757bfedaabb4ea6659c9e4e6  gcc/rust/checks/errors/rust-unsafe-checker.h
! 79383ac60e76f44032a5a2604b668b3c  gcc/rust/checks/lints/rust-lint-marklive-base.h
! 8741b6d90b92f0b9686651b6c42a7c5b  gcc/rust/checks/lints/rust-lint-marklive.cc
! 9a8859185844db8fa124e6150535f2a0  gcc/rust/checks/lints/rust-lint-marklive.h
! c2a72255cf54722a0c94bfd58d88aee0  gcc/rust/checks/lints/rust-lint-scan-deadcode.h
! c206e4c68f6dbf510aa1b46635820e94  gcc/rust/checks/lints/rust-lint-unused-var.cc
! 872027b9499bb877baef2a75eecce40d  gcc/rust/checks/lints/rust-lint-unused-var.h
! 7161821ec0f958fd41a4783d670d35d2  gcc/rust/config-lang.in
! 89bb9bf0b2d8a1a3da0c635be1a7deba  gcc/rust/expand/rust-attribute-visitor.cc
! c8c86959f24f01dd5561a5e0c8ba6733  gcc/rust/expand/rust-attribute-visitor.h
! 1b6701f5444262162868463ec94ad8bf  gcc/rust/expand/rust-macro-builtins.cc
! 348fe4e10cc04414f24f2de0f00ac328  gcc/rust/expand/rust-macro-builtins.h
! 10b5e13334851e0063bb11a5a8f5522f  gcc/rust/expand/rust-macro-expand.cc
! ac74d5648d3bc323e9fcdbb4a5497ac2  gcc/rust/expand/rust-macro-expand.h
! 678c511331b01f4dadb6eecb01a38415  gcc/rust/expand/rust-macro-invoc-lexer.cc
! 777fc4af41ad1aadfb8257132bfc6e57  gcc/rust/expand/rust-macro-invoc-lexer.h
! 970e65f697b24ead3b134004001ceed8  gcc/rust/expand/rust-macro-substitute-ctx.cc
! 81a411e38ae39db9859d58b235cddf82  gcc/rust/expand/rust-macro-substitute-ctx.h
! 4408914500d85fc3e74601d745c43497  gcc/rust/hir/rust-ast-lower-base.cc
! ee0979cb87860f854f73b2741ab7a4fd  gcc/rust/hir/rust-ast-lower-base.h
! 2f4f2cb52abefdd75f640b33c72657e1  gcc/rust/hir/rust-ast-lower-block.h
! 130c35ba931356508bc40d320bafa8fc  gcc/rust/hir/rust-ast-lower-enumitem.h
! 72eec3c2f63b5647a23c23a839354305  gcc/rust/hir/rust-ast-lower-expr.cc
! e6a3676c9114bc603c7a3d7c19fc8dd0  gcc/rust/hir/rust-ast-lower-expr.h
! 2f9f282c45592ed1a397e0e06f704adb  gcc/rust/hir/rust-ast-lower-extern.h
! 83299212d844641232368a367ee3401d  gcc/rust/hir/rust-ast-lower-implitem.h
! 6c2d9a24b3556d5d8f9aadc1c26c18f3  gcc/rust/hir/rust-ast-lower-item.cc
! 989c88eedcc739231640b4d4170c771d  gcc/rust/hir/rust-ast-lower-item.h
! 7dd89e8c2da572b11bb5df4e67c3684c  gcc/rust/hir/rust-ast-lower-pattern.cc
! c241448812d8140538d64eef842b96ae  gcc/rust/hir/rust-ast-lower-pattern.h
! 4668bb806a3b05d060c9eafdc1c7f8af  gcc/rust/hir/rust-ast-lower-stmt.h
! c9cd2b94aa34bdd0fc94585f89febaa8  gcc/rust/hir/rust-ast-lower-struct-field-expr.h
! f6b4d19a625cf2995cfc2093456ed243  gcc/rust/hir/rust-ast-lower-type.cc
! 06959460e87ac52de0257d276c0d29f4  gcc/rust/hir/rust-ast-lower-type.h
! b89935499ed614dc162302be71466dbc  gcc/rust/hir/rust-ast-lower.cc
! 8a76486c07da8351758d42bd5e1d3366  gcc/rust/hir/rust-ast-lower.h
! fefb784a6e898f4a762d042907ea9db4  gcc/rust/hir/rust-hir-dump.cc
! dad9b406c18580970dd7320a0217e355  gcc/rust/hir/rust-hir-dump.h
! 711729b8f1bf43422eb0c23f7824ff6e  gcc/rust/hir/tree/rust-hir-expr.h
! 9ba32c065b48d3801bd5a18c366cc238  gcc/rust/hir/tree/rust-hir-full-decls.h
! c2473e5f4ded5764e94fe17b6a76355c  gcc/rust/hir/tree/rust-hir-full.h
! 43f750f92ae86367173ff047f935b1cc  gcc/rust/hir/tree/rust-hir-item.h
! 559f9f9f7ecc5975db2446bd4717c688  gcc/rust/hir/tree/rust-hir-path.h
! da4bdb723e8bf328e4840b6cade7349d  gcc/rust/hir/tree/rust-hir-pattern.h
! 47cf71c51a942f80d776af6c9c1ba731  gcc/rust/hir/tree/rust-hir-stmt.h
! 229354e209f9db0ef1224f77465f8993  gcc/rust/hir/tree/rust-hir-type.h
! 48df955bdd52b6ad71f4af4ad853363b  gcc/rust/hir/tree/rust-hir-visitor.h
! f5942499bc34d79e173ec803968c2993  gcc/rust/hir/tree/rust-hir.cc
! 49c9fe12fdc5cc1e7bbfeaa865f8c619  gcc/rust/hir/tree/rust-hir.h
! 59f0daa08e0c652ea3ddddc5846eb940  gcc/rust/lang-specs.h
! b0b7abe4a87fedfc780e6dfedda7597f  gcc/rust/lang.opt
! c6f99b837a92d3ec688f8efcdefa539e  gcc/rust/lex/rust-codepoint.h
! e820ddc853b123c42e529dd503951113  gcc/rust/lex/rust-lex.cc
! d9ff38b321508e2bdbe0f1f5e8858e46  gcc/rust/lex/rust-lex.h
! 484648b6e98e4a3024b0945510e92939  gcc/rust/lex/rust-token.cc
! 73f9583760a551d6ce8957f3a4cf414c  gcc/rust/lex/rust-token.h
  fe40f8618a9f5a5f007bc1a81fe45d3a  gcc/rust/logo.png
! 612d161dad5e6dc23a44c5ea2077ff4e  gcc/rust/metadata/rust-export-metadata.cc
! e2d360ef667f26975460109d6eee84d8  gcc/rust/metadata/rust-export-metadata.h
! ceb5723a31a190c64bf336812b0afdb7  gcc/rust/metadata/rust-extern-crate.cc
! 629ba1329feef1555e5b1e44500532f9  gcc/rust/metadata/rust-extern-crate.h
! 8aad3b9c829f76ca83a1abd65e7e50f7  gcc/rust/metadata/rust-import-archive.cc
! 08a9f59b7fa1c752ddd56ec54ef9ce17  gcc/rust/metadata/rust-imports.cc
! 945aa3bf11924e885f4a5f2d6b722426  gcc/rust/metadata/rust-imports.h
! 7a690d609665275258d6740f2a0c78f4  gcc/rust/parse/rust-cfg-parser.cc
  e0d1b97260228c2544bb509ee36eb811  gcc/rust/parse/rust-cfg-parser.h
! 67900a2cd0d8d4ae35f8eecd36887174  gcc/rust/parse/rust-parse-impl.h
! 04502997e11e20b51bc90e40a885751d  gcc/rust/parse/rust-parse.cc
! 39bf092d063bff707c09f54864652806  gcc/rust/parse/rust-parse.h
! efeabf2a327ec3a06a4e9f45fde7b9a0  gcc/rust/resolve/rust-ast-resolve-base.cc
! 94234ac9ec3d046fe94ad73c558550b8  gcc/rust/resolve/rust-ast-resolve-base.h
! 50320c4bbb314ee301b061b38c23f8fb  gcc/rust/resolve/rust-ast-resolve-expr.cc
! 5260f4c169d4582de7a24cc23b0c58a6  gcc/rust/resolve/rust-ast-resolve-expr.h
! 711449802ad78c638f93a3aa7eabe2ae  gcc/rust/resolve/rust-ast-resolve-implitem.h
! 782dd315e1e5254be55ee09eca25de58  gcc/rust/resolve/rust-ast-resolve-item.cc
! 3813e17c34dd1bd37cebcfdb938e0fdb  gcc/rust/resolve/rust-ast-resolve-item.h
! 8ab43b3ceb6792bf1ce9d82b576741e4  gcc/rust/resolve/rust-ast-resolve-path.cc
! 8f7538f75e5f33480723a4f78686dbc7  gcc/rust/resolve/rust-ast-resolve-path.h
! 1cd31bb59603e1912ba6657eceee5fc8  gcc/rust/resolve/rust-ast-resolve-pattern.cc
! 40cfe163eaa0505c31a8dfedd4f6d7a8  gcc/rust/resolve/rust-ast-resolve-pattern.h
! becbc923814971fba7c5452bbb5be3b9  gcc/rust/resolve/rust-ast-resolve-stmt.cc
! 2bd211f1ba6056a7902eb2d254d16faf  gcc/rust/resolve/rust-ast-resolve-stmt.h
! 0bc89d9766ffccbb93fb6880d2e18fa7  gcc/rust/resolve/rust-ast-resolve-struct-expr-field.cc
! 933aee5794750ffabf2542a56ba003aa  gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
! edb5e5b00c6c593be7b657c83efb2c5e  gcc/rust/resolve/rust-ast-resolve-toplevel.h
! 1dbbc4c71ee07505cd24f91e6bea3999  gcc/rust/resolve/rust-ast-resolve-type.cc
! e2d49d833a6a56b1c2e5cad8674d8b18  gcc/rust/resolve/rust-ast-resolve-type.h
! 1722bda2315dc359c3eee020204ad30c  gcc/rust/resolve/rust-ast-resolve.cc
! f520ab56e9d6ff9863cb46b83912bf01  gcc/rust/resolve/rust-ast-resolve.h
! 88b58dea9e62d35254c580d9fb627650  gcc/rust/resolve/rust-ast-verify-assignee.h
! 60fcf7c9dcd9d2f46ca7ea2dd1c22d0c  gcc/rust/resolve/rust-early-name-resolver.cc
! 46c47034f7578f5a73ac56e1c91381e1  gcc/rust/resolve/rust-early-name-resolver.h
! 4697bc75bc5498ffd6638c61d0344297  gcc/rust/resolve/rust-name-resolver.cc
! 47109d0abe43a6067b8099439dd32433  gcc/rust/resolve/rust-name-resolver.h
! 27789b3467d3be28a8ead33a19596b8a  gcc/rust/rust-backend.h
! b9686a1d45b51c8daf042d4ae5c9150b  gcc/rust/rust-diagnostics.cc
! 80892cfc283c1eb4dab2ce64822c03ec  gcc/rust/rust-diagnostics.h
! 4f6cbffd01ee2a5c0914ff57f8ebc8d0  gcc/rust/rust-gcc-diagnostics.cc
! c405c57a3a7ecd09dee2c2825d1febe7  gcc/rust/rust-gcc.cc
! 1a340fdfdcd188737100445378bc6c1f  gcc/rust/rust-gcc.h
! 1bc4e344b3e031fc9513f4909a9ef957  gcc/rust/rust-lang.cc
! 394052c885f784ed803e129318e93031  gcc/rust/rust-linemap.cc
! 76c0dd71407057526090124195115340  gcc/rust/rust-linemap.h
! ef14e8be9158abafa3a39eec1003705c  gcc/rust/rust-location.h
! 2491c2b99c80ceab2d3082190edb2203  gcc/rust/rust-object-export.cc
! ecae93401af33d35694921afbab5448e  gcc/rust/rust-object-export.h
! 9c9080b2c3d052527acac19a0235adf0  gcc/rust/rust-session-manager.cc
! 6badcc90129005e5b5ca71e012c5fd65  gcc/rust/rust-session-manager.h
! af9f82fc026394da683994217bf238e4  gcc/rust/rust-system.h
! 6484d4d8e580de1ff80297be9c514627  gcc/rust/rustspec.cc
! 848375a24773263e7d523e953ca9296e  gcc/rust/typecheck/rust-autoderef.cc
! 339e32420cf6da29b299a9622629ea3a  gcc/rust/typecheck/rust-autoderef.h
! b95e8d4776a580fb5c0b01448e00e484  gcc/rust/typecheck/rust-casts.cc
! b4e8c98fec8f30239f03d7fc48369b11  gcc/rust/typecheck/rust-casts.h
! 073fbb2a96640d2bc60bc448a8552561  gcc/rust/typecheck/rust-coercion.cc
! b8239c32a2dc3f3db4421112ac1b209c  gcc/rust/typecheck/rust-coercion.h
! 06a17caabb1068e69d4f782118fe2822  gcc/rust/typecheck/rust-hir-dot-operator.cc
! 3a2e4c5c02617f045074509db5137d0c  gcc/rust/typecheck/rust-hir-dot-operator.h
! 784fedd7804bafef777cc6cdee6a2617  gcc/rust/typecheck/rust-hir-inherent-impl-overlap.h
! bf05443556d15907f777559667acef3b  gcc/rust/typecheck/rust-hir-path-probe.cc
! 67ef60d1f6d314240de5d56add68ed23  gcc/rust/typecheck/rust-hir-path-probe.h
! 3f4c12dc189ede4b5543b68e271927c4  gcc/rust/typecheck/rust-hir-trait-reference.cc
! b793a185f0e99c7d55a6d301fffa77b0  gcc/rust/typecheck/rust-hir-trait-reference.h
! 521901695fb45f282495ae2c65af406a  gcc/rust/typecheck/rust-hir-trait-resolve.cc
! 10954eb6863b4c14e70a3a4740883b00  gcc/rust/typecheck/rust-hir-trait-resolve.h
! 6b85c512ae8f77185942bdb45528c8e8  gcc/rust/typecheck/rust-hir-type-bounds.h
! d952ba86f985e23c02e5d633624db52e  gcc/rust/typecheck/rust-hir-type-check-base.cc
! 6c0afdc97b255d751152056ed5487d88  gcc/rust/typecheck/rust-hir-type-check-base.h
! a4c808cd7ad40da159bd8b11d0787a04  gcc/rust/typecheck/rust-hir-type-check-enumitem.cc
! cda8a93e6678b3dcc9333026a862868b  gcc/rust/typecheck/rust-hir-type-check-enumitem.h
! a7ab530ef52e6f89720d37b609693e9b  gcc/rust/typecheck/rust-hir-type-check-expr.cc
! 0f24866dd14f24cf3cd4424576630f96  gcc/rust/typecheck/rust-hir-type-check-expr.h
! 3030d1c6206f9f210050c057d20121f5  gcc/rust/typecheck/rust-hir-type-check-implitem.cc
! 064cafb7886a73841123d747dbf14fa6  gcc/rust/typecheck/rust-hir-type-check-implitem.h
! 148216f9809820b9ede4fc3673eed756  gcc/rust/typecheck/rust-hir-type-check-item.cc
! 89bf23e1651fa964598c65440479883d  gcc/rust/typecheck/rust-hir-type-check-item.h
! 5bb62077a6d13f29faa2bee8eb2dd029  gcc/rust/typecheck/rust-hir-type-check-path.cc
! b268336a138ba63e735e3d282960f31b  gcc/rust/typecheck/rust-hir-type-check-pattern.cc
! 162218e52f6bc531d88cab6823293d26  gcc/rust/typecheck/rust-hir-type-check-pattern.h
! abc0d096e60bad8045e0096dcb737f01  gcc/rust/typecheck/rust-hir-type-check-stmt.cc
! bfcbfd3eb919c87dc990f150354835e8  gcc/rust/typecheck/rust-hir-type-check-stmt.h
! d799f213f4c20193ba8f39f29a502475  gcc/rust/typecheck/rust-hir-type-check-struct-field.h
! f35b60114acb4af7f7a4f94496e5f93b  gcc/rust/typecheck/rust-hir-type-check-struct.cc
! 4fc3c7950d609cbef2bd30ed605c8930  gcc/rust/typecheck/rust-hir-type-check-toplevel.cc
! 9a453bc38e51c0355d81939126801d20  gcc/rust/typecheck/rust-hir-type-check-toplevel.h
! 93c523965ba10f3d6257646dd870702c  gcc/rust/typecheck/rust-hir-type-check-type.cc
! fd50e055b6de9596afcda6a10379fb0f  gcc/rust/typecheck/rust-hir-type-check-type.h
! c08547325a8608ad8345b67b5d0ea743  gcc/rust/typecheck/rust-hir-type-check-util.cc
! e2887f3b7884376f561417dd5b5b7b5b  gcc/rust/typecheck/rust-hir-type-check-util.h
! eebd011435f05611cd5f5b26d115848f  gcc/rust/typecheck/rust-hir-type-check.cc
! cffaa560b70ce9eed49b34aad33413ab  gcc/rust/typecheck/rust-hir-type-check.h
! 5df2e0c38aa6ef48e853b8bb55cc4a32  gcc/rust/typecheck/rust-substitution-mapper.cc
! 347a33d587b9ff9c55e39bed8fdd24a9  gcc/rust/typecheck/rust-substitution-mapper.h
! e2b8ebbc8250e690a5519e9a2b44f938  gcc/rust/typecheck/rust-tycheck-dump.h
! 9166c231f24cd7380b93e727a1bb8ad3  gcc/rust/typecheck/rust-type-util.cc
! 9e962b786fe666df2c76a497be2b516f  gcc/rust/typecheck/rust-type-util.h
! f0336842dee7a7987eb8d01094ff1024  gcc/rust/typecheck/rust-typecheck-context.cc
! f9c9083e339a92252dc38b165d422107  gcc/rust/typecheck/rust-tyty-bounds.cc
! 23db29099dcbda81daa1e7ba06b762bb  gcc/rust/typecheck/rust-tyty-bounds.h
! 65634a39024fe1d2ed7542b6c04ed587  gcc/rust/typecheck/rust-tyty-call.cc
! 2eb1c2b20c6fc7343fc594b7cd8f3939  gcc/rust/typecheck/rust-tyty-call.h
! d784ffa4984d1d66ebb461e50a86d653  gcc/rust/typecheck/rust-tyty-cmp.h
! 43e7ddbe749b75f71cfaec6c069adb3f  gcc/rust/typecheck/rust-tyty-subst.cc
! e84aff71b5662833342c1b9fab9a3988  gcc/rust/typecheck/rust-tyty-subst.h
! 6070355cab3f211c4acb59805275f54a  gcc/rust/typecheck/rust-tyty-util.cc
! 41f21b52e26829dc85788abe67cc4378  gcc/rust/typecheck/rust-tyty-util.h
! 87aec613c9ac9cc7e3d16c7b672b138c  gcc/rust/typecheck/rust-tyty-visitor.h
! 4ef669c74e508c8670460b79bd0f41d1  gcc/rust/typecheck/rust-tyty.cc
! 3df71f9a6121c917e03484303e53856a  gcc/rust/typecheck/rust-tyty.h
! a5fa07bb4944bf64f57ebf289039714a  gcc/rust/typecheck/rust-unify.cc
! 129c7af2a2ef08a0059db233cc1d3d11  gcc/rust/typecheck/rust-unify.h
! 2766e16bf2a664d25f1de62ae4ac9cbb  gcc/rust/util/fnv-hash.h
! 0fd19d0aae94954d1e41e0444087755b  gcc/rust/util/rust-abi.cc
! 0e1084fdb015c6075d1f7ef1f9d3d493  gcc/rust/util/rust-abi.h
! 940016c3f380752b8e9167d7a5d64adf  gcc/rust/util/rust-attributes.cc
! 077f7c1df62c27c039a90736e8575530  gcc/rust/util/rust-attributes.h
! 7cbd1a333b6a2e8b95c06e64964cf901  gcc/rust/util/rust-base62.cc
! 46213677168a1a295b7fe5fd94eb17a1  gcc/rust/util/rust-base62.h
! facb19b852cdcf8c4369d47361155f17  gcc/rust/util/rust-buffered-queue.h
! ff347a44ae100db82dfb3aefcdc90587  gcc/rust/util/rust-canonical-path.h
! 86e66d4faceda8f58ff48803b0d2d5fd  gcc/rust/util/rust-common.h
! cd5f12472005f7728a088846d60e10dd  gcc/rust/util/rust-hir-map.cc
! 953a508993d31e0add811569413d5a22  gcc/rust/util/rust-hir-map.h
! 506b43dd60eb3b3cb0646b0c1a18b97e  gcc/rust/util/rust-identifier.h
! 09f3fc6e88b5d8e9ea4140d36f5bc223  gcc/rust/util/rust-inline-visitor.h
! 496b4d70d465ced191c22d4097534c35  gcc/rust/util/rust-lang-item.h
! b0f7938556c5f89dd0b185262a802863  gcc/rust/util/rust-make-unique.h
! d232582149c89fb9b81673f0401215ce  gcc/rust/util/rust-mapping-common.h
! 774c2182ba7c26565943348c2ca85904  gcc/rust/util/rust-operators.h
! bcb014de055be4bd670a855996cf7b0b  gcc/rust/util/rust-optional-test.cc
! 9bf0b870b64bae5f296ce75faaf9235c  gcc/rust/util/rust-optional.h
! 439130189e8efa698252e497e92d3001  gcc/rust/util/rust-stacked-contexts.h
! f1524cf0a89f8e6d1690c7df47ba1968  gcc/sancov.cc
! 6df908981659071dab305a19e1eba66f  gcc/sanitizer.def
! ff24b1374f95e38aa726226e06ce3460  gcc/sanopt.cc
! b8397660a0f9df7e2c837560a09cf76f  gcc/sbitmap.cc
! da6c88394baa1765a131b3f0d567ee80  gcc/sbitmap.h
! 8fac49e3be1f450ee261cc0670522836  gcc/sched-deps.cc
! 883e4c1cfb8d6874ea26101d64a3926d  gcc/sched-ebb.cc
! a2867066c9b68c4f0aa66d8b1073b4c7  gcc/sched-int.h
! a80926315489963f74d8987b9416e022  gcc/sched-rgn.cc
! e859c7baabb6de874bdaab1771679ce9  gcc/sel-sched-dump.cc
! bae4a9d59e94a5d088f9d107088f952d  gcc/sel-sched-dump.h
! 472be0682aed003638c2d360ff29e4f1  gcc/sel-sched-ir.cc
! a17bb6009f575cf4b1498822334c105e  gcc/sel-sched-ir.h
! 42ad6758316b689c7637f952d101957e  gcc/sel-sched.cc
! 07b30e2e9b7492750a78a7c8aed79735  gcc/sel-sched.h
! e87a2bbed51663deec5497a932c445ab  gcc/selftest-diagnostic.cc
! f4720ca5fe1a15bf5df4e2b9a11348c8  gcc/selftest-diagnostic.h
! 59e1bc6d36c67b2006099ce0f4e2a889  gcc/selftest-rtl.cc
! cbc9470a27fa34dea5fe8c7a6155f5b6  gcc/selftest-rtl.h
! 4532f22d2cbbab6e48d5c85692a02f34  gcc/selftest-run-tests.cc
! 1471e9bb896393e0cd194127da4e9692  gcc/selftest.cc
! 15c318ed9453793603295837aa4a8383  gcc/selftest.h
! e76f38277fc6cee5fbcb63528b2b7bb5  gcc/sese.cc
! 42f06fb1e7f7569f309e645ed0c3f561  gcc/sese.h
! 14a1cf78cb35869136c9c3e73acc0d6e  gcc/shortest-paths.h
! 26f6d477d9f069a78eda9d06df0d0f87  gcc/shrink-wrap.cc
! b0025a475f4a0c82ee65a399ca0a034a  gcc/shrink-wrap.h
! bd49798c7ee1511bf4a17309e20fec94  gcc/signop.h
! e847e33394e8d441f78d0e5cc879f285  gcc/simplify-rtx.cc
! 3cf33b40d96ada5a63a4c5bed4043b03  gcc/sort.cc
! 6d6a6674cba8b72bf69b2d68045f5254  gcc/sparseset.cc
! 8e3e166004672f614cbdfd1ebcf014be  gcc/sparseset.h
! b5239fa69db4753960dc299de17ace09  gcc/spellcheck-tree.cc
! 25eed08bbd5566b8dcf1660bd3cea56e  gcc/spellcheck-tree.h
! 452a3af69c151f0b8f23e2a5ac717819  gcc/spellcheck.cc
! ad7127f772fbab419cdb95716fbd71e8  gcc/spellcheck.h
! 326f9ff956f491f8d52faf3e9c324c22  gcc/splay-tree-utils.cc
! ea45f2041106f72dbc25c1300639592a  gcc/splay-tree-utils.h
! 4dfd9537bb80c67c5683a7636cade1b7  gcc/splay-tree-utils.tcc
! dba0f0365eba7e1180b97b202ad14f26  gcc/sreal.cc
! 10f3d0286cc97f0f24db8eca8eeb6ef3  gcc/sreal.h
! 0a6045997c2b7a735fb72ed91ab27825  gcc/ssa-iterators.h
! 769da65620ef5546603093fe71ab3d01  gcc/ssa.h
! bca179f44085fd8edc737e4ba262fcfd  gcc/stack-ptr-mod.cc
! 8b9baba6588250d0568a6e79a77b40b1  gcc/statistics.cc
! 105fe33a71f974f02ef7f3263c08669a  gcc/statistics.h
! 0d3c777db64aa3d968af3598592d5b63  gcc/stmt.cc
! be9918eb7971ed2aa227d2a9556ab4c1  gcc/stmt.h
! ca456c74be9de499884af205fbfa10fe  gcc/stor-layout.cc
! b3072e70f0734ebf8ff3e86db3e31313  gcc/stor-layout.h
! fb76b9134a21d1db6565d257f40e5cff  gcc/store-motion.cc
! 11603a74567d833fec2f884670c0b974  gcc/streamer-hooks.cc
! 81010126ecf47f4e4f335e2aea2d4051  gcc/streamer-hooks.h
! d0687713f7992a01ead2c246f47c516f  gcc/stringpool.cc
! 999a6973a1cd3c7f04b5ad09bbb7ee91  gcc/stringpool.h
! d90c8b7c98120173b135aac34ce63406  gcc/substring-locations.cc
! 113b78073a7ece7f6f9d83da5509fb24  gcc/substring-locations.h
! 8ca9711265b5695339087d5948f10633  gcc/symbol-summary.h
! 950495d6efc98774e5ab462e8c0fa6cf  gcc/symtab-clones.cc
! e6c15bb100982c366657793f0ba5405f  gcc/symtab-clones.h
! 1c608d3879d04cf211f3aa235f52f971  gcc/symtab-thunks.cc
! 1df86ebb721c32a31780042b3a5afa4f  gcc/symtab-thunks.h
! c97cad962963c47c40c91b80acd45f98  gcc/symtab.cc
! ff3675d3b97df46f8e1ed96a13ce7dd7  gcc/sync-builtins.def
! ef52228ac63aeed82d7862bfa4730d7c  gcc/system.h
! 744e683ea9d5282ff763bca2bba4f90d  gcc/target-def.h
! e880e2e7aadcca94c17ee3bff654d152  gcc/target-globals.cc
! a4178410f0dd9596b6066554d292aa02  gcc/target-globals.h
! 8dc47cb819f4fa9f64f6243fdb29a1fd  gcc/target-hooks-macros.h
! ef72864327fae4a3df881df1d8c44b16  gcc/target-insns.def
! b4eef2f8d349daf0bd5a4412068c2291  gcc/target.def
! b829ed0032c899e107be2db349c913f3  gcc/target.h
! 811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
! edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! d7a1e24d30b3dc94ca748ece8921a7f8  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 6211,8104 ----
  c08c0bc386a3e50faacf99daf94c080f  gcc/go/gofrontend/go-optimize.cc
  ead5ac25b7b99d361225e0fd940e286a  gcc/go/gofrontend/go-optimize.h
  5b59619fab7e543c5bb28dd8a6d62793  gcc/go/gofrontend/go-sha1.h
! 8dded449a650e2e8c365f702612afc24  gcc/go/gofrontend/go.cc
! 98289f8a3cecefa4bed2ff3706a65862  gcc/go/gofrontend/gogo.cc
! 4b5329e9d8c401009b4b1ca29c4c4c29  gcc/go/gofrontend/gogo.h
  f9015ccccf7764d4c6eeae1bd5e01c7f  gcc/go/gofrontend/import-archive.cc
! e79da7b293afd4faedb3f5e30c60ef51  gcc/go/gofrontend/import.cc
  0a9e27f1c3baa96ef288093aae5e2d3d  gcc/go/gofrontend/import.h
  52b99a209e77281dd06be084c671c85f  gcc/go/gofrontend/lex.cc
  41a3768614d6403a2d963ff36ad73f66  gcc/go/gofrontend/lex.h
  8c4c336f6edc93802ab60628e46ebf75  gcc/go/gofrontend/names.cc
  98235b1a736055cd6a130337a9ee8e8e  gcc/go/gofrontend/operator.h
! 5bf417fdea85c70cac14a701c4efca27  gcc/go/gofrontend/parse.cc
  d1791687826a1bb33b9681aef8b30dae  gcc/go/gofrontend/parse.h
! efa7d8338e571f0a00ae041e5eba5c4d  gcc/go/gofrontend/runtime.cc
  06ed40caa7a515346c6a4708bc2dd50e  gcc/go/gofrontend/runtime.def
! 7f89de3bb49a742a3a96a743a8b7b553  gcc/go/gofrontend/runtime.h
! 8c23d89554f1d2b0620c3e236db9290a  gcc/go/gofrontend/statements.cc
! 3906ddd718504b8ed20098e2e5980539  gcc/go/gofrontend/statements.h
  bfc57c7a1e73452c4b277ad13efbddbd  gcc/go/gofrontend/string-dump.h
! 8ddc4daf7b084f3cae113a08ffbbcf3f  gcc/go/gofrontend/types.cc
! b4fcb26168619862a6f0f95ba175db11  gcc/go/gofrontend/types.h
  1a87c48a17e95c935789de3db97a6ba8  gcc/go/gofrontend/unsafe.cc
! 2f67448e4d59de193cdd545537d8dd20  gcc/go/gofrontend/wb.cc
! d1c1ab7a29bceba13bd6ea42eddb52d5  gcc/go/gospec.cc
! 5d08c28ed3c939e5793dab2ec4957979  gcc/go/lang-specs.h
! e66f456c6654314ea6294ef8c884a1e4  gcc/go/lang.opt
! 698b4aff5090468be47f0e3149a31d04  gcc/go/lang.opt.urls
! 4693ba34dd7d3f38a7c18b8cf6608f66  gcc/godump.cc
! 424efb8126cfa9a2db8e537dc83f58de  gcc/graph.cc
! 5823256116cdb1c5230bae9c7c88969a  gcc/graph.h
! f7af463c164596fa9feaba6c5a4a55eb  gcc/graphds.cc
! fc49e2a02a8d711e86f13c49e9c229f4  gcc/graphds.h
! 4672212edf2949c8347338930fb56b1e  gcc/graphite-dependences.cc
! dab2060953aedee24ff4c01d57453bf0  gcc/graphite-isl-ast-to-gimple.cc
! 6f77125d90f652f62fc9537fef641a12  gcc/graphite-optimize-isl.cc
! 5ed212b8ec633ef7f1d27da78f1424b7  gcc/graphite-poly.cc
! 2b2ab84134d330d34f83d9872c0de6a5  gcc/graphite-scop-detection.cc
! d44cd125ab3c99d79e8cccbe85fabe5f  gcc/graphite-sese-to-poly.cc
! 7af988fd17a831eed5078a00265a19ee  gcc/graphite.cc
! 708970ae36fc989f26c04929ba44d2cc  gcc/graphite.h
! 2c4da615d43d5ea6b6ae53aea04ff9d7  gcc/graphviz.cc
! 9c8615505c334c613ffe98b2f253e71b  gcc/graphviz.h
! 36511eb1aff7df14b371e2fcf88e6756  gcc/gsstruct.def
! a11da99ea01ab362b42257f23b827fe4  gcc/gsyms.h
  c32a1d882e7039afe158bb9e59b65223  gcc/gsyslimits.h
  053ee4a84e4593c88c088f25e153d1a5  gcc/gtm-builtins.def
! 6551051526f14189daf252eb4fcb22e6  gcc/haifa-sched.cc
! 0a23aa78d1d487c91d9c0be7ccfeb6ec  gcc/hard-reg-set.h
! a99c776880123d6c03746655637ac7c5  gcc/hash-map-tests.cc
! b7231dda969a42fe903b86dee752d776  gcc/hash-map-traits.h
! d38d7d510d3cc5a984c46e816d224fdd  gcc/hash-map.h
! a61e5823195b52c7a55813a8eb445395  gcc/hash-set-tests.cc
! 19d8879272cd350100e858a3305c2b06  gcc/hash-set.h
! ef0ab5d029ce5433ed1e61e1aaf1d5a4  gcc/hash-table.cc
! de85ec660cc6cb3e984099ff8224531c  gcc/hash-table.h
! c1f18fd89ad6f40725143197768caf33  gcc/hash-traits.h
! 579c3975a880d6664e1fd3dfac6df6db  gcc/highlev-plugin-common.h
! d8426e8122d5822d569a2749becaca6d  gcc/hooks.cc
! cd10cba9facb0d8b9435d3db4c8d65d3  gcc/hooks.h
! bbbf3f9f6858b0db0d7fc6a04d2f009b  gcc/host-default.cc
! 8c40e4d87853da9baacc7f25a13a8fbd  gcc/hosthooks-def.h
! e289b6ec067a924d7da1581676f335ef  gcc/hosthooks.h
! b55e1edcda305f1f415ac47b8b849f10  gcc/hw-doloop.cc
! 954d5781f30be200430a90abd354007b  gcc/hw-doloop.h
! 54a3072f556cc43c511f0b254db57f06  gcc/hwint.cc
! 786d547769e850d6dc06e60da7997152  gcc/hwint.h
! 135f1f518d1db915efff619873d97e0e  gcc/ifcvt.cc
! 63147290b491f66fe0c4c2a417c32997  gcc/ifcvt.h
! 5c457f2c6fae9c201fd0f2a86f1f0307  gcc/inchash.cc
! 3722e0f8d58fa8c01a90bf5e51d09c1f  gcc/inchash.h
! a073c4a690942522ba0debda8658e726  gcc/incpath.cc
! d4814465ac14d7688e5370986421b03f  gcc/incpath.h
! 92f6f0b7ead32feeec7df55cdff81096  gcc/init-regs.cc
! f796fb99601d560c4a882b6ecfb1409c  gcc/input.cc
! 944a1d89c513fe3558253d1654d501e0  gcc/input.h
! 740305a2a1342aa8a719f477b11106b3  gcc/insn-addr.h
! fcd61155f90da565ae9b576ee28ece0d  gcc/insn-notes.def
! 73d4978deb1a86ccb6b004d076a2fc87  gcc/int-vector-builder.h
! 6cc45ccaf1a55265f34493f54bd36beb  gcc/internal-fn.cc
! 12b95e305549993d38ac59f46ff13cf7  gcc/internal-fn.def
! 6f5650312adfade2d0fbb8ea6d4334d8  gcc/internal-fn.h
! 5e2086cfd6bea225be01b38fb20580c1  gcc/intl.cc
! 228428e1fe66a4b0575040e005f4176b  gcc/intl.h
! 6fd24145bd08ca12fe502d97a9f5a8e9  gcc/ipa-comdats.cc
! 06f46c6cab0e3253770563c221bed1ef  gcc/ipa-cp.cc
! 4dcb4dc14308e9d673b88c990eda3bd6  gcc/ipa-cp.h
! aa24c8df356279d6ce416fe128425c9b  gcc/ipa-devirt.cc
! cb021054a0d7b95680345272766f9370  gcc/ipa-fnsummary.cc
! 4d15933705eb9fb001a9696a66b30b01  gcc/ipa-fnsummary.h
! 117a1658998132095938fbfe9f1c3320  gcc/ipa-free-lang-data.cc
! fc458242e4d89af79d87234a915dc194  gcc/ipa-icf-gimple.cc
! 8a31f5ba39b07e79fd108dc4cf03bc23  gcc/ipa-icf-gimple.h
! aea22aa7dcffc650cbf2b79399d1200b  gcc/ipa-icf.cc
! 4e2b3a6fc92f74f55cb009df722a941b  gcc/ipa-icf.h
! f261bcac4b8cf37d6506afca3539d2ef  gcc/ipa-inline-analysis.cc
! 440986ed37d72e7c0b83b6ff158daea8  gcc/ipa-inline-transform.cc
! da5b2b230a30a005631d64aadd848ab0  gcc/ipa-inline.cc
! e40310b8dee85f5c92031ddd41ba5409  gcc/ipa-inline.h
! 24222cc83624e3969f2fdf1d33d42339  gcc/ipa-modref-tree.cc
! 903cac1b9a72c89d66ebdaace79c5bbf  gcc/ipa-modref-tree.h
! 82c18db5c6bbaa70b0fffbaca9a0d18e  gcc/ipa-modref.cc
! b04d793fd14925e2ee9fadff3fdb4778  gcc/ipa-modref.h
! 4c04dbefd668da9c0f1cd206fbd6e755  gcc/ipa-param-manipulation.cc
! c0af2050309ae9c2d64886ab2cc82f36  gcc/ipa-param-manipulation.h
! 88cd4aec0f60db7b8e89075516093659  gcc/ipa-polymorphic-call.cc
! dffeb86886059ee4946f5ae58ddc8795  gcc/ipa-predicate.cc
! 101cc03ddf9f9080b5d66b2ce98476fd  gcc/ipa-predicate.h
! f8a371151ca20beb43daef408d2ab8ed  gcc/ipa-profile.cc
! 7f8b842c193cd02c33c526aaf7f180eb  gcc/ipa-prop.cc
! 1bd79a34546008cc30a65e9f6d6cae56  gcc/ipa-prop.h
! 7ea90675793de5530ec17d25408fee21  gcc/ipa-pure-const.cc
! 0e6ac1c741423dcc48c353e0b21998c8  gcc/ipa-ref.cc
! 353b596d7c17c74dee8e23f51acaeac6  gcc/ipa-ref.h
! 9376c27373880cb1bea1d9575ca5dc47  gcc/ipa-reference.cc
! ac94760a96824c2abcdafd7b64cc5dbe  gcc/ipa-reference.h
! 950232561dc0a0a3a0a60a89388daecb  gcc/ipa-split.cc
! 31b1e7b3fd9784eafa793b81a8ef9afa  gcc/ipa-sra.cc
! 8f04eaf4696591ee502a3fc058df2dab  gcc/ipa-strub.cc
! 493c50dde4490550d357d72ab27de47c  gcc/ipa-strub.h
! 50fd32fe61aaa2784cdbcddf7345a7fc  gcc/ipa-utils.cc
! 62c962a0a6cbd56a5f54a4b8e25dd9d1  gcc/ipa-utils.h
! 035deb24ae18e34e8f84d58b0fa4f4d0  gcc/ipa-visibility.cc
! 031cc0b31d16c0f3d23bd6397d93f926  gcc/ipa.cc
! d2e531da51c3e38dbe8f74af7cbe6b3e  gcc/ira-build.cc
! 9eda69537fecc0407ce4251faa62c6c7  gcc/ira-color.cc
! 65f1e2a7b3a6e1b029feea6d36ecb7d1  gcc/ira-conflicts.cc
! f54fe1284d8900294436e60d3fd31625  gcc/ira-costs.cc
! 5aac65f304aaaf08d39922717bc7e6fc  gcc/ira-emit.cc
! a30a056dff6af9270f6ae970fb3fb57e  gcc/ira-int.h
! ef0854666cbd038d8209494d1a373c8f  gcc/ira-lives.cc
! 770edb4b350ef11bb833679bd8f9f7a1  gcc/ira.cc
! 5945785e178cc3b55f096cadd208f4b0  gcc/ira.h
! aa966026e2f0035614eccce6be6b0754  gcc/is-a.h
! 01db61d7a85c125188ada2654cab1ff3  gcc/iterator-utils.h
! b19c3649a11a80998ad51a9d375094f8  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
! 70b77cc72d96de381dc9ff7916449297  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
! 346b9a75b88fb6744f12303659db0b13  gcc/jit/config-lang.in
  df53fb6b84c435b56ac2cb2727b62b27  gcc/jit/docs/Makefile
  aefe50c9e37a2e7a06545dbc6b38bbd4  gcc/jit/docs/_build/texinfo/Makefile
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/_build/texinfo/libgccjit-figures/factorial.png
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/_build/texinfo/libgccjit-figures/factorial1.png
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/_build/texinfo/libgccjit-figures/sum-of-squares.png
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png
! 633f33001ec9d8717b03440ff012370f  gcc/jit/docs/_build/texinfo/libgccjit.texi
! 88dcbb232286eea1c15661dbd70f51c0  gcc/jit/docs/conf.py
! c7c5ed13c2adb0ff0afc7ce09912ae17  gcc/jit/docs/cp/index.rst
! a7c17b4dc3bd4fa8001fb603d3acd04b  gcc/jit/docs/cp/intro/index.rst
! ee5f91fc0728f5524b1b48c4c111eafa  gcc/jit/docs/cp/intro/tutorial01.rst
! 50affcae615855b1e18b3a103161716d  gcc/jit/docs/cp/intro/tutorial02.rst
! 3a9c7cada1bb8528afe371689f38b2ed  gcc/jit/docs/cp/intro/tutorial03.rst
! fd02cbad218ade6e55fd0f10e9e05f23  gcc/jit/docs/cp/intro/tutorial04.rst
! 8011d10dde2813712153f086a250e7d0  gcc/jit/docs/cp/topics/asm.rst
! 7ef0b5f53c0392c86238ac854472bc67  gcc/jit/docs/cp/topics/compilation.rst
! b087e37adf4444fa90cd16564f147742  gcc/jit/docs/cp/topics/contexts.rst
! 9636db9b5aee013f94338be181f54a6d  gcc/jit/docs/cp/topics/expressions.rst
! 8ece987ef87d58436c52ac54efdce3be  gcc/jit/docs/cp/topics/functions.rst
! 84a6ee85f712c190a2d5f5c00f355e1f  gcc/jit/docs/cp/topics/index.rst
! 82815b77f7355e4e3f97b07f3998ab82  gcc/jit/docs/cp/topics/locations.rst
! aef66a357a57f2a400247871c5b29ff5  gcc/jit/docs/cp/topics/objects.rst
! 2315ac160d9ba9fb7bb32808c31fc638  gcc/jit/docs/cp/topics/types.rst
  98a4c0efa41e5eb7177483e4cd99a81e  gcc/jit/docs/examples/emit-alphabet.bf
! e13e019c395259207ee7a703cda87f11  gcc/jit/docs/examples/tut01-hello-world.c
! c9f59c382ce7499f3869bc73773f3f08  gcc/jit/docs/examples/tut01-hello-world.cc
! 9ebaab14af04652cbb2fe7c0e1cc2a51  gcc/jit/docs/examples/tut02-square.c
! 0fb0f77b60d476f4c9f13927e23765fc  gcc/jit/docs/examples/tut02-square.cc
! b925dd23038d44375a7de77509d60dda  gcc/jit/docs/examples/tut03-sum-of-squares.c
! efa39d12c4777eb6dac000dbb49c7621  gcc/jit/docs/examples/tut03-sum-of-squares.cc
  6369d2b07520cb0fc9d14082499f6be2  gcc/jit/docs/examples/tut04-toyvm/Makefile
  999c1d2b92d5d71565c67854aad60e9c  gcc/jit/docs/examples/tut04-toyvm/factorial.toy
  efe1998ded06ac3721d9ced4d96056f0  gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy
! b08a39aa5e0be4da7cb4a5aa059fccf2  gcc/jit/docs/examples/tut04-toyvm/toyvm.c
! ed5ad337b89c9c60b7fec7503067374a  gcc/jit/docs/examples/tut04-toyvm/toyvm.cc
  3cbe9daf70398730ee60aa4caf2fc200  gcc/jit/docs/examples/tut05-bf.c
! ec82879df8383ff5834b6310daaca2ce  gcc/jit/docs/index.rst
! 27f3109f76061f2b9a97607a11ed80d0  gcc/jit/docs/internals/index.rst
  d72502d68617b68873d385bcee6e9c4b  gcc/jit/docs/internals/test-hello-world.exe.log.txt
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/intro/factorial.png
! bfc8f40aa0981c37331b0a6cda614364  gcc/jit/docs/intro/index.rst
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/intro/sum-of-squares.png
! 1936d8719aab9e240bc5f0f983ad1777  gcc/jit/docs/intro/tutorial01.rst
! a39ca9662780850453752e606da0814b  gcc/jit/docs/intro/tutorial02.rst
! 8838f89508b261848687daa2afe573fa  gcc/jit/docs/intro/tutorial03.rst
! 1bf72f5edadaa9cd3e070f966376e4d7  gcc/jit/docs/intro/tutorial04.rst
! 56d1ea2875a2084769ec0194706ba3ae  gcc/jit/docs/intro/tutorial05.rst
! a0c6795f1489fb8721800da09b9e02d7  gcc/jit/docs/topics/asm.rst
! fe6ed4dd33120c08c3b51757a07af6fb  gcc/jit/docs/topics/compatibility.rst
! f54f46a6d6edef24b2d8ae5b7e2ac36d  gcc/jit/docs/topics/compilation.rst
! d63809643e7f2edf603b18d9e7aaf61f  gcc/jit/docs/topics/contexts.rst
! 403825c54dd2973a0e9d83091bbf8e73  gcc/jit/docs/topics/expressions.rst
! df8c18c6224f909c4382954b71b161eb  gcc/jit/docs/topics/function-pointers.rst
! 28e880cee3325ac793edd85d58b723f8  gcc/jit/docs/topics/functions.rst
! e8fd0e2972405b61ec981eaa4b009c58  gcc/jit/docs/topics/index.rst
! dfc024d359bb5095bef5e77df52effe4  gcc/jit/docs/topics/locations.rst
! c9749ce4c8e98d080353efd8b159d911  gcc/jit/docs/topics/objects.rst
! aada83355b14a998761689611d0f7709  gcc/jit/docs/topics/performance.rst
! 75844413eb8a3e7e50d61142f037b95e  gcc/jit/docs/topics/types.rst
! d1819c5f8308cd1b61327e08827405be  gcc/jit/dummy-frontend.cc
! db41fb04e11c07a7d65ba2a125226c46  gcc/jit/jit-builtins.cc
! f33f03d4e1ce029f28052f42352d712e  gcc/jit/jit-builtins.h
! 9ee76ada0ee7f3e0a671b6e7a9cb2c4b  gcc/jit/jit-common.h
! fab58a8ff6203b2894e9fb6b288a1447  gcc/jit/jit-dejagnu.h
! 0f709c95254339252630fbba426f130f  gcc/jit/jit-logging.cc
! 8f3912179e5be27e4ccdcebf61666a84  gcc/jit/jit-logging.h
! 5a37f50700883a51a7343837cc89a02c  gcc/jit/jit-playback.cc
! 37995dea2a14de02f6f1348824a00d96  gcc/jit/jit-playback.h
! bce7ca954fce3886d3c952be969973da  gcc/jit/jit-recording.cc
! b0c77b313946d5604a09c3dd78c68b8d  gcc/jit/jit-recording.h
! e882618068af539651ecb240fe44f334  gcc/jit/jit-result.cc
! 2329ce8800e6a8caeccf37da53f4e0a4  gcc/jit/jit-result.h
! 2e5089baede413d13113fd9232def90b  gcc/jit/jit-spec.cc
! 1fa77a66351a16ba1ee0c2cba1f11400  gcc/jit/jit-tempdir.cc
! 3cc2b7789edee70a2cce3546d470b0d4  gcc/jit/jit-tempdir.h
! 0503d6abd005001e1a08b8467b2ccd84  gcc/jit/jit-w32.cc
! fa2705c97d7625e301854e0dc322c73d  gcc/jit/jit-w32.h
! d26f451856f27c8fb77a4df97e752c06  gcc/jit/libgccjit++.h
! c5cf3217fe3f5e1401fdb715cf884b6f  gcc/jit/libgccjit.cc
! f7cbb136670c625f0a873b119089206b  gcc/jit/libgccjit.exports
! 7a6126bf797964f077988f19784d70e8  gcc/jit/libgccjit.h
! 352a2ac876cd8350853443f800d51196  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
! 8b3f2589f4a18a5ee6ee0a579d9fcbd8  gcc/json.cc
! 116a3a838fad487ce0193d58065f1fd2  gcc/json.h
! 4f99068897aa042b1927410bb6410a28  gcc/jump.cc
! f67bf839aeb30bc257c67e6bf6428204  gcc/langhooks-def.h
! b2ef2f78704bc82654ee06aee1feaf47  gcc/langhooks.cc
! 0ffe3db68a5aa8a605da75d0e570be34  gcc/langhooks.h
! 878e480c910814d2edb966fd0da7014d  gcc/lcm.cc
! ab4586670031f1c5020a6acac7f38b6e  gcc/lcm.h
! cdd40eeb7fd437c3a8c407fc1d078eba  gcc/libfuncs.h
! 996fa0ebf3c49ab92723541ca6677df9  gcc/limitx.h
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
! 5d9256897f216818949bf39c29692455  gcc/lists.cc
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
! a22c6a2b44962887016aec34f8a38d4a  gcc/logical-location.h
! a01300c02d557ff9f18a3bf3166b991f  gcc/loop-doloop.cc
! 5c9db7dde074cd611d88fbe5fb1e0356  gcc/loop-init.cc
! 135be822402b1de4544962776bdd386c  gcc/loop-invariant.cc
! cc450e58fd59be4e3a300ba898d94ee5  gcc/loop-iv.cc
! 5bc24636f3cc35b744d15b92c6ce2683  gcc/loop-unroll.cc
! 8e4e8455b9edf2ef634827624e7c598f  gcc/loop-unroll.h
! 5311260e961dd22d7cec11aeeee45781  gcc/lower-subreg.cc
! 14dd7339d4d9c29f7462a093e4881147  gcc/lower-subreg.h
! de69ffd666d467def1646c24270ea2c9  gcc/lra-assigns.cc
! a62046a3f62b3ccf836000569a375ade  gcc/lra-coalesce.cc
! 0830a4442865705d005e8cf22ff22336  gcc/lra-constraints.cc
! 70a8abdd45bcea7a12630d9341f827e4  gcc/lra-eliminations.cc
! 5534388e8801fd9d3f82413c23fdc5f4  gcc/lra-int.h
! 642aa6eb2e4f0f3bddc8b0c181835618  gcc/lra-lives.cc
! 6a5e600c1b20b3604f6113e15ec9e761  gcc/lra-remat.cc
! f82e226fe4d03cd57487f05c70be1ebd  gcc/lra-spills.cc
! 1548c4418fa356fa5b47b356107dbcbf  gcc/lra.cc
! fa24e9dabcdec01373321b3a591203db  gcc/lra.h
! 24dcf9fecc311d0aa900ca185e76ca47  gcc/lto-cgraph.cc
! ccc034ae6c8dc1fdf91cb51b48df795d  gcc/lto-compress.cc
! ec714077503e5b5e98f20d57a48ded3e  gcc/lto-compress.h
! 87f4357b156f65021eba574aa36f2133  gcc/lto-opts.cc
! ab906c255c72a4bab78c51ebfbed8a52  gcc/lto-section-in.cc
! 1e152d3b953eacf39fda610e419a6e40  gcc/lto-section-names.h
! 781e3721dde5d2c38297cbd12d0bd345  gcc/lto-section-out.cc
! a07c89837c969ab21785ed67be67ad49  gcc/lto-streamer-in.cc
! f41f3240af59c920785f7ad7373f06c9  gcc/lto-streamer-out.cc
! 2916ac789715a6c1398f1322b6b937db  gcc/lto-streamer.cc
! 5c0abe5215dcb405391bf4047b52d8c5  gcc/lto-streamer.h
! 48aebd3d22a8b7467fc98ce90e73cc99  gcc/lto-wrapper.cc
! c48fde0863e08d48a09c91e9fc402f81  gcc/lto/ChangeLog
! b32abe0dfb9c9271f0bda635d92fa0d1  gcc/lto/Make-lang.in
! 9f59490a66de9aa5822b069eef35b0ec  gcc/lto/common.cc
! 770a74217f81f6124a1081aad362ee00  gcc/lto/common.h
! ae0dba9d0013e4c8cedcdd03afa46f86  gcc/lto/config-lang.in
! ca7eb1cb6f46e46d89b0bd2d24fa7224  gcc/lto/lang-specs.h
! 3d17fd327034a3b2340ce163e802bbfc  gcc/lto/lang.opt
! e09c982f34fcc53d88fb9b974a77d569  gcc/lto/lang.opt.urls
! a24f36ddd07ecc2f8d99fe518f7f69c7  gcc/lto/lto-common.cc
! cae920ee0ecb9f75f85298db508074be  gcc/lto/lto-common.h
! 2ff531281d36cf4cb5ebf9d9bfa44d83  gcc/lto/lto-dump.cc
! 9371b719ce0fc231f11fc9f406670e0d  gcc/lto/lto-lang.cc
! 7e0d46f2934717756ee9c73aeb0e9c32  gcc/lto/lto-object.cc
! 139ffa7af7bcb2725f13712054826d61  gcc/lto/lto-partition.cc
! bc2082d166bc49e5fde949d6a3b20250  gcc/lto/lto-partition.h
! 90a6dcec53a9b5d3f7f2164e7f94636e  gcc/lto/lto-symtab.cc
! 1027da9d97d59eb02c9380864aa7f88f  gcc/lto/lto-symtab.h
! b6f8f59d247cdb7bbe7ca9c4e3d5aed5  gcc/lto/lto-tree.h
! 45c9f57e8b2385b28db0bf87f25f8ffb  gcc/lto/lto.cc
! b87a73403ed413be57acb8b88a00edbf  gcc/lto/lto.h
! a12e66ceee57af9bf581b69a6bc80391  gcc/m2/COPYING.FDL
! ddf5e06ee9ecc65f914a821be9c5d30a  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! bf918c5dcc7915623c5068a278141db8  gcc/m2/ChangeLog
! e109a35b7aa7add2680991d40ec5b1d7  gcc/m2/Make-lang.in
! d07ec3c77c38a8256e7022241090ee1e  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
! 3e6a5f14d741382ac3cffb2b6c8d2ce8  gcc/m2/README
! 1597bf5bb1fef61a647a0212d434d6a9  gcc/m2/config-lang.in
! 453bdaa9a532e423fb527f964f5b88d1  gcc/m2/config-make.in
! 1fedeef70a344a1d73c4f25535361d16  gcc/m2/configure
! 2644bd3c47f1b20b96236a3631b7a99b  gcc/m2/configure.ac
! c242f8a112215dda7d96953c1f43ed63  gcc/m2/gm2-compiler/CLexBuf.def
! 41174e9c0e13e8353670eef0deb1f074  gcc/m2/gm2-compiler/CLexBuf.mod
! 74e941e55cb45131b7fe9b985f74cb78  gcc/m2/gm2-compiler/DynamicPath.def
! 21349a5fd4ac77e668e50fdcece0cf13  gcc/m2/gm2-compiler/DynamicPath.mod
! c2fc0c672a20cdf11de324f0991a2519  gcc/m2/gm2-compiler/FifoQueue.def
! c121090d338a239856b67ad6257efff5  gcc/m2/gm2-compiler/FifoQueue.mod
! 4a878ef3ce8957f86d3c517cc3b781db  gcc/m2/gm2-compiler/Lists.def
! 541f66585075bc143de1fef1a328a99f  gcc/m2/gm2-compiler/Lists.mod
! 5b2b260d8a3796d9f2e483ac775932c8  gcc/m2/gm2-compiler/M2ALU.def
! 4ec7accb532eb10ae1dcc10d3ebeabb7  gcc/m2/gm2-compiler/M2ALU.mod
! c7b7d5f8b969c19a17d8ab990bed2e35  gcc/m2/gm2-compiler/M2AsmUtil.def
! 69fb068a1df00dacda5fe570e041dbdd  gcc/m2/gm2-compiler/M2AsmUtil.mod
! 0e8537c9eab0bc92c6e0aa2d9475e9ec  gcc/m2/gm2-compiler/M2Base.def
! 04a8355c3a72f01d05f07b33e0797aa4  gcc/m2/gm2-compiler/M2Base.mod
! 853852a68f98c33e8fbf49df200b64b3  gcc/m2/gm2-compiler/M2BasicBlock.def
! cc47691560b29767b1bba9a3df230bb9  gcc/m2/gm2-compiler/M2BasicBlock.mod
! 44435d528c37d7f1251035681f7d05dc  gcc/m2/gm2-compiler/M2Batch.def
! 3c60b3d799dc719833533cce7d9adb7e  gcc/m2/gm2-compiler/M2Batch.mod
! 746921ea3afefdf42ad462f6c86d80e7  gcc/m2/gm2-compiler/M2Bitset.def
! fb7ff8e0d4889ed7d9ea35c6424057bb  gcc/m2/gm2-compiler/M2Bitset.mod
! 35b66531c52f64d53e16ad662b169765  gcc/m2/gm2-compiler/M2CaseList.def
! b6b650ea33dc67e8552bbdcea48dec64  gcc/m2/gm2-compiler/M2CaseList.mod
! 3840dd86e1598597707a18463deac14f  gcc/m2/gm2-compiler/M2Check.def
! e70477328325ca5113f130edb4bd1156  gcc/m2/gm2-compiler/M2Check.mod
! a760424620afd31b9c0b1f70140fa593  gcc/m2/gm2-compiler/M2Code.def
! d86cdd185010f5729efcca5f6aaa1603  gcc/m2/gm2-compiler/M2Code.mod
! 32e057e04912c393f60ca6550a7b1e5b  gcc/m2/gm2-compiler/M2ColorString.def
! 720a33688b9e9926814823746731b115  gcc/m2/gm2-compiler/M2ColorString.mod
! e2a2fbd854ba3dda93745e3a3abec592  gcc/m2/gm2-compiler/M2Comp.def
! 3359fa7eb037a79bac055d026fb3e83a  gcc/m2/gm2-compiler/M2Comp.mod
! 33318154d17ce53775015fb8a90b5af0  gcc/m2/gm2-compiler/M2Const.def
! 1415c87746f9f7cd69a25e7e67b308e0  gcc/m2/gm2-compiler/M2Const.mod
! 778683907322f0a4190a06bde7f3177f  gcc/m2/gm2-compiler/M2Debug.def
! 833834ea9bcbf1706468e29e099c8b15  gcc/m2/gm2-compiler/M2Debug.mod
! 7f32b58decd352b11e40052091047514  gcc/m2/gm2-compiler/M2DebugStack.def
! d6d32e79826a72e4add826cd5ff123bf  gcc/m2/gm2-compiler/M2DebugStack.mod
! 42fd8544caff2da68b266938a9c05acf  gcc/m2/gm2-compiler/M2Defaults.def
! 4bbd72475a9c0bee8e1f1f4e81450909  gcc/m2/gm2-compiler/M2Defaults.mod
! f7d36389b7a337a695b3a1705b0a13b4  gcc/m2/gm2-compiler/M2DriverOptions.def
! c5a8b3af83fccc8888905e8303e0bef2  gcc/m2/gm2-compiler/M2DriverOptions.mod
! 756299c6e3b608626e2ecfe0e73f8cbb  gcc/m2/gm2-compiler/M2Emit.def
! 163303f6f0d4f5dab34ef9195d4259ca  gcc/m2/gm2-compiler/M2Emit.mod
! 1ec0ab3d79d83670a50dc669920bb15d  gcc/m2/gm2-compiler/M2Error.def
! 4702be0551f025994cd104248224628b  gcc/m2/gm2-compiler/M2Error.mod
! 33132d7b732c8b530d29b96189a0add0  gcc/m2/gm2-compiler/M2EvalSym.def
! 2b17151111a033644a413d71861b7105  gcc/m2/gm2-compiler/M2FileName.def
! 6f1d5b5406f193db9117dc0f08d447c3  gcc/m2/gm2-compiler/M2FileName.mod
! 4d81d13a3eb900daa981a466486abeb4  gcc/m2/gm2-compiler/M2GCCDeclare.def
! 4ac7a631e8db4cc0ece3f468fcbce8f6  gcc/m2/gm2-compiler/M2GCCDeclare.mod
! 2a4bee6d7053e4f77a1cdff25f0c746c  gcc/m2/gm2-compiler/M2GenGCC.def
! 7935129397672757edcb40d2665a0541  gcc/m2/gm2-compiler/M2GenGCC.mod
! 8dac4ecc2b699bcd668d053b2adfbf07  gcc/m2/gm2-compiler/M2Graph.def
! 1291c11066be829aea2cb7f0ad6869ef  gcc/m2/gm2-compiler/M2Graph.mod
! 16ab6563a2402302c3746ea3f392214c  gcc/m2/gm2-compiler/M2LangDump.def
! 3b7704f1fcf3f8df30220a868abca9e0  gcc/m2/gm2-compiler/M2LangDump.mod
! a8b16cbb7f1dea1e5684bc7fb72e9cc6  gcc/m2/gm2-compiler/M2Lex.def
! 8172950bbbb1f6a5b520f912073d5c42  gcc/m2/gm2-compiler/M2Lex.mod
! e8251c6c45f9274d54a1c634044eb249  gcc/m2/gm2-compiler/M2LexBuf.def
! 61c76d22c0b53b44dc28440a6ca83769  gcc/m2/gm2-compiler/M2LexBuf.mod
! 092f1e43efa453af24323c637eb1eb1b  gcc/m2/gm2-compiler/M2MetaError.def
! af7dc49cb9aad0be9120da15aac5a881  gcc/m2/gm2-compiler/M2MetaError.mod
! f038d2c8d4d8b0d82a0a7766f267f951  gcc/m2/gm2-compiler/M2Optimize.def
! c1cf33ae85635a4deb859551d0d620d4  gcc/m2/gm2-compiler/M2Optimize.mod
! 8030135d43f24d7fdbbd34c1f77615ab  gcc/m2/gm2-compiler/M2Options.def
! fdccce7fe996c02b84734d389c591138  gcc/m2/gm2-compiler/M2Options.mod
! a5d4995c7be30bce7de076224465559f  gcc/m2/gm2-compiler/M2Pass.def
! 77fd2f6857747176d465bce50536f1c5  gcc/m2/gm2-compiler/M2Pass.mod
! 533e6902379e72b468bc2e26cd38533d  gcc/m2/gm2-compiler/M2Preprocess.def
! a281b01eb990dd08e23e712a186c4965  gcc/m2/gm2-compiler/M2Preprocess.mod
! b366f55e1b3608682cb596553a58ad78  gcc/m2/gm2-compiler/M2Printf.def
! ee42654e0778bb52226457d80c2af746  gcc/m2/gm2-compiler/M2Printf.mod
! 2150190063f8a70a2660c6e9a20868a0  gcc/m2/gm2-compiler/M2Quads.def
! 2c5f2c8e79897a345e3290fe518687bd  gcc/m2/gm2-compiler/M2Quads.mod
! 9263a20d2f2a4241178e9bc0e9833867  gcc/m2/gm2-compiler/M2Quiet.def
! 450aa9c2da5d6eb0f6d43cef82ea788c  gcc/m2/gm2-compiler/M2Quiet.mod
! 5cb31805c7e34b82c2792e9237e861d6  gcc/m2/gm2-compiler/M2Range.def
! b7290e6089513132763162c73f289a71  gcc/m2/gm2-compiler/M2Range.mod
! 472012c6145240e6918545942096cd88  gcc/m2/gm2-compiler/M2Reserved.def
! 4b5964db5c79c161474e458b31f0e97c  gcc/m2/gm2-compiler/M2Reserved.mod
  ed9342d46dccb1fef2e7dd1b2a268c89  gcc/m2/gm2-compiler/M2SSA.def
! 352b0466bf14f8dab5ea6f0d5bbc2995  gcc/m2/gm2-compiler/M2SSA.mod
! 91369afea7ba603f2cba2171cb22d408  gcc/m2/gm2-compiler/M2Scaffold.def
! a7e0dbf0314225673299cf6dd4288017  gcc/m2/gm2-compiler/M2Scaffold.mod
! 3b03e1c7f5b4176e1edb213a211dce87  gcc/m2/gm2-compiler/M2Scope.def
! ee3a843b3500e64d6412f59ae2e47142  gcc/m2/gm2-compiler/M2Scope.mod
! 438971afd545c7051a033d0ff4992e0a  gcc/m2/gm2-compiler/M2Search.def
! 21ccff95904db0ce8e673f07380be5ed  gcc/m2/gm2-compiler/M2Search.mod
! 511387729ed007cfc51bacb18a25a284  gcc/m2/gm2-compiler/M2Size.def
! 6eebb13c07050085eaef4c7627daf8a7  gcc/m2/gm2-compiler/M2Size.mod
! b270a814fb9cce65fc1481c41b5ff3e0  gcc/m2/gm2-compiler/M2StackAddress.def
! a59f9cb991f70d33962a907b6d5562e0  gcc/m2/gm2-compiler/M2StackAddress.mod
! 1a1de9fb47d3ca5679d187b4df272f0c  gcc/m2/gm2-compiler/M2StackWord.def
! e7da36b120be5c9d848ee02796a8f56c  gcc/m2/gm2-compiler/M2StackWord.mod
! 580d3e5f6d50231dcd7db9f8406ea6dc  gcc/m2/gm2-compiler/M2Students.def
! 979ad0f74256dd5f84d1367ea6cdb244  gcc/m2/gm2-compiler/M2Students.mod
! 4a458571a74cdd89716fff963f7a1682  gcc/m2/gm2-compiler/M2Swig.def
! fdc12adf2ff51392afcf4eaa7d04d8f3  gcc/m2/gm2-compiler/M2Swig.mod
! 460b6c0971ade68a8dbb6170060bf0c3  gcc/m2/gm2-compiler/M2SymInit.def
! c31036000bec50da1d5b8775c39ae4a6  gcc/m2/gm2-compiler/M2SymInit.mod
! 6246b393c5b92835721e3a8ce7352dcb  gcc/m2/gm2-compiler/M2System.def
! 6b77228ae57987a75738ade84ece207c  gcc/m2/gm2-compiler/M2System.mod
! 5a7e992bd60d8ceac917f3c479ff7dd3  gcc/m2/gm2-compiler/M2Version.def
! 7c9886a293f05596be8582e6358ce6e9  gcc/m2/gm2-compiler/NameKey.def
! 88ed55ad74451dae56d5dfb67e22cf0c  gcc/m2/gm2-compiler/NameKey.mod
! de802378c709d2b9572057469c44c0d5  gcc/m2/gm2-compiler/ObjectFiles.def
! 9cf0129e5f8ce3cf9f1cca02ae0d9a15  gcc/m2/gm2-compiler/ObjectFiles.mod
! 298481e0b67429a7be31018ef72a18a0  gcc/m2/gm2-compiler/Output.def
! 12b3e077e0f5b5ba04e99162ea1804f8  gcc/m2/gm2-compiler/Output.mod
! c9a76efacc302fa403657bdc1fa97cd4  gcc/m2/gm2-compiler/P0SymBuild.def
! fb4c88e4dc095943c13b27269cc221a6  gcc/m2/gm2-compiler/P0SymBuild.mod
! b7fe7733dcbb706ebbb83498f7c6b799  gcc/m2/gm2-compiler/P0SyntaxCheck.bnf
! b1a2b1af054acd7be865a09e7eaf3555  gcc/m2/gm2-compiler/P0SyntaxCheck.def
! f8097c4e2b04781b57bb47b6db3f955b  gcc/m2/gm2-compiler/P1Build.bnf
! 33a74c58f4ecbc58789d9658eb978596  gcc/m2/gm2-compiler/P1Build.def
! a1e00b272a977b6f750aa83463c4e4ed  gcc/m2/gm2-compiler/P1SymBuild.def
! 10b3ae3a3a1fcd62cb5188eafb812946  gcc/m2/gm2-compiler/P1SymBuild.mod
! 7884b1f7bb4d42bf44686e23128e8e1d  gcc/m2/gm2-compiler/P2Build.bnf
! 23753bdf38bd19eb8d323b0770f903d7  gcc/m2/gm2-compiler/P2Build.def
! 549a010738a056d3c025617a2d7d1a3a  gcc/m2/gm2-compiler/P2SymBuild.def
! 91b1a1d4aa6d16d8606db1eb05355da8  gcc/m2/gm2-compiler/P2SymBuild.mod
! 46357e1e5bc5ddf8c150c33321d64172  gcc/m2/gm2-compiler/P3Build.bnf
! db4dbfbc38b13a1d958c8fe6599565c5  gcc/m2/gm2-compiler/P3Build.def
! 68284e06712f161aef4d9bbce6d7b0a7  gcc/m2/gm2-compiler/P3SymBuild.def
! a2a328955d28af69e0025cef9adaa43c  gcc/m2/gm2-compiler/P3SymBuild.mod
! df746463f8a3a7325cb13c84e5396199  gcc/m2/gm2-compiler/PCBuild.bnf
! 13e139c655e7c28ef198c307036ef154  gcc/m2/gm2-compiler/PCBuild.def
! 4f6d88cc54f8e04b5710b6eb4698ad30  gcc/m2/gm2-compiler/PCSymBuild.def
! f2520463dbf279b9db4d7bf32bcdb4fb  gcc/m2/gm2-compiler/PCSymBuild.mod
! 9b609b15afa44a3cce63b967da669da5  gcc/m2/gm2-compiler/PHBuild.bnf
! 6865c2207174163fa18136d225893807  gcc/m2/gm2-compiler/PHBuild.def
  b521bc37b844fd46fdfddcf3d2287f13  gcc/m2/gm2-compiler/PathName.def
  96de7226734080944c4bdf83b7dbb0ca  gcc/m2/gm2-compiler/PathName.mod
  db0fe572d275f12368c3037e218c3bd6  gcc/m2/gm2-compiler/README
! de4abbe13d22c2fbf38a6780a9ae8d0d  gcc/m2/gm2-compiler/Sets.def
! 43abcb072180ab44ffd9739ff1b690ac  gcc/m2/gm2-compiler/Sets.mod
! c3ebcf617650465a92b455b43e92ca80  gcc/m2/gm2-compiler/SymbolConversion.def
! 8126706b7981f1bb400efa0e1cbc0a09  gcc/m2/gm2-compiler/SymbolConversion.mod
! 41972f3f39c091b1c8249219bd0ebf3f  gcc/m2/gm2-compiler/SymbolKey.def
! 8aa6ffb9e49ebeb3d9374af098e95f9b  gcc/m2/gm2-compiler/SymbolKey.mod
! 04d39f5d2b5be70d7ad8e5122124237e  gcc/m2/gm2-compiler/SymbolTable.def
! 535865bc940fd7450cf59446cf538b73  gcc/m2/gm2-compiler/SymbolTable.mod
! 0d97cb56efbe07ec9cb6789be4e6cd49  gcc/m2/gm2-compiler/bnflex.def
! 23301e9e73a50c3c30aa67012bb388d9  gcc/m2/gm2-compiler/bnflex.mod
! 9c7e494a1368a048910ab2bbbadd0930  gcc/m2/gm2-compiler/cflex.def
! 42b4645ade88115524d819c73ca6cadd  gcc/m2/gm2-compiler/gm2.mod
! f80ebf90fc6e7edcac5de6509a588209  gcc/m2/gm2-compiler/gm2lcc.mod
! 4ba96451577f1718512cfafd5970e3df  gcc/m2/gm2-compiler/gm2lgen.mod
! 4191e3f83d6ccddcc65f3cbea8e339da  gcc/m2/gm2-compiler/gm2lorder.mod
! ebfb5f59007045d485d8ea2307ded24b  gcc/m2/gm2-compiler/m2flex.def
! e688304297693e195e6d572673527bff  gcc/m2/gm2-compiler/ppg.mod
  4ff5d76d706ef1de0bbdca3ebaff7877  gcc/m2/gm2-gcc/README
! 49eb0dec7ff84f656800986858ffad19  gcc/m2/gm2-gcc/dynamicstrings.h
! 8fb09c851db6aa1eed7533516c4aeab4  gcc/m2/gm2-gcc/gcc-consolidation.h
! 42dbff9e61e0e96aa196ec925c963e23  gcc/m2/gm2-gcc/init.cc
! 5d782059dc31e4b33f4d834c437a93d4  gcc/m2/gm2-gcc/init.def
! c4112616022628588af3e87a493ddfc4  gcc/m2/gm2-gcc/init.h
! 04e8d7beb2050123fd44439e97fdddf5  gcc/m2/gm2-gcc/m2assert.cc
! 9fb9a31d18e80094d6cf40f96016f9eb  gcc/m2/gm2-gcc/m2assert.h
! 3054424e692a1d437254201dc2a412e1  gcc/m2/gm2-gcc/m2block.cc
! ed9744371d366f0acb1069e738f7e11e  gcc/m2/gm2-gcc/m2block.def
! 5117a5edf14651403ee17e13264e3d52  gcc/m2/gm2-gcc/m2block.h
! 58b00434f469525d03bc1cfa6be7cd0c  gcc/m2/gm2-gcc/m2builtins.cc
! af56d90ba9a8ea1f7aeb0bd57ccd7d99  gcc/m2/gm2-gcc/m2builtins.def
! 71e3134e402e01183c4d3a77bd772fb1  gcc/m2/gm2-gcc/m2builtins.h
! 1b139f52599a15052d2fdabf52223b26  gcc/m2/gm2-gcc/m2color.cc
! a893bfe9ff0514ffedadd60220e47797  gcc/m2/gm2-gcc/m2color.def
! ba30dc00f4a34c0a81cecc55a44d3796  gcc/m2/gm2-gcc/m2color.h
! ae77038c952780616d160d881e302b47  gcc/m2/gm2-gcc/m2configure.cc
! a5878a5e779f39cf985c298d4c530b28  gcc/m2/gm2-gcc/m2configure.def
! 025de9331d8239d4f0916bdce98879bc  gcc/m2/gm2-gcc/m2configure.h
! 0b3a7f703a25810f64829a2004c9b59b  gcc/m2/gm2-gcc/m2convert.cc
! 32dd7d108a7bbc14a660c240e3f2d5e6  gcc/m2/gm2-gcc/m2convert.def
! 1b5f05b99e203b197080beb68f9303de  gcc/m2/gm2-gcc/m2convert.h
! 40b528bf0ec40f4b21ea3b9102aa0efe  gcc/m2/gm2-gcc/m2decl.cc
! dea63dbe29933bb9cc0afa664b06fabc  gcc/m2/gm2-gcc/m2decl.def
! 6763284c824c80add0098f90126cd86a  gcc/m2/gm2-gcc/m2decl.h
! fafc21c3c1b399157c25271e524f82a9  gcc/m2/gm2-gcc/m2except.cc
! 6255efd627d9c07c59f043dc524d52e7  gcc/m2/gm2-gcc/m2except.def
! b7be91a3c825484fbdb172c3aaf2c017  gcc/m2/gm2-gcc/m2except.h
! 396345c2b77018934b7a5a8f99467554  gcc/m2/gm2-gcc/m2expr.cc
! 8f0fc78a74f06da3f843b47cc42312a2  gcc/m2/gm2-gcc/m2expr.def
! ff4f47d1c67ef4783289e8d081747a9e  gcc/m2/gm2-gcc/m2expr.h
! 03ce849ebaf10d66eb34f28e3bca6709  gcc/m2/gm2-gcc/m2langdump.h
! 00b95b65ac2209a80d038f2268000d80  gcc/m2/gm2-gcc/m2linemap.cc
! f1c923c80b7d3d2bb842645a86313295  gcc/m2/gm2-gcc/m2linemap.def
! 821f3e79cedef97f2341696c8cac9832  gcc/m2/gm2-gcc/m2linemap.h
! 82b298da9948eba21cb239124dda0cdf  gcc/m2/gm2-gcc/m2misc.cc
! 659af758aeac63b2609bbc16afbe52a3  gcc/m2/gm2-gcc/m2misc.def
! b23a4eba1479b410d08237d5725b6aef  gcc/m2/gm2-gcc/m2misc.h
! 3f1e60310001d38b77eec62183947cf2  gcc/m2/gm2-gcc/m2options.h
! 2ae88b70d331030ef7b376a44b6cffe7  gcc/m2/gm2-gcc/m2pp.cc
! 8eb4b1e8ef95c08923b8099b647d4437  gcc/m2/gm2-gcc/m2pp.def
! ecc9774820b68f21aca81a338aa465de  gcc/m2/gm2-gcc/m2pp.h
! 38d1aaeb330f781b7ca9c2a7480f6bcf  gcc/m2/gm2-gcc/m2range.h
! 930d1fa08aa084c0997e08ee3250611d  gcc/m2/gm2-gcc/m2search.h
! 368fcca05a9c9b9d16c8cd85ae8809ef  gcc/m2/gm2-gcc/m2statement.cc
! d698bbe28c09131e0ae5a09f38e7b6c4  gcc/m2/gm2-gcc/m2statement.def
! 4e729179a9aa54a17466c102503c964e  gcc/m2/gm2-gcc/m2statement.h
! f3729277db158fdb0c2438bdf3601022  gcc/m2/gm2-gcc/m2top.cc
! ea440cd794f0c6bce030aabc4b6a0871  gcc/m2/gm2-gcc/m2top.def
! f52ee0aa6d372a62b087894ee94ea7c8  gcc/m2/gm2-gcc/m2top.h
! 3b7ce981ea5cab946d204fea02850399  gcc/m2/gm2-gcc/m2tree.cc
! 8a48e41b9caf0b9b977b011463eb4a04  gcc/m2/gm2-gcc/m2tree.def
! 6093d3be2094dcb479ae8a63c121b9b8  gcc/m2/gm2-gcc/m2tree.h
! bcbbaa7833037a89b7459d961ef1ba38  gcc/m2/gm2-gcc/m2treelib.cc
! e47b369773b8a6d9116548bddfe5b284  gcc/m2/gm2-gcc/m2treelib.def
! 3ecec3ce12d16d305f25bab191e132db  gcc/m2/gm2-gcc/m2treelib.h
! 03012e6553a3f7fb5f87b0446985d8b6  gcc/m2/gm2-gcc/m2type.cc
! 060a384708fd2c813b61ef0f09c10b3e  gcc/m2/gm2-gcc/m2type.def
! 9d80268d9fcfee9c35e20cf2b6154b3c  gcc/m2/gm2-gcc/m2type.h
! 7b1594f9ebabeca4b66f9f02d0364af0  gcc/m2/gm2-gcc/rtegraph.cc
! 1e15b65b13560d0746ba3fde8aa4d76e  gcc/m2/gm2-gcc/rtegraph.h
! 29c45d74546a91365fe126f9ce500d7a  gcc/m2/gm2-ici/M2Emit.mod
  d5db4a0704741e24958241fe74fd007c  gcc/m2/gm2-ici/README
! bdbaa6602e8c8e443d023dc1dd0092ab  gcc/m2/gm2-ici/m2linemap.c
! 8a372cb25c6bfd2b8e5f72ceaedad375  gcc/m2/gm2-internals.texi
! 72998f43ba7074a93b3770fa080c218e  gcc/m2/gm2-lang.cc
! f5757166dd928fd51816c6319466f83f  gcc/m2/gm2-lang.h
  2b1d730bdeb600463475d3bb94f17f12  gcc/m2/gm2-libiberty/README
! 2579590dacc71d843c7bab179acdee90  gcc/m2/gm2-libiberty/choosetemp.def
! 78b8677810f6f2fbec52f5eb252d5bc2  gcc/m2/gm2-libiberty/pexecute.def
! 5b18a24843b0d03211cfecad8c73b03e  gcc/m2/gm2-libs-ch/M2LINK.c
  62fbe07131fda60be5a71a8773c3dcd4  gcc/m2/gm2-libs-ch/README
! 8944257b1b8207078a547d1d7ec9efbe  gcc/m2/gm2-libs-ch/RTcodummy.c
! c338a26bca4d1d36ca6cd8ed47d4688d  gcc/m2/gm2-libs-ch/RTintdummy.c
! 78ed9763a9622d1fd4bf018f303963dd  gcc/m2/gm2-libs-ch/Selective.c
! a093305c80b152a0a92a7381b2abacc3  gcc/m2/gm2-libs-ch/SysExceptions.c
! e2b561b05a6040ccc43c658562459986  gcc/m2/gm2-libs-ch/UnixArgs.cc
! 3967385ced4705eb9f766369624f4cfe  gcc/m2/gm2-libs-ch/cgetopt.c
! 9da7b841cd1a1c4137567a80d36237f3  gcc/m2/gm2-libs-ch/choosetemp.c
! fe558d0222c99caf1e1d98386b204df8  gcc/m2/gm2-libs-ch/dtoa.cc
! 50d73dad89b22647f6ad637c0b03ea39  gcc/m2/gm2-libs-ch/errno.c
! afd954422106b3d4a3dbe418d392d8df  gcc/m2/gm2-libs-ch/host.c
! 4386f1fb20b59ed981cf61d2d4513c96  gcc/m2/gm2-libs-ch/ldtoa.cc
! 634e72ed497860bc0bf9c4a5acc1f196  gcc/m2/gm2-libs-ch/m2rts.h
! 67b0e5de5accd1cd69d3f054f8ff4e6a  gcc/m2/gm2-libs-ch/termios.c
! 9d0a8b610aea4a8ce046ad7f12050bd5  gcc/m2/gm2-libs-ch/tools.c
! 13327eeb2966e51b3dc5ded0cb07199b  gcc/m2/gm2-libs-ch/wrapc.c
! 5e00384b96d7bb3b73544a59dbeab737  gcc/m2/gm2-libs-ch/xlibc.c
! 917e8718cb3352511648d2fdfbb52878  gcc/m2/gm2-libs-coroutines/Executive.def
! e86ade288ada7b8018207d0068857ff7  gcc/m2/gm2-libs-coroutines/Executive.mod
! 399664191f335b4e3fe99af3f6b0f903  gcc/m2/gm2-libs-coroutines/KeyBoardLEDs.def
! 3e97822f4d92a1b7c8f106e09d32c6d9  gcc/m2/gm2-libs-coroutines/README.texi
! 3512fb07171ed0c2f52bd2780e16e560  gcc/m2/gm2-libs-coroutines/SYSTEM.def
! f9d911356a396622727ada9aaeecb632  gcc/m2/gm2-libs-coroutines/SYSTEM.mod
! f834514a077bf00a47cf70b1dea7fae1  gcc/m2/gm2-libs-coroutines/TimerHandler.def
! 14bae156268e99035f337a1f18e8e7f3  gcc/m2/gm2-libs-coroutines/TimerHandler.mod
  389f62af2918433359e5d632b9cfa7cb  gcc/m2/gm2-libs-iso/COROUTINES.def
! 7a7e8cf7d96034071a357aa6b659bba1  gcc/m2/gm2-libs-iso/COROUTINES.mod
  b40ce77b637c8356536cc7317b37bd15  gcc/m2/gm2-libs-iso/ChanConsts.def
! 0c398ab14b0e308eeb33d3312d0a1d68  gcc/m2/gm2-libs-iso/ChanConsts.h
! 492f6d39e79878e571ff93ce54bab640  gcc/m2/gm2-libs-iso/ChanConsts.mod
  26d4fa17c751999369c175e64f4db462  gcc/m2/gm2-libs-iso/CharClass.def
! dad0ae56304c74de1fd9b7e5a83e9b2c  gcc/m2/gm2-libs-iso/CharClass.mod
! e738f29bbffe52b20caaf7046b227390  gcc/m2/gm2-libs-iso/ClientSocket.def
! a8c72ee88027749440e5402a23fe770e  gcc/m2/gm2-libs-iso/ClientSocket.mod
  7e412d2d4dd38bc7acae6ef37f58a343  gcc/m2/gm2-libs-iso/ComplexMath.def
! 0ba42583c6e0a527cf3ef8fe5786a0da  gcc/m2/gm2-libs-iso/ComplexMath.mod
! b73bd2e604f679bf8da976f779ca5148  gcc/m2/gm2-libs-iso/ConvStringLong.def
! e6f335c8abe71884192c27bfffecb06e  gcc/m2/gm2-libs-iso/ConvStringLong.mod
! 4b535b3ddebd665f4272044300b25ff0  gcc/m2/gm2-libs-iso/ConvStringReal.def
! ce8366fc009196a9a8b431d63100c0b8  gcc/m2/gm2-libs-iso/ConvStringReal.mod
! 8740457709b99706e0436fdd1a89b065  gcc/m2/gm2-libs-iso/ConvStringShort.def
! 3ec2ea18962ea20c9f180c2b044ef5ff  gcc/m2/gm2-libs-iso/ConvStringShort.mod
  b61783ff6abc22b746e6979c0bcee2dd  gcc/m2/gm2-libs-iso/ConvTypes.def
! c30d50e9235d2916da5d7d302c25843f  gcc/m2/gm2-libs-iso/ConvTypes.mod
  06b39eaf4e88d493000c7360c310ba97  gcc/m2/gm2-libs-iso/EXCEPTIONS.def
! d5db39c949664772b7d556f95e3738ba  gcc/m2/gm2-libs-iso/EXCEPTIONS.mod
! 13ec986a644401a645793d1ac2c61b04  gcc/m2/gm2-libs-iso/ErrnoCategory.def
  c9c5e6e4fbd4b365b1738fb97167c772  gcc/m2/gm2-libs-iso/GeneralUserExceptions.def
! ada30e2beed7d8b57519d9b5298fa5e6  gcc/m2/gm2-libs-iso/GeneralUserExceptions.mod
  3be4b03912f03e5164671e278a4ba6a1  gcc/m2/gm2-libs-iso/IOChan.def
! e76168db9294129a0e367adceae2accc  gcc/m2/gm2-libs-iso/IOChan.mod
  58b81b1b97143b27dfd3d5c225da285c  gcc/m2/gm2-libs-iso/IOConsts.def
! 761851fffbd305f2ae16bdaa8daa1edc  gcc/m2/gm2-libs-iso/IOConsts.mod
  3d1e4b84b179c15fe8b1fc60b7d46e6c  gcc/m2/gm2-libs-iso/IOLink.def
! 7f2bea2d7f738d3ba4645ada6bde2ceb  gcc/m2/gm2-libs-iso/IOLink.mod
  e5ea2ed3bf2ca24aeda732fb92f74111  gcc/m2/gm2-libs-iso/IOResult.def
! 7c677df8bbca9f9541a33d4f9db3a212  gcc/m2/gm2-libs-iso/IOResult.mod
  5c708f49fa403c8243782ec5145e99ca  gcc/m2/gm2-libs-iso/LongComplexMath.def
! 85e3155b47b33e1342f5fbed6b47b390  gcc/m2/gm2-libs-iso/LongComplexMath.mod
  018ee564b5b6d66051cf2ee4c7aea2fc  gcc/m2/gm2-libs-iso/LongConv.def
! e419dc9b8d98621b41d99a3034312a83  gcc/m2/gm2-libs-iso/LongConv.mod
  4869ce48d2aff46481adb5534764774b  gcc/m2/gm2-libs-iso/LongIO.def
! abea376c60e1845bb9f186162416397f  gcc/m2/gm2-libs-iso/LongIO.mod
  33a10b599c8fdf13d8d4e1b9b4a2ffc3  gcc/m2/gm2-libs-iso/LongMath.def
! f51f70d81ab367db518ea77fd05f4966  gcc/m2/gm2-libs-iso/LongMath.mod
  8ad351822e38056538ef1e9efe8b5cac  gcc/m2/gm2-libs-iso/LongStr.def
! 2dd86f5a200e67343ed418f24544a1cc  gcc/m2/gm2-libs-iso/LongStr.mod
! 82f58c612ca6d808e3022c7e70109ee6  gcc/m2/gm2-libs-iso/LongWholeIO.def
! e044babbf25cb1bf57df5ebc37a3cc8e  gcc/m2/gm2-libs-iso/LongWholeIO.mod
  34685287385135c3fbaa60ba1d894854  gcc/m2/gm2-libs-iso/LowLong.def
! 4e755f994548f2d995a6268454892326  gcc/m2/gm2-libs-iso/LowLong.mod
  78be5cf8b1f715e70e0c61838c761d10  gcc/m2/gm2-libs-iso/LowReal.def
! f6035c2b0bdfb123a411bbaed59cb6b9  gcc/m2/gm2-libs-iso/LowReal.mod
! bd69e2dd1171cc9df3974af5e36b8661  gcc/m2/gm2-libs-iso/LowShort.def
! 1351a612de2d86ad0c8646ba8654e9dd  gcc/m2/gm2-libs-iso/LowShort.mod
  e23b19886a6564119fe2b28e7d21f270  gcc/m2/gm2-libs-iso/M2EXCEPTION.def
! 67ed68b82dcc9d46bd0df69ab22cd2dd  gcc/m2/gm2-libs-iso/M2EXCEPTION.mod
! e62f4e21f2f4a222c9c902996036dff8  gcc/m2/gm2-libs-iso/M2RTS.def
! 579a0ac673516eb4738bff2992837ffe  gcc/m2/gm2-libs-iso/M2RTS.mod
! cedbe5b4c9bd950ae468e2208e58bf39  gcc/m2/gm2-libs-iso/MemStream.def
! 3a8fc2ae7c931ceee8ee50b5bca81f00  gcc/m2/gm2-libs-iso/MemStream.mod
! 5ee9a3ad8132c7b058ad480445f6b899  gcc/m2/gm2-libs-iso/Preemptive.def
! 7b87efe7b3f4e18baf339f83e40d68da  gcc/m2/gm2-libs-iso/Preemptive.mod
  617142b6611a41ce58eb9ae27d709342  gcc/m2/gm2-libs-iso/Processes.def
! b39c3b77770823ae95e6d3747550f35e  gcc/m2/gm2-libs-iso/Processes.mod
  f99d0ab4d95b7c909aebc4eee8923beb  gcc/m2/gm2-libs-iso/ProgramArgs.def
! 3c796772134d40cb9daffff4ca0e49bd  gcc/m2/gm2-libs-iso/ProgramArgs.mod
! 01fb40151f8580035d31bc08d924f974  gcc/m2/gm2-libs-iso/README.texi
! 9b6b51a4f57619416f90a8b5a77e5b8b  gcc/m2/gm2-libs-iso/RTco.def
! c43482b7f5ad4fb04d5f7ff955db3c20  gcc/m2/gm2-libs-iso/RTdata.def
! a0a3cf858d45d5f9929af3d960265eab  gcc/m2/gm2-libs-iso/RTdata.mod
! 1670fbe1edbb3f2a294095610be3d1d7  gcc/m2/gm2-libs-iso/RTentity.def
! 0d594cc18834f1fd2748be3eec9994f4  gcc/m2/gm2-libs-iso/RTentity.mod
! 3184a4facbd7f2b340e954001836efb2  gcc/m2/gm2-libs-iso/RTfio.def
! 278b04e7acfa71dc22191a2c063cf59f  gcc/m2/gm2-libs-iso/RTfio.mod
! 028f3183065526b32c790c4565f1cf77  gcc/m2/gm2-libs-iso/RTgen.def
! b1eb1df2fdeeea5cd1d47a23e76fa4ec  gcc/m2/gm2-libs-iso/RTgen.mod
! 7dacd7d9ef4973492fa5d4708ffa49d4  gcc/m2/gm2-libs-iso/RTgenif.def
! ac4aed04ccfd4b06ebfd668748b463cb  gcc/m2/gm2-libs-iso/RTgenif.mod
! 2875647ca35271bc430bf97fe25ab64e  gcc/m2/gm2-libs-iso/RTio.def
! 148b0d70632cc4ddb8670e0bb0082817  gcc/m2/gm2-libs-iso/RTio.mod
! c0d73a6a7839191d16861b03ca7abe8f  gcc/m2/gm2-libs-iso/RandomNumber.def
! b9f082abcaf8c6b653d2f4b4dbb9b0ec  gcc/m2/gm2-libs-iso/RandomNumber.mod
  40277b3de34e1a5d9df0b7cc45c14d15  gcc/m2/gm2-libs-iso/RawIO.def
! f73a64581daaaf58cf995e15bafc7c91  gcc/m2/gm2-libs-iso/RawIO.mod
  df153efe4a594ad9e9d8cca8b83c8df2  gcc/m2/gm2-libs-iso/RealConv.def
! 2d122b82d08c9657c7423b4a2ec75a32  gcc/m2/gm2-libs-iso/RealConv.mod
  eba391eef02297c03d7a651d6073fc82  gcc/m2/gm2-libs-iso/RealIO.def
! 948d3d2843eb776e02815d6723d53952  gcc/m2/gm2-libs-iso/RealIO.mod
  26b3c4e00ec2554e4506a35049bc3f0c  gcc/m2/gm2-libs-iso/RealMath.def
! b772e3a33d183a490e9151b6c3f1163a  gcc/m2/gm2-libs-iso/RealMath.mod
  a97765c0f82b53bb50acb8e67e5374e6  gcc/m2/gm2-libs-iso/RealStr.def
! 3b983ab777fbb9c4926f5feef76c044c  gcc/m2/gm2-libs-iso/RealStr.mod
  44b3b908b90d74d002a06bfb54262671  gcc/m2/gm2-libs-iso/RndFile.def
! 1cadf5850187c0e93e12e88b23ba6be9  gcc/m2/gm2-libs-iso/RndFile.mod
  227a83f272114ad4e64c8f3c9ef346fd  gcc/m2/gm2-libs-iso/SIOResult.def
! 98e309180679437ab59c9e06df9b5a42  gcc/m2/gm2-libs-iso/SIOResult.mod
  fd1983de497a0e10765806998b96e7a1  gcc/m2/gm2-libs-iso/SLongIO.def
! d1fb6e1bfaa71b1833541ed5e04fb1ea  gcc/m2/gm2-libs-iso/SLongIO.mod
! 567547a389135dd7266c3c24638ed2a7  gcc/m2/gm2-libs-iso/SLongWholeIO.def
! 0fd7cf9cd4e8fd6aa71483eb8913400b  gcc/m2/gm2-libs-iso/SLongWholeIO.mod
  5d7062666ffc5c5db7890b0b53f21387  gcc/m2/gm2-libs-iso/SRawIO.def
! 4711bec8ab5546070216f6928c5c8332  gcc/m2/gm2-libs-iso/SRawIO.mod
  29dc788abe06750b87ad7f8c7605ddad  gcc/m2/gm2-libs-iso/SRealIO.def
! 18e09f192d5e0021d8762a52a899c622  gcc/m2/gm2-libs-iso/SRealIO.mod
! 9309ea01af132528f1c395f28179c1a7  gcc/m2/gm2-libs-iso/SShortIO.def
! 0e9f30475542efdf2557da1d3d1455f4  gcc/m2/gm2-libs-iso/SShortIO.mod
! 638b30117543c7d6517b865f6d316c25  gcc/m2/gm2-libs-iso/SShortWholeIO.def
! 6bd8691e035e5ef8289f3884e17ca55c  gcc/m2/gm2-libs-iso/SShortWholeIO.mod
  037039b67d035c6da1fe676b93e98273  gcc/m2/gm2-libs-iso/STextIO.def
! 175cfbf516ffd33a5342d34fd57fa48e  gcc/m2/gm2-libs-iso/STextIO.mod
  4806b44e4a85776e1d5015f2013974a3  gcc/m2/gm2-libs-iso/SWholeIO.def
! 2fedcc4e6bfc3ac303ca3d09bde0b7ba  gcc/m2/gm2-libs-iso/SWholeIO.mod
  e40fdae4d0992bbfc83c127235813e82  gcc/m2/gm2-libs-iso/SYSTEM.def
! 6a8ac6ca40b4a23dffd484b358ec8a6b  gcc/m2/gm2-libs-iso/SYSTEM.mod
  cb047c38f5ef851681b19de3902ffebe  gcc/m2/gm2-libs-iso/Semaphores.def
! f792b83f983978b12f8cf69b65a0ca71  gcc/m2/gm2-libs-iso/Semaphores.mod
  0123a3eb7dc065b38800f7157f415c27  gcc/m2/gm2-libs-iso/SeqFile.def
! a2e117c0e61b080bca8a48613791498c  gcc/m2/gm2-libs-iso/SeqFile.mod
! 49f75536b2541752476f8d7751db96a1  gcc/m2/gm2-libs-iso/ShortComplexMath.def
! c2489802766151b8a9fc33d681375211  gcc/m2/gm2-libs-iso/ShortComplexMath.mod
! 1ae1f84986ef62ba40e37999740e3860  gcc/m2/gm2-libs-iso/ShortConv.def
! 6873d3c23e454aa4c3a968a3357363d9  gcc/m2/gm2-libs-iso/ShortConv.mod
! 2b2a75ba14ff32cc6c0f21f385426e60  gcc/m2/gm2-libs-iso/ShortIO.def
! 93d832259cd9e4d55aafa474e8fbe816  gcc/m2/gm2-libs-iso/ShortIO.mod
! 3dd2cc34e8337691823ee9f4f50ffc33  gcc/m2/gm2-libs-iso/ShortMath.def
! d42b9e3560a43f931ebf925ea22bb80b  gcc/m2/gm2-libs-iso/ShortMath.mod
! fef1d150570d2d2ff0327b619281eb6f  gcc/m2/gm2-libs-iso/ShortStr.def
! 1761fa664906977f44d2e40e077b01ff  gcc/m2/gm2-libs-iso/ShortStr.mod
! 781341183ae2f29ab4552f7a46964226  gcc/m2/gm2-libs-iso/ShortWholeIO.def
! 4d3e183fe5b81fa90cf16b09ba952c49  gcc/m2/gm2-libs-iso/ShortWholeIO.mod
! 9035a8b87792b0f0326b2851fe1afc0b  gcc/m2/gm2-libs-iso/SimpleCipher.def
! 7ffdf802471f1f372f8a5c8e01dbe6ce  gcc/m2/gm2-libs-iso/SimpleCipher.mod
  8b8a01b2a2ce71ef914ac2c6cc8c3b75  gcc/m2/gm2-libs-iso/StdChans.def
! f85d387cac8ec5e6416dbf7656de1d35  gcc/m2/gm2-libs-iso/StdChans.mod
  e2ce5b09829edfcec26970649d78d4dc  gcc/m2/gm2-libs-iso/Storage.def
! dee01c5846ade1d7f736195c668a7772  gcc/m2/gm2-libs-iso/Storage.mod
  be819007a2908ba602c8757b5d53a335  gcc/m2/gm2-libs-iso/StreamFile.def
! 4248c701bc5024c4b9a0957d410d925e  gcc/m2/gm2-libs-iso/StreamFile.mod
! d3e76c391607ce516dd8e5015e6a5cf8  gcc/m2/gm2-libs-iso/StringChan.def
! 210d3a3447ccfa971c84c7195a00d986  gcc/m2/gm2-libs-iso/StringChan.mod
  8f11555f792697e6e70bdabf60c96447  gcc/m2/gm2-libs-iso/Strings.def
! fe41ac576410868af95f7c4335eaa269  gcc/m2/gm2-libs-iso/Strings.mod
  decb080d52ed383b759f5da725dcc91f  gcc/m2/gm2-libs-iso/SysClock.def
! ec13af1d0bca481e92b02af5f22dc518  gcc/m2/gm2-libs-iso/SysClock.mod
  62d31afe6dbffd3c51bcaa5af7575bcd  gcc/m2/gm2-libs-iso/TERMINATION.def
! f2ba3fc9a955b27e39df5892db84282c  gcc/m2/gm2-libs-iso/TERMINATION.mod
  665eef372cb297013ff37bc80a4eb66d  gcc/m2/gm2-libs-iso/TermFile.def
! bfb7f2e48836e8d083bec4c63210051b  gcc/m2/gm2-libs-iso/TermFile.mod
  3e80217d87e3e0aa014739829f7cc23a  gcc/m2/gm2-libs-iso/TextIO.def
! 3522a6da2dc75fc751ff9fb35e370bbc  gcc/m2/gm2-libs-iso/TextIO.mod
! aba7908630b2752b9f687cb7a2dc75d5  gcc/m2/gm2-libs-iso/TextUtil.def
! 0d2da739ad81fdb6d74e984578a402b1  gcc/m2/gm2-libs-iso/TextUtil.mod
  63a72ee284f83e558fb34e32fe4cc1fb  gcc/m2/gm2-libs-iso/WholeConv.def
! 4db3698c0570342d8372dbce3743e06c  gcc/m2/gm2-libs-iso/WholeConv.mod
  108023618e22cb8631ac14d0bf21510a  gcc/m2/gm2-libs-iso/WholeIO.def
! 13b19a7c07bbe97bfb3f8f33f3dcbce7  gcc/m2/gm2-libs-iso/WholeIO.mod
  a27fdd32dbd31b2e992eceaf29b2fe76  gcc/m2/gm2-libs-iso/WholeStr.def
! 2e235a83d5b85866208bb12fdfea7c2d  gcc/m2/gm2-libs-iso/WholeStr.mod
! e9f5d571f4badbf526240a3d867b0271  gcc/m2/gm2-libs-iso/wrapclock.def
! dfc99f4084c9b5da1bba23b97a6eb87a  gcc/m2/gm2-libs-iso/wrapsock.def
! ada138109c8afe181ba178c7ad172a55  gcc/m2/gm2-libs-iso/wraptime.def
! 67fa4b953c84ccc752d281c8e01621ed  gcc/m2/gm2-libs-log/BitBlockOps.def
! 6ea96aceef817b55e22583f9e8cbdfaf  gcc/m2/gm2-libs-log/BitBlockOps.mod
! 3a8ab99add93be9e0d6bd71fb37b33c5  gcc/m2/gm2-libs-log/BitByteOps.def
! 4866fd7b4e6da44399d8f6c8b6db5cba  gcc/m2/gm2-libs-log/BitByteOps.mod
! dc176719dd593d5b76b5c44c2aba2b49  gcc/m2/gm2-libs-log/BitWordOps.def
! 6a9f4d0b2ffdb6044fba50fdcffc995e  gcc/m2/gm2-libs-log/BitWordOps.mod
! ba8fbefc8bc8a075a749b4651f773f66  gcc/m2/gm2-libs-log/BlockOps.def
! 7f576f1e3ed711d3536c0e827f168431  gcc/m2/gm2-libs-log/BlockOps.mod
! 064a2f092aa08666442c5cb9af67453a  gcc/m2/gm2-libs-log/Break.c
! 2e1fd0732c7e18b481af70c8cfa13d9b  gcc/m2/gm2-libs-log/Break.def
! fab6685c352f530272e7b0bc0c3c7d19  gcc/m2/gm2-libs-log/CardinalIO.def
! b5f3120cf5db6891d2939b7e591d32fa  gcc/m2/gm2-libs-log/CardinalIO.mod
! f0cce5f4a7d6b63bb2744dface4c6d7c  gcc/m2/gm2-libs-log/Conversions.def
! c42eb02e87304ae2a915ecf8babb5d50  gcc/m2/gm2-libs-log/Conversions.mod
! 34907fa3c9e88d0ecb9d2cdddc96fb52  gcc/m2/gm2-libs-log/DebugPMD.def
! aab99a75b9c10a9d420c5057e698dfd3  gcc/m2/gm2-libs-log/DebugPMD.mod
! 06a4fcbf52b47873c7fad6cdb3f1f080  gcc/m2/gm2-libs-log/DebugTrace.def
! 5ed030c70a9449603fa8454e093ec361  gcc/m2/gm2-libs-log/DebugTrace.mod
! 47024bb3f95469b998a2ca55c568366a  gcc/m2/gm2-libs-log/Delay.def
! 4df2d0b4539c6118ca848e130ab26025  gcc/m2/gm2-libs-log/Delay.mod
! ddc7ee8103ce58e3d3286df4d759c02f  gcc/m2/gm2-libs-log/Display.def
! e108f2366c7aa8ef72eeb45c816bb085  gcc/m2/gm2-libs-log/Display.mod
! e92440fc4c4869de2770a342e6981aee  gcc/m2/gm2-libs-log/ErrorCode.def
! bbc8f400f2f546ed4155cb59ca486f2d  gcc/m2/gm2-libs-log/ErrorCode.mod
! f7a391bde97c191d6375b3e572e4f3f7  gcc/m2/gm2-libs-log/FileSystem.def
! f909d340603f6b8d920cae5b222b0956  gcc/m2/gm2-libs-log/FileSystem.mod
! f78712d14c1e6fa1ceb26defde3fca98  gcc/m2/gm2-libs-log/FloatingUtilities.def
! 34aa6de93c34ebd5a638cf1222a06f4a  gcc/m2/gm2-libs-log/FloatingUtilities.mod
! e5d60dec5cb572b80fd7866f6f295520  gcc/m2/gm2-libs-log/InOut.def
! 8d5753e1e7bb4568bfb035900a88eb25  gcc/m2/gm2-libs-log/InOut.mod
! 469952324daa9541904d56669b70eeec  gcc/m2/gm2-libs-log/Keyboard.def
! b980e67faedb08456b151f8ead2ec2d2  gcc/m2/gm2-libs-log/Keyboard.mod
! 1673119dbacf944243d8e1af343cea02  gcc/m2/gm2-libs-log/LongIO.def
! a3305b7ba3c7fe6c02d61acae675288d  gcc/m2/gm2-libs-log/LongIO.mod
! 9a80a85f5cad091808a20f5624a22c75  gcc/m2/gm2-libs-log/NumberConversion.def
! b406cc24507426b5a2cd121574484add  gcc/m2/gm2-libs-log/NumberConversion.mod
! 9341fc03dcb60026c84628369aabe913  gcc/m2/gm2-libs-log/README.texi
! 797c5479e6942b15738f71b3ca3839e5  gcc/m2/gm2-libs-log/Random.def
! 740f2cbef9fa8185987fa4d7e820bf4c  gcc/m2/gm2-libs-log/Random.mod
! bd448fcfcd6603b13e4e180b97786451  gcc/m2/gm2-libs-log/RealConversions.def
! 71e0ee3cd13e05f220528f635e98a4b5  gcc/m2/gm2-libs-log/RealConversions.mod
! d1e781745a951a548132c7e7a301b207  gcc/m2/gm2-libs-log/RealInOut.def
! 009013bf8a462b5477e8150bbd847a37  gcc/m2/gm2-libs-log/RealInOut.mod
! 43c0627a7b630feeab12d1706b254917  gcc/m2/gm2-libs-log/Strings.def
! 0c6a405b7db5edf7a3a3f9316c8ec3db  gcc/m2/gm2-libs-log/Strings.mod
! 31eef8010048c0d36b4e5c7e51b3a622  gcc/m2/gm2-libs-log/Termbase.def
! 7d2877258b16f2b858d96c3d2174cbbc  gcc/m2/gm2-libs-log/Termbase.mod
! 36235ef63ad79c714a0e9c11e7d3a9c3  gcc/m2/gm2-libs-log/Terminal.def
! 3dd579f6c79759a629ca67dd7aba2b23  gcc/m2/gm2-libs-log/Terminal.mod
! c4669fd4d7387f5139c600673bfbf495  gcc/m2/gm2-libs-log/TimeDate.def
! 5387e883b02e9064a6d54d0e862cb92d  gcc/m2/gm2-libs-log/TimeDate.mod
! b2b7da07974ac17dcdf9b057cdc6a21f  gcc/m2/gm2-libs-min/M2RTS.def
! 20b2f61cb86c8c1bc082536cc527724c  gcc/m2/gm2-libs-min/M2RTS.mod
! 119b2cc97843614cbbaa39e6deb51b8f  gcc/m2/gm2-libs-min/SYSTEM.def
! 778cf0026b8b7676d6b5277860bed6e6  gcc/m2/gm2-libs-min/SYSTEM.mod
! 2e0933b5a54bd86461a331270595b7c6  gcc/m2/gm2-libs-min/libc.c
! 64ffc17f0686d0bfe9d46eeb81f9deb1  gcc/m2/gm2-libs-min/libc.def
! 33a4d295aa441c3cf48196e3a73d34d8  gcc/m2/gm2-libs/ASCII.def
! 93184c88635b4b0a569c7a91c4e51f08  gcc/m2/gm2-libs/ASCII.mod
! 114bc5ad10f83a62f924633402181ae3  gcc/m2/gm2-libs/Args.def
! 21378a4a15c2c673ca200b1df68764c3  gcc/m2/gm2-libs/Args.mod
! a0386d4960d6123b60afdb2492bb214d  gcc/m2/gm2-libs/Assertion.def
! 1404b84f3ada478b7210fd92dc9320d4  gcc/m2/gm2-libs/Assertion.mod
! 0c107692ec4ee4eb8dc417e72916a0fa  gcc/m2/gm2-libs/Break.def
! 9319de5e84b7d3bccec774fc498b30e2  gcc/m2/gm2-libs/Break.mod
! 7ceacb9135c1da23170249ed53d63510  gcc/m2/gm2-libs/Builtins.def
! 3b3e15111ca6b38d09f769444783ae7b  gcc/m2/gm2-libs/Builtins.mod
! f189cad7c401744b8ce03cdd9c7ced91  gcc/m2/gm2-libs/COROUTINES.def
! cb53128d3c7f1f82fa7a4d63554a899c  gcc/m2/gm2-libs/COROUTINES.mod
! 791dc424175ac93931f90fa0b7a92c94  gcc/m2/gm2-libs/CmdArgs.def
! 9d204def58deba7289c1ddd6077d1d5e  gcc/m2/gm2-libs/CmdArgs.mod
! b89ceb0ce6244a9d06718a3061d88767  gcc/m2/gm2-libs/Debug.def
! eecc2b2f7ce08b3cf81337c99f7c3b75  gcc/m2/gm2-libs/Debug.mod
! 565a6538d072fcb9daf00d247273a5d5  gcc/m2/gm2-libs/DynamicStrings.def
! ce6bdd1925b8bdda953ad1a0d85773e6  gcc/m2/gm2-libs/DynamicStrings.mod
! de19b3a4b94a6fcd833a401f34ce9933  gcc/m2/gm2-libs/Environment.def
! f944372939bfd17ab4ee668dcf6781fb  gcc/m2/gm2-libs/Environment.mod
! 6c720696b13f9e1de9d9f106ad64d4d6  gcc/m2/gm2-libs/FIO.def
! a3b97900c6583175d851aa23c77d3f77  gcc/m2/gm2-libs/FIO.mod
! 71d4c036b60591c3b40ff25292ec7033  gcc/m2/gm2-libs/FormatStrings.def
! 2675b713236f8669087ea91fbcecba17  gcc/m2/gm2-libs/FormatStrings.mod
! 91df6849349e0255d7ca55836e7b9b9a  gcc/m2/gm2-libs/FpuIO.def
! 26d85a3dd16ac633ea2161ccb9b4a377  gcc/m2/gm2-libs/FpuIO.mod
! 14a2aa92d9058b57cbbe8f502722dc33  gcc/m2/gm2-libs/GetOpt.def
! c75846c8fb30726cfb1261591913f018  gcc/m2/gm2-libs/GetOpt.mod
! d69247502a00e486c791cdfc1012c8df  gcc/m2/gm2-libs/IO.def
! c855cf57735ae174bb4e6f51b97405e2  gcc/m2/gm2-libs/IO.mod
! a92033683f606be7ecb329010f2cc588  gcc/m2/gm2-libs/Indexing.def
! 9843d2edced0b0bc382b9d9dac96b9ae  gcc/m2/gm2-libs/Indexing.mod
! dffcb70df0520b7dcdce73d6314ec278  gcc/m2/gm2-libs/LMathLib0.def
! c0334f7ef3b21c1a075a63025663be85  gcc/m2/gm2-libs/LMathLib0.mod
! a5a9aa5f69468190237835d594db9ad9  gcc/m2/gm2-libs/LegacyReal.def
! 2690dad370591def9f3663f7a1294807  gcc/m2/gm2-libs/LegacyReal.mod
! 4812aba299c2c0fe0b6a181c4424347f  gcc/m2/gm2-libs/M2Dependent.def
! 34a4a12eb9b56533a0f063068336f96c  gcc/m2/gm2-libs/M2Dependent.mod
! d73be741d481d8bc32941619d02fe337  gcc/m2/gm2-libs/M2EXCEPTION.def
! dee7160724a7fd47902dde4013fd1c6b  gcc/m2/gm2-libs/M2EXCEPTION.mod
! fa5c6e2d1ea0f98787b2f5a5cca43d9c  gcc/m2/gm2-libs/M2RTS.def
! 8dd53ef376858daffd563b097e830be5  gcc/m2/gm2-libs/M2RTS.mod
! 9139e9a93104fdc71ed7372270ae8ce4  gcc/m2/gm2-libs/MathLib0.def
! d68f03321d1279ecfe5125705221ba07  gcc/m2/gm2-libs/MathLib0.mod
! 8e6fae6e9004d54a8cff0b69653c09bb  gcc/m2/gm2-libs/MemUtils.def
! ef0a9453cd573a8573a40c68a8865659  gcc/m2/gm2-libs/MemUtils.mod
! 2b03eccf0ce522c628989752e658dce7  gcc/m2/gm2-libs/NumberIO.def
! f2b354d33259ebe12fcd2c914dc3b3f6  gcc/m2/gm2-libs/NumberIO.mod
! ee3423267b117628e8a4ab2448343672  gcc/m2/gm2-libs/OptLib.def
! be3dad0dbfdda9da66113b37f590a393  gcc/m2/gm2-libs/OptLib.mod
! db325c0f902444e545ae7a2d9e492028  gcc/m2/gm2-libs/PushBackInput.def
! e26bff8875848e66c70b1694dd0633a3  gcc/m2/gm2-libs/PushBackInput.mod
! 606d075705875ff03d52008c94b3fcf5  gcc/m2/gm2-libs/README.texi
! d4c256b93b2c68f755773423056b8d21  gcc/m2/gm2-libs/RTExceptions.def
! 01730727f69d77b52c114c8e6fe10f88  gcc/m2/gm2-libs/RTExceptions.mod
! 378ecd092b95a5048bac0cc8ab9f76bb  gcc/m2/gm2-libs/RTint.def
! 6495b7870ffed08c782fabd044f605d0  gcc/m2/gm2-libs/RTint.mod
! b794872ef8b20330a7eda4ddfae12e41  gcc/m2/gm2-libs/SArgs.def
! 63a8b64ee19348304bb776fc8da6b975  gcc/m2/gm2-libs/SArgs.mod
! ba6cb69be1c15ac2f06502ca3bb1b1f8  gcc/m2/gm2-libs/SCmdArgs.def
! e87ed5ddceb51b07fc56f351b4921454  gcc/m2/gm2-libs/SCmdArgs.mod
! b5d599561573889ddf965b7a8807aaef  gcc/m2/gm2-libs/SEnvironment.def
! 2f46b23b45baa93288b008d55b483e57  gcc/m2/gm2-libs/SEnvironment.mod
! 12f6454ff19e5a0767aa8b8488211d6e  gcc/m2/gm2-libs/SFIO.def
! 7e0423b7083d1cc195874537c532f8c6  gcc/m2/gm2-libs/SFIO.mod
! 50f6471920c99fd99b83c7de47c6981d  gcc/m2/gm2-libs/SMathLib0.def
! afdb73cb2759b06d12dddb85bfbfb66b  gcc/m2/gm2-libs/SMathLib0.mod
! ee5cd7709db2b7d033fa4262cdc09450  gcc/m2/gm2-libs/SYSTEM.def
! 51b7584085989d01a70668895089993d  gcc/m2/gm2-libs/SYSTEM.mod
! f858cc06fd39219d0861f3d331dbd857  gcc/m2/gm2-libs/Scan.def
! 4956bd4e9b7f5bc1c5937a86a325e894  gcc/m2/gm2-libs/Scan.mod
! 4d452dbfff9c8792f1cc3586f634b22b  gcc/m2/gm2-libs/Selective.def
! 079c3f79733f7fd90882a020f8c13d39  gcc/m2/gm2-libs/StdIO.def
! bc7935477005e5d965d513466e94b7f3  gcc/m2/gm2-libs/StdIO.mod
! 1dabb82ae4f2e505c027f2a42ae0c029  gcc/m2/gm2-libs/Storage.def
! 09a5379401ba00a41e251e702eb23c42  gcc/m2/gm2-libs/Storage.mod
! 7e3ad51ee25029867573d29a14d5be50  gcc/m2/gm2-libs/StrCase.def
! 05a86f30e152b7d5fda005a82d1a8e0c  gcc/m2/gm2-libs/StrCase.mod
! ada14f6d9d731c42c343bf89ff792e2b  gcc/m2/gm2-libs/StrIO.def
! e008c7a9c9d4413acecbd2c7b321919f  gcc/m2/gm2-libs/StrIO.mod
! bbdd7a97ac9ea76ff4b3b88e772b0d48  gcc/m2/gm2-libs/StrLib.def
! 8e6fe6410ac63e58bd53b6b176626e86  gcc/m2/gm2-libs/StrLib.mod
! d2bb5ed4921c613360f3cb091776b4d7  gcc/m2/gm2-libs/StringConvert.def
! 311d4c858cbe6137fe117f140bf7fdf8  gcc/m2/gm2-libs/StringConvert.mod
! b57d6a5df376435dad6df3ac04a0e2b5  gcc/m2/gm2-libs/SysExceptions.def
! f5af7ea40ed1966dc80d01474e6e5022  gcc/m2/gm2-libs/SysStorage.def
! bf89869d2c0b2635ae50bfe230db2cc5  gcc/m2/gm2-libs/SysStorage.mod
! 79c9e3576cfbba175248de379d1a0f83  gcc/m2/gm2-libs/TimeString.def
! 838d9deb08feb758474eb422eb814ddb  gcc/m2/gm2-libs/TimeString.mod
! 94844059a6de9d9131bfed0051d60c3e  gcc/m2/gm2-libs/UnixArgs.def
! 63e9df6f607a9cba13b94489e347567e  gcc/m2/gm2-libs/cbuiltin.def
! aa8279e45dca4d7a63f6a9570da67546  gcc/m2/gm2-libs/cgetopt.def
! d6a0e0e278421f2ae9da8f252a98670d  gcc/m2/gm2-libs/config-host
! 408e250abd03bacd01a4350d801956b5  gcc/m2/gm2-libs/config-host.in
! 78500196771bcb43c369f0ccfc7d0a75  gcc/m2/gm2-libs/cxxabi.def
! c879d6ca248cce676d12c0aa12c25c6e  gcc/m2/gm2-libs/dtoa.def
! 6f0119cd8b252237ff3ea6d1065e6f7b  gcc/m2/gm2-libs/errno.def
! a6db0bd134af353ce670bd87d08c6dda  gcc/m2/gm2-libs/gdbif.def
! 080082d75929601d55ad80182776c7b8  gcc/m2/gm2-libs/gdbif.mod
! 76f980ea065548a7a2fb307e0e5b2fe4  gcc/m2/gm2-libs/gm2-libs-host.h.in
! 1377510307dad0be7cdc5dba0c4a88df  gcc/m2/gm2-libs/ldtoa.def
! e02a4fd94e143f8ef7a08b4fb95d96f0  gcc/m2/gm2-libs/libc.def
! e259fa22b3a17a0a8e9d1b9be1930365  gcc/m2/gm2-libs/libm.def
! d14c3ee766ceded0096d7522f0b4c14e  gcc/m2/gm2-libs/sckt.def
! f88ddd7809b97ea79717fcfcdb224f13  gcc/m2/gm2-libs/termios.def
! 11a08a71d01def9db57ee38264276880  gcc/m2/gm2-libs/wrapc.def
  ccaa683ba714cdbeafc186000b6c8dd1  gcc/m2/gm2config.aci.in
! c660b94d96f6c8b4af12e05ee74b6697  gcc/m2/gm2spec.cc
! ce0732101ee4dc423da25d5e816e585f  gcc/m2/gm2version.h
! f9a764a63a215d11be2185dbb7885034  gcc/m2/images/LICENSE.IMG
  28628f59c0ab73240ccd25e2be0bcb6a  gcc/m2/images/gnu.eps
  d41d8cd98f00b204e9800998ecf8427e  gcc/m2/images/gnupng
  d02bb7b852c2149c474702f929b72f2d  gcc/m2/init/README
! a6129befb7e6f3f27ca853e5aae8732d  gcc/m2/init/mcinit
! e12c669985f802264fb12d01111d4043  gcc/m2/init/ppginit
! a4d6463a2e2ce3965cba13f6bec7927f  gcc/m2/lang-specs.h
! d2efdae546f42f848d3838422e97f37e  gcc/m2/lang.opt
! 8d81e56e0f4f2a7799c6d7656039993c  gcc/m2/lang.opt.urls
! f9805d1c105cf62db2a44f68f7fc85a3  gcc/m2/m2-tree.def
! 1e812384100d637e7a6034e8c8decaf6  gcc/m2/m2-tree.h
! a7e6e098e4e73da36b32a6152eee589b  gcc/m2/m2.flex
! aedd266c9df2392e9bfc3748baa6a9a9  gcc/m2/mc-boot-ch/GBuiltins.cc
! 73636955ae1dcd854ea3d47420d1d4aa  gcc/m2/mc-boot-ch/GM2LINK.c
! 7e02d3efe97661f468b79c15a3b0ac42  gcc/m2/mc-boot-ch/GSYSTEM.c
! 6f43b0881624828c2305a297b88452a7  gcc/m2/mc-boot-ch/GSelective.c
! e6ffe225f20acb86d81a3199a04469de  gcc/m2/mc-boot-ch/GSysExceptions.c
! d6ea7ddbe8932e07f238142b8bba213b  gcc/m2/mc-boot-ch/GUnixArgs.cc
! a2d03aa31a6026168ccb468d7430feb2  gcc/m2/mc-boot-ch/Gabort.c
! fc0c6cd43b28d715f9408a2b3d542059  gcc/m2/mc-boot-ch/Gcbuiltin.c
! 224e8549c336e09327beb18ea215af27  gcc/m2/mc-boot-ch/Gdtoa.cc
! eb6a8f45cd40b9762b91375ebc539909  gcc/m2/mc-boot-ch/Gerrno.cc
! 7118693c5d7bf018a4235e312991d961  gcc/m2/mc-boot-ch/Gldtoa.cc
! ca0fd3d5325b919b7ff2def4266aea6a  gcc/m2/mc-boot-ch/Glibc.c
! 07b3bab67c818570d7b72cf284efb376  gcc/m2/mc-boot-ch/Glibm.c
! 11cd8fbee45566aa3822f9e760483001  gcc/m2/mc-boot-ch/Gm2rtsdummy.cc
! b1b61a77d982e07b3a553314966bc2ed  gcc/m2/mc-boot-ch/Gmcrts.c
! 38f1b90202e6b933f1a463ab201671de  gcc/m2/mc-boot-ch/Gmcrts.h
! 0b7dffa7d5f2ae9d4f18c96a02224202  gcc/m2/mc-boot-ch/Gnetwork.h
! 21632b8bbae2544c515f8fbbd825360c  gcc/m2/mc-boot-ch/Gtermios.cc
! 02633ced7d34a7bb4f0f90cc59361574  gcc/m2/mc-boot-ch/Gwrapc.c
  ce2b38596d501052b9fae2df29aafa66  gcc/m2/mc-boot-ch/README
! 798c41485f1e4192fa70dd7a55b238eb  gcc/m2/mc-boot-ch/m2rts.h
! a1ef1b70669c773d3b0c5d5f475c2737  gcc/m2/mc-boot-ch/network.c
! b383d849c70086f1f2218c87e41f2c3c  gcc/m2/mc-boot/GASCII.cc
! e107361daa4cde34e81ea032eed60132  gcc/m2/mc-boot/GASCII.h
! 5a0766afc921a969d595cd49bee88212  gcc/m2/mc-boot/GArgs.cc
! c1db8f872901c6b1b5aca08085c5c7ab  gcc/m2/mc-boot/GArgs.h
! c98031a146bfc20540df3b67f2a4ca88  gcc/m2/mc-boot/GAssertion.cc
! 65936e988ac1f5cad3d2f9b4eabf2fbf  gcc/m2/mc-boot/GAssertion.h
! 645cf9ca93e49482c6f7f707aa0c2aed  gcc/m2/mc-boot/GBreak.cc
! 5b43185ae2fedf4d27f562cdafeddb0e  gcc/m2/mc-boot/GBreak.h
! 8b4a529984bae6f3c2a9e0a2652d51f1  gcc/m2/mc-boot/GCOROUTINES.h
! 561e384f7def1cb8afb56ba0bdd7fc3f  gcc/m2/mc-boot/GCmdArgs.cc
! 9083e15a53c36202bcfea591af4e3663  gcc/m2/mc-boot/GCmdArgs.h
! dfbedce54669ddbb7a0c57b3a65f9f2b  gcc/m2/mc-boot/GDebug.cc
! 7d60c0ee2d3f1711a19287c70d29e6e7  gcc/m2/mc-boot/GDebug.h
! bee09b7110557a212b40a22816ae324f  gcc/m2/mc-boot/GDynamicStrings.cc
! 86c185e2390d041c35f1356cf425df30  gcc/m2/mc-boot/GDynamicStrings.h
! 2f2387ba51264e1a2f535a9b01d87dd5  gcc/m2/mc-boot/GEnvironment.cc
! 615a347ef959c897ca953c9da15c9c01  gcc/m2/mc-boot/GEnvironment.h
! 775e7668debe8e7fe040d80bbab1ecb3  gcc/m2/mc-boot/GFIO.cc
! 6d5588f353da5c6c8985c8e7c34ff454  gcc/m2/mc-boot/GFIO.h
! 6a5113cabf97f037a3605c8b812074e9  gcc/m2/mc-boot/GFormatStrings.cc
! 9084a8064675e64d07718b9023425751  gcc/m2/mc-boot/GFormatStrings.h
! 9eb3b92f9b32e7f29ec8cbffde8daa8d  gcc/m2/mc-boot/GFpuIO.cc
! a8f1c76e8396343b66e5f39a199333f6  gcc/m2/mc-boot/GFpuIO.h
! 5d485516ab64bf0feb09fd9f3e4a7d1d  gcc/m2/mc-boot/GIO.cc
! 0bd8dd1a815b2af698b8c640b776254b  gcc/m2/mc-boot/GIO.h
! 8799d19ecf29c528ebf103a63c2807bb  gcc/m2/mc-boot/GIndexing.cc
! ca9cc2af6d38d4f6eea86dd593c86ac5  gcc/m2/mc-boot/GIndexing.h
! 1d1889465e6b7b8fb86f2500fccdbb3a  gcc/m2/mc-boot/GM2Dependent.cc
! 28b021f230126f01f39cf0a7e83ae855  gcc/m2/mc-boot/GM2Dependent.h
! c25de9aeda0c906145eda2816d249f2c  gcc/m2/mc-boot/GM2EXCEPTION.cc
! dbb4084e7f8d724776409a654d4b5512  gcc/m2/mc-boot/GM2EXCEPTION.h
! 3a93766d82eaf2bedfe295dd2e4ae88b  gcc/m2/mc-boot/GM2RTS.cc
! b55490385a043594c35fdc218335a6ac  gcc/m2/mc-boot/GM2RTS.h
! 90de7f25f17b1d4987705e7a54f9a75c  gcc/m2/mc-boot/GMemUtils.cc
! 6a54d8224c6fe1802c7310aae5729e80  gcc/m2/mc-boot/GMemUtils.h
! dd62fadc506ba3edb54725be5a88b123  gcc/m2/mc-boot/GNumberIO.cc
! 4c9d6555902e3669aecdbeda2497abf1  gcc/m2/mc-boot/GNumberIO.h
! 22f9f7539e20cfb0ebf759107533dff5  gcc/m2/mc-boot/GPushBackInput.cc
! 2e5be0b8081688741243ac72d6112656  gcc/m2/mc-boot/GPushBackInput.h
! f388d33ad16236db0600c082df5b0b13  gcc/m2/mc-boot/GRTExceptions.cc
! 0ff3fefb0e53ac1d1e087509d0e4919e  gcc/m2/mc-boot/GRTExceptions.h
! bf26878ae16f53b8fe8393aa7ab92155  gcc/m2/mc-boot/GRTco.h
! 4b7a5e04c7680504c710ddc7a087a6f9  gcc/m2/mc-boot/GRTentity.h
! 028b033938982a959c1cd9aa2b5a1a88  gcc/m2/mc-boot/GRTint.cc
! 64af1b26ad865d07aa8be4dca8ef8995  gcc/m2/mc-boot/GRTint.h
! 7ac0187b5170edd8ea58476dd4ab611b  gcc/m2/mc-boot/GSArgs.cc
! 8638f2794b3b574b9e66c9417384e1dc  gcc/m2/mc-boot/GSArgs.h
! 3c802f08784c1c23262084688101d660  gcc/m2/mc-boot/GSFIO.cc
! cf09a80513b70680ee17e7edd3ba8ffd  gcc/m2/mc-boot/GSFIO.h
! b5bbf20c76e054bb4d2da529ee7ed195  gcc/m2/mc-boot/GSYSTEM.h
! 3735699bb32353011caea008ebad9b00  gcc/m2/mc-boot/GSelective.h
! 6a95d09700b16d18d1053a63bf181e14  gcc/m2/mc-boot/GStdIO.cc
! 2e88d87ef144bc030c76dfcf28390015  gcc/m2/mc-boot/GStdIO.h
! a8c53384516970ac83fd870bc06e8671  gcc/m2/mc-boot/GStorage.cc
! 95badf1769b547148c7222220d209cf4  gcc/m2/mc-boot/GStorage.h
! f764fceceeb6e90a43260d14c8600d9d  gcc/m2/mc-boot/GStrCase.cc
! 7fa8523d2a2cd2f625a8a803b90a1661  gcc/m2/mc-boot/GStrCase.h
! c638809ee2167dbd76caa91e1f65b3f8  gcc/m2/mc-boot/GStrIO.cc
! 55cdab5615f99ce35571afc6ba0ed05b  gcc/m2/mc-boot/GStrIO.h
! 8c0c001deecb143570891fd23a6c1716  gcc/m2/mc-boot/GStrLib.cc
! de1b0aa21858511ce0c199a3ecf46853  gcc/m2/mc-boot/GStrLib.h
! 8fe42c2ff39410c89d009777feece34b  gcc/m2/mc-boot/GStringConvert.cc
! ab3c520cd0ae1d0bb7dd24c7434d9a11  gcc/m2/mc-boot/GStringConvert.h
! de35ac1a3b562d2f02e2be8cd12d3b53  gcc/m2/mc-boot/GSysExceptions.h
! 82980fdf387f325a6baa43a0a15a678a  gcc/m2/mc-boot/GSysStorage.cc
! 8a070c6e6e6cf47b4ec8b0ecc15cbdc1  gcc/m2/mc-boot/GSysStorage.h
! fb05e6fdfa9fbf498d72df94163d1d18  gcc/m2/mc-boot/GTimeString.cc
! 12f3a1d434b2d79a119e98797845d2ca  gcc/m2/mc-boot/GTimeString.h
! 017d94a38bd512c5c15cdc3091ecebad  gcc/m2/mc-boot/GUnixArgs.h
! 7a34095ffe2aef458f073b10b48acea6  gcc/m2/mc-boot/Galists.cc
! 659ffaab9a93247dceed70add364e78e  gcc/m2/mc-boot/Galists.h
! 802f5e0bb677f5b109277a51e0e4a230  gcc/m2/mc-boot/Gdecl.cc
! 7ac0cf6eb1d8a19c1422c4f677966680  gcc/m2/mc-boot/Gdecl.h
! e8fef2551eedff9e2c8a849c1891cac5  gcc/m2/mc-boot/Gdtoa.h
! 4f27b28a6072e9236bc0f7d281e0788a  gcc/m2/mc-boot/Gerrno.h
! 22ef4c755c523f1ebf033553e1e04041  gcc/m2/mc-boot/Gkeyc.cc
! fab2cf1b0f9500af0eee11436a0cf9c3  gcc/m2/mc-boot/Gkeyc.h
! 68c1d8bd0a5b5ab3ad22b4d2c1b07e93  gcc/m2/mc-boot/Gldtoa.h
! a15316902a3a6a0f25f87e03621b4bff  gcc/m2/mc-boot/Glibc.h
! 1ef97ac3ae2577871f6b0e67ee3c3004  gcc/m2/mc-boot/Glibm.h
! 380441815cd0d51e021899fed83a322b  gcc/m2/mc-boot/Glists.cc
! d2f82d58e030e5b67d02bec06e07a9f8  gcc/m2/mc-boot/Glists.h
! 45c157bcac013558024dd91498e9b573  gcc/m2/mc-boot/GmcComment.cc
! e7cce366dc11b13c417a040d9b91db98  gcc/m2/mc-boot/GmcComment.h
! 75a6983a8771aa158461260975c79b25  gcc/m2/mc-boot/GmcComp.cc
! f86d0a74ed1141dec8728df941e00eff  gcc/m2/mc-boot/GmcComp.h
! 86991f440994fc9f110182c2c3e7645e  gcc/m2/mc-boot/GmcDebug.cc
! 1ce4400abaf2fb1e18bc7ff5eddc9d8a  gcc/m2/mc-boot/GmcDebug.h
! f960f97cab365646aa932127138344e8  gcc/m2/mc-boot/GmcError.cc
! 440ab7bd23f2594c10353383300a5411  gcc/m2/mc-boot/GmcError.h
  5d85bb47d927f4ca22639c9f2cf2e391  gcc/m2/mc-boot/GmcFileName.cc
! 2b6e0029fc6a2e34c83f183e6e0bf5ff  gcc/m2/mc-boot/GmcFileName.h
! 70edce54272df2706d6beb92f200dc40  gcc/m2/mc-boot/GmcLexBuf.cc
! 06b5db0da9c70670e2ade4bcfe1b0778  gcc/m2/mc-boot/GmcLexBuf.h
! ae4b5f47a79bfc745544cd5f5a2415f9  gcc/m2/mc-boot/GmcMetaError.cc
! 3cc676c0d203d8cb3e0e62cc13d480a2  gcc/m2/mc-boot/GmcMetaError.h
! c95bde84c8237227972b12be3a4cfd2e  gcc/m2/mc-boot/GmcOptions.cc
! 83b9fa497d7a2256de7dcf065bdf78ee  gcc/m2/mc-boot/GmcOptions.h
  03c7bb4d4d1e7eb24913b650b3df3fdf  gcc/m2/mc-boot/GmcPreprocess.cc
! b10b1a9c720422342363944314ad9588  gcc/m2/mc-boot/GmcPreprocess.h
  1a459e67174f26c134a9e248876675f8  gcc/m2/mc-boot/GmcPretty.cc
! eb915bfb8eefa3b1f4b4a8cb0676e403  gcc/m2/mc-boot/GmcPretty.h
  2861b3287a3ed9e1611630a4eec40f4c  gcc/m2/mc-boot/GmcPrintf.cc
! cb44473e1d4b2882cc75fad4dc406989  gcc/m2/mc-boot/GmcPrintf.h
  9c52779ab3513ce4cdcf8c7754a697a1  gcc/m2/mc-boot/GmcQuiet.cc
! 1eba35d1cce984014cc01d94def05b2d  gcc/m2/mc-boot/GmcQuiet.h
  c885e1f2d8cb12d68b7216d9dd8e81e6  gcc/m2/mc-boot/GmcReserved.cc
! f277205b2740a3663dfbe4527a3ae855  gcc/m2/mc-boot/GmcReserved.h
  58aeed5456d7409aa931c0f290d6f32e  gcc/m2/mc-boot/GmcSearch.cc
! ef6b2a52caeba457560407d36aeafd9b  gcc/m2/mc-boot/GmcSearch.h
! 4eb1963abe815fce876af61c0e153be2  gcc/m2/mc-boot/GmcStack.cc
! 8d52211b2aba382aa48cf5bdaffe8e74  gcc/m2/mc-boot/GmcStack.h
! 636e38a834f6281284ed742e2dea132f  gcc/m2/mc-boot/GmcStream.cc
! 0cb5fba74502fb9a9b4ddca544eb2fe1  gcc/m2/mc-boot/GmcStream.h
! 166e5689686800425e3a5f71559f5447  gcc/m2/mc-boot/Gmcflex.h
! abda78a072fd56f0b21934799515643c  gcc/m2/mc-boot/Gmcp1.cc
! f1e639d62e89308b6e4651ff7cda6dec  gcc/m2/mc-boot/Gmcp1.h
! 0489e894de9c0303c98ddbf6278c7bb4  gcc/m2/mc-boot/Gmcp2.cc
! ad27e941eef5587d08eb5569813e3cb9  gcc/m2/mc-boot/Gmcp2.h
! 76e50599c41e240c002c7a7639d84492  gcc/m2/mc-boot/Gmcp3.cc
! e607e12d714eccf4b0d05d38f7d7e2db  gcc/m2/mc-boot/Gmcp3.h
! 2b47c3719b4907d4721c2e851d2b66e4  gcc/m2/mc-boot/Gmcp4.cc
! 5801a3a8296a2f0bcf8ac02eb5ea920e  gcc/m2/mc-boot/Gmcp4.h
! 05e9a4785b9fa43bf9e7a102b1514200  gcc/m2/mc-boot/Gmcp5.cc
! 99e3eea1dd94b71fab98e3e891f9db7b  gcc/m2/mc-boot/Gmcp5.h
! 83d133063c39deb51f4433ba9426b0c8  gcc/m2/mc-boot/GnameKey.cc
! 4a22b236ce8ef7b273d2683e244a1477  gcc/m2/mc-boot/GnameKey.h
! a3dacb80605f321da6fa547e376a4846  gcc/m2/mc-boot/GsymbolKey.cc
! 20a6c069519878662c25aa336bd92769  gcc/m2/mc-boot/GsymbolKey.h
! 980a496e63723200cc223b04744cd66b  gcc/m2/mc-boot/Gtermios.h
! 899b5b90fc372aa3c454d8ce14639160  gcc/m2/mc-boot/Gtop.cc
! e83aa35c01e78f8ce91110556f01e8b9  gcc/m2/mc-boot/Gvarargs.cc
! edd9a92e66f34d7d85ddbbdd76ad343d  gcc/m2/mc-boot/Gvarargs.h
! 54ef20356b5bd86eba88578a6b25ad6e  gcc/m2/mc-boot/Gwlists.cc
! 7cb3d341e375a697382d9be36ad145ab  gcc/m2/mc-boot/Gwlists.h
! 5f98fa4970bb3019d1ae1e31cc5f0df7  gcc/m2/mc-boot/Gwrapc.h
  0353f1ec4e4fbfb6eb0e9080da3e5aef  gcc/m2/mc-boot/README
! f905bfc76ea1de5e02b7724cb7637fc4  gcc/m2/mc/Indexing.def
! 0671a9fa3774acdd3c0aa060f53f377f  gcc/m2/mc/Indexing.mod
  f8f98e9ffb642286dd61fd52be017824  gcc/m2/mc/README
! d7957375108d0cc26e8e42c699953a81  gcc/m2/mc/alists.def
! 80049fe3603dbbdd4ca2041b89cedf94  gcc/m2/mc/alists.mod
! a6944bc8b8054688da222277c190ca28  gcc/m2/mc/decl.def
! 97faabbf52ef6a85ca4ad4e65a5b3946  gcc/m2/mc/decl.mod
  73d148ed772aa468cc7657a403f3edc2  gcc/m2/mc/decl.mod-extra
! f1db087273804e7c9a3f2ad28257fc9f  gcc/m2/mc/keyc.def
! b45e6e84a0c5e90da9b62bfebb67ea2e  gcc/m2/mc/keyc.mod
! ed8771c798c3c6a64aa7c07f227fba57  gcc/m2/mc/lists.def
! bb0a2eb8fd8a377ca8140d4d72a2a674  gcc/m2/mc/lists.mod
! 462eb9a7f2f7a3bf1e82d9b405ea398e  gcc/m2/mc/m2flex.def
! 670eca1a5f916cb6f14b6155fdf7af45  gcc/m2/mc/mc.flex
! 5e380b2714f82c15c7615eb66edc9223  gcc/m2/mc/mcComment.def
! 9c0ba80f950c0e50d67eee172868919e  gcc/m2/mc/mcComment.h
! def3b27c0e534510192a552ba140787a  gcc/m2/mc/mcComment.mod
! 2389246152bce3b2c4f010df029e42ca  gcc/m2/mc/mcComp.def
! 1db685db81690a84b4f999b22ca86fc3  gcc/m2/mc/mcComp.mod
! eaca502e99ba357c799a3fcf84abca32  gcc/m2/mc/mcDebug.def
! a0fdd7d8c64e1e743e688c3ab78d3557  gcc/m2/mc/mcDebug.mod
! 55b1c62c577cadc614902f4596390609  gcc/m2/mc/mcError.def
! 1548668d29ead2d275410e38f2e37131  gcc/m2/mc/mcError.mod
! e291043f52df2de041bb4110a357b5c2  gcc/m2/mc/mcFileName.def
! f795b2221811bb138aab27d3199898cb  gcc/m2/mc/mcFileName.mod
! 9bd620f84e7e6a1f07ede243180f3f32  gcc/m2/mc/mcLexBuf.def
! aca8dbac6188dad8a1f937c2cec5b124  gcc/m2/mc/mcLexBuf.h
! 0f0c56d6f6f5309cc570ac75554059b8  gcc/m2/mc/mcLexBuf.mod
! a05155bd7d8a4bd5b26810fcf196dfc5  gcc/m2/mc/mcMetaError.def
! f57e05d6f31e17917763c2154ca92f0e  gcc/m2/mc/mcMetaError.mod
! 7631b23c11d2ad2709434b7c7725558b  gcc/m2/mc/mcOptions.def
! bc28bcae68a56d35351fe2ad25e03531  gcc/m2/mc/mcOptions.mod
! c71c6df2db9b00d0ac5db06e11be2a70  gcc/m2/mc/mcPreprocess.def
! 1833b5df8b299f93daf7a58c9c1670e5  gcc/m2/mc/mcPreprocess.mod
! 65644357f324695450a268ee4ef943b1  gcc/m2/mc/mcPretty.def
! 229470cafd2671dbe5cf75b8cf9ef69c  gcc/m2/mc/mcPretty.mod
! 3193cdc3f4fb076066dd6ba08b0622d7  gcc/m2/mc/mcPrintf.def
! 2843ba839e1ce6c44cdae001de2bf02c  gcc/m2/mc/mcPrintf.mod
! bcc97b3c4da4d82f52af8da11d160ab4  gcc/m2/mc/mcQuiet.def
! 5accea17c2a970d075fef0a32e401485  gcc/m2/mc/mcQuiet.mod
! 806acdd9f5658cc0d35e8a22c1c44e5c  gcc/m2/mc/mcReserved.def
! 403693fac3c61aeaf5fc2292cdfeb993  gcc/m2/mc/mcReserved.h
! 3c554a03d87017b095d99f03ae2f2567  gcc/m2/mc/mcReserved.mod
! 45e52c45be0b26092a64f81758fbabd3  gcc/m2/mc/mcSearch.def
! 8f183d88e4d0bea19f14beab7584e363  gcc/m2/mc/mcSearch.mod
! 35c5e42f56827315ef765e608a10a36e  gcc/m2/mc/mcStack.def
! 72dc663f283e989097ec8a95feee64f3  gcc/m2/mc/mcStack.mod
! 1b2d5d667d6494e79d17a580bea24e20  gcc/m2/mc/mcStream.def
! f88ae8558b0a40b2ee91dcc5e663b07b  gcc/m2/mc/mcStream.mod
! 81d423cfb87ff814477c849c50edd201  gcc/m2/mc/mcflex.def
! 702b531dba9548d85258597b693720ec  gcc/m2/mc/mcp1.bnf
! 7786edd16f80b0699b7713d370efdcfa  gcc/m2/mc/mcp1.def
! 314054d12f0eb05fe1aaa0bffc2ae431  gcc/m2/mc/mcp2.bnf
! e2b39d9bc90e5c599dc154a6e4e1c0ba  gcc/m2/mc/mcp2.def
! 17e629a6ea5a2725ddf79822a0ad2a20  gcc/m2/mc/mcp3.bnf
! b78cfdfa33698afa5d339827ee043c4f  gcc/m2/mc/mcp3.def
! 4b0b23da4b0c87b672c0f710aa8abfd4  gcc/m2/mc/mcp4.bnf
! 12383ef789b9442d643932a160bf24c6  gcc/m2/mc/mcp4.def
! 750138a12a8213bb1d5aa8a9f6a3b5de  gcc/m2/mc/mcp5.bnf
! 6ff2f33cba3fc58fd9dccaec86fb169a  gcc/m2/mc/mcp5.def
! 22df992c34b9061c570d6e12abf41819  gcc/m2/mc/nameKey.def
! 5c1aa13eee7599c06ac56349f0ac3264  gcc/m2/mc/nameKey.mod
! 642db590045ab5e4b8a00fcfede70092  gcc/m2/mc/symbolKey.def
! 2686e06a5571ebd476cd1e4ba6f2e4e2  gcc/m2/mc/symbolKey.mod
! b7f9cff6bee3d48a0a22f7e18de5786f  gcc/m2/mc/top.mod
! 2473c2ca14c7a9580e36680f7f7f8bc8  gcc/m2/mc/varargs.def
! 7056154d7b9ef4b458e8dd54717323e9  gcc/m2/mc/varargs.mod
! 0db7330ab6a5222b576a31425833cb2d  gcc/m2/mc/wlists.def
! 2b2c40f8e7cd694deb8d19caf790ad8c  gcc/m2/mc/wlists.mod
! 615604ea1ee71b456d8d9b7450dc98fb  gcc/m2/pge-boot/GASCII.cc
! e107361daa4cde34e81ea032eed60132  gcc/m2/pge-boot/GASCII.h
! d9154f1676442197765b7c266d7bb445  gcc/m2/pge-boot/GArgs.cc
! c1db8f872901c6b1b5aca08085c5c7ab  gcc/m2/pge-boot/GArgs.h
! 77fb49ab509a14692b8a49b452b3b3f7  gcc/m2/pge-boot/GAssertion.cc
! 65936e988ac1f5cad3d2f9b4eabf2fbf  gcc/m2/pge-boot/GAssertion.h
! 5b43185ae2fedf4d27f562cdafeddb0e  gcc/m2/pge-boot/GBreak.h
! 94c43661f9fe246051ac85d86e197cf6  gcc/m2/pge-boot/GBuiltins.cc
! 9083e15a53c36202bcfea591af4e3663  gcc/m2/pge-boot/GCmdArgs.h
! d8a0d39e74870fb24fd81dadfb74b051  gcc/m2/pge-boot/GDebug.cc
! 7d60c0ee2d3f1711a19287c70d29e6e7  gcc/m2/pge-boot/GDebug.h
! 1698fd9d0768855275d3f3f771200e27  gcc/m2/pge-boot/GDynamicStrings.cc
! 86c185e2390d041c35f1356cf425df30  gcc/m2/pge-boot/GDynamicStrings.h
! 615a347ef959c897ca953c9da15c9c01  gcc/m2/pge-boot/GEnvironment.h
! 7464b80bfbdd85015309574df450fac5  gcc/m2/pge-boot/GFIO.cc
! 6d5588f353da5c6c8985c8e7c34ff454  gcc/m2/pge-boot/GFIO.h
! 9084a8064675e64d07718b9023425751  gcc/m2/pge-boot/GFormatStrings.h
! a8f1c76e8396343b66e5f39a199333f6  gcc/m2/pge-boot/GFpuIO.h
! 2ff8c974d0546aa3a72eb42beaca2a4c  gcc/m2/pge-boot/GIO.cc
! 0bd8dd1a815b2af698b8c640b776254b  gcc/m2/pge-boot/GIO.h
! 1669746f1d35a8605522b13bc7ee7d12  gcc/m2/pge-boot/GIndexing.cc
! 752e1d5c03bcdf7fb2104142b38a2c71  gcc/m2/pge-boot/GIndexing.h
! c3c6bfab16c7a6845fb8545323439eee  gcc/m2/pge-boot/GLists.cc
! f8f8525b9030302b3cc5ce0848319739  gcc/m2/pge-boot/GLists.h
! 4901497750c04ca3aed144ad8a08ac77  gcc/m2/pge-boot/GM2Dependent.cc
! 28b021f230126f01f39cf0a7e83ae855  gcc/m2/pge-boot/GM2Dependent.h
! bb952a5dc2f7e674837cdbb8e6d0989d  gcc/m2/pge-boot/GM2EXCEPTION.cc
! dbb4084e7f8d724776409a654d4b5512  gcc/m2/pge-boot/GM2EXCEPTION.h
! e24d1e00cf405481bd26ee71539ffd44  gcc/m2/pge-boot/GM2RTS.cc
! b55490385a043594c35fdc218335a6ac  gcc/m2/pge-boot/GM2RTS.h
! d29c672550709ebb4a4aa85ead21e71f  gcc/m2/pge-boot/GNameKey.cc
! 1ecab44cc66269b7436f22cf0f866f30  gcc/m2/pge-boot/GNameKey.h
! 5c6d7ce2f8ef4806e4199281be24e71f  gcc/m2/pge-boot/GNumberIO.cc
! 4c9d6555902e3669aecdbeda2497abf1  gcc/m2/pge-boot/GNumberIO.h
! 043456ed2eda28098886bf129f8f695d  gcc/m2/pge-boot/GOutput.cc
! 80d3da51c8fb0cf415a00f88f2922a24  gcc/m2/pge-boot/GOutput.h
! 14d6737faad1a92b552bab1f1ff5bd3e  gcc/m2/pge-boot/GPushBackInput.cc
! 2e5be0b8081688741243ac72d6112656  gcc/m2/pge-boot/GPushBackInput.h
! b6ee5ff63646c420920062c13db568c9  gcc/m2/pge-boot/GRTExceptions.cc
! 0ff3fefb0e53ac1d1e087509d0e4919e  gcc/m2/pge-boot/GRTExceptions.h
! 3d41b1be76034ce5d5f648f0a9f8357c  gcc/m2/pge-boot/GRTco.cc
! 8638f2794b3b574b9e66c9417384e1dc  gcc/m2/pge-boot/GSArgs.h
! 77353ad98567a2a3743dfc3631ddbc65  gcc/m2/pge-boot/GSEnvironment.h
! dd73b6dc1d8659b242db04eae60b3b12  gcc/m2/pge-boot/GSFIO.cc
! cf09a80513b70680ee17e7edd3ba8ffd  gcc/m2/pge-boot/GSFIO.h
! 37974df9c365226b3008165a69609220  gcc/m2/pge-boot/GSYSTEM.cc
! b5bbf20c76e054bb4d2da529ee7ed195  gcc/m2/pge-boot/GSYSTEM.h
! 5cdbbaa4bf3e0888317d5e149166d861  gcc/m2/pge-boot/GScan.h
! 46a3ada94648322c19cfa2a51304bf02  gcc/m2/pge-boot/GSelective.cc
! 1b0d60a2585ef0a3cc3f1bfb3f029540  gcc/m2/pge-boot/GStdIO.cc
! 2e88d87ef144bc030c76dfcf28390015  gcc/m2/pge-boot/GStdIO.h
! e76b8d12035c93ef95f45cbea01a5663  gcc/m2/pge-boot/GStorage.cc
! 95badf1769b547148c7222220d209cf4  gcc/m2/pge-boot/GStorage.h
! 1d692ea342378a7d1d403297ee574c77  gcc/m2/pge-boot/GStrCase.cc
! 7fa8523d2a2cd2f625a8a803b90a1661  gcc/m2/pge-boot/GStrCase.h
! 8fe7c5abb50d28730e03b47184ef09f2  gcc/m2/pge-boot/GStrIO.cc
! 55cdab5615f99ce35571afc6ba0ed05b  gcc/m2/pge-boot/GStrIO.h
! a5646b7d4f8c0b944eb8a65c757a0ce8  gcc/m2/pge-boot/GStrLib.cc
! de1b0aa21858511ce0c199a3ecf46853  gcc/m2/pge-boot/GStrLib.h
! ab3c520cd0ae1d0bb7dd24c7434d9a11  gcc/m2/pge-boot/GStringConvert.h
! 5f63c1fcc9be8ed2fa2379dde045ec7b  gcc/m2/pge-boot/GSymbolKey.cc
! 88d8237c16aa8fe63d2d24112595fcab  gcc/m2/pge-boot/GSymbolKey.h
! d93a4b0c2fa129e4cf8c3ca74d3427c5  gcc/m2/pge-boot/GSysExceptions.cc
! de35ac1a3b562d2f02e2be8cd12d3b53  gcc/m2/pge-boot/GSysExceptions.h
! 7e7c94a1b21e7b81f6998392c48c43cf  gcc/m2/pge-boot/GSysStorage.cc
! 8a070c6e6e6cf47b4ec8b0ecc15cbdc1  gcc/m2/pge-boot/GSysStorage.h
! 12f3a1d434b2d79a119e98797845d2ca  gcc/m2/pge-boot/GTimeString.h
! 56a26f5ad490413a669aca6d98b9a2eb  gcc/m2/pge-boot/GUnixArgs.cc
! 017d94a38bd512c5c15cdc3091ecebad  gcc/m2/pge-boot/GUnixArgs.h
! a2d03aa31a6026168ccb468d7430feb2  gcc/m2/pge-boot/Gabort.cc
! dfc7e09bfb75758831302b65ed3ac992  gcc/m2/pge-boot/Gbnflex.cc
! 6c7a5fd70a4b4e0dbc56990dd2a2a082  gcc/m2/pge-boot/Gbnflex.h
! fc0c6cd43b28d715f9408a2b3d542059  gcc/m2/pge-boot/Gcbuiltin.cc
! e2ac7830e5526702cfb6b0c4713c951d  gcc/m2/pge-boot/Gdtoa.cc
! e8fef2551eedff9e2c8a849c1891cac5  gcc/m2/pge-boot/Gdtoa.h
! 0627dfd18a14bd63fc6206d4e6383681  gcc/m2/pge-boot/Gerrno.cc
! 4f27b28a6072e9236bc0f7d281e0788a  gcc/m2/pge-boot/Gerrno.h
! d6a91d3d4164eea8aff9ce97de8e3cad  gcc/m2/pge-boot/Gldtoa.cc
! 68c1d8bd0a5b5ab3ad22b4d2c1b07e93  gcc/m2/pge-boot/Gldtoa.h
! dcad2ab41e18d028234b9131a3e91b55  gcc/m2/pge-boot/Glibc.cc
! a15316902a3a6a0f25f87e03621b4bff  gcc/m2/pge-boot/Glibc.h
! 07b3bab67c818570d7b72cf284efb376  gcc/m2/pge-boot/Glibm.cc
! 1ef97ac3ae2577871f6b0e67ee3c3004  gcc/m2/pge-boot/Glibm.h
! b1b61a77d982e07b3a553314966bc2ed  gcc/m2/pge-boot/Gmcrts.cc
! 38f1b90202e6b933f1a463ab201671de  gcc/m2/pge-boot/Gmcrts.h
! 0b7dffa7d5f2ae9d4f18c96a02224202  gcc/m2/pge-boot/Gnetwork.h
! 1f14e7ec1b64ac55c4e82124a5bf2936  gcc/m2/pge-boot/Gpge.cc
! 55ef0010913844f4095b606496bbe33f  gcc/m2/pge-boot/Gtermios.cc
! 980a496e63723200cc223b04744cd66b  gcc/m2/pge-boot/Gtermios.h
! 4e4200f5298d5193aa9d73d289563e43  gcc/m2/pge-boot/Gwrapc.cc
! 5f98fa4970bb3019d1ae1e31cc5f0df7  gcc/m2/pge-boot/Gwrapc.h
  32de17e5bdad997b43794d330fc5dae5  gcc/m2/pge-boot/README
! 22957044984baa47bc82413a06f5e1ed  gcc/m2/pge-boot/m2rts.h
  8b33b15307e9ec5d5dc5f5ce40ae479b  gcc/m2/pge-boot/main.cc
! a1ef1b70669c773d3b0c5d5f475c2737  gcc/m2/pge-boot/network.cc
  18840892def349c0982fbe40111d6a91  gcc/m2/plugin/README
! 5ce044bfb5e3411ab967076c6209dbe8  gcc/m2/plugin/m2rte.cc
! b6e5f0da274b54528dae320c9d012d8b  gcc/m2/target-independent/m2/Builtins.texi
  ff2cddc8e82d26e626d51a518f97024d  gcc/m2/target-independent/m2/SYSTEM-iso.texi
  803e2e2c4293fdba546b2340322ba0ce  gcc/m2/target-independent/m2/SYSTEM-pim.texi
! 5dc68206c4e1664be03c075b50267b64  gcc/m2/target-independent/m2/gm2-ebnf.texi
! 56a83ebca20a0ed9d23deae7e571a2d5  gcc/m2/target-independent/m2/gm2-libs.texi
  3eed1eee3be7e4c14fa1d8f611ab2c90  gcc/m2/target-independent/m2/gpl_v3_without_node.texi
  90ef5843055db95072a5e0dcaad1e694  gcc/m2/target-independent/readme.txt
  7625da2d2347161386e94664ab2ceac9  gcc/m2/tools-src/README
! d369b27af7cc7038add6b4f28f8dff0e  gcc/m2/tools-src/boilerplate.py
! 2cc4504e625876a826802362c5995dd8  gcc/m2/tools-src/buildpg
! 35f5b7d26de8d8ed5106f6bc8d0243f6  gcc/m2/tools-src/calcpath
! 00d03c3e02aa7863d246d9a48a19ffb2  gcc/m2/tools-src/checkmeta.py
! 8d11aafcef816f8516f6df1494e5bc1a  gcc/m2/tools-src/def2doc.py
! b6a67f19922a7102fda40816c3d79ebb  gcc/m2/tools-src/makeSystem
! 159038cfb96e584e4f21d13d650923f9  gcc/m2/tools-src/mklink.c
! a76a3ee5d817c7e25fc8944cd322de2a  gcc/m2/tools-src/tidydates.py
  f9608e9005487c369e6c38949ab36fa1  gcc/m2/version.c
! ff057624034b9a3f61aa8a7949da456e  gcc/machmode.def
! d24a84209a835c9cd933ec6c0cd756a2  gcc/machmode.h
! db4aa18553273d5e513c430bdea3d79a  gcc/main.cc
! a209940893eb5d9d9edc9f1e0fa3a88d  gcc/make-unique.h
! ffde3e164b2afca0ad21a6476e66a86a  gcc/match.pd
! 3eb7fce4670eed35821ef049a1488347  gcc/mcf.cc
! 258cf9819c6a00e19b88c5a07c9b8991  gcc/mem-stats-traits.h
! b9810957b2a5920aa47c04774895c26b  gcc/mem-stats.h
! 5dd21777320d3fbe8ec2d84a97c8690e  gcc/memmodel.h
! 7d51d91a96745b2ebd2e6682080a5fc2  gcc/memory-block.cc
! 622faa99d65a390a0e3b23b7fc488969  gcc/memory-block.h
! 5075ef1302fa68b3b7edb65fc283839e  gcc/mkconfig.sh
! 4d0e7081d2d81e5bfc2fd09f529f24ae  gcc/mode-classes.def
! f6a2d10bc3bc653427266164c36ca1fb  gcc/mode-switching.cc
! 1fda2a05e5fb301f8612f743bfdf3725  gcc/modulo-sched.cc
! c8b16bf852c15e62fcb9a95a643a4e12  gcc/multiple_target.cc
! 2ad914a0ae04e8842e895b012fa51725  gcc/mux-utils.h
! ebf36a39c28481dda43ea045991a6182  gcc/objc/ChangeLog
! 89d4cda1305ba64b78d7d27fbc514fdf  gcc/objc/Make-lang.in
! 7af4b264a6f750378dcb944f1db5b70f  gcc/objc/config-lang.in
! e7b63a07864cdf1b61ec860b4e8ad30d  gcc/objc/lang-specs.h
! aa48b95777639651e4d69f1e4a81fae8  gcc/objc/objc-act.cc
! 861d66c65dcda03dfbb3187da17f0025  gcc/objc/objc-act.h
! 1142ca4a89f422834e7a9780e7b0b7f0  gcc/objc/objc-encoding.cc
! 4744662e2094fe9a347e08a7e32fd7b3  gcc/objc/objc-encoding.h
! 948880a199ab5e9f783a906ded25ddb0  gcc/objc/objc-gnu-runtime-abi-01.cc
! 65437770f237863f4f2ef95b651fdb30  gcc/objc/objc-lang.cc
! ecbe85ca51c420ffa9c345d6075e8bdd  gcc/objc/objc-map.cc
! db64c5508f618684c2534f17389a5ac2  gcc/objc/objc-map.h
! 6987fb0142c6cf3aeb64808172c92205  gcc/objc/objc-next-metadata-tags.h
! b643b35e4f2fc112d899b4e01469d66f  gcc/objc/objc-next-runtime-abi-01.cc
! 18087ba4f660b701eb0d67339ed71e48  gcc/objc/objc-next-runtime-abi-02.cc
! 3897d144acc90dec7dfd018460bb3394  gcc/objc/objc-runtime-hooks.h
! 8a597cd9913a2375823a51253a8a6748  gcc/objc/objc-runtime-shared-support.cc
! 2d577827d34731720aca2a1a40c83ae4  gcc/objc/objc-runtime-shared-support.h
! 8f2962ebf1c46d64a67fe22dbb553405  gcc/objc/objc-tree.def
! 876cd4d24b5350bee318a851e14b3c99  gcc/objcp/ChangeLog
! 70b191ea9ea9340ccaf4db01d4060c32  gcc/objcp/Make-lang.in
! 1e526d82134a4efe3640a7221b9a1edd  gcc/objcp/config-lang.in
! ba9b1a0486a25c7a5e9259900cc2d628  gcc/objcp/lang-specs.h
! db026aa3d5de8a0ccecf492340917f08  gcc/objcp/objcp-decl.cc
! e6f56cf368ed56c2711af5ea822a328a  gcc/objcp/objcp-decl.h
! 28e4bedf187fe8ed31f6a00e11a7a9df  gcc/objcp/objcp-lang.cc
! 68792ecd109c4276bac03d7aa1445ac9  gcc/obstack-utils.h
! 0224aa3be73c07c277f42313228c9cfe  gcc/omp-api.h
! 555473cca6d8dacbe73507cd56b703d4  gcc/omp-builtins.def
! 4505a221f9795254bb65e23ae54d7d38  gcc/omp-expand.cc
! 09db560da111d9a47704f24d99d44b8f  gcc/omp-expand.h
! 6dc86983ab780e52417a5b288e2116d2  gcc/omp-general.cc
! c1ddb0c6305e45221acab4445de3ef3b  gcc/omp-general.h
! 0c08b1d0f299580f571d556e2aee1967  gcc/omp-low.cc
! e3224969a5ed6b10763e81875242df90  gcc/omp-low.h
! c253e58a61787441cc6f3b8bd2362916  gcc/omp-oacc-kernels-decompose.cc
! 76a4931edcf0949a84b213b9f3bebcdc  gcc/omp-oacc-neuter-broadcast.cc
! 28675bde7ee7831b2b35fd97428b34fb  gcc/omp-offload.cc
! da9eb48dbee78766b92e585fe5d31858  gcc/omp-offload.h
! b713a71df97482cf1351f600ef588b28  gcc/omp-selectors.h
! fb72d1c0aef937711537cd08b25d156e  gcc/omp-simd-clone.cc
! d7e20b54dbf41bb5bbc882d887464b90  gcc/omp-simd-clone.h
! 6bfba94b3435f147c15e015b043f1be2  gcc/opt-functions.awk
! b1f6bca1fa112b1a96f89ede62ee9094  gcc/opt-gather.awk
! 1bc73ae47cd5bad28550c54de9c37839  gcc/opt-include.awk
! ca2ad6e321d28485b59d46bc553fddbc  gcc/opt-problem.cc
! 5776bd79f0077017f406b0ed92e37a4f  gcc/opt-problem.h
! 18f91868654d5bee48cf9a65177670cb  gcc/opt-read.awk
! 04232b32c4b7aedb0b8b53f9ba2be10c  gcc/opt-suggestions.cc
! dd70105f475a52e233b47ff0c616cfc4  gcc/opt-suggestions.h
! adeeef8816b5b080b6e1e79572392f32  gcc/optabs-libfuncs.cc
! eaeaf4fdb3363875b83fc6456140da8a  gcc/optabs-libfuncs.h
! f90689370e66cea8434860b5a2b4ce6d  gcc/optabs-query.cc
! 45ddcc72ac7b1afaa7af97d8bc82c631  gcc/optabs-query.h
! 2621e9c7af560a2b8e74cf60d4b9ad19  gcc/optabs-tree.cc
! 13ecee26d0eed80122b7cdd5558365c0  gcc/optabs-tree.h
! 3c56647b5693fde7662ff144289710ca  gcc/optabs.cc
! 1524c898bb70671cfa4ccd9cda136f8b  gcc/optabs.def
! 043f510a745f66b5001f887999834c82  gcc/optabs.h
! 460fed94230230ee1afb607142c60ed7  gcc/optc-gen.awk
! 480719012c7457f2a1edb9ce2aa5dbcc  gcc/optc-save-gen.awk
! 9b1f8e81711c10b2dc1898cf157947b3  gcc/opth-gen.awk
! df278a9462ca2bff01ec9ff8bf94ad78  gcc/optinfo-emit-json.cc
! ad1716caf45c90d6d9caec724f30d520  gcc/optinfo-emit-json.h
! ef961981623deceff501978a9dae88e1  gcc/optinfo.cc
! d9bacdb6166a27e50029e3182b06a188  gcc/optinfo.h
! 8b4243a3782181679e38ba667cba27eb  gcc/options-urls-cc-gen.awk
! 7cac1582a6d3ed56cc0438628a87f0cf  gcc/opts-common.cc
! 48bef64d94870bb35654a71f190ac3a7  gcc/opts-diagnostic.h
! e4305e2c4749c00bfeeb8076167b4ad1  gcc/opts-global.cc
! edf438fefa6b7ecb25491b3346160a2f  gcc/opts-jobserver.h
! a425a5c4ce63dc8afe96d8900aef9214  gcc/opts.cc
! 6fedfbfc603ddcae59a0db838b4deb05  gcc/opts.h
! 144db85bc7d88e5bf0e64d74c55c6639  gcc/ordered-hash-map-tests.cc
! 08f16ee6d385da3a7686d42368f8adef  gcc/ordered-hash-map.h
! ff8dbe22f3adcf8d4f2ddf5e6e15cef5  gcc/output.h
! d402ffa218c7ad5bc139d1f83d34d62a  gcc/params.opt
! 2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
! 31d9108dc941193ce66f84eaef617d79  gcc/pass_manager.h
! fa42e03813ca55c6c23e2e26447b52e3  gcc/passes.cc
! 9aa0f63c797b2b3ceccbee49fb959ae5  gcc/passes.def
! 55035aeed04182e88f902cc211c34b90  gcc/plugin.cc
! 489f30c9e97a908622454bbc5e15a912  gcc/plugin.def
! ff1730806732d68f86a6d695005d5d90  gcc/plugin.h
! 694a98960a1165d3c76d91d43570631d  gcc/po/ChangeLog
! 7bee4123f0d4890b31ea8560606b4030  gcc/po/EXCLUDES
  e4e35545a1fab9b9decbe9b06b468f72  gcc/po/be.gmo
! 28cdb23b5db36844e3c225595f606698  gcc/po/be.po
! 333c0d667771ab4d33b2e9f44f8c8051  gcc/po/da.gmo
! 4940b9780a8d6b6eb01b781a788789d4  gcc/po/da.po
! 7932b5cb9896df7742cf6b83997d1b30  gcc/po/de.gmo
! f185150de31a10e330380907e691cfbd  gcc/po/de.po
  189b9d1af87594807b0d0e10036a64c3  gcc/po/el.gmo
! 96158c9f82ab4b519b59be8841f1c698  gcc/po/el.po
! 3c9066a51fffb922f88dc2e3eb083323  gcc/po/es.gmo
! 9bef7d189b916aaca25ef7b08ebbe7db  gcc/po/es.po
! 6e5dea033f333ed03dd18ee2593a5639  gcc/po/exgettext
! 4a2d71ea8447f378eea4ce497b2e6a0d  gcc/po/fi.gmo
! 4555c42308ab0e6becb32db068de1dd8  gcc/po/fi.po
! 07730b2210b1e27ab46adce9171c989b  gcc/po/fr.gmo
! ef273f7fe25b93f2b39b741a9901c546  gcc/po/fr.po
! 46ffbbde951815bcea0d6d5d9d51beaf  gcc/po/gcc.pot
! 9cf358cf5b8a07e8fc713312012cca5c  gcc/po/hr.gmo
! 81957e514798914d5a53e416990380fe  gcc/po/hr.po
! 4fcc507acb1732dfcdfd27f5c6bdb5a9  gcc/po/id.gmo
! d54df55989199d62aae10b8016c107a9  gcc/po/id.po
! c293745c802e3ecf31bf9a0b7c20cc54  gcc/po/ja.gmo
! 12eb963d5f0b6fec8caf5764a2c3868b  gcc/po/ja.po
! 0de8f74f2b34971c167300979ff78a8f  gcc/po/nl.gmo
! 4c42a1ddc1ad07c254959aa25ba3e4a5  gcc/po/nl.po
! b23766afff201e800255d2ff74151a9f  gcc/po/ru.gmo
! 04909bbd1f3309184b68f05a320856e3  gcc/po/ru.po
! 35f346f811f8450c31c1d99b447bdc24  gcc/po/sr.gmo
! fd0216abfe44e0f8fc2923ad377c8b65  gcc/po/sr.po
! 7e82a8483b18a8721db5969482e104db  gcc/po/sv.gmo
! dc5b49472bb57d2554977148babb1484  gcc/po/sv.po
! ed7288f141febc8565a8a0d96c7b590d  gcc/po/tr.gmo
! 11f064e6106bf67a8871198aa9e93e80  gcc/po/tr.po
! 9957b03572e4b99d09dd652ff605d789  gcc/po/uk.gmo
! 6c964294c50ad210499c43adeda50f7d  gcc/po/uk.po
! 5044505ac04668e66d7797e181cb21e6  gcc/po/vi.gmo
! c6a84a2ec703d1117c5c2d1e61c550e2  gcc/po/vi.po
! 9baedd6c906645dcaf6ff70b07e0207a  gcc/po/zh_CN.gmo
! 3d41f47a094a273d6b4aaf1a0e02c05b  gcc/po/zh_CN.po
! 6af1eb1cf8849686544835d0594082d2  gcc/po/zh_TW.gmo
! 7daaa9036cd0a627f704a4d0de33e2f8  gcc/po/zh_TW.po
! bab4ec81743409f81b639642d6a470ed  gcc/pointer-query.cc
! 42e14dd49b1893b63eedc00d3fc29b3a  gcc/pointer-query.h
! 1541cce778a3856ff5eb841d6d47ed26  gcc/poly-int-types.h
! e64a8ab864db636576c62983a00f800a  gcc/poly-int.h
! db8b0b44a9c90af8c666f84f5d2d6a15  gcc/postreload-gcse.cc
! 1c235a5437b0276e9e446a5bb154b994  gcc/postreload.cc
! 95c1c2ec2498cb142f61651ceb6c2286  gcc/predict.cc
! d525054b466fef2debef416a9642bd7a  gcc/predict.def
! a1003f0549c779ac813474f838335b35  gcc/predict.h
! f77168801b6d2c6f5c6f36a923fb8531  gcc/prefix.cc
! b917c692952e6c6417d7e2fcc775f08c  gcc/prefix.h
! 6a9d9ca9606d9710240467ac9b986066  gcc/pretty-print-urlifier.h
! 12cecb067933353c570d534992675b13  gcc/pretty-print.cc
! c8aba5622e179deb9d7744c694300bcc  gcc/pretty-print.h
! 9d54d48172fe03ced564a9516b33d426  gcc/print-rtl-function.cc
! 2a8e762e1b9ea8ebabf9ac323c8b810d  gcc/print-rtl.cc
! 9a8a2c8714ae94c3abb6f06641a509e6  gcc/print-rtl.h
! 0733ffc5b9f996c3290b4e8cb495dc04  gcc/print-tree.cc
! 561896afee20135da8210ef0b09aceec  gcc/print-tree.h
! f6a5b259097198d66b14186f87695b46  gcc/profile-count.cc
! 15c1fef5c89feec6af5f61c909e35410  gcc/profile-count.h
! c65c577b485a33a088eeda9f4269a0de  gcc/profile.cc
! d9deb5fb04bc9bc87a486a5ccfbba806  gcc/profile.h
! f29e4c9efdf2dc0f1c85d48990e74081  gcc/range-op-float.cc
! 997ac266d2595ff4eebf8329161f81d8  gcc/range-op-mixed.h
! 8ba824feefe86c2918eab3ecee628a5d  gcc/range-op-ptr.cc
! 8bccc2c44ae6272ee6c9810d418abafb  gcc/range-op.cc
! c27c1c39a9e7582f117a496eb1f6801e  gcc/range-op.h
! db3562fdc44d2731a5d6f79322e63e49  gcc/range.cc
! ab6530a7aba31b6045d649bad558bdd4  gcc/range.h
! d62f21136aedb5de39f00da2ce438022  gcc/read-md.cc
! 7353473e24e9e38faa6d2636c2b852a7  gcc/read-md.h
! ab6d7ad46c79c6922e06b47e127ac0e3  gcc/read-rtl-function.cc
! 05769e0c1dad9db0ecf442e1a710384e  gcc/read-rtl-function.h
! d0e0240ab5898db8d64694626b7a8a98  gcc/read-rtl.cc
! b0a0184b7b9e9c1fb0226f66853445ba  gcc/real.cc
! 9d2922bb55531074a578f60e3963a796  gcc/real.h
! 411b413e1c87bce6c78f6243d9e662b9  gcc/realmpfr.cc
! 2b4c19944566bf27cd500fc1e804e8c1  gcc/realmpfr.h
! 8c789f708b6b3a4a9d30cbabc71c94d9  gcc/recog.cc
! 3601a741d3177b8df9a76bd197eafd72  gcc/recog.h
! 78f7bb4149a60eafba8a5dda7bd80729  gcc/ree.cc
! e3d83ae4baa1d776cf5951923617ec90  gcc/reg-notes.def
! 35723f09766711c71ebef9ec4f7c41fc  gcc/reg-stack.cc
! e95738a65e09b7bd3bbcbbb5467f543c  gcc/regcprop.cc
! a97922db0f92509d800d3f1768f20b7d  gcc/regcprop.h
! e38ad832bcd33ad5c98b699c82482faf  gcc/regenerate-opt-urls.py
! a7d5787d583f54d43ff6842cf943d3ab  gcc/reginfo.cc
! 877700eb4e2ceb5e69292706be5ac56f  gcc/regrename.cc
! de0d2fac734a224f80867bb4a28dc82e  gcc/regrename.h
! c9aa55d7b97d4f98438fe6e8e12fb9bc  gcc/regs.h
! 00696b558f06f68b4a5021e22ca75b8f  gcc/regset.h
! 7ac46b11b533eb7027b31c3250f7eed7  gcc/regstat.cc
! b939a97b23c6a9e507206f88f374e3c7  gcc/reload.cc
! 7975be969706e36978faf51a80b12cc1  gcc/reload.h
! 9a37ec0045e423ece6dad00cd55e74ad  gcc/reload1.cc
! 8206eaad162f902fa167e743b4bb0c51  gcc/reorg.cc
! f823899984928681ad84050b538e2d15  gcc/resource.cc
! babf0178d50c8fdb4f8c6f263e8f7186  gcc/resource.h
! f520567da7bf489847d354df2881eb89  gcc/rtl-error.cc
! c8040ddc1ed0565198cd6c02138ac232  gcc/rtl-error.h
! 322452654eeaa79b28c69feb516575c8  gcc/rtl-iter.h
! 749bc40c9d8fa461f426ffe93825f034  gcc/rtl-ssa.h
! eb56b0393244b4fc25b53c415d1c75a3  gcc/rtl-ssa/access-utils.h
! 543ee94916548806a6fafbb7389902ee  gcc/rtl-ssa/accesses.cc
! 8551adb4a2560e77a0255429281d8e6f  gcc/rtl-ssa/accesses.h
! ce7c6e4a28e77a1ca248140d0f9fb4b4  gcc/rtl-ssa/blocks.cc
! d3cbfebd89086734978180ead25fb5fd  gcc/rtl-ssa/blocks.h
! 1a5d3dfffcd1d8edaab54ae419f8779f  gcc/rtl-ssa/change-utils.h
! c66de656bc10000a243fd2b501303049  gcc/rtl-ssa/changes.cc
! dc48c4f2ecc0c82e92dedd88095af9cb  gcc/rtl-ssa/changes.h
! 27a011a04ed2f2cfcd5c65d4b676d31d  gcc/rtl-ssa/functions.cc
! abeafdf1b3d5c04e302b2511836eaf9b  gcc/rtl-ssa/functions.h
! e86dfe63b497daf3f27ccb60672ed549  gcc/rtl-ssa/insn-utils.h
! f908452caff1936d349d4dc9a69ad4c6  gcc/rtl-ssa/insns.cc
! bee3f5f40260aee46cea4dffae8915cf  gcc/rtl-ssa/insns.h
! c9f63426926da72970b48ccdd174bcfb  gcc/rtl-ssa/internals.h
! c6556f7d4b71e1afe7fd15693cb0330a  gcc/rtl-ssa/internals.inl
! 0db4824244deb6377d1373f8b07c2117  gcc/rtl-ssa/is-a.inl
! a0e946b3c04348d50637a2fecf4c9064  gcc/rtl-ssa/member-fns.inl
! c7cca414fd19d8f2218113f23855cb63  gcc/rtl-ssa/movement.cc
! 98a61c25d101619006f94c9fa6736de0  gcc/rtl-ssa/movement.h
! db324b34f49ff4ae418c636199900535  gcc/rtl-tests.cc
! 3b6f4561994ed417fc3971cf78ec8700  gcc/rtl.cc
! 623faac030cb5c1b7ea631073b55f38b  gcc/rtl.def
! 913186efd19ee01563e3caea005a0e41  gcc/rtl.h
! 4adc116b7e13477a35b3b45f466eb329  gcc/rtlanal.cc
! a1937f17d1d182cb6e258ef408ed99b1  gcc/rtlanal.h
! 7c157970fb7474e6eb205b9b4c8c741d  gcc/rtlhash.cc
! b6a88148e243c3fc69752c9b207db3ec  gcc/rtlhash.h
! b7f34dbe9ce2ba2914d73ac3ab520ec0  gcc/rtlhooks-def.h
! c6f32b9d3d0485c6946acc0450be8744  gcc/rtlhooks.cc
! 5ba2c36a44548c5cc507a84ff1aec54d  gcc/rtx-vector-builder.cc
! da8cc7346087f24fd08a30678bffc803  gcc/rtx-vector-builder.h
! 12e68032aedebab5d0aa3f2383548a66  gcc/run-rtl-passes.cc
! b1fa6cd90c9a8ce5fbd4c6cadcb73b18  gcc/run-rtl-passes.h
  add9bd82fcec23469a4d0f7df03d9589  gcc/rust/CONTRIBUTING.md
! 4596cb5d213a37dbd0211898866c16a7  gcc/rust/ChangeLog
! fe3b0330b60f07917ffd019640594e4f  gcc/rust/Make-lang.in
! f3527e161e6e2827d299c1a928ebe1c6  gcc/rust/README.md
! 2739eaa6640d146dda975a2994d74982  gcc/rust/ast/rust-ast-builder.cc
! 770e300fd3d8cb69770627e6be0db506  gcc/rust/ast/rust-ast-builder.h
! 5645a4df7352ab41f13bc51ade0e26d2  gcc/rust/ast/rust-ast-collector.cc
! e9f395f82a1567366ad233b46dff328c  gcc/rust/ast/rust-ast-collector.h
! 50cf7bf1cd43523395fb3ac01cba8cbc  gcc/rust/ast/rust-ast-dump.cc
! 996c6b3aa3345e69fb3755c4c4bbfe6f  gcc/rust/ast/rust-ast-dump.h
! 5705439aef0e4682db64bc83c555a0fe  gcc/rust/ast/rust-ast-formatting.cc
! 8d16e8b8dde91909f83ba3762b1633dc  gcc/rust/ast/rust-ast-formatting.h
! f16c7575fd2a9187ef3ecdee58f91466  gcc/rust/ast/rust-ast-fragment.cc
! 1296480bbbd8dda191a44fc3a837742f  gcc/rust/ast/rust-ast-fragment.h
! 493b8ffb6a928e2240e146526033495e  gcc/rust/ast/rust-ast-full-decls.h
! 409e8adec8dbdacf32754ef94c4184d5  gcc/rust/ast/rust-ast-full.h
! 0c306bbdae2043a30bf3a04b22b712a0  gcc/rust/ast/rust-ast-visitor.cc
! 8ff4c135c0e179d436f2ec2e66027de4  gcc/rust/ast/rust-ast-visitor.h
! 6e7bef2b4bfc2dc2c7e7b816a116d9d4  gcc/rust/ast/rust-ast.cc
! 0ddce30c33489d3b61b05d0187601fd0  gcc/rust/ast/rust-ast.h
! b797dbb95105b99fb90b52228f3defc7  gcc/rust/ast/rust-cond-compilation.h
! 398ef2b9d17ac0d29f66b665b5a3bf80  gcc/rust/ast/rust-expr.h
! f6f9ccfd2d63397545267625cf4ef26b  gcc/rust/ast/rust-item.h
! 6618115730a2118dcf05861f2732a66b  gcc/rust/ast/rust-macro.cc
! 5b9aa6d3b93063b63af8a33bd12399e2  gcc/rust/ast/rust-macro.h
! 0ae6d3ca074f7f386f19ffec8c6279d3  gcc/rust/ast/rust-path.cc
! 5ba32efba5ec1836dc4872e6262f5f42  gcc/rust/ast/rust-path.h
! 08e7a831356fbddefe96dbbfd654ba77  gcc/rust/ast/rust-pattern.cc
! 894ba1d5f60f36474dd5c6b2e200be2a  gcc/rust/ast/rust-pattern.h
! 7ecd750419a5aa6e37f4a05885d1fcc0  gcc/rust/ast/rust-stmt.h
! d21a856e04fb0dc517dea450753e9b3e  gcc/rust/ast/rust-type.h
! 39774c8ec83393047e843c9b8dff6822  gcc/rust/backend/rust-builtins.cc
! 7a03177dadd08e445c7a4662920811a6  gcc/rust/backend/rust-builtins.h
! 16ded9645a90d3b6a057ad2f693efb95  gcc/rust/backend/rust-compile-base.cc
! 7a8ba29963c11429fad9029d042cd634  gcc/rust/backend/rust-compile-base.h
! 6c009da96d7d90578abdb12abe6c3ac0  gcc/rust/backend/rust-compile-block.cc
! 0006ae8ff7c5734343fad08826eb3efb  gcc/rust/backend/rust-compile-block.h
! 4470d15f66e4384b3bdb75a6cf078f45  gcc/rust/backend/rust-compile-context.cc
! 70d8900d37c72cff3b84f56cda9547ed  gcc/rust/backend/rust-compile-context.h
! 906bdb5a47ee2789e42adb47ebc7f695  gcc/rust/backend/rust-compile-expr.cc
! 05357b27d8127485f2ccecb094cb034e  gcc/rust/backend/rust-compile-expr.h
! 3c3fb2a863f6e2c639f414ae304ad139  gcc/rust/backend/rust-compile-extern.h
! 7b9fb3a1653620cae3a1aeac4711956b  gcc/rust/backend/rust-compile-fnparam.cc
! 5b9611628e0434d05498363be7e20c15  gcc/rust/backend/rust-compile-fnparam.h
! 6075420971bc6f9cbf8e087edc63eeb7  gcc/rust/backend/rust-compile-implitem.cc
! 9aac5194bbe828b45ae8d4e8516e0cfd  gcc/rust/backend/rust-compile-implitem.h
! d5da5f731126fa59aec6f4a38d2aed79  gcc/rust/backend/rust-compile-intrinsic.cc
  a1fb8689400958af8126ae9c477c873e  gcc/rust/backend/rust-compile-intrinsic.h
! 55fc2e4bb634d7a45f18a92f0a4fdf62  gcc/rust/backend/rust-compile-item.cc
! e74f9987bd188b926bb732c4beb0a342  gcc/rust/backend/rust-compile-item.h
! ef0f5ec355dbb7a085ee43c836a250b9  gcc/rust/backend/rust-compile-pattern.cc
! 341379c462bc26472b5b39558d608a90  gcc/rust/backend/rust-compile-pattern.h
! cd711182d62e81ac9cb36e89d0ab5062  gcc/rust/backend/rust-compile-proc-macro.cc
! 7b14cad8969461457013b3f24219e6a8  gcc/rust/backend/rust-compile-resolve-path.cc
! 27962842ee092c22d0a42b1f9de2ef38  gcc/rust/backend/rust-compile-resolve-path.h
! 774d5d6089e002b1ab32f2297706b8b1  gcc/rust/backend/rust-compile-stmt.cc
! 7b71c3009e78ce4cb8bd5d775fe3f646  gcc/rust/backend/rust-compile-stmt.h
! 18f99673c5fa579faea9c900eaa7e5b6  gcc/rust/backend/rust-compile-struct-field-expr.cc
! 277bddb4618e9f398efa7e75e8b6ae0c  gcc/rust/backend/rust-compile-struct-field-expr.h
! c655d5bf57417329896c6cfe4b04301f  gcc/rust/backend/rust-compile-type.cc
! 8e51b3dc7fbbd109e0544c0193ce6004  gcc/rust/backend/rust-compile-type.h
! 5ed679ead25590e35cf796dc2923daa1  gcc/rust/backend/rust-compile-var-decl.h
! d8f21c3e5073438f7983a81fcdec810b  gcc/rust/backend/rust-compile.cc
! 7be115e3a2e0e325ff40a98c68500885  gcc/rust/backend/rust-compile.h
! 99bbb5038a154a04a575af9e49250e82  gcc/rust/backend/rust-constexpr.cc
  3778b6c3ad2a1fad766013bb9e1d8ea3  gcc/rust/backend/rust-constexpr.h
! d318ae75420f450e99fbc7773953247c  gcc/rust/backend/rust-mangle-legacy.cc
! f4ff8efa3b32e5d0e9f87837b586c2f2  gcc/rust/backend/rust-mangle-v0.cc
! b877ffe1c96401d1f16041b9163ede86  gcc/rust/backend/rust-mangle.cc
! 512554d11e53c000f4acc53f4b5c960a  gcc/rust/backend/rust-mangle.h
! b0b62f3739f73bff5eb9e79bb449b9bb  gcc/rust/backend/rust-tree.cc
! ce793ff32ef77f6f23e4f0ae0d10a395  gcc/rust/backend/rust-tree.h
! f47752c311658f017263f4a44060e79d  gcc/rust/checks/errors/borrowck/bir-design-notes.md
! eee383c6d924f06fa96c8f58f21fc6af  gcc/rust/checks/errors/borrowck/dev-notes.md
! f8991fd1a2c9d4399b7eb5a27d1b91b8  gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
! 5ef8ebc2ef90e139d5426534241e2d5f  gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
! bf3acf72c2856ace9d51062006e5fb19  gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
! 6a3e33d02a55b6fd82140cd88adf8bff  gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
! ee08b212dbb653ad4bdf2ee52bbb4053  gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h
! 15e8fec16e419d1baf6dfcca4cefc86b  gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
! 0bb69ce07f869f5cadab88674170866c  gcc/rust/checks/errors/borrowck/rust-bir-builder.h
! 9c25b4c9b578d14b51baab2c7c690adf  gcc/rust/checks/errors/borrowck/rust-bir-dump.cc
! 1638ef87fb5c0186deaa23e9a6f3bd53  gcc/rust/checks/errors/borrowck/rust-bir-dump.h
! dedefaff936789760748e51351f6039c  gcc/rust/checks/errors/borrowck/rust-bir-place.h
! 62db62086ec680a8063cf1906997ad8d  gcc/rust/checks/errors/borrowck/rust-bir-visitor.h
! 7f99055019edc67e330726d0eb1aeb8d  gcc/rust/checks/errors/borrowck/rust-bir.h
! 84b39948f1419052d719e58ff8df8e59  gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
! 3ad1f63e58370145f79e4fc69317fa57  gcc/rust/checks/errors/borrowck/rust-borrow-checker.h
! 8c6137afeafddf291705c8a10650a32c  gcc/rust/checks/errors/borrowck/rust-function-collector.h
! 74e2d1a0866565675f02e62afff2654b  gcc/rust/checks/errors/privacy/rust-privacy-check.cc
! cc3159128deaca71054966724965ef1b  gcc/rust/checks/errors/privacy/rust-privacy-check.h
! d3a6ee6ff32097a82f96e0c48cf49a40  gcc/rust/checks/errors/privacy/rust-privacy-common.h
! 1fd04e967ebd0ad2ed3f61ac3782b3bf  gcc/rust/checks/errors/privacy/rust-privacy-ctx.cc
! 222c24dec242318a54add028cac73c2d  gcc/rust/checks/errors/privacy/rust-privacy-ctx.h
! f7a8c2514edf9247c678ee1f003fdbc5  gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
! e58e0c71aa348c5d911d654831112304  gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
! 80e15310cc2ec1a59b83889c7208a30d  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
! 83f32b368a0369f26af8d89cc6d49af1  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.h
! 83c77698d118b63c0219d3fe50e45f7c  gcc/rust/checks/errors/privacy/rust-reachability.cc
! 426225b30a71b3cbaac662ecd62b9691  gcc/rust/checks/errors/privacy/rust-reachability.h
! cbafc2648c60633fb54b1ac218eec284  gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
! 492887b795ae246dc017518967d0b2cf  gcc/rust/checks/errors/privacy/rust-visibility-resolver.h
! 310184bd79fca0ecf68b5da940111141  gcc/rust/checks/errors/rust-ast-validation.cc
! 4703048924351cf2453a1e739f4617e3  gcc/rust/checks/errors/rust-ast-validation.h
! 425c92ab47dc28d2afe5c2c47d6af55a  gcc/rust/checks/errors/rust-const-checker.cc
! 2e3a885ae5c98e1b31fb6fb04d9363cb  gcc/rust/checks/errors/rust-const-checker.h
! 5f0feaf06394dbd13206198291873096  gcc/rust/checks/errors/rust-feature-gate.cc
! 0208b72b247163215a6db5f0aa6e5af9  gcc/rust/checks/errors/rust-feature-gate.h
! 58198c77d289646c5f5c603f69e9c263  gcc/rust/checks/errors/rust-feature.cc
! d96e917daee7b4055673516c50e48db0  gcc/rust/checks/errors/rust-feature.h
! 0c55ae3742f61e51edfcb8891ad0bb91  gcc/rust/checks/errors/rust-readonly-check.cc
! cf1670d2aed567e70f6e5fd890c928c2  gcc/rust/checks/errors/rust-readonly-check.h
! 6bcb6f91a8f8c59121763f1580c26533  gcc/rust/checks/errors/rust-unsafe-checker.cc
! 75fd8619401a967ba5620bb57c041e3e  gcc/rust/checks/errors/rust-unsafe-checker.h
! 54e24d94a4e26b1e5fbe2edba3e723d7  gcc/rust/checks/lints/rust-lint-marklive-base.h
! 15cd282bbe1702aeab52ab9a1accf26a  gcc/rust/checks/lints/rust-lint-marklive.cc
! 2bbcb580709688bfac6b47c06c5f2ec8  gcc/rust/checks/lints/rust-lint-marklive.h
! 05073d080ec1fb206a1174f0fcee33b6  gcc/rust/checks/lints/rust-lint-scan-deadcode.h
! 066897e69250bde55e4b0e2d714e9a0a  gcc/rust/checks/lints/rust-lint-unused-var.cc
! df8c9b74f12db6e599209667360d49ff  gcc/rust/checks/lints/rust-lint-unused-var.h
! 3419933c102584570b6e2fcfdf48420b  gcc/rust/config-lang.in
! e03c2f31f717874df023452bb8caf1f1  gcc/rust/expand/rust-cfg-strip.cc
! 3a14008423a96083a8423249b09dc088  gcc/rust/expand/rust-cfg-strip.h
! ed8dc236f6ae4e029c131cb918f7195e  gcc/rust/expand/rust-derive-clone.cc
! 913f3fd20a269285379d51ec477d522e  gcc/rust/expand/rust-derive-clone.h
! 7f557bc282f6da9e9969a3fbc1006d9a  gcc/rust/expand/rust-derive-copy.cc
! 8f620440497c3674f047df9af4c73d39  gcc/rust/expand/rust-derive-copy.h
! fbc2cd5e1fa9991ede24314701dbb2dd  gcc/rust/expand/rust-derive.cc
! 06cd548fc10775dae7c9cd6323d892aa  gcc/rust/expand/rust-derive.h
! f5c40ad3d40e24ac9fa463f89f20620a  gcc/rust/expand/rust-expand-visitor.cc
! 95c09951821dc913e51fce75086fe1e9  gcc/rust/expand/rust-expand-visitor.h
! 485362b1056feef82ebdd0b97db4bda6  gcc/rust/expand/rust-macro-builtins.cc
! d832ee9a8f0eb071fb83b1d1ac272889  gcc/rust/expand/rust-macro-builtins.h
! d9bf4ac8e5a5fe1ba6e4df1ec25e09dc  gcc/rust/expand/rust-macro-expand.cc
! 197a6ac9c3db38778c69f351a8465b61  gcc/rust/expand/rust-macro-expand.h
! c9a05ccf22c83dcadbfc5d338576812b  gcc/rust/expand/rust-macro-invoc-lexer.cc
! 5485fde17ab40d2a30729ee93d7e0cba  gcc/rust/expand/rust-macro-invoc-lexer.h
! 0622aab798939bd599fc122f5d3be35c  gcc/rust/expand/rust-macro-substitute-ctx.cc
! dee5e42a511858f73132fa0264ea88d3  gcc/rust/expand/rust-macro-substitute-ctx.h
! e6121a2e800281fd70ea371fbb8af9a1  gcc/rust/expand/rust-proc-macro-invoc-lexer.cc
! 0e75d02f1ed30d4d136a46c6d33ff9bc  gcc/rust/expand/rust-proc-macro-invoc-lexer.h
! 923075e64380b2f747578cb52ea999e9  gcc/rust/expand/rust-proc-macro.cc
! 0fc794873a4275b45265cfc97fd85f06  gcc/rust/expand/rust-proc-macro.h
! 050c8aa6f90477a7aba9b1ba737812f3  gcc/rust/hir/rust-ast-lower-base.cc
! 87b3482478f75c58c42c49499ca18ceb  gcc/rust/hir/rust-ast-lower-base.h
! 932fae8d3703dc77a4c3ce3e3eb220cc  gcc/rust/hir/rust-ast-lower-block.h
! f8903b2fc4c436ca71d04ac74fbc4524  gcc/rust/hir/rust-ast-lower-enumitem.h
! e4a474a9c7f41ca02edeb3026f2b1d16  gcc/rust/hir/rust-ast-lower-expr.cc
! 71269aed10bf85123b4c3929ddb9ec9a  gcc/rust/hir/rust-ast-lower-expr.h
! 243093d9074c374144ec5e950000ded1  gcc/rust/hir/rust-ast-lower-extern.h
! 5dfd8d71d5dbcc0fb68fd5551c040cdb  gcc/rust/hir/rust-ast-lower-implitem.cc
! 31be5f8b816d80ad331d00fe6ce2e175  gcc/rust/hir/rust-ast-lower-implitem.h
! 6102494cf1a0b2056fcd7ee0f8f91160  gcc/rust/hir/rust-ast-lower-item.cc
! 3090a4742914d74b670bd7a4b9719707  gcc/rust/hir/rust-ast-lower-item.h
! e3aa0f50121dbaec3f5b2afb4a75b547  gcc/rust/hir/rust-ast-lower-pattern.cc
! b21cafeb543f63cc6f747eb9f7734ac8  gcc/rust/hir/rust-ast-lower-pattern.h
! 07b4e570e5664d988c9d8b084587f48e  gcc/rust/hir/rust-ast-lower-stmt.cc
! f240fee6fd4cd0a591f0b134fbec7e87  gcc/rust/hir/rust-ast-lower-stmt.h
! 071fbd004f31547059e4598c6cfc6964  gcc/rust/hir/rust-ast-lower-struct-field-expr.h
! 47fb7eed02b104cb9d7ded6e9aa0ef9a  gcc/rust/hir/rust-ast-lower-type.cc
! 9983330d01a32af8c3c8ab7e85d602c9  gcc/rust/hir/rust-ast-lower-type.h
! 599c6d579e7316d67b428fb236ead11c  gcc/rust/hir/rust-ast-lower.cc
! 2a8562e918c2ddb5150d63bf8bccc1ca  gcc/rust/hir/rust-ast-lower.h
! 4794bbb888b22836751b45b3003e06f3  gcc/rust/hir/rust-hir-dump.cc
! 6ea36485585cd513a9effdd9683fa3fa  gcc/rust/hir/rust-hir-dump.h
! b2adfa8121582206dd3d32d91bb0544a  gcc/rust/hir/tree/rust-hir-expr.h
! c1b358fd4112e6c74ebed650665fab4c  gcc/rust/hir/tree/rust-hir-full-decls.h
! fd3e59f2f29e787b4fe3ba06f0c7c7cf  gcc/rust/hir/tree/rust-hir-full.h
! 9fd204fe848da9583f14aae685fb12c4  gcc/rust/hir/tree/rust-hir-item.h
! 15758cb144d9ee97ee40eac6f2726d8b  gcc/rust/hir/tree/rust-hir-path.h
! bb6a68bfcd27b450c3c0701baf514243  gcc/rust/hir/tree/rust-hir-pattern.h
! ac75bdfc4c8bf7de10e038870f03e65f  gcc/rust/hir/tree/rust-hir-stmt.h
! 0d42839f0743d89dd342d86079c8e091  gcc/rust/hir/tree/rust-hir-type.h
! bd7f7b8fd5d35951a93ac2977bcca443  gcc/rust/hir/tree/rust-hir-visitor.h
! 19466360c5e4dd20aea7db588b5f64fc  gcc/rust/hir/tree/rust-hir.cc
! a1313db29664e2bf43a62d9e173c9012  gcc/rust/hir/tree/rust-hir.h
! 2705d4d944b4c08a8f004a390a9664c8  gcc/rust/lang-specs.h
! f30ef547fe665c69fa67c4351e47983c  gcc/rust/lang.opt
! ef73ba8ae2ece3f6ae86b2674aaa491c  gcc/rust/lang.opt.urls
! a3f4573f8ef39886bccf29b183c3eff7  gcc/rust/lex/rust-input-source.h
! 4112b167891caf87d1bf2396ff068688  gcc/rust/lex/rust-lex.cc
! f40347fe339d2beb33db3a323d2acd1c  gcc/rust/lex/rust-lex.h
! f7d500054dd885e6266b9298767f1153  gcc/rust/lex/rust-token.cc
! 4bb028fbaff35829348b60aa64f7cf31  gcc/rust/lex/rust-token.h
  fe40f8618a9f5a5f007bc1a81fe45d3a  gcc/rust/logo.png
! d273d098c4321db0ba5cfd076291b180  gcc/rust/metadata/rust-export-metadata.cc
! 7480cd5937431f0c8df141d8bd723a4c  gcc/rust/metadata/rust-export-metadata.h
! 77e34b5b4a06bd60bdc841690d3de63c  gcc/rust/metadata/rust-extern-crate.cc
! 4173f8e19a3ac7c57ba1430917c3cc6e  gcc/rust/metadata/rust-extern-crate.h
! 009a7e830da40cd4abb74ab14f9d4b72  gcc/rust/metadata/rust-import-archive.cc
! 3861f5d9b209ddf86cdd9fca9b4f213c  gcc/rust/metadata/rust-imports.cc
! 0b8b8d52e0311e31fc3bfa30129004bf  gcc/rust/metadata/rust-imports.h
! 6157b499aceab0b9b632eea936bc0f0d  gcc/rust/parse/rust-cfg-parser.cc
  e0d1b97260228c2544bb509ee36eb811  gcc/rust/parse/rust-cfg-parser.h
! 9d065e87a8656557ac6a90dbfb008ba4  gcc/rust/parse/rust-parse-impl.h
! 58caa6b14bb0ef2e314b5f61e3ebbc08  gcc/rust/parse/rust-parse.cc
! eb5b04e86a3d06b64c2f8416843ae5e3  gcc/rust/parse/rust-parse.h
! c4a7ed9e761f2ee759252d60439e7885  gcc/rust/resolve/rust-ast-resolve-base.cc
! 9e8d085ae747bcff2ab14ab09f2fe5d7  gcc/rust/resolve/rust-ast-resolve-base.h
! 717d44a205e6692e1dc418c1028b79c9  gcc/rust/resolve/rust-ast-resolve-expr.cc
! 40545b487810460778eb6c9b234da4f0  gcc/rust/resolve/rust-ast-resolve-expr.h
! fcaa3f3c10cd141213e691b706aba952  gcc/rust/resolve/rust-ast-resolve-implitem.h
! 9952ed9189621e2882ab826bc01def70  gcc/rust/resolve/rust-ast-resolve-item.cc
! b80485ef30319a5bceb70f9e1104dc97  gcc/rust/resolve/rust-ast-resolve-item.h
! 5e2f4ae8885f92f1ff5d23a2fd5dc62c  gcc/rust/resolve/rust-ast-resolve-path.cc
! 0af38ffeb137e6676ba5cfeea2d48b6d  gcc/rust/resolve/rust-ast-resolve-path.h
! 6972ea7712ff01fc78b886267a2b66a3  gcc/rust/resolve/rust-ast-resolve-pattern.cc
! 216c2a4694da1d34a2d68aab16b79b9a  gcc/rust/resolve/rust-ast-resolve-pattern.h
! ca029ea18f23c757ce80a6e97f4652c1  gcc/rust/resolve/rust-ast-resolve-stmt.cc
! ce6b16dda82144df375aa02891fca21c  gcc/rust/resolve/rust-ast-resolve-stmt.h
! d15b4d2d95a74d543f343ec6118ad91b  gcc/rust/resolve/rust-ast-resolve-struct-expr-field.cc
! 2b32064859102683e48f1c8573ccb362  gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
! 4e43465ccd1d5936ca98c4e569a26cbb  gcc/rust/resolve/rust-ast-resolve-toplevel.h
! bb23ace0db0eed0cdae569c8f1cc937e  gcc/rust/resolve/rust-ast-resolve-type.cc
! 3c71bbd54df4ce6d460248a104314c55  gcc/rust/resolve/rust-ast-resolve-type.h
! f1a9ad66758e6ac41634a194f50e6b17  gcc/rust/resolve/rust-ast-resolve.cc
! d3dcdaa3b958ecd5cfcb4402c1cabb95  gcc/rust/resolve/rust-ast-resolve.h
! d8ea82a7388bc6d76f8a60d247588d58  gcc/rust/resolve/rust-default-resolver.cc
! b758f0f2512f7d3f4c769b303af50af2  gcc/rust/resolve/rust-default-resolver.h
! fbbe7de00ca33cda3d1aecd0d1b57312  gcc/rust/resolve/rust-early-name-resolver-2.0.cc
! 7af30e4b19365d03445467af76430978  gcc/rust/resolve/rust-early-name-resolver-2.0.h
! 1e5f44cdec50b628e049d06a70323206  gcc/rust/resolve/rust-early-name-resolver.cc
! c5f060fa2c17f81e79dd78aa73690329  gcc/rust/resolve/rust-early-name-resolver.h
! 73a51c679a9a5a115922545425301136  gcc/rust/resolve/rust-forever-stack.h
! 8056b3e8d153ef106441b9a23db65a87  gcc/rust/resolve/rust-forever-stack.hxx
! fd7a2189c886807860cc30a41b9061e1  gcc/rust/resolve/rust-late-name-resolver-2.0.cc
! ea4cda0e89937b0609f8798cc93c367a  gcc/rust/resolve/rust-late-name-resolver-2.0.h
! ef91e42d070369e2bbee806ecd4eea31  gcc/rust/resolve/rust-name-resolution-context.cc
! c922677544606bb96cb18152416a5050  gcc/rust/resolve/rust-name-resolution-context.h
! b7a876a8b612683e3b8bcf84f3423d99  gcc/rust/resolve/rust-name-resolver.cc
! 677b72920fdc2f36c5d41260a3d6613d  gcc/rust/resolve/rust-name-resolver.h
! 05f349355b34a70eb20e47390e65e9bb  gcc/rust/resolve/rust-rib.cc
! 125dd03c5fea2696f363276bf1417a1b  gcc/rust/resolve/rust-rib.h
! a504723fb94688a5afba3e2c480a836a  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
! c06e9dff294f1d8d130a481d2c116433  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
! 8e5f6246b19569a3d7bf9bb32f84b05a  gcc/rust/rust-attribs.cc
! 51ab251a8ed6e51b8845a8a51e1830b7  gcc/rust/rust-backend.h
! 76e1330399c498a8e1ee3a232a578955  gcc/rust/rust-diagnostics.cc
! 9d3af8a76d6be1465d8eb451118b2519  gcc/rust/rust-diagnostics.h
! 695d778f579284673fb0dfe919ddf8d0  gcc/rust/rust-error-codes.def
! dd3e8be30222e085117089ecc8dcfe1e  gcc/rust/rust-gcc.cc
! a9fdac26c9f35145412b08c40b2debf7  gcc/rust/rust-gcc.h
! 536ee8f1d207a3f5a9620786bf313f61  gcc/rust/rust-lang.cc
! 34131bd5dad1946b8ed71220b96e4102  gcc/rust/rust-linemap.cc
! e1c362ac61c34718882c9e6b3f4c2730  gcc/rust/rust-linemap.h
! c455b2ee2f274a02ad987cbb557da692  gcc/rust/rust-location.h
! 6cf363a7f97078fb77efce17f97c76d6  gcc/rust/rust-object-export.cc
! 09108b14980a274546a9d021ac5c7e30  gcc/rust/rust-object-export.h
! 46e9244dd1191c24e874926f6eb0d898  gcc/rust/rust-session-manager.cc
! b7ecfe531ad5f88ac9c94ff6159e00d2  gcc/rust/rust-session-manager.h
! 6857aed8088dddd0276a07601bdc9006  gcc/rust/rust-system.h
! 82a23b65fc2dca7071faf87c3b53f869  gcc/rust/rust-target-def.h
! e9da8372ad30c849e508c655ae1b6334  gcc/rust/rust-target.def
! 35430084b167aea827965d453f616636  gcc/rust/rust-target.h
! 8b8a123559f6117e482310c438387908  gcc/rust/rustspec.cc
! 1ba1c579b05606605213886417f8b5ed  gcc/rust/typecheck/rust-autoderef.cc
! 75f176765841b62753c581fded50ab1d  gcc/rust/typecheck/rust-autoderef.h
! b6d94060b4530b5fa3f9a8da8abf2090  gcc/rust/typecheck/rust-casts.cc
! d225e96fd43b663fe91cc3d93c865ba8  gcc/rust/typecheck/rust-casts.h
! a0ed4725fcb697c80fab089f6179b039  gcc/rust/typecheck/rust-coercion.cc
! 847e95b81d759d5f1c73c550d8543216  gcc/rust/typecheck/rust-coercion.h
! b7834d7d8becf6ba480cb25ab5c5bc6a  gcc/rust/typecheck/rust-hir-dot-operator.cc
! 3edb984cd891e5de12d47afeb838a911  gcc/rust/typecheck/rust-hir-dot-operator.h
! a41ac9466e9939916330997468f3a8ec  gcc/rust/typecheck/rust-hir-inherent-impl-overlap.h
! 4e1912b88135f2a00ee578ad4e83a0a6  gcc/rust/typecheck/rust-hir-path-probe.cc
! 452f181ae262ec76899980449a632ddf  gcc/rust/typecheck/rust-hir-path-probe.h
! 15d2d085fb63227d0c83a7c298db315f  gcc/rust/typecheck/rust-hir-trait-reference.cc
! 76ccb133ccc5a9aa98ffd4dfafc198cb  gcc/rust/typecheck/rust-hir-trait-reference.h
! 278f62460e5ae4af2fd2bedc24d4c7c7  gcc/rust/typecheck/rust-hir-trait-resolve.cc
! 02192f63abec6589b0d50cd6b02dd135  gcc/rust/typecheck/rust-hir-trait-resolve.h
! f129595d54c426fd571fdbfea36f964c  gcc/rust/typecheck/rust-hir-type-bounds.h
! be1eb30e3391620f696ec7b425d6a56d  gcc/rust/typecheck/rust-hir-type-check-base.cc
! 3f9bdff14ba7600d9c7623f07caafe0e  gcc/rust/typecheck/rust-hir-type-check-base.h
! 435f830487820932059485ed7e22d258  gcc/rust/typecheck/rust-hir-type-check-enumitem.cc
! 5f601ee58cffff04f9055240922253c2  gcc/rust/typecheck/rust-hir-type-check-enumitem.h
! 483493b502169b9dd1525e0f7192a13b  gcc/rust/typecheck/rust-hir-type-check-expr.cc
! b5de84c305bb0b48f3e1f8744a7852aa  gcc/rust/typecheck/rust-hir-type-check-expr.h
! e5f738763bc53df22972ea86a40152d4  gcc/rust/typecheck/rust-hir-type-check-implitem.cc
! 3a5d33275ff0ecb2a3cdfecfcdd19e4b  gcc/rust/typecheck/rust-hir-type-check-implitem.h
! 73811f0621c96703ccc4eb1552144e3d  gcc/rust/typecheck/rust-hir-type-check-item.cc
! 2930c234c865b3188f81a0611d0745c0  gcc/rust/typecheck/rust-hir-type-check-item.h
! d2e740217783a5a40174ad8d14f81824  gcc/rust/typecheck/rust-hir-type-check-path.cc
! 942628010d33112ebff76ec8436706c7  gcc/rust/typecheck/rust-hir-type-check-pattern.cc
! 988fbd485660c0e9a49333e7a02782a6  gcc/rust/typecheck/rust-hir-type-check-pattern.h
! cc2566e21af67d8504f07b66a8b08632  gcc/rust/typecheck/rust-hir-type-check-stmt.cc
! 0c8524598138cbe84fce98fc509fcd63  gcc/rust/typecheck/rust-hir-type-check-stmt.h
! 0571131974aaea6d15536857284f8c26  gcc/rust/typecheck/rust-hir-type-check-struct-field.h
! 0b8e3d415d41cf1fefc656afc28d7509  gcc/rust/typecheck/rust-hir-type-check-struct.cc
! f4b79f06b032675aab0000120fc57ebd  gcc/rust/typecheck/rust-hir-type-check-toplevel.cc
! c766c6e78e8f2af99fcd701304c4a6f9  gcc/rust/typecheck/rust-hir-type-check-toplevel.h
! f0b943c5b67efe4443d7af9f3d65510a  gcc/rust/typecheck/rust-hir-type-check-type.cc
! a4745f72610aceb3a3b740970669e9c2  gcc/rust/typecheck/rust-hir-type-check-type.h
! 640f83203faefd01321b1f317b5fb5f2  gcc/rust/typecheck/rust-hir-type-check.cc
! cb2c4492fee3adc8b7fd5ff5ebd93944  gcc/rust/typecheck/rust-hir-type-check.h
! 871116189a418cee6d89872684f2dd96  gcc/rust/typecheck/rust-substitution-mapper.cc
! 05696bc4464c96d49aad3b7683381fa6  gcc/rust/typecheck/rust-substitution-mapper.h
! 08c766727ba6176d50723a568cdf1d8e  gcc/rust/typecheck/rust-type-util.cc
! e65ab4fc0db82367e8998156165aed03  gcc/rust/typecheck/rust-type-util.h
! 3c036c6605444001def5f88af8df755a  gcc/rust/typecheck/rust-typecheck-context.cc
! 8b7684309c0a9bc04e2bf0de2e1b7105  gcc/rust/typecheck/rust-tyty-bounds.cc
! 9be9f67ad205eaf61f6734e6c83ce8e9  gcc/rust/typecheck/rust-tyty-bounds.h
! 7c844691c3030e64aea678b2c67b7fb5  gcc/rust/typecheck/rust-tyty-call.cc
! ff9e57d8f9c91223ccbc22ef22d242ba  gcc/rust/typecheck/rust-tyty-call.h
! 2bb07fb745828388ee7c66c01565b9f5  gcc/rust/typecheck/rust-tyty-cmp.h
! a38838838003c6551067e8b34f582208  gcc/rust/typecheck/rust-tyty-region.h
! f070f5eb92be6cb98d5ab46b8d37efb5  gcc/rust/typecheck/rust-tyty-subst.cc
! ddeca56213bd62bb8fb148d0b6eed76b  gcc/rust/typecheck/rust-tyty-subst.h
! 19da09d8782813ebbe9fc0061352fbfa  gcc/rust/typecheck/rust-tyty-util.cc
! ff270a19d0ce3a509363085113e83862  gcc/rust/typecheck/rust-tyty-util.h
! 69859b7213db0965537ae86ea7704de9  gcc/rust/typecheck/rust-tyty-visitor.h
! 27e6c9fae0be0a3ee556a0cb02a6c93e  gcc/rust/typecheck/rust-tyty.cc
! 8d265100cb6679f5575c20e73caeabee  gcc/rust/typecheck/rust-tyty.h
! 51b4ea492f21dff47bf4f86948a80a85  gcc/rust/typecheck/rust-unify.cc
! 21fa1275da0496f0abcedcc1c917e35a  gcc/rust/typecheck/rust-unify.h
! 3cb8b3a38dfeff142f71ed7764e4ae36  gcc/rust/util/bi-map.h
! ff2ff13a77ee1a34262faea2f0021b92  gcc/rust/util/expected.h
! cd7d21dd3b0190cd8d17388105ecb818  gcc/rust/util/fnv-hash.h
! 80dda527295919aa895a0ebbcad60e32  gcc/rust/util/make-rust-unicode.py
! 0e368ccb3b53ba27b11681b680f6ca87  gcc/rust/util/optional.h
! 28960566056dffb6dd86b0c3ad60bf39  gcc/rust/util/rust-abi.cc
! 11f0015cc8736c6f93529f83c406a684  gcc/rust/util/rust-abi.h
! 45de9c2e51929ed25c25fc227c810430  gcc/rust/util/rust-attribute-values.h
! a39e9ebeb1f8bcca67975b0b1cae3da2  gcc/rust/util/rust-attributes.cc
! 0ace98d0284aad6ad80d7c21e5608cc8  gcc/rust/util/rust-attributes.h
! 7dc0ed07402f905fe3e66e5536dfbb2d  gcc/rust/util/rust-base62.cc
! 8d384c710157c169963be0b3b8bd37c6  gcc/rust/util/rust-base62.h
! ab857fee7047eb700387f1623a61e7a7  gcc/rust/util/rust-buffered-queue.h
! 91685fe3fb5c903d05f1df46dfb8bbd3  gcc/rust/util/rust-canonical-path.h
! c5e3d64397366e978867b0007d51cf3d  gcc/rust/util/rust-codepoint.h
! 72cbf89dee62daf894b11f24bc1af4a4  gcc/rust/util/rust-common.h
! f554597ffd151c31cf1d0ad1ba6afa35  gcc/rust/util/rust-dir-owner.cc
! d73dd769035d251c32b335c4328c791b  gcc/rust/util/rust-dir-owner.h
! c875b24b53eceb31f7824472d8362ece  gcc/rust/util/rust-dump.h
! 2166f52e256803e11a410d92fbbaa935  gcc/rust/util/rust-hir-map.cc
! 03ce9954ac74fd4afe2b44116171f07e  gcc/rust/util/rust-hir-map.h
! 772d5d24cc1a5630ebfefcf4be82f383  gcc/rust/util/rust-identifier.h
! 8c7d6573ba05996d7f89aa060b5b83d4  gcc/rust/util/rust-inline-visitor.h
! 932c2d5262c7f55a4e27297253438490  gcc/rust/util/rust-keyword-values.cc
! 042852065c9d582e734d24cca4ee7ae0  gcc/rust/util/rust-keyword-values.h
! 0e21b6348c301d09f4d07b9adf652847  gcc/rust/util/rust-lang-item.h
! bea3116d897f84397237e34300ea80c9  gcc/rust/util/rust-make-unique.h
! 08499a8a91653d3785982bae240cb881  gcc/rust/util/rust-mapping-common.h
! 0adb2649f8da37aca07fce277c1b6eb9  gcc/rust/util/rust-operators.h
! 8c1a17b6208f0598444e38f798d99ef3  gcc/rust/util/rust-punycode.cc
! de4edd1e615afa0cb7bce863f3c30438  gcc/rust/util/rust-punycode.h
! 455bdc3031eeb71e6055d978de8aa89d  gcc/rust/util/rust-stacked-contexts.h
! ddb81f7913d52ee371d986ca5742ddc1  gcc/rust/util/rust-token-converter.cc
! 93ce188b849939e6541035f997e8c9bf  gcc/rust/util/rust-token-converter.h
! 5245f8858e3706ed13bdaf46fef33b56  gcc/rust/util/rust-unicode-data.h
! 89124b4aef4fcd20f756282d54423810  gcc/rust/util/rust-unicode.cc
! c55ec1e608c6adc0d9fbc660d86b5977  gcc/rust/util/rust-unicode.h
! 284e6c34250bef1ea80cb72e8d66fcc9  gcc/sancov.cc
! 3317f86f9d393cfc6d5ebf671cdbeede  gcc/sanitizer.def
! 83039d6209096e0f4b35fcd3a59b1db6  gcc/sanopt.cc
! 7dea7883876e03db22d0e7cad4858cdc  gcc/sbitmap.cc
! 07790a67b663e7929dfe4c3218bc3444  gcc/sbitmap.h
! ed46a3b5a8cbce6ea24fbfe98f9d1cf5  gcc/sched-deps.cc
! fc037cb9aef3382bc9501df04e326e65  gcc/sched-ebb.cc
! 53bf7fa6a46e53266c7595aa73405ec5  gcc/sched-int.h
! 80cd5e42cef700117eb75e49d9e3df8c  gcc/sched-rgn.cc
! 0f2e1df32661d94bd8561a420904327f  gcc/sel-sched-dump.cc
! 035a0aa98a5451c578f6c9d5f54c4bb5  gcc/sel-sched-dump.h
! 1cb669b1206e5b811e580faf52546d37  gcc/sel-sched-ir.cc
! 15af4647cf18325e57a191a14faded4b  gcc/sel-sched-ir.h
! a7842774b19c2563a668fd65a45eb50a  gcc/sel-sched.cc
! 797586b420ca759350516f7b7a1f4836  gcc/sel-sched.h
! 973279192c8f27407fa5c3149f0d05be  gcc/selftest-diagnostic.cc
! aac656b81689acefbf5551a3075f043a  gcc/selftest-diagnostic.h
! 820315019c1f41324f300da1d529a4b6  gcc/selftest-rtl.cc
! 437061c6872babec4fb7263b12338858  gcc/selftest-rtl.h
! 427d52cde5c62b26f2abc62c7005e0c4  gcc/selftest-run-tests.cc
! a44c96364cd718bce411970db5ed2b7c  gcc/selftest.cc
! 64ea16fbdca060cc48159fbe67389d39  gcc/selftest.h
! 36683613b1b6d02efb264b1892aed022  gcc/sese.cc
! a2a3f0e3131d38c30d76b098723bb843  gcc/sese.h
! 459fd75ccae64847a84626f184208a45  gcc/shortest-paths.h
! fc21d359b4fc285fa55e80fe983bbd5b  gcc/shrink-wrap.cc
! 75e4929caf9ee98e5f424010191d7d24  gcc/shrink-wrap.h
! 503b0b91d6b339b55981d5234b3eca3b  gcc/signop.h
! 8ebd50350fd8be68200f21d5b92f06f0  gcc/simplify-rtx.cc
! 1a91c836cefb9d33835cebbbdccf7a0e  gcc/sort.cc
! 5dc7e2d1b89bf66dfddb78245422f484  gcc/sparseset.cc
! b38d06472711d8792d14fad5fcf6a1a6  gcc/sparseset.h
! 3e52fa376d69f0895ee52663396984d3  gcc/spellcheck-tree.cc
! 2fa83279bf8beaaeb1d8d54dc0386cb8  gcc/spellcheck-tree.h
! f75ba086722bada3328f800de086f862  gcc/spellcheck.cc
! f821ffda4478c4993401e357c9797d1e  gcc/spellcheck.h
! 4fa2d925752f912f93dd6e8407ff7c26  gcc/splay-tree-utils.cc
! 6bab55b49f74d958555c5d47cccfbafa  gcc/splay-tree-utils.h
! f9509fc92bb1706682f1023abc535613  gcc/splay-tree-utils.tcc
! 17345d6ae96b80b621fb987d972b866a  gcc/sreal.cc
! f33bef53faf772e19b4e82da092d20c9  gcc/sreal.h
! a50f455a4da1c5681d83ded216699df8  gcc/ssa-iterators.h
! 0a74c2267dad12591ff2e6826d2848f3  gcc/ssa.h
! d93510bb251b5f9a6a50b05ec4b9ccc2  gcc/stack-ptr-mod.cc
! 37623f9bd5f167d8d4307ef37a646283  gcc/statistics.cc
! 8fa28fa606e2b8ccfa3f6ba31b5988d4  gcc/statistics.h
! b3e3eceb17c661e649bfbf7f2b490888  gcc/stmt.cc
! e7705887682ab75001cd90109f3c1995  gcc/stmt.h
! b5d2f1b4038d7c848bc885f2ca01c733  gcc/stor-layout.cc
! 1320e37c3710789c2f18d411226afad1  gcc/stor-layout.h
! 38dc61d7617907079af8da9c7b5a5b8c  gcc/store-motion.cc
! 870b829faca0dfb76c09e21261fbcd9a  gcc/streamer-hooks.cc
! bf3b4d465a07bffc38e03712b3aca09c  gcc/streamer-hooks.h
! 0cc51672a3f930c93f295f6dc854a98c  gcc/stringpool.cc
! 0302538ceada575620821003f56a7061  gcc/stringpool.h
! c53f389635f40db18f0f5715f52e1dcf  gcc/substring-locations.cc
! e10ed7c8a2aa060a5b876e95a93a1db5  gcc/substring-locations.h
! 3b492b0a024163eb669a907a85360026  gcc/symbol-summary.h
! ec7caf0d071a9fbde35c32276a1e026c  gcc/symtab-clones.cc
! 8d706ce514ef38809f7a93da4545e030  gcc/symtab-clones.h
! ee08df7cdb543dd77698b88c264cf150  gcc/symtab-thunks.cc
! 0ac86f977a6c301d54512f20e93fcbbe  gcc/symtab-thunks.h
! b4bd28274347fdac8fdf9c6568e69c87  gcc/symtab.cc
! 0a5032f258c19c46838a1448b977d799  gcc/sync-builtins.def
! 33180ef51b48cba7cf5b89d130b1764a  gcc/system.h
! 978099dcb9d85382343c1a58af7eb62a  gcc/target-def.h
! 1abe78cf4406a18083c6c29c5432e16d  gcc/target-globals.cc
! 0745369d6e711f2978854379f04976ae  gcc/target-globals.h
! 723cbeb0fef13514fcf066f2ce7a8b3e  gcc/target-hooks-macros.h
! 34f378d0170f55508563f1c6a566b412  gcc/target-insns.def
! 7d87631f7264eb565df2a25f08a4fb09  gcc/target.def
! e8a9eb01b9451a357155e7152df1c669  gcc/target.h
! 3f96510aba28b1180a15620224b38297  gcc/targhooks.cc
! 107279c8ffc792cdffbb538ce651acfd  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! da6e98852efacd7268d546e427acff33  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** c9ec5aa19ca3c027fb99e61cbe7aff7a  gcc/te
*** 7696,7708 ****
  4b46ab741e570fbea4c5e62643efc2bc  gcc/testsuite/ChangeLog-2020
  befd8924364e1b5fef37bb8113265b1a  gcc/testsuite/ChangeLog-2021
  cf2209a3e7faba16c6291ff4216ded98  gcc/testsuite/ChangeLog-2022
  e7518ff11c24876171978acda7f03080  gcc/testsuite/ChangeLog.graphite
  ec409caa3f1727e7dbe6b65dd8df068c  gcc/testsuite/ChangeLog.jit
  4e315f3ead950078f8af109b2d771220  gcc/testsuite/ChangeLog.ptr
  b2adb3e6b3129c9473b7e401edb63a71  gcc/testsuite/ChangeLog.tree-ssa
! 515302a58b174f4f7457a1d74c3993d0  gcc/testsuite/README
! bbea33cd11cbe5cb953d09d74f5a80e9  gcc/testsuite/README.compat
! 346af5a485ddb21166f74c4c3a4b954c  gcc/testsuite/README.gcc
  2ad7c00ea00d78f6d6ee090f7894dadc  gcc/testsuite/ada/.gitignore
  4004844198395fe50ecb798ed5d30f4b  gcc/testsuite/ada/acats/elabd.lst
  b32871a59b0c07cb4eda259b98fa6aab  gcc/testsuite/ada/acats/floatstore.lst
--- 8115,8128 ----
  4b46ab741e570fbea4c5e62643efc2bc  gcc/testsuite/ChangeLog-2020
  befd8924364e1b5fef37bb8113265b1a  gcc/testsuite/ChangeLog-2021
  cf2209a3e7faba16c6291ff4216ded98  gcc/testsuite/ChangeLog-2022
+ ec287e6950b56edb5ce9c325ac8c07ce  gcc/testsuite/ChangeLog-2023
  e7518ff11c24876171978acda7f03080  gcc/testsuite/ChangeLog.graphite
  ec409caa3f1727e7dbe6b65dd8df068c  gcc/testsuite/ChangeLog.jit
  4e315f3ead950078f8af109b2d771220  gcc/testsuite/ChangeLog.ptr
  b2adb3e6b3129c9473b7e401edb63a71  gcc/testsuite/ChangeLog.tree-ssa
! 42192b7fdf79bb748c2ca0f23b8b8b96  gcc/testsuite/README
! ab3cc0bd56ceba62d516038be43c7c0d  gcc/testsuite/README.compat
! 76f40f2a3a0ec4e77c562bb695f8b98e  gcc/testsuite/README.gcc
  2ad7c00ea00d78f6d6ee090f7894dadc  gcc/testsuite/ada/.gitignore
  4004844198395fe50ecb798ed5d30f4b  gcc/testsuite/ada/acats/elabd.lst
  b32871a59b0c07cb4eda259b98fa6aab  gcc/testsuite/ada/acats/floatstore.lst
*************** a7634a62a2c327ea1954c160e43b6d3d  gcc/te
*** 10314,10320 ****
  73aa6e9b17719a2006689e3efff2c01e  gcc/testsuite/c-c++-common/Waddress-5.c
  3516a006e99c58af12e0922fe48fb612  gcc/testsuite/c-c++-common/Waddress-6.c
  7787aa4bd5844adb5d11c348c47000b2  gcc/testsuite/c-c++-common/Waddress-7.c
! cc70faf06727814cce7b45e0a0d0614d  gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
  76fa33c917471922e94d50763fda451c  gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
  273f580aad8918060378ff0f64998aa7  gcc/testsuite/c-c++-common/Walloca-larger-than.c
  afef2f2a384ff98fc41df320bb6a2419  gcc/testsuite/c-c++-common/Warray-bounds-10.c
--- 10734,10740 ----
  73aa6e9b17719a2006689e3efff2c01e  gcc/testsuite/c-c++-common/Waddress-5.c
  3516a006e99c58af12e0922fe48fb612  gcc/testsuite/c-c++-common/Waddress-6.c
  7787aa4bd5844adb5d11c348c47000b2  gcc/testsuite/c-c++-common/Waddress-7.c
! e758e9f4f3e6f53d756360fda966fadd  gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
  76fa33c917471922e94d50763fda451c  gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
  273f580aad8918060378ff0f64998aa7  gcc/testsuite/c-c++-common/Walloca-larger-than.c
  afef2f2a384ff98fc41df320bb6a2419  gcc/testsuite/c-c++-common/Warray-bounds-10.c
*************** c51902099b5071373c02eb23d9a61aab  gcc/te
*** 10330,10336 ****
  1465c746ce0da634140bd11994689fb1  gcc/testsuite/c-c++-common/Warray-compare-1.c
  86563e27b22c96809703786cd874a440  gcc/testsuite/c-c++-common/Warray-compare-2.c
  fe25f03fdb469ad245f6cae14480ddad  gcc/testsuite/c-c++-common/Wattributes-2.c
! e07fdc272a434aa05e75700c13b249b0  gcc/testsuite/c-c++-common/Wattributes.c
  66c5aeebcf29f51b19641fb8b159ab7b  gcc/testsuite/c-c++-common/Wbidi-chars-1.c
  2a90a24dbbfbbcbbfba3080caeecb033  gcc/testsuite/c-c++-common/Wbidi-chars-10.c
  0833a4f93997d974698a4b722e29caf4  gcc/testsuite/c-c++-common/Wbidi-chars-11.c
--- 10750,10757 ----
  1465c746ce0da634140bd11994689fb1  gcc/testsuite/c-c++-common/Warray-compare-1.c
  86563e27b22c96809703786cd874a440  gcc/testsuite/c-c++-common/Warray-compare-2.c
  fe25f03fdb469ad245f6cae14480ddad  gcc/testsuite/c-c++-common/Wattributes-2.c
! 17bdcdb759c07d09c2d4d9895b89253d  gcc/testsuite/c-c++-common/Wattributes-3.c
! ab57b7d0ddff618e824f3e137b94be88  gcc/testsuite/c-c++-common/Wattributes.c
  66c5aeebcf29f51b19641fb8b159ab7b  gcc/testsuite/c-c++-common/Wbidi-chars-1.c
  2a90a24dbbfbbcbbfba3080caeecb033  gcc/testsuite/c-c++-common/Wbidi-chars-10.c
  0833a4f93997d974698a4b722e29caf4  gcc/testsuite/c-c++-common/Wbidi-chars-11.c
*************** fe17411ea4717b5f12ae0efc348d1a36  gcc/te
*** 10386,10393 ****
  96a9e6d56248f8f913daf667a15473f1  gcc/testsuite/c-c++-common/Wdangling-pointer.c
  df5ffd2746b9c571dd4ecaec40584254  gcc/testsuite/c-c++-common/Wduplicated-branches-1.c
  36747e99be11c2fa6022dbb012b5e657  gcc/testsuite/c-c++-common/Wduplicated-branches-10.c
! ab46b28ebe1588d3da5a24b1ba47c9dc  gcc/testsuite/c-c++-common/Wduplicated-branches-11.c
! 3d6ea0597eb0a1b1b935837de16a8173  gcc/testsuite/c-c++-common/Wduplicated-branches-12.c
  fca6e5f273133ee6617fb0a82ba4bf1a  gcc/testsuite/c-c++-common/Wduplicated-branches-13.c
  462caec7e63757a76ecab2ca7cdcdebf  gcc/testsuite/c-c++-common/Wduplicated-branches-14.c
  1f672b9a7faf5e23780f5898c31cdd80  gcc/testsuite/c-c++-common/Wduplicated-branches-15.c
--- 10807,10814 ----
  96a9e6d56248f8f913daf667a15473f1  gcc/testsuite/c-c++-common/Wdangling-pointer.c
  df5ffd2746b9c571dd4ecaec40584254  gcc/testsuite/c-c++-common/Wduplicated-branches-1.c
  36747e99be11c2fa6022dbb012b5e657  gcc/testsuite/c-c++-common/Wduplicated-branches-10.c
! 70ec648f5b33b89b0846562e3c43cba7  gcc/testsuite/c-c++-common/Wduplicated-branches-11.c
! f4a477ca51814c5f73fe16b5e4ae2997  gcc/testsuite/c-c++-common/Wduplicated-branches-12.c
  fca6e5f273133ee6617fb0a82ba4bf1a  gcc/testsuite/c-c++-common/Wduplicated-branches-13.c
  462caec7e63757a76ecab2ca7cdcdebf  gcc/testsuite/c-c++-common/Wduplicated-branches-14.c
  1f672b9a7faf5e23780f5898c31cdd80  gcc/testsuite/c-c++-common/Wduplicated-branches-15.c
*************** ef4f4b5de989d9dc5bddbdc69330bc75  gcc/te
*** 10408,10416 ****
  856413eebe730a0c7a3ad5fb9397241a  gcc/testsuite/c-c++-common/Wformat-pr84258.c
  312a2ba796d2f8b759556fb3292d0dc4  gcc/testsuite/c-c++-common/Wformat-pr88257.c
  bfab16ac2e29ff30ff0d3dd400e68b04  gcc/testsuite/c-c++-common/Wformat-pr88257.h
! 7d8476b6035890bc98e075d73a99fd04  gcc/testsuite/c-c++-common/Wfree-nonheap-object-2.c
! 9646292e1a4040353e02ce54d2082c27  gcc/testsuite/c-c++-common/Wfree-nonheap-object-3.c
! 22813c8f8f4a22dbef46549dbed9d5c8  gcc/testsuite/c-c++-common/Wfree-nonheap-object.c
  55160ccf08a9b1444b32deb900dac569  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-1.c
  9954ed8dee26e5b5fa02ab1f16163f1e  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-10.c
  0f8e0df13f6d9cf6ae7fd7f44107fce1  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-11.c
--- 10829,10837 ----
  856413eebe730a0c7a3ad5fb9397241a  gcc/testsuite/c-c++-common/Wformat-pr84258.c
  312a2ba796d2f8b759556fb3292d0dc4  gcc/testsuite/c-c++-common/Wformat-pr88257.c
  bfab16ac2e29ff30ff0d3dd400e68b04  gcc/testsuite/c-c++-common/Wformat-pr88257.h
! b1fb86620abdfdafc19dc4bc5f4017c5  gcc/testsuite/c-c++-common/Wfree-nonheap-object-2.c
! 12e8c02289bb42c7607c83a377f7e3f2  gcc/testsuite/c-c++-common/Wfree-nonheap-object-3.c
! 787926af74ea222383a147bc301277fd  gcc/testsuite/c-c++-common/Wfree-nonheap-object.c
  55160ccf08a9b1444b32deb900dac569  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-1.c
  9954ed8dee26e5b5fa02ab1f16163f1e  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-10.c
  0f8e0df13f6d9cf6ae7fd7f44107fce1  gcc/testsuite/c-c++-common/Wimplicit-fallthrough-11.c
*************** dea22dd4025a7040dc5c391a1242c40f  gcc/te
*** 10463,10469 ****
  d9cdfbae99648465508b147314e8ff61  gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c
  2f450da4a2ed1d264d3dfd76e41a6a29  gcc/testsuite/c-c++-common/Winvalid-memory-model.c
  1bbb047ef3ed4bc168efca199ce6efa3  gcc/testsuite/c-c++-common/Wlogical-not-parentheses-1.c
! a02c709f77ada1bf7c11b66f87adf20d  gcc/testsuite/c-c++-common/Wlogical-not-parentheses-2.c
  a4097e11dbd186a4a835f4b4cc1bdc2e  gcc/testsuite/c-c++-common/Wlogical-not-parentheses-3.c
  3277c11ec455a773b2173ff2d0cfc44e  gcc/testsuite/c-c++-common/Wlogical-op-1.c
  4be7fd77e046019dc2fec1faaef036a6  gcc/testsuite/c-c++-common/Wlogical-op-2.c
--- 10884,10890 ----
  d9cdfbae99648465508b147314e8ff61  gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c
  2f450da4a2ed1d264d3dfd76e41a6a29  gcc/testsuite/c-c++-common/Winvalid-memory-model.c
  1bbb047ef3ed4bc168efca199ce6efa3  gcc/testsuite/c-c++-common/Wlogical-not-parentheses-1.c
! 0426a08fefcf9b3cbaf785b993506271  gcc/testsuite/c-c++-common/Wlogical-not-parentheses-2.c
  a4097e11dbd186a4a835f4b4cc1bdc2e  gcc/testsuite/c-c++-common/Wlogical-not-parentheses-3.c
  3277c11ec455a773b2173ff2d0cfc44e  gcc/testsuite/c-c++-common/Wlogical-op-1.c
  4be7fd77e046019dc2fec1faaef036a6  gcc/testsuite/c-c++-common/Wlogical-op-2.c
*************** ccb8ce6afa2243d9aec47e26a1e585f2  gcc/te
*** 10507,10513 ****
  11d3248b6ea99e7a45d1a774cb605703  gcc/testsuite/c-c++-common/Wprio-ctor-dtor.c
  418addd7c496fa3ae10687ea8dd6668c  gcc/testsuite/c-c++-common/Wrestrict-2.c
  444583f2170154222066726b97ff69ff  gcc/testsuite/c-c++-common/Wrestrict-3.c
! b2245d12607c90c46a2055f2fc00b761  gcc/testsuite/c-c++-common/Wrestrict.c
  51fdd1aacef3259e17622c73fe086bee  gcc/testsuite/c-c++-common/Wreturn-local-addr.c
  d57f0b6d660c8299b95ba02b346d2d76  gcc/testsuite/c-c++-common/Wsequence-point-1.c
  3831f9cd25e86185c0d7bd260ddc4a22  gcc/testsuite/c-c++-common/Wsequence-point-2.c
--- 10928,10934 ----
  11d3248b6ea99e7a45d1a774cb605703  gcc/testsuite/c-c++-common/Wprio-ctor-dtor.c
  418addd7c496fa3ae10687ea8dd6668c  gcc/testsuite/c-c++-common/Wrestrict-2.c
  444583f2170154222066726b97ff69ff  gcc/testsuite/c-c++-common/Wrestrict-3.c
! 3c7a27f63233d88fabe9b38c8b8bd0d3  gcc/testsuite/c-c++-common/Wrestrict.c
  51fdd1aacef3259e17622c73fe086bee  gcc/testsuite/c-c++-common/Wreturn-local-addr.c
  d57f0b6d660c8299b95ba02b346d2d76  gcc/testsuite/c-c++-common/Wsequence-point-1.c
  3831f9cd25e86185c0d7bd260ddc4a22  gcc/testsuite/c-c++-common/Wsequence-point-2.c
*************** d53160459fbfc0f3090991a31aba40c4  gcc/te
*** 10610,10620 ****
  e57e6c0daf0a0a792c988d6e94db6eb0  gcc/testsuite/c-c++-common/Wxor-used-as-pow-pr107002-1.c
  a30e7635b4706892b05aac416de6e298  gcc/testsuite/c-c++-common/Wxor-used-as-pow-pr107002-2.c
  e104bcfe21abe9fcad2b191ce9dee6c6  gcc/testsuite/c-c++-common/addrtmp.c
  f39ce0b617da5fc9aba69733615ee0de  gcc/testsuite/c-c++-common/array-1.c
  15b241020a9a5497396b58539b2405ba  gcc/testsuite/c-c++-common/array-5.c
  9073937bc2452a6045dd4f3c9bc2ce80  gcc/testsuite/c-c++-common/array-6.c
  b4d1bdfe48ad2f46a924717e65159b86  gcc/testsuite/c-c++-common/array-init.c
! f788e347baea0a1034ced9e1a15247e4  gcc/testsuite/c-c++-common/array-lit.c
  cc33621f0af40932dc13ca0bff4d3557  gcc/testsuite/c-c++-common/asan/aggressive-opts.c
  72de90fafd160e4a777ef19bc09ff0d7  gcc/testsuite/c-c++-common/asan/alloca_big_alignment.c
  2bb6049bc37ecb2ca6971011cbefcc2a  gcc/testsuite/c-c++-common/asan/alloca_detect_custom_size.c
--- 11031,11593 ----
  e57e6c0daf0a0a792c988d6e94db6eb0  gcc/testsuite/c-c++-common/Wxor-used-as-pow-pr107002-1.c
  a30e7635b4706892b05aac416de6e298  gcc/testsuite/c-c++-common/Wxor-used-as-pow-pr107002-2.c
  e104bcfe21abe9fcad2b191ce9dee6c6  gcc/testsuite/c-c++-common/addrtmp.c
+ c6dce03316489b81e23e41d6524e2975  gcc/testsuite/c-c++-common/alias-1.c
+ 2f201e4820ee4947af45383e1434d613  gcc/testsuite/c-c++-common/analyzer/20020129-1.c
+ d0f7bb2477c7399d9c787d2e1891f0a6  gcc/testsuite/c-c++-common/analyzer/SARD-tc117-basic-00001-min.c
+ 7dbb75c2ad0127cda3c2a6b1c8a376b6  gcc/testsuite/c-c++-common/analyzer/SARD-tc249-basic-00034-min.c
+ 2a4fb2c70afac3ec00d2aa07665c4bec  gcc/testsuite/c-c++-common/analyzer/abort.c
+ ca39a9bcc32da0de969872e39eec2dcb  gcc/testsuite/c-c++-common/analyzer/aliasing-1.c
+ 21ccef1b042617794f28392a02c47c2e  gcc/testsuite/c-c++-common/analyzer/aliasing-2.c
+ 9083091e04f47ca9db656daa48ead504  gcc/testsuite/c-c++-common/analyzer/aliasing-3.c
+ 0a67c74034de469201b9301aa31e9b46  gcc/testsuite/c-c++-common/analyzer/aliasing-pr106473.c
+ 18fc2a84aecda4ede234a6de9d8690c2  gcc/testsuite/c-c++-common/analyzer/alloca-leak.c
+ 04632bdd1de9fa1ee514a17bfc3a7167  gcc/testsuite/c-c++-common/analyzer/allocation-size-1.c
+ 465c5d6d5dde5990c5d3c6532b50584e  gcc/testsuite/c-c++-common/analyzer/allocation-size-2.c
+ d419150df921fdc0e404ecb1f69d44a2  gcc/testsuite/c-c++-common/analyzer/allocation-size-3.c
+ 627c3b44a9540020561139f0c92eaa97  gcc/testsuite/c-c++-common/analyzer/allocation-size-4.c
+ e37d985070dd94ef47452c749828094f  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-1.c
+ 352d759f11b9dd884acb088a5c362fc0  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-2.c
+ 7072e8b4c2914985b889802befe5fbe1  gcc/testsuite/c-c++-common/analyzer/allocation-size-multiline-3.c
+ ff142bf88e41f77d891ef01f35da87a1  gcc/testsuite/c-c++-common/analyzer/allocation-size-pr113654-1.c
+ 84d8987fac13d5215f5fc055229d77d8  gcc/testsuite/c-c++-common/analyzer/analyzer-debugging-fns-1.c
+ 1a7053ef4676bb493808df6d87159d0e  gcc/testsuite/c-c++-common/analyzer/analyzer-decls.h
+ f2829f45fc88a32b1bc8c2b2d93e3e24  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-0.c
+ 2ca65b169e002bdee327306e498b3fcd  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-1.c
+ 27d5f3568e32bdeefd3841814ef52b01  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-2.c
+ 6f13c48d287fe59d52b17e51ccd6fca9  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-2a.c
+ 91e4e93d9c558dc17716787d96646ca6  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-3.c
+ ddd318f0d7ec18cf56dba10884be8c19  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-3a.c
+ fc965261104eb781f63faa0fe5a3d7b1  gcc/testsuite/c-c++-common/analyzer/asm-x86-1.c
+ 047ffcd0e8ef76428ff17fee37bc32f4  gcc/testsuite/c-c++-common/analyzer/asm-x86-dyndbg-2.c
+ c88245c2e2571386053260ec42971533  gcc/testsuite/c-c++-common/analyzer/asm-x86-lp64-2.c
+ 64beb097ecbb7813933aa108da9cbe77  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-haproxy-proxy.c
+ c10065d60e1023c004e17517804aca17  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-pr114286.c
+ fe45e23d9fc430bbefba272d10b6d6c7  gcc/testsuite/c-c++-common/analyzer/atomic-builtins-qemu-sockets.c
+ 70682ebe34f98069cd6e798090512d36  gcc/testsuite/c-c++-common/analyzer/attr-alloc_size-1.c
+ b15e2891c4a753cf597b60dcaf0c5c13  gcc/testsuite/c-c++-common/analyzer/attr-alloc_size-2.c
+ c22cfa1990cd903c0075faa90cfd0919  gcc/testsuite/c-c++-common/analyzer/attr-alloc_size-3.c
+ c41899060576b47d99e59ea79b7abcf5  gcc/testsuite/c-c++-common/analyzer/attr-const-1.c
+ a0b2e2cd9950584a2520f1fcc3f0968d  gcc/testsuite/c-c++-common/analyzer/attr-const-2.c
+ 636cee8bd8b03781220a94a7f0d2663d  gcc/testsuite/c-c++-common/analyzer/attr-const-3.c
+ b4515e65ed785bcd07a7162f6ccb804a  gcc/testsuite/c-c++-common/analyzer/attr-malloc-2.c
+ 046d0c0ef6b5715f28a641d19c38b314  gcc/testsuite/c-c++-common/analyzer/attr-malloc-4.c
+ 52c21034354662dddfd5114d1e6b1126  gcc/testsuite/c-c++-common/analyzer/attr-malloc-5.c
+ d934896086d68c1f045a9ea1b1e96cf2  gcc/testsuite/c-c++-common/analyzer/attr-malloc-6.c
+ 7bba371881fbb99ea873aec1e121484b  gcc/testsuite/c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c
+ bccece796597d19d1f7a0fea1ecd1d5c  gcc/testsuite/c-c++-common/analyzer/attr-malloc-misuses.c
+ 7c2191ee9eebd812d8c5b7f4e082e616  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-access-read_write.c
+ a8115832b22944d2deedbcf374941673  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-access-without-size.c
+ 3feaeaf8a451afd3f3c02b1ba13ee112  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-multiple.c
+ d8e228344a3a4f9130cc881379d3203c  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-nonnull-2.c
+ c8c45f33487fb2101267d66dd66ba2fc  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-nonnull-sized.c
+ 0e8de61077e364bee512bb935a740759  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-nonnull.c
+ ec09b8590bd78bf31ce64c6cf4cafeb8  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-nullable-sized.c
+ cdbc4d03b7c0fff5e790a906b6ff8991  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-nullable.c
+ 13ea03e0275293dce13c9983410375cc  gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-1.c
+ 3f7d3cba520a26c38c50f22274b6c413  gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-misuses.c
+ 2a6fd4b0596437c81584911234e358fe  gcc/testsuite/c-c++-common/analyzer/bzip2-arg-parse-1.c
+ 768424351f1b238f53407ec9bb29e126  gcc/testsuite/c-c++-common/analyzer/call-summaries-1.c
+ 1d08e89be2885a0530a8dd0fd33848ce  gcc/testsuite/c-c++-common/analyzer/call-summaries-3.c
+ a98652f2d06708729de689f5875dcc2c  gcc/testsuite/c-c++-common/analyzer/call-summaries-asm-x86.c
+ 94d24ac7e66620db634c8b7f20be9157  gcc/testsuite/c-c++-common/analyzer/call-summaries-malloc.c
+ 5fa3304656e624afc166ece61ea179d7  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr107158-2.c
+ 4d6505c74afd3254abad2b61a5c32cb5  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr107158.c
+ bce1148a5d77acdf3f4ba57288cc400b  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr114159.c
+ a99cd9f5718c9d37aee6aee0294cc872  gcc/testsuite/c-c++-common/analyzer/callbacks-1.c
+ 0b7fa83ab4d00972ea110527aa160a26  gcc/testsuite/c-c++-common/analyzer/callbacks-2.c
+ 054c975de1ad550bc0b3a3000890f5ab  gcc/testsuite/c-c++-common/analyzer/callbacks-3.c
+ 6a06a08f08bccb3f240f11ccb008ad51  gcc/testsuite/c-c++-common/analyzer/calloc-1.c
+ b6351d2afd9a4d77c9de5d35a8fa5124  gcc/testsuite/c-c++-common/analyzer/capacity-1.c
+ 2faf3013703b38ccfb3ad2759cb040a3  gcc/testsuite/c-c++-common/analyzer/capacity-2.c
+ 0ac37e462c4c78f67a1c354ffba96eaf  gcc/testsuite/c-c++-common/analyzer/capacity-3.c
+ 66aa74c6297ad1a2026f455611b0a4fc  gcc/testsuite/c-c++-common/analyzer/casts-1.c
+ 079606c0ec9f4acfbec886c8a9bf1f97  gcc/testsuite/c-c++-common/analyzer/casts-2.c
+ cef5e3bcdf11b82aa8bc65b81170878f  gcc/testsuite/c-c++-common/analyzer/clobbers-1.c
+ c091195fc590c90c200576468c87d1a6  gcc/testsuite/c-c++-common/analyzer/compound-assignment-1.c
+ 30287a7a2b8f02421828017087fff16b  gcc/testsuite/c-c++-common/analyzer/compound-assignment-4.c
+ 3ce1df6bb9d2687cfaea51292b918884  gcc/testsuite/c-c++-common/analyzer/compound-assignment-5.c
+ e8c412b9eaf42745a7fc07cc52fd19af  gcc/testsuite/c-c++-common/analyzer/compound-assignment-pr112969.c
+ 76288e31c6c0d1e9c35771d4cfda7811  gcc/testsuite/c-c++-common/analyzer/computed-goto-1.c
+ 414c98967b21f8892f6579d63fa90a9e  gcc/testsuite/c-c++-common/analyzer/conditionals-pr111881.c
+ c8f5ae8a02f8e56f2c168afcb18dadb2  gcc/testsuite/c-c++-common/analyzer/coreutils-cksum-pr108664.c
+ 184b376b07571c9a8411c4f37cc97e7e  gcc/testsuite/c-c++-common/analyzer/coreutils-sum-pr108666.c
+ 155d36ab3fdd051347569701effe1700  gcc/testsuite/c-c++-common/analyzer/data-model-11.c
+ 9117b1e1f037bbea1974142b15b71ebf  gcc/testsuite/c-c++-common/analyzer/data-model-12.c
+ 2e73658157673972ef9183ffaef41abf  gcc/testsuite/c-c++-common/analyzer/data-model-14.c
+ 41986412fcfd0857f096ced958eeadf1  gcc/testsuite/c-c++-common/analyzer/data-model-18.c
+ 4553c74241f2cd9efbf26371de99807d  gcc/testsuite/c-c++-common/analyzer/data-model-2.c
+ 9da32b217a87b907faad7baaa10b76a4  gcc/testsuite/c-c++-common/analyzer/data-model-20.c
+ 1a7244f30f830702369a54bb48fc8aef  gcc/testsuite/c-c++-common/analyzer/data-model-21.c
+ 167e706d53055dd18733c241608420b2  gcc/testsuite/c-c++-common/analyzer/data-model-22.c
+ a0cd88952248c9e6aeab396421bca6fc  gcc/testsuite/c-c++-common/analyzer/data-model-4.c
+ ce3825071f0459fd39e18dc4443bc5a7  gcc/testsuite/c-c++-common/analyzer/data-model-5d.c
+ e30a91c7d128ee44d4a195e5868ee03a  gcc/testsuite/c-c++-common/analyzer/data-model-8.c
+ e9598af7814c9b574008795653746252  gcc/testsuite/c-c++-common/analyzer/data-model-path-1.c
+ c983dc0a3824841a4b277a70d4f30c24  gcc/testsuite/c-c++-common/analyzer/deref-before-check-2.c
+ 1712456e05161d3b0417014c34379ace  gcc/testsuite/c-c++-common/analyzer/deref-before-check-macro-pr108745.c
+ 99fce2a41535edaa99a0d12d4c0bbc28  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108455-1.c
+ 023ad86cf8fc33c9806aa5e92b99df1a  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108455-git-pack-revindex.c
+ 90d1530831dba7093a2d8db4c5dbf854  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108475-1.c
+ f2ad859a003b900c9b4462b672d0af56  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108475-haproxy-tcpcheck.c
+ 652943410e5c19446e9c4f57616c68df  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109060-haproxy-cfgparse.c
+ c825031b4a0b15fa508c39aa86184c07  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109239-linux-bus.c
+ f22c1d6f613d0a75782bbe2b9985409c  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109251-1.c
+ 807d705dfd479d1b4a5733a46e4d6485  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109251-2.c
+ 3efd9ef09bb52fe32780b0cf36d7b1d3  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr112790.c
+ 9e78ad2b0dc193d5d9ff12c23ed54093  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr114408.c
+ 7bf4703348c765739d583b7192f279b4  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr77425.c
+ d2ac7cdc94dcc7ea5bfd23ed78b9b41a  gcc/testsuite/c-c++-common/analyzer/deref-before-check-qemu-qtest_rsp_args.c
+ 13ffe607de30212adc9ebda16cc7cbbc  gcc/testsuite/c-c++-common/analyzer/disabling.c
+ 4ebb603262b29b6eb98d535349c4a447  gcc/testsuite/c-c++-common/analyzer/dot-output.c
+ 8ea34a719fd27f31787cfb7f8ff38940  gcc/testsuite/c-c++-common/analyzer/dump-state.c
+ 5349560ff6dd31c0631eedd6b00658ee  gcc/testsuite/c-c++-common/analyzer/edges-2.c
+ cd58bff2b56161f01ab9307737cbe5dd  gcc/testsuite/c-c++-common/analyzer/equivalence.c
+ 2d83da4ee4b322aa6495120a44ab4a2c  gcc/testsuite/c-c++-common/analyzer/errno-1.c
+ aaadcec13e3fe9bdd8840af607307fe7  gcc/testsuite/c-c++-common/analyzer/errno-___errno.c
+ 06951c6e7e03b1f718140cca8d7389d8  gcc/testsuite/c-c++-common/analyzer/errno-__error.c
+ 8d211fca1cbcf4fb7b1bb6346f3a3f6a  gcc/testsuite/c-c++-common/analyzer/errno-global-var.c
+ 0ab30799aa76ae04b4edb6495e72e92f  gcc/testsuite/c-c++-common/analyzer/errno-pr107777.c
+ c5de56a4561f064e270ee358ffb7aa30  gcc/testsuite/c-c++-common/analyzer/error-3.c
+ 661fbac2bdbb13d6a1616a88998047c7  gcc/testsuite/c-c++-common/analyzer/error-uninit.c
+ 7c9d86bc70d7ee70d334e2301e82bba5  gcc/testsuite/c-c++-common/analyzer/escaping-1.c
+ 288359fc256efd706d000f082cce0974  gcc/testsuite/c-c++-common/analyzer/exec-1.c
+ 06cdeb40238f1c83c31be9c486c7f990  gcc/testsuite/c-c++-common/analyzer/expect-1.c
+ 8a65bc460ebfced6ab82065135e57d26  gcc/testsuite/c-c++-common/analyzer/factorial.c
+ 3efc345b51b7277578af413178d26130  gcc/testsuite/c-c++-common/analyzer/fd-1.c
+ 08209591e6a5f867ee4a2f405e8b4be9  gcc/testsuite/c-c++-common/analyzer/fd-2.c
+ 40298520e3317080f9c41cabe4a50544  gcc/testsuite/c-c++-common/analyzer/fd-3.c
+ 50636a97d77b8f9987955e13d490394f  gcc/testsuite/c-c++-common/analyzer/fd-bind-pr107928.c
+ 2b4e89d6bd86a237296bded464000d70  gcc/testsuite/c-c++-common/analyzer/fd-connect-pr107928.c
+ 3d137581a222ffd748703c7408e260da  gcc/testsuite/c-c++-common/analyzer/fd-glibc-byte-stream-socket.c
+ 298b4d5b93112886c089e19a84432d77  gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c
+ c7ba742da1070128ee5da2decaa2a7c9  gcc/testsuite/c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c
+ dcb15e6b7d5c3424f3cb08babe7fb63a  gcc/testsuite/c-c++-common/analyzer/fd-meaning.c
+ 420c686f24999848149401ab7c228a3b  gcc/testsuite/c-c++-common/analyzer/fd-socket-meaning.c
+ 6168ec8a3c133bb871eb746aaca692d2  gcc/testsuite/c-c++-common/analyzer/fd-symbolic-socket.c
+ c1e500f74e478290b2358e6a5d237d83  gcc/testsuite/c-c++-common/analyzer/fd-uninit-1.c
+ c67fd7150c48c2cbde13c569af42d724  gcc/testsuite/c-c++-common/analyzer/feasibility-1.c
+ 00d15989662428086fefe3003fd1d85d  gcc/testsuite/c-c++-common/analyzer/feasibility-2.c
+ f851fc79d37d750ec6f4b0f427810fbb  gcc/testsuite/c-c++-common/analyzer/feasibility-3.c
+ 088ec06833570acdc6c6bb265466f91e  gcc/testsuite/c-c++-common/analyzer/feasibility-4.c
+ 166367f89bddb5b54a71a7870a8f1fe1  gcc/testsuite/c-c++-common/analyzer/feasibility-pr107948.c
+ 1461e7b4d80bbbc9eaca84c3c53e4ced  gcc/testsuite/c-c++-common/analyzer/ferror-1.c
+ 23bc59087d794c1b065cef050c3433d2  gcc/testsuite/c-c++-common/analyzer/fgets-1.c
+ 0d6e01df673fded93678160ef3f843e9  gcc/testsuite/c-c++-common/analyzer/fibonacci.c
+ badf258f6f3121025b0d3b8332fda51f  gcc/testsuite/c-c++-common/analyzer/fields.c
+ 18174663dff64a509abb3f5ada449bdc  gcc/testsuite/c-c++-common/analyzer/file-1.c
+ 4d1005ccd0e2c6b96780497a29dc930f  gcc/testsuite/c-c++-common/analyzer/file-3.c
+ 201348c53a15d6dd5ba2dba86efc8eab  gcc/testsuite/c-c++-common/analyzer/file-meaning-1.c
+ e8f2ac5a2eaf583345c763651947c9b5  gcc/testsuite/c-c++-common/analyzer/file-pr58237-noexcept.c
+ 89737b51a5c30a4053ff561fafc96a87  gcc/testsuite/c-c++-common/analyzer/file-uninit-1.c
+ 50e92bcce9bdc748be8e90cf89d2dfc7  gcc/testsuite/c-c++-common/analyzer/fileno-1.c
+ a54c5604b047a4dc1ca40c729785be0b  gcc/testsuite/c-c++-common/analyzer/first-field-1.c
+ dbc6e6b6bb42c66edb65e000211c36d9  gcc/testsuite/c-c++-common/analyzer/first-field-2.c
+ 3395a63e63ad928244dea4f705f50bea  gcc/testsuite/c-c++-common/analyzer/flex-with-call-summaries.c
+ 73ebc7c9f7bf6d9a87e3fa060aba2218  gcc/testsuite/c-c++-common/analyzer/flex-without-call-summaries.c
+ ebd08a32e2882c02472e4b97bbb990a0  gcc/testsuite/c-c++-common/analyzer/flexible-array-member-1.c
+ 3a1490518625a0c947e5b6ac2c5401eb  gcc/testsuite/c-c++-common/analyzer/fold-string-to-char.c
+ 3ca6537a697cd0e749a07d45d59ad24d  gcc/testsuite/c-c++-common/analyzer/fopen-2.c
+ 97b083fec9e5e444893a944be9076652  gcc/testsuite/c-c++-common/analyzer/fread-1.c
+ 15585a669be83960f2834520a959fd2a  gcc/testsuite/c-c++-common/analyzer/fread-2.c
+ f512dabde9dcd2f000bf124a071e88d4  gcc/testsuite/c-c++-common/analyzer/fread-pr108661.c
+ e02f4f3f73df89227f8853a4206f0cad  gcc/testsuite/c-c++-common/analyzer/function-ptr-1.c
+ fda2f587f1e8b46fed42f7478b64cddf  gcc/testsuite/c-c++-common/analyzer/function-ptr-2.c
+ 6a55e6868fb6e1f3a4844412e8ad9f93  gcc/testsuite/c-c++-common/analyzer/function-ptr-3.c
+ b2879bf88ff165ec7fcf358bfa0851f9  gcc/testsuite/c-c++-common/analyzer/function-ptr-4.c
+ 133a15e1eb3fa132a091d20cbf43f490  gcc/testsuite/c-c++-common/analyzer/function-ptr-5.c
+ 27e7865f9c71851f26bc947168724ada  gcc/testsuite/c-c++-common/analyzer/getc-1.c
+ c8cf12bc01c84a2f2f0cb158bd49aae1  gcc/testsuite/c-c++-common/analyzer/getchar-1.c
+ 51ff03d45b33716faea24ccb373d44c5  gcc/testsuite/c-c++-common/analyzer/gzio-2.c
+ fda86ff25535c945555b6fc4c394a45e  gcc/testsuite/c-c++-common/analyzer/gzio-3.c
+ 826438f921dddc8033a63027fd6280aa  gcc/testsuite/c-c++-common/analyzer/gzio-3a.c
+ 95ad79e96dde48a914a9588f08788b19  gcc/testsuite/c-c++-common/analyzer/gzio.c
+ e1b439caf59bbf930791f644cc2c4443  gcc/testsuite/c-c++-common/analyzer/ice-pr112889.c
+ d955cf477584528b6187c5f691f398fa  gcc/testsuite/c-c++-common/analyzer/imprecise-floating-point-1.c
+ 41b87104bc61c7bda741b03025c359b4  gcc/testsuite/c-c++-common/analyzer/infinite-loop-2.c
+ 963be3f26ca424fe0ab634bc2845072c  gcc/testsuite/c-c++-common/analyzer/infinite-loop-4.c
+ 2a4284479c76a6fca65b58f07c971c28  gcc/testsuite/c-c++-common/analyzer/infinite-loop-crc32c.c
+ bd378129f972209d7b2ceb2f769eeec0  gcc/testsuite/c-c++-common/analyzer/infinite-loop-doom-d_main-IdentifyVersion.c
+ e3a49ac2ec3caf9b1ca818b5a49f79a8  gcc/testsuite/c-c++-common/analyzer/infinite-loop-doom-v_video.c
+ 4537753447465552222d25742a7e7c98  gcc/testsuite/c-c++-common/analyzer/infinite-loop-g_error.c
+ 4b67a208bab15fa310f5ed9c01aeec48  gcc/testsuite/c-c++-common/analyzer/infinite-loop-linked-list.c
+ ff805313fa956a67f1dc98c3dac09efa  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-2.c
+ a105342d3292d355507ab715b3a2ca98  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-3.c
+ 36d8f1e7bf8efe96a15ce80880e10e83  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-limited-buggy.c
+ 6c02fdcda6da2e22db9f2590da1ed81e  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-limited.c
+ 29e098dde04cb3f8dc4bc4d3e6ecea87  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-unlimited-buggy.c
+ 57e4b763cf0302dace5e4608c7185d85  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-unlimited.c
+ eecccbd82a0978c6fefd4883a004a5ce  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-5.c
+ 5d46cc14809df1773684db513d227c0f  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-alloca.c
+ 4f74fbc85a1872090b39ede44d71e939  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-inlining.c
+ 6047a46b4b1e3a1818da6c9ef886d468  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-multiline-1.c
+ 501065cb78c98e2903bf9054434721ec  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-multiline-2.c
+ 678e520520e179deadde681b805a0226  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-1.c
+ 8ae2d2ad11ab012d4ebd59de300448ef  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-2.c
+ 3c9e1c86490f5c76c234118f3a094965  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-qobject-json-parser.c
+ a66185ed3bef2742621b423d3bec08ab  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-1.c
+ 7d75523d81879148276b42e991a4c362  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-1a.c
+ 66723f902622a5e196b22ca3d8fceff6  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-2.c
+ 43c57be318716a133d18499c08ddc7aa  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-variadic.c
+ d5e270f77ea78102f30f82e5d2f2191b  gcc/testsuite/c-c++-common/analyzer/infinite-recursion.c
+ e7a346d9228f0a095843adfb8d30f916  gcc/testsuite/c-c++-common/analyzer/init.c
+ 7be31f253c5b7f2accefbebf945eeee5  gcc/testsuite/c-c++-common/analyzer/inlining-1-multiline.c
+ 43cde5ffd859b42ff7d0c25096d32f8b  gcc/testsuite/c-c++-common/analyzer/inlining-1-no-undo.c
+ bd7031b04895ce0dea8e88db6b120676  gcc/testsuite/c-c++-common/analyzer/inlining-1.c
+ eb3bd734fc81927adf36bd52bc4ef680  gcc/testsuite/c-c++-common/analyzer/inlining-2-multiline.c
+ c73a59915c25fbe899e5e353224bc093  gcc/testsuite/c-c++-common/analyzer/inlining-2.c
+ 4cfc505e9856fa3952765290e8e6023b  gcc/testsuite/c-c++-common/analyzer/inlining-3-multiline.c
+ ca519b59cc38b18023220cec37123d8c  gcc/testsuite/c-c++-common/analyzer/inlining-3.c
+ 44f5e149ca12172a7ac021d6a8774dda  gcc/testsuite/c-c++-common/analyzer/inlining-4-multiline.c
+ f4db96ced53d2d9c2edeaa026ad588c4  gcc/testsuite/c-c++-common/analyzer/inlining-4.c
+ efbe4cfe5cb2b880453b27b7ae46bb68  gcc/testsuite/c-c++-common/analyzer/inlining-5-multiline.c
+ abfa35b8a5fc745a6ae1279a469abdb3  gcc/testsuite/c-c++-common/analyzer/inlining-5.c
+ 3894d57027e40f636ecb3047acb8388e  gcc/testsuite/c-c++-common/analyzer/inlining-6-multiline.c
+ f96a5e26ebe3f224244fcc898ace703b  gcc/testsuite/c-c++-common/analyzer/inlining-6.c
+ 03a1d1ad07367c4df1878142d6ed4cd4  gcc/testsuite/c-c++-common/analyzer/inlining-7-multiline.c
+ 28235c739e7b12bff289d278f8971f92  gcc/testsuite/c-c++-common/analyzer/inlining-7.c
+ 7a48058aaf7419920b16429c67d04982  gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c
+ 3cb97718e1fbbc9845c767bb007b9fa9  gcc/testsuite/c-c++-common/analyzer/isatty-1.c
+ 3b2442e1fb86e61bdc1f45d8750dd3a2  gcc/testsuite/c-c++-common/analyzer/leak-2.c
+ 862c513838cce7710b72958de0e089e7  gcc/testsuite/c-c++-common/analyzer/leak-3.c
+ ad7f259d8751ba6a000be5618f70545a  gcc/testsuite/c-c++-common/analyzer/leak-4.c
+ fa0f02fc0b9e204f25d1e9fcb7b836e0  gcc/testsuite/c-c++-common/analyzer/leak-pr105906.c
+ ff24be99b18d9e9062bfbae34b173cde  gcc/testsuite/c-c++-common/analyzer/leak-pr108045-with-call-summaries.c
+ 16477abf1a9d42c1e3b9b4a435c1f739  gcc/testsuite/c-c++-common/analyzer/leak-pr108045-without-call-summaries.c
+ cba831ccfe6c520cc9d50eb237dc440d  gcc/testsuite/c-c++-common/analyzer/leak-pr109059-1.c
+ e8a3ee34295f81927d46b813f1bccd7e  gcc/testsuite/c-c++-common/analyzer/leak-pr109059-2.c
+ 84b2993ff3606dbade9fa2092a3b1579  gcc/testsuite/c-c++-common/analyzer/loop-0-up-to-n-by-1-with-iter-obj.c
+ 7885770ebfe09d86442089bd86651335  gcc/testsuite/c-c++-common/analyzer/loop-0-up-to-n-by-1.c
+ 8c2a26147f66df7eb2ef94470bae77e8  gcc/testsuite/c-c++-common/analyzer/loop-2.c
+ d6bb93bd02ecebd1916046e5a2a48d40  gcc/testsuite/c-c++-common/analyzer/loop-2a.c
+ 38554e26f0a2347fa36dcc051c5d5320  gcc/testsuite/c-c++-common/analyzer/loop-3.c
+ 0ee2f8031c238940bd9e987ce44c8fcb  gcc/testsuite/c-c++-common/analyzer/loop-4.c
+ c8300e47d2a3531271804a8506b3763e  gcc/testsuite/c-c++-common/analyzer/loop-n-down-to-1-by-1.c
+ e2a77424037e3f8e995d18b274bebccc  gcc/testsuite/c-c++-common/analyzer/loop-start-down-to-end-by-1.c
+ 223665e4098412e21c85c9579758b987  gcc/testsuite/c-c++-common/analyzer/loop-start-down-to-end-by-step.c
+ f87f14f8a72827b5feee7074a11c8cad  gcc/testsuite/c-c++-common/analyzer/loop-start-to-end-by-step.c
+ a7e5a47a1c4034d7e2762efa201bdec0  gcc/testsuite/c-c++-common/analyzer/loop-start-up-to-end-by-1.c
+ fbacd9490cdecf026deea8560b5b6b83  gcc/testsuite/c-c++-common/analyzer/loop.c
+ 64f76515677dddc9e538e1b91b4e1e05  gcc/testsuite/c-c++-common/analyzer/malloc-2.c
+ e0ae53de586eac1b51f7ef4ebf8386c1  gcc/testsuite/c-c++-common/analyzer/malloc-3.c
+ 42a25f65cb48c251a4ca2b042d1950fc  gcc/testsuite/c-c++-common/analyzer/malloc-5.c
+ 089a218821bc78b4449f445d077fe986  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-401-example.c
+ 33eb20bdcc22880a94f04f3cf3ce75ac  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-415-examples.c
+ ad93a90a150e736e096f90487b8efc05  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-416-examples.c
+ bf418ed77263ef23760fccd26443bbd8  gcc/testsuite/c-c++-common/analyzer/malloc-CWE-590-examples.c
+ bdb39bc98a9ebc6e3b2972ee67bf1ae1  gcc/testsuite/c-c++-common/analyzer/malloc-callbacks.c
+ 212fdabc9998e80319bb376300f15a4c  gcc/testsuite/c-c++-common/analyzer/malloc-dce.c
+ a0baef29e471a23f4b1d85765e6c323a  gcc/testsuite/c-c++-common/analyzer/malloc-dedupe-1.c
+ 5692e6851cd3a48cde34fbef4fe44a23  gcc/testsuite/c-c++-common/analyzer/malloc-in-loop.c
+ 0eb3eab22850b1ee96240fa0f315c8f7  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-1.c
+ d079e62118cc134df565e6e8305c0f02  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-10.c
+ cc995cddea03c4272c252eeddcce116e  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-11.c
+ 9ba47d1cadcdb905818d680ab630fc87  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-12.c
+ 040536c40f5543d2f3a0fded49c9f951  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-13a.c
+ c975c8677595ca5266f4944072467ac6  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-2.c
+ 5a40812b01235635b102868981304a4d  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-3.c
+ f540220ba65cd0564922124812272a4d  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-4.c
+ a18fcc27c7368d934b0109a63a2fe7d1  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-5.c
+ 8c3ed72cdfbd43a79f4a2aafbab9472e  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-6.c
+ 69517082dc4ef0e29376e7b276a4f37f  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-7.c
+ 509c006d6c5aac648b0185d645bdccb4  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-8-unchecked.c
+ 501c9d5c4d00231c3decfa9f95a02441  gcc/testsuite/c-c++-common/analyzer/malloc-ipa-9.c
+ 87e1999cf6c969790200a82425ce6d87  gcc/testsuite/c-c++-common/analyzer/malloc-macro-inline-events.c
+ 33783cc60291deb3381a32687153564f  gcc/testsuite/c-c++-common/analyzer/malloc-macro-separate-events.c
+ 13ff782aadb00a0005a902b7a6b47bb3  gcc/testsuite/c-c++-common/analyzer/malloc-macro.h
+ 0a26b1a6638ad50af7917b694d62f3ca  gcc/testsuite/c-c++-common/analyzer/malloc-many-paths-1.c
+ 3fa8d16b65385c1f68e354229e9e76d1  gcc/testsuite/c-c++-common/analyzer/malloc-many-paths-3.c
+ 651998f628e3054917e94d72e1539e23  gcc/testsuite/c-c++-common/analyzer/malloc-meaning-1.c
+ 5f1e6465e704334db9b85ba9f9bc5f24  gcc/testsuite/c-c++-common/analyzer/malloc-paths-1.c
+ 412aa50e9719b304e4b0af9bf584748c  gcc/testsuite/c-c++-common/analyzer/malloc-paths-2.c
+ 9de165979b7aff117a96e54202a9f96c  gcc/testsuite/c-c++-common/analyzer/malloc-paths-3.c
+ 217391452ef57cef4db9f027bf139c7c  gcc/testsuite/c-c++-common/analyzer/malloc-paths-4.c
+ c0512edf80944ffafce5cf9e1f06c2ee  gcc/testsuite/c-c++-common/analyzer/malloc-paths-5.c
+ 54fdccce21f567ce613c24d9a16b1593  gcc/testsuite/c-c++-common/analyzer/malloc-paths-6.c
+ 601cd4c7b73ebb6e97b3bda99e6bea6b  gcc/testsuite/c-c++-common/analyzer/malloc-paths-7.c
+ 16ddee2fac1ab9a0fbc3731f7cd52b2e  gcc/testsuite/c-c++-common/analyzer/malloc-paths-8.c
+ 558a3fb47323df07bdd7db3c09009bb0  gcc/testsuite/c-c++-common/analyzer/malloc-paths-9-noexcept.c
+ 9ecbe2ad683ce1fdcb8fb5593096a834  gcc/testsuite/c-c++-common/analyzer/malloc-sarif-1.c
+ 8261cb8449d54e0382dc64b74d46d2c0  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-1a.c
+ b5bb321785e7bea5388cb2b64e173213  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-1b.c
+ d464c105278a3135eece0b536dfddef1  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-2.c
+ d612c4dbe9f34c8b84f01f0c3b2c896f  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-3.c
+ 6ccd146a06cc2ba54e9f0262c6f28597  gcc/testsuite/c-c++-common/analyzer/many-disabled-diagnostics.c
+ a9a24860ed497a76f830a117a460b2ec  gcc/testsuite/c-c++-common/analyzer/many-unused-locals.c
+ d4bf17b885958686075a5872643ee9bb  gcc/testsuite/c-c++-common/analyzer/memcpy-2.c
+ 514217ce51b9ac79af7a07592d1e878b  gcc/testsuite/c-c++-common/analyzer/memcpy-pr107882.c
+ 9a8341770fadf90973291e1ae9e90fe5  gcc/testsuite/c-c++-common/analyzer/memset-1.c
+ 669fd539af0a545567f25d8aa7b91bd0  gcc/testsuite/c-c++-common/analyzer/memset-2.c
+ 0c0049b78b7d635c54221da0f1405b15  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-2.c
+ e052f140a24235b21cd8ca14cc572309  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-3.c
+ c0d536eb878756e8abcb266bdb84c0ca  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-4.c
+ f2ef41567ee028e2c9a0b2dcc93610d5  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-empty.c
+ 8ca03489a7a16008cda28b311d2ad31d  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-traditional.c
+ 61af2386834b57be29eb9039ab3e0c5d  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-undef.c
+ 818fb538b0fb1960bc453bff00d253a2  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early-O2.c
+ 22b0042661a4cf37a407575ea2fba600  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early.c
+ e5577157d8786cf9889a1776dcf5a731  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108400-SoftEtherVPN-WebUi.c
+ 4c86f72d1d3cb536f8d0380e15b986c9  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108806-qemu.c
+ 32d7a13194f9a5ee03de4c64171f033e  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108830.c
+ a256b4df4964505fabaddb133153a201  gcc/testsuite/c-c++-common/analyzer/null-deref-pr110520.c
+ 10ef8fc8fdc0652e0eae180799d486c8  gcc/testsuite/c-c++-common/analyzer/null-terminated-strings-2.c
+ 0d02ed8e1b5ac37f6e2d0eec884933c1  gcc/testsuite/c-c++-common/analyzer/omp-parallel-for-1.c
+ 43dcd48b6c73f9d8d64b95d20f4581b4  gcc/testsuite/c-c++-common/analyzer/omp-parallel-for-get-min.c
+ 24b525896646ce149d19292cb7df4b30  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-1.c
+ 4a3c49c3c3fea0d14b0c5dc0801e6a24  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-2.c
+ 010805505962cb3ca5a783127e374794  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-3.c
+ bcfef6b80f5f87746412d5248b1181a8  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-5.c
+ 2c5cd1ccc8e8156dab1bceee1e648188  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-const-fn.c
+ 2407d9e5c1b1cedd802a676294c32835  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-coreutils.c
+ 7b37db3cd00928477b112bf00cee7b33  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-curl.c
+ c52cf48f8a5b88323363853f697a3f05  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-1-json.c
+ 0aa30057e371550257dca5d0ad20d954  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-1-sarif.c
+ f7b26ca3130387e4110cb4ace86b0d88  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-11.c
+ 0064bce41cfe4f3baeb3f04829d9b45f  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-3.c
+ c3496ba2912cc1caed2d2f7e114e017f  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-8.c
+ 24e84fde8769f6b568fbbfd4d1fab8ef  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr110928.c
+ 4b4040192bf840340d180d48b3baf801  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr111305.c
+ f6abb46de5e149c3f51e095ebafbfd2c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-pr111441.c
+ ddb39f13a9824d6f1b3f6e3508ece447  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-strcat-2.c
+ a435090b70c1213b2855e316d7921c1c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-diagram-strcat.c
+ 18584acce7a716ada0d2beca00fd0156  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr110387.c
+ 606543af52a81eac809729a52049583c  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr111266.c
+ fba9c98e5882168b4357947531f5c3b5  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr112792.c
+ c8afd3ff3470bbc33ae32b332a3ec376  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-pr114472.c
+ 525e0bc1850a84e8e7242a4f6db33b2f  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-read-char-arr.c
+ 98843c5223809f4a124d12a592435fac  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-read-int-arr.c
+ 8bc1b2dd538d5c16c37b8b5bf724a4cc  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-read-struct-arr.c
+ 0c8b585fca3b911ecbe64cb6700e0802  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-write-char-arr.c
+ 1e983ca7a4b3b1b4b201607210aedfaf  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-write-int-arr.c
+ e4c3643265721b24d21f9763581d569d  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-write-struct-arr.c
+ d0558cc0b71d11f718ec2ecc93cc34b9  gcc/testsuite/c-c++-common/analyzer/overlapping-buffers-pr113998.c
+ e089e6b6af2eeb36ade618f602bd67bd  gcc/testsuite/c-c++-common/analyzer/overlapping-buffers.c
+ 7c6c9ed633de8bd71c9e5bf5ec95ceb7  gcc/testsuite/c-c++-common/analyzer/params-2.c
+ 4d166a6392bd44e453b465258f187cd0  gcc/testsuite/c-c++-common/analyzer/paths-1.c
+ 25979d0595f5e4da39288a37576604b7  gcc/testsuite/c-c++-common/analyzer/paths-1a.c
+ 7a5be82eddd4e1df5ecb4f1b14585036  gcc/testsuite/c-c++-common/analyzer/paths-2.c
+ db94fe63d590662e55109a2a7e5e8fe8  gcc/testsuite/c-c++-common/analyzer/paths-3.c
+ 508bc423ef705c0c8789792e35ed3011  gcc/testsuite/c-c++-common/analyzer/paths-4.c
+ 324a76012fa37a5e46e7862f10d0b4ca  gcc/testsuite/c-c++-common/analyzer/paths-5.c
+ e743e8bda033473fcaea2882346cd62e  gcc/testsuite/c-c++-common/analyzer/paths-6.c
+ 58de178e30758a2cbc22f446455554a1  gcc/testsuite/c-c++-common/analyzer/paths-7.c
+ 5d0ae057d107f23b1484b5e6f2032230  gcc/testsuite/c-c++-common/analyzer/paths-8.c
+ b818695de20677346ff28a3913c7b163  gcc/testsuite/c-c++-common/analyzer/pattern-test-1.c
+ 5f92a63a3a47c94b25c8524b202fe4b4  gcc/testsuite/c-c++-common/analyzer/phi-1.c
+ 504cd57ec0a0e6b768eaedede8d25c6c  gcc/testsuite/c-c++-common/analyzer/pipe-pr107486.c
+ 8704d0b888bfd7cbf5c7f8dfbb9f5610  gcc/testsuite/c-c++-common/analyzer/pointer-merging.c
+ 2a829c368b1b687fbe16de043fb0b895  gcc/testsuite/c-c++-common/analyzer/pr100546.c
+ 2f2b6e5d8817e12fa71f64b20aa73db1  gcc/testsuite/c-c++-common/analyzer/pr100615.c
+ ca846697a146a1f125aec4f5a6d89952  gcc/testsuite/c-c++-common/analyzer/pr101503.c
+ 67f1876dabdfe679ca73c0ea199f4d5a  gcc/testsuite/c-c++-common/analyzer/pr101570.c
+ d7fdd42f2b44dc1e43a9f30292acc743  gcc/testsuite/c-c++-common/analyzer/pr101721.c
+ c3da1ecf0d28b29ab39719c3c6f42459  gcc/testsuite/c-c++-common/analyzer/pr101962.c
+ e84f664468060451e3cb304c75cea3d6  gcc/testsuite/c-c++-common/analyzer/pr102692-2.c
+ 7eea22d259719a44f082976446139ac0  gcc/testsuite/c-c++-common/analyzer/pr102695.c
+ 760842210fc5ecafbee92fe31ebfa782  gcc/testsuite/c-c++-common/analyzer/pr103217-2.c
+ 8bfbe18263e57b8fb27c6add9314239b  gcc/testsuite/c-c++-common/analyzer/pr103217-3.c
+ 89328508480588c2f80fa5160078a764  gcc/testsuite/c-c++-common/analyzer/pr103217-4.c
+ 682c85a8b33655e8e6969f2b149c32c6  gcc/testsuite/c-c++-common/analyzer/pr103217-5.c
+ 04bcadd7568e1d29c9051e32234ee444  gcc/testsuite/c-c++-common/analyzer/pr103217.c
+ e8c3b2f2a1bfc4b9192cc58212f3c2f1  gcc/testsuite/c-c++-common/analyzer/pr103526.c
+ a392e3d33dcfef1cc73fc89dfebd7d47  gcc/testsuite/c-c++-common/analyzer/pr104029.c
+ f711df2b9e4ae64a01d847f0f3b3ad2c  gcc/testsuite/c-c++-common/analyzer/pr104062.c
+ b37b97c145c4e03b92cc527ed777ccc3  gcc/testsuite/c-c++-common/analyzer/pr104089.c
+ 2476fa0b2e91faf3777b4bf56eaf8ea9  gcc/testsuite/c-c++-common/analyzer/pr104308.c
+ 3dfd74edcc351f3dff957bcaadb54f2c  gcc/testsuite/c-c++-common/analyzer/pr104452.c
+ 42995504c3a9b54cbe98514bec88a47e  gcc/testsuite/c-c++-common/analyzer/pr104524.c
+ 7335c8c3d4d1cf3d8915f83b7e5c549e  gcc/testsuite/c-c++-common/analyzer/pr104560-2.c
+ ff3edd5d7ef8daa0dbc4754f1e087dea  gcc/testsuite/c-c++-common/analyzer/pr105087-1.c
+ 31e66e50ca6137c903edb9a5f1c33bb8  gcc/testsuite/c-c++-common/analyzer/pr105087-2.c
+ 7db1771ee016e8eff4a7d43565e82ac4  gcc/testsuite/c-c++-common/analyzer/pr105252.c
+ 8dec73992c96852113d32097a035a39c  gcc/testsuite/c-c++-common/analyzer/pr105783.c
+ f731f4f8612f8ee22eb1ea13cf0aec0f  gcc/testsuite/c-c++-common/analyzer/pr106394.c
+ 8af52372a76611b936c16a76eb1d0104  gcc/testsuite/c-c++-common/analyzer/pr106539.c
+ cdc8616a7ffe3b90347da98ea49fbe0c  gcc/testsuite/c-c++-common/analyzer/pr106845.c
+ af023122a19de528dafe039ac05f2a3b  gcc/testsuite/c-c++-common/analyzer/pr107345.c
+ f4b9205ce0a403e60c39a7ed11a3395c  gcc/testsuite/c-c++-common/analyzer/pr109439.c
+ 8475e5a36086691568721592e9e0b88a  gcc/testsuite/c-c++-common/analyzer/pr109577-noexcept.c
+ 038573b03135b2b0b98abfc0f6575ae3  gcc/testsuite/c-c++-common/analyzer/pr110455.c
+ a84846a024c9ccf58fb4032be65bcdc9  gcc/testsuite/c-c++-common/analyzer/pr110830.c
+ 3b715088546567d4c2cc30cc26417f11  gcc/testsuite/c-c++-common/analyzer/pr93032-mztools-simplified.c
+ ddd38a6cae93f735290778e9e2854548  gcc/testsuite/c-c++-common/analyzer/pr93290.c
+ 571c9ec61e278add06ca460a7d410139  gcc/testsuite/c-c++-common/analyzer/pr93352.c
+ d4232896f839f8b1b10297172b034331  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-feasibility-3.c
+ bea694320cc00629307db054732ff4f9  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-feasibility-noexcept.c
+ 34c8a40339a82547bfbde334593d1f9a  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-simplified.c
+ b6a5c2e98cae1c3d989110f8bc0b5134  gcc/testsuite/c-c++-common/analyzer/pr93457.c
+ d7e755a648dcf6c1194222f89d2c136b  gcc/testsuite/c-c++-common/analyzer/pr93546.c
+ 9d197d56580541ddcf5a28595b6fcd8a  gcc/testsuite/c-c++-common/analyzer/pr93547.c
+ dc22921b1f8adf04e247fd77f0e4622d  gcc/testsuite/c-c++-common/analyzer/pr93669.c
+ ffd6bac01ae875072263d491afcfe967  gcc/testsuite/c-c++-common/analyzer/pr93695-1.c
+ d092c910db92eea5975a648161bb95f1  gcc/testsuite/c-c++-common/analyzer/pr93938.c
+ d562f145d761d598c4cf5d581b61e546  gcc/testsuite/c-c++-common/analyzer/pr94047.c
+ 872037e09757aa86b694f245b71c154d  gcc/testsuite/c-c++-common/analyzer/pr94099.c
+ 76559ba88816dd3d385d56090dd3e037  gcc/testsuite/c-c++-common/analyzer/pr94105.c
+ 4a0882eb0437ed6fd5ca96ab27e0a6ba  gcc/testsuite/c-c++-common/analyzer/pr94362-1.c
+ 26e11daef97e39d6db3d2431e8863ce9  gcc/testsuite/c-c++-common/analyzer/pr94362-2.c
+ 2b860df7bd7544da2d884a29b5b8270b  gcc/testsuite/c-c++-common/analyzer/pr94399.c
+ 9c96000a1a0a853d0179d8fd11c65e55  gcc/testsuite/c-c++-common/analyzer/pr94447.c
+ 7fad0567a41ddcb729c78cbf8801e644  gcc/testsuite/c-c++-common/analyzer/pr94596.c
+ 1be53c5b37cf4078b3541a25345038a4  gcc/testsuite/c-c++-common/analyzer/pr94639.c
+ fd0f492f05905f9735a1c3fb5aba65e2  gcc/testsuite/c-c++-common/analyzer/pr94640.c
+ 6cd931319824cc8853e7a562f4f1b30a  gcc/testsuite/c-c++-common/analyzer/pr94732.c
+ fdaa0ecaf535d685940149efac11419b  gcc/testsuite/c-c++-common/analyzer/pr94839.c
+ ef42f03d3bb8caac2a24c9aea94f1103  gcc/testsuite/c-c++-common/analyzer/pr94851-1.c
+ eae76672134a123479373b9f9bbac641  gcc/testsuite/c-c++-common/analyzer/pr94851-2.c
+ 9ea2ed915597b6c25fabf8d6beb5fffd  gcc/testsuite/c-c++-common/analyzer/pr94851-3.c
+ e91b5892ab788d01d4d0ee03830d6c98  gcc/testsuite/c-c++-common/analyzer/pr94851-4.c
+ de6895701db3c05fb80ecd2032f4075f  gcc/testsuite/c-c++-common/analyzer/pr95026.c
+ 1114dd32582b991ab061e3d0d512fc71  gcc/testsuite/c-c++-common/analyzer/pr95240.c
+ d0a6505c532b4244902d3dd3501af977  gcc/testsuite/c-c++-common/analyzer/pr96598.c
+ a18aec5c928fb5cf0238f90bc5890720  gcc/testsuite/c-c++-common/analyzer/pr96611.c
+ 487c5bd93a645fb586ac8e451ed1e94e  gcc/testsuite/c-c++-common/analyzer/pr96639.c
+ 1cc9fc986e0c43dbfa3116f2b887d305  gcc/testsuite/c-c++-common/analyzer/pr96644.c
+ 8122e564ee9470c65abe46b95a4e01e0  gcc/testsuite/c-c++-common/analyzer/pr96646.c
+ dbff5f371056a62a0166453b66a4e27a  gcc/testsuite/c-c++-common/analyzer/pr96648.c
+ 7355069be28eed8d00160ea24380a9a5  gcc/testsuite/c-c++-common/analyzer/pr96650-1-notrans.c
+ d9c33cd022fc3054544749865b40e10f  gcc/testsuite/c-c++-common/analyzer/pr96650-1-trans.c
+ aa029c0bea41b0e118a8ca1f50d23b60  gcc/testsuite/c-c++-common/analyzer/pr96650-2-notrans.c
+ 8493678def139ca7a82b058857427371  gcc/testsuite/c-c++-common/analyzer/pr96650-2-trans.c
+ 6839dc70e12ccfcef828a166458c4e34  gcc/testsuite/c-c++-common/analyzer/pr96651-1.c
+ 4104c93d9abf49a4c99fa10aa19d03ce  gcc/testsuite/c-c++-common/analyzer/pr96653.c
+ 93d3de68df9d3d71a9a39d6fc15caaee  gcc/testsuite/c-c++-common/analyzer/pr96699.c
+ 59b287a3143a88ac8698f48e67bca083  gcc/testsuite/c-c++-common/analyzer/pr96705.c
+ 4ca9c431f41a72254ed6c43b62aa8ddb  gcc/testsuite/c-c++-common/analyzer/pr96713.c
+ 5c78c63d9f9e9ac1898eb1f4ffc56f65  gcc/testsuite/c-c++-common/analyzer/pr96764.c
+ 054ab1c927a55fe5f67ab96348c0bfac  gcc/testsuite/c-c++-common/analyzer/pr96777.c
+ bbb64776ef435c86e6e9ce7bad1d2c5b  gcc/testsuite/c-c++-common/analyzer/pr96792.c
+ e70ded212eee0cc316cb15eceeffaa17  gcc/testsuite/c-c++-common/analyzer/pr96841.c
+ 6ea0d6a74be1672eeed9d14f1e664fa7  gcc/testsuite/c-c++-common/analyzer/pr96860-2.c
+ e90b6e64cc366c53200b591dd4d37db6  gcc/testsuite/c-c++-common/analyzer/pr97029.c
+ 5bd94fca89134ed6b5d3236ba6cc6a31  gcc/testsuite/c-c++-common/analyzer/pr97072.c
+ 546c32f2aa2156325068020f118d258f  gcc/testsuite/c-c++-common/analyzer/pr97074.c
+ e2da6e0e14d8c8ac966c0b44386c520d  gcc/testsuite/c-c++-common/analyzer/pr97130.c
+ 2c0f51e668635fdd7cc909b70544228f  gcc/testsuite/c-c++-common/analyzer/pr97233.c
+ 87cd37c72323b82cb97b0d3004f56d53  gcc/testsuite/c-c++-common/analyzer/pr97514.c
+ 2dc9951decf024baa7aed3a4396b2da7  gcc/testsuite/c-c++-common/analyzer/pr97568.c
+ 34f442bdd073980116520abe424e006f  gcc/testsuite/c-c++-common/analyzer/pr97608.c
+ 2676b5a12adc3dc9e19dd9c888bdf9ce  gcc/testsuite/c-c++-common/analyzer/pr97668.c
+ 9b541aec01bec34ac52fa0ef2c5131f0  gcc/testsuite/c-c++-common/analyzer/pr98073.c
+ b9380bb82c2c184f0d8eb4c299016e6a  gcc/testsuite/c-c++-common/analyzer/pr98564.c
+ 3bde06fdbe5781b1a2192331d50f515a  gcc/testsuite/c-c++-common/analyzer/pr98575-1.c
+ bd0446dc7bfc92ba7fa31dec5245fdc8  gcc/testsuite/c-c++-common/analyzer/pr98580-a.c
+ ec3f6b6ab51e286be338a54b446589e9  gcc/testsuite/c-c++-common/analyzer/pr98580-b.c
+ b5432845f9f6b11cb824d6de156155cc  gcc/testsuite/c-c++-common/analyzer/pr98628.c
+ 03f03f48d408a0bc51dbf2cabb676c1d  gcc/testsuite/c-c++-common/analyzer/pr98918.c
+ ceae315c9c06f08d0db10fee78e40833  gcc/testsuite/c-c++-common/analyzer/pr98969.c
+ be93403b174680d98cbf78aa01fc24ae  gcc/testsuite/c-c++-common/analyzer/pr99044-2.c
+ 437d6a0bc7376248d2acc37429376fba  gcc/testsuite/c-c++-common/analyzer/pr99193-1-noexcept.c
+ 221a6aae862f8b35deb53487a746967f  gcc/testsuite/c-c++-common/analyzer/pr99193-2.c
+ 410624763fe64534215b090f00fd59b7  gcc/testsuite/c-c++-common/analyzer/pr99193-3.c
+ 6f8aad1e0907588f705eda19503ee83d  gcc/testsuite/c-c++-common/analyzer/pr99716-1.c
+ e0d8ca4cfb2ab1c4a42a62807ee64462  gcc/testsuite/c-c++-common/analyzer/pr99716-2.c
+ 0c63418b3608af001507560347c90d57  gcc/testsuite/c-c++-common/analyzer/pr99716-3.c
+ 6352d57a6346bfd0b199ef72d99f8010  gcc/testsuite/c-c++-common/analyzer/pr99774-1.c
+ e7ec58c8488f858c6b9c88105194899a  gcc/testsuite/c-c++-common/analyzer/pr99906.c
+ 8c73c87efb75a0bef0c4a982a728d2a5  gcc/testsuite/c-c++-common/analyzer/pragma-1.c
+ c302e44e12d48022ecebf9039af2c645  gcc/testsuite/c-c++-common/analyzer/pragma-2.c
+ cd07e8e53b2209dcaf10df191dbbb20f  gcc/testsuite/c-c++-common/analyzer/realloc-1.c
+ 9934b5785f041976924e22e94abcc411  gcc/testsuite/c-c++-common/analyzer/realloc-2.c
+ c3ed923d26f47c708b12b964c6261a71  gcc/testsuite/c-c++-common/analyzer/realloc-3.c
+ d3fd9e6273dea53493741229b2b67559  gcc/testsuite/c-c++-common/analyzer/realloc-4.c
+ 52b12a0e6c5b99a983ba71f27045c0e5  gcc/testsuite/c-c++-common/analyzer/realloc-5.c
+ a7c38aafc43d1698b07f6cdb050c22bb  gcc/testsuite/c-c++-common/analyzer/realloc-pr110014.c
+ 80fa663011e0905b551ff26c0f4ab6aa  gcc/testsuite/c-c++-common/analyzer/refcounting-1.c
+ eb90114c90a666d2fc417737f203862d  gcc/testsuite/c-c++-common/analyzer/rhbz1878600.c
+ 997ad66cb0ac73fff59c8cacc2688689  gcc/testsuite/c-c++-common/analyzer/sarif-pr107366.c
+ 4ac3df5f92314d53cb431018754f0682  gcc/testsuite/c-c++-common/analyzer/scope-1.c
+ e7f9eca59ab316b75929ea55b5913d11  gcc/testsuite/c-c++-common/analyzer/setjmp-2.c
+ b81cc10859189c28863d9b148a72c47a  gcc/testsuite/c-c++-common/analyzer/setjmp-5.c
+ 773f2c55a24aaf21a6b87ad77c8e3f21  gcc/testsuite/c-c++-common/analyzer/setjmp-9.c
+ 8588e0ec348d5eef2edf586ce087d26b  gcc/testsuite/c-c++-common/analyzer/setjmp-pr109094.c
+ 902422abaea5f2e221ab12c68f90b3b9  gcc/testsuite/c-c++-common/analyzer/signal-4a.c
+ 61f787e7800445665427afc95d6b8558  gcc/testsuite/c-c++-common/analyzer/signal-4b.c
+ 394f49939f98479bfd289eb4607c2d3d  gcc/testsuite/c-c++-common/analyzer/snprintf-concat.c
+ 0300cdcdd315d2782b7612ba7d675db3  gcc/testsuite/c-c++-common/analyzer/sock-1.c
+ d2d0bf430ae5db83cb2eeb1d4c3c4844  gcc/testsuite/c-c++-common/analyzer/sock-2.c
+ fa7b1a5831a73be92ea8cf6c3d393f70  gcc/testsuite/c-c++-common/analyzer/sprintf-2.c
+ 309d9cc36ee0a4b44c86c901368cb298  gcc/testsuite/c-c++-common/analyzer/sprintf-concat.c
+ 0d17ba25adaab3e664c5b31f67e250f4  gcc/testsuite/c-c++-common/analyzer/stale-frame-1.c
+ 44d8756f94c5eb1f54f1ad42b42b7c7e  gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-int.c
+ 565c27c80630eebb81d83c9cfbd163f5  gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-ptr.c
+ 1e7d030baaceaf66501a55e6e522ff84  gcc/testsuite/c-c++-common/analyzer/stdarg-pr113509.c
+ 6cb68eb8b2eb45ac0544be60f2161e0e  gcc/testsuite/c-c++-common/analyzer/stdarg-sentinel-1.c
+ 386715a511e63dee39f78737e48a7137  gcc/testsuite/c-c++-common/analyzer/stdarg-types-2.c
+ 8ffbb46c48a69dd15b62a7f13fd55b94  gcc/testsuite/c-c++-common/analyzer/stdarg-types-3.c
+ 7f61fc263e6d3625a5df0e88fb730927  gcc/testsuite/c-c++-common/analyzer/stdarg-types-4.c
+ a20f56474f9327e4df5f75e759a08cfc  gcc/testsuite/c-c++-common/analyzer/strcpy-2.c
+ 20023b7768325cf14b09a44b3cb9af57  gcc/testsuite/c-c++-common/analyzer/string-ops-concat-pair.c
+ 3a1340b4fdb157c40fe29700c0422d6a  gcc/testsuite/c-c++-common/analyzer/string-ops-dup.c
+ 8f913e3de654aeeed3a380e266f73c9d  gcc/testsuite/c-c++-common/analyzer/strlen-pr111361.c
+ c02d2254f7ec2e1d0a71dadd15088d94  gcc/testsuite/c-c++-common/analyzer/strlen-pr112811.c
+ 3d94f951f5b6fbc3d0844975b793c18e  gcc/testsuite/c-c++-common/analyzer/strlen-pr113999.c
+ 38b18abd5aaa2b1fbd6ef4d9391b62fc  gcc/testsuite/c-c++-common/analyzer/strncpy-1.c
+ 95822937a3320cebcdcd88c927eb703e  gcc/testsuite/c-c++-common/analyzer/strncpy-pr111361.c
+ 88e35ed12d2eaf1335c5f8e930e51320  gcc/testsuite/c-c++-common/analyzer/strndup-1.c
+ 40f952624e2c69da69cf4f71c3709729  gcc/testsuite/c-c++-common/analyzer/strstr-1.c
+ e42278d4075df8df53e7bdf029fb1b32  gcc/testsuite/c-c++-common/analyzer/strtok-1.c
+ 5692f39f9e1eb1d0bffdef5855475c4a  gcc/testsuite/c-c++-common/analyzer/strtok-2.c
+ 3860c30809fa4f2be07b2f54d0307dea  gcc/testsuite/c-c++-common/analyzer/strtok-3.c
+ de1b4a3676e13702041a225852147f89  gcc/testsuite/c-c++-common/analyzer/strtok-4.c
+ 78e0479f0949ec5e1ab354025c965109  gcc/testsuite/c-c++-common/analyzer/strtok-cppreference.c
+ 0198fd684e224cad3647e799760aecc9  gcc/testsuite/c-c++-common/analyzer/switch-enum-pr105273-git-vreportf-2.c
+ b76cb1d27db82d1b655fd7715d3a8b9a  gcc/testsuite/c-c++-common/analyzer/switch-wrong-enum.c
+ d36f5325a7e5fa9b8ac849be4b6b9226  gcc/testsuite/c-c++-common/analyzer/symbolic-1.c
+ 497d65717193be00194589f6c840e658  gcc/testsuite/c-c++-common/analyzer/symbolic-12.c
+ 2982a3481c63231cadba1329977640bd  gcc/testsuite/c-c++-common/analyzer/symbolic-2.c
+ 24d2d7b09cf8245a68dd00b36075e2cd  gcc/testsuite/c-c++-common/analyzer/symbolic-3.c
+ 784de898ae2196cc28e4405a23f94314  gcc/testsuite/c-c++-common/analyzer/symbolic-4.c
+ 8d8ebd7d911c51e682f6290fd9fca032  gcc/testsuite/c-c++-common/analyzer/symbolic-5.c
+ 2874e0dd4822b9e02d76d958c6b96223  gcc/testsuite/c-c++-common/analyzer/symbolic-6.c
+ c65116045ddccfc3f491c0a185fa75ea  gcc/testsuite/c-c++-common/analyzer/symbolic-7.c
+ 32609711c2e8949725877cdd45605fff  gcc/testsuite/c-c++-common/analyzer/symbolic-8.c
+ c2fcb94a2603dbbeaffe0f588f927e6d  gcc/testsuite/c-c++-common/analyzer/symbolic-gt-1.c
+ 0a95e52b337b6451feedf049daf4391a  gcc/testsuite/c-c++-common/analyzer/taint-alloc-3.c
+ 6e87afc5673ae20262e220886767a356  gcc/testsuite/c-c++-common/analyzer/taint-assert-BUG_ON.c
+ 86e51674ba773c6ee4e40340b9426dfe  gcc/testsuite/c-c++-common/analyzer/taint-divisor-2.c
+ 3bb40712dc19e9f4a8252502089ea73f  gcc/testsuite/c-c++-common/analyzer/taint-divisor-pr113619.c
+ cd3ec43b10b0bcd2be2665d2fc3b1570  gcc/testsuite/c-c++-common/analyzer/taint-index-pr106229.c
+ d4da70df696cd060b923bf542a7ddb33  gcc/testsuite/c-c++-common/analyzer/taint-merger.c
+ 142b7ecd00d0db6c2fd59f9e04c62c92  gcc/testsuite/c-c++-common/analyzer/taint-modulus-1.c
+ b62ddaf69bf220a37cab0873e709a1b8  gcc/testsuite/c-c++-common/analyzer/taint-realloc.c
+ 99429c9d75d55782747b0a4bfd4a43ed  gcc/testsuite/c-c++-common/analyzer/uninit-1.c
+ f3b04cae0253d04943b8e3a80f6609c3  gcc/testsuite/c-c++-common/analyzer/uninit-2.c
+ 5230c72c5072304c5579bb33f03c01e8  gcc/testsuite/c-c++-common/analyzer/uninit-3.c
+ 12770fc4b4e596f10d34f77417d0a681  gcc/testsuite/c-c++-common/analyzer/uninit-6.c
+ dc18b7f43ca34ba2bdcf1f2293ef3567  gcc/testsuite/c-c++-common/analyzer/uninit-6b.c
+ 60b6279b02ede62acce22b59a1ab91f6  gcc/testsuite/c-c++-common/analyzer/uninit-8.c
+ c55c9a8f27f81713b765bc677ecade4b  gcc/testsuite/c-c++-common/analyzer/uninit-alloca.c
+ 76c4fa43fef5c9ac975c951c831adb52  gcc/testsuite/c-c++-common/analyzer/uninit-pr104576.c
+ 29ba9a3ce1e65ae0d19ec63085e2d2ef  gcc/testsuite/c-c++-common/analyzer/uninit-pr106204.c
+ c98f8534d7e8d5036a05a97de1ee6199  gcc/testsuite/c-c++-common/analyzer/uninit-pr108704.c
+ 0a73adc6c0372f590401056893f940e5  gcc/testsuite/c-c++-common/analyzer/uninit-pr108806-qemu.c
+ 81482db162fbbce047b1a5ce58113366  gcc/testsuite/c-c++-common/analyzer/uninit-pr108968-register.c
+ 5f2be8cb83f9bed0a69e89484bb54b9f  gcc/testsuite/c-c++-common/analyzer/uninit-pr94713.c
+ 27bc9adec517c382409208e0208662ee  gcc/testsuite/c-c++-common/analyzer/uninit-pr94714.c
+ c1e2ec7b982a6c1d3f3d88277f0a5412  gcc/testsuite/c-c++-common/analyzer/unknown-fns-2.c
+ 9346d04a573f82a1a5d2aa442f8df654  gcc/testsuite/c-c++-common/analyzer/unknown-fns-3.c
+ 81481da5bab0e2c1f85b1504bcfab189  gcc/testsuite/c-c++-common/analyzer/unknown-fns-4.c
+ e660fefe331990592f06c3b2ba0dd30c  gcc/testsuite/c-c++-common/analyzer/untracked-2.c
+ 33bcbf1ef7e77468ac1cb0eceb5bb7b9  gcc/testsuite/c-c++-common/analyzer/unused-local-1.c
+ 376fb4403916477fbc28accfb5d269f1  gcc/testsuite/c-c++-common/analyzer/use-after-free-2.c
+ f11e97b1fc5ab33807c3c2d2087970e8  gcc/testsuite/c-c++-common/analyzer/use-after-free-3.c
+ 268d34948669b97e22887b0f3bf297eb  gcc/testsuite/c-c++-common/analyzer/vasprintf-1.c
+ f35be136a336489f3bbba4138c71f464  gcc/testsuite/c-c++-common/analyzer/volatile-1.c
+ a833a6ad5ab9dc4df4c5628344367514  gcc/testsuite/c-c++-common/analyzer/vsnprintf-1.c
+ 21f9e2679d54cc3e89a736bb45b6003d  gcc/testsuite/c-c++-common/analyzer/write-to-const-1.c
+ 259cbbbefa0a9046ba4bd63ad3d99430  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-1.c
+ a5e594e65dc9287b46c43c7628de6830  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-4-disabled.c
+ 6661b81049a9d213e962195ff4c8d0ec  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-4.c
+ 392782a1d8d7111a088f25c5416fe814  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-5.c
+ 838b90b78b8ec4ed64b4613806941236  gcc/testsuite/c-c++-common/analyzer/zlib-1.c
+ 57902d5ce798d9c34760d0ab62f511a0  gcc/testsuite/c-c++-common/analyzer/zlib-2.c
+ df72c008ff04db0cf35cc53f456d09e9  gcc/testsuite/c-c++-common/analyzer/zlib-4.c
+ 8c05b90cc0edbdbdb87d92a6ed796f4c  gcc/testsuite/c-c++-common/analyzer/zlib-5.c
  f39ce0b617da5fc9aba69733615ee0de  gcc/testsuite/c-c++-common/array-1.c
  15b241020a9a5497396b58539b2405ba  gcc/testsuite/c-c++-common/array-5.c
  9073937bc2452a6045dd4f3c9bc2ce80  gcc/testsuite/c-c++-common/array-6.c
  b4d1bdfe48ad2f46a924717e65159b86  gcc/testsuite/c-c++-common/array-init.c
! 521f2b6a97997fca0bffc6e12cb3a058  gcc/testsuite/c-c++-common/array-lit.c
  cc33621f0af40932dc13ca0bff4d3557  gcc/testsuite/c-c++-common/asan/aggressive-opts.c
  72de90fafd160e4a777ef19bc09ff0d7  gcc/testsuite/c-c++-common/asan/alloca_big_alignment.c
  2bb6049bc37ecb2ca6971011cbefcc2a  gcc/testsuite/c-c++-common/asan/alloca_detect_custom_size.c
*************** e9ac694e62021365bb12134eac0ea1b3  gcc/te
*** 10648,10654 ****
  9d719540480f24017a08403b775b3ccd  gcc/testsuite/c-c++-common/asan/kasan-alloca-2.c
  7d6a8668da9be8e1c34c69f4cbea9508  gcc/testsuite/c-c++-common/asan/kasan-recover-1.c
  b6fba65be56233636391b792d7776a15  gcc/testsuite/c-c++-common/asan/kasan-recover-2.c
! 9d15e9816094bdb29c3cbfab87547979  gcc/testsuite/c-c++-common/asan/memcmp-1.c
  1607b2f88b8139c3bc2645aebffbe6bf  gcc/testsuite/c-c++-common/asan/memcmp-2.c
  11dbf4231551cd47fc06aadbd971a2ff  gcc/testsuite/c-c++-common/asan/misalign-1.c
  b7d8c6d2bcb21a1f7e5b1b1ae09c6681  gcc/testsuite/c-c++-common/asan/misalign-2.c
--- 11621,11627 ----
  9d719540480f24017a08403b775b3ccd  gcc/testsuite/c-c++-common/asan/kasan-alloca-2.c
  7d6a8668da9be8e1c34c69f4cbea9508  gcc/testsuite/c-c++-common/asan/kasan-recover-1.c
  b6fba65be56233636391b792d7776a15  gcc/testsuite/c-c++-common/asan/kasan-recover-2.c
! 72f6f2690a823ea1990719e9a6faa77d  gcc/testsuite/c-c++-common/asan/memcmp-1.c
  1607b2f88b8139c3bc2645aebffbe6bf  gcc/testsuite/c-c++-common/asan/memcmp-2.c
  11dbf4231551cd47fc06aadbd971a2ff  gcc/testsuite/c-c++-common/asan/misalign-1.c
  b7d8c6d2bcb21a1f7e5b1b1ae09c6681  gcc/testsuite/c-c++-common/asan/misalign-2.c
*************** f040c23b54cf32adff7b8ed8f739fb60  gcc/te
*** 10673,10679 ****
  db4942fb1e6237d8999cbd7befad36c5  gcc/testsuite/c-c++-common/asan/no-redundant-odr-indicators-1.c
  d96e86e0b770414e72de009b6c7afadd  gcc/testsuite/c-c++-common/asan/no-use-after-return.c
  b40632dc7412e10c338cdcc965f676bc  gcc/testsuite/c-c++-common/asan/null-deref-1.c
! 59906ecf875395218548e49754288ce9  gcc/testsuite/c-c++-common/asan/pointer-compare-1.c
  7b3d7827b76153028c59412c76979a9a  gcc/testsuite/c-c++-common/asan/pointer-compare-2.c
  9c368a814bd51803559b20c95cbb2ca4  gcc/testsuite/c-c++-common/asan/pointer-compare-3.c
  3d53127b19faa90799f41b902bed87ab  gcc/testsuite/c-c++-common/asan/pointer-subtract-1.c
--- 11646,11652 ----
  db4942fb1e6237d8999cbd7befad36c5  gcc/testsuite/c-c++-common/asan/no-redundant-odr-indicators-1.c
  d96e86e0b770414e72de009b6c7afadd  gcc/testsuite/c-c++-common/asan/no-use-after-return.c
  b40632dc7412e10c338cdcc965f676bc  gcc/testsuite/c-c++-common/asan/null-deref-1.c
! 7fb10c179a664e1e40d01b1800956b24  gcc/testsuite/c-c++-common/asan/pointer-compare-1.c
  7b3d7827b76153028c59412c76979a9a  gcc/testsuite/c-c++-common/asan/pointer-compare-2.c
  9c368a814bd51803559b20c95cbb2ca4  gcc/testsuite/c-c++-common/asan/pointer-compare-3.c
  3d53127b19faa90799f41b902bed87ab  gcc/testsuite/c-c++-common/asan/pointer-subtract-1.c
*************** b71437991ec944059c8eab89238b375e  gcc/te
*** 10684,10690 ****
  348a6cb46100b5290f9a4a26fcd15872  gcc/testsuite/c-c++-common/asan/pointer-subtract-6.c
  418bb97e42059c30459b53c6b783f7a7  gcc/testsuite/c-c++-common/asan/pointer-subtract-7.c
  cc00a3c5a3fe4188220028449567b571  gcc/testsuite/c-c++-common/asan/pointer-subtract-8.c
! 27a23ff6a864a5329615ef5ebf3f7059  gcc/testsuite/c-c++-common/asan/pr106558.c
  9a0dd3dcef02945c8967f40a29316496  gcc/testsuite/c-c++-common/asan/pr56330.c
  202bae43b2843228776d43c8d07c92c8  gcc/testsuite/c-c++-common/asan/pr59029.c
  65128b17436f6406d9e224257030e000  gcc/testsuite/c-c++-common/asan/pr59063-1.c
--- 11657,11663 ----
  348a6cb46100b5290f9a4a26fcd15872  gcc/testsuite/c-c++-common/asan/pointer-subtract-6.c
  418bb97e42059c30459b53c6b783f7a7  gcc/testsuite/c-c++-common/asan/pointer-subtract-7.c
  cc00a3c5a3fe4188220028449567b571  gcc/testsuite/c-c++-common/asan/pointer-subtract-8.c
! d89ff70e1d21d4c436a2561d33888f83  gcc/testsuite/c-c++-common/asan/pr106558.c
  9a0dd3dcef02945c8967f40a29316496  gcc/testsuite/c-c++-common/asan/pr56330.c
  202bae43b2843228776d43c8d07c92c8  gcc/testsuite/c-c++-common/asan/pr59029.c
  65128b17436f6406d9e224257030e000  gcc/testsuite/c-c++-common/asan/pr59063-1.c
*************** b997527b1b8cef295d289fc1956dfe2a  gcc/te
*** 10714,10720 ****
  40dc4b3092482d9427dfbc9415f0b0a8  gcc/testsuite/c-c++-common/asan/red-align-2.c
  8940936501084c6e4d7f6d110ba612d8  gcc/testsuite/c-c++-common/asan/rlimit-mmap-test-1.c
  923bfc360c93f6388d9a63864ac0789b  gcc/testsuite/c-c++-common/asan/sanitize-all-1.c
! a21b32c9f479778db8395e7fac76837f  gcc/testsuite/c-c++-common/asan/sanity-check-pure-c-1.c
  53415ea63fb9592d7d201b142430f580  gcc/testsuite/c-c++-common/asan/shadow-offset-1.c
  a9fb6d989eff5e97f0875a8f4a6476df  gcc/testsuite/c-c++-common/asan/sleep-before-dying-1.c
  4b0947a16bf112bb03aedc70b04ae51c  gcc/testsuite/c-c++-common/asan/stack-overflow-1.c
--- 11687,11693 ----
  40dc4b3092482d9427dfbc9415f0b0a8  gcc/testsuite/c-c++-common/asan/red-align-2.c
  8940936501084c6e4d7f6d110ba612d8  gcc/testsuite/c-c++-common/asan/rlimit-mmap-test-1.c
  923bfc360c93f6388d9a63864ac0789b  gcc/testsuite/c-c++-common/asan/sanitize-all-1.c
! 0ce558c57083c624a37f9bc1882bf8af  gcc/testsuite/c-c++-common/asan/sanity-check-pure-c-1.c
  53415ea63fb9592d7d201b142430f580  gcc/testsuite/c-c++-common/asan/shadow-offset-1.c
  a9fb6d989eff5e97f0875a8f4a6476df  gcc/testsuite/c-c++-common/asan/sleep-before-dying-1.c
  4b0947a16bf112bb03aedc70b04ae51c  gcc/testsuite/c-c++-common/asan/stack-overflow-1.c
*************** aecf8808dcce2f2171e6ff35d91b4e01  gcc/te
*** 10752,10757 ****
--- 11725,11731 ----
  1fe056301e1358a5a84901dc70b18ff6  gcc/testsuite/c-c++-common/attr-nonstring-6.c
  86ea749bcbbf7e6b48a29eb97f3481f0  gcc/testsuite/c-c++-common/attr-nonstring-7.c
  a64bfafada3fcdd3081bfa50b0677966  gcc/testsuite/c-c++-common/attr-nonstring-8.c
+ c06eb88500df288f11f2993300d78bfe  gcc/testsuite/c-c++-common/attr-null_terminated_string_arg.c
  98687838cf46c8c28ee0ab7af818dc38  gcc/testsuite/c-c++-common/attr-opt-1.c
  8d1dd31ffd75e182c35879b275b838f6  gcc/testsuite/c-c++-common/attr-retain-1.c
  dbadc777f6538f0c9769931967284aa7  gcc/testsuite/c-c++-common/attr-retain-10.c
*************** b92163ecc65b967a1ace1294db1ac938  gcc/te
*** 10808,10813 ****
--- 11782,11788 ----
  563de839d84e990d18f755b18712b764  gcc/testsuite/c-c++-common/builtin-arith-overflow-2.c
  edbcc39f20e5248e2b957a28e01fee51  gcc/testsuite/c-c++-common/builtin-arith-overflow-3.c
  29addeec3c750c9f563a87b82013d69e  gcc/testsuite/c-c++-common/builtin-assoc-barrier-1.c
+ 05fb6d875f8327310c94ca0a89b53886  gcc/testsuite/c-c++-common/builtin-classify-type-1.c
  16488560f51c9fbb0acea48f3f246dd7  gcc/testsuite/c-c++-common/builtin-clear-padding-1.c
  05a22e0270d8d2693bab4092ee6a1edc  gcc/testsuite/c-c++-common/builtin-clear-padding-2.c
  0ba3f576ed243d50b6d6f59a8e9daa19  gcc/testsuite/c-c++-common/builtin-clear-padding-3.c
*************** edbcc39f20e5248e2b957a28e01fee51  gcc/te
*** 10826,10832 ****
  ef95b2391ac4310fde10257ba4f7463b  gcc/testsuite/c-c++-common/builtin-shuffle-1.c
  e05263912b24ac871d65efa4a51d10ea  gcc/testsuite/c-c++-common/builtin-shufflevector-2.c
  3a349fcc5db93dcaf44a93c32735f04a  gcc/testsuite/c-c++-common/builtin_location.c
! 2341b1258f7e71f5aeb2fc1ac6a17b27  gcc/testsuite/c-c++-common/builtins.c
  a15893a996b14e9ab79c08a9d37157ee  gcc/testsuite/c-c++-common/cold-1.c
  856043e4093da5eee730f0219ccb9f99  gcc/testsuite/c-c++-common/cold-2.c
  fc20dcb635dd1e825303cc47593a9155  gcc/testsuite/c-c++-common/conflict-markers-1.c
--- 11801,11807 ----
  ef95b2391ac4310fde10257ba4f7463b  gcc/testsuite/c-c++-common/builtin-shuffle-1.c
  e05263912b24ac871d65efa4a51d10ea  gcc/testsuite/c-c++-common/builtin-shufflevector-2.c
  3a349fcc5db93dcaf44a93c32735f04a  gcc/testsuite/c-c++-common/builtin_location.c
! 205dae0d408daf2fa5ebf5fa2b945722  gcc/testsuite/c-c++-common/builtins.c
  a15893a996b14e9ab79c08a9d37157ee  gcc/testsuite/c-c++-common/cold-1.c
  856043e4093da5eee730f0219ccb9f99  gcc/testsuite/c-c++-common/cold-2.c
  fc20dcb635dd1e825303cc47593a9155  gcc/testsuite/c-c++-common/conflict-markers-1.c
*************** fe9ba880903f66a472e33ffd221fe3ee  gcc/te
*** 10844,10849 ****
--- 11819,11825 ----
  ffe803dd1d6571e5297ec04cfc1c4adf  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-1.c
  a1e90535bc74b54612f33869fbdd1191  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-2.c
  92866c1a20bedc78e756dd2271f9d11d  gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-3.c
+ 687c1e4592b3188bd13763778302028a  gcc/testsuite/c-c++-common/cpp/Wunknown-pragmas-1.c
  62a7104f94454920e2aea21e5d85503a  gcc/testsuite/c-c++-common/cpp/counter-2.c
  8685d36e43046dc3ae7ce373aa03821c  gcc/testsuite/c-c++-common/cpp/counter-3.c
  c1ad8045fa5ff78965e7e9224f86ee93  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-1.c
*************** b090341af8b5d9e1054e1c181b49de0d  gcc/te
*** 10854,10861 ****
--- 11830,11839 ----
  8c19a56e6dc4885880619af30aa033b8  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-6.c
  22531253762d0e337d9e77f7f7207100  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-7.c
  192545911c42ddd12e0c3f1f6b9e027d  gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-8.c
+ b194b95a7c8a94e9f21bdd4c1f564906  gcc/testsuite/c-c++-common/cpp/diagnostic-poison.c
  7df2c1d437a437ae20fe8cd33d071a1a  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-1.c
  da5e564f6cffb4d2f63384ba5d7351b1  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-2.c
+ 8135260e5e210166919ed6d24752ad37  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-3.c
  7e07a117bfa1cbd4313441da514b62a7  gcc/testsuite/c-c++-common/cpp/dir-only-1.c
  94f40e67e3617fd463bd2b73d2f6d54c  gcc/testsuite/c-c++-common/cpp/dir-only-1.h
  92a3350e430f3da6be21354b2cc4eb5d  gcc/testsuite/c-c++-common/cpp/dir-only-2.c
*************** bc23e7fea0a34a28d11356c984dbef26  gcc/te
*** 10885,10899 ****
  8e94c37617c184f7b783ccc14a832e5a  gcc/testsuite/c-c++-common/cpp/has-builtin.c
  37bbdbbf14bb30fbbe03791b2f676dd0  gcc/testsuite/c-c++-common/cpp/has-include-1-traditional.c
  63f74f9fe01b458a7f669b372a1d3acc  gcc/testsuite/c-c++-common/cpp/has-include-1.c
  531592f10d055837951d413baf4a7c33  gcc/testsuite/c-c++-common/cpp/has-include-next-1.c
  f886530357fac0e7bc06382bcf2120f9  gcc/testsuite/c-c++-common/cpp/line-1.c
! 0557dce35a2acf74358513e32435ab40  gcc/testsuite/c-c++-common/cpp/line-2.c
  876ace0217b7806955a4e72551b3afbc  gcc/testsuite/c-c++-common/cpp/line-2.h
! b32704485867004dc02650fac1c82802  gcc/testsuite/c-c++-common/cpp/line-3.c
  e4a82afc909a711b27adb1d72035a0f7  gcc/testsuite/c-c++-common/cpp/line-4.c
  b0dbf2ee0d65771fb476f1bead18e214  gcc/testsuite/c-c++-common/cpp/line-4.h
! ec867e7b9ed2db10d86511396a956702  gcc/testsuite/c-c++-common/cpp/macro-arg-count-1.c
  1ea6a04229ddcedf5e76f5218e8d0f3d  gcc/testsuite/c-c++-common/cpp/macro-arg-count-2.c
  0ffee7384c0f18a8548234a5f32d704b  gcc/testsuite/c-c++-common/cpp/macro-trace-1.c
  92e278890fa0451d83c7d27defae4895  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-1.c
  204b84f18b5fe895fe56d68b709a82c7  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-2.c
--- 11863,11882 ----
  8e94c37617c184f7b783ccc14a832e5a  gcc/testsuite/c-c++-common/cpp/has-builtin.c
  37bbdbbf14bb30fbbe03791b2f676dd0  gcc/testsuite/c-c++-common/cpp/has-include-1-traditional.c
  63f74f9fe01b458a7f669b372a1d3acc  gcc/testsuite/c-c++-common/cpp/has-include-1.c
+ 3d8adb8da88b722ba2090ec42fef95dd  gcc/testsuite/c-c++-common/cpp/has-include-2.c
+ 893038f4857c6fed21505b461bfd5781  gcc/testsuite/c-c++-common/cpp/has-include-2.h
  531592f10d055837951d413baf4a7c33  gcc/testsuite/c-c++-common/cpp/has-include-next-1.c
+ 24d5dab6704c718278896e0e7e2fefa6  gcc/testsuite/c-c++-common/cpp/has-include-next-2-dir/has-include-next-2.h
+ e90fb8c2050497ca181f90cd569c4d97  gcc/testsuite/c-c++-common/cpp/has-include-next-2.c
  f886530357fac0e7bc06382bcf2120f9  gcc/testsuite/c-c++-common/cpp/line-1.c
! 498650d94405e716977ffcd604ecc7f2  gcc/testsuite/c-c++-common/cpp/line-2.c
  876ace0217b7806955a4e72551b3afbc  gcc/testsuite/c-c++-common/cpp/line-2.h
! f40b0a3b7abee1253efdef9bef3a0b70  gcc/testsuite/c-c++-common/cpp/line-3.c
  e4a82afc909a711b27adb1d72035a0f7  gcc/testsuite/c-c++-common/cpp/line-4.c
  b0dbf2ee0d65771fb476f1bead18e214  gcc/testsuite/c-c++-common/cpp/line-4.h
! 559ecaf03ddd2ab939ae5182bbbd6a3f  gcc/testsuite/c-c++-common/cpp/macro-arg-count-1.c
  1ea6a04229ddcedf5e76f5218e8d0f3d  gcc/testsuite/c-c++-common/cpp/macro-arg-count-2.c
+ 162443c09391cec65dc4b07cba7a6225  gcc/testsuite/c-c++-common/cpp/macro-ranges.c
  0ffee7384c0f18a8548234a5f32d704b  gcc/testsuite/c-c++-common/cpp/macro-trace-1.c
  92e278890fa0451d83c7d27defae4895  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-1.c
  204b84f18b5fe895fe56d68b709a82c7  gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-2.c
*************** fb93693065e3e66c29a51aa146b3d3fa  gcc/te
*** 10914,10929 ****
  923955687c7d11dfef99d344ff0d96a4  gcc/testsuite/c-c++-common/cpp/pr108244-2.c
  c85025f0def783f70f9bb6a4ea9a23f3  gcc/testsuite/c-c++-common/cpp/pr45457.c
  50c40c5b8912ad75a2e46fd06778339d  gcc/testsuite/c-c++-common/cpp/pr57580.c
! 6b93142f33f13f29aa948ea5e779f1a0  gcc/testsuite/c-c++-common/cpp/pr58844-1.c
! 3315fddcc8176022dc266610d79f3ba4  gcc/testsuite/c-c++-common/cpp/pr58844-2.c
  4bb69916f59c91d0c3c7583ed1c0eb97  gcc/testsuite/c-c++-common/cpp/pr60400-1.h
  87d0240913bd5df7fe5938e4ab645f1f  gcc/testsuite/c-c++-common/cpp/pr60400-2.h
  6256ffd73a1cef9163b3da9b062f1310  gcc/testsuite/c-c++-common/cpp/pr60400.c
  1f4c21df8e953c03a1e56e665ab6624d  gcc/testsuite/c-c++-common/cpp/pr63831-1.c
  a72a693524249dca84528ebc132082b5  gcc/testsuite/c-c++-common/cpp/pr63831-2.c
  fc6312863e2a09e397690651369f617d  gcc/testsuite/c-c++-common/cpp/pr65238-1.c
  abbf11969659f50e6f3cef908d473f64  gcc/testsuite/c-c++-common/cpp/pr67046.c
  98b26af476c2ea78a482486746564d25  gcc/testsuite/c-c++-common/cpp/pr88974.c
  b9707fab2c32f9df25c7136a89dceeb4  gcc/testsuite/c-c++-common/cpp/pr91639-one.h
  c193497a1a06b2c72230e6146ff47080  gcc/testsuite/c-c++-common/cpp/pr91639-two.h
  63ccfcc2367b0c8566b11e28fb991851  gcc/testsuite/c-c++-common/cpp/pr91639.c
--- 11897,11916 ----
  923955687c7d11dfef99d344ff0d96a4  gcc/testsuite/c-c++-common/cpp/pr108244-2.c
  c85025f0def783f70f9bb6a4ea9a23f3  gcc/testsuite/c-c++-common/cpp/pr45457.c
  50c40c5b8912ad75a2e46fd06778339d  gcc/testsuite/c-c++-common/cpp/pr57580.c
! eff73d3df17e8342527c47aee668fc90  gcc/testsuite/c-c++-common/cpp/pr58844-1.c
! cc15eb517954aa29a1c57133705ca83b  gcc/testsuite/c-c++-common/cpp/pr58844-2.c
  4bb69916f59c91d0c3c7583ed1c0eb97  gcc/testsuite/c-c++-common/cpp/pr60400-1.h
  87d0240913bd5df7fe5938e4ab645f1f  gcc/testsuite/c-c++-common/cpp/pr60400-2.h
  6256ffd73a1cef9163b3da9b062f1310  gcc/testsuite/c-c++-common/cpp/pr60400.c
+ b5ad224e236fc4a36c19d3cfb71bb8da  gcc/testsuite/c-c++-common/cpp/pr61474-2.h
+ d7c73a487ec40c8f0189b7cda0611bcb  gcc/testsuite/c-c++-common/cpp/pr61474.c
+ 57c7a459da89f095a6eeac38d45e1e5b  gcc/testsuite/c-c++-common/cpp/pr61474.h
  1f4c21df8e953c03a1e56e665ab6624d  gcc/testsuite/c-c++-common/cpp/pr63831-1.c
  a72a693524249dca84528ebc132082b5  gcc/testsuite/c-c++-common/cpp/pr63831-2.c
  fc6312863e2a09e397690651369f617d  gcc/testsuite/c-c++-common/cpp/pr65238-1.c
  abbf11969659f50e6f3cef908d473f64  gcc/testsuite/c-c++-common/cpp/pr67046.c
  98b26af476c2ea78a482486746564d25  gcc/testsuite/c-c++-common/cpp/pr88974.c
+ e221e8f99fff0bbbe3c2eed0fdfdd97d  gcc/testsuite/c-c++-common/cpp/pr90400.c
  b9707fab2c32f9df25c7136a89dceeb4  gcc/testsuite/c-c++-common/cpp/pr91639-one.h
  c193497a1a06b2c72230e6146ff47080  gcc/testsuite/c-c++-common/cpp/pr91639-two.h
  63ccfcc2367b0c8566b11e28fb991851  gcc/testsuite/c-c++-common/cpp/pr91639.c
*************** b15ede4348fb88921443e477ccfed8c5  gcc/te
*** 10959,10965 ****
  94618958f4d9ed49970c723e5aed9ffd  gcc/testsuite/c-c++-common/cpp/warning-directive-4.c
  9f26ab0e1663587353727208a8b1fe9e  gcc/testsuite/c-c++-common/cpp/warning-zero-in-literals-1.c
  36dd0a2ab7ef169ecc90eb0e12535005  gcc/testsuite/c-c++-common/cpp/warning-zero-location-2.c
! f517ccd69d4612259fd415543074a1e1  gcc/testsuite/c-c++-common/cpp/warning-zero-location.c
  0fe3124dc7d47efc651433ee329a7a9e  gcc/testsuite/c-c++-common/cpp/wide-narrow-predef-macros.c
  e0679adbe0d4b1cebebea8c808d31d66  gcc/testsuite/c-c++-common/cxxbitfields-3.c
  8396e54be3fd4ced4b4e48c5c558f34f  gcc/testsuite/c-c++-common/cxxbitfields-6.c
--- 11946,11952 ----
  94618958f4d9ed49970c723e5aed9ffd  gcc/testsuite/c-c++-common/cpp/warning-directive-4.c
  9f26ab0e1663587353727208a8b1fe9e  gcc/testsuite/c-c++-common/cpp/warning-zero-in-literals-1.c
  36dd0a2ab7ef169ecc90eb0e12535005  gcc/testsuite/c-c++-common/cpp/warning-zero-location-2.c
! 47bdd5543fe2f2a8481c91bfd4bcc2c5  gcc/testsuite/c-c++-common/cpp/warning-zero-location.c
  0fe3124dc7d47efc651433ee329a7a9e  gcc/testsuite/c-c++-common/cpp/wide-narrow-predef-macros.c
  e0679adbe0d4b1cebebea8c808d31d66  gcc/testsuite/c-c++-common/cxxbitfields-3.c
  8396e54be3fd4ced4b4e48c5c558f34f  gcc/testsuite/c-c++-common/cxxbitfields-6.c
*************** b241f7a2fbec243eb4df2cf34083b4bb  gcc/te
*** 11036,11044 ****
  0e5b39973e0aa9b36833c555986e0bd2  gcc/testsuite/c-c++-common/dfp/pr31385.c
  de03ab7c4e9622376dec0a5fdf776226  gcc/testsuite/c-c++-common/dfp/pr33466.c
  c9123407c29a774521ebd7bcbedc7267  gcc/testsuite/c-c++-common/dfp/pr35620.c
! 41da3ed2f26e408b74ef0533b0fbd741  gcc/testsuite/c-c++-common/dfp/pr36800.c
! d05625d2e21826d2d6d10470ca58acf5  gcc/testsuite/c-c++-common/dfp/pr39034.c
! 8304d471411dcf8ad7044cbee85804fd  gcc/testsuite/c-c++-common/dfp/pr39035.c
  228bc580c2a735101390047780555fe4  gcc/testsuite/c-c++-common/dfp/pr39902.c
  6ee1875dd1db096571ce8980f70878de  gcc/testsuite/c-c++-common/dfp/pr39986.c
  ec9404dfa572066d29306781114781a5  gcc/testsuite/c-c++-common/dfp/signbit-1.c
--- 12023,12031 ----
  0e5b39973e0aa9b36833c555986e0bd2  gcc/testsuite/c-c++-common/dfp/pr31385.c
  de03ab7c4e9622376dec0a5fdf776226  gcc/testsuite/c-c++-common/dfp/pr33466.c
  c9123407c29a774521ebd7bcbedc7267  gcc/testsuite/c-c++-common/dfp/pr35620.c
! e6ff35f443a5c85eed2fdc229f8fa607  gcc/testsuite/c-c++-common/dfp/pr36800.c
! 9fe52fbe157fffa87d40bbbf7fd7bd8a  gcc/testsuite/c-c++-common/dfp/pr39034.c
! 13bf3f93acc8a63c6f7807d8c2948bc9  gcc/testsuite/c-c++-common/dfp/pr39035.c
  228bc580c2a735101390047780555fe4  gcc/testsuite/c-c++-common/dfp/pr39902.c
  6ee1875dd1db096571ce8980f70878de  gcc/testsuite/c-c++-common/dfp/pr39986.c
  ec9404dfa572066d29306781114781a5  gcc/testsuite/c-c++-common/dfp/signbit-1.c
*************** ec9404dfa572066d29306781114781a5  gcc/te
*** 11046,11058 ****
  b55d67c31827320a4218c9bfa118857d  gcc/testsuite/c-c++-common/dfp/struct-layout-1.c
  48d67f7f36d890f8419440d99f232731  gcc/testsuite/c-c++-common/dfp/usual-arith-conv-const.c
  c0e0d2f46bf19ec2b6f3291f97a1ac27  gcc/testsuite/c-c++-common/dfp/usual-arith-conv.c
! 984a1c8c602922c2de48d00783740125  gcc/testsuite/c-c++-common/diagnostic-format-json-1.c
! 71ccfbc19c485098132fc888d57d5090  gcc/testsuite/c-c++-common/diagnostic-format-json-2.c
! 47eb213385c528ba24a87a6e2f186c81  gcc/testsuite/c-c++-common/diagnostic-format-json-3.c
! a7b9e07d23c6427a01d23ab863342f6e  gcc/testsuite/c-c++-common/diagnostic-format-json-4.c
! 7fbe0cc64aa7d07496c725ebe19713d2  gcc/testsuite/c-c++-common/diagnostic-format-json-5.c
  996443d0fabc6adf05cf16b92f765f59  gcc/testsuite/c-c++-common/diagnostic-format-json-file-1.c
! da2b4e33e5e980a8daa6837265eecf2c  gcc/testsuite/c-c++-common/diagnostic-format-json-stderr-1.c
  6483737acd2b09472eb0b810ebe7c0c7  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-1.c
  e76f7da3b6ff122b724515225ddc93dc  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-2.c
  c9df2a60be9c299d6875bdd23d7a834e  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-3.c
--- 12033,12045 ----
  b55d67c31827320a4218c9bfa118857d  gcc/testsuite/c-c++-common/dfp/struct-layout-1.c
  48d67f7f36d890f8419440d99f232731  gcc/testsuite/c-c++-common/dfp/usual-arith-conv-const.c
  c0e0d2f46bf19ec2b6f3291f97a1ac27  gcc/testsuite/c-c++-common/dfp/usual-arith-conv.c
! e875feed3fbc0c6cae26a5abe73fc228  gcc/testsuite/c-c++-common/diagnostic-format-json-1.c
! 3d431c26ca20706b6d8fd7ca4bbffb24  gcc/testsuite/c-c++-common/diagnostic-format-json-2.c
! 1e998e17399e068819c47f49168322e3  gcc/testsuite/c-c++-common/diagnostic-format-json-3.c
! 20d4929d803c94e1e7030bc15d14b163  gcc/testsuite/c-c++-common/diagnostic-format-json-4.c
! 457d424c40ab9e4d35fa27b979a24ee1  gcc/testsuite/c-c++-common/diagnostic-format-json-5.c
  996443d0fabc6adf05cf16b92f765f59  gcc/testsuite/c-c++-common/diagnostic-format-json-file-1.c
! 2db91f68d9841551bdb688cd339de968  gcc/testsuite/c-c++-common/diagnostic-format-json-stderr-1.c
  6483737acd2b09472eb0b810ebe7c0c7  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-1.c
  e76f7da3b6ff122b724515225ddc93dc  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-2.c
  c9df2a60be9c299d6875bdd23d7a834e  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-3.c
*************** bc7567f6dad9c6310388c5b03041c3c6  gcc/te
*** 11061,11066 ****
--- 12048,12056 ----
  05ec2175ea6dd97bff8a07761d24df05  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c
  eb3b3149b2a64707ddb3ffcb96b11775  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-2.c
  943c6c886af57e82d1f9be77c286f4a3  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c
+ bcf401329f2fa4c728549b6768f24559  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-pr111700.c
+ 813fee682143a0cfed3586e75887f7bd  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-timevars-1.c
+ b0c20bcb1205885415e77d5fe7d23a24  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-timevars-2.c
  0e87aea25cd7b234e81d5f1ee31d1e21  gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-valid-CP850.c
  7ba00026f4502cec45f9e81640ab2978  gcc/testsuite/c-c++-common/diagnostic-units-1.c
  a3932920c58cae162a8f51b19ff5c460  gcc/testsuite/c-c++-common/diagnostic-units-2.c
*************** b402d83321951214957997b5dc7304fe  gcc/te
*** 11085,11102 ****
--- 12075,12114 ----
  52b0190fdffe815d5a577c82fa3f470b  gcc/testsuite/c-c++-common/dump-ada-spec-7.c
  949aa0a68a7d58861579ce42098799b0  gcc/testsuite/c-c++-common/dump-ada-spec-8.c
  8114046594c3886d46da8021b7ebf46a  gcc/testsuite/c-c++-common/dump-ada-spec-9.c
+ f1df0df2ad7a7c91bdb960cb2299854f  gcc/testsuite/c-c++-common/dwarf2/pr113918.c
  022f27c0791fa6cda422c4471a77b995  gcc/testsuite/c-c++-common/dwarf2/pr43190.c
  ec4d1b894c02e9b5b427541048ae2fae  gcc/testsuite/c-c++-common/dwarf2/pr83550.c
  0b4cca49ee429e207515197a5e44ab19  gcc/testsuite/c-c++-common/dwarf2/vla1.c
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/c-c++-common/empty.h
  a2904e36f4beedc148948a7e131c1ad8  gcc/testsuite/c-c++-common/fcf-protection-1.c
+ 5c6937e9b12fd38b446d69539264c8a4  gcc/testsuite/c-c++-common/fcf-protection-10.c
+ fe40dbd1439fc2f3acb6e6fc7c09857c  gcc/testsuite/c-c++-common/fcf-protection-11.c
+ 9c9db31f6fd631b02a6750f20ac3e031  gcc/testsuite/c-c++-common/fcf-protection-12.c
  d96b46ab8b01f2a0b9a494f5465a7bcc  gcc/testsuite/c-c++-common/fcf-protection-2.c
  a9d134cf51ea89bfa1cddf566cef9719  gcc/testsuite/c-c++-common/fcf-protection-3.c
  e2b40bf7849aef62ef510d4f0dcb9333  gcc/testsuite/c-c++-common/fcf-protection-4.c
  90cfa05722a9b8b6cda701a01a6d5d76  gcc/testsuite/c-c++-common/fcf-protection-5.c
  d96b46ab8b01f2a0b9a494f5465a7bcc  gcc/testsuite/c-c++-common/fcf-protection-6.c
  a9d134cf51ea89bfa1cddf566cef9719  gcc/testsuite/c-c++-common/fcf-protection-7.c
+ 0529456523cbd867abc7a3cc29be6453  gcc/testsuite/c-c++-common/fcf-protection-8.c
+ 2e3923f154a659f0af49b79512639ffb  gcc/testsuite/c-c++-common/fcf-protection-9.c
  974779861f664167d947e1c8442c6959  gcc/testsuite/c-c++-common/ffile-prefix-map.c
+ 8622cc7bba457fd3041104c437b75b5f  gcc/testsuite/c-c++-common/fhardened-1.S
+ 0bada1b23f5f48ce43ce63ccb3f291e7  gcc/testsuite/c-c++-common/fhardened-1.c
+ cf50e8c5cbab5343fa4eb390738d9cfa  gcc/testsuite/c-c++-common/fhardened-10.c
+ c947aa1374b02237e473f44439370de5  gcc/testsuite/c-c++-common/fhardened-11.c
+ 319c3ca2791a5e5cb27004470c26b0f5  gcc/testsuite/c-c++-common/fhardened-12.c
+ 1cadcee506edea681addead6bbe56db3  gcc/testsuite/c-c++-common/fhardened-13.c
+ b818d7f4eb0092cf00e5b50a6f11ec33  gcc/testsuite/c-c++-common/fhardened-14.c
+ e563ba96fe7f554fa942b9abac97e88d  gcc/testsuite/c-c++-common/fhardened-15.c
+ 76c6e5a6db642238d7da0252ca4af663  gcc/testsuite/c-c++-common/fhardened-2.c
+ d05d77dd5edb8c1edddcf964a24445ee  gcc/testsuite/c-c++-common/fhardened-3.c
+ 77699058e4ee32e58ef5461980e98362  gcc/testsuite/c-c++-common/fhardened-4.c
+ 319c3ca2791a5e5cb27004470c26b0f5  gcc/testsuite/c-c++-common/fhardened-5.c
+ 54414b0405eedb1f9a7eefeb50ac1488  gcc/testsuite/c-c++-common/fhardened-6.c
+ 637342c7d63d90cb42176be52a96292d  gcc/testsuite/c-c++-common/fhardened-7.c
+ 8b4506b150d26ddaa02198b8a6981072  gcc/testsuite/c-c++-common/fhardened-8.c
+ af9aed543dc82dc5c050eda2e91ad6b9  gcc/testsuite/c-c++-common/fhardened-9.c
  3c5ce3494ca363652252f8ad6c6a1eb8  gcc/testsuite/c-c++-common/fmacro-prefix-map.c
  2c5d9deba5caa0aecc0b9e862249f455  gcc/testsuite/c-c++-common/fmax-errors.c
  f4eb480d84c0d74ec37a6a42e4f034f6  gcc/testsuite/c-c++-common/fold-bitand-4.c
*************** b13e8801f9d977c13a72c002dd2c5a6d  gcc/te
*** 11110,11116 ****
  0c724489142a5ed4513ada6ff6ebaea9  gcc/testsuite/c-c++-common/goacc-gomp/pr93465-1.c
  318406ae2dc40af036abc40c46d96836  gcc/testsuite/c-c++-common/goacc/Wparentheses-1.c
  38804e577c485537958c84fd18a8c36d  gcc/testsuite/c-c++-common/goacc/acc-icf.c
! 8260c137601a88121ec2c63d0df63ff6  gcc/testsuite/c-c++-common/goacc/asyncwait-1.c
  d426111516a83fc5f035da114398322c  gcc/testsuite/c-c++-common/goacc/asyncwait-5.c
  a2cd1716ba4f647ad86a615b0dd86f7e  gcc/testsuite/c-c++-common/goacc/atomic.c
  063beec82d4803f5428815adff355071  gcc/testsuite/c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c
--- 12122,12128 ----
  0c724489142a5ed4513ada6ff6ebaea9  gcc/testsuite/c-c++-common/goacc-gomp/pr93465-1.c
  318406ae2dc40af036abc40c46d96836  gcc/testsuite/c-c++-common/goacc/Wparentheses-1.c
  38804e577c485537958c84fd18a8c36d  gcc/testsuite/c-c++-common/goacc/acc-icf.c
! 400443740bcbd90b6eda42f14ddb292c  gcc/testsuite/c-c++-common/goacc/asyncwait-1.c
  d426111516a83fc5f035da114398322c  gcc/testsuite/c-c++-common/goacc/asyncwait-5.c
  a2cd1716ba4f647ad86a615b0dd86f7e  gcc/testsuite/c-c++-common/goacc/atomic.c
  063beec82d4803f5428815adff355071  gcc/testsuite/c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c
*************** e2f344cd915053e478d1463a2ad67a70  gcc/te
*** 11127,11153 ****
  65c423f9b41b6cffd057a8939b4181f6  gcc/testsuite/c-c++-common/goacc/classify-routine-nohost.c
  279369dd84a9fbef34f83dc3aca28a00  gcc/testsuite/c-c++-common/goacc/classify-routine.c
  bc31e2ca37f62f8f279d15468976e7b5  gcc/testsuite/c-c++-common/goacc/classify-serial.c
! ed0df84115a0f8b333602804bdee2a95  gcc/testsuite/c-c++-common/goacc/clauses-fail.c
! 8bfd01f209498815723e71000488572c  gcc/testsuite/c-c++-common/goacc/collapse-1.c
  a29008ff83202ed302993eae2ce59225  gcc/testsuite/c-c++-common/goacc/collapse-2.c
  ca2517a3cc3cd3ae7a63df0a68ad4598  gcc/testsuite/c-c++-common/goacc/combined-directives-2.c
  c4d8a118d81caeb284f473723a6b890f  gcc/testsuite/c-c++-common/goacc/combined-directives-3.c
  6a3920d3728f9ade384ff4fd7f3a5d2c  gcc/testsuite/c-c++-common/goacc/combined-directives.c
  c68fccfb3ff8b00b01d51396677c6d59  gcc/testsuite/c-c++-common/goacc/combined-reduction.c
  6ff2b7486e948a4634adb071ea7906c0  gcc/testsuite/c-c++-common/goacc/data-1.c
! 3723e03d13b0b843a30211fff8a058f5  gcc/testsuite/c-c++-common/goacc/data-2.c
  8303b2d602314b7af0f96f923e175484  gcc/testsuite/c-c++-common/goacc/data-clause-1.c
  df0c5b2a3f8fd74e59ef06f3c576902b  gcc/testsuite/c-c++-common/goacc/data-clause-2.c
  84f08e112686de908716edd944c7dc5b  gcc/testsuite/c-c++-common/goacc/data-clause-duplicate-1.c
! 9002f93f9316611a4bf82150a101d933  gcc/testsuite/c-c++-common/goacc/declare-1.c
! 49a1e1e29de03de0f3ad515f0e13524f  gcc/testsuite/c-c++-common/goacc/declare-2.c
  fbee36d1c4d6ed4bfdee66194ad75772  gcc/testsuite/c-c++-common/goacc/declare-pr90861.c
  229bed5ef7072db0fa428c10c115e33d  gcc/testsuite/c-c++-common/goacc/declare-pr94120.c
  17b63246fd51599bad2716165cbcff0d  gcc/testsuite/c-c++-common/goacc/default-1.c
  8e4b3f87057e886c28e0ca3244adec22  gcc/testsuite/c-c++-common/goacc/default-2.c
! 7d7b279607b90403d1fc926ab594dc28  gcc/testsuite/c-c++-common/goacc/default-3.c
! d6dca572326bd0b24e648f6d079d7dfa  gcc/testsuite/c-c++-common/goacc/default-4.c
! 9beacbe9e9851f3ce9072a448d99e521  gcc/testsuite/c-c++-common/goacc/default-5.c
  791c407a38c6166f9b89d51f465e88af  gcc/testsuite/c-c++-common/goacc/deviceptr-1.c
  1e678e7e2c101c79192a640cd4d2e407  gcc/testsuite/c-c++-common/goacc/deviceptr-2.c
  b2061cbe48e6c36be03418229b1e6c1c  gcc/testsuite/c-c++-common/goacc/deviceptr-3.c
--- 12139,12165 ----
  65c423f9b41b6cffd057a8939b4181f6  gcc/testsuite/c-c++-common/goacc/classify-routine-nohost.c
  279369dd84a9fbef34f83dc3aca28a00  gcc/testsuite/c-c++-common/goacc/classify-routine.c
  bc31e2ca37f62f8f279d15468976e7b5  gcc/testsuite/c-c++-common/goacc/classify-serial.c
! 12f57fec0efb4794655427a484e0ba7c  gcc/testsuite/c-c++-common/goacc/clauses-fail.c
! cf5ecc8bc452e7b741b7532858d5e0fe  gcc/testsuite/c-c++-common/goacc/collapse-1.c
  a29008ff83202ed302993eae2ce59225  gcc/testsuite/c-c++-common/goacc/collapse-2.c
  ca2517a3cc3cd3ae7a63df0a68ad4598  gcc/testsuite/c-c++-common/goacc/combined-directives-2.c
  c4d8a118d81caeb284f473723a6b890f  gcc/testsuite/c-c++-common/goacc/combined-directives-3.c
  6a3920d3728f9ade384ff4fd7f3a5d2c  gcc/testsuite/c-c++-common/goacc/combined-directives.c
  c68fccfb3ff8b00b01d51396677c6d59  gcc/testsuite/c-c++-common/goacc/combined-reduction.c
  6ff2b7486e948a4634adb071ea7906c0  gcc/testsuite/c-c++-common/goacc/data-1.c
! d5d5af24e4793fb1e9298a4ba6060015  gcc/testsuite/c-c++-common/goacc/data-2.c
  8303b2d602314b7af0f96f923e175484  gcc/testsuite/c-c++-common/goacc/data-clause-1.c
  df0c5b2a3f8fd74e59ef06f3c576902b  gcc/testsuite/c-c++-common/goacc/data-clause-2.c
  84f08e112686de908716edd944c7dc5b  gcc/testsuite/c-c++-common/goacc/data-clause-duplicate-1.c
! df5a4b39ef7dcc3e7884ba93f68ac8fc  gcc/testsuite/c-c++-common/goacc/declare-1.c
! 5daae4226662867648597d7cf7b262d2  gcc/testsuite/c-c++-common/goacc/declare-2.c
  fbee36d1c4d6ed4bfdee66194ad75772  gcc/testsuite/c-c++-common/goacc/declare-pr90861.c
  229bed5ef7072db0fa428c10c115e33d  gcc/testsuite/c-c++-common/goacc/declare-pr94120.c
  17b63246fd51599bad2716165cbcff0d  gcc/testsuite/c-c++-common/goacc/default-1.c
  8e4b3f87057e886c28e0ca3244adec22  gcc/testsuite/c-c++-common/goacc/default-2.c
! ac0281f09c0d819b2687d6dec5fa6a92  gcc/testsuite/c-c++-common/goacc/default-3.c
! cf4a4c53a3deea0d00ed7478855bf678  gcc/testsuite/c-c++-common/goacc/default-4.c
! 7fa6c60db037b47188f63245bb1df130  gcc/testsuite/c-c++-common/goacc/default-5.c
  791c407a38c6166f9b89d51f465e88af  gcc/testsuite/c-c++-common/goacc/deviceptr-1.c
  1e678e7e2c101c79192a640cd4d2e407  gcc/testsuite/c-c++-common/goacc/deviceptr-2.c
  b2061cbe48e6c36be03418229b1e6c1c  gcc/testsuite/c-c++-common/goacc/deviceptr-3.c
*************** b2061cbe48e6c36be03418229b1e6c1c  gcc/te
*** 11157,11165 ****
  34c5b5c7d6bece7da5df209b5e5b9dbb  gcc/testsuite/c-c++-common/goacc/finalize-1.c
  ee2c56a8648c3d2971c138604ce265a2  gcc/testsuite/c-c++-common/goacc/firstprivate-mappings-1.c
  c7a7080eb3718456e352647005144afe  gcc/testsuite/c-c++-common/goacc/host_data-1.c
! d77fd6ebff8fb0a959f82a4fb9de022e  gcc/testsuite/c-c++-common/goacc/host_data-2.c
! f5740839231c8e8304cea75d03b7fb0b  gcc/testsuite/c-c++-common/goacc/if-clause-1.c
! c5545c53ad57c8cd77914272ce63cef3  gcc/testsuite/c-c++-common/goacc/if-clause-2.c
  35214a1f58c7ba1873cf8c89c85258dd  gcc/testsuite/c-c++-common/goacc/kernels-1.c
  e2a6a7ea3514aa716297087affe838f6  gcc/testsuite/c-c++-common/goacc/kernels-alias-2.c
  32c2fd7fd331413c4271e2034798b5fc  gcc/testsuite/c-c++-common/goacc/kernels-alias-3.c
--- 12169,12177 ----
  34c5b5c7d6bece7da5df209b5e5b9dbb  gcc/testsuite/c-c++-common/goacc/finalize-1.c
  ee2c56a8648c3d2971c138604ce265a2  gcc/testsuite/c-c++-common/goacc/firstprivate-mappings-1.c
  c7a7080eb3718456e352647005144afe  gcc/testsuite/c-c++-common/goacc/host_data-1.c
! b7335f0ba13daf3819ec3c7284581ab8  gcc/testsuite/c-c++-common/goacc/host_data-2.c
! af6f402cd44028ad3dbc2c17b6d130ea  gcc/testsuite/c-c++-common/goacc/if-clause-1.c
! d46e5907cd450b0f96c98bf94b0cc536  gcc/testsuite/c-c++-common/goacc/if-clause-2.c
  35214a1f58c7ba1873cf8c89c85258dd  gcc/testsuite/c-c++-common/goacc/kernels-1.c
  e2a6a7ea3514aa716297087affe838f6  gcc/testsuite/c-c++-common/goacc/kernels-alias-2.c
  32c2fd7fd331413c4271e2034798b5fc  gcc/testsuite/c-c++-common/goacc/kernels-alias-3.c
*************** e2a6a7ea3514aa716297087affe838f6  gcc/te
*** 11167,11173 ****
  ec3ffe9a8e4715f9d3b6d04cc7349632  gcc/testsuite/c-c++-common/goacc/kernels-alias-5.c
  3c89c1e0d95fb4f33562e9b7d8f26b5a  gcc/testsuite/c-c++-common/goacc/kernels-alias-6.c
  010520cb65564a4d628a3efd8f5309cd  gcc/testsuite/c-c++-common/goacc/kernels-alias-7.c
! 0a7d6157a17763d46d948eed182962aa  gcc/testsuite/c-c++-common/goacc/kernels-alias-8.c
  b3c20783edf8490b5b8bac932315ae0c  gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta-2.c
  7acf9940330af3f540ef895653dbff42  gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta-3.c
  96a946ab7b1b8f779a76ef11cbc47bd9  gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta-4.c
--- 12179,12185 ----
  ec3ffe9a8e4715f9d3b6d04cc7349632  gcc/testsuite/c-c++-common/goacc/kernels-alias-5.c
  3c89c1e0d95fb4f33562e9b7d8f26b5a  gcc/testsuite/c-c++-common/goacc/kernels-alias-6.c
  010520cb65564a4d628a3efd8f5309cd  gcc/testsuite/c-c++-common/goacc/kernels-alias-7.c
! 49234584e9dc67d0a0afde9731b57e54  gcc/testsuite/c-c++-common/goacc/kernels-alias-8.c
  b3c20783edf8490b5b8bac932315ae0c  gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta-2.c
  7acf9940330af3f540ef895653dbff42  gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta-3.c
  96a946ab7b1b8f779a76ef11cbc47bd9  gcc/testsuite/c-c++-common/goacc/kernels-alias-ipa-pta-4.c
*************** fcf3a663cb7ac512b361f5677f5a6fc1  gcc/te
*** 11260,11265 ****
--- 12272,12278 ----
  a36d137c61c91eebafe06b69005ed065  gcc/testsuite/c-c++-common/goacc/privatization-1-compute.c
  d901676912c84b1538b682b98df630ac  gcc/testsuite/c-c++-common/goacc/privatization-1-routine_gang-loop.c
  fdeb18440623ddebb1218a2b4b499f03  gcc/testsuite/c-c++-common/goacc/privatization-1-routine_gang.c
+ 6fc231d62356d29577321237adcdd629  gcc/testsuite/c-c++-common/goacc/readonly-1.c
  4331391e656c6687b80ca7ee79b21e73  gcc/testsuite/c-c++-common/goacc/reduction-1.c
  092e43f68f7f9d80d1358ca7dc48cb59  gcc/testsuite/c-c++-common/goacc/reduction-2.c
  5ff7f03babb3159e96873f29fbebc584  gcc/testsuite/c-c++-common/goacc/reduction-3.c
*************** b49c7784b16fec25d9d63dff65b06085  gcc/te
*** 11283,11291 ****
  71ff1b7541d8c733624f242976e1b747  gcc/testsuite/c-c++-common/goacc/sb-1.c
  1dde0d0d526302b12c8c22cfe846ddc1  gcc/testsuite/c-c++-common/goacc/sb-2.c
  2e25fe0594ffb9e9a8f935be5d6e9cfa  gcc/testsuite/c-c++-common/goacc/sb-3.c
  a1aa94a6909f8f48d857ad5a9cd45b61  gcc/testsuite/c-c++-common/goacc/struct-component-kind-1.c
  94af55a13b250c49ee388c813dd285e5  gcc/testsuite/c-c++-common/goacc/struct-enter-exit-data-1.c
! 5109f14e1fb05cda829d216ab6c5a02f  gcc/testsuite/c-c++-common/goacc/tile-2.c
  a140f15e3d552040b8f3c805cd73f542  gcc/testsuite/c-c++-common/goacc/tile.c
  4f12915b0be66791d61798f30094289c  gcc/testsuite/c-c++-common/goacc/uninit-copy-clause.c
  62ebb0e0b12fea8a81543951d20f1b39  gcc/testsuite/c-c++-common/goacc/uninit-dim-clause.c
--- 12296,12306 ----
  71ff1b7541d8c733624f242976e1b747  gcc/testsuite/c-c++-common/goacc/sb-1.c
  1dde0d0d526302b12c8c22cfe846ddc1  gcc/testsuite/c-c++-common/goacc/sb-2.c
  2e25fe0594ffb9e9a8f935be5d6e9cfa  gcc/testsuite/c-c++-common/goacc/sb-3.c
+ 0c8c4a56e46ad299cb538982f71356cc  gcc/testsuite/c-c++-common/goacc/self-clause-1.c
+ f93f855ce26827da7463d94dd9d892cd  gcc/testsuite/c-c++-common/goacc/self-clause-2.c
  a1aa94a6909f8f48d857ad5a9cd45b61  gcc/testsuite/c-c++-common/goacc/struct-component-kind-1.c
  94af55a13b250c49ee388c813dd285e5  gcc/testsuite/c-c++-common/goacc/struct-enter-exit-data-1.c
! 4092d8216e9b7b3df417147586b91195  gcc/testsuite/c-c++-common/goacc/tile-2.c
  a140f15e3d552040b8f3c805cd73f542  gcc/testsuite/c-c++-common/goacc/tile.c
  4f12915b0be66791d61798f30094289c  gcc/testsuite/c-c++-common/goacc/uninit-copy-clause.c
  62ebb0e0b12fea8a81543951d20f1b39  gcc/testsuite/c-c++-common/goacc/uninit-dim-clause.c
*************** b97fa9634619ef9609f4b391a3df5de2  gcc/te
*** 11310,11322 ****
  5e03e297bbed2fa2301f3ac2906e1075  gcc/testsuite/c-c++-common/gomp/all-memory-2.c
  bb8e15cfe7081780c84131ade307b0a7  gcc/testsuite/c-c++-common/gomp/all-memory-3.c
  e9f8d7d790e775b8803a987279857fd8  gcc/testsuite/c-c++-common/gomp/allocate-1.c
  67afa8e9a323740282252dc23a7b959a  gcc/testsuite/c-c++-common/gomp/allocate-2.c
  9caab435288f915f6d7fe59b84b443c9  gcc/testsuite/c-c++-common/gomp/allocate-3.c
  b5cc36629f2af04781e8aa71d6a7ae0b  gcc/testsuite/c-c++-common/gomp/allocate-4.c
! b329607b6b60b281ab538361ef0e5abc  gcc/testsuite/c-c++-common/gomp/allocate-5.c
  56edad2f1d021dddfe817eecd7e376e2  gcc/testsuite/c-c++-common/gomp/allocate-6.c
  97a0a45a85b1c1938d08e940a662893f  gcc/testsuite/c-c++-common/gomp/allocate-7.c
  bf250503034f83812c610e628563cbe4  gcc/testsuite/c-c++-common/gomp/allocate-8.c
  6c5acf6facd4d66b41b293f41e8c48e7  gcc/testsuite/c-c++-common/gomp/assume-1.c
  c878705d315f6cd6fedb47109f8a83c1  gcc/testsuite/c-c++-common/gomp/assume-2.c
  9adbf63d6cc6673274053baa4a7406f3  gcc/testsuite/c-c++-common/gomp/assume-3.c
--- 12325,12346 ----
  5e03e297bbed2fa2301f3ac2906e1075  gcc/testsuite/c-c++-common/gomp/all-memory-2.c
  bb8e15cfe7081780c84131ade307b0a7  gcc/testsuite/c-c++-common/gomp/all-memory-3.c
  e9f8d7d790e775b8803a987279857fd8  gcc/testsuite/c-c++-common/gomp/allocate-1.c
+ 7141e4f6d1b61c96b9e3c21e7c14a417  gcc/testsuite/c-c++-common/gomp/allocate-10.c
+ 5addf874945366ee647712b16aaa9ec2  gcc/testsuite/c-c++-common/gomp/allocate-11.c
+ 8d917491ec5d68babca0936b63a0bf48  gcc/testsuite/c-c++-common/gomp/allocate-12.c
+ c8657190839fd03fa2c4693563039a48  gcc/testsuite/c-c++-common/gomp/allocate-13.c
+ 5246e02324b91f40277dbcaa6663cb88  gcc/testsuite/c-c++-common/gomp/allocate-14.c
+ ef64f47f4dc535f39ca0972442dfcf03  gcc/testsuite/c-c++-common/gomp/allocate-15.c
+ 110530d5e42de42ab74246c1db026fdc  gcc/testsuite/c-c++-common/gomp/allocate-16.c
+ 100719568d4682b49e6b7ac32a6c6515  gcc/testsuite/c-c++-common/gomp/allocate-17.c
  67afa8e9a323740282252dc23a7b959a  gcc/testsuite/c-c++-common/gomp/allocate-2.c
  9caab435288f915f6d7fe59b84b443c9  gcc/testsuite/c-c++-common/gomp/allocate-3.c
  b5cc36629f2af04781e8aa71d6a7ae0b  gcc/testsuite/c-c++-common/gomp/allocate-4.c
! c3809265d6de98b36dec2fb830b674d2  gcc/testsuite/c-c++-common/gomp/allocate-5.c
  56edad2f1d021dddfe817eecd7e376e2  gcc/testsuite/c-c++-common/gomp/allocate-6.c
  97a0a45a85b1c1938d08e940a662893f  gcc/testsuite/c-c++-common/gomp/allocate-7.c
  bf250503034f83812c610e628563cbe4  gcc/testsuite/c-c++-common/gomp/allocate-8.c
+ 83289d3e3741fa4cf5c6b2c699a058e7  gcc/testsuite/c-c++-common/gomp/allocate-9.c
  6c5acf6facd4d66b41b293f41e8c48e7  gcc/testsuite/c-c++-common/gomp/assume-1.c
  c878705d315f6cd6fedb47109f8a83c1  gcc/testsuite/c-c++-common/gomp/assume-2.c
  9adbf63d6cc6673274053baa4a7406f3  gcc/testsuite/c-c++-common/gomp/assume-3.c
*************** dcd88cf4442d15fe1ee6cf0c65bec7ba  gcc/te
*** 11354,11362 ****
  338ba582f00391fbbba5113c8a1bb792  gcc/testsuite/c-c++-common/gomp/atomic-7.c
  99033a31ad0844a80bb561d39f21bc2c  gcc/testsuite/c-c++-common/gomp/atomic-8.c
  3cc6adb13ca30af2db982d07306a24d7  gcc/testsuite/c-c++-common/gomp/atomic-9.c
! c014acc338c8f751416c40b87de8a9ea  gcc/testsuite/c-c++-common/gomp/attrs-1.c
! 936bf736d9e5166aef93b839a7fb3fcf  gcc/testsuite/c-c++-common/gomp/attrs-2.c
! a6ad21899add03d8c45781b5f59ce8f4  gcc/testsuite/c-c++-common/gomp/attrs-3.c
  7051a84e085d73ad6267c8c04512579d  gcc/testsuite/c-c++-common/gomp/begin-assumes-1.c
  f1d749df456a0bcc8ff0fa28513835f3  gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c
  766d3b7f45920c36b59eb198aff18d97  gcc/testsuite/c-c++-common/gomp/begin-assumes-3.c
--- 12378,12386 ----
  338ba582f00391fbbba5113c8a1bb792  gcc/testsuite/c-c++-common/gomp/atomic-7.c
  99033a31ad0844a80bb561d39f21bc2c  gcc/testsuite/c-c++-common/gomp/atomic-8.c
  3cc6adb13ca30af2db982d07306a24d7  gcc/testsuite/c-c++-common/gomp/atomic-9.c
! 1b4f8527462b94e090104af54692febb  gcc/testsuite/c-c++-common/gomp/attrs-1.c
! 44c94a36e22b6327b21381bcca1c494e  gcc/testsuite/c-c++-common/gomp/attrs-2.c
! b18e853bf462cafe38d3448d58a4e05c  gcc/testsuite/c-c++-common/gomp/attrs-3.c
  7051a84e085d73ad6267c8c04512579d  gcc/testsuite/c-c++-common/gomp/begin-assumes-1.c
  f1d749df456a0bcc8ff0fa28513835f3  gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c
  766d3b7f45920c36b59eb198aff18d97  gcc/testsuite/c-c++-common/gomp/begin-assumes-3.c
*************** aa6f51f0ce9ba32480d8b3eddf2e9835  gcc/te
*** 11369,11375 ****
  192802715f9a6395e2ccf6ce992c4fee  gcc/testsuite/c-c++-common/gomp/cancel-2.c
  6f9b225fe1cf719440accba12db2e1a4  gcc/testsuite/c-c++-common/gomp/clause-dups-1.c
  2d100a7efc7458044156ec5ce1b62589  gcc/testsuite/c-c++-common/gomp/clauses-1.c
! 53df5de9ab063edd49814ad88fb4fb9b  gcc/testsuite/c-c++-common/gomp/clauses-2.c
  7c761956c0dbf5422d50dece221c9a7f  gcc/testsuite/c-c++-common/gomp/clauses-3.c
  8d9ef02ce9840a58a8c64026e4df30b2  gcc/testsuite/c-c++-common/gomp/clauses-4.c
  4495a5b525e167ab62035c686fc8d83b  gcc/testsuite/c-c++-common/gomp/clauses-5.c
--- 12393,12399 ----
  192802715f9a6395e2ccf6ce992c4fee  gcc/testsuite/c-c++-common/gomp/cancel-2.c
  6f9b225fe1cf719440accba12db2e1a4  gcc/testsuite/c-c++-common/gomp/clause-dups-1.c
  2d100a7efc7458044156ec5ce1b62589  gcc/testsuite/c-c++-common/gomp/clauses-1.c
! d5ffe3929242394b820f074d90b6869f  gcc/testsuite/c-c++-common/gomp/clauses-2.c
  7c761956c0dbf5422d50dece221c9a7f  gcc/testsuite/c-c++-common/gomp/clauses-3.c
  8d9ef02ce9840a58a8c64026e4df30b2  gcc/testsuite/c-c++-common/gomp/clauses-4.c
  4495a5b525e167ab62035c686fc8d83b  gcc/testsuite/c-c++-common/gomp/clauses-5.c
*************** fb5ac32eda4e938a1684263a6f7ccfa9  gcc/te
*** 11380,11398 ****
  bfb7ec61cc1300767edd2730dd158b24  gcc/testsuite/c-c++-common/gomp/critical-1.c
  c572ac0bc0904c15b451df6870cc393d  gcc/testsuite/c-c++-common/gomp/critical-2.c
  4f4730edc635e08ce7fb782360034e79  gcc/testsuite/c-c++-common/gomp/declare-target-1.c
! 07732c5ac1ff732ac2b0a4e38a96b507  gcc/testsuite/c-c++-common/gomp/declare-target-2.c
  5d9813953c9a6b9aeeb4294adf1df6e1  gcc/testsuite/c-c++-common/gomp/declare-target-3.c
  7f193f6ce9a8d0456ff0bd3677a8921f  gcc/testsuite/c-c++-common/gomp/declare-target-4.c
  bd8b4a8c817f542091fc2d7fded4917a  gcc/testsuite/c-c++-common/gomp/declare-target-5.c
  a5fd6a4672c9f8415dc9097c3c6acb93  gcc/testsuite/c-c++-common/gomp/declare-target-6.c
! eee46240ce01f7d71738654e0fe04a3b  gcc/testsuite/c-c++-common/gomp/declare-target-7.c
! 432250dcf3d9afc1090b630b510db1b8  gcc/testsuite/c-c++-common/gomp/declare-variant-1.c
  7f5d7596767c4d11ea513a12caaa9677  gcc/testsuite/c-c++-common/gomp/declare-variant-10.c
  51e43bef12ddebee2151356a6379e207  gcc/testsuite/c-c++-common/gomp/declare-variant-11.c
  a5afca905d34b587b6fd9cf5feeb7b84  gcc/testsuite/c-c++-common/gomp/declare-variant-12.c
  75564d16588312df035165e1f86306ff  gcc/testsuite/c-c++-common/gomp/declare-variant-13.c
! 9a928119f9dc1e5ae5c9aa9f002564c5  gcc/testsuite/c-c++-common/gomp/declare-variant-14.c
! e8eb871c9e6c5dde7b293de70e42c6f8  gcc/testsuite/c-c++-common/gomp/declare-variant-2.c
  94f924cd613b79f5f8ab07c38cc88b01  gcc/testsuite/c-c++-common/gomp/declare-variant-3.c
  65b510d9e426dc2a3b6896eb93dd8335  gcc/testsuite/c-c++-common/gomp/declare-variant-4.c
  ee52d5fc3f8423c9720ccca8a58180a2  gcc/testsuite/c-c++-common/gomp/declare-variant-5.c
--- 12404,12424 ----
  bfb7ec61cc1300767edd2730dd158b24  gcc/testsuite/c-c++-common/gomp/critical-1.c
  c572ac0bc0904c15b451df6870cc393d  gcc/testsuite/c-c++-common/gomp/critical-2.c
  4f4730edc635e08ce7fb782360034e79  gcc/testsuite/c-c++-common/gomp/declare-target-1.c
! b4cf3cba2eeac62573f40aac959d463d  gcc/testsuite/c-c++-common/gomp/declare-target-2.c
  5d9813953c9a6b9aeeb4294adf1df6e1  gcc/testsuite/c-c++-common/gomp/declare-target-3.c
  7f193f6ce9a8d0456ff0bd3677a8921f  gcc/testsuite/c-c++-common/gomp/declare-target-4.c
  bd8b4a8c817f542091fc2d7fded4917a  gcc/testsuite/c-c++-common/gomp/declare-target-5.c
  a5fd6a4672c9f8415dc9097c3c6acb93  gcc/testsuite/c-c++-common/gomp/declare-target-6.c
! e6d2454095aaf222d75e92fdee506c6e  gcc/testsuite/c-c++-common/gomp/declare-target-7.c
! e38166dd368208c4e65636e5cde6a72b  gcc/testsuite/c-c++-common/gomp/declare-target-indirect-1.c
! e2fb5766584afa5643717362c099037f  gcc/testsuite/c-c++-common/gomp/declare-target-indirect-2.c
! 467befcc9cdf579a3a13897bcf468fd4  gcc/testsuite/c-c++-common/gomp/declare-variant-1.c
  7f5d7596767c4d11ea513a12caaa9677  gcc/testsuite/c-c++-common/gomp/declare-variant-10.c
  51e43bef12ddebee2151356a6379e207  gcc/testsuite/c-c++-common/gomp/declare-variant-11.c
  a5afca905d34b587b6fd9cf5feeb7b84  gcc/testsuite/c-c++-common/gomp/declare-variant-12.c
  75564d16588312df035165e1f86306ff  gcc/testsuite/c-c++-common/gomp/declare-variant-13.c
! 7b7501dcb6205855eeb2eaddad1092d0  gcc/testsuite/c-c++-common/gomp/declare-variant-14.c
! 9b06e0d2f88ee9fd38146a8320771c3d  gcc/testsuite/c-c++-common/gomp/declare-variant-2.c
  94f924cd613b79f5f8ab07c38cc88b01  gcc/testsuite/c-c++-common/gomp/declare-variant-3.c
  65b510d9e426dc2a3b6896eb93dd8335  gcc/testsuite/c-c++-common/gomp/declare-variant-4.c
  ee52d5fc3f8423c9720ccca8a58180a2  gcc/testsuite/c-c++-common/gomp/declare-variant-5.c
*************** ee52d5fc3f8423c9720ccca8a58180a2  gcc/te
*** 11400,11411 ****
--- 12426,12441 ----
  d029e5eb6faefe6ca785e1b9e12615d3  gcc/testsuite/c-c++-common/gomp/declare-variant-7.c
  ec57ddf60230099a4e71566afe991826  gcc/testsuite/c-c++-common/gomp/declare-variant-8.c
  97b1f9bfd5c062c5e04176f9ca2486bd  gcc/testsuite/c-c++-common/gomp/declare-variant-9.c
+ 46626ca4a4cc96a492c7dfc61c291105  gcc/testsuite/c-c++-common/gomp/declare-variant-no-score.c
  0dbf545a4d885c579a6fa72fe4bf8332  gcc/testsuite/c-c++-common/gomp/default-1.c
  5fb2c1ff7f22a7db37e361c51d486872  gcc/testsuite/c-c++-common/gomp/default-2.c
  53f1dfff816cc4e84b475f89e062973d  gcc/testsuite/c-c++-common/gomp/default-3.c
  210213fef63c2c9f7b4d77ee3540dfd2  gcc/testsuite/c-c++-common/gomp/defaultmap-1.c
  cfe9ce2bee6dfde91d715b2c34a5a896  gcc/testsuite/c-c++-common/gomp/defaultmap-2.c
  5ccd214a0e6437b9a7e3a44ab4d50f74  gcc/testsuite/c-c++-common/gomp/defaultmap-3.c
+ 5ccc4786543cb25ceec46edfc609f8a9  gcc/testsuite/c-c++-common/gomp/defaultmap-4.c
+ 9f88ffe669afbd71ca43cd0f7944419d  gcc/testsuite/c-c++-common/gomp/defaultmap-5.c
+ e89b36d077224fe9d4b4e2b0fb8a6240  gcc/testsuite/c-c++-common/gomp/defaultmap-6.c
  066630abcddd44ac2372567273262326  gcc/testsuite/c-c++-common/gomp/depend-1.c
  4a1085d5478dc95bc2936ae4c0e4c7fd  gcc/testsuite/c-c++-common/gomp/depend-2.c
  6252c7733cc10415438eac4ecc8f3741  gcc/testsuite/c-c++-common/gomp/depend-3.c
*************** cfe9ce2bee6dfde91d715b2c34a5a896  gcc/te
*** 11416,11422 ****
  3ec0d6b08677a898631647adbce575dc  gcc/testsuite/c-c++-common/gomp/depend-iterator-2.c
  4d7c198a6e5377f63eba24e105bd8430  gcc/testsuite/c-c++-common/gomp/depobj-1.c
  b0614882466e367a20795bf8a724df2a  gcc/testsuite/c-c++-common/gomp/depobj-2.c
! b0891889109fe5d3e8cd36d5bd4771cc  gcc/testsuite/c-c++-common/gomp/directive-1.c
  389475c8477c859e20aa20be1676dbd0  gcc/testsuite/c-c++-common/gomp/distribute-1.c
  f10bae63863004428ff4b3fbefab335e  gcc/testsuite/c-c++-common/gomp/doacross-1.c
  516128133174c1939bd4cf36e469fb51  gcc/testsuite/c-c++-common/gomp/doacross-2.c
--- 12446,12453 ----
  3ec0d6b08677a898631647adbce575dc  gcc/testsuite/c-c++-common/gomp/depend-iterator-2.c
  4d7c198a6e5377f63eba24e105bd8430  gcc/testsuite/c-c++-common/gomp/depobj-1.c
  b0614882466e367a20795bf8a724df2a  gcc/testsuite/c-c++-common/gomp/depobj-2.c
! 2a1fa5f3e1fe8821515948afb685410b  gcc/testsuite/c-c++-common/gomp/depobj-3.c
! b7a7c883420d18bb6bc689577f080949  gcc/testsuite/c-c++-common/gomp/directive-1.c
  389475c8477c859e20aa20be1676dbd0  gcc/testsuite/c-c++-common/gomp/distribute-1.c
  f10bae63863004428ff4b3fbefab335e  gcc/testsuite/c-c++-common/gomp/doacross-1.c
  516128133174c1939bd4cf36e469fb51  gcc/testsuite/c-c++-common/gomp/doacross-2.c
*************** b9f70a44108d3410396c88c5623b3919  gcc/te
*** 11444,11449 ****
--- 12475,12494 ----
  1a907f0d46c82ea2b68fa098d75a6865  gcc/testsuite/c-c++-common/gomp/if-2.c
  71d3b22e0e174e813b323afe92d6f310  gcc/testsuite/c-c++-common/gomp/if-3.c
  5281fe81b3f419fc33159d07429ef65b  gcc/testsuite/c-c++-common/gomp/if-4.c
+ 71a3d1d8ffb1d128dd69ad7315575a5c  gcc/testsuite/c-c++-common/gomp/imperfect-attributes.c
+ 7637f96836b251691c5f33ea2faebdf7  gcc/testsuite/c-c++-common/gomp/imperfect-badloops.c
+ 080c7cc4432de5c6525ba1ca7a7ed255  gcc/testsuite/c-c++-common/gomp/imperfect-blocks.c
+ 97c5e0d13b337e6b5751bc18bb4b578b  gcc/testsuite/c-c++-common/gomp/imperfect-extension.c
+ f1e2872c9870ff3696c124d6645f86df  gcc/testsuite/c-c++-common/gomp/imperfect-gotos.c
+ 0c800b454453bcd0126ecb121f958a3a  gcc/testsuite/c-c++-common/gomp/imperfect-invalid-scope.c
+ 932adbfb1888fd48d07105139df52082  gcc/testsuite/c-c++-common/gomp/imperfect-labels.c
+ ff6a71100f3f7a2fe3d8debe700ad80d  gcc/testsuite/c-c++-common/gomp/imperfect-legacy-syntax.c
+ eea399211a9f1137be12f5d33a7e7d51  gcc/testsuite/c-c++-common/gomp/imperfect-pragmas.c
+ 9b2ae27bbb773d4939edc6ab477ba48d  gcc/testsuite/c-c++-common/gomp/imperfect1.c
+ 0d6cd0d0faac055678389c689c1461f6  gcc/testsuite/c-c++-common/gomp/imperfect2.c
+ f7b26726f2f7cbd96dd84eb2d5428f35  gcc/testsuite/c-c++-common/gomp/imperfect3.c
+ 537c89654e06278ee903e85a854f5cc5  gcc/testsuite/c-c++-common/gomp/imperfect4.c
+ 518ccc21aa7b1998ac49e2cd98ca274c  gcc/testsuite/c-c++-common/gomp/imperfect5.c
  2247fde132c8bd3e6a2897e3580872aa  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-1.c
  7a41e9c11639ccee3155f9ff2b1bc60d  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-2.c
  61a5cf3348b2df91e9c5c6dda0024e27  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-3.c
*************** bbbe92047177151542b6ff825d52c4e4  gcc/te
*** 11469,11477 ****
  84b32011b7cc61bdab96dc5182d6fa16  gcc/testsuite/c-c++-common/gomp/map-3.c
  f26a9793012d174bb469a5a2bbe88ed8  gcc/testsuite/c-c++-common/gomp/map-4.c
  277cedbcd2effa8734f83ed409ddc325  gcc/testsuite/c-c++-common/gomp/map-5.c
! 67c80af0682db4c373d338c03bb665ac  gcc/testsuite/c-c++-common/gomp/map-6.c
  b8e110ebbec9c6db80b28e633ae2f67e  gcc/testsuite/c-c++-common/gomp/map-7.c
  44f82c91ea0443cfcfe48ff2e2ad3f49  gcc/testsuite/c-c++-common/gomp/map-8.c
  69ff77fd1a974b1db18e0d998cb08b86  gcc/testsuite/c-c++-common/gomp/map-incomplete-type.c
  d5ee74feb13dd8875f12132dccfe8126  gcc/testsuite/c-c++-common/gomp/masked-1.c
  c8a1a97bda2a787e6f55c68563e256b6  gcc/testsuite/c-c++-common/gomp/masked-2.c
--- 12514,12523 ----
  84b32011b7cc61bdab96dc5182d6fa16  gcc/testsuite/c-c++-common/gomp/map-3.c
  f26a9793012d174bb469a5a2bbe88ed8  gcc/testsuite/c-c++-common/gomp/map-4.c
  277cedbcd2effa8734f83ed409ddc325  gcc/testsuite/c-c++-common/gomp/map-5.c
! 3f07002bcd055fe038597454af146bd9  gcc/testsuite/c-c++-common/gomp/map-6.c
  b8e110ebbec9c6db80b28e633ae2f67e  gcc/testsuite/c-c++-common/gomp/map-7.c
  44f82c91ea0443cfcfe48ff2e2ad3f49  gcc/testsuite/c-c++-common/gomp/map-8.c
+ 3e29caf558ff43e0252f11af669e8da4  gcc/testsuite/c-c++-common/gomp/map-9.c
  69ff77fd1a974b1db18e0d998cb08b86  gcc/testsuite/c-c++-common/gomp/map-incomplete-type.c
  d5ee74feb13dd8875f12132dccfe8126  gcc/testsuite/c-c++-common/gomp/masked-1.c
  c8a1a97bda2a787e6f55c68563e256b6  gcc/testsuite/c-c++-common/gomp/masked-2.c
*************** fe151bac678698a31d909bd16fae419b  gcc/te
*** 11530,11545 ****
  05e6a38172b7bfc26de83040dfc8c364  gcc/testsuite/c-c++-common/gomp/pr59467.c
  c282b9ecbe7c1cafd42ab3e0184003b2  gcc/testsuite/c-c++-common/gomp/pr59917-1.c
  aae6611cdfa9d295d22870f8c9222f69  gcc/testsuite/c-c++-common/gomp/pr59917-2.c
! 50e04acde0314eb4261d4146ad9078fb  gcc/testsuite/c-c++-common/gomp/pr60823-1.c
! 5724f24c4f1988cd1539ef0c5e147b98  gcc/testsuite/c-c++-common/gomp/pr60823-2.c
! a083f5b1389e4638d7d2505608e6af0b  gcc/testsuite/c-c++-common/gomp/pr60823-3.c
  83d8f65d36e02aa02588d7b997bdd269  gcc/testsuite/c-c++-common/gomp/pr60823-4.c
  1610228a9a46a0984cc32fd91d652f9f  gcc/testsuite/c-c++-common/gomp/pr61200.c
  5a77df631a4cbd5ca518a8d11dea1c5c  gcc/testsuite/c-c++-common/gomp/pr61486-1.c
  28934043880a72198ba5007df167aaf6  gcc/testsuite/c-c++-common/gomp/pr61486-2.c
  2b6ae32069c2763c6ff2b173604cf38c  gcc/testsuite/c-c++-common/gomp/pr63249.c
  301fa510c5c9466fd8fc36226349fc5e  gcc/testsuite/c-c++-common/gomp/pr63326.c
! f4fc237b3b36260e213984cfa4346314  gcc/testsuite/c-c++-common/gomp/pr63328.c
  30dce45d7575c95b65d5773d81737750  gcc/testsuite/c-c++-common/gomp/pr64769.c
  9847fa21aef2357ee2b4d8dcdb931ce8  gcc/testsuite/c-c++-common/gomp/pr66429.c
  376e5ffd24dabdd1213ce10f5c3d0d9e  gcc/testsuite/c-c++-common/gomp/pr67501.c
--- 12576,12591 ----
  05e6a38172b7bfc26de83040dfc8c364  gcc/testsuite/c-c++-common/gomp/pr59467.c
  c282b9ecbe7c1cafd42ab3e0184003b2  gcc/testsuite/c-c++-common/gomp/pr59917-1.c
  aae6611cdfa9d295d22870f8c9222f69  gcc/testsuite/c-c++-common/gomp/pr59917-2.c
! 5b47466396036a9d27294b8f8db9fc59  gcc/testsuite/c-c++-common/gomp/pr60823-1.c
! 7a0f3b433d6043b064ac7db274f82101  gcc/testsuite/c-c++-common/gomp/pr60823-2.c
! 9bc9ad8b454ddee130fb534cf08c4f0e  gcc/testsuite/c-c++-common/gomp/pr60823-3.c
  83d8f65d36e02aa02588d7b997bdd269  gcc/testsuite/c-c++-common/gomp/pr60823-4.c
  1610228a9a46a0984cc32fd91d652f9f  gcc/testsuite/c-c++-common/gomp/pr61200.c
  5a77df631a4cbd5ca518a8d11dea1c5c  gcc/testsuite/c-c++-common/gomp/pr61486-1.c
  28934043880a72198ba5007df167aaf6  gcc/testsuite/c-c++-common/gomp/pr61486-2.c
  2b6ae32069c2763c6ff2b173604cf38c  gcc/testsuite/c-c++-common/gomp/pr63249.c
  301fa510c5c9466fd8fc36226349fc5e  gcc/testsuite/c-c++-common/gomp/pr63326.c
! 8c7b7ac1e0fde7a3111b8d330d0914d2  gcc/testsuite/c-c++-common/gomp/pr63328.c
  30dce45d7575c95b65d5773d81737750  gcc/testsuite/c-c++-common/gomp/pr64769.c
  9847fa21aef2357ee2b4d8dcdb931ce8  gcc/testsuite/c-c++-common/gomp/pr66429.c
  376e5ffd24dabdd1213ce10f5c3d0d9e  gcc/testsuite/c-c++-common/gomp/pr67501.c
*************** a5ab254ee603749ef9330558229e6163  gcc/te
*** 11614,11627 ****
  6bfb4e8e6e1307990ff6a4535855f6b7  gcc/testsuite/c-c++-common/gomp/reduction-task-3.c
  510098e898a0bf706702fa24a48e71ac  gcc/testsuite/c-c++-common/gomp/requires-1.c
  402906410edb43bb1d0515698684f3a6  gcc/testsuite/c-c++-common/gomp/requires-2.c
! f91ff40a21debb2c128ac02f5443f258  gcc/testsuite/c-c++-common/gomp/requires-3.c
  53176dd60a6d44d8f4bf1f5094f1c246  gcc/testsuite/c-c++-common/gomp/requires-4.c
  d16b51ef608a08574df6100908654ce0  gcc/testsuite/c-c++-common/gomp/reverse-offload-1.c
  d2b914e7da7d449d03bc2fd5a17d4ac9  gcc/testsuite/c-c++-common/gomp/scan-1.c
  3fb5b28574137ba1aa754466a8ea9a57  gcc/testsuite/c-c++-common/gomp/scan-2.c
  9f76c491a629f3bbd470f28c269ef485  gcc/testsuite/c-c++-common/gomp/scan-3.c
  640bcd6f5cf5af442783c7dc5ad52d3b  gcc/testsuite/c-c++-common/gomp/scan-4.c
  e413f648ce33386781b2b3e3e93cb96b  gcc/testsuite/c-c++-common/gomp/scan-5.c
  8af1ef16f27f56d5d687ed958b671d57  gcc/testsuite/c-c++-common/gomp/schedule-1.c
  22fba04602b98c0a4fd88b5b47d5ffee  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c
  5924e1e32a4e62ad7e1324d01a4ed89e  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-2.c
--- 12660,12678 ----
  6bfb4e8e6e1307990ff6a4535855f6b7  gcc/testsuite/c-c++-common/gomp/reduction-task-3.c
  510098e898a0bf706702fa24a48e71ac  gcc/testsuite/c-c++-common/gomp/requires-1.c
  402906410edb43bb1d0515698684f3a6  gcc/testsuite/c-c++-common/gomp/requires-2.c
! dfbc6aca5075a4a318647a3d657b2dd1  gcc/testsuite/c-c++-common/gomp/requires-3.c
  53176dd60a6d44d8f4bf1f5094f1c246  gcc/testsuite/c-c++-common/gomp/requires-4.c
+ 207705a65b2e008941a3d3976de7e240  gcc/testsuite/c-c++-common/gomp/requires-5.c
+ 138b4d3ae4b945a10af58bf56191dc98  gcc/testsuite/c-c++-common/gomp/requires-6.c
+ 931b4332bd990faa5b9aab4a228ff1f0  gcc/testsuite/c-c++-common/gomp/requires-7.c
+ 51ad5d5dea3fc1a8b4058a688095449f  gcc/testsuite/c-c++-common/gomp/requires-8.c
  d16b51ef608a08574df6100908654ce0  gcc/testsuite/c-c++-common/gomp/reverse-offload-1.c
  d2b914e7da7d449d03bc2fd5a17d4ac9  gcc/testsuite/c-c++-common/gomp/scan-1.c
  3fb5b28574137ba1aa754466a8ea9a57  gcc/testsuite/c-c++-common/gomp/scan-2.c
  9f76c491a629f3bbd470f28c269ef485  gcc/testsuite/c-c++-common/gomp/scan-3.c
  640bcd6f5cf5af442783c7dc5ad52d3b  gcc/testsuite/c-c++-common/gomp/scan-4.c
  e413f648ce33386781b2b3e3e93cb96b  gcc/testsuite/c-c++-common/gomp/scan-5.c
+ 4715bbfc6161c4d45a18bbfad6b8d4db  gcc/testsuite/c-c++-common/gomp/scan-6.c
  8af1ef16f27f56d5d687ed958b671d57  gcc/testsuite/c-c++-common/gomp/schedule-1.c
  22fba04602b98c0a4fd88b5b47d5ffee  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c
  5924e1e32a4e62ad7e1324d01a4ed89e  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-2.c
*************** cbcc4bef361026a7cc530337842d4576  gcc/te
*** 11648,11654 ****
  ee53749fe1ce6195a2d3af75b4e8d7fb  gcc/testsuite/c-c++-common/gomp/sink-3.c
  0c93f7b88c30539ace084df2f4c7f5ae  gcc/testsuite/c-c++-common/gomp/sink-4.c
  c95f2cef3c7fd923368769c2f5efbc75  gcc/testsuite/c-c++-common/gomp/sink-5.c
! a82f5f6361b85847729140a2abdacf9a  gcc/testsuite/c-c++-common/gomp/target-50.c
  0f606c818aafa917b4e4ca06798a0500  gcc/testsuite/c-c++-common/gomp/target-data-1.c
  6e2b1e79dd9e5bf80f1786de4ce0d44f  gcc/testsuite/c-c++-common/gomp/target-data-2.c
  606d31321e7d5d4bd5f862677a31ccf9  gcc/testsuite/c-c++-common/gomp/target-data-3.c
--- 12699,12705 ----
  ee53749fe1ce6195a2d3af75b4e8d7fb  gcc/testsuite/c-c++-common/gomp/sink-3.c
  0c93f7b88c30539ace084df2f4c7f5ae  gcc/testsuite/c-c++-common/gomp/sink-4.c
  c95f2cef3c7fd923368769c2f5efbc75  gcc/testsuite/c-c++-common/gomp/sink-5.c
! 0749f498cf83f772934b8604c900cb5e  gcc/testsuite/c-c++-common/gomp/target-50.c
  0f606c818aafa917b4e4ca06798a0500  gcc/testsuite/c-c++-common/gomp/target-data-1.c
  6e2b1e79dd9e5bf80f1786de4ce0d44f  gcc/testsuite/c-c++-common/gomp/target-data-2.c
  606d31321e7d5d4bd5f862677a31ccf9  gcc/testsuite/c-c++-common/gomp/target-data-3.c
*************** a89d3bc336c39386e5c41b412c5cadf6  gcc/te
*** 11659,11673 ****
  415ffbd983ab85f8ae866ca8d4790b1d  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-3.c
  ca7ba586dac58a7cd9e9b58a6d8e470e  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-4.c
  4561a8adae0edb1000cfcf5746ff89dd  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-5.c
! 603f6027fbfbdbc9630eda8b61d659ee  gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
  5ffcda40553abef98cacdff0ec06eea2  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
  e5def8b0431262a97550aa7141a818a1  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-2.c
  d84886ef1e121f255fa075c6838ac885  gcc/testsuite/c-c++-common/gomp/target-implicit-map-1.c
! a26fd1e6046be289a1c410feb9b08179  gcc/testsuite/c-c++-common/gomp/target-implicit-map-2.c
  add511064b968c5d11ab265fa90ad3bc  gcc/testsuite/c-c++-common/gomp/target-in-reduction-1.c
  1a46b3c3357de4a3d24943d0266026f3  gcc/testsuite/c-c++-common/gomp/target-is-device-ptr-1.c
  2cfdfdc278ef7c85c5e2ad7e2f1e95be  gcc/testsuite/c-c++-common/gomp/target-is-device-ptr-2.c
  b1764366c6f492a5e181e374576a2120  gcc/testsuite/c-c++-common/gomp/target-teams-1.c
  25d48772fc72e3c1f8e2192ec44ffb95  gcc/testsuite/c-c++-common/gomp/task-detach-1.c
  1bc40a217ad51b17433b0b59c1491757  gcc/testsuite/c-c++-common/gomp/task-detach-2.c
  f1e648ba677e52a9fa9d8897002b52a4  gcc/testsuite/c-c++-common/gomp/task-detach-3.c
--- 12710,12725 ----
  415ffbd983ab85f8ae866ca8d4790b1d  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-3.c
  ca7ba586dac58a7cd9e9b58a6d8e470e  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-4.c
  4561a8adae0edb1000cfcf5746ff89dd  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-5.c
! fdab044e4591c867dbff7d0f2a10a3d4  gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
  5ffcda40553abef98cacdff0ec06eea2  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
  e5def8b0431262a97550aa7141a818a1  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-2.c
  d84886ef1e121f255fa075c6838ac885  gcc/testsuite/c-c++-common/gomp/target-implicit-map-1.c
! e62da91076a6f8670065d179ab37a9cf  gcc/testsuite/c-c++-common/gomp/target-implicit-map-2.c
  add511064b968c5d11ab265fa90ad3bc  gcc/testsuite/c-c++-common/gomp/target-in-reduction-1.c
  1a46b3c3357de4a3d24943d0266026f3  gcc/testsuite/c-c++-common/gomp/target-is-device-ptr-1.c
  2cfdfdc278ef7c85c5e2ad7e2f1e95be  gcc/testsuite/c-c++-common/gomp/target-is-device-ptr-2.c
  b1764366c6f492a5e181e374576a2120  gcc/testsuite/c-c++-common/gomp/target-teams-1.c
+ ecaf3261edcbdf06b45669d051546ad3  gcc/testsuite/c-c++-common/gomp/target-update-1.c
  25d48772fc72e3c1f8e2192ec44ffb95  gcc/testsuite/c-c++-common/gomp/task-detach-1.c
  1bc40a217ad51b17433b0b59c1491757  gcc/testsuite/c-c++-common/gomp/task-detach-2.c
  f1e648ba677e52a9fa9d8897002b52a4  gcc/testsuite/c-c++-common/gomp/task-detach-3.c
*************** d8649d74f0435be9dfbda3d78613de4d  gcc/te
*** 11684,11714 ****
  e26c6f6984625a53461cd5383d9d7094  gcc/testsuite/c-c++-common/guality/Og-global-dse-1.c
  7cea7ea892b69a1a021d0bb57e2130d6  gcc/testsuite/c-c++-common/guality/Og-static-wo-1.c
  715226741a182526f3d2c9f0d0384ac7  gcc/testsuite/c-c++-common/guality/pr43141.c
  2edc518fe8f7641eee4454794cc91c8c  gcc/testsuite/c-c++-common/hwasan/aligned-alloc.c
  5a99403ed7c8d93fdff7ad2011ac018b  gcc/testsuite/c-c++-common/hwasan/alloca-array-accessible.c
  d6a93365ce10aa090cd499fb86193a0c  gcc/testsuite/c-c++-common/hwasan/alloca-base-init.c
  40c902a38793f746997b860914f31045  gcc/testsuite/c-c++-common/hwasan/alloca-gets-different-tag.c
! f39e8077d066521fb41b5daf3d64bf84  gcc/testsuite/c-c++-common/hwasan/alloca-outside-caught.c
  547e9adde82130a73a2ced63c88deb21  gcc/testsuite/c-c++-common/hwasan/arguments-1.c
  648b204333db837d8503ea3fcc7b5e55  gcc/testsuite/c-c++-common/hwasan/arguments-2.c
  333fb6cf3adc0825d1053dd1c868bc06  gcc/testsuite/c-c++-common/hwasan/arguments-3.c
  45ae4d2f42bd7222a3e8cd1115d9799a  gcc/testsuite/c-c++-common/hwasan/arguments.c
  ea3bd6ad99fc0b75e643d47378ddae86  gcc/testsuite/c-c++-common/hwasan/asan-pr63316.c
! b5f38e3c42020a47bf53cf73dfca26c7  gcc/testsuite/c-c++-common/hwasan/asan-pr70541.c
  2c6d8de162f3d16220b7e9222df6aa9e  gcc/testsuite/c-c++-common/hwasan/asan-pr78106.c
  32c8e8023b21c758fea43aef2a50c841  gcc/testsuite/c-c++-common/hwasan/asan-pr79944.c
  7df6d99c1d7f0a63a016ae5b7c37e5d7  gcc/testsuite/c-c++-common/hwasan/asan-rlimit-mmap-test-1.c
  d182cbfb9bfa11dddd767cad620d828a  gcc/testsuite/c-c++-common/hwasan/bitfield-1.c
  2f474939123ac48bbe65153426c9cad8  gcc/testsuite/c-c++-common/hwasan/bitfield-2.c
! 1b98c6196875d839f48fbb51235b44c6  gcc/testsuite/c-c++-common/hwasan/builtin-special-handling.c
  ba40d465ba36451b257309ff68e5a488  gcc/testsuite/c-c++-common/hwasan/check-interface.c
  f44e1d535ed848b242590be9807085e4  gcc/testsuite/c-c++-common/hwasan/halt_on_error-1.c
  2e356f3a5a84ac907719c0c90f0e15c3  gcc/testsuite/c-c++-common/hwasan/handles-poly_int-marked-vars.c
! 7eb7ddc211c60ffdebc4086ebcf41b38  gcc/testsuite/c-c++-common/hwasan/heap-overflow.c
! b8a75949d5842171c6ef396c7daab76e  gcc/testsuite/c-c++-common/hwasan/hwasan-poison-optimisation.c
  a8436d606a76e395385c4a61361d7ede  gcc/testsuite/c-c++-common/hwasan/hwasan-thread-access-parent.c
  81ccd096d83b8fa1dfcfc61001649496  gcc/testsuite/c-c++-common/hwasan/hwasan-thread-basic-failure.c
! 7efc0793081dc17013ea007a1274504f  gcc/testsuite/c-c++-common/hwasan/hwasan-thread-clears-stack.c
  bf27eba0aaefbc14fdfeb32d90400a84  gcc/testsuite/c-c++-common/hwasan/hwasan-thread-success.c
  2a9c8876bcc3184cf12dcb18ca70626a  gcc/testsuite/c-c++-common/hwasan/kernel-defaults.c
  cb739aab77fb27271b4e819a9c5a650d  gcc/testsuite/c-c++-common/hwasan/large-aligned-0.c
--- 12736,12769 ----
  e26c6f6984625a53461cd5383d9d7094  gcc/testsuite/c-c++-common/guality/Og-global-dse-1.c
  7cea7ea892b69a1a021d0bb57e2130d6  gcc/testsuite/c-c++-common/guality/Og-static-wo-1.c
  715226741a182526f3d2c9f0d0384ac7  gcc/testsuite/c-c++-common/guality/pr43141.c
+ 6ec821e2c75b2569e2f863dbef7fc3a4  gcc/testsuite/c-c++-common/harden-cfr-noret-never-O0.c
+ 37e41679bbffc66a866fe026362bc76e  gcc/testsuite/c-c++-common/has-feature-common.c
+ aede72bd547898573cb322a9606cdd9e  gcc/testsuite/c-c++-common/has-feature-pedantic.c
  2edc518fe8f7641eee4454794cc91c8c  gcc/testsuite/c-c++-common/hwasan/aligned-alloc.c
  5a99403ed7c8d93fdff7ad2011ac018b  gcc/testsuite/c-c++-common/hwasan/alloca-array-accessible.c
  d6a93365ce10aa090cd499fb86193a0c  gcc/testsuite/c-c++-common/hwasan/alloca-base-init.c
  40c902a38793f746997b860914f31045  gcc/testsuite/c-c++-common/hwasan/alloca-gets-different-tag.c
! c1af1ddfdf552d75c9e5441011fbb48b  gcc/testsuite/c-c++-common/hwasan/alloca-outside-caught.c
  547e9adde82130a73a2ced63c88deb21  gcc/testsuite/c-c++-common/hwasan/arguments-1.c
  648b204333db837d8503ea3fcc7b5e55  gcc/testsuite/c-c++-common/hwasan/arguments-2.c
  333fb6cf3adc0825d1053dd1c868bc06  gcc/testsuite/c-c++-common/hwasan/arguments-3.c
  45ae4d2f42bd7222a3e8cd1115d9799a  gcc/testsuite/c-c++-common/hwasan/arguments.c
  ea3bd6ad99fc0b75e643d47378ddae86  gcc/testsuite/c-c++-common/hwasan/asan-pr63316.c
! 2d6b368a384a184c3b34fd1b20da18d6  gcc/testsuite/c-c++-common/hwasan/asan-pr70541.c
  2c6d8de162f3d16220b7e9222df6aa9e  gcc/testsuite/c-c++-common/hwasan/asan-pr78106.c
  32c8e8023b21c758fea43aef2a50c841  gcc/testsuite/c-c++-common/hwasan/asan-pr79944.c
  7df6d99c1d7f0a63a016ae5b7c37e5d7  gcc/testsuite/c-c++-common/hwasan/asan-rlimit-mmap-test-1.c
  d182cbfb9bfa11dddd767cad620d828a  gcc/testsuite/c-c++-common/hwasan/bitfield-1.c
  2f474939123ac48bbe65153426c9cad8  gcc/testsuite/c-c++-common/hwasan/bitfield-2.c
! a0d1650b6ee06a0d2f709ce229d23485  gcc/testsuite/c-c++-common/hwasan/builtin-special-handling.c
  ba40d465ba36451b257309ff68e5a488  gcc/testsuite/c-c++-common/hwasan/check-interface.c
  f44e1d535ed848b242590be9807085e4  gcc/testsuite/c-c++-common/hwasan/halt_on_error-1.c
  2e356f3a5a84ac907719c0c90f0e15c3  gcc/testsuite/c-c++-common/hwasan/handles-poly_int-marked-vars.c
! 02ca6921dde617c949b4b8316e68322c  gcc/testsuite/c-c++-common/hwasan/heap-overflow.c
! 666a08816b4dce8154a070e3e0678cdc  gcc/testsuite/c-c++-common/hwasan/hwasan-poison-optimisation.c
  a8436d606a76e395385c4a61361d7ede  gcc/testsuite/c-c++-common/hwasan/hwasan-thread-access-parent.c
  81ccd096d83b8fa1dfcfc61001649496  gcc/testsuite/c-c++-common/hwasan/hwasan-thread-basic-failure.c
! 41c4f01d349cc0b76f0743cf7118078a  gcc/testsuite/c-c++-common/hwasan/hwasan-thread-clears-stack.c
  bf27eba0aaefbc14fdfeb32d90400a84  gcc/testsuite/c-c++-common/hwasan/hwasan-thread-success.c
  2a9c8876bcc3184cf12dcb18ca70626a  gcc/testsuite/c-c++-common/hwasan/kernel-defaults.c
  cb739aab77fb27271b4e819a9c5a650d  gcc/testsuite/c-c++-common/hwasan/large-aligned-0.c
*************** fefbda864a26468a9393bb2095d5381f  gcc/te
*** 11728,11734 ****
  df9d5a9ade93ba5262e6f430b477773f  gcc/testsuite/c-c++-common/hwasan/param-instrument-reads.c
  5073ec381df8ea9112d19b0b9de20d59  gcc/testsuite/c-c++-common/hwasan/param-instrument-writes.c
  4add894ab81173fac503077beb96196d  gcc/testsuite/c-c++-common/hwasan/random-frame-tag.c
! aa795736ea117bbe49456fd6e83520e8  gcc/testsuite/c-c++-common/hwasan/sanity-check-pure-c.c
  94f78a6b04df5a5688921e5b3f576574  gcc/testsuite/c-c++-common/hwasan/setjmp-longjmp-0.c
  5ec6378e1e30788903f884aaddff5294  gcc/testsuite/c-c++-common/hwasan/setjmp-longjmp-1.c
  e4d5eb20b188e55ac6a64e3c0c9e8df6  gcc/testsuite/c-c++-common/hwasan/stack-tagging-basic-0.c
--- 12783,12789 ----
  df9d5a9ade93ba5262e6f430b477773f  gcc/testsuite/c-c++-common/hwasan/param-instrument-reads.c
  5073ec381df8ea9112d19b0b9de20d59  gcc/testsuite/c-c++-common/hwasan/param-instrument-writes.c
  4add894ab81173fac503077beb96196d  gcc/testsuite/c-c++-common/hwasan/random-frame-tag.c
! a8b3fb1dfe0aa7409a4df00a9542f7d1  gcc/testsuite/c-c++-common/hwasan/sanity-check-pure-c.c
  94f78a6b04df5a5688921e5b3f576574  gcc/testsuite/c-c++-common/hwasan/setjmp-longjmp-0.c
  5ec6378e1e30788903f884aaddff5294  gcc/testsuite/c-c++-common/hwasan/setjmp-longjmp-1.c
  e4d5eb20b188e55ac6a64e3c0c9e8df6  gcc/testsuite/c-c++-common/hwasan/stack-tagging-basic-0.c
*************** e4d5eb20b188e55ac6a64e3c0c9e8df6  gcc/te
*** 11736,11743 ****
  6147638e8e5113273815f41efd4e4931  gcc/testsuite/c-c++-common/hwasan/stack-tagging-disable.c
  c805f0e50b68c0f1a9a99f61e7123fb6  gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c
  f007ef6d3bbb6f88e9353821e2968665  gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-1.c
! 2194789f84f46284602f3dca5f4f182d  gcc/testsuite/c-c++-common/hwasan/use-after-free.c
! 52098474cabc8794b8d8fdb52f03257e  gcc/testsuite/c-c++-common/hwasan/vararray-outside-caught.c
  da23345311aef7a3ffb7ee38efcb91e2  gcc/testsuite/c-c++-common/hwasan/vararray-stack-restore-correct.c
  4e542a97fc7b5654ac195be5d9301617  gcc/testsuite/c-c++-common/hwasan/very-large-objects.c
  8f5de27b05717c97b322a2c6d71bdda2  gcc/testsuite/c-c++-common/ident-0a.c
--- 12791,12798 ----
  6147638e8e5113273815f41efd4e4931  gcc/testsuite/c-c++-common/hwasan/stack-tagging-disable.c
  c805f0e50b68c0f1a9a99f61e7123fb6  gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c
  f007ef6d3bbb6f88e9353821e2968665  gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-1.c
! 1fbd8299c2c3ee5f64745cb409cdd269  gcc/testsuite/c-c++-common/hwasan/use-after-free.c
! bba3e5f76d60be2248ea21348a139c98  gcc/testsuite/c-c++-common/hwasan/vararray-outside-caught.c
  da23345311aef7a3ffb7ee38efcb91e2  gcc/testsuite/c-c++-common/hwasan/vararray-stack-restore-correct.c
  4e542a97fc7b5654ac195be5d9301617  gcc/testsuite/c-c++-common/hwasan/very-large-objects.c
  8f5de27b05717c97b322a2c6d71bdda2  gcc/testsuite/c-c++-common/ident-0a.c
*************** b9ad712a28a3034ba943a199daca6a18  gcc/te
*** 11760,11765 ****
--- 12815,12821 ----
  a26cac5f6c3bf19d27815db147fb6b76  gcc/testsuite/c-c++-common/missing-header-2.c
  28fa0dc109db1913bd5f6088442c8b67  gcc/testsuite/c-c++-common/missing-header-3.c
  22d0401be580cc821a107ff58ba0adf4  gcc/testsuite/c-c++-common/missing-header-4.c
+ a63ae3270acffedc81ca35530fc1d8ea  gcc/testsuite/c-c++-common/missing-header-5.c
  43b0969da91f5c38b8fb0ee512205d1f  gcc/testsuite/c-c++-common/missing-symbol.c
  a68a4cf86f443ff3cc492bde894e586e  gcc/testsuite/c-c++-common/modref-dse.c
  1857ca1e2a63fca3b5383864d3c28579  gcc/testsuite/c-c++-common/nonnull-1.c
*************** a3a25e292815be4474cfe0c8eb665d70  gcc/te
*** 11772,11785 ****
  8dc709a510615d4b7752427741282b37  gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c
  80a177ccd304d62e86cb7f75375f0958  gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c
  498ddd8ad30f33954c75dc8c4bb14a15  gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c
! f29317306885c84ce3055ab8ed50523e  gcc/testsuite/c-c++-common/pointer-to-fn1.c
  a6ce976933c82e0ff9cfe2bb28e85af5  gcc/testsuite/c-c++-common/pr100785.c
  05e5f34e1a745d2204989ec4f256e3c7  gcc/testsuite/c-c++-common/pr101537.c
  8709cca98d2978c94addb154e2c7ae32  gcc/testsuite/c-c++-common/pr102281.c
  24cfa37b3314f819eee358a0281492a7  gcc/testsuite/c-c++-common/pr102285.c
  aa3fc5c6f05836355e73da21c4ceac97  gcc/testsuite/c-c++-common/pr103798-1.c
  de10da1e1aec0a1dcb31ef7ac653e978  gcc/testsuite/c-c++-common/pr103798-10.c
! 032c2a0ecbc90df1ed8a937890d7d665  gcc/testsuite/c-c++-common/pr103798-2.c
  b3a421701bd54bd29725cf811bcc7bdc  gcc/testsuite/c-c++-common/pr103798-3.c
  fbace92b2eb2c2560edc165a281b8fe0  gcc/testsuite/c-c++-common/pr103798-4.c
  7bcd6e6668dfbb3133dbb22ca4245dfd  gcc/testsuite/c-c++-common/pr103798-5.c
--- 12828,12841 ----
  8dc709a510615d4b7752427741282b37  gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c
  80a177ccd304d62e86cb7f75375f0958  gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c
  498ddd8ad30f33954c75dc8c4bb14a15  gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c
! 44097af5085c22fdafd236564588816d  gcc/testsuite/c-c++-common/pointer-to-fn1.c
  a6ce976933c82e0ff9cfe2bb28e85af5  gcc/testsuite/c-c++-common/pr100785.c
  05e5f34e1a745d2204989ec4f256e3c7  gcc/testsuite/c-c++-common/pr101537.c
  8709cca98d2978c94addb154e2c7ae32  gcc/testsuite/c-c++-common/pr102281.c
  24cfa37b3314f819eee358a0281492a7  gcc/testsuite/c-c++-common/pr102285.c
  aa3fc5c6f05836355e73da21c4ceac97  gcc/testsuite/c-c++-common/pr103798-1.c
  de10da1e1aec0a1dcb31ef7ac653e978  gcc/testsuite/c-c++-common/pr103798-10.c
! 21dc8cf084d20c568438d7f80c5c271d  gcc/testsuite/c-c++-common/pr103798-2.c
  b3a421701bd54bd29725cf811bcc7bdc  gcc/testsuite/c-c++-common/pr103798-3.c
  fbace92b2eb2c2560edc165a281b8fe0  gcc/testsuite/c-c++-common/pr103798-4.c
  7bcd6e6668dfbb3133dbb22ca4245dfd  gcc/testsuite/c-c++-common/pr103798-5.c
*************** b462f367b31710a6645647c66da8c83c  gcc/te
*** 11792,11804 ****
  f7797890edb72db96871a3c3582464f4  gcc/testsuite/c-c++-common/pr105186.c
  d5189fe9f7cb5f4a822563c9d438762d  gcc/testsuite/c-c++-common/pr105998.c
  10c9b11e734e514259fcf9722af7ef2c  gcc/testsuite/c-c++-common/pr106133.c
  ebd0b7e3acd0cf5b26b12db66f960d0b  gcc/testsuite/c-c++-common/pr107358.c
  e1ef9c58498f72552b0ec84751024b54  gcc/testsuite/c-c++-common/pr107465.c
  2ce597ddfe4f3e0b48f9b9dbd2e4cb0a  gcc/testsuite/c-c++-common/pr108365.c
  043b8dd187f001c1699789f752f3432d  gcc/testsuite/c-c++-common/pr108605.c
  7e6323dd9b11ca893c79859f430b53ed  gcc/testsuite/c-c++-common/pr109884.c
  f5dce8e27cfb8a6bfffe57596fecb796  gcc/testsuite/c-c++-common/pr19807-1.c
! 78a05c6e7d414ef4fd6f21dece4e9f21  gcc/testsuite/c-c++-common/pr19807-2.c
  39c0873a2c1c7f951e8b2f90ebc9e12d  gcc/testsuite/c-c++-common/pr19807-3.c
  a369d890b3c8a2c5aefbfa5a42a6d9f8  gcc/testsuite/c-c++-common/pr20000.c
  84cc81e8de7fc76ea0c59bd53658e880  gcc/testsuite/c-c++-common/pr20318.c
--- 12848,12863 ----
  f7797890edb72db96871a3c3582464f4  gcc/testsuite/c-c++-common/pr105186.c
  d5189fe9f7cb5f4a822563c9d438762d  gcc/testsuite/c-c++-common/pr105998.c
  10c9b11e734e514259fcf9722af7ef2c  gcc/testsuite/c-c++-common/pr106133.c
+ 8ecfb3e3b043f225123b96e0bf8c3daf  gcc/testsuite/c-c++-common/pr107058.c
  ebd0b7e3acd0cf5b26b12db66f960d0b  gcc/testsuite/c-c++-common/pr107358.c
  e1ef9c58498f72552b0ec84751024b54  gcc/testsuite/c-c++-common/pr107465.c
  2ce597ddfe4f3e0b48f9b9dbd2e4cb0a  gcc/testsuite/c-c++-common/pr108365.c
  043b8dd187f001c1699789f752f3432d  gcc/testsuite/c-c++-common/pr108605.c
  7e6323dd9b11ca893c79859f430b53ed  gcc/testsuite/c-c++-common/pr109884.c
+ 087cac8a02deb9e6057b84df8a4b50c5  gcc/testsuite/c-c++-common/pr111309-1.c
+ eaa6db1ea7ec94af6a5743a71b3c75b4  gcc/testsuite/c-c++-common/pr111309-2.c
  f5dce8e27cfb8a6bfffe57596fecb796  gcc/testsuite/c-c++-common/pr19807-1.c
! 8a7d9a8dd4af1ada80ca6a4b3201e073  gcc/testsuite/c-c++-common/pr19807-2.c
  39c0873a2c1c7f951e8b2f90ebc9e12d  gcc/testsuite/c-c++-common/pr19807-3.c
  a369d890b3c8a2c5aefbfa5a42a6d9f8  gcc/testsuite/c-c++-common/pr20000.c
  84cc81e8de7fc76ea0c59bd53658e880  gcc/testsuite/c-c++-common/pr20318.c
*************** b38dfeaadc637074e6438912c9f2da8c  gcc/te
*** 11854,11860 ****
  5d803d54b60d0f70d9530aaa77e36203  gcc/testsuite/c-c++-common/pr51628-31.c
  f6c9cc746b637ab7b6f4bec6071407ec  gcc/testsuite/c-c++-common/pr51628-32.c
  4a01321c3acc2373ff7220ae5cb2c2c7  gcc/testsuite/c-c++-common/pr51628-33.c
! 615dac13c6240ca70d1141592027a5e0  gcc/testsuite/c-c++-common/pr51628-35.c
  c690c03b2b910fceb861f262f8044693  gcc/testsuite/c-c++-common/pr51628-4.c
  adc5a3ccf7f16f59fb802f78fdd9cb3b  gcc/testsuite/c-c++-common/pr51628-5.c
  397667acc281dbdbde005ab217b058e7  gcc/testsuite/c-c++-common/pr51628-6.c
--- 12913,12919 ----
  5d803d54b60d0f70d9530aaa77e36203  gcc/testsuite/c-c++-common/pr51628-31.c
  f6c9cc746b637ab7b6f4bec6071407ec  gcc/testsuite/c-c++-common/pr51628-32.c
  4a01321c3acc2373ff7220ae5cb2c2c7  gcc/testsuite/c-c++-common/pr51628-33.c
! e1c53726a7f7877230860460248bb3ee  gcc/testsuite/c-c++-common/pr51628-35.c
  c690c03b2b910fceb861f262f8044693  gcc/testsuite/c-c++-common/pr51628-4.c
  adc5a3ccf7f16f59fb802f78fdd9cb3b  gcc/testsuite/c-c++-common/pr51628-5.c
  397667acc281dbdbde005ab217b058e7  gcc/testsuite/c-c++-common/pr51628-6.c
*************** ab8ceba35b76e5122ef1d15e5a6d31ba  gcc/te
*** 11953,11959 ****
  f95fcc70982cead8b99c9d37a468918d  gcc/testsuite/c-c++-common/pr71654.c
  787c05b57b9d12074e10b8dd90f2e31f  gcc/testsuite/c-c++-common/pr72747-1.c
  bc35e63b37b5e5640c983fbf4df0d7b4  gcc/testsuite/c-c++-common/pr72747-2.c
! b67f5233ad064425af9346f833639317  gcc/testsuite/c-c++-common/pr77624-1.c
  a1d81aca7925c7555b998187fd9777a8  gcc/testsuite/c-c++-common/pr77624-2.c
  6c6ebe9e94d2f6d6f9e318d4247ea33a  gcc/testsuite/c-c++-common/pr79428-3.c
  ce91ea7c46f421a0b712ff52ee4f9985  gcc/testsuite/c-c++-common/pr79641.c
--- 13012,13018 ----
  f95fcc70982cead8b99c9d37a468918d  gcc/testsuite/c-c++-common/pr71654.c
  787c05b57b9d12074e10b8dd90f2e31f  gcc/testsuite/c-c++-common/pr72747-1.c
  bc35e63b37b5e5640c983fbf4df0d7b4  gcc/testsuite/c-c++-common/pr72747-2.c
! c17a051b73c64b2e2eabc720f61393fc  gcc/testsuite/c-c++-common/pr77624-1.c
  a1d81aca7925c7555b998187fd9777a8  gcc/testsuite/c-c++-common/pr77624-2.c
  6c6ebe9e94d2f6d6f9e318d4247ea33a  gcc/testsuite/c-c++-common/pr79428-3.c
  ce91ea7c46f421a0b712ff52ee4f9985  gcc/testsuite/c-c++-common/pr79641.c
*************** dcb1283b3d236483f0079fddb308212a  gcc/te
*** 12022,12031 ****
  9e63be4f202bccd1a865d8764e25c90f  gcc/testsuite/c-c++-common/pragma-diag-11.c
  382ced085cb6ff82e210bfc5378472f4  gcc/testsuite/c-c++-common/pragma-diag-12.c
  c03d94813a62c9fafb95c7b8983360ce  gcc/testsuite/c-c++-common/pragma-diag-13.c
! 1bf7750c89990cb4a063d934c12992b9  gcc/testsuite/c-c++-common/pragma-diag-14.c
! a5afea58d4e15a829a8cfe4878ebfdc7  gcc/testsuite/c-c++-common/pragma-diag-15.c
  2f44bc43abfb65e37859c4ba4bba1d3d  gcc/testsuite/c-c++-common/pragma-diag-16.c
  6fbfb0791efb04e7199a6a9e44c1e3c9  gcc/testsuite/c-c++-common/pragma-region.c
  b0ba836310044e7b419ef679f0b48d6f  gcc/testsuite/c-c++-common/raw-string-1.c
  554e7071d2525351de28445762633866  gcc/testsuite/c-c++-common/raw-string-10.c
  fc54e7227094f307fa566b3a8cd0ba9a  gcc/testsuite/c-c++-common/raw-string-11.c
--- 13081,13092 ----
  9e63be4f202bccd1a865d8764e25c90f  gcc/testsuite/c-c++-common/pragma-diag-11.c
  382ced085cb6ff82e210bfc5378472f4  gcc/testsuite/c-c++-common/pragma-diag-12.c
  c03d94813a62c9fafb95c7b8983360ce  gcc/testsuite/c-c++-common/pragma-diag-13.c
! 8606dea92dbeabaeabd40009158b7486  gcc/testsuite/c-c++-common/pragma-diag-14.c
! 4406cf29b6e608168beb66e51b0828ce  gcc/testsuite/c-c++-common/pragma-diag-15.c
  2f44bc43abfb65e37859c4ba4bba1d3d  gcc/testsuite/c-c++-common/pragma-diag-16.c
  6fbfb0791efb04e7199a6a9e44c1e3c9  gcc/testsuite/c-c++-common/pragma-region.c
+ b74aa710dd73be16a516f400b59f4ab4  gcc/testsuite/c-c++-common/pragma-target-1.c
+ e08a01190a0adf03b4c03708f6da1223  gcc/testsuite/c-c++-common/pragma-target-2.c
  b0ba836310044e7b419ef679f0b48d6f  gcc/testsuite/c-c++-common/raw-string-1.c
  554e7071d2525351de28445762633866  gcc/testsuite/c-c++-common/raw-string-10.c
  fc54e7227094f307fa566b3a8cd0ba9a  gcc/testsuite/c-c++-common/raw-string-11.c
*************** ea258fcc065ffda90982abc5cfd1d059  gcc/te
*** 12078,12084 ****
  44e124b6efbd861ac0aa2c9196131cd3  gcc/testsuite/c-c++-common/sizeof-array-argument.c
  3b6b1021a97b044fd6f4d5e187425192  gcc/testsuite/c-c++-common/spec-barrier-1.c
  80f293e41667e8b36f21d7e67a6c70b0  gcc/testsuite/c-c++-common/spec-barrier-2.c
! 403164cc4cec42d9f5f11f736590d5da  gcc/testsuite/c-c++-common/spellcheck-reserved.c
  3904c1e06218e5b72020662cd962cf18  gcc/testsuite/c-c++-common/substring-location-PR-87562-1-a.h
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/c-c++-common/substring-location-PR-87562-1-b.h
  f963895d994b62510e687873776b4ef0  gcc/testsuite/c-c++-common/substring-location-PR-87562-1.c
--- 13139,13188 ----
  44e124b6efbd861ac0aa2c9196131cd3  gcc/testsuite/c-c++-common/sizeof-array-argument.c
  3b6b1021a97b044fd6f4d5e187425192  gcc/testsuite/c-c++-common/spec-barrier-1.c
  80f293e41667e8b36f21d7e67a6c70b0  gcc/testsuite/c-c++-common/spec-barrier-2.c
! 4877b2bec0428bb3840fadaef2f2974e  gcc/testsuite/c-c++-common/spellcheck-pr107583.c
! 8762e925228bbb078bb2ee439d357e84  gcc/testsuite/c-c++-common/spellcheck-reserved.c
! 7fa8c2dd64475a70270c4c6d31a181f8  gcc/testsuite/c-c++-common/strub-O0.c
! 8a723d9d64937e8e3160ac20aa53a738  gcc/testsuite/c-c++-common/strub-O1.c
! 9f317485d023f1eeac83654bd1635636  gcc/testsuite/c-c++-common/strub-O2.c
! 749f519fb8671aaf2b3f45027dc3f696  gcc/testsuite/c-c++-common/strub-O2fni.c
! a2e713359e7f79aed4d8bd59648d7268  gcc/testsuite/c-c++-common/strub-O3.c
! fd0da66d5786f27a158e5897aa528a33  gcc/testsuite/c-c++-common/strub-O3fni.c
! be4a622187fb690fe1f448010aa60f96  gcc/testsuite/c-c++-common/strub-Og.c
! 85a2920d9a1c3aadd4a073f249e8e422  gcc/testsuite/c-c++-common/strub-Os.c
! 3a4a73a19aa1796c511926216821a7a6  gcc/testsuite/c-c++-common/strub-all1.c
! 726f95d3151b678832cc9cc40c0d19af  gcc/testsuite/c-c++-common/strub-all2.c
! 2c9a20d86152266764f4852cff86a2af  gcc/testsuite/c-c++-common/strub-apply1.c
! c372ca3d1e3d24d27313dc384198f070  gcc/testsuite/c-c++-common/strub-apply2.c
! ec7333281ffffb7f4a81d082074e76ab  gcc/testsuite/c-c++-common/strub-apply3.c
! 3f6bfd5d0aa9e2813e186fc6a36aec70  gcc/testsuite/c-c++-common/strub-apply4.c
! e12610254eabb64935cccb864012b77a  gcc/testsuite/c-c++-common/strub-at-calls1.c
! 291921f15c6959fd3ecb81c251e69bc6  gcc/testsuite/c-c++-common/strub-at-calls2.c
! 2717e086493c032a75ccabdf0055bbde  gcc/testsuite/c-c++-common/strub-defer-O1.c
! 87fcc443144e4acbc8e646b0b321c2fc  gcc/testsuite/c-c++-common/strub-defer-O2.c
! 9d50a5e6a36f1fc450c8cdbb276e7d8a  gcc/testsuite/c-c++-common/strub-defer-O3.c
! aee470299cf676652e20092c04578ded  gcc/testsuite/c-c++-common/strub-defer-Os.c
! e8b1baf7a1c47a1ff798d604c156f9a6  gcc/testsuite/c-c++-common/strub-internal1.c
! eacd23e19ac916f62a981dd310f9af30  gcc/testsuite/c-c++-common/strub-internal2.c
! d48979861ad05a0e5a69f67b12dc9b32  gcc/testsuite/c-c++-common/strub-parms1.c
! c526ac4a39c55417362bd5fa134cf87b  gcc/testsuite/c-c++-common/strub-parms2.c
! 52e472e2817570f853421386658e178e  gcc/testsuite/c-c++-common/strub-parms3.c
! 0e1a9a13f439929be2722a0cdf032e81  gcc/testsuite/c-c++-common/strub-relaxed1.c
! 76b389cdf80772fdf86731a6d9a4f5c7  gcc/testsuite/c-c++-common/strub-relaxed2.c
! f9cce4fcd1461568efc1efa394c0aef2  gcc/testsuite/c-c++-common/strub-short-O0-exc.c
! 820121362fdd5dc80a4f361618a1b9c6  gcc/testsuite/c-c++-common/strub-short-O0.c
! 10489fbd544a44671c10f16450d36690  gcc/testsuite/c-c++-common/strub-short-O1.c
! 4af84709eb01e964c2d0e632d5e13d4d  gcc/testsuite/c-c++-common/strub-short-O2.c
! eb01c6083bc70af62c0976a5dfd8e307  gcc/testsuite/c-c++-common/strub-short-O3.c
! 2d88d2802d65ffad04c67db22b05bd5c  gcc/testsuite/c-c++-common/strub-short-Os.c
! 30bd50d71914abc7d0d7fd4b4356a9f5  gcc/testsuite/c-c++-common/strub-split-stack.c
! b10eb1a48ead5f392ae723d4fefe0268  gcc/testsuite/c-c++-common/strub-strict1.c
! 7b98c7330a53eb89e88b81a513c8a371  gcc/testsuite/c-c++-common/strub-strict2.c
! 09d290697d489a33aaf9b657713dab97  gcc/testsuite/c-c++-common/strub-tail-O1.c
! e3c396593dcc08b1b0fb7c33b3625f10  gcc/testsuite/c-c++-common/strub-tail-O2.c
! a5ca5a4684409c13e86485a9c8ef3d36  gcc/testsuite/c-c++-common/strub-unsupported-2.c
! d2b9a1877374e417c685bbee91e3e7e6  gcc/testsuite/c-c++-common/strub-unsupported-3.c
! 6ecd9c15029b5198c232d2b7b7fb2a47  gcc/testsuite/c-c++-common/strub-unsupported.c
! 86cce5be23474a93cd7496ea577bf5be  gcc/testsuite/c-c++-common/strub-var1.c
  3904c1e06218e5b72020662cd962cf18  gcc/testsuite/c-c++-common/substring-location-PR-87562-1-a.h
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/c-c++-common/substring-location-PR-87562-1-b.h
  f963895d994b62510e687873776b4ef0  gcc/testsuite/c-c++-common/substring-location-PR-87562-1.c
*************** dcfe45ba6f5d3cfc6a596ae589694b44  gcc/te
*** 12169,12191 ****
  895fbc9bc655600ce8926f0324c028bf  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
  ecf00277bf404ed30fb08d5a8347834e  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
  02ccc099dac6a69400f154fddb7c755d  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c
! e6519a905d51bc4a47ceea85c886d98b  gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
  1152c43998c24654fd01c67b23e23932  gcc/testsuite/c-c++-common/torture/builtin-convertvector-2.c
  78be28e180d73a89ef820b89b8e47458  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-1.c
  aa1e8bdc94d5d24f185258290bad8950  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-2.c
  bc76dceb7876987432ddd7a6c1908c45  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-3.c
  255588ac3834ead37b7f36c6b58cd61b  gcc/testsuite/c-c++-common/torture/complex-alias-1.c
! 252f95ec0162dd10262e227d09b36737  gcc/testsuite/c-c++-common/torture/complex-sign-add.c
! 2e42a65fc880e668586d3506db231d5b  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
! e66ac106001c0acd07a0f8da5f732d73  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
! b9d33618a5c03ea155703661506a97c0  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
! b0122d0c879837137f66c27145a6358c  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
! dd5142586e3d5b7dc7b3a0aec5196b3d  gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
! 471a346d291876358cd0a0a04a18d6e4  gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
! 6733790e29253b482618d3d7ca3d459b  gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
! d61cc0116375f68235d4f54cec36629f  gcc/testsuite/c-c++-common/torture/complex-sign-sub.c
  4ae74720c58c8cbadc297c4a41a985fb  gcc/testsuite/c-c++-common/torture/complex-sign.h
  366a7441955bb442ec1e2f37e1cf766a  gcc/testsuite/c-c++-common/torture/harden-comp.c
  7a43079b53195516c0a573da0a3b9672  gcc/testsuite/c-c++-common/torture/harden-cond.c
  75b3c9a6df31ced0517c8cbc745ba01b  gcc/testsuite/c-c++-common/torture/pr101636.c
  72a2947bdd50352d6b0c1363882b7249  gcc/testsuite/c-c++-common/torture/pr104497.c
--- 13273,13323 ----
  895fbc9bc655600ce8926f0324c028bf  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
  ecf00277bf404ed30fb08d5a8347834e  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
  02ccc099dac6a69400f154fddb7c755d  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c
! a7632ded71a08f744f610ec5cebf495e  gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
  1152c43998c24654fd01c67b23e23932  gcc/testsuite/c-c++-common/torture/builtin-convertvector-2.c
  78be28e180d73a89ef820b89b8e47458  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-1.c
  aa1e8bdc94d5d24f185258290bad8950  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-2.c
  bc76dceb7876987432ddd7a6c1908c45  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-3.c
  255588ac3834ead37b7f36c6b58cd61b  gcc/testsuite/c-c++-common/torture/complex-alias-1.c
! 3e1664394a0f8686e51917a957d16eb9  gcc/testsuite/c-c++-common/torture/complex-sign-add.c
! 69c117a5bc6438413306c565d7e6eb33  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
! 9637e8ad8a88c84471ef8346032e0db5  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
! 95f89ce4264681b6116adf63dd8d978f  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
! 0f001ece20a2af055be37a297cf64ba6  gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
! f21dcdf118a5a5859c03e5091efb6825  gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
! 40bbe23486172abf16dd9a638cca3a09  gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
! 6f069334111c414abe88d8fe092f721d  gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
! 761a82084fc9cfabefa61193c2bb3843  gcc/testsuite/c-c++-common/torture/complex-sign-sub.c
  4ae74720c58c8cbadc297c4a41a985fb  gcc/testsuite/c-c++-common/torture/complex-sign.h
+ 04292371935d7fae0103b76f2b933a5a  gcc/testsuite/c-c++-common/torture/harden-cfr-abrt-always.c
+ a1b536b5aedf0799eaf5a3efcebb3939  gcc/testsuite/c-c++-common/torture/harden-cfr-abrt-never.c
+ 06bdeef5ed4e63bbe01a17f27c5dcb40  gcc/testsuite/c-c++-common/torture/harden-cfr-abrt-no-xthrow.c
+ d3a8654367ea64de9f94af60bf4bfe4a  gcc/testsuite/c-c++-common/torture/harden-cfr-abrt-nothrow.c
+ 6f7c2c2dab1beb0039a19dc3f6307536  gcc/testsuite/c-c++-common/torture/harden-cfr-abrt.c
+ 121a40238b2fc35373b976841c64bc90  gcc/testsuite/c-c++-common/torture/harden-cfr-always.c
+ 52dadd34c4d10d96cc65b3f3e3191bb1  gcc/testsuite/c-c++-common/torture/harden-cfr-bret-always.c
+ d094114346e0b04f8edbb064a73b0bf5  gcc/testsuite/c-c++-common/torture/harden-cfr-bret-except.c
+ adfb87a4f4f93f509a026e9782f5da29  gcc/testsuite/c-c++-common/torture/harden-cfr-bret-never.c
+ 4ac348ddcd8fdbd22c406a15ca68ed9d  gcc/testsuite/c-c++-common/torture/harden-cfr-bret-no-xthrow.c
+ 2696045dabe150b2c46a1c868e16c25f  gcc/testsuite/c-c++-common/torture/harden-cfr-bret-noopt.c
+ 32b51a567d30b43f7339af34bbe20cc2  gcc/testsuite/c-c++-common/torture/harden-cfr-bret-noret.c
+ 3cb41ea92421fb12e71cccd5e0abdc9c  gcc/testsuite/c-c++-common/torture/harden-cfr-bret-nothrow.c
+ d55078d134e85741b488db879ba17c15  gcc/testsuite/c-c++-common/torture/harden-cfr-bret-retcl.c
+ ca6faca3024893d03621f4b76c59823c  gcc/testsuite/c-c++-common/torture/harden-cfr-bret.c
+ 87833e39916467e8a84c742669e10646  gcc/testsuite/c-c++-common/torture/harden-cfr-never.c
+ 02b00f06fedbf6d917b6e61f62dea102  gcc/testsuite/c-c++-common/torture/harden-cfr-no-xthrow.c
+ 441a51ea91ff78c02308ba2532fc2534  gcc/testsuite/c-c++-common/torture/harden-cfr-noret-never.c
+ 38e3621008e4d4efd65b6f6aa99e0d4a  gcc/testsuite/c-c++-common/torture/harden-cfr-noret-noexcept.c
+ 79fc38b3e9d1f44e8255c0158e21363d  gcc/testsuite/c-c++-common/torture/harden-cfr-noret-nothrow.c
+ a7446c142c9df4ce35007f22f43b393b  gcc/testsuite/c-c++-common/torture/harden-cfr-noret.c
+ 56da8c3020672b52beaef25ee5d5086f  gcc/testsuite/c-c++-common/torture/harden-cfr-notail.c
+ 47134bf225f2b78748d90b0936adba40  gcc/testsuite/c-c++-common/torture/harden-cfr-nothrow.c
+ 60798e8d5e63fb3521c44b699cd4e50e  gcc/testsuite/c-c++-common/torture/harden-cfr-returning.c
+ b52e60483d061a399598699feb46e21f  gcc/testsuite/c-c++-common/torture/harden-cfr-skip-leaf.c
+ 328d72b5141136bb8d519f59e09fe371  gcc/testsuite/c-c++-common/torture/harden-cfr-tail.c
+ b2f66f84b84ffa548d99c7d1f30b6136  gcc/testsuite/c-c++-common/torture/harden-cfr.c
  366a7441955bb442ec1e2f37e1cf766a  gcc/testsuite/c-c++-common/torture/harden-comp.c
+ 93a8d2c5bf9066c20336cde86f788541  gcc/testsuite/c-c++-common/torture/harden-cond-comp.c
  7a43079b53195516c0a573da0a3b9672  gcc/testsuite/c-c++-common/torture/harden-cond.c
  75b3c9a6df31ced0517c8cbc745ba01b  gcc/testsuite/c-c++-common/torture/pr101636.c
  72a2947bdd50352d6b0c1363882b7249  gcc/testsuite/c-c++-common/torture/pr104497.c
*************** d6a020309f3771e59e357ca318d8b648  gcc/te
*** 12205,12210 ****
--- 13337,13373 ----
  575b9ac121d105d972c0a1d0cc759e1e  gcc/testsuite/c-c++-common/torture/pr83553.c
  10f3f13910c6235a4bbd08a729ec637b  gcc/testsuite/c-c++-common/torture/pr85022.c
  2272316d052efb7b0083de9c930c4e17  gcc/testsuite/c-c++-common/torture/pr87248.c
+ 9233c85183f05a30d9e2a188e867a098  gcc/testsuite/c-c++-common/torture/strub-callable1.c
+ 7131af1ab8103779600ac3f9fee8ad2d  gcc/testsuite/c-c++-common/torture/strub-callable2.c
+ bad77816d5ea559490faccc5f12ecfda  gcc/testsuite/c-c++-common/torture/strub-const1.c
+ 112098dd52ba1f087005af76bdc42cbb  gcc/testsuite/c-c++-common/torture/strub-const2.c
+ aeb5214e2052983bc675ff51f9d12035  gcc/testsuite/c-c++-common/torture/strub-const3.c
+ 2b41c170e186a53de4598b9c5eb8c9c4  gcc/testsuite/c-c++-common/torture/strub-const4.c
+ dc06aecc837613b152640eb73f60c0f9  gcc/testsuite/c-c++-common/torture/strub-data1.c
+ 5923677c6140ec8bd92ee4e005af3e4d  gcc/testsuite/c-c++-common/torture/strub-data2.c
+ be54b8351a1b82deaa8bb306869423c0  gcc/testsuite/c-c++-common/torture/strub-data3.c
+ b37eb079b36904784beea926468ae007  gcc/testsuite/c-c++-common/torture/strub-data4.c
+ 6827dad094c1020ba6d1c35cdb2c07b2  gcc/testsuite/c-c++-common/torture/strub-data5.c
+ ae6e368e9f35a6424a9de3734d43f5d5  gcc/testsuite/c-c++-common/torture/strub-indcall1.c
+ fc9987f9be336d3ff928d7457677445b  gcc/testsuite/c-c++-common/torture/strub-indcall2.c
+ e815a0c6ff8a5761fd636b3b416986c3  gcc/testsuite/c-c++-common/torture/strub-indcall3.c
+ 70bb60bf1679a14d06fc8d40d2b91317  gcc/testsuite/c-c++-common/torture/strub-inlinable1.c
+ 1336f9c8107825431c49a23e86f51101  gcc/testsuite/c-c++-common/torture/strub-inlinable2.c
+ 9e44992ba208b398d218df3f2b066629  gcc/testsuite/c-c++-common/torture/strub-ptrfn1.c
+ 44ddfc887b690563f3c778a0111a3bbf  gcc/testsuite/c-c++-common/torture/strub-ptrfn2.c
+ 4441c7627ca2cfa35eda2d0570a0deb0  gcc/testsuite/c-c++-common/torture/strub-ptrfn3.c
+ 0042cf639368ba57349137054fdb2eca  gcc/testsuite/c-c++-common/torture/strub-ptrfn4.c
+ 0cc07977b1f81fa98adf76f1f0316af1  gcc/testsuite/c-c++-common/torture/strub-pure1.c
+ f2feb8943005e67b0662443a3893a013  gcc/testsuite/c-c++-common/torture/strub-pure2.c
+ e5091c416eef26da4472bfe9cf5bf0a4  gcc/testsuite/c-c++-common/torture/strub-pure3.c
+ cdaece1af41c2c1b516e6faa0825054d  gcc/testsuite/c-c++-common/torture/strub-pure4.c
+ ece6fb9201dfd7317265bb4becbec7b6  gcc/testsuite/c-c++-common/torture/strub-run1.c
+ 17b890022cc1170255c8f5a507a804d7  gcc/testsuite/c-c++-common/torture/strub-run2.c
+ 31b8e4399a6d2f99809f6d68b03c69df  gcc/testsuite/c-c++-common/torture/strub-run3.c
+ 3afa7f50aa008253ed3d28ebddff7af6  gcc/testsuite/c-c++-common/torture/strub-run4.c
+ b3ef25804134647bf211426655e77123  gcc/testsuite/c-c++-common/torture/strub-run4c.c
+ ebe7839baacfa8a78dc9b32fd8ac9a3f  gcc/testsuite/c-c++-common/torture/strub-run4d.c
+ 5c5dc5c7d23812caae5c8588c38f8124  gcc/testsuite/c-c++-common/torture/strub-run4i.c
  fdeec1e5ecb339bf68961fab033b606e  gcc/testsuite/c-c++-common/torture/vector-compare-1.c
  e098360b3686787abea6589b13d9e806  gcc/testsuite/c-c++-common/torture/vector-compare-2.c
  26c13a49130d1f2d291bea112073585f  gcc/testsuite/c-c++-common/torture/vector-shift.c
*************** e35caecbc64e5306c5790ce0f003eff6  gcc/te
*** 12264,12269 ****
--- 13427,13433 ----
  1048d0e6a3ca80d3b4720a445847e7cb  gcc/testsuite/c-c++-common/tsan/tsan_barrier.h
  257bcb6e3df922acaf85096287053435  gcc/testsuite/c-c++-common/tsan/volatile.c
  3e2de6169eb53b32bfe7a21d0500e2f7  gcc/testsuite/c-c++-common/tsan/write_in_reader_lock.c
+ 84c5c6a7c74f75d3dfd312144070c911  gcc/testsuite/c-c++-common/ubsan/Wno-attributes-1.c
  8d737655fe783ab4170cda3a8b41a7f2  gcc/testsuite/c-c++-common/ubsan/align-1.c
  f77090a8c54bd7c9695bd1baea42b2ad  gcc/testsuite/c-c++-common/ubsan/align-10.c
  33e222185e271580e5b1227936c867ca  gcc/testsuite/c-c++-common/ubsan/align-2.c
*************** dcb530cb7f303a23cd60919969cb794b  gcc/te
*** 12274,12279 ****
--- 13438,13444 ----
  a7a38e8a32e9f420307680f9fd7c64d0  gcc/testsuite/c-c++-common/ubsan/align-7.c
  30278b21084814925748c526392c249e  gcc/testsuite/c-c++-common/ubsan/align-8.c
  bf3eafbf8ab8751240e00f5411cf7d52  gcc/testsuite/c-c++-common/ubsan/align-9.c
+ 2c2763c08f4d4b6f2cdb08c58e7ed214  gcc/testsuite/c-c++-common/ubsan/analyzer-ice-pr114408.c
  142f93192a848e1ae775dbab610799fa  gcc/testsuite/c-c++-common/ubsan/attrib-1.c
  695dc9f7bffbf6fa2ec45632f11a74a8  gcc/testsuite/c-c++-common/ubsan/attrib-2.c
  3887eb3b39d6bb827c5b762941936069  gcc/testsuite/c-c++-common/ubsan/attrib-3.c
*************** e0b17a64f9ea468c8e448df607a7764a  gcc/te
*** 12393,12398 ****
--- 13558,13564 ----
  2d09d34cddcaafa44376e58b570e33c4  gcc/testsuite/c-c++-common/ubsan/pr109107-2.c
  b07e56faf8b8f61a579155aab9444dd0  gcc/testsuite/c-c++-common/ubsan/pr109107-3.c
  ccb4daac3853da016aaee9aaef0fb5b0  gcc/testsuite/c-c++-common/ubsan/pr109107-4.c
+ 24b18a5fd301d7a3be70c2c44bb2a354  gcc/testsuite/c-c++-common/ubsan/pr112727.c
  52e44aba0bf4e0682451881391dfc23a  gcc/testsuite/c-c++-common/ubsan/pr56917.c
  bd4ddd65fb143719a5105084239eb4d7  gcc/testsuite/c-c++-common/ubsan/pr56956.c
  e229f42e8220b3ff0c068855f57a5b9b  gcc/testsuite/c-c++-common/ubsan/pr58443-1.c
*************** c77f02020cbcf85af6784093386ef648  gcc/te
*** 12550,12556 ****
  552993960fde37faa6d8b69da5b5bb33  gcc/testsuite/c-c++-common/zero-scratch-regs-8.c
  c58be55f0f9b42d63e15276d36dbd399  gcc/testsuite/c-c++-common/zero-scratch-regs-9.c
  5e947ff19698fccb8ffb7ac65277ba5b  gcc/testsuite/c-c++-common/zero-scratch-regs-attr-usages.c
! 020cc14a7186e49d78901b92d2c4058b  gcc/testsuite/config/default.exp
  8024a8d05ac43431e4b1302cfb4f3a39  gcc/testsuite/g++.dg/20090107-1.C
  1c4ef3fc928b689d06e4e43bd7b1118c  gcc/testsuite/g++.dg/20090121-1.C
  34c8e7d537bafbaafc64457157d9941d  gcc/testsuite/g++.dg/DRs/dr1207-1.C
--- 13716,13724 ----
  552993960fde37faa6d8b69da5b5bb33  gcc/testsuite/c-c++-common/zero-scratch-regs-8.c
  c58be55f0f9b42d63e15276d36dbd399  gcc/testsuite/c-c++-common/zero-scratch-regs-9.c
  5e947ff19698fccb8ffb7ac65277ba5b  gcc/testsuite/c-c++-common/zero-scratch-regs-attr-usages.c
! d61dbb6ecfb4fb8470caab10c945c02e  gcc/testsuite/c-c++-common/zero-scratch-regs-leafy-1.c
! db2bfc8380fd1e62f000b54dfdcfd976  gcc/testsuite/c-c++-common/zero-scratch-regs-leafy-2.c
! 1307176215ec5174bc6d664a427790b0  gcc/testsuite/config/default.exp
  8024a8d05ac43431e4b1302cfb4f3a39  gcc/testsuite/g++.dg/20090107-1.C
  1c4ef3fc928b689d06e4e43bd7b1118c  gcc/testsuite/g++.dg/20090121-1.C
  34c8e7d537bafbaafc64457157d9941d  gcc/testsuite/g++.dg/DRs/dr1207-1.C
*************** c58be55f0f9b42d63e15276d36dbd399  gcc/te
*** 12558,12586 ****
  8ce864b8f2d2ae710018ffa009a91983  gcc/testsuite/g++.dg/DRs/dr1423.C
  c78a7d0e0f56139db13df05e5557054a  gcc/testsuite/g++.dg/DRs/dr1511-1.C
  a8a423a0388215f96cf72d6abf415d72  gcc/testsuite/g++.dg/DRs/dr1511-2.C
  5402422aa468b0e17faae787be45ca05  gcc/testsuite/g++.dg/DRs/dr1778.C
  fa21ec294f03c517a2834da0764dd305  gcc/testsuite/g++.dg/DRs/dr188.C
  e1ec3bf667b6fc27346a0e4a5cf1958b  gcc/testsuite/g++.dg/DRs/dr1940.C
  2454fe0ea036f7272bc7658a61ac11fe  gcc/testsuite/g++.dg/DRs/dr2082.C
  b76a9cedbf2dc42cfc090cc116dd5b23  gcc/testsuite/g++.dg/DRs/dr2137-1.C
  c34c077c14a731c1e76b55760a45595e  gcc/testsuite/g++.dg/DRs/dr2137-2.C
! 3f7c4c9040359275e31ad38de5ffd272  gcc/testsuite/g++.dg/DRs/dr2237.C
  33ccffb334dd7be92e0462b76cdef639  gcc/testsuite/g++.dg/DRs/dr2303.C
  32457cadc360e959790012ac9c4c9724  gcc/testsuite/g++.dg/DRs/dr2392.C
  f9fe886f09e681c9e323402057864ebb  gcc/testsuite/g++.dg/DRs/dr2475.C
! 92dc83be6e3d98e3fcd54df5e8e408c1  gcc/testsuite/g++.dg/DRs/dr2478.C
  b26a3cc670cf83b0f26114e5683de2f6  gcc/testsuite/g++.dg/DRs/dr2518.C
  0d6aefe51ff95b342b96bda7d98a079a  gcc/testsuite/g++.dg/DRs/dr2530.C
  b0dfa04b7b53aefdac18e143994883bd  gcc/testsuite/g++.dg/DRs/dr2583.C
  f2f3b031e1cbc5967efb4a8bda8a5660  gcc/testsuite/g++.dg/DRs/dr2604.C
  fa6e8786f24bf1bbb1ee44a3e494556e  gcc/testsuite/g++.dg/DRs/dr2664.C
  662ef7dab4198df4626e7fdc15e43417  gcc/testsuite/g++.dg/DRs/dr2673.C
  7a4b27e45b2c85a34faf94f75f8945d1  gcc/testsuite/g++.dg/DRs/dr625.C
! a2264ae53a9c80944787346d14e5719a  gcc/testsuite/g++.dg/README
  c2db197c9d51ba75cb2475afeb61f7a3  gcc/testsuite/g++.dg/Walloca1.C
  320b5b68437c4d4f5168230d3d881f16  gcc/testsuite/g++.dg/Walloca2.C
  a41465f245515983bde6bb1167545c97  gcc/testsuite/g++.dg/Wattributes-2.C
! 855737fcfec2beb103a1b9c7c6e31f1c  gcc/testsuite/g++.dg/Wattributes-3.C
  6eca350a065a90ffa5fe1016ff56b35b  gcc/testsuite/g++.dg/Wattributes-4.C
  3ff207592dbb65eecb677a29243ae42b  gcc/testsuite/g++.dg/Wattributes-5.C
  35b2001cf691ecf0a90121735a12e0ac  gcc/testsuite/g++.dg/Wattributes.C
--- 13726,13763 ----
  8ce864b8f2d2ae710018ffa009a91983  gcc/testsuite/g++.dg/DRs/dr1423.C
  c78a7d0e0f56139db13df05e5557054a  gcc/testsuite/g++.dg/DRs/dr1511-1.C
  a8a423a0388215f96cf72d6abf415d72  gcc/testsuite/g++.dg/DRs/dr1511-2.C
+ 52d7d568704922e4f339fc4d146480ce  gcc/testsuite/g++.dg/DRs/dr1693-1.C
+ bdfdb25d2a95709a4137d69bca1d9b97  gcc/testsuite/g++.dg/DRs/dr1693-2.C
  5402422aa468b0e17faae787be45ca05  gcc/testsuite/g++.dg/DRs/dr1778.C
  fa21ec294f03c517a2834da0764dd305  gcc/testsuite/g++.dg/DRs/dr188.C
  e1ec3bf667b6fc27346a0e4a5cf1958b  gcc/testsuite/g++.dg/DRs/dr1940.C
  2454fe0ea036f7272bc7658a61ac11fe  gcc/testsuite/g++.dg/DRs/dr2082.C
  b76a9cedbf2dc42cfc090cc116dd5b23  gcc/testsuite/g++.dg/DRs/dr2137-1.C
  c34c077c14a731c1e76b55760a45595e  gcc/testsuite/g++.dg/DRs/dr2137-2.C
! d228a024fc49b9f546ab5bf20c98a751  gcc/testsuite/g++.dg/DRs/dr2237-2.C
! 5e0ecb9d3b649b1abdd8c105d47ce782  gcc/testsuite/g++.dg/DRs/dr2237-3.C
! 9e9ba3b176c214b92fba9425ed86c75e  gcc/testsuite/g++.dg/DRs/dr2237-4.C
! 68303890065cf1ae24e0899e211f6c8d  gcc/testsuite/g++.dg/DRs/dr2237-5.C
! ecb60531b59c45ee70cb0d04f3834e56  gcc/testsuite/g++.dg/DRs/dr2237.C
! 59d0a5422a2852dea60867dbf202ce2f  gcc/testsuite/g++.dg/DRs/dr2262.C
  33ccffb334dd7be92e0462b76cdef639  gcc/testsuite/g++.dg/DRs/dr2303.C
  32457cadc360e959790012ac9c4c9724  gcc/testsuite/g++.dg/DRs/dr2392.C
+ e9d51aa206280c1effe695077197b752  gcc/testsuite/g++.dg/DRs/dr2406.C
  f9fe886f09e681c9e323402057864ebb  gcc/testsuite/g++.dg/DRs/dr2475.C
! e9d89346fb2fcc510203168c6cbb82be  gcc/testsuite/g++.dg/DRs/dr2478.C
  b26a3cc670cf83b0f26114e5683de2f6  gcc/testsuite/g++.dg/DRs/dr2518.C
  0d6aefe51ff95b342b96bda7d98a079a  gcc/testsuite/g++.dg/DRs/dr2530.C
+ ae5152333dd60b40ffb5f5e2fdf63afc  gcc/testsuite/g++.dg/DRs/dr2543.C
  b0dfa04b7b53aefdac18e143994883bd  gcc/testsuite/g++.dg/DRs/dr2583.C
  f2f3b031e1cbc5967efb4a8bda8a5660  gcc/testsuite/g++.dg/DRs/dr2604.C
  fa6e8786f24bf1bbb1ee44a3e494556e  gcc/testsuite/g++.dg/DRs/dr2664.C
  662ef7dab4198df4626e7fdc15e43417  gcc/testsuite/g++.dg/DRs/dr2673.C
  7a4b27e45b2c85a34faf94f75f8945d1  gcc/testsuite/g++.dg/DRs/dr625.C
! 46aa5cf6922b3927601254b8e4e1bb3d  gcc/testsuite/g++.dg/README
  c2db197c9d51ba75cb2475afeb61f7a3  gcc/testsuite/g++.dg/Walloca1.C
  320b5b68437c4d4f5168230d3d881f16  gcc/testsuite/g++.dg/Walloca2.C
  a41465f245515983bde6bb1167545c97  gcc/testsuite/g++.dg/Wattributes-2.C
! 73de463d27b9bdb410c513bf96b2cf52  gcc/testsuite/g++.dg/Wattributes-3.C
  6eca350a065a90ffa5fe1016ff56b35b  gcc/testsuite/g++.dg/Wattributes-4.C
  3ff207592dbb65eecb677a29243ae42b  gcc/testsuite/g++.dg/Wattributes-5.C
  35b2001cf691ecf0a90121735a12e0ac  gcc/testsuite/g++.dg/Wattributes.C
*************** bc705538e65a16b827802aba882afacf  gcc/te
*** 12620,12625 ****
--- 13797,13804 ----
  82b6ed97723352d5afce1767847102bd  gcc/testsuite/g++.dg/abi/abi-tag23a.C
  951b17ec3204c422ddb5974c3f4facf5  gcc/testsuite/g++.dg/abi/abi-tag24.C
  672da7923f5fc8c4fdca6ba95309ee35  gcc/testsuite/g++.dg/abi/abi-tag24a.C
+ 1248c771ec146939d388a38977a74058  gcc/testsuite/g++.dg/abi/abi-tag25.C
+ 85ba7cc1befe9159559e4729ac185092  gcc/testsuite/g++.dg/abi/abi-tag25a.C
  180f41404374f95826fea78a1e0d3ab2  gcc/testsuite/g++.dg/abi/abi-tag3.C
  8f06678f1bcfb407a4c87c8834c4b5d6  gcc/testsuite/g++.dg/abi/abi-tag4.C
  79f982d49a2248198aaec328776327f6  gcc/testsuite/g++.dg/abi/abi-tag5.C
*************** d612831779ae34b6217159ef7510dee7  gcc/te
*** 12635,12641 ****
  4024cd0fe696880556f4db4786e81c53  gcc/testsuite/g++.dg/abi/anon3.C
  1038c11bdd8e6958bef23598a299a6ce  gcc/testsuite/g++.dg/abi/anon4.C
  b03e050cd2306239cb18c55acf037ffa  gcc/testsuite/g++.dg/abi/anon5.C
! 1cfb4424f540345766fc5e44ca28d49e  gcc/testsuite/g++.dg/abi/anon6.C
  770a1857da6a05380e26eabb7f0ecb92  gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C
  cb4ad686f7564a8666256212398d911d  gcc/testsuite/g++.dg/abi/arm_cxa_vec2.C
  62499069488aeb166c32135bb590f23e  gcc/testsuite/g++.dg/abi/arm_rtti1.C
--- 13814,13821 ----
  4024cd0fe696880556f4db4786e81c53  gcc/testsuite/g++.dg/abi/anon3.C
  1038c11bdd8e6958bef23598a299a6ce  gcc/testsuite/g++.dg/abi/anon4.C
  b03e050cd2306239cb18c55acf037ffa  gcc/testsuite/g++.dg/abi/anon5.C
! 49211aa600586b5c5f45d2f4161cb58d  gcc/testsuite/g++.dg/abi/anon6.C
! 2c0942760e20e3aa7bbefce17e693447  gcc/testsuite/g++.dg/abi/anon6a.C
  770a1857da6a05380e26eabb7f0ecb92  gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C
  cb4ad686f7564a8666256212398d911d  gcc/testsuite/g++.dg/abi/arm_cxa_vec2.C
  62499069488aeb166c32135bb590f23e  gcc/testsuite/g++.dg/abi/arm_rtti1.C
*************** b8aaec32a77e9927231c6c5f3237432f  gcc/te
*** 12652,12657 ****
--- 13832,13839 ----
  20c8af1b6abeb0a339e5fd9c3edbde57  gcc/testsuite/g++.dg/abi/bitfield8.C
  14697006c1045d90c0f505dbfc8c5072  gcc/testsuite/g++.dg/abi/bitfield9.C
  104feb47499ce7e6125b3ef0a9ee49f3  gcc/testsuite/g++.dg/abi/comdat1.C
+ bc52f8836c83bf95f70976078f1c9616  gcc/testsuite/g++.dg/abi/comdat2.C
+ bb696554d34c85c7a4f3ecf5c800d48e  gcc/testsuite/g++.dg/abi/comdat5.C
  b587f170bbc6f95ef287e408bcafe1e3  gcc/testsuite/g++.dg/abi/cookie1.C
  06ad90a0554de61d87d60dab2a30bf3e  gcc/testsuite/g++.dg/abi/covariant1.C
  bdf3fc666277f2c88c021f366a0b3886  gcc/testsuite/g++.dg/abi/covariant2.C
*************** ad49acfed68f5e9d85c906091a1bec23  gcc/te
*** 12744,12831 ****
  1b56fef803fe85ec97121919ad3ba2b9  gcc/testsuite/g++.dg/abi/local1-a.cc
  4ab5160617737559c38e1ffb650b797e  gcc/testsuite/g++.dg/abi/local1.C
  34ecb36205a7c22314ddda92d332a23d  gcc/testsuite/g++.dg/abi/local2.C
! 16ade9865c8b97df4e08369fb71d89ef  gcc/testsuite/g++.dg/abi/macro0.C
  06f0193b05c4ae743af4e38aec8d1122  gcc/testsuite/g++.dg/abi/macro2.C
  5a637c99e4aa66fa130b6c1d893fc41e  gcc/testsuite/g++.dg/abi/main.C
! ad6491d281aef40e7e1cf7d856f2aa05  gcc/testsuite/g++.dg/abi/mangle-arm-crypto.C
! 5a436d692434f9722c7fe2a71f3090a0  gcc/testsuite/g++.dg/abi/mangle-neon-aarch64.C
! 1258c53ab6daad5251b29f5a76d70e18  gcc/testsuite/g++.dg/abi/mangle-neon.C
! 6cb105420cef0cf42e64341086161402  gcc/testsuite/g++.dg/abi/mangle-regparm.C
! 6390442984f217030ab16eaa73d32de0  gcc/testsuite/g++.dg/abi/mangle-regparm1a.C
! 32a820237871331f2e3455c6e70f6397  gcc/testsuite/g++.dg/abi/mangle-union1.C
! 2e043f4f1db73efd7ba04afe8375a72e  gcc/testsuite/g++.dg/abi/mangle1.C
! e284ef1906cd5f1de0a8f3009ac761ff  gcc/testsuite/g++.dg/abi/mangle10.C
! f4bf78334d8aab06335ad784d3baaffd  gcc/testsuite/g++.dg/abi/mangle13.C
! 8ffaa1b19590f5f7ddf6464b1d009a9c  gcc/testsuite/g++.dg/abi/mangle15.C
! d6cfcf12071b19ad5863b84ad45b916e  gcc/testsuite/g++.dg/abi/mangle16.C
! bfbdcf19399c74a6691d65ef0ba49cd3  gcc/testsuite/g++.dg/abi/mangle18-1.C
! 6fc0d0a2deb49ad13e8b38dd336f3d7c  gcc/testsuite/g++.dg/abi/mangle19-1.C
  2fe54fcb3681eed20518e8a88f7e3849  gcc/testsuite/g++.dg/abi/mangle2.C
! dc5e5444adf348136bebba2aeea75a56  gcc/testsuite/g++.dg/abi/mangle20-1.C
  19d5bab4f182e97a38690a5ff4541700  gcc/testsuite/g++.dg/abi/mangle21.C
! f27a51ea9de5c032fc80016778dbe5ec  gcc/testsuite/g++.dg/abi/mangle22.C
! e9b6e0cbb0fdfc7c2d759709e120ac89  gcc/testsuite/g++.dg/abi/mangle23.C
! af8a23e436afd93b61c9bc9551fac99b  gcc/testsuite/g++.dg/abi/mangle24.C
! ae04b64f75744d4e08d314ffccafb713  gcc/testsuite/g++.dg/abi/mangle25.C
! 7c0a630f01c6b4192282f75ecd27b5eb  gcc/testsuite/g++.dg/abi/mangle26.C
! 044232763276597f7d67befd1bd50a9d  gcc/testsuite/g++.dg/abi/mangle27.C
! 8a0d615dc9ec8202a830aeb08e5dcb92  gcc/testsuite/g++.dg/abi/mangle28.C
! 2c430e967d278da976c5ea2d63efd9c4  gcc/testsuite/g++.dg/abi/mangle29.C
! e5ea4c0019b4f4d2e5145c74e30337d6  gcc/testsuite/g++.dg/abi/mangle3-2.C
! 37e03197e94e58b2b2c2eff811fa9256  gcc/testsuite/g++.dg/abi/mangle3.C
! 8e5a5b931b1491b101190dc53cb5bf77  gcc/testsuite/g++.dg/abi/mangle30.C
! 13633dcf96cb50988a92cf548dff31cb  gcc/testsuite/g++.dg/abi/mangle31.C
! b48e7182fabb06803a1416d7e8d5cc88  gcc/testsuite/g++.dg/abi/mangle32.C
! 7827967edbef8ed339892203348797df  gcc/testsuite/g++.dg/abi/mangle33.C
! 2754e6c53882e50f3a22554550067ef1  gcc/testsuite/g++.dg/abi/mangle34.C
! 00e7a5d7cfaf0421ab0ccb4f4764c0be  gcc/testsuite/g++.dg/abi/mangle35.C
! cce4c67a841bd521be785fa4162dbefb  gcc/testsuite/g++.dg/abi/mangle36.C
! 52b5969f6eb98652bd1d145e64b3b0e8  gcc/testsuite/g++.dg/abi/mangle37.C
! 7722a7d911a308b93e12f3b4757df135  gcc/testsuite/g++.dg/abi/mangle39.C
! 23e63119eba8ad650d1474e7e724b972  gcc/testsuite/g++.dg/abi/mangle40.C
  4d733eb555077176700ed4afac5f073b  gcc/testsuite/g++.dg/abi/mangle41.C
  b3b6730af33c92c56cb913746c0fd666  gcc/testsuite/g++.dg/abi/mangle42.C
! 87d68b4c27a09a6b273d53fd1ac67be2  gcc/testsuite/g++.dg/abi/mangle43.C
! 9c988f84715431366d71a7c072196e1b  gcc/testsuite/g++.dg/abi/mangle44.C
! 435d1dc4f8ca4bc45b864d5f404f11e6  gcc/testsuite/g++.dg/abi/mangle45.C
! e2fc150d746b05b2efcbaf25872d2c83  gcc/testsuite/g++.dg/abi/mangle46.C
! 4009582483095411518a77750d9f066f  gcc/testsuite/g++.dg/abi/mangle47.C
! 229e613758fe9cd9c984c41607c9dcb8  gcc/testsuite/g++.dg/abi/mangle48.C
! 20162f439e90f0e0b2257f5f08668742  gcc/testsuite/g++.dg/abi/mangle49.C
! 8d713f873b380f7cb5bf13fe8019b486  gcc/testsuite/g++.dg/abi/mangle5.C
! a84434f5c46a2c8ce5e8fc7546a02ebd  gcc/testsuite/g++.dg/abi/mangle50.C
! 34fb30b2f192e308ecc1674dc3ba8b78  gcc/testsuite/g++.dg/abi/mangle51.C
! 1147b07a0fef33ae8c193d3d7348e448  gcc/testsuite/g++.dg/abi/mangle52.C
! cbb3c939ee68895d2bb77783d61e7f6b  gcc/testsuite/g++.dg/abi/mangle53.C
! d43f8e727dca25ae9ab67e20413201c0  gcc/testsuite/g++.dg/abi/mangle54.C
! b9028edde34a935e2d9b697792d95a8c  gcc/testsuite/g++.dg/abi/mangle55.C
! bf267f0818c0365757d528f8dd92f3f1  gcc/testsuite/g++.dg/abi/mangle56.C
! 5db957dbf34db3344abc28d58ab2b976  gcc/testsuite/g++.dg/abi/mangle57.C
! 675b121d8ae9c1d2a4eaf58824700b6c  gcc/testsuite/g++.dg/abi/mangle58.C
! 5aba3b4bebca1124ddec61a651ff3b89  gcc/testsuite/g++.dg/abi/mangle59.C
! 91c28df1b9796be812f1b833d650c6b1  gcc/testsuite/g++.dg/abi/mangle6.C
! ec63081e18506c793d02c80cc21c1a2a  gcc/testsuite/g++.dg/abi/mangle60.C
! 66684a770eb87b4824cb6e758ae0f0ca  gcc/testsuite/g++.dg/abi/mangle61.C
! 8d9a81b5b61f5fa8ee70ef05226c794b  gcc/testsuite/g++.dg/abi/mangle62.C
! 670459589d766e483f0fb8e346aee828  gcc/testsuite/g++.dg/abi/mangle62a.C
! cd207cce9213418d57092b0421db04a0  gcc/testsuite/g++.dg/abi/mangle63.C
! 73b6ee16e2e77300b5cc3753374deb2b  gcc/testsuite/g++.dg/abi/mangle64.C
! 3dcc065de55f8fca0dfe6700c69d01a3  gcc/testsuite/g++.dg/abi/mangle65.C
! 0a42e1f025b2e8b96ace7e0c9fcda449  gcc/testsuite/g++.dg/abi/mangle66.C
  23d654790fab8d07b451df46dadd0b3e  gcc/testsuite/g++.dg/abi/mangle67.C
! 91e5834ed3f44a9d5d43bcec0c4599b3  gcc/testsuite/g++.dg/abi/mangle68.C
! 0d690ffa5424c03eaf7dafd4d6ddb50c  gcc/testsuite/g++.dg/abi/mangle69.C
! 0cdd24a1b15598b312927e271f3f773e  gcc/testsuite/g++.dg/abi/mangle7.C
! 09d5c0b39937ef8fcdbd59cc1b8a35f3  gcc/testsuite/g++.dg/abi/mangle70.C
! 1841423b488b171815dd9599f75d32d6  gcc/testsuite/g++.dg/abi/mangle71.C
! e8f728908ea1c92ddf0ca367f3ddd8ef  gcc/testsuite/g++.dg/abi/mangle72.C
! b3ecb552fa1904358ec43eadbf16a954  gcc/testsuite/g++.dg/abi/mangle73.C
! 1e408015b0df315173c32e6b3f5736cc  gcc/testsuite/g++.dg/abi/mangle74.C
! 0016fd51a6bc2e14276cddc1051332e2  gcc/testsuite/g++.dg/abi/mangle75.C
! 1a979c9a72e11be89ad73eaf79638eda  gcc/testsuite/g++.dg/abi/mangle76.C
! e5c7e131b3b1de43068d98300d1a745c  gcc/testsuite/g++.dg/abi/mangle77.C
! cc6afae4c242d6e5a9083cec1a9a9907  gcc/testsuite/g++.dg/abi/mangle8.C
! 7e14b0353ae53e5a5a8bcf850c4fcbc9  gcc/testsuite/g++.dg/abi/mangle9.C
  d85264fae2b4c2eb4d8629cb29c42e90  gcc/testsuite/g++.dg/abi/no-linkage-expr1.C
  0cccf158230e7bf1d438169164c8020a  gcc/testsuite/g++.dg/abi/no-weak1.C
  d225468019d278bd912122141926f160  gcc/testsuite/g++.dg/abi/no_unique_address1.C
--- 13926,14017 ----
  1b56fef803fe85ec97121919ad3ba2b9  gcc/testsuite/g++.dg/abi/local1-a.cc
  4ab5160617737559c38e1ffb650b797e  gcc/testsuite/g++.dg/abi/local1.C
  34ecb36205a7c22314ddda92d332a23d  gcc/testsuite/g++.dg/abi/local2.C
! cb778797562a162b72b39cfba0cc3188  gcc/testsuite/g++.dg/abi/macro0.C
  06f0193b05c4ae743af4e38aec8d1122  gcc/testsuite/g++.dg/abi/macro2.C
  5a637c99e4aa66fa130b6c1d893fc41e  gcc/testsuite/g++.dg/abi/main.C
! 2d2735797226ba822f20bc9fdf737f7e  gcc/testsuite/g++.dg/abi/mangle-arm-crypto.C
! 8fa1b15f4b3dc6b4e5a254690adfcb61  gcc/testsuite/g++.dg/abi/mangle-concepts1.C
! 61e0326c5031ee52c2d6f8ba1dc748dc  gcc/testsuite/g++.dg/abi/mangle-neon-aarch64.C
! ad92c723d1e80f05d9f35deb51fa2634  gcc/testsuite/g++.dg/abi/mangle-neon.C
! 9b8d821e6926cbc69b2464e7016210e6  gcc/testsuite/g++.dg/abi/mangle-regparm.C
! 769d9a1ce7dda86bf62f8cceba27216a  gcc/testsuite/g++.dg/abi/mangle-regparm1a.C
! 683d273f7a4481306d20ed785c1d122f  gcc/testsuite/g++.dg/abi/mangle-ttp1.C
! 2bf2b2b32ea23abd24bfcabcde7d2a6a  gcc/testsuite/g++.dg/abi/mangle-union1.C
! 5e94edc723dfdbbd971982151251cae3  gcc/testsuite/g++.dg/abi/mangle1.C
! 67767c9988084f28a3c29af0c9e34d2f  gcc/testsuite/g++.dg/abi/mangle10.C
! b99e258a9b112a189be8471163121e9a  gcc/testsuite/g++.dg/abi/mangle13.C
! c725405daaacb49e8bb670b03926b8c1  gcc/testsuite/g++.dg/abi/mangle15.C
! 076cf205bc7b8428b586a95efd3d2ac1  gcc/testsuite/g++.dg/abi/mangle16.C
! 51e380f2508ff94899c8742ab95be2a2  gcc/testsuite/g++.dg/abi/mangle18-1.C
! 2ef980d44fdb34e72f0c87da8d3377b9  gcc/testsuite/g++.dg/abi/mangle19-1.C
  2fe54fcb3681eed20518e8a88f7e3849  gcc/testsuite/g++.dg/abi/mangle2.C
! 565ba98d3c25674e61b43878c18c7d9a  gcc/testsuite/g++.dg/abi/mangle20-1.C
  19d5bab4f182e97a38690a5ff4541700  gcc/testsuite/g++.dg/abi/mangle21.C
! f59f2b575b66baeeb172a2161daa3ad0  gcc/testsuite/g++.dg/abi/mangle22.C
! 9ce15f30f6df19b2f67a77d6d28facba  gcc/testsuite/g++.dg/abi/mangle23.C
! 7ce779024a41f23095fcfea33d51943b  gcc/testsuite/g++.dg/abi/mangle24.C
! 31e2e0d073f2f207759c06b90b0c8379  gcc/testsuite/g++.dg/abi/mangle25.C
! 9d7a2459998d7a9fe2edc54d09bdc51a  gcc/testsuite/g++.dg/abi/mangle26.C
! c0f3916c269f3ead4ffd509d1050dc10  gcc/testsuite/g++.dg/abi/mangle27.C
! a27eecc33462108a28f380d359e4cad7  gcc/testsuite/g++.dg/abi/mangle28.C
! fe15d1671255bf7329a17b2b4a6959f8  gcc/testsuite/g++.dg/abi/mangle29.C
! e75cc5b4f93d93fcfc58348033957996  gcc/testsuite/g++.dg/abi/mangle3-2.C
! c7fa9241c0ab7d0401991f95a43f04e8  gcc/testsuite/g++.dg/abi/mangle3.C
! 666480c5f3eb1ad457b8b7413869913c  gcc/testsuite/g++.dg/abi/mangle30.C
! bcb919314b5f7777d2da63935127cd54  gcc/testsuite/g++.dg/abi/mangle31.C
! b300099c7e5174547565083d8c78c65a  gcc/testsuite/g++.dg/abi/mangle32.C
! ff7a522e4b75ffd7f2c9c22596bb9d35  gcc/testsuite/g++.dg/abi/mangle33.C
! 03db5b2978331b389723d875ecce081a  gcc/testsuite/g++.dg/abi/mangle34.C
! 58775a282efb6a2018bdf401ea217bd0  gcc/testsuite/g++.dg/abi/mangle35.C
! ae5f2057177a2db77838bf985afe396c  gcc/testsuite/g++.dg/abi/mangle36.C
! acf8d67d245967fdaa95cde8673c4e48  gcc/testsuite/g++.dg/abi/mangle37.C
! 3d824624411a63f63d6336ba31f3d22c  gcc/testsuite/g++.dg/abi/mangle39.C
! d1eefd84cf6c9245fb94bb6803eead92  gcc/testsuite/g++.dg/abi/mangle40.C
  4d733eb555077176700ed4afac5f073b  gcc/testsuite/g++.dg/abi/mangle41.C
  b3b6730af33c92c56cb913746c0fd666  gcc/testsuite/g++.dg/abi/mangle42.C
! 1b6cb0839583a17224beec0b38c0bd0b  gcc/testsuite/g++.dg/abi/mangle43.C
! e5ad3d0cdb04a6e6e6d42f21b71736dc  gcc/testsuite/g++.dg/abi/mangle44.C
! a25058987c0cffb0223359f36bd639bb  gcc/testsuite/g++.dg/abi/mangle45.C
! 76eec6994056b3fec13c9c80f358a86f  gcc/testsuite/g++.dg/abi/mangle46.C
! 63a3d1cd34290e057bfba76d0652f23c  gcc/testsuite/g++.dg/abi/mangle47.C
! 1bc327a5d65f81e955284e5bf5aed9d1  gcc/testsuite/g++.dg/abi/mangle48.C
! ac09aed76b1ff38843bbef8657029b78  gcc/testsuite/g++.dg/abi/mangle49.C
! bf7524887f5e8b1d49d1c83302275ed7  gcc/testsuite/g++.dg/abi/mangle5.C
! b8e8d52694a489a17b7dd4276d0afe44  gcc/testsuite/g++.dg/abi/mangle50.C
! 31f95799db4f50f549e44035a334578b  gcc/testsuite/g++.dg/abi/mangle51.C
! 97bc99b4a91a4f0a486e00197b59b086  gcc/testsuite/g++.dg/abi/mangle52.C
! d999671c6c6614f05b2712a34cd8a17d  gcc/testsuite/g++.dg/abi/mangle53.C
! 415e224419a7a632e23209eca62211db  gcc/testsuite/g++.dg/abi/mangle54.C
! 0e58e5f7c56d793d0c9a5a4ff69688a5  gcc/testsuite/g++.dg/abi/mangle55.C
! ab78118aa073357c06b59a4201728103  gcc/testsuite/g++.dg/abi/mangle56.C
! 6b6796490f3cc55cfc86a66523ed36f5  gcc/testsuite/g++.dg/abi/mangle57.C
! 018d2c63d935eaf9a6853d57e5df665b  gcc/testsuite/g++.dg/abi/mangle58.C
! 26e5c0ec5d07cc5f65a48fdbc2378f54  gcc/testsuite/g++.dg/abi/mangle59.C
! dc1a1f63b70546329ff29c1b14907c04  gcc/testsuite/g++.dg/abi/mangle6.C
! 74c95235c145839906394923176ba858  gcc/testsuite/g++.dg/abi/mangle60.C
! 887644a27e4472219d98a122121fd119  gcc/testsuite/g++.dg/abi/mangle61.C
! 1cef2f8db514b2cb412d0e1948625256  gcc/testsuite/g++.dg/abi/mangle62.C
! de2eaa7873a0bb81cc30ccddf487f521  gcc/testsuite/g++.dg/abi/mangle62a.C
! df351b7f819b8f16fbad0e1607fd0e91  gcc/testsuite/g++.dg/abi/mangle63.C
! 2141df2dd92e1a2558ff7260f02a2e46  gcc/testsuite/g++.dg/abi/mangle64.C
! 153326e9f29473abdae84d1088182f72  gcc/testsuite/g++.dg/abi/mangle65.C
! e4b37a8b1f9b88f44146091ace4e92e3  gcc/testsuite/g++.dg/abi/mangle66.C
  23d654790fab8d07b451df46dadd0b3e  gcc/testsuite/g++.dg/abi/mangle67.C
! 01169031d2e3a5c95261d7712474b3c5  gcc/testsuite/g++.dg/abi/mangle68.C
! d38901b61d8e8c42e6c0084cde0eaec0  gcc/testsuite/g++.dg/abi/mangle69.C
! 4e18883743424637f2461cbb62065c42  gcc/testsuite/g++.dg/abi/mangle7.C
! 3c3aaa9ca00ea21834e3634a5232928f  gcc/testsuite/g++.dg/abi/mangle70.C
! 35cffbd99967a46bf956e73ee1b3f015  gcc/testsuite/g++.dg/abi/mangle71.C
! 3203c44de34714bd8a23fd6d2d8afbc6  gcc/testsuite/g++.dg/abi/mangle72.C
! 349dbb69d60b741455bdec33b60f07b7  gcc/testsuite/g++.dg/abi/mangle73.C
! 83cb6ef6e231d0e515e9dfb5f237c4b2  gcc/testsuite/g++.dg/abi/mangle74.C
! 20b3d9277c53dc12edcc27818e247f14  gcc/testsuite/g++.dg/abi/mangle75.C
! 1aaa5a84d891196d161f2e982bf108b2  gcc/testsuite/g++.dg/abi/mangle76.C
! 9589ca965734b41ddfa8999e07f25f80  gcc/testsuite/g++.dg/abi/mangle77.C
! 8fbd7742a94fa0b7419ef7f21c24dd43  gcc/testsuite/g++.dg/abi/mangle78.C
! d987b63109ee0eb4b7f916f91d8d24be  gcc/testsuite/g++.dg/abi/mangle79.C
! eeee984fc971f0592acc52efb13ea93e  gcc/testsuite/g++.dg/abi/mangle8.C
! 8c95c7ea3760b8a1e7954b3da9f45a16  gcc/testsuite/g++.dg/abi/mangle9.C
  d85264fae2b4c2eb4d8629cb29c42e90  gcc/testsuite/g++.dg/abi/no-linkage-expr1.C
  0cccf158230e7bf1d438169164c8020a  gcc/testsuite/g++.dg/abi/no-weak1.C
  d225468019d278bd912122141926f160  gcc/testsuite/g++.dg/abi/no_unique_address1.C
*************** dc946b2841ac32fc9fd34522264439b5  gcc/te
*** 12835,12848 ****
  2e75f55031268b8e445a244515ca63f0  gcc/testsuite/g++.dg/abi/no_unique_address5.C
  d974d143c86cea668485a435c71e0e98  gcc/testsuite/g++.dg/abi/no_unique_address6.C
  0dea7bd02ebf8d5259503a9339ae7e41  gcc/testsuite/g++.dg/abi/no_unique_address7.C
  6d86ff25fe0e7bc030ff238bd833862a  gcc/testsuite/g++.dg/abi/noreturn1.C
  c57345fa3b5ca1a7540c77ee0ce25605  gcc/testsuite/g++.dg/abi/noreturn2.C
  6cfa463b31864926599a103492701f5e  gcc/testsuite/g++.dg/abi/nsdmi-aggr1.C
  4a1564d0fc5555f57e65545a60482540  gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C
  39432d801ca8ec61309ef8049d99d222  gcc/testsuite/g++.dg/abi/nullptr-align.C
  40aa8920043c7a566e640f5317c18f1f  gcc/testsuite/g++.dg/abi/nullptr-align2.C
- f56cfc930682b0322a618b55658899d7  gcc/testsuite/g++.dg/abi/nvptx-nrv1.C
- 69b98e4d49ee1ff392c750c6d3d024ab  gcc/testsuite/g++.dg/abi/nvptx-ptrmem1.C
  b1579268264426b91fb29ca4a7ae6672  gcc/testsuite/g++.dg/abi/offsetof.C
  ed79cf5bf3c45230ee9187c4cf51338e  gcc/testsuite/g++.dg/abi/packed1.C
  a6094bf319c105760bebe41768865b66  gcc/testsuite/g++.dg/abi/param1.C
--- 14021,14034 ----
  2e75f55031268b8e445a244515ca63f0  gcc/testsuite/g++.dg/abi/no_unique_address5.C
  d974d143c86cea668485a435c71e0e98  gcc/testsuite/g++.dg/abi/no_unique_address6.C
  0dea7bd02ebf8d5259503a9339ae7e41  gcc/testsuite/g++.dg/abi/no_unique_address7.C
+ 222bb265d834efa67f42799b2c8346e4  gcc/testsuite/g++.dg/abi/no_unique_address8.C
+ cb81409286cfde0873e944ba80b2826e  gcc/testsuite/g++.dg/abi/no_unique_address8a.C
  6d86ff25fe0e7bc030ff238bd833862a  gcc/testsuite/g++.dg/abi/noreturn1.C
  c57345fa3b5ca1a7540c77ee0ce25605  gcc/testsuite/g++.dg/abi/noreturn2.C
  6cfa463b31864926599a103492701f5e  gcc/testsuite/g++.dg/abi/nsdmi-aggr1.C
  4a1564d0fc5555f57e65545a60482540  gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C
  39432d801ca8ec61309ef8049d99d222  gcc/testsuite/g++.dg/abi/nullptr-align.C
  40aa8920043c7a566e640f5317c18f1f  gcc/testsuite/g++.dg/abi/nullptr-align2.C
  b1579268264426b91fb29ca4a7ae6672  gcc/testsuite/g++.dg/abi/offsetof.C
  ed79cf5bf3c45230ee9187c4cf51338e  gcc/testsuite/g++.dg/abi/packed1.C
  a6094bf319c105760bebe41768865b66  gcc/testsuite/g++.dg/abi/param1.C
*************** a612359f7851a82e1755e8a1d7d750c8  gcc/te
*** 12882,12888 ****
  fcd31b037e301fd0bc75088f33016314  gcc/testsuite/g++.dg/abi/pr98531-4.C
  4a1543932abd77ea1cfba28eecdeeef4  gcc/testsuite/g++.dg/abi/pragma-pack1.C
  1fe05d7ab8ab4e934af55d25129c75ce  gcc/testsuite/g++.dg/abi/pure-virtual1.C
! 2b576a18b3eaae586de7d82ddcfeb8f0  gcc/testsuite/g++.dg/abi/ref-temp1.C
  758c2fd81af2f42665b56b5d21b15e9f  gcc/testsuite/g++.dg/abi/regparm1.C
  d90943e976dded1f4182aeb500d1f2c7  gcc/testsuite/g++.dg/abi/rtti1.C
  8deae0db66776c34c77f2551c9679b7c  gcc/testsuite/g++.dg/abi/rtti2.C
--- 14068,14074 ----
  fcd31b037e301fd0bc75088f33016314  gcc/testsuite/g++.dg/abi/pr98531-4.C
  4a1543932abd77ea1cfba28eecdeeef4  gcc/testsuite/g++.dg/abi/pragma-pack1.C
  1fe05d7ab8ab4e934af55d25129c75ce  gcc/testsuite/g++.dg/abi/pure-virtual1.C
! 07cf3aaffde4420f68a9950d198b9b50  gcc/testsuite/g++.dg/abi/ref-temp1.C
  758c2fd81af2f42665b56b5d21b15e9f  gcc/testsuite/g++.dg/abi/regparm1.C
  d90943e976dded1f4182aeb500d1f2c7  gcc/testsuite/g++.dg/abi/rtti1.C
  8deae0db66776c34c77f2551c9679b7c  gcc/testsuite/g++.dg/abi/rtti2.C
*************** a3ef49aa5fa035e0eaa1fb23c589fe61  gcc/te
*** 12913,12923 ****
  6881f6a907aed22e3604db9a81d71753  gcc/testsuite/g++.dg/abi/vthunk3.C
  59cdef1c2f5ac26231205b723cb9ea52  gcc/testsuite/g++.dg/abi/vtt1.C
  cb66889e261971e64a6568617bffaeaa  gcc/testsuite/g++.dg/addr_builtin-1.C
! 6647d06a99286b30547c2340a766f7fe  gcc/testsuite/g++.dg/analyzer/analyzer.exp
  0918dccee8951925f7bc4640874a6cd3  gcc/testsuite/g++.dg/analyzer/cstdlib-2.C
  b1051c81ee9929eae4057f7d1ce5ecd2  gcc/testsuite/g++.dg/analyzer/cstdlib.C
  7951a855cc080064bcfdf98631e39a2e  gcc/testsuite/g++.dg/analyzer/ctor-dtor-1.C
  d1eaf073a251f60143e80284bc5a504c  gcc/testsuite/g++.dg/analyzer/dyncast-1.C
  c930c1631af9c06ed7dbcd2e167abaff  gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C
  5ada15fa323a1043ed8e9454047ae98f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-1.C
  3ab5a03785e0beb328826ec97a100dfe  gcc/testsuite/g++.dg/analyzer/infinite-recursion-2.C
--- 14099,14112 ----
  6881f6a907aed22e3604db9a81d71753  gcc/testsuite/g++.dg/abi/vthunk3.C
  59cdef1c2f5ac26231205b723cb9ea52  gcc/testsuite/g++.dg/abi/vtt1.C
  cb66889e261971e64a6568617bffaeaa  gcc/testsuite/g++.dg/addr_builtin-1.C
! 8912b54490e20101a190287fddb390f8  gcc/testsuite/g++.dg/analyzer/analyzer.exp
  0918dccee8951925f7bc4640874a6cd3  gcc/testsuite/g++.dg/analyzer/cstdlib-2.C
  b1051c81ee9929eae4057f7d1ce5ecd2  gcc/testsuite/g++.dg/analyzer/cstdlib.C
  7951a855cc080064bcfdf98631e39a2e  gcc/testsuite/g++.dg/analyzer/ctor-dtor-1.C
  d1eaf073a251f60143e80284bc5a504c  gcc/testsuite/g++.dg/analyzer/dyncast-1.C
+ b5f7e42a515111c2a2c61cba0b6dc085  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C
+ 43d845a88294d03caa424f370bae2ce1  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C
+ eed0910feffb5ff8a66dbbd8967034ec  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C
  c930c1631af9c06ed7dbcd2e167abaff  gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C
  5ada15fa323a1043ed8e9454047ae98f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-1.C
  3ab5a03785e0beb328826ec97a100dfe  gcc/testsuite/g++.dg/analyzer/infinite-recursion-2.C
*************** c930c1631af9c06ed7dbcd2e167abaff  gcc/te
*** 12925,12933 ****
  e618363917558f650a6b91cce53eb8d2  gcc/testsuite/g++.dg/analyzer/malloc.C
  172304701d90affbd3b1d50e2367e8f2  gcc/testsuite/g++.dg/analyzer/named-functions.C
  7292fd874dc6a2a17f2f505c44add678  gcc/testsuite/g++.dg/analyzer/new-1.C
  bcda06f94e400d0e9992cb49d4db7fdb  gcc/testsuite/g++.dg/analyzer/new-vs-malloc.C
! 55d5c569cc7f4543ab686b03b2b4015e  gcc/testsuite/g++.dg/analyzer/out-of-bounds-placement-new.C
! 39dffeb2dfa6a606367678b8e0c26ba4  gcc/testsuite/g++.dg/analyzer/placement-new.C
  9740438440ab651939b2a10e2a3fb9f1  gcc/testsuite/g++.dg/analyzer/pr100244.C
  d4bc63615a492ebed26cfe6dcaccf3f8  gcc/testsuite/g++.dg/analyzer/pr101522.C
  f196621f1d8a0f8a5cd5899222a61f1b  gcc/testsuite/g++.dg/analyzer/pr102662.C
--- 14114,14125 ----
  e618363917558f650a6b91cce53eb8d2  gcc/testsuite/g++.dg/analyzer/malloc.C
  172304701d90affbd3b1d50e2367e8f2  gcc/testsuite/g++.dg/analyzer/named-functions.C
  7292fd874dc6a2a17f2f505c44add678  gcc/testsuite/g++.dg/analyzer/new-1.C
+ ef1104f0fab7e60076227be92ea94c36  gcc/testsuite/g++.dg/analyzer/new-2.C
  bcda06f94e400d0e9992cb49d4db7fdb  gcc/testsuite/g++.dg/analyzer/new-vs-malloc.C
! 0fba7e84073188da184220b270ab31e6  gcc/testsuite/g++.dg/analyzer/noexcept-new.C
! 154cef97930d4b392059ba0eb566928e  gcc/testsuite/g++.dg/analyzer/out-of-bounds-placement-new.C
! 4d1b1241e56a2914011d1f6e58139909  gcc/testsuite/g++.dg/analyzer/placement-new-size.C
! 4336313eae16e86d135b8982798efa70  gcc/testsuite/g++.dg/analyzer/placement-new.C
  9740438440ab651939b2a10e2a3fb9f1  gcc/testsuite/g++.dg/analyzer/pr100244.C
  d4bc63615a492ebed26cfe6dcaccf3f8  gcc/testsuite/g++.dg/analyzer/pr101522.C
  f196621f1d8a0f8a5cd5899222a61f1b  gcc/testsuite/g++.dg/analyzer/pr102662.C
*************** b355f66bf32fab6d4e4348cbfdd707d2  gcc/te
*** 12954,12960 ****
  13526f89c6948b95aef336c0a8d9d75c  gcc/testsuite/g++.dg/analyzer/vfunc-3.C
  9b9a001e3dcd409dc5312ef55387e581  gcc/testsuite/g++.dg/analyzer/vfunc-4.C
  f211479ac4d0a91cf570369c53463c2d  gcc/testsuite/g++.dg/analyzer/vfunc-5.C
! b008fb144cd6e372a583571143eb01fc  gcc/testsuite/g++.dg/asan/asan.exp
  aaab0b483d6b43b9fb8facfcf01ac3b3  gcc/testsuite/g++.dg/asan/asan_globals_test-wrapper.cc
  58f1893fa192cc0429f68ba9628696b9  gcc/testsuite/g++.dg/asan/asan_globals_test.cc
  bb93dc37aa98920c58cec65159b0c54a  gcc/testsuite/g++.dg/asan/asan_mem_test.cc
--- 14146,14152 ----
  13526f89c6948b95aef336c0a8d9d75c  gcc/testsuite/g++.dg/analyzer/vfunc-3.C
  9b9a001e3dcd409dc5312ef55387e581  gcc/testsuite/g++.dg/analyzer/vfunc-4.C
  f211479ac4d0a91cf570369c53463c2d  gcc/testsuite/g++.dg/analyzer/vfunc-5.C
! eb1f04a2f923d17de40d560c0efdda11  gcc/testsuite/g++.dg/asan/asan.exp
  aaab0b483d6b43b9fb8facfcf01ac3b3  gcc/testsuite/g++.dg/asan/asan_globals_test-wrapper.cc
  58f1893fa192cc0429f68ba9628696b9  gcc/testsuite/g++.dg/asan/asan_globals_test.cc
  bb93dc37aa98920c58cec65159b0c54a  gcc/testsuite/g++.dg/asan/asan_mem_test.cc
*************** b12b848862ca9a5a126f8b4e8792dc16  gcc/te
*** 12974,12979 ****
--- 14166,14172 ----
  4adc70d309d06b0a3b945fc6ae2ce74c  gcc/testsuite/g++.dg/asan/function-argument-2.C
  755ec68ccd2c79e025ea8d5f7e65347d  gcc/testsuite/g++.dg/asan/function-argument-3.C
  c7018c25d3568fc8c57341e5f27c2399  gcc/testsuite/g++.dg/asan/function-argument-4.C
+ 257a4180217ed5717b78ec5bfca099f9  gcc/testsuite/g++.dg/asan/initlist1.C
  23a150302e388ceffe71037fe85813ef  gcc/testsuite/g++.dg/asan/interception-failure-test-1.C
  fb777e6427f4a224508112af8340c3d4  gcc/testsuite/g++.dg/asan/interception-malloc-test-1.C
  5528ec64328b52adcb592f8a39c2ea36  gcc/testsuite/g++.dg/asan/interception-test-1.C
*************** e472f2ce37f2b55b1358ec08717d9f08  gcc/te
*** 12984,12990 ****
  74a04a20e12a8acd0fd7d05742cf8d63  gcc/testsuite/g++.dg/asan/pr62017.C
  505943436d80a41b5e95bf0b67db97cd  gcc/testsuite/g++.dg/asan/pr64937.C
  461bc5f4392764dda9dd67ad1c3ab6a0  gcc/testsuite/g++.dg/asan/pr65004.C
! b4933e6257ffe7874c63bb5463f4ee98  gcc/testsuite/g++.dg/asan/pr69276.C
  86c19e1b42266f9002fd92e21d16f1d7  gcc/testsuite/g++.dg/asan/pr77396-2.C
  68963853257ccf17297ec53bb77fa2bf  gcc/testsuite/g++.dg/asan/pr77396.C
  5ce2469706c2beff887e6cb5f8d929aa  gcc/testsuite/g++.dg/asan/pr78201.C
--- 14177,14183 ----
  74a04a20e12a8acd0fd7d05742cf8d63  gcc/testsuite/g++.dg/asan/pr62017.C
  505943436d80a41b5e95bf0b67db97cd  gcc/testsuite/g++.dg/asan/pr64937.C
  461bc5f4392764dda9dd67ad1c3ab6a0  gcc/testsuite/g++.dg/asan/pr65004.C
! 6607bd84a53790c4bf92782cf9fa07f6  gcc/testsuite/g++.dg/asan/pr69276.C
  86c19e1b42266f9002fd92e21d16f1d7  gcc/testsuite/g++.dg/asan/pr77396-2.C
  68963853257ccf17297ec53bb77fa2bf  gcc/testsuite/g++.dg/asan/pr77396.C
  5ce2469706c2beff887e6cb5f8d929aa  gcc/testsuite/g++.dg/asan/pr78201.C
*************** e0fa4a9e3d3debbc97f800a78bdcbfdb  gcc/te
*** 13023,13029 ****
  d0f4a6bb82734b4bff2e3839790242cb  gcc/testsuite/g++.dg/auto-init-uninit-pred-2_a.C
  f7f7c06ac90f234094ae984c3c676df3  gcc/testsuite/g++.dg/auto-init-uninit-pred-3_a.C
  6076d42dd1204b922d5fb0babad714f5  gcc/testsuite/g++.dg/auto-init-uninit-pred-4.C
! 72096e9d9cea04a488d2fdab3dc0a469  gcc/testsuite/g++.dg/bprob/bprob.exp
  6683eda46cb30a95dcb3ae310aa86684  gcc/testsuite/g++.dg/bprob/g++-bprob-1.C
  91292dc36de1287d9de59661dd0c8c78  gcc/testsuite/g++.dg/bprob/g++-bprob-2.C
  eb7c2ac5d3e686273e3fe6fe17a3abe4  gcc/testsuite/g++.dg/cdce3.C
--- 14216,14222 ----
  d0f4a6bb82734b4bff2e3839790242cb  gcc/testsuite/g++.dg/auto-init-uninit-pred-2_a.C
  f7f7c06ac90f234094ae984c3c676df3  gcc/testsuite/g++.dg/auto-init-uninit-pred-3_a.C
  6076d42dd1204b922d5fb0babad714f5  gcc/testsuite/g++.dg/auto-init-uninit-pred-4.C
! 77fb7d687f7d8cd923389754a5007cd5  gcc/testsuite/g++.dg/bprob/bprob.exp
  6683eda46cb30a95dcb3ae310aa86684  gcc/testsuite/g++.dg/bprob/g++-bprob-1.C
  91292dc36de1287d9de59661dd0c8c78  gcc/testsuite/g++.dg/bprob/g++-bprob-2.C
  eb7c2ac5d3e686273e3fe6fe17a3abe4  gcc/testsuite/g++.dg/cdce3.C
*************** bd34927c7e8ef0637a91744aa30c8e22  gcc/te
*** 13035,13041 ****
  13aa9df754ce327f35901d755310d167  gcc/testsuite/g++.dg/charset/asm5.c
  188e64ef71cd1832cf590f89eb899d5b  gcc/testsuite/g++.dg/charset/attribute1.c
  5ec905da0c5303d292f6f23f2befdd9b  gcc/testsuite/g++.dg/charset/attribute2.c
! d3f3fa8b91626950dc5251df25d4f0c2  gcc/testsuite/g++.dg/charset/charset.exp
  c3f1b1efe5249f47d609a5022d321c0a  gcc/testsuite/g++.dg/charset/extern1.cc
  e00c15044b80ea8ae41ddca791f728b5  gcc/testsuite/g++.dg/charset/extern2.cc
  8c029ca8175e4d8995ea0dbac6040733  gcc/testsuite/g++.dg/charset/extern3.cc
--- 14228,14234 ----
  13aa9df754ce327f35901d755310d167  gcc/testsuite/g++.dg/charset/asm5.c
  188e64ef71cd1832cf590f89eb899d5b  gcc/testsuite/g++.dg/charset/attribute1.c
  5ec905da0c5303d292f6f23f2befdd9b  gcc/testsuite/g++.dg/charset/attribute2.c
! 5360fb8aeacfa43cf97f791f63edb873  gcc/testsuite/g++.dg/charset/charset.exp
  c3f1b1efe5249f47d609a5022d321c0a  gcc/testsuite/g++.dg/charset/extern1.cc
  e00c15044b80ea8ae41ddca791f728b5  gcc/testsuite/g++.dg/charset/extern2.cc
  8c029ca8175e4d8995ea0dbac6040733  gcc/testsuite/g++.dg/charset/extern3.cc
*************** f21dc1eb54ea34814c912bb958cc243b  gcc/te
*** 13074,13080 ****
  3e6b5a438641d0fa418b9b6b59dc9ad5  gcc/testsuite/g++.dg/compat/abi/vbase8-4_main.C
  218fc83d35fc2202ce2c23a8d88a2a0e  gcc/testsuite/g++.dg/compat/abi/vbase8-4_x.C
  ad654d45c988963d6d91e514325cd68c  gcc/testsuite/g++.dg/compat/abi/vbase8-4_y.C
! 64ef03d5bf5ea316c23686def651885a  gcc/testsuite/g++.dg/compat/break/README
  a1f42f9828f95c9f3dd670a142b67209  gcc/testsuite/g++.dg/compat/break/bitfield5.h
  a4f5bc9b9eeba848df2b3660451312e5  gcc/testsuite/g++.dg/compat/break/bitfield5_main.C
  34a963a4f73f5fc81a2a3c61cb1410b4  gcc/testsuite/g++.dg/compat/break/bitfield5_x.C
--- 14267,14273 ----
  3e6b5a438641d0fa418b9b6b59dc9ad5  gcc/testsuite/g++.dg/compat/abi/vbase8-4_main.C
  218fc83d35fc2202ce2c23a8d88a2a0e  gcc/testsuite/g++.dg/compat/abi/vbase8-4_x.C
  ad654d45c988963d6d91e514325cd68c  gcc/testsuite/g++.dg/compat/abi/vbase8-4_y.C
! 85459ce70e6c415f10486b56d4754905  gcc/testsuite/g++.dg/compat/break/README
  a1f42f9828f95c9f3dd670a142b67209  gcc/testsuite/g++.dg/compat/break/bitfield5.h
  a4f5bc9b9eeba848df2b3660451312e5  gcc/testsuite/g++.dg/compat/break/bitfield5_main.C
  34a963a4f73f5fc81a2a3c61cb1410b4  gcc/testsuite/g++.dg/compat/break/bitfield5_x.C
*************** d9e96ae25c2319373bcfd08d3028762f  gcc/te
*** 13095,13181 ****
  c066ba2e23a50eda1497704cad37719c  gcc/testsuite/g++.dg/compat/break/vbase11_main.C
  cc9fd160c8ac0d554f08ed78757c1ad7  gcc/testsuite/g++.dg/compat/break/vbase11_x.C
  3af15235a86640de95ef01c264b9a669  gcc/testsuite/g++.dg/compat/break/vbase11_y.C
! a9eedc5784617d16dcac0a6f3bcee8e7  gcc/testsuite/g++.dg/compat/compat.exp
  d84d0fab6bdaa40e3302c2dc1bd89d10  gcc/testsuite/g++.dg/compat/decimal/compat-common.h
  5606bac1873edfc020404d944e030ebb  gcc/testsuite/g++.dg/compat/decimal/decimal-dummy.h
! 3d52f6f9878705d4ff92b2d02c56e07f  gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C
  c027c4ef6ec797c90cbc98c05266664e  gcc/testsuite/g++.dg/compat/decimal/pass-1_x.C
  63c726e2524a407354a4fb9c4f79b448  gcc/testsuite/g++.dg/compat/decimal/pass-1_y.C
! 42a5831bc77e9e99fbdab7a59a454b09  gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C
  6b9b84489333fbd996ec72496d006e73  gcc/testsuite/g++.dg/compat/decimal/pass-2_x.C
  ca1bba6a40295ff3128187890d5a16cd  gcc/testsuite/g++.dg/compat/decimal/pass-2_y.C
! 3c812010be10bd7f4215556c16404ef6  gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C
  75ea4dd02335f0bdf65d7168dc6c967d  gcc/testsuite/g++.dg/compat/decimal/pass-3_x.C
  ca1bba6a40295ff3128187890d5a16cd  gcc/testsuite/g++.dg/compat/decimal/pass-3_y.C
! e662279b41f7f1dcfb9fabbcb6f8e5c2  gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C
  fd5ef936b5fb3766306280c5f887ad63  gcc/testsuite/g++.dg/compat/decimal/pass-4_x.C
  63c726e2524a407354a4fb9c4f79b448  gcc/testsuite/g++.dg/compat/decimal/pass-4_y.C
! 75550d7eaadf6ba72e07f069911b6480  gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C
  fb14cc8dffa715de29c90d882974db6c  gcc/testsuite/g++.dg/compat/decimal/pass-5_x.C
  910d3d296a1464ace7bfa54ddbcbc416  gcc/testsuite/g++.dg/compat/decimal/pass-5_y.C
! d272b4a10ff39116ab9bc6638979565b  gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C
  2f42ee81c370812b355666b434a83dbc  gcc/testsuite/g++.dg/compat/decimal/pass-6_x.C
  63c726e2524a407354a4fb9c4f79b448  gcc/testsuite/g++.dg/compat/decimal/pass-6_y.C
  8062d7cecff4c784899cae189fac6b99  gcc/testsuite/g++.dg/compat/decimal/pass_x.h
  305383ec044f1692e77ac54cf563bfa8  gcc/testsuite/g++.dg/compat/decimal/pass_y.h
! e449b850f29d772e9eec535431f50451  gcc/testsuite/g++.dg/compat/decimal/return-1_main.C
  4d32570016fb308a772614b1fe7459e9  gcc/testsuite/g++.dg/compat/decimal/return-1_x.C
  1c4c3a46340bffbeb7448e3944b56af5  gcc/testsuite/g++.dg/compat/decimal/return-1_y.C
! 3cfa1b8706e775a56f52e99325f9bec4  gcc/testsuite/g++.dg/compat/decimal/return-2_main.C
  fa0de4eb00993b7c80536b4527f84f4f  gcc/testsuite/g++.dg/compat/decimal/return-2_x.C
  8ee49e566731921ff85662f9cf779e47  gcc/testsuite/g++.dg/compat/decimal/return-2_y.C
! 18ffbfc4606da5fc4cd0652135f322d2  gcc/testsuite/g++.dg/compat/decimal/return-3_main.C
  55c4a4ff2d88bfdba5126f3a4c59985a  gcc/testsuite/g++.dg/compat/decimal/return-3_x.C
  8ee49e566731921ff85662f9cf779e47  gcc/testsuite/g++.dg/compat/decimal/return-3_y.C
! 0bc0495f590cb937e82c2b73d6f6f3b3  gcc/testsuite/g++.dg/compat/decimal/return-4_main.C
  07248c6cd9c5d6d13f8cf56db11ab164  gcc/testsuite/g++.dg/compat/decimal/return-4_x.C
  1c4c3a46340bffbeb7448e3944b56af5  gcc/testsuite/g++.dg/compat/decimal/return-4_y.C
! d840e8f4f4b656028a9b33b5134ccd36  gcc/testsuite/g++.dg/compat/decimal/return-5_main.C
  3461c975d3da10abb009d6ea307ab5ee  gcc/testsuite/g++.dg/compat/decimal/return-5_x.C
  3a3ac52e59a125693fe4345a6a532afb  gcc/testsuite/g++.dg/compat/decimal/return-5_y.C
! ba6c996afa9cb4dc11db2aa825a51b85  gcc/testsuite/g++.dg/compat/decimal/return-6_main.C
  e56e43d0532d60c70a011e42043180b7  gcc/testsuite/g++.dg/compat/decimal/return-6_x.C
  1c4c3a46340bffbeb7448e3944b56af5  gcc/testsuite/g++.dg/compat/decimal/return-6_y.C
  e4f583531de3ac56a04e762c58210492  gcc/testsuite/g++.dg/compat/decimal/return_x.h
  d2d1fbe69a3e695f1600aee13ca88a69  gcc/testsuite/g++.dg/compat/decimal/return_y.h
  0c2eb7d1226b758bcb1733d9bf8b0b46  gcc/testsuite/g++.dg/compat/eh/ctor1.h
! 74d8ae87a4aa4945c36db0894fcdbc87  gcc/testsuite/g++.dg/compat/eh/ctor1_main.C
  5919ecfa4fa000ff8d0708eff1caafd0  gcc/testsuite/g++.dg/compat/eh/ctor1_x.C
  8ff38218d158bac08b6caf24b573a9b4  gcc/testsuite/g++.dg/compat/eh/ctor1_y.C
  dbe334405981f1783a938d9118edd931  gcc/testsuite/g++.dg/compat/eh/ctor2.h
! 7713c99be0210f9b2e363d5de46782ac  gcc/testsuite/g++.dg/compat/eh/ctor2_main.C
  dc791f03d52ef00f1ce479d2884f1c7a  gcc/testsuite/g++.dg/compat/eh/ctor2_x.C
  0f35be1d041aff390ee492433aa2d4e2  gcc/testsuite/g++.dg/compat/eh/ctor2_y.C
  ad1392b599ab8373e4b8d65402e4d302  gcc/testsuite/g++.dg/compat/eh/dtor1.h
! be684e295c4596152951b27d97ac5230  gcc/testsuite/g++.dg/compat/eh/dtor1_main.C
  f1c6d9efd6c764f87b1c7f64adfdc065  gcc/testsuite/g++.dg/compat/eh/dtor1_x.C
  387901206dc245414a4deeecde9f8323  gcc/testsuite/g++.dg/compat/eh/dtor1_y.C
  6d5384db9406a65c3c811152362c880c  gcc/testsuite/g++.dg/compat/eh/filter1.h
! 9c2ea2f2cc5e5b2283f45eeade96358c  gcc/testsuite/g++.dg/compat/eh/filter1_main.C
  790ecc4df54d29594a1afbcd3eb446cc  gcc/testsuite/g++.dg/compat/eh/filter1_x.C
  59795c3025478139a06e32e485657745  gcc/testsuite/g++.dg/compat/eh/filter1_y.C
! f858c620725c1fa9e60d5f73d3262345  gcc/testsuite/g++.dg/compat/eh/filter2_main.C
  93ea6392a008bc4ab584a68bd3d08d74  gcc/testsuite/g++.dg/compat/eh/filter2_x.C
  c8721dc9e994c0f5165ab3b47a7bacc7  gcc/testsuite/g++.dg/compat/eh/filter2_y.C
! 38e1dfdb58be8ee752ace0ded7df8d8f  gcc/testsuite/g++.dg/compat/eh/new1_main.C
  32274bdb332d4c08c3c495f8eadaffd7  gcc/testsuite/g++.dg/compat/eh/new1_x.C
  2970c9d1070c0d448813e9ba88f9c95b  gcc/testsuite/g++.dg/compat/eh/new1_y.C
  02db6f02c86217656b398ab6d62cd873  gcc/testsuite/g++.dg/compat/eh/nrv1.h
! 4b1db86bc09112a3c5dcadf8c1f37ed2  gcc/testsuite/g++.dg/compat/eh/nrv1_main.C
  e9b38e15c3e28368fa741de9b55c0651  gcc/testsuite/g++.dg/compat/eh/nrv1_x.C
  ae8c6219513721a4472dc1c7400e69e3  gcc/testsuite/g++.dg/compat/eh/nrv1_y.C
  95d0afab283fa89bfab9fcb6c5d88250  gcc/testsuite/g++.dg/compat/eh/spec3.h
! 2a11bf025313b31a8e5c6f3a43e6e1cc  gcc/testsuite/g++.dg/compat/eh/spec3_main.C
  e9c0304f28f687b23ab669cdcb079eab  gcc/testsuite/g++.dg/compat/eh/spec3_x.C
  52186012c3c78673a40ab1fbe56c89be  gcc/testsuite/g++.dg/compat/eh/spec3_y.C
  546fcbd79e8e67fd61efee424fbcc4d0  gcc/testsuite/g++.dg/compat/eh/template1.h
! bcdcff6986bfc8964bcdb7735b5f4204  gcc/testsuite/g++.dg/compat/eh/template1_main.C
  cc55eca6c7503bffbb9c4c730b4fbc32  gcc/testsuite/g++.dg/compat/eh/template1_x.C
  e6954ac1ae67eacbb067ca0a7269df99  gcc/testsuite/g++.dg/compat/eh/template1_y.C
! 63e2df9df15791b47fb2317e1cda976a  gcc/testsuite/g++.dg/compat/eh/unexpected1_main.C
  1ac154a3f4da00438e0d2b3f3b70b29d  gcc/testsuite/g++.dg/compat/eh/unexpected1_x.C
  892c134d6ac693cea3316b7c9885d3c0  gcc/testsuite/g++.dg/compat/eh/unexpected1_y.C
! 0d33d626bee66f558cc5c7e31671ecae  gcc/testsuite/g++.dg/compat/init/array5_main.C
  438279b51e16057a308284319a9f6cf7  gcc/testsuite/g++.dg/compat/init/array5_x.C
  62b5c86b17cd8e9d808aa71dfe3c0efc  gcc/testsuite/g++.dg/compat/init/array5_y.C
  070481b30e60878a5485fe63759b4879  gcc/testsuite/g++.dg/compat/init/byval1.h
--- 14288,14374 ----
  c066ba2e23a50eda1497704cad37719c  gcc/testsuite/g++.dg/compat/break/vbase11_main.C
  cc9fd160c8ac0d554f08ed78757c1ad7  gcc/testsuite/g++.dg/compat/break/vbase11_x.C
  3af15235a86640de95ef01c264b9a669  gcc/testsuite/g++.dg/compat/break/vbase11_y.C
! 954ef8b3e950311bcbe7b7d6486aefb0  gcc/testsuite/g++.dg/compat/compat.exp
  d84d0fab6bdaa40e3302c2dc1bd89d10  gcc/testsuite/g++.dg/compat/decimal/compat-common.h
  5606bac1873edfc020404d944e030ebb  gcc/testsuite/g++.dg/compat/decimal/decimal-dummy.h
! 9c52086212425f7532ca661f890d93fc  gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C
  c027c4ef6ec797c90cbc98c05266664e  gcc/testsuite/g++.dg/compat/decimal/pass-1_x.C
  63c726e2524a407354a4fb9c4f79b448  gcc/testsuite/g++.dg/compat/decimal/pass-1_y.C
! 7e5b648a6af059bb660b3272d8eb9ae8  gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C
  6b9b84489333fbd996ec72496d006e73  gcc/testsuite/g++.dg/compat/decimal/pass-2_x.C
  ca1bba6a40295ff3128187890d5a16cd  gcc/testsuite/g++.dg/compat/decimal/pass-2_y.C
! 14e5e4fcf6ab2dd29e7fd848f838e778  gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C
  75ea4dd02335f0bdf65d7168dc6c967d  gcc/testsuite/g++.dg/compat/decimal/pass-3_x.C
  ca1bba6a40295ff3128187890d5a16cd  gcc/testsuite/g++.dg/compat/decimal/pass-3_y.C
! 49941b684ab4433b8074fbd3ca5c450e  gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C
  fd5ef936b5fb3766306280c5f887ad63  gcc/testsuite/g++.dg/compat/decimal/pass-4_x.C
  63c726e2524a407354a4fb9c4f79b448  gcc/testsuite/g++.dg/compat/decimal/pass-4_y.C
! 70650090f6afb625a3bbb5551966c153  gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C
  fb14cc8dffa715de29c90d882974db6c  gcc/testsuite/g++.dg/compat/decimal/pass-5_x.C
  910d3d296a1464ace7bfa54ddbcbc416  gcc/testsuite/g++.dg/compat/decimal/pass-5_y.C
! f2d1c24cccb9aea9333d72420e300920  gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C
  2f42ee81c370812b355666b434a83dbc  gcc/testsuite/g++.dg/compat/decimal/pass-6_x.C
  63c726e2524a407354a4fb9c4f79b448  gcc/testsuite/g++.dg/compat/decimal/pass-6_y.C
  8062d7cecff4c784899cae189fac6b99  gcc/testsuite/g++.dg/compat/decimal/pass_x.h
  305383ec044f1692e77ac54cf563bfa8  gcc/testsuite/g++.dg/compat/decimal/pass_y.h
! cdd7bad881b7d35920fe44015c5077f3  gcc/testsuite/g++.dg/compat/decimal/return-1_main.C
  4d32570016fb308a772614b1fe7459e9  gcc/testsuite/g++.dg/compat/decimal/return-1_x.C
  1c4c3a46340bffbeb7448e3944b56af5  gcc/testsuite/g++.dg/compat/decimal/return-1_y.C
! 670f5ae36e3b9c58501a2e8ae457ab36  gcc/testsuite/g++.dg/compat/decimal/return-2_main.C
  fa0de4eb00993b7c80536b4527f84f4f  gcc/testsuite/g++.dg/compat/decimal/return-2_x.C
  8ee49e566731921ff85662f9cf779e47  gcc/testsuite/g++.dg/compat/decimal/return-2_y.C
! f9283148f2e045b5cdfc3754a1bcbbcc  gcc/testsuite/g++.dg/compat/decimal/return-3_main.C
  55c4a4ff2d88bfdba5126f3a4c59985a  gcc/testsuite/g++.dg/compat/decimal/return-3_x.C
  8ee49e566731921ff85662f9cf779e47  gcc/testsuite/g++.dg/compat/decimal/return-3_y.C
! 72085a7dcca6f0bde97c809f0ad42fb2  gcc/testsuite/g++.dg/compat/decimal/return-4_main.C
  07248c6cd9c5d6d13f8cf56db11ab164  gcc/testsuite/g++.dg/compat/decimal/return-4_x.C
  1c4c3a46340bffbeb7448e3944b56af5  gcc/testsuite/g++.dg/compat/decimal/return-4_y.C
! 93682248cb089b23a3f3b166b1b6e09d  gcc/testsuite/g++.dg/compat/decimal/return-5_main.C
  3461c975d3da10abb009d6ea307ab5ee  gcc/testsuite/g++.dg/compat/decimal/return-5_x.C
  3a3ac52e59a125693fe4345a6a532afb  gcc/testsuite/g++.dg/compat/decimal/return-5_y.C
! 08937149c1ef31a7521251403d2bf362  gcc/testsuite/g++.dg/compat/decimal/return-6_main.C
  e56e43d0532d60c70a011e42043180b7  gcc/testsuite/g++.dg/compat/decimal/return-6_x.C
  1c4c3a46340bffbeb7448e3944b56af5  gcc/testsuite/g++.dg/compat/decimal/return-6_y.C
  e4f583531de3ac56a04e762c58210492  gcc/testsuite/g++.dg/compat/decimal/return_x.h
  d2d1fbe69a3e695f1600aee13ca88a69  gcc/testsuite/g++.dg/compat/decimal/return_y.h
  0c2eb7d1226b758bcb1733d9bf8b0b46  gcc/testsuite/g++.dg/compat/eh/ctor1.h
! 74ced94f6daa8fcd5f66f27034de6cb7  gcc/testsuite/g++.dg/compat/eh/ctor1_main.C
  5919ecfa4fa000ff8d0708eff1caafd0  gcc/testsuite/g++.dg/compat/eh/ctor1_x.C
  8ff38218d158bac08b6caf24b573a9b4  gcc/testsuite/g++.dg/compat/eh/ctor1_y.C
  dbe334405981f1783a938d9118edd931  gcc/testsuite/g++.dg/compat/eh/ctor2.h
! f5e5ce4a785e495b989c2ac08e1c531c  gcc/testsuite/g++.dg/compat/eh/ctor2_main.C
  dc791f03d52ef00f1ce479d2884f1c7a  gcc/testsuite/g++.dg/compat/eh/ctor2_x.C
  0f35be1d041aff390ee492433aa2d4e2  gcc/testsuite/g++.dg/compat/eh/ctor2_y.C
  ad1392b599ab8373e4b8d65402e4d302  gcc/testsuite/g++.dg/compat/eh/dtor1.h
! 78cf246848baf7da5813e7c66f5ed43e  gcc/testsuite/g++.dg/compat/eh/dtor1_main.C
  f1c6d9efd6c764f87b1c7f64adfdc065  gcc/testsuite/g++.dg/compat/eh/dtor1_x.C
  387901206dc245414a4deeecde9f8323  gcc/testsuite/g++.dg/compat/eh/dtor1_y.C
  6d5384db9406a65c3c811152362c880c  gcc/testsuite/g++.dg/compat/eh/filter1.h
! e63e2a91f6f2346d2aa9049265fb3730  gcc/testsuite/g++.dg/compat/eh/filter1_main.C
  790ecc4df54d29594a1afbcd3eb446cc  gcc/testsuite/g++.dg/compat/eh/filter1_x.C
  59795c3025478139a06e32e485657745  gcc/testsuite/g++.dg/compat/eh/filter1_y.C
! 42bdfbac9aaf9531e079648ae7c6f5d1  gcc/testsuite/g++.dg/compat/eh/filter2_main.C
  93ea6392a008bc4ab584a68bd3d08d74  gcc/testsuite/g++.dg/compat/eh/filter2_x.C
  c8721dc9e994c0f5165ab3b47a7bacc7  gcc/testsuite/g++.dg/compat/eh/filter2_y.C
! 163593c57bbedbfeaaa1478f54151007  gcc/testsuite/g++.dg/compat/eh/new1_main.C
  32274bdb332d4c08c3c495f8eadaffd7  gcc/testsuite/g++.dg/compat/eh/new1_x.C
  2970c9d1070c0d448813e9ba88f9c95b  gcc/testsuite/g++.dg/compat/eh/new1_y.C
  02db6f02c86217656b398ab6d62cd873  gcc/testsuite/g++.dg/compat/eh/nrv1.h
! b9dbb16a1105966f5c7b85f078218649  gcc/testsuite/g++.dg/compat/eh/nrv1_main.C
  e9b38e15c3e28368fa741de9b55c0651  gcc/testsuite/g++.dg/compat/eh/nrv1_x.C
  ae8c6219513721a4472dc1c7400e69e3  gcc/testsuite/g++.dg/compat/eh/nrv1_y.C
  95d0afab283fa89bfab9fcb6c5d88250  gcc/testsuite/g++.dg/compat/eh/spec3.h
! 9345500c2268a709ffa35fae1f3e3ef1  gcc/testsuite/g++.dg/compat/eh/spec3_main.C
  e9c0304f28f687b23ab669cdcb079eab  gcc/testsuite/g++.dg/compat/eh/spec3_x.C
  52186012c3c78673a40ab1fbe56c89be  gcc/testsuite/g++.dg/compat/eh/spec3_y.C
  546fcbd79e8e67fd61efee424fbcc4d0  gcc/testsuite/g++.dg/compat/eh/template1.h
! aa26d9fad34b9ed2c371ae5f2ffec723  gcc/testsuite/g++.dg/compat/eh/template1_main.C
  cc55eca6c7503bffbb9c4c730b4fbc32  gcc/testsuite/g++.dg/compat/eh/template1_x.C
  e6954ac1ae67eacbb067ca0a7269df99  gcc/testsuite/g++.dg/compat/eh/template1_y.C
! f859d46f662f64382fc51406db79b7b9  gcc/testsuite/g++.dg/compat/eh/unexpected1_main.C
  1ac154a3f4da00438e0d2b3f3b70b29d  gcc/testsuite/g++.dg/compat/eh/unexpected1_x.C
  892c134d6ac693cea3316b7c9885d3c0  gcc/testsuite/g++.dg/compat/eh/unexpected1_y.C
! 8bddc787d8061fa050f5204fb628d689  gcc/testsuite/g++.dg/compat/init/array5_main.C
  438279b51e16057a308284319a9f6cf7  gcc/testsuite/g++.dg/compat/init/array5_x.C
  62b5c86b17cd8e9d808aa71dfe3c0efc  gcc/testsuite/g++.dg/compat/init/array5_y.C
  070481b30e60878a5485fe63759b4879  gcc/testsuite/g++.dg/compat/init/byval1.h
*************** e6954ac1ae67eacbb067ca0a7269df99  gcc/te
*** 13197,13203 ****
  2b3d95c509a4be70d740edc005431765  gcc/testsuite/g++.dg/compat/pr102024_test.h
  5a1c23b6f9ed32ad835953cc5de843ad  gcc/testsuite/g++.dg/compat/pr102024_x.C
  9145407f3d1330de95b18aa4b816a2c5  gcc/testsuite/g++.dg/compat/pr102024_y.C
! 1d1fbf55c5fc68fbdd3073142392ba5c  gcc/testsuite/g++.dg/compat/struct-layout-1.exp
  b3150d6e06b56824040f5b2dadcf18ce  gcc/testsuite/g++.dg/compat/struct-layout-1.h
  78cfce9cf8a86fdda9aa267ac227bd42  gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
  e615a3a6c348fc2427a919e6edad325b  gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h
--- 14390,14396 ----
  2b3d95c509a4be70d740edc005431765  gcc/testsuite/g++.dg/compat/pr102024_test.h
  5a1c23b6f9ed32ad835953cc5de843ad  gcc/testsuite/g++.dg/compat/pr102024_x.C
  9145407f3d1330de95b18aa4b816a2c5  gcc/testsuite/g++.dg/compat/pr102024_y.C
! b7646134046e9cb554a7af7b446654ee  gcc/testsuite/g++.dg/compat/struct-layout-1.exp
  b3150d6e06b56824040f5b2dadcf18ce  gcc/testsuite/g++.dg/compat/struct-layout-1.h
  78cfce9cf8a86fdda9aa267ac227bd42  gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
  e615a3a6c348fc2427a919e6edad325b  gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h
*************** df6a0720deead1507c5a2beb3f89af53  gcc/te
*** 13220,13225 ****
--- 14413,14422 ----
  6cf0a17e07d37965e7023adb5e05206b  gcc/testsuite/g++.dg/concepts/auto4.C
  a0aa19106822133d891f4b19cc47c64e  gcc/testsuite/g++.dg/concepts/auto5.C
  6f61762cc3906c8114555ca94d52f557  gcc/testsuite/g++.dg/concepts/auto6.C
+ 18022fa8ea19075f5bc06b317be04b42  gcc/testsuite/g++.dg/concepts/auto7.C
+ f65e2142a166da8b2b63447fa4672ef7  gcc/testsuite/g++.dg/concepts/auto7a.C
+ 6f3883b91a55975c92be121766979e28  gcc/testsuite/g++.dg/concepts/auto8.C
+ d0ba5f4eb99a16285f8bffae3a78f09a  gcc/testsuite/g++.dg/concepts/auto8a.C
  49173b85bb8b75655228f01f64c004ca  gcc/testsuite/g++.dg/concepts/class-deduction1.C
  5dc917226c72dd84754c3174179aed16  gcc/testsuite/g++.dg/concepts/class5.C
  bd4f86c74afe71fd279bbd2ba2a9a19e  gcc/testsuite/g++.dg/concepts/class6.C
*************** fc3e1038d2ddd359b5ea90ab469aed59  gcc/te
*** 13236,13243 ****
  27a7858fa5861377320c52cf05cca000  gcc/testsuite/g++.dg/concepts/diagnostic16.C
  37fe9bc6efb6073ed748fadad6b16d34  gcc/testsuite/g++.dg/concepts/diagnostic17.C
  5eb8e1c2d451af20c10df785a0b37ff7  gcc/testsuite/g++.dg/concepts/diagnostic18.C
! d352f75f268eea6c2a42ba0bacd702bd  gcc/testsuite/g++.dg/concepts/diagnostic2.C
! e13c4d6a598c0e04a760d87586dfb82e  gcc/testsuite/g++.dg/concepts/diagnostic3.C
  16b69c7102110cf6646baa3518c9f7f6  gcc/testsuite/g++.dg/concepts/diagnostic4.C
  f7fdf5e1ceaf1a59cf71d50d58950a1e  gcc/testsuite/g++.dg/concepts/diagnostic5.C
  b383f5a2190e1234282797b64ffc0dc8  gcc/testsuite/g++.dg/concepts/diagnostic6.C
--- 14433,14441 ----
  27a7858fa5861377320c52cf05cca000  gcc/testsuite/g++.dg/concepts/diagnostic16.C
  37fe9bc6efb6073ed748fadad6b16d34  gcc/testsuite/g++.dg/concepts/diagnostic17.C
  5eb8e1c2d451af20c10df785a0b37ff7  gcc/testsuite/g++.dg/concepts/diagnostic18.C
! 2c6c2bbb5c70ea0348b7a61cc2466bd0  gcc/testsuite/g++.dg/concepts/diagnostic19.C
! d29d051e5212b88c9a7beafc8f4840ba  gcc/testsuite/g++.dg/concepts/diagnostic2.C
! 3b4b10993277ae58d06a6060fa529a40  gcc/testsuite/g++.dg/concepts/diagnostic3.C
  16b69c7102110cf6646baa3518c9f7f6  gcc/testsuite/g++.dg/concepts/diagnostic4.C
  f7fdf5e1ceaf1a59cf71d50d58950a1e  gcc/testsuite/g++.dg/concepts/diagnostic5.C
  b383f5a2190e1234282797b64ffc0dc8  gcc/testsuite/g++.dg/concepts/diagnostic6.C
*************** fcdfc85740e07281d796512f572f74f6  gcc/te
*** 13330,13336 ****
  733665a0da970554221b07285ee67a95  gcc/testsuite/g++.dg/concepts/template-template-parm1.C
  ccf48b433f4802f848268e43e7145638  gcc/testsuite/g++.dg/concepts/var-concept1.C
  703699d8f1709d1df869a3ea14cad6f1  gcc/testsuite/g++.dg/concepts/var-concept2.C
! 6b7f57fced2ca7f9cdf78b6d730652e1  gcc/testsuite/g++.dg/concepts/var-concept3.C
  28e0b2b22fb3022fe838e6b0e8ccdd1f  gcc/testsuite/g++.dg/concepts/var-concept4.C
  f0f37a50e825c23857ec563a647b2e30  gcc/testsuite/g++.dg/concepts/var-concept5.C
  bc053552d16aa28117182a45d21fa3ae  gcc/testsuite/g++.dg/concepts/var-concept6.C
--- 14528,14534 ----
  733665a0da970554221b07285ee67a95  gcc/testsuite/g++.dg/concepts/template-template-parm1.C
  ccf48b433f4802f848268e43e7145638  gcc/testsuite/g++.dg/concepts/var-concept1.C
  703699d8f1709d1df869a3ea14cad6f1  gcc/testsuite/g++.dg/concepts/var-concept2.C
! c4a2bddd2e1a65963cda9413caa02d2a  gcc/testsuite/g++.dg/concepts/var-concept3.C
  28e0b2b22fb3022fe838e6b0e8ccdd1f  gcc/testsuite/g++.dg/concepts/var-concept4.C
  f0f37a50e825c23857ec563a647b2e30  gcc/testsuite/g++.dg/concepts/var-concept5.C
  bc053552d16aa28117182a45d21fa3ae  gcc/testsuite/g++.dg/concepts/var-concept6.C
*************** d61ea23f366dae37350aa0dc5f2b4528  gcc/te
*** 13392,13397 ****
--- 14590,14596 ----
  fd1ebb08a8584706a94c2f3a8341af7c  gcc/testsuite/g++.dg/contracts/contracts-post4.C
  e2590b46b53ec704324172e6e9b19d6e  gcc/testsuite/g++.dg/contracts/contracts-post5.C
  c20bb9e2f528699a697643b507b9d245  gcc/testsuite/g++.dg/contracts/contracts-post6.C
+ fb5284080761ee0d5cbec4a0b0b466ec  gcc/testsuite/g++.dg/contracts/contracts-post7.C
  7116878ea39c2a20c71154e676cbcc1e  gcc/testsuite/g++.dg/contracts/contracts-pre1.C
  cff531ab03f42a3534984cf298438fd8  gcc/testsuite/g++.dg/contracts/contracts-pre10.C
  87645aaad36fe7c2eb1914d42651396d  gcc/testsuite/g++.dg/contracts/contracts-pre2.C
*************** cb6c3d1131c86c5625a7a5cd72e4eef3  gcc/te
*** 13413,13419 ****
  d53c0b0fc368bda6e8adfdda351d531e  gcc/testsuite/g++.dg/contracts/contracts-redecl8.C
  a7f4a2fd7bf07439040a7b09cb4c8072  gcc/testsuite/g++.dg/contracts/contracts-tmpl-attr1.C
  7c1d45833f1ebd693d4462f114a6d1ca  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C
! 9eada108c4e987678a19363dd058626d  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C
  00f7a59ada045702870670d10ee6e9b1  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C
  c210cba8e1e324774b6ab401c96deeb0  gcc/testsuite/g++.dg/contracts/contracts1.C
  cec25083828eb115f962e091a8ae65a6  gcc/testsuite/g++.dg/contracts/contracts10.C
--- 14612,14618 ----
  d53c0b0fc368bda6e8adfdda351d531e  gcc/testsuite/g++.dg/contracts/contracts-redecl8.C
  a7f4a2fd7bf07439040a7b09cb4c8072  gcc/testsuite/g++.dg/contracts/contracts-tmpl-attr1.C
  7c1d45833f1ebd693d4462f114a6d1ca  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C
! 8aa21f26589b4e119f0cbb25c9b9363d  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C
  00f7a59ada045702870670d10ee6e9b1  gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C
  c210cba8e1e324774b6ab401c96deeb0  gcc/testsuite/g++.dg/contracts/contracts1.C
  cec25083828eb115f962e091a8ae65a6  gcc/testsuite/g++.dg/contracts/contracts10.C
*************** ef29c53b1b9f00d76672c93f55d6f649  gcc/te
*** 13438,13444 ****
  927c495d30669473630db460e0c9b832  gcc/testsuite/g++.dg/contracts/contracts6.C
  e1d6233d79978f9b6aa6354d979510ea  gcc/testsuite/g++.dg/contracts/contracts7.C
  1ab07d07d8710623da3e3582c85a642c  gcc/testsuite/g++.dg/contracts/contracts8.C
! 9ff482b1dc611b79690ccf183a9f7800  gcc/testsuite/g++.dg/contracts/contracts9.C
  460175ab5b30061d80960faa912cdb56  gcc/testsuite/g++.dg/contracts/except_preload_handler/Makefile
  43408545b0dc258f8b9f1b20507a7228  gcc/testsuite/g++.dg/contracts/except_preload_handler/README
  898e3ee72371441be6b9914570dd1dba  gcc/testsuite/g++.dg/contracts/except_preload_handler/assert_fail.cpp
--- 14637,14643 ----
  927c495d30669473630db460e0c9b832  gcc/testsuite/g++.dg/contracts/contracts6.C
  e1d6233d79978f9b6aa6354d979510ea  gcc/testsuite/g++.dg/contracts/contracts7.C
  1ab07d07d8710623da3e3582c85a642c  gcc/testsuite/g++.dg/contracts/contracts8.C
! da7e9d42cf35a399a1a7eeaf4d2b278d  gcc/testsuite/g++.dg/contracts/contracts9.C
  460175ab5b30061d80960faa912cdb56  gcc/testsuite/g++.dg/contracts/except_preload_handler/Makefile
  43408545b0dc258f8b9f1b20507a7228  gcc/testsuite/g++.dg/contracts/except_preload_handler/README
  898e3ee72371441be6b9914570dd1dba  gcc/testsuite/g++.dg/contracts/except_preload_handler/assert_fail.cpp
*************** b3506f6da49052d7a7e20089f99f17b7  gcc/te
*** 13505,13511 ****
  9661d2d3622759ea353cb1cafe1633c9  gcc/testsuite/g++.dg/conversion/packed1.C
  5c78730bf80025f457f190a83a71fc4e  gcc/testsuite/g++.dg/conversion/packed2.C
  aadd9c8f0e37dbd4368b036b8516964b  gcc/testsuite/g++.dg/conversion/pr100635.C
! 9b3ae1f3e79f50fca27a3e00a91d2baa  gcc/testsuite/g++.dg/conversion/pr16333.C
  80a6e1d843531cfd52730f7dc0b64c85  gcc/testsuite/g++.dg/conversion/pr41426.C
  57621b2c950d1c44fdcadc7ab14ae9ac  gcc/testsuite/g++.dg/conversion/pr59879.C
  7c2baf81a4424b9894f9edf958000455  gcc/testsuite/g++.dg/conversion/pr66211.C
--- 14704,14710 ----
  9661d2d3622759ea353cb1cafe1633c9  gcc/testsuite/g++.dg/conversion/packed1.C
  5c78730bf80025f457f190a83a71fc4e  gcc/testsuite/g++.dg/conversion/packed2.C
  aadd9c8f0e37dbd4368b036b8516964b  gcc/testsuite/g++.dg/conversion/pr100635.C
! 785c9e8800fc108d94b96b24bf0740ee  gcc/testsuite/g++.dg/conversion/pr16333.C
  80a6e1d843531cfd52730f7dc0b64c85  gcc/testsuite/g++.dg/conversion/pr41426.C
  57621b2c950d1c44fdcadc7ab14ae9ac  gcc/testsuite/g++.dg/conversion/pr59879.C
  7c2baf81a4424b9894f9edf958000455  gcc/testsuite/g++.dg/conversion/pr66211.C
*************** ca578f19b2d380be0549cc9c2f904f2e  gcc/te
*** 13524,13529 ****
--- 14723,14731 ----
  d8a86369c88b1e698b51da5f95da9c9b  gcc/testsuite/g++.dg/conversion/qual3.C
  eb243a0f27cded7003b7b6eecd96f5d2  gcc/testsuite/g++.dg/conversion/real-to-int1.C
  53724dc0cd699d864fc77299b7051204  gcc/testsuite/g++.dg/conversion/ref1.C
+ 73fa4811a4b520eb8c9a90e81946664f  gcc/testsuite/g++.dg/conversion/ref10.C
+ 8814956216a4da6e964e3d3f16ed2170  gcc/testsuite/g++.dg/conversion/ref11.C
+ 69818179cafcffa12e7bcb6afae3512f  gcc/testsuite/g++.dg/conversion/ref12.C
  af773a52f134a886314eae7065bee26e  gcc/testsuite/g++.dg/conversion/ref2.C
  b80ab713758c51e69280fe2ae2dee7c9  gcc/testsuite/g++.dg/conversion/ref3.C
  407bbe8b3c959a948fc7df986c991e76  gcc/testsuite/g++.dg/conversion/ref4.C
*************** a3a3822acc6c0ae0b1c800209c7c3369  gcc/te
*** 13545,13550 ****
--- 14747,14753 ----
  7a062897a2b4fb8f55640e4a532239dd  gcc/testsuite/g++.dg/conversion/void1.C
  11a0651cbba544a16a3a99edc6dd1232  gcc/testsuite/g++.dg/conversion/void2.C
  328c92600a7878c243c41f5fbc6d94ff  gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C
+ ada1ece7347c7f19252ad084712f97d6  gcc/testsuite/g++.dg/coroutines/co-await-initlist2.C
  f74a9d1bf6640b367d56a51317dbd163  gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C
  d2633a9d9bd295c903ea6a188821ac3c  gcc/testsuite/g++.dg/coroutines/co-await-syntax-00-needs-expr.C
  cbcf61ac3695e850097b05502475b900  gcc/testsuite/g++.dg/coroutines/co-await-syntax-01-outside-fn.C
*************** cb41fef7448625fa4e0c8fd96e24fc4d  gcc/te
*** 13605,13611 ****
  478574fcd282b18447d13478fa0bec3f  gcc/testsuite/g++.dg/coroutines/coro1-missing-await-method.C
  6f5627b19b794cfdd383607165c8ad4e  gcc/testsuite/g++.dg/coroutines/coro1-refs-and-ctors.h
  6487c0454968e62ff493f215450a35cc  gcc/testsuite/g++.dg/coroutines/coro1-ret-int-yield-int.h
! 142be698101d91634e7bdcc3b4b5f42f  gcc/testsuite/g++.dg/coroutines/coroutines.exp
  38480902b130e861149d8b8b006e7e6b  gcc/testsuite/g++.dg/coroutines/pr100127.C
  98a063ad16e26b41bc64224b581301b8  gcc/testsuite/g++.dg/coroutines/pr100611.C
  46087ea7fe5f7e548d1db1fe2bd1cdf7  gcc/testsuite/g++.dg/coroutines/pr100673.C
--- 14808,14814 ----
  478574fcd282b18447d13478fa0bec3f  gcc/testsuite/g++.dg/coroutines/coro1-missing-await-method.C
  6f5627b19b794cfdd383607165c8ad4e  gcc/testsuite/g++.dg/coroutines/coro1-refs-and-ctors.h
  6487c0454968e62ff493f215450a35cc  gcc/testsuite/g++.dg/coroutines/coro1-ret-int-yield-int.h
! 101a458de5b12d6ed22922527d4908a3  gcc/testsuite/g++.dg/coroutines/coroutines.exp
  38480902b130e861149d8b8b006e7e6b  gcc/testsuite/g++.dg/coroutines/pr100127.C
  98a063ad16e26b41bc64224b581301b8  gcc/testsuite/g++.dg/coroutines/pr100611.C
  46087ea7fe5f7e548d1db1fe2bd1cdf7  gcc/testsuite/g++.dg/coroutines/pr100673.C
*************** eeb744d3368ba25e26be1112d9ca230c  gcc/te
*** 13812,13820 ****
  12fd1c77554f9cb58eb3af864b5a91b4  gcc/testsuite/g++.dg/cpp/delimited-escape-seq-1.C
  c2644de4e523a3ce340a11a1240a0665  gcc/testsuite/g++.dg/cpp/delimited-escape-seq-2.C
  1cf46e6ce91a8ddaa768b5a2cecff8be  gcc/testsuite/g++.dg/cpp/elifdef-1.C
! 55ade09c97b6c14f1e745916fdd8e1c7  gcc/testsuite/g++.dg/cpp/elifdef-2.C
  6a7cfe44863944df11dbbc4cc7affa72  gcc/testsuite/g++.dg/cpp/elifdef-3.C
! cd98bb75a2905b4efb0b0e28772e6089  gcc/testsuite/g++.dg/cpp/elifdef-4.C
  7d166fd683540bb46bab4f5591f6cb7a  gcc/testsuite/g++.dg/cpp/elifdef-5.C
  a02fdbd418bcf04f05b9c831f60efdff  gcc/testsuite/g++.dg/cpp/elifdef-6.C
  1494c84b56e510e0fb687cc28d257e80  gcc/testsuite/g++.dg/cpp/elifdef-7.C
--- 15015,15023 ----
  12fd1c77554f9cb58eb3af864b5a91b4  gcc/testsuite/g++.dg/cpp/delimited-escape-seq-1.C
  c2644de4e523a3ce340a11a1240a0665  gcc/testsuite/g++.dg/cpp/delimited-escape-seq-2.C
  1cf46e6ce91a8ddaa768b5a2cecff8be  gcc/testsuite/g++.dg/cpp/elifdef-1.C
! f63f3ccc3937a7f431fdcbc3416c5e71  gcc/testsuite/g++.dg/cpp/elifdef-2.C
  6a7cfe44863944df11dbbc4cc7affa72  gcc/testsuite/g++.dg/cpp/elifdef-3.C
! 80d0d42b6e5ad6ddd47755429d2b86da  gcc/testsuite/g++.dg/cpp/elifdef-4.C
  7d166fd683540bb46bab4f5591f6cb7a  gcc/testsuite/g++.dg/cpp/elifdef-5.C
  a02fdbd418bcf04f05b9c831f60efdff  gcc/testsuite/g++.dg/cpp/elifdef-6.C
  1494c84b56e510e0fb687cc28d257e80  gcc/testsuite/g++.dg/cpp/elifdef-7.C
*************** ead0211c86f0bdd9b5ba312b097e6661  gcc/te
*** 13829,13835 ****
  e8c9f921aabceacddf429e950c792f1d  gcc/testsuite/g++.dg/cpp/pr23827_cxx98.C
  b087a7523d0c72cdc440e2fb7cbd71f7  gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C
  2b0b21d8b2fe290be2917f151d4a5783  gcc/testsuite/g++.dg/cpp/pr53690.C
! aa5ec21136e18dfcb8f14dc88ae5e9c2  gcc/testsuite/g++.dg/cpp/pr64127.C
  6ed6f17e3b2dc37b32cfd2a923f940fa  gcc/testsuite/g++.dg/cpp/pr80005.C
  1918c3e74bdfae76dc033786056b6c75  gcc/testsuite/g++.dg/cpp/pr83602.C
  3913be0d35b0c2d704cda15ffc55701e  gcc/testsuite/g++.dg/cpp/pragma-float-const-decimal64-1.C
--- 15032,15038 ----
  e8c9f921aabceacddf429e950c792f1d  gcc/testsuite/g++.dg/cpp/pr23827_cxx98.C
  b087a7523d0c72cdc440e2fb7cbd71f7  gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C
  2b0b21d8b2fe290be2917f151d4a5783  gcc/testsuite/g++.dg/cpp/pr53690.C
! f56dc61998b2ad3f59d8be4a67961437  gcc/testsuite/g++.dg/cpp/pr64127.C
  6ed6f17e3b2dc37b32cfd2a923f940fa  gcc/testsuite/g++.dg/cpp/pr80005.C
  1918c3e74bdfae76dc033786056b6c75  gcc/testsuite/g++.dg/cpp/pr83602.C
  3913be0d35b0c2d704cda15ffc55701e  gcc/testsuite/g++.dg/cpp/pragma-float-const-decimal64-1.C
*************** aa5ec21136e18dfcb8f14dc88ae5e9c2  gcc/te
*** 13837,13847 ****
--- 15040,15052 ----
  ead0ed22e4b6b79f8450b4a030173cbc  gcc/testsuite/g++.dg/cpp/string-1.C
  f84dfddf756951bbf37a1a9e3972a445  gcc/testsuite/g++.dg/cpp/string-2.C
  bd0549c40900a8f050eb69c787548ddf  gcc/testsuite/g++.dg/cpp/string-3.C
+ e90e4c82878e84f0f4a744bb7e997868  gcc/testsuite/g++.dg/cpp/string-4.C
  9b49b49677814c73da8c0db6d2d2811c  gcc/testsuite/g++.dg/cpp/stringop-1.C
  7f78c2a96f75c80605950b24c40f72bf  gcc/testsuite/g++.dg/cpp/syshdr3.C
  57c7663de020fb8be24c6eb80efeda0b  gcc/testsuite/g++.dg/cpp/syshdr3.h
  d80eeb1b5ab70a413bed1a37f44a69d6  gcc/testsuite/g++.dg/cpp/truefalse.C
  2cd39b3f2dd56ebb9d95ad2fc9977e0d  gcc/testsuite/g++.dg/cpp/ucn-1.C
+ 3e6e35324179b882b0adaa99fb61457d  gcc/testsuite/g++.dg/cpp/ucn-2.C
  6a2a40588f05a7aa42c9288e3695ab25  gcc/testsuite/g++.dg/cpp/ucnid-1-utf8.C
  aed5e9b084469df5f53338297df34ac5  gcc/testsuite/g++.dg/cpp/ucnid-1.C
  79e2374ae788bd2f2d3d7e394cf6fbaa  gcc/testsuite/g++.dg/cpp/ucnid-2-utf8.C
*************** b128409123afa20f665fe2d5e291048c  gcc/te
*** 13872,13877 ****
--- 15077,15086 ----
  e62a4dedf879dc2231d0301f8e3e4934  gcc/testsuite/g++.dg/cpp0x/Wnarrowing19.C
  24c57c9d07145952c5515888f1ebb983  gcc/testsuite/g++.dg/cpp0x/Wnarrowing2.C
  0ccf7e4424e95a86f4347e035c3cb729  gcc/testsuite/g++.dg/cpp0x/Wnarrowing20.C
+ 250b47f29180195c6fa6ef7125ca4177  gcc/testsuite/g++.dg/cpp0x/Wnarrowing21a.C
+ be95df875a5e753c49e7e81f4f8bc5f4  gcc/testsuite/g++.dg/cpp0x/Wnarrowing21b.C
+ 9ef57d45f139fb425b1c01396aae9019  gcc/testsuite/g++.dg/cpp0x/Wnarrowing21c.C
+ 2ad64a56567e70f262f5c4b85d33ae93  gcc/testsuite/g++.dg/cpp0x/Wnarrowing21d.C
  74bb2cd707774dcc79b45b939b21d2a8  gcc/testsuite/g++.dg/cpp0x/Wnarrowing3.C
  98f5997ac53fff61b85f99bfe358a506  gcc/testsuite/g++.dg/cpp0x/Wnarrowing4.C
  9f7e6ccafa0bff14072fa13cf9d8fe16  gcc/testsuite/g++.dg/cpp0x/Wnarrowing5.C
*************** acffea557d5dc888edca87b798ec9cf1  gcc/te
*** 13993,13998 ****
--- 15202,15211 ----
  d5f8995eb967b699d6937c5a92465df7  gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C
  b363cc23eaa94cfb4d642e0e990d1ff1  gcc/testsuite/g++.dg/cpp0x/alias-decl-73.C
  2721f38b2811c2ff06ae54c5c96790df  gcc/testsuite/g++.dg/cpp0x/alias-decl-74.C
+ d4ec52ca85cf03da6e84d3a566290f64  gcc/testsuite/g++.dg/cpp0x/alias-decl-75.C
+ 03e8d472e5bf73e311486fd8e18c59ce  gcc/testsuite/g++.dg/cpp0x/alias-decl-75a.C
+ 18986a269f63a5154ee51126f8720a4a  gcc/testsuite/g++.dg/cpp0x/alias-decl-75b.C
+ b7603919caddaa5fd970651b9b859a39  gcc/testsuite/g++.dg/cpp0x/alias-decl-76.C
  77aa48fcd9f9b9ffab08fa7ebc5d52e2  gcc/testsuite/g++.dg/cpp0x/alias-decl-8.C
  0fea677a266ad89646463d41e4df0566  gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
  2b0ac9ee7e77902ee76b92dfbfcc37b3  gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C
*************** cc6f68db48a7d48195916001cb0b7b64  gcc/te
*** 14003,14008 ****
--- 15216,15222 ----
  830a80101d211b99c4fce4c743aa6771  gcc/testsuite/g++.dg/cpp0x/alias-decl-enum-1.C
  0b019bac5dcafdd642abe83896a7483d  gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C
  e612eae08131c21ee29889099ea83336  gcc/testsuite/g++.dg/cpp0x/alias-decl-mem1.C
+ 2bb10f989c487746162ff9b96f780fb1  gcc/testsuite/g++.dg/cpp0x/alias-decl-nontype1.C
  42802675fdf183e36c26b59ce2188fbd  gcc/testsuite/g++.dg/cpp0x/alias-decl-pmf1.C
  276db5de570a4b8f2cfb42b6fc5b0a0b  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-1.C
  2a4fbf633a4b91c09573d05167888906  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-2.C
*************** e612eae08131c21ee29889099ea83336  gcc/te
*** 14010,14016 ****
  40651f96c24fbc6da71f67630650ea18  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-4.C
  2828cf381230838bedb15702c2b763f2  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr96805.C
  615df70052d63b7ad5ab632bb7f1f346  gcc/testsuite/g++.dg/cpp0x/alias-decl-targ1.C
! 4b5e85e9ef4806957401c0d1483b5450  gcc/testsuite/g++.dg/cpp0x/alias-decl-ttp1.C
  0bb3f63511b9329ed3397481d34f4eea  gcc/testsuite/g++.dg/cpp0x/alias-decl-ttp2.C
  f5ed750984341c509996395f9c245964  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic1.C
  4801ac3f92233a9abd7960d6704f81a5  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C
--- 15224,15230 ----
  40651f96c24fbc6da71f67630650ea18  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-4.C
  2828cf381230838bedb15702c2b763f2  gcc/testsuite/g++.dg/cpp0x/alias-decl-pr96805.C
  615df70052d63b7ad5ab632bb7f1f346  gcc/testsuite/g++.dg/cpp0x/alias-decl-targ1.C
! ff79517e369278761b322fd3cbfa2dc9  gcc/testsuite/g++.dg/cpp0x/alias-decl-ttp1.C
  0bb3f63511b9329ed3397481d34f4eea  gcc/testsuite/g++.dg/cpp0x/alias-decl-ttp2.C
  f5ed750984341c509996395f9c245964  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic1.C
  4801ac3f92233a9abd7960d6704f81a5  gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C
*************** b35867f02e7caf046836737e0d4b667e  gcc/te
*** 14120,14126 ****
  6642c72ead137f2bb8a517db00fdeee3  gcc/testsuite/g++.dg/cpp0x/bracket5.C
  60c9e4061e9464e18b501e582a2d19cc  gcc/testsuite/g++.dg/cpp0x/cast-bug.C
  f8373b05e3cb679fdfff8bcc4791646b  gcc/testsuite/g++.dg/cpp0x/cast.C
! c11fb9d024f89aea2e027172cee4bda2  gcc/testsuite/g++.dg/cpp0x/catch1.C
  9a0377c9d1c995200cbed48fa160d8a6  gcc/testsuite/g++.dg/cpp0x/collapse-bug.C
  00e99c6cae64f722f78b0f72a5209b78  gcc/testsuite/g++.dg/cpp0x/collapse.C
  5337801b3f3b1399a7748f6f77351f43  gcc/testsuite/g++.dg/cpp0x/cond1.C
--- 15334,15340 ----
  6642c72ead137f2bb8a517db00fdeee3  gcc/testsuite/g++.dg/cpp0x/bracket5.C
  60c9e4061e9464e18b501e582a2d19cc  gcc/testsuite/g++.dg/cpp0x/cast-bug.C
  f8373b05e3cb679fdfff8bcc4791646b  gcc/testsuite/g++.dg/cpp0x/cast.C
! b8cd89a7510ad4bbf02ec052d02d2ee0  gcc/testsuite/g++.dg/cpp0x/catch1.C
  9a0377c9d1c995200cbed48fa160d8a6  gcc/testsuite/g++.dg/cpp0x/collapse-bug.C
  00e99c6cae64f722f78b0f72a5209b78  gcc/testsuite/g++.dg/cpp0x/collapse.C
  5337801b3f3b1399a7748f6f77351f43  gcc/testsuite/g++.dg/cpp0x/cond1.C
*************** c11fb9d024f89aea2e027172cee4bda2  gcc/te
*** 14129,14140 ****
  5319a9de79517accc19d4cb1801c0616  gcc/testsuite/g++.dg/cpp0x/constexpr-104226.C
  eeac975a1b841cef4d5a4c468314ed8c  gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C
  6ef86dfa8bcd129320f2714974f8ad93  gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C
  3e4cac522763806230540d3da6cc5ee1  gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C
  d079e67f3b2be485ac7aed93b70984d2  gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C
  329a82a822423273c0c0256fd27a6d52  gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C
  ef8dda06a9ddee5426e22a4748805573  gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C
! e981df042a28ce01d06c01014e80178d  gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C
! 05455c7490955fa650d7437850c74d08  gcc/testsuite/g++.dg/cpp0x/constexpr-48324.C
  82f2c8f0f5c7475480d4139049080a32  gcc/testsuite/g++.dg/cpp0x/constexpr-49776.C
  ac98415dcf1478783865ded48b802514  gcc/testsuite/g++.dg/cpp0x/constexpr-50060.C
  69387d7c268c12f5a7c3abe522df05bf  gcc/testsuite/g++.dg/cpp0x/constexpr-51369.C
--- 15343,15355 ----
  5319a9de79517accc19d4cb1801c0616  gcc/testsuite/g++.dg/cpp0x/constexpr-104226.C
  eeac975a1b841cef4d5a4c468314ed8c  gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C
  6ef86dfa8bcd129320f2714974f8ad93  gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C
+ 24bbf6c5e0f31296c48440d4dae33447  gcc/testsuite/g++.dg/cpp0x/constexpr-113083.C
  3e4cac522763806230540d3da6cc5ee1  gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C
  d079e67f3b2be485ac7aed93b70984d2  gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C
  329a82a822423273c0c0256fd27a6d52  gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C
  ef8dda06a9ddee5426e22a4748805573  gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C
! edfc59ee7fab71f9d17ee2857f232475  gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C
! 4c61c3a69befc094cb2d4ae2c3b1b178  gcc/testsuite/g++.dg/cpp0x/constexpr-48324.C
  82f2c8f0f5c7475480d4139049080a32  gcc/testsuite/g++.dg/cpp0x/constexpr-49776.C
  ac98415dcf1478783865ded48b802514  gcc/testsuite/g++.dg/cpp0x/constexpr-50060.C
  69387d7c268c12f5a7c3abe522df05bf  gcc/testsuite/g++.dg/cpp0x/constexpr-51369.C
*************** bf6a1a2ec9530a412bf9a3f7e95df3c8  gcc/te
*** 14180,14187 ****
  0f8db74a4f4db29acf48fd0a0cf80732  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-4.C
  f7b8a5ff4283fd43f4dffd9d5fafd5c9  gcc/testsuite/g++.dg/cpp0x/constexpr-70204a.C
  6d2a7bdbddfaf87d584b814bf1961f04  gcc/testsuite/g++.dg/cpp0x/constexpr-70204b.C
! 1e08fff2b2aecd8d981d3bc9bdec86a2  gcc/testsuite/g++.dg/cpp0x/constexpr-70323.C
! aa41699e56a27b02170cc57be10b3a5e  gcc/testsuite/g++.dg/cpp0x/constexpr-70323a.C
  82c50bc8422508fb44939870cc6c206e  gcc/testsuite/g++.dg/cpp0x/constexpr-71537.C
  34638f51d99af855474a3feb1f02e5d7  gcc/testsuite/g++.dg/cpp0x/constexpr-71828.C
  3232d16dd5c0ff4902f3535a7b6fd04e  gcc/testsuite/g++.dg/cpp0x/constexpr-71988.C
--- 15395,15402 ----
  0f8db74a4f4db29acf48fd0a0cf80732  gcc/testsuite/g++.dg/cpp0x/constexpr-70001-4.C
  f7b8a5ff4283fd43f4dffd9d5fafd5c9  gcc/testsuite/g++.dg/cpp0x/constexpr-70204a.C
  6d2a7bdbddfaf87d584b814bf1961f04  gcc/testsuite/g++.dg/cpp0x/constexpr-70204b.C
! 150124a0a4cb07339583b5df97466ec4  gcc/testsuite/g++.dg/cpp0x/constexpr-70323.C
! 94ecd08a5f98eba4779a566dc10a2d89  gcc/testsuite/g++.dg/cpp0x/constexpr-70323a.C
  82c50bc8422508fb44939870cc6c206e  gcc/testsuite/g++.dg/cpp0x/constexpr-71537.C
  34638f51d99af855474a3feb1f02e5d7  gcc/testsuite/g++.dg/cpp0x/constexpr-71828.C
  3232d16dd5c0ff4902f3535a7b6fd04e  gcc/testsuite/g++.dg/cpp0x/constexpr-71988.C
*************** d184daf58a1efefa9b5d9f2675332595  gcc/te
*** 14220,14226 ****
  0a82455c1794efadc3bbb4e4ba357339  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr3.C
  12a7829023637da75e6542a82c846dd8  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr4.C
  76b49e548152de94f9aa28dfd665f8ea  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr5.C
! f2d764af35d223fdeefcb56f4c29ecaf  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr6.C
  53691315132b119750fc419e5844dd1b  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr7.C
  2802ca42ee9d91cfb21c5e02dcf35ba4  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C
  baedeb1b9236f89f03d2fe34e0f45576  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr9.C
--- 15435,15441 ----
  0a82455c1794efadc3bbb4e4ba357339  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr3.C
  12a7829023637da75e6542a82c846dd8  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr4.C
  76b49e548152de94f9aa28dfd665f8ea  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr5.C
! 97e2460080feddca6c88afa6194d5f83  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr6.C
  53691315132b119750fc419e5844dd1b  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr7.C
  2802ca42ee9d91cfb21c5e02dcf35ba4  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C
  baedeb1b9236f89f03d2fe34e0f45576  gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr9.C
*************** e4e15e959aaae288fa7a722d7abb7509  gcc/te
*** 14274,14281 ****
  85fdfb48424c10ce307707bc1d85353b  gcc/testsuite/g++.dg/cpp0x/constexpr-builtin4.C
  a3e1dfa48f53c341c8fd1fed39d39593  gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C
  2d072e1c9404478ff6f2aff9be053f5d  gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C
! f6c2f32e395bbfd34b6d6b3181eb3c0d  gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C
  7cd97e4615765a106cbe7e09df58b19e  gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C
  c69a3f036aa1a3b23cdbaaea842e210b  gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C
  4c7ae3f55ce6d714d60e08811293b1e3  gcc/testsuite/g++.dg/cpp0x/constexpr-comma1.C
  6fdd84c643464de26956dded064a3489  gcc/testsuite/g++.dg/cpp0x/constexpr-compare1.C
--- 15489,15497 ----
  85fdfb48424c10ce307707bc1d85353b  gcc/testsuite/g++.dg/cpp0x/constexpr-builtin4.C
  a3e1dfa48f53c341c8fd1fed39d39593  gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C
  2d072e1c9404478ff6f2aff9be053f5d  gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C
! 2bdc0409678520a9afb35385bbda927d  gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C
  7cd97e4615765a106cbe7e09df58b19e  gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C
+ 14d6b6437490c4a1117958f82618da56  gcc/testsuite/g++.dg/cpp0x/constexpr-cast4.C
  c69a3f036aa1a3b23cdbaaea842e210b  gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C
  4c7ae3f55ce6d714d60e08811293b1e3  gcc/testsuite/g++.dg/cpp0x/constexpr-comma1.C
  6fdd84c643464de26956dded064a3489  gcc/testsuite/g++.dg/cpp0x/constexpr-compare1.C
*************** b9f62d1adc6b6e0fe01886a17a69c102  gcc/te
*** 14330,14340 ****
  7931d487bd0cfaf955fae2246fa72de9  gcc/testsuite/g++.dg/cpp0x/constexpr-delegating2.C
  0d9eeb2203a8449f75b9f707a22b2c1b  gcc/testsuite/g++.dg/cpp0x/constexpr-delegating3.C
  5b017b9ac3b68833449b967e43cba950  gcc/testsuite/g++.dg/cpp0x/constexpr-delete.C
! f85801423624d5e4e418f9fe401034b6  gcc/testsuite/g++.dg/cpp0x/constexpr-delete2.C
  4f2e7c33f09e5b0c1d98c13b7f990e4a  gcc/testsuite/g++.dg/cpp0x/constexpr-deref.C
  a5ca183a9981a662b98c564cad9d2142  gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C
  262bf0368b4b07acdfe79a5a0de00e78  gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C
! 0536946484c7ffbd4b42e970c7950370  gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C
  f40741605855158bc8dc6da1beb0acec  gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C
  cdcf1abb99ff7db2a6de02d4da860839  gcc/testsuite/g++.dg/cpp0x/constexpr-diag5.C
  3b6a46c1a5699fddb411eb1188a5afbc  gcc/testsuite/g++.dg/cpp0x/constexpr-eh-spec.C
--- 15546,15556 ----
  7931d487bd0cfaf955fae2246fa72de9  gcc/testsuite/g++.dg/cpp0x/constexpr-delegating2.C
  0d9eeb2203a8449f75b9f707a22b2c1b  gcc/testsuite/g++.dg/cpp0x/constexpr-delegating3.C
  5b017b9ac3b68833449b967e43cba950  gcc/testsuite/g++.dg/cpp0x/constexpr-delete.C
! 5d79f50e164bf34bba54bcb79325e024  gcc/testsuite/g++.dg/cpp0x/constexpr-delete2.C
  4f2e7c33f09e5b0c1d98c13b7f990e4a  gcc/testsuite/g++.dg/cpp0x/constexpr-deref.C
  a5ca183a9981a662b98c564cad9d2142  gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C
  262bf0368b4b07acdfe79a5a0de00e78  gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C
! 3429bde62e961ca37e922961df98b3c3  gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C
  f40741605855158bc8dc6da1beb0acec  gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C
  cdcf1abb99ff7db2a6de02d4da860839  gcc/testsuite/g++.dg/cpp0x/constexpr-diag5.C
  3b6a46c1a5699fddb411eb1188a5afbc  gcc/testsuite/g++.dg/cpp0x/constexpr-eh-spec.C
*************** baf44bb3bbcc1b19835fcba0732c07b8  gcc/te
*** 14351,14356 ****
--- 15567,15574 ----
  39d49ad5520441d592a3a79408382c59  gcc/testsuite/g++.dg/cpp0x/constexpr-empty15.C
  a275ad66d9fc657917af98f6fe78b474  gcc/testsuite/g++.dg/cpp0x/constexpr-empty16.C
  2cb172046684cd137813e8662b4c2325  gcc/testsuite/g++.dg/cpp0x/constexpr-empty17.C
+ 1dda6c5f67dec4c372ad744e085ef236  gcc/testsuite/g++.dg/cpp0x/constexpr-empty18.C
+ 054aedeec9b691009657d4b7b0539a17  gcc/testsuite/g++.dg/cpp0x/constexpr-empty19.C
  aef682375c033fe1283502c7f213d6ca  gcc/testsuite/g++.dg/cpp0x/constexpr-empty2.C
  f2be36db1d24de846eca69288f8e004a  gcc/testsuite/g++.dg/cpp0x/constexpr-empty3.C
  933cc130bc4ebc33fb81e8901f604e0a  gcc/testsuite/g++.dg/cpp0x/constexpr-empty4.C
*************** cf5dbf6e27520dc069362029f5cb0540  gcc/te
*** 14359,14365 ****
  0747afdc6137d0b7079cb129c5f34cd6  gcc/testsuite/g++.dg/cpp0x/constexpr-empty7.C
  3775b8d3a8d0d114191c1e741ebedbf9  gcc/testsuite/g++.dg/cpp0x/constexpr-empty8.C
  0639a526e3e93a7d7ddd53722d0d65a4  gcc/testsuite/g++.dg/cpp0x/constexpr-empty9.C
! de31aeecff5f54f6a1e2a6e6e8096298  gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C
  4e6fff7f5e83663f75c94efbf299525b  gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C
  c42ce017f72e0ac9bc977500bc2d096c  gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
  ce75146a9a51521a3b4ff82cc14225c3  gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C
--- 15577,15583 ----
  0747afdc6137d0b7079cb129c5f34cd6  gcc/testsuite/g++.dg/cpp0x/constexpr-empty7.C
  3775b8d3a8d0d114191c1e741ebedbf9  gcc/testsuite/g++.dg/cpp0x/constexpr-empty8.C
  0639a526e3e93a7d7ddd53722d0d65a4  gcc/testsuite/g++.dg/cpp0x/constexpr-empty9.C
! eebd11cc85b798aa6a7a34d54749b1fd  gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C
  4e6fff7f5e83663f75c94efbf299525b  gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C
  c42ce017f72e0ac9bc977500bc2d096c  gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
  ce75146a9a51521a3b4ff82cc14225c3  gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C
*************** cad4897b69a9dcbf2accb6f76dc6142a  gcc/te
*** 14390,14396 ****
  50d8cd0efe85812d15921b8d64e4a9a9  gcc/testsuite/g++.dg/cpp0x/constexpr-ice18.C
  8481af89099c4675f2edb61ae5b3d5b5  gcc/testsuite/g++.dg/cpp0x/constexpr-ice19.C
  b9f6048a90a69c192d74f1909302134b  gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C
! 445bc8616121c0024196e496ceb530a8  gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C
  8338efcd83a2b6552bc4ad1d47c18171  gcc/testsuite/g++.dg/cpp0x/constexpr-ice3.C
  a2444cbecc90b8c642eeb0fb89f00654  gcc/testsuite/g++.dg/cpp0x/constexpr-ice4.C
  db4c14cc7fdca18c19d67657bdddb5d7  gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C
--- 15608,15614 ----
  50d8cd0efe85812d15921b8d64e4a9a9  gcc/testsuite/g++.dg/cpp0x/constexpr-ice18.C
  8481af89099c4675f2edb61ae5b3d5b5  gcc/testsuite/g++.dg/cpp0x/constexpr-ice19.C
  b9f6048a90a69c192d74f1909302134b  gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C
! ab9f33f2432c24146907c124c5aa5f73  gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C
  8338efcd83a2b6552bc4ad1d47c18171  gcc/testsuite/g++.dg/cpp0x/constexpr-ice3.C
  a2444cbecc90b8c642eeb0fb89f00654  gcc/testsuite/g++.dg/cpp0x/constexpr-ice4.C
  db4c14cc7fdca18c19d67657bdddb5d7  gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C
*************** f288c9405b4d691b91ef3844e3b9dd08  gcc/te
*** 14424,14433 ****
  25358bf087f99e99f8fbfc8bcd9f01be  gcc/testsuite/g++.dg/cpp0x/constexpr-main.C
  795a9ff23653541832d521a034128e3d  gcc/testsuite/g++.dg/cpp0x/constexpr-memchr.C
  e12fcfd9cb76c0919cb207d29ff19bb1  gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C
  211c953e7e3e1153239acc0f3fee4960  gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C
  bf6f271556a8b151987d288c88c9b77d  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable1.C
  123ce7f549210e41438da89fdee5c4f9  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable2.C
! e275658d57e6aa3ab659505240aee7d6  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable3.C
  e5de8807e1554484e357d8003556e16d  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable4.C
  b3f9812f0270737d22782990ab38563e  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable5.C
  d01d7789b0b52e3ad1ceb4a9c46d6229  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable6.C
--- 15642,15652 ----
  25358bf087f99e99f8fbfc8bcd9f01be  gcc/testsuite/g++.dg/cpp0x/constexpr-main.C
  795a9ff23653541832d521a034128e3d  gcc/testsuite/g++.dg/cpp0x/constexpr-memchr.C
  e12fcfd9cb76c0919cb207d29ff19bb1  gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C
+ c6a236fbbf4dc1a80faaab6eb4501d39  gcc/testsuite/g++.dg/cpp0x/constexpr-memfn2.C
  211c953e7e3e1153239acc0f3fee4960  gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C
  bf6f271556a8b151987d288c88c9b77d  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable1.C
  123ce7f549210e41438da89fdee5c4f9  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable2.C
! 840be3a6b04945a8ae47b925c52810a0  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable3.C
  e5de8807e1554484e357d8003556e16d  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable4.C
  b3f9812f0270737d22782990ab38563e  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable5.C
  d01d7789b0b52e3ad1ceb4a9c46d6229  gcc/testsuite/g++.dg/cpp0x/constexpr-mutable6.C
*************** d1ec0d16df219b4574614b6f4fa3b9b6  gcc/te
*** 14448,14453 ****
--- 15667,15673 ----
  7984f830cb12240213de4cb699fc0fad  gcc/testsuite/g++.dg/cpp0x/constexpr-nonlit.C
  ddcd4dc55809dc226c321025c894f2b0  gcc/testsuite/g++.dg/cpp0x/constexpr-nonlit2.C
  e30db9bfd86140e4533c65e96fcc3879  gcc/testsuite/g++.dg/cpp0x/constexpr-nonstatic.C
+ 3262f6313bd98aeccf0c2206fc91cd7b  gcc/testsuite/g++.dg/cpp0x/constexpr-noreturn1.C
  2b6a53b16231810c0a21185dce583796  gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi1.C
  d3733d3842be9bb1b1c6c2037b318baa  gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi2.C
  5f3fac9ee3cc1ac0d41c5de0b085aa7e  gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi3.C
*************** bdbdee9b8211644ca4eaf7ef1be48857  gcc/te
*** 14477,14492 ****
  32da508b62d5ba45ac51680a9a5638a4  gcc/testsuite/g++.dg/cpp0x/constexpr-ptrsub.C
  a8dbcd77100e0e0c9591a9ee22bda39f  gcc/testsuite/g++.dg/cpp0x/constexpr-ptrsub2.C
  c893e2388f9acef593b874b1e6b02071  gcc/testsuite/g++.dg/cpp0x/constexpr-pure.C
! 301175b1db937e1f73fbe85f81fd00e9  gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C
  d0613cd67d583f80a028bb4816e6c9e8  gcc/testsuite/g++.dg/cpp0x/constexpr-recursion2.C
  8df497f4a921feee2cc5153489dcd088  gcc/testsuite/g++.dg/cpp0x/constexpr-recursion3.C
  5e160a188aef7805034f272bd43d2ab7  gcc/testsuite/g++.dg/cpp0x/constexpr-redeclaration1.C
  0754013cd1a94dc63c7abbafa940d434  gcc/testsuite/g++.dg/cpp0x/constexpr-redeclaration2.C
  dc7a7eb622691a6363e90822f0e39072  gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C
  dd168221387ec9a93f3d125cb4241c56  gcc/testsuite/g++.dg/cpp0x/constexpr-ref10.C
  d9da9cf4bb858e7842583767dee979b2  gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C
! 543080be79ba1b2e79dcf614235b0a12  gcc/testsuite/g++.dg/cpp0x/constexpr-ref12.C
! d1d1aecd66ba1c7f2b50e13b37172d43  gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C
  52e47448fe1ed73156ebb657652051d7  gcc/testsuite/g++.dg/cpp0x/constexpr-ref3.C
  a8465ccb79db2326e46ace178e06b2d1  gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C
  9855aac80a861d6ef0935a097cf12530  gcc/testsuite/g++.dg/cpp0x/constexpr-ref5.C
--- 15697,15715 ----
  32da508b62d5ba45ac51680a9a5638a4  gcc/testsuite/g++.dg/cpp0x/constexpr-ptrsub.C
  a8dbcd77100e0e0c9591a9ee22bda39f  gcc/testsuite/g++.dg/cpp0x/constexpr-ptrsub2.C
  c893e2388f9acef593b874b1e6b02071  gcc/testsuite/g++.dg/cpp0x/constexpr-pure.C
! 106c8f9399f57c7dd359d8e207b73510  gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C
  d0613cd67d583f80a028bb4816e6c9e8  gcc/testsuite/g++.dg/cpp0x/constexpr-recursion2.C
  8df497f4a921feee2cc5153489dcd088  gcc/testsuite/g++.dg/cpp0x/constexpr-recursion3.C
  5e160a188aef7805034f272bd43d2ab7  gcc/testsuite/g++.dg/cpp0x/constexpr-redeclaration1.C
  0754013cd1a94dc63c7abbafa940d434  gcc/testsuite/g++.dg/cpp0x/constexpr-redeclaration2.C
+ 59874fc5bcce854308a279716c598298  gcc/testsuite/g++.dg/cpp0x/constexpr-redeclaration3.C
+ 9b865fe605334bf36e6afd32a6606e9a  gcc/testsuite/g++.dg/cpp0x/constexpr-redeclaration4.C
  dc7a7eb622691a6363e90822f0e39072  gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C
  dd168221387ec9a93f3d125cb4241c56  gcc/testsuite/g++.dg/cpp0x/constexpr-ref10.C
  d9da9cf4bb858e7842583767dee979b2  gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C
! 9c027fcd087086f1062a9894fd5f5925  gcc/testsuite/g++.dg/cpp0x/constexpr-ref12.C
! 2415e62348bab828aa828cb53b609bbc  gcc/testsuite/g++.dg/cpp0x/constexpr-ref13.C
! ca5d1437cd50e2281c50ed4591dc3713  gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C
  52e47448fe1ed73156ebb657652051d7  gcc/testsuite/g++.dg/cpp0x/constexpr-ref3.C
  a8465ccb79db2326e46ace178e06b2d1  gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C
  9855aac80a861d6ef0935a097cf12530  gcc/testsuite/g++.dg/cpp0x/constexpr-ref5.C
*************** f721bfcd9caf4abf649ecc1b690d4df0  gcc/te
*** 14534,14539 ****
--- 15757,15763 ----
  c715cc77c59c08b4178c8df94944f49a  gcc/testsuite/g++.dg/cpp0x/constexpr-template1.C
  56e1285a24a4fbdb11978e8af54953ca  gcc/testsuite/g++.dg/cpp0x/constexpr-template10.C
  cf1b5ea6542ce4e4c53d713d22353179  gcc/testsuite/g++.dg/cpp0x/constexpr-template11.C
+ aaaeccb7a52f45ac74ff808085777c90  gcc/testsuite/g++.dg/cpp0x/constexpr-template12.C
  5dc4506a28e07ba88766b1053618ec54  gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C
  0bcbbb5fdaa0906b82119d032554061e  gcc/testsuite/g++.dg/cpp0x/constexpr-template3.C
  a05dfbf634e5313455c47b794057b288  gcc/testsuite/g++.dg/cpp0x/constexpr-template4.C
*************** fac54481719d52997e799f9f5944ce10  gcc/te
*** 14543,14549 ****
  67f2412b410857ef08f653682a138ab6  gcc/testsuite/g++.dg/cpp0x/constexpr-template8.C
  e95760da3e98d263ace1fe8f57c6a5eb  gcc/testsuite/g++.dg/cpp0x/constexpr-template9.C
  6b376db978f95eefa5abc27419e2daef  gcc/testsuite/g++.dg/cpp0x/constexpr-this1.C
! 53ba7c64d852ccf921166074b871f796  gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C
  b7bf8a1d982f3cd7c0d65d88c6ff540e  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial1.C
  84e0e6cb7a446e49a36a296402d9eb94  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial2.C
  107fd26cb01aa76763af3eb13fd91d91  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial3.C
--- 15767,15773 ----
  67f2412b410857ef08f653682a138ab6  gcc/testsuite/g++.dg/cpp0x/constexpr-template8.C
  e95760da3e98d263ace1fe8f57c6a5eb  gcc/testsuite/g++.dg/cpp0x/constexpr-template9.C
  6b376db978f95eefa5abc27419e2daef  gcc/testsuite/g++.dg/cpp0x/constexpr-this1.C
! d56be687c350bc73fe5b8a509b007f3e  gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C
  b7bf8a1d982f3cd7c0d65d88c6ff540e  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial1.C
  84e0e6cb7a446e49a36a296402d9eb94  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial2.C
  107fd26cb01aa76763af3eb13fd91d91  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial3.C
*************** be8e4b63955ef6076e0e2cd57b4fd61c  gcc/te
*** 14562,14567 ****
--- 15786,15792 ----
  e0a86859c165bfaac8fd8efd9023935b  gcc/testsuite/g++.dg/cpp0x/constexpr-union6.C
  7229788425547bc1befff78305c473c8  gcc/testsuite/g++.dg/cpp0x/constexpr-union7.C
  5d95979f72aa52bb0abbd82d05bf5e53  gcc/testsuite/g++.dg/cpp0x/constexpr-union7a.C
+ d4cff4827a96cb7f369a338f6559edd2  gcc/testsuite/g++.dg/cpp0x/constexpr-union8.C
  9c897128234fa6ab41edf384f11dd381  gcc/testsuite/g++.dg/cpp0x/constexpr-using.C
  7a9a83c41c3d2c5f82ac428442905b65  gcc/testsuite/g++.dg/cpp0x/constexpr-using2.C
  6dc93e335ab58c26289327a9c7e9d042  gcc/testsuite/g++.dg/cpp0x/constexpr-using3.C
*************** bc4346829b56020609cc74488154f418  gcc/te
*** 14601,14606 ****
--- 15826,15833 ----
  8305b7b7dfca623e4a99cb58ae840958  gcc/testsuite/g++.dg/cpp0x/dc8.C
  57de5b9f42f6d62b749bc1faa80d815d  gcc/testsuite/g++.dg/cpp0x/dc9.C
  1772402035ea86d1426eefecdfae9712  gcc/testsuite/g++.dg/cpp0x/decl-loc1.C
+ 30680b2c8c129b869895e068c367f5eb  gcc/testsuite/g++.dg/cpp0x/decltype-100482.C
+ d66fad9c3a4ee1a6a2d3efdf9a2af04a  gcc/testsuite/g++.dg/cpp0x/decltype-110175.C
  d20073ca1009509271524d321aea63b7  gcc/testsuite/g++.dg/cpp0x/decltype-1212.C
  c2a9b59fdf83e881c9a8f6677ffa2654  gcc/testsuite/g++.dg/cpp0x/decltype-33837.C
  a184097469012f150396f1e605627cd2  gcc/testsuite/g++.dg/cpp0x/decltype-33838.C
*************** a5a365073fed8c5bd9263eef7df7b899  gcc/te
*** 14778,14783 ****
--- 16005,16013 ----
  20f5ce4631c9d2ed308c5c54cf5abbbf  gcc/testsuite/g++.dg/cpp0x/deleted13.C
  acf27aac5d288264569c9a250fea5c37  gcc/testsuite/g++.dg/cpp0x/deleted14.C
  f0e116d82b5a6de3a9e5af9a0a9f86f6  gcc/testsuite/g++.dg/cpp0x/deleted15.C
+ 60b64cb629f4a02ed81a12fb0b2cc041  gcc/testsuite/g++.dg/cpp0x/deleted16.C
+ e0ec3b8dde104f6e13caaaf049aa05c6  gcc/testsuite/g++.dg/cpp0x/deleted16a.C
+ 739d0ece28a2f02a16bc7821fc37839c  gcc/testsuite/g++.dg/cpp0x/deleted17.C
  80874d553919bf312b4841380187e0f9  gcc/testsuite/g++.dg/cpp0x/deleted2.C
  a9129f4cd34b93dbe745e3849ea1c38a  gcc/testsuite/g++.dg/cpp0x/deleted3.C
  d6f65d86ea217a2efd4c31ebedc9c9db  gcc/testsuite/g++.dg/cpp0x/deleted4.C
*************** ca26ad5278a2ac2347db2c2a451bdddf  gcc/te
*** 14793,14798 ****
--- 16023,16029 ----
  4a822a67b0bd440c48f63f58b5bfe94c  gcc/testsuite/g++.dg/cpp0x/depr-copy2.C
  83ee21cd7668d7d0efc97ac677fbe487  gcc/testsuite/g++.dg/cpp0x/depr-copy3.C
  ccd3a4b436ff2db96745ef4e4dbf9661  gcc/testsuite/g++.dg/cpp0x/depr-copy4.C
+ f785be05a118bf954e6712775b5c12a3  gcc/testsuite/g++.dg/cpp0x/depr-copy5.C
  861890614eff3a18d972ae21c8cedb3f  gcc/testsuite/g++.dg/cpp0x/desig1.C
  5b8e06a1ebe55e784146bad7f9381d14  gcc/testsuite/g++.dg/cpp0x/desig2.C
  9325507793124d714ba42d0b77847a70  gcc/testsuite/g++.dg/cpp0x/desig3.C
*************** be2f327033fbf2bb4c287d571b817102  gcc/te
*** 14806,14811 ****
--- 16037,16043 ----
  a07bd7a492a7f2ce7bfdf2835ea992a7  gcc/testsuite/g++.dg/cpp0x/dr2351.C
  bd568f7f1307dab8f5eb35fec36e71e2  gcc/testsuite/g++.dg/cpp0x/duplicate1.C
  d4426133b81413ad1d3051caa8d7c24a  gcc/testsuite/g++.dg/cpp0x/dyncast1.C
+ d4eeb506a032aed4635726351941ce50  gcc/testsuite/g++.dg/cpp0x/elab-enum-base.C
  66b2af972cbee8009e3e5f9895cb0a1a  gcc/testsuite/g++.dg/cpp0x/elision.C
  61e6b95f09ff3fc301b7bd5af3f1e592  gcc/testsuite/g++.dg/cpp0x/elision2.C
  27d722d5f244016b7eb68c69205b406b  gcc/testsuite/g++.dg/cpp0x/elision3.C
*************** b1410081d8b18a483605fea34ded714b  gcc/te
*** 14848,14857 ****
  0c1bd3a6f06a95634ee6e7e1c8cfcb43  gcc/testsuite/g++.dg/cpp0x/enum38.C
  f520b3c677602a9f4bb925811947dd27  gcc/testsuite/g++.dg/cpp0x/enum39.C
  4314a939d182c8ee315404a2d9cf3ec3  gcc/testsuite/g++.dg/cpp0x/enum4.C
! 1180e3480996d107ee707434d64528e0  gcc/testsuite/g++.dg/cpp0x/enum40.C
  04d281e3cb2c000a5e49e2b16f623027  gcc/testsuite/g++.dg/cpp0x/enum41.C
  a170374dff8df7695c33c8ced0de6783  gcc/testsuite/g++.dg/cpp0x/enum42.C
  04dc1d4fe43005d4de8c5865ec895953  gcc/testsuite/g++.dg/cpp0x/enum43.C
  771003df84c0886c950718b7f6d81033  gcc/testsuite/g++.dg/cpp0x/enum5.C
  67ec15297186c0dc5b419618c460a2f2  gcc/testsuite/g++.dg/cpp0x/enum6.C
  2b0985c5003a3baf1ba60c7c38770636  gcc/testsuite/g++.dg/cpp0x/enum7.C
--- 16080,16090 ----
  0c1bd3a6f06a95634ee6e7e1c8cfcb43  gcc/testsuite/g++.dg/cpp0x/enum38.C
  f520b3c677602a9f4bb925811947dd27  gcc/testsuite/g++.dg/cpp0x/enum39.C
  4314a939d182c8ee315404a2d9cf3ec3  gcc/testsuite/g++.dg/cpp0x/enum4.C
! d269c77b9db2975c556fcd66107deea3  gcc/testsuite/g++.dg/cpp0x/enum40.C
  04d281e3cb2c000a5e49e2b16f623027  gcc/testsuite/g++.dg/cpp0x/enum41.C
  a170374dff8df7695c33c8ced0de6783  gcc/testsuite/g++.dg/cpp0x/enum42.C
  04dc1d4fe43005d4de8c5865ec895953  gcc/testsuite/g++.dg/cpp0x/enum43.C
+ 4e1813e4666829ab26da8e3f6ba055b0  gcc/testsuite/g++.dg/cpp0x/enum44.C
  771003df84c0886c950718b7f6d81033  gcc/testsuite/g++.dg/cpp0x/enum5.C
  67ec15297186c0dc5b419618c460a2f2  gcc/testsuite/g++.dg/cpp0x/enum6.C
  2b0985c5003a3baf1ba60c7c38770636  gcc/testsuite/g++.dg/cpp0x/enum7.C
*************** cfb939d8de68b1ee21f8bee910a8ba08  gcc/te
*** 14923,14929 ****
  1dbb72d7cb864fd82bbd03dc412332fe  gcc/testsuite/g++.dg/cpp0x/forw_enum3.C
  c71bc1457d9f8a2ca50c42db66dafbc6  gcc/testsuite/g++.dg/cpp0x/forw_enum4.C
  0eae8ea24cb913ed66dd5ba47a37964b  gcc/testsuite/g++.dg/cpp0x/forw_enum5.C
! 2711f500a43899398b3a1a20fd3a2f2b  gcc/testsuite/g++.dg/cpp0x/forw_enum6.C
  caf0f022779e5de629b5eaebaee1b1f1  gcc/testsuite/g++.dg/cpp0x/forw_enum7.C
  4032688da323d1c8ed7bdfd332990d43  gcc/testsuite/g++.dg/cpp0x/forw_enum8.C
  ac8f3048ea079a2656d1cea357ae796d  gcc/testsuite/g++.dg/cpp0x/forw_enum9.C
--- 16156,16162 ----
  1dbb72d7cb864fd82bbd03dc412332fe  gcc/testsuite/g++.dg/cpp0x/forw_enum3.C
  c71bc1457d9f8a2ca50c42db66dafbc6  gcc/testsuite/g++.dg/cpp0x/forw_enum4.C
  0eae8ea24cb913ed66dd5ba47a37964b  gcc/testsuite/g++.dg/cpp0x/forw_enum5.C
! f54326239437cc0d4c90018e856be81e  gcc/testsuite/g++.dg/cpp0x/forw_enum6.C
  caf0f022779e5de629b5eaebaee1b1f1  gcc/testsuite/g++.dg/cpp0x/forw_enum7.C
  4032688da323d1c8ed7bdfd332990d43  gcc/testsuite/g++.dg/cpp0x/forw_enum8.C
  ac8f3048ea079a2656d1cea357ae796d  gcc/testsuite/g++.dg/cpp0x/forw_enum9.C
*************** f55fa66c82d267feca5db82dc835210a  gcc/te
*** 15014,15025 ****
  d7e6d19983fefaaf3bad930060d8d107  gcc/testsuite/g++.dg/cpp0x/gen-attrs-73.C
  b0ab6438c410f443c2791a7956a155dd  gcc/testsuite/g++.dg/cpp0x/gen-attrs-74.C
  9cfea1f1343dd1303bdb11adb1fa60b4  gcc/testsuite/g++.dg/cpp0x/gen-attrs-75.C
! daf9ff306e1d54572eb4cce16d2d598f  gcc/testsuite/g++.dg/cpp0x/gen-attrs-76.C
  4333101736491e8179281e3c1c537783  gcc/testsuite/g++.dg/cpp0x/gen-attrs-77.C
  29ab98a7b8d445bb51e5069dd98f7cca  gcc/testsuite/g++.dg/cpp0x/gen-attrs-8.C
  5dd92815927177080853d47a890f5439  gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C
  40caf35e131e99903b76e36f0e04b2a9  gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C
  2e2788f974b88f56ceecc2b764d701db  gcc/testsuite/g++.dg/cpp0x/gnu_fno-ext-numeric-literals.C
  9efada2e8cbcac32c0257fef01bf08a7  gcc/testsuite/g++.dg/cpp0x/implicit-copy.C
  3578196fe1bb12cfd012b620ad899751  gcc/testsuite/g++.dg/cpp0x/implicit-delete1.C
  0c0f3b4146bc156fd3b22332c0e3393f  gcc/testsuite/g++.dg/cpp0x/implicit-trivial1.C
--- 16247,16261 ----
  d7e6d19983fefaaf3bad930060d8d107  gcc/testsuite/g++.dg/cpp0x/gen-attrs-73.C
  b0ab6438c410f443c2791a7956a155dd  gcc/testsuite/g++.dg/cpp0x/gen-attrs-74.C
  9cfea1f1343dd1303bdb11adb1fa60b4  gcc/testsuite/g++.dg/cpp0x/gen-attrs-75.C
! 40583ff2478c6bb2774a2c29c784a097  gcc/testsuite/g++.dg/cpp0x/gen-attrs-76.C
  4333101736491e8179281e3c1c537783  gcc/testsuite/g++.dg/cpp0x/gen-attrs-77.C
+ e38875ddde2687b4139330d97e0edf9f  gcc/testsuite/g++.dg/cpp0x/gen-attrs-78.C
+ 46b8282b71afcc8c97c1b1c6c4666202  gcc/testsuite/g++.dg/cpp0x/gen-attrs-79.C
  29ab98a7b8d445bb51e5069dd98f7cca  gcc/testsuite/g++.dg/cpp0x/gen-attrs-8.C
  5dd92815927177080853d47a890f5439  gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C
  40caf35e131e99903b76e36f0e04b2a9  gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C
  2e2788f974b88f56ceecc2b764d701db  gcc/testsuite/g++.dg/cpp0x/gnu_fno-ext-numeric-literals.C
+ 3e88c6e173fd3bd44055c2202907f7e1  gcc/testsuite/g++.dg/cpp0x/hog1.C
  9efada2e8cbcac32c0257fef01bf08a7  gcc/testsuite/g++.dg/cpp0x/implicit-copy.C
  3578196fe1bb12cfd012b620ad899751  gcc/testsuite/g++.dg/cpp0x/implicit-delete1.C
  0c0f3b4146bc156fd3b22332c0e3393f  gcc/testsuite/g++.dg/cpp0x/implicit-trivial1.C
*************** eb356bb5e47b9ce813f868c74583298f  gcc/te
*** 15072,15077 ****
--- 16308,16315 ----
  f933eabf4dcde8d87d03370c9257ce9d  gcc/testsuite/g++.dg/cpp0x/inh-ctor35.C
  6b966c11af96a673d8cb7c70df13bde7  gcc/testsuite/g++.dg/cpp0x/inh-ctor36.C
  864c0137be7d20d35b8ce196814a16a5  gcc/testsuite/g++.dg/cpp0x/inh-ctor37.C
+ 477533253c0b6f754758c705718ba4e9  gcc/testsuite/g++.dg/cpp0x/inh-ctor38.C
+ 8692bcb6268086d05d35660cd6942a0f  gcc/testsuite/g++.dg/cpp0x/inh-ctor39.C
  47ad482b069988147c4dcac60c026f4d  gcc/testsuite/g++.dg/cpp0x/inh-ctor3a.C
  071eafda7f7d2d4bff42921fbd048a45  gcc/testsuite/g++.dg/cpp0x/inh-ctor4.C
  972640c006b3bcd568fc760f06817f9f  gcc/testsuite/g++.dg/cpp0x/inh-ctor5.C
*************** b7c080a9956d13517e0da64ac3f03102  gcc/te
*** 15091,15096 ****
--- 16329,16337 ----
  e81473abf06cde0a1694e5af550d221d  gcc/testsuite/g++.dg/cpp0x/initlist-array18.C
  8a2d9881631b666080991add59939b20  gcc/testsuite/g++.dg/cpp0x/initlist-array19.C
  09f09079c354ad93c3844a14549e0854  gcc/testsuite/g++.dg/cpp0x/initlist-array2.C
+ 71bdadeb13f30ad3b4398856ca3f01b3  gcc/testsuite/g++.dg/cpp0x/initlist-array20.C
+ d3992440eed37bacf3c1b2c2075afeca  gcc/testsuite/g++.dg/cpp0x/initlist-array21.C
+ 25f21baa02838e20e7b1cb692e279e2f  gcc/testsuite/g++.dg/cpp0x/initlist-array22.C
  8c888f7ab5cc44480801a14718225380  gcc/testsuite/g++.dg/cpp0x/initlist-array3.C
  6c1907913d332611dd16d03002d759f9  gcc/testsuite/g++.dg/cpp0x/initlist-array4.C
  8758d8464674d29f4276f8d3ebc899c3  gcc/testsuite/g++.dg/cpp0x/initlist-array5.C
*************** f0118d5667765863d9b140fbe97f21fe  gcc/te
*** 15104,15110 ****
  f01a40c7b455f2057375d7377cc73996  gcc/testsuite/g++.dg/cpp0x/initlist-base4.C
  68f886cb4e912d3c297c2a92ab92832f  gcc/testsuite/g++.dg/cpp0x/initlist-cast1.C
  6c5330c1db9324895d3422e0847edb6d  gcc/testsuite/g++.dg/cpp0x/initlist-cleanup1.C
! 6d8648d105112bcbe1d2ddccb204a593  gcc/testsuite/g++.dg/cpp0x/initlist-const1.C
  994605127bf908d7a5b9745b9991101e  gcc/testsuite/g++.dg/cpp0x/initlist-ctor1.C
  8d42dd7607b094785c2cd3a8c2078180  gcc/testsuite/g++.dg/cpp0x/initlist-ctor2.C
  85f4b64a3f7721e892ec214ca53047d4  gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C
--- 16345,16351 ----
  f01a40c7b455f2057375d7377cc73996  gcc/testsuite/g++.dg/cpp0x/initlist-base4.C
  68f886cb4e912d3c297c2a92ab92832f  gcc/testsuite/g++.dg/cpp0x/initlist-cast1.C
  6c5330c1db9324895d3422e0847edb6d  gcc/testsuite/g++.dg/cpp0x/initlist-cleanup1.C
! 13274946aadf0fa795d6370c44c1fbb2  gcc/testsuite/g++.dg/cpp0x/initlist-const1.C
  994605127bf908d7a5b9745b9991101e  gcc/testsuite/g++.dg/cpp0x/initlist-ctor1.C
  8d42dd7607b094785c2cd3a8c2078180  gcc/testsuite/g++.dg/cpp0x/initlist-ctor2.C
  85f4b64a3f7721e892ec214ca53047d4  gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C
*************** d95f4f566aa82caa249bf1188b86d6f2  gcc/te
*** 15114,15119 ****
--- 16355,16361 ----
  be08dc99a94b7b3278c8c66a5274c415  gcc/testsuite/g++.dg/cpp0x/initlist-defarg2.C
  f469aff688f1646a6d5c53c47c8a27dc  gcc/testsuite/g++.dg/cpp0x/initlist-defarg3.C
  7f34f94c8b3b4fffe98a24b8ebadd5f6  gcc/testsuite/g++.dg/cpp0x/initlist-dr1518.C
+ 9c4db9fdf51fd774a5ec5e30dd17a631  gcc/testsuite/g++.dg/cpp0x/initlist-eh1.C
  f61f621dcd5efc7adaf806419bd64a07  gcc/testsuite/g++.dg/cpp0x/initlist-explicit-sfinae.C
  f001f383104d84fe6269354c225ca1ec  gcc/testsuite/g++.dg/cpp0x/initlist-explicit1.C
  f8949630a7a02f66d0ceb796b5525cb8  gcc/testsuite/g++.dg/cpp0x/initlist-explicit2.C
*************** bcbe398391cda8139c8462f46935b7e2  gcc/te
*** 15132,15141 ****
--- 16374,16387 ----
  17758d1e1b79cbbb897a8920f4d44cca  gcc/testsuite/g++.dg/cpp0x/initlist-opt1.C
  e572423dbc63856346f68c0f83dab54a  gcc/testsuite/g++.dg/cpp0x/initlist-overload1.C
  a054a7d4e96233b7a3a6591843a8d33f  gcc/testsuite/g++.dg/cpp0x/initlist-pmf1.C
+ dbae3b7057bbb77c75bce2ef15965ac1  gcc/testsuite/g++.dg/cpp0x/initlist-pmf2.C
  e3ec7ab89d20e6ccf50aa92954896f07  gcc/testsuite/g++.dg/cpp0x/initlist-postfix-open-square.C
  1b5c7e432be89c3edcbfaad424a2e353  gcc/testsuite/g++.dg/cpp0x/initlist-protected.C
  fd02e573e3be3d0a146192cd840840a1  gcc/testsuite/g++.dg/cpp0x/initlist-pure.C
  ba6e21cbf49dfcec1abdc4c1f798637e  gcc/testsuite/g++.dg/cpp0x/initlist-ref-2267.C
+ 0107d86585512dc1e515ac9ce426aaa4  gcc/testsuite/g++.dg/cpp0x/initlist-ref1.C
+ f363ce59237bb299d34139ee91708acb  gcc/testsuite/g++.dg/cpp0x/initlist-ref2.C
+ cd47cf9f040a6ea2edcc34133435c6ad  gcc/testsuite/g++.dg/cpp0x/initlist-ref3.C
  b981bb775821a5230961a162ba38ff43  gcc/testsuite/g++.dg/cpp0x/initlist-template1.C
  2c5adc68213f17b3f69e8102a8f14f45  gcc/testsuite/g++.dg/cpp0x/initlist-template2.C
  f3ae4bc828514dae6bd94cd99286d406  gcc/testsuite/g++.dg/cpp0x/initlist-template3.C
*************** fab23eb9efdcf1b8c0f8393aa5ad7913  gcc/te
*** 15149,15155 ****
  72e0844bf4443787fe9b82aa10ad9c44  gcc/testsuite/g++.dg/cpp0x/initlist-vect2.C
  bc81668e2b4c77a6a8c52350eb5f9bc7  gcc/testsuite/g++.dg/cpp0x/initlist1.C
  56eb446b9a79a3e01433eed6090a0b6d  gcc/testsuite/g++.dg/cpp0x/initlist10.C
! df633d620f0b08588935e9570c6fc074  gcc/testsuite/g++.dg/cpp0x/initlist100.C
  65994e02b86022c95b64f705b9c16b14  gcc/testsuite/g++.dg/cpp0x/initlist101.C
  85b6ae75cc1f8486c8c9a3d2661a67f7  gcc/testsuite/g++.dg/cpp0x/initlist102.C
  c76baf8a79c92da59f1b1eea9116b0a0  gcc/testsuite/g++.dg/cpp0x/initlist103.C
--- 16395,16401 ----
  72e0844bf4443787fe9b82aa10ad9c44  gcc/testsuite/g++.dg/cpp0x/initlist-vect2.C
  bc81668e2b4c77a6a8c52350eb5f9bc7  gcc/testsuite/g++.dg/cpp0x/initlist1.C
  56eb446b9a79a3e01433eed6090a0b6d  gcc/testsuite/g++.dg/cpp0x/initlist10.C
! d73148d814c47732990b896f4ecdf212  gcc/testsuite/g++.dg/cpp0x/initlist100.C
  65994e02b86022c95b64f705b9c16b14  gcc/testsuite/g++.dg/cpp0x/initlist101.C
  85b6ae75cc1f8486c8c9a3d2661a67f7  gcc/testsuite/g++.dg/cpp0x/initlist102.C
  c76baf8a79c92da59f1b1eea9116b0a0  gcc/testsuite/g++.dg/cpp0x/initlist103.C
*************** cd0880983dc32cb469f470728ae8b22b  gcc/te
*** 15339,15344 ****
--- 16585,16591 ----
  1d85414b94d2d104004fc7341b90a896  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C
  26a3a7d7fa8662de4df1454d0f3eea85  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const10.C
  692c149205d32e7263c8778ba131c9dc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C
+ 99ebbe9d836593c488474457d9b14620  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11a.C
  64bc761abc3783521fdfb26f930f3410  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C
  e513b4dcc45e6063745c03c7c99151fa  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C
  1ced7b3231f38cc9948cc247893ffec1  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const4.C
*************** b7541efb5750181bf83ef0c6c0074ed7  gcc/te
*** 15374,15379 ****
--- 16621,16628 ----
  620c51f35ce9293367e1ae8b3038f83a  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-debug.C
  23762f5c7832f1cc2669f9358277141c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype1.C
  3ad56243aecddd505746acfd0489c7b7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype2.C
+ bbfdcf0ce2f3c356d6e0f0106a7b9028  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype3.C
+ bdc5867e3c1505d114f4c7cb6fa3b596  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype4.C
  9a9463ed3486e89b0432bdba5e217c4b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C
  e0fcc12ea86ca07e002f0dd4599d71b4  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C
  9edc8f5532794fc604ffd377c6d84b82  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-neg.C
*************** fc0cbc487d6a1b6d02de8cbeb0f06f70  gcc/te
*** 15470,15475 ****
--- 16719,16725 ----
  45c8811455b2ff67d0b834d61c336d54  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C
  a50b2f4594cb996e8a25dfe3e8da9a93  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C
  b8cb4ea322362f9ce500dbe9e1e567dd  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C
+ 68c5e4f2c512fabbf8d33c93e522f843  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi11.C
  771626fe4c5491ce91092c43744cb02c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi2.C
  6a7d73b6c513d33dae55973e8fe4ad1d  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi3.C
  c8026e051502bc9cfe9092dd262c02cc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi4.C
*************** fbb4a596d7a8bbadec829208456e278b  gcc/te
*** 15569,15575 ****
  7255e800041a798555ab9b7f8fd3108d  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C
  55e51064d61136b2fc56a556b82f97cd  gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-1.C
  3d6f07b3db79eaa5784b2af709c297de  gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-2.C
! 44f5f91a5cb9c33f86811de9e904fc62  gcc/testsuite/g++.dg/cpp0x/linkage2.C
  b5bfe09b3a6a445ea1f567939c595cc9  gcc/testsuite/g++.dg/cpp0x/literal-type1.C
  ceadcf043cb7e277e03b4160aab8102e  gcc/testsuite/g++.dg/cpp0x/local-targ1.C
  2fc41c677c8e84c030121c0ae006b699  gcc/testsuite/g++.dg/cpp0x/local-type1.C
--- 16819,16825 ----
  7255e800041a798555ab9b7f8fd3108d  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C
  55e51064d61136b2fc56a556b82f97cd  gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-1.C
  3d6f07b3db79eaa5784b2af709c297de  gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-2.C
! a912579ff9984231fad94378fa1c6401  gcc/testsuite/g++.dg/cpp0x/linkage2.C
  b5bfe09b3a6a445ea1f567939c595cc9  gcc/testsuite/g++.dg/cpp0x/literal-type1.C
  ceadcf043cb7e277e03b4160aab8102e  gcc/testsuite/g++.dg/cpp0x/local-targ1.C
  2fc41c677c8e84c030121c0ae006b699  gcc/testsuite/g++.dg/cpp0x/local-type1.C
*************** cfad5669952ee25edab337f1649e6f22  gcc/te
*** 15630,15636 ****
  a1bfa16a893d783dac2fb16b310309aa  gcc/testsuite/g++.dg/cpp0x/noexcept31.C
  561d9b65f7315d6bab3a710ec4347c9c  gcc/testsuite/g++.dg/cpp0x/noexcept32.C
  3d6304a7e40ea170469ff8d2c1f0376e  gcc/testsuite/g++.dg/cpp0x/noexcept33.C
! dd6f731dbd21ffcdf674b03415ed7898  gcc/testsuite/g++.dg/cpp0x/noexcept34.C
  25cfc463f9d68f24a4020039ffdf7ba2  gcc/testsuite/g++.dg/cpp0x/noexcept35.C
  a0e44dc1e8f11505922ef4ad50fc35c3  gcc/testsuite/g++.dg/cpp0x/noexcept36.C
  6ca0bee4c20a976bb07ee1cc45dda9a4  gcc/testsuite/g++.dg/cpp0x/noexcept37.C
--- 16880,16886 ----
  a1bfa16a893d783dac2fb16b310309aa  gcc/testsuite/g++.dg/cpp0x/noexcept31.C
  561d9b65f7315d6bab3a710ec4347c9c  gcc/testsuite/g++.dg/cpp0x/noexcept32.C
  3d6304a7e40ea170469ff8d2c1f0376e  gcc/testsuite/g++.dg/cpp0x/noexcept33.C
! 1345715375b1b8ce78a40a4b24991d79  gcc/testsuite/g++.dg/cpp0x/noexcept34.C
  25cfc463f9d68f24a4020039ffdf7ba2  gcc/testsuite/g++.dg/cpp0x/noexcept35.C
  a0e44dc1e8f11505922ef4ad50fc35c3  gcc/testsuite/g++.dg/cpp0x/noexcept36.C
  6ca0bee4c20a976bb07ee1cc45dda9a4  gcc/testsuite/g++.dg/cpp0x/noexcept37.C
*************** dbb54b67a2672d41d2a9ce040685f064  gcc/te
*** 15655,15661 ****
  3d489ab8bea1f26d9895fd708e8aaba1  gcc/testsuite/g++.dg/cpp0x/noexcept56.C
  0899d3ce9c806d82592b9a4f2847bdf8  gcc/testsuite/g++.dg/cpp0x/noexcept57.C
  eb9e42c40db2bd100ed3905cb18947ba  gcc/testsuite/g++.dg/cpp0x/noexcept58.C
! 5daa2e1649c8ccd9e4ecd52374598291  gcc/testsuite/g++.dg/cpp0x/noexcept59.C
  8baf3fe2d599fb545d36b51d50d630ec  gcc/testsuite/g++.dg/cpp0x/noexcept60.C
  b950d7f903d3f69a347ad242cbfee61d  gcc/testsuite/g++.dg/cpp0x/noexcept61.C
  d4b0d9f048e8a94c9bc255582c53738a  gcc/testsuite/g++.dg/cpp0x/noexcept62.C
--- 16905,16911 ----
  3d489ab8bea1f26d9895fd708e8aaba1  gcc/testsuite/g++.dg/cpp0x/noexcept56.C
  0899d3ce9c806d82592b9a4f2847bdf8  gcc/testsuite/g++.dg/cpp0x/noexcept57.C
  eb9e42c40db2bd100ed3905cb18947ba  gcc/testsuite/g++.dg/cpp0x/noexcept58.C
! 1fdd55b54dcd6a71ac9450ebcc12b16c  gcc/testsuite/g++.dg/cpp0x/noexcept59.C
  8baf3fe2d599fb545d36b51d50d630ec  gcc/testsuite/g++.dg/cpp0x/noexcept60.C
  b950d7f903d3f69a347ad242cbfee61d  gcc/testsuite/g++.dg/cpp0x/noexcept61.C
  d4b0d9f048e8a94c9bc255582c53738a  gcc/testsuite/g++.dg/cpp0x/noexcept62.C
*************** b86be1b4c25b3063ddc7e4cb746b89ad  gcc/te
*** 15677,15682 ****
--- 16927,16939 ----
  2dda03c113a688a77ec4d85b02359212  gcc/testsuite/g++.dg/cpp0x/noexcept77.C
  640bcc6d84918140414a88703d7920cb  gcc/testsuite/g++.dg/cpp0x/noexcept78.C
  787befec69c43fcbbbfc00b982170915  gcc/testsuite/g++.dg/cpp0x/noexcept79.C
+ e944a760f2bcd206b36820c53e03b241  gcc/testsuite/g++.dg/cpp0x/noexcept80.C
+ 2f9052df2244c85223da4a5a5baa24d4  gcc/testsuite/g++.dg/cpp0x/noexcept81.C
+ 3b511b590e5984888232055ce8fbbaf2  gcc/testsuite/g++.dg/cpp0x/noexcept82.C
+ 9dee697e70ce1522a9e831b27a330b7b  gcc/testsuite/g++.dg/cpp0x/noexcept83.C
+ 4396d9cdc2190733e37f41a49051fa92  gcc/testsuite/g++.dg/cpp0x/noexcept84.C
+ 50112d50509a2d89fff4b693d5850d5d  gcc/testsuite/g++.dg/cpp0x/noexcept85.C
+ 342bc0f796cebda7581bc83a6c991fb7  gcc/testsuite/g++.dg/cpp0x/noexcept86.C
  3bf83ccb654cedbb57a45851fb14aa9d  gcc/testsuite/g++.dg/cpp0x/nolinkage1.C
  6b7c91b931bbdacbbffbf9b90a79bc6a  gcc/testsuite/g++.dg/cpp0x/nolinkage1.h
  c92e0eda44dd6b3d74960b249fa5204f  gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc
*************** cd57481c3233939f35a9152176ba0610  gcc/te
*** 15819,15829 ****
  3bffe4cc168fde4f27dd432ad19e2f12  gcc/testsuite/g++.dg/cpp0x/nullptr44.C
  afdfafb40dd063d062a20c67e4309ae4  gcc/testsuite/g++.dg/cpp0x/nullptr45.C
  b34fb57802d0e40ddc608dc33eb1600e  gcc/testsuite/g++.dg/cpp0x/nullptr46.C
! 9ac544c85b4718bef7e0acbc03dd004f  gcc/testsuite/g++.dg/cpp0x/overflow1.C
  fb7661df85ad6b415b31574c67fa4ee0  gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C
  5ca00ae02aa7919e0b3d9730fa9f9ac5  gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C
  2c6f9529ab2133b66b083833e669fd58  gcc/testsuite/g++.dg/cpp0x/overload-conv-3.C
! 05f8d114c0307676d7d3b227b2e3213d  gcc/testsuite/g++.dg/cpp0x/overload-conv-4.C
  24976a5c9289b91a4727f22028c1cb65  gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C
  e1598f2c9f261104495d9e7d921f8264  gcc/testsuite/g++.dg/cpp0x/overload.C
  15b4148c92763edcf90b0fe0cb6f7742  gcc/testsuite/g++.dg/cpp0x/overload2.C
--- 17076,17086 ----
  3bffe4cc168fde4f27dd432ad19e2f12  gcc/testsuite/g++.dg/cpp0x/nullptr44.C
  afdfafb40dd063d062a20c67e4309ae4  gcc/testsuite/g++.dg/cpp0x/nullptr45.C
  b34fb57802d0e40ddc608dc33eb1600e  gcc/testsuite/g++.dg/cpp0x/nullptr46.C
! c0e1a381d8dd12ff190debb04e5ee084  gcc/testsuite/g++.dg/cpp0x/overflow1.C
  fb7661df85ad6b415b31574c67fa4ee0  gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C
  5ca00ae02aa7919e0b3d9730fa9f9ac5  gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C
  2c6f9529ab2133b66b083833e669fd58  gcc/testsuite/g++.dg/cpp0x/overload-conv-3.C
! 7369ec3ec371005e31afd318bc4a1908  gcc/testsuite/g++.dg/cpp0x/overload-conv-4.C
  24976a5c9289b91a4727f22028c1cb65  gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C
  e1598f2c9f261104495d9e7d921f8264  gcc/testsuite/g++.dg/cpp0x/overload.C
  15b4148c92763edcf90b0fe0cb6f7742  gcc/testsuite/g++.dg/cpp0x/overload2.C
*************** a174690fe306aaf345b02df91c3ddebe  gcc/te
*** 15844,15849 ****
--- 17101,17108 ----
  0f5046ead85037afdaba1b501accc894  gcc/testsuite/g++.dg/cpp0x/pr105256.C
  fa773bb98628f5c9f0fa9d8d8b29beda  gcc/testsuite/g++.dg/cpp0x/pr107065.C
  69f8f66bd163b5bad0e399b5155f053b  gcc/testsuite/g++.dg/cpp0x/pr108698.C
+ c25430a477686ad18eb61c047059d523  gcc/testsuite/g++.dg/cpp0x/pr112365.C
+ d1bd358aeacbea8bb4acd229e4efd99e  gcc/testsuite/g++.dg/cpp0x/pr113031.C
  26dea799d49ce223a0c4130a3c955271  gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
  4d1da29b669bf3178b3987abce4d58b1  gcc/testsuite/g++.dg/cpp0x/pr31431.C
  d65e06a3830e2b511cc25692b94615a1  gcc/testsuite/g++.dg/cpp0x/pr31432.C
*************** ccba3040ed86b5ffae7d72b18f556d1c  gcc/te
*** 16172,16177 ****
--- 17431,17438 ----
  4d78acdd9f4b8ae8afa532ceaf0c07c4  gcc/testsuite/g++.dg/cpp0x/rv-conv1.C
  0a9a74fc1be6ebe8c0f8c42d06cbc453  gcc/testsuite/g++.dg/cpp0x/rv-conv2.C
  55bf372aa23fed509d52b517cd46aa98  gcc/testsuite/g++.dg/cpp0x/rv-conv3.C
+ be2e2da855b83583283092ca0bb72265  gcc/testsuite/g++.dg/cpp0x/rv-conv4.C
+ 1cf65d6b3d6f2efdc39e97cc285cfb7c  gcc/testsuite/g++.dg/cpp0x/rv-conv5.C
  889a7002f4d78b4abd44856da792f8dc  gcc/testsuite/g++.dg/cpp0x/rv-copy1.C
  de88aaa56b0d394bd02f079bb0f4dddf  gcc/testsuite/g++.dg/cpp0x/rv-deduce.C
  f213598004dcfd0117fecc9593637790  gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C
*************** bd42ab7e47ac21e4d8ce605c4d31417d  gcc/te
*** 16211,16216 ****
--- 17472,17478 ----
  d2a48680a52815fe32ccc773a43bfb6d  gcc/testsuite/g++.dg/cpp0x/scoped_enum.C
  dbf403dece2dcda754e190c99117436a  gcc/testsuite/g++.dg/cpp0x/scoped_enum10.C
  5fe71eb7441c614cb101c4588673b0ca  gcc/testsuite/g++.dg/cpp0x/scoped_enum11.C
+ d200746669d491447b0174abde23b75f  gcc/testsuite/g++.dg/cpp0x/scoped_enum12.C
  2e29d3eec85e64bea1a4b77bde8a1f4e  gcc/testsuite/g++.dg/cpp0x/scoped_enum2.C
  8bf59e171ba21d86aad1d3a5eb652d37  gcc/testsuite/g++.dg/cpp0x/scoped_enum3.C
  1e24d1d0ae7f073e1479225d241dc5e1  gcc/testsuite/g++.dg/cpp0x/scoped_enum4.C
*************** fadfd124d98089fde0add757adc40755  gcc/te
*** 16287,16293 ****
--- 17549,17559 ----
  652e811b9432bae8ea8feb762a0c0616  gcc/testsuite/g++.dg/cpp0x/sfinae66.C
  9ca198fec634d96b239b04a35162e134  gcc/testsuite/g++.dg/cpp0x/sfinae67.C
  decb015a6daf878107fde89d7eabebb7  gcc/testsuite/g++.dg/cpp0x/sfinae68.C
+ 9eac582775c66fc6fb43e5c24eba7fc0  gcc/testsuite/g++.dg/cpp0x/sfinae69.C
  ec1a51ea3fd41e6e61c8f425bde1fd0b  gcc/testsuite/g++.dg/cpp0x/sfinae7.C
+ 0e89d966cdeefbe1819e10f665ad52a7  gcc/testsuite/g++.dg/cpp0x/sfinae70.C
+ 13bf066c363cd9b74dd28a0938d0264f  gcc/testsuite/g++.dg/cpp0x/sfinae71.C
+ 6dbd89f19ca67bd138dfcaadf2f5c5f2  gcc/testsuite/g++.dg/cpp0x/sfinae72.C
  547894832b1452d5f513938e0cb8a166  gcc/testsuite/g++.dg/cpp0x/sfinae8.C
  03177ceac1dca2efe41bd4b603c2a79e  gcc/testsuite/g++.dg/cpp0x/sfinae9.C
  e629df81396ef9a075b65fd8e5e45646  gcc/testsuite/g++.dg/cpp0x/spaceship-eq1.C
*************** b37ccc1795a94faef1d66ac5782dcc39  gcc/te
*** 16297,16303 ****
  46a9fceaf3a83086da13e43beb7e382a  gcc/testsuite/g++.dg/cpp0x/static_assert12.C
  e884bf1c365eb117bddb8cf25bb61944  gcc/testsuite/g++.dg/cpp0x/static_assert13.C
  51637c7e4d8745c6a05dd4de2ac799bc  gcc/testsuite/g++.dg/cpp0x/static_assert14.C
! ef0f59d78fc1f37751b79acad3704989  gcc/testsuite/g++.dg/cpp0x/static_assert15.C
  53545b7342e66ae87c68f3a770b6a193  gcc/testsuite/g++.dg/cpp0x/static_assert16.C
  a763580664ce585f23dcbf8cf13cab6a  gcc/testsuite/g++.dg/cpp0x/static_assert17.C
  7c94507411d8f0fcd4964618204cd929  gcc/testsuite/g++.dg/cpp0x/static_assert2.C
--- 17563,17569 ----
  46a9fceaf3a83086da13e43beb7e382a  gcc/testsuite/g++.dg/cpp0x/static_assert12.C
  e884bf1c365eb117bddb8cf25bb61944  gcc/testsuite/g++.dg/cpp0x/static_assert13.C
  51637c7e4d8745c6a05dd4de2ac799bc  gcc/testsuite/g++.dg/cpp0x/static_assert14.C
! 18a5617c6a56b06d2e51299f84183279  gcc/testsuite/g++.dg/cpp0x/static_assert15.C
  53545b7342e66ae87c68f3a770b6a193  gcc/testsuite/g++.dg/cpp0x/static_assert16.C
  a763580664ce585f23dcbf8cf13cab6a  gcc/testsuite/g++.dg/cpp0x/static_assert17.C
  7c94507411d8f0fcd4964618204cd929  gcc/testsuite/g++.dg/cpp0x/static_assert2.C
*************** b64243df23e4a2b648985cc8fb7842c6  gcc/te
*** 16325,16330 ****
--- 17591,17597 ----
  266c3dbde2e16a0e728fe8ba86f06698  gcc/testsuite/g++.dg/cpp0x/temp_default5.C
  f130c799f5624997275657362cbc155f  gcc/testsuite/g++.dg/cpp0x/temp_default6.C
  09bf4c9ea4be9a78430f128693f12e1b  gcc/testsuite/g++.dg/cpp0x/temp_default7.C
+ ffb45b4a754d1417c1388582a835c6fa  gcc/testsuite/g++.dg/cpp0x/temp_default8.C
  3b5dc721d5f8945d257645537b85505e  gcc/testsuite/g++.dg/cpp0x/template_deduction.C
  d8e8033cd6a6a6a2fbf1368f7775ac8b  gcc/testsuite/g++.dg/cpp0x/this1.C
  d163f4d1121a82d4c4ddd269817b4753  gcc/testsuite/g++.dg/cpp0x/this2.C
*************** ed0ef4952555cafa9be322b45527bce5  gcc/te
*** 16358,16364 ****
  c7c5b85000b7e7393d31feae90eee6d4  gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C
  057ee217f53c1b7618905a97363b386d  gcc/testsuite/g++.dg/cpp0x/udlit-declare-neg.C
  b12d8f1a221241fb17100ba981f84473  gcc/testsuite/g++.dg/cpp0x/udlit-embed-quote.C
! 141d32a05dedf93ee8bb84a16e5a1885  gcc/testsuite/g++.dg/cpp0x/udlit-error1.C
  9ed4b25d5489623fb9ff680609b1ec03  gcc/testsuite/g++.dg/cpp0x/udlit-extern-c.C
  e69574b29d74e1b9574f866ac163bf88  gcc/testsuite/g++.dg/cpp0x/udlit-friend.C
  5a8debc38c45079da0a8f0db33528e46  gcc/testsuite/g++.dg/cpp0x/udlit-general.C
--- 17625,17635 ----
  c7c5b85000b7e7393d31feae90eee6d4  gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C
  057ee217f53c1b7618905a97363b386d  gcc/testsuite/g++.dg/cpp0x/udlit-declare-neg.C
  b12d8f1a221241fb17100ba981f84473  gcc/testsuite/g++.dg/cpp0x/udlit-embed-quote.C
! 4b40ba124291d6d9e832a8fedc6747f6  gcc/testsuite/g++.dg/cpp0x/udlit-error1.C
! af8a809f23b49dedbe6e3c997d67063f  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-1.C
! b6b69e87cd068eb186427446cb47cd92  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-2.C
! 0ff68d90d141ce1c3dbedf2060dac955  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-3.C
! 0ca0a5a3834c72a0aeae0e654fd11cc7  gcc/testsuite/g++.dg/cpp0x/udlit-extended-id-4.C
  9ed4b25d5489623fb9ff680609b1ec03  gcc/testsuite/g++.dg/cpp0x/udlit-extern-c.C
  e69574b29d74e1b9574f866ac163bf88  gcc/testsuite/g++.dg/cpp0x/udlit-friend.C
  5a8debc38c45079da0a8f0db33528e46  gcc/testsuite/g++.dg/cpp0x/udlit-general.C
*************** ddacc33e701293e38ffc8bd7ccbb2a2e  gcc/te
*** 16457,16466 ****
  f64443a27f946984ec474714387b99a8  gcc/testsuite/g++.dg/cpp0x/variadic-lambda.C
  4cdd030747166cc1128b9b0b1db26c74  gcc/testsuite/g++.dg/cpp0x/variadic-mangle1.C
  61d159a494882dad368e53517bf8df8d  gcc/testsuite/g++.dg/cpp0x/variadic-mangle1a.C
! 1b6c268991a1dab466909570ec9a68e2  gcc/testsuite/g++.dg/cpp0x/variadic-mangle2.C
  7727443a155c2eed9930c6bc3f808465  gcc/testsuite/g++.dg/cpp0x/variadic-mangle2a.C
  8dd845093d366e371bdaf222fda42413  gcc/testsuite/g++.dg/cpp0x/variadic-mangle3.C
  efdeb5b65b79fc6ff926b12f711edcb1  gcc/testsuite/g++.dg/cpp0x/variadic-mangle3a.C
  6c67e276177a53a05508b5e974504d12  gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn.C
  3cb08ca5f565f9984bffaa086cbace20  gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C
  08d2bff6abb7f96f072898cb08f80fbc  gcc/testsuite/g++.dg/cpp0x/variadic-nested1.C
--- 17728,17740 ----
  f64443a27f946984ec474714387b99a8  gcc/testsuite/g++.dg/cpp0x/variadic-lambda.C
  4cdd030747166cc1128b9b0b1db26c74  gcc/testsuite/g++.dg/cpp0x/variadic-mangle1.C
  61d159a494882dad368e53517bf8df8d  gcc/testsuite/g++.dg/cpp0x/variadic-mangle1a.C
! c892b844f6fd95819e5044dfa3312e43  gcc/testsuite/g++.dg/cpp0x/variadic-mangle2.C
  7727443a155c2eed9930c6bc3f808465  gcc/testsuite/g++.dg/cpp0x/variadic-mangle2a.C
  8dd845093d366e371bdaf222fda42413  gcc/testsuite/g++.dg/cpp0x/variadic-mangle3.C
  efdeb5b65b79fc6ff926b12f711edcb1  gcc/testsuite/g++.dg/cpp0x/variadic-mangle3a.C
+ 82915557040f48df46fc292a92a536f5  gcc/testsuite/g++.dg/cpp0x/variadic-mangle4.C
+ 4cfa6d55331cc05e1a93a2795d23ec26  gcc/testsuite/g++.dg/cpp0x/variadic-mangle5.C
+ 153480cd2490bfce857224bb2b103b5a  gcc/testsuite/g++.dg/cpp0x/variadic-mangle5a.C
  6c67e276177a53a05508b5e974504d12  gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn.C
  3cb08ca5f565f9984bffaa086cbace20  gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C
  08d2bff6abb7f96f072898cb08f80fbc  gcc/testsuite/g++.dg/cpp0x/variadic-nested1.C
*************** e47543bd9482646c5c0d1023519e7eb1  gcc/te
*** 16474,16479 ****
--- 17748,17754 ----
  48eb2c981da41427b39595337f986824  gcc/testsuite/g++.dg/cpp0x/variadic-partial1.C
  b20d8acf670aad710e257d31a6938ec7  gcc/testsuite/g++.dg/cpp0x/variadic-partial2.C
  f7b6e32cbed201fb5448079ea1b77a05  gcc/testsuite/g++.dg/cpp0x/variadic-partial2a.C
+ 8053fd5af1659a30d6886b87f78f7a91  gcc/testsuite/g++.dg/cpp0x/variadic-partial3.C
  929e72e50917907d735e84a67d7462fa  gcc/testsuite/g++.dg/cpp0x/variadic-ref1.C
  0e1a5d3d60669df0ab8d526a879627f5  gcc/testsuite/g++.dg/cpp0x/variadic-rref.C
  ec2fde26ddf074a4393a34fcd501a0cc  gcc/testsuite/g++.dg/cpp0x/variadic-sizeof1.C
*************** e3e82a31ef89508e7025df3539121b77  gcc/te
*** 16713,16720 ****
  94accbb1b8bfc74f335cb4d65ec8d318  gcc/testsuite/g++.dg/cpp0x/vt-51314.C
  9041a97703f451f5649e698df7afd949  gcc/testsuite/g++.dg/cpp0x/vt-55323.C
  d7602a60449fc61c76ec8c46127f6987  gcc/testsuite/g++.dg/cpp0x/vt-55542.C
! 5441b844f46626eb4ee92671f215a0b5  gcc/testsuite/g++.dg/cpp0x/vt-57397-1.C
! 933e239fc892d78ec5fe2fba93d8e41e  gcc/testsuite/g++.dg/cpp0x/vt-57397-2.C
  119e25bef9bfd9bc501817cb6a7a133b  gcc/testsuite/g++.dg/cpp0x/vt-57626.C
  671b50bb42e6789a78615f66472afc69  gcc/testsuite/g++.dg/cpp0x/vt-58156.C
  79b4b3485953dcb62a7d989eae0fa304  gcc/testsuite/g++.dg/cpp0x/vt-59361.C
--- 17988,17995 ----
  94accbb1b8bfc74f335cb4d65ec8d318  gcc/testsuite/g++.dg/cpp0x/vt-51314.C
  9041a97703f451f5649e698df7afd949  gcc/testsuite/g++.dg/cpp0x/vt-55323.C
  d7602a60449fc61c76ec8c46127f6987  gcc/testsuite/g++.dg/cpp0x/vt-55542.C
! e11be0522432777c3155c32ef3b0be18  gcc/testsuite/g++.dg/cpp0x/vt-57397-1.C
! 7693388476113b994dd5a10463e03941  gcc/testsuite/g++.dg/cpp0x/vt-57397-2.C
  119e25bef9bfd9bc501817cb6a7a133b  gcc/testsuite/g++.dg/cpp0x/vt-57626.C
  671b50bb42e6789a78615f66472afc69  gcc/testsuite/g++.dg/cpp0x/vt-58156.C
  79b4b3485953dcb62a7d989eae0fa304  gcc/testsuite/g++.dg/cpp0x/vt-59361.C
*************** c58aea587f92e9318dcbcd4325ab9500  gcc/te
*** 16801,16807 ****
  16b6f02943caa33a60147c1a057fc46d  gcc/testsuite/g++.dg/cpp1y/auto-fn57.C
  6fb9fbe5ab7c10e45ae6b0a39a34daf7  gcc/testsuite/g++.dg/cpp1y/auto-fn58.C
  30bcbf110bfbb5781cb2d0893a476868  gcc/testsuite/g++.dg/cpp1y/auto-fn59.C
! 3861eed28323480e4913eea3d9c0ec00  gcc/testsuite/g++.dg/cpp1y/auto-fn6.C
  0e31cca86c98231e2720ee96ce25a02d  gcc/testsuite/g++.dg/cpp1y/auto-fn60.C
  e791b94844e59093ad5ec4175c3b673a  gcc/testsuite/g++.dg/cpp1y/auto-fn61.C
  6e1d5ab3b055c7676402021642622903  gcc/testsuite/g++.dg/cpp1y/auto-fn62.C
--- 18076,18082 ----
  16b6f02943caa33a60147c1a057fc46d  gcc/testsuite/g++.dg/cpp1y/auto-fn57.C
  6fb9fbe5ab7c10e45ae6b0a39a34daf7  gcc/testsuite/g++.dg/cpp1y/auto-fn58.C
  30bcbf110bfbb5781cb2d0893a476868  gcc/testsuite/g++.dg/cpp1y/auto-fn59.C
! 3caae9d880cf4265789a968d0426997b  gcc/testsuite/g++.dg/cpp1y/auto-fn6.C
  0e31cca86c98231e2720ee96ce25a02d  gcc/testsuite/g++.dg/cpp1y/auto-fn60.C
  e791b94844e59093ad5ec4175c3b673a  gcc/testsuite/g++.dg/cpp1y/auto-fn61.C
  6e1d5ab3b055c7676402021642622903  gcc/testsuite/g++.dg/cpp1y/auto-fn62.C
*************** b18c63a0e6b162de2b47ab0e61b704bd  gcc/te
*** 16830,16835 ****
--- 18105,18112 ----
  03786101e254b753687a1c243a43278a  gcc/testsuite/g++.dg/cpp1y/constexpr-105050.C
  afbdcf440b8da95f919e745c0f3a85d1  gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C
  bff4672a992bc57b0432abbc32b3c2c9  gcc/testsuite/g++.dg/cpp1y/constexpr-108158.C
+ 1d40cabd787f31f0fad7fcf842281e0d  gcc/testsuite/g++.dg/cpp1y/constexpr-110382.C
+ c0c4053e9d0ac3fdafa8e18c09182922  gcc/testsuite/g++.dg/cpp1y/constexpr-110619.C
  2d72668eefa5659edd32ef8dabc1c48e  gcc/testsuite/g++.dg/cpp1y/constexpr-50060.C
  9b2030f5f70b0e913feb1b957c799f4f  gcc/testsuite/g++.dg/cpp1y/constexpr-66093.C
  9ecc58eab147adafbf3780c51ed706fc  gcc/testsuite/g++.dg/cpp1y/constexpr-70265-1.C
*************** c0c65bed3f0ec11995705af19bb8b6ad  gcc/te
*** 16861,16874 ****
  54065250db8014b94087e19130b9d3ce  gcc/testsuite/g++.dg/cpp1y/constexpr-89074-2.C
  1cfec2a008c883718d7eb9a906eac434  gcc/testsuite/g++.dg/cpp1y/constexpr-89074-3.C
  41621f8920967bf3379b8966768c1824  gcc/testsuite/g++.dg/cpp1y/constexpr-89285-2.C
! 6cec19d370f7929ae4061e25cc42edba  gcc/testsuite/g++.dg/cpp1y/constexpr-89285.C
  6287f6343875c97718b7c31626b1a892  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-1.C
  fe38eb995d3f36bcf45ac701099de121  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-2.C
! d97642d3edfa83e4dceb98692f10ca15  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-3.C
! d8d5c97f0cfc535ec6b3092d8c2ad0a6  gcc/testsuite/g++.dg/cpp1y/constexpr-89481.C
  489bd3de48ef1607ca304163277af5df  gcc/testsuite/g++.dg/cpp1y/constexpr-89652.C
  90fa885f78614bf5c1521576e421e9bd  gcc/testsuite/g++.dg/cpp1y/constexpr-89785-1.C
! c3a803312a82c02990ef478b3889beb2  gcc/testsuite/g++.dg/cpp1y/constexpr-89785-2.C
  d74feec74ad417ce346db9a37de13b2b  gcc/testsuite/g++.dg/cpp1y/constexpr-90199.C
  6da026613aee5ef4a0c106f2bd05788e  gcc/testsuite/g++.dg/cpp1y/constexpr-90383-1.C
  14a30fd2e20dff6196843757b1aeaa95  gcc/testsuite/g++.dg/cpp1y/constexpr-90383-2.C
--- 18138,18151 ----
  54065250db8014b94087e19130b9d3ce  gcc/testsuite/g++.dg/cpp1y/constexpr-89074-2.C
  1cfec2a008c883718d7eb9a906eac434  gcc/testsuite/g++.dg/cpp1y/constexpr-89074-3.C
  41621f8920967bf3379b8966768c1824  gcc/testsuite/g++.dg/cpp1y/constexpr-89285-2.C
! f8a9b3028529f18a5e432155a8a3fccf  gcc/testsuite/g++.dg/cpp1y/constexpr-89285.C
  6287f6343875c97718b7c31626b1a892  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-1.C
  fe38eb995d3f36bcf45ac701099de121  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-2.C
! 70f3c97e5bb490843418168fb6a19021  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-3.C
! cc4ad5c299b28c2a25bb202353e34323  gcc/testsuite/g++.dg/cpp1y/constexpr-89481.C
  489bd3de48ef1607ca304163277af5df  gcc/testsuite/g++.dg/cpp1y/constexpr-89652.C
  90fa885f78614bf5c1521576e421e9bd  gcc/testsuite/g++.dg/cpp1y/constexpr-89785-1.C
! 2c509938f2be7b0ae66db1989c2a9e0b  gcc/testsuite/g++.dg/cpp1y/constexpr-89785-2.C
  d74feec74ad417ce346db9a37de13b2b  gcc/testsuite/g++.dg/cpp1y/constexpr-90199.C
  6da026613aee5ef4a0c106f2bd05788e  gcc/testsuite/g++.dg/cpp1y/constexpr-90383-1.C
  14a30fd2e20dff6196843757b1aeaa95  gcc/testsuite/g++.dg/cpp1y/constexpr-90383-2.C
*************** e383dd00754b034ccf88071ffbf49978  gcc/te
*** 16898,16903 ****
--- 18175,18181 ----
  9912061f6e14d9f4a1f557e23a4f89c2  gcc/testsuite/g++.dg/cpp1y/constexpr-copy1.C
  464341f29e9993d1f1a167321ef412cf  gcc/testsuite/g++.dg/cpp1y/constexpr-copy2.C
  e6815ab618d6af99025ddeacf6ab0545  gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C
+ 88282f8bf693ffa125633a68f4b3c32e  gcc/testsuite/g++.dg/cpp1y/constexpr-diag1.C
  4808950072f67f78922c9046e31e486d  gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C
  1108af7f1a7e79d87b94e4c2b3730c9d  gcc/testsuite/g++.dg/cpp1y/constexpr-elision1.C
  9b6ce1c2202c1ce9ea82fda5f060499b  gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C
*************** af9863e9fca568fa5ae3ad41b051cf84  gcc/te
*** 16910,16915 ****
--- 18188,18200 ----
  3e9dd485a2a6d99132c92a6d04b96ee9  gcc/testsuite/g++.dg/cpp1y/constexpr-initlist1.C
  ab56709d31a56066e2a96779bd194779  gcc/testsuite/g++.dg/cpp1y/constexpr-instantiate.C
  a3eb2783b3258724406759b817abc91a  gcc/testsuite/g++.dg/cpp1y/constexpr-label.C
+ 1297f76fa7088a7c9747166ee879af11  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime1.C
+ 477f60aba41bed3324625dc7a00211dc  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime2.C
+ 0937692c52b3c42dcf0f68d41ef28785  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime3.C
+ 75c8fd989d2695f040bad1902e93aa5b  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime4.C
+ b2460a481f484bc8a7ba8d28e5c629a4  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime5.C
+ e187a4884ec67eda4940f8331b05f797  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime6.C
+ 9394c87e1daf56677afb53cdb05ce887  gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime7.C
  14b35cb8a87b121f413f22b600d19592  gcc/testsuite/g++.dg/cpp1y/constexpr-local-compound1.C
  3a3d744ee7d9f610351075218538740d  gcc/testsuite/g++.dg/cpp1y/constexpr-local1.C
  b9802763e15bc5d3383abb6baf492f9a  gcc/testsuite/g++.dg/cpp1y/constexpr-local2.C
*************** b6f3cbabd3fb752ace73590e7135e551  gcc/te
*** 16936,16947 ****
  446ddedfba3c61b298533f22b6de09cf  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi6a.C
  16d3e12769a7e8caf74db419c6334acb  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi6b.C
  620dc546394e1415cbe160a424e5aebc  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi7a.C
! e3cfe7135470a51262be752b71c2092b  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi7b.C
  8e2e9946848c5ffc12f5f2da3fb70c72  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi8.C
  5d70ae105705b7db38c2cb81da31b2fc  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi9.C
  14a6242de0a2e59abd4b2ccf95495c91  gcc/testsuite/g++.dg/cpp1y/constexpr-ptrsub1.C
  3ebd2f678927c3d6b60ebc749680a96e  gcc/testsuite/g++.dg/cpp1y/constexpr-recursion1.C
  777febedb9b77383ec600e70a1668eb9  gcc/testsuite/g++.dg/cpp1y/constexpr-ref1.C
  6688f378d2b0f24307bbda6bfb45a808  gcc/testsuite/g++.dg/cpp1y/constexpr-return1.C
  0ddea6e50e190614deb2d4073399abfc  gcc/testsuite/g++.dg/cpp1y/constexpr-return2.C
  0158e9ac9fca9d7aa70811273fb72c2c  gcc/testsuite/g++.dg/cpp1y/constexpr-return3.C
--- 18221,18234 ----
  446ddedfba3c61b298533f22b6de09cf  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi6a.C
  16d3e12769a7e8caf74db419c6334acb  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi6b.C
  620dc546394e1415cbe160a424e5aebc  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi7a.C
! 6990c78a168ceeadf094bc1af7e04a70  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi7b.C
  8e2e9946848c5ffc12f5f2da3fb70c72  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi8.C
  5d70ae105705b7db38c2cb81da31b2fc  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi9.C
  14a6242de0a2e59abd4b2ccf95495c91  gcc/testsuite/g++.dg/cpp1y/constexpr-ptrsub1.C
  3ebd2f678927c3d6b60ebc749680a96e  gcc/testsuite/g++.dg/cpp1y/constexpr-recursion1.C
  777febedb9b77383ec600e70a1668eb9  gcc/testsuite/g++.dg/cpp1y/constexpr-ref1.C
+ 60f807456796c8ef2678ab89851a8dd9  gcc/testsuite/g++.dg/cpp1y/constexpr-reinterpret3.C
+ 4f2e969a81be7a57cb28aad1fa0f584e  gcc/testsuite/g++.dg/cpp1y/constexpr-reinterpret4.C
  6688f378d2b0f24307bbda6bfb45a808  gcc/testsuite/g++.dg/cpp1y/constexpr-return1.C
  0ddea6e50e190614deb2d4073399abfc  gcc/testsuite/g++.dg/cpp1y/constexpr-return2.C
  0158e9ac9fca9d7aa70811273fb72c2c  gcc/testsuite/g++.dg/cpp1y/constexpr-return3.C
*************** f705c3231fd3394bbd8e1f6d3c18f870  gcc/te
*** 16954,16983 ****
  469cd1fc4d897d90592a00ce78be9201  gcc/testsuite/g++.dg/cpp1y/constexpr-switch2.C
  c1e1359ff4463d37602a3a97e87c775f  gcc/testsuite/g++.dg/cpp1y/constexpr-switch3.C
  2cf598a0cfa5187e173eb042b77aa4a7  gcc/testsuite/g++.dg/cpp1y/constexpr-switch4.C
! ad7aa3aa61504a6d0f70e8274c636732  gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C
  2a5c9e43d369c7c32f8c79fad7cf050c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const1.C
  a1e377256d28d8d31ad5d8530b880858  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const10.C
  f436b4eb5c47f9c351af92f0818f4357  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const11.C
  ce64b458af0eff7462ad79bec5d810a5  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const12.C
  1b153a1a8e10b659481a8f626526eade  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const13.C
! d19abbc2e0b062ebcc3728b4dc401570  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const14.C
  5575bb0cc8fb664367190c540528df62  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const15.C
! 548d403b404efae940563870c527b906  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const16.C
  ef67ed4e00e138e2fbc918f485018da4  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const17.C
! 3e43bf1713e81bfe1402acf84e0bbf07  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const18.C
! 40b6bde8e3e128218718cd3e4c4da198  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const19.C
  4e3d83775851fd5293c59fd1e3715191  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const2.C
  a72b6d0eef59a6381b3c5a170d2816c3  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const20.C
! 0c2d54515a04b24c7861c817b816199d  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const21.C
! b559841703848d49b896b037e7662466  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const22.C
  c852b90715bb9d838555bf840109879c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const23.C
  627447dfa0aac67dac38b909ce07847a  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const24.C
  b18227041f137f2f137e6f4a112d3e1c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const25.C
! 6347cab24e6ef828484476bb1836185a  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const3.C
! 331f79f557bfc269667ccb548a3aa81f  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const4.C
  4b63e8ef46fd35198e417a5c233c60c3  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const5.C
  8c6432f7c998d6c755c4707060d53c90  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const6.C
! 8ba1a5bad3991c8d1fb63e8df4fedfcf  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const7.C
  66168741b4a28da30c971fc969afa93b  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const8.C
  9fa4650ff806159d04dcad36c941290e  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const9.C
  0338099a8b7545e92dbe09d98b8c671d  gcc/testsuite/g++.dg/cpp1y/constexpr-type-def-compound1.C
--- 18241,18270 ----
  469cd1fc4d897d90592a00ce78be9201  gcc/testsuite/g++.dg/cpp1y/constexpr-switch2.C
  c1e1359ff4463d37602a3a97e87c775f  gcc/testsuite/g++.dg/cpp1y/constexpr-switch3.C
  2cf598a0cfa5187e173eb042b77aa4a7  gcc/testsuite/g++.dg/cpp1y/constexpr-switch4.C
! ad1b98b9081b8c8a0ca07d8b64ce56a4  gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C
  2a5c9e43d369c7c32f8c79fad7cf050c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const1.C
  a1e377256d28d8d31ad5d8530b880858  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const10.C
  f436b4eb5c47f9c351af92f0818f4357  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const11.C
  ce64b458af0eff7462ad79bec5d810a5  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const12.C
  1b153a1a8e10b659481a8f626526eade  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const13.C
! 8162948cff6e9c5f7f7bdb85aeff1d88  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const14.C
  5575bb0cc8fb664367190c540528df62  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const15.C
! e95155a5271df608f8c1607c4243ae10  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const16.C
  ef67ed4e00e138e2fbc918f485018da4  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const17.C
! 1ee2c1b8d033c71f6ceef9417da3b617  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const18.C
! 050947057bb4488e2d260d4a1ced06ca  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const19.C
  4e3d83775851fd5293c59fd1e3715191  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const2.C
  a72b6d0eef59a6381b3c5a170d2816c3  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const20.C
! 36f0b5cb1deeb6f5cb396bb9bd10345c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const21.C
! 919deda5d74f4207fc2902f38c466746  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const22.C
  c852b90715bb9d838555bf840109879c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const23.C
  627447dfa0aac67dac38b909ce07847a  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const24.C
  b18227041f137f2f137e6f4a112d3e1c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const25.C
! 28528540485fd698e23140d328175115  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const3.C
! b4a098317e1a5a6d3132eb46c6bfe1ba  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const4.C
  4b63e8ef46fd35198e417a5c233c60c3  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const5.C
  8c6432f7c998d6c755c4707060d53c90  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const6.C
! 5f5d67141961ee9a6df21ee11703b309  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const7.C
  66168741b4a28da30c971fc969afa93b  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const8.C
  9fa4650ff806159d04dcad36c941290e  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const9.C
  0338099a8b7545e92dbe09d98b8c671d  gcc/testsuite/g++.dg/cpp1y/constexpr-type-def-compound1.C
*************** f869695e4081f7115b13ec5e36fddb37  gcc/te
*** 16986,17003 ****
  461132a0f27a9d48c4ec27f316b7bc3f  gcc/testsuite/g++.dg/cpp1y/constexpr-union2.C
  8ece8d5e2dc7825348adc290f15f27ef  gcc/testsuite/g++.dg/cpp1y/constexpr-union3.C
  0d61c25c0a75135836f0a58ca48b7b73  gcc/testsuite/g++.dg/cpp1y/constexpr-union4.C
! 7f3ff72ef38fb4ed95823620b68ece0e  gcc/testsuite/g++.dg/cpp1y/constexpr-union5.C
  d05362a8ea33190463d383e8c676b147  gcc/testsuite/g++.dg/cpp1y/constexpr-void1.C
  f9177d17a8e7ca1cf52d2e3f3738490b  gcc/testsuite/g++.dg/cpp1y/constexpr-void2.C
  83f6314e632d195e61997bd04ab32847  gcc/testsuite/g++.dg/cpp1y/context-conv1.C
  382c88b3557d1313cf8ea52c3a5c5e11  gcc/testsuite/g++.dg/cpp1y/cplusplus.C
  f8cacc42b6d0ee02c4ec28b4871b946c  gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C
  5b15891a6820c943437e7dcf50430c8c  gcc/testsuite/g++.dg/cpp1y/decltype-auto1.C
  0653e60a48db4ca2c0d5dfd34d936643  gcc/testsuite/g++.dg/cpp1y/decltype-auto2.C
  12c22b7a794484f616e052459e6ee353  gcc/testsuite/g++.dg/cpp1y/decltype-auto3.C
  e210eaaa7545615d95f00423c888ec15  gcc/testsuite/g++.dg/cpp1y/decltype-auto4.C
  194055ab7fa17e843b9e74ef24b2d117  gcc/testsuite/g++.dg/cpp1y/decltype-auto5.C
  29d019b91f9e9754780b3f7d3b824a43  gcc/testsuite/g++.dg/cpp1y/decltype-auto6.C
  516d0cef75f4267f67d755a810807bc2  gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C
  689cbb9207e775c0f7572b0587fbd4fd  gcc/testsuite/g++.dg/cpp1y/digit-sep-line-neg.C
  b0b8339395130310f925dd038dff1c6c  gcc/testsuite/g++.dg/cpp1y/digit-sep-line.C
--- 18273,18294 ----
  461132a0f27a9d48c4ec27f316b7bc3f  gcc/testsuite/g++.dg/cpp1y/constexpr-union2.C
  8ece8d5e2dc7825348adc290f15f27ef  gcc/testsuite/g++.dg/cpp1y/constexpr-union3.C
  0d61c25c0a75135836f0a58ca48b7b73  gcc/testsuite/g++.dg/cpp1y/constexpr-union4.C
! c95b474e81fafb3c32e78dd8a00c32d6  gcc/testsuite/g++.dg/cpp1y/constexpr-union5.C
! a7d5659c1bbfb03dfb6af2b75553695e  gcc/testsuite/g++.dg/cpp1y/constexpr-union6.C
! d99ae925326e660811310e6504f660e2  gcc/testsuite/g++.dg/cpp1y/constexpr-union7.C
  d05362a8ea33190463d383e8c676b147  gcc/testsuite/g++.dg/cpp1y/constexpr-void1.C
  f9177d17a8e7ca1cf52d2e3f3738490b  gcc/testsuite/g++.dg/cpp1y/constexpr-void2.C
  83f6314e632d195e61997bd04ab32847  gcc/testsuite/g++.dg/cpp1y/context-conv1.C
  382c88b3557d1313cf8ea52c3a5c5e11  gcc/testsuite/g++.dg/cpp1y/cplusplus.C
  f8cacc42b6d0ee02c4ec28b4871b946c  gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C
+ 769eadb37df4cacd8ae976d2710670ed  gcc/testsuite/g++.dg/cpp1y/decltype-auto-103497.C
  5b15891a6820c943437e7dcf50430c8c  gcc/testsuite/g++.dg/cpp1y/decltype-auto1.C
  0653e60a48db4ca2c0d5dfd34d936643  gcc/testsuite/g++.dg/cpp1y/decltype-auto2.C
  12c22b7a794484f616e052459e6ee353  gcc/testsuite/g++.dg/cpp1y/decltype-auto3.C
  e210eaaa7545615d95f00423c888ec15  gcc/testsuite/g++.dg/cpp1y/decltype-auto4.C
  194055ab7fa17e843b9e74ef24b2d117  gcc/testsuite/g++.dg/cpp1y/decltype-auto5.C
  29d019b91f9e9754780b3f7d3b824a43  gcc/testsuite/g++.dg/cpp1y/decltype-auto6.C
+ a0963c46378623804788982ece221428  gcc/testsuite/g++.dg/cpp1y/decltype-auto7.C
  516d0cef75f4267f67d755a810807bc2  gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C
  689cbb9207e775c0f7572b0587fbd4fd  gcc/testsuite/g++.dg/cpp1y/digit-sep-line-neg.C
  b0b8339395130310f925dd038dff1c6c  gcc/testsuite/g++.dg/cpp1y/digit-sep-line.C
*************** b3b113da61831ee64e68c118f850ec29  gcc/te
*** 17048,17054 ****
  87f3d5397981cf431912aae6490ea63a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-auto1.C
  18a2431f49a5d003b8c4af0ee1ee26fb  gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C
  043e19917f87f2b2acd754fc6d7db469  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const1.C
! c790f7e9c4673b5adfaed33d12cf5b0d  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const10.C
  565bd59fb2dca8cbcfbfa5b7e1e94368  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const2.C
  c1704c3068b9b801f6fca80634fa3d1c  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const3.C
  a429d84bc7f4132705bbe16ebbde7773  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const4.C
--- 18339,18345 ----
  87f3d5397981cf431912aae6490ea63a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-auto1.C
  18a2431f49a5d003b8c4af0ee1ee26fb  gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C
  043e19917f87f2b2acd754fc6d7db469  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const1.C
! 47c2e552352b5fe83e214360ec8e8cc7  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const10.C
  565bd59fb2dca8cbcfbfa5b7e1e94368  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const2.C
  c1704c3068b9b801f6fca80634fa3d1c  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const3.C
  a429d84bc7f4132705bbe16ebbde7773  gcc/testsuite/g++.dg/cpp1y/lambda-generic-const4.C
*************** cbe44bb553e043d66e5399d7f388dabf  gcc/te
*** 17082,17087 ****
--- 18373,18379 ----
  a5e1f08b66165b58419bbab37da9a962  gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C
  230ab773acec47b7efe832181c6c4972  gcc/testsuite/g++.dg/cpp1y/lambda-generic-nested1.C
  fcdbf299db7426d40d79e7ce91bbbc1e  gcc/testsuite/g++.dg/cpp1y/lambda-generic-nested2.C
+ e160d43dc52f94eb1531fdab251f1d7c  gcc/testsuite/g++.dg/cpp1y/lambda-generic-nested3.C
  79b0200bf1646b28e5d82c30cae3557d  gcc/testsuite/g++.dg/cpp1y/lambda-generic-noexcept1.C
  52a13a3c9f86f7ceca034afb60b8f785  gcc/testsuite/g++.dg/cpp1y/lambda-generic-nsdmi1.C
  a43ac25cf9725b9920a2cff31d07a8a7  gcc/testsuite/g++.dg/cpp1y/lambda-generic-pretty1.C
*************** d91a981f54ab2a15c0e9427ccb338f24  gcc/te
*** 17095,17100 ****
--- 18387,18393 ----
  5d6aac41102fa948ecd5b469abc35503  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this2.C
  5272ec327005dde6e5a2aaffb7102e42  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C
  85be199d2e0d4a7142fba0bb5f749ab7  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C
+ 575f67ce02ade2344a76bcfc5971fb64  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this5.C
  06ba6684e3759115ec5098f38667687b  gcc/testsuite/g++.dg/cpp1y/lambda-generic-trailing1.C
  e947551033232c5abe95cce5adfd22aa  gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C
  7515a5372d247dd5a94ef0626c25c2ae  gcc/testsuite/g++.dg/cpp1y/lambda-generic-uneval1.C
*************** e0f5a695e9604ed19c20c1e333da6015  gcc/te
*** 17143,17148 ****
--- 18436,18442 ----
  5fe011c8566939194cd3e0837e9e34c0  gcc/testsuite/g++.dg/cpp1y/lambda-init18.C
  958fe0b6d46088167932b1f19e7a6780  gcc/testsuite/g++.dg/cpp1y/lambda-init19.C
  8ed9afde76486ea02c03ca491cadf017  gcc/testsuite/g++.dg/cpp1y/lambda-init2.C
+ f7eb13e5b263202a2df69b62c18abd38  gcc/testsuite/g++.dg/cpp1y/lambda-init20.C
  2cd05217a3f9f694b94c428a478c4d15  gcc/testsuite/g++.dg/cpp1y/lambda-init3.C
  f2fd3b3d96f31c07233bb82ba0c0f2f5  gcc/testsuite/g++.dg/cpp1y/lambda-init4.C
  111fa5824efc658c838dda25e7968d0c  gcc/testsuite/g++.dg/cpp1y/lambda-init5.C
*************** cd1e1cc2c8f983dad04083b892ec54ad  gcc/te
*** 17176,17181 ****
--- 18470,18477 ----
  4c1005cb08e449c04d79bc0ad019da98  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr18.C
  a4faa7f44f43076a809225334e5cefa5  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr19.C
  6181386fced4d11038690bcc0729a80d  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr2.C
+ f044d441fed28ee965359a757ec1cb99  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr20.C
+ 8ef34326c4d74e3fb9d0c3c36539b046  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr21.C
  379f3d0c83382658777fb1c2f47ed88a  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr3.C
  d986a2e035160bd06d7fd81798876e53  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr4.C
  f487f4137e5fa352c9bff3ababd18d3c  gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr5.C
*************** b37062a8a2160ab7a8f6b2faf63a7687  gcc/te
*** 17192,17197 ****
--- 18488,18494 ----
  e8c6da7fb812f06074a9399c95d62136  gcc/testsuite/g++.dg/cpp1y/paren3.C
  86a0b848e4db7d7f6ee1c78dcc897448  gcc/testsuite/g++.dg/cpp1y/paren4.C
  f5ccbfc0fb9fd723ce3d0565bf79908b  gcc/testsuite/g++.dg/cpp1y/paren5.C
+ 4a608ee1c32cf1ba0c9cf94a4519469b  gcc/testsuite/g++.dg/cpp1y/paren6.C
  a59e5fd28eae5235838080483b6939a6  gcc/testsuite/g++.dg/cpp1y/phoobhar.h
  371feb662742879744f401685dc5a5e0  gcc/testsuite/g++.dg/cpp1y/pr104031.C
  eec419e7e2d598da544dfb7c3d14b09f  gcc/testsuite/g++.dg/cpp1y/pr108606.C
*************** e265e6e9deab5b038e7ef1df080d9b79  gcc/te
*** 17234,17240 ****
  5cb74801fd077c8935ddf3dee726e194  gcc/testsuite/g++.dg/cpp1y/pr66735.C
  5638089c538cc7cfb68d5ad4be23754c  gcc/testsuite/g++.dg/cpp1y/pr67273.C
  41b527c8a9e4efc39a17ac2ae08fe27f  gcc/testsuite/g++.dg/cpp1y/pr67980.C
! cc303b3b2d7233ccfd58467de3214ada  gcc/testsuite/g++.dg/cpp1y/pr68180.C
  0b713438d71229ec0d7fbc8d6beb65d5  gcc/testsuite/g++.dg/cpp1y/pr68278.C
  66407b019be3ad24d7c8b0a10c4ec4ec  gcc/testsuite/g++.dg/cpp1y/pr68388.C
  165032b8d9d8145284b0a64c372765ec  gcc/testsuite/g++.dg/cpp1y/pr68396.C
--- 18531,18537 ----
  5cb74801fd077c8935ddf3dee726e194  gcc/testsuite/g++.dg/cpp1y/pr66735.C
  5638089c538cc7cfb68d5ad4be23754c  gcc/testsuite/g++.dg/cpp1y/pr67273.C
  41b527c8a9e4efc39a17ac2ae08fe27f  gcc/testsuite/g++.dg/cpp1y/pr67980.C
! 7eb893df1b5ac6053d9996412b43aeb3  gcc/testsuite/g++.dg/cpp1y/pr68180.C
  0b713438d71229ec0d7fbc8d6beb65d5  gcc/testsuite/g++.dg/cpp1y/pr68278.C
  66407b019be3ad24d7c8b0a10c4ec4ec  gcc/testsuite/g++.dg/cpp1y/pr68388.C
  165032b8d9d8145284b0a64c372765ec  gcc/testsuite/g++.dg/cpp1y/pr68396.C
*************** ec5f3c884cd501d9b9d6585fabf2150d  gcc/te
*** 17242,17248 ****
  86afb9921518e8277bc8224c588a770e  gcc/testsuite/g++.dg/cpp1y/pr69066.C
  1d13e596981d58f9b60198cf74b31224  gcc/testsuite/g++.dg/cpp1y/pr70001.C
  fcbcd555635fe6701df362a0faf73cb3  gcc/testsuite/g++.dg/cpp1y/pr71875.C
! 349a60e47349360ddd62a8bcc5e96309  gcc/testsuite/g++.dg/cpp1y/pr72759.C
  3c255eede9224955a23910f5e84e2114  gcc/testsuite/g++.dg/cpp1y/pr77321.C
  cfda3f0fd7c7e2780a1c69a24a5dd8ca  gcc/testsuite/g++.dg/cpp1y/pr77446.C
  b1dd0e1128f26d2c0df901543e326c60  gcc/testsuite/g++.dg/cpp1y/pr77539.C
--- 18539,18545 ----
  86afb9921518e8277bc8224c588a770e  gcc/testsuite/g++.dg/cpp1y/pr69066.C
  1d13e596981d58f9b60198cf74b31224  gcc/testsuite/g++.dg/cpp1y/pr70001.C
  fcbcd555635fe6701df362a0faf73cb3  gcc/testsuite/g++.dg/cpp1y/pr71875.C
! 1c313d678fb3e021ad56b383d1fe4a77  gcc/testsuite/g++.dg/cpp1y/pr72759.C
  3c255eede9224955a23910f5e84e2114  gcc/testsuite/g++.dg/cpp1y/pr77321.C
  cfda3f0fd7c7e2780a1c69a24a5dd8ca  gcc/testsuite/g++.dg/cpp1y/pr77446.C
  b1dd0e1128f26d2c0df901543e326c60  gcc/testsuite/g++.dg/cpp1y/pr77539.C
*************** cda4d418155a1ac5ba05c018629e6bc3  gcc/te
*** 17257,17263 ****
  869002c18609fc85dfc92e7dd21b6648  gcc/testsuite/g++.dg/cpp1y/pr78774.C
  d391ba31f4534302c039c9af6be215f5  gcc/testsuite/g++.dg/cpp1y/pr79253.C
  46883c65d30eff2156a2c0d80de33f0d  gcc/testsuite/g++.dg/cpp1y/pr79393-2.C
! 138007dc67914c6bbdbf1c07d92b5146  gcc/testsuite/g++.dg/cpp1y/pr79393-3.C
  e498e8a1a8fb8d59ced1bf84781af0c9  gcc/testsuite/g++.dg/cpp1y/pr79393.C
  78f7b6310d849e70f4c919b5ac315cb8  gcc/testsuite/g++.dg/cpp1y/pr79435.C
  9b667c9d516823999474daebc2f8ea26  gcc/testsuite/g++.dg/cpp1y/pr79463.C
--- 18554,18560 ----
  869002c18609fc85dfc92e7dd21b6648  gcc/testsuite/g++.dg/cpp1y/pr78774.C
  d391ba31f4534302c039c9af6be215f5  gcc/testsuite/g++.dg/cpp1y/pr79253.C
  46883c65d30eff2156a2c0d80de33f0d  gcc/testsuite/g++.dg/cpp1y/pr79393-2.C
! 98950667fceb89d0b5ca13fb126f5e3d  gcc/testsuite/g++.dg/cpp1y/pr79393-3.C
  e498e8a1a8fb8d59ced1bf84781af0c9  gcc/testsuite/g++.dg/cpp1y/pr79393.C
  78f7b6310d849e70f4c919b5ac315cb8  gcc/testsuite/g++.dg/cpp1y/pr79435.C
  9b667c9d516823999474daebc2f8ea26  gcc/testsuite/g++.dg/cpp1y/pr79463.C
*************** d639da3c607ffc3d48291f9c5c18bc46  gcc/te
*** 17310,17315 ****
--- 18607,18613 ----
  1dc9c54a8befc5d2113798e9e09e288e  gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C
  ccacbb847e84ca3cc793998faff8def8  gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C
  2413c7ebb38fc82e48254c357136c380  gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C
+ 03a3cb6911276f2352529a6145262827  gcc/testsuite/g++.dg/cpp1y/var-templ-array1.C
  c7fba078751338c05bbce0c8c274e58d  gcc/testsuite/g++.dg/cpp1y/var-templ1.C
  99e14acf4b0584c5405849ca2bac0be8  gcc/testsuite/g++.dg/cpp1y/var-templ10.C
  32bcaa1bfd0c6e3f30b366f3913aa49b  gcc/testsuite/g++.dg/cpp1y/var-templ11.C
*************** c7ab12616c35e8ba0c0796618d522c42  gcc/te
*** 17390,17395 ****
--- 18688,18702 ----
  65e2c5dc982b2101d716a561b1d08003  gcc/testsuite/g++.dg/cpp1y/var-templ78.C
  b71a7403570a0e5b6ed564f63ee0d523  gcc/testsuite/g++.dg/cpp1y/var-templ79.C
  7490ba7f2bf9511118a48f52e8c4ceed  gcc/testsuite/g++.dg/cpp1y/var-templ8.C
+ 37c8791480718078a66af8ba22e0aea5  gcc/testsuite/g++.dg/cpp1y/var-templ80.C
+ 79b897fdb5aa0e41e4cf2f5b0fc02760  gcc/testsuite/g++.dg/cpp1y/var-templ81.C
+ 0ceb0ec7d642e84b4219e2c5a2475518  gcc/testsuite/g++.dg/cpp1y/var-templ82.C
+ 7224f1ba33a44073aa054fade40b76bb  gcc/testsuite/g++.dg/cpp1y/var-templ83.C
+ c22e1405c91d95d32ec012cae1f23ccc  gcc/testsuite/g++.dg/cpp1y/var-templ84.C
+ 8c741dfa8d2266829bbef765a0e11197  gcc/testsuite/g++.dg/cpp1y/var-templ84a.C
+ 7babed4c27249bda4fc60ca9f7b378c0  gcc/testsuite/g++.dg/cpp1y/var-templ85.C
+ 358ebedc9ef10722682a7bf350590dc2  gcc/testsuite/g++.dg/cpp1y/var-templ86.C
+ 2555b4c1ccdec6b7fca5b625f06840d3  gcc/testsuite/g++.dg/cpp1y/var-templ87.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
  2e5f8fa912af0b2871356af6f1adbd06  gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
  f82f70352e70742cc985b48be0774ebe  gcc/testsuite/g++.dg/cpp1y/vla10.C
*************** ca10f046e47ea09ba5b87084372f1ce2  gcc/te
*** 17426,17431 ****
--- 18733,18740 ----
  c5e8ac858eac19a1f1f10709e9b49389  gcc/testsuite/g++.dg/cpp1z/aligned-new7.C
  1c005f415746635350d5fd1bf3068b93  gcc/testsuite/g++.dg/cpp1z/aligned-new8.C
  177df6f1f169137815bb6b89c7a72a37  gcc/testsuite/g++.dg/cpp1z/aligned-new9.C
+ 754a7e408d065704f738891ba703e281  gcc/testsuite/g++.dg/cpp1z/array-prvalue1.C
+ dea62fa85e86450c80389ea639cb2473  gcc/testsuite/g++.dg/cpp1z/array-prvalue2.C
  15f78f24e2133987caada47dbd4501b6  gcc/testsuite/g++.dg/cpp1z/attr-lambda1.C
  34121807f233280bd4b9ceb565c64cf6  gcc/testsuite/g++.dg/cpp1z/attributes-enum-1.C
  a6e3099890bf75adfc276a625b3b0e3f  gcc/testsuite/g++.dg/cpp1z/attributes-enum-1a.C
*************** db3b073f0c7359db6e2ad4fbfa9c08d5  gcc/te
*** 17461,17466 ****
--- 18770,18778 ----
  d16e54a1ce726ad2154c8897b33a76f6  gcc/testsuite/g++.dg/cpp1z/class-deduction111.C
  07ec005b76a21ecba245d2a70baa779b  gcc/testsuite/g++.dg/cpp1z/class-deduction112.C
  189fae8c467b5ec39b2479b61e1a8bd6  gcc/testsuite/g++.dg/cpp1z/class-deduction113.C
+ b00e7a179ab6ea9a18ed7daadbf730c3  gcc/testsuite/g++.dg/cpp1z/class-deduction114.C
+ a17619735eec9cdd20de24318e732480  gcc/testsuite/g++.dg/cpp1z/class-deduction115.C
+ 432d42f8e47774c0da9fcfa0273053f5  gcc/testsuite/g++.dg/cpp1z/class-deduction116.C
  fccf66f75d0bb293e6ce56753e50eeda  gcc/testsuite/g++.dg/cpp1z/class-deduction12.C
  8033f2dbb1dc793a3fea073353a0487a  gcc/testsuite/g++.dg/cpp1z/class-deduction13.C
  f51a81e3b0aa46f289c5ca9d3faaded6  gcc/testsuite/g++.dg/cpp1z/class-deduction14.C
*************** d47bddaa09364b9feaca55aae058bc72  gcc/te
*** 17520,17526 ****
  9b6d509b9848a27c13b42647d1b70e9a  gcc/testsuite/g++.dg/cpp1z/class-deduction64.C
  e2a156ae37a7cc2e6e931224eb20400d  gcc/testsuite/g++.dg/cpp1z/class-deduction65.C
  0c2a81eea07958b08b069497c1cc14eb  gcc/testsuite/g++.dg/cpp1z/class-deduction66.C
! 5904fb8094f306eaee279b33016868b2  gcc/testsuite/g++.dg/cpp1z/class-deduction67.C
  436996455ea0d5216238b13ac0ebe6c2  gcc/testsuite/g++.dg/cpp1z/class-deduction68.C
  0c4cbf1c1555dcd38bc681ec78ffb409  gcc/testsuite/g++.dg/cpp1z/class-deduction69.C
  8c52b34d6b90a66b237e8933d7a2bed6  gcc/testsuite/g++.dg/cpp1z/class-deduction7.C
--- 18832,18838 ----
  9b6d509b9848a27c13b42647d1b70e9a  gcc/testsuite/g++.dg/cpp1z/class-deduction64.C
  e2a156ae37a7cc2e6e931224eb20400d  gcc/testsuite/g++.dg/cpp1z/class-deduction65.C
  0c2a81eea07958b08b069497c1cc14eb  gcc/testsuite/g++.dg/cpp1z/class-deduction66.C
! 795e09dc2248ffb27e679e2ae9ecff65  gcc/testsuite/g++.dg/cpp1z/class-deduction67.C
  436996455ea0d5216238b13ac0ebe6c2  gcc/testsuite/g++.dg/cpp1z/class-deduction68.C
  0c4cbf1c1555dcd38bc681ec78ffb409  gcc/testsuite/g++.dg/cpp1z/class-deduction69.C
  8c52b34d6b90a66b237e8933d7a2bed6  gcc/testsuite/g++.dg/cpp1z/class-deduction7.C
*************** e2a156ae37a7cc2e6e931224eb20400d  gcc/te
*** 17528,17534 ****
  b880b797e64a3be4339be5f3b8f87a90  gcc/testsuite/g++.dg/cpp1z/class-deduction71.C
  e5c7ffb3df4f8d1853f8366805381932  gcc/testsuite/g++.dg/cpp1z/class-deduction72.C
  dfbccb6f5601846d275514b7684d01a1  gcc/testsuite/g++.dg/cpp1z/class-deduction73.C
! 9b5ddfc7c836919b6863a55bff2863e8  gcc/testsuite/g++.dg/cpp1z/class-deduction74.C
  5bd09760c3c40512c7e433c6714430ac  gcc/testsuite/g++.dg/cpp1z/class-deduction75.C
  fdd6c8fc7721d160e8df7058409c8c10  gcc/testsuite/g++.dg/cpp1z/class-deduction76.C
  5991e451e740b314274ebf9fa4d78de6  gcc/testsuite/g++.dg/cpp1z/class-deduction77.C
--- 18840,18846 ----
  b880b797e64a3be4339be5f3b8f87a90  gcc/testsuite/g++.dg/cpp1z/class-deduction71.C
  e5c7ffb3df4f8d1853f8366805381932  gcc/testsuite/g++.dg/cpp1z/class-deduction72.C
  dfbccb6f5601846d275514b7684d01a1  gcc/testsuite/g++.dg/cpp1z/class-deduction73.C
! 0742feea5e4f35910185290e38226f5d  gcc/testsuite/g++.dg/cpp1z/class-deduction74.C
  5bd09760c3c40512c7e433c6714430ac  gcc/testsuite/g++.dg/cpp1z/class-deduction75.C
  fdd6c8fc7721d160e8df7058409c8c10  gcc/testsuite/g++.dg/cpp1z/class-deduction76.C
  5991e451e740b314274ebf9fa4d78de6  gcc/testsuite/g++.dg/cpp1z/class-deduction77.C
*************** e5653327dac59b8fbbaf57941cdf7070  gcc/te
*** 17556,17561 ****
--- 18868,18874 ----
  72569990a4289b5fd2ca50f289a5457b  gcc/testsuite/g++.dg/cpp1z/class-deduction97.C
  ee498b90c48803ed7e1e39f604107077  gcc/testsuite/g++.dg/cpp1z/class-deduction98.C
  196827ac69f45d97751bae8af9fb4549  gcc/testsuite/g++.dg/cpp1z/class-deduction99.C
+ 3e9e676eea887f9924149728080a4174  gcc/testsuite/g++.dg/cpp1z/constexpr-111284.C
  d09105e6c1f377543e5514e34d2837cd  gcc/testsuite/g++.dg/cpp1z/constexpr-83692.C
  6962bfa121a4383ee0b7a8f045abde3f  gcc/testsuite/g++.dg/cpp1z/constexpr-84684.C
  7417be75f23f5974ec35fe6261395c8c  gcc/testsuite/g++.dg/cpp1z/constexpr-89074-1.C
*************** d309961f0255b13605cf111efa2b095a  gcc/te
*** 17570,17575 ****
--- 18883,18889 ----
  6a2eb0af9be5a3b73df8e66127a94fd9  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda3.C
  2746f29337da849f597ad6ce8bbb74c2  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C
  f40b7c3743735802b3e2fa6c768cf560  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C
+ ae7754ba50de7c7210949438f1a4a6bc  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda6.C
  b70f4276933d24cd68ae2e047a954ece  gcc/testsuite/g++.dg/cpp1z/constexpr-if1.C
  1e52ede853069710bb8cc3b5b323de8c  gcc/testsuite/g++.dg/cpp1z/constexpr-if10.C
  6ad161b09218162d754ac9e397dad17c  gcc/testsuite/g++.dg/cpp1z/constexpr-if11.C
*************** cad98567f94d53447ca1544e0c0c7115  gcc/te
*** 17582,17588 ****
  c7ee56406172fe015ee155d53d292d5b  gcc/testsuite/g++.dg/cpp1z/constexpr-if18.C
  6cb8faea71e52484e8dbed7f9600eabe  gcc/testsuite/g++.dg/cpp1z/constexpr-if19.C
  2dc8e63803073fb37ce116457bb896f8  gcc/testsuite/g++.dg/cpp1z/constexpr-if2.C
! fce7c1c6e9c6e0612e8bbbce7dd13538  gcc/testsuite/g++.dg/cpp1z/constexpr-if20.C
  8cade7de4e693d5ac285db9e5bc7c253  gcc/testsuite/g++.dg/cpp1z/constexpr-if21.C
  bab6d9b6eafb87aeb614c70bf6a0e6b3  gcc/testsuite/g++.dg/cpp1z/constexpr-if22.C
  5db43288179338c57ef533875c7b48f6  gcc/testsuite/g++.dg/cpp1z/constexpr-if23.C
--- 18896,18902 ----
  c7ee56406172fe015ee155d53d292d5b  gcc/testsuite/g++.dg/cpp1z/constexpr-if18.C
  6cb8faea71e52484e8dbed7f9600eabe  gcc/testsuite/g++.dg/cpp1z/constexpr-if19.C
  2dc8e63803073fb37ce116457bb896f8  gcc/testsuite/g++.dg/cpp1z/constexpr-if2.C
! b674bc82c1d8202a0d0183767876f289  gcc/testsuite/g++.dg/cpp1z/constexpr-if20.C
  8cade7de4e693d5ac285db9e5bc7c253  gcc/testsuite/g++.dg/cpp1z/constexpr-if21.C
  bab6d9b6eafb87aeb614c70bf6a0e6b3  gcc/testsuite/g++.dg/cpp1z/constexpr-if22.C
  5db43288179338c57ef533875c7b48f6  gcc/testsuite/g++.dg/cpp1z/constexpr-if23.C
*************** c41894a4bd54230ff06cc2b36b53cc79  gcc/te
*** 17632,17641 ****
  7a1275d47f91f21fc9a37f0e47b89dad  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda3.C
  5267d9825ab86007a9529cb6214eae5c  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda4.C
  7b6d8d9af2ed24c66e7de295c6bd2cf9  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda5.C
! f52bfa10d1639ecf00dde7f41065a8d5  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda6.C
  3af36d6e5c42055ea5eb6b8a76c700f9  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda7.C
! 0cb6ac9bf693d7e79cc037b8bb03c507  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda8.C
  6eeb4cc38b29ea107311eb709f951bce  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda9.C
  dc79da7673ed16d15d0d867cdb7fd216  gcc/testsuite/g++.dg/cpp1z/constexpr-tracking-const1.C
  2643ce9ed72e4396a1faa18a91011562  gcc/testsuite/g++.dg/cpp1z/conv-tmpl1.C
  4478fc173d02354483bdb1dd9fdff5b5  gcc/testsuite/g++.dg/cpp1z/cplusplus.C
--- 18946,18959 ----
  7a1275d47f91f21fc9a37f0e47b89dad  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda3.C
  5267d9825ab86007a9529cb6214eae5c  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda4.C
  7b6d8d9af2ed24c66e7de295c6bd2cf9  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda5.C
! 89e7abea27600fa2ac900808f8a43e91  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda6.C
  3af36d6e5c42055ea5eb6b8a76c700f9  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda7.C
! dc531778c34b8147b5368b897fead391  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda8.C
  6eeb4cc38b29ea107311eb709f951bce  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda9.C
+ ecce30de0135bf47465224eb955bc76d  gcc/testsuite/g++.dg/cpp1z/constexpr-ref1.C
+ d34705b19edd717dfce5809f8b8f5070  gcc/testsuite/g++.dg/cpp1z/constexpr-ref2.C
+ c8914ae8ce6f7aff72c03c6bbe0814b1  gcc/testsuite/g++.dg/cpp1z/constexpr-template1.C
+ e08ebff953f9068d4a60bfd0de23ff1e  gcc/testsuite/g++.dg/cpp1z/constexpr-template2.C
  dc79da7673ed16d15d0d867cdb7fd216  gcc/testsuite/g++.dg/cpp1z/constexpr-tracking-const1.C
  2643ce9ed72e4396a1faa18a91011562  gcc/testsuite/g++.dg/cpp1z/conv-tmpl1.C
  4478fc173d02354483bdb1dd9fdff5b5  gcc/testsuite/g++.dg/cpp1z/cplusplus.C
*************** ba5e9d24245e572b3aebcc78d67fa0ac  gcc/te
*** 17645,17651 ****
  6a345da0d66cfd381de9d2b7ee32b1f9  gcc/testsuite/g++.dg/cpp1z/decomp-decltype1.C
  ea7e537a1ad5bc31eef18e636048f90d  gcc/testsuite/g++.dg/cpp1z/decomp-lambda1.C
  84bc152455f2541db49df06bc811b1f3  gcc/testsuite/g++.dg/cpp1z/decomp1.C
! a0b3020edb75d5164c9ece29abdf24d9  gcc/testsuite/g++.dg/cpp1z/decomp10.C
  bca94d5b89a5ff54a9e3c7eed7d82bfe  gcc/testsuite/g++.dg/cpp1z/decomp11.C
  698f42f497a250e1253b22f3e0b2b89c  gcc/testsuite/g++.dg/cpp1z/decomp12.C
  3fceb1dad7da2cc8d70fe589c21d3987  gcc/testsuite/g++.dg/cpp1z/decomp13.C
--- 18963,18969 ----
  6a345da0d66cfd381de9d2b7ee32b1f9  gcc/testsuite/g++.dg/cpp1z/decomp-decltype1.C
  ea7e537a1ad5bc31eef18e636048f90d  gcc/testsuite/g++.dg/cpp1z/decomp-lambda1.C
  84bc152455f2541db49df06bc811b1f3  gcc/testsuite/g++.dg/cpp1z/decomp1.C
! 1375fee033f7a979522a20527f474ced  gcc/testsuite/g++.dg/cpp1z/decomp10.C
  bca94d5b89a5ff54a9e3c7eed7d82bfe  gcc/testsuite/g++.dg/cpp1z/decomp11.C
  698f42f497a250e1253b22f3e0b2b89c  gcc/testsuite/g++.dg/cpp1z/decomp12.C
  3fceb1dad7da2cc8d70fe589c21d3987  gcc/testsuite/g++.dg/cpp1z/decomp13.C
*************** b7d7403e79705b373448ba972b81c55d  gcc/te
*** 17698,17703 ****
--- 19016,19022 ----
  b2c624c1eaea788d603bfc8204fdaee7  gcc/testsuite/g++.dg/cpp1z/decomp56.C
  7473f4d78f4cab74d8165611ea38a63d  gcc/testsuite/g++.dg/cpp1z/decomp57.C
  055f4b76f99d823ab62ec060da73a672  gcc/testsuite/g++.dg/cpp1z/decomp58.C
+ dfd54cc6e7ae91a6a51dbda233f20174  gcc/testsuite/g++.dg/cpp1z/decomp59.C
  1bdca83f97c5e15ddd3eda87ca5353f2  gcc/testsuite/g++.dg/cpp1z/decomp6.C
  09468d9aa8e4fe8ac0677b17a3c509a2  gcc/testsuite/g++.dg/cpp1z/decomp7.C
  0d7ba62c8322f4f98a085026e3ac529a  gcc/testsuite/g++.dg/cpp1z/decomp8.C
*************** bafa3ed0da0c14fc9337428032934f0f  gcc/te
*** 17711,17720 ****
  d0b40ed850fd3e55310fb990acbb4a46  gcc/testsuite/g++.dg/cpp1z/elide4.C
  c19f90a6b67cea2957e319db88a63ee3  gcc/testsuite/g++.dg/cpp1z/elide5.C
  e6baed7e5941603d690b9c2c737ea663  gcc/testsuite/g++.dg/cpp1z/elide6.C
  63be3b6d75aa3c2c8088552683d5245e  gcc/testsuite/g++.dg/cpp1z/eval-order10.C
  3abc6084e572264410718d38beb290bb  gcc/testsuite/g++.dg/cpp1z/eval-order11.C
  bb194d9ce590c9e5e69935ebac0f25e4  gcc/testsuite/g++.dg/cpp1z/eval-order2.C
! 89fdd37f4580457e23eeb34adcf4d4e0  gcc/testsuite/g++.dg/cpp1z/eval-order3.C
  6d8d378fedaf65b4cb89952060799280  gcc/testsuite/g++.dg/cpp1z/eval-order4.C
  56af6596678e014cdf3ef38d1427358f  gcc/testsuite/g++.dg/cpp1z/eval-order5.C
  f6da488c72cf7236fa560fcdd857f03e  gcc/testsuite/g++.dg/cpp1z/eval-order6.C
--- 19030,19041 ----
  d0b40ed850fd3e55310fb990acbb4a46  gcc/testsuite/g++.dg/cpp1z/elide4.C
  c19f90a6b67cea2957e319db88a63ee3  gcc/testsuite/g++.dg/cpp1z/elide5.C
  e6baed7e5941603d690b9c2c737ea663  gcc/testsuite/g++.dg/cpp1z/elide6.C
+ e3a88ae9ca562b3c9a47ee98c06e6ded  gcc/testsuite/g++.dg/cpp1z/elide7.C
+ 4f342bdb0846422506f927d7002f0311  gcc/testsuite/g++.dg/cpp1z/elide8.C
  63be3b6d75aa3c2c8088552683d5245e  gcc/testsuite/g++.dg/cpp1z/eval-order10.C
  3abc6084e572264410718d38beb290bb  gcc/testsuite/g++.dg/cpp1z/eval-order11.C
  bb194d9ce590c9e5e69935ebac0f25e4  gcc/testsuite/g++.dg/cpp1z/eval-order2.C
! 8b89dee7164b6f4d992706e5b85433f4  gcc/testsuite/g++.dg/cpp1z/eval-order3.C
  6d8d378fedaf65b4cb89952060799280  gcc/testsuite/g++.dg/cpp1z/eval-order4.C
  56af6596678e014cdf3ef38d1427358f  gcc/testsuite/g++.dg/cpp1z/eval-order5.C
  f6da488c72cf7236fa560fcdd857f03e  gcc/testsuite/g++.dg/cpp1z/eval-order6.C
*************** ba52c35faa435abd9cb368147dc00857  gcc/te
*** 17736,17742 ****
  91bd8e80a033defa1c149b412cb7ba1c  gcc/testsuite/g++.dg/cpp1z/fold12.C
  fa4ff7e96ff3b0d8cb7114d58f8127ac  gcc/testsuite/g++.dg/cpp1z/fold13.C
  5e8f1589e281e551eba15be5ad14bd8b  gcc/testsuite/g++.dg/cpp1z/fold2.C
! a33f917557c76cefc8e7e59dedbf0a4e  gcc/testsuite/g++.dg/cpp1z/fold3.C
  954117a731946951912acd1615190810  gcc/testsuite/g++.dg/cpp1z/fold4.C
  efd0a9cc44fe0ceb7d84ee3bef5c3930  gcc/testsuite/g++.dg/cpp1z/fold5.C
  44c8b5a5d0f20b930ab25cf9946e08e8  gcc/testsuite/g++.dg/cpp1z/fold6.C
--- 19057,19063 ----
  91bd8e80a033defa1c149b412cb7ba1c  gcc/testsuite/g++.dg/cpp1z/fold12.C
  fa4ff7e96ff3b0d8cb7114d58f8127ac  gcc/testsuite/g++.dg/cpp1z/fold13.C
  5e8f1589e281e551eba15be5ad14bd8b  gcc/testsuite/g++.dg/cpp1z/fold2.C
! df32941a1ab9e077fe9c66c6a9e7831f  gcc/testsuite/g++.dg/cpp1z/fold3.C
  954117a731946951912acd1615190810  gcc/testsuite/g++.dg/cpp1z/fold4.C
  efd0a9cc44fe0ceb7d84ee3bef5c3930  gcc/testsuite/g++.dg/cpp1z/fold5.C
  44c8b5a5d0f20b930ab25cf9946e08e8  gcc/testsuite/g++.dg/cpp1z/fold6.C
*************** efb0c3ae0359db707086c1750b31b943  gcc/te
*** 17780,17785 ****
--- 19101,19108 ----
  76b7f341f47dbd5cf84c38d1d2af9229  gcc/testsuite/g++.dg/cpp1z/init-statement9.C
  ffdea6bae4a048d4f98ae5a40bf524e4  gcc/testsuite/g++.dg/cpp1z/inline-var1.C
  5fdda464ad6962839138592830f7ad8b  gcc/testsuite/g++.dg/cpp1z/inline-var1.h
+ a1df95da049bad37f12a82b2c4bce4d6  gcc/testsuite/g++.dg/cpp1z/inline-var10.C
+ e3b1bce9d7f1b55e5e768c492442d55f  gcc/testsuite/g++.dg/cpp1z/inline-var11.C
  289178cd112b6bcc3886d28022e1b86f  gcc/testsuite/g++.dg/cpp1z/inline-var1a.C
  3a8f2f26c3c27f6dc9df8bc59af96db5  gcc/testsuite/g++.dg/cpp1z/inline-var2.C
  d02bac8866e9a3e5c4f19da65dda7c9a  gcc/testsuite/g++.dg/cpp1z/inline-var3.C
*************** df8a257f423ac22fb7f1854781367a03  gcc/te
*** 17818,17823 ****
--- 19141,19147 ----
  782eceaf43f435ac7c2c0b0f05624647  gcc/testsuite/g++.dg/cpp1z/nested-namespace-def1.C
  4470f18a10da3760c7723a622fd0befa  gcc/testsuite/g++.dg/cpp1z/nested-namespace-def2.C
  db6d80bc5f29d89b66dc0f6ca5cdfd89  gcc/testsuite/g++.dg/cpp1z/nested-namespace-def3.C
+ 208f1fd66875953db50fc568bdf40103  gcc/testsuite/g++.dg/cpp1z/nodiscard-inh1.C
  9cc897dec6c8c32e56bf70ab8cf299d0  gcc/testsuite/g++.dg/cpp1z/nodiscard1.C
  2def7bc32a45c8e255ae51bd62878f9d  gcc/testsuite/g++.dg/cpp1z/nodiscard2.C
  38db595fd6ee6c6498e94ad8412fa322  gcc/testsuite/g++.dg/cpp1z/nodiscard3.C
*************** b1e6554e1fa7e1c40ed33a028d6555dc  gcc/te
*** 17841,17847 ****
  33ce675622544b3ea51091070fed1e79  gcc/testsuite/g++.dg/cpp1z/noexcept-type19.h
  e2d27f023f98f0f6d5bbc4b4af73820d  gcc/testsuite/g++.dg/cpp1z/noexcept-type2.C
  b844f1c10ac36bdb44fcc5f47c7ed338  gcc/testsuite/g++.dg/cpp1z/noexcept-type20.C
! bedc458500693b5518d2b34bdc4de5cb  gcc/testsuite/g++.dg/cpp1z/noexcept-type21.C
  67c6b023262a15cbea344311656cb28f  gcc/testsuite/g++.dg/cpp1z/noexcept-type22.C
  34cf97af47dbe4a7ade75b94363e77b9  gcc/testsuite/g++.dg/cpp1z/noexcept-type23.C
  8a677f921d635efea7480743417cad8f  gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C
--- 19165,19171 ----
  33ce675622544b3ea51091070fed1e79  gcc/testsuite/g++.dg/cpp1z/noexcept-type19.h
  e2d27f023f98f0f6d5bbc4b4af73820d  gcc/testsuite/g++.dg/cpp1z/noexcept-type2.C
  b844f1c10ac36bdb44fcc5f47c7ed338  gcc/testsuite/g++.dg/cpp1z/noexcept-type20.C
! 161640f861ce28e29c4d0f38e0f3e3b6  gcc/testsuite/g++.dg/cpp1z/noexcept-type21.C
  67c6b023262a15cbea344311656cb28f  gcc/testsuite/g++.dg/cpp1z/noexcept-type22.C
  34cf97af47dbe4a7ade75b94363e77b9  gcc/testsuite/g++.dg/cpp1z/noexcept-type23.C
  8a677f921d635efea7480743417cad8f  gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C
*************** baa03d7258d20d4b9ab40c9db7bbc6b5  gcc/te
*** 17869,17874 ****
--- 19193,19201 ----
  ed6e021d8ba1db6a16b34256da084028  gcc/testsuite/g++.dg/cpp1z/nontype-auto2.C
  d7a225864717dba5339af4608d8e13d4  gcc/testsuite/g++.dg/cpp1z/nontype-auto20.C
  60fb293e53002840d461aa85c6c1fde3  gcc/testsuite/g++.dg/cpp1z/nontype-auto21.C
+ a7b34171000020208252212900f8f284  gcc/testsuite/g++.dg/cpp1z/nontype-auto22.C
+ 97d8079f31cc3712b8772771da1aef29  gcc/testsuite/g++.dg/cpp1z/nontype-auto23.C
+ c0ccc113d7cebb8f49a0532a92a7fe6a  gcc/testsuite/g++.dg/cpp1z/nontype-auto24.C
  cd20029423efae4adb87e862f927bf40  gcc/testsuite/g++.dg/cpp1z/nontype-auto3.C
  b7708449a230c66742c4b7273cffd6ff  gcc/testsuite/g++.dg/cpp1z/nontype-auto4.C
  1402258969b8e2de72b5d503776c4a4d  gcc/testsuite/g++.dg/cpp1z/nontype-auto5.C
*************** ae3e1959f85f05c9ec509a6dbdbe24ca  gcc/te
*** 17883,17888 ****
--- 19210,19216 ----
  6459f300d92f04eeb92c53237b82baac  gcc/testsuite/g++.dg/cpp1z/nontype4.C
  2d69a9b79c8f3fadb2bfb68b9d761c49  gcc/testsuite/g++.dg/cpp1z/nontype4a.C
  914a640ece1bdc2a12062de65d60a78d  gcc/testsuite/g++.dg/cpp1z/nontype5.C
+ 03ca05bf2eccb98d95222a2435a3d9ed  gcc/testsuite/g++.dg/cpp1z/pr110216.C
  e668ace19a2b0d8946e0e19fd8317af1  gcc/testsuite/g++.dg/cpp1z/pr78771.C
  bc5edc17d9b70d77a054dd4736a66223  gcc/testsuite/g++.dg/cpp1z/pr79143.C
  3e5ca07aaa322577e51fd003d9524cb0  gcc/testsuite/g++.dg/cpp1z/pr81016.C
*************** fcb976b72ee32e007373a445749a9790  gcc/te
*** 17931,17938 ****
  25f1583b4ac1d583f8771e8b23eda387  gcc/testsuite/g++.dg/cpp1z/using9.C
  335634ca6f39db21a4305967e6392c7e  gcc/testsuite/g++.dg/cpp1z/utf8-2.C
  5be5d7f2f40f7aea358f9007942afde2  gcc/testsuite/g++.dg/cpp1z/utf8-2a.C
! 744ee2159e8e7541ebf28afa0155714d  gcc/testsuite/g++.dg/cpp1z/utf8-neg.C
  c307915525471ee8f08e6059faf237d8  gcc/testsuite/g++.dg/cpp1z/utf8.C
  96100c9c0eee26169c18c9e98c78acae  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-1.C
  ab8d769d7df5db81722e76d1b5e07250  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-10.C
  219e4c16bcfde896ae8ad8dce8b3e6b0  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-11.C
--- 19259,19267 ----
  25f1583b4ac1d583f8771e8b23eda387  gcc/testsuite/g++.dg/cpp1z/using9.C
  335634ca6f39db21a4305967e6392c7e  gcc/testsuite/g++.dg/cpp1z/utf8-2.C
  5be5d7f2f40f7aea358f9007942afde2  gcc/testsuite/g++.dg/cpp1z/utf8-2a.C
! f9235da6d6cdb4a1e70b26f15496d72b  gcc/testsuite/g++.dg/cpp1z/utf8-neg.C
  c307915525471ee8f08e6059faf237d8  gcc/testsuite/g++.dg/cpp1z/utf8.C
+ f5e5a4ca1e899e3375fda184fe2556a9  gcc/testsuite/g++.dg/cpp1z/variant1.C
  96100c9c0eee26169c18c9e98c78acae  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-1.C
  ab8d769d7df5db81722e76d1b5e07250  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-10.C
  219e4c16bcfde896ae8ad8dce8b3e6b0  gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-11.C
*************** b3b323fdea6c9e2f2b6d012d7a438e1f  gcc/te
*** 17949,17954 ****
--- 19278,19284 ----
  19e4e3b00944ad3ecd30a121ea178980  gcc/testsuite/g++.dg/cpp23/attr-assume1.C
  50cef13b8381a6236d21785b262b62be  gcc/testsuite/g++.dg/cpp23/attr-assume10.C
  b2bb264b978e8414b90030fb893e3425  gcc/testsuite/g++.dg/cpp23/attr-assume11.C
+ eb5ce61ff55abd708e41186478faa5e8  gcc/testsuite/g++.dg/cpp23/attr-assume12.C
  30f34a5b440747c2315dd732987e6daf  gcc/testsuite/g++.dg/cpp23/attr-assume2.C
  9444531c46542730746629511362820c  gcc/testsuite/g++.dg/cpp23/attr-assume3.C
  dacec95fc1b9a4769b02ffcc28997c4e  gcc/testsuite/g++.dg/cpp23/attr-assume4.C
*************** cf5aa0107f8f30f3fff1a4de8babd1c7  gcc/te
*** 17965,17970 ****
--- 19295,19306 ----
  f2780bc5fd525d2709b14d4b73adff01  gcc/testsuite/g++.dg/cpp23/auto-fncast10.C
  3204d4ae77e55c08f93f7bedf052d297  gcc/testsuite/g++.dg/cpp23/auto-fncast11.C
  d132bd3d955db10a4c1bdd4e4fb66f69  gcc/testsuite/g++.dg/cpp23/auto-fncast12.C
+ c6ad3dc1af7ae5c57b2194ad705be2a4  gcc/testsuite/g++.dg/cpp23/auto-fncast13.C
+ 5464572dd400e693935b759dd0a5828a  gcc/testsuite/g++.dg/cpp23/auto-fncast14.C
+ 39b6a08afafbbf62a80d36100935343a  gcc/testsuite/g++.dg/cpp23/auto-fncast15.C
+ cbc1aae360c38b8d5aba44cc0adb1d1a  gcc/testsuite/g++.dg/cpp23/auto-fncast16.C
+ 0d6c0765aa6e381e901ea54f31098f7d  gcc/testsuite/g++.dg/cpp23/auto-fncast17.C
+ 607b1507f1af352b3b8d73c0b0042af0  gcc/testsuite/g++.dg/cpp23/auto-fncast18.C
  76d2964f5d2d58ccec6afc73c59f1b53  gcc/testsuite/g++.dg/cpp23/auto-fncast2.C
  dda23dff758a778a7ead9dd8b58268fc  gcc/testsuite/g++.dg/cpp23/auto-fncast3.C
  7f7896e62e131143c799cd8b4ac52168  gcc/testsuite/g++.dg/cpp23/auto-fncast4.C
*************** ee32c4ffc3127b060ad7d2d7978d4c00  gcc/te
*** 17975,17986 ****
  908376aadbb678dfe697398a3cf0bdb3  gcc/testsuite/g++.dg/cpp23/auto-fncast9.C
  436f3521c73eff29eb95a9935488f619  gcc/testsuite/g++.dg/cpp23/charlit-encoding1.C
  bbd34d70bffdb5659d43e105cc5654f0  gcc/testsuite/g++.dg/cpp23/charset1.C
  a5e6981af3e3d461e280ff24cd289402  gcc/testsuite/g++.dg/cpp23/concepts-err1.C
  636155e5662c48788ae52677e22b5249  gcc/testsuite/g++.dg/cpp23/consteval-if1.C
! c28c6948b623079449034db89bdf8f88  gcc/testsuite/g++.dg/cpp23/consteval-if10.C
  ccce1958f813ec9cf507643e2e946897  gcc/testsuite/g++.dg/cpp23/consteval-if11.C
! 180f93b23c3a64571573a219dfa17a40  gcc/testsuite/g++.dg/cpp23/consteval-if12.C
! 0c2987c36a44c0c98a383d70be5c942e  gcc/testsuite/g++.dg/cpp23/consteval-if2.C
  909e8ba3173bcd65b84cb0817fc9d921  gcc/testsuite/g++.dg/cpp23/consteval-if3.C
  4dee0d03b04a747975829c69d2be6072  gcc/testsuite/g++.dg/cpp23/consteval-if4.C
  65e5d02e104d487ca69f9975bb729fbf  gcc/testsuite/g++.dg/cpp23/consteval-if5.C
--- 19311,19326 ----
  908376aadbb678dfe697398a3cf0bdb3  gcc/testsuite/g++.dg/cpp23/auto-fncast9.C
  436f3521c73eff29eb95a9935488f619  gcc/testsuite/g++.dg/cpp23/charlit-encoding1.C
  bbd34d70bffdb5659d43e105cc5654f0  gcc/testsuite/g++.dg/cpp23/charset1.C
+ fc95968ef690ef967f99e7fc9cf9bb22  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited1.C
+ 0bfba7997142477c825e6eac0de01c78  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited2.C
+ 4d439f6f5585d12bf5b651068b33af79  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited3.C
+ 6f9da5d74fb47058bea3128a52841272  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited4.C
  a5e6981af3e3d461e280ff24cd289402  gcc/testsuite/g++.dg/cpp23/concepts-err1.C
  636155e5662c48788ae52677e22b5249  gcc/testsuite/g++.dg/cpp23/consteval-if1.C
! 821ea836b45f7af0a628e6eb278e28f9  gcc/testsuite/g++.dg/cpp23/consteval-if10.C
  ccce1958f813ec9cf507643e2e946897  gcc/testsuite/g++.dg/cpp23/consteval-if11.C
! 94117a73f7f1ca683fae64a4bd3c9305  gcc/testsuite/g++.dg/cpp23/consteval-if12.C
! 427f3fab3bc31f6206c2cb9401e951f1  gcc/testsuite/g++.dg/cpp23/consteval-if2.C
  909e8ba3173bcd65b84cb0817fc9d921  gcc/testsuite/g++.dg/cpp23/consteval-if3.C
  4dee0d03b04a747975829c69d2be6072  gcc/testsuite/g++.dg/cpp23/consteval-if4.C
  65e5d02e104d487ca69f9975bb729fbf  gcc/testsuite/g++.dg/cpp23/consteval-if5.C
*************** ad0337582a851840018e2f052ea50ed7  gcc/te
*** 18006,18012 ****
  e8f7bd0576728e974495935283ad4f39  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit7.C
  b5ce88b06b4f62273ce5e52103c3e312  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit8.C
  8cbdc0b2cb084aa43944f76ad3cc6b4c  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit9.C
! 94d923eb6e3e9a6e1a82b6aa88915ed5  gcc/testsuite/g++.dg/cpp23/cplusplus.C
  00ae59725cb1786e1ee39a6a0679d23b  gcc/testsuite/g++.dg/cpp23/decltype1.C
  ad2798e7c30fce3342d33a7665ce014d  gcc/testsuite/g++.dg/cpp23/decltype2.C
  eb9c16e1c46cc9d0426e008bdad12ca6  gcc/testsuite/g++.dg/cpp23/elision1.C
--- 19346,19352 ----
  e8f7bd0576728e974495935283ad4f39  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit7.C
  b5ce88b06b4f62273ce5e52103c3e312  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit8.C
  8cbdc0b2cb084aa43944f76ad3cc6b4c  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit9.C
! f65bb1e5f66424c13c7860bcbc2f5724  gcc/testsuite/g++.dg/cpp23/cplusplus.C
  00ae59725cb1786e1ee39a6a0679d23b  gcc/testsuite/g++.dg/cpp23/decltype1.C
  ad2798e7c30fce3342d33a7665ce014d  gcc/testsuite/g++.dg/cpp23/decltype2.C
  eb9c16e1c46cc9d0426e008bdad12ca6  gcc/testsuite/g++.dg/cpp23/elision1.C
*************** a87c887c826d5a234112e3c757dff154  gcc/te
*** 18016,18038 ****
  ccf58b30aec99457ebe03575f8fbbc78  gcc/testsuite/g++.dg/cpp23/elision5.C
  446dca0129eca2851cf1f299a514b6e7  gcc/testsuite/g++.dg/cpp23/elision6.C
  aa66280171c7ab32d5e0accda4bebe4c  gcc/testsuite/g++.dg/cpp23/elision7.C
  1920ebc9f1e972944422ac737c8036b9  gcc/testsuite/g++.dg/cpp23/ext-floating.h
  05c5caecbd98fac1ee44d884b0cff074  gcc/testsuite/g++.dg/cpp23/ext-floating1.C
  c72d14ea97191dbb2084a00c896b7069  gcc/testsuite/g++.dg/cpp23/ext-floating10.C
  34ab61b0739accec69a4e37816f69c50  gcc/testsuite/g++.dg/cpp23/ext-floating11.C
! 3fd33e5fe8b9f6f8c0258a14aa8a28f2  gcc/testsuite/g++.dg/cpp23/ext-floating12.C
  8cc9d0aee102e32cb9fdbbb7f94b195e  gcc/testsuite/g++.dg/cpp23/ext-floating13.C
  77c1e1529829f7eb3643512344995ae5  gcc/testsuite/g++.dg/cpp23/ext-floating14.C
  2a9ad0ec05ab4b695b06b215a048e7f8  gcc/testsuite/g++.dg/cpp23/ext-floating15.C
  1ebec45b4e33e270199203eb41a5bd2a  gcc/testsuite/g++.dg/cpp23/ext-floating2.C
! 4905f5f39ea9557a77ca4fa9b78a2d30  gcc/testsuite/g++.dg/cpp23/ext-floating3.C
  7cf138b5df4746c5a50ddd27889208d6  gcc/testsuite/g++.dg/cpp23/ext-floating4.C
  69bfa45bf0e2f69b0931d429ccaffb49  gcc/testsuite/g++.dg/cpp23/ext-floating5.C
  e4eef3325d652767c4b83b6aed8c24b5  gcc/testsuite/g++.dg/cpp23/ext-floating6.C
  54f4344e911f644cb2cc34417b933914  gcc/testsuite/g++.dg/cpp23/ext-floating7.C
  bc34c96001d8dfdc3193f88b494b97a1  gcc/testsuite/g++.dg/cpp23/ext-floating8.C
  235a8f3c94e9cc7e9180fe31a3d8352b  gcc/testsuite/g++.dg/cpp23/ext-floating9.C
! 1bdfd0d95e50159d9c648ffae235bdaf  gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C
  b2919427c96be25ae3a72933323c8de1  gcc/testsuite/g++.dg/cpp23/init-stmt1.C
  368308646b02bb36cf22014a0d5bbbdb  gcc/testsuite/g++.dg/cpp23/init-stmt2.C
  906bfd9572fea8013b12e8c215392381  gcc/testsuite/g++.dg/cpp23/label1.C
--- 19356,19439 ----
  ccf58b30aec99457ebe03575f8fbbc78  gcc/testsuite/g++.dg/cpp23/elision5.C
  446dca0129eca2851cf1f299a514b6e7  gcc/testsuite/g++.dg/cpp23/elision6.C
  aa66280171c7ab32d5e0accda4bebe4c  gcc/testsuite/g++.dg/cpp23/elision7.C
+ f8e3d5aac6600fc8d2af0a2f4c2e3eff  gcc/testsuite/g++.dg/cpp23/explicit-obj-basic1.C
+ d68ff489327a9f5e5f56d837c60e2660  gcc/testsuite/g++.dg/cpp23/explicit-obj-basic2.C
+ e737a77051d24d173d2bb52643590d75  gcc/testsuite/g++.dg/cpp23/explicit-obj-basic3.C
+ 689a17f26e3daf1afb43308b40e41054  gcc/testsuite/g++.dg/cpp23/explicit-obj-basic4.C
+ 7225222aa173afe8868619cad54c27a1  gcc/testsuite/g++.dg/cpp23/explicit-obj-basic5.C
+ bad48adbcea1b5ab74746df31c07ae84  gcc/testsuite/g++.dg/cpp23/explicit-obj-basic6.C
+ e1c6b3f77b5cd8798df16271a5de7653  gcc/testsuite/g++.dg/cpp23/explicit-obj-basic7.C
+ c59130e695f389c4f5f3948b6907a29e  gcc/testsuite/g++.dg/cpp23/explicit-obj-by-value1.C
+ 27180f1240f480ec1ce5767599879d49  gcc/testsuite/g++.dg/cpp23/explicit-obj-by-value2.C
+ c0225ef79d14425aa04c26d9c3f9838f  gcc/testsuite/g++.dg/cpp23/explicit-obj-by-value3.C
+ e2dcb8b406af03d5be3af22f69acda80  gcc/testsuite/g++.dg/cpp23/explicit-obj-by-value4.C
+ 67fada9d72150f084be5f39f144c895d  gcc/testsuite/g++.dg/cpp23/explicit-obj-constraints.C
+ 3ec047b8e228d40def253698e450fe6a  gcc/testsuite/g++.dg/cpp23/explicit-obj-constraints2.C
+ 03dde6aa9da32f29ef35fe77695fba73  gcc/testsuite/g++.dg/cpp23/explicit-obj-conv-op.C
+ 62a8babd947371bc24bf51848e1e1533  gcc/testsuite/g++.dg/cpp23/explicit-obj-cxx-dialect-A.C
+ 6a6a033d32895ca44cb77951e040b9ce  gcc/testsuite/g++.dg/cpp23/explicit-obj-cxx-dialect-B.C
+ a4ecf73aa8fa10b86d2304ed81fc096d  gcc/testsuite/g++.dg/cpp23/explicit-obj-cxx-dialect-C.C
+ a2fdc3739bd64ad29f9137fab52e1baf  gcc/testsuite/g++.dg/cpp23/explicit-obj-cxx-dialect-D.C
+ 11dcdba6124f8b8096c32225ea0fbfa0  gcc/testsuite/g++.dg/cpp23/explicit-obj-cxx-dialect-E.C
+ 0c56933d8a079133cf94284facb665b3  gcc/testsuite/g++.dg/cpp23/explicit-obj-default1.C
+ 2e3d88103234ad3d6a12be8712b732ee  gcc/testsuite/g++.dg/cpp23/explicit-obj-default2.C
+ fd75161e4b8767770d40e22fba5804bf  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics1.C
+ c6ea30380d84dd96bf6a1e7bb11a3a1d  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics10.C
+ 1748d62c3412cd516cbf34f160fcead9  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics2.C
+ 2d14e7695d051e479fc974c15008bdb1  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics3.C
+ 89179e6262348b2e8636e5896a5c1a91  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics4.C
+ 9beccc7cd7e6aa9a5683c133222007ba  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics5.C
+ c0e5d885fa865eb6022dc0d49f95ccc5  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics6.C
+ db9c91c24877e8deb6833879427c1c5a  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics7.C
+ bbec4ebaa9eb25cb6f5674378a048924  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics8.C
+ 91a2adb2573597b44ca672b07479e1fd  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics9.C
+ d794673e83c406364ada43bb3424172f  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda1.C
+ 63a44991fb60332c0389b38376547489  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda10.C
+ f7798123f560a2563579e7610c9e701c  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda11.C
+ 0e2a1aa0d0280f985ada8a4c3cbd2e07  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda12.C
+ d74bbc201fde13d804d767363c281130  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda13.C
+ ad90458ad42ff08d4a1c948d0770dd89  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda14.C
+ 87abca8eb660254fbf201e771eef3751  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C
+ e8adbb443f8b231b244ffbcd64ee7da2  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda3.C
+ 0a50eb80a181d4196ff68849d37d2615  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda4.C
+ cb8eabd8ed2aec8d2d6ba1aa825f9307  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda5.C
+ fb28c3c4345db35be424244557c365cd  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda6.C
+ 77b5ba801abda82920e4a0635bcd7272  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda7.C
+ da165426bd42052b8b76188cda72b9d0  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda8.C
+ 8a035725c026d000973cce6eff344a0c  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda9.C
+ b2f3c56b0d2811a5d77e2327f3980e78  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-alloc.C
+ 7e2080320e0d485d576ce8a4fcc30dd7  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-mem-arrow.C
+ ec11f58d4c99f1d1ba02dec1e8607c05  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-mem-assignment.C
+ 566fd5826d2cc6cc34978b709dba12fb  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-mem-call.C
+ 64e8f0fb9deed6c34b2974fdf8272bbf  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-mem-subscript.C
+ bd0cdc3de40c277b316225f200d60ef9  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-non-mem-dep.C
+ b7c6b55f8565ca0918f5e98479adfbb9  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-non-mem-non-dep.C
+ cd98ee301299f585b0a8a20826eac145  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-non-mem.h
+ d499643824eea4fcc7785d38ab051285  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-requires-mem.C
+ cb28b0e00ad9e531bfec42ab238338ec  gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-requires-non-mem.C
+ 27dcce13be33f0fb722a8c97b365fadf  gcc/testsuite/g++.dg/cpp23/explicit-obj-redecl.C
+ 657304ca2fe42010745e60a4c8be6da8  gcc/testsuite/g++.dg/cpp23/explicit-obj-redecl2.C
+ 703423bd0e04be4cc9c3bbb61179572a  gcc/testsuite/g++.dg/cpp23/explicit-obj-redecl3.C
+ 99db078d2055f4c65fcb3ad385201afb  gcc/testsuite/g++.dg/cpp23/explicit-obj-redecl4.C
  1920ebc9f1e972944422ac737c8036b9  gcc/testsuite/g++.dg/cpp23/ext-floating.h
  05c5caecbd98fac1ee44d884b0cff074  gcc/testsuite/g++.dg/cpp23/ext-floating1.C
  c72d14ea97191dbb2084a00c896b7069  gcc/testsuite/g++.dg/cpp23/ext-floating10.C
  34ab61b0739accec69a4e37816f69c50  gcc/testsuite/g++.dg/cpp23/ext-floating11.C
! b5eeac4f71c8abf553f730fce34628f1  gcc/testsuite/g++.dg/cpp23/ext-floating12.C
  8cc9d0aee102e32cb9fdbbb7f94b195e  gcc/testsuite/g++.dg/cpp23/ext-floating13.C
  77c1e1529829f7eb3643512344995ae5  gcc/testsuite/g++.dg/cpp23/ext-floating14.C
  2a9ad0ec05ab4b695b06b215a048e7f8  gcc/testsuite/g++.dg/cpp23/ext-floating15.C
+ 5f6d6376e0db5f076c02a48ff7041f93  gcc/testsuite/g++.dg/cpp23/ext-floating16.C
+ 5f9467211080e1f72a5a08b73e7a18b2  gcc/testsuite/g++.dg/cpp23/ext-floating17.C
  1ebec45b4e33e270199203eb41a5bd2a  gcc/testsuite/g++.dg/cpp23/ext-floating2.C
! 3838622d195bd6b3d3af37d05c8f6e0f  gcc/testsuite/g++.dg/cpp23/ext-floating3.C
  7cf138b5df4746c5a50ddd27889208d6  gcc/testsuite/g++.dg/cpp23/ext-floating4.C
  69bfa45bf0e2f69b0931d429ccaffb49  gcc/testsuite/g++.dg/cpp23/ext-floating5.C
  e4eef3325d652767c4b83b6aed8c24b5  gcc/testsuite/g++.dg/cpp23/ext-floating6.C
  54f4344e911f644cb2cc34417b933914  gcc/testsuite/g++.dg/cpp23/ext-floating7.C
  bc34c96001d8dfdc3193f88b494b97a1  gcc/testsuite/g++.dg/cpp23/ext-floating8.C
  235a8f3c94e9cc7e9180fe31a3d8352b  gcc/testsuite/g++.dg/cpp23/ext-floating9.C
! 2ea4fd210965e816b517050bf433f476  gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C
  b2919427c96be25ae3a72933323c8de1  gcc/testsuite/g++.dg/cpp23/init-stmt1.C
  368308646b02bb36cf22014a0d5bbbdb  gcc/testsuite/g++.dg/cpp23/init-stmt2.C
  906bfd9572fea8013b12e8c215392381  gcc/testsuite/g++.dg/cpp23/label1.C
*************** d685ca7f6c3f6496ec36569ed507b984  gcc/te
*** 18066,18071 ****
--- 19467,19473 ----
  6a29fb1a8a8a0f85beaee3c353a799da  gcc/testsuite/g++.dg/cpp23/subscript12.C
  1ab0414c49ef59714682c647e1f91f8f  gcc/testsuite/g++.dg/cpp23/subscript13.C
  126efdb00db3e63cd8b69bac25946a29  gcc/testsuite/g++.dg/cpp23/subscript14.C
+ b3027b59c30da0a8d6f012df421ad0e3  gcc/testsuite/g++.dg/cpp23/subscript15.C
  4fc343553d0042f79bb6999971e7f3f1  gcc/testsuite/g++.dg/cpp23/subscript2.C
  5c1847673786b152609b1696a5e8c094  gcc/testsuite/g++.dg/cpp23/subscript3.C
  1cc2764b96a62eefc30e464e19cc2483  gcc/testsuite/g++.dg/cpp23/subscript4.C
*************** ac774c183ac6257c45b8fd97824ef1a0  gcc/te
*** 18076,18084 ****
  69f92ba9546206740265c2f12b503d38  gcc/testsuite/g++.dg/cpp23/subscript9.C
  08f054da96e20dbe3d814a912b9f815e  gcc/testsuite/g++.dg/cpp23/ucnid-1-utf8.C
  1c3bafba4e398318c09ff055adc0c76a  gcc/testsuite/g++.dg/cpp23/ucnid-2-utf8.C
! 03ae1e87578087f0cf4ef2d37a25cc8d  gcc/testsuite/g++.dg/cpp23/wchar-multi1.C
! f7e1644f54a3fb578d426877ff479ee8  gcc/testsuite/g++.dg/cpp23/wchar-multi2.C
  60f9d3d6a5d9c7ef12a738913318d3ba  gcc/testsuite/g++.dg/cpp23/whitespace-splice1.C
  6e521186d896dd387882c734f9554b0d  gcc/testsuite/g++.dg/cpp2a/aggr1.C
  4c16f1196fa5b9ac2fd9ba5882eba51c  gcc/testsuite/g++.dg/cpp2a/aggr2.C
  92044f5b7098db5aa135ac9643297edb  gcc/testsuite/g++.dg/cpp2a/array-conv1.C
--- 19478,19505 ----
  69f92ba9546206740265c2f12b503d38  gcc/testsuite/g++.dg/cpp23/subscript9.C
  08f054da96e20dbe3d814a912b9f815e  gcc/testsuite/g++.dg/cpp23/ucnid-1-utf8.C
  1c3bafba4e398318c09ff055adc0c76a  gcc/testsuite/g++.dg/cpp23/ucnid-2-utf8.C
! 6bd205e63efa5b2521d156a4976203a2  gcc/testsuite/g++.dg/cpp23/wchar-multi1.C
! d249caf403715041728592d4a4163da2  gcc/testsuite/g++.dg/cpp23/wchar-multi2.C
  60f9d3d6a5d9c7ef12a738913318d3ba  gcc/testsuite/g++.dg/cpp23/whitespace-splice1.C
+ 99df97e23e6adba827b26dd28d281b28  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr1.C
+ 33afee43a2089a3e2bccd50e52d8faa6  gcc/testsuite/g++.dg/cpp26/constexpr-voidptr2.C
+ 54cc8d4706b3ab357055a709b5800258  gcc/testsuite/g++.dg/cpp26/cplusplus.C
+ b835b9bb00c8b448e2ac56df5e6cae60  gcc/testsuite/g++.dg/cpp26/enum-conv1.C
+ 2cce13f27ba62ba07a652f3231d22f92  gcc/testsuite/g++.dg/cpp26/feat-cxx26.C
+ e439504634b8fdea668e10d9fc930c63  gcc/testsuite/g++.dg/cpp26/literals1.C
+ 24ebebb3be412c0e507595cb8c7458f5  gcc/testsuite/g++.dg/cpp26/literals2.C
+ 1eebd6cbce6cabc0490fdd8bf706934d  gcc/testsuite/g++.dg/cpp26/name-independent-decl1.C
+ 4e8e44f517eeede150069458b1132524  gcc/testsuite/g++.dg/cpp26/name-independent-decl2.C
+ 4327ebfbe5ebdc6dedbf20e479505a60  gcc/testsuite/g++.dg/cpp26/name-independent-decl3.C
+ 44f4c7cbf1e4a45b5e275e10d9823057  gcc/testsuite/g++.dg/cpp26/name-independent-decl4.C
+ f09dc9ea398bb62a535b52948f72e1f0  gcc/testsuite/g++.dg/cpp26/name-independent-decl5.C
+ 84e871a4b75561cbff5fe117fd5a52e9  gcc/testsuite/g++.dg/cpp26/name-independent-decl6.C
+ 7e3e8416e6735f1e27355ec2ccdb2682  gcc/testsuite/g++.dg/cpp26/static_assert1.C
+ a4e3473e8199aabb6d134042640d65a2  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop1.C
+ 75514778d36a15b80b9b9646139f59a7  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop2.C
+ b4519bce844d0325d874901a172f6d25  gcc/testsuite/g++.dg/cpp26/trivial-infinite-loop3.C
+ 8d19346266adba2567e40d4824bbf34c  gcc/testsuite/g++.dg/cpp26/unevalstr1.C
+ fa8ccfb2aff45aa2e8fe1ec2e8c7b461  gcc/testsuite/g++.dg/cpp26/unevalstr2.C
  6e521186d896dd387882c734f9554b0d  gcc/testsuite/g++.dg/cpp2a/aggr1.C
  4c16f1196fa5b9ac2fd9ba5882eba51c  gcc/testsuite/g++.dg/cpp2a/aggr2.C
  92044f5b7098db5aa135ac9643297edb  gcc/testsuite/g++.dg/cpp2a/array-conv1.C
*************** fdfceca1c064eeb01d47f6a29cee1f95  gcc/te
*** 18107,18117 ****
  a645683e350e05caddb94f462f7df70c  gcc/testsuite/g++.dg/cpp2a/attr-likely7.C
  3ad5e93951baf0d22ea016ff9e7e5647  gcc/testsuite/g++.dg/cpp2a/bit-cast1.C
  a3d09682b891e46d2909fa15e90968be  gcc/testsuite/g++.dg/cpp2a/bit-cast10.C
! 7a65b964ef0c3be6bb2d00ec1bdc20ac  gcc/testsuite/g++.dg/cpp2a/bit-cast11.C
! 9bcf8bdfc6df75ec002468c1f548c44e  gcc/testsuite/g++.dg/cpp2a/bit-cast12.C
  6ef777b34934fa2f70b3248e0ca3f4c0  gcc/testsuite/g++.dg/cpp2a/bit-cast13.C
! b3285f9f18a8d9542bc46f53e0efd28e  gcc/testsuite/g++.dg/cpp2a/bit-cast14.C
  fc2669bf6c2d9f293b18029e7572dc94  gcc/testsuite/g++.dg/cpp2a/bit-cast15.C
  1a2fa5e09ce4afea93f8549367941793  gcc/testsuite/g++.dg/cpp2a/bit-cast2.C
  4cd9a6c75b7b9c06d500d33a4b70e045  gcc/testsuite/g++.dg/cpp2a/bit-cast3.C
  43041147b254e878b1962b35b230ff79  gcc/testsuite/g++.dg/cpp2a/bit-cast4.C
--- 19528,19540 ----
  a645683e350e05caddb94f462f7df70c  gcc/testsuite/g++.dg/cpp2a/attr-likely7.C
  3ad5e93951baf0d22ea016ff9e7e5647  gcc/testsuite/g++.dg/cpp2a/bit-cast1.C
  a3d09682b891e46d2909fa15e90968be  gcc/testsuite/g++.dg/cpp2a/bit-cast10.C
! 570ba18524fc6be9b7e095c3359424fc  gcc/testsuite/g++.dg/cpp2a/bit-cast11.C
! 31c390c002c6a5892dbda1333e6c2c5a  gcc/testsuite/g++.dg/cpp2a/bit-cast12.C
  6ef777b34934fa2f70b3248e0ca3f4c0  gcc/testsuite/g++.dg/cpp2a/bit-cast13.C
! b04429cfa09f9e8c0b686712d6bcf9a5  gcc/testsuite/g++.dg/cpp2a/bit-cast14.C
  fc2669bf6c2d9f293b18029e7572dc94  gcc/testsuite/g++.dg/cpp2a/bit-cast15.C
+ b21ee39782e659d8a55e03a67e8f3d2a  gcc/testsuite/g++.dg/cpp2a/bit-cast16.C
+ 1ce0f8954ea63f2839a6cd8078918470  gcc/testsuite/g++.dg/cpp2a/bit-cast17.C
  1a2fa5e09ce4afea93f8549367941793  gcc/testsuite/g++.dg/cpp2a/bit-cast2.C
  4cd9a6c75b7b9c06d500d33a4b70e045  gcc/testsuite/g++.dg/cpp2a/bit-cast3.C
  43041147b254e878b1962b35b230ff79  gcc/testsuite/g++.dg/cpp2a/bit-cast4.C
*************** bcecfdcccf9edb773fbec699fe2b71c0  gcc/te
*** 18121,18127 ****
  39ca439b4e0272dadf02ecf57bd67d4d  gcc/testsuite/g++.dg/cpp2a/bit-cast8.C
  2e7969cce6c326c0c378ccf7a44a7c3a  gcc/testsuite/g++.dg/cpp2a/bit-cast9.C
  efde6c8c1860e6796275cd76c0810b5d  gcc/testsuite/g++.dg/cpp2a/bitfield1.C
! 6459f6af0671a76d588568648ec2536c  gcc/testsuite/g++.dg/cpp2a/bitfield2.C
  dbb38d79b4b755c3350566626fdf9bd8  gcc/testsuite/g++.dg/cpp2a/bitfield3.C
  74cc445497f4dd39bb1cc3a9955074a9  gcc/testsuite/g++.dg/cpp2a/bitfield4.C
  ce2ca706a5ade45822ac6444b2054bc1  gcc/testsuite/g++.dg/cpp2a/builtin-clear-padding1.C
--- 19544,19550 ----
  39ca439b4e0272dadf02ecf57bd67d4d  gcc/testsuite/g++.dg/cpp2a/bit-cast8.C
  2e7969cce6c326c0c378ccf7a44a7c3a  gcc/testsuite/g++.dg/cpp2a/bit-cast9.C
  efde6c8c1860e6796275cd76c0810b5d  gcc/testsuite/g++.dg/cpp2a/bitfield1.C
! 81f5df1ccb53d1a883ea9c05667a632f  gcc/testsuite/g++.dg/cpp2a/bitfield2.C
  dbb38d79b4b755c3350566626fdf9bd8  gcc/testsuite/g++.dg/cpp2a/bitfield3.C
  74cc445497f4dd39bb1cc3a9955074a9  gcc/testsuite/g++.dg/cpp2a/bitfield4.C
  ce2ca706a5ade45822ac6444b2054bc1  gcc/testsuite/g++.dg/cpp2a/builtin-clear-padding1.C
*************** d914edd3c3ab496798bf1d77f69b74ea  gcc/te
*** 18153,18165 ****
  2fd45558372c260c94bf1de497adb7a1  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias15.C
  2b290838af6505f125234e7318ec4249  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias16.C
  00dc21cb0889c2c318f9e0cf9567584b  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias17.C
  5fc58f05c478c6749c3f3dd4351420b0  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias2.C
! 2fd0252922ffc9e49528942c28494f78  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C
  06de637acc58c0572ef2eb75419e55e3  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias4.C
  0538d499885f751447275fb21053fc26  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C
  65613b3e49f308133a1a98bbfe9acfc7  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias6.C
  3d59688f146fdaa417c0679c3daf962b  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias7.C
! 860b0c6e24138897f501915458fc4a3e  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias8.C
  ea4809b73e64f7ee4e0393e4a03cac8f  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias9.C
  7d917e356f7b1ce28dabca77544643e7  gcc/testsuite/g++.dg/cpp2a/comma1.C
  09399dec8eb1e8129209692532bf9ba5  gcc/testsuite/g++.dg/cpp2a/comma2.C
--- 19576,19590 ----
  2fd45558372c260c94bf1de497adb7a1  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias15.C
  2b290838af6505f125234e7318ec4249  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias16.C
  00dc21cb0889c2c318f9e0cf9567584b  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias17.C
+ c9138014de29c4f3857469eb5c4790df  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias18.C
+ 942687a68b1710987cbde76d669f6ddb  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias19.C
  5fc58f05c478c6749c3f3dd4351420b0  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias2.C
! b5dae7ae7594a42f65f1f8f0f17b30a8  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C
  06de637acc58c0572ef2eb75419e55e3  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias4.C
  0538d499885f751447275fb21053fc26  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C
  65613b3e49f308133a1a98bbfe9acfc7  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias6.C
  3d59688f146fdaa417c0679c3daf962b  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias7.C
! 565c0c410bfa682073c9bd2e0bb77aab  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias8.C
  ea4809b73e64f7ee4e0393e4a03cac8f  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias9.C
  7d917e356f7b1ce28dabca77544643e7  gcc/testsuite/g++.dg/cpp2a/comma1.C
  09399dec8eb1e8129209692532bf9ba5  gcc/testsuite/g++.dg/cpp2a/comma2.C
*************** b4e33fccd7f224ba9afcc26891ea6deb  gcc/te
*** 18173,18178 ****
--- 19598,19604 ----
  02000fba8afd50c1bb78d185c12511eb  gcc/testsuite/g++.dg/cpp2a/concepts-alias3.C
  60ea1f10322739348de77ef356876752  gcc/testsuite/g++.dg/cpp2a/concepts-alias4.C
  fb350867aa8cdc67b249fa261640a65d  gcc/testsuite/g++.dg/cpp2a/concepts-alias5.C
+ 248629bd6b293a9208d311adb67b5ae5  gcc/testsuite/g++.dg/cpp2a/concepts-alias6.C
  6f7e254d7b669dfe3f33771c2590967f  gcc/testsuite/g++.dg/cpp2a/concepts-attrib1.C
  482c7f451336e07eabe2f9835704eda8  gcc/testsuite/g++.dg/cpp2a/concepts-ca107.C
  ea403ba40e42238758942621a96e8847  gcc/testsuite/g++.dg/cpp2a/concepts-class.C
*************** e2691e1e7623a7d8148288696c039418  gcc/te
*** 18185,18190 ****
--- 19611,19617 ----
  d6b4a2062d9072a514a787db6f02cc29  gcc/testsuite/g++.dg/cpp2a/concepts-complete1.C
  cb8668f19e63ee61b88c50eb36fc3645  gcc/testsuite/g++.dg/cpp2a/concepts-complete2.C
  697e220e643e4dd5dbf81947b8621a99  gcc/testsuite/g++.dg/cpp2a/concepts-complete3.C
+ 5ecd9522a37f94ff0b55525b8c6bd8d2  gcc/testsuite/g++.dg/cpp2a/concepts-complete4.C
  11178c260b3e89ebdbdce2a5bca50b11  gcc/testsuite/g++.dg/cpp2a/concepts-constrained-parm.C
  65e4b424a121ebbab5beacb2ebbf0591  gcc/testsuite/g++.dg/cpp2a/concepts-conv1.C
  3797e31584c1026d45ee1b5b08c4188b  gcc/testsuite/g++.dg/cpp2a/concepts-conv2.C
*************** b3feeac577b96f98eb5fffae47fd7684  gcc/te
*** 18208,18218 ****
  9cfd545ae89835254bd89b814539ec8f  gcc/testsuite/g++.dg/cpp2a/concepts-err2.C
  d953a772cd1d2f181c0e4b6b2f47961d  gcc/testsuite/g++.dg/cpp2a/concepts-err3.C
  1badb94d696850d2e24621a9c6a91613  gcc/testsuite/g++.dg/cpp2a/concepts-err4.C
! 58c69136270d7c38c79f96cdf4f5677a  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst1.C
  a36328931eee1fbab16d05f42eacf4bd  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst2.C
  8d43f44aae36b8a20d34b07e48caa27e  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst3.C
  ec6220905e567a0d8dab4a952fe8c861  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst4.C
  740230459551566f4362724f116bc96e  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst5.C
  503fee90026f6e892cef6edc9f26066a  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec1.C
  8c6ce7d3a7a3dd1eadb46601b80f9ab1  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec2.C
  d3c85c507d4288a8286336935645f41c  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec3.C
--- 19635,19647 ----
  9cfd545ae89835254bd89b814539ec8f  gcc/testsuite/g++.dg/cpp2a/concepts-err2.C
  d953a772cd1d2f181c0e4b6b2f47961d  gcc/testsuite/g++.dg/cpp2a/concepts-err3.C
  1badb94d696850d2e24621a9c6a91613  gcc/testsuite/g++.dg/cpp2a/concepts-err4.C
! 6b6cdfe1ac61c8cfc107df98aa177cca  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst1.C
! 7117b7e883cd3b5dbeeba10bd9c50dd0  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst1a.C
  a36328931eee1fbab16d05f42eacf4bd  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst2.C
  8d43f44aae36b8a20d34b07e48caa27e  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst3.C
  ec6220905e567a0d8dab4a952fe8c861  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst4.C
  740230459551566f4362724f116bc96e  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst5.C
+ 6d82a90caf0f1273061a731d18cc67e6  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-inst6.C
  503fee90026f6e892cef6edc9f26066a  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec1.C
  8c6ce7d3a7a3dd1eadb46601b80f9ab1  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec2.C
  d3c85c507d4288a8286336935645f41c  gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec3.C
*************** a6a50b6488710734804c5c75b79b903a  gcc/te
*** 18227,18239 ****
  24a9eaf01cde49642308b85f4d4dcc5e  gcc/testsuite/g++.dg/cpp2a/concepts-fn5.C
  0f1a6b3b582e8d9538428d983f021ba9  gcc/testsuite/g++.dg/cpp2a/concepts-fn6.C
  361e29e28ac51bd246a126bf9582d546  gcc/testsuite/g++.dg/cpp2a/concepts-fn7.C
  54600170a553fbe02a4c3cc4c16271ab  gcc/testsuite/g++.dg/cpp2a/concepts-fnparm1.C
  ddf7b3c6cc5b3127a1fb9f8ada7bd1d3  gcc/testsuite/g++.dg/cpp2a/concepts-friend1.C
  5a78343a21e95f60a8351427c3e14f59  gcc/testsuite/g++.dg/cpp2a/concepts-friend10.C
! a43f5f4208803d9ed6c5574c442858a6  gcc/testsuite/g++.dg/cpp2a/concepts-friend11.C
  9b464178270ccc7b2da3483ef6eb72e3  gcc/testsuite/g++.dg/cpp2a/concepts-friend12.C
  f48f8abadf7267488e7fc07300b15321  gcc/testsuite/g++.dg/cpp2a/concepts-friend13.C
  669a3b82cb1e8c82dff75ea34a1132cb  gcc/testsuite/g++.dg/cpp2a/concepts-friend14.C
  2fdb3d1a7c3f6a1361b9e8a0700d78f5  gcc/testsuite/g++.dg/cpp2a/concepts-friend2.C
  3f315ba7ac021707fcaa518bf77b73e4  gcc/testsuite/g++.dg/cpp2a/concepts-friend3.C
  ac59cd12de1286d61d74c57276a780ba  gcc/testsuite/g++.dg/cpp2a/concepts-friend4.C
--- 19656,19673 ----
  24a9eaf01cde49642308b85f4d4dcc5e  gcc/testsuite/g++.dg/cpp2a/concepts-fn5.C
  0f1a6b3b582e8d9538428d983f021ba9  gcc/testsuite/g++.dg/cpp2a/concepts-fn6.C
  361e29e28ac51bd246a126bf9582d546  gcc/testsuite/g++.dg/cpp2a/concepts-fn7.C
+ d75bf2669acc8817d2d366ec5854068e  gcc/testsuite/g++.dg/cpp2a/concepts-fn8.C
  54600170a553fbe02a4c3cc4c16271ab  gcc/testsuite/g++.dg/cpp2a/concepts-fnparm1.C
  ddf7b3c6cc5b3127a1fb9f8ada7bd1d3  gcc/testsuite/g++.dg/cpp2a/concepts-friend1.C
  5a78343a21e95f60a8351427c3e14f59  gcc/testsuite/g++.dg/cpp2a/concepts-friend10.C
! fba0e5b74b56765f6ac41a5940ba8514  gcc/testsuite/g++.dg/cpp2a/concepts-friend11.C
! 58a54884f8503b6f70790e9808daecea  gcc/testsuite/g++.dg/cpp2a/concepts-friend11a.C
  9b464178270ccc7b2da3483ef6eb72e3  gcc/testsuite/g++.dg/cpp2a/concepts-friend12.C
  f48f8abadf7267488e7fc07300b15321  gcc/testsuite/g++.dg/cpp2a/concepts-friend13.C
  669a3b82cb1e8c82dff75ea34a1132cb  gcc/testsuite/g++.dg/cpp2a/concepts-friend14.C
+ f2bb90a7b95f5ca56f19993dc668ce44  gcc/testsuite/g++.dg/cpp2a/concepts-friend15.C
+ 78691a3f17811dcdecf47f6df427a97c  gcc/testsuite/g++.dg/cpp2a/concepts-friend16.C
+ 7ecb03f5905c0460a20f5edf81561f98  gcc/testsuite/g++.dg/cpp2a/concepts-friend17.C
  2fdb3d1a7c3f6a1361b9e8a0700d78f5  gcc/testsuite/g++.dg/cpp2a/concepts-friend2.C
  3f315ba7ac021707fcaa518bf77b73e4  gcc/testsuite/g++.dg/cpp2a/concepts-friend3.C
  ac59cd12de1286d61d74c57276a780ba  gcc/testsuite/g++.dg/cpp2a/concepts-friend4.C
*************** d12b098e52b49342652a92f712e212d7  gcc/te
*** 18278,18283 ****
--- 19712,19718 ----
  02865ef6ff74cb9b4108964da2da397f  gcc/testsuite/g++.dg/cpp2a/concepts-memfun.C
  b53c750bcf0863ab645580c6652a2f79  gcc/testsuite/g++.dg/cpp2a/concepts-memfun2.C
  2ac2e46289c1f783563a03c5bceb9513  gcc/testsuite/g++.dg/cpp2a/concepts-memfun3.C
+ 2f7cd689bb828533c03441fc7c087192  gcc/testsuite/g++.dg/cpp2a/concepts-memfun4.C
  7f5a683e6cb36d020f2d955fd2b5662a  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl1.C
  e09adbfcc76e9a9b156fb1128f518684  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl2.C
  913d434a43b62d7d2f966fd44a4a141e  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl3.C
*************** e09adbfcc76e9a9b156fb1128f518684  gcc/te
*** 18285,18290 ****
--- 19720,19726 ----
  9caa46ef754f01ad1d96c14b8188370e  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl5.C
  593e03fec80254264cfb8a230ae4ff94  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl5a.C
  f1dc03d643fa050fb5a6c8dbbcc30c67  gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl6.C
+ e17af02573cab8a92f8262dbeda47426  gcc/testsuite/g++.dg/cpp2a/concepts-narrowing1.C
  64d63b0665647539131af9fc002ada89  gcc/testsuite/g++.dg/cpp2a/concepts-nested1.C
  4c16216f8a3ea23bdba3c8e59f26b37f  gcc/testsuite/g++.dg/cpp2a/concepts-new1.C
  6a7534cd7752ba1e8a71bcb62eaf6954  gcc/testsuite/g++.dg/cpp2a/concepts-nodiscard1.C
*************** d832de2b6b1b93adff12b06c34e84556  gcc/te
*** 18296,18301 ****
--- 19732,19738 ----
  ca398f2b2e8443dc7a94b70c83a40ca1  gcc/testsuite/g++.dg/cpp2a/concepts-nondep1a.C
  1494c15487c9bc95ba5295fa3498592b  gcc/testsuite/g++.dg/cpp2a/concepts-nondep2.C
  7ceb4140c2faad64ec92d7cee1fa713b  gcc/testsuite/g++.dg/cpp2a/concepts-nondep3.C
+ a6eb0831ebd2429090207fd4ded81c24  gcc/testsuite/g++.dg/cpp2a/concepts-nondep4.C
  346f87c83404f356f2db97a19e1e04a2  gcc/testsuite/g++.dg/cpp2a/concepts-p1141.C
  517f6d7a5f4dd6f650d5d9a39a8a2f24  gcc/testsuite/g++.dg/cpp2a/concepts-p2092.C
  c02adf26d58e820807cae8699c98d45a  gcc/testsuite/g++.dg/cpp2a/concepts-p2113a.C
*************** a218e21f1b85fa16709c2ec57c9d12cd  gcc/te
*** 18306,18311 ****
--- 19743,19749 ----
  763f297bcc20a983e6f4f4f0e89e0e07  gcc/testsuite/g++.dg/cpp2a/concepts-partial-spec12.C
  e23388d6e0f64bad9a634a83a30d237a  gcc/testsuite/g++.dg/cpp2a/concepts-partial-spec12a.C
  0e1368565fe091d08454a5776e7c7621  gcc/testsuite/g++.dg/cpp2a/concepts-partial-spec13.C
+ bd46df7dc1eb44210bfb91babf274a76  gcc/testsuite/g++.dg/cpp2a/concepts-partial-spec14.C
  73a09ba5b73bea20b72e95116b9c7dee  gcc/testsuite/g++.dg/cpp2a/concepts-partial-spec2.C
  3c01201683b221045bd1faca7a936921  gcc/testsuite/g++.dg/cpp2a/concepts-partial-spec3.C
  fe3419a05a4d0b37befa20fa2b74e5c7  gcc/testsuite/g++.dg/cpp2a/concepts-partial-spec4.C
*************** ab8fffd9ad5ab44288587ff17983258d  gcc/te
*** 18328,18335 ****
--- 19766,19775 ----
  9635de421565ff55ed64b8b32ded3b6a  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder8.C
  004db5f35cbf918a16efca84537ed5a1  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder9.C
  fc797eabdd1dc0d22609e8841d633f99  gcc/testsuite/g++.dg/cpp2a/concepts-pmf1.C
+ ca94fb35340cd618ed01f462ef62f3d9  gcc/testsuite/g++.dg/cpp2a/concepts-pr100557.C
  93d1e55f1ec8ecc0589c4cf386fc18c7  gcc/testsuite/g++.dg/cpp2a/concepts-pr104410.C
  d730bf14b7c6a0ff4579eb13739f7d2f  gcc/testsuite/g++.dg/cpp2a/concepts-pr108579.C
+ 10c26b1079f1b79e271e63ca28b96ecd  gcc/testsuite/g++.dg/cpp2a/concepts-pr112436.C
  2e23f19968091d773a47c43a32a784ae  gcc/testsuite/g++.dg/cpp2a/concepts-pr58500.C
  07c6a4dff1357ef61c0d30b12db5c948  gcc/testsuite/g++.dg/cpp2a/concepts-pr58534.C
  b6ba42db630bfd3259d65662fc03aaa0  gcc/testsuite/g++.dg/cpp2a/concepts-pr58535.C
*************** f713831318164c8a8d53cee4f41a5feb  gcc/te
*** 18424,18430 ****
  7bff00217f0937919ad829a2aa4986de  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C
  494a9362815e7269cd14d3b6eb900c68  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat2.C
  c74823853141d61f8e8a8e1d3a3f8bd4  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat3.C
! e73f0ee4378def5488befad6282159a1  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat4.C
  a5dcc7f1104645e397389de9dc3d2362  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat5.C
  05d0c4aeef396d36ed2d0d824682b06c  gcc/testsuite/g++.dg/cpp2a/concepts-redecl1.C
  89a75de6ffea2b5931b15021369b2a4e  gcc/testsuite/g++.dg/cpp2a/concepts-requires1.C
--- 19864,19870 ----
  7bff00217f0937919ad829a2aa4986de  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C
  494a9362815e7269cd14d3b6eb900c68  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat2.C
  c74823853141d61f8e8a8e1d3a3f8bd4  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat3.C
! 333e80767f9ac98151ff6ec608cef8ab  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat4.C
  a5dcc7f1104645e397389de9dc3d2362  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat5.C
  05d0c4aeef396d36ed2d0d824682b06c  gcc/testsuite/g++.dg/cpp2a/concepts-redecl1.C
  89a75de6ffea2b5931b15021369b2a4e  gcc/testsuite/g++.dg/cpp2a/concepts-requires1.C
*************** af01c600c3ac040f6855ee2ed2bff7bc  gcc/te
*** 18456,18461 ****
--- 19896,19904 ----
  af06791c898f789389685e4dd38b3386  gcc/testsuite/g++.dg/cpp2a/concepts-requires32.C
  ecb5e52db1e00c05c68ecde56b770c71  gcc/testsuite/g++.dg/cpp2a/concepts-requires33.C
  3e21a3f313ac75b520a5d812a344b4aa  gcc/testsuite/g++.dg/cpp2a/concepts-requires34.C
+ 1e4ab841f68e67f2c321b5e9d609a128  gcc/testsuite/g++.dg/cpp2a/concepts-requires35.C
+ 19b91038c075d9236a48f3252add1913  gcc/testsuite/g++.dg/cpp2a/concepts-requires36.C
+ 32a97011dcfc22819c094bbd757f87e4  gcc/testsuite/g++.dg/cpp2a/concepts-requires37.C
  d3851914c01bf78597e5cb411ed0b3d5  gcc/testsuite/g++.dg/cpp2a/concepts-requires4.C
  480013be0f806d0b078176447ae77360  gcc/testsuite/g++.dg/cpp2a/concepts-requires5.C
  8ea6ab45de0c359b113c65f1958a54a1  gcc/testsuite/g++.dg/cpp2a/concepts-requires6.C
*************** c66c957a03459efed336ab628ac7a020  gcc/te
*** 18481,18486 ****
--- 19924,19930 ----
  9ff1f88974ac56dba726f1074288f8e9  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm8.C
  ec9215388b111eac1916dca163b2b4dd  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm9.C
  ee36c7ebc03385f37bcba1c49e06c808  gcc/testsuite/g++.dg/cpp2a/concepts-this1.C
+ 8fe2b0550580edd7f36bb9d150fad6c4  gcc/testsuite/g++.dg/cpp2a/concepts-throw1.C
  39c15f1dc604f714304d144250164089  gcc/testsuite/g++.dg/cpp2a/concepts-traits1.C
  c9a6ab7bc0f1947e843b9c7150ccb98c  gcc/testsuite/g++.dg/cpp2a/concepts-traits2.C
  c7b62b8031571fb8bca4923e94717551  gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C
*************** ac4c42a0f2fd071297e154c82dd3e5cc  gcc/te
*** 18494,18499 ****
--- 19938,19945 ----
  e9afe83f998c36b2fb7c1f09347d0bde  gcc/testsuite/g++.dg/cpp2a/concepts-ttp2.C
  61d4933dc5691f3ec1773e39ad6449b4  gcc/testsuite/g++.dg/cpp2a/concepts-ttp3.C
  9fd760dc32683991c1046ee2a7769a0f  gcc/testsuite/g++.dg/cpp2a/concepts-ttp4.C
+ 88c3dc6cebb92ccd4e70aff54871edad  gcc/testsuite/g++.dg/cpp2a/concepts-ttp5.C
+ 14dc8338f97cc1b6792145fdfa5edade  gcc/testsuite/g++.dg/cpp2a/concepts-ttp6.C
  12bfd0f0b99ab93e9f3c3ea3610ad8db  gcc/testsuite/g++.dg/cpp2a/concepts-uneval1.C
  728cf90d57c99021cb85c6b8dd9ffa5e  gcc/testsuite/g++.dg/cpp2a/concepts-uneval2.C
  8ededbbf50406070bfd15b600f7ea746  gcc/testsuite/g++.dg/cpp2a/concepts-uneval3.C
*************** b06aea4ef34a1015ed525413558ddac0  gcc/te
*** 18502,18507 ****
--- 19948,19954 ----
  0b2965d78d2aee9abfaea9a39dd0dd98  gcc/testsuite/g++.dg/cpp2a/concepts-using1.C
  a95dbf28241ffec87fb48912ed83e629  gcc/testsuite/g++.dg/cpp2a/concepts-using2.C
  8d75a7bd1dff1e92992b77d66deb889b  gcc/testsuite/g++.dg/cpp2a/concepts-using3.C
+ 1c0b6956abb6cc9d451cbad9763665e0  gcc/testsuite/g++.dg/cpp2a/concepts-using4.C
  eb51a2e88a343491b3a0676b4ff623cf  gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1.C
  c344a88e2fb58ca9d19beb62602dabc5  gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1a.C
  d29bcca633bb639bebf16b846292cebc  gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1b.C
*************** b821d53c13959d1237a15620094c9130  gcc/te
*** 18524,18531 ****
  6b5fc6f23fc6df75d45300b8bc1ad4ef  gcc/testsuite/g++.dg/cpp2a/consteval-defarg2.C
  ed5bc7caf9e0d37742bad332bfb90193  gcc/testsuite/g++.dg/cpp2a/consteval-defarg3.C
  06108a2b84aac0c8eb7f2844fc732944  gcc/testsuite/g++.dg/cpp2a/consteval-expinst1.C
! f29020257148069c835c9a7a2f6c2449  gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C
  db212700d636aa0588ecc9341fc2ff01  gcc/testsuite/g++.dg/cpp2a/consteval-memfn2.C
  7b90d1522f394885f74ddf54ce29750f  gcc/testsuite/g++.dg/cpp2a/consteval-virtual1.C
  9f2787601c2b5593ddafd943b082968f  gcc/testsuite/g++.dg/cpp2a/consteval-virtual2.C
  291b799cfb4c7cddd247f15746dbb707  gcc/testsuite/g++.dg/cpp2a/consteval-virtual3.C
--- 19971,19998 ----
  6b5fc6f23fc6df75d45300b8bc1ad4ef  gcc/testsuite/g++.dg/cpp2a/consteval-defarg2.C
  ed5bc7caf9e0d37742bad332bfb90193  gcc/testsuite/g++.dg/cpp2a/consteval-defarg3.C
  06108a2b84aac0c8eb7f2844fc732944  gcc/testsuite/g++.dg/cpp2a/consteval-expinst1.C
! cfa9681746843f22381958e4226c1400  gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C
  db212700d636aa0588ecc9341fc2ff01  gcc/testsuite/g++.dg/cpp2a/consteval-memfn2.C
+ ec42263e1d5335ca392e297f05e7fed9  gcc/testsuite/g++.dg/cpp2a/consteval-prop1.C
+ 11a20933b84a9710f87fa840b2cf0bf1  gcc/testsuite/g++.dg/cpp2a/consteval-prop10.C
+ 50a07387c7d8aa38539d2fad8d0590f4  gcc/testsuite/g++.dg/cpp2a/consteval-prop11.C
+ b352a26f8cc170a5bf338f31fcc06329  gcc/testsuite/g++.dg/cpp2a/consteval-prop12.C
+ 6f70c453f45fd9236d041178322ab909  gcc/testsuite/g++.dg/cpp2a/consteval-prop13.C
+ 6900a94dcbad923e23763fd4eba85ad7  gcc/testsuite/g++.dg/cpp2a/consteval-prop14.C
+ bbeeeb7239f726cda02c663629d04a95  gcc/testsuite/g++.dg/cpp2a/consteval-prop15.C
+ 7af45c38a90f7ff1d5e24db62816d0f8  gcc/testsuite/g++.dg/cpp2a/consteval-prop16.C
+ b965661e32fc1362f3d92da99064a383  gcc/testsuite/g++.dg/cpp2a/consteval-prop17.C
+ 9e6f537851581747bd28cbb009f56b56  gcc/testsuite/g++.dg/cpp2a/consteval-prop18.C
+ 2a6969d9b85c729c0c105b7ce7ca3176  gcc/testsuite/g++.dg/cpp2a/consteval-prop19.C
+ 98822e15646b47ee3759f2778db19022  gcc/testsuite/g++.dg/cpp2a/consteval-prop2.C
+ 1b4d66f64e0d9da1150b2334d12045e7  gcc/testsuite/g++.dg/cpp2a/consteval-prop20.C
+ a2fca4748948ea570dfa878505f48b25  gcc/testsuite/g++.dg/cpp2a/consteval-prop3.C
+ 5fe57d13e5473b90306fff8083f24c8d  gcc/testsuite/g++.dg/cpp2a/consteval-prop4.C
+ f405fb858a1c83094720da6f69576916  gcc/testsuite/g++.dg/cpp2a/consteval-prop5.C
+ 7a83344932268667738f6c729a7badf8  gcc/testsuite/g++.dg/cpp2a/consteval-prop6.C
+ 6a399d15b8c4ba44416fe3b97adfddf5  gcc/testsuite/g++.dg/cpp2a/consteval-prop7.C
+ 1471da6f8af2bc43ffc62333745ee05f  gcc/testsuite/g++.dg/cpp2a/consteval-prop8.C
+ 9eff9f4a745325d945e7239223f301fe  gcc/testsuite/g++.dg/cpp2a/consteval-prop9.C
  7b90d1522f394885f74ddf54ce29750f  gcc/testsuite/g++.dg/cpp2a/consteval-virtual1.C
  9f2787601c2b5593ddafd943b082968f  gcc/testsuite/g++.dg/cpp2a/consteval-virtual2.C
  291b799cfb4c7cddd247f15746dbb707  gcc/testsuite/g++.dg/cpp2a/consteval-virtual3.C
*************** db212700d636aa0588ecc9341fc2ff01  gcc/te
*** 18534,18540 ****
  7304d62f237130fb269c9aebf2c90bc3  gcc/testsuite/g++.dg/cpp2a/consteval-void1.C
  e653be614b47427e0ec998982e197f92  gcc/testsuite/g++.dg/cpp2a/consteval1.C
  405a4e1920b1811e8affa4f06ff6cb2c  gcc/testsuite/g++.dg/cpp2a/consteval10.C
! 248503818c0f58904cf573627cfae347  gcc/testsuite/g++.dg/cpp2a/consteval11.C
  86103552db866d480f1646bc3430ffad  gcc/testsuite/g++.dg/cpp2a/consteval12.C
  eb28a4971b66b319163236552ce55bb9  gcc/testsuite/g++.dg/cpp2a/consteval13.C
  d47ccb9544381b6ea21634d25ac4e852  gcc/testsuite/g++.dg/cpp2a/consteval14.C
--- 20001,20007 ----
  7304d62f237130fb269c9aebf2c90bc3  gcc/testsuite/g++.dg/cpp2a/consteval-void1.C
  e653be614b47427e0ec998982e197f92  gcc/testsuite/g++.dg/cpp2a/consteval1.C
  405a4e1920b1811e8affa4f06ff6cb2c  gcc/testsuite/g++.dg/cpp2a/consteval10.C
! 2fec7c6aca603813b44f7bbb3942dd56  gcc/testsuite/g++.dg/cpp2a/consteval11.C
  86103552db866d480f1646bc3430ffad  gcc/testsuite/g++.dg/cpp2a/consteval12.C
  eb28a4971b66b319163236552ce55bb9  gcc/testsuite/g++.dg/cpp2a/consteval13.C
  d47ccb9544381b6ea21634d25ac4e852  gcc/testsuite/g++.dg/cpp2a/consteval14.C
*************** bbfc0967b09bb4b2f1ace77c10c76387  gcc/te
*** 18544,18569 ****
  cf282e3680d2137a27a9a74bced96291  gcc/testsuite/g++.dg/cpp2a/consteval18.C
  b25072b636670ba0bf6636ee75629f7f  gcc/testsuite/g++.dg/cpp2a/consteval19.C
  6053d37c0ed21135f3f081cb54bda42d  gcc/testsuite/g++.dg/cpp2a/consteval2.C
! 55b5033031b184a6bf3c75e731005d9f  gcc/testsuite/g++.dg/cpp2a/consteval20.C
  c7a9592af554427e4d3ff8482c958f03  gcc/testsuite/g++.dg/cpp2a/consteval21.C
  455bb311d894e85865796adacbc0dfbc  gcc/testsuite/g++.dg/cpp2a/consteval22.C
  f670522ff5493be6b8a1ad0951c4c2e6  gcc/testsuite/g++.dg/cpp2a/consteval23.C
! fbd61971d735785a63895ec7c030b3cd  gcc/testsuite/g++.dg/cpp2a/consteval24.C
  dd7f450d8249e6d1090b3199c6d986dd  gcc/testsuite/g++.dg/cpp2a/consteval25.C
  419c55859a9fd338cbd6417cdd3b15d3  gcc/testsuite/g++.dg/cpp2a/consteval26.C
  7b94006f015ce630f646bbae9c502103  gcc/testsuite/g++.dg/cpp2a/consteval27.C
  f5703307896a18a98097a63f1f2f7166  gcc/testsuite/g++.dg/cpp2a/consteval28.C
  25fb3b0d5dda2594a4293da515c49586  gcc/testsuite/g++.dg/cpp2a/consteval29.C
! 5e9983b714bff282c3f35ad02d70ad20  gcc/testsuite/g++.dg/cpp2a/consteval3.C
  d13a3bb7f52d0ff550c2883f5a2c9b93  gcc/testsuite/g++.dg/cpp2a/consteval30.C
  2525d3c20efed8795b290b9c5d66c8ae  gcc/testsuite/g++.dg/cpp2a/consteval31.C
  2d6205fea644048201c44086df527c3a  gcc/testsuite/g++.dg/cpp2a/consteval4.C
  e71633ec506016932dc09c057d98c36c  gcc/testsuite/g++.dg/cpp2a/consteval5.C
  f8b2a0016c59d132f059d57a7638806f  gcc/testsuite/g++.dg/cpp2a/consteval6.C
  6517514915e5a24d0ee38257c46994cc  gcc/testsuite/g++.dg/cpp2a/consteval7.C
  72c19713fa49fcd9432f9e2dfe1238e0  gcc/testsuite/g++.dg/cpp2a/consteval8.C
! be6031c0bedd5678304d7154f8ea2b35  gcc/testsuite/g++.dg/cpp2a/consteval9.C
! 249686f0fb9ecbea2e909ed986426855  gcc/testsuite/g++.dg/cpp2a/constexpr-98122.C
  d28d3e5520803aa70919b2a4b20e6386  gcc/testsuite/g++.dg/cpp2a/constexpr-99287.C
  2004a926e55a105d0f80db50528a9def  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor1.C
  cbf5d5a37bc2a85bde738f9433003a39  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor10.C
--- 20011,20041 ----
  cf282e3680d2137a27a9a74bced96291  gcc/testsuite/g++.dg/cpp2a/consteval18.C
  b25072b636670ba0bf6636ee75629f7f  gcc/testsuite/g++.dg/cpp2a/consteval19.C
  6053d37c0ed21135f3f081cb54bda42d  gcc/testsuite/g++.dg/cpp2a/consteval2.C
! 31586cdef0f97d17e13f53bc050bcf01  gcc/testsuite/g++.dg/cpp2a/consteval20.C
  c7a9592af554427e4d3ff8482c958f03  gcc/testsuite/g++.dg/cpp2a/consteval21.C
  455bb311d894e85865796adacbc0dfbc  gcc/testsuite/g++.dg/cpp2a/consteval22.C
  f670522ff5493be6b8a1ad0951c4c2e6  gcc/testsuite/g++.dg/cpp2a/consteval23.C
! cc8f09058be8920a248fcc89466eae28  gcc/testsuite/g++.dg/cpp2a/consteval24.C
  dd7f450d8249e6d1090b3199c6d986dd  gcc/testsuite/g++.dg/cpp2a/consteval25.C
  419c55859a9fd338cbd6417cdd3b15d3  gcc/testsuite/g++.dg/cpp2a/consteval26.C
  7b94006f015ce630f646bbae9c502103  gcc/testsuite/g++.dg/cpp2a/consteval27.C
  f5703307896a18a98097a63f1f2f7166  gcc/testsuite/g++.dg/cpp2a/consteval28.C
  25fb3b0d5dda2594a4293da515c49586  gcc/testsuite/g++.dg/cpp2a/consteval29.C
! d3229afebc248c5069961ad3355fac25  gcc/testsuite/g++.dg/cpp2a/consteval3.C
  d13a3bb7f52d0ff550c2883f5a2c9b93  gcc/testsuite/g++.dg/cpp2a/consteval30.C
  2525d3c20efed8795b290b9c5d66c8ae  gcc/testsuite/g++.dg/cpp2a/consteval31.C
+ b62fa034bb46b39a59a7db1a60d3c927  gcc/testsuite/g++.dg/cpp2a/consteval32.C
+ 6cadf4113cb1c6dd19c7d7bc59166fe8  gcc/testsuite/g++.dg/cpp2a/consteval33.C
+ 6590ffde41eddd85c60dfbd7ebcec57f  gcc/testsuite/g++.dg/cpp2a/consteval34.C
+ defefd8dd547fd66cedc41bb14383765  gcc/testsuite/g++.dg/cpp2a/consteval35.C
+ 8b3447609c468820fafe23ed58c806cf  gcc/testsuite/g++.dg/cpp2a/consteval36.C
  2d6205fea644048201c44086df527c3a  gcc/testsuite/g++.dg/cpp2a/consteval4.C
  e71633ec506016932dc09c057d98c36c  gcc/testsuite/g++.dg/cpp2a/consteval5.C
  f8b2a0016c59d132f059d57a7638806f  gcc/testsuite/g++.dg/cpp2a/consteval6.C
  6517514915e5a24d0ee38257c46994cc  gcc/testsuite/g++.dg/cpp2a/consteval7.C
  72c19713fa49fcd9432f9e2dfe1238e0  gcc/testsuite/g++.dg/cpp2a/consteval8.C
! 5e89b48e84d42f47bde9b8254229d2c4  gcc/testsuite/g++.dg/cpp2a/consteval9.C
! 5e488850397c427d79cc8ca55254462f  gcc/testsuite/g++.dg/cpp2a/constexpr-98122.C
  d28d3e5520803aa70919b2a4b20e6386  gcc/testsuite/g++.dg/cpp2a/constexpr-99287.C
  2004a926e55a105d0f80db50528a9def  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor1.C
  cbf5d5a37bc2a85bde738f9433003a39  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor10.C
*************** cbf5d5a37bc2a85bde738f9433003a39  gcc/te
*** 18572,18577 ****
--- 20044,20050 ----
  9e266e2e7c32bba4e0b7648c83e4833c  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor13.C
  993e4c6829e9ab56db460153dc55bad1  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor14.C
  1020d355cd830dffa45dfd17a95222fa  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor15.C
+ 5c1e1657b570ae044abc22f9004b6ba5  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor16.C
  18ceb8d2ffe5d8e310f40839d2edf0d5  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor2.C
  4161e44d5b894de84f1601dd80255a1b  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor3.C
  780076eefadeb33a1dce586533960b80  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor4.C
*************** b5f4f9a8f5933754f321648f67e54dac  gcc/te
*** 18588,18594 ****
  4bbc8c155bf00bbeffcd491fee037b03  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic14.C
  3ea3f5f5236e9cc53279d901672dd818  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic15.C
  1a30baf82f09866d37d6e96a76379f47  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic16.C
! aa504b7ff788990adcf5e4c4b174e0ae  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic17.C
  8fe226b0e900985b1f76643e8aaf737b  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic18.C
  6a856dd4720aaf5ca7ba6e7422f849a9  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic2.C
  6ddf97a1878f89c02ca0c76de5f0f08f  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic3.C
--- 20061,20067 ----
  4bbc8c155bf00bbeffcd491fee037b03  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic14.C
  3ea3f5f5236e9cc53279d901672dd818  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic15.C
  1a30baf82f09866d37d6e96a76379f47  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic16.C
! b64753c380df7428569f8befeb1510e8  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic17.C
  8fe226b0e900985b1f76643e8aaf737b  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic18.C
  6a856dd4720aaf5ca7ba6e7422f849a9  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic2.C
  6ddf97a1878f89c02ca0c76de5f0f08f  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic3.C
*************** aa504b7ff788990adcf5e4c4b174e0ae  gcc/te
*** 18599,18605 ****
  6951be3b101c71e7ba4f26c0359d99e3  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic8.C
  a3321cfaafcd76ed99e5ad88a213868d  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic9.C
  573850937e1fbb5a2c2bc0b4b0da9e0a  gcc/testsuite/g++.dg/cpp2a/constexpr-indeterminate1.C
! 796d26fbaeadc99bc831e2dd55e4508c  gcc/testsuite/g++.dg/cpp2a/constexpr-init1.C
  3d47e986a1a87c4a72e6fd1725b4e073  gcc/testsuite/g++.dg/cpp2a/constexpr-init10.C
  04c3b02790750ecd890832ae5a34b579  gcc/testsuite/g++.dg/cpp2a/constexpr-init11.C
  d5a45edda643ea413b271e9b0eeaba6f  gcc/testsuite/g++.dg/cpp2a/constexpr-init12.C
--- 20072,20078 ----
  6951be3b101c71e7ba4f26c0359d99e3  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic8.C
  a3321cfaafcd76ed99e5ad88a213868d  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic9.C
  573850937e1fbb5a2c2bc0b4b0da9e0a  gcc/testsuite/g++.dg/cpp2a/constexpr-indeterminate1.C
! a72ce8f47ef4b3c359cbb1e2a6f6a9b3  gcc/testsuite/g++.dg/cpp2a/constexpr-init1.C
  3d47e986a1a87c4a72e6fd1725b4e073  gcc/testsuite/g++.dg/cpp2a/constexpr-init10.C
  04c3b02790750ecd890832ae5a34b579  gcc/testsuite/g++.dg/cpp2a/constexpr-init11.C
  d5a45edda643ea413b271e9b0eeaba6f  gcc/testsuite/g++.dg/cpp2a/constexpr-init12.C
*************** c6ad8dd084ea7848f43b81095f5664a0  gcc/te
*** 18623,18632 ****
  6f831164f051d810464fd57353d1f786  gcc/testsuite/g++.dg/cpp2a/constexpr-init9.C
  8cdbce536f6ecfcbdb0c5b905216c240  gcc/testsuite/g++.dg/cpp2a/constexpr-inst1.C
  288c41333bc2400992edf593d86564f4  gcc/testsuite/g++.dg/cpp2a/constexpr-inst2.C
  fc64959989383a30e896772beafe5765  gcc/testsuite/g++.dg/cpp2a/constexpr-new1.C
  bf612b2e0a4a17b8bf679dd44dbbf19c  gcc/testsuite/g++.dg/cpp2a/constexpr-new10.C
  8f2efe7c8b150f5362a6ee3c235d3d14  gcc/testsuite/g++.dg/cpp2a/constexpr-new11.C
! 4b1bc923fe1171a6f3a5f32e27c87ec3  gcc/testsuite/g++.dg/cpp2a/constexpr-new12.C
  5e37deed14e1b8c4b97b8fe5674e3865  gcc/testsuite/g++.dg/cpp2a/constexpr-new13.C
  bb9d4356d352f35e2f1275cd7739f826  gcc/testsuite/g++.dg/cpp2a/constexpr-new14.C
  8088a7cc9210263a003278c59aa0c59e  gcc/testsuite/g++.dg/cpp2a/constexpr-new15.C
--- 20096,20107 ----
  6f831164f051d810464fd57353d1f786  gcc/testsuite/g++.dg/cpp2a/constexpr-init9.C
  8cdbce536f6ecfcbdb0c5b905216c240  gcc/testsuite/g++.dg/cpp2a/constexpr-inst1.C
  288c41333bc2400992edf593d86564f4  gcc/testsuite/g++.dg/cpp2a/constexpr-inst2.C
+ c0feaa6a504303a1d885257a659a2b40  gcc/testsuite/g++.dg/cpp2a/constexpr-lifetime1.C
+ f2bdc1d6c825d022e28954805cf6ccbe  gcc/testsuite/g++.dg/cpp2a/constexpr-lifetime2.C
  fc64959989383a30e896772beafe5765  gcc/testsuite/g++.dg/cpp2a/constexpr-new1.C
  bf612b2e0a4a17b8bf679dd44dbbf19c  gcc/testsuite/g++.dg/cpp2a/constexpr-new10.C
  8f2efe7c8b150f5362a6ee3c235d3d14  gcc/testsuite/g++.dg/cpp2a/constexpr-new11.C
! 473609242481e49fcbd78f98c8044e61  gcc/testsuite/g++.dg/cpp2a/constexpr-new12.C
  5e37deed14e1b8c4b97b8fe5674e3865  gcc/testsuite/g++.dg/cpp2a/constexpr-new13.C
  bb9d4356d352f35e2f1275cd7739f826  gcc/testsuite/g++.dg/cpp2a/constexpr-new14.C
  8088a7cc9210263a003278c59aa0c59e  gcc/testsuite/g++.dg/cpp2a/constexpr-new15.C
*************** ac9bb69a57b021f97f435bdd64fdc923  gcc/te
*** 18638,18650 ****
  56cf7b227da9e5878b8fab57be913c5e  gcc/testsuite/g++.dg/cpp2a/constexpr-new20.C
  c045618ca4ccc6ddfb47d7c232152a06  gcc/testsuite/g++.dg/cpp2a/constexpr-new21.C
  8f15e7c6c4a56e33628394c948bba9aa  gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C
! d1fc949626e604a60a7cd826bb9fe696  gcc/testsuite/g++.dg/cpp2a/constexpr-new3.C
  44e96a6cfd450fc9d40c13cc7a4e98f3  gcc/testsuite/g++.dg/cpp2a/constexpr-new4.C
  09667d3c51ef176269e12b2ece101f3d  gcc/testsuite/g++.dg/cpp2a/constexpr-new5.C
  09667d3c51ef176269e12b2ece101f3d  gcc/testsuite/g++.dg/cpp2a/constexpr-new6.C
  c4beb3372cb0e77f36a788efb02031c2  gcc/testsuite/g++.dg/cpp2a/constexpr-new7.C
  d29f558af48deff313645aecd90adb8d  gcc/testsuite/g++.dg/cpp2a/constexpr-new8.C
  89741a348551bf62e5198e689a2cb9eb  gcc/testsuite/g++.dg/cpp2a/constexpr-new9.C
  fe2e298a3cf2e9094a79a25a4ffd8fc2  gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C
  1d1e610556de3295af12cf17177f42b7  gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
  27ac7e1957f04ea6ee6160a7f7c14ecc  gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C
--- 20113,20126 ----
  56cf7b227da9e5878b8fab57be913c5e  gcc/testsuite/g++.dg/cpp2a/constexpr-new20.C
  c045618ca4ccc6ddfb47d7c232152a06  gcc/testsuite/g++.dg/cpp2a/constexpr-new21.C
  8f15e7c6c4a56e33628394c948bba9aa  gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C
! facf8a64095f08ebe438ac7a031006a1  gcc/testsuite/g++.dg/cpp2a/constexpr-new3.C
  44e96a6cfd450fc9d40c13cc7a4e98f3  gcc/testsuite/g++.dg/cpp2a/constexpr-new4.C
  09667d3c51ef176269e12b2ece101f3d  gcc/testsuite/g++.dg/cpp2a/constexpr-new5.C
  09667d3c51ef176269e12b2ece101f3d  gcc/testsuite/g++.dg/cpp2a/constexpr-new6.C
  c4beb3372cb0e77f36a788efb02031c2  gcc/testsuite/g++.dg/cpp2a/constexpr-new7.C
  d29f558af48deff313645aecd90adb8d  gcc/testsuite/g++.dg/cpp2a/constexpr-new8.C
  89741a348551bf62e5198e689a2cb9eb  gcc/testsuite/g++.dg/cpp2a/constexpr-new9.C
+ 081a94c39fa972dab2d9f8590e087bc6  gcc/testsuite/g++.dg/cpp2a/constexpr-ref1.C
  fe2e298a3cf2e9094a79a25a4ffd8fc2  gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C
  1d1e610556de3295af12cf17177f42b7  gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
  27ac7e1957f04ea6ee6160a7f7c14ecc  gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C
*************** e9ee7a058b99aafd367d4607dea8fd61  gcc/te
*** 18656,18661 ****
--- 20132,20143 ----
  f078be8dacba182f7d71dbd5dc780d67  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid3.C
  d5cf00e36fa4ba1a100d8370416e1bc2  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid4.C
  a9a14bb307d24157192c2d361ae5fcbe  gcc/testsuite/g++.dg/cpp2a/constexpr-union1.C
+ 4fd1e359f10f22a9e4ac5656c39367e2  gcc/testsuite/g++.dg/cpp2a/constexpr-union2.C
+ 64db89fe8184ef8910fbbef6f4db6984  gcc/testsuite/g++.dg/cpp2a/constexpr-union3.C
+ c0b015cd02e07242444c2700f64e070a  gcc/testsuite/g++.dg/cpp2a/constexpr-union4.C
+ 506a486b7e3cc863b24cd04db4e706cd  gcc/testsuite/g++.dg/cpp2a/constexpr-union5.C
+ 5fd97c22b2996faaa87a3aa20de08243  gcc/testsuite/g++.dg/cpp2a/constexpr-union6.C
+ 22d0d1f2f3c677d12d0e844ae12fd688  gcc/testsuite/g++.dg/cpp2a/constexpr-union7.C
  6d84a7bd78f9867ce0a07e6b0d26241b  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual1.C
  974c3f89c0f3ffa8993db35751b7f993  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual10.C
  90499949f9ce8adc6318bfabadf24305  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual11.C
*************** f3e4086567377173b2f1ad21c51c419a  gcc/te
*** 18678,18684 ****
  14a42156bc38212446e31ee33ae3d28a  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual8.C
  c9096ec9ab85bc8af326d314ed3e9209  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual9.C
  dbce59796cf14d5203c5f6510a0ae622  gcc/testsuite/g++.dg/cpp2a/constinit1.C
! 4d2e42a015d2f0120fc0657144a14aca  gcc/testsuite/g++.dg/cpp2a/constinit10.C
  e25bc28f0b6e34ad034e87a07431c5ce  gcc/testsuite/g++.dg/cpp2a/constinit11.C
  3a8c22f7aef66372b70bc1ff6d80cbe8  gcc/testsuite/g++.dg/cpp2a/constinit12.C
  a5ab0c1acf96ddc777b5af2b1b69b23d  gcc/testsuite/g++.dg/cpp2a/constinit13.C
--- 20160,20166 ----
  14a42156bc38212446e31ee33ae3d28a  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual8.C
  c9096ec9ab85bc8af326d314ed3e9209  gcc/testsuite/g++.dg/cpp2a/constexpr-virtual9.C
  dbce59796cf14d5203c5f6510a0ae622  gcc/testsuite/g++.dg/cpp2a/constinit1.C
! fabe5ae775d8ec2d83242789d3045132  gcc/testsuite/g++.dg/cpp2a/constinit10.C
  e25bc28f0b6e34ad034e87a07431c5ce  gcc/testsuite/g++.dg/cpp2a/constinit11.C
  3a8c22f7aef66372b70bc1ff6d80cbe8  gcc/testsuite/g++.dg/cpp2a/constinit12.C
  a5ab0c1acf96ddc777b5af2b1b69b23d  gcc/testsuite/g++.dg/cpp2a/constinit13.C
*************** a5ab0c1acf96ddc777b5af2b1b69b23d  gcc/te
*** 18687,18692 ****
--- 20169,20175 ----
  b4a46903f1578c613195d03127dbcae5  gcc/testsuite/g++.dg/cpp2a/constinit16.C
  6711d333549a07ea54942f18c64f8a0a  gcc/testsuite/g++.dg/cpp2a/constinit17.C
  5f1a0d190f7b063f2ab37e1844af8991  gcc/testsuite/g++.dg/cpp2a/constinit18.C
+ 788c9769d26d7dc940ca016c456aa46b  gcc/testsuite/g++.dg/cpp2a/constinit19.C
  9f7da905ea744d36251021c627953aa7  gcc/testsuite/g++.dg/cpp2a/constinit2.C
  bfb75b72cdd7648ff4412bc1f4c20b7e  gcc/testsuite/g++.dg/cpp2a/constinit3.C
  ec5836ef75d0047a1e68f87292524d25  gcc/testsuite/g++.dg/cpp2a/constinit4.C
*************** c45bd99bf81821c6c33a6bec2da4fce3  gcc/te
*** 18705,18710 ****
--- 20188,20195 ----
  0cbb7f35ec543d54c041228759e5d4b2  gcc/testsuite/g++.dg/cpp2a/decomp5.C
  37c6af01f09276138cc81194ca94d2c2  gcc/testsuite/g++.dg/cpp2a/decomp6.C
  56c35ac32cb997a7957999034dc6688f  gcc/testsuite/g++.dg/cpp2a/decomp7.C
+ f91adbb91ba937e771595d08b9ec7bc1  gcc/testsuite/g++.dg/cpp2a/decomp8.C
+ 90d70634914a869cfe71c3fb61dee456  gcc/testsuite/g++.dg/cpp2a/decomp9.C
  9e5b823284742c68e17318ea0110e785  gcc/testsuite/g++.dg/cpp2a/desig1.C
  103bcc9cdab7e0e9e904e2a42cfecd99  gcc/testsuite/g++.dg/cpp2a/desig10.C
  3826f47812937a822640bb78864297c9  gcc/testsuite/g++.dg/cpp2a/desig11.C
*************** a6ee108d333ad358664c642b33d39e46  gcc/te
*** 18725,18731 ****
--- 20210,20219 ----
  338ebe449657eb02c4167973adb86777  gcc/testsuite/g++.dg/cpp2a/desig25.C
  4509437e82877d48180736a8562517df  gcc/testsuite/g++.dg/cpp2a/desig26.C
  daa18336bb060cdb7bbf99966d100e43  gcc/testsuite/g++.dg/cpp2a/desig27.C
+ 722ef4faecf71da588eb987965ef47ed  gcc/testsuite/g++.dg/cpp2a/desig28.C
+ e46e47d5fc0146c5f51ff736dc8fc56d  gcc/testsuite/g++.dg/cpp2a/desig29.C
  9f489d7f3f58294a91f5e5ea62989f5c  gcc/testsuite/g++.dg/cpp2a/desig3.C
+ f09037b3eb0556853858e907725f304c  gcc/testsuite/g++.dg/cpp2a/desig30.C
  a1e304613b1097092d10ed459e46fe0c  gcc/testsuite/g++.dg/cpp2a/desig4.C
  bf71e77b18ad9c10b7e9f64f07ee9d28  gcc/testsuite/g++.dg/cpp2a/desig5.C
  c9656baaa09fe4a7d5bf855b0e825993  gcc/testsuite/g++.dg/cpp2a/desig6.C
*************** cc0268c504556040e78bce5b6a029f64  gcc/te
*** 18738,18747 ****
  709f9b5a4431b31c6b23bb87e2d889b1  gcc/testsuite/g++.dg/cpp2a/destroying-delete4.C
  d19721429920a1897dfb416d86f876bd  gcc/testsuite/g++.dg/cpp2a/destroying-delete5.C
  95bcd1b1427453dfdb84ee76afa7dba0  gcc/testsuite/g++.dg/cpp2a/destroying-delete6.C
! 13ce43bc00d27c743e449e1386ffa46a  gcc/testsuite/g++.dg/cpp2a/enum-conv1.C
  dedca5854b0e7bf2b75e811a11f0a159  gcc/testsuite/g++.dg/cpp2a/enum-conv2.C
  e2d076d1bf2b561366a64fc2e1ea3381  gcc/testsuite/g++.dg/cpp2a/enum-conv3.C
! 7603d8495e5c4177167103f15193f880  gcc/testsuite/g++.dg/cpp2a/explicit1.C
  4ead5e099c42078c2e5d56a7f2e11d60  gcc/testsuite/g++.dg/cpp2a/explicit10.C
  81b478f10b66faac275362a1913eceee  gcc/testsuite/g++.dg/cpp2a/explicit11.C
  e8e7d84b8d1f40eb68384d1a3999a9d8  gcc/testsuite/g++.dg/cpp2a/explicit12.C
--- 20226,20235 ----
  709f9b5a4431b31c6b23bb87e2d889b1  gcc/testsuite/g++.dg/cpp2a/destroying-delete4.C
  d19721429920a1897dfb416d86f876bd  gcc/testsuite/g++.dg/cpp2a/destroying-delete5.C
  95bcd1b1427453dfdb84ee76afa7dba0  gcc/testsuite/g++.dg/cpp2a/destroying-delete6.C
! fe646b9e255c8d870f03e6fec32b7529  gcc/testsuite/g++.dg/cpp2a/enum-conv1.C
  dedca5854b0e7bf2b75e811a11f0a159  gcc/testsuite/g++.dg/cpp2a/enum-conv2.C
  e2d076d1bf2b561366a64fc2e1ea3381  gcc/testsuite/g++.dg/cpp2a/enum-conv3.C
! 6ea3c4ac02733aa034ecb8f673027a69  gcc/testsuite/g++.dg/cpp2a/explicit1.C
  4ead5e099c42078c2e5d56a7f2e11d60  gcc/testsuite/g++.dg/cpp2a/explicit10.C
  81b478f10b66faac275362a1913eceee  gcc/testsuite/g++.dg/cpp2a/explicit11.C
  e8e7d84b8d1f40eb68384d1a3999a9d8  gcc/testsuite/g++.dg/cpp2a/explicit12.C
*************** bbaa6b9b318dd0cb35b260ac54ce5548  gcc/te
*** 18752,18766 ****
  ce913ea3fabca8ffd187ffabb084a00b  gcc/testsuite/g++.dg/cpp2a/explicit17.C
  6be3c9cb493cf61cf693eedf2068611c  gcc/testsuite/g++.dg/cpp2a/explicit18.C
  08709b8f0b36b23322cf7dc54b58664f  gcc/testsuite/g++.dg/cpp2a/explicit19.C
! 4f274bd2175020b40ce5b2de0d923fdd  gcc/testsuite/g++.dg/cpp2a/explicit2.C
  e2b8b1544e1a743421685574bc054539  gcc/testsuite/g++.dg/cpp2a/explicit3.C
  7b8cb14575cc7970a40229dcb79d6390  gcc/testsuite/g++.dg/cpp2a/explicit4.C
! e94526aef328308b7396a3b5e50cbeed  gcc/testsuite/g++.dg/cpp2a/explicit5.C
  ffff1f1e5445186cd85fc18de4595b89  gcc/testsuite/g++.dg/cpp2a/explicit6.C
  2c9a2b5474c2b3d7b8c260a855385434  gcc/testsuite/g++.dg/cpp2a/explicit7.C
  aa2bb54a77cb3fec28379d767c80f012  gcc/testsuite/g++.dg/cpp2a/explicit8.C
  05f18b846e0e3446396676836acfabc0  gcc/testsuite/g++.dg/cpp2a/explicit9.C
! 4b9d48c20a8b8b45356e7df5e2224fa5  gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C
  1308cad2957585ab947868996b5fa85c  gcc/testsuite/g++.dg/cpp2a/fn-template1.C
  96c4e27953bf932ba7135b847e79207d  gcc/testsuite/g++.dg/cpp2a/fn-template10.C
  2cbcabc3565e69c4edf1f078a2c0aecc  gcc/testsuite/g++.dg/cpp2a/fn-template11.C
--- 20240,20254 ----
  ce913ea3fabca8ffd187ffabb084a00b  gcc/testsuite/g++.dg/cpp2a/explicit17.C
  6be3c9cb493cf61cf693eedf2068611c  gcc/testsuite/g++.dg/cpp2a/explicit18.C
  08709b8f0b36b23322cf7dc54b58664f  gcc/testsuite/g++.dg/cpp2a/explicit19.C
! 8c65d8393a27dc23c675dd59b7ec1209  gcc/testsuite/g++.dg/cpp2a/explicit2.C
  e2b8b1544e1a743421685574bc054539  gcc/testsuite/g++.dg/cpp2a/explicit3.C
  7b8cb14575cc7970a40229dcb79d6390  gcc/testsuite/g++.dg/cpp2a/explicit4.C
! a098642c03f840c239b39f6abf7a5a9a  gcc/testsuite/g++.dg/cpp2a/explicit5.C
  ffff1f1e5445186cd85fc18de4595b89  gcc/testsuite/g++.dg/cpp2a/explicit6.C
  2c9a2b5474c2b3d7b8c260a855385434  gcc/testsuite/g++.dg/cpp2a/explicit7.C
  aa2bb54a77cb3fec28379d767c80f012  gcc/testsuite/g++.dg/cpp2a/explicit8.C
  05f18b846e0e3446396676836acfabc0  gcc/testsuite/g++.dg/cpp2a/explicit9.C
! 01d4ce1c6464eefef526315f4a14ffcb  gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C
  1308cad2957585ab947868996b5fa85c  gcc/testsuite/g++.dg/cpp2a/fn-template1.C
  96c4e27953bf932ba7135b847e79207d  gcc/testsuite/g++.dg/cpp2a/fn-template10.C
  2cbcabc3565e69c4edf1f078a2c0aecc  gcc/testsuite/g++.dg/cpp2a/fn-template11.C
*************** d5daad6510fdebbc8a224878e13daadb  gcc/te
*** 18790,18795 ****
--- 20278,20284 ----
  48115fb5ca7c34dc80b55641d058c2f5  gcc/testsuite/g++.dg/cpp2a/implicit-move1.C
  0f15089a4b48e4442cd76dc0b58935e6  gcc/testsuite/g++.dg/cpp2a/implicit-move2.C
  667c1542ea5f74feb06d42ad62ef73db  gcc/testsuite/g++.dg/cpp2a/implicit-move3.C
+ 2b74677461827943238e7bb564a20d46  gcc/testsuite/g++.dg/cpp2a/implicit-move4.C
  66879a3657af8619d59730538e1ee393  gcc/testsuite/g++.dg/cpp2a/inline-asm1.C
  13c4bca5287520b44f794ff87c222cc6  gcc/testsuite/g++.dg/cpp2a/inline-asm2.C
  739ad2cf9ce35fee1ac745e2a41dce8d  gcc/testsuite/g++.dg/cpp2a/inline-asm3.C
*************** f2ad91569581aa3fa670ae32821491f9  gcc/te
*** 18799,18804 ****
--- 20288,20294 ----
  d61cc66863701219edff4cd7fe87ebb9  gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated12.C
  c158bbb4df76b9867cf177e079c2ce23  gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated13.C
  bc1c49df918c7bedb2c04165b007f136  gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated14.C
+ 13b8a2f12e5511e8657e1c29bb0f8073  gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated15.C
  4617b7d86ad3299b351c033f194bee8a  gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated2.C
  73b56ba004639bd18c7c3c95c3bfd080  gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated3.C
  5c37b5cacdb70688ac2e90c563d9613c  gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated4.C
*************** e26b53f769c1a6da2429ed8d4f3e5a11  gcc/te
*** 18810,18816 ****
  06ff2bf72a9405eef729f9ca42fd7d11  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member1.C
  bca6a54a8efaaafbb25d25f8bf2483a5  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member2.C
  0b97963dbeddacfae228bfc6805c4c7c  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member3.C
! 6326dfca9bdfb75139aa1e71e1c4e94b  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member4.C
  d7ed0ebf26a6437db2b5aa0d69a1e9d1  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member5.C
  2b242d5384bb8389eed3715b97a73fbf  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member6.C
  34fbb70e36dd077c05eed82d9def7169  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member7.C
--- 20300,20306 ----
  06ff2bf72a9405eef729f9ca42fd7d11  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member1.C
  bca6a54a8efaaafbb25d25f8bf2483a5  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member2.C
  0b97963dbeddacfae228bfc6805c4c7c  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member3.C
! 088e0436c2603f86407a1c5f09853ae9  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member4.C
  d7ed0ebf26a6437db2b5aa0d69a1e9d1  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member5.C
  2b242d5384bb8389eed3715b97a73fbf  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member6.C
  34fbb70e36dd077c05eed82d9def7169  gcc/testsuite/g++.dg/cpp2a/is-corresponding-member7.C
*************** a32a0480aae35890db6a4b74ebac6bc0  gcc/te
*** 18827,18832 ****
--- 20317,20324 ----
  108a1e84430a208365c8e85df1f93cc2  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class6.C
  32bbeb83d22cbe00809cd7a5d2e40e40  gcc/testsuite/g++.dg/cpp2a/keywords1.C
  f041d92886505f234ae31a1bb66ddb92  gcc/testsuite/g++.dg/cpp2a/keywords2.C
+ a3e0a0c57bba12b4b0b150a5a5f1c891  gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C
+ 682ab8e137f7cce11c5afc1c22a9ec49  gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C
  fb476be2a6013e9c32bc9b8755048f8a  gcc/testsuite/g++.dg/cpp2a/lambda-generic-ttp1.C
  92ac0cb30c8e41eb043cdb9186a7cc2d  gcc/testsuite/g++.dg/cpp2a/lambda-generic-ttp2.C
  40ea32951dfb4570c1774e238c30f434  gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic20.C
*************** f50c8e7c7812a7eade38d014e8410110  gcc/te
*** 18852,18857 ****
--- 20344,20353 ----
  135aaa9e481a21f9375ce861b3274c3f  gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C
  9f0cb1929455333894b8734212f3d221  gcc/testsuite/g++.dg/cpp2a/lambda-requires1.C
  fdacf3bee1e8bb4f226b833e6e15f7e8  gcc/testsuite/g++.dg/cpp2a/lambda-targ1.C
+ d363d5590bc863dbb1f6bb96bad95b3c  gcc/testsuite/g++.dg/cpp2a/lambda-targ2.C
+ d948ecca981f7c5de5ca48afc987ea36  gcc/testsuite/g++.dg/cpp2a/lambda-targ2a.C
+ 096118fef57f992a05319e3b6f8ba6a7  gcc/testsuite/g++.dg/cpp2a/lambda-targ3.C
+ 21c4749dcabd9a286db03db935f9cd86  gcc/testsuite/g++.dg/cpp2a/lambda-targ4.C
  22ec10632b049637a7cbf82f46eda177  gcc/testsuite/g++.dg/cpp2a/lambda-this1.C
  c09b3406a6984eced941c654f03df8b6  gcc/testsuite/g++.dg/cpp2a/lambda-this2.C
  58b6c8506ae6f77f9498fd7dbed8bdeb  gcc/testsuite/g++.dg/cpp2a/lambda-this3.C
*************** bff8b5e2df5278f99aa4066a82b1285b  gcc/te
*** 18875,18880 ****
--- 20371,20377 ----
  212ff71ca0975687074cfc7aa4299751  gcc/testsuite/g++.dg/cpp2a/lambda-uneval9.cc
  5237f3fe8ad9a25771fab3b505424daa  gcc/testsuite/g++.dg/cpp2a/lambda-uneval9.h
  ef0d69f00a9d28bc07bc6d0fcbf840b5  gcc/testsuite/g++.dg/cpp2a/lambda1.C
+ f227d27229cc4634ccc941c7e033c445  gcc/testsuite/g++.dg/cpp2a/linkage-1.C
  dadbd3e108a5f0ebf254744df54b05ab  gcc/testsuite/g++.dg/cpp2a/multiple-deleted-destroying-delete-error-1.C
  47eb51ee8983c1226202a6523dab937c  gcc/testsuite/g++.dg/cpp2a/multiple-deleted-destroying-delete-error-2.C
  0128760d24dbfb958ed58b3a135f5b72  gcc/testsuite/g++.dg/cpp2a/nested-inline-ns1.C
*************** b9a453a0ec01130cf321abf54d07d956  gcc/te
*** 18890,18895 ****
--- 20387,20393 ----
  e95698a38fe4cc0a60b4857fa65742ca  gcc/testsuite/g++.dg/cpp2a/no_unique_address12.C
  dd49d8873bb047040bf7f60deb8f644f  gcc/testsuite/g++.dg/cpp2a/no_unique_address13.C
  10563ae733ee31b86846cfb852d66d9d  gcc/testsuite/g++.dg/cpp2a/no_unique_address14.C
+ 9c8ff2d9f37699b8813711a0c20c7e07  gcc/testsuite/g++.dg/cpp2a/no_unique_address15.C
  c94ac6fb1a99bf541b66d604620fa09b  gcc/testsuite/g++.dg/cpp2a/no_unique_address2.C
  67a61649264fea12fb7cc5c31bc5313e  gcc/testsuite/g++.dg/cpp2a/no_unique_address3.C
  ca2c81baf4111b5e8e15980b5237a344  gcc/testsuite/g++.dg/cpp2a/no_unique_address4.C
*************** eae4af23fdda50f9fc7fe629f33c9c57  gcc/te
*** 18902,18908 ****
  2717793c6be5004e0bf2ffade512583f  gcc/testsuite/g++.dg/cpp2a/nodiscard-constructor1.C
  96c20effe8d6cded483f3dd47fffcdf8  gcc/testsuite/g++.dg/cpp2a/nodiscard-constructor2.C
  e62646013a184c789932c992b3a78a00  gcc/testsuite/g++.dg/cpp2a/nodiscard-once.C
! bb9c8f19f3d33b56fadd1fd415391bad  gcc/testsuite/g++.dg/cpp2a/nodiscard-reason-nonstring.C
  0e71f2f5f3d4746777dace7a1bd7d922  gcc/testsuite/g++.dg/cpp2a/nodiscard-reason-only-one.C
  ba1604c5e001a8e2d0ac4a1d96b8ef4a  gcc/testsuite/g++.dg/cpp2a/nodiscard-reason.C
  d1d7235f4cc6cf0a6d3f8feaebdf482e  gcc/testsuite/g++.dg/cpp2a/nodiscard1.C
--- 20400,20406 ----
  2717793c6be5004e0bf2ffade512583f  gcc/testsuite/g++.dg/cpp2a/nodiscard-constructor1.C
  96c20effe8d6cded483f3dd47fffcdf8  gcc/testsuite/g++.dg/cpp2a/nodiscard-constructor2.C
  e62646013a184c789932c992b3a78a00  gcc/testsuite/g++.dg/cpp2a/nodiscard-once.C
! 16c06129a4bec65ab4ab36f2eda69fef  gcc/testsuite/g++.dg/cpp2a/nodiscard-reason-nonstring.C
  0e71f2f5f3d4746777dace7a1bd7d922  gcc/testsuite/g++.dg/cpp2a/nodiscard-reason-only-one.C
  ba1604c5e001a8e2d0ac4a1d96b8ef4a  gcc/testsuite/g++.dg/cpp2a/nodiscard-reason.C
  d1d7235f4cc6cf0a6d3f8feaebdf482e  gcc/testsuite/g++.dg/cpp2a/nodiscard1.C
*************** ea2c08e6fd29f54c1a8a5cad0d76f8b2  gcc/te
*** 18941,18947 ****
  ce8d3a2faecdda617d9b5c543a6edcc3  gcc/testsuite/g++.dg/cpp2a/nontype-class37.C
  3c78de97468a94e2bbf8833bd8d31e4f  gcc/testsuite/g++.dg/cpp2a/nontype-class38.C
  fbc9650e318d6a805885ddfe38ff6367  gcc/testsuite/g++.dg/cpp2a/nontype-class39.C
! 9b45793f5224c814c2a1573efc122d48  gcc/testsuite/g++.dg/cpp2a/nontype-class4.C
  f113107fa400cb6a116e20f7dfa67f7b  gcc/testsuite/g++.dg/cpp2a/nontype-class40.C
  7286d508630c80ed19174fc66e53be56  gcc/testsuite/g++.dg/cpp2a/nontype-class41.C
  fdbb14f57371ab3bfa7ac79ae1fbee3e  gcc/testsuite/g++.dg/cpp2a/nontype-class42.C
--- 20439,20445 ----
  ce8d3a2faecdda617d9b5c543a6edcc3  gcc/testsuite/g++.dg/cpp2a/nontype-class37.C
  3c78de97468a94e2bbf8833bd8d31e4f  gcc/testsuite/g++.dg/cpp2a/nontype-class38.C
  fbc9650e318d6a805885ddfe38ff6367  gcc/testsuite/g++.dg/cpp2a/nontype-class39.C
! 04b4926c39cc4a59dd76847aa19a2514  gcc/testsuite/g++.dg/cpp2a/nontype-class4.C
  f113107fa400cb6a116e20f7dfa67f7b  gcc/testsuite/g++.dg/cpp2a/nontype-class40.C
  7286d508630c80ed19174fc66e53be56  gcc/testsuite/g++.dg/cpp2a/nontype-class41.C
  fdbb14f57371ab3bfa7ac79ae1fbee3e  gcc/testsuite/g++.dg/cpp2a/nontype-class42.C
*************** b9a410f848c42dbbba77a1ac039bfa42  gcc/te
*** 18952,18957 ****
--- 20450,20456 ----
  b9ad26b9fc7017117f48b8cf78e070f9  gcc/testsuite/g++.dg/cpp2a/nontype-class47.C
  efded4551f49016cf2eacd2db554f14b  gcc/testsuite/g++.dg/cpp2a/nontype-class48.C
  d5f804b9a165b9a149f8abd1027510b5  gcc/testsuite/g++.dg/cpp2a/nontype-class49.C
+ 13fa94d1c329c2ec627abeaba905eb8c  gcc/testsuite/g++.dg/cpp2a/nontype-class4a.C
  1724161e3c4a13c45aa669a07a0bf4a5  gcc/testsuite/g++.dg/cpp2a/nontype-class5.C
  f285697eea399206e793409d3e3967ae  gcc/testsuite/g++.dg/cpp2a/nontype-class50.C
  3d2b8201f489f4abeaf39e7f23050ce6  gcc/testsuite/g++.dg/cpp2a/nontype-class50a.C
*************** e4cb23913f9a7f4f41d2ccd2f78d7012  gcc/te
*** 18964,18976 ****
--- 20463,20484 ----
  fbdae3a522cecf4099889d0118532812  gcc/testsuite/g++.dg/cpp2a/nontype-class56.C
  6ccd34897eb52c520e2152529df77e62  gcc/testsuite/g++.dg/cpp2a/nontype-class57.C
  93dcb9437c81d3d44698eef72b4d4541  gcc/testsuite/g++.dg/cpp2a/nontype-class58.C
+ 6a5e7871f3abe7fd043ff19cf541ebeb  gcc/testsuite/g++.dg/cpp2a/nontype-class59.C
  86d91c051a62b8d9f32d57f4047a6534  gcc/testsuite/g++.dg/cpp2a/nontype-class6.C
+ 1d298af3c122e40178239ab91b7bf87c  gcc/testsuite/g++.dg/cpp2a/nontype-class60.C
+ 7e5faa11000e061c87ba35da09383a05  gcc/testsuite/g++.dg/cpp2a/nontype-class61.C
+ 4d07a0b35ca622b38b384c35f09509de  gcc/testsuite/g++.dg/cpp2a/nontype-class62.C
+ 72fe0477a8c269fa7e670cb6efe7dc0c  gcc/testsuite/g++.dg/cpp2a/nontype-class63.C
+ 3fc7fb6608d7ee17cadbee2579efc8e5  gcc/testsuite/g++.dg/cpp2a/nontype-class63a.C
+ ae16d93288f613597bc5c6b938f02bca  gcc/testsuite/g++.dg/cpp2a/nontype-class64.C
+ 4ca3299fda1072e193f91ab932ebdd47  gcc/testsuite/g++.dg/cpp2a/nontype-class65.C
  c78f774590fd68025c389ab4361f5714  gcc/testsuite/g++.dg/cpp2a/nontype-class7.C
  44a04e768668501da12fed78805a7d70  gcc/testsuite/g++.dg/cpp2a/nontype-class8.C
  bae1c36e9d9dcb762070154c47a6b3c3  gcc/testsuite/g++.dg/cpp2a/nontype-class9.C
  be21ab07ff4b8655deffc37a85075c52  gcc/testsuite/g++.dg/cpp2a/nontype-complex1.C
  59cd71252db72b562133526c9a064fa0  gcc/testsuite/g++.dg/cpp2a/nontype-float1.C
  2f8860b65ba56ff92047be661cd8beb4  gcc/testsuite/g++.dg/cpp2a/nontype-float2.C
+ a730b3782d1a47d30c03d5df22dd4c62  gcc/testsuite/g++.dg/cpp2a/nontype-float3.C
  8958094420e548b2425f24fcc5fe5fd3  gcc/testsuite/g++.dg/cpp2a/nontype-subob1.C
  03bb531700d42cc1b3d2850aaf3f6cd7  gcc/testsuite/g++.dg/cpp2a/nontype-subob2.C
  de60a968b199113b10c3f84c0d977aa5  gcc/testsuite/g++.dg/cpp2a/paren-init1.C
*************** f917e8e53ce100d9b00585ebdb34ff7a  gcc/te
*** 19010,19015 ****
--- 20518,20524 ----
  98005d747053b3076aa53928776efb7e  gcc/testsuite/g++.dg/cpp2a/paren-init7.C
  ddb0c78842f6b4e3e4606849bc1a4a82  gcc/testsuite/g++.dg/cpp2a/paren-init8.C
  fc8ccbfe7f14dd4a41ff708c5a05b226  gcc/testsuite/g++.dg/cpp2a/paren-init9.C
+ 475c14632e683c843d48238b8c5514f2  gcc/testsuite/g++.dg/cpp2a/pr114426.C
  7d1c1719a1c3e44cf69662819769f8a5  gcc/testsuite/g++.dg/cpp2a/pr88534.C
  3a4139bbe15eef2dce96cb020b2681f7  gcc/testsuite/g++.dg/cpp2a/pr88537.C
  b94ce4741edeca1190c4590e425522dc  gcc/testsuite/g++.dg/cpp2a/pr89913.C
*************** c7c933568cc5b17f6d8dadb7cec8101f  gcc/te
*** 19047,19052 ****
--- 20556,20563 ----
  ae3ef3d8cbf3145fa938c567ccc11530  gcc/testsuite/g++.dg/cpp2a/spaceship-eq13.C
  38fdc580773803f5236af81425b44d75  gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C
  860fd8754fe18ef03692647820b7142c  gcc/testsuite/g++.dg/cpp2a/spaceship-eq15.C
+ 4f286359dd97839020e6c19de0f2dd05  gcc/testsuite/g++.dg/cpp2a/spaceship-eq16.C
+ 466e9895fc63c3cc51f38790018adba9  gcc/testsuite/g++.dg/cpp2a/spaceship-eq17.C
  35b5b00dc11e88e35813caed81c920fc  gcc/testsuite/g++.dg/cpp2a/spaceship-eq1a.C
  da366bbf37859e5c77c24a8138c72180  gcc/testsuite/g++.dg/cpp2a/spaceship-eq2.C
  014a0bac4cef0e90628a5873d11914eb  gcc/testsuite/g++.dg/cpp2a/spaceship-eq3.C
*************** f63b5565ab0bb6d2125aa5a844f18e62  gcc/te
*** 19079,19087 ****
  4e73ff4fb43ecf6cf74294bda1fffe61  gcc/testsuite/g++.dg/cpp2a/spaceship-scalar3.C
  65d5bce771b3e48a893d1ec638885d3a  gcc/testsuite/g++.dg/cpp2a/spaceship-sfinae1.C
  44f85774d50950da2270385ce1798644  gcc/testsuite/g++.dg/cpp2a/spaceship-sfinae2.C
  a1b5541b791ba1834869a1ceeb340ddc  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg1.C
  e6037687c8367081183d5ad6f709b4a7  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg2.C
! 48cc4340eb8546a39438777b57d87c47  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg3.C
  15bc319256750cf3a9caf5d852b30aa1  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg4.C
  853bb4d901c7e141b3533566d35db6c5  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg5.C
  11ce883df5bfcdc17848d1a182086ec8  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg6.C
--- 20590,20599 ----
  4e73ff4fb43ecf6cf74294bda1fffe61  gcc/testsuite/g++.dg/cpp2a/spaceship-scalar3.C
  65d5bce771b3e48a893d1ec638885d3a  gcc/testsuite/g++.dg/cpp2a/spaceship-sfinae1.C
  44f85774d50950da2270385ce1798644  gcc/testsuite/g++.dg/cpp2a/spaceship-sfinae2.C
+ a10a985355e5b553e7699af391c4bd26  gcc/testsuite/g++.dg/cpp2a/spaceship-sfinae3.C
  a1b5541b791ba1834869a1ceeb340ddc  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg1.C
  e6037687c8367081183d5ad6f709b4a7  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg2.C
! f33ebefab5f5462103b17cd15e835bc0  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg3.C
  15bc319256750cf3a9caf5d852b30aa1  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg4.C
  853bb4d901c7e141b3533566d35db6c5  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg5.C
  11ce883df5bfcdc17848d1a182086ec8  gcc/testsuite/g++.dg/cpp2a/spaceship-synth-neg6.C
*************** fbe4f142dfdc31d389f336c3a2132127  gcc/te
*** 19092,19097 ****
--- 20604,20610 ----
  91f2e33001c655b461532a4c839e5957  gcc/testsuite/g++.dg/cpp2a/spaceship-synth13.C
  ea73038f47b70b2d70c4032d05c21938  gcc/testsuite/g++.dg/cpp2a/spaceship-synth14.C
  ccb67d98b82aa9a514ad98e1a5cb8e6f  gcc/testsuite/g++.dg/cpp2a/spaceship-synth15.C
+ 40c442f9558d4f78e1642f223634f444  gcc/testsuite/g++.dg/cpp2a/spaceship-synth16.C
  8f91979209d8d288d5c97266ecd046d7  gcc/testsuite/g++.dg/cpp2a/spaceship-synth1a.C
  5daa0011ffb3db93835d71c071ec0d71  gcc/testsuite/g++.dg/cpp2a/spaceship-synth2.C
  6a6f4a83eb2e888266655b23bebfc463  gcc/testsuite/g++.dg/cpp2a/spaceship-synth2a.C
*************** fa24ee04269507190905ce50ace9fb4d  gcc/te
*** 19104,19110 ****
  1b6f8df9a6ce77ca9e241e892b9a4dbb  gcc/testsuite/g++.dg/cpp2a/spaceship-synth7.C
  0e164c2e8c62a2c45fdbc36850d69217  gcc/testsuite/g++.dg/cpp2a/spaceship-synth8.C
  bcdf54aadf7c186cab3729e8811e2fea  gcc/testsuite/g++.dg/cpp2a/spaceship-synth8a.C
! e6eff6554eb70bbd03e6aacbb13adf31  gcc/testsuite/g++.dg/cpp2a/spaceship-synth9.C
  15d8852abeec5772820ae98eb7eaba47  gcc/testsuite/g++.dg/cpp2a/spaceship-union1.C
  894dc2618d8240d82bbbd6fa81e459f0  gcc/testsuite/g++.dg/cpp2a/spaceship-vec1.C
  0970f285ffbf72900993c2240e49583b  gcc/testsuite/g++.dg/cpp2a/spaceship-virtual1.C
--- 20617,20623 ----
  1b6f8df9a6ce77ca9e241e892b9a4dbb  gcc/testsuite/g++.dg/cpp2a/spaceship-synth7.C
  0e164c2e8c62a2c45fdbc36850d69217  gcc/testsuite/g++.dg/cpp2a/spaceship-synth8.C
  bcdf54aadf7c186cab3729e8811e2fea  gcc/testsuite/g++.dg/cpp2a/spaceship-synth8a.C
! db3ce0a3a66a8608a8e090b8c9d765e9  gcc/testsuite/g++.dg/cpp2a/spaceship-synth9.C
  15d8852abeec5772820ae98eb7eaba47  gcc/testsuite/g++.dg/cpp2a/spaceship-union1.C
  894dc2618d8240d82bbbd6fa81e459f0  gcc/testsuite/g++.dg/cpp2a/spaceship-vec1.C
  0970f285ffbf72900993c2240e49583b  gcc/testsuite/g++.dg/cpp2a/spaceship-virtual1.C
*************** e13ad9cd7ad81ba583e7c26eafc6ec63  gcc/te
*** 19121,19128 ****
  a8ec3f289340278b03ee97c8ebff51ae  gcc/testsuite/g++.dg/cpp2a/srcloc18.C
  c951a3e5bb4bc2d67ee9dcf55822ab1e  gcc/testsuite/g++.dg/cpp2a/srcloc19.C
  73b3d0055024c3e89cf343ad697d921f  gcc/testsuite/g++.dg/cpp2a/srcloc2.C
! d0d6d97ed7c799dfd6ee3c3c281ece09  gcc/testsuite/g++.dg/cpp2a/srcloc20.C
! 08b4437f1c40ac567ece79251f6bfa76  gcc/testsuite/g++.dg/cpp2a/srcloc3.C
  8f5a9de13a6d3d96cb21aa5a93a0b563  gcc/testsuite/g++.dg/cpp2a/srcloc4.C
  77028a5f4b7df8d89ba78fd8684766eb  gcc/testsuite/g++.dg/cpp2a/srcloc5.C
  086905d548500017ce2dc1719918b0ca  gcc/testsuite/g++.dg/cpp2a/srcloc6.C
--- 20634,20641 ----
  a8ec3f289340278b03ee97c8ebff51ae  gcc/testsuite/g++.dg/cpp2a/srcloc18.C
  c951a3e5bb4bc2d67ee9dcf55822ab1e  gcc/testsuite/g++.dg/cpp2a/srcloc19.C
  73b3d0055024c3e89cf343ad697d921f  gcc/testsuite/g++.dg/cpp2a/srcloc2.C
! 2c2ca7c0f7c7b7cac98f32e230f5567b  gcc/testsuite/g++.dg/cpp2a/srcloc20.C
! 164f44767baded1b5a514a99ea2aa992  gcc/testsuite/g++.dg/cpp2a/srcloc3.C
  8f5a9de13a6d3d96cb21aa5a93a0b563  gcc/testsuite/g++.dg/cpp2a/srcloc4.C
  77028a5f4b7df8d89ba78fd8684766eb  gcc/testsuite/g++.dg/cpp2a/srcloc5.C
  086905d548500017ce2dc1719918b0ca  gcc/testsuite/g++.dg/cpp2a/srcloc6.C
*************** cf2c88b738d02df2f5de1f7e99cb7bf6  gcc/te
*** 19149,19155 ****
  d5f9722c983a8693c05cb62cb32deda1  gcc/testsuite/g++.dg/cpp2a/typename8.C
  3804f8b3199ad2e1689f500b100b9c74  gcc/testsuite/g++.dg/cpp2a/typename9.C
  68bb72590987e461c557730fb61a660a  gcc/testsuite/g++.dg/cpp2a/ucn1.C
! 8f3d31e322ecfe76ed9089a1dfcd33b7  gcc/testsuite/g++.dg/cpp2a/ucn2.C
  0e5c519e73d14664dd7e8b3b68d1c2f4  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg.C
  ad2201a1b978f4f4fbdb00d19864f54d  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg2.C
  8a7f7465c6acee0050e7da22ab20d5fc  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad.C
--- 20662,20668 ----
  d5f9722c983a8693c05cb62cb32deda1  gcc/testsuite/g++.dg/cpp2a/typename8.C
  3804f8b3199ad2e1689f500b100b9c74  gcc/testsuite/g++.dg/cpp2a/typename9.C
  68bb72590987e461c557730fb61a660a  gcc/testsuite/g++.dg/cpp2a/ucn1.C
! 98a20c27132c470c3c77e43f34e1378d  gcc/testsuite/g++.dg/cpp2a/ucn2.C
  0e5c519e73d14664dd7e8b3b68d1c2f4  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg.C
  ad2201a1b978f4f4fbdb00d19864f54d  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg2.C
  8a7f7465c6acee0050e7da22ab20d5fc  gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad.C
*************** e0594ebf50b79f339906f3410ba74411  gcc/te
*** 19174,19186 ****
  05f0b368c4e62ef8502ff68a59ae88bb  gcc/testsuite/g++.dg/cpp2a/volatile5.C
  e71a3440857a0df24410cbe91e45c678  gcc/testsuite/g++.dg/debug/anonunion1.C
  8dbd2136c39269d38b72a0226e914678  gcc/testsuite/g++.dg/debug/cleanup1.C
  e4aee91d21a8cdbd286094f893319c70  gcc/testsuite/g++.dg/debug/const1.C
  2e4398a10938bba8e5fd13cd2d12e691  gcc/testsuite/g++.dg/debug/const2.C
  7d21ffa2ab4a579692d45c2c52190a0d  gcc/testsuite/g++.dg/debug/const3.C
  b196cb4af4d539f545ae961b8905ba24  gcc/testsuite/g++.dg/debug/const4.C
  8c7b9540eb6278b6bd197c3c55ae7945  gcc/testsuite/g++.dg/debug/const5.C
  36f088b22dca6ab78668e7d505839fbd  gcc/testsuite/g++.dg/debug/crash1.C
! 48a3151c13490e18f0b8098077b3afd1  gcc/testsuite/g++.dg/debug/debug.exp
  2b6f3bdb657c8865549db08f96a15223  gcc/testsuite/g++.dg/debug/debug1.C
  cece96666e504d9287aaadf8a4855138  gcc/testsuite/g++.dg/debug/debug2.C
  b5c1d1e26252e6e306ee37c885cc449b  gcc/testsuite/g++.dg/debug/debug3.C
--- 20687,20700 ----
  05f0b368c4e62ef8502ff68a59ae88bb  gcc/testsuite/g++.dg/cpp2a/volatile5.C
  e71a3440857a0df24410cbe91e45c678  gcc/testsuite/g++.dg/debug/anonunion1.C
  8dbd2136c39269d38b72a0226e914678  gcc/testsuite/g++.dg/debug/cleanup1.C
+ faddbe412af7318861953637b2b677a3  gcc/testsuite/g++.dg/debug/cleanup2.C
  e4aee91d21a8cdbd286094f893319c70  gcc/testsuite/g++.dg/debug/const1.C
  2e4398a10938bba8e5fd13cd2d12e691  gcc/testsuite/g++.dg/debug/const2.C
  7d21ffa2ab4a579692d45c2c52190a0d  gcc/testsuite/g++.dg/debug/const3.C
  b196cb4af4d539f545ae961b8905ba24  gcc/testsuite/g++.dg/debug/const4.C
  8c7b9540eb6278b6bd197c3c55ae7945  gcc/testsuite/g++.dg/debug/const5.C
  36f088b22dca6ab78668e7d505839fbd  gcc/testsuite/g++.dg/debug/crash1.C
! 6808284b05be678f4c656d6d695a803b  gcc/testsuite/g++.dg/debug/debug.exp
  2b6f3bdb657c8865549db08f96a15223  gcc/testsuite/g++.dg/debug/debug1.C
  cece96666e504d9287aaadf8a4855138  gcc/testsuite/g++.dg/debug/debug2.C
  b5c1d1e26252e6e306ee37c885cc449b  gcc/testsuite/g++.dg/debug/debug3.C
*************** b68f44c11557e3825fd41d4340b7bf62  gcc/te
*** 19218,19224 ****
  b60cdd725e03d3b1d9c56248e0f623f0  gcc/testsuite/g++.dg/debug/dwarf2/deleted-member-function.C
  2d11614b04b4a82a2bd316bf588c7852  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-1.C
  906b48b71d0ea35137dc20a9fd2f8965  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-2.C
! a62c853233fa549a8c81cdda607708cd  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp
  626624da3f5685a0850aad1b683ac3d4  gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-nested.C
  22d59b45b21c13f83b0b24bf88a853bf  gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C
  1b130ad10876bc9db6cf83c8fa07435f  gcc/testsuite/g++.dg/debug/dwarf2/enum1.C
--- 20732,20738 ----
  b60cdd725e03d3b1d9c56248e0f623f0  gcc/testsuite/g++.dg/debug/dwarf2/deleted-member-function.C
  2d11614b04b4a82a2bd316bf588c7852  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-1.C
  906b48b71d0ea35137dc20a9fd2f8965  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-2.C
! 04de73d5ddefa5742c46f44e4b3f73b7  gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp
  626624da3f5685a0850aad1b683ac3d4  gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-nested.C
  22d59b45b21c13f83b0b24bf88a853bf  gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C
  1b130ad10876bc9db6cf83c8fa07435f  gcc/testsuite/g++.dg/debug/dwarf2/enum1.C
*************** d6a23e0e5a6ec9b1682a91b30d778f71  gcc/te
*** 19245,19253 ****
  93bfc5990594c4c0244151f6fdc98bc7  gcc/testsuite/g++.dg/debug/dwarf2/imported-module.C
  73ac452cd11b5b9c8e3a8e8d4201a15a  gcc/testsuite/g++.dg/debug/dwarf2/inline-ns-1.C
  7dd5f228bacebc3767bc6c5f2898a4db  gcc/testsuite/g++.dg/debug/dwarf2/inline-ns-2.C
! 4374f5796e7962c0f358c029be19ca64  gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C
  426c32ddf7d9af847314e35e007c028e  gcc/testsuite/g++.dg/debug/dwarf2/inline-var-2.C
! b417a416a8a1cf833a827647470d303c  gcc/testsuite/g++.dg/debug/dwarf2/inline-var-3.C
  b35aef275e8c1cc68e99f8801dc846e4  gcc/testsuite/g++.dg/debug/dwarf2/inline1.C
  b2bca0913e4135c3359c9933520119f6  gcc/testsuite/g++.dg/debug/dwarf2/integer-typedef.C
  74923529aa2cdbd53ab1fff64ffa48b4  gcc/testsuite/g++.dg/debug/dwarf2/lambda1.C
--- 20759,20767 ----
  93bfc5990594c4c0244151f6fdc98bc7  gcc/testsuite/g++.dg/debug/dwarf2/imported-module.C
  73ac452cd11b5b9c8e3a8e8d4201a15a  gcc/testsuite/g++.dg/debug/dwarf2/inline-ns-1.C
  7dd5f228bacebc3767bc6c5f2898a4db  gcc/testsuite/g++.dg/debug/dwarf2/inline-ns-2.C
! e14654c803275edc06382ad212071dad  gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C
  426c32ddf7d9af847314e35e007c028e  gcc/testsuite/g++.dg/debug/dwarf2/inline-var-2.C
! e2a49b0719796ae893d3f81b4f22c689  gcc/testsuite/g++.dg/debug/dwarf2/inline-var-3.C
  b35aef275e8c1cc68e99f8801dc846e4  gcc/testsuite/g++.dg/debug/dwarf2/inline1.C
  b2bca0913e4135c3359c9933520119f6  gcc/testsuite/g++.dg/debug/dwarf2/integer-typedef.C
  74923529aa2cdbd53ab1fff64ffa48b4  gcc/testsuite/g++.dg/debug/dwarf2/lambda1.C
*************** c97b36f101808a4d1b88e966d08df228  gcc/te
*** 19291,19297 ****
  2c571572a5d9948808d5c737071aa994  gcc/testsuite/g++.dg/debug/dwarf2/pr80234-1.C
  faf5c36abd2cfa3ad2cff3321cf391cf  gcc/testsuite/g++.dg/debug/dwarf2/pr80234-2.C
  4ee1bfe8771af7455053744f7fbfacc8  gcc/testsuite/g++.dg/debug/dwarf2/pr85302.C
! 5de08163e6802415b19e2d6aeb632428  gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C
  2ccdefbe0960011d93e7b256421df22a  gcc/testsuite/g++.dg/debug/dwarf2/pr86456.C
  d7ed5be36e8ab58d3d73c325b6ec84ab  gcc/testsuite/g++.dg/debug/dwarf2/pr86900.C
  6bacb72669961d72ae42d4e8ef6f3235  gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C
--- 20805,20811 ----
  2c571572a5d9948808d5c737071aa994  gcc/testsuite/g++.dg/debug/dwarf2/pr80234-1.C
  faf5c36abd2cfa3ad2cff3321cf391cf  gcc/testsuite/g++.dg/debug/dwarf2/pr80234-2.C
  4ee1bfe8771af7455053744f7fbfacc8  gcc/testsuite/g++.dg/debug/dwarf2/pr85302.C
! 55c05ba87fa91d96f3105fd4979a0d4d  gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C
  2ccdefbe0960011d93e7b256421df22a  gcc/testsuite/g++.dg/debug/dwarf2/pr86456.C
  d7ed5be36e8ab58d3d73c325b6ec84ab  gcc/testsuite/g++.dg/debug/dwarf2/pr86900.C
  6bacb72669961d72ae42d4e8ef6f3235  gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C
*************** a79b4fb3cb7873c05364c263058a7f1a  gcc/te
*** 19351,19357 ****
  ddbacc1f20aaa6efbe151f3f8d8b9aa9  gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C
  1bac29a975fef390435bcddbc2f1112b  gcc/testsuite/g++.dg/debug/dwarf2/typedef6.C
  14de01102edbb95fe2d8f800da61dff8  gcc/testsuite/g++.dg/debug/dwarf2/using-enum.C
! 050ec6ec6465b7e9cd99e5aec4220034  gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C
  d11dcc4e37738beb9e8be03ce7630c35  gcc/testsuite/g++.dg/debug/enum-1.C
  ae15f5aa018a04a1250780eca928d27c  gcc/testsuite/g++.dg/debug/enum-2.C
  a0ac13a0885ee162c972f58ffbd934e7  gcc/testsuite/g++.dg/debug/localclass1.C
--- 20865,20871 ----
  ddbacc1f20aaa6efbe151f3f8d8b9aa9  gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C
  1bac29a975fef390435bcddbc2f1112b  gcc/testsuite/g++.dg/debug/dwarf2/typedef6.C
  14de01102edbb95fe2d8f800da61dff8  gcc/testsuite/g++.dg/debug/dwarf2/using-enum.C
! f05db7adbe2af31a29e7389423a06e13  gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C
  d11dcc4e37738beb9e8be03ce7630c35  gcc/testsuite/g++.dg/debug/enum-1.C
  ae15f5aa018a04a1250780eca928d27c  gcc/testsuite/g++.dg/debug/enum-2.C
  a0ac13a0885ee162c972f58ffbd934e7  gcc/testsuite/g++.dg/debug/localclass1.C
*************** f00dea52c61cb46b3702ed0755e5be94  gcc/te
*** 19432,19438 ****
  5381563d83a802d89887422d01bc17d1  gcc/testsuite/g++.dg/dfp/44473-1.C
  ca2c3afed1d1ac0b4c3f2b2b82264602  gcc/testsuite/g++.dg/dfp/44473-2.C
  694614d4f71e398dcda11523059a774e  gcc/testsuite/g++.dg/dfp/base.C
! 4d03fe3a5a9b2c66b2b03fd96e64ef6b  gcc/testsuite/g++.dg/dfp/dfp.exp
  b98372f1dd5bbd1ea23e2933d4bdf03a  gcc/testsuite/g++.dg/dfp/mangle-1.C
  c0592e7184d9390b10cd93d3b6f1f7a0  gcc/testsuite/g++.dg/dfp/mangle-2.C
  97de1869469f8592b096b761b6a2cceb  gcc/testsuite/g++.dg/dfp/mangle-3.C
--- 20946,20952 ----
  5381563d83a802d89887422d01bc17d1  gcc/testsuite/g++.dg/dfp/44473-1.C
  ca2c3afed1d1ac0b4c3f2b2b82264602  gcc/testsuite/g++.dg/dfp/44473-2.C
  694614d4f71e398dcda11523059a774e  gcc/testsuite/g++.dg/dfp/base.C
! 29e8179fb14a5b80b62aa3990ef35e38  gcc/testsuite/g++.dg/dfp/dfp.exp
  b98372f1dd5bbd1ea23e2933d4bdf03a  gcc/testsuite/g++.dg/dfp/mangle-1.C
  c0592e7184d9390b10cd93d3b6f1f7a0  gcc/testsuite/g++.dg/dfp/mangle-2.C
  97de1869469f8592b096b761b6a2cceb  gcc/testsuite/g++.dg/dfp/mangle-3.C
*************** becc0e6f064af285a504ff10eaffc525  gcc/te
*** 19443,19449 ****
  3a865b01c504023d0b90b1f055163c6a  gcc/testsuite/g++.dg/dfp/nofields.C
  919ff80bde2b401e1cf10423071bab16  gcc/testsuite/g++.dg/dfp/pr92744.C
  cd0133a632a541db051ef84d53754ac6  gcc/testsuite/g++.dg/dfp/typeid1.C
! 69cbd7b4b86323de45b6388e2fc2366b  gcc/testsuite/g++.dg/dg.exp
  acfb4c292cab52af7c96437dfeb91332  gcc/testsuite/g++.dg/diagnostic/aka1.C
  6daf9c84b004ad38b36ca9e885175631  gcc/testsuite/g++.dg/diagnostic/aka2.C
  0aacbf4bd10589d329e7f0a05be533bb  gcc/testsuite/g++.dg/diagnostic/aka3.C
--- 20957,20963 ----
  3a865b01c504023d0b90b1f055163c6a  gcc/testsuite/g++.dg/dfp/nofields.C
  919ff80bde2b401e1cf10423071bab16  gcc/testsuite/g++.dg/dfp/pr92744.C
  cd0133a632a541db051ef84d53754ac6  gcc/testsuite/g++.dg/dfp/typeid1.C
! ac1525692e246b268a3c3c5dc12f93bd  gcc/testsuite/g++.dg/dg.exp
  acfb4c292cab52af7c96437dfeb91332  gcc/testsuite/g++.dg/diagnostic/aka1.C
  6daf9c84b004ad38b36ca9e885175631  gcc/testsuite/g++.dg/diagnostic/aka2.C
  0aacbf4bd10589d329e7f0a05be533bb  gcc/testsuite/g++.dg/diagnostic/aka3.C
*************** ab1030c80f61cc9ef846e7226a802cdf  gcc/te
*** 19454,19465 ****
--- 20968,20981 ----
  56800accb3be3d330b6fc590675641ba  gcc/testsuite/g++.dg/diagnostic/alignof1.C
  e083f6b3ba321e7cdc9c8d54972f027b  gcc/testsuite/g++.dg/diagnostic/alignof2.C
  8dfa99aaf3b734e4b4a8f9dcfbed7cdd  gcc/testsuite/g++.dg/diagnostic/alignof3.C
+ eaa93030439fd11d2f5366a3e4eafa8a  gcc/testsuite/g++.dg/diagnostic/alignof4.C
  1f68f132aa0d07e47ed9cf254749fe74  gcc/testsuite/g++.dg/diagnostic/array-init1.C
  f468ff0e470b813ba90ab6f552dfbb51  gcc/testsuite/g++.dg/diagnostic/auto-storage-1.C
  d6cd69df86e5ef21af4548c3401c93ba  gcc/testsuite/g++.dg/diagnostic/auto1.C
  2782c3a1ba0fe921f95b73de11d6bf55  gcc/testsuite/g++.dg/diagnostic/bad-binary-ops.C
  a91bf5789095e7895cce3a68b00c225e  gcc/testsuite/g++.dg/diagnostic/bad-binary-ops2.C
  748783b112c42a8deeb80f2d23c3aa1f  gcc/testsuite/g++.dg/diagnostic/base-operand-non-pointer-1.C
+ 33fa854dd774d551baf3637d7d169e63  gcc/testsuite/g++.dg/diagnostic/base.C
  d7dcca6cdb24ff15a17be482e130bf4e  gcc/testsuite/g++.dg/diagnostic/bindings1.C
  424dce5e3d57a2b34afe27e7bbf2592d  gcc/testsuite/g++.dg/diagnostic/bitfld1.C
  170456ee0242a2ff4a962bc2fcf6b5b2  gcc/testsuite/g++.dg/diagnostic/bitfld2.C
*************** f9722392abd0d8da545dd7e9182420ee  gcc/te
*** 19469,19480 ****
  8dbd673d1ae2e6dd2769c63d1562817e  gcc/testsuite/g++.dg/diagnostic/conflicting-specifiers-1.C
  dc2425cff4a0be5961398d082daeeaf5  gcc/testsuite/g++.dg/diagnostic/constexpr1.C
  13461b7c9b3b8e9d46f44892e6c9d868  gcc/testsuite/g++.dg/diagnostic/constexpr2.C
  e824a88234abd039ffea31d13a8e9e42  gcc/testsuite/g++.dg/diagnostic/delete1.C
  4a4ed8a805a81f8726e0ba889c68ff19  gcc/testsuite/g++.dg/diagnostic/disable.C
  526efa2a8771e0409f39701dd3fc5953  gcc/testsuite/g++.dg/diagnostic/duplicate1.C
  c3989c492c520c5e5c36e77898e2bd15  gcc/testsuite/g++.dg/diagnostic/enum1.C
  3fd7c0c4c80c4df54c4f6b4749e1ff43  gcc/testsuite/g++.dg/diagnostic/enum2.C
! 46591e6f7f22baee5df37b1eb1e116e5  gcc/testsuite/g++.dg/diagnostic/enum3.C
  3127905a449847bc27a84d6b88588e2a  gcc/testsuite/g++.dg/diagnostic/expr1.C
  4d21f6027d297038928184dbbcd7b6f3  gcc/testsuite/g++.dg/diagnostic/extern-initialized.C
  dd6972e7b92113e6456388c099d1d0fc  gcc/testsuite/g++.dg/diagnostic/friend1.C
--- 20985,20999 ----
  8dbd673d1ae2e6dd2769c63d1562817e  gcc/testsuite/g++.dg/diagnostic/conflicting-specifiers-1.C
  dc2425cff4a0be5961398d082daeeaf5  gcc/testsuite/g++.dg/diagnostic/constexpr1.C
  13461b7c9b3b8e9d46f44892e6c9d868  gcc/testsuite/g++.dg/diagnostic/constexpr2.C
+ 730f0d5e9b52ad736c8f168f3c6958ba  gcc/testsuite/g++.dg/diagnostic/constexpr3.C
+ 5f5c4576dd5f9feb1898ccabe6a8ee2b  gcc/testsuite/g++.dg/diagnostic/constexpr4.C
  e824a88234abd039ffea31d13a8e9e42  gcc/testsuite/g++.dg/diagnostic/delete1.C
  4a4ed8a805a81f8726e0ba889c68ff19  gcc/testsuite/g++.dg/diagnostic/disable.C
  526efa2a8771e0409f39701dd3fc5953  gcc/testsuite/g++.dg/diagnostic/duplicate1.C
  c3989c492c520c5e5c36e77898e2bd15  gcc/testsuite/g++.dg/diagnostic/enum1.C
  3fd7c0c4c80c4df54c4f6b4749e1ff43  gcc/testsuite/g++.dg/diagnostic/enum2.C
! 9d63b247573d69e756be213ea9a4413e  gcc/testsuite/g++.dg/diagnostic/enum3.C
! 24cfdb080e913a2c8a75a3cf154f02e5  gcc/testsuite/g++.dg/diagnostic/explicit.C
  3127905a449847bc27a84d6b88588e2a  gcc/testsuite/g++.dg/diagnostic/expr1.C
  4d21f6027d297038928184dbbcd7b6f3  gcc/testsuite/g++.dg/diagnostic/extern-initialized.C
  dd6972e7b92113e6456388c099d1d0fc  gcc/testsuite/g++.dg/diagnostic/friend1.C
*************** f75c82dfbdf0eea67c71d62ca274e22b  gcc/te
*** 19497,19510 ****
  4656c9afc261871baeb12bca5d22f022  gcc/testsuite/g++.dg/diagnostic/member-fn-1.C
  f3b416e81c428ee9582715ac61d2b3d7  gcc/testsuite/g++.dg/diagnostic/method1.C
  67ae67c90098a1f9b487a08f6117d69a  gcc/testsuite/g++.dg/diagnostic/missing-default-args.C
  298c689626ea55a13cf693bf016c5aa9  gcc/testsuite/g++.dg/diagnostic/missing-typename.C
  a57099362f24a92fdb8ee593039405ff  gcc/testsuite/g++.dg/diagnostic/nested-name-1.C
  9d7674eed83757573728bbef236ded56  gcc/testsuite/g++.dg/diagnostic/no-type-1.C
  73dad116eb74143834495f4a629e6bd2  gcc/testsuite/g++.dg/diagnostic/no-type-2.C
! 9263f333c38478346aa5e13a0c8459dc  gcc/testsuite/g++.dg/diagnostic/not-a-function-template-1.C
  007925d2676b7700dad8049631aae066  gcc/testsuite/g++.dg/diagnostic/nullptr.C
  7c189158703237d2d0c14e780590b5e1  gcc/testsuite/g++.dg/diagnostic/out-of-class-redeclaration.C
! 207e83e3375d72608a09172b9c8521ae  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C
  bd4b7e0e3c910f4e6940a6a7cca5b15b  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-3.C
  fdc6714748f5715201fad71a1c77a9eb  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch.C
  87d8d501c7c4afd85a94fca95720d273  gcc/testsuite/g++.dg/diagnostic/parm1.C
--- 21016,21030 ----
  4656c9afc261871baeb12bca5d22f022  gcc/testsuite/g++.dg/diagnostic/member-fn-1.C
  f3b416e81c428ee9582715ac61d2b3d7  gcc/testsuite/g++.dg/diagnostic/method1.C
  67ae67c90098a1f9b487a08f6117d69a  gcc/testsuite/g++.dg/diagnostic/missing-default-args.C
+ 71ffe26977e72a4809fd6c57ef40164e  gcc/testsuite/g++.dg/diagnostic/missing-header-pr110164.C
  298c689626ea55a13cf693bf016c5aa9  gcc/testsuite/g++.dg/diagnostic/missing-typename.C
  a57099362f24a92fdb8ee593039405ff  gcc/testsuite/g++.dg/diagnostic/nested-name-1.C
  9d7674eed83757573728bbef236ded56  gcc/testsuite/g++.dg/diagnostic/no-type-1.C
  73dad116eb74143834495f4a629e6bd2  gcc/testsuite/g++.dg/diagnostic/no-type-2.C
! 4cb6cc53967decf171949c016ce9e191  gcc/testsuite/g++.dg/diagnostic/not-a-function-template-1.C
  007925d2676b7700dad8049631aae066  gcc/testsuite/g++.dg/diagnostic/nullptr.C
  7c189158703237d2d0c14e780590b5e1  gcc/testsuite/g++.dg/diagnostic/out-of-class-redeclaration.C
! da7cb8a98b805b1c4fd5ad900d59a8b6  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C
  bd4b7e0e3c910f4e6940a6a7cca5b15b  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-3.C
  fdc6714748f5715201fad71a1c77a9eb  gcc/testsuite/g++.dg/diagnostic/param-type-mismatch.C
  87d8d501c7c4afd85a94fca95720d273  gcc/testsuite/g++.dg/diagnostic/parm1.C
*************** bd9b993605b269dc55604ebbb4049ea6  gcc/te
*** 19543,19550 ****
  22810075c6736e148fdad4df31746f9b  gcc/testsuite/g++.dg/diagnostic/ptrtomem2.C
  31a4f22f01b86144e8c21918ef3d701b  gcc/testsuite/g++.dg/diagnostic/ptrtomem3.C
  28d2cfc7c717fd3639026aaded3ecf23  gcc/testsuite/g++.dg/diagnostic/recur-align.C
! 64e332410e9790f9161cfceca5cb41d4  gcc/testsuite/g++.dg/diagnostic/redeclaration-1.C
  b366f10d78ca81d757eef37957892a2f  gcc/testsuite/g++.dg/diagnostic/redeclaration-2.C
  bb193b240fa78433d956d57357da2858  gcc/testsuite/g++.dg/diagnostic/ref1.C
  b70b854343c43b4b0eac609476ee8fc1  gcc/testsuite/g++.dg/diagnostic/ref2.C
  fabec9ff676df7e51a4bfcca57117fa6  gcc/testsuite/g++.dg/diagnostic/ref3.C
--- 21063,21073 ----
  22810075c6736e148fdad4df31746f9b  gcc/testsuite/g++.dg/diagnostic/ptrtomem2.C
  31a4f22f01b86144e8c21918ef3d701b  gcc/testsuite/g++.dg/diagnostic/ptrtomem3.C
  28d2cfc7c717fd3639026aaded3ecf23  gcc/testsuite/g++.dg/diagnostic/recur-align.C
! 4ee1f32732b9fb22db15523307f14e5f  gcc/testsuite/g++.dg/diagnostic/redeclaration-1.C
  b366f10d78ca81d757eef37957892a2f  gcc/testsuite/g++.dg/diagnostic/redeclaration-2.C
+ 562879c7f9aec2c2d87cad70518ca469  gcc/testsuite/g++.dg/diagnostic/redeclaration-3.C
+ 6ba8ddd42905d56aa4169a6f75a2352a  gcc/testsuite/g++.dg/diagnostic/redeclaration-4.C
+ c9965ff02480558cef893efd4316a232  gcc/testsuite/g++.dg/diagnostic/redeclaration-5.C
  bb193b240fa78433d956d57357da2858  gcc/testsuite/g++.dg/diagnostic/ref1.C
  b70b854343c43b4b0eac609476ee8fc1  gcc/testsuite/g++.dg/diagnostic/ref2.C
  fabec9ff676df7e51a4bfcca57117fa6  gcc/testsuite/g++.dg/diagnostic/ref3.C
*************** d625b560f030fba41078f9ffd66c536e  gcc/te
*** 19556,19564 ****
  56b153bce2ef2880be3f566067731dc9  gcc/testsuite/g++.dg/diagnostic/static-cdtor-1.C
  b754a2ad578f67afe512ad74ff03b31f  gcc/testsuite/g++.dg/diagnostic/static_assert1.C
  a7b5530f2822e6294b3a5ff037237c86  gcc/testsuite/g++.dg/diagnostic/static_assert2.C
! fb6ded9332966bea148bf51803a3e64f  gcc/testsuite/g++.dg/diagnostic/static_assert3.C
  356d9ff5d1d1c03e2a293f19c79c3b7a  gcc/testsuite/g++.dg/diagnostic/static_assert4.C
  44f760c7519cb2fd28e1b57a7e670f75  gcc/testsuite/g++.dg/diagnostic/string-literal-concat.C
  ecb01c09c49ca387feb23a52c154974e  gcc/testsuite/g++.dg/diagnostic/thread-thread_local.C
  367b21b37820f516cd49cb6ead5340a9  gcc/testsuite/g++.dg/diagnostic/thread1.C
  7c42a2efea497582f4a4e7748bb8644a  gcc/testsuite/g++.dg/diagnostic/top-level-auto-1.C
--- 21079,21098 ----
  56b153bce2ef2880be3f566067731dc9  gcc/testsuite/g++.dg/diagnostic/static-cdtor-1.C
  b754a2ad578f67afe512ad74ff03b31f  gcc/testsuite/g++.dg/diagnostic/static_assert1.C
  a7b5530f2822e6294b3a5ff037237c86  gcc/testsuite/g++.dg/diagnostic/static_assert2.C
! 5b63c27824f84be4557ec3a9e40be0ce  gcc/testsuite/g++.dg/diagnostic/static_assert3.C
  356d9ff5d1d1c03e2a293f19c79c3b7a  gcc/testsuite/g++.dg/diagnostic/static_assert4.C
  44f760c7519cb2fd28e1b57a7e670f75  gcc/testsuite/g++.dg/diagnostic/string-literal-concat.C
+ a799316540e3d4a9d02c14db904fef43  gcc/testsuite/g++.dg/diagnostic/sys-narrow.h
+ ed408dc0316b2762f979969a2b424c7c  gcc/testsuite/g++.dg/diagnostic/sys-narrow1.C
+ c54fed4b466fac1115616a35651609af  gcc/testsuite/g++.dg/diagnostic/sys-narrow1a.C
+ 195666a3f5432f1d47811571e138a298  gcc/testsuite/g++.dg/diagnostic/sys-narrow1b.C
+ 160d9a2b96f325fc1b218c261d906d17  gcc/testsuite/g++.dg/diagnostic/sys-narrow1c.C
+ d3b859ce02607136cd9d8475e4198548  gcc/testsuite/g++.dg/diagnostic/sys-narrow1d.C
+ 9bdf085862fb1a4f5d20060d9a6ffad7  gcc/testsuite/g++.dg/diagnostic/sys-narrow1e.C
+ c146996db325eda795a7abcbf228b71b  gcc/testsuite/g++.dg/diagnostic/sys-narrow1f.C
+ f9861c9f60a0f1986782b265d464caaa  gcc/testsuite/g++.dg/diagnostic/sys-narrow1g.C
+ 562235081e287dc809b18482a53526d0  gcc/testsuite/g++.dg/diagnostic/sys-narrow1h.C
+ af891d598ae312e87304c1e37b0c8bb3  gcc/testsuite/g++.dg/diagnostic/sys-narrow1i.C
  ecb01c09c49ca387feb23a52c154974e  gcc/testsuite/g++.dg/diagnostic/thread-thread_local.C
  367b21b37820f516cd49cb6ead5340a9  gcc/testsuite/g++.dg/diagnostic/thread1.C
  7c42a2efea497582f4a4e7748bb8644a  gcc/testsuite/g++.dg/diagnostic/top-level-auto-1.C
*************** f0d5ef741ce578782aaf2af5c75f69f5  gcc/te
*** 19592,19607 ****
  88ca3337a1391414cccfd8e3f11d8b42  gcc/testsuite/g++.dg/eh/async-unwind1.C
  8c15167347f9d4cc57635e5a972d90ef  gcc/testsuite/g++.dg/eh/async-unwind2.C
  b9f64f18eca81e96e3ebd977319e1b79  gcc/testsuite/g++.dg/eh/builtin1.C
! 36d2a4018dffa2538fcc3adaa3219552  gcc/testsuite/g++.dg/eh/builtin10.C
! 41996de496969b5956e33c7f22bea6d4  gcc/testsuite/g++.dg/eh/builtin11.C
  cf2ee83accf5b8bc32948deeccb20e4c  gcc/testsuite/g++.dg/eh/builtin2.C
  5f8f99eaafc1e0281b960d70d150372a  gcc/testsuite/g++.dg/eh/builtin3.C
  d600e61118e165a8544e4a21e24396b0  gcc/testsuite/g++.dg/eh/builtin4.C
  8d7d2d4feb8a6f43520598c57e896c33  gcc/testsuite/g++.dg/eh/builtin5.C
! 02df52a3c0bfbf035a812fe8fc80e5f3  gcc/testsuite/g++.dg/eh/builtin6.C
! a72a33cd27761d11f89064103a75cc91  gcc/testsuite/g++.dg/eh/builtin7.C
  7e4b9e4543f0a98b8d1468a4cb10b99d  gcc/testsuite/g++.dg/eh/builtin8.C
! fe786dbaa60a08d6ef8cf17a5ccae1da  gcc/testsuite/g++.dg/eh/builtin9.C
  98cf19968cec5fc832747640edb98eee  gcc/testsuite/g++.dg/eh/cast1.C
  396745d0c48e93d18fd067292d72181d  gcc/testsuite/g++.dg/eh/catch1.C
  a8749c98147fe230e16618ed168a7ffd  gcc/testsuite/g++.dg/eh/catch2.C
--- 21126,21141 ----
  88ca3337a1391414cccfd8e3f11d8b42  gcc/testsuite/g++.dg/eh/async-unwind1.C
  8c15167347f9d4cc57635e5a972d90ef  gcc/testsuite/g++.dg/eh/async-unwind2.C
  b9f64f18eca81e96e3ebd977319e1b79  gcc/testsuite/g++.dg/eh/builtin1.C
! 40acc8f215cdb53a3c1229a9af4caff6  gcc/testsuite/g++.dg/eh/builtin10.C
! cd6ee05a746bcd65f9f8d5ee14b496e9  gcc/testsuite/g++.dg/eh/builtin11.C
  cf2ee83accf5b8bc32948deeccb20e4c  gcc/testsuite/g++.dg/eh/builtin2.C
  5f8f99eaafc1e0281b960d70d150372a  gcc/testsuite/g++.dg/eh/builtin3.C
  d600e61118e165a8544e4a21e24396b0  gcc/testsuite/g++.dg/eh/builtin4.C
  8d7d2d4feb8a6f43520598c57e896c33  gcc/testsuite/g++.dg/eh/builtin5.C
! 50e9432c52e56d4525f54331908ee403  gcc/testsuite/g++.dg/eh/builtin6.C
! 62b9f590aabc4fc47b26566d9bf73c5f  gcc/testsuite/g++.dg/eh/builtin7.C
  7e4b9e4543f0a98b8d1468a4cb10b99d  gcc/testsuite/g++.dg/eh/builtin8.C
! c7516fc5e474bba92314482deee8a4b9  gcc/testsuite/g++.dg/eh/builtin9.C
  98cf19968cec5fc832747640edb98eee  gcc/testsuite/g++.dg/eh/cast1.C
  396745d0c48e93d18fd067292d72181d  gcc/testsuite/g++.dg/eh/catch1.C
  a8749c98147fe230e16618ed168a7ffd  gcc/testsuite/g++.dg/eh/catch2.C
*************** e917a91ae5be207defc427d0a079f7e9  gcc/te
*** 19634,19647 ****
  6d24a241b37d9461b161f8ce01317ab8  gcc/testsuite/g++.dg/eh/delayslot1.C
  8df5b68d232832afbaddc003b31e8de2  gcc/testsuite/g++.dg/eh/delegating1.C
  fd403bd2492abf66a1421658620fc19a  gcc/testsuite/g++.dg/eh/delete1.C
! 750a9d66b5df552b2a0f65a3b1bfd283  gcc/testsuite/g++.dg/eh/dfp-1.C
! 94ce7873aa47202a03f4da29b2726ccd  gcc/testsuite/g++.dg/eh/dfp-2.C
! 915323765c997eabe0b8153398f4a5d3  gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C
  576fca342f1265b23facee2429c2f6ce  gcc/testsuite/g++.dg/eh/div.C
  1521a64435be961406151b3df9665c39  gcc/testsuite/g++.dg/eh/dtor1.C
  946e2e4e3fafd42b9f9d9e2594d511ac  gcc/testsuite/g++.dg/eh/dtor2.C
  023501b088469a8d2387c36a54034beb  gcc/testsuite/g++.dg/eh/dtor3.C
! 59231dcf12c5a458a99a84f6892474ee  gcc/testsuite/g++.dg/eh/dtor4.C
  577a8bcc0bf6327d41fd9c88307c7746  gcc/testsuite/g++.dg/eh/ehopt1.C
  b0ccd0dda5f78bbdc113e7d64bcbde3c  gcc/testsuite/g++.dg/eh/elide1.C
  4a5da75795bd16f83ee0a55370fa4396  gcc/testsuite/g++.dg/eh/elide2.C
--- 21168,21181 ----
  6d24a241b37d9461b161f8ce01317ab8  gcc/testsuite/g++.dg/eh/delayslot1.C
  8df5b68d232832afbaddc003b31e8de2  gcc/testsuite/g++.dg/eh/delegating1.C
  fd403bd2492abf66a1421658620fc19a  gcc/testsuite/g++.dg/eh/delete1.C
! c4ae6fc51a8fde6837421fafd8c3e3de  gcc/testsuite/g++.dg/eh/dfp-1.C
! 0181fde59a538dc1c7e7a837ae813b61  gcc/testsuite/g++.dg/eh/dfp-2.C
! dd7376ab1f7813358d06bc48289a8e1c  gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C
  576fca342f1265b23facee2429c2f6ce  gcc/testsuite/g++.dg/eh/div.C
  1521a64435be961406151b3df9665c39  gcc/testsuite/g++.dg/eh/dtor1.C
  946e2e4e3fafd42b9f9d9e2594d511ac  gcc/testsuite/g++.dg/eh/dtor2.C
  023501b088469a8d2387c36a54034beb  gcc/testsuite/g++.dg/eh/dtor3.C
! aa45348bd5415509c3631ae2cfa5780f  gcc/testsuite/g++.dg/eh/dtor4.C
  577a8bcc0bf6327d41fd9c88307c7746  gcc/testsuite/g++.dg/eh/ehopt1.C
  b0ccd0dda5f78bbdc113e7d64bcbde3c  gcc/testsuite/g++.dg/eh/elide1.C
  4a5da75795bd16f83ee0a55370fa4396  gcc/testsuite/g++.dg/eh/elide2.C
*************** c0abaf19bc6ccea1ddcd7d45a062e6f7  gcc/te
*** 19665,19686 ****
  c8f6f4459095bf15bd799a6d96061277  gcc/testsuite/g++.dg/eh/nested-try.C
  addd3f35897f7c52014f1e26226e9219  gcc/testsuite/g++.dg/eh/new1.C
  f30e123e5206b61bc091e205033573e1  gcc/testsuite/g++.dg/eh/new2.C
  02bc77a36c6c86bb6c3fa9d05ed2ca11  gcc/testsuite/g++.dg/eh/nrv1.C
  39b82c2cef9b1e2c8c66b3ae639c6a35  gcc/testsuite/g++.dg/eh/o32-fp.C
  ee5fb539eb5e41ab9f5aa0028f011fce  gcc/testsuite/g++.dg/eh/omit-frame-pointer.C
  dfa0fe611ce9682e5de477f908c0b5c0  gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C
  b0149e5a2fbd5ae0fa0d1eb763a1f18e  gcc/testsuite/g++.dg/eh/partial1.C
  339f1ef3219aace218fecaa5c9b19c83  gcc/testsuite/g++.dg/eh/pr29166.C
  fa076f7aee99ba9138c0541bc50c2e01  gcc/testsuite/g++.dg/eh/pr38662.C
  3c71b722751263d1baefa007004a90bb  gcc/testsuite/g++.dg/eh/pr41819.C
! 95a348b65d678b6ebd4ff12262eeb554  gcc/testsuite/g++.dg/eh/pr42859.C
  6b7a6fb9b5bb6227cd79629a94634556  gcc/testsuite/g++.dg/eh/pr43365.C
  6eb9d68250f630420d0fdb982047fe17  gcc/testsuite/g++.dg/eh/pr45569.C
  d38795dc5765c85251d1b51d2837fa65  gcc/testsuite/g++.dg/eh/pr84968.C
  9623b61344d258574a3ed60670199161  gcc/testsuite/g++.dg/eh/ref-temp1.C
  edd7f2bf186873e0f253e337b7c0baa7  gcc/testsuite/g++.dg/eh/ref-temp2.C
  a9ed8d0335c982c533cb9ab886ed3a49  gcc/testsuite/g++.dg/eh/registers1.C
! b17a8e37ca2c7024b8fdc3747635ee79  gcc/testsuite/g++.dg/eh/return1.C
  10cee1522872b7a635448041c93abb77  gcc/testsuite/g++.dg/eh/scope1.C
  be5af3c4aa82f74a07dbbdc316e9c02c  gcc/testsuite/g++.dg/eh/seh-xmm-unwind.C
  25142fe6cff6b7d981b3267f13c2b8ab  gcc/testsuite/g++.dg/eh/shadow1.C
--- 21199,21224 ----
  c8f6f4459095bf15bd799a6d96061277  gcc/testsuite/g++.dg/eh/nested-try.C
  addd3f35897f7c52014f1e26226e9219  gcc/testsuite/g++.dg/eh/new1.C
  f30e123e5206b61bc091e205033573e1  gcc/testsuite/g++.dg/eh/new2.C
+ 026fc217e7b7c636fe94de98de9a0a53  gcc/testsuite/g++.dg/eh/no-exceptions1.C
  02bc77a36c6c86bb6c3fa9d05ed2ca11  gcc/testsuite/g++.dg/eh/nrv1.C
  39b82c2cef9b1e2c8c66b3ae639c6a35  gcc/testsuite/g++.dg/eh/o32-fp.C
  ee5fb539eb5e41ab9f5aa0028f011fce  gcc/testsuite/g++.dg/eh/omit-frame-pointer.C
  dfa0fe611ce9682e5de477f908c0b5c0  gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C
  b0149e5a2fbd5ae0fa0d1eb763a1f18e  gcc/testsuite/g++.dg/eh/partial1.C
+ 46bfc24a2e5089d869d2a1fe9868e445  gcc/testsuite/g++.dg/eh/pr112619.C
  339f1ef3219aace218fecaa5c9b19c83  gcc/testsuite/g++.dg/eh/pr29166.C
  fa076f7aee99ba9138c0541bc50c2e01  gcc/testsuite/g++.dg/eh/pr38662.C
  3c71b722751263d1baefa007004a90bb  gcc/testsuite/g++.dg/eh/pr41819.C
! 4631d5d6abc748783bdb0e5f9c2e827a  gcc/testsuite/g++.dg/eh/pr42859.C
  6b7a6fb9b5bb6227cd79629a94634556  gcc/testsuite/g++.dg/eh/pr43365.C
  6eb9d68250f630420d0fdb982047fe17  gcc/testsuite/g++.dg/eh/pr45569.C
  d38795dc5765c85251d1b51d2837fa65  gcc/testsuite/g++.dg/eh/pr84968.C
  9623b61344d258574a3ed60670199161  gcc/testsuite/g++.dg/eh/ref-temp1.C
  edd7f2bf186873e0f253e337b7c0baa7  gcc/testsuite/g++.dg/eh/ref-temp2.C
  a9ed8d0335c982c533cb9ab886ed3a49  gcc/testsuite/g++.dg/eh/registers1.C
! d2f32f42086463307f7e482ff09e2a6c  gcc/testsuite/g++.dg/eh/return1.C
! 195393f174c1cbb9a64af2efb4ac325f  gcc/testsuite/g++.dg/eh/return2.C
! dc439ae1040bcf10935e1aa092b15f49  gcc/testsuite/g++.dg/eh/return3.C
  10cee1522872b7a635448041c93abb77  gcc/testsuite/g++.dg/eh/scope1.C
  be5af3c4aa82f74a07dbbdc316e9c02c  gcc/testsuite/g++.dg/eh/seh-xmm-unwind.C
  25142fe6cff6b7d981b3267f13c2b8ab  gcc/testsuite/g++.dg/eh/shadow1.C
*************** f0d76e8f2c70435a893be36ce22b7b72  gcc/te
*** 19709,19717 ****
--- 21247,21257 ----
  773aa78f730481cb5e0d0287d9ef2d10  gcc/testsuite/g++.dg/eh/template1.C
  919151216cf8524a1a108c5d27a7f3d1  gcc/testsuite/g++.dg/eh/template2.C
  fd9d6b2aeb10f429dd19c2675cd7ac03  gcc/testsuite/g++.dg/eh/terminate1.C
+ cd999faba93661e09f1fe3a5853c2fa5  gcc/testsuite/g++.dg/eh/terminate2.C
  7549d75346531f9c6ff9ee0763a142b5  gcc/testsuite/g++.dg/eh/throw1.C
  7f4aab5cdb2954060fab6ebdbf157a33  gcc/testsuite/g++.dg/eh/throw2.C
  45cea983dcee48d4c249758ac270c782  gcc/testsuite/g++.dg/eh/throw3.C
+ 2d0c14860f41acf7377cc2d392a448aa  gcc/testsuite/g++.dg/eh/throw4.C
  d949616391e9201fe80327c74d26daf0  gcc/testsuite/g++.dg/eh/uncaught1.C
  0a4a6e449503f9ebd41b838472d08e86  gcc/testsuite/g++.dg/eh/uncaught2.C
  99e4a259aad973b217052ad01fc8c886  gcc/testsuite/g++.dg/eh/uncaught4.C
*************** b3b79503c02a3a734c756531304f5413  gcc/te
*** 19788,19793 ****
--- 21328,21335 ----
  fff02006ab58f5769324533d1ad8fef8  gcc/testsuite/g++.dg/expr/crash2.C
  bf843c3a893bca0f49e83ea875e4b654  gcc/testsuite/g++.dg/expr/delete1.C
  f7b74991416337c1ab48cc6b240ff8de  gcc/testsuite/g++.dg/expr/delete2.C
+ 0186a4e7d03bd49714e1f5faad1691ae  gcc/testsuite/g++.dg/expr/discarded1.C
+ baa3f545b664952b7fe386e7c9329a1a  gcc/testsuite/g++.dg/expr/discarded1a.C
  1f37b2765fe7aeb4489ba4ddbe60eb27  gcc/testsuite/g++.dg/expr/div-by-zero1.C
  9d5cf39c983c84a125f2f1b0260eaca0  gcc/testsuite/g++.dg/expr/dtor1.C
  111307fdacdc039c0f0f30a644b1949d  gcc/testsuite/g++.dg/expr/dtor2.C
*************** e0ba8ce6144da0b9ed7164d2baac70c5  gcc/te
*** 19816,19821 ****
--- 21358,21364 ----
  84e8632b0773b27644d42a37057c3e35  gcc/testsuite/g++.dg/expr/ptr-comp4.C
  d108472b30fd8a2ccb535bb57ff25d0a  gcc/testsuite/g++.dg/expr/ptrmem1.C
  fdcee3f5eda44b0547ceaf548bc1c6e9  gcc/testsuite/g++.dg/expr/ptrmem10.C
+ 9dc1e7138f4b23087287adf7b4266943  gcc/testsuite/g++.dg/expr/ptrmem11.C
  00a3281a5c60b23cc64b650f1e1bc13e  gcc/testsuite/g++.dg/expr/ptrmem4.C
  874b09468973f06e0b8fc01585a95d04  gcc/testsuite/g++.dg/expr/ptrmem5.C
  39041dce87ae406151a5cca310cd2ce4  gcc/testsuite/g++.dg/expr/ptrmem6.C
*************** cf7aa114f366559462adbb162c0a071d  gcc/te
*** 19843,19849 ****
  a2cb6541b849d8c33282f342e26447ca  gcc/testsuite/g++.dg/expr/string-1.C
  4dff56d9b4766c94b6dc6a431ad42522  gcc/testsuite/g++.dg/expr/string-2.C
  8f5d773ab2c0fb76d721a88e7936dd2a  gcc/testsuite/g++.dg/expr/unary1.C
! 75708c0b866a6b869841fd43bf4acad0  gcc/testsuite/g++.dg/expr/unary2.C
  50101473c07e54911f512727ba7f6cd4  gcc/testsuite/g++.dg/expr/unary3.C
  ffd75379d11277c314a7c44c9f8a5129  gcc/testsuite/g++.dg/expr/unary4.C
  e639e926667ce8f9dee4e94ea0269323  gcc/testsuite/g++.dg/expr/volatile1.C
--- 21386,21392 ----
  a2cb6541b849d8c33282f342e26447ca  gcc/testsuite/g++.dg/expr/string-1.C
  4dff56d9b4766c94b6dc6a431ad42522  gcc/testsuite/g++.dg/expr/string-2.C
  8f5d773ab2c0fb76d721a88e7936dd2a  gcc/testsuite/g++.dg/expr/unary1.C
! beca826b238faae981422c56ca7fbcce  gcc/testsuite/g++.dg/expr/unary2.C
  50101473c07e54911f512727ba7f6cd4  gcc/testsuite/g++.dg/expr/unary3.C
  ffd75379d11277c314a7c44c9f8a5129  gcc/testsuite/g++.dg/expr/unary4.C
  e639e926667ce8f9dee4e94ea0269323  gcc/testsuite/g++.dg/expr/volatile1.C
*************** a49bb05a98ee7ad2eb4c9f08711d3d4d  gcc/te
*** 19880,19887 ****
  d9feefe3043369b99ac1813781a3c3a3  gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
  9ad9eafed83197342bcdbe7afa3a727f  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-1.C
  888dbd717f5ba09e01e62616168dedf1  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-2.C
! 7b5b35ce8561ffdc55f1f5d56d436826  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-3.C
! 7a70ba09ee5f651917a2014b619712e1  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-4.C
  55ccc89665481af2e7e6fc67952359f9  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-5.C
  7b3de180584180ecc9cfa5543f4cb88c  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-6.C
  df15bedf7dd28c41919973661d580f91  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-7.C
--- 21423,21430 ----
  d9feefe3043369b99ac1813781a3c3a3  gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
  9ad9eafed83197342bcdbe7afa3a727f  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-1.C
  888dbd717f5ba09e01e62616168dedf1  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-2.C
! 20cf8d8234fffbde16b875fbfdbafb39  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-3.C
! f19459f696c2045d2353b73d297e226d  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-4.C
  55ccc89665481af2e7e6fc67952359f9  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-5.C
  7b3de180584180ecc9cfa5543f4cb88c  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-6.C
  df15bedf7dd28c41919973661d580f91  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-7.C
*************** e5f9fb7d1c25afe2ab0823f495d251e5  gcc/te
*** 19920,19925 ****
--- 21463,21469 ----
  7c55adab57f8900b7952c724d9d1ac37  gcc/testsuite/g++.dg/ext/atomic-2.C
  08df1b213d9eeb12775360e53eec043b  gcc/testsuite/g++.dg/ext/atomic-3.C
  3bd94d186fb606881384da59e8f70e70  gcc/testsuite/g++.dg/ext/atomic-4.C
+ 83edbe71aea4391de3d9e0a6b5c5ed65  gcc/testsuite/g++.dg/ext/atomic-5.C
  1950649c8f857d169571920a062b9b44  gcc/testsuite/g++.dg/ext/attr-access-2.C
  668952a04b6886a4c1432ffb9dc255fc  gcc/testsuite/g++.dg/ext/attr-access.C
  f48f0952142f3f8ed8f9b4eb6628059f  gcc/testsuite/g++.dg/ext/attr-alias-1.C
*************** c4d592607823e7f7c77865976b6361e7  gcc/te
*** 19934,19946 ****
  f1277e5816b0e52ac85481bda88d14c3  gcc/testsuite/g++.dg/ext/attr-copy-2.C
  82a231e2eb77d00d265a0e2bba947dab  gcc/testsuite/g++.dg/ext/attr-copy.C
  ad620f3309b132f76780e1b18d9ccf44  gcc/testsuite/g++.dg/ext/attr-deprecated-1.C
! 4f52cf13191aac1dca2c63c401a89783  gcc/testsuite/g++.dg/ext/attr-deprecated-2.C
  32409e2a44b020e2c5da0de856e26ebe  gcc/testsuite/g++.dg/ext/attr-expr1.C
  aa0f4c78aad650ce464c5b577e8460de  gcc/testsuite/g++.dg/ext/attr-flatten1.C
  9ea0e23d968bad995d06b4f807a96f1d  gcc/testsuite/g++.dg/ext/attr-format-arg1.C
  1572650153b820f3c9451d6bd17e3057  gcc/testsuite/g++.dg/ext/attr-format1.C
  8fe7898f5abe9400c110a95fab49fda6  gcc/testsuite/g++.dg/ext/attr-format2.C
  69eb1d1ddd3db6af8659f02bb2bdf1d5  gcc/testsuite/g++.dg/ext/attr-format3.C
  05a897b022b2892abfd4bc74855a0921  gcc/testsuite/g++.dg/ext/attr-ifunc-1.C
  f6a0b8c7b4c6f39da51366edee2ee37f  gcc/testsuite/g++.dg/ext/attr-ifunc-2.C
  c3081546bf4a8a6d5679738f20f2e2e5  gcc/testsuite/g++.dg/ext/attr-ifunc-3.C
--- 21478,21491 ----
  f1277e5816b0e52ac85481bda88d14c3  gcc/testsuite/g++.dg/ext/attr-copy-2.C
  82a231e2eb77d00d265a0e2bba947dab  gcc/testsuite/g++.dg/ext/attr-copy.C
  ad620f3309b132f76780e1b18d9ccf44  gcc/testsuite/g++.dg/ext/attr-deprecated-1.C
! 599089c664f636e6ac20efe1cf34d031  gcc/testsuite/g++.dg/ext/attr-deprecated-2.C
  32409e2a44b020e2c5da0de856e26ebe  gcc/testsuite/g++.dg/ext/attr-expr1.C
  aa0f4c78aad650ce464c5b577e8460de  gcc/testsuite/g++.dg/ext/attr-flatten1.C
  9ea0e23d968bad995d06b4f807a96f1d  gcc/testsuite/g++.dg/ext/attr-format-arg1.C
  1572650153b820f3c9451d6bd17e3057  gcc/testsuite/g++.dg/ext/attr-format1.C
  8fe7898f5abe9400c110a95fab49fda6  gcc/testsuite/g++.dg/ext/attr-format2.C
  69eb1d1ddd3db6af8659f02bb2bdf1d5  gcc/testsuite/g++.dg/ext/attr-format3.C
+ 15f833ff6cc5435034211a38b2ea30ed  gcc/testsuite/g++.dg/ext/attr-hotness.C
  05a897b022b2892abfd4bc74855a0921  gcc/testsuite/g++.dg/ext/attr-ifunc-1.C
  f6a0b8c7b4c6f39da51366edee2ee37f  gcc/testsuite/g++.dg/ext/attr-ifunc-2.C
  c3081546bf4a8a6d5679738f20f2e2e5  gcc/testsuite/g++.dg/ext/attr-ifunc-3.C
*************** c129f1655be60b0b8f7236952528a635  gcc/te
*** 19952,19957 ****
--- 21497,21511 ----
  e3fe48ccf2f2186a6de86a682b12e6c3  gcc/testsuite/g++.dg/ext/attr-malloc-2.C
  f05c94bbaabc6b13a21ceeeed4b48220  gcc/testsuite/g++.dg/ext/attr-malloc-3.C
  a30107bfcab6efaa41ebcfe3f43992ae  gcc/testsuite/g++.dg/ext/attr-malloc.C
+ 80efd318e8102baa37c0015b6d979ce1  gcc/testsuite/g++.dg/ext/attr-no-dangling1.C
+ 2481cbf8c4293bf184b639b22d8dcf96  gcc/testsuite/g++.dg/ext/attr-no-dangling2.C
+ acc1d7954900c420763ff211709670d4  gcc/testsuite/g++.dg/ext/attr-no-dangling3.C
+ 569338dea924ce80217e1ca0e92ea57d  gcc/testsuite/g++.dg/ext/attr-no-dangling4.C
+ e8812aaadec12fdc045edfcd902e4b4d  gcc/testsuite/g++.dg/ext/attr-no-dangling5.C
+ 1e79e0293d621745dedc11c95eacd86f  gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
+ c40ff9bedf0af230b9da3c5eaa9965bd  gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
+ 33372973ef0a50cada0b36b1c8d53cd5  gcc/testsuite/g++.dg/ext/attr-no-dangling8.C
+ d4659f35e6004cd98620e8559e921a79  gcc/testsuite/g++.dg/ext/attr-no-dangling9.C
  e838465650dcaf4ebfc99419e88cbd0d  gcc/testsuite/g++.dg/ext/attr-noinline-2.C
  b37c917c3a9e6449d44ee2d37a652ed1  gcc/testsuite/g++.dg/ext/attr-noinline-3.C
  c0753527e7e02acfc0eb52c0c85b43ad  gcc/testsuite/g++.dg/ext/attr-noinline-4.C
*************** a087d8abbea086449d9ff285e2638cb8  gcc/te
*** 19967,19978 ****
--- 21521,21538 ----
  abcc4257209dae8941d67580c272bb5e  gcc/testsuite/g++.dg/ext/attr-parm-1.C
  6c46559e7142685ab641751fe1177b7e  gcc/testsuite/g++.dg/ext/attr-pure.C
  359c96c31d10d777ab488b368388f5fa  gcc/testsuite/g++.dg/ext/attr-returns-nonnull.C
+ 03d2809b8e293bd9a65a43aa70dcfc6a  gcc/testsuite/g++.dg/ext/attr-section1.C
+ 55b39379c7f0dfde6d8e7eba53de387a  gcc/testsuite/g++.dg/ext/attr-section1a.C
+ 9a3b9695b429756a6159312cf85f022b  gcc/testsuite/g++.dg/ext/attr-section2.C
+ 43c7156e8e3ee33506ea26f614b452e8  gcc/testsuite/g++.dg/ext/attr-section2a.C
+ b0d6834a7f02bec67f1d62692af5472f  gcc/testsuite/g++.dg/ext/attr-section2b.C
  dc83c0d6c6079968c8315e6161d79429  gcc/testsuite/g++.dg/ext/attr-trailing1.C
  ed7c739de707916f3c9f5cc4c86b846a  gcc/testsuite/g++.dg/ext/attr-tsafe1.C
  9a34dbee24601c3613d18b683ab0431d  gcc/testsuite/g++.dg/ext/attr-type1.C
  436654db69995e2c5c9e51a240c1fb2b  gcc/testsuite/g++.dg/ext/attr-unavailable-1.C
  363318401f6c24d1fd4eb4b1352223b5  gcc/testsuite/g++.dg/ext/attr-unavailable-10.C
  dcdd1affde3b96d5073c02e9962a3e1f  gcc/testsuite/g++.dg/ext/attr-unavailable-11.C
+ 22f074679ac3f73f79780146237e49d7  gcc/testsuite/g++.dg/ext/attr-unavailable-12.C
  edbfa498035679b0c1142cf98ca9e622  gcc/testsuite/g++.dg/ext/attr-unavailable-2.C
  4e90e81502c480379e69d6b0b0b238aa  gcc/testsuite/g++.dg/ext/attr-unavailable-3.C
  5403ddd4b93109633d19e176e484580f  gcc/testsuite/g++.dg/ext/attr-unavailable-4.C
*************** c992ba90cd524ff973d2e06226c41bfa  gcc/te
*** 20048,20053 ****
--- 21608,21614 ----
  44b909112bfd631dd20c4f45f2240f78  gcc/testsuite/g++.dg/ext/attrib65.C
  47aaf24b23d70e0a076ba11307265c60  gcc/testsuite/g++.dg/ext/attrib66.C
  3ed4e1675c864c91211151c02a6bd033  gcc/testsuite/g++.dg/ext/attrib67.C
+ 1d6aa4b155d2e2ee76db642f389b5463  gcc/testsuite/g++.dg/ext/attrib68.C
  7af1e9265de26187b4a3a3880f99ac11  gcc/testsuite/g++.dg/ext/attrib7.C
  23c4a640241391acec5a1fd2c3fa5f25  gcc/testsuite/g++.dg/ext/attrib8.C
  db629587302d47a98b453a1702e900c9  gcc/testsuite/g++.dg/ext/attrib9.C
*************** dcb61316c0f1ade91e6e2073e223bb73  gcc/te
*** 20072,20081 ****
--- 21633,21648 ----
  0bb7d7fb8e7941c2b887e97c4e4eaeee  gcc/testsuite/g++.dg/ext/bitfield7.C
  2a578b0c3d2d59e741cf5ff41b1559a2  gcc/testsuite/g++.dg/ext/bitfield8.C
  aee0568fa7f966a2398438c01e48d5d8  gcc/testsuite/g++.dg/ext/bitfield9.C
+ b5bb0332e7eaa4be8229d736ebe8683d  gcc/testsuite/g++.dg/ext/bitint1.C
+ 5b6603df8488e772f2d00f65405633fb  gcc/testsuite/g++.dg/ext/bitint2.C
+ 93208b12653ce86fd5a5837ef127d83e  gcc/testsuite/g++.dg/ext/bitint3.C
+ 8aadb16b7d953d5fa43cb4e8525aa601  gcc/testsuite/g++.dg/ext/bitint4.C
  1371f46aed56d32c7b6433596ea7eacf  gcc/testsuite/g++.dg/ext/boolcomplex-1.C
  f858ebd95b83f4b214a9ef94ced0beb5  gcc/testsuite/g++.dg/ext/builtin-arith-overflow-1.C
  85ec4b83c9e5b2bc81e40e73aa3f129b  gcc/testsuite/g++.dg/ext/builtin-arith-overflow-2.C
  fff9b32833bf9b9b7bbcc10ac630a0d9  gcc/testsuite/g++.dg/ext/builtin-bswap1.C
+ c84d1d2b7a8bfd13ce4247042ed18ed3  gcc/testsuite/g++.dg/ext/builtin-classify-type-1.C
+ 944918ff7aa65efb26413c5607760625  gcc/testsuite/g++.dg/ext/builtin-classify-type-2.C
  cb1f5787f134f3ea0a60b047b2e5da42  gcc/testsuite/g++.dg/ext/builtin-clear-padding-1.C
  e365f8ad6640a0436ca0135ba83acfe3  gcc/testsuite/g++.dg/ext/builtin-convertvector-1.C
  2c901803d894dc7b4891ab1564d0f505  gcc/testsuite/g++.dg/ext/builtin-dynamic-object-size1.C
*************** ab6acb4a7c8c1d0b3e7717da4ac42983  gcc/te
*** 20171,20176 ****
--- 21738,21744 ----
  07cb245f4432f072b7263e83c675d2de  gcc/testsuite/g++.dg/ext/complit14.C
  4840f4f429300349359b9b9555f848ea  gcc/testsuite/g++.dg/ext/complit15.C
  229c7487e934df24178b543f9306dcd6  gcc/testsuite/g++.dg/ext/complit16.C
+ 42d2b736d481837dbbc3c109a9ac9cd3  gcc/testsuite/g++.dg/ext/complit17.C
  7350965e2763a3a6e1d4346deaa1e94e  gcc/testsuite/g++.dg/ext/complit2.C
  7c0cfd2335d61954c46222aa7517e055  gcc/testsuite/g++.dg/ext/complit3.C
  f2a3354acae823d1855d3f7820f78229  gcc/testsuite/g++.dg/ext/complit4.C
*************** aedb0bd74d236b797fb016d0b7034db4  gcc/te
*** 20190,20197 ****
  6f06936a70e143d2d4010948b821e19a  gcc/testsuite/g++.dg/ext/constexpr-pr82781.C
  3f1e0d73980f7d0ad16399fb51512b7b  gcc/testsuite/g++.dg/ext/constexpr-pr93549.C
  e6a4da2462b7d9932c6f217b19f03ac9  gcc/testsuite/g++.dg/ext/constexpr-vla1.C
! ba878aa75a253b145058dbc00d19f0e0  gcc/testsuite/g++.dg/ext/constexpr-vla2.C
! f8121f8695bad95db22d9209cbbb40da  gcc/testsuite/g++.dg/ext/constexpr-vla3.C
  b1566206f932f28f1735fbaf347ef172  gcc/testsuite/g++.dg/ext/constexpr-vla4.C
  99a62b29bb81ca6e787650e40495cb03  gcc/testsuite/g++.dg/ext/constexpr-vla5.C
  10abc828e1142ff735666c5c8f9d280f  gcc/testsuite/g++.dg/ext/construct1.C
--- 21758,21765 ----
  6f06936a70e143d2d4010948b821e19a  gcc/testsuite/g++.dg/ext/constexpr-pr82781.C
  3f1e0d73980f7d0ad16399fb51512b7b  gcc/testsuite/g++.dg/ext/constexpr-pr93549.C
  e6a4da2462b7d9932c6f217b19f03ac9  gcc/testsuite/g++.dg/ext/constexpr-vla1.C
! 8ed16edd32ef904caa44351a3a7115ce  gcc/testsuite/g++.dg/ext/constexpr-vla2.C
! 3c9b97282529bfa3e65cb181d0e656fb  gcc/testsuite/g++.dg/ext/constexpr-vla3.C
  b1566206f932f28f1735fbaf347ef172  gcc/testsuite/g++.dg/ext/constexpr-vla4.C
  99a62b29bb81ca6e787650e40495cb03  gcc/testsuite/g++.dg/ext/constexpr-vla5.C
  10abc828e1142ff735666c5c8f9d280f  gcc/testsuite/g++.dg/ext/construct1.C
*************** a06d181d1f37ed4bbf17112c988f9608  gcc/te
*** 20285,20290 ****
--- 21853,21859 ----
  9e62aa095a73cd8f1f5e3c31669594cd  gcc/testsuite/g++.dg/ext/fnname3.C
  7201a84abcaa3ac89c91328b3625f57d  gcc/testsuite/g++.dg/ext/fnname4.C
  60898b718df5cec3ef7222e3b1257e0f  gcc/testsuite/g++.dg/ext/fpreg1.C
+ 698921918c46997aacc89312130201d9  gcc/testsuite/g++.dg/ext/frounding-math1.C
  653367c82c3f5a9a42dfc8ce52f23ec3  gcc/testsuite/g++.dg/ext/gnu-inline-anon-namespace.C
  3b39aa1a4010d4127a39b9443b421c4c  gcc/testsuite/g++.dg/ext/gnu-inline-class-static.C
  3e9228fd78fc3a72b584e4e2eaab7d3f  gcc/testsuite/g++.dg/ext/gnu-inline-class.C
*************** b4a8192e545a20f5b7dea0d9fb8a6f63  gcc/te
*** 20296,20302 ****
  58f8a0136cdff73766d2255387d3090e  gcc/testsuite/g++.dg/ext/gnu-inline-template-class.C
  df8bb001c84f32307c935ddafd4b28e1  gcc/testsuite/g++.dg/ext/gnu-inline-template-func.C
  adccbbb2dfe79ac5c79fd79702b4ebcb  gcc/testsuite/g++.dg/ext/goto1.C
! 0d59ccc69a828e6d6af0bf33802fe28e  gcc/testsuite/g++.dg/ext/has-builtin-1.C
  bc6cd626f7adecd0bd10f33548711cd4  gcc/testsuite/g++.dg/ext/has_nothrow_assign.C
  48dfd353846908faae48925db69aa5bd  gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C
  03de00c47fa1299568fc9448844b0a4a  gcc/testsuite/g++.dg/ext/has_nothrow_constructor-2.C
--- 21865,21873 ----
  58f8a0136cdff73766d2255387d3090e  gcc/testsuite/g++.dg/ext/gnu-inline-template-class.C
  df8bb001c84f32307c935ddafd4b28e1  gcc/testsuite/g++.dg/ext/gnu-inline-template-func.C
  adccbbb2dfe79ac5c79fd79702b4ebcb  gcc/testsuite/g++.dg/ext/goto1.C
! 8aeb07af427db57e5b18d4398d7e2afa  gcc/testsuite/g++.dg/ext/has-builtin-1.C
! 441e5aa8c33ee5eaec15ff3f27c9061f  gcc/testsuite/g++.dg/ext/has-feature.C
! 8784bd586e428a839172997bd8adf401  gcc/testsuite/g++.dg/ext/has-feature2.C
  bc6cd626f7adecd0bd10f33548711cd4  gcc/testsuite/g++.dg/ext/has_nothrow_assign.C
  48dfd353846908faae48925db69aa5bd  gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C
  03de00c47fa1299568fc9448844b0a4a  gcc/testsuite/g++.dg/ext/has_nothrow_constructor-2.C
*************** f2cf0baaaf489aa15f22210e07d052d1  gcc/te
*** 20334,20344 ****
  302484e7798b2a4053ee4acf24bcfa8e  gcc/testsuite/g++.dg/ext/int128-7.C
  8a3239fa82cd3fe31a3157e5a8f33832  gcc/testsuite/g++.dg/ext/int128-8.C
  83602db2bd9d77a181d488d81e2441e1  gcc/testsuite/g++.dg/ext/integer-pack1.C
! 4443382c2ba1abef21e5ac6b05161a19  gcc/testsuite/g++.dg/ext/integer-pack2.C
  c82a623a667acc283be2af5673150fd6  gcc/testsuite/g++.dg/ext/integer-pack3.C
  c739fd3c0527fbd970a2964c988fe2de  gcc/testsuite/g++.dg/ext/integer-pack4.C
  3ca16f51f64cd6e80befc97ce779a0a4  gcc/testsuite/g++.dg/ext/integer-pack5.C
  b71a9240c800bd7b07d3f0002412d2da  gcc/testsuite/g++.dg/ext/integer-pack6.C
  3a16bb49d1e751989bc6c5980e68cc41  gcc/testsuite/g++.dg/ext/interface1.C
  a6025f300298ca27e5d4454172592895  gcc/testsuite/g++.dg/ext/interface1.h
  0530572db926ff489aea49718a5eabe8  gcc/testsuite/g++.dg/ext/interface1a.cc
--- 21905,21917 ----
  302484e7798b2a4053ee4acf24bcfa8e  gcc/testsuite/g++.dg/ext/int128-7.C
  8a3239fa82cd3fe31a3157e5a8f33832  gcc/testsuite/g++.dg/ext/int128-8.C
  83602db2bd9d77a181d488d81e2441e1  gcc/testsuite/g++.dg/ext/integer-pack1.C
! 8f5c1db5141a89f1463c70cf8be3a47b  gcc/testsuite/g++.dg/ext/integer-pack2.C
  c82a623a667acc283be2af5673150fd6  gcc/testsuite/g++.dg/ext/integer-pack3.C
  c739fd3c0527fbd970a2964c988fe2de  gcc/testsuite/g++.dg/ext/integer-pack4.C
  3ca16f51f64cd6e80befc97ce779a0a4  gcc/testsuite/g++.dg/ext/integer-pack5.C
  b71a9240c800bd7b07d3f0002412d2da  gcc/testsuite/g++.dg/ext/integer-pack6.C
+ 4c3781b12cda7a58e8a9bc1493939451  gcc/testsuite/g++.dg/ext/integer-pack7.C
+ 9bdea6e516b98662260bd3dd81920723  gcc/testsuite/g++.dg/ext/integer-pack8.C
  3a16bb49d1e751989bc6c5980e68cc41  gcc/testsuite/g++.dg/ext/interface1.C
  a6025f300298ca27e5d4454172592895  gcc/testsuite/g++.dg/ext/interface1.h
  0530572db926ff489aea49718a5eabe8  gcc/testsuite/g++.dg/ext/interface1a.cc
*************** a74d3f8706b1ab40b2cc0403b1110c1a  gcc/te
*** 20355,20364 ****
--- 21928,21939 ----
  f695844e9b94f9b4c9ed5fec78d4bf27  gcc/testsuite/g++.dg/ext/interface4.h
  313119f0af11c076d28d9802655e555a  gcc/testsuite/g++.dg/ext/is_abstract.C
  5fced04844911c2c40c3d916be7d0d6b  gcc/testsuite/g++.dg/ext/is_aggregate.C
+ 42b2f20fa118bd60afea32bb62088b6e  gcc/testsuite/g++.dg/ext/is_array.C
  f15c22cabbedb731c2f01e04c0fc9309  gcc/testsuite/g++.dg/ext/is_base_of.C
  574b1f21a40a06a23d8cf8a0233b80ed  gcc/testsuite/g++.dg/ext/is_base_of_diagnostic.C
  4d8cb6dc054c0275b7ee9ca0c033fb93  gcc/testsuite/g++.dg/ext/is_base_of_incomplete-2.C
  692933b331734768b72041a3582162cf  gcc/testsuite/g++.dg/ext/is_base_of_incomplete.C
+ 25361578b4241ff9aeb10394648c11bc  gcc/testsuite/g++.dg/ext/is_bounded_array.C
  ed1c6dd1affd38da6f57f4982d15f9ec  gcc/testsuite/g++.dg/ext/is_class.C
  00827fb723064c984bd82e533710599b  gcc/testsuite/g++.dg/ext/is_class_error1.C
  77e0f39e9ec441d0aa71b257a152ee9f  gcc/testsuite/g++.dg/ext/is_class_error2.C
*************** b579998c84a7b6c9374dbdc81f28e45a  gcc/te
*** 20369,20407 ****
--- 21944,21994 ----
  ed04365b57dec8b58125996aefe86234  gcc/testsuite/g++.dg/ext/is_constructible4.C
  dc3385dfd74c1bf2c03d4da78571f637  gcc/testsuite/g++.dg/ext/is_constructible5.C
  9553e2b6c2e80320fe1dbc53bb218083  gcc/testsuite/g++.dg/ext/is_constructible6.C
+ c98f87283f462df05d8fe236ed206312  gcc/testsuite/g++.dg/ext/is_constructible8.C
  c9c92d18a37f4f8ede2a39a1b3ad62f6  gcc/testsuite/g++.dg/ext/is_convertible1.C
  2df355ce84091bec91470e6f49164515  gcc/testsuite/g++.dg/ext/is_convertible2.C
  5ba6edf25552f47c87c7d5735f634b3c  gcc/testsuite/g++.dg/ext/is_convertible3.C
  3a805f1dafea1ecf418ab3dbdb6af96b  gcc/testsuite/g++.dg/ext/is_convertible4.C
  986a829ca110a6da40ad4e40333b4eb5  gcc/testsuite/g++.dg/ext/is_convertible5.C
+ d74301fd930f4a488c9e941cdd242900  gcc/testsuite/g++.dg/ext/is_convertible6.C
  ebb1df191bcea60ed6342dad182b8901  gcc/testsuite/g++.dg/ext/is_deducible1.C
  deb5d60ce9955a69d116b30edd2cf933  gcc/testsuite/g++.dg/ext/is_empty.C
  51590a59aaf8715b9fe4a7ae06414cb8  gcc/testsuite/g++.dg/ext/is_empty2.C
  03f82ac5f5b864878fa0ffa4383fa338  gcc/testsuite/g++.dg/ext/is_enum.C
  9c4168f06e4b4e0721a2821a1bdd02c0  gcc/testsuite/g++.dg/ext/is_enum2.C
  37398fff65ce2d16df6f0cb340b97987  gcc/testsuite/g++.dg/ext/is_final.C
+ 3702c5ca025df0d43d103161203f0ddf  gcc/testsuite/g++.dg/ext/is_function.C
  d97310b12ece2c21881785f78f44e64a  gcc/testsuite/g++.dg/ext/is_literal_type1.C
  cce82a97f2d80557fc2ee719db6afda2  gcc/testsuite/g++.dg/ext/is_literal_type2.C
  70b8167d4c887f159d75bd15861c519b  gcc/testsuite/g++.dg/ext/is_literal_type3.C
+ dd130715e14dc2f88999e5dff9a194ed  gcc/testsuite/g++.dg/ext/is_member_function_pointer.C
+ af6486db40cc2e21e7d9af8f85f563fa  gcc/testsuite/g++.dg/ext/is_member_object_pointer.C
+ 8e373f050b2fc498d4cb80c76266f9e0  gcc/testsuite/g++.dg/ext/is_member_pointer.C
  e67120ecbad2182a8b5968b32fa2b9b2  gcc/testsuite/g++.dg/ext/is_nothrow_constructible1.C
  f21216a45d73afa0f45a28cdfc72ee5e  gcc/testsuite/g++.dg/ext/is_nothrow_constructible2.C
  87907ea2536e2aec35a04030fc8592ce  gcc/testsuite/g++.dg/ext/is_nothrow_constructible3.C
  fafacdd1be04cd54ee0db94365707bc0  gcc/testsuite/g++.dg/ext/is_nothrow_constructible4.C
  f5236918ade9df134083c1a1193f0f88  gcc/testsuite/g++.dg/ext/is_nothrow_constructible5.C
  594bc3f1122959c08f61aa87d182e406  gcc/testsuite/g++.dg/ext/is_nothrow_constructible6.C
+ da8c1bff719b38e8d615f0e7d088efa6  gcc/testsuite/g++.dg/ext/is_nothrow_constructible7.C
+ efcb41b05c0f0ea25b575136d196c65b  gcc/testsuite/g++.dg/ext/is_nothrow_constructible8.C
  b85cbea684bb347ceb84b361aaebb088  gcc/testsuite/g++.dg/ext/is_nothrow_convertible1.C
  d68d55dab0fd8c9b90c94945650d045f  gcc/testsuite/g++.dg/ext/is_nothrow_convertible2.C
  1c60e05c301e80b4bce25c52a32f41de  gcc/testsuite/g++.dg/ext/is_nothrow_convertible3.C
  eaf4aa577e3886ea0be13eb1aa62d230  gcc/testsuite/g++.dg/ext/is_nothrow_convertible4.C
+ 9c817c3bdc48e772a5151e588f6e79fb  gcc/testsuite/g++.dg/ext/is_object.C
  23bf9f19377330f98f34038ddb75c870  gcc/testsuite/g++.dg/ext/is_pod.C
  84c3a14b6222536e4f6c6bb7519b5400  gcc/testsuite/g++.dg/ext/is_pod_98.C
  f316c6cb603f1746eab7e3d67e84b5c4  gcc/testsuite/g++.dg/ext/is_pod_incomplete.C
  27bbb5a6652af10bc63d2ec1a4616b6e  gcc/testsuite/g++.dg/ext/is_polymorphic.C
+ dfb458e6ed118ab19a8a7e997bced537  gcc/testsuite/g++.dg/ext/is_reference.C
  939d00f0a292b7100c8e23ee768675e9  gcc/testsuite/g++.dg/ext/is_same.C
+ 1689a9ae855fd83e83ea228c1be1749b  gcc/testsuite/g++.dg/ext/is_scoped_enum.C
  578a4e7811cefb840ecbd9c4f1370bc8  gcc/testsuite/g++.dg/ext/is_std_layout1.C
  764f4648656c7054afda53727428cb2b  gcc/testsuite/g++.dg/ext/is_std_layout2.C
  a6f24db3bde68537e128e8560916a5b9  gcc/testsuite/g++.dg/ext/is_std_layout3.C
  2a79465429389bbd7cccca9a2d4e8ea5  gcc/testsuite/g++.dg/ext/is_std_layout4.C
+ 708ac5dad6affcf578b23a34f2c8eb93  gcc/testsuite/g++.dg/ext/is_std_layout5.C
  bac13cacbdab60cefc02ded15129f773  gcc/testsuite/g++.dg/ext/is_trivially_constructible1.C
  a9c9c773110bfd7f4dab4894b851f80d  gcc/testsuite/g++.dg/ext/is_trivially_constructible2.C
  c8b5af558a67cf874bb7bd69c49e93fb  gcc/testsuite/g++.dg/ext/is_trivially_constructible3.C
*************** db0b295df95be25a97d67c002c45679e  gcc/te
*** 20419,20424 ****
--- 22006,22013 ----
  15f88f2e3d13546e90dbf305fb553da2  gcc/testsuite/g++.dg/ext/label13.C
  6300ef311a2c956b58d4d08549489eae  gcc/testsuite/g++.dg/ext/label13a.C
  86a98cbefdcb66dd3ccb4b6645bf4cab  gcc/testsuite/g++.dg/ext/label14.C
+ fca48c12cc95f5f674e76e404251b67a  gcc/testsuite/g++.dg/ext/label15.C
+ 6c68bc7323a239fb2cb95c33c95d9d9f  gcc/testsuite/g++.dg/ext/label16.C
  93d49880cc7e06074d40ba2b4a790426  gcc/testsuite/g++.dg/ext/label2.C
  83fe2d77626fcd185f084ed649485bec  gcc/testsuite/g++.dg/ext/label3.C
  745640ccb4853caedd76af8799204a4b  gcc/testsuite/g++.dg/ext/label4.C
*************** bcf9b6873e48870b8f6014b5da708cd3  gcc/te
*** 20452,20457 ****
--- 22041,22048 ----
  0932ad5ce3e0455a61e5bd35e5ed587a  gcc/testsuite/g++.dg/ext/packed9.C
  56ee2161181409d6d60df10ccf5ac2b0  gcc/testsuite/g++.dg/ext/pr106877.C
  8ba16c3bb73d54b943f0a1e2cd811ac3  gcc/testsuite/g++.dg/ext/pr109177.C
+ 8178424c28bf310e39866a3bc22ccb00  gcc/testsuite/g++.dg/ext/pr114409-2.C
+ a17829a2880dfc08bbe88a800e8da670  gcc/testsuite/g++.dg/ext/pr114691.C
  210171cdbd9571de1bfd894e6c809efa  gcc/testsuite/g++.dg/ext/pr17577.C
  d017f3273bbed79c882146d070c763a4  gcc/testsuite/g++.dg/ext/pr17577.h
  eb1830f7b92ca604956f6b57b3a6d3f4  gcc/testsuite/g++.dg/ext/pr27019.C
*************** bce41fa775f2176271e957652f0edf69  gcc/te
*** 20495,20500 ****
--- 22086,22092 ----
  95d105b089ea555ab8e1c29ce9e1f667  gcc/testsuite/g++.dg/ext/reference_converts_from_temporary1.C
  01789f18bffef5bcf261727b48fc9bb5  gcc/testsuite/g++.dg/ext/remove_cv.C
  9d092236f17635c7e6d0abe935fd348f  gcc/testsuite/g++.dg/ext/remove_cvref.C
+ d0de22f2593644ea8f7ed58556b0270f  gcc/testsuite/g++.dg/ext/remove_pointer.C
  fc020aa10be075961f1ed9cc43fa5790  gcc/testsuite/g++.dg/ext/remove_reference.C
  171b60b2dd599842569025ee22f7703a  gcc/testsuite/g++.dg/ext/restrict1.C
  fe03ec285c8ec98dfe8ce3f8fe391cf8  gcc/testsuite/g++.dg/ext/restrict2.C
*************** e6bc1a09cf3c9d838c7ad4575c3d8740  gcc/te
*** 20520,20526 ****
  4d09ca3f75571211a1af55640503553d  gcc/testsuite/g++.dg/ext/stmtexpr22.C
  08aa6b7926e8190151b8337923a5ece9  gcc/testsuite/g++.dg/ext/stmtexpr23.C
  50b71ec6184b5e6c3e905f0038802697  gcc/testsuite/g++.dg/ext/stmtexpr24.C
! 12bbac313feac912640ed58cf1f7cdd2  gcc/testsuite/g++.dg/ext/stmtexpr25.C
  15be25b1a07f94e4d65103bfb52d6406  gcc/testsuite/g++.dg/ext/stmtexpr3.C
  7f4e8ebedb382ebc1349d7067b034121  gcc/testsuite/g++.dg/ext/stmtexpr4.C
  a6cc01634e0bd707301c873f2d35f891  gcc/testsuite/g++.dg/ext/stmtexpr5.C
--- 22112,22118 ----
  4d09ca3f75571211a1af55640503553d  gcc/testsuite/g++.dg/ext/stmtexpr22.C
  08aa6b7926e8190151b8337923a5ece9  gcc/testsuite/g++.dg/ext/stmtexpr23.C
  50b71ec6184b5e6c3e905f0038802697  gcc/testsuite/g++.dg/ext/stmtexpr24.C
! f203a0d905b5296ac5492e53575e933d  gcc/testsuite/g++.dg/ext/stmtexpr25.C
  15be25b1a07f94e4d65103bfb52d6406  gcc/testsuite/g++.dg/ext/stmtexpr3.C
  7f4e8ebedb382ebc1349d7067b034121  gcc/testsuite/g++.dg/ext/stmtexpr4.C
  a6cc01634e0bd707301c873f2d35f891  gcc/testsuite/g++.dg/ext/stmtexpr5.C
*************** bcdc198bba142d390818f427b8129565  gcc/te
*** 20550,20555 ****
--- 22142,22151 ----
  6ff796acf64e692b00f5a28e734a6328  gcc/testsuite/g++.dg/ext/tmplattr9.C
  5c82bcad933c856bb7bc2222cad5ff0f  gcc/testsuite/g++.dg/ext/traits1.C
  1b8acb86eb35f02c108334294530bd02  gcc/testsuite/g++.dg/ext/transparent-union.C
+ ae748e695a806a3c08cd98b80d3a6d61  gcc/testsuite/g++.dg/ext/type_pack_element1.C
+ 32fac907aa5a7898341dc6861663a59c  gcc/testsuite/g++.dg/ext/type_pack_element2.C
+ 3e2684b951b4841461fda801922db4a0  gcc/testsuite/g++.dg/ext/type_pack_element3.C
+ 3955727ba366c9c64a61b3d8fb17a9b6  gcc/testsuite/g++.dg/ext/type_pack_element4.C
  c2ab0a5977a08b46134ba61eb8b22222  gcc/testsuite/g++.dg/ext/typedef-init.C
  a55635b999e217d4900dcb3975178408  gcc/testsuite/g++.dg/ext/typename1.C
  797d2045e8822a50b44635725cab1028  gcc/testsuite/g++.dg/ext/typeof1.C
*************** d4224ad9debbb9d9c4635068b31a7415  gcc/te
*** 20581,20588 ****
  e3920251c1881f799695cd65335b3cac  gcc/testsuite/g++.dg/ext/underlying_type8.C
  7156372ea568049610a6b46322d8d564  gcc/testsuite/g++.dg/ext/underlying_type9.C
  265da9fd5c8f508dc7188b306541554d  gcc/testsuite/g++.dg/ext/unroll-1.C
! a7fce0dd60f863364affd6e56b7f245e  gcc/testsuite/g++.dg/ext/unroll-2.C
! 285baa853f6386189859dff27a9a3327  gcc/testsuite/g++.dg/ext/unroll-3.C
  cdf5946e18d62c848aa41c2fbcdc39da  gcc/testsuite/g++.dg/ext/unsigned-typedef1.C
  8e3e51531ba90a4fa918eb6f412fea72  gcc/testsuite/g++.dg/ext/unsigned-typedef2.C
  225949987017db14946d9308eb334cc7  gcc/testsuite/g++.dg/ext/unsigned-typedef3.C
--- 22177,22189 ----
  e3920251c1881f799695cd65335b3cac  gcc/testsuite/g++.dg/ext/underlying_type8.C
  7156372ea568049610a6b46322d8d564  gcc/testsuite/g++.dg/ext/underlying_type9.C
  265da9fd5c8f508dc7188b306541554d  gcc/testsuite/g++.dg/ext/unroll-1.C
! b403c119b519c9d068e2947808569925  gcc/testsuite/g++.dg/ext/unroll-2.C
! 239b9a7c29685ba9f2f3407be186f167  gcc/testsuite/g++.dg/ext/unroll-3.C
! ab2216d6624316a506938e2c237dbb08  gcc/testsuite/g++.dg/ext/unroll-4.C
! 0361a9422f3e6cc5bf6a211d126b138d  gcc/testsuite/g++.dg/ext/unroll-5.C
! d7ed7fc914ac2dac3f0523b56182a589  gcc/testsuite/g++.dg/ext/unroll-6.C
! b34db87ddfafb5be11a2573cc44ff068  gcc/testsuite/g++.dg/ext/unroll-7.C
! 2097fdd7c583fe1e0827749d1e1af29e  gcc/testsuite/g++.dg/ext/unroll-8.C
  cdf5946e18d62c848aa41c2fbcdc39da  gcc/testsuite/g++.dg/ext/unsigned-typedef1.C
  8e3e51531ba90a4fa918eb6f412fea72  gcc/testsuite/g++.dg/ext/unsigned-typedef2.C
  225949987017db14946d9308eb334cc7  gcc/testsuite/g++.dg/ext/unsigned-typedef3.C
*************** bb128ce7c4aa022f8046c469bbe3faa3  gcc/te
*** 20612,20622 ****
  6686b865a1c599be2e092145038169cf  gcc/testsuite/g++.dg/ext/utf16-1.C
  1f262acf2497c4af664d97e90a6ac7d2  gcc/testsuite/g++.dg/ext/utf16-2.C
  3d413c1a115fc49a6eed047d62327241  gcc/testsuite/g++.dg/ext/utf16-3.C
! 0a6ef4ab71807d0b2205a2066ff0aee2  gcc/testsuite/g++.dg/ext/utf16-4.C
  354a8b4e8e26ca1df2d8e1c4cd4aec1b  gcc/testsuite/g++.dg/ext/utf32-1.C
  0118e635abdac5b319fea36581048d3a  gcc/testsuite/g++.dg/ext/utf32-2.C
  5b7134f50579f9686c1ed0a58b8d936f  gcc/testsuite/g++.dg/ext/utf32-3.C
! 430f2a31c83573e8cc050fdeea00da45  gcc/testsuite/g++.dg/ext/utf32-4.C
  73cf15ff415e0f535480339569d6a68d  gcc/testsuite/g++.dg/ext/utf8-1.C
  3364a5c5f070567fdc2d0df9cd80bd73  gcc/testsuite/g++.dg/ext/utf8-2.C
  33d19c269a9e9108be7e58ebb9f5dba4  gcc/testsuite/g++.dg/ext/va-arg-pack-1.C
--- 22213,22223 ----
  6686b865a1c599be2e092145038169cf  gcc/testsuite/g++.dg/ext/utf16-1.C
  1f262acf2497c4af664d97e90a6ac7d2  gcc/testsuite/g++.dg/ext/utf16-2.C
  3d413c1a115fc49a6eed047d62327241  gcc/testsuite/g++.dg/ext/utf16-3.C
! e6fe9e203ff36698e88ccca5e8ac7546  gcc/testsuite/g++.dg/ext/utf16-4.C
  354a8b4e8e26ca1df2d8e1c4cd4aec1b  gcc/testsuite/g++.dg/ext/utf32-1.C
  0118e635abdac5b319fea36581048d3a  gcc/testsuite/g++.dg/ext/utf32-2.C
  5b7134f50579f9686c1ed0a58b8d936f  gcc/testsuite/g++.dg/ext/utf32-3.C
! 03987759d01cb5debb3e7eda81371db9  gcc/testsuite/g++.dg/ext/utf32-4.C
  73cf15ff415e0f535480339569d6a68d  gcc/testsuite/g++.dg/ext/utf8-1.C
  3364a5c5f070567fdc2d0df9cd80bd73  gcc/testsuite/g++.dg/ext/utf8-2.C
  33d19c269a9e9108be7e58ebb9f5dba4  gcc/testsuite/g++.dg/ext/va-arg-pack-1.C
*************** d35e3d499f9c61083c8cc1857f8e1c17  gcc/te
*** 20765,20771 ****
  094facd4da54e59d052fc6a3d9479d29  gcc/testsuite/g++.dg/ext/vla23.C
  320764967cdf14eb97d11fff57ae0db4  gcc/testsuite/g++.dg/ext/vla24.C
  6aaa10f349349a2417e726c48cb7e61e  gcc/testsuite/g++.dg/ext/vla3.C
! aaa77e556dd365b972bc30be4df0d443  gcc/testsuite/g++.dg/ext/vla4.C
  cd0140e3425e97d1c4b919a0ef8b54c3  gcc/testsuite/g++.dg/ext/vla5.C
  d79825729049ae3b1dcd9d8d0f86a9c1  gcc/testsuite/g++.dg/ext/vla6.C
  6ccbf45d9e21a406e0533379ab46ed68  gcc/testsuite/g++.dg/ext/vla7.C
--- 22366,22372 ----
  094facd4da54e59d052fc6a3d9479d29  gcc/testsuite/g++.dg/ext/vla23.C
  320764967cdf14eb97d11fff57ae0db4  gcc/testsuite/g++.dg/ext/vla24.C
  6aaa10f349349a2417e726c48cb7e61e  gcc/testsuite/g++.dg/ext/vla3.C
! 8c6804c31fd5e1d419a1fc7a92913eae  gcc/testsuite/g++.dg/ext/vla4.C
  cd0140e3425e97d1c4b919a0ef8b54c3  gcc/testsuite/g++.dg/ext/vla5.C
  d79825729049ae3b1dcd9d8d0f86a9c1  gcc/testsuite/g++.dg/ext/vla6.C
  6ccbf45d9e21a406e0533379ab46ed68  gcc/testsuite/g++.dg/ext/vla7.C
*************** c95c4e2bd4e437ad3ff1db17dc98ed8a  gcc/te
*** 20791,20797 ****
  be0288522b31602de2c7b3eeb2fb4b18  gcc/testsuite/g++.dg/gcov/gcov-14.C
  56dbe86604b8680b3d2c3f63fd217d0a  gcc/testsuite/g++.dg/gcov/gcov-15.C
  1a43a673011a87c94649d32b935958ea  gcc/testsuite/g++.dg/gcov/gcov-16.C
! e805ae6edf39a4a965f4aeb5e98c1ab7  gcc/testsuite/g++.dg/gcov/gcov-17.C
  76d4b63734995c717c5a329c312c8803  gcc/testsuite/g++.dg/gcov/gcov-2.C
  0e241a16c3faf2f0c387bd2978d2b824  gcc/testsuite/g++.dg/gcov/gcov-3.C
  2c83bff9a3f14aa6fc5d7755bf82c9b6  gcc/testsuite/g++.dg/gcov/gcov-3.h
--- 22392,22399 ----
  be0288522b31602de2c7b3eeb2fb4b18  gcc/testsuite/g++.dg/gcov/gcov-14.C
  56dbe86604b8680b3d2c3f63fd217d0a  gcc/testsuite/g++.dg/gcov/gcov-15.C
  1a43a673011a87c94649d32b935958ea  gcc/testsuite/g++.dg/gcov/gcov-16.C
! c47d97f360807b87a87090dcf2d42054  gcc/testsuite/g++.dg/gcov/gcov-17.C
! 55c2d3c4b619e6431a7c3f998fd62bae  gcc/testsuite/g++.dg/gcov/gcov-18.C
  76d4b63734995c717c5a329c312c8803  gcc/testsuite/g++.dg/gcov/gcov-2.C
  0e241a16c3faf2f0c387bd2978d2b824  gcc/testsuite/g++.dg/gcov/gcov-3.C
  2c83bff9a3f14aa6fc5d7755bf82c9b6  gcc/testsuite/g++.dg/gcov/gcov-3.h
*************** a7c093e32d8e0cc08e02c3253748979c  gcc/te
*** 20800,20809 ****
  0db2a2956de58970834889c74f43082d  gcc/testsuite/g++.dg/gcov/gcov-6.C
  6f3a3736784c0de448d6416b0d8f64d8  gcc/testsuite/g++.dg/gcov/gcov-7.C
  35c5d8591ad30e9b50844567554d9973  gcc/testsuite/g++.dg/gcov/gcov-8.C
! 1daf1c411209223b51591e3ac9090bfb  gcc/testsuite/g++.dg/gcov/gcov-dump-1.C
! 7def4ed5b129018a31fbca4ad8fd6300  gcc/testsuite/g++.dg/gcov/gcov-dump-2.C
  10bbabd8392ab7ee5799bc6a14018686  gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
! 0e21ec89d065c90a7ebbb65071f94fb0  gcc/testsuite/g++.dg/gcov/gcov.exp
  6a2ed5ca795d47c333efae7c155c43b1  gcc/testsuite/g++.dg/gcov/gcov.py
  28167c93ffea74cb328ff3cd087d643a  gcc/testsuite/g++.dg/gcov/gcovpart-12b.C
  4486858dfdc63ab6e7f3c42c2b6b11ed  gcc/testsuite/g++.dg/gcov/loop.C
--- 22402,22411 ----
  0db2a2956de58970834889c74f43082d  gcc/testsuite/g++.dg/gcov/gcov-6.C
  6f3a3736784c0de448d6416b0d8f64d8  gcc/testsuite/g++.dg/gcov/gcov-7.C
  35c5d8591ad30e9b50844567554d9973  gcc/testsuite/g++.dg/gcov/gcov-8.C
! e60d3e80695d06d312beddeaaaa4af1d  gcc/testsuite/g++.dg/gcov/gcov-dump-1.C
! 8d7f3725599edc040c38551cce2d1dfb  gcc/testsuite/g++.dg/gcov/gcov-dump-2.C
  10bbabd8392ab7ee5799bc6a14018686  gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
! d56a4ac600416a83b1df465cfa26fc6a  gcc/testsuite/g++.dg/gcov/gcov.exp
  6a2ed5ca795d47c333efae7c155c43b1  gcc/testsuite/g++.dg/gcov/gcov.py
  28167c93ffea74cb328ff3cd087d643a  gcc/testsuite/g++.dg/gcov/gcovpart-12b.C
  4486858dfdc63ab6e7f3c42c2b6b11ed  gcc/testsuite/g++.dg/gcov/loop.C
*************** c8c006792fd429653df69e08d74da961  gcc/te
*** 20817,20836 ****
  14809830afac2f8e87ac2dfecece2811  gcc/testsuite/g++.dg/gcov/pr97069.C
  a967f09270d7b705a4f98a125b76c7a6  gcc/testsuite/g++.dg/gcov/pr98273.C
  7ad2f2c71c908fc0a03c6dc6be0bbd06  gcc/testsuite/g++.dg/gcov/ternary.C
! 13fff407256fdeadcb3617a113957a17  gcc/testsuite/g++.dg/gcov/test-gcov-17.py
  756bdf5e4081168579b0347da701c42f  gcc/testsuite/g++.dg/gcov/test-pr98273.py
! 9aeb0b848a475cbd9cbab3bb8cf09b52  gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp
  57aec36453f242d12bf5515cb425f04e  gcc/testsuite/g++.dg/goacc/cache-1.C
  1f2e4a88f87fa010e31b6c237e00aea7  gcc/testsuite/g++.dg/goacc/cache-2.C
  7f9f08a09fc949be2045ab00795bc184  gcc/testsuite/g++.dg/goacc/cache-3-1.C
  a730ee1a3c27eea558527775d082bec6  gcc/testsuite/g++.dg/goacc/cache-3-2.C
! 820844228685ed372375612618b6a716  gcc/testsuite/g++.dg/goacc/data-1.C
  d4df15d043d8968539a88c1beeda4e7e  gcc/testsuite/g++.dg/goacc/data-clause-1.C
  866b94f28bffcdc4daadd6a07d80a096  gcc/testsuite/g++.dg/goacc/data-clause-2.C
  ab5a2e3886c2a5718ee179f9c9a446ce  gcc/testsuite/g++.dg/goacc/declare-pr94120.C
  2b70bd2b15144e92ee104c07a8e2bc13  gcc/testsuite/g++.dg/goacc/deviceptr-1.C
  50fb26ed859d201ce4b714967a5c4066  gcc/testsuite/g++.dg/goacc/firstprivate-mappings-1.C
! 88b8fdceee343986794c230676f6b881  gcc/testsuite/g++.dg/goacc/goacc.exp
  584c742e0613158e5e3d528f9ded5463  gcc/testsuite/g++.dg/goacc/mdc.C
  919ddcaeee68dd7dab5e3cf7adf25963  gcc/testsuite/g++.dg/goacc/member-array-acc.C
  d597d4e7ee031afa50fadecd64ddac77  gcc/testsuite/g++.dg/goacc/pr101759.C
--- 22419,22438 ----
  14809830afac2f8e87ac2dfecece2811  gcc/testsuite/g++.dg/gcov/pr97069.C
  a967f09270d7b705a4f98a125b76c7a6  gcc/testsuite/g++.dg/gcov/pr98273.C
  7ad2f2c71c908fc0a03c6dc6be0bbd06  gcc/testsuite/g++.dg/gcov/ternary.C
! d1af8bc5c6a98042b0799693ddd97d27  gcc/testsuite/g++.dg/gcov/test-gcov-17.py
  756bdf5e4081168579b0347da701c42f  gcc/testsuite/g++.dg/gcov/test-pr98273.py
! 3299805de7b8c62cbc3a4d07e8b6a017  gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp
  57aec36453f242d12bf5515cb425f04e  gcc/testsuite/g++.dg/goacc/cache-1.C
  1f2e4a88f87fa010e31b6c237e00aea7  gcc/testsuite/g++.dg/goacc/cache-2.C
  7f9f08a09fc949be2045ab00795bc184  gcc/testsuite/g++.dg/goacc/cache-3-1.C
  a730ee1a3c27eea558527775d082bec6  gcc/testsuite/g++.dg/goacc/cache-3-2.C
! 04148aa53bf7fbcace7f876837002d79  gcc/testsuite/g++.dg/goacc/data-1.C
  d4df15d043d8968539a88c1beeda4e7e  gcc/testsuite/g++.dg/goacc/data-clause-1.C
  866b94f28bffcdc4daadd6a07d80a096  gcc/testsuite/g++.dg/goacc/data-clause-2.C
  ab5a2e3886c2a5718ee179f9c9a446ce  gcc/testsuite/g++.dg/goacc/declare-pr94120.C
  2b70bd2b15144e92ee104c07a8e2bc13  gcc/testsuite/g++.dg/goacc/deviceptr-1.C
  50fb26ed859d201ce4b714967a5c4066  gcc/testsuite/g++.dg/goacc/firstprivate-mappings-1.C
! 8c6077a2523125036cc7e7f5396b292f  gcc/testsuite/g++.dg/goacc/goacc.exp
  584c742e0613158e5e3d528f9ded5463  gcc/testsuite/g++.dg/goacc/mdc.C
  919ddcaeee68dd7dab5e3cf7adf25963  gcc/testsuite/g++.dg/goacc/member-array-acc.C
  d597d4e7ee031afa50fadecd64ddac77  gcc/testsuite/g++.dg/goacc/pr101759.C
*************** e741249479c6c7025b48c7e503fcff98  gcc/te
*** 20847,20852 ****
--- 22449,22456 ----
  49202612ed526412e25f866f82bd0573  gcc/testsuite/g++.dg/gomp/allocate-2.C
  0c676d0276d06d9e6ec17a845969619a  gcc/testsuite/g++.dg/gomp/allocate-3.C
  88f1b88f618e371fa510de1faa5e2ba9  gcc/testsuite/g++.dg/gomp/allocate-4.C
+ a5e156d12a28581babb7f17d06d081b0  gcc/testsuite/g++.dg/gomp/array-section-1.C
+ 9dc67ccab8b4be9f97d8aa37c9f1070b  gcc/testsuite/g++.dg/gomp/array-section-2.C
  0f8c6d06e1f378355b0404338dbd037b  gcc/testsuite/g++.dg/gomp/atomic-14.C
  4c00b09b19e9a90c9f90d361477d4f07  gcc/testsuite/g++.dg/gomp/atomic-17.C
  2c0577ea8f9867c9816d031f9b0f6d9a  gcc/testsuite/g++.dg/gomp/atomic-18.C
*************** b88c4d2eb787d594ae7d4448ee809655  gcc/te
*** 20855,20862 ****
  791fe553aa8c81aef018b426f29f5e89  gcc/testsuite/g++.dg/gomp/atomic-5.C
  64f007dc7d84cb3393b19e626e175a25  gcc/testsuite/g++.dg/gomp/atomic-6.C
  17da6394b8c4cdc421956ec182499c05  gcc/testsuite/g++.dg/gomp/attrs-1.C
! 00c57f5b1b9a1b3a83ecc08459c28bb9  gcc/testsuite/g++.dg/gomp/attrs-10.C
! 6a00cf4cba9075ab202ce5a65ca3aa8b  gcc/testsuite/g++.dg/gomp/attrs-11.C
  2f120ea276638046a850ac83bd0ea37a  gcc/testsuite/g++.dg/gomp/attrs-12.C
  374abff67695b66d14322ae5a94abae0  gcc/testsuite/g++.dg/gomp/attrs-13.C
  0312393ea50f9742543a50b6b4052785  gcc/testsuite/g++.dg/gomp/attrs-14.C
--- 22459,22466 ----
  791fe553aa8c81aef018b426f29f5e89  gcc/testsuite/g++.dg/gomp/atomic-5.C
  64f007dc7d84cb3393b19e626e175a25  gcc/testsuite/g++.dg/gomp/atomic-6.C
  17da6394b8c4cdc421956ec182499c05  gcc/testsuite/g++.dg/gomp/attrs-1.C
! dced8c5f71a1723b347c22928b9d1c29  gcc/testsuite/g++.dg/gomp/attrs-10.C
! 8aef5bf895140d4ffe19d9abafdb18cb  gcc/testsuite/g++.dg/gomp/attrs-11.C
  2f120ea276638046a850ac83bd0ea37a  gcc/testsuite/g++.dg/gomp/attrs-12.C
  374abff67695b66d14322ae5a94abae0  gcc/testsuite/g++.dg/gomp/attrs-13.C
  0312393ea50f9742543a50b6b4052785  gcc/testsuite/g++.dg/gomp/attrs-14.C
*************** b88c4d2eb787d594ae7d4448ee809655  gcc/te
*** 20864,20877 ****
  ae22cf8f9031f97be08e4ee31a2b0046  gcc/testsuite/g++.dg/gomp/attrs-16.C
  02a84cd7b48b19d2f816a4673451ead5  gcc/testsuite/g++.dg/gomp/attrs-17.C
  718e92975c718d6a8df170b8f637ec0f  gcc/testsuite/g++.dg/gomp/attrs-18.C
! 498d75c91f12b54f85492ecd724222d7  gcc/testsuite/g++.dg/gomp/attrs-2.C
  afb240a82f143b0c0fd381b905ad9012  gcc/testsuite/g++.dg/gomp/attrs-3.C
  f6f7f13d6edea5043634dbe54727d513  gcc/testsuite/g++.dg/gomp/attrs-4.C
  87087766f29fa1ed6f5e1834dc53e8e6  gcc/testsuite/g++.dg/gomp/attrs-5.C
  768e4f024ce850867145580f3410ade0  gcc/testsuite/g++.dg/gomp/attrs-6.C
! f41f249db9ee61949e786f1e1854ee77  gcc/testsuite/g++.dg/gomp/attrs-7.C
  de68616288c62ad9860d6c876e1b7668  gcc/testsuite/g++.dg/gomp/attrs-8.C
  5789aa804503a25767f6b8f6508f55b9  gcc/testsuite/g++.dg/gomp/attrs-9.C
  28210efb6de9f161ddfddd705210bc01  gcc/testsuite/g++.dg/gomp/barrier-1.C
  4c453c9ea0f47e5cb5f0c015b01aa7c9  gcc/testsuite/g++.dg/gomp/barrier-2.C
  418aec9a82d0d6ecba7659cc2cbb6dfa  gcc/testsuite/g++.dg/gomp/block-0.C
--- 22468,22500 ----
  ae22cf8f9031f97be08e4ee31a2b0046  gcc/testsuite/g++.dg/gomp/attrs-16.C
  02a84cd7b48b19d2f816a4673451ead5  gcc/testsuite/g++.dg/gomp/attrs-17.C
  718e92975c718d6a8df170b8f637ec0f  gcc/testsuite/g++.dg/gomp/attrs-18.C
! 0f0e46efcf61bdd2e85191afc575f78c  gcc/testsuite/g++.dg/gomp/attrs-19.C
! d10183d866c921ee1102edf9ffd437b0  gcc/testsuite/g++.dg/gomp/attrs-2.C
! 965283315c2f10741b7faeb5a0a8aaaf  gcc/testsuite/g++.dg/gomp/attrs-20.C
! 216c00f775326d2b972b2fba2e4f78bf  gcc/testsuite/g++.dg/gomp/attrs-21.C
  afb240a82f143b0c0fd381b905ad9012  gcc/testsuite/g++.dg/gomp/attrs-3.C
  f6f7f13d6edea5043634dbe54727d513  gcc/testsuite/g++.dg/gomp/attrs-4.C
  87087766f29fa1ed6f5e1834dc53e8e6  gcc/testsuite/g++.dg/gomp/attrs-5.C
  768e4f024ce850867145580f3410ade0  gcc/testsuite/g++.dg/gomp/attrs-6.C
! 7e432872df1fa2926d351f6505b74cf5  gcc/testsuite/g++.dg/gomp/attrs-7.C
  de68616288c62ad9860d6c876e1b7668  gcc/testsuite/g++.dg/gomp/attrs-8.C
  5789aa804503a25767f6b8f6508f55b9  gcc/testsuite/g++.dg/gomp/attrs-9.C
+ e55bf3f24d851b0fc8d533f3b1e6fdac  gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C
+ c934a2db60dd428eef745c2a71dc985b  gcc/testsuite/g++.dg/gomp/attrs-imperfect2.C
+ facc0feac01669ce68a86b330fcd9db6  gcc/testsuite/g++.dg/gomp/attrs-imperfect3.C
+ 0eb3667f98012146ed9ff45d1f33581e  gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C
+ 494e9cab1f4f6546b335227f5bcc57c4  gcc/testsuite/g++.dg/gomp/attrs-imperfect5.C
+ 97e643cbd5bffe9ddc22832bf00e482c  gcc/testsuite/g++.dg/gomp/bad-array-section-1.C
+ 7d9cf46bb11f676019dfa72130d61cb5  gcc/testsuite/g++.dg/gomp/bad-array-section-10.C
+ 141f7f46c8bb9daf5de01235ce3be81e  gcc/testsuite/g++.dg/gomp/bad-array-section-11.C
+ 4dc2cecce02439310ccd7543ac3f090c  gcc/testsuite/g++.dg/gomp/bad-array-section-2.C
+ 7d72726287092d4c1eb4547ccf073d88  gcc/testsuite/g++.dg/gomp/bad-array-section-3.C
+ 13e94ce72bf2108b49773435129d001d  gcc/testsuite/g++.dg/gomp/bad-array-section-4.C
+ 3456791f6a879ce26eb06b4812f26b19  gcc/testsuite/g++.dg/gomp/bad-array-section-5.C
+ cad5a0f5612b545b9cc5db417c21bdac  gcc/testsuite/g++.dg/gomp/bad-array-section-6.C
+ e69b76d336001e3bff0a54bd6620df4a  gcc/testsuite/g++.dg/gomp/bad-array-section-7.C
+ 4d0df1125375cbd2536ef7189623f71f  gcc/testsuite/g++.dg/gomp/bad-array-section-8.C
+ 1c97b709dafe2bb67c43bbef42737c74  gcc/testsuite/g++.dg/gomp/bad-array-section-9.C
  28210efb6de9f161ddfddd705210bc01  gcc/testsuite/g++.dg/gomp/barrier-1.C
  4c453c9ea0f47e5cb5f0c015b01aa7c9  gcc/testsuite/g++.dg/gomp/barrier-2.C
  418aec9a82d0d6ecba7659cc2cbb6dfa  gcc/testsuite/g++.dg/gomp/block-0.C
*************** fe6047f5ca7e2eac34792a3acc1193c2  gcc/te
*** 20897,20913 ****
  73dc4c4897395dc7c307860e0c371fe1  gcc/testsuite/g++.dg/gomp/critical-1.C
  67c49c3ef2f12e8a48820530d769fbd8  gcc/testsuite/g++.dg/gomp/critical-2.C
  d51c209a538c8e7658a85ca99d8eb17b  gcc/testsuite/g++.dg/gomp/critical-3.C
! 95693fccfc1037bad323688e488ff28a  gcc/testsuite/g++.dg/gomp/declare-simd-1.C
  6363ff64193eeb8db033202fd0e140f2  gcc/testsuite/g++.dg/gomp/declare-simd-2.C
! d10a9dad0712612df3be24ae02ed9f6a  gcc/testsuite/g++.dg/gomp/declare-simd-3.C
! 21a68409e0b8c12689fe59a9c170962c  gcc/testsuite/g++.dg/gomp/declare-simd-4.C
  d66c2d955608b28091f45938dce39989  gcc/testsuite/g++.dg/gomp/declare-simd-5.C
  5a587ac99f134c07ba81955351d61058  gcc/testsuite/g++.dg/gomp/declare-simd-6.C
! cd6bf0619b43f5bc63b2d8c757532754  gcc/testsuite/g++.dg/gomp/declare-simd-7.C
! 8f55e7f1ed9a61066b20f66975de6d1d  gcc/testsuite/g++.dg/gomp/declare-simd-8.C
  3935c27462840101e805d9321c6b8d56  gcc/testsuite/g++.dg/gomp/declare-target-1.C
  afbb2c51ce08bb72df769bd10e2948b8  gcc/testsuite/g++.dg/gomp/declare-target-2.C
! 00c210712d93b7b86bd0fd979516b3a4  gcc/testsuite/g++.dg/gomp/declare-target-3.C
  661796737d5bdc4f428545f6e32f9ac2  gcc/testsuite/g++.dg/gomp/declare-variant-1.C
  14f834df1acdef3ccbee41dbf18da40d  gcc/testsuite/g++.dg/gomp/declare-variant-2.C
  61438eb8a5d5231221ac5015a580d002  gcc/testsuite/g++.dg/gomp/declare-variant-3.C
--- 22520,22537 ----
  73dc4c4897395dc7c307860e0c371fe1  gcc/testsuite/g++.dg/gomp/critical-1.C
  67c49c3ef2f12e8a48820530d769fbd8  gcc/testsuite/g++.dg/gomp/critical-2.C
  d51c209a538c8e7658a85ca99d8eb17b  gcc/testsuite/g++.dg/gomp/critical-3.C
! c33309167faeafe5c8b09666ffbcb15d  gcc/testsuite/g++.dg/gomp/declare-simd-1.C
  6363ff64193eeb8db033202fd0e140f2  gcc/testsuite/g++.dg/gomp/declare-simd-2.C
! 28a86261a1a2a55a8d3a9adc105c5e51  gcc/testsuite/g++.dg/gomp/declare-simd-3.C
! b7abebe5118c972183723125a82bf785  gcc/testsuite/g++.dg/gomp/declare-simd-4.C
  d66c2d955608b28091f45938dce39989  gcc/testsuite/g++.dg/gomp/declare-simd-5.C
  5a587ac99f134c07ba81955351d61058  gcc/testsuite/g++.dg/gomp/declare-simd-6.C
! c79187a84f6a3652db6de401a3f919eb  gcc/testsuite/g++.dg/gomp/declare-simd-7.C
! 02bf257ed2f303e3b9c8e12dfe76b7e8  gcc/testsuite/g++.dg/gomp/declare-simd-8.C
  3935c27462840101e805d9321c6b8d56  gcc/testsuite/g++.dg/gomp/declare-target-1.C
  afbb2c51ce08bb72df769bd10e2948b8  gcc/testsuite/g++.dg/gomp/declare-target-2.C
! 9479e2595bf2b81d58fa940437142278  gcc/testsuite/g++.dg/gomp/declare-target-3.C
! 8dd796e15f21bd038ce2a7f7b865f164  gcc/testsuite/g++.dg/gomp/declare-target-indirect-1.C
  661796737d5bdc4f428545f6e32f9ac2  gcc/testsuite/g++.dg/gomp/declare-variant-1.C
  14f834df1acdef3ccbee41dbf18da40d  gcc/testsuite/g++.dg/gomp/declare-variant-2.C
  61438eb8a5d5231221ac5015a580d002  gcc/testsuite/g++.dg/gomp/declare-variant-3.C
*************** be30540ffa5cb139e4f1f5ae1c518fe1  gcc/te
*** 20950,20956 ****
  80a82ac0d4faa464e36b67b133df4697  gcc/testsuite/g++.dg/gomp/for-7.C
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/g++.dg/gomp/for-8.C
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/g++.dg/gomp/for-9.C
! 8f5d2e70c1efbfb5f42a7a2add5a5c07  gcc/testsuite/g++.dg/gomp/gomp.exp
  eb763d050fd680e1a3302fbda441475d  gcc/testsuite/g++.dg/gomp/lastprivate-1.C
  7f682781cd88149270eb73eb44f419f7  gcc/testsuite/g++.dg/gomp/linear-1.C
  2fe09fbd7df28122d262deb35faa2ae9  gcc/testsuite/g++.dg/gomp/linear-2.C
--- 22574,22582 ----
  80a82ac0d4faa464e36b67b133df4697  gcc/testsuite/g++.dg/gomp/for-7.C
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/g++.dg/gomp/for-8.C
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/g++.dg/gomp/for-9.C
! 7dc85cc76c63ff56559ee1bee2c70c5c  gcc/testsuite/g++.dg/gomp/gomp.exp
! ed8c8d7e49d44c56a03dadda1967afe4  gcc/testsuite/g++.dg/gomp/has_device_addr-non-lvalue-1.C
! ae3b38797a8d064130fa00c791c04c53  gcc/testsuite/g++.dg/gomp/ind-base-3.C
  eb763d050fd680e1a3302fbda441475d  gcc/testsuite/g++.dg/gomp/lastprivate-1.C
  7f682781cd88149270eb73eb44f419f7  gcc/testsuite/g++.dg/gomp/linear-1.C
  2fe09fbd7df28122d262deb35faa2ae9  gcc/testsuite/g++.dg/gomp/linear-2.C
*************** eabb0107af4ef893414bb3cef506ad03  gcc/te
*** 20972,20977 ****
--- 22598,22610 ----
  2a90373b9280848f40b1036e42fdd914  gcc/testsuite/g++.dg/gomp/map-1.C
  cd955c2057012ba387a6b029e23c0d53  gcc/testsuite/g++.dg/gomp/map-2.C
  9dfc87617a82c07e89fab7b80d5eaf22  gcc/testsuite/g++.dg/gomp/map-3.C
+ e5b189ee4a3bb6f9f0205103fd6fba94  gcc/testsuite/g++.dg/gomp/map-assignment-1.C
+ e12974abf2bb742407d18e9d07505400  gcc/testsuite/g++.dg/gomp/map-inc-1.C
+ 8190d5faefb46e7b70becb75fcefc77f  gcc/testsuite/g++.dg/gomp/map-lvalue-ref-1.C
+ f57437c250b2b182f84dd0d1d9d7b341  gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C
+ b23797814a760dc59cc9f9f8d2365817  gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C
+ 9f02446fbbdade1e09ad37d65edd643f  gcc/testsuite/g++.dg/gomp/map-static-cast-lvalue-1.C
+ 534443dfdc7d6b84174e8df644ea72dd  gcc/testsuite/g++.dg/gomp/map-ternary-1.C
  c0b53dcb8d3f8e31c7445987d35c43e7  gcc/testsuite/g++.dg/gomp/masked-1.C
  9dff449fe2d97c4b3ade07b982e69364  gcc/testsuite/g++.dg/gomp/master-1.C
  c6830eca56ca17885a14ffa21aeb16c4  gcc/testsuite/g++.dg/gomp/master-2.C
*************** aec913fefeac6132003dfcbe3fd035eb  gcc/te
*** 20980,20985 ****
--- 22613,22619 ----
  fc63cfdc56a33b15fa4d063e5ef655b2  gcc/testsuite/g++.dg/gomp/member-2.C
  57b9a2c844df3931aacf1c2702dc3ebe  gcc/testsuite/g++.dg/gomp/member-3.C
  135dd9ca392aa9976b7a20570053aa68  gcc/testsuite/g++.dg/gomp/member-4.C
+ cf4f908d9d115e619d064cf64d29b98c  gcc/testsuite/g++.dg/gomp/member-array-2.C
  b04637997ce93ec04bd981d2cda2f110  gcc/testsuite/g++.dg/gomp/member-array-omp.C
  40ddfb4cf46a4ea2a28ece501a9d1b2b  gcc/testsuite/g++.dg/gomp/method-1.C
  d829c2c1f9a522a97ec0370c1f67a993  gcc/testsuite/g++.dg/gomp/num-teams-1.C
*************** bd9556c57358bc478181fd7105e19b2f  gcc/te
*** 21010,21015 ****
--- 22644,22650 ----
  e1073bec80cbc48fb15e02126aebb2b0  gcc/testsuite/g++.dg/gomp/pr107558.C
  641b551c65455ce91907afab3c572a40  gcc/testsuite/g++.dg/gomp/pr108503.C
  e6195ed8251ecef3da90dc8d0e37ed89  gcc/testsuite/g++.dg/gomp/pr108607.C
+ ed2fe9b487c91fe33d6cccf142fa243c  gcc/testsuite/g++.dg/gomp/pr111274.C
  539bba6df5330b7a6631eca5665a0899  gcc/testsuite/g++.dg/gomp/pr24849.C
  78ea34fd7a1a2767f61a703271e7070a  gcc/testsuite/g++.dg/gomp/pr25874.C
  93a85a09acfdf011a86ff95fc9184a94  gcc/testsuite/g++.dg/gomp/pr25996.C
*************** a52eb0d9901d234bc49fc8ba0a8c6dc3  gcc/te
*** 21072,21078 ****
  2ebf43b280220a2aac6f38380b07a21e  gcc/testsuite/g++.dg/gomp/pr39495-1.C
  513df9b17cdd2062f962fb052cb4072e  gcc/testsuite/g++.dg/gomp/pr39495-2.C
  563250d5632f5800d6723ea9c97b5396  gcc/testsuite/g++.dg/gomp/pr41429.C
! 260a1218e23280a02ec7cf21e4dace07  gcc/testsuite/g++.dg/gomp/pr41967.C
  e8fba76fb565aa431ad94feb9ee84f58  gcc/testsuite/g++.dg/gomp/pr42234.C
  515a0f2246f128c768713726f8cad6d1  gcc/testsuite/g++.dg/gomp/pr47963.C
  2604432f7488b0db190cbd09f93a970d  gcc/testsuite/g++.dg/gomp/pr48632.C
--- 22707,22713 ----
  2ebf43b280220a2aac6f38380b07a21e  gcc/testsuite/g++.dg/gomp/pr39495-1.C
  513df9b17cdd2062f962fb052cb4072e  gcc/testsuite/g++.dg/gomp/pr39495-2.C
  563250d5632f5800d6723ea9c97b5396  gcc/testsuite/g++.dg/gomp/pr41429.C
! fc3930977aa6c5d5975915ad04a05aa3  gcc/testsuite/g++.dg/gomp/pr41967.C
  e8fba76fb565aa431ad94feb9ee84f58  gcc/testsuite/g++.dg/gomp/pr42234.C
  515a0f2246f128c768713726f8cad6d1  gcc/testsuite/g++.dg/gomp/pr47963.C
  2604432f7488b0db190cbd09f93a970d  gcc/testsuite/g++.dg/gomp/pr48632.C
*************** c8adaaa9363849ee507618478a8c6bdf  gcc/te
*** 21082,21088 ****
  07b2ae49f8ff75d1230e86dbfe3f3ef3  gcc/testsuite/g++.dg/gomp/pr51360.C
  7a2da759d2704e78a3b0d45bae8fc384  gcc/testsuite/g++.dg/gomp/pr51669.C
  5f9269c4cdd59d1b6b0306043bf1db7f  gcc/testsuite/g++.dg/gomp/pr56217.C
! 7acfcd346054818a3171197aa2de3bbd  gcc/testsuite/g++.dg/gomp/pr58567.C
  ded60cd9c13f96a2bd3542993e913567  gcc/testsuite/g++.dg/gomp/pr58702.C
  06fc3b25cfa1d042e8dab15b0a40e4f1  gcc/testsuite/g++.dg/gomp/pr58874.C
  8b31485b3d0cdf079bf96e8e8275cdd3  gcc/testsuite/g++.dg/gomp/pr59150.C
--- 22717,22723 ----
  07b2ae49f8ff75d1230e86dbfe3f3ef3  gcc/testsuite/g++.dg/gomp/pr51360.C
  7a2da759d2704e78a3b0d45bae8fc384  gcc/testsuite/g++.dg/gomp/pr51669.C
  5f9269c4cdd59d1b6b0306043bf1db7f  gcc/testsuite/g++.dg/gomp/pr56217.C
! cb30f4e38ea30b67baf2f6db2c145f2a  gcc/testsuite/g++.dg/gomp/pr58567.C
  ded60cd9c13f96a2bd3542993e913567  gcc/testsuite/g++.dg/gomp/pr58702.C
  06fc3b25cfa1d042e8dab15b0a40e4f1  gcc/testsuite/g++.dg/gomp/pr58874.C
  8b31485b3d0cdf079bf96e8e8275cdd3  gcc/testsuite/g++.dg/gomp/pr59150.C
*************** db5e63430cf735cd3170687490d57932  gcc/te
*** 21096,21102 ****
  ac4d6ed4fa7dd3fbe3400c186a7c46d8  gcc/testsuite/g++.dg/gomp/pr67504.C
  0a57c6ceaa16f0eea5d31211c4b5fcd5  gcc/testsuite/g++.dg/gomp/pr67511.C
  69587a534832b53372f1e04087c04986  gcc/testsuite/g++.dg/gomp/pr67514.C
! 55299f8d5853e349499aeed5c702a80a  gcc/testsuite/g++.dg/gomp/pr67522.C
  1c935120e3c1e7d165ea068f57519a6e  gcc/testsuite/g++.dg/gomp/pr67523.C
  1e46e97dc4fca9257e078353e30f0add  gcc/testsuite/g++.dg/gomp/pr71910.C
  79e222486ea33d87026b4ecac4bb3593  gcc/testsuite/g++.dg/gomp/pr71941.C
--- 22731,22737 ----
  ac4d6ed4fa7dd3fbe3400c186a7c46d8  gcc/testsuite/g++.dg/gomp/pr67504.C
  0a57c6ceaa16f0eea5d31211c4b5fcd5  gcc/testsuite/g++.dg/gomp/pr67511.C
  69587a534832b53372f1e04087c04986  gcc/testsuite/g++.dg/gomp/pr67514.C
! ecf41756ab01cb83fcaacdb5ebfe43a5  gcc/testsuite/g++.dg/gomp/pr67522.C
  1c935120e3c1e7d165ea068f57519a6e  gcc/testsuite/g++.dg/gomp/pr67523.C
  1e46e97dc4fca9257e078353e30f0add  gcc/testsuite/g++.dg/gomp/pr71910.C
  79e222486ea33d87026b4ecac4bb3593  gcc/testsuite/g++.dg/gomp/pr71941.C
*************** bff82192d0c205d606fc9dc3f4db8647  gcc/te
*** 21121,21127 ****
  509552ea6a4e3381b95cf49447f0217f  gcc/testsuite/g++.dg/gomp/pr84557.C
  f4af350e7c840b674d4df142d3432e80  gcc/testsuite/g++.dg/gomp/pr84791.C
  38c4006183e4ba8a8a12fb1c4a72222c  gcc/testsuite/g++.dg/gomp/pr85134.C
! 4dd432f9ef69e6c9968d841a8067ddaa  gcc/testsuite/g++.dg/gomp/pr88182.C
  3ad1ed60468ebafc7878cde2b29ceb12  gcc/testsuite/g++.dg/gomp/pr88258.C
  10f719555be7cfcb6e007e67714c6fc8  gcc/testsuite/g++.dg/gomp/pr88586.C
  905a581e462fc775cb2be6623fcacf00  gcc/testsuite/g++.dg/gomp/pr88733.C
--- 22756,22762 ----
  509552ea6a4e3381b95cf49447f0217f  gcc/testsuite/g++.dg/gomp/pr84557.C
  f4af350e7c840b674d4df142d3432e80  gcc/testsuite/g++.dg/gomp/pr84791.C
  38c4006183e4ba8a8a12fb1c4a72222c  gcc/testsuite/g++.dg/gomp/pr85134.C
! 67052c74fc96b3fba2e706e0fed37ab1  gcc/testsuite/g++.dg/gomp/pr88182.C
  3ad1ed60468ebafc7878cde2b29ceb12  gcc/testsuite/g++.dg/gomp/pr88258.C
  10f719555be7cfcb6e007e67714c6fc8  gcc/testsuite/g++.dg/gomp/pr88586.C
  905a581e462fc775cb2be6623fcacf00  gcc/testsuite/g++.dg/gomp/pr88733.C
*************** f97f1706978c263c63bb1cf7a9b02300  gcc/te
*** 21155,21164 ****
  459676a4eb36be81f7a549bd53ee45ab  gcc/testsuite/g++.dg/gomp/sink-1.C
  0412fd9af76a7ee57249908358bbd69e  gcc/testsuite/g++.dg/gomp/sink-2.C
  4700c4fd7a0a53bd064b879e10cad37f  gcc/testsuite/g++.dg/gomp/sink-3.C
  d5056d7847f2753ff16e19275fe96735  gcc/testsuite/g++.dg/gomp/target-1.C
  8c284b2db0213aba2b9a945275ec6d74  gcc/testsuite/g++.dg/gomp/target-2.C
  e9b0e4dd4a2b6b1859c38faf273fc7ed  gcc/testsuite/g++.dg/gomp/target-3.C
- b36cc6c59fa8dfeda12bb772d5cdf5e4  gcc/testsuite/g++.dg/gomp/target-lambda-1.C
  0af399d08e71042cdbc9609c343d255c  gcc/testsuite/g++.dg/gomp/target-lambda-2.C
  cb5219ee6745fc371bfbb0e484f3205e  gcc/testsuite/g++.dg/gomp/target-simd-clone-1.C
  e033ffcb572e3c374bf58a0eebd43584  gcc/testsuite/g++.dg/gomp/target-simd-clone-2.C
--- 22790,22799 ----
  459676a4eb36be81f7a549bd53ee45ab  gcc/testsuite/g++.dg/gomp/sink-1.C
  0412fd9af76a7ee57249908358bbd69e  gcc/testsuite/g++.dg/gomp/sink-2.C
  4700c4fd7a0a53bd064b879e10cad37f  gcc/testsuite/g++.dg/gomp/sink-3.C
+ 4541b6dd317dc0f0bacd5159c57858da  gcc/testsuite/g++.dg/gomp/static-component-1.C
  d5056d7847f2753ff16e19275fe96735  gcc/testsuite/g++.dg/gomp/target-1.C
  8c284b2db0213aba2b9a945275ec6d74  gcc/testsuite/g++.dg/gomp/target-2.C
  e9b0e4dd4a2b6b1859c38faf273fc7ed  gcc/testsuite/g++.dg/gomp/target-3.C
  0af399d08e71042cdbc9609c343d255c  gcc/testsuite/g++.dg/gomp/target-lambda-2.C
  cb5219ee6745fc371bfbb0e484f3205e  gcc/testsuite/g++.dg/gomp/target-simd-clone-1.C
  e033ffcb572e3c374bf58a0eebd43584  gcc/testsuite/g++.dg/gomp/target-simd-clone-2.C
*************** a37dc2aba240a63836ffe018660b5576  gcc/te
*** 21191,21196 ****
--- 22826,22833 ----
  4a4bf7fb6d4865db8fa5a4940198eab3  gcc/testsuite/g++.dg/gomp/tpl-for-1.C
  1d61bc720d46fe83c80881e1450f263f  gcc/testsuite/g++.dg/gomp/tpl-for-2.C
  b057b654090f4695277d8c1866894100  gcc/testsuite/g++.dg/gomp/tpl-for-3.C
+ e201e0a42e3414d0a84df754a2f94528  gcc/testsuite/g++.dg/gomp/tpl-imperfect-gotos.C
+ 5bd0fdf4e461573f90f966d62514479f  gcc/testsuite/g++.dg/gomp/tpl-imperfect-invalid-scope.C
  28adf9e9fa5e0143101a0890bf7bd18e  gcc/testsuite/g++.dg/gomp/tpl-masked-1.C
  357c0eef566a98817ab37efc3875adb1  gcc/testsuite/g++.dg/gomp/tpl-master-1.C
  3fe09daf99ddda4ea1fef59c61e34f47  gcc/testsuite/g++.dg/gomp/tpl-parallel-1.C
*************** a10dd83ffd8fea8213e9a3713b91277f  gcc/te
*** 21203,21209 ****
  cbb9b7e93953b72bbadec7a3dd5d1de0  gcc/testsuite/g++.dg/gomp/udr-5.C
  432e931e22639a849a7183275e9c7582  gcc/testsuite/g++.dg/gomp/udr-6.C
  f0d6ccb51f8211f0c1ac5d76df91ff55  gcc/testsuite/g++.dg/gomp/unmappable-1.C
! 5388c4004bbdfed7f7b2bf37aa28dcc1  gcc/testsuite/g++.dg/graphite/graphite.exp
  de81689ffe7845348fd7504b61336c82  gcc/testsuite/g++.dg/graphite/id-1.C
  5c6a1178f4fd620e8792644c534c29f8  gcc/testsuite/g++.dg/graphite/pr39447.C
  266d67267efa84e1ec7b55b895fd2442  gcc/testsuite/g++.dg/graphite/pr41305.C
--- 22840,22846 ----
  cbb9b7e93953b72bbadec7a3dd5d1de0  gcc/testsuite/g++.dg/gomp/udr-5.C
  432e931e22639a849a7183275e9c7582  gcc/testsuite/g++.dg/gomp/udr-6.C
  f0d6ccb51f8211f0c1ac5d76df91ff55  gcc/testsuite/g++.dg/gomp/unmappable-1.C
! 5debcf376e56fd8e6ce1155466484efc  gcc/testsuite/g++.dg/graphite/graphite.exp
  de81689ffe7845348fd7504b61336c82  gcc/testsuite/g++.dg/graphite/id-1.C
  5c6a1178f4fd620e8792644c534c29f8  gcc/testsuite/g++.dg/graphite/pr39447.C
  266d67267efa84e1ec7b55b895fd2442  gcc/testsuite/g++.dg/graphite/pr41305.C
*************** dcecc8a81073a9824c153ff083f81a4a  gcc/te
*** 21212,21218 ****
  012194f3f4441fc0dc8fb4ba94a8882b  gcc/testsuite/g++.dg/graphite/pr42681.C
  dfe63b7d52f6d97e04da25f267ac330c  gcc/testsuite/g++.dg/graphite/pr42930.C
  4cf735ba9e5b65e201dbbd4ec916b359  gcc/testsuite/g++.dg/graphite/pr43026.C
! 38e3f063d99a01f2e69d87070f805198  gcc/testsuite/g++.dg/guality/guality.exp
  2e0a2ac35d8a11426ad1e59f818a5d03  gcc/testsuite/g++.dg/guality/guality.h
  9f6bd16255ea79978f41ff1fd8300ddc  gcc/testsuite/g++.dg/guality/pr46815.C
  be57153d0806c5827262dfc205d1ddd5  gcc/testsuite/g++.dg/guality/pr55541.C
--- 22849,22855 ----
  012194f3f4441fc0dc8fb4ba94a8882b  gcc/testsuite/g++.dg/graphite/pr42681.C
  dfe63b7d52f6d97e04da25f267ac330c  gcc/testsuite/g++.dg/graphite/pr42930.C
  4cf735ba9e5b65e201dbbd4ec916b359  gcc/testsuite/g++.dg/graphite/pr43026.C
! 940a5693e15b3e164b2a48f0352f797d  gcc/testsuite/g++.dg/guality/guality.exp
  2e0a2ac35d8a11426ad1e59f818a5d03  gcc/testsuite/g++.dg/guality/guality.h
  9f6bd16255ea79978f41ff1fd8300ddc  gcc/testsuite/g++.dg/guality/pr46815.C
  be57153d0806c5827262dfc205d1ddd5  gcc/testsuite/g++.dg/guality/pr55541.C
*************** be57153d0806c5827262dfc205d1ddd5  gcc/te
*** 21222,21229 ****
  a4cc053c9d17978de8abeaa091606802  gcc/testsuite/g++.dg/guality/pr86687.C
  a0dca44ebd71904f8aeb3e055b8d94c7  gcc/testsuite/g++.dg/guality/pr93888.C
  0a776e30f0b520134b2f63d4d5e4e170  gcc/testsuite/g++.dg/guality/redeclaration1.C
  d4b1aa612cf9b628d986d19617ad2770  gcc/testsuite/g++.dg/header.C
! 191c84bf3226898d4c08ff98fad6fd9f  gcc/testsuite/g++.dg/hwasan/hwasan.exp
  da4fad928e1600184552de0820443fc5  gcc/testsuite/g++.dg/hwasan/rvo-handled.C
  176e66df5d6aa9dd76c8fe406b78a370  gcc/testsuite/g++.dg/inherit/access1.C
  06874da0f9322a8d8220986c9c167391  gcc/testsuite/g++.dg/inherit/access2.C
--- 22859,22869 ----
  a4cc053c9d17978de8abeaa091606802  gcc/testsuite/g++.dg/guality/pr86687.C
  a0dca44ebd71904f8aeb3e055b8d94c7  gcc/testsuite/g++.dg/guality/pr93888.C
  0a776e30f0b520134b2f63d4d5e4e170  gcc/testsuite/g++.dg/guality/redeclaration1.C
+ b86ad3775871c742d34f5c09175822b1  gcc/testsuite/g++.dg/harden-cfr-throw-always-O0.C
+ 64b4188a8fadfd37f8f555f77b722749  gcc/testsuite/g++.dg/harden-cfr-throw-returning-O0.C
+ b0909d978d1d7cd3ffc96fd125549ee4  gcc/testsuite/g++.dg/harden-cfr-throw-returning-enabled-O0.C
  d4b1aa612cf9b628d986d19617ad2770  gcc/testsuite/g++.dg/header.C
! 8d88b65ffe537632e403db97bf2b6015  gcc/testsuite/g++.dg/hwasan/hwasan.exp
  da4fad928e1600184552de0820443fc5  gcc/testsuite/g++.dg/hwasan/rvo-handled.C
  176e66df5d6aa9dd76c8fe406b78a370  gcc/testsuite/g++.dg/inherit/access1.C
  06874da0f9322a8d8220986c9c167391  gcc/testsuite/g++.dg/inherit/access2.C
*************** c3afb04ef418b95bf30acc9eb2a2f204  gcc/te
*** 21281,21286 ****
--- 22921,22927 ----
  7ba23e93339cef0810a212036425afb3  gcc/testsuite/g++.dg/inherit/local2.C
  b542b48ead2e56bb6bd2a0ae0f0e435f  gcc/testsuite/g++.dg/inherit/local3.C
  0538ccbaac8b13faa65f78233c14d00f  gcc/testsuite/g++.dg/inherit/multiple1.C
+ fbba2b1a80bdfc5a58768a636c9f9eaf  gcc/testsuite/g++.dg/inherit/multiple2.C
  eae99c57114c46fce93b4c56a3e8f6f8  gcc/testsuite/g++.dg/inherit/namespace-as-base.C
  929bd841afc583f6793a33214c34c08a  gcc/testsuite/g++.dg/inherit/null1.C
  47a2c8a75fa7e8806502df721a9bf6e3  gcc/testsuite/g++.dg/inherit/operator1.C
*************** ec4202dd3ca86defec9ba3dfe4bfdad4  gcc/te
*** 21411,21417 ****
  2b3f1fea4a90425e57445a215e670919  gcc/testsuite/g++.dg/init/array51.C
  9c10f5904419056635d57eef17d71f07  gcc/testsuite/g++.dg/init/array52.C
  a701d12a48efcb4c04b1d49b009e3518  gcc/testsuite/g++.dg/init/array53.C
! ff481167daacdca90c86f58cab288895  gcc/testsuite/g++.dg/init/array54.C
  7a6b8f6bf545e055ab066cc6bc5e869b  gcc/testsuite/g++.dg/init/array55.C
  e7a4920eaa905e671e74b6482c654721  gcc/testsuite/g++.dg/init/array56.C
  0f351bb088edbe4064e046219a7bb9f8  gcc/testsuite/g++.dg/init/array57.C
--- 23052,23058 ----
  2b3f1fea4a90425e57445a215e670919  gcc/testsuite/g++.dg/init/array51.C
  9c10f5904419056635d57eef17d71f07  gcc/testsuite/g++.dg/init/array52.C
  a701d12a48efcb4c04b1d49b009e3518  gcc/testsuite/g++.dg/init/array53.C
! 0d4a0941d019e3c6cbc439a320a0e1b8  gcc/testsuite/g++.dg/init/array54.C
  7a6b8f6bf545e055ab066cc6bc5e869b  gcc/testsuite/g++.dg/init/array55.C
  e7a4920eaa905e671e74b6482c654721  gcc/testsuite/g++.dg/init/array56.C
  0f351bb088edbe4064e046219a7bb9f8  gcc/testsuite/g++.dg/init/array57.C
*************** e7a4920eaa905e671e74b6482c654721  gcc/te
*** 21420,21425 ****
--- 23061,23070 ----
  12f516d0ef7088644b46185bbd83ef4d  gcc/testsuite/g++.dg/init/array6.C
  c083b6ec43687658fab80f7d11038fb8  gcc/testsuite/g++.dg/init/array60.C
  8f1cbb3eca47b9c2626ec2b222c22fd9  gcc/testsuite/g++.dg/init/array61.C
+ e95776ced975cd6f2bf17087db50aed5  gcc/testsuite/g++.dg/init/array62.C
+ a904eca6183b12fdb7eb945fc2e99935  gcc/testsuite/g++.dg/init/array63.C
+ c8dd496296b65cf2539e5cecfa7e9993  gcc/testsuite/g++.dg/init/array64.C
+ 94a7e987319d08f023e937de3e12d0d8  gcc/testsuite/g++.dg/init/array65.C
  02cf876b0b0d2594118addc046b9112a  gcc/testsuite/g++.dg/init/array7.C
  4ab5bb9dc38b78d749ba584adefbdc33  gcc/testsuite/g++.dg/init/array8.C
  b1c2a3438d19ab4734ef026ce6aba7fa  gcc/testsuite/g++.dg/init/array9.C
*************** e6c9f54295cc8729774f9ec01aacbef7  gcc/te
*** 21520,21525 ****
--- 23165,23171 ----
  a2c1054568281f6408f992ee29e5680b  gcc/testsuite/g++.dg/init/goto1.C
  7f01ee20ea74ca9306a798d035153e22  gcc/testsuite/g++.dg/init/goto2.C
  6d7a768bb0274d5012e21a5df126d539  gcc/testsuite/g++.dg/init/goto3.C
+ 94c648623c0b3e1383c53e72ae12cbfd  gcc/testsuite/g++.dg/init/goto4.C
  61b6e6a5b24a1cf0c1d82d1bad6d7600  gcc/testsuite/g++.dg/init/init-ref1.C
  c2e29d2071e0ec0563f5e74c45da4ecd  gcc/testsuite/g++.dg/init/init-ref2.C
  c9be9788e0023890c93cbcdd3e3bcbd1  gcc/testsuite/g++.dg/init/init-ref3.C
*************** ad6fea2e4a044bf966634965459eed1f  gcc/te
*** 21589,21595 ****
  ef95eb29955e54a2310be36a0828b0cb  gcc/testsuite/g++.dg/init/placement1.C
  9c2843f3878e7468a19ecfaa90c8bf5f  gcc/testsuite/g++.dg/init/placement2.C
  61be8418b83a05d14bee83b0c4c26ff7  gcc/testsuite/g++.dg/init/placement3.C
! 4e76efb079bdce4887766fb38dfed9eb  gcc/testsuite/g++.dg/init/placement4.C
  9b34969673f3f8f3d0c6ff2275299bc3  gcc/testsuite/g++.dg/init/placement5.C
  17e13ddd2f4151d2809753d82ad732b3  gcc/testsuite/g++.dg/init/pm1.C
  49c02c7ea8ff817fb850567f5e9bb9d8  gcc/testsuite/g++.dg/init/pm2.C
--- 23235,23241 ----
  ef95eb29955e54a2310be36a0828b0cb  gcc/testsuite/g++.dg/init/placement1.C
  9c2843f3878e7468a19ecfaa90c8bf5f  gcc/testsuite/g++.dg/init/placement2.C
  61be8418b83a05d14bee83b0c4c26ff7  gcc/testsuite/g++.dg/init/placement3.C
! 1de946dbb05590e22efddad631233c90  gcc/testsuite/g++.dg/init/placement4.C
  9b34969673f3f8f3d0c6ff2275299bc3  gcc/testsuite/g++.dg/init/placement5.C
  17e13ddd2f4151d2809753d82ad732b3  gcc/testsuite/g++.dg/init/pm1.C
  49c02c7ea8ff817fb850567f5e9bb9d8  gcc/testsuite/g++.dg/init/pm2.C
*************** a3ef5649648039007c89bf5cb9fe814b  gcc/te
*** 21719,21725 ****
  6dcf4578bc9c92f114c8c61ef2660571  gcc/testsuite/g++.dg/ipa/devirt-17.C
  4b23a4e562c19810f0c55f0817916933  gcc/testsuite/g++.dg/ipa/devirt-18.C
  738b02e35a19328285cb21b4ce45b66f  gcc/testsuite/g++.dg/ipa/devirt-19.C
! bf854bda030a1dd51eb37b4771a0dcb3  gcc/testsuite/g++.dg/ipa/devirt-2.C
  38cc93e595d53663e7624f3bf745ba39  gcc/testsuite/g++.dg/ipa/devirt-20.C
  67e019ff1f3d279e2c6b5f223b061ebc  gcc/testsuite/g++.dg/ipa/devirt-21.C
  ef2c20211e1e4ece4ec9e3d8ea3d585f  gcc/testsuite/g++.dg/ipa/devirt-22.C
--- 23365,23371 ----
  6dcf4578bc9c92f114c8c61ef2660571  gcc/testsuite/g++.dg/ipa/devirt-17.C
  4b23a4e562c19810f0c55f0817916933  gcc/testsuite/g++.dg/ipa/devirt-18.C
  738b02e35a19328285cb21b4ce45b66f  gcc/testsuite/g++.dg/ipa/devirt-19.C
! 8752d9303ef31d1841ca9ff432ab2041  gcc/testsuite/g++.dg/ipa/devirt-2.C
  38cc93e595d53663e7624f3bf745ba39  gcc/testsuite/g++.dg/ipa/devirt-20.C
  67e019ff1f3d279e2c6b5f223b061ebc  gcc/testsuite/g++.dg/ipa/devirt-21.C
  ef2c20211e1e4ece4ec9e3d8ea3d585f  gcc/testsuite/g++.dg/ipa/devirt-22.C
*************** d78ab57adfda4c091e90fca3cb9fff80  gcc/te
*** 21748,21754 ****
  e915138ffa27270843cb0bce3000e00b  gcc/testsuite/g++.dg/ipa/devirt-42.C
  db476e68b1dec09bf7f43dcc225319f2  gcc/testsuite/g++.dg/ipa/devirt-43.C
  d6b86291c68660fa38d0d11d0821a8bd  gcc/testsuite/g++.dg/ipa/devirt-44.C
! f47bc7a9c37789213c8eb800176ec3ff  gcc/testsuite/g++.dg/ipa/devirt-45.C
  8072c0f695bd61651ee2b95dd242d870  gcc/testsuite/g++.dg/ipa/devirt-46.C
  87e2032503d599965c24246566d7e086  gcc/testsuite/g++.dg/ipa/devirt-47.C
  10ce974026cff069141c158f78b69988  gcc/testsuite/g++.dg/ipa/devirt-48.C
--- 23394,23400 ----
  e915138ffa27270843cb0bce3000e00b  gcc/testsuite/g++.dg/ipa/devirt-42.C
  db476e68b1dec09bf7f43dcc225319f2  gcc/testsuite/g++.dg/ipa/devirt-43.C
  d6b86291c68660fa38d0d11d0821a8bd  gcc/testsuite/g++.dg/ipa/devirt-44.C
! ef9689abb991bd87caa70df090f683f6  gcc/testsuite/g++.dg/ipa/devirt-45.C
  8072c0f695bd61651ee2b95dd242d870  gcc/testsuite/g++.dg/ipa/devirt-46.C
  87e2032503d599965c24246566d7e086  gcc/testsuite/g++.dg/ipa/devirt-47.C
  10ce974026cff069141c158f78b69988  gcc/testsuite/g++.dg/ipa/devirt-48.C
*************** be088974e9a3b5a0dd791b417e8d9180  gcc/te
*** 21759,21765 ****
  a17fb1866d0a49d29c3f53828cca1b51  gcc/testsuite/g++.dg/ipa/devirt-52.C
  73c427e623b0b8f8a01f5e78210d25f7  gcc/testsuite/g++.dg/ipa/devirt-53.C
  8c636e7513618b1b3735a28c660923df  gcc/testsuite/g++.dg/ipa/devirt-6.C
! 0184c3241b7a2b5aeaa0c74da5e829d3  gcc/testsuite/g++.dg/ipa/devirt-7.C
  3252dbffb860406042680ab12bb666e8  gcc/testsuite/g++.dg/ipa/devirt-9.C
  18002cb8b6b1426795defa3122c70570  gcc/testsuite/g++.dg/ipa/devirt-c-1.C
  63d13e3c613364f3e1cff80cca6610b7  gcc/testsuite/g++.dg/ipa/devirt-c-2.C
--- 23405,23411 ----
  a17fb1866d0a49d29c3f53828cca1b51  gcc/testsuite/g++.dg/ipa/devirt-52.C
  73c427e623b0b8f8a01f5e78210d25f7  gcc/testsuite/g++.dg/ipa/devirt-53.C
  8c636e7513618b1b3735a28c660923df  gcc/testsuite/g++.dg/ipa/devirt-6.C
! c7726f9c4e3c918d385b3531106dcecf  gcc/testsuite/g++.dg/ipa/devirt-7.C
  3252dbffb860406042680ab12bb666e8  gcc/testsuite/g++.dg/ipa/devirt-9.C
  18002cb8b6b1426795defa3122c70570  gcc/testsuite/g++.dg/ipa/devirt-c-1.C
  63d13e3c613364f3e1cff80cca6610b7  gcc/testsuite/g++.dg/ipa/devirt-c-2.C
*************** f2bb748502e340561bce6eaed7285e91  gcc/te
*** 21774,21779 ****
--- 23420,23426 ----
  abc30277f2967caa33209d71858d7ffc  gcc/testsuite/g++.dg/ipa/iinline-1.C
  c188d8feec72dc790708bf458e6b93cf  gcc/testsuite/g++.dg/ipa/iinline-2.C
  ed2ebadecdee89ff7f0834345b5ae2e8  gcc/testsuite/g++.dg/ipa/iinline-3.C
+ 122c99d77d75d1b1c5544a1f4038af1f  gcc/testsuite/g++.dg/ipa/iinline-4.C
  0e4c8c729f288c50d9cb446902b5a576  gcc/testsuite/g++.dg/ipa/imm-devirt-1.C
  70736b7b80d0246c821c3d97507376a9  gcc/testsuite/g++.dg/ipa/imm-devirt-2.C
  292cd76f08d09af9b57303292d8a6673  gcc/testsuite/g++.dg/ipa/inline-1.C
*************** dec5937371d1df40c00adcd2a4fe5793  gcc/te
*** 21781,21788 ****
  3f7c2518e8312e41b7a0d31455313ef9  gcc/testsuite/g++.dg/ipa/inline-3.C
  ffdbd39bf7256fe7cdd80a0507ecc133  gcc/testsuite/g++.dg/ipa/inline-4.C
  af1630ba13bdbd20938ab0c47a373b5a  gcc/testsuite/g++.dg/ipa/ipa-icf-1.C
! 7f5303cbb5d32dfc7e93cc886c6eaa10  gcc/testsuite/g++.dg/ipa/ipa-icf-2.C
! 2feb9adc74dbd9a4b092469877b4252f  gcc/testsuite/g++.dg/ipa/ipa-icf-3.C
  8c1a79016f63ba6106b140bbc3aba3af  gcc/testsuite/g++.dg/ipa/ipa-icf-4.C
  890af13d278e4e0706986dbc2c5a1884  gcc/testsuite/g++.dg/ipa/ipa-icf-5.C
  91f7284baf9c02068705da50e95886c9  gcc/testsuite/g++.dg/ipa/ipa-icf-6.C
--- 23428,23435 ----
  3f7c2518e8312e41b7a0d31455313ef9  gcc/testsuite/g++.dg/ipa/inline-3.C
  ffdbd39bf7256fe7cdd80a0507ecc133  gcc/testsuite/g++.dg/ipa/inline-4.C
  af1630ba13bdbd20938ab0c47a373b5a  gcc/testsuite/g++.dg/ipa/ipa-icf-1.C
! 7abc84b89d5655129dac92bfe8a5ef42  gcc/testsuite/g++.dg/ipa/ipa-icf-2.C
! ca19634a861e929cd261f6f3a923f8b3  gcc/testsuite/g++.dg/ipa/ipa-icf-3.C
  8c1a79016f63ba6106b140bbc3aba3af  gcc/testsuite/g++.dg/ipa/ipa-icf-4.C
  890af13d278e4e0706986dbc2c5a1884  gcc/testsuite/g++.dg/ipa/ipa-icf-5.C
  91f7284baf9c02068705da50e95886c9  gcc/testsuite/g++.dg/ipa/ipa-icf-6.C
*************** dd9da84319526c87d1b5ab5555ecf0ce  gcc/te
*** 21794,21809 ****
  979ddadf770264dfe40f1f19ce96f7aa  gcc/testsuite/g++.dg/ipa/ipa-sra-4.C
  632c0e3261188bada7e08933ba27bb63  gcc/testsuite/g++.dg/ipa/ipa-sra-5.C
  597380a4a3ce904111a722934da8aad5  gcc/testsuite/g++.dg/ipa/ipa-sra-6.C
! d006a1cb4b42713f1a4e2c48ea89a5ef  gcc/testsuite/g++.dg/ipa/ivinline-1.C
  0612f7455e1930eacd9d89722d3bc4f1  gcc/testsuite/g++.dg/ipa/ivinline-2.C
! 2b579f9c8cd3abef21905cb01ba2edc8  gcc/testsuite/g++.dg/ipa/ivinline-3.C
  366aaa93ddaeda6a1cf43b6729d4c408  gcc/testsuite/g++.dg/ipa/ivinline-4.C
! 8def0aa2239b2d3367a18d8225e1736f  gcc/testsuite/g++.dg/ipa/ivinline-5.C
  667463cbb79cc07199ea2a9e124352f3  gcc/testsuite/g++.dg/ipa/ivinline-7.C
! d0415e5d5ed79c73a04e7df5551e4b95  gcc/testsuite/g++.dg/ipa/ivinline-8.C
  867fb18fd70a2df8847d32f03eb09d64  gcc/testsuite/g++.dg/ipa/ivinline-9.C
  5a074a312e6275492245e6c6e1262496  gcc/testsuite/g++.dg/ipa/modref-1.C
! 89a697678c960075181328b0bed18d5a  gcc/testsuite/g++.dg/ipa/nothrow-1.C
  ecfa94e705bc436ad699767b1e4c929e  gcc/testsuite/g++.dg/ipa/polymorphic-call-1.C
  55ee7bff7cc115f42266bd1d62dda46b  gcc/testsuite/g++.dg/ipa/pr100413.C
  901698e6dabf29dd6ced031811fcf59e  gcc/testsuite/g++.dg/ipa/pr103099.C
--- 23441,23456 ----
  979ddadf770264dfe40f1f19ce96f7aa  gcc/testsuite/g++.dg/ipa/ipa-sra-4.C
  632c0e3261188bada7e08933ba27bb63  gcc/testsuite/g++.dg/ipa/ipa-sra-5.C
  597380a4a3ce904111a722934da8aad5  gcc/testsuite/g++.dg/ipa/ipa-sra-6.C
! 6003c55cb9d9b0d0359f2116d7c55a1f  gcc/testsuite/g++.dg/ipa/ivinline-1.C
  0612f7455e1930eacd9d89722d3bc4f1  gcc/testsuite/g++.dg/ipa/ivinline-2.C
! 1ad0a6e93511367369812ffc8b6e06be  gcc/testsuite/g++.dg/ipa/ivinline-3.C
  366aaa93ddaeda6a1cf43b6729d4c408  gcc/testsuite/g++.dg/ipa/ivinline-4.C
! d8ee78a9af5231b45f03ec6e54497620  gcc/testsuite/g++.dg/ipa/ivinline-5.C
  667463cbb79cc07199ea2a9e124352f3  gcc/testsuite/g++.dg/ipa/ivinline-7.C
! c0ffb20cf2ac8199dec1b5b6b600474c  gcc/testsuite/g++.dg/ipa/ivinline-8.C
  867fb18fd70a2df8847d32f03eb09d64  gcc/testsuite/g++.dg/ipa/ivinline-9.C
  5a074a312e6275492245e6c6e1262496  gcc/testsuite/g++.dg/ipa/modref-1.C
! 8d3811d82360854b0e88bfb9f5712557  gcc/testsuite/g++.dg/ipa/nothrow-1.C
  ecfa94e705bc436ad699767b1e4c929e  gcc/testsuite/g++.dg/ipa/polymorphic-call-1.C
  55ee7bff7cc115f42266bd1d62dda46b  gcc/testsuite/g++.dg/ipa/pr100413.C
  901698e6dabf29dd6ced031811fcf59e  gcc/testsuite/g++.dg/ipa/pr103099.C
*************** f2ff4523ab9758b8e447b088ac708879  gcc/te
*** 21811,21817 ****
--- 23458,23467 ----
  c43cd4a90674d630795e0323738e0460  gcc/testsuite/g++.dg/ipa/pr107661.C
  7d63c0342d026b9ee4f2ecb03364cefe  gcc/testsuite/g++.dg/ipa/pr108110.C
  9a257f3564fd42fe9d7e00c5567f89d2  gcc/testsuite/g++.dg/ipa/pr108509.C
+ 9cfbf0684bfa0120b40925127f1447eb  gcc/testsuite/g++.dg/ipa/pr108802.C
  9cf2cc98e56a48a7332ea02be0425960  gcc/testsuite/g++.dg/ipa/pr108830.C
+ c4e9e836f72626730cc2876443c9d998  gcc/testsuite/g++.dg/ipa/pr110378-1.C
+ e66c84f48f938ed2bb548ce51957afce  gcc/testsuite/g++.dg/ipa/pr113757.C
  02f3704c0511b2d171c55dbf09c64325  gcc/testsuite/g++.dg/ipa/pr43695.C
  5345293723ad062b59b168c319738e1e  gcc/testsuite/g++.dg/ipa/pr43812.C
  b001cbe3dfdeb7d2a1061f024aa08ea4  gcc/testsuite/g++.dg/ipa/pr44372.C
*************** ea65f96a07ad0a1b72deeb1386d1979e  gcc/te
*** 21934,21942 ****
  8275998d07d56e45576d3c7e02c0aa4c  gcc/testsuite/g++.dg/ipa/pr98057.C
  e2988362ecb41c55df743fe23666ff05  gcc/testsuite/g++.dg/ipa/pr98075.C
  67ce956b024be06467602bda94a08aa7  gcc/testsuite/g++.dg/ipa/pr98690.C
! 36fa3f305af8daf292a5a974b6cd8017  gcc/testsuite/g++.dg/ipa/pure-const-1.C
! 82a7eaa06c8e9918346a40ce4e5c9881  gcc/testsuite/g++.dg/ipa/pure-const-2.C
! 4d1e7f2b0120bc31bc12be9d00dc4a53  gcc/testsuite/g++.dg/ipa/pure-const-3.C
  c3659ea03164ca46a25f7148ed889974  gcc/testsuite/g++.dg/ipa/remref-1.C
  c8c5e8bc4984a582357e6ff03fb165cb  gcc/testsuite/g++.dg/ipa/remref-2.C
  b4804485e0df8c8497236eb6966a8244  gcc/testsuite/g++.dg/ipa/type-inheritance-1.C
--- 23584,23594 ----
  8275998d07d56e45576d3c7e02c0aa4c  gcc/testsuite/g++.dg/ipa/pr98057.C
  e2988362ecb41c55df743fe23666ff05  gcc/testsuite/g++.dg/ipa/pr98075.C
  67ce956b024be06467602bda94a08aa7  gcc/testsuite/g++.dg/ipa/pr98690.C
! bf0218d818b40cc86f1826d82411d319  gcc/testsuite/g++.dg/ipa/pure-const-1.C
! b1b9772a55579b7f07ac84dde2376344  gcc/testsuite/g++.dg/ipa/pure-const-2.C
! 84129f30d3136d7700b0591bd3ab776e  gcc/testsuite/g++.dg/ipa/pure-const-3.C
! 23452e5953030ffb9df42992853ad918  gcc/testsuite/g++.dg/ipa/pure-const-3.h
! 5e07b9e2c37b773021424580564fb0f3  gcc/testsuite/g++.dg/ipa/pure-const-3b.C
  c3659ea03164ca46a25f7148ed889974  gcc/testsuite/g++.dg/ipa/remref-1.C
  c8c5e8bc4984a582357e6ff03fb165cb  gcc/testsuite/g++.dg/ipa/remref-2.C
  b4804485e0df8c8497236eb6966a8244  gcc/testsuite/g++.dg/ipa/type-inheritance-1.C
*************** e83bdcb2aef83f2c2e93cbd6baabdc72  gcc/te
*** 22082,22096 ****
  f81aac5278aa8141c0b1aedacbd46e7c  gcc/testsuite/g++.dg/lookup/missing-std-include-10.C
  6bc56500657f8c3b71b20af4c69e967f  gcc/testsuite/g++.dg/lookup/missing-std-include-10.h
  0a27fbf25062d8b94cfcffbfb481b8b7  gcc/testsuite/g++.dg/lookup/missing-std-include-11.C
! 63850d2da277a993459adc90859da456  gcc/testsuite/g++.dg/lookup/missing-std-include-2.C
! 29a08861fcce5ce8183c96169e17d4c1  gcc/testsuite/g++.dg/lookup/missing-std-include-3.C
  2089959ff25a41b6553e2e30bcdab132  gcc/testsuite/g++.dg/lookup/missing-std-include-4.C
  8c9e7cd6068948fc3bc9f18fb4358bbc  gcc/testsuite/g++.dg/lookup/missing-std-include-5.C
! 747d4e43728357e44238bb23680126e8  gcc/testsuite/g++.dg/lookup/missing-std-include-6.C
  3d220622c3cf94c2c856e98e299989ef  gcc/testsuite/g++.dg/lookup/missing-std-include-7.C
  e79584d4c910c70ebcefcd854ff0809f  gcc/testsuite/g++.dg/lookup/missing-std-include-8.C
  5f6a913bae178177d5d38172197daa0e  gcc/testsuite/g++.dg/lookup/missing-std-include-9.C
! ecb804007c1fa8a878d2197cb35a2d89  gcc/testsuite/g++.dg/lookup/missing-std-include.C
  6c99bf6f0c2260471ad74e39e36cdf71  gcc/testsuite/g++.dg/lookup/name-clash1.C
  51f1b95d6c879739a8fae563ede188d0  gcc/testsuite/g++.dg/lookup/name-clash10.C
  29612e6ccf58835593f126113426c6a6  gcc/testsuite/g++.dg/lookup/name-clash11.C
--- 23734,23748 ----
  f81aac5278aa8141c0b1aedacbd46e7c  gcc/testsuite/g++.dg/lookup/missing-std-include-10.C
  6bc56500657f8c3b71b20af4c69e967f  gcc/testsuite/g++.dg/lookup/missing-std-include-10.h
  0a27fbf25062d8b94cfcffbfb481b8b7  gcc/testsuite/g++.dg/lookup/missing-std-include-11.C
! 337a8ee8ffe09fdf48a9812b1f9de526  gcc/testsuite/g++.dg/lookup/missing-std-include-2.C
! 603464b520f70e80ebfeebb342ec0ff7  gcc/testsuite/g++.dg/lookup/missing-std-include-3.C
  2089959ff25a41b6553e2e30bcdab132  gcc/testsuite/g++.dg/lookup/missing-std-include-4.C
  8c9e7cd6068948fc3bc9f18fb4358bbc  gcc/testsuite/g++.dg/lookup/missing-std-include-5.C
! c066de1957c465319a8a9b9654bcc653  gcc/testsuite/g++.dg/lookup/missing-std-include-6.C
  3d220622c3cf94c2c856e98e299989ef  gcc/testsuite/g++.dg/lookup/missing-std-include-7.C
  e79584d4c910c70ebcefcd854ff0809f  gcc/testsuite/g++.dg/lookup/missing-std-include-8.C
  5f6a913bae178177d5d38172197daa0e  gcc/testsuite/g++.dg/lookup/missing-std-include-9.C
! 443513003bbbc836a4de668afecb66fb  gcc/testsuite/g++.dg/lookup/missing-std-include.C
  6c99bf6f0c2260471ad74e39e36cdf71  gcc/testsuite/g++.dg/lookup/name-clash1.C
  51f1b95d6c879739a8fae563ede188d0  gcc/testsuite/g++.dg/lookup/name-clash10.C
  29612e6ccf58835593f126113426c6a6  gcc/testsuite/g++.dg/lookup/name-clash11.C
*************** a2c2f830b707488f1f2104abe37f00dc  gcc/te
*** 22178,22183 ****
--- 23830,23840 ----
  a0c29cb4b5f7577e6f70badabcf54df5  gcc/testsuite/g++.dg/lookup/scope-operator1.C
  d4c09ae1055370e4dd84dbc6a2c452f5  gcc/testsuite/g++.dg/lookup/scoped1.C
  bf3eaff26a33ccd4611b5f6e55765a4d  gcc/testsuite/g++.dg/lookup/scoped10.C
+ c5e990aec19f71be0231b3af9c1273d9  gcc/testsuite/g++.dg/lookup/scoped11.C
+ 7d1a7310d346afebf679deb614e37fac  gcc/testsuite/g++.dg/lookup/scoped12.C
+ 57ad20cead23808da9ccfab10024151f  gcc/testsuite/g++.dg/lookup/scoped13.C
+ 28d01caede996628ca39a80f5630292e  gcc/testsuite/g++.dg/lookup/scoped14.C
+ 8bce501fbbc376d753bc44a46d64013f  gcc/testsuite/g++.dg/lookup/scoped15.C
  ded308bf80d3b50738f4d56dc16fada2  gcc/testsuite/g++.dg/lookup/scoped2.C
  fd5b1d6b45ff24d721908d389585b869  gcc/testsuite/g++.dg/lookup/scoped3.C
  aa72bf12de95e37fe79a3293544473d4  gcc/testsuite/g++.dg/lookup/scoped4.C
*************** c103732cb2619eee9ec3df9bd130a6c4  gcc/te
*** 22296,22304 ****
  b98bc7599df3a6ed68f19a0f4085bbf9  gcc/testsuite/g++.dg/lto/20081022_0.C
  715eef43f5f40eb7ce1039fdc68eb852  gcc/testsuite/g++.dg/lto/20081022_1.C
  0122c377e6b6f41146d85c230c1ad342  gcc/testsuite/g++.dg/lto/20081023_0.C
! 64770d56d98261c5c74fd848a0533025  gcc/testsuite/g++.dg/lto/20081109-1_0.C
  cab047bd2b2a56cdcf29b1021d61d01e  gcc/testsuite/g++.dg/lto/20081109-2_0.C
! 2e16c99a7448910e56edbde292e11587  gcc/testsuite/g++.dg/lto/20081109_0.C
  5f8f0441a7d158387241c67debd92e81  gcc/testsuite/g++.dg/lto/20081109_1.C
  e32d73cb2418a3865b03cb8eec3120a3  gcc/testsuite/g++.dg/lto/20081118-1_0.C
  ee6c53515fae9f8cd35761771f0f9e6b  gcc/testsuite/g++.dg/lto/20081118-1_1.C
--- 23953,23961 ----
  b98bc7599df3a6ed68f19a0f4085bbf9  gcc/testsuite/g++.dg/lto/20081022_0.C
  715eef43f5f40eb7ce1039fdc68eb852  gcc/testsuite/g++.dg/lto/20081022_1.C
  0122c377e6b6f41146d85c230c1ad342  gcc/testsuite/g++.dg/lto/20081023_0.C
! a5e5dee2a06de9530f072bd0dce35671  gcc/testsuite/g++.dg/lto/20081109-1_0.C
  cab047bd2b2a56cdcf29b1021d61d01e  gcc/testsuite/g++.dg/lto/20081109-2_0.C
! 07a38c3c20241a9e32f4e15df66647f5  gcc/testsuite/g++.dg/lto/20081109_0.C
  5f8f0441a7d158387241c67debd92e81  gcc/testsuite/g++.dg/lto/20081109_1.C
  e32d73cb2418a3865b03cb8eec3120a3  gcc/testsuite/g++.dg/lto/20081118-1_0.C
  ee6c53515fae9f8cd35761771f0f9e6b  gcc/testsuite/g++.dg/lto/20081118-1_1.C
*************** c6f32b33e84f3bfb06660b7dee175d23  gcc/te
*** 22365,22371 ****
  546d22a8a0c7f3d0f4d56f8e3692c952  gcc/testsuite/g++.dg/lto/20091004-3_1.C
  6e256583bb6b48177771c608182c3b6d  gcc/testsuite/g++.dg/lto/20091022-1_0.C
  dae8d29a4481b18cab90252e7c78ea53  gcc/testsuite/g++.dg/lto/20091022-2_0.C
! 6e1114489778a8186949cbfb484f46c0  gcc/testsuite/g++.dg/lto/20091026-1_0.C
  20821b3f01ba34253f6e2f0010a873d9  gcc/testsuite/g++.dg/lto/20091026-1_1.C
  412c4c5afa8e742a78da641dcfebb47a  gcc/testsuite/g++.dg/lto/20091026-1_a.h
  0981cf0352d8578e32f0ec1c4499a5a7  gcc/testsuite/g++.dg/lto/20091210-1_0.C
--- 24022,24028 ----
  546d22a8a0c7f3d0f4d56f8e3692c952  gcc/testsuite/g++.dg/lto/20091004-3_1.C
  6e256583bb6b48177771c608182c3b6d  gcc/testsuite/g++.dg/lto/20091022-1_0.C
  dae8d29a4481b18cab90252e7c78ea53  gcc/testsuite/g++.dg/lto/20091022-2_0.C
! b4849d6e46f2aa7820d2480e9eb53129  gcc/testsuite/g++.dg/lto/20091026-1_0.C
  20821b3f01ba34253f6e2f0010a873d9  gcc/testsuite/g++.dg/lto/20091026-1_1.C
  412c4c5afa8e742a78da641dcfebb47a  gcc/testsuite/g++.dg/lto/20091026-1_a.h
  0981cf0352d8578e32f0ec1c4499a5a7  gcc/testsuite/g++.dg/lto/20091210-1_0.C
*************** ee32a0cf6347e7a4d892db61abd203c3  gcc/te
*** 22426,22434 ****
  a44566d13ced1a79770276fc437e80d4  gcc/testsuite/g++.dg/lto/devirt-5_0.C
  78fad15d709c4b90517723468c4f5fe6  gcc/testsuite/g++.dg/lto/devirt-6_0.C
  62ce00e27e2297def984a00e603cd45f  gcc/testsuite/g++.dg/lto/inline-crossmodule-1.h
! 88882257febd460b4ecf31b840a232c7  gcc/testsuite/g++.dg/lto/inline-crossmodule-1_0.C
  a9aa6c16f15dfad712dab4d5e34d1ad3  gcc/testsuite/g++.dg/lto/inline-crossmodule-1_1.C
! 18ccce37d97da575aae49a138d462159  gcc/testsuite/g++.dg/lto/lto.exp
  51384f349888b259f190c2e578232db0  gcc/testsuite/g++.dg/lto/odr-1_0.C
  d2314a32a8cfaa76cd78c66c44bfc35a  gcc/testsuite/g++.dg/lto/odr-1_1.C
  5c6ba6285c9f905aad689d0df9b3b508  gcc/testsuite/g++.dg/lto/odr-2_0.C
--- 24083,24091 ----
  a44566d13ced1a79770276fc437e80d4  gcc/testsuite/g++.dg/lto/devirt-5_0.C
  78fad15d709c4b90517723468c4f5fe6  gcc/testsuite/g++.dg/lto/devirt-6_0.C
  62ce00e27e2297def984a00e603cd45f  gcc/testsuite/g++.dg/lto/inline-crossmodule-1.h
! 273363ca2008480021c43eee5962f85c  gcc/testsuite/g++.dg/lto/inline-crossmodule-1_0.C
  a9aa6c16f15dfad712dab4d5e34d1ad3  gcc/testsuite/g++.dg/lto/inline-crossmodule-1_1.C
! 5555fa9b00ba86281770f77134382f1f  gcc/testsuite/g++.dg/lto/lto.exp
  51384f349888b259f190c2e578232db0  gcc/testsuite/g++.dg/lto/odr-1_0.C
  d2314a32a8cfaa76cd78c66c44bfc35a  gcc/testsuite/g++.dg/lto/odr-1_1.C
  5c6ba6285c9f905aad689d0df9b3b508  gcc/testsuite/g++.dg/lto/odr-2_0.C
*************** cac1beb5973f2ae7f413286aea273726  gcc/te
*** 22449,22454 ****
--- 24106,24114 ----
  ac5555b4df88275d04e41aa95b0aca9a  gcc/testsuite/g++.dg/lto/pr101396_1.C
  57e4a1572912531a0ef7ae5e66a36910  gcc/testsuite/g++.dg/lto/pr105399_0.C
  0a39d2e9c16962015b5adf8bff3214c8  gcc/testsuite/g++.dg/lto/pr108772_0.C
+ f1d9eed0025353353019a54838c87ed9  gcc/testsuite/g++.dg/lto/pr113208.h
+ 22230575f68a36106d16454407701753  gcc/testsuite/g++.dg/lto/pr113208_0.C
+ 36a6b4f47dbbdcca4469926f1398a598  gcc/testsuite/g++.dg/lto/pr113208_1.C
  ba9b686c163762488051ec4094a838b2  gcc/testsuite/g++.dg/lto/pr40818_0.C
  08a786b250f802e56e458c7d60a358fc  gcc/testsuite/g++.dg/lto/pr42987_0.C
  1b56fef803fe85ec97121919ad3ba2b9  gcc/testsuite/g++.dg/lto/pr42987_1.C
*************** f4601f8837f8226059c6d27ca124f445  gcc/te
*** 22566,22580 ****
  b4a3c19d86c98fc593b0fa6cb8ee9161  gcc/testsuite/g++.dg/lto/pr87089_1.C
  f5b29bcb3455e7a41d5f4ada6a417007  gcc/testsuite/g++.dg/lto/pr87229_0.C
  81b88749e859ad4a32ba5f3981adf134  gcc/testsuite/g++.dg/lto/pr87295_0.C
! 11466e4b689141157adeb102a4bab7aa  gcc/testsuite/g++.dg/lto/pr87906_0.C
  3765785f4ebbc06f25c3f591fe650add  gcc/testsuite/g++.dg/lto/pr87906_1.C
! 332bdab00ff27d1c425ee9fc8cdd7dc9  gcc/testsuite/g++.dg/lto/pr88046_0.C
  a154c230ca678644ced231367fd697d3  gcc/testsuite/g++.dg/lto/pr88049_0.C
  038f53a7a582a8128838e27592e7b611  gcc/testsuite/g++.dg/lto/pr88758_0.C
  5ddd8396b535cb08306863df28f22bf7  gcc/testsuite/g++.dg/lto/pr88758_1.C
  ea4edae735415c73e2a3055e504105dc  gcc/testsuite/g++.dg/lto/pr89330_0.C
  68d5a7d425f219b1683f4ca9cf340fbb  gcc/testsuite/g++.dg/lto/pr89330_1.C
! e85cd7d5596a53bc1ee6e0d012801edb  gcc/testsuite/g++.dg/lto/pr89335_0.C
  cb782e35cc277d1b7be31cdb2b766e39  gcc/testsuite/g++.dg/lto/pr89358_0.C
  4f6e362a864f5ac4f9b9b99e660e0674  gcc/testsuite/g++.dg/lto/pr89358_1.C
  71c4e0358186a48bc58fd216bc445a9a  gcc/testsuite/g++.dg/lto/pr90939_0.C
--- 24226,24240 ----
  b4a3c19d86c98fc593b0fa6cb8ee9161  gcc/testsuite/g++.dg/lto/pr87089_1.C
  f5b29bcb3455e7a41d5f4ada6a417007  gcc/testsuite/g++.dg/lto/pr87229_0.C
  81b88749e859ad4a32ba5f3981adf134  gcc/testsuite/g++.dg/lto/pr87295_0.C
! 7a088116e2278fd2b2eefa451502a61f  gcc/testsuite/g++.dg/lto/pr87906_0.C
  3765785f4ebbc06f25c3f591fe650add  gcc/testsuite/g++.dg/lto/pr87906_1.C
! 287836e0e60eea7d7302c7986951e54a  gcc/testsuite/g++.dg/lto/pr88046_0.C
  a154c230ca678644ced231367fd697d3  gcc/testsuite/g++.dg/lto/pr88049_0.C
  038f53a7a582a8128838e27592e7b611  gcc/testsuite/g++.dg/lto/pr88758_0.C
  5ddd8396b535cb08306863df28f22bf7  gcc/testsuite/g++.dg/lto/pr88758_1.C
  ea4edae735415c73e2a3055e504105dc  gcc/testsuite/g++.dg/lto/pr89330_0.C
  68d5a7d425f219b1683f4ca9cf340fbb  gcc/testsuite/g++.dg/lto/pr89330_1.C
! 21c634d1187733a8392b17ae99b4cd06  gcc/testsuite/g++.dg/lto/pr89335_0.C
  cb782e35cc277d1b7be31cdb2b766e39  gcc/testsuite/g++.dg/lto/pr89358_0.C
  4f6e362a864f5ac4f9b9b99e660e0674  gcc/testsuite/g++.dg/lto/pr89358_1.C
  71c4e0358186a48bc58fd216bc445a9a  gcc/testsuite/g++.dg/lto/pr90939_0.C
*************** acda5ed59aa700353a640d4574448925  gcc/te
*** 22620,22630 ****
  3b266e88f18eff80afa4008e92a1178c  gcc/testsuite/g++.dg/modules/adl-5_c.C
  ecc4cdff1fc19f2bbddbccb4517d4d32  gcc/testsuite/g++.dg/modules/adl-5_d.C
  84f5dc8c8fe19d892ed655362cbbabc1  gcc/testsuite/g++.dg/modules/alias-1_a.H
! e6b3e06ae5eedff2deb2b4aafbe2aff6  gcc/testsuite/g++.dg/modules/alias-1_b.C
  87bfff6916b05ac863e65eb34d2f39c5  gcc/testsuite/g++.dg/modules/alias-1_c.C
! 47c81b163d9ad33ba764df13c1aa2cba  gcc/testsuite/g++.dg/modules/alias-1_d.C
! 3e89e370c4d90e1b86b2db56d8934fb0  gcc/testsuite/g++.dg/modules/alias-1_e.C
! f317a314753ff96e2d9e59fc588e689f  gcc/testsuite/g++.dg/modules/alias-1_f.C
  ef2bca1fe28aab857ad570bb97dfa565  gcc/testsuite/g++.dg/modules/alias-2_b.C
  fba23da3f9ec6a6b93d60f4ef252481e  gcc/testsuite/g++.dg/modules/align-type-1_a.C
  0f37e2e98366e55c9539dfead51cb028  gcc/testsuite/g++.dg/modules/align-type-1_b.C
--- 24280,24290 ----
  3b266e88f18eff80afa4008e92a1178c  gcc/testsuite/g++.dg/modules/adl-5_c.C
  ecc4cdff1fc19f2bbddbccb4517d4d32  gcc/testsuite/g++.dg/modules/adl-5_d.C
  84f5dc8c8fe19d892ed655362cbbabc1  gcc/testsuite/g++.dg/modules/alias-1_a.H
! e5d48a6cbbf612860c500056802a4d9e  gcc/testsuite/g++.dg/modules/alias-1_b.C
  87bfff6916b05ac863e65eb34d2f39c5  gcc/testsuite/g++.dg/modules/alias-1_c.C
! 35d929c977ee8c5d89427f158841e392  gcc/testsuite/g++.dg/modules/alias-1_d.C
! 654613de755592f8dd0461cb5d964619  gcc/testsuite/g++.dg/modules/alias-1_e.C
! ee26e1d91d2d28c7c7d21ab7516186d1  gcc/testsuite/g++.dg/modules/alias-1_f.C
  ef2bca1fe28aab857ad570bb97dfa565  gcc/testsuite/g++.dg/modules/alias-2_b.C
  fba23da3f9ec6a6b93d60f4ef252481e  gcc/testsuite/g++.dg/modules/align-type-1_a.C
  0f37e2e98366e55c9539dfead51cb028  gcc/testsuite/g++.dg/modules/align-type-1_b.C
*************** f2f40d23b84601853ad5eb408b4167d4  gcc/te
*** 22636,22641 ****
--- 24296,24303 ----
  f9f5e3f832e9fc9f27be84c9dd931af4  gcc/testsuite/g++.dg/modules/anon-2.h
  454233368c6bda5f938abc5b4c5af4cb  gcc/testsuite/g++.dg/modules/anon-2_a.H
  32732079649b2eb040c1ba0b3d2f5e7d  gcc/testsuite/g++.dg/modules/anon-2_b.C
+ 26b77855d2e06cc5e9b1136617cad153  gcc/testsuite/g++.dg/modules/anon-3_a.H
+ f86a9d1e34660cdc674d9ad30862970e  gcc/testsuite/g++.dg/modules/anon-3_b.C
  a7104a7f65a894a81867f80af8612399  gcc/testsuite/g++.dg/modules/atom-decl-0_a.C
  bb5c4cd9a7635fa1f03740e04c841427  gcc/testsuite/g++.dg/modules/atom-decl-0_b.C
  264f336f97e542ff429a149616ccd617  gcc/testsuite/g++.dg/modules/atom-decl-0_c.C
*************** d479e8fed74f485f9b8e9b4816402569  gcc/te
*** 22661,22669 ****
  db3511d6d560e34fa59c74d10ea11ce3  gcc/testsuite/g++.dg/modules/auto-3.h
  f07c72ff8379fda058ae5d0a9875b722  gcc/testsuite/g++.dg/modules/auto-3_a.H
  2f977bb348df94188e29c8c1aa8088bf  gcc/testsuite/g++.dg/modules/auto-3_b.C
! e263ea29250c5e9efe65a8382bb02ca6  gcc/testsuite/g++.dg/modules/bad-mapper-1.C
  429207e0eb777b4a43a566e8777f6503  gcc/testsuite/g++.dg/modules/bad-mapper-2.C
! 59e1f091bb31cff7b842dfea2f75a8e4  gcc/testsuite/g++.dg/modules/bad-mapper-3.C
  d47743bc71edc48a3b35156e9957ac97  gcc/testsuite/g++.dg/modules/ben-1.map
  fbee0d701857159f09852913a5a2ba81  gcc/testsuite/g++.dg/modules/ben-1_a.C
  859e9af2f22665e71d4c53310b3fc495  gcc/testsuite/g++.dg/modules/ben-1_b.C
--- 24323,24333 ----
  db3511d6d560e34fa59c74d10ea11ce3  gcc/testsuite/g++.dg/modules/auto-3.h
  f07c72ff8379fda058ae5d0a9875b722  gcc/testsuite/g++.dg/modules/auto-3_a.H
  2f977bb348df94188e29c8c1aa8088bf  gcc/testsuite/g++.dg/modules/auto-3_b.C
! d67bb58fd3f1d37f733f2b4918afd0fc  gcc/testsuite/g++.dg/modules/auto-4_a.H
! a44f6544a1a4f2fd76efb8c84e669266  gcc/testsuite/g++.dg/modules/auto-4_b.C
! 53bbe2f7c4d5079131e5a6dea8da20db  gcc/testsuite/g++.dg/modules/bad-mapper-1.C
  429207e0eb777b4a43a566e8777f6503  gcc/testsuite/g++.dg/modules/bad-mapper-2.C
! 457c206081cc6757683b25dc791287cd  gcc/testsuite/g++.dg/modules/bad-mapper-3.C
  d47743bc71edc48a3b35156e9957ac97  gcc/testsuite/g++.dg/modules/ben-1.map
  fbee0d701857159f09852913a5a2ba81  gcc/testsuite/g++.dg/modules/ben-1_a.C
  859e9af2f22665e71d4c53310b3fc495  gcc/testsuite/g++.dg/modules/ben-1_b.C
*************** ba25c98b700e39b48711b141af6b8d5f  gcc/te
*** 22676,22681 ****
--- 24340,24352 ----
  3c5dfe77c841814ff90a0546f7aa6f24  gcc/testsuite/g++.dg/modules/binding-1_b.H
  942ce8ea8cdc38780ea8e94d33cfd1d3  gcc/testsuite/g++.dg/modules/binding-1_c.C
  6247234e10229fe1f007fb7ebce8baae  gcc/testsuite/g++.dg/modules/binding-2.H
+ 474334daa9212f5c47f087ebca25b52a  gcc/testsuite/g++.dg/modules/block-decl-1_a.C
+ d04ea5ff4edaac312d2301e012cfc77c  gcc/testsuite/g++.dg/modules/block-decl-1_b.C
+ 357ab74c58f2ff85b46e82b943800e2e  gcc/testsuite/g++.dg/modules/block-decl-2.C
+ 34e4da9a694367e86e7f35eb06709bfe  gcc/testsuite/g++.dg/modules/block-decl-3.h
+ 203934cacd5033145b085ef1a55f02ab  gcc/testsuite/g++.dg/modules/block-decl-3_a.C
+ 88b54e881629545fb6ed4f4df979f36d  gcc/testsuite/g++.dg/modules/block-decl-3_b.C
+ 1f9eb2ee99d02aff4c71b5fe07c717f2  gcc/testsuite/g++.dg/modules/block-decl-3_c.C
  9f96f92847a3bf5bed4ca21d22dc7706  gcc/testsuite/g++.dg/modules/bool-1.h
  71cd96ea0f9ca336ec4f50ef4d6949a7  gcc/testsuite/g++.dg/modules/bool-1_a.H
  c93b823398a766831d77299480881f8c  gcc/testsuite/g++.dg/modules/bool-1_b.H
*************** a6052479b7749f10c8955222e0e5f377  gcc/te
*** 22702,22707 ****
--- 24373,24380 ----
  eca65e3a9db1fb6ccbd70d53907f93dd  gcc/testsuite/g++.dg/modules/cexpr-2_b.C
  3dbbe1080adf47594d298b727121ab4e  gcc/testsuite/g++.dg/modules/cexpr-3_a.C
  0ba4469c7ee995cd2bd01f3ea2decfd5  gcc/testsuite/g++.dg/modules/cexpr-3_b.C
+ 7607a539ad640abf8fb8e5858286c209  gcc/testsuite/g++.dg/modules/cexpr-4_a.C
+ 1aeadcc3bec5669f7f1f0491153950a8  gcc/testsuite/g++.dg/modules/cexpr-4_b.C
  9e8b6b97c14fc8ba72560634615d4fbe  gcc/testsuite/g++.dg/modules/circ-1_a.C
  98607f9dff6572a0baa9956e2dd1be8c  gcc/testsuite/g++.dg/modules/circ-1_b.C
  e7d806e1771c11cb72e41af12e6d57e4  gcc/testsuite/g++.dg/modules/circ-1_c.C
*************** bc38928c9f8a6800dafc162f6e6f58fb  gcc/te
*** 22730,22735 ****
--- 24403,24410 ----
  4cda6e81598164c1353e6d8587668d7d  gcc/testsuite/g++.dg/modules/class-8_b.C
  2b3f45f6e4c8ec8128239deb281b75bd  gcc/testsuite/g++.dg/modules/clone-1_a.C
  9f5521e5bd740049dc967e0822fcb6ba  gcc/testsuite/g++.dg/modules/clone-1_b.C
+ a7ee3a8d76bc139c4cf52d3492a2aff4  gcc/testsuite/g++.dg/modules/concept-10_a.H
+ 2006efa004cac463749325d18b100fdd  gcc/testsuite/g++.dg/modules/concept-10_b.C
  b82e625ae44f653d9caf5a917ed2565a  gcc/testsuite/g++.dg/modules/concept-1_a.C
  2ae2870ddbfb381e60200518e1e9b824  gcc/testsuite/g++.dg/modules/concept-1_b.C
  6bc1b6fc0acb09251969b0d3737c9f40  gcc/testsuite/g++.dg/modules/concept-2_a.C
*************** b6db4e57770ab4a96d0120ec2744eab0  gcc/te
*** 22745,22750 ****
--- 24420,24431 ----
  15c6474f9e36ad631a5e20c87355fc02  gcc/testsuite/g++.dg/modules/concept-6_b.C
  6748ee683c2d9f02a44807030fc038a9  gcc/testsuite/g++.dg/modules/concept-7_a.C
  3d4d545a2f813c003d1b9de2e5348bfc  gcc/testsuite/g++.dg/modules/concept-7_b.C
+ feea8553ba5e546dab4d7e4f7b99b5fd  gcc/testsuite/g++.dg/modules/concept-8.h
+ f53bcb0c9c85ef8761e7817041703172  gcc/testsuite/g++.dg/modules/concept-8_a.H
+ 96b36072c33b04df4700f5b0e1ea07cc  gcc/testsuite/g++.dg/modules/concept-8_b.C
+ 76538765d3a6759d13a6368499e66ee6  gcc/testsuite/g++.dg/modules/concept-9.h
+ 557dd473cb2b97c4d7aedc161724bd00  gcc/testsuite/g++.dg/modules/concept-9_a.C
+ 21fd0ecb7f424f56c190111aa18973d7  gcc/testsuite/g++.dg/modules/concept-9_b.C
  065c21c126c925a3e00aca89ecd68082  gcc/testsuite/g++.dg/modules/constrained-partial-1_a.C
  36ec67bdeefa980122cd592ead6b309b  gcc/testsuite/g++.dg/modules/constrained-partial-1_b.C
  fe18f4f4c09fb184532b102f0aeda85d  gcc/testsuite/g++.dg/modules/contracts-1_a.C
*************** fbe86dd2a8732d33bad7bda15fc0e2db  gcc/te
*** 22774,22782 ****
  61e65380bfb3781f18a612e670d9cddb  gcc/testsuite/g++.dg/modules/cpp-5_c.C
  dc18c9abbb7b929baad44d4d17cf481c  gcc/testsuite/g++.dg/modules/cpp-6_a.H
  a74bddfbe727d105bb545eedc62f745d  gcc/testsuite/g++.dg/modules/cpp-6_b.H
! 90b1664a6631dd17825517ae4610dbed  gcc/testsuite/g++.dg/modules/cpp-6_c.C
  3f48d0308ff4b07b3b669154768b92a9  gcc/testsuite/g++.dg/modules/debug-1_a.C
  cc14e75db917eabf9a773192831be701  gcc/testsuite/g++.dg/modules/debug-1_b.C
  b1f1d5b00d4a65d0a4d2f96f3fe4003f  gcc/testsuite/g++.dg/modules/decomp-1_a.C
  92f4e44ce0c072d5153a2b467bb8dad0  gcc/testsuite/g++.dg/modules/decomp-1_b.C
  ea68e74f44f4c82e8ae6f2c690b55c60  gcc/testsuite/g++.dg/modules/deferred-1.h
--- 24455,24470 ----
  61e65380bfb3781f18a612e670d9cddb  gcc/testsuite/g++.dg/modules/cpp-5_c.C
  dc18c9abbb7b929baad44d4d17cf481c  gcc/testsuite/g++.dg/modules/cpp-6_a.H
  a74bddfbe727d105bb545eedc62f745d  gcc/testsuite/g++.dg/modules/cpp-6_b.H
! b7c85df7a8c7f3b394c7bbf4ed268587  gcc/testsuite/g++.dg/modules/cpp-6_c.C
  3f48d0308ff4b07b3b669154768b92a9  gcc/testsuite/g++.dg/modules/debug-1_a.C
  cc14e75db917eabf9a773192831be701  gcc/testsuite/g++.dg/modules/debug-1_b.C
+ f6a9b0b6b1254dcce4baeb1bb3164800  gcc/testsuite/g++.dg/modules/debug-2_a.C
+ fcba41b3c94d80cdd25624f12f8a88dd  gcc/testsuite/g++.dg/modules/debug-2_b.C
+ f4c3800d8807defb0ce3ca9404918405  gcc/testsuite/g++.dg/modules/debug-2_c.C
+ 2a11de3e8a99b2a41af97ee9433d7b8a  gcc/testsuite/g++.dg/modules/debug-3_a.C
+ 1df7a0ec7e0da75459e6909aec46f956  gcc/testsuite/g++.dg/modules/debug-3_b.C
+ 7f9450beb2eaeecc6234e3685b9b2988  gcc/testsuite/g++.dg/modules/decltype-1_a.C
+ f7f95fed5d0d33909268846fb74099c4  gcc/testsuite/g++.dg/modules/decltype-1_b.C
  b1f1d5b00d4a65d0a4d2f96f3fe4003f  gcc/testsuite/g++.dg/modules/decomp-1_a.C
  92f4e44ce0c072d5153a2b467bb8dad0  gcc/testsuite/g++.dg/modules/decomp-1_b.C
  ea68e74f44f4c82e8ae6f2c690b55c60  gcc/testsuite/g++.dg/modules/deferred-1.h
*************** d5627ec2e4dc9b1ef99e54bdc03e1c7a  gcc/te
*** 22786,22794 ****
  63bbbccfef2a3fd41022bb0a4b4f8eb5  gcc/testsuite/g++.dg/modules/dep-1_b.C
  128e76c43221794f4f3e993541e871cc  gcc/testsuite/g++.dg/modules/dep-2.C
  cb642b297719a8133fff6a8330998c3d  gcc/testsuite/g++.dg/modules/dep-3.C
  27fe0d89834d0c4dccb54eb85dcb2b1e  gcc/testsuite/g++.dg/modules/dir-only-1.C
  3b6b2231ee799128ed7e8abf8e4bd8ca  gcc/testsuite/g++.dg/modules/dir-only-2_a.H
! f8ae8345e0918908805964c313e6738d  gcc/testsuite/g++.dg/modules/dir-only-2_b.C
  98e286748a71de409ea8ea91c61bff89  gcc/testsuite/g++.dg/modules/dir-only-3.C
  751bc164d219ba7ac2c0a5df96b7e328  gcc/testsuite/g++.dg/modules/dir-only-4.C
  7e9a537d2bfa5adb9b6da64d83a6f631  gcc/testsuite/g++.dg/modules/dir-recovery.C
--- 24474,24503 ----
  63bbbccfef2a3fd41022bb0a4b4f8eb5  gcc/testsuite/g++.dg/modules/dep-1_b.C
  128e76c43221794f4f3e993541e871cc  gcc/testsuite/g++.dg/modules/dep-2.C
  cb642b297719a8133fff6a8330998c3d  gcc/testsuite/g++.dg/modules/dep-3.C
+ a523b04ab1811e6a7b5c26428897e155  gcc/testsuite/g++.dg/modules/depflags-f-MD.C
+ c8a1eb4ced10a42d80ad249e890f366e  gcc/testsuite/g++.dg/modules/depflags-f.C
+ 80d9bef84b86ef3877494d9ab5a6045f  gcc/testsuite/g++.dg/modules/depflags-fi.C
+ 0c0ba2a18c65ce8d6c3074549c11e9e9  gcc/testsuite/g++.dg/modules/depflags-fj-MD.C
+ 49e9d4e309c650b9a97af64d900e2386  gcc/testsuite/g++.dg/modules/depflags-fj-MF-share.C
+ 65a34898f8f0bf92f1649165262e45a2  gcc/testsuite/g++.dg/modules/depflags-fj.C
+ 10fc7676261f63c04717d93f9af5a5fc  gcc/testsuite/g++.dg/modules/depflags-fjo-MD.C
+ b54a55ab51fa90f9ba2c51ea65435817  gcc/testsuite/g++.dg/modules/depflags-fjo.C
+ 550f4a3f6ab5e3281b52b2a65ef21686  gcc/testsuite/g++.dg/modules/depflags-fo-MD.C
+ 9c83e974f2fb97f2e612421cb9864594  gcc/testsuite/g++.dg/modules/depflags-fo.C
+ f812fe9d903080530d93f8bdbc0207c6  gcc/testsuite/g++.dg/modules/depflags-j-MD.C
+ 59377abae2279d830de538db1678e207  gcc/testsuite/g++.dg/modules/depflags-j.C
+ a3da7c4032a4adc795dc0a55c354acb4  gcc/testsuite/g++.dg/modules/depflags-jo-MD.C
+ f742f00b3f9d39267332bc00e915bea1  gcc/testsuite/g++.dg/modules/depflags-jo.C
+ 49358788f90bcd6ecf996d462fb57b27  gcc/testsuite/g++.dg/modules/depflags-o-MD.C
+ b8f5384d5b27eac548bc614ec1ebfb7d  gcc/testsuite/g++.dg/modules/depflags-o.C
+ 3e82072151bc1ef9460e5aa293c1f7e9  gcc/testsuite/g++.dg/modules/depreport-1_a.C
+ c404dc519fbe79b908ef867c4b738599  gcc/testsuite/g++.dg/modules/depreport-1_b.C
+ cf93795f387694eb17d06e889faa1ea9  gcc/testsuite/g++.dg/modules/depreport-2.modmap
+ 24a96c7b463ab4c895201843554d8cc0  gcc/testsuite/g++.dg/modules/depreport-2_a.C
+ 76c057e80975e170bb82aa1f5a4f86ae  gcc/testsuite/g++.dg/modules/depreport-2_b.C
  27fe0d89834d0c4dccb54eb85dcb2b1e  gcc/testsuite/g++.dg/modules/dir-only-1.C
  3b6b2231ee799128ed7e8abf8e4bd8ca  gcc/testsuite/g++.dg/modules/dir-only-2_a.H
! ad46cfa347da4b007f1c2c702b1424e5  gcc/testsuite/g++.dg/modules/dir-only-2_b.C
  98e286748a71de409ea8ea91c61bff89  gcc/testsuite/g++.dg/modules/dir-only-3.C
  751bc164d219ba7ac2c0a5df96b7e328  gcc/testsuite/g++.dg/modules/dir-only-4.C
  7e9a537d2bfa5adb9b6da64d83a6f631  gcc/testsuite/g++.dg/modules/dir-recovery.C
*************** a76835e47b764922b013544f6f8353a4  gcc/te
*** 22796,22801 ****
--- 24505,24513 ----
  44320dac8e952abf4ec85406d1ed45ac  gcc/testsuite/g++.dg/modules/enum-10_b.C
  98303daeb2784eff9b49fb8941d26be4  gcc/testsuite/g++.dg/modules/enum-11_a.H
  7844e14a6778ebcc4e48b8a1fc722798  gcc/testsuite/g++.dg/modules/enum-11_b.C
+ a96e55b95c626d68e546aef088775669  gcc/testsuite/g++.dg/modules/enum-12.C
+ 24b8ba2a7538d07a4fc4f431958768d0  gcc/testsuite/g++.dg/modules/enum-13_a.C
+ fad9da7f923843ef1e884b9b71612f1b  gcc/testsuite/g++.dg/modules/enum-13_b.C
  02bf8548b63223a7f975e8051966d186  gcc/testsuite/g++.dg/modules/enum-1_a.C
  07cd39c397707ffd7ecad5f19200c483  gcc/testsuite/g++.dg/modules/enum-1_b.C
  930da5cebd5959d9a725229b25f0d412  gcc/testsuite/g++.dg/modules/enum-2_a.C
*************** cb17af4e1eb66bb3cb7788a721007fca  gcc/te
*** 22832,22838 ****
  0dbb925b1876b5a9913a4082238721d7  gcc/testsuite/g++.dg/modules/exp-xlate-1_b.C
  0b4b4c74e5b9f066dfdcb2869b1d2d2d  gcc/testsuite/g++.dg/modules/explicit-bool-1_a.H
  2ea5f84f7b8269aa96541a6b022b47ac  gcc/testsuite/g++.dg/modules/explicit-bool-1_b.C
! 92949b19e9a68f9337ca11fe99f3370f  gcc/testsuite/g++.dg/modules/export-1.C
  72f93a05f3b46d53e36617fe0e02c955  gcc/testsuite/g++.dg/modules/extern-tpl-1_a.H
  3315098b4e8445874ea0c80fd4fb9568  gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
  af71a71f12f25f2b3cb5a86a955b562b  gcc/testsuite/g++.dg/modules/extern-tpl-1_c.C
--- 24544,24552 ----
  0dbb925b1876b5a9913a4082238721d7  gcc/testsuite/g++.dg/modules/exp-xlate-1_b.C
  0b4b4c74e5b9f066dfdcb2869b1d2d2d  gcc/testsuite/g++.dg/modules/explicit-bool-1_a.H
  2ea5f84f7b8269aa96541a6b022b47ac  gcc/testsuite/g++.dg/modules/explicit-bool-1_b.C
! c437720340fe1e93a6f982bca007d82c  gcc/testsuite/g++.dg/modules/export-1.C
! 3b2093f208a74196b1c3df74b350fc7a  gcc/testsuite/g++.dg/modules/export-2_a.C
! d2954530a1b1620eafdf1930e958ce30  gcc/testsuite/g++.dg/modules/export-2_b.C
  72f93a05f3b46d53e36617fe0e02c955  gcc/testsuite/g++.dg/modules/extern-tpl-1_a.H
  3315098b4e8445874ea0c80fd4fb9568  gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
  af71a71f12f25f2b3cb5a86a955b562b  gcc/testsuite/g++.dg/modules/extern-tpl-1_c.C
*************** fe8d8abf0fe0d8513419931c2b196435  gcc/te
*** 22859,22864 ****
--- 24573,24582 ----
  bea28bf2d0c8e81e2aa1b15bb16a1ff4  gcc/testsuite/g++.dg/modules/friend-4_b.C
  40fe25738c2ab0fc4119c06009d85558  gcc/testsuite/g++.dg/modules/friend-5_a.C
  10b235d5b7a95f8b45731e7bb3e49249  gcc/testsuite/g++.dg/modules/friend-5_b.C
+ e1703b7e06347c11dbbc67583900d2f6  gcc/testsuite/g++.dg/modules/friend-6_a.C
+ 8c5d759d60ab186fd6caf45e143b5593  gcc/testsuite/g++.dg/modules/friend-7.h
+ 142c45e9bfe86b221cc4af8f3ac96962  gcc/testsuite/g++.dg/modules/friend-7_a.H
+ ea3e8125da31265d1aca176f5e1d6f8c  gcc/testsuite/g++.dg/modules/friend-7_b.C
  b09c70e919f5f68af6dd16c29a5ce19d  gcc/testsuite/g++.dg/modules/gc-1_a.C
  c540f5ea9f060fd57192bf19deceb485  gcc/testsuite/g++.dg/modules/gc-1_b.C
  55edcdc178b3faf5ab15daa299ad7892  gcc/testsuite/g++.dg/modules/gc-1_c.C
*************** a019a46920ed46fd8bfa291454b001fd  gcc/te
*** 22887,22892 ****
--- 24605,24612 ----
  411e1bc5a4b64167fd35549890849c60  gcc/testsuite/g++.dg/modules/hdr-init-1_c.C
  179a1e853888e51aa1eb1b83369b18ab  gcc/testsuite/g++.dg/modules/hello-1_a.C
  0d1f1f8b1a13cb592cc7a12aeddcdd2a  gcc/testsuite/g++.dg/modules/hello-1_b.C
+ d4e8b13ce29feda8c335dd85e6c5959d  gcc/testsuite/g++.dg/modules/hello-2_a.C
+ ca4d73bb3bf6e0a633d22dd3434ddacb  gcc/testsuite/g++.dg/modules/hello-2_b.C
  5b2fd64582759540fd82f5d665aa8e8b  gcc/testsuite/g++.dg/modules/horcrux-1_a.C
  788de7c389f8b3a13de07086529b3b5e  gcc/testsuite/g++.dg/modules/horcrux-1_b.C
  ea76c720a8e24b78691dffa2eef6d22d  gcc/testsuite/g++.dg/modules/ice-1.C
*************** b7927bd395b5232680f2db58be05462a  gcc/te
*** 22915,22931 ****
  9a9415510743e8b7e83b4f6ab1babf0e  gcc/testsuite/g++.dg/modules/inc-xlate-1_c.C
  95b490b14ab67d7ecf7ab92c74cf2316  gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C
  f66ca65219477c8d92b6f467b65e6d70  gcc/testsuite/g++.dg/modules/indirect-1_a.C
! 95ec57062ea1ce04938a32d1339202e2  gcc/testsuite/g++.dg/modules/indirect-1_b.C
! dff0f26eb5087deaef96b9d54314b6a4  gcc/testsuite/g++.dg/modules/indirect-1_c.C
  7959f43a638872f72358f6afd3921aeb  gcc/testsuite/g++.dg/modules/indirect-2_a.C
! 3b279d20d6f9b17047cd5dfb4553fab2  gcc/testsuite/g++.dg/modules/indirect-2_b.C
! 000412366748e0a40001148af86b72cc  gcc/testsuite/g++.dg/modules/indirect-2_c.C
  ecf2e4ddd87fc8079d71d327bb21fa91  gcc/testsuite/g++.dg/modules/indirect-3_a.C
! 86ff514d00e1774eb9045dc4defacf25  gcc/testsuite/g++.dg/modules/indirect-3_b.C
! c119afc0df74c0b17381b088d145b86c  gcc/testsuite/g++.dg/modules/indirect-3_c.C
  fee5d6f962f7988ae62febd5f1a8e244  gcc/testsuite/g++.dg/modules/indirect-4_a.C
! 896a19175e213ea62b9b91cd64995e4a  gcc/testsuite/g++.dg/modules/indirect-4_b.C
! dfea171c241790df8f63ba50f342a189  gcc/testsuite/g++.dg/modules/indirect-4_c.C
  6c090a18a818b71985851c5f5e82e2f7  gcc/testsuite/g++.dg/modules/inext-1.H
  5e921af9b318fd9ca4328648337456f1  gcc/testsuite/g++.dg/modules/inh-tmpl-ctor-1.h
  c01dcb11c5d36976b14d9fd7c4516581  gcc/testsuite/g++.dg/modules/inh-tmpl-ctor-1_a.H
--- 24635,24651 ----
  9a9415510743e8b7e83b4f6ab1babf0e  gcc/testsuite/g++.dg/modules/inc-xlate-1_c.C
  95b490b14ab67d7ecf7ab92c74cf2316  gcc/testsuite/g++.dg/modules/inc-xlate-1_e.C
  f66ca65219477c8d92b6f467b65e6d70  gcc/testsuite/g++.dg/modules/indirect-1_a.C
! 5d95ce4ae95070795dba665c853d9e2b  gcc/testsuite/g++.dg/modules/indirect-1_b.C
! 7c36188e4acba1e72c8dddc700665c0a  gcc/testsuite/g++.dg/modules/indirect-1_c.C
  7959f43a638872f72358f6afd3921aeb  gcc/testsuite/g++.dg/modules/indirect-2_a.C
! 474b3e754edf7a5118ddc7591eb04416  gcc/testsuite/g++.dg/modules/indirect-2_b.C
! 7f42b079b2844ff204a4743339b88630  gcc/testsuite/g++.dg/modules/indirect-2_c.C
  ecf2e4ddd87fc8079d71d327bb21fa91  gcc/testsuite/g++.dg/modules/indirect-3_a.C
! e4f8337a60a3456cc0efacbbe04554ad  gcc/testsuite/g++.dg/modules/indirect-3_b.C
! 58b4a819b9c8935c4f2d8ccbb3b1bd06  gcc/testsuite/g++.dg/modules/indirect-3_c.C
  fee5d6f962f7988ae62febd5f1a8e244  gcc/testsuite/g++.dg/modules/indirect-4_a.C
! 32c56672b9ed162f6538aab6dcf85b14  gcc/testsuite/g++.dg/modules/indirect-4_b.C
! 949ba9b0515175f500007ccdf320dcde  gcc/testsuite/g++.dg/modules/indirect-4_c.C
  6c090a18a818b71985851c5f5e82e2f7  gcc/testsuite/g++.dg/modules/inext-1.H
  5e921af9b318fd9ca4328648337456f1  gcc/testsuite/g++.dg/modules/inh-tmpl-ctor-1.h
  c01dcb11c5d36976b14d9fd7c4516581  gcc/testsuite/g++.dg/modules/inh-tmpl-ctor-1_a.H
*************** a44b0c32fbdda0edf84339e2b3ec139c  gcc/te
*** 22939,22944 ****
--- 24659,24672 ----
  1dd2e4d960ee627c5f30f44666248c6a  gcc/testsuite/g++.dg/modules/init-3_a.C
  acdf2b4dea5747e7876a723f39c550f4  gcc/testsuite/g++.dg/modules/init-3_b.C
  d83d27b7985e20783fd914a9d60f0cf2  gcc/testsuite/g++.dg/modules/init-3_c.C
+ b7866e1fe5f72be5d2ef5c0b33aab648  gcc/testsuite/g++.dg/modules/init-4_a.C
+ 60479d6cc8bb46804ba6ce576e425aa6  gcc/testsuite/g++.dg/modules/init-4_b.C
+ 5e890fe31b83f265977b7667a6fe73fa  gcc/testsuite/g++.dg/modules/init-5_a.C
+ 2c383739fd62667873ff81f82acc896b  gcc/testsuite/g++.dg/modules/init-5_b.C
+ f2271c8b45164814b0166596da0ad6a7  gcc/testsuite/g++.dg/modules/init-6_a.H
+ 25b8db60bb7b9d0dbe9e0776a89e513e  gcc/testsuite/g++.dg/modules/init-6_b.C
+ cde88381b648ca388094d436f6491fc7  gcc/testsuite/g++.dg/modules/init-7_a.H
+ aa9990e199a4ca7bcea61cc9ef2c7056  gcc/testsuite/g++.dg/modules/init-7_b.C
  30908e323612f1e35765a18cc68bc403  gcc/testsuite/g++.dg/modules/inst-1_a.C
  c1563babb7ad3b33d7a48b6846276373  gcc/testsuite/g++.dg/modules/inst-1_b.C
  3a7d1df29e3e9ca965b7f8c21b60b189  gcc/testsuite/g++.dg/modules/inst-2_a.C
*************** e3676715d9e1f1ebb174393d67b56580  gcc/te
*** 22971,22976 ****
--- 24699,24712 ----
  75c458d0a4e5fd48ebf5fe0a815dc618  gcc/testsuite/g++.dg/modules/lambda-4.h
  3ce346d138ce19438f7c71e4634b4cea  gcc/testsuite/g++.dg/modules/lambda-4_a.H
  d30c873b55b93fa8afc633ee0ae189de  gcc/testsuite/g++.dg/modules/lambda-4_b.C
+ 23c2a0fe1acf9b381b454e2e7fdc493f  gcc/testsuite/g++.dg/modules/lambda-5_a.C
+ ae9a3af4df170ef073f8bd08fed6b35c  gcc/testsuite/g++.dg/modules/lambda-5_b.C
+ 29dcd71cd48f007a0bad4adf3a97f976  gcc/testsuite/g++.dg/modules/lambda-6_a.C
+ e9fdcf0fa0065362d2797bb17a15c71d  gcc/testsuite/g++.dg/modules/lambda-6_b.C
+ 1dd0b81eeecb45a50fb94f0940704c22  gcc/testsuite/g++.dg/modules/lambda-7.h
+ 3345057ab60674f5c399532abf09150c  gcc/testsuite/g++.dg/modules/lambda-7_a.H
+ 5be1ae47b01607dac87360aded4edc07  gcc/testsuite/g++.dg/modules/lambda-7_b.C
+ 33861865626324fceeda2c2492590473  gcc/testsuite/g++.dg/modules/lambda-7_c.C
  339bacba8e80ec5eeefc4bb1a3dba7ba  gcc/testsuite/g++.dg/modules/lang-1_a.H
  6340d54fa6505dc3e1f348d4eb7c40ff  gcc/testsuite/g++.dg/modules/lang-1_b.C
  59ccc3469393fd4a35b408bbf78b94d9  gcc/testsuite/g++.dg/modules/lang-1_c.C
*************** d7d7e27d0e139fa841601b198a24f426  gcc/te
*** 23046,23051 ****
--- 24782,24791 ----
  6be71fb1f101e2854eadfb51e10a3f21  gcc/testsuite/g++.dg/modules/legacy-8_e.C
  0feb5f91ea1d83dc6a56699a6cf47e4f  gcc/testsuite/g++.dg/modules/libfn-1_a.C
  de079e1ffd5d086ec2d06480cd780d88  gcc/testsuite/g++.dg/modules/libfn-1_b.C
+ be49fa67b6c176809aff326be6b0f237  gcc/testsuite/g++.dg/modules/linkage-1_a.C
+ f7e0589fd2609f4ab4f76fefd8e718d0  gcc/testsuite/g++.dg/modules/linkage-1_b.C
+ 94e231dd113d90f12e5fb7bc94289744  gcc/testsuite/g++.dg/modules/linkage-1_c.C
+ b2bf69e312cc78a8948c5368973e086e  gcc/testsuite/g++.dg/modules/linkage-2.C
  ff959189b1f27ff5d9f9973b727b39fb  gcc/testsuite/g++.dg/modules/literals-1_a.C
  6c8bcc94aaf7310fc4d5df2b8e2e6426  gcc/testsuite/g++.dg/modules/literals-1_b.C
  a1c73182260914d493b7e86a0a904c5b  gcc/testsuite/g++.dg/modules/loc-1_a.C
*************** ddb273cbc07eab5b86b37390799d6b67  gcc/te
*** 23081,23095 ****
  0148808b241508a60193064d0b20dff7  gcc/testsuite/g++.dg/modules/macro-2_a.H
  62567504f524952292e88bd0435230aa  gcc/testsuite/g++.dg/modules/macro-2_b.H
  c7d8ad261e10cebe64036c183d9da527  gcc/testsuite/g++.dg/modules/macro-2_c.H
! e4b3630d81d3f7824cd663c8e2431e69  gcc/testsuite/g++.dg/modules/macro-2_d.C
  3ea9762252021c55eeb94aaaca6338f8  gcc/testsuite/g++.dg/modules/macro-3_a.H
  d80de6ae02a5d31f77df78abda5b58c1  gcc/testsuite/g++.dg/modules/macro-3_b.H
  c66dbbdd25ccc73ad806cf31aaa568b5  gcc/testsuite/g++.dg/modules/macro-3_c.C
  4a3be8a8ce5681cab24a6d51ace8d81c  gcc/testsuite/g++.dg/modules/macro-4_a.H
  1f055816afac8ef651a33ab24e05921e  gcc/testsuite/g++.dg/modules/macro-4_b.H
  9086d5303c6f219bd968dda5ad61758b  gcc/testsuite/g++.dg/modules/macro-4_c.H
! dfc2a45ae9da800ccc33ab677d6128b1  gcc/testsuite/g++.dg/modules/macro-4_d.C
! 6bcb3c3ca599b4c0c4c87e7139c88787  gcc/testsuite/g++.dg/modules/macro-4_e.C
  a4bc36e1ccc6f99b35c4c9c711fa9b5e  gcc/testsuite/g++.dg/modules/macro-4_f.C
  605ec7376642c6b7d5a4e8a591805a95  gcc/testsuite/g++.dg/modules/macro-4_g.C
  2f7b306efc364836ec067a5050083257  gcc/testsuite/g++.dg/modules/macro-5_a.H
--- 24821,24835 ----
  0148808b241508a60193064d0b20dff7  gcc/testsuite/g++.dg/modules/macro-2_a.H
  62567504f524952292e88bd0435230aa  gcc/testsuite/g++.dg/modules/macro-2_b.H
  c7d8ad261e10cebe64036c183d9da527  gcc/testsuite/g++.dg/modules/macro-2_c.H
! 965b5129abdf01d71cb40ce8d83ecea7  gcc/testsuite/g++.dg/modules/macro-2_d.C
  3ea9762252021c55eeb94aaaca6338f8  gcc/testsuite/g++.dg/modules/macro-3_a.H
  d80de6ae02a5d31f77df78abda5b58c1  gcc/testsuite/g++.dg/modules/macro-3_b.H
  c66dbbdd25ccc73ad806cf31aaa568b5  gcc/testsuite/g++.dg/modules/macro-3_c.C
  4a3be8a8ce5681cab24a6d51ace8d81c  gcc/testsuite/g++.dg/modules/macro-4_a.H
  1f055816afac8ef651a33ab24e05921e  gcc/testsuite/g++.dg/modules/macro-4_b.H
  9086d5303c6f219bd968dda5ad61758b  gcc/testsuite/g++.dg/modules/macro-4_c.H
! 86afff851b74d928589f5531a924b270  gcc/testsuite/g++.dg/modules/macro-4_d.C
! 3ef16c87fa2ac3c47f4edded1af714c9  gcc/testsuite/g++.dg/modules/macro-4_e.C
  a4bc36e1ccc6f99b35c4c9c711fa9b5e  gcc/testsuite/g++.dg/modules/macro-4_f.C
  605ec7376642c6b7d5a4e8a591805a95  gcc/testsuite/g++.dg/modules/macro-4_g.C
  2f7b306efc364836ec067a5050083257  gcc/testsuite/g++.dg/modules/macro-5_a.H
*************** d16216fec3482f9e1caf9bedef521ab5  gcc/te
*** 23135,23140 ****
--- 24875,24886 ----
  ad612066341a6b2452ce9f70926f838b  gcc/testsuite/g++.dg/modules/merge-15.h
  4c96867dfa4d4fd972868534c55366da  gcc/testsuite/g++.dg/modules/merge-15_a.H
  cfe8c498fab66643f98a83cac79e77f5  gcc/testsuite/g++.dg/modules/merge-15_b.C
+ 57a2dd37033dda6f99a12e35abaacf3e  gcc/testsuite/g++.dg/modules/merge-16.h
+ 3988d4b9bb09da6dc6b67d1487e25583  gcc/testsuite/g++.dg/modules/merge-16_a.C
+ f78c4751cda567492334856a2806075f  gcc/testsuite/g++.dg/modules/merge-16_b.C
+ e59422752a14e36da270e2aba8678686  gcc/testsuite/g++.dg/modules/merge-17.h
+ 74c4a79c9fdf8835ff2b792d3255ac02  gcc/testsuite/g++.dg/modules/merge-17_a.H
+ a86953a3ff1628b1d63b12ffe6288868  gcc/testsuite/g++.dg/modules/merge-17_b.C
  c55f90e5ef6f7ab3992f6606da04c6d7  gcc/testsuite/g++.dg/modules/merge-1_a.C
  8dfdc3716d1dda6833ec359936a84a2c  gcc/testsuite/g++.dg/modules/merge-1_b.C
  4f1ab1a658f8fe8b82d453787cd70235  gcc/testsuite/g++.dg/modules/merge-2_a.H
*************** ae4483640acf3f2232b2a5d94c079882  gcc/te
*** 23183,23188 ****
--- 24929,24935 ----
  2b4f3029fd3379573a362776e39e419f  gcc/testsuite/g++.dg/modules/mod-indirect-1_c.C
  54168c89f3133eed8b6b92b1fc2045c5  gcc/testsuite/g++.dg/modules/mod-indirect-1_d.C
  de6660e4acc49035a9e5e9821835deb7  gcc/testsuite/g++.dg/modules/mod-indirect-1_e.C
+ 571573fc8dcccccc7b54274e03d5edfe  gcc/testsuite/g++.dg/modules/mod-invalid-1.C
  0596f8440d6e7faaedea1a0e9a9b0abb  gcc/testsuite/g++.dg/modules/mod-stamp-1_a.C
  9ee990c6915cfcce4c19d1af207e2718  gcc/testsuite/g++.dg/modules/mod-stamp-1_b.C
  8f791002bd4f86102e51942791f60a5e  gcc/testsuite/g++.dg/modules/mod-stamp-1_c.C
*************** b66a905fae26f7efc4eaf3f3c60a6b65  gcc/te
*** 23195,23201 ****
  e83f9a9aca70673da8258ca0631a2125  gcc/testsuite/g++.dg/modules/mod-tpl-1_b.C
  ad9ef329572dab16f2d3d5613538cd3f  gcc/testsuite/g++.dg/modules/mod-tpl-2_a.C
  95ab3577dee99f3d59838a96f1cbf4fc  gcc/testsuite/g++.dg/modules/mod-tpl-2_b.C
! 1bbab7399b519c9dff6afef5ca7685a9  gcc/testsuite/g++.dg/modules/modules.exp
  f49c118362c9a45e801940d0725a767d  gcc/testsuite/g++.dg/modules/mutual-friend.ii
  ebce3d8effe71472ad6b1910c0b435f6  gcc/testsuite/g++.dg/modules/namespace-1_a.C
  c34c17e18223f5c84607e68a5f2dd81a  gcc/testsuite/g++.dg/modules/namespace-1_b.C
--- 24942,24948 ----
  e83f9a9aca70673da8258ca0631a2125  gcc/testsuite/g++.dg/modules/mod-tpl-1_b.C
  ad9ef329572dab16f2d3d5613538cd3f  gcc/testsuite/g++.dg/modules/mod-tpl-2_a.C
  95ab3577dee99f3d59838a96f1cbf4fc  gcc/testsuite/g++.dg/modules/mod-tpl-2_b.C
! a9732c80a74f11e7e1348abaa79600f6  gcc/testsuite/g++.dg/modules/modules.exp
  f49c118362c9a45e801940d0725a767d  gcc/testsuite/g++.dg/modules/mutual-friend.ii
  ebce3d8effe71472ad6b1910c0b435f6  gcc/testsuite/g++.dg/modules/namespace-1_a.C
  c34c17e18223f5c84607e68a5f2dd81a  gcc/testsuite/g++.dg/modules/namespace-1_b.C
*************** ecd73f07c59c7479f5dd6eefeceeaf84  gcc/te
*** 23207,23212 ****
--- 24954,24964 ----
  c9c28ac9e2974c410a59c8e8dcf70517  gcc/testsuite/g++.dg/modules/namespace-4_a.C
  309e15d16714b62c7df72adfedb0e0c1  gcc/testsuite/g++.dg/modules/namespace-4_b.C
  fa60a80639cb24311477303e0d98d2b7  gcc/testsuite/g++.dg/modules/namespace-4_c.C
+ b81dcee501c442dd0853338ccd90de96  gcc/testsuite/g++.dg/modules/namespace-5_a.C
+ c49d957a7756803ada5b07b344a17582  gcc/testsuite/g++.dg/modules/namespace-5_b.C
+ e3b26cd297bbf629e08e59f458ba2887  gcc/testsuite/g++.dg/modules/namespace-5_c.C
+ c7ee628b9bb8433e87d87a5ed98d0da6  gcc/testsuite/g++.dg/modules/namespace-6_a.H
+ f11bca3804e59924f208cd381adb0539  gcc/testsuite/g++.dg/modules/namespace-6_b.C
  df4019992d5e5a1273b138d6bd686af4  gcc/testsuite/g++.dg/modules/nest-1_a.C
  4473568de7cd981f9865964a715d52c9  gcc/testsuite/g++.dg/modules/nest-1_b.C
  30dd50d7bea9010cc0f08e61a8de0daa  gcc/testsuite/g++.dg/modules/nest-1_c.C
*************** f393f31348fe15bf7b4624e5ca1f4f88  gcc/te
*** 23255,23260 ****
--- 25007,25026 ----
  6fb875df6869ba99b747dcf36b733deb  gcc/testsuite/g++.dg/modules/p0713-1.C
  ff696e0f510ea557c23989199362bba3  gcc/testsuite/g++.dg/modules/p0713-2.C
  cc14aa73d152fe3714edc19282ab0a15  gcc/testsuite/g++.dg/modules/p0713-3.C
+ 3b484fdb158da6ff7334dcf3ba688006  gcc/testsuite/g++.dg/modules/p1689-1.C
+ b5d39611c8637e80d31860bfe009f26d  gcc/testsuite/g++.dg/modules/p1689-1.exp.ddi
+ a4dd29d184113b2c73c0e43ace85188f  gcc/testsuite/g++.dg/modules/p1689-2.C
+ 72ba6c808a154fbd541553054955180f  gcc/testsuite/g++.dg/modules/p1689-2.exp.ddi
+ 9447608405834c91ea1f192df53f1980  gcc/testsuite/g++.dg/modules/p1689-3.C
+ 64457d26de118f8fec988c1c17ab1e41  gcc/testsuite/g++.dg/modules/p1689-3.exp.ddi
+ c16540322b53e27a2e30af00787ee9a8  gcc/testsuite/g++.dg/modules/p1689-4.C
+ c7ff1466ffcacc0018d60f7d10377499  gcc/testsuite/g++.dg/modules/p1689-4.exp.ddi
+ e65e27437bef7c4819b368f46af2ff8a  gcc/testsuite/g++.dg/modules/p1689-5.C
+ 9e3d50d69413ceebe7c3c1d287f323f6  gcc/testsuite/g++.dg/modules/p1689-5.exp.ddi
+ a528ddb3fc05758fe7f1cc43eec09f7d  gcc/testsuite/g++.dg/modules/p1689-file-default.C
+ 9aa108d57c61ba6306b9d22f539b1204  gcc/testsuite/g++.dg/modules/p1689-file-default.exp.ddi
+ e957d0bb77992ee1df76972e1b650438  gcc/testsuite/g++.dg/modules/p1689-target-default.C
+ b526eccf4125841f7887f3c52a4ad9c3  gcc/testsuite/g++.dg/modules/p1689-target-default.exp.ddi
  c05001e1ed1bc8701ae61710ad3585cd  gcc/testsuite/g++.dg/modules/part-1_a.C
  8cc6c00af73d534c5bcd66d9d7757f8c  gcc/testsuite/g++.dg/modules/part-1_b.C
  103cfc3318415410b659f66bfb16f1bf  gcc/testsuite/g++.dg/modules/part-1_c.C
*************** d59eb8fb4e76b8bc0f9e514c192189b8  gcc/te
*** 23281,23292 ****
  313fe2b20e8cde7e78b0d13627486021  gcc/testsuite/g++.dg/modules/part-7_a.C
  eb2a1afb9a4c89e577b3c59dcae4271d  gcc/testsuite/g++.dg/modules/part-7_b.C
  5b39859e1f2d22d859bb78e9eff78da0  gcc/testsuite/g++.dg/modules/part-7_c.C
  4a63ea2156774361bdb95ea0657e42a8  gcc/testsuite/g++.dg/modules/part-hdr-1_a.H
  f81067b696c43b08df9acdf613c63e43  gcc/testsuite/g++.dg/modules/part-hdr-1_b.C
! e366846489950b58c52df35a27846525  gcc/testsuite/g++.dg/modules/part-hdr-1_c.C
  ba7d48392796734c4987c87b6436e0ce  gcc/testsuite/g++.dg/modules/part-mac-1_a.H
  82898be3b0684369c261ee7bf3005de6  gcc/testsuite/g++.dg/modules/part-mac-1_b.C
! e366846489950b58c52df35a27846525  gcc/testsuite/g++.dg/modules/part-mac-1_c.C
  6dce6b530852880662a2a88b22a82982  gcc/testsuite/g++.dg/modules/partial-1.h
  6dbe3ef9e0f9f227062003ba18e1cc0b  gcc/testsuite/g++.dg/modules/partial-1_a.H
  cc4a92d4663ab8a3eb6403f1efd63522  gcc/testsuite/g++.dg/modules/partial-1_b.C
--- 25047,25061 ----
  313fe2b20e8cde7e78b0d13627486021  gcc/testsuite/g++.dg/modules/part-7_a.C
  eb2a1afb9a4c89e577b3c59dcae4271d  gcc/testsuite/g++.dg/modules/part-7_b.C
  5b39859e1f2d22d859bb78e9eff78da0  gcc/testsuite/g++.dg/modules/part-7_c.C
+ ed4009acfaafc72a9c17c6bede9da165  gcc/testsuite/g++.dg/modules/part-8_a.C
+ 3fba23720bf7956014d4f5c1c5b9f528  gcc/testsuite/g++.dg/modules/part-8_b.C
+ d46b72bf5f8745e2b9ee6e10e2abe85e  gcc/testsuite/g++.dg/modules/part-8_c.C
  4a63ea2156774361bdb95ea0657e42a8  gcc/testsuite/g++.dg/modules/part-hdr-1_a.H
  f81067b696c43b08df9acdf613c63e43  gcc/testsuite/g++.dg/modules/part-hdr-1_b.C
! f8c7b9c77a2d78922944e4a890104ea9  gcc/testsuite/g++.dg/modules/part-hdr-1_c.C
  ba7d48392796734c4987c87b6436e0ce  gcc/testsuite/g++.dg/modules/part-mac-1_a.H
  82898be3b0684369c261ee7bf3005de6  gcc/testsuite/g++.dg/modules/part-mac-1_b.C
! f8c7b9c77a2d78922944e4a890104ea9  gcc/testsuite/g++.dg/modules/part-mac-1_c.C
  6dce6b530852880662a2a88b22a82982  gcc/testsuite/g++.dg/modules/partial-1.h
  6dbe3ef9e0f9f227062003ba18e1cc0b  gcc/testsuite/g++.dg/modules/partial-1_a.H
  cc4a92d4663ab8a3eb6403f1efd63522  gcc/testsuite/g++.dg/modules/partial-1_b.C
*************** f015c0ff1908f1befd40f6bb952b56db  gcc/te
*** 23311,23326 ****
  16afad71e1a1a8502b6e6aec951409cc  gcc/testsuite/g++.dg/modules/pr101582-1.C
  db0f88a1a0903d3b5720c3d056d72619  gcc/testsuite/g++.dg/modules/pr102576_a.H
  d63d1b5264d1459902abfe8a3c7f8963  gcc/testsuite/g++.dg/modules/pr102576_b.C
  bfdd6003f0822a40b3e827ec67fc868a  gcc/testsuite/g++.dg/modules/pr105045_a.C
  716af8bc47e26f3ef23e375920c3beaf  gcc/testsuite/g++.dg/modules/pr105045_b.C
  4f11306441549f37f4e5b56e8deeef62  gcc/testsuite/g++.dg/modules/pr105169.h
  31298b300e750008bf908fd1756b1006  gcc/testsuite/g++.dg/modules/pr105169_a.C
  3237950d5a1f633eaca47f25748b2426  gcc/testsuite/g++.dg/modules/pr105169_b.C
  5575c4b179039e0db48d03d5389d0e88  gcc/testsuite/g++.dg/modules/pr106304_a.C
! 065e72a68affa81a8cf3ffafd8ccdcf9  gcc/testsuite/g++.dg/modules/pr106304_b.C
  bb0626047fc0ed25b166e49e15e90815  gcc/testsuite/g++.dg/modules/pr106761.h
  d71ad1e42d5edd10bf65dd64c81a4107  gcc/testsuite/g++.dg/modules/pr106761_a.H
  57c308104a9d589b59baa6c5289ef1ae  gcc/testsuite/g++.dg/modules/pr106761_b.C
  56ba9e2a41b995724a511df79d8df541  gcc/testsuite/g++.dg/modules/pr98531-1.h
  7155fba8679861dc6ac8879b5f49a6eb  gcc/testsuite/g++.dg/modules/pr98531-1_a.H
  db36409e89afb58e627178caf0f3d7d5  gcc/testsuite/g++.dg/modules/pr98531-1_b.C
--- 25080,25111 ----
  16afad71e1a1a8502b6e6aec951409cc  gcc/testsuite/g++.dg/modules/pr101582-1.C
  db0f88a1a0903d3b5720c3d056d72619  gcc/testsuite/g++.dg/modules/pr102576_a.H
  d63d1b5264d1459902abfe8a3c7f8963  gcc/testsuite/g++.dg/modules/pr102576_b.C
+ 7131d1d83ecb1f6b0a4b29dd2af3c2d0  gcc/testsuite/g++.dg/modules/pr103499_a.C
+ 2b2b6a3c9e91e4268c95735ab1b4f67b  gcc/testsuite/g++.dg/modules/pr103499_b.C
+ 0a94ab4d4c759234806a0c24e7238e26  gcc/testsuite/g++.dg/modules/pr104040_a.C
+ 89679bc317729e436dc3495a76575c6d  gcc/testsuite/g++.dg/modules/pr104040_b.C
+ 7ebdac159ed63712199a33eff3351554  gcc/testsuite/g++.dg/modules/pr104234.C
  bfdd6003f0822a40b3e827ec67fc868a  gcc/testsuite/g++.dg/modules/pr105045_a.C
  716af8bc47e26f3ef23e375920c3beaf  gcc/testsuite/g++.dg/modules/pr105045_b.C
  4f11306441549f37f4e5b56e8deeef62  gcc/testsuite/g++.dg/modules/pr105169.h
  31298b300e750008bf908fd1756b1006  gcc/testsuite/g++.dg/modules/pr105169_a.C
  3237950d5a1f633eaca47f25748b2426  gcc/testsuite/g++.dg/modules/pr105169_b.C
  5575c4b179039e0db48d03d5389d0e88  gcc/testsuite/g++.dg/modules/pr106304_a.C
! b178cbe194a890f4a6a1b16757fa4baf  gcc/testsuite/g++.dg/modules/pr106304_b.C
! 13c31cf51702e0b82e7cd4ca1759f765  gcc/testsuite/g++.dg/modules/pr106363_a.C
! d4bc0532ad3d38a5d2f6b3437a5054df  gcc/testsuite/g++.dg/modules/pr106363_b.C
  bb0626047fc0ed25b166e49e15e90815  gcc/testsuite/g++.dg/modules/pr106761.h
  d71ad1e42d5edd10bf65dd64c81a4107  gcc/testsuite/g++.dg/modules/pr106761_a.H
  57c308104a9d589b59baa6c5289ef1ae  gcc/testsuite/g++.dg/modules/pr106761_b.C
+ ce1fbbd73d685e48bf6b219484083996  gcc/testsuite/g++.dg/modules/pr106820_a.H
+ d7c5aacc3100ff130d9b06f0b4d7b551  gcc/testsuite/g++.dg/modules/pr106820_b.C
+ 669553f14966298da7253a85823b66a3  gcc/testsuite/g++.dg/modules/pr113292_a.H
+ cd5ddb2e4010c4465cfdaa5041aae30c  gcc/testsuite/g++.dg/modules/pr113292_b.C
+ bc73258710da8d559003bba31dc77dac  gcc/testsuite/g++.dg/modules/pr113292_c.C
+ d6c4487b2cdfe513fca59a9da2b03d10  gcc/testsuite/g++.dg/modules/pr113580_a.C
+ 2d13920b57e09bfba57cfacc02b5548b  gcc/testsuite/g++.dg/modules/pr113580_b.C
+ b0187e4110d3e1feaedea59af55274e1  gcc/testsuite/g++.dg/modules/pr114005_a.C
+ 9a830736ad4852377f9505b91e245a59  gcc/testsuite/g++.dg/modules/pr114005_b.C
  56ba9e2a41b995724a511df79d8df541  gcc/testsuite/g++.dg/modules/pr98531-1.h
  7155fba8679861dc6ac8879b5f49a6eb  gcc/testsuite/g++.dg/modules/pr98531-1_a.H
  db36409e89afb58e627178caf0f3d7d5  gcc/testsuite/g++.dg/modules/pr98531-1_b.C
*************** ba54387ee46c4fb19a3ab9a4844cfd61  gcc/te
*** 23346,23353 ****
  ffae0410baa0cf1f144b964387bfbcfe  gcc/testsuite/g++.dg/modules/pr98944_b.C
  701cfcc8c357aa094f34aa029490f60d  gcc/testsuite/g++.dg/modules/pr98944_c.C
  a3323ba22bbfa9772b24db538aeb6eed  gcc/testsuite/g++.dg/modules/pr98944_d.C
! af1b95042fd2d6b253524aa91fe9a321  gcc/testsuite/g++.dg/modules/pr99023_a.X
! 40a47188a63c8c6aa72bc61eb0844ab0  gcc/testsuite/g++.dg/modules/pr99023_b.X
  fa6f37da884582c7c5b2c64f3ff374c1  gcc/testsuite/g++.dg/modules/pr99039_a.C
  a44f9dc7dfc41fee43a04d3fce2ab510  gcc/testsuite/g++.dg/modules/pr99039_b.C
  7fdbdbd01fa4fd6223aaad6e202ea497  gcc/testsuite/g++.dg/modules/pr99040_a.C
--- 25131,25138 ----
  ffae0410baa0cf1f144b964387bfbcfe  gcc/testsuite/g++.dg/modules/pr98944_b.C
  701cfcc8c357aa094f34aa029490f60d  gcc/testsuite/g++.dg/modules/pr98944_c.C
  a3323ba22bbfa9772b24db538aeb6eed  gcc/testsuite/g++.dg/modules/pr98944_d.C
! 6138ea4be8c21ded43ebed9e16839cee  gcc/testsuite/g++.dg/modules/pr99023_a.X
! b00fa9b712233a2723b7b98c8afa7030  gcc/testsuite/g++.dg/modules/pr99023_b.X
  fa6f37da884582c7c5b2c64f3ff374c1  gcc/testsuite/g++.dg/modules/pr99039_a.C
  a44f9dc7dfc41fee43a04d3fce2ab510  gcc/testsuite/g++.dg/modules/pr99039_b.C
  7fdbdbd01fa4fd6223aaad6e202ea497  gcc/testsuite/g++.dg/modules/pr99040_a.C
*************** fcd1d8752bf031b8281ba50f1df03921  gcc/te
*** 23376,23383 ****
--- 25161,25171 ----
  f6ff77ccf9f6f071738a6e9b57b6c50c  gcc/testsuite/g++.dg/modules/pr99174-1_b.C
  c72f8c02b8850ae0ab3c120cd41906d9  gcc/testsuite/g++.dg/modules/pr99174-1_c.C
  65fd975813cd4e8941155001c2700bf0  gcc/testsuite/g++.dg/modules/pr99174.H
+ 9bd074c360bd29524e20b4eaa803a41f  gcc/testsuite/g++.dg/modules/pr99187.C
  9f93a8608e38c668198868d8ea01a717  gcc/testsuite/g++.dg/modules/pr99208_a.C
  bd48a321958cd7a20645f65f2d7dc5bb  gcc/testsuite/g++.dg/modules/pr99208_b.C
+ 67a4f7ea6de979bc0b58dad3a158471f  gcc/testsuite/g++.dg/modules/pr99232_a.C
+ 815514bc7f6f8e9a6bd6f1d82ac8eb2f  gcc/testsuite/g++.dg/modules/pr99232_b.C
  75f0971659a67408d087f0737975f10e  gcc/testsuite/g++.dg/modules/pr99238.h
  109109d5d7c253bc78b74a2031dbba40  gcc/testsuite/g++.dg/modules/pr99238_a.H
  3d16f02398903cf0cae686b31f568ff9  gcc/testsuite/g++.dg/modules/pr99238_b.H
*************** fef22f03937836b2e6643435fd0ff30a  gcc/te
*** 23420,23425 ****
--- 25208,25217 ----
  187d55b7ea81342dd730c889ce2e54b0  gcc/testsuite/g++.dg/modules/pr99344_b.C
  1d3b24b6b017d00f539b978627a6e4cf  gcc/testsuite/g++.dg/modules/pr99377-2_a.C
  e1790540954e09049a88bca416297f44  gcc/testsuite/g++.dg/modules/pr99377-2_b.C
+ 72d952afb0e377160e7d8a9296bf940a  gcc/testsuite/g++.dg/modules/pr99377-3_a.H
+ 10b0708e7603c97e861d0d188167e8f9  gcc/testsuite/g++.dg/modules/pr99377-3_b.C
+ f9e498b8f70950eb5a9c711b1d3515f2  gcc/testsuite/g++.dg/modules/pr99377-3_c.C
+ 9969d4c524ced3ed0f5dd9e20c2a2e6a  gcc/testsuite/g++.dg/modules/pr99377-3_d.C
  5eb3328674ac9b14d498980dc0ef26dd  gcc/testsuite/g++.dg/modules/pr99377_a.H
  add697b9dad03234b264f8eed3625f24  gcc/testsuite/g++.dg/modules/pr99377_b.C
  ca57a8cb09eb7df5c27154b21d6289a9  gcc/testsuite/g++.dg/modules/pr99377_c.C
*************** c37810207a06a1928195c0efeff0eb23  gcc/te
*** 23430,23436 ****
  078d456f277edb436cd11a9e84317b0f  gcc/testsuite/g++.dg/modules/pr99423_b.H
  ce7cd849a44e48fa8e8bd6c2d9e3e67d  gcc/testsuite/g++.dg/modules/pr99425-1.h
  47ee279973d36a0112cfffaf385ea5c1  gcc/testsuite/g++.dg/modules/pr99425-1_a.H
! a2d67b9b9a3f38858f22901e06e2023a  gcc/testsuite/g++.dg/modules/pr99425-1_b.H
  de4c9079b3ad276f569faf6a0394e836  gcc/testsuite/g++.dg/modules/pr99425-1_c.C
  d4766744800e02903dd697bb7711d230  gcc/testsuite/g++.dg/modules/pr99425-2_a.X
  d28b40c4a9fe5f71617519108d0959da  gcc/testsuite/g++.dg/modules/pr99425-2_b.X
--- 25222,25228 ----
  078d456f277edb436cd11a9e84317b0f  gcc/testsuite/g++.dg/modules/pr99423_b.H
  ce7cd849a44e48fa8e8bd6c2d9e3e67d  gcc/testsuite/g++.dg/modules/pr99425-1.h
  47ee279973d36a0112cfffaf385ea5c1  gcc/testsuite/g++.dg/modules/pr99425-1_a.H
! 0707226aa7dbd8302f7b69ba303ac4ec  gcc/testsuite/g++.dg/modules/pr99425-1_b.H
  de4c9079b3ad276f569faf6a0394e836  gcc/testsuite/g++.dg/modules/pr99425-1_c.C
  d4766744800e02903dd697bb7711d230  gcc/testsuite/g++.dg/modules/pr99425-2_a.X
  d28b40c4a9fe5f71617519108d0959da  gcc/testsuite/g++.dg/modules/pr99425-2_b.X
*************** b305a2ddbd9037e08a2b28849be93359  gcc/te
*** 23498,23503 ****
--- 25290,25301 ----
  b16f7be3671fae9aa6d895a84cc2dd2f  gcc/testsuite/g++.dg/modules/sym-subst-5.C
  bb081f69fb6114236592fcbfb3007d95  gcc/testsuite/g++.dg/modules/sym-subst-6.C
  fbd4c9345f73c8edbbeb1bfe02293ed7  gcc/testsuite/g++.dg/modules/sys/inext-1.H
+ 6775588a49776498e27f0efd76d4f609  gcc/testsuite/g++.dg/modules/target-aarch64-1_a.C
+ fbf756c1894315950c771fe46185b225  gcc/testsuite/g++.dg/modules/target-aarch64-1_b.C
+ e7e93b16e366009931387b30719d7a9c  gcc/testsuite/g++.dg/modules/target-powerpc-1_a.C
+ c42be1032b18e0484e4fbfdd7794b3ba  gcc/testsuite/g++.dg/modules/target-powerpc-1_b.C
+ a3f31f0a5e36559a3b90ab7fb0bdf857  gcc/testsuite/g++.dg/modules/target-powerpc-2_a.C
+ 0446decd2c1160e230d3532ba48fdc0c  gcc/testsuite/g++.dg/modules/target-powerpc-2_b.C
  ea4b5904f70eebbbb3d51fadf842357a  gcc/testsuite/g++.dg/modules/tdef-1_a.C
  2a121abd95086507345a5cc1fea0ba42  gcc/testsuite/g++.dg/modules/tdef-1_b.C
  6ddfca76e54474a52104f68b332388fa  gcc/testsuite/g++.dg/modules/tdef-2_a.C
*************** c252fd4bd8cad42078d6d12dc9ce54f6  gcc/te
*** 23513,23526 ****
  d81de9ac9a370d0a7ca30221ad55dfe7  gcc/testsuite/g++.dg/modules/tdef-5_b.C
  ddbe8bda580e29c1d5c59f71487e5113  gcc/testsuite/g++.dg/modules/tdef-6_a.H
  a2a2eb6b00ccf170c28aa99bb439af41  gcc/testsuite/g++.dg/modules/tdef-6_b.C
! 77a879a26ae4640326dfd794e435a66b  gcc/testsuite/g++.dg/modules/tdef-7.h
  473122f7351d33177ba8e0a028cf694c  gcc/testsuite/g++.dg/modules/tdef-7_a.H
! c856f3770a45bfa8b4d209a61967e702  gcc/testsuite/g++.dg/modules/tdef-7_b.C
  6696a10cc3711d4800a82f13a2215909  gcc/testsuite/g++.dg/modules/tdef-8_a.C
  9a72a1672c5546e622c228d0b60ca0b2  gcc/testsuite/g++.dg/modules/tdef-8_b.C
  21ea96e94a43b998b132a6068a50c73b  gcc/testsuite/g++.dg/modules/tdef-inst-1.h
  489c5e2999bf8c59a45b7da2cceb4263  gcc/testsuite/g++.dg/modules/tdef-inst-1_a.C
  e7946cb9ca0e05cd9aa5194c00847d3f  gcc/testsuite/g++.dg/modules/tdef-inst-1_b.C
  4ee1b098ceb95d001b4cea367f4c6ebb  gcc/testsuite/g++.dg/modules/thunk-1_a.C
  69d722c6c58df72cabc0c72876607de8  gcc/testsuite/g++.dg/modules/thunk-1_b.C
  f16e5ebd7556493c43cc2faf1b348ae3  gcc/testsuite/g++.dg/modules/tinfo-1.C
--- 25311,25326 ----
  d81de9ac9a370d0a7ca30221ad55dfe7  gcc/testsuite/g++.dg/modules/tdef-5_b.C
  ddbe8bda580e29c1d5c59f71487e5113  gcc/testsuite/g++.dg/modules/tdef-6_a.H
  a2a2eb6b00ccf170c28aa99bb439af41  gcc/testsuite/g++.dg/modules/tdef-6_b.C
! c91c32cc6da48fa1750643064a8936bb  gcc/testsuite/g++.dg/modules/tdef-7.h
  473122f7351d33177ba8e0a028cf694c  gcc/testsuite/g++.dg/modules/tdef-7_a.H
! 22091a3212bba543e54ea410cdd496b2  gcc/testsuite/g++.dg/modules/tdef-7_b.C
  6696a10cc3711d4800a82f13a2215909  gcc/testsuite/g++.dg/modules/tdef-8_a.C
  9a72a1672c5546e622c228d0b60ca0b2  gcc/testsuite/g++.dg/modules/tdef-8_b.C
  21ea96e94a43b998b132a6068a50c73b  gcc/testsuite/g++.dg/modules/tdef-inst-1.h
  489c5e2999bf8c59a45b7da2cceb4263  gcc/testsuite/g++.dg/modules/tdef-inst-1_a.C
  e7946cb9ca0e05cd9aa5194c00847d3f  gcc/testsuite/g++.dg/modules/tdef-inst-1_b.C
+ e477359665d29b56320080e76b625816  gcc/testsuite/g++.dg/modules/test-depfile.py
+ 1627cb0ba276312fba8e8c9134461bc1  gcc/testsuite/g++.dg/modules/test-p1689.py
  4ee1b098ceb95d001b4cea367f4c6ebb  gcc/testsuite/g++.dg/modules/thunk-1_a.C
  69d722c6c58df72cabc0c72876607de8  gcc/testsuite/g++.dg/modules/thunk-1_b.C
  f16e5ebd7556493c43cc2faf1b348ae3  gcc/testsuite/g++.dg/modules/tinfo-1.C
*************** b73a077a0ab38a01c81ddb318de1bfe3  gcc/te
*** 23541,23548 ****
  49975dbba17cade48151fd60bf99176f  gcc/testsuite/g++.dg/modules/token-4.C
  9608f5db1e481a09223505097802644d  gcc/testsuite/g++.dg/modules/token-5.C
  e94085704a235d4ed1f290404d2dd7e2  gcc/testsuite/g++.dg/modules/tpl-alias-1.h
! df2ce42357122835dcedaec11a445552  gcc/testsuite/g++.dg/modules/tpl-alias-1_a.H
  9b18f4bfd07781fe50356e9a44c31ca2  gcc/testsuite/g++.dg/modules/tpl-alias-1_b.C
  65517e84ed3e59784e4372c3dc247bcd  gcc/testsuite/g++.dg/modules/tpl-ary-1.h
  5fa04fc801d430e5dbd1dab1459cca84  gcc/testsuite/g++.dg/modules/tpl-ary-1_a.H
  d3a54a49a1ba81d237d4bf20e66aac82  gcc/testsuite/g++.dg/modules/tpl-ary-1_b.C
--- 25341,25350 ----
  49975dbba17cade48151fd60bf99176f  gcc/testsuite/g++.dg/modules/token-4.C
  9608f5db1e481a09223505097802644d  gcc/testsuite/g++.dg/modules/token-5.C
  e94085704a235d4ed1f290404d2dd7e2  gcc/testsuite/g++.dg/modules/tpl-alias-1.h
! 3e9f055ddbe0631b95e360bc056b6c09  gcc/testsuite/g++.dg/modules/tpl-alias-1_a.H
  9b18f4bfd07781fe50356e9a44c31ca2  gcc/testsuite/g++.dg/modules/tpl-alias-1_b.C
+ b80595610952ed1f147e0e18bd0f9820  gcc/testsuite/g++.dg/modules/tpl-alias-2_a.H
+ 8811f1465e89a7e3068fd7e1e0fefcb2  gcc/testsuite/g++.dg/modules/tpl-alias-2_b.C
  65517e84ed3e59784e4372c3dc247bcd  gcc/testsuite/g++.dg/modules/tpl-ary-1.h
  5fa04fc801d430e5dbd1dab1459cca84  gcc/testsuite/g++.dg/modules/tpl-ary-1_a.H
  d3a54a49a1ba81d237d4bf20e66aac82  gcc/testsuite/g++.dg/modules/tpl-ary-1_b.C
*************** f53853f3e59f32e37b5b9941e4c50056  gcc/te
*** 23606,23611 ****
--- 25408,25417 ----
  1c56a9cb510ef23c13f8a119062f900c  gcc/testsuite/g++.dg/modules/tpl-tpl-parm-2.h
  252df98addda5b956a41ee5cc242a3d1  gcc/testsuite/g++.dg/modules/tpl-tpl-parm-2_a.H
  3b78a6420a91e57cb39eba23453abe12  gcc/testsuite/g++.dg/modules/tpl-tpl-parm-2_b.C
+ 79675d3f73a1296d2c32399b7bfe6c17  gcc/testsuite/g++.dg/modules/tpl-tpl-parm-3.h
+ 6de4d64ab673f4c864f7f9355d0f158e  gcc/testsuite/g++.dg/modules/tpl-tpl-parm-3_a.H
+ 9d72b28d04661ff294d2f0a1b686afa5  gcc/testsuite/g++.dg/modules/tpl-tpl-parm-3_b.C
+ 55049c93d0cb15c1b9a86e82723c770c  gcc/testsuite/g++.dg/modules/tpl-tpl-parm-3_c.C
  3ea9228cba4614a8473ad18f8afe66bb  gcc/testsuite/g++.dg/modules/tplmem-1_a.C
  4814bd5f82df53868ae07daa570e3f50  gcc/testsuite/g++.dg/modules/tplmem-1_b.C
  e15357c9ac25080b25626bc78516e02b  gcc/testsuite/g++.dg/modules/tplmem-3_a.C
*************** b56edd1f3ed182e1e681ca48a66740bf  gcc/te
*** 23626,23631 ****
--- 25432,25446 ----
  e4a6306468bce09f1c68b8841c79217d  gcc/testsuite/g++.dg/modules/used-1_a.H
  59b1ee96e3967482f0bbb3d3c8233b09  gcc/testsuite/g++.dg/modules/used-1_b.H
  0931ec969846c0231395079d6d6cd55b  gcc/testsuite/g++.dg/modules/used-1_c.C
+ 0bf75c05effb09fd29cf1c480d742cc0  gcc/testsuite/g++.dg/modules/using-10.C
+ e18d2e409af4520a277a35cdf050fa61  gcc/testsuite/g++.dg/modules/using-11.h
+ 7cf2b3d332cc7d477ff702d517bd17aa  gcc/testsuite/g++.dg/modules/using-11_a.C
+ 62cde381c22cbe98c472b1ef67c37920  gcc/testsuite/g++.dg/modules/using-11_b.C
+ 4c02f9e241ce572193ccf35ac585b6f2  gcc/testsuite/g++.dg/modules/using-12.C
+ d78fb48d71dc2651bcc90b816c61d8cf  gcc/testsuite/g++.dg/modules/using-13.h
+ 027b7ba92f2e8c367c741de9b5173d48  gcc/testsuite/g++.dg/modules/using-13_a.C
+ 8131ac12982c54b20f20025b68f7fb63  gcc/testsuite/g++.dg/modules/using-13_b.C
+ 95c879201213c21041377b02ea463c2d  gcc/testsuite/g++.dg/modules/using-14.C
  d1bb4b9f574e484059e6aed78c592b09  gcc/testsuite/g++.dg/modules/using-1_a.C
  9117c391ec874e241340d0076cae8490  gcc/testsuite/g++.dg/modules/using-1_b.C
  fb3dbacda6463c6d08dd383a53fee3f7  gcc/testsuite/g++.dg/modules/using-1_c.C
*************** bbdcba8100255b764adf52e756836716  gcc/te
*** 23642,23661 ****
  2dc02daab2156be8c7218e8e03460a83  gcc/testsuite/g++.dg/modules/using-7.C
  f4344ac47fb7c4a34242c5b78f6b9c9e  gcc/testsuite/g++.dg/modules/using-8_a.C
  397b69c332ef27a5d426c8de689490c8  gcc/testsuite/g++.dg/modules/using-8_b.C
  049f8f601c4bdc1afd389a14a09a4c68  gcc/testsuite/g++.dg/modules/using-enum-1_a.H
  c9f2d72a8dee37071e77211f901a236f  gcc/testsuite/g++.dg/modules/using-enum-1_b.C
  5bb95ddb69a1aaef4a3d6c5521bc7637  gcc/testsuite/g++.dg/modules/var-1_a.C
  efdc24cd50e9b94c305919ac428b2a71  gcc/testsuite/g++.dg/modules/var-1_b.C
  e89823e1ba3dc96a18ef91f3e9ee167c  gcc/testsuite/g++.dg/modules/var-tpl-1_a.C
  eb2ad12d4827c51d7751ae4192a8fae0  gcc/testsuite/g++.dg/modules/var-tpl-1_b.C
  5f8cf2838a372b40a928ec329398609d  gcc/testsuite/g++.dg/modules/var-tpl-concept-1.h
  adc4f32bd70209871e3deed494628f03  gcc/testsuite/g++.dg/modules/var-tpl-concept-1_a.C
  5363cb6d035a0839de3364cef17f901a  gcc/testsuite/g++.dg/modules/var-tpl-concept-1_b.C
  c1b40f22d6234f4c5283687a112d1f6e  gcc/testsuite/g++.dg/modules/virt-1_a.C
  ef900fef308d0ecbd503017332905389  gcc/testsuite/g++.dg/modules/virt-1_b.C
  6647f96807ca5ce9d3943016c54e5327  gcc/testsuite/g++.dg/modules/virt-2_a.C
! 35a755a2f769813335533080fb611f80  gcc/testsuite/g++.dg/modules/virt-2_b.C
  04591658e0d8d0795e7f23f57ba2c242  gcc/testsuite/g++.dg/modules/virt-2_c.C
  1127461faa60a09d4c3f0ce98cd9d08b  gcc/testsuite/g++.dg/modules/vmort-1_a.C
  e4510618d0f219adedac6528c5d88023  gcc/testsuite/g++.dg/modules/vmort-1_b.C
  fd51a80db9cdb5d0aca98cd21e6b7bb6  gcc/testsuite/g++.dg/modules/vmort-2_a.C
--- 25457,25486 ----
  2dc02daab2156be8c7218e8e03460a83  gcc/testsuite/g++.dg/modules/using-7.C
  f4344ac47fb7c4a34242c5b78f6b9c9e  gcc/testsuite/g++.dg/modules/using-8_a.C
  397b69c332ef27a5d426c8de689490c8  gcc/testsuite/g++.dg/modules/using-8_b.C
+ 7cdec0711625e20d314e39e376f6482c  gcc/testsuite/g++.dg/modules/using-9.C
  049f8f601c4bdc1afd389a14a09a4c68  gcc/testsuite/g++.dg/modules/using-enum-1_a.H
  c9f2d72a8dee37071e77211f901a236f  gcc/testsuite/g++.dg/modules/using-enum-1_b.C
+ f3175a3819fd4a141016271039342e36  gcc/testsuite/g++.dg/modules/using-enum-2.C
+ 963194864ffbe8cc506f54a697186555  gcc/testsuite/g++.dg/modules/using-enum-3_a.C
+ 07e71289e0706a93e9337880ac07ac85  gcc/testsuite/g++.dg/modules/using-enum-3_b.C
  5bb95ddb69a1aaef4a3d6c5521bc7637  gcc/testsuite/g++.dg/modules/var-1_a.C
  efdc24cd50e9b94c305919ac428b2a71  gcc/testsuite/g++.dg/modules/var-1_b.C
  e89823e1ba3dc96a18ef91f3e9ee167c  gcc/testsuite/g++.dg/modules/var-tpl-1_a.C
  eb2ad12d4827c51d7751ae4192a8fae0  gcc/testsuite/g++.dg/modules/var-tpl-1_b.C
+ d65d9125984c19ea6ff66497f00601bd  gcc/testsuite/g++.dg/modules/var-tpl-2_a.H
+ e5d58e372037d81f2ab827501a19fe60  gcc/testsuite/g++.dg/modules/var-tpl-2_b.C
  5f8cf2838a372b40a928ec329398609d  gcc/testsuite/g++.dg/modules/var-tpl-concept-1.h
  adc4f32bd70209871e3deed494628f03  gcc/testsuite/g++.dg/modules/var-tpl-concept-1_a.C
  5363cb6d035a0839de3364cef17f901a  gcc/testsuite/g++.dg/modules/var-tpl-concept-1_b.C
  c1b40f22d6234f4c5283687a112d1f6e  gcc/testsuite/g++.dg/modules/virt-1_a.C
  ef900fef308d0ecbd503017332905389  gcc/testsuite/g++.dg/modules/virt-1_b.C
  6647f96807ca5ce9d3943016c54e5327  gcc/testsuite/g++.dg/modules/virt-2_a.C
! 512211d9976ebb89fa5cb142e8574a92  gcc/testsuite/g++.dg/modules/virt-2_b.C
  04591658e0d8d0795e7f23f57ba2c242  gcc/testsuite/g++.dg/modules/virt-2_c.C
+ dac30a6fe7993dd8c5e9fc062114cd76  gcc/testsuite/g++.dg/modules/virt-3_a.C
+ 722cad797d5d2f02d667f40e39cd583e  gcc/testsuite/g++.dg/modules/virt-3_b.C
+ 688ee6b33e2ac7189d6e391adeba19a6  gcc/testsuite/g++.dg/modules/virt-3_c.C
+ b633f8aea8cc6476c03a37035a26af77  gcc/testsuite/g++.dg/modules/virt-3_d.C
  1127461faa60a09d4c3f0ce98cd9d08b  gcc/testsuite/g++.dg/modules/vmort-1_a.C
  e4510618d0f219adedac6528c5d88023  gcc/testsuite/g++.dg/modules/vmort-1_b.C
  fd51a80db9cdb5d0aca98cd21e6b7bb6  gcc/testsuite/g++.dg/modules/vmort-2_a.C
*************** c3636cf9dd8b860418b1ec20eca2fcfa  gcc/te
*** 23691,23696 ****
--- 25516,25523 ----
  85dfd677144240809d1219f05d17f8ab  gcc/testsuite/g++.dg/modules/xtreme-header-6_a.H
  dafc999dc77232ecf4da841ea0785153  gcc/testsuite/g++.dg/modules/xtreme-header-6_b.C
  63b82749637ed6fb8c7c3635237b5133  gcc/testsuite/g++.dg/modules/xtreme-header-6_c.C
+ 17ec177cae98b9faed2d659aff2838fc  gcc/testsuite/g++.dg/modules/xtreme-header-7_a.H
+ 7338a7ef617c71253ec289504c03eb22  gcc/testsuite/g++.dg/modules/xtreme-header-7_b.C
  8d28abdd4430cf521ed158aa2999d543  gcc/testsuite/g++.dg/modules/xtreme-header.h
  17ec177cae98b9faed2d659aff2838fc  gcc/testsuite/g++.dg/modules/xtreme-header_a.H
  5c6d89fdd3100b17ff424aaee91d841b  gcc/testsuite/g++.dg/modules/xtreme-header_b.C
*************** da545b524f9533548787d2126af2b0ea  gcc/te
*** 23754,23761 ****
  50ee927cf6fe85c47d711d0cc9801ad4  gcc/testsuite/g++.dg/opt/declone2.C
  84173a62fffb1c226cc2366902d47a65  gcc/testsuite/g++.dg/opt/declone3.C
  903860d0fe2a846a5f1ee14453b38348  gcc/testsuite/g++.dg/opt/delay-slot-1.C
  fc3765afbe4eece1e37074054bfbd3e4  gcc/testsuite/g++.dg/opt/devirt1.C
! 7cb068437fa856224557f1c6ec473a59  gcc/testsuite/g++.dg/opt/devirt2.C
  18b2fa315be06497f45250bc6b3d0343  gcc/testsuite/g++.dg/opt/devirt3.C
  207e50e59cdb4ce8249ec5731fee1bc4  gcc/testsuite/g++.dg/opt/devirt4.C
  ec5d9f18fc8e4f5f3d400f893f659f25  gcc/testsuite/g++.dg/opt/devirt5.C
--- 25581,25589 ----
  50ee927cf6fe85c47d711d0cc9801ad4  gcc/testsuite/g++.dg/opt/declone2.C
  84173a62fffb1c226cc2366902d47a65  gcc/testsuite/g++.dg/opt/declone3.C
  903860d0fe2a846a5f1ee14453b38348  gcc/testsuite/g++.dg/opt/delay-slot-1.C
+ 9c51a57adb6e8319f94337b65b94a130  gcc/testsuite/g++.dg/opt/delay-slot-2.C
  fc3765afbe4eece1e37074054bfbd3e4  gcc/testsuite/g++.dg/opt/devirt1.C
! fbb5c12014513d08b8407fc9c374876b  gcc/testsuite/g++.dg/opt/devirt2.C
  18b2fa315be06497f45250bc6b3d0343  gcc/testsuite/g++.dg/opt/devirt3.C
  207e50e59cdb4ce8249ec5731fee1bc4  gcc/testsuite/g++.dg/opt/devirt4.C
  ec5d9f18fc8e4f5f3d400f893f659f25  gcc/testsuite/g++.dg/opt/devirt5.C
*************** d48bf743fe7cd2670b77dd76e8fc1714  gcc/te
*** 23793,23798 ****
--- 25621,25629 ----
  8bda53d5b874de63c6fb463b2e63a8f9  gcc/testsuite/g++.dg/opt/fold2.C
  d89445d9cb1f86fe29290ee87eb3d8df  gcc/testsuite/g++.dg/opt/fold3.C
  e9864875d79d70c5a28e303b80cda9bd  gcc/testsuite/g++.dg/opt/ice1.C
+ dd8370a8db13f6d58c30ac2da7acbd4d  gcc/testsuite/g++.dg/opt/icf1.C
+ b042b18a60c8e12aa41f092b4b74f3a3  gcc/testsuite/g++.dg/opt/icf2.C
+ 7cef116cdcadfe1d67a1ecbbd59567d2  gcc/testsuite/g++.dg/opt/icf3.C
  89db632d35bc828ff4165ebbf333e9d4  gcc/testsuite/g++.dg/opt/ifcvt1.C
  4624dde4c5fc4aac12f23da866696b9c  gcc/testsuite/g++.dg/opt/init1.C
  c38d4267a5dc18af5254f21903b0176e  gcc/testsuite/g++.dg/opt/init2.C
*************** b7cb98f473e1920797490085dbf7bb94  gcc/te
*** 23819,23825 ****
  147890dfec6e1cbd6d1bb8385a3ca1e0  gcc/testsuite/g++.dg/opt/interface2.h
  519840c294d6b87811a202c0881051a4  gcc/testsuite/g++.dg/opt/is_constant_evaluated1.C
  f1b0fb8d0e48803f4a6ff987db38f6ce  gcc/testsuite/g++.dg/opt/is_constant_evaluated2.C
! 49327bf56d9dcef050fbd46cbe3b54eb  gcc/testsuite/g++.dg/opt/is_constant_evaluated3.C
  d3914504bba83652fe1a238821c3dea2  gcc/testsuite/g++.dg/opt/life1.C
  e9d20e766af5e3640a5fe827cb945f15  gcc/testsuite/g++.dg/opt/local1.C
  74049e3e36b5fbdab2f271b70320a6d8  gcc/testsuite/g++.dg/opt/longbranch1.C
--- 25650,25656 ----
  147890dfec6e1cbd6d1bb8385a3ca1e0  gcc/testsuite/g++.dg/opt/interface2.h
  519840c294d6b87811a202c0881051a4  gcc/testsuite/g++.dg/opt/is_constant_evaluated1.C
  f1b0fb8d0e48803f4a6ff987db38f6ce  gcc/testsuite/g++.dg/opt/is_constant_evaluated2.C
! 6c66d424a35a016d39db48a6c24aa0d5  gcc/testsuite/g++.dg/opt/is_constant_evaluated3.C
  d3914504bba83652fe1a238821c3dea2  gcc/testsuite/g++.dg/opt/life1.C
  e9d20e766af5e3640a5fe827cb945f15  gcc/testsuite/g++.dg/opt/local1.C
  74049e3e36b5fbdab2f271b70320a6d8  gcc/testsuite/g++.dg/opt/longbranch1.C
*************** b5ea3678b95f88606bb0d37ee1f58a68  gcc/te
*** 23847,23852 ****
--- 25678,25690 ----
  360692bdb55de35cb68717ceb6c51fd7  gcc/testsuite/g++.dg/opt/nrv2.C
  b95995f2a1b93421818fb349cdf03d17  gcc/testsuite/g++.dg/opt/nrv20.C
  815c4f8d7b5dba8a23289fdf4b87b3c5  gcc/testsuite/g++.dg/opt/nrv21.C
+ 936df169dd4333b7cef52b2f3f90736e  gcc/testsuite/g++.dg/opt/nrv22.C
+ 1515ef6f3f4b8e641781a2e4a5d0e506  gcc/testsuite/g++.dg/opt/nrv23.C
+ db3ac54f57090356012ece6026332d55  gcc/testsuite/g++.dg/opt/nrv24.C
+ 53bd8b2b6595921d52b2407236a656aa  gcc/testsuite/g++.dg/opt/nrv25.C
+ c469db7d3e1948875f132db5819c9f4d  gcc/testsuite/g++.dg/opt/nrv26.C
+ 23a31b8c8689a1e458acd69e586afb0b  gcc/testsuite/g++.dg/opt/nrv26a.C
+ 7f25592ccac1dbf9f189260eff60e449  gcc/testsuite/g++.dg/opt/nrv27.C
  42adcc800d5d2029a2b831e1453e8f32  gcc/testsuite/g++.dg/opt/nrv3.C
  b2773b15109a2fc43572a97edf29b236  gcc/testsuite/g++.dg/opt/nrv4.C
  13481653ab41a707cb4c4eed2199c57f  gcc/testsuite/g++.dg/opt/nrv5.C
*************** ebbec8ff132c1bf960fba8ddac82480e  gcc/te
*** 23886,23891 ****
--- 25724,25733 ----
  fc956d5d39ddca9870d1a2fca7df287d  gcc/testsuite/g++.dg/opt/pr109434.C
  b66c56d1ba4ee568e881df0560f18827  gcc/testsuite/g++.dg/opt/pr109462.C
  b8fef9a1bd09e90415f3e35f5466c85c  gcc/testsuite/g++.dg/opt/pr110515.C
+ ee83980c52efcd311fdf334e2fd23f42  gcc/testsuite/g++.dg/opt/pr110879.C
+ 383812316cf5b10e019a5e8d837955b5  gcc/testsuite/g++.dg/opt/pr111601.C
+ 6b9ff4b9b47e58f0f5a801795c933b05  gcc/testsuite/g++.dg/opt/pr112374.C
+ 825c715cc564416b76db4cdff16d60ca  gcc/testsuite/g++.dg/opt/pr113705.C
  2896f5b1a96dd9fabb1dbb65cb4c5921  gcc/testsuite/g++.dg/opt/pr13066-1.C
  4f87f86b9f018cae74888e97468b2fe0  gcc/testsuite/g++.dg/opt/pr14029.C
  8fb7e68e9e9b5eb02628e03f5333e645  gcc/testsuite/g++.dg/opt/pr14888.C
*************** cd9ce81573f1dd55ed9926ad0afbe423  gcc/te
*** 24015,24021 ****
  b945a12f6d1f23ffaf6b58c4a52a828d  gcc/testsuite/g++.dg/opt/pr65074.C
  12eb0915d4b7275f1bc0c55a27fe5a16  gcc/testsuite/g++.dg/opt/pr65105-4.C
  adca6059edef581a7bc185d3c1cdb81d  gcc/testsuite/g++.dg/opt/pr65554.C
! 1f05fd8d5f292e5b40aac5acf70980a2  gcc/testsuite/g++.dg/opt/pr66119.C
  ac2356162f00cd5e8804482480f1795a  gcc/testsuite/g++.dg/opt/pr6713.C
  ddd0cdc94ae2b3fb5f1da01082f09677  gcc/testsuite/g++.dg/opt/pr68157.C
  38e2f5d0566a28c09b5e21b63f5a4483  gcc/testsuite/g++.dg/opt/pr69141.C
--- 25857,25863 ----
  b945a12f6d1f23ffaf6b58c4a52a828d  gcc/testsuite/g++.dg/opt/pr65074.C
  12eb0915d4b7275f1bc0c55a27fe5a16  gcc/testsuite/g++.dg/opt/pr65105-4.C
  adca6059edef581a7bc185d3c1cdb81d  gcc/testsuite/g++.dg/opt/pr65554.C
! fda0ae8a2c9826bc1333004b721b07fc  gcc/testsuite/g++.dg/opt/pr66119.C
  ac2356162f00cd5e8804482480f1795a  gcc/testsuite/g++.dg/opt/pr6713.C
  ddd0cdc94ae2b3fb5f1da01082f09677  gcc/testsuite/g++.dg/opt/pr68157.C
  38e2f5d0566a28c09b5e21b63f5a4483  gcc/testsuite/g++.dg/opt/pr69141.C
*************** f869a43935cc3631852fcb3f8e68ecfd  gcc/te
*** 24175,24180 ****
--- 26017,26023 ----
  5a0d1f452801f903b71f360e2af9dab9  gcc/testsuite/g++.dg/opt/unroll1.C
  b3a23f133e24d6239172db5b22fe6824  gcc/testsuite/g++.dg/opt/unroll2.C
  bc6e065796d7714e0e604a8ce0c32e95  gcc/testsuite/g++.dg/opt/value-init1.C
+ f3d9e0576fd9f8c4fcf39038b50d6c43  gcc/testsuite/g++.dg/opt/vectcond-1.C
  c4f8b2aee6bbe8bb7c04aa1a20ed7b46  gcc/testsuite/g++.dg/opt/vrp2.C
  5e3168f684c89d164ae6dfad8cb14fda  gcc/testsuite/g++.dg/opt/vrp3-aux.cc
  e384e4ea7483339d564580401d2ca3ab  gcc/testsuite/g++.dg/opt/vrp3.C
*************** f6ef4e2724fa7ce062da94fa1778b050  gcc/te
*** 24320,24326 ****
  fd41e2a884d224845fc1b776df3eb9bd  gcc/testsuite/g++.dg/other/error3.C
  197cf0c2a0b5a9515fb727c846451d1e  gcc/testsuite/g++.dg/other/error30.C
  9d9e0fd46de8ccc8ea70f599c5b60fb6  gcc/testsuite/g++.dg/other/error31.C
! c744ed5aaa2c2c1507e6c50193db38bb  gcc/testsuite/g++.dg/other/error32.C
  dc99910fb2d0aaf7a5c4306f76bad987  gcc/testsuite/g++.dg/other/error33.C
  f4020af99d5cd87e4e7dbd1bc9415ef9  gcc/testsuite/g++.dg/other/error34.C
  f4ff66d3666148740eb666f07fc5155b  gcc/testsuite/g++.dg/other/error35.C
--- 26163,26169 ----
  fd41e2a884d224845fc1b776df3eb9bd  gcc/testsuite/g++.dg/other/error3.C
  197cf0c2a0b5a9515fb727c846451d1e  gcc/testsuite/g++.dg/other/error30.C
  9d9e0fd46de8ccc8ea70f599c5b60fb6  gcc/testsuite/g++.dg/other/error31.C
! 9384529ee04456706c9737616d0b7d2c  gcc/testsuite/g++.dg/other/error32.C
  dc99910fb2d0aaf7a5c4306f76bad987  gcc/testsuite/g++.dg/other/error33.C
  f4020af99d5cd87e4e7dbd1bc9415ef9  gcc/testsuite/g++.dg/other/error34.C
  f4ff66d3666148740eb666f07fc5155b  gcc/testsuite/g++.dg/other/error35.C
*************** eda67a8394a25b381e47971e78264eba  gcc/te
*** 24371,24378 ****
  3ca5017faf45f39326ff4e30a1ec1ba8  gcc/testsuite/g++.dg/other/i386-1.C
  9913a24914ce11f6a0606c70ed58cb96  gcc/testsuite/g++.dg/other/i386-10.C
  8925c3efd781e76570846cfd6f817fd2  gcc/testsuite/g++.dg/other/i386-11.C
! d8bed1834b734ded41b6dd297e398fbc  gcc/testsuite/g++.dg/other/i386-2.C
! f0fda132600c70f2b205acbf4692a402  gcc/testsuite/g++.dg/other/i386-3.C
  a4ad4c2cb3c1448496351241a77aedb7  gcc/testsuite/g++.dg/other/i386-4.C
  a32a5af1b4c57aabcbdaa817835a698d  gcc/testsuite/g++.dg/other/i386-7.C
  b3ef431f4cf4776208d7042aff2ddb83  gcc/testsuite/g++.dg/other/i386-8.C
--- 26214,26221 ----
  3ca5017faf45f39326ff4e30a1ec1ba8  gcc/testsuite/g++.dg/other/i386-1.C
  9913a24914ce11f6a0606c70ed58cb96  gcc/testsuite/g++.dg/other/i386-10.C
  8925c3efd781e76570846cfd6f817fd2  gcc/testsuite/g++.dg/other/i386-11.C
! afb86d6e25534682d37c3f9e1e46c7b3  gcc/testsuite/g++.dg/other/i386-2.C
! 367a4d9b2b3341b710aec876bfcdbf08  gcc/testsuite/g++.dg/other/i386-3.C
  a4ad4c2cb3c1448496351241a77aedb7  gcc/testsuite/g++.dg/other/i386-4.C
  a32a5af1b4c57aabcbdaa817835a698d  gcc/testsuite/g++.dg/other/i386-7.C
  b3ef431f4cf4776208d7042aff2ddb83  gcc/testsuite/g++.dg/other/i386-8.C
*************** da1ba255024d00bac0a97620f4ffaba7  gcc/te
*** 24425,24430 ****
--- 26268,26276 ----
  6be92beab52e0fd0c83b0cabc3f7e83a  gcc/testsuite/g++.dg/other/packed1.C
  b693bdc6d9288cba68d5f6c6be19b743  gcc/testsuite/g++.dg/other/pr100580.C
  a7f0f2c1d80a46d3283257e09b5b8611  gcc/testsuite/g++.dg/other/pr104989.C
+ c5b17ec8776b6efea2d581feee1eee63  gcc/testsuite/g++.dg/other/pr113617-aux.cc
+ 7f6f8196eb6eae36b43ff96f94e48737  gcc/testsuite/g++.dg/other/pr113617.C
+ a9facf6d9509cb68d6b2b62cd3645688  gcc/testsuite/g++.dg/other/pr113617.h
  f43f96bf3c378817b959c22aee3466c0  gcc/testsuite/g++.dg/other/pr20366.C
  972110c0d861ecae87ae8ad4d861dd0f  gcc/testsuite/g++.dg/other/pr22003.C
  57901344b69ec7b216bf1128cc5a7242  gcc/testsuite/g++.dg/other/pr22358.C
*************** e716b31d86bef260a0d00fd877fbc9cf  gcc/te
*** 24500,24506 ****
  24ac76b9cd1e6471539e65dc34e63be3  gcc/testsuite/g++.dg/other/pr89560.C
  a0e823e69e02d21c09fddd6ef53d51e3  gcc/testsuite/g++.dg/other/pr89692.C
  64ff90efb0bd953cbcb7d0d41855c3b3  gcc/testsuite/g++.dg/other/pr92201.C
! 7ef84cd9319380c6f6e3fae08246d66e  gcc/testsuite/g++.dg/other/pr94326.C
  141ea52566d65432ae8af0941e19572f  gcc/testsuite/g++.dg/other/pr94339.C
  3db2eb8b4ba6c11f00978ab4a8a8a0a7  gcc/testsuite/g++.dg/other/pr95231.C
  2b96e0cda3aaa703c284fca6a0dd72c9  gcc/testsuite/g++.dg/other/pragma-re-1.C
--- 26346,26352 ----
  24ac76b9cd1e6471539e65dc34e63be3  gcc/testsuite/g++.dg/other/pr89560.C
  a0e823e69e02d21c09fddd6ef53d51e3  gcc/testsuite/g++.dg/other/pr89692.C
  64ff90efb0bd953cbcb7d0d41855c3b3  gcc/testsuite/g++.dg/other/pr92201.C
! 257327ed75d4fdfef55e59883a3697d5  gcc/testsuite/g++.dg/other/pr94326.C
  141ea52566d65432ae8af0941e19572f  gcc/testsuite/g++.dg/other/pr94339.C
  3db2eb8b4ba6c11f00978ab4a8a8a0a7  gcc/testsuite/g++.dg/other/pr95231.C
  2b96e0cda3aaa703c284fca6a0dd72c9  gcc/testsuite/g++.dg/other/pragma-re-1.C
*************** a0940c624da881bbf5ac3c841243c409  gcc/te
*** 24595,24600 ****
--- 26441,26447 ----
  fbd791e505451bc9022bcc66d1461cd3  gcc/testsuite/g++.dg/overload/conv-op2.C
  8ae6c6553dbbee15f45f0a28425dfa81  gcc/testsuite/g++.dg/overload/conv-op3.C
  1ef565a522347f71c02761880aef7214  gcc/testsuite/g++.dg/overload/conv-op4.C
+ 065dc1a2da9c2016d583f663be3125d2  gcc/testsuite/g++.dg/overload/conv-op5.C
  98a842578a616e44aeceebe22e18afd1  gcc/testsuite/g++.dg/overload/copy1.C
  b952933e6f52d065ea331a27b2e7852f  gcc/testsuite/g++.dg/overload/defarg1.C
  1fe01cdd569e9efdd1a736f06edff77b  gcc/testsuite/g++.dg/overload/defarg10.C
*************** d1a1ae034c8d636e8ede4eed33a0e5e4  gcc/te
*** 24616,24621 ****
--- 26463,26471 ----
  60a23cc821b7345d2676558d3277697f  gcc/testsuite/g++.dg/overload/error2.C
  e7b133e82eab6d91b1329d9db63c31d1  gcc/testsuite/g++.dg/overload/error3.C
  c6bbd5bf2d956f4a548a5178e8bdea85  gcc/testsuite/g++.dg/overload/error4.C
+ 177f474d29f340331f0fae671ce7d40c  gcc/testsuite/g++.dg/overload/error5.C
+ 167f3cd1c28cc9d1bbc81614032303f3  gcc/testsuite/g++.dg/overload/error6.C
+ c9a8856c03a5dac0a653d66debb7f620  gcc/testsuite/g++.dg/overload/error6a.C
  a251cb5e0f82a981b3f2cd7163bc4253  gcc/testsuite/g++.dg/overload/extern-C-1.C
  799b32bc675b693f7b09c8e88e1f6ff9  gcc/testsuite/g++.dg/overload/extern-C-2.C
  f0855d927ec9333de2c98f144b697be2  gcc/testsuite/g++.dg/overload/koenig1.C
*************** e8d2b5f4633ed5ca39b035852658ba5d  gcc/te
*** 24648,24654 ****
  053bc5744de44c3637cdea4e8f67c443  gcc/testsuite/g++.dg/overload/template2.C
  77913297a13e3346eae87df8ebe54edd  gcc/testsuite/g++.dg/overload/template3.C
  8b9c7fa9fed9ba378c38b41807abafeb  gcc/testsuite/g++.dg/overload/template4.C
! 5aa08eb317a4f0641d51530543a4932f  gcc/testsuite/g++.dg/overload/template5.C
  d0aceebd661652ccdb057c8c6f6fd73d  gcc/testsuite/g++.dg/overload/template6.C
  539d6c9e97785fe65d88de514cb1e9eb  gcc/testsuite/g++.dg/overload/unknown1.C
  85ece6c01345af5b8d407b8e19d781f9  gcc/testsuite/g++.dg/overload/using1.C
--- 26498,26504 ----
  053bc5744de44c3637cdea4e8f67c443  gcc/testsuite/g++.dg/overload/template2.C
  77913297a13e3346eae87df8ebe54edd  gcc/testsuite/g++.dg/overload/template3.C
  8b9c7fa9fed9ba378c38b41807abafeb  gcc/testsuite/g++.dg/overload/template4.C
! d33d65d6cd724b30594d62792e31ad2e  gcc/testsuite/g++.dg/overload/template5.C
  d0aceebd661652ccdb057c8c6f6fd73d  gcc/testsuite/g++.dg/overload/template6.C
  539d6c9e97785fe65d88de514cb1e9eb  gcc/testsuite/g++.dg/overload/unknown1.C
  85ece6c01345af5b8d407b8e19d781f9  gcc/testsuite/g++.dg/overload/using1.C
*************** c51ee1846816a95e9af6e3d6b9e65695  gcc/te
*** 24703,24709 ****
  fc7bb3a300dd247cd39bd47963487340  gcc/testsuite/g++.dg/parse/attr-externally-visible-2.C
  d84032d5d61187d741ca91d1d16ee607  gcc/testsuite/g++.dg/parse/attr1.C
  3d4935439f09d7756194078a14580819  gcc/testsuite/g++.dg/parse/attr2.C
! bb225cf58b6046362a2a5c266d668d71  gcc/testsuite/g++.dg/parse/attr3.C
  9ca7ebe83672a0e3c639a4eff33fa711  gcc/testsuite/g++.dg/parse/attr4.C
  73272b6d0088d70ce32ad135b8b8bdd1  gcc/testsuite/g++.dg/parse/bitfield1.C
  44f7fcda1355d2713f1553e89b1837b8  gcc/testsuite/g++.dg/parse/bitfield2.C
--- 26553,26559 ----
  fc7bb3a300dd247cd39bd47963487340  gcc/testsuite/g++.dg/parse/attr-externally-visible-2.C
  d84032d5d61187d741ca91d1d16ee607  gcc/testsuite/g++.dg/parse/attr1.C
  3d4935439f09d7756194078a14580819  gcc/testsuite/g++.dg/parse/attr2.C
! d6c48fcb5fb2cc2eca51bdf02a511666  gcc/testsuite/g++.dg/parse/attr3.C
  9ca7ebe83672a0e3c639a4eff33fa711  gcc/testsuite/g++.dg/parse/attr4.C
  73272b6d0088d70ce32ad135b8b8bdd1  gcc/testsuite/g++.dg/parse/bitfield1.C
  44f7fcda1355d2713f1553e89b1837b8  gcc/testsuite/g++.dg/parse/bitfield2.C
*************** b4ad8051949ca376a6cc70a559e52951  gcc/te
*** 24749,24755 ****
  1f1ea9b1dfbfdad52826fde93326f9d6  gcc/testsuite/g++.dg/parse/constant6.C
  e773e9fc506890dda1d6fbb37fd77ae4  gcc/testsuite/g++.dg/parse/constant7.C
  8079503763f87550059a8ccbd0832bdd  gcc/testsuite/g++.dg/parse/constructor1.C
! e92276350b0bdb1103bc329a38e10ac7  gcc/testsuite/g++.dg/parse/constructor2.C
  d9621983a7cb4db7ed484bed67203810  gcc/testsuite/g++.dg/parse/constructor3.C
  5a399fbfb7b6718be8ad9eb3ea24af68  gcc/testsuite/g++.dg/parse/conv_op1.C
  721a281ff33124a1c49ed8d68d2419fb  gcc/testsuite/g++.dg/parse/crash1.C
--- 26599,26605 ----
  1f1ea9b1dfbfdad52826fde93326f9d6  gcc/testsuite/g++.dg/parse/constant6.C
  e773e9fc506890dda1d6fbb37fd77ae4  gcc/testsuite/g++.dg/parse/constant7.C
  8079503763f87550059a8ccbd0832bdd  gcc/testsuite/g++.dg/parse/constructor1.C
! daa44ad455520bf96ee9cf29ebd65e7d  gcc/testsuite/g++.dg/parse/constructor2.C
  d9621983a7cb4db7ed484bed67203810  gcc/testsuite/g++.dg/parse/constructor3.C
  5a399fbfb7b6718be8ad9eb3ea24af68  gcc/testsuite/g++.dg/parse/conv_op1.C
  721a281ff33124a1c49ed8d68d2419fb  gcc/testsuite/g++.dg/parse/crash1.C
*************** e49f65c7e6e2821e630cacc1e09ae350  gcc/te
*** 24802,24808 ****
  fce92d0b2434297dd51f1b3a28fc1fc4  gcc/testsuite/g++.dg/parse/crash52.C
  bb6ac4a17ab02af350881f64213ce26e  gcc/testsuite/g++.dg/parse/crash53.C
  89608ec2e140e06e734f5122f389e91a  gcc/testsuite/g++.dg/parse/crash54.C
! f3924301e9a75e88ee237b6baeb316be  gcc/testsuite/g++.dg/parse/crash55.C
  28ddbaa14692a16c706c5c2beb55f24b  gcc/testsuite/g++.dg/parse/crash56.C
  6fc258bb800a72857ca75dc2832d771d  gcc/testsuite/g++.dg/parse/crash57.C
  71b15313ba16339bb71e8e5d55013108  gcc/testsuite/g++.dg/parse/crash58.C
--- 26652,26658 ----
  fce92d0b2434297dd51f1b3a28fc1fc4  gcc/testsuite/g++.dg/parse/crash52.C
  bb6ac4a17ab02af350881f64213ce26e  gcc/testsuite/g++.dg/parse/crash53.C
  89608ec2e140e06e734f5122f389e91a  gcc/testsuite/g++.dg/parse/crash54.C
! 7cb036cdff7a38c9b124c1d913fc62f5  gcc/testsuite/g++.dg/parse/crash55.C
  28ddbaa14692a16c706c5c2beb55f24b  gcc/testsuite/g++.dg/parse/crash56.C
  6fc258bb800a72857ca75dc2832d771d  gcc/testsuite/g++.dg/parse/crash57.C
  71b15313ba16339bb71e8e5d55013108  gcc/testsuite/g++.dg/parse/crash58.C
*************** ca37cf225f4eaf29edd1f2bc4394b03d  gcc/te
*** 24943,24949 ****
  eccd002c3598e3bb16e3d70bf745fb7c  gcc/testsuite/g++.dg/parse/error53.C
  eed70889be27b9442f89ed3e60063c22  gcc/testsuite/g++.dg/parse/error54.C
  179fe99eaadef5f7d5b40cf1ed576380  gcc/testsuite/g++.dg/parse/error55.C
! 8b9ec16ec1281a05f6e584078788306c  gcc/testsuite/g++.dg/parse/error56.C
  78aabb3fd9ccbbc7a699352db0420c52  gcc/testsuite/g++.dg/parse/error57.C
  deb25ba4bd4f0a3257c6f7a5c680ae1d  gcc/testsuite/g++.dg/parse/error58.C
  c3815b12d6adb1ac6f7c8f2379deb21d  gcc/testsuite/g++.dg/parse/error59.C
--- 26793,26799 ----
  eccd002c3598e3bb16e3d70bf745fb7c  gcc/testsuite/g++.dg/parse/error53.C
  eed70889be27b9442f89ed3e60063c22  gcc/testsuite/g++.dg/parse/error54.C
  179fe99eaadef5f7d5b40cf1ed576380  gcc/testsuite/g++.dg/parse/error55.C
! 3164b541239b0a998f99dcf0c3e487e7  gcc/testsuite/g++.dg/parse/error56.C
  78aabb3fd9ccbbc7a699352db0420c52  gcc/testsuite/g++.dg/parse/error57.C
  deb25ba4bd4f0a3257c6f7a5c680ae1d  gcc/testsuite/g++.dg/parse/error58.C
  c3815b12d6adb1ac6f7c8f2379deb21d  gcc/testsuite/g++.dg/parse/error59.C
*************** c3815b12d6adb1ac6f7c8f2379deb21d  gcc/te
*** 24953,24958 ****
--- 26803,26809 ----
  1c27b0becdebc68ee67aaab409111d9b  gcc/testsuite/g++.dg/parse/error62.C
  39157b5f9d86e45cb8d1abe69a66ad29  gcc/testsuite/g++.dg/parse/error63.C
  2c8451fa3eaf0641deecb9d15392bf3a  gcc/testsuite/g++.dg/parse/error64.C
+ fe1aa482b375da0c2605e0e40d251ec5  gcc/testsuite/g++.dg/parse/error65.C
  69f9cb5c7beb27587f6ec060eeafc314  gcc/testsuite/g++.dg/parse/error7.C
  a9b4e068ec9bd53e03eab1f20b49779f  gcc/testsuite/g++.dg/parse/error8.C
  645fd7881b9edb38e573c6cc40ee26e9  gcc/testsuite/g++.dg/parse/error9.C
*************** ce5771924fa5fd60b270c30c11bee489  gcc/te
*** 25079,25093 ****
  290161573b66c49ae4261f07f77681d3  gcc/testsuite/g++.dg/parse/parser-pr28152-2.C
  a0fee4f3ee4678b54afd993b619baa05  gcc/testsuite/g++.dg/parse/parser-pr28152.C
  19f7d11d9ad101a38756eab150921947  gcc/testsuite/g++.dg/parse/pr101783.C
  2dde7d845edb3fc1b6b06c1f7c1d71f6  gcc/testsuite/g++.dg/parse/pr16696-permissive.C
  f8326578679fecd658e1bec2d3ed7654  gcc/testsuite/g++.dg/parse/pr16696.C
  29f6ba15da1283765b5179abe6707d09  gcc/testsuite/g++.dg/parse/pr18770.C
  7f6e10791d7c1d2556e34458f5dc3067  gcc/testsuite/g++.dg/parse/pr20118.C
  5279d916726814483a508492a3885935  gcc/testsuite/g++.dg/parse/pr26997.C
  4a46f444a2adb4fe8e8f944c9e869768  gcc/testsuite/g++.dg/parse/pr29234.C
! 16a506601ac68d703bfa4ceeecff45a5  gcc/testsuite/g++.dg/parse/pr31952-1.C
! 7e6ff18d87a2c84c1903a94d4b31133b  gcc/testsuite/g++.dg/parse/pr31952-2.C
! c6f961c7e0a3abdb6c65204f7692ed1b  gcc/testsuite/g++.dg/parse/pr31952-3.C
  d2c97158a600f119f8f39017dbe65cb6  gcc/testsuite/g++.dg/parse/pr34049.C
  b195499fe12f3f3c5a8b1fb7605ee881  gcc/testsuite/g++.dg/parse/pr34758.C
  a57434275b0ab07b7a1f918fef7791bc  gcc/testsuite/g++.dg/parse/pr37862.C
--- 26930,26946 ----
  290161573b66c49ae4261f07f77681d3  gcc/testsuite/g++.dg/parse/parser-pr28152-2.C
  a0fee4f3ee4678b54afd993b619baa05  gcc/testsuite/g++.dg/parse/parser-pr28152.C
  19f7d11d9ad101a38756eab150921947  gcc/testsuite/g++.dg/parse/pr101783.C
+ 45c8a98fb67b502b90968b85f37350fd  gcc/testsuite/g++.dg/parse/pr113788.C
+ 4f1090730a2c9b918d79fed001575a31  gcc/testsuite/g++.dg/parse/pr113929.C
  2dde7d845edb3fc1b6b06c1f7c1d71f6  gcc/testsuite/g++.dg/parse/pr16696-permissive.C
  f8326578679fecd658e1bec2d3ed7654  gcc/testsuite/g++.dg/parse/pr16696.C
  29f6ba15da1283765b5179abe6707d09  gcc/testsuite/g++.dg/parse/pr18770.C
  7f6e10791d7c1d2556e34458f5dc3067  gcc/testsuite/g++.dg/parse/pr20118.C
  5279d916726814483a508492a3885935  gcc/testsuite/g++.dg/parse/pr26997.C
  4a46f444a2adb4fe8e8f944c9e869768  gcc/testsuite/g++.dg/parse/pr29234.C
! a1ac902f3c2e4468349c7d5354c66e8a  gcc/testsuite/g++.dg/parse/pr31952-1.C
! 5d7d9137296e108148b3eda0d823e228  gcc/testsuite/g++.dg/parse/pr31952-2.C
! 08a2b7e9b51e131bac1c2f72f4a28d8d  gcc/testsuite/g++.dg/parse/pr31952-3.C
  d2c97158a600f119f8f39017dbe65cb6  gcc/testsuite/g++.dg/parse/pr34049.C
  b195499fe12f3f3c5a8b1fb7605ee881  gcc/testsuite/g++.dg/parse/pr34758.C
  a57434275b0ab07b7a1f918fef7791bc  gcc/testsuite/g++.dg/parse/pr37862.C
*************** ba5fea52e589d10cf797adaaeee748ac  gcc/te
*** 25192,25198 ****
  9332f756f125474e69f9f611457adfa4  gcc/testsuite/g++.dg/parse/template28.C
  152e03aa0bab781e753c83dfb1e3c3cd  gcc/testsuite/g++.dg/parse/template29.C
  a31feb6abdee70df8465893bfc01cc3f  gcc/testsuite/g++.dg/parse/template3.C
! b5628e1700cd25518ce907c18c69e47d  gcc/testsuite/g++.dg/parse/template30.C
  7bbe9405de4476f557431f61bbc055be  gcc/testsuite/g++.dg/parse/template31.C
  17872444c3e507c8ec724d519d4c6457  gcc/testsuite/g++.dg/parse/template4.C
  eb5012efbf2e76d0649338687d64eab1  gcc/testsuite/g++.dg/parse/template5.C
--- 27045,27051 ----
  9332f756f125474e69f9f611457adfa4  gcc/testsuite/g++.dg/parse/template28.C
  152e03aa0bab781e753c83dfb1e3c3cd  gcc/testsuite/g++.dg/parse/template29.C
  a31feb6abdee70df8465893bfc01cc3f  gcc/testsuite/g++.dg/parse/template3.C
! 62935399288bb5a662f7a6214e1cbb16  gcc/testsuite/g++.dg/parse/template30.C
  7bbe9405de4476f557431f61bbc055be  gcc/testsuite/g++.dg/parse/template31.C
  17872444c3e507c8ec724d519d4c6457  gcc/testsuite/g++.dg/parse/template4.C
  eb5012efbf2e76d0649338687d64eab1  gcc/testsuite/g++.dg/parse/template5.C
*************** d9064b328bf2156a9e67df26156ec572  gcc/te
*** 25252,25266 ****
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/g++.dg/pch/empty.Hs
  0fe6f1480902d6dccb349304faa9020c  gcc/testsuite/g++.dg/pch/externc-1.C
  51038396a6c08ae383fd050b30653dab  gcc/testsuite/g++.dg/pch/externc-1.Hs
  3456d98b10198c0bf9091088ba05d0f0  gcc/testsuite/g++.dg/pch/local-1.C
  1b5d28bf11bae4996001396e1ffe083b  gcc/testsuite/g++.dg/pch/local-1.Hs
  f9271dce9d7980fa8b426246ec2b9126  gcc/testsuite/g++.dg/pch/operator-1.C
  4a61ad56a41cb4cbee40e9821143277c  gcc/testsuite/g++.dg/pch/operator-1.Hs
  4d2177c4bbf97c75693219b0d4c149ae  gcc/testsuite/g++.dg/pch/pch-string-nulls.C
  1d2691135fb8c5529b20585ff62273d6  gcc/testsuite/g++.dg/pch/pch-string-nulls.Hs
  a42f209088bbce8d3650be5966861b6b  gcc/testsuite/g++.dg/pch/pch.C
  95603c8965412870090ed14011f4b123  gcc/testsuite/g++.dg/pch/pch.Hs
! 8cc6dad8ea88778aff40136804f2630c  gcc/testsuite/g++.dg/pch/pch.exp
  a79b4c14973bc580e45325abf4c19b72  gcc/testsuite/g++.dg/pch/pr90326.C
  8733db8bb02cf7abd5d7d07601acc332  gcc/testsuite/g++.dg/pch/pr90326.Hs
  f820a691997c43f0fd5a910e8712635b  gcc/testsuite/g++.dg/pch/pr92458.C
--- 27105,27131 ----
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/g++.dg/pch/empty.Hs
  0fe6f1480902d6dccb349304faa9020c  gcc/testsuite/g++.dg/pch/externc-1.C
  51038396a6c08ae383fd050b30653dab  gcc/testsuite/g++.dg/pch/externc-1.Hs
+ 5be7746567e234436e429f155b44a81c  gcc/testsuite/g++.dg/pch/line-map-1.C
+ 29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-1.Hs
+ 2c0817d088bccb3d2e72fe1a30899a59  gcc/testsuite/g++.dg/pch/line-map-2.C
+ 29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-2.Hs
+ 3de8e87d02fb3b00ee93cf5d0f4a94f5  gcc/testsuite/g++.dg/pch/line-map-3.C
+ 29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-3.Hs
  3456d98b10198c0bf9091088ba05d0f0  gcc/testsuite/g++.dg/pch/local-1.C
  1b5d28bf11bae4996001396e1ffe083b  gcc/testsuite/g++.dg/pch/local-1.Hs
+ 736c76aa75561ebe78be5895bc205db9  gcc/testsuite/g++.dg/pch/main-file-warnings.C
+ 0694410f427657d40670c2499c1ff27c  gcc/testsuite/g++.dg/pch/main-file-warnings.Hs
  f9271dce9d7980fa8b426246ec2b9126  gcc/testsuite/g++.dg/pch/operator-1.C
  4a61ad56a41cb4cbee40e9821143277c  gcc/testsuite/g++.dg/pch/operator-1.Hs
  4d2177c4bbf97c75693219b0d4c149ae  gcc/testsuite/g++.dg/pch/pch-string-nulls.C
  1d2691135fb8c5529b20585ff62273d6  gcc/testsuite/g++.dg/pch/pch-string-nulls.Hs
  a42f209088bbce8d3650be5966861b6b  gcc/testsuite/g++.dg/pch/pch.C
  95603c8965412870090ed14011f4b123  gcc/testsuite/g++.dg/pch/pch.Hs
! 3235b1e9bd699ce0b86b6aef83e850c7  gcc/testsuite/g++.dg/pch/pch.exp
! be7aa28d312b3dda8b4373107a328580  gcc/testsuite/g++.dg/pch/pr112319.C
! 29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/pr112319.Hs
! 3215c00ed48ccc8affffc97036ff1083  gcc/testsuite/g++.dg/pch/pr36887.C
! c2fea8ab1d413fef949b1a8e8bc4986d  gcc/testsuite/g++.dg/pch/pr36887.Hs
  a79b4c14973bc580e45325abf4c19b72  gcc/testsuite/g++.dg/pch/pr90326.C
  8733db8bb02cf7abd5d7d07601acc332  gcc/testsuite/g++.dg/pch/pr90326.Hs
  f820a691997c43f0fd5a910e8712635b  gcc/testsuite/g++.dg/pch/pr92458.C
*************** b393922db8d338bed7f3bcf037edd19c  gcc/te
*** 25295,25301 ****
  3a80079be7a0bfd6f8efce4de8795fcb  gcc/testsuite/g++.dg/plugin/header_plugin.c
  1c30a8080468929a3cbbc7a4ef384c4c  gcc/testsuite/g++.dg/plugin/location-overflow-test-pr100796.c
  0422777feb5bb202ec0e53d6551fe397  gcc/testsuite/g++.dg/plugin/location-overflow-test-pr96391.c
! 49edc5627f9a8d4a8681c919fdc9aa49  gcc/testsuite/g++.dg/plugin/plugin.exp
  0555e81b1b7c9c8e06b4e9d9ffccb7ff  gcc/testsuite/g++.dg/plugin/pragma_plugin-test-1.C
  bb9719af4ef365b9625ed93e9794b8b2  gcc/testsuite/g++.dg/plugin/pragma_plugin.c
  503f96544096dfaa1ea93338e21923ff  gcc/testsuite/g++.dg/plugin/self-assign-test-1.C
--- 27160,27166 ----
  3a80079be7a0bfd6f8efce4de8795fcb  gcc/testsuite/g++.dg/plugin/header_plugin.c
  1c30a8080468929a3cbbc7a4ef384c4c  gcc/testsuite/g++.dg/plugin/location-overflow-test-pr100796.c
  0422777feb5bb202ec0e53d6551fe397  gcc/testsuite/g++.dg/plugin/location-overflow-test-pr96391.c
! d6f632cb00559b864a83bdb74827de62  gcc/testsuite/g++.dg/plugin/plugin.exp
  0555e81b1b7c9c8e06b4e9d9ffccb7ff  gcc/testsuite/g++.dg/plugin/pragma_plugin-test-1.C
  bb9719af4ef365b9625ed93e9794b8b2  gcc/testsuite/g++.dg/plugin/pragma_plugin.c
  503f96544096dfaa1ea93338e21923ff  gcc/testsuite/g++.dg/plugin/self-assign-test-1.C
*************** e051d5cb1d92744fe18b74552249a54e  gcc/te
*** 25305,25311 ****
  84294469facc088b7f5a63c985cf91b3  gcc/testsuite/g++.dg/plugin/show-template-tree-color-labels.C
  21bdec26dd354f6ec8377f10495a1e22  gcc/testsuite/g++.dg/plugin/show-template-tree-color-no-elide-type.C
  34171c7d3f22062d3826646c0e5f1f9d  gcc/testsuite/g++.dg/plugin/show-template-tree-color.C
! 4e74baf6e971213789395d81a85385e0  gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.c
  2e53d96b8ba6ffa8b9414775da7e87f3  gcc/testsuite/g++.dg/pr100253.C
  8565710d6f77641a38bd4e09919a3fb2  gcc/testsuite/g++.dg/pr100574.C
  fff532cdcec98c1dd1cffeb35a951441  gcc/testsuite/g++.dg/pr100774.C
--- 27170,27176 ----
  84294469facc088b7f5a63c985cf91b3  gcc/testsuite/g++.dg/plugin/show-template-tree-color-labels.C
  21bdec26dd354f6ec8377f10495a1e22  gcc/testsuite/g++.dg/plugin/show-template-tree-color-no-elide-type.C
  34171c7d3f22062d3826646c0e5f1f9d  gcc/testsuite/g++.dg/plugin/show-template-tree-color.C
! d5c95752248e97b6d3f892a10f16b22d  gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.c
  2e53d96b8ba6ffa8b9414775da7e87f3  gcc/testsuite/g++.dg/pr100253.C
  8565710d6f77641a38bd4e09919a3fb2  gcc/testsuite/g++.dg/pr100574.C
  fff532cdcec98c1dd1cffeb35a951441  gcc/testsuite/g++.dg/pr100774.C
*************** bc073049efd8de31a04ecce7e05f88df  gcc/te
*** 25326,25332 ****
  c1251c5de07903c2976e214b0ce9b893  gcc/testsuite/g++.dg/pr103856.C
  cc1a227a8a28a04643333f8b99a2571f  gcc/testsuite/g++.dg/pr104547.C
  cb3b0d87ebb06649d90f205f72680272  gcc/testsuite/g++.dg/pr104648.C
! 18b9174889675eec328ca8173a24e49a  gcc/testsuite/g++.dg/pr104869.C
  3e13592e1bcac294620a0d0d8e6eb8a1  gcc/testsuite/g++.dg/pr104992-1.C
  152c50eb40e9677388868b9fc74192a1  gcc/testsuite/g++.dg/pr105276.C
  2fed98e7e2272502be0cfa68e9b4dca8  gcc/testsuite/g++.dg/pr105871.C
--- 27191,27197 ----
  c1251c5de07903c2976e214b0ce9b893  gcc/testsuite/g++.dg/pr103856.C
  cc1a227a8a28a04643333f8b99a2571f  gcc/testsuite/g++.dg/pr104547.C
  cb3b0d87ebb06649d90f205f72680272  gcc/testsuite/g++.dg/pr104648.C
! 3952aaa4194d56b25f454ad787ae0377  gcc/testsuite/g++.dg/pr104869.C
  3e13592e1bcac294620a0d0d8e6eb8a1  gcc/testsuite/g++.dg/pr104992-1.C
  152c50eb40e9677388868b9fc74192a1  gcc/testsuite/g++.dg/pr105276.C
  2fed98e7e2272502be0cfa68e9b4dca8  gcc/testsuite/g++.dg/pr105871.C
*************** c555871eebd38318d08e6231eacd3642  gcc/te
*** 25341,25346 ****
--- 27206,27214 ----
  fd6634de9e7bec1226bf7939736dd6a2  gcc/testsuite/g++.dg/pr107985.C
  9f85b642c872ce476b819232071a1f96  gcc/testsuite/g++.dg/pr108520.C
  f678b424d2148346313809851fbbe611  gcc/testsuite/g++.dg/pr109524.C
+ 06c46a1028b77aaa9feeb07c561f352b  gcc/testsuite/g++.dg/pr110249.C
+ f8af5a3ff0e8db0aafa763ddf859fdf4  gcc/testsuite/g++.dg/pr112822.C
+ 6aff6ca7cddcaa75a97c54158353102d  gcc/testsuite/g++.dg/pr113217.C
  2ac64817a39fe1a5c2dc328f4233cda1  gcc/testsuite/g++.dg/pr37742.C
  32b2fbda29ffd2ac2181c43c971f3a7d  gcc/testsuite/g++.dg/pr44328.C
  e43b4ea2d038b181b57782d5d56d22ba  gcc/testsuite/g++.dg/pr44486.C
*************** a925ae8e8cb9fbbaebf7c8d183952481  gcc/te
*** 25383,25389 ****
  30e309355b8a4ded0ec5e7560f1ad370  gcc/testsuite/g++.dg/pr57662.C
  b01bbf7436a5394cc1b921b12a607281  gcc/testsuite/g++.dg/pr57878.C
  511234314f9b0a3ba0b9f5c6d7080948  gcc/testsuite/g++.dg/pr58123.C
! 92b9e21f16acadd3cb92f5e4526a6676  gcc/testsuite/g++.dg/pr58245-1.C
  1c3bb90a5b9e846331336c61b714d4a9  gcc/testsuite/g++.dg/pr58389.C
  3ec8eae79152a63de1c1e2cca524349f  gcc/testsuite/g++.dg/pr58438.C
  1afffa3d74939421dcfa7501280f88dd  gcc/testsuite/g++.dg/pr58950.C
--- 27251,27257 ----
  30e309355b8a4ded0ec5e7560f1ad370  gcc/testsuite/g++.dg/pr57662.C
  b01bbf7436a5394cc1b921b12a607281  gcc/testsuite/g++.dg/pr57878.C
  511234314f9b0a3ba0b9f5c6d7080948  gcc/testsuite/g++.dg/pr58123.C
! 5a324c41255083f7595a71e663ba5fdc  gcc/testsuite/g++.dg/pr58245-1.C
  1c3bb90a5b9e846331336c61b714d4a9  gcc/testsuite/g++.dg/pr58389.C
  3ec8eae79152a63de1c1e2cca524349f  gcc/testsuite/g++.dg/pr58438.C
  1afffa3d74939421dcfa7501280f88dd  gcc/testsuite/g++.dg/pr58950.C
*************** b76c7ee65b34b2377285a776d351781b  gcc/te
*** 25436,25442 ****
  29300174b10233fd47c932d1ffd4c3bf  gcc/testsuite/g++.dg/pr69123.C
  72bb8a9ea548aaaada55dbcdb8d6a802  gcc/testsuite/g++.dg/pr69338.C
  07ceb93faa4d6543359b7c47e9a5e94a  gcc/testsuite/g++.dg/pr69379.C
! 2c2e860fd96f20dc6b16a5da17796c8e  gcc/testsuite/g++.dg/pr69667.C
  1b19e570cc03e72ec7115cbf16663717  gcc/testsuite/g++.dg/pr69697.C
  6574022bacba25e4efad4b7c4931c69a  gcc/testsuite/g++.dg/pr70098.C
  52e836d540fc39ce14dbc3124fd1ad8e  gcc/testsuite/g++.dg/pr70590-2.C
--- 27304,27310 ----
  29300174b10233fd47c932d1ffd4c3bf  gcc/testsuite/g++.dg/pr69123.C
  72bb8a9ea548aaaada55dbcdb8d6a802  gcc/testsuite/g++.dg/pr69338.C
  07ceb93faa4d6543359b7c47e9a5e94a  gcc/testsuite/g++.dg/pr69379.C
! 7362dd0b1096c0c8b6477f78b2c52a68  gcc/testsuite/g++.dg/pr69667.C
  1b19e570cc03e72ec7115cbf16663717  gcc/testsuite/g++.dg/pr69697.C
  6574022bacba25e4efad4b7c4931c69a  gcc/testsuite/g++.dg/pr70098.C
  52e836d540fc39ce14dbc3124fd1ad8e  gcc/testsuite/g++.dg/pr70590-2.C
*************** bee8b26ef225678f65e45458f23ce109  gcc/te
*** 25468,25474 ****
  2887077fc314d48e5fd771dc936c02a9  gcc/testsuite/g++.dg/pr80287.C
  212275758392d3afcc7ab9c8fa2c4987  gcc/testsuite/g++.dg/pr80374.C
  2660aa92b1a63a63921a3a56ac90f79d  gcc/testsuite/g++.dg/pr80463.C
! b42ea8f998f15f7464ba5a80c55dbed3  gcc/testsuite/g++.dg/pr80481.C
  914b9d1358e92d529a3e1887bc7efeed  gcc/testsuite/g++.dg/pr80707.C
  b5452fdc9af692c5acb4d9af45519954  gcc/testsuite/g++.dg/pr81007.C
  e9006c7bfc034d54a14402a2a461f286  gcc/testsuite/g++.dg/pr81194.C
--- 27336,27342 ----
  2887077fc314d48e5fd771dc936c02a9  gcc/testsuite/g++.dg/pr80287.C
  212275758392d3afcc7ab9c8fa2c4987  gcc/testsuite/g++.dg/pr80374.C
  2660aa92b1a63a63921a3a56ac90f79d  gcc/testsuite/g++.dg/pr80463.C
! d4e34cf7b26c9e38024dd84c1c36a062  gcc/testsuite/g++.dg/pr80481.C
  914b9d1358e92d529a3e1887bc7efeed  gcc/testsuite/g++.dg/pr80707.C
  b5452fdc9af692c5acb4d9af45519954  gcc/testsuite/g++.dg/pr81007.C
  e9006c7bfc034d54a14402a2a461f286  gcc/testsuite/g++.dg/pr81194.C
*************** d0caf9e5362287726dc95d5165f20feb  gcc/te
*** 25519,25525 ****
  ed2c407a8454e62219c76dc3c5b72a1e  gcc/testsuite/g++.dg/pr89242.C
  7287759250de84d3108a523dee756970  gcc/testsuite/g++.dg/pr89790.C
  35c17f0646594d5891b1fa427e1c3ea7  gcc/testsuite/g++.dg/pr90338.C
! 8845d6628ae38eb29b32ff51b4743848  gcc/testsuite/g++.dg/pr90462.C
  edffccfb11f8c2904fa921c0561d1d9a  gcc/testsuite/g++.dg/pr90773-1.h
  3b24e07ec2e2fe92e9e0e41335fb1b36  gcc/testsuite/g++.dg/pr90773-1a.C
  ade4b8d60a1f2cb059d6fbb5a0692ff3  gcc/testsuite/g++.dg/pr90773-1b.C
--- 27387,27393 ----
  ed2c407a8454e62219c76dc3c5b72a1e  gcc/testsuite/g++.dg/pr89242.C
  7287759250de84d3108a523dee756970  gcc/testsuite/g++.dg/pr89790.C
  35c17f0646594d5891b1fa427e1c3ea7  gcc/testsuite/g++.dg/pr90338.C
! 73735f0d288c2d08e6d7150b4af65ae1  gcc/testsuite/g++.dg/pr90462.C
  edffccfb11f8c2904fa921c0561d1d9a  gcc/testsuite/g++.dg/pr90773-1.h
  3b24e07ec2e2fe92e9e0e41335fb1b36  gcc/testsuite/g++.dg/pr90773-1a.C
  ade4b8d60a1f2cb059d6fbb5a0692ff3  gcc/testsuite/g++.dg/pr90773-1b.C
*************** c228b3ed01594ed861f4cadcaf972679  gcc/te
*** 25557,25566 ****
  3c3d1ae2c4512842cdd56b62eb3843c0  gcc/testsuite/g++.dg/pr98213.C
  66a9e8988a7a1c485ca65b45157efb0f  gcc/testsuite/g++.dg/pr98330.C
  5e50c9ad39f7329157da7f21ef7f50c4  gcc/testsuite/g++.dg/pr98335.C
  4c8ee28b75b6181d48b6370da1d724c1  gcc/testsuite/g++.dg/pr98499.C
  b9c413e1dc01687c00feebd03ca30772  gcc/testsuite/g++.dg/pr99165.C
  26d6cca564c83a4cd20ad0860975aebe  gcc/testsuite/g++.dg/pr99218.C
! 18c846d9bfa18c4adb5dc5a9eae926e9  gcc/testsuite/g++.dg/pr99966.C
  184e70d5635b77134bb901b25ccd4c61  gcc/testsuite/g++.dg/predict-1.C
  df9c1f0040c84d9c37fd8d281618f2df  gcc/testsuite/g++.dg/predict-2.C
  9eaee03e6354eabcc7fc34abc5cc11db  gcc/testsuite/g++.dg/predict-3.C
--- 27425,27435 ----
  3c3d1ae2c4512842cdd56b62eb3843c0  gcc/testsuite/g++.dg/pr98213.C
  66a9e8988a7a1c485ca65b45157efb0f  gcc/testsuite/g++.dg/pr98330.C
  5e50c9ad39f7329157da7f21ef7f50c4  gcc/testsuite/g++.dg/pr98335.C
+ 9175131562614caa255da3e72e86024f  gcc/testsuite/g++.dg/pr98356.C
  4c8ee28b75b6181d48b6370da1d724c1  gcc/testsuite/g++.dg/pr98499.C
  b9c413e1dc01687c00feebd03ca30772  gcc/testsuite/g++.dg/pr99165.C
  26d6cca564c83a4cd20ad0860975aebe  gcc/testsuite/g++.dg/pr99218.C
! 16f6e7673b8c261b994bffd31df6eaca  gcc/testsuite/g++.dg/pr99966.C
  184e70d5635b77134bb901b25ccd4c61  gcc/testsuite/g++.dg/predict-1.C
  df9c1f0040c84d9c37fd8d281618f2df  gcc/testsuite/g++.dg/predict-2.C
  9eaee03e6354eabcc7fc34abc5cc11db  gcc/testsuite/g++.dg/predict-3.C
*************** b0c0786c803eaf05e6755f729c87257e  gcc/te
*** 25612,25623 ****
  3bf0c0d4697ad1ada3cda87b9bc2dc61  gcc/testsuite/g++.dg/rtti/typeid8.C
  1f8ec1c3ba15e07e5cd63d52ea64abab  gcc/testsuite/g++.dg/rtti/typeid9.C
  1f6dccfd0b7bb5ffeb1fce36767c67d0  gcc/testsuite/g++.dg/rtti/undeclared1.C
! 9645499a8d417e1ccb227d0c5593c669  gcc/testsuite/g++.dg/semicolon-fixits.C
  358da784b700bf42b91032b2ceb71406  gcc/testsuite/g++.dg/simulate-thread/atomics-1.C
  3357bf9a2204710e948cb278fb4c4266  gcc/testsuite/g++.dg/simulate-thread/atomics-2.C
  0f9193c70bd9c12ca05e5645fdd35442  gcc/testsuite/g++.dg/simulate-thread/bitfields-2.C
  f9a70819a6e534b6c462618926ea0a80  gcc/testsuite/g++.dg/simulate-thread/bitfields.C
! f4858f4d7fb6ca6c434fa91b5efe2cd6  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp
  c6cf9552e831a422e53a8ee8d8817449  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.gdb
  8ed1bb09d81129e522f6ac6dce99d52a  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.h
  2a467b197d39f6d623192355bbc4b5d3  gcc/testsuite/g++.dg/special/conpr-1.C
--- 27481,27492 ----
  3bf0c0d4697ad1ada3cda87b9bc2dc61  gcc/testsuite/g++.dg/rtti/typeid8.C
  1f8ec1c3ba15e07e5cd63d52ea64abab  gcc/testsuite/g++.dg/rtti/typeid9.C
  1f6dccfd0b7bb5ffeb1fce36767c67d0  gcc/testsuite/g++.dg/rtti/undeclared1.C
! aee2d86d69331bf86f4fc179eaf2f8aa  gcc/testsuite/g++.dg/semicolon-fixits.C
  358da784b700bf42b91032b2ceb71406  gcc/testsuite/g++.dg/simulate-thread/atomics-1.C
  3357bf9a2204710e948cb278fb4c4266  gcc/testsuite/g++.dg/simulate-thread/atomics-2.C
  0f9193c70bd9c12ca05e5645fdd35442  gcc/testsuite/g++.dg/simulate-thread/bitfields-2.C
  f9a70819a6e534b6c462618926ea0a80  gcc/testsuite/g++.dg/simulate-thread/bitfields.C
! 0113e555f00ab8c2932657a69eb89519  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp
  c6cf9552e831a422e53a8ee8d8817449  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.gdb
  8ed1bb09d81129e522f6ac6dce99d52a  gcc/testsuite/g++.dg/simulate-thread/simulate-thread.h
  2a467b197d39f6d623192355bbc4b5d3  gcc/testsuite/g++.dg/special/conpr-1.C
*************** ce313483756ae4ae75458a512a089656  gcc/te
*** 25627,25645 ****
  09034a812fccea6ecaa6edd2f8089fc9  gcc/testsuite/g++.dg/special/conpr-3a.cc
  0d5597e1f29008b02b626a0d09bf9c34  gcc/testsuite/g++.dg/special/conpr-3b.cc
  a0eb468046d5e36275ade20495e2f0c4  gcc/testsuite/g++.dg/special/conpr-4.C
! c5003b8c6cf9e7f47a0e702c383deb3e  gcc/testsuite/g++.dg/special/ecos.exp
  d646642e04b6f7a6bb987dddc08a0268  gcc/testsuite/g++.dg/special/initp1.C
  ae5f6e9b349b6bd54b510d6f4e11eab0  gcc/testsuite/g++.dg/special/initpri1.C
  495d2d9e552898de91e04d1536c2d0bc  gcc/testsuite/g++.dg/special/initpri2.C
! b190d743d6318c7a50d9f43daca7f3f6  gcc/testsuite/g++.dg/special/initpri3.C
  0bf488203688cc3a8da411c5dff908ce  gcc/testsuite/g++.dg/spellcheck-c++-11-keyword.C
  c1046dd316dec6f0b685aa481a1b9387  gcc/testsuite/g++.dg/spellcheck-fields-2.C
  b57591402d64bc0218597be33d025525  gcc/testsuite/g++.dg/spellcheck-fields.C
  10062571e916c88fbeb05d689547ddb5  gcc/testsuite/g++.dg/spellcheck-identifiers-2.C
  328a465a44edb7f7e2aea06d3d34791d  gcc/testsuite/g++.dg/spellcheck-identifiers.C
! fa82b75c818bf152419737b1f56ac4fc  gcc/testsuite/g++.dg/spellcheck-inttypes.C
  c0c20230f9ca78ee531a757fe9c20cdc  gcc/testsuite/g++.dg/spellcheck-macro-ordering-2.C
! c7d19bcfd6293dcc2e1b62c71b24d14e  gcc/testsuite/g++.dg/spellcheck-macro-ordering.C
  138b26dd96477d5ca37e93e1baad9a7f  gcc/testsuite/g++.dg/spellcheck-ns.C
  dea81150700765a4bf726fcbf91fe264  gcc/testsuite/g++.dg/spellcheck-pr104806.C
  e0b7add2701cd70f88a83a0d885fe339  gcc/testsuite/g++.dg/spellcheck-pr77565.C
--- 27496,27514 ----
  09034a812fccea6ecaa6edd2f8089fc9  gcc/testsuite/g++.dg/special/conpr-3a.cc
  0d5597e1f29008b02b626a0d09bf9c34  gcc/testsuite/g++.dg/special/conpr-3b.cc
  a0eb468046d5e36275ade20495e2f0c4  gcc/testsuite/g++.dg/special/conpr-4.C
! 822e23fe1604bd0dce9cf1bdb4d10c6e  gcc/testsuite/g++.dg/special/ecos.exp
  d646642e04b6f7a6bb987dddc08a0268  gcc/testsuite/g++.dg/special/initp1.C
  ae5f6e9b349b6bd54b510d6f4e11eab0  gcc/testsuite/g++.dg/special/initpri1.C
  495d2d9e552898de91e04d1536c2d0bc  gcc/testsuite/g++.dg/special/initpri2.C
! 9475eac5ac93b56d08b936bbdc28bd93  gcc/testsuite/g++.dg/special/initpri3.C
  0bf488203688cc3a8da411c5dff908ce  gcc/testsuite/g++.dg/spellcheck-c++-11-keyword.C
  c1046dd316dec6f0b685aa481a1b9387  gcc/testsuite/g++.dg/spellcheck-fields-2.C
  b57591402d64bc0218597be33d025525  gcc/testsuite/g++.dg/spellcheck-fields.C
  10062571e916c88fbeb05d689547ddb5  gcc/testsuite/g++.dg/spellcheck-identifiers-2.C
  328a465a44edb7f7e2aea06d3d34791d  gcc/testsuite/g++.dg/spellcheck-identifiers.C
! f81c775a7fe1bc9a4d8635ab063fdd94  gcc/testsuite/g++.dg/spellcheck-inttypes.C
  c0c20230f9ca78ee531a757fe9c20cdc  gcc/testsuite/g++.dg/spellcheck-macro-ordering-2.C
! fd46030babeb665cfa8bb982f32c5409  gcc/testsuite/g++.dg/spellcheck-macro-ordering.C
  138b26dd96477d5ca37e93e1baad9a7f  gcc/testsuite/g++.dg/spellcheck-ns.C
  dea81150700765a4bf726fcbf91fe264  gcc/testsuite/g++.dg/spellcheck-pr104806.C
  e0b7add2701cd70f88a83a0d885fe339  gcc/testsuite/g++.dg/spellcheck-pr77565.C
*************** f5d8d2f92f0dbaa3ca7558a778137fb3  gcc/te
*** 25650,25662 ****
  4671c4e6fc200d3456e42dec09c68203  gcc/testsuite/g++.dg/spellcheck-pr80177.C
  569260f7b52f8c920f20c7151931a919  gcc/testsuite/g++.dg/spellcheck-reswords.C
  a450a634e49ab2a381246a13bda48525  gcc/testsuite/g++.dg/spellcheck-single-vs-multiple.C
! cf711ea2ac1f0a7044e001bc02282e5e  gcc/testsuite/g++.dg/spellcheck-stdint.C
! 47d441d1bf0e0fc76ec137ac75b0ea31  gcc/testsuite/g++.dg/spellcheck-stdlib.C
  7eb03d350a29bce257b72d771d908294  gcc/testsuite/g++.dg/spellcheck-typenames.C
  9ad7d6448de7763f41feba51662efa9e  gcc/testsuite/g++.dg/sso-1.C
  3effe360372112f0a4945b07676db736  gcc/testsuite/g++.dg/sso-2.C
  fa011470540ad9d82ce9256acb7c4e4e  gcc/testsuite/g++.dg/stackprotectexplicit2.C
  818e836e9afe37ef1ccf1f438b5cf602  gcc/testsuite/g++.dg/strict-flex-array-1.C
  17ca6638f0ceb63bdd6e6d79da598160  gcc/testsuite/g++.dg/system-binary-constants-1.C
  e365b74306fcc009f9864598bae7a166  gcc/testsuite/g++.dg/system-binary-constants-1.h
  f660af37e71a300b94fc53e6bc686185  gcc/testsuite/g++.dg/tc1/dr1.C
--- 27519,27533 ----
  4671c4e6fc200d3456e42dec09c68203  gcc/testsuite/g++.dg/spellcheck-pr80177.C
  569260f7b52f8c920f20c7151931a919  gcc/testsuite/g++.dg/spellcheck-reswords.C
  a450a634e49ab2a381246a13bda48525  gcc/testsuite/g++.dg/spellcheck-single-vs-multiple.C
! 454263f21a26f7f73f48676987f8e867  gcc/testsuite/g++.dg/spellcheck-stdint.C
! 9aff84f363671662ec5dfc896edd6582  gcc/testsuite/g++.dg/spellcheck-stdlib.C
  7eb03d350a29bce257b72d771d908294  gcc/testsuite/g++.dg/spellcheck-typenames.C
  9ad7d6448de7763f41feba51662efa9e  gcc/testsuite/g++.dg/sso-1.C
  3effe360372112f0a4945b07676db736  gcc/testsuite/g++.dg/sso-2.C
  fa011470540ad9d82ce9256acb7c4e4e  gcc/testsuite/g++.dg/stackprotectexplicit2.C
  818e836e9afe37ef1ccf1f438b5cf602  gcc/testsuite/g++.dg/strict-flex-array-1.C
+ 157d3f0c534e49c591c432027d5bcb8b  gcc/testsuite/g++.dg/strub-internal-pr112938.cc
+ 5e439908573db43929c1f7391d7edaa9  gcc/testsuite/g++.dg/strub-run1.C
  17ca6638f0ceb63bdd6e6d79da598160  gcc/testsuite/g++.dg/system-binary-constants-1.C
  e365b74306fcc009f9864598bae7a166  gcc/testsuite/g++.dg/system-binary-constants-1.h
  f660af37e71a300b94fc53e6bc686185  gcc/testsuite/g++.dg/tc1/dr1.C
*************** c96fbe06df46f858258f3ea5558788f1  gcc/te
*** 25882,25894 ****
  93a91f0833b39ca0b08d8b6d0c0d19b1  gcc/testsuite/g++.dg/template/conv18.C
  bd99141c68d90e04855763e3f2bfa63a  gcc/testsuite/g++.dg/template/conv19.C
  383f6618c1ccaddea23b36ff23d6d35e  gcc/testsuite/g++.dg/template/conv2.C
  be5017725e9889a47d07ba0d3a3464ff  gcc/testsuite/g++.dg/template/conv3.C
  53aab59e272fd22ef1ad191d0f31e01d  gcc/testsuite/g++.dg/template/conv4.C
  65388659b6ed4f0befbd55edf3402b26  gcc/testsuite/g++.dg/template/conv5.C
  a99117f536bfae5da72de6e056eca4b9  gcc/testsuite/g++.dg/template/conv6.C
  94bd39b4081e21725b306825863ab68b  gcc/testsuite/g++.dg/template/conv7.C
  8de20cec2491fd7ca8d7d9e44e45478a  gcc/testsuite/g++.dg/template/conv9.C
! 1469c87ecb6738a771875739cd1be3c1  gcc/testsuite/g++.dg/template/copy1.C
  ff8577ac97f88f47b1257f3d5c6a4c9a  gcc/testsuite/g++.dg/template/crash1.C
  245c3c3a69c27117dfcc4b6588677c7d  gcc/testsuite/g++.dg/template/crash10.C
  c6f57753f4555edd2774141e7cb2f76a  gcc/testsuite/g++.dg/template/crash100.C
--- 27753,27766 ----
  93a91f0833b39ca0b08d8b6d0c0d19b1  gcc/testsuite/g++.dg/template/conv18.C
  bd99141c68d90e04855763e3f2bfa63a  gcc/testsuite/g++.dg/template/conv19.C
  383f6618c1ccaddea23b36ff23d6d35e  gcc/testsuite/g++.dg/template/conv2.C
+ 7007296b331c98d850f1256174a2f610  gcc/testsuite/g++.dg/template/conv20.C
  be5017725e9889a47d07ba0d3a3464ff  gcc/testsuite/g++.dg/template/conv3.C
  53aab59e272fd22ef1ad191d0f31e01d  gcc/testsuite/g++.dg/template/conv4.C
  65388659b6ed4f0befbd55edf3402b26  gcc/testsuite/g++.dg/template/conv5.C
  a99117f536bfae5da72de6e056eca4b9  gcc/testsuite/g++.dg/template/conv6.C
  94bd39b4081e21725b306825863ab68b  gcc/testsuite/g++.dg/template/conv7.C
  8de20cec2491fd7ca8d7d9e44e45478a  gcc/testsuite/g++.dg/template/conv9.C
! 1005846cc8d8180f91a93f747312b8b1  gcc/testsuite/g++.dg/template/copy1.C
  ff8577ac97f88f47b1257f3d5c6a4c9a  gcc/testsuite/g++.dg/template/crash1.C
  245c3c3a69c27117dfcc4b6588677c7d  gcc/testsuite/g++.dg/template/crash10.C
  c6f57753f4555edd2774141e7cb2f76a  gcc/testsuite/g++.dg/template/crash100.C
*************** b1116241a73655533d853dad64261e36  gcc/te
*** 25920,25926 ****
  c081ec235535cb35db6b7c0cf3a35a8a  gcc/testsuite/g++.dg/template/crash124.C
  f3479c12a0b2990faeabcc639e8885b8  gcc/testsuite/g++.dg/template/crash125.C
  7453dcdcd734927985213354703f9e57  gcc/testsuite/g++.dg/template/crash126.C
! 57936c898c1f5b0a70cc981318924dd6  gcc/testsuite/g++.dg/template/crash127.C
  d14caefc036fb29a67deb7bc23946ad0  gcc/testsuite/g++.dg/template/crash128.C
  52304a1015e0bac33aaf9df726573896  gcc/testsuite/g++.dg/template/crash129.C
  df27fa537f93cbc7c2d2e1f1d60aee3e  gcc/testsuite/g++.dg/template/crash13.C
--- 27792,27798 ----
  c081ec235535cb35db6b7c0cf3a35a8a  gcc/testsuite/g++.dg/template/crash124.C
  f3479c12a0b2990faeabcc639e8885b8  gcc/testsuite/g++.dg/template/crash125.C
  7453dcdcd734927985213354703f9e57  gcc/testsuite/g++.dg/template/crash126.C
! e76932a50076b6ac19d84f78bd166451  gcc/testsuite/g++.dg/template/crash127.C
  d14caefc036fb29a67deb7bc23946ad0  gcc/testsuite/g++.dg/template/crash128.C
  52304a1015e0bac33aaf9df726573896  gcc/testsuite/g++.dg/template/crash129.C
  df27fa537f93cbc7c2d2e1f1d60aee3e  gcc/testsuite/g++.dg/template/crash13.C
*************** dfe8fe9abce8be55414485a111a8c15f  gcc/te
*** 26137,26142 ****
--- 28009,28015 ----
  294cb584d05edd3313c80b73e8cd5f4d  gcc/testsuite/g++.dg/template/enum6.C
  64a39245eac282a03a7fe5d39bebcde3  gcc/testsuite/g++.dg/template/enum7.C
  c9482bcfa2d35bb4e349100f9060f230  gcc/testsuite/g++.dg/template/enum8.C
+ cc7952639b529a24d1979b100ff942b2  gcc/testsuite/g++.dg/template/enum9.C
  84da5f16e9ca41c31737fa160f9252cd  gcc/testsuite/g++.dg/template/error-recovery1.C
  b3e2bbd8608c9f9206f9850201803c3c  gcc/testsuite/g++.dg/template/error-recovery2.C
  27356488b9c5da7cda4057e6aac17f5a  gcc/testsuite/g++.dg/template/error-recovery3.C
*************** f942827c4c8f49e463f6196ed54942bb  gcc/te
*** 26168,26174 ****
  0f550f42a764725b5ef085971e281ea8  gcc/testsuite/g++.dg/template/error31.C
  95475caa3d2f02af77559820e82ebb1c  gcc/testsuite/g++.dg/template/error32.C
  237801950642a8652b123fbc000b9471  gcc/testsuite/g++.dg/template/error33.C
! 105a82b535a16d4389529eac52326659  gcc/testsuite/g++.dg/template/error34.C
  ec5424870d858d65af5e881fa9983775  gcc/testsuite/g++.dg/template/error35.C
  39b6e4fbac4ab72f5dbde172cb19c369  gcc/testsuite/g++.dg/template/error36.C
  34ab2aefdfc2ee66c4a1c5d1830304e9  gcc/testsuite/g++.dg/template/error37.C
--- 28041,28047 ----
  0f550f42a764725b5ef085971e281ea8  gcc/testsuite/g++.dg/template/error31.C
  95475caa3d2f02af77559820e82ebb1c  gcc/testsuite/g++.dg/template/error32.C
  237801950642a8652b123fbc000b9471  gcc/testsuite/g++.dg/template/error33.C
! ced97ef37cea23bd8c9bb7056bb00e07  gcc/testsuite/g++.dg/template/error34.C
  ec5424870d858d65af5e881fa9983775  gcc/testsuite/g++.dg/template/error35.C
  39b6e4fbac4ab72f5dbde172cb19c369  gcc/testsuite/g++.dg/template/error36.C
  34ab2aefdfc2ee66c4a1c5d1830304e9  gcc/testsuite/g++.dg/template/error37.C
*************** d7dd197474ca91bf31cfac374404267d  gcc/te
*** 26197,26202 ****
--- 28070,28077 ----
  07b03a083081547de28e0a1afd970688  gcc/testsuite/g++.dg/template/error58.C
  4077977a426a678e1310042bae833fd5  gcc/testsuite/g++.dg/template/error59.C
  8f931fa8690071fcefc2b1d1d7483bfc  gcc/testsuite/g++.dg/template/error6.C
+ 872318a2899c309f5bb451d2a7b17e38  gcc/testsuite/g++.dg/template/error60.C
+ 304cb66563db90634c10605cf1335586  gcc/testsuite/g++.dg/template/error60a.C
  3eacbecd65bcd0b71a23a9e2127f6e27  gcc/testsuite/g++.dg/template/error7.C
  c9b240f0c05d21fb3eecb76bae171790  gcc/testsuite/g++.dg/template/error8.C
  140297b8d72a104b762af1a4e390e9ec  gcc/testsuite/g++.dg/template/error9.C
*************** c516af6d3dbacce330102f6926ee7107  gcc/te
*** 26216,26221 ****
--- 28091,28098 ----
  7c2daced476ed6b72c25a10611af9a2c  gcc/testsuite/g++.dg/template/explicit-instantiation3.C
  4e37a54564809d4cd3d149349f378941  gcc/testsuite/g++.dg/template/explicit-instantiation4.C
  2272cd92b5c114b457626eb6e3f44b3c  gcc/testsuite/g++.dg/template/explicit-instantiation5.C
+ c6a14388529e88398ceff5e475585175  gcc/testsuite/g++.dg/template/explicit-instantiation6.C
+ edbb068b5e160bf72ca66e43d8adde70  gcc/testsuite/g++.dg/template/explicit-instantiation7.C
  610a5ce174887479710ddef7e050b0e9  gcc/testsuite/g++.dg/template/explicit1.C
  44f3a8f925589bae9dc773b19a3fd2de  gcc/testsuite/g++.dg/template/explicit2.C
  3b0207ca15de6320946949f657d95b9a  gcc/testsuite/g++.dg/template/explicit3.C
*************** b21023a383690906d31ed5c2f45cd122  gcc/te
*** 26238,26243 ****
--- 28115,28121 ----
  f85ab66eeb2b191e2fee2b0b5013d956  gcc/testsuite/g++.dg/template/fn.C
  1581f9141ad183d6d31a009275ebf7a4  gcc/testsuite/g++.dg/template/fnspec1.C
  b3daac63a206f01addf077a8790a86dc  gcc/testsuite/g++.dg/template/fnspec2.C
+ 16b8d7a78bf399529c4698f868f3fe20  gcc/testsuite/g++.dg/template/fnspec3.C
  8f101d84c90c958381606b762e3df298  gcc/testsuite/g++.dg/template/fntry1.C
  c3025665d58f3b1443b5cbb53b5bd0f6  gcc/testsuite/g++.dg/template/fntype1.C
  7ac174f3aacd8bf0e65398beb7becf93  gcc/testsuite/g++.dg/template/friend.C
*************** bd0f521c596d8807aa8d76b10716d619  gcc/te
*** 26314,26319 ****
--- 28192,28201 ----
  e99bfe98523cadafac68ba8e9e8c8f35  gcc/testsuite/g++.dg/template/friend72a.C
  76ebd5e11a16898d1bdf51f8b1f76449  gcc/testsuite/g++.dg/template/friend73.C
  08aeef7e95f0f822e6e8b78c88d9bbb7  gcc/testsuite/g++.dg/template/friend74.C
+ 447c65f301ce52c34ac8473c060c4589  gcc/testsuite/g++.dg/template/friend76.C
+ 3b898b49d1a08f12ad5e0cef04bf7a5e  gcc/testsuite/g++.dg/template/friend77.C
+ 5ded44dad812054a2b06422df4b95665  gcc/testsuite/g++.dg/template/friend78.C
+ 4dc437715a142713343f675e0a33aa94  gcc/testsuite/g++.dg/template/friend79.C
  ceb858e95982ac0af2e9168f31aea229  gcc/testsuite/g++.dg/template/friend8.C
  59b5bf61b7f6210d3cf3b9b45692794a  gcc/testsuite/g++.dg/template/friend9.C
  d5d24fc94d133229a10c5b13f44c253b  gcc/testsuite/g++.dg/template/func1.C
*************** ac6c40bfa874333f4cc3f13523df5556  gcc/te
*** 26349,26355 ****
  e920cba477d63f2866ea0710ce55a2ce  gcc/testsuite/g++.dg/template/init4.C
  ca8434716aafffaf7e37a7ea8e094cc5  gcc/testsuite/g++.dg/template/init5.C
  4073a456770271d9472a0b758e1458a8  gcc/testsuite/g++.dg/template/init6.C
! 8b7e2ee31c044917df6c66a5933648fd  gcc/testsuite/g++.dg/template/init7.C
  64a05fc8eebed95ff925e08b8a3bf935  gcc/testsuite/g++.dg/template/init8.C
  076870e80a684a5a6a6b5bf148ed5356  gcc/testsuite/g++.dg/template/init9.C
  59eb525ce48c5e31b50c37c8d6c5f08e  gcc/testsuite/g++.dg/template/injected1.C
--- 28231,28237 ----
  e920cba477d63f2866ea0710ce55a2ce  gcc/testsuite/g++.dg/template/init4.C
  ca8434716aafffaf7e37a7ea8e094cc5  gcc/testsuite/g++.dg/template/init5.C
  4073a456770271d9472a0b758e1458a8  gcc/testsuite/g++.dg/template/init6.C
! a7111969aff81637353a003ce230b80a  gcc/testsuite/g++.dg/template/init7.C
  64a05fc8eebed95ff925e08b8a3bf935  gcc/testsuite/g++.dg/template/init8.C
  076870e80a684a5a6a6b5bf148ed5356  gcc/testsuite/g++.dg/template/init9.C
  59eb525ce48c5e31b50c37c8d6c5f08e  gcc/testsuite/g++.dg/template/injected1.C
*************** d7b45350c258784a47a153c1dedc979d  gcc/te
*** 26381,26397 ****
  331e9bd8d23757608f4687c51ab1c460  gcc/testsuite/g++.dg/template/koenig8.C
  0e217ccc45d6ea239c0b368c1909c623  gcc/testsuite/g++.dg/template/koenig9.C
  5dec59646872d8a02daabc81749addb4  gcc/testsuite/g++.dg/template/linkage1.C
  29182ba864d966fb7660afbfb5b53867  gcc/testsuite/g++.dg/template/local-fn1.C
  5c91f2205ed2a7f3fb059e7ae61d14a0  gcc/testsuite/g++.dg/template/local-fn2.C
  0a5354fadb501a8e2beb59a5fee1674a  gcc/testsuite/g++.dg/template/local-fn3.C
  d9981244f2f8fd4e74d52397db28fe14  gcc/testsuite/g++.dg/template/local-fn4.C
  2b0aaea042d19245e7e8611f526bdba8  gcc/testsuite/g++.dg/template/local-var1.C
  97787b0149d1c2ccd1052e2a39deabcc  gcc/testsuite/g++.dg/template/local1.C
  d32b0f4cfabbf7cf6a3f55db155096d2  gcc/testsuite/g++.dg/template/local2.C
  e254df20b082728d0e04a8e1b3b18557  gcc/testsuite/g++.dg/template/local3.C
  a014c1dc8c12fc5b1125d98db2cd0ca2  gcc/testsuite/g++.dg/template/local4.C
  cdb30bf1f7ce096f5aff97aa15fa35ce  gcc/testsuite/g++.dg/template/local5.C
! d624d546db476163b9e7b3f93ac4258f  gcc/testsuite/g++.dg/template/local6.C
  e8013d76ce3f8f9574197fee5026c527  gcc/testsuite/g++.dg/template/local7.C
  4b8e232e3f151333498020bca196e50d  gcc/testsuite/g++.dg/template/local8.C
  8ba073bcaa2c38a5aee5b8aec702eed2  gcc/testsuite/g++.dg/template/local9.C
--- 28263,28284 ----
  331e9bd8d23757608f4687c51ab1c460  gcc/testsuite/g++.dg/template/koenig8.C
  0e217ccc45d6ea239c0b368c1909c623  gcc/testsuite/g++.dg/template/koenig9.C
  5dec59646872d8a02daabc81749addb4  gcc/testsuite/g++.dg/template/linkage1.C
+ d220f34a4df308614ca3763082657ded  gcc/testsuite/g++.dg/template/linkage2.C
+ 840fb811588f9bc42186669f9b6a502e  gcc/testsuite/g++.dg/template/linkage3.C
+ f2d064e0f1029527b659311fe92ff1bc  gcc/testsuite/g++.dg/template/linkage4.C
+ 482f9bc740469050d0b48a40a8ec0627  gcc/testsuite/g++.dg/template/linkage4a.C
  29182ba864d966fb7660afbfb5b53867  gcc/testsuite/g++.dg/template/local-fn1.C
  5c91f2205ed2a7f3fb059e7ae61d14a0  gcc/testsuite/g++.dg/template/local-fn2.C
  0a5354fadb501a8e2beb59a5fee1674a  gcc/testsuite/g++.dg/template/local-fn3.C
  d9981244f2f8fd4e74d52397db28fe14  gcc/testsuite/g++.dg/template/local-fn4.C
  2b0aaea042d19245e7e8611f526bdba8  gcc/testsuite/g++.dg/template/local-var1.C
  97787b0149d1c2ccd1052e2a39deabcc  gcc/testsuite/g++.dg/template/local1.C
+ e1775095cd3b911959d05eaf433a998e  gcc/testsuite/g++.dg/template/local10.C
  d32b0f4cfabbf7cf6a3f55db155096d2  gcc/testsuite/g++.dg/template/local2.C
  e254df20b082728d0e04a8e1b3b18557  gcc/testsuite/g++.dg/template/local3.C
  a014c1dc8c12fc5b1125d98db2cd0ca2  gcc/testsuite/g++.dg/template/local4.C
  cdb30bf1f7ce096f5aff97aa15fa35ce  gcc/testsuite/g++.dg/template/local5.C
! db3d0b652cfc094848e74f8c98356f92  gcc/testsuite/g++.dg/template/local6.C
  e8013d76ce3f8f9574197fee5026c527  gcc/testsuite/g++.dg/template/local7.C
  4b8e232e3f151333498020bca196e50d  gcc/testsuite/g++.dg/template/local8.C
  8ba073bcaa2c38a5aee5b8aec702eed2  gcc/testsuite/g++.dg/template/local9.C
*************** dd5106154e8f9fa0866be1a1283b490e  gcc/te
*** 26478,26483 ****
--- 28365,28371 ----
  8a3716757b496de374cb6d6a4f5b6a64  gcc/testsuite/g++.dg/template/new11.C
  22fdea7e0d8c7b43828d7f57e62f8723  gcc/testsuite/g++.dg/template/new12.C
  69a4aec7bac75f5a56b81d4d1ce80d37  gcc/testsuite/g++.dg/template/new13.C
+ 9e32fcb31dfff3818fd7ee06dda99add  gcc/testsuite/g++.dg/template/new14.C
  b8243d46589815a568bb0992cb04adec  gcc/testsuite/g++.dg/template/new2.C
  96809d2309b18f883a007f6f203fcd45  gcc/testsuite/g++.dg/template/new3.C
  dd1a46f35db3a9b5825a9179ac010e0c  gcc/testsuite/g++.dg/template/new4.C
*************** f0c450f8db48d43656ca65a653823c20  gcc/te
*** 26508,26514 ****
--- 28396,28411 ----
  3f4aec0e7128a2b9a75631b613288601  gcc/testsuite/g++.dg/template/non-dependent22.C
  edbb2eb6b16ce837ec21b27130e8c858  gcc/testsuite/g++.dg/template/non-dependent23.C
  1e69ab8c5a89ee0cc1405d82592765e6  gcc/testsuite/g++.dg/template/non-dependent24.C
+ 3e9e722855e16669b2e0a6373bff730d  gcc/testsuite/g++.dg/template/non-dependent25.C
+ b8abf4646d3a6e1d2640fa06a5528458  gcc/testsuite/g++.dg/template/non-dependent25a.C
+ ba9bed49af084d7dc11a8c2f1b1a6226  gcc/testsuite/g++.dg/template/non-dependent26.C
+ 9d1f3082f57887452f8ab778cb00dc4b  gcc/testsuite/g++.dg/template/non-dependent27.C
+ dc805ec3cebd490d8712ade467c6f6b6  gcc/testsuite/g++.dg/template/non-dependent28.C
+ 65ff28230335ae661a0cc3a4d0e1ae11  gcc/testsuite/g++.dg/template/non-dependent28a.C
+ 428fbfb05ac24f8ec22fe08b8699ded9  gcc/testsuite/g++.dg/template/non-dependent29.C
  9c0fc4f566e5de8ff0339df3c3ef274d  gcc/testsuite/g++.dg/template/non-dependent3.C
+ bff165ca22463894c2709efc7a2bb28a  gcc/testsuite/g++.dg/template/non-dependent30.C
+ 908381d5e34f27621eda71696a2c9bdc  gcc/testsuite/g++.dg/template/non-dependent31.C
  c74bd06e4f01d82b6dffe8568a9f9286  gcc/testsuite/g++.dg/template/non-dependent4.C
  7e000c3eaeb33b0cda5191bb78ee313d  gcc/testsuite/g++.dg/template/non-dependent5.C
  45dd220f658e86742366772757b041e2  gcc/testsuite/g++.dg/template/non-dependent6.C
*************** c68d85d18e13eca7b98c51e07b278cf0  gcc/te
*** 26522,26528 ****
  0841e0681f53f5792b711984e991f3a8  gcc/testsuite/g++.dg/template/nontype1.C
  e9af055ac6a0774b7565e0722c861adb  gcc/testsuite/g++.dg/template/nontype10.C
  9ba9723e8601b19208ac3f8350ee6695  gcc/testsuite/g++.dg/template/nontype11.C
! c83fa877ca439acda974b9a818a8851c  gcc/testsuite/g++.dg/template/nontype12.C
  026a3a74d3eecb7e9f71f4dc66815dc5  gcc/testsuite/g++.dg/template/nontype13.C
  937af4e6ac2cefe2dff1503c7819130f  gcc/testsuite/g++.dg/template/nontype14.C
  e4e6038ded9c7ed667109894758cea89  gcc/testsuite/g++.dg/template/nontype15.C
--- 28419,28425 ----
  0841e0681f53f5792b711984e991f3a8  gcc/testsuite/g++.dg/template/nontype1.C
  e9af055ac6a0774b7565e0722c861adb  gcc/testsuite/g++.dg/template/nontype10.C
  9ba9723e8601b19208ac3f8350ee6695  gcc/testsuite/g++.dg/template/nontype11.C
! 1eebf1c863ccd815be6af3ff67f3a866  gcc/testsuite/g++.dg/template/nontype12.C
  026a3a74d3eecb7e9f71f4dc66815dc5  gcc/testsuite/g++.dg/template/nontype13.C
  937af4e6ac2cefe2dff1503c7819130f  gcc/testsuite/g++.dg/template/nontype14.C
  e4e6038ded9c7ed667109894758cea89  gcc/testsuite/g++.dg/template/nontype15.C
*************** d208e10201185efb319abd86bee2ff98  gcc/te
*** 26542,26547 ****
--- 28439,28445 ----
  29426ea06c65ca7c3fa8d5ecd6177ab6  gcc/testsuite/g++.dg/template/nontype28.C
  53853006e3509ee627e6904d05925a8d  gcc/testsuite/g++.dg/template/nontype29.C
  a90bca38d3ce6988650e843cd4d6cf44  gcc/testsuite/g++.dg/template/nontype3.C
+ a4993a6cf0b80d792617429607ad9c91  gcc/testsuite/g++.dg/template/nontype30.C
  6b7e8b2d3824f0454ad886de81e794a3  gcc/testsuite/g++.dg/template/nontype4.C
  1b9356f2c2f64b75b3145a2a1f0fd55a  gcc/testsuite/g++.dg/template/nontype5.C
  40280792650dbefbd9ff94ba5cc5d03e  gcc/testsuite/g++.dg/template/nontype6.C
*************** cf88c333627b0b71c493b6375c6b9286  gcc/te
*** 26597,26607 ****
--- 28495,28507 ----
  486d4c5a4f5f81e0939deae14d55e933  gcc/testsuite/g++.dg/template/partial-order1.C
  ae5d48999739c18e13002880ad3cd978  gcc/testsuite/g++.dg/template/partial-order2.C
  a1c1a1990e3a2880c059ff1f334dbfc4  gcc/testsuite/g++.dg/template/partial-order3.C
+ cd0f00b832bfc65290efb5922cb88f7f  gcc/testsuite/g++.dg/template/partial-order4.C
  e187a317d102d915368fe357726202ba  gcc/testsuite/g++.dg/template/partial-specialization.C
  dff775a30f72a8e3c0ef1db583a1ea7b  gcc/testsuite/g++.dg/template/partial-specialization10.C
  9ba8631cf52f4ca9887f51f7e2a0dee4  gcc/testsuite/g++.dg/template/partial-specialization11.C
  c6626df8c629f478dbdc351fb543d7ae  gcc/testsuite/g++.dg/template/partial-specialization12.C
  d778cb1d13749495385a6eb523e7986b  gcc/testsuite/g++.dg/template/partial-specialization13.C
+ 71f8a5c0d34034b36a27a217235934f7  gcc/testsuite/g++.dg/template/partial-specialization14.C
  85762b85724149f8854c0c886e8d724f  gcc/testsuite/g++.dg/template/partial-specialization2.C
  e3bba8fb10b84a1583b714234f4d0593  gcc/testsuite/g++.dg/template/partial-specialization3.C
  e860cd8afddc5e6a3e1e2380ceb1d83c  gcc/testsuite/g++.dg/template/partial-specialization4.C
*************** f81a697a6ef5d642b2872758266b754c  gcc/te
*** 26662,26667 ****
--- 28562,28568 ----
  f6ea324c95cba0af3bff378448473def  gcc/testsuite/g++.dg/template/pr59930-2.C
  759a2d0786ed85f62a797f80321ecdc2  gcc/testsuite/g++.dg/template/pr59930-3.C
  ae27fcfe45fb638bb620109e3d14cecf  gcc/testsuite/g++.dg/template/pr61537.C
+ 5dd06d2ae489cdd277e029307336f86f  gcc/testsuite/g++.dg/template/pr61663.C
  9f83a83eca8bc22cf5852d6ac3fa6e5b  gcc/testsuite/g++.dg/template/pr61670.C
  dfae2ba822b3b22cef23f3338bc4409f  gcc/testsuite/g++.dg/template/pr61745.C
  a839a521a0bb4d53f24266ff5962de56  gcc/testsuite/g++.dg/template/pr64100.C
*************** d7e997028da5485d49789a1ed367286f  gcc/te
*** 26753,26758 ****
--- 28654,28660 ----
  4a5c12efa02380f96bed041f831c9b80  gcc/testsuite/g++.dg/template/ptrmem31.C
  8469f0a5fd87c7edea1ce86836b6bbaf  gcc/testsuite/g++.dg/template/ptrmem32.C
  3b49005292f85001f897f8ff5d7bac7e  gcc/testsuite/g++.dg/template/ptrmem33.C
+ a92d0d026e1fd22a44d9f34e5ce051b0  gcc/testsuite/g++.dg/template/ptrmem34.C
  9a4a21b8504db815b1c727663eff64ff  gcc/testsuite/g++.dg/template/ptrmem4.C
  c1d71028a4f69f5c3fcfd2fd8a35f919  gcc/testsuite/g++.dg/template/ptrmem5.C
  0142354fd9237d4486fb0edc36ef39cc  gcc/testsuite/g++.dg/template/ptrmem6.C
*************** ab40f4b3e3975f404d695f43d8aae28e  gcc/te
*** 26794,26800 ****
  f2ec7f2b1831f06db667b8a52e15b433  gcc/testsuite/g++.dg/template/recurse.C
  6a7ca5e4fd47fe37ca29d61be39ecdf2  gcc/testsuite/g++.dg/template/recurse1.C
  c8ace1218ccb0299924650338fcf4488  gcc/testsuite/g++.dg/template/recurse2.C
! a5be65b82f1aef08aa55aeaa5da0c8d4  gcc/testsuite/g++.dg/template/recurse3.C
  3e3e16c6c4a27889ab806fcd2bbae879  gcc/testsuite/g++.dg/template/recurse4.C
  c7309345696ac164222361961daab266  gcc/testsuite/g++.dg/template/redecl1.C
  6931ae73eaf26b6f436460259c61e3bb  gcc/testsuite/g++.dg/template/redecl2.C
--- 28696,28702 ----
  f2ec7f2b1831f06db667b8a52e15b433  gcc/testsuite/g++.dg/template/recurse.C
  6a7ca5e4fd47fe37ca29d61be39ecdf2  gcc/testsuite/g++.dg/template/recurse1.C
  c8ace1218ccb0299924650338fcf4488  gcc/testsuite/g++.dg/template/recurse2.C
! e3c6a3810fd63d656f047c7fe7e3d09f  gcc/testsuite/g++.dg/template/recurse3.C
  3e3e16c6c4a27889ab806fcd2bbae879  gcc/testsuite/g++.dg/template/recurse4.C
  c7309345696ac164222361961daab266  gcc/testsuite/g++.dg/template/redecl1.C
  6931ae73eaf26b6f436460259c61e3bb  gcc/testsuite/g++.dg/template/redecl2.C
*************** b3e926a09671bb6d64fb4f63dde975e0  gcc/te
*** 26820,26826 ****
  ef990e1f472156561fef3a8840a530bd  gcc/testsuite/g++.dg/template/scope5.C
  0186275439ee5dd117414c26c3ceb2be  gcc/testsuite/g++.dg/template/scope6.C
  2cd0b64dfe6040cab0c7b4c02fb0ac81  gcc/testsuite/g++.dg/template/sfinae-dr1227.C
! 08b97a56f0e4650959c70cc0fae65678  gcc/testsuite/g++.dg/template/sfinae-dr657.C
  d4a6fe33f1456d026d068d25f316aa9c  gcc/testsuite/g++.dg/template/sfinae1.C
  08e40e1ccd7635d093d248a8b6295788  gcc/testsuite/g++.dg/template/sfinae10.C
  52303ab3e71ec37ab5f5099984d9715b  gcc/testsuite/g++.dg/template/sfinae11.C
--- 28722,28728 ----
  ef990e1f472156561fef3a8840a530bd  gcc/testsuite/g++.dg/template/scope5.C
  0186275439ee5dd117414c26c3ceb2be  gcc/testsuite/g++.dg/template/scope6.C
  2cd0b64dfe6040cab0c7b4c02fb0ac81  gcc/testsuite/g++.dg/template/sfinae-dr1227.C
! 36d5f7006523591a6edce8992d5ed328  gcc/testsuite/g++.dg/template/sfinae-dr657.C
  d4a6fe33f1456d026d068d25f316aa9c  gcc/testsuite/g++.dg/template/sfinae1.C
  08e40e1ccd7635d093d248a8b6295788  gcc/testsuite/g++.dg/template/sfinae10.C
  52303ab3e71ec37ab5f5099984d9715b  gcc/testsuite/g++.dg/template/sfinae11.C
*************** f3d1c78c98af6fc6f4d1fbc648a31143  gcc/te
*** 26875,26880 ****
--- 28777,28784 ----
  ebdb792b93f8bdc6bc2cc6ba0302b95c  gcc/testsuite/g++.dg/template/sizeof15.C
  5dbee939917f6692d7186c2e304cc517  gcc/testsuite/g++.dg/template/sizeof16.C
  497518eaed2ad09ef4b89fb40759c84d  gcc/testsuite/g++.dg/template/sizeof17.C
+ eb96d4d5e8450241cd761e6b51d41c73  gcc/testsuite/g++.dg/template/sizeof18.C
+ 8946f9a943b6acb55633698b8870401e  gcc/testsuite/g++.dg/template/sizeof19.C
  6ebf0c32bb2f9f68d5de8a2eb380e74b  gcc/testsuite/g++.dg/template/sizeof2.C
  f6e095b160ad28af4c90a4545b086bc6  gcc/testsuite/g++.dg/template/sizeof3.C
  70e0faea5b000e5fbde589a89ad950bd  gcc/testsuite/g++.dg/template/sizeof4.C
*************** b03d3fac8b47ebc0e95fe00fc6b76bb1  gcc/te
*** 26901,26907 ****
  27f9cbb46ad58d9e144b84e0550d6e27  gcc/testsuite/g++.dg/template/spec23.C
  756d8965e92fbeb951248f1d353ce9a9  gcc/testsuite/g++.dg/template/spec24.C
  2397475238ed6c0124020eca88d48cbd  gcc/testsuite/g++.dg/template/spec25.C
! 90af08c7295c94a9d0389f1fd6e46d9a  gcc/testsuite/g++.dg/template/spec26.C
  5549dda851b53530395009f544d09652  gcc/testsuite/g++.dg/template/spec27.C
  2bb0c1bb03c5a5683ffbcab3a0b5b66b  gcc/testsuite/g++.dg/template/spec28.C
  9b290630d01c434872c1ed3db6067a4f  gcc/testsuite/g++.dg/template/spec29.C
--- 28805,28811 ----
  27f9cbb46ad58d9e144b84e0550d6e27  gcc/testsuite/g++.dg/template/spec23.C
  756d8965e92fbeb951248f1d353ce9a9  gcc/testsuite/g++.dg/template/spec24.C
  2397475238ed6c0124020eca88d48cbd  gcc/testsuite/g++.dg/template/spec25.C
! 84d65888d71934197b4f1e713f4cd850  gcc/testsuite/g++.dg/template/spec26.C
  5549dda851b53530395009f544d09652  gcc/testsuite/g++.dg/template/spec27.C
  2bb0c1bb03c5a5683ffbcab3a0b5b66b  gcc/testsuite/g++.dg/template/spec28.C
  9b290630d01c434872c1ed3db6067a4f  gcc/testsuite/g++.dg/template/spec29.C
*************** e93f073f61a42e3c7ad372625dbf5491  gcc/te
*** 26975,26980 ****
--- 28879,28885 ----
  8fa3e6c96fba6376bb082c7c80573236  gcc/testsuite/g++.dg/template/template-keyword1.C
  ce80dbc40069cd081d8488c206d6b2a6  gcc/testsuite/g++.dg/template/template-keyword2.C
  7a5cfa5591c26dfb9185c5152c9bc9b0  gcc/testsuite/g++.dg/template/template-keyword3.C
+ 36a70397cd191de4eab2d5c0cd223bb2  gcc/testsuite/g++.dg/template/template-keyword4.C
  2633475e196e36c058cf618a862c925f  gcc/testsuite/g++.dg/template/this-targ1.C
  f9dface1543c62e1ed5a293679ac47da  gcc/testsuite/g++.dg/template/ttp-derived1.C
  d295175d2a75128bac0554e17b63735a  gcc/testsuite/g++.dg/template/ttp-derived2.C
*************** f1061bfe9cbd4c443a0c7f071ebe178b  gcc/te
*** 27012,27018 ****
--- 28917,28930 ----
  c9fdebc946ad552adbe984f19d967fb6  gcc/testsuite/g++.dg/template/ttp34b.C
  03aefa933585cedfd0df2b9ccf14d362  gcc/testsuite/g++.dg/template/ttp35.C
  da2a51af53cbc854115bee0af8932ed9  gcc/testsuite/g++.dg/template/ttp36.C
+ 1237c31a61c02c7324cce0a4561721ec  gcc/testsuite/g++.dg/template/ttp37.C
+ a7bbad1f43c940243d408d03a93859c0  gcc/testsuite/g++.dg/template/ttp38.C
+ 57917288fae1de51228844cd36a6e5e3  gcc/testsuite/g++.dg/template/ttp39.C
  ab6711e26bfa413d472fc55475e7cc75  gcc/testsuite/g++.dg/template/ttp4.C
+ ca96406a9cd1404a4e23708265f75dad  gcc/testsuite/g++.dg/template/ttp40.C
+ 307ac70d42ff48737c71c93fbc066685  gcc/testsuite/g++.dg/template/ttp41.C
+ 3ea490dfdd044ad1cf48f323172947cf  gcc/testsuite/g++.dg/template/ttp42.C
+ c5aea4afefdc8bcc616b22f367a4518f  gcc/testsuite/g++.dg/template/ttp43.C
  786176b167efb2fb05f5876afccf4ea7  gcc/testsuite/g++.dg/template/ttp5.C
  ede8e95c1aeeeb0cf1c4cfb0fd860e07  gcc/testsuite/g++.dg/template/ttp6.C
  a523aab467e9f1ab808cb852a6429393  gcc/testsuite/g++.dg/template/ttp7.C
*************** cf26e329259baed2e3c2675d10b71343  gcc/te
*** 27229,27235 ****
  3aecfa587091ae9e3524d10e3013ccf0  gcc/testsuite/g++.dg/tls/thread_local7g.C
  9399e18da7889fb7fc5333e641e339e4  gcc/testsuite/g++.dg/tls/thread_local8.C
  46eb3382c1226c7ec68020221453058a  gcc/testsuite/g++.dg/tls/thread_local9.C
! 1ce5755050241b89c45e31ad912b2674  gcc/testsuite/g++.dg/tls/tls.exp
  86479ffee518e8ec862d5e9dcaa9866f  gcc/testsuite/g++.dg/tls/tls_model1.C
  7212556766805451a098e554a8ab648e  gcc/testsuite/g++.dg/tls/trivial.C
  debf53c602437e43da099fa943834a84  gcc/testsuite/g++.dg/tm/20100429.C
--- 29141,29147 ----
  3aecfa587091ae9e3524d10e3013ccf0  gcc/testsuite/g++.dg/tls/thread_local7g.C
  9399e18da7889fb7fc5333e641e339e4  gcc/testsuite/g++.dg/tls/thread_local8.C
  46eb3382c1226c7ec68020221453058a  gcc/testsuite/g++.dg/tls/thread_local9.C
! ad2b1c068368202e2bbfc4003482360a  gcc/testsuite/g++.dg/tls/tls.exp
  86479ffee518e8ec862d5e9dcaa9866f  gcc/testsuite/g++.dg/tls/tls_model1.C
  7212556766805451a098e554a8ab648e  gcc/testsuite/g++.dg/tls/trivial.C
  debf53c602437e43da099fa943834a84  gcc/testsuite/g++.dg/tm/20100429.C
*************** cdc7b2399908eab653cc4fc892699046  gcc/te
*** 27262,27268 ****
  ad1023a63012c16494669053ebee125a  gcc/testsuite/g++.dg/tm/noexcept-4.C
  7f471d34ce6426922b5bc3e4946f6129  gcc/testsuite/g++.dg/tm/noexcept-5.C
  148e941cec6096575d1febdce22e22b4  gcc/testsuite/g++.dg/tm/noexcept-6.C
! 503dfe88d2073f7b79cbf45b0941cab3  gcc/testsuite/g++.dg/tm/noexcept-7.C
  ea59b8bd032828e4847843e35708c051  gcc/testsuite/g++.dg/tm/opt-1.C
  6324ba853e9cea28ff844e155ef81188  gcc/testsuite/g++.dg/tm/overload1.C
  10342db57e512fd27f0d51dfb13b489d  gcc/testsuite/g++.dg/tm/overload2.C
--- 29174,29180 ----
  ad1023a63012c16494669053ebee125a  gcc/testsuite/g++.dg/tm/noexcept-4.C
  7f471d34ce6426922b5bc3e4946f6129  gcc/testsuite/g++.dg/tm/noexcept-5.C
  148e941cec6096575d1febdce22e22b4  gcc/testsuite/g++.dg/tm/noexcept-6.C
! 1db3c488330f3504dd37c6019bc210a6  gcc/testsuite/g++.dg/tm/noexcept-7.C
  ea59b8bd032828e4847843e35708c051  gcc/testsuite/g++.dg/tm/opt-1.C
  6324ba853e9cea28ff844e155ef81188  gcc/testsuite/g++.dg/tm/overload1.C
  10342db57e512fd27f0d51dfb13b489d  gcc/testsuite/g++.dg/tm/overload2.C
*************** b8417aa0335eeb4b3381d508ea7f5c38  gcc/te
*** 27309,27315 ****
  8ee54951fa048ab382ca2cdb618a0489  gcc/testsuite/g++.dg/tm/template-3.C
  90fa076ea202f452e01e1b4dcbe98e33  gcc/testsuite/g++.dg/tm/template-4.C
  0b77afa8d842f0a0b08d94321879afc3  gcc/testsuite/g++.dg/tm/template-5.C
! 81871bb83c51036a6eac1f246d108e13  gcc/testsuite/g++.dg/tm/tm.exp
  74d340d87dae689e01101883f8aa0e51  gcc/testsuite/g++.dg/tm/unsafe1.C
  21a5d2c89779740daec0728828afc1e7  gcc/testsuite/g++.dg/tm/unsafe2.C
  6c44d3ee04abacf4b43b2418345ac8d3  gcc/testsuite/g++.dg/tm/vector-1.C
--- 29221,29227 ----
  8ee54951fa048ab382ca2cdb618a0489  gcc/testsuite/g++.dg/tm/template-3.C
  90fa076ea202f452e01e1b4dcbe98e33  gcc/testsuite/g++.dg/tm/template-4.C
  0b77afa8d842f0a0b08d94321879afc3  gcc/testsuite/g++.dg/tm/template-5.C
! 5739366165e49d6586c6bd49c493321f  gcc/testsuite/g++.dg/tm/tm.exp
  74d340d87dae689e01101883f8aa0e51  gcc/testsuite/g++.dg/tm/unsafe1.C
  21a5d2c89779740daec0728828afc1e7  gcc/testsuite/g++.dg/tm/unsafe2.C
  6c44d3ee04abacf4b43b2418345ac8d3  gcc/testsuite/g++.dg/tm/vector-1.C
*************** d6506ab0e8d94811158805fbacea5be7  gcc/te
*** 27337,27342 ****
--- 29249,29255 ----
  3035a8e4756355e15c98fa6b23094c15  gcc/testsuite/g++.dg/torture/accessor-fixits-6.C
  e8df79dfae7c9da7b00835c990c545ce  gcc/testsuite/g++.dg/torture/accessor-fixits-7.C
  bbb4b68b2b55f3e5d143dfc3cb49196e  gcc/testsuite/g++.dg/torture/accessor-fixits-8.C
+ 82d01a451edd1bfe567e3b3dc077d586  gcc/testsuite/g++.dg/torture/accessor-fixits-9-xobj.C
  7748c98522dde244b68d92ecd7ac7b3e  gcc/testsuite/g++.dg/torture/accessor-fixits-9.C
  1902630dcd0f17977840257dac9bf162  gcc/testsuite/g++.dg/torture/alias-1.C
  00be4e22c0324902fc2682eb7eb97766  gcc/testsuite/g++.dg/torture/builtin-clear-padding-1.C
*************** a311bc7bf2311aa8855ffbd171dc6632  gcc/te
*** 27349,27354 ****
--- 29262,29279 ----
  ce4f8106ed96ef070bead8ca0df02eea  gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
  4a0b418d1bbb783ee191f2d05263d191  gcc/testsuite/g++.dg/torture/dg-torture.exp
  2fcf42acf195dc5d57cc2374b8d8baa8  gcc/testsuite/g++.dg/torture/except-1.C
+ b976c4507dfca27bee8399d9cc160c84  gcc/testsuite/g++.dg/torture/harden-cfr-noret-always-no-nothrow.C
+ 527760077ac41ebcd0be7848023c2c8b  gcc/testsuite/g++.dg/torture/harden-cfr-noret-never-no-nothrow.C
+ fd4de6289746348d64723eedebf1865f  gcc/testsuite/g++.dg/torture/harden-cfr-noret-no-nothrow.C
+ 31c088b052a746ab1f7e1add88110ee4  gcc/testsuite/g++.dg/torture/harden-cfr-throw-always.C
+ 215b28ccbad722d5e845a9232cc79a15  gcc/testsuite/g++.dg/torture/harden-cfr-throw-never.C
+ 0cdcffddb4988855cd91f43ee78d27e7  gcc/testsuite/g++.dg/torture/harden-cfr-throw-no-xthrow-expected.C
+ 178aa8ba8b9364f1f8551839afd6ef8f  gcc/testsuite/g++.dg/torture/harden-cfr-throw-no-xthrow.C
+ 59d8a97b5cf4556fe19e97f9341ff003  gcc/testsuite/g++.dg/torture/harden-cfr-throw-nocleanup.C
+ b931a980765738dfeb91c55227e1c3c3  gcc/testsuite/g++.dg/torture/harden-cfr-throw-nothrow.C
+ 864d2835b713e812d3b523e5b6450d3f  gcc/testsuite/g++.dg/torture/harden-cfr-throw-returning.C
+ 3918aacd3a95dd4542067c2ec7a91dbc  gcc/testsuite/g++.dg/torture/harden-cfr-throw.C
+ 4f516f4df9cf606d1d874b3d79b8ea00  gcc/testsuite/g++.dg/torture/harden-comp-pr111520.cc
  fab1470d87fc879a4a285622c057b736  gcc/testsuite/g++.dg/torture/init-list1.C
  4054dd6c177ca7971902e3ac60e34695  gcc/testsuite/g++.dg/torture/ipa-cp-1.C
  f7837cd1e7b0fe610ef272ba2fc3896b  gcc/testsuite/g++.dg/torture/phi-1.C
*************** f5a9c12e412c8a93a448f288800780b5  gcc/te
*** 27369,27375 ****
  674377855743be77a442d6fe11fc86e1  gcc/testsuite/g++.dg/torture/pr103361.C
  98b99f62694b7e1a1f93baf61144a7e7  gcc/testsuite/g++.dg/torture/pr103669.C
  e4fcffb0dc348c47faab30b8fa077a54  gcc/testsuite/g++.dg/torture/pr104450.C
! 1b2c9def415a40edab88d66194706da2  gcc/testsuite/g++.dg/torture/pr104601.C
  ccefc659a7c47911812c4aa74e717a3c  gcc/testsuite/g++.dg/torture/pr104679.C
  e0f2cfb1a1f922a19280efa88e1e5f1c  gcc/testsuite/g++.dg/torture/pr105142.C
  55421b614773ff9e900b6ad17ffe7df3  gcc/testsuite/g++.dg/torture/pr105189.C
--- 29294,29300 ----
  674377855743be77a442d6fe11fc86e1  gcc/testsuite/g++.dg/torture/pr103361.C
  98b99f62694b7e1a1f93baf61144a7e7  gcc/testsuite/g++.dg/torture/pr103669.C
  e4fcffb0dc348c47faab30b8fa077a54  gcc/testsuite/g++.dg/torture/pr104450.C
! 42d264636feb96af52706ba33ad11a00  gcc/testsuite/g++.dg/torture/pr104601.C
  ccefc659a7c47911812c4aa74e717a3c  gcc/testsuite/g++.dg/torture/pr104679.C
  e0f2cfb1a1f922a19280efa88e1e5f1c  gcc/testsuite/g++.dg/torture/pr105142.C
  55421b614773ff9e900b6ad17ffe7df3  gcc/testsuite/g++.dg/torture/pr105189.C
*************** fa23934e49741783f674026ff5030aff  gcc/te
*** 27382,27388 ****
--- 29307,29321 ----
  23e30e4218daf5839a22e1a835dc139d  gcc/testsuite/g++.dg/torture/pr108888.C
  37a8e4f74ae63207e9b1619c6f44a43a  gcc/testsuite/g++.dg/torture/pr109262.C
  e8eff4c0ef885b002db007e536bb99f2  gcc/testsuite/g++.dg/torture/pr109342.C
+ 89bfde1651c08ebd0fd41804796710cf  gcc/testsuite/g++.dg/torture/pr109607.C
  695916482bd1d276cc3c727b90232254  gcc/testsuite/g++.dg/torture/pr109724.C
+ c2a0cf3df84b0f5f4df65937e3fa4da2  gcc/testsuite/g++.dg/torture/pr110308.C
+ 7237bc51ae9e8262024927b5dc5fe13f  gcc/testsuite/g++.dg/torture/pr110332.C
+ 5a55d60594e2810570c6ea414b1f54fd  gcc/testsuite/g++.dg/torture/pr110742.C
+ 4b7c75dc51b97d5dc81c7e936ff3b460  gcc/testsuite/g++.dg/torture/pr111019.C
+ 25af1620df0107cd03f275ddc7fd98b6  gcc/testsuite/g++.dg/torture/pr111465.C
+ fd7e86518ea2a69054ff33aa0689c56b  gcc/testsuite/g++.dg/torture/pr111773.C
+ f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
  a84e9fff95df4801f8e582fbc33303b8  gcc/testsuite/g++.dg/torture/pr30252.C
  e980bf95890544d46879b89f7aa98df6  gcc/testsuite/g++.dg/torture/pr30567.C
*************** b10e8543fb804e02bf658bba9b63a306  gcc/te
*** 27473,27486 ****
  fe69eb838dd960b5ad751704e6f2554e  gcc/testsuite/g++.dg/torture/pr42462.C
  a2856923f132c423c786960d31eac266  gcc/testsuite/g++.dg/torture/pr42704.C
  6faa0f1bae4672d5d1fe30b02b392da8  gcc/testsuite/g++.dg/torture/pr42714.C
! 5ef17fa6c8e10830f6c803535061f6db  gcc/testsuite/g++.dg/torture/pr42739.C
  38594de25b9c7fc7cd3f4bf0375a8129  gcc/testsuite/g++.dg/torture/pr42760.C
  abe8cf158edc335890aef2f66a522687  gcc/testsuite/g++.dg/torture/pr42773.C
  257b8de487b284f4945c33c7fad65d8f  gcc/testsuite/g++.dg/torture/pr42871.C
  f2cb9565ab0fe2ba06d540f1b944f9db  gcc/testsuite/g++.dg/torture/pr42883.C
  7ed9e7f486e83f1d5786530f3058eef7  gcc/testsuite/g++.dg/torture/pr42890.C
  dd22df6fbe8eea710f762c4b9dc3234b  gcc/testsuite/g++.dg/torture/pr43068.C
! 22cdb103b5458bda88c23ee2de10b678  gcc/testsuite/g++.dg/torture/pr43257.C
  aa78ba484148219421767f1d48d903dd  gcc/testsuite/g++.dg/torture/pr43611.C
  a10bc7d2d87e38cc8e88038e0261fc91  gcc/testsuite/g++.dg/torture/pr43784.C
  5ced4cff38d39e92cfb56362caf09160  gcc/testsuite/g++.dg/torture/pr43801.C
--- 29406,29419 ----
  fe69eb838dd960b5ad751704e6f2554e  gcc/testsuite/g++.dg/torture/pr42462.C
  a2856923f132c423c786960d31eac266  gcc/testsuite/g++.dg/torture/pr42704.C
  6faa0f1bae4672d5d1fe30b02b392da8  gcc/testsuite/g++.dg/torture/pr42714.C
! 194ff30c54029a76585fc5770967fd3a  gcc/testsuite/g++.dg/torture/pr42739.C
  38594de25b9c7fc7cd3f4bf0375a8129  gcc/testsuite/g++.dg/torture/pr42760.C
  abe8cf158edc335890aef2f66a522687  gcc/testsuite/g++.dg/torture/pr42773.C
  257b8de487b284f4945c33c7fad65d8f  gcc/testsuite/g++.dg/torture/pr42871.C
  f2cb9565ab0fe2ba06d540f1b944f9db  gcc/testsuite/g++.dg/torture/pr42883.C
  7ed9e7f486e83f1d5786530f3058eef7  gcc/testsuite/g++.dg/torture/pr42890.C
  dd22df6fbe8eea710f762c4b9dc3234b  gcc/testsuite/g++.dg/torture/pr43068.C
! 384d31e6b941b460ccaf6bbd529aed11  gcc/testsuite/g++.dg/torture/pr43257.C
  aa78ba484148219421767f1d48d903dd  gcc/testsuite/g++.dg/torture/pr43611.C
  a10bc7d2d87e38cc8e88038e0261fc91  gcc/testsuite/g++.dg/torture/pr43784.C
  5ced4cff38d39e92cfb56362caf09160  gcc/testsuite/g++.dg/torture/pr43801.C
*************** eb06428d4535c0dc5d6540273bfdd44b  gcc/te
*** 27585,27591 ****
  dbac6bd03009706a9c22e39f20c12296  gcc/testsuite/g++.dg/torture/pr56398.C
  623e4675e1028b5a86de81a84ced39e5  gcc/testsuite/g++.dg/torture/pr56403.C
  e89f1c8379e462d6700cbd10ca024539  gcc/testsuite/g++.dg/torture/pr56635.C
! 0f5d3d683aea7fa6cbf4be3be34bf92f  gcc/testsuite/g++.dg/torture/pr56694.C
  550a5626dfedcc32df19ca836504d0f9  gcc/testsuite/g++.dg/torture/pr56768.C
  fe66aa54712cb20fed5ebb73157c6c9b  gcc/testsuite/g++.dg/torture/pr56817.C
  8a7d86131908cdb65be662a8ab125bb0  gcc/testsuite/g++.dg/torture/pr56837.C
--- 29518,29524 ----
  dbac6bd03009706a9c22e39f20c12296  gcc/testsuite/g++.dg/torture/pr56398.C
  623e4675e1028b5a86de81a84ced39e5  gcc/testsuite/g++.dg/torture/pr56403.C
  e89f1c8379e462d6700cbd10ca024539  gcc/testsuite/g++.dg/torture/pr56635.C
! 19629c27037d3f118edb4b647157d9af  gcc/testsuite/g++.dg/torture/pr56694.C
  550a5626dfedcc32df19ca836504d0f9  gcc/testsuite/g++.dg/torture/pr56768.C
  fe66aa54712cb20fed5ebb73157c6c9b  gcc/testsuite/g++.dg/torture/pr56817.C
  8a7d86131908cdb65be662a8ab125bb0  gcc/testsuite/g++.dg/torture/pr56837.C
*************** ab630470e82097e058f526be0adf3ab9  gcc/te
*** 27735,27741 ****
  c4901bbe41ce1310894b59ad5e94230b  gcc/testsuite/g++.dg/torture/pr81360.C
  2ea00b74c66f7b415383da9b9e2d1015  gcc/testsuite/g++.dg/torture/pr81365.C
  3b3a07eb1cd5bd893a2cd5e7522dd666  gcc/testsuite/g++.dg/torture/pr81462.C
! c7a7d567583231a1de08bea8433d06a5  gcc/testsuite/g++.dg/torture/pr81659.C
  48162199f246f0afced679d08e6befd4  gcc/testsuite/g++.dg/torture/pr81812.C
  8a5f9f9294cebeb70876c5b1c9ea7cfd  gcc/testsuite/g++.dg/torture/pr81877.C
  51ad14f7722c92d3074ceddad1e864f0  gcc/testsuite/g++.dg/torture/pr81884.C
--- 29668,29674 ----
  c4901bbe41ce1310894b59ad5e94230b  gcc/testsuite/g++.dg/torture/pr81360.C
  2ea00b74c66f7b415383da9b9e2d1015  gcc/testsuite/g++.dg/torture/pr81365.C
  3b3a07eb1cd5bd893a2cd5e7522dd666  gcc/testsuite/g++.dg/torture/pr81462.C
! 06c8ed447e11354d4a95ce6c21d10111  gcc/testsuite/g++.dg/torture/pr81659.C
  48162199f246f0afced679d08e6befd4  gcc/testsuite/g++.dg/torture/pr81812.C
  8a5f9f9294cebeb70876c5b1c9ea7cfd  gcc/testsuite/g++.dg/torture/pr81877.C
  51ad14f7722c92d3074ceddad1e864f0  gcc/testsuite/g++.dg/torture/pr81884.C
*************** cae456330f7461197045e0a2f5fa12ce  gcc/te
*** 27823,27829 ****
  798d1fe29ec407f8783626ddb0d01446  gcc/testsuite/g++.dg/torture/stackalign/eh-thiscall-1.C
  ac2b625997ec285af8b6598167ada1fa  gcc/testsuite/g++.dg/torture/stackalign/eh-vararg-1.C
  5e58161ad482c690ceda702d708037b4  gcc/testsuite/g++.dg/torture/stackalign/eh-vararg-2.C
! a5d95b519cd49c0af4e07fcc7096b73e  gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp
  b1433c47f1b3510e41343cb1176ab88e  gcc/testsuite/g++.dg/torture/stackalign/stdcall-1.C
  b01a92d8302c9dc593001dd53f236dcf  gcc/testsuite/g++.dg/torture/stackalign/test-unwind.h
  46c8c72894cd196236d1548df5c8b779  gcc/testsuite/g++.dg/torture/stackalign/throw-1.C
--- 29756,29762 ----
  798d1fe29ec407f8783626ddb0d01446  gcc/testsuite/g++.dg/torture/stackalign/eh-thiscall-1.C
  ac2b625997ec285af8b6598167ada1fa  gcc/testsuite/g++.dg/torture/stackalign/eh-vararg-1.C
  5e58161ad482c690ceda702d708037b4  gcc/testsuite/g++.dg/torture/stackalign/eh-vararg-2.C
! 1f76a4886fa9a8455fa38439465cc994  gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp
  b1433c47f1b3510e41343cb1176ab88e  gcc/testsuite/g++.dg/torture/stackalign/stdcall-1.C
  b01a92d8302c9dc593001dd53f236dcf  gcc/testsuite/g++.dg/torture/stackalign/test-unwind.h
  46c8c72894cd196236d1548df5c8b779  gcc/testsuite/g++.dg/torture/stackalign/throw-1.C
*************** d53f4a36bfd00298b6b687881aad6861  gcc/te
*** 27838,27845 ****
--- 29771,29783 ----
  22f292e5d79a03f64a7536467d29b689  gcc/testsuite/g++.dg/torture/stackalign/unwind-5.C
  2a4f41d0ba2571b1211bd73b3edb34d4  gcc/testsuite/g++.dg/torture/stackalign/unwind-6.C
  5afe578074ff640a77903318faea8e72  gcc/testsuite/g++.dg/torture/str_empty.C
+ 5d6ef87723de65b3037f06aebd8c3464  gcc/testsuite/g++.dg/torture/strub-init1.C
+ d934d416b21e41c4d519752f3b17dd8c  gcc/testsuite/g++.dg/torture/strub-init2.C
+ 9bfb88e7afb3028f5722f701f0052dab  gcc/testsuite/g++.dg/torture/strub-init3.C
  42e128b3145495bd2df35c3cdcc684ac  gcc/testsuite/g++.dg/torture/tail-padding1.C
  0b01f7feb325a8c1dfd3c796eab53860  gcc/testsuite/g++.dg/torture/type-generic-1.C
+ 5182a6176977a80003d5f64a5f01e78c  gcc/testsuite/g++.dg/torture/uninit-pr112766.C
+ b8295c0e8f03c64f84bf748a57947283  gcc/testsuite/g++.dg/torture/vector-struct-1.C
  164b3eb60b0c717428d0673a23922dfc  gcc/testsuite/g++.dg/torture/vshuf-16.inc
  8fd97d6fa085ab3269af65b200d61e8e  gcc/testsuite/g++.dg/torture/vshuf-2.inc
  b2babbab3621a6f7af5eb2dde02e14e8  gcc/testsuite/g++.dg/torture/vshuf-4.inc
*************** a6b6c621d64b00088b0f48ed440c6eef  gcc/te
*** 27859,27888 ****
  b6c068331ea8c597c13f4878202542bd  gcc/testsuite/g++.dg/torture/vshuf-v8qi.C
  fd3e16a63f00c852c7ac13cbaf5de3b5  gcc/testsuite/g++.dg/torture/vshuf-v8si.C
  b61be4cebf40ca9123f6df364b96b5ba  gcc/testsuite/g++.dg/tree-prof/devirt.C
! 80d09170dea54500770122f27eddf44e  gcc/testsuite/g++.dg/tree-prof/indir-call-prof-2.C
! a38e5ee6e1d042ca58387d5677d36b34  gcc/testsuite/g++.dg/tree-prof/indir-call-prof.C
  7f3dca5a6193f0f1e49c0109249d7e8f  gcc/testsuite/g++.dg/tree-prof/indir-call-recursive-inlining.C
  2d47f898b6bc4eb5afc1d14262819ed9  gcc/testsuite/g++.dg/tree-prof/inline_mismatch_args.C
  ba1e590b1e37707f808a653458061d38  gcc/testsuite/g++.dg/tree-prof/morefunc.C
! 912d73328c4d61995aa0fc60ff274036  gcc/testsuite/g++.dg/tree-prof/partition1.C
! f2275b14adf17ff6f3e0efb26fefe49b  gcc/testsuite/g++.dg/tree-prof/partition2.C
! f1c8c7969780812c78ada663781cdf94  gcc/testsuite/g++.dg/tree-prof/partition3.C
  8b1a6218138e41949b91924376f8fa41  gcc/testsuite/g++.dg/tree-prof/pr35545.C
! fb8bbe2d556b451e4da43891336e8c73  gcc/testsuite/g++.dg/tree-prof/pr51719.C
  6619c40836c140325a5ea9b8f43ee291  gcc/testsuite/g++.dg/tree-prof/pr53460.C
! a54a5070a3789fa2ec977323faa81e1d  gcc/testsuite/g++.dg/tree-prof/pr57451.C
! 70c6aef0cd7751caa0c6b7ed44aabd8b  gcc/testsuite/g++.dg/tree-prof/pr59255.C
  f3b48aeb86621caf4df1f285501e7a5e  gcc/testsuite/g++.dg/tree-prof/pr63581.C
  e5c358735afed9e9c54950b2b1516563  gcc/testsuite/g++.dg/tree-prof/pr79259.C
  3e4967b80142545b6a4d840a9e18f3b3  gcc/testsuite/g++.dg/tree-prof/reorder.C
  45ee371a772198109e5e2acb3f7c0f0b  gcc/testsuite/g++.dg/tree-prof/reorder_class1.h
  3dacd3cf3baf954cf35437e3859e7171  gcc/testsuite/g++.dg/tree-prof/reorder_class2.h
! f7c1a1a82f10b261e79fbe6fd69af77b  gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
  2a1f9c8b1ccb241e4745f1e06c56fac3  gcc/testsuite/g++.dg/tree-ssa/20040317-1.C
  7dda69fb98d47a720fec9044146ebd16  gcc/testsuite/g++.dg/tree-ssa/aggregate1.C
  9b3694af0b6195c5c10b4b0caa6af5a4  gcc/testsuite/g++.dg/tree-ssa/alias-access-path-1.C
! 0364cc382ec425485afd71c350ae6c46  gcc/testsuite/g++.dg/tree-ssa/allocator-opt1.C
! b08c03e3cfb53a5fe650ed3f65313c3a  gcc/testsuite/g++.dg/tree-ssa/array-temp1.C
  08d69e786b9ad4d3160a39a0d5e489fa  gcc/testsuite/g++.dg/tree-ssa/block1.C
  92014ea122d687546fe3649560d8b2a7  gcc/testsuite/g++.dg/tree-ssa/builtin1.C
  713d6b942f1fdfec168122607d26adf6  gcc/testsuite/g++.dg/tree-ssa/calloc.C
--- 29797,29826 ----
  b6c068331ea8c597c13f4878202542bd  gcc/testsuite/g++.dg/torture/vshuf-v8qi.C
  fd3e16a63f00c852c7ac13cbaf5de3b5  gcc/testsuite/g++.dg/torture/vshuf-v8si.C
  b61be4cebf40ca9123f6df364b96b5ba  gcc/testsuite/g++.dg/tree-prof/devirt.C
! a81edc9bf01081e718252aca8399bdb7  gcc/testsuite/g++.dg/tree-prof/indir-call-prof-2.C
! db79913aa881f831880f857f30d6dde3  gcc/testsuite/g++.dg/tree-prof/indir-call-prof.C
  7f3dca5a6193f0f1e49c0109249d7e8f  gcc/testsuite/g++.dg/tree-prof/indir-call-recursive-inlining.C
  2d47f898b6bc4eb5afc1d14262819ed9  gcc/testsuite/g++.dg/tree-prof/inline_mismatch_args.C
  ba1e590b1e37707f808a653458061d38  gcc/testsuite/g++.dg/tree-prof/morefunc.C
! 1b75d0b53d952884237359b367cab464  gcc/testsuite/g++.dg/tree-prof/partition1.C
! af2fa43fadaaa0ab335db11ff3777b4f  gcc/testsuite/g++.dg/tree-prof/partition2.C
! d6a9a88244e600744ad0a540928c9a69  gcc/testsuite/g++.dg/tree-prof/partition3.C
  8b1a6218138e41949b91924376f8fa41  gcc/testsuite/g++.dg/tree-prof/pr35545.C
! fd7ad532aa964f03e3200e1b66c1da4e  gcc/testsuite/g++.dg/tree-prof/pr51719.C
  6619c40836c140325a5ea9b8f43ee291  gcc/testsuite/g++.dg/tree-prof/pr53460.C
! 19dffb17ec610bfd82d46c3bc9fdd3a2  gcc/testsuite/g++.dg/tree-prof/pr57451.C
! 1d863d8c64becb2dc8eb4dd2b1bc2227  gcc/testsuite/g++.dg/tree-prof/pr59255.C
  f3b48aeb86621caf4df1f285501e7a5e  gcc/testsuite/g++.dg/tree-prof/pr63581.C
  e5c358735afed9e9c54950b2b1516563  gcc/testsuite/g++.dg/tree-prof/pr79259.C
  3e4967b80142545b6a4d840a9e18f3b3  gcc/testsuite/g++.dg/tree-prof/reorder.C
  45ee371a772198109e5e2acb3f7c0f0b  gcc/testsuite/g++.dg/tree-prof/reorder_class1.h
  3dacd3cf3baf954cf35437e3859e7171  gcc/testsuite/g++.dg/tree-prof/reorder_class2.h
! 7b82400f76ccd56a239cf5065f252d32  gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
  2a1f9c8b1ccb241e4745f1e06c56fac3  gcc/testsuite/g++.dg/tree-ssa/20040317-1.C
  7dda69fb98d47a720fec9044146ebd16  gcc/testsuite/g++.dg/tree-ssa/aggregate1.C
  9b3694af0b6195c5c10b4b0caa6af5a4  gcc/testsuite/g++.dg/tree-ssa/alias-access-path-1.C
! 724dacb248d037e68c27d421773545f1  gcc/testsuite/g++.dg/tree-ssa/allocator-opt1.C
! 2beabec34d757a40497771a8e2204be6  gcc/testsuite/g++.dg/tree-ssa/array-temp1.C
  08d69e786b9ad4d3160a39a0d5e489fa  gcc/testsuite/g++.dg/tree-ssa/block1.C
  92014ea122d687546fe3649560d8b2a7  gcc/testsuite/g++.dg/tree-ssa/builtin1.C
  713d6b942f1fdfec168122607d26adf6  gcc/testsuite/g++.dg/tree-ssa/calloc.C
*************** b08c03e3cfb53a5fe650ed3f65313c3a  gcc/te
*** 27892,27897 ****
--- 29830,29837 ----
  87d33077dde5db2d1e9e001bd82dc9cd  gcc/testsuite/g++.dg/tree-ssa/counts-1.C
  6c20484753d2fb5081463a83f21e1f85  gcc/testsuite/g++.dg/tree-ssa/cprop-vcond.C
  ac99be7ada2631c077352f322dd05ca0  gcc/testsuite/g++.dg/tree-ssa/deleted-label1.C
+ d3a37f7513c9a97518fe0c3bb452d2f1  gcc/testsuite/g++.dg/tree-ssa/devirt-array-destructor-1.C
+ 39adfc7544c3535174b9962a3e018f7f  gcc/testsuite/g++.dg/tree-ssa/devirt-array-destructor-2.C
  ef3a26a28db0f953ec307b6c4c4b973b  gcc/testsuite/g++.dg/tree-ssa/dom-invalid.C
  f47eaa2d8002496a7b4b7724ca81009b  gcc/testsuite/g++.dg/tree-ssa/ehcleanup-1.C
  7a59e09c4cb65bda7874f5d6af01a6f5  gcc/testsuite/g++.dg/tree-ssa/empty-1.C
*************** bca63426f4323897c7869d093f089d80  gcc/te
*** 27906,27914 ****
  9c918af3cab5a77ccdb922ddbdb9c126  gcc/testsuite/g++.dg/tree-ssa/forwprop-switch.C
  64c09190e248a41f55f2136c28fdea69  gcc/testsuite/g++.dg/tree-ssa/fwprop-align.C
  8bb6414e80e2b42a36361d40348b3534  gcc/testsuite/g++.dg/tree-ssa/if-to-switch-1.C
! 4dee88733af9764407daef44d97d6ea0  gcc/testsuite/g++.dg/tree-ssa/initlist-opt1.C
! 7f93f0a7fb5af2dd6932d9ff18f9b668  gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C
  d12a46c580eb9d4dc235d3622d0f89b4  gcc/testsuite/g++.dg/tree-ssa/initlist-opt3.C
  127599cd2fc99b9d009cc2cd103b0b2e  gcc/testsuite/g++.dg/tree-ssa/inline-1.C
  05007feb9baa282cc5097a6f8208ee56  gcc/testsuite/g++.dg/tree-ssa/inline-2.C
  dc09af43ca9827d657db7f2b91897bea  gcc/testsuite/g++.dg/tree-ssa/inline-3.C
--- 29846,29857 ----
  9c918af3cab5a77ccdb922ddbdb9c126  gcc/testsuite/g++.dg/tree-ssa/forwprop-switch.C
  64c09190e248a41f55f2136c28fdea69  gcc/testsuite/g++.dg/tree-ssa/fwprop-align.C
  8bb6414e80e2b42a36361d40348b3534  gcc/testsuite/g++.dg/tree-ssa/if-to-switch-1.C
! 9c860c59e311ec723e48287cbf69e92f  gcc/testsuite/g++.dg/tree-ssa/initlist-opt1.C
! a744d003f306505805ec4ee725fa7587  gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C
  d12a46c580eb9d4dc235d3622d0f89b4  gcc/testsuite/g++.dg/tree-ssa/initlist-opt3.C
+ 344af76d3b15e1c2e76b8f3ad2b88ab4  gcc/testsuite/g++.dg/tree-ssa/initlist-opt4.C
+ 0a86e852f7127e501b49c29fb075da42  gcc/testsuite/g++.dg/tree-ssa/initlist-opt5.C
+ e6020c0bcc63f86c01753979ab959e9c  gcc/testsuite/g++.dg/tree-ssa/initlist-opt6.C
  127599cd2fc99b9d009cc2cd103b0b2e  gcc/testsuite/g++.dg/tree-ssa/inline-1.C
  05007feb9baa282cc5097a6f8208ee56  gcc/testsuite/g++.dg/tree-ssa/inline-2.C
  dc09af43ca9827d657db7f2b91897bea  gcc/testsuite/g++.dg/tree-ssa/inline-3.C
*************** d049885f4d053577c545356b2aed7783  gcc/te
*** 27919,27924 ****
--- 29862,29868 ----
  7f7f7d6d353f34c98889acc527e3e195  gcc/testsuite/g++.dg/tree-ssa/ldist-1.C
  e48684fba8399ff995984d71ebc63e26  gcc/testsuite/g++.dg/tree-ssa/lifetime-dse1.C
  9899faa1c78631285ecad43af2fa053d  gcc/testsuite/g++.dg/tree-ssa/loop-cond-split-1.C
+ 22002bea0053b52eb32ccf47d51c83da  gcc/testsuite/g++.dg/tree-ssa/loop-split-1.C
  8a88746bf26b483b92bb27194cb12cb4  gcc/testsuite/g++.dg/tree-ssa/modref-1.C
  c60f58c35051bdf33475572fe6676ded  gcc/testsuite/g++.dg/tree-ssa/new1.C
  15ab0ba34272a9b9cb6f26af6f24d6be  gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C
*************** b43892ed3a0294f440ccfdc4017d74ed  gcc/te
*** 27940,27945 ****
--- 29884,29891 ----
  f95e009eb80810faddca573e232d899e  gcc/testsuite/g++.dg/tree-ssa/pr106936.C
  473b75bc40f72c03a042a150d43cb69b  gcc/testsuite/g++.dg/tree-ssa/pr107206.C
  5f9aef2211a5b0981f2a79d22debe366  gcc/testsuite/g++.dg/tree-ssa/pr107876.C
+ 3d105d72ca855fac7c44ae72a2b8e810  gcc/testsuite/g++.dg/tree-ssa/pr109849.C
+ 6251f80b5a27a83b79ac65cc3a6f662b  gcc/testsuite/g++.dg/tree-ssa/pr112711.C
  482a64ed60783060cd1097d55e09aa68  gcc/testsuite/g++.dg/tree-ssa/pr13146.C
  e92faf794746371f0e92e8a68244ff5e  gcc/testsuite/g++.dg/tree-ssa/pr13954.C
  316b32deb2433fa7d0e4ad1c5a62804b  gcc/testsuite/g++.dg/tree-ssa/pr14703.C
*************** f115b68cd787a27ea9c1c1050f60230c  gcc/te
*** 28109,28114 ****
--- 30055,30061 ----
  4cf4b44ab3ea1e0ad116a3e615779fc1  gcc/testsuite/g++.dg/tree-ssa/restrict2.C
  d66caabc31972e027155b7fba60994d6  gcc/testsuite/g++.dg/tree-ssa/restrict3.C
  4b409387c124f6c52a3b106d015e09fa  gcc/testsuite/g++.dg/tree-ssa/sra-1.C
+ 87104854c43fb4a94509d8c2be560247  gcc/testsuite/g++.dg/tree-ssa/sra-eh-1.C
  7e99777ba86155c2eae8cd6e9f2f9239  gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C
  bfa02bb1cdb37b00f78df34c92e226a6  gcc/testsuite/g++.dg/tree-ssa/ssa-dom.C
  9401df0e169651682e318a78fe77863d  gcc/testsuite/g++.dg/tree-ssa/ssa-dse-1.C
*************** dc3ef40ef566357c4f0d41f5f42c2bcc  gcc/te
*** 28137,28144 ****
  cd932ca55aa9252a2188bb383ac82ed7  gcc/testsuite/g++.dg/tsan/pr64265.C
  96f255f38a0cb7c1f48e01e6e96d0abf  gcc/testsuite/g++.dg/tsan/pr80110.C
  ba8b56e337f98c3bdfc0402e0dac484a  gcc/testsuite/g++.dg/tsan/pr88018.C
! f7cc5e2f9d147758fb8abe92b561f4e8  gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C
! f70c7434b41fe37f2e554262051d5d18  gcc/testsuite/g++.dg/tsan/tsan.exp
  1048d0e6a3ca80d3b4720a445847e7cb  gcc/testsuite/g++.dg/tsan/tsan_barrier.h
  4a8a525549940ddd77b19875ffb1bcc6  gcc/testsuite/g++.dg/tsan/vptr_benign_race.C
  580f9f0da39034a82858b2ac3acfb1dc  gcc/testsuite/g++.dg/tsan/vptr_harmful_race.C
--- 30084,30091 ----
  cd932ca55aa9252a2188bb383ac82ed7  gcc/testsuite/g++.dg/tsan/pr64265.C
  96f255f38a0cb7c1f48e01e6e96d0abf  gcc/testsuite/g++.dg/tsan/pr80110.C
  ba8b56e337f98c3bdfc0402e0dac484a  gcc/testsuite/g++.dg/tsan/pr88018.C
! c94bb7f244d0c463a178069456ab95ef  gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C
! eee06508377c6ba62ec60f9c504fd84f  gcc/testsuite/g++.dg/tsan/tsan.exp
  1048d0e6a3ca80d3b4720a445847e7cb  gcc/testsuite/g++.dg/tsan/tsan_barrier.h
  4a8a525549940ddd77b19875ffb1bcc6  gcc/testsuite/g++.dg/tsan/vptr_benign_race.C
  580f9f0da39034a82858b2ac3acfb1dc  gcc/testsuite/g++.dg/tsan/vptr_harmful_race.C
*************** f79c5c3fe416583c001d6aaea7674732  gcc/te
*** 28177,28183 ****
  69f588f67ecc143557f50a8f217e20fc  gcc/testsuite/g++.dg/ubsan/pr61272.C
  f9e7d9219975e0613b7d53ed55c87efe  gcc/testsuite/g++.dg/ubsan/pr63813.C
  a84e2582a036f0562ca82b54e5c2ead4  gcc/testsuite/g++.dg/ubsan/pr63913.C
! 341f6e40cbb9b1de3fd3286888e58949  gcc/testsuite/g++.dg/ubsan/pr63956.C
  905e96bca11e38275e3c78595acfb8bc  gcc/testsuite/g++.dg/ubsan/pr64632.C
  ce25b7039c57de8705414023fc9b982c  gcc/testsuite/g++.dg/ubsan/pr64717-1.C
  831fc21e28710642f430322c48eabad9  gcc/testsuite/g++.dg/ubsan/pr64717-2.C
--- 30124,30130 ----
  69f588f67ecc143557f50a8f217e20fc  gcc/testsuite/g++.dg/ubsan/pr61272.C
  f9e7d9219975e0613b7d53ed55c87efe  gcc/testsuite/g++.dg/ubsan/pr63813.C
  a84e2582a036f0562ca82b54e5c2ead4  gcc/testsuite/g++.dg/ubsan/pr63913.C
! c0d7412ee5785e88307a89ffd90e53be  gcc/testsuite/g++.dg/ubsan/pr63956.C
  905e96bca11e38275e3c78595acfb8bc  gcc/testsuite/g++.dg/ubsan/pr64632.C
  ce25b7039c57de8705414023fc9b982c  gcc/testsuite/g++.dg/ubsan/pr64717-1.C
  831fc21e28710642f430322c48eabad9  gcc/testsuite/g++.dg/ubsan/pr64717-2.C
*************** ceefdce8629af65f842f11d82ad86264  gcc/te
*** 28245,28251 ****
  a512113af0ac3172f2466ee3a8c93259  gcc/testsuite/g++.dg/ubsan/static-init-1.C
  b1a38b150fef25f02239b481561ad148  gcc/testsuite/g++.dg/ubsan/static-init-2.C
  76c5d965e0f0683fddef3a001be6193c  gcc/testsuite/g++.dg/ubsan/static-init-3.C
! b5e70fbc56e8fb94243bcaa9527c939e  gcc/testsuite/g++.dg/ubsan/ubsan.exp
  cc0dd6c9b1afc04ca7636be396fec990  gcc/testsuite/g++.dg/ubsan/vla-1.C
  f36d3df10de7d616fdeaf6bd08060535  gcc/testsuite/g++.dg/ubsan/vla-2.C
  5217088a7dd4248f6e9f0170ee0f262b  gcc/testsuite/g++.dg/ubsan/vptr-1.C
--- 30192,30198 ----
  a512113af0ac3172f2466ee3a8c93259  gcc/testsuite/g++.dg/ubsan/static-init-1.C
  b1a38b150fef25f02239b481561ad148  gcc/testsuite/g++.dg/ubsan/static-init-2.C
  76c5d965e0f0683fddef3a001be6193c  gcc/testsuite/g++.dg/ubsan/static-init-3.C
! a6ef945ff3afb135bba3fbb8243b3822  gcc/testsuite/g++.dg/ubsan/ubsan.exp
  cc0dd6c9b1afc04ca7636be396fec990  gcc/testsuite/g++.dg/ubsan/vla-1.C
  f36d3df10de7d616fdeaf6bd08060535  gcc/testsuite/g++.dg/ubsan/vla-2.C
  5217088a7dd4248f6e9f0170ee0f262b  gcc/testsuite/g++.dg/ubsan/vptr-1.C
*************** e7062d8b8ae34f0a4f8b5b407e180316  gcc/te
*** 28280,28286 ****
  d403029994bed5e01d1267a0905e9d3c  gcc/testsuite/g++.dg/uninit-pred-5.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop-1_a.C
  9a63e9b5506271a4e3d1932baef3c60c  gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C
! 03f4073fa87ba95286c70ed7ad57b553  gcc/testsuite/g++.dg/uninit-pred-loop-1_c.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop_1.C
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
  ec1873d6dd21d2c7cc0b6215931efed0  gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc
--- 30227,30233 ----
  d403029994bed5e01d1267a0905e9d3c  gcc/testsuite/g++.dg/uninit-pred-5.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop-1_a.C
  9a63e9b5506271a4e3d1932baef3c60c  gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C
! f3b08920b6f4d781731cb5137313588c  gcc/testsuite/g++.dg/uninit-pred-loop-1_c.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop_1.C
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
  ec1873d6dd21d2c7cc0b6215931efed0  gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc
*************** bb3b906322f73b1bfddaab3658a0314e  gcc/te
*** 28288,28294 ****
  091450be1a744e77a7f8e0ccd877203d  gcc/testsuite/g++.dg/vect/pr102421.cc
  2f4df2b1afc45455438253ceb176020a  gcc/testsuite/g++.dg/vect/pr102572.cc
  5297a137025a3614c26b3000c88e12ab  gcc/testsuite/g++.dg/vect/pr102696.cc
! 276b94843e74f8cadd0fe569be60befb  gcc/testsuite/g++.dg/vect/pr102788.cc
  31e8975bb6e0a9a4f2dbd4cf496dbc6b  gcc/testsuite/g++.dg/vect/pr103494.cc
  5cc7bcb3384dda5ac9ed1595171888bf  gcc/testsuite/g++.dg/vect/pr105053.cc
  333be91f77cee11284aa46108024ad5e  gcc/testsuite/g++.dg/vect/pr105254.cc
--- 30235,30241 ----
  091450be1a744e77a7f8e0ccd877203d  gcc/testsuite/g++.dg/vect/pr102421.cc
  2f4df2b1afc45455438253ceb176020a  gcc/testsuite/g++.dg/vect/pr102572.cc
  5297a137025a3614c26b3000c88e12ab  gcc/testsuite/g++.dg/vect/pr102696.cc
! 3b8bafeb14080227c305e21d48736908  gcc/testsuite/g++.dg/vect/pr102788.cc
  31e8975bb6e0a9a4f2dbd4cf496dbc6b  gcc/testsuite/g++.dg/vect/pr103494.cc
  5cc7bcb3384dda5ac9ed1595171888bf  gcc/testsuite/g++.dg/vect/pr105053.cc
  333be91f77cee11284aa46108024ad5e  gcc/testsuite/g++.dg/vect/pr105254.cc
*************** bb3b906322f73b1bfddaab3658a0314e  gcc/te
*** 28298,28303 ****
--- 30245,30253 ----
  68c0b9dd93bac5121c5b637904764ca8  gcc/testsuite/g++.dg/vect/pr107766.cc
  c378ba928bee729112b705d875e7738f  gcc/testsuite/g++.dg/vect/pr109573.cc
  141b03fd1e88cf3f158c145d30e5418b  gcc/testsuite/g++.dg/vect/pr110557.cc
+ a774f9ba94df372c6d30a93f182668b8  gcc/testsuite/g++.dg/vect/pr112793.cc
+ 917d9d7e1f7b3dec4bc3be8a0e121df9  gcc/testsuite/g++.dg/vect/pr112961.cc
+ 856046a2a1b7cbd5bfc1768e434b4a1d  gcc/testsuite/g++.dg/vect/pr114464.cc
  02ab0e7dea4c30ddeaecb971c0b8241e  gcc/testsuite/g++.dg/vect/pr19951.cc
  e7c5a636a280962b70166d1494223f9c  gcc/testsuite/g++.dg/vect/pr21218.cc
  9a0a6f56bdb2cc697abc78c901418a19  gcc/testsuite/g++.dg/vect/pr21734_1.cc
*************** b9654cf3094250bbfcbf3eb545179ab8  gcc/te
*** 28312,28318 ****
  2f3816d0e6487939ea2be2cc9c3d9ce7  gcc/testsuite/g++.dg/vect/pr33835.cc
  2e2b8dd8b937805b7fd60158c01a2598  gcc/testsuite/g++.dg/vect/pr33860.cc
  f7e00c99dfe5247d1f4e09d61bbe7662  gcc/testsuite/g++.dg/vect/pr33860a.cc
! 3aa15e1fb7d0cf09721a476adcbe7cf3  gcc/testsuite/g++.dg/vect/pr36648.cc
  773b9686259a86422856a8bcf252cee5  gcc/testsuite/g++.dg/vect/pr37143.C
  df0a8be418558aea938e13b5f6a34f0f  gcc/testsuite/g++.dg/vect/pr37174.cc
  89b57c9cc24aec3cfe0e8765cda781bf  gcc/testsuite/g++.dg/vect/pr43771.cc
--- 30262,30268 ----
  2f3816d0e6487939ea2be2cc9c3d9ce7  gcc/testsuite/g++.dg/vect/pr33835.cc
  2e2b8dd8b937805b7fd60158c01a2598  gcc/testsuite/g++.dg/vect/pr33860.cc
  f7e00c99dfe5247d1f4e09d61bbe7662  gcc/testsuite/g++.dg/vect/pr33860a.cc
! 6527716303c478d80f2e0f2615cd227f  gcc/testsuite/g++.dg/vect/pr36648.cc
  773b9686259a86422856a8bcf252cee5  gcc/testsuite/g++.dg/vect/pr37143.C
  df0a8be418558aea938e13b5f6a34f0f  gcc/testsuite/g++.dg/vect/pr37174.cc
  89b57c9cc24aec3cfe0e8765cda781bf  gcc/testsuite/g++.dg/vect/pr43771.cc
*************** e13bcab5554300f88fc649bd78d61877  gcc/te
*** 28340,28346 ****
  dc35acb0f3b80c07fb4789cb89eb09b2  gcc/testsuite/g++.dg/vect/pr70944.cc
  0258e5eedd1d313ba5369d22c0225708  gcc/testsuite/g++.dg/vect/pr71483.cc
  6fd4436b3a842028430df081b867cc96  gcc/testsuite/g++.dg/vect/pr84362.cc
! 57ec4c770d54501152de549d1dd29844  gcc/testsuite/g++.dg/vect/pr84556.cc
  179d2cf91ba3eb321a9c8dc0e19457fc  gcc/testsuite/g++.dg/vect/pr87621.cc
  6f2e63784179305f0c880851e4919fe0  gcc/testsuite/g++.dg/vect/pr87914.cc
  404f245256bcbfa4c6c43189ad964b2a  gcc/testsuite/g++.dg/vect/pr89653.cc
--- 30290,30296 ----
  dc35acb0f3b80c07fb4789cb89eb09b2  gcc/testsuite/g++.dg/vect/pr70944.cc
  0258e5eedd1d313ba5369d22c0225708  gcc/testsuite/g++.dg/vect/pr71483.cc
  6fd4436b3a842028430df081b867cc96  gcc/testsuite/g++.dg/vect/pr84362.cc
! ebb58e0381694c0c214da29d423ba8a9  gcc/testsuite/g++.dg/vect/pr84556.cc
  179d2cf91ba3eb321a9c8dc0e19457fc  gcc/testsuite/g++.dg/vect/pr87621.cc
  6f2e63784179305f0c880851e4919fe0  gcc/testsuite/g++.dg/vect/pr87914.cc
  404f245256bcbfa4c6c43189ad964b2a  gcc/testsuite/g++.dg/vect/pr89653.cc
*************** c0a7423fe6c8b91501b54c66ebfe3c32  gcc/te
*** 28358,28375 ****
  ad03cf9b82f9825b989c4dbfdd8a2d38  gcc/testsuite/g++.dg/vect/pr98064.cc
  b4c03b87b1332ccdfc7fb8407f7a526f  gcc/testsuite/g++.dg/vect/pr99149.cc
  b9b7aeb622b8ca037050c102cf2f4775  gcc/testsuite/g++.dg/vect/pr99220.cc
! fc32d36182f79190004abe52c516089e  gcc/testsuite/g++.dg/vect/simd-1.cc
  c0baf08fc01514d3f4fca19bf3fc9596  gcc/testsuite/g++.dg/vect/simd-10.cc
  e22e62780a55903eaa4dea16c509b7dd  gcc/testsuite/g++.dg/vect/simd-11.cc
  412158f8b3df0970a3e6497d52fd7d96  gcc/testsuite/g++.dg/vect/simd-12.cc
! a5d6231f7567ef96e7131ef4ea370a2a  gcc/testsuite/g++.dg/vect/simd-2.cc
! 71351a654774962f7607bd6e837a0198  gcc/testsuite/g++.dg/vect/simd-3.cc
! f8b252fe5073b3930ea717bc88d9ee44  gcc/testsuite/g++.dg/vect/simd-4.cc
! 923e4fba055c3cc71aaff1876ea3baf9  gcc/testsuite/g++.dg/vect/simd-5.cc
! 83f22deaaebdbb96ab44c6ac5f0a649b  gcc/testsuite/g++.dg/vect/simd-6.cc
! 2eb8809cc066a2c54d74c6482552f5f4  gcc/testsuite/g++.dg/vect/simd-7.cc
! 4dd97dd454fd77c364ba563eca02af9a  gcc/testsuite/g++.dg/vect/simd-8.cc
! 4981b5fa451f00ed2e0b434749b78914  gcc/testsuite/g++.dg/vect/simd-9.cc
  bf5c8ee938eb29d9c5f2aad606d6074e  gcc/testsuite/g++.dg/vect/simd-bool-comparison-1.cc
  b83eac59b493f9c580ee676cf4be54bc  gcc/testsuite/g++.dg/vect/simd-bool-comparison-2.cc
  60c78be6738c5a1041dce7fc1657bcf0  gcc/testsuite/g++.dg/vect/simd-clone-1.cc
--- 30308,30325 ----
  ad03cf9b82f9825b989c4dbfdd8a2d38  gcc/testsuite/g++.dg/vect/pr98064.cc
  b4c03b87b1332ccdfc7fb8407f7a526f  gcc/testsuite/g++.dg/vect/pr99149.cc
  b9b7aeb622b8ca037050c102cf2f4775  gcc/testsuite/g++.dg/vect/pr99220.cc
! 0f9e1f0ff7dffdb0ba77afdd4f90731f  gcc/testsuite/g++.dg/vect/simd-1.cc
  c0baf08fc01514d3f4fca19bf3fc9596  gcc/testsuite/g++.dg/vect/simd-10.cc
  e22e62780a55903eaa4dea16c509b7dd  gcc/testsuite/g++.dg/vect/simd-11.cc
  412158f8b3df0970a3e6497d52fd7d96  gcc/testsuite/g++.dg/vect/simd-12.cc
! e92a042e93bc415cd8efa5575c6b6e20  gcc/testsuite/g++.dg/vect/simd-2.cc
! c009905d4c141599fbcfa2eb1f754b56  gcc/testsuite/g++.dg/vect/simd-3.cc
! 4b7c2f21b05df44c88a6be24fb32e83b  gcc/testsuite/g++.dg/vect/simd-4.cc
! 813b804bdf3249eb8513b18fa14457c9  gcc/testsuite/g++.dg/vect/simd-5.cc
! 2f889ebd839cc330b765bcf337c3ae43  gcc/testsuite/g++.dg/vect/simd-6.cc
! a56798bfe9d54483aaa94c945114a7b4  gcc/testsuite/g++.dg/vect/simd-7.cc
! 2f4d85b03ca83ae0c0c69cf148b830e4  gcc/testsuite/g++.dg/vect/simd-8.cc
! a93400bd062513ea4fcea24cff06c616  gcc/testsuite/g++.dg/vect/simd-9.cc
  bf5c8ee938eb29d9c5f2aad606d6074e  gcc/testsuite/g++.dg/vect/simd-bool-comparison-1.cc
  b83eac59b493f9c580ee676cf4be54bc  gcc/testsuite/g++.dg/vect/simd-bool-comparison-2.cc
  60c78be6738c5a1041dce7fc1657bcf0  gcc/testsuite/g++.dg/vect/simd-clone-1.cc
*************** af7f6d5e825e23ddb64f4928bc24e570  gcc/te
*** 28379,28398 ****
  98d320060b90cb4d7efb2ca7dd9ca6a7  gcc/testsuite/g++.dg/vect/simd-clone-4.cc
  4147d578711be9e486c8907900862fdd  gcc/testsuite/g++.dg/vect/simd-clone-4.h
  c3079a303a422fbdcc1f72b0e2a98a47  gcc/testsuite/g++.dg/vect/simd-clone-5.cc
! b8fb5b23ece050421d669915c600780b  gcc/testsuite/g++.dg/vect/simd-clone-6.cc
  781254f2b1a514c9ba0f4e29b2e8d1a3  gcc/testsuite/g++.dg/vect/simd-clone-7.cc
  76efe246291fd426ffddd2ad9aba280b  gcc/testsuite/g++.dg/vect/simd-complex-num-null-node.cc
  3bc95c24ca829b61efcb7f80670d3ab5  gcc/testsuite/g++.dg/vect/simd-mask-store-bool.cc
  470e82597279413bc82b08b1c7f1a530  gcc/testsuite/g++.dg/vect/slp-pr50413.cc
  11df4aee7aba1f03c88e69e2642c282a  gcc/testsuite/g++.dg/vect/slp-pr50819.cc
  65d174ec4c50c0d41899b909f7c4c318  gcc/testsuite/g++.dg/vect/slp-pr56812.cc
! 1d058dbf5c45144767f1dcf45b0e4501  gcc/testsuite/g++.dg/vect/slp-pr87105.cc
  0b813e60a26de881560d29211902ec5c  gcc/testsuite/g++.dg/vect/slp-pr92516.cc
  575eb20a7046f483778f87a8b184d092  gcc/testsuite/g++.dg/vect/slp-pr97636.cc
  06bbcfadea2fee02b417d4dadcb3d241  gcc/testsuite/g++.dg/vect/slp-pr98855.cc
  cd8c6e5cf62f7909f63f4516114ba39c  gcc/testsuite/g++.dg/vect/slp-pr99971.cc
  474ba1e8afc259a33d5d37ef2c18cf22  gcc/testsuite/g++.dg/vect/vec-cond-expr-eh.C
! d6bf7448ccc43f801c548ce33e85d5af  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
  daeef1989c46da48d17102900d28c0c7  gcc/testsuite/g++.dg/warn/Waddress-1.C
  76f33c61a70fa23046bdab31539d3229  gcc/testsuite/g++.dg/warn/Waddress-2.C
--- 30329,30354 ----
  98d320060b90cb4d7efb2ca7dd9ca6a7  gcc/testsuite/g++.dg/vect/simd-clone-4.cc
  4147d578711be9e486c8907900862fdd  gcc/testsuite/g++.dg/vect/simd-clone-4.h
  c3079a303a422fbdcc1f72b0e2a98a47  gcc/testsuite/g++.dg/vect/simd-clone-5.cc
! e0f6d3736914a93338f16db9c5870cd0  gcc/testsuite/g++.dg/vect/simd-clone-6.cc
  781254f2b1a514c9ba0f4e29b2e8d1a3  gcc/testsuite/g++.dg/vect/simd-clone-7.cc
  76efe246291fd426ffddd2ad9aba280b  gcc/testsuite/g++.dg/vect/simd-complex-num-null-node.cc
  3bc95c24ca829b61efcb7f80670d3ab5  gcc/testsuite/g++.dg/vect/simd-mask-store-bool.cc
  470e82597279413bc82b08b1c7f1a530  gcc/testsuite/g++.dg/vect/slp-pr50413.cc
  11df4aee7aba1f03c88e69e2642c282a  gcc/testsuite/g++.dg/vect/slp-pr50819.cc
  65d174ec4c50c0d41899b909f7c4c318  gcc/testsuite/g++.dg/vect/slp-pr56812.cc
! b1384b6e904e48f36da95b938168ecf1  gcc/testsuite/g++.dg/vect/slp-pr87105.cc
  0b813e60a26de881560d29211902ec5c  gcc/testsuite/g++.dg/vect/slp-pr92516.cc
  575eb20a7046f483778f87a8b184d092  gcc/testsuite/g++.dg/vect/slp-pr97636.cc
  06bbcfadea2fee02b417d4dadcb3d241  gcc/testsuite/g++.dg/vect/slp-pr98855.cc
  cd8c6e5cf62f7909f63f4516114ba39c  gcc/testsuite/g++.dg/vect/slp-pr99971.cc
  474ba1e8afc259a33d5d37ef2c18cf22  gcc/testsuite/g++.dg/vect/vec-cond-expr-eh.C
! d5f45690807f08a2a0090e727170476f  gcc/testsuite/g++.dg/vect/vect-early-break_1.cc
! 3b8018e956215e12fd3e4b987dc6434c  gcc/testsuite/g++.dg/vect/vect-early-break_2.cc
! c344792dcd15e12c998f5c8a2cf536b7  gcc/testsuite/g++.dg/vect/vect-early-break_3.cc
! 4abd314e372c2d0fa4867f80fd7c0686  gcc/testsuite/g++.dg/vect/vect-early-break_4-pr113137.cc
! bb04402a5286da0c2b2bd970e15a7c0a  gcc/testsuite/g++.dg/vect/vect-early-break_5-pr113137.cc
! b6caf6f101001c6910cc31f5b3060f43  gcc/testsuite/g++.dg/vect/vect-novector-pragma.cc
! ec9e8967aa427e1f1135e2213c4f06d7  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
  daeef1989c46da48d17102900d28c0c7  gcc/testsuite/g++.dg/warn/Waddress-1.C
  76f33c61a70fa23046bdab31539d3229  gcc/testsuite/g++.dg/warn/Waddress-2.C
*************** fcac9b73ac8cbfd48e4e11bb0babbb2f  gcc/te
*** 28404,28412 ****
  c18412e7f733b11c25c87e0fa6292752  gcc/testsuite/g++.dg/warn/Waddress-8.C
  11a1b78f09fa3436ab74ae129fb291f6  gcc/testsuite/g++.dg/warn/Waddress-9.C
  f70b05c7c6da2eb1e388cdb09831d355  gcc/testsuite/g++.dg/warn/Waddress-of-packed-member1.C
! 7e2363ecaf57d636dba9be32a29d05fa  gcc/testsuite/g++.dg/warn/Waddress-of-packed-member2.C
! fcffb8ec200cbeecab3b66fcd62fca53  gcc/testsuite/g++.dg/warn/Waddress-of-packed-member3.C
  38c1d3bcd70aac8e2e1f0e19b075e6a9  gcc/testsuite/g++.dg/warn/Wall-write-strings.C
  37d0be0d56d9e0aa2b1a4c10c166ffd2  gcc/testsuite/g++.dg/warn/Walways-true-1.C
  2bb8416db71e09d2c32b48ff9fe3eb8c  gcc/testsuite/g++.dg/warn/Walways-true-2.C
  85946d6c4d80b74fc3bf7351777c73a0  gcc/testsuite/g++.dg/warn/Walways-true-3.C
--- 30360,30369 ----
  c18412e7f733b11c25c87e0fa6292752  gcc/testsuite/g++.dg/warn/Waddress-8.C
  11a1b78f09fa3436ab74ae129fb291f6  gcc/testsuite/g++.dg/warn/Waddress-9.C
  f70b05c7c6da2eb1e388cdb09831d355  gcc/testsuite/g++.dg/warn/Waddress-of-packed-member1.C
! b37eaeae1ab790db59cea892993e3e16  gcc/testsuite/g++.dg/warn/Waddress-of-packed-member2.C
! d134ce6bbd6942500dee155278c6d0c1  gcc/testsuite/g++.dg/warn/Waddress-of-packed-member3.C
  38c1d3bcd70aac8e2e1f0e19b075e6a9  gcc/testsuite/g++.dg/warn/Wall-write-strings.C
+ 3b54d4a94fa807d67bda9257eaa9770e  gcc/testsuite/g++.dg/warn/Walloc-size-1.C
  37d0be0d56d9e0aa2b1a4c10c166ffd2  gcc/testsuite/g++.dg/warn/Walways-true-1.C
  2bb8416db71e09d2c32b48ff9fe3eb8c  gcc/testsuite/g++.dg/warn/Walways-true-2.C
  85946d6c4d80b74fc3bf7351777c73a0  gcc/testsuite/g++.dg/warn/Walways-true-3.C
*************** d489a76c7b7ab5b0e165f2342a4e6974  gcc/te
*** 28445,28456 ****
  76fb8518d0b0d88c1bd0f1b96f745523  gcc/testsuite/g++.dg/warn/Wbraces3.C
  5f1dff614fdd00e273620130a4604d9c  gcc/testsuite/g++.dg/warn/Wbraces4.C
  7c5df12c3160a89ece4ab294a8e60b2d  gcc/testsuite/g++.dg/warn/Wbuiltin_declaration_mismatch-1.C
  88d439e489c689dfe6e295e9bd50ad37  gcc/testsuite/g++.dg/warn/Wcast-qual1.C
  6725fd4da181f6389622fbefd45093cc  gcc/testsuite/g++.dg/warn/Wcast-qual2.C
! d913b0768acd97402a4dd3588f8eba24  gcc/testsuite/g++.dg/warn/Wcatch-value-1.C
! ab0b32ec262616e43759509717b070a6  gcc/testsuite/g++.dg/warn/Wcatch-value-2.C
! c300657506ff882e939dff0902a64156  gcc/testsuite/g++.dg/warn/Wcatch-value-3.C
! de350f8669da541a42c4fafbdf75ef3f  gcc/testsuite/g++.dg/warn/Wcatch-value-3b.C
  d15107f3d840c1f7539a3dc2f640a5df  gcc/testsuite/g++.dg/warn/Wchar-subscripts-2.C
  405a43ec2fe3003f95668d54092d08b1  gcc/testsuite/g++.dg/warn/Wchar-subscripts.C
  f9f3693c109e335911bc80e8396e0c60  gcc/testsuite/g++.dg/warn/Wclass-conversion1.C
--- 30402,30414 ----
  76fb8518d0b0d88c1bd0f1b96f745523  gcc/testsuite/g++.dg/warn/Wbraces3.C
  5f1dff614fdd00e273620130a4604d9c  gcc/testsuite/g++.dg/warn/Wbraces4.C
  7c5df12c3160a89ece4ab294a8e60b2d  gcc/testsuite/g++.dg/warn/Wbuiltin_declaration_mismatch-1.C
+ a1d4ad76c5049be28d9c2cdf57ee7d53  gcc/testsuite/g++.dg/warn/Wcalloc-transposed-args-1.C
  88d439e489c689dfe6e295e9bd50ad37  gcc/testsuite/g++.dg/warn/Wcast-qual1.C
  6725fd4da181f6389622fbefd45093cc  gcc/testsuite/g++.dg/warn/Wcast-qual2.C
! 923e4af89ed223c67feb463007f2cc50  gcc/testsuite/g++.dg/warn/Wcatch-value-1.C
! d125dcff75d70531d691a1427385bbbd  gcc/testsuite/g++.dg/warn/Wcatch-value-2.C
! 15836ca71acb97e8dad985cf45028b3c  gcc/testsuite/g++.dg/warn/Wcatch-value-3.C
! 1ed4abb566dcf7952084b2fa84af4fde  gcc/testsuite/g++.dg/warn/Wcatch-value-3b.C
  d15107f3d840c1f7539a3dc2f640a5df  gcc/testsuite/g++.dg/warn/Wchar-subscripts-2.C
  405a43ec2fe3003f95668d54092d08b1  gcc/testsuite/g++.dg/warn/Wchar-subscripts.C
  f9f3693c109e335911bc80e8396e0c60  gcc/testsuite/g++.dg/warn/Wclass-conversion1.C
*************** a5c82e451d68d995d7f3bdc2c840dc43  gcc/te
*** 28499,28505 ****
--- 30457,30471 ----
  bf07c61e5674247801eb597fb9faca8a  gcc/testsuite/g++.dg/warn/Wdangling-reference11.C
  1845787c3d3902f727e3dad43e0fb5ac  gcc/testsuite/g++.dg/warn/Wdangling-reference12.C
  2d915975d6fb252477607edc21231585  gcc/testsuite/g++.dg/warn/Wdangling-reference13.C
+ 703f4ef8f00f6e7d4dd8e257078988f4  gcc/testsuite/g++.dg/warn/Wdangling-reference14.C
+ b9c9d077eb5f22e37263ac134625dc1a  gcc/testsuite/g++.dg/warn/Wdangling-reference15.C
+ f88847e6c95fe68014b2950977544e30  gcc/testsuite/g++.dg/warn/Wdangling-reference16.C
+ afd02579968786266ff487da5d7bd388  gcc/testsuite/g++.dg/warn/Wdangling-reference17.C
+ 3af7a9c77bf18269ddd4a6662307f44f  gcc/testsuite/g++.dg/warn/Wdangling-reference18.C
+ 17760a9bed0f01282702f8f29c915938  gcc/testsuite/g++.dg/warn/Wdangling-reference19.C
  340821be1cf2e197db157ef7a58a35ba  gcc/testsuite/g++.dg/warn/Wdangling-reference2.C
+ 27575f70885dc6eb0f272b98527a9e6d  gcc/testsuite/g++.dg/warn/Wdangling-reference20.C
+ 2123d1e51e28665fb322c984a15dd48c  gcc/testsuite/g++.dg/warn/Wdangling-reference21.C
  a66ef981e5fcee8dcf90b28fd2b221d9  gcc/testsuite/g++.dg/warn/Wdangling-reference3.C
  4515bab7ba1ef52bd87e0ce661302dfd  gcc/testsuite/g++.dg/warn/Wdangling-reference4.C
  b1f9e5d8557cc56fdb7bd124ce3a6809  gcc/testsuite/g++.dg/warn/Wdangling-reference5.C
*************** ed018a65c775f03c142661adae76c9d5  gcc/te
*** 28533,28541 ****
  8b9cbae2542d0ee1294a9aba56467023  gcc/testsuite/g++.dg/warn/Wenum-compare-no-2.C
  0159dc16051c0a3deaba6db2eeae85f8  gcc/testsuite/g++.dg/warn/Wenum-compare-no.C
  b141ada1b2936d65fc9a46fee390d652  gcc/testsuite/g++.dg/warn/Wenum-compare.C
! 59f0fa30a449850f341e25908ccec7be  gcc/testsuite/g++.dg/warn/Wexceptions1.C
  b23ca232425f1d48e75c85c218d0b204  gcc/testsuite/g++.dg/warn/Wexceptions2.C
! 03631075795ca8fb59d7010e5057c378  gcc/testsuite/g++.dg/warn/Wexceptions3.C
  d267dddcbfdc3e1208a643c82d1c0886  gcc/testsuite/g++.dg/warn/Wextra-1.C
  fd872aba23fcbd09e4b5cb3b61dbaadf  gcc/testsuite/g++.dg/warn/Wextra-2.C
  9b40c378598236ac6aefbcde251bcffa  gcc/testsuite/g++.dg/warn/Wextra-3.C
--- 30499,30507 ----
  8b9cbae2542d0ee1294a9aba56467023  gcc/testsuite/g++.dg/warn/Wenum-compare-no-2.C
  0159dc16051c0a3deaba6db2eeae85f8  gcc/testsuite/g++.dg/warn/Wenum-compare-no.C
  b141ada1b2936d65fc9a46fee390d652  gcc/testsuite/g++.dg/warn/Wenum-compare.C
! 108fbccb74b06c2fb257f40bb3126c43  gcc/testsuite/g++.dg/warn/Wexceptions1.C
  b23ca232425f1d48e75c85c218d0b204  gcc/testsuite/g++.dg/warn/Wexceptions2.C
! 4c8ac7c4d12afc670f468e7d99c97069  gcc/testsuite/g++.dg/warn/Wexceptions3.C
  d267dddcbfdc3e1208a643c82d1c0886  gcc/testsuite/g++.dg/warn/Wextra-1.C
  fd872aba23fcbd09e4b5cb3b61dbaadf  gcc/testsuite/g++.dg/warn/Wextra-2.C
  9b40c378598236ac6aefbcde251bcffa  gcc/testsuite/g++.dg/warn/Wextra-3.C
*************** c051125966f7b3d00fdd612ba7549043  gcc/te
*** 28555,28561 ****
  f25961c7b179af7200015aeb505d51e6  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-5.C
  7f075bbcdd22ad2928b9576d6849509e  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-6.C
  22bd17b03f712caef0bc32ea1942421d  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object.C
- d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/g++.dg/warn/Wfree-nonheap-object.s
  caf05a8324926e9472342da0584539ad  gcc/testsuite/g++.dg/warn/Wignored-attributes-1.C
  55295c0bc11e5dffe89757d080280054  gcc/testsuite/g++.dg/warn/Wignored-attributes-2.C
  a5142c9cd89ebb3502a6adbdb75fa29c  gcc/testsuite/g++.dg/warn/Wignored-qualifiers1.C
--- 30521,30526 ----
*************** d7994bdf14d7e911b1d67ed7456f38a5  gcc/te
*** 28570,28576 ****
  c793e11db22751c42cd4efac4c6e4868  gcc/testsuite/g++.dg/warn/Winaccessible-virtual-base-1.C
  8c47c333e57d7a38cfb57df230de1587  gcc/testsuite/g++.dg/warn/Winaccessible-virtual-base-2.C
  6d4eabf8c48734aef917404fba069c7d  gcc/testsuite/g++.dg/warn/Winfinite-recursion-2.C
! 3e991b331e0b779715505589aa391a40  gcc/testsuite/g++.dg/warn/Winfinite-recursion-3.C
  093f8d1925846a0ba582bf88a36d4b02  gcc/testsuite/g++.dg/warn/Winfinite-recursion.C
  34ef776f2e6de10953d2565fdd08a426  gcc/testsuite/g++.dg/warn/Winit-list1.C
  59963a59cab2e70536733c20bef445b9  gcc/testsuite/g++.dg/warn/Winit-list2.C
--- 30535,30541 ----
  c793e11db22751c42cd4efac4c6e4868  gcc/testsuite/g++.dg/warn/Winaccessible-virtual-base-1.C
  8c47c333e57d7a38cfb57df230de1587  gcc/testsuite/g++.dg/warn/Winaccessible-virtual-base-2.C
  6d4eabf8c48734aef917404fba069c7d  gcc/testsuite/g++.dg/warn/Winfinite-recursion-2.C
! 7ab179c265dd2e6b51ad43a46c15f098  gcc/testsuite/g++.dg/warn/Winfinite-recursion-3.C
  093f8d1925846a0ba582bf88a36d4b02  gcc/testsuite/g++.dg/warn/Winfinite-recursion.C
  34ef776f2e6de10953d2565fdd08a426  gcc/testsuite/g++.dg/warn/Winit-list1.C
  59963a59cab2e70536733c20bef445b9  gcc/testsuite/g++.dg/warn/Winit-list2.C
*************** da3dbc8526151b41f4a741a5d5e51eae  gcc/te
*** 28606,28611 ****
--- 30571,30577 ----
  f53b1f90733acd430c8cdf6142c6d0ae  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-5.C
  8afe47a7579150c18e697be841db6df5  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-6.C
  c6df77cbbce60aad70c6bc987ecd4bd2  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-7.C
+ 42429ebb9efa51a442c7b9c8a566923a  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-8.C
  3089b7e4a074a4993652acd742390397  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete.C
  7729ea0086a47fb6cab7bd9640283fcd  gcc/testsuite/g++.dg/warn/Wmismatched-tags-10.C
  67285d97432f227bc5e4c7e66666868f  gcc/testsuite/g++.dg/warn/Wmismatched-tags-11.C
*************** dd271ecca0fa5146b807a1a4a7593846  gcc/te
*** 28621,28627 ****
--- 30587,30595 ----
  d3017d025f43f9093bf016847e418a34  gcc/testsuite/g++.dg/warn/Wmissing-declarations-1.C
  050c0fd9eb9dcd48940d99ba2041761b  gcc/testsuite/g++.dg/warn/Wmissing-field-initializers-1.C
  4e9d814761a91eb81f95a59e1186b932  gcc/testsuite/g++.dg/warn/Wmissing-field-initializers-2.C
+ fe0b1389c16833bcff81c329b45bc027  gcc/testsuite/g++.dg/warn/Wmissing-field-initializers-3.C
  df77bef9a13ed28df97e854b2336076a  gcc/testsuite/g++.dg/warn/Wmultistatement-macros-1.C
+ c70f598a83c875afdb2013de4797fd86  gcc/testsuite/g++.dg/warn/Wno-attributes-1.C
  13048d07bf8630f21562df0b77b67343  gcc/testsuite/g++.dg/warn/Wno-div-by-zero.C
  7c3ea8d27e4d862f83fc6998269f6f42  gcc/testsuite/g++.dg/warn/Wno-narrowing1.C
  d024a70ad0eccd6ae1e4af09f6ff03b0  gcc/testsuite/g++.dg/warn/Wno-return-local-addr.C
*************** d1f22f759809f81b1b677be34f938b02  gcc/te
*** 28673,28679 ****
  1fd66bda07d0d1a8f1625c816b321aae  gcc/testsuite/g++.dg/warn/Wparentheses-10.C
  593d167a09cfa3cfdaaf95d5d0955105  gcc/testsuite/g++.dg/warn/Wparentheses-11.C
  8c613703632f7f5021d63a811def4981  gcc/testsuite/g++.dg/warn/Wparentheses-12.C
! 9ec8d4fa497036c260fb5d2dbf4ff336  gcc/testsuite/g++.dg/warn/Wparentheses-13.C
  e151ff9706ff8f8d25eb870b6f099bc2  gcc/testsuite/g++.dg/warn/Wparentheses-14.C
  08a0dd4d42f7674207742306f422308a  gcc/testsuite/g++.dg/warn/Wparentheses-15.C
  9bf24a91b61b697e120b73ae40901d68  gcc/testsuite/g++.dg/warn/Wparentheses-16.C
--- 30641,30647 ----
  1fd66bda07d0d1a8f1625c816b321aae  gcc/testsuite/g++.dg/warn/Wparentheses-10.C
  593d167a09cfa3cfdaaf95d5d0955105  gcc/testsuite/g++.dg/warn/Wparentheses-11.C
  8c613703632f7f5021d63a811def4981  gcc/testsuite/g++.dg/warn/Wparentheses-12.C
! 54eded481262e95a293d944f2ed6d7b9  gcc/testsuite/g++.dg/warn/Wparentheses-13.C
  e151ff9706ff8f8d25eb870b6f099bc2  gcc/testsuite/g++.dg/warn/Wparentheses-14.C
  08a0dd4d42f7674207742306f422308a  gcc/testsuite/g++.dg/warn/Wparentheses-15.C
  9bf24a91b61b697e120b73ae40901d68  gcc/testsuite/g++.dg/warn/Wparentheses-16.C
*************** ea3c2716291fc812b8d00190b207f31b  gcc/te
*** 28684,28690 ****
  1fee47e73503ddfb98374f911b0e3801  gcc/testsuite/g++.dg/warn/Wparentheses-20.C
  f5f50acbe2a146e13079538cc1b650f3  gcc/testsuite/g++.dg/warn/Wparentheses-21.C
  d18ff788cbb2084df4ebb3ddadb46dd8  gcc/testsuite/g++.dg/warn/Wparentheses-22.C
! afd55c2d3666a85abefca5bb44baed64  gcc/testsuite/g++.dg/warn/Wparentheses-23.C
  30a2aacc6bcdb30c12ed12f8648679cc  gcc/testsuite/g++.dg/warn/Wparentheses-24.C
  db9ce71114c28250e6fcbc4b610462f7  gcc/testsuite/g++.dg/warn/Wparentheses-25.C
  95ec12b8ebc175ba1e342b0dba2fb6a2  gcc/testsuite/g++.dg/warn/Wparentheses-26.C
--- 30652,30658 ----
  1fee47e73503ddfb98374f911b0e3801  gcc/testsuite/g++.dg/warn/Wparentheses-20.C
  f5f50acbe2a146e13079538cc1b650f3  gcc/testsuite/g++.dg/warn/Wparentheses-21.C
  d18ff788cbb2084df4ebb3ddadb46dd8  gcc/testsuite/g++.dg/warn/Wparentheses-22.C
! 5afbd8be8fa879d85b488588a57eeeac  gcc/testsuite/g++.dg/warn/Wparentheses-23.C
  30a2aacc6bcdb30c12ed12f8648679cc  gcc/testsuite/g++.dg/warn/Wparentheses-24.C
  db9ce71114c28250e6fcbc4b610462f7  gcc/testsuite/g++.dg/warn/Wparentheses-25.C
  95ec12b8ebc175ba1e342b0dba2fb6a2  gcc/testsuite/g++.dg/warn/Wparentheses-26.C
*************** dfcd589329d7ac56994e48372202080f  gcc/te
*** 28694,28699 ****
--- 30662,30670 ----
  f54d3fb57e7ea75f1954d2671e769fd5  gcc/testsuite/g++.dg/warn/Wparentheses-3.C
  96e374f330483a2fd899a4be27553c39  gcc/testsuite/g++.dg/warn/Wparentheses-30.C
  e954d97d020134ab9743dd967500c3cf  gcc/testsuite/g++.dg/warn/Wparentheses-31.C
+ 20703e90b4d44787f4cb34f98f073efd  gcc/testsuite/g++.dg/warn/Wparentheses-32.C
+ bb6a49b1d36e22b7925a075c706ebb2b  gcc/testsuite/g++.dg/warn/Wparentheses-33.C
+ 5715add77608a997144c58745e404bf2  gcc/testsuite/g++.dg/warn/Wparentheses-34.C
  5cb9671988084dbee7c5cdf77fbbfa0c  gcc/testsuite/g++.dg/warn/Wparentheses-4.C
  2e05be0ce305723a94a4113e02835003  gcc/testsuite/g++.dg/warn/Wparentheses-5.C
  83fcd8ddf744b31d0e06101be5cc47fe  gcc/testsuite/g++.dg/warn/Wparentheses-6.C
*************** c581ab7bc1c10728c1e68266d06af6e9  gcc/te
*** 28732,28742 ****
  d0e225992bc2f0e5e2e51d846e21a8b4  gcc/testsuite/g++.dg/warn/Wreturn-3.C
  2517f12853f6838edd913b1fa72b10a6  gcc/testsuite/g++.dg/warn/Wreturn-4.C
  9e1882cc8fcb69eefac6004d8d0a4bb9  gcc/testsuite/g++.dg/warn/Wreturn-5.C
! 6e072c02833a2eeafdc7f85bfcb13bf7  gcc/testsuite/g++.dg/warn/Wreturn-6.C
! 47e19e0aa7cc935c5692f22838d704d8  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-2.C
  9c909989b6fe62571bb57ca4b30ea4e2  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-3.C
  514216b0701c15265ff14809c766c104  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-4.C
! 8020f9bd49dcb3bd70e40a1e2beda78c  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-5.C
  12f1cd49790214f42fa39885b008bf25  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-6.C
  b63f05fc1824f146f4f71e61724fb21f  gcc/testsuite/g++.dg/warn/Wreturn-local-addr.C
  784c916e3f956afe80f26ff565b29be6  gcc/testsuite/g++.dg/warn/Wreturn-type-1.C
--- 30703,30713 ----
  d0e225992bc2f0e5e2e51d846e21a8b4  gcc/testsuite/g++.dg/warn/Wreturn-3.C
  2517f12853f6838edd913b1fa72b10a6  gcc/testsuite/g++.dg/warn/Wreturn-4.C
  9e1882cc8fcb69eefac6004d8d0a4bb9  gcc/testsuite/g++.dg/warn/Wreturn-5.C
! fedc102ac2209f8385825bb786068263  gcc/testsuite/g++.dg/warn/Wreturn-6.C
! 6aca0fe818c1a7ada17bb5d01f789ad8  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-2.C
  9c909989b6fe62571bb57ca4b30ea4e2  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-3.C
  514216b0701c15265ff14809c766c104  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-4.C
! af73594fdb611514c155d52928d4d20f  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-5.C
  12f1cd49790214f42fa39885b008bf25  gcc/testsuite/g++.dg/warn/Wreturn-local-addr-6.C
  b63f05fc1824f146f4f71e61724fb21f  gcc/testsuite/g++.dg/warn/Wreturn-local-addr.C
  784c916e3f956afe80f26ff565b29be6  gcc/testsuite/g++.dg/warn/Wreturn-type-1.C
*************** c9a313a018bffcf8c74feab4d7de24ee  gcc/te
*** 28769,28774 ****
--- 30740,30746 ----
  ffad6b5038655c4c4e389de3106c88b0  gcc/testsuite/g++.dg/warn/Wshadow-16.C
  38815e928f4e863202914977f5520b74  gcc/testsuite/g++.dg/warn/Wshadow-17.C
  e8c004a48240f458631dbb4f69010a3a  gcc/testsuite/g++.dg/warn/Wshadow-18.C
+ dc9f3667d2ff384c4e1712f9c90ccaed  gcc/testsuite/g++.dg/warn/Wshadow-19.C
  6a6527871d476c4275232fa53d041994  gcc/testsuite/g++.dg/warn/Wshadow-2.C
  c6d10f027652eb4c20869c7eaeebb358  gcc/testsuite/g++.dg/warn/Wshadow-3.C
  2e33a5dd790901f2d6f4cc57f311efc6  gcc/testsuite/g++.dg/warn/Wshadow-4.C
*************** e7ad3fcdb672b3530f545b7c0b1f364a  gcc/te
*** 28797,28802 ****
--- 30769,30775 ----
  fb0027ea1d09ff6e88b90961d97d2660  gcc/testsuite/g++.dg/warn/Wsign-conversion-4.C
  817fdd7ad31942555dbd1e01b7c17dfe  gcc/testsuite/g++.dg/warn/Wsign-conversion-5.C
  65bb0b1a539c8d633ac1654e8cb4ac71  gcc/testsuite/g++.dg/warn/Wsign-conversion.C
+ 9b000c4e61b356ac314d0f63a1ac7c26  gcc/testsuite/g++.dg/warn/Wsign-promo1.C
  a230b0e143737a3bc87d7817fba9ff35  gcc/testsuite/g++.dg/warn/Wsize_t-literals.C
  292abb1414ad9c9591d43a1af528efb7  gcc/testsuite/g++.dg/warn/Wsizeof-array-div1.C
  cbcfc6b4d8223d306b12e82d62c0edd3  gcc/testsuite/g++.dg/warn/Wsizeof-array-div2.C
*************** a0b497dc1f8dc8ce49f81bc391f0deb1  gcc/te
*** 28831,28844 ****
  6410b05c3b999712196121758246d3f4  gcc/testsuite/g++.dg/warn/Wstringop-overflow-1.C
  bab7e5656bf0736ab8cd5ae9256981d6  gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C
  38d9e0f462fe42c6229028728971ef78  gcc/testsuite/g++.dg/warn/Wstringop-overflow-3.C
! 7fbaac9db842981c2ad344bdeb0f34c4  gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C
  d1f308b2ce4d89fda2347e839404f085  gcc/testsuite/g++.dg/warn/Wstringop-overflow-5.C
  1bab351a542f6d244c9a83d65c6f27d4  gcc/testsuite/g++.dg/warn/Wstringop-overflow-6.C
  ea32c8c8b42add7fd76338f37d3b13e0  gcc/testsuite/g++.dg/warn/Wstringop-overflow-7.C
  6375de29cae890fc7943bd82832a3c88  gcc/testsuite/g++.dg/warn/Wstringop-overflow-8.C
  d82f666f00c8743076b52f2debf12c0a  gcc/testsuite/g++.dg/warn/Wstringop-overread-1.C
  ac765247730b2bbd6e40254f091bba3e  gcc/testsuite/g++.dg/warn/Wstringop-truncation-1.C
! 68de0b45c161b67b13b219e943fa0f70  gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C
  4aec9a180c35fbd202eef17e2e9d1652  gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C
  eba56eb80e2c30e3bb80d1a990dbb623  gcc/testsuite/g++.dg/warn/Wsubobject-linkage-2.C
  836b53326756a2843a16b15fee84ea09  gcc/testsuite/g++.dg/warn/Wsubobject-linkage-3.C
--- 30804,30817 ----
  6410b05c3b999712196121758246d3f4  gcc/testsuite/g++.dg/warn/Wstringop-overflow-1.C
  bab7e5656bf0736ab8cd5ae9256981d6  gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C
  38d9e0f462fe42c6229028728971ef78  gcc/testsuite/g++.dg/warn/Wstringop-overflow-3.C
! f78d73eca38df524917fc26885dc60f7  gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C
  d1f308b2ce4d89fda2347e839404f085  gcc/testsuite/g++.dg/warn/Wstringop-overflow-5.C
  1bab351a542f6d244c9a83d65c6f27d4  gcc/testsuite/g++.dg/warn/Wstringop-overflow-6.C
  ea32c8c8b42add7fd76338f37d3b13e0  gcc/testsuite/g++.dg/warn/Wstringop-overflow-7.C
  6375de29cae890fc7943bd82832a3c88  gcc/testsuite/g++.dg/warn/Wstringop-overflow-8.C
  d82f666f00c8743076b52f2debf12c0a  gcc/testsuite/g++.dg/warn/Wstringop-overread-1.C
  ac765247730b2bbd6e40254f091bba3e  gcc/testsuite/g++.dg/warn/Wstringop-truncation-1.C
! 230957fbfce5bfd1d8785c192acd0be6  gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C
  4aec9a180c35fbd202eef17e2e9d1652  gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C
  eba56eb80e2c30e3bb80d1a990dbb623  gcc/testsuite/g++.dg/warn/Wsubobject-linkage-2.C
  836b53326756a2843a16b15fee84ea09  gcc/testsuite/g++.dg/warn/Wsubobject-linkage-3.C
*************** b59dc530212e2b55715a884d39fa09dc  gcc/te
*** 28860,28866 ****
  2ecf88082b48d7df37c9334c2844b614  gcc/testsuite/g++.dg/warn/Wtautological-compare.C
  239ced8be8851ec6043b4692f9b00ec1  gcc/testsuite/g++.dg/warn/Wtautological-compare2.C
  6a0a00683f536a5822e62da415a84001  gcc/testsuite/g++.dg/warn/Wtautological-compare3.C
! 81432c4786638b6267d11220821c16df  gcc/testsuite/g++.dg/warn/Wterminate1.C
  7d0e395d869f7d3cd17cf4ce00d94005  gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C
  dc1d92954793f77541307f143e148bd1  gcc/testsuite/g++.dg/warn/Wtype-limits-no.C
  cd1aa1863460ab1916308e4808eb5608  gcc/testsuite/g++.dg/warn/Wtype-limits.C
--- 30833,30843 ----
  2ecf88082b48d7df37c9334c2844b614  gcc/testsuite/g++.dg/warn/Wtautological-compare.C
  239ced8be8851ec6043b4692f9b00ec1  gcc/testsuite/g++.dg/warn/Wtautological-compare2.C
  6a0a00683f536a5822e62da415a84001  gcc/testsuite/g++.dg/warn/Wtautological-compare3.C
! c6c7ba2f206cc6d9ca4eb83b5ab9c4b5  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-1.C
! e8e6d8b58bf8e28b159fbd79ac34b0e1  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-2.C
! f97d8dbd17bfd6ac46b084f656cd92f5  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-3.C
! 4a75d6b93741574db73dbff18f55c028  gcc/testsuite/g++.dg/warn/Wtemplate-id-cdtor-4.C
! 524ab4d18eb6e16eb4fb73064d920e2a  gcc/testsuite/g++.dg/warn/Wterminate1.C
  7d0e395d869f7d3cd17cf4ce00d94005  gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C
  dc1d92954793f77541307f143e148bd1  gcc/testsuite/g++.dg/warn/Wtype-limits-no.C
  cd1aa1863460ab1916308e4808eb5608  gcc/testsuite/g++.dg/warn/Wtype-limits.C
*************** fe4c6303d7ec13423e71cfb150c05d00  gcc/te
*** 28877,28883 ****
  6cbb1f3c3335added60923dffee22b16  gcc/testsuite/g++.dg/warn/Wuninitialized-12.C
  95978d0f61d66a9c1693abb0b01ebd1b  gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
  87d9fc9607c558f95bb00777d8ae53d9  gcc/testsuite/g++.dg/warn/Wuninitialized-14.C
! 871c79dd8bb79c9bcb24e0add5b704e4  gcc/testsuite/g++.dg/warn/Wuninitialized-15.C
  c0b5caca7ef146b3aa1249ecd34b6ed9  gcc/testsuite/g++.dg/warn/Wuninitialized-16.C
  1a5899c4a426c3b9c03a1e2ba48ee90e  gcc/testsuite/g++.dg/warn/Wuninitialized-17.C
  2759eb4bb1dc623bdd303d03f8a84cb7  gcc/testsuite/g++.dg/warn/Wuninitialized-18.C
--- 30854,30860 ----
  6cbb1f3c3335added60923dffee22b16  gcc/testsuite/g++.dg/warn/Wuninitialized-12.C
  95978d0f61d66a9c1693abb0b01ebd1b  gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
  87d9fc9607c558f95bb00777d8ae53d9  gcc/testsuite/g++.dg/warn/Wuninitialized-14.C
! f499f45369dbf11e5e717927f1eb3141  gcc/testsuite/g++.dg/warn/Wuninitialized-15.C
  c0b5caca7ef146b3aa1249ecd34b6ed9  gcc/testsuite/g++.dg/warn/Wuninitialized-16.C
  1a5899c4a426c3b9c03a1e2ba48ee90e  gcc/testsuite/g++.dg/warn/Wuninitialized-17.C
  2759eb4bb1dc623bdd303d03f8a84cb7  gcc/testsuite/g++.dg/warn/Wuninitialized-18.C
*************** ff7e55750a566580a7e5b746cf7dfa22  gcc/te
*** 28898,28903 ****
--- 30875,30881 ----
  d6ab64b605a24d07d95eb4282b431dac  gcc/testsuite/g++.dg/warn/Wuninitialized-31.C
  396db29dd4ffacf13fccefd03552734c  gcc/testsuite/g++.dg/warn/Wuninitialized-32.C
  e78084d6db2698f85d0e705a603998fa  gcc/testsuite/g++.dg/warn/Wuninitialized-33.C
+ 954ee8a8c8588bbf10d0e828d4c5c2f7  gcc/testsuite/g++.dg/warn/Wuninitialized-34.C
  be5b47714ba41b25933660896d6c7427  gcc/testsuite/g++.dg/warn/Wuninitialized-4.C
  1f013ef9d737e679cea70e842d47a7ce  gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
  5d5a54e16a8f1ca7a7dc521b9a20af28  gcc/testsuite/g++.dg/warn/Wuninitialized-6.C
*************** be5b47714ba41b25933660896d6c7427  gcc/te
*** 28905,28910 ****
--- 30883,30889 ----
  9499c4dafb0ba272277b5ed41c0cf76b  gcc/testsuite/g++.dg/warn/Wuninitialized-8.C
  cbc63320f1b9587eb653a962d61c8945  gcc/testsuite/g++.dg/warn/Wuninitialized-9.C
  0882591d7986fa7a13117b45f37daa8d  gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
+ 03352e975df734d6adc83d356f8c2add  gcc/testsuite/g++.dg/warn/Wuninitialized-pr111123-1.C
  d08f8f4d2f55349741193b20c16afa1a  gcc/testsuite/g++.dg/warn/Wunused-1.C
  09723811a7331dcc7580068bdfe05710  gcc/testsuite/g++.dg/warn/Wunused-10.C
  509e856e0fc2084da098b641f1d63e89  gcc/testsuite/g++.dg/warn/Wunused-11.C
*************** b81dd316dd30881afe998cc16667340f  gcc/te
*** 28991,28997 ****
  f62d0efa105434ddb77f8584066aa865  gcc/testsuite/g++.dg/warn/Wunused-var30.C
  05ca808832d9fd67738b75a8019ab2d3  gcc/testsuite/g++.dg/warn/Wuse-after-free.C
  e458d0fab0b37edff03370ba4ad52623  gcc/testsuite/g++.dg/warn/Wuse-after-free2.C
! 86527247d75407802a9c79ab5d36d150  gcc/testsuite/g++.dg/warn/Wuse-after-free3.C
  3cfad577c57b131562e2e5cae28cc116  gcc/testsuite/g++.dg/warn/Wuse-after-free4.C
  902f05f29c33aa5d562b711128653136  gcc/testsuite/g++.dg/warn/Wuse-after-free5.C
  30054c1718881a393d74bb5fa87ea44b  gcc/testsuite/g++.dg/warn/Wuseless-cast.C
--- 30970,30976 ----
  f62d0efa105434ddb77f8584066aa865  gcc/testsuite/g++.dg/warn/Wunused-var30.C
  05ca808832d9fd67738b75a8019ab2d3  gcc/testsuite/g++.dg/warn/Wuse-after-free.C
  e458d0fab0b37edff03370ba4ad52623  gcc/testsuite/g++.dg/warn/Wuse-after-free2.C
! 8d143459f59e4f092e4eed0641ce6507  gcc/testsuite/g++.dg/warn/Wuse-after-free3.C
  3cfad577c57b131562e2e5cae28cc116  gcc/testsuite/g++.dg/warn/Wuse-after-free4.C
  902f05f29c33aa5d562b711128653136  gcc/testsuite/g++.dg/warn/Wuse-after-free5.C
  30054c1718881a393d74bb5fa87ea44b  gcc/testsuite/g++.dg/warn/Wuseless-cast.C
*************** ef971e083f028f6e44e1d007699ec3c6  gcc/te
*** 29157,29163 ****
  4a9f855779aa7cb0488ab564acde90fc  gcc/testsuite/g++.dg/warn/overflow-warn-5.C
  e36e0e34c32010c5c54008377dce599e  gcc/testsuite/g++.dg/warn/overflow-warn-6.C
  3c647e62ea816b4c56976d6e778444db  gcc/testsuite/g++.dg/warn/pedantic1.C
! 4c8c625ae79211ff8d60b894c8b21b81  gcc/testsuite/g++.dg/warn/pedantic2.C
  ee6a633cbcb41c7241335ac4002bc5bd  gcc/testsuite/g++.dg/warn/permissive-1.C
  eee589a3fa31332d5466e5037b1a870e  gcc/testsuite/g++.dg/warn/pmf1.C
  c36be50bce1bb66a16eefbbb8eed1e5c  gcc/testsuite/g++.dg/warn/pmf2.C
--- 31136,31142 ----
  4a9f855779aa7cb0488ab564acde90fc  gcc/testsuite/g++.dg/warn/overflow-warn-5.C
  e36e0e34c32010c5c54008377dce599e  gcc/testsuite/g++.dg/warn/overflow-warn-6.C
  3c647e62ea816b4c56976d6e778444db  gcc/testsuite/g++.dg/warn/pedantic1.C
! efd41f8efbf4a73283f5e43cf2516e4b  gcc/testsuite/g++.dg/warn/pedantic2.C
  ee6a633cbcb41c7241335ac4002bc5bd  gcc/testsuite/g++.dg/warn/permissive-1.C
  eee589a3fa31332d5466e5037b1a870e  gcc/testsuite/g++.dg/warn/pmf1.C
  c36be50bce1bb66a16eefbbb8eed1e5c  gcc/testsuite/g++.dg/warn/pmf2.C
*************** ad68bbb45548b2f681a5f0e57f41ef19  gcc/te
*** 29211,29217 ****
  509e9b77a9ef20ea518a0a1e9728cc30  gcc/testsuite/g++.dg/warn/pr82424.C
  6d310dab9abdfd7931331e525069468c  gcc/testsuite/g++.dg/warn/pr82710.C
  1f3994c2dd20f477a579542a531ccd8a  gcc/testsuite/g++.dg/warn/pr83045.C
! 1a0f2d242a6c90da2b74827fd103f9dd  gcc/testsuite/g++.dg/warn/pr83054.C
  d8e09f06f5ec03c8ee79f8a008ae77df  gcc/testsuite/g++.dg/warn/pr83974.C
  591b28c4968c297ab14c8ab1384a1394  gcc/testsuite/g++.dg/warn/pr8570.C
  90e0fdda9d2de3f7bdb6aca19993e448  gcc/testsuite/g++.dg/warn/pr86453.C
--- 31190,31197 ----
  509e9b77a9ef20ea518a0a1e9728cc30  gcc/testsuite/g++.dg/warn/pr82424.C
  6d310dab9abdfd7931331e525069468c  gcc/testsuite/g++.dg/warn/pr82710.C
  1f3994c2dd20f477a579542a531ccd8a  gcc/testsuite/g++.dg/warn/pr83045.C
! 31449649e76fd052b74b6d232b650f86  gcc/testsuite/g++.dg/warn/pr83054-2.C
! 3cc85210dedbec367d9ab8e56c480027  gcc/testsuite/g++.dg/warn/pr83054.C
  d8e09f06f5ec03c8ee79f8a008ae77df  gcc/testsuite/g++.dg/warn/pr83974.C
  591b28c4968c297ab14c8ab1384a1394  gcc/testsuite/g++.dg/warn/pr8570.C
  90e0fdda9d2de3f7bdb6aca19993e448  gcc/testsuite/g++.dg/warn/pr86453.C
*************** da80b7e97d4e9ee67decc3ead64065ff  gcc/te
*** 29391,29397 ****
  320f3eae6dc6bbd5aa64e7a285f758f7  gcc/testsuite/g++.old-deja/g++.bob/template2.C
  d3aa332b02a50a2c976fd3acd8f16058  gcc/testsuite/g++.old-deja/g++.bob/template3.C
  aeb5818b98767c6df0e85e3dd85f0da7  gcc/testsuite/g++.old-deja/g++.bob/template4.C
! 483562baa1cb2724926cd16c3bb17341  gcc/testsuite/g++.old-deja/g++.brendan/README
  ae92d366fb4b1fb345a39cf07442d5f1  gcc/testsuite/g++.old-deja/g++.brendan/abstract1.C
  fc6063368e5474a8653856d27762de94  gcc/testsuite/g++.old-deja/g++.brendan/access1.C
  cd7e52b4b869a50f1833437935e02700  gcc/testsuite/g++.old-deja/g++.brendan/alignof.C
--- 31371,31377 ----
  320f3eae6dc6bbd5aa64e7a285f758f7  gcc/testsuite/g++.old-deja/g++.bob/template2.C
  d3aa332b02a50a2c976fd3acd8f16058  gcc/testsuite/g++.old-deja/g++.bob/template3.C
  aeb5818b98767c6df0e85e3dd85f0da7  gcc/testsuite/g++.old-deja/g++.bob/template4.C
! abdab164e24b9268bf397687ba63f2ec  gcc/testsuite/g++.old-deja/g++.brendan/README
  ae92d366fb4b1fb345a39cf07442d5f1  gcc/testsuite/g++.old-deja/g++.brendan/abstract1.C
  fc6063368e5474a8653856d27762de94  gcc/testsuite/g++.old-deja/g++.brendan/access1.C
  cd7e52b4b869a50f1833437935e02700  gcc/testsuite/g++.old-deja/g++.brendan/alignof.C
*************** b00d2568b245f9e277d20be1b4b10a71  gcc/te
*** 29798,29805 ****
  e04f0d66f5d7d54dcb1732090fd6134e  gcc/testsuite/g++.old-deja/g++.bugs/900520_05.C
  365ad489a4b8cb4d59c97741b1d326bb  gcc/testsuite/g++.old-deja/g++.bugs/900520_06.C
  d1f812b0fed8696924824353accf115f  gcc/testsuite/g++.old-deja/g++.eh/badalloc1.C
! a431791e8c02c6fc5c746db5efcfb40b  gcc/testsuite/g++.old-deja/g++.eh/catch1.C
! 9901d8b9eb879f28ec0ad577b19ddafa  gcc/testsuite/g++.old-deja/g++.eh/catch10.C
  a83d60c4fb96f4454d525c1e8b6a33a7  gcc/testsuite/g++.old-deja/g++.eh/catch11.C
  22f50aa9e05125f9a73411eeae9cd099  gcc/testsuite/g++.old-deja/g++.eh/catch12.C
  c186c63c8ba86a5b6cb465f7ab19d63d  gcc/testsuite/g++.old-deja/g++.eh/catch13.C
--- 31778,31785 ----
  e04f0d66f5d7d54dcb1732090fd6134e  gcc/testsuite/g++.old-deja/g++.bugs/900520_05.C
  365ad489a4b8cb4d59c97741b1d326bb  gcc/testsuite/g++.old-deja/g++.bugs/900520_06.C
  d1f812b0fed8696924824353accf115f  gcc/testsuite/g++.old-deja/g++.eh/badalloc1.C
! e75a72f4e9fcaed19098bd22ce900171  gcc/testsuite/g++.old-deja/g++.eh/catch1.C
! 7ca5c0609795e6ac6314273640eda148  gcc/testsuite/g++.old-deja/g++.eh/catch10.C
  a83d60c4fb96f4454d525c1e8b6a33a7  gcc/testsuite/g++.old-deja/g++.eh/catch11.C
  22f50aa9e05125f9a73411eeae9cd099  gcc/testsuite/g++.old-deja/g++.eh/catch12.C
  c186c63c8ba86a5b6cb465f7ab19d63d  gcc/testsuite/g++.old-deja/g++.eh/catch13.C
*************** f53033f53b20e92e0c7776246dec74d0  gcc/te
*** 29822,29835 ****
  e04cf950955ebdaeda17f9fc71317cc7  gcc/testsuite/g++.old-deja/g++.eh/catchptr1.C
  ee2dd570f0862f7f990dbd673349a664  gcc/testsuite/g++.old-deja/g++.eh/cleanup1.C
  9f047d9b60ef3c9ef4c87df19c10b467  gcc/testsuite/g++.old-deja/g++.eh/cleanup2.C
! b0edd89b41436e14c4cc1b2e3012d19c  gcc/testsuite/g++.old-deja/g++.eh/cond1.C
  b903876a0b6ee0eb25737e78430452f6  gcc/testsuite/g++.old-deja/g++.eh/crash1.C
  1604e9f615755f1d4b2fbb38669a2a74  gcc/testsuite/g++.old-deja/g++.eh/crash2.C
  739c732403e3a10677bc952248d7b3cf  gcc/testsuite/g++.old-deja/g++.eh/crash3.C
  328c615c13278b502e18b7a38ea32810  gcc/testsuite/g++.old-deja/g++.eh/crash4.C
  6f112400ec69874c71a11839a262eb16  gcc/testsuite/g++.old-deja/g++.eh/crash5.C
  c80d5660b1728bc2ac055847f51343bc  gcc/testsuite/g++.old-deja/g++.eh/crash6.C
! f5e76e20197d67a7df28b34111dfb855  gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
  69dc075b8772cb01d011939a1a0896fb  gcc/testsuite/g++.old-deja/g++.eh/flow1.C
  4d9e6f65aec19c778c890a288bae5690  gcc/testsuite/g++.old-deja/g++.eh/fntry1.C
  a9f648d8da78dd871addee9542a65e72  gcc/testsuite/g++.old-deja/g++.eh/ia64-1.C
--- 31802,31815 ----
  e04cf950955ebdaeda17f9fc71317cc7  gcc/testsuite/g++.old-deja/g++.eh/catchptr1.C
  ee2dd570f0862f7f990dbd673349a664  gcc/testsuite/g++.old-deja/g++.eh/cleanup1.C
  9f047d9b60ef3c9ef4c87df19c10b467  gcc/testsuite/g++.old-deja/g++.eh/cleanup2.C
! fea6e0e8100900498ff3b29028c6b8c5  gcc/testsuite/g++.old-deja/g++.eh/cond1.C
  b903876a0b6ee0eb25737e78430452f6  gcc/testsuite/g++.old-deja/g++.eh/crash1.C
  1604e9f615755f1d4b2fbb38669a2a74  gcc/testsuite/g++.old-deja/g++.eh/crash2.C
  739c732403e3a10677bc952248d7b3cf  gcc/testsuite/g++.old-deja/g++.eh/crash3.C
  328c615c13278b502e18b7a38ea32810  gcc/testsuite/g++.old-deja/g++.eh/crash4.C
  6f112400ec69874c71a11839a262eb16  gcc/testsuite/g++.old-deja/g++.eh/crash5.C
  c80d5660b1728bc2ac055847f51343bc  gcc/testsuite/g++.old-deja/g++.eh/crash6.C
! 10d50cc81de98796760e468a3c3baa86  gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
  69dc075b8772cb01d011939a1a0896fb  gcc/testsuite/g++.old-deja/g++.eh/flow1.C
  4d9e6f65aec19c778c890a288bae5690  gcc/testsuite/g++.old-deja/g++.eh/fntry1.C
  a9f648d8da78dd871addee9542a65e72  gcc/testsuite/g++.old-deja/g++.eh/ia64-1.C
*************** e1be1d604a2e019c1bf80d17a2993239  gcc/te
*** 29857,29863 ****
  7d55190d2961ccde4c57bde2d6e6b4cd  gcc/testsuite/g++.old-deja/g++.eh/terminate1.C
  e119c0abf28a26060ddb1897af1b2f33  gcc/testsuite/g++.old-deja/g++.eh/terminate2.C
  d043aff5b9e8b7bb2e60fc61dbceba45  gcc/testsuite/g++.old-deja/g++.eh/throw1.C
! e46de41af463d11cb873f3b351eb5dc0  gcc/testsuite/g++.old-deja/g++.eh/throw2.C
  d61633958d759aaecdd89b68dc45934c  gcc/testsuite/g++.old-deja/g++.eh/tmpl1.C
  10ba7935836a909b4eeef0ac2a8431b5  gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C
  043bcae91858c58520614ab10d740d6d  gcc/testsuite/g++.old-deja/g++.eh/tmpl3.C
--- 31837,31843 ----
  7d55190d2961ccde4c57bde2d6e6b4cd  gcc/testsuite/g++.old-deja/g++.eh/terminate1.C
  e119c0abf28a26060ddb1897af1b2f33  gcc/testsuite/g++.old-deja/g++.eh/terminate2.C
  d043aff5b9e8b7bb2e60fc61dbceba45  gcc/testsuite/g++.old-deja/g++.eh/throw1.C
! 77dc8098c5ef370d95212be86e983c57  gcc/testsuite/g++.old-deja/g++.eh/throw2.C
  d61633958d759aaecdd89b68dc45934c  gcc/testsuite/g++.old-deja/g++.eh/tmpl1.C
  10ba7935836a909b4eeef0ac2a8431b5  gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C
  043bcae91858c58520614ab10d740d6d  gcc/testsuite/g++.old-deja/g++.eh/tmpl3.C
*************** a9b091e6f785618c8abcc1b99b6614dc  gcc/te
*** 30148,30154 ****
  70ede504775cb592907fb5ef243b1b78  gcc/testsuite/g++.old-deja/g++.jason/overload9.C
  8de8c00c90b1c1c9fc5ef99276b6c06f  gcc/testsuite/g++.old-deja/g++.jason/parse1.C
  2dcf8b430dbd487615992d2db56b79ca  gcc/testsuite/g++.old-deja/g++.jason/parse10.C
! 46e40596c5c8c2adbf39d991c1fd3e92  gcc/testsuite/g++.old-deja/g++.jason/parse11.C
  44598d99c92aed74b55f3f978bcc2506  gcc/testsuite/g++.old-deja/g++.jason/parse12.C
  91df7257f1a1bda745fa52ba4d8a400d  gcc/testsuite/g++.old-deja/g++.jason/parse13.C
  84c726a5b52085aa8fe801fc478ce206  gcc/testsuite/g++.old-deja/g++.jason/parse14.C
--- 32128,32134 ----
  70ede504775cb592907fb5ef243b1b78  gcc/testsuite/g++.old-deja/g++.jason/overload9.C
  8de8c00c90b1c1c9fc5ef99276b6c06f  gcc/testsuite/g++.old-deja/g++.jason/parse1.C
  2dcf8b430dbd487615992d2db56b79ca  gcc/testsuite/g++.old-deja/g++.jason/parse10.C
! a0141cf32b180bb2d82efdbef288cfb9  gcc/testsuite/g++.old-deja/g++.jason/parse11.C
  44598d99c92aed74b55f3f978bcc2506  gcc/testsuite/g++.old-deja/g++.jason/parse12.C
  91df7257f1a1bda745fa52ba4d8a400d  gcc/testsuite/g++.old-deja/g++.jason/parse13.C
  84c726a5b52085aa8fe801fc478ce206  gcc/testsuite/g++.old-deja/g++.jason/parse14.C
*************** e75b78d24078dbf9a96ada8194eef893  gcc/te
*** 30333,30339 ****
  a527d9d80c0f8b1b8cc068fbe97dd294  gcc/testsuite/g++.old-deja/g++.jason/warning5.C
  72dab6b8f0b29b602295c6af7a5f15be  gcc/testsuite/g++.old-deja/g++.jason/warning6.C
  68587f14a57035c7dcfe5788d601729c  gcc/testsuite/g++.old-deja/g++.jason/warning7.C
! a4a98da49e2e4b8c46f1e9653be42b53  gcc/testsuite/g++.old-deja/g++.jason/warning8.C
  314bec1817ea9c903efde451dc59d8d7  gcc/testsuite/g++.old-deja/g++.jason/warning9.C
  1c73e8224f5abf06d0756ccb118b07ce  gcc/testsuite/g++.old-deja/g++.law/access1.C
  32a3f6717059fbc586527e3b51806ff7  gcc/testsuite/g++.old-deja/g++.law/access2.C
--- 32313,32319 ----
  a527d9d80c0f8b1b8cc068fbe97dd294  gcc/testsuite/g++.old-deja/g++.jason/warning5.C
  72dab6b8f0b29b602295c6af7a5f15be  gcc/testsuite/g++.old-deja/g++.jason/warning6.C
  68587f14a57035c7dcfe5788d601729c  gcc/testsuite/g++.old-deja/g++.jason/warning7.C
! 91473be685d96cbf47bd96b4e881f287  gcc/testsuite/g++.old-deja/g++.jason/warning8.C
  314bec1817ea9c903efde451dc59d8d7  gcc/testsuite/g++.old-deja/g++.jason/warning9.C
  1c73e8224f5abf06d0756ccb118b07ce  gcc/testsuite/g++.old-deja/g++.law/access1.C
  32a3f6717059fbc586527e3b51806ff7  gcc/testsuite/g++.old-deja/g++.law/access2.C
*************** e5db2d6a97ac67f92524f4281fa8fb40  gcc/te
*** 31203,31209 ****
  adc0a6dcb5fd4ac47a11b684146ac09c  gcc/testsuite/g++.old-deja/g++.other/cond2.C
  a1c2753cfb142a358f8ffc3053ae4a4f  gcc/testsuite/g++.old-deja/g++.other/cond3.C
  ac45c51548ac5c0e398a0afcf2e9042b  gcc/testsuite/g++.old-deja/g++.other/cond4.C
! 72c077597215fda90b2848ff3ccac9b7  gcc/testsuite/g++.old-deja/g++.other/cond5.C
  60cc2216254cf4d88abe1ad138469b1b  gcc/testsuite/g++.old-deja/g++.other/cond6.C
  1d89ee7d1846d1e50779a90e46fc5a7e  gcc/testsuite/g++.old-deja/g++.other/cond7.C
  6f779a48e303e5714ade1dc1eaf9964f  gcc/testsuite/g++.old-deja/g++.other/const1.C
--- 33183,33189 ----
  adc0a6dcb5fd4ac47a11b684146ac09c  gcc/testsuite/g++.old-deja/g++.other/cond2.C
  a1c2753cfb142a358f8ffc3053ae4a4f  gcc/testsuite/g++.old-deja/g++.other/cond3.C
  ac45c51548ac5c0e398a0afcf2e9042b  gcc/testsuite/g++.old-deja/g++.other/cond4.C
! f2c5bac97ad9f44552f0716c835d0b2d  gcc/testsuite/g++.old-deja/g++.other/cond5.C
  60cc2216254cf4d88abe1ad138469b1b  gcc/testsuite/g++.old-deja/g++.other/cond6.C
  1d89ee7d1846d1e50779a90e46fc5a7e  gcc/testsuite/g++.old-deja/g++.other/cond7.C
  6f779a48e303e5714ade1dc1eaf9964f  gcc/testsuite/g++.old-deja/g++.other/const1.C
*************** ed2cf04edb9bfa17f33eb839d466104d  gcc/te
*** 31392,31398 ****
  ef17244e8beb00b8e2b159085fa4524c  gcc/testsuite/g++.old-deja/g++.other/init6.C
  218366b1db7ad573de9089b8dc32b49f  gcc/testsuite/g++.old-deja/g++.other/init7.C
  8f1fad4a3628e33ecda8e9b1d591d956  gcc/testsuite/g++.old-deja/g++.other/init8.C
! 3bed5c313679eb5bd5778bcf74f70c5a  gcc/testsuite/g++.old-deja/g++.other/init9.C
  8aea0874ae47ec6f53fb668325fd6e48  gcc/testsuite/g++.old-deja/g++.other/initstring.C
  5841802bbaf58c45a8be3d0bc688eae3  gcc/testsuite/g++.old-deja/g++.other/inline1.C
  50d7ee902563f62414c3d4e1c3e2be49  gcc/testsuite/g++.old-deja/g++.other/inline10.C
--- 33372,33378 ----
  ef17244e8beb00b8e2b159085fa4524c  gcc/testsuite/g++.old-deja/g++.other/init6.C
  218366b1db7ad573de9089b8dc32b49f  gcc/testsuite/g++.old-deja/g++.other/init7.C
  8f1fad4a3628e33ecda8e9b1d591d956  gcc/testsuite/g++.old-deja/g++.other/init8.C
! 741bd57b64c903b8834ee199682614d9  gcc/testsuite/g++.old-deja/g++.other/init9.C
  8aea0874ae47ec6f53fb668325fd6e48  gcc/testsuite/g++.old-deja/g++.other/initstring.C
  5841802bbaf58c45a8be3d0bc688eae3  gcc/testsuite/g++.old-deja/g++.other/inline1.C
  50d7ee902563f62414c3d4e1c3e2be49  gcc/testsuite/g++.old-deja/g++.other/inline10.C
*************** f22cf44c7dbbb47eb64c9173b3afe6c9  gcc/te
*** 31743,31749 ****
  ad3d46649e47e04d7a041e7e1644c382  gcc/testsuite/g++.old-deja/g++.pt/crash8.C
  bacabf0a4a53038418059a8709d926f4  gcc/testsuite/g++.old-deja/g++.pt/crash9.C
  175bbaa432316cf80ec13fb36b444aff  gcc/testsuite/g++.old-deja/g++.pt/ctor1.C
! 556a591a899707b0d8264cbb11a96234  gcc/testsuite/g++.old-deja/g++.pt/ctor2.C
  ad2cc6cd72ed2f9aa4e2d8675680e0f2  gcc/testsuite/g++.old-deja/g++.pt/debug1.C
  7ff13cbadc027cf3969e195ccccf78aa  gcc/testsuite/g++.old-deja/g++.pt/decl1.C
  9858f161fed7cab46f56279efd868f75  gcc/testsuite/g++.old-deja/g++.pt/decl2.C
--- 33723,33729 ----
  ad3d46649e47e04d7a041e7e1644c382  gcc/testsuite/g++.old-deja/g++.pt/crash8.C
  bacabf0a4a53038418059a8709d926f4  gcc/testsuite/g++.old-deja/g++.pt/crash9.C
  175bbaa432316cf80ec13fb36b444aff  gcc/testsuite/g++.old-deja/g++.pt/ctor1.C
! 4a488a18901a05e8fee5f9a88120d28a  gcc/testsuite/g++.old-deja/g++.pt/ctor2.C
  ad2cc6cd72ed2f9aa4e2d8675680e0f2  gcc/testsuite/g++.old-deja/g++.pt/debug1.C
  7ff13cbadc027cf3969e195ccccf78aa  gcc/testsuite/g++.old-deja/g++.pt/decl1.C
  9858f161fed7cab46f56279efd868f75  gcc/testsuite/g++.old-deja/g++.pt/decl2.C
*************** e4bacbe47abba3ebf1104b50d7cf9249  gcc/te
*** 32384,32390 ****
  e890a612b46d6c7b501609a21a4674a8  gcc/testsuite/g++.old-deja/g++.rfg/00321_01-.C
  e26ad5718ff51449da03b8b3023ebab1  gcc/testsuite/g++.old-deja/g++.rfg/00324_02-.C
  18090564deaeabb2833db724176f5e3e  gcc/testsuite/g++.old-deja/g++.robertl/980310-1.C
! 00396563e739133822dd0a2802d53748  gcc/testsuite/g++.old-deja/g++.robertl/README
  7043c0e8dd58f93b9ec2d562d4af77b8  gcc/testsuite/g++.old-deja/g++.robertl/eb10.C
  ee83a1efbd7590614fbf204920c56047  gcc/testsuite/g++.old-deja/g++.robertl/eb102.C
  16b83875b8a1cbbdb43a0c94bc18228d  gcc/testsuite/g++.old-deja/g++.robertl/eb103.C
--- 34364,34370 ----
  e890a612b46d6c7b501609a21a4674a8  gcc/testsuite/g++.old-deja/g++.rfg/00321_01-.C
  e26ad5718ff51449da03b8b3023ebab1  gcc/testsuite/g++.old-deja/g++.rfg/00324_02-.C
  18090564deaeabb2833db724176f5e3e  gcc/testsuite/g++.old-deja/g++.robertl/980310-1.C
! c3df08d89fbbacdad6cc60f76ebdc308  gcc/testsuite/g++.old-deja/g++.robertl/README
  7043c0e8dd58f93b9ec2d562d4af77b8  gcc/testsuite/g++.old-deja/g++.robertl/eb10.C
  ee83a1efbd7590614fbf204920c56047  gcc/testsuite/g++.old-deja/g++.robertl/eb102.C
  16b83875b8a1cbbdb43a0c94bc18228d  gcc/testsuite/g++.old-deja/g++.robertl/eb103.C
*************** f0d75f94742cf514d429d51c4d4df58c  gcc/te
*** 32525,32536 ****
  a885b90302ee9e0cb5c2e13efa009de3  gcc/testsuite/g++.old-deja/g++.warn/inline.C
  d53cb2073c8f36697f63dfe19779eb13  gcc/testsuite/g++.old-deja/g++.warn/iomanip.C
  0c1003d602150141b4f4705044d2624f  gcc/testsuite/g++.old-deja/g++.warn/virt1.C
! 289a2cbda63899dd34585e1494df70a0  gcc/testsuite/g++.old-deja/old-deja.exp
! dd6bafc65c209bc20fbbf0343022e050  gcc/testsuite/g++.target/aarch64/aarch64.exp
! 28dd3cee57c2dbcd3af80dd5c01286d8  gcc/testsuite/g++.target/aarch64/acle/acle.exp
! be936521267575d4dc02c85764f8009c  gcc/testsuite/g++.target/aarch64/acle/ls64.C
! fef081bed29cb6fd77ad28016cb9a558  gcc/testsuite/g++.target/aarch64/acle/ls64_lto.C
! 469c0ad16ca5c5ecc3654919c90dcf62  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
  992600153061bcf9c4f34a765c2c8f7e  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/pr98852.C
  323c7e5c5fbc1e627c7630bec9c0ce5c  gcc/testsuite/g++.target/aarch64/bfloat_cpp_typecheck.C
  00828ba2141dc2185601894f83428c75  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
--- 34505,34516 ----
  a885b90302ee9e0cb5c2e13efa009de3  gcc/testsuite/g++.old-deja/g++.warn/inline.C
  d53cb2073c8f36697f63dfe19779eb13  gcc/testsuite/g++.old-deja/g++.warn/iomanip.C
  0c1003d602150141b4f4705044d2624f  gcc/testsuite/g++.old-deja/g++.warn/virt1.C
! 3c288b92cea5f162d6c4b5905d1270d8  gcc/testsuite/g++.old-deja/old-deja.exp
! 68398547fd8cc1a3231e084958851ea3  gcc/testsuite/g++.target/aarch64/aarch64.exp
! 23050f198d6953d86e6b1dcf58d5be7d  gcc/testsuite/g++.target/aarch64/acle/acle.exp
! 0c47cb2c5527e312fc7aa61cb990aca3  gcc/testsuite/g++.target/aarch64/acle/ls64.C
! 74ed4871401ccfa96602343217748d58  gcc/testsuite/g++.target/aarch64/acle/ls64_lto.C
! 5bb6fc22d59aab37d7df75591025529e  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
  992600153061bcf9c4f34a765c2c8f7e  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/pr98852.C
  323c7e5c5fbc1e627c7630bec9c0ce5c  gcc/testsuite/g++.target/aarch64/bfloat_cpp_typecheck.C
  00828ba2141dc2185601894f83428c75  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
*************** f7378d596bb7308498db40ad34fd8dab  gcc/te
*** 32542,32551 ****
  64610704e2fb7b814ffc84b6b28714a0  gcc/testsuite/g++.target/aarch64/complex-init.C
  c11e5f97e7a5971cc5c5017024f54496  gcc/testsuite/g++.target/aarch64/diag_aka_1.C
  4320de0414b96b162e7734443992dd38  gcc/testsuite/g++.target/aarch64/interference.C
  4d5fd415b9746bcd53f093e8282fb37d  gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
  20b857cf626aad749264f74e19d94347  gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
  ff91378a7ee794cf81b35b9b219bd4b2  gcc/testsuite/g++.target/aarch64/pr103147-1.C
! 54fdce2e7bb47f6289f5740bd0eadf0c  gcc/testsuite/g++.target/aarch64/pr103147-10.C
  51603f65ccab9c1ede5d7110a43c75a1  gcc/testsuite/g++.target/aarch64/pr103147-2.C
  846f32ec61a2c44d9395459e726dc310  gcc/testsuite/g++.target/aarch64/pr103147-3.C
  b45179fb4c2cb954cc481e0a385817d5  gcc/testsuite/g++.target/aarch64/pr103147-4.C
--- 34522,34541 ----
  64610704e2fb7b814ffc84b6b28714a0  gcc/testsuite/g++.target/aarch64/complex-init.C
  c11e5f97e7a5971cc5c5017024f54496  gcc/testsuite/g++.target/aarch64/diag_aka_1.C
  4320de0414b96b162e7734443992dd38  gcc/testsuite/g++.target/aarch64/interference.C
+ 1523e6ba24b79e403ea7663afe5c1dfa  gcc/testsuite/g++.target/aarch64/mv-1.C
+ 745abe274e13fcf82b8d32023c43155a  gcc/testsuite/g++.target/aarch64/mv-symbols1.C
+ aab9e274c610457133c00ee4bdd6b7fb  gcc/testsuite/g++.target/aarch64/mv-symbols2.C
+ 7ad546399ef3ff4b6797acd27325bea5  gcc/testsuite/g++.target/aarch64/mv-symbols3.C
+ ed22ad98c3a390b98fe83f44f3d32e32  gcc/testsuite/g++.target/aarch64/mv-symbols4.C
+ f8afa4519e961339073a068036d67207  gcc/testsuite/g++.target/aarch64/mv-symbols5.C
+ 4efebffa315440fbfcc099a15970e251  gcc/testsuite/g++.target/aarch64/mvc-symbols1.C
+ 9b82c13ebfb83bbf05485deaba395be3  gcc/testsuite/g++.target/aarch64/mvc-symbols2.C
+ 5efe35f76246efd767400fa265567924  gcc/testsuite/g++.target/aarch64/mvc-symbols3.C
+ 894c3e02c93fdfa48d0fdbd4a413958d  gcc/testsuite/g++.target/aarch64/mvc-symbols4.C
  4d5fd415b9746bcd53f093e8282fb37d  gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
  20b857cf626aad749264f74e19d94347  gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
  ff91378a7ee794cf81b35b9b219bd4b2  gcc/testsuite/g++.target/aarch64/pr103147-1.C
! f35ce5ad20d4cbc9d7cf2df6f950dfc4  gcc/testsuite/g++.target/aarch64/pr103147-10.C
  51603f65ccab9c1ede5d7110a43c75a1  gcc/testsuite/g++.target/aarch64/pr103147-2.C
  846f32ec61a2c44d9395459e726dc310  gcc/testsuite/g++.target/aarch64/pr103147-3.C
  b45179fb4c2cb954cc481e0a385817d5  gcc/testsuite/g++.target/aarch64/pr103147-4.C
*************** e41794101e1163933e295ca13a5ea408  gcc/te
*** 32555,32564 ****
  8931dca56e54462bd94ce184b0a14e21  gcc/testsuite/g++.target/aarch64/pr103147-8.C
  18f8443138a6fbfd030458bc4aee321e  gcc/testsuite/g++.target/aarch64/pr103147-9.C
  fdd58df958d044ebf7cd930cae94f2b8  gcc/testsuite/g++.target/aarch64/pr107080.C
! a6ea458a7ec2d06deaf034aef4634175  gcc/testsuite/g++.target/aarch64/pr109661-1.C
! 85ab53df58c43279cbde4ec788ee29e8  gcc/testsuite/g++.target/aarch64/pr109661-2.C
! df8702f104ac7dec026581f01b451759  gcc/testsuite/g++.target/aarch64/pr109661-3.C
! 8a87eccd2ea6a44f691686a95b8a5f4b  gcc/testsuite/g++.target/aarch64/pr109661-4.C
  1755134bcb84bdbcfd658df7150649e0  gcc/testsuite/g++.target/aarch64/pr89752.C
  ba9d23bf9864be2b6061429c3faa49b7  gcc/testsuite/g++.target/aarch64/pr94052.C
  376b3a47b3ddd89e448a765321d0e622  gcc/testsuite/g++.target/aarch64/pr94514.C
--- 34545,34554 ----
  8931dca56e54462bd94ce184b0a14e21  gcc/testsuite/g++.target/aarch64/pr103147-8.C
  18f8443138a6fbfd030458bc4aee321e  gcc/testsuite/g++.target/aarch64/pr103147-9.C
  fdd58df958d044ebf7cd930cae94f2b8  gcc/testsuite/g++.target/aarch64/pr107080.C
! b3f9da722f5270cda4a26396283bbbe9  gcc/testsuite/g++.target/aarch64/pr109661-1.C
! 3dce24cbf6e8a9d6b104a5174b42ccf6  gcc/testsuite/g++.target/aarch64/pr109661-2.C
! af15d8508e94dffd343c693011e63fd4  gcc/testsuite/g++.target/aarch64/pr109661-3.C
! 9b78f2399b3493ce846b6fb03c77ee6c  gcc/testsuite/g++.target/aarch64/pr109661-4.C
  1755134bcb84bdbcfd658df7150649e0  gcc/testsuite/g++.target/aarch64/pr89752.C
  ba9d23bf9864be2b6061429c3faa49b7  gcc/testsuite/g++.target/aarch64/pr94052.C
  376b3a47b3ddd89e448a765321d0e622  gcc/testsuite/g++.target/aarch64/pr94514.C
*************** af40dade74feb71f52277a623af87930  gcc/te
*** 32568,32577 ****
  716e0dc0f2b0b7fa20373a1a78ece033  gcc/testsuite/g++.target/aarch64/pr95726.C
  1ce9a3af843eab0dca2dbb5193fb0db2  gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C
  1649b9447d9bcb87e619e52bd2ad8119  gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C
! 3f3bba8a186e82e1bd1f9ee32fb65820  gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
  a6360472eed92aa68d9de7e0dcbbc077  gcc/testsuite/g++.target/aarch64/sve/abd_1.C
! f2bcd162e408cdc37b1cd21ba8fe8efe  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! 164b509945fdbc4a3790bff8c11a7c8e  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
  a4694db6f43496d141f7d03b0bad5454  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_1.C
  c9bec53dca7f345d3812bc87a82ac56e  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_1.h
  c264d7575a5c60660881b415fc9e52ba  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_2.C
--- 34558,34576 ----
  716e0dc0f2b0b7fa20373a1a78ece033  gcc/testsuite/g++.target/aarch64/pr95726.C
  1ce9a3af843eab0dca2dbb5193fb0db2  gcc/testsuite/g++.target/aarch64/return_address_sign_ab_exception.C
  1649b9447d9bcb87e619e52bd2ad8119  gcc/testsuite/g++.target/aarch64/return_address_sign_b_exception.C
! 9c4fecbe2d2cee96685a3512c97d13a1  gcc/testsuite/g++.target/aarch64/sme/aarch64-sme-acle-asm.exp
! 9bc4378bb4b7e82cfeba2d15e0421591  gcc/testsuite/g++.target/aarch64/sme/aarch64-sme.exp
! 3de0947a17512aedda9a0acc7bcb39ed  gcc/testsuite/g++.target/aarch64/sme/exceptions_1.C
! 79243c6f16baddd2d73325ca3aa928e2  gcc/testsuite/g++.target/aarch64/sme/exceptions_2.C
! 6617c08f1c35a7b00949b2a7c76d1e15  gcc/testsuite/g++.target/aarch64/sme/keyword_macros_1.C
! 7c9f331f9af372aa80eabfedf84ae4d1  gcc/testsuite/g++.target/aarch64/sme/streaming_mode_1.C
! 7fce27ec45311cf4d170ad324de8da10  gcc/testsuite/g++.target/aarch64/sme/streaming_mode_2.C
! c5a724ac5d50e2883deaaee052d9855e  gcc/testsuite/g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp
! f35ce73c8457468f115da361f25bc455  gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp
! 39bf604f3d2280bd3c04473193fb26a5  gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
  a6360472eed92aa68d9de7e0dcbbc077  gcc/testsuite/g++.target/aarch64/sve/abd_1.C
! e1a3acb34dab385adec66961b6022416  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! 70fa3921474649ba7eb56e21723e31a3  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
  a4694db6f43496d141f7d03b0bad5454  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_1.C
  c9bec53dca7f345d3812bc87a82ac56e  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_1.h
  c264d7575a5c60660881b415fc9e52ba  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/add_2.C
*************** abc4cb6342d7db1af9ab92b839db6655  gcc/te
*** 32597,32606 ****
  399ddaba6427c03f08b5c60c5e4c01b7  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_1.c
  a567bcb18bbf38787cb18058e0ebc969  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_2.c
  eaa59b2794f19d1b31f51082d034a192  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_3.c
! a8f787fd1ec7ddbbee8caef7bc2191cc  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_4.c
! 3e66604be2edc9cf8bd1687e9231cbab  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_5.c
  f41b660213f9fa5c5b993beb3809ced0  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_6.c
! efb9d598a091a766a1a72e90fe26f1a7  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_7.c
  26a8bc322f66e26bb105f0fa16c5dff2  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get2_1.C
  3bad77a457986c6366fc9eeed3248e40  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get2_2.C
  6ebb8e027a1ae6ccae7e79f62d12295c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get3_1.C
--- 34596,34605 ----
  399ddaba6427c03f08b5c60c5e4c01b7  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_1.c
  a567bcb18bbf38787cb18058e0ebc969  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_2.c
  eaa59b2794f19d1b31f51082d034a192  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_3.c
! 30757b5b42c7bb5b84eaf44473ca79ae  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_4.c
! cde2346454f4a962eaa9e2762344e0a8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_5.c
  f41b660213f9fa5c5b993beb3809ced0  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_6.c
! e9579d2bc6d6d0ba86b301b2de90edc7  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/func_redef_7.c
  26a8bc322f66e26bb105f0fa16c5dff2  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get2_1.C
  3bad77a457986c6366fc9eeed3248e40  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get2_2.C
  6ebb8e027a1ae6ccae7e79f62d12295c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/get3_1.C
*************** bf079e3eef75eeeac3ff827b3a8624f0  gcc/te
*** 32614,32622 ****
  080af5a2a0700b55236617c1664d8616  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_4.C
  8e22ba35c57dee2de3fb760d237e58d8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/lsl_wide_1.C
  d28dd1409891eabe4b8db56809af8535  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/lsl_wide_2.C
! 185e81fbc80397a7939ff1792096ac66  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_1.C
  2323815da83fe3b75dcd4e7e9e174f69  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_10.C
! 909e1853afb321cb025393f8daab87ca  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_2.C
  aa5ae7dedc3137f2bc59209d71b89d2c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_3.C
  aca4d0c6e319097278c90dee3556a543  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_4.C
  fe57505c46b08e38df135a955ead2a35  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_5.C
--- 34613,34621 ----
  080af5a2a0700b55236617c1664d8616  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_4.C
  8e22ba35c57dee2de3fb760d237e58d8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/lsl_wide_1.C
  d28dd1409891eabe4b8db56809af8535  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/lsl_wide_2.C
! 90c4caae69f11d70945900a8ac0c67d9  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_1.C
  2323815da83fe3b75dcd4e7e9e174f69  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_10.C
! 67f7897db03ad439dc5262840610a248  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_2.C
  aa5ae7dedc3137f2bc59209d71b89d2c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_3.C
  aca4d0c6e319097278c90dee3556a543  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_4.C
  fe57505c46b08e38df135a955ead2a35  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_5.C
*************** f6b082767289902da5b51e2ea99eaec8  gcc/te
*** 32631,32636 ****
--- 34630,34636 ----
  8839c0294dd9b4f02061f7ccec0155d0  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/set3_2.C
  f948ce0d4740d47197d2a7ecac1ef831  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/set4_1.C
  ecb3597f101e2673e21ba02eaa395815  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/set4_2.C
+ fa5e83f89b6f2a3c984c9481e39db16c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/svcount_1.C
  7b6a008db87cc2f429ad09a2de9f0001  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/type_redef_1.c
  5638adba83295d016410bd89da9975c8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/type_redef_10.c
  8c2b4cdd9e1ea169f659b45a8b6705c8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/type_redef_11.c
*************** d4ca4a940822b140b8a1ada40f4e60af  gcc/te
*** 32708,32721 ****
  6979d0ef19d61a437acf8559362a5af8  gcc/testsuite/g++.target/aarch64/sve/pr99813.C
  eb290283439217e61bf7146ea947386f  gcc/testsuite/g++.target/aarch64/sve/static-var-in-template.C
  221b0724e04f13318fe418921311ae33  gcc/testsuite/g++.target/aarch64/sve/tls_2.C
! 7d111b2af4cdd362d19027877d6ff20b  gcc/testsuite/g++.target/aarch64/sve/vcond_1.C
  aa928203aafdb1f6793fe73d77390fc9  gcc/testsuite/g++.target/aarch64/sve/vcond_1_run.C
! 55af7fc5f0e1638b09d950cbdd5d53ca  gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! 1c3a0ba840e20c61644cff72f913fa82  gcc/testsuite/g++.target/arm/arm.exp
  99b5cde1aa5ba8d3c40ce3af92ef40f5  gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C
  e64278e516f7ebae5481e326b54f28dd  gcc/testsuite/g++.target/arm/cde_mve.C
  817f6b8bbc13fc92c8ffbe3bcaf7963d  gcc/testsuite/g++.target/arm/interference.C
! 5ae1654fe16dc1025119c40ebe0adba4  gcc/testsuite/g++.target/arm/mve.exp
  fefb1ea34abe2e49510cd8293f8c14e5  gcc/testsuite/g++.target/arm/no_unique_address_1.C
  bb7292912fa6d506586421d0df58412b  gcc/testsuite/g++.target/arm/no_unique_address_2.C
  191b23294c5891b3d18d01e5979a706f  gcc/testsuite/g++.target/arm/pac-1.C
--- 34708,34724 ----
  6979d0ef19d61a437acf8559362a5af8  gcc/testsuite/g++.target/aarch64/sve/pr99813.C
  eb290283439217e61bf7146ea947386f  gcc/testsuite/g++.target/aarch64/sve/static-var-in-template.C
  221b0724e04f13318fe418921311ae33  gcc/testsuite/g++.target/aarch64/sve/tls_2.C
! a107043aa6d78c7f248ca1ffca6ac183  gcc/testsuite/g++.target/aarch64/sve/vcond_1.C
  aa928203aafdb1f6793fe73d77390fc9  gcc/testsuite/g++.target/aarch64/sve/vcond_1_run.C
! ea5d8d5501446dd496c6d4e48d4daa3a  gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! 1ad0b299831e6087899f585d670f1b10  gcc/testsuite/g++.target/arm/arm.exp
  99b5cde1aa5ba8d3c40ce3af92ef40f5  gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C
+ 1be043d5daf902730f5c770ee4bbe8f1  gcc/testsuite/g++.target/arm/bti_thunk.C
  e64278e516f7ebae5481e326b54f28dd  gcc/testsuite/g++.target/arm/cde_mve.C
  817f6b8bbc13fc92c8ffbe3bcaf7963d  gcc/testsuite/g++.target/arm/interference.C
! 6d63d1caa83914a419a43483efbf308d  gcc/testsuite/g++.target/arm/mve.exp
! 903873830d006192cee8a7147405dfab  gcc/testsuite/g++.target/arm/mve/general-c++/nomve_fp_1.c
! 173a3784153178b563544bb404ea5d2c  gcc/testsuite/g++.target/arm/mve/general-c++/vreinterpretq_1.C
  fefb1ea34abe2e49510cd8293f8c14e5  gcc/testsuite/g++.target/arm/no_unique_address_1.C
  bb7292912fa6d506586421d0df58412b  gcc/testsuite/g++.target/arm/no_unique_address_2.C
  191b23294c5891b3d18d01e5979a706f  gcc/testsuite/g++.target/arm/pac-1.C
*************** c174ff7705931b0de0e317387956baa9  gcc/te
*** 32748,32771 ****
  989085cee5b240a6124a1eb805392cfd  gcc/testsuite/g++.target/i386/avx512vl-pr96246-2.C
  4b4064fa7873d4cb7157ac2a64b60aa1  gcc/testsuite/g++.target/i386/avx512vl-pr98537-1.C
  6fb49c93f0095a942a2bf1dd276425d5  gcc/testsuite/g++.target/i386/avx512vl-pr98537-2.C
! 2d64a3afc50933646d007d62c1909ff4  gcc/testsuite/g++.target/i386/bfloat_cpp_typecheck.C
  7a33fea3b2ecb10736e762b211f6ae42  gcc/testsuite/g++.target/i386/crc32-4.C
  ea7a625a5c087724f70333c1b6ad80fc  gcc/testsuite/g++.target/i386/empty-class1.C
  5c480abcec0d76095612ae8099a7315e  gcc/testsuite/g++.target/i386/empty-class2.C
  45bc018f249f4f97e104fe727aaae825  gcc/testsuite/g++.target/i386/excess-precision-1.C
  59319b76414fe2119e4d593b49456c83  gcc/testsuite/g++.target/i386/excess-precision-10.C
  d91b252793a0b04f4668191000679cc7  gcc/testsuite/g++.target/i386/excess-precision-11.C
! 835daa34288d20c58165e4272e741e24  gcc/testsuite/g++.target/i386/excess-precision-12.C
  5807ce1840c49f4392656d581d36d55e  gcc/testsuite/g++.target/i386/excess-precision-2.C
  2624bf5568ae8ff45b560511aac8f6de  gcc/testsuite/g++.target/i386/excess-precision-3.C
  ce8e2501180e952788ad7bfbfebcd617  gcc/testsuite/g++.target/i386/excess-precision-4.C
  2074f12169b00cb50c5b05916c02713b  gcc/testsuite/g++.target/i386/excess-precision-5.C
  2c47cb7ec62489e252ef2aa1520d9f23  gcc/testsuite/g++.target/i386/excess-precision-6.C
  994c5982d16213d6d84e4b1880ce3d1b  gcc/testsuite/g++.target/i386/excess-precision-8.C
! 6c49e319045e20c829295cb8999eef61  gcc/testsuite/g++.target/i386/float16-1.C
  9925d7b9c6c837b57951d0f9591f8d67  gcc/testsuite/g++.target/i386/float16-2.C
  4e150fddd678b3b96442fa875ac8becb  gcc/testsuite/g++.target/i386/float16-3.C
! 82b75f592bce87de9fae85092e0e0366  gcc/testsuite/g++.target/i386/i386.exp
  f23b91fd4df934b4b8cb89c14e082b05  gcc/testsuite/g++.target/i386/interference.C
  0ec10c6dd8c46db7332b15201fba84ba  gcc/testsuite/g++.target/i386/m128-check.h
  a1f73425439294ed2e5c470eb6a67f31  gcc/testsuite/g++.target/i386/m256-check.h
--- 34751,34774 ----
  989085cee5b240a6124a1eb805392cfd  gcc/testsuite/g++.target/i386/avx512vl-pr96246-2.C
  4b4064fa7873d4cb7157ac2a64b60aa1  gcc/testsuite/g++.target/i386/avx512vl-pr98537-1.C
  6fb49c93f0095a942a2bf1dd276425d5  gcc/testsuite/g++.target/i386/avx512vl-pr98537-2.C
! faaf8cb88bea0613c5676fb7a19296ed  gcc/testsuite/g++.target/i386/bfloat_cpp_typecheck.C
  7a33fea3b2ecb10736e762b211f6ae42  gcc/testsuite/g++.target/i386/crc32-4.C
  ea7a625a5c087724f70333c1b6ad80fc  gcc/testsuite/g++.target/i386/empty-class1.C
  5c480abcec0d76095612ae8099a7315e  gcc/testsuite/g++.target/i386/empty-class2.C
  45bc018f249f4f97e104fe727aaae825  gcc/testsuite/g++.target/i386/excess-precision-1.C
  59319b76414fe2119e4d593b49456c83  gcc/testsuite/g++.target/i386/excess-precision-10.C
  d91b252793a0b04f4668191000679cc7  gcc/testsuite/g++.target/i386/excess-precision-11.C
! 5c721455e912c8f1186abc0878852257  gcc/testsuite/g++.target/i386/excess-precision-12.C
  5807ce1840c49f4392656d581d36d55e  gcc/testsuite/g++.target/i386/excess-precision-2.C
  2624bf5568ae8ff45b560511aac8f6de  gcc/testsuite/g++.target/i386/excess-precision-3.C
  ce8e2501180e952788ad7bfbfebcd617  gcc/testsuite/g++.target/i386/excess-precision-4.C
  2074f12169b00cb50c5b05916c02713b  gcc/testsuite/g++.target/i386/excess-precision-5.C
  2c47cb7ec62489e252ef2aa1520d9f23  gcc/testsuite/g++.target/i386/excess-precision-6.C
  994c5982d16213d6d84e4b1880ce3d1b  gcc/testsuite/g++.target/i386/excess-precision-8.C
! d8ba4090976aa85f574f622bc3ac9d1f  gcc/testsuite/g++.target/i386/float16-1.C
  9925d7b9c6c837b57951d0f9591f8d67  gcc/testsuite/g++.target/i386/float16-2.C
  4e150fddd678b3b96442fa875ac8becb  gcc/testsuite/g++.target/i386/float16-3.C
! c038ffe80081ef9b3b64300150bd14b9  gcc/testsuite/g++.target/i386/i386.exp
  f23b91fd4df934b4b8cb89c14e082b05  gcc/testsuite/g++.target/i386/interference.C
  0ec10c6dd8c46db7332b15201fba84ba  gcc/testsuite/g++.target/i386/m128-check.h
  a1f73425439294ed2e5c470eb6a67f31  gcc/testsuite/g++.target/i386/m256-check.h
*************** d7d81744846ecefe8f7677db1eb870be  gcc/te
*** 32778,32784 ****
  7bd56e010086961d6b148fa238972ab3  gcc/testsuite/g++.target/i386/mv13.C
  51ba34bcfd4aa85e44bfffe933c6081a  gcc/testsuite/g++.target/i386/mv14.C
  fd2faa1ce293884909e71ac1de0fa72f  gcc/testsuite/g++.target/i386/mv15.C
! 157b69bb17cb7ac61b5b606ab387f562  gcc/testsuite/g++.target/i386/mv16.C
  5d29a5380a7809fd409e2a8fbce62e46  gcc/testsuite/g++.target/i386/mv17.C
  fefb95a7923263c40f6ccbf9f5345d5e  gcc/testsuite/g++.target/i386/mv18.C
  2020e957a2dbc426e1e4a2974db97293  gcc/testsuite/g++.target/i386/mv19.C
--- 34781,34787 ----
  7bd56e010086961d6b148fa238972ab3  gcc/testsuite/g++.target/i386/mv13.C
  51ba34bcfd4aa85e44bfffe933c6081a  gcc/testsuite/g++.target/i386/mv14.C
  fd2faa1ce293884909e71ac1de0fa72f  gcc/testsuite/g++.target/i386/mv15.C
! f5cb04bcf2fd8009dd6e02d7537d09c9  gcc/testsuite/g++.target/i386/mv16.C
  5d29a5380a7809fd409e2a8fbce62e46  gcc/testsuite/g++.target/i386/mv17.C
  fefb95a7923263c40f6ccbf9f5345d5e  gcc/testsuite/g++.target/i386/mv18.C
  2020e957a2dbc426e1e4a2974db97293  gcc/testsuite/g++.target/i386/mv19.C
*************** bc255ba4628b94d5377f0ba915ad26da  gcc/te
*** 32792,32802 ****
  c3abd0fb44ca490064aaa6988814d40c  gcc/testsuite/g++.target/i386/mv26.C
  203c2fb05767e713a362682a2dcedfc7  gcc/testsuite/g++.target/i386/mv27.C
  015182fced49b5ec2160104b1e1fcfd5  gcc/testsuite/g++.target/i386/mv28.C
! 3dc8383e8aa0e822e68ee82dc2cbbc5f  gcc/testsuite/g++.target/i386/mv29.C
  bad9a677892adffe2c45653797aad55c  gcc/testsuite/g++.target/i386/mv3.C
  8e16cb4ef8b3ee3b728e21112c7331d1  gcc/testsuite/g++.target/i386/mv30.C
  6c2437562ef96defbdcf21aa49f5676f  gcc/testsuite/g++.target/i386/mv31.C
! c28bc9a98901e25a1c14b424b4f4c48d  gcc/testsuite/g++.target/i386/mv32.C
  253207ecb3f4d04076efa9253026fa4c  gcc/testsuite/g++.target/i386/mv4.C
  dc39143004995c38b524d1b929c9c96c  gcc/testsuite/g++.target/i386/mv5.C
  01094409b78d48ec67bbf367448ecc93  gcc/testsuite/g++.target/i386/mv6.C
--- 34795,34805 ----
  c3abd0fb44ca490064aaa6988814d40c  gcc/testsuite/g++.target/i386/mv26.C
  203c2fb05767e713a362682a2dcedfc7  gcc/testsuite/g++.target/i386/mv27.C
  015182fced49b5ec2160104b1e1fcfd5  gcc/testsuite/g++.target/i386/mv28.C
! f1dcd0f047238a664c71844662594d0b  gcc/testsuite/g++.target/i386/mv29.C
  bad9a677892adffe2c45653797aad55c  gcc/testsuite/g++.target/i386/mv3.C
  8e16cb4ef8b3ee3b728e21112c7331d1  gcc/testsuite/g++.target/i386/mv30.C
  6c2437562ef96defbdcf21aa49f5676f  gcc/testsuite/g++.target/i386/mv31.C
! 1bfb9714d97d8fcf6000bd7c6408fb63  gcc/testsuite/g++.target/i386/mv32.C
  253207ecb3f4d04076efa9253026fa4c  gcc/testsuite/g++.target/i386/mv4.C
  dc39143004995c38b524d1b929c9c96c  gcc/testsuite/g++.target/i386/mv5.C
  01094409b78d48ec67bbf367448ecc93  gcc/testsuite/g++.target/i386/mv6.C
*************** dc39143004995c38b524d1b929c9c96c  gcc/te
*** 32804,32812 ****
  c2d5d87b3488ab338dcccb9091181331  gcc/testsuite/g++.target/i386/mv8.C
  95cfb2367a4c0ee22bbee8a3f260ef2f  gcc/testsuite/g++.target/i386/mv9.C
  4eea29b6b7fb566bfa08715f978dc08b  gcc/testsuite/g++.target/i386/mvc1.C
! cc57ca4fd9c378f13126f05fd23d44f9  gcc/testsuite/g++.target/i386/mvc2.C
! 5770edbad8bcf6303a34e5d14d63a98d  gcc/testsuite/g++.target/i386/mvc3.C
  4b58a8b362895e2d3227500db9f7df3f  gcc/testsuite/g++.target/i386/mvc4.C
  9a0d428fd560d4c3147d5fbc1f53faf7  gcc/testsuite/g++.target/i386/pr100581.C
  e0917eeb573b58e334ffa0538638b3a0  gcc/testsuite/g++.target/i386/pr100637-1b.C
  b0cba5b3c1e414b000bad882628ff2ed  gcc/testsuite/g++.target/i386/pr100637-1w.C
--- 34807,34816 ----
  c2d5d87b3488ab338dcccb9091181331  gcc/testsuite/g++.target/i386/mv8.C
  95cfb2367a4c0ee22bbee8a3f260ef2f  gcc/testsuite/g++.target/i386/mv9.C
  4eea29b6b7fb566bfa08715f978dc08b  gcc/testsuite/g++.target/i386/mvc1.C
! d6311a7425b0ffbce5c97b4589a89b54  gcc/testsuite/g++.target/i386/mvc2.C
! 3d6e618a583f6dcb9bd35e6148518988  gcc/testsuite/g++.target/i386/mvc3.C
  4b58a8b362895e2d3227500db9f7df3f  gcc/testsuite/g++.target/i386/mvc4.C
+ f54715b69e94d57745e9643d09b61df1  gcc/testsuite/g++.target/i386/part-vect-vcondhf.C
  9a0d428fd560d4c3147d5fbc1f53faf7  gcc/testsuite/g++.target/i386/pr100581.C
  e0917eeb573b58e334ffa0538638b3a0  gcc/testsuite/g++.target/i386/pr100637-1b.C
  b0cba5b3c1e414b000bad882628ff2ed  gcc/testsuite/g++.target/i386/pr100637-1w.C
*************** e10a0652aff7df3b5d31aabc5b83fc4e  gcc/te
*** 32868,32879 ****
--- 34872,34895 ----
  67d8378f149029e8703f825a6227065a  gcc/testsuite/g++.target/i386/pr108711.C
  198bde5a37731f00084d791cde389e8b  gcc/testsuite/g++.target/i386/pr108934.C
  2a4ccb802022f75d63eec8145d6f1f29  gcc/testsuite/g++.target/i386/pr109676.C
+ 393e85e87cdfc4b9fb1ff5c320ec0d91  gcc/testsuite/g++.target/i386/pr110170.C
+ a47169fc44b57b7b3d6ec05df74c336a  gcc/testsuite/g++.target/i386/pr110792.C
+ ad4c12cbdeae1f798d84fc1e51955bc4  gcc/testsuite/g++.target/i386/pr111497.C
+ 51556317586878910157bab09d18703d  gcc/testsuite/g++.target/i386/pr111822.C
+ f0bd5d5c6a67d4e72ffa0abde025c525  gcc/testsuite/g++.target/i386/pr112443.C
+ 5d6b65e74ad6d774f3c3ba927501e59d  gcc/testsuite/g++.target/i386/pr112824-1.C
+ 5571ccf83a637118ffbd77008f68ffc1  gcc/testsuite/g++.target/i386/pr112904.C
+ 625edab04fa23d61cbbe8b32e8624b41  gcc/testsuite/g++.target/i386/pr113560.C
+ aa1fa5c91fdecbdc2a47df1fff1bf867  gcc/testsuite/g++.target/i386/pr114187.C
+ c0a91cb95c28284467d6172e3d18f9a2  gcc/testsuite/g++.target/i386/pr114810.C
  55fb67abf6517f92b1a0240d2c06b5c5  gcc/testsuite/g++.target/i386/pr35513-1.C
  14dde546e4eefec7aa6d1ac41261cb16  gcc/testsuite/g++.target/i386/pr35513-2.C
  1c706f97b6d93c0124dc4a203c98f6d2  gcc/testsuite/g++.target/i386/pr57362.C
  db3c3a9d9f798eff6348f0813dccc376  gcc/testsuite/g++.target/i386/pr57548.C
  e8a006e5050e191010d1a6ecff4873a3  gcc/testsuite/g++.target/i386/pr58372.C
  a9182e6d928d363b56a91bded6231bb9  gcc/testsuite/g++.target/i386/pr59492.C
+ 43859c370dc310a07fe27e045648c6cd  gcc/testsuite/g++.target/i386/pr61747.C
+ 012e05b29975321373f213709028cdd2  gcc/testsuite/g++.target/i386/pr79173-1.C
  4ec9a5753441130dc533fd918508a7c7  gcc/testsuite/g++.target/i386/pr80566-1.C
  86d74fadde941f269d85c201b35ecf20  gcc/testsuite/g++.target/i386/pr80566-2.C
  819ecf07fe897248c2153cdb9dee2292  gcc/testsuite/g++.target/i386/pr82625.C
*************** a9182e6d928d363b56a91bded6231bb9  gcc/te
*** 32882,32893 ****
--- 34898,34912 ----
  83ee00a9e7a064242ad6f43457dfa886  gcc/testsuite/g++.target/i386/pr85329.C
  7eeddec0420d9a51d61e3c4c9be6d594  gcc/testsuite/g++.target/i386/pr85334-1.C
  5721d1e0778ed4e6cfb2c0ec826eac4c  gcc/testsuite/g++.target/i386/pr85334-2.C
+ e39ce20fb6740b051ab3ab6677fa1d98  gcc/testsuite/g++.target/i386/pr87299-1.C
+ db4e39ddff19e7c7c94ce6bcf3f8d05c  gcc/testsuite/g++.target/i386/pr87299-2.C
  64e5aae7c0b5f4496c111c1ea220cc12  gcc/testsuite/g++.target/i386/pr88152.C
  aed6e5e76d30c7296815bcff247c5b1d  gcc/testsuite/g++.target/i386/pr88587.C
  69ffb8145d9e913332fee168bb43ffef  gcc/testsuite/g++.target/i386/pr88636.C
  8f56043123a282d1dc4be518a19a6696  gcc/testsuite/g++.target/i386/pr88785.C
  1ddc9bacc27eb449c9bc8f0b3034db52  gcc/testsuite/g++.target/i386/pr88998.C
  8ee9a51e8ef3a8d3fafbe808d7afe49b  gcc/testsuite/g++.target/i386/pr89105.C
+ a77db4384baaa525af8995a7932cd034  gcc/testsuite/g++.target/i386/pr89316.C
  e42b1e4bae5852d02674a9f5a44931b3  gcc/testsuite/g++.target/i386/pr89630.C
  e8d8678f29554250ac24dbb0b0a65e98  gcc/testsuite/g++.target/i386/pr89650.C
  6a8ecb5087f6e681c993119a988900ef  gcc/testsuite/g++.target/i386/pr90187.C
*************** ce4ef4a52cb8cca61d3ad37ccd43c5c3  gcc/te
*** 32902,32907 ****
--- 34921,34927 ----
  706d6ce9a5089e7aa1faffbd83f7723b  gcc/testsuite/g++.target/i386/pr94046-1.C
  9d95623392a0cfa69554963dbae983f2  gcc/testsuite/g++.target/i386/pr94046-2.C
  ba6d7ab9bcf9d2c19d1b8ac3ed405800  gcc/testsuite/g++.target/i386/pr94185.C
+ bb6e47e037c6eb9a5503116730814d59  gcc/testsuite/g++.target/i386/pr94866.C
  64e33a95d43ea5ee0af2cfdcb318bf00  gcc/testsuite/g++.target/i386/pr95229.C
  bdb455b2331ad2932c1fc9e92219df39  gcc/testsuite/g++.target/i386/pr97054.C
  d000551f0144506c6c541d980aa84d65  gcc/testsuite/g++.target/i386/pr98218-1.C
*************** a621b799eff193996043d9d5462e5c27  gcc/te
*** 32915,32931 ****
  05e47f652ea4bc7c8df9bae20aaaa2b4  gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C
  6d0d9132ecd5c558bd1ec20dcee32d5d  gcc/testsuite/g++.target/i386/vec-tmpl1.C
  d4dcded6122bb77c0450fd18568c030b  gcc/testsuite/g++.target/i386/vect-bfloat16-1.C
  580dcc09db78d63c393f7d3c75b38ada  gcc/testsuite/g++.target/loongarch/bytepick.C
! daf40cbe22c01f26a5655b3c8ce6f5a7  gcc/testsuite/g++.target/loongarch/loongarch.exp
  3e379ce66f2b5fd83481c50aad661033  gcc/testsuite/g++.target/loongarch/pr106096.C
  93be464703e23aa90bcb86e5faf6250d  gcc/testsuite/g++.target/loongarch/pr106828.C
  0326a0afb833c5dbd49b5d623c8dd93b  gcc/testsuite/g++.target/mips/cxx17_empty_base.C
! 57a6c9f80be13720acfbbdbeef414716  gcc/testsuite/g++.target/mips/mips.exp
  dcd3af289f36f150df28be99b5efc7ed  gcc/testsuite/g++.target/mips/pr102024.C
  436543179ef45c1a7c596bfa70c8ef1d  gcc/testsuite/g++.target/msp430/data-attributes.C
! a7c5e3a5228d3ef0c41fbf94725ca379  gcc/testsuite/g++.target/msp430/msp430.exp
  5848d6741a53192ff50fe53e91b24df1  gcc/testsuite/g++.target/nios2/hello-pie.C
! 6cf9aca3dbf405fb981dcfebae81a27b  gcc/testsuite/g++.target/nios2/nios2.exp
  866ae57bf40de984200cce23327a2675  gcc/testsuite/g++.target/powerpc/altivec-1.C
  b4f090ce0f4d5a698db06ef3858c0a8b  gcc/testsuite/g++.target/powerpc/altivec-10.C
  b42156baabeb4c76393e9c82a906d6ac  gcc/testsuite/g++.target/powerpc/altivec-11.C
--- 34935,34963 ----
  05e47f652ea4bc7c8df9bae20aaaa2b4  gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C
  6d0d9132ecd5c558bd1ec20dcee32d5d  gcc/testsuite/g++.target/i386/vec-tmpl1.C
  d4dcded6122bb77c0450fd18568c030b  gcc/testsuite/g++.target/i386/vect-bfloat16-1.C
+ 8df5f1183de744dc2a3a0c11278caec6  gcc/testsuite/g++.target/loongarch/atomic-cas-int.C
+ f8bc85022b7adc985d76ed2766575abb  gcc/testsuite/g++.target/loongarch/bstrins-compile.C
+ 3d24eccefdd318d1bf2770dde9f60a08  gcc/testsuite/g++.target/loongarch/bstrins-run.C
  580dcc09db78d63c393f7d3c75b38ada  gcc/testsuite/g++.target/loongarch/bytepick.C
! 3e98c3e373244fc322de192a26daa1fc  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-1.C
! 1569918169b163a9e6e0ed19b0336f2e  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-2.C
! dfaa547e8fb7df38c4d964cefef4b708  gcc/testsuite/g++.target/loongarch/cmodel-extreme-mi-thunk-3.C
! 5214c6c826b3d987e041fc28a0ba7a29  gcc/testsuite/g++.target/loongarch/got-load.C
! 73c620e4381452d87e16e3a0110f4413  gcc/testsuite/g++.target/loongarch/loongarch.exp
  3e379ce66f2b5fd83481c50aad661033  gcc/testsuite/g++.target/loongarch/pr106096.C
  93be464703e23aa90bcb86e5faf6250d  gcc/testsuite/g++.target/loongarch/pr106828.C
+ f13d97450413e73ef42096f6d86f33b9  gcc/testsuite/g++.target/loongarch/vect-copysign-negconst-run.C
+ 20d9436c682a4415acafb5c98046ba99  gcc/testsuite/g++.target/loongarch/vect-copysign-negconst.C
  0326a0afb833c5dbd49b5d623c8dd93b  gcc/testsuite/g++.target/mips/cxx17_empty_base.C
! 3cc39d3830e2ae020ff3397896837b16  gcc/testsuite/g++.target/mips/mips.exp
  dcd3af289f36f150df28be99b5efc7ed  gcc/testsuite/g++.target/mips/pr102024.C
  436543179ef45c1a7c596bfa70c8ef1d  gcc/testsuite/g++.target/msp430/data-attributes.C
! 7e17ead5717b38857874391e3e4c1c96  gcc/testsuite/g++.target/msp430/msp430.exp
  5848d6741a53192ff50fe53e91b24df1  gcc/testsuite/g++.target/nios2/hello-pie.C
! 6d24bc9cab62180feb891fd1182b2445  gcc/testsuite/g++.target/nios2/nios2.exp
! 8ef783bc1cb8c25df9c7d22a2af859eb  gcc/testsuite/g++.target/nvptx/abi-nrv1.C
! 1da1691da429c2dee8694a433e01b52a  gcc/testsuite/g++.target/nvptx/abi-ptrmem1.C
! e5e4fa89d7ae04c84f910c3f7073268c  gcc/testsuite/g++.target/nvptx/nvptx.exp
  866ae57bf40de984200cce23327a2675  gcc/testsuite/g++.target/powerpc/altivec-1.C
  b4f090ce0f4d5a698db06ef3858c0a8b  gcc/testsuite/g++.target/powerpc/altivec-10.C
  b42156baabeb4c76393e9c82a906d6ac  gcc/testsuite/g++.target/powerpc/altivec-11.C
*************** a4e096ed0dab9358413f64b1ae0f3131  gcc/te
*** 32936,32941 ****
--- 34968,34974 ----
  44ff306fe2c3a37c20e6d609d95bf3a4  gcc/testsuite/g++.target/powerpc/altivec-16.C
  0f5d326347940ec031d3fd5119be1160  gcc/testsuite/g++.target/powerpc/altivec-17.C
  8388b9f21951bbfa78d96488ec44e03f  gcc/testsuite/g++.target/powerpc/altivec-18.C
+ 223333a6601d309c1901498eb3181cf7  gcc/testsuite/g++.target/powerpc/altivec-19.C
  6a9b08511f4acfbbde92fc75cf25a6bc  gcc/testsuite/g++.target/powerpc/altivec-2.C
  c8a44f6657e28782a0d9ee917a7e73a6  gcc/testsuite/g++.target/powerpc/altivec-3.C
  04d5a6e0ef6cf6b17430721bd094fb87  gcc/testsuite/g++.target/powerpc/altivec-4.C
*************** ace1668590f04da8d87791b2b820e239  gcc/te
*** 32955,32981 ****
  672bbca6e5a2428df4bd9349a317ae28  gcc/testsuite/g++.target/powerpc/altivec-types-4.C
  e70f88144abfc6a69a1241301a9b5e68  gcc/testsuite/g++.target/powerpc/const2.C
  bd1c35be302338df14b1aa330813797d  gcc/testsuite/g++.target/powerpc/darwin-minversion-1.C
! 6b7d3a91025a24d70e7e6f509f59cd80  gcc/testsuite/g++.target/powerpc/powerpc.exp
  bafc15005abdfe9131f6074efde175eb  gcc/testsuite/g++.target/powerpc/ppc64-sighandle-cr.C
  ca310178fe7c147ffe915bbd9c124ee3  gcc/testsuite/g++.target/powerpc/pr101168.C
  a873678a5188427c7ceb88e3a408ce84  gcc/testsuite/g++.target/powerpc/pr101322.C
  bac7601eaf931ebd7c595a2dc9672d64  gcc/testsuite/g++.target/powerpc/pr102024.C
  52ec25547d922533a11b2b87bda1ef47  gcc/testsuite/g++.target/powerpc/pr105325.C
  a786ad78bd3d3301483d3f57c15f4634  gcc/testsuite/g++.target/powerpc/pr105485.C
! 2034aad446ec78a87b23d863575c1d87  gcc/testsuite/g++.target/powerpc/pr65240-1.C
! ee885d4799df9042b7bb7afcb3882d1e  gcc/testsuite/g++.target/powerpc/pr65240-2.C
! 9bd86a0f5ddd41ef7b331e42e57dcf66  gcc/testsuite/g++.target/powerpc/pr65240-3.C
  180cb7fcfd4966da44b92f60ec09c0c1  gcc/testsuite/g++.target/powerpc/pr65240-4.C
  ff90a96b0f5bda64aea35147770302e1  gcc/testsuite/g++.target/powerpc/pr65240.h
! 383dd26e2324b42f577a7d7cb32d7893  gcc/testsuite/g++.target/powerpc/pr65242.C
! 24381524fac7caec80af3531781d53b2  gcc/testsuite/g++.target/powerpc/pr67211.C
! bb774dd69ce8198cfbd44cb67a8fce65  gcc/testsuite/g++.target/powerpc/pr71294.C
  454b0f87867ea7aa84d83652eeff7620  gcc/testsuite/g++.target/powerpc/pr83660.C
  29c053c9691c1bec01703b8e94dfa7ca  gcc/testsuite/g++.target/powerpc/pr84264.C
! 6506b5d4622fca5aede450c8f7e5860a  gcc/testsuite/g++.target/powerpc/pr84279.C
  c6d8b59232f195f134f195c54026fd69  gcc/testsuite/g++.target/powerpc/pr85657.C
  9755e5a0fd101c2554c1d3cb3fa79a6c  gcc/testsuite/g++.target/powerpc/pr90259.C
! 68083424b21377a269cb1f4b7edce028  gcc/testsuite/g++.target/powerpc/pr93974.C
  63b698681e4a076eb88feccb3e6373df  gcc/testsuite/g++.target/powerpc/pr94707-1.C
  75c93ba90b3ca18a6d5c5264e2816651  gcc/testsuite/g++.target/powerpc/pr94707-2.C
  a63f2ade84bc38838f3986dfc4bc9d85  gcc/testsuite/g++.target/powerpc/pr94707-3.C
--- 34988,35019 ----
  672bbca6e5a2428df4bd9349a317ae28  gcc/testsuite/g++.target/powerpc/altivec-types-4.C
  e70f88144abfc6a69a1241301a9b5e68  gcc/testsuite/g++.target/powerpc/const2.C
  bd1c35be302338df14b1aa330813797d  gcc/testsuite/g++.target/powerpc/darwin-minversion-1.C
! 6a6dc8f9480751ca2b3fb6cebb16aeeb  gcc/testsuite/g++.target/powerpc/powerpc.exp
  bafc15005abdfe9131f6074efde175eb  gcc/testsuite/g++.target/powerpc/ppc64-sighandle-cr.C
  ca310178fe7c147ffe915bbd9c124ee3  gcc/testsuite/g++.target/powerpc/pr101168.C
  a873678a5188427c7ceb88e3a408ce84  gcc/testsuite/g++.target/powerpc/pr101322.C
  bac7601eaf931ebd7c595a2dc9672d64  gcc/testsuite/g++.target/powerpc/pr102024.C
  52ec25547d922533a11b2b87bda1ef47  gcc/testsuite/g++.target/powerpc/pr105325.C
  a786ad78bd3d3301483d3f57c15f4634  gcc/testsuite/g++.target/powerpc/pr105485.C
! ea50428d09d0e781698b21023398bfee  gcc/testsuite/g++.target/powerpc/pr110741.C
! 8ca0dcb511ad4423506f8f334a6092e7  gcc/testsuite/g++.target/powerpc/pr111366.C
! 92cbd869a66e265db57a505d568038a0  gcc/testsuite/g++.target/powerpc/pr111367.C
! d2c732bc509e2385a06f111c954c2700  gcc/testsuite/g++.target/powerpc/pr111828-1.C
! d573b767c2de9d8c280bc5d867cf8c50  gcc/testsuite/g++.target/powerpc/pr111828-2.C
! 9c74007c234a12d4c947bb4d6e55c63b  gcc/testsuite/g++.target/powerpc/pr65240-1.C
! 436918461ef83adf9e3f0a761f3eab86  gcc/testsuite/g++.target/powerpc/pr65240-2.C
! 1e1aa0282e8b112947082f2503881b91  gcc/testsuite/g++.target/powerpc/pr65240-3.C
  180cb7fcfd4966da44b92f60ec09c0c1  gcc/testsuite/g++.target/powerpc/pr65240-4.C
  ff90a96b0f5bda64aea35147770302e1  gcc/testsuite/g++.target/powerpc/pr65240.h
! 6021f137c3825b6d61a94c0dd8db9645  gcc/testsuite/g++.target/powerpc/pr65242.C
! 0bb06e3925c31ccdde723131951dac9e  gcc/testsuite/g++.target/powerpc/pr67211.C
! f6aa3029495bc112ac44057629d1de0f  gcc/testsuite/g++.target/powerpc/pr71294.C
  454b0f87867ea7aa84d83652eeff7620  gcc/testsuite/g++.target/powerpc/pr83660.C
  29c053c9691c1bec01703b8e94dfa7ca  gcc/testsuite/g++.target/powerpc/pr84264.C
! c8d07685a1972b4cddd635a8958b9ce2  gcc/testsuite/g++.target/powerpc/pr84279.C
  c6d8b59232f195f134f195c54026fd69  gcc/testsuite/g++.target/powerpc/pr85657.C
  9755e5a0fd101c2554c1d3cb3fa79a6c  gcc/testsuite/g++.target/powerpc/pr90259.C
! 2d57cbe3a723e0b235d20ff0cacb42cd  gcc/testsuite/g++.target/powerpc/pr93974.C
  63b698681e4a076eb88feccb3e6373df  gcc/testsuite/g++.target/powerpc/pr94707-1.C
  75c93ba90b3ca18a6d5c5264e2816651  gcc/testsuite/g++.target/powerpc/pr94707-2.C
  a63f2ade84bc38838f3986dfc4bc9d85  gcc/testsuite/g++.target/powerpc/pr94707-3.C
*************** fb915623fe5d0c1208c53c6de33e722a  gcc/te
*** 32998,33032 ****
  bda24fd764e95be6398892d48adf8be7  gcc/testsuite/g++.target/riscv/frflags.C
  4c45e102d6dd19ee08a476904b64542d  gcc/testsuite/g++.target/riscv/pr96759.C
  ac37e529bda1269045c3681cc4b425dd  gcc/testsuite/g++.target/riscv/pr97682.C
! 2f4366fc92a843022bf9cc8903dceb8e  gcc/testsuite/g++.target/riscv/riscv.exp
! f6e16583372329bd6bde0147a26cd404  gcc/testsuite/g++.target/riscv/rvv/base/bug-1.C
! 6ab45ab0541a43c239ecf0e7c427dc6b  gcc/testsuite/g++.target/riscv/rvv/base/bug-10.C
! 5eba5ac05d12b0e3e471a2fea20bb17e  gcc/testsuite/g++.target/riscv/rvv/base/bug-11.C
! 32900c8e77b2fd755c379bd1d88df622  gcc/testsuite/g++.target/riscv/rvv/base/bug-12.C
! 6fc61af31804fac26886073c6e13f1f7  gcc/testsuite/g++.target/riscv/rvv/base/bug-13.C
! 95c3932c982046814b2c7f9fa475fb74  gcc/testsuite/g++.target/riscv/rvv/base/bug-14.C
! 2fab97050dc1deba33670548bd6ccaf4  gcc/testsuite/g++.target/riscv/rvv/base/bug-15.C
! d2e40b3dbee3212c1c154d1dcb771367  gcc/testsuite/g++.target/riscv/rvv/base/bug-16.C
! c39be0597317abafaa3ddc8dd2bceaf8  gcc/testsuite/g++.target/riscv/rvv/base/bug-17.C
! cc9ebb50d390eb0de12a3eb2928b08e5  gcc/testsuite/g++.target/riscv/rvv/base/bug-18.C
! 79fba44ec0068581ec1074a18c8ee1dd  gcc/testsuite/g++.target/riscv/rvv/base/bug-19.C
! 08cceb8f28134f8a66a6545899368d86  gcc/testsuite/g++.target/riscv/rvv/base/bug-2.C
! a55d3efc7f95624e7979de502134f8cb  gcc/testsuite/g++.target/riscv/rvv/base/bug-20.C
! fb86a7339c2fdd23671a828022581a5a  gcc/testsuite/g++.target/riscv/rvv/base/bug-21.C
! 3eda6b16625ab3d827324a6abc1f4fd3  gcc/testsuite/g++.target/riscv/rvv/base/bug-22.C
! 0b0abae07b41d7bb2abcaeea44afae80  gcc/testsuite/g++.target/riscv/rvv/base/bug-23.C
! 6d97ed2240b9ec967f25c0b1cbfed95f  gcc/testsuite/g++.target/riscv/rvv/base/bug-3.C
! 28af4fcdf924027c69a0b97d00796678  gcc/testsuite/g++.target/riscv/rvv/base/bug-4.C
! 6bc5242b2bde29c30c2f745674caf5c0  gcc/testsuite/g++.target/riscv/rvv/base/bug-5.C
! 6e75d327923b9aeca4114cb44ad0d372  gcc/testsuite/g++.target/riscv/rvv/base/bug-6.C
! 5e90b3a53b87f54f55225d461b8ded29  gcc/testsuite/g++.target/riscv/rvv/base/bug-7.C
! 4c1f70ac8e545aacdda90aec07547d03  gcc/testsuite/g++.target/riscv/rvv/base/bug-8.C
! 13e04297880b27ff469b2278c95363ef  gcc/testsuite/g++.target/riscv/rvv/base/bug-9.C
  52fb0d5342b2dcbc51ecf7bc9b7daff3  gcc/testsuite/g++.target/riscv/rvv/base/exception-1.C
  33fe4f27a4106e9aec819d1ad6cea265  gcc/testsuite/g++.target/riscv/rvv/base/pr109244.C
  71cf9f616a0dcc2f3110d2537d0ee191  gcc/testsuite/g++.target/riscv/rvv/base/pr109535.C
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/g++.target/riscv/rvv/base/riscv_vector.h
! 3da111ba64e80745aed9b3ae6219fd0f  gcc/testsuite/g++.target/riscv/rvv/rvv.exp
  74f02d12b4213817c3460e1eebfa9eae  gcc/testsuite/g++.target/s390/mi-thunk.C
  93b786c04aacd9a92606e85c55410461  gcc/testsuite/g++.target/s390/pr100281-1.C
  4b5a44a1819e9404a2b1305798c19846  gcc/testsuite/g++.target/s390/pr100281-2.C
--- 35036,35078 ----
  bda24fd764e95be6398892d48adf8be7  gcc/testsuite/g++.target/riscv/frflags.C
  4c45e102d6dd19ee08a476904b64542d  gcc/testsuite/g++.target/riscv/pr96759.C
  ac37e529bda1269045c3681cc4b425dd  gcc/testsuite/g++.target/riscv/pr97682.C
! 2a9c6586ee584715fe05091ad7b38284  gcc/testsuite/g++.target/riscv/riscv.exp
! 33bc1e793360d958223c97bd0dd123ad  gcc/testsuite/g++.target/riscv/rvv/autovec/bug-1.C
! bbffb78a05c981886c82c4d7bb1ab46a  gcc/testsuite/g++.target/riscv/rvv/autovec/bug-2.C
! b073f099736b28c243e723ac86cb8fd5  gcc/testsuite/g++.target/riscv/rvv/base/attribute-riscv_vector_cc-error.C
! 1b1bc5039f56e1bab95c9773c435167c  gcc/testsuite/g++.target/riscv/rvv/base/bug-1.C
! a9f8f7f709e90bb091acda48cbbacae5  gcc/testsuite/g++.target/riscv/rvv/base/bug-10.C
! 97d97cf535ac0cb743ec6fd73751f129  gcc/testsuite/g++.target/riscv/rvv/base/bug-11.C
! 8c92c6d7687d5639f6a7ec9ab2bbd3c9  gcc/testsuite/g++.target/riscv/rvv/base/bug-12.C
! dbb7fdc0b05878f7e0ccd7a16428b3ac  gcc/testsuite/g++.target/riscv/rvv/base/bug-13.C
! ba97c61913e93b734f51ad8dbfa9ec20  gcc/testsuite/g++.target/riscv/rvv/base/bug-14.C
! 893c0abf462f46eb605d9b0b78db9ea5  gcc/testsuite/g++.target/riscv/rvv/base/bug-15.C
! b6e9fc8d533bca4081cec66125991dff  gcc/testsuite/g++.target/riscv/rvv/base/bug-16.C
! d5e74fe577d9103126c9b69f39913b8e  gcc/testsuite/g++.target/riscv/rvv/base/bug-17.C
! 1161e424273cc9d3e514f033d34f9861  gcc/testsuite/g++.target/riscv/rvv/base/bug-18.C
! cb1f86abc385aec2286e503ef46a48e0  gcc/testsuite/g++.target/riscv/rvv/base/bug-19.C
! 1007d2e0269decb78c01e2b76cc6986e  gcc/testsuite/g++.target/riscv/rvv/base/bug-2.C
! 63275b6972650f8e8d2e61dc23766d49  gcc/testsuite/g++.target/riscv/rvv/base/bug-20.C
! 5d9473ea1d4945475937817dd7e48a0f  gcc/testsuite/g++.target/riscv/rvv/base/bug-21.C
! 4a98d8f6cafe33b976f6645b3542270f  gcc/testsuite/g++.target/riscv/rvv/base/bug-22.C
! 302a025c132540fe93d98433ec5074f9  gcc/testsuite/g++.target/riscv/rvv/base/bug-23.C
! 2c9cbdcd1a64289ee969ee2082587492  gcc/testsuite/g++.target/riscv/rvv/base/bug-3.C
! bc05dcacc47c667f18b7e139543a941d  gcc/testsuite/g++.target/riscv/rvv/base/bug-4.C
! e6d394efcdc185c7fa8f55225ba55a22  gcc/testsuite/g++.target/riscv/rvv/base/bug-5.C
! 74931d30f314dec5a5a91d3bd9dbb8a0  gcc/testsuite/g++.target/riscv/rvv/base/bug-6.C
! cb2b5469f62604a8e4e726399f523ff8  gcc/testsuite/g++.target/riscv/rvv/base/bug-7.C
! f5e68802fc05a6fd1f11481e8a18cf0f  gcc/testsuite/g++.target/riscv/rvv/base/bug-8.C
! fc0ce518453148de9582d1ac8c2f1c5f  gcc/testsuite/g++.target/riscv/rvv/base/bug-9.C
  52fb0d5342b2dcbc51ecf7bc9b7daff3  gcc/testsuite/g++.target/riscv/rvv/base/exception-1.C
  33fe4f27a4106e9aec819d1ad6cea265  gcc/testsuite/g++.target/riscv/rvv/base/pr109244.C
  71cf9f616a0dcc2f3110d2537d0ee191  gcc/testsuite/g++.target/riscv/rvv/base/pr109535.C
+ 9f1154ff11dc2e3e63faf1146891a328  gcc/testsuite/g++.target/riscv/rvv/base/pr111296.C
+ 4508daf9f8ca24d9229ec2c2d5c69c81  gcc/testsuite/g++.target/riscv/rvv/base/pr114639-1.C
+ a6a5d652323c20e5b2bbc8ea9dc8f4d7  gcc/testsuite/g++.target/riscv/rvv/base/pr114714-1.C
+ 49cbe2dffc749d3ef1398685b035f4c9  gcc/testsuite/g++.target/riscv/rvv/base/pr114714-2.C
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/g++.target/riscv/rvv/base/riscv_vector.h
! 4a272ef5d4099af064913acf6b4054db  gcc/testsuite/g++.target/riscv/rvv/rvv.exp
! 737eebb4901981753937ddcc65184708  gcc/testsuite/g++.target/s390/atomic-align-1.C
  74f02d12b4213817c3460e1eebfa9eae  gcc/testsuite/g++.target/s390/mi-thunk.C
  93b786c04aacd9a92606e85c55410461  gcc/testsuite/g++.target/s390/pr100281-1.C
  4b5a44a1819e9404a2b1305798c19846  gcc/testsuite/g++.target/s390/pr100281-2.C
*************** f536562eba9a9954ace3a616ac52f438  gcc/te
*** 33041,33049 ****
  673a3b45283bd1b872f1b198781a14a3  gcc/testsuite/g++.target/s390/pr94704-3.C
  0a3c74a94606c9870a40fec1d0577aa8  gcc/testsuite/g++.target/s390/pr94704-4.C
  c0aa169f53b6c831c9c42b449fec63b6  gcc/testsuite/g++.target/s390/pr98722.C
! 7b4d23389a5196e7602fcd5300cebdc6  gcc/testsuite/g++.target/s390/s390.exp
  9ec75dfed03d43e4480e98ac02f604a7  gcc/testsuite/g++.target/xtensa/pr95571.C
! 7370e155147e68072cf0b8396660f623  gcc/testsuite/g++.target/xtensa/xtensa.exp
  ab411a7e60cfec57473a2cab3ecc3197  gcc/testsuite/gcc.c-torture/ChangeLog.0
  84740fd4194274c1fbddfa5575623a40  gcc/testsuite/gcc.c-torture/compat/strct-layout.c
  3bb9d56b7cd137b146d286534c43ff8c  gcc/testsuite/gcc.c-torture/compat/struct-align.c
--- 35087,35096 ----
  673a3b45283bd1b872f1b198781a14a3  gcc/testsuite/g++.target/s390/pr94704-3.C
  0a3c74a94606c9870a40fec1d0577aa8  gcc/testsuite/g++.target/s390/pr94704-4.C
  c0aa169f53b6c831c9c42b449fec63b6  gcc/testsuite/g++.target/s390/pr98722.C
! fe646f555f53ce861aeecbd7df55f61b  gcc/testsuite/g++.target/s390/s390.exp
! 9ff1a8d8d1c6f294a317244992dec97a  gcc/testsuite/g++.target/s390/zvec-templ-1.C
  9ec75dfed03d43e4480e98ac02f604a7  gcc/testsuite/g++.target/xtensa/pr95571.C
! 17ac35c0076da490d7320f7ad18e8fe3  gcc/testsuite/g++.target/xtensa/xtensa.exp
  ab411a7e60cfec57473a2cab3ecc3197  gcc/testsuite/gcc.c-torture/ChangeLog.0
  84740fd4194274c1fbddfa5575623a40  gcc/testsuite/gcc.c-torture/compat/strct-layout.c
  3bb9d56b7cd137b146d286534c43ff8c  gcc/testsuite/gcc.c-torture/compat/struct-align.c
*************** ab411a7e60cfec57473a2cab3ecc3197  gcc/te
*** 33053,33085 ****
  b1a7d4218caf9bcc557077d4aa43e94e  gcc/testsuite/gcc.c-torture/compat/struct-ii.c
  426584adc31397d8ab72547a8b07a853  gcc/testsuite/gcc.c-torture/compat/struct-ret-1.c
  0721901de40a663dbb3246adfb2c7d8f  gcc/testsuite/gcc.c-torture/compile/103818.c
! 020eb2921d5899a38ea379f354f54233  gcc/testsuite/gcc.c-torture/compile/20000105-1.c
! 9851010109199ab205947b27c7a81ab1  gcc/testsuite/gcc.c-torture/compile/20000105-2.c
  ea95b5ed026fb753ad9419303d80eff5  gcc/testsuite/gcc.c-torture/compile/20000120-1.c
  14758b696f6b6ff0f2be43e1478b677e  gcc/testsuite/gcc.c-torture/compile/20000120-2.c
  fba0d0b2b31a206a959b200ef169c9cb  gcc/testsuite/gcc.c-torture/compile/20000127-1.c
! 4b100411afb517323316ec6b9b37ba83  gcc/testsuite/gcc.c-torture/compile/20000211-1.c
  3333108e6891b131e0ee1b683a854096  gcc/testsuite/gcc.c-torture/compile/20000211-3.c
! 3896d72a1d6912367a02926ad652c0c1  gcc/testsuite/gcc.c-torture/compile/20000224-1.c
  51f410d7d1005da7f89eb7ac406034fc  gcc/testsuite/gcc.c-torture/compile/20000314-1.c
! d45627a209c2ca0e82340bda21fa78cc  gcc/testsuite/gcc.c-torture/compile/20000314-2.c
  b42783d7c501ef9ee0c4d27adb39ae5e  gcc/testsuite/gcc.c-torture/compile/20000319-1.c
  f16e5a7acd4a0e09dae0cf8c791e1884  gcc/testsuite/gcc.c-torture/compile/20000326-1.c
  38f30482b8166be1a0b9fb0250bbd3ba  gcc/testsuite/gcc.c-torture/compile/20000326-2.c
  9d477c174ee96efa21fa7dc36531179a  gcc/testsuite/gcc.c-torture/compile/20000329-1.c
! 8073c78090615ad172f95d960b871ba9  gcc/testsuite/gcc.c-torture/compile/20000403-1.c
  2e489c5b4fa941ec95edc22711cf08bd  gcc/testsuite/gcc.c-torture/compile/20000403-2.c
  c0787d05762c4f96e368cf3fdd4bc03b  gcc/testsuite/gcc.c-torture/compile/20000405-1.c
  646105e3d74b2791d70d391ad336a1f0  gcc/testsuite/gcc.c-torture/compile/20000405-2.c
  5a239eaf25b62af5217659fe50ccefc2  gcc/testsuite/gcc.c-torture/compile/20000405-3.c
  1dc3bda98e9d9c42e72e8bffe06c4aab  gcc/testsuite/gcc.c-torture/compile/20000412-1.c
! 6d64991bc5402774d06210e9e9d0a133  gcc/testsuite/gcc.c-torture/compile/20000412-2.c
  799aa0dcf46a45f0a700c6dfb724a55d  gcc/testsuite/gcc.c-torture/compile/20000420-1.c
  80652161be8efeb89d0c2f0e3a65aadc  gcc/testsuite/gcc.c-torture/compile/20000420-2.c
! a3b4c395604aeb6ad3d36497a765170d  gcc/testsuite/gcc.c-torture/compile/20000427-1.c
  769ef61fe67479120811819ccdc03d2f  gcc/testsuite/gcc.c-torture/compile/20000502-1.c
  f27b85b425c5bd7c27d211bbbc7ab541  gcc/testsuite/gcc.c-torture/compile/20000504-1.c
! 7132ba5a83e2862d37f3ad2c083b080c  gcc/testsuite/gcc.c-torture/compile/20000511-1.c
  b24a88b1a112e694ed922578060a1ad9  gcc/testsuite/gcc.c-torture/compile/20000517-1.c
  6141fff8e5a0ad31c0c73ef5ff2e6492  gcc/testsuite/gcc.c-torture/compile/20000518-1.c
  6c583c95ebd7e354025d1e687d2304d3  gcc/testsuite/gcc.c-torture/compile/20000523-1.c
--- 35100,35132 ----
  b1a7d4218caf9bcc557077d4aa43e94e  gcc/testsuite/gcc.c-torture/compat/struct-ii.c
  426584adc31397d8ab72547a8b07a853  gcc/testsuite/gcc.c-torture/compat/struct-ret-1.c
  0721901de40a663dbb3246adfb2c7d8f  gcc/testsuite/gcc.c-torture/compile/103818.c
! 2237e2b8f8c8f36a167773d186b25bf1  gcc/testsuite/gcc.c-torture/compile/20000105-1.c
! 3370d5a507ff4d2f28ee874dbd6051dc  gcc/testsuite/gcc.c-torture/compile/20000105-2.c
  ea95b5ed026fb753ad9419303d80eff5  gcc/testsuite/gcc.c-torture/compile/20000120-1.c
  14758b696f6b6ff0f2be43e1478b677e  gcc/testsuite/gcc.c-torture/compile/20000120-2.c
  fba0d0b2b31a206a959b200ef169c9cb  gcc/testsuite/gcc.c-torture/compile/20000127-1.c
! 86681ceac57f20cf278945f42469bb73  gcc/testsuite/gcc.c-torture/compile/20000211-1.c
  3333108e6891b131e0ee1b683a854096  gcc/testsuite/gcc.c-torture/compile/20000211-3.c
! 2405a6b95fd588615e6f87ead73dc7b3  gcc/testsuite/gcc.c-torture/compile/20000224-1.c
  51f410d7d1005da7f89eb7ac406034fc  gcc/testsuite/gcc.c-torture/compile/20000314-1.c
! 0c3debdb254670e36a678710f7071f9d  gcc/testsuite/gcc.c-torture/compile/20000314-2.c
  b42783d7c501ef9ee0c4d27adb39ae5e  gcc/testsuite/gcc.c-torture/compile/20000319-1.c
  f16e5a7acd4a0e09dae0cf8c791e1884  gcc/testsuite/gcc.c-torture/compile/20000326-1.c
  38f30482b8166be1a0b9fb0250bbd3ba  gcc/testsuite/gcc.c-torture/compile/20000326-2.c
  9d477c174ee96efa21fa7dc36531179a  gcc/testsuite/gcc.c-torture/compile/20000329-1.c
! 0c0626a34c258e6a68e6b9b1ae7e1168  gcc/testsuite/gcc.c-torture/compile/20000403-1.c
  2e489c5b4fa941ec95edc22711cf08bd  gcc/testsuite/gcc.c-torture/compile/20000403-2.c
  c0787d05762c4f96e368cf3fdd4bc03b  gcc/testsuite/gcc.c-torture/compile/20000405-1.c
  646105e3d74b2791d70d391ad336a1f0  gcc/testsuite/gcc.c-torture/compile/20000405-2.c
  5a239eaf25b62af5217659fe50ccefc2  gcc/testsuite/gcc.c-torture/compile/20000405-3.c
  1dc3bda98e9d9c42e72e8bffe06c4aab  gcc/testsuite/gcc.c-torture/compile/20000412-1.c
! 02e5bd91e2cae7bdda28b294c4342ea4  gcc/testsuite/gcc.c-torture/compile/20000412-2.c
  799aa0dcf46a45f0a700c6dfb724a55d  gcc/testsuite/gcc.c-torture/compile/20000420-1.c
  80652161be8efeb89d0c2f0e3a65aadc  gcc/testsuite/gcc.c-torture/compile/20000420-2.c
! c36100e7b2a3e7671618d14529ba4886  gcc/testsuite/gcc.c-torture/compile/20000427-1.c
  769ef61fe67479120811819ccdc03d2f  gcc/testsuite/gcc.c-torture/compile/20000502-1.c
  f27b85b425c5bd7c27d211bbbc7ab541  gcc/testsuite/gcc.c-torture/compile/20000504-1.c
! d9a4e0ae5d78f0bfabfcf0203b871989  gcc/testsuite/gcc.c-torture/compile/20000511-1.c
  b24a88b1a112e694ed922578060a1ad9  gcc/testsuite/gcc.c-torture/compile/20000517-1.c
  6141fff8e5a0ad31c0c73ef5ff2e6492  gcc/testsuite/gcc.c-torture/compile/20000518-1.c
  6c583c95ebd7e354025d1e687d2304d3  gcc/testsuite/gcc.c-torture/compile/20000523-1.c
*************** e84ceb0e82b4533c25789518151c085d  gcc/te
*** 33091,33099 ****
  0c7ed780c70ff1c1c68312f9061ead0f  gcc/testsuite/gcc.c-torture/compile/20000717-1.c
  ac01d71fcbc92c609cbf00b9a9c8b025  gcc/testsuite/gcc.c-torture/compile/20000718.c
  9dd881236795fab247ec71c1abca3e09  gcc/testsuite/gcc.c-torture/compile/20000728-1.c
! 6c8eebc797ff96343d1f35a39c2b3b2f  gcc/testsuite/gcc.c-torture/compile/20000802-1.c
  94da29ee4520eab538ad89a0653f7619  gcc/testsuite/gcc.c-torture/compile/20000803-1.c
! 7a88f76cd8557405148cd7618828a378  gcc/testsuite/gcc.c-torture/compile/20000804-1.c
  73d8448c7350023f4723ba59fa3c7f38  gcc/testsuite/gcc.c-torture/compile/20000818-1.c
  798ad95bcb3c0ac618dd80ee18912645  gcc/testsuite/gcc.c-torture/compile/20000825-1.c
  6c54d5e909022b02771b10d881dba9b0  gcc/testsuite/gcc.c-torture/compile/20000827-1.c
--- 35138,35146 ----
  0c7ed780c70ff1c1c68312f9061ead0f  gcc/testsuite/gcc.c-torture/compile/20000717-1.c
  ac01d71fcbc92c609cbf00b9a9c8b025  gcc/testsuite/gcc.c-torture/compile/20000718.c
  9dd881236795fab247ec71c1abca3e09  gcc/testsuite/gcc.c-torture/compile/20000728-1.c
! 4242c798b00bd363ca3d94799d6040c4  gcc/testsuite/gcc.c-torture/compile/20000802-1.c
  94da29ee4520eab538ad89a0653f7619  gcc/testsuite/gcc.c-torture/compile/20000803-1.c
! 97a6ddf10d9dfa821982c78a9b691520  gcc/testsuite/gcc.c-torture/compile/20000804-1.c
  73d8448c7350023f4723ba59fa3c7f38  gcc/testsuite/gcc.c-torture/compile/20000818-1.c
  798ad95bcb3c0ac618dd80ee18912645  gcc/testsuite/gcc.c-torture/compile/20000825-1.c
  6c54d5e909022b02771b10d881dba9b0  gcc/testsuite/gcc.c-torture/compile/20000827-1.c
*************** f4650eb7d2890f034a1e0b398afe8258  gcc/te
*** 33128,33134 ****
  f6b5eb75ae5bc875acb6b1ccf4573098  gcc/testsuite/gcc.c-torture/compile/20010226-1.c
  4baf5f5bb8e3843147918b7c37f79e97  gcc/testsuite/gcc.c-torture/compile/20010227-1.c
  6c4b6c50af968d0dfc0dc6bca8a5e626  gcc/testsuite/gcc.c-torture/compile/20010313-1.c
! 4d99eb7bf3b2f2d720b3e31f312f1a72  gcc/testsuite/gcc.c-torture/compile/20010320-1.c
  9b2124d9aabb78c8805ca88fa4c64886  gcc/testsuite/gcc.c-torture/compile/20010326-1.c
  a744d86453f2f0f637c6727d6839e690  gcc/testsuite/gcc.c-torture/compile/20010327-1.c
  fd4b760bc1259d0904888db5946623ae  gcc/testsuite/gcc.c-torture/compile/20010328-1.c
--- 35175,35181 ----
  f6b5eb75ae5bc875acb6b1ccf4573098  gcc/testsuite/gcc.c-torture/compile/20010226-1.c
  4baf5f5bb8e3843147918b7c37f79e97  gcc/testsuite/gcc.c-torture/compile/20010227-1.c
  6c4b6c50af968d0dfc0dc6bca8a5e626  gcc/testsuite/gcc.c-torture/compile/20010313-1.c
! a2fab51d0654d52e0639f341e8f0fbbd  gcc/testsuite/gcc.c-torture/compile/20010320-1.c
  9b2124d9aabb78c8805ca88fa4c64886  gcc/testsuite/gcc.c-torture/compile/20010326-1.c
  a744d86453f2f0f637c6727d6839e690  gcc/testsuite/gcc.c-torture/compile/20010327-1.c
  fd4b760bc1259d0904888db5946623ae  gcc/testsuite/gcc.c-torture/compile/20010328-1.c
*************** b693a0c971cbde8d4faa221663052b4d  gcc/te
*** 33142,33155 ****
  f9cfcad063a043d5d39ecdcd3affa835  gcc/testsuite/gcc.c-torture/compile/20010510-1.c
  a9e89abeee4f87fc286636f8b7941abf  gcc/testsuite/gcc.c-torture/compile/20010518-1.c
  4d15fbed7aa9b46fb7b04f41228daf7d  gcc/testsuite/gcc.c-torture/compile/20010518-2.c
! c709c78dc33772334d195cbdb064cec0  gcc/testsuite/gcc.c-torture/compile/20010525-1.c
  2f8e8823570049ddc0bba9a4171d0a15  gcc/testsuite/gcc.c-torture/compile/20010605-1.c
  0413deb2980677cc8a800e67756ae092  gcc/testsuite/gcc.c-torture/compile/20010605-2.c
  c3d4b62a5827ff7e7958f3d934e88136  gcc/testsuite/gcc.c-torture/compile/20010605-3.c
  19d27532cb9299babf127e13b46d7c26  gcc/testsuite/gcc.c-torture/compile/20010610-1.c
  3b5bb228a60246d9cc667d2217fd97b7  gcc/testsuite/gcc.c-torture/compile/20010611-1.c
  2770530f10c8ec67c553fc5d563e0fd2  gcc/testsuite/gcc.c-torture/compile/20010701-1.c
! 145f609613fba655656c2fa8a0aee35a  gcc/testsuite/gcc.c-torture/compile/20010706-1.c
  a355a93e9de4960041bcd5c96e4115b8  gcc/testsuite/gcc.c-torture/compile/20010711-1.c
  6db99abcc31020d34d88014e062d0dce  gcc/testsuite/gcc.c-torture/compile/20010711-2.c
  667c52fe4ff0a414b36f794aa405046f  gcc/testsuite/gcc.c-torture/compile/20010714-1.c
--- 35189,35202 ----
  f9cfcad063a043d5d39ecdcd3affa835  gcc/testsuite/gcc.c-torture/compile/20010510-1.c
  a9e89abeee4f87fc286636f8b7941abf  gcc/testsuite/gcc.c-torture/compile/20010518-1.c
  4d15fbed7aa9b46fb7b04f41228daf7d  gcc/testsuite/gcc.c-torture/compile/20010518-2.c
! 29d7ade59240993c419e77e7c8db698b  gcc/testsuite/gcc.c-torture/compile/20010525-1.c
  2f8e8823570049ddc0bba9a4171d0a15  gcc/testsuite/gcc.c-torture/compile/20010605-1.c
  0413deb2980677cc8a800e67756ae092  gcc/testsuite/gcc.c-torture/compile/20010605-2.c
  c3d4b62a5827ff7e7958f3d934e88136  gcc/testsuite/gcc.c-torture/compile/20010605-3.c
  19d27532cb9299babf127e13b46d7c26  gcc/testsuite/gcc.c-torture/compile/20010610-1.c
  3b5bb228a60246d9cc667d2217fd97b7  gcc/testsuite/gcc.c-torture/compile/20010611-1.c
  2770530f10c8ec67c553fc5d563e0fd2  gcc/testsuite/gcc.c-torture/compile/20010701-1.c
! cd5769923d719737390f7c0359cbee32  gcc/testsuite/gcc.c-torture/compile/20010706-1.c
  a355a93e9de4960041bcd5c96e4115b8  gcc/testsuite/gcc.c-torture/compile/20010711-1.c
  6db99abcc31020d34d88014e062d0dce  gcc/testsuite/gcc.c-torture/compile/20010711-2.c
  667c52fe4ff0a414b36f794aa405046f  gcc/testsuite/gcc.c-torture/compile/20010714-1.c
*************** b8a08afb1dcc3bd4e65efc5b0a22a0d8  gcc/te
*** 33196,33202 ****
  5e61b23637fcf015f51fa3eeee7e78e6  gcc/testsuite/gcc.c-torture/compile/20020309-1.c
  3217fac94fe9fa98180ef1f90b228e59  gcc/testsuite/gcc.c-torture/compile/20020309-2.c
  c4e66c2c152ac67e1525df461e89a549  gcc/testsuite/gcc.c-torture/compile/20020312-1.c
! 9940c2f65b3d71ac7e95fd067b79ee81  gcc/testsuite/gcc.c-torture/compile/20020314-1.c
  9edbd53d88ea0c5702c1b1593a4b7eec  gcc/testsuite/gcc.c-torture/compile/20020315-1.c
  078e35e095ccef250546405d4d441a5f  gcc/testsuite/gcc.c-torture/compile/20020318-1.c
  1cd32808d70a834e4e0cc6f19b530500  gcc/testsuite/gcc.c-torture/compile/20020319-1.c
--- 35243,35249 ----
  5e61b23637fcf015f51fa3eeee7e78e6  gcc/testsuite/gcc.c-torture/compile/20020309-1.c
  3217fac94fe9fa98180ef1f90b228e59  gcc/testsuite/gcc.c-torture/compile/20020309-2.c
  c4e66c2c152ac67e1525df461e89a549  gcc/testsuite/gcc.c-torture/compile/20020312-1.c
! f7b1559adfd4c08795eb02102e47fa58  gcc/testsuite/gcc.c-torture/compile/20020314-1.c
  9edbd53d88ea0c5702c1b1593a4b7eec  gcc/testsuite/gcc.c-torture/compile/20020315-1.c
  078e35e095ccef250546405d4d441a5f  gcc/testsuite/gcc.c-torture/compile/20020318-1.c
  1cd32808d70a834e4e0cc6f19b530500  gcc/testsuite/gcc.c-torture/compile/20020319-1.c
*************** c4e66c2c152ac67e1525df461e89a549  gcc/te
*** 33205,33215 ****
  6eee780667153ca5e36a10badaf9c929  gcc/testsuite/gcc.c-torture/compile/20020330-1.c
  9ceed6ebc4796c8c5c4ca998c5a1dc6b  gcc/testsuite/gcc.c-torture/compile/20020409-1.c
  c858ce55841b9f51527f31b7d0639310  gcc/testsuite/gcc.c-torture/compile/20020415-1.c
! bc93ffbc6f268c7dccd49613cb67326e  gcc/testsuite/gcc.c-torture/compile/20020418-1.c
  189ec2f38c53e3c639be1b5845610d8e  gcc/testsuite/gcc.c-torture/compile/20020530-1.c
  2a8f27519916e80b322eedb480f11a8a  gcc/testsuite/gcc.c-torture/compile/20020604-1.c
  2db0e0ef2d13f621162736b21fb358f3  gcc/testsuite/gcc.c-torture/compile/20020605-1.c
! 9b7195482eec6e7119ad69678773d2f4  gcc/testsuite/gcc.c-torture/compile/20020701-1.c
  2f0d66d4db72ce398532dc0b9a21b945  gcc/testsuite/gcc.c-torture/compile/20020706-1.c
  b964252ee92d9352e59b5da7b8f5ba3a  gcc/testsuite/gcc.c-torture/compile/20020706-2.c
  00c94c0a76a5dd546f2fe6e22ebf0bba  gcc/testsuite/gcc.c-torture/compile/20020709-1.c
--- 35252,35262 ----
  6eee780667153ca5e36a10badaf9c929  gcc/testsuite/gcc.c-torture/compile/20020330-1.c
  9ceed6ebc4796c8c5c4ca998c5a1dc6b  gcc/testsuite/gcc.c-torture/compile/20020409-1.c
  c858ce55841b9f51527f31b7d0639310  gcc/testsuite/gcc.c-torture/compile/20020415-1.c
! acdf2bb3b67915b16a94d15b5c4ec7bc  gcc/testsuite/gcc.c-torture/compile/20020418-1.c
  189ec2f38c53e3c639be1b5845610d8e  gcc/testsuite/gcc.c-torture/compile/20020530-1.c
  2a8f27519916e80b322eedb480f11a8a  gcc/testsuite/gcc.c-torture/compile/20020604-1.c
  2db0e0ef2d13f621162736b21fb358f3  gcc/testsuite/gcc.c-torture/compile/20020605-1.c
! e04e532ceca402f05b209ed3511a7f63  gcc/testsuite/gcc.c-torture/compile/20020701-1.c
  2f0d66d4db72ce398532dc0b9a21b945  gcc/testsuite/gcc.c-torture/compile/20020706-1.c
  b964252ee92d9352e59b5da7b8f5ba3a  gcc/testsuite/gcc.c-torture/compile/20020706-2.c
  00c94c0a76a5dd546f2fe6e22ebf0bba  gcc/testsuite/gcc.c-torture/compile/20020709-1.c
*************** bc26e141c2a1c6f93bdf7d85d62fd35f  gcc/te
*** 33218,33230 ****
  b073b631176fe9350a960871f2576ece  gcc/testsuite/gcc.c-torture/compile/20020807-1.c
  91002046d8281f1eaa3ebdc3959648f8  gcc/testsuite/gcc.c-torture/compile/20020910-1.c
  8b66b6b4fa1a6945ccda4e274db8b532  gcc/testsuite/gcc.c-torture/compile/20020926-1.c
! 229a8b4082c99015cf7c6d36f4613078  gcc/testsuite/gcc.c-torture/compile/20020927-1.c
  4942436e24bc86cb6050c90d96ca0e51  gcc/testsuite/gcc.c-torture/compile/20020930-1.c
  75c5804f05b0ba54ff51d80367f41447  gcc/testsuite/gcc.c-torture/compile/20021001-1.c
  1f5aa488f7af43fd22ae8ed6e8da592f  gcc/testsuite/gcc.c-torture/compile/20021007-1.c
  79ab23f9886fa90b4d8847bc515133d9  gcc/testsuite/gcc.c-torture/compile/20021008-1.c
  8e20e3820f98285ee838c56f982bf054  gcc/testsuite/gcc.c-torture/compile/20021015-1.c
! e6b65eed4154ffe758dfe700a8ac4efa  gcc/testsuite/gcc.c-torture/compile/20021015-2.c
  1d04ae94dc1241c164dab0bf2575c4a3  gcc/testsuite/gcc.c-torture/compile/20021103-1.c
  061b178067b51df6374627461fd5c0f3  gcc/testsuite/gcc.c-torture/compile/20021108-1.c
  000cb6210b264ef407f9e300acf4b493  gcc/testsuite/gcc.c-torture/compile/20021110.c
--- 35265,35277 ----
  b073b631176fe9350a960871f2576ece  gcc/testsuite/gcc.c-torture/compile/20020807-1.c
  91002046d8281f1eaa3ebdc3959648f8  gcc/testsuite/gcc.c-torture/compile/20020910-1.c
  8b66b6b4fa1a6945ccda4e274db8b532  gcc/testsuite/gcc.c-torture/compile/20020926-1.c
! 2fbb6db915e4766194ae0e07ca5e7d6e  gcc/testsuite/gcc.c-torture/compile/20020927-1.c
  4942436e24bc86cb6050c90d96ca0e51  gcc/testsuite/gcc.c-torture/compile/20020930-1.c
  75c5804f05b0ba54ff51d80367f41447  gcc/testsuite/gcc.c-torture/compile/20021001-1.c
  1f5aa488f7af43fd22ae8ed6e8da592f  gcc/testsuite/gcc.c-torture/compile/20021007-1.c
  79ab23f9886fa90b4d8847bc515133d9  gcc/testsuite/gcc.c-torture/compile/20021008-1.c
  8e20e3820f98285ee838c56f982bf054  gcc/testsuite/gcc.c-torture/compile/20021015-1.c
! 540b500dc0561a19ef52c9688a8dde47  gcc/testsuite/gcc.c-torture/compile/20021015-2.c
  1d04ae94dc1241c164dab0bf2575c4a3  gcc/testsuite/gcc.c-torture/compile/20021103-1.c
  061b178067b51df6374627461fd5c0f3  gcc/testsuite/gcc.c-torture/compile/20021108-1.c
  000cb6210b264ef407f9e300acf4b493  gcc/testsuite/gcc.c-torture/compile/20021110.c
*************** e6b65eed4154ffe758dfe700a8ac4efa  gcc/te
*** 33236,33270 ****
  70aca760581b27722b3e4032d421657a  gcc/testsuite/gcc.c-torture/compile/20021205-1.c
  ae79987ef4a16f550c6a6d44915d6f08  gcc/testsuite/gcc.c-torture/compile/20021212-1.c
  a0360611f1ea0419560afa3aeb2510f1  gcc/testsuite/gcc.c-torture/compile/20021230-1.c
! 267a6128041ee223dfc824c212dcea33  gcc/testsuite/gcc.c-torture/compile/20030109-1.c
! ea55e0e250e094f65a73164f970efbb1  gcc/testsuite/gcc.c-torture/compile/20030110-1.c
  d3fbd5c70e7254942bb2b8f69474c064  gcc/testsuite/gcc.c-torture/compile/20030125-1.c
  afcafea038b7b943927285bb1f62bc60  gcc/testsuite/gcc.c-torture/compile/20030206-1.c
  9aefbd156be3da7baea3bca4be48bbaa  gcc/testsuite/gcc.c-torture/compile/20030216-1.c
  c30f1cac9cc5f1765ffbbed5a74d7609  gcc/testsuite/gcc.c-torture/compile/20030219-1.c
  14a347277f72d1afe029475ad3e8f032  gcc/testsuite/gcc.c-torture/compile/20030220-1.c
! 9bbbe1f632cc99c1f4144d87802b7b54  gcc/testsuite/gcc.c-torture/compile/20030224-1.c
  00abc61da030c97b90aaaa615cc1eb1f  gcc/testsuite/gcc.c-torture/compile/20030305-1.c
  074f41310e1519169fe94916aedb4285  gcc/testsuite/gcc.c-torture/compile/20030310-1.c
! a4174c863a6566eb8cb4be521a0ee3fb  gcc/testsuite/gcc.c-torture/compile/20030314-1.c
  04a8a9f37c8348589a3110b86c07ae26  gcc/testsuite/gcc.c-torture/compile/20030319-1.c
  636afeca97e7bba8823cca3efc1e7df1  gcc/testsuite/gcc.c-torture/compile/20030320-1.c
  94d7088d3f5f8a2ae799c04f964efbfe  gcc/testsuite/gcc.c-torture/compile/20030323-1.c
  73bf3aed397c6b3c6218590a3f60d762  gcc/testsuite/gcc.c-torture/compile/20030330-1.c
  6948cd26b8e708cff8d37323f927fb52  gcc/testsuite/gcc.c-torture/compile/20030331-1.c
! 17ed95f22c1255f726d1d0145b6fac72  gcc/testsuite/gcc.c-torture/compile/20030405-1.c
  6ab0d927aa44fcf2fc7edc3dfada840c  gcc/testsuite/gcc.c-torture/compile/20030405-2.c
  c4fd77091527f2145295022bba574a5b  gcc/testsuite/gcc.c-torture/compile/20030410-1.c
! e60ee81e19d3fe57e3a4a4b1abd5ea23  gcc/testsuite/gcc.c-torture/compile/20030415-1.c
! 4de5a5a4ec4c579a1da05a0040fa348f  gcc/testsuite/gcc.c-torture/compile/20030416-1.c
  c495a0c7eb3191ff180934c1d8d95672  gcc/testsuite/gcc.c-torture/compile/20030418-1.c
! a3df6261a4243fa97e37037673c87a69  gcc/testsuite/gcc.c-torture/compile/20030503-1.c
  3006b19667d1551ae936e3f6853acd20  gcc/testsuite/gcc.c-torture/compile/20030518-1.c
! 9bed98e71f7cb889993dd7035aefb342  gcc/testsuite/gcc.c-torture/compile/20030530-1.c
  e8604119e75439397851385c9469e73c  gcc/testsuite/gcc.c-torture/compile/20030530-3.c
  a794d1ad4fd0e19f7034bbffaa303f61  gcc/testsuite/gcc.c-torture/compile/20030604-1.c
  a3d3898762bb8db0db0fd7318b6951a7  gcc/testsuite/gcc.c-torture/compile/20030605-1.c
! cd0033ae11cdb7921d19b320cf2708ca  gcc/testsuite/gcc.c-torture/compile/20030612-1.c
  084c2a8d0cdbe78fc4a24795fa42420f  gcc/testsuite/gcc.c-torture/compile/20030624-1.c
  3b918358ea66105666c06d3c81aee6aa  gcc/testsuite/gcc.c-torture/compile/20030703-1.c
  13596072d21818fcc0be9525053d46fb  gcc/testsuite/gcc.c-torture/compile/20030704-1.c
--- 35283,35317 ----
  70aca760581b27722b3e4032d421657a  gcc/testsuite/gcc.c-torture/compile/20021205-1.c
  ae79987ef4a16f550c6a6d44915d6f08  gcc/testsuite/gcc.c-torture/compile/20021212-1.c
  a0360611f1ea0419560afa3aeb2510f1  gcc/testsuite/gcc.c-torture/compile/20021230-1.c
! bc8d7a4bc9eab8b108ca43940327629f  gcc/testsuite/gcc.c-torture/compile/20030109-1.c
! 81bd9a2da1627590ccafe0f99b329b0d  gcc/testsuite/gcc.c-torture/compile/20030110-1.c
  d3fbd5c70e7254942bb2b8f69474c064  gcc/testsuite/gcc.c-torture/compile/20030125-1.c
  afcafea038b7b943927285bb1f62bc60  gcc/testsuite/gcc.c-torture/compile/20030206-1.c
  9aefbd156be3da7baea3bca4be48bbaa  gcc/testsuite/gcc.c-torture/compile/20030216-1.c
  c30f1cac9cc5f1765ffbbed5a74d7609  gcc/testsuite/gcc.c-torture/compile/20030219-1.c
  14a347277f72d1afe029475ad3e8f032  gcc/testsuite/gcc.c-torture/compile/20030220-1.c
! e13ab7f340a062e5d8ad725673b9b11e  gcc/testsuite/gcc.c-torture/compile/20030224-1.c
  00abc61da030c97b90aaaa615cc1eb1f  gcc/testsuite/gcc.c-torture/compile/20030305-1.c
  074f41310e1519169fe94916aedb4285  gcc/testsuite/gcc.c-torture/compile/20030310-1.c
! f6669c2a749498d487e22ebfc2435eba  gcc/testsuite/gcc.c-torture/compile/20030314-1.c
  04a8a9f37c8348589a3110b86c07ae26  gcc/testsuite/gcc.c-torture/compile/20030319-1.c
  636afeca97e7bba8823cca3efc1e7df1  gcc/testsuite/gcc.c-torture/compile/20030320-1.c
  94d7088d3f5f8a2ae799c04f964efbfe  gcc/testsuite/gcc.c-torture/compile/20030323-1.c
  73bf3aed397c6b3c6218590a3f60d762  gcc/testsuite/gcc.c-torture/compile/20030330-1.c
  6948cd26b8e708cff8d37323f927fb52  gcc/testsuite/gcc.c-torture/compile/20030331-1.c
! 57016aeddadea6003ad54539984737c9  gcc/testsuite/gcc.c-torture/compile/20030405-1.c
  6ab0d927aa44fcf2fc7edc3dfada840c  gcc/testsuite/gcc.c-torture/compile/20030405-2.c
  c4fd77091527f2145295022bba574a5b  gcc/testsuite/gcc.c-torture/compile/20030410-1.c
! 688250f60df51578dce71cc88f7dea3d  gcc/testsuite/gcc.c-torture/compile/20030415-1.c
! 005063a875afcf5959f84794ef79f11d  gcc/testsuite/gcc.c-torture/compile/20030416-1.c
  c495a0c7eb3191ff180934c1d8d95672  gcc/testsuite/gcc.c-torture/compile/20030418-1.c
! f21663389df0eafb2400cd1296669103  gcc/testsuite/gcc.c-torture/compile/20030503-1.c
  3006b19667d1551ae936e3f6853acd20  gcc/testsuite/gcc.c-torture/compile/20030518-1.c
! 4469b9b906450948e5b9d15d9de70fba  gcc/testsuite/gcc.c-torture/compile/20030530-1.c
  e8604119e75439397851385c9469e73c  gcc/testsuite/gcc.c-torture/compile/20030530-3.c
  a794d1ad4fd0e19f7034bbffaa303f61  gcc/testsuite/gcc.c-torture/compile/20030604-1.c
  a3d3898762bb8db0db0fd7318b6951a7  gcc/testsuite/gcc.c-torture/compile/20030605-1.c
! 050572566a104fff39bd40cfcf274cdf  gcc/testsuite/gcc.c-torture/compile/20030612-1.c
  084c2a8d0cdbe78fc4a24795fa42420f  gcc/testsuite/gcc.c-torture/compile/20030624-1.c
  3b918358ea66105666c06d3c81aee6aa  gcc/testsuite/gcc.c-torture/compile/20030703-1.c
  13596072d21818fcc0be9525053d46fb  gcc/testsuite/gcc.c-torture/compile/20030704-1.c
*************** ce39f9b3982f4c382b1ee81e1f35265e  gcc/te
*** 33280,33286 ****
  a94f6d3730628fc4fb440c5b38a13853  gcc/testsuite/gcc.c-torture/compile/20030904-1.c
  5d819584ba108dd4751d09e433068a7e  gcc/testsuite/gcc.c-torture/compile/20030907-1.c
  d305547c1876902a5d54e8c76a048898  gcc/testsuite/gcc.c-torture/compile/20030910-1.c
! e03b11842bc48e479e3d356df45f9038  gcc/testsuite/gcc.c-torture/compile/20030917-1.c
  a752ced91e6854087d477adf7f3aef1a  gcc/testsuite/gcc.c-torture/compile/20030921-1.c
  6e501772d901722ff538403a200897b0  gcc/testsuite/gcc.c-torture/compile/20031002-1.c
  0fec6ad5b25400ece3adaa7d51087aaa  gcc/testsuite/gcc.c-torture/compile/20031010-1.c
--- 35327,35333 ----
  a94f6d3730628fc4fb440c5b38a13853  gcc/testsuite/gcc.c-torture/compile/20030904-1.c
  5d819584ba108dd4751d09e433068a7e  gcc/testsuite/gcc.c-torture/compile/20030907-1.c
  d305547c1876902a5d54e8c76a048898  gcc/testsuite/gcc.c-torture/compile/20030910-1.c
! c3bdad071976bc9ba7c00656d563e56a  gcc/testsuite/gcc.c-torture/compile/20030917-1.c
  a752ced91e6854087d477adf7f3aef1a  gcc/testsuite/gcc.c-torture/compile/20030921-1.c
  6e501772d901722ff538403a200897b0  gcc/testsuite/gcc.c-torture/compile/20031002-1.c
  0fec6ad5b25400ece3adaa7d51087aaa  gcc/testsuite/gcc.c-torture/compile/20031010-1.c
*************** aa5fe369e3fd64c49d34e419cecb0eaf  gcc/te
*** 33291,33300 ****
  1f546162cdd76058c758dce4acc5520f  gcc/testsuite/gcc.c-torture/compile/20031023-3.c
  7a13aaace572746da1a010386d9b1e83  gcc/testsuite/gcc.c-torture/compile/20031023-4.c
  a4a382d70401f0c1bbee8a77a1ca3751  gcc/testsuite/gcc.c-torture/compile/20031031-1.c
! 5b24b310217f553a344ba57e3d1d5bf4  gcc/testsuite/gcc.c-torture/compile/20031031-2.c
  7555cb83636089e1282702e125ffb3ad  gcc/testsuite/gcc.c-torture/compile/20031102-1.c
  f2b4ccb2fc338aec4798a7ca46058c39  gcc/testsuite/gcc.c-torture/compile/20031112-1.c
! 882c73c94b950d3efe0275d8927c7a9a  gcc/testsuite/gcc.c-torture/compile/20031113-1.c
  cd26ecc749a47a69a39b7243342c3b66  gcc/testsuite/gcc.c-torture/compile/20031124-1.c
  06fa325fbe6bf4ea64763aab8eaf695d  gcc/testsuite/gcc.c-torture/compile/20031125-1.c
  17e9974eb0debc90d50d060076c300bc  gcc/testsuite/gcc.c-torture/compile/20031125-2.c
--- 35338,35347 ----
  1f546162cdd76058c758dce4acc5520f  gcc/testsuite/gcc.c-torture/compile/20031023-3.c
  7a13aaace572746da1a010386d9b1e83  gcc/testsuite/gcc.c-torture/compile/20031023-4.c
  a4a382d70401f0c1bbee8a77a1ca3751  gcc/testsuite/gcc.c-torture/compile/20031031-1.c
! ef4642ae9687a4e3a7013cad377592fd  gcc/testsuite/gcc.c-torture/compile/20031031-2.c
  7555cb83636089e1282702e125ffb3ad  gcc/testsuite/gcc.c-torture/compile/20031102-1.c
  f2b4ccb2fc338aec4798a7ca46058c39  gcc/testsuite/gcc.c-torture/compile/20031112-1.c
! bf849f1da1f2ce4f53b955cd9fb10a85  gcc/testsuite/gcc.c-torture/compile/20031113-1.c
  cd26ecc749a47a69a39b7243342c3b66  gcc/testsuite/gcc.c-torture/compile/20031124-1.c
  06fa325fbe6bf4ea64763aab8eaf695d  gcc/testsuite/gcc.c-torture/compile/20031125-1.c
  17e9974eb0debc90d50d060076c300bc  gcc/testsuite/gcc.c-torture/compile/20031125-2.c
*************** c94405f40b5ec5540fdaeb6729bc596e  gcc/te
*** 33303,33315 ****
  225603b40c6e1095a5b7d4d93b9b87ff  gcc/testsuite/gcc.c-torture/compile/20031203-3.c
  93355fd661205acca0769498cfbd5f4d  gcc/testsuite/gcc.c-torture/compile/20031208-1.c
  9a7d1ce5d9eba8220a5455a3794c6e21  gcc/testsuite/gcc.c-torture/compile/20031220-1.c
! a01b457981b538b12cd285508a5e31f4  gcc/testsuite/gcc.c-torture/compile/20031220-2.c
  5470c556f4c5787ff55ec9656acef2b4  gcc/testsuite/gcc.c-torture/compile/20031227-1.c
  3d00be5b41a2e7456725f2b1166c97da  gcc/testsuite/gcc.c-torture/compile/20031231-1.c
! f86c10bf9eea7bdf59d0cf94b94faa69  gcc/testsuite/gcc.c-torture/compile/20040101-1.c
  3801d49095f991ff69e59aa1c446e3c0  gcc/testsuite/gcc.c-torture/compile/20040109-1.c
  9f5db9267447850a1f5e74ffa5ecce8f  gcc/testsuite/gcc.c-torture/compile/20040121-1.c
! dadfac33b9e7b9d514da2c1ccfdabb2b  gcc/testsuite/gcc.c-torture/compile/20040124-1.c
  8839aa6fe44ef2bb86da73c897cfdac5  gcc/testsuite/gcc.c-torture/compile/20040130-1.c
  953cb1c8d3976e4726412911fcef7e4f  gcc/testsuite/gcc.c-torture/compile/20040202-1.c
  c783a4af3f2b6435cbc085881df31670  gcc/testsuite/gcc.c-torture/compile/20040209-1.c
--- 35350,35362 ----
  225603b40c6e1095a5b7d4d93b9b87ff  gcc/testsuite/gcc.c-torture/compile/20031203-3.c
  93355fd661205acca0769498cfbd5f4d  gcc/testsuite/gcc.c-torture/compile/20031208-1.c
  9a7d1ce5d9eba8220a5455a3794c6e21  gcc/testsuite/gcc.c-torture/compile/20031220-1.c
! 4581d821306337653756ca383ea8c8c6  gcc/testsuite/gcc.c-torture/compile/20031220-2.c
  5470c556f4c5787ff55ec9656acef2b4  gcc/testsuite/gcc.c-torture/compile/20031227-1.c
  3d00be5b41a2e7456725f2b1166c97da  gcc/testsuite/gcc.c-torture/compile/20031231-1.c
! bea64eed92941c0da8c3cd14137ca385  gcc/testsuite/gcc.c-torture/compile/20040101-1.c
  3801d49095f991ff69e59aa1c446e3c0  gcc/testsuite/gcc.c-torture/compile/20040109-1.c
  9f5db9267447850a1f5e74ffa5ecce8f  gcc/testsuite/gcc.c-torture/compile/20040121-1.c
! de6073265c2a42796519903a441152d3  gcc/testsuite/gcc.c-torture/compile/20040124-1.c
  8839aa6fe44ef2bb86da73c897cfdac5  gcc/testsuite/gcc.c-torture/compile/20040130-1.c
  953cb1c8d3976e4726412911fcef7e4f  gcc/testsuite/gcc.c-torture/compile/20040202-1.c
  c783a4af3f2b6435cbc085881df31670  gcc/testsuite/gcc.c-torture/compile/20040209-1.c
*************** dd14cd7290887c4bcd0fcc90ee4c855d  gcc/te
*** 33320,33332 ****
  8191d898bc37c912367b8eb0cd2f4ed7  gcc/testsuite/gcc.c-torture/compile/20040220-1.c
  2d5941b36334df2b864ed79bae041a59  gcc/testsuite/gcc.c-torture/compile/20040303-1.c
  311d1a38be397120a5d70598406b2391  gcc/testsuite/gcc.c-torture/compile/20040303-2.c
! d01d13e580ce843d84477175e781c25a  gcc/testsuite/gcc.c-torture/compile/20040304-1.c
  4649fd5630e4b0a4c70d02c348037298  gcc/testsuite/gcc.c-torture/compile/20040304-2.c
! 529bf74dd8bb764a7ae17c7f8b8e2243  gcc/testsuite/gcc.c-torture/compile/20040309-1.c
! 84d42595b81c8ad79b1bc744b20b3874  gcc/testsuite/gcc.c-torture/compile/20040310-1.c
  fd64b182c5da4d9893626a607ed57ab3  gcc/testsuite/gcc.c-torture/compile/20040317-1.c
  4611434fdd0a72c63378501211ef7836  gcc/testsuite/gcc.c-torture/compile/20040317-2.c
! e425f7d8deb0416b6dd9f9800ad112c6  gcc/testsuite/gcc.c-torture/compile/20040317-3.c
  3b5643ca0aa010dfd28f5d8b99cd2d68  gcc/testsuite/gcc.c-torture/compile/20040323-1.c
  163ac8acda689a0d6b0ec474278495d8  gcc/testsuite/gcc.c-torture/compile/20040401-1.c
  87df3c585b6257ed285860a84f4c3633  gcc/testsuite/gcc.c-torture/compile/20040415-1.c
--- 35367,35379 ----
  8191d898bc37c912367b8eb0cd2f4ed7  gcc/testsuite/gcc.c-torture/compile/20040220-1.c
  2d5941b36334df2b864ed79bae041a59  gcc/testsuite/gcc.c-torture/compile/20040303-1.c
  311d1a38be397120a5d70598406b2391  gcc/testsuite/gcc.c-torture/compile/20040303-2.c
! 1810b859fff62199998497d5526c5c5b  gcc/testsuite/gcc.c-torture/compile/20040304-1.c
  4649fd5630e4b0a4c70d02c348037298  gcc/testsuite/gcc.c-torture/compile/20040304-2.c
! 77247e4f2c5e0732a6ff798b818fa956  gcc/testsuite/gcc.c-torture/compile/20040309-1.c
! a36d3fe5b2fe8797dd486ae009bdc873  gcc/testsuite/gcc.c-torture/compile/20040310-1.c
  fd64b182c5da4d9893626a607ed57ab3  gcc/testsuite/gcc.c-torture/compile/20040317-1.c
  4611434fdd0a72c63378501211ef7836  gcc/testsuite/gcc.c-torture/compile/20040317-2.c
! 3c4126adfc2ec3d85a19cb2916a4fb3b  gcc/testsuite/gcc.c-torture/compile/20040317-3.c
  3b5643ca0aa010dfd28f5d8b99cd2d68  gcc/testsuite/gcc.c-torture/compile/20040323-1.c
  163ac8acda689a0d6b0ec474278495d8  gcc/testsuite/gcc.c-torture/compile/20040401-1.c
  87df3c585b6257ed285860a84f4c3633  gcc/testsuite/gcc.c-torture/compile/20040415-1.c
*************** e425f7d8deb0416b6dd9f9800ad112c6  gcc/te
*** 33338,33355 ****
  ecf183db9b932214f1efd2087a19e80b  gcc/testsuite/gcc.c-torture/compile/20040614-1.c
  21c2bf7d16f0668f8a64a13686224dcd  gcc/testsuite/gcc.c-torture/compile/20040621-1.c
  21f6f62a0d5c69f3c7281b15dd1a3fed  gcc/testsuite/gcc.c-torture/compile/20040624-1.c
! b710c77ba866bb2d0c9e2ab046eb3945  gcc/testsuite/gcc.c-torture/compile/20040705-1.c
  faf81e645a44ed239db62a33068a7e18  gcc/testsuite/gcc.c-torture/compile/20040708-1.c
  0fc0b4fabadbb6a924f2125e48edf39f  gcc/testsuite/gcc.c-torture/compile/20040709-1.c
  75fd0444cf42502a2e374599a41aa119  gcc/testsuite/gcc.c-torture/compile/20040726-1.c
  c571f9cae895efd692d23db91faec915  gcc/testsuite/gcc.c-torture/compile/20040726-2.c
  622e4a774720a1ba21070658c6a65e90  gcc/testsuite/gcc.c-torture/compile/20040727-1.c
  8f627169d91237dfeadb87401dca4990  gcc/testsuite/gcc.c-torture/compile/20040730-1.c
! 01550434cb52e37a72c3e61b079e9826  gcc/testsuite/gcc.c-torture/compile/20040817-1.c
  8bcfaecd4ce9687b60ce24eca3edf725  gcc/testsuite/gcc.c-torture/compile/20040824-1.c
  bc7587eab94309ed114c93a7250d2f94  gcc/testsuite/gcc.c-torture/compile/20040901-1.c
  4e29a31b89074374ccab1f12f1051989  gcc/testsuite/gcc.c-torture/compile/20040907-1.c
! a1585ebaa0c0592a4d407ea1550a4764  gcc/testsuite/gcc.c-torture/compile/20040908-1.c
  62d02b65d96a844f0e9440c136c2bc9c  gcc/testsuite/gcc.c-torture/compile/20040909-1.c
  126e29e8a1548e89022784a1e6b57c32  gcc/testsuite/gcc.c-torture/compile/20040914-1.c
  8152c9cdb5967d9a5bbbf0c557636ad1  gcc/testsuite/gcc.c-torture/compile/20040916-1.c
--- 35385,35402 ----
  ecf183db9b932214f1efd2087a19e80b  gcc/testsuite/gcc.c-torture/compile/20040614-1.c
  21c2bf7d16f0668f8a64a13686224dcd  gcc/testsuite/gcc.c-torture/compile/20040621-1.c
  21f6f62a0d5c69f3c7281b15dd1a3fed  gcc/testsuite/gcc.c-torture/compile/20040624-1.c
! d9c96acc48bcfc4acfa0c5af0d2e35a8  gcc/testsuite/gcc.c-torture/compile/20040705-1.c
  faf81e645a44ed239db62a33068a7e18  gcc/testsuite/gcc.c-torture/compile/20040708-1.c
  0fc0b4fabadbb6a924f2125e48edf39f  gcc/testsuite/gcc.c-torture/compile/20040709-1.c
  75fd0444cf42502a2e374599a41aa119  gcc/testsuite/gcc.c-torture/compile/20040726-1.c
  c571f9cae895efd692d23db91faec915  gcc/testsuite/gcc.c-torture/compile/20040726-2.c
  622e4a774720a1ba21070658c6a65e90  gcc/testsuite/gcc.c-torture/compile/20040727-1.c
  8f627169d91237dfeadb87401dca4990  gcc/testsuite/gcc.c-torture/compile/20040730-1.c
! 21fb3ecb9ab7edcdaee9ea755a8f89ec  gcc/testsuite/gcc.c-torture/compile/20040817-1.c
  8bcfaecd4ce9687b60ce24eca3edf725  gcc/testsuite/gcc.c-torture/compile/20040824-1.c
  bc7587eab94309ed114c93a7250d2f94  gcc/testsuite/gcc.c-torture/compile/20040901-1.c
  4e29a31b89074374ccab1f12f1051989  gcc/testsuite/gcc.c-torture/compile/20040907-1.c
! 7006705144c02e990fbb2fbea0802024  gcc/testsuite/gcc.c-torture/compile/20040908-1.c
  62d02b65d96a844f0e9440c136c2bc9c  gcc/testsuite/gcc.c-torture/compile/20040909-1.c
  126e29e8a1548e89022784a1e6b57c32  gcc/testsuite/gcc.c-torture/compile/20040914-1.c
  8152c9cdb5967d9a5bbbf0c557636ad1  gcc/testsuite/gcc.c-torture/compile/20040916-1.c
*************** b5bd15b275391684a4cfa933f414e54a  gcc/te
*** 33359,33365 ****
  f7267d866e2c9994d6790ee48c297305  gcc/testsuite/gcc.c-torture/compile/20041026-1.c
  c6449a8923abf15931148da535a307e5  gcc/testsuite/gcc.c-torture/compile/20041119-1.c
  a65ce16daad930d2b2cb353a1b698c99  gcc/testsuite/gcc.c-torture/compile/20041211-1.c
! 3ba7d89e5d94393d65afef34e6a8d19b  gcc/testsuite/gcc.c-torture/compile/20050105-1.c
  d071b846a7b8e965e0599e525e8f58d0  gcc/testsuite/gcc.c-torture/compile/20050119-1.c
  9f413b9f38f6d75b7be73a79a7045db2  gcc/testsuite/gcc.c-torture/compile/20050122-1.c
  a5c3073dfd44b5eb8205071b3da335e3  gcc/testsuite/gcc.c-torture/compile/20050122-2.c
--- 35406,35412 ----
  f7267d866e2c9994d6790ee48c297305  gcc/testsuite/gcc.c-torture/compile/20041026-1.c
  c6449a8923abf15931148da535a307e5  gcc/testsuite/gcc.c-torture/compile/20041119-1.c
  a65ce16daad930d2b2cb353a1b698c99  gcc/testsuite/gcc.c-torture/compile/20041211-1.c
! 75a8c3a39c2c7e2d73629625f952620c  gcc/testsuite/gcc.c-torture/compile/20050105-1.c
  d071b846a7b8e965e0599e525e8f58d0  gcc/testsuite/gcc.c-torture/compile/20050119-1.c
  9f413b9f38f6d75b7be73a79a7045db2  gcc/testsuite/gcc.c-torture/compile/20050122-1.c
  a5c3073dfd44b5eb8205071b3da335e3  gcc/testsuite/gcc.c-torture/compile/20050122-2.c
*************** e8311784a21a4158ac10607871140455  gcc/te
*** 33373,33379 ****
  41239db8d3cd389e0e96ac0bc127dca9  gcc/testsuite/gcc.c-torture/compile/20050303-1.c
  b5ef6ad55975bceb1d33b729a790f045  gcc/testsuite/gcc.c-torture/compile/20050328-1.c
  f8dafb53e17ca42840c8a8338b3febac  gcc/testsuite/gcc.c-torture/compile/20050423-1.c
! 87fbcccc59cb2e8970963f8aa20de3af  gcc/testsuite/gcc.c-torture/compile/20050510-1.c
  f6eb686accd35035e554d58ec6d22be5  gcc/testsuite/gcc.c-torture/compile/20050516-1.c
  a816a3df2d39eb4ceb20a875cba755d0  gcc/testsuite/gcc.c-torture/compile/20050520-1.c
  1eb52f6308f83a217fed56a95f864e36  gcc/testsuite/gcc.c-torture/compile/20050622-1.c
--- 35420,35426 ----
  41239db8d3cd389e0e96ac0bc127dca9  gcc/testsuite/gcc.c-torture/compile/20050303-1.c
  b5ef6ad55975bceb1d33b729a790f045  gcc/testsuite/gcc.c-torture/compile/20050328-1.c
  f8dafb53e17ca42840c8a8338b3febac  gcc/testsuite/gcc.c-torture/compile/20050423-1.c
! 2fcb4199130e0c2118926b0d58d93299  gcc/testsuite/gcc.c-torture/compile/20050510-1.c
  f6eb686accd35035e554d58ec6d22be5  gcc/testsuite/gcc.c-torture/compile/20050516-1.c
  a816a3df2d39eb4ceb20a875cba755d0  gcc/testsuite/gcc.c-torture/compile/20050520-1.c
  1eb52f6308f83a217fed56a95f864e36  gcc/testsuite/gcc.c-torture/compile/20050622-1.c
*************** bed189b7c49420f6844654bc1da1484b  gcc/te
*** 33382,33390 ****
  00e1ecde6357f02d3643c21f1630daaa  gcc/testsuite/gcc.c-torture/compile/20050801-2.c
  166955f19b3a7c94ddbffc8e22d575d5  gcc/testsuite/gcc.c-torture/compile/20051207-1.c
  c4213cc481bcf324f0de6c500c49e5f4  gcc/testsuite/gcc.c-torture/compile/20051216-1.c
! 71a1f9d4064c81edd344fbeccb990542  gcc/testsuite/gcc.c-torture/compile/20051228-1.c
! 32ea23b4f57a0c536634f94a8db346ed  gcc/testsuite/gcc.c-torture/compile/20060109-1.c
! fb93aba73a7d5e209e2e530738ed75c8  gcc/testsuite/gcc.c-torture/compile/20060202-1.c
  5d789a253585a3b65008bb0331e2164f  gcc/testsuite/gcc.c-torture/compile/20060208-1.c
  8202e1cedd04c94563fcb5be54811b79  gcc/testsuite/gcc.c-torture/compile/20060215-1.c
  934228bbf496b0aaba86392857f260db  gcc/testsuite/gcc.c-torture/compile/20060217-1.c
--- 35429,35437 ----
  00e1ecde6357f02d3643c21f1630daaa  gcc/testsuite/gcc.c-torture/compile/20050801-2.c
  166955f19b3a7c94ddbffc8e22d575d5  gcc/testsuite/gcc.c-torture/compile/20051207-1.c
  c4213cc481bcf324f0de6c500c49e5f4  gcc/testsuite/gcc.c-torture/compile/20051216-1.c
! f6a56bd7074e02e35caef0cba6f35b58  gcc/testsuite/gcc.c-torture/compile/20051228-1.c
! d87f4155c4aa6cd197d2dab64e2d770a  gcc/testsuite/gcc.c-torture/compile/20060109-1.c
! 9e3dbeee01318aa7a7fe5e3ae688bf8e  gcc/testsuite/gcc.c-torture/compile/20060202-1.c
  5d789a253585a3b65008bb0331e2164f  gcc/testsuite/gcc.c-torture/compile/20060208-1.c
  8202e1cedd04c94563fcb5be54811b79  gcc/testsuite/gcc.c-torture/compile/20060215-1.c
  934228bbf496b0aaba86392857f260db  gcc/testsuite/gcc.c-torture/compile/20060217-1.c
*************** bbb6449a5ffe00a545fd49a5de8a4ae7  gcc/te
*** 33399,33416 ****
  64788a7219940282be07ecffd864b0b9  gcc/testsuite/gcc.c-torture/compile/20061005-1.c
  597df2719d79b6fea60c3001e63b51f3  gcc/testsuite/gcc.c-torture/compile/20061214-1.c
  a7fab87a8c390c4617ffe8f8ce708234  gcc/testsuite/gcc.c-torture/compile/20070121.c
! de1c21a8c9e8d7808f7b67c38ff6dc34  gcc/testsuite/gcc.c-torture/compile/20070129.c
  f03eacba1bbcd93a953ba065e48971d7  gcc/testsuite/gcc.c-torture/compile/20070419-1.c
  27c44d306428d8038fddbd7530abf56e  gcc/testsuite/gcc.c-torture/compile/20070501-1.c
  7dcf83def35e3a3a6625a06231f6b896  gcc/testsuite/gcc.c-torture/compile/20070520-1.c
  039ceb65911f05349879548af3fd4023  gcc/testsuite/gcc.c-torture/compile/20070522-1.c
! 4107c9890431f6aac9f17e13674e19d0  gcc/testsuite/gcc.c-torture/compile/20070529-1.c
! fdcc396ab1500e1741e51246819b7279  gcc/testsuite/gcc.c-torture/compile/20070529-2.c
  57f7ef49d8a0d4f6b82bd203a9f46f01  gcc/testsuite/gcc.c-torture/compile/20070531-1.c
  263cb6042a4355457edb5ec7a9d42872  gcc/testsuite/gcc.c-torture/compile/20070531-2.c
  b05575f44b226d7310b288dd4e8e8806  gcc/testsuite/gcc.c-torture/compile/20070603-1.c
  9cac1355b6af8a8106fdf54314604788  gcc/testsuite/gcc.c-torture/compile/20070603-2.c
! d8674157e9e96f7571bddeb1fcf35e82  gcc/testsuite/gcc.c-torture/compile/20070605-1.c
  5d6ece76aad43ec91311b4383720f21d  gcc/testsuite/gcc.c-torture/compile/20070827-1.c
  de42e9c786126bb9d3ad2579052ff755  gcc/testsuite/gcc.c-torture/compile/20070905-1.c
  b91f20dd6916e2c6d04a490d7fa34c91  gcc/testsuite/gcc.c-torture/compile/20070906-1.c
--- 35446,35463 ----
  64788a7219940282be07ecffd864b0b9  gcc/testsuite/gcc.c-torture/compile/20061005-1.c
  597df2719d79b6fea60c3001e63b51f3  gcc/testsuite/gcc.c-torture/compile/20061214-1.c
  a7fab87a8c390c4617ffe8f8ce708234  gcc/testsuite/gcc.c-torture/compile/20070121.c
! c49375daf46a91152cd9c02f3ecaa591  gcc/testsuite/gcc.c-torture/compile/20070129.c
  f03eacba1bbcd93a953ba065e48971d7  gcc/testsuite/gcc.c-torture/compile/20070419-1.c
  27c44d306428d8038fddbd7530abf56e  gcc/testsuite/gcc.c-torture/compile/20070501-1.c
  7dcf83def35e3a3a6625a06231f6b896  gcc/testsuite/gcc.c-torture/compile/20070520-1.c
  039ceb65911f05349879548af3fd4023  gcc/testsuite/gcc.c-torture/compile/20070522-1.c
! d5f1cd67e5c754a81883afe14aed1c24  gcc/testsuite/gcc.c-torture/compile/20070529-1.c
! 0184be9fadb1f3d8d1e65445ab14dd75  gcc/testsuite/gcc.c-torture/compile/20070529-2.c
  57f7ef49d8a0d4f6b82bd203a9f46f01  gcc/testsuite/gcc.c-torture/compile/20070531-1.c
  263cb6042a4355457edb5ec7a9d42872  gcc/testsuite/gcc.c-torture/compile/20070531-2.c
  b05575f44b226d7310b288dd4e8e8806  gcc/testsuite/gcc.c-torture/compile/20070603-1.c
  9cac1355b6af8a8106fdf54314604788  gcc/testsuite/gcc.c-torture/compile/20070603-2.c
! 17d011397b303f62202728004f150377  gcc/testsuite/gcc.c-torture/compile/20070605-1.c
  5d6ece76aad43ec91311b4383720f21d  gcc/testsuite/gcc.c-torture/compile/20070827-1.c
  de42e9c786126bb9d3ad2579052ff755  gcc/testsuite/gcc.c-torture/compile/20070905-1.c
  b91f20dd6916e2c6d04a490d7fa34c91  gcc/testsuite/gcc.c-torture/compile/20070906-1.c
*************** b91f20dd6916e2c6d04a490d7fa34c91  gcc/te
*** 33419,33425 ****
  3350afbcb016caec419cf4bf400bab5a  gcc/testsuite/gcc.c-torture/compile/20071027-1.c
  1013b465af9c38b5c22712a1be4121ee  gcc/testsuite/gcc.c-torture/compile/20071102-1.c
  a6c79b80c47a2df06ed032e1e82bb6c0  gcc/testsuite/gcc.c-torture/compile/20071105-1.c
! dcaaf93ac6c4569b89b48befdf96b6f0  gcc/testsuite/gcc.c-torture/compile/20071107-1.c
  73afc1d1ee6777af4556046c9dc546a1  gcc/testsuite/gcc.c-torture/compile/20071108-1.c
  cb0c97ecda7753c08ad624d5fc3a1c1a  gcc/testsuite/gcc.c-torture/compile/20071114-1.c
  97e49239221633511a290d3777ab59ca  gcc/testsuite/gcc.c-torture/compile/20071117-1.c
--- 35466,35472 ----
  3350afbcb016caec419cf4bf400bab5a  gcc/testsuite/gcc.c-torture/compile/20071027-1.c
  1013b465af9c38b5c22712a1be4121ee  gcc/testsuite/gcc.c-torture/compile/20071102-1.c
  a6c79b80c47a2df06ed032e1e82bb6c0  gcc/testsuite/gcc.c-torture/compile/20071105-1.c
! 2189d262ba850147b65d72f3b70d8556  gcc/testsuite/gcc.c-torture/compile/20071107-1.c
  73afc1d1ee6777af4556046c9dc546a1  gcc/testsuite/gcc.c-torture/compile/20071108-1.c
  cb0c97ecda7753c08ad624d5fc3a1c1a  gcc/testsuite/gcc.c-torture/compile/20071114-1.c
  97e49239221633511a290d3777ab59ca  gcc/testsuite/gcc.c-torture/compile/20071117-1.c
*************** c29da0b4250895679ad3f42686a66a4a  gcc/te
*** 33431,33446 ****
  953aeba6096373c8d9bd146dccfa4759  gcc/testsuite/gcc.c-torture/compile/20080114-1.c
  0ed453c80806f7999c32e84596951e1e  gcc/testsuite/gcc.c-torture/compile/20080124-1.c
  b73dc451f520b51e7d49741835cc9b16  gcc/testsuite/gcc.c-torture/compile/20080419-1.c
! 72975403237f811de945bc08a8eed0b6  gcc/testsuite/gcc.c-torture/compile/20080613-1.c
  3fb219c85b0ca0fa91a2c16f6371ee75  gcc/testsuite/gcc.c-torture/compile/20080625-1.c
  87adab3cffabaeaf5f2c5ae78eb46e04  gcc/testsuite/gcc.c-torture/compile/20080628-1.c
! 6bb172b418bd73045aa51cdf462a3390  gcc/testsuite/gcc.c-torture/compile/20080704-1.c
  25669d36d52316cd0cd6a5b518d00e96  gcc/testsuite/gcc.c-torture/compile/20080721-1.c
  1092a44864a482a69cfcf4926cbc1c25  gcc/testsuite/gcc.c-torture/compile/20080806-1.c
  f1b3e5835ed0ba4c6da0de667672e132  gcc/testsuite/gcc.c-torture/compile/20080812-1.c
  b4e4403eade2bc7731d63b46e2a41ab9  gcc/testsuite/gcc.c-torture/compile/20080820-1.c
  4452b59e537269e21761d8294bf5704f  gcc/testsuite/gcc.c-torture/compile/20080903-1.c
! 3dd8a74deb8fc87fe209dcefdc8a66c3  gcc/testsuite/gcc.c-torture/compile/20080910-1.c
  d47ff102aa36238c6d8f4afeaa280e17  gcc/testsuite/gcc.c-torture/compile/20080922-1.c
  cd87d44d7701b3bbf7b70e9ee893be2a  gcc/testsuite/gcc.c-torture/compile/20080929-1.c
  cd6cd0540381c3ecb7799a5189aa3d5e  gcc/testsuite/gcc.c-torture/compile/20081101-1.c
--- 35478,35493 ----
  953aeba6096373c8d9bd146dccfa4759  gcc/testsuite/gcc.c-torture/compile/20080114-1.c
  0ed453c80806f7999c32e84596951e1e  gcc/testsuite/gcc.c-torture/compile/20080124-1.c
  b73dc451f520b51e7d49741835cc9b16  gcc/testsuite/gcc.c-torture/compile/20080419-1.c
! e271d873b1dc0a1a124a5e2603fb3043  gcc/testsuite/gcc.c-torture/compile/20080613-1.c
  3fb219c85b0ca0fa91a2c16f6371ee75  gcc/testsuite/gcc.c-torture/compile/20080625-1.c
  87adab3cffabaeaf5f2c5ae78eb46e04  gcc/testsuite/gcc.c-torture/compile/20080628-1.c
! 834cceb6053819b8a4045ed4dd667202  gcc/testsuite/gcc.c-torture/compile/20080704-1.c
  25669d36d52316cd0cd6a5b518d00e96  gcc/testsuite/gcc.c-torture/compile/20080721-1.c
  1092a44864a482a69cfcf4926cbc1c25  gcc/testsuite/gcc.c-torture/compile/20080806-1.c
  f1b3e5835ed0ba4c6da0de667672e132  gcc/testsuite/gcc.c-torture/compile/20080812-1.c
  b4e4403eade2bc7731d63b46e2a41ab9  gcc/testsuite/gcc.c-torture/compile/20080820-1.c
  4452b59e537269e21761d8294bf5704f  gcc/testsuite/gcc.c-torture/compile/20080903-1.c
! f1f81da30325ce4807a03bf11055ae10  gcc/testsuite/gcc.c-torture/compile/20080910-1.c
  d47ff102aa36238c6d8f4afeaa280e17  gcc/testsuite/gcc.c-torture/compile/20080922-1.c
  cd87d44d7701b3bbf7b70e9ee893be2a  gcc/testsuite/gcc.c-torture/compile/20080929-1.c
  cd6cd0540381c3ecb7799a5189aa3d5e  gcc/testsuite/gcc.c-torture/compile/20081101-1.c
*************** dc2f83c7a6490b7c1bc7793812695591  gcc/te
*** 33460,33472 ****
  b878cbefec52d522429562a111b73b0b  gcc/testsuite/gcc.c-torture/compile/20090518-1.c
  356571c59ff9f5af17e84d2e6c677bae  gcc/testsuite/gcc.c-torture/compile/20090519-1.c
  3eaddbd18b8bf397667fb0e44e606f01  gcc/testsuite/gcc.c-torture/compile/20090721-1.c
! c54db9fd42ba59ac9d665e7a17889dcd  gcc/testsuite/gcc.c-torture/compile/20090907-1.c
! efe850ec6bf9dc1f63b8a4604c177287  gcc/testsuite/gcc.c-torture/compile/20090917-1.c
! a85165b60bc911474dbe2a530c244ba9  gcc/testsuite/gcc.c-torture/compile/20091215-1.c
  526d3b588b199d95b2fc0b58f11dce25  gcc/testsuite/gcc.c-torture/compile/20100609-1.c
! ec0314db2cf13974ddd5788aa4a897ac  gcc/testsuite/gcc.c-torture/compile/20100907.c
! d8fbc09a444dc52dd8a3c39b85b63c4f  gcc/testsuite/gcc.c-torture/compile/20100915-1.c
! d52a14322fd9a3c507532dbba95ab18b  gcc/testsuite/gcc.c-torture/compile/20101216-1.c
  eacda421c7c34dc19e15e468bceb3f0f  gcc/testsuite/gcc.c-torture/compile/20101217-1.c
  802c88ca60f7d3d80157f529c4b0a651  gcc/testsuite/gcc.c-torture/compile/20110126-1.c
  b310af27776ee7d007966334d1444a12  gcc/testsuite/gcc.c-torture/compile/20110131-1.c
--- 35507,35519 ----
  b878cbefec52d522429562a111b73b0b  gcc/testsuite/gcc.c-torture/compile/20090518-1.c
  356571c59ff9f5af17e84d2e6c677bae  gcc/testsuite/gcc.c-torture/compile/20090519-1.c
  3eaddbd18b8bf397667fb0e44e606f01  gcc/testsuite/gcc.c-torture/compile/20090721-1.c
! d44aab1b30b986234ffc70922cfbffef  gcc/testsuite/gcc.c-torture/compile/20090907-1.c
! 52d980c374221b5c6a3fd7e04582dcf7  gcc/testsuite/gcc.c-torture/compile/20090917-1.c
! 5e1bf02a9e63b1aa11db6e284a5b518a  gcc/testsuite/gcc.c-torture/compile/20091215-1.c
  526d3b588b199d95b2fc0b58f11dce25  gcc/testsuite/gcc.c-torture/compile/20100609-1.c
! e2d640ffcf89c3e76733fdd676784955  gcc/testsuite/gcc.c-torture/compile/20100907.c
! 6646b430786efc55838b2e9df39de2ba  gcc/testsuite/gcc.c-torture/compile/20100915-1.c
! 38776b2d3d241ac7e314a5a57169e4d9  gcc/testsuite/gcc.c-torture/compile/20101216-1.c
  eacda421c7c34dc19e15e468bceb3f0f  gcc/testsuite/gcc.c-torture/compile/20101217-1.c
  802c88ca60f7d3d80157f529c4b0a651  gcc/testsuite/gcc.c-torture/compile/20110126-1.c
  b310af27776ee7d007966334d1444a12  gcc/testsuite/gcc.c-torture/compile/20110131-1.c
*************** e3634bcf25bcef7a90de4306c0e2325f  gcc/te
*** 33475,33491 ****
  6d8d9b8786a768a4f22cf94c38807056  gcc/testsuite/gcc.c-torture/compile/20110906-1.c
  d46e252a8e73f63a50c37a7084eb02a6  gcc/testsuite/gcc.c-torture/compile/20110913-1.c
  baa391a98003dc9d7adfe1203efc6a9c  gcc/testsuite/gcc.c-torture/compile/20111209-1.c
! e3d7688e59540276f73653b3c6d0b0eb  gcc/testsuite/gcc.c-torture/compile/20120524-1.c
  4490f3a31c370b591e8c8a4e81913d03  gcc/testsuite/gcc.c-torture/compile/20120727-1.c
  d9753d1fd892b6c3feb309903f6b8ecd  gcc/testsuite/gcc.c-torture/compile/20120727-2.c
  8eb966a4269786123255cddf56a13a0a  gcc/testsuite/gcc.c-torture/compile/20120822-1.c
  2ab22c1ceaab46720c216d6365121418  gcc/testsuite/gcc.c-torture/compile/20120830-1.c
! 681f5a09995b3e3ef25452ec84aaf37c  gcc/testsuite/gcc.c-torture/compile/20120830-2.c
  8e544a1f9bda650c272455fb06f3a3b0  gcc/testsuite/gcc.c-torture/compile/20120913-1.c
  b60b94486e3212ed337b148050a56b85  gcc/testsuite/gcc.c-torture/compile/20120917-1.c
  2991aec136b5749b6781e92f2d845166  gcc/testsuite/gcc.c-torture/compile/20120927-1.c
! ccc48ccd69a120a4d9b5a0ec118dfc16  gcc/testsuite/gcc.c-torture/compile/20121010-1.c
! 039d90502ce3c5e382e28a18a956aff2  gcc/testsuite/gcc.c-torture/compile/20121027-1.c
  a4bd0e05ec3dbaa015f8195b871616fa  gcc/testsuite/gcc.c-torture/compile/20121107-1.c
  cae884a1e6e79099588bda1d4b364e42  gcc/testsuite/gcc.c-torture/compile/20121220-1.c
  6007a424efa6d4d35d8a2716ac056dee  gcc/testsuite/gcc.c-torture/compile/20140110-1.c
--- 35522,35538 ----
  6d8d9b8786a768a4f22cf94c38807056  gcc/testsuite/gcc.c-torture/compile/20110906-1.c
  d46e252a8e73f63a50c37a7084eb02a6  gcc/testsuite/gcc.c-torture/compile/20110913-1.c
  baa391a98003dc9d7adfe1203efc6a9c  gcc/testsuite/gcc.c-torture/compile/20111209-1.c
! 5c38c3e693c673bd2b87b05742966b1e  gcc/testsuite/gcc.c-torture/compile/20120524-1.c
  4490f3a31c370b591e8c8a4e81913d03  gcc/testsuite/gcc.c-torture/compile/20120727-1.c
  d9753d1fd892b6c3feb309903f6b8ecd  gcc/testsuite/gcc.c-torture/compile/20120727-2.c
  8eb966a4269786123255cddf56a13a0a  gcc/testsuite/gcc.c-torture/compile/20120822-1.c
  2ab22c1ceaab46720c216d6365121418  gcc/testsuite/gcc.c-torture/compile/20120830-1.c
! 8e55bccc2cf7d3c62d2401cc7aa8c855  gcc/testsuite/gcc.c-torture/compile/20120830-2.c
  8e544a1f9bda650c272455fb06f3a3b0  gcc/testsuite/gcc.c-torture/compile/20120913-1.c
  b60b94486e3212ed337b148050a56b85  gcc/testsuite/gcc.c-torture/compile/20120917-1.c
  2991aec136b5749b6781e92f2d845166  gcc/testsuite/gcc.c-torture/compile/20120927-1.c
! bc8dffe093df8708b1506b87e07f9490  gcc/testsuite/gcc.c-torture/compile/20121010-1.c
! 859d72103a775518dd8ef29d7514bf36  gcc/testsuite/gcc.c-torture/compile/20121027-1.c
  a4bd0e05ec3dbaa015f8195b871616fa  gcc/testsuite/gcc.c-torture/compile/20121107-1.c
  cae884a1e6e79099588bda1d4b364e42  gcc/testsuite/gcc.c-torture/compile/20121220-1.c
  6007a424efa6d4d35d8a2716ac056dee  gcc/testsuite/gcc.c-torture/compile/20140110-1.c
*************** a74fd600765c662baf7c526fbc93a717  gcc/te
*** 33503,33509 ****
  9b8a22271d9f19237c0612402fc99963  gcc/testsuite/gcc.c-torture/compile/20161124-1.c
  ba7ecb97d3019d0ba80490d9c7b12ca8  gcc/testsuite/gcc.c-torture/compile/20170419-1.c
  4de7411043b03c153c5efe80020e17d5  gcc/testsuite/gcc.c-torture/compile/20180309-1.c
! 7429d21d7e23ba12a5d6bf3547a80959  gcc/testsuite/gcc.c-torture/compile/20180605-1.c
  3e0c7245f685d2f981de013581fd6bf8  gcc/testsuite/gcc.c-torture/compile/20180915-1.c
  45fd11790d18669853b3fa78d79b6faa  gcc/testsuite/gcc.c-torture/compile/20181114-1.c
  1c9e0046316dd50d894517c6aae2d07e  gcc/testsuite/gcc.c-torture/compile/20190827-1.c
--- 35550,35556 ----
  9b8a22271d9f19237c0612402fc99963  gcc/testsuite/gcc.c-torture/compile/20161124-1.c
  ba7ecb97d3019d0ba80490d9c7b12ca8  gcc/testsuite/gcc.c-torture/compile/20170419-1.c
  4de7411043b03c153c5efe80020e17d5  gcc/testsuite/gcc.c-torture/compile/20180309-1.c
! dcb0a5694e4f8911df0ee58825a2adce  gcc/testsuite/gcc.c-torture/compile/20180605-1.c
  3e0c7245f685d2f981de013581fd6bf8  gcc/testsuite/gcc.c-torture/compile/20180915-1.c
  45fd11790d18669853b3fa78d79b6faa  gcc/testsuite/gcc.c-torture/compile/20181114-1.c
  1c9e0046316dd50d894517c6aae2d07e  gcc/testsuite/gcc.c-torture/compile/20190827-1.c
*************** a8ce4a0daac0912f24b073a5e3391455  gcc/te
*** 33514,33730 ****
  def92f3b63a65df18a9bdd4e76c85a9e  gcc/testsuite/gcc.c-torture/compile/20200105-2.c
  a0bb22bf006ce279fd2d87b2e96b8b16  gcc/testsuite/gcc.c-torture/compile/20200105-3.c
  33b8f69875aa6b0015ade0ac45121856  gcc/testsuite/gcc.c-torture/compile/20200313-1.c
! ebed49e0868fa97d60c12191fa496d07  gcc/testsuite/gcc.c-torture/compile/386.c
! 9681568709601cbb39a156fa04526182  gcc/testsuite/gcc.c-torture/compile/86.c
  ab32e65ea5976f9083dc8234dae65343  gcc/testsuite/gcc.c-torture/compile/900116-1.c
! 19f66edc69de3cb6b5ca746e4dc7d9b5  gcc/testsuite/gcc.c-torture/compile/900216-1.c
! 2cadd4b1d43b4280f1b45ba1368f20c4  gcc/testsuite/gcc.c-torture/compile/900313-1.c
! debb0d465174202d229c02d1e628f1ee  gcc/testsuite/gcc.c-torture/compile/900407-1.c
! 605840058f83d6025ac5167f1900ebd5  gcc/testsuite/gcc.c-torture/compile/900516-1.c
! 797a8a3fce12f09c4ba2d6b5a2c9091b  gcc/testsuite/gcc.c-torture/compile/920301-1.c
! caadf739156e2c2061df61144362695c  gcc/testsuite/gcc.c-torture/compile/920409-1.c
! 88e84241a35119067a9566a4ecee2d5a  gcc/testsuite/gcc.c-torture/compile/920409-2.c
! 44e91f52480b4541f81934189d96367a  gcc/testsuite/gcc.c-torture/compile/920410-1.c
! 7b25b8f9960b01cdf280378a7b0ccbc2  gcc/testsuite/gcc.c-torture/compile/920410-2.c
! da317c245c24067349f192b1705b11d1  gcc/testsuite/gcc.c-torture/compile/920411-2.c
! 4084013853b6053d043d4ae7182bd883  gcc/testsuite/gcc.c-torture/compile/920413-1.c
! 9829c1d0f6c2b8249cb1a02c6f4398c5  gcc/testsuite/gcc.c-torture/compile/920415-1.c
! ea641e692d119341ac33dacd0ebab12e  gcc/testsuite/gcc.c-torture/compile/920428-1.c
  96e36fcdc4db17c2eb3e6be9b29bb5ea  gcc/testsuite/gcc.c-torture/compile/920428-2.c
! f918ec11a1b026618121e37221af6d26  gcc/testsuite/gcc.c-torture/compile/920428-3.c
! 1c41ba2c6f1891e574f9edacf79fac1c  gcc/testsuite/gcc.c-torture/compile/920428-4.c
! e3611a305d8eea8d4d96910c178e217f  gcc/testsuite/gcc.c-torture/compile/920428-5.c
  eecf565315f5f6b7f87919ef37893a50  gcc/testsuite/gcc.c-torture/compile/920428-6.c
! 24420f53d13efc099c91454ef1b45f3b  gcc/testsuite/gcc.c-torture/compile/920428-7.c
! 804e13de911a9322d5cae8d07bfe0ec7  gcc/testsuite/gcc.c-torture/compile/920501-1.c
! 7e292535a025406604e270d1687f3f50  gcc/testsuite/gcc.c-torture/compile/920501-10.c
! 8af8925da21df7a1c55760e6f5eb35af  gcc/testsuite/gcc.c-torture/compile/920501-11.c
! 0c054cf12596dcfe5400051d0bd6416f  gcc/testsuite/gcc.c-torture/compile/920501-12.c
! 7fe392c819addd879e8fa9317154a916  gcc/testsuite/gcc.c-torture/compile/920501-13.c
! f22d0a2d0843ed6c942fbd87affc6a5d  gcc/testsuite/gcc.c-torture/compile/920501-15.c
! 80ab918558c51c5d0a24e5a4a232422c  gcc/testsuite/gcc.c-torture/compile/920501-16.c
! 40898424ba2113745235837c8e9c6f81  gcc/testsuite/gcc.c-torture/compile/920501-17.c
! 518211397b78aff6807e877df11f6dfb  gcc/testsuite/gcc.c-torture/compile/920501-18.c
! 581172d5e4bc8d8690d6083fb925ee1b  gcc/testsuite/gcc.c-torture/compile/920501-19.c
  b9e847994b53ca110e153b3b0b77a857  gcc/testsuite/gcc.c-torture/compile/920501-2.c
! 4b4fec9691e26222d45548302e7f0400  gcc/testsuite/gcc.c-torture/compile/920501-20.c
  14f219d1b999de6667a18fa089502c9b  gcc/testsuite/gcc.c-torture/compile/920501-21.c
! 3bafb6a0cb2762ddc34e686983e943da  gcc/testsuite/gcc.c-torture/compile/920501-22.c
! d7ae081c10af98f8039be9a35e01c6f1  gcc/testsuite/gcc.c-torture/compile/920501-23.c
! 39357890825ee129f7afb7a785323db5  gcc/testsuite/gcc.c-torture/compile/920501-3.c
! 97c5cf186a2415b1e1536c1b77e684fa  gcc/testsuite/gcc.c-torture/compile/920501-4.c
! 644aab70b0d19e89d2fcc3d466da2ab5  gcc/testsuite/gcc.c-torture/compile/920501-6.c
! c7ea1748cd3467226b9d3d03e4de784a  gcc/testsuite/gcc.c-torture/compile/920501-7.c
! 6ea4656106dddf35813fe995ef6264a0  gcc/testsuite/gcc.c-torture/compile/920501-8.c
  60492beefa479246de9e660297e714d2  gcc/testsuite/gcc.c-torture/compile/920501-9.c
! b4c19ce1711eda917bf5173118f17f2e  gcc/testsuite/gcc.c-torture/compile/920502-1.c
! f8a4a7cdd10bff2f497ead072397e806  gcc/testsuite/gcc.c-torture/compile/920502-2.c
! 583de640e56e501f1c8b9b53a7b0a1d9  gcc/testsuite/gcc.c-torture/compile/920520-1.c
! 405b153e9d3a5a57da05e628d3914e24  gcc/testsuite/gcc.c-torture/compile/920521-1.c
! 9a16272f8323906af4c9a34c181d6596  gcc/testsuite/gcc.c-torture/compile/920529-1.c
! aa1427bdf230c07137e97422e052cec4  gcc/testsuite/gcc.c-torture/compile/920608-1.c
  7c9e7b4acd81c412ea185d9fd7110b7e  gcc/testsuite/gcc.c-torture/compile/920611-2.c
! 600aa046fa476ffff764c833b84896d2  gcc/testsuite/gcc.c-torture/compile/920615-1.c
! fbb0365bd4a5e1e85b901d387d74d038  gcc/testsuite/gcc.c-torture/compile/920617-1.c
! 77d8caabe08bd49358050068d062df2c  gcc/testsuite/gcc.c-torture/compile/920617-2.c
! 4491ec801676296103d18319456215d6  gcc/testsuite/gcc.c-torture/compile/920623-1.c
! 2e8ffb1336c47a3b4e032a1d92985ae7  gcc/testsuite/gcc.c-torture/compile/920624-1.c
! d45a9403b331720d425561402c5429ed  gcc/testsuite/gcc.c-torture/compile/920625-1.c
! 5447e7fb514ab79cac9574a600b04e98  gcc/testsuite/gcc.c-torture/compile/920625-2.c
! 0b85ce2389ae44cbd2156d91559d6ad3  gcc/testsuite/gcc.c-torture/compile/920626-1.c
! 8bf5bbaec2abf711b620b212bbb252c6  gcc/testsuite/gcc.c-torture/compile/920701-1.c
  d5a819c893100ddb0e855fc74d121532  gcc/testsuite/gcc.c-torture/compile/920702-1.c
! 3d20502b01845be88a44a2b998656235  gcc/testsuite/gcc.c-torture/compile/920706-1.c
! 7285f2c12826e79e8991a7ef882099c0  gcc/testsuite/gcc.c-torture/compile/920710-2.c
! ae7892ff9be94276e65c533f5d5182d1  gcc/testsuite/gcc.c-torture/compile/920711-1.c
  aaa8f208a01348f3ee5052c6831f05f4  gcc/testsuite/gcc.c-torture/compile/920721-1.c
! 1b444e910adedb09953d7bdb38bd898f  gcc/testsuite/gcc.c-torture/compile/920723-1.c
! 2d992e7722d12fd859dec5aac58e0d46  gcc/testsuite/gcc.c-torture/compile/920729-1.c
! 8cdfcc391165a0c03ef18277d0b33cb0  gcc/testsuite/gcc.c-torture/compile/920806-1.c
! 735d9899a051cc22605f4da678fb1469  gcc/testsuite/gcc.c-torture/compile/920808-1.c
! cb44996ab8beeae8ffba0981010edc88  gcc/testsuite/gcc.c-torture/compile/920809-1.c
! 9691b5de1405b369da418701a8eeae1a  gcc/testsuite/gcc.c-torture/compile/920817-1.c
  aab2cdafbd3ed9c8764dc795ce65d92d  gcc/testsuite/gcc.c-torture/compile/920820-1.c
  6bc56500657f8c3b71b20af4c69e967f  gcc/testsuite/gcc.c-torture/compile/920821-1.c
! 016341077feda00aeee74cdc972c5750  gcc/testsuite/gcc.c-torture/compile/920821-2.c
! 96517ca597624b0cb757b55166ac4182  gcc/testsuite/gcc.c-torture/compile/920825-1.c
! 2695c68c561079bf663a3d750705bade  gcc/testsuite/gcc.c-torture/compile/920825-2.c
! 56190d8f81c77bd5e67bf0423c4398fe  gcc/testsuite/gcc.c-torture/compile/920826-1.c
! 7f0456d608a560faf35105b0c09c3236  gcc/testsuite/gcc.c-torture/compile/920828-1.c
! caa1a01ede4333d698bef680a5d041ef  gcc/testsuite/gcc.c-torture/compile/920829-1.c
! 52869a998d121da36c8f3bb3ec2ed8f9  gcc/testsuite/gcc.c-torture/compile/920831-1.c
  7516f511f79af2ea564813bc97908657  gcc/testsuite/gcc.c-torture/compile/920902-1.c
  dcd35de0f89d9f5f78e924e63b2bd56e  gcc/testsuite/gcc.c-torture/compile/920909-1.c
! 83d6ce63e1cc029ae51730cf57e67162  gcc/testsuite/gcc.c-torture/compile/920917-1.c
  51a55f1e12d2ec97bb1989f4fb2fc64e  gcc/testsuite/gcc.c-torture/compile/920928-1.c
! ce20e69c6ef5e9941fcefe538adb151a  gcc/testsuite/gcc.c-torture/compile/920928-2.c
! fec5da9bbe15aab3c1cd2cbfce5835d3  gcc/testsuite/gcc.c-torture/compile/920928-3.c
  f95d1bc7b947261fe13ac831b93e9f0f  gcc/testsuite/gcc.c-torture/compile/920928-4.c
! fb4051fe5a8dbbee03dc70478edca515  gcc/testsuite/gcc.c-torture/compile/920928-5.c
  642c7bc08299762b523fc3b821b5c9f7  gcc/testsuite/gcc.c-torture/compile/920928-6.c
  f4fa1bbf462edd563b8b4325def214ab  gcc/testsuite/gcc.c-torture/compile/921004-1.c
  a2ac01569de5c161cfcf92f5aae83ba4  gcc/testsuite/gcc.c-torture/compile/921011-1.c
  353c7e3e934aca89ca4522ff059e329d  gcc/testsuite/gcc.c-torture/compile/921011-2.c
! 8d53418362f8a16eeba080993b845531  gcc/testsuite/gcc.c-torture/compile/921012-1.c
! 20ad84b3b81406d873077890d196ae03  gcc/testsuite/gcc.c-torture/compile/921012-2.c
! 8f5375affcc0396e86321f2a135a12dc  gcc/testsuite/gcc.c-torture/compile/921013-1.c
! 0e434efdb30fa83e85514eff65d5df33  gcc/testsuite/gcc.c-torture/compile/921019-1.c
! babc90d37c6f3f3582c1f5775dd6f2cf  gcc/testsuite/gcc.c-torture/compile/921021-1.c
! aa19a5ed1c4a87cecd3b21ba3526ebb7  gcc/testsuite/gcc.c-torture/compile/921024-1.c
! dc1412fb6b4f9c8a313486d67f25768a  gcc/testsuite/gcc.c-torture/compile/921026-1.c
! 85dc038deab085d354d0f0cb30655ae6  gcc/testsuite/gcc.c-torture/compile/921103-1.c
! 50a42fb6ad311201e5b9a9e74d65ebf3  gcc/testsuite/gcc.c-torture/compile/921109-1.c
! ade64637abef6ba85c59747321b9b846  gcc/testsuite/gcc.c-torture/compile/921111-1.c
! 2d64469b94131f6009f85251f2303687  gcc/testsuite/gcc.c-torture/compile/921116-2.c
! 12021c4f15c3640ff0c83b27be5413ba  gcc/testsuite/gcc.c-torture/compile/921118-1.c
! 0265127b42477e58f03c53db97dd68ac  gcc/testsuite/gcc.c-torture/compile/921126-1.c
! cd16b1ef9543af46bc8f0aae300cbc4b  gcc/testsuite/gcc.c-torture/compile/921202-1.c
! c9489cd91c5655564b29982f0a5ce20f  gcc/testsuite/gcc.c-torture/compile/921202-2.c
! cd593020877c1cde7bee6ad609be12b7  gcc/testsuite/gcc.c-torture/compile/921203-1.c
! 781bea75bf1845a916ef1825e70972eb  gcc/testsuite/gcc.c-torture/compile/921203-2.c
! 482f5b27fa01cb5ed7b9a2b1f802df9d  gcc/testsuite/gcc.c-torture/compile/921206-1.c
! 73e933b3b2db8f377e730aaae4a393aa  gcc/testsuite/gcc.c-torture/compile/921227-1.c
! 220d8afb637c49c113fbe29d7a774322  gcc/testsuite/gcc.c-torture/compile/930109-1.c
! 0f6a74c2ed8115dc5c9f31f9f2115956  gcc/testsuite/gcc.c-torture/compile/930109-2.c
! cb0533c5a0867f2b563972a2a8fd0ba1  gcc/testsuite/gcc.c-torture/compile/930111-1.c
! 3cab63f502ca90d46888d5a32e09f6a4  gcc/testsuite/gcc.c-torture/compile/930117-1.c
! 576734b2b27c6668924b4f73b4c185da  gcc/testsuite/gcc.c-torture/compile/930118-1.c
! a2aa6df8d882e5e1f0686989c50c4e2b  gcc/testsuite/gcc.c-torture/compile/930120-1.c
  4bca6a24ace151e57f300f95e1aa9d43  gcc/testsuite/gcc.c-torture/compile/930126-1.c
! f48e1239b2aae060ba9309ad429c93e3  gcc/testsuite/gcc.c-torture/compile/930210-1.c
! 6ee4de5378f60484ca4756a81a8c7649  gcc/testsuite/gcc.c-torture/compile/930217-1.c
! e60bc69c4f3025526538a926521161ac  gcc/testsuite/gcc.c-torture/compile/930222-1.c
! 06f3974fd12ea7b1ddee03e56f41ec73  gcc/testsuite/gcc.c-torture/compile/930325-1.c
  9ec362d2f58ab4796c448cc160f9db21  gcc/testsuite/gcc.c-torture/compile/930326-1.c
! 9fb884a107d382d9875956af640447b0  gcc/testsuite/gcc.c-torture/compile/930411-1.c
! 785faa07415e510f399373eab59b18ae  gcc/testsuite/gcc.c-torture/compile/930421-1.c
! 880b92272a62038049f375de6ccd8393  gcc/testsuite/gcc.c-torture/compile/930427-2.c
! 40f9a6d5b4a8729314ef8f7c55abc6c4  gcc/testsuite/gcc.c-torture/compile/930503-1.c
! 33c1de505421e4c1211f698db3e15a21  gcc/testsuite/gcc.c-torture/compile/930503-2.c
  1dbbdf0fc602c4d0d9c3f8a015730cd0  gcc/testsuite/gcc.c-torture/compile/930506-1.c
! d9a9138c93f3d3335fec250ca2b6e7a1  gcc/testsuite/gcc.c-torture/compile/930506-2.c
  a18b126d1d15e183372546a549da893f  gcc/testsuite/gcc.c-torture/compile/930510-1.c
! e74e79ee49510666122e6a9ede279f20  gcc/testsuite/gcc.c-torture/compile/930513-1.c
! 940407735c2b61679008f3966c688887  gcc/testsuite/gcc.c-torture/compile/930513-2.c
! 8eab3f71a4efc039b8855fb705053621  gcc/testsuite/gcc.c-torture/compile/930513-3.c
! f7c16bd3068d8238572f1ab7e32a77d7  gcc/testsuite/gcc.c-torture/compile/930523-1.c
  0add0203571c10974f02f88813a62489  gcc/testsuite/gcc.c-torture/compile/930525-1.c
! 281a624b48159937e97e19018020939f  gcc/testsuite/gcc.c-torture/compile/930527-1.c
! 351d295f28cabdbe9ea6b14475742504  gcc/testsuite/gcc.c-torture/compile/930529-1.c
! 41171fa59e762c94eb31e93948a2b277  gcc/testsuite/gcc.c-torture/compile/930530-1.c
! 84f41975827d073f3ea00f76d92b2d7d  gcc/testsuite/gcc.c-torture/compile/930602-1.c
! b719ad087c44e8b24156c7b7d9cb30c7  gcc/testsuite/gcc.c-torture/compile/930603-1.c
! 0cc6da2aa173c51ffc6976e2e8a60cd2  gcc/testsuite/gcc.c-torture/compile/930607-1.c
  15f97d8b684256c856e086c624121930  gcc/testsuite/gcc.c-torture/compile/930611-1.c
! eadcad6ecf65a5972d20a967ffb0d00b  gcc/testsuite/gcc.c-torture/compile/930618-1.c
  9d85b13162c7158b84b84109c3b55254  gcc/testsuite/gcc.c-torture/compile/930621-1.c
! 24238eebda8c2bb24d8955901051331c  gcc/testsuite/gcc.c-torture/compile/930623-1.c
! 69d4728c7b1519af4bc98c617cdb1193  gcc/testsuite/gcc.c-torture/compile/930702-1.c
  2f328194c828cc3679272f1db3af7d28  gcc/testsuite/gcc.c-torture/compile/930926-1.c
  21de44a21e6aea8e429bb555a0f60f7b  gcc/testsuite/gcc.c-torture/compile/930927-1.c
! 3417fda2abdd68ae2c2b9a0a92e9428d  gcc/testsuite/gcc.c-torture/compile/931003-1.c
  c4798ece3b0832d992f3a11cc4ef831d  gcc/testsuite/gcc.c-torture/compile/931004-1.c
! 337beab7c6e06da4ab87ae366a4c8e32  gcc/testsuite/gcc.c-torture/compile/931013-1.c
! 48f3123bd0ae72ddc5f5f4ec9d2588f5  gcc/testsuite/gcc.c-torture/compile/931013-2.c
  d187434c58ba9d3d4b3cefa9badc6ed6  gcc/testsuite/gcc.c-torture/compile/931013-3.c
! ad25df6bea5493f4aa5ecc34b75bfab6  gcc/testsuite/gcc.c-torture/compile/931018-1.c
! 53700d4023598ef814ad2cde399fddf2  gcc/testsuite/gcc.c-torture/compile/931031-1.c
! 2d32c0369018ab5804b9e79f11887976  gcc/testsuite/gcc.c-torture/compile/931102-1.c
! ed97c961310ff3e06c47e1230df8c98d  gcc/testsuite/gcc.c-torture/compile/931102-2.c
! 88e9943624f987f6a82142d484c0ad88  gcc/testsuite/gcc.c-torture/compile/931203-1.c
! 14ee4cb75369ece15b7a4c7dd6777f83  gcc/testsuite/gcc.c-torture/compile/940611-1.c
! db5146ffe5025678a4ce338b3811d486  gcc/testsuite/gcc.c-torture/compile/940712-1.c
! 85657a5cd4f7d7e6e0e8b4efd293f3cb  gcc/testsuite/gcc.c-torture/compile/940718-1.c
! 565b57dd0462e5a127dfbdd8436a34b6  gcc/testsuite/gcc.c-torture/compile/941014-1.c
! 8d7b03d56c22848c973f4eb20fb133d6  gcc/testsuite/gcc.c-torture/compile/941014-2.c
! a39b960a0b722d82b919fdd9bf64fc8f  gcc/testsuite/gcc.c-torture/compile/941014-3.c
! f5f63ab097ef88aa1a9649b17aae6653  gcc/testsuite/gcc.c-torture/compile/941014-4.c
  692310b1928680b9d93500f3c58b1a6d  gcc/testsuite/gcc.c-torture/compile/941019-1.c
! 2b8f65fdfe1069a3d2c1f13dca1fec9e  gcc/testsuite/gcc.c-torture/compile/941111-1.c
! ff829af1ac8d032f194ed454cf653874  gcc/testsuite/gcc.c-torture/compile/941113-1.c
  c11a1c861b3a0bc02ab0b2eb4abac903  gcc/testsuite/gcc.c-torture/compile/950122-1.c
! f0250e5d6cefc772cbf9d2111c7958bc  gcc/testsuite/gcc.c-torture/compile/950124-1.c
  e6cd8327a8ed37632a8a76b6118780ac  gcc/testsuite/gcc.c-torture/compile/950221-1.c
! 301210b5cfbc0ba3b14a149fc9b57c63  gcc/testsuite/gcc.c-torture/compile/950329-1.c
! 0bcdab6404e011a214daa5fab8ed63dc  gcc/testsuite/gcc.c-torture/compile/950512-1.c
! 019ae516b4a304defcd66c30b354204d  gcc/testsuite/gcc.c-torture/compile/950530-1.c
  99b362f8667d3e6158f3b20eff8425df  gcc/testsuite/gcc.c-torture/compile/950607-1.c
! 4b01e3b6041c7eae6c696be4bb9363d5  gcc/testsuite/gcc.c-torture/compile/950610-1.c
! ba832ab3d1e8f266a871da86652ef2f2  gcc/testsuite/gcc.c-torture/compile/950612-1.c
! e8b9393689e5fb05f0c746b98bccd150  gcc/testsuite/gcc.c-torture/compile/950613-1.c
! ce06000d3ffb218130cc54507a0e2bd6  gcc/testsuite/gcc.c-torture/compile/950618-1.c
! 285d158813221f71520d2ddfd67a30b8  gcc/testsuite/gcc.c-torture/compile/950719-1.c
  c4e1d9d12ec066b4f789dfe5ffa8c166  gcc/testsuite/gcc.c-torture/compile/950729-1.c
! 5298d312db117c46108ce0c2c2a44915  gcc/testsuite/gcc.c-torture/compile/950816-1.c
! ee2d02023c0d24515f6dea3dc7f4071c  gcc/testsuite/gcc.c-torture/compile/950816-2.c
! 96501c7fce609c25e1903577e4947e7d  gcc/testsuite/gcc.c-torture/compile/950816-3.c
! de4137c4a5d8bb4d1f97817337faa650  gcc/testsuite/gcc.c-torture/compile/950910-1.c
! fe996bae396237f29bdcd1e41e33239e  gcc/testsuite/gcc.c-torture/compile/950919-1.c
! 8f494b56e726d6c7fd8251262b47c58f  gcc/testsuite/gcc.c-torture/compile/950921-1.c
! 77cc6a75431ff0957de6a1c2e7ab4030  gcc/testsuite/gcc.c-torture/compile/950922-1.c
! 4b19355c5ce86eb20544e22b1a8594e0  gcc/testsuite/gcc.c-torture/compile/951004-1.c
! a1bcd8bdd2111ed9909787d86538de92  gcc/testsuite/gcc.c-torture/compile/951106-1.c
! afa71711c3a71f51e4e7bdacfcce7220  gcc/testsuite/gcc.c-torture/compile/951116-1.c
! 3436123ba403ca8181ac17a6c145bb0f  gcc/testsuite/gcc.c-torture/compile/951128-1.c
! 7af9dda3c70f47530236d7c399925a39  gcc/testsuite/gcc.c-torture/compile/951220-1.c
! f75ec91303a9b9d4f7a0de75414ee9a4  gcc/testsuite/gcc.c-torture/compile/951222-1.c
! b8095e653917442538a80e5d8dc941f8  gcc/testsuite/gcc.c-torture/compile/960106-1.c
  28159bd7c9105bca2fa607179c30a0bc  gcc/testsuite/gcc.c-torture/compile/960130-1.c
  ce68b2ca78c73d68e0a194228753c5a5  gcc/testsuite/gcc.c-torture/compile/960201-1.c
  a6a29fbb43832a924022b3c4bd1e79b1  gcc/testsuite/gcc.c-torture/compile/960218-1.c
! 82970e427d9aa678d68f3ba77f073d7f  gcc/testsuite/gcc.c-torture/compile/960220-1.c
! 24aca8533fe7ea0e23085ae36f13e7da  gcc/testsuite/gcc.c-torture/compile/960221-1.c
! f189faf7a5eb19e35d84b4cdb59adef8  gcc/testsuite/gcc.c-torture/compile/960319-1.c
  77ed9d790b9d97a193f6a4152a9e0dda  gcc/testsuite/gcc.c-torture/compile/960514-1.c
! 8bbe11382e2da710eaf5ba133e9662a7  gcc/testsuite/gcc.c-torture/compile/960704-1.c
! dbd550608fdba7faca7d667d50647a77  gcc/testsuite/gcc.c-torture/compile/960829-1.c
  5da80126ec14d97030a75dc6bf4730ca  gcc/testsuite/gcc.c-torture/compile/961004-1.c
  0bb71891960b7f871c950328a6b53236  gcc/testsuite/gcc.c-torture/compile/961010-1.c
  f3c9403d1cdf680a65b6f244593a2905  gcc/testsuite/gcc.c-torture/compile/961019-1.c
! 7a218232480746aa0d40c4d0c84c0d87  gcc/testsuite/gcc.c-torture/compile/961031-1.c
! 90a0fa161c3ee2ed7c2a33295e9b72e4  gcc/testsuite/gcc.c-torture/compile/961126-1.c
! a27b659a45a43b25315c7bcfa272cbbd  gcc/testsuite/gcc.c-torture/compile/961203-1.c
! adc4179398474fd9c1893c3104cf11aa  gcc/testsuite/gcc.c-torture/compile/970206-1.c
  15e9ddca3bd86005bd150a54a4449592  gcc/testsuite/gcc.c-torture/compile/970214-1.c
  f110e0c441a6c9777ed2055c1dab53ce  gcc/testsuite/gcc.c-torture/compile/980329-1.c
  5807a9f9b3202a882e305630830cb7e0  gcc/testsuite/gcc.c-torture/compile/980408-1.c
--- 35561,35777 ----
  def92f3b63a65df18a9bdd4e76c85a9e  gcc/testsuite/gcc.c-torture/compile/20200105-2.c
  a0bb22bf006ce279fd2d87b2e96b8b16  gcc/testsuite/gcc.c-torture/compile/20200105-3.c
  33b8f69875aa6b0015ade0ac45121856  gcc/testsuite/gcc.c-torture/compile/20200313-1.c
! a395fbe29f0c2fd7d7bd7cdeed61ed03  gcc/testsuite/gcc.c-torture/compile/386.c
! c40fe2c892a13a47e35f3a421f0a3bdb  gcc/testsuite/gcc.c-torture/compile/86.c
  ab32e65ea5976f9083dc8234dae65343  gcc/testsuite/gcc.c-torture/compile/900116-1.c
! ffbcb174ccee57e24e8ff6916f8be73f  gcc/testsuite/gcc.c-torture/compile/900216-1.c
! 3dc49ab553ddbb32d00810ba8ef275c0  gcc/testsuite/gcc.c-torture/compile/900313-1.c
! 79026aaee0f43ae9a67ab8b2e64cccb9  gcc/testsuite/gcc.c-torture/compile/900407-1.c
! a02364b749e287c7ed217cb15e6941ae  gcc/testsuite/gcc.c-torture/compile/900516-1.c
! 0fae76138fbb514d67fafe81bce955d8  gcc/testsuite/gcc.c-torture/compile/920301-1.c
! 2408d8ff20dc94ac6ccac7cdd33cea0e  gcc/testsuite/gcc.c-torture/compile/920409-1.c
! e53b1ac928e21de27fd7624029619c48  gcc/testsuite/gcc.c-torture/compile/920409-2.c
! 1514039253643dca26628f887615ddbd  gcc/testsuite/gcc.c-torture/compile/920410-1.c
! 48038bc50321b4cff7b84628f249231a  gcc/testsuite/gcc.c-torture/compile/920410-2.c
! aeafe2d9c30382e2802215889558839f  gcc/testsuite/gcc.c-torture/compile/920411-2.c
! 88530ada043dfa49f02d9057f7b1cdb3  gcc/testsuite/gcc.c-torture/compile/920413-1.c
! 39dfa0645377e2250a568163414f0c25  gcc/testsuite/gcc.c-torture/compile/920415-1.c
! 2263b18cffcfc2c714b44ee12e735085  gcc/testsuite/gcc.c-torture/compile/920428-1.c
  96e36fcdc4db17c2eb3e6be9b29bb5ea  gcc/testsuite/gcc.c-torture/compile/920428-2.c
! f7885c4f83452a5ca80935f907381a4c  gcc/testsuite/gcc.c-torture/compile/920428-3.c
! f886f6f3229f98f60b5fadd708f9009d  gcc/testsuite/gcc.c-torture/compile/920428-4.c
! 0c8b2f809207fa49123103e74899a50c  gcc/testsuite/gcc.c-torture/compile/920428-5.c
  eecf565315f5f6b7f87919ef37893a50  gcc/testsuite/gcc.c-torture/compile/920428-6.c
! 64a77943abb44f78ac61c448aba4d43d  gcc/testsuite/gcc.c-torture/compile/920428-7.c
! c4caa2931428a155503abd55488fc8f1  gcc/testsuite/gcc.c-torture/compile/920501-1.c
! e3a51993dc64a9aea0bc74ed7baf271c  gcc/testsuite/gcc.c-torture/compile/920501-10.c
! 1baf573b64e11a62abad279ed6e47c8e  gcc/testsuite/gcc.c-torture/compile/920501-11.c
! 81f04fbd76695896964a1ab7e081e7ba  gcc/testsuite/gcc.c-torture/compile/920501-12.c
! 298848bdbec2b0c13f8a99d4d9b0dbaf  gcc/testsuite/gcc.c-torture/compile/920501-13.c
! a496e05b0ecb415a0a53a943710820c3  gcc/testsuite/gcc.c-torture/compile/920501-15.c
! bb2d76091ccc5a88ab8ad1cde94e8b8c  gcc/testsuite/gcc.c-torture/compile/920501-16.c
! e42316bb7fa6189fb3e263916eabe376  gcc/testsuite/gcc.c-torture/compile/920501-17.c
! dcfc4d0b70dc34c6342890db704e85e4  gcc/testsuite/gcc.c-torture/compile/920501-18.c
! d1a2a3eaf09aa1612986941c747b74e8  gcc/testsuite/gcc.c-torture/compile/920501-19.c
  b9e847994b53ca110e153b3b0b77a857  gcc/testsuite/gcc.c-torture/compile/920501-2.c
! 7a8753ecf45f6a83d63186ea28a570e8  gcc/testsuite/gcc.c-torture/compile/920501-20.c
  14f219d1b999de6667a18fa089502c9b  gcc/testsuite/gcc.c-torture/compile/920501-21.c
! f599a4a9777ec26a5ab144487036cb94  gcc/testsuite/gcc.c-torture/compile/920501-22.c
! c8069affa941653c8a1b82111277f1b4  gcc/testsuite/gcc.c-torture/compile/920501-23.c
! a683c6866fdbf89d24fdbac6e09f760e  gcc/testsuite/gcc.c-torture/compile/920501-3.c
! 7a1507f7627cc39808868eaa2a68ec5f  gcc/testsuite/gcc.c-torture/compile/920501-4.c
! 442fe9e77a0a5c45092b332eb6564f5b  gcc/testsuite/gcc.c-torture/compile/920501-6.c
! e980af28b8d20ec40068b5acaba560b6  gcc/testsuite/gcc.c-torture/compile/920501-7.c
! b5325659690cfe9c53901212b657f5f1  gcc/testsuite/gcc.c-torture/compile/920501-8.c
  60492beefa479246de9e660297e714d2  gcc/testsuite/gcc.c-torture/compile/920501-9.c
! 33599f959cd6001e6cbcfde18aa6a997  gcc/testsuite/gcc.c-torture/compile/920502-1.c
! bf004c88370747a4252c561ed6dcedef  gcc/testsuite/gcc.c-torture/compile/920502-2.c
! 3fb970900c59052e0752045900137022  gcc/testsuite/gcc.c-torture/compile/920520-1.c
! a53c82c097d1032398775a3fd3bf4f27  gcc/testsuite/gcc.c-torture/compile/920521-1.c
! d4e7a7f1c15845a637156ea5781cd449  gcc/testsuite/gcc.c-torture/compile/920529-1.c
! 21b4b9c8ebf02c23fbef1f582dba01b4  gcc/testsuite/gcc.c-torture/compile/920608-1.c
  7c9e7b4acd81c412ea185d9fd7110b7e  gcc/testsuite/gcc.c-torture/compile/920611-2.c
! 68cda4b39882a0cb8959218542d776c5  gcc/testsuite/gcc.c-torture/compile/920615-1.c
! cc8561b7079f8ea293844e02e7d905e8  gcc/testsuite/gcc.c-torture/compile/920617-1.c
! d552f099e140814245687ae91881ab8c  gcc/testsuite/gcc.c-torture/compile/920617-2.c
! 764d16a3e4621b5fb1b7db31806ff1eb  gcc/testsuite/gcc.c-torture/compile/920623-1.c
! 2320434e7bed4814ef84f91b7f81d822  gcc/testsuite/gcc.c-torture/compile/920624-1.c
! d0c0a2db360951d0a136e33bd75c6024  gcc/testsuite/gcc.c-torture/compile/920625-1.c
! e1cb56d4116c01311adcb2ad2c386f78  gcc/testsuite/gcc.c-torture/compile/920625-2.c
! 003919faef140ccaacfe7d353c25599e  gcc/testsuite/gcc.c-torture/compile/920626-1.c
! 20c8d13609aee1b7d79c665556bfbcca  gcc/testsuite/gcc.c-torture/compile/920701-1.c
  d5a819c893100ddb0e855fc74d121532  gcc/testsuite/gcc.c-torture/compile/920702-1.c
! c60eadfa47a3abd1d682621d522e4f69  gcc/testsuite/gcc.c-torture/compile/920706-1.c
! a05de48a3ca273b37e33d8ab8460f5de  gcc/testsuite/gcc.c-torture/compile/920710-2.c
! 26576f82b198e57319d7008e8ddf36d6  gcc/testsuite/gcc.c-torture/compile/920711-1.c
  aaa8f208a01348f3ee5052c6831f05f4  gcc/testsuite/gcc.c-torture/compile/920721-1.c
! 3ee0b7127716b6998ca4cc5de6c48e84  gcc/testsuite/gcc.c-torture/compile/920723-1.c
! 798be4fbb3a4fcf84a7c63b40707420f  gcc/testsuite/gcc.c-torture/compile/920729-1.c
! 56271d6a6f76f55525b49652aed091f8  gcc/testsuite/gcc.c-torture/compile/920806-1.c
! be5cbc21346ff5c2898ec5f45ce0af98  gcc/testsuite/gcc.c-torture/compile/920808-1.c
! 54056a438ed7598fbd7a1647e0fac511  gcc/testsuite/gcc.c-torture/compile/920809-1.c
! c4416ade3b0335bdfe45602a0d9821d9  gcc/testsuite/gcc.c-torture/compile/920817-1.c
  aab2cdafbd3ed9c8764dc795ce65d92d  gcc/testsuite/gcc.c-torture/compile/920820-1.c
  6bc56500657f8c3b71b20af4c69e967f  gcc/testsuite/gcc.c-torture/compile/920821-1.c
! 38f2fe8bb3e147ce26913f49286c6296  gcc/testsuite/gcc.c-torture/compile/920821-2.c
! 090f6724168dc6ca91d33c44e949ba5c  gcc/testsuite/gcc.c-torture/compile/920825-1.c
! 1d57b29876e7af80368ed83138a78c0c  gcc/testsuite/gcc.c-torture/compile/920825-2.c
! ae99e6dc1eb465cc3803ee231f3edd9b  gcc/testsuite/gcc.c-torture/compile/920826-1.c
! c16d03a10947a9c11044cad1c469fba1  gcc/testsuite/gcc.c-torture/compile/920828-1.c
! e0b3082ac7d76bf665a4781d7a57afee  gcc/testsuite/gcc.c-torture/compile/920829-1.c
! 52b60540be2970342fbbdf5091e6a964  gcc/testsuite/gcc.c-torture/compile/920831-1.c
  7516f511f79af2ea564813bc97908657  gcc/testsuite/gcc.c-torture/compile/920902-1.c
  dcd35de0f89d9f5f78e924e63b2bd56e  gcc/testsuite/gcc.c-torture/compile/920909-1.c
! 32b64cce729e579d19eb72e49a8cca8d  gcc/testsuite/gcc.c-torture/compile/920917-1.c
  51a55f1e12d2ec97bb1989f4fb2fc64e  gcc/testsuite/gcc.c-torture/compile/920928-1.c
! eee5131873b1767b39f78e4a623eee1b  gcc/testsuite/gcc.c-torture/compile/920928-2.c
! 17fffee99ec1b22d24f763095982f33a  gcc/testsuite/gcc.c-torture/compile/920928-3.c
  f95d1bc7b947261fe13ac831b93e9f0f  gcc/testsuite/gcc.c-torture/compile/920928-4.c
! 67f9a365ebb48363f8c36e3453da902a  gcc/testsuite/gcc.c-torture/compile/920928-5.c
  642c7bc08299762b523fc3b821b5c9f7  gcc/testsuite/gcc.c-torture/compile/920928-6.c
  f4fa1bbf462edd563b8b4325def214ab  gcc/testsuite/gcc.c-torture/compile/921004-1.c
  a2ac01569de5c161cfcf92f5aae83ba4  gcc/testsuite/gcc.c-torture/compile/921011-1.c
  353c7e3e934aca89ca4522ff059e329d  gcc/testsuite/gcc.c-torture/compile/921011-2.c
! 3c0977eae8eb617f31c1c8a2569cb179  gcc/testsuite/gcc.c-torture/compile/921012-1.c
! 809a60440e40f5097a6a40e708e91841  gcc/testsuite/gcc.c-torture/compile/921012-2.c
! 47ac9a48337b195857dba336e88503c9  gcc/testsuite/gcc.c-torture/compile/921013-1.c
! cd33222d02b317550e9237164aa9da7e  gcc/testsuite/gcc.c-torture/compile/921019-1.c
! a27feec7cd4f33e269be3f63abcd4081  gcc/testsuite/gcc.c-torture/compile/921021-1.c
! 7921e1b5ae6bebe85ce1d77cc9257a3e  gcc/testsuite/gcc.c-torture/compile/921024-1.c
! 72c0a792a945dcaa9c8fda0ca7729078  gcc/testsuite/gcc.c-torture/compile/921026-1.c
! aefd46fa1c28cca23700375962e65fce  gcc/testsuite/gcc.c-torture/compile/921103-1.c
! ab397f80112c83d017ee7edaaace6f73  gcc/testsuite/gcc.c-torture/compile/921109-1.c
! 8ec6c08c5fa38567237aa0afd8598598  gcc/testsuite/gcc.c-torture/compile/921111-1.c
! 166ec2dd5e70390fa27e699acdf50170  gcc/testsuite/gcc.c-torture/compile/921116-2.c
! 6c84932e0714ea1afa54f5f3c015ffb7  gcc/testsuite/gcc.c-torture/compile/921118-1.c
! 75c7b9213be6ed5a5c80021d77c12046  gcc/testsuite/gcc.c-torture/compile/921126-1.c
! 6becabbd3b0dcc630872251bedbb258b  gcc/testsuite/gcc.c-torture/compile/921202-1.c
! d414348277e45b01a1c9320bd0de7f72  gcc/testsuite/gcc.c-torture/compile/921202-2.c
! a62c8cd5863460cfdfdecc9327ed66f2  gcc/testsuite/gcc.c-torture/compile/921203-1.c
! 7f7c52c15c0578c4b25639bccc9b93d9  gcc/testsuite/gcc.c-torture/compile/921203-2.c
! 01afb4febcd7983a828c8d887cb75965  gcc/testsuite/gcc.c-torture/compile/921206-1.c
! e095f887ee062bcaf2c6c0c5b9d53b35  gcc/testsuite/gcc.c-torture/compile/921227-1.c
! 3fc095a5d17c3fa52533d07a8ab4d356  gcc/testsuite/gcc.c-torture/compile/930109-1.c
! 453d69f3a6083cf6a0163031ed78bc84  gcc/testsuite/gcc.c-torture/compile/930109-2.c
! 1400ab343662fadbd35d7a73a2b03c86  gcc/testsuite/gcc.c-torture/compile/930111-1.c
! 73584f6822a132f5a9ef03a260730374  gcc/testsuite/gcc.c-torture/compile/930117-1.c
! 8d3ab5b940c0171e86ab94915957f314  gcc/testsuite/gcc.c-torture/compile/930118-1.c
! eb39e95991915c18f5b36d41bbd810b4  gcc/testsuite/gcc.c-torture/compile/930120-1.c
  4bca6a24ace151e57f300f95e1aa9d43  gcc/testsuite/gcc.c-torture/compile/930126-1.c
! 5d6dcb19d6093a97011aeb41058f9976  gcc/testsuite/gcc.c-torture/compile/930210-1.c
! f22ad35231d37838a07bbc5712baf038  gcc/testsuite/gcc.c-torture/compile/930217-1.c
! 1ed6990f085b567682a4ec3d5fa023a4  gcc/testsuite/gcc.c-torture/compile/930222-1.c
! 46a7cd23d2988405af8d9fe202502ff3  gcc/testsuite/gcc.c-torture/compile/930325-1.c
  9ec362d2f58ab4796c448cc160f9db21  gcc/testsuite/gcc.c-torture/compile/930326-1.c
! d87caf241d1421b03ad2b6b57a26d6e3  gcc/testsuite/gcc.c-torture/compile/930411-1.c
! 6e37d81cbf0f7a89f7a09ba4081bcde4  gcc/testsuite/gcc.c-torture/compile/930421-1.c
! b0ab7b593eaba9df103ca271c5a4e81f  gcc/testsuite/gcc.c-torture/compile/930427-2.c
! 063793cd6923990070272a211433c0b8  gcc/testsuite/gcc.c-torture/compile/930503-1.c
! 2ca409a8d1650cdbf1c855f20895ebdc  gcc/testsuite/gcc.c-torture/compile/930503-2.c
  1dbbdf0fc602c4d0d9c3f8a015730cd0  gcc/testsuite/gcc.c-torture/compile/930506-1.c
! 653928c62f6b5311a9f60768966c83a8  gcc/testsuite/gcc.c-torture/compile/930506-2.c
  a18b126d1d15e183372546a549da893f  gcc/testsuite/gcc.c-torture/compile/930510-1.c
! 4188554451193f0f77c73645b86f3de8  gcc/testsuite/gcc.c-torture/compile/930513-1.c
! ca557a8527cb0e28baa121e022baaa6a  gcc/testsuite/gcc.c-torture/compile/930513-2.c
! 91c7b15751819c7e20d1824ec89562f8  gcc/testsuite/gcc.c-torture/compile/930513-3.c
! f1a78ef21c4dc886768ce2dcdb8f9ef8  gcc/testsuite/gcc.c-torture/compile/930523-1.c
  0add0203571c10974f02f88813a62489  gcc/testsuite/gcc.c-torture/compile/930525-1.c
! b1dd68709cc93bc947c85b2b6ecfbfcf  gcc/testsuite/gcc.c-torture/compile/930527-1.c
! 11460fb88d024612ce873c1783ba795a  gcc/testsuite/gcc.c-torture/compile/930529-1.c
! 4d4a90a617a481873b5da055a11df522  gcc/testsuite/gcc.c-torture/compile/930530-1.c
! c271a73ef018536d562f87a4aa0da556  gcc/testsuite/gcc.c-torture/compile/930602-1.c
! 3b4c8a3442a310adaa25adb1d92ae091  gcc/testsuite/gcc.c-torture/compile/930603-1.c
! 895c5b9256ab1b330a06652521ba1352  gcc/testsuite/gcc.c-torture/compile/930607-1.c
  15f97d8b684256c856e086c624121930  gcc/testsuite/gcc.c-torture/compile/930611-1.c
! 7af3e0fd50675609014da294adb3b75e  gcc/testsuite/gcc.c-torture/compile/930618-1.c
  9d85b13162c7158b84b84109c3b55254  gcc/testsuite/gcc.c-torture/compile/930621-1.c
! bb691b1319b97daf0576ab16cdc65e6d  gcc/testsuite/gcc.c-torture/compile/930623-1.c
! eb22d0e9bec06531eddc334b26a5aaf0  gcc/testsuite/gcc.c-torture/compile/930702-1.c
  2f328194c828cc3679272f1db3af7d28  gcc/testsuite/gcc.c-torture/compile/930926-1.c
  21de44a21e6aea8e429bb555a0f60f7b  gcc/testsuite/gcc.c-torture/compile/930927-1.c
! 14333a4f1c610859b2550ed3952e6423  gcc/testsuite/gcc.c-torture/compile/931003-1.c
  c4798ece3b0832d992f3a11cc4ef831d  gcc/testsuite/gcc.c-torture/compile/931004-1.c
! eed54627931a39322edded86090db05c  gcc/testsuite/gcc.c-torture/compile/931013-1.c
! 65c9aed56e453fbfca047a127d955103  gcc/testsuite/gcc.c-torture/compile/931013-2.c
  d187434c58ba9d3d4b3cefa9badc6ed6  gcc/testsuite/gcc.c-torture/compile/931013-3.c
! 544c01642e23c4661305dc928dfb10a0  gcc/testsuite/gcc.c-torture/compile/931018-1.c
! 3cc7f660200a057c1bb859455113134b  gcc/testsuite/gcc.c-torture/compile/931031-1.c
! 72f019edaa6bfbb471f7de69e5fe7b72  gcc/testsuite/gcc.c-torture/compile/931102-1.c
! ec9a9191f11da24ee6b0f4eae8ecfbfe  gcc/testsuite/gcc.c-torture/compile/931102-2.c
! c0133a0e229f4a2b73f5525157b1a1e5  gcc/testsuite/gcc.c-torture/compile/931203-1.c
! 09748da21353bd3000f020b1966d985b  gcc/testsuite/gcc.c-torture/compile/940611-1.c
! 1cadbe47ca594df709242a1c984be0d5  gcc/testsuite/gcc.c-torture/compile/940712-1.c
! 4a34ccc1a878de80f81d817b341b1f04  gcc/testsuite/gcc.c-torture/compile/940718-1.c
! 616acf61c5355eb6eec4d119184d7c1d  gcc/testsuite/gcc.c-torture/compile/941014-1.c
! 781a4ac9f6df37f48c3a084ed488d60a  gcc/testsuite/gcc.c-torture/compile/941014-2.c
! de22201871abda1d5020d438238dcb6d  gcc/testsuite/gcc.c-torture/compile/941014-3.c
! 94935fa189410eaeb2c87b797f869690  gcc/testsuite/gcc.c-torture/compile/941014-4.c
  692310b1928680b9d93500f3c58b1a6d  gcc/testsuite/gcc.c-torture/compile/941019-1.c
! fd5db7d289ffb52a58094887f1134f2e  gcc/testsuite/gcc.c-torture/compile/941111-1.c
! 0181a7a86d6c6fe7436f08dd0a5e57cb  gcc/testsuite/gcc.c-torture/compile/941113-1.c
  c11a1c861b3a0bc02ab0b2eb4abac903  gcc/testsuite/gcc.c-torture/compile/950122-1.c
! b47a9bfd3a1127ce03d9f66fcde026a9  gcc/testsuite/gcc.c-torture/compile/950124-1.c
  e6cd8327a8ed37632a8a76b6118780ac  gcc/testsuite/gcc.c-torture/compile/950221-1.c
! 8926441ece272b5fc90dbbb45bf9a278  gcc/testsuite/gcc.c-torture/compile/950329-1.c
! a9772855cfd2f29e66ccedfaea9e9a89  gcc/testsuite/gcc.c-torture/compile/950512-1.c
! fc5f191a601573687980be9187b64f2b  gcc/testsuite/gcc.c-torture/compile/950530-1.c
  99b362f8667d3e6158f3b20eff8425df  gcc/testsuite/gcc.c-torture/compile/950607-1.c
! 46704b1df657ca79703def2265797ea7  gcc/testsuite/gcc.c-torture/compile/950610-1.c
! cb0ca258ab011e90a822befc854e13f0  gcc/testsuite/gcc.c-torture/compile/950612-1.c
! b60ff2c328afee2c745692bd5f3647c9  gcc/testsuite/gcc.c-torture/compile/950613-1.c
! aba903c1c7a82229d9cf92b304350f81  gcc/testsuite/gcc.c-torture/compile/950618-1.c
! 20f6f93890806cc929e294452e7f1df9  gcc/testsuite/gcc.c-torture/compile/950719-1.c
  c4e1d9d12ec066b4f789dfe5ffa8c166  gcc/testsuite/gcc.c-torture/compile/950729-1.c
! f7ef49a6bd15a5dbad504b6f4f53916a  gcc/testsuite/gcc.c-torture/compile/950816-1.c
! ef81d3ef20f57e272178d495c87120d7  gcc/testsuite/gcc.c-torture/compile/950816-2.c
! 534f85c4338a4d4b1a48c990a8287ee6  gcc/testsuite/gcc.c-torture/compile/950816-3.c
! 3ff8463cd2a17154e8e71b37fef27b4f  gcc/testsuite/gcc.c-torture/compile/950910-1.c
! 70ec156d9bb17f712a4358201ffa4de8  gcc/testsuite/gcc.c-torture/compile/950919-1.c
! 18ec64ba2bf68e8019c10f9c783f2ed3  gcc/testsuite/gcc.c-torture/compile/950921-1.c
! f092de4cdca96056702eab0e283ab43f  gcc/testsuite/gcc.c-torture/compile/950922-1.c
! e48c17e09346e9c5dd2faa1949b2c8b5  gcc/testsuite/gcc.c-torture/compile/951004-1.c
! 655b177afc44908fb3a26b7ff983629e  gcc/testsuite/gcc.c-torture/compile/951106-1.c
! c4008994ecfa0a04a1ed416d78b3d9a3  gcc/testsuite/gcc.c-torture/compile/951116-1.c
! 31fd3d5937204c79a80315c4d045a729  gcc/testsuite/gcc.c-torture/compile/951128-1.c
! 21d2eeac64a5327a6579f0fd95b45bda  gcc/testsuite/gcc.c-torture/compile/951220-1.c
! bc6ec75b9166f18a89c20a7132d75835  gcc/testsuite/gcc.c-torture/compile/951222-1.c
! 59ae82b944a56288c431dada3cf4b16d  gcc/testsuite/gcc.c-torture/compile/960106-1.c
  28159bd7c9105bca2fa607179c30a0bc  gcc/testsuite/gcc.c-torture/compile/960130-1.c
  ce68b2ca78c73d68e0a194228753c5a5  gcc/testsuite/gcc.c-torture/compile/960201-1.c
  a6a29fbb43832a924022b3c4bd1e79b1  gcc/testsuite/gcc.c-torture/compile/960218-1.c
! 552dae27d12eeb0f27e07189523b0fc4  gcc/testsuite/gcc.c-torture/compile/960220-1.c
! b4c4c6182fd4bb4a139e6526fc0e890b  gcc/testsuite/gcc.c-torture/compile/960221-1.c
! 0625dcd7546763c84a3056b5be7d9e1b  gcc/testsuite/gcc.c-torture/compile/960319-1.c
  77ed9d790b9d97a193f6a4152a9e0dda  gcc/testsuite/gcc.c-torture/compile/960514-1.c
! e6ad4c2bfa687027c4548f467536ba8c  gcc/testsuite/gcc.c-torture/compile/960704-1.c
! f4888927935704e43d993ce2162fab7e  gcc/testsuite/gcc.c-torture/compile/960829-1.c
  5da80126ec14d97030a75dc6bf4730ca  gcc/testsuite/gcc.c-torture/compile/961004-1.c
  0bb71891960b7f871c950328a6b53236  gcc/testsuite/gcc.c-torture/compile/961010-1.c
  f3c9403d1cdf680a65b6f244593a2905  gcc/testsuite/gcc.c-torture/compile/961019-1.c
! 9e86d4270387ea61246eafa80958e6c5  gcc/testsuite/gcc.c-torture/compile/961031-1.c
! bf43d77d205ad2a29042830cae78fda8  gcc/testsuite/gcc.c-torture/compile/961126-1.c
! 4375ce4a673bb02ef2b0bae5fe42380b  gcc/testsuite/gcc.c-torture/compile/961203-1.c
! cf20d224f15ed549af00ee5587056857  gcc/testsuite/gcc.c-torture/compile/970206-1.c
  15e9ddca3bd86005bd150a54a4449592  gcc/testsuite/gcc.c-torture/compile/970214-1.c
  f110e0c441a6c9777ed2055c1dab53ce  gcc/testsuite/gcc.c-torture/compile/980329-1.c
  5807a9f9b3202a882e305630830cb7e0  gcc/testsuite/gcc.c-torture/compile/980408-1.c
*************** c7a2dfbdf00a75892efcfd131f9a4885  gcc/te
*** 33736,33966 ****
  153a3cc7d9a703c4de0500b5218beae9  gcc/testsuite/gcc.c-torture/compile/980706-1.c
  c07668154d28f6a33e69eae7511d4eb7  gcc/testsuite/gcc.c-torture/compile/980726-1.c
  52f23936429adff7acd1cb7d9add79a4  gcc/testsuite/gcc.c-torture/compile/980729-1.c
! 99a6204c4fbec9e61d1f298969c61ba4  gcc/testsuite/gcc.c-torture/compile/980816-1.c
  627015550977fdb4f4c9e07197b22283  gcc/testsuite/gcc.c-torture/compile/980821-1.c
! 7b21893e563c88bc6e33f5b44871f088  gcc/testsuite/gcc.c-torture/compile/980825-1.c
! fa2a9c7863fe2538782a916766ce16f0  gcc/testsuite/gcc.c-torture/compile/981001-1.c
  230fe09b43c6b38e7eaca461f8c60a0a  gcc/testsuite/gcc.c-torture/compile/981001-2.c
  c0ac477ec4713faf1b3839f0a0d61de1  gcc/testsuite/gcc.c-torture/compile/981001-3.c
  4a405eb381079e1b3ca5f7e5cb1f6084  gcc/testsuite/gcc.c-torture/compile/981001-4.c
  eeccf9b2775bd422d8aad595bd8a2893  gcc/testsuite/gcc.c-torture/compile/981006-1.c
  518a8ab9eaa98187f9e9a6f42cb936d9  gcc/testsuite/gcc.c-torture/compile/981007-1.c
! ef01abdcbd332cdad2da9fa12056088f  gcc/testsuite/gcc.c-torture/compile/981107-1.c
  20d61809dcf0b862f8707c012933e53d  gcc/testsuite/gcc.c-torture/compile/981223-1.c
  645bf77d371b2940e330f469398f556f  gcc/testsuite/gcc.c-torture/compile/990107-1.c
  614a0e6831b5707874fb55c8f2cc558d  gcc/testsuite/gcc.c-torture/compile/990117-1.c
  53dc3dd76fd82f590c6e06a8e55d62b1  gcc/testsuite/gcc.c-torture/compile/990203-1.c
! 4607b4959515d25b1d25daa9fc9de9f6  gcc/testsuite/gcc.c-torture/compile/990517-1.c
  df05d0f55028e7fa162dc58e4639e07f  gcc/testsuite/gcc.c-torture/compile/990519-1.c
  84343b76f4c29cabc07b6fb93dfebf9f  gcc/testsuite/gcc.c-torture/compile/990523-1.c
  8bba3a171234bc1417a93b1345589ee8  gcc/testsuite/gcc.c-torture/compile/990527-1.c
! fcd3bf2e50d6d8ec2a03b08a82e81fe7  gcc/testsuite/gcc.c-torture/compile/990617-1.c
  73340ccf38a461307f82af1e389cb124  gcc/testsuite/gcc.c-torture/compile/990625-1.c
  55737caea9b320ea1ab2f34c3695b9b6  gcc/testsuite/gcc.c-torture/compile/990625-2.c
  882fc59712bab5c1ab6f749079bfb1b3  gcc/testsuite/gcc.c-torture/compile/990801-1.c
  1187937588621fe024abda4066f9e15c  gcc/testsuite/gcc.c-torture/compile/990801-2.c
! 2c5b24c32b95414090c166090c7e2206  gcc/testsuite/gcc.c-torture/compile/990829-1.c
  9a0d5b59eebd3265e17986808012fa60  gcc/testsuite/gcc.c-torture/compile/990913-1.c
  85ccaf5b9d8c114f2f6682c6caeb2789  gcc/testsuite/gcc.c-torture/compile/990928-1.c
  ecfe98ed9f1878dc5d91f3b840ca7ecf  gcc/testsuite/gcc.c-torture/compile/991008-1.c
  329552c8a4f87fed9ff224d3c12eac2e  gcc/testsuite/gcc.c-torture/compile/991026-1.c
! 70c4627d1d1409f25acecc3ba8605120  gcc/testsuite/gcc.c-torture/compile/991026-2.c
  77873d718826c0b2c723fc373b8a9f8f  gcc/testsuite/gcc.c-torture/compile/991127-1.c
  68762d37d7b7c548a3d0a062cbd20c05  gcc/testsuite/gcc.c-torture/compile/991202-1.c
  7cb0bd4801a20c0f1d519e8257d9c062  gcc/testsuite/gcc.c-torture/compile/991208-1.c
  bc9c0a9ae97846c517572ba9b0764f8e  gcc/testsuite/gcc.c-torture/compile/991213-1.c
! bf3b664a31d5735ba22fd767a284edd5  gcc/testsuite/gcc.c-torture/compile/991213-2.c
  8ec57dd9a0aa3b5c9828568e7057e17b  gcc/testsuite/gcc.c-torture/compile/991213-3.c
  588f9cde690cb78596b73b4bacfaac90  gcc/testsuite/gcc.c-torture/compile/991214-1.c
  cdeab62df98fde4454232ae8ca6e497d  gcc/testsuite/gcc.c-torture/compile/991214-2.c
! 50c6e1dbaf3a5fc32d750e605e86e1d9  gcc/testsuite/gcc.c-torture/compile/991229-1.c
  6acbba8bbbcd6480232d4949dde69510  gcc/testsuite/gcc.c-torture/compile/991229-2.c
! fb4852342b5ce5f1c204522127ef6dec  gcc/testsuite/gcc.c-torture/compile/991229-3.c
! e0d381962f52ee4f081154c62b739e58  gcc/testsuite/gcc.c-torture/compile/BUG1.c
! 4ecc8cc68127b2ff8defe02210ac6ea1  gcc/testsuite/gcc.c-torture/compile/BUG11.c
  8fdda236410dc8293113f782c28a5294  gcc/testsuite/gcc.c-torture/compile/BUG12.c
  26b88195277e68b0cbd0d742ef335461  gcc/testsuite/gcc.c-torture/compile/BUG13.c
! d24fc3c61eb177c223a7063b4c60af50  gcc/testsuite/gcc.c-torture/compile/BUG16.c
! d874af922b2dfa8fca0c4fd351fbc746  gcc/testsuite/gcc.c-torture/compile/BUG17.c
! 9d591da67cae8f1324632ac2485c6074  gcc/testsuite/gcc.c-torture/compile/BUG18.c
! 244b0f494d3a94f7d3b786d0df256544  gcc/testsuite/gcc.c-torture/compile/BUG2.c
! 78da1afc99036a4722606a04181e4e5d  gcc/testsuite/gcc.c-torture/compile/BUG21.c
  7c858f178331b63ab43de0f47398d235  gcc/testsuite/gcc.c-torture/compile/BUG22.c
! ed45cd78e2e210346bbc6928d02e5d3c  gcc/testsuite/gcc.c-torture/compile/BUG23.c
! 947286d496f24aaf9b5c20f1f4b80a1a  gcc/testsuite/gcc.c-torture/compile/BUG24.c
! 7a4f1af2160ea9dcc14bc5f6118c1908  gcc/testsuite/gcc.c-torture/compile/BUG25.c
! c26be282dd600216fb7604e1beac50ce  gcc/testsuite/gcc.c-torture/compile/BUG3.c
  36ec981088709b56342d5c1e53ce4cdb  gcc/testsuite/gcc.c-torture/compile/BUG4.c
! 261c659a9094bcad6fd8fbf03b21acb8  gcc/testsuite/gcc.c-torture/compile/BUG5.c
! 9e73d8954741cce59d9a8b8806b520ef  gcc/testsuite/gcc.c-torture/compile/BUG6.c
! e55e653e222e588a46512ea8b8b5b1f2  gcc/testsuite/gcc.c-torture/compile/DFcmp.c
! 73a45a04a8b87c50a5bb413c84c13e63  gcc/testsuite/gcc.c-torture/compile/HIcmp.c
! c8e96f7ff3e099451c758563a6c0e1a2  gcc/testsuite/gcc.c-torture/compile/HIset.c
  a4f036ec8a42805f7b7edb69c4000fb7  gcc/testsuite/gcc.c-torture/compile/PYRBUG.c
! b04384bfb8e95aed5920914ac657c9e2  gcc/testsuite/gcc.c-torture/compile/QIcmp.c
! 2064998e683a1e2988873ead5f2ff03d  gcc/testsuite/gcc.c-torture/compile/QIset.c
! 11e409d753717ac86bc620d948211592  gcc/testsuite/gcc.c-torture/compile/SFset.c
! f247e4e176e57e9c1ad085c55ba7eccf  gcc/testsuite/gcc.c-torture/compile/SIcmp.c
! 561b285108531885b5ad8a613e59819d  gcc/testsuite/gcc.c-torture/compile/SIset.c
! 17c6b8e0464a3153ca63e7f6e5613e40  gcc/testsuite/gcc.c-torture/compile/UHIcmp.c
! 76b131be0296925de1b90b73a01b4f5e  gcc/testsuite/gcc.c-torture/compile/UQIcmp.c
! 61171f5731850898bba19fef2929cb31  gcc/testsuite/gcc.c-torture/compile/USIcmp.c
! 9cab096c1140259bc09ecff6888e0c5a  gcc/testsuite/gcc.c-torture/compile/a.c
! f61d189a1b18314f0c78c0e119997edb  gcc/testsuite/gcc.c-torture/compile/a1.c
! 607d036e61ba7affdc1c1c8d54fe1533  gcc/testsuite/gcc.c-torture/compile/a3.c
! 732464143f5a4e64615e8d7cb6f9993a  gcc/testsuite/gcc.c-torture/compile/aa.c
! 3466af08c611a34d8f4af36c471737c5  gcc/testsuite/gcc.c-torture/compile/aaa.c
! 5df1ae8efef0564625f807546d7a6430  gcc/testsuite/gcc.c-torture/compile/abs.c
! f8c5b861948f5eaafb3f30c5840cdc16  gcc/testsuite/gcc.c-torture/compile/ac.c
! 5c28cd47a087302a942c7988c2db8f93  gcc/testsuite/gcc.c-torture/compile/acc.c
  2c4a0c630b70ca8879866cb54a0b9b17  gcc/testsuite/gcc.c-torture/compile/acc1.c
! 79ec2a19ffb3f5f130a7c45571a3534a  gcc/testsuite/gcc.c-torture/compile/add.c
! 25b5db193df54584e709cc946baf769d  gcc/testsuite/gcc.c-torture/compile/add386.c
! fb80448ce2813cde659c29a4b6da9618  gcc/testsuite/gcc.c-torture/compile/addcc.c
! 5f8e22675ec14efe8fed687b81e7dbce  gcc/testsuite/gcc.c-torture/compile/andm.c
! 76e132632fdb8bc9665cb00f0105ec49  gcc/testsuite/gcc.c-torture/compile/andmem.c
! 78884db00a66f3453592eb074dce96c2  gcc/testsuite/gcc.c-torture/compile/andn.c
! 25b5237560d19be8e163c2a2c07c4289  gcc/testsuite/gcc.c-torture/compile/andok.c
! 4004760291d520d87c6a2f454b28b0df  gcc/testsuite/gcc.c-torture/compile/andsi.c
! 883e6f38672711e515434dbf8ac19a42  gcc/testsuite/gcc.c-torture/compile/andsparc.c
! 9186119eab4aa77a0fa3010986c54802  gcc/testsuite/gcc.c-torture/compile/aos.c
! cbe67a4212b7d85b023f62848033fa31  gcc/testsuite/gcc.c-torture/compile/arr.c
! 2686caedfece44eebd26639e72abcc2a  gcc/testsuite/gcc.c-torture/compile/as.c
! 321496eed48efe49415b2ae94d72a5e5  gcc/testsuite/gcc.c-torture/compile/ase.c
  7f1bd05b409cd463e690dde1e88b8d88  gcc/testsuite/gcc.c-torture/compile/asmgoto-1.c
! 18a637c4aa993d567f93a8a02756d1c8  gcc/testsuite/gcc.c-torture/compile/asmgoto-2.c
  1dc09506975eee8e6b4451c77c2ca0f5  gcc/testsuite/gcc.c-torture/compile/asmgoto-3.c
  44775d2c2c8031eaffd51797729f6b78  gcc/testsuite/gcc.c-torture/compile/asmgoto-4.c
! 22f5be5aa586df70b0fd5248cd64def3  gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c
! 5d46a165536b8d97de34952d9345173a  gcc/testsuite/gcc.c-torture/compile/asmgoto-6.c
! d69b019f2f65278608964711e375d5d7  gcc/testsuite/gcc.c-torture/compile/attr-complex-method-2.c
  6cceb06a530ca6cf611287cae72b0437  gcc/testsuite/gcc.c-torture/compile/attr-complex-method.c
  518904c535699cbcecc96482c0284cbe  gcc/testsuite/gcc.c-torture/compile/attr-retain-1.c
  5a438692e9c3f90679360b39bf72aa6d  gcc/testsuite/gcc.c-torture/compile/attr-retain-2.c
  16c9fd8e3aabf68056e65c3fde97fd4c  gcc/testsuite/gcc.c-torture/compile/attr-used-retain-1.c
  e9afcf78aba1d501c2099075165c0f26  gcc/testsuite/gcc.c-torture/compile/attr-used-retain-2.c
! 4f3a6a3945ac2d0657452e368e414b3b  gcc/testsuite/gcc.c-torture/compile/b.c
! d351eb0aef889fc366a8342f32ae1358  gcc/testsuite/gcc.c-torture/compile/b1.c
  b33b87bd4fa8d4bfab27492de9998c37  gcc/testsuite/gcc.c-torture/compile/b2.c
  794aa0c4ed7aa15bde6813d6e3cbeda0  gcc/testsuite/gcc.c-torture/compile/b3.c
! fcdfeca79748c80ad4c3ccb5691c9d5c  gcc/testsuite/gcc.c-torture/compile/b88.c
  6e3e416c4fe39b541b19d4719290db9b  gcc/testsuite/gcc.c-torture/compile/bad.c
! 1098484f67829d24ec9b0edd21529e13  gcc/testsuite/gcc.c-torture/compile/band.c
! d3b953794799cfc45bcb4a6ab86511e6  gcc/testsuite/gcc.c-torture/compile/bb0.c
! 3eed9bc9fa4e0f6d9473a8d73b208814  gcc/testsuite/gcc.c-torture/compile/bb1.c
! f2929fcf7c136c2d6649a619fcd7bf95  gcc/testsuite/gcc.c-torture/compile/bbb.c
! af12b2948b8b8f2074ad5cc4ef553cfa  gcc/testsuite/gcc.c-torture/compile/bc.c
  77d21c94a953a6e368f72767f5dfa7d1  gcc/testsuite/gcc.c-torture/compile/bcopy-1.c
! 6218c3d5ca05df2602015fc6a37678f9  gcc/testsuite/gcc.c-torture/compile/bcopy.c
! c3ecb04312d959698eece819a017618b  gcc/testsuite/gcc.c-torture/compile/bf.c
  0aed9f2a176713432244a50d79966162  gcc/testsuite/gcc.c-torture/compile/bfins.c
! 9ffd112da1c9830ccbce60d02bd034af  gcc/testsuite/gcc.c-torture/compile/bfx.c
! ec623eb54dedcd972c9e1010c4bc292f  gcc/testsuite/gcc.c-torture/compile/bge.c
! 76c1fc9b0417318b605b0e792e9d6707  gcc/testsuite/gcc.c-torture/compile/bit.c
! b8623631f05c3d57c35a82fc82bd18f2  gcc/testsuite/gcc.c-torture/compile/bitf.c
  aba2c86609deb52535870fc0da864e48  gcc/testsuite/gcc.c-torture/compile/bitfield-1.c
  34e1cdb48b90e1aa50e7736a9d1e2808  gcc/testsuite/gcc.c-torture/compile/bitfield-endian-1.c
  71c15c02afb5dc5392bd5b25fa7d7c1f  gcc/testsuite/gcc.c-torture/compile/bitfield-endian-2.c
! cb3f23e30b535b53eb30442aaf9f9dd3  gcc/testsuite/gcc.c-torture/compile/bitw.c
! 5fb251f1ff9c91aa10166a7ae8b33847  gcc/testsuite/gcc.c-torture/compile/blk.c
! 05246f81e4ef7f9c20805792873224f9  gcc/testsuite/gcc.c-torture/compile/bt.c
! 600738659070e153600a86a3a56bef41  gcc/testsuite/gcc.c-torture/compile/bt386.c
! 5d3e796ce9b84afa9b5ada314a30a7de  gcc/testsuite/gcc.c-torture/compile/bug.c
  8e59c529654d59ecc2138c7cd2017d93  gcc/testsuite/gcc.c-torture/compile/bugc.c
  4269366431aa444a3cd69d64bd441d4f  gcc/testsuite/gcc.c-torture/compile/builtin_constant_p.c
  496a2df32dcd1a06e8be3ac9537bad95  gcc/testsuite/gcc.c-torture/compile/builtin_unreachable-1.c
! 1485912218fe6fe6a2e3d6e28ce91844  gcc/testsuite/gcc.c-torture/compile/buns.c
  871bf57192bc694f0128a3054d0096a3  gcc/testsuite/gcc.c-torture/compile/bx.c
! 81bb3891311901cf0b7671a16d3c06ba  gcc/testsuite/gcc.c-torture/compile/c.c
  2f68463e532b7d38041f86a15b3acb5f  gcc/testsuite/gcc.c-torture/compile/c1.c
! 89300cc713ac395565489786b4f9931c  gcc/testsuite/gcc.c-torture/compile/c2.c
! c46b2acf1034302be4aa12024a03de95  gcc/testsuite/gcc.c-torture/compile/call.c
  c5d1dad6316906edc5ae5ed2038faaaa  gcc/testsuite/gcc.c-torture/compile/call386.c
! 08ee36a021e0f3b7e620201f53d12152  gcc/testsuite/gcc.c-torture/compile/callind.c
! 4a59977d18e62c9a4a782785c77f6f56  gcc/testsuite/gcc.c-torture/compile/calls-void.c
! 29a56994740a8b2adff86358941be6a2  gcc/testsuite/gcc.c-torture/compile/calls.c
! d1a3151005fffdff8f22b4e953de39df  gcc/testsuite/gcc.c-torture/compile/cc.c
! 03fca62fcb613435394e866da59abfa8  gcc/testsuite/gcc.c-torture/compile/charmtst.c
! add6fe10cf8cb92550c4a22521fc9bd1  gcc/testsuite/gcc.c-torture/compile/cmb.c
  64b8008f42c99df849e348119e0acfec  gcc/testsuite/gcc.c-torture/compile/cmp.c
! f5766202f628b43d0fac0910adc0eecb  gcc/testsuite/gcc.c-torture/compile/cmpdi-1.c
! 38b158e9f656cf37d13ac0625723ed6b  gcc/testsuite/gcc.c-torture/compile/cmphi.c
! 0f4b893b11235583d3e8ae9ff15a798b  gcc/testsuite/gcc.c-torture/compile/cmpsi386.c
! 6473fa9faec104d015e7dfaf55cc1382  gcc/testsuite/gcc.c-torture/compile/cmul.c
  2db408a5885d812f5975ff6d22d8deb5  gcc/testsuite/gcc.c-torture/compile/cn1.c
! 6bc0454ef3b51ee1abf897438c9d20f8  gcc/testsuite/gcc.c-torture/compile/comb.c
  646c27d881cf11bdfb63a423ffd3b604  gcc/testsuite/gcc.c-torture/compile/combine-hang.c
! a37a6e52d0d2dfebba119f5cf063ea45  gcc/testsuite/gcc.c-torture/compile/compile.exp
  a87e64aae03ac41e010753e916d8ee6d  gcc/testsuite/gcc.c-torture/compile/complex-1.c
  9d993598ddcfa7b7cd841fe5a114cec2  gcc/testsuite/gcc.c-torture/compile/complex-2.c
  e78988c1feb46a12813cd47feaaab89f  gcc/testsuite/gcc.c-torture/compile/complex-3.c
  fc52901c6ccc73301051d940eb3a4b18  gcc/testsuite/gcc.c-torture/compile/complex-4.c
  354be2cce89dc3ad9dcf57b8b4c4abf4  gcc/testsuite/gcc.c-torture/compile/complex-5.c
! c8d8d475a18f3a30cab11183f511b25a  gcc/testsuite/gcc.c-torture/compile/complex-6.c
  afefa9fa4b0bd3238c022734470391d6  gcc/testsuite/gcc.c-torture/compile/compound-literal-1.c
  401530207cad432df55eb7050f466a5e  gcc/testsuite/gcc.c-torture/compile/compound-literal-2.c
  f4e910743ce6520ff783159812df3fbd  gcc/testsuite/gcc.c-torture/compile/compound-literal-3.c
! a2437f16ae34950fefa862ce52c4e590  gcc/testsuite/gcc.c-torture/compile/consec.c
  fa5e56ed5af7e7351c66324722bf1b47  gcc/testsuite/gcc.c-torture/compile/const-high-part.c
! c18f167c2678fbde5f11f9f313bd43ef  gcc/testsuite/gcc.c-torture/compile/const.c
! 7dff4f975c8f11d3dfaac13af033c9c9  gcc/testsuite/gcc.c-torture/compile/conv.c
! f40bd3128266453218b6689b43967dd8  gcc/testsuite/gcc.c-torture/compile/conv_tst.c
  16f70f10ea760c640a6d4299724c58cd  gcc/testsuite/gcc.c-torture/compile/cp.c
  61451e07c954124f79273c9995d501cf  gcc/testsuite/gcc.c-torture/compile/cpp-1.c
  a4388070dfa15cbd678485953a9d6165  gcc/testsuite/gcc.c-torture/compile/cpp-2.c
  40557c3ae511b7661275dd797c0fdf29  gcc/testsuite/gcc.c-torture/compile/csebug.c
! 9b88a9c971eef0252cb79acbdc834744  gcc/testsuite/gcc.c-torture/compile/cvt.c
  e5e909189675ca6cb666ee2344ef6dff  gcc/testsuite/gcc.c-torture/compile/d.c
! 1948da60e562ef25510ca4be09fe597d  gcc/testsuite/gcc.c-torture/compile/dbl_parm.c
! 68fe7a7b232376cd57394c0ac719e10b  gcc/testsuite/gcc.c-torture/compile/dblbug.c
  60ab74a0311986845d4157e4aa8df2ef  gcc/testsuite/gcc.c-torture/compile/dce-inline-asm-1.c
  3fdc86f0bcaebaddae6a03d0b118be65  gcc/testsuite/gcc.c-torture/compile/dce-inline-asm-2.c
! 36aa2b83fd1383abff504f6866d7fa1b  gcc/testsuite/gcc.c-torture/compile/ddd.c
! 60f8588b567dc8677daee3d21bf488c5  gcc/testsuite/gcc.c-torture/compile/dead.c
  a0cfda0503e80c3ab337b8cd51778fc5  gcc/testsuite/gcc.c-torture/compile/debugvlafunction-1.c
! 98d90e5ed78e5b1bad380669191e9ba1  gcc/testsuite/gcc.c-torture/compile/delay.c
! c605500dce3205db422c2ca0b7000ce7  gcc/testsuite/gcc.c-torture/compile/di.c
  f1264d2daacc48775411bd4bf222ad2a  gcc/testsuite/gcc.c-torture/compile/dic.c
! 594ac4cd4e07639b40f400ae51ce5c79  gcc/testsuite/gcc.c-torture/compile/dilayout.c
! 51c63901ada68df2db64cf817ab53818  gcc/testsuite/gcc.c-torture/compile/dimove.c
  496dd08f4188473113c1bfeb76dd98a3  gcc/testsuite/gcc.c-torture/compile/dimul.c
! 8165584235f8529d6fa27c37f67daba4  gcc/testsuite/gcc.c-torture/compile/div.c
  4dc912d00c4559be63eaa978d01f2e2a  gcc/testsuite/gcc.c-torture/compile/divdf.c
  2dc63e26397ae576b22f03b6268e2db4  gcc/testsuite/gcc.c-torture/compile/dll.c
! 5c4d4cf1fa0b450de918a97c931498e2  gcc/testsuite/gcc.c-torture/compile/dm.c
! 20fe80079de07a2b93f13479623edca8  gcc/testsuite/gcc.c-torture/compile/dse.c
! d14199b5a8cce86796435020b07c7915  gcc/testsuite/gcc.c-torture/compile/dshift.c
! 46455d9e8afc3d3f58c78d0f57688183  gcc/testsuite/gcc.c-torture/compile/e.c
! a05c2eeb9dff059cccaf65b45b2cd66c  gcc/testsuite/gcc.c-torture/compile/ex.c
! 236b663577321a8a0c6f84694d9b5af5  gcc/testsuite/gcc.c-torture/compile/ext.c
  0edf745c4cba24d7d1826c6b55e51a9e  gcc/testsuite/gcc.c-torture/compile/f1.c
! f91924184963162a13edc5c008bbb240  gcc/testsuite/gcc.c-torture/compile/f2.c
  9afe578171d4f7af8dbdd7a9029a7acf  gcc/testsuite/gcc.c-torture/compile/fdmul.c
  2e366a979261dcc46b4e823df111eab1  gcc/testsuite/gcc.c-torture/compile/fix-trunc-mem-1.c
! ca0173e85b096b8d32930e0447208990  gcc/testsuite/gcc.c-torture/compile/flatten.c
! 6a315d6b3ac2df78b977d225e246c47b  gcc/testsuite/gcc.c-torture/compile/flo.c
  7473d993b37b867a9accf1d96cbc5688  gcc/testsuite/gcc.c-torture/compile/float.c
  6c4263000625019bd8e94de59baa20a2  gcc/testsuite/gcc.c-torture/compile/flt_const.c
! 44f016ae842dd02edd89e5fe35e34589  gcc/testsuite/gcc.c-torture/compile/fnul.c
  5381de8411d1bccb89191370b03aab09  gcc/testsuite/gcc.c-torture/compile/foo.c
! 01bd6fe017eaba0bb4bd3eb12b36ca96  gcc/testsuite/gcc.c-torture/compile/forgetcc.c
! 019792276ef4eeab48afbc0f3cec892c  gcc/testsuite/gcc.c-torture/compile/fq.c
! 910ec6cdd9ef1877a8f857fb6a0d8076  gcc/testsuite/gcc.c-torture/compile/funcptr-1.c
! 9940df0dc160cd974e5be91e8ff343a6  gcc/testsuite/gcc.c-torture/compile/g.c
! 00e41cda1dc4f25f05d589ff9edf70d8  gcc/testsuite/gcc.c-torture/compile/gen_tst.c
! c6f0ad7e4d9c8cbdea4eb78cba6d54c7  gcc/testsuite/gcc.c-torture/compile/glob.c
! 78da75b4922a8e04dca9b66779482a1f  gcc/testsuite/gcc.c-torture/compile/goto-1.c
! a2544654a33718a6944a622fb07d93d0  gcc/testsuite/gcc.c-torture/compile/gronk.c
! e1c0de83d63c8ede476afc47db791606  gcc/testsuite/gcc.c-torture/compile/hi.c
  0b5f4705f887c76713066d042bc90595  gcc/testsuite/gcc.c-torture/compile/hibug.c
! 94ce5b2b00bc01aef242186e255208ed  gcc/testsuite/gcc.c-torture/compile/i++.c
! 1bc98f0a6767d7a12a5d744e93b8ec76  gcc/testsuite/gcc.c-torture/compile/i.c
! 7667331105c53980270627cf595e8b97  gcc/testsuite/gcc.c-torture/compile/ic.c
  ac356c6d7dc34c8ce31f883d25b4e8a1  gcc/testsuite/gcc.c-torture/compile/icfmatch.c
! 987b765b80bbde85ca12804560cb9c82  gcc/testsuite/gcc.c-torture/compile/icmp.c
! 425bcb26dfe2710e2cf7c735fa91c908  gcc/testsuite/gcc.c-torture/compile/ifreg.c
! a3e8726e64979546c220bae5d0815be1  gcc/testsuite/gcc.c-torture/compile/iftrap-1.c
! 377cbb2cfb8ba9c774664834ff124732  gcc/testsuite/gcc.c-torture/compile/iftrap-2.c
  6c63b6a4bc097369f09c4c92d1f1cf68  gcc/testsuite/gcc.c-torture/compile/iftrap-3.c
  f32a8768657f01378b5dac03fecab5f1  gcc/testsuite/gcc.c-torture/compile/imm.c
  3264c9a18f4664e9ccc409c48efe379c  gcc/testsuite/gcc.c-torture/compile/init-1.c
--- 35783,36015 ----
  153a3cc7d9a703c4de0500b5218beae9  gcc/testsuite/gcc.c-torture/compile/980706-1.c
  c07668154d28f6a33e69eae7511d4eb7  gcc/testsuite/gcc.c-torture/compile/980726-1.c
  52f23936429adff7acd1cb7d9add79a4  gcc/testsuite/gcc.c-torture/compile/980729-1.c
! 361d48dc0724eb0adb507c7ae9802995  gcc/testsuite/gcc.c-torture/compile/980816-1.c
  627015550977fdb4f4c9e07197b22283  gcc/testsuite/gcc.c-torture/compile/980821-1.c
! c51a849afd2c3fa1d04e717693b15938  gcc/testsuite/gcc.c-torture/compile/980825-1.c
! aeca78485b01893dfacf309640cd0e26  gcc/testsuite/gcc.c-torture/compile/981001-1.c
  230fe09b43c6b38e7eaca461f8c60a0a  gcc/testsuite/gcc.c-torture/compile/981001-2.c
  c0ac477ec4713faf1b3839f0a0d61de1  gcc/testsuite/gcc.c-torture/compile/981001-3.c
  4a405eb381079e1b3ca5f7e5cb1f6084  gcc/testsuite/gcc.c-torture/compile/981001-4.c
  eeccf9b2775bd422d8aad595bd8a2893  gcc/testsuite/gcc.c-torture/compile/981006-1.c
  518a8ab9eaa98187f9e9a6f42cb936d9  gcc/testsuite/gcc.c-torture/compile/981007-1.c
! ab9091d7fdf97cc23f02757840d07f3d  gcc/testsuite/gcc.c-torture/compile/981107-1.c
  20d61809dcf0b862f8707c012933e53d  gcc/testsuite/gcc.c-torture/compile/981223-1.c
  645bf77d371b2940e330f469398f556f  gcc/testsuite/gcc.c-torture/compile/990107-1.c
  614a0e6831b5707874fb55c8f2cc558d  gcc/testsuite/gcc.c-torture/compile/990117-1.c
  53dc3dd76fd82f590c6e06a8e55d62b1  gcc/testsuite/gcc.c-torture/compile/990203-1.c
! 429069f9524baffe7d49fae8716a5548  gcc/testsuite/gcc.c-torture/compile/990517-1.c
  df05d0f55028e7fa162dc58e4639e07f  gcc/testsuite/gcc.c-torture/compile/990519-1.c
  84343b76f4c29cabc07b6fb93dfebf9f  gcc/testsuite/gcc.c-torture/compile/990523-1.c
  8bba3a171234bc1417a93b1345589ee8  gcc/testsuite/gcc.c-torture/compile/990527-1.c
! 0674ec0f5994212a8cd07bf8e449dd13  gcc/testsuite/gcc.c-torture/compile/990617-1.c
  73340ccf38a461307f82af1e389cb124  gcc/testsuite/gcc.c-torture/compile/990625-1.c
  55737caea9b320ea1ab2f34c3695b9b6  gcc/testsuite/gcc.c-torture/compile/990625-2.c
  882fc59712bab5c1ab6f749079bfb1b3  gcc/testsuite/gcc.c-torture/compile/990801-1.c
  1187937588621fe024abda4066f9e15c  gcc/testsuite/gcc.c-torture/compile/990801-2.c
! 05154cc921fa0b6e99d0e7dc2ac7f0dc  gcc/testsuite/gcc.c-torture/compile/990829-1.c
  9a0d5b59eebd3265e17986808012fa60  gcc/testsuite/gcc.c-torture/compile/990913-1.c
  85ccaf5b9d8c114f2f6682c6caeb2789  gcc/testsuite/gcc.c-torture/compile/990928-1.c
  ecfe98ed9f1878dc5d91f3b840ca7ecf  gcc/testsuite/gcc.c-torture/compile/991008-1.c
  329552c8a4f87fed9ff224d3c12eac2e  gcc/testsuite/gcc.c-torture/compile/991026-1.c
! 881eafb3b482f00ca471cb3025a787ba  gcc/testsuite/gcc.c-torture/compile/991026-2.c
  77873d718826c0b2c723fc373b8a9f8f  gcc/testsuite/gcc.c-torture/compile/991127-1.c
  68762d37d7b7c548a3d0a062cbd20c05  gcc/testsuite/gcc.c-torture/compile/991202-1.c
  7cb0bd4801a20c0f1d519e8257d9c062  gcc/testsuite/gcc.c-torture/compile/991208-1.c
  bc9c0a9ae97846c517572ba9b0764f8e  gcc/testsuite/gcc.c-torture/compile/991213-1.c
! 486f0441ef84e76404fde449058907af  gcc/testsuite/gcc.c-torture/compile/991213-2.c
  8ec57dd9a0aa3b5c9828568e7057e17b  gcc/testsuite/gcc.c-torture/compile/991213-3.c
  588f9cde690cb78596b73b4bacfaac90  gcc/testsuite/gcc.c-torture/compile/991214-1.c
  cdeab62df98fde4454232ae8ca6e497d  gcc/testsuite/gcc.c-torture/compile/991214-2.c
! d821ecc60c365d6ea02b9a4c515f8b1d  gcc/testsuite/gcc.c-torture/compile/991229-1.c
  6acbba8bbbcd6480232d4949dde69510  gcc/testsuite/gcc.c-torture/compile/991229-2.c
! 7d7733d70c70a8d08260350a54ae1d92  gcc/testsuite/gcc.c-torture/compile/991229-3.c
! 39a188d6097d56227196fe8514ee95fd  gcc/testsuite/gcc.c-torture/compile/BUG1.c
! 7756f974be29ecdc1ba802e325d2f3cc  gcc/testsuite/gcc.c-torture/compile/BUG11.c
  8fdda236410dc8293113f782c28a5294  gcc/testsuite/gcc.c-torture/compile/BUG12.c
  26b88195277e68b0cbd0d742ef335461  gcc/testsuite/gcc.c-torture/compile/BUG13.c
! edb88d1b304df732194e17763fd451f0  gcc/testsuite/gcc.c-torture/compile/BUG16.c
! a8853bf7498524539883e0ea74ebbc52  gcc/testsuite/gcc.c-torture/compile/BUG17.c
! dc865604b4ef14a9eb7af8d662f82964  gcc/testsuite/gcc.c-torture/compile/BUG18.c
! ffd45e793d229cd219e86188f87b11b1  gcc/testsuite/gcc.c-torture/compile/BUG2.c
! c26a5b7f875d049ec8e189468d9dc7ca  gcc/testsuite/gcc.c-torture/compile/BUG21.c
  7c858f178331b63ab43de0f47398d235  gcc/testsuite/gcc.c-torture/compile/BUG22.c
! fbeeafeabe0ed24ce0d8e4e2cbbc2c3c  gcc/testsuite/gcc.c-torture/compile/BUG23.c
! b7b90fe36dc7940da0902e383452d59d  gcc/testsuite/gcc.c-torture/compile/BUG24.c
! 8882b33b70dbe47341e181d1d93129ab  gcc/testsuite/gcc.c-torture/compile/BUG25.c
! 34bac4852819856eb49652151057db03  gcc/testsuite/gcc.c-torture/compile/BUG3.c
  36ec981088709b56342d5c1e53ce4cdb  gcc/testsuite/gcc.c-torture/compile/BUG4.c
! bab134fda7ba5e6305856ab4878b3a85  gcc/testsuite/gcc.c-torture/compile/BUG5.c
! feec3910b746bcad436c8037c86f882e  gcc/testsuite/gcc.c-torture/compile/BUG6.c
! 71d8d8f09c1fe2e16a7cc45c6b9d7db9  gcc/testsuite/gcc.c-torture/compile/DFcmp.c
! ceab2bc264bf91ebddaeb714656d0731  gcc/testsuite/gcc.c-torture/compile/HIcmp.c
! ec16c9bd3d22246609a6ed0fa3a23c49  gcc/testsuite/gcc.c-torture/compile/HIset.c
  a4f036ec8a42805f7b7edb69c4000fb7  gcc/testsuite/gcc.c-torture/compile/PYRBUG.c
! d26a6d077d57a3eaa7ca0246415bb73f  gcc/testsuite/gcc.c-torture/compile/QIcmp.c
! 4d7a4a208373a988ec831bd50274005c  gcc/testsuite/gcc.c-torture/compile/QIset.c
! fd7f22e88349c925ebc69ba2dfb1ac0c  gcc/testsuite/gcc.c-torture/compile/SFset.c
! f4c7e1829efbc8c2d18937671c985c5c  gcc/testsuite/gcc.c-torture/compile/SIcmp.c
! e4e5b988b3b70a4b9ff4297e245c4eec  gcc/testsuite/gcc.c-torture/compile/SIset.c
! c908808d3d63dec5eb8790bb760edce3  gcc/testsuite/gcc.c-torture/compile/UHIcmp.c
! d255bb060c6a7b89ef6be29e8d4f2d4f  gcc/testsuite/gcc.c-torture/compile/UQIcmp.c
! 8f06146b88458424f18c79fc1b9cd87f  gcc/testsuite/gcc.c-torture/compile/USIcmp.c
! c24d7165579ab164764fabeac8348b06  gcc/testsuite/gcc.c-torture/compile/a.c
! 60618cc0545bd305eba81ea95e5a68be  gcc/testsuite/gcc.c-torture/compile/a1.c
! d63a271c037b3f5222d7a0091860c0f9  gcc/testsuite/gcc.c-torture/compile/a3.c
! 82329f5f19f5e7bd8ff2641f27cefc5b  gcc/testsuite/gcc.c-torture/compile/aa.c
! ad04519c1bd1c0da68d890535e9d21b2  gcc/testsuite/gcc.c-torture/compile/aaa.c
! 05aa60ecb4d0471ed046e7da811112b7  gcc/testsuite/gcc.c-torture/compile/abs.c
! dd477d7bd7bd2b5b7337624134c0fe5c  gcc/testsuite/gcc.c-torture/compile/ac.c
! 5004600968f36969c4b86ac7880e9f71  gcc/testsuite/gcc.c-torture/compile/acc.c
  2c4a0c630b70ca8879866cb54a0b9b17  gcc/testsuite/gcc.c-torture/compile/acc1.c
! 450ed47de7d5ae239dae6de94ca5f8ec  gcc/testsuite/gcc.c-torture/compile/add.c
! 7238e9404f4e227369c8d6b1d477a84f  gcc/testsuite/gcc.c-torture/compile/add386.c
! 5ad58d17b71a26696d442a0d4bc8867d  gcc/testsuite/gcc.c-torture/compile/addcc.c
! b447e51b648bb49218f349d6a0d38976  gcc/testsuite/gcc.c-torture/compile/andm.c
! 8e996692848289a2126bcfca66d530c5  gcc/testsuite/gcc.c-torture/compile/andmem.c
! d26a5ec222b1b8bcce2e167949ebfe31  gcc/testsuite/gcc.c-torture/compile/andn.c
! e027970790f9e7d76b944aa63ffd78f8  gcc/testsuite/gcc.c-torture/compile/andok.c
! 385fdd6726889ef0c3ce2c327b41790e  gcc/testsuite/gcc.c-torture/compile/andsi.c
! 111acdc77a4018ff5f15b5f2430801ae  gcc/testsuite/gcc.c-torture/compile/andsparc.c
! 991e156c585f76e447be5bbdf2b6cd15  gcc/testsuite/gcc.c-torture/compile/aos.c
! 830f06cfe90bdaf40ececce9d8ecb336  gcc/testsuite/gcc.c-torture/compile/arr.c
! 80ffc8fe32df0968078893508e821f4d  gcc/testsuite/gcc.c-torture/compile/as.c
! c110a0e097184d9410d001051c6a502c  gcc/testsuite/gcc.c-torture/compile/ase.c
  7f1bd05b409cd463e690dde1e88b8d88  gcc/testsuite/gcc.c-torture/compile/asmgoto-1.c
! 4e75b72a3293e35cece13ed9c74c7371  gcc/testsuite/gcc.c-torture/compile/asmgoto-2.c
  1dc09506975eee8e6b4451c77c2ca0f5  gcc/testsuite/gcc.c-torture/compile/asmgoto-3.c
  44775d2c2c8031eaffd51797729f6b78  gcc/testsuite/gcc.c-torture/compile/asmgoto-4.c
! 7ce7e7b468cce96a009cfdffb99bccdf  gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c
! 152fb49f88b02373c2259108a6512933  gcc/testsuite/gcc.c-torture/compile/asmgoto-6.c
! 7f74f43595550070a844def607abe69b  gcc/testsuite/gcc.c-torture/compile/attr-complex-method-2.c
  6cceb06a530ca6cf611287cae72b0437  gcc/testsuite/gcc.c-torture/compile/attr-complex-method.c
  518904c535699cbcecc96482c0284cbe  gcc/testsuite/gcc.c-torture/compile/attr-retain-1.c
  5a438692e9c3f90679360b39bf72aa6d  gcc/testsuite/gcc.c-torture/compile/attr-retain-2.c
  16c9fd8e3aabf68056e65c3fde97fd4c  gcc/testsuite/gcc.c-torture/compile/attr-used-retain-1.c
  e9afcf78aba1d501c2099075165c0f26  gcc/testsuite/gcc.c-torture/compile/attr-used-retain-2.c
! d462cff4af0c93c004690f8137d173f1  gcc/testsuite/gcc.c-torture/compile/b.c
! d498a55e2eec23ad2605afaefd662744  gcc/testsuite/gcc.c-torture/compile/b1.c
  b33b87bd4fa8d4bfab27492de9998c37  gcc/testsuite/gcc.c-torture/compile/b2.c
  794aa0c4ed7aa15bde6813d6e3cbeda0  gcc/testsuite/gcc.c-torture/compile/b3.c
! 21c75838f7fcdc1709d8e738ac92c61b  gcc/testsuite/gcc.c-torture/compile/b88.c
  6e3e416c4fe39b541b19d4719290db9b  gcc/testsuite/gcc.c-torture/compile/bad.c
! a05b7860f3feb067debf074619de15d0  gcc/testsuite/gcc.c-torture/compile/band.c
! 00f105a6ab2d104935bdf123e406a084  gcc/testsuite/gcc.c-torture/compile/bb0.c
! 5c3a616e62202db9d16169db1998670b  gcc/testsuite/gcc.c-torture/compile/bb1.c
! fdec3aaffcbeec075180f922658ca23f  gcc/testsuite/gcc.c-torture/compile/bbb.c
! 18ceeda33978faddde0df9f8f64ff818  gcc/testsuite/gcc.c-torture/compile/bc.c
  77d21c94a953a6e368f72767f5dfa7d1  gcc/testsuite/gcc.c-torture/compile/bcopy-1.c
! fcb0a271097efd95c8b063a65479d107  gcc/testsuite/gcc.c-torture/compile/bcopy.c
! d36961d3f4a6c2305027bef998014b72  gcc/testsuite/gcc.c-torture/compile/bf.c
  0aed9f2a176713432244a50d79966162  gcc/testsuite/gcc.c-torture/compile/bfins.c
! e200657d03f2ef9a8aa4efdc430e32d4  gcc/testsuite/gcc.c-torture/compile/bfx.c
! 5f4cb213bb3761ca044419e9bac485cb  gcc/testsuite/gcc.c-torture/compile/bge.c
! d141903011f884e639f45e92ba26b13e  gcc/testsuite/gcc.c-torture/compile/bit.c
! fb7cf588732e40b88d3b3e286ae92094  gcc/testsuite/gcc.c-torture/compile/bitf.c
  aba2c86609deb52535870fc0da864e48  gcc/testsuite/gcc.c-torture/compile/bitfield-1.c
  34e1cdb48b90e1aa50e7736a9d1e2808  gcc/testsuite/gcc.c-torture/compile/bitfield-endian-1.c
  71c15c02afb5dc5392bd5b25fa7d7c1f  gcc/testsuite/gcc.c-torture/compile/bitfield-endian-2.c
! 286468f7fb97b05ed1e7f2a402426322  gcc/testsuite/gcc.c-torture/compile/bitw.c
! 56f4570b8093519c3e534f70e6a6840e  gcc/testsuite/gcc.c-torture/compile/blk.c
! 90d6d0539431ea43d4018afac445ca30  gcc/testsuite/gcc.c-torture/compile/bt.c
! d56fe6956d45ef6963c242fdfcea2f01  gcc/testsuite/gcc.c-torture/compile/bt386.c
! b6055e5c8afba56dd830a9b20f887c38  gcc/testsuite/gcc.c-torture/compile/bug.c
  8e59c529654d59ecc2138c7cd2017d93  gcc/testsuite/gcc.c-torture/compile/bugc.c
  4269366431aa444a3cd69d64bd441d4f  gcc/testsuite/gcc.c-torture/compile/builtin_constant_p.c
  496a2df32dcd1a06e8be3ac9537bad95  gcc/testsuite/gcc.c-torture/compile/builtin_unreachable-1.c
! 15b653f97d54f47d6f42ec3961cc4ce7  gcc/testsuite/gcc.c-torture/compile/buns.c
  871bf57192bc694f0128a3054d0096a3  gcc/testsuite/gcc.c-torture/compile/bx.c
! 209371434a1169de79aa50d9ba30f076  gcc/testsuite/gcc.c-torture/compile/c.c
  2f68463e532b7d38041f86a15b3acb5f  gcc/testsuite/gcc.c-torture/compile/c1.c
! 303a9ca1fd8e6da373399ff049a739fe  gcc/testsuite/gcc.c-torture/compile/c2.c
! 01891af19ff74b94b15e3c0da94adf81  gcc/testsuite/gcc.c-torture/compile/call.c
  c5d1dad6316906edc5ae5ed2038faaaa  gcc/testsuite/gcc.c-torture/compile/call386.c
! 824657c72d03398dac7f485dcbbe3969  gcc/testsuite/gcc.c-torture/compile/callind.c
! a8f496adc8dc7bae20187d43b6d51940  gcc/testsuite/gcc.c-torture/compile/calls-void.c
! 227648778f7f1d2ee13e6945aa6d42d1  gcc/testsuite/gcc.c-torture/compile/calls.c
! c71b0b175cf7d7b8178593602f1544a0  gcc/testsuite/gcc.c-torture/compile/cc.c
! ee9764f97a0259d9764d92b81388fa29  gcc/testsuite/gcc.c-torture/compile/charmtst.c
! 9a0dc3e7152cd824ff365293e25395fc  gcc/testsuite/gcc.c-torture/compile/cmb.c
  64b8008f42c99df849e348119e0acfec  gcc/testsuite/gcc.c-torture/compile/cmp.c
! feb9bda9e04d54bf9b9a4553bc4c13d4  gcc/testsuite/gcc.c-torture/compile/cmpdi-1.c
! 599c8989491dfc24db2f521d05912c5d  gcc/testsuite/gcc.c-torture/compile/cmphi.c
! c037cb218a407576629fa49b2d51de87  gcc/testsuite/gcc.c-torture/compile/cmpsi386.c
! 03754641c2db98deb9435ac890d03264  gcc/testsuite/gcc.c-torture/compile/cmul.c
  2db408a5885d812f5975ff6d22d8deb5  gcc/testsuite/gcc.c-torture/compile/cn1.c
! 36de65380f2874dfd18759a9177a5288  gcc/testsuite/gcc.c-torture/compile/comb.c
  646c27d881cf11bdfb63a423ffd3b604  gcc/testsuite/gcc.c-torture/compile/combine-hang.c
! 37845fada48b50629297ae7551cf0ec2  gcc/testsuite/gcc.c-torture/compile/compile.exp
  a87e64aae03ac41e010753e916d8ee6d  gcc/testsuite/gcc.c-torture/compile/complex-1.c
  9d993598ddcfa7b7cd841fe5a114cec2  gcc/testsuite/gcc.c-torture/compile/complex-2.c
  e78988c1feb46a12813cd47feaaab89f  gcc/testsuite/gcc.c-torture/compile/complex-3.c
  fc52901c6ccc73301051d940eb3a4b18  gcc/testsuite/gcc.c-torture/compile/complex-4.c
  354be2cce89dc3ad9dcf57b8b4c4abf4  gcc/testsuite/gcc.c-torture/compile/complex-5.c
! 38fc87aa9eedd2be1901561ea06b5257  gcc/testsuite/gcc.c-torture/compile/complex-6.c
  afefa9fa4b0bd3238c022734470391d6  gcc/testsuite/gcc.c-torture/compile/compound-literal-1.c
  401530207cad432df55eb7050f466a5e  gcc/testsuite/gcc.c-torture/compile/compound-literal-2.c
  f4e910743ce6520ff783159812df3fbd  gcc/testsuite/gcc.c-torture/compile/compound-literal-3.c
! d44568689af413402b9ce47a9d06a676  gcc/testsuite/gcc.c-torture/compile/condmove-1.c
! b565e488228a90e8303cade7f42a5062  gcc/testsuite/gcc.c-torture/compile/consec.c
  fa5e56ed5af7e7351c66324722bf1b47  gcc/testsuite/gcc.c-torture/compile/const-high-part.c
! 2ab631562fd5554b48a8f32329161b91  gcc/testsuite/gcc.c-torture/compile/const.c
! e43138cf613f99070ba100bef75d5448  gcc/testsuite/gcc.c-torture/compile/conv.c
! de748fb59132aaf84c2aea85fb8d3bf1  gcc/testsuite/gcc.c-torture/compile/conv_tst.c
  16f70f10ea760c640a6d4299724c58cd  gcc/testsuite/gcc.c-torture/compile/cp.c
  61451e07c954124f79273c9995d501cf  gcc/testsuite/gcc.c-torture/compile/cpp-1.c
  a4388070dfa15cbd678485953a9d6165  gcc/testsuite/gcc.c-torture/compile/cpp-2.c
  40557c3ae511b7661275dd797c0fdf29  gcc/testsuite/gcc.c-torture/compile/csebug.c
! 58b61190b1f6209182a7c2202d049058  gcc/testsuite/gcc.c-torture/compile/cvt.c
  e5e909189675ca6cb666ee2344ef6dff  gcc/testsuite/gcc.c-torture/compile/d.c
! 246cc9bd2a95e9f2e2c12550b1cf98e5  gcc/testsuite/gcc.c-torture/compile/dbl_parm.c
! 1add13049bd0e125637f2cd7e85e408e  gcc/testsuite/gcc.c-torture/compile/dblbug.c
  60ab74a0311986845d4157e4aa8df2ef  gcc/testsuite/gcc.c-torture/compile/dce-inline-asm-1.c
  3fdc86f0bcaebaddae6a03d0b118be65  gcc/testsuite/gcc.c-torture/compile/dce-inline-asm-2.c
! a0d28e889a387eda899e0088f7054f39  gcc/testsuite/gcc.c-torture/compile/ddd.c
! 8b9dfe193253e50240d7b6e0ce4cae88  gcc/testsuite/gcc.c-torture/compile/dead.c
  a0cfda0503e80c3ab337b8cd51778fc5  gcc/testsuite/gcc.c-torture/compile/debugvlafunction-1.c
! 7f42a6b0c9b7e2103480f9c422fe5371  gcc/testsuite/gcc.c-torture/compile/delay.c
! 66705753f91364feebcabf81a6342ddb  gcc/testsuite/gcc.c-torture/compile/di.c
  f1264d2daacc48775411bd4bf222ad2a  gcc/testsuite/gcc.c-torture/compile/dic.c
! f473f76fdf9c006f99eba6d0d3a3f9d3  gcc/testsuite/gcc.c-torture/compile/dilayout.c
! 5a89f212ebc23926ceca3342c6d026fe  gcc/testsuite/gcc.c-torture/compile/dimove.c
  496dd08f4188473113c1bfeb76dd98a3  gcc/testsuite/gcc.c-torture/compile/dimul.c
! 82364aaed19ad7323ef7956723b39f2d  gcc/testsuite/gcc.c-torture/compile/div.c
  4dc912d00c4559be63eaa978d01f2e2a  gcc/testsuite/gcc.c-torture/compile/divdf.c
  2dc63e26397ae576b22f03b6268e2db4  gcc/testsuite/gcc.c-torture/compile/dll.c
! 4d119212f2e836515d8dcf2f0a0fc807  gcc/testsuite/gcc.c-torture/compile/dm.c
! a5ab2cdef8e93a766c2f530e7372912f  gcc/testsuite/gcc.c-torture/compile/dse.c
! 2ec3f8b066192935d784c4992ba6fd25  gcc/testsuite/gcc.c-torture/compile/dshift.c
! 378cb8a7dda9e77396171161de2c1e2c  gcc/testsuite/gcc.c-torture/compile/e.c
! 6cc3e8256ec870ce1fd8e2d0ed691664  gcc/testsuite/gcc.c-torture/compile/ex.c
! a5a52956b648b210eaf9e6bbafcb0acd  gcc/testsuite/gcc.c-torture/compile/ext.c
  0edf745c4cba24d7d1826c6b55e51a9e  gcc/testsuite/gcc.c-torture/compile/f1.c
! 0e5cb8878684a8e3a4d22bcb040a50c4  gcc/testsuite/gcc.c-torture/compile/f2.c
  9afe578171d4f7af8dbdd7a9029a7acf  gcc/testsuite/gcc.c-torture/compile/fdmul.c
  2e366a979261dcc46b4e823df111eab1  gcc/testsuite/gcc.c-torture/compile/fix-trunc-mem-1.c
! e2f0a69ab2fa4fb777e1cb38c2ddcac5  gcc/testsuite/gcc.c-torture/compile/flatten.c
! 5e1f7f4896475dc04f04bc8a03174153  gcc/testsuite/gcc.c-torture/compile/flo.c
  7473d993b37b867a9accf1d96cbc5688  gcc/testsuite/gcc.c-torture/compile/float.c
  6c4263000625019bd8e94de59baa20a2  gcc/testsuite/gcc.c-torture/compile/flt_const.c
! 26f955100c39c479be8dc97abbd5592f  gcc/testsuite/gcc.c-torture/compile/fnul.c
! 7102eadafda63ab24a23dc66fefea23b  gcc/testsuite/gcc.c-torture/compile/fold-popcount-1.c
  5381de8411d1bccb89191370b03aab09  gcc/testsuite/gcc.c-torture/compile/foo.c
! 54a36e7018e29e1093ab9bb4b2fd0a5b  gcc/testsuite/gcc.c-torture/compile/forgetcc.c
! f480926587bbfa4b4fba127f60730042  gcc/testsuite/gcc.c-torture/compile/fq.c
! 9bf6508749e7cb3fe257294bd13cd2b9  gcc/testsuite/gcc.c-torture/compile/funcptr-1.c
! 650792ae30a1bba4af1131b2bc126ff3  gcc/testsuite/gcc.c-torture/compile/g.c
! 4af1f6dcb7ebe36a716765b33a926428  gcc/testsuite/gcc.c-torture/compile/gen_tst.c
! b0ccd14319492726a1a6c068958599e8  gcc/testsuite/gcc.c-torture/compile/glob.c
! b2071dbb08b3ee3b1437e7710565dcf7  gcc/testsuite/gcc.c-torture/compile/goto-1.c
! 0160ba2c3642ea2f64951f198c6f160f  gcc/testsuite/gcc.c-torture/compile/gronk.c
! 8af1691aefbf9e9041bb585a5a55d00f  gcc/testsuite/gcc.c-torture/compile/hi.c
  0b5f4705f887c76713066d042bc90595  gcc/testsuite/gcc.c-torture/compile/hibug.c
! 3521e217fc2e1ab771f7ac0641daf546  gcc/testsuite/gcc.c-torture/compile/i++.c
! ec01594aa7e8be0b4ac5fdb82c7b76e0  gcc/testsuite/gcc.c-torture/compile/i.c
! 7716cb798f5d2ac893a75b6659905c6b  gcc/testsuite/gcc.c-torture/compile/ic.c
  ac356c6d7dc34c8ce31f883d25b4e8a1  gcc/testsuite/gcc.c-torture/compile/icfmatch.c
! 8858a4995c1dc36607df691c0507572b  gcc/testsuite/gcc.c-torture/compile/icmp.c
! 54fb0cebe52c6c1759e3740dc7c0868f  gcc/testsuite/gcc.c-torture/compile/ifreg.c
! 327dd30f1b42fe21b3d159a853958c62  gcc/testsuite/gcc.c-torture/compile/iftrap-1.c
! 8a85c040685d088e673a4df1e20bb209  gcc/testsuite/gcc.c-torture/compile/iftrap-2.c
  6c63b6a4bc097369f09c4c92d1f1cf68  gcc/testsuite/gcc.c-torture/compile/iftrap-3.c
  f32a8768657f01378b5dac03fecab5f1  gcc/testsuite/gcc.c-torture/compile/imm.c
  3264c9a18f4664e9ccc409c48efe379c  gcc/testsuite/gcc.c-torture/compile/init-1.c
*************** f40c6f7bd73f37a2260b985ee6e8115c  gcc/te
*** 33970,33983 ****
  350bce2ba013c96d9f397b84467bf52d  gcc/testsuite/gcc.c-torture/compile/inline-asm-1.c
  94c6efe0bfa4f4cab2d17130432729aa  gcc/testsuite/gcc.c-torture/compile/irreducible-loop.c
  24f8128ef30f32192ad255ae173e669c  gcc/testsuite/gcc.c-torture/compile/isinf.c
! 1e85d243005b2df86e7d1193bc29be15  gcc/testsuite/gcc.c-torture/compile/jmp.c
! 6cc66de3161a71f9b223fda5d5702470  gcc/testsuite/gcc.c-torture/compile/jumptab.c
! 36716de424f733c9965de5c0ca32e32d  gcc/testsuite/gcc.c-torture/compile/l.c
! b62e9552262b358d6ef11fcba7215d29  gcc/testsuite/gcc.c-torture/compile/labels-1.c
! 2388e4f51a84a7b9ba15446e988cce7e  gcc/testsuite/gcc.c-torture/compile/labels-2.c
  ddeca8d5f24d99778a3156c5bce03952  gcc/testsuite/gcc.c-torture/compile/labels-3.c
! 19e9af9cfb39df1c7215959778fb5e50  gcc/testsuite/gcc.c-torture/compile/layout.c
! b014a5fca548c9f4c53a2c44801c22b3  gcc/testsuite/gcc.c-torture/compile/lbug.c
  5278e64071957c25df3dbe956161a194  gcc/testsuite/gcc.c-torture/compile/libcall-1.c
  4b8f0a286a8188beb1368cc0a7c4c6c0  gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
  dfbc2317c7fa9d675ee5c2302422d2b6  gcc/testsuite/gcc.c-torture/compile/limits-caselabels.c
--- 36019,36032 ----
  350bce2ba013c96d9f397b84467bf52d  gcc/testsuite/gcc.c-torture/compile/inline-asm-1.c
  94c6efe0bfa4f4cab2d17130432729aa  gcc/testsuite/gcc.c-torture/compile/irreducible-loop.c
  24f8128ef30f32192ad255ae173e669c  gcc/testsuite/gcc.c-torture/compile/isinf.c
! 87fbc308fededdc949991fea99369231  gcc/testsuite/gcc.c-torture/compile/jmp.c
! c565d9775dff726be2f8a59bafdab874  gcc/testsuite/gcc.c-torture/compile/jumptab.c
! 9ef70266ea51603d958633dde56ddff0  gcc/testsuite/gcc.c-torture/compile/l.c
! 74ec89d8cfff272428f9aec5ff60fc00  gcc/testsuite/gcc.c-torture/compile/labels-1.c
! 200403c229dabc274cc1d9090a1b6af6  gcc/testsuite/gcc.c-torture/compile/labels-2.c
  ddeca8d5f24d99778a3156c5bce03952  gcc/testsuite/gcc.c-torture/compile/labels-3.c
! c27f787313a74236678a0d7e7e208ced  gcc/testsuite/gcc.c-torture/compile/layout.c
! e1e1ed82926c024db54cc1eef44544fe  gcc/testsuite/gcc.c-torture/compile/lbug.c
  5278e64071957c25df3dbe956161a194  gcc/testsuite/gcc.c-torture/compile/libcall-1.c
  4b8f0a286a8188beb1368cc0a7c4c6c0  gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
  dfbc2317c7fa9d675ee5c2302422d2b6  gcc/testsuite/gcc.c-torture/compile/limits-caselabels.c
*************** b67dbf324c18ccf7e0862dfdbc50d578  gcc/te
*** 33996,34067 ****
  3f13cbf8b77b39858d22320bd2d1123e  gcc/testsuite/gcc.c-torture/compile/limits-structnest.c
  d14b961639a385a11585d9fc750ffcdc  gcc/testsuite/gcc.c-torture/compile/ll1.c
  a8ddf3e652b5111c2b1970cbdff2c6b7  gcc/testsuite/gcc.c-torture/compile/llbug.c
! 08e800778bb61b2683861558285d8de1  gcc/testsuite/gcc.c-torture/compile/lll.c
! 742f925a86a8792c2776a81581606149  gcc/testsuite/gcc.c-torture/compile/load8.c
! 6de63a633a339ff0f52fa62b0ec42059  gcc/testsuite/gcc.c-torture/compile/loadhicc.c
! 9a93b3f688135b7105aad3cd985d259a  gcc/testsuite/gcc.c-torture/compile/log2.c
! a8a7c226e2dddcd43da8ff2856256063  gcc/testsuite/gcc.c-torture/compile/logic.c
! f543ee60a08767502bd7be74cabb26a1  gcc/testsuite/gcc.c-torture/compile/loop-1.c
! 62224ee99b05e46582746e5e2b6627da  gcc/testsuite/gcc.c-torture/compile/loop386.c
! 8c22eafb288130839e66d58e96680513  gcc/testsuite/gcc.c-torture/compile/lop.c
! d27274f753cb455ecae7c70ec9256736  gcc/testsuite/gcc.c-torture/compile/m1.c
  b6688a9da675e26a00892ea756035b20  gcc/testsuite/gcc.c-torture/compile/m2.c
! fae982c67d5dbadc79dacba283892ef5  gcc/testsuite/gcc.c-torture/compile/m5.c
! c51e3a8b475fa00563f044853b595680  gcc/testsuite/gcc.c-torture/compile/m68.c
  ebd613d33946234eb5361793df0c9996  gcc/testsuite/gcc.c-torture/compile/m68k-byte-addr.c
  ce8c1c76e40f815b9fd4a4a7507bff49  gcc/testsuite/gcc.c-torture/compile/mangle-1.c
! 925c1fcef6cf0271a4aa88812daa0f4a  gcc/testsuite/gcc.c-torture/compile/mbyte.c
  ed5a067eb027f7245bc208a1cf4ffdf9  gcc/testsuite/gcc.c-torture/compile/mchar.c
! fd93380a9881eb6508147c42a6172bec  gcc/testsuite/gcc.c-torture/compile/mcmp.c
  9daac1b0021dff71e0ae56f6659a0361  gcc/testsuite/gcc.c-torture/compile/mdouble.c
  9d0a8ab15e7c5659ac2e435cb87c7779  gcc/testsuite/gcc.c-torture/compile/memcpy-1.c
  94ad12f50d9a0f18fe19d3206dab233f  gcc/testsuite/gcc.c-torture/compile/memcpy-2.c
! 72ea905ae7a135abd6943abdd80364cf  gcc/testsuite/gcc.c-torture/compile/memtst.c
! 5e1733efc8e0d2b62a43347674159957  gcc/testsuite/gcc.c-torture/compile/mipscop-1.c
! a4192e166613ad9f81ef118d2e8dcb43  gcc/testsuite/gcc.c-torture/compile/mipscop-2.c
! b5d6f72a8c84164a62755fb5fdb36d62  gcc/testsuite/gcc.c-torture/compile/mipscop-3.c
! e3e0e6cc4f34cdd3223d4edaf524a70f  gcc/testsuite/gcc.c-torture/compile/mipscop-4.c
! fae7fde375d7f985b97c58f07602ccfe  gcc/testsuite/gcc.c-torture/compile/miscomp.c
! 4a114af428bcd34d4fdd62843c228dff  gcc/testsuite/gcc.c-torture/compile/mm.c
! 901abee74a5d40c66b7a26fa487a5811  gcc/testsuite/gcc.c-torture/compile/mod.c
! a833ba048d64a496818f3fd82693fb4f  gcc/testsuite/gcc.c-torture/compile/modcc.c
! 895535bea7c076825005db50ca6d6044  gcc/testsuite/gcc.c-torture/compile/move.c
! ad44abd5139c812491d95b3fd8b43a5f  gcc/testsuite/gcc.c-torture/compile/move_qhi.c
! 1be6f7f5c865667bf599ceebe817bd1d  gcc/testsuite/gcc.c-torture/compile/mregtst.c
! 429694d61b4b7cb816fcd33875443931  gcc/testsuite/gcc.c-torture/compile/msp.c
! c90a0965e111bdc1a13b19df5bbac56b  gcc/testsuite/gcc.c-torture/compile/mtst.c
! e7e3c2817e154e9dfd37aef27f2c65ae  gcc/testsuite/gcc.c-torture/compile/mu.c
  35c337b62d494f533e8a7b301cbd352c  gcc/testsuite/gcc.c-torture/compile/mul.c
! 6872f8992ba04e3dfaaf760192e2d1fe  gcc/testsuite/gcc.c-torture/compile/mword.c
  598067523e0235a6866d87f2dc2e987e  gcc/testsuite/gcc.c-torture/compile/mword1.c
! 7aeb615ac5f49f9f13b598a57d1faeca  gcc/testsuite/gcc.c-torture/compile/n.c
! 52e29122d4056e64569cd9e226740685  gcc/testsuite/gcc.c-torture/compile/n1.c
! 197415f9be5228f3c5a81b1c16c25f84  gcc/testsuite/gcc.c-torture/compile/nand.c
! fec89a37e3afa204f4eb456dfa3d08b1  gcc/testsuite/gcc.c-torture/compile/neg.c
  83ac972512e83676cd85d42fdef09dc3  gcc/testsuite/gcc.c-torture/compile/nested-1.c
  b8de7b703904b672e38064eeb7129e9b  gcc/testsuite/gcc.c-torture/compile/nested-2.c
  6ff0aa732e1e6e0cc9296a00829c8895  gcc/testsuite/gcc.c-torture/compile/nested-3.c
! 24b3812f0042b99ba76e0539ac4efc39  gcc/testsuite/gcc.c-torture/compile/o.c
! fe28ee04c8b8995f8216e9c4e8700ebe  gcc/testsuite/gcc.c-torture/compile/omit.c
! 84cfc1909824e5fd62577530e5d5548f  gcc/testsuite/gcc.c-torture/compile/opout.c
! 7d0a822150d66dc31bcf1b9541667fdd  gcc/testsuite/gcc.c-torture/compile/opt.c
! 62b69b75b9651dfaf57293a622cc78c2  gcc/testsuite/gcc.c-torture/compile/or.c
! 07ab4e6864534dd89b7fc1fb6466c596  gcc/testsuite/gcc.c-torture/compile/or386.c
! 12eeb3da1684fe30af3ec11b10b77be7  gcc/testsuite/gcc.c-torture/compile/p.c
! e718d4157d90cf3f8d7bd118d0f100e0  gcc/testsuite/gcc.c-torture/compile/packed-1.c
  8aa034128a6f591af42b1b7a04651f2c  gcc/testsuite/gcc.c-torture/compile/packed-aligned-1.c
! 87cd18bf7cd0b89c70052c27921c6c65  gcc/testsuite/gcc.c-torture/compile/parms.c
! 36accdf4e66bb93e0f0333b9cc1fe0b2  gcc/testsuite/gcc.c-torture/compile/pass.c
! e89355b99660c53d3dac89eba0ac8986  gcc/testsuite/gcc.c-torture/compile/pc44485.c
  6a87e81aa60353be798e48130f2c4ca2  gcc/testsuite/gcc.c-torture/compile/pmt.c
  048ad13954512f77d283379cc894eaed  gcc/testsuite/gcc.c-torture/compile/poor.c
! 5dd01a3a30ba2b97a934273ca5fe3170  gcc/testsuite/gcc.c-torture/compile/pp.c
  5e2710168af4ad47d5838cfdfc0a5ecd  gcc/testsuite/gcc.c-torture/compile/pr100106.c
  a542de03bbd3e4126e78e5767194e993  gcc/testsuite/gcc.c-torture/compile/pr100241-1.c
  9dcc503ae55f6c0f214640860f3e5ff3  gcc/testsuite/gcc.c-torture/compile/pr100278.c
  ede20faf9b203e25b39b7032970f58be  gcc/testsuite/gcc.c-torture/compile/pr100305.c
  dcaa1bc6d2f365241f63a018eb986a02  gcc/testsuite/gcc.c-torture/compile/pr100316.c
! 358e0560b782adecef1a220270900ed2  gcc/testsuite/gcc.c-torture/compile/pr100576.c
  e97a737f0299f3c9f1da7d1ce3711453  gcc/testsuite/gcc.c-torture/compile/pr101159.c
  13e7494d151b9cab31c591acca4bb537  gcc/testsuite/gcc.c-torture/compile/pr101189.c
  8b2f7aa49d9179d508ec51fb1ed95f39  gcc/testsuite/gcc.c-torture/compile/pr101437.c
--- 36045,36116 ----
  3f13cbf8b77b39858d22320bd2d1123e  gcc/testsuite/gcc.c-torture/compile/limits-structnest.c
  d14b961639a385a11585d9fc750ffcdc  gcc/testsuite/gcc.c-torture/compile/ll1.c
  a8ddf3e652b5111c2b1970cbdff2c6b7  gcc/testsuite/gcc.c-torture/compile/llbug.c
! f75fe4ee9e6c77e634003bc2f7e18c17  gcc/testsuite/gcc.c-torture/compile/lll.c
! 32bd491ef99c581c562d23764532551c  gcc/testsuite/gcc.c-torture/compile/load8.c
! 44b0080a14dfdeefbd4811fbfbab09a6  gcc/testsuite/gcc.c-torture/compile/loadhicc.c
! 0f5f6a7afad13445434e38246a59895c  gcc/testsuite/gcc.c-torture/compile/log2.c
! 792d70d20f015d4134dd90f402d32f3a  gcc/testsuite/gcc.c-torture/compile/logic.c
! b6132026108b544431beb19e6234febe  gcc/testsuite/gcc.c-torture/compile/loop-1.c
! 2694ac81e0141630c13ba44ac92d99c8  gcc/testsuite/gcc.c-torture/compile/loop386.c
! ec59722952487fa305c7650ed22e313f  gcc/testsuite/gcc.c-torture/compile/lop.c
! 4ccf2dc90c163a1b22f6bd7a18e673bd  gcc/testsuite/gcc.c-torture/compile/m1.c
  b6688a9da675e26a00892ea756035b20  gcc/testsuite/gcc.c-torture/compile/m2.c
! e388e95ff4ab6bec72924cc332a3b12f  gcc/testsuite/gcc.c-torture/compile/m5.c
! 45075ffe82e2ed3e7ca449df141ad548  gcc/testsuite/gcc.c-torture/compile/m68.c
  ebd613d33946234eb5361793df0c9996  gcc/testsuite/gcc.c-torture/compile/m68k-byte-addr.c
  ce8c1c76e40f815b9fd4a4a7507bff49  gcc/testsuite/gcc.c-torture/compile/mangle-1.c
! fd1559dd2c5a11575a706b7ed6c01691  gcc/testsuite/gcc.c-torture/compile/mbyte.c
  ed5a067eb027f7245bc208a1cf4ffdf9  gcc/testsuite/gcc.c-torture/compile/mchar.c
! 9ab5035b371af25d1cbadf8b5b923b2e  gcc/testsuite/gcc.c-torture/compile/mcmp.c
  9daac1b0021dff71e0ae56f6659a0361  gcc/testsuite/gcc.c-torture/compile/mdouble.c
  9d0a8ab15e7c5659ac2e435cb87c7779  gcc/testsuite/gcc.c-torture/compile/memcpy-1.c
  94ad12f50d9a0f18fe19d3206dab233f  gcc/testsuite/gcc.c-torture/compile/memcpy-2.c
! f17273f9af24f8e66ca4e401e5a3a20e  gcc/testsuite/gcc.c-torture/compile/memtst.c
! 7581df7491ce0e6024cc205cfe0b8455  gcc/testsuite/gcc.c-torture/compile/mipscop-1.c
! b20dcaf34b3687077a84d410b087d208  gcc/testsuite/gcc.c-torture/compile/mipscop-2.c
! 1ca6eb0a160926bc2df1ef1912c1d0ba  gcc/testsuite/gcc.c-torture/compile/mipscop-3.c
! 4e05958360fd9ed3f3752958023bf546  gcc/testsuite/gcc.c-torture/compile/mipscop-4.c
! 3a0ff6a2056e19e6cd2641d9da592fd9  gcc/testsuite/gcc.c-torture/compile/miscomp.c
! 0e15b570be2d338ac90790744857ed87  gcc/testsuite/gcc.c-torture/compile/mm.c
! 828aef4551b76265fc48924e3b6d4453  gcc/testsuite/gcc.c-torture/compile/mod.c
! 969ed507473307ac5810f680ee4c726d  gcc/testsuite/gcc.c-torture/compile/modcc.c
! eca798ce99094d6e43421922fa5f3130  gcc/testsuite/gcc.c-torture/compile/move.c
! 0b7b7435f4258ef80051c2510327927f  gcc/testsuite/gcc.c-torture/compile/move_qhi.c
! c70aa920c382c9a558aedbde47d898db  gcc/testsuite/gcc.c-torture/compile/mregtst.c
! 9dac411f0752753b271a50ec35030c8d  gcc/testsuite/gcc.c-torture/compile/msp.c
! 11a20c23477af300476350e1602933c5  gcc/testsuite/gcc.c-torture/compile/mtst.c
! b6d624af992868a3efe632ab9eac9a01  gcc/testsuite/gcc.c-torture/compile/mu.c
  35c337b62d494f533e8a7b301cbd352c  gcc/testsuite/gcc.c-torture/compile/mul.c
! 68cf2677890dbca5c01dbd526ac85d7d  gcc/testsuite/gcc.c-torture/compile/mword.c
  598067523e0235a6866d87f2dc2e987e  gcc/testsuite/gcc.c-torture/compile/mword1.c
! 5fffa22d05613c7328b75cf4bc8cca5c  gcc/testsuite/gcc.c-torture/compile/n.c
! 46f79a3685f6d7a59fe50915d52da2fc  gcc/testsuite/gcc.c-torture/compile/n1.c
! a54d529b53ec5142d62b0d6c4f76f5df  gcc/testsuite/gcc.c-torture/compile/nand.c
! e4beb78486cac2a3afdbabec697f516e  gcc/testsuite/gcc.c-torture/compile/neg.c
  83ac972512e83676cd85d42fdef09dc3  gcc/testsuite/gcc.c-torture/compile/nested-1.c
  b8de7b703904b672e38064eeb7129e9b  gcc/testsuite/gcc.c-torture/compile/nested-2.c
  6ff0aa732e1e6e0cc9296a00829c8895  gcc/testsuite/gcc.c-torture/compile/nested-3.c
! cdc3153ef0b80bd69492d90e9aeda8f9  gcc/testsuite/gcc.c-torture/compile/o.c
! a8a379b20219dbff32b61e7ef5eaf02e  gcc/testsuite/gcc.c-torture/compile/omit.c
! c3c7b6dc12a6a775402c298ff2282305  gcc/testsuite/gcc.c-torture/compile/opout.c
! d46fb19abc958fb1b3c13ff252355ef1  gcc/testsuite/gcc.c-torture/compile/opt.c
! 736ddab91f3c75acad45cc07f5eb5cdc  gcc/testsuite/gcc.c-torture/compile/or.c
! 0263d174527f73d4628acd5aa1bd45d5  gcc/testsuite/gcc.c-torture/compile/or386.c
! 307a929234d4cfaf21c627a7e4bddf05  gcc/testsuite/gcc.c-torture/compile/p.c
! 4af82ad4eaf6c4e58ebbbc0eaa3c98b9  gcc/testsuite/gcc.c-torture/compile/packed-1.c
  8aa034128a6f591af42b1b7a04651f2c  gcc/testsuite/gcc.c-torture/compile/packed-aligned-1.c
! f0d450c44cd489a586cf544551d4568d  gcc/testsuite/gcc.c-torture/compile/parms.c
! 66d06b5592982de1f6835d9bb7e40e61  gcc/testsuite/gcc.c-torture/compile/pass.c
! c2d707fb16737ce0242127be84e3ed5a  gcc/testsuite/gcc.c-torture/compile/pc44485.c
  6a87e81aa60353be798e48130f2c4ca2  gcc/testsuite/gcc.c-torture/compile/pmt.c
  048ad13954512f77d283379cc894eaed  gcc/testsuite/gcc.c-torture/compile/poor.c
! 3cde6591b96b860386d7a3279c0b7928  gcc/testsuite/gcc.c-torture/compile/pp.c
  5e2710168af4ad47d5838cfdfc0a5ecd  gcc/testsuite/gcc.c-torture/compile/pr100106.c
  a542de03bbd3e4126e78e5767194e993  gcc/testsuite/gcc.c-torture/compile/pr100241-1.c
  9dcc503ae55f6c0f214640860f3e5ff3  gcc/testsuite/gcc.c-torture/compile/pr100278.c
  ede20faf9b203e25b39b7032970f58be  gcc/testsuite/gcc.c-torture/compile/pr100305.c
  dcaa1bc6d2f365241f63a018eb986a02  gcc/testsuite/gcc.c-torture/compile/pr100316.c
! 98588bc4d2a92168eaf8ec0ff54dde07  gcc/testsuite/gcc.c-torture/compile/pr100576.c
  e97a737f0299f3c9f1da7d1ce3711453  gcc/testsuite/gcc.c-torture/compile/pr101159.c
  13e7494d151b9cab31c591acca4bb537  gcc/testsuite/gcc.c-torture/compile/pr101189.c
  8b2f7aa49d9179d508ec51fb1ed95f39  gcc/testsuite/gcc.c-torture/compile/pr101437.c
*************** a2656a59d00f50e3a24dc4e71bfb3973  gcc/te
*** 34077,34090 ****
  516dbea7197792a04ec7f907b76d59db  gcc/testsuite/gcc.c-torture/compile/pr103376.c
  98dfd82b902bb1a40821bf1c96727774  gcc/testsuite/gcc.c-torture/compile/pr103513.c
  8b249aa4baa43999dc027c800c2c82f2  gcc/testsuite/gcc.c-torture/compile/pr103682.c
! 6d13d2354182ca3dc50d8f4d6d5ed5ab  gcc/testsuite/gcc.c-torture/compile/pr103813.c
  4a6f867d2a09bace8b7a324f6a4f5237  gcc/testsuite/gcc.c-torture/compile/pr104327.c
  43abe0671a6ea621a4ca89fda41e49b8  gcc/testsuite/gcc.c-torture/compile/pr104499.c
  b8c09513cab59ca8f22d38e515f50fa8  gcc/testsuite/gcc.c-torture/compile/pr105234.c
  112c17f5638bc2cf5c04c9e917943218  gcc/testsuite/gcc.c-torture/compile/pr105247.c
  9477024f0d6e7d41ab0ee7d8ab3d3e58  gcc/testsuite/gcc.c-torture/compile/pr106030.c
! a3b64dd1348a124fafa3123af1fade2b  gcc/testsuite/gcc.c-torture/compile/pr106101.c
! 1a4e73ad03c229361a9693ac736566b5  gcc/testsuite/gcc.c-torture/compile/pr106433.c
  e12df015117953bcc79bb2bd0912de65  gcc/testsuite/gcc.c-torture/compile/pr106751.c
  12ff5d18b6bf67f003c974931bd83681  gcc/testsuite/gcc.c-torture/compile/pr106878.c
  1e4a974fa322bd5cf045264503d48d49  gcc/testsuite/gcc.c-torture/compile/pr106958.c
--- 36126,36142 ----
  516dbea7197792a04ec7f907b76d59db  gcc/testsuite/gcc.c-torture/compile/pr103376.c
  98dfd82b902bb1a40821bf1c96727774  gcc/testsuite/gcc.c-torture/compile/pr103513.c
  8b249aa4baa43999dc027c800c2c82f2  gcc/testsuite/gcc.c-torture/compile/pr103682.c
! 9b56cc2b8b8b471730e0b14ce4b78300  gcc/testsuite/gcc.c-torture/compile/pr103813.c
  4a6f867d2a09bace8b7a324f6a4f5237  gcc/testsuite/gcc.c-torture/compile/pr104327.c
  43abe0671a6ea621a4ca89fda41e49b8  gcc/testsuite/gcc.c-torture/compile/pr104499.c
  b8c09513cab59ca8f22d38e515f50fa8  gcc/testsuite/gcc.c-torture/compile/pr105234.c
  112c17f5638bc2cf5c04c9e917943218  gcc/testsuite/gcc.c-torture/compile/pr105247.c
  9477024f0d6e7d41ab0ee7d8ab3d3e58  gcc/testsuite/gcc.c-torture/compile/pr106030.c
! 3a972fb6843fac5fd85dc4f4a75d9d5f  gcc/testsuite/gcc.c-torture/compile/pr106101.c
! 8087b95cf7fb99e888039a48ff88ff60  gcc/testsuite/gcc.c-torture/compile/pr106433.c
! a8f07a6ed2db26f43f2c811cc025880c  gcc/testsuite/gcc.c-torture/compile/pr106537-1.c
! 06637ec03dd435f0593fbc4ea0fbe9ea  gcc/testsuite/gcc.c-torture/compile/pr106537-2.c
! 1a14d9ede1423f90423d862676eeb761  gcc/testsuite/gcc.c-torture/compile/pr106537-3.c
  e12df015117953bcc79bb2bd0912de65  gcc/testsuite/gcc.c-torture/compile/pr106751.c
  12ff5d18b6bf67f003c974931bd83681  gcc/testsuite/gcc.c-torture/compile/pr106878.c
  1e4a974fa322bd5cf045264503d48d49  gcc/testsuite/gcc.c-torture/compile/pr106958.c
*************** d4fa23318b96f5289939b05942610cc2  gcc/te
*** 34096,34102 ****
  dd402d355ab63a087ccad160409acaa1  gcc/testsuite/gcc.c-torture/compile/pr108639.c
  6531dceb4d0bccc3f89474a26aea0d4a  gcc/testsuite/gcc.c-torture/compile/pr108688-1.c
  36e883bce8d9951768a9441174da8c4e  gcc/testsuite/gcc.c-torture/compile/pr108783.c
! e0b4886989ab945696b0b58709123573  gcc/testsuite/gcc.c-torture/compile/pr108892.c
  33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
  ec16b12ab11c499bf321be18ea59da33  gcc/testsuite/gcc.c-torture/compile/pr12578.c
  86f3d5cf87d24e97aa663b79f2d0ac5d  gcc/testsuite/gcc.c-torture/compile/pr12899.c
--- 36148,36201 ----
  dd402d355ab63a087ccad160409acaa1  gcc/testsuite/gcc.c-torture/compile/pr108639.c
  6531dceb4d0bccc3f89474a26aea0d4a  gcc/testsuite/gcc.c-torture/compile/pr108688-1.c
  36e883bce8d9951768a9441174da8c4e  gcc/testsuite/gcc.c-torture/compile/pr108783.c
! 89e292022c0ec78b354e7684d70a7c3e  gcc/testsuite/gcc.c-torture/compile/pr108892.c
! 70716f836411876b9ffb61266bc07ece  gcc/testsuite/gcc.c-torture/compile/pr109604-1.c
! fd1ab4fa3ef0acdfdef6c03e4ec2aa0c  gcc/testsuite/gcc.c-torture/compile/pr109604-2.c
! 79c936a4059d5c397d8c6c1a1dddde40  gcc/testsuite/gcc.c-torture/compile/pr109834-1.c
! 9c9769c4e513eb57747f13c5896a4d27  gcc/testsuite/gcc.c-torture/compile/pr109919-1.c
! d8884799332a3cdef728b8dd4d9b57b2  gcc/testsuite/gcc.c-torture/compile/pr110251.c
! ef42dba4450ce62abf160686b40c08c4  gcc/testsuite/gcc.c-torture/compile/pr110266.c
! d1d7ef45d92774b77a678915995a8225  gcc/testsuite/gcc.c-torture/compile/pr110271.c
! 1cc2b0e02f55deda1453bb31c97790d1  gcc/testsuite/gcc.c-torture/compile/pr110334.c
! bbe3ff8274dae6d3f21cbdb4fa780c91  gcc/testsuite/gcc.c-torture/compile/pr110386-1.c
! aac64916588db7f60e87baab1268b8e2  gcc/testsuite/gcc.c-torture/compile/pr110386-2.c
! ca883d2fb54a2f8af4dda5846ab45ec6  gcc/testsuite/gcc.c-torture/compile/pr110444-1.c
! 10b6d147952b8473259dcafb1ad6dbca  gcc/testsuite/gcc.c-torture/compile/pr110600.c
! dbc981b92aa7f497a61ab483298b2c7d  gcc/testsuite/gcc.c-torture/compile/pr110603.c
! 95bf263558a9fbd3cf76a53d5ebd0e19  gcc/testsuite/gcc.c-torture/compile/pr110705-1.c
! 9fddc730ce8eaf4d54e5de5881f4c32c  gcc/testsuite/gcc.c-torture/compile/pr110874-a.c
! f0a9d28edf78d68963f5fe8a75417000  gcc/testsuite/gcc.c-torture/compile/pr110940.c
! 4ceb4c931eda69596484a54b329e596b  gcc/testsuite/gcc.c-torture/compile/pr111054.c
! d22ddc396d8a559173b0fe17d34ad8f5  gcc/testsuite/gcc.c-torture/compile/pr111059-1.c
! c5f4128138c36da2f6d891561c77fa27  gcc/testsuite/gcc.c-torture/compile/pr111059-10.c
! b34d58374466da848bc0d7c605114818  gcc/testsuite/gcc.c-torture/compile/pr111059-11.c
! da715fedcccfd86db2d2757054a7ae06  gcc/testsuite/gcc.c-torture/compile/pr111059-12.c
! 825dfa52694c7cccd96e0db09172cceb  gcc/testsuite/gcc.c-torture/compile/pr111059-2.c
! 07e979166481e242662ca0e4dabc7552  gcc/testsuite/gcc.c-torture/compile/pr111059-3.c
! 259e4b15da8a0a882cd26089618e1b46  gcc/testsuite/gcc.c-torture/compile/pr111059-4.c
! c631e9a1c74ae735a266635951581507  gcc/testsuite/gcc.c-torture/compile/pr111059-5.c
! 492c49f4870705128fc22cf955524880  gcc/testsuite/gcc.c-torture/compile/pr111059-6.c
! 0115dae9f86869e9194ac2e0a2dd9a93  gcc/testsuite/gcc.c-torture/compile/pr111059-7.c
! 2f02837c1684cba6dbdb4091a3a6418e  gcc/testsuite/gcc.c-torture/compile/pr111059-8.c
! af63c6c42221c2475b6fa864b19ee0b5  gcc/testsuite/gcc.c-torture/compile/pr111059-9.c
! 3e3aee31926ec138b97af0899a59c5d5  gcc/testsuite/gcc.c-torture/compile/pr111414-1.c
! 46567e0e11491b4575015f91fe0d0127  gcc/testsuite/gcc.c-torture/compile/pr111435-1.c
! 3f87607864158dcf6e9848b6e1e421b8  gcc/testsuite/gcc.c-torture/compile/pr111442-1.c
! ca66c7f74573d2e86d4d649aa258e0e5  gcc/testsuite/gcc.c-torture/compile/pr111699-1.c
! f0500a4fbad294a8588f0bbb37aaae29  gcc/testsuite/gcc.c-torture/compile/pr111911-1.c
! e9660b3a171b1dc585dda8167702a5e6  gcc/testsuite/gcc.c-torture/compile/pr111911-2.c
! 2e72b534a63c68ecb879a9df0f934950  gcc/testsuite/gcc.c-torture/compile/pr112303.c
! 5ef5aa6f60be880e40cc43f3828a5c8b  gcc/testsuite/gcc.c-torture/compile/pr113089.c
! b7b98ba4ebc436aaffc17c2db6a66875  gcc/testsuite/gcc.c-torture/compile/pr113114.c
! 75c3b2398464456af4816ebf0a089703  gcc/testsuite/gcc.c-torture/compile/pr113201.c
! 715f52d228f2a47349d9c64dc6e78544  gcc/testsuite/gcc.c-torture/compile/pr113210.c
! 90ccbf41cd79dc0d93ae0360d8dd0cc8  gcc/testsuite/gcc.c-torture/compile/pr113221-1.c
! 4bcce0dfd94023e3636b6a532d8d4de4  gcc/testsuite/gcc.c-torture/compile/pr113228.c
! a9d589b4ef5406d1fedd32cb046b9e79  gcc/testsuite/gcc.c-torture/compile/pr113322-1.c
! 597d2b1dda1b08561fbe83f15c76f510  gcc/testsuite/gcc.c-torture/compile/pr113603.c
! 1a7448487530f0fec94499f40fa81340  gcc/testsuite/gcc.c-torture/compile/pr113616.c
! 7ef1724fcd81ffe7c8df3ed4c66d5576  gcc/testsuite/gcc.c-torture/compile/pr113623.c
! 43e7330e295ee3a8b072d1e81eecfc77  gcc/testsuite/gcc.c-torture/compile/pr113759.c
  33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
  ec16b12ab11c499bf321be18ea59da33  gcc/testsuite/gcc.c-torture/compile/pr12578.c
  86f3d5cf87d24e97aa663b79f2d0ac5d  gcc/testsuite/gcc.c-torture/compile/pr12899.c
*************** bc9302b244bd78725184f632efe23cc9  gcc/te
*** 34110,34120 ****
  c38e98ed2f16b453ff8351e1a0a9da2e  gcc/testsuite/gcc.c-torture/compile/pr16566-2.c
  c26a1a26e168c4a347da48f6a832b074  gcc/testsuite/gcc.c-torture/compile/pr16566-3.c
  2c599088952b8e02e3867682a915ab48  gcc/testsuite/gcc.c-torture/compile/pr16808.c
! e6c3e93e373de841413ba3d98c007ded  gcc/testsuite/gcc.c-torture/compile/pr17119.c
  bf9f2dd1b8103e560516d22c57e90963  gcc/testsuite/gcc.c-torture/compile/pr17273.c
  e25060bc2a7a7b7489b8d1c74f22cf39  gcc/testsuite/gcc.c-torture/compile/pr17397.c
  922eec36854cc0b0cae5adbd68b4fa1f  gcc/testsuite/gcc.c-torture/compile/pr17407.c
! 38c1ad7603bd2b4d9c24c3d5b285c52e  gcc/testsuite/gcc.c-torture/compile/pr17408.c
  28eac5f57a069e485059b40ffe2a14bf  gcc/testsuite/gcc.c-torture/compile/pr17529.c
  5949f21847bc35c7c3ce185c1f8792d6  gcc/testsuite/gcc.c-torture/compile/pr17558.c
  dabad41f6a964efb6e69e11ec99e2fe1  gcc/testsuite/gcc.c-torture/compile/pr17656.c
--- 36209,36219 ----
  c38e98ed2f16b453ff8351e1a0a9da2e  gcc/testsuite/gcc.c-torture/compile/pr16566-2.c
  c26a1a26e168c4a347da48f6a832b074  gcc/testsuite/gcc.c-torture/compile/pr16566-3.c
  2c599088952b8e02e3867682a915ab48  gcc/testsuite/gcc.c-torture/compile/pr16808.c
! 8bda599709a248b2744792626c3ae96d  gcc/testsuite/gcc.c-torture/compile/pr17119.c
  bf9f2dd1b8103e560516d22c57e90963  gcc/testsuite/gcc.c-torture/compile/pr17273.c
  e25060bc2a7a7b7489b8d1c74f22cf39  gcc/testsuite/gcc.c-torture/compile/pr17397.c
  922eec36854cc0b0cae5adbd68b4fa1f  gcc/testsuite/gcc.c-torture/compile/pr17407.c
! c4b53f384064b9c670cd6ad8af6fb50e  gcc/testsuite/gcc.c-torture/compile/pr17408.c
  28eac5f57a069e485059b40ffe2a14bf  gcc/testsuite/gcc.c-torture/compile/pr17529.c
  5949f21847bc35c7c3ce185c1f8792d6  gcc/testsuite/gcc.c-torture/compile/pr17558.c
  dabad41f6a964efb6e69e11ec99e2fe1  gcc/testsuite/gcc.c-torture/compile/pr17656.c
*************** dabad41f6a964efb6e69e11ec99e2fe1  gcc/te
*** 34122,34136 ****
  9336cce35e2cf2f71ca962b807c6b4a6  gcc/testsuite/gcc.c-torture/compile/pr17913.c
  a006256fb385251816337c8b0552856d  gcc/testsuite/gcc.c-torture/compile/pr18291.c
  94a3a67b41b3d1d739474b1f36b48495  gcc/testsuite/gcc.c-torture/compile/pr18299-1.c
! c326329b4c5f916450c39656200ac2e8  gcc/testsuite/gcc.c-torture/compile/pr18712.c
  9296c908be5102614c47051dcd0145a0  gcc/testsuite/gcc.c-torture/compile/pr18903.c
  82bf258119e71bcba319c27851d7eba2  gcc/testsuite/gcc.c-torture/compile/pr19080.c
! 286651cc31c341c53927f7c592612b8b  gcc/testsuite/gcc.c-torture/compile/pr19121.c
  5288b3384781b61527cac7a14179984a  gcc/testsuite/gcc.c-torture/compile/pr19357.c
  36b4ee0a6653dce9bfd02ba9d430a226  gcc/testsuite/gcc.c-torture/compile/pr19736.c
  a71feaa4722b34df679da9af8757c600  gcc/testsuite/gcc.c-torture/compile/pr19853.c
  ba92e8189244ad6fe8a63df6a001e369  gcc/testsuite/gcc.c-torture/compile/pr20203.c
! 7ede06ac5702631a772262d2be62b21e  gcc/testsuite/gcc.c-torture/compile/pr20412.c
  a6f4280d6386bbc00f0a6e414140c808  gcc/testsuite/gcc.c-torture/compile/pr20539-1.c
  56f534b214b74175727aecf027b4685f  gcc/testsuite/gcc.c-torture/compile/pr20583.c
  f2b8f11f257f2e52bfa3195b06d23438  gcc/testsuite/gcc.c-torture/compile/pr20928.c
--- 36221,36235 ----
  9336cce35e2cf2f71ca962b807c6b4a6  gcc/testsuite/gcc.c-torture/compile/pr17913.c
  a006256fb385251816337c8b0552856d  gcc/testsuite/gcc.c-torture/compile/pr18291.c
  94a3a67b41b3d1d739474b1f36b48495  gcc/testsuite/gcc.c-torture/compile/pr18299-1.c
! 39b04db479abc6370138a5b9ebb4c8ea  gcc/testsuite/gcc.c-torture/compile/pr18712.c
  9296c908be5102614c47051dcd0145a0  gcc/testsuite/gcc.c-torture/compile/pr18903.c
  82bf258119e71bcba319c27851d7eba2  gcc/testsuite/gcc.c-torture/compile/pr19080.c
! 210a0602115b030def471c1f6d34e477  gcc/testsuite/gcc.c-torture/compile/pr19121.c
  5288b3384781b61527cac7a14179984a  gcc/testsuite/gcc.c-torture/compile/pr19357.c
  36b4ee0a6653dce9bfd02ba9d430a226  gcc/testsuite/gcc.c-torture/compile/pr19736.c
  a71feaa4722b34df679da9af8757c600  gcc/testsuite/gcc.c-torture/compile/pr19853.c
  ba92e8189244ad6fe8a63df6a001e369  gcc/testsuite/gcc.c-torture/compile/pr20203.c
! 7adc4622027b19917f76ef4398838186  gcc/testsuite/gcc.c-torture/compile/pr20412.c
  a6f4280d6386bbc00f0a6e414140c808  gcc/testsuite/gcc.c-torture/compile/pr20539-1.c
  56f534b214b74175727aecf027b4685f  gcc/testsuite/gcc.c-torture/compile/pr20583.c
  f2b8f11f257f2e52bfa3195b06d23438  gcc/testsuite/gcc.c-torture/compile/pr20928.c
*************** a0a07c65500cda432ad4b01768ddca92  gcc/te
*** 34139,34145 ****
  48dc146c086e25c894cd2ebc820c5c99  gcc/testsuite/gcc.c-torture/compile/pr21293.c
  a720d444b56668992e1155e5628d2f53  gcc/testsuite/gcc.c-torture/compile/pr21356.c
  d1f7a32f57e7260ec34dfbf13df811ed  gcc/testsuite/gcc.c-torture/compile/pr21380.c
! f4399117263a21b4a0d97f17042892bb  gcc/testsuite/gcc.c-torture/compile/pr21532.c
  8681abba8bb919c3232f2fa86e70441c  gcc/testsuite/gcc.c-torture/compile/pr21562.c
  b879b40b1f5ce96a31ec3e47d769d927  gcc/testsuite/gcc.c-torture/compile/pr21638.c
  967580c7e22893f08a7d4216ff236d22  gcc/testsuite/gcc.c-torture/compile/pr21728.c
--- 36238,36244 ----
  48dc146c086e25c894cd2ebc820c5c99  gcc/testsuite/gcc.c-torture/compile/pr21293.c
  a720d444b56668992e1155e5628d2f53  gcc/testsuite/gcc.c-torture/compile/pr21356.c
  d1f7a32f57e7260ec34dfbf13df811ed  gcc/testsuite/gcc.c-torture/compile/pr21380.c
! c9d3885bac3c6bc94e360daa5cb58b90  gcc/testsuite/gcc.c-torture/compile/pr21532.c
  8681abba8bb919c3232f2fa86e70441c  gcc/testsuite/gcc.c-torture/compile/pr21562.c
  b879b40b1f5ce96a31ec3e47d769d927  gcc/testsuite/gcc.c-torture/compile/pr21638.c
  967580c7e22893f08a7d4216ff236d22  gcc/testsuite/gcc.c-torture/compile/pr21728.c
*************** b879b40b1f5ce96a31ec3e47d769d927  gcc/te
*** 34149,34181 ****
  b653e6ec31151f01343de101de4b7c02  gcc/testsuite/gcc.c-torture/compile/pr22013-1.c
  393a4ebe6fd377d20a25e1e970b9bfec  gcc/testsuite/gcc.c-torture/compile/pr22269.c
  d94c4adef293f16bfca434a428584fcc  gcc/testsuite/gcc.c-torture/compile/pr22379.c
! 1ac237ce4e87d4e4d8f0fbee6431320d  gcc/testsuite/gcc.c-torture/compile/pr22398.c
  48e4557aa62efaa51836af5a3baf3e28  gcc/testsuite/gcc.c-torture/compile/pr22422.c
  9b984f9ccc2fba82dc9ab023feb62b70  gcc/testsuite/gcc.c-torture/compile/pr22531.c
  57b546bce2a786e33587be3d9e06dbba  gcc/testsuite/gcc.c-torture/compile/pr22589-1.c
  5280652cf6ea8a41acb53fcfcae956a0  gcc/testsuite/gcc.c-torture/compile/pr23233-1.c
  b2c30c5e1c247ecc62592b8d7800ba7f  gcc/testsuite/gcc.c-torture/compile/pr23237.c
  aa086ec446012db5c2fec52c986c38b4  gcc/testsuite/gcc.c-torture/compile/pr23435.c
! 062b963b2cce3f1e156417b86ba97fde  gcc/testsuite/gcc.c-torture/compile/pr23445.c
  8871ef880e8f661ac0e6bb777fa2f37c  gcc/testsuite/gcc.c-torture/compile/pr23476.c
  c75ff7477905dc4e3004ef2d9435eb05  gcc/testsuite/gcc.c-torture/compile/pr23929.c
  b990cbb7f4cfd0bff8b91c6ef75e80ca  gcc/testsuite/gcc.c-torture/compile/pr23944.c
! 8f861bee01658f18520cdf7973ca08bd  gcc/testsuite/gcc.c-torture/compile/pr23946.c
  80b808db9c82a0771272035969c66d17  gcc/testsuite/gcc.c-torture/compile/pr23960.c
  975fa22a642fc6a912c4d58a68782df1  gcc/testsuite/gcc.c-torture/compile/pr24227.c
! f15934aef3c9ad0f4af60d7b9a0445d6  gcc/testsuite/gcc.c-torture/compile/pr24883.c
  a058ce9346e450f1c716a9777695fba4  gcc/testsuite/gcc.c-torture/compile/pr24930.c
  32aaf2fdc1161fc666e9a49555360d07  gcc/testsuite/gcc.c-torture/compile/pr25224.c
  0ece000bc99c67de10db7fb4224fa02a  gcc/testsuite/gcc.c-torture/compile/pr25310.c
! 88b49389aa3b0a814a2efec37979a30d  gcc/testsuite/gcc.c-torture/compile/pr25311.c
  855abc93cb9409071ac62cc7c3bad06f  gcc/testsuite/gcc.c-torture/compile/pr25483.c
  8b6e48dd3e6176d3ee750bb34f12f3e1  gcc/testsuite/gcc.c-torture/compile/pr25513.c
! 73c791ed4a74910c7001399237df449f  gcc/testsuite/gcc.c-torture/compile/pr25514.c
  cb717eb9c2a6306349883b0f536add02  gcc/testsuite/gcc.c-torture/compile/pr25860.c
  e34d95f26d61726c9e3cbfe8d582c303  gcc/testsuite/gcc.c-torture/compile/pr25861.c
! 628b5a5ff8e33deebea907eba552d5df  gcc/testsuite/gcc.c-torture/compile/pr26213.c
  7f8d5a0338690eb68082de753b619fbb  gcc/testsuite/gcc.c-torture/compile/pr26255.c
! 6ba4c931d5d439fb9cb984258b29edf0  gcc/testsuite/gcc.c-torture/compile/pr26425.c
  c568b6fe720c17f9a35dc10385288203  gcc/testsuite/gcc.c-torture/compile/pr26622.c
  8394e7490cffbb90296d682653d2f35b  gcc/testsuite/gcc.c-torture/compile/pr26626.c
  ffb381370b3e234bad2de0e7a9faaed1  gcc/testsuite/gcc.c-torture/compile/pr26725.c
--- 36248,36280 ----
  b653e6ec31151f01343de101de4b7c02  gcc/testsuite/gcc.c-torture/compile/pr22013-1.c
  393a4ebe6fd377d20a25e1e970b9bfec  gcc/testsuite/gcc.c-torture/compile/pr22269.c
  d94c4adef293f16bfca434a428584fcc  gcc/testsuite/gcc.c-torture/compile/pr22379.c
! 0081b7c38dd11d07bc56e8637b865c0e  gcc/testsuite/gcc.c-torture/compile/pr22398.c
  48e4557aa62efaa51836af5a3baf3e28  gcc/testsuite/gcc.c-torture/compile/pr22422.c
  9b984f9ccc2fba82dc9ab023feb62b70  gcc/testsuite/gcc.c-torture/compile/pr22531.c
  57b546bce2a786e33587be3d9e06dbba  gcc/testsuite/gcc.c-torture/compile/pr22589-1.c
  5280652cf6ea8a41acb53fcfcae956a0  gcc/testsuite/gcc.c-torture/compile/pr23233-1.c
  b2c30c5e1c247ecc62592b8d7800ba7f  gcc/testsuite/gcc.c-torture/compile/pr23237.c
  aa086ec446012db5c2fec52c986c38b4  gcc/testsuite/gcc.c-torture/compile/pr23435.c
! 4b12c1c2079de5814519b9358f07dc96  gcc/testsuite/gcc.c-torture/compile/pr23445.c
  8871ef880e8f661ac0e6bb777fa2f37c  gcc/testsuite/gcc.c-torture/compile/pr23476.c
  c75ff7477905dc4e3004ef2d9435eb05  gcc/testsuite/gcc.c-torture/compile/pr23929.c
  b990cbb7f4cfd0bff8b91c6ef75e80ca  gcc/testsuite/gcc.c-torture/compile/pr23944.c
! c9702f57b29428a6ede3f959ec482020  gcc/testsuite/gcc.c-torture/compile/pr23946.c
  80b808db9c82a0771272035969c66d17  gcc/testsuite/gcc.c-torture/compile/pr23960.c
  975fa22a642fc6a912c4d58a68782df1  gcc/testsuite/gcc.c-torture/compile/pr24227.c
! 7ef8146fa6dbe5d8f431e25c478ca125  gcc/testsuite/gcc.c-torture/compile/pr24883.c
  a058ce9346e450f1c716a9777695fba4  gcc/testsuite/gcc.c-torture/compile/pr24930.c
  32aaf2fdc1161fc666e9a49555360d07  gcc/testsuite/gcc.c-torture/compile/pr25224.c
  0ece000bc99c67de10db7fb4224fa02a  gcc/testsuite/gcc.c-torture/compile/pr25310.c
! af0a518dd586fd2ef322732317a9e25c  gcc/testsuite/gcc.c-torture/compile/pr25311.c
  855abc93cb9409071ac62cc7c3bad06f  gcc/testsuite/gcc.c-torture/compile/pr25483.c
  8b6e48dd3e6176d3ee750bb34f12f3e1  gcc/testsuite/gcc.c-torture/compile/pr25513.c
! 71e15580dea78207a422d25cc874b1f0  gcc/testsuite/gcc.c-torture/compile/pr25514.c
  cb717eb9c2a6306349883b0f536add02  gcc/testsuite/gcc.c-torture/compile/pr25860.c
  e34d95f26d61726c9e3cbfe8d582c303  gcc/testsuite/gcc.c-torture/compile/pr25861.c
! 89deee4409875f31f24857bd61a81dae  gcc/testsuite/gcc.c-torture/compile/pr26213.c
  7f8d5a0338690eb68082de753b619fbb  gcc/testsuite/gcc.c-torture/compile/pr26255.c
! f5a4206fd6c7e24eb4466f26c3960a71  gcc/testsuite/gcc.c-torture/compile/pr26425.c
  c568b6fe720c17f9a35dc10385288203  gcc/testsuite/gcc.c-torture/compile/pr26622.c
  8394e7490cffbb90296d682653d2f35b  gcc/testsuite/gcc.c-torture/compile/pr26626.c
  ffb381370b3e234bad2de0e7a9faaed1  gcc/testsuite/gcc.c-torture/compile/pr26725.c
*************** ffb381370b3e234bad2de0e7a9faaed1  gcc/te
*** 34183,34209 ****
  350ad0f6f3885af21e78f11ad5a8f413  gcc/testsuite/gcc.c-torture/compile/pr26781-2.c
  acf0770e01ef77a7132e276e3e321789  gcc/testsuite/gcc.c-torture/compile/pr26833.c
  f0e055d67425fcefc55a4688ed81b68a  gcc/testsuite/gcc.c-torture/compile/pr26840.c
! b0b807e86e1dae348a941661803cc85d  gcc/testsuite/gcc.c-torture/compile/pr27087.c
! b65cd2dfd7772968b2a0a769f4fdd212  gcc/testsuite/gcc.c-torture/compile/pr27282.c
  8414734b4834207fc1850e1e31d51d45  gcc/testsuite/gcc.c-torture/compile/pr27341-1.c
! e534cfe0451d578c8bd575b6c72d4b3f  gcc/testsuite/gcc.c-torture/compile/pr27341-2.c
  4a29668fb24ae53cf0bea8d0de6d2bfa  gcc/testsuite/gcc.c-torture/compile/pr27373.c
  b25244c37bcc4b8ca2185de9d14fceb5  gcc/testsuite/gcc.c-torture/compile/pr27528.c
  2e6835d1b25845717344c8965a30d964  gcc/testsuite/gcc.c-torture/compile/pr27571.c
  ff77ca797c969b4733f204f4ea1a83b5  gcc/testsuite/gcc.c-torture/compile/pr27863.c
  7d663a0db6ea8483f6d5488cfed6438c  gcc/testsuite/gcc.c-torture/compile/pr27889.c
! 97fb7aafd0d6e9b130a3cadca58c2f08  gcc/testsuite/gcc.c-torture/compile/pr27907.c
! 11a70afa3b664836b9d111964f18874a  gcc/testsuite/gcc.c-torture/compile/pr28489.c
  458293b3a020cb80c2dad1631979a857  gcc/testsuite/gcc.c-torture/compile/pr28675.c
! 6d1e2c6ef1250b09b92054d299f76d5a  gcc/testsuite/gcc.c-torture/compile/pr28776-1.c
! 0715cd5343a5640089fd48155c9329a9  gcc/testsuite/gcc.c-torture/compile/pr28776-2.c
  0049301da017c4e908cf5fcfde71ee4e  gcc/testsuite/gcc.c-torture/compile/pr28865.c
  99c972c16b4ab90629aefadd01c9c628  gcc/testsuite/gcc.c-torture/compile/pr28905.c
! 80741a31c0a6e02cde9183c7a2b18590  gcc/testsuite/gcc.c-torture/compile/pr29128.c
  1f66cc5870b8813891df0af96a006c7b  gcc/testsuite/gcc.c-torture/compile/pr29201.c
  bea2ec225b869327c2e6091b948f709c  gcc/testsuite/gcc.c-torture/compile/pr29241.c
  3629f46b8c3c1176b5b9545440c3ecf4  gcc/testsuite/gcc.c-torture/compile/pr29250.c
! 839163c0fc575517d47ecb6f517486cf  gcc/testsuite/gcc.c-torture/compile/pr29945.c
  b42a8b38b06c4045e500225bb5810b5d  gcc/testsuite/gcc.c-torture/compile/pr30132.c
  971ae403d910b0ee279e738500bc7550  gcc/testsuite/gcc.c-torture/compile/pr30311.c
  23bb684e3cf51d56d7a62fa2843acb0d  gcc/testsuite/gcc.c-torture/compile/pr30338.c
--- 36282,36308 ----
  350ad0f6f3885af21e78f11ad5a8f413  gcc/testsuite/gcc.c-torture/compile/pr26781-2.c
  acf0770e01ef77a7132e276e3e321789  gcc/testsuite/gcc.c-torture/compile/pr26833.c
  f0e055d67425fcefc55a4688ed81b68a  gcc/testsuite/gcc.c-torture/compile/pr26840.c
! 18e5677ad8a02a107b083cee80fe2e7b  gcc/testsuite/gcc.c-torture/compile/pr27087.c
! ea8cc4f236ab8ec88bb58e50d82a9923  gcc/testsuite/gcc.c-torture/compile/pr27282.c
  8414734b4834207fc1850e1e31d51d45  gcc/testsuite/gcc.c-torture/compile/pr27341-1.c
! f82983c07c2aa533e727e2c508c00a12  gcc/testsuite/gcc.c-torture/compile/pr27341-2.c
  4a29668fb24ae53cf0bea8d0de6d2bfa  gcc/testsuite/gcc.c-torture/compile/pr27373.c
  b25244c37bcc4b8ca2185de9d14fceb5  gcc/testsuite/gcc.c-torture/compile/pr27528.c
  2e6835d1b25845717344c8965a30d964  gcc/testsuite/gcc.c-torture/compile/pr27571.c
  ff77ca797c969b4733f204f4ea1a83b5  gcc/testsuite/gcc.c-torture/compile/pr27863.c
  7d663a0db6ea8483f6d5488cfed6438c  gcc/testsuite/gcc.c-torture/compile/pr27889.c
! 2e64f4dc40911f43718d408577f97084  gcc/testsuite/gcc.c-torture/compile/pr27907.c
! 5e9b4f930bac3db4c37d750aeb9f5985  gcc/testsuite/gcc.c-torture/compile/pr28489.c
  458293b3a020cb80c2dad1631979a857  gcc/testsuite/gcc.c-torture/compile/pr28675.c
! f532cf380f77b07ab5eb23c0c62bcd58  gcc/testsuite/gcc.c-torture/compile/pr28776-1.c
! ca536062ca3d7dc66ecf14517f5f8fa6  gcc/testsuite/gcc.c-torture/compile/pr28776-2.c
  0049301da017c4e908cf5fcfde71ee4e  gcc/testsuite/gcc.c-torture/compile/pr28865.c
  99c972c16b4ab90629aefadd01c9c628  gcc/testsuite/gcc.c-torture/compile/pr28905.c
! f397694ac39cfc292f9d77b3065fe34d  gcc/testsuite/gcc.c-torture/compile/pr29128.c
  1f66cc5870b8813891df0af96a006c7b  gcc/testsuite/gcc.c-torture/compile/pr29201.c
  bea2ec225b869327c2e6091b948f709c  gcc/testsuite/gcc.c-torture/compile/pr29241.c
  3629f46b8c3c1176b5b9545440c3ecf4  gcc/testsuite/gcc.c-torture/compile/pr29250.c
! d55a584266c83c2e303f71245777d8b2  gcc/testsuite/gcc.c-torture/compile/pr29945.c
  b42a8b38b06c4045e500225bb5810b5d  gcc/testsuite/gcc.c-torture/compile/pr30132.c
  971ae403d910b0ee279e738500bc7550  gcc/testsuite/gcc.c-torture/compile/pr30311.c
  23bb684e3cf51d56d7a62fa2843acb0d  gcc/testsuite/gcc.c-torture/compile/pr30338.c
*************** d6f3d20ec7fea36b948e15aa16bd13ed  gcc/te
*** 34217,34257 ****
  02a6953aabf05860ca270bd35c93c9b1  gcc/testsuite/gcc.c-torture/compile/pr31703.c
  c2a05ca65901fd8dea80ad2a9a960f66  gcc/testsuite/gcc.c-torture/compile/pr31710.c
  2562241cefe7e024bcfd1c3d3042a2fe  gcc/testsuite/gcc.c-torture/compile/pr31797.c
! 85222c4acc03142d2e6a89c2b8f66687  gcc/testsuite/gcc.c-torture/compile/pr31953.c
  2b36d4f88d206902d3f004b162ed9e1a  gcc/testsuite/gcc.c-torture/compile/pr32139.c
  e6fbdd8c3514630b61c04483b6f5c9f4  gcc/testsuite/gcc.c-torture/compile/pr32169.c
  9047d6394ccefe9b1f9a3a14f10aacdc  gcc/testsuite/gcc.c-torture/compile/pr32349.c
! f6495c58340ea74149f39c534a44ce3a  gcc/testsuite/gcc.c-torture/compile/pr32355.c
! bb583fafe9eec93696b7209a53ddc5a8  gcc/testsuite/gcc.c-torture/compile/pr32372.c
  66ef93d749fdc95a4ce5820a14e76357  gcc/testsuite/gcc.c-torture/compile/pr32399.c
! 9bd9945649c54fdef803549e018aca09  gcc/testsuite/gcc.c-torture/compile/pr32453.c
  7dac5de30808a6aef0c2ab1016bfeb44  gcc/testsuite/gcc.c-torture/compile/pr32482.c
! 9403ce7ea03ad1f962352a62297808a9  gcc/testsuite/gcc.c-torture/compile/pr32571.c
! 806ec69f20c440db8f38204bc5bad9ff  gcc/testsuite/gcc.c-torture/compile/pr32584.c
  09cf1eb411c97b9d4d789dda37133a69  gcc/testsuite/gcc.c-torture/compile/pr32606.c
  24d931c7bef4d0cbbed6a86f0a767aaf  gcc/testsuite/gcc.c-torture/compile/pr32780.c
  c477758dbe8458829cfb0b5ef3484517  gcc/testsuite/gcc.c-torture/compile/pr32796.c
! 20acc2b459cb4ed4153729d1e3796e1a  gcc/testsuite/gcc.c-torture/compile/pr32919.c
  86ae2230b3febebb7bcafdfda9e1b408  gcc/testsuite/gcc.c-torture/compile/pr32920.c
  fcc627a6866d9705b4cb964d98b7c692  gcc/testsuite/gcc.c-torture/compile/pr32988.c
  21ff4eb2b20a1d78807dbba13a97daea  gcc/testsuite/gcc.c-torture/compile/pr33122.c
! 0c222da044c072fc00d0a67da35ffe4d  gcc/testsuite/gcc.c-torture/compile/pr33133.c
  2590e8da2a90ba8653d4959bfcc7f522  gcc/testsuite/gcc.c-torture/compile/pr33146.c
  e1fc25fc9ea5634ffdda7503835fa81d  gcc/testsuite/gcc.c-torture/compile/pr33166.c
! 5242901a31b6501550f73b0ae3cddf76  gcc/testsuite/gcc.c-torture/compile/pr33173.c
! 5212b240768120f0924a52caa96ed45d  gcc/testsuite/gcc.c-torture/compile/pr33382.c
  59b047173b4b3aa6fe67137a22628251  gcc/testsuite/gcc.c-torture/compile/pr33614.c
  c83cfb61db599f1853a8cbf11f315a40  gcc/testsuite/gcc.c-torture/compile/pr33617.c
  c4fbf5e1f983be2d39b32b5ba3b67e07  gcc/testsuite/gcc.c-torture/compile/pr33641.c
! 6de4aca1782974fd2af7340c37d07622  gcc/testsuite/gcc.c-torture/compile/pr33855.c
  bb445f355abaf14d993d3a08e0724dce  gcc/testsuite/gcc.c-torture/compile/pr34029-2.c
  734fa642c271718ddf067a92aa58981b  gcc/testsuite/gcc.c-torture/compile/pr34030.c
! e8518512bfebccc9851a47864cd5a1ea  gcc/testsuite/gcc.c-torture/compile/pr34091.c
  bab8139e533ede12957fdeb26f785f9b  gcc/testsuite/gcc.c-torture/compile/pr34093.c
  def8d929397c0c021287ef20deb7731f  gcc/testsuite/gcc.c-torture/compile/pr34113.c
  4eb74fc2ac93513f6232b50c4ded653a  gcc/testsuite/gcc.c-torture/compile/pr34127.c
  8196ab1fc82a93b4de14f67802f63a92  gcc/testsuite/gcc.c-torture/compile/pr34138.c
! 33631e9d9b6d452cbc4a16189aceefb9  gcc/testsuite/gcc.c-torture/compile/pr34334.c
  2f7922c2d0a8b5c86d353c6149f7df7a  gcc/testsuite/gcc.c-torture/compile/pr34448.c
  d21ddc645e6974801d9ee9549c197483  gcc/testsuite/gcc.c-torture/compile/pr34458.c
  a62824fba46ee18577ada84a7ef15012  gcc/testsuite/gcc.c-torture/compile/pr34648.c
--- 36316,36356 ----
  02a6953aabf05860ca270bd35c93c9b1  gcc/testsuite/gcc.c-torture/compile/pr31703.c
  c2a05ca65901fd8dea80ad2a9a960f66  gcc/testsuite/gcc.c-torture/compile/pr31710.c
  2562241cefe7e024bcfd1c3d3042a2fe  gcc/testsuite/gcc.c-torture/compile/pr31797.c
! cf7c66a92f75d84ab3daff5bc4d77944  gcc/testsuite/gcc.c-torture/compile/pr31953.c
  2b36d4f88d206902d3f004b162ed9e1a  gcc/testsuite/gcc.c-torture/compile/pr32139.c
  e6fbdd8c3514630b61c04483b6f5c9f4  gcc/testsuite/gcc.c-torture/compile/pr32169.c
  9047d6394ccefe9b1f9a3a14f10aacdc  gcc/testsuite/gcc.c-torture/compile/pr32349.c
! d52cf1fcf277b8472ef8d820c21246ae  gcc/testsuite/gcc.c-torture/compile/pr32355.c
! 39664849e6005d068189f9397c38e591  gcc/testsuite/gcc.c-torture/compile/pr32372.c
  66ef93d749fdc95a4ce5820a14e76357  gcc/testsuite/gcc.c-torture/compile/pr32399.c
! b11b403325e36945d20720ea78b3ba62  gcc/testsuite/gcc.c-torture/compile/pr32453.c
  7dac5de30808a6aef0c2ab1016bfeb44  gcc/testsuite/gcc.c-torture/compile/pr32482.c
! 38deb779076dd1043bc5abd3258f45f7  gcc/testsuite/gcc.c-torture/compile/pr32571.c
! e170324ccc70d2ef68b5ac646c51e20d  gcc/testsuite/gcc.c-torture/compile/pr32584.c
  09cf1eb411c97b9d4d789dda37133a69  gcc/testsuite/gcc.c-torture/compile/pr32606.c
  24d931c7bef4d0cbbed6a86f0a767aaf  gcc/testsuite/gcc.c-torture/compile/pr32780.c
  c477758dbe8458829cfb0b5ef3484517  gcc/testsuite/gcc.c-torture/compile/pr32796.c
! 836f6ac8936e9c4d45b816ec344d5494  gcc/testsuite/gcc.c-torture/compile/pr32919.c
  86ae2230b3febebb7bcafdfda9e1b408  gcc/testsuite/gcc.c-torture/compile/pr32920.c
  fcc627a6866d9705b4cb964d98b7c692  gcc/testsuite/gcc.c-torture/compile/pr32988.c
  21ff4eb2b20a1d78807dbba13a97daea  gcc/testsuite/gcc.c-torture/compile/pr33122.c
! 5ebc0edbaced5240afc0bce17c79e423  gcc/testsuite/gcc.c-torture/compile/pr33133.c
  2590e8da2a90ba8653d4959bfcc7f522  gcc/testsuite/gcc.c-torture/compile/pr33146.c
  e1fc25fc9ea5634ffdda7503835fa81d  gcc/testsuite/gcc.c-torture/compile/pr33166.c
! fffa6b0b3e046daf435ab253e830606a  gcc/testsuite/gcc.c-torture/compile/pr33173.c
! c9d1bee7ab9113b84f625837022b23cf  gcc/testsuite/gcc.c-torture/compile/pr33382.c
  59b047173b4b3aa6fe67137a22628251  gcc/testsuite/gcc.c-torture/compile/pr33614.c
  c83cfb61db599f1853a8cbf11f315a40  gcc/testsuite/gcc.c-torture/compile/pr33617.c
  c4fbf5e1f983be2d39b32b5ba3b67e07  gcc/testsuite/gcc.c-torture/compile/pr33641.c
! 2f395d62b094802607049f59256811fd  gcc/testsuite/gcc.c-torture/compile/pr33855.c
  bb445f355abaf14d993d3a08e0724dce  gcc/testsuite/gcc.c-torture/compile/pr34029-2.c
  734fa642c271718ddf067a92aa58981b  gcc/testsuite/gcc.c-torture/compile/pr34030.c
! 4df68a2ba35ef52cf37e6a01aaca4ba4  gcc/testsuite/gcc.c-torture/compile/pr34091.c
  bab8139e533ede12957fdeb26f785f9b  gcc/testsuite/gcc.c-torture/compile/pr34093.c
  def8d929397c0c021287ef20deb7731f  gcc/testsuite/gcc.c-torture/compile/pr34113.c
  4eb74fc2ac93513f6232b50c4ded653a  gcc/testsuite/gcc.c-torture/compile/pr34127.c
  8196ab1fc82a93b4de14f67802f63a92  gcc/testsuite/gcc.c-torture/compile/pr34138.c
! 5b6de986f827b23ff87bf57021152caa  gcc/testsuite/gcc.c-torture/compile/pr34334.c
  2f7922c2d0a8b5c86d353c6149f7df7a  gcc/testsuite/gcc.c-torture/compile/pr34448.c
  d21ddc645e6974801d9ee9549c197483  gcc/testsuite/gcc.c-torture/compile/pr34458.c
  a62824fba46ee18577ada84a7ef15012  gcc/testsuite/gcc.c-torture/compile/pr34648.c
*************** e99a39e13086a19999f30cdaee8b0209  gcc/te
*** 34261,34267 ****
  90843d5d26ada6fb25259805974d4fbe  gcc/testsuite/gcc.c-torture/compile/pr34885.c
  0a16781b1ade1ffae0526b7cbe58552f  gcc/testsuite/gcc.c-torture/compile/pr34966.c
  0e21455d38d4535c52b2aaa7fbedd74a  gcc/testsuite/gcc.c-torture/compile/pr34993.c
! 5c92884c3761eec90789d023f32cc91b  gcc/testsuite/gcc.c-torture/compile/pr35006.c
  a4327eb545b3dce495f11857bcda25fd  gcc/testsuite/gcc.c-torture/compile/pr35043.c
  3f5634d37754a1bbe5c1bfb62791811b  gcc/testsuite/gcc.c-torture/compile/pr35171.c
  47802deb4d8181e4991bd58970a74efd  gcc/testsuite/gcc.c-torture/compile/pr35318.c
--- 36360,36366 ----
  90843d5d26ada6fb25259805974d4fbe  gcc/testsuite/gcc.c-torture/compile/pr34885.c
  0a16781b1ade1ffae0526b7cbe58552f  gcc/testsuite/gcc.c-torture/compile/pr34966.c
  0e21455d38d4535c52b2aaa7fbedd74a  gcc/testsuite/gcc.c-torture/compile/pr34993.c
! ffd10c61fdcad70dbf057edb0a1f1f8a  gcc/testsuite/gcc.c-torture/compile/pr35006.c
  a4327eb545b3dce495f11857bcda25fd  gcc/testsuite/gcc.c-torture/compile/pr35043.c
  3f5634d37754a1bbe5c1bfb62791811b  gcc/testsuite/gcc.c-torture/compile/pr35171.c
  47802deb4d8181e4991bd58970a74efd  gcc/testsuite/gcc.c-torture/compile/pr35318.c
*************** bfed8319cb606c75dc2da21298bf81ad  gcc/te
*** 34269,34306 ****
  03811b5c6f8a045b03dbc67e3b452b4c  gcc/testsuite/gcc.c-torture/compile/pr35432.c
  599c4dbd1bc46f05cd773573162e04df  gcc/testsuite/gcc.c-torture/compile/pr35468.c
  c51936c8c800a023d361aa575a184baa  gcc/testsuite/gcc.c-torture/compile/pr35492.c
! 4180a0afafdb3f1795bc4e5edc42be77  gcc/testsuite/gcc.c-torture/compile/pr35595.c
  de6df4b26cbc1cd91550cff53820e2d5  gcc/testsuite/gcc.c-torture/compile/pr35607.c
  dc423ebe3d8e1219841fea162db560f6  gcc/testsuite/gcc.c-torture/compile/pr35760.c
! 5bf2ee8464a222324f52550df7229f55  gcc/testsuite/gcc.c-torture/compile/pr35869.c
  70214cf6b8098ece621b0eef55de7b0d  gcc/testsuite/gcc.c-torture/compile/pr36125.c
! 1197b941a23e8cf0b572c29e60326571  gcc/testsuite/gcc.c-torture/compile/pr36141.c
! 1a8f03cae190e35ddd811bca254810bf  gcc/testsuite/gcc.c-torture/compile/pr36154.c
! 054e0a6db4e9956c79408f030a7c0b89  gcc/testsuite/gcc.c-torture/compile/pr36172.c
! baf6b64a189f146840604c0f3d9fb34d  gcc/testsuite/gcc.c-torture/compile/pr36238.c
  c159db3cb804c886bf4d0632f8853f8f  gcc/testsuite/gcc.c-torture/compile/pr36245.c
  8ec23cd96efb359bd7ba0f48d593e5b1  gcc/testsuite/gcc.c-torture/compile/pr36666.c
  66f9c1d56473df6427510e6cfc0210e9  gcc/testsuite/gcc.c-torture/compile/pr36817.c
! d97af45824c2d7b84dee31b1899848bf  gcc/testsuite/gcc.c-torture/compile/pr36988.c
! 0d861b464c185ed9d64bdb4c3db9f906  gcc/testsuite/gcc.c-torture/compile/pr37026.c
  10037c09ddb99d5c9a2218ec7c8d98cd  gcc/testsuite/gcc.c-torture/compile/pr37056.c
  c5b42e26aff2cce00bbf9fa14cf09d96  gcc/testsuite/gcc.c-torture/compile/pr37078.c
! 605db67d65da7ee320d545ce539b96de  gcc/testsuite/gcc.c-torture/compile/pr37207.c
! 6178977e5bbf7cd4b7b2cd9ef2dc3f76  gcc/testsuite/gcc.c-torture/compile/pr37258.c
! b8742b7dd233ee5ca6544f6b1bc8487c  gcc/testsuite/gcc.c-torture/compile/pr37285.c
! 9d563c7093d795b1870830075812ce0c  gcc/testsuite/gcc.c-torture/compile/pr37305.c
! ebac4ba3fb98f3a518aa28f5306a9cf1  gcc/testsuite/gcc.c-torture/compile/pr37327.c
  a87c8e0a8f17fab0fad559018f80ef95  gcc/testsuite/gcc.c-torture/compile/pr37341.c
  d54bf2a11e41a580305e1e7dc81a760e  gcc/testsuite/gcc.c-torture/compile/pr37380.c
! fce480dfb4a1623e2955ec7396cea5fb  gcc/testsuite/gcc.c-torture/compile/pr37381.c
  84e2fa1c5c616264b9c1bb6d58cba84b  gcc/testsuite/gcc.c-torture/compile/pr37382.c
! 7e861fd6177d0aac1a97d12f4bcb8d75  gcc/testsuite/gcc.c-torture/compile/pr37387.c
  343e6a6edf84bab8989580838983a5f8  gcc/testsuite/gcc.c-torture/compile/pr37395.c
  eaf8056eb8e9f2c09750d1950b336f96  gcc/testsuite/gcc.c-torture/compile/pr37418-1.c
  051b292fcf4e4a77c804e81fc7a776cc  gcc/testsuite/gcc.c-torture/compile/pr37418-2.c
  36b076ea7c9ca905653c3d3f7b5043c1  gcc/testsuite/gcc.c-torture/compile/pr37418-3.c
  642b163a8696cf184f1ebd495e0b3b4f  gcc/testsuite/gcc.c-torture/compile/pr37418-4.c
! f3c01c8a2795d9e97e58a46eff2aa182  gcc/testsuite/gcc.c-torture/compile/pr37432.c
  7c2f86a4c39f0288f804042d93e9adc1  gcc/testsuite/gcc.c-torture/compile/pr37433-1.c
  4ffcdaa7c2b92999241b115df0fc6f6a  gcc/testsuite/gcc.c-torture/compile/pr37433.c
  552e92307cc2eaed3fe9af2587149864  gcc/testsuite/gcc.c-torture/compile/pr37483.c
--- 36368,36405 ----
  03811b5c6f8a045b03dbc67e3b452b4c  gcc/testsuite/gcc.c-torture/compile/pr35432.c
  599c4dbd1bc46f05cd773573162e04df  gcc/testsuite/gcc.c-torture/compile/pr35468.c
  c51936c8c800a023d361aa575a184baa  gcc/testsuite/gcc.c-torture/compile/pr35492.c
! 194e677979a20f564deb2a6154725298  gcc/testsuite/gcc.c-torture/compile/pr35595.c
  de6df4b26cbc1cd91550cff53820e2d5  gcc/testsuite/gcc.c-torture/compile/pr35607.c
  dc423ebe3d8e1219841fea162db560f6  gcc/testsuite/gcc.c-torture/compile/pr35760.c
! 7e48e0cbb1697bf5cb95462251152911  gcc/testsuite/gcc.c-torture/compile/pr35869.c
  70214cf6b8098ece621b0eef55de7b0d  gcc/testsuite/gcc.c-torture/compile/pr36125.c
! 476997585c84c0833a0f683f1f5b69c6  gcc/testsuite/gcc.c-torture/compile/pr36141.c
! e067778f1a552e898beeb0e3bb7e7e3b  gcc/testsuite/gcc.c-torture/compile/pr36154.c
! b3ab3e25f40c93c6a67201f19192e527  gcc/testsuite/gcc.c-torture/compile/pr36172.c
! e0a08eeaedf42d0ca3ad9ee204da40dc  gcc/testsuite/gcc.c-torture/compile/pr36238.c
  c159db3cb804c886bf4d0632f8853f8f  gcc/testsuite/gcc.c-torture/compile/pr36245.c
  8ec23cd96efb359bd7ba0f48d593e5b1  gcc/testsuite/gcc.c-torture/compile/pr36666.c
  66f9c1d56473df6427510e6cfc0210e9  gcc/testsuite/gcc.c-torture/compile/pr36817.c
! c208504ce5d43cf5690c9765600de072  gcc/testsuite/gcc.c-torture/compile/pr36988.c
! 4229e1984b443504d9ae02d641f8c6ff  gcc/testsuite/gcc.c-torture/compile/pr37026.c
  10037c09ddb99d5c9a2218ec7c8d98cd  gcc/testsuite/gcc.c-torture/compile/pr37056.c
  c5b42e26aff2cce00bbf9fa14cf09d96  gcc/testsuite/gcc.c-torture/compile/pr37078.c
! c72dbae746881b9aa9dd0ef83eb5c61c  gcc/testsuite/gcc.c-torture/compile/pr37207.c
! 952f5c3a33aa0c49515ecdae9eead22d  gcc/testsuite/gcc.c-torture/compile/pr37258.c
! c5b33625159165dbb9090a365cb07184  gcc/testsuite/gcc.c-torture/compile/pr37285.c
! ecc2d7717e11f0465044ea9cd7397189  gcc/testsuite/gcc.c-torture/compile/pr37305.c
! 7a1d0ed8d2a07c23f6215107a4a178d0  gcc/testsuite/gcc.c-torture/compile/pr37327.c
  a87c8e0a8f17fab0fad559018f80ef95  gcc/testsuite/gcc.c-torture/compile/pr37341.c
  d54bf2a11e41a580305e1e7dc81a760e  gcc/testsuite/gcc.c-torture/compile/pr37380.c
! e7930b5768fd7b890b7eb1e0f759fc0e  gcc/testsuite/gcc.c-torture/compile/pr37381.c
  84e2fa1c5c616264b9c1bb6d58cba84b  gcc/testsuite/gcc.c-torture/compile/pr37382.c
! ca9fc62350c2571f1ce7434a03a40b3a  gcc/testsuite/gcc.c-torture/compile/pr37387.c
  343e6a6edf84bab8989580838983a5f8  gcc/testsuite/gcc.c-torture/compile/pr37395.c
  eaf8056eb8e9f2c09750d1950b336f96  gcc/testsuite/gcc.c-torture/compile/pr37418-1.c
  051b292fcf4e4a77c804e81fc7a776cc  gcc/testsuite/gcc.c-torture/compile/pr37418-2.c
  36b076ea7c9ca905653c3d3f7b5043c1  gcc/testsuite/gcc.c-torture/compile/pr37418-3.c
  642b163a8696cf184f1ebd495e0b3b4f  gcc/testsuite/gcc.c-torture/compile/pr37418-4.c
! 5c2fe01d26f589c2722e4afbc6781e8f  gcc/testsuite/gcc.c-torture/compile/pr37432.c
  7c2f86a4c39f0288f804042d93e9adc1  gcc/testsuite/gcc.c-torture/compile/pr37433-1.c
  4ffcdaa7c2b92999241b115df0fc6f6a  gcc/testsuite/gcc.c-torture/compile/pr37433.c
  552e92307cc2eaed3fe9af2587149864  gcc/testsuite/gcc.c-torture/compile/pr37483.c
*************** a6d3a8f4b957d5ba7f74c84c25770201  gcc/te
*** 34309,34315 ****
  0dfaaf5db2efb347b695cabca57bb4ef  gcc/testsuite/gcc.c-torture/compile/pr37664.c
  cb0b5257445782fc1e9d50b5e9ed40f1  gcc/testsuite/gcc.c-torture/compile/pr37669-2.c
  ad4d90503c88d2f63654f31de4964af0  gcc/testsuite/gcc.c-torture/compile/pr37669.c
! 4cc8436b5b66225370a465edafa53748  gcc/testsuite/gcc.c-torture/compile/pr37713.c
  dcd2f332e101f5e3f24966b5034e5c23  gcc/testsuite/gcc.c-torture/compile/pr37742-3.c
  6def2e31eacd3714bb5ac1f74d752e67  gcc/testsuite/gcc.c-torture/compile/pr37742.c
  cadf22b673f3f223293f294d98f3f7bb  gcc/testsuite/gcc.c-torture/compile/pr37878.c
--- 36408,36414 ----
  0dfaaf5db2efb347b695cabca57bb4ef  gcc/testsuite/gcc.c-torture/compile/pr37664.c
  cb0b5257445782fc1e9d50b5e9ed40f1  gcc/testsuite/gcc.c-torture/compile/pr37669-2.c
  ad4d90503c88d2f63654f31de4964af0  gcc/testsuite/gcc.c-torture/compile/pr37669.c
! f6947ee5bd7a7708969f2e3a7dbfba2b  gcc/testsuite/gcc.c-torture/compile/pr37713.c
  dcd2f332e101f5e3f24966b5034e5c23  gcc/testsuite/gcc.c-torture/compile/pr37742-3.c
  6def2e31eacd3714bb5ac1f74d752e67  gcc/testsuite/gcc.c-torture/compile/pr37742.c
  cadf22b673f3f223293f294d98f3f7bb  gcc/testsuite/gcc.c-torture/compile/pr37878.c
*************** bedeae3f2189b9f6b268226148c3c46d  gcc/te
*** 34321,34330 ****
  724bccbc1b93a41cc1acaf8a222f3546  gcc/testsuite/gcc.c-torture/compile/pr38343-2.c
  876705d4579be05a59e46526939497e5  gcc/testsuite/gcc.c-torture/compile/pr38343.c
  93ffd63c07413638bccc8b105145a2d4  gcc/testsuite/gcc.c-torture/compile/pr38359.c
! d3944c2dd33e5ffc1da4cbf4d7918ed3  gcc/testsuite/gcc.c-torture/compile/pr38360.c
  496f85946365fd9ce106fd0cdc0289a8  gcc/testsuite/gcc.c-torture/compile/pr38428.c
  8ac4a65620f1464d349a2af4b8232193  gcc/testsuite/gcc.c-torture/compile/pr38505.c
! 5ffbfcd56363e30a390266c3121664a3  gcc/testsuite/gcc.c-torture/compile/pr38554.c
  339f12e6b4492022b4fdf7e3dcfc4990  gcc/testsuite/gcc.c-torture/compile/pr38564.c
  5cbd3def4b1e680887f3f2048557a08e  gcc/testsuite/gcc.c-torture/compile/pr38590-1.c
  b4651d0c349ecd2bcb188eddbb7b8036  gcc/testsuite/gcc.c-torture/compile/pr38590-2.c
--- 36420,36429 ----
  724bccbc1b93a41cc1acaf8a222f3546  gcc/testsuite/gcc.c-torture/compile/pr38343-2.c
  876705d4579be05a59e46526939497e5  gcc/testsuite/gcc.c-torture/compile/pr38343.c
  93ffd63c07413638bccc8b105145a2d4  gcc/testsuite/gcc.c-torture/compile/pr38359.c
! 7ea0bc30cdd20e1e852341545bb3ff30  gcc/testsuite/gcc.c-torture/compile/pr38360.c
  496f85946365fd9ce106fd0cdc0289a8  gcc/testsuite/gcc.c-torture/compile/pr38428.c
  8ac4a65620f1464d349a2af4b8232193  gcc/testsuite/gcc.c-torture/compile/pr38505.c
! d5eae1edcb465ed6cb2eb304150c5836  gcc/testsuite/gcc.c-torture/compile/pr38554.c
  339f12e6b4492022b4fdf7e3dcfc4990  gcc/testsuite/gcc.c-torture/compile/pr38564.c
  5cbd3def4b1e680887f3f2048557a08e  gcc/testsuite/gcc.c-torture/compile/pr38590-1.c
  b4651d0c349ecd2bcb188eddbb7b8036  gcc/testsuite/gcc.c-torture/compile/pr38590-2.c
*************** fc0805e512f7c2f452630be53a59aa58  gcc/te
*** 34356,34366 ****
  4bd15e3b71abadeb0582ebb66caf238b  gcc/testsuite/gcc.c-torture/compile/pr39824.c
  a4b29221f98f7ddd669a9c381091ff2c  gcc/testsuite/gcc.c-torture/compile/pr39834.c
  6c38049f56c28e118307d36817d632be  gcc/testsuite/gcc.c-torture/compile/pr39845.c
! ee38681c8dd0c1074c7cdf01c8515cf8  gcc/testsuite/gcc.c-torture/compile/pr39886.c
  0979d582794f48d7359de37ccc1d7194  gcc/testsuite/gcc.c-torture/compile/pr39928-1.c
  800d6ef3bd6f142fc7422ab9a1f7562b  gcc/testsuite/gcc.c-torture/compile/pr39928-2.c
  e502f8d1c6183bc13aa56fbb4349c2bb  gcc/testsuite/gcc.c-torture/compile/pr39937.c
! a645ea6c4af215e3af36e189b1def587  gcc/testsuite/gcc.c-torture/compile/pr39941.c
  5b96b05a3f0e9a4d1a2afbecaafbfcdc  gcc/testsuite/gcc.c-torture/compile/pr39943.c
  a13cd0b004378845f9f4a4353eb320d3  gcc/testsuite/gcc.c-torture/compile/pr39983.c
  f2b43982703367d1c68b4fb3f4854a24  gcc/testsuite/gcc.c-torture/compile/pr39999.c
--- 36455,36465 ----
  4bd15e3b71abadeb0582ebb66caf238b  gcc/testsuite/gcc.c-torture/compile/pr39824.c
  a4b29221f98f7ddd669a9c381091ff2c  gcc/testsuite/gcc.c-torture/compile/pr39834.c
  6c38049f56c28e118307d36817d632be  gcc/testsuite/gcc.c-torture/compile/pr39845.c
! 0e35098cdcbe7fce8aaf63c00510abf4  gcc/testsuite/gcc.c-torture/compile/pr39886.c
  0979d582794f48d7359de37ccc1d7194  gcc/testsuite/gcc.c-torture/compile/pr39928-1.c
  800d6ef3bd6f142fc7422ab9a1f7562b  gcc/testsuite/gcc.c-torture/compile/pr39928-2.c
  e502f8d1c6183bc13aa56fbb4349c2bb  gcc/testsuite/gcc.c-torture/compile/pr39937.c
! 7917407f597d9ab63f5aa00fbaae12ff  gcc/testsuite/gcc.c-torture/compile/pr39941.c
  5b96b05a3f0e9a4d1a2afbecaafbfcdc  gcc/testsuite/gcc.c-torture/compile/pr39943.c
  a13cd0b004378845f9f4a4353eb320d3  gcc/testsuite/gcc.c-torture/compile/pr39983.c
  f2b43982703367d1c68b4fb3f4854a24  gcc/testsuite/gcc.c-torture/compile/pr39999.c
*************** f2b43982703367d1c68b4fb3f4854a24  gcc/te
*** 34371,34377 ****
  4dca110bdb332c2477d80a6165e061f1  gcc/testsuite/gcc.c-torture/compile/pr40204.c
  d29482a49bd1d35e94e571f0e2a65254  gcc/testsuite/gcc.c-torture/compile/pr40233.c
  a82c0b608e020955ee0f5d8dadc6efb6  gcc/testsuite/gcc.c-torture/compile/pr40252.c
! 01ffdedd38a4cfccb5c037add39e0b21  gcc/testsuite/gcc.c-torture/compile/pr40291.c
  58ae350ce482f1d7c7425c1ad1b7c1b8  gcc/testsuite/gcc.c-torture/compile/pr40321.c
  17ec3d7f05ff571fdfd66a1d1095611e  gcc/testsuite/gcc.c-torture/compile/pr40351.c
  f94ab2fa7669ae2d0a50f3612ce770d6  gcc/testsuite/gcc.c-torture/compile/pr40432.c
--- 36470,36476 ----
  4dca110bdb332c2477d80a6165e061f1  gcc/testsuite/gcc.c-torture/compile/pr40204.c
  d29482a49bd1d35e94e571f0e2a65254  gcc/testsuite/gcc.c-torture/compile/pr40233.c
  a82c0b608e020955ee0f5d8dadc6efb6  gcc/testsuite/gcc.c-torture/compile/pr40252.c
! f78a6b427f7d3b69410e1ff095313ddb  gcc/testsuite/gcc.c-torture/compile/pr40291.c
  58ae350ce482f1d7c7425c1ad1b7c1b8  gcc/testsuite/gcc.c-torture/compile/pr40321.c
  17ec3d7f05ff571fdfd66a1d1095611e  gcc/testsuite/gcc.c-torture/compile/pr40351.c
  f94ab2fa7669ae2d0a50f3612ce770d6  gcc/testsuite/gcc.c-torture/compile/pr40432.c
*************** fe2d1b504037f3b71bfe07c9ac7434fa  gcc/te
*** 34386,34396 ****
  5a0749e2fbebfde5e84e6d092a1d6041  gcc/testsuite/gcc.c-torture/compile/pr40964.c
  861930559deede7215e9df3e9807bc41  gcc/testsuite/gcc.c-torture/compile/pr41006-1.c
  a70c7b11edd708f7a16d3d6ee67f7d02  gcc/testsuite/gcc.c-torture/compile/pr41006-2.c
! 790b88a115358c0a2f2c2d60a1361160  gcc/testsuite/gcc.c-torture/compile/pr41016.c
  5efc15ec6db15d0426441cfc0a1f1c7a  gcc/testsuite/gcc.c-torture/compile/pr41101.c
  19b5bed78115cdc5ec049b3bda2b856b  gcc/testsuite/gcc.c-torture/compile/pr41163.c
  c9fb9c78f3f29c4cb7ea685ce7dfd98b  gcc/testsuite/gcc.c-torture/compile/pr41181.c
! 675552e85417ccfcb10a0c5d92108242  gcc/testsuite/gcc.c-torture/compile/pr41182-1.c
  68971be1b3a07dafd36a6967684bd97e  gcc/testsuite/gcc.c-torture/compile/pr41282.c
  0c3626fdb0cd286f76f5fabca2112f6e  gcc/testsuite/gcc.c-torture/compile/pr41469.c
  d01a2b137559bd26c8359756dba6457d  gcc/testsuite/gcc.c-torture/compile/pr41634.c
--- 36485,36495 ----
  5a0749e2fbebfde5e84e6d092a1d6041  gcc/testsuite/gcc.c-torture/compile/pr40964.c
  861930559deede7215e9df3e9807bc41  gcc/testsuite/gcc.c-torture/compile/pr41006-1.c
  a70c7b11edd708f7a16d3d6ee67f7d02  gcc/testsuite/gcc.c-torture/compile/pr41006-2.c
! b573e8b4252567df50cb08f6e5a5d335  gcc/testsuite/gcc.c-torture/compile/pr41016.c
  5efc15ec6db15d0426441cfc0a1f1c7a  gcc/testsuite/gcc.c-torture/compile/pr41101.c
  19b5bed78115cdc5ec049b3bda2b856b  gcc/testsuite/gcc.c-torture/compile/pr41163.c
  c9fb9c78f3f29c4cb7ea685ce7dfd98b  gcc/testsuite/gcc.c-torture/compile/pr41181.c
! 35b056a51d001d3e435b108f7ecc0082  gcc/testsuite/gcc.c-torture/compile/pr41182-1.c
  68971be1b3a07dafd36a6967684bd97e  gcc/testsuite/gcc.c-torture/compile/pr41282.c
  0c3626fdb0cd286f76f5fabca2112f6e  gcc/testsuite/gcc.c-torture/compile/pr41469.c
  d01a2b137559bd26c8359756dba6457d  gcc/testsuite/gcc.c-torture/compile/pr41634.c
*************** d01a2b137559bd26c8359756dba6457d  gcc/te
*** 34402,34408 ****
  56d196cdd3ed286cf5aeb0321706fc05  gcc/testsuite/gcc.c-torture/compile/pr42025-1.c
  9c73901b7aa902ab1a2dc88f4114b063  gcc/testsuite/gcc.c-torture/compile/pr42025-2.c
  bbd2dfcdd7e2bc5816c1f6fe21453082  gcc/testsuite/gcc.c-torture/compile/pr42049.c
! fcf3aa7fd8debe9de71a66b1daafc19f  gcc/testsuite/gcc.c-torture/compile/pr42164.c
  c9e3281a601b3492cb99a7a1d45d7588  gcc/testsuite/gcc.c-torture/compile/pr42196-1.c
  21c33c4a4e17ca99b5e677f9fc459670  gcc/testsuite/gcc.c-torture/compile/pr42196-2.c
  a491a00d59bc3267fc9a8396ddd708b5  gcc/testsuite/gcc.c-torture/compile/pr42196-3.c
--- 36501,36507 ----
  56d196cdd3ed286cf5aeb0321706fc05  gcc/testsuite/gcc.c-torture/compile/pr42025-1.c
  9c73901b7aa902ab1a2dc88f4114b063  gcc/testsuite/gcc.c-torture/compile/pr42025-2.c
  bbd2dfcdd7e2bc5816c1f6fe21453082  gcc/testsuite/gcc.c-torture/compile/pr42049.c
! f3d1870400b51dddb584a124428d8c1d  gcc/testsuite/gcc.c-torture/compile/pr42164.c
  c9e3281a601b3492cb99a7a1d45d7588  gcc/testsuite/gcc.c-torture/compile/pr42196-1.c
  21c33c4a4e17ca99b5e677f9fc459670  gcc/testsuite/gcc.c-torture/compile/pr42196-2.c
  a491a00d59bc3267fc9a8396ddd708b5  gcc/testsuite/gcc.c-torture/compile/pr42196-3.c
*************** fad0d9cc93e33fc0747f9ef8037c2920  gcc/te
*** 34412,34418 ****
  933383f59dc1b130a0af5c62cc681e5b  gcc/testsuite/gcc.c-torture/compile/pr42347.c
  8cb4278a1c36b114c1885bb75193d53e  gcc/testsuite/gcc.c-torture/compile/pr42398.c
  7a9405de28424233497720048339819f  gcc/testsuite/gcc.c-torture/compile/pr42559.c
! 919dc3f51204b5168ddbd28279174620  gcc/testsuite/gcc.c-torture/compile/pr42632.c
  e18e20f5d0041343d6eca71244c570eb  gcc/testsuite/gcc.c-torture/compile/pr42703.c
  23de553c5cbe4727f60b7b0172595dd6  gcc/testsuite/gcc.c-torture/compile/pr42705.c
  4057522a64c58df2b5da6602273218c5  gcc/testsuite/gcc.c-torture/compile/pr42708-1.c
--- 36511,36517 ----
  933383f59dc1b130a0af5c62cc681e5b  gcc/testsuite/gcc.c-torture/compile/pr42347.c
  8cb4278a1c36b114c1885bb75193d53e  gcc/testsuite/gcc.c-torture/compile/pr42398.c
  7a9405de28424233497720048339819f  gcc/testsuite/gcc.c-torture/compile/pr42559.c
! 8d40823484797a83674a23d15e44ab3d  gcc/testsuite/gcc.c-torture/compile/pr42632.c
  e18e20f5d0041343d6eca71244c570eb  gcc/testsuite/gcc.c-torture/compile/pr42703.c
  23de553c5cbe4727f60b7b0172595dd6  gcc/testsuite/gcc.c-torture/compile/pr42705.c
  4057522a64c58df2b5da6602273218c5  gcc/testsuite/gcc.c-torture/compile/pr42708-1.c
*************** e803f7181a8b15f8ce255b1667ffa8fb  gcc/te
*** 34434,34440 ****
  95540ad8fa1167b1e1eda77fdd631f6c  gcc/testsuite/gcc.c-torture/compile/pr43415.c
  37ab0d8a1178e8c232ac24eaed58d391  gcc/testsuite/gcc.c-torture/compile/pr43417.c
  9ecdf91a562bb8fd41b46d26a2d43184  gcc/testsuite/gcc.c-torture/compile/pr43614.c
! 52029a7578a9ed75df3cac0abc38b080  gcc/testsuite/gcc.c-torture/compile/pr43635.c
  fd196645ff770902a69b9936bb568e6a  gcc/testsuite/gcc.c-torture/compile/pr43636.c
  0f39691385fc03abd5dae29dd15f2be5  gcc/testsuite/gcc.c-torture/compile/pr43661.c
  c39ef0a608e590ee07959ad61b9cf8eb  gcc/testsuite/gcc.c-torture/compile/pr43679.c
--- 36533,36539 ----
  95540ad8fa1167b1e1eda77fdd631f6c  gcc/testsuite/gcc.c-torture/compile/pr43415.c
  37ab0d8a1178e8c232ac24eaed58d391  gcc/testsuite/gcc.c-torture/compile/pr43417.c
  9ecdf91a562bb8fd41b46d26a2d43184  gcc/testsuite/gcc.c-torture/compile/pr43614.c
! 727b20fe215cc2599cd938c25ef69fd4  gcc/testsuite/gcc.c-torture/compile/pr43635.c
  fd196645ff770902a69b9936bb568e6a  gcc/testsuite/gcc.c-torture/compile/pr43636.c
  0f39691385fc03abd5dae29dd15f2be5  gcc/testsuite/gcc.c-torture/compile/pr43661.c
  c39ef0a608e590ee07959ad61b9cf8eb  gcc/testsuite/gcc.c-torture/compile/pr43679.c
*************** c39ef0a608e590ee07959ad61b9cf8eb  gcc/te
*** 34442,34457 ****
  c23eafc22dd976904ab801249aceb350  gcc/testsuite/gcc.c-torture/compile/pr43845.c
  f4c8013ce09044398eb90c6fbf3820a3  gcc/testsuite/gcc.c-torture/compile/pr44030.c
  5d19e34972b3357421a8ff7b19ac8120  gcc/testsuite/gcc.c-torture/compile/pr44038.c
! a9695672aa7877a15541eb1e50ff6b61  gcc/testsuite/gcc.c-torture/compile/pr44043.c
! 48d70017311f891e79b9021ea913e695  gcc/testsuite/gcc.c-torture/compile/pr44063.c
  ba7cb0817801f7a8ead1f73590aedb7a  gcc/testsuite/gcc.c-torture/compile/pr44119.c
  c0d6d78b1c9c9dbe0c673bbeaa4c3b36  gcc/testsuite/gcc.c-torture/compile/pr44197.c
! d4428fa0469134923aa7c0bd4422bfdc  gcc/testsuite/gcc.c-torture/compile/pr44246.c
  8824f8d970c3aa1088ee02725d85cf94  gcc/testsuite/gcc.c-torture/compile/pr44686.c
  ca986735839dc65a28d246527a8f4552  gcc/testsuite/gcc.c-torture/compile/pr44687.c
  960be10fb90e77d9a8b45990d48e75fb  gcc/testsuite/gcc.c-torture/compile/pr44707.c
  6ab8701d698a0c5064134fc9a253c3cd  gcc/testsuite/gcc.c-torture/compile/pr44784.c
! 05904d5986acdf07dc3531cbc47f3a4b  gcc/testsuite/gcc.c-torture/compile/pr44788.c
  438684b1b4482f4abe2ad633da3d970a  gcc/testsuite/gcc.c-torture/compile/pr44831.c
  e1515e853784263d6318f323dacfbb62  gcc/testsuite/gcc.c-torture/compile/pr44891.c
  ed33a4aba19c5cfe744b00214c6c2bc5  gcc/testsuite/gcc.c-torture/compile/pr44937.c
--- 36541,36556 ----
  c23eafc22dd976904ab801249aceb350  gcc/testsuite/gcc.c-torture/compile/pr43845.c
  f4c8013ce09044398eb90c6fbf3820a3  gcc/testsuite/gcc.c-torture/compile/pr44030.c
  5d19e34972b3357421a8ff7b19ac8120  gcc/testsuite/gcc.c-torture/compile/pr44038.c
! 9bfa5cee0c4fb71b1339927f35bdc1b1  gcc/testsuite/gcc.c-torture/compile/pr44043.c
! 4c1b8b466d4c1eeedd7c9ff269e4bfd3  gcc/testsuite/gcc.c-torture/compile/pr44063.c
  ba7cb0817801f7a8ead1f73590aedb7a  gcc/testsuite/gcc.c-torture/compile/pr44119.c
  c0d6d78b1c9c9dbe0c673bbeaa4c3b36  gcc/testsuite/gcc.c-torture/compile/pr44197.c
! 799d3e79eefd2af880651e569ecf56fd  gcc/testsuite/gcc.c-torture/compile/pr44246.c
  8824f8d970c3aa1088ee02725d85cf94  gcc/testsuite/gcc.c-torture/compile/pr44686.c
  ca986735839dc65a28d246527a8f4552  gcc/testsuite/gcc.c-torture/compile/pr44687.c
  960be10fb90e77d9a8b45990d48e75fb  gcc/testsuite/gcc.c-torture/compile/pr44707.c
  6ab8701d698a0c5064134fc9a253c3cd  gcc/testsuite/gcc.c-torture/compile/pr44784.c
! 07fda7ac792b5a84b1d502fc6e7386eb  gcc/testsuite/gcc.c-torture/compile/pr44788.c
  438684b1b4482f4abe2ad633da3d970a  gcc/testsuite/gcc.c-torture/compile/pr44831.c
  e1515e853784263d6318f323dacfbb62  gcc/testsuite/gcc.c-torture/compile/pr44891.c
  ed33a4aba19c5cfe744b00214c6c2bc5  gcc/testsuite/gcc.c-torture/compile/pr44937.c
*************** b9f043a0f24bf4cfc5d43132581a9869  gcc/te
*** 34463,34469 ****
  f741604289cd8e5966d45cfb69f30b10  gcc/testsuite/gcc.c-torture/compile/pr45109.c
  ddb05ac15df9ec687fd1a7673f4afea3  gcc/testsuite/gcc.c-torture/compile/pr45182.c
  eb01ef341aad80c9183a928d0c8d845b  gcc/testsuite/gcc.c-torture/compile/pr45412.c
! fcc11276597219375dc647b98d025ac9  gcc/testsuite/gcc.c-torture/compile/pr45535.c
  f9cc67f546fc87c0c4aea55f71835b8e  gcc/testsuite/gcc.c-torture/compile/pr45728.c
  54f0fd91a71d84eaef8ec8d580f5b0ac  gcc/testsuite/gcc.c-torture/compile/pr45771.c
  db73cefcafbcdc9d7662f82c579c7b12  gcc/testsuite/gcc.c-torture/compile/pr45876.c
--- 36562,36568 ----
  f741604289cd8e5966d45cfb69f30b10  gcc/testsuite/gcc.c-torture/compile/pr45109.c
  ddb05ac15df9ec687fd1a7673f4afea3  gcc/testsuite/gcc.c-torture/compile/pr45182.c
  eb01ef341aad80c9183a928d0c8d845b  gcc/testsuite/gcc.c-torture/compile/pr45412.c
! 0ec4d893f5457655fc7afdbaeaaae7a7  gcc/testsuite/gcc.c-torture/compile/pr45535.c
  f9cc67f546fc87c0c4aea55f71835b8e  gcc/testsuite/gcc.c-torture/compile/pr45728.c
  54f0fd91a71d84eaef8ec8d580f5b0ac  gcc/testsuite/gcc.c-torture/compile/pr45771.c
  db73cefcafbcdc9d7662f82c579c7b12  gcc/testsuite/gcc.c-torture/compile/pr45876.c
*************** b70e5c59221a0b298f000ed1dc9bb385  gcc/te
*** 34483,34498 ****
  abc944c9a3acbcc2a52ab0c9047e71a5  gcc/testsuite/gcc.c-torture/compile/pr46856.c
  49478daa3657bca3c5abf7210a16c214  gcc/testsuite/gcc.c-torture/compile/pr46866.c
  a1051ce960e8eddd712e6488636cbdb0  gcc/testsuite/gcc.c-torture/compile/pr46883.c
! 25fed8c22b246e7e33c531da050771bf  gcc/testsuite/gcc.c-torture/compile/pr46934.c
  2b4c1525cc1fa5ef61330669825536bd  gcc/testsuite/gcc.c-torture/compile/pr47140.c
  233200cd6830d71750821dca6c28fee9  gcc/testsuite/gcc.c-torture/compile/pr47141.c
  314a7c58d9497b0bb93d6865b49ccdbf  gcc/testsuite/gcc.c-torture/compile/pr47150.c
  95f69bec7f17a04300b794b90f80973f  gcc/testsuite/gcc.c-torture/compile/pr47157.c
  7e4bb411b22ff81cfe7dd6b217085208  gcc/testsuite/gcc.c-torture/compile/pr47265.c
! d8516035fd1f10d0d89286532ad1f87e  gcc/testsuite/gcc.c-torture/compile/pr47364-1.c
  774effe7375ad468fd79633c66d4044a  gcc/testsuite/gcc.c-torture/compile/pr47364-2.c
  cce12758af736907ac0762a5a1890088  gcc/testsuite/gcc.c-torture/compile/pr47427.c
! 563ddfd9dd3d1f937d6a8c894dea1708  gcc/testsuite/gcc.c-torture/compile/pr47428.c
  e7d59dbc8b7b26ec012e63912c55ce82  gcc/testsuite/gcc.c-torture/compile/pr47967.c
  9d1c78d08ef275b5a06953b0ef35bff0  gcc/testsuite/gcc.c-torture/compile/pr48136.c
  80bef8bd436aad903e556834e25c94b2  gcc/testsuite/gcc.c-torture/compile/pr48161.c
--- 36582,36597 ----
  abc944c9a3acbcc2a52ab0c9047e71a5  gcc/testsuite/gcc.c-torture/compile/pr46856.c
  49478daa3657bca3c5abf7210a16c214  gcc/testsuite/gcc.c-torture/compile/pr46866.c
  a1051ce960e8eddd712e6488636cbdb0  gcc/testsuite/gcc.c-torture/compile/pr46883.c
! 7936a27643b126d8cace992dc5e7e4bb  gcc/testsuite/gcc.c-torture/compile/pr46934.c
  2b4c1525cc1fa5ef61330669825536bd  gcc/testsuite/gcc.c-torture/compile/pr47140.c
  233200cd6830d71750821dca6c28fee9  gcc/testsuite/gcc.c-torture/compile/pr47141.c
  314a7c58d9497b0bb93d6865b49ccdbf  gcc/testsuite/gcc.c-torture/compile/pr47150.c
  95f69bec7f17a04300b794b90f80973f  gcc/testsuite/gcc.c-torture/compile/pr47157.c
  7e4bb411b22ff81cfe7dd6b217085208  gcc/testsuite/gcc.c-torture/compile/pr47265.c
! 854f90a555133ba0e5f2ab5e55abe899  gcc/testsuite/gcc.c-torture/compile/pr47364-1.c
  774effe7375ad468fd79633c66d4044a  gcc/testsuite/gcc.c-torture/compile/pr47364-2.c
  cce12758af736907ac0762a5a1890088  gcc/testsuite/gcc.c-torture/compile/pr47427.c
! 4324356f98a43a3bed555406f8c9c747  gcc/testsuite/gcc.c-torture/compile/pr47428.c
  e7d59dbc8b7b26ec012e63912c55ce82  gcc/testsuite/gcc.c-torture/compile/pr47967.c
  9d1c78d08ef275b5a06953b0ef35bff0  gcc/testsuite/gcc.c-torture/compile/pr48136.c
  80bef8bd436aad903e556834e25c94b2  gcc/testsuite/gcc.c-torture/compile/pr48161.c
*************** e7d59dbc8b7b26ec012e63912c55ce82  gcc/te
*** 34500,34506 ****
  72a2af36c8398cd00f55b174b921f52a  gcc/testsuite/gcc.c-torture/compile/pr48335-1.c
  b6084ecc1ba47bd2b16435acc7eb5346  gcc/testsuite/gcc.c-torture/compile/pr48381.c
  4b19cd2706919359560fa137b8d64e3f  gcc/testsuite/gcc.c-torture/compile/pr48517.c
! e420ff62e688896a93a3be803236269e  gcc/testsuite/gcc.c-torture/compile/pr48596.c
  98cff94a329105c4492266e3b8899b5f  gcc/testsuite/gcc.c-torture/compile/pr48641.c
  24bb5acbed4e15a5c7161bfbad07b0ee  gcc/testsuite/gcc.c-torture/compile/pr48734.c
  4265b14c49d9c9bd182258ac0f14b53e  gcc/testsuite/gcc.c-torture/compile/pr48742.c
--- 36599,36605 ----
  72a2af36c8398cd00f55b174b921f52a  gcc/testsuite/gcc.c-torture/compile/pr48335-1.c
  b6084ecc1ba47bd2b16435acc7eb5346  gcc/testsuite/gcc.c-torture/compile/pr48381.c
  4b19cd2706919359560fa137b8d64e3f  gcc/testsuite/gcc.c-torture/compile/pr48517.c
! 7bcc8be2aac7ec1893a30ed709c350da  gcc/testsuite/gcc.c-torture/compile/pr48596.c
  98cff94a329105c4492266e3b8899b5f  gcc/testsuite/gcc.c-torture/compile/pr48641.c
  24bb5acbed4e15a5c7161bfbad07b0ee  gcc/testsuite/gcc.c-torture/compile/pr48734.c
  4265b14c49d9c9bd182258ac0f14b53e  gcc/testsuite/gcc.c-torture/compile/pr48742.c
*************** e420ff62e688896a93a3be803236269e  gcc/te
*** 34508,34520 ****
  8b5866a81e72fd7b89852f6f9109e94a  gcc/testsuite/gcc.c-torture/compile/pr48929.c
  857ab39aa623d7ed99df95c70cd6885d  gcc/testsuite/gcc.c-torture/compile/pr49029.c
  8ab9fc100459e7da07555cbb7fd731f2  gcc/testsuite/gcc.c-torture/compile/pr49049.c
! c968c71dd08656dbad9a3f3b6a51ec4c  gcc/testsuite/gcc.c-torture/compile/pr49145.c
  5a369e66116e331a45c1e09e15159a6d  gcc/testsuite/gcc.c-torture/compile/pr49163.c
! d4eab934aa8acbd6ffbc383ccf527084  gcc/testsuite/gcc.c-torture/compile/pr49206.c
  771e0a9b13ff3a214c9ea1805b4410f0  gcc/testsuite/gcc.c-torture/compile/pr49220.c
  80be411937e648306e295f2247a9ca87  gcc/testsuite/gcc.c-torture/compile/pr49238.c
! b214d4605bdea25cec1a36d6f5ffe899  gcc/testsuite/gcc.c-torture/compile/pr49474.c
! 2d29ddd352b2fc89456d9f74b1585a50  gcc/testsuite/gcc.c-torture/compile/pr49710.c
  03fd1753f8e0e9cbf2fc5420dbc5ab5f  gcc/testsuite/gcc.c-torture/compile/pr49735.c
  1e194c27ea4570b0c120d7fd711af365  gcc/testsuite/gcc.c-torture/compile/pr50009.c
  586494c3af20c62d67e6c99267ccaae8  gcc/testsuite/gcc.c-torture/compile/pr50380.c
--- 36607,36619 ----
  8b5866a81e72fd7b89852f6f9109e94a  gcc/testsuite/gcc.c-torture/compile/pr48929.c
  857ab39aa623d7ed99df95c70cd6885d  gcc/testsuite/gcc.c-torture/compile/pr49029.c
  8ab9fc100459e7da07555cbb7fd731f2  gcc/testsuite/gcc.c-torture/compile/pr49049.c
! 0ad89b9e1119bd87c0d192b079bd4997  gcc/testsuite/gcc.c-torture/compile/pr49145.c
  5a369e66116e331a45c1e09e15159a6d  gcc/testsuite/gcc.c-torture/compile/pr49163.c
! 174b16295354bbade0047f478a49bad4  gcc/testsuite/gcc.c-torture/compile/pr49206.c
  771e0a9b13ff3a214c9ea1805b4410f0  gcc/testsuite/gcc.c-torture/compile/pr49220.c
  80be411937e648306e295f2247a9ca87  gcc/testsuite/gcc.c-torture/compile/pr49238.c
! b02a3286f813192f09c03546ac7dd2b2  gcc/testsuite/gcc.c-torture/compile/pr49474.c
! a613b429739be4b417112b2186050713  gcc/testsuite/gcc.c-torture/compile/pr49710.c
  03fd1753f8e0e9cbf2fc5420dbc5ab5f  gcc/testsuite/gcc.c-torture/compile/pr49735.c
  1e194c27ea4570b0c120d7fd711af365  gcc/testsuite/gcc.c-torture/compile/pr50009.c
  586494c3af20c62d67e6c99267ccaae8  gcc/testsuite/gcc.c-torture/compile/pr50380.c
*************** e52cdfcf170396785521dec3a2dd2045  gcc/te
*** 34527,34533 ****
  e4d02352bffbec19e7e0b947c567bc07  gcc/testsuite/gcc.c-torture/compile/pr51247.c
  023da9a8a0e593379eab260dbc812399  gcc/testsuite/gcc.c-torture/compile/pr51354.c
  8eb316610fd7408f0c9652f2290e7dc2  gcc/testsuite/gcc.c-torture/compile/pr51495.c
! 4a262942faaa0eb22d4a0fcc3dcb722e  gcc/testsuite/gcc.c-torture/compile/pr51694.c
  40138bc7985a6e36ee17a72a8ca8f0ef  gcc/testsuite/gcc.c-torture/compile/pr51761.c
  16b0c8db61d740e42ea3bee30160d1f0  gcc/testsuite/gcc.c-torture/compile/pr51767.c
  ffbeb306bf0153ef05a7391ecb9b76a0  gcc/testsuite/gcc.c-torture/compile/pr51856.c
--- 36626,36632 ----
  e4d02352bffbec19e7e0b947c567bc07  gcc/testsuite/gcc.c-torture/compile/pr51247.c
  023da9a8a0e593379eab260dbc812399  gcc/testsuite/gcc.c-torture/compile/pr51354.c
  8eb316610fd7408f0c9652f2290e7dc2  gcc/testsuite/gcc.c-torture/compile/pr51495.c
! 143df58cd1448da620347a7810a7f347  gcc/testsuite/gcc.c-torture/compile/pr51694.c
  40138bc7985a6e36ee17a72a8ca8f0ef  gcc/testsuite/gcc.c-torture/compile/pr51761.c
  16b0c8db61d740e42ea3bee30160d1f0  gcc/testsuite/gcc.c-torture/compile/pr51767.c
  ffbeb306bf0153ef05a7391ecb9b76a0  gcc/testsuite/gcc.c-torture/compile/pr51856.c
*************** abf1133ece704ef469b652c4cf5ed38e  gcc/te
*** 34540,34546 ****
  bbf65f290039d153091c61f016fd6162  gcc/testsuite/gcc.c-torture/compile/pr52255.c
  5f1c171a293889d1d30a01d2247de5ac  gcc/testsuite/gcc.c-torture/compile/pr52306.c
  26d4f0b44219cc2855ca9f024d9f2e84  gcc/testsuite/gcc.c-torture/compile/pr52375.c
! 6a1f106e9d35745cec92f972f3e32342  gcc/testsuite/gcc.c-torture/compile/pr52437.c
  1fb1316540df656fd57099d4cee66824  gcc/testsuite/gcc.c-torture/compile/pr52533.c
  716b2f7c97cc1b20a40ac4f40de018d0  gcc/testsuite/gcc.c-torture/compile/pr52555.c
  937cda1461b621c61c4c9d1fbe01fe2a  gcc/testsuite/gcc.c-torture/compile/pr52714.c
--- 36639,36645 ----
  bbf65f290039d153091c61f016fd6162  gcc/testsuite/gcc.c-torture/compile/pr52255.c
  5f1c171a293889d1d30a01d2247de5ac  gcc/testsuite/gcc.c-torture/compile/pr52306.c
  26d4f0b44219cc2855ca9f024d9f2e84  gcc/testsuite/gcc.c-torture/compile/pr52375.c
! 99d2d6a8b6d442e231ee0248d24f8f36  gcc/testsuite/gcc.c-torture/compile/pr52437.c
  1fb1316540df656fd57099d4cee66824  gcc/testsuite/gcc.c-torture/compile/pr52533.c
  716b2f7c97cc1b20a40ac4f40de018d0  gcc/testsuite/gcc.c-torture/compile/pr52555.c
  937cda1461b621c61c4c9d1fbe01fe2a  gcc/testsuite/gcc.c-torture/compile/pr52714.c
*************** c509345d4477e53337ed96cb0eab445d  gcc/te
*** 34562,34568 ****
  e22222a52f30ae107de6cf64eb9f7961  gcc/testsuite/gcc.c-torture/compile/pr53495.c
  d229ae3c54e33051bbec22ee82ca3fe6  gcc/testsuite/gcc.c-torture/compile/pr53519.c
  eff3efa3722da0ce991f65defeab3e04  gcc/testsuite/gcc.c-torture/compile/pr53748.c
! 0779d4db8648e525dff7eb398ce5f9fd  gcc/testsuite/gcc.c-torture/compile/pr53886.c
  0040e1fc207d701a1cf7ccd8043b5602  gcc/testsuite/gcc.c-torture/compile/pr54103-1.c
  a33e53c07682388bc997be7be125f5e8  gcc/testsuite/gcc.c-torture/compile/pr54103-2.c
  feda9b994070314a189d1c52bc67d249  gcc/testsuite/gcc.c-torture/compile/pr54103-3.c
--- 36661,36667 ----
  e22222a52f30ae107de6cf64eb9f7961  gcc/testsuite/gcc.c-torture/compile/pr53495.c
  d229ae3c54e33051bbec22ee82ca3fe6  gcc/testsuite/gcc.c-torture/compile/pr53519.c
  eff3efa3722da0ce991f65defeab3e04  gcc/testsuite/gcc.c-torture/compile/pr53748.c
! 7fed720a33b18f9f5009bb36aef1bc14  gcc/testsuite/gcc.c-torture/compile/pr53886.c
  0040e1fc207d701a1cf7ccd8043b5602  gcc/testsuite/gcc.c-torture/compile/pr54103-1.c
  a33e53c07682388bc997be7be125f5e8  gcc/testsuite/gcc.c-torture/compile/pr54103-2.c
  feda9b994070314a189d1c52bc67d249  gcc/testsuite/gcc.c-torture/compile/pr54103-3.c
*************** d4fcbeedbb50d5d862a10fb29f188f75  gcc/te
*** 34594,34600 ****
  a6c492944eeef02cb44d6b3efeac2e1f  gcc/testsuite/gcc.c-torture/compile/pr56984.c
  d7ee276ec5e5a463452078f622e36ac0  gcc/testsuite/gcc.c-torture/compile/pr57108.c
  2b27e34123a4b6924d6ad5ed4c3ed418  gcc/testsuite/gcc.c-torture/compile/pr57331.c
! 001f8ee7b2b6fa10f15cc6204b543198  gcc/testsuite/gcc.c-torture/compile/pr57441.c
  00d4860473f6868facda8c7c898f9ba7  gcc/testsuite/gcc.c-torture/compile/pr57698.c
  3d5e2d289193cbadd96cde226ed96cc8  gcc/testsuite/gcc.c-torture/compile/pr58088.c
  c603dfcc25939709bf17b345d5803b57  gcc/testsuite/gcc.c-torture/compile/pr58164.c
--- 36693,36699 ----
  a6c492944eeef02cb44d6b3efeac2e1f  gcc/testsuite/gcc.c-torture/compile/pr56984.c
  d7ee276ec5e5a463452078f622e36ac0  gcc/testsuite/gcc.c-torture/compile/pr57108.c
  2b27e34123a4b6924d6ad5ed4c3ed418  gcc/testsuite/gcc.c-torture/compile/pr57331.c
! ba67570645dfc1c95d13a1c0453a8936  gcc/testsuite/gcc.c-torture/compile/pr57441.c
  00d4860473f6868facda8c7c898f9ba7  gcc/testsuite/gcc.c-torture/compile/pr57698.c
  3d5e2d289193cbadd96cde226ed96cc8  gcc/testsuite/gcc.c-torture/compile/pr58088.c
  c603dfcc25939709bf17b345d5803b57  gcc/testsuite/gcc.c-torture/compile/pr58164.c
*************** c49cf1853620ae71c65055c74c2e446b  gcc/te
*** 34630,34636 ****
  ecd86b2ec3c6e99f8c9357249b8569eb  gcc/testsuite/gcc.c-torture/compile/pr60655-2.c
  0d246b57fcfef0380c5ac5b0dccf1f50  gcc/testsuite/gcc.c-torture/compile/pr60818.c
  d47d48bc5d0479f66961edb27b343038  gcc/testsuite/gcc.c-torture/compile/pr61042.c
! ae9b2ae18f182bfb1326d208f6011903  gcc/testsuite/gcc.c-torture/compile/pr61159.c
  9463b77ac06a55b7d4a912e2b3389cc1  gcc/testsuite/gcc.c-torture/compile/pr61222-1.c
  e2006840cb2c2f8c11c42c49fd948263  gcc/testsuite/gcc.c-torture/compile/pr61222-2.c
  eb9a44bf10d9af818d3d8df7abc434ba  gcc/testsuite/gcc.c-torture/compile/pr61684.c
--- 36729,36735 ----
  ecd86b2ec3c6e99f8c9357249b8569eb  gcc/testsuite/gcc.c-torture/compile/pr60655-2.c
  0d246b57fcfef0380c5ac5b0dccf1f50  gcc/testsuite/gcc.c-torture/compile/pr60818.c
  d47d48bc5d0479f66961edb27b343038  gcc/testsuite/gcc.c-torture/compile/pr61042.c
! d801982fcdee9c5369176e8a4ba40c75  gcc/testsuite/gcc.c-torture/compile/pr61159.c
  9463b77ac06a55b7d4a912e2b3389cc1  gcc/testsuite/gcc.c-torture/compile/pr61222-1.c
  e2006840cb2c2f8c11c42c49fd948263  gcc/testsuite/gcc.c-torture/compile/pr61222-2.c
  eb9a44bf10d9af818d3d8df7abc434ba  gcc/testsuite/gcc.c-torture/compile/pr61684.c
*************** c3eccab4c42aebf92957547898b3917a  gcc/te
*** 34644,34650 ****
  3af8bca9cbeabca05924760480fb4b89  gcc/testsuite/gcc.c-torture/compile/pr65014.c
  c75bb05551ff09b878b1a7032707721b  gcc/testsuite/gcc.c-torture/compile/pr65153.c
  c33702c15a33a34f884537b7a2dcd857  gcc/testsuite/gcc.c-torture/compile/pr65163.c
! 24668b588a8cf86ff500e668a805bbca  gcc/testsuite/gcc.c-torture/compile/pr65241.c
  d640ae90bbde8cc412262d4b7f5b33c2  gcc/testsuite/gcc.c-torture/compile/pr65540.c
  00f1bcc5aeed5f53d2a531c6409d6fe3  gcc/testsuite/gcc.c-torture/compile/pr65593.c
  4f32a764450116b16007fc9b2d455e30  gcc/testsuite/gcc.c-torture/compile/pr65595.c
--- 36743,36749 ----
  3af8bca9cbeabca05924760480fb4b89  gcc/testsuite/gcc.c-torture/compile/pr65014.c
  c75bb05551ff09b878b1a7032707721b  gcc/testsuite/gcc.c-torture/compile/pr65153.c
  c33702c15a33a34f884537b7a2dcd857  gcc/testsuite/gcc.c-torture/compile/pr65163.c
! c3f74ad86fdb1d96c33d6364dfbf65fb  gcc/testsuite/gcc.c-torture/compile/pr65241.c
  d640ae90bbde8cc412262d4b7f5b33c2  gcc/testsuite/gcc.c-torture/compile/pr65540.c
  00f1bcc5aeed5f53d2a531c6409d6fe3  gcc/testsuite/gcc.c-torture/compile/pr65593.c
  4f32a764450116b16007fc9b2d455e30  gcc/testsuite/gcc.c-torture/compile/pr65595.c
*************** d2abfdabdbeb6670f7a517aaa74714b3  gcc/te
*** 34689,34695 ****
  231fb44a71ba7441d73d3169fe8d727a  gcc/testsuite/gcc.c-torture/compile/pr72742.c
  4804583cdbcf43906c92312b12f102ec  gcc/testsuite/gcc.c-torture/compile/pr72749.c
  05499a956abf0168b43207b10ff55b6f  gcc/testsuite/gcc.c-torture/compile/pr72771.c
! bd9f10a73e289f0fdac2ce08641816f0  gcc/testsuite/gcc.c-torture/compile/pr72802.c
  7d904fe97d42498971eb0d620486104c  gcc/testsuite/gcc.c-torture/compile/pr77754-1.c
  883465795cbe470b151417529338b34c  gcc/testsuite/gcc.c-torture/compile/pr77754-2.c
  71449498a587a66ed522b938c34d0c11  gcc/testsuite/gcc.c-torture/compile/pr77754-3.c
--- 36788,36794 ----
  231fb44a71ba7441d73d3169fe8d727a  gcc/testsuite/gcc.c-torture/compile/pr72742.c
  4804583cdbcf43906c92312b12f102ec  gcc/testsuite/gcc.c-torture/compile/pr72749.c
  05499a956abf0168b43207b10ff55b6f  gcc/testsuite/gcc.c-torture/compile/pr72771.c
! bdbdeaadd16a5dbb94b29786151e3dfd  gcc/testsuite/gcc.c-torture/compile/pr72802.c
  7d904fe97d42498971eb0d620486104c  gcc/testsuite/gcc.c-torture/compile/pr77754-1.c
  883465795cbe470b151417529338b34c  gcc/testsuite/gcc.c-torture/compile/pr77754-2.c
  71449498a587a66ed522b938c34d0c11  gcc/testsuite/gcc.c-torture/compile/pr77754-3.c
*************** f49fb8a55a8bc186f2204980c5dcedd4  gcc/te
*** 34725,34734 ****
  1bb1438d7ef7e7637f555205f23d9423  gcc/testsuite/gcc.c-torture/compile/pr81207.c
  e74f61acb80ed341f8d48c2ca35eed33  gcc/testsuite/gcc.c-torture/compile/pr81262.c
  e62083fe412da5c50c1b5367402c5bb4  gcc/testsuite/gcc.c-torture/compile/pr81290.c
! e77970ecb0edd205d312a0bb41cc8ac2  gcc/testsuite/gcc.c-torture/compile/pr81360.c
  d2821401144573975d9f5852f6fc676b  gcc/testsuite/gcc.c-torture/compile/pr81553.c
  369082c84deea8ce5d06d932cadd4145  gcc/testsuite/gcc.c-torture/compile/pr81595.c
! 3ad9e785407f8d991da9c1075c0bce33  gcc/testsuite/gcc.c-torture/compile/pr82052.c
  47edb84be0dbd4a999eb1a2a4b997169  gcc/testsuite/gcc.c-torture/compile/pr82096.c
  ddef63778a2af17c7b6719d4b60a0a60  gcc/testsuite/gcc.c-torture/compile/pr82337.c
  b1098cab2c4a8035c39450c097800ad2  gcc/testsuite/gcc.c-torture/compile/pr82381.c
--- 36824,36833 ----
  1bb1438d7ef7e7637f555205f23d9423  gcc/testsuite/gcc.c-torture/compile/pr81207.c
  e74f61acb80ed341f8d48c2ca35eed33  gcc/testsuite/gcc.c-torture/compile/pr81262.c
  e62083fe412da5c50c1b5367402c5bb4  gcc/testsuite/gcc.c-torture/compile/pr81290.c
! 73fc8b8bcecdfde257fcbb9893f9ac8f  gcc/testsuite/gcc.c-torture/compile/pr81360.c
  d2821401144573975d9f5852f6fc676b  gcc/testsuite/gcc.c-torture/compile/pr81553.c
  369082c84deea8ce5d06d932cadd4145  gcc/testsuite/gcc.c-torture/compile/pr81595.c
! e62d5b911657af00374ce73ce57485a4  gcc/testsuite/gcc.c-torture/compile/pr82052.c
  47edb84be0dbd4a999eb1a2a4b997169  gcc/testsuite/gcc.c-torture/compile/pr82096.c
  ddef63778a2af17c7b6719d4b60a0a60  gcc/testsuite/gcc.c-torture/compile/pr82337.c
  b1098cab2c4a8035c39450c097800ad2  gcc/testsuite/gcc.c-torture/compile/pr82381.c
*************** b19a849e34a33352c83a0c6f5e6b9e64  gcc/te
*** 34770,34777 ****
  5dd45a90553a7fcc8b9c40eaa8d7e73b  gcc/testsuite/gcc.c-torture/compile/pr86637-1.c
  e21d117b7796661b2537e6b2ea45bdee  gcc/testsuite/gcc.c-torture/compile/pr86637-2.c
  9d57165aed11623f85a2ed7a98df7e49  gcc/testsuite/gcc.c-torture/compile/pr86637-3.c
! fd7f84030ccb1b2756743da839409907  gcc/testsuite/gcc.c-torture/compile/pr87110.c
! e7901d84f1108f1b8655e573d0c8ca37  gcc/testsuite/gcc.c-torture/compile/pr87468.c
  c07cb6bbf144841ec62369603efc6e0b  gcc/testsuite/gcc.c-torture/compile/pr87473.c
  7bb746aff7daab01a69c68ac718afce2  gcc/testsuite/gcc.c-torture/compile/pr87647.c
  d7791c1f6c7cad8e6d1fe0b47e6df137  gcc/testsuite/gcc.c-torture/compile/pr88140.c
--- 36869,36876 ----
  5dd45a90553a7fcc8b9c40eaa8d7e73b  gcc/testsuite/gcc.c-torture/compile/pr86637-1.c
  e21d117b7796661b2537e6b2ea45bdee  gcc/testsuite/gcc.c-torture/compile/pr86637-2.c
  9d57165aed11623f85a2ed7a98df7e49  gcc/testsuite/gcc.c-torture/compile/pr86637-3.c
! d5f6bb185ba51679ace4594e6942f735  gcc/testsuite/gcc.c-torture/compile/pr87110.c
! ae1b6145cd78efa9b0735491a394ee54  gcc/testsuite/gcc.c-torture/compile/pr87468.c
  c07cb6bbf144841ec62369603efc6e0b  gcc/testsuite/gcc.c-torture/compile/pr87473.c
  7bb746aff7daab01a69c68ac718afce2  gcc/testsuite/gcc.c-torture/compile/pr87647.c
  d7791c1f6c7cad8e6d1fe0b47e6df137  gcc/testsuite/gcc.c-torture/compile/pr88140.c
*************** ae377dc5bfe4399808db661879decd39  gcc/te
*** 34789,34796 ****
  9e0af4f9e229aa8a0151b863c40f3072  gcc/testsuite/gcc.c-torture/compile/pr89998-1.c
  28107e4eddc0810b8c90657b7cca7ab0  gcc/testsuite/gcc.c-torture/compile/pr89998-2.c
  99639c63132deca7d94430de65a54739  gcc/testsuite/gcc.c-torture/compile/pr90139.c
! 2568426f06444577e1a22a3d07519619  gcc/testsuite/gcc.c-torture/compile/pr90275-2.c
! a725b25b44a79317571edd12e1566911  gcc/testsuite/gcc.c-torture/compile/pr90275.c
  e11a1416fe433daf1bcec941d4d1ce98  gcc/testsuite/gcc.c-torture/compile/pr90840.c
  a030cf60882ea26ac44f293f1ecbd5e0  gcc/testsuite/gcc.c-torture/compile/pr91001.c
  1eecb40404e30ccae70b81ded8130673  gcc/testsuite/gcc.c-torture/compile/pr91190.c
--- 36888,36895 ----
  9e0af4f9e229aa8a0151b863c40f3072  gcc/testsuite/gcc.c-torture/compile/pr89998-1.c
  28107e4eddc0810b8c90657b7cca7ab0  gcc/testsuite/gcc.c-torture/compile/pr89998-2.c
  99639c63132deca7d94430de65a54739  gcc/testsuite/gcc.c-torture/compile/pr90139.c
! 0dfacbb725fbccebd5ee6b33717b880c  gcc/testsuite/gcc.c-torture/compile/pr90275-2.c
! 71eaef78553a4cce89d6f8cd732007d4  gcc/testsuite/gcc.c-torture/compile/pr90275.c
  e11a1416fe433daf1bcec941d4d1ce98  gcc/testsuite/gcc.c-torture/compile/pr90840.c
  a030cf60882ea26ac44f293f1ecbd5e0  gcc/testsuite/gcc.c-torture/compile/pr91001.c
  1eecb40404e30ccae70b81ded8130673  gcc/testsuite/gcc.c-torture/compile/pr91190.c
*************** b3a704fac8cecd376eb8ca7ae5d594e3  gcc/te
*** 34821,34828 ****
  b592aab14164964644385997ee799b46  gcc/testsuite/gcc.c-torture/compile/pr94488.c
  93952665a8b02a3a49c7d7c5bc5f1a97  gcc/testsuite/gcc.c-torture/compile/pr94621.c
  7dbeb8aaf9175e2573e86afe5b6d8d82  gcc/testsuite/gcc.c-torture/compile/pr94686.c
! 4c276c62b7e78b13a7d3f39d5c83e159  gcc/testsuite/gcc.c-torture/compile/pr96426.c
! 1ac24d88dcb5f92a2c7d6a682965c0c7  gcc/testsuite/gcc.c-torture/compile/pr96796.c
  20924a82616e145cfa02d32f61cf6d09  gcc/testsuite/gcc.c-torture/compile/pr96998.c
  35e9b69fa6a8536400fd234999bb050c  gcc/testsuite/gcc.c-torture/compile/pr97141.c
  9877434a52aaa17b1ab89487f9497639  gcc/testsuite/gcc.c-torture/compile/pr97144.c
--- 36920,36927 ----
  b592aab14164964644385997ee799b46  gcc/testsuite/gcc.c-torture/compile/pr94488.c
  93952665a8b02a3a49c7d7c5bc5f1a97  gcc/testsuite/gcc.c-torture/compile/pr94621.c
  7dbeb8aaf9175e2573e86afe5b6d8d82  gcc/testsuite/gcc.c-torture/compile/pr94686.c
! 16fd51446f612721c10c4614ccead58a  gcc/testsuite/gcc.c-torture/compile/pr96426.c
! 3e4db4272cd801797d862bfd8bbc7079  gcc/testsuite/gcc.c-torture/compile/pr96796.c
  20924a82616e145cfa02d32f61cf6d09  gcc/testsuite/gcc.c-torture/compile/pr96998.c
  35e9b69fa6a8536400fd234999bb050c  gcc/testsuite/gcc.c-torture/compile/pr97141.c
  9877434a52aaa17b1ab89487f9497639  gcc/testsuite/gcc.c-torture/compile/pr97144.c
*************** d94e8dba114bf6c1428ecd7c7475f51e  gcc/te
*** 34832,34839 ****
  c78cceed0dd8426d7c1d6f399fa3390e  gcc/testsuite/gcc.c-torture/compile/pr97578.c
  835f7a3d701aaaa1a2985c869be63315  gcc/testsuite/gcc.c-torture/compile/pr97979.c
  1ecd4c9d478fb14673cceb746a00bead  gcc/testsuite/gcc.c-torture/compile/pr98087.c
! 7e0f6d7ee1c980c77417cb943e0904c4  gcc/testsuite/gcc.c-torture/compile/pr98096.c
! 7f028828d8227d20488876d65505b284  gcc/testsuite/gcc.c-torture/compile/pr98199.c
  f05db374223d7b2d04542e78819ebf13  gcc/testsuite/gcc.c-torture/compile/pr98229.c
  afa209d89b66fe03aba3f459a35d2da2  gcc/testsuite/gcc.c-torture/compile/pr98256.c
  28b98e653090dab5f230399ac27e14fe  gcc/testsuite/gcc.c-torture/compile/pr98407.c
--- 36931,36938 ----
  c78cceed0dd8426d7c1d6f399fa3390e  gcc/testsuite/gcc.c-torture/compile/pr97578.c
  835f7a3d701aaaa1a2985c869be63315  gcc/testsuite/gcc.c-torture/compile/pr97979.c
  1ecd4c9d478fb14673cceb746a00bead  gcc/testsuite/gcc.c-torture/compile/pr98087.c
! 799c8af1463f3efb58e300a560a8973b  gcc/testsuite/gcc.c-torture/compile/pr98096.c
! fcd860c3d6bd0d61daad997fea27b8de  gcc/testsuite/gcc.c-torture/compile/pr98199.c
  f05db374223d7b2d04542e78819ebf13  gcc/testsuite/gcc.c-torture/compile/pr98229.c
  afa209d89b66fe03aba3f459a35d2da2  gcc/testsuite/gcc.c-torture/compile/pr98256.c
  28b98e653090dab5f230399ac27e14fe  gcc/testsuite/gcc.c-torture/compile/pr98407.c
*************** cd903132649fbefa350b8179bddd0078  gcc/te
*** 34845,34940 ****
  7e408a9bcbb29363eda9fb015d8d84f3  gcc/testsuite/gcc.c-torture/compile/pr99647.c
  f817865c153b0e9e863b52705bdba23c  gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
  e69d829e7459addd09ce31c5321dc0c0  gcc/testsuite/gcc.c-torture/compile/pr99822.c
! c5c13bdc8c7ab97f002934f003e92b63  gcc/testsuite/gcc.c-torture/compile/pret-arg.c
  554bb1e8a9da058c129438ee67eeacaa  gcc/testsuite/gcc.c-torture/compile/pta-1.c
  ed716c1d1727fc2c748162e0cbc4ee47  gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c
! fa701bfc6294d864690c8f63beb38155  gcc/testsuite/gcc.c-torture/compile/pyr.c
! 989e971c0da500c6a1c9282e272c7a9a  gcc/testsuite/gcc.c-torture/compile/pyr2.c
  15f0e704c45a36af4a5dccfc48e33714  gcc/testsuite/gcc.c-torture/compile/q.c
! db9fd2a38c99463057471aab0cba1303  gcc/testsuite/gcc.c-torture/compile/r.c
! 59a0dd91d46e48bc486fb7fa31e01e9e  gcc/testsuite/gcc.c-torture/compile/r1.c
! eb3c94ff3b00fbf998bedb6484db3f99  gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c
! 7b033723313547a1d0dad2fd1cafe962  gcc/testsuite/gcc.c-torture/compile/rel.c
! 8f534e478b23398281f680a4473b479a  gcc/testsuite/gcc.c-torture/compile/rmsc.c
! da8918780d8e4c4e17393e7fde53fb66  gcc/testsuite/gcc.c-torture/compile/round.c
! 5e6f2c0fcf26982a3b022a224bf9f768  gcc/testsuite/gcc.c-torture/compile/run.c
  92752a8734e7598ef6b7baeed5277df1  gcc/testsuite/gcc.c-torture/compile/s.c
! d5be643cf3f707af808de59805a10469  gcc/testsuite/gcc.c-torture/compile/sar.c
! e9126677e5e49554c79033139324e492  gcc/testsuite/gcc.c-torture/compile/sc.c
! 721bd0bcd823e43fab2e19a50f5281c9  gcc/testsuite/gcc.c-torture/compile/scal.c
! 9aea265dacd0a02c1d42112995fe2d1a  gcc/testsuite/gcc.c-torture/compile/scc.c
! e66768fb9bd47695e99773765e20c055  gcc/testsuite/gcc.c-torture/compile/scond.c
  11f7c928c2db11110a8928b96c4a891e  gcc/testsuite/gcc.c-torture/compile/section.c
! ba58634b1f00cdda0509adb31b8eab38  gcc/testsuite/gcc.c-torture/compile/selfrec.c
! 032253630742902ad886d18afcbe2c90  gcc/testsuite/gcc.c-torture/compile/seq.c
! 61d56b06c81f40b1d18d4ed03ed1b31d  gcc/testsuite/gcc.c-torture/compile/set386.c
! f04af7cf08cf3a0139b9978ea698c737  gcc/testsuite/gcc.c-torture/compile/set88.c
! 3e2cafb04e999e47f49396289b945bf2  gcc/testsuite/gcc.c-torture/compile/sh.c
! b806bc430ffe7f5c4aa220244c5de3fe  gcc/testsuite/gcc.c-torture/compile/shand.c
! dd62f57eb0cd9a55cd364045493a7ccf  gcc/testsuite/gcc.c-torture/compile/shft.c
! 2994d263bc630aac3a986c11e85cbc1b  gcc/testsuite/gcc.c-torture/compile/shift.c
! 1eab28ac50a0e0bb6e2c78563610ec26  gcc/testsuite/gcc.c-torture/compile/shloop.c
! 34cc8c21f2cb9b07711651addc03934c  gcc/testsuite/gcc.c-torture/compile/shm.c
! 3eca6f52ba78de31c571de0eb4a03f8f  gcc/testsuite/gcc.c-torture/compile/signext.c
! d26ad1bd10d0bbd97e38b04786c4b880  gcc/testsuite/gcc.c-torture/compile/signext2.c
! e30d56ae79b61d422e07100bac1c9f73  gcc/testsuite/gcc.c-torture/compile/sim.c
  8d869e3426345f0cf8837c5eaafd43b5  gcc/testsuite/gcc.c-torture/compile/simd-1.c
  7249a75cf6b955efed52b5ec5cee3a79  gcc/testsuite/gcc.c-torture/compile/simd-2.c
  7eed2e35ab9050f77879918802879f19  gcc/testsuite/gcc.c-torture/compile/simd-3.c
  f1396a13185fb3a1a1f5cb14db6e38a7  gcc/testsuite/gcc.c-torture/compile/simd-4.c
! 1c93c55ecd4e6a2ff444aa34fff1ae8f  gcc/testsuite/gcc.c-torture/compile/simd-5.c
  67172ddb2ff19fac5a0ac6e6c7196b60  gcc/testsuite/gcc.c-torture/compile/simd-6.c
! 0b89340542943943bd14219e6843256b  gcc/testsuite/gcc.c-torture/compile/simple.c
  903bd4adff6489c1adfe15407714c642  gcc/testsuite/gcc.c-torture/compile/sizeof-macros-1.c
! d02334443f9b1eef6606bb334b6ee570  gcc/testsuite/gcc.c-torture/compile/sne.c
! a31474eca07662ad7461adc43d1146f4  gcc/testsuite/gcc.c-torture/compile/sound.c
! af6534ad23d8784f5133c8ae82991810  gcc/testsuite/gcc.c-torture/compile/sparcbug.c
! 3f1d40fe535905c095668255dd94dbdf  gcc/testsuite/gcc.c-torture/compile/speed.c
  68c4756a5e6657f7df9a8a02d6dda55e  gcc/testsuite/gcc.c-torture/compile/sra-1.c
  1fb17fb58efa11a8c2d892a6946321bc  gcc/testsuite/gcc.c-torture/compile/ssa-pre-1.c
  4244c9cfe127bb336d948adca93fc3fc  gcc/testsuite/gcc.c-torture/compile/ssa-unused-1.c
  5a331624fdc7e78c66ac23a5954db625  gcc/testsuite/gcc.c-torture/compile/stack-check-1.c
  49fbb3c50078b64b22ced2e9db241130  gcc/testsuite/gcc.c-torture/compile/statement-expression-1.c
! 3984f03f2913b4d4313709d27b57c803  gcc/testsuite/gcc.c-torture/compile/stor.c
! 0e4f88f9d7731bcddc6b1e17a728989d  gcc/testsuite/gcc.c-torture/compile/store0.c
! 11ed9d60b01c91c99529754267d2d688  gcc/testsuite/gcc.c-torture/compile/storecc.c
! db8ad996166882b34241a0b5cdd3cc4b  gcc/testsuite/gcc.c-torture/compile/str.c
! e35cb7965c1f2a5deadf10d8335506ca  gcc/testsuite/gcc.c-torture/compile/strcpy-1.c
  1fbbf5f7119fe4a75055f96e899b3d3b  gcc/testsuite/gcc.c-torture/compile/strcpy-2.c
  836996a3564a32fa4b43e855a731d588  gcc/testsuite/gcc.c-torture/compile/string-large-1.c
! 85bb9c23231877035fcde4b46c845ec5  gcc/testsuite/gcc.c-torture/compile/stru.c
  f4772e6c906520190f7700ef4c4a9dd7  gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c
  40337004510b6e09c7e3abfbdce53cb9  gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c
  be6e57b38137101675705c04949f38a6  gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c
! ad8a48ba2d3845277d0fdaed286fa8b6  gcc/testsuite/gcc.c-torture/compile/structret.c
  8b44716999810175c4e2a77db5bc9a4a  gcc/testsuite/gcc.c-torture/compile/structs.c
! c8301972a9fa87f3ba0621c3dc07bec0  gcc/testsuite/gcc.c-torture/compile/stuct.c
! e3ec4cac3286e3bde15684b24a43bee0  gcc/testsuite/gcc.c-torture/compile/sub32.c
! d39dfba8904b6b3381e9d72fdf270488  gcc/testsuite/gcc.c-torture/compile/subcc.c
! e90694051aa24fc5854f58f048e5fde1  gcc/testsuite/gcc.c-torture/compile/subcse.c
  f10de67b7095d8750e39553e60e96bc1  gcc/testsuite/gcc.c-torture/compile/switch-1.c
! 66ffcf0fa9a4fa5faac380babfac340a  gcc/testsuite/gcc.c-torture/compile/sym.c
! 4e64eee4187ef2b0a13cbc15e79d9b9f  gcc/testsuite/gcc.c-torture/compile/symconst.c
  fc605e204305f11038b4479a0bd3cfd4  gcc/testsuite/gcc.c-torture/compile/sync-1.c
  7ff908bb012c1d3bf80d02085994894f  gcc/testsuite/gcc.c-torture/compile/sync-2.c
  cc5b2244536f94720017f03b7e865d3f  gcc/testsuite/gcc.c-torture/compile/sync-3.c
! b47b0c9b71218736756796214582910e  gcc/testsuite/gcc.c-torture/compile/t.c
! e8fc4a32eb3f9b2ffac1a64a08f54ad4  gcc/testsuite/gcc.c-torture/compile/test-flow.c
! 140042715fc687a352b22e5ae29b7179  gcc/testsuite/gcc.c-torture/compile/test-loop.c
! d07f2fdfa0ed417e82c56aa1fdef12dc  gcc/testsuite/gcc.c-torture/compile/test.c
! ed2977614133cac5c3749e5505d2d8d5  gcc/testsuite/gcc.c-torture/compile/time.c
! f12f5d561e1a16111e431fb7844f00fa  gcc/testsuite/gcc.c-torture/compile/tmp.c
! 70659484bbe5ef79f718017dc79acbda  gcc/testsuite/gcc.c-torture/compile/trivial.c
! 5b45b5bbc8d8399abbe80797922c2e38  gcc/testsuite/gcc.c-torture/compile/trunc.c
  4302abbf3d54b15c2bf82ee3a5edb560  gcc/testsuite/gcc.c-torture/compile/trunctfdf.c
! ce937efab237b195eacc51860fac3366  gcc/testsuite/gcc.c-torture/compile/u.c
  532f6bad09c5871261ff7151b3c75d77  gcc/testsuite/gcc.c-torture/compile/udconvert.c
! 8e79fe65006c8a5c393b2b5c42986f74  gcc/testsuite/gcc.c-torture/compile/udivmod4.c
! 504a466bdaff63043254e91debda4a14  gcc/testsuite/gcc.c-torture/compile/unalign-1.c
! 4a0bf5165a70ad51609fd658c8e7cdb4  gcc/testsuite/gcc.c-torture/compile/uns.c
! ece957bd2db1749c32578bdb5e0c533d  gcc/testsuite/gcc.c-torture/compile/uns_tst.c
! 4992416395c4617de106f829e7377502  gcc/testsuite/gcc.c-torture/compile/uuarg.c
! 351fb056f57bf57e27b1408dbfa44263  gcc/testsuite/gcc.c-torture/compile/v.c
  4450012fff2b6148907f441d6d7aa6c5  gcc/testsuite/gcc.c-torture/compile/vector-1.c
  7237d30740990e46cb31dd5f61440cc3  gcc/testsuite/gcc.c-torture/compile/vector-2.c
  45318324c3cc4053b8264b324cc9042c  gcc/testsuite/gcc.c-torture/compile/vector-3.c
--- 36944,37039 ----
  7e408a9bcbb29363eda9fb015d8d84f3  gcc/testsuite/gcc.c-torture/compile/pr99647.c
  f817865c153b0e9e863b52705bdba23c  gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
  e69d829e7459addd09ce31c5321dc0c0  gcc/testsuite/gcc.c-torture/compile/pr99822.c
! 5948bf3fda5cbef009791d4134c0d2d1  gcc/testsuite/gcc.c-torture/compile/pret-arg.c
  554bb1e8a9da058c129438ee67eeacaa  gcc/testsuite/gcc.c-torture/compile/pta-1.c
  ed716c1d1727fc2c748162e0cbc4ee47  gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c
! 44911a6531fa2dd5feccf23f4253b586  gcc/testsuite/gcc.c-torture/compile/pyr.c
! 6d71a469b1193bf87ec702ac828bdbf8  gcc/testsuite/gcc.c-torture/compile/pyr2.c
  15f0e704c45a36af4a5dccfc48e33714  gcc/testsuite/gcc.c-torture/compile/q.c
! 1e809955979f15e240fbf7658f5a1ac6  gcc/testsuite/gcc.c-torture/compile/r.c
! 64b0a5e5b606931621944641e99c94b4  gcc/testsuite/gcc.c-torture/compile/r1.c
! a8cb5d4986ef6b502f6c90bed5e66c58  gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c
! faca9c44e2665a16467fe11550156a7e  gcc/testsuite/gcc.c-torture/compile/rel.c
! e83829cddbe5ab787a94e289fb2a2257  gcc/testsuite/gcc.c-torture/compile/rmsc.c
! 57b3b2623dca0e4aab7b3925ded2f69a  gcc/testsuite/gcc.c-torture/compile/round.c
! 4d08fb51a1d9eab28ae8ef66853acd1d  gcc/testsuite/gcc.c-torture/compile/run.c
  92752a8734e7598ef6b7baeed5277df1  gcc/testsuite/gcc.c-torture/compile/s.c
! 6feb04249690fa64c6736c454832d513  gcc/testsuite/gcc.c-torture/compile/sar.c
! 7e7e59910e4a3da691577aeedf3803f2  gcc/testsuite/gcc.c-torture/compile/sc.c
! ef617cb4b6cadcb46c70ef2d61aa33c9  gcc/testsuite/gcc.c-torture/compile/scal.c
! dbba73132ff5cfb8fea6e9dd52adcce2  gcc/testsuite/gcc.c-torture/compile/scc.c
! c6e377d7e75fee181947fc0efa8dad2b  gcc/testsuite/gcc.c-torture/compile/scond.c
  11f7c928c2db11110a8928b96c4a891e  gcc/testsuite/gcc.c-torture/compile/section.c
! cf1bfb713666bce7fb833f846b39598f  gcc/testsuite/gcc.c-torture/compile/selfrec.c
! dac00ffa4f2048fd89e6a9d0f115f349  gcc/testsuite/gcc.c-torture/compile/seq.c
! 0073508b76acfc756df23de3fbcaa587  gcc/testsuite/gcc.c-torture/compile/set386.c
! e2a4e4b7c709ce1f490830d581c7ca87  gcc/testsuite/gcc.c-torture/compile/set88.c
! 73b54e9ce65ca3206737afe8cc1b5b57  gcc/testsuite/gcc.c-torture/compile/sh.c
! c88d1d39a293e0c814f969ad1847a1fa  gcc/testsuite/gcc.c-torture/compile/shand.c
! 030fdd47135f1a1fc92f5db90dcfa921  gcc/testsuite/gcc.c-torture/compile/shft.c
! beef70ea7f725362839f6d3a14f186d7  gcc/testsuite/gcc.c-torture/compile/shift.c
! 5a9e83f43772840b8030314b244eb81b  gcc/testsuite/gcc.c-torture/compile/shloop.c
! 4c994346752020614bc42065fe58b90e  gcc/testsuite/gcc.c-torture/compile/shm.c
! 3aa682d54cc0a5e1ba94005ffb01d160  gcc/testsuite/gcc.c-torture/compile/signext.c
! 0177bd1928c15164e99f86b58a71a2e4  gcc/testsuite/gcc.c-torture/compile/signext2.c
! 84063b39456d5b572dc562d1b274b8d3  gcc/testsuite/gcc.c-torture/compile/sim.c
  8d869e3426345f0cf8837c5eaafd43b5  gcc/testsuite/gcc.c-torture/compile/simd-1.c
  7249a75cf6b955efed52b5ec5cee3a79  gcc/testsuite/gcc.c-torture/compile/simd-2.c
  7eed2e35ab9050f77879918802879f19  gcc/testsuite/gcc.c-torture/compile/simd-3.c
  f1396a13185fb3a1a1f5cb14db6e38a7  gcc/testsuite/gcc.c-torture/compile/simd-4.c
! c21ecf8b47191ba2e8fcee4713f5c247  gcc/testsuite/gcc.c-torture/compile/simd-5.c
  67172ddb2ff19fac5a0ac6e6c7196b60  gcc/testsuite/gcc.c-torture/compile/simd-6.c
! 0434e8d86dc0dc82a37e469f175dfc67  gcc/testsuite/gcc.c-torture/compile/simple.c
  903bd4adff6489c1adfe15407714c642  gcc/testsuite/gcc.c-torture/compile/sizeof-macros-1.c
! 6627abe7e269f0bbaf995cb61aaaa1be  gcc/testsuite/gcc.c-torture/compile/sne.c
! 0c780380805f0eeafd3a3c4da38a12dd  gcc/testsuite/gcc.c-torture/compile/sound.c
! c408e165548dec88f27bc53b27bf4995  gcc/testsuite/gcc.c-torture/compile/sparcbug.c
! 042e0dce252efd06f606963190e73ff7  gcc/testsuite/gcc.c-torture/compile/speed.c
  68c4756a5e6657f7df9a8a02d6dda55e  gcc/testsuite/gcc.c-torture/compile/sra-1.c
  1fb17fb58efa11a8c2d892a6946321bc  gcc/testsuite/gcc.c-torture/compile/ssa-pre-1.c
  4244c9cfe127bb336d948adca93fc3fc  gcc/testsuite/gcc.c-torture/compile/ssa-unused-1.c
  5a331624fdc7e78c66ac23a5954db625  gcc/testsuite/gcc.c-torture/compile/stack-check-1.c
  49fbb3c50078b64b22ced2e9db241130  gcc/testsuite/gcc.c-torture/compile/statement-expression-1.c
! 469494f04a92dcb0521233344f967fb1  gcc/testsuite/gcc.c-torture/compile/stor.c
! cb70ff4931e14763119b7ed3f57d6e3e  gcc/testsuite/gcc.c-torture/compile/store0.c
! f367dd100e9961a096a666b2a73fe78b  gcc/testsuite/gcc.c-torture/compile/storecc.c
! 0960d8b0b59bbb044f6dbdc934574277  gcc/testsuite/gcc.c-torture/compile/str.c
! 5d1035deec0981a1814fde29866b924e  gcc/testsuite/gcc.c-torture/compile/strcpy-1.c
  1fbbf5f7119fe4a75055f96e899b3d3b  gcc/testsuite/gcc.c-torture/compile/strcpy-2.c
  836996a3564a32fa4b43e855a731d588  gcc/testsuite/gcc.c-torture/compile/string-large-1.c
! c92d1709e73e084394d6c1a17c961ce0  gcc/testsuite/gcc.c-torture/compile/stru.c
  f4772e6c906520190f7700ef4c4a9dd7  gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c
  40337004510b6e09c7e3abfbdce53cb9  gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c
  be6e57b38137101675705c04949f38a6  gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c
! d53a668c2d681f0d3159059a92d2f8d4  gcc/testsuite/gcc.c-torture/compile/structret.c
  8b44716999810175c4e2a77db5bc9a4a  gcc/testsuite/gcc.c-torture/compile/structs.c
! e1141d8e96aa52a319d5e1cc3c192cfb  gcc/testsuite/gcc.c-torture/compile/stuct.c
! 11258d6dcdaa0a75ec11332d773165ae  gcc/testsuite/gcc.c-torture/compile/sub32.c
! 3e1377f3a250b397735c17b54fd4b4f1  gcc/testsuite/gcc.c-torture/compile/subcc.c
! 19f38a912dd28a8df20ef7ebaa0272cf  gcc/testsuite/gcc.c-torture/compile/subcse.c
  f10de67b7095d8750e39553e60e96bc1  gcc/testsuite/gcc.c-torture/compile/switch-1.c
! 070ee143ae1cb851dfa6dc2e1c927a7a  gcc/testsuite/gcc.c-torture/compile/sym.c
! 8db4532d154f5206de6ccf8618044cc2  gcc/testsuite/gcc.c-torture/compile/symconst.c
  fc605e204305f11038b4479a0bd3cfd4  gcc/testsuite/gcc.c-torture/compile/sync-1.c
  7ff908bb012c1d3bf80d02085994894f  gcc/testsuite/gcc.c-torture/compile/sync-2.c
  cc5b2244536f94720017f03b7e865d3f  gcc/testsuite/gcc.c-torture/compile/sync-3.c
! 2c5ede7770f9138b2305993f55c337b8  gcc/testsuite/gcc.c-torture/compile/t.c
! 00ea8fe47884b37e7a9898a428fd670c  gcc/testsuite/gcc.c-torture/compile/test-flow.c
! 0cc9cccf829f0c75ee673cf4067f1f4e  gcc/testsuite/gcc.c-torture/compile/test-loop.c
! 698d2b3713ec1abe83827f8e79b63d47  gcc/testsuite/gcc.c-torture/compile/test.c
! 5826cb03636018054eef3a7e286fd81e  gcc/testsuite/gcc.c-torture/compile/time.c
! 9456a4459ae510cfe281c31fc26d8d30  gcc/testsuite/gcc.c-torture/compile/tmp.c
! e9e166cf7d4062ab63f2feef857eb295  gcc/testsuite/gcc.c-torture/compile/trivial.c
! cb390e8a024c191804076580e9f61f83  gcc/testsuite/gcc.c-torture/compile/trunc.c
  4302abbf3d54b15c2bf82ee3a5edb560  gcc/testsuite/gcc.c-torture/compile/trunctfdf.c
! de022ab35a3dc15f95e8e1bfeb1c1505  gcc/testsuite/gcc.c-torture/compile/u.c
  532f6bad09c5871261ff7151b3c75d77  gcc/testsuite/gcc.c-torture/compile/udconvert.c
! 85f6133740c4afe1d2653876be670398  gcc/testsuite/gcc.c-torture/compile/udivmod4.c
! 1525d44018a74c32485274dbb29c0e94  gcc/testsuite/gcc.c-torture/compile/unalign-1.c
! 65e0f6e55b7de37bb749e6de7f98e42d  gcc/testsuite/gcc.c-torture/compile/uns.c
! b3ed8a026c33f0ead2921fe76be1324b  gcc/testsuite/gcc.c-torture/compile/uns_tst.c
! e73d1e5098133f5d8bf19fd63aa2e341  gcc/testsuite/gcc.c-torture/compile/uuarg.c
! 0b48746907f7583e765c4cd626721157  gcc/testsuite/gcc.c-torture/compile/v.c
  4450012fff2b6148907f441d6d7aa6c5  gcc/testsuite/gcc.c-torture/compile/vector-1.c
  7237d30740990e46cb31dd5f61440cc3  gcc/testsuite/gcc.c-torture/compile/vector-2.c
  45318324c3cc4053b8264b324cc9042c  gcc/testsuite/gcc.c-torture/compile/vector-3.c
*************** f22fa3d40420e1d3face4986ae537c69  gcc/te
*** 34946,35014 ****
  9c09e33d4176dbc5b3ff3d2143a003f0  gcc/testsuite/gcc.c-torture/compile/vector-shift-1.c
  d15bacdeb3488c9844bef78c3669d147  gcc/testsuite/gcc.c-torture/compile/vla-const-1.c
  967fa88da6ed3bc1aed48cc1d0645240  gcc/testsuite/gcc.c-torture/compile/vla-const-2.c
! c5f3f4df6f7c679e7f264b10b16f1988  gcc/testsuite/gcc.c-torture/compile/volatile-1.c
  2d2b762be5e099983e223b762c364368  gcc/testsuite/gcc.c-torture/compile/w.c
! 1ef9d72af9160ad2a24b200fee9a616c  gcc/testsuite/gcc.c-torture/compile/widechar-1.c
! 9143d3421de7410471d1fc8aa95bda32  gcc/testsuite/gcc.c-torture/compile/ww.c
! 031e70132abbb19af0e1cbb44ffb8fd0  gcc/testsuite/gcc.c-torture/compile/x.c
! 63c421c29a1ac250434874d6d19f31b4  gcc/testsuite/gcc.c-torture/compile/xb.c
  e847de19b6b78c02ceb7ae47a380795f  gcc/testsuite/gcc.c-torture/compile/xbg.c
! 78882d12ad01deaab9241dab04995376  gcc/testsuite/gcc.c-torture/compile/xc.c
! 1a6fd1dd3c874da53eaa9b0ea1daebd9  gcc/testsuite/gcc.c-torture/compile/xcsebug.c
! 16ba96847467778f3fc2e5e9c1af75c9  gcc/testsuite/gcc.c-torture/compile/xdi.c
! d20c74da05420dfc07174ed79ec0b445  gcc/testsuite/gcc.c-torture/compile/xfoo.c
! 4b7b359972ded57392ab949f3d0d998f  gcc/testsuite/gcc.c-torture/compile/xi.c
! a896ee2a31d184fe81dccc20a761fa47  gcc/testsuite/gcc.c-torture/compile/xlop.c
! fdc0d9c1c5e9e8f82e787c7cdedc70b5  gcc/testsuite/gcc.c-torture/compile/xmtst.c
! af9170018fd3023c7ad505430d82d48d  gcc/testsuite/gcc.c-torture/compile/xneg.c
! 679f356b5945fda131f72b9e5afc546d  gcc/testsuite/gcc.c-torture/compile/xopt.c
! d8fa8929773b3d0a219154f7b8e2e6ba  gcc/testsuite/gcc.c-torture/compile/xor.c
! 9b1c5051d8ea476f128dd5c4ff43bd45  gcc/testsuite/gcc.c-torture/compile/xorn.c
! 7af981705dd3e59869974d5244f7f3f3  gcc/testsuite/gcc.c-torture/compile/xp.c
! 398486bfb15522684b0c8831b3fd8341  gcc/testsuite/gcc.c-torture/compile/xpp.c
! 2621aaf5f1147278e523051100fbcd04  gcc/testsuite/gcc.c-torture/compile/xs.c
! 395dfc415451aed657d13e7345c7b28b  gcc/testsuite/gcc.c-torture/compile/xsh.c
! 9cf7a3068c700491f342f8ca3665ff6b  gcc/testsuite/gcc.c-torture/compile/xz.c
! d6316deebf3ef6e8f24035468ac56c3e  gcc/testsuite/gcc.c-torture/compile/xzz.c
! 23fa527de0eafadc4af7f584cd169efb  gcc/testsuite/gcc.c-torture/compile/zero-strct-1.c
  ddfe708c685b6dbb3a53a377d0ad1535  gcc/testsuite/gcc.c-torture/compile/zero-strct-2.c
  362bb0eab79cf02864dbbc1b53b9f5ae  gcc/testsuite/gcc.c-torture/compile/zero-strct-3.c
  3252a09517e422da5ac02d8760d1e0d1  gcc/testsuite/gcc.c-torture/compile/zero-strct-4.c
  af784b3654ec912b1f5b529108ab0279  gcc/testsuite/gcc.c-torture/compile/zero-strct-5.c
! e35cff309990268916661efccac6de79  gcc/testsuite/gcc.c-torture/execute/20000112-1.c
! 8d3be1f60b246654cee94b3f78d26aee  gcc/testsuite/gcc.c-torture/execute/20000113-1.c
  bd6be98b7d9f77ee196cd000932cb8ad  gcc/testsuite/gcc.c-torture/execute/20000121-1.c
! ea99a38de304ab5643548942730549f7  gcc/testsuite/gcc.c-torture/execute/20000205-1.c
! 04e57bb64ed481a013c74426320a2526  gcc/testsuite/gcc.c-torture/execute/20000217-1.c
! 5c06035fca661b2b66e51af6637b0a64  gcc/testsuite/gcc.c-torture/execute/20000223-1.c
! 2cb15c2892bd47871256429e6b5f0783  gcc/testsuite/gcc.c-torture/execute/20000224-1.c
! 7fc6e4315eb2c88b152ac70b841fff35  gcc/testsuite/gcc.c-torture/execute/20000225-1.c
! fe59a7e50658654d83e5728b7c506287  gcc/testsuite/gcc.c-torture/execute/20000227-1.c
! d7bd71d11139b4ba49be16ecc41062d7  gcc/testsuite/gcc.c-torture/execute/20000313-1.c
! 25266030ad5c753c5d88f82a88321a06  gcc/testsuite/gcc.c-torture/execute/20000314-1.c
! c53dd1cc62cbcf9d6d37a56dfa96a5d7  gcc/testsuite/gcc.c-torture/execute/20000314-2.c
! 75bdc31de047118123294122b1c66d2f  gcc/testsuite/gcc.c-torture/execute/20000314-3.c
! bdfd249348e3d8ef814da32faf1617f0  gcc/testsuite/gcc.c-torture/execute/20000402-1.c
! e2ce882650cc3975588dac831f9bbafb  gcc/testsuite/gcc.c-torture/execute/20000403-1.c
! 3a448e7926372d280817ca3a89d59980  gcc/testsuite/gcc.c-torture/execute/20000412-1.c
! 89fd098d83e3d185a08b93f2c00ddd6d  gcc/testsuite/gcc.c-torture/execute/20000412-2.c
! 292e733e7d2d0ac079dd6de3c32525c6  gcc/testsuite/gcc.c-torture/execute/20000412-3.c
! 897ea5dbeca1d585f30fc44be169aae8  gcc/testsuite/gcc.c-torture/execute/20000412-4.c
! abd8dae0845e9afb3ea67d79fd7d1f2f  gcc/testsuite/gcc.c-torture/execute/20000412-5.c
! a9e7563131fe8c1f51b0243cf22daf75  gcc/testsuite/gcc.c-torture/execute/20000412-6.c
! 971a111b347fd37c567d1cc035955596  gcc/testsuite/gcc.c-torture/execute/20000419-1.c
! ec1445a5ce7b38584ebd159deb3d284f  gcc/testsuite/gcc.c-torture/execute/20000422-1.c
! e7ec99feb0b91cc3fb500621e5f495d4  gcc/testsuite/gcc.c-torture/execute/20000503-1.c
! 03889d6133cb7c92de5257044c13b2b2  gcc/testsuite/gcc.c-torture/execute/20000511-1.c
! 1a873943f10810cf251d7f4737408c96  gcc/testsuite/gcc.c-torture/execute/20000519-1.c
! 01e06c4ebc3b55cdddbf337a39e957af  gcc/testsuite/gcc.c-torture/execute/20000519-2.c
! 111947bebf12722fb85e81e4a3c454d9  gcc/testsuite/gcc.c-torture/execute/20000523-1.c
! 10866d7d8a73bd72f7bc55f739a39f01  gcc/testsuite/gcc.c-torture/execute/20000528-1.c
! 0104efb8c02c627cc52a9a807747ebc2  gcc/testsuite/gcc.c-torture/execute/20000603-1.c
! 989132c007055e84166591d1f8c72f4f  gcc/testsuite/gcc.c-torture/execute/20000605-1.c
! 3443d4a5e40aa2bbb94575e5eeabe287  gcc/testsuite/gcc.c-torture/execute/20000605-2.c
! fdc979c6274783eeafedf96c4e5b60e0  gcc/testsuite/gcc.c-torture/execute/20000605-3.c
! 8c315293deb3db07b6fadb9c3e67c255  gcc/testsuite/gcc.c-torture/execute/20000622-1.c
  431b0d458f48b6f19b23af4a0398b271  gcc/testsuite/gcc.c-torture/execute/20000703-1.c
  811534ac38d32f43dee0ea6692ab4acc  gcc/testsuite/gcc.c-torture/execute/20000706-1.c
  373d22e1d8c25870c4002db9b1867444  gcc/testsuite/gcc.c-torture/execute/20000706-2.c
--- 37045,37113 ----
  9c09e33d4176dbc5b3ff3d2143a003f0  gcc/testsuite/gcc.c-torture/compile/vector-shift-1.c
  d15bacdeb3488c9844bef78c3669d147  gcc/testsuite/gcc.c-torture/compile/vla-const-1.c
  967fa88da6ed3bc1aed48cc1d0645240  gcc/testsuite/gcc.c-torture/compile/vla-const-2.c
! 04b2737b3df76aa6529bf6c98beb714d  gcc/testsuite/gcc.c-torture/compile/volatile-1.c
  2d2b762be5e099983e223b762c364368  gcc/testsuite/gcc.c-torture/compile/w.c
! f8c15eb492bac5ea155e2d9410ca8ad0  gcc/testsuite/gcc.c-torture/compile/widechar-1.c
! f4585c167bb7786c5f7ad368b7bf03e1  gcc/testsuite/gcc.c-torture/compile/ww.c
! fc69b51277fb722f61e4493e2b0bed54  gcc/testsuite/gcc.c-torture/compile/x.c
! cb3a5e9d03f28e39f24a6d36ed98d4da  gcc/testsuite/gcc.c-torture/compile/xb.c
  e847de19b6b78c02ceb7ae47a380795f  gcc/testsuite/gcc.c-torture/compile/xbg.c
! cb2a2100b9cc97196a5a26a8c64f8a29  gcc/testsuite/gcc.c-torture/compile/xc.c
! bf50058164e8577bf36e2d41d0ccaffa  gcc/testsuite/gcc.c-torture/compile/xcsebug.c
! 24d9299439e7cab9330b3039caa0fa41  gcc/testsuite/gcc.c-torture/compile/xdi.c
! 303604fb54052d5d4499d01c9ea576b4  gcc/testsuite/gcc.c-torture/compile/xfoo.c
! 990bff70699d0944e20ec1c28e4545cc  gcc/testsuite/gcc.c-torture/compile/xi.c
! 64be448a773ca8ae773da03698d56c2a  gcc/testsuite/gcc.c-torture/compile/xlop.c
! 1feebea0734f98636569019888343f0b  gcc/testsuite/gcc.c-torture/compile/xmtst.c
! 336f00b46cc8a6b2902480866bd19864  gcc/testsuite/gcc.c-torture/compile/xneg.c
! df8aa2bf3a9f997a2b6f5289c40fb51b  gcc/testsuite/gcc.c-torture/compile/xopt.c
! d4a69431d00bd4800ff26ad7da859d99  gcc/testsuite/gcc.c-torture/compile/xor.c
! a3793374ad48472fe8b24db970b3f507  gcc/testsuite/gcc.c-torture/compile/xorn.c
! 41c5411621698ac82134687759ff5175  gcc/testsuite/gcc.c-torture/compile/xp.c
! 62abe8573fd8f2b37009adc82c2490b9  gcc/testsuite/gcc.c-torture/compile/xpp.c
! b2c4cb5261fa34ad680f229c2aea5120  gcc/testsuite/gcc.c-torture/compile/xs.c
! ab483a0b5861d5e42277e5c5555011d7  gcc/testsuite/gcc.c-torture/compile/xsh.c
! a4f389c4b26fead7e13f85145cd2094d  gcc/testsuite/gcc.c-torture/compile/xz.c
! 309afeae3d5d909db12b3932f6b79e0b  gcc/testsuite/gcc.c-torture/compile/xzz.c
! fb863d3f87145c800de400a9279e1979  gcc/testsuite/gcc.c-torture/compile/zero-strct-1.c
  ddfe708c685b6dbb3a53a377d0ad1535  gcc/testsuite/gcc.c-torture/compile/zero-strct-2.c
  362bb0eab79cf02864dbbc1b53b9f5ae  gcc/testsuite/gcc.c-torture/compile/zero-strct-3.c
  3252a09517e422da5ac02d8760d1e0d1  gcc/testsuite/gcc.c-torture/compile/zero-strct-4.c
  af784b3654ec912b1f5b529108ab0279  gcc/testsuite/gcc.c-torture/compile/zero-strct-5.c
! 519e9e4d4e854613027fa257e102c7a3  gcc/testsuite/gcc.c-torture/execute/20000112-1.c
! 6585c198f8e97a00556d6ffe0850ac33  gcc/testsuite/gcc.c-torture/execute/20000113-1.c
  bd6be98b7d9f77ee196cd000932cb8ad  gcc/testsuite/gcc.c-torture/execute/20000121-1.c
! da0a7785d7e0c86c8c6d08e910623d0f  gcc/testsuite/gcc.c-torture/execute/20000205-1.c
! 33ec2ad5b5b85bb3b005a105758c7d71  gcc/testsuite/gcc.c-torture/execute/20000217-1.c
! c047337647ac5192788a9bf8adcf98b5  gcc/testsuite/gcc.c-torture/execute/20000223-1.c
! 2e314f0d8f183be101e54623318ad2a9  gcc/testsuite/gcc.c-torture/execute/20000224-1.c
! 3826014f8e32066542965e3fd7aab1e8  gcc/testsuite/gcc.c-torture/execute/20000225-1.c
! c092bac091ae776f4a19a9d259c40b34  gcc/testsuite/gcc.c-torture/execute/20000227-1.c
! 051eb485409bbdd79966abae83a577b9  gcc/testsuite/gcc.c-torture/execute/20000313-1.c
! f9a9d9fe3a2c52c6e3f2a1159a9710d9  gcc/testsuite/gcc.c-torture/execute/20000314-1.c
! ae18a786acf63026a825cd7b4d3e38b9  gcc/testsuite/gcc.c-torture/execute/20000314-2.c
! 0f2e33c35bf0d68ae22ac3a8641c49d3  gcc/testsuite/gcc.c-torture/execute/20000314-3.c
! 8070d1427820aa5e4d3d1a1abd3ebd0f  gcc/testsuite/gcc.c-torture/execute/20000402-1.c
! 30029d8b88d174da3193b1d53da57605  gcc/testsuite/gcc.c-torture/execute/20000403-1.c
! 7c26951cb7a6b22c7f10fb4fea256809  gcc/testsuite/gcc.c-torture/execute/20000412-1.c
! 91d03885b16ab02c1584917cd8fcc409  gcc/testsuite/gcc.c-torture/execute/20000412-2.c
! af437660f7e4b15b1670cf4e22ef049a  gcc/testsuite/gcc.c-torture/execute/20000412-3.c
! 9af4096dbba4900e1b778586f7137cd4  gcc/testsuite/gcc.c-torture/execute/20000412-4.c
! 58d458af36bbaaef7069581dfbe775c2  gcc/testsuite/gcc.c-torture/execute/20000412-5.c
! e41d6ffbe4010ccd4eab86a1bb51eeef  gcc/testsuite/gcc.c-torture/execute/20000412-6.c
! 8c4b003d2f7a7ee55874b86b956b0b31  gcc/testsuite/gcc.c-torture/execute/20000419-1.c
! f3f723ea6b5f87d0ab5c891eff9fec15  gcc/testsuite/gcc.c-torture/execute/20000422-1.c
! 56a16fb2b2a8627531c2253792850d4f  gcc/testsuite/gcc.c-torture/execute/20000503-1.c
! 8584b6941f636e1b2886ffc39c7c67c1  gcc/testsuite/gcc.c-torture/execute/20000511-1.c
! c5b2bf404ad8615437d6c3392218caff  gcc/testsuite/gcc.c-torture/execute/20000519-1.c
! 055f84159dfa38e295d6b4fcf72067d9  gcc/testsuite/gcc.c-torture/execute/20000519-2.c
! 049b939810bac02daec5c1f727abeadc  gcc/testsuite/gcc.c-torture/execute/20000523-1.c
! 5761a97f8be00c5c206fbacaa27706e7  gcc/testsuite/gcc.c-torture/execute/20000528-1.c
! b176316188aa74c2b8e6f6c56256f987  gcc/testsuite/gcc.c-torture/execute/20000603-1.c
! 7837c3ac9bc8442e1171dc7b75720e90  gcc/testsuite/gcc.c-torture/execute/20000605-1.c
! d87c83dea0046f1bf75c24c2617671b2  gcc/testsuite/gcc.c-torture/execute/20000605-2.c
! 92ddefc8aff680d14e9faf30f9d609fb  gcc/testsuite/gcc.c-torture/execute/20000605-3.c
! d38cacd5c88239844745b19128a21c56  gcc/testsuite/gcc.c-torture/execute/20000622-1.c
  431b0d458f48b6f19b23af4a0398b271  gcc/testsuite/gcc.c-torture/execute/20000703-1.c
  811534ac38d32f43dee0ea6692ab4acc  gcc/testsuite/gcc.c-torture/execute/20000706-1.c
  373d22e1d8c25870c4002db9b1867444  gcc/testsuite/gcc.c-torture/execute/20000706-2.c
*************** d2767eea5fe86dad935876bb175148ae  gcc/te
*** 35018,35114 ****
  f031e736d5621db63318b424a4cda421  gcc/testsuite/gcc.c-torture/execute/20000707-1.c
  1cb861760d875dbc7969eba6526fae84  gcc/testsuite/gcc.c-torture/execute/20000715-1.c
  f498264177e4d3fbc9ee2b1d5199477b  gcc/testsuite/gcc.c-torture/execute/20000715-2.c
! 2217428e26eac61de763d9d9cac303b4  gcc/testsuite/gcc.c-torture/execute/20000717-1.c
! 3a9e211f99eb5fef1c82ac940ee9b730  gcc/testsuite/gcc.c-torture/execute/20000717-2.c
! 316227662bbffe7e8f094f8bd7575f37  gcc/testsuite/gcc.c-torture/execute/20000717-3.c
  a832eba401a23e8896dad75d3fa464b3  gcc/testsuite/gcc.c-torture/execute/20000717-4.c
! dbc83913ddd76007552f991ac448a9dc  gcc/testsuite/gcc.c-torture/execute/20000717-5.c
! 4811de796a21502399942460e5ee612d  gcc/testsuite/gcc.c-torture/execute/20000722-1.c
! 46cfbc090ebb660ac231f2e90fa5285b  gcc/testsuite/gcc.c-torture/execute/20000726-1.c
! cb8bc3bb4dbb5521e69bdd08d16d1de4  gcc/testsuite/gcc.c-torture/execute/20000731-1.c
! 109ba0d788b4cdf895dcbaf657764b79  gcc/testsuite/gcc.c-torture/execute/20000731-2.c
  4f57bb1a6bf9b84725397b20d590b22a  gcc/testsuite/gcc.c-torture/execute/20000801-1.c
  edaa85577276110de4db2ab9b77627eb  gcc/testsuite/gcc.c-torture/execute/20000801-2.c
! 8321544a31b29a32f15ce1ad9b1b5321  gcc/testsuite/gcc.c-torture/execute/20000801-3.c
! 5aeed87a477149bb4ae1c285f22bae40  gcc/testsuite/gcc.c-torture/execute/20000801-4.c
! 95f8567d99afaf4f3440342e91463912  gcc/testsuite/gcc.c-torture/execute/20000808-1.c
! f53a3dde45d23ac2a99814a9bbb5e717  gcc/testsuite/gcc.c-torture/execute/20000815-1.c
! 43de20a08cadc74431ab343056be6f4d  gcc/testsuite/gcc.c-torture/execute/20000818-1.c
! 01ea9c9c802e733916ab9e2d3e4e1d9c  gcc/testsuite/gcc.c-torture/execute/20000819-1.c
! e0633ab05ebac3626fe16b36f92fa98e  gcc/testsuite/gcc.c-torture/execute/20000822-1.c
  609e7acb7aa1bee1a79ff716a4998996  gcc/testsuite/gcc.c-torture/execute/20000910-1.c
  f5b504992a1fee57eaa99016aa4daf43  gcc/testsuite/gcc.c-torture/execute/20000910-2.c
! bb1998ea93150680a4262d3f585d6159  gcc/testsuite/gcc.c-torture/execute/20000914-1.c
! 070d14e2668860b160aee2cfa272fe28  gcc/testsuite/gcc.c-torture/execute/20000917-1.c
! e3e56843ac6c9b3fe1e282da65c47b0b  gcc/testsuite/gcc.c-torture/execute/20001009-1.c
! aa8ab90ab76f86bce33c60368ef636ee  gcc/testsuite/gcc.c-torture/execute/20001009-2.c
  a70888ccca100198db0a6cc16e495713  gcc/testsuite/gcc.c-torture/execute/20001011-1.c
! 223d3fe98bc08d440554e1d118191f3b  gcc/testsuite/gcc.c-torture/execute/20001013-1.c
! d24c6c108e3b806c69178e18680b14a8  gcc/testsuite/gcc.c-torture/execute/20001017-1.c
! 6200eb8b3aeb1b19d8c1df94955157b8  gcc/testsuite/gcc.c-torture/execute/20001017-2.c
! c4fbded6693e2578bebfdd18d19335a1  gcc/testsuite/gcc.c-torture/execute/20001024-1.c
  f310aee244c75919834acae470810233  gcc/testsuite/gcc.c-torture/execute/20001026-1.c
! c0d066200824f8dcc1064a97c7a5b6f4  gcc/testsuite/gcc.c-torture/execute/20001027-1.c
! e9525c90fe5179d4cf89873c0a7b6e23  gcc/testsuite/gcc.c-torture/execute/20001031-1.c
! 1fff94a2c2c0fa72850f76dae774b7b2  gcc/testsuite/gcc.c-torture/execute/20001101.c
! 92a88aee4d58bc20336023f76f3c14b6  gcc/testsuite/gcc.c-torture/execute/20001108-1.c
! e8fbfc9fa68ac2baee390749d77fb959  gcc/testsuite/gcc.c-torture/execute/20001111-1.c
! d513285285a2325fa40e33149c270988  gcc/testsuite/gcc.c-torture/execute/20001112-1.c
  b129507d1b514c7e42cbebd3d445dfe5  gcc/testsuite/gcc.c-torture/execute/20001121-1.c
! bcae46bc107a4230cf132f94b0b060ac  gcc/testsuite/gcc.c-torture/execute/20001124-1.c
! f0d47d8d94c9cbff34a1bc7e3dd08578  gcc/testsuite/gcc.c-torture/execute/20001130-1.c
! 24bc4541987e2b1e5fd84d2196d377b7  gcc/testsuite/gcc.c-torture/execute/20001130-2.c
  10baa2defdc6e5b5d9744a111853520e  gcc/testsuite/gcc.c-torture/execute/20001203-1.c
! d858632ff352e837903536796998a361  gcc/testsuite/gcc.c-torture/execute/20001203-2.c
! a82cb42fda33ca41a0fc18db06aa5a57  gcc/testsuite/gcc.c-torture/execute/20001221-1.c
! 49a92fb7d052630ce8b7371cb10b830a  gcc/testsuite/gcc.c-torture/execute/20001228-1.c
! abe80c44a5bc04b85d234eb7c7fbd775  gcc/testsuite/gcc.c-torture/execute/20001229-1.c
! 9948a8e097d6375d45b38272843a351b  gcc/testsuite/gcc.c-torture/execute/20010106-1.c
  02b368face603565d55c626a28a3ec05  gcc/testsuite/gcc.c-torture/execute/20010114-1.c
  cebc6706debda777ea94ba2db8a1fd2c  gcc/testsuite/gcc.c-torture/execute/20010116-1.c
! ce85b0136bf58c77366230530b346f23  gcc/testsuite/gcc.c-torture/execute/20010118-1.c
! 428c5c3d30c8987a6760620ee8af51f0  gcc/testsuite/gcc.c-torture/execute/20010119-1.c
  ded96a46b3297222413ab7c2cd5e4e0c  gcc/testsuite/gcc.c-torture/execute/20010122-1.c
  66edac85dc40f361e98d26e0a4b7decd  gcc/testsuite/gcc.c-torture/execute/20010123-1.c
  9140e4c8f5a2d7aaff8db3e98ff5cd36  gcc/testsuite/gcc.c-torture/execute/20010129-1.c
! c18230536067cf8a9040e9ad73bf1e2c  gcc/testsuite/gcc.c-torture/execute/20010206-1.c
! 820ff98d428d0210bd92ae6d72e27e54  gcc/testsuite/gcc.c-torture/execute/20010209-1.c
! 17644ab90711dd889ec01064cccfe876  gcc/testsuite/gcc.c-torture/execute/20010221-1.c
! ac7f18dd90a63689b43cfa3f5faa07ee  gcc/testsuite/gcc.c-torture/execute/20010222-1.c
  6b3f56a019a8286ca6be121d681a23cc  gcc/testsuite/gcc.c-torture/execute/20010224-1.c
  84946c88ab69e881ba87468932a2d2d4  gcc/testsuite/gcc.c-torture/execute/20010325-1.c
! dfc6c937bc9ddea36022ca2c6a7c24e6  gcc/testsuite/gcc.c-torture/execute/20010329-1.c
! 412dc5ba03f9f6ad30ca6b571b66b97e  gcc/testsuite/gcc.c-torture/execute/20010403-1.c
! b3bdd9169ba636f4a23cefb08384bbeb  gcc/testsuite/gcc.c-torture/execute/20010409-1.c
! 58c8ec02c108b39ff48a197723440cb0  gcc/testsuite/gcc.c-torture/execute/20010422-1.c
! 6dfbcad43b4ce327c61ae29cdb0d643a  gcc/testsuite/gcc.c-torture/execute/20010518-1.c
! 27f83745feda3c9c0cbd0e09af32d8b4  gcc/testsuite/gcc.c-torture/execute/20010518-2.c
! d996361f004a8f33ed60fd523746bdfa  gcc/testsuite/gcc.c-torture/execute/20010520-1.c
! 1d826ce37c35665179c9829167251636  gcc/testsuite/gcc.c-torture/execute/20010604-1.c
  5bc96e1e637a3d7b2220054d285affca  gcc/testsuite/gcc.c-torture/execute/20010605-1.c
! ee02c6d781ec229eeebb3c1a5f826bff  gcc/testsuite/gcc.c-torture/execute/20010605-2.c
! bc996514739e74e3354ec57d0bd073cb  gcc/testsuite/gcc.c-torture/execute/20010711-1.c
  7f4ea0a812a4de88b8ae52bfa28840c4  gcc/testsuite/gcc.c-torture/execute/20010717-1.c
! 319f55de383db7b1ac3e3f9373252312  gcc/testsuite/gcc.c-torture/execute/20010723-1.c
! cde6a0c81dd52a36a0ee659b413f2550  gcc/testsuite/gcc.c-torture/execute/20010904-1.c
! 2d89fd99d11115afdf4eb5502249599e  gcc/testsuite/gcc.c-torture/execute/20010904-2.c
  ed86614e40654a0ceb2c9a42370eb7b9  gcc/testsuite/gcc.c-torture/execute/20010910-1.c
! 27cf1422b93a5254cb04535126f77cd8  gcc/testsuite/gcc.c-torture/execute/20010915-1.c
! 6bfb42d94c0e6dfe9e15a1e7a5be76ce  gcc/testsuite/gcc.c-torture/execute/20010924-1.c
  be55fbd78d13701936c3319b7a1b96b5  gcc/testsuite/gcc.c-torture/execute/20010925-1.c
  c98a2757d50ecbec44e525f67de09e55  gcc/testsuite/gcc.c-torture/execute/20011008-3.c
  e4e26f8f8666b591e57d27bf4b5b9bed  gcc/testsuite/gcc.c-torture/execute/20011019-1.c
! 63939d16da1a0c4f2d58b24cc8ffb80d  gcc/testsuite/gcc.c-torture/execute/20011024-1.c
! 7b7b9e6841cad2fcd968e8c594afd1b2  gcc/testsuite/gcc.c-torture/execute/20011109-1.c
! 5f5be0eaec919e9799edf51c1543ad18  gcc/testsuite/gcc.c-torture/execute/20011109-2.c
  b10263dcd38b72fb4643fbb9438bad15  gcc/testsuite/gcc.c-torture/execute/20011113-1.c
! a8f82c16682a89e1071e6d9950b93470  gcc/testsuite/gcc.c-torture/execute/20011114-1.c
  23b2071b353143c62fe6673f3d61fcc4  gcc/testsuite/gcc.c-torture/execute/20011115-1.c
! 32c508a36d5ea4cd56e3846badb69bd4  gcc/testsuite/gcc.c-torture/execute/20011121-1.c
! 106cc37a11612918336b88e5db570ecc  gcc/testsuite/gcc.c-torture/execute/20011126-1.c
  c26569f6f1c745de9c47a5dd7c94d4db  gcc/testsuite/gcc.c-torture/execute/20011126-2.c
! baffb81b8e38dc5f794bc6baf633614a  gcc/testsuite/gcc.c-torture/execute/20011128-1.c
! 4d273661692be8cc363c5618f716b48b  gcc/testsuite/gcc.c-torture/execute/20011217-1.c
  584dcfbbf6149c00034f51c4c58cee0a  gcc/testsuite/gcc.c-torture/execute/20011219-1.c
  fa0413c008217ced32baf5f224576181  gcc/testsuite/gcc.c-torture/execute/20011223-1.c
  1a9f789c10cf918f8813de9b8be2f061  gcc/testsuite/gcc.c-torture/execute/20020103-1.c
--- 37117,37213 ----
  f031e736d5621db63318b424a4cda421  gcc/testsuite/gcc.c-torture/execute/20000707-1.c
  1cb861760d875dbc7969eba6526fae84  gcc/testsuite/gcc.c-torture/execute/20000715-1.c
  f498264177e4d3fbc9ee2b1d5199477b  gcc/testsuite/gcc.c-torture/execute/20000715-2.c
! 022f5eec3cca356d485831f5c5688c50  gcc/testsuite/gcc.c-torture/execute/20000717-1.c
! 767e0be27fbade4b352280bf87e66f74  gcc/testsuite/gcc.c-torture/execute/20000717-2.c
! e3f084de67628def6e089ef71f9dd3a9  gcc/testsuite/gcc.c-torture/execute/20000717-3.c
  a832eba401a23e8896dad75d3fa464b3  gcc/testsuite/gcc.c-torture/execute/20000717-4.c
! c2f6828817bc997df1d78db7d7a47344  gcc/testsuite/gcc.c-torture/execute/20000717-5.c
! 3f9979747e18b3771abc14cb7a456f15  gcc/testsuite/gcc.c-torture/execute/20000722-1.c
! 8ce5944c4dd11631c0b80bb29f53aaea  gcc/testsuite/gcc.c-torture/execute/20000726-1.c
! 2b3b2c96f56256a009916738ad5a3f5e  gcc/testsuite/gcc.c-torture/execute/20000731-1.c
! a8bae47340806185583024c50e9eedb5  gcc/testsuite/gcc.c-torture/execute/20000731-2.c
  4f57bb1a6bf9b84725397b20d590b22a  gcc/testsuite/gcc.c-torture/execute/20000801-1.c
  edaa85577276110de4db2ab9b77627eb  gcc/testsuite/gcc.c-torture/execute/20000801-2.c
! 2fe0b2bd97887feaa555f32c8327c80e  gcc/testsuite/gcc.c-torture/execute/20000801-3.c
! 0167affbbaf2181d9af51e0721ac9d7f  gcc/testsuite/gcc.c-torture/execute/20000801-4.c
! 9e407501d6e6b39a473b8dd0e6979284  gcc/testsuite/gcc.c-torture/execute/20000808-1.c
! 690db53fb97130fd68007bada0193801  gcc/testsuite/gcc.c-torture/execute/20000815-1.c
! c2fba5c506d3bfe49106238204a92402  gcc/testsuite/gcc.c-torture/execute/20000818-1.c
! f89d168af4b90fc0bce9a2ea743dab42  gcc/testsuite/gcc.c-torture/execute/20000819-1.c
! acb2539aae74ca94623f6560c4515403  gcc/testsuite/gcc.c-torture/execute/20000822-1.c
  609e7acb7aa1bee1a79ff716a4998996  gcc/testsuite/gcc.c-torture/execute/20000910-1.c
  f5b504992a1fee57eaa99016aa4daf43  gcc/testsuite/gcc.c-torture/execute/20000910-2.c
! 76ddaa5c4a67806b30cd0cf5000a7007  gcc/testsuite/gcc.c-torture/execute/20000914-1.c
! 91889755599d3aee94215ab81d94da2f  gcc/testsuite/gcc.c-torture/execute/20000917-1.c
! 82d4777f9db913f407f8c9d99eb3b4a0  gcc/testsuite/gcc.c-torture/execute/20001009-1.c
! 38b2bdc217de02ea1af45b971e175179  gcc/testsuite/gcc.c-torture/execute/20001009-2.c
  a70888ccca100198db0a6cc16e495713  gcc/testsuite/gcc.c-torture/execute/20001011-1.c
! c3f1240cd2c35dac783387f98254bb93  gcc/testsuite/gcc.c-torture/execute/20001013-1.c
! d8e35b5cde6e06005e16e8eb829cfa93  gcc/testsuite/gcc.c-torture/execute/20001017-1.c
! 864187bedaf0820e59b7784ef32c6d4f  gcc/testsuite/gcc.c-torture/execute/20001017-2.c
! befc3d1bc4a893e37fe93b752b99c023  gcc/testsuite/gcc.c-torture/execute/20001024-1.c
  f310aee244c75919834acae470810233  gcc/testsuite/gcc.c-torture/execute/20001026-1.c
! ffbacfa829c5a49eb01b983551022cf3  gcc/testsuite/gcc.c-torture/execute/20001027-1.c
! cdb4724625ce640db23b7db7af5520c7  gcc/testsuite/gcc.c-torture/execute/20001031-1.c
! 07ca98392d026506f31543182339f592  gcc/testsuite/gcc.c-torture/execute/20001101.c
! 3b945189eb4fe4de089d107c9dae5975  gcc/testsuite/gcc.c-torture/execute/20001108-1.c
! 0f290e2fc975c0ef8d3701f87bbd8874  gcc/testsuite/gcc.c-torture/execute/20001111-1.c
! c80f4a707d8714d3d39728fe915abf96  gcc/testsuite/gcc.c-torture/execute/20001112-1.c
  b129507d1b514c7e42cbebd3d445dfe5  gcc/testsuite/gcc.c-torture/execute/20001121-1.c
! 67e8a293d802fc9336f7614d6d1a6b7a  gcc/testsuite/gcc.c-torture/execute/20001124-1.c
! cfbd9d9cc2566c14724157c4f8056dfd  gcc/testsuite/gcc.c-torture/execute/20001130-1.c
! 42d689ebd76840a4f810ec0384906171  gcc/testsuite/gcc.c-torture/execute/20001130-2.c
  10baa2defdc6e5b5d9744a111853520e  gcc/testsuite/gcc.c-torture/execute/20001203-1.c
! 46aa8a159b5177f2efd1d70c9f7a847b  gcc/testsuite/gcc.c-torture/execute/20001203-2.c
! 1ac6e56b66937d05ba363a58044b451a  gcc/testsuite/gcc.c-torture/execute/20001221-1.c
! 12ac9f0cc94c44dd65dd57e14e7ed2bb  gcc/testsuite/gcc.c-torture/execute/20001228-1.c
! fc4247ee23721d08e5711dbeb49f8d91  gcc/testsuite/gcc.c-torture/execute/20001229-1.c
! edcdda957aad57f47d5f3c750f4254b0  gcc/testsuite/gcc.c-torture/execute/20010106-1.c
  02b368face603565d55c626a28a3ec05  gcc/testsuite/gcc.c-torture/execute/20010114-1.c
  cebc6706debda777ea94ba2db8a1fd2c  gcc/testsuite/gcc.c-torture/execute/20010116-1.c
! 395e2a06a4367599cce70212ec535a4a  gcc/testsuite/gcc.c-torture/execute/20010118-1.c
! cf5decc4a44ba5bb293a6ce41d6b410f  gcc/testsuite/gcc.c-torture/execute/20010119-1.c
  ded96a46b3297222413ab7c2cd5e4e0c  gcc/testsuite/gcc.c-torture/execute/20010122-1.c
  66edac85dc40f361e98d26e0a4b7decd  gcc/testsuite/gcc.c-torture/execute/20010123-1.c
  9140e4c8f5a2d7aaff8db3e98ff5cd36  gcc/testsuite/gcc.c-torture/execute/20010129-1.c
! d2a7ad63ad72c8b647cb51c13c843fba  gcc/testsuite/gcc.c-torture/execute/20010206-1.c
! d6d30746057e5248c5d69fc3a335decb  gcc/testsuite/gcc.c-torture/execute/20010209-1.c
! e67e38fc37453f0fbbd1a8b50e8f0a40  gcc/testsuite/gcc.c-torture/execute/20010221-1.c
! e941d803d1cfca217191a89bfadc4c42  gcc/testsuite/gcc.c-torture/execute/20010222-1.c
  6b3f56a019a8286ca6be121d681a23cc  gcc/testsuite/gcc.c-torture/execute/20010224-1.c
  84946c88ab69e881ba87468932a2d2d4  gcc/testsuite/gcc.c-torture/execute/20010325-1.c
! 0693aca967f51df07558379762cea9e5  gcc/testsuite/gcc.c-torture/execute/20010329-1.c
! c2df84781d074f525c9c81d229436961  gcc/testsuite/gcc.c-torture/execute/20010403-1.c
! 5c352d6a528a6847263106f5c6400a70  gcc/testsuite/gcc.c-torture/execute/20010409-1.c
! 2a83aabc429d8aa8017f4ce5f7263866  gcc/testsuite/gcc.c-torture/execute/20010422-1.c
! cd118b4c86a029a17c4bd52d36260007  gcc/testsuite/gcc.c-torture/execute/20010518-1.c
! eea861d95fec8e72c7ac80ab6e178301  gcc/testsuite/gcc.c-torture/execute/20010518-2.c
! 74eb8c9ae2d82465a32727083e45386e  gcc/testsuite/gcc.c-torture/execute/20010520-1.c
! 8c6f73d347dd44c96f56ae832578ad8c  gcc/testsuite/gcc.c-torture/execute/20010604-1.c
  5bc96e1e637a3d7b2220054d285affca  gcc/testsuite/gcc.c-torture/execute/20010605-1.c
! 8bf8587b0373e15f31127b17fa8d3b00  gcc/testsuite/gcc.c-torture/execute/20010605-2.c
! 863777eee6b1d2487b7f874dff301630  gcc/testsuite/gcc.c-torture/execute/20010711-1.c
  7f4ea0a812a4de88b8ae52bfa28840c4  gcc/testsuite/gcc.c-torture/execute/20010717-1.c
! 5f3e496b316d8274e0abdb33ee4516c4  gcc/testsuite/gcc.c-torture/execute/20010723-1.c
! 37df9af981c35decd41c5c54201dffba  gcc/testsuite/gcc.c-torture/execute/20010904-1.c
! 78b68bc18dd95bb534ccc203fa71a9e1  gcc/testsuite/gcc.c-torture/execute/20010904-2.c
  ed86614e40654a0ceb2c9a42370eb7b9  gcc/testsuite/gcc.c-torture/execute/20010910-1.c
! 2f688a98420e3526f48061cef906b978  gcc/testsuite/gcc.c-torture/execute/20010915-1.c
! 626dc111f76b9a7ac8db26f92c84d420  gcc/testsuite/gcc.c-torture/execute/20010924-1.c
  be55fbd78d13701936c3319b7a1b96b5  gcc/testsuite/gcc.c-torture/execute/20010925-1.c
  c98a2757d50ecbec44e525f67de09e55  gcc/testsuite/gcc.c-torture/execute/20011008-3.c
  e4e26f8f8666b591e57d27bf4b5b9bed  gcc/testsuite/gcc.c-torture/execute/20011019-1.c
! d0966a0e73e961773d7d6563c18c4aa9  gcc/testsuite/gcc.c-torture/execute/20011024-1.c
! 08a6e491b8c23e4aa705a9ce5f9dfe41  gcc/testsuite/gcc.c-torture/execute/20011109-1.c
! 5e73487b4ee81fdaf644a1167f958384  gcc/testsuite/gcc.c-torture/execute/20011109-2.c
  b10263dcd38b72fb4643fbb9438bad15  gcc/testsuite/gcc.c-torture/execute/20011113-1.c
! f9230fa5bb0b6c493ac310bbb6110f40  gcc/testsuite/gcc.c-torture/execute/20011114-1.c
  23b2071b353143c62fe6673f3d61fcc4  gcc/testsuite/gcc.c-torture/execute/20011115-1.c
! 0198a0a1feb53df36cac1139998c570c  gcc/testsuite/gcc.c-torture/execute/20011121-1.c
! 3d56316745909afe7725ff9eb85bcdfa  gcc/testsuite/gcc.c-torture/execute/20011126-1.c
  c26569f6f1c745de9c47a5dd7c94d4db  gcc/testsuite/gcc.c-torture/execute/20011126-2.c
! 771da807a9adedd0614eb37a45c46118  gcc/testsuite/gcc.c-torture/execute/20011128-1.c
! 5e454388a7fa4add7eb15bb89d7eee28  gcc/testsuite/gcc.c-torture/execute/20011217-1.c
  584dcfbbf6149c00034f51c4c58cee0a  gcc/testsuite/gcc.c-torture/execute/20011219-1.c
  fa0413c008217ced32baf5f224576181  gcc/testsuite/gcc.c-torture/execute/20011223-1.c
  1a9f789c10cf918f8813de9b8be2f061  gcc/testsuite/gcc.c-torture/execute/20020103-1.c
*************** e9d5bde797b0e5c6c1ccb3e791b3d745  gcc/te
*** 35120,35210 ****
  03693fce516a838f0b75aa5e830ede97  gcc/testsuite/gcc.c-torture/execute/20020201-1.c
  13343b61ed03d162d22e0bde4eb01201  gcc/testsuite/gcc.c-torture/execute/20020206-1.c
  89493e817ce0b9aa68218139b4da1ffe  gcc/testsuite/gcc.c-torture/execute/20020206-2.c
! 9e6333b550a05df6db4842e3e30e95d5  gcc/testsuite/gcc.c-torture/execute/20020213-1.c
! 75627bc61b104ffe758702f9de214bd1  gcc/testsuite/gcc.c-torture/execute/20020215-1.c
  9b5da3841235fa39b7071b683a585bbd  gcc/testsuite/gcc.c-torture/execute/20020216-1.c
  7294bbbf3cd0dbf56526f61f3b044844  gcc/testsuite/gcc.c-torture/execute/20020219-1.c
  ac01481b3223714f91b9753c6d745c48  gcc/testsuite/gcc.c-torture/execute/20020225-1.c
! 66e8c543b2054f9ff6e2312d99db8f28  gcc/testsuite/gcc.c-torture/execute/20020225-2.c
! 0ce68759a20e3e977e40045456e2e867  gcc/testsuite/gcc.c-torture/execute/20020226-1.c
! 810cc3650a604edc5247a38eb343a22f  gcc/testsuite/gcc.c-torture/execute/20020227-1.c
! 6faecc7da6371feeb4c6607cdede1549  gcc/testsuite/gcc.c-torture/execute/20020307-1.c
! cf9953d17243c16f51dcf902ea67e9a0  gcc/testsuite/gcc.c-torture/execute/20020314-1.c
  a455f61709435004a057458df1666c32  gcc/testsuite/gcc.c-torture/execute/20020320-1.c
  48585df5243f9cac516eeef8ba4d0f7d  gcc/testsuite/gcc.c-torture/execute/20020321-1.c
! 9779c81464dea11e86a58e0897403bc4  gcc/testsuite/gcc.c-torture/execute/20020328-1.c
  87e635efbe283c3806b83774891cc524  gcc/testsuite/gcc.c-torture/execute/20020402-1.c
  00970a7aaaaa060f83760a13e8d1dfc2  gcc/testsuite/gcc.c-torture/execute/20020402-2.c
  02269773fdb8be5a9c6f5d008a96b4a3  gcc/testsuite/gcc.c-torture/execute/20020402-3.c
! 2e2e667d3775c588bc4f1e8aa85bcdc8  gcc/testsuite/gcc.c-torture/execute/20020404-1.c
! 52ce17eea1669f980b5554b1940fca3a  gcc/testsuite/gcc.c-torture/execute/20020406-1.c
  844df3b97111f6ac1b0a7121302f83ec  gcc/testsuite/gcc.c-torture/execute/20020411-1.c
  e8d7875d7898227ea964bf4bd056d101  gcc/testsuite/gcc.c-torture/execute/20020412-1.c
! a8215909ca75ba2de8b712ec50546a72  gcc/testsuite/gcc.c-torture/execute/20020413-1.c
! 64cca89828188596e8feee0af07c4765  gcc/testsuite/gcc.c-torture/execute/20020418-1.c
  2e13a10b4c41908834dda5baab3bdfaa  gcc/testsuite/gcc.c-torture/execute/20020423-1.c
  1965a3181a8e77f800661fda9d414116  gcc/testsuite/gcc.c-torture/execute/20020503-1.c
  18e40208ded078b4915776262f462988  gcc/testsuite/gcc.c-torture/execute/20020506-1.c
! 5beaf499a33b05eb3e0ea7e834d61455  gcc/testsuite/gcc.c-torture/execute/20020508-1.c
! 2755cc60f989081e26803284c26e05ea  gcc/testsuite/gcc.c-torture/execute/20020508-2.c
! f690039437ad948797f15dfab870025b  gcc/testsuite/gcc.c-torture/execute/20020508-3.c
  96339a02e9e36ee9f85d0371347ef9f5  gcc/testsuite/gcc.c-torture/execute/20020510-1.c
! d80a2d5b8a600eb2b3a89ba434599321  gcc/testsuite/gcc.c-torture/execute/20020529-1.c
! e987501a98035f846cca884465c2ce7d  gcc/testsuite/gcc.c-torture/execute/20020611-1.c
  89b321e3b7d2897085313a540e5ff04c  gcc/testsuite/gcc.c-torture/execute/20020614-1.c
! 4019acc00516d130b1cacae3d5716596  gcc/testsuite/gcc.c-torture/execute/20020615-1.c
! 19d613b789f2ccccb91721f5805578ba  gcc/testsuite/gcc.c-torture/execute/20020619-1.c
  08b5a9d396dcfb91b81b22edeb6cbe0a  gcc/testsuite/gcc.c-torture/execute/20020716-1.c
  75fc13ebd1574057e2708c6c3af7626a  gcc/testsuite/gcc.c-torture/execute/20020720-1.c
  804da6eb201128cfc26d3423d9836f70  gcc/testsuite/gcc.c-torture/execute/20020805-1.c
  a21900002ca05043979b4c3a89cf6462  gcc/testsuite/gcc.c-torture/execute/20020810-1.c
! 1d5072bcbd3eefad5ab33ed0e55ec897  gcc/testsuite/gcc.c-torture/execute/20020819-1.c
! 5a45c24a3407ffcafe0cd58fffd2dbd6  gcc/testsuite/gcc.c-torture/execute/20020904-1.c
  848bcae737e68da4e9a65821626c8d8f  gcc/testsuite/gcc.c-torture/execute/20020911-1.c
! 759321bf53717e65270a18e43c30eaf1  gcc/testsuite/gcc.c-torture/execute/20020916-1.c
  e6cdd500d62c42bcae64a5625a5e1a04  gcc/testsuite/gcc.c-torture/execute/20020920-1.c
! 3ff1938b0326f184e3ef5a8fde41959c  gcc/testsuite/gcc.c-torture/execute/20021010-1.c
! 0791a11a2c8e110a93b4284b159f2306  gcc/testsuite/gcc.c-torture/execute/20021010-2.c
  261d43fcca6d53c738fe34bdf1595eb9  gcc/testsuite/gcc.c-torture/execute/20021011-1.c
  7999c64515d7281ff4bbbe445b03ad5d  gcc/testsuite/gcc.c-torture/execute/20021015-1.c
  858e87a3c29ecb49271284de3c6e306d  gcc/testsuite/gcc.c-torture/execute/20021024-1.c
  1160af4b3fdee19614fd317bca08d84a  gcc/testsuite/gcc.c-torture/execute/20021111-1.c
! b3b259583188360fe99b3299010b8681  gcc/testsuite/gcc.c-torture/execute/20021113-1.c
! e1dcbcd1dff4d92f896e0534c58fdb17  gcc/testsuite/gcc.c-torture/execute/20021118-1.c
! 4cc2fea2537ca3a18ebd141144a8ec66  gcc/testsuite/gcc.c-torture/execute/20021118-2.c
  028286a64da857532691502377b59871  gcc/testsuite/gcc.c-torture/execute/20021118-3.c
  e2af54f1f351f789666bd02d6b6badc8  gcc/testsuite/gcc.c-torture/execute/20021119-1.c
! 5dbda0becc71fc8815f290cb5b2638a1  gcc/testsuite/gcc.c-torture/execute/20021120-1.c
! 550ac7f8f4da9650aedceb2b7feed797  gcc/testsuite/gcc.c-torture/execute/20021120-2.c
! 38272a79c623fcb137827c78b633d5a0  gcc/testsuite/gcc.c-torture/execute/20021120-3.c
  8263e9811a4a695c69b878be62a82939  gcc/testsuite/gcc.c-torture/execute/20021127-1.c
  1c22873030d27412201532aae39ae391  gcc/testsuite/gcc.c-torture/execute/20021204-1.c
  fb4d8e8eeb040ddcd8fe4efccb93678b  gcc/testsuite/gcc.c-torture/execute/20021219-1.c
! 4d98c9f2e5818bffeb1e26fd7f3a226d  gcc/testsuite/gcc.c-torture/execute/20030105-1.c
! 5e76476d0c8a30e5a330f16fd9b60733  gcc/testsuite/gcc.c-torture/execute/20030109-1.c
! 0e8791ec3d46dd24db31a290827afc5d  gcc/testsuite/gcc.c-torture/execute/20030117-1.c
! 13713f4539b686e3b749b564a2b2c124  gcc/testsuite/gcc.c-torture/execute/20030120-1.c
  e6ff244cdc0aef0aa84060d5945a940c  gcc/testsuite/gcc.c-torture/execute/20030120-2.c
! de02653ba8ab80fd44bb21308d5af4d7  gcc/testsuite/gcc.c-torture/execute/20030125-1.c
! da63f701e373e056be45beb4402aff43  gcc/testsuite/gcc.c-torture/execute/20030128-1.c
  a6374d099ffaf8be5bcd17aae9e4371a  gcc/testsuite/gcc.c-torture/execute/20030203-1.c
! 66d2d30f42a946d07d27b4616c14af13  gcc/testsuite/gcc.c-torture/execute/20030209-1.c
! f319cd2aad63022fb1c0b70a1b90d790  gcc/testsuite/gcc.c-torture/execute/20030216-1.c
  da97010d8a7434f25c6eff9dc720a520  gcc/testsuite/gcc.c-torture/execute/20030218-1.c
  e19bd6108d6e03f6557ddc4ca9203ccd  gcc/testsuite/gcc.c-torture/execute/20030221-1.c
! 75c534bf1af37dc46f49734d696f13a7  gcc/testsuite/gcc.c-torture/execute/20030222-1.c
  902149aa570a79ac6207d43a0249ff36  gcc/testsuite/gcc.c-torture/execute/20030224-2.c
  c9f050391fcbef96fd21f19afe8f65de  gcc/testsuite/gcc.c-torture/execute/20030307-1.c
  99d16dcb4641277409c884e5e646995a  gcc/testsuite/gcc.c-torture/execute/20030313-1.c
! 86865016a7e04815aa20c4c479ec6823  gcc/testsuite/gcc.c-torture/execute/20030316-1.c
  fc8eb028d6b8b49bb56d13a99ede5169  gcc/testsuite/gcc.c-torture/execute/20030323-1.c
  33d96b807cd77f10d9422dd98749750f  gcc/testsuite/gcc.c-torture/execute/20030330-1.c
  a9c89fcb4cfd9da50aaea22609bfccf3  gcc/testsuite/gcc.c-torture/execute/20030401-1.c
! c947268ee8cb938dd414bb12a9e643a7  gcc/testsuite/gcc.c-torture/execute/20030403-1.c
! 4b3e166c631937d3e830826d946d3c8e  gcc/testsuite/gcc.c-torture/execute/20030404-1.c
  5bb983b13203168236d604b8b9a63d96  gcc/testsuite/gcc.c-torture/execute/20030408-1.c
! c2c9da451e0b6b9e137b0fe283ac4834  gcc/testsuite/gcc.c-torture/execute/20030501-1.c
! 7fe74a8d75aa88abfb050ecf961fb805  gcc/testsuite/gcc.c-torture/execute/20030606-1.c
  6e6c62a56db47bac30ea6d336496052b  gcc/testsuite/gcc.c-torture/execute/20030613-1.c
  131227f1fe8e52cd86b7a3ac8ea8f33f  gcc/testsuite/gcc.c-torture/execute/20030626-1.c
  067b7ded39308e072ce06fae93b35b13  gcc/testsuite/gcc.c-torture/execute/20030626-2.c
--- 37219,37309 ----
  03693fce516a838f0b75aa5e830ede97  gcc/testsuite/gcc.c-torture/execute/20020201-1.c
  13343b61ed03d162d22e0bde4eb01201  gcc/testsuite/gcc.c-torture/execute/20020206-1.c
  89493e817ce0b9aa68218139b4da1ffe  gcc/testsuite/gcc.c-torture/execute/20020206-2.c
! d212e5e57fdc66ec55abfd6ecd055787  gcc/testsuite/gcc.c-torture/execute/20020213-1.c
! b48d0ed076310e8c92a2c93f807f0dba  gcc/testsuite/gcc.c-torture/execute/20020215-1.c
  9b5da3841235fa39b7071b683a585bbd  gcc/testsuite/gcc.c-torture/execute/20020216-1.c
  7294bbbf3cd0dbf56526f61f3b044844  gcc/testsuite/gcc.c-torture/execute/20020219-1.c
  ac01481b3223714f91b9753c6d745c48  gcc/testsuite/gcc.c-torture/execute/20020225-1.c
! 91be0b8f9b997e3b8350841d113dae8e  gcc/testsuite/gcc.c-torture/execute/20020225-2.c
! 076e9af35223645a6592f67099ae2b8b  gcc/testsuite/gcc.c-torture/execute/20020226-1.c
! 36ccb7ce2ed65a3414d0a06682ac8c22  gcc/testsuite/gcc.c-torture/execute/20020227-1.c
! 11944ca287ee5411e3b6a2d925fa77ee  gcc/testsuite/gcc.c-torture/execute/20020307-1.c
! 7a1a5856f88b6b43bedf36fff357e1d0  gcc/testsuite/gcc.c-torture/execute/20020314-1.c
  a455f61709435004a057458df1666c32  gcc/testsuite/gcc.c-torture/execute/20020320-1.c
  48585df5243f9cac516eeef8ba4d0f7d  gcc/testsuite/gcc.c-torture/execute/20020321-1.c
! 7232be577a1f2ebebc53ed88d0f19db6  gcc/testsuite/gcc.c-torture/execute/20020328-1.c
  87e635efbe283c3806b83774891cc524  gcc/testsuite/gcc.c-torture/execute/20020402-1.c
  00970a7aaaaa060f83760a13e8d1dfc2  gcc/testsuite/gcc.c-torture/execute/20020402-2.c
  02269773fdb8be5a9c6f5d008a96b4a3  gcc/testsuite/gcc.c-torture/execute/20020402-3.c
! 388ff40d24b6695122dc0bbc759fa171  gcc/testsuite/gcc.c-torture/execute/20020404-1.c
! 52507f140b3cc72a9bac8f7c6994e2c2  gcc/testsuite/gcc.c-torture/execute/20020406-1.c
  844df3b97111f6ac1b0a7121302f83ec  gcc/testsuite/gcc.c-torture/execute/20020411-1.c
  e8d7875d7898227ea964bf4bd056d101  gcc/testsuite/gcc.c-torture/execute/20020412-1.c
! f6287140843aa812a2c3fec1d2411984  gcc/testsuite/gcc.c-torture/execute/20020413-1.c
! 7c58b6e71b5d8bdfcaddad22ed6bd60d  gcc/testsuite/gcc.c-torture/execute/20020418-1.c
  2e13a10b4c41908834dda5baab3bdfaa  gcc/testsuite/gcc.c-torture/execute/20020423-1.c
  1965a3181a8e77f800661fda9d414116  gcc/testsuite/gcc.c-torture/execute/20020503-1.c
  18e40208ded078b4915776262f462988  gcc/testsuite/gcc.c-torture/execute/20020506-1.c
! 655cfbfc1e1484fd8b269c33357aafea  gcc/testsuite/gcc.c-torture/execute/20020508-1.c
! d01404bcff9f62cb69ac7e15de728e3e  gcc/testsuite/gcc.c-torture/execute/20020508-2.c
! 63c1b7cee0632d3aa8bd5e51bbf3659b  gcc/testsuite/gcc.c-torture/execute/20020508-3.c
  96339a02e9e36ee9f85d0371347ef9f5  gcc/testsuite/gcc.c-torture/execute/20020510-1.c
! c32dd714128c3bc76f3c63e76da55cd2  gcc/testsuite/gcc.c-torture/execute/20020529-1.c
! 357ddb9bc128cbcfc12508fbe71f8c81  gcc/testsuite/gcc.c-torture/execute/20020611-1.c
  89b321e3b7d2897085313a540e5ff04c  gcc/testsuite/gcc.c-torture/execute/20020614-1.c
! 916459f6dea793fb3fa9edfedf84ee1f  gcc/testsuite/gcc.c-torture/execute/20020615-1.c
! 5731381223faa744c7790966371ab657  gcc/testsuite/gcc.c-torture/execute/20020619-1.c
  08b5a9d396dcfb91b81b22edeb6cbe0a  gcc/testsuite/gcc.c-torture/execute/20020716-1.c
  75fc13ebd1574057e2708c6c3af7626a  gcc/testsuite/gcc.c-torture/execute/20020720-1.c
  804da6eb201128cfc26d3423d9836f70  gcc/testsuite/gcc.c-torture/execute/20020805-1.c
  a21900002ca05043979b4c3a89cf6462  gcc/testsuite/gcc.c-torture/execute/20020810-1.c
! 7ea5f8560d2fe9c19e933dc794d997ec  gcc/testsuite/gcc.c-torture/execute/20020819-1.c
! 3d867162b14ce94f10247e4819fb3b01  gcc/testsuite/gcc.c-torture/execute/20020904-1.c
  848bcae737e68da4e9a65821626c8d8f  gcc/testsuite/gcc.c-torture/execute/20020911-1.c
! e20ae28abed2799ac5e290879ef9cf4f  gcc/testsuite/gcc.c-torture/execute/20020916-1.c
  e6cdd500d62c42bcae64a5625a5e1a04  gcc/testsuite/gcc.c-torture/execute/20020920-1.c
! 163868ee7484b9d05895577c55a5af1a  gcc/testsuite/gcc.c-torture/execute/20021010-1.c
! 5325d1323fd99bc6c2d13f142ce40847  gcc/testsuite/gcc.c-torture/execute/20021010-2.c
  261d43fcca6d53c738fe34bdf1595eb9  gcc/testsuite/gcc.c-torture/execute/20021011-1.c
  7999c64515d7281ff4bbbe445b03ad5d  gcc/testsuite/gcc.c-torture/execute/20021015-1.c
  858e87a3c29ecb49271284de3c6e306d  gcc/testsuite/gcc.c-torture/execute/20021024-1.c
  1160af4b3fdee19614fd317bca08d84a  gcc/testsuite/gcc.c-torture/execute/20021111-1.c
! 40838cd0c2d0d7a1ddac17a60d2a3cdb  gcc/testsuite/gcc.c-torture/execute/20021113-1.c
! f5d6f9a4674c4ba8efb0ed0240f17f2a  gcc/testsuite/gcc.c-torture/execute/20021118-1.c
! 301159066e78c05967bd2eba363a7bf7  gcc/testsuite/gcc.c-torture/execute/20021118-2.c
  028286a64da857532691502377b59871  gcc/testsuite/gcc.c-torture/execute/20021118-3.c
  e2af54f1f351f789666bd02d6b6badc8  gcc/testsuite/gcc.c-torture/execute/20021119-1.c
! da4d86fdf2b051264230d4307ee68bb1  gcc/testsuite/gcc.c-torture/execute/20021120-1.c
! fb84a2fd11d86e90438d77d7bd5702bc  gcc/testsuite/gcc.c-torture/execute/20021120-2.c
! 57c1eba300d715eec79955579d908c55  gcc/testsuite/gcc.c-torture/execute/20021120-3.c
  8263e9811a4a695c69b878be62a82939  gcc/testsuite/gcc.c-torture/execute/20021127-1.c
  1c22873030d27412201532aae39ae391  gcc/testsuite/gcc.c-torture/execute/20021204-1.c
  fb4d8e8eeb040ddcd8fe4efccb93678b  gcc/testsuite/gcc.c-torture/execute/20021219-1.c
! ef1820cf318cbab076708ed0c061e5c4  gcc/testsuite/gcc.c-torture/execute/20030105-1.c
! 3d6a992314cfd811aa7239e0e9d7c263  gcc/testsuite/gcc.c-torture/execute/20030109-1.c
! aac1f6dfc9cd8a3318e7a1ad5048d2cb  gcc/testsuite/gcc.c-torture/execute/20030117-1.c
! facff34a15cd2ce0a5f748802b8a371a  gcc/testsuite/gcc.c-torture/execute/20030120-1.c
  e6ff244cdc0aef0aa84060d5945a940c  gcc/testsuite/gcc.c-torture/execute/20030120-2.c
! 7feeaa608b070712a4c26eecc5a19d82  gcc/testsuite/gcc.c-torture/execute/20030125-1.c
! 1ff645e7ee5a90ef2394b5c94626e115  gcc/testsuite/gcc.c-torture/execute/20030128-1.c
  a6374d099ffaf8be5bcd17aae9e4371a  gcc/testsuite/gcc.c-torture/execute/20030203-1.c
! 7f304850aa9332a73b7e422c8518c919  gcc/testsuite/gcc.c-torture/execute/20030209-1.c
! 5bfab927f4e08e9a34b7801440752447  gcc/testsuite/gcc.c-torture/execute/20030216-1.c
  da97010d8a7434f25c6eff9dc720a520  gcc/testsuite/gcc.c-torture/execute/20030218-1.c
  e19bd6108d6e03f6557ddc4ca9203ccd  gcc/testsuite/gcc.c-torture/execute/20030221-1.c
! 13c99200be29663b7adac62d10518228  gcc/testsuite/gcc.c-torture/execute/20030222-1.c
  902149aa570a79ac6207d43a0249ff36  gcc/testsuite/gcc.c-torture/execute/20030224-2.c
  c9f050391fcbef96fd21f19afe8f65de  gcc/testsuite/gcc.c-torture/execute/20030307-1.c
  99d16dcb4641277409c884e5e646995a  gcc/testsuite/gcc.c-torture/execute/20030313-1.c
! d823299d7bad95c1d5fcfca565ef84aa  gcc/testsuite/gcc.c-torture/execute/20030316-1.c
  fc8eb028d6b8b49bb56d13a99ede5169  gcc/testsuite/gcc.c-torture/execute/20030323-1.c
  33d96b807cd77f10d9422dd98749750f  gcc/testsuite/gcc.c-torture/execute/20030330-1.c
  a9c89fcb4cfd9da50aaea22609bfccf3  gcc/testsuite/gcc.c-torture/execute/20030401-1.c
! cb16a5e16792be7e41d5f46054cf7929  gcc/testsuite/gcc.c-torture/execute/20030403-1.c
! a1f52a0259b39f0db5be985bd68928ac  gcc/testsuite/gcc.c-torture/execute/20030404-1.c
  5bb983b13203168236d604b8b9a63d96  gcc/testsuite/gcc.c-torture/execute/20030408-1.c
! e10a4af19d16e3fc352bd76e7e43ce13  gcc/testsuite/gcc.c-torture/execute/20030501-1.c
! 4dcdb574589255343d012feb4bcddaef  gcc/testsuite/gcc.c-torture/execute/20030606-1.c
  6e6c62a56db47bac30ea6d336496052b  gcc/testsuite/gcc.c-torture/execute/20030613-1.c
  131227f1fe8e52cd86b7a3ac8ea8f33f  gcc/testsuite/gcc.c-torture/execute/20030626-1.c
  067b7ded39308e072ce06fae93b35b13  gcc/testsuite/gcc.c-torture/execute/20030626-2.c
*************** b9c9e263d4826af2bdd8bb43ff57c005  gcc/te
*** 35214,35252 ****
  c9e6e83c42fda89ad40f269108f25f4e  gcc/testsuite/gcc.c-torture/execute/20030718-1.c
  085a562a9dd0c99096107b403492576f  gcc/testsuite/gcc.c-torture/execute/20030811-1.c
  7af51ab6432260b08be01e25d41fde45  gcc/testsuite/gcc.c-torture/execute/20030821-1.c
! 5ea1f7024bf8519dcf3be31fbae58db6  gcc/testsuite/gcc.c-torture/execute/20030828-1.c
! af7944c7866aae21515a5f06750115be  gcc/testsuite/gcc.c-torture/execute/20030828-2.c
! d4590a5db2192faeb099f071bf41b3c4  gcc/testsuite/gcc.c-torture/execute/20030903-1.c
  92c8210b82afec1bdbdc252d6491e3b3  gcc/testsuite/gcc.c-torture/execute/20030909-1.c
! 486d6a4dedd15509dda03949ae9571f8  gcc/testsuite/gcc.c-torture/execute/20030910-1.c
! fb473fd8cefe46cf5769005a5b11db6b  gcc/testsuite/gcc.c-torture/execute/20030913-1.c
! 1c39eb1b275208926435be01b339f5aa  gcc/testsuite/gcc.c-torture/execute/20030914-1.c
! 87a026d2a4d39797e020c422e3a89e92  gcc/testsuite/gcc.c-torture/execute/20030914-2.c
! d3b854d7140a0f549cccd517e0455b09  gcc/testsuite/gcc.c-torture/execute/20030916-1.c
  957ac496a085ef963a4d641eae099951  gcc/testsuite/gcc.c-torture/execute/20030920-1.c
! 91996536f463c1c81c689f60bc4c68ee  gcc/testsuite/gcc.c-torture/execute/20030928-1.c
  90922bc1369cccc337da8d38e2c42221  gcc/testsuite/gcc.c-torture/execute/20031003-1.c
! 6ce0588cdc163a99e8f1fa413dfa4ff3  gcc/testsuite/gcc.c-torture/execute/20031010-1.c
  658d7b3b078715acc0fd17343437d0c8  gcc/testsuite/gcc.c-torture/execute/20031011-1.c
! 320ae0127d85d69c234c8fc7ec6f96bf  gcc/testsuite/gcc.c-torture/execute/20031012-1.c
  7bcc1838a33631276a41e7803ef37416  gcc/testsuite/gcc.c-torture/execute/20031020-1.c
! 4c03997312260fe380664d5e3af9860d  gcc/testsuite/gcc.c-torture/execute/20031201-1.c
! 7123beb9da10b2836d6aa7b0bf261980  gcc/testsuite/gcc.c-torture/execute/20031204-1.c
! 0ce8d612ba08491ba2d35096298229fc  gcc/testsuite/gcc.c-torture/execute/20031211-1.c
! 3c162445735440cab8d3f9fe8e93d2f2  gcc/testsuite/gcc.c-torture/execute/20031211-2.c
  60c726f4af3d2ed139b4742a94557aa8  gcc/testsuite/gcc.c-torture/execute/20031214-1.c
  69b042144871b352104dd81ec8c9fc3e  gcc/testsuite/gcc.c-torture/execute/20031215-1.c
  1bfa072efe73cd1c9cb9c4b1b05dc50b  gcc/testsuite/gcc.c-torture/execute/20031216-1.c
! 2e2ef1e23b38ea98016b1591fc4a85a1  gcc/testsuite/gcc.c-torture/execute/20040208-1.c
! abc17abb932af1032219d68109132095  gcc/testsuite/gcc.c-torture/execute/20040218-1.c
! 47c18062682b3b8a0d99586c8343a5b6  gcc/testsuite/gcc.c-torture/execute/20040223-1.c
  f06d9ad089b622231299d688271388e6  gcc/testsuite/gcc.c-torture/execute/20040302-1.c
! aca6a486b3b9bdeb6c89786f5ece5fd1  gcc/testsuite/gcc.c-torture/execute/20040307-1.c
  63840c495b2d5c509c67d490fcf648c0  gcc/testsuite/gcc.c-torture/execute/20040308-1.c
  04256d17aeb67607ff04cde51744b4a0  gcc/testsuite/gcc.c-torture/execute/20040309-1.c
  7e4b8938e9221a488d2eab7cfc75da92  gcc/testsuite/gcc.c-torture/execute/20040311-1.c
  60f74a250af358450582e43f4cfa84e1  gcc/testsuite/gcc.c-torture/execute/20040313-1.c
! a41b11620b740726ba5c954f369e4c44  gcc/testsuite/gcc.c-torture/execute/20040319-1.c
  1f15bebfdefc714a77e0cc025b144ccc  gcc/testsuite/gcc.c-torture/execute/20040331-1.c
  b20152cf828e1c27c3ac81d85b3933a2  gcc/testsuite/gcc.c-torture/execute/20040409-1.c
  239a2dfc319fef7c849d194fb9f6c6d8  gcc/testsuite/gcc.c-torture/execute/20040409-1w.c
--- 37313,37351 ----
  c9e6e83c42fda89ad40f269108f25f4e  gcc/testsuite/gcc.c-torture/execute/20030718-1.c
  085a562a9dd0c99096107b403492576f  gcc/testsuite/gcc.c-torture/execute/20030811-1.c
  7af51ab6432260b08be01e25d41fde45  gcc/testsuite/gcc.c-torture/execute/20030821-1.c
! 33616158b94b1c83bbeebf089ae0d4aa  gcc/testsuite/gcc.c-torture/execute/20030828-1.c
! 24359b6cc2e3c1841d53a57d89daff5b  gcc/testsuite/gcc.c-torture/execute/20030828-2.c
! b7e2c5b26e1fd74b8e3267942f6ef9f3  gcc/testsuite/gcc.c-torture/execute/20030903-1.c
  92c8210b82afec1bdbdc252d6491e3b3  gcc/testsuite/gcc.c-torture/execute/20030909-1.c
! 72ecb9ce0d11f80d89a7acf4034ea424  gcc/testsuite/gcc.c-torture/execute/20030910-1.c
! 4e7cf69663c9a73c5148321c85931dd3  gcc/testsuite/gcc.c-torture/execute/20030913-1.c
! 877e2bac7458cef76406486e2c5211ef  gcc/testsuite/gcc.c-torture/execute/20030914-1.c
! 459da48339e5ed0882427df53d0786c3  gcc/testsuite/gcc.c-torture/execute/20030914-2.c
! 7f9877735bc2a10ff8c071799aa2dbfa  gcc/testsuite/gcc.c-torture/execute/20030916-1.c
  957ac496a085ef963a4d641eae099951  gcc/testsuite/gcc.c-torture/execute/20030920-1.c
! 285e3016d230806fef6881321bce92d9  gcc/testsuite/gcc.c-torture/execute/20030928-1.c
  90922bc1369cccc337da8d38e2c42221  gcc/testsuite/gcc.c-torture/execute/20031003-1.c
! 39804cc5c015e189d6ebdf598acc0a98  gcc/testsuite/gcc.c-torture/execute/20031010-1.c
  658d7b3b078715acc0fd17343437d0c8  gcc/testsuite/gcc.c-torture/execute/20031011-1.c
! 53a66e7116eed75c77b618dde5de05fb  gcc/testsuite/gcc.c-torture/execute/20031012-1.c
  7bcc1838a33631276a41e7803ef37416  gcc/testsuite/gcc.c-torture/execute/20031020-1.c
! f7362e0f7b389a26cf936e04cb9785a3  gcc/testsuite/gcc.c-torture/execute/20031201-1.c
! 6ebbf234ce6f9599674f1f83730dc7f0  gcc/testsuite/gcc.c-torture/execute/20031204-1.c
! d670346ddde8abc67e8e250c82a622eb  gcc/testsuite/gcc.c-torture/execute/20031211-1.c
! d3180d60caa9c649e766c97c43c27e7d  gcc/testsuite/gcc.c-torture/execute/20031211-2.c
  60c726f4af3d2ed139b4742a94557aa8  gcc/testsuite/gcc.c-torture/execute/20031214-1.c
  69b042144871b352104dd81ec8c9fc3e  gcc/testsuite/gcc.c-torture/execute/20031215-1.c
  1bfa072efe73cd1c9cb9c4b1b05dc50b  gcc/testsuite/gcc.c-torture/execute/20031216-1.c
! 93f2c485575911b733ee54a8dfea765e  gcc/testsuite/gcc.c-torture/execute/20040208-1.c
! 966af08e5f50178a52e0620d09258e6c  gcc/testsuite/gcc.c-torture/execute/20040218-1.c
! 98ab80ef92bb1bffb21e5e0b450456fc  gcc/testsuite/gcc.c-torture/execute/20040223-1.c
  f06d9ad089b622231299d688271388e6  gcc/testsuite/gcc.c-torture/execute/20040302-1.c
! c5c8d184976a5a644d004664597d8470  gcc/testsuite/gcc.c-torture/execute/20040307-1.c
  63840c495b2d5c509c67d490fcf648c0  gcc/testsuite/gcc.c-torture/execute/20040308-1.c
  04256d17aeb67607ff04cde51744b4a0  gcc/testsuite/gcc.c-torture/execute/20040309-1.c
  7e4b8938e9221a488d2eab7cfc75da92  gcc/testsuite/gcc.c-torture/execute/20040311-1.c
  60f74a250af358450582e43f4cfa84e1  gcc/testsuite/gcc.c-torture/execute/20040313-1.c
! 8fd8a4f20135b72f9cd5390d25cee1b0  gcc/testsuite/gcc.c-torture/execute/20040319-1.c
  1f15bebfdefc714a77e0cc025b144ccc  gcc/testsuite/gcc.c-torture/execute/20040331-1.c
  b20152cf828e1c27c3ac81d85b3933a2  gcc/testsuite/gcc.c-torture/execute/20040409-1.c
  239a2dfc319fef7c849d194fb9f6c6d8  gcc/testsuite/gcc.c-torture/execute/20040409-1w.c
*************** b20152cf828e1c27c3ac81d85b3933a2  gcc/te
*** 35254,35289 ****
  8001fedd8967cf9c81b93dda96b0e8e3  gcc/testsuite/gcc.c-torture/execute/20040409-2w.c
  18614797d1d1e797443f196b52cff8e4  gcc/testsuite/gcc.c-torture/execute/20040409-3.c
  eaec6a0ad3a34630e3a29960416617cb  gcc/testsuite/gcc.c-torture/execute/20040409-3w.c
! 603cd8ba58b42dc8630fc0d7ca6532a8  gcc/testsuite/gcc.c-torture/execute/20040411-1.c
! a3291f783bb702e3358147a1dc1d1106  gcc/testsuite/gcc.c-torture/execute/20040423-1.c
  c6d647d2e50c96e234eec4588a33360f  gcc/testsuite/gcc.c-torture/execute/20040520-1.c
! ce05ca87c3350a7ebc954c28bf98202a  gcc/testsuite/gcc.c-torture/execute/20040625-1.c
  dbc9ea672f0f2a463142517a1c56aa15  gcc/testsuite/gcc.c-torture/execute/20040629-1.c
! 9b0aff51e0ac4c8356b350d9829de91b  gcc/testsuite/gcc.c-torture/execute/20040703-1.c
  47b8acc9cb8854495b70eba6ee86241a  gcc/testsuite/gcc.c-torture/execute/20040704-1.c
  a7b258810fe0d84039610650ff52c8d0  gcc/testsuite/gcc.c-torture/execute/20040705-1.c
  66459a7a10255dc26da957b37f1fc670  gcc/testsuite/gcc.c-torture/execute/20040705-2.c
! 727c0d5b054eb9a22b184561112078f2  gcc/testsuite/gcc.c-torture/execute/20040706-1.c
! 14de9340f54e424f581fba266dcc93a8  gcc/testsuite/gcc.c-torture/execute/20040707-1.c
  9313e87987dab2cc39a52afe12e59a64  gcc/testsuite/gcc.c-torture/execute/20040709-1.c
  4c3391745b81160c6956ea5a444c9741  gcc/testsuite/gcc.c-torture/execute/20040709-2.c
  60afe4e2e2885d5ea2eb6fb8faee4070  gcc/testsuite/gcc.c-torture/execute/20040709-3.c
! 73f39f3983baa6c0c7ab30d5f792f818  gcc/testsuite/gcc.c-torture/execute/20040805-1.c
  4e1698f0365b941664586df69c03e4cf  gcc/testsuite/gcc.c-torture/execute/20040811-1.c
  8447ba9c7e53c35ad32e5bab75dd5a68  gcc/testsuite/gcc.c-torture/execute/20040820-1.c
  dc8ef6a2f62bcfea90605a1500ebf16b  gcc/testsuite/gcc.c-torture/execute/20040823-1.c
  695236bbd612182e45f7e5b53bd4ed87  gcc/testsuite/gcc.c-torture/execute/20040831-1.c
! 94c71d01fb9e07bfbc7f7d6459a19a39  gcc/testsuite/gcc.c-torture/execute/20040917-1.c
! 5cac9f96901f8210960993e10e610af8  gcc/testsuite/gcc.c-torture/execute/20041011-1.c
! 7796a37cc480f39bec56898238bbf921  gcc/testsuite/gcc.c-torture/execute/20041019-1.c
  a9e9fda2b801a2197d791f63eb487a27  gcc/testsuite/gcc.c-torture/execute/20041112-1.c
! ff13cc80beb96532eecd54a4912d4ab6  gcc/testsuite/gcc.c-torture/execute/20041113-1.c
  1c59ee76a2b16dfcfa57ab77201a6af1  gcc/testsuite/gcc.c-torture/execute/20041114-1.c
! fcd9459f6a27c5bdf73f229e7f81fe6e  gcc/testsuite/gcc.c-torture/execute/20041124-1.c
  57ca42c345705f29b1c25e55a6c398e8  gcc/testsuite/gcc.c-torture/execute/20041126-1.c
  b3940188294b2f3ab7b5e39eef6361a6  gcc/testsuite/gcc.c-torture/execute/20041201-1.c
! d0769d76778f43714fc4bb0bd77ce183  gcc/testsuite/gcc.c-torture/execute/20041210-1.c
! 222a951a1b83dda356d4ed7822726d68  gcc/testsuite/gcc.c-torture/execute/20041212-1.c
  aabf84059193ef8f079c086fccf5031c  gcc/testsuite/gcc.c-torture/execute/20041213-2.c
  ce807ce369e885edc073a7e9703fb7ea  gcc/testsuite/gcc.c-torture/execute/20041214-1.c
  c844f43572c5d01c372285cea683b3ff  gcc/testsuite/gcc.c-torture/execute/20041218-1.c
--- 37353,37388 ----
  8001fedd8967cf9c81b93dda96b0e8e3  gcc/testsuite/gcc.c-torture/execute/20040409-2w.c
  18614797d1d1e797443f196b52cff8e4  gcc/testsuite/gcc.c-torture/execute/20040409-3.c
  eaec6a0ad3a34630e3a29960416617cb  gcc/testsuite/gcc.c-torture/execute/20040409-3w.c
! 90ed7dfb68c7778d36b27c742ebf888b  gcc/testsuite/gcc.c-torture/execute/20040411-1.c
! 5e0e44e24554e2d3e7cccd7c2e520905  gcc/testsuite/gcc.c-torture/execute/20040423-1.c
  c6d647d2e50c96e234eec4588a33360f  gcc/testsuite/gcc.c-torture/execute/20040520-1.c
! f1fd0af14803d45a719f7393cf572c12  gcc/testsuite/gcc.c-torture/execute/20040625-1.c
  dbc9ea672f0f2a463142517a1c56aa15  gcc/testsuite/gcc.c-torture/execute/20040629-1.c
! c0a212799d0a98683cd06a8f84bef94d  gcc/testsuite/gcc.c-torture/execute/20040703-1.c
  47b8acc9cb8854495b70eba6ee86241a  gcc/testsuite/gcc.c-torture/execute/20040704-1.c
  a7b258810fe0d84039610650ff52c8d0  gcc/testsuite/gcc.c-torture/execute/20040705-1.c
  66459a7a10255dc26da957b37f1fc670  gcc/testsuite/gcc.c-torture/execute/20040705-2.c
! 1c181e517cca4bdbeacd81fb4fc97b87  gcc/testsuite/gcc.c-torture/execute/20040706-1.c
! 3b8b8b51c883fe2fbe387498e2d25753  gcc/testsuite/gcc.c-torture/execute/20040707-1.c
  9313e87987dab2cc39a52afe12e59a64  gcc/testsuite/gcc.c-torture/execute/20040709-1.c
  4c3391745b81160c6956ea5a444c9741  gcc/testsuite/gcc.c-torture/execute/20040709-2.c
  60afe4e2e2885d5ea2eb6fb8faee4070  gcc/testsuite/gcc.c-torture/execute/20040709-3.c
! 5d35651cff21592320269061c056fbfd  gcc/testsuite/gcc.c-torture/execute/20040805-1.c
  4e1698f0365b941664586df69c03e4cf  gcc/testsuite/gcc.c-torture/execute/20040811-1.c
  8447ba9c7e53c35ad32e5bab75dd5a68  gcc/testsuite/gcc.c-torture/execute/20040820-1.c
  dc8ef6a2f62bcfea90605a1500ebf16b  gcc/testsuite/gcc.c-torture/execute/20040823-1.c
  695236bbd612182e45f7e5b53bd4ed87  gcc/testsuite/gcc.c-torture/execute/20040831-1.c
! f9bcf69c4437f5948a208c437d1df796  gcc/testsuite/gcc.c-torture/execute/20040917-1.c
! 7932268ff25eb3a3890dc69e89a0bc36  gcc/testsuite/gcc.c-torture/execute/20041011-1.c
! db8ab75b122eb4ffec2bf032b99fd2f4  gcc/testsuite/gcc.c-torture/execute/20041019-1.c
  a9e9fda2b801a2197d791f63eb487a27  gcc/testsuite/gcc.c-torture/execute/20041112-1.c
! 06fe4a00381f16bb039ea627593bf722  gcc/testsuite/gcc.c-torture/execute/20041113-1.c
  1c59ee76a2b16dfcfa57ab77201a6af1  gcc/testsuite/gcc.c-torture/execute/20041114-1.c
! 20b270529a67efde69375070fe6d0f0e  gcc/testsuite/gcc.c-torture/execute/20041124-1.c
  57ca42c345705f29b1c25e55a6c398e8  gcc/testsuite/gcc.c-torture/execute/20041126-1.c
  b3940188294b2f3ab7b5e39eef6361a6  gcc/testsuite/gcc.c-torture/execute/20041201-1.c
! 417307ba03dbfb5dc4f1bb5b06023499  gcc/testsuite/gcc.c-torture/execute/20041210-1.c
! 2af82089d5f9268df79c5ec091dc6b8e  gcc/testsuite/gcc.c-torture/execute/20041212-1.c
  aabf84059193ef8f079c086fccf5031c  gcc/testsuite/gcc.c-torture/execute/20041213-2.c
  ce807ce369e885edc073a7e9703fb7ea  gcc/testsuite/gcc.c-torture/execute/20041214-1.c
  c844f43572c5d01c372285cea683b3ff  gcc/testsuite/gcc.c-torture/execute/20041218-1.c
*************** d6ecc0c4ae27c3fe1596c51858995a60  gcc/te
*** 35297,35303 ****
  e118fc1ac0fc62cefe05a4367150acdb  gcc/testsuite/gcc.c-torture/execute/20050121-1.c
  a11a5f657f81607f39a0e709d4dc3624  gcc/testsuite/gcc.c-torture/execute/20050124-1.c
  e92928ca93da460089cf9d011020ee9e  gcc/testsuite/gcc.c-torture/execute/20050125-1.c
! 00aa58320a2c3d5a44122c160a1f8711  gcc/testsuite/gcc.c-torture/execute/20050131-1.c
  f1d51a349a640972c16400bd854c67ac  gcc/testsuite/gcc.c-torture/execute/20050203-1.c
  b61a1ebbd753fe82a5897af2fb717b30  gcc/testsuite/gcc.c-torture/execute/20050215-1.c
  29bdc7c6be9a830931e2f0d973bc5833  gcc/testsuite/gcc.c-torture/execute/20050218-1.c
--- 37396,37402 ----
  e118fc1ac0fc62cefe05a4367150acdb  gcc/testsuite/gcc.c-torture/execute/20050121-1.c
  a11a5f657f81607f39a0e709d4dc3624  gcc/testsuite/gcc.c-torture/execute/20050124-1.c
  e92928ca93da460089cf9d011020ee9e  gcc/testsuite/gcc.c-torture/execute/20050125-1.c
! fd9576e1a083824c2a80b88a5220c47a  gcc/testsuite/gcc.c-torture/execute/20050131-1.c
  f1d51a349a640972c16400bd854c67ac  gcc/testsuite/gcc.c-torture/execute/20050203-1.c
  b61a1ebbd753fe82a5897af2fb717b30  gcc/testsuite/gcc.c-torture/execute/20050215-1.c
  29bdc7c6be9a830931e2f0d973bc5833  gcc/testsuite/gcc.c-torture/execute/20050218-1.c
*************** b61a1ebbd753fe82a5897af2fb717b30  gcc/te
*** 35305,35311 ****
  72485264213ed1e953ed222bf647d9c4  gcc/testsuite/gcc.c-torture/execute/20050316-1.c
  98ed96bd629560c5e500c6158efed37f  gcc/testsuite/gcc.c-torture/execute/20050316-2.c
  69c2d7053cdb4deb4808e08caa300618  gcc/testsuite/gcc.c-torture/execute/20050316-3.c
! c289f0feea0c1b0e9230cb6fedf512cc  gcc/testsuite/gcc.c-torture/execute/20050410-1.c
  ec959ff383b49e35bef564f59611851a  gcc/testsuite/gcc.c-torture/execute/20050502-1.c
  75351ff59b3644e1b18db7f8c4582231  gcc/testsuite/gcc.c-torture/execute/20050502-2.c
  449dbb3e6a08e4a7c8ff874d4116564d  gcc/testsuite/gcc.c-torture/execute/20050604-1.c
--- 37404,37410 ----
  72485264213ed1e953ed222bf647d9c4  gcc/testsuite/gcc.c-torture/execute/20050316-1.c
  98ed96bd629560c5e500c6158efed37f  gcc/testsuite/gcc.c-torture/execute/20050316-2.c
  69c2d7053cdb4deb4808e08caa300618  gcc/testsuite/gcc.c-torture/execute/20050316-3.c
! 7ed68dfada154edd2c368f9a63333cc8  gcc/testsuite/gcc.c-torture/execute/20050410-1.c
  ec959ff383b49e35bef564f59611851a  gcc/testsuite/gcc.c-torture/execute/20050502-1.c
  75351ff59b3644e1b18db7f8c4582231  gcc/testsuite/gcc.c-torture/execute/20050502-2.c
  449dbb3e6a08e4a7c8ff874d4116564d  gcc/testsuite/gcc.c-torture/execute/20050604-1.c
*************** a5b818e2cd3207c10ff476ecc5f7fdd9  gcc/te
*** 35320,35326 ****
  a21c0acdfd2c46a5a8dda42081b74612  gcc/testsuite/gcc.c-torture/execute/20051104-1.c
  50a41c72f1ededc87d59dc531aaead94  gcc/testsuite/gcc.c-torture/execute/20051110-1.c
  673cfebaff1bb2a84a28f228999d7029  gcc/testsuite/gcc.c-torture/execute/20051110-2.c
! a166239a3327740c84fa9aacaa17317a  gcc/testsuite/gcc.c-torture/execute/20051113-1.c
  0ef2120f99b756db4c3840219fb2dba8  gcc/testsuite/gcc.c-torture/execute/20051215-1.c
  c8a29b8ea2876a5173e1fbc618347f21  gcc/testsuite/gcc.c-torture/execute/20060102-1.c
  4c49c2f4fd84446f093dadd8e8d5db31  gcc/testsuite/gcc.c-torture/execute/20060110-1.c
--- 37419,37425 ----
  a21c0acdfd2c46a5a8dda42081b74612  gcc/testsuite/gcc.c-torture/execute/20051104-1.c
  50a41c72f1ededc87d59dc531aaead94  gcc/testsuite/gcc.c-torture/execute/20051110-1.c
  673cfebaff1bb2a84a28f228999d7029  gcc/testsuite/gcc.c-torture/execute/20051110-2.c
! c7b91c14abbc0daef40361dfceedf6fc  gcc/testsuite/gcc.c-torture/execute/20051113-1.c
  0ef2120f99b756db4c3840219fb2dba8  gcc/testsuite/gcc.c-torture/execute/20051215-1.c
  c8a29b8ea2876a5173e1fbc618347f21  gcc/testsuite/gcc.c-torture/execute/20060102-1.c
  4c49c2f4fd84446f093dadd8e8d5db31  gcc/testsuite/gcc.c-torture/execute/20060110-1.c
*************** f3eed1078ff5f6d2dcf58b8017d389a8  gcc/te
*** 35344,35350 ****
  2c73e84807d122c6366d637e4cc43eb2  gcc/testsuite/gcc.c-torture/execute/20070424-1.c
  5569d39aa5a51b9eb17169c403021e09  gcc/testsuite/gcc.c-torture/execute/20070517-1.c
  e5b4685ba40ad7e05f982d75ff7896cb  gcc/testsuite/gcc.c-torture/execute/20070614-1.c
! bdc8b8f477aa80edcd2c8e2045e535d2  gcc/testsuite/gcc.c-torture/execute/20070623-1.c
  cd59ed61715f9880c9feff51a8c64b4c  gcc/testsuite/gcc.c-torture/execute/20070724-1.c
  3b790b1b0446243ca7f61a8613c3451e  gcc/testsuite/gcc.c-torture/execute/20070824-1.c
  c7cef83b6fc9e552eefc154b20a4373e  gcc/testsuite/gcc.c-torture/execute/20070919-1.c
--- 37443,37449 ----
  2c73e84807d122c6366d637e4cc43eb2  gcc/testsuite/gcc.c-torture/execute/20070424-1.c
  5569d39aa5a51b9eb17169c403021e09  gcc/testsuite/gcc.c-torture/execute/20070517-1.c
  e5b4685ba40ad7e05f982d75ff7896cb  gcc/testsuite/gcc.c-torture/execute/20070614-1.c
! d1c3d9af8c5a7c388205d8ff82d8ad6b  gcc/testsuite/gcc.c-torture/execute/20070623-1.c
  cd59ed61715f9880c9feff51a8c64b4c  gcc/testsuite/gcc.c-torture/execute/20070724-1.c
  3b790b1b0446243ca7f61a8613c3451e  gcc/testsuite/gcc.c-torture/execute/20070824-1.c
  c7cef83b6fc9e552eefc154b20a4373e  gcc/testsuite/gcc.c-torture/execute/20070919-1.c
*************** a1ec6e4bfca597b6bc8fae57d3b60211  gcc/te
*** 35390,35396 ****
  3698723e9bb9aac01a82fc4fe450520f  gcc/testsuite/gcc.c-torture/execute/20090623-1.c
  8feba28ff500fae1b5ab20a8e319d8f4  gcc/testsuite/gcc.c-torture/execute/20090711-1.c
  69e4ba31ba90d3a68c0ba2b693f1aca8  gcc/testsuite/gcc.c-torture/execute/20090814-1.c
! a580e1ca2b138c4042e0a43bf49da5b0  gcc/testsuite/gcc.c-torture/execute/20091229-1.c
  27aeeeb89a91b17af98d81bf871d2aac  gcc/testsuite/gcc.c-torture/execute/20100209-1.c
  76839252ba0b18ecaa197a7e58cd0c8c  gcc/testsuite/gcc.c-torture/execute/20100316-1.c
  599aa573bf19352f3e950e5d20d674cf  gcc/testsuite/gcc.c-torture/execute/20100416-1.c
--- 37489,37495 ----
  3698723e9bb9aac01a82fc4fe450520f  gcc/testsuite/gcc.c-torture/execute/20090623-1.c
  8feba28ff500fae1b5ab20a8e319d8f4  gcc/testsuite/gcc.c-torture/execute/20090711-1.c
  69e4ba31ba90d3a68c0ba2b693f1aca8  gcc/testsuite/gcc.c-torture/execute/20090814-1.c
! 641436f76ae1e0feaef1abd96a3c2762  gcc/testsuite/gcc.c-torture/execute/20091229-1.c
  27aeeeb89a91b17af98d81bf871d2aac  gcc/testsuite/gcc.c-torture/execute/20100209-1.c
  76839252ba0b18ecaa197a7e58cd0c8c  gcc/testsuite/gcc.c-torture/execute/20100316-1.c
  599aa573bf19352f3e950e5d20d674cf  gcc/testsuite/gcc.c-torture/execute/20100416-1.c
*************** a580e1ca2b138c4042e0a43bf49da5b0  gcc/te
*** 35398,35406 ****
  3f1ed16a9981583ab732d7dcc00acbdd  gcc/testsuite/gcc.c-torture/execute/20100708-1.c
  04279b759ce025eb37d017bc0bfe6d2f  gcc/testsuite/gcc.c-torture/execute/20100805-1.c
  94262b3a70161a035a289e60d6b39c44  gcc/testsuite/gcc.c-torture/execute/20100827-1.c
! 6ea927a03dae003e9986f175c41a566e  gcc/testsuite/gcc.c-torture/execute/20101011-1.c
  2753f885fabef60aad30c05f7d0a42a8  gcc/testsuite/gcc.c-torture/execute/20101013-1.c
! 40f98e273d462f42e775cee266358d98  gcc/testsuite/gcc.c-torture/execute/20101025-1.c
  25e8df034740874c03a94dd4abc11ebe  gcc/testsuite/gcc.c-torture/execute/20110418-1.c
  507f9654e757e0643a54891a55f70b01  gcc/testsuite/gcc.c-torture/execute/20111208-1.c
  c2e5c5b964de24123be7ac0ecbb5a245  gcc/testsuite/gcc.c-torture/execute/20111212-1.c
--- 37497,37505 ----
  3f1ed16a9981583ab732d7dcc00acbdd  gcc/testsuite/gcc.c-torture/execute/20100708-1.c
  04279b759ce025eb37d017bc0bfe6d2f  gcc/testsuite/gcc.c-torture/execute/20100805-1.c
  94262b3a70161a035a289e60d6b39c44  gcc/testsuite/gcc.c-torture/execute/20100827-1.c
! 20ff4f6eb188fabe2719318756b95769  gcc/testsuite/gcc.c-torture/execute/20101011-1.c
  2753f885fabef60aad30c05f7d0a42a8  gcc/testsuite/gcc.c-torture/execute/20101013-1.c
! 05051ad168544241157b674fe2d97381  gcc/testsuite/gcc.c-torture/execute/20101025-1.c
  25e8df034740874c03a94dd4abc11ebe  gcc/testsuite/gcc.c-torture/execute/20110418-1.c
  507f9654e757e0643a54891a55f70b01  gcc/testsuite/gcc.c-torture/execute/20111208-1.c
  c2e5c5b964de24123be7ac0ecbb5a245  gcc/testsuite/gcc.c-torture/execute/20111212-1.c
*************** c2e5c5b964de24123be7ac0ecbb5a245  gcc/te
*** 35408,35420 ****
  24623c5fc489974b00dfa8bf1f6e81b3  gcc/testsuite/gcc.c-torture/execute/20120105-1.c
  111426889f335935033317693f8dda59  gcc/testsuite/gcc.c-torture/execute/20120111-1.c
  f072eb423e4101e6249991a45a673bbc  gcc/testsuite/gcc.c-torture/execute/20120207-1.c
! a1428f0ef932744d76bf477d42790520  gcc/testsuite/gcc.c-torture/execute/20120427-1.c
! dd389b01e1c501dda087afcfa6de65af  gcc/testsuite/gcc.c-torture/execute/20120427-2.c
  93401a67ec53cb9cbcfc1c4bf23edbf1  gcc/testsuite/gcc.c-torture/execute/20120615-1.c
  a9e5c6f1ee1639039816100f1e790283  gcc/testsuite/gcc.c-torture/execute/20120808-1.c
! 4d0f8a508f5ad3425379c0f569ffe8b4  gcc/testsuite/gcc.c-torture/execute/20120817-1.c
  7039d7de5e791324720551a2709ab831  gcc/testsuite/gcc.c-torture/execute/20120919-1.c
! e930646e7dc4ae306668360758733d33  gcc/testsuite/gcc.c-torture/execute/20121108-1.c
  91f48b05bc9d42c398d7b5856e001a8d  gcc/testsuite/gcc.c-torture/execute/20131127-1.c
  00319451004c266ad1b8c6aeb089eb51  gcc/testsuite/gcc.c-torture/execute/20140212-1.c
  1e17e4829f03b416fb9ea6c5f829f5ef  gcc/testsuite/gcc.c-torture/execute/20140212-2.c
--- 37507,37519 ----
  24623c5fc489974b00dfa8bf1f6e81b3  gcc/testsuite/gcc.c-torture/execute/20120105-1.c
  111426889f335935033317693f8dda59  gcc/testsuite/gcc.c-torture/execute/20120111-1.c
  f072eb423e4101e6249991a45a673bbc  gcc/testsuite/gcc.c-torture/execute/20120207-1.c
! 00d55b5fa5a5fb45bc369ccc18683d62  gcc/testsuite/gcc.c-torture/execute/20120427-1.c
! 37c7ae7cc3f3babb73d49a73e47233fa  gcc/testsuite/gcc.c-torture/execute/20120427-2.c
  93401a67ec53cb9cbcfc1c4bf23edbf1  gcc/testsuite/gcc.c-torture/execute/20120615-1.c
  a9e5c6f1ee1639039816100f1e790283  gcc/testsuite/gcc.c-torture/execute/20120808-1.c
! 7d9d2dbd8c497c6c657be06aa4ee2be4  gcc/testsuite/gcc.c-torture/execute/20120817-1.c
  7039d7de5e791324720551a2709ab831  gcc/testsuite/gcc.c-torture/execute/20120919-1.c
! 7c1b49064c6ec0fb18b2d1896a83cc9b  gcc/testsuite/gcc.c-torture/execute/20121108-1.c
  91f48b05bc9d42c398d7b5856e001a8d  gcc/testsuite/gcc.c-torture/execute/20131127-1.c
  00319451004c266ad1b8c6aeb089eb51  gcc/testsuite/gcc.c-torture/execute/20140212-1.c
  1e17e4829f03b416fb9ea6c5f829f5ef  gcc/testsuite/gcc.c-torture/execute/20140212-2.c
*************** a5f4cdd2313a084c86b42c022d5711d7  gcc/te
*** 35428,35434 ****
  a41347b276541fc0f7e43aa3857bbcf3  gcc/testsuite/gcc.c-torture/execute/20150611-1.c
  f50d2037a2ed60133aebb15fd8ac1626  gcc/testsuite/gcc.c-torture/execute/20170111-1.c
  e54823e5f85799a816f464339f03380a  gcc/testsuite/gcc.c-torture/execute/20170401-1.c
! f8b802f2d501bc5da713d9ae58a70c11  gcc/testsuite/gcc.c-torture/execute/20170401-2.c
  13d1e16ba55cc014ade05fa4e93459a9  gcc/testsuite/gcc.c-torture/execute/20170419-1.c
  31a4260c391b5a83af8bbf21d3741a8c  gcc/testsuite/gcc.c-torture/execute/20171008-1.c
  c7ff39348e400954a9509ab75b431894  gcc/testsuite/gcc.c-torture/execute/20180112-1.c
--- 37527,37533 ----
  a41347b276541fc0f7e43aa3857bbcf3  gcc/testsuite/gcc.c-torture/execute/20150611-1.c
  f50d2037a2ed60133aebb15fd8ac1626  gcc/testsuite/gcc.c-torture/execute/20170111-1.c
  e54823e5f85799a816f464339f03380a  gcc/testsuite/gcc.c-torture/execute/20170401-1.c
! 0906f4bf7e1ea0af860595f3a13d31cf  gcc/testsuite/gcc.c-torture/execute/20170401-2.c
  13d1e16ba55cc014ade05fa4e93459a9  gcc/testsuite/gcc.c-torture/execute/20170419-1.c
  31a4260c391b5a83af8bbf21d3741a8c  gcc/testsuite/gcc.c-torture/execute/20171008-1.c
  c7ff39348e400954a9509ab75b431894  gcc/testsuite/gcc.c-torture/execute/20180112-1.c
*************** ecbbfd4b186a0dd8448d96f39a543fb4  gcc/te
*** 35442,35760 ****
  2e368329bfad3d99e406eade7d55032d  gcc/testsuite/gcc.c-torture/execute/20191023-1.c
  b4ae081235a5dc1e90b1adea7befe6cf  gcc/testsuite/gcc.c-torture/execute/20210505-1.c
  318f0b7324815bae3c8b8b75f6381ddb  gcc/testsuite/gcc.c-torture/execute/20221006-1.c
  c152b22273bc18a4c77712056ad155b2  gcc/testsuite/gcc.c-torture/execute/20230630-1.c
  7b2e318b0268b72be90a65cf76db847a  gcc/testsuite/gcc.c-torture/execute/20230630-2.c
! 4a01ae6027e3e54850f1b7a4cfd9e943  gcc/testsuite/gcc.c-torture/execute/20230630-3.c
! 88c62fc9ed04e0f727eb572abcccb0d2  gcc/testsuite/gcc.c-torture/execute/20230630-4.c
! 65f01ac7346bd4d47ed9c1ca94ab74ff  gcc/testsuite/gcc.c-torture/execute/900409-1.c
! 5aefab4daab0bd29ecf2a389f3c44f40  gcc/testsuite/gcc.c-torture/execute/920202-1.c
! 74e2b57e4fb280900b2f9b169dd75b1c  gcc/testsuite/gcc.c-torture/execute/920302-1.c
! 8f8f4242a02385cbaf0e2dcb894ef3bd  gcc/testsuite/gcc.c-torture/execute/920409-1.c
! a86d07fe8e8acd897dc72d67ef88bf18  gcc/testsuite/gcc.c-torture/execute/920410-1.c
! 942e91c719d0d944aedce9f7e65abeba  gcc/testsuite/gcc.c-torture/execute/920411-1.c
! 1334b942df26e01f7aec6cacbdabffad  gcc/testsuite/gcc.c-torture/execute/920415-1.c
! 67630f32e9d397f90a610dc1a437d5b1  gcc/testsuite/gcc.c-torture/execute/920428-1.c
! d2f42d607d304975fa5a2474b9126824  gcc/testsuite/gcc.c-torture/execute/920428-2.c
! 643e65b03432871f96441c1f3396d0d2  gcc/testsuite/gcc.c-torture/execute/920429-1.c
! 5c91095362f3b3f0e69744567ddf82bb  gcc/testsuite/gcc.c-torture/execute/920501-1.c
! 9c34a0796d9391421a3ad40464941f13  gcc/testsuite/gcc.c-torture/execute/920501-2.c
! 6d384436402b1efeead2da4a71b4a985  gcc/testsuite/gcc.c-torture/execute/920501-3.c
! 64756b12e01f871c05c8b3a42dbe8543  gcc/testsuite/gcc.c-torture/execute/920501-4.c
! b9094556bb3085abc63e74bb96d7b837  gcc/testsuite/gcc.c-torture/execute/920501-5.c
! 79ac46c4c2eddb5c72cd30872dbefb11  gcc/testsuite/gcc.c-torture/execute/920501-6.c
! 2104dbb97db4c2f5a366d71bf09d887a  gcc/testsuite/gcc.c-torture/execute/920501-7.c
! 2e8fb0886610c0235c7011397ec6c96a  gcc/testsuite/gcc.c-torture/execute/920501-8.c
! e0d4fdcd868a1fca70f8050e878dc1d7  gcc/testsuite/gcc.c-torture/execute/920501-9.c
! c1f902ba7c0b04a265b4379ae9faddf3  gcc/testsuite/gcc.c-torture/execute/920506-1.c
! 36b3d87c7615337e69dbf249b217ac96  gcc/testsuite/gcc.c-torture/execute/920520-1.c
! 95e88329093b9704d02ac851b98e2c04  gcc/testsuite/gcc.c-torture/execute/920603-1.c
! 1cb1bc488a57c2ac44f51218dca5843d  gcc/testsuite/gcc.c-torture/execute/920604-1.c
  2603675161614674c793620ef61c57d6  gcc/testsuite/gcc.c-torture/execute/920612-1.c
! 76577eb12c07bf9ad4971a369da7805f  gcc/testsuite/gcc.c-torture/execute/920612-2.c
! 6f74ffc290063e318fa674bba4eaf317  gcc/testsuite/gcc.c-torture/execute/920618-1.c
! 12d7ba649a0ab6f51222e0d18ed5a6b4  gcc/testsuite/gcc.c-torture/execute/920625-1.c
! 935a97622d462e59adc2a096028fd8c4  gcc/testsuite/gcc.c-torture/execute/920710-1.c
  935f2ebde080a2ed34e886958029138f  gcc/testsuite/gcc.c-torture/execute/920711-1.c
! 311a97a0d2fd508d27d962a93c526aae  gcc/testsuite/gcc.c-torture/execute/920721-1.c
! 6d9396d3de863a8e1ba44473e57ddcc0  gcc/testsuite/gcc.c-torture/execute/920721-2.c
! e89932cb07fb96f9e7f3f08222b63e3e  gcc/testsuite/gcc.c-torture/execute/920721-3.c
! 9e0c21e8b0e6a22690dbdc83e2dfa657  gcc/testsuite/gcc.c-torture/execute/920721-4.c
! 90b984f615a8c73718dd8912fbfb748b  gcc/testsuite/gcc.c-torture/execute/920726-1.c
! 55dd1b6f1bcc282300b2c2f52b763cd2  gcc/testsuite/gcc.c-torture/execute/920728-1.c
! 683830c27ebeeff8424e538285216910  gcc/testsuite/gcc.c-torture/execute/920730-1.c
! e02653b19ee444bf982807cef8074b6b  gcc/testsuite/gcc.c-torture/execute/920731-1.c
! 727c7639adfe42cc59d6e430bd715eb6  gcc/testsuite/gcc.c-torture/execute/920810-1.c
! a481cda9219675dc2c9b883325afd848  gcc/testsuite/gcc.c-torture/execute/920812-1.c
! 51697ccaa109c809e4d5d53f64d2aea1  gcc/testsuite/gcc.c-torture/execute/920829-1.c
! f48b5236583fa4210c24ea552d76a6b4  gcc/testsuite/gcc.c-torture/execute/920908-1.c
! 74416cec1a735092f5eaf7a1617fca21  gcc/testsuite/gcc.c-torture/execute/920908-2.c
! e22dc3b3c9ba194fef8355c7ebf8f655  gcc/testsuite/gcc.c-torture/execute/920909-1.c
! ee1bc9aa30a6ddd705aefc888ab1085e  gcc/testsuite/gcc.c-torture/execute/920922-1.c
! 080e6bd12341ec29446ca59487394364  gcc/testsuite/gcc.c-torture/execute/920929-1.c
! 8a463b3d1c82890c01f8f626e5fcf912  gcc/testsuite/gcc.c-torture/execute/921006-1.c
! bdb6e3a3b08c2e377933fe346ece0a1c  gcc/testsuite/gcc.c-torture/execute/921007-1.c
! 4a153d3cee5635ad6807a0939b1f8b78  gcc/testsuite/gcc.c-torture/execute/921013-1.c
! cf200c151f9c5225a3bd125fc405a8ae  gcc/testsuite/gcc.c-torture/execute/921016-1.c
! 190b2fc425a1b5ca87dd1c7af9350e72  gcc/testsuite/gcc.c-torture/execute/921017-1.c
! 5727a158831b1c3f57a9a3592b7934b6  gcc/testsuite/gcc.c-torture/execute/921019-1.c
! e62ed4f14b8c0c66acd29783fb5e32cb  gcc/testsuite/gcc.c-torture/execute/921019-2.c
! c61b33256f5fb535bffd1a18a015bcac  gcc/testsuite/gcc.c-torture/execute/921029-1.c
! ec3bf6b546eaff255d5710806e7bc330  gcc/testsuite/gcc.c-torture/execute/921104-1.c
! 2c5d5bcdebd5213687d4fb2fb85c5d27  gcc/testsuite/gcc.c-torture/execute/921110-1.c
! 5ffc208f8ddeb7f76dfe22399b5d6005  gcc/testsuite/gcc.c-torture/execute/921112-1.c
! d4b8146bb61248472c5332747ca247ca  gcc/testsuite/gcc.c-torture/execute/921113-1.c
! 228b09742cd7d5a909ff99aaebb0a9af  gcc/testsuite/gcc.c-torture/execute/921117-1.c
! fdf9d6557d6f44acebbdc0c7017887d0  gcc/testsuite/gcc.c-torture/execute/921123-1.c
! dfba7fdd443fe725e2fe861064815e70  gcc/testsuite/gcc.c-torture/execute/921123-2.c
! 997bb595303b9ff150b99f6f912d5491  gcc/testsuite/gcc.c-torture/execute/921124-1.c
! 2c4baf42d97e9fbc88876643f65146c9  gcc/testsuite/gcc.c-torture/execute/921202-1.c
! a98aaffc9d3da6358dbe382882ffc897  gcc/testsuite/gcc.c-torture/execute/921202-2.c
! d6bd72ada8ca098ae7adc681ac406e64  gcc/testsuite/gcc.c-torture/execute/921204-1.c
! 3638c835c9cdaaeb416566908c25a9d4  gcc/testsuite/gcc.c-torture/execute/921207-1.c
! bc7f73102e4e182074bd42178726a461  gcc/testsuite/gcc.c-torture/execute/921208-1.c
! 944a5329141af9aac362e523b3086e73  gcc/testsuite/gcc.c-torture/execute/921208-2.c
! dfe2b92460ae0c373cb370034b6b89ff  gcc/testsuite/gcc.c-torture/execute/921215-1.c
! 38b0b39e36aaf0ef068b71a759267b60  gcc/testsuite/gcc.c-torture/execute/921218-1.c
! 67f1883af45f1a0fc90037e7b9136028  gcc/testsuite/gcc.c-torture/execute/921218-2.c
! 24194b48b8bc18e40059b895b94edf33  gcc/testsuite/gcc.c-torture/execute/930106-1.c
! 53a2dfe22d7a04d96dff155e065d52de  gcc/testsuite/gcc.c-torture/execute/930111-1.c
! 7c422af0d87d2b21e186153ff800419a  gcc/testsuite/gcc.c-torture/execute/930123-1.c
! 490dffd24bbf6979508040d02fbdec31  gcc/testsuite/gcc.c-torture/execute/930126-1.c
! 369c307f2e32b6e0203b3497cb9ccb86  gcc/testsuite/gcc.c-torture/execute/930208-1.c
! 6322852dcb8649ffe237074c18d41183  gcc/testsuite/gcc.c-torture/execute/930406-1.c
! 574313194e14028633903db0fb97214a  gcc/testsuite/gcc.c-torture/execute/930408-1.c
! 8e521a7f17ba4592d44b61f5de10b627  gcc/testsuite/gcc.c-torture/execute/930429-1.c
! 68f904a058dc9059802132f0c8b20266  gcc/testsuite/gcc.c-torture/execute/930429-2.c
! df57ef9df7c52bfd408dee8c08e3a06a  gcc/testsuite/gcc.c-torture/execute/930513-1.c
! 18b291a2fa5d7598c56adbf96b38d930  gcc/testsuite/gcc.c-torture/execute/930513-2.c
! 158758d8f775619ca288999c905009ba  gcc/testsuite/gcc.c-torture/execute/930518-1.c
  a7f8231c567438f27ed4d4576d02f39a  gcc/testsuite/gcc.c-torture/execute/930526-1.c
! bd6ecf2dc8a04d644399254634a11657  gcc/testsuite/gcc.c-torture/execute/930527-1.c
  c9bddda9d0b04fe2c935fe41d75f9617  gcc/testsuite/gcc.c-torture/execute/930529-1.c
! cb56afca9f984f36d845373a46c63c8a  gcc/testsuite/gcc.c-torture/execute/930603-1.c
! bf11698e3b475ce2f211d4a272539c17  gcc/testsuite/gcc.c-torture/execute/930603-2.c
! 46352c1d9c49989eb8d8ec6f4eff5889  gcc/testsuite/gcc.c-torture/execute/930603-3.c
! 9db14041ce8a0f0135bd9beae9548531  gcc/testsuite/gcc.c-torture/execute/930608-1.c
! be6cf05d2db657214f5180b9e0e1b2a8  gcc/testsuite/gcc.c-torture/execute/930614-1.c
! 2591a2fcc83bd7afb1bc21602816bc6e  gcc/testsuite/gcc.c-torture/execute/930614-2.c
! f227ddac102a9b8dacc43e69aa0496fc  gcc/testsuite/gcc.c-torture/execute/930621-1.c
! 631ec3a4da2ea9a35089827873da7bea  gcc/testsuite/gcc.c-torture/execute/930622-1.c
! f56861e3afa3f4830d706c0e90e8abdc  gcc/testsuite/gcc.c-torture/execute/930622-2.c
! 070e88ee51dc06e6cc7a17300369ee5c  gcc/testsuite/gcc.c-torture/execute/930628-1.c
! 6e9789449ab742fbd6cd138377617d98  gcc/testsuite/gcc.c-torture/execute/930630-1.c
! 4876768af6ec0b77f8cbedb76f45ec81  gcc/testsuite/gcc.c-torture/execute/930702-1.c
! 78d0ebf1e305fec40a509ab57aa83bc4  gcc/testsuite/gcc.c-torture/execute/930713-1.c
! de35b106caa372b8a241433073479bec  gcc/testsuite/gcc.c-torture/execute/930718-1.c
! ad2d30ff5692f090a6e0f8e5ca944b51  gcc/testsuite/gcc.c-torture/execute/930719-1.c
! 0c77cdb409862a192d26f1d783439e02  gcc/testsuite/gcc.c-torture/execute/930725-1.c
! a4cd2742d85c9dd30c2cf829ec2f85eb  gcc/testsuite/gcc.c-torture/execute/930818-1.c
! ccea0e08c35b8bee2d670378dc0fe328  gcc/testsuite/gcc.c-torture/execute/930916-1.c
! 78c32311fdd06f3cd65a8be43ec9d2f3  gcc/testsuite/gcc.c-torture/execute/930921-1.c
! 7747dfabe63e3806267036c6b6945565  gcc/testsuite/gcc.c-torture/execute/930929-1.c
! 7ebf624d5cc9ea1e63e2c37ee3cd9736  gcc/testsuite/gcc.c-torture/execute/930930-1.c
! a012b94f7e3fb4508965337c0b576b60  gcc/testsuite/gcc.c-torture/execute/930930-2.c
! 82c887ccb324cb76f3788474cd798d7d  gcc/testsuite/gcc.c-torture/execute/931002-1.c
! 50f8aeaccdd2f2a3b38cf08385bb80b7  gcc/testsuite/gcc.c-torture/execute/931004-1.c
! dfe371c94b16773da9210adbaad4bc72  gcc/testsuite/gcc.c-torture/execute/931004-10.c
! 3af771746061e12b7590d7cc2214be1f  gcc/testsuite/gcc.c-torture/execute/931004-11.c
! e773b892be057acd4199fa6a854321a7  gcc/testsuite/gcc.c-torture/execute/931004-12.c
! 713b71212dd2b6a34fbffdccf7f10cca  gcc/testsuite/gcc.c-torture/execute/931004-13.c
! 7e3b601fb94a8245671f88cc9fd2645e  gcc/testsuite/gcc.c-torture/execute/931004-14.c
! 420ba647c7903ab0e28e35c52b5afad4  gcc/testsuite/gcc.c-torture/execute/931004-2.c
! eec5bcd49f94a43be2e67e1ce04d1003  gcc/testsuite/gcc.c-torture/execute/931004-3.c
! 691ab12b8735608ed06dce285f70f2b1  gcc/testsuite/gcc.c-torture/execute/931004-4.c
! e68d7ada853ad85e1c744bc40611d906  gcc/testsuite/gcc.c-torture/execute/931004-5.c
! 61b771b4b112659f39ad823e26f3d432  gcc/testsuite/gcc.c-torture/execute/931004-6.c
! dfc7aed5c11de730bc62f1f9fb1ce1b1  gcc/testsuite/gcc.c-torture/execute/931004-7.c
! ea1c7c9508886fd55547efac114aa605  gcc/testsuite/gcc.c-torture/execute/931004-8.c
! 100671769ba1f38b693cd4abf1a04d7e  gcc/testsuite/gcc.c-torture/execute/931004-9.c
! 630d09b9527dea3a2d386f670d615c62  gcc/testsuite/gcc.c-torture/execute/931005-1.c
! d7d667c2eb050d21bbe02d086aa8b74b  gcc/testsuite/gcc.c-torture/execute/931009-1.c
! 95fdb2ec5c0fb2bdc80a61b0e9d4a5cf  gcc/testsuite/gcc.c-torture/execute/931012-1.c
! 1664cbfb7aacd2dad97626205242f87a  gcc/testsuite/gcc.c-torture/execute/931017-1.c
! 668611e76b0df8bf85d9337784d70035  gcc/testsuite/gcc.c-torture/execute/931018-1.c
! 0e6a45c9d6182473d29157564755ce8e  gcc/testsuite/gcc.c-torture/execute/931031-1.c
! 6ade149afea4d072902bb131eb639f6d  gcc/testsuite/gcc.c-torture/execute/931102-1.c
! 46e78d938cd6707af80b80289b828dd1  gcc/testsuite/gcc.c-torture/execute/931102-2.c
! d1c29cdc318f5b538f43e98774fa70d4  gcc/testsuite/gcc.c-torture/execute/931110-1.c
! 27dbc0e652b515bb94cb4200263fe332  gcc/testsuite/gcc.c-torture/execute/931110-2.c
! 9247b4b233d6e81dd3dcbed0523c6da8  gcc/testsuite/gcc.c-torture/execute/931208-1.c
! c94021039c14df91ee14c6d7604931b2  gcc/testsuite/gcc.c-torture/execute/931228-1.c
! d8f2065f0c7c77ce667934e2521a0212  gcc/testsuite/gcc.c-torture/execute/940115-1.c
! 06617daf15be9590eab9cd5bb1faa45e  gcc/testsuite/gcc.c-torture/execute/940122-1.c
! fb9f79296132e2665ae1c5d7e4cbf647  gcc/testsuite/gcc.c-torture/execute/941014-1.c
! 7fed6cd8c8322664b4d634dfb5355d73  gcc/testsuite/gcc.c-torture/execute/941014-2.c
! ee8aa8f7e8d7918082c3b309bffa08f1  gcc/testsuite/gcc.c-torture/execute/941015-1.c
! ced540d52e2e989717500a26242129de  gcc/testsuite/gcc.c-torture/execute/941021-1.c
! f026dbe7b0da1deea8eeae8d42606499  gcc/testsuite/gcc.c-torture/execute/941025-1.c
! 7c27756d179aa110aeb016ed26ec0de1  gcc/testsuite/gcc.c-torture/execute/941031-1.c
! c7e18d956ad2a8fe81999c287371c31e  gcc/testsuite/gcc.c-torture/execute/941101-1.c
! 1dc497fc2ccc4d2760ab087c875cb5c1  gcc/testsuite/gcc.c-torture/execute/941110-1.c
! 2f424c898de9a4e5ab00b0bd49ed23f6  gcc/testsuite/gcc.c-torture/execute/941202-1.c
! 3ce1aaede54d6aa7de25fdbb7c259935  gcc/testsuite/gcc.c-torture/execute/950221-1.c
! e6d7e389c7da3de4e28a72765e33f89f  gcc/testsuite/gcc.c-torture/execute/950322-1.c
! 398f172f95544d00ad53311714a8c406  gcc/testsuite/gcc.c-torture/execute/950426-1.c
! 8576ce29a3b03f47d601e31b4a179721  gcc/testsuite/gcc.c-torture/execute/950426-2.c
! efdff396ba65b0cb6dda91cc642c4996  gcc/testsuite/gcc.c-torture/execute/950503-1.c
! 3dafaa7ea6cf7349c8c7f8a0aeb67e04  gcc/testsuite/gcc.c-torture/execute/950511-1.c
! 542ba63c786c1ca3212b62d535c43fdc  gcc/testsuite/gcc.c-torture/execute/950512-1.c
! 275063b805617134b4734ee0953f7901  gcc/testsuite/gcc.c-torture/execute/950605-1.c
! 06122eaf454600ce310f364f15e40baf  gcc/testsuite/gcc.c-torture/execute/950607-1.c
! f746b5e58906596c57b6b818bd0784f7  gcc/testsuite/gcc.c-torture/execute/950607-2.c
! 33df996a16d2eb2f60c3385480b3ff8e  gcc/testsuite/gcc.c-torture/execute/950612-1.c
! aeba387843a8fd72f9305e3abe4cfab6  gcc/testsuite/gcc.c-torture/execute/950621-1.c
! a7a30f18c1c18948a0c611579b4950e9  gcc/testsuite/gcc.c-torture/execute/950628-1.c
! 77504274d3f867fdd649113ccd313f35  gcc/testsuite/gcc.c-torture/execute/950704-1.c
! a2d4942fa5a272c8916edff697ea8822  gcc/testsuite/gcc.c-torture/execute/950706-1.c
! f94e762bd2a0e456c1c55074078fad0a  gcc/testsuite/gcc.c-torture/execute/950710-1.c
! d937401d969e1facfeba411534a88f5a  gcc/testsuite/gcc.c-torture/execute/950714-1.c
! 6dadccf14ad2589d973e6342c8cd8af8  gcc/testsuite/gcc.c-torture/execute/950809-1.c
! 85b7b785ce3059ec77738a882fbdd916  gcc/testsuite/gcc.c-torture/execute/950906-1.c
! 98e75b1ae52f513c69644c7c8fb1acfc  gcc/testsuite/gcc.c-torture/execute/950915-1.c
! b801f94c0929e9bdaf98860c9add2208  gcc/testsuite/gcc.c-torture/execute/950929-1.c
! 436d966b8f457d0e346768e8923bc13f  gcc/testsuite/gcc.c-torture/execute/951003-1.c
! 4b3f11d2811711889854524475eb3828  gcc/testsuite/gcc.c-torture/execute/951115-1.c
! bc724699414f1d41d7ee017f17575b9d  gcc/testsuite/gcc.c-torture/execute/951204-1.c
! dd03f127a01ee33a3d143c1d1d31d2fc  gcc/testsuite/gcc.c-torture/execute/960116-1.c
! 7411041392dc98b4081189194d75c36c  gcc/testsuite/gcc.c-torture/execute/960117-1.c
! 946779b0608386877114d53fda9dd9aa  gcc/testsuite/gcc.c-torture/execute/960209-1.c
! d647bfd1fe671105c9d5e51b55430139  gcc/testsuite/gcc.c-torture/execute/960215-1.c
! 2a78549abfbd17eb18207769b9094dff  gcc/testsuite/gcc.c-torture/execute/960218-1.c
! 2f5a1b792dd2f8f14e18974b27ea7da7  gcc/testsuite/gcc.c-torture/execute/960219-1.c
! dd5bbae746b2d58d9be3fdca8daa3fe2  gcc/testsuite/gcc.c-torture/execute/960301-1.c
! eca202168ffd9889fd716424b759a63f  gcc/testsuite/gcc.c-torture/execute/960302-1.c
! fbeb736f7cea1b233d24bfe61c2d12fe  gcc/testsuite/gcc.c-torture/execute/960311-1.c
! 252a16cbd4e153cdef2f54dc7a8c0037  gcc/testsuite/gcc.c-torture/execute/960311-2.c
! 3fd8fa285eb44015f89734dbf1fbed27  gcc/testsuite/gcc.c-torture/execute/960311-3.c
! 94dc6ebc66c2f40dcc301cf4e757d420  gcc/testsuite/gcc.c-torture/execute/960312-1.c
! db2d64bf1d224055c2bfcd575cd0a85c  gcc/testsuite/gcc.c-torture/execute/960317-1.c
! 4b83a1d4a67ab5df67a907842c96a846  gcc/testsuite/gcc.c-torture/execute/960321-1.c
! 40f926583731a3bbbb07cba5c584dca5  gcc/testsuite/gcc.c-torture/execute/960326-1.c
! 9fa59787835958f2b7e6a86f27a0cd62  gcc/testsuite/gcc.c-torture/execute/960327-1.c
! 87037da82fb6e20eb6543f078e3204f3  gcc/testsuite/gcc.c-torture/execute/960402-1.c
! 108828593826dbef2e5591fafb4be6be  gcc/testsuite/gcc.c-torture/execute/960405-1.c
! 2276fd88d3e256bcf957e305d8d38a2b  gcc/testsuite/gcc.c-torture/execute/960416-1.c
! e9f23bed67238b80aa7e710845c402e1  gcc/testsuite/gcc.c-torture/execute/960419-1.c
! 7d67cb61797f8d11a87c1e3121804b30  gcc/testsuite/gcc.c-torture/execute/960419-2.c
! cfc18ece6bf71356ade78f5d6434bcd1  gcc/testsuite/gcc.c-torture/execute/960512-1.c
! 33ed5af7438207e0112004ee42e997da  gcc/testsuite/gcc.c-torture/execute/960513-1.c
! c05285fc98880ec304bf0b805cbb63fb  gcc/testsuite/gcc.c-torture/execute/960521-1.c
! 5094caff3132aa15528c769a45237867  gcc/testsuite/gcc.c-torture/execute/960608-1.c
! 5af89a3538c6227209fd71fdaa8e292d  gcc/testsuite/gcc.c-torture/execute/960801-1.c
! 2d301605567989d4c4a46e7ee00f8025  gcc/testsuite/gcc.c-torture/execute/960802-1.c
! 38ad2a920d63bf98b5cfac4ff808b936  gcc/testsuite/gcc.c-torture/execute/960830-1.c
! 3b8897fb251ba6c04e84a09374fd9eb0  gcc/testsuite/gcc.c-torture/execute/960909-1.c
! 16fb255094d144af592a08147ed1ca6a  gcc/testsuite/gcc.c-torture/execute/961004-1.c
! 5e504d68e83a7744294e6c6db9ce03be  gcc/testsuite/gcc.c-torture/execute/961017-1.c
! 4c3baede56e5d82636f8010999b95153  gcc/testsuite/gcc.c-torture/execute/961017-2.c
! 7f5db8c0bd90776359475f74412e1f9a  gcc/testsuite/gcc.c-torture/execute/961026-1.c
! 022900abdd29cf3ae87cca7703068a73  gcc/testsuite/gcc.c-torture/execute/961112-1.c
! b677c0b3277554b4715df3414c66ad9d  gcc/testsuite/gcc.c-torture/execute/961122-1.c
! a835ad3363b75fc9737df7d3927e7296  gcc/testsuite/gcc.c-torture/execute/961122-2.c
! 6bfa878ed95623560bb177b2cb2919c7  gcc/testsuite/gcc.c-torture/execute/961125-1.c
! dd470c55ab8385311bef86693b595975  gcc/testsuite/gcc.c-torture/execute/961206-1.c
! f6dbf925d6b0d090a106ffc1d827b05c  gcc/testsuite/gcc.c-torture/execute/961213-1.c
  1d6728aef023ffe08c8a8cb0292c8d75  gcc/testsuite/gcc.c-torture/execute/961223-1.c
! a36e751e170b2dc2c0401b1fc592dc14  gcc/testsuite/gcc.c-torture/execute/970214-1.c
! 78e6d3f92e230a49a3749328a5c0fd91  gcc/testsuite/gcc.c-torture/execute/970214-2.c
! 885fc00337557c218f5427a60e454ed6  gcc/testsuite/gcc.c-torture/execute/970217-1.c
! 54d5e7fe3bdbaea6f47e71255c0bd8e2  gcc/testsuite/gcc.c-torture/execute/970923-1.c
! 04f08d37e3166a43ee3fb951537a3ad9  gcc/testsuite/gcc.c-torture/execute/980205.c
! db5a38a12d8a6071ae631e1633a14d53  gcc/testsuite/gcc.c-torture/execute/980223.c
! b3011e21c3d0468aeef26a2e0116242f  gcc/testsuite/gcc.c-torture/execute/980424-1.c
! dd3059fc30eda7d3d6380dd243bda891  gcc/testsuite/gcc.c-torture/execute/980505-1.c
! 5423f8223741ad82622f55b3c8d901c5  gcc/testsuite/gcc.c-torture/execute/980505-2.c
! 0b96f4664d607bd02f664fcb3a94211d  gcc/testsuite/gcc.c-torture/execute/980506-1.c
! 11ccfbf523ae56536294da94caa299b7  gcc/testsuite/gcc.c-torture/execute/980506-2.c
! c17b17fb8aad6ea72e5832a949fd01df  gcc/testsuite/gcc.c-torture/execute/980506-3.c
! 79b8c1b52e80f404067b4116bfd0323c  gcc/testsuite/gcc.c-torture/execute/980526-1.c
! dd7f624e7607911647570c8f085b30f3  gcc/testsuite/gcc.c-torture/execute/980526-2.c
! 8e8745ee8c3dbbbea58fa8b4b9ef5052  gcc/testsuite/gcc.c-torture/execute/980526-3.c
! a698d66b429e23c3f1e1bb5930d44194  gcc/testsuite/gcc.c-torture/execute/980602-1.c
! 5406c2e53b1a454e57f679f9b342b5c7  gcc/testsuite/gcc.c-torture/execute/980602-2.c
! ca37e2f3c9f310f3770efb9469c6a9ba  gcc/testsuite/gcc.c-torture/execute/980604-1.c
! 0361204574bbffa285055a1f0f2a711e  gcc/testsuite/gcc.c-torture/execute/980605-1.c
  75a111f02af5f8ef41c780ade8a83c24  gcc/testsuite/gcc.c-torture/execute/980608-1.c
! 517d48df92d94cd9d2bbb03a2eabf89f  gcc/testsuite/gcc.c-torture/execute/980612-1.c
! c9b566b9fe301689b348091c63337ef0  gcc/testsuite/gcc.c-torture/execute/980617-1.c
! 8fa39d44eda5d5cdbea57529bf8107d9  gcc/testsuite/gcc.c-torture/execute/980618-1.c
! 77c0818d751105d57fce6a8064daf7c8  gcc/testsuite/gcc.c-torture/execute/980701-1.c
  159a5b2e3f7eaec6e9a45332f1eef639  gcc/testsuite/gcc.c-torture/execute/980707-1.c
! 1e16269b488f533e78339244d5ef41f9  gcc/testsuite/gcc.c-torture/execute/980709-1.c
! 7e6404590ac1c63073db26f5f4f6678f  gcc/testsuite/gcc.c-torture/execute/980716-1.c
! 31b527163cf6da493944a59a085e42de  gcc/testsuite/gcc.c-torture/execute/980929-1.c
! f7f3690e06d26fe3df93a615f00e7bcf  gcc/testsuite/gcc.c-torture/execute/981001-1.c
! d458024a3ce484b7eeec9e940b47453e  gcc/testsuite/gcc.c-torture/execute/981019-1.c
! 110c0127fb9c326b19a7638dadb90dc4  gcc/testsuite/gcc.c-torture/execute/981130-1.c
! a1b902b69b18b1b8038fc0bc11d7f046  gcc/testsuite/gcc.c-torture/execute/981206-1.c
! 48d49924121d8bdb210a9eb31ffb73f9  gcc/testsuite/gcc.c-torture/execute/990106-1.c
! 3bf5d41da81b359d7989e3806d53c054  gcc/testsuite/gcc.c-torture/execute/990106-2.c
! 265d08fe4e9de11c06a53cbde7070e09  gcc/testsuite/gcc.c-torture/execute/990117-1.c
! f8ae73f2e9d855e98fc50237683b8bd1  gcc/testsuite/gcc.c-torture/execute/990127-1.c
  12e3d02ab9c0ee0d66a2855a8c64ab0f  gcc/testsuite/gcc.c-torture/execute/990127-2.c
! 03bd67dbfb994f924c6eb62cb27d1597  gcc/testsuite/gcc.c-torture/execute/990128-1.c
! 668e0dd9e64f3ec52a2e07fcff50e8b0  gcc/testsuite/gcc.c-torture/execute/990130-1.c
! 226b5531208032a88f4eefc687af07de  gcc/testsuite/gcc.c-torture/execute/990208-1.c
  d62dcb1dfc3a20dbbbac639e4bd4af46  gcc/testsuite/gcc.c-torture/execute/990211-1.c
! 26ee9b0613b840d88af1c9366aa11286  gcc/testsuite/gcc.c-torture/execute/990222-1.c
! b76c8070bf46e72e11be01f72b91c100  gcc/testsuite/gcc.c-torture/execute/990324-1.c
! 96d4bf5e6d54c7df3434a886003927a6  gcc/testsuite/gcc.c-torture/execute/990326-1.c
! fd30d3d0f75fe61e16537631a9dac035  gcc/testsuite/gcc.c-torture/execute/990404-1.c
  276a5bbab80594a28f6a1b56c2932e9e  gcc/testsuite/gcc.c-torture/execute/990413-2.c
! 37c97c8de7c6537820d73e236154a123  gcc/testsuite/gcc.c-torture/execute/990513-1.c
! be4e8d3fa2cfca60007893e5dc3f675d  gcc/testsuite/gcc.c-torture/execute/990524-1.c
! 82a1f7e2817620ad5b0d94e95073e5bf  gcc/testsuite/gcc.c-torture/execute/990525-1.c
! 00c11583abf5b52677abc712f62ac225  gcc/testsuite/gcc.c-torture/execute/990525-2.c
! 6b33047fca277802677616310aa13117  gcc/testsuite/gcc.c-torture/execute/990527-1.c
! b180ad57eb1b031ad4ff0ec4f8ec68d7  gcc/testsuite/gcc.c-torture/execute/990531-1.c
! 814a12c19487f19a547ff69b995b87a7  gcc/testsuite/gcc.c-torture/execute/990604-1.c
! cdbdc5f7e0f2e1708217ab06bacc9eb0  gcc/testsuite/gcc.c-torture/execute/990628-1.c
! 2ab887784765f41345f639c8acae12af  gcc/testsuite/gcc.c-torture/execute/990804-1.c
! d8ecd526b09e07763c997cf4f45e1c4f  gcc/testsuite/gcc.c-torture/execute/990811-1.c
! 03aed09d272e4afeb7e2a5b017377f80  gcc/testsuite/gcc.c-torture/execute/990826-0.c
! a73aa49920cb0eb417231013b41f0942  gcc/testsuite/gcc.c-torture/execute/990827-1.c
! c0d419ebee00f93d1619a98fbca1661e  gcc/testsuite/gcc.c-torture/execute/990829-1.c
! 9022813a0daef54a10f304e487931919  gcc/testsuite/gcc.c-torture/execute/990923-1.c
! f218f5be7e4d802edcac4df7b6626ba1  gcc/testsuite/gcc.c-torture/execute/991014-1.c
! 42b9374abfc2ea4adb63b49b781c5c9f  gcc/testsuite/gcc.c-torture/execute/991016-1.c
! 810df490bad4c646ea3d306e03987743  gcc/testsuite/gcc.c-torture/execute/991019-1.c
! dffba9c251a48effd4cf47d0f4984130  gcc/testsuite/gcc.c-torture/execute/991023-1.c
! 3f46315aa205ebcea54b499955031b15  gcc/testsuite/gcc.c-torture/execute/991030-1.c
! f561a9b0f83b28ee4678655162f475d2  gcc/testsuite/gcc.c-torture/execute/991112-1.c
! 54796db812f2a0d5f0aeee27084f4545  gcc/testsuite/gcc.c-torture/execute/991118-1.c
! 7a9921b863c2136f989a1ff05da99043  gcc/testsuite/gcc.c-torture/execute/991201-1.c
! 38cd48e287b43161b84c3551d5ffc268  gcc/testsuite/gcc.c-torture/execute/991202-1.c
! ffa56b8f1da194136fe0dc42ec1c5396  gcc/testsuite/gcc.c-torture/execute/991202-2.c
! ea5cc37862d9328e904262478ea2dfb1  gcc/testsuite/gcc.c-torture/execute/991202-3.c
! 65560526b18a8ad5b77cb2df4d247923  gcc/testsuite/gcc.c-torture/execute/991216-1.c
! 50cee2e180267bd94fe3457f05373899  gcc/testsuite/gcc.c-torture/execute/991216-2.c
! 3b0b5cb8c0c3a0f249580cdbec4ca332  gcc/testsuite/gcc.c-torture/execute/991216-4.c
! 1f049cb48a0c18f9ccacbb678bd1772c  gcc/testsuite/gcc.c-torture/execute/991221-1.c
! ee18345ed511ceff311552d973c6426f  gcc/testsuite/gcc.c-torture/execute/991227-1.c
! 220ea595eb4fba31918096db7ae47ada  gcc/testsuite/gcc.c-torture/execute/991228-1.c
! 50b7b403a3dd7a84e4b0576329f37247  gcc/testsuite/gcc.c-torture/execute/alias-1.c
! 3c04a8a56d5c5c2eea89e9316d57decb  gcc/testsuite/gcc.c-torture/execute/alias-2.c
! ab29943fe82dfa750b41d94433d65a3f  gcc/testsuite/gcc.c-torture/execute/alias-3.c
! 54f160fd36e3e44f683867a0f05bb036  gcc/testsuite/gcc.c-torture/execute/alias-4.c
  153f4cd8d14833813ddc813d134907a5  gcc/testsuite/gcc.c-torture/execute/alias-access-path-1.c
  3e965258a91e683ffbdb95fd5b92432e  gcc/testsuite/gcc.c-torture/execute/alias-access-path-2.c
! fc721cce5be8ce64fe33e6dc0642bb99  gcc/testsuite/gcc.c-torture/execute/align-1.c
! 7ca7bc1736d76c2e0dfe538487304db7  gcc/testsuite/gcc.c-torture/execute/align-2.c
! 1e5e4ed9841a187525ff197d02b76894  gcc/testsuite/gcc.c-torture/execute/align-3.c
  ddf28eee61ee7c96a733b2d3efb869bb  gcc/testsuite/gcc.c-torture/execute/align-nest.c
! daaca7e7c65930c17e502d6135bbb4ca  gcc/testsuite/gcc.c-torture/execute/alloca-1.c
! f7115773ad149c84de5efae058524742  gcc/testsuite/gcc.c-torture/execute/anon-1.c
! ba3504fd31fd2b4b253681b466e73c69  gcc/testsuite/gcc.c-torture/execute/arith-1.c
! fb49434648149d8e4ebba8e9999b837b  gcc/testsuite/gcc.c-torture/execute/arith-rand-ll.c
! cd80569e9db1effce40461ad36f58135  gcc/testsuite/gcc.c-torture/execute/arith-rand.c
  59c3102287deffef87acac92e00cbf9a  gcc/testsuite/gcc.c-torture/execute/ashldi-1.c
  7ca87d791c2a3df7dfc8696e68574d78  gcc/testsuite/gcc.c-torture/execute/ashrdi-1.c
  63a4540471c3712f0fe78571ba18c6fa  gcc/testsuite/gcc.c-torture/execute/bcp-1.c
! c26aa7e0feeb518b37a1a04c165a9f9b  gcc/testsuite/gcc.c-torture/execute/bf-layout-1.c
! cf491abd2df5513193c96d9605cc5bc8  gcc/testsuite/gcc.c-torture/execute/bf-pack-1.c
! 32808e6c66c89fb17b1631fcfaa6ab2b  gcc/testsuite/gcc.c-torture/execute/bf-sign-1.c
! 7e81dc4cdd5c62169f611e513538c801  gcc/testsuite/gcc.c-torture/execute/bf-sign-2.c
! 57a7c08d79c2c2f2e65b96c5d353aad5  gcc/testsuite/gcc.c-torture/execute/bf64-1.c
  98152a763419b41838c8c9d841ad29a6  gcc/testsuite/gcc.c-torture/execute/bitfld-1.c
  f07696fa0951cfa132406e3311f1250c  gcc/testsuite/gcc.c-torture/execute/bitfld-10.c
  005d6505de633a2ed0991ac8a94c4b8e  gcc/testsuite/gcc.c-torture/execute/bitfld-2.c
--- 37541,37862 ----
  2e368329bfad3d99e406eade7d55032d  gcc/testsuite/gcc.c-torture/execute/20191023-1.c
  b4ae081235a5dc1e90b1adea7befe6cf  gcc/testsuite/gcc.c-torture/execute/20210505-1.c
  318f0b7324815bae3c8b8b75f6381ddb  gcc/testsuite/gcc.c-torture/execute/20221006-1.c
+ 6c8b0c80bcb3252d69f9483108436dd5  gcc/testsuite/gcc.c-torture/execute/20230509-1.c
+ f0b23e7ef7ef09b73b984a2326ca96bd  gcc/testsuite/gcc.c-torture/execute/20230510-1.c
  c152b22273bc18a4c77712056ad155b2  gcc/testsuite/gcc.c-torture/execute/20230630-1.c
  7b2e318b0268b72be90a65cf76db847a  gcc/testsuite/gcc.c-torture/execute/20230630-2.c
! 912059e83a735f932b9b42d00fb0c7d8  gcc/testsuite/gcc.c-torture/execute/20230630-3.c
! 0185fecb4499ba1382514035b9f9e8e3  gcc/testsuite/gcc.c-torture/execute/20230630-4.c
! 5f8dc3073ddb17faad8fe6299ce34fb7  gcc/testsuite/gcc.c-torture/execute/20230802-1.c
! edfe80eb63973b65777d4b076b020069  gcc/testsuite/gcc.c-torture/execute/900409-1.c
! bef8356f0725f59a5b641e06f11e10c0  gcc/testsuite/gcc.c-torture/execute/920202-1.c
! da34b8c23c4d6092ccb4bc50e1842302  gcc/testsuite/gcc.c-torture/execute/920302-1.c
! 904b2c2c9ce152b2ac642c8a88870912  gcc/testsuite/gcc.c-torture/execute/920409-1.c
! c0c3449adb97adbd5045e5dc08272dd2  gcc/testsuite/gcc.c-torture/execute/920410-1.c
! e59fba5abe2f9c3691dedeff985b9051  gcc/testsuite/gcc.c-torture/execute/920411-1.c
! 5fce8a998368f061c38f32ae5ac8e598  gcc/testsuite/gcc.c-torture/execute/920415-1.c
! 02d31fd330bdec7aebee6b1b446f6b8c  gcc/testsuite/gcc.c-torture/execute/920428-1.c
! a039ae8efa811c91f5b5a645a50d58b8  gcc/testsuite/gcc.c-torture/execute/920428-2.c
! ad087af70f4bfb1379bdfcc094f21b20  gcc/testsuite/gcc.c-torture/execute/920429-1.c
! bae3040ebcd6f099754dfa4e0ab01d66  gcc/testsuite/gcc.c-torture/execute/920501-1.c
! b7e9d89cc440725f54ffc347e96c79dc  gcc/testsuite/gcc.c-torture/execute/920501-2.c
! 251ee16c3c6c68beca361e2d5eeba6ef  gcc/testsuite/gcc.c-torture/execute/920501-3.c
! e9ae91555b771253b227470135f476fa  gcc/testsuite/gcc.c-torture/execute/920501-4.c
! 152adf56e56f217ec58bcd03b66e3d6c  gcc/testsuite/gcc.c-torture/execute/920501-5.c
! fae6db6360c6f84270e30c1128be14a8  gcc/testsuite/gcc.c-torture/execute/920501-6.c
! 707c7b3fcf6f44b96f2ab9436a18a2ee  gcc/testsuite/gcc.c-torture/execute/920501-7.c
! c807cd4552b4c2e21da54fe3969ebb98  gcc/testsuite/gcc.c-torture/execute/920501-8.c
! 026af48a76b68e373037086079dc4ce8  gcc/testsuite/gcc.c-torture/execute/920501-9.c
! 3f116567a929eb42198f09c690abb8ae  gcc/testsuite/gcc.c-torture/execute/920506-1.c
! 133b93ac05ce9cc77e7e50e5ffa79bbf  gcc/testsuite/gcc.c-torture/execute/920520-1.c
! 84cfabce66b17bbab824e5a6cbeb3d8d  gcc/testsuite/gcc.c-torture/execute/920603-1.c
! 4643ea7aecaf04e4abd28020d7ad2740  gcc/testsuite/gcc.c-torture/execute/920604-1.c
  2603675161614674c793620ef61c57d6  gcc/testsuite/gcc.c-torture/execute/920612-1.c
! 7487f781526c9ca3759552ea185f5401  gcc/testsuite/gcc.c-torture/execute/920612-2.c
! 95454344ca09595aa0e160ea1aa46dbe  gcc/testsuite/gcc.c-torture/execute/920618-1.c
! ff523baef823a92dc716243bddc02db7  gcc/testsuite/gcc.c-torture/execute/920625-1.c
! b129224eadd2d6e97c69bea530680e92  gcc/testsuite/gcc.c-torture/execute/920710-1.c
  935f2ebde080a2ed34e886958029138f  gcc/testsuite/gcc.c-torture/execute/920711-1.c
! 8bf6321ba971ba934770b93e4d262cc5  gcc/testsuite/gcc.c-torture/execute/920721-1.c
! fa0f65935f7c08c30c51b8ca56de83cf  gcc/testsuite/gcc.c-torture/execute/920721-2.c
! 83246cb9c8e8c0ddafe9b76807fd0288  gcc/testsuite/gcc.c-torture/execute/920721-3.c
! 83f55b273a8b515f8f7446dd7fdf8dec  gcc/testsuite/gcc.c-torture/execute/920721-4.c
! a80b4e49c7d9d81a116d0356dc2e3024  gcc/testsuite/gcc.c-torture/execute/920726-1.c
! 22657caf3a133f0b7ee373fd622c2c79  gcc/testsuite/gcc.c-torture/execute/920728-1.c
! 52b97c5a7945d99d7d4d5b64168df12a  gcc/testsuite/gcc.c-torture/execute/920730-1.c
! 73241bb6ec407e2e59a0adf2618d403c  gcc/testsuite/gcc.c-torture/execute/920731-1.c
! 1375f146e552090b1cda3c894c3dc36f  gcc/testsuite/gcc.c-torture/execute/920810-1.c
! 815a1577c33e3ff47862c03cb4bc4a47  gcc/testsuite/gcc.c-torture/execute/920812-1.c
! 365151c558da58b0f94ef210f4426401  gcc/testsuite/gcc.c-torture/execute/920829-1.c
! 2a89bcaaf4dcc99032d2ddc9ce16fc0d  gcc/testsuite/gcc.c-torture/execute/920908-1.c
! f152ed1163afd79580773b3cb62f0f60  gcc/testsuite/gcc.c-torture/execute/920908-2.c
! 7ba03003a270a537f3e44fee570d6379  gcc/testsuite/gcc.c-torture/execute/920909-1.c
! 67710536da1867de99f71deb7d01126e  gcc/testsuite/gcc.c-torture/execute/920922-1.c
! 8730bcba222606c29bf19354a3415708  gcc/testsuite/gcc.c-torture/execute/920929-1.c
! 692e28a7b3513b3e034046e32c072842  gcc/testsuite/gcc.c-torture/execute/921006-1.c
! f1c5e845af644547821f7339d634fea5  gcc/testsuite/gcc.c-torture/execute/921007-1.c
! 3cc72e38f9d25f7a0860d03dd1be2da2  gcc/testsuite/gcc.c-torture/execute/921013-1.c
! ffe3b600c6e78fdeb1f995c3cb829cd5  gcc/testsuite/gcc.c-torture/execute/921016-1.c
! e8a0b8a409a0144212183b036d26388f  gcc/testsuite/gcc.c-torture/execute/921017-1.c
! 299f50cd42b6a5ada0c3b1316b9d946c  gcc/testsuite/gcc.c-torture/execute/921019-1.c
! 40cd5ca54f9ba0126eb44965fab1bf94  gcc/testsuite/gcc.c-torture/execute/921019-2.c
! 13acec7278653c964bab2effd1894a5c  gcc/testsuite/gcc.c-torture/execute/921029-1.c
! 329447902d31ab34ad55d9151c07bc4b  gcc/testsuite/gcc.c-torture/execute/921104-1.c
! 1e73c5c0579c917128bb1e648f7bb833  gcc/testsuite/gcc.c-torture/execute/921110-1.c
! 1013dcec67201e78dbf720ea8b41839e  gcc/testsuite/gcc.c-torture/execute/921112-1.c
! 6b5559b66ec9c36984c249f013fb6937  gcc/testsuite/gcc.c-torture/execute/921113-1.c
! 800a3b0026c4097095e6992110b0e8c9  gcc/testsuite/gcc.c-torture/execute/921117-1.c
! ac269dd995c84f734afd30756ff81e10  gcc/testsuite/gcc.c-torture/execute/921123-1.c
! 247482923a6dedbf5fcfc720db6130ee  gcc/testsuite/gcc.c-torture/execute/921123-2.c
! 554e509d62b799ff87d8c8b1c2ccf073  gcc/testsuite/gcc.c-torture/execute/921124-1.c
! 8795be152788b60e9536801e3bd33f1d  gcc/testsuite/gcc.c-torture/execute/921202-1.c
! a47c0011631dd4cc39a80f8734e06b23  gcc/testsuite/gcc.c-torture/execute/921202-2.c
! 902de173daa54de39094ae94c9974850  gcc/testsuite/gcc.c-torture/execute/921204-1.c
! 47d306120ed268c588327ac76593b288  gcc/testsuite/gcc.c-torture/execute/921207-1.c
! f1d0d628003631159792f47378712c64  gcc/testsuite/gcc.c-torture/execute/921208-1.c
! f3bbb55ff9a594ff98ed9652dbbbdabc  gcc/testsuite/gcc.c-torture/execute/921208-2.c
! 467eed573878573f8ad09543deae3d12  gcc/testsuite/gcc.c-torture/execute/921215-1.c
! e0d9bb7b6ce2e258e026def06b0fc6f6  gcc/testsuite/gcc.c-torture/execute/921218-1.c
! 7e05fa6d8f5c2fd906885e4eade05094  gcc/testsuite/gcc.c-torture/execute/921218-2.c
! f1e303d8065b146adcf00018fa904233  gcc/testsuite/gcc.c-torture/execute/930106-1.c
! adde02f7614f99541d3ef86d477a9c29  gcc/testsuite/gcc.c-torture/execute/930111-1.c
! 0042644a024b397e84df1efda48da6d3  gcc/testsuite/gcc.c-torture/execute/930123-1.c
! 7d0b1928dd4d6a26b1a008ed4d5e6acf  gcc/testsuite/gcc.c-torture/execute/930126-1.c
! 26495865a08109bb99cf6831f1089b88  gcc/testsuite/gcc.c-torture/execute/930208-1.c
! 1d9494f3ca4b165382f28fa61da96dac  gcc/testsuite/gcc.c-torture/execute/930406-1.c
! fcfed3282d4634ee7e4a8d06ed1514f8  gcc/testsuite/gcc.c-torture/execute/930408-1.c
! 50a4e86a8467f890943634e9be1e1228  gcc/testsuite/gcc.c-torture/execute/930429-1.c
! 36e5369af817619bcf4d0ccb1463cecc  gcc/testsuite/gcc.c-torture/execute/930429-2.c
! 996ccd593622cdb5fd443bdd26f9f9c2  gcc/testsuite/gcc.c-torture/execute/930513-1.c
! 52a6008e073a7345f39601c44bb82d70  gcc/testsuite/gcc.c-torture/execute/930513-2.c
! c615e631c549fcb9f251bda43973a220  gcc/testsuite/gcc.c-torture/execute/930518-1.c
  a7f8231c567438f27ed4d4576d02f39a  gcc/testsuite/gcc.c-torture/execute/930526-1.c
! 26248d7eaff3159194ef5e71e77678e2  gcc/testsuite/gcc.c-torture/execute/930527-1.c
  c9bddda9d0b04fe2c935fe41d75f9617  gcc/testsuite/gcc.c-torture/execute/930529-1.c
! 3a417c03d2d7ebc97f35d5ba76914ec6  gcc/testsuite/gcc.c-torture/execute/930603-1.c
! d49643b46d476992ef08c3165531bb27  gcc/testsuite/gcc.c-torture/execute/930603-2.c
! 133d2c9cc266440944c18a01b642ff42  gcc/testsuite/gcc.c-torture/execute/930603-3.c
! c3b83fcbdda798d14d7c64a1c033bebf  gcc/testsuite/gcc.c-torture/execute/930608-1.c
! 558ef2702ca27a8bac255e1835302765  gcc/testsuite/gcc.c-torture/execute/930614-1.c
! c867d1f0be43c421cbad940f9e2b4b97  gcc/testsuite/gcc.c-torture/execute/930614-2.c
! bbf9534b30832c743dd73a9367cc46dd  gcc/testsuite/gcc.c-torture/execute/930621-1.c
! 99a0a4cb7e24487b38fc6f269ccd5a5b  gcc/testsuite/gcc.c-torture/execute/930622-1.c
! cfffe96b108c34521dd6e87241b58a17  gcc/testsuite/gcc.c-torture/execute/930622-2.c
! b362a7cfe44bbcd5e995f0e67475d47f  gcc/testsuite/gcc.c-torture/execute/930628-1.c
! e54c3547f1a52d1f94101a5b9f6f370a  gcc/testsuite/gcc.c-torture/execute/930630-1.c
! 9c0cb8851bc8b49ad7e3801b48e6b5ee  gcc/testsuite/gcc.c-torture/execute/930702-1.c
! a7d931ce6bf7ba2eef7f841ba2f27783  gcc/testsuite/gcc.c-torture/execute/930713-1.c
! a2693b2e617677ff2cbf40fe84de78c8  gcc/testsuite/gcc.c-torture/execute/930718-1.c
! 21d4522874a22718501dbdc1bd20749c  gcc/testsuite/gcc.c-torture/execute/930719-1.c
! 5d87b61e6c0d2f0a34d9c1e8386c3786  gcc/testsuite/gcc.c-torture/execute/930725-1.c
! 1deb8b0274b819851507445ff2dc653b  gcc/testsuite/gcc.c-torture/execute/930818-1.c
! 3ff3247a564eef9f6c282a2381f1346a  gcc/testsuite/gcc.c-torture/execute/930916-1.c
! a98a2980bb46f7d321dab0d0fb4cc29c  gcc/testsuite/gcc.c-torture/execute/930921-1.c
! fde3469efa141691a29fc8d5e16930fd  gcc/testsuite/gcc.c-torture/execute/930929-1.c
! bd89c0c8ddfe400a5d58f621a21c4963  gcc/testsuite/gcc.c-torture/execute/930930-1.c
! 268a87c8fa2abd1c532bf9004ae31359  gcc/testsuite/gcc.c-torture/execute/930930-2.c
! a148ead2f7099a47995d7cd02034237c  gcc/testsuite/gcc.c-torture/execute/931002-1.c
! a99c7eba60b7674c4c2cfdbd0c5c9dc8  gcc/testsuite/gcc.c-torture/execute/931004-1.c
! e12850d228bbe606957dd60705c70238  gcc/testsuite/gcc.c-torture/execute/931004-10.c
! 46a4166b0626164360a8cb158d8471d4  gcc/testsuite/gcc.c-torture/execute/931004-11.c
! 648e342994c94a8dfb33ed8daff72cc4  gcc/testsuite/gcc.c-torture/execute/931004-12.c
! 49c402e876a9e64199f19caf1c06855b  gcc/testsuite/gcc.c-torture/execute/931004-13.c
! 55683c7561d730ba320abcb58d96d98a  gcc/testsuite/gcc.c-torture/execute/931004-14.c
! cd957e13da575f6981a32324ea475272  gcc/testsuite/gcc.c-torture/execute/931004-2.c
! f5ce5fcc310c82f1d20fb0fe9ece8216  gcc/testsuite/gcc.c-torture/execute/931004-3.c
! 103ed8b41dbf3ac7499781250be5899a  gcc/testsuite/gcc.c-torture/execute/931004-4.c
! ebef54586622515d38701bd425fa7ee7  gcc/testsuite/gcc.c-torture/execute/931004-5.c
! 6bec4fec42d92fd14fc3f41bb7752673  gcc/testsuite/gcc.c-torture/execute/931004-6.c
! 9466fb399c2ce3d5cdb7da7ec4d102a4  gcc/testsuite/gcc.c-torture/execute/931004-7.c
! 84dbd06d4562ca88c4b7c771fdd25443  gcc/testsuite/gcc.c-torture/execute/931004-8.c
! 9419dcf79dbc009210a83fb96af94ede  gcc/testsuite/gcc.c-torture/execute/931004-9.c
! 78930e78e7ec4204750129f3827483d3  gcc/testsuite/gcc.c-torture/execute/931005-1.c
! 7936d0725500e1ea6c4351c27190b853  gcc/testsuite/gcc.c-torture/execute/931009-1.c
! 770b0b1be82b487a9b6050ddb101d298  gcc/testsuite/gcc.c-torture/execute/931012-1.c
! 2d6707e61fcad1bf9fde92a42dc60415  gcc/testsuite/gcc.c-torture/execute/931017-1.c
! 4117cd8749f90c8a5f16503099f05ce1  gcc/testsuite/gcc.c-torture/execute/931018-1.c
! b80c3bf02ed2ae00959612c6021cd989  gcc/testsuite/gcc.c-torture/execute/931031-1.c
! c9d848d371a688fd60f7c17f3f35a766  gcc/testsuite/gcc.c-torture/execute/931102-1.c
! 32e54fb5ef4ce703304aaa1b0f7b9a78  gcc/testsuite/gcc.c-torture/execute/931102-2.c
! 873f28cda35472c54606bdfb59e5ebdd  gcc/testsuite/gcc.c-torture/execute/931110-1.c
! e84249671cb40c7a6d9c84c5af81b793  gcc/testsuite/gcc.c-torture/execute/931110-2.c
! 55e98bb47b059b879c58cfce6f4daf87  gcc/testsuite/gcc.c-torture/execute/931208-1.c
! 2e5f4dbe3e39189228457f90d3c0017e  gcc/testsuite/gcc.c-torture/execute/931228-1.c
! fd63fa6539c4cb47a3202514d8be043a  gcc/testsuite/gcc.c-torture/execute/940115-1.c
! 99bd16c8c9625152dcb6a1f5be875249  gcc/testsuite/gcc.c-torture/execute/940122-1.c
! aa4a1aa5b2c0507f462108d2de2c009b  gcc/testsuite/gcc.c-torture/execute/941014-1.c
! 101dca2c31a18fa63da6dd8fe18defa1  gcc/testsuite/gcc.c-torture/execute/941014-2.c
! 29b7f214d0351d2c3ddcdf0b4c00b739  gcc/testsuite/gcc.c-torture/execute/941015-1.c
! fb682984ea6f0ad46fefedd8b9d15b63  gcc/testsuite/gcc.c-torture/execute/941021-1.c
! 434c6aefa683194fc02a9959490c0487  gcc/testsuite/gcc.c-torture/execute/941025-1.c
! ca63b807749bece282772e73e4730dbf  gcc/testsuite/gcc.c-torture/execute/941031-1.c
! bd33abb314ba00401b203cb55aaa1fed  gcc/testsuite/gcc.c-torture/execute/941101-1.c
! 76a0cf7db227260ae79d077e57ec08db  gcc/testsuite/gcc.c-torture/execute/941110-1.c
! d173c69f9008284c5c6d475384c3ad30  gcc/testsuite/gcc.c-torture/execute/941202-1.c
! d702d99a5fde727b5cfeaa4819f1b620  gcc/testsuite/gcc.c-torture/execute/950221-1.c
! c921891c7b56247aa8ebe117a75ca50c  gcc/testsuite/gcc.c-torture/execute/950322-1.c
! ee6e1976a46aba5ab97761fc4f78b99c  gcc/testsuite/gcc.c-torture/execute/950426-1.c
! 6eb1406fbedd981ccbb1427eab8fabe3  gcc/testsuite/gcc.c-torture/execute/950426-2.c
! a68a4ac4a5bd3f87a58714d617385967  gcc/testsuite/gcc.c-torture/execute/950503-1.c
! 012593f7317cdd0b95ca6bb0c2ee06f1  gcc/testsuite/gcc.c-torture/execute/950511-1.c
! c326f8c78d3c0b883ce51b947ee38ee3  gcc/testsuite/gcc.c-torture/execute/950512-1.c
! d843725e9eabf3981eaab15fe2a801bb  gcc/testsuite/gcc.c-torture/execute/950605-1.c
! 53253226dfab8f5e560b02ad3f54badc  gcc/testsuite/gcc.c-torture/execute/950607-1.c
! bad9fdd6389192bdfaffd66e47903d8b  gcc/testsuite/gcc.c-torture/execute/950607-2.c
! 3cb07a21d0671a118dac40f9fcaac3e6  gcc/testsuite/gcc.c-torture/execute/950612-1.c
! 88ac42f315e7f28df98b117b4bc35610  gcc/testsuite/gcc.c-torture/execute/950621-1.c
! 4c0b0425958fee481b1acf568aebc8c6  gcc/testsuite/gcc.c-torture/execute/950628-1.c
! 764804476a507ed53d68f13becdfab99  gcc/testsuite/gcc.c-torture/execute/950704-1.c
! e1c75256bdaedfcfa4e6f9eaf3791898  gcc/testsuite/gcc.c-torture/execute/950706-1.c
! 47c663511d8ae86aefeb7acfbdb19dd4  gcc/testsuite/gcc.c-torture/execute/950710-1.c
! dc357ae343f0e6cad5941ce16ac92a43  gcc/testsuite/gcc.c-torture/execute/950714-1.c
! 9f460ab01330c7e83ac45c6d22c00ba7  gcc/testsuite/gcc.c-torture/execute/950809-1.c
! 782b50eecbd02ea49938d45ab0e9cfb2  gcc/testsuite/gcc.c-torture/execute/950906-1.c
! f744193a652daf7489fd88fc6d8258fc  gcc/testsuite/gcc.c-torture/execute/950915-1.c
! d58a8c283953c67796e8122fe930d52c  gcc/testsuite/gcc.c-torture/execute/950929-1.c
! d4a14be5341d3a3a6121723b4691ae09  gcc/testsuite/gcc.c-torture/execute/951003-1.c
! 5e567d43db22bf63acfc191a2f2301b7  gcc/testsuite/gcc.c-torture/execute/951115-1.c
! d2bd87e9782c2582dc2aa01685c71730  gcc/testsuite/gcc.c-torture/execute/951204-1.c
! 28ba0356749f9c87d340fb0d1a1576d5  gcc/testsuite/gcc.c-torture/execute/960116-1.c
! 41a39d7bf0f0b6a219558a6bf9a85869  gcc/testsuite/gcc.c-torture/execute/960117-1.c
! a92ca120986bf4ca8bfe2c4cd77d7b25  gcc/testsuite/gcc.c-torture/execute/960209-1.c
! ddbae09b07fcf7440e2d0eb1b7506d6f  gcc/testsuite/gcc.c-torture/execute/960215-1.c
! c66f444a8f56073a7a2a890cef9616df  gcc/testsuite/gcc.c-torture/execute/960218-1.c
! 3797ff420a6751211b5bd83fd2d91907  gcc/testsuite/gcc.c-torture/execute/960219-1.c
! 25d3569ef9f8bc3394d577e3e98e9f2b  gcc/testsuite/gcc.c-torture/execute/960301-1.c
! d38efe386550bde9130565d98dde49d7  gcc/testsuite/gcc.c-torture/execute/960302-1.c
! 12c59d39d9c1b43da4271cac231121f2  gcc/testsuite/gcc.c-torture/execute/960311-1.c
! d2928e7595db96ed975828c280e8b3e2  gcc/testsuite/gcc.c-torture/execute/960311-2.c
! b5cb0b221beca9478c580887de36429f  gcc/testsuite/gcc.c-torture/execute/960311-3.c
! 11700db1dd031654ae47206b3635c6b1  gcc/testsuite/gcc.c-torture/execute/960312-1.c
! b8afbc625b3ad1644e26d41b05e767c5  gcc/testsuite/gcc.c-torture/execute/960317-1.c
! afcdab7f0280a0855aadbc5d010212d9  gcc/testsuite/gcc.c-torture/execute/960321-1.c
! b72af588795400ed2f1ac54d9d960c92  gcc/testsuite/gcc.c-torture/execute/960326-1.c
! abafd4667421ac2ca54e15c75f3db851  gcc/testsuite/gcc.c-torture/execute/960327-1.c
! 7f20cef07eab91be4e2ab598167dc59c  gcc/testsuite/gcc.c-torture/execute/960402-1.c
! ed187f5921a4d0742330b75eb6a79a66  gcc/testsuite/gcc.c-torture/execute/960405-1.c
! f6c4f86f191751a4bea39fd39d2099c2  gcc/testsuite/gcc.c-torture/execute/960416-1.c
! 19f513b4ad17665f3874b4b411cb2776  gcc/testsuite/gcc.c-torture/execute/960419-1.c
! 921bda83bd7dab348fbe3ded8bacd887  gcc/testsuite/gcc.c-torture/execute/960419-2.c
! 78f5b4878aad00e0d0b462e4efedaff8  gcc/testsuite/gcc.c-torture/execute/960512-1.c
! 1d96f8b686d55a850257e93faf2c8317  gcc/testsuite/gcc.c-torture/execute/960513-1.c
! f5986b362c4eed1570c24ee15fa9ad54  gcc/testsuite/gcc.c-torture/execute/960521-1.c
! 13d982a6611dfc2fe32643b39ad5071f  gcc/testsuite/gcc.c-torture/execute/960608-1.c
! 091514e516b19bbae9a60dc321de530c  gcc/testsuite/gcc.c-torture/execute/960801-1.c
! cdc44fc613378db2ce36bd7b57e9a319  gcc/testsuite/gcc.c-torture/execute/960802-1.c
! fc2a9e4ac186adec0a5ec0157c0c5bf1  gcc/testsuite/gcc.c-torture/execute/960830-1.c
! 8e542289b0352209e894f1a3b51eda91  gcc/testsuite/gcc.c-torture/execute/960909-1.c
! 10c8e33b809304f03b7f9596dde109fd  gcc/testsuite/gcc.c-torture/execute/961004-1.c
! 6f4b93fed9b478a91d4313aa946b7759  gcc/testsuite/gcc.c-torture/execute/961017-1.c
! cb6608dbc716928cae72352745e28177  gcc/testsuite/gcc.c-torture/execute/961017-2.c
! f13ba96ccde906ad57416d0a6d66d0a3  gcc/testsuite/gcc.c-torture/execute/961026-1.c
! 9228d170c17c7830ab4f1c9b40b58860  gcc/testsuite/gcc.c-torture/execute/961112-1.c
! 74fd8e8183ab6a304fe5c435ec9a4b89  gcc/testsuite/gcc.c-torture/execute/961122-1.c
! 5f4494f0b85a1ec1f3ed876c08c94287  gcc/testsuite/gcc.c-torture/execute/961122-2.c
! a46f8e1a201a6b293d29879f12fd7914  gcc/testsuite/gcc.c-torture/execute/961125-1.c
! 4c8ae8c4ba54443543274735180737af  gcc/testsuite/gcc.c-torture/execute/961206-1.c
! a45b2d7c8fda44a40199ae3f8caa2914  gcc/testsuite/gcc.c-torture/execute/961213-1.c
  1d6728aef023ffe08c8a8cb0292c8d75  gcc/testsuite/gcc.c-torture/execute/961223-1.c
! fe1ccc95ff1660eea013ce5afa41b190  gcc/testsuite/gcc.c-torture/execute/970214-1.c
! f079228125691c0fd5748595a5adebb5  gcc/testsuite/gcc.c-torture/execute/970214-2.c
! 44cff1ab97dbb3b3a8278bd9860be919  gcc/testsuite/gcc.c-torture/execute/970217-1.c
! 6061e429f0588cbab65db2ff96c3e390  gcc/testsuite/gcc.c-torture/execute/970923-1.c
! fe7ee217f2edc41731d43336396d3238  gcc/testsuite/gcc.c-torture/execute/980205.c
! 7496d3f7544233f535e8192289724190  gcc/testsuite/gcc.c-torture/execute/980223.c
! 764043438d44344ac6af50498604667e  gcc/testsuite/gcc.c-torture/execute/980424-1.c
! 5f05a2c5b20f664774406a0a28730e88  gcc/testsuite/gcc.c-torture/execute/980505-1.c
! 2dc582a90d69f20ea4741a7c0f2fe224  gcc/testsuite/gcc.c-torture/execute/980505-2.c
! 2439052bed714897b57be4e24a76f96b  gcc/testsuite/gcc.c-torture/execute/980506-1.c
! b1cab00d5567331a004a0c2ccaa14490  gcc/testsuite/gcc.c-torture/execute/980506-2.c
! 64a206abbc07d276565d19c2a8edac68  gcc/testsuite/gcc.c-torture/execute/980506-3.c
! 027d88ef78e5c21f1df3740650971deb  gcc/testsuite/gcc.c-torture/execute/980526-1.c
! a8ec4326c0a968b2cab722cf9f54dc78  gcc/testsuite/gcc.c-torture/execute/980526-2.c
! e6b1cd9c7d3e81decdb741fa33d5adc1  gcc/testsuite/gcc.c-torture/execute/980526-3.c
! 924ec30fc9e518ad6bd30fa45c9bdfe0  gcc/testsuite/gcc.c-torture/execute/980602-1.c
! 3d60a43609d31deeeed956421f23ace6  gcc/testsuite/gcc.c-torture/execute/980602-2.c
! 877078367941e83dbb846312b70fda9a  gcc/testsuite/gcc.c-torture/execute/980604-1.c
! ae786b5dee7610e99a14202f131e8a3f  gcc/testsuite/gcc.c-torture/execute/980605-1.c
  75a111f02af5f8ef41c780ade8a83c24  gcc/testsuite/gcc.c-torture/execute/980608-1.c
! 196f82a80686c132b24929f6dc6ff86a  gcc/testsuite/gcc.c-torture/execute/980612-1.c
! 6081abb625b52544f9c0b88e8cbac7b6  gcc/testsuite/gcc.c-torture/execute/980617-1.c
! c572782faed563baafd6fbc36bad40c7  gcc/testsuite/gcc.c-torture/execute/980618-1.c
! 7dae269b454cc1f3525351a3b49f5147  gcc/testsuite/gcc.c-torture/execute/980701-1.c
  159a5b2e3f7eaec6e9a45332f1eef639  gcc/testsuite/gcc.c-torture/execute/980707-1.c
! 15b572e1c993eb73db92eb56b1acfa4a  gcc/testsuite/gcc.c-torture/execute/980709-1.c
! 83d8f323631e82e757096d0df9e2ca25  gcc/testsuite/gcc.c-torture/execute/980716-1.c
! c90d5401d9399e4f670edc73a77c1dbc  gcc/testsuite/gcc.c-torture/execute/980929-1.c
! 2576f90fc94d14a0e0c7fdfc9ebe1f74  gcc/testsuite/gcc.c-torture/execute/981001-1.c
! dd85399daa530270a4aa76a28f177ef1  gcc/testsuite/gcc.c-torture/execute/981019-1.c
! 9b27aada1093dbad33c0b09084ae81b7  gcc/testsuite/gcc.c-torture/execute/981130-1.c
! 0c7162e84a01edf45bf9444b40fb208a  gcc/testsuite/gcc.c-torture/execute/981206-1.c
! 57e43687af4c8079f3abd1fbb6d352b8  gcc/testsuite/gcc.c-torture/execute/990106-1.c
! a9e5f7c7cc17d44c092143c389c2c0c7  gcc/testsuite/gcc.c-torture/execute/990106-2.c
! fdd739b79c7c953819d7856a9fcea541  gcc/testsuite/gcc.c-torture/execute/990117-1.c
! fe7d06d71f5b4d54f5bbb2c1dee37d8a  gcc/testsuite/gcc.c-torture/execute/990127-1.c
  12e3d02ab9c0ee0d66a2855a8c64ab0f  gcc/testsuite/gcc.c-torture/execute/990127-2.c
! 0ca7d20cbf3d03e679ef69cc9e655e8c  gcc/testsuite/gcc.c-torture/execute/990128-1.c
! 523ea55d3a8a4016a6338af3ec6a3409  gcc/testsuite/gcc.c-torture/execute/990130-1.c
! d4bea50b1ce8adc19622033709039b6b  gcc/testsuite/gcc.c-torture/execute/990208-1.c
  d62dcb1dfc3a20dbbbac639e4bd4af46  gcc/testsuite/gcc.c-torture/execute/990211-1.c
! e851f87b544c8868fcfdd68d88024f36  gcc/testsuite/gcc.c-torture/execute/990222-1.c
! 347ff3a67d16f9bbeef109e1993b120f  gcc/testsuite/gcc.c-torture/execute/990324-1.c
! 1aceb1e0584f0fe53d976c8981af3b3f  gcc/testsuite/gcc.c-torture/execute/990326-1.c
! 1d3db7d74adcd425a6df707572c7e9c5  gcc/testsuite/gcc.c-torture/execute/990404-1.c
  276a5bbab80594a28f6a1b56c2932e9e  gcc/testsuite/gcc.c-torture/execute/990413-2.c
! a21ede7611d0fbdbca39bde3616305cf  gcc/testsuite/gcc.c-torture/execute/990513-1.c
! 1da48d0ab05203b49c6c5d15e119a00e  gcc/testsuite/gcc.c-torture/execute/990524-1.c
! c8434e64b3eeca86fe56018601e4387b  gcc/testsuite/gcc.c-torture/execute/990525-1.c
! 24669abd6ada35764b0d04809ddeb416  gcc/testsuite/gcc.c-torture/execute/990525-2.c
! d969d937e6448c26e12006f09342bd00  gcc/testsuite/gcc.c-torture/execute/990527-1.c
! 1c36c16807235c770f650423fbaa33a4  gcc/testsuite/gcc.c-torture/execute/990531-1.c
! 11e01e633f1fc362ec2067ae39f8b300  gcc/testsuite/gcc.c-torture/execute/990604-1.c
! d032ff755ef9d629aa312ddc53816352  gcc/testsuite/gcc.c-torture/execute/990628-1.c
! 8edca4ccb428bc782bdeb8593a35408b  gcc/testsuite/gcc.c-torture/execute/990804-1.c
! e23023ddd3f80e1ad291f49c0ce1c59d  gcc/testsuite/gcc.c-torture/execute/990811-1.c
! 3fd2ce347c967e4c5f1daad14f78bd7b  gcc/testsuite/gcc.c-torture/execute/990826-0.c
! af4eab4f33a7ada2dfa191f5896eaa5c  gcc/testsuite/gcc.c-torture/execute/990827-1.c
! ac4088866c759817bc1fed03c47eadd7  gcc/testsuite/gcc.c-torture/execute/990829-1.c
! 4730867bb6660cf62cba11fe22176310  gcc/testsuite/gcc.c-torture/execute/990923-1.c
! a657d8c9303730e8ebd3e0c5f8dd8152  gcc/testsuite/gcc.c-torture/execute/991014-1.c
! 7ffee1b8a36e64952d82cfbd3f7215dc  gcc/testsuite/gcc.c-torture/execute/991016-1.c
! e467cec967f235938e89bbf622bc9341  gcc/testsuite/gcc.c-torture/execute/991019-1.c
! 77f1b42fced2584a954a658ff610683b  gcc/testsuite/gcc.c-torture/execute/991023-1.c
! ac830aaa3325f0825d8ba79f5bcc8a95  gcc/testsuite/gcc.c-torture/execute/991030-1.c
! 13d0c731033be0d8c365b04803b8248a  gcc/testsuite/gcc.c-torture/execute/991112-1.c
! 095105bc76fd10a1a8d17b4998010c07  gcc/testsuite/gcc.c-torture/execute/991118-1.c
! 0d579933b6a3ed1da2b23bf42e4ab98a  gcc/testsuite/gcc.c-torture/execute/991201-1.c
! 3b7cb1a36e48b9927c34416c10250321  gcc/testsuite/gcc.c-torture/execute/991202-1.c
! 3eb5dfa91e758f6526c6b291880c9f0f  gcc/testsuite/gcc.c-torture/execute/991202-2.c
! 1248bf34a68a3dc5051bed5f3ebaae68  gcc/testsuite/gcc.c-torture/execute/991202-3.c
! ca76b41a1b27e45a5793d6d676cce0e0  gcc/testsuite/gcc.c-torture/execute/991216-1.c
! 94457327594ea60ef9c5c5ff2e38aae7  gcc/testsuite/gcc.c-torture/execute/991216-2.c
! a08a51349679ce3a52d27a9b315e7750  gcc/testsuite/gcc.c-torture/execute/991216-4.c
! 5ead9f48c22a8297551ed370c6d314ad  gcc/testsuite/gcc.c-torture/execute/991221-1.c
! 43d9722a7fcac3f519e139fc5725457c  gcc/testsuite/gcc.c-torture/execute/991227-1.c
! 98398e47a1c810af7168fc16f731ee57  gcc/testsuite/gcc.c-torture/execute/991228-1.c
! 4951de0ce8b490f3db93f2e3b6de869d  gcc/testsuite/gcc.c-torture/execute/alias-1.c
! 68cf1be8e6bb46221b0001404e42575c  gcc/testsuite/gcc.c-torture/execute/alias-2.c
! 9dfe66ac642996b27ce142bfa4462038  gcc/testsuite/gcc.c-torture/execute/alias-3.c
! 85d395cce7852e273b251a503d417f2a  gcc/testsuite/gcc.c-torture/execute/alias-4.c
  153f4cd8d14833813ddc813d134907a5  gcc/testsuite/gcc.c-torture/execute/alias-access-path-1.c
  3e965258a91e683ffbdb95fd5b92432e  gcc/testsuite/gcc.c-torture/execute/alias-access-path-2.c
! 36577c3d6d1b6c7018583b2e11f6df26  gcc/testsuite/gcc.c-torture/execute/align-1.c
! 1049308ac91b1a14ecb57a81edf264b7  gcc/testsuite/gcc.c-torture/execute/align-2.c
! 583ae43bda2e69e5c769adaf26b03fd2  gcc/testsuite/gcc.c-torture/execute/align-3.c
  ddf28eee61ee7c96a733b2d3efb869bb  gcc/testsuite/gcc.c-torture/execute/align-nest.c
! 1984a0bea0627cdbfc4ddc53a1fcd5b5  gcc/testsuite/gcc.c-torture/execute/alloca-1.c
! 3e4cb3c786052d471ccfb6cc7b29dafc  gcc/testsuite/gcc.c-torture/execute/anon-1.c
! d14f192541c8e0dccbf3b955d3567ff2  gcc/testsuite/gcc.c-torture/execute/arith-1.c
! f75e046a0d7deb83c36549d24e8259a9  gcc/testsuite/gcc.c-torture/execute/arith-rand-ll.c
! 5bbd7941f468b29637629002ddd44e50  gcc/testsuite/gcc.c-torture/execute/arith-rand.c
  59c3102287deffef87acac92e00cbf9a  gcc/testsuite/gcc.c-torture/execute/ashldi-1.c
  7ca87d791c2a3df7dfc8696e68574d78  gcc/testsuite/gcc.c-torture/execute/ashrdi-1.c
  63a4540471c3712f0fe78571ba18c6fa  gcc/testsuite/gcc.c-torture/execute/bcp-1.c
! 244ff2e03bc589e45ffd59618e25c722  gcc/testsuite/gcc.c-torture/execute/bf-layout-1.c
! 76b19d38dc4c4f3cffa55df98e9293bf  gcc/testsuite/gcc.c-torture/execute/bf-pack-1.c
! 3e0a4acab2064c52d5b0307ba19962c5  gcc/testsuite/gcc.c-torture/execute/bf-sign-1.c
! c0f3b824568c4afdbdece5244cb12385  gcc/testsuite/gcc.c-torture/execute/bf-sign-2.c
! 3f252c911674b3a62a13c9723430f84b  gcc/testsuite/gcc.c-torture/execute/bf64-1.c
  98152a763419b41838c8c9d841ad29a6  gcc/testsuite/gcc.c-torture/execute/bitfld-1.c
  f07696fa0951cfa132406e3311f1250c  gcc/testsuite/gcc.c-torture/execute/bitfld-10.c
  005d6505de633a2ed0991ac8a94c4b8e  gcc/testsuite/gcc.c-torture/execute/bitfld-2.c
*************** b79eed05dc24c371bc5196f0707b3f1e  gcc/te
*** 35765,35783 ****
  faa032a462fc9a402423c655dc719df6  gcc/testsuite/gcc.c-torture/execute/bitfld-7.c
  8fe35eb885c186fcd4c59c9984adbd22  gcc/testsuite/gcc.c-torture/execute/bitfld-8.c
  a32c6024c984133a94e1152142534dbe  gcc/testsuite/gcc.c-torture/execute/bitfld-9.c
  8f6d019c36fbdfbd20c5b71194cf624b  gcc/testsuite/gcc.c-torture/execute/bswap-1.c
  b348ec55a6a8ab8bbe20373c45483e58  gcc/testsuite/gcc.c-torture/execute/bswap-2.c
  5458bb83bb95be0456cadd66afc8a351  gcc/testsuite/gcc.c-torture/execute/bswap-3.c
  65faa00e26dc1990e5abe71f54ec433d  gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c
  488768e52a3e5be315892a84997b411f  gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c
! 264352088258b3552dbcb109c85f3a90  gcc/testsuite/gcc.c-torture/execute/builtin-constant.c
! 330fd60fca3a8e792eac19693be6c239  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c
! c0dec21fd7d4c5e903736c1c59109090  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-2.c
! dcd19abd13515d3297af326a1ab6eef3  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c
! 47f65de689a4f33a55f4ac1d1d725084  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c
! 2d31475759eb44511af144ebc470cb77  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-5.c
! 80bffc0fa263de904bef23d3b28d7346  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-6.c
! 617beda9a6776e6d6d8e4264b3f511d6  gcc/testsuite/gcc.c-torture/execute/builtin-types-compatible-p.c
  1d9a430e48c105c0a63279cb5d9f05ef  gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c
  407b4bb0d8c00ff1a62d0f00eb473a0b  gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c
  0e1f13af5749df6035d3c69a0b9edac3  gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.x
--- 37867,37887 ----
  faa032a462fc9a402423c655dc719df6  gcc/testsuite/gcc.c-torture/execute/bitfld-7.c
  8fe35eb885c186fcd4c59c9984adbd22  gcc/testsuite/gcc.c-torture/execute/bitfld-8.c
  a32c6024c984133a94e1152142534dbe  gcc/testsuite/gcc.c-torture/execute/bitfld-9.c
+ 1dfc98a3fb7d3f3fc3cee43da1cc34c1  gcc/testsuite/gcc.c-torture/execute/bitfld-signed1-1.c
+ 3024a89878df716b9eb9f79285af2c8a  gcc/testsuite/gcc.c-torture/execute/bitops-1.c
  8f6d019c36fbdfbd20c5b71194cf624b  gcc/testsuite/gcc.c-torture/execute/bswap-1.c
  b348ec55a6a8ab8bbe20373c45483e58  gcc/testsuite/gcc.c-torture/execute/bswap-2.c
  5458bb83bb95be0456cadd66afc8a351  gcc/testsuite/gcc.c-torture/execute/bswap-3.c
  65faa00e26dc1990e5abe71f54ec433d  gcc/testsuite/gcc.c-torture/execute/built-in-setjmp.c
  488768e52a3e5be315892a84997b411f  gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c
! e4a3e3dfcd13646798700bb0b6291695  gcc/testsuite/gcc.c-torture/execute/builtin-constant.c
! fbff19130837ebb4af596f36ea339d53  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c
! b7077a5eeb953bb1c3b11555f2712ae9  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-2.c
! 82f043d47a571f7b3fb99f8b4928402f  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c
! 90935ff71d6f1a7c99387dc7fcdf9e3d  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c
! 0bf5ca2f6d5bd0aab66e4f0dce7fa3af  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-5.c
! f61736c6c34b20e2dd0a35bdfa237262  gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-6.c
! 4fbcad61fb98363d68032ac092f92d59  gcc/testsuite/gcc.c-torture/execute/builtin-types-compatible-p.c
  1d9a430e48c105c0a63279cb5d9f05ef  gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c
  407b4bb0d8c00ff1a62d0f00eb473a0b  gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c
  0e1f13af5749df6035d3c69a0b9edac3  gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.x
*************** caa74354806f94b1777d3d438547d909  gcc/te
*** 35788,35794 ****
  d7d9ce89ee3d3fe0e8938f62790f051e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-2.c
  1dda6f7a5d9ce23a5db5f59c430ae29e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3-lib.c
  8784d3bd9b264b3c2abfb7b7ea25ccb6  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3.c
! 26ccac8540730590a8ee5e51c470276e  gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
  82dc8c0cc07405b06eb5eee9b43cb713  gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
  f36e146a2aececdc84d9199d53a363ec  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1-lib.c
  8b5a662c0134cd00115a5866e1c0b6c9  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1.c
--- 37892,37898 ----
  d7d9ce89ee3d3fe0e8938f62790f051e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-2.c
  1dda6f7a5d9ce23a5db5f59c430ae29e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3-lib.c
  8784d3bd9b264b3c2abfb7b7ea25ccb6  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3.c
! f6e7eed8bcd226da6fe4470cfdc08923  gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
  82dc8c0cc07405b06eb5eee9b43cb713  gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
  f36e146a2aececdc84d9199d53a363ec  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1-lib.c
  8b5a662c0134cd00115a5866e1c0b6c9  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1.c
*************** f36e146a2aececdc84d9199d53a363ec  gcc/te
*** 35796,35802 ****
  52a21dcb202bcbf547f63cfe0db20c06  gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.c
  a2c6a368bc2b14728093f3e15b60bca2  gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.x
  1af9602d427715e3713392fb8629dbb4  gcc/testsuite/gcc.c-torture/execute/builtins/fputs-lib.c
! 0f27b349ca36c77709283a79950eab66  gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c
  a2c6a368bc2b14728093f3e15b60bca2  gcc/testsuite/gcc.c-torture/execute/builtins/fputs.x
  2ac6f3be9fb3e03f958363fe6feb5ddd  gcc/testsuite/gcc.c-torture/execute/builtins/lib/abs.c
  203feadf3b2ef38b39a672ad869b3593  gcc/testsuite/gcc.c-torture/execute/builtins/lib/bfill.c
--- 37900,37906 ----
  52a21dcb202bcbf547f63cfe0db20c06  gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.c
  a2c6a368bc2b14728093f3e15b60bca2  gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.x
  1af9602d427715e3713392fb8629dbb4  gcc/testsuite/gcc.c-torture/execute/builtins/fputs-lib.c
! 0599acacff76d8f472235de0aa117335  gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c
  a2c6a368bc2b14728093f3e15b60bca2  gcc/testsuite/gcc.c-torture/execute/builtins/fputs.x
  2ac6f3be9fb3e03f958363fe6feb5ddd  gcc/testsuite/gcc.c-torture/execute/builtins/lib/abs.c
  203feadf3b2ef38b39a672ad869b3593  gcc/testsuite/gcc.c-torture/execute/builtins/lib/bfill.c
*************** fef8c8e0e438a70ba68e11025e033af6  gcc/te
*** 35861,35867 ****
  89f6d690efa9ddbb8105569a4487bcdd  gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.c
  529ab3516a98758d79dd7ae4492261c1  gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.x
  8e258d2fc5daa60d7007d842cf555b36  gcc/testsuite/gcc.c-torture/execute/builtins/pr93262-chk-lib.c
! 6f9d56ca809a20153f82fe6d44631a8a  gcc/testsuite/gcc.c-torture/execute/builtins/pr93262-chk.c
  529ab3516a98758d79dd7ae4492261c1  gcc/testsuite/gcc.c-torture/execute/builtins/pr93262-chk.x
  14c96022e21022ec2d7b36a67c48ef08  gcc/testsuite/gcc.c-torture/execute/builtins/printf-lib.c
  5c46288128c89b87b496904e6858654e  gcc/testsuite/gcc.c-torture/execute/builtins/printf.c
--- 37965,37971 ----
  89f6d690efa9ddbb8105569a4487bcdd  gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.c
  529ab3516a98758d79dd7ae4492261c1  gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.x
  8e258d2fc5daa60d7007d842cf555b36  gcc/testsuite/gcc.c-torture/execute/builtins/pr93262-chk-lib.c
! 025d6c37dc73d5315d75d3939c626cb7  gcc/testsuite/gcc.c-torture/execute/builtins/pr93262-chk.c
  529ab3516a98758d79dd7ae4492261c1  gcc/testsuite/gcc.c-torture/execute/builtins/pr93262-chk.x
  14c96022e21022ec2d7b36a67c48ef08  gcc/testsuite/gcc.c-torture/execute/builtins/printf-lib.c
  5c46288128c89b87b496904e6858654e  gcc/testsuite/gcc.c-torture/execute/builtins/printf.c
*************** e78c1c5d2377acab6d348a2fd72b2f87  gcc/te
*** 35942,35986 ****
  70fcc0617f35e7f09eb398bc62e9c027  gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.c
  19772f2588ea94132a01a02822e64568  gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x
  1b55560864643f651b0ee04cf9021a84  gcc/testsuite/gcc.c-torture/execute/call-trap-1.c
! 390c8462863a047809ec0a272eada4f7  gcc/testsuite/gcc.c-torture/execute/cbrt.c
! dac7b8ec4720c2dc1cf479bbaf7d384b  gcc/testsuite/gcc.c-torture/execute/cmpdi-1.c
! 97b4faaa83f90c9bd29283bf04391e4c  gcc/testsuite/gcc.c-torture/execute/cmpsf-1.c
! 6893dd4c6d9027e3efe459742565f4da  gcc/testsuite/gcc.c-torture/execute/cmpsi-1.c
! f3ea178896b7ff7d7224f7530b85c9dc  gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
! 14ad99043ae804d9a687ffc8b1a9fc77  gcc/testsuite/gcc.c-torture/execute/comp-goto-1.c
! 1e345963372cddf85354c0a3c4525096  gcc/testsuite/gcc.c-torture/execute/comp-goto-2.c
  f085b9359ce3c84fa1ab085ae3431f33  gcc/testsuite/gcc.c-torture/execute/compare-1.c
  78ba559f49bac44634d2e1dead363844  gcc/testsuite/gcc.c-torture/execute/compare-2.c
  49f7667a3a39e8cfa19c2601a70906a8  gcc/testsuite/gcc.c-torture/execute/compare-3.c
! 0573264236cd429a9a87d9b2a71e139e  gcc/testsuite/gcc.c-torture/execute/complex-1.c
! 6b978ba2f7a194cb6f2f460942d27960  gcc/testsuite/gcc.c-torture/execute/complex-2.c
! 83b243eacc68558c7a437161f1827c0e  gcc/testsuite/gcc.c-torture/execute/complex-3.c
! 938894cfa092562627c3ca3857b4cfce  gcc/testsuite/gcc.c-torture/execute/complex-4.c
! e1b798d44ceb5c3854c30678f6defd59  gcc/testsuite/gcc.c-torture/execute/complex-5.c
  360234b78ad6ba0da11fa1c7761f2863  gcc/testsuite/gcc.c-torture/execute/complex-6.c
  7dde8e0ac91f3c61f81aa1e7a8dfa338  gcc/testsuite/gcc.c-torture/execute/complex-7.c
! d1fb88dfc66950cce25732eda9376105  gcc/testsuite/gcc.c-torture/execute/compndlit-1.c
  192df9f6265b32749eec07de13e27d10  gcc/testsuite/gcc.c-torture/execute/const-addr-expr-1.c
! 0f8c91078bcdc9a9404792b0e949b371  gcc/testsuite/gcc.c-torture/execute/conversion.c
! a647fcb11d4e2029fe161f57a64e0547  gcc/testsuite/gcc.c-torture/execute/cvt-1.c
! 3db51bdc09b9722769818722b2e660b6  gcc/testsuite/gcc.c-torture/execute/dbra-1.c
  9fdb02a19973b7df08e81d3e4fc8bcfd  gcc/testsuite/gcc.c-torture/execute/divcmp-1.c
  cdf524d104432e118c43374a179694de  gcc/testsuite/gcc.c-torture/execute/divcmp-2.c
  62a76b1a6eca08816f8de51ec32567c5  gcc/testsuite/gcc.c-torture/execute/divcmp-3.c
  82043c2c78f569e2115de18cead8b6cc  gcc/testsuite/gcc.c-torture/execute/divcmp-4.c
  bfc674571c4930cb05571e831c1a162c  gcc/testsuite/gcc.c-torture/execute/divcmp-5.c
! 57c3b5a536065c99066468119a57b820  gcc/testsuite/gcc.c-torture/execute/divconst-1.c
! 38af67c89878cf408a29338d3b8461aa  gcc/testsuite/gcc.c-torture/execute/divconst-2.c
! b88415410e81b02068f1474a644bd707  gcc/testsuite/gcc.c-torture/execute/divconst-3.c
! 0a0fc31962c133c8409a816cab6e4e88  gcc/testsuite/gcc.c-torture/execute/divmod-1.c
  9e5a753f71d6979559e6274f0b3bf1c9  gcc/testsuite/gcc.c-torture/execute/doloop-1.c
  bed9755f43cf6bcfe197ea6254515cc7  gcc/testsuite/gcc.c-torture/execute/doloop-2.c
  e329c7fca0108570e81273f5b62d90e0  gcc/testsuite/gcc.c-torture/execute/eeprof-1.c
! b75081070e5d6cda7c7fa71f2652e5c4  gcc/testsuite/gcc.c-torture/execute/enum-1.c
! 0de8cd8896dc35069287acffcf0cf023  gcc/testsuite/gcc.c-torture/execute/enum-2.c
  91b8922c3b6304ab6ab99942dbca6c66  gcc/testsuite/gcc.c-torture/execute/enum-3.c
! 815882a6e79630fdb0f21a53487c3d20  gcc/testsuite/gcc.c-torture/execute/execute.exp
! 3f877fc808f2ba680241c6f0726afdb8  gcc/testsuite/gcc.c-torture/execute/extzvsi.c
  d2dbbb18d94c0dbb1f03952bbd682bdc  gcc/testsuite/gcc.c-torture/execute/ffs-1.c
  59890cc9fc7ac6d103d95e083b353cd1  gcc/testsuite/gcc.c-torture/execute/ffs-2.c
  8dee21292eb0545b049b5e2dd3fe21dd  gcc/testsuite/gcc.c-torture/execute/float-floor.c
--- 38046,38090 ----
  70fcc0617f35e7f09eb398bc62e9c027  gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.c
  19772f2588ea94132a01a02822e64568  gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x
  1b55560864643f651b0ee04cf9021a84  gcc/testsuite/gcc.c-torture/execute/call-trap-1.c
! 77371220f1c6402d3119ce908b5e4ded  gcc/testsuite/gcc.c-torture/execute/cbrt.c
! c64db10abf8774c6bcba1b9c87d9cb39  gcc/testsuite/gcc.c-torture/execute/cmpdi-1.c
! 9d07b50578c954955dcffed6472bd294  gcc/testsuite/gcc.c-torture/execute/cmpsf-1.c
! f161e9de9b41e57283c7a250ce6f004b  gcc/testsuite/gcc.c-torture/execute/cmpsi-1.c
! 9091dc7e5b1a8df7d33c0fe27e253dc7  gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
! b9fcc2622f4ca20446ccd88cf97dfd90  gcc/testsuite/gcc.c-torture/execute/comp-goto-1.c
! 485b8d95d1ebf43268b77ddc506a872a  gcc/testsuite/gcc.c-torture/execute/comp-goto-2.c
  f085b9359ce3c84fa1ab085ae3431f33  gcc/testsuite/gcc.c-torture/execute/compare-1.c
  78ba559f49bac44634d2e1dead363844  gcc/testsuite/gcc.c-torture/execute/compare-2.c
  49f7667a3a39e8cfa19c2601a70906a8  gcc/testsuite/gcc.c-torture/execute/compare-3.c
! d90b038aa18dc604124b37aa005947fd  gcc/testsuite/gcc.c-torture/execute/complex-1.c
! 6daffa3b8aa7e75144b43008a20df4cc  gcc/testsuite/gcc.c-torture/execute/complex-2.c
! 40a42cf18d922592cbe7b096e147d4c3  gcc/testsuite/gcc.c-torture/execute/complex-3.c
! 0114686eead17eeb1a1336b127198b6b  gcc/testsuite/gcc.c-torture/execute/complex-4.c
! b21961346de867b39553e0f7e3773756  gcc/testsuite/gcc.c-torture/execute/complex-5.c
  360234b78ad6ba0da11fa1c7761f2863  gcc/testsuite/gcc.c-torture/execute/complex-6.c
  7dde8e0ac91f3c61f81aa1e7a8dfa338  gcc/testsuite/gcc.c-torture/execute/complex-7.c
! 18b5c6ec81e69cb5dcad2f06f30eeb53  gcc/testsuite/gcc.c-torture/execute/compndlit-1.c
  192df9f6265b32749eec07de13e27d10  gcc/testsuite/gcc.c-torture/execute/const-addr-expr-1.c
! 35ecb61192421d9ef52dd8c0fe7b4463  gcc/testsuite/gcc.c-torture/execute/conversion.c
! df8d7336335269ffa7815ded685a8903  gcc/testsuite/gcc.c-torture/execute/cvt-1.c
! 017f76ca1f307c19d3a8207a5d273272  gcc/testsuite/gcc.c-torture/execute/dbra-1.c
  9fdb02a19973b7df08e81d3e4fc8bcfd  gcc/testsuite/gcc.c-torture/execute/divcmp-1.c
  cdf524d104432e118c43374a179694de  gcc/testsuite/gcc.c-torture/execute/divcmp-2.c
  62a76b1a6eca08816f8de51ec32567c5  gcc/testsuite/gcc.c-torture/execute/divcmp-3.c
  82043c2c78f569e2115de18cead8b6cc  gcc/testsuite/gcc.c-torture/execute/divcmp-4.c
  bfc674571c4930cb05571e831c1a162c  gcc/testsuite/gcc.c-torture/execute/divcmp-5.c
! 52440b886dd738e05e1b9e9fe03ff727  gcc/testsuite/gcc.c-torture/execute/divconst-1.c
! ed354a85a0099c31791f356dbc9e2559  gcc/testsuite/gcc.c-torture/execute/divconst-2.c
! 129d97602d890e30ce9e3885078fd893  gcc/testsuite/gcc.c-torture/execute/divconst-3.c
! a95caf5fb3100d0f48a473c8565c9283  gcc/testsuite/gcc.c-torture/execute/divmod-1.c
  9e5a753f71d6979559e6274f0b3bf1c9  gcc/testsuite/gcc.c-torture/execute/doloop-1.c
  bed9755f43cf6bcfe197ea6254515cc7  gcc/testsuite/gcc.c-torture/execute/doloop-2.c
  e329c7fca0108570e81273f5b62d90e0  gcc/testsuite/gcc.c-torture/execute/eeprof-1.c
! a6b308419fd50f1c9431e404ccfc3c3f  gcc/testsuite/gcc.c-torture/execute/enum-1.c
! 13a82975b119197695ece083661c3653  gcc/testsuite/gcc.c-torture/execute/enum-2.c
  91b8922c3b6304ab6ab99942dbca6c66  gcc/testsuite/gcc.c-torture/execute/enum-3.c
! cd16361a595e3f324036cadbc92364bc  gcc/testsuite/gcc.c-torture/execute/execute.exp
! ff6f0be0ecfab0c79d835c0bc61a8f5c  gcc/testsuite/gcc.c-torture/execute/extzvsi.c
  d2dbbb18d94c0dbb1f03952bbd682bdc  gcc/testsuite/gcc.c-torture/execute/ffs-1.c
  59890cc9fc7ac6d103d95e083b353cd1  gcc/testsuite/gcc.c-torture/execute/ffs-2.c
  8dee21292eb0545b049b5e2dd3fe21dd  gcc/testsuite/gcc.c-torture/execute/float-floor.c
*************** d2dbbb18d94c0dbb1f03952bbd682bdc  gcc/te
*** 35988,36016 ****
  bcea053f530aa11916510fa094950161  gcc/testsuite/gcc.c-torture/execute/fprintf-1.c
  66d81ae03407850e174e458d6dbcbb08  gcc/testsuite/gcc.c-torture/execute/fprintf-2.c
  e09dd80f5a40a566b1014f568f2c3ba4  gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c
! d3b5b37c4d7486d3dedb71055717ecef  gcc/testsuite/gcc.c-torture/execute/frame-address.c
! 9052c118de9977e04df6f3eb53a232a8  gcc/testsuite/gcc.c-torture/execute/func-ptr-1.c
  f9daf38f7ad252ee296ef6df53c6e989  gcc/testsuite/gcc.c-torture/execute/gcc_tmpnam.h
! c6a25cdd568c96b091a4ad69470802a4  gcc/testsuite/gcc.c-torture/execute/gofast.c
! d7e5d823095813f4e037fc2146b69922  gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
  739ddcf743d3b57ec98e87c96cbb64b0  gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.x
! e71614fc99f4d92507caf550d9cc771d  gcc/testsuite/gcc.c-torture/execute/ieee/20001122-1.c
  78e99dbb91081451ad631b0dc2f499d3  gcc/testsuite/gcc.c-torture/execute/ieee/20010114-2.c
! 08c795c66e0da99898bb2c7047c602c9  gcc/testsuite/gcc.c-torture/execute/ieee/20010226-1.c
! 7a9152a2be076cf32265952db745498f  gcc/testsuite/gcc.c-torture/execute/ieee/20011123-1.c
  2489bc06d5e54c3697445d8bae567608  gcc/testsuite/gcc.c-torture/execute/ieee/20030331-1.c
  4235b49f65e15a349ce1754dce3371a9  gcc/testsuite/gcc.c-torture/execute/ieee/20041213-1.c
! fd23ea723b80ea094e702cd44295c2b9  gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.c
! f257f1810a40fe886447ca38d661c1d9  gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.c
  e6628636bb1d3f6060c0f3fa545ec244  gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x
! dee465f305a29b6c469ddf0896a99e40  gcc/testsuite/gcc.c-torture/execute/ieee/930529-1.c
! a97c5124480e7231f6d6af194cc220f2  gcc/testsuite/gcc.c-torture/execute/ieee/980619-1.c
  8333aa4ca7917f9501e392d5cf0cedb2  gcc/testsuite/gcc.c-torture/execute/ieee/980619-1.x
! 0c03d63f6fb50a233511d65f0eecd5da  gcc/testsuite/gcc.c-torture/execute/ieee/acc1.c
! 80f1cec8ee9879e5f9cf1ee6b1704a17  gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c
  a1ea960717201196b74eeb896ca4f445  gcc/testsuite/gcc.c-torture/execute/ieee/builtin-nan-1.c
  0012f310d4823bfb3b3732351eed8bd1  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkd.c
! 66d7fb51134f54324651f1b78c43c692  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkf.c
  50551bee34b1d2c64c8b9748f44348f9  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkld.c
  a0b00affcad7636a7e7f4586907299b7  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkld.x
  f0eeef1d82cfa9d661c40547e550431b  gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-1.c
--- 38092,38120 ----
  bcea053f530aa11916510fa094950161  gcc/testsuite/gcc.c-torture/execute/fprintf-1.c
  66d81ae03407850e174e458d6dbcbb08  gcc/testsuite/gcc.c-torture/execute/fprintf-2.c
  e09dd80f5a40a566b1014f568f2c3ba4  gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c
! 7f0370975b9d6749000aeb7697f99035  gcc/testsuite/gcc.c-torture/execute/frame-address.c
! 9977325919299e92862b8b3b6a74bf53  gcc/testsuite/gcc.c-torture/execute/func-ptr-1.c
  f9daf38f7ad252ee296ef6df53c6e989  gcc/testsuite/gcc.c-torture/execute/gcc_tmpnam.h
! 1de19030b73240e94a14ce5953ae1484  gcc/testsuite/gcc.c-torture/execute/gofast.c
! 277e95e032022bb0a6a00847d76e27b4  gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
  739ddcf743d3b57ec98e87c96cbb64b0  gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.x
! 381142ef4489af63dac128450f5018c3  gcc/testsuite/gcc.c-torture/execute/ieee/20001122-1.c
  78e99dbb91081451ad631b0dc2f499d3  gcc/testsuite/gcc.c-torture/execute/ieee/20010114-2.c
! 8240305a55b3c12ba1c21300537a9691  gcc/testsuite/gcc.c-torture/execute/ieee/20010226-1.c
! 02fa20722303cad083b5757772bc3d7a  gcc/testsuite/gcc.c-torture/execute/ieee/20011123-1.c
  2489bc06d5e54c3697445d8bae567608  gcc/testsuite/gcc.c-torture/execute/ieee/20030331-1.c
  4235b49f65e15a349ce1754dce3371a9  gcc/testsuite/gcc.c-torture/execute/ieee/20041213-1.c
! 7361b9160528cc9dd1c134f559c699ba  gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.c
! a9e8d36e7799464f7dd70c3f1404b47e  gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.c
  e6628636bb1d3f6060c0f3fa545ec244  gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x
! 25fea41bbf5de5b613fa054080ae0944  gcc/testsuite/gcc.c-torture/execute/ieee/930529-1.c
! 8354b102bddc9f6f13d996d7e3330c78  gcc/testsuite/gcc.c-torture/execute/ieee/980619-1.c
  8333aa4ca7917f9501e392d5cf0cedb2  gcc/testsuite/gcc.c-torture/execute/ieee/980619-1.x
! 6a6db3c1d37189fe54656cf349c81709  gcc/testsuite/gcc.c-torture/execute/ieee/acc1.c
! 1cf021216f4a92e1821d49d3e50471b9  gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c
  a1ea960717201196b74eeb896ca4f445  gcc/testsuite/gcc.c-torture/execute/ieee/builtin-nan-1.c
  0012f310d4823bfb3b3732351eed8bd1  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkd.c
! 9c211c1532c221cc389836a7d4bda339  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkf.c
  50551bee34b1d2c64c8b9748f44348f9  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkld.c
  a0b00affcad7636a7e7f4586907299b7  gcc/testsuite/gcc.c-torture/execute/ieee/cdivchkld.x
  f0eeef1d82cfa9d661c40547e550431b  gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-1.c
*************** fee97375f1852586391d62e54dbf07b6  gcc/te
*** 36021,36068 ****
  1d1bb48aa628b3dcfc115f7ae87a3e1f  gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-4.x
  84a2ad7f3e1d4204c4a3a4c30b64c884  gcc/testsuite/gcc.c-torture/execute/ieee/copysign1.c
  a73aaa3087d645f7a2031b0393cbc54e  gcc/testsuite/gcc.c-torture/execute/ieee/copysign2.c
! a8c663c8d19876964ac073d71cb83278  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c
  8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.x
! e9976d60f8b26209027c202557a50bb2  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.c
  8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.x
! 557fc28322d078763cdf51f58c00dace  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.c
  8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.x
! 08b4d17891d1fdb1bc9be87f0a33b85e  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.c
  63eaf5e65da59266cdf1ee61a6f0e4cb  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4e.c
  b4829a5beb2ba9c854289ed59b149c87  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4f.c
  84acc8b1076b65bc49262020bd723f48  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4l.c
! b6187f5e7f437af55596d4899703c64d  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-5.c
! a27940c41de4aa616b9a7838dcd2ff06  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c
  9e43c27455c7096b6dbc2d64603291f8  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.x
  29aef7d959a16091b3ebad8b64980f25  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-7.c
  fee97375f1852586391d62e54dbf07b6  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-7.x
! e6e4bf75b7bfe776a42e2d834c668aa0  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8.c
  8269310d30e373a5b948feca34d5c256  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8e.c
  80cb66b64dbc493a71cd89ff79bfe22a  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8f.c
  987c92fc82b6f0a9fcd149cb6983020f  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8l.c
! 6bd4a57f0b4c4e24ea80bf9291de98ec  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-9.c
  c70578fda10ba34906c056f0cfa7d7f4  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-9.x
! eda53ee18df0e1666f58ac145f30c8bc  gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.c
  89328c997b5c856595f8abbea69ad47a  gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.x
! e97b9ae0938cde281e0f6c40ff726eaa  gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
  becc504a322770453dcee9cedb700b2a  gcc/testsuite/gcc.c-torture/execute/ieee/inf-1.c
  455ba77f92be22cda1b657fc7de869ac  gcc/testsuite/gcc.c-torture/execute/ieee/inf-2.c
  2b23329ee0437a7e47b835bee3d9d3e1  gcc/testsuite/gcc.c-torture/execute/ieee/inf-3.c
  376dcad6e7b248fd5a9bab27ace3ba47  gcc/testsuite/gcc.c-torture/execute/ieee/inf-4.c
! 2736a1631ef3bc3d1b07e98d9c11e15d  gcc/testsuite/gcc.c-torture/execute/ieee/minuszero.c
! c30cd058e421a2490756d89ddc0aafa0  gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c
  05d1a430099f387b688299a468cf3942  gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x
! 8ddee2876acf309cb198b09cc93fb294  gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.c
  fb7fd7f587429cecf628de689fba7cff  gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.x
! f45ca3b0c410537aa1ba72331b725ee3  gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c
  ca24b3bde293e0dc51664263dfbd7596  gcc/testsuite/gcc.c-torture/execute/ieee/mzero4.c
! 706b37713beb55db2b6ffee8c94caad3  gcc/testsuite/gcc.c-torture/execute/ieee/mzero5.c
! 863479e0e407e39a90ba2476bf1207e3  gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c
  1d16dce456c4134583b993567f1ead0f  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-1.c
  d4e8f56755c1913d6081dfe8d0242da6  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-2.c
  a45b4760120c88edd8ca57835c941a19  gcc/testsuite/gcc.c-torture/execute/ieee/pr109008.c
  85a7ab9e9a70d0f0bc5caeb1e1f43644  gcc/testsuite/gcc.c-torture/execute/ieee/pr109386.c
! 1b9dac5340cc72f68524acd4c4da7e80  gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c
  d8612b7bdffc24880131ef35f74be2d6  gcc/testsuite/gcc.c-torture/execute/ieee/pr29302-1.c
  34f935573c831edc6e12782ff995e44a  gcc/testsuite/gcc.c-torture/execute/ieee/pr29302-1.x
  cc3ca61cbd7ec3722dcd75ad3cab0f8a  gcc/testsuite/gcc.c-torture/execute/ieee/pr30704.c
--- 38125,38173 ----
  1d1bb48aa628b3dcfc115f7ae87a3e1f  gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-4.x
  84a2ad7f3e1d4204c4a3a4c30b64c884  gcc/testsuite/gcc.c-torture/execute/ieee/copysign1.c
  a73aaa3087d645f7a2031b0393cbc54e  gcc/testsuite/gcc.c-torture/execute/ieee/copysign2.c
! cee982633d8c6497025b26266493c30d  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c
  8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.x
! f2cad81a497ddc97905f9b6b23306fb8  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.c
  8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.x
! e4eeadaaefd09a4f2fce9123d6786f0c  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.c
  8fed20270d816ea728c7967cf9f09735  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.x
! e4c5097d8984afd46708b110fbfef4b9  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.c
  63eaf5e65da59266cdf1ee61a6f0e4cb  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4e.c
  b4829a5beb2ba9c854289ed59b149c87  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4f.c
  84acc8b1076b65bc49262020bd723f48  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4l.c
! fb28173770b549d5a756232501915e9f  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-5.c
! 8120ee2cfdab77581a18e37b536833bb  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c
  9e43c27455c7096b6dbc2d64603291f8  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.x
  29aef7d959a16091b3ebad8b64980f25  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-7.c
  fee97375f1852586391d62e54dbf07b6  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-7.x
! fe6a528a2058873b7106e54cb9b9e329  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8.c
  8269310d30e373a5b948feca34d5c256  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8e.c
  80cb66b64dbc493a71cd89ff79bfe22a  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8f.c
  987c92fc82b6f0a9fcd149cb6983020f  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8l.c
! 26a64d19b6e5c59edd19599ff473cee8  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-9.c
  c70578fda10ba34906c056f0cfa7d7f4  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-9.x
! 3843677f51ff2d4396417f474e39606f  gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-cond-1.c
! fc7f4f92037630d4fe8a9d712a20313b  gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.c
  89328c997b5c856595f8abbea69ad47a  gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.x
! 9503148678fe67d55464e4308f45e544  gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
  becc504a322770453dcee9cedb700b2a  gcc/testsuite/gcc.c-torture/execute/ieee/inf-1.c
  455ba77f92be22cda1b657fc7de869ac  gcc/testsuite/gcc.c-torture/execute/ieee/inf-2.c
  2b23329ee0437a7e47b835bee3d9d3e1  gcc/testsuite/gcc.c-torture/execute/ieee/inf-3.c
  376dcad6e7b248fd5a9bab27ace3ba47  gcc/testsuite/gcc.c-torture/execute/ieee/inf-4.c
! 85247c20793a045dcb12dc59155f407c  gcc/testsuite/gcc.c-torture/execute/ieee/minuszero.c
! b9441c133054ff6cf3f61dd261df468c  gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c
  05d1a430099f387b688299a468cf3942  gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x
! 6daf911e430e749e0e68ec2d756c1524  gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.c
  fb7fd7f587429cecf628de689fba7cff  gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.x
! 33e1424f25f3fdd6310b3539456530ef  gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c
  ca24b3bde293e0dc51664263dfbd7596  gcc/testsuite/gcc.c-torture/execute/ieee/mzero4.c
! 2f16e3ea4441edcda4f549c1594bcab6  gcc/testsuite/gcc.c-torture/execute/ieee/mzero5.c
! 0ce3760920cb01c837823823f594fe72  gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c
  1d16dce456c4134583b993567f1ead0f  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-1.c
  d4e8f56755c1913d6081dfe8d0242da6  gcc/testsuite/gcc.c-torture/execute/ieee/pr108540-2.c
  a45b4760120c88edd8ca57835c941a19  gcc/testsuite/gcc.c-torture/execute/ieee/pr109008.c
  85a7ab9e9a70d0f0bc5caeb1e1f43644  gcc/testsuite/gcc.c-torture/execute/ieee/pr109386.c
! 22adfe20f392496218ec0bcb6d9c2d4f  gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c
  d8612b7bdffc24880131ef35f74be2d6  gcc/testsuite/gcc.c-torture/execute/ieee/pr29302-1.c
  34f935573c831edc6e12782ff995e44a  gcc/testsuite/gcc.c-torture/execute/ieee/pr29302-1.x
  cc3ca61cbd7ec3722dcd75ad3cab0f8a  gcc/testsuite/gcc.c-torture/execute/ieee/pr30704.c
*************** a16df037c76adbc0a3081a51f1770b49  gcc/te
*** 36075,36153 ****
  6b57d671d14f682212679d0df178da53  gcc/testsuite/gcc.c-torture/execute/ieee/pr72824-2.c
  69fc297e7bf7f2a44efa07b90f5297e3  gcc/testsuite/gcc.c-torture/execute/ieee/pr72824.c
  07e1ee7132e0d718d46828e4431bf2c4  gcc/testsuite/gcc.c-torture/execute/ieee/pr84235.c
! d08148dfbcdf48e35ad4e101a660c58e  gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
  7116b2d7f2d33fbc73903c620f3bca16  gcc/testsuite/gcc.c-torture/execute/ieee/rbug.x
  205da00dccd6dcf1575a79b20ce968a4  gcc/testsuite/gcc.c-torture/execute/ieee/unsafe-fp-assoc-1.c
  b2ab2df25ae61fdb2695a27e3847bca4  gcc/testsuite/gcc.c-torture/execute/ieee/unsafe-fp-assoc-1.x
  82761f24b0b6519b8b92f35a92ea3ca6  gcc/testsuite/gcc.c-torture/execute/ieee/unsafe-fp-assoc.c
  ea22da05fc8da75320add456648e6527  gcc/testsuite/gcc.c-torture/execute/ifcvt-onecmpl-abs-1.c
! 6bd045962c169d3ac0d8f959dda0ffd9  gcc/testsuite/gcc.c-torture/execute/index-1.c
! 39b4709b291132e1529e9a6d8ad044e8  gcc/testsuite/gcc.c-torture/execute/inst-check.c
! faa4832387fde3461378ec0209713caf  gcc/testsuite/gcc.c-torture/execute/int-compare.c
  9d7747e1d62c3b22bb9105369b89992e  gcc/testsuite/gcc.c-torture/execute/ipa-sra-1.c
  9c2248fc0f7854c6a5695b912fc5619b  gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.c
! eafe771edeb4d290d0c17775ea66ea7f  gcc/testsuite/gcc.c-torture/execute/longlong.c
! 968a2a4eb79a59afbe3714104af5e3fa  gcc/testsuite/gcc.c-torture/execute/loop-1.c
! 46107e8259272a16db20e94634cea3bc  gcc/testsuite/gcc.c-torture/execute/loop-10.c
! a7799989daf4efeba47d03ef933f5bf8  gcc/testsuite/gcc.c-torture/execute/loop-11.c
  8c7d37a124147fa075fdc7f794bb4897  gcc/testsuite/gcc.c-torture/execute/loop-12.c
! fbdf925ba96ca38b46df938d3970aa91  gcc/testsuite/gcc.c-torture/execute/loop-13.c
! 2fe912be9b0ffb1c78a39a8ad2ad2792  gcc/testsuite/gcc.c-torture/execute/loop-14.c
! f7273c0016af3762600d60f4ad0a3668  gcc/testsuite/gcc.c-torture/execute/loop-15.c
! 19e7a858be32929bb094b1fc5c92b42e  gcc/testsuite/gcc.c-torture/execute/loop-2.c
! b7b8614a59a6ad84a931ec79d40897dc  gcc/testsuite/gcc.c-torture/execute/loop-2b.c
  fd8619fd30dca66f688bfecaab80d41a  gcc/testsuite/gcc.c-torture/execute/loop-2c.c
! 979b99705980f816276d46115167f788  gcc/testsuite/gcc.c-torture/execute/loop-2d.c
! 56954338863780259bd848f23d1f5841  gcc/testsuite/gcc.c-torture/execute/loop-2e.c
! 7e07f03573b6a221ae7c54b122cfa754  gcc/testsuite/gcc.c-torture/execute/loop-2f.c
! 128280e783f1cc579bc093f33b44e2b7  gcc/testsuite/gcc.c-torture/execute/loop-2g.c
! 9aeaafc8d71a373bd639f6f3896909a8  gcc/testsuite/gcc.c-torture/execute/loop-3.c
! 542ede686141a7543f8a52f6172acd25  gcc/testsuite/gcc.c-torture/execute/loop-3b.c
! 896e19b7c61495ee2c2e8218973d997f  gcc/testsuite/gcc.c-torture/execute/loop-3c.c
! 5edbac0ed6e64502f59ea506a962df1a  gcc/testsuite/gcc.c-torture/execute/loop-4.c
! 3c4f3da0e78c7be4bbde3b6f2ebd3d30  gcc/testsuite/gcc.c-torture/execute/loop-4b.c
! 3fe1be79d4ff3400cb8fe4fd9770e22f  gcc/testsuite/gcc.c-torture/execute/loop-5.c
! 21f735ba961ff1dc72f34099cf8697e9  gcc/testsuite/gcc.c-torture/execute/loop-6.c
! a25b6945a36d26d0d6d4c8ea12859f4c  gcc/testsuite/gcc.c-torture/execute/loop-7.c
! 40b29791fe4791dae26621d18ee4ed6c  gcc/testsuite/gcc.c-torture/execute/loop-8.c
  bde52ca8cfd224ec9a5a4b7ca60611ce  gcc/testsuite/gcc.c-torture/execute/loop-9.c
  02f28a11f4d2f3a015c8945152defd9d  gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c
  462bac74cce6bcaf4babe1d60ee0dc37  gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c
  2d39990f0058bb53e42ac0a0e3af5944  gcc/testsuite/gcc.c-torture/execute/lshrdi-1.c
! f50a3bdd1c478adab09f3e017ea9eed4  gcc/testsuite/gcc.c-torture/execute/lto-tbaa-1.c
  707a981156afeb194aec4b858a7fffce  gcc/testsuite/gcc.c-torture/execute/mayalias-1.c
  fc7ff12f9a631694f1405c85c8acdbe8  gcc/testsuite/gcc.c-torture/execute/mayalias-2.c
  f08201ddad8e116d00963e214b8f1f67  gcc/testsuite/gcc.c-torture/execute/mayalias-3.c
  4b947eae575a6a921be4eb4213bba3d3  gcc/testsuite/gcc.c-torture/execute/medce-1.c
  4b3141dc2b1f2efe4f4174e391935366  gcc/testsuite/gcc.c-torture/execute/memchr-1.c
! 302fe8219e91036741bf5805f5103971  gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
! be7246e0ee46215e735f89441e8d2f37  gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
! f06d20a2edb7874088b2a1bf132acd61  gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c
! 1941a747f6cd51980e3a0069afe99f8a  gcc/testsuite/gcc.c-torture/execute/memset-1.c
! f9efa48ff343898059dcee91bc6de6c4  gcc/testsuite/gcc.c-torture/execute/memset-2.c
! 3bf742ca40bebc5747f233592dd0d37f  gcc/testsuite/gcc.c-torture/execute/memset-3.c
  cd68c635f7ee7b9d61cd6fb30e11f695  gcc/testsuite/gcc.c-torture/execute/memset-4.c
! c47c383b81916dc5e055e857776ce98f  gcc/testsuite/gcc.c-torture/execute/mod-1.c
  c36723455fcef225d099e9718b35749b  gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.c
  557fcf228c206c15ef609901f05ab9dc  gcc/testsuite/gcc.c-torture/execute/mul-sext.c
! 42a724c275e627732267a4990711c28b  gcc/testsuite/gcc.c-torture/execute/multdi-1.c
! f0d014a801d213bd03b56cddfc596811  gcc/testsuite/gcc.c-torture/execute/multi-ix.c
  a562cb07e318deddf26e66e296dccff5  gcc/testsuite/gcc.c-torture/execute/nest-align-1.c
! b07a89f75cb6cca54f6a324b7bbae1ab  gcc/testsuite/gcc.c-torture/execute/nest-stdar-1.c
! 58a07570a5bac07cd19cb1940b4bd3d3  gcc/testsuite/gcc.c-torture/execute/nestfunc-1.c
! 0062dfdbad0104caac056f5a08b42a5a  gcc/testsuite/gcc.c-torture/execute/nestfunc-2.c
! 261f5ab856142420aa77c6aae6500ec6  gcc/testsuite/gcc.c-torture/execute/nestfunc-3.c
! a1747d3f25b202a434a5b39127e8ea5f  gcc/testsuite/gcc.c-torture/execute/nestfunc-4.c
  2ca880bb55d87383e26ffc8fa0112943  gcc/testsuite/gcc.c-torture/execute/nestfunc-5.c
  946aaf0b744e9e60a1b63616ecd74ab0  gcc/testsuite/gcc.c-torture/execute/nestfunc-6.c
  6896ae9f33bd0e4a4be1233cac5fdf70  gcc/testsuite/gcc.c-torture/execute/nestfunc-7.c
  e854bc80f793329b6c96d31e3f80a012  gcc/testsuite/gcc.c-torture/execute/p18298.c
! 3c169902d628502c10f1402f266d1ce3  gcc/testsuite/gcc.c-torture/execute/packed-1.c
  800a3f99834a5cdcc44e2f924fa80443  gcc/testsuite/gcc.c-torture/execute/packed-2.c
  9c9024650c8b4b1672ea993228511949  gcc/testsuite/gcc.c-torture/execute/packed-aligned.c
! 12785ab6e086a50cd8ab9f5bdb9a9bc5  gcc/testsuite/gcc.c-torture/execute/pending-4.c
  5ad23d6cafc55e78896b90e3669a14b8  gcc/testsuite/gcc.c-torture/execute/postmod-1.c
  64b80dcfbe526f0e5993e4b739431227  gcc/testsuite/gcc.c-torture/execute/pr100453.c
  859a8616bb39c775a0c9e44482a3e048  gcc/testsuite/gcc.c-torture/execute/pr101335.c
  a2175770e21b82966738b5577f0fae06  gcc/testsuite/gcc.c-torture/execute/pr102134.c
  6f562291c92a478431678da451525a90  gcc/testsuite/gcc.c-torture/execute/pr103052.c
--- 38180,38260 ----
  6b57d671d14f682212679d0df178da53  gcc/testsuite/gcc.c-torture/execute/ieee/pr72824-2.c
  69fc297e7bf7f2a44efa07b90f5297e3  gcc/testsuite/gcc.c-torture/execute/ieee/pr72824.c
  07e1ee7132e0d718d46828e4431bf2c4  gcc/testsuite/gcc.c-torture/execute/ieee/pr84235.c
! 2e86047bb4bd73c7382b844ea07c0c1c  gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
  7116b2d7f2d33fbc73903c620f3bca16  gcc/testsuite/gcc.c-torture/execute/ieee/rbug.x
  205da00dccd6dcf1575a79b20ce968a4  gcc/testsuite/gcc.c-torture/execute/ieee/unsafe-fp-assoc-1.c
  b2ab2df25ae61fdb2695a27e3847bca4  gcc/testsuite/gcc.c-torture/execute/ieee/unsafe-fp-assoc-1.x
  82761f24b0b6519b8b92f35a92ea3ca6  gcc/testsuite/gcc.c-torture/execute/ieee/unsafe-fp-assoc.c
  ea22da05fc8da75320add456648e6527  gcc/testsuite/gcc.c-torture/execute/ifcvt-onecmpl-abs-1.c
! bf53d1ed82a11a6ab63b2ad7071785af  gcc/testsuite/gcc.c-torture/execute/index-1.c
! cf72e1abf41d6fa733a08a4bc56856bc  gcc/testsuite/gcc.c-torture/execute/inst-check.c
! e3abc27a594aaec082dee1f8a74a478a  gcc/testsuite/gcc.c-torture/execute/int-compare.c
  9d7747e1d62c3b22bb9105369b89992e  gcc/testsuite/gcc.c-torture/execute/ipa-sra-1.c
  9c2248fc0f7854c6a5695b912fc5619b  gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.c
! 85f896a0acff653c73bf92e8895919f3  gcc/testsuite/gcc.c-torture/execute/longlong.c
! 770e412cd955649bfd3a1a208ff4bbbf  gcc/testsuite/gcc.c-torture/execute/loop-1.c
! 835d5e558cf31399b04a089d2cecc737  gcc/testsuite/gcc.c-torture/execute/loop-10.c
! 93d49d708a23ee73d4804bffb18976b4  gcc/testsuite/gcc.c-torture/execute/loop-11.c
  8c7d37a124147fa075fdc7f794bb4897  gcc/testsuite/gcc.c-torture/execute/loop-12.c
! 822f19556538ed00db9e028c9a871592  gcc/testsuite/gcc.c-torture/execute/loop-13.c
! b0e102fc08ee0403fc1d82b01b9ec5b0  gcc/testsuite/gcc.c-torture/execute/loop-14.c
! da1983b950929cd528377bb9de7a5710  gcc/testsuite/gcc.c-torture/execute/loop-15.c
! b0df593b5e8f77771fa0e3ca8ca20b6e  gcc/testsuite/gcc.c-torture/execute/loop-2.c
! c7a4df8ba4523890b02fe7f7bc538164  gcc/testsuite/gcc.c-torture/execute/loop-2b.c
  fd8619fd30dca66f688bfecaab80d41a  gcc/testsuite/gcc.c-torture/execute/loop-2c.c
! 1ad95278ed0be66078095e5ca0392cad  gcc/testsuite/gcc.c-torture/execute/loop-2d.c
! 185690d2354a596580495bef8943474a  gcc/testsuite/gcc.c-torture/execute/loop-2e.c
! 161bfa4f530200256191e854cb5f077d  gcc/testsuite/gcc.c-torture/execute/loop-2f.c
! 74857c58b6fb8c45e1b93443cb26ace7  gcc/testsuite/gcc.c-torture/execute/loop-2g.c
! e7654be017e11dcf9872ec274414b680  gcc/testsuite/gcc.c-torture/execute/loop-3.c
! dd98fb7599d6c92038127c608eeb5827  gcc/testsuite/gcc.c-torture/execute/loop-3b.c
! a6fd3fefdf0298282cba4be8101de705  gcc/testsuite/gcc.c-torture/execute/loop-3c.c
! d359df043b969b0514d4680b96efd561  gcc/testsuite/gcc.c-torture/execute/loop-4.c
! a851f95a83ad89aec635a7b25f8f5ac6  gcc/testsuite/gcc.c-torture/execute/loop-4b.c
! c4da49c47f6f97e95bad1aef18f204ea  gcc/testsuite/gcc.c-torture/execute/loop-5.c
! ae7ed5d9639784fd3b77a385029c4483  gcc/testsuite/gcc.c-torture/execute/loop-6.c
! 52ef3ec1a2bf71515971531c1ce85d1b  gcc/testsuite/gcc.c-torture/execute/loop-7.c
! f364c4fba1cf527876750203584b5627  gcc/testsuite/gcc.c-torture/execute/loop-8.c
  bde52ca8cfd224ec9a5a4b7ca60611ce  gcc/testsuite/gcc.c-torture/execute/loop-9.c
  02f28a11f4d2f3a015c8945152defd9d  gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c
  462bac74cce6bcaf4babe1d60ee0dc37  gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c
  2d39990f0058bb53e42ac0a0e3af5944  gcc/testsuite/gcc.c-torture/execute/lshrdi-1.c
! 2b6b47ff49ec0b9b44a8c5157dddcdd7  gcc/testsuite/gcc.c-torture/execute/lto-tbaa-1.c
  707a981156afeb194aec4b858a7fffce  gcc/testsuite/gcc.c-torture/execute/mayalias-1.c
  fc7ff12f9a631694f1405c85c8acdbe8  gcc/testsuite/gcc.c-torture/execute/mayalias-2.c
  f08201ddad8e116d00963e214b8f1f67  gcc/testsuite/gcc.c-torture/execute/mayalias-3.c
  4b947eae575a6a921be4eb4213bba3d3  gcc/testsuite/gcc.c-torture/execute/medce-1.c
  4b3141dc2b1f2efe4f4174e391935366  gcc/testsuite/gcc.c-torture/execute/memchr-1.c
! 36f16b3c64bf7291524154e754599fbd  gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
! e59c33dc7e0cf0b7efe9b5de279fcf0a  gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
! 3672d081a1175750b5a7b0b134e8f9fe  gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c
! 0f7dd15ba812d0e419e16f90e50333c7  gcc/testsuite/gcc.c-torture/execute/memset-1.c
! ae7f210a28f6df09ce475144a9115adf  gcc/testsuite/gcc.c-torture/execute/memset-2.c
! 7c0301058c1b44756040ec5d53a6be74  gcc/testsuite/gcc.c-torture/execute/memset-3.c
  cd68c635f7ee7b9d61cd6fb30e11f695  gcc/testsuite/gcc.c-torture/execute/memset-4.c
! 4e44e439ba03cef67bfaeec3bb6251ca  gcc/testsuite/gcc.c-torture/execute/minmaxcmp-1.c
! 5602ed212c10ba805f0e4a980b8bdbd2  gcc/testsuite/gcc.c-torture/execute/mod-1.c
  c36723455fcef225d099e9718b35749b  gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.c
  557fcf228c206c15ef609901f05ab9dc  gcc/testsuite/gcc.c-torture/execute/mul-sext.c
! 475534aee7c744dc3489894a15e5493c  gcc/testsuite/gcc.c-torture/execute/multdi-1.c
! b4dd2f4167c4a236eb265a6fb9fcab49  gcc/testsuite/gcc.c-torture/execute/multi-ix.c
  a562cb07e318deddf26e66e296dccff5  gcc/testsuite/gcc.c-torture/execute/nest-align-1.c
! 6f471dcaf08ce26182bfd56e7d2385d8  gcc/testsuite/gcc.c-torture/execute/nest-stdar-1.c
! d25cda763cac6ad37f27bd99bcfbe2b8  gcc/testsuite/gcc.c-torture/execute/nestfunc-1.c
! d66b9fd9c32fa8d9d5a5a4ded4cf9a1f  gcc/testsuite/gcc.c-torture/execute/nestfunc-2.c
! 31145aadb9f0a72629e4c8381753817b  gcc/testsuite/gcc.c-torture/execute/nestfunc-3.c
! 761595fa73d2baa0a5966124f2f3a6e2  gcc/testsuite/gcc.c-torture/execute/nestfunc-4.c
  2ca880bb55d87383e26ffc8fa0112943  gcc/testsuite/gcc.c-torture/execute/nestfunc-5.c
  946aaf0b744e9e60a1b63616ecd74ab0  gcc/testsuite/gcc.c-torture/execute/nestfunc-6.c
  6896ae9f33bd0e4a4be1233cac5fdf70  gcc/testsuite/gcc.c-torture/execute/nestfunc-7.c
  e854bc80f793329b6c96d31e3f80a012  gcc/testsuite/gcc.c-torture/execute/p18298.c
! 94d205902887ace70fdbfa02251b6ee2  gcc/testsuite/gcc.c-torture/execute/packed-1.c
  800a3f99834a5cdcc44e2f924fa80443  gcc/testsuite/gcc.c-torture/execute/packed-2.c
  9c9024650c8b4b1672ea993228511949  gcc/testsuite/gcc.c-torture/execute/packed-aligned.c
! c7ba109d05a44d042e8aab99539859f4  gcc/testsuite/gcc.c-torture/execute/pending-4.c
  5ad23d6cafc55e78896b90e3669a14b8  gcc/testsuite/gcc.c-torture/execute/postmod-1.c
  64b80dcfbe526f0e5993e4b739431227  gcc/testsuite/gcc.c-torture/execute/pr100453.c
+ 7eb7ffbe788ba5ef0ae0a135815b758b  gcc/testsuite/gcc.c-torture/execute/pr101188.c
  859a8616bb39c775a0c9e44482a3e048  gcc/testsuite/gcc.c-torture/execute/pr101335.c
  a2175770e21b82966738b5577f0fae06  gcc/testsuite/gcc.c-torture/execute/pr102134.c
  6f562291c92a478431678da451525a90  gcc/testsuite/gcc.c-torture/execute/pr103052.c
*************** a2175770e21b82966738b5577f0fae06  gcc/te
*** 36155,36161 ****
  a5b5957138d71ec5e7dbb1056f5b6cf4  gcc/testsuite/gcc.c-torture/execute/pr103255.c
  c679b2f93e28cfb99a26c4bdafb29492  gcc/testsuite/gcc.c-torture/execute/pr103376.c
  804ac46703f97fd2be64ffb507261f8f  gcc/testsuite/gcc.c-torture/execute/pr103405.c
! 9b4487564bc91a30922019d7c0d9e720  gcc/testsuite/gcc.c-torture/execute/pr103417.c
  e3ac376d67fc8be136e9485818084877  gcc/testsuite/gcc.c-torture/execute/pr10352-1.c
  a89a9f97e9f6a37a0db709c2b09097b9  gcc/testsuite/gcc.c-torture/execute/pr104196.c
  eda9698796bef969bb50e5712208e61b  gcc/testsuite/gcc.c-torture/execute/pr104604.c
--- 38262,38268 ----
  a5b5957138d71ec5e7dbb1056f5b6cf4  gcc/testsuite/gcc.c-torture/execute/pr103255.c
  c679b2f93e28cfb99a26c4bdafb29492  gcc/testsuite/gcc.c-torture/execute/pr103376.c
  804ac46703f97fd2be64ffb507261f8f  gcc/testsuite/gcc.c-torture/execute/pr103405.c
! 281c21de4f0f9c4cd24928c7e7bf49a7  gcc/testsuite/gcc.c-torture/execute/pr103417.c
  e3ac376d67fc8be136e9485818084877  gcc/testsuite/gcc.c-torture/execute/pr10352-1.c
  a89a9f97e9f6a37a0db709c2b09097b9  gcc/testsuite/gcc.c-torture/execute/pr104196.c
  eda9698796bef969bb50e5712208e61b  gcc/testsuite/gcc.c-torture/execute/pr104604.c
*************** eda9698796bef969bb50e5712208e61b  gcc/te
*** 36168,36194 ****
  648140ac374da564be1d5bcfdb9f6512  gcc/testsuite/gcc.c-torture/execute/pr106523.c
  93b9ac308d7aaa9e802f601e379cb1ff  gcc/testsuite/gcc.c-torture/execute/pr107131.c
  7a452826a0b69ad170679ed32c9d9d29  gcc/testsuite/gcc.c-torture/execute/pr107879.c
  9c62df56e19a75c333a2e6248ad57196  gcc/testsuite/gcc.c-torture/execute/pr108064.c
  4badcaaf116af3e7dd155e4534d8ac88  gcc/testsuite/gcc.c-torture/execute/pr108292.c
  154a19663c66fcea6a49b6718c685882  gcc/testsuite/gcc.c-torture/execute/pr108498-1.c
! ee35df6bcc12c95f226b88f0d72b377d  gcc/testsuite/gcc.c-torture/execute/pr108498-2.c
  c8bc63449a253495869d91d5e4176c35  gcc/testsuite/gcc.c-torture/execute/pr109040.c
  23cbbe0d93f89048f8d1ce1883e61ac2  gcc/testsuite/gcc.c-torture/execute/pr109778.c
  0c03ba3ca9a1b8b66054261c416e8d93  gcc/testsuite/gcc.c-torture/execute/pr110165-1.c
  c885de6344b1bb4c74104697511c2dbd  gcc/testsuite/gcc.c-torture/execute/pr110166-1.c
! 7758cb727d75f4fc1c0e483d503de146  gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
! 58dc249612dbc918d7fc4010e94deb8d  gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
! d9c36fc850771445c5e4b6ce6dae1a12  gcc/testsuite/gcc.c-torture/execute/pr15262.c
! 7efe3482470f9d10f12bbf49b1542992  gcc/testsuite/gcc.c-torture/execute/pr15296.c
  eede5846406062fe63057e8df56a6ca6  gcc/testsuite/gcc.c-torture/execute/pr16790-1.c
  4fc9e57f7b945eb1b204095a3d029480  gcc/testsuite/gcc.c-torture/execute/pr17078-1.c
  dba3bcf10039bcb1ecc6bf45d0cd1bd8  gcc/testsuite/gcc.c-torture/execute/pr17133.c
! 37ca25609a247860be8b02708b73fea7  gcc/testsuite/gcc.c-torture/execute/pr17252.c
! b42bae516238d8a56d1b5e4146fca0c4  gcc/testsuite/gcc.c-torture/execute/pr17377.c
  5f75ea59963aba30c9a23d96579453f7  gcc/testsuite/gcc.c-torture/execute/pr19005.c
  aa9ab7b3132881e662d2a7075ddb4ec4  gcc/testsuite/gcc.c-torture/execute/pr19449.c
  2acb24beb962e468d2f1c1ea9dfc3777  gcc/testsuite/gcc.c-torture/execute/pr19515.c
! 5ac75e20c2ac6622cf1945210324fdf3  gcc/testsuite/gcc.c-torture/execute/pr19606.c
  6b723e82c4f73f13efba759c6fdf97dd  gcc/testsuite/gcc.c-torture/execute/pr19687.c
  9cdb15d36e8bc8cac546a6cb428e44b2  gcc/testsuite/gcc.c-torture/execute/pr19689.c
  568fdc6c0308a2021fa0958fbb14e69d  gcc/testsuite/gcc.c-torture/execute/pr20100-1.c
--- 38275,38330 ----
  648140ac374da564be1d5bcfdb9f6512  gcc/testsuite/gcc.c-torture/execute/pr106523.c
  93b9ac308d7aaa9e802f601e379cb1ff  gcc/testsuite/gcc.c-torture/execute/pr107131.c
  7a452826a0b69ad170679ed32c9d9d29  gcc/testsuite/gcc.c-torture/execute/pr107879.c
+ 5f0afbc0f2cbd5ec9d58987559115c4b  gcc/testsuite/gcc.c-torture/execute/pr107881-1.c
  9c62df56e19a75c333a2e6248ad57196  gcc/testsuite/gcc.c-torture/execute/pr108064.c
  4badcaaf116af3e7dd155e4534d8ac88  gcc/testsuite/gcc.c-torture/execute/pr108292.c
  154a19663c66fcea6a49b6718c685882  gcc/testsuite/gcc.c-torture/execute/pr108498-1.c
! c7799b18d2511cd7e671b7875784169b  gcc/testsuite/gcc.c-torture/execute/pr108498-2.c
  c8bc63449a253495869d91d5e4176c35  gcc/testsuite/gcc.c-torture/execute/pr109040.c
  23cbbe0d93f89048f8d1ce1883e61ac2  gcc/testsuite/gcc.c-torture/execute/pr109778.c
+ cac0ac2f80f26d97359c398003db0f18  gcc/testsuite/gcc.c-torture/execute/pr109925.c
+ 410ffc79d78e63c2270039353c32c01f  gcc/testsuite/gcc.c-torture/execute/pr109938.c
+ 5213eaefecf4b2830e6505cd38f62789  gcc/testsuite/gcc.c-torture/execute/pr109986.c
+ 656d590b25f1c491ea39b7de2cc2a90c  gcc/testsuite/gcc.c-torture/execute/pr110115.c
  0c03ba3ca9a1b8b66054261c416e8d93  gcc/testsuite/gcc.c-torture/execute/pr110165-1.c
  c885de6344b1bb4c74104697511c2dbd  gcc/testsuite/gcc.c-torture/execute/pr110166-1.c
! f807ba3ccdb8596a85b708339eb69f57  gcc/testsuite/gcc.c-torture/execute/pr110252-1.c
! fd0d5bdeb781e71acda02899f56b465a  gcc/testsuite/gcc.c-torture/execute/pr110252-2.c
! b7882ea43c47ced3fba4edded95fd3f6  gcc/testsuite/gcc.c-torture/execute/pr110252-3.c
! cc92db1ca38b790ec7858d2d514dcbcd  gcc/testsuite/gcc.c-torture/execute/pr110252-4.c
! f4d9abbbdd2c942b1395fbd96f7b97f7  gcc/testsuite/gcc.c-torture/execute/pr110666-1.c
! a81d1e01a4efdda3fee876b2c17f9451  gcc/testsuite/gcc.c-torture/execute/pr110817-1.c
! 9b0c414d6236444bedfc8c203fa0823b  gcc/testsuite/gcc.c-torture/execute/pr110817-2.c
! 09be56af1259a8b657ef5933016780f8  gcc/testsuite/gcc.c-torture/execute/pr110817-3.c
! 914ecbceb55b6e48b491757423749cee  gcc/testsuite/gcc.c-torture/execute/pr110914.c
! f5334a5e8986de9d0061c111d4f9d3d2  gcc/testsuite/gcc.c-torture/execute/pr110954-1.c
! aba9ca52725540fcc7df1338ac54df7c  gcc/testsuite/gcc.c-torture/execute/pr111151.c
! 0695a367869705183e24db3f4a501420  gcc/testsuite/gcc.c-torture/execute/pr111331-1.c
! db337c00bedfc272ed5edbb6acffed7c  gcc/testsuite/gcc.c-torture/execute/pr111331-2.c
! e7bc1f52654c430d9ceb1acb868fbc20  gcc/testsuite/gcc.c-torture/execute/pr111331-3.c
! eefdaed8e6e57c688553667e395d78d3  gcc/testsuite/gcc.c-torture/execute/pr111408.c
! 9db3e649786fc47229bef9b14997489f  gcc/testsuite/gcc.c-torture/execute/pr111422.c
! b40075382f21fb5da6917397258b180a  gcc/testsuite/gcc.c-torture/execute/pr111431-1.c
! 1a4186e263d70a2500468acc38758893  gcc/testsuite/gcc.c-torture/execute/pr111469-1.c
! 4d49fe69373e12bad98a811d032b7738  gcc/testsuite/gcc.c-torture/execute/pr111863-1.c
! dc84ceb83455f22083f7cfb4532cf34e  gcc/testsuite/gcc.c-torture/execute/pr112581-1.c
! ecdedbf463fcb6869d2dcb4d5a4b2376  gcc/testsuite/gcc.c-torture/execute/pr112758.c
! 304eb4a2fe5dbf99723cc6dc9d8ffb16  gcc/testsuite/gcc.c-torture/execute/pr113010.c
! ce292472e176af7e97b5cfeddc436247  gcc/testsuite/gcc.c-torture/execute/pr114396.c
! 7ae9a3b1d760fa818cb4c06f937f3d43  gcc/testsuite/gcc.c-torture/execute/pr114552.c
! 80c02c70a0b6b91b06942e395c34960f  gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
! 987c511633ad57d9f08d352eb9512819  gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
! f7f514cfbd791b0c828e0710493b0910  gcc/testsuite/gcc.c-torture/execute/pr15262.c
! 35084795d6cbd253f0dc4173f9f8bdd1  gcc/testsuite/gcc.c-torture/execute/pr15296.c
  eede5846406062fe63057e8df56a6ca6  gcc/testsuite/gcc.c-torture/execute/pr16790-1.c
  4fc9e57f7b945eb1b204095a3d029480  gcc/testsuite/gcc.c-torture/execute/pr17078-1.c
  dba3bcf10039bcb1ecc6bf45d0cd1bd8  gcc/testsuite/gcc.c-torture/execute/pr17133.c
! d3d985122f6386b1abb505ddf6992aca  gcc/testsuite/gcc.c-torture/execute/pr17252.c
! c2c1f07190241a4c0ba2cab43a1f718a  gcc/testsuite/gcc.c-torture/execute/pr17377.c
  5f75ea59963aba30c9a23d96579453f7  gcc/testsuite/gcc.c-torture/execute/pr19005.c
  aa9ab7b3132881e662d2a7075ddb4ec4  gcc/testsuite/gcc.c-torture/execute/pr19449.c
  2acb24beb962e468d2f1c1ea9dfc3777  gcc/testsuite/gcc.c-torture/execute/pr19515.c
! 4d62d232222e19c6f31d76d8a7179664  gcc/testsuite/gcc.c-torture/execute/pr19606.c
  6b723e82c4f73f13efba759c6fdf97dd  gcc/testsuite/gcc.c-torture/execute/pr19687.c
  9cdb15d36e8bc8cac546a6cb428e44b2  gcc/testsuite/gcc.c-torture/execute/pr19689.c
  568fdc6c0308a2021fa0958fbb14e69d  gcc/testsuite/gcc.c-torture/execute/pr20100-1.c
*************** f881996934b53f50e79ef53efa9360c5  gcc/te
*** 36198,36209 ****
  c4d4100775bd3f164faa4568489656b5  gcc/testsuite/gcc.c-torture/execute/pr20601-1.c
  affcc44de516e8e0c367fc2a2571d57d  gcc/testsuite/gcc.c-torture/execute/pr20621-1.c
  d0b7114647f223fd5d76807fabb2b2f4  gcc/testsuite/gcc.c-torture/execute/pr21173.c
! 61c6c8c4c1deb8b1fe25a10b4b953f3d  gcc/testsuite/gcc.c-torture/execute/pr21331.c
! 2391d246ccb6efc08517c7679f7c73b2  gcc/testsuite/gcc.c-torture/execute/pr21964-1.c
! 14e779fbba144f581fb05e44a459dda1  gcc/testsuite/gcc.c-torture/execute/pr22061-1.c
! 10a9962172b1f57feba361bbfa8ed547  gcc/testsuite/gcc.c-torture/execute/pr22061-2.c
! 9185a8e1edb7a9585c8c711dc2817e6d  gcc/testsuite/gcc.c-torture/execute/pr22061-3.c
! 8aa597a023bef18b6db9c933d8f18953  gcc/testsuite/gcc.c-torture/execute/pr22061-4.c
  0229bbfb2ea9e215d7a7137688c4a382  gcc/testsuite/gcc.c-torture/execute/pr22098-1.c
  ef80f84383e037e1c4a197edd7101c80  gcc/testsuite/gcc.c-torture/execute/pr22098-2.c
  f90db7eb416ec19429913e03df787d2e  gcc/testsuite/gcc.c-torture/execute/pr22098-3.c
--- 38334,38345 ----
  c4d4100775bd3f164faa4568489656b5  gcc/testsuite/gcc.c-torture/execute/pr20601-1.c
  affcc44de516e8e0c367fc2a2571d57d  gcc/testsuite/gcc.c-torture/execute/pr20621-1.c
  d0b7114647f223fd5d76807fabb2b2f4  gcc/testsuite/gcc.c-torture/execute/pr21173.c
! 44c9aad0871d262574dd8b14388a60e6  gcc/testsuite/gcc.c-torture/execute/pr21331.c
! 42d761ddc0f15cd378b9ff7f9f52c82f  gcc/testsuite/gcc.c-torture/execute/pr21964-1.c
! c48a8e3c1c90e05d60edc158edc7b177  gcc/testsuite/gcc.c-torture/execute/pr22061-1.c
! 3c7445bc8ed1b837f928ea7b79ec7f1c  gcc/testsuite/gcc.c-torture/execute/pr22061-2.c
! 91cad344e10128162675c8f55dad450e  gcc/testsuite/gcc.c-torture/execute/pr22061-3.c
! 3667dd5c8f2c34c48aea1dc78d1a499b  gcc/testsuite/gcc.c-torture/execute/pr22061-4.c
  0229bbfb2ea9e215d7a7137688c4a382  gcc/testsuite/gcc.c-torture/execute/pr22098-1.c
  ef80f84383e037e1c4a197edd7101c80  gcc/testsuite/gcc.c-torture/execute/pr22098-2.c
  f90db7eb416ec19429913e03df787d2e  gcc/testsuite/gcc.c-torture/execute/pr22098-3.c
*************** dd00be933cede2d9e5e60bb682a83aee  gcc/te
*** 36216,36222 ****
  cfcc861f4888e288449ba119b16f4191  gcc/testsuite/gcc.c-torture/execute/pr23047.c
  48f72974737146a53a3c367be69db908  gcc/testsuite/gcc.c-torture/execute/pr23135.c
  daf80206ebf1679b1938f38f4dd13747  gcc/testsuite/gcc.c-torture/execute/pr23324.c
! 1780265ac830ca44c4e0788e686e85d1  gcc/testsuite/gcc.c-torture/execute/pr23467.c
  a832db54bb9231364468a1a69cd515f0  gcc/testsuite/gcc.c-torture/execute/pr23604.c
  5fcddec75b4fced0792d11eb3f66e76e  gcc/testsuite/gcc.c-torture/execute/pr23941.c
  1b417781c9f4646dddcec928c90d20ef  gcc/testsuite/gcc.c-torture/execute/pr24135.c
--- 38352,38358 ----
  cfcc861f4888e288449ba119b16f4191  gcc/testsuite/gcc.c-torture/execute/pr23047.c
  48f72974737146a53a3c367be69db908  gcc/testsuite/gcc.c-torture/execute/pr23135.c
  daf80206ebf1679b1938f38f4dd13747  gcc/testsuite/gcc.c-torture/execute/pr23324.c
! ce0e7f46c52238255d98efe7dedc593d  gcc/testsuite/gcc.c-torture/execute/pr23467.c
  a832db54bb9231364468a1a69cd515f0  gcc/testsuite/gcc.c-torture/execute/pr23604.c
  5fcddec75b4fced0792d11eb3f66e76e  gcc/testsuite/gcc.c-torture/execute/pr23941.c
  1b417781c9f4646dddcec928c90d20ef  gcc/testsuite/gcc.c-torture/execute/pr24135.c
*************** b515840f11a33c86ce043878f117b6e0  gcc/te
*** 36226,36238 ****
  e4475736d3bd874cdc482ee4f9ce1f4e  gcc/testsuite/gcc.c-torture/execute/pr24851.c
  cd092ed980cc0bc3beb8cb8d9892ccf9  gcc/testsuite/gcc.c-torture/execute/pr25125.c
  ded864f2b5106a9ea954aee75aed4024  gcc/testsuite/gcc.c-torture/execute/pr25737.c
! a4e2b1a3b6c2700e906501813ceaa8c9  gcc/testsuite/gcc.c-torture/execute/pr27073.c
  032bfaab87f4f7503b7326e3779403a7  gcc/testsuite/gcc.c-torture/execute/pr27260.c
  1d5786147aaf52e74a0ffe68429e72ee  gcc/testsuite/gcc.c-torture/execute/pr27285.c
! 4ac20821be7f4a5fdc0a9825e02f6cfc  gcc/testsuite/gcc.c-torture/execute/pr27364.c
  ca7aec10b75863d165f7a9085a40342e  gcc/testsuite/gcc.c-torture/execute/pr27671-1.c
  f41d8caa66b63ff232795983f577cb63  gcc/testsuite/gcc.c-torture/execute/pr28289.c
! 15c6dd4318df55a1bfcd1ef92c8c649e  gcc/testsuite/gcc.c-torture/execute/pr28403.c
  2d25b0d74ce14db538d434829c27a72e  gcc/testsuite/gcc.c-torture/execute/pr28651.c
  fd0d0270a488f75fe62ed4aff01662f0  gcc/testsuite/gcc.c-torture/execute/pr28778.c
  5cac88d63606a2bf20afb3e6572d72fc  gcc/testsuite/gcc.c-torture/execute/pr28865.c
--- 38362,38374 ----
  e4475736d3bd874cdc482ee4f9ce1f4e  gcc/testsuite/gcc.c-torture/execute/pr24851.c
  cd092ed980cc0bc3beb8cb8d9892ccf9  gcc/testsuite/gcc.c-torture/execute/pr25125.c
  ded864f2b5106a9ea954aee75aed4024  gcc/testsuite/gcc.c-torture/execute/pr25737.c
! 1d687d74c16fc2e1ee282bbdd7bbf785  gcc/testsuite/gcc.c-torture/execute/pr27073.c
  032bfaab87f4f7503b7326e3779403a7  gcc/testsuite/gcc.c-torture/execute/pr27260.c
  1d5786147aaf52e74a0ffe68429e72ee  gcc/testsuite/gcc.c-torture/execute/pr27285.c
! 47c5885d9d51d0994a6afaeb6e3a791d  gcc/testsuite/gcc.c-torture/execute/pr27364.c
  ca7aec10b75863d165f7a9085a40342e  gcc/testsuite/gcc.c-torture/execute/pr27671-1.c
  f41d8caa66b63ff232795983f577cb63  gcc/testsuite/gcc.c-torture/execute/pr28289.c
! 2d9a0bc0f61fc311ee744c81dc6dc946  gcc/testsuite/gcc.c-torture/execute/pr28403.c
  2d25b0d74ce14db538d434829c27a72e  gcc/testsuite/gcc.c-torture/execute/pr28651.c
  fd0d0270a488f75fe62ed4aff01662f0  gcc/testsuite/gcc.c-torture/execute/pr28778.c
  5cac88d63606a2bf20afb3e6572d72fc  gcc/testsuite/gcc.c-torture/execute/pr28865.c
*************** ee2a2d73a7ad190989d6cf543996de1c  gcc/te
*** 36253,36259 ****
  f1753d0b79820a5bf6ecf047589155f3  gcc/testsuite/gcc.c-torture/execute/pr31169.c
  567d7b4113e6e5f48e345123d259f93e  gcc/testsuite/gcc.c-torture/execute/pr31448-2.c
  fb964033bc27610a7eb698d03076e3f7  gcc/testsuite/gcc.c-torture/execute/pr31448.c
! 7805f8639c582612b3b186389c026f95  gcc/testsuite/gcc.c-torture/execute/pr31605.c
  542fec010f8e486be9ae35b71e7c132d  gcc/testsuite/gcc.c-torture/execute/pr32244-1.c
  eba8b48678f36c3b71094bab10593a19  gcc/testsuite/gcc.c-torture/execute/pr32500.c
  ebd84d8000d69d97c5201c5d43ce6acb  gcc/testsuite/gcc.c-torture/execute/pr33142.c
--- 38389,38395 ----
  f1753d0b79820a5bf6ecf047589155f3  gcc/testsuite/gcc.c-torture/execute/pr31169.c
  567d7b4113e6e5f48e345123d259f93e  gcc/testsuite/gcc.c-torture/execute/pr31448-2.c
  fb964033bc27610a7eb698d03076e3f7  gcc/testsuite/gcc.c-torture/execute/pr31448.c
! 4ba5a9efe507d829e5df4d1ff5343a44  gcc/testsuite/gcc.c-torture/execute/pr31605.c
  542fec010f8e486be9ae35b71e7c132d  gcc/testsuite/gcc.c-torture/execute/pr32244-1.c
  eba8b48678f36c3b71094bab10593a19  gcc/testsuite/gcc.c-torture/execute/pr32500.c
  ebd84d8000d69d97c5201c5d43ce6acb  gcc/testsuite/gcc.c-torture/execute/pr33142.c
*************** e0c5488033cf9bbb74eaffbb6048880d  gcc/te
*** 36271,36277 ****
  b867cfa3634ee9a89359b276c5068e9f  gcc/testsuite/gcc.c-torture/execute/pr34099.c
  281cdbfa776ef9b3ffe184023bb013f7  gcc/testsuite/gcc.c-torture/execute/pr34130.c
  a2e6067c4b982a27fd20ba814fe4d323  gcc/testsuite/gcc.c-torture/execute/pr34154.c
! 620289aa8aa131ec35537e256200b529  gcc/testsuite/gcc.c-torture/execute/pr34176.c
  330cfce0caa9e6f8478c260e2f844729  gcc/testsuite/gcc.c-torture/execute/pr34415.c
  f082000e8da2a29dea5b1beb62b98858  gcc/testsuite/gcc.c-torture/execute/pr34456.c
  01aa598710310e5a7b6317dd682b7ff3  gcc/testsuite/gcc.c-torture/execute/pr34768-1.c
--- 38407,38413 ----
  b867cfa3634ee9a89359b276c5068e9f  gcc/testsuite/gcc.c-torture/execute/pr34099.c
  281cdbfa776ef9b3ffe184023bb013f7  gcc/testsuite/gcc.c-torture/execute/pr34130.c
  a2e6067c4b982a27fd20ba814fe4d323  gcc/testsuite/gcc.c-torture/execute/pr34154.c
! 00478ad320bdca81473d6a0aec1d0305  gcc/testsuite/gcc.c-torture/execute/pr34176.c
  330cfce0caa9e6f8478c260e2f844729  gcc/testsuite/gcc.c-torture/execute/pr34415.c
  f082000e8da2a29dea5b1beb62b98858  gcc/testsuite/gcc.c-torture/execute/pr34456.c
  01aa598710310e5a7b6317dd682b7ff3  gcc/testsuite/gcc.c-torture/execute/pr34768-1.c
*************** e8e940ac5a7dbb6b608681ae5a5e62cd  gcc/te
*** 36309,36315 ****
  f7f3243f94a8f9a130ba68f40d2354a6  gcc/testsuite/gcc.c-torture/execute/pr38422.c
  7710e81d8c89cd3766b940d114e0a93a  gcc/testsuite/gcc.c-torture/execute/pr38533.c
  72d93458d20a606f5589e6f36463fa86  gcc/testsuite/gcc.c-torture/execute/pr38819.c
! 06cb84d17c6ab71ba5368161df22468b  gcc/testsuite/gcc.c-torture/execute/pr38969.c
  0b037104427b152bfe3ab5fb85c2bec7  gcc/testsuite/gcc.c-torture/execute/pr39100.c
  b15eb216d116729d134bf5de564f2b31  gcc/testsuite/gcc.c-torture/execute/pr39120.c
  5e8481bf452e6cc88198b29efe517f88  gcc/testsuite/gcc.c-torture/execute/pr39228.c
--- 38445,38451 ----
  f7f3243f94a8f9a130ba68f40d2354a6  gcc/testsuite/gcc.c-torture/execute/pr38422.c
  7710e81d8c89cd3766b940d114e0a93a  gcc/testsuite/gcc.c-torture/execute/pr38533.c
  72d93458d20a606f5589e6f36463fa86  gcc/testsuite/gcc.c-torture/execute/pr38819.c
! c928fe9490e6d9e36097ff7fe1c071ca  gcc/testsuite/gcc.c-torture/execute/pr38969.c
  0b037104427b152bfe3ab5fb85c2bec7  gcc/testsuite/gcc.c-torture/execute/pr39100.c
  b15eb216d116729d134bf5de564f2b31  gcc/testsuite/gcc.c-torture/execute/pr39120.c
  5e8481bf452e6cc88198b29efe517f88  gcc/testsuite/gcc.c-torture/execute/pr39228.c
*************** e91032a7cb0ee1b0a9b14d418efe6fb0  gcc/te
*** 36323,36329 ****
  38ef51a4c5fad3354e3c03d949f6d9d1  gcc/testsuite/gcc.c-torture/execute/pr40404.c
  eed39b9698966a4cfde4a5e93ea90194  gcc/testsuite/gcc.c-torture/execute/pr40493.c
  dc861ea4ab9373f64dc8037e7bcb4a12  gcc/testsuite/gcc.c-torture/execute/pr40579.c
! 90d336d85b0f171ea65712bc379636bd  gcc/testsuite/gcc.c-torture/execute/pr40657.c
  11f39d7d93cd8d32a9dbc64c7e7323ad  gcc/testsuite/gcc.c-torture/execute/pr40668.c
  5f54281901459a788127292e910c618a  gcc/testsuite/gcc.c-torture/execute/pr40747.c
  95850cff1a3efb9cb2fc739b15d5dafa  gcc/testsuite/gcc.c-torture/execute/pr41239.c
--- 38459,38465 ----
  38ef51a4c5fad3354e3c03d949f6d9d1  gcc/testsuite/gcc.c-torture/execute/pr40404.c
  eed39b9698966a4cfde4a5e93ea90194  gcc/testsuite/gcc.c-torture/execute/pr40493.c
  dc861ea4ab9373f64dc8037e7bcb4a12  gcc/testsuite/gcc.c-torture/execute/pr40579.c
! 4911272d43ebe11cd4ace6239e862249  gcc/testsuite/gcc.c-torture/execute/pr40657.c
  11f39d7d93cd8d32a9dbc64c7e7323ad  gcc/testsuite/gcc.c-torture/execute/pr40668.c
  5f54281901459a788127292e910c618a  gcc/testsuite/gcc.c-torture/execute/pr40747.c
  95850cff1a3efb9cb2fc739b15d5dafa  gcc/testsuite/gcc.c-torture/execute/pr41239.c
*************** ea0a414631d1425171b5a4eb57657931  gcc/te
*** 36338,36350 ****
  07d0a8daf41ed4b61656e8e2d3b03c60  gcc/testsuite/gcc.c-torture/execute/pr42006.c
  a1a92b38609808178913848a9c7d9ab3  gcc/testsuite/gcc.c-torture/execute/pr42142.c
  e277664d785bff4dbd22887229aa5e42  gcc/testsuite/gcc.c-torture/execute/pr42154.c
! 9d0805fdd9a0cf21d9cc09e46a30f205  gcc/testsuite/gcc.c-torture/execute/pr42231.c
  5650a464f68700c47c44119976fe334f  gcc/testsuite/gcc.c-torture/execute/pr42248.c
  f950ad90251a238b07e78b1c6c63b7f7  gcc/testsuite/gcc.c-torture/execute/pr42269-2.c
  bcf3ae2b3f1d2e9e126f255f7fd66a45  gcc/testsuite/gcc.c-torture/execute/pr42512.c
  a7fe37c7e88f8e1d333971c42d9d3663  gcc/testsuite/gcc.c-torture/execute/pr42544.c
  629f87f57011accdcdd57c84d8210a7d  gcc/testsuite/gcc.c-torture/execute/pr42570.c
! 0394c6df8e11e5645264dd8cba51ab75  gcc/testsuite/gcc.c-torture/execute/pr42614.c
  9bcea59be0916064443a026a4c16acbe  gcc/testsuite/gcc.c-torture/execute/pr42691.c
  9fcdb1a88bbe84e741f8bce1871cc5bf  gcc/testsuite/gcc.c-torture/execute/pr42721.c
  56c5f3aa089000e9e79fa6c9dd8f035b  gcc/testsuite/gcc.c-torture/execute/pr42833.c
--- 38474,38486 ----
  07d0a8daf41ed4b61656e8e2d3b03c60  gcc/testsuite/gcc.c-torture/execute/pr42006.c
  a1a92b38609808178913848a9c7d9ab3  gcc/testsuite/gcc.c-torture/execute/pr42142.c
  e277664d785bff4dbd22887229aa5e42  gcc/testsuite/gcc.c-torture/execute/pr42154.c
! cc9746d9124b96ff1f5c9d2d325a2aa3  gcc/testsuite/gcc.c-torture/execute/pr42231.c
  5650a464f68700c47c44119976fe334f  gcc/testsuite/gcc.c-torture/execute/pr42248.c
  f950ad90251a238b07e78b1c6c63b7f7  gcc/testsuite/gcc.c-torture/execute/pr42269-2.c
  bcf3ae2b3f1d2e9e126f255f7fd66a45  gcc/testsuite/gcc.c-torture/execute/pr42512.c
  a7fe37c7e88f8e1d333971c42d9d3663  gcc/testsuite/gcc.c-torture/execute/pr42544.c
  629f87f57011accdcdd57c84d8210a7d  gcc/testsuite/gcc.c-torture/execute/pr42570.c
! e27fc6f01b031517f7551f12ec3da5da  gcc/testsuite/gcc.c-torture/execute/pr42614.c
  9bcea59be0916064443a026a4c16acbe  gcc/testsuite/gcc.c-torture/execute/pr42691.c
  9fcdb1a88bbe84e741f8bce1871cc5bf  gcc/testsuite/gcc.c-torture/execute/pr42721.c
  56c5f3aa089000e9e79fa6c9dd8f035b  gcc/testsuite/gcc.c-torture/execute/pr42833.c
*************** e1c90e5d63e50e72d3af2ef2ef99702a  gcc/te
*** 36363,36369 ****
  14e636b8947495b5a4ac0db6391958fe  gcc/testsuite/gcc.c-torture/execute/pr44202-1.c
  101a516a3a0a612610ee475178f69009  gcc/testsuite/gcc.c-torture/execute/pr44468.c
  3ae706159e58df0e71fc74d1c9b10618  gcc/testsuite/gcc.c-torture/execute/pr44555.c
! f93c4bf1565f9d6cebabdecaa07554b4  gcc/testsuite/gcc.c-torture/execute/pr44575.c
  4eabb9e388d89fdb2a4ff27f51d02d37  gcc/testsuite/gcc.c-torture/execute/pr44683.c
  203d19aa9194f3447639abc5299e2db8  gcc/testsuite/gcc.c-torture/execute/pr44828.c
  5c38e7e89e7c1e99f8e470aeeff2bb93  gcc/testsuite/gcc.c-torture/execute/pr44852.c
--- 38499,38505 ----
  14e636b8947495b5a4ac0db6391958fe  gcc/testsuite/gcc.c-torture/execute/pr44202-1.c
  101a516a3a0a612610ee475178f69009  gcc/testsuite/gcc.c-torture/execute/pr44468.c
  3ae706159e58df0e71fc74d1c9b10618  gcc/testsuite/gcc.c-torture/execute/pr44555.c
! 496e4cf8ed5845dd5262c01d6a34527f  gcc/testsuite/gcc.c-torture/execute/pr44575.c
  4eabb9e388d89fdb2a4ff27f51d02d37  gcc/testsuite/gcc.c-torture/execute/pr44683.c
  203d19aa9194f3447639abc5299e2db8  gcc/testsuite/gcc.c-torture/execute/pr44828.c
  5c38e7e89e7c1e99f8e470aeeff2bb93  gcc/testsuite/gcc.c-torture/execute/pr44852.c
*************** c23008252215e79f2482939cc9d7b034  gcc/te
*** 36429,36443 ****
  27f9f4425a8801adc2fc478dd383cf24  gcc/testsuite/gcc.c-torture/execute/pr53645.c
  c7e084d22e2fbe6327b432410c0a7e09  gcc/testsuite/gcc.c-torture/execute/pr53688.c
  4af24a90db4cd8b140e37295d0ec0769  gcc/testsuite/gcc.c-torture/execute/pr54471.c
! f093faf55fdd5fa783e4c0d522f52fd7  gcc/testsuite/gcc.c-torture/execute/pr54937.c
  566f6f02acd4a3583261f3bde23ef262  gcc/testsuite/gcc.c-torture/execute/pr54985.c
  71d4908be3f078a60436b97f3a769ac3  gcc/testsuite/gcc.c-torture/execute/pr55137.c
  2dda6a5ea80e5c2490e0036012ecf94e  gcc/testsuite/gcc.c-torture/execute/pr55750.c
! ce4270c1f6afa9e9b08887c6480c6e99  gcc/testsuite/gcc.c-torture/execute/pr55875.c
  177c8ddae3f333df6d33696392bac93a  gcc/testsuite/gcc.c-torture/execute/pr56051.c
  3718ac89bde17ab8cb00cd3b39218315  gcc/testsuite/gcc.c-torture/execute/pr56205.c
  f593242559ab374bb74820c31c4df339  gcc/testsuite/gcc.c-torture/execute/pr56250.c
! f9fb9037c5ebbf954df91ad5a7507258  gcc/testsuite/gcc.c-torture/execute/pr56799.c
  e79c66fd38c4ac19014d0ef67ae792cd  gcc/testsuite/gcc.c-torture/execute/pr56837.c
  fbefdbfd58811f8f47d5a11d296a27db  gcc/testsuite/gcc.c-torture/execute/pr56866.c
  4f617c5c962fd601e9d19d525b88dd05  gcc/testsuite/gcc.c-torture/execute/pr56899.c
--- 38565,38579 ----
  27f9f4425a8801adc2fc478dd383cf24  gcc/testsuite/gcc.c-torture/execute/pr53645.c
  c7e084d22e2fbe6327b432410c0a7e09  gcc/testsuite/gcc.c-torture/execute/pr53688.c
  4af24a90db4cd8b140e37295d0ec0769  gcc/testsuite/gcc.c-torture/execute/pr54471.c
! a8315abd4f859963dc225eb034ba135b  gcc/testsuite/gcc.c-torture/execute/pr54937.c
  566f6f02acd4a3583261f3bde23ef262  gcc/testsuite/gcc.c-torture/execute/pr54985.c
  71d4908be3f078a60436b97f3a769ac3  gcc/testsuite/gcc.c-torture/execute/pr55137.c
  2dda6a5ea80e5c2490e0036012ecf94e  gcc/testsuite/gcc.c-torture/execute/pr55750.c
! ba7719aa0978da69522944c9f0a1ebf3  gcc/testsuite/gcc.c-torture/execute/pr55875.c
  177c8ddae3f333df6d33696392bac93a  gcc/testsuite/gcc.c-torture/execute/pr56051.c
  3718ac89bde17ab8cb00cd3b39218315  gcc/testsuite/gcc.c-torture/execute/pr56205.c
  f593242559ab374bb74820c31c4df339  gcc/testsuite/gcc.c-torture/execute/pr56250.c
! f248c8d50baf0d1797bffb1f131e3d23  gcc/testsuite/gcc.c-torture/execute/pr56799.c
  e79c66fd38c4ac19014d0ef67ae792cd  gcc/testsuite/gcc.c-torture/execute/pr56837.c
  fbefdbfd58811f8f47d5a11d296a27db  gcc/testsuite/gcc.c-torture/execute/pr56866.c
  4f617c5c962fd601e9d19d525b88dd05  gcc/testsuite/gcc.c-torture/execute/pr56899.c
*************** cab5da103e14455c850172740640b27c  gcc/te
*** 36473,36479 ****
  8a67dc232dd90cbcc37909dc8ddf094b  gcc/testsuite/gcc.c-torture/execute/pr58570.c
  2f577ba387848a723e6649715b59a5ba  gcc/testsuite/gcc.c-torture/execute/pr58574.c
  33703f19680f0a4b209d19092fb4f119  gcc/testsuite/gcc.c-torture/execute/pr58640-2.c
! 99ba69d10476b44cb3043b45f8fd2e02  gcc/testsuite/gcc.c-torture/execute/pr58640.c
  faa159c3027fedb99ec92a72bd973031  gcc/testsuite/gcc.c-torture/execute/pr58662.c
  6c61be9faf45f2289bfe4e72534b3b67  gcc/testsuite/gcc.c-torture/execute/pr58726.c
  107e31f1ece1534d49d334b0b347e9a2  gcc/testsuite/gcc.c-torture/execute/pr58831.c
--- 38609,38615 ----
  8a67dc232dd90cbcc37909dc8ddf094b  gcc/testsuite/gcc.c-torture/execute/pr58570.c
  2f577ba387848a723e6649715b59a5ba  gcc/testsuite/gcc.c-torture/execute/pr58574.c
  33703f19680f0a4b209d19092fb4f119  gcc/testsuite/gcc.c-torture/execute/pr58640-2.c
! 2f92526c7776ca5817dfbabb2a1bb92b  gcc/testsuite/gcc.c-torture/execute/pr58640.c
  faa159c3027fedb99ec92a72bd973031  gcc/testsuite/gcc.c-torture/execute/pr58662.c
  6c61be9faf45f2289bfe4e72534b3b67  gcc/testsuite/gcc.c-torture/execute/pr58726.c
  107e31f1ece1534d49d334b0b347e9a2  gcc/testsuite/gcc.c-torture/execute/pr58831.c
*************** ae3c413967f015048db814e7a36efafa  gcc/te
*** 36529,36535 ****
  8ae7de6648504e79da5599254b304bcd  gcc/testsuite/gcc.c-torture/execute/pr65215-4.c
  379d0fdf6dfa27e71e7d665d99beb809  gcc/testsuite/gcc.c-torture/execute/pr65215-5.c
  408d77e412799bb88cd3a1a372a30025  gcc/testsuite/gcc.c-torture/execute/pr65216.c
! 35e7f0aaef3bb597274c604f8c585af8  gcc/testsuite/gcc.c-torture/execute/pr65369.c
  9de68336a2c1989c42f614b8fc2347f9  gcc/testsuite/gcc.c-torture/execute/pr65401.c
  aba60364a62c1e7185bba65b1b8df9e2  gcc/testsuite/gcc.c-torture/execute/pr65418-1.c
  f4fdd28b13fc25bb731d557e5f4d6e8a  gcc/testsuite/gcc.c-torture/execute/pr65418-2.c
--- 38665,38671 ----
  8ae7de6648504e79da5599254b304bcd  gcc/testsuite/gcc.c-torture/execute/pr65215-4.c
  379d0fdf6dfa27e71e7d665d99beb809  gcc/testsuite/gcc.c-torture/execute/pr65215-5.c
  408d77e412799bb88cd3a1a372a30025  gcc/testsuite/gcc.c-torture/execute/pr65216.c
! 9e14d214b5283d352e3eb7edb7ce77e1  gcc/testsuite/gcc.c-torture/execute/pr65369.c
  9de68336a2c1989c42f614b8fc2347f9  gcc/testsuite/gcc.c-torture/execute/pr65401.c
  aba60364a62c1e7185bba65b1b8df9e2  gcc/testsuite/gcc.c-torture/execute/pr65418-1.c
  f4fdd28b13fc25bb731d557e5f4d6e8a  gcc/testsuite/gcc.c-torture/execute/pr65418-2.c
*************** d980d67f1eb958e90351c3eb7cfd1297  gcc/te
*** 36582,36588 ****
  62fe61038685cf3291d7f3fcb4e1c886  gcc/testsuite/gcc.c-torture/execute/pr70602.c
  a711a706b6870b6d9e82519c230df518  gcc/testsuite/gcc.c-torture/execute/pr70903.c
  a719151d197ccb7e20abf2277308b980  gcc/testsuite/gcc.c-torture/execute/pr71083.c
! d8699495c0e250d32227e5362bd092b8  gcc/testsuite/gcc.c-torture/execute/pr71335.c
  1043db3fa8c75f8224bcdc10744cc6e3  gcc/testsuite/gcc.c-torture/execute/pr71494.c
  46975798280e88c1b9878f8da79bbc2d  gcc/testsuite/gcc.c-torture/execute/pr71550.c
  94c81d0c20f6b48a221fefb5a7c9f0f7  gcc/testsuite/gcc.c-torture/execute/pr71554.c
--- 38718,38724 ----
  62fe61038685cf3291d7f3fcb4e1c886  gcc/testsuite/gcc.c-torture/execute/pr70602.c
  a711a706b6870b6d9e82519c230df518  gcc/testsuite/gcc.c-torture/execute/pr70903.c
  a719151d197ccb7e20abf2277308b980  gcc/testsuite/gcc.c-torture/execute/pr71083.c
! f97bad8ca7410cbe37315dbabc0b18ca  gcc/testsuite/gcc.c-torture/execute/pr71335.c
  1043db3fa8c75f8224bcdc10744cc6e3  gcc/testsuite/gcc.c-torture/execute/pr71494.c
  46975798280e88c1b9878f8da79bbc2d  gcc/testsuite/gcc.c-torture/execute/pr71550.c
  94c81d0c20f6b48a221fefb5a7c9f0f7  gcc/testsuite/gcc.c-torture/execute/pr71554.c
*************** e378b6043986bf34c640d3c898b04895  gcc/te
*** 36608,36614 ****
  fad87d31a5344aab87c872f99dea1ec1  gcc/testsuite/gcc.c-torture/execute/pr78726.c
  bb64392b07a7b269f0b3f2847f8083a6  gcc/testsuite/gcc.c-torture/execute/pr78791.c
  e1282d6044e34443f85ed878da7dc97b  gcc/testsuite/gcc.c-torture/execute/pr78856.c
! 50dd995fe049f6e3600af9d40a5053f7  gcc/testsuite/gcc.c-torture/execute/pr79043.c
  629ce34a22cf9b2b48da16b5ff5a6e9f  gcc/testsuite/gcc.c-torture/execute/pr79121.c
  4430c7ee67cb9a02aa16fc13f29e55de  gcc/testsuite/gcc.c-torture/execute/pr79286.c
  1b4c60d7bee6a8816a95486b1239f8d6  gcc/testsuite/gcc.c-torture/execute/pr79327.c
--- 38744,38750 ----
  fad87d31a5344aab87c872f99dea1ec1  gcc/testsuite/gcc.c-torture/execute/pr78726.c
  bb64392b07a7b269f0b3f2847f8083a6  gcc/testsuite/gcc.c-torture/execute/pr78791.c
  e1282d6044e34443f85ed878da7dc97b  gcc/testsuite/gcc.c-torture/execute/pr78856.c
! 7affd993d28f80be1c2b69fe1790974e  gcc/testsuite/gcc.c-torture/execute/pr79043.c
  629ce34a22cf9b2b48da16b5ff5a6e9f  gcc/testsuite/gcc.c-torture/execute/pr79121.c
  4430c7ee67cb9a02aa16fc13f29e55de  gcc/testsuite/gcc.c-torture/execute/pr79286.c
  1b4c60d7bee6a8816a95486b1239f8d6  gcc/testsuite/gcc.c-torture/execute/pr79327.c
*************** e1282d6044e34443f85ed878da7dc97b  gcc/te
*** 36620,36626 ****
  37923c71ed94f165daf72ce8348aac81  gcc/testsuite/gcc.c-torture/execute/pr80153.c
  859cd5036773ecc731c2ccc5d9605303  gcc/testsuite/gcc.c-torture/execute/pr80421.c
  45833b96ada0857a18d70fa0804e7f6f  gcc/testsuite/gcc.c-torture/execute/pr80501.c
! 0ec1bcb863c85b3589a1923d51468ba2  gcc/testsuite/gcc.c-torture/execute/pr80692.c
  c8712dfea0da98a9a688f64ca050f3e3  gcc/testsuite/gcc.c-torture/execute/pr81281.c
  ecde75fa6429ca69397a9d9aae2faedf  gcc/testsuite/gcc.c-torture/execute/pr81423.c
  ec3c1892095b3297126ddf98b8b3449a  gcc/testsuite/gcc.c-torture/execute/pr81503.c
--- 38756,38762 ----
  37923c71ed94f165daf72ce8348aac81  gcc/testsuite/gcc.c-torture/execute/pr80153.c
  859cd5036773ecc731c2ccc5d9605303  gcc/testsuite/gcc.c-torture/execute/pr80421.c
  45833b96ada0857a18d70fa0804e7f6f  gcc/testsuite/gcc.c-torture/execute/pr80501.c
! 0f5674de7b44f0c3acce716ad1b8b9f7  gcc/testsuite/gcc.c-torture/execute/pr80692.c
  c8712dfea0da98a9a688f64ca050f3e3  gcc/testsuite/gcc.c-torture/execute/pr81281.c
  ecde75fa6429ca69397a9d9aae2faedf  gcc/testsuite/gcc.c-torture/execute/pr81423.c
  ec3c1892095b3297126ddf98b8b3449a  gcc/testsuite/gcc.c-torture/execute/pr81503.c
*************** fe9cbf88b57bdd9a5bf9c526284225f4  gcc/te
*** 36676,36681 ****
--- 38812,38818 ----
  4165667509c1985c02a5caebd101614d  gcc/testsuite/gcc.c-torture/execute/pr89826.c
  53efe1f200d3bec24ed00c280584deca  gcc/testsuite/gcc.c-torture/execute/pr90025.c
  d26cfc42f19ac5e3ce4db452fd94f09a  gcc/testsuite/gcc.c-torture/execute/pr90311.c
+ c711c1278b03225361adbb5c537e298a  gcc/testsuite/gcc.c-torture/execute/pr90348.c
  5235b3e2d6dd776b53d6a44ba5933a8a  gcc/testsuite/gcc.c-torture/execute/pr90949.c
  7f239d011b9e98943acdc8e3437ed19c  gcc/testsuite/gcc.c-torture/execute/pr91137.c
  3d5a788c848a67ade7bd18ab62494a1a  gcc/testsuite/gcc.c-torture/execute/pr91450-1.c
*************** f4f2930202484cfce2950cfa08ed6346  gcc/te
*** 36737,36759 ****
  9e89c9802e280d635a7bc6756bbaf6e6  gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c
  f397d221ccf3a7ce631cf42078dfadb5  gcc/testsuite/gcc.c-torture/execute/pta-field-1.c
  559d28c240437de1613fea4a132f68c1  gcc/testsuite/gcc.c-torture/execute/pta-field-2.c
! 25b0ab996245c8f0a89b359cb2f3d01b  gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
  a28bd879356d47f1e472aeb9f6dd7b5e  gcc/testsuite/gcc.c-torture/execute/pure-1.c
  12891c7b726aa9319e33644f1ba0a12e  gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c
! 94f371d3aceb1a9327cc749ff6604e30  gcc/testsuite/gcc.c-torture/execute/regstack-1.c
  3777e4bd77325af8874472a80aceb87c  gcc/testsuite/gcc.c-torture/execute/restrict-1.c
  d825499c64ef09fd25a28a53b840f3b6  gcc/testsuite/gcc.c-torture/execute/return-addr.c
  da9544d63043f3d4d1ebbcad6db06a41  gcc/testsuite/gcc.c-torture/execute/scal-to-vec1.c
  8c3831acf3b7c7b700817780476438b1  gcc/testsuite/gcc.c-torture/execute/scal-to-vec2.c
  d77e2e844ad79bff2425db9218966c25  gcc/testsuite/gcc.c-torture/execute/scal-to-vec3.c
! 013edb8adf936860ff13b4e3ccbc918d  gcc/testsuite/gcc.c-torture/execute/scope-1.c
  1fd700aefedaf24e468029bac7fbc0da  gcc/testsuite/gcc.c-torture/execute/shiftdi-2.c
  218fd5bff9fbdcfe97495b29ad65316f  gcc/testsuite/gcc.c-torture/execute/shiftdi.c
  f32de799f0458e1e67012bf12c40583d  gcc/testsuite/gcc.c-torture/execute/shiftopt-1.c
! a32edc960a41c187ce8ffbf1e99f4dec  gcc/testsuite/gcc.c-torture/execute/simd-1.c
! 42bf5fec543c226567dd609fbeda49e4  gcc/testsuite/gcc.c-torture/execute/simd-2.c
! 46696bda18b582435f5016a8a6f2e0db  gcc/testsuite/gcc.c-torture/execute/simd-4.c
! d04e26aea5ec30bccaca225cc8ada351  gcc/testsuite/gcc.c-torture/execute/simd-5.c
  c5ba016a76f2a079ff6974d341c9ec69  gcc/testsuite/gcc.c-torture/execute/simd-6.c
  472d8b1743262cc175eb69eeafbb2444  gcc/testsuite/gcc.c-torture/execute/ssad-run.c
  cad28b37258cc811253fb37f3c3885e9  gcc/testsuite/gcc.c-torture/execute/stdarg-1.c
--- 38874,38896 ----
  9e89c9802e280d635a7bc6756bbaf6e6  gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c
  f397d221ccf3a7ce631cf42078dfadb5  gcc/testsuite/gcc.c-torture/execute/pta-field-1.c
  559d28c240437de1613fea4a132f68c1  gcc/testsuite/gcc.c-torture/execute/pta-field-2.c
! 5a0affac4045ec02306c971dfcd2b9db  gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
  a28bd879356d47f1e472aeb9f6dd7b5e  gcc/testsuite/gcc.c-torture/execute/pure-1.c
  12891c7b726aa9319e33644f1ba0a12e  gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c
! 7dad7503551b8adeeee97d0faae0be42  gcc/testsuite/gcc.c-torture/execute/regstack-1.c
  3777e4bd77325af8874472a80aceb87c  gcc/testsuite/gcc.c-torture/execute/restrict-1.c
  d825499c64ef09fd25a28a53b840f3b6  gcc/testsuite/gcc.c-torture/execute/return-addr.c
  da9544d63043f3d4d1ebbcad6db06a41  gcc/testsuite/gcc.c-torture/execute/scal-to-vec1.c
  8c3831acf3b7c7b700817780476438b1  gcc/testsuite/gcc.c-torture/execute/scal-to-vec2.c
  d77e2e844ad79bff2425db9218966c25  gcc/testsuite/gcc.c-torture/execute/scal-to-vec3.c
! d4d4aa53f191263a1b8d05a597669d6b  gcc/testsuite/gcc.c-torture/execute/scope-1.c
  1fd700aefedaf24e468029bac7fbc0da  gcc/testsuite/gcc.c-torture/execute/shiftdi-2.c
  218fd5bff9fbdcfe97495b29ad65316f  gcc/testsuite/gcc.c-torture/execute/shiftdi.c
  f32de799f0458e1e67012bf12c40583d  gcc/testsuite/gcc.c-torture/execute/shiftopt-1.c
! 7d96529ef9846103d214d50deee05006  gcc/testsuite/gcc.c-torture/execute/simd-1.c
! d876c893743520747d7bc1e97368379c  gcc/testsuite/gcc.c-torture/execute/simd-2.c
! de58fe3bfae9a8cf38a31a1ffbd13ca2  gcc/testsuite/gcc.c-torture/execute/simd-4.c
! bea3db90a3a93e45f595dd3e8d4a3547  gcc/testsuite/gcc.c-torture/execute/simd-5.c
  c5ba016a76f2a079ff6974d341c9ec69  gcc/testsuite/gcc.c-torture/execute/simd-6.c
  472d8b1743262cc175eb69eeafbb2444  gcc/testsuite/gcc.c-torture/execute/ssad-run.c
  cad28b37258cc811253fb37f3c3885e9  gcc/testsuite/gcc.c-torture/execute/stdarg-1.c
*************** cad28b37258cc811253fb37f3c3885e9  gcc/te
*** 36761,36824 ****
  0914d479399f22ad528c75c7cf45dd38  gcc/testsuite/gcc.c-torture/execute/stdarg-3.c
  38b5e27f4e710c5c815e3d57967287ce  gcc/testsuite/gcc.c-torture/execute/stdarg-4.c
  021623d3929ace552d1a77170a96ecb0  gcc/testsuite/gcc.c-torture/execute/stkalign.c
! da5af2794b49b79ee4c7895a065c6869  gcc/testsuite/gcc.c-torture/execute/strcmp-1.c
! e02a8cc44780d166c4850252ee9780d3  gcc/testsuite/gcc.c-torture/execute/strcpy-1.c
  8dff405015495c5d392f884f2c52720d  gcc/testsuite/gcc.c-torture/execute/strcpy-2.c
! f42301aa4457d7b5be6b911e739964e8  gcc/testsuite/gcc.c-torture/execute/strct-pack-1.c
! 5e189e518826f640548280a252f9d2a9  gcc/testsuite/gcc.c-torture/execute/strct-pack-2.c
! 531eb5d4edbfcc54b4a7f887435f5423  gcc/testsuite/gcc.c-torture/execute/strct-pack-3.c
! 65c757d26937076e844af60bdc36ff13  gcc/testsuite/gcc.c-torture/execute/strct-pack-4.c
! 3f6fa44f0ed4bebc3a51e3895976265e  gcc/testsuite/gcc.c-torture/execute/strct-stdarg-1.c
! c435a53e5f970746758c463fa3a97598  gcc/testsuite/gcc.c-torture/execute/strct-varg-1.c
  062314f449792b77bb1d4f2a1751bf7d  gcc/testsuite/gcc.c-torture/execute/string-opt-17.c
  5b06512c7cb3de4c838911dd5a270b7a  gcc/testsuite/gcc.c-torture/execute/string-opt-18.c
  3ee0fe2c4448058e4af3b8e21db5b123  gcc/testsuite/gcc.c-torture/execute/string-opt-5.c
! e9fd878ea9f033fd4b3b73c1a883fc29  gcc/testsuite/gcc.c-torture/execute/strlen-1.c
  a27807838ed45be662ad394f26ca3e1a  gcc/testsuite/gcc.c-torture/execute/strlen-2.c
  931b1366d69a8d6d8275da20722dfe77  gcc/testsuite/gcc.c-torture/execute/strlen-3.c
  9a72defaa37f45be53b3cce9992df7b8  gcc/testsuite/gcc.c-torture/execute/strlen-4.c
  a83e18676d708fb99d0d2e688b7107f1  gcc/testsuite/gcc.c-torture/execute/strlen-5.c
  15fb05f8ff049f15c569b42db80f1d6b  gcc/testsuite/gcc.c-torture/execute/strlen-6.c
  08462b2522b366a04aad00fe8a8d59bd  gcc/testsuite/gcc.c-torture/execute/strlen-7.c
! ca6d3287af834b505dec44cdb3780ea8  gcc/testsuite/gcc.c-torture/execute/strncmp-1.c
  38b5ccdc5ed95557c23b1630d7c30bc1  gcc/testsuite/gcc.c-torture/execute/struct-aliasing-1.c
  95454c6bf544eaafd61a30e4315982c9  gcc/testsuite/gcc.c-torture/execute/struct-cpy-1.c
! 0d008ee88148f8e935176646ba3c5c8f  gcc/testsuite/gcc.c-torture/execute/struct-ini-1.c
! 431d903b79e06426f5b3d2c6f7619c2e  gcc/testsuite/gcc.c-torture/execute/struct-ini-2.c
! eb33be319f6c014a3014badb081ea734  gcc/testsuite/gcc.c-torture/execute/struct-ini-3.c
! 8eef06c95e627bbafed603f2906070e0  gcc/testsuite/gcc.c-torture/execute/struct-ini-4.c
! 2f6c59e9955e06ec1266c72ff9f56305  gcc/testsuite/gcc.c-torture/execute/struct-ret-1.c
! 1656f7f96ae2e3ea921def928034193f  gcc/testsuite/gcc.c-torture/execute/struct-ret-2.c
  ba93f0b459fe7321a82190489fff365d  gcc/testsuite/gcc.c-torture/execute/switch-1.c
! 86621df21132f7e8109a2ec9cd820275  gcc/testsuite/gcc.c-torture/execute/tstdi-1.c
  f281cd45767072414a16da2783b713b8  gcc/testsuite/gcc.c-torture/execute/unroll-1.c
  c2d5578e9040ef5e233418ff136ee3b9  gcc/testsuite/gcc.c-torture/execute/usad-run.c
  ebc695df4af12ca0cc784680f010f23f  gcc/testsuite/gcc.c-torture/execute/user-printf.c
! 4b127b1de7f76499b7afc4997f86e4d6  gcc/testsuite/gcc.c-torture/execute/usmul.c
! f738a70ed047349d26729f0c306cf6d9  gcc/testsuite/gcc.c-torture/execute/va-arg-1.c
! 6e7bdc15d1b371ddba4afe09deab2ab0  gcc/testsuite/gcc.c-torture/execute/va-arg-10.c
! 26f7c7eb4cb13269fe5f2004a1f8909f  gcc/testsuite/gcc.c-torture/execute/va-arg-11.c
! 69c00ab036c8b96624290d27c021a655  gcc/testsuite/gcc.c-torture/execute/va-arg-12.c
! 1681f6c332a9cefe1d41f3a8518c4f7a  gcc/testsuite/gcc.c-torture/execute/va-arg-13.c
! 9ae0ec75f9cfc22bc0f192c76a6a148d  gcc/testsuite/gcc.c-torture/execute/va-arg-14.c
! 0ec035c55bd0d0ecb27033d5514f5fe1  gcc/testsuite/gcc.c-torture/execute/va-arg-15.c
! b4cddcf5876939578edac64a5cd3c900  gcc/testsuite/gcc.c-torture/execute/va-arg-16.c
! 66fb964acda1c10515e6f20450d449c9  gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
! 6f0dde8d4ed591a184b9fea7b6a299af  gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
! 61f03f53ba7b934efedfe854f6584e0b  gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
! 5c864c457e8a3ff1b9975ddf9ea4efd4  gcc/testsuite/gcc.c-torture/execute/va-arg-2.c
! b425a062b6bb1fe929a1f13435a7aa58  gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
  a725852feeaa4044c15de4d1cda1e42a  gcc/testsuite/gcc.c-torture/execute/va-arg-21.c
  047dfdad84a6cf61fd75aacb78168fcc  gcc/testsuite/gcc.c-torture/execute/va-arg-22.c
! 209009debafe9bce37f0460ea94dea3e  gcc/testsuite/gcc.c-torture/execute/va-arg-23.c
  d08f210553a53e7eec022f0ab5894009  gcc/testsuite/gcc.c-torture/execute/va-arg-24.c
! 7622feb6851cf1a43f58e8ccefdc0132  gcc/testsuite/gcc.c-torture/execute/va-arg-26.c
! bf42b087b1712e15e26672c4a0a28452  gcc/testsuite/gcc.c-torture/execute/va-arg-4.c
! e43858d7b08da492de947867d5e08d85  gcc/testsuite/gcc.c-torture/execute/va-arg-5.c
! 1ecc2dc074f2da15c550c69969e4a140  gcc/testsuite/gcc.c-torture/execute/va-arg-6.c
  5f2bf97219bb9bb659a8c1c9ab5b14d9  gcc/testsuite/gcc.c-torture/execute/va-arg-7.c
  6e3f696c98d8b96cda1912027936027b  gcc/testsuite/gcc.c-torture/execute/va-arg-8.c
! 3d2421b9db7a3e1c31bbbd7abf3cb164  gcc/testsuite/gcc.c-torture/execute/va-arg-9.c
  79919a6b29d6be60efe91333741a297c  gcc/testsuite/gcc.c-torture/execute/va-arg-pack-1.c
  5ebd9e4486259525f013e70fc19f0113  gcc/testsuite/gcc.c-torture/execute/va-arg-trap-1.c
  5361fa7e3ede321780803507c15aa560  gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c
--- 38898,38961 ----
  0914d479399f22ad528c75c7cf45dd38  gcc/testsuite/gcc.c-torture/execute/stdarg-3.c
  38b5e27f4e710c5c815e3d57967287ce  gcc/testsuite/gcc.c-torture/execute/stdarg-4.c
  021623d3929ace552d1a77170a96ecb0  gcc/testsuite/gcc.c-torture/execute/stkalign.c
! dfd8a10ac6a88b85abde24c447d2ebc0  gcc/testsuite/gcc.c-torture/execute/strcmp-1.c
! 68597cd3e88c2fb03566f94fb1d18c7c  gcc/testsuite/gcc.c-torture/execute/strcpy-1.c
  8dff405015495c5d392f884f2c52720d  gcc/testsuite/gcc.c-torture/execute/strcpy-2.c
! 948d42b53c198d1a31389834be66252d  gcc/testsuite/gcc.c-torture/execute/strct-pack-1.c
! 99708297ed4e841e22e8868359dd3c94  gcc/testsuite/gcc.c-torture/execute/strct-pack-2.c
! d98db5dc7ed6405013d14d3a0c5b086d  gcc/testsuite/gcc.c-torture/execute/strct-pack-3.c
! 7ccd5321dc9a2cd685e25870c7f5e90e  gcc/testsuite/gcc.c-torture/execute/strct-pack-4.c
! 7e8c1cac7cddd1e5c5ffa706a298a86e  gcc/testsuite/gcc.c-torture/execute/strct-stdarg-1.c
! 72ced5d313699100d52ccec61bfa1552  gcc/testsuite/gcc.c-torture/execute/strct-varg-1.c
  062314f449792b77bb1d4f2a1751bf7d  gcc/testsuite/gcc.c-torture/execute/string-opt-17.c
  5b06512c7cb3de4c838911dd5a270b7a  gcc/testsuite/gcc.c-torture/execute/string-opt-18.c
  3ee0fe2c4448058e4af3b8e21db5b123  gcc/testsuite/gcc.c-torture/execute/string-opt-5.c
! 71a700e44d65a628160ee38c81d2c908  gcc/testsuite/gcc.c-torture/execute/strlen-1.c
  a27807838ed45be662ad394f26ca3e1a  gcc/testsuite/gcc.c-torture/execute/strlen-2.c
  931b1366d69a8d6d8275da20722dfe77  gcc/testsuite/gcc.c-torture/execute/strlen-3.c
  9a72defaa37f45be53b3cce9992df7b8  gcc/testsuite/gcc.c-torture/execute/strlen-4.c
  a83e18676d708fb99d0d2e688b7107f1  gcc/testsuite/gcc.c-torture/execute/strlen-5.c
  15fb05f8ff049f15c569b42db80f1d6b  gcc/testsuite/gcc.c-torture/execute/strlen-6.c
  08462b2522b366a04aad00fe8a8d59bd  gcc/testsuite/gcc.c-torture/execute/strlen-7.c
! 4173711d0150f9abebd4ab4a18271024  gcc/testsuite/gcc.c-torture/execute/strncmp-1.c
  38b5ccdc5ed95557c23b1630d7c30bc1  gcc/testsuite/gcc.c-torture/execute/struct-aliasing-1.c
  95454c6bf544eaafd61a30e4315982c9  gcc/testsuite/gcc.c-torture/execute/struct-cpy-1.c
! 13070a93df7e500918c728575e7da76a  gcc/testsuite/gcc.c-torture/execute/struct-ini-1.c
! ea97ff01d7d0ffaed05364feac614a9f  gcc/testsuite/gcc.c-torture/execute/struct-ini-2.c
! efc93807102349b27bef00d9d446823a  gcc/testsuite/gcc.c-torture/execute/struct-ini-3.c
! 0fc9915ccb964e5262c98387dccce4ac  gcc/testsuite/gcc.c-torture/execute/struct-ini-4.c
! 11b22ffa41be077a70d1f093e6480f08  gcc/testsuite/gcc.c-torture/execute/struct-ret-1.c
! c260b49bd38aed4f903e3d147a075728  gcc/testsuite/gcc.c-torture/execute/struct-ret-2.c
  ba93f0b459fe7321a82190489fff365d  gcc/testsuite/gcc.c-torture/execute/switch-1.c
! 0232ff0e239fb26fe8c031742a69b9b4  gcc/testsuite/gcc.c-torture/execute/tstdi-1.c
  f281cd45767072414a16da2783b713b8  gcc/testsuite/gcc.c-torture/execute/unroll-1.c
  c2d5578e9040ef5e233418ff136ee3b9  gcc/testsuite/gcc.c-torture/execute/usad-run.c
  ebc695df4af12ca0cc784680f010f23f  gcc/testsuite/gcc.c-torture/execute/user-printf.c
! 65c2eed2fd2761cd78a18beee250b4b6  gcc/testsuite/gcc.c-torture/execute/usmul.c
! de51448a53384e984016c4db193bcde1  gcc/testsuite/gcc.c-torture/execute/va-arg-1.c
! e80171601aea55484386d18bdaa5d73c  gcc/testsuite/gcc.c-torture/execute/va-arg-10.c
! 74a5ae21e7c26c348b03f28d49f44b0d  gcc/testsuite/gcc.c-torture/execute/va-arg-11.c
! aae43008a455e088e6576f144acb93d2  gcc/testsuite/gcc.c-torture/execute/va-arg-12.c
! fdd3e6402d88fd7a2c306859856e1fc3  gcc/testsuite/gcc.c-torture/execute/va-arg-13.c
! 38b80f9cb53b9622c346793833842fc4  gcc/testsuite/gcc.c-torture/execute/va-arg-14.c
! 8efd5888ffda480b3459386762b55680  gcc/testsuite/gcc.c-torture/execute/va-arg-15.c
! cc8bb1a13e4b77ae0d5e7f59f43d1baa  gcc/testsuite/gcc.c-torture/execute/va-arg-16.c
! a61ada576cecab7b907eee29af5d2957  gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
! 654761b5acda29361970baca4cd609bb  gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
! 75f92f792efcb4d3ebc6625f17c8f999  gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
! aa8125bc168ddecae1049b86c0a10782  gcc/testsuite/gcc.c-torture/execute/va-arg-2.c
! d1385e90aa37f9c7866db364353b6c30  gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
  a725852feeaa4044c15de4d1cda1e42a  gcc/testsuite/gcc.c-torture/execute/va-arg-21.c
  047dfdad84a6cf61fd75aacb78168fcc  gcc/testsuite/gcc.c-torture/execute/va-arg-22.c
! 8083221e27eb063a76f262e20113b481  gcc/testsuite/gcc.c-torture/execute/va-arg-23.c
  d08f210553a53e7eec022f0ab5894009  gcc/testsuite/gcc.c-torture/execute/va-arg-24.c
! d533cbd3f20106c4e3a1b6c6b2799da9  gcc/testsuite/gcc.c-torture/execute/va-arg-26.c
! e2b06df6fab5cee9f8a8ab82d03e295d  gcc/testsuite/gcc.c-torture/execute/va-arg-4.c
! 48e1947fb424c2c9c9d043b6d9d474f7  gcc/testsuite/gcc.c-torture/execute/va-arg-5.c
! 7adebd0ca984ce0d635b3a948c4e3792  gcc/testsuite/gcc.c-torture/execute/va-arg-6.c
  5f2bf97219bb9bb659a8c1c9ab5b14d9  gcc/testsuite/gcc.c-torture/execute/va-arg-7.c
  6e3f696c98d8b96cda1912027936027b  gcc/testsuite/gcc.c-torture/execute/va-arg-8.c
! 22cc9e75f31c786a9638bba1983488b6  gcc/testsuite/gcc.c-torture/execute/va-arg-9.c
  79919a6b29d6be60efe91333741a297c  gcc/testsuite/gcc.c-torture/execute/va-arg-pack-1.c
  5ebd9e4486259525f013e70fc19f0113  gcc/testsuite/gcc.c-torture/execute/va-arg-trap-1.c
  5361fa7e3ede321780803507c15aa560  gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c
*************** f435ec80e0e5b9ea8d4e776a0f3e3719  gcc/te
*** 36834,36841 ****
  89f2b532fe42014e0a4a4dca059a45f6  gcc/testsuite/gcc.c-torture/execute/vrp-6.c
  f30bf0095addeef700a83f36c598deab  gcc/testsuite/gcc.c-torture/execute/vrp-7.c
  1d1bbaba00d236ca2b1304b1dc271f0e  gcc/testsuite/gcc.c-torture/execute/wchar_t-1.c
! 48a338aefae57acc71df64dfa87eb850  gcc/testsuite/gcc.c-torture/execute/widechar-1.c
! 9a5b8cfecfcc36f46dcf851ba6a19df1  gcc/testsuite/gcc.c-torture/execute/widechar-2.c
  2c9e8481823f690f168f77d60999999c  gcc/testsuite/gcc.c-torture/execute/widechar-3.c
  4b58b53fc9f9a3d25928d85495832f27  gcc/testsuite/gcc.c-torture/execute/zero-struct-1.c
  05aae0dbb71b992a2f163bf1d0a24045  gcc/testsuite/gcc.c-torture/execute/zero-struct-2.c
--- 38971,38978 ----
  89f2b532fe42014e0a4a4dca059a45f6  gcc/testsuite/gcc.c-torture/execute/vrp-6.c
  f30bf0095addeef700a83f36c598deab  gcc/testsuite/gcc.c-torture/execute/vrp-7.c
  1d1bbaba00d236ca2b1304b1dc271f0e  gcc/testsuite/gcc.c-torture/execute/wchar_t-1.c
! 4911f1ef5ae68144759d3fbed037e4a0  gcc/testsuite/gcc.c-torture/execute/widechar-1.c
! cb0b728c50be57775ce5c56aa25f4545  gcc/testsuite/gcc.c-torture/execute/widechar-2.c
  2c9e8481823f690f168f77d60999999c  gcc/testsuite/gcc.c-torture/execute/widechar-3.c
  4b58b53fc9f9a3d25928d85495832f27  gcc/testsuite/gcc.c-torture/execute/zero-struct-1.c
  05aae0dbb71b992a2f163bf1d0a24045  gcc/testsuite/gcc.c-torture/execute/zero-struct-2.c
*************** f30bf0095addeef700a83f36c598deab  gcc/te
*** 36843,36850 ****
  5d8fbb34f7ad51fedc394527a5885d4d  gcc/testsuite/gcc.c-torture/execute/zerolen-2.c
  44c6ad090d3f06206aa54f59582ae32c  gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.c
  76a05adc513bcf00de7e94465ef0bc6d  gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.x
! 35f3a740191216d4689000c9f13f8d8f  gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
! 64bb4e1b5f3c3055c53d33fe42e3fe50  gcc/testsuite/gcc.dg-selftests/dg-final.exp
  d0289bfc068c575e2168df7bc156b45a  gcc/testsuite/gcc.dg/20000108-1.c
  586ef49702317acb226ba076aeea11ee  gcc/testsuite/gcc.dg/20000111-1.c
  d8a5405adb98e221c4fa41ce145177c6  gcc/testsuite/gcc.dg/20000623-1.c
--- 38980,38987 ----
  5d8fbb34f7ad51fedc394527a5885d4d  gcc/testsuite/gcc.c-torture/execute/zerolen-2.c
  44c6ad090d3f06206aa54f59582ae32c  gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.c
  76a05adc513bcf00de7e94465ef0bc6d  gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.x
! aae58a8365625bb1d19cdca329c9140d  gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
! 1a4342a88a87cd00a249d8e78bd0f7b7  gcc/testsuite/gcc.dg-selftests/dg-final.exp
  d0289bfc068c575e2168df7bc156b45a  gcc/testsuite/gcc.dg/20000108-1.c
  586ef49702317acb226ba076aeea11ee  gcc/testsuite/gcc.dg/20000111-1.c
  d8a5405adb98e221c4fa41ce145177c6  gcc/testsuite/gcc.dg/20000623-1.c
*************** ce6b1c788064aa70e5abe4bfce85fa42  gcc/te
*** 36883,36889 ****
  c55791661c0233f5c555ecb739a287b1  gcc/testsuite/gcc.dg/20020122-3.c
  a7c72bd6aaf9dfbb7dc938acbaa6464d  gcc/testsuite/gcc.dg/20020122-4.c
  6512b138fef74e603cc7c1c6d5e1f0ce  gcc/testsuite/gcc.dg/20020201-1.c
! 64ddfb2d92b70c12113fba6d6cafbcef  gcc/testsuite/gcc.dg/20020206-1.c
  08a65114d547473faf30f0e9b44e2237  gcc/testsuite/gcc.dg/20020210-1.c
  43068890ac80566aa7e98dba534ea0c4  gcc/testsuite/gcc.dg/20020219-1.c
  190abf3030b76de527fcb49dc8dc9f83  gcc/testsuite/gcc.dg/20020220-1.c
--- 39020,39026 ----
  c55791661c0233f5c555ecb739a287b1  gcc/testsuite/gcc.dg/20020122-3.c
  a7c72bd6aaf9dfbb7dc938acbaa6464d  gcc/testsuite/gcc.dg/20020122-4.c
  6512b138fef74e603cc7c1c6d5e1f0ce  gcc/testsuite/gcc.dg/20020201-1.c
! a314ab9d8d3e4818826dc35a5aed87e4  gcc/testsuite/gcc.dg/20020206-1.c
  08a65114d547473faf30f0e9b44e2237  gcc/testsuite/gcc.dg/20020210-1.c
  43068890ac80566aa7e98dba534ea0c4  gcc/testsuite/gcc.dg/20020219-1.c
  190abf3030b76de527fcb49dc8dc9f83  gcc/testsuite/gcc.dg/20020220-1.c
*************** ce0f92cef90bc8790dc8f531382e80ff  gcc/te
*** 36944,36951 ****
  f4bfaaf3c8a2bfc8d0e0dafb2f00a6b0  gcc/testsuite/gcc.dg/20030820-1.c
  b6264f9cc3b2373e314903a774f304f5  gcc/testsuite/gcc.dg/20030826-1.c
  ac668451a5b45731d629104ce68ae12a  gcc/testsuite/gcc.dg/20030826-2.c
! 426fe3b16ebf1648dd1b81473f8ee914  gcc/testsuite/gcc.dg/20030906-1.c
! ba682270cd2f200985ffdab1ec43fc05  gcc/testsuite/gcc.dg/20030906-2.c
  5655763a17d49915d432045a28913415  gcc/testsuite/gcc.dg/20031002-1.c
  83278d8243b5b1239e3e5c217426b1aa  gcc/testsuite/gcc.dg/20031012-1.c
  ca8dd086d6fef2969faf780e5f6f6aed  gcc/testsuite/gcc.dg/20031102-1.c
--- 39081,39090 ----
  f4bfaaf3c8a2bfc8d0e0dafb2f00a6b0  gcc/testsuite/gcc.dg/20030820-1.c
  b6264f9cc3b2373e314903a774f304f5  gcc/testsuite/gcc.dg/20030826-1.c
  ac668451a5b45731d629104ce68ae12a  gcc/testsuite/gcc.dg/20030826-2.c
! 8e5e77cd6fb3a9152b9d67fddd639a87  gcc/testsuite/gcc.dg/20030906-1.c
! 944ebc6c80152085cb9be7517cba511b  gcc/testsuite/gcc.dg/20030906-1a.c
! acd14c2bc4d637b631d6bbc127675be1  gcc/testsuite/gcc.dg/20030906-2.c
! 76ebe46c6741feff71281d27b39ffbc0  gcc/testsuite/gcc.dg/20030906-2a.c
  5655763a17d49915d432045a28913415  gcc/testsuite/gcc.dg/20031002-1.c
  83278d8243b5b1239e3e5c217426b1aa  gcc/testsuite/gcc.dg/20031012-1.c
  ca8dd086d6fef2969faf780e5f6f6aed  gcc/testsuite/gcc.dg/20031102-1.c
*************** fa18390f14716298dbf37d393e23050e  gcc/te
*** 37009,37015 ****
  f65d4c9b7df168b8cc05a4328ce5ff26  gcc/testsuite/gcc.dg/20050603-2.c
  428426894bbe10b286f72706a5f1f366  gcc/testsuite/gcc.dg/20050607-1.c
  88f2729d9953416d678abe7e7978fdaf  gcc/testsuite/gcc.dg/20050620-1.c
! 6fcc56112d28955831f4c40a77c2d7b8  gcc/testsuite/gcc.dg/20050629-1.c
  2ed1ce2798eb27c99e53c945096a6bcb  gcc/testsuite/gcc.dg/20050702-1.c
  b8df937ab613bd7816abd65ceeaeba01  gcc/testsuite/gcc.dg/20050811-1.c
  dc26971f4644f6ee9b92e79838d65c0e  gcc/testsuite/gcc.dg/20050811-2.c
--- 39148,39154 ----
  f65d4c9b7df168b8cc05a4328ce5ff26  gcc/testsuite/gcc.dg/20050603-2.c
  428426894bbe10b286f72706a5f1f366  gcc/testsuite/gcc.dg/20050607-1.c
  88f2729d9953416d678abe7e7978fdaf  gcc/testsuite/gcc.dg/20050620-1.c
! 83d401ca941d63f7878020c705b4835a  gcc/testsuite/gcc.dg/20050629-1.c
  2ed1ce2798eb27c99e53c945096a6bcb  gcc/testsuite/gcc.dg/20050702-1.c
  b8df937ab613bd7816abd65ceeaeba01  gcc/testsuite/gcc.dg/20050811-1.c
  dc26971f4644f6ee9b92e79838d65c0e  gcc/testsuite/gcc.dg/20050811-2.c
*************** e5927b8d3e808b5e3fbbefc6a58e4ead  gcc/te
*** 37033,37039 ****
  3167cfe3e83575d86aded2ce4eac334a  gcc/testsuite/gcc.dg/20070112-1.c
  2f37a1c0fb188594038e171d8ebe785f  gcc/testsuite/gcc.dg/20070507-1.c
  4f79682f07bbb3d74cf8eb4fd3c45955  gcc/testsuite/gcc.dg/20070725-1.c
! ff9f5e8ebe8d1491d7b9ee830f0012c5  gcc/testsuite/gcc.dg/20080615-1.c
  f5144c55ebdb85bad93da0391b111815  gcc/testsuite/gcc.dg/20080820.c
  7e911d210b9636b747f1dbf0305d0766  gcc/testsuite/gcc.dg/20081223-1.c
  171e18b2e97e6576eae0c250be3be983  gcc/testsuite/gcc.dg/20090902-1.c
--- 39172,39178 ----
  3167cfe3e83575d86aded2ce4eac334a  gcc/testsuite/gcc.dg/20070112-1.c
  2f37a1c0fb188594038e171d8ebe785f  gcc/testsuite/gcc.dg/20070507-1.c
  4f79682f07bbb3d74cf8eb4fd3c45955  gcc/testsuite/gcc.dg/20070725-1.c
! 3c11540beb3628a9364989584ed5841b  gcc/testsuite/gcc.dg/20080615-1.c
  f5144c55ebdb85bad93da0391b111815  gcc/testsuite/gcc.dg/20080820.c
  7e911d210b9636b747f1dbf0305d0766  gcc/testsuite/gcc.dg/20081223-1.c
  171e18b2e97e6576eae0c250be3be983  gcc/testsuite/gcc.dg/20090902-1.c
*************** cda741cce59ba0dcd70871f300400003  gcc/te
*** 37064,37075 ****
  eba607c17011c649eb3d7e1c5513ffdd  gcc/testsuite/gcc.dg/Foundation.framework/empty
  509fc4e45ca169a2f01541865c72e7d9  gcc/testsuite/gcc.dg/O16384.c
  5572aaa0a05957fff2416d1f5f7c0cc6  gcc/testsuite/gcc.dg/PR68002.c
! efcb38d0bea023b0aa80d660bc6ae9b2  gcc/testsuite/gcc.dg/README
  bd2b0579d869dd45682e46db89fcdb4f  gcc/testsuite/gcc.dg/Wabsolute-value.c
  3b152bda38c8adacaa17cce7b0cf4e42  gcc/testsuite/gcc.dg/Waddress-2.c
  c24bef0f408b6e43c19ee75c1ce7717a  gcc/testsuite/gcc.dg/Waddress-3.c
  ae480ca484b7c3dd4cd9862adc8df1b3  gcc/testsuite/gcc.dg/Waddress.c
  92e0f6dce9be7a9119066cc81f5f6407  gcc/testsuite/gcc.dg/Wall.c
  4d94ecdb845c416b2f88185761237f07  gcc/testsuite/gcc.dg/Walloc-size-larger-than-1.c
  47f319a9e00eb54e9627ad88f18bc24a  gcc/testsuite/gcc.dg/Walloc-size-larger-than-10.c
  ed269831fdef18f7da23626f18f45b9d  gcc/testsuite/gcc.dg/Walloc-size-larger-than-11.c
--- 39203,39219 ----
  eba607c17011c649eb3d7e1c5513ffdd  gcc/testsuite/gcc.dg/Foundation.framework/empty
  509fc4e45ca169a2f01541865c72e7d9  gcc/testsuite/gcc.dg/O16384.c
  5572aaa0a05957fff2416d1f5f7c0cc6  gcc/testsuite/gcc.dg/PR68002.c
! 9951c06fa033a6e02af56cdf2461de33  gcc/testsuite/gcc.dg/README
  bd2b0579d869dd45682e46db89fcdb4f  gcc/testsuite/gcc.dg/Wabsolute-value.c
  3b152bda38c8adacaa17cce7b0cf4e42  gcc/testsuite/gcc.dg/Waddress-2.c
  c24bef0f408b6e43c19ee75c1ce7717a  gcc/testsuite/gcc.dg/Waddress-3.c
  ae480ca484b7c3dd4cd9862adc8df1b3  gcc/testsuite/gcc.dg/Waddress.c
  92e0f6dce9be7a9119066cc81f5f6407  gcc/testsuite/gcc.dg/Wall.c
+ 12090891f96863241964157e94a4f0d0  gcc/testsuite/gcc.dg/Walloc-size-1.c
+ ba98e2b6daca527785f51659177fc41f  gcc/testsuite/gcc.dg/Walloc-size-2.c
+ bd9bfcd1b25dad870c6e23b01bcc8779  gcc/testsuite/gcc.dg/Walloc-size-3.c
+ e5695ab0a26a2243dc9f2e33ede5aa5a  gcc/testsuite/gcc.dg/Walloc-size-4.c
+ 1b6bead2137f82086adfe3eee0c5939c  gcc/testsuite/gcc.dg/Walloc-size-5.c
  4d94ecdb845c416b2f88185761237f07  gcc/testsuite/gcc.dg/Walloc-size-larger-than-1.c
  47f319a9e00eb54e9627ad88f18bc24a  gcc/testsuite/gcc.dg/Walloc-size-larger-than-10.c
  ed269831fdef18f7da23626f18f45b9d  gcc/testsuite/gcc.dg/Walloc-size-larger-than-11.c
*************** d264d25955b548eb2c7066d1fc44c895  gcc/te
*** 37094,37100 ****
  bb3fac63e26e1a1793361a553f83b373  gcc/testsuite/gcc.dg/Walloca-11.c
  55dc1f00b00f6e508fe83fc8f64b989f  gcc/testsuite/gcc.dg/Walloca-12.c
  06881e25661efe6dec49f921a736851e  gcc/testsuite/gcc.dg/Walloca-13.c
! b62a67c07815a09e72a8c257fbaebf29  gcc/testsuite/gcc.dg/Walloca-14.c
  e5cdd59c60a14eb884306afcedf7c6f6  gcc/testsuite/gcc.dg/Walloca-15.c
  49fa808f10f6cbd4c7788eebd86de9fd  gcc/testsuite/gcc.dg/Walloca-16.c
  cbbef569089fee4566079038d91ab85b  gcc/testsuite/gcc.dg/Walloca-2.c
--- 39238,39244 ----
  bb3fac63e26e1a1793361a553f83b373  gcc/testsuite/gcc.dg/Walloca-11.c
  55dc1f00b00f6e508fe83fc8f64b989f  gcc/testsuite/gcc.dg/Walloca-12.c
  06881e25661efe6dec49f921a736851e  gcc/testsuite/gcc.dg/Walloca-13.c
! a45991d123a68aa2f15e19f083b52c6b  gcc/testsuite/gcc.dg/Walloca-14.c
  e5cdd59c60a14eb884306afcedf7c6f6  gcc/testsuite/gcc.dg/Walloca-15.c
  49fa808f10f6cbd4c7788eebd86de9fd  gcc/testsuite/gcc.dg/Walloca-16.c
  cbbef569089fee4566079038d91ab85b  gcc/testsuite/gcc.dg/Walloca-2.c
*************** db89bc16bba99d1896fd369f83d6a7b5  gcc/te
*** 37137,37143 ****
  8081619aca0555d94a4544dbea2ea790  gcc/testsuite/gcc.dg/Warray-bounds-30.c
  8b65ddd6aa612fd11722b98bcdac2196  gcc/testsuite/gcc.dg/Warray-bounds-31.c
  81bd321922b3694940694510b0d8d0c4  gcc/testsuite/gcc.dg/Warray-bounds-32.c
! 6b9ac8ad880ced5374b2667375c34928  gcc/testsuite/gcc.dg/Warray-bounds-33.c
  6a03e7b93f4fe957d581eba158780e50  gcc/testsuite/gcc.dg/Warray-bounds-34.c
  70792e0f2bd388c08d846ece8c1a9894  gcc/testsuite/gcc.dg/Warray-bounds-35.c
  53cf522d5540d20053932c1c37e42025  gcc/testsuite/gcc.dg/Warray-bounds-36.c
--- 39281,39287 ----
  8081619aca0555d94a4544dbea2ea790  gcc/testsuite/gcc.dg/Warray-bounds-30.c
  8b65ddd6aa612fd11722b98bcdac2196  gcc/testsuite/gcc.dg/Warray-bounds-31.c
  81bd321922b3694940694510b0d8d0c4  gcc/testsuite/gcc.dg/Warray-bounds-32.c
! 0bb08064836aff8fecf3c18b34b7c99b  gcc/testsuite/gcc.dg/Warray-bounds-33.c
  6a03e7b93f4fe957d581eba158780e50  gcc/testsuite/gcc.dg/Warray-bounds-34.c
  70792e0f2bd388c08d846ece8c1a9894  gcc/testsuite/gcc.dg/Warray-bounds-35.c
  53cf522d5540d20053932c1c37e42025  gcc/testsuite/gcc.dg/Warray-bounds-36.c
*************** f3112cdf9edbe2af3277d38e4643af1f  gcc/te
*** 37155,37166 ****
  cb64293b7b9a92cb5cd94dedde913801  gcc/testsuite/gcc.dg/Warray-bounds-47.c
  cab2ba3eb9cf90b242a46a6d6d8d3bcb  gcc/testsuite/gcc.dg/Warray-bounds-48-novec.c
  c2dd7440bf90485b0a38150b662da025  gcc/testsuite/gcc.dg/Warray-bounds-48.c
! 3aa7adb94918bc13234602f8516dd1a9  gcc/testsuite/gcc.dg/Warray-bounds-49.c
  6a53ea6731c8e33605392ac843284e1c  gcc/testsuite/gcc.dg/Warray-bounds-5.c
  99ca661fd44c871abb678e58007bc467  gcc/testsuite/gcc.dg/Warray-bounds-50.c
  80b1ec0f5441fed204561ea4b998732e  gcc/testsuite/gcc.dg/Warray-bounds-51-novec.c
  76dcbe5fc7b7946795b40b27b4583187  gcc/testsuite/gcc.dg/Warray-bounds-51.c
! e65bb9b64b5e0619dca6f795f8b57308  gcc/testsuite/gcc.dg/Warray-bounds-52.c
  e14bc5062e6d55c30a8533079955b491  gcc/testsuite/gcc.dg/Warray-bounds-53.c
  12a0fa5409b214bab70ca278f4e5c555  gcc/testsuite/gcc.dg/Warray-bounds-54.c
  3735dc90a235299206d9177f18fbe519  gcc/testsuite/gcc.dg/Warray-bounds-55.c
--- 39299,39310 ----
  cb64293b7b9a92cb5cd94dedde913801  gcc/testsuite/gcc.dg/Warray-bounds-47.c
  cab2ba3eb9cf90b242a46a6d6d8d3bcb  gcc/testsuite/gcc.dg/Warray-bounds-48-novec.c
  c2dd7440bf90485b0a38150b662da025  gcc/testsuite/gcc.dg/Warray-bounds-48.c
! 071125faa618b3594b1be7b6a1046661  gcc/testsuite/gcc.dg/Warray-bounds-49.c
  6a53ea6731c8e33605392ac843284e1c  gcc/testsuite/gcc.dg/Warray-bounds-5.c
  99ca661fd44c871abb678e58007bc467  gcc/testsuite/gcc.dg/Warray-bounds-50.c
  80b1ec0f5441fed204561ea4b998732e  gcc/testsuite/gcc.dg/Warray-bounds-51-novec.c
  76dcbe5fc7b7946795b40b27b4583187  gcc/testsuite/gcc.dg/Warray-bounds-51.c
! 15c7895556ea2629cf8862e23dc46a97  gcc/testsuite/gcc.dg/Warray-bounds-52.c
  e14bc5062e6d55c30a8533079955b491  gcc/testsuite/gcc.dg/Warray-bounds-53.c
  12a0fa5409b214bab70ca278f4e5c555  gcc/testsuite/gcc.dg/Warray-bounds-54.c
  3735dc90a235299206d9177f18fbe519  gcc/testsuite/gcc.dg/Warray-bounds-55.c
*************** e99b377200ee21d2df02171cbe56461b  gcc/te
*** 37230,37236 ****
  b87b7ebc31064d6e57b0af0b3017afeb  gcc/testsuite/gcc.dg/Wattributes-3.c
  1988735c2661df622a2ab226b3a093b9  gcc/testsuite/gcc.dg/Wattributes-4.c
  5b6c200e82806a6e48523fca76ca9baa  gcc/testsuite/gcc.dg/Wattributes-5.c
! e07fdc272a434aa05e75700c13b249b0  gcc/testsuite/gcc.dg/Wattributes-6.c
  fe25f03fdb469ad245f6cae14480ddad  gcc/testsuite/gcc.dg/Wattributes-7.c
  e6837d08b51cbdb5725ec33c460d55bb  gcc/testsuite/gcc.dg/Wattributes-8.c
  3657d8392090a291a46e662e66ab20ac  gcc/testsuite/gcc.dg/Wbad-function-cast-1.c
--- 39374,39380 ----
  b87b7ebc31064d6e57b0af0b3017afeb  gcc/testsuite/gcc.dg/Wattributes-3.c
  1988735c2661df622a2ab226b3a093b9  gcc/testsuite/gcc.dg/Wattributes-4.c
  5b6c200e82806a6e48523fca76ca9baa  gcc/testsuite/gcc.dg/Wattributes-5.c
! ab57b7d0ddff618e824f3e137b94be88  gcc/testsuite/gcc.dg/Wattributes-6.c
  fe25f03fdb469ad245f6cae14480ddad  gcc/testsuite/gcc.dg/Wattributes-7.c
  e6837d08b51cbdb5725ec33c460d55bb  gcc/testsuite/gcc.dg/Wattributes-8.c
  3657d8392090a291a46e662e66ab20ac  gcc/testsuite/gcc.dg/Wbad-function-cast-1.c
*************** ab52664274ba5b752e4f5ce0bd3d96cf  gcc/te
*** 37243,37255 ****
  c36a96f0a2054d693f222a7f39b91b3b  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-15.c
  52b67d3eb6e8eef443e0a3f92d94b4d3  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-16.c
  2bb84c00111f6527a9304d59b8a154e2  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-2.c
! 51888114842c76923a1f651aa8164d20  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c
  170a588446cae3e8cc514828ad956e96  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-4.c
  6ac379a9179bcb846ad2589dfa8985b4  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-5.c
  5202898a25df5cc8ec38caa2f601f70f  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-6.c
  a4be043f27e0d83678af2c268d64edab  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-7.c
  87df707b31832d3a13ac5b7916a7f705  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-8.c
! 8a8837539e33ca8ac417627e3ec2aa48  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-9.c
  9b33351e5312ae176453336710b80112  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-ignore.c
  3c23d0d31c840616639418091650b2b2  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch.c
  3987306283bace0fc6f28fca72555786  gcc/testsuite/gcc.dg/Wc++-compat.c
--- 39387,39399 ----
  c36a96f0a2054d693f222a7f39b91b3b  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-15.c
  52b67d3eb6e8eef443e0a3f92d94b4d3  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-16.c
  2bb84c00111f6527a9304d59b8a154e2  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-2.c
! e3580f831824d02ace6134fa02f3fe3c  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c
  170a588446cae3e8cc514828ad956e96  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-4.c
  6ac379a9179bcb846ad2589dfa8985b4  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-5.c
  5202898a25df5cc8ec38caa2f601f70f  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-6.c
  a4be043f27e0d83678af2c268d64edab  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-7.c
  87df707b31832d3a13ac5b7916a7f705  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-8.c
! db72e09dd94975a6718281d04e933951  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-9.c
  9b33351e5312ae176453336710b80112  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-ignore.c
  3c23d0d31c840616639418091650b2b2  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch.c
  3987306283bace0fc6f28fca72555786  gcc/testsuite/gcc.dg/Wc++-compat.c
*************** a4a7b9d0537fcdc829248c2a5b1baa32  gcc/te
*** 37272,37277 ****
--- 39416,39422 ----
  3b021e5cd4c431e10f271b7d1dab8472  gcc/testsuite/gcc.dg/Wc99-c11-compat-5.c
  ce09510aec33f3aa92a11cee89b4fe1d  gcc/testsuite/gcc.dg/Wc99-c11-compat-6.c
  d9c468d91c48cac11cb3ddc9f78972bc  gcc/testsuite/gcc.dg/Wc99-c11-compat-7.c
+ dc266604102010a3cc88efaff488ca9a  gcc/testsuite/gcc.dg/Wcalloc-transposed-args-1.c
  7743e1b205f1143469bd158c877889ac  gcc/testsuite/gcc.dg/Wchar-subscripts-1.c
  23848042c116a8f0cb17f86b4d168bf6  gcc/testsuite/gcc.dg/Wchar-subscripts.c
  d0c2e1080ec63781cbb00dc4b5839cb9  gcc/testsuite/gcc.dg/Wcomplain-wrong-lang-1.c
*************** ec2abae8e4d243e4139a0b6f517f7f0f  gcc/te
*** 37321,37327 ****
  f8e0507acf1da471f9078e673cd34f50  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-4.c
  7929f22a4e631866685ffbcf83fe6de6  gcc/testsuite/gcc.dg/Wdesignated-init-2.c
  49177ef77099fc022a700d8577598a0f  gcc/testsuite/gcc.dg/Wdesignated-init.c
! 8d2b01f29e2edcab3b505d930b5884c8  gcc/testsuite/gcc.dg/Wdouble-promotion.c
  2e86a126d454ea24161510c1d11b0fab  gcc/testsuite/gcc.dg/Wduplicate-decl-specifier-c11.c
  80c0ca28edb638295458740c9ed660b2  gcc/testsuite/gcc.dg/Wduplicate-decl-specifier.c
  1c2b759be94c4194b01f7ab821cdbd76  gcc/testsuite/gcc.dg/Wenum-compare-1.c
--- 39466,39472 ----
  f8e0507acf1da471f9078e673cd34f50  gcc/testsuite/gcc.dg/Wdeclaration-after-statement-4.c
  7929f22a4e631866685ffbcf83fe6de6  gcc/testsuite/gcc.dg/Wdesignated-init-2.c
  49177ef77099fc022a700d8577598a0f  gcc/testsuite/gcc.dg/Wdesignated-init.c
! 99d428c7a997058a53671eed66793964  gcc/testsuite/gcc.dg/Wdouble-promotion.c
  2e86a126d454ea24161510c1d11b0fab  gcc/testsuite/gcc.dg/Wduplicate-decl-specifier-c11.c
  80c0ca28edb638295458740c9ed660b2  gcc/testsuite/gcc.dg/Wduplicate-decl-specifier.c
  1c2b759be94c4194b01f7ab821cdbd76  gcc/testsuite/gcc.dg/Wenum-compare-1.c
*************** fadf7514e1bb63b4a5e988ce51700510  gcc/te
*** 37347,37353 ****
  666446ea2e19372ed246f3e20a0224ef  gcc/testsuite/gcc.dg/Wfatal-2.c
  afffd7f8af0ccf26ac1db7d5fdb87aed  gcc/testsuite/gcc.dg/Wfatal.c
  bf6eefaa01d8a709541da7a1b2e3b6ba  gcc/testsuite/gcc.dg/Wfloat-equal-1.c
! f3c3746bf375262808b02694edb98d66  gcc/testsuite/gcc.dg/Wformat-overflow1.c
  9277c9006ab7b00c6efc21c31dbd8c4a  gcc/testsuite/gcc.dg/Wframe-address-in-Wall.c
  a3fccbf1a7232687802f00c0e1f6aa94  gcc/testsuite/gcc.dg/Wframe-address.c
  8d0791011fc11919d43bcce331d009ee  gcc/testsuite/gcc.dg/Wframe-larger-than-2.c
--- 39492,39498 ----
  666446ea2e19372ed246f3e20a0224ef  gcc/testsuite/gcc.dg/Wfatal-2.c
  afffd7f8af0ccf26ac1db7d5fdb87aed  gcc/testsuite/gcc.dg/Wfatal.c
  bf6eefaa01d8a709541da7a1b2e3b6ba  gcc/testsuite/gcc.dg/Wfloat-equal-1.c
! 3a39ab97dad869f58efdf9325f7af3d2  gcc/testsuite/gcc.dg/Wformat-overflow1.c
  9277c9006ab7b00c6efc21c31dbd8c4a  gcc/testsuite/gcc.dg/Wframe-address-in-Wall.c
  a3fccbf1a7232687802f00c0e1f6aa94  gcc/testsuite/gcc.dg/Wframe-address.c
  8d0791011fc11919d43bcce331d009ee  gcc/testsuite/gcc.dg/Wframe-larger-than-2.c
*************** e273443a6f4eccf5890b6c4d46998324  gcc/te
*** 37358,37382 ****
  1f871dc63d9bfee79601f4586343f709  gcc/testsuite/gcc.dg/Wfree-nonheap-object-4.c
  469e7b8c90d9b200ae40cccf77711ce5  gcc/testsuite/gcc.dg/Wfree-nonheap-object-5.c
  c19a454bcf29265915e365069507e42a  gcc/testsuite/gcc.dg/Wfree-nonheap-object-6.c
  0e3385327ea6f047857fb850694856e1  gcc/testsuite/gcc.dg/Wfree-nonheap-object.c
  cb738b6ee3ce33cfd417ae097ee81f56  gcc/testsuite/gcc.dg/Wimplicit-fallthrough-1.c
  ae92a1d93725fe1a5989579c55f7c873  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89-default.c
  b2f857eeba51813f44aa61785c849357  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89-pedantic.c
  e1774554778a57412ba37170551b5a8e  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89.c
  63feb173084183c9ae42867951584c0e  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99-pedantic.c
! 8e34c1f2353126654a359b0fe3664972  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99.c
! 1b49cb6da4f63ce8c70333d0d2f40fb4  gcc/testsuite/gcc.dg/Wimplicit-int-1.c
  ac1d198e2464fa90c280daa6cf4b9d41  gcc/testsuite/gcc.dg/Wimplicit-int-2.c
  74aefd7d6111a48e8fd77ecaaf64feb0  gcc/testsuite/gcc.dg/Wimplicit-int-3.c
! f8f5871d8419d984891017d51ef8e7ba  gcc/testsuite/gcc.dg/Wimplicit-int-4.c
  02fa446835e68b1fee242baf645a5191  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-1.c
  aef2ea71e6f4f2975f702f53e97d2b41  gcc/testsuite/gcc.dg/Wincompatible-pointer-types.c
  ec94ea91fd72e297720a4c000e43bf8b  gcc/testsuite/gcc.dg/Winfinite-recursion-2.c
  8014bc1f3e733c365d03e3b45305eae7  gcc/testsuite/gcc.dg/Winfinite-recursion-3.c
  b2205067aa4bbb6400450a87e601c3f4  gcc/testsuite/gcc.dg/Winfinite-recursion-4.c
  cabf796e8c41620ee0eb568ad7e759ba  gcc/testsuite/gcc.dg/Winfinite-recursion-5.c
  05bb3c5d451fe37624daecd880e38726  gcc/testsuite/gcc.dg/Winfinite-recursion.c
! 6d0d608128d8809fe8e06f0cd06c58b7  gcc/testsuite/gcc.dg/Wint-conversion-2.c
  73a57349114b445c41ee7bcc15d3bd1b  gcc/testsuite/gcc.dg/Wint-conversion.c
  756b797936acd5f6c41a6d5ccfc696b9  gcc/testsuite/gcc.dg/Wint-in-bool-context-4.c
  74e00c0632715138d6110d495d44182c  gcc/testsuite/gcc.dg/Wjump-misses-init-1.c
--- 39503,39537 ----
  1f871dc63d9bfee79601f4586343f709  gcc/testsuite/gcc.dg/Wfree-nonheap-object-4.c
  469e7b8c90d9b200ae40cccf77711ce5  gcc/testsuite/gcc.dg/Wfree-nonheap-object-5.c
  c19a454bcf29265915e365069507e42a  gcc/testsuite/gcc.dg/Wfree-nonheap-object-6.c
+ 21ef9c0c9671240c9210998eee95b1d8  gcc/testsuite/gcc.dg/Wfree-nonheap-object-7.c
  0e3385327ea6f047857fb850694856e1  gcc/testsuite/gcc.dg/Wfree-nonheap-object.c
  cb738b6ee3ce33cfd417ae097ee81f56  gcc/testsuite/gcc.dg/Wimplicit-fallthrough-1.c
  ae92a1d93725fe1a5989579c55f7c873  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89-default.c
  b2f857eeba51813f44aa61785c849357  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89-pedantic.c
  e1774554778a57412ba37170551b5a8e  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c89.c
+ 8cd6df9578986c904ce511ca2a3d537d  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99-2.c
  63feb173084183c9ae42867951584c0e  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99-pedantic.c
! 16bf62c6a496c59cc6209df1f9b18bc2  gcc/testsuite/gcc.dg/Wimplicit-function-declaration-c99.c
! 674aab1d6c3ba0ee4b92140736e54a75  gcc/testsuite/gcc.dg/Wimplicit-int-1.c
! 79088f90d36e9f8455f25fe8704d6397  gcc/testsuite/gcc.dg/Wimplicit-int-1a.c
  ac1d198e2464fa90c280daa6cf4b9d41  gcc/testsuite/gcc.dg/Wimplicit-int-2.c
  74aefd7d6111a48e8fd77ecaaf64feb0  gcc/testsuite/gcc.dg/Wimplicit-int-3.c
! 9b52a946fff2d8acef1ffba484b5e4cf  gcc/testsuite/gcc.dg/Wimplicit-int-4.c
! ce4d219563b9a733e8fc6c7ed439cad8  gcc/testsuite/gcc.dg/Wimplicit-int-4a.c
  02fa446835e68b1fee242baf645a5191  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-1.c
+ 3504b1245c894f0af43c67b0873a7d62  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-2.c
+ 7b85da6a1ebcd5381457130257511192  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-3.c
+ 8ac9d5e2f90fa4fcad14a8008c98fb5e  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-4.c
+ 3e345916fc4999faaa512c73dee2337a  gcc/testsuite/gcc.dg/Wincompatible-pointer-types-5.c
  aef2ea71e6f4f2975f702f53e97d2b41  gcc/testsuite/gcc.dg/Wincompatible-pointer-types.c
  ec94ea91fd72e297720a4c000e43bf8b  gcc/testsuite/gcc.dg/Winfinite-recursion-2.c
  8014bc1f3e733c365d03e3b45305eae7  gcc/testsuite/gcc.dg/Winfinite-recursion-3.c
  b2205067aa4bbb6400450a87e601c3f4  gcc/testsuite/gcc.dg/Winfinite-recursion-4.c
  cabf796e8c41620ee0eb568ad7e759ba  gcc/testsuite/gcc.dg/Winfinite-recursion-5.c
  05bb3c5d451fe37624daecd880e38726  gcc/testsuite/gcc.dg/Winfinite-recursion.c
! 74c8d7302d70900b19a11b23e6924669  gcc/testsuite/gcc.dg/Wint-conversion-2.c
! c01d908b8b1ca87be88f727b6cd6e491  gcc/testsuite/gcc.dg/Wint-conversion-3.c
! 6cc38431bbddb432de66ca6764ed6583  gcc/testsuite/gcc.dg/Wint-conversion-4.c
  73a57349114b445c41ee7bcc15d3bd1b  gcc/testsuite/gcc.dg/Wint-conversion.c
  756b797936acd5f6c41a6d5ccfc696b9  gcc/testsuite/gcc.dg/Wint-in-bool-context-4.c
  74e00c0632715138d6110d495d44182c  gcc/testsuite/gcc.dg/Wjump-misses-init-1.c
*************** a97f092c5509b2033f63d1931d689d9c  gcc/te
*** 37396,37405 ****
  153aab7b0e84ebd7b4f208653536d446  gcc/testsuite/gcc.dg/Wmissing-field-initializers-3.c
  7b242b0345ec0eeeffd2597e35af130b  gcc/testsuite/gcc.dg/Wmissing-field-initializers-4.c
  e029e709c13e38db907896dd09de24a0  gcc/testsuite/gcc.dg/Wmissing-field-initializers-5.c
! 35da4f7c3dc7c98520fafca7b32a76e7  gcc/testsuite/gcc.dg/Wmissing-parameter-type-Wextra.c
  fe1b12514d94c73791e0a965cfc2a6ce  gcc/testsuite/gcc.dg/Wmissing-parameter-type-no.c
! 393ee52b1c97cbcf1ebd166d70b4ea67  gcc/testsuite/gcc.dg/Wmissing-parameter-type.c
  cae851a97f94d8ee7b316fc225a43f4d  gcc/testsuite/gcc.dg/Wmissing-profile.c
  cf21dd47d3e7a7fd332e4ebdad43f47f  gcc/testsuite/gcc.dg/Wnested-externs-1.c
  7fdd14ff39022d393dca83d4d3b830d1  gcc/testsuite/gcc.dg/Wnested-externs-2.c
  2fb7927f6cb43b738ac0c6c4695c7fed  gcc/testsuite/gcc.dg/Wno-all.c
--- 39551,39561 ----
  153aab7b0e84ebd7b4f208653536d446  gcc/testsuite/gcc.dg/Wmissing-field-initializers-3.c
  7b242b0345ec0eeeffd2597e35af130b  gcc/testsuite/gcc.dg/Wmissing-field-initializers-4.c
  e029e709c13e38db907896dd09de24a0  gcc/testsuite/gcc.dg/Wmissing-field-initializers-5.c
! 63358b81808f25e51d2c7c98a25b748c  gcc/testsuite/gcc.dg/Wmissing-parameter-type-Wextra.c
  fe1b12514d94c73791e0a965cfc2a6ce  gcc/testsuite/gcc.dg/Wmissing-parameter-type-no.c
! d2ae1e4b2fef59498e152708d155c0ae  gcc/testsuite/gcc.dg/Wmissing-parameter-type.c
  cae851a97f94d8ee7b316fc225a43f4d  gcc/testsuite/gcc.dg/Wmissing-profile.c
+ c26e007c4c37c6a75ec7ae5f4b7772d7  gcc/testsuite/gcc.dg/Wmissing-variable-declarations.c
  cf21dd47d3e7a7fd332e4ebdad43f47f  gcc/testsuite/gcc.dg/Wnested-externs-1.c
  7fdd14ff39022d393dca83d4d3b830d1  gcc/testsuite/gcc.dg/Wnested-externs-2.c
  2fb7927f6cb43b738ac0c6c4695c7fed  gcc/testsuite/gcc.dg/Wno-all.c
*************** d45570f5347d0d2fceb2f46d5bb28195  gcc/te
*** 37409,37419 ****
  78b26e55f8111808885390fc48d39f07  gcc/testsuite/gcc.dg/Wno-pointer-sign.c
  86e970a811686b96a8c946217879e0b6  gcc/testsuite/gcc.dg/Wnonnull-2.c
  359b700d31704492b8af3694547fa2b7  gcc/testsuite/gcc.dg/Wnonnull-3.c
! 08895ef19d744c4f6c25826532c70aee  gcc/testsuite/gcc.dg/Wnonnull-4.c
  122d168a76610b5995ed8402529d4c4d  gcc/testsuite/gcc.dg/Wnonnull-5.c
  349ca7e23fb9ac66e9d5e90eeec2b9bc  gcc/testsuite/gcc.dg/Wnonnull-6.c
  80eac9b22b9d41ef2026f9a55a1c269c  gcc/testsuite/gcc.dg/Wnonnull-7.c
! 2443d129515c78bbd9ac131fa95a4384  gcc/testsuite/gcc.dg/Wnonnull-8.c
  12ac8bc4beaf9edbdf04979c8dfcb9e8  gcc/testsuite/gcc.dg/Wnonnull.c
  f3a584c667b58c927f9e96a3b3bf281d  gcc/testsuite/gcc.dg/Wobjsize-1.c
  964f8252363c2458931200da17eaaa36  gcc/testsuite/gcc.dg/Wobjsize-1.h
--- 39565,39576 ----
  78b26e55f8111808885390fc48d39f07  gcc/testsuite/gcc.dg/Wno-pointer-sign.c
  86e970a811686b96a8c946217879e0b6  gcc/testsuite/gcc.dg/Wnonnull-2.c
  359b700d31704492b8af3694547fa2b7  gcc/testsuite/gcc.dg/Wnonnull-3.c
! a5d9b1cfc52a9ede3d7a6d4f1213c894  gcc/testsuite/gcc.dg/Wnonnull-4.c
  122d168a76610b5995ed8402529d4c4d  gcc/testsuite/gcc.dg/Wnonnull-5.c
  349ca7e23fb9ac66e9d5e90eeec2b9bc  gcc/testsuite/gcc.dg/Wnonnull-6.c
  80eac9b22b9d41ef2026f9a55a1c269c  gcc/testsuite/gcc.dg/Wnonnull-7.c
! 00e9552b2fce798f5e8c08eb0e5fecdc  gcc/testsuite/gcc.dg/Wnonnull-8.c
! f9721e30d57a625c28e24f3ecf69a3ff  gcc/testsuite/gcc.dg/Wnonnull-9.c
  12ac8bc4beaf9edbdf04979c8dfcb9e8  gcc/testsuite/gcc.dg/Wnonnull.c
  f3a584c667b58c927f9e96a3b3bf281d  gcc/testsuite/gcc.dg/Wobjsize-1.c
  964f8252363c2458931200da17eaaa36  gcc/testsuite/gcc.dg/Wobjsize-1.h
*************** ac1f8ff9be1acf21428383a159986b27  gcc/te
*** 37486,37492 ****
  8650fb8e7b4b34475fe966856795bda4  gcc/testsuite/gcc.dg/Wrestrict-26.c
  8419743602ff50406cde80f5966c551d  gcc/testsuite/gcc.dg/Wrestrict-3.c
  f2eda54521742f896f2566e9eb58a04d  gcc/testsuite/gcc.dg/Wrestrict-4.c
! f56e03be28331b4bfb167f5242de9f60  gcc/testsuite/gcc.dg/Wrestrict-5.c
  36417853230ae255ba34aed0d26d7ce9  gcc/testsuite/gcc.dg/Wrestrict-6.c
  fe0626428135706f333c543b692a92d1  gcc/testsuite/gcc.dg/Wrestrict-7.c
  6bb8b2cd496b8f89601290a8c4df6b12  gcc/testsuite/gcc.dg/Wrestrict-8.c
--- 39643,39649 ----
  8650fb8e7b4b34475fe966856795bda4  gcc/testsuite/gcc.dg/Wrestrict-26.c
  8419743602ff50406cde80f5966c551d  gcc/testsuite/gcc.dg/Wrestrict-3.c
  f2eda54521742f896f2566e9eb58a04d  gcc/testsuite/gcc.dg/Wrestrict-4.c
! 7962e4d8ff558ef76441a3f9855c5bca  gcc/testsuite/gcc.dg/Wrestrict-5.c
  36417853230ae255ba34aed0d26d7ce9  gcc/testsuite/gcc.dg/Wrestrict-6.c
  fe0626428135706f333c543b692a92d1  gcc/testsuite/gcc.dg/Wrestrict-7.c
  6bb8b2cd496b8f89601290a8c4df6b12  gcc/testsuite/gcc.dg/Wrestrict-8.c
*************** fa730b9c27f8bb9bf2ffba2e5f5eb6b3  gcc/te
*** 37502,37507 ****
--- 39659,39672 ----
  5abe9ee55436dc7786de8e7b8e103f35  gcc/testsuite/gcc.dg/Wreturn-local-addr-8.c
  1710ae940d1c034fe8d203bc32766332  gcc/testsuite/gcc.dg/Wreturn-local-addr-9.c
  273fe6c85c6f362c0ae3de1a2bf4755f  gcc/testsuite/gcc.dg/Wreturn-local-addr.c
+ 3db3d23177caeb428024e79f3ea0c249  gcc/testsuite/gcc.dg/Wreturn-mismatch-1.c
+ fc2c3f694bc06efbd1718e0e1906cf5d  gcc/testsuite/gcc.dg/Wreturn-mismatch-1a.c
+ 5a252e831f7669fc74da96b02e280ca6  gcc/testsuite/gcc.dg/Wreturn-mismatch-2.c
+ b06394273fd4367158e7dea544a8766d  gcc/testsuite/gcc.dg/Wreturn-mismatch-2a.c
+ b4cc34b145ee2695a25e012a95c4991b  gcc/testsuite/gcc.dg/Wreturn-mismatch-3.c
+ 617d532fb1eddbd793d9f4f0f742e63c  gcc/testsuite/gcc.dg/Wreturn-mismatch-4.c
+ 7aa7c48f8cb83fb4ebee162da3c9b985  gcc/testsuite/gcc.dg/Wreturn-mismatch-5.c
+ 3cbacea3635ebeb02fee33cba4d8290e  gcc/testsuite/gcc.dg/Wreturn-mismatch-6.c
  6fe9a73749a8da4ecb255e790a1cc26f  gcc/testsuite/gcc.dg/Wreturn-type.c
  13346214a933b039e18e4797462ec5c7  gcc/testsuite/gcc.dg/Wreturn-type2.c
  1566816b16d321a8375c1a99ca768245  gcc/testsuite/gcc.dg/Wreturn-type3.c
*************** a0b497dc1f8dc8ce49f81bc391f0deb1  gcc/te
*** 37570,37576 ****
  633e342b1f1848dfffdc4e7671a9e67d  gcc/testsuite/gcc.dg/Wstringop-overflow-10.c
  d4ebbcbb33a270d753f43e4012923260  gcc/testsuite/gcc.dg/Wstringop-overflow-11.c
  706f9847f02771a60abbc137daf8355c  gcc/testsuite/gcc.dg/Wstringop-overflow-12.c
! 678dd8795e2d4b71950da04a334572b3  gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
  0179c40004be5b59c9a4f748ff9661b6  gcc/testsuite/gcc.dg/Wstringop-overflow-14-novec.c
  186ad80a8f095556d07bc00e83284cde  gcc/testsuite/gcc.dg/Wstringop-overflow-14.c
  188155d1d6f3e8cc47dbcf006992cf66  gcc/testsuite/gcc.dg/Wstringop-overflow-15.c
--- 39735,39741 ----
  633e342b1f1848dfffdc4e7671a9e67d  gcc/testsuite/gcc.dg/Wstringop-overflow-10.c
  d4ebbcbb33a270d753f43e4012923260  gcc/testsuite/gcc.dg/Wstringop-overflow-11.c
  706f9847f02771a60abbc137daf8355c  gcc/testsuite/gcc.dg/Wstringop-overflow-12.c
! 0dad25eefbadf96fb8f6f363c5c14619  gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
  0179c40004be5b59c9a4f748ff9661b6  gcc/testsuite/gcc.dg/Wstringop-overflow-14-novec.c
  186ad80a8f095556d07bc00e83284cde  gcc/testsuite/gcc.dg/Wstringop-overflow-14.c
  188155d1d6f3e8cc47dbcf006992cf66  gcc/testsuite/gcc.dg/Wstringop-overflow-15.c
*************** a9379e3d73fc65bf48db2f440d0394fb  gcc/te
*** 37602,37615 ****
  e75c1027bb0b8f2c2697b6cee86bfd67  gcc/testsuite/gcc.dg/Wstringop-overflow-38.c
  ba118a95c99308209283d1459a41d71c  gcc/testsuite/gcc.dg/Wstringop-overflow-39.c
  975f320b4cadb606592c196f32d08f02  gcc/testsuite/gcc.dg/Wstringop-overflow-4.c
! a73c11cb63e83bca9055ba05c4e88b53  gcc/testsuite/gcc.dg/Wstringop-overflow-40.c
  f5a92a0de23b213fa01a61cf7fe1ae34  gcc/testsuite/gcc.dg/Wstringop-overflow-41.c
  821b72f6a2d7ff36c66054c60407ed95  gcc/testsuite/gcc.dg/Wstringop-overflow-42.c
  44ba55c252b9e22566ae90f7cb83ae66  gcc/testsuite/gcc.dg/Wstringop-overflow-43.c
  855fbbdc3d5be4f2d0684e44e4fec515  gcc/testsuite/gcc.dg/Wstringop-overflow-44.c
  d4f0d56a7c087ab9e26e9e5b226957e0  gcc/testsuite/gcc.dg/Wstringop-overflow-45.c
  c491d7d16a5eccfc3aa26cb9789fb97e  gcc/testsuite/gcc.dg/Wstringop-overflow-46.c
! 45fc497eb7a6b33639764926221aeee9  gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
  e47b31031fbcddf0625b2f4928216e92  gcc/testsuite/gcc.dg/Wstringop-overflow-49.c
  b6e551c9441e53cd1be6e84faec996ed  gcc/testsuite/gcc.dg/Wstringop-overflow-5.c
  8f7f0322c20d1913c505cfa93fc16056  gcc/testsuite/gcc.dg/Wstringop-overflow-50.c
--- 39767,39780 ----
  e75c1027bb0b8f2c2697b6cee86bfd67  gcc/testsuite/gcc.dg/Wstringop-overflow-38.c
  ba118a95c99308209283d1459a41d71c  gcc/testsuite/gcc.dg/Wstringop-overflow-39.c
  975f320b4cadb606592c196f32d08f02  gcc/testsuite/gcc.dg/Wstringop-overflow-4.c
! 8182dad90dacc6c637bf4dd3472dfc48  gcc/testsuite/gcc.dg/Wstringop-overflow-40.c
  f5a92a0de23b213fa01a61cf7fe1ae34  gcc/testsuite/gcc.dg/Wstringop-overflow-41.c
  821b72f6a2d7ff36c66054c60407ed95  gcc/testsuite/gcc.dg/Wstringop-overflow-42.c
  44ba55c252b9e22566ae90f7cb83ae66  gcc/testsuite/gcc.dg/Wstringop-overflow-43.c
  855fbbdc3d5be4f2d0684e44e4fec515  gcc/testsuite/gcc.dg/Wstringop-overflow-44.c
  d4f0d56a7c087ab9e26e9e5b226957e0  gcc/testsuite/gcc.dg/Wstringop-overflow-45.c
  c491d7d16a5eccfc3aa26cb9789fb97e  gcc/testsuite/gcc.dg/Wstringop-overflow-46.c
! 95eada244d6386991197fa4a5056ebf9  gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
  e47b31031fbcddf0625b2f4928216e92  gcc/testsuite/gcc.dg/Wstringop-overflow-49.c
  b6e551c9441e53cd1be6e84faec996ed  gcc/testsuite/gcc.dg/Wstringop-overflow-5.c
  8f7f0322c20d1913c505cfa93fc16056  gcc/testsuite/gcc.dg/Wstringop-overflow-50.c
*************** e924dab57046a2b8b97014fbd06d901b  gcc/te
*** 37684,37691 ****
  b3dd7695cafc782eb7786677833eb8d0  gcc/testsuite/gcc.dg/Wswitch-unreachable-2.c
  6338f4c2f3099dc56a03d4b8d4aa7748  gcc/testsuite/gcc.dg/Wswitch.c
  8dda1d9f2869873526f33401a22c0fdd  gcc/testsuite/gcc.dg/Wtraditional-conversion-2.c
  d0cf5da873f60ffed04db27addaddbc2  gcc/testsuite/gcc.dg/Wtraditional-conversion.c
! 6b64e505a1f09f0869bdab525765e8b9  gcc/testsuite/gcc.dg/Wtrampolines.c
  2347d4bb7ee3bb8370c5d630037dad8c  gcc/testsuite/gcc.dg/Wtype-limits-Wextra.c
  5e19c5bcf607ee7e7a37111eb99adade  gcc/testsuite/gcc.dg/Wtype-limits-no.c
  0fe4c74834de77f71a2eb0a703c8b24b  gcc/testsuite/gcc.dg/Wtype-limits.c
--- 39849,39857 ----
  b3dd7695cafc782eb7786677833eb8d0  gcc/testsuite/gcc.dg/Wswitch-unreachable-2.c
  6338f4c2f3099dc56a03d4b8d4aa7748  gcc/testsuite/gcc.dg/Wswitch.c
  8dda1d9f2869873526f33401a22c0fdd  gcc/testsuite/gcc.dg/Wtraditional-conversion-2.c
+ a993425606a320dabd8cdab4291f3f58  gcc/testsuite/gcc.dg/Wtraditional-conversion-3.c
  d0cf5da873f60ffed04db27addaddbc2  gcc/testsuite/gcc.dg/Wtraditional-conversion.c
! 78aae72048361e8d0b7698f3eb592160  gcc/testsuite/gcc.dg/Wtrampolines.c
  2347d4bb7ee3bb8370c5d630037dad8c  gcc/testsuite/gcc.dg/Wtype-limits-Wextra.c
  5e19c5bcf607ee7e7a37111eb99adade  gcc/testsuite/gcc.dg/Wtype-limits-no.c
  0fe4c74834de77f71a2eb0a703c8b24b  gcc/testsuite/gcc.dg/Wtype-limits.c
*************** e069e831ec812b42fbe698791b4eccc8  gcc/te
*** 37711,37716 ****
--- 39877,39883 ----
  ea478d2a0d932457ff9d136b5f1a897c  gcc/testsuite/gcc.dg/Wuse-after-free-pr109123.c
  8a2b1e7c915347ce1f16658af4e1d253  gcc/testsuite/gcc.dg/Wuse-after-free-pr109170.c
  e6fbb87a8003326f83f635271804917e  gcc/testsuite/gcc.dg/Wuse-after-free.c
+ 4c6bd72643ac036f9df31c2faf5f97f2  gcc/testsuite/gcc.dg/Wuseless-cast.c
  285c7e1e346f5498c52fc3f2557e2f20  gcc/testsuite/gcc.dg/Wvla-1.c
  64bfeb26603a057e080b6ec9a2b39583  gcc/testsuite/gcc.dg/Wvla-2.c
  67cbf7c91a2b07bdea32b1bdef02001d  gcc/testsuite/gcc.dg/Wvla-3.c
*************** d8079498555414ed8e20a1866a122002  gcc/te
*** 37729,37735 ****
  b0cbf3f973ac6c7f66e3eabc7286596e  gcc/testsuite/gcc.dg/Wvla-parameter-13.c
  d78811fe7cce70276c7b5e1eff5af29e  gcc/testsuite/gcc.dg/Wvla-parameter-2.c
  84426447172d5f7e335b761dafb7aa5a  gcc/testsuite/gcc.dg/Wvla-parameter-3.c
! 7b7fde0c88aeeb625320c956342a669d  gcc/testsuite/gcc.dg/Wvla-parameter-4.c
  c0135afc5269c6f871dc2d0d446ace02  gcc/testsuite/gcc.dg/Wvla-parameter-5.c
  9816fc98d7e0e6bfff4591725207d6f3  gcc/testsuite/gcc.dg/Wvla-parameter-6.c
  4581771b1d9ff810d049b8ce329f44c9  gcc/testsuite/gcc.dg/Wvla-parameter-7.c
--- 39896,39902 ----
  b0cbf3f973ac6c7f66e3eabc7286596e  gcc/testsuite/gcc.dg/Wvla-parameter-13.c
  d78811fe7cce70276c7b5e1eff5af29e  gcc/testsuite/gcc.dg/Wvla-parameter-2.c
  84426447172d5f7e335b761dafb7aa5a  gcc/testsuite/gcc.dg/Wvla-parameter-3.c
! cad5bfe43dc49afaa2dd6d38f08c60e9  gcc/testsuite/gcc.dg/Wvla-parameter-4.c
  c0135afc5269c6f871dc2d0d446ace02  gcc/testsuite/gcc.dg/Wvla-parameter-5.c
  9816fc98d7e0e6bfff4591725207d6f3  gcc/testsuite/gcc.dg/Wvla-parameter-6.c
  4581771b1d9ff810d049b8ce329f44c9  gcc/testsuite/gcc.dg/Wvla-parameter-7.c
*************** ecaba7c928af85c280e63fa96b9b5e1b  gcc/te
*** 37769,38376 ****
  b3869c9bd68bb9659f230f48bf56f83c  gcc/testsuite/gcc.dg/always_inline.c
  5ad6d0d750af2e3c8488e96cfa1aa195  gcc/testsuite/gcc.dg/always_inline2.c
  99fe8a4ba9676a42a20bb593c81371e0  gcc/testsuite/gcc.dg/always_inline3.c
- 2f201e4820ee4947af45383e1434d613  gcc/testsuite/gcc.dg/analyzer/20020129-1.c
  f69e8cd9fd4e56cc65e71a4dfef997a4  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-dedupe-issue-2.c
  1a5f9e3123194efaadd5fb7ab38396df  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-dedupe-issue.c
  86d6d6ec23a415364e5fca0ca3cc5e2e  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-minimal.c
  78a5d2ec1775604f51f65022cb368643  gcc/testsuite/gcc.dg/analyzer/CWE-131-examples.c
- d0f7bb2477c7399d9c787d2e1891f0a6  gcc/testsuite/gcc.dg/analyzer/SARD-tc117-basic-00001-min.c
  4656af16261a46b3b0a549b8e725fb72  gcc/testsuite/gcc.dg/analyzer/SARD-tc1909-stack_overflow_loop.c
- 7dbb75c2ad0127cda3c2a6b1c8a376b6  gcc/testsuite/gcc.dg/analyzer/SARD-tc249-basic-00034-min.c
  05d3112c6482099e76531347972f0253  gcc/testsuite/gcc.dg/analyzer/SARD-tc293-basic-00045-min.c
  d396ac30a4549605a8b91e88fb32d4e3  gcc/testsuite/gcc.dg/analyzer/SARD-tc841-basic-00182-min.c
- 2a4fb2c70afac3ec00d2aa07665c4bec  gcc/testsuite/gcc.dg/analyzer/abort.c
  ae69c46005567e7d1eb865066adcb226  gcc/testsuite/gcc.dg/analyzer/abs-1.c
- ca39a9bcc32da0de969872e39eec2dcb  gcc/testsuite/gcc.dg/analyzer/aliasing-1.c
- 21ccef1b042617794f28392a02c47c2e  gcc/testsuite/gcc.dg/analyzer/aliasing-2.c
- 32fde96ad42a02a24edc6a02b1226299  gcc/testsuite/gcc.dg/analyzer/aliasing-3.c
- acf49c11840dc8bc432c930cb02b389c  gcc/testsuite/gcc.dg/analyzer/aliasing-pr106473.c
- 18fc2a84aecda4ede234a6de9d8690c2  gcc/testsuite/gcc.dg/analyzer/alloca-leak.c
- 75fcafdd3e3254bbd7067487aac00bb8  gcc/testsuite/gcc.dg/analyzer/allocation-size-1.c
- 883809a543fc00194aa0122fd7885429  gcc/testsuite/gcc.dg/analyzer/allocation-size-2.c
- c96b0b1881ce3b3626d09a506ac4c405  gcc/testsuite/gcc.dg/analyzer/allocation-size-3.c
- b9014dde0622543e19db1bd68aadaf4b  gcc/testsuite/gcc.dg/analyzer/allocation-size-4.c
  2fbe7c43718aa946f2698455261a0c9f  gcc/testsuite/gcc.dg/analyzer/allocation-size-5.c
! 7df73f5a6b529b429351deaa3466abb2  gcc/testsuite/gcc.dg/analyzer/allocation-size-multiline-1.c
! 8832903c7e2ccd3d92a2e29d550241ac  gcc/testsuite/gcc.dg/analyzer/allocation-size-multiline-2.c
! 7ca48bbcabd9772dd758051b4536ee34  gcc/testsuite/gcc.dg/analyzer/allocation-size-multiline-3.c
! 84d8987fac13d5215f5fc055229d77d8  gcc/testsuite/gcc.dg/analyzer/analyzer-debugging-fns-1.c
! e1fdaa48444fc5676927bb339608d942  gcc/testsuite/gcc.dg/analyzer/analyzer-decls.h
! 90dda8fe240a90810c6e1ceac986f94d  gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-0.c
! 4a550fb2a3d0da71845491af53126fc1  gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-1.c
! 4af04acb904167afb9365e7d69bb67d7  gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2.c
! 6f13c48d287fe59d52b17e51ccd6fca9  gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2a.c
! 91071d4bdc9f508d03823383cfe8302a  gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3.c
! ddd318f0d7ec18cf56dba10884be8c19  gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3a.c
! 9bf5637bd79b2ee6a8c9d69834c8d2fa  gcc/testsuite/gcc.dg/analyzer/analyzer.exp
! fc965261104eb781f63faa0fe5a3d7b1  gcc/testsuite/gcc.dg/analyzer/asm-x86-1.c
  7145b6f3637a739ae894c4e1ebe7ee08  gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-1.c
- 2d9b7a44f7c158100d74ae0014a15577  gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-2.c
  d780518e28005b87079c2be1a96dab0e  gcc/testsuite/gcc.dg/analyzer/asm-x86-lp64-1.c
! a4b48a92bf5c5ed1b18d749eccdb9e3a  gcc/testsuite/gcc.dg/analyzer/asm-x86-lp64-2.c
! c41899060576b47d99e59ea79b7abcf5  gcc/testsuite/gcc.dg/analyzer/attr-const-1.c
! a0b2e2cd9950584a2520f1fcc3f0968d  gcc/testsuite/gcc.dg/analyzer/attr-const-2.c
! 4929e246f79eda3c50d5aa9ecf568159  gcc/testsuite/gcc.dg/analyzer/attr-const-3.c
  7e04586dfdf34765be05ca4a006473a3  gcc/testsuite/gcc.dg/analyzer/attr-malloc-1.c
- b4515e65ed785bcd07a7162f6ccb804a  gcc/testsuite/gcc.dg/analyzer/attr-malloc-2.c
- 046d0c0ef6b5715f28a641d19c38b314  gcc/testsuite/gcc.dg/analyzer/attr-malloc-4.c
- 52c21034354662dddfd5114d1e6b1126  gcc/testsuite/gcc.dg/analyzer/attr-malloc-5.c
- 243c8e733d93a30f1b96b68044c19782  gcc/testsuite/gcc.dg/analyzer/attr-malloc-6.c
- 35f38fdea541935448e811384d026d07  gcc/testsuite/gcc.dg/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c
- bccece796597d19d1f7a0fea1ecd1d5c  gcc/testsuite/gcc.dg/analyzer/attr-malloc-misuses.c
  e335d916bb1026d6d9d508119e1eb9e8  gcc/testsuite/gcc.dg/analyzer/attr-malloc-pr108252.c
  9424116fb3a7804ff0f4eac8cf131a38  gcc/testsuite/gcc.dg/analyzer/attr-nonnull-pr106325.c
- 7a814ea917099316d0741d5799a472f0  gcc/testsuite/gcc.dg/analyzer/attr-tainted_args-1.c
- 3f7d3cba520a26c38c50f22274b6c413  gcc/testsuite/gcc.dg/analyzer/attr-tainted_args-misuses.c
  c480119897bf409501913cf24fea555c  gcc/testsuite/gcc.dg/analyzer/attribute-nonnull.c
  215f65c0f414779a43cca081e7a96b0b  gcc/testsuite/gcc.dg/analyzer/bitfields-1.c
! 9a9ee4011d51982118bd3982ddc26b5e  gcc/testsuite/gcc.dg/analyzer/boxed-malloc-1.c
  b079556a417329a74b2a9c1f780cc54d  gcc/testsuite/gcc.dg/analyzer/builtins-pr107565.c
  de1c3d5d0b46c866fdd4ebeca363175b  gcc/testsuite/gcc.dg/analyzer/bzero-1.c
- 2a6fd4b0596437c81584911234e358fe  gcc/testsuite/gcc.dg/analyzer/bzip2-arg-parse-1.c
- 768424351f1b238f53407ec9bb29e126  gcc/testsuite/gcc.dg/analyzer/call-summaries-1.c
  722fc329175bc9af28757071b8488205  gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c
- 1d08e89be2885a0530a8dd0fd33848ce  gcc/testsuite/gcc.dg/analyzer/call-summaries-3.c
- a98652f2d06708729de689f5875dcc2c  gcc/testsuite/gcc.dg/analyzer/call-summaries-asm-x86.c
  6958986d14e5b5d82a6e5d8d1a4253fe  gcc/testsuite/gcc.dg/analyzer/call-summaries-errno.c
! 53dd37e8e78b9b34ac59c168b3026d6c  gcc/testsuite/gcc.dg/analyzer/call-summaries-malloc.c
! 5106fcf69d180623a3f99851f20849d0  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr107072.c
! c8b52dd62c1c9d300466183f293ad610  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr107158-2.c
! c217dc0a580b458c80df495d4eabd771  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr107158.c
! a99cd9f5718c9d37aee6aee0294cc872  gcc/testsuite/gcc.dg/analyzer/callbacks-1.c
! 0b7fa83ab4d00972ea110527aa160a26  gcc/testsuite/gcc.dg/analyzer/callbacks-2.c
! 054c975de1ad550bc0b3a3000890f5ab  gcc/testsuite/gcc.dg/analyzer/callbacks-3.c
! 2c6557a5341ec3d7722179773a3a315f  gcc/testsuite/gcc.dg/analyzer/calloc-1.c
! 2f05fa08e6cfadef4f032f92d90fc335  gcc/testsuite/gcc.dg/analyzer/capacity-1.c
! 70268e9d3be18e97a3643aa3d912c1a1  gcc/testsuite/gcc.dg/analyzer/capacity-2.c
! 0ac37e462c4c78f67a1c354ffba96eaf  gcc/testsuite/gcc.dg/analyzer/capacity-3.c
! 66aa74c6297ad1a2026f455611b0a4fc  gcc/testsuite/gcc.dg/analyzer/casts-1.c
! 079606c0ec9f4acfbec886c8a9bf1f97  gcc/testsuite/gcc.dg/analyzer/casts-2.c
! cef5e3bcdf11b82aa8bc65b81170878f  gcc/testsuite/gcc.dg/analyzer/clobbers-1.c
  cdf915de6aa445e00b8a320d8b7b09dc  gcc/testsuite/gcc.dg/analyzer/clobbers-2.c
  2faef601592f61931a6a0fa8bf058245  gcc/testsuite/gcc.dg/analyzer/combined-conditionals-1.c
- 0b52169dbc3123d514322d16dd4277af  gcc/testsuite/gcc.dg/analyzer/compound-assignment-1.c
  a60083781c2444fc0afb93119adde9cd  gcc/testsuite/gcc.dg/analyzer/compound-assignment-2.c
  ea761a32a87e7dd14f7f4d83472c0e79  gcc/testsuite/gcc.dg/analyzer/compound-assignment-3.c
! 30287a7a2b8f02421828017087fff16b  gcc/testsuite/gcc.dg/analyzer/compound-assignment-4.c
! 8294d8bf908c4d04509527018707d466  gcc/testsuite/gcc.dg/analyzer/compound-assignment-5.c
  a9211e3f54bc8dd31aed70c7c3f9b905  gcc/testsuite/gcc.dg/analyzer/conditionals-3.c
  1c0a20304d7da2a80255211819446599  gcc/testsuite/gcc.dg/analyzer/conditionals-notrans.c
  8cfdc88c0b5a96aa0b303a5409085dfc  gcc/testsuite/gcc.dg/analyzer/conditionals-trans.c
! 99fb800a6b0a83f7c07274389ab87765  gcc/testsuite/gcc.dg/analyzer/coreutils-cksum-pr108664.c
! 1066b0bbdd0921af0ddb70986559e4c9  gcc/testsuite/gcc.dg/analyzer/coreutils-sum-pr108666.c
! 7ebb983e4240132a42afee7e5b9e33af  gcc/testsuite/gcc.dg/analyzer/data-model-1.c
  fbf171c2475c36b54306b4fa689eee97  gcc/testsuite/gcc.dg/analyzer/data-model-10.c
- 6c6fdb499c22eb058dcbea40374d2696  gcc/testsuite/gcc.dg/analyzer/data-model-11.c
- 9117b1e1f037bbea1974142b15b71ebf  gcc/testsuite/gcc.dg/analyzer/data-model-12.c
  01dd89f886f8267655367177e67d8a7f  gcc/testsuite/gcc.dg/analyzer/data-model-13.c
- 2e73658157673972ef9183ffaef41abf  gcc/testsuite/gcc.dg/analyzer/data-model-14.c
  1360165d72546f0514e05f720ac9fe62  gcc/testsuite/gcc.dg/analyzer/data-model-15.c
  8985d4acdbaec3ea42e821c7cd37e427  gcc/testsuite/gcc.dg/analyzer/data-model-16.c
  2dd1b0e38379c6d256ce6fb601769518  gcc/testsuite/gcc.dg/analyzer/data-model-17.c
- 41986412fcfd0857f096ced958eeadf1  gcc/testsuite/gcc.dg/analyzer/data-model-18.c
  7eb55f055f46c9020d8e30ecaf87a8ec  gcc/testsuite/gcc.dg/analyzer/data-model-19.c
! 4553c74241f2cd9efbf26371de99807d  gcc/testsuite/gcc.dg/analyzer/data-model-2.c
! e5cb255db014dc57d570bbe1561719b2  gcc/testsuite/gcc.dg/analyzer/data-model-20.c
! 1a7244f30f830702369a54bb48fc8aef  gcc/testsuite/gcc.dg/analyzer/data-model-21.c
! 167e706d53055dd18733c241608420b2  gcc/testsuite/gcc.dg/analyzer/data-model-22.c
  60c1562137794e4c7d5ca3e93f330449  gcc/testsuite/gcc.dg/analyzer/data-model-23.c
- e7daf7589a18b2ab24bdc2f3f62367d5  gcc/testsuite/gcc.dg/analyzer/data-model-4.c
  8b3936ae8969f3a1152ef7885922b4ad  gcc/testsuite/gcc.dg/analyzer/data-model-5.c
  50de8dcfc0305e565c234999fa450fed  gcc/testsuite/gcc.dg/analyzer/data-model-5b.c
  d932e32ee23667f73c2b38527aaef2a9  gcc/testsuite/gcc.dg/analyzer/data-model-5c.c
- ce3825071f0459fd39e18dc4443bc5a7  gcc/testsuite/gcc.dg/analyzer/data-model-5d.c
  be7aafbe051db1d04fdb6dda26644e29  gcc/testsuite/gcc.dg/analyzer/data-model-7.c
! e30a91c7d128ee44d4a195e5868ee03a  gcc/testsuite/gcc.dg/analyzer/data-model-8.c
! 31f1a32a7438f9e74a61e8b03567a77e  gcc/testsuite/gcc.dg/analyzer/data-model-9.c
! e9598af7814c9b574008795653746252  gcc/testsuite/gcc.dg/analyzer/data-model-path-1.c
  7cecbe3ff8f0a8faf72f48437253394d  gcc/testsuite/gcc.dg/analyzer/deref-before-check-1.c
- c983dc0a3824841a4b277a70d4f30c24  gcc/testsuite/gcc.dg/analyzer/deref-before-check-2.c
- 1712456e05161d3b0417014c34379ace  gcc/testsuite/gcc.dg/analyzer/deref-before-check-macro-pr108745.c
  2b005f545877795663ba55a328aa9b60  gcc/testsuite/gcc.dg/analyzer/deref-before-check-macro.c
! 579acdee714d530cdb83efe3e4280cb6  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr108455-1.c
! e504f98fa61c5596bd399d93b6c5bb0b  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr108455-git-pack-revindex.c
! b5db231f7d5cf3af0c19c514187f18df  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr108475-1.c
! 4ecd7c5fb8128c8790fbf6e467e6f447  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr108475-haproxy-tcpcheck.c
! d73c74c2b29425393e36b683916e3230  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr109060-haproxy-cfgparse.c
! 1bd55ea175c88e72b390562b62790fa2  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr109239-linux-bus.c
! 4bb996492235cb81f106826f5610ae8c  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr77425.c
! d2ac7cdc94dcc7ea5bfd23ed78b9b41a  gcc/testsuite/gcc.dg/analyzer/deref-before-check-qemu-qtest_rsp_args.c
  64840faa76375f58a4f02239bbee2133  gcc/testsuite/gcc.dg/analyzer/describe-1.c
- 13ffe607de30212adc9ebda16cc7cbbc  gcc/testsuite/gcc.dg/analyzer/disabling.c
  5a46fc2ecfd967da0040babb4bca6499  gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c
! 7658389385e72adc055d72f76e6eb1c1  gcc/testsuite/gcc.dg/analyzer/doom-s_sound-pr108867.c
! 755fd6b33501ddcdd674252b43e6c382  gcc/testsuite/gcc.dg/analyzer/dot-output.c
  0ec3d38b15165ad7732c142bfbb0329f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-a.c
  5da5e08e5a3b9fac183936207016118f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-b.c
  9bd730005568e90798a30108ba063dd2  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1.h
! 8ea34a719fd27f31787cfb7f8ff38940  gcc/testsuite/gcc.dg/analyzer/dump-state.c
! 101f9021149cc564f0ca9fb761c01032  gcc/testsuite/gcc.dg/analyzer/edges-1.c
! 5349560ff6dd31c0631eedd6b00658ee  gcc/testsuite/gcc.dg/analyzer/edges-2.c
! cd58bff2b56161f01ab9307737cbe5dd  gcc/testsuite/gcc.dg/analyzer/equivalence.c
! 2d83da4ee4b322aa6495120a44ab4a2c  gcc/testsuite/gcc.dg/analyzer/errno-1.c
! aaadcec13e3fe9bdd8840af607307fe7  gcc/testsuite/gcc.dg/analyzer/errno-___errno.c
! 06951c6e7e03b1f718140cca8d7389d8  gcc/testsuite/gcc.dg/analyzer/errno-__error.c
! 8d211fca1cbcf4fb7b1bb6346f3a3f6a  gcc/testsuite/gcc.dg/analyzer/errno-global-var.c
! 0ab30799aa76ae04b4edb6495e72e92f  gcc/testsuite/gcc.dg/analyzer/errno-pr107777.c
! 7a41edb146e30ff88645faff41cd6660  gcc/testsuite/gcc.dg/analyzer/error-1.c
  959242e188dc1726d5f00627897522c2  gcc/testsuite/gcc.dg/analyzer/error-2.c
- c5de56a4561f064e270ee358ffb7aa30  gcc/testsuite/gcc.dg/analyzer/error-3.c
- 661fbac2bdbb13d6a1616a88998047c7  gcc/testsuite/gcc.dg/analyzer/error-uninit.c
- f336bce0a86a089cef98497358794093  gcc/testsuite/gcc.dg/analyzer/escaping-1.c
- 1dce10fd6c05e960d4d3f11d39a03071  gcc/testsuite/gcc.dg/analyzer/exec-1.c
- a5f30efaea21fb670c8c02fcd0a225ba  gcc/testsuite/gcc.dg/analyzer/expect-1.c
  fb6027da0380d31038644ba5db02fce8  gcc/testsuite/gcc.dg/analyzer/explode-1.c
  10d31dc45c3f21fbd96aa46492473138  gcc/testsuite/gcc.dg/analyzer/explode-2.c
! 0924e466b64c157716b9918defbc3848  gcc/testsuite/gcc.dg/analyzer/explode-2a.c
  e42c67081cc782a2fbf78edf4ad1187f  gcc/testsuite/gcc.dg/analyzer/explode-3.c
! 8a65bc460ebfced6ab82065135e57d26  gcc/testsuite/gcc.dg/analyzer/factorial.c
! 3efc345b51b7277578af413178d26130  gcc/testsuite/gcc.dg/analyzer/fd-1.c
! 08209591e6a5f867ee4a2f405e8b4be9  gcc/testsuite/gcc.dg/analyzer/fd-2.c
! 40298520e3317080f9c41cabe4a50544  gcc/testsuite/gcc.dg/analyzer/fd-3.c
! 4e4fb196ecd79794043f10d1d6911df8  gcc/testsuite/gcc.dg/analyzer/fd-4.c
! 4d40240a2d335c039e0a43fff1b9fca6  gcc/testsuite/gcc.dg/analyzer/fd-accept.c
  2530d550c40182f2e415566420f1903a  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-enum.c
  489459d5b157c16e319b14cb96bdac2f  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-macros.c
! 45a9154e54535a9d12b52c509497b185  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c
! 8d59ae372666083a7d189b26af00ecfc  gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107783.c
! 50636a97d77b8f9987955e13d490394f  gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107928.c
! a38fee08e9852e95b40354aaa70aba2b  gcc/testsuite/gcc.dg/analyzer/fd-bind.c
! 2b4e89d6bd86a237296bded464000d70  gcc/testsuite/gcc.dg/analyzer/fd-connect-pr107928.c
  33b580122bdc1cca2f8b3460eee00433  gcc/testsuite/gcc.dg/analyzer/fd-connect.c
! afc1d96bb615a5163498b5b8dfafbba6  gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c
  827dcc603f79b7aa5453b7b4dfba4665  gcc/testsuite/gcc.dg/analyzer/fd-dup-1.c
! fc7d8278a1b704c1c5490f68539b33d8  gcc/testsuite/gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c
! 4f297a71867f6ffe69dc67b324298dba  gcc/testsuite/gcc.dg/analyzer/fd-glibc-byte-stream-socket.c
! edd1e708973b1e8a22d87da59f67e0da  gcc/testsuite/gcc.dg/analyzer/fd-glibc-datagram-client.c
! 47a0eeeb0272f76bb1a6de21db1609cc  gcc/testsuite/gcc.dg/analyzer/fd-glibc-datagram-socket.c
  983aa8eb3b385c301b0f38e058072ad2  gcc/testsuite/gcc.dg/analyzer/fd-glibc-make_named_socket.h
  dfec44c9516f74c36a586e4fcca16e64  gcc/testsuite/gcc.dg/analyzer/fd-leak-pr108252.c
! 9ffdd6c3aa55a71e867e92ec9be2375e  gcc/testsuite/gcc.dg/analyzer/fd-listen.c
! a177d44130d41a3609c707d32d17d30c  gcc/testsuite/gcc.dg/analyzer/fd-manpage-getaddrinfo-client.c
! fb03bc2fc5f65662c4e60d4569235699  gcc/testsuite/gcc.dg/analyzer/fd-mappage-getaddrinfo-server.c
! dcb15e6b7d5c3424f3cb08babe7fb63a  gcc/testsuite/gcc.dg/analyzer/fd-meaning.c
  8fb341e8fe6909ce190ae756b2789975  gcc/testsuite/gcc.dg/analyzer/fd-pr108633.c
! 420c686f24999848149401ab7c228a3b  gcc/testsuite/gcc.dg/analyzer/fd-socket-meaning.c
! 6e101b940d779c01b7726d6d953023a8  gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c
! 47df9afaa31d051e91cf3beb6f8debbf  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c
! 4ba499b0f78a6e19bd5861f949bd704e  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c
! f6f21dc0ea093fa9c7e15e97920aac71  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c
! 004856011d247a34929f6f0a0cf8ab8d  gcc/testsuite/gcc.dg/analyzer/fd-symbolic-socket.c
! c1e500f74e478290b2358e6a5d237d83  gcc/testsuite/gcc.dg/analyzer/fd-uninit-1.c
  0fec3e8bbcc3a193f4e6d57c5f2d57b5  gcc/testsuite/gcc.dg/analyzer/fdump-analyzer-1.c
- c67fd7150c48c2cbde13c569af42d724  gcc/testsuite/gcc.dg/analyzer/feasibility-1.c
- 00d15989662428086fefe3003fd1d85d  gcc/testsuite/gcc.dg/analyzer/feasibility-2.c
- 1ecf4969c7b67421cceea02a7cfb7e0b  gcc/testsuite/gcc.dg/analyzer/feasibility-3.c
- 088ec06833570acdc6c6bb265466f91e  gcc/testsuite/gcc.dg/analyzer/feasibility-4.c
  1761d210a631bde55c4d4207134fd68c  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107582-1.c
  e3febbf18f1dc3e8c6dbca7b8d1ca64a  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107582-2.c
- 166367f89bddb5b54a71a7870a8f1fe1  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107948.c
- 1461e7b4d80bbbc9eaca84c3c53e4ced  gcc/testsuite/gcc.dg/analyzer/ferror-1.c
- b4ae76ed4a7c1a97bdbfd34c861b3338  gcc/testsuite/gcc.dg/analyzer/fgets-1.c
- 0d6e01df673fded93678160ef3f843e9  gcc/testsuite/gcc.dg/analyzer/fibonacci.c
- 2e05a981243c5494d6a9ea0b4514acc7  gcc/testsuite/gcc.dg/analyzer/fields.c
- 18174663dff64a509abb3f5ada449bdc  gcc/testsuite/gcc.dg/analyzer/file-1.c
  b29483f2758f47b95759473be5a64ba6  gcc/testsuite/gcc.dg/analyzer/file-2.c
- 4d1005ccd0e2c6b96780497a29dc930f  gcc/testsuite/gcc.dg/analyzer/file-3.c
  74551d8bd5683960b9795e840ed3cad4  gcc/testsuite/gcc.dg/analyzer/file-CWE-1341-example.c
- 201348c53a15d6dd5ba2dba86efc8eab  gcc/testsuite/gcc.dg/analyzer/file-meaning-1.c
  60112ba55cc527ed2f374a5469b8bb21  gcc/testsuite/gcc.dg/analyzer/file-paths-1.c
! d915eedeb695b8593d6c7101dd8eeea5  gcc/testsuite/gcc.dg/analyzer/file-pr58237.c
! 89737b51a5c30a4053ff561fafc96a87  gcc/testsuite/gcc.dg/analyzer/file-uninit-1.c
! 1d9483d273baff7deb3faf2f5b69ed4d  gcc/testsuite/gcc.dg/analyzer/fileno-1.c
! 20d65cfa29c33455231b4036f2cf5708  gcc/testsuite/gcc.dg/analyzer/first-field-1.c
! 205728a949c258519a4725538e6f2dd9  gcc/testsuite/gcc.dg/analyzer/first-field-2.c
! 31ef78da92834b0880d52901e84d93c2  gcc/testsuite/gcc.dg/analyzer/flex-with-call-summaries.c
! ad3851df78a85807e604fac850d2e060  gcc/testsuite/gcc.dg/analyzer/flex-without-call-summaries.c
! 09966841338021d87dc6470e7ce4ad46  gcc/testsuite/gcc.dg/analyzer/flexible-array-member-1.c
! a6fdea16ec5681772d23041ed961946e  gcc/testsuite/gcc.dg/analyzer/fold-string-to-char.c
! b56e6fc2ffb4fe410aeca9754005de9b  gcc/testsuite/gcc.dg/analyzer/fread-1.c
! 4f24d2c6cf1a7ea65c4721e2a5b02c15  gcc/testsuite/gcc.dg/analyzer/fread-2.c
! f512dabde9dcd2f000bf124a071e88d4  gcc/testsuite/gcc.dg/analyzer/fread-pr108661.c
! e02f4f3f73df89227f8853a4206f0cad  gcc/testsuite/gcc.dg/analyzer/function-ptr-1.c
! 65a4362aae50033f7c6b13c2daab548c  gcc/testsuite/gcc.dg/analyzer/function-ptr-2.c
! 6a55e6868fb6e1f3a4844412e8ad9f93  gcc/testsuite/gcc.dg/analyzer/function-ptr-3.c
! b2879bf88ff165ec7fcf358bfa0851f9  gcc/testsuite/gcc.dg/analyzer/function-ptr-4.c
! dbed48e142a4b6c0e70daafe64e39f88  gcc/testsuite/gcc.dg/analyzer/function-ptr-5.c
! 27e7865f9c71851f26bc947168724ada  gcc/testsuite/gcc.dg/analyzer/getc-1.c
! 60731db68fab4e97a10b7f143df530c4  gcc/testsuite/gcc.dg/analyzer/getchar-1.c
! cd629fc9b87516508b6418bde7e6512b  gcc/testsuite/gcc.dg/analyzer/gzio-2.c
! fda86ff25535c945555b6fc4c394a45e  gcc/testsuite/gcc.dg/analyzer/gzio-3.c
! 826438f921dddc8033a63027fd6280aa  gcc/testsuite/gcc.dg/analyzer/gzio-3a.c
! 95ad79e96dde48a914a9588f08788b19  gcc/testsuite/gcc.dg/analyzer/gzio.c
! 9f2287cf880bd04809fe7bc81e052340  gcc/testsuite/gcc.dg/analyzer/imprecise-floating-point-1.c
! ff805313fa956a67f1dc98c3dac09efa  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-2.c
! 34901b2d3bb8a6242b45481f8329dfad  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-3.c
! 36d8f1e7bf8efe96a15ce80880e10e83  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-4-limited-buggy.c
! 6c02fdcda6da2e22db9f2590da1ed81e  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-4-limited.c
! 29e098dde04cb3f8dc4bc4d3e6ecea87  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-4-unlimited-buggy.c
! 57e4b763cf0302dace5e4608c7185d85  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-4-unlimited.c
! eecccbd82a0978c6fefd4883a004a5ce  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-5.c
! 5d46cc14809df1773684db513d227c0f  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-alloca.c
! fc9d74b72a130c35707ef77334668958  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-inlining.c
! 8f5a39dbe5e17797f497e06ffd95c6ee  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-multiline-1.c
! 7e34c832a1d6df141666ab3fe2c8fe8e  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-multiline-2.c
! 5b6951f6e4b964a2c50b04c6e18ab18d  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-pr108524-1.c
! 10655b22efe364785ba8c5027193226b  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-pr108524-2.c
! 58ca278b99ae12194d74cef226052e70  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-pr108524-qobject-json-parser.c
! a66185ed3bef2742621b423d3bec08ab  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-pr108935-1.c
! 7d75523d81879148276b42e991a4c362  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-pr108935-1a.c
! 66723f902622a5e196b22ca3d8fceff6  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-pr108935-2.c
! 43c57be318716a133d18499c08ddc7aa  gcc/testsuite/gcc.dg/analyzer/infinite-recursion-variadic.c
! d5e270f77ea78102f30f82e5d2f2191b  gcc/testsuite/gcc.dg/analyzer/infinite-recursion.c
! 28a2c270aa1b745766369de60cee0f7c  gcc/testsuite/gcc.dg/analyzer/init.c
! 07f8f2aeb9aad61c63d51260f4728892  gcc/testsuite/gcc.dg/analyzer/inlining-1-multiline.c
! 111b13e5745e85042633f793367de15a  gcc/testsuite/gcc.dg/analyzer/inlining-1-no-undo.c
! b48800f01c8d26ae909f436e5cd6e8c8  gcc/testsuite/gcc.dg/analyzer/inlining-1.c
! 090c506331daa44b165328a2f0d7a460  gcc/testsuite/gcc.dg/analyzer/inlining-2-multiline.c
! b5100b4538da260ea7ae11ba62fc65c6  gcc/testsuite/gcc.dg/analyzer/inlining-2.c
! ec2b81ba5b0754ff690fecadef94bc8c  gcc/testsuite/gcc.dg/analyzer/inlining-3-multiline.c
! 180c64cd140810828deb4afdee10ea12  gcc/testsuite/gcc.dg/analyzer/inlining-3.c
! ad1ba5dec4298473e7f0cb2537fdb164  gcc/testsuite/gcc.dg/analyzer/inlining-4-multiline.c
! 1b20002a31f507e0fe7a0a2eacd752cc  gcc/testsuite/gcc.dg/analyzer/inlining-4.c
! 0a1f4cf1c6c7854be08ec9ba9df85995  gcc/testsuite/gcc.dg/analyzer/inlining-5-multiline.c
! c5bed76dd10cd3ee7b133ddc3ade09c7  gcc/testsuite/gcc.dg/analyzer/inlining-5.c
! 61800a5ec8423e077177782c7bc7cdf7  gcc/testsuite/gcc.dg/analyzer/inlining-6-multiline.c
! f96a5e26ebe3f224244fcc898ace703b  gcc/testsuite/gcc.dg/analyzer/inlining-6.c
! 098d5c87bdbb786f7c4618d5b8220f1b  gcc/testsuite/gcc.dg/analyzer/inlining-7-multiline.c
! f17e0d8915231a8ec68df05de5383de1  gcc/testsuite/gcc.dg/analyzer/inlining-7.c
! 7a48058aaf7419920b16429c67d04982  gcc/testsuite/gcc.dg/analyzer/invalid-shift-1.c
! 78fec9cc691969cd1992e214fa400125  gcc/testsuite/gcc.dg/analyzer/isatty-1.c
! 094b1340efd825baefc9ac68d2865171  gcc/testsuite/gcc.dg/analyzer/leak-2.c
! 862c513838cce7710b72958de0e089e7  gcc/testsuite/gcc.dg/analyzer/leak-3.c
! 70c3b4e23da4264b5547a8adf9a264d6  gcc/testsuite/gcc.dg/analyzer/leak-4.c
! 48a3fef492382f63be7022d8f749b997  gcc/testsuite/gcc.dg/analyzer/leak-pr105906.c
! b820f5c4dc5ad825d166dd29e4843185  gcc/testsuite/gcc.dg/analyzer/leak-pr108045-with-call-summaries.c
! 0480feafe72120f76ae2287ebcd639a9  gcc/testsuite/gcc.dg/analyzer/leak-pr108045-without-call-summaries.c
! 8a2e355017d9323ec8df64988c25429d  gcc/testsuite/gcc.dg/analyzer/leak-pr109059-1.c
! df6ea921b915d23b58f64b1153a91ab6  gcc/testsuite/gcc.dg/analyzer/leak-pr109059-2.c
! 9b630a4b5d2445a17f5fcc0d2d08b96b  gcc/testsuite/gcc.dg/analyzer/loop-0-up-to-n-by-1-with-iter-obj.c
! ccff25473fa2d7eb6b31302f8757af2e  gcc/testsuite/gcc.dg/analyzer/loop-0-up-to-n-by-1.c
! e7d3ac631bcaca30613f84fbe2cfae3f  gcc/testsuite/gcc.dg/analyzer/loop-2.c
! 4d56089d171363f19a0cb7507989e5b5  gcc/testsuite/gcc.dg/analyzer/loop-2a.c
! 38554e26f0a2347fa36dcc051c5d5320  gcc/testsuite/gcc.dg/analyzer/loop-3.c
! 6d93f0cf0bc02b3114118aaa8e04225b  gcc/testsuite/gcc.dg/analyzer/loop-4.c
! 023047bf69fcdca407120a729401408a  gcc/testsuite/gcc.dg/analyzer/loop-n-down-to-1-by-1.c
! 75b7cc74c9b14b70bb65de3f647a82ee  gcc/testsuite/gcc.dg/analyzer/loop-start-down-to-end-by-1.c
! 2fa08222599a99bcd200f76449e6b9f0  gcc/testsuite/gcc.dg/analyzer/loop-start-down-to-end-by-step.c
! 8ad1b0087276cc9cb69d159e668f8e0f  gcc/testsuite/gcc.dg/analyzer/loop-start-to-end-by-step.c
! a338db9e662a64be9acd7699f6b8f480  gcc/testsuite/gcc.dg/analyzer/loop-start-up-to-end-by-1.c
! bac89c08a695635d761a021615d9e74e  gcc/testsuite/gcc.dg/analyzer/loop.c
! b9fe9044ec2e84e338963eaa83d77760  gcc/testsuite/gcc.dg/analyzer/malloc-1.c
! 016c3c7250e597b255e646086af41c0d  gcc/testsuite/gcc.dg/analyzer/malloc-2.c
! 9de3ac19ac5e83db9dc669b5ded16421  gcc/testsuite/gcc.dg/analyzer/malloc-3.c
! 2b64001dfbd8f6e02b57086866f713a5  gcc/testsuite/gcc.dg/analyzer/malloc-4.c
! a0bcfa3badd49dd40ba6ca4b9c4af6e3  gcc/testsuite/gcc.dg/analyzer/malloc-5.c
! 089a218821bc78b4449f445d077fe986  gcc/testsuite/gcc.dg/analyzer/malloc-CWE-401-example.c
! 33eb20bdcc22880a94f04f3cf3ce75ac  gcc/testsuite/gcc.dg/analyzer/malloc-CWE-415-examples.c
! ad93a90a150e736e096f90487b8efc05  gcc/testsuite/gcc.dg/analyzer/malloc-CWE-416-examples.c
! 45b01883f51af8cc9019455aa59be87c  gcc/testsuite/gcc.dg/analyzer/malloc-CWE-590-examples.c
! c442a7086d2a1d0126ea24bfcce8048d  gcc/testsuite/gcc.dg/analyzer/malloc-callbacks.c
! 212fdabc9998e80319bb376300f15a4c  gcc/testsuite/gcc.dg/analyzer/malloc-dce.c
! a0baef29e471a23f4b1d85765e6c323a  gcc/testsuite/gcc.dg/analyzer/malloc-dedupe-1.c
! 98d6716096afb847d597604ce1dd4ebc  gcc/testsuite/gcc.dg/analyzer/malloc-in-loop.c
! 0eb3eab22850b1ee96240fa0f315c8f7  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-1.c
! d079e62118cc134df565e6e8305c0f02  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-10.c
! 13f13f3283f3e240e014762cf1d8cf06  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-11.c
! 9ba47d1cadcdb905818d680ab630fc87  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-12.c
  865e5f8c81482626d2e9eae5344bcf6e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-13.c
- 040536c40f5543d2f3a0fded49c9f951  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-13a.c
- c975c8677595ca5266f4944072467ac6  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-2.c
- 5a40812b01235635b102868981304a4d  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-3.c
- a6eae3933449af6dac24eda8dcb9bafb  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-4.c
- d9f3cbeacacaa6c2c8a5d2691c8ee146  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-5.c
- 8c3ed72cdfbd43a79f4a2aafbab9472e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-6.c
- 894ac8f22f5ee97dbf69a6bb77eb0d23  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-7.c
  f0aff4423fc2056f3172a11bb1c0157f  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
  bcfb83da5d02ca988bcaa7b692b3f47d  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-a.c
  f4e3e9fe67ce001d0a4d83f475ee2e1e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-b.c
  8046594199f747ea766d853de506a64d  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-c.c
  fe31474c1de3fcecf8fc2126e5d77be5  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto.h
- 5f921e1ce909e758710bf0167b5edda6  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
- 501c9d5c4d00231c3decfa9f95a02441  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-9.c
- 168f305fb9c8d51e36c601552613511f  gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline-events.c
- 3b54059434a92ec2ec4a823b5d865edb  gcc/testsuite/gcc.dg/analyzer/malloc-macro-separate-events.c
- 13ff782aadb00a0005a902b7a6b47bb3  gcc/testsuite/gcc.dg/analyzer/malloc-macro.h
- 0a26b1a6638ad50af7917b694d62f3ca  gcc/testsuite/gcc.dg/analyzer/malloc-many-paths-1.c
  c70af2073448635855d144cc02268df7  gcc/testsuite/gcc.dg/analyzer/malloc-many-paths-2.c
- 3fa8d16b65385c1f68e354229e9e76d1  gcc/testsuite/gcc.dg/analyzer/malloc-many-paths-3.c
- 651998f628e3054917e94d72e1539e23  gcc/testsuite/gcc.dg/analyzer/malloc-meaning-1.c
- 5f1e6465e704334db9b85ba9f9bc5f24  gcc/testsuite/gcc.dg/analyzer/malloc-paths-1.c
  8d7ccfbc02f689c8b6b79362b9c9cf06  gcc/testsuite/gcc.dg/analyzer/malloc-paths-10.c
! 412aa50e9719b304e4b0af9bf584748c  gcc/testsuite/gcc.dg/analyzer/malloc-paths-2.c
! 9de165979b7aff117a96e54202a9f96c  gcc/testsuite/gcc.dg/analyzer/malloc-paths-3.c
! 217391452ef57cef4db9f027bf139c7c  gcc/testsuite/gcc.dg/analyzer/malloc-paths-4.c
! c0512edf80944ffafce5cf9e1f06c2ee  gcc/testsuite/gcc.dg/analyzer/malloc-paths-5.c
! 54fdccce21f567ce613c24d9a16b1593  gcc/testsuite/gcc.dg/analyzer/malloc-paths-6.c
! 601cd4c7b73ebb6e97b3bda99e6bea6b  gcc/testsuite/gcc.dg/analyzer/malloc-paths-7.c
! 16ddee2fac1ab9a0fbc3731f7cd52b2e  gcc/testsuite/gcc.dg/analyzer/malloc-paths-8.c
! 6cc81ee18fb6d2aecab26207acd6c349  gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c
  e73a0522f7f81259b897de6b7881df57  gcc/testsuite/gcc.dg/analyzer/malloc-reuse.c
- 3c3322cd86074b063a5baf45f9e915d0  gcc/testsuite/gcc.dg/analyzer/malloc-sarif-1.c
- 8261cb8449d54e0382dc64b74d46d2c0  gcc/testsuite/gcc.dg/analyzer/malloc-vs-local-1a.c
- b5bb321785e7bea5388cb2b64e173213  gcc/testsuite/gcc.dg/analyzer/malloc-vs-local-1b.c
- d464c105278a3135eece0b536dfddef1  gcc/testsuite/gcc.dg/analyzer/malloc-vs-local-2.c
- d612c4dbe9f34c8b84f01f0c3b2c896f  gcc/testsuite/gcc.dg/analyzer/malloc-vs-local-3.c
  79dc7e451e8ed0274f282b8d09979e95  gcc/testsuite/gcc.dg/analyzer/malloc-vs-local-4.c
- 6ccd146a06cc2ba54e9f0262c6f28597  gcc/testsuite/gcc.dg/analyzer/many-disabled-diagnostics.c
- a9a24860ed497a76f830a117a460b2ec  gcc/testsuite/gcc.dg/analyzer/many-unused-locals.c
  ac65547952c25ba221985e37016c6fb2  gcc/testsuite/gcc.dg/analyzer/memcpy-1.c
- 728602d0d805828021fa0a9e3e2650ce  gcc/testsuite/gcc.dg/analyzer/memcpy-2.c
- 514217ce51b9ac79af7a07592d1e878b  gcc/testsuite/gcc.dg/analyzer/memcpy-pr107882.c
  9c02a73028cac042acd872f0880e838c  gcc/testsuite/gcc.dg/analyzer/memmove-1.c
- 039e14e5522dc7ae2630c4abefa8173f  gcc/testsuite/gcc.dg/analyzer/memset-1.c
- 669fd539af0a545567f25d8aa7b91bd0  gcc/testsuite/gcc.dg/analyzer/memset-2.c
  3a40f2fbe201a2ed74b291bb546e345d  gcc/testsuite/gcc.dg/analyzer/memset-CVE-2017-18549-1.c
  b867e2dbe9886d21b384558c692736d3  gcc/testsuite/gcc.dg/analyzer/named-constants-Wunused-macros.c
  249e92fa7bb08b66f184515348adf910  gcc/testsuite/gcc.dg/analyzer/named-constants-via-command-line.c
  0605ec7df17825d30fe4f6374f77bbe9  gcc/testsuite/gcc.dg/analyzer/named-constants-via-enum-and-macro.c
  2452e15cec3740876b29d1965e9493ef  gcc/testsuite/gcc.dg/analyzer/named-constants-via-enum.c
- 0c0049b78b7d635c54221da0f1405b15  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-2.c
- e052f140a24235b21cd8ca14cc572309  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-3.c
- c0d536eb878756e8abcb266bdb84c0ca  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-4.c
- f2ef41567ee028e2c9a0b2dcc93610d5  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-empty.c
  48af698d604d6cf95b9b6eef5ebccf8c  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-gc.c
- 8ca03489a7a16008cda28b311d2ad31d  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-traditional.c
- 61af2386834b57be29eb9039ab3e0c5d  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-undef.c
  213c59cf6fda65fb41294c9ac6b79be6  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros.c
! e4cc36b1c03592d61e37db6479bc397d  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-1.c
! c52e42e884d37da5eaf5f2b75dbac21b  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c
! fdb76ae36384216e00d153014c92f251  gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c
! cbe7a2dcfa8b9b5941874902c24dabac  gcc/testsuite/gcc.dg/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early-O2.c
! 54c0075434c52fc8202c1a96a981138b  gcc/testsuite/gcc.dg/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early.c
! 42e7e6b578b91216eba64c89c03896bb  gcc/testsuite/gcc.dg/analyzer/null-deref-pr108400-SoftEtherVPN-WebUi.c
! 4bffaf4df31b8a44852f1708ee5ecdb9  gcc/testsuite/gcc.dg/analyzer/null-deref-pr108806-qemu.c
! c9face5eb282b0e7d42da3a3503a64f5  gcc/testsuite/gcc.dg/analyzer/null-deref-pr108830.c
! 0d02ed8e1b5ac37f6e2d0eec884933c1  gcc/testsuite/gcc.dg/analyzer/omp-parallel-for-1.c
! 43dcd48b6c73f9d8d64b95d20f4581b4  gcc/testsuite/gcc.dg/analyzer/omp-parallel-for-get-min.c
  aaddc4b9a407ce80be75f1c757af9df4  gcc/testsuite/gcc.dg/analyzer/operations.c
- c76a072d603737e8a9ce384e4cf89273  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-1.c
- 654cf2216de99aef352cbc6284927eed  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-2.c
- 010805505962cb3ca5a783127e374794  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-3.c
  3b27232f5cf255ca8253bb7b23b7a3c0  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-4.c
- 443c526a8f09d572552f878c3f1207b6  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-5.c
  51ae5882c3c42881ceafdbf1a92e54c3  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-container_of.c
! 26b89903a9c16c999eb9f1a1442ba192  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-coreutils.c
! 60857d347c63aa7ed3234fed1dc5ec66  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-curl.c
  4cf772bd692044b2e359f8ec7ce1b3ee  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-multiline-1.c
  6dfa34d80808ee7889c5d826e5e205b8  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-multiline-2.c
- 525e0bc1850a84e8e7242a4f6db33b2f  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-read-char-arr.c
- 98843c5223809f4a124d12a592435fac  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-read-int-arr.c
- 8bc1b2dd538d5c16c37b8b5bf724a4cc  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-read-struct-arr.c
  8e72b3602a293395949616541ab8ff04  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-realloc-grow.c
- 0c8b585fca3b911ecbe64cb6700e0802  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-write-char-arr.c
- 1e983ca7a4b3b1b4b201607210aedfaf  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-write-int-arr.c
- e4c3643265721b24d21f9763581d569d  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-write-struct-arr.c
  f860abacfff9f0f438125c3b6af20e40  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-zero.c
- 7c6c9ed633de8bd71c9e5bf5ec95ceb7  gcc/testsuite/gcc.dg/analyzer/params-2.c
  7cc16c21f19526f1926009cff6d0e22f  gcc/testsuite/gcc.dg/analyzer/params.c
! 4d166a6392bd44e453b465258f187cd0  gcc/testsuite/gcc.dg/analyzer/paths-1.c
! 25979d0595f5e4da39288a37576604b7  gcc/testsuite/gcc.dg/analyzer/paths-1a.c
! 7a5be82eddd4e1df5ecb4f1b14585036  gcc/testsuite/gcc.dg/analyzer/paths-2.c
! db94fe63d590662e55109a2a7e5e8fe8  gcc/testsuite/gcc.dg/analyzer/paths-3.c
! b2f9a5491dd667376463503a6098b666  gcc/testsuite/gcc.dg/analyzer/paths-4.c
! 324a76012fa37a5e46e7862f10d0b4ca  gcc/testsuite/gcc.dg/analyzer/paths-5.c
! e743e8bda033473fcaea2882346cd62e  gcc/testsuite/gcc.dg/analyzer/paths-6.c
! 58de178e30758a2cbc22f446455554a1  gcc/testsuite/gcc.dg/analyzer/paths-7.c
! 5d0ae057d107f23b1484b5e6f2032230  gcc/testsuite/gcc.dg/analyzer/paths-8.c
! b818695de20677346ff28a3913c7b163  gcc/testsuite/gcc.dg/analyzer/pattern-test-1.c
! de88cc940a155308bb436a246da730b9  gcc/testsuite/gcc.dg/analyzer/pattern-test-2.c
! 9cb68fed0c8d449d4662e8c12866a2f9  gcc/testsuite/gcc.dg/analyzer/phi-1.c
  08c8643d827be311b98875441004c1ab  gcc/testsuite/gcc.dg/analyzer/phi-2.c
  af8b06f18b2ffd74d5cfdc6557523f17  gcc/testsuite/gcc.dg/analyzer/pipe-1.c
! 506942e75a5af88120c41f50101e3552  gcc/testsuite/gcc.dg/analyzer/pipe-glibc.c
! 6edeb1e95fe0400f413338830db36fe5  gcc/testsuite/gcc.dg/analyzer/pipe-manpages.c
! 504cd57ec0a0e6b768eaedede8d25c6c  gcc/testsuite/gcc.dg/analyzer/pipe-pr107486.c
  9da3ee312a53989520c6f6fd2a0a2e2a  gcc/testsuite/gcc.dg/analyzer/pipe-void-return.c
  2a2f495dec7f278925ae67dee036fcc1  gcc/testsuite/gcc.dg/analyzer/pipe2-1.c
- 8704d0b888bfd7cbf5c7f8dfbb9f5610  gcc/testsuite/gcc.dg/analyzer/pointer-merging.c
  3f583dbde80b3efe12b65cefa6758f9f  gcc/testsuite/gcc.dg/analyzer/pr100011.c
- 2a829c368b1b687fbe16de043fb0b895  gcc/testsuite/gcc.dg/analyzer/pr100546.c
- e0e00f8ff65a3533430a5abc47af4315  gcc/testsuite/gcc.dg/analyzer/pr100615.c
  62c29c74bff34938d246ad62ccf4f5ac  gcc/testsuite/gcc.dg/analyzer/pr101143.c
- 30e835c53c7baf5d03ea63776d856b43  gcc/testsuite/gcc.dg/analyzer/pr101503.c
  71129fa06e1b067223c303245054200a  gcc/testsuite/gcc.dg/analyzer/pr101547.c
- 67f1876dabdfe679ca73c0ea199f4d5a  gcc/testsuite/gcc.dg/analyzer/pr101570.c
- d7fdd42f2b44dc1e43a9f30292acc743  gcc/testsuite/gcc.dg/analyzer/pr101721.c
  8e16196108463716a2cfc4f344af5d64  gcc/testsuite/gcc.dg/analyzer/pr101837.c
  8e41b138580137917cf3c8483f35abbb  gcc/testsuite/gcc.dg/analyzer/pr101875.c
- 5e17a4a12322ce1cfa388df9e200f06e  gcc/testsuite/gcc.dg/analyzer/pr101962.c
  60b2a5e408979c204812ee09c755be9d  gcc/testsuite/gcc.dg/analyzer/pr101983-main.c
  9af3fc4e1a3e5925599c434e4d8ec749  gcc/testsuite/gcc.dg/analyzer/pr101983-not-main.c
! e84f664468060451e3cb304c75cea3d6  gcc/testsuite/gcc.dg/analyzer/pr102692-2.c
! 7eea22d259719a44f082976446139ac0  gcc/testsuite/gcc.dg/analyzer/pr102695.c
! c28450e9d92ca1e038dff38991e685d4  gcc/testsuite/gcc.dg/analyzer/pr103217-2.c
! 8bfbe18263e57b8fb27c6add9314239b  gcc/testsuite/gcc.dg/analyzer/pr103217-3.c
! 89328508480588c2f80fa5160078a764  gcc/testsuite/gcc.dg/analyzer/pr103217-4.c
! 682c85a8b33655e8e6969f2b149c32c6  gcc/testsuite/gcc.dg/analyzer/pr103217-5.c
! 4724fd5727eb9650b27a497a2660bbaa  gcc/testsuite/gcc.dg/analyzer/pr103217.c
! dcc4c6bd6d83e4936d09cdeae09d3666  gcc/testsuite/gcc.dg/analyzer/pr103526.c
! cfd3f0c9f53b040ab3ea2a88856d3a72  gcc/testsuite/gcc.dg/analyzer/pr103892.c
! 7a58cd43a2a659fa092cdd52995bac99  gcc/testsuite/gcc.dg/analyzer/pr104029.c
! 4b6bcda7fd7ddd782af1e52f3db973fe  gcc/testsuite/gcc.dg/analyzer/pr104062.c
! b37b97c145c4e03b92cc527ed777ccc3  gcc/testsuite/gcc.dg/analyzer/pr104089.c
  15fc590ce739292d51fb1d190f57dc81  gcc/testsuite/gcc.dg/analyzer/pr104224-split.c
  df5dee0e0e92ecf4b97f80a2aff5b9de  gcc/testsuite/gcc.dg/analyzer/pr104224.c
! 2476fa0b2e91faf3777b4bf56eaf8ea9  gcc/testsuite/gcc.dg/analyzer/pr104308.c
! 9a3e569f28c1d0f11b573f8af0d0bd9f  gcc/testsuite/gcc.dg/analyzer/pr104369-1.c
! ab0c16bc57aaaccd7ce9c716b2063797  gcc/testsuite/gcc.dg/analyzer/pr104369-2.c
  193bbc40b5d1663602f78ebcf3ec7d09  gcc/testsuite/gcc.dg/analyzer/pr104417.c
  740583ce32547a8d87a3cd63946b90f2  gcc/testsuite/gcc.dg/analyzer/pr104434-const.c
  bd08c3118e654f97ec8726f35f798dfe  gcc/testsuite/gcc.dg/analyzer/pr104434-nonconst.c
  0eae8bc57da919ca1bbfbe4b5652153e  gcc/testsuite/gcc.dg/analyzer/pr104434.h
- 3dfd74edcc351f3dff957bcaadb54f2c  gcc/testsuite/gcc.dg/analyzer/pr104452.c
- 42995504c3a9b54cbe98514bec88a47e  gcc/testsuite/gcc.dg/analyzer/pr104524.c
  9f88d9ad0d5d0c458ae8f1fe6079c8f5  gcc/testsuite/gcc.dg/analyzer/pr104560-1.c
- 7335c8c3d4d1cf3d8915f83b7e5c549e  gcc/testsuite/gcc.dg/analyzer/pr104560-2.c
  20851e8be3d1f3da1cf23c165c453e68  gcc/testsuite/gcc.dg/analyzer/pr105074.c
- ff3edd5d7ef8daa0dbc4754f1e087dea  gcc/testsuite/gcc.dg/analyzer/pr105087-1.c
- 31e66e50ca6137c903edb9a5f1c33bb8  gcc/testsuite/gcc.dg/analyzer/pr105087-2.c
- 7db1771ee016e8eff4a7d43565e82ac4  gcc/testsuite/gcc.dg/analyzer/pr105252.c
  51c44ec6bdff5d8fc63586489dc05809  gcc/testsuite/gcc.dg/analyzer/pr105365.c
  c5aaf610718cba5c59ae6937f43eb7db  gcc/testsuite/gcc.dg/analyzer/pr105366.c
- 2ae82b77b6e92bafec5d986c9eae1ea5  gcc/testsuite/gcc.dg/analyzer/pr105783.c
  148ff0f73f935f255a7bb3cd60ddbf95  gcc/testsuite/gcc.dg/analyzer/pr106181.c
! f731f4f8612f8ee22eb1ea13cf0aec0f  gcc/testsuite/gcc.dg/analyzer/pr106394.c
! 8af52372a76611b936c16a76eb1d0104  gcc/testsuite/gcc.dg/analyzer/pr106539.c
! cdc8616a7ffe3b90347da98ea49fbe0c  gcc/testsuite/gcc.dg/analyzer/pr106845.c
! 1cceccf471f278322fcfe86b0544b088  gcc/testsuite/gcc.dg/analyzer/pr107345.c
! 4d9dda4c090b351e888380f256fdf703  gcc/testsuite/gcc.dg/analyzer/pr61861.c
! 242590eedae3d5fb56d59f94b5ce9dbf  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-signed-char.c
! 3b715088546567d4c2cc30cc26417f11  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-simplified.c
! 562df96159e2b65ad173b44da3227274  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-unsigned-char.c
! ddd38a6cae93f735290778e9e2854548  gcc/testsuite/gcc.dg/analyzer/pr93290.c
! 571c9ec61e278add06ca460a7d410139  gcc/testsuite/gcc.dg/analyzer/pr93352.c
! 78f6a2bac494d559babbd8d3edebe61a  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility-2.c
! d4232896f839f8b1b10297172b034331  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility-3.c
! 886770a134200e9f837705535ed475a3  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility.c
! 34c8a40339a82547bfbde334593d1f9a  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-simplified.c
  0ddb73cbb7d38d16a36e6ec4f7fc183e  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias.c
  a593341d1b08c788e70141f3755b74a7  gcc/testsuite/gcc.dg/analyzer/pr93375.c
! 9c87eeb676e9d387f0a455fb77c42242  gcc/testsuite/gcc.dg/analyzer/pr93382.c
! 8865edf8f256b0fc34c1ce3be6c823d2  gcc/testsuite/gcc.dg/analyzer/pr93457.c
! 87cc4e2cb508a70da43eb0d9e6c83cd9  gcc/testsuite/gcc.dg/analyzer/pr93546.c
! 9d197d56580541ddcf5a28595b6fcd8a  gcc/testsuite/gcc.dg/analyzer/pr93547.c
! dc22921b1f8adf04e247fd77f0e4622d  gcc/testsuite/gcc.dg/analyzer/pr93669.c
! 6c8c208f91e712fb856e8b40b7a757c1  gcc/testsuite/gcc.dg/analyzer/pr93695-1.c
! d092c910db92eea5975a648161bb95f1  gcc/testsuite/gcc.dg/analyzer/pr93938.c
! d562f145d761d598c4cf5d581b61e546  gcc/testsuite/gcc.dg/analyzer/pr94047.c
! 872037e09757aa86b694f245b71c154d  gcc/testsuite/gcc.dg/analyzer/pr94099.c
! 76559ba88816dd3d385d56090dd3e037  gcc/testsuite/gcc.dg/analyzer/pr94105.c
! b21eff0f44ad6505379993b9408fb518  gcc/testsuite/gcc.dg/analyzer/pr94362-1.c
! 26e11daef97e39d6db3d2431e8863ce9  gcc/testsuite/gcc.dg/analyzer/pr94362-2.c
! 2b860df7bd7544da2d884a29b5b8270b  gcc/testsuite/gcc.dg/analyzer/pr94399.c
! 9c96000a1a0a853d0179d8fd11c65e55  gcc/testsuite/gcc.dg/analyzer/pr94447.c
  e5b15ee45fe6adafc7624ced3274120b  gcc/testsuite/gcc.dg/analyzer/pr94458.c
  92ed6522f4d8b7a542dd38a2a929c2e4  gcc/testsuite/gcc.dg/analyzer/pr94579.c
! 0c775d0f9074e6cf5558982e3f78d348  gcc/testsuite/gcc.dg/analyzer/pr94596.c
! 1be53c5b37cf4078b3541a25345038a4  gcc/testsuite/gcc.dg/analyzer/pr94639.c
! fd0f492f05905f9735a1c3fb5aba65e2  gcc/testsuite/gcc.dg/analyzer/pr94640.c
! 87350f01f0e843ad0a8ac8470aab44a3  gcc/testsuite/gcc.dg/analyzer/pr94688.c
  746bbf11842faa157eaa0c33fef10249  gcc/testsuite/gcc.dg/analyzer/pr94689.c
- 6cd931319824cc8853e7a562f4f1b30a  gcc/testsuite/gcc.dg/analyzer/pr94732.c
  0026c538f0e20f37842630fe25b7d4c0  gcc/testsuite/gcc.dg/analyzer/pr94754.c
- 0556ddfd9dd826211ba6a53ea757ed52  gcc/testsuite/gcc.dg/analyzer/pr94839.c
- ef42f03d3bb8caac2a24c9aea94f1103  gcc/testsuite/gcc.dg/analyzer/pr94851-1.c
- eae76672134a123479373b9f9bbac641  gcc/testsuite/gcc.dg/analyzer/pr94851-2.c
- 9ea2ed915597b6c25fabf8d6beb5fffd  gcc/testsuite/gcc.dg/analyzer/pr94851-3.c
- e25cdbeef846ec06d9e2bc17cf57bb2b  gcc/testsuite/gcc.dg/analyzer/pr94851-4.c
  5706bdced6988827930712af70d3cd5c  gcc/testsuite/gcc.dg/analyzer/pr94858-1.c
  620f1057b370b6e564abca5a9e79231d  gcc/testsuite/gcc.dg/analyzer/pr94858-2.c
  f538c8eccbeef559ece3b2f12e4a65e8  gcc/testsuite/gcc.dg/analyzer/pr95000-1.c
! de6895701db3c05fb80ecd2032f4075f  gcc/testsuite/gcc.dg/analyzer/pr95026.c
! da360e3b0e9156b732e2cd7f740dacb8  gcc/testsuite/gcc.dg/analyzer/pr95152-4.c
! 174c15d3dd4d02fbcfb284b9da683c75  gcc/testsuite/gcc.dg/analyzer/pr95152-5.c
! cad22848bbe62237ae68e9fbe69f44e1  gcc/testsuite/gcc.dg/analyzer/pr95240.c
! d0a6505c532b4244902d3dd3501af977  gcc/testsuite/gcc.dg/analyzer/pr96598.c
! a18aec5c928fb5cf0238f90bc5890720  gcc/testsuite/gcc.dg/analyzer/pr96611.c
! 8a24df64133f07cf853e0d0f2d909c52  gcc/testsuite/gcc.dg/analyzer/pr96639.c
  29816e82bef6bf88156d55346d54b72f  gcc/testsuite/gcc.dg/analyzer/pr96642.c
- 1cc9fc986e0c43dbfa3116f2b887d305  gcc/testsuite/gcc.dg/analyzer/pr96644.c
- 8122e564ee9470c65abe46b95a4e01e0  gcc/testsuite/gcc.dg/analyzer/pr96646.c
- dbff5f371056a62a0166453b66a4e27a  gcc/testsuite/gcc.dg/analyzer/pr96648.c
- 7355069be28eed8d00160ea24380a9a5  gcc/testsuite/gcc.dg/analyzer/pr96650-1-notrans.c
- d9c33cd022fc3054544749865b40e10f  gcc/testsuite/gcc.dg/analyzer/pr96650-1-trans.c
- aa029c0bea41b0e118a8ca1f50d23b60  gcc/testsuite/gcc.dg/analyzer/pr96650-2-notrans.c
- 8493678def139ca7a82b058857427371  gcc/testsuite/gcc.dg/analyzer/pr96650-2-trans.c
- 6839dc70e12ccfcef828a166458c4e34  gcc/testsuite/gcc.dg/analyzer/pr96651-1.c
  e1cc82ec2de0b3a6c6717f542456a7f7  gcc/testsuite/gcc.dg/analyzer/pr96651-2.c
! d777926cfd1375880c4f587b8ba11656  gcc/testsuite/gcc.dg/analyzer/pr96653.c
! 93d3de68df9d3d71a9a39d6fc15caaee  gcc/testsuite/gcc.dg/analyzer/pr96699.c
! 59b287a3143a88ac8698f48e67bca083  gcc/testsuite/gcc.dg/analyzer/pr96705.c
! 4ca9c431f41a72254ed6c43b62aa8ddb  gcc/testsuite/gcc.dg/analyzer/pr96713.c
! 5c78c63d9f9e9ac1898eb1f4ffc56f65  gcc/testsuite/gcc.dg/analyzer/pr96764.c
! 054ab1c927a55fe5f67ab96348c0bfac  gcc/testsuite/gcc.dg/analyzer/pr96777.c
! 3675cea43058febb213ff4846d03855f  gcc/testsuite/gcc.dg/analyzer/pr96792.c
! e604e08fb12bb423df63eacb82d3dafa  gcc/testsuite/gcc.dg/analyzer/pr96841.c
! ec51c705859096428ddf0f549b1d2378  gcc/testsuite/gcc.dg/analyzer/pr96860-1.c
! b67ccef1b701357aa6aefedbaa975f0e  gcc/testsuite/gcc.dg/analyzer/pr96860-2.c
! e90b6e64cc366c53200b591dd4d37db6  gcc/testsuite/gcc.dg/analyzer/pr97029.c
! 5bd94fca89134ed6b5d3236ba6cc6a31  gcc/testsuite/gcc.dg/analyzer/pr97072.c
! d01f45d8713ae323b82e7597f5c3ee13  gcc/testsuite/gcc.dg/analyzer/pr97074.c
! e2da6e0e14d8c8ac966c0b44386c520d  gcc/testsuite/gcc.dg/analyzer/pr97130.c
! 2c0f51e668635fdd7cc909b70544228f  gcc/testsuite/gcc.dg/analyzer/pr97233.c
! 87cd37c72323b82cb97b0d3004f56d53  gcc/testsuite/gcc.dg/analyzer/pr97514.c
! 24a26a508b16bde1fcc26b2aed77385b  gcc/testsuite/gcc.dg/analyzer/pr97568.c
! 34f442bdd073980116520abe424e006f  gcc/testsuite/gcc.dg/analyzer/pr97608.c
! 2676b5a12adc3dc9e19dd9c888bdf9ce  gcc/testsuite/gcc.dg/analyzer/pr97668.c
! 9b541aec01bec34ac52fa0ef2c5131f0  gcc/testsuite/gcc.dg/analyzer/pr98073.c
  31a9bfe2d10d9507c3d3caf182f7947b  gcc/testsuite/gcc.dg/analyzer/pr98293.c
- 3733787070f9a95f53c9511db298d0f0  gcc/testsuite/gcc.dg/analyzer/pr98564.c
- 3bde06fdbe5781b1a2192331d50f515a  gcc/testsuite/gcc.dg/analyzer/pr98575-1.c
- bd0446dc7bfc92ba7fa31dec5245fdc8  gcc/testsuite/gcc.dg/analyzer/pr98580-a.c
- ec3f6b6ab51e286be338a54b446589e9  gcc/testsuite/gcc.dg/analyzer/pr98580-b.c
  e30ab4cce96a744448409fe77f3c5efa  gcc/testsuite/gcc.dg/analyzer/pr98599-a.c
  b8dedb68ebd6efc83061dc56ccf05a12  gcc/testsuite/gcc.dg/analyzer/pr98599-b.c
- fb4c327deb6f526b972b1ec3ba4f4a8c  gcc/testsuite/gcc.dg/analyzer/pr98628.c
- a139a65f55f3b94f92a93d5819d999ff  gcc/testsuite/gcc.dg/analyzer/pr98918.c
- 7cf1433308350ac57be8b451b3a2f524  gcc/testsuite/gcc.dg/analyzer/pr98969.c
  11ed5b2e2254591f0a152015c2b66245  gcc/testsuite/gcc.dg/analyzer/pr99042.c
  db49279a7bbbbb8a7993d65e3a0ed602  gcc/testsuite/gcc.dg/analyzer/pr99044-1.c
! 7197855d9b8070e963d693ec7f9cd794  gcc/testsuite/gcc.dg/analyzer/pr99044-2.c
! e32512834e5d006e06d684d8fca85fbe  gcc/testsuite/gcc.dg/analyzer/pr99193-1.c
! c02e88827b0942e66ceabd0e09c7e937  gcc/testsuite/gcc.dg/analyzer/pr99193-2.c
! 6f197eebc3f8e0cff9ea902203296259  gcc/testsuite/gcc.dg/analyzer/pr99193-3.c
  dc948ef5af4dbb9b2512860f38fde8ed  gcc/testsuite/gcc.dg/analyzer/pr99269.c
- 173e7ddffba3cdd78fd1dfabdae58d98  gcc/testsuite/gcc.dg/analyzer/pr99716-1.c
- e0d8ca4cfb2ab1c4a42a62807ee64462  gcc/testsuite/gcc.dg/analyzer/pr99716-2.c
- 0c63418b3608af001507560347c90d57  gcc/testsuite/gcc.dg/analyzer/pr99716-3.c
  cbb6adcc2621ebf0e7bda4537a8d8250  gcc/testsuite/gcc.dg/analyzer/pr99771-1.c
- 2e189e0b1932fd120be600a70c729188  gcc/testsuite/gcc.dg/analyzer/pr99774-1.c
  eed361a309e3745bd4ef7b47ad455045  gcc/testsuite/gcc.dg/analyzer/pr99774-2.c
  999daf76457c2842454c315884e1181c  gcc/testsuite/gcc.dg/analyzer/pr99886.c
! e7ec58c8488f858c6b9c88105194899a  gcc/testsuite/gcc.dg/analyzer/pr99906.c
! 8c73c87efb75a0bef0c4a982a728d2a5  gcc/testsuite/gcc.dg/analyzer/pragma-1.c
! c302e44e12d48022ecebf9039af2c645  gcc/testsuite/gcc.dg/analyzer/pragma-2.c
! cf6fbfbf8f4f1f945c5e7701d33fe4d4  gcc/testsuite/gcc.dg/analyzer/putenv-1.c
  ee803c3283890e05fed6552fbff9532c  gcc/testsuite/gcc.dg/analyzer/read-pr108661.c
- 45cde6a70e0181df10af312e24e4aef4  gcc/testsuite/gcc.dg/analyzer/realloc-1.c
- ad012545a694fac57685010f86ea11d7  gcc/testsuite/gcc.dg/analyzer/realloc-2.c
- 9a0e6bd4cb78e44f3c6874d389ff719f  gcc/testsuite/gcc.dg/analyzer/realloc-3.c
- 7f9a58dbe3d9e59cd0a8e15a8a931a40  gcc/testsuite/gcc.dg/analyzer/realloc-4.c
- 992c92f21bf2037b2feff8f20d13814a  gcc/testsuite/gcc.dg/analyzer/realloc-5.c
- 80fa663011e0905b551ff26c0f4ab6aa  gcc/testsuite/gcc.dg/analyzer/refcounting-1.c
- eb90114c90a666d2fc417737f203862d  gcc/testsuite/gcc.dg/analyzer/rhbz1878600.c
- b7184568f0f50651f8fbd1cffcf54f18  gcc/testsuite/gcc.dg/analyzer/sarif-pr107366.c
- 65666ac62f3a2ea02329e2df4a3dc80b  gcc/testsuite/gcc.dg/analyzer/scope-1.c
  a3e079fdb0af6c6373526bb5b0925662  gcc/testsuite/gcc.dg/analyzer/sensitive-1.c
  235b23e579165b5bc29ded1884282ac0  gcc/testsuite/gcc.dg/analyzer/setjmp-1.c
- c902cc7285dfa4f09d6212b2507fac70  gcc/testsuite/gcc.dg/analyzer/setjmp-2.c
  179069b5df1a39fd4f81202fade56325  gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
  fc3a3a42af2e0edb17f7af2cf30f4343  gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
- 621d7a83afd4ca0f2772b21c5dd08a48  gcc/testsuite/gcc.dg/analyzer/setjmp-5.c
  c04d5fc1dea77f1e99f32e5ee47e000f  gcc/testsuite/gcc.dg/analyzer/setjmp-6.c
  27cf1c2faaa334e8717833bc2394aa77  gcc/testsuite/gcc.dg/analyzer/setjmp-7.c
  51e087d07482f17215c8c8ac1ecf70b6  gcc/testsuite/gcc.dg/analyzer/setjmp-7a.c
  6fd7af9fe85c8fa521ef73ff135dd1af  gcc/testsuite/gcc.dg/analyzer/setjmp-8.c
- 24ae6e59284354d0ed2f5e6a015abbb3  gcc/testsuite/gcc.dg/analyzer/setjmp-9.c
- 8588e0ec348d5eef2edf586ce087d26b  gcc/testsuite/gcc.dg/analyzer/setjmp-pr109094.c
  93fc25e0ff71cfdd7223fa0bb7841517  gcc/testsuite/gcc.dg/analyzer/setjmp-pr93378.c
  0cb4c7a3599bf002d40a3b5ac76644aa  gcc/testsuite/gcc.dg/analyzer/signal-1.c
  a6cb10f4e6f6aa799d4c4c4aea433d9d  gcc/testsuite/gcc.dg/analyzer/signal-2.c
  e98f83f7b7082df7aa09ee75584ec411  gcc/testsuite/gcc.dg/analyzer/signal-3.c
- 1adf6dece1a903ab46c7a61fa7e2014e  gcc/testsuite/gcc.dg/analyzer/signal-4a.c
- 6da7042834e11fe11d26cbdd4e7031a4  gcc/testsuite/gcc.dg/analyzer/signal-4b.c
  e9a1ff715baaef06ea9e16086ff0f48c  gcc/testsuite/gcc.dg/analyzer/signal-5.c
  c3d6877dc6b6aaf933b97e6748b315cc  gcc/testsuite/gcc.dg/analyzer/signal-6.c
  7c0bf2888cac40134f61a3ceca65cf6c  gcc/testsuite/gcc.dg/analyzer/signal-exit.c
--- 39936,40170 ----
  b3869c9bd68bb9659f230f48bf56f83c  gcc/testsuite/gcc.dg/always_inline.c
  5ad6d0d750af2e3c8488e96cfa1aa195  gcc/testsuite/gcc.dg/always_inline2.c
  99fe8a4ba9676a42a20bb593c81371e0  gcc/testsuite/gcc.dg/always_inline3.c
  f69e8cd9fd4e56cc65e71a4dfef997a4  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-dedupe-issue-2.c
  1a5f9e3123194efaadd5fb7ab38396df  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-dedupe-issue.c
  86d6d6ec23a415364e5fca0ca3cc5e2e  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-minimal.c
  78a5d2ec1775604f51f65022cb368643  gcc/testsuite/gcc.dg/analyzer/CWE-131-examples.c
  4656af16261a46b3b0a549b8e725fb72  gcc/testsuite/gcc.dg/analyzer/SARD-tc1909-stack_overflow_loop.c
  05d3112c6482099e76531347972f0253  gcc/testsuite/gcc.dg/analyzer/SARD-tc293-basic-00045-min.c
  d396ac30a4549605a8b91e88fb32d4e3  gcc/testsuite/gcc.dg/analyzer/SARD-tc841-basic-00182-min.c
  ae69c46005567e7d1eb865066adcb226  gcc/testsuite/gcc.dg/analyzer/abs-1.c
  2fbe7c43718aa946f2698455261a0c9f  gcc/testsuite/gcc.dg/analyzer/allocation-size-5.c
! a1175daef070a7eaed078acb4c54a18e  gcc/testsuite/gcc.dg/analyzer/analyzer-decls.h
! d05510da895df92f398f9f2a3ab3daf7  gcc/testsuite/gcc.dg/analyzer/analyzer.exp
  7145b6f3637a739ae894c4e1ebe7ee08  gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-1.c
  d780518e28005b87079c2be1a96dab0e  gcc/testsuite/gcc.dg/analyzer/asm-x86-lp64-1.c
! 0dedf67a08edba5166d29489ccfd969c  gcc/testsuite/gcc.dg/analyzer/atomic-builtins-1.c
! f0f367208592d7230b3e5a8859fcdc2b  gcc/testsuite/gcc.dg/analyzer/atomic-types-1.c
! 823ae051f67de86d0b580c3046202e0f  gcc/testsuite/gcc.dg/analyzer/attr-format-1.c
  7e04586dfdf34765be05ca4a006473a3  gcc/testsuite/gcc.dg/analyzer/attr-malloc-1.c
  e335d916bb1026d6d9d508119e1eb9e8  gcc/testsuite/gcc.dg/analyzer/attr-malloc-pr108252.c
  9424116fb3a7804ff0f4eac8cf131a38  gcc/testsuite/gcc.dg/analyzer/attr-nonnull-pr106325.c
  c480119897bf409501913cf24fea555c  gcc/testsuite/gcc.dg/analyzer/attribute-nonnull.c
  215f65c0f414779a43cca081e7a96b0b  gcc/testsuite/gcc.dg/analyzer/bitfields-1.c
! 1ed6352fec1a6ed0761dbc4f0c5a428d  gcc/testsuite/gcc.dg/analyzer/boxed-malloc-1.c
  b079556a417329a74b2a9c1f780cc54d  gcc/testsuite/gcc.dg/analyzer/builtins-pr107565.c
  de1c3d5d0b46c866fdd4ebeca363175b  gcc/testsuite/gcc.dg/analyzer/bzero-1.c
  722fc329175bc9af28757071b8488205  gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c
  6958986d14e5b5d82a6e5d8d1a4253fe  gcc/testsuite/gcc.dg/analyzer/call-summaries-errno.c
! 48f9ab28bf911414a190e81a25e1b72b  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr107072.c
! e26be91157108de0adb52b0969803be1  gcc/testsuite/gcc.dg/analyzer/call-summaries-pr114473.c
  cdf915de6aa445e00b8a320d8b7b09dc  gcc/testsuite/gcc.dg/analyzer/clobbers-2.c
  2faef601592f61931a6a0fa8bf058245  gcc/testsuite/gcc.dg/analyzer/combined-conditionals-1.c
  a60083781c2444fc0afb93119adde9cd  gcc/testsuite/gcc.dg/analyzer/compound-assignment-2.c
  ea761a32a87e7dd14f7f4d83472c0e79  gcc/testsuite/gcc.dg/analyzer/compound-assignment-3.c
! 35edd75cc1b9d2fe7a9c53aeed561185  gcc/testsuite/gcc.dg/analyzer/computed-goto-pr110529.c
  a9211e3f54bc8dd31aed70c7c3f9b905  gcc/testsuite/gcc.dg/analyzer/conditionals-3.c
  1c0a20304d7da2a80255211819446599  gcc/testsuite/gcc.dg/analyzer/conditionals-notrans.c
  8cfdc88c0b5a96aa0b303a5409085dfc  gcc/testsuite/gcc.dg/analyzer/conditionals-trans.c
! d83495ad9038167f7d08af314e7244a4  gcc/testsuite/gcc.dg/analyzer/data-model-1.c
  fbf171c2475c36b54306b4fa689eee97  gcc/testsuite/gcc.dg/analyzer/data-model-10.c
  01dd89f886f8267655367177e67d8a7f  gcc/testsuite/gcc.dg/analyzer/data-model-13.c
  1360165d72546f0514e05f720ac9fe62  gcc/testsuite/gcc.dg/analyzer/data-model-15.c
  8985d4acdbaec3ea42e821c7cd37e427  gcc/testsuite/gcc.dg/analyzer/data-model-16.c
  2dd1b0e38379c6d256ce6fb601769518  gcc/testsuite/gcc.dg/analyzer/data-model-17.c
  7eb55f055f46c9020d8e30ecaf87a8ec  gcc/testsuite/gcc.dg/analyzer/data-model-19.c
! 371eec1ad04a75769d9181344d71fa85  gcc/testsuite/gcc.dg/analyzer/data-model-20a.c
  60c1562137794e4c7d5ca3e93f330449  gcc/testsuite/gcc.dg/analyzer/data-model-23.c
  8b3936ae8969f3a1152ef7885922b4ad  gcc/testsuite/gcc.dg/analyzer/data-model-5.c
  50de8dcfc0305e565c234999fa450fed  gcc/testsuite/gcc.dg/analyzer/data-model-5b.c
  d932e32ee23667f73c2b38527aaef2a9  gcc/testsuite/gcc.dg/analyzer/data-model-5c.c
  be7aafbe051db1d04fdb6dda26644e29  gcc/testsuite/gcc.dg/analyzer/data-model-7.c
! 2c7de07861c307654f6b81f8ba0df5ff  gcc/testsuite/gcc.dg/analyzer/data-model-9.c
  7cecbe3ff8f0a8faf72f48437253394d  gcc/testsuite/gcc.dg/analyzer/deref-before-check-1.c
  2b005f545877795663ba55a328aa9b60  gcc/testsuite/gcc.dg/analyzer/deref-before-check-macro.c
! c8a73f41d46e8981bed6ba7c504f0911  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr113253.c
  64840faa76375f58a4f02239bbee2133  gcc/testsuite/gcc.dg/analyzer/describe-1.c
  5a46fc2ecfd967da0040babb4bca6499  gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c
! bade44d286b4a4530bb4f6218960f1cc  gcc/testsuite/gcc.dg/analyzer/doom-s_sound-pr108867.c
  0ec3d38b15165ad7732c142bfbb0329f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-a.c
  5da5e08e5a3b9fac183936207016118f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-b.c
  9bd730005568e90798a30108ba063dd2  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1.h
! 83e8dbac3cd269425993b4f899d4c990  gcc/testsuite/gcc.dg/analyzer/edges-1.c
! f72a12c23bbd71391c3777d721ec95a8  gcc/testsuite/gcc.dg/analyzer/error-1.c
  959242e188dc1726d5f00627897522c2  gcc/testsuite/gcc.dg/analyzer/error-2.c
  fb6027da0380d31038644ba5db02fce8  gcc/testsuite/gcc.dg/analyzer/explode-1.c
  10d31dc45c3f21fbd96aa46492473138  gcc/testsuite/gcc.dg/analyzer/explode-2.c
! 6e0e82d3dccb93752bd0cdb45f686bd1  gcc/testsuite/gcc.dg/analyzer/explode-2a.c
  e42c67081cc782a2fbf78edf4ad1187f  gcc/testsuite/gcc.dg/analyzer/explode-3.c
! 8f62b5cf7a905c691d35760f70585093  gcc/testsuite/gcc.dg/analyzer/explode-4.c
! 2389d74c6edc9a181e7bb75a5f9b3f82  gcc/testsuite/gcc.dg/analyzer/fd-4.c
! 0d04c4d3de4bc53762475856773f6133  gcc/testsuite/gcc.dg/analyzer/fd-accept.c
  2530d550c40182f2e415566420f1903a  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-enum.c
  489459d5b157c16e319b14cb96bdac2f  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-macros.c
! fb2336d2294d7acc31095f5698a0c26e  gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c
! e0d317f9564c9d7710b164d6bc0c000f  gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107783.c
! 8b8d424acc5a75744eb578979a50851e  gcc/testsuite/gcc.dg/analyzer/fd-bind.c
  33b580122bdc1cca2f8b3460eee00433  gcc/testsuite/gcc.dg/analyzer/fd-connect.c
! 0980fe4947e8f74eb52680d0e4f9341d  gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c
  827dcc603f79b7aa5453b7b4dfba4665  gcc/testsuite/gcc.dg/analyzer/fd-dup-1.c
! 2aa220f1632b76ede443d444df0e74a5  gcc/testsuite/gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c
! 294212571841a3f55e9a889a083d28d1  gcc/testsuite/gcc.dg/analyzer/fd-glibc-datagram-client.c
! e68d45a98a5c9f2419bc2200bddf6f57  gcc/testsuite/gcc.dg/analyzer/fd-glibc-datagram-socket.c
  983aa8eb3b385c301b0f38e058072ad2  gcc/testsuite/gcc.dg/analyzer/fd-glibc-make_named_socket.h
  dfec44c9516f74c36a586e4fcca16e64  gcc/testsuite/gcc.dg/analyzer/fd-leak-pr108252.c
! be1f00da98063e80bf865fc3bf3217d5  gcc/testsuite/gcc.dg/analyzer/fd-listen.c
  8fb341e8fe6909ce190ae756b2789975  gcc/testsuite/gcc.dg/analyzer/fd-pr108633.c
! 7b3c7fef6ff15a6a638b021a5da600ce  gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c
! 3c85fffa40e34938dec98e6387305881  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c
! 0b203af45cd2a629ff9c71166bfa1c2a  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c
! 39625ad9e0d7a4ba548df24a4eb70bd5  gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c
  0fec3e8bbcc3a193f4e6d57c5f2d57b5  gcc/testsuite/gcc.dg/analyzer/fdump-analyzer-1.c
  1761d210a631bde55c4d4207134fd68c  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107582-1.c
  e3febbf18f1dc3e8c6dbca7b8d1ca64a  gcc/testsuite/gcc.dg/analyzer/feasibility-pr107582-2.c
  b29483f2758f47b95759473be5a64ba6  gcc/testsuite/gcc.dg/analyzer/file-2.c
  74551d8bd5683960b9795e840ed3cad4  gcc/testsuite/gcc.dg/analyzer/file-CWE-1341-example.c
  60112ba55cc527ed2f374a5469b8bb21  gcc/testsuite/gcc.dg/analyzer/file-paths-1.c
! 75f588a8b419118a7d616febe28e31d0  gcc/testsuite/gcc.dg/analyzer/file-pr58237.c
! 9b3a1447e7bea99cf8e166ae40a1809a  gcc/testsuite/gcc.dg/analyzer/fopen-1.c
! 155a92eb05a1d79d891ec61b021a400d  gcc/testsuite/gcc.dg/analyzer/infinite-loop-1.c
! 2c26e875d8930244d13ad21ae7f0ac85  gcc/testsuite/gcc.dg/analyzer/malloc-1.c
! ad7c2c590985fadaba524fa5f6d48979  gcc/testsuite/gcc.dg/analyzer/malloc-4.c
  865e5f8c81482626d2e9eae5344bcf6e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-13.c
  f0aff4423fc2056f3172a11bb1c0157f  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
  bcfb83da5d02ca988bcaa7b692b3f47d  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-a.c
  f4e3e9fe67ce001d0a4d83f475ee2e1e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-b.c
  8046594199f747ea766d853de506a64d  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto-c.c
  fe31474c1de3fcecf8fc2126e5d77be5  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-lto.h
  c70af2073448635855d144cc02268df7  gcc/testsuite/gcc.dg/analyzer/malloc-many-paths-2.c
  8d7ccfbc02f689c8b6b79362b9c9cf06  gcc/testsuite/gcc.dg/analyzer/malloc-paths-10.c
! 16dcf08d021fcb4f5535d74c805f3ba6  gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c
  e73a0522f7f81259b897de6b7881df57  gcc/testsuite/gcc.dg/analyzer/malloc-reuse.c
  79dc7e451e8ed0274f282b8d09979e95  gcc/testsuite/gcc.dg/analyzer/malloc-vs-local-4.c
  ac65547952c25ba221985e37016c6fb2  gcc/testsuite/gcc.dg/analyzer/memcpy-1.c
  9c02a73028cac042acd872f0880e838c  gcc/testsuite/gcc.dg/analyzer/memmove-1.c
  3a40f2fbe201a2ed74b291bb546e345d  gcc/testsuite/gcc.dg/analyzer/memset-CVE-2017-18549-1.c
  b867e2dbe9886d21b384558c692736d3  gcc/testsuite/gcc.dg/analyzer/named-constants-Wunused-macros.c
  249e92fa7bb08b66f184515348adf910  gcc/testsuite/gcc.dg/analyzer/named-constants-via-command-line.c
  0605ec7df17825d30fe4f6374f77bbe9  gcc/testsuite/gcc.dg/analyzer/named-constants-via-enum-and-macro.c
  2452e15cec3740876b29d1965e9493ef  gcc/testsuite/gcc.dg/analyzer/named-constants-via-enum.c
  48af698d604d6cf95b9b6eef5ebccf8c  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-gc.c
  213c59cf6fda65fb41294c9ac6b79be6  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros.c
! f6eca473e81f5ce33bb1b762a1b81570  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-1.c
! ce2df64c56f969befe08b42840c421cb  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c
! b49e62432626c0897551e05e4bc5b647  gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c
! 5c1afdb0e8d48de62c20901771c1c269  gcc/testsuite/gcc.dg/analyzer/null-terminated-strings-1.c
  aaddc4b9a407ce80be75f1c757af9df4  gcc/testsuite/gcc.dg/analyzer/operations.c
  3b27232f5cf255ca8253bb7b23b7a3c0  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-4.c
  51ae5882c3c42881ceafdbf1a92e54c3  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-container_of.c
! c3c3c0b1c78522f1ea066085de181f5f  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-ascii.c
! 610ce7a6c49571d957c6eaeec5443c26  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-debug.c
! 6c7305d705a9e0fa2bcb0a6e56ab035d  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-emoji.c
! 933a0769ec4cd6ac6ec3db018f72a371  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-1-unicode.c
! 6ccd61113cd70f391253a61148d49302  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-10.c
! 7c716586558d488853245df59e4f9ee2  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-12.c
! 970c182d84888950b554d6040e57406a  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-13.c
! 7cf7e60a0a90caa8a3f35f06e1f6b389  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-14.c
! 479243786654d63f489e5484f213d7e4  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-15.c
! 0bd4d4f35c90c5189ed0f3a3c0485c0d  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-16.c
! 07f92d019f9852ac69f740b1d717f1e1  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-17.c
! e2dd760aebba8c4ca67c66ab6ad548dd  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-18.c
! e548e5478dab5252b297830c11d23da3  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-19.c
! 21af3c6a25d81d47e1243d69dc2439e7  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-2.c
! f974228525fb841fc986abce863fd450  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-4.c
! 95862fe01c511bd4a6029a090b626dff  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-5-ascii.c
! 17fa94ccc7a1b43a24bf83f1a1e064e7  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-5-unicode.c
! dd9bd714ddf00836a965698479925913  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-6.c
! 0a18a894a8537b60bd0aa10f98dda8c1  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-7.c
! 246ff89fe6afc90e0f35238247b22481  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-9.c
! 2eba6a9f9fe68062d9314fe95a5fd289  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-diagram-pr113222.c
  4cf772bd692044b2e359f8ec7ce1b3ee  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-multiline-1.c
  6dfa34d80808ee7889c5d826e5e205b8  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-multiline-2.c
  8e72b3602a293395949616541ab8ff04  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-realloc-grow.c
  f860abacfff9f0f438125c3b6af20e40  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-zero.c
  7cc16c21f19526f1926009cff6d0e22f  gcc/testsuite/gcc.dg/analyzer/params.c
! d49ce5897cbcdce03de2c289368308f7  gcc/testsuite/gcc.dg/analyzer/pattern-test-2.c
  08c8643d827be311b98875441004c1ab  gcc/testsuite/gcc.dg/analyzer/phi-2.c
  af8b06f18b2ffd74d5cfdc6557523f17  gcc/testsuite/gcc.dg/analyzer/pipe-1.c
! faa7ff928bbead8437bd5382e61c0356  gcc/testsuite/gcc.dg/analyzer/pipe-glibc.c
! 0c7922be0e32584e443c734f5b9043d1  gcc/testsuite/gcc.dg/analyzer/pipe-manpages.c
  9da3ee312a53989520c6f6fd2a0a2e2a  gcc/testsuite/gcc.dg/analyzer/pipe-void-return.c
  2a2f495dec7f278925ae67dee036fcc1  gcc/testsuite/gcc.dg/analyzer/pipe2-1.c
  3f583dbde80b3efe12b65cefa6758f9f  gcc/testsuite/gcc.dg/analyzer/pr100011.c
  62c29c74bff34938d246ad62ccf4f5ac  gcc/testsuite/gcc.dg/analyzer/pr101143.c
  71129fa06e1b067223c303245054200a  gcc/testsuite/gcc.dg/analyzer/pr101547.c
  8e16196108463716a2cfc4f344af5d64  gcc/testsuite/gcc.dg/analyzer/pr101837.c
  8e41b138580137917cf3c8483f35abbb  gcc/testsuite/gcc.dg/analyzer/pr101875.c
  60b2a5e408979c204812ee09c755be9d  gcc/testsuite/gcc.dg/analyzer/pr101983-main.c
  9af3fc4e1a3e5925599c434e4d8ec749  gcc/testsuite/gcc.dg/analyzer/pr101983-not-main.c
! 7138137bac372bfd3b7fd1aacfa6cd73  gcc/testsuite/gcc.dg/analyzer/pr103892.c
  15fc590ce739292d51fb1d190f57dc81  gcc/testsuite/gcc.dg/analyzer/pr104224-split.c
  df5dee0e0e92ecf4b97f80a2aff5b9de  gcc/testsuite/gcc.dg/analyzer/pr104224.c
! 3958e5b363cc2d23a66c560293b47837  gcc/testsuite/gcc.dg/analyzer/pr104369-1.c
! 0e7003703b36e6f081ce012e161cf5e3  gcc/testsuite/gcc.dg/analyzer/pr104369-2.c
  193bbc40b5d1663602f78ebcf3ec7d09  gcc/testsuite/gcc.dg/analyzer/pr104417.c
  740583ce32547a8d87a3cd63946b90f2  gcc/testsuite/gcc.dg/analyzer/pr104434-const.c
  bd08c3118e654f97ec8726f35f798dfe  gcc/testsuite/gcc.dg/analyzer/pr104434-nonconst.c
  0eae8bc57da919ca1bbfbe4b5652153e  gcc/testsuite/gcc.dg/analyzer/pr104434.h
  9f88d9ad0d5d0c458ae8f1fe6079c8f5  gcc/testsuite/gcc.dg/analyzer/pr104560-1.c
  20851e8be3d1f3da1cf23c165c453e68  gcc/testsuite/gcc.dg/analyzer/pr105074.c
  51c44ec6bdff5d8fc63586489dc05809  gcc/testsuite/gcc.dg/analyzer/pr105365.c
  c5aaf610718cba5c59ae6937f43eb7db  gcc/testsuite/gcc.dg/analyzer/pr105366.c
  148ff0f73f935f255a7bb3cd60ddbf95  gcc/testsuite/gcc.dg/analyzer/pr106181.c
! 858a5fcecf63e716063ce04728f4c6c8  gcc/testsuite/gcc.dg/analyzer/pr108171.c
! 5f690f31ecdd04e8b4a52d7afa696adf  gcc/testsuite/gcc.dg/analyzer/pr109577.c
! 12cfe5485a3c7938cc01216a44d4866e  gcc/testsuite/gcc.dg/analyzer/pr110882.c
! 64c9d1e955b493cfb0d775e89b36b0d6  gcc/testsuite/gcc.dg/analyzer/pr113505.c
! d69ed87a55d888352718347a2a8941ed  gcc/testsuite/gcc.dg/analyzer/pr61861.c
! bea5e1dc273c2c35efdd7fe483c5eeb7  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-signed-char.c
! 4dda248e2d5bde780958b3dcce453f02  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-unsigned-char.c
! 08d223b73454ba39d78dde2d881e87c2  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility-2.c
! f89e5ecde804b807979bb260986f6283  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility.c
  0ddb73cbb7d38d16a36e6ec4f7fc183e  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias.c
  a593341d1b08c788e70141f3755b74a7  gcc/testsuite/gcc.dg/analyzer/pr93375.c
! 021f43de56975850b127f298839bb9f5  gcc/testsuite/gcc.dg/analyzer/pr93382.c
  e5b15ee45fe6adafc7624ced3274120b  gcc/testsuite/gcc.dg/analyzer/pr94458.c
  92ed6522f4d8b7a542dd38a2a929c2e4  gcc/testsuite/gcc.dg/analyzer/pr94579.c
! 56c1f50d865617c930add2c80cf10965  gcc/testsuite/gcc.dg/analyzer/pr94688.c
  746bbf11842faa157eaa0c33fef10249  gcc/testsuite/gcc.dg/analyzer/pr94689.c
  0026c538f0e20f37842630fe25b7d4c0  gcc/testsuite/gcc.dg/analyzer/pr94754.c
  5706bdced6988827930712af70d3cd5c  gcc/testsuite/gcc.dg/analyzer/pr94858-1.c
  620f1057b370b6e564abca5a9e79231d  gcc/testsuite/gcc.dg/analyzer/pr94858-2.c
  f538c8eccbeef559ece3b2f12e4a65e8  gcc/testsuite/gcc.dg/analyzer/pr95000-1.c
! c5230f03fce69295604d7bf84531d1b8  gcc/testsuite/gcc.dg/analyzer/pr95152-4.c
! cc34da4a6b5eb3ea00a6b83e365e3c54  gcc/testsuite/gcc.dg/analyzer/pr95152-5.c
  29816e82bef6bf88156d55346d54b72f  gcc/testsuite/gcc.dg/analyzer/pr96642.c
  e1cc82ec2de0b3a6c6717f542456a7f7  gcc/testsuite/gcc.dg/analyzer/pr96651-2.c
! 78c898bb617df573bb4a638f1a5c61ea  gcc/testsuite/gcc.dg/analyzer/pr96860-1.c
  31a9bfe2d10d9507c3d3caf182f7947b  gcc/testsuite/gcc.dg/analyzer/pr98293.c
  e30ab4cce96a744448409fe77f3c5efa  gcc/testsuite/gcc.dg/analyzer/pr98599-a.c
  b8dedb68ebd6efc83061dc56ccf05a12  gcc/testsuite/gcc.dg/analyzer/pr98599-b.c
  11ed5b2e2254591f0a152015c2b66245  gcc/testsuite/gcc.dg/analyzer/pr99042.c
  db49279a7bbbbb8a7993d65e3a0ed602  gcc/testsuite/gcc.dg/analyzer/pr99044-1.c
! 78974bca049e6fe858c117ebc2ed130b  gcc/testsuite/gcc.dg/analyzer/pr99193-1.c
  dc948ef5af4dbb9b2512860f38fde8ed  gcc/testsuite/gcc.dg/analyzer/pr99269.c
  cbb6adcc2621ebf0e7bda4537a8d8250  gcc/testsuite/gcc.dg/analyzer/pr99771-1.c
  eed361a309e3745bd4ef7b47ad455045  gcc/testsuite/gcc.dg/analyzer/pr99774-2.c
  999daf76457c2842454c315884e1181c  gcc/testsuite/gcc.dg/analyzer/pr99886.c
! fe1b75742aa575cd80df355ca8abede1  gcc/testsuite/gcc.dg/analyzer/putenv-1.c
  ee803c3283890e05fed6552fbff9532c  gcc/testsuite/gcc.dg/analyzer/read-pr108661.c
  a3e079fdb0af6c6373526bb5b0925662  gcc/testsuite/gcc.dg/analyzer/sensitive-1.c
  235b23e579165b5bc29ded1884282ac0  gcc/testsuite/gcc.dg/analyzer/setjmp-1.c
  179069b5df1a39fd4f81202fade56325  gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
  fc3a3a42af2e0edb17f7af2cf30f4343  gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
  c04d5fc1dea77f1e99f32e5ee47e000f  gcc/testsuite/gcc.dg/analyzer/setjmp-6.c
  27cf1c2faaa334e8717833bc2394aa77  gcc/testsuite/gcc.dg/analyzer/setjmp-7.c
  51e087d07482f17215c8c8ac1ecf70b6  gcc/testsuite/gcc.dg/analyzer/setjmp-7a.c
  6fd7af9fe85c8fa521ef73ff135dd1af  gcc/testsuite/gcc.dg/analyzer/setjmp-8.c
  93fc25e0ff71cfdd7223fa0bb7841517  gcc/testsuite/gcc.dg/analyzer/setjmp-pr93378.c
  0cb4c7a3599bf002d40a3b5ac76644aa  gcc/testsuite/gcc.dg/analyzer/signal-1.c
  a6cb10f4e6f6aa799d4c4c4aea433d9d  gcc/testsuite/gcc.dg/analyzer/signal-2.c
  e98f83f7b7082df7aa09ee75584ec411  gcc/testsuite/gcc.dg/analyzer/signal-3.c
  e9a1ff715baaef06ea9e16086ff0f48c  gcc/testsuite/gcc.dg/analyzer/signal-5.c
  c3d6877dc6b6aaf933b97e6748b315cc  gcc/testsuite/gcc.dg/analyzer/signal-6.c
  7c0bf2888cac40134f61a3ceca65cf6c  gcc/testsuite/gcc.dg/analyzer/signal-exit.c
*************** c3d6877dc6b6aaf933b97e6748b315cc  gcc/te
*** 38378,38389 ****
  21f29e324e02af30bdd09e1978dc26f6  gcc/testsuite/gcc.dg/analyzer/sigsetjmp-5.c
  8959874363aade3ab965125e11d3ded5  gcc/testsuite/gcc.dg/analyzer/sigsetjmp-6.c
  041939ea34c3dd2bdd2d95257e5520ad  gcc/testsuite/gcc.dg/analyzer/single-field.c
! 906aee8f9f577223582268d4a620b525  gcc/testsuite/gcc.dg/analyzer/snprintf-concat.c
! 5c0567311c3a574a185c84afd8f87b2b  gcc/testsuite/gcc.dg/analyzer/sock-1.c
! d2d0bf430ae5db83cb2eeb1d4c3c4844  gcc/testsuite/gcc.dg/analyzer/sock-2.c
! aa4efbe12292cd5c02e4fb04677581d0  gcc/testsuite/gcc.dg/analyzer/sprintf-1.c
! a8037222659831e159d018624496f883  gcc/testsuite/gcc.dg/analyzer/sprintf-concat.c
! 0d17ba25adaab3e664c5b31f67e250f4  gcc/testsuite/gcc.dg/analyzer/stale-frame-1.c
  5c72aedcce8177798415d32e0a8bf938  gcc/testsuite/gcc.dg/analyzer/stdarg-1-ms_abi.c
  ae7b0d56b5a779d9be16f41d3efb6e03  gcc/testsuite/gcc.dg/analyzer/stdarg-1-sysv_abi.c
  83eea51c7616c3097a43f056ac9be295  gcc/testsuite/gcc.dg/analyzer/stdarg-1.c
--- 40172,40178 ----
  21f29e324e02af30bdd09e1978dc26f6  gcc/testsuite/gcc.dg/analyzer/sigsetjmp-5.c
  8959874363aade3ab965125e11d3ded5  gcc/testsuite/gcc.dg/analyzer/sigsetjmp-6.c
  041939ea34c3dd2bdd2d95257e5520ad  gcc/testsuite/gcc.dg/analyzer/single-field.c
! 7c5d373abe7dc75a1f4304f4d2e0548b  gcc/testsuite/gcc.dg/analyzer/sprintf-1.c
  5c72aedcce8177798415d32e0a8bf938  gcc/testsuite/gcc.dg/analyzer/stdarg-1-ms_abi.c
  ae7b0d56b5a779d9be16f41d3efb6e03  gcc/testsuite/gcc.dg/analyzer/stdarg-1-sysv_abi.c
  83eea51c7616c3097a43f056ac9be295  gcc/testsuite/gcc.dg/analyzer/stdarg-1.c
*************** b76452713c6522655217df51194d0da5  gcc/te
*** 38393,38460 ****
  16df75a00d60c15ce6e3c88145dc4a52  gcc/testsuite/gcc.dg/analyzer/stdarg-lto-1-a.c
  704cf666386e2d20cb2947b0dfd0067a  gcc/testsuite/gcc.dg/analyzer/stdarg-lto-1-b.c
  222b11a7c333c892c49c4acf13282013  gcc/testsuite/gcc.dg/analyzer/stdarg-lto-1.h
- 6cb68eb8b2eb45ac0544be60f2161e0e  gcc/testsuite/gcc.dg/analyzer/stdarg-sentinel-1.c
  7c34f9a3c92ba106a890f78970e8464a  gcc/testsuite/gcc.dg/analyzer/stdarg-types-1.c
! 386715a511e63dee39f78737e48a7137  gcc/testsuite/gcc.dg/analyzer/stdarg-types-2.c
! 8ffbb46c48a69dd15b62a7f13fd55b94  gcc/testsuite/gcc.dg/analyzer/stdarg-types-3.c
! 7f61fc263e6d3625a5df0e88fb730927  gcc/testsuite/gcc.dg/analyzer/stdarg-types-4.c
! 92e5d533f324ce6a190e13bc04ada7af  gcc/testsuite/gcc.dg/analyzer/strchr-1.c
  5c824937a2b8b50d8d983130fccd4e81  gcc/testsuite/gcc.dg/analyzer/strcmp-1.c
! 75d08bca79f4ac1789e8518f83e25230  gcc/testsuite/gcc.dg/analyzer/strcpy-1.c
! a20f56474f9327e4df5f75e759a08cfc  gcc/testsuite/gcc.dg/analyzer/strcpy-2.c
! 6650306af11fcf47f40ac2281b73ef39  gcc/testsuite/gcc.dg/analyzer/strcpy-3.c
! fac607b6d04c358896bf7ed70dbf5347  gcc/testsuite/gcc.dg/analyzer/strdup-1.c
  7257568ac07240de491ed3c6e6dc1d1d  gcc/testsuite/gcc.dg/analyzer/strdup-pr108252.c
! 24556524b137bbbef1ef7e2e121e58ae  gcc/testsuite/gcc.dg/analyzer/string-ops-concat-pair.c
! 86f8cac14f31956b8f01b596551a3575  gcc/testsuite/gcc.dg/analyzer/string-ops-dup.c
! e2a106505ad57f8fb83ebcbe30b56b27  gcc/testsuite/gcc.dg/analyzer/strndup-1.c
  776c83102066dafdfd4919f6bee676e7  gcc/testsuite/gcc.dg/analyzer/strndup-pr108252.c
  23c8551e7b91e875fc63b06d0ee8ebee  gcc/testsuite/gcc.dg/analyzer/switch-enum-1.c
  53337379f22adbe0c556208521ce5a99  gcc/testsuite/gcc.dg/analyzer/switch-enum-2.c
! 9ee61b76563b064c5d39e5e8e5f579b5  gcc/testsuite/gcc.dg/analyzer/switch-enum-pr105273-git-vreportf-2.c
! 42184dc462989060e46fba9ca5914bab  gcc/testsuite/gcc.dg/analyzer/switch-enum-taint-1.c
! b76cb1d27db82d1b655fd7715d3a8b9a  gcc/testsuite/gcc.dg/analyzer/switch-wrong-enum.c
  94d50b44acb880793de0436efdd4b8a5  gcc/testsuite/gcc.dg/analyzer/switch.c
- d36f5325a7e5fa9b8ac849be4b6b9226  gcc/testsuite/gcc.dg/analyzer/symbolic-1.c
- 37efe101803b1ff8e261666644ca2b63  gcc/testsuite/gcc.dg/analyzer/symbolic-12.c
- 2982a3481c63231cadba1329977640bd  gcc/testsuite/gcc.dg/analyzer/symbolic-2.c
- 24d2d7b09cf8245a68dd00b36075e2cd  gcc/testsuite/gcc.dg/analyzer/symbolic-3.c
- 784de898ae2196cc28e4405a23f94314  gcc/testsuite/gcc.dg/analyzer/symbolic-4.c
- 8d8ebd7d911c51e682f6290fd9fca032  gcc/testsuite/gcc.dg/analyzer/symbolic-5.c
- 2874e0dd4822b9e02d76d958c6b96223  gcc/testsuite/gcc.dg/analyzer/symbolic-6.c
- c65116045ddccfc3f491c0a185fa75ea  gcc/testsuite/gcc.dg/analyzer/symbolic-7.c
- 32609711c2e8949725877cdd45605fff  gcc/testsuite/gcc.dg/analyzer/symbolic-8.c
  c8bc6833de96ea946301995b38dec3db  gcc/testsuite/gcc.dg/analyzer/symbolic-9.c
! c2fcb94a2603dbbeaffe0f588f927e6d  gcc/testsuite/gcc.dg/analyzer/symbolic-gt-1.c
! 6863101d8819b9bf80a78e076396e2a5  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2011-2210-1.c
! 03c5adee66f7bad3a46810ed71abf0f0  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-1.c
! 667a1190cd16badacef247391bbfe5ab  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-2.c
! ea242e7d6ed95a0e6ef9737d79ede6b5  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143.h
! 2d5b0cc551c3a336977c5d5a02611d5c  gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c
! fbd647fd29b471a7a55a1fb5f7c747ce  gcc/testsuite/gcc.dg/analyzer/taint-alloc-2.c
! d12199de8a73038d508adc4781b1c82c  gcc/testsuite/gcc.dg/analyzer/taint-alloc-3.c
! 2e33673bc33d322da439d4e94dbf6afc  gcc/testsuite/gcc.dg/analyzer/taint-alloc-4.c
! acc7ba3d31b74a70e29d2deb549157d4  gcc/testsuite/gcc.dg/analyzer/taint-alloc-5.c
! 6eb8e625510cb905f47833ae1dfdb737  gcc/testsuite/gcc.dg/analyzer/taint-assert-BUG_ON.c
! 5d65953a5a601bc0bf1ae230341c3729  gcc/testsuite/gcc.dg/analyzer/taint-assert-macro-expansion.c
! 284e2308a1ca75b599ea0891b23aaffa  gcc/testsuite/gcc.dg/analyzer/taint-assert-system-header.c
! e9723db028427fdcfd3295084437bc13  gcc/testsuite/gcc.dg/analyzer/taint-assert.c
! 1964aa2d0d8526b8bb106453ddd3d38c  gcc/testsuite/gcc.dg/analyzer/taint-divisor-1.c
! 6a05eaa2e2c1e6b090ece3c5fd1f2dec  gcc/testsuite/gcc.dg/analyzer/taint-merger.c
! 989ecfdd65e4e4576e9e4c32ea8989c9  gcc/testsuite/gcc.dg/analyzer/taint-ops.c
! f5887ea7ae3861689a706041d25fbc2f  gcc/testsuite/gcc.dg/analyzer/taint-read-index-1.c
! 928375584fe37a44f65bb2b6eecdcb9b  gcc/testsuite/gcc.dg/analyzer/taint-read-offset-1.c
! 473b57832895b90d940dd27bc74a75d6  gcc/testsuite/gcc.dg/analyzer/taint-realloc.c
! ec8535ecc12c8b894c1d73f4597eb0be  gcc/testsuite/gcc.dg/analyzer/taint-size-1.c
! f4f9f41e54069c509bb5eae592ff6f87  gcc/testsuite/gcc.dg/analyzer/taint-size-access-attr-1.c
! 0337ba6b22c31a1bf490617c707c752e  gcc/testsuite/gcc.dg/analyzer/taint-write-index-1.c
! 477c05f1a507bff1df071f92846c8bbf  gcc/testsuite/gcc.dg/analyzer/taint-write-offset-1.c
  5c37a718a5792e1d46f1e4ed86dbc98a  gcc/testsuite/gcc.dg/analyzer/test-alloca.h
  486419cac8d180eb2b80b19e520f0727  gcc/testsuite/gcc.dg/analyzer/test-assert.h
  bd601748927d5c75feb46ce9e4546e5e  gcc/testsuite/gcc.dg/analyzer/test-setjmp.h
  c4ea4a7111cad6e2223b4b4e23b1fd95  gcc/testsuite/gcc.dg/analyzer/test-uaccess.h
  1044a7408c5d7630501b02b9726d7b8b  gcc/testsuite/gcc.dg/analyzer/torture/20060625-1.c
! bc322d81cc1e2e921f9e0251e7154db1  gcc/testsuite/gcc.dg/analyzer/torture/analyzer-torture.exp
  ab8b5fe6003e8ef4d2d1b26e247a6207  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-array_index_mask_nospec.c
  9e0121dee23fed15f762b03898392c8a  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c
  144d9ec1f7cc82583ee9bca4b319b24c  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-2.c
--- 40182,40229 ----
  16df75a00d60c15ce6e3c88145dc4a52  gcc/testsuite/gcc.dg/analyzer/stdarg-lto-1-a.c
  704cf666386e2d20cb2947b0dfd0067a  gcc/testsuite/gcc.dg/analyzer/stdarg-lto-1-b.c
  222b11a7c333c892c49c4acf13282013  gcc/testsuite/gcc.dg/analyzer/stdarg-lto-1.h
  7c34f9a3c92ba106a890f78970e8464a  gcc/testsuite/gcc.dg/analyzer/stdarg-types-1.c
! 72744cf5b7689b54300874e863c831d8  gcc/testsuite/gcc.dg/analyzer/strcat-1.c
! 01bd75b47a7f944939fdbb0eec054c78  gcc/testsuite/gcc.dg/analyzer/strchr-1.c
  5c824937a2b8b50d8d983130fccd4e81  gcc/testsuite/gcc.dg/analyzer/strcmp-1.c
! e60a87e3a024c5578ef6e9aceae4ee4c  gcc/testsuite/gcc.dg/analyzer/strcpy-1.c
! 6e61416a1a965596212f4c4d92797b7c  gcc/testsuite/gcc.dg/analyzer/strcpy-3.c
! e5ebb4cb43a0185a3db0a087bcc84310  gcc/testsuite/gcc.dg/analyzer/strcpy-4.c
! 939f0764862017a61847c1022904c655  gcc/testsuite/gcc.dg/analyzer/strdup-1.c
  7257568ac07240de491ed3c6e6dc1d1d  gcc/testsuite/gcc.dg/analyzer/strdup-pr108252.c
! f0210a810518059661764eb58e636dbe  gcc/testsuite/gcc.dg/analyzer/strlen-1.c
  776c83102066dafdfd4919f6bee676e7  gcc/testsuite/gcc.dg/analyzer/strndup-pr108252.c
  23c8551e7b91e875fc63b06d0ee8ebee  gcc/testsuite/gcc.dg/analyzer/switch-enum-1.c
  53337379f22adbe0c556208521ce5a99  gcc/testsuite/gcc.dg/analyzer/switch-enum-2.c
! 1bfea655cf31477f91fa6063725b00da  gcc/testsuite/gcc.dg/analyzer/switch-enum-taint-1.c
! 1ae41d6ad8432356289b35c29e394269  gcc/testsuite/gcc.dg/analyzer/switch-no-short-enum-1.c
! e6d9f21a20d9f28508aa4f4b6b10ddec  gcc/testsuite/gcc.dg/analyzer/switch-short-enum-1.c
  94d50b44acb880793de0436efdd4b8a5  gcc/testsuite/gcc.dg/analyzer/switch.c
  c8bc6833de96ea946301995b38dec3db  gcc/testsuite/gcc.dg/analyzer/symbolic-9.c
! 1662916a25de3947c746e0bb53b4b717  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2011-2210-1.c
! d3672c86889d469bbd43ac562f0ca1a4  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-1.c
! f0c19beaa4ab5f22b4038bc32c4e0c96  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-2.c
! 856006f625511b0fb030bcf227a26492  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143.h
! c5c7393cc16b8890b6a0d5784de8ccb5  gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c
! 7ff85aae29338f9915d524f985bfff7c  gcc/testsuite/gcc.dg/analyzer/taint-alloc-2.c
! 1cfdd34d5780908ee592093b5595d490  gcc/testsuite/gcc.dg/analyzer/taint-alloc-4.c
! fc3cb70c2399af08002b58c02ec7dc52  gcc/testsuite/gcc.dg/analyzer/taint-alloc-5.c
! 71e14b0eb6517785cd3528d5ac0105a8  gcc/testsuite/gcc.dg/analyzer/taint-assert-macro-expansion.c
! 790595ae06a5a0381144fc786922f71e  gcc/testsuite/gcc.dg/analyzer/taint-assert-system-header.c
! 3151c42d285ada08441b98096e4cb487  gcc/testsuite/gcc.dg/analyzer/taint-assert.c
! 94a5f5322aa801cf745282a4cb42bfc9  gcc/testsuite/gcc.dg/analyzer/taint-divisor-1.c
! df0366e06e6b9d19dce5a23691e50271  gcc/testsuite/gcc.dg/analyzer/taint-read-index-1.c
! 720d8a76446c424458c3556aa734ee7e  gcc/testsuite/gcc.dg/analyzer/taint-read-offset-1.c
! 78e4b1ed06f4e63bcfa3802ec15ad857  gcc/testsuite/gcc.dg/analyzer/taint-size-1.c
! 693f55ef817f864e0343827ad154c880  gcc/testsuite/gcc.dg/analyzer/taint-size-access-attr-1.c
! 507a86fc44de383ae22b8933825e4bd0  gcc/testsuite/gcc.dg/analyzer/taint-write-index-1.c
! 922f4476faefdb4c464bb41571cd3305  gcc/testsuite/gcc.dg/analyzer/taint-write-offset-1.c
  5c37a718a5792e1d46f1e4ed86dbc98a  gcc/testsuite/gcc.dg/analyzer/test-alloca.h
  486419cac8d180eb2b80b19e520f0727  gcc/testsuite/gcc.dg/analyzer/test-assert.h
  bd601748927d5c75feb46ce9e4546e5e  gcc/testsuite/gcc.dg/analyzer/test-setjmp.h
  c4ea4a7111cad6e2223b4b4e23b1fd95  gcc/testsuite/gcc.dg/analyzer/test-uaccess.h
  1044a7408c5d7630501b02b9726d7b8b  gcc/testsuite/gcc.dg/analyzer/torture/20060625-1.c
! 62d8cdca6550cdc87caeefbf61b00eee  gcc/testsuite/gcc.dg/analyzer/torture/analyzer-torture.exp
  ab8b5fe6003e8ef4d2d1b26e247a6207  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-array_index_mask_nospec.c
  9e0121dee23fed15f762b03898392c8a  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c
  144d9ec1f7cc82583ee9bca4b319b24c  gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-2.c
*************** adcdfc937d1369e1864074215a1cd12c  gcc/te
*** 38466,38472 ****
  85b99739a5a3b9e52c0675cb96b6e1bd  gcc/testsuite/gcc.dg/analyzer/torture/boxed-int-1.c
  c4652807434ba6ccf4a2477242729b0a  gcc/testsuite/gcc.dg/analyzer/torture/boxed-ptr-1.c
  6600a700d9c3d03886029438e22848f6  gcc/testsuite/gcc.dg/analyzer/torture/conditionals-2.c
! 4c43e729ef81f365c923eb98024417c6  gcc/testsuite/gcc.dg/analyzer/torture/conftest-1.c
  e85d83557fa692d7016e4622b85ca975  gcc/testsuite/gcc.dg/analyzer/torture/empty-struct-1.c
  8d709abc006dc3a0451121f9d45c50b3  gcc/testsuite/gcc.dg/analyzer/torture/fold-ptr-arith-pr105784.c
  2a944db68262f05280b26c9c165685c9  gcc/testsuite/gcc.dg/analyzer/torture/intptr_t.c
--- 40235,40241 ----
  85b99739a5a3b9e52c0675cb96b6e1bd  gcc/testsuite/gcc.dg/analyzer/torture/boxed-int-1.c
  c4652807434ba6ccf4a2477242729b0a  gcc/testsuite/gcc.dg/analyzer/torture/boxed-ptr-1.c
  6600a700d9c3d03886029438e22848f6  gcc/testsuite/gcc.dg/analyzer/torture/conditionals-2.c
! f51fae0e8d61e76c5a00d9a7a8e4a3f3  gcc/testsuite/gcc.dg/analyzer/torture/conftest-1.c
  e85d83557fa692d7016e4622b85ca975  gcc/testsuite/gcc.dg/analyzer/torture/empty-struct-1.c
  8d709abc006dc3a0451121f9d45c50b3  gcc/testsuite/gcc.dg/analyzer/torture/fold-ptr-arith-pr105784.c
  2a944db68262f05280b26c9c165685c9  gcc/testsuite/gcc.dg/analyzer/torture/intptr_t.c
*************** c6607cf8f0a83f57db4d5d7e2592d22d  gcc/te
*** 38507,38514 ****
  2d17dc42388a5274764c1624ca93c80e  gcc/testsuite/gcc.dg/analyzer/torture/switch-enum-pr105273-doom-p_maputl.c
  fee376fc039217ac8eadbd50e48b7797  gcc/testsuite/gcc.dg/analyzer/torture/switch-enum-pr105273-git-vreportf-1.c
  1fae21b0c67b5b679beeecb28014ef75  gcc/testsuite/gcc.dg/analyzer/torture/symbolic-10.c
! 79f06951549ed81d5f02c0719dc46a23  gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-2.c
! 8aacdcd1a66a942260b01b74b8e5f2ed  gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-3.c
  b2b79a31b8a0345532a9a02fa98d668f  gcc/testsuite/gcc.dg/analyzer/torture/ubsan-1.c
  46dca54a13d3ed78a493a176a50d867e  gcc/testsuite/gcc.dg/analyzer/torture/uninit-bit-field-ref.c
  9a20e5bda2c613c6f8637d84ed00559c  gcc/testsuite/gcc.dg/analyzer/torture/uninit-pr106204.c
--- 40276,40283 ----
  2d17dc42388a5274764c1624ca93c80e  gcc/testsuite/gcc.dg/analyzer/torture/switch-enum-pr105273-doom-p_maputl.c
  fee376fc039217ac8eadbd50e48b7797  gcc/testsuite/gcc.dg/analyzer/torture/switch-enum-pr105273-git-vreportf-1.c
  1fae21b0c67b5b679beeecb28014ef75  gcc/testsuite/gcc.dg/analyzer/torture/symbolic-10.c
! 6318ccac17dcb5d98f57f236599b7adb  gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-2.c
! 230b0e2946fe052bea2eb4cd586765eb  gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-3.c
  b2b79a31b8a0345532a9a02fa98d668f  gcc/testsuite/gcc.dg/analyzer/torture/ubsan-1.c
  46dca54a13d3ed78a493a176a50d867e  gcc/testsuite/gcc.dg/analyzer/torture/uninit-bit-field-ref.c
  9a20e5bda2c613c6f8637d84ed00559c  gcc/testsuite/gcc.dg/analyzer/torture/uninit-pr106204.c
*************** d05a3955306cf8591941d3856debd78b  gcc/te
*** 38518,38575 ****
  2ffa956e249f74277e2565912f3333b9  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-pattern.c
  4b038f337620ba8e85c0752005cb1818  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-uninitialized.c
  cc641b4453a1b743c66c43ea1c92e357  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-zero.c
! 99429c9d75d55782747b0a4bfd4a43ed  gcc/testsuite/gcc.dg/analyzer/uninit-1.c
! f3b04cae0253d04943b8e3a80f6609c3  gcc/testsuite/gcc.dg/analyzer/uninit-2.c
! 5230c72c5072304c5579bb33f03c01e8  gcc/testsuite/gcc.dg/analyzer/uninit-3.c
  547ceffa8e845c31d902790c7e0e3057  gcc/testsuite/gcc.dg/analyzer/uninit-4.c
- 12770fc4b4e596f10d34f77417d0a681  gcc/testsuite/gcc.dg/analyzer/uninit-6.c
- dc18b7f43ca34ba2bdcf1f2293ef3567  gcc/testsuite/gcc.dg/analyzer/uninit-6b.c
  8c87a229f0dd190ba422467801b8229b  gcc/testsuite/gcc.dg/analyzer/uninit-7.c
- 60b6279b02ede62acce22b59a1ab91f6  gcc/testsuite/gcc.dg/analyzer/uninit-8.c
  541b34b1ad44afd6ca6d0a768db2946a  gcc/testsuite/gcc.dg/analyzer/uninit-CWE-457-examples.c
- 4dfe342efb4c45e8a5094ee1ed577042  gcc/testsuite/gcc.dg/analyzer/uninit-alloca.c
- 76c4fa43fef5c9ac975c951c831adb52  gcc/testsuite/gcc.dg/analyzer/uninit-pr104576.c
- 29ba9a3ce1e65ae0d19ec63085e2d2ef  gcc/testsuite/gcc.dg/analyzer/uninit-pr106204.c
- c98f8534d7e8d5036a05a97de1ee6199  gcc/testsuite/gcc.dg/analyzer/uninit-pr108704.c
- 49fbfbad3a21a66322f1c7f018f0f86f  gcc/testsuite/gcc.dg/analyzer/uninit-pr108806-qemu.c
- f7c765972c099dc7cfeb2ba7d764c78d  gcc/testsuite/gcc.dg/analyzer/uninit-pr108968-register.c
- 5f2be8cb83f9bed0a69e89484bb54b9f  gcc/testsuite/gcc.dg/analyzer/uninit-pr94713.c
- 27bc9adec517c382409208e0208662ee  gcc/testsuite/gcc.dg/analyzer/uninit-pr94714.c
- c1e2ec7b982a6c1d3f3d88277f0a5412  gcc/testsuite/gcc.dg/analyzer/unknown-fns-2.c
- 9346d04a573f82a1a5d2aa442f8df654  gcc/testsuite/gcc.dg/analyzer/unknown-fns-3.c
- 81481da5bab0e2c1f85b1504bcfab189  gcc/testsuite/gcc.dg/analyzer/unknown-fns-4.c
  b06ba7887a4ece7ea7f11a9caf8e97b4  gcc/testsuite/gcc.dg/analyzer/unknown-fns.c
  087460b24b93f2716c1d11c02d30965e  gcc/testsuite/gcc.dg/analyzer/untracked-1.c
! 707fb133dc622a539e4f6fb70c516502  gcc/testsuite/gcc.dg/analyzer/untracked-2.c
! 33bcbf1ef7e77468ac1cb0eceb5bb7b9  gcc/testsuite/gcc.dg/analyzer/unused-local-1.c
! 376fb4403916477fbc28accfb5d269f1  gcc/testsuite/gcc.dg/analyzer/use-after-free-2.c
! f11e97b1fc5ab33807c3c2d2087970e8  gcc/testsuite/gcc.dg/analyzer/use-after-free-3.c
! fb0acf2dd995d01b9b08a8f1188592f7  gcc/testsuite/gcc.dg/analyzer/use-after-free.c
! fce9eab7faf36d303a43f44482d7c6ee  gcc/testsuite/gcc.dg/analyzer/vasprintf-1.c
  102385c780a6490b1bab8dac593cbd07  gcc/testsuite/gcc.dg/analyzer/vla-1.c
- a833a6ad5ab9dc4df4c5628344367514  gcc/testsuite/gcc.dg/analyzer/vsnprintf-1.c
- 6fcd3abc5b1f2edc5e93bd98f3438e8c  gcc/testsuite/gcc.dg/analyzer/write-to-const-1.c
  d23060d9617d607793c74626be7479fe  gcc/testsuite/gcc.dg/analyzer/write-to-const-2.c
! 77840cbcb97259e6e74b02896969ea84  gcc/testsuite/gcc.dg/analyzer/write-to-function-1.c
! 67dbd7690fda51d588dc970ff6d5f81e  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-1.c
  6ec959b42308e02f8a893a9efaf86d98  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-2.c
  57fc075c8dbac107e616b70295049b4b  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-3.c
- a9738509a7a9603042261187b2455209  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-4-disabled.c
- 6d83368141768ce083388691e6ba4efd  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-4.c
- a19614ade7ab01c2dee1273afcb56e3e  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-5.c
- 838b90b78b8ec4ed64b4613806941236  gcc/testsuite/gcc.dg/analyzer/zlib-1.c
- 57902d5ce798d9c34760d0ab62f511a0  gcc/testsuite/gcc.dg/analyzer/zlib-2.c
  4ad6acd95f4f163ad0a0d3d4599de6ee  gcc/testsuite/gcc.dg/analyzer/zlib-3.c
- df72c008ff04db0cf35cc53f456d09e9  gcc/testsuite/gcc.dg/analyzer/zlib-4.c
- 8c05b90cc0edbdbdb87d92a6ed796f4c  gcc/testsuite/gcc.dg/analyzer/zlib-5.c
  f879ebf85b514c5e20431d11da89e21f  gcc/testsuite/gcc.dg/analyzer/zlib-6.c
  82d2d50559f8da5c45335800f5d3273e  gcc/testsuite/gcc.dg/analyzer/zlib-6a.c
  9a236d4e4079496d64daed78574cc006  gcc/testsuite/gcc.dg/and-1.c
  8025bb7e0765732f0d28a027a9225fc6  gcc/testsuite/gcc.dg/anon-struct-1.c
  169a57abcdc48109c6aa5c69baf2c0da  gcc/testsuite/gcc.dg/anon-struct-10.c
! b7f25f289ee08a3d1187a6974944e59a  gcc/testsuite/gcc.dg/anon-struct-11.c
  09ac0cea01e1397001191c15ef1b44ed  gcc/testsuite/gcc.dg/anon-struct-12.c
! 9cde3f3df31aaa51158f5dca7b82c939  gcc/testsuite/gcc.dg/anon-struct-13.c
  57369680be5d738cf07d44314a9e0ed5  gcc/testsuite/gcc.dg/anon-struct-14.c
  a7efac574dbe1b4c2bd64571fc4e4fde  gcc/testsuite/gcc.dg/anon-struct-15.c
  596cce1a2948060bce3de3fd081944a5  gcc/testsuite/gcc.dg/anon-struct-2.c
--- 40287,40315 ----
  2ffa956e249f74277e2565912f3333b9  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-pattern.c
  4b038f337620ba8e85c0752005cb1818  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-uninitialized.c
  cc641b4453a1b743c66c43ea1c92e357  gcc/testsuite/gcc.dg/analyzer/torture/uninit-trivial-auto-var-init-zero.c
! 0305098634ca2cb3c30ead28e44c8416  gcc/testsuite/gcc.dg/analyzer/torture/vector-extract-1.c
  547ceffa8e845c31d902790c7e0e3057  gcc/testsuite/gcc.dg/analyzer/uninit-4.c
  8c87a229f0dd190ba422467801b8229b  gcc/testsuite/gcc.dg/analyzer/uninit-7.c
  541b34b1ad44afd6ca6d0a768db2946a  gcc/testsuite/gcc.dg/analyzer/uninit-CWE-457-examples.c
  b06ba7887a4ece7ea7f11a9caf8e97b4  gcc/testsuite/gcc.dg/analyzer/unknown-fns.c
  087460b24b93f2716c1d11c02d30965e  gcc/testsuite/gcc.dg/analyzer/untracked-1.c
! f38862cc1b9a2bfc4028d7aaf8b1e0eb  gcc/testsuite/gcc.dg/analyzer/use-after-free.c
  102385c780a6490b1bab8dac593cbd07  gcc/testsuite/gcc.dg/analyzer/vla-1.c
  d23060d9617d607793c74626be7479fe  gcc/testsuite/gcc.dg/analyzer/write-to-const-2.c
! 1fa3c19e4371898a9f78cb50d95028b8  gcc/testsuite/gcc.dg/analyzer/write-to-function-1.c
  6ec959b42308e02f8a893a9efaf86d98  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-2.c
  57fc075c8dbac107e616b70295049b4b  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-3.c
  4ad6acd95f4f163ad0a0d3d4599de6ee  gcc/testsuite/gcc.dg/analyzer/zlib-3.c
  f879ebf85b514c5e20431d11da89e21f  gcc/testsuite/gcc.dg/analyzer/zlib-6.c
  82d2d50559f8da5c45335800f5d3273e  gcc/testsuite/gcc.dg/analyzer/zlib-6a.c
  9a236d4e4079496d64daed78574cc006  gcc/testsuite/gcc.dg/and-1.c
  8025bb7e0765732f0d28a027a9225fc6  gcc/testsuite/gcc.dg/anon-struct-1.c
  169a57abcdc48109c6aa5c69baf2c0da  gcc/testsuite/gcc.dg/anon-struct-10.c
! eff116e9c4fbf0cc4be862ec5ac6a344  gcc/testsuite/gcc.dg/anon-struct-11.c
! 6e5b413679130bfb23c2219c9f672374  gcc/testsuite/gcc.dg/anon-struct-11a.c
  09ac0cea01e1397001191c15ef1b44ed  gcc/testsuite/gcc.dg/anon-struct-12.c
! becad1b1c540d821b62f0307d208e110  gcc/testsuite/gcc.dg/anon-struct-13.c
! 5680e870fb71fcc4d189dfa186622e7e  gcc/testsuite/gcc.dg/anon-struct-13a.c
  57369680be5d738cf07d44314a9e0ed5  gcc/testsuite/gcc.dg/anon-struct-14.c
  a7efac574dbe1b4c2bd64571fc4e4fde  gcc/testsuite/gcc.dg/anon-struct-15.c
  596cce1a2948060bce3de3fd081944a5  gcc/testsuite/gcc.dg/anon-struct-2.c
*************** e9ee98b1c57aa38ee8180ddadb22ca7a  gcc/te
*** 38590,38596 ****
  4849d94ffd3083c363fc949d6187f661  gcc/testsuite/gcc.dg/array-2.c
  1c72c1697779b727d1e4d4a57e4e0eff  gcc/testsuite/gcc.dg/array-3.c
  273203d3e04970fae0c56df1cf4ec365  gcc/testsuite/gcc.dg/array-4.c
! 516690f8e698c11ee9b9a2d314b59793  gcc/testsuite/gcc.dg/array-5.c
  52b18d0d34cd07c4a2c060c8888f26fd  gcc/testsuite/gcc.dg/array-7.c
  d02d8811debed2d20921eb4f3eaf9abc  gcc/testsuite/gcc.dg/array-8.c
  a95f64ee47a79bce5723588e34246152  gcc/testsuite/gcc.dg/array-9.c
--- 40330,40336 ----
  4849d94ffd3083c363fc949d6187f661  gcc/testsuite/gcc.dg/array-2.c
  1c72c1697779b727d1e4d4a57e4e0eff  gcc/testsuite/gcc.dg/array-3.c
  273203d3e04970fae0c56df1cf4ec365  gcc/testsuite/gcc.dg/array-4.c
! 63f9489733c289f3996b882db3f3c2da  gcc/testsuite/gcc.dg/array-5.c
  52b18d0d34cd07c4a2c060c8888f26fd  gcc/testsuite/gcc.dg/array-7.c
  d02d8811debed2d20921eb4f3eaf9abc  gcc/testsuite/gcc.dg/array-8.c
  a95f64ee47a79bce5723588e34246152  gcc/testsuite/gcc.dg/array-9.c
*************** b83db629f91a7356b28b31cfbbc330ad  gcc/te
*** 38599,38608 ****
  8d6052373f557446fbc2c85bbada1d63  gcc/testsuite/gcc.dg/array-const-3.c
  c11a907de50c52966dc3fac763e376b5  gcc/testsuite/gcc.dg/array-init-1.c
  f5a2800fc5f21185bd9bdbd69e270c10  gcc/testsuite/gcc.dg/array-init-2.c
! 93602cc4baf67e85d9c438d1a69dc55d  gcc/testsuite/gcc.dg/array-quals-1.c
  142997aec138f2b5487250ef14d6de54  gcc/testsuite/gcc.dg/array-quals-2.c
  889ad8871787262fb9533d339c717e6a  gcc/testsuite/gcc.dg/aru-2.c
! 2f332d28722881214df6ecbe2c5bbe27  gcc/testsuite/gcc.dg/asan/asan.exp
  b8a049317908d7e0078316ad82437346  gcc/testsuite/gcc.dg/asan/nested-1.c
  738544a74dbe22f6a41201227dfe9cd9  gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c
  62ddd0ab49b2d8a39773ae7568d8aa74  gcc/testsuite/gcc.dg/asan/pr104449.c
--- 40339,40349 ----
  8d6052373f557446fbc2c85bbada1d63  gcc/testsuite/gcc.dg/array-const-3.c
  c11a907de50c52966dc3fac763e376b5  gcc/testsuite/gcc.dg/array-init-1.c
  f5a2800fc5f21185bd9bdbd69e270c10  gcc/testsuite/gcc.dg/array-init-2.c
! 16599e9681376bb41e697edb0bca5c78  gcc/testsuite/gcc.dg/array-quals-1.c
  142997aec138f2b5487250ef14d6de54  gcc/testsuite/gcc.dg/array-quals-2.c
  889ad8871787262fb9533d339c717e6a  gcc/testsuite/gcc.dg/aru-2.c
! f4574483cf373610e6fdac72391101fc  gcc/testsuite/gcc.dg/asan/asan.exp
! eecad27701ac211149a09a067279d393  gcc/testsuite/gcc.dg/asan/has-feature-asan.c
  b8a049317908d7e0078316ad82437346  gcc/testsuite/gcc.dg/asan/nested-1.c
  738544a74dbe22f6a41201227dfe9cd9  gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c
  62ddd0ab49b2d8a39773ae7568d8aa74  gcc/testsuite/gcc.dg/asan/pr104449.c
*************** c87bfd1f1a20fb1eb27f8f10cab07c9b  gcc/te
*** 38617,38623 ****
  b989844b8de5feb2e33ec096aa812ec6  gcc/testsuite/gcc.dg/asan/pr108777-4.c
  e3f654469966ae1c0b0222fd88742a56  gcc/testsuite/gcc.dg/asan/pr108777-5.c
  50f6224f5546a4552995bf584c4638ff  gcc/testsuite/gcc.dg/asan/pr108777-6.c
! a5e988481cd66b8acf6c610b847cb713  gcc/testsuite/gcc.dg/asan/pr56417.c
  0c13e4008bb665f05b030eb42e43183f  gcc/testsuite/gcc.dg/asan/pr63845.c
  9a45b4bebab3901180dbe2a44efcd070  gcc/testsuite/gcc.dg/asan/pr64170.c
  73f04617a7b0ee3bd0e6f41d954ea876  gcc/testsuite/gcc.dg/asan/pr64981.c
--- 40358,40369 ----
  b989844b8de5feb2e33ec096aa812ec6  gcc/testsuite/gcc.dg/asan/pr108777-4.c
  e3f654469966ae1c0b0222fd88742a56  gcc/testsuite/gcc.dg/asan/pr108777-5.c
  50f6224f5546a4552995bf584c4638ff  gcc/testsuite/gcc.dg/asan/pr108777-6.c
! ea1638a3bd1b7f87abc2eda6d730213e  gcc/testsuite/gcc.dg/asan/pr110027.c
! c712bebc72e1dc5a56ae1f93009d40b0  gcc/testsuite/gcc.dg/asan/pr110676.c
! 845597d7b1eee7d785b1fcffccab7a3a  gcc/testsuite/gcc.dg/asan/pr112709-1.c
! 26f93981271f9059440b991b53a92413  gcc/testsuite/gcc.dg/asan/pr112709-2.c
! e6fb871193af3e998394dba285a504b4  gcc/testsuite/gcc.dg/asan/pr114687.c
! 82ef53c3f981dc7824247ad98871d787  gcc/testsuite/gcc.dg/asan/pr56417.c
  0c13e4008bb665f05b030eb42e43183f  gcc/testsuite/gcc.dg/asan/pr63845.c
  9a45b4bebab3901180dbe2a44efcd070  gcc/testsuite/gcc.dg/asan/pr64170.c
  73f04617a7b0ee3bd0e6f41d954ea876  gcc/testsuite/gcc.dg/asan/pr64981.c
*************** e370903640e76bf4ef407aafe0286689  gcc/te
*** 38680,38691 ****
  bb1414d3448a4d73560e8bf9f884913a  gcc/testsuite/gcc.dg/asm-qual-1.c
  dca9a54735325b919335c863e6e479ea  gcc/testsuite/gcc.dg/asm-qual-2.c
  3319a351e393bcc9ae1fa119f0f275af  gcc/testsuite/gcc.dg/asm-qual-3.c
! 21be0b7c6d1f2981f0cfaddd86371331  gcc/testsuite/gcc.dg/asm-scope-1.c
  5dabbc1d9f243b039dcdfade6279ce98  gcc/testsuite/gcc.dg/asm-wide-1.c
  085c27a754d9d7ab0376729bd31a4ffe  gcc/testsuite/gcc.dg/asr_div1.c
! 351eb206c98357428c5f86f2cff5b5e3  gcc/testsuite/gcc.dg/assign-warn-1.c
  d4b06bfbd73b9457d05a2d5cc2ccec4b  gcc/testsuite/gcc.dg/assign-warn-2.c
  0e7e975a9850cb9627daeae955a0ba5a  gcc/testsuite/gcc.dg/assign-warn-3.c
  c5cd0cd62ffcc672eb2eb03a4ddae2da  gcc/testsuite/gcc.dg/associative-math-1.c
  ceea17365edd23ebeee261b54fa830ff  gcc/testsuite/gcc.dg/associative-math-2.c
  81e03f04f7152ecc9489fafbac5d73a6  gcc/testsuite/gcc.dg/atomic-compare-exchange-1.c
--- 40426,40438 ----
  bb1414d3448a4d73560e8bf9f884913a  gcc/testsuite/gcc.dg/asm-qual-1.c
  dca9a54735325b919335c863e6e479ea  gcc/testsuite/gcc.dg/asm-qual-2.c
  3319a351e393bcc9ae1fa119f0f275af  gcc/testsuite/gcc.dg/asm-qual-3.c
! b2f25c9a2aff5b8452e5978350a5d567  gcc/testsuite/gcc.dg/asm-scope-1.c
  5dabbc1d9f243b039dcdfade6279ce98  gcc/testsuite/gcc.dg/asm-wide-1.c
  085c27a754d9d7ab0376729bd31a4ffe  gcc/testsuite/gcc.dg/asr_div1.c
! 24d2da511c2f44f7aaf594d9bfc4d069  gcc/testsuite/gcc.dg/assign-warn-1.c
  d4b06bfbd73b9457d05a2d5cc2ccec4b  gcc/testsuite/gcc.dg/assign-warn-2.c
  0e7e975a9850cb9627daeae955a0ba5a  gcc/testsuite/gcc.dg/assign-warn-3.c
+ a1c8ac007f1c47ed35e121221b6ac125  gcc/testsuite/gcc.dg/assign-warn-4.c
  c5cd0cd62ffcc672eb2eb03a4ddae2da  gcc/testsuite/gcc.dg/associative-math-1.c
  ceea17365edd23ebeee261b54fa830ff  gcc/testsuite/gcc.dg/associative-math-2.c
  81e03f04f7152ecc9489fafbac5d73a6  gcc/testsuite/gcc.dg/atomic-compare-exchange-1.c
*************** b6d936bcef333630cc9629b477556dad  gcc/te
*** 38730,38736 ****
  cfbaa184996beeec40d054222582f88d  gcc/testsuite/gcc.dg/atomic-store-4.c
  46ad754bc98b69bc0f3db1488d026dc2  gcc/testsuite/gcc.dg/atomic-store-5.c
  ce7e52f61e6fb003d8ae0bf9772503eb  gcc/testsuite/gcc.dg/atomic-store-6.c
! d9d35c69a32e52d212c6e45b3ff104c3  gcc/testsuite/gcc.dg/atomic/atomic.exp
  c341a56eb40ffc48dba93161f0413185  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-1.c
  fc7bfd846491d840116f75940e9fa4d5  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-2.c
  26c96c849ea8b781c5176b22d3ae0f3f  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-3.c
--- 40477,40483 ----
  cfbaa184996beeec40d054222582f88d  gcc/testsuite/gcc.dg/atomic-store-4.c
  46ad754bc98b69bc0f3db1488d026dc2  gcc/testsuite/gcc.dg/atomic-store-5.c
  ce7e52f61e6fb003d8ae0bf9772503eb  gcc/testsuite/gcc.dg/atomic-store-6.c
! 5b5cf6a6128558583eca3025d35d625b  gcc/testsuite/gcc.dg/atomic/atomic.exp
  c341a56eb40ffc48dba93161f0413185  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-1.c
  fc7bfd846491d840116f75940e9fa4d5  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-2.c
  26c96c849ea8b781c5176b22d3ae0f3f  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-3.c
*************** ea909df0e4688338991fa69e9b90ba96  gcc/te
*** 38738,38751 ****
  bbe14dec7e21cda18e741e4354d2c17e  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-5.c
  c104d4bbbf393aecc426659f83432644  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-6.c
  05addf91f06d7c4032d0a8225739b02c  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-7.c
! 4715a3e94c485bd11ec14432475a09ff  gcc/testsuite/gcc.dg/atomic/c2x-stdatomic-lockfree-char8_t.c
! 694fc247c4ef1168f1f8af47cf22e0b9  gcc/testsuite/gcc.dg/atomic/c2x-stdatomic-var-init-1.c
! b3bdb9867d68270b6e0ff4c7d6e896ff  gcc/testsuite/gcc.dg/atomic/gnu2x-stdatomic-lockfree-char8_t.c
  c130cbfd55eeb7a9e065d9b93d8876cb  gcc/testsuite/gcc.dg/atomic/pr65345-4.c
  81f6a9440e5c693903c6f41e0cf1d7f4  gcc/testsuite/gcc.dg/atomic/pr71675.c
  7f735c85c899d82ef58271a29282b6ea  gcc/testsuite/gcc.dg/atomic/pr80640-2.c
  c907f9793c458fd060bd9d17d9727a13  gcc/testsuite/gcc.dg/atomic/pr80640.c
  c66d1a6bfa9b756760b57e09442ed026  gcc/testsuite/gcc.dg/atomic/pr81316.c
  60f7be9d76d175a4f8caf1410ff40fb1  gcc/testsuite/gcc.dg/atomic/stdatomic-compare-exchange-1.c
  6bf917621324530748010eadfe9a2514  gcc/testsuite/gcc.dg/atomic/stdatomic-compare-exchange-2.c
  c6a53ca1a6f31a5209313db2e897d09c  gcc/testsuite/gcc.dg/atomic/stdatomic-compare-exchange-3.c
--- 40485,40500 ----
  bbe14dec7e21cda18e741e4354d2c17e  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-5.c
  c104d4bbbf393aecc426659f83432644  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-6.c
  05addf91f06d7c4032d0a8225739b02c  gcc/testsuite/gcc.dg/atomic/c11-atomic-exec-7.c
! 1554e4e42e4b429ec2da41c28328ef8c  gcc/testsuite/gcc.dg/atomic/c23-stdatomic-lockfree-char8_t.c
! 834a59cbb64f0968668c34fbe8f37609  gcc/testsuite/gcc.dg/atomic/c23-stdatomic-var-init-1.c
! 0a46c7647e3b737949ff39771cc900da  gcc/testsuite/gcc.dg/atomic/gnu23-stdatomic-lockfree-char8_t.c
  c130cbfd55eeb7a9e065d9b93d8876cb  gcc/testsuite/gcc.dg/atomic/pr65345-4.c
  81f6a9440e5c693903c6f41e0cf1d7f4  gcc/testsuite/gcc.dg/atomic/pr71675.c
  7f735c85c899d82ef58271a29282b6ea  gcc/testsuite/gcc.dg/atomic/pr80640-2.c
  c907f9793c458fd060bd9d17d9727a13  gcc/testsuite/gcc.dg/atomic/pr80640.c
  c66d1a6bfa9b756760b57e09442ed026  gcc/testsuite/gcc.dg/atomic/pr81316.c
+ 4615e713f6fc2479a33a07167c992d6d  gcc/testsuite/gcc.dg/atomic/stdatomic-bitint-1.c
+ 1e6e55ecfed7d73e26f5af020857a902  gcc/testsuite/gcc.dg/atomic/stdatomic-bitint-2.c
  60f7be9d76d175a4f8caf1410ff40fb1  gcc/testsuite/gcc.dg/atomic/stdatomic-compare-exchange-1.c
  6bf917621324530748010eadfe9a2514  gcc/testsuite/gcc.dg/atomic/stdatomic-compare-exchange-2.c
  c6a53ca1a6f31a5209313db2e897d09c  gcc/testsuite/gcc.dg/atomic/stdatomic-compare-exchange-3.c
*************** e5739bd91872b577d6fc4188753b0a1c  gcc/te
*** 38756,38763 ****
  b941ba30235ebfdf6794f3dec074d393  gcc/testsuite/gcc.dg/atomic/stdatomic-exchange-4.c
  39bccba9e42956e96898b7da6b71dfae  gcc/testsuite/gcc.dg/atomic/stdatomic-fence-2.c
  107a1c830ddb5858537e6ef7c8e5a639  gcc/testsuite/gcc.dg/atomic/stdatomic-fence.c
! 53bba314dfb731dc7c7707dd17c31f7d  gcc/testsuite/gcc.dg/atomic/stdatomic-flag-2.c
! 2f82af7481ee9b3a527f82ad27e60c27  gcc/testsuite/gcc.dg/atomic/stdatomic-flag.c
  d13f2629a72c2e457e07b1b7789065d4  gcc/testsuite/gcc.dg/atomic/stdatomic-generic.c
  7bd1b8ac9c27168948eb68779ec2a1c2  gcc/testsuite/gcc.dg/atomic/stdatomic-init.c
  0e74c5c37a2473ebf9b4a46360609818  gcc/testsuite/gcc.dg/atomic/stdatomic-kill-dep.c
--- 40505,40512 ----
  b941ba30235ebfdf6794f3dec074d393  gcc/testsuite/gcc.dg/atomic/stdatomic-exchange-4.c
  39bccba9e42956e96898b7da6b71dfae  gcc/testsuite/gcc.dg/atomic/stdatomic-fence-2.c
  107a1c830ddb5858537e6ef7c8e5a639  gcc/testsuite/gcc.dg/atomic/stdatomic-fence.c
! c8caff9231fe38b65f2c87b2869aea50  gcc/testsuite/gcc.dg/atomic/stdatomic-flag-2.c
! 692ecd3103ce040520ddd22ee72d889f  gcc/testsuite/gcc.dg/atomic/stdatomic-flag.c
  d13f2629a72c2e457e07b1b7789065d4  gcc/testsuite/gcc.dg/atomic/stdatomic-generic.c
  7bd1b8ac9c27168948eb68779ec2a1c2  gcc/testsuite/gcc.dg/atomic/stdatomic-init.c
  0e74c5c37a2473ebf9b4a46360609818  gcc/testsuite/gcc.dg/atomic/stdatomic-kill-dep.c
*************** cf011205fa8585115ba0b4456ca190b2  gcc/te
*** 38776,38791 ****
  59364eb5ee91b59390edeb4b4d0da025  gcc/testsuite/gcc.dg/atomic/stdatomic-store-3.c
  c5eb132664fcdccfe3b42e49e06fba83  gcc/testsuite/gcc.dg/atomic/stdatomic-store-4.c
  c89f0e1e985d6078d674e80e7ee5d409  gcc/testsuite/gcc.dg/atomic/stdatomic-vm.c
! 7a95cc948c901f13a58b40e8863e4fea  gcc/testsuite/gcc.dg/attr-access-2.c
  980513435d8c2f32d3b2d0a40cbcb6e6  gcc/testsuite/gcc.dg/attr-access-3.c
  3188310f8a182999a87b02cda61cacb6  gcc/testsuite/gcc.dg/attr-access-4.c
  51f049631e825521091ac9309103dc49  gcc/testsuite/gcc.dg/attr-access-5.c
  88fb544053c4fae3ec2eb1a600efb88a  gcc/testsuite/gcc.dg/attr-access-none.c
  5add97ebb6a9fee090a771dfb77b535f  gcc/testsuite/gcc.dg/attr-access-read-only-2.c
! a245c3a9d22aaced37b0f8a6a394aa03  gcc/testsuite/gcc.dg/attr-access-read-only.c
  17f32f325f19dd03827f8c7cf485fd9c  gcc/testsuite/gcc.dg/attr-access-read-write-2.c
! 7d1d87c5a1b0c30e4c6387185af21229  gcc/testsuite/gcc.dg/attr-access-read-write.c
! 31057904a95020c421865f2cc8c81dbb  gcc/testsuite/gcc.dg/attr-access-write-only.c
  54188f3eaf9698b14ee4b2bad777cc98  gcc/testsuite/gcc.dg/attr-access.c
  bfcf3d61cfaeb70ffaf79290c46dc732  gcc/testsuite/gcc.dg/attr-alias-1.c
  e1871215b9eef07b10dc8c1bf21c038a  gcc/testsuite/gcc.dg/attr-alias-2.c
--- 40525,40540 ----
  59364eb5ee91b59390edeb4b4d0da025  gcc/testsuite/gcc.dg/atomic/stdatomic-store-3.c
  c5eb132664fcdccfe3b42e49e06fba83  gcc/testsuite/gcc.dg/atomic/stdatomic-store-4.c
  c89f0e1e985d6078d674e80e7ee5d409  gcc/testsuite/gcc.dg/atomic/stdatomic-vm.c
! ac031b731ade11227cad49839195a986  gcc/testsuite/gcc.dg/attr-access-2.c
  980513435d8c2f32d3b2d0a40cbcb6e6  gcc/testsuite/gcc.dg/attr-access-3.c
  3188310f8a182999a87b02cda61cacb6  gcc/testsuite/gcc.dg/attr-access-4.c
  51f049631e825521091ac9309103dc49  gcc/testsuite/gcc.dg/attr-access-5.c
  88fb544053c4fae3ec2eb1a600efb88a  gcc/testsuite/gcc.dg/attr-access-none.c
  5add97ebb6a9fee090a771dfb77b535f  gcc/testsuite/gcc.dg/attr-access-read-only-2.c
! 283b605466f2ffd415e9efd17992c649  gcc/testsuite/gcc.dg/attr-access-read-only.c
  17f32f325f19dd03827f8c7cf485fd9c  gcc/testsuite/gcc.dg/attr-access-read-write-2.c
! 3377076f4eaac4fb2789952babe9ea7a  gcc/testsuite/gcc.dg/attr-access-read-write.c
! 3a26331c2c5ccfb65b5a08ce233569dc  gcc/testsuite/gcc.dg/attr-access-write-only.c
  54188f3eaf9698b14ee4b2bad777cc98  gcc/testsuite/gcc.dg/attr-access.c
  bfcf3d61cfaeb70ffaf79290c46dc732  gcc/testsuite/gcc.dg/attr-alias-1.c
  e1871215b9eef07b10dc8c1bf21c038a  gcc/testsuite/gcc.dg/attr-alias-2.c
*************** ea7bcf6a72a5617495c3e237cdd515f8  gcc/te
*** 38814,38824 ****
  52c6f276a374df0f896123bfcbe0aaaa  gcc/testsuite/gcc.dg/attr-alloc_size-9.c
  905e80d8b2e439cd15ed0597458ce2ec  gcc/testsuite/gcc.dg/attr-alloc_size.c
  bff5bf12c7a752b89f17af335428c788  gcc/testsuite/gcc.dg/attr-alwaysinline.c
! 572d7d5112ae72abef228193d3cd55c7  gcc/testsuite/gcc.dg/attr-assume-1.c
! b44772fbcd2e08350b35e4dd6946f2a4  gcc/testsuite/gcc.dg/attr-assume-2.c
! b4a8b630e47887fcd32a48a20c7edabb  gcc/testsuite/gcc.dg/attr-assume-3.c
! b16875f45f28b5a0af6776ba93cb39a9  gcc/testsuite/gcc.dg/attr-assume-4.c
  6c976d06223e8872a9662f8343594517  gcc/testsuite/gcc.dg/attr-assume-5.c
  6774f30903239eb0b974c38374bce074  gcc/testsuite/gcc.dg/attr-assume_aligned-1.c
  02d7d6aadac12a028dedd724bb71f324  gcc/testsuite/gcc.dg/attr-assume_aligned-2.c
  381dde82adbf6ab920a6cf273228f01e  gcc/testsuite/gcc.dg/attr-assume_aligned-3.c
--- 40563,40574 ----
  52c6f276a374df0f896123bfcbe0aaaa  gcc/testsuite/gcc.dg/attr-alloc_size-9.c
  905e80d8b2e439cd15ed0597458ce2ec  gcc/testsuite/gcc.dg/attr-alloc_size.c
  bff5bf12c7a752b89f17af335428c788  gcc/testsuite/gcc.dg/attr-alwaysinline.c
! ef6d131706645894bf2f103f1aaf2b23  gcc/testsuite/gcc.dg/attr-assume-1.c
! 35231d5d207c6b7f61bdb33a76210b99  gcc/testsuite/gcc.dg/attr-assume-2.c
! d2d4478fc167597aeb87706df3baedcc  gcc/testsuite/gcc.dg/attr-assume-3.c
! 419d238000def9de9cdda28f1536b68e  gcc/testsuite/gcc.dg/attr-assume-4.c
  6c976d06223e8872a9662f8343594517  gcc/testsuite/gcc.dg/attr-assume-5.c
+ c4aab9d4106e9ae98e0807ad6bf14aa5  gcc/testsuite/gcc.dg/attr-assume-6.c
  6774f30903239eb0b974c38374bce074  gcc/testsuite/gcc.dg/attr-assume_aligned-1.c
  02d7d6aadac12a028dedd724bb71f324  gcc/testsuite/gcc.dg/attr-assume_aligned-2.c
  381dde82adbf6ab920a6cf273228f01e  gcc/testsuite/gcc.dg/attr-assume_aligned-3.c
*************** bb1973e41826aae1a7a467d0b6906cab  gcc/te
*** 38857,38863 ****
  ae3bdda9f1b989c7eed8752994cdb481  gcc/testsuite/gcc.dg/attr-nonstring-4.c
  91e470676d23307e9650ac576093d59d  gcc/testsuite/gcc.dg/attr-nonstring.c
  fa14ccaa355e91828fbdd1d92f202deb  gcc/testsuite/gcc.dg/attr-noreturn.c
! f1efff831d3f1a374ca2ebdb5ceacdb1  gcc/testsuite/gcc.dg/attr-returns-nonnull.c
  27da52df078954faf55a7223c4ea08ac  gcc/testsuite/gcc.dg/attr-section.c
  d3600675bb718f7ec9a87dfa91e38b66  gcc/testsuite/gcc.dg/attr-unavailable-1.c
  4312b0296269a552a6836037f67dabef  gcc/testsuite/gcc.dg/attr-unavailable-2.c
--- 40607,40613 ----
  ae3bdda9f1b989c7eed8752994cdb481  gcc/testsuite/gcc.dg/attr-nonstring-4.c
  91e470676d23307e9650ac576093d59d  gcc/testsuite/gcc.dg/attr-nonstring.c
  fa14ccaa355e91828fbdd1d92f202deb  gcc/testsuite/gcc.dg/attr-noreturn.c
! e14823b126c48a83a9d5a1dea1c272d0  gcc/testsuite/gcc.dg/attr-returns-nonnull.c
  27da52df078954faf55a7223c4ea08ac  gcc/testsuite/gcc.dg/attr-section.c
  d3600675bb718f7ec9a87dfa91e38b66  gcc/testsuite/gcc.dg/attr-unavailable-1.c
  4312b0296269a552a6836037f67dabef  gcc/testsuite/gcc.dg/attr-unavailable-2.c
*************** fa7929b130df76e25cb947b7f8fdc470  gcc/te
*** 38870,38876 ****
  db8374eda20551d6cd60bccb85b32576  gcc/testsuite/gcc.dg/attr-weak-hidden-1.c
  9d67dfe9d24216b60cb82426bce86193  gcc/testsuite/gcc.dg/attr-weak-hidden-1a.c
  9ae36569202bfebd5eef9afc2457f445  gcc/testsuite/gcc.dg/attr-weakref-1-darwin.c
! d3ad2f245a32e99333ec2c853ab3da93  gcc/testsuite/gcc.dg/attr-weakref-1.c
  f348c9eb66b29ddb21e87abea341a730  gcc/testsuite/gcc.dg/attr-weakref-1a.c
  b32f0ffe033e8bca2840070b64fc6314  gcc/testsuite/gcc.dg/attr-weakref-1b.c
  b192f8a885f9deddc53ade0456fd18cb  gcc/testsuite/gcc.dg/attr-weakref-2.c
--- 40620,40626 ----
  db8374eda20551d6cd60bccb85b32576  gcc/testsuite/gcc.dg/attr-weak-hidden-1.c
  9d67dfe9d24216b60cb82426bce86193  gcc/testsuite/gcc.dg/attr-weak-hidden-1a.c
  9ae36569202bfebd5eef9afc2457f445  gcc/testsuite/gcc.dg/attr-weakref-1-darwin.c
! b22f1e0f9e7cb37d1f43ed156f4751f7  gcc/testsuite/gcc.dg/attr-weakref-1.c
  f348c9eb66b29ddb21e87abea341a730  gcc/testsuite/gcc.dg/attr-weakref-1a.c
  b32f0ffe033e8bca2840070b64fc6314  gcc/testsuite/gcc.dg/attr-weakref-1b.c
  b192f8a885f9deddc53ade0456fd18cb  gcc/testsuite/gcc.dg/attr-weakref-2.c
*************** da68ac31262c3fbaefafb059699ba37f  gcc/te
*** 38921,38927 ****
  763f5a680b343d517c92f9c6b593a423  gcc/testsuite/gcc.dg/auto-init-unused-1.c
  728ad18ac3017195abfa17386cbb7a12  gcc/testsuite/gcc.dg/auto-type-1.c
  c5e609e52b13380aa093916bc7d09fce  gcc/testsuite/gcc.dg/auto-type-2.c
! f7084329ee22da1f82725f2bb71e8140  gcc/testsuite/gcc.dg/autopar/autopar.exp
  aa4d5a35793f7cfe360cd57078e1adc3  gcc/testsuite/gcc.dg/autopar/outer-1.c
  025c98b5845d57489814930464df1724  gcc/testsuite/gcc.dg/autopar/outer-2.c
  89a6c222b7a3ca9428f07d4ea8489cee  gcc/testsuite/gcc.dg/autopar/outer-3.c
--- 40671,40677 ----
  763f5a680b343d517c92f9c6b593a423  gcc/testsuite/gcc.dg/auto-init-unused-1.c
  728ad18ac3017195abfa17386cbb7a12  gcc/testsuite/gcc.dg/auto-type-1.c
  c5e609e52b13380aa093916bc7d09fce  gcc/testsuite/gcc.dg/auto-type-2.c
! 5276382cbc141e3aa317d3f2b608087b  gcc/testsuite/gcc.dg/autopar/autopar.exp
  aa4d5a35793f7cfe360cd57078e1adc3  gcc/testsuite/gcc.dg/autopar/outer-1.c
  025c98b5845d57489814930464df1724  gcc/testsuite/gcc.dg/autopar/outer-2.c
  89a6c222b7a3ca9428f07d4ea8489cee  gcc/testsuite/gcc.dg/autopar/outer-3.c
*************** bed618cfd7222010217a3fe29f1175a8  gcc/te
*** 38999,39032 ****
  ec5b9b1f32647a9cacda264af9d27b8f  gcc/testsuite/gcc.dg/bf-ms-layout.c
  7f07619c88610f37cf243e4e9548534f  gcc/testsuite/gcc.dg/bf-no-ms-layout.c
  0e3716c5009f5c5e6a6e6e89d7cb2051  gcc/testsuite/gcc.dg/bf-spl1.c
! 57cf54780d88a3f417a30d390ef6649e  gcc/testsuite/gcc.dg/bic-bitmask-13.c
! 538f63b8c374b19a356184ca0a517f3c  gcc/testsuite/gcc.dg/bic-bitmask-14.c
! b8787deaac57627a4fa9f02078cfc415  gcc/testsuite/gcc.dg/bic-bitmask-15.c
! ee21c066d59e8e04ed47a79b46b1f6ae  gcc/testsuite/gcc.dg/bic-bitmask-16.c
! 6a3b4c949d2284d53ba74da787a2517d  gcc/testsuite/gcc.dg/bic-bitmask-17.c
! 37a739d4ed53fce5148aca0d09e6929a  gcc/testsuite/gcc.dg/bic-bitmask-18.c
! 2428f7a4372a0e4028f1d2fbe742c515  gcc/testsuite/gcc.dg/bic-bitmask-19.c
! 2dd3590815f2972b3111c5b729593875  gcc/testsuite/gcc.dg/bic-bitmask-20.c
! 0123b2ed36e1f8b664eb51317411404c  gcc/testsuite/gcc.dg/bic-bitmask-21.c
! 6156aeedc0e5a6db47ab9443faeaf667  gcc/testsuite/gcc.dg/bic-bitmask-22.c
! 15568b6b6498cb4d440a5f7ef6a5aadd  gcc/testsuite/gcc.dg/bic-bitmask-7.c
  b253b577b50b503239b7ab43dc7d80ee  gcc/testsuite/gcc.dg/bic-bitmask.h
  f4bf2e19a922fd5744282ba866d43442  gcc/testsuite/gcc.dg/binary-constants-1.c
! 82e7cacde02c83919fa111dccb87525b  gcc/testsuite/gcc.dg/binary-constants-2.c
! c54768f9350a4a646eac0814d35f84bf  gcc/testsuite/gcc.dg/binary-constants-3.c
  16e2db9209248819980447a37415a521  gcc/testsuite/gcc.dg/binary-constants-4.c
  a86091ec273ff27540aaaa095b9a958c  gcc/testsuite/gcc.dg/binop-notand1.c
! 3774003a9f55357dd8778aa645322ead  gcc/testsuite/gcc.dg/binop-notand1a.c
  94d55159d4fca033a6b4c780499bf287  gcc/testsuite/gcc.dg/binop-notand2.c
  94d55159d4fca033a6b4c780499bf287  gcc/testsuite/gcc.dg/binop-notand2a.c
  37f646e11b5524025c16cd47380cd239  gcc/testsuite/gcc.dg/binop-notand3.c
  ab6bf518be9b15d00f11ceeb9dd18c1e  gcc/testsuite/gcc.dg/binop-notand3a.c
  0f4a778560e31c0b6b0564be2ad9a4fd  gcc/testsuite/gcc.dg/binop-notand4.c
! 4aa1f48d12acde882d2ba6b4890a0fa0  gcc/testsuite/gcc.dg/binop-notand4a.c
  bd17b58ab81eefa009ce7fd25738e793  gcc/testsuite/gcc.dg/binop-notand5.c
  86a81ac151bf2a61337b3c53b3c9650f  gcc/testsuite/gcc.dg/binop-notand5a.c
  0b87dacd7c19bbcffd64f729117a1a2c  gcc/testsuite/gcc.dg/binop-notand6.c
  f6cb12dc35add6567857fba28dec8e08  gcc/testsuite/gcc.dg/binop-notand6a.c
  c1bcff5867424bfc6abed4c56291ce43  gcc/testsuite/gcc.dg/binop-notor1.c
  6056f0c7eece7fed6c85bc6aaa856abe  gcc/testsuite/gcc.dg/binop-notor2.c
  c53b5103cda89a93b0842b092a718793  gcc/testsuite/gcc.dg/binop-notxor1.c
--- 40749,40786 ----
  ec5b9b1f32647a9cacda264af9d27b8f  gcc/testsuite/gcc.dg/bf-ms-layout.c
  7f07619c88610f37cf243e4e9548534f  gcc/testsuite/gcc.dg/bf-no-ms-layout.c
  0e3716c5009f5c5e6a6e6e89d7cb2051  gcc/testsuite/gcc.dg/bf-spl1.c
! d5636c2b6ce086f7ade5f9ed831207d6  gcc/testsuite/gcc.dg/bic-bitmask-13.c
! e2c6256dea00adad6cec89c1a5510ae1  gcc/testsuite/gcc.dg/bic-bitmask-14.c
! 0dec9555604a3b8f5d78c6d31155ecb8  gcc/testsuite/gcc.dg/bic-bitmask-15.c
! 69129385a4e078635400dcd4bf65be9b  gcc/testsuite/gcc.dg/bic-bitmask-16.c
! 1a68b3ee26ffc5825c50695a23b026f4  gcc/testsuite/gcc.dg/bic-bitmask-17.c
! 72efb9f349afee3396ba0c21d39eace2  gcc/testsuite/gcc.dg/bic-bitmask-18.c
! 39894bcca8b409e3a296ae8b8d986bc7  gcc/testsuite/gcc.dg/bic-bitmask-19.c
! eb324c93bfa3f0ceb09e9c319c05f453  gcc/testsuite/gcc.dg/bic-bitmask-20.c
! 4d78d195751066816028dfbea0c4be9e  gcc/testsuite/gcc.dg/bic-bitmask-21.c
! a3608531b14708a75a01dbbfe1ae8a42  gcc/testsuite/gcc.dg/bic-bitmask-22.c
! a725157808b0701d6dbd1fcc5da6c935  gcc/testsuite/gcc.dg/bic-bitmask-7.c
  b253b577b50b503239b7ab43dc7d80ee  gcc/testsuite/gcc.dg/bic-bitmask.h
  f4bf2e19a922fd5744282ba866d43442  gcc/testsuite/gcc.dg/binary-constants-1.c
! f46831295fd7c887c6e3a0019af1c330  gcc/testsuite/gcc.dg/binary-constants-2.c
! 1f084b806aa281e3847fed817a3cc746  gcc/testsuite/gcc.dg/binary-constants-3.c
  16e2db9209248819980447a37415a521  gcc/testsuite/gcc.dg/binary-constants-4.c
+ 528a6ca53d505cabbcde1bf4e702abf5  gcc/testsuite/gcc.dg/binop-andeq1.c
+ 1757063091a3425aa096840d2358d076  gcc/testsuite/gcc.dg/binop-andeq2.c
  a86091ec273ff27540aaaa095b9a958c  gcc/testsuite/gcc.dg/binop-notand1.c
! 583452395b9344d541687e9491994c5b  gcc/testsuite/gcc.dg/binop-notand1a.c
  94d55159d4fca033a6b4c780499bf287  gcc/testsuite/gcc.dg/binop-notand2.c
  94d55159d4fca033a6b4c780499bf287  gcc/testsuite/gcc.dg/binop-notand2a.c
  37f646e11b5524025c16cd47380cd239  gcc/testsuite/gcc.dg/binop-notand3.c
  ab6bf518be9b15d00f11ceeb9dd18c1e  gcc/testsuite/gcc.dg/binop-notand3a.c
  0f4a778560e31c0b6b0564be2ad9a4fd  gcc/testsuite/gcc.dg/binop-notand4.c
! b36ffed608a4b6b9656522019f4ef7fc  gcc/testsuite/gcc.dg/binop-notand4a.c
  bd17b58ab81eefa009ce7fd25738e793  gcc/testsuite/gcc.dg/binop-notand5.c
  86a81ac151bf2a61337b3c53b3c9650f  gcc/testsuite/gcc.dg/binop-notand5a.c
  0b87dacd7c19bbcffd64f729117a1a2c  gcc/testsuite/gcc.dg/binop-notand6.c
  f6cb12dc35add6567857fba28dec8e08  gcc/testsuite/gcc.dg/binop-notand6a.c
+ b2afb2c8c6105183481b2d64770140ea  gcc/testsuite/gcc.dg/binop-notand7.c
+ 44516a8ca2d0a21197a633ebe7c1cb68  gcc/testsuite/gcc.dg/binop-notand7a.c
  c1bcff5867424bfc6abed4c56291ce43  gcc/testsuite/gcc.dg/binop-notor1.c
  6056f0c7eece7fed6c85bc6aaa856abe  gcc/testsuite/gcc.dg/binop-notor2.c
  c53b5103cda89a93b0842b092a718793  gcc/testsuite/gcc.dg/binop-notxor1.c
*************** d84cc330b6f4899456411b2b38d33213  gcc/te
*** 39058,39065 ****
--- 40812,40925 ----
  2deee133cfba2462fb5330fdbbd44569  gcc/testsuite/gcc.dg/bitfld-7.c
  63e9a778fd127314abe9a4d8096cc081  gcc/testsuite/gcc.dg/bitfld-8.c
  c9bbd70f3dbd7558a9c1c7a6e5901e7b  gcc/testsuite/gcc.dg/bitfld-9.c
+ 7ab5f12c4f27d2061d9e1a1c0e890574  gcc/testsuite/gcc.dg/bitint-1.c
+ 0ca12f56dfbe5ecde5d92f1414f42953  gcc/testsuite/gcc.dg/bitint-10.c
+ adc4e05b75a2f39c55c70faa85057d12  gcc/testsuite/gcc.dg/bitint-100.c
+ 1b439c3e714c8daed289dfd67323281e  gcc/testsuite/gcc.dg/bitint-101.c
+ 085009b34f92b0d477948c78e369f6f8  gcc/testsuite/gcc.dg/bitint-102.c
+ 1b14f757218f4ae0b76ba45cc25a4e0a  gcc/testsuite/gcc.dg/bitint-103.c
+ a865bb2e62773b29c2dbbfe2b786a4b3  gcc/testsuite/gcc.dg/bitint-104.c
+ b71c538a1f7051f92330848d2a3d460a  gcc/testsuite/gcc.dg/bitint-105.c
+ bb7d4e0bf6a65f0461a509285654b4ec  gcc/testsuite/gcc.dg/bitint-11.c
+ c18469175af3ebdf263d34347ebe2d40  gcc/testsuite/gcc.dg/bitint-12.c
+ aa6e262f1d508ec048e76ac4af6675a4  gcc/testsuite/gcc.dg/bitint-13.c
+ e6db29256563268a3c327706e78c79a4  gcc/testsuite/gcc.dg/bitint-14.c
+ c748706240385773f27caba61cbbcbd8  gcc/testsuite/gcc.dg/bitint-15.c
+ acfbe287f11e3faf0020cde57be42822  gcc/testsuite/gcc.dg/bitint-16.c
+ 5fe723ea15779d8c01ab2c2fd255acaf  gcc/testsuite/gcc.dg/bitint-17.c
+ 9e2c05061994e149dc098f6d3c700502  gcc/testsuite/gcc.dg/bitint-18.c
+ d70a349d323812189cf4bc8173959cde  gcc/testsuite/gcc.dg/bitint-19.c
+ bdf9e5b419dbfede10d28debd2aa0972  gcc/testsuite/gcc.dg/bitint-2.c
+ b9ad239322a544a1a5da937c25d34506  gcc/testsuite/gcc.dg/bitint-20.c
+ 50cd34c495db92ce323b97ed86290853  gcc/testsuite/gcc.dg/bitint-21.c
+ 54dfc7d828feb931f841021bcb8060f4  gcc/testsuite/gcc.dg/bitint-22.c
+ a3bc47d8a02391473843f0030a28d4c9  gcc/testsuite/gcc.dg/bitint-23.c
+ 5d7ba717b34a6c831ca9fd6cb7afcadf  gcc/testsuite/gcc.dg/bitint-24.c
+ a01e3a82ad637d2bd98e5f55ec051cfe  gcc/testsuite/gcc.dg/bitint-25.c
+ 14f891e5f0c9c3ddbbbf6c0e01f0bf5b  gcc/testsuite/gcc.dg/bitint-26.c
+ 60fbe90e4632d909b35e1bf02d856fa9  gcc/testsuite/gcc.dg/bitint-27.c
+ 2117ba9ec8a8cfedcd5d7c6c62d8faf5  gcc/testsuite/gcc.dg/bitint-28.c
+ f2fd3f66238a769b6b8646a44a1187ac  gcc/testsuite/gcc.dg/bitint-29.c
+ ebc1b2e969808b30e5a3b76f4f336d34  gcc/testsuite/gcc.dg/bitint-3.c
+ 549dedddb5ef6207ce457ce1e4bf8b46  gcc/testsuite/gcc.dg/bitint-30.c
+ a3f54a460ab861053aea9b3fea5ea7c3  gcc/testsuite/gcc.dg/bitint-31.c
+ 49c3bc08813cea383767dedb2d145769  gcc/testsuite/gcc.dg/bitint-32.c
+ 5d41c4fb8fed8ffa0df8e9e4c2820ffa  gcc/testsuite/gcc.dg/bitint-33.c
+ 6051db01d14d62e1d01c53c4cefa3485  gcc/testsuite/gcc.dg/bitint-34.c
+ 3a1d58bd9d1b8dfd20a3e1880438fd9a  gcc/testsuite/gcc.dg/bitint-35.c
+ be81ff81f4841340e5d33ff653d79b8e  gcc/testsuite/gcc.dg/bitint-36.c
+ 9ab6f9b1875a09846bd81fdba3e3a242  gcc/testsuite/gcc.dg/bitint-37.c
+ a2687a9d1c2c92975babfaef683f8e4a  gcc/testsuite/gcc.dg/bitint-38.c
+ 77c74bc5ddcc7e121025f61e27568e4a  gcc/testsuite/gcc.dg/bitint-39.c
+ 64babc2aabb0add559888ab37dda200a  gcc/testsuite/gcc.dg/bitint-4.c
+ dcd069efa3f42b57d53dd8aa09069161  gcc/testsuite/gcc.dg/bitint-40.c
+ 44a49afee3b33d0292ff5e03b5127b62  gcc/testsuite/gcc.dg/bitint-41.c
+ 626abbeabb9fa538d62f584524986926  gcc/testsuite/gcc.dg/bitint-42.c
+ 7dca2d68373b455c29fc028b7b764053  gcc/testsuite/gcc.dg/bitint-43.c
+ 75e5fccb5b7005272d75af0d6c919bf5  gcc/testsuite/gcc.dg/bitint-44.c
+ 276f53536d45831b038a6bd45e6676f2  gcc/testsuite/gcc.dg/bitint-45.c
+ a4c53e97357f604c3097d7ea5aebab55  gcc/testsuite/gcc.dg/bitint-46.c
+ 91907c7193f5e159a15152a476772bfe  gcc/testsuite/gcc.dg/bitint-47.c
+ 4e8f42338a9aff13320a4faaa0fb9921  gcc/testsuite/gcc.dg/bitint-48.c
+ a8b538da44a2a8f4208a741e23d53ed5  gcc/testsuite/gcc.dg/bitint-49.c
+ bd9e97723c2bc21b264e6f3d93d02d0c  gcc/testsuite/gcc.dg/bitint-5.c
+ 5a80f6e2624e73834b45b3f82e76c4fd  gcc/testsuite/gcc.dg/bitint-50.c
+ ab12d8955a76903038e39bea084ebad4  gcc/testsuite/gcc.dg/bitint-51.c
+ f01b63263eb846520590cb845418860b  gcc/testsuite/gcc.dg/bitint-52.c
+ 709556bcba78ee3fa43b79578225f8de  gcc/testsuite/gcc.dg/bitint-53.c
+ e3107dd57adc3f063153bc59c17fe160  gcc/testsuite/gcc.dg/bitint-54.c
+ d5aeede06e0f975bcc1c6b6deb7ee3fb  gcc/testsuite/gcc.dg/bitint-55.c
+ e5587c60c5e1ab1fae1704edabf89de0  gcc/testsuite/gcc.dg/bitint-56.c
+ 6d5464a3157c7df3bec0519d564f44e7  gcc/testsuite/gcc.dg/bitint-57.c
+ ced919fd368ae7f64256782424ca7451  gcc/testsuite/gcc.dg/bitint-58.c
+ facfab15179a4ffdc96955cf214d3aab  gcc/testsuite/gcc.dg/bitint-59.c
+ 334034c584e5bad1ddfc74080b3e55c3  gcc/testsuite/gcc.dg/bitint-6.c
+ efcda230e507945f45af2470e1eee934  gcc/testsuite/gcc.dg/bitint-60.c
+ 64cab7e3ddf11e275e38778decfdc9f6  gcc/testsuite/gcc.dg/bitint-61.c
+ 5a869eb8a9e1c4302168bd85c0249f03  gcc/testsuite/gcc.dg/bitint-62.c
+ 563812d077b20804882fa44fdb065022  gcc/testsuite/gcc.dg/bitint-63.c
+ b7c038fff0ee3bc63f81c456b5059913  gcc/testsuite/gcc.dg/bitint-64.c
+ bccec9bd537e97a364cbda4a2d62476a  gcc/testsuite/gcc.dg/bitint-65.c
+ 27431421d934bc651482d4100cc78d9a  gcc/testsuite/gcc.dg/bitint-66.c
+ 7e1b1f5d37fa2432c23afd2c71abf4a7  gcc/testsuite/gcc.dg/bitint-67.c
+ c35cf33cf32cab9645c4ef8efd6e866a  gcc/testsuite/gcc.dg/bitint-68.c
+ 86b5784d3dbe3b117b8a80a0e739ac74  gcc/testsuite/gcc.dg/bitint-69.c
+ 71b3618cfa748314922a9d037facdf94  gcc/testsuite/gcc.dg/bitint-7.c
+ 582680032d893a2d60c7fa0218aa4c43  gcc/testsuite/gcc.dg/bitint-70.c
+ f680546247c59ca6ff5b0655aea8a2e3  gcc/testsuite/gcc.dg/bitint-71.c
+ 65c351a1a8d371dc1d405f67963aea1b  gcc/testsuite/gcc.dg/bitint-72.c
+ 4b3a6629b6188efc216ea456f9f9b73e  gcc/testsuite/gcc.dg/bitint-73.c
+ d92830fe60efccc07854687bbbbec644  gcc/testsuite/gcc.dg/bitint-74.c
+ fcc05c0b4469f4a4284880943911e37c  gcc/testsuite/gcc.dg/bitint-75.c
+ 6b152a359c9cc797494b98e01790e40d  gcc/testsuite/gcc.dg/bitint-76.c
+ 0f542088d962583842b6ba76eedc9f16  gcc/testsuite/gcc.dg/bitint-77.c
+ 9aed7e4c9c8e6284367fc6f4a4cdd408  gcc/testsuite/gcc.dg/bitint-78.c
+ a7a3a600e13361b183c11c6109f9cb26  gcc/testsuite/gcc.dg/bitint-79.c
+ a8e8d012203ddecc536737f35ed3a475  gcc/testsuite/gcc.dg/bitint-8.c
+ 17aea4dfd505742172a38e9eb5b3f8c1  gcc/testsuite/gcc.dg/bitint-80.c
+ a69d9b23301c8c3c0559678aef6041cf  gcc/testsuite/gcc.dg/bitint-81.c
+ cc114e6405bd6429791c5b9fa2c01d64  gcc/testsuite/gcc.dg/bitint-82.c
+ ad4b46959a415fd6fe809f5c3172c756  gcc/testsuite/gcc.dg/bitint-83.c
+ 399915fc1d697a105151a56d1ba6d268  gcc/testsuite/gcc.dg/bitint-84.c
+ 201c3f5dadeb06fd6db60289c8a66f16  gcc/testsuite/gcc.dg/bitint-85.c
+ 4a573ddb39bacb301cf0956509960011  gcc/testsuite/gcc.dg/bitint-86.c
+ 7ef70c6e1ec81a3611562c04bbd3992c  gcc/testsuite/gcc.dg/bitint-87.c
+ ae6f11e12a9f3016135ea855d9d5af12  gcc/testsuite/gcc.dg/bitint-88.c
+ c347cdbd63be06ba0c18689144efa941  gcc/testsuite/gcc.dg/bitint-89.c
+ 6c1f358c229c182c85217279154bac29  gcc/testsuite/gcc.dg/bitint-9.c
+ 08c72b5750b9e67424be21a49af41dd4  gcc/testsuite/gcc.dg/bitint-90.c
+ 6a3190d7e6ad5f6560c4d3d3049d6654  gcc/testsuite/gcc.dg/bitint-91.c
+ 9d42da6de61158f3dd55a3e9be9c3d36  gcc/testsuite/gcc.dg/bitint-92.c
+ fc6a1669ad7b80831610d9c8dafa0013  gcc/testsuite/gcc.dg/bitint-93.c
+ 0e498817340fd92b00a7948d658dbcab  gcc/testsuite/gcc.dg/bitint-94.c
+ d8da2621bdfd28bf65295ce16cda0e26  gcc/testsuite/gcc.dg/bitint-95.c
+ e20f46b6e703ff1284f1cfe79f6c7f15  gcc/testsuite/gcc.dg/bitint-96.c
+ 727f3fa86769627fd757f9544ec5e9a4  gcc/testsuite/gcc.dg/bitint-97.c
+ a22b186996615c2d8eb05ea8bf3fbf0f  gcc/testsuite/gcc.dg/bitint-98.c
+ fb2deb63f2c015cb881ba1519e9cf788  gcc/testsuite/gcc.dg/bitint-99.c
  6453b594ca416ac818e19554b58e489e  gcc/testsuite/gcc.dg/boolcomplex-1.c
  29dee620c099065fec233358259a8a12  gcc/testsuite/gcc.dg/bss.c
+ 7cf86654b95ba4af389e830b28a868e1  gcc/testsuite/gcc.dg/builtin-addc-1.c
  bc286f4ff365c89c597fd19aa53a46c4  gcc/testsuite/gcc.dg/builtin-alloc-size.c
  fef5a8d7a1f7cdc1db96edce26047f61  gcc/testsuite/gcc.dg/builtin-apply1.c
  db9849e61a5589377bb913beb6893b0f  gcc/testsuite/gcc.dg/builtin-apply2.c
*************** db9849e61a5589377bb913beb6893b0f  gcc/te
*** 39068,39083 ****
  ba28fc0bde6fe3759423e5308218c5de  gcc/testsuite/gcc.dg/builtin-arith-overflow-1.c
  2f5a429e4857e305cbaaea57ef8fce49  gcc/testsuite/gcc.dg/builtin-arith-overflow-2.c
  d040792d1dd4c9dd03defd6b33b73ca3  gcc/testsuite/gcc.dg/builtin-arith-overflow-3.c
! eeaf7ec8b6a81975e20c95464780d69b  gcc/testsuite/gcc.dg/builtin-arith-overflow-4.c
  57438e502d4a94ddefa57cc49b25f836  gcc/testsuite/gcc.dg/builtin-arith-overflow-5.c
  451f7ecc855ee325551342a0928e36e3  gcc/testsuite/gcc.dg/builtin-assume-aligned-1.c
  81addba5c0e1838ae8925847f9549ba9  gcc/testsuite/gcc.dg/builtin-assume-aligned-2.c
  e37f4aca281a2c82829d2bf1650d5193  gcc/testsuite/gcc.dg/builtin-bswap-1.c
! 4ce2c6f029c4970f13dfce974c8072b5  gcc/testsuite/gcc.dg/builtin-bswap-10.c
  999414d3fa6e5bfeb2e073f6ae328e91  gcc/testsuite/gcc.dg/builtin-bswap-11.c
  e54ba2d93788169a40952b8e3c57713a  gcc/testsuite/gcc.dg/builtin-bswap-12.c
! 5e4b3be88724ad937e4321eb7b64cb57  gcc/testsuite/gcc.dg/builtin-bswap-13.c
! 7e897d2d7b759e3af206940b06604c3d  gcc/testsuite/gcc.dg/builtin-bswap-14.c
  ffc151478579fb7668adfc666bae4351  gcc/testsuite/gcc.dg/builtin-bswap-2.c
  8ccef9903c65aa8a5c0f7230fad726cd  gcc/testsuite/gcc.dg/builtin-bswap-3.c
  7c810cf00f9d6aa8115b2f0dbc13b483  gcc/testsuite/gcc.dg/builtin-bswap-4.c
--- 40928,40944 ----
  ba28fc0bde6fe3759423e5308218c5de  gcc/testsuite/gcc.dg/builtin-arith-overflow-1.c
  2f5a429e4857e305cbaaea57ef8fce49  gcc/testsuite/gcc.dg/builtin-arith-overflow-2.c
  d040792d1dd4c9dd03defd6b33b73ca3  gcc/testsuite/gcc.dg/builtin-arith-overflow-3.c
! 686e8a08e2ea9e8c895de2a53b5d7166  gcc/testsuite/gcc.dg/builtin-arith-overflow-4.c
! 42993f464b05f08b455aede39114a000  gcc/testsuite/gcc.dg/builtin-arith-overflow-4a.c
  57438e502d4a94ddefa57cc49b25f836  gcc/testsuite/gcc.dg/builtin-arith-overflow-5.c
  451f7ecc855ee325551342a0928e36e3  gcc/testsuite/gcc.dg/builtin-assume-aligned-1.c
  81addba5c0e1838ae8925847f9549ba9  gcc/testsuite/gcc.dg/builtin-assume-aligned-2.c
  e37f4aca281a2c82829d2bf1650d5193  gcc/testsuite/gcc.dg/builtin-bswap-1.c
! 8c6c4e4a58a4f180971e576b4fabe804  gcc/testsuite/gcc.dg/builtin-bswap-10.c
  999414d3fa6e5bfeb2e073f6ae328e91  gcc/testsuite/gcc.dg/builtin-bswap-11.c
  e54ba2d93788169a40952b8e3c57713a  gcc/testsuite/gcc.dg/builtin-bswap-12.c
! 6abba2098b73da8e5111de8eadba549e  gcc/testsuite/gcc.dg/builtin-bswap-13.c
! c6a37c3fb0f3d639949b2fd86c91eb1e  gcc/testsuite/gcc.dg/builtin-bswap-14.c
  ffc151478579fb7668adfc666bae4351  gcc/testsuite/gcc.dg/builtin-bswap-2.c
  8ccef9903c65aa8a5c0f7230fad726cd  gcc/testsuite/gcc.dg/builtin-bswap-3.c
  7c810cf00f9d6aa8115b2f0dbc13b483  gcc/testsuite/gcc.dg/builtin-bswap-4.c
*************** dee8624db42c149e727e832415aa5090  gcc/te
*** 39090,39103 ****
  547dc816e801f8746cd259482702fa77  gcc/testsuite/gcc.dg/builtin-bswap-9.c
  0eecd573e98a27ed33860504d72d4c26  gcc/testsuite/gcc.dg/builtin-choose-expr-2.c
  fa0708362233291f1148a615c4b1f287  gcc/testsuite/gcc.dg/builtin-choose-expr.c
  a38873fa20580cba65903a262d4fd423  gcc/testsuite/gcc.dg/builtin-clear-padding-1.c
  dc15cf451146f969eb7aa4813cfbaac9  gcc/testsuite/gcc.dg/builtin-clear-padding-2.c
  b152d7b3044cd4c130385716be2c314d  gcc/testsuite/gcc.dg/builtin-complex-err-1.c
  8a5469840816c0e59551cba587e09908  gcc/testsuite/gcc.dg/builtin-complex-err-2.c
  0c222cc6e71e46ddf388523376157d29  gcc/testsuite/gcc.dg/builtin-constant_p-1.c
  9f503648a269c2cbb13ec94b04dd3900  gcc/testsuite/gcc.dg/builtin-dynamic-alloc-size.c
! 3d0bb3569ec84e63b7412c770dec384a  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c
! c5e5f862262559c38264d70aa150ff8c  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-1.c
  1ff75aa914f15c33a68e1cc40479cd14  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-10.c
  6728d15f57ec5dc1e75076fc95a6ef24  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-11.c
  9f8620548cc565190f9195dc5ccf4a96  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-12.c
--- 40951,40965 ----
  547dc816e801f8746cd259482702fa77  gcc/testsuite/gcc.dg/builtin-bswap-9.c
  0eecd573e98a27ed33860504d72d4c26  gcc/testsuite/gcc.dg/builtin-choose-expr-2.c
  fa0708362233291f1148a615c4b1f287  gcc/testsuite/gcc.dg/builtin-choose-expr.c
+ e06f17cf5efaf35f17f6b7f50a5fd9e0  gcc/testsuite/gcc.dg/builtin-classify-type-1.c
  a38873fa20580cba65903a262d4fd423  gcc/testsuite/gcc.dg/builtin-clear-padding-1.c
  dc15cf451146f969eb7aa4813cfbaac9  gcc/testsuite/gcc.dg/builtin-clear-padding-2.c
  b152d7b3044cd4c130385716be2c314d  gcc/testsuite/gcc.dg/builtin-complex-err-1.c
  8a5469840816c0e59551cba587e09908  gcc/testsuite/gcc.dg/builtin-complex-err-2.c
  0c222cc6e71e46ddf388523376157d29  gcc/testsuite/gcc.dg/builtin-constant_p-1.c
  9f503648a269c2cbb13ec94b04dd3900  gcc/testsuite/gcc.dg/builtin-dynamic-alloc-size.c
! b5e0d93d5da24ec95b6eeda2aaf3b953  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c
! 4d08dd03e287c8a9ba9515b8eb3d36bb  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-1.c
  1ff75aa914f15c33a68e1cc40479cd14  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-10.c
  6728d15f57ec5dc1e75076fc95a6ef24  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-11.c
  9f8620548cc565190f9195dc5ccf4a96  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-12.c
*************** c20cea884b6dfc628cdcbf331fdb46b7  gcc/te
*** 39108,39116 ****
  26c61662e9f84f77446c307aac0fc969  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-17.c
  7ba18a78460ef2def96b42cf9b6bcbea  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-18.c
  350c4a053d83646c38a9aab653275ba5  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-19.c
! b02b56dd09de187b13a3a9dd7e3653fe  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-2.c
! b5d8b202caa9517a1d84cc1cabf7b57a  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-3.c
! 9d831587a401180ab6a463d3b5a8ce56  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-4.c
  6a3bd76db06e1cef893e79790a2fbaf9  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5-main.c
  aa300b6138aca54a87382d73d77b9afd  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5.c
  a5e27521e31c487bc91f8281068f33c3  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-6.c
--- 40970,40979 ----
  26c61662e9f84f77446c307aac0fc969  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-17.c
  7ba18a78460ef2def96b42cf9b6bcbea  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-18.c
  350c4a053d83646c38a9aab653275ba5  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-19.c
! 9696eab0e73ff6414ac28cfa07b0f60f  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-2.c
! 7d5e7cb2f631513f4ad805a020ca50d0  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-20.c
! a72fb18ffd9b0e44cf5c6e959ec0bf06  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-3.c
! ca52ca43688db6c78826936e428a022a  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-4.c
  6a3bd76db06e1cef893e79790a2fbaf9  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5-main.c
  aa300b6138aca54a87382d73d77b9afd  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5.c
  a5e27521e31c487bc91f8281068f33c3  gcc/testsuite/gcc.dg/builtin-dynamic-object-size-6.c
*************** accf3598507b8caeb30c44d0552888e4  gcc/te
*** 39126,39132 ****
  297482280bba1db1aca62784fdb79b21  gcc/testsuite/gcc.dg/builtin-memchr.c
  a44ac88aa8a6da31cb9b33133af1f622  gcc/testsuite/gcc.dg/builtin-memcpy-2.c
  8f379b287c70f375ef6c56e42f7b980a  gcc/testsuite/gcc.dg/builtin-memcpy.c
! 2af6cdbd780e761c9d16b673d5823838  gcc/testsuite/gcc.dg/builtin-object-size-1.c
  03a590dda2c435b8a60eaa573bd785b0  gcc/testsuite/gcc.dg/builtin-object-size-10.c
  f122f7a281486824649a6f822f81d9d0  gcc/testsuite/gcc.dg/builtin-object-size-11.c
  1301b9ef334b8c60b50816cdcfd0ee2c  gcc/testsuite/gcc.dg/builtin-object-size-12.c
--- 40989,40995 ----
  297482280bba1db1aca62784fdb79b21  gcc/testsuite/gcc.dg/builtin-memchr.c
  a44ac88aa8a6da31cb9b33133af1f622  gcc/testsuite/gcc.dg/builtin-memcpy-2.c
  8f379b287c70f375ef6c56e42f7b980a  gcc/testsuite/gcc.dg/builtin-memcpy.c
! 405e1541c1dc182bb64f6f2b3304dd15  gcc/testsuite/gcc.dg/builtin-object-size-1.c
  03a590dda2c435b8a60eaa573bd785b0  gcc/testsuite/gcc.dg/builtin-object-size-10.c
  f122f7a281486824649a6f822f81d9d0  gcc/testsuite/gcc.dg/builtin-object-size-11.c
  1301b9ef334b8c60b50816cdcfd0ee2c  gcc/testsuite/gcc.dg/builtin-object-size-12.c
*************** bd55267dc409bf4cd73fc7fdf17926e1  gcc/te
*** 39137,39158 ****
  d729b9d6db81d465a307ade374f42256  gcc/testsuite/gcc.dg/builtin-object-size-17.c
  869d1b49b0a28836ddaebf74d3462566  gcc/testsuite/gcc.dg/builtin-object-size-18.c
  581a4845d9f8f961c091eaf11a4010f0  gcc/testsuite/gcc.dg/builtin-object-size-19.c
! eafdc2bdd5cf00170aeca954c42a6926  gcc/testsuite/gcc.dg/builtin-object-size-2.c
  cf6f2769bab5f5e06b9751f69afb0b75  gcc/testsuite/gcc.dg/builtin-object-size-20.c
  6866a8187425ffe835c719a45992dae9  gcc/testsuite/gcc.dg/builtin-object-size-21.c
  cebfc0e53c1528723fa6284f1a8cafa1  gcc/testsuite/gcc.dg/builtin-object-size-22.c
! 860fefb769bf2c0a6fc117803b334575  gcc/testsuite/gcc.dg/builtin-object-size-3.c
! 11150772ca587f3bde4ac1661186849a  gcc/testsuite/gcc.dg/builtin-object-size-4.c
  1154c87579fbeba4e04c1f1b8d7bc0f1  gcc/testsuite/gcc.dg/builtin-object-size-5.c
  03cc40092ecce666556484e4a8b00248  gcc/testsuite/gcc.dg/builtin-object-size-6.c
  199b74c72225c5f24af2cf2a68908cd0  gcc/testsuite/gcc.dg/builtin-object-size-7.c
  4725b486a35b6e155ddee3262897bb30  gcc/testsuite/gcc.dg/builtin-object-size-8.c
  7c3e911f08750fc7d2d79ad0e689c38a  gcc/testsuite/gcc.dg/builtin-object-size-9.c
  e1e33044d82e82f1585b2419c3ca5cf2  gcc/testsuite/gcc.dg/builtin-object-size-common.h
  8a97ebf058fb89f3b374807943c1fa63  gcc/testsuite/gcc.dg/builtin-prefetch-1.c
  9592adb58bb664e7d9b8270d44906bb8  gcc/testsuite/gcc.dg/builtin-protos-1.c
! b8f4d79971032c6c7c0bf1ef3c3ffdeb  gcc/testsuite/gcc.dg/builtin-redefine.c
  246bb70bfe2055226e4764a8be22bdb1  gcc/testsuite/gcc.dg/builtin-return-1.c
  66732ebd5af8dead0fcb2edc10124f5c  gcc/testsuite/gcc.dg/builtin-stpncpy.c
  641e02f6eead02fdda4581c9a18073ef  gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
  ed1656f783d92fedc726aeba8e49f03a  gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c
--- 41000,41024 ----
  d729b9d6db81d465a307ade374f42256  gcc/testsuite/gcc.dg/builtin-object-size-17.c
  869d1b49b0a28836ddaebf74d3462566  gcc/testsuite/gcc.dg/builtin-object-size-18.c
  581a4845d9f8f961c091eaf11a4010f0  gcc/testsuite/gcc.dg/builtin-object-size-19.c
! 106f6d499d4fa46bd909c23da9c19554  gcc/testsuite/gcc.dg/builtin-object-size-2.c
  cf6f2769bab5f5e06b9751f69afb0b75  gcc/testsuite/gcc.dg/builtin-object-size-20.c
  6866a8187425ffe835c719a45992dae9  gcc/testsuite/gcc.dg/builtin-object-size-21.c
  cebfc0e53c1528723fa6284f1a8cafa1  gcc/testsuite/gcc.dg/builtin-object-size-22.c
! 6d4f3e86947696f4e54141784ea7552c  gcc/testsuite/gcc.dg/builtin-object-size-3.c
! 52c6be897393e50dfe9096a5175bd1c0  gcc/testsuite/gcc.dg/builtin-object-size-4.c
  1154c87579fbeba4e04c1f1b8d7bc0f1  gcc/testsuite/gcc.dg/builtin-object-size-5.c
  03cc40092ecce666556484e4a8b00248  gcc/testsuite/gcc.dg/builtin-object-size-6.c
  199b74c72225c5f24af2cf2a68908cd0  gcc/testsuite/gcc.dg/builtin-object-size-7.c
  4725b486a35b6e155ddee3262897bb30  gcc/testsuite/gcc.dg/builtin-object-size-8.c
  7c3e911f08750fc7d2d79ad0e689c38a  gcc/testsuite/gcc.dg/builtin-object-size-9.c
  e1e33044d82e82f1585b2419c3ca5cf2  gcc/testsuite/gcc.dg/builtin-object-size-common.h
+ 16a15f1bdfd91051bdc9308d552e86b5  gcc/testsuite/gcc.dg/builtin-object-size-pr101832.c
  8a97ebf058fb89f3b374807943c1fa63  gcc/testsuite/gcc.dg/builtin-prefetch-1.c
  9592adb58bb664e7d9b8270d44906bb8  gcc/testsuite/gcc.dg/builtin-protos-1.c
! 7055e4f194f8b19010df4b10556a64bf  gcc/testsuite/gcc.dg/builtin-redefine.c
  246bb70bfe2055226e4764a8be22bdb1  gcc/testsuite/gcc.dg/builtin-return-1.c
+ 3bb136f402d795adbeb8ffae4b5cc046  gcc/testsuite/gcc.dg/builtin-stdc-bit-1.c
+ 90a16deb753105b3ee10f1ba254778b4  gcc/testsuite/gcc.dg/builtin-stdc-bit-2.c
  66732ebd5af8dead0fcb2edc10124f5c  gcc/testsuite/gcc.dg/builtin-stpncpy.c
  641e02f6eead02fdda4581c9a18073ef  gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
  ed1656f783d92fedc726aeba8e49f03a  gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c
*************** d176e423452b3b1dc2b591de90fb7b79  gcc/te
*** 39261,39290 ****
  fe3d87d9d937306c1cfb738ab291a1d0  gcc/testsuite/gcc.dg/c11-atomic-3.c
  92b6577d9ca27307e52b72fdc2e81cf8  gcc/testsuite/gcc.dg/c11-atomic-4.c
  5a7729ff2127958a8608ff174eed4821  gcc/testsuite/gcc.dg/c11-atomic-5.c
! 5d6e2b42910e5112d06671dbd0c78216  gcc/testsuite/gcc.dg/c11-attr-syntax-1.c
! 702e136f31d9890c28e72e8e148a9ac0  gcc/testsuite/gcc.dg/c11-attr-syntax-2.c
! 0892eab8020222640ce5b22436df8b66  gcc/testsuite/gcc.dg/c11-attr-syntax-3.c
  4158b6be4262e66b2a9f8886f0f7baf1  gcc/testsuite/gcc.dg/c11-binary-constants-1.c
  9bcd4768404841c553b6364640c3289c  gcc/testsuite/gcc.dg/c11-binary-constants-2.c
  fb6856ed42272d2e75705288147407d4  gcc/testsuite/gcc.dg/c11-bool-1.c
  9a07880fd314b8e69dd8af8fcd6f653b  gcc/testsuite/gcc.dg/c11-bool-limits-1.c
! 21c81cbf669757afced7cbebd75e9f95  gcc/testsuite/gcc.dg/c11-builtins-1.c
  47c6a18b65d09a5d8bfb22cb00e62f09  gcc/testsuite/gcc.dg/c11-compare-incomplete-1.c
  507babbb6da0d18aba4c0234531bfc0e  gcc/testsuite/gcc.dg/c11-compare-incomplete-2.c
  12ef1e10f51b7a7205f424c6c3ce9ef9  gcc/testsuite/gcc.dg/c11-complex-1.c
! 5ba087ead2d5d6cc22d21d11d8a7e7b2  gcc/testsuite/gcc.dg/c11-complit-1.c
! d143de8934fa3a1c512e11f89dfa9b22  gcc/testsuite/gcc.dg/c11-complit-2.c
! ecd797193f08444d5fdeff0580bfa33f  gcc/testsuite/gcc.dg/c11-complit-3.c
! 4379db3d95da5339cde0b57fed54fb14  gcc/testsuite/gcc.dg/c11-digit-separators-1.c
  71a24c7320e28508f47103da5a443a1e  gcc/testsuite/gcc.dg/c11-empty-init-1.c
  51ccf8c34a305d71b64d94729ad5861c  gcc/testsuite/gcc.dg/c11-empty-init-2.c
! 489c030e2d89402d23a6939189f7b434  gcc/testsuite/gcc.dg/c11-empty-init-3.c
! 38ac349942f1c90d5c41edf3fce8fade  gcc/testsuite/gcc.dg/c11-enum-1.c
! 9a41324bc86fd7c975702fa28a3d7695  gcc/testsuite/gcc.dg/c11-enum-2.c
! 134af045c9ea52103f7556938592edf8  gcc/testsuite/gcc.dg/c11-enum-3.c
! 45a22fdd7e658fd74fa21cb8dcc1ee42  gcc/testsuite/gcc.dg/c11-enum-4.c
! 6158e269e94a89a0b18485df46e4898f  gcc/testsuite/gcc.dg/c11-enum-5.c
! 0920bf5001bf71cf72a7677029df06df  gcc/testsuite/gcc.dg/c11-enum-6.c
  d9a2f9168158c56d6257cb7866dbe1f8  gcc/testsuite/gcc.dg/c11-float-1.c
  5a0906a4ebef0b27aa6dd7d4cad0cf9f  gcc/testsuite/gcc.dg/c11-float-2.c
  04b2d9216570787bdcc1f01fba4ad2a8  gcc/testsuite/gcc.dg/c11-float-3.c
--- 41127,41156 ----
  fe3d87d9d937306c1cfb738ab291a1d0  gcc/testsuite/gcc.dg/c11-atomic-3.c
  92b6577d9ca27307e52b72fdc2e81cf8  gcc/testsuite/gcc.dg/c11-atomic-4.c
  5a7729ff2127958a8608ff174eed4821  gcc/testsuite/gcc.dg/c11-atomic-5.c
! 37ee2eb758051ab7950639101c00d66e  gcc/testsuite/gcc.dg/c11-attr-syntax-1.c
! 949aa9b8b20c27f20aef9e7521d77e35  gcc/testsuite/gcc.dg/c11-attr-syntax-2.c
! e3e7905df28d319258a82d3d6f793f44  gcc/testsuite/gcc.dg/c11-attr-syntax-3.c
  4158b6be4262e66b2a9f8886f0f7baf1  gcc/testsuite/gcc.dg/c11-binary-constants-1.c
  9bcd4768404841c553b6364640c3289c  gcc/testsuite/gcc.dg/c11-binary-constants-2.c
  fb6856ed42272d2e75705288147407d4  gcc/testsuite/gcc.dg/c11-bool-1.c
  9a07880fd314b8e69dd8af8fcd6f653b  gcc/testsuite/gcc.dg/c11-bool-limits-1.c
! 023310c7881f3142c044bb26ba11d1ba  gcc/testsuite/gcc.dg/c11-builtins-1.c
  47c6a18b65d09a5d8bfb22cb00e62f09  gcc/testsuite/gcc.dg/c11-compare-incomplete-1.c
  507babbb6da0d18aba4c0234531bfc0e  gcc/testsuite/gcc.dg/c11-compare-incomplete-2.c
  12ef1e10f51b7a7205f424c6c3ce9ef9  gcc/testsuite/gcc.dg/c11-complex-1.c
! fa34631a4c1d2b00e7ce9c91f43ba47b  gcc/testsuite/gcc.dg/c11-complit-1.c
! f708a089f01c4eb2d6556845620fe4df  gcc/testsuite/gcc.dg/c11-complit-2.c
! f9379f2c7b2df5096970080af37236db  gcc/testsuite/gcc.dg/c11-complit-3.c
! c49e4a4965dfd4f1b42c678e8919d9c5  gcc/testsuite/gcc.dg/c11-digit-separators-1.c
  71a24c7320e28508f47103da5a443a1e  gcc/testsuite/gcc.dg/c11-empty-init-1.c
  51ccf8c34a305d71b64d94729ad5861c  gcc/testsuite/gcc.dg/c11-empty-init-2.c
! eb7001e84e8ddb071794b58066cfe0e2  gcc/testsuite/gcc.dg/c11-empty-init-3.c
! 278aa9539ada8d28692355ded27dd039  gcc/testsuite/gcc.dg/c11-enum-1.c
! ab40da530a0567e48ef32b79e7cb8be5  gcc/testsuite/gcc.dg/c11-enum-2.c
! f6d4dd5903a0f4ca8e66352a70875c59  gcc/testsuite/gcc.dg/c11-enum-3.c
! fc5397d500f4b0376eac92a7af00fc51  gcc/testsuite/gcc.dg/c11-enum-4.c
! 96022acd7112f6703cbf25d67cd4d25d  gcc/testsuite/gcc.dg/c11-enum-5.c
! ab906ca3080c402e6d1fe28147d578c7  gcc/testsuite/gcc.dg/c11-enum-6.c
  d9a2f9168158c56d6257cb7866dbe1f8  gcc/testsuite/gcc.dg/c11-float-1.c
  5a0906a4ebef0b27aa6dd7d4cad0cf9f  gcc/testsuite/gcc.dg/c11-float-2.c
  04b2d9216570787bdcc1f01fba4ad2a8  gcc/testsuite/gcc.dg/c11-float-3.c
*************** d9a2f9168158c56d6257cb7866dbe1f8  gcc/te
*** 39293,39304 ****
  f5943e612c16b7bcb16ca6226253ea6c  gcc/testsuite/gcc.dg/c11-float-6.c
  2c1fc82b3fa500bcdbd5ec39348ce181  gcc/testsuite/gcc.dg/c11-float-7.c
  344bae5bf5449cc6019511d933152ec6  gcc/testsuite/gcc.dg/c11-float-8.c
! 0223046956e0ac17c6d4ec16a73e0052  gcc/testsuite/gcc.dg/c11-float-dfp-1.c
! e6ce0af835170a38d7c6aafc1bc9d582  gcc/testsuite/gcc.dg/c11-float-dfp-2.c
  8472bf4fa0a02e831b47e014c3d8ff39  gcc/testsuite/gcc.dg/c11-generic-1.c
  9067e724c4ff52e45f30d96d1baf4aa5  gcc/testsuite/gcc.dg/c11-generic-2.c
  edccfa9a6ec4138450a583864191741b  gcc/testsuite/gcc.dg/c11-generic-3.c
! 9cfd95df643bd191ab000bd178809dee  gcc/testsuite/gcc.dg/c11-keywords-1.c
  3db892ff7dff5c32a37d9f3b20627c73  gcc/testsuite/gcc.dg/c11-labels-1.c
  22f625932f22946e080ea3988bd9f854  gcc/testsuite/gcc.dg/c11-labels-2.c
  2476375795b6f2042388440bb97fa092  gcc/testsuite/gcc.dg/c11-labels-3.c
--- 41159,41182 ----
  f5943e612c16b7bcb16ca6226253ea6c  gcc/testsuite/gcc.dg/c11-float-6.c
  2c1fc82b3fa500bcdbd5ec39348ce181  gcc/testsuite/gcc.dg/c11-float-7.c
  344bae5bf5449cc6019511d933152ec6  gcc/testsuite/gcc.dg/c11-float-8.c
! 30a6ad7af2c8416801a7b37b7be49512  gcc/testsuite/gcc.dg/c11-float-dfp-1.c
! d53a5421b27337991965eebcf28bd87c  gcc/testsuite/gcc.dg/c11-float-dfp-2.c
! 55af5d495d5f04cad5ec732b0bb572dd  gcc/testsuite/gcc.dg/c11-floatn-1.c
! 61447262883c0973587e6dd44c40e963  gcc/testsuite/gcc.dg/c11-floatn-2.c
! 63807a42c7147b8f2c337af5eaadc984  gcc/testsuite/gcc.dg/c11-floatn-3.c
! 2b2b5064f823b7df0be902596b59e280  gcc/testsuite/gcc.dg/c11-floatn-4.c
! 4fa5a7353c1a9ab6323911860cba61e5  gcc/testsuite/gcc.dg/c11-floatn-5.c
! 16e37f421208e51f8961ab9fe696096e  gcc/testsuite/gcc.dg/c11-floatn-6.c
! f03d82f475906ad5299062e76520629f  gcc/testsuite/gcc.dg/c11-floatn-7.c
! 624eb38c2f89973b64447e5d1afca391  gcc/testsuite/gcc.dg/c11-floatn-8.c
! 0791dab211c9758565fb0c6b7fe04866  gcc/testsuite/gcc.dg/c11-fordecl-1.c
! b91ad092585928cae19e2202e523cd0f  gcc/testsuite/gcc.dg/c11-fordecl-2.c
! c53e29473a432e9147fe890097930727  gcc/testsuite/gcc.dg/c11-fordecl-3.c
! 80c5d30cdf15155bb2620598168fb1c0  gcc/testsuite/gcc.dg/c11-fordecl-4.c
  8472bf4fa0a02e831b47e014c3d8ff39  gcc/testsuite/gcc.dg/c11-generic-1.c
  9067e724c4ff52e45f30d96d1baf4aa5  gcc/testsuite/gcc.dg/c11-generic-2.c
  edccfa9a6ec4138450a583864191741b  gcc/testsuite/gcc.dg/c11-generic-3.c
! 54cb44acbc237391a83fc858cdcffbf9  gcc/testsuite/gcc.dg/c11-keywords-1.c
  3db892ff7dff5c32a37d9f3b20627c73  gcc/testsuite/gcc.dg/c11-labels-1.c
  22f625932f22946e080ea3988bd9f854  gcc/testsuite/gcc.dg/c11-labels-2.c
  2476375795b6f2042388440bb97fa092  gcc/testsuite/gcc.dg/c11-labels-3.c
*************** bd510e212640224d22dba81f49c4b9e7  gcc/te
*** 39309,39322 ****
  d8272e1d572d33a852614f0a74a31345  gcc/testsuite/gcc.dg/c11-noreturn-4.c
  f9262f126c900d76cdb16f0afbfc600f  gcc/testsuite/gcc.dg/c11-noreturn-5.c
  abfbae98d3f37ff0d3a2b7bda81a856c  gcc/testsuite/gcc.dg/c11-nullptr-1.c
! d33ce50710ecd86a247a10319e5421d3  gcc/testsuite/gcc.dg/c11-old-style-definition-1.c
! e197e3e287789d1604bf0e0c997b89fe  gcc/testsuite/gcc.dg/c11-old-style-definition-2.c
  76c61754cd6702dd0aa8c96472ab6679  gcc/testsuite/gcc.dg/c11-parm-omit-1.c
  622604c98660355bd64b729ef5b57fae  gcc/testsuite/gcc.dg/c11-parm-omit-2.c
! d937c7e18efe1399d1b5f21633b97edd  gcc/testsuite/gcc.dg/c11-parm-omit-3.c
  935cd3a139ee689c19326c2aa5cdf149  gcc/testsuite/gcc.dg/c11-parm-omit-4.c
  d595f49307eb5192b976a26bca7a9c80  gcc/testsuite/gcc.dg/c11-pointer-float-1.c
! 15069243a7a641f7a2705a0d1fc6df01  gcc/testsuite/gcc.dg/c11-qual-1.c
  efe9f8d43440cd3d52de742b3f407e19  gcc/testsuite/gcc.dg/c11-static-assert-1.c
  7108e0131dd58f0a0943232e07ae7a08  gcc/testsuite/gcc.dg/c11-static-assert-10.c
  1e1c0e1555e17610aa6e95027b7f72c1  gcc/testsuite/gcc.dg/c11-static-assert-2.c
--- 41187,41200 ----
  d8272e1d572d33a852614f0a74a31345  gcc/testsuite/gcc.dg/c11-noreturn-4.c
  f9262f126c900d76cdb16f0afbfc600f  gcc/testsuite/gcc.dg/c11-noreturn-5.c
  abfbae98d3f37ff0d3a2b7bda81a856c  gcc/testsuite/gcc.dg/c11-nullptr-1.c
! 26c6f6017d071e0f6332c8a8302c319e  gcc/testsuite/gcc.dg/c11-old-style-definition-1.c
! 1fff561a5101a4713958b047c7f8aa8d  gcc/testsuite/gcc.dg/c11-old-style-definition-2.c
  76c61754cd6702dd0aa8c96472ab6679  gcc/testsuite/gcc.dg/c11-parm-omit-1.c
  622604c98660355bd64b729ef5b57fae  gcc/testsuite/gcc.dg/c11-parm-omit-2.c
! 5386269ac30015bc46947ac1a7fd4fc9  gcc/testsuite/gcc.dg/c11-parm-omit-3.c
  935cd3a139ee689c19326c2aa5cdf149  gcc/testsuite/gcc.dg/c11-parm-omit-4.c
  d595f49307eb5192b976a26bca7a9c80  gcc/testsuite/gcc.dg/c11-pointer-float-1.c
! f44a17306287d18ed04527f2262f5d62  gcc/testsuite/gcc.dg/c11-qual-1.c
  efe9f8d43440cd3d52de742b3f407e19  gcc/testsuite/gcc.dg/c11-static-assert-1.c
  7108e0131dd58f0a0943232e07ae7a08  gcc/testsuite/gcc.dg/c11-static-assert-10.c
  1e1c0e1555e17610aa6e95027b7f72c1  gcc/testsuite/gcc.dg/c11-static-assert-2.c
*************** d7ef98239e7c17e364c10debfa89d9d2  gcc/te
*** 39326,39335 ****
  7d8937831e6e859f88fa6d9fbfa19b67  gcc/testsuite/gcc.dg/c11-static-assert-6.c
  9bb121031c94e5ff19758f9eaf4c87a1  gcc/testsuite/gcc.dg/c11-static-assert-7.c
  64b3055467aa64af1607dc7226abdd4d  gcc/testsuite/gcc.dg/c11-static-assert-8.c
! 58a7e832ab903726e603d897241366a6  gcc/testsuite/gcc.dg/c11-static-assert-9.c
  210dd3c9197b2cb465dc08a9251777fb  gcc/testsuite/gcc.dg/c11-stdarg-1.c
  7f22c3906d72aa6105457b867b8810f1  gcc/testsuite/gcc.dg/c11-stdarg-2.c
! 7514f2709bbbf4768001b0400ac5e58a  gcc/testsuite/gcc.dg/c11-stdarg-3.c
  d8afba1d2b1a04e30bf233094d9faac2  gcc/testsuite/gcc.dg/c11-stdarg-4.c
  8d5bda54b390a2348c084bf998549d82  gcc/testsuite/gcc.dg/c11-stdatomic-1.c
  c61a3a2fb711240cb33f2d975167e099  gcc/testsuite/gcc.dg/c11-stdatomic-2.c
--- 41204,41213 ----
  7d8937831e6e859f88fa6d9fbfa19b67  gcc/testsuite/gcc.dg/c11-static-assert-6.c
  9bb121031c94e5ff19758f9eaf4c87a1  gcc/testsuite/gcc.dg/c11-static-assert-7.c
  64b3055467aa64af1607dc7226abdd4d  gcc/testsuite/gcc.dg/c11-static-assert-8.c
! 2a56decd74fa37d10077c3201ea152c1  gcc/testsuite/gcc.dg/c11-static-assert-9.c
  210dd3c9197b2cb465dc08a9251777fb  gcc/testsuite/gcc.dg/c11-stdarg-1.c
  7f22c3906d72aa6105457b867b8810f1  gcc/testsuite/gcc.dg/c11-stdarg-2.c
! 9e0d02e51f72d64ba0b16c529c0b0b22  gcc/testsuite/gcc.dg/c11-stdarg-3.c
  d8afba1d2b1a04e30bf233094d9faac2  gcc/testsuite/gcc.dg/c11-stdarg-4.c
  8d5bda54b390a2348c084bf998549d82  gcc/testsuite/gcc.dg/c11-stdatomic-1.c
  c61a3a2fb711240cb33f2d975167e099  gcc/testsuite/gcc.dg/c11-stdatomic-2.c
*************** c61a3a2fb711240cb33f2d975167e099  gcc/te
*** 39341,39512 ****
  e2a0227684c75fbd79e6e01a85396388  gcc/testsuite/gcc.dg/c11-true_min-1.c
  cce86829bf185b88188e1478f6f86b43  gcc/testsuite/gcc.dg/c11-typedef-1.c
  51405bdb6cae63e718147f9a08b88907  gcc/testsuite/gcc.dg/c11-typeof-1.c
  6f673adf8dbf19341d44962e8f0acf41  gcc/testsuite/gcc.dg/c11-uni-string-1.c
  8b1d5bf350b30002364428953e7e269f  gcc/testsuite/gcc.dg/c11-uni-string-2.c
! 4ad07e2f74164421471239f2c41fc7d1  gcc/testsuite/gcc.dg/c11-unproto-1.c
! 97d39f61e5ba801a91ba7cd19c75c4f4  gcc/testsuite/gcc.dg/c11-unproto-2.c
  04504611c52e8e89b4149daa828fba5d  gcc/testsuite/gcc.dg/c11-unproto-3.c
  14a8e444f99b3504dea4ba6dbe635778  gcc/testsuite/gcc.dg/c11-unreachable-1.c
! 0f19b008744e2186cb49b549d66ca484  gcc/testsuite/gcc.dg/c11-utf8char-1.c
  40caf03e37e4fea5ccc8c1ad6d05b81a  gcc/testsuite/gcc.dg/c11-utf8str-type.c
  d8fec2fce7b0346ffeb1fbb2bd55d7e5  gcc/testsuite/gcc.dg/c11-version-1.c
  7e31e73dc6465f7388bf6d84893c3a04  gcc/testsuite/gcc.dg/c11-version-2.c
  5a67292dfe6f82e2c4fce49abe5cf184  gcc/testsuite/gcc.dg/c17-nullptr-1.c
! 94d0f5b1bdaa984bdfc7a849b073adb0  gcc/testsuite/gcc.dg/c17-nullptr-2.c
  fcd4572df13af248f922ae7a7c77e6a8  gcc/testsuite/gcc.dg/c17-utf8str-type.c
  5ad87a8fc8d331629e6c46ceda1f0cf2  gcc/testsuite/gcc.dg/c17-version-1.c
  3dbfc6cb7eab32d45526a6c027b7c7a2  gcc/testsuite/gcc.dg/c17-version-2.c
  aeb16ae2682d8d01a1d6120c9de5edfd  gcc/testsuite/gcc.dg/c18-version-1.c
  cd00c6feebac836c0ec488202c21d6a7  gcc/testsuite/gcc.dg/c18-version-2.c
! e534b0f2e881e50aca6c1f2a52542dc2  gcc/testsuite/gcc.dg/c2x-align-1.c
! 6fd315ddd7219855d32d6938f5c972be  gcc/testsuite/gcc.dg/c2x-align-6.c
! 1a6078af67236639a20541935b9c1759  gcc/testsuite/gcc.dg/c2x-attr-deprecated-1.c
! 13a58302a211ad6af91c3a3a799a11a0  gcc/testsuite/gcc.dg/c2x-attr-deprecated-2.c
! ec4ce1d7cd47b2d554a69b72933ba06b  gcc/testsuite/gcc.dg/c2x-attr-deprecated-3.c
! 040e55ecdcf60d5df0f050c4955388f9  gcc/testsuite/gcc.dg/c2x-attr-deprecated-4.c
! 6684ae2b2a9246bfaf5fc88fd7ca0ecd  gcc/testsuite/gcc.dg/c2x-attr-fallthrough-1.c
! e68e31d326cb08a80e19306f6240f9f9  gcc/testsuite/gcc.dg/c2x-attr-fallthrough-2.c
! 8ff9a4ace7a0658c0b47caa687fc54b8  gcc/testsuite/gcc.dg/c2x-attr-fallthrough-3.c
! f92fdbd923b9ff881a9b6de11a93320f  gcc/testsuite/gcc.dg/c2x-attr-fallthrough-4.c
! 9d7950144aebc8e6d928d4108ed10486  gcc/testsuite/gcc.dg/c2x-attr-fallthrough-5.c
! 92ef8a5b7fe2bb4f8741a8267b9abb0b  gcc/testsuite/gcc.dg/c2x-attr-fallthrough-6.c
! ac04afccac55a673669ceb59505bc2ca  gcc/testsuite/gcc.dg/c2x-attr-maybe_unused-1.c
! 4672e1aa92d294e631e09697818f5a40  gcc/testsuite/gcc.dg/c2x-attr-maybe_unused-2.c
! ddd2e02d1492c4dd2fd93bb872328e72  gcc/testsuite/gcc.dg/c2x-attr-maybe_unused-3.c
! fcb97faa38daf1241ac63b55b08b2291  gcc/testsuite/gcc.dg/c2x-attr-maybe_unused-4.c
! 41ec962da570a27ed3fb272af3dc3c45  gcc/testsuite/gcc.dg/c2x-attr-nodiscard-1.c
! 307cbed5b5aefee1dae6068c7a502017  gcc/testsuite/gcc.dg/c2x-attr-nodiscard-2.c
! 1b417b2cef24f7e8d651858eb4706c35  gcc/testsuite/gcc.dg/c2x-attr-nodiscard-3.c
! 4538cf4e8b0845911921e1899d0347ea  gcc/testsuite/gcc.dg/c2x-attr-nodiscard-4.c
! 51a86e89dffe6a45868e9658527bea7f  gcc/testsuite/gcc.dg/c2x-attr-noreturn-1.c
! e42e56429bbf66fea0969f25e253b626  gcc/testsuite/gcc.dg/c2x-attr-noreturn-2.c
! e447c9faca965c70029a40801ad3b397  gcc/testsuite/gcc.dg/c2x-attr-noreturn-3.c
! f2989cbea7233f22a5f3e5881d430d6e  gcc/testsuite/gcc.dg/c2x-attr-syntax-1.c
! 230b0d85a26ef13ac13065780826c4b3  gcc/testsuite/gcc.dg/c2x-attr-syntax-2.c
! b8f200f508d05887dc47a551eb3f7d0d  gcc/testsuite/gcc.dg/c2x-attr-syntax-3.c
! a83848b7b241c7b8e115c3a4dddb747f  gcc/testsuite/gcc.dg/c2x-attr-syntax-4.c
! 9b0765846cb41d393e7fb47b1e4cdee4  gcc/testsuite/gcc.dg/c2x-attr-syntax-5.c
! 6dbfaf699f3d6488347f14cb28bce735  gcc/testsuite/gcc.dg/c2x-auto-1.c
! fd92297a2302df71f7b9f4fa5ab002f8  gcc/testsuite/gcc.dg/c2x-auto-2.c
! 801cdbe16aaa1e64a6de2c461de257ab  gcc/testsuite/gcc.dg/c2x-auto-3.c
! 6bef7e2803067f13b40bdfce889f1673  gcc/testsuite/gcc.dg/c2x-auto-4.c
! 1ee4223adce9600a47bbb336ca696c0b  gcc/testsuite/gcc.dg/c2x-binary-constants-1.c
! 4a865b821e9afd1b12f18920156de316  gcc/testsuite/gcc.dg/c2x-binary-constants-2.c
! ba639c5eb00f59a2ddffbee0249ebe64  gcc/testsuite/gcc.dg/c2x-binary-constants-3.c
! c938f0d2611235ab008a23b4bd43a47d  gcc/testsuite/gcc.dg/c2x-bool-1.c
! 200f8f07e9964d833f4c58cb0929cb29  gcc/testsuite/gcc.dg/c2x-bool-2.c
! e4c4e5028ccfb46dfcc79a41e4ed5488  gcc/testsuite/gcc.dg/c2x-bool-limits-1.c
! 396a74b7c1b42fdf67e5d3c36f655b65  gcc/testsuite/gcc.dg/c2x-builtins-1.c
! cb5a48cf245e98e3ebc3bec52bb1b305  gcc/testsuite/gcc.dg/c2x-complit-1.c
! e7b02322a9a0c68e2065111ca68535ba  gcc/testsuite/gcc.dg/c2x-complit-2.c
! 01fa95ea0d2e0ca26b1048a11adba865  gcc/testsuite/gcc.dg/c2x-complit-3.c
! 3eb6390ff9a597cb951fe6d0a77e2d8e  gcc/testsuite/gcc.dg/c2x-complit-4.c
! bd7b48ecb9b7b1eb4814d8539aa91d4a  gcc/testsuite/gcc.dg/c2x-complit-5.c
! 52a71d522bef6b49e1f5bd857fe622c2  gcc/testsuite/gcc.dg/c2x-complit-6.c
! ce2afbb88d1dff570c061e0bfcd54cab  gcc/testsuite/gcc.dg/c2x-complit-7.c
! 89c24fe5d27022531a99e5ee7eaa65ea  gcc/testsuite/gcc.dg/c2x-complit-8.c
! 8981d4f1b891ceafff33e76ed2831620  gcc/testsuite/gcc.dg/c2x-concat-1.c
! 4675707676273951cf0415ea4898953f  gcc/testsuite/gcc.dg/c2x-constexpr-1.c
! a35e5aa256a87f8e6c143395805492d0  gcc/testsuite/gcc.dg/c2x-constexpr-2a.c
! aeda3d817ab1592467bf25d32cf38908  gcc/testsuite/gcc.dg/c2x-constexpr-2b.c
! 56cc473ea37948e7c0ddcc376b2847c4  gcc/testsuite/gcc.dg/c2x-constexpr-3.c
! 2fceba7caa127a5a14e61985faf8e189  gcc/testsuite/gcc.dg/c2x-constexpr-4.c
! 805b860c557f4ae340f445eeef5f0691  gcc/testsuite/gcc.dg/c2x-constexpr-5.c
! c2b1f89e4e81ba3d0911a0cfccbc8232  gcc/testsuite/gcc.dg/c2x-constexpr-6.c
! 985e033592ffa5a014c7cdbf5946d3dd  gcc/testsuite/gcc.dg/c2x-constexpr-7.c
! c4124e562745478624db6bcb640ec74c  gcc/testsuite/gcc.dg/c2x-constexpr-8.c
! 6b265ea6f0c92a60587457ce2837d147  gcc/testsuite/gcc.dg/c2x-constexpr-9.c
! 1daa7fbd8e2c976af88ccab67f239d60  gcc/testsuite/gcc.dg/c2x-digit-separators-1.c
! f3a13d08ce265f16fb1e0bbff905dda0  gcc/testsuite/gcc.dg/c2x-digit-separators-2.c
! ec1408942667add450a81147a38df95c  gcc/testsuite/gcc.dg/c2x-digit-separators-3.c
! e19fe8cfd7dd2ac1e61b00a82465764b  gcc/testsuite/gcc.dg/c2x-empty-init-1.c
! 4b0ca8b051cc26a6f4d66f60f192a8d2  gcc/testsuite/gcc.dg/c2x-empty-init-2.c
! d2879a629997a93ecceae8de846ba117  gcc/testsuite/gcc.dg/c2x-empty-init-3.c
! c79750fe3a05fc60a95430e4b14ba497  gcc/testsuite/gcc.dg/c2x-enum-1.c
! fa50be0925026d9178e843568bb72fcb  gcc/testsuite/gcc.dg/c2x-enum-2.c
! c93ba4472a27a35f732321114c43b5ea  gcc/testsuite/gcc.dg/c2x-enum-3.c
! a993d9a77862500d5943698b3ac2a5f9  gcc/testsuite/gcc.dg/c2x-enum-4.c
! 9de9d5104f308e6013567365da85f7cd  gcc/testsuite/gcc.dg/c2x-enum-5.c
! dad0b1d75e770c58b017b53340971954  gcc/testsuite/gcc.dg/c2x-enum-6.c
! b408b23ec113b85ba831a77d6465f366  gcc/testsuite/gcc.dg/c2x-enum-7.c
! 8a91a67559de1769765d42da1358af34  gcc/testsuite/gcc.dg/c2x-enum-8.c
! 90f5c814361317bbacff5ea0a7b26cf1  gcc/testsuite/gcc.dg/c2x-float-1.c
! e109dc4236e8c4d4fd66dfdb4da2e37b  gcc/testsuite/gcc.dg/c2x-float-10.c
! 09351aa07b27dbf890a7d067a8f21b0c  gcc/testsuite/gcc.dg/c2x-float-11.c
! 779b76345e7e6873ad10b9edf051fe13  gcc/testsuite/gcc.dg/c2x-float-12.c
! 064cf32ff98ab6a02a5fb3aebf8eec52  gcc/testsuite/gcc.dg/c2x-float-13.c
! 5e1fcf5e3ebce209b119689783594f8a  gcc/testsuite/gcc.dg/c2x-float-2.c
! dd22f71fd3db4e7e3bff58f62a3349ea  gcc/testsuite/gcc.dg/c2x-float-3.c
! 117d0c1e261e52e8a8368ff4edba8d40  gcc/testsuite/gcc.dg/c2x-float-4.c
! 59e11a3113c2663bf03b469466cc63dc  gcc/testsuite/gcc.dg/c2x-float-5.c
! ab3ebd8a2507f0a729a6822cfdcbd6fd  gcc/testsuite/gcc.dg/c2x-float-6.c
! 089b952a71a1a4d84c5a11893fd3267d  gcc/testsuite/gcc.dg/c2x-float-7a.c
! ffcb041634ad77517d1f34a653c35dde  gcc/testsuite/gcc.dg/c2x-float-7b.c
! b922ea1afa12d980fd6f2eee02711dd1  gcc/testsuite/gcc.dg/c2x-float-7c.c
! 778c287b9a0f07077ee4bfe28b14f673  gcc/testsuite/gcc.dg/c2x-float-8.c
! 13752a9f8db4b847dcf36a69feeb451d  gcc/testsuite/gcc.dg/c2x-float-9.c
! fd42672c4bbfd0a0de2075c67b750445  gcc/testsuite/gcc.dg/c2x-float-no-dfp-1.c
! 955a6943803983df967cf04984c949b8  gcc/testsuite/gcc.dg/c2x-float-no-dfp-2.c
! c896c681d16278ccfb60277ea6d60ea7  gcc/testsuite/gcc.dg/c2x-float-no-dfp-3.c
! 2e0314c2eb8a19080246928d8ac80274  gcc/testsuite/gcc.dg/c2x-float-no-dfp-4.c
! 2d19c187230a819591ad1acd5e6861a2  gcc/testsuite/gcc.dg/c2x-has-c-attribute-1.c
! 3540c691b282fc1fa06bce369b6d4527  gcc/testsuite/gcc.dg/c2x-has-c-attribute-2.c
! 996b1c79eeba71a3fb4a6d0c6f775bbf  gcc/testsuite/gcc.dg/c2x-has-c-attribute-3.c
! 12af672718164067826449dc3d706cfc  gcc/testsuite/gcc.dg/c2x-has-c-attribute-4.c
! e12d838e9ae1c0ef00e7615fccef3476  gcc/testsuite/gcc.dg/c2x-labels-1.c
! 885da369c5855d3bcd78e084bf36d154  gcc/testsuite/gcc.dg/c2x-labels-2.c
! 0d32e7389b35d1d631d4805cf6be6ec7  gcc/testsuite/gcc.dg/c2x-labels-3.c
! e2f94f4e7e8ea024edd7729e39052d5d  gcc/testsuite/gcc.dg/c2x-limits-1.c
! 9aa46756a285d809fdf673f01df53026  gcc/testsuite/gcc.dg/c2x-no-dfp-1.c
! 3982c0796c4e52b6e10b9f10a8bf1a01  gcc/testsuite/gcc.dg/c2x-nullptr-1.c
! 30aa1734384116f6da33645efa2b62cc  gcc/testsuite/gcc.dg/c2x-nullptr-2.c
! de2a441ec0baa15b08ba7d07933f4d79  gcc/testsuite/gcc.dg/c2x-nullptr-3.c
! 5ffae81ac1a1b2dc17162f7f7942346d  gcc/testsuite/gcc.dg/c2x-nullptr-4.c
! af7c619a8e5a06a85cbc69222f75fb03  gcc/testsuite/gcc.dg/c2x-nullptr-5.c
! d4a86dd1969bdf3b739ba45111a55453  gcc/testsuite/gcc.dg/c2x-nullptr-6.c
! 96fb9744f0d87599adaf21898d43a8da  gcc/testsuite/gcc.dg/c2x-old-style-definition-1.c
! 142fa04ae5383196024c6e12791b4272  gcc/testsuite/gcc.dg/c2x-old-style-definition-2.c
! 765dbbbac0b9c0f4d5fda8adb96ed4f1  gcc/testsuite/gcc.dg/c2x-old-style-definition-3.c
! b4b8a88f7469ab941346f4d6f9cb1e32  gcc/testsuite/gcc.dg/c2x-old-style-definition-4.c
! fec316d2e27f8fe61a00d3fdae1ca5f3  gcc/testsuite/gcc.dg/c2x-old-style-definition-5.c
! 4196349794d4c3e8652285780662b5a3  gcc/testsuite/gcc.dg/c2x-old-style-definition-6.c
! c65227cf031fcfb6cea27f0b13ee542c  gcc/testsuite/gcc.dg/c2x-parm-omit-1.c
! 597596705ccebbf3aaa0271c02ad0ee9  gcc/testsuite/gcc.dg/c2x-parm-omit-2.c
! 46a1998613654b31cf08003d875762d9  gcc/testsuite/gcc.dg/c2x-parm-omit-3.c
! a941a1c2cdfbb1167a15b9c33ae3006d  gcc/testsuite/gcc.dg/c2x-parm-omit-4.c
! 496920d3fda20edc90e06e664f4ce071  gcc/testsuite/gcc.dg/c2x-qual-1.c
! f32ade1ad180ee81c2c0349416e6af4b  gcc/testsuite/gcc.dg/c2x-qual-2.c
! 5950785a1ab6a8fe575532c382585a53  gcc/testsuite/gcc.dg/c2x-qual-3.c
! 6dcdb16f62e70c462fc6172bfb9800f1  gcc/testsuite/gcc.dg/c2x-qual-4.c
! 3dbc169cb2d87ce7505e48ad21d53407  gcc/testsuite/gcc.dg/c2x-qual-5.c
! 15a48f846fe4775adf814dec6428b651  gcc/testsuite/gcc.dg/c2x-qual-6.c
! b5e0251d7581115667b0b89d014c5915  gcc/testsuite/gcc.dg/c2x-qual-7.c
! 5a0b89a86561a35e1a3f052f805e31a5  gcc/testsuite/gcc.dg/c2x-static-assert-1.c
! b7acfb59773a55aff25adad54de3b253  gcc/testsuite/gcc.dg/c2x-static-assert-2.c
! 7d220a71ca110966289d12682b1e534b  gcc/testsuite/gcc.dg/c2x-static-assert-3.c
! fd5b8875d9c5b758301ecd767dcc337b  gcc/testsuite/gcc.dg/c2x-static-assert-4.c
! 7bbb9a8c264d6041c2b1dcb10d5d52ae  gcc/testsuite/gcc.dg/c2x-stdarg-1.c
! 1755251d6a34282aa37353209424d9a7  gcc/testsuite/gcc.dg/c2x-stdarg-2.c
! d64b1c217a7ff86a28655a02e9e529be  gcc/testsuite/gcc.dg/c2x-stdarg-3.c
! 78b10a6ef5f366fe19dddb53645c6164  gcc/testsuite/gcc.dg/c2x-stdarg-4.c
! 0a6b0716135c3b9cb4314a1a472e8f9a  gcc/testsuite/gcc.dg/c2x-stdarg-5.c
! 9fd0d3006142163b978479626166dc53  gcc/testsuite/gcc.dg/c2x-stdatomic-1.c
! 844e2c18635eae64651dd29bb450d32b  gcc/testsuite/gcc.dg/c2x-stddef-1.c
! 3e744448fc5eec7b85ce5e7eaa4f817f  gcc/testsuite/gcc.dg/c2x-stdint-1.c
! 8b87fbcdf4bb954e6a717b2653f76941  gcc/testsuite/gcc.dg/c2x-thread-local-1.c
! 8b3872c02a6c34786b6fd701128975c5  gcc/testsuite/gcc.dg/c2x-typeof-1.c
! d3ec46e61bd13aae5aa726a969b4c4f8  gcc/testsuite/gcc.dg/c2x-typeof-2.c
! 8c0c949ce4a889b59e0d8633d3e6091b  gcc/testsuite/gcc.dg/c2x-typeof-3.c
! 34f7edac98fd7352e0aa3319771d83f2  gcc/testsuite/gcc.dg/c2x-unproto-1.c
! dee9ba10f0d71d8101c30b3ce19f0977  gcc/testsuite/gcc.dg/c2x-unproto-2.c
! e04b766a459a46fa78d0a8c5bf847ecb  gcc/testsuite/gcc.dg/c2x-unproto-3.c
! 0a0d8a191eaf00fa46e3b3cb63b8117c  gcc/testsuite/gcc.dg/c2x-unproto-4.c
! 95fb3e48f11330d495c2dbf247808444  gcc/testsuite/gcc.dg/c2x-unreachable-1.c
! c641ae56954ced84038d41d853a95c30  gcc/testsuite/gcc.dg/c2x-utf8char-1.c
! 397c0c1279e1fadf70c464bb612caec1  gcc/testsuite/gcc.dg/c2x-utf8char-2.c
! 9eccf342d72be6b4c7523a233760ab3f  gcc/testsuite/gcc.dg/c2x-utf8char-3.c
! f028eeb32c486c13c5ed779428a87aa4  gcc/testsuite/gcc.dg/c2x-utf8str-type.c
! 68bc60a463b32b908266a700527456d8  gcc/testsuite/gcc.dg/c2x-utf8str.c
  0908655191bb29a30d0b1908b3cf088e  gcc/testsuite/gcc.dg/c90-align-1.c
  8caa60cd18ee5b631b7c2b11150305a4  gcc/testsuite/gcc.dg/c90-anon-struct-1.c
  65e495bcc821b0c04c03e8e7c871913c  gcc/testsuite/gcc.dg/c90-array-lval-1.c
--- 41219,41452 ----
  e2a0227684c75fbd79e6e01a85396388  gcc/testsuite/gcc.dg/c11-true_min-1.c
  cce86829bf185b88188e1478f6f86b43  gcc/testsuite/gcc.dg/c11-typedef-1.c
  51405bdb6cae63e718147f9a08b88907  gcc/testsuite/gcc.dg/c11-typeof-1.c
+ 45d0d9e42e1c0827c25ea84a656a31a8  gcc/testsuite/gcc.dg/c11-typeof-2.c
+ b0978decab81f295dec5d0ef7c295508  gcc/testsuite/gcc.dg/c11-typeof-3.c
  6f673adf8dbf19341d44962e8f0acf41  gcc/testsuite/gcc.dg/c11-uni-string-1.c
  8b1d5bf350b30002364428953e7e269f  gcc/testsuite/gcc.dg/c11-uni-string-2.c
! b9fd46e636839a66e52eb65ba9305bc5  gcc/testsuite/gcc.dg/c11-unproto-1.c
! 8a4ddd945d6183d6378defe77ab725ae  gcc/testsuite/gcc.dg/c11-unproto-2.c
  04504611c52e8e89b4149daa828fba5d  gcc/testsuite/gcc.dg/c11-unproto-3.c
  14a8e444f99b3504dea4ba6dbe635778  gcc/testsuite/gcc.dg/c11-unreachable-1.c
! 7a033a2abbd7f2f51b62f1fcda24db8c  gcc/testsuite/gcc.dg/c11-utf8char-1.c
  40caf03e37e4fea5ccc8c1ad6d05b81a  gcc/testsuite/gcc.dg/c11-utf8str-type.c
  d8fec2fce7b0346ffeb1fbb2bd55d7e5  gcc/testsuite/gcc.dg/c11-version-1.c
  7e31e73dc6465f7388bf6d84893c3a04  gcc/testsuite/gcc.dg/c11-version-2.c
  5a67292dfe6f82e2c4fce49abe5cf184  gcc/testsuite/gcc.dg/c17-nullptr-1.c
! 78c4fe671d762ce359fe46f1931139f4  gcc/testsuite/gcc.dg/c17-nullptr-2.c
  fcd4572df13af248f922ae7a7c77e6a8  gcc/testsuite/gcc.dg/c17-utf8str-type.c
  5ad87a8fc8d331629e6c46ceda1f0cf2  gcc/testsuite/gcc.dg/c17-version-1.c
  3dbfc6cb7eab32d45526a6c027b7c7a2  gcc/testsuite/gcc.dg/c17-version-2.c
  aeb16ae2682d8d01a1d6120c9de5edfd  gcc/testsuite/gcc.dg/c18-version-1.c
  cd00c6feebac836c0ec488202c21d6a7  gcc/testsuite/gcc.dg/c18-version-2.c
! ad86091aa7960dc75364deba125beaee  gcc/testsuite/gcc.dg/c23-align-1.c
! 7d97eccbea2d467efb88d5df79faefc5  gcc/testsuite/gcc.dg/c23-align-6.c
! 56a76c282330c2c4b41a50ff88a0fbe2  gcc/testsuite/gcc.dg/c23-attr-deprecated-1.c
! 53adbd495ae22c30a0897a05151c5708  gcc/testsuite/gcc.dg/c23-attr-deprecated-2.c
! 41f182ba922399f53fd715de3a0e37e4  gcc/testsuite/gcc.dg/c23-attr-deprecated-3.c
! 97e86ad51095e7ba0ce086ecd3b18074  gcc/testsuite/gcc.dg/c23-attr-deprecated-4.c
! 8acf51e48e3c2ca06301e729f49df45c  gcc/testsuite/gcc.dg/c23-attr-fallthrough-1.c
! 660ea01197c068bc51f947ae8ed786a4  gcc/testsuite/gcc.dg/c23-attr-fallthrough-2.c
! 0d4ab124f3e9bc4bdb0ba536b8cd34d6  gcc/testsuite/gcc.dg/c23-attr-fallthrough-3.c
! f2abe66bc0b8f5c222d5a0412a1a2e87  gcc/testsuite/gcc.dg/c23-attr-fallthrough-4.c
! dcfb2c4e551aaf0b72d122db953f92d8  gcc/testsuite/gcc.dg/c23-attr-fallthrough-5.c
! f76d7db6493a3acfab4a2696a8563883  gcc/testsuite/gcc.dg/c23-attr-fallthrough-6.c
! 8deb3da02b1d4028b7f2f1b7643934ff  gcc/testsuite/gcc.dg/c23-attr-maybe_unused-1.c
! 55a9245f7e9c85eb8a2716445ee1a34a  gcc/testsuite/gcc.dg/c23-attr-maybe_unused-2.c
! 83ee173d996b34957a47e14f52a811e9  gcc/testsuite/gcc.dg/c23-attr-maybe_unused-3.c
! 628caf371ad3c7988637e7ce094584cf  gcc/testsuite/gcc.dg/c23-attr-maybe_unused-4.c
! d46efb32b91a30b4232b53dd17aa1b47  gcc/testsuite/gcc.dg/c23-attr-nodiscard-1.c
! 892c4d0db9e739a75d522380c455b036  gcc/testsuite/gcc.dg/c23-attr-nodiscard-2.c
! 1e5262659236c9bee5e4fb72225ed052  gcc/testsuite/gcc.dg/c23-attr-nodiscard-3.c
! 74efa206561558bfac15d394c605e71b  gcc/testsuite/gcc.dg/c23-attr-nodiscard-4.c
! 7a37e4a5284324e117f553b76e7daf4c  gcc/testsuite/gcc.dg/c23-attr-noreturn-1.c
! 5e01117ba1a805a5246b5fc8cea88275  gcc/testsuite/gcc.dg/c23-attr-noreturn-2.c
! 0c0ddc18ed8f3c87fc798987338e11ea  gcc/testsuite/gcc.dg/c23-attr-noreturn-3.c
! 25899d7a9c3961478ff21e311132bcd7  gcc/testsuite/gcc.dg/c23-attr-syntax-1.c
! 37d6cdc1b9ba625569bf6e4478b55b40  gcc/testsuite/gcc.dg/c23-attr-syntax-2.c
! eaec7e8d3dab1a92f077a291b2a45008  gcc/testsuite/gcc.dg/c23-attr-syntax-3.c
! cd50c105926a1e51a64176d2120e47f2  gcc/testsuite/gcc.dg/c23-attr-syntax-4.c
! f0cb85efadba331ca2d15c7afc61de69  gcc/testsuite/gcc.dg/c23-attr-syntax-5.c
! 8d8bd6b11899a4d0c712a623707fb636  gcc/testsuite/gcc.dg/c23-attr-syntax-6.c
! 269bd414ba4d7be15bc3a152cb9cb3bd  gcc/testsuite/gcc.dg/c23-attr-syntax-7.c
! 1f0cc4ddd44ec4024c75890aef2076e2  gcc/testsuite/gcc.dg/c23-attr-syntax-8.c
! cd94229fae02eab25071a924439318fb  gcc/testsuite/gcc.dg/c23-auto-1.c
! 25b95ae1961a5aa1bd3b209c048f077d  gcc/testsuite/gcc.dg/c23-auto-2.c
! 121eb149d07e8a0a554af2bcd0b0874a  gcc/testsuite/gcc.dg/c23-auto-3.c
! f726c91921ed21b77521046200d5f8be  gcc/testsuite/gcc.dg/c23-auto-4.c
! 607308013668cf1dd82b75f61930f483  gcc/testsuite/gcc.dg/c23-binary-constants-1.c
! 75436b0cea14f6dcb1f8242f86a390c4  gcc/testsuite/gcc.dg/c23-binary-constants-2.c
! fb0d8c79395398894b33cd8f6cbc8fab  gcc/testsuite/gcc.dg/c23-binary-constants-3.c
! b57bd54293ea9a73c52f35e6cd0dd0dc  gcc/testsuite/gcc.dg/c23-bool-1.c
! fd92418c98ab7a53a0f7ffab5cc23336  gcc/testsuite/gcc.dg/c23-bool-2.c
! 77471931d0204c573a350c351c2e1ce0  gcc/testsuite/gcc.dg/c23-bool-limits-1.c
! 866b47f8f73f8bfdd37396b36c3ea22c  gcc/testsuite/gcc.dg/c23-builtins-1.c
! c02273493fb42f9c962949fc0541b14d  gcc/testsuite/gcc.dg/c23-complit-1.c
! b39690af9ffd34d34f7698e3bcf9fe11  gcc/testsuite/gcc.dg/c23-complit-2.c
! fca4c7f52a46ab4ff35166ad34a2092f  gcc/testsuite/gcc.dg/c23-complit-3.c
! 9dd0e599871fb9d078bbe9768b0a21be  gcc/testsuite/gcc.dg/c23-complit-4.c
! 553d13f3a8eb8f6ea66e89464a4c7aa9  gcc/testsuite/gcc.dg/c23-complit-5.c
! c4253823407e42b2041cd4f87c079b68  gcc/testsuite/gcc.dg/c23-complit-6.c
! 822939abe10b0e2ccf49d5bb1a71561e  gcc/testsuite/gcc.dg/c23-complit-7.c
! 6c015cd3478782c8fdd2dd00957cdea2  gcc/testsuite/gcc.dg/c23-complit-8.c
! 7d184166c5e693fa68ced1095002174d  gcc/testsuite/gcc.dg/c23-concat-1.c
! e25f5029937f09bdae8538ceadd8a34a  gcc/testsuite/gcc.dg/c23-constexpr-1.c
! 78c3fd17e008c1fad38d71746ebb0d45  gcc/testsuite/gcc.dg/c23-constexpr-2a.c
! 78959769b2466f0e3c8bbcd38b9723c9  gcc/testsuite/gcc.dg/c23-constexpr-2b.c
! 8f9a1b3570b59c3e55dd0ce0f93e0a28  gcc/testsuite/gcc.dg/c23-constexpr-3.c
! 559517d7bb334aa29e5dee65a4e0f4c6  gcc/testsuite/gcc.dg/c23-constexpr-4.c
! bb56dd984fa295edce9f4acd8f786ed8  gcc/testsuite/gcc.dg/c23-constexpr-5.c
! 404db3fb958f2f2109315f3e0580deb4  gcc/testsuite/gcc.dg/c23-constexpr-6.c
! 21a51b8dff07ea2a3986b817d9de1099  gcc/testsuite/gcc.dg/c23-constexpr-7.c
! 1f372e95fe24503c741cf6f468466ba8  gcc/testsuite/gcc.dg/c23-constexpr-8.c
! b567907221cd47d14e103cd70dae4da4  gcc/testsuite/gcc.dg/c23-constexpr-9.c
! 3597a19d3f7a65a20022ababc79ff5d3  gcc/testsuite/gcc.dg/c23-digit-separators-1.c
! b1212370623c7157a79943899435ccb5  gcc/testsuite/gcc.dg/c23-digit-separators-2.c
! ffaf2de00670ec1bcfd9c05f306e16c3  gcc/testsuite/gcc.dg/c23-digit-separators-3.c
! 1a9c21c1d3fb7ce104315577cd8a8648  gcc/testsuite/gcc.dg/c23-empty-init-1.c
! 0c38fbf1607df971691b3b1d456a802c  gcc/testsuite/gcc.dg/c23-empty-init-2.c
! 1116de49b5f2a7c0923551f1b58a18a9  gcc/testsuite/gcc.dg/c23-empty-init-3.c
! dc52d4a4df4bc142bba5c3beadd4981f  gcc/testsuite/gcc.dg/c23-enum-1.c
! 2ca675c75231eb5ade1153c0b8b0d32a  gcc/testsuite/gcc.dg/c23-enum-10.c
! ed9819fd2268c8f2f24fef8c006f9fbf  gcc/testsuite/gcc.dg/c23-enum-2.c
! 25b4411667605e39bace459b37c36ca2  gcc/testsuite/gcc.dg/c23-enum-3.c
! f31eff7c801dc6d9bfeae8482517afa6  gcc/testsuite/gcc.dg/c23-enum-4.c
! 42788b44a23e98d27f0ddd46327fadb5  gcc/testsuite/gcc.dg/c23-enum-5.c
! 4e06b1835ff3629eae3d8b085f0df3b6  gcc/testsuite/gcc.dg/c23-enum-6.c
! b5c73ad0f1dc3e68f5e4f38c72952f6e  gcc/testsuite/gcc.dg/c23-enum-7.c
! cdc9c9deadf8060016693635c309d451  gcc/testsuite/gcc.dg/c23-enum-8.c
! 2d53441dfcd0dd0d07d3283639332251  gcc/testsuite/gcc.dg/c23-enum-9.c
! e45b57ad1a990bae14b2fe053a3688aa  gcc/testsuite/gcc.dg/c23-float-1.c
! e9b93ee440de254f85695f9f59ec0b6d  gcc/testsuite/gcc.dg/c23-float-10.c
! becd68b9f404ce6877f2247ab3ddcf71  gcc/testsuite/gcc.dg/c23-float-11.c
! db32fa9d79c2d967e6531c2512ecb122  gcc/testsuite/gcc.dg/c23-float-12.c
! ed0468acfa1206738dcf18dfdb721924  gcc/testsuite/gcc.dg/c23-float-13.c
! d95d0af16fef0c00155f374bc72b7a03  gcc/testsuite/gcc.dg/c23-float-2.c
! 90171fef78f27647894343581e0b5087  gcc/testsuite/gcc.dg/c23-float-3.c
! d9bd5d697b0466a3fd6eea61a3c219fb  gcc/testsuite/gcc.dg/c23-float-4.c
! dcc010320f447c71ce5fce0dfe56cd97  gcc/testsuite/gcc.dg/c23-float-5.c
! 1ecaf253bb1017c62ec127171708441b  gcc/testsuite/gcc.dg/c23-float-6.c
! 77c41397239fceaaeb869cd60988fdb1  gcc/testsuite/gcc.dg/c23-float-7a.c
! e712d44c16551320d6d67b888d325cf1  gcc/testsuite/gcc.dg/c23-float-7b.c
! 183de4162b0a84da341a526e4bccb8ab  gcc/testsuite/gcc.dg/c23-float-7c.c
! ab682231dc0da9bb8d62c8c28474cad5  gcc/testsuite/gcc.dg/c23-float-8.c
! 099dbf0521fb909e8787e9417961b4d1  gcc/testsuite/gcc.dg/c23-float-9.c
! 469c5b2a8c095f0c90658faa0e59cdb0  gcc/testsuite/gcc.dg/c23-float-no-dfp-1.c
! 1ec3efd118f6ef470104cc50e0782659  gcc/testsuite/gcc.dg/c23-float-no-dfp-2.c
! 530405dedcd909192f6fe14133a4a5d8  gcc/testsuite/gcc.dg/c23-float-no-dfp-3.c
! a77b96ead9613c0b9f9336d683a38eff  gcc/testsuite/gcc.dg/c23-float-no-dfp-4.c
! 8f714039f5117eaba9b39255c60dec34  gcc/testsuite/gcc.dg/c23-floatn-1.c
! b1cdc00f7c594ad228e6a1238de95759  gcc/testsuite/gcc.dg/c23-floatn-2.c
! 5c69941305cb8f3877949ccf429848b2  gcc/testsuite/gcc.dg/c23-floatn-3.c
! f3ac2bf10f36675b16c59edd09fae01e  gcc/testsuite/gcc.dg/c23-floatn-4.c
! 2d2e88c89e8ddbc8df719ef18b2403a3  gcc/testsuite/gcc.dg/c23-floatn-5.c
! 88599ea9b2454999317725c9ebe1213d  gcc/testsuite/gcc.dg/c23-floatn-6.c
! 857410131e412e77d5536899eac70649  gcc/testsuite/gcc.dg/c23-floatn-7.c
! 5351be1b5eb2ad345af8c2b481a7b9c4  gcc/testsuite/gcc.dg/c23-floatn-8.c
! a7b361e75440ab576ebe9cc1a6a27519  gcc/testsuite/gcc.dg/c23-fordecl-1.c
! 878ccb350d4274f7dd3f1853c2a42c12  gcc/testsuite/gcc.dg/c23-fordecl-2.c
! 526d0ed6d610e0be452c0a4b48af0c31  gcc/testsuite/gcc.dg/c23-fordecl-3.c
! b94ccd6ce9c4a0b2a1a7a61567fb29d6  gcc/testsuite/gcc.dg/c23-fordecl-4.c
! f2852ff896f993059a55e6dd5b1a501f  gcc/testsuite/gcc.dg/c23-has-c-attribute-1.c
! 590b9e6fad4497d80406c10b381a66a5  gcc/testsuite/gcc.dg/c23-has-c-attribute-2.c
! 6052e65f849468bab88f6bb89894f2be  gcc/testsuite/gcc.dg/c23-has-c-attribute-3.c
! 574c18bfc665490a3756f6752a450e0e  gcc/testsuite/gcc.dg/c23-has-c-attribute-4.c
! 7111f8b5ea26f12db5228f72efdde79c  gcc/testsuite/gcc.dg/c23-labels-1.c
! ae562be53251d621831c177e0e8480cc  gcc/testsuite/gcc.dg/c23-labels-2.c
! 5695ab5488ac5b615bee767303feecd8  gcc/testsuite/gcc.dg/c23-labels-3.c
! 8457f3a053b24748a1159ab31bad49ae  gcc/testsuite/gcc.dg/c23-limits-1.c
! dd04bee5ff3c35fe05a9082f06488d4b  gcc/testsuite/gcc.dg/c23-no-dfp-1.c
! a251b8fbb1a1e2de01f33345da5b30aa  gcc/testsuite/gcc.dg/c23-nullptr-1.c
! b2aa5b3a2a0f10db7caf478ebc09b44c  gcc/testsuite/gcc.dg/c23-nullptr-2.c
! 36399b68ea5d874fde458587f0ba2b77  gcc/testsuite/gcc.dg/c23-nullptr-3.c
! b13c0b54398a41730d1b0d365be527c7  gcc/testsuite/gcc.dg/c23-nullptr-4.c
! 1013bb9aa45492104083c39c9719c82d  gcc/testsuite/gcc.dg/c23-nullptr-5.c
! 278232c9a9da5255a6b7d2b384aa248b  gcc/testsuite/gcc.dg/c23-nullptr-6.c
! fec206552f7b87dc03e6ed2623c2411f  gcc/testsuite/gcc.dg/c23-old-style-definition-1.c
! 7b38b60fb455309e43c976cf4c0a6489  gcc/testsuite/gcc.dg/c23-old-style-definition-2.c
! f0201051a573c3f639abc3f544ae860d  gcc/testsuite/gcc.dg/c23-old-style-definition-3.c
! dbdb1067be684a8b31a1c780db3536ce  gcc/testsuite/gcc.dg/c23-old-style-definition-4.c
! 7c8e5211a95cfd4d9526fd91816dbed1  gcc/testsuite/gcc.dg/c23-old-style-definition-5.c
! e61b7c7ea9cd7499ab1dbde1e668510a  gcc/testsuite/gcc.dg/c23-old-style-definition-6.c
! b0129661a9d93d6920ce5ea36855cd31  gcc/testsuite/gcc.dg/c23-opts-1.c
! 1e5909e67c7350a6659e1384de1a4ae7  gcc/testsuite/gcc.dg/c23-opts-2.c
! 9e9cf9385451758961a571f61a5f00f0  gcc/testsuite/gcc.dg/c23-opts-3.c
! 76e57de94ec242b5833dce8114a4efc5  gcc/testsuite/gcc.dg/c23-opts-4.c
! ef568219090c5dcb58b70f1bae1d00f6  gcc/testsuite/gcc.dg/c23-opts-5.c
! 420a061c1db510d99c6ddc4251262f77  gcc/testsuite/gcc.dg/c23-parm-omit-1.c
! f170b214e596a1e4680b1eaf5efc1c67  gcc/testsuite/gcc.dg/c23-parm-omit-2.c
! 23fdd2657064b46176d5995009aae3bc  gcc/testsuite/gcc.dg/c23-parm-omit-3.c
! 79fce09e174ee423c2009e15718eadaf  gcc/testsuite/gcc.dg/c23-parm-omit-4.c
! ec3e91fed771c3ea906071a1eb811ee6  gcc/testsuite/gcc.dg/c23-qual-1.c
! 73face392fb0c491e9b18ad13e79e09d  gcc/testsuite/gcc.dg/c23-qual-2.c
! e2b9fca49c72b4c10f7d1e1280165095  gcc/testsuite/gcc.dg/c23-qual-3.c
! b848314d57077287ea6ff193d8529161  gcc/testsuite/gcc.dg/c23-qual-4.c
! 5c8791535515e3b1c795b799f05b12de  gcc/testsuite/gcc.dg/c23-qual-5.c
! bc1e9282cce3b4231a088bf436fc52ad  gcc/testsuite/gcc.dg/c23-qual-6.c
! 012092bdf34bf023214876741a993409  gcc/testsuite/gcc.dg/c23-qual-7.c
! 34d8438d87acaf8fa9206428b49e558e  gcc/testsuite/gcc.dg/c23-static-assert-1.c
! 3b637fe4a5a85647b2b98c7a38f85d19  gcc/testsuite/gcc.dg/c23-static-assert-2.c
! e76c7613e08d9be9fd22a634a8e630c2  gcc/testsuite/gcc.dg/c23-static-assert-3.c
! 375ec5c262f63ebb0db351c9dfa205d6  gcc/testsuite/gcc.dg/c23-static-assert-4.c
! e2f7b6f80f4e3f26cdae30d836c2bd71  gcc/testsuite/gcc.dg/c23-stdarg-1.c
! b4df46eb0ac4934c16cabe34c2ed3b00  gcc/testsuite/gcc.dg/c23-stdarg-2.c
! 5a3cfd608769a99eedc1577c6e3d487d  gcc/testsuite/gcc.dg/c23-stdarg-3.c
! 8e65fcc6348600570b6c648d47503338  gcc/testsuite/gcc.dg/c23-stdarg-4.c
! 8c7bd1eb3a41e9c01555826fc97a12d7  gcc/testsuite/gcc.dg/c23-stdarg-5.c
! 1a42ae411efcfd7c7f694de7f2a00f16  gcc/testsuite/gcc.dg/c23-stdarg-6.c
! c07858bd7c1474859397eb2642c434d2  gcc/testsuite/gcc.dg/c23-stdarg-7.c
! 11d2b9d47ac705152edabbf71afc71b0  gcc/testsuite/gcc.dg/c23-stdarg-8.c
! 7df6b6bfef21b28d25bf0e69c37511bf  gcc/testsuite/gcc.dg/c23-stdarg-9.c
! 7514e7564d94faa015d33b9c79079a0d  gcc/testsuite/gcc.dg/c23-stdatomic-1.c
! 271bf1ff6599fb893b0b44cbcf58ee86  gcc/testsuite/gcc.dg/c23-stddef-1.c
! 07d702ddfa215e1acf54255a4b36cfbb  gcc/testsuite/gcc.dg/c23-stdint-1.c
! 0fa100ac71d07136c86f4081dba3d8cb  gcc/testsuite/gcc.dg/c23-tag-1.c
! a37afd5767ec0322656c9bffa259c962  gcc/testsuite/gcc.dg/c23-tag-2.c
! 28c17b111090bf1699e468ec151c4176  gcc/testsuite/gcc.dg/c23-tag-3.c
! 607bc6afc7e342f82c33a83174e557d9  gcc/testsuite/gcc.dg/c23-tag-4.c
! 612ea901fdf2797f1aeb933094f0a79b  gcc/testsuite/gcc.dg/c23-tag-5.c
! c10fa58067c939762fed3dfda22e623f  gcc/testsuite/gcc.dg/c23-tag-6.c
! dc96f49fba6ef2f3728a67ba3d88bd7b  gcc/testsuite/gcc.dg/c23-tag-7.c
! 5b0f7efa111be1fd26b02c7fa0bdbbba  gcc/testsuite/gcc.dg/c23-tag-8.c
! 4999199b16103189846b64b0523897fb  gcc/testsuite/gcc.dg/c23-tag-9.c
! e97bad998d1c37a66251d842a10d223b  gcc/testsuite/gcc.dg/c23-tag-alias-1.c
! be00497675e0ef8914b17a43075141e7  gcc/testsuite/gcc.dg/c23-tag-alias-2.c
! ff5384288c8208d16e9d7fe9139c7935  gcc/testsuite/gcc.dg/c23-tag-alias-3.c
! 5c093e32a975bfda372047910367ee26  gcc/testsuite/gcc.dg/c23-tag-alias-4.c
! 4a04fdc1b2917688f9ec19c051438142  gcc/testsuite/gcc.dg/c23-tag-alias-5.c
! 403de40172cd77f39c6fc6a5b3f3852c  gcc/testsuite/gcc.dg/c23-tag-alias-6.c
! a87ef7a1a722c98afd5f9801e0d34bb0  gcc/testsuite/gcc.dg/c23-tag-alias-7.c
! 6ce48d9bfd7059f46d0c4cb22fa9409c  gcc/testsuite/gcc.dg/c23-tag-composite-1.c
! 7df05bff8ea0914e43dc9d1a7bcfaf30  gcc/testsuite/gcc.dg/c23-tag-composite-10.c
! 2a3be2ea00f41c2bbd3e06492418c748  gcc/testsuite/gcc.dg/c23-tag-composite-2.c
! 9ae658bfe6665d9265d63ae484d0d33d  gcc/testsuite/gcc.dg/c23-tag-composite-3.c
! f50f21736653282270339fa44e90aff6  gcc/testsuite/gcc.dg/c23-tag-composite-4.c
! 71b5fc4a5fb97ca3b4c6c10b32b82965  gcc/testsuite/gcc.dg/c23-tag-composite-5.c
! e7cd369bc502fb33390b7d220136e6a0  gcc/testsuite/gcc.dg/c23-tag-composite-6.c
! a114942ccace88bae224532800f997cd  gcc/testsuite/gcc.dg/c23-tag-composite-7.c
! 537df33a63d82319ff0fcf6d3446572f  gcc/testsuite/gcc.dg/c23-tag-composite-8.c
! 9234c413b319711c324d4b516b010c2d  gcc/testsuite/gcc.dg/c23-tag-composite-9.c
! 4f6b445513698e6a9f823101230fe3cc  gcc/testsuite/gcc.dg/c23-tag-enum-1.c
! f925d06fc9124ac699ada0a9108d874b  gcc/testsuite/gcc.dg/c23-tag-enum-2.c
! 0389a93e0f1a3d1fac4509f5740d5da6  gcc/testsuite/gcc.dg/c23-tag-enum-3.c
! 0055b19c65db8c4a7153ac49409a9909  gcc/testsuite/gcc.dg/c23-tag-enum-4.c
! 5cae518453c91095f981d0cea74e2ba4  gcc/testsuite/gcc.dg/c23-tag-enum-5.c
! 3e98315cb95a832891cdfa8d8e10e249  gcc/testsuite/gcc.dg/c23-tag-incomplete-1.c
! 0b596bd7e1bec3783e0fdd36504109fa  gcc/testsuite/gcc.dg/c23-tag-incomplete-2.c
! f9d9a6aa528a2d63b05c515515d24aa3  gcc/testsuite/gcc.dg/c23-thread-local-1.c
! 72df3a86b0e765f89476624c72c5159e  gcc/testsuite/gcc.dg/c23-thread-local-2.c
! c71ad9293ce1f47a6a055d337c7a269d  gcc/testsuite/gcc.dg/c23-typeof-1.c
! 7a5e3bdcd485d74b2a14369256295d4f  gcc/testsuite/gcc.dg/c23-typeof-2.c
! 5fed9898a658430519e4f3ca5fee04bf  gcc/testsuite/gcc.dg/c23-typeof-3.c
! 39a77c32e060a8257be1b663a9aff54d  gcc/testsuite/gcc.dg/c23-unproto-1.c
! 0a82dbcd3d8522f7eb27c32dd76251a2  gcc/testsuite/gcc.dg/c23-unproto-2.c
! 2a322bc0f9bd9664b58e0beaa0745bb5  gcc/testsuite/gcc.dg/c23-unproto-3.c
! 4b33a0e823d3032ffa7eb8730865a4fb  gcc/testsuite/gcc.dg/c23-unproto-4.c
! c4eca0f563ebc9240d9b13512546e579  gcc/testsuite/gcc.dg/c23-unreachable-1.c
! ca88e7a72529e8e7e74573b91cdf1529  gcc/testsuite/gcc.dg/c23-utf8char-1.c
! 3098cdab4195b4530f0692581d88202d  gcc/testsuite/gcc.dg/c23-utf8char-2.c
! 8c1287aaf48b051bc9180e7b383efa5d  gcc/testsuite/gcc.dg/c23-utf8char-3.c
! 662e4b4e31fb660658c6ab71bbeb001d  gcc/testsuite/gcc.dg/c23-utf8str-type.c
! f2a4898d3ca2464c3600e2f890f8307c  gcc/testsuite/gcc.dg/c23-utf8str.c
  0908655191bb29a30d0b1908b3cf088e  gcc/testsuite/gcc.dg/c90-align-1.c
  8caa60cd18ee5b631b7c2b11150305a4  gcc/testsuite/gcc.dg/c90-anon-struct-1.c
  65e495bcc821b0c04c03e8e7c871913c  gcc/testsuite/gcc.dg/c90-array-lval-1.c
*************** ec0ea7a4a37d919a111d18227bfbf85c  gcc/te
*** 39521,39530 ****
  eb67599b3babd964f32070e29a0b64b3  gcc/testsuite/gcc.dg/c90-array-quals.c
  ca4702fe5362c15e603fcf8163476603  gcc/testsuite/gcc.dg/c90-arraydecl-1.c
  bd625f89c30c13d44a25f058b5e576fe  gcc/testsuite/gcc.dg/c90-atomic-1.c
! 007679cfdb38e6336c6cd19f01623185  gcc/testsuite/gcc.dg/c90-auto-1.c
  75154a2dbba6bcb281fb39f9d576bb08  gcc/testsuite/gcc.dg/c90-complex-1.c
  3724d83680dddcf96724f689959bee91  gcc/testsuite/gcc.dg/c90-complit-1.c
! 5311602a8e7294679cea90a07236985e  gcc/testsuite/gcc.dg/c90-complit-2.c
  44572329674d37dc562af967e34d6aa9  gcc/testsuite/gcc.dg/c90-const-expr-1.c
  650fc9a34b50bcabf5a98414ca62bd2b  gcc/testsuite/gcc.dg/c90-const-expr-10.c
  32894fa79593617ac1a94e3402e828d8  gcc/testsuite/gcc.dg/c90-const-expr-11.c
--- 41461,41470 ----
  eb67599b3babd964f32070e29a0b64b3  gcc/testsuite/gcc.dg/c90-array-quals.c
  ca4702fe5362c15e603fcf8163476603  gcc/testsuite/gcc.dg/c90-arraydecl-1.c
  bd625f89c30c13d44a25f058b5e576fe  gcc/testsuite/gcc.dg/c90-atomic-1.c
! a280eed8597072a3f733e19d295636fa  gcc/testsuite/gcc.dg/c90-auto-1.c
  75154a2dbba6bcb281fb39f9d576bb08  gcc/testsuite/gcc.dg/c90-complex-1.c
  3724d83680dddcf96724f689959bee91  gcc/testsuite/gcc.dg/c90-complit-1.c
! 02b876e31ac73f3090f510253f1048f1  gcc/testsuite/gcc.dg/c90-complit-2.c
  44572329674d37dc562af967e34d6aa9  gcc/testsuite/gcc.dg/c90-const-expr-1.c
  650fc9a34b50bcabf5a98414ca62bd2b  gcc/testsuite/gcc.dg/c90-const-expr-10.c
  32894fa79593617ac1a94e3402e828d8  gcc/testsuite/gcc.dg/c90-const-expr-11.c
*************** f1c21826aa6df9edd8889f04a1d27dd3  gcc/te
*** 39633,39639 ****
  96d5241edd16a05cf3d1f4a866ce458c  gcc/testsuite/gcc.dg/c99-flex-array-typedef-8.c
  5d7a6078f2400d8b79750179be1115cb  gcc/testsuite/gcc.dg/c99-float-1.c
  b9cefc3b995f8bed2031fe01ccec8a9d  gcc/testsuite/gcc.dg/c99-fordecl-1.c
! 852f8d91deb94ba5e58655eb283885f3  gcc/testsuite/gcc.dg/c99-fordecl-2.c
  6d89f5c59a9f4a6e3a8012d4c0391244  gcc/testsuite/gcc.dg/c99-fordecl-3.c
  e143f6b5b7a174ccaec570aa87bb32b9  gcc/testsuite/gcc.dg/c99-func-1.c
  338864dd7cc81a81f92c6f1d9b55d5ef  gcc/testsuite/gcc.dg/c99-func-2.c
--- 41573,41579 ----
  96d5241edd16a05cf3d1f4a866ce458c  gcc/testsuite/gcc.dg/c99-flex-array-typedef-8.c
  5d7a6078f2400d8b79750179be1115cb  gcc/testsuite/gcc.dg/c99-float-1.c
  b9cefc3b995f8bed2031fe01ccec8a9d  gcc/testsuite/gcc.dg/c99-fordecl-1.c
! 296eb979e917efdb7166bb61060f1d3a  gcc/testsuite/gcc.dg/c99-fordecl-2.c
  6d89f5c59a9f4a6e3a8012d4c0391244  gcc/testsuite/gcc.dg/c99-fordecl-3.c
  e143f6b5b7a174ccaec570aa87bb32b9  gcc/testsuite/gcc.dg/c99-func-1.c
  338864dd7cc81a81f92c6f1d9b55d5ef  gcc/testsuite/gcc.dg/c99-func-2.c
*************** bd34927c7e8ef0637a91744aa30c8e22  gcc/te
*** 39740,39750 ****
  7bcfb1562ffc5ec66175fdcc52054745  gcc/testsuite/gcc.dg/charset/attribute2.c
  d256d028f437be7e103b223e7c20fe96  gcc/testsuite/gcc.dg/charset/builtin1.c
  a00066d47a6f8dc20ebf4861a2541212  gcc/testsuite/gcc.dg/charset/builtin2.c
! 7fa989c7ba139a20d371ab36fd16a997  gcc/testsuite/gcc.dg/charset/charset.exp
  8c029ca8175e4d8995ea0dbac6040733  gcc/testsuite/gcc.dg/charset/extern.c
  5314225894f8ef8a8d8249f4a0973380  gcc/testsuite/gcc.dg/charset/function.c
  a59f9cb8c1327a655a207f133f19d6fb  gcc/testsuite/gcc.dg/charset/string.c
! ba82fd5846afa304514b1df1ecbdbf04  gcc/testsuite/gcc.dg/cleanup-1.c
  0ae922071b912ca26621cc61987c07b6  gcc/testsuite/gcc.dg/cleanup-10.c
  d7691ea78eb37229233915a20b69b353  gcc/testsuite/gcc.dg/cleanup-11.c
  a0ff63bff744b6d65be67afd83b12109  gcc/testsuite/gcc.dg/cleanup-12.c
--- 41680,41690 ----
  7bcfb1562ffc5ec66175fdcc52054745  gcc/testsuite/gcc.dg/charset/attribute2.c
  d256d028f437be7e103b223e7c20fe96  gcc/testsuite/gcc.dg/charset/builtin1.c
  a00066d47a6f8dc20ebf4861a2541212  gcc/testsuite/gcc.dg/charset/builtin2.c
! c5ff5e484aaffd5e51d007f001ae44df  gcc/testsuite/gcc.dg/charset/charset.exp
  8c029ca8175e4d8995ea0dbac6040733  gcc/testsuite/gcc.dg/charset/extern.c
  5314225894f8ef8a8d8249f4a0973380  gcc/testsuite/gcc.dg/charset/function.c
  a59f9cb8c1327a655a207f133f19d6fb  gcc/testsuite/gcc.dg/charset/string.c
! 61d2a59a89884119b3c99b8290689bf2  gcc/testsuite/gcc.dg/cleanup-1.c
  0ae922071b912ca26621cc61987c07b6  gcc/testsuite/gcc.dg/cleanup-10.c
  d7691ea78eb37229233915a20b69b353  gcc/testsuite/gcc.dg/cleanup-11.c
  a0ff63bff744b6d65be67afd83b12109  gcc/testsuite/gcc.dg/cleanup-12.c
*************** d9e45b781a97ee5ac71b788011eae52c  gcc/te
*** 39757,39762 ****
--- 41697,41708 ----
  63f9f4f172f1c35d6e9325335509bbae  gcc/testsuite/gcc.dg/cleanup-7.c
  4b3f3381c96015f94c259a34b69db093  gcc/testsuite/gcc.dg/cleanup-8.c
  2b48928f2bd195ac844588f7ca503b99  gcc/testsuite/gcc.dg/cleanup-9.c
+ d97c7a7f40ee37cdc08f53d694b5b6c4  gcc/testsuite/gcc.dg/cmp-mem-const-1.c
+ 58abb24caf7c9dea1b8dd01beb6a4c64  gcc/testsuite/gcc.dg/cmp-mem-const-2.c
+ 0e0404e574882e746f083b4e342b199e  gcc/testsuite/gcc.dg/cmp-mem-const-3.c
+ 1e7f131c6c9aac4217b1aa657fe6deac  gcc/testsuite/gcc.dg/cmp-mem-const-4.c
+ fbf489c058782ade1afff9b3e1a414f1  gcc/testsuite/gcc.dg/cmp-mem-const-5.c
+ 347df99eff501e0be14f1176761cf6de  gcc/testsuite/gcc.dg/cmp-mem-const-6.c
  5ea0b2e2762698a1e297f260e66cba1c  gcc/testsuite/gcc.dg/cold-1.c
  49d4c3b6c4537cb277dd677c007e06a7  gcc/testsuite/gcc.dg/combine-clobber.c
  692ff616829ae420250cb45b76479307  gcc/testsuite/gcc.dg/combine-subregs.c
*************** c7cb5e1831bea1746c3a206e4c26e3ec  gcc/te
*** 39780,39786 ****
  ed52253f6b0d3e0e42d8c7d911691e47  gcc/testsuite/gcc.dg/compare8.c
  e505e91e0c3898015606540b084a3cf3  gcc/testsuite/gcc.dg/compare9.c
  320a670a68ed763f73f02634dc198ac9  gcc/testsuite/gcc.dg/compat/compat-common.h
! f3c78ae8d82b84026a4189c6346f9a15  gcc/testsuite/gcc.dg/compat/compat.exp
  24894b4e4b3498731affefac610f0a05  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_main.c
  fe9eda5144c4b80c732bde86debf0550  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_x.c
  564c8abb5b6fdd9d796e4c9983416c75  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_y.c
--- 41726,41732 ----
  ed52253f6b0d3e0e42d8c7d911691e47  gcc/testsuite/gcc.dg/compare8.c
  e505e91e0c3898015606540b084a3cf3  gcc/testsuite/gcc.dg/compare9.c
  320a670a68ed763f73f02634dc198ac9  gcc/testsuite/gcc.dg/compat/compat-common.h
! 9f8c9c9f452a9946cc3fcdc10da7aaf9  gcc/testsuite/gcc.dg/compat/compat.exp
  24894b4e4b3498731affefac610f0a05  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_main.c
  fe9eda5144c4b80c732bde86debf0550  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_x.c
  564c8abb5b6fdd9d796e4c9983416c75  gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_y.c
*************** b13ce33543763e05e497e6e9b0b06afc  gcc/te
*** 39959,39965 ****
  b2ee80d950ef18b6d552d6f80b1ea7ec  gcc/testsuite/gcc.dg/compat/struct-complex-2_main.c
  a03c72d9882332482357735b2b82316a  gcc/testsuite/gcc.dg/compat/struct-complex-2_x.c
  8797a70232b48157299f45876cf6b247  gcc/testsuite/gcc.dg/compat/struct-complex-2_y.c
! dd2b857b930384974307d711b9214c5c  gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
  63acee7a9bb7d9a457beb370e4beede2  gcc/testsuite/gcc.dg/compat/struct-layout-1.h
  d628ab6f03137145384ca913f20d6ac3  gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
  997082aeb20119519c8c3e77ee7f6cd1  gcc/testsuite/gcc.dg/compat/struct-layout-1_main.c
--- 41905,41911 ----
  b2ee80d950ef18b6d552d6f80b1ea7ec  gcc/testsuite/gcc.dg/compat/struct-complex-2_main.c
  a03c72d9882332482357735b2b82316a  gcc/testsuite/gcc.dg/compat/struct-complex-2_x.c
  8797a70232b48157299f45876cf6b247  gcc/testsuite/gcc.dg/compat/struct-complex-2_y.c
! 2b7cb37330ebef4b7f2394b6b010d436  gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
  63acee7a9bb7d9a457beb370e4beede2  gcc/testsuite/gcc.dg/compat/struct-layout-1.h
  d628ab6f03137145384ca913f20d6ac3  gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
  997082aeb20119519c8c3e77ee7f6cd1  gcc/testsuite/gcc.dg/compat/struct-layout-1_main.c
*************** bb2749ce61406c502f805c626d9dc647  gcc/te
*** 40095,40101 ****
  e0949a6df091cf08947f37f2651c3fee  gcc/testsuite/gcc.dg/cpp/Wtrigraphs-2.c
  a172b9d48b7f785f2bdf32a66bf33533  gcc/testsuite/gcc.dg/cpp/Wtrigraphs.c
  bbf9f55d936e5adc719ff33b213ff395  gcc/testsuite/gcc.dg/cpp/Wunknown-pragmas-1.c
! 84001526f769e16dddfbe562504e4754  gcc/testsuite/gcc.dg/cpp/Wunused.c
  722ce436983657fc4f00220b26f8fa36  gcc/testsuite/gcc.dg/cpp/Wunused.h
  ff2f8ae252d248760a4dc489195f5aa3  gcc/testsuite/gcc.dg/cpp/Wvariadic-1.c
  08ceb2dccfa0db214b107668cf96bda5  gcc/testsuite/gcc.dg/cpp/Wvariadic-1p.c
--- 42041,42047 ----
  e0949a6df091cf08947f37f2651c3fee  gcc/testsuite/gcc.dg/cpp/Wtrigraphs-2.c
  a172b9d48b7f785f2bdf32a66bf33533  gcc/testsuite/gcc.dg/cpp/Wtrigraphs.c
  bbf9f55d936e5adc719ff33b213ff395  gcc/testsuite/gcc.dg/cpp/Wunknown-pragmas-1.c
! 9133b60797fd27c2069996efa899ffac  gcc/testsuite/gcc.dg/cpp/Wunused.c
  722ce436983657fc4f00220b26f8fa36  gcc/testsuite/gcc.dg/cpp/Wunused.h
  ff2f8ae252d248760a4dc489195f5aa3  gcc/testsuite/gcc.dg/cpp/Wvariadic-1.c
  08ceb2dccfa0db214b107668cf96bda5  gcc/testsuite/gcc.dg/cpp/Wvariadic-1p.c
*************** d6fdc59bae27f9e3097840361d13c67a  gcc/te
*** 40111,40117 ****
  342b42bbace19c658aff4b38bba906c3  gcc/testsuite/gcc.dg/cpp/_Pragma7.c
  5d435e2d88987bbe8d9e62951d0d9d04  gcc/testsuite/gcc.dg/cpp/arith-1.c
  55fe1a813facb5ba765d096c8e745fa1  gcc/testsuite/gcc.dg/cpp/arith-3.c
! 083fb522e201a333315d4482943b501e  gcc/testsuite/gcc.dg/cpp/assembl2.S
  d2ceecccef1772ada3beff72d6faed3e  gcc/testsuite/gcc.dg/cpp/assembler.S
  9ca3af4c8a508d8e50858641266fef9f  gcc/testsuite/gcc.dg/cpp/assert1.c
  5e115586c68bc98bb44755b93dcf7068  gcc/testsuite/gcc.dg/cpp/assert2.c
--- 42057,42063 ----
  342b42bbace19c658aff4b38bba906c3  gcc/testsuite/gcc.dg/cpp/_Pragma7.c
  5d435e2d88987bbe8d9e62951d0d9d04  gcc/testsuite/gcc.dg/cpp/arith-1.c
  55fe1a813facb5ba765d096c8e745fa1  gcc/testsuite/gcc.dg/cpp/arith-3.c
! 98c321843f4efbd8423c0107fb84eb2e  gcc/testsuite/gcc.dg/cpp/assembl2.S
  d2ceecccef1772ada3beff72d6faed3e  gcc/testsuite/gcc.dg/cpp/assembler.S
  9ca3af4c8a508d8e50858641266fef9f  gcc/testsuite/gcc.dg/cpp/assert1.c
  5e115586c68bc98bb44755b93dcf7068  gcc/testsuite/gcc.dg/cpp/assert2.c
*************** c7a189aca9e28ef213e587486efddd56  gcc/te
*** 40126,40148 ****
  fcc0ebd873adc208f52d57df24688339  gcc/testsuite/gcc.dg/cpp/c11-scope-1.c
  4a111c6234dcf4e8ec0ae015130cc011  gcc/testsuite/gcc.dg/cpp/c11-trigraphs-1.c
  10cd08bea3ecf287dbd9876702ff1d3a  gcc/testsuite/gcc.dg/cpp/c11-vararg-1.c
! 85b21b6c941c4435cf426adb5f101ec9  gcc/testsuite/gcc.dg/cpp/c11-warning-1.c
! b2f1ef4ea8876c91665f3be9cc7b1928  gcc/testsuite/gcc.dg/cpp/c11-warning-2.c
! 2cd4ae0c5147b3cf8d03524e12b43f82  gcc/testsuite/gcc.dg/cpp/c11-warning-3.c
  084d78e1dcad7fb9fe18a53e093e651e  gcc/testsuite/gcc.dg/cpp/c11-warning-4.c
  51e01528783cda46e99a6baa7fb77e34  gcc/testsuite/gcc.dg/cpp/c17-scope-1.c
! ab8ae4908a134665ec2cb7931aacecf0  gcc/testsuite/gcc.dg/cpp/c2x-elifdef-1.c
! 0609335dbd9bb86e934747eee7857d95  gcc/testsuite/gcc.dg/cpp/c2x-elifdef-2.c
! e218b8825a7e74b082a068f31665ad82  gcc/testsuite/gcc.dg/cpp/c2x-scope-1.c
! e3fdf9e6251e4e33e1ffc1261f688a0d  gcc/testsuite/gcc.dg/cpp/c2x-scope-2.c
! 82c1f40fcf54f140d9867394a58b3761  gcc/testsuite/gcc.dg/cpp/c2x-trigraphs-1.c
! 17247f488458798b389f619a31362c1b  gcc/testsuite/gcc.dg/cpp/c2x-trigraphs-2.c
! 81dd4eda66314f350f6a7d4068cdf6be  gcc/testsuite/gcc.dg/cpp/c2x-ucn-1.c
! 2e105f57816f0624fe2bab18aad364a3  gcc/testsuite/gcc.dg/cpp/c2x-ucnid-1-utf8.c
! bdce26259e444689681e43839e61b7c3  gcc/testsuite/gcc.dg/cpp/c2x-ucnid-1.c
! 88bac7ce3edc042f8dee455db6c27fa0  gcc/testsuite/gcc.dg/cpp/c2x-va-opt-1.c
! 80365c3fd8e9695a5bab4883687833a2  gcc/testsuite/gcc.dg/cpp/c2x-warning-1.c
! b2fd1d5209d47f460de7a63d1f9e3c14  gcc/testsuite/gcc.dg/cpp/c2x-warning-2.c
  bbda00c98c81c2379844c5d755ee7246  gcc/testsuite/gcc.dg/cpp/c89-pedantic.c
  454bc7f11a8d465fec35fbb6f78621f6  gcc/testsuite/gcc.dg/cpp/c89.c
  84d144adb20df1d5fe899a811b56fca7  gcc/testsuite/gcc.dg/cpp/c90-empty-macro-args.c
--- 42072,42094 ----
  fcc0ebd873adc208f52d57df24688339  gcc/testsuite/gcc.dg/cpp/c11-scope-1.c
  4a111c6234dcf4e8ec0ae015130cc011  gcc/testsuite/gcc.dg/cpp/c11-trigraphs-1.c
  10cd08bea3ecf287dbd9876702ff1d3a  gcc/testsuite/gcc.dg/cpp/c11-vararg-1.c
! f64fee5a7a7bd4a8660ecf2603ddea4e  gcc/testsuite/gcc.dg/cpp/c11-warning-1.c
! c4cbaf0a4576fecd1fff07af3c803dd4  gcc/testsuite/gcc.dg/cpp/c11-warning-2.c
! 075e9a268fb059bb861a24a6813a7cfd  gcc/testsuite/gcc.dg/cpp/c11-warning-3.c
  084d78e1dcad7fb9fe18a53e093e651e  gcc/testsuite/gcc.dg/cpp/c11-warning-4.c
  51e01528783cda46e99a6baa7fb77e34  gcc/testsuite/gcc.dg/cpp/c17-scope-1.c
! 362072560151717e750b865d5be20d37  gcc/testsuite/gcc.dg/cpp/c23-elifdef-1.c
! f24acbada96d10bec85a472b37571c61  gcc/testsuite/gcc.dg/cpp/c23-elifdef-2.c
! 7373b49b84dffe2e4b5a0154c878373e  gcc/testsuite/gcc.dg/cpp/c23-scope-1.c
! a10ccedb1b38cdf1a0bc3ce16e7dae95  gcc/testsuite/gcc.dg/cpp/c23-scope-2.c
! 0bf4cb02c48e7e2ffd7b2f09c54cd542  gcc/testsuite/gcc.dg/cpp/c23-trigraphs-1.c
! 69447a117d2ccce43779b1b5225a6b43  gcc/testsuite/gcc.dg/cpp/c23-trigraphs-2.c
! be3c460c0098e94c006fb156340fafa9  gcc/testsuite/gcc.dg/cpp/c23-ucn-1.c
! f9090b1e74ab40bdc1f405da87a0b268  gcc/testsuite/gcc.dg/cpp/c23-ucnid-1-utf8.c
! 7025ef766c4500cead86027d84ce9cc0  gcc/testsuite/gcc.dg/cpp/c23-ucnid-1.c
! 21e6b934f55d60531851ec4b425a56bd  gcc/testsuite/gcc.dg/cpp/c23-va-opt-1.c
! 2ec588253fa67f809fb2eab5cf4a22ff  gcc/testsuite/gcc.dg/cpp/c23-warning-1.c
! 6a17d3a3097e59dd2e797631602ca1be  gcc/testsuite/gcc.dg/cpp/c23-warning-2.c
  bbda00c98c81c2379844c5d755ee7246  gcc/testsuite/gcc.dg/cpp/c89-pedantic.c
  454bc7f11a8d465fec35fbb6f78621f6  gcc/testsuite/gcc.dg/cpp/c89.c
  84d144adb20df1d5fe899a811b56fca7  gcc/testsuite/gcc.dg/cpp/c90-empty-macro-args.c
*************** cda0f2056759a55b2de15925fdb49edb  gcc/te
*** 40161,40168 ****
  aeac316eab59c566dcc054fa1448d931  gcc/testsuite/gcc.dg/cpp/c99.c
  d7fe9b5439dff2d4320ac5fa9fed372b  gcc/testsuite/gcc.dg/cpp/charconst-2.c
  b8f19314e3816f9e972f0bd68cec0211  gcc/testsuite/gcc.dg/cpp/charconst-3.c
! 8b48c6184cf0310b4efcc46c736b7ac2  gcc/testsuite/gcc.dg/cpp/charconst-4.c
! 3e16b2a81c9b42094d34bb806128c488  gcc/testsuite/gcc.dg/cpp/charconst.c
  fb746197b268341775148b17b72a697b  gcc/testsuite/gcc.dg/cpp/cmdlne-C.c
  082290ee93725d85bcd5a0bd576395f5  gcc/testsuite/gcc.dg/cpp/cmdlne-C2.c
  c93510b14eeb72d93325221c374f47c0  gcc/testsuite/gcc.dg/cpp/cmdlne-C3.c
--- 42107,42114 ----
  aeac316eab59c566dcc054fa1448d931  gcc/testsuite/gcc.dg/cpp/c99.c
  d7fe9b5439dff2d4320ac5fa9fed372b  gcc/testsuite/gcc.dg/cpp/charconst-2.c
  b8f19314e3816f9e972f0bd68cec0211  gcc/testsuite/gcc.dg/cpp/charconst-3.c
! 2b7d103d320f20431a7e0e4055a7b4c0  gcc/testsuite/gcc.dg/cpp/charconst-4.c
! babb6f4b38be8c05212f251ed23289ca  gcc/testsuite/gcc.dg/cpp/charconst.c
  fb746197b268341775148b17b72a697b  gcc/testsuite/gcc.dg/cpp/cmdlne-C.c
  082290ee93725d85bcd5a0bd576395f5  gcc/testsuite/gcc.dg/cpp/cmdlne-C2.c
  c93510b14eeb72d93325221c374f47c0  gcc/testsuite/gcc.dg/cpp/cmdlne-C3.c
*************** d62663c6040cd44ce9ceaef5ef47e6be  gcc/te
*** 40205,40211 ****
  0afc77e6745b381c2db4e3eb47069397  gcc/testsuite/gcc.dg/cpp/cmdlne-dU-8.c
  dc9eac76c9e4283c4325c2a6c902a00b  gcc/testsuite/gcc.dg/cpp/cmdlne-dU-9.c
  d698e775932010971513c46f0883bce0  gcc/testsuite/gcc.dg/cpp/counter-1.c
! 1b4b0690b1ae9f0a1f42af29e6f3f7fc  gcc/testsuite/gcc.dg/cpp/cpp.exp
  a4207c77f8d160b9e8cfe0b186630d5a  gcc/testsuite/gcc.dg/cpp/cxxcom1.c
  d77a661fbfed762f6397bfd3581e855e  gcc/testsuite/gcc.dg/cpp/cxxcom2.c
  8af19f954e4c7d8397aa53ac210b124e  gcc/testsuite/gcc.dg/cpp/cxxcom2.h
--- 42151,42157 ----
  0afc77e6745b381c2db4e3eb47069397  gcc/testsuite/gcc.dg/cpp/cmdlne-dU-8.c
  dc9eac76c9e4283c4325c2a6c902a00b  gcc/testsuite/gcc.dg/cpp/cmdlne-dU-9.c
  d698e775932010971513c46f0883bce0  gcc/testsuite/gcc.dg/cpp/counter-1.c
! ee97a07ac4ab9b7eb00f48de66395860  gcc/testsuite/gcc.dg/cpp/cpp.exp
  a4207c77f8d160b9e8cfe0b186630d5a  gcc/testsuite/gcc.dg/cpp/cxxcom1.c
  d77a661fbfed762f6397bfd3581e855e  gcc/testsuite/gcc.dg/cpp/cxxcom2.c
  8af19f954e4c7d8397aa53ac210b124e  gcc/testsuite/gcc.dg/cpp/cxxcom2.h
*************** b7bb414df09ccb2077133b21ba630ce8  gcc/te
*** 40231,40237 ****
  3f966d736c5e8d8df46521821e7b2f3c  gcc/testsuite/gcc.dg/cpp/escape-2.c
  7e09acd41fc89861253e4344afbcbae7  gcc/testsuite/gcc.dg/cpp/escape.c
  98feceff95879f1cf8369acd89081e91  gcc/testsuite/gcc.dg/cpp/expr-overflow-1.c
! b19455bfe628c1f37633132f031455a9  gcc/testsuite/gcc.dg/cpp/expr.c
  0542adabc404b395be7ed16807470105  gcc/testsuite/gcc.dg/cpp/extratokens.c
  aadc860548db8dcbd94288e8fb40080f  gcc/testsuite/gcc.dg/cpp/extratokens2.c
  0db3f308d305a4799ae225cb2bde1618  gcc/testsuite/gcc.dg/cpp/fpreprocessed.c
--- 42177,42183 ----
  3f966d736c5e8d8df46521821e7b2f3c  gcc/testsuite/gcc.dg/cpp/escape-2.c
  7e09acd41fc89861253e4344afbcbae7  gcc/testsuite/gcc.dg/cpp/escape.c
  98feceff95879f1cf8369acd89081e91  gcc/testsuite/gcc.dg/cpp/expr-overflow-1.c
! bba01df515f0f42ab95c944f550b6677  gcc/testsuite/gcc.dg/cpp/expr.c
  0542adabc404b395be7ed16807470105  gcc/testsuite/gcc.dg/cpp/extratokens.c
  aadc860548db8dcbd94288e8fb40080f  gcc/testsuite/gcc.dg/cpp/extratokens2.c
  0db3f308d305a4799ae225cb2bde1618  gcc/testsuite/gcc.dg/cpp/fpreprocessed.c
*************** b28d91565a9d3d3c36d42433a970d0a8  gcc/te
*** 40239,40256 ****
  b28d91565a9d3d3c36d42433a970d0a8  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/B.h
  5d89d576a9968b776fdfc226c6bffeab  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h
  25ec68dbc03a8ee15912e94f21b09aad  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h
! 35bd445130b2ce5e686ab4e4e6861691  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-1.c
  f63929b880f2dbd68851c905df23edf9  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-2.c
! 0ed55dc91c36aa55323e9dc31635730d  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-3.c
! 843c5db890295f75563550551ef75427  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-4.c
  249f8cef8b8882e23c64416d1b349d1b  gcc/testsuite/gcc.dg/cpp/gnu11-scope-1.c
! deabf1ff6d845c9f6d39a47b5841deac  gcc/testsuite/gcc.dg/cpp/gnu11-warning-1.c
! da0f2471196b875c8c78e9bfa81850f8  gcc/testsuite/gcc.dg/cpp/gnu11-warning-2.c
! 258503aca906db66b5118b49f4df4cb3  gcc/testsuite/gcc.dg/cpp/gnu11-warning-3.c
  95d44f2973728b81efec2487fbdd65fb  gcc/testsuite/gcc.dg/cpp/gnu11-warning-4.c
  387a38d01596b5031e131434b9e77173  gcc/testsuite/gcc.dg/cpp/gnu17-scope-1.c
! acbae8c492281e98e985a5e6dd1a0c4c  gcc/testsuite/gcc.dg/cpp/gnu2x-warning-1.c
! eaf6729ceb60ba3bfccd2f9514dce056  gcc/testsuite/gcc.dg/cpp/gnu2x-warning-2.c
  a2441b4fd086f33f11e77efdec935c19  gcc/testsuite/gcc.dg/cpp/gnu89-scope-1.c
  afa46c476e52e14bfced96dc51f6c635  gcc/testsuite/gcc.dg/cpp/gnu99-scope-1.c
  6f35c1e2a6a28e958dce46f047684778  gcc/testsuite/gcc.dg/cpp/gnuc89-pedantic.c
--- 42185,42202 ----
  b28d91565a9d3d3c36d42433a970d0a8  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/B.h
  5d89d576a9968b776fdfc226c6bffeab  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Frameworks/OneSub.framework/Headers/C.h
  25ec68dbc03a8ee15912e94f21b09aad  gcc/testsuite/gcc.dg/cpp/frame/one.framework/Headers/one-includeSubs.h
! 31a98b1f75602e672e6eca9762dc9036  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-1.c
  f63929b880f2dbd68851c905df23edf9  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-2.c
! 8d6e0c9932340f0cc43c127e44cf2eab  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-3.c
! 4e8fa6e82a3331379478635fec8533fd  gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-4.c
  249f8cef8b8882e23c64416d1b349d1b  gcc/testsuite/gcc.dg/cpp/gnu11-scope-1.c
! fa98804dc69308d154b28474112c3557  gcc/testsuite/gcc.dg/cpp/gnu11-warning-1.c
! 6a3b1797b76f0b554513523ef48ab6bb  gcc/testsuite/gcc.dg/cpp/gnu11-warning-2.c
! a15ff48cbedf97e231b6c456ce585602  gcc/testsuite/gcc.dg/cpp/gnu11-warning-3.c
  95d44f2973728b81efec2487fbdd65fb  gcc/testsuite/gcc.dg/cpp/gnu11-warning-4.c
  387a38d01596b5031e131434b9e77173  gcc/testsuite/gcc.dg/cpp/gnu17-scope-1.c
! bd6c7731ce5799d9a9381b1ab1680843  gcc/testsuite/gcc.dg/cpp/gnu23-warning-1.c
! 7faab0f42e496175c388267b32a205b1  gcc/testsuite/gcc.dg/cpp/gnu23-warning-2.c
  a2441b4fd086f33f11e77efdec935c19  gcc/testsuite/gcc.dg/cpp/gnu89-scope-1.c
  afa46c476e52e14bfced96dc51f6c635  gcc/testsuite/gcc.dg/cpp/gnu99-scope-1.c
  6f35c1e2a6a28e958dce46f047684778  gcc/testsuite/gcc.dg/cpp/gnuc89-pedantic.c
*************** f2778a33710514f9a4c8d3438ba22b43  gcc/te
*** 40261,40267 ****
  a919e8dd806f60a20c3bdbb31b15831c  gcc/testsuite/gcc.dg/cpp/ident-1.c
  ed81da398e927f92980414d5db1bd784  gcc/testsuite/gcc.dg/cpp/ident.c
  cbcb149d5dadb7ecdbc1a719ae9bb868  gcc/testsuite/gcc.dg/cpp/if-1.c
! 060bd77551c3c3e24b2d0195ddbebb18  gcc/testsuite/gcc.dg/cpp/if-2.c
  23be95f29cfcfec324adf4f78cff1d04  gcc/testsuite/gcc.dg/cpp/if-4.c
  4eb1e1755efaea6ac2ec05e1595b42f3  gcc/testsuite/gcc.dg/cpp/if-5.c
  aed8cf985c74edd19f55a52aafa5d069  gcc/testsuite/gcc.dg/cpp/if-cexp.c
--- 42207,42213 ----
  a919e8dd806f60a20c3bdbb31b15831c  gcc/testsuite/gcc.dg/cpp/ident-1.c
  ed81da398e927f92980414d5db1bd784  gcc/testsuite/gcc.dg/cpp/ident.c
  cbcb149d5dadb7ecdbc1a719ae9bb868  gcc/testsuite/gcc.dg/cpp/if-1.c
! 83f078a7936c7713276d1a1f396cfca9  gcc/testsuite/gcc.dg/cpp/if-2.c
  23be95f29cfcfec324adf4f78cff1d04  gcc/testsuite/gcc.dg/cpp/if-4.c
  4eb1e1755efaea6ac2ec05e1595b42f3  gcc/testsuite/gcc.dg/cpp/if-5.c
  aed8cf985c74edd19f55a52aafa5d069  gcc/testsuite/gcc.dg/cpp/if-cexp.c
*************** dbed9ae96a21fcde41cfdad7cf866745  gcc/te
*** 40408,40413 ****
--- 42354,42361 ----
  9e6abf813586d610c5bba47d923aaf4a  gcc/testsuite/gcc.dg/cpp/pr100646-1.c
  1cc56428de626da80bfe2da8848c8587  gcc/testsuite/gcc.dg/cpp/pr100646-2.c
  df4a6f060fa69f67fe9841571f51274c  gcc/testsuite/gcc.dg/cpp/pr101638.c
+ 916c80ba82cc36c5de23aec6f1ebffc5  gcc/testsuite/gcc.dg/cpp/pr111965-1.c
+ 57dc0b002ec7c6d73e75b1ecbfbd4c4c  gcc/testsuite/gcc.dg/cpp/pr111965-2.c
  5f42a9dd480e45f484f3827b3aadb3e4  gcc/testsuite/gcc.dg/cpp/pr20348.c
  7c61ccd7a1cbc88526a3a1ae591f54b6  gcc/testsuite/gcc.dg/cpp/pr20348.h
  57a7826d3185767b0a94a4f1c482ddd4  gcc/testsuite/gcc.dg/cpp/pr20356.c
*************** cd284656aaf570a6f621480512077abd  gcc/te
*** 40438,40448 ****
  b50aa89102a7000c9f6a19cd08edb5b2  gcc/testsuite/gcc.dg/cpp/pr36674.i
  305ae9c95b1a4224816adfdc5af2f157  gcc/testsuite/gcc.dg/cpp/pr43195.c
  b5ad224e236fc4a36c19d3cfb71bb8da  gcc/testsuite/gcc.dg/cpp/pr43195.h
! d3b98cc4c3ffbf8098e9f964dbf71440  gcc/testsuite/gcc.dg/cpp/pr60014-1.c
  8a8b441141218a428dc2187c535f964e  gcc/testsuite/gcc.dg/cpp/pr60014-1.h
! 5d6f13d2f7ac2fcff5a57558c2f7566e  gcc/testsuite/gcc.dg/cpp/pr60014-2.c
  fa42a9248770f161cb27fe85a6bbc8c7  gcc/testsuite/gcc.dg/cpp/pr60014-2.h
! 11b0fa8d42a1925cc5296e2a9a70581e  gcc/testsuite/gcc.dg/cpp/pr60014-3.c
  d47b6081e98142312bbce6cab28c4168  gcc/testsuite/gcc.dg/cpp/pr60014-3.h
  54fcd6b1971769d85a79a8752e4a5c89  gcc/testsuite/gcc.dg/cpp/pr60570.c
  7839208dbe8970cdd8014e6220c0bd65  gcc/testsuite/gcc.dg/cpp/pr61854-1.c
--- 42386,42396 ----
  b50aa89102a7000c9f6a19cd08edb5b2  gcc/testsuite/gcc.dg/cpp/pr36674.i
  305ae9c95b1a4224816adfdc5af2f157  gcc/testsuite/gcc.dg/cpp/pr43195.c
  b5ad224e236fc4a36c19d3cfb71bb8da  gcc/testsuite/gcc.dg/cpp/pr43195.h
! 5d1998992379b4be30cd8c1ab25a11c2  gcc/testsuite/gcc.dg/cpp/pr60014-1.c
  8a8b441141218a428dc2187c535f964e  gcc/testsuite/gcc.dg/cpp/pr60014-1.h
! 65d7bbc87526fa2f01e7c88d96892b6b  gcc/testsuite/gcc.dg/cpp/pr60014-2.c
  fa42a9248770f161cb27fe85a6bbc8c7  gcc/testsuite/gcc.dg/cpp/pr60014-2.h
! f6c00543100e03bdcd73f0a6c2ec7096  gcc/testsuite/gcc.dg/cpp/pr60014-3.c
  d47b6081e98142312bbce6cab28c4168  gcc/testsuite/gcc.dg/cpp/pr60014-3.h
  54fcd6b1971769d85a79a8752e4a5c89  gcc/testsuite/gcc.dg/cpp/pr60570.c
  7839208dbe8970cdd8014e6220c0bd65  gcc/testsuite/gcc.dg/cpp/pr61854-1.c
*************** d7ecf03713cde507ba5a481ab2489a6f  gcc/te
*** 40483,40491 ****
  d59887c3a6d84e13943708de2d30ef72  gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h
  8804321867348b1e703e820a9a734ce7  gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c
  218c8d212affdcad76bbf99a0b32bacb  gcc/testsuite/gcc.dg/cpp/redef1.c
! 7cc9099c2d2dcd2898f508d445734e2e  gcc/testsuite/gcc.dg/cpp/redef2.c
! 48290d65488341c7f84097665e8aa6fc  gcc/testsuite/gcc.dg/cpp/redef3.c
! ce5f45208d877973cc057d044c8c10f2  gcc/testsuite/gcc.dg/cpp/redef4.c
  4e8711b0b38a21c8809a2e04bdabfacf  gcc/testsuite/gcc.dg/cpp/remap/a/header.gcc
  77ed3e756f7ad0b7fac7b786bd0464ca  gcc/testsuite/gcc.dg/cpp/remap/a/t_1.h
  77ed3e756f7ad0b7fac7b786bd0464ca  gcc/testsuite/gcc.dg/cpp/remap/a/t_2.h
--- 42431,42439 ----
  d59887c3a6d84e13943708de2d30ef72  gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h
  8804321867348b1e703e820a9a734ce7  gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c
  218c8d212affdcad76bbf99a0b32bacb  gcc/testsuite/gcc.dg/cpp/redef1.c
! e8f6926244feafa3d4832576d4b8576c  gcc/testsuite/gcc.dg/cpp/redef2.c
! b47d4e874173f68a194c7dd458579b31  gcc/testsuite/gcc.dg/cpp/redef3.c
! e88cc5aaeba5c457e86c89d091525b54  gcc/testsuite/gcc.dg/cpp/redef4.c
  4e8711b0b38a21c8809a2e04bdabfacf  gcc/testsuite/gcc.dg/cpp/remap/a/header.gcc
  77ed3e756f7ad0b7fac7b786bd0464ca  gcc/testsuite/gcc.dg/cpp/remap/a/t_1.h
  77ed3e756f7ad0b7fac7b786bd0464ca  gcc/testsuite/gcc.dg/cpp/remap/a/t_2.h
*************** fb8d966edc2bb4f9de1858ef3f07c225  gcc/te
*** 40601,40607 ****
  c1aa9faf5b39d1bba0aeaa85934f3e1a  gcc/testsuite/gcc.dg/cpp/trad/redef1.c
  d02c582ddc7f3e7e944d26e530487750  gcc/testsuite/gcc.dg/cpp/trad/redef2.c
  98ee20f87a972bda969b7109dd4c69d2  gcc/testsuite/gcc.dg/cpp/trad/strify.c
! 432b515be264fe618532933504ba6903  gcc/testsuite/gcc.dg/cpp/trad/trad.exp
  4934795b44ee5b4d4a100c69ae18a71a  gcc/testsuite/gcc.dg/cpp/trad/uchar.c
  9741e04a76510827749554c1610f8b02  gcc/testsuite/gcc.dg/cpp/trad/xwin1.c
  1cd5384614e3226fa238ee19dd09ecce  gcc/testsuite/gcc.dg/cpp/trigraphs.c
--- 42549,42555 ----
  c1aa9faf5b39d1bba0aeaa85934f3e1a  gcc/testsuite/gcc.dg/cpp/trad/redef1.c
  d02c582ddc7f3e7e944d26e530487750  gcc/testsuite/gcc.dg/cpp/trad/redef2.c
  98ee20f87a972bda969b7109dd4c69d2  gcc/testsuite/gcc.dg/cpp/trad/strify.c
! 2691f31b699bf7c476fcb5e293b3ef22  gcc/testsuite/gcc.dg/cpp/trad/trad.exp
  4934795b44ee5b4d4a100c69ae18a71a  gcc/testsuite/gcc.dg/cpp/trad/uchar.c
  9741e04a76510827749554c1610f8b02  gcc/testsuite/gcc.dg/cpp/trad/xwin1.c
  1cd5384614e3226fa238ee19dd09ecce  gcc/testsuite/gcc.dg/cpp/trigraphs.c
*************** a82f9fcf42d3920c32d863031a56481f  gcc/te
*** 40611,40618 ****
  8db6db6bcaa213a2c261c3b822a88a1c  gcc/testsuite/gcc.dg/cpp/ucnid-1.c
  115a8ba499f9fbe291052b7d1e23900d  gcc/testsuite/gcc.dg/cpp/ucnid-10-utf8.c
  db5e79fe31133c21a894acb896e0efc6  gcc/testsuite/gcc.dg/cpp/ucnid-10.c
! 8b47f58a6cca8392fa400ad7b5688876  gcc/testsuite/gcc.dg/cpp/ucnid-11-utf8.c
! a2d559abfa49c888c6f9375309b97e18  gcc/testsuite/gcc.dg/cpp/ucnid-11.c
  2a2177923ada477b7f74c56a16be67b8  gcc/testsuite/gcc.dg/cpp/ucnid-12-utf8.c
  b33f2eaa16255076a7607107d59af221  gcc/testsuite/gcc.dg/cpp/ucnid-12.c
  c4291416e11da2796b002058613f1b0f  gcc/testsuite/gcc.dg/cpp/ucnid-13-utf8.c
--- 42559,42566 ----
  8db6db6bcaa213a2c261c3b822a88a1c  gcc/testsuite/gcc.dg/cpp/ucnid-1.c
  115a8ba499f9fbe291052b7d1e23900d  gcc/testsuite/gcc.dg/cpp/ucnid-10-utf8.c
  db5e79fe31133c21a894acb896e0efc6  gcc/testsuite/gcc.dg/cpp/ucnid-10.c
! 8cb2c082cf6001a47f4f6ab73db6c506  gcc/testsuite/gcc.dg/cpp/ucnid-11-utf8.c
! 09b80024f2d113486f9d0de2d5dde2f5  gcc/testsuite/gcc.dg/cpp/ucnid-11.c
  2a2177923ada477b7f74c56a16be67b8  gcc/testsuite/gcc.dg/cpp/ucnid-12-utf8.c
  b33f2eaa16255076a7607107d59af221  gcc/testsuite/gcc.dg/cpp/ucnid-12.c
  c4291416e11da2796b002058613f1b0f  gcc/testsuite/gcc.dg/cpp/ucnid-13-utf8.c
*************** f88a7cceb445a1a8bd921ab18c9b29d9  gcc/te
*** 40641,40647 ****
  24e8bbf6a63455e62f7395086eb33b20  gcc/testsuite/gcc.dg/cpp/unc3.c
  3c434fbf69ab63118b91a596ff524ca3  gcc/testsuite/gcc.dg/cpp/unc4.c
  34fc89f1d246197a5b7c09184e223c2d  gcc/testsuite/gcc.dg/cpp/undef-opt-1.c
! 98e3377149a8eb0003f1fc9545eb39cb  gcc/testsuite/gcc.dg/cpp/undef2.c
  b580fc14655d151bc7323c9844094653  gcc/testsuite/gcc.dg/cpp/usr/include/example.h
  4899fc09b42f0a436755005aadbdedf5  gcc/testsuite/gcc.dg/cpp/utf8-5byte-1.c
  2adb7d5686ff190b39e11527a9b2fece  gcc/testsuite/gcc.dg/cpp/vararg1.c
--- 42589,42595 ----
  24e8bbf6a63455e62f7395086eb33b20  gcc/testsuite/gcc.dg/cpp/unc3.c
  3c434fbf69ab63118b91a596ff524ca3  gcc/testsuite/gcc.dg/cpp/unc4.c
  34fc89f1d246197a5b7c09184e223c2d  gcc/testsuite/gcc.dg/cpp/undef-opt-1.c
! adeef518d993b6df61782e7d4c8e5372  gcc/testsuite/gcc.dg/cpp/undef2.c
  b580fc14655d151bc7323c9844094653  gcc/testsuite/gcc.dg/cpp/usr/include/example.h
  4899fc09b42f0a436755005aadbdedf5  gcc/testsuite/gcc.dg/cpp/utf8-5byte-1.c
  2adb7d5686ff190b39e11527a9b2fece  gcc/testsuite/gcc.dg/cpp/vararg1.c
*************** b60882f19a9ffb20fe947d5e53d0d6b4  gcc/te
*** 40665,40672 ****
  2e4eeb34f8c1173370ed379e8f6b92ab  gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c
  27a335c51ae04665c1b65b5a817d5d7b  gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c
  5bad521b05a8accaf66ae2372bde2cff  gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c
! a99161b8a75e9238962748303dcdba69  gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c
! 34c3cc765e57c85b0a9987cf0c5298be  gcc/testsuite/gcc.dg/cpp/warn-redefined.c
  8f65efe0d0f7e1137ad1eefd5d7153e9  gcc/testsuite/gcc.dg/cpp/warn-traditional-2.c
  acb39207e85f00c00516969802a94dd7  gcc/testsuite/gcc.dg/cpp/warn-traditional.c
  9f458e13f96adf10171bbd70bf73580c  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-1.c
--- 42613,42620 ----
  2e4eeb34f8c1173370ed379e8f6b92ab  gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c
  27a335c51ae04665c1b65b5a817d5d7b  gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c
  5bad521b05a8accaf66ae2372bde2cff  gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c
! c4feb4e6a53f43509982daf8d4b99180  gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c
! 5e6f0c5ab0398a8cec40318a9f414d30  gcc/testsuite/gcc.dg/cpp/warn-redefined.c
  8f65efe0d0f7e1137ad1eefd5d7153e9  gcc/testsuite/gcc.dg/cpp/warn-traditional-2.c
  acb39207e85f00c00516969802a94dd7  gcc/testsuite/gcc.dg/cpp/warn-traditional.c
  9f458e13f96adf10171bbd70bf73580c  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-1.c
*************** acb39207e85f00c00516969802a94dd7  gcc/te
*** 40675,40689 ****
  808d1fc9010b656c12cb30049a3b2b55  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-4.c
  e4c533a80bf3b78a131bcc3e2cc187ae  gcc/testsuite/gcc.dg/cpp/warn-undef-2.c
  dafecc042eba4cfb6758a4da33515721  gcc/testsuite/gcc.dg/cpp/warn-undef.c
! 1a55ebc0be94cc98dc402d126b31e6ea  gcc/testsuite/gcc.dg/cpp/warn-unused-macros-2.c
! c084a28888c58b9756ebbd85df02c85d  gcc/testsuite/gcc.dg/cpp/warn-unused-macros.c
  d6455bd7d39e63a6ebb49f2bee334872  gcc/testsuite/gcc.dg/cpp/warn-variadic-2.c
  61dfbff4afe62aa7a02208ce123aedcf  gcc/testsuite/gcc.dg/cpp/warn-variadic.c
! bddbf619aa148dc52dba82e2f937b89a  gcc/testsuite/gcc.dg/cpp/wchar-1.c
  febe83ee27f0e3494e3bd4484d6a7d21  gcc/testsuite/gcc.dg/cpp/widestr1.c
  e283abc5c7ec3171392ff96f4b1a8745  gcc/testsuite/gcc.dg/cr-decimal-dig-1.c
! 3cb82ba3124ec1df5576fd26e4f9b957  gcc/testsuite/gcc.dg/cr-decimal-dig-2.c
! 8da715eeea2441a852e1a680975292fe  gcc/testsuite/gcc.dg/cr-decimal-dig-3.c
  ea8e81ccf9b0e8a7d31a02ddf10f3ae7  gcc/testsuite/gcc.dg/cse_recip.c
  dc6685bcab4cd7ed276483fd8d031507  gcc/testsuite/gcc.dg/ctor1.c
  13a7eb422d70031061c88832496b4b3b  gcc/testsuite/gcc.dg/cwsc0.c
--- 42623,42637 ----
  808d1fc9010b656c12cb30049a3b2b55  gcc/testsuite/gcc.dg/cpp/warn-trigraphs-4.c
  e4c533a80bf3b78a131bcc3e2cc187ae  gcc/testsuite/gcc.dg/cpp/warn-undef-2.c
  dafecc042eba4cfb6758a4da33515721  gcc/testsuite/gcc.dg/cpp/warn-undef.c
! b29af0238f544e211877e0b6d26255c5  gcc/testsuite/gcc.dg/cpp/warn-unused-macros-2.c
! 04c561a178ebbbdd2809c1d5273feb2d  gcc/testsuite/gcc.dg/cpp/warn-unused-macros.c
  d6455bd7d39e63a6ebb49f2bee334872  gcc/testsuite/gcc.dg/cpp/warn-variadic-2.c
  61dfbff4afe62aa7a02208ce123aedcf  gcc/testsuite/gcc.dg/cpp/warn-variadic.c
! 119dbe9f5b0669d707007ae0787f4fe6  gcc/testsuite/gcc.dg/cpp/wchar-1.c
  febe83ee27f0e3494e3bd4484d6a7d21  gcc/testsuite/gcc.dg/cpp/widestr1.c
  e283abc5c7ec3171392ff96f4b1a8745  gcc/testsuite/gcc.dg/cr-decimal-dig-1.c
! 14e08c1242ea5fbad863730494e299f5  gcc/testsuite/gcc.dg/cr-decimal-dig-2.c
! 5b0486b5bce3482ffaecc4ab080f8c83  gcc/testsuite/gcc.dg/cr-decimal-dig-3.c
  ea8e81ccf9b0e8a7d31a02ddf10f3ae7  gcc/testsuite/gcc.dg/cse_recip.c
  dc6685bcab4cd7ed276483fd8d031507  gcc/testsuite/gcc.dg/ctor1.c
  13a7eb422d70031061c88832496b4b3b  gcc/testsuite/gcc.dg/cwsc0.c
*************** c4152191bf290926b6b747aa4397e015  gcc/te
*** 40696,40702 ****
  f6fc7e2ea2fa3bb9082daec81d56aeff  gcc/testsuite/gcc.dg/darwin-comm-1.c
  7e6cf48347ff53c1f9c509b921aceb22  gcc/testsuite/gcc.dg/darwin-comm.c
  b477cca030ba86435b074a334ee9bfd0  gcc/testsuite/gcc.dg/darwin-ld-1.c
! 4ac76811f1a6c80f6dc5191396c37748  gcc/testsuite/gcc.dg/darwin-ld-2.c
  9fa876cce008f5a8d26340933a0e3295  gcc/testsuite/gcc.dg/darwin-ld-20040809-1.c
  e62d76045ed903e34f34747bee80da98  gcc/testsuite/gcc.dg/darwin-ld-20040809-2.c
  37137f00ef98856229916ab1efa4960c  gcc/testsuite/gcc.dg/darwin-ld-20040828-1.c
--- 42644,42650 ----
  f6fc7e2ea2fa3bb9082daec81d56aeff  gcc/testsuite/gcc.dg/darwin-comm-1.c
  7e6cf48347ff53c1f9c509b921aceb22  gcc/testsuite/gcc.dg/darwin-comm.c
  b477cca030ba86435b074a334ee9bfd0  gcc/testsuite/gcc.dg/darwin-ld-1.c
! 2bf757e63fd40f62dbd7f7ae31ebbf00  gcc/testsuite/gcc.dg/darwin-ld-2.c
  9fa876cce008f5a8d26340933a0e3295  gcc/testsuite/gcc.dg/darwin-ld-20040809-1.c
  e62d76045ed903e34f34747bee80da98  gcc/testsuite/gcc.dg/darwin-ld-20040809-2.c
  37137f00ef98856229916ab1efa4960c  gcc/testsuite/gcc.dg/darwin-ld-20040828-1.c
*************** ee94511375797117140ca777fd1695b1  gcc/te
*** 40717,40725 ****
  704c9a2dca0a451cca6e5855f7f2347f  gcc/testsuite/gcc.dg/darwin-minversion-7.c
  5a8b775f8ce1e0cafb8782fbc39b58e4  gcc/testsuite/gcc.dg/darwin-minversion-8.c
  aa9dfa39c42ef65a88c0a708412fb842  gcc/testsuite/gcc.dg/darwin-minversion-9.c
! 9dbaa15e2b1a56ec7afc29c9929eedab  gcc/testsuite/gcc.dg/darwin-minversion-link.c
  b66bb093837bda7692b73c8aa9711e00  gcc/testsuite/gcc.dg/darwin-sections.c
! 3cfa6daebed9a12884613012f50433e4  gcc/testsuite/gcc.dg/darwin-segaddr.c
  e3d2d2840d7d23dee7e2cd94e097a114  gcc/testsuite/gcc.dg/darwin-version-1.c
  9145b589b54240035dacb7540309d62e  gcc/testsuite/gcc.dg/darwin-weakimport-1.c
  bda7de2e2fd6472aa3ffe7873407e58d  gcc/testsuite/gcc.dg/darwin-weakimport-2.c
--- 42665,42673 ----
  704c9a2dca0a451cca6e5855f7f2347f  gcc/testsuite/gcc.dg/darwin-minversion-7.c
  5a8b775f8ce1e0cafb8782fbc39b58e4  gcc/testsuite/gcc.dg/darwin-minversion-8.c
  aa9dfa39c42ef65a88c0a708412fb842  gcc/testsuite/gcc.dg/darwin-minversion-9.c
! 956d9c5ca31de05aa49da3cb99f3d4ef  gcc/testsuite/gcc.dg/darwin-minversion-link.c
  b66bb093837bda7692b73c8aa9711e00  gcc/testsuite/gcc.dg/darwin-sections.c
! f7857b3d082c7452ee5a60411d5f02bc  gcc/testsuite/gcc.dg/darwin-segaddr.c
  e3d2d2840d7d23dee7e2cd94e097a114  gcc/testsuite/gcc.dg/darwin-version-1.c
  9145b589b54240035dacb7540309d62e  gcc/testsuite/gcc.dg/darwin-weakimport-1.c
  bda7de2e2fd6472aa3ffe7873407e58d  gcc/testsuite/gcc.dg/darwin-weakimport-2.c
*************** ed81fbec73210f2f3666b468aaf2f326  gcc/te
*** 40739,40778 ****
  31ac2b1d7a416b8ab4bf17dca3b4cfc3  gcc/testsuite/gcc.dg/debug/20050907-1.c
  aa1824da5d04e6736c2ab0b97a0e0a33  gcc/testsuite/gcc.dg/debug/btf/btf-1.c
  d7ad03b2a6b8077164c037f53a4ee77c  gcc/testsuite/gcc.dg/debug/btf/btf-2.c
! 877845f7aad96a75a507fe303bd070cf  gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-struct-1.c
! c6acea5fc07cc366b37498350830514f  gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-union-1.c
! 8a52dd50e428d9db591c61d1ad91de9a  gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c
  0ebc1e42923703f8675ccf5d9a8fdae3  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c
! a7a6134e3613cad320eef79cddfa7324  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c
! dc1f9d1f305a0bcb31d9c3ca21e0d7a6  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c
! 09a13f462323e032a306173e42b58069  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c
! c8c07917b8fa88fed0014102030b9ee8  gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c
! bb2706a1f2ad426d6b75d9ee9e890217  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c
! 2d63e6ca83518fcbe2790062c3290854  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-2.c
! 901006c5efe6c5d7f9d37a2ed1bdde2f  gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c
! 874e09c8f741f9a846f144761bed4efe  gcc/testsuite/gcc.dg/debug/btf/btf-enum64-1.c
  f69c19d70ecf052b9849631cd2c96282  gcc/testsuite/gcc.dg/debug/btf/btf-float-1.c
  12c1b6f565228e7e78809220514ef2f9  gcc/testsuite/gcc.dg/debug/btf/btf-forward-1.c
  822a099318844b46230aaf2fe81d43de  gcc/testsuite/gcc.dg/debug/btf/btf-function-1.c
  de6cbe052990dd17f62f4ac614384063  gcc/testsuite/gcc.dg/debug/btf/btf-function-2.c
! 78dc5beede6c429d3e6b9b63ec4a1eff  gcc/testsuite/gcc.dg/debug/btf/btf-function-3.c
  3b045e25dc8301e3cd3b175ee4069a67  gcc/testsuite/gcc.dg/debug/btf/btf-function-4.c
  32ea353626f3c3fb938aa89bc20dfb76  gcc/testsuite/gcc.dg/debug/btf/btf-function-5.c
! ae1cbe7134ca31c9cefeea20243ed3bd  gcc/testsuite/gcc.dg/debug/btf/btf-function-6.c
  835d989f5a48033f2b7a0677368e22a9  gcc/testsuite/gcc.dg/debug/btf/btf-int-1.c
! ec3ef284064bd1373b5bd16fce95e105  gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c
  d88796e35daf5eabf6a8ee3cc6c5e9b7  gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c
! 31cca9bd048ceea2bc54482e0c4b43ce  gcc/testsuite/gcc.dg/debug/btf/btf-pr106773.c
! 149e1772a34f92dbf550628ea67aa0a1  gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c
! 8b5304b18e5e95a0e5881320c177bd7c  gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c
! 0c417a6cf3aa40a3a251e0e4594bafd2  gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c
! 6b4d96c4105d6bdeeb91160048d7a75e  gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c
! 872eb4b63bebb4c8ab8c55d709584370  gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c
! 82303111c5592cc51dccc59eb0a20737  gcc/testsuite/gcc.dg/debug/btf/btf-variables-2.c
  3fe28c927bc21d0392a705f27a1bedd7  gcc/testsuite/gcc.dg/debug/btf/btf-variables-3.c
  198737d371e3f3b460d9af3de3021afc  gcc/testsuite/gcc.dg/debug/btf/btf-variables-4.c
  54f24ed7c216c0ab89c174fe96c566c4  gcc/testsuite/gcc.dg/debug/btf/btf-variables-5.c
! 8caf513ee175e8164f2c8c14b0744814  gcc/testsuite/gcc.dg/debug/btf/btf.exp
  43b79cd3ca67853ae15362a1eb8e3d6a  gcc/testsuite/gcc.dg/debug/const-1.c
  b436f74276be886856059b6d921c0daf  gcc/testsuite/gcc.dg/debug/const-2.c
  17393d7ba43c4bb0cb2f02b8906f09ea  gcc/testsuite/gcc.dg/debug/const-3.c
--- 42687,42730 ----
  31ac2b1d7a416b8ab4bf17dca3b4cfc3  gcc/testsuite/gcc.dg/debug/20050907-1.c
  aa1824da5d04e6736c2ab0b97a0e0a33  gcc/testsuite/gcc.dg/debug/btf/btf-1.c
  d7ad03b2a6b8077164c037f53a4ee77c  gcc/testsuite/gcc.dg/debug/btf/btf-2.c
! 5aaed6d6016f0c49f14674bd90cf3ebd  gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-struct-1.c
! ac31b35aa716e7b4916790a4e47741f5  gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-union-1.c
! 72752135dd00d9bdcb3cf26f2cadbb88  gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c
  0ebc1e42923703f8675ccf5d9a8fdae3  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c
! b52aedcd1402818686408458b56f5c0f  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c
! 292d000dd3eab6de9d662d8b2f17af21  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c
! 78fce882253fa3c81340c67ee3c2e898  gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c
! 5f5852d99d062b23cbdfe5c227efbf3a  gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c
! 9a9e37184c0bf1352f5ae0597bb3dee6  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c
! 37f5c1016c4b1890e5ed498542466546  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-2.c
! 39a083dfb1359588f392f1c1d7545bcd  gcc/testsuite/gcc.dg/debug/btf/btf-datasec-3.c
! ce8db6beea057b08db18a29b3b5f953c  gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c
! 2746c1a8ff992beba556a0403d9731cf  gcc/testsuite/gcc.dg/debug/btf/btf-enum-small.c
! 42dec2bdf221f13367de97714fa15ce3  gcc/testsuite/gcc.dg/debug/btf/btf-enum64-1.c
  f69c19d70ecf052b9849631cd2c96282  gcc/testsuite/gcc.dg/debug/btf/btf-float-1.c
  12c1b6f565228e7e78809220514ef2f9  gcc/testsuite/gcc.dg/debug/btf/btf-forward-1.c
+ 53ceab2553b65ae2124e0a462b0fc394  gcc/testsuite/gcc.dg/debug/btf/btf-forward-2.c
  822a099318844b46230aaf2fe81d43de  gcc/testsuite/gcc.dg/debug/btf/btf-function-1.c
  de6cbe052990dd17f62f4ac614384063  gcc/testsuite/gcc.dg/debug/btf/btf-function-2.c
! fbef844d4a4fed15a26ac6a1e5f52b8f  gcc/testsuite/gcc.dg/debug/btf/btf-function-3.c
  3b045e25dc8301e3cd3b175ee4069a67  gcc/testsuite/gcc.dg/debug/btf/btf-function-4.c
  32ea353626f3c3fb938aa89bc20dfb76  gcc/testsuite/gcc.dg/debug/btf/btf-function-5.c
! cf0b4c9be3c8476832c7ec447eb4158a  gcc/testsuite/gcc.dg/debug/btf/btf-function-6.c
! 478b1156680947952ab57c8b4d310210  gcc/testsuite/gcc.dg/debug/btf/btf-function-7.c
  835d989f5a48033f2b7a0677368e22a9  gcc/testsuite/gcc.dg/debug/btf/btf-int-1.c
! 9add398e62a5500cd4625eb7933bfa97  gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c
  d88796e35daf5eabf6a8ee3cc6c5e9b7  gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c
! 0fc14f989a11c1da40e2efd5fc238275  gcc/testsuite/gcc.dg/debug/btf/btf-pr106773.c
! ced909b2cb649c5711c59e6dcb7a9f2f  gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c
! 24e60713195a1ffe04be1a29e25919c5  gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c
! 43537545dd21111d6eb487f2b781510d  gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c
! e975b176473e24d590c791f7aa030bcd  gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c
! 281323338c27bb9ebb8c195e6d2852b1  gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c
! 66ab0bef2f7acc8d76cd701bcff40a18  gcc/testsuite/gcc.dg/debug/btf/btf-variables-2.c
  3fe28c927bc21d0392a705f27a1bedd7  gcc/testsuite/gcc.dg/debug/btf/btf-variables-3.c
  198737d371e3f3b460d9af3de3021afc  gcc/testsuite/gcc.dg/debug/btf/btf-variables-4.c
  54f24ed7c216c0ab89c174fe96c566c4  gcc/testsuite/gcc.dg/debug/btf/btf-variables-5.c
! 69dc2bb6532bb1c60a9f44005bf29c1a  gcc/testsuite/gcc.dg/debug/btf/btf.exp
  43b79cd3ca67853ae15362a1eb8e3d6a  gcc/testsuite/gcc.dg/debug/const-1.c
  b436f74276be886856059b6d921c0daf  gcc/testsuite/gcc.dg/debug/const-2.c
  17393d7ba43c4bb0cb2f02b8906f09ea  gcc/testsuite/gcc.dg/debug/const-3.c
*************** cff7b2e146b8563dac7e20caf96cd2fd  gcc/te
*** 40786,40797 ****
--- 42738,42751 ----
  446fb6602d17553e9759034e73e07b58  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-3.c
  16fdae08216e80bec0325ad0306d9281  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-4.c
  c16f16e7207594dd861f602118df4a28  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-5.c
+ 00acac1a1cd343645751fc7dd5b8d705  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-6.c
  e38408e94a60581c143bd47bc2f2585c  gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-mode-1.c
  f3bfbefc74808effb826ba673d68da20  gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-used-1.c
  937ee8a589dd26e52a1517b439e68005  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-1.c
  d41b96a64d3ca7af1a197f5150af5084  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-2.c
  bdd351306f463f39d05101125d2bd16a  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c
  db0188d69141484062b52438e40ce060  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-4.c
+ 21583e135f77113c75ff68854820f8ec  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-5.c
  becb843df83e1e41dee2bcdafbe0068b  gcc/testsuite/gcc.dg/debug/ctf/ctf-complex-1.c
  80a2388c58f3df114d49a2361b291fe4  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-1.c
  00ac7ee4d3c23da2e40c4deb67169366  gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-2.c
*************** a423dc356cd7db3b21398d719072c60e  gcc/te
*** 40801,40807 ****
  e331f12f5b3afb5162356a3d888c5031  gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-2.c
  255a053f7b8d6d458d457c001a38369a  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-1.c
  0c9e631069c15793c19286bdb7069767  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-2.c
! ed16e5fb17a0ebd71a22006de14b1ff6  gcc/testsuite/gcc.dg/debug/ctf/ctf-file-scope-1.c
  4be0a57b9c2cfebf80c8efd2590d76ba  gcc/testsuite/gcc.dg/debug/ctf/ctf-float-1.c
  a38016ede493493a9c78272c11708caf  gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-1.c
  9babdbf56a6936df0e5e9070390dbb0e  gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-2.c
--- 42755,42761 ----
  e331f12f5b3afb5162356a3d888c5031  gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-2.c
  255a053f7b8d6d458d457c001a38369a  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-1.c
  0c9e631069c15793c19286bdb7069767  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-2.c
! 1e13ca3cd52af0159687955f30c2df72  gcc/testsuite/gcc.dg/debug/ctf/ctf-file-scope-1.c
  4be0a57b9c2cfebf80c8efd2590d76ba  gcc/testsuite/gcc.dg/debug/ctf/ctf-float-1.c
  a38016ede493493a9c78272c11708caf  gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-1.c
  9babdbf56a6936df0e5e9070390dbb0e  gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-2.c
*************** ec2103f2d7a749a23acc0690e8c18f4e  gcc/te
*** 40841,40847 ****
  8cd93c9afbb749f3453147c93d84a731  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-1.c
  b8f9de531119631c3459a93c1fdfd186  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-2.c
  e542a430adb55cd8f70ef3fd306d241a  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-3.c
! 93f3e6388296478b4e9b454e917d51a7  gcc/testsuite/gcc.dg/debug/ctf/ctf.exp
  c5ce68d6bc614fe16f32816d6e22ce66  gcc/testsuite/gcc.dg/debug/debug-1.c
  c17982bc9ca8dd7ebe9f41677e7982f9  gcc/testsuite/gcc.dg/debug/debug-2.c
  ea7172af490d3fb85bddeb7037fddc2e  gcc/testsuite/gcc.dg/debug/debug-3.c
--- 42795,42801 ----
  8cd93c9afbb749f3453147c93d84a731  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-1.c
  b8f9de531119631c3459a93c1fdfd186  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-2.c
  e542a430adb55cd8f70ef3fd306d241a  gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-3.c
! 0bab5663cbbe41a898cbd5b6bbf80953  gcc/testsuite/gcc.dg/debug/ctf/ctf.exp
  c5ce68d6bc614fe16f32816d6e22ce66  gcc/testsuite/gcc.dg/debug/debug-1.c
  c17982bc9ca8dd7ebe9f41677e7982f9  gcc/testsuite/gcc.dg/debug/debug-2.c
  ea7172af490d3fb85bddeb7037fddc2e  gcc/testsuite/gcc.dg/debug/debug-3.c
*************** ea7172af490d3fb85bddeb7037fddc2e  gcc/te
*** 40849,40855 ****
  16edfbc8489f8d2648184f4d56272f9a  gcc/testsuite/gcc.dg/debug/debug-5.c
  3a93989c56d211b178b4ce1cb7b8db55  gcc/testsuite/gcc.dg/debug/debug-6.c
  92ca009107fd3047af0ed6bffbcf92f2  gcc/testsuite/gcc.dg/debug/debug-7.c
! 636997bcf1d117d6cc9338e82c0a449d  gcc/testsuite/gcc.dg/debug/debug.exp
  900fe69daa3b56214378610d534c3e53  gcc/testsuite/gcc.dg/debug/dwarf2-1.c
  9cf87b67a0fe641563a13455b49c7154  gcc/testsuite/gcc.dg/debug/dwarf2-2.c
  0b09f7a5e1f45f894f8df2a63437e7c8  gcc/testsuite/gcc.dg/debug/dwarf2/align-1.c
--- 42803,42809 ----
  16edfbc8489f8d2648184f4d56272f9a  gcc/testsuite/gcc.dg/debug/debug-5.c
  3a93989c56d211b178b4ce1cb7b8db55  gcc/testsuite/gcc.dg/debug/debug-6.c
  92ca009107fd3047af0ed6bffbcf92f2  gcc/testsuite/gcc.dg/debug/debug-7.c
! 7ad01894880d626cc5c6da20cbac8b77  gcc/testsuite/gcc.dg/debug/debug.exp
  900fe69daa3b56214378610d534c3e53  gcc/testsuite/gcc.dg/debug/dwarf2-1.c
  9cf87b67a0fe641563a13455b49c7154  gcc/testsuite/gcc.dg/debug/dwarf2-2.c
  0b09f7a5e1f45f894f8df2a63437e7c8  gcc/testsuite/gcc.dg/debug/dwarf2/align-1.c
*************** fbe375bf9288bf092b7cef1996c14a1f  gcc/te
*** 40888,40894 ****
  41463d28a9bbf97a554feb4c959fed01  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.h
  9e89388c0e1fb3e82696e9c739160c92  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c
  eec651e182274afc1200132346cdf1ed  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro2.c
! fcb2e54b9188c92a9bdc9d4d4c5dcac6  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp
  362aa298514051f8a5b0ce8f2e1ee91a  gcc/testsuite/gcc.dg/debug/dwarf2/enum-loc1.c
  59c839cb709f2082c72d622c16f665f4  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
  f7dc86f08b2d23f2ec144956f62a155d  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.h
--- 42842,42848 ----
  41463d28a9bbf97a554feb4c959fed01  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.h
  9e89388c0e1fb3e82696e9c739160c92  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c
  eec651e182274afc1200132346cdf1ed  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro2.c
! 3b271ae74ac6098b46f4d8ddf155b4d3  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp
  362aa298514051f8a5b0ce8f2e1ee91a  gcc/testsuite/gcc.dg/debug/dwarf2/enum-loc1.c
  59c839cb709f2082c72d622c16f665f4  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
  f7dc86f08b2d23f2ec144956f62a155d  gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.h
*************** f30a377973368d1a41bc4f8e2a0e33e9  gcc/te
*** 40905,40912 ****
  f9ab56344241c22521f8d9245e677c22  gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c
  47291ca2a7f639676f2662f2d578253f  gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c
  8580bd27cd825c8d49e674c9f31c683c  gcc/testsuite/gcc.dg/debug/dwarf2/inline3.c
! 586e0e8fb83eb0dc0f5b5a3a5b6236bf  gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c
! cc07cedbdc7f7b69237511da330b487b  gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c
  40c9e189b7b61e8f4d69ce3f98f98206  gcc/testsuite/gcc.dg/debug/dwarf2/inline6.c
  e7c46c2fc25b3773b6adcbd27af4b924  gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c
  fa5aff1721ed3bcbbc6a8566df69c415  gcc/testsuite/gcc.dg/debug/dwarf2/lang-c11-d4-strict.c
--- 42859,42866 ----
  f9ab56344241c22521f8d9245e677c22  gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c
  47291ca2a7f639676f2662f2d578253f  gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c
  8580bd27cd825c8d49e674c9f31c683c  gcc/testsuite/gcc.dg/debug/dwarf2/inline3.c
! 975fb826cc6035cfef2a1cad545f8110  gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c
! a3e8aa555fa5d72262541274a23f93de  gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c
  40c9e189b7b61e8f4d69ce3f98f98206  gcc/testsuite/gcc.dg/debug/dwarf2/inline6.c
  e7c46c2fc25b3773b6adcbd27af4b924  gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c
  fa5aff1721ed3bcbbc6a8566df69c415  gcc/testsuite/gcc.dg/debug/dwarf2/lang-c11-d4-strict.c
*************** cbcc356a35e8a8665137c7ae64ec5914  gcc/te
*** 40919,40924 ****
--- 42873,42880 ----
  937e8a07b611d24efb44f969833a3cb8  gcc/testsuite/gcc.dg/debug/dwarf2/omp-fesdr.c
  65c779aa27fde2981a8fd2eb1b54c195  gcc/testsuite/gcc.dg/debug/dwarf2/pr100515.c
  54b366032eed667161eee7783123c310  gcc/testsuite/gcc.dg/debug/dwarf2/pr103874.c
+ 88466c37a4317f483dad470b7d9a7949  gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c
+ 57e3c1af8d86b03c1a81a092be62ec96  gcc/testsuite/gcc.dg/debug/dwarf2/pr114015.c
  250736f38c859fc89fb993ad3155eb20  gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-1.c
  8f522ee214d1db3d04f240eb20eb4474  gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-2.c
  43696edd12f5c0c32058d1ad1012e1e8  gcc/testsuite/gcc.dg/debug/dwarf2/pr31230.c
*************** ce4b90b8127f43ef25eeafe7acb42024  gcc/te
*** 40937,40946 ****
  c75ff1bce0a372eeb5f3f124bbf03dd2  gcc/testsuite/gcc.dg/debug/dwarf2/pr41543.c
  f3585dc62ae648c6def8f07287ea7b86  gcc/testsuite/gcc.dg/debug/dwarf2/pr41695.c
  4b3f83e90fdd84c4cc85d5f43a9ebc91  gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c
! 99656a316181b32ef55113907a1101df  gcc/testsuite/gcc.dg/debug/dwarf2/pr47939-1.c
! 30976730ff63320fd0df9870c96f7189  gcc/testsuite/gcc.dg/debug/dwarf2/pr47939-2.c
! 27cb1ac25ea5ecb05657673c788f24af  gcc/testsuite/gcc.dg/debug/dwarf2/pr47939-3.c
! 8fdb8aac6ad79a3a51455dfad821bd74  gcc/testsuite/gcc.dg/debug/dwarf2/pr47939-4.c
  52797ccb92aabdf0dd45b603b1eeb64a  gcc/testsuite/gcc.dg/debug/dwarf2/pr49871.c
  94f8101679e6cc4b9fabcf3f776ded40  gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
  cfefd61a4eb768d07be5d7d9490c6bd2  gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c
--- 42893,42902 ----
  c75ff1bce0a372eeb5f3f124bbf03dd2  gcc/testsuite/gcc.dg/debug/dwarf2/pr41543.c
  f3585dc62ae648c6def8f07287ea7b86  gcc/testsuite/gcc.dg/debug/dwarf2/pr41695.c
  4b3f83e90fdd84c4cc85d5f43a9ebc91  gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c
! cb90c75720fa960bd593e17033dcbb12  gcc/testsuite/gcc.dg/debug/dwarf2/pr47939-1.c
! a43a2bd52a28383da5023600b52ef8ae  gcc/testsuite/gcc.dg/debug/dwarf2/pr47939-2.c
! 2bf9c108690e692b4fafd4a9b4a79dd3  gcc/testsuite/gcc.dg/debug/dwarf2/pr47939-3.c
! 54ec4561600cfcf6c99a819f79fd738e  gcc/testsuite/gcc.dg/debug/dwarf2/pr47939-4.c
  52797ccb92aabdf0dd45b603b1eeb64a  gcc/testsuite/gcc.dg/debug/dwarf2/pr49871.c
  94f8101679e6cc4b9fabcf3f776ded40  gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
  cfefd61a4eb768d07be5d7d9490c6bd2  gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c
*************** b3f045b532c693bbfb8cfed8c0609564  gcc/te
*** 40972,40977 ****
--- 42928,42934 ----
  69e64f492a931622722ac6c811569e62  gcc/testsuite/gcc.dg/debug/dwarf2/var2.c
  d11dcc4e37738beb9e8be03ce7630c35  gcc/testsuite/gcc.dg/debug/enum-1.c
  3c2a32917edee1c37607a11e5414fbdf  gcc/testsuite/gcc.dg/debug/pr104337.c
+ 30ce98ab2ad9e598ef0db6491350f738  gcc/testsuite/gcc.dg/debug/pr112718.c
  bdf39999a5a7a4c7b1459600dff4ff14  gcc/testsuite/gcc.dg/debug/pr16676.c
  6f8e864ca7f9c38a79c3578b2c75101b  gcc/testsuite/gcc.dg/debug/pr26881.c
  feb6dc1d570a59982f88a912985ff2fa  gcc/testsuite/gcc.dg/debug/pr29558.c
*************** a114c478980c8fbc66c3ec796df0b6aa  gcc/te
*** 41001,41007 ****
  cbdd3b08ad2ec42ef73b00a2769043d9  gcc/testsuite/gcc.dg/debug/pr49294.c
  915cc889beb5f606439c7c987c19b105  gcc/testsuite/gcc.dg/debug/pr49522.c
  f83af2708ba44addea950f47d1a44c95  gcc/testsuite/gcc.dg/debug/pr55730.c
! fee24f4344400c65c851c1ac2b6c5e4e  gcc/testsuite/gcc.dg/debug/pr57351.c
  7dc01e28775b3a200d65354a6eb7aad1  gcc/testsuite/gcc.dg/debug/pr65771.c
  91097ab2e9d846f097881afd70e714fe  gcc/testsuite/gcc.dg/debug/pr66068.c
  f04843ea87c9c55accf161e9ee241f15  gcc/testsuite/gcc.dg/debug/pr66432.c
--- 42958,42964 ----
  cbdd3b08ad2ec42ef73b00a2769043d9  gcc/testsuite/gcc.dg/debug/pr49294.c
  915cc889beb5f606439c7c987c19b105  gcc/testsuite/gcc.dg/debug/pr49522.c
  f83af2708ba44addea950f47d1a44c95  gcc/testsuite/gcc.dg/debug/pr55730.c
! 2c043d32f54257a16e04282886e30e69  gcc/testsuite/gcc.dg/debug/pr57351.c
  7dc01e28775b3a200d65354a6eb7aad1  gcc/testsuite/gcc.dg/debug/pr65771.c
  91097ab2e9d846f097881afd70e714fe  gcc/testsuite/gcc.dg/debug/pr66068.c
  f04843ea87c9c55accf161e9ee241f15  gcc/testsuite/gcc.dg/debug/pr66432.c
*************** d0670e7a7e4d7796fd6328449dacb860  gcc/te
*** 41034,41040 ****
  09c753a3dc3874366c4411192abb2d76  gcc/testsuite/gcc.dg/decl-nospec-1.c
  51042f0f58908379420b10249326d9f5  gcc/testsuite/gcc.dg/decl-nospec-2.c
  32050b6364ec4bf9045b1158ce0b17b7  gcc/testsuite/gcc.dg/decl-nospec-3.c
! 3b8ce0953d4eacd6eef87e477bafe164  gcc/testsuite/gcc.dg/declare-simd.c
  c561457acd7fe6ed269d63b2ed6f11a9  gcc/testsuite/gcc.dg/declspec-1.c
  bc565703c8e7b37c639e590e3296b7ea  gcc/testsuite/gcc.dg/declspec-10.c
  1f4f7fe1c03ebf5be766ba87a5e92a2f  gcc/testsuite/gcc.dg/declspec-11.c
--- 42991,42997 ----
  09c753a3dc3874366c4411192abb2d76  gcc/testsuite/gcc.dg/decl-nospec-1.c
  51042f0f58908379420b10249326d9f5  gcc/testsuite/gcc.dg/decl-nospec-2.c
  32050b6364ec4bf9045b1158ce0b17b7  gcc/testsuite/gcc.dg/decl-nospec-3.c
! f4b265f47c6143434beb2853a547fc06  gcc/testsuite/gcc.dg/declare-simd.c
  c561457acd7fe6ed269d63b2ed6f11a9  gcc/testsuite/gcc.dg/declspec-1.c
  bc565703c8e7b37c639e590e3296b7ea  gcc/testsuite/gcc.dg/declspec-10.c
  1f4f7fe1c03ebf5be766ba87a5e92a2f  gcc/testsuite/gcc.dg/declspec-11.c
*************** ba7e6f4007944b95dbec857fc6c74794  gcc/te
*** 41067,41109 ****
  bd803fab76b770802d951e70b61c9696  gcc/testsuite/gcc.dg/dfp/Wbad-function-cast-1.c
  d898987e43ad43f22c65725bb92ec24f  gcc/testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c
  8dfa85ff2d4eb5d9335903160b756d39  gcc/testsuite/gcc.dg/dfp/altivec-types.c
! 244547f323334eb04c4a6629573ec3d2  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c
! 9f84568882b9d9a2ca76c5aeed15f0eb  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c
! 18ed674f83bf3af82638371713ae8086  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c
! 3045cc7b46e378fa3a515876f1c8d146  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c
! 98073b7d3e95d2c6854b3c06a95abcc1  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c
! 3ab13023d147a6d9393fc529e8b0ef58  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c
! 191528d2f68e02e2503bf76a097a12ea  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c
! 0006109fba2a454c6ad437f20fa24e2f  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c
  2d5128bddc0d69a547254935ce84b555  gcc/testsuite/gcc.dg/dfp/builtin-complex.c
! 22f3c782df5fe8d1cc2647be9e54ef57  gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c
  d52de125edb1b6785a1995c8d138b9f0  gcc/testsuite/gcc.dg/dfp/builtin-snan-2.c
  1cd0f9502eb6f26f75689878d1315dde  gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp-err.c
! 8be219bdc31d596f6310b63d26678f47  gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c
! 542b4e7b047bab0dc3ccb2eb7cd05a9a  gcc/testsuite/gcc.dg/dfp/c11-constants-1.c
! 91ec220473fc03967412473ff58122cc  gcc/testsuite/gcc.dg/dfp/c11-constants-2.c
  1a562bd8085040570e6cc2e227128694  gcc/testsuite/gcc.dg/dfp/c11-keywords-1.c
  cf8bc786843fa5b2fd0c45ad86131bbb  gcc/testsuite/gcc.dg/dfp/c11-keywords-2.c
! cd4c4e5c57b8677aa612ac108325bec1  gcc/testsuite/gcc.dg/dfp/c2x-builtins-dfp-1.c
! 4a688fd5a3259df491dcdf1f982185e2  gcc/testsuite/gcc.dg/dfp/c2x-constants-1.c
! efe3f3991a7d9f3ec4e1fa44d8e69924  gcc/testsuite/gcc.dg/dfp/c2x-constants-2.c
! b275b4908f78e169e44d30e1713b73c6  gcc/testsuite/gcc.dg/dfp/c2x-constexpr-dfp-1.c
! 83eaf3b93d147a4fbfc458b129e47893  gcc/testsuite/gcc.dg/dfp/c2x-constexpr-dfp-2.c
! 7f6ee6a620379941fa2b8e44acc05ecf  gcc/testsuite/gcc.dg/dfp/c2x-float-dfp-1.c
! df6bbc8f4a494f18ad1e51f53bcfd58c  gcc/testsuite/gcc.dg/dfp/c2x-float-dfp-2.c
! 1387cf7a470c6add4d2d07cc5e58d297  gcc/testsuite/gcc.dg/dfp/c2x-float-dfp-3.c
! 650dcb6748c5eb8be1db8edd73a6d7df  gcc/testsuite/gcc.dg/dfp/c2x-float-dfp-4.c
! f1eecd5c32aa4286fcced10e76739b36  gcc/testsuite/gcc.dg/dfp/c2x-float-dfp-5.c
! 048fbb2af93266720551c32d250d2057  gcc/testsuite/gcc.dg/dfp/c2x-float-dfp-6.c
! bc2d4b0eaada2a32d1d15e3dc45e22ca  gcc/testsuite/gcc.dg/dfp/c2x-float-dfp-7.c
! 6e15c45c21cd982b0f53ccfc3d279b89  gcc/testsuite/gcc.dg/dfp/c2x-float-dfp-8.c
! 0379e71a7cf1b285ffef8b4dde5594dd  gcc/testsuite/gcc.dg/dfp/c2x-keywords-1.c
! ffc58943af7de130d10bfd3f57045f1e  gcc/testsuite/gcc.dg/dfp/c2x-keywords-2.c
  8d5e21e8c81c2782dea6a23e88335770  gcc/testsuite/gcc.dg/dfp/cast-bad.c
! 9c6d48d59205671979b452ec8bb555bd  gcc/testsuite/gcc.dg/dfp/composite-type.c
  3c65f46a3ffe17287ae9c6467e54c161  gcc/testsuite/gcc.dg/dfp/constants-c99.c
  e17bcd0ca787144bf6d3f3bd95a2efdd  gcc/testsuite/gcc.dg/dfp/constants-hex.c
! 147e4fc0ca2998ab61a5ea632ce3d638  gcc/testsuite/gcc.dg/dfp/constants-pedantic.c
  a444b5a0e0c58c0053233b26e3955b32  gcc/testsuite/gcc.dg/dfp/constants.c
  feefe9e10c38db7c27ceff2fee10fa7f  gcc/testsuite/gcc.dg/dfp/convert-complex.c
  677218843476e01173452d6d2085797b  gcc/testsuite/gcc.dg/dfp/convert-dfp-round-thread.c
--- 43024,43075 ----
  bd803fab76b770802d951e70b61c9696  gcc/testsuite/gcc.dg/dfp/Wbad-function-cast-1.c
  d898987e43ad43f22c65725bb92ec24f  gcc/testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c
  8dfa85ff2d4eb5d9335903160b756d39  gcc/testsuite/gcc.dg/dfp/altivec-types.c
! 011b9cd7c8787515c37942fedebf7853  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c
! 90afe52e8ef8a9f0b8971e0d2fe61c3f  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c
! d06487264057fc4acced89ea2b94ba1e  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c
! c468bc46d49a90772b63f81541d1cdf0  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c
! 264c2d99843161a8257f6ecdacfcbc93  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c
! 250788b94b94e938b707c55fd4d64272  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c
! 707a475740543f28e7d4a1a1c6dd5e2a  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c
! e9e3452e14dfbc6213d63bbc19163128  gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c
! 0d635b8ca4b67cf7e028abe96d7d8040  gcc/testsuite/gcc.dg/dfp/bitint-1.c
! 414a321d64714fe3be448102cb005e09  gcc/testsuite/gcc.dg/dfp/bitint-2.c
! ad33d2cf22fb59092bf9e1c000ea0030  gcc/testsuite/gcc.dg/dfp/bitint-3.c
! 0c1d838b29aab0ee3c50e46966b6c652  gcc/testsuite/gcc.dg/dfp/bitint-4.c
! c55b156c142f8f4672565244e7c0895f  gcc/testsuite/gcc.dg/dfp/bitint-5.c
! 563460c01a4dd08dcda56d615b1cbd80  gcc/testsuite/gcc.dg/dfp/bitint-6.c
! b08dab0e4e62a437ff7739271c7154ba  gcc/testsuite/gcc.dg/dfp/bitint-7.c
! f892b84adc78d9841b4c69a387a90a88  gcc/testsuite/gcc.dg/dfp/bitint-8.c
  2d5128bddc0d69a547254935ce84b555  gcc/testsuite/gcc.dg/dfp/builtin-complex.c
! bbb3a4b9649cd82ff38969cb002504a5  gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c
  d52de125edb1b6785a1995c8d138b9f0  gcc/testsuite/gcc.dg/dfp/builtin-snan-2.c
  1cd0f9502eb6f26f75689878d1315dde  gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp-err.c
! 5b5acca06abc5b0fb9669eab190f458a  gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c
! 663481c9fda4c10b41862534fb893ac7  gcc/testsuite/gcc.dg/dfp/c11-constants-1.c
! 01385be2251b8f1bfe8d9a82eb8fee35  gcc/testsuite/gcc.dg/dfp/c11-constants-2.c
  1a562bd8085040570e6cc2e227128694  gcc/testsuite/gcc.dg/dfp/c11-keywords-1.c
  cf8bc786843fa5b2fd0c45ad86131bbb  gcc/testsuite/gcc.dg/dfp/c11-keywords-2.c
! 08bcd09b7218d6be0b64929811806715  gcc/testsuite/gcc.dg/dfp/c23-builtins-dfp-1.c
! 60d2c5b881bdc0b85c1823650efc19b5  gcc/testsuite/gcc.dg/dfp/c23-constants-1.c
! eee1d7140b9e220024b97259fff1671e  gcc/testsuite/gcc.dg/dfp/c23-constants-2.c
! a79e167314cedeceb805cf8e16ef1904  gcc/testsuite/gcc.dg/dfp/c23-constexpr-dfp-1.c
! fa1ee9ea37cb0592a8545cd263b87726  gcc/testsuite/gcc.dg/dfp/c23-constexpr-dfp-2.c
! 90c9069e9d0641ae269b5d957d930267  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-1.c
! 0bda1158e597d21cdea7c674df4e24f8  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-2.c
! cab4c4dbbb2c6dcb34a8111a65bfbd12  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-3.c
! 3ccb61f8f289317400f80f1f6b0d4d57  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c
! f7ae9f5431d50f9fe819110c177a5cdb  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c
! 3654e51bc256ed3efa4f4fff53c0f6ce  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c
! 7ca2299c4a9abd59fdaf88709809363d  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c
! 3bbfd8665e79c29475ed6ea723e3a62c  gcc/testsuite/gcc.dg/dfp/c23-float-dfp-8.c
! 44c356d7e959f3bc06eab09ea08d8960  gcc/testsuite/gcc.dg/dfp/c23-keywords-1.c
! 5ae7c09d48538e971c25785698b20a13  gcc/testsuite/gcc.dg/dfp/c23-keywords-2.c
  8d5e21e8c81c2782dea6a23e88335770  gcc/testsuite/gcc.dg/dfp/cast-bad.c
! 94575665ea4cf62caa5e9ec3744c8bd9  gcc/testsuite/gcc.dg/dfp/composite-type-2.c
! 5ec77c1e16af2d43256cc3fc08a1d3c3  gcc/testsuite/gcc.dg/dfp/composite-type.c
  3c65f46a3ffe17287ae9c6467e54c161  gcc/testsuite/gcc.dg/dfp/constants-c99.c
  e17bcd0ca787144bf6d3f3bd95a2efdd  gcc/testsuite/gcc.dg/dfp/constants-hex.c
! ec5db797a6d479c94676e08b15363f07  gcc/testsuite/gcc.dg/dfp/constants-pedantic.c
  a444b5a0e0c58c0053233b26e3955b32  gcc/testsuite/gcc.dg/dfp/constants.c
  feefe9e10c38db7c27ceff2fee10fa7f  gcc/testsuite/gcc.dg/dfp/convert-complex.c
  677218843476e01173452d6d2085797b  gcc/testsuite/gcc.dg/dfp/convert-dfp-round-thread.c
*************** dfe075c7272c802e4c6f44b1a66f1302  gcc/te
*** 41116,41122 ****
  4004acaaacb54ecad2e0c6ee8e8224d5  gcc/testsuite/gcc.dg/dfp/dfp-dbg.h
  b0c002cff8051f24b9c9db05f3062f21  gcc/testsuite/gcc.dg/dfp/dfp-except.h
  aadafbfd9e0540666c99d31e72e91f96  gcc/testsuite/gcc.dg/dfp/dfp-round.h
! 5661714a26daec93e549c38c52eec2f2  gcc/testsuite/gcc.dg/dfp/dfp.exp
  0daf957dbef663389abca329acc1d74c  gcc/testsuite/gcc.dg/dfp/fe-binop.c
  dc5f56a82263868da11e7d3a3e80a8c8  gcc/testsuite/gcc.dg/dfp/fe-check.h
  e014b3254e79531d97833550fdb2486d  gcc/testsuite/gcc.dg/dfp/fe-convert-1.c
--- 43082,43088 ----
  4004acaaacb54ecad2e0c6ee8e8224d5  gcc/testsuite/gcc.dg/dfp/dfp-dbg.h
  b0c002cff8051f24b9c9db05f3062f21  gcc/testsuite/gcc.dg/dfp/dfp-except.h
  aadafbfd9e0540666c99d31e72e91f96  gcc/testsuite/gcc.dg/dfp/dfp-round.h
! 026b84a1e9bcd7bba6ff6811e93a0ef9  gcc/testsuite/gcc.dg/dfp/dfp.exp
  0daf957dbef663389abca329acc1d74c  gcc/testsuite/gcc.dg/dfp/fe-binop.c
  dc5f56a82263868da11e7d3a3e80a8c8  gcc/testsuite/gcc.dg/dfp/fe-check.h
  e014b3254e79531d97833550fdb2486d  gcc/testsuite/gcc.dg/dfp/fe-convert-1.c
*************** ae11ecbb18b43c27858d0c6dadfe07d3  gcc/te
*** 41124,41129 ****
--- 43090,43099 ----
  a0ac850750aaa6f8934dd8d86cad48b3  gcc/testsuite/gcc.dg/dfp/fe-convert-3.c
  8c93ba27dd3f1398726001c48e3c892d  gcc/testsuite/gcc.dg/dfp/float-constant-double.c
  9dfa3c1e56f8b505a4ce8023830b3bf1  gcc/testsuite/gcc.dg/dfp/floatn.c
+ f747eae8504a03551a701649eb9edbbb  gcc/testsuite/gcc.dg/dfp/int128-1.c
+ c80c8ed36ba64864c268c225c64ab538  gcc/testsuite/gcc.dg/dfp/int128-2.c
+ cc8c86a30d71d6b435bb74d46a9ec3e3  gcc/testsuite/gcc.dg/dfp/int128-3.c
+ 325734d962abaa765c464c5770b6e930  gcc/testsuite/gcc.dg/dfp/int128-4.c
  756b8ddff2151110bae6465f67fe36a7  gcc/testsuite/gcc.dg/dfp/keywords-c89.c
  41a3316298115612aac250cdc4faaa30  gcc/testsuite/gcc.dg/dfp/keywords-c99.c
  9d75f75471d15ad9eab797c65fe24337  gcc/testsuite/gcc.dg/dfp/keywords-pedantic.c
*************** a0ac850750aaa6f8934dd8d86cad48b3  gcc/te
*** 41131,41137 ****
  440b3f562b43525babe2c96be973d1be  gcc/testsuite/gcc.dg/dfp/operator-bitwise.c
  b6f9108cd4878577de83d43be75185ce  gcc/testsuite/gcc.dg/dfp/pr104510.c
  440b561ad1d9037d4559c7011d636b7a  gcc/testsuite/gcc.dg/dfp/pr104557.c
! 74ff23770b319829b7487e85a1ed72f6  gcc/testsuite/gcc.dg/dfp/pr108068.c
  d8629eb8e0c765b5a7daa583cb8eedad  gcc/testsuite/gcc.dg/dfp/pr31344.c
  b59fd600db434af135f39c38e21e2d74  gcc/testsuite/gcc.dg/dfp/pr37435.c
  17353eaf91a4f3959fa168324f86f6f5  gcc/testsuite/gcc.dg/dfp/pr41049.c
--- 43101,43107 ----
  440b3f562b43525babe2c96be973d1be  gcc/testsuite/gcc.dg/dfp/operator-bitwise.c
  b6f9108cd4878577de83d43be75185ce  gcc/testsuite/gcc.dg/dfp/pr104510.c
  440b561ad1d9037d4559c7011d636b7a  gcc/testsuite/gcc.dg/dfp/pr104557.c
! 82ea312c34b2d7bbfe3d7dc309a1831f  gcc/testsuite/gcc.dg/dfp/pr108068.c
  d8629eb8e0c765b5a7daa583cb8eedad  gcc/testsuite/gcc.dg/dfp/pr31344.c
  b59fd600db434af135f39c38e21e2d74  gcc/testsuite/gcc.dg/dfp/pr37435.c
  17353eaf91a4f3959fa168324f86f6f5  gcc/testsuite/gcc.dg/dfp/pr41049.c
*************** c053aa0fe966658d9b764751ff182aec  gcc/te
*** 41142,41148 ****
  cfaafb777ff6e5b37b5c0b80b0256656  gcc/testsuite/gcc.dg/dfp/pr79487.c
  50575ec38c59c6b980aca7669cc3acd1  gcc/testsuite/gcc.dg/dfp/pr79515.c
  f521fd59dbf58c0c28181f31c6ad5742  gcc/testsuite/gcc.dg/dfp/pr94111.c
! 2d2dc278a2be28ce48d36223af1f363b  gcc/testsuite/gcc.dg/dfp/pr97439.c
  0ce0ac37817c465f0711df50b865b300  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-1.c
  3882046526a916dcd4cb2db9cfaad397  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-2.c
  f81a9ab3a0212214f904c0cc2fe02024  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-3.c
--- 43112,43118 ----
  cfaafb777ff6e5b37b5c0b80b0256656  gcc/testsuite/gcc.dg/dfp/pr79487.c
  50575ec38c59c6b980aca7669cc3acd1  gcc/testsuite/gcc.dg/dfp/pr79515.c
  f521fd59dbf58c0c28181f31c6ad5742  gcc/testsuite/gcc.dg/dfp/pr94111.c
! 6a51f6c916f015f92dd587645978f220  gcc/testsuite/gcc.dg/dfp/pr97439.c
  0ce0ac37817c465f0711df50b865b300  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-1.c
  3882046526a916dcd4cb2db9cfaad397  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-2.c
  f81a9ab3a0212214f904c0cc2fe02024  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-3.c
*************** c4ae53fbbcd9d3b56331a7c22e10ef30  gcc/te
*** 41152,41159 ****
  b0c7fad30358bd68d369a65e68dfdd27  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-7.c
  433660a16917ccf4e4098ef656330774  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-8.c
  60b14264ab7f13114629e2e9c0aa7792  gcc/testsuite/gcc.dg/dfp/struct-union.c
! db60faa07dd23c0244ddd822ffc380ad  gcc/testsuite/gcc.dg/dfp/tr24732-float-dfp-1.c
! b2b74288e046a7032a62292082f8aeb9  gcc/testsuite/gcc.dg/dfp/ts18661-2-float-dfp-1.c
  60e3fe5b97cc99a2cd099c6c80b0ea8f  gcc/testsuite/gcc.dg/dfp/typespec.c
  e7496b87dc6662c7486375d6f89b9448  gcc/testsuite/gcc.dg/dfp/union-init.c
  3d3252b9c34b539e1fe0019d60d6790b  gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad-2.c
--- 43122,43129 ----
  b0c7fad30358bd68d369a65e68dfdd27  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-7.c
  433660a16917ccf4e4098ef656330774  gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-8.c
  60b14264ab7f13114629e2e9c0aa7792  gcc/testsuite/gcc.dg/dfp/struct-union.c
! bff75d994a1613d3d49fe0b61f85502a  gcc/testsuite/gcc.dg/dfp/tr24732-float-dfp-1.c
! 7b07c20280fce76d9f3f942e2c2d0efc  gcc/testsuite/gcc.dg/dfp/ts18661-2-float-dfp-1.c
  60e3fe5b97cc99a2cd099c6c80b0ea8f  gcc/testsuite/gcc.dg/dfp/typespec.c
  e7496b87dc6662c7486375d6f89b9448  gcc/testsuite/gcc.dg/dfp/union-init.c
  3d3252b9c34b539e1fe0019d60d6790b  gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad-2.c
*************** ef8eb17f7da56bfde3d6840acb400831  gcc/te
*** 41162,41171 ****
  53e450baff1edfc9b3bf82a5a1b2a674  gcc/testsuite/gcc.dg/dfp/warn-abs-2.c
  9190a1b37c2c0dd750746fbca83c728e  gcc/testsuite/gcc.dg/dfp/wtr-conversion-1.c
  1d1366a913ab3a21a6dbd1b236fc57a4  gcc/testsuite/gcc.dg/dg-test-1.c
! 302d0c99e4a0f76934358ba63cf66c64  gcc/testsuite/gcc.dg/dg.exp
  f26c27ac11691c96c083fca389b2dbb6  gcc/testsuite/gcc.dg/di-longlong64-sync-1.c
  219e789dfc5a796c8a7791e531f94157  gcc/testsuite/gcc.dg/di-sync-multithread.c
! 034e91f8d262e00b27763ec15c59df1d  gcc/testsuite/gcc.dg/diag-aka-1.c
  e2abbf9a555098c950175c13d2f01605  gcc/testsuite/gcc.dg/diag-aka-2.c
  c5d748774fb2199480c81f1cce289faf  gcc/testsuite/gcc.dg/diag-aka-3.c
  898209bcb248740a2e1ce5566aa6cbe6  gcc/testsuite/gcc.dg/diag-aka-4.c
--- 43132,43142 ----
  53e450baff1edfc9b3bf82a5a1b2a674  gcc/testsuite/gcc.dg/dfp/warn-abs-2.c
  9190a1b37c2c0dd750746fbca83c728e  gcc/testsuite/gcc.dg/dfp/wtr-conversion-1.c
  1d1366a913ab3a21a6dbd1b236fc57a4  gcc/testsuite/gcc.dg/dg-test-1.c
! 8b5a1cf3135e5d7d55aa4f362ae29e41  gcc/testsuite/gcc.dg/dg.exp
  f26c27ac11691c96c083fca389b2dbb6  gcc/testsuite/gcc.dg/di-longlong64-sync-1.c
  219e789dfc5a796c8a7791e531f94157  gcc/testsuite/gcc.dg/di-sync-multithread.c
! 2df811a2152c5568edd8515c1ffbd515  gcc/testsuite/gcc.dg/diag-aka-1.c
! 660021bbd849fac4ce982202a9b7bdb5  gcc/testsuite/gcc.dg/diag-aka-1a.c
  e2abbf9a555098c950175c13d2f01605  gcc/testsuite/gcc.dg/diag-aka-2.c
  c5d748774fb2199480c81f1cce289faf  gcc/testsuite/gcc.dg/diag-aka-3.c
  898209bcb248740a2e1ce5566aa6cbe6  gcc/testsuite/gcc.dg/diag-aka-4.c
*************** f69d4a18ba089cfb7153cf4e77aa059f  gcc/te
*** 41176,41187 ****
  28833629ad112b005f0e6a4297ccfb9a  gcc/testsuite/gcc.dg/diagnostic-input-charset-1.c
  3bc26289f49ad5037172748300ad2581  gcc/testsuite/gcc.dg/diagnostic-input-utf8-bom.c
  c62d15575797919e845abb5fb04433d2  gcc/testsuite/gcc.dg/diagnostic-range-bad-called-object.c
! bad47d238e839b516e66fcd453fbcb94  gcc/testsuite/gcc.dg/diagnostic-range-bad-return.c
  dcc653db3a251c337257e1b52bb808dc  gcc/testsuite/gcc.dg/diagnostic-range-static-assert.c
  1850e51342e1e31dc6cc8847d0bd4192  gcc/testsuite/gcc.dg/diagnostic-ranges-1.c
  bf6fb6db60d824a436f7ab92633f38cc  gcc/testsuite/gcc.dg/diagnostic-token-ranges.c
  8305a00f04715c7339ccbe2e819cdcc3  gcc/testsuite/gcc.dg/diagnostic-tree-expr-ranges-2.c
! a1b6f6dc38f81dc434b0af5eb729521a  gcc/testsuite/gcc.dg/diagnostic-types-1.c
  acf65d30040d30d5a4ea7bb09731753b  gcc/testsuite/gcc.dg/div-cmp-1.c
  8d8eb669914bf8307d3e5d52da5018c2  gcc/testsuite/gcc.dg/div-cmp-2.c
  027655a8b0ca99f061c058d32eedfa46  gcc/testsuite/gcc.dg/div-compare-1.c
--- 43147,43160 ----
  28833629ad112b005f0e6a4297ccfb9a  gcc/testsuite/gcc.dg/diagnostic-input-charset-1.c
  3bc26289f49ad5037172748300ad2581  gcc/testsuite/gcc.dg/diagnostic-input-utf8-bom.c
  c62d15575797919e845abb5fb04433d2  gcc/testsuite/gcc.dg/diagnostic-range-bad-called-object.c
! 0e1d5090c2619d21af34ed5ea8684f9b  gcc/testsuite/gcc.dg/diagnostic-range-bad-return-2.c
! 0b061103952451c9be38a7b7be6e887c  gcc/testsuite/gcc.dg/diagnostic-range-bad-return.c
  dcc653db3a251c337257e1b52bb808dc  gcc/testsuite/gcc.dg/diagnostic-range-static-assert.c
  1850e51342e1e31dc6cc8847d0bd4192  gcc/testsuite/gcc.dg/diagnostic-ranges-1.c
  bf6fb6db60d824a436f7ab92633f38cc  gcc/testsuite/gcc.dg/diagnostic-token-ranges.c
  8305a00f04715c7339ccbe2e819cdcc3  gcc/testsuite/gcc.dg/diagnostic-tree-expr-ranges-2.c
! 1752553042b1b4584ad1ce162472b36f  gcc/testsuite/gcc.dg/diagnostic-types-1.c
! b294d42b9fc279781803ed149f015c52  gcc/testsuite/gcc.dg/diagnostic-types-2.c
  acf65d30040d30d5a4ea7bb09731753b  gcc/testsuite/gcc.dg/div-cmp-1.c
  8d8eb669914bf8307d3e5d52da5018c2  gcc/testsuite/gcc.dg/div-cmp-2.c
  027655a8b0ca99f061c058d32eedfa46  gcc/testsuite/gcc.dg/div-compare-1.c
*************** c3d0e5f87b23f96c728ab8dd3707bb9b  gcc/te
*** 41241,41247 ****
  7908cbe605cd47ed92b1586d03a7c349  gcc/testsuite/gcc.dg/empty2.c
  ebbead2c256958474254113d9a718d6f  gcc/testsuite/gcc.dg/encoding-issues-bytes.c
  51130a02a0d46dd506ac46d36d6a293f  gcc/testsuite/gcc.dg/encoding-issues-unicode.c
! b4f00b2d0fc854a9c192873f0ebeeaa5  gcc/testsuite/gcc.dg/enum-compat-1.c
  e1fe0207f459d8843a756d7853ebc94b  gcc/testsuite/gcc.dg/enum-const-1.c
  c5d67585a3b60da28143ffc545cd326d  gcc/testsuite/gcc.dg/enum-const-2.c
  70fc652957a06c38ed462619c6af5188  gcc/testsuite/gcc.dg/enum-const-3.c
--- 43214,43221 ----
  7908cbe605cd47ed92b1586d03a7c349  gcc/testsuite/gcc.dg/empty2.c
  ebbead2c256958474254113d9a718d6f  gcc/testsuite/gcc.dg/encoding-issues-bytes.c
  51130a02a0d46dd506ac46d36d6a293f  gcc/testsuite/gcc.dg/encoding-issues-unicode.c
! 6fe8e06975e2047ac26c2559c1e17dda  gcc/testsuite/gcc.dg/enum-compat-1.c
! 8f9ab6c7513eae383b2905010fa3a9ec  gcc/testsuite/gcc.dg/enum-compat-2.c
  e1fe0207f459d8843a756d7853ebc94b  gcc/testsuite/gcc.dg/enum-const-1.c
  c5d67585a3b60da28143ffc545cd326d  gcc/testsuite/gcc.dg/enum-const-2.c
  70fc652957a06c38ed462619c6af5188  gcc/testsuite/gcc.dg/enum-const-3.c
*************** bbb87d2a73c29d36f6bb6b3dec4a2b02  gcc/te
*** 41262,41268 ****
  8a92262e99815477a062c82d552896e8  gcc/testsuite/gcc.dg/extra-semi-3.c
  c54a3052ec2d03b003a96b460fc1509c  gcc/testsuite/gcc.dg/extract_recip_3.c
  426a2aa59ea6c60129fd2d8b0a70e0ac  gcc/testsuite/gcc.dg/extract_recip_4.c
! 7c514bdf337c48ebb4437bf0259f8c2d  gcc/testsuite/gcc.dg/fail_always_inline.c
  635a708f0d3160a61cc28f440b7af0d5  gcc/testsuite/gcc.dg/fail_always_inline2.c
  65d997c1872a855cefb9e7177015a53a  gcc/testsuite/gcc.dg/falign-labels-1.c
  2bc0342a25d7d1e316ce2fb511a55ca2  gcc/testsuite/gcc.dg/fastmath-1.c
--- 43236,43242 ----
  8a92262e99815477a062c82d552896e8  gcc/testsuite/gcc.dg/extra-semi-3.c
  c54a3052ec2d03b003a96b460fc1509c  gcc/testsuite/gcc.dg/extract_recip_3.c
  426a2aa59ea6c60129fd2d8b0a70e0ac  gcc/testsuite/gcc.dg/extract_recip_4.c
! 7185df85b1b68b5a6448c792f88d01fa  gcc/testsuite/gcc.dg/fail_always_inline.c
  635a708f0d3160a61cc28f440b7af0d5  gcc/testsuite/gcc.dg/fail_always_inline2.c
  65d997c1872a855cefb9e7177015a53a  gcc/testsuite/gcc.dg/falign-labels-1.c
  2bc0342a25d7d1e316ce2fb511a55ca2  gcc/testsuite/gcc.dg/fastmath-1.c
*************** f3a876eb6a0816f6085df8f93e7edd6d  gcc/te
*** 41275,41283 ****
  4120724485645be638383c7fa28e9070  gcc/testsuite/gcc.dg/fixed-point/allop.c
  283593bbe1174a9581831a667120157a  gcc/testsuite/gcc.dg/fixed-point/binary.c
  0bea133ab644808fbf42aef7c37b38ac  gcc/testsuite/gcc.dg/fixed-point/bit-complement.c
  db2e33a998a710ce021678da0caa8f09  gcc/testsuite/gcc.dg/fixed-point/call-by-value.c
  283d6b07483b7a12d06e1477ed57ef1b  gcc/testsuite/gcc.dg/fixed-point/cast-bad.c
! 93aa1e2f43f1bc01285f51632812c781  gcc/testsuite/gcc.dg/fixed-point/composite-type.c
  25c70165209aee18b65c27885fb1fd51  gcc/testsuite/gcc.dg/fixed-point/const-1.c
  e2cfc02a19e958287f50ec8124bc07a8  gcc/testsuite/gcc.dg/fixed-point/constant.c
  9bcbe717064d56652fb2487475256fe7  gcc/testsuite/gcc.dg/fixed-point/constants-pedantic.c
--- 43249,43258 ----
  4120724485645be638383c7fa28e9070  gcc/testsuite/gcc.dg/fixed-point/allop.c
  283593bbe1174a9581831a667120157a  gcc/testsuite/gcc.dg/fixed-point/binary.c
  0bea133ab644808fbf42aef7c37b38ac  gcc/testsuite/gcc.dg/fixed-point/bit-complement.c
+ 6ffb0657e2acf6009afaf4a8a6578bdf  gcc/testsuite/gcc.dg/fixed-point/bitint-1.c
  db2e33a998a710ce021678da0caa8f09  gcc/testsuite/gcc.dg/fixed-point/call-by-value.c
  283d6b07483b7a12d06e1477ed57ef1b  gcc/testsuite/gcc.dg/fixed-point/cast-bad.c
! c1539bf8d5fb4755eff7267143193524  gcc/testsuite/gcc.dg/fixed-point/composite-type.c
  25c70165209aee18b65c27885fb1fd51  gcc/testsuite/gcc.dg/fixed-point/const-1.c
  e2cfc02a19e958287f50ec8124bc07a8  gcc/testsuite/gcc.dg/fixed-point/constant.c
  9bcbe717064d56652fb2487475256fe7  gcc/testsuite/gcc.dg/fixed-point/constants-pedantic.c
*************** af315092d026865340052aee7b9849a3  gcc/te
*** 41293,41299 ****
  11f3b667f90a009058a0bbb781d75c33  gcc/testsuite/gcc.dg/fixed-point/convert-sat.c
  17daa5326aad34d453af61740fa3b55b  gcc/testsuite/gcc.dg/fixed-point/convert.h
  4d465f534ba6b0040d0b907de70eb06d  gcc/testsuite/gcc.dg/fixed-point/define.c
! 7fb3fb63aa899a5b480d9625790d05da  gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp
  7172d69a38fc3346148178e2346509cf  gcc/testsuite/gcc.dg/fixed-point/func-array.c
  c71cd62369fd73371bd64d9e9c2653fe  gcc/testsuite/gcc.dg/fixed-point/func-mixed.c
  2b619b6a57d0ac97a39f559544f66909  gcc/testsuite/gcc.dg/fixed-point/func-scalar.c
--- 43268,43274 ----
  11f3b667f90a009058a0bbb781d75c33  gcc/testsuite/gcc.dg/fixed-point/convert-sat.c
  17daa5326aad34d453af61740fa3b55b  gcc/testsuite/gcc.dg/fixed-point/convert.h
  4d465f534ba6b0040d0b907de70eb06d  gcc/testsuite/gcc.dg/fixed-point/define.c
! c849217412a0ee8350c74f1e24724967  gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp
  7172d69a38fc3346148178e2346509cf  gcc/testsuite/gcc.dg/fixed-point/func-array.c
  c71cd62369fd73371bd64d9e9c2653fe  gcc/testsuite/gcc.dg/fixed-point/func-mixed.c
  2b619b6a57d0ac97a39f559544f66909  gcc/testsuite/gcc.dg/fixed-point/func-scalar.c
*************** a4596c7975a946fa49341b476cdddf3a  gcc/te
*** 41351,41356 ****
--- 43326,43332 ----
  079305f70244f8ded32a0debe8d58694  gcc/testsuite/gcc.dg/float64-typeof.c
  8bb9c44d00a4462a62e271afe65395d9  gcc/testsuite/gcc.dg/float64x-align.c
  43395d2f36b719cad53a2b34ee0c2822  gcc/testsuite/gcc.dg/float64x-typeof.c
+ e50dce809881cd3fe916639e85f3e895  gcc/testsuite/gcc.dg/float_opposite_arm-1.c
  dce4fd47d3f8088f0fcde8e4c014985f  gcc/testsuite/gcc.dg/floatn-align.h
  a7a463105294b90172c7dacacf6dfaab  gcc/testsuite/gcc.dg/floatn-arithconv.c
  bfaa6b3a6e5de108258c8a51ca88aff8  gcc/testsuite/gcc.dg/floatn-errs.c
*************** ec48ef6788dad6cfe18034e516c9265a  gcc/te
*** 41362,41372 ****
  c5d91152e3c1bb6ccb21494e2c255a62  gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c
  73af40644a725aba642880648a234af3  gcc/testsuite/gcc.dg/fma-1.c
  8bcb5e0877b469ace52a6faf0344d808  gcc/testsuite/gcc.dg/fma-2.c
! 5e4172072aff50fa5a9568ed99c25384  gcc/testsuite/gcc.dg/fma-3.c
! 7eff07717f3897abdbc39c34d13c682f  gcc/testsuite/gcc.dg/fma-4.c
  270433eea9f840f1e6c7ff666a8e4ee4  gcc/testsuite/gcc.dg/fma-5.c
! adfe35cd53e941a473993e1ea7e90f79  gcc/testsuite/gcc.dg/fma-6.c
! 9076469cb937fddd9ccca8b5eec11820  gcc/testsuite/gcc.dg/fma-7.c
  19e0dccb010f9e1fd7396bacdc9f36ec  gcc/testsuite/gcc.dg/fmax-fmin-1.c
  929a1f92da326a50b56b5ff9d2cfad9e  gcc/testsuite/gcc.dg/fnegate-1.c
  51edd4e8009c4755c73901f93984a0b3  gcc/testsuite/gcc.dg/fold-abs-1.c
--- 43338,43348 ----
  c5d91152e3c1bb6ccb21494e2c255a62  gcc/testsuite/gcc.dg/fltconst-pedantic-dfp.c
  73af40644a725aba642880648a234af3  gcc/testsuite/gcc.dg/fma-1.c
  8bcb5e0877b469ace52a6faf0344d808  gcc/testsuite/gcc.dg/fma-2.c
! 24a0f603a54e161cca5180163139abee  gcc/testsuite/gcc.dg/fma-3.c
! 9b6a1092621bee57184983bb23dbc6f6  gcc/testsuite/gcc.dg/fma-4.c
  270433eea9f840f1e6c7ff666a8e4ee4  gcc/testsuite/gcc.dg/fma-5.c
! fe621006708f98f51e4a41bad2334635  gcc/testsuite/gcc.dg/fma-6.c
! c16d0669b67d38ecc36c4a21e575f153  gcc/testsuite/gcc.dg/fma-7.c
  19e0dccb010f9e1fd7396bacdc9f36ec  gcc/testsuite/gcc.dg/fmax-fmin-1.c
  929a1f92da326a50b56b5ff9d2cfad9e  gcc/testsuite/gcc.dg/fnegate-1.c
  51edd4e8009c4755c73901f93984a0b3  gcc/testsuite/gcc.dg/fold-abs-1.c
*************** adfe35cd53e941a473993e1ea7e90f79  gcc/te
*** 41374,41379 ****
--- 43350,43356 ----
  660c235a42f64fb656494c5de754f63a  gcc/testsuite/gcc.dg/fold-abs-3.c
  bf55018660cf8baa3e58bf9e1ee0fe9d  gcc/testsuite/gcc.dg/fold-abs-4.c
  d467beb16e456482332e0ca640f19292  gcc/testsuite/gcc.dg/fold-abs-5.c
+ c9b0de9ffb902166ddfb8db2c5514e3e  gcc/testsuite/gcc.dg/fold-abs-6.c
  6029881671859e74cf9329211ab584aa  gcc/testsuite/gcc.dg/fold-addr-1.c
  02435c9be5fee19209e65c955dbc0161  gcc/testsuite/gcc.dg/fold-alloca-1.c
  01a2a752858aaa9b41f9c60889862317  gcc/testsuite/gcc.dg/fold-and-1.c
*************** ee5011d0e6b7fccb87df0fdf4ed4cdaf  gcc/te
*** 41414,41420 ****
  bd0bf08bda1424362307a0339137a72d  gcc/testsuite/gcc.dg/fold-convminconv-1.c
  eaf814577ce35df4d8865fd97a483ccb  gcc/testsuite/gcc.dg/fold-convnotconv-1.c
  399ab8aec7dfc124d0cca585c4c944be  gcc/testsuite/gcc.dg/fold-convround-1.c
! eeea2ac960772dd525f684fc36a59a66  gcc/testsuite/gcc.dg/fold-copysign-1.c
  bf0e3d583aa40f4309fb7ca85e660b7b  gcc/testsuite/gcc.dg/fold-cstring.c
  34087e25944fd1f9c2f33740cbb9338e  gcc/testsuite/gcc.dg/fold-cstvecshift.c
  116852682b5f90b0e8d97b57cc7ef9c9  gcc/testsuite/gcc.dg/fold-cvect.c
--- 43391,43397 ----
  bd0bf08bda1424362307a0339137a72d  gcc/testsuite/gcc.dg/fold-convminconv-1.c
  eaf814577ce35df4d8865fd97a483ccb  gcc/testsuite/gcc.dg/fold-convnotconv-1.c
  399ab8aec7dfc124d0cca585c4c944be  gcc/testsuite/gcc.dg/fold-convround-1.c
! 5794d9beeba4a407396144ce7960a8f0  gcc/testsuite/gcc.dg/fold-copysign-1.c
  bf0e3d583aa40f4309fb7ca85e660b7b  gcc/testsuite/gcc.dg/fold-cstring.c
  34087e25944fd1f9c2f33740cbb9338e  gcc/testsuite/gcc.dg/fold-cstvecshift.c
  116852682b5f90b0e8d97b57cc7ef9c9  gcc/testsuite/gcc.dg/fold-cvect.c
*************** ad120bc52a3ab2107a91dde9826a43fd  gcc/te
*** 41434,41445 ****
  270bace53ac9faafb7910fa30aba2f17  gcc/testsuite/gcc.dg/fold-eqxor-2.c
  83ebb7f1b122e099c9d0a6b74bb0907a  gcc/testsuite/gcc.dg/fold-eqxor-3.c
  5f0743707e4205439860a44227c32be2  gcc/testsuite/gcc.dg/fold-eqxor-4.c
- fb1942ab921b43867b7fbb82f748d327  gcc/testsuite/gcc.dg/fold-even-1.c
  41a30bfd154e6a754a1119edf6cf8589  gcc/testsuite/gcc.dg/fold-ior-1.c
  fd3863d5ae19c0c093a97ed5576367d6  gcc/testsuite/gcc.dg/fold-ior-2.c
  b5d8a05161524c954f45b0f078d90f8d  gcc/testsuite/gcc.dg/fold-ior-3.c
! 500ddc0a86b24ed9cb3b36938d928c40  gcc/testsuite/gcc.dg/fold-ior-4.c
! 5cc27f1d52981bd4cd92137bb5a45cf9  gcc/testsuite/gcc.dg/fold-ior-5.c
  7f6284b1b20285c53e8e8c122daba558  gcc/testsuite/gcc.dg/fold-isfinite-1.c
  df9cae5951cdf4855b200bba7d44d331  gcc/testsuite/gcc.dg/fold-isfinite-2.c
  ddbdbd94a8cd2d53cbec12d24f971dea  gcc/testsuite/gcc.dg/fold-isinf-1.c
--- 43411,43421 ----
  270bace53ac9faafb7910fa30aba2f17  gcc/testsuite/gcc.dg/fold-eqxor-2.c
  83ebb7f1b122e099c9d0a6b74bb0907a  gcc/testsuite/gcc.dg/fold-eqxor-3.c
  5f0743707e4205439860a44227c32be2  gcc/testsuite/gcc.dg/fold-eqxor-4.c
  41a30bfd154e6a754a1119edf6cf8589  gcc/testsuite/gcc.dg/fold-ior-1.c
  fd3863d5ae19c0c093a97ed5576367d6  gcc/testsuite/gcc.dg/fold-ior-2.c
  b5d8a05161524c954f45b0f078d90f8d  gcc/testsuite/gcc.dg/fold-ior-3.c
! 54df218561ba65fd283ced70dd8ab5c5  gcc/testsuite/gcc.dg/fold-ior-4.c
! 6a31038fff2385da95a019c5951e6e4f  gcc/testsuite/gcc.dg/fold-ior-5.c
  7f6284b1b20285c53e8e8c122daba558  gcc/testsuite/gcc.dg/fold-isfinite-1.c
  df9cae5951cdf4855b200bba7d44d331  gcc/testsuite/gcc.dg/fold-isfinite-2.c
  ddbdbd94a8cd2d53cbec12d24f971dea  gcc/testsuite/gcc.dg/fold-isinf-1.c
*************** edf04ed94f4d31ed71837cb761ddf3d8  gcc/te
*** 41469,41475 ****
  9bc6cd668247ae9b2b9e3ba10d56570a  gcc/testsuite/gcc.dg/fold-parity-2.c
  56ccfc29ed372a45b5750ee742c00839  gcc/testsuite/gcc.dg/fold-parity-3.c
  523d8643dd8ead06e45cdc0ae035abd0  gcc/testsuite/gcc.dg/fold-parity-4.c
! af4f7ab587d0ad7e4f819f784486cf10  gcc/testsuite/gcc.dg/fold-parity-5.c
  54aa9b110f6cc41b3a8069183e125e4b  gcc/testsuite/gcc.dg/fold-perm.c
  2cd5d659a1bbfb19ac32b1f216d642c9  gcc/testsuite/gcc.dg/fold-plus-1.c
  aaf2343db123edcb5a12fe5e85de4492  gcc/testsuite/gcc.dg/fold-plus-2.c
--- 43445,43454 ----
  9bc6cd668247ae9b2b9e3ba10d56570a  gcc/testsuite/gcc.dg/fold-parity-2.c
  56ccfc29ed372a45b5750ee742c00839  gcc/testsuite/gcc.dg/fold-parity-3.c
  523d8643dd8ead06e45cdc0ae035abd0  gcc/testsuite/gcc.dg/fold-parity-4.c
! d479c5c3779e4eb0ade89611b753af71  gcc/testsuite/gcc.dg/fold-parity-5.c
! cce9d37850de2bfc2f1c84a9cf308ec7  gcc/testsuite/gcc.dg/fold-parity-6.c
! 89b2eeb66cb44cc783301c1cb6b6693d  gcc/testsuite/gcc.dg/fold-parity-7.c
! 9cf9ba0cda3921082633b5f6e5cc76e7  gcc/testsuite/gcc.dg/fold-parity-8.c
  54aa9b110f6cc41b3a8069183e125e4b  gcc/testsuite/gcc.dg/fold-perm.c
  2cd5d659a1bbfb19ac32b1f216d642c9  gcc/testsuite/gcc.dg/fold-plus-1.c
  aaf2343db123edcb5a12fe5e85de4492  gcc/testsuite/gcc.dg/fold-plus-2.c
*************** aad1306a4d98044fd7a6a788f7f87ed7  gcc/te
*** 41477,41486 ****
  314f2f09fcc3f291713f87d368387390  gcc/testsuite/gcc.dg/fold-plusmult.c
  4edb255ffdddfe7e9278a3dd63ccbe9c  gcc/testsuite/gcc.dg/fold-plusnot-1.c
  3384f874edb16d3dde6e8f8ddfb254f8  gcc/testsuite/gcc.dg/fold-popcount-1.c
  4bcf36e52d4461466ece7031feca9f36  gcc/testsuite/gcc.dg/fold-popcount-2.c
  0847f8634b6f906d81ae3fc6a2ada832  gcc/testsuite/gcc.dg/fold-popcount-3.c
  683ec5200f3b1bc188c710a610cc4004  gcc/testsuite/gcc.dg/fold-popcount-4.c
! 933e15fd86f7bd810ceeca9032515ae2  gcc/testsuite/gcc.dg/fold-popcount-5.c
  2521382255d026b527045de9a1f523ec  gcc/testsuite/gcc.dg/fold-reassoc-1.c
  6be22998a5dadde1050406829d46b305  gcc/testsuite/gcc.dg/fold-reassoc-2.c
  76f7470b6189ce228d02129a9dfc4c00  gcc/testsuite/gcc.dg/fold-reassoc-3.c
--- 43456,43472 ----
  314f2f09fcc3f291713f87d368387390  gcc/testsuite/gcc.dg/fold-plusmult.c
  4edb255ffdddfe7e9278a3dd63ccbe9c  gcc/testsuite/gcc.dg/fold-plusnot-1.c
  3384f874edb16d3dde6e8f8ddfb254f8  gcc/testsuite/gcc.dg/fold-popcount-1.c
+ 0857203e33bc857d7c93c6ba0bd6973e  gcc/testsuite/gcc.dg/fold-popcount-10.c
+ 8ad769b6973fd92feca8d6239a3ada16  gcc/testsuite/gcc.dg/fold-popcount-11.c
  4bcf36e52d4461466ece7031feca9f36  gcc/testsuite/gcc.dg/fold-popcount-2.c
  0847f8634b6f906d81ae3fc6a2ada832  gcc/testsuite/gcc.dg/fold-popcount-3.c
  683ec5200f3b1bc188c710a610cc4004  gcc/testsuite/gcc.dg/fold-popcount-4.c
! 1cb069834fc6516874c8d58e46fd42fe  gcc/testsuite/gcc.dg/fold-popcount-5.c
! 5b8601235c8920d6f7d3b3042ef2e365  gcc/testsuite/gcc.dg/fold-popcount-6.c
! 68d5f01af6dae0a013670a892b7e900c  gcc/testsuite/gcc.dg/fold-popcount-7.c
! 461a1a11195923b89b67c322fbf15560  gcc/testsuite/gcc.dg/fold-popcount-8.c
! e402946ef4c438476731cd807abb0d0b  gcc/testsuite/gcc.dg/fold-popcount-8a.c
! 02e48a5913407e25d71aa2396c11be61  gcc/testsuite/gcc.dg/fold-popcount-9.c
  2521382255d026b527045de9a1f523ec  gcc/testsuite/gcc.dg/fold-reassoc-1.c
  6be22998a5dadde1050406829d46b305  gcc/testsuite/gcc.dg/fold-reassoc-2.c
  76f7470b6189ce228d02129a9dfc4c00  gcc/testsuite/gcc.dg/fold-reassoc-3.c
*************** fd0fed4c372f03e7cb66f4d19c80e7b6  gcc/te
*** 41520,41532 ****
  a5f952800e5755765d6e77745c013e40  gcc/testsuite/gcc.dg/format/builtin-1.c
  440f0dfd53878248bb6deed7cc1fe9e7  gcc/testsuite/gcc.dg/format/c11-dfp-printf-1.c
  f37ed9d19977f59844e9e1bf5f0e85f1  gcc/testsuite/gcc.dg/format/c11-dfp-scanf-1.c
! ca3f73ee8edbc30e2769e90b285b337a  gcc/testsuite/gcc.dg/format/c11-printf-1.c
! 971f3e2359529c5ee7fff769b26755b7  gcc/testsuite/gcc.dg/format/c11-scanf-1.c
! bb4e836704e1e8c7f70d769f7614db91  gcc/testsuite/gcc.dg/format/c2x-dfp-printf-1.c
! f7fad5f30473b437b8b959bc20f8a12c  gcc/testsuite/gcc.dg/format/c2x-dfp-scanf-1.c
! 4fc1fe3fd459ae784b6bdded460ddb51  gcc/testsuite/gcc.dg/format/c2x-printf-1.c
! 42efea63fe987a2f7de58f6a94fc7f96  gcc/testsuite/gcc.dg/format/c2x-scanf-1.c
! c4a2f22ec8cdf76a1d3e0d474153e132  gcc/testsuite/gcc.dg/format/c2x-strftime-1.c
  10e638dd137cfdbd1b51ace231d0c656  gcc/testsuite/gcc.dg/format/c90-printf-1.c
  912996266243b1739f46e4e34a2c13ba  gcc/testsuite/gcc.dg/format/c90-printf-2.c
  9b16f23720504062a93c79e4ddfb0484  gcc/testsuite/gcc.dg/format/c90-printf-3.c
--- 43506,43518 ----
  a5f952800e5755765d6e77745c013e40  gcc/testsuite/gcc.dg/format/builtin-1.c
  440f0dfd53878248bb6deed7cc1fe9e7  gcc/testsuite/gcc.dg/format/c11-dfp-printf-1.c
  f37ed9d19977f59844e9e1bf5f0e85f1  gcc/testsuite/gcc.dg/format/c11-dfp-scanf-1.c
! ff278c7151aef4f0cfc44aaf3314a2e5  gcc/testsuite/gcc.dg/format/c11-printf-1.c
! bd8a5c9b59cbf9485f5264032057b2e1  gcc/testsuite/gcc.dg/format/c11-scanf-1.c
! 6d35dd2a23726fa4698c99e2b573a97a  gcc/testsuite/gcc.dg/format/c23-dfp-printf-1.c
! 980451650949769fdbd038ecda22d225  gcc/testsuite/gcc.dg/format/c23-dfp-scanf-1.c
! 331b5671d790473e5f49da4494825c6a  gcc/testsuite/gcc.dg/format/c23-printf-1.c
! 9038d8936bfe36b2d4fe62fb7f13ca1f  gcc/testsuite/gcc.dg/format/c23-scanf-1.c
! 08499520e31ad0650fb77563ae4185c6  gcc/testsuite/gcc.dg/format/c23-strftime-1.c
  10e638dd137cfdbd1b51ace231d0c656  gcc/testsuite/gcc.dg/format/c90-printf-1.c
  912996266243b1739f46e4e34a2c13ba  gcc/testsuite/gcc.dg/format/c90-printf-2.c
  9b16f23720504062a93c79e4ddfb0484  gcc/testsuite/gcc.dg/format/c90-printf-3.c
*************** d48360a30dc24fbd67e388a9848b02d3  gcc/te
*** 41557,41563 ****
  4b091c1e85a61834e81c1e1af1595a86  gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
  859d88caa1eeeb23ca9b76526b3a4f3e  gcc/testsuite/gcc.dg/format/errmk-1.c
  07bb1882393eddf8452ebd19e6a983d2  gcc/testsuite/gcc.dg/format/ext-1.c
! 6da39a87eed828a959bb47b2afae6d63  gcc/testsuite/gcc.dg/format/ext-10.c
  659ecddafea7332aee20e4459efbfa15  gcc/testsuite/gcc.dg/format/ext-2.c
  9b50769784774bf9778bbba444e593e6  gcc/testsuite/gcc.dg/format/ext-3.c
  5655f9db0b2fb6fea5cd089604c3f009  gcc/testsuite/gcc.dg/format/ext-4.c
--- 43543,43549 ----
  4b091c1e85a61834e81c1e1af1595a86  gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
  859d88caa1eeeb23ca9b76526b3a4f3e  gcc/testsuite/gcc.dg/format/errmk-1.c
  07bb1882393eddf8452ebd19e6a983d2  gcc/testsuite/gcc.dg/format/ext-1.c
! 3577888fe5114465e0ca15f283d3e87f  gcc/testsuite/gcc.dg/format/ext-10.c
  659ecddafea7332aee20e4459efbfa15  gcc/testsuite/gcc.dg/format/ext-2.c
  9b50769784774bf9778bbba444e593e6  gcc/testsuite/gcc.dg/format/ext-3.c
  5655f9db0b2fb6fea5cd089604c3f009  gcc/testsuite/gcc.dg/format/ext-4.c
*************** d48360a30dc24fbd67e388a9848b02d3  gcc/te
*** 41565,41575 ****
  280e9929affa5c28ecacf01249e7f11b  gcc/testsuite/gcc.dg/format/ext-6.c
  0f2ebefdffa8d565f653d54653327fe8  gcc/testsuite/gcc.dg/format/ext-7.c
  9b01ff037cc666ebab469fea9243a970  gcc/testsuite/gcc.dg/format/ext-8.c
! 42ac21fc83490cb338b263b0eb8ef26c  gcc/testsuite/gcc.dg/format/ext-9.c
  15bea7790574d1770ac396bfef50a19e  gcc/testsuite/gcc.dg/format/few-1.c
! 4acef751ee5ceb91a80383d3537264ac  gcc/testsuite/gcc.dg/format/format.exp
  e2490c0c34db4afed2c43ea8d9b062ec  gcc/testsuite/gcc.dg/format/format.h
! 9511da811944e674f4785ad683fe8226  gcc/testsuite/gcc.dg/format/gcc_diag-1.c
  a484d0f83ec2d309b89e88feec0dd1e8  gcc/testsuite/gcc.dg/format/gcc_diag-10.c
  d2010406824bbf752492c4811ec55836  gcc/testsuite/gcc.dg/format/gcc_diag-11.c
  d63a56715d277d731b74b926a681d346  gcc/testsuite/gcc.dg/format/gcc_diag-2.c
--- 43551,43561 ----
  280e9929affa5c28ecacf01249e7f11b  gcc/testsuite/gcc.dg/format/ext-6.c
  0f2ebefdffa8d565f653d54653327fe8  gcc/testsuite/gcc.dg/format/ext-7.c
  9b01ff037cc666ebab469fea9243a970  gcc/testsuite/gcc.dg/format/ext-8.c
! e5c207978371bb080fe33dd28efe0312  gcc/testsuite/gcc.dg/format/ext-9.c
  15bea7790574d1770ac396bfef50a19e  gcc/testsuite/gcc.dg/format/few-1.c
! aaed69b020e63ebc2534cd9b373d0e01  gcc/testsuite/gcc.dg/format/format.exp
  e2490c0c34db4afed2c43ea8d9b062ec  gcc/testsuite/gcc.dg/format/format.h
! 52c959d010226e4d23f520f1efbcfbd0  gcc/testsuite/gcc.dg/format/gcc_diag-1.c
  a484d0f83ec2d309b89e88feec0dd1e8  gcc/testsuite/gcc.dg/format/gcc_diag-10.c
  d2010406824bbf752492c4811ec55836  gcc/testsuite/gcc.dg/format/gcc_diag-11.c
  d63a56715d277d731b74b926a681d346  gcc/testsuite/gcc.dg/format/gcc_diag-2.c
*************** d63a56715d277d731b74b926a681d346  gcc/te
*** 41580,41586 ****
  25eb4415aebd3904854b23f46f2e60f9  gcc/testsuite/gcc.dg/format/gcc_diag-7.c
  d28b0f6ad0c1803a8e2ae0a0010b1796  gcc/testsuite/gcc.dg/format/gcc_diag-8.c
  3928b244ea321bc5de566e6a2c830c1b  gcc/testsuite/gcc.dg/format/gcc_diag-9.c
! 9780e1e759356874a8b2dfc07f1b8589  gcc/testsuite/gcc.dg/format/gcc_gfc-1.c
  c2fc95de22ef0b676824f33c1b3ac508  gcc/testsuite/gcc.dg/format/gcc_gfc-2.c
  889d4b87729bf730589e6f893d14b7a3  gcc/testsuite/gcc.dg/format/miss-1.c
  dfc510d0d54c75d9a96eaabdc821e2d6  gcc/testsuite/gcc.dg/format/miss-2.c
--- 43566,43572 ----
  25eb4415aebd3904854b23f46f2e60f9  gcc/testsuite/gcc.dg/format/gcc_diag-7.c
  d28b0f6ad0c1803a8e2ae0a0010b1796  gcc/testsuite/gcc.dg/format/gcc_diag-8.c
  3928b244ea321bc5de566e6a2c830c1b  gcc/testsuite/gcc.dg/format/gcc_diag-9.c
! 90f2c5d1e473d31af5694e05bc51702a  gcc/testsuite/gcc.dg/format/gcc_gfc-1.c
  c2fc95de22ef0b676824f33c1b3ac508  gcc/testsuite/gcc.dg/format/gcc_gfc-2.c
  889d4b87729bf730589e6f893d14b7a3  gcc/testsuite/gcc.dg/format/miss-1.c
  dfc510d0d54c75d9a96eaabdc821e2d6  gcc/testsuite/gcc.dg/format/miss-2.c
*************** b5fc99d5cd488987e446fd40c88fdcde  gcc/te
*** 41678,41683 ****
--- 43664,43670 ----
  5fad85f6a525ba649eb9b2cc42c89366  gcc/testsuite/gcc.dg/format/proto.c
  8e4de68e496a28c03b2a9a568280143e  gcc/testsuite/gcc.dg/format/sec-1.c
  e237ed24e55e62c199105f7dfda9c95c  gcc/testsuite/gcc.dg/format/sentinel-1.c
+ 688497ce35c621c597ae6b5e8102bec1  gcc/testsuite/gcc.dg/format/sentinel-2.c
  9cbef1e5751733a4ccc852045f747a93  gcc/testsuite/gcc.dg/format/strfmon-1.c
  0580b4faa6d69e15b3dbd3564bef3b03  gcc/testsuite/gcc.dg/format/strfmon-2.c
  4e657e701841e398dd65ba221d93dd1d  gcc/testsuite/gcc.dg/format/sys_format.c
*************** cfde414df06a7d559244461a11116f3a  gcc/te
*** 41694,41700 ****
  8f37924ff2caad55a30fc496f91e6433  gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_2.c
  346d72de410a41c1e4c11801d862b639  gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_3.c
  dfe38eb512efba921d1fc5abef411b1a  gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_4.c
! efdf83d01ddd79162b4664860b902b22  gcc/testsuite/gcc.dg/framework-1.c
  ab168371521010cab0fb40567190798a  gcc/testsuite/gcc.dg/framework-2.c
  72cddfd9b852c1976438d75d9facbec7  gcc/testsuite/gcc.dg/free-1.c
  b545fd5015b04774ac8c95c87722bfc2  gcc/testsuite/gcc.dg/free-2.c
--- 43681,43687 ----
  8f37924ff2caad55a30fc496f91e6433  gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_2.c
  346d72de410a41c1e4c11801d862b639  gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_3.c
  dfe38eb512efba921d1fc5abef411b1a  gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_4.c
! f986ed8a378006f958f6b3f89b0dd9f5  gcc/testsuite/gcc.dg/framework-1.c
  ab168371521010cab0fb40567190798a  gcc/testsuite/gcc.dg/framework-2.c
  72cddfd9b852c1976438d75d9facbec7  gcc/testsuite/gcc.dg/free-1.c
  b545fd5015b04774ac8c95c87722bfc2  gcc/testsuite/gcc.dg/free-2.c
*************** d85ec955db6a9d8b53e019b33a5e099d  gcc/te
*** 41710,41716 ****
  58af1124cfb5aa8508c3ead450cf48b5  gcc/testsuite/gcc.dg/func-attr-1.c
  50a6b88a0ed8950d6805a1ebb764ff40  gcc/testsuite/gcc.dg/func-outside-1.c
  b569b0df37144d8f6b315adce4d5c198  gcc/testsuite/gcc.dg/func-outside-2.c
! ca06a5a1882aae4d955d440340256528  gcc/testsuite/gcc.dg/func-ptr-conv-1.c
  9644c7f08eac0e0fb416e316dbc87180  gcc/testsuite/gcc.dg/funcdef-attr-1.c
  631c25cdcb004ee1ab6ebf40060c8e5c  gcc/testsuite/gcc.dg/funcdef-storage-1.c
  387631f6a36df39b9eb9db31c7ebf4bb  gcc/testsuite/gcc.dg/funcdef-var-1.c
--- 43697,43704 ----
  58af1124cfb5aa8508c3ead450cf48b5  gcc/testsuite/gcc.dg/func-attr-1.c
  50a6b88a0ed8950d6805a1ebb764ff40  gcc/testsuite/gcc.dg/func-outside-1.c
  b569b0df37144d8f6b315adce4d5c198  gcc/testsuite/gcc.dg/func-outside-2.c
! 7d6c1ef3b2cced2a02e8e7d6825495ae  gcc/testsuite/gcc.dg/func-ptr-conv-1.c
! 72fec110e22ac28c31871fc067df1681  gcc/testsuite/gcc.dg/func-ptr-conv-2.c
  9644c7f08eac0e0fb416e316dbc87180  gcc/testsuite/gcc.dg/funcdef-attr-1.c
  631c25cdcb004ee1ab6ebf40060c8e5c  gcc/testsuite/gcc.dg/funcdef-storage-1.c
  387631f6a36df39b9eb9db31c7ebf4bb  gcc/testsuite/gcc.dg/funcdef-var-1.c
*************** ac4f542243160409b282373a022d7522  gcc/te
*** 41765,41770 ****
--- 43753,43761 ----
  42033fd81415a220072769a5adec4eb3  gcc/testsuite/gcc.dg/gimplefe-48.c
  611e68f95256c5aa85a7a6eb9796fc78  gcc/testsuite/gcc.dg/gimplefe-49.c
  b900f5308b7aaf209ad303e7426ad1bc  gcc/testsuite/gcc.dg/gimplefe-5.c
+ 45fc625ed3f9623dfaa1af8e3fb65615  gcc/testsuite/gcc.dg/gimplefe-50.c
+ 4e3abf91f192e3ee95a9cdb0533a1c0d  gcc/testsuite/gcc.dg/gimplefe-51.c
+ c22f32307f45a41035662597ec36c291  gcc/testsuite/gcc.dg/gimplefe-52.c
  003508c84556e4dd5119101f7dec73f6  gcc/testsuite/gcc.dg/gimplefe-6.c
  8537131248e8cadb5cf09db5f3a17687  gcc/testsuite/gcc.dg/gimplefe-7.c
  db9f8ce39b07fae0c4fd30c72f382e9f  gcc/testsuite/gcc.dg/gimplefe-8.c
*************** dae93188c3869bbff623a97d9f7b2b08  gcc/te
*** 41792,41817 ****
  78dbc165a91d16e2113b59bde997e8f1  gcc/testsuite/gcc.dg/gnu-predef-1.c
  6210c50f4f4266fc68c146927b33c06f  gcc/testsuite/gcc.dg/gnu11-align-1.c
  3a332e39fec6e68a2d4507ccd5c20199  gcc/testsuite/gcc.dg/gnu11-typeof-1.c
! 2989c9d34c6a51129dd29b1e6cc8a20d  gcc/testsuite/gcc.dg/gnu11-typeof-2.c
  98860983e0e7e6c0e27409a268e0b255  gcc/testsuite/gcc.dg/gnu11-version-1.c
! b5c900b3809745b1829686281a8f8c3d  gcc/testsuite/gcc.dg/gnu2x-attr-syntax-1.c
! 3b47f957e2060e6eb318b662c8650133  gcc/testsuite/gcc.dg/gnu2x-attr-syntax-2.c
! 4c6c791f75ab6ab99c2baa6eb4f74e12  gcc/testsuite/gcc.dg/gnu2x-attrs-1.c
! 5609a59d71f1428da09cb0a534d00501  gcc/testsuite/gcc.dg/gnu2x-attrs-2.c
! 3273e03ea389c386f25bb18b36d1bde9  gcc/testsuite/gcc.dg/gnu2x-auto-1.c
! 16d0b8252a6383741372abb853ecb7db  gcc/testsuite/gcc.dg/gnu2x-builtins-no-dfp-1.c
! b44f58660fbbce6819b964df23515e43  gcc/testsuite/gcc.dg/gnu2x-complit-1.c
! ba5b54b4bef7825c1ad698da352baa92  gcc/testsuite/gcc.dg/gnu2x-complit-2.c
! a81894d0b21046cb6300814038be7cd4  gcc/testsuite/gcc.dg/gnu2x-constexpr-1.c
! 256654b7f7f354436702eed4b964ecbf  gcc/testsuite/gcc.dg/gnu2x-empty-init-1.c
! a18fe689cc25fc77916ede8038d9a276  gcc/testsuite/gcc.dg/gnu2x-empty-init-2.c
! 70cdf2713d6b409f2a7113a99c5878f6  gcc/testsuite/gcc.dg/gnu2x-enum-1.c
! 94907bdb647bf450077c89cda2d46da4  gcc/testsuite/gcc.dg/gnu2x-static-assert-1.c
! b09adffd5083da96008c315088451df5  gcc/testsuite/gcc.dg/gnu2x-stdarg-1.c
! 88ccd922482fd79aa3a25f402b9ee7f2  gcc/testsuite/gcc.dg/gnu2x-typeof-1.c
! 5f81ba18335fad03342353b4e2b93989  gcc/testsuite/gcc.dg/gnu2x-utf8char-1.c
! dbce43671b8613846e367dea29fdd8bf  gcc/testsuite/gcc.dg/gnu2x-utf8str-type.c
! 200b2ad962cd3afe8c781cc64c0b6dda  gcc/testsuite/gcc.dg/gnu2x-utf8str.c
  1dba007eb9375f507aea8a8537219f2f  gcc/testsuite/gcc.dg/gnu89-const-expr-1.c
  5f9245bb91ebd059fd2e1a5562ed7ed7  gcc/testsuite/gcc.dg/gnu89-const-expr-2.c
  b2a706a7cbbcb618336ca54df5e8285f  gcc/testsuite/gcc.dg/gnu89-dupqual-1.c
--- 43783,43830 ----
  78dbc165a91d16e2113b59bde997e8f1  gcc/testsuite/gcc.dg/gnu-predef-1.c
  6210c50f4f4266fc68c146927b33c06f  gcc/testsuite/gcc.dg/gnu11-align-1.c
  3a332e39fec6e68a2d4507ccd5c20199  gcc/testsuite/gcc.dg/gnu11-typeof-1.c
! f63e3315a5589f87a501301af189ea1c  gcc/testsuite/gcc.dg/gnu11-typeof-2.c
! bcac9a124b918a50171000947ed79c44  gcc/testsuite/gcc.dg/gnu11-typeof-3.c
! cfd6cd2c503b1854a70dc22639330f51  gcc/testsuite/gcc.dg/gnu11-typeof-4.c
  98860983e0e7e6c0e27409a268e0b255  gcc/testsuite/gcc.dg/gnu11-version-1.c
! 828e76bbe8829f3919f46e4cf1db72c8  gcc/testsuite/gcc.dg/gnu23-attr-syntax-1.c
! 6d842c64c5f2267b46796029021f59a2  gcc/testsuite/gcc.dg/gnu23-attr-syntax-2.c
! 48f80e709948e068188c364f2d4a41ac  gcc/testsuite/gcc.dg/gnu23-attr-syntax-3.c
! 53f25ed01ad8a9feef3d0c1ec9e7600d  gcc/testsuite/gcc.dg/gnu23-attrs-1.c
! cdfb20175315e220713bd554e217f4b4  gcc/testsuite/gcc.dg/gnu23-attrs-2.c
! b30dc48fe3763ca69877d6077300d37c  gcc/testsuite/gcc.dg/gnu23-auto-1.c
! 8d06012dea3684a6f717460c91f464b5  gcc/testsuite/gcc.dg/gnu23-builtins-no-dfp-1.c
! edf813c8d54b5e8d260c28528b027fd6  gcc/testsuite/gcc.dg/gnu23-complit-1.c
! 40f656a1cc548467fd8adeccd70bae09  gcc/testsuite/gcc.dg/gnu23-complit-2.c
! 70f32e1d7187d362fee5d12a8440bc0e  gcc/testsuite/gcc.dg/gnu23-constexpr-1.c
! 46ccfb9fc7d943889787d6cdc2c03a67  gcc/testsuite/gcc.dg/gnu23-empty-init-1.c
! 0696d143e7a8e79ac5b69711f246e6db  gcc/testsuite/gcc.dg/gnu23-empty-init-2.c
! 0343701af853738a5917698c56c357aa  gcc/testsuite/gcc.dg/gnu23-enum-1.c
! 2923a86beb5b8e1765b62a9820a7cd35  gcc/testsuite/gcc.dg/gnu23-opts-1.c
! 93a7b3f57a86ae3b5922552bd28d396f  gcc/testsuite/gcc.dg/gnu23-opts-2.c
! 5975c5002cb3c1fd8a61d2d142a10aba  gcc/testsuite/gcc.dg/gnu23-static-assert-1.c
! 1532f2be461d008191481d93d4aa77fd  gcc/testsuite/gcc.dg/gnu23-stdarg-1.c
! 27b715413894f856d524e800cbb3d365  gcc/testsuite/gcc.dg/gnu23-tag-1.c
! a2603d6d18077481049b8e8cfd99dbc8  gcc/testsuite/gcc.dg/gnu23-tag-2.c
! a9ce030fd9cea4fc82863a00d8bc7b9a  gcc/testsuite/gcc.dg/gnu23-tag-3.c
! b30864374e5b5a035dcade1d26559a44  gcc/testsuite/gcc.dg/gnu23-tag-4.c
! 7260a5a5257eac9f20c98aae697b7169  gcc/testsuite/gcc.dg/gnu23-tag-alias-1.c
! 1c3bab9da0fd2bdba772e1c60bbf8cb0  gcc/testsuite/gcc.dg/gnu23-tag-alias-2.c
! d91f97efe0b20a84c86a2d98fd3e4dcc  gcc/testsuite/gcc.dg/gnu23-tag-alias-3.c
! 9de715de5ed94b004a08f02171073068  gcc/testsuite/gcc.dg/gnu23-tag-alias-4.c
! 19dd14d42cbd28ed2f8a1416ee079e14  gcc/testsuite/gcc.dg/gnu23-tag-alias-5.c
! b0723a093a932ec32843cd898ba3f2c4  gcc/testsuite/gcc.dg/gnu23-tag-alias-6.c
! d5d5157938348319bae6e5bc5eb0ef75  gcc/testsuite/gcc.dg/gnu23-tag-alias-7.c
! b3de7f48e15a02c6e6fb8bd51e4ab614  gcc/testsuite/gcc.dg/gnu23-tag-composite-1.c
! c16263fe97e9a67347f142108b0ef45c  gcc/testsuite/gcc.dg/gnu23-tag-composite-2.c
! 8274444b50d1968c43296a7054673b34  gcc/testsuite/gcc.dg/gnu23-tag-composite-3.c
! 62aa66dd9de4209944d261bb9c728665  gcc/testsuite/gcc.dg/gnu23-tag-composite-4.c
! 55eb38c543312d9a8ec407d5dc57ab64  gcc/testsuite/gcc.dg/gnu23-tag-composite-5.c
! c85fa6543a15d51c958fa06a431c31a0  gcc/testsuite/gcc.dg/gnu23-tag-enum-1.c
! 91a4022639b4da631739955963491d18  gcc/testsuite/gcc.dg/gnu23-typeof-1.c
! f4cdcfdd20fcbe93fb5c641aa6f0e1e7  gcc/testsuite/gcc.dg/gnu23-utf8char-1.c
! 81a7647277d0b9fe98a1595920a70723  gcc/testsuite/gcc.dg/gnu23-utf8str-type.c
! 20991cd5f827e293e71f1c1df48a0684  gcc/testsuite/gcc.dg/gnu23-utf8str.c
  1dba007eb9375f507aea8a8537219f2f  gcc/testsuite/gcc.dg/gnu89-const-expr-1.c
  5f9245bb91ebd059fd2e1a5562ed7ed7  gcc/testsuite/gcc.dg/gnu89-const-expr-2.c
  b2a706a7cbbcb618336ca54df5e8285f  gcc/testsuite/gcc.dg/gnu89-dupqual-1.c
*************** ae8f65ff46d5c742b9d555f0c48fdbe3  gcc/te
*** 41827,41835 ****
  465c3878b47ae66788561ddbec36b439  gcc/testsuite/gcc.dg/gnu99-init-1.c
  21af052ed022fbb55651109aaef9f7e0  gcc/testsuite/gcc.dg/gnu99-init-2.c
  6981df5e05752f9975e927f7aa20f8e0  gcc/testsuite/gcc.dg/gnu99-static-1.c
! bfa1dff4adcb294ca1b7852d9432e7a0  gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp
  e301304e13590c1ce7f775ce00ef95b0  gcc/testsuite/gcc.dg/goacc/acc_on_device-1.c
! 02dda7ae126f758d90a0b48ff2004d31  gcc/testsuite/gcc.dg/goacc/goacc.exp
  f1c6a4ba57460443a8ecc12c3bf25d9f  gcc/testsuite/gcc.dg/goacc/loop-processing-1.c
  afb6312838d88aea13a070e21cbe9fb9  gcc/testsuite/gcc.dg/goacc/nested-function-1.c
  28e371856aae0bf30288fd000314f411  gcc/testsuite/gcc.dg/goacc/nested-function-2.c
--- 43840,43848 ----
  465c3878b47ae66788561ddbec36b439  gcc/testsuite/gcc.dg/gnu99-init-1.c
  21af052ed022fbb55651109aaef9f7e0  gcc/testsuite/gcc.dg/gnu99-init-2.c
  6981df5e05752f9975e927f7aa20f8e0  gcc/testsuite/gcc.dg/gnu99-static-1.c
! 055a7946e52c3e8946526a204c7b1f6b  gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp
  e301304e13590c1ce7f775ce00ef95b0  gcc/testsuite/gcc.dg/goacc/acc_on_device-1.c
! a4f69e881e30adde71f24df76c33c666  gcc/testsuite/gcc.dg/goacc/goacc.exp
  f1c6a4ba57460443a8ecc12c3bf25d9f  gcc/testsuite/gcc.dg/goacc/loop-processing-1.c
  afb6312838d88aea13a070e21cbe9fb9  gcc/testsuite/gcc.dg/goacc/nested-function-1.c
  28e371856aae0bf30288fd000314f411  gcc/testsuite/gcc.dg/goacc/nested-function-2.c
*************** acb5ff1fe34bdf360b3e8e1e27057c7c  gcc/te
*** 41879,41884 ****
--- 43892,43926 ----
  83fc5a160131e46d52401ed9a0270d52  gcc/testsuite/gcc.dg/gomp/asm-1.c
  c621352105a88501ea8e5c4fc6e9fcba  gcc/testsuite/gcc.dg/gomp/atomic-5.c
  22d57060102bd3c8f22f99655931b078  gcc/testsuite/gcc.dg/gomp/atomic-6.c
+ 9d5e328cfe678cb16eabf676b756fc19  gcc/testsuite/gcc.dg/gomp/attrs-1.c
+ 59f5d245f76bec29ae3b105889cee234  gcc/testsuite/gcc.dg/gomp/attrs-10.c
+ 376224e439fd43dc8fa95175058f50bc  gcc/testsuite/gcc.dg/gomp/attrs-11.c
+ e8b616706b9c40849f964ad4a202b00e  gcc/testsuite/gcc.dg/gomp/attrs-12.c
+ 084158cc52f11341a8fbb96431709d68  gcc/testsuite/gcc.dg/gomp/attrs-13.c
+ 66527d497a633f14d7da5a413d20e745  gcc/testsuite/gcc.dg/gomp/attrs-14.c
+ aa260eb274881fa02bada2bc687fdf65  gcc/testsuite/gcc.dg/gomp/attrs-15.c
+ e340eb07b9f188f317bb98a5577daa45  gcc/testsuite/gcc.dg/gomp/attrs-16.c
+ 744a1509f5ab693bd510c6b74a4cff45  gcc/testsuite/gcc.dg/gomp/attrs-17.c
+ 9bbc6b1d4ebe68b61a8f02c75f95fb66  gcc/testsuite/gcc.dg/gomp/attrs-18.c
+ 7be94eac97d57b71b671b087cef568fd  gcc/testsuite/gcc.dg/gomp/attrs-19.c
+ 6cf7c4e12e7f64fccfb4c93f58b4d231  gcc/testsuite/gcc.dg/gomp/attrs-2.c
+ 700c53aad0d5d269bea023972e23cbb0  gcc/testsuite/gcc.dg/gomp/attrs-20.c
+ a4898b96c392c0c7a38ec45b2c1f4e63  gcc/testsuite/gcc.dg/gomp/attrs-21.c
+ 629438b394352352fe98ddd89e17dafb  gcc/testsuite/gcc.dg/gomp/attrs-3.c
+ c1c6eca884454ae25c6d1415bf3463a4  gcc/testsuite/gcc.dg/gomp/attrs-4.c
+ 0b57ff1b2127d619ccf510193a878649  gcc/testsuite/gcc.dg/gomp/attrs-5.c
+ 4669e031a30201a11db7f113d3edfb12  gcc/testsuite/gcc.dg/gomp/attrs-6.c
+ 18fb56e85095c83341d35f60dfc31a81  gcc/testsuite/gcc.dg/gomp/attrs-7.c
+ 803d262323a774183d3eae0af96fee8d  gcc/testsuite/gcc.dg/gomp/attrs-8.c
+ 948a086fc4c6d2178ab6e46fcdc486c3  gcc/testsuite/gcc.dg/gomp/attrs-9.c
+ a1f891c5f0f993b065eb9127f4ee7b48  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-1.c
+ 80778aa54c71da9bdae48d0379f97195  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-2.c
+ 60b339df3891e877c545e9053ad60cf5  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-3.c
+ 486e98bde0844a0dda609297278c2bcc  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-4.c
+ eaa783e8389adca32f2db124e7a7ebbc  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-5.c
+ 02e9370ed0ecfc8d4e1d83f6e2d80f63  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-6.c
+ 90800a0a2dbc3b77f31cc6f1980aed76  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-7.c
+ eb3d22faee81e2f045c308cb5d0e684b  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-8.c
  5bdf2d77d1853d97a643ac387a3d4898  gcc/testsuite/gcc.dg/gomp/barrier-1.c
  4cc557fc04cdc32100defee25270433a  gcc/testsuite/gcc.dg/gomp/barrier-2.c
  23825024eeec4f1d1ec2539c8661d97f  gcc/testsuite/gcc.dg/gomp/block-1.c
*************** b6791d2dc8bbcd1cde186bf6d48381b1  gcc/te
*** 41895,41901 ****
  4910624b952a49e6626cc2f12abebbbf  gcc/testsuite/gcc.dg/gomp/cancel-1.c
  5c863da63bc2a44607b745b56d4373e8  gcc/testsuite/gcc.dg/gomp/clause-1.c
  c7d834ccfdd2998d05058b9180e9a6e9  gcc/testsuite/gcc.dg/gomp/clause-2.c
! 5ac08c2b4cafd06b9d0ecc5295b58bc9  gcc/testsuite/gcc.dg/gomp/collapse-1.c
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/gomp/combined-1.c
  de16af0b7453b18f17c66d9ef6034bbe  gcc/testsuite/gcc.dg/gomp/complex-1.c
  fe6047f5ca7e2eac34792a3acc1193c2  gcc/testsuite/gcc.dg/gomp/copyin-1.c
--- 43937,43943 ----
  4910624b952a49e6626cc2f12abebbbf  gcc/testsuite/gcc.dg/gomp/cancel-1.c
  5c863da63bc2a44607b745b56d4373e8  gcc/testsuite/gcc.dg/gomp/clause-1.c
  c7d834ccfdd2998d05058b9180e9a6e9  gcc/testsuite/gcc.dg/gomp/clause-2.c
! 35f32eab0b4f5b2fd922d3d1706043d6  gcc/testsuite/gcc.dg/gomp/collapse-1.c
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/gomp/combined-1.c
  de16af0b7453b18f17c66d9ef6034bbe  gcc/testsuite/gcc.dg/gomp/complex-1.c
  fe6047f5ca7e2eac34792a3acc1193c2  gcc/testsuite/gcc.dg/gomp/copyin-1.c
*************** a711c9451bdf512fdc17116c6ecdc398  gcc/te
*** 41903,41911 ****
  1a2c5c09aa0be5fb46a4f5f23aa6e736  gcc/testsuite/gcc.dg/gomp/critical-2.c
  03bbd187d9153b4add585d80ff21398a  gcc/testsuite/gcc.dg/gomp/critical-3.c
  5ed058cff064ccd6bdbb074b4f718aef  gcc/testsuite/gcc.dg/gomp/critical-4.c
! dbc6b0f25b3415b892a1907086b7068c  gcc/testsuite/gcc.dg/gomp/declare-simd-1.c
  dbf4fad9a516a5e21a83632a1bc47d48  gcc/testsuite/gcc.dg/gomp/declare-simd-2.c
! f34b5c5fe038b2af1f915413d2bbddd0  gcc/testsuite/gcc.dg/gomp/declare-simd-3.c
  8ad7fd6bf872bcd397b6264c4199830e  gcc/testsuite/gcc.dg/gomp/declare-simd-4.c
  c95154d0c0580392aee19257bfc2e9e4  gcc/testsuite/gcc.dg/gomp/declare-simd-5.c
  d9fdf9f47a3764723441a571868d9cba  gcc/testsuite/gcc.dg/gomp/declare-variant-1.c
--- 43945,43953 ----
  1a2c5c09aa0be5fb46a4f5f23aa6e736  gcc/testsuite/gcc.dg/gomp/critical-2.c
  03bbd187d9153b4add585d80ff21398a  gcc/testsuite/gcc.dg/gomp/critical-3.c
  5ed058cff064ccd6bdbb074b4f718aef  gcc/testsuite/gcc.dg/gomp/critical-4.c
! fb7d4bae284cb967bab3f6af105ee82e  gcc/testsuite/gcc.dg/gomp/declare-simd-1.c
  dbf4fad9a516a5e21a83632a1bc47d48  gcc/testsuite/gcc.dg/gomp/declare-simd-2.c
! eaf20ce005642d7f04c4f181f7d0e142  gcc/testsuite/gcc.dg/gomp/declare-simd-3.c
  8ad7fd6bf872bcd397b6264c4199830e  gcc/testsuite/gcc.dg/gomp/declare-simd-4.c
  c95154d0c0580392aee19257bfc2e9e4  gcc/testsuite/gcc.dg/gomp/declare-simd-5.c
  d9fdf9f47a3764723441a571868d9cba  gcc/testsuite/gcc.dg/gomp/declare-variant-1.c
*************** d04c18e8518877b08e0371599b6643ed  gcc/te
*** 41940,41946 ****
  80a82ac0d4faa464e36b67b133df4697  gcc/testsuite/gcc.dg/gomp/for-7.c
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/gcc.dg/gomp/for-8.c
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/gcc.dg/gomp/for-9.c
! fd36c6cb702f29f9216e72344061229f  gcc/testsuite/gcc.dg/gomp/gomp.exp
  f23a4bf5a986b8f5c098e677d3a78a11  gcc/testsuite/gcc.dg/gomp/linear-1.c
  11c71eb5733cf2b2fd8236737c95dfad  gcc/testsuite/gcc.dg/gomp/loop-1.c
  110dfd4b42962d803dd77ce77900455c  gcc/testsuite/gcc.dg/gomp/loop-2.c
--- 43982,43988 ----
  80a82ac0d4faa464e36b67b133df4697  gcc/testsuite/gcc.dg/gomp/for-7.c
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/gcc.dg/gomp/for-8.c
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/gcc.dg/gomp/for-9.c
! 71e3d1611521814d409afaf80414f71f  gcc/testsuite/gcc.dg/gomp/gomp.exp
  f23a4bf5a986b8f5c098e677d3a78a11  gcc/testsuite/gcc.dg/gomp/linear-1.c
  11c71eb5733cf2b2fd8236737c95dfad  gcc/testsuite/gcc.dg/gomp/loop-1.c
  110dfd4b42962d803dd77ce77900455c  gcc/testsuite/gcc.dg/gomp/loop-2.c
*************** d9a1f43ca6ac2a073e22bbbf243f300b  gcc/te
*** 41972,41977 ****
--- 44014,44021 ----
  cd38ec3195ea21395e6d6950ff620410  gcc/testsuite/gcc.dg/gomp/pr104532.c
  0c8d7b49664fa54dbd4054b13e8a3133  gcc/testsuite/gcc.dg/gomp/pr104757.c
  a633f425b4fdde0a7b6f0aa6aa2f2754  gcc/testsuite/gcc.dg/gomp/pr108435.c
+ 20a3ca0acce7dbf1520d374c9470fc34  gcc/testsuite/gcc.dg/gomp/pr110485.c
+ 7d1b62adb42c340855e993cf480a19ec  gcc/testsuite/gcc.dg/gomp/pr114075.c
  7a163e65fe52b23fc85f2daa18c442ee  gcc/testsuite/gcc.dg/gomp/pr25874.c
  597de3ed24e1bc1c650af918589d83c3  gcc/testsuite/gcc.dg/gomp/pr25989.c
  0bd3e8dc860de61dd8e09229c090e1f5  gcc/testsuite/gcc.dg/gomp/pr25990.c
*************** a015fac57cc10c6d8cb53c59d01a382d  gcc/te
*** 42004,42010 ****
  cc8041c6e88604cf0785123c6ef16e67  gcc/testsuite/gcc.dg/gomp/pr35244.c
  019f6da671a8cb44f544eda59e2b5e1c  gcc/testsuite/gcc.dg/gomp/pr35438.c
  47cf2d6b9ca1934506c91b78a15b1c29  gcc/testsuite/gcc.dg/gomp/pr35439.c
! c91894840108c0a22e82787397921ae0  gcc/testsuite/gcc.dg/gomp/pr35738.c
  e1692d27d5d26cefebe4fc393c15fddb  gcc/testsuite/gcc.dg/gomp/pr35751.c
  ca3e6f1780ac0a60027cbe93e57cbbf1  gcc/testsuite/gcc.dg/gomp/pr35818.c
  69a2450c0fa691c572e271fe41d1b4e7  gcc/testsuite/gcc.dg/gomp/pr36790.c
--- 44048,44055 ----
  cc8041c6e88604cf0785123c6ef16e67  gcc/testsuite/gcc.dg/gomp/pr35244.c
  019f6da671a8cb44f544eda59e2b5e1c  gcc/testsuite/gcc.dg/gomp/pr35438.c
  47cf2d6b9ca1934506c91b78a15b1c29  gcc/testsuite/gcc.dg/gomp/pr35439.c
! 0f030aafac8100358252c6446ec01a30  gcc/testsuite/gcc.dg/gomp/pr35738-2.c
! 99adef961edcdf5b725c34919712904a  gcc/testsuite/gcc.dg/gomp/pr35738.c
  e1692d27d5d26cefebe4fc393c15fddb  gcc/testsuite/gcc.dg/gomp/pr35751.c
  ca3e6f1780ac0a60027cbe93e57cbbf1  gcc/testsuite/gcc.dg/gomp/pr35818.c
  69a2450c0fa691c572e271fe41d1b4e7  gcc/testsuite/gcc.dg/gomp/pr36790.c
*************** b6e412b1e41464bf3c6ad63059710985  gcc/te
*** 42044,42051 ****
  c2238ef3622834a9d2e9a1dd614ede1c  gcc/testsuite/gcc.dg/gomp/pr85594.c
  42a7faa8338896e947caadf259df6c7f  gcc/testsuite/gcc.dg/gomp/pr87887-1.c
  5f387fcdd6742ba35feb45a289816ad9  gcc/testsuite/gcc.dg/gomp/pr87887-2.c
! bab323829092004f56fd83704e2173a1  gcc/testsuite/gcc.dg/gomp/pr87895-1.c
! ed788210337ebe1041a6634575b320f5  gcc/testsuite/gcc.dg/gomp/pr87895-2.c
  b462e4f21233e920632f7d3698a11d53  gcc/testsuite/gcc.dg/gomp/pr87895-3.c
  1062dd0912cc60619ac8b4123318ee17  gcc/testsuite/gcc.dg/gomp/pr87898.c
  e5b0e398ad8cc5330e9e79662a929b72  gcc/testsuite/gcc.dg/gomp/pr88105.c
--- 44089,44096 ----
  c2238ef3622834a9d2e9a1dd614ede1c  gcc/testsuite/gcc.dg/gomp/pr85594.c
  42a7faa8338896e947caadf259df6c7f  gcc/testsuite/gcc.dg/gomp/pr87887-1.c
  5f387fcdd6742ba35feb45a289816ad9  gcc/testsuite/gcc.dg/gomp/pr87887-2.c
! 213f498fc1d5c80eea0bfc72166e91cf  gcc/testsuite/gcc.dg/gomp/pr87895-1.c
! 1b395b6db340a30b301bd0c04cdd4e04  gcc/testsuite/gcc.dg/gomp/pr87895-2.c
  b462e4f21233e920632f7d3698a11d53  gcc/testsuite/gcc.dg/gomp/pr87895-3.c
  1062dd0912cc60619ac8b4123318ee17  gcc/testsuite/gcc.dg/gomp/pr87898.c
  e5b0e398ad8cc5330e9e79662a929b72  gcc/testsuite/gcc.dg/gomp/pr88105.c
*************** c2316c5f28dbb215f431c0063ca94849  gcc/te
*** 42069,42075 ****
  00144472eaceec65e6944b47a2152522  gcc/testsuite/gcc.dg/gomp/pr99007-1.c
  419477a8634e4c558ec385e7956f2c04  gcc/testsuite/gcc.dg/gomp/pr99007-2.c
  d48a7b042ba2c6c301caa63e9559a4ea  gcc/testsuite/gcc.dg/gomp/pr99007-3.c
! c5bf7c7917177162a66f3e2ca3cca6d0  gcc/testsuite/gcc.dg/gomp/pr99542.c
  7e28101f22358515983ce58766fa9a3a  gcc/testsuite/gcc.dg/gomp/pr99544.c
  32d1b4709fce01c7b0f596da5c040f2a  gcc/testsuite/gcc.dg/gomp/preprocess-1.c
  5a96f232ac76ad6d8182f67c3f3a4acf  gcc/testsuite/gcc.dg/gomp/reduction-1.c
--- 44114,44120 ----
  00144472eaceec65e6944b47a2152522  gcc/testsuite/gcc.dg/gomp/pr99007-1.c
  419477a8634e4c558ec385e7956f2c04  gcc/testsuite/gcc.dg/gomp/pr99007-2.c
  d48a7b042ba2c6c301caa63e9559a4ea  gcc/testsuite/gcc.dg/gomp/pr99007-3.c
! 9c537af6983e241c5b984c0b09c5ad04  gcc/testsuite/gcc.dg/gomp/pr99542.c
  7e28101f22358515983ce58766fa9a3a  gcc/testsuite/gcc.dg/gomp/pr99544.c
  32d1b4709fce01c7b0f596da5c040f2a  gcc/testsuite/gcc.dg/gomp/preprocess-1.c
  5a96f232ac76ad6d8182f67c3f3a4acf  gcc/testsuite/gcc.dg/gomp/reduction-1.c
*************** a7ac9c7250e12a3e2fa3681701b90c4f  gcc/te
*** 42087,42093 ****
  126d0fa445584b17786d97ff1868b4b2  gcc/testsuite/gcc.dg/gomp/simd-2.c
  71529f4901112537840ae2e908cd9b63  gcc/testsuite/gcc.dg/gomp/simd-3.c
  eadcc6e8f85f7b3ef33b80d3fa14380e  gcc/testsuite/gcc.dg/gomp/simd-clones-1.c
! 43b34d2fe80f127a2a417d2239ae0930  gcc/testsuite/gcc.dg/gomp/simd-clones-2.c
  c14634a323696079f49ec83c65002f01  gcc/testsuite/gcc.dg/gomp/simd-clones-3.c
  8bce1bb5063cf99759b09ef1906170fb  gcc/testsuite/gcc.dg/gomp/simd-clones-4.c
  039ac62669587006b5697f833ee30a64  gcc/testsuite/gcc.dg/gomp/simd-clones-5.c
--- 44132,44138 ----
  126d0fa445584b17786d97ff1868b4b2  gcc/testsuite/gcc.dg/gomp/simd-2.c
  71529f4901112537840ae2e908cd9b63  gcc/testsuite/gcc.dg/gomp/simd-3.c
  eadcc6e8f85f7b3ef33b80d3fa14380e  gcc/testsuite/gcc.dg/gomp/simd-clones-1.c
! 9afbc865f69b36734abdae4780cf52be  gcc/testsuite/gcc.dg/gomp/simd-clones-2.c
  c14634a323696079f49ec83c65002f01  gcc/testsuite/gcc.dg/gomp/simd-clones-3.c
  8bce1bb5063cf99759b09ef1906170fb  gcc/testsuite/gcc.dg/gomp/simd-clones-4.c
  039ac62669587006b5697f833ee30a64  gcc/testsuite/gcc.dg/gomp/simd-clones-5.c
*************** ad6a9027ae49be1e64cb9dd3311b1b94  gcc/te
*** 42100,42106 ****
  871d2afbf0f76e5d008f733eaf14a059  gcc/testsuite/gcc.dg/gomp/static.c
  0e4b88bcdaea3e0ec538494446e27cde  gcc/testsuite/gcc.dg/gomp/target-1.c
  3dbda1e12ff1651f658704d415f7e84f  gcc/testsuite/gcc.dg/gomp/target-2.c
! f5d36c4c8c6e9b78f8b507ff3bb8142a  gcc/testsuite/gcc.dg/gomp/target-3.c
  75d44dfc9bd2f54678db46f137d93851  gcc/testsuite/gcc.dg/gomp/target-simd-clone-1.c
  790750059a6e05605748d80ed13b2533  gcc/testsuite/gcc.dg/gomp/target-simd-clone-2.c
  197a8cb4f6ec466d5b1a893b782ca807  gcc/testsuite/gcc.dg/gomp/target-simd-clone-3.c
--- 44145,44151 ----
  871d2afbf0f76e5d008f733eaf14a059  gcc/testsuite/gcc.dg/gomp/static.c
  0e4b88bcdaea3e0ec538494446e27cde  gcc/testsuite/gcc.dg/gomp/target-1.c
  3dbda1e12ff1651f658704d415f7e84f  gcc/testsuite/gcc.dg/gomp/target-2.c
! f4db87341b852ee623c705e71718a425  gcc/testsuite/gcc.dg/gomp/target-3.c
  75d44dfc9bd2f54678db46f137d93851  gcc/testsuite/gcc.dg/gomp/target-simd-clone-1.c
  790750059a6e05605748d80ed13b2533  gcc/testsuite/gcc.dg/gomp/target-simd-clone-2.c
  197a8cb4f6ec466d5b1a893b782ca807  gcc/testsuite/gcc.dg/gomp/target-simd-clone-3.c
*************** d52311b9c131d936e432ecb0ead28e52  gcc/te
*** 42193,42199 ****
  5e3ef65d649f9a7d1c1d6819a2188844  gcc/testsuite/gcc.dg/graphite/block-pr47654.c
  9c2252f89106b7004be1067a7dbd5b52  gcc/testsuite/gcc.dg/graphite/fuse-1.c
  63d4a7071763336f82d3784cd09338d4  gcc/testsuite/gcc.dg/graphite/fuse-2.c
! c9e7f25131dd64874af616bd6fef9e51  gcc/testsuite/gcc.dg/graphite/graphite.exp
  fcc649eff8ed5565979257e4569372a8  gcc/testsuite/gcc.dg/graphite/id-1.c
  09f79b77ac016159bcb104dc023d7b07  gcc/testsuite/gcc.dg/graphite/id-10.c
  3e96948dcff7f34717278e07eb31443a  gcc/testsuite/gcc.dg/graphite/id-11.c
--- 44238,44244 ----
  5e3ef65d649f9a7d1c1d6819a2188844  gcc/testsuite/gcc.dg/graphite/block-pr47654.c
  9c2252f89106b7004be1067a7dbd5b52  gcc/testsuite/gcc.dg/graphite/fuse-1.c
  63d4a7071763336f82d3784cd09338d4  gcc/testsuite/gcc.dg/graphite/fuse-2.c
! e4bef33d15ca48915c84f7cbd875d133  gcc/testsuite/gcc.dg/graphite/graphite.exp
  fcc649eff8ed5565979257e4569372a8  gcc/testsuite/gcc.dg/graphite/id-1.c
  09f79b77ac016159bcb104dc023d7b07  gcc/testsuite/gcc.dg/graphite/id-10.c
  3e96948dcff7f34717278e07eb31443a  gcc/testsuite/gcc.dg/graphite/id-11.c
*************** c0a5902abca3277fb2c3371823c620eb  gcc/te
*** 42264,42269 ****
--- 44309,44315 ----
  3c869c0dc067ca1fd4ca1e430608eac3  gcc/testsuite/gcc.dg/graphite/isl-ast-gen-user-1.c
  4e23241d90b6472bd3399bd9104dd643  gcc/testsuite/gcc.dg/graphite/isl-ast-op-select.c
  48d66d27639d95446c690c4a5d1347ba  gcc/testsuite/gcc.dg/graphite/pr106055.c
+ ffacda22ab3bcffecadb05d2f6a41819  gcc/testsuite/gcc.dg/graphite/pr111878.c
  9b9162822adb571b6b648827778dc56a  gcc/testsuite/gcc.dg/graphite/pr18792.c
  2247a3a0f30b24cd4f6afb8a99289230  gcc/testsuite/gcc.dg/graphite/pr19910.c
  93366da6daaa0436c31dfcb03c746093  gcc/testsuite/gcc.dg/graphite/pr20041110-1.c
*************** b349f414c0b090ee6461642c8314b56b  gcc/te
*** 42388,42397 ****
  ca3a4fc7b56b56ff1bc8d8298484654e  gcc/testsuite/gcc.dg/graphite/pr82451.c
  7ea7c881e55349ffc9a754a9fd6c8fc6  gcc/testsuite/gcc.dg/graphite/pr82563.c
  e004fd21bc86acc1876389b0431918a7  gcc/testsuite/gcc.dg/graphite/pr82819.c
! 6f0c36f3b84d7338debf87ae774d07e3  gcc/testsuite/gcc.dg/graphite/pr83126.c
  d6780b3d6a515f2ee93c807cc6631918  gcc/testsuite/gcc.dg/graphite/pr83176.c
  737461a2e4b8264dcfe480124972dae0  gcc/testsuite/gcc.dg/graphite/pr83238.c
! b680cfabec106d470642616df04bac85  gcc/testsuite/gcc.dg/graphite/pr83255.c
  886eab3244a6959e001f0e4693cfa48c  gcc/testsuite/gcc.dg/graphite/pr83277.c
  c4845bc1ca4ea3cad86fbd2f461d19c6  gcc/testsuite/gcc.dg/graphite/pr83359.c
  46daf4c6566fd2ef17a305f612b33858  gcc/testsuite/gcc.dg/graphite/pr83385.c
--- 44434,44443 ----
  ca3a4fc7b56b56ff1bc8d8298484654e  gcc/testsuite/gcc.dg/graphite/pr82451.c
  7ea7c881e55349ffc9a754a9fd6c8fc6  gcc/testsuite/gcc.dg/graphite/pr82563.c
  e004fd21bc86acc1876389b0431918a7  gcc/testsuite/gcc.dg/graphite/pr82819.c
! 2408c75eac8d352ef42ce7ebe1f14871  gcc/testsuite/gcc.dg/graphite/pr83126.c
  d6780b3d6a515f2ee93c807cc6631918  gcc/testsuite/gcc.dg/graphite/pr83176.c
  737461a2e4b8264dcfe480124972dae0  gcc/testsuite/gcc.dg/graphite/pr83238.c
! 8f64b234fd98286cdecb9705e93c9d0a  gcc/testsuite/gcc.dg/graphite/pr83255.c
  886eab3244a6959e001f0e4693cfa48c  gcc/testsuite/gcc.dg/graphite/pr83277.c
  c4845bc1ca4ea3cad86fbd2f461d19c6  gcc/testsuite/gcc.dg/graphite/pr83359.c
  46daf4c6566fd2ef17a305f612b33858  gcc/testsuite/gcc.dg/graphite/pr83385.c
*************** c5acb4eef5addd258e89e51e27d3b449  gcc/te
*** 42424,42429 ****
--- 44470,44477 ----
  0ef2120f99b756db4c3840219fb2dba8  gcc/testsuite/gcc.dg/graphite/run-id-4.c
  16e74d9fa864e530b4b6393475037140  gcc/testsuite/gcc.dg/graphite/run-id-5.c
  1c588ffb31c7ec814b9ed9e4581ab286  gcc/testsuite/gcc.dg/graphite/run-id-6.c
+ c8572cd38dea03588cc50aeb23fcf053  gcc/testsuite/gcc.dg/graphite/run-id-pr114041-1.c
+ 9a410e4d218e3b738541089b7047693c  gcc/testsuite/gcc.dg/graphite/run-id-pr114041-2.c
  e9a658f5e5227ca939ba11864c1a5efc  gcc/testsuite/gcc.dg/graphite/run-id-pr42644.c
  2190e3f79f26515ff859a51120bf5414  gcc/testsuite/gcc.dg/graphite/run-id-pr46758.c
  f35ab23a4d1fb41603401e81eba12337  gcc/testsuite/gcc.dg/graphite/run-id-pr47593.c
*************** b9aafcde73d659e8a8f12aec94a7cb09  gcc/te
*** 42481,42491 ****
  46fe10dc7c2a1b21f0d7af66c601ad44  gcc/testsuite/gcc.dg/guality/drap.c
  35524176317603e370c0e34f6d8bd9ae  gcc/testsuite/gcc.dg/guality/example.c
  b585f5364a9c450ecb2e3b12c31813d4  gcc/testsuite/gcc.dg/guality/guality.c
! f732aceb108be95e24919de86abdc86f  gcc/testsuite/gcc.dg/guality/guality.exp
  8c384d0e247915329d53a586d7639107  gcc/testsuite/gcc.dg/guality/guality.h
  2d9c26760bf9d33b3f102b5e17c22c93  gcc/testsuite/gcc.dg/guality/inline-params-2.c
  3e4b160c43920e148f7c88f96f5b4f0d  gcc/testsuite/gcc.dg/guality/inline-params.c
! ae369b6ced81ed3fd64cdae89010ad5f  gcc/testsuite/gcc.dg/guality/ipa-sra-1.c
  7012f59de97a05ed5deb56fd7a5ac984  gcc/testsuite/gcc.dg/guality/loop-1.c
  5c2f6a4b9c1ebab7a391d27540ff3f0b  gcc/testsuite/gcc.dg/guality/nrv-1.c
  eaa385c20377624a5edfaf054552a4f4  gcc/testsuite/gcc.dg/guality/param-1.c
--- 44529,44539 ----
  46fe10dc7c2a1b21f0d7af66c601ad44  gcc/testsuite/gcc.dg/guality/drap.c
  35524176317603e370c0e34f6d8bd9ae  gcc/testsuite/gcc.dg/guality/example.c
  b585f5364a9c450ecb2e3b12c31813d4  gcc/testsuite/gcc.dg/guality/guality.c
! 08c1103a60685034dfbc4dc74e0f22c5  gcc/testsuite/gcc.dg/guality/guality.exp
  8c384d0e247915329d53a586d7639107  gcc/testsuite/gcc.dg/guality/guality.h
  2d9c26760bf9d33b3f102b5e17c22c93  gcc/testsuite/gcc.dg/guality/inline-params-2.c
  3e4b160c43920e148f7c88f96f5b4f0d  gcc/testsuite/gcc.dg/guality/inline-params.c
! 04fe16ddebdaa6c28737262d0bc304de  gcc/testsuite/gcc.dg/guality/ipa-sra-1.c
  7012f59de97a05ed5deb56fd7a5ac984  gcc/testsuite/gcc.dg/guality/loop-1.c
  5c2f6a4b9c1ebab7a391d27540ff3f0b  gcc/testsuite/gcc.dg/guality/nrv-1.c
  eaa385c20377624a5edfaf054552a4f4  gcc/testsuite/gcc.dg/guality/param-1.c
*************** e63e77bf8350ae7d8e2e978d7a395b95  gcc/te
*** 42578,42590 ****
  bdc8809d518559f6663621234f706c41  gcc/testsuite/gcc.dg/h8300-div-delay-slot.c
  6c81f8f4e89f245eea4ede5e66bb7cf0  gcc/testsuite/gcc.dg/h8300-ice2.c
  a79e7852cdc3a2591178e5ebb62a3a3b  gcc/testsuite/gcc.dg/h8300-stack-1.c
  8362a750404465eb1e33b9cb8cae1881  gcc/testsuite/gcc.dg/header.c
  47a19efbf7957f2fc0bb31a641354fe3  gcc/testsuite/gcc.dg/hex-round-1.c
  beabf14243b2b65800f0733144ef725e  gcc/testsuite/gcc.dg/hex-round-2.c
  dc12526b2575b25bbb0263164484aeb3  gcc/testsuite/gcc.dg/hoist-register-pressure-1.c
  0df11bb9dd20d8cf406324e2baa18d83  gcc/testsuite/gcc.dg/hoist-register-pressure-2.c
  dd0c3d86be7753351dad89d50055a01e  gcc/testsuite/gcc.dg/hoist-register-pressure-3.c
! 24f315485be4ac02da1a97de589ad4b6  gcc/testsuite/gcc.dg/hwasan/hwasan.exp
  f20946bfbddc67e74cf619bd02e31549  gcc/testsuite/gcc.dg/hwasan/nested-functions-0.c
  36c11146134a4d86c84c359d41e52a7c  gcc/testsuite/gcc.dg/hwasan/nested-functions-1.c
  a5a7f8d29428537e3a2276c6511f420c  gcc/testsuite/gcc.dg/hwasan/nested-functions-2.c
--- 44626,44643 ----
  bdc8809d518559f6663621234f706c41  gcc/testsuite/gcc.dg/h8300-div-delay-slot.c
  6c81f8f4e89f245eea4ede5e66bb7cf0  gcc/testsuite/gcc.dg/h8300-ice2.c
  a79e7852cdc3a2591178e5ebb62a3a3b  gcc/testsuite/gcc.dg/h8300-stack-1.c
+ d43b5e36d7c0da7eaffe3a41d124e891  gcc/testsuite/gcc.dg/hardbool-err.c
+ 281633167342f941bdaaecce5a102d2f  gcc/testsuite/gcc.dg/hardbool-trap.c
+ dc5e0ad2a10d6477566ee3703034e71c  gcc/testsuite/gcc.dg/harden-cfr-pr111943.c
+ d4d46f0bcf41225e72b23884cc6722bb  gcc/testsuite/gcc.dg/has-feature.c
  8362a750404465eb1e33b9cb8cae1881  gcc/testsuite/gcc.dg/header.c
+ 4145640799f181a64b6a3215e095230c  gcc/testsuite/gcc.dg/heap-trampoline-1.c
  47a19efbf7957f2fc0bb31a641354fe3  gcc/testsuite/gcc.dg/hex-round-1.c
  beabf14243b2b65800f0733144ef725e  gcc/testsuite/gcc.dg/hex-round-2.c
  dc12526b2575b25bbb0263164484aeb3  gcc/testsuite/gcc.dg/hoist-register-pressure-1.c
  0df11bb9dd20d8cf406324e2baa18d83  gcc/testsuite/gcc.dg/hoist-register-pressure-2.c
  dd0c3d86be7753351dad89d50055a01e  gcc/testsuite/gcc.dg/hoist-register-pressure-3.c
! 38f53c84aa27c3cca5b629a67918e8a6  gcc/testsuite/gcc.dg/hwasan/hwasan.exp
  f20946bfbddc67e74cf619bd02e31549  gcc/testsuite/gcc.dg/hwasan/nested-functions-0.c
  36c11146134a4d86c84c359d41e52a7c  gcc/testsuite/gcc.dg/hwasan/nested-functions-1.c
  a5a7f8d29428537e3a2276c6511f420c  gcc/testsuite/gcc.dg/hwasan/nested-functions-2.c
*************** f46dce055fca6bcb88a60d11a0bb710b  gcc/te
*** 42606,42612 ****
  3fcd24000493dccbffcab8d7f571db16  gcc/testsuite/gcc.dg/ifcvt-1.c
  788cdc139607df186471194c57393d9b  gcc/testsuite/gcc.dg/ifcvt-2.c
  1406d8ef80fc3e9a51abb05637775214  gcc/testsuite/gcc.dg/ifcvt-3.c
! bf99da5f144bfa2b93ab29914ca6883c  gcc/testsuite/gcc.dg/ifcvt-4.c
  851af7bdf70bdcebc1bbfe12c989a445  gcc/testsuite/gcc.dg/ifcvt-5.c
  18c54e879b05c8aed2d3ad8ec198fe6d  gcc/testsuite/gcc.dg/ifcvt-fabs-1.c
  9a6101d4463140bd764616fe8d813f87  gcc/testsuite/gcc.dg/ifelse-1.c
--- 44659,44665 ----
  3fcd24000493dccbffcab8d7f571db16  gcc/testsuite/gcc.dg/ifcvt-1.c
  788cdc139607df186471194c57393d9b  gcc/testsuite/gcc.dg/ifcvt-2.c
  1406d8ef80fc3e9a51abb05637775214  gcc/testsuite/gcc.dg/ifcvt-3.c
! c3e8db9e992231697b36c3bd0282686c  gcc/testsuite/gcc.dg/ifcvt-4.c
  851af7bdf70bdcebc1bbfe12c989a445  gcc/testsuite/gcc.dg/ifcvt-5.c
  18c54e879b05c8aed2d3ad8ec198fe6d  gcc/testsuite/gcc.dg/ifcvt-fabs-1.c
  9a6101d4463140bd764616fe8d813f87  gcc/testsuite/gcc.dg/ifelse-1.c
*************** f77f4e1b3820c0e1099e7438eb895d42  gcc/te
*** 42617,42632 ****
  0b9c32da80718012a226452338fe25a6  gcc/testsuite/gcc.dg/incomplete-typedef-1.c
  f56673c5900fb2e39c7f865e95e75d5a  gcc/testsuite/gcc.dg/independent-cloneids-1.c
  350b6d19c60e3c8fc95fbe1f5c7284db  gcc/testsuite/gcc.dg/infinite-loop.c
! 5ff565b033842cb08cc33ab4ecc12d57  gcc/testsuite/gcc.dg/init-bad-1.c
! 5cad920dfbdb642fa95b968bf1309d8b  gcc/testsuite/gcc.dg/init-bad-2.c
! 08719f36ce425d988539aac42fc7c6e9  gcc/testsuite/gcc.dg/init-bad-3.c
  3165455a01709c2ab187d6545d1536bf  gcc/testsuite/gcc.dg/init-bad-4.c
  a71e92846bd82c2874c9f530426a281d  gcc/testsuite/gcc.dg/init-bad-5.c
  2e51141597f07c1bdd0550bf6de3bd33  gcc/testsuite/gcc.dg/init-bad-6.c
! 5d47eda03517b91276c1eeb0c4ee983d  gcc/testsuite/gcc.dg/init-bad-7.c
  39442208547e17b3f7d07ea577e8469d  gcc/testsuite/gcc.dg/init-bad-8.c
  1441a104797d89a001ddeeb4e7ac0396  gcc/testsuite/gcc.dg/init-bad-9.c
! e16a497e999b061225ac918e4db3dccf  gcc/testsuite/gcc.dg/init-compare-1.c
  68e3a2449e9e301b5cc216c65cec9c8e  gcc/testsuite/gcc.dg/init-desig-obs-1.c
  efed4766878640e3953cf4a8272fe4bf  gcc/testsuite/gcc.dg/init-desig-obs-2.c
  1f853186f0068c8e9eebf3080a53da44  gcc/testsuite/gcc.dg/init-desig-obs-3.c
--- 44670,44686 ----
  0b9c32da80718012a226452338fe25a6  gcc/testsuite/gcc.dg/incomplete-typedef-1.c
  f56673c5900fb2e39c7f865e95e75d5a  gcc/testsuite/gcc.dg/independent-cloneids-1.c
  350b6d19c60e3c8fc95fbe1f5c7284db  gcc/testsuite/gcc.dg/infinite-loop.c
! a8e73dad51c27093137a3277030c89c6  gcc/testsuite/gcc.dg/init-bad-1.c
! 8ebc06d113217979033e4c477f963464  gcc/testsuite/gcc.dg/init-bad-2.c
! 208c4239f7738b02cc9e71c20419b23b  gcc/testsuite/gcc.dg/init-bad-3.c
  3165455a01709c2ab187d6545d1536bf  gcc/testsuite/gcc.dg/init-bad-4.c
  a71e92846bd82c2874c9f530426a281d  gcc/testsuite/gcc.dg/init-bad-5.c
  2e51141597f07c1bdd0550bf6de3bd33  gcc/testsuite/gcc.dg/init-bad-6.c
! fa4ff91a25aeeafbf30ad45b9403aa85  gcc/testsuite/gcc.dg/init-bad-7.c
! d3f6e9e33afc335a263c8c914486b09e  gcc/testsuite/gcc.dg/init-bad-7a.c
  39442208547e17b3f7d07ea577e8469d  gcc/testsuite/gcc.dg/init-bad-8.c
  1441a104797d89a001ddeeb4e7ac0396  gcc/testsuite/gcc.dg/init-bad-9.c
! 33d394988de79f05666247b9ad8cb4c4  gcc/testsuite/gcc.dg/init-compare-1.c
  68e3a2449e9e301b5cc216c65cec9c8e  gcc/testsuite/gcc.dg/init-desig-obs-1.c
  efed4766878640e3953cf4a8272fe4bf  gcc/testsuite/gcc.dg/init-desig-obs-2.c
  1f853186f0068c8e9eebf3080a53da44  gcc/testsuite/gcc.dg/init-desig-obs-3.c
*************** efed4766878640e3953cf4a8272fe4bf  gcc/te
*** 42635,42640 ****
--- 44689,44695 ----
  90817e9557235af860d367897aafa042  gcc/testsuite/gcc.dg/init-empty-3.c
  22b16e07a96d1fc14440515466c26af1  gcc/testsuite/gcc.dg/init-excess-1.c
  e469f076692f924b2e1d46714a1056b3  gcc/testsuite/gcc.dg/init-excess-2.c
+ a6d99bdae85925822cd267ceacff5d0e  gcc/testsuite/gcc.dg/init-excess-3.c
  4fd4e28b1e297058e77acc0f0a8225fb  gcc/testsuite/gcc.dg/init-rounding-math-1.c
  4e1a8c3a4cee0ecd12863946cb8e2c1b  gcc/testsuite/gcc.dg/init-string-1.c
  8207f30a525d46a59c52261291258117  gcc/testsuite/gcc.dg/init-string-2.c
*************** ecbb420d135dea5b382c10b3f807ec9f  gcc/te
*** 42687,42692 ****
--- 44742,44748 ----
  ba66b4f621efcd9fab8ee6d7a3de2f82  gcc/testsuite/gcc.dg/inline-7.c
  15ba6dde14faabb0ea5a3c60511ab421  gcc/testsuite/gcc.dg/inline-8.c
  81acb41dc4eb1c29f1d640255d0716f3  gcc/testsuite/gcc.dg/inline-9.c
+ 305a1b070040c81bf8664036dfd98df9  gcc/testsuite/gcc.dg/inline-mem-cmp-pr112778.c
  79b5e5ae4594e4274322976afa5fc950  gcc/testsuite/gcc.dg/inline1.c
  6a6c3d2d4182c16e1ccbe3b6daa5fdf3  gcc/testsuite/gcc.dg/inline2.c
  f70ded6613ae8c6868fcd8a898089b34  gcc/testsuite/gcc.dg/inline3.c
*************** c98bd8084443af9809a9b85283a91966  gcc/te
*** 42701,42716 ****
  a481d0a49a4bf2aa98254e8df226bcd5  gcc/testsuite/gcc.dg/intermod-1.c
  22557d653f291c76fc7092fa90747b0a  gcc/testsuite/gcc.dg/intmax_t-1.c
  623aed8859c8d8790d8542fcad873744  gcc/testsuite/gcc.dg/invalid-call-1.c
! dfbda23c0d941f8279a80a5be93dcf25  gcc/testsuite/gcc.dg/ipa/20040703-wpa.c
  ee8131c6a8c9753b56fee8c390b0317c  gcc/testsuite/gcc.dg/ipa/PR64550.c
  60361af977014e7bcbcbd7f689d078ba  gcc/testsuite/gcc.dg/ipa/PR64559.c
  484329c6f176bf519f41e9257ff4adda  gcc/testsuite/gcc.dg/ipa/PR65282.c
  d4c1a7113a33d3c2137dc2348b102dc0  gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c
! a05cf460f608576e1ec29c7399d1246e  gcc/testsuite/gcc.dg/ipa/fopt-info-inline-1.c
  6438286ac73aa139024f31997ab14db7  gcc/testsuite/gcc.dg/ipa/iinline-1.c
  8c71eef392227cf4fbf71b2219f5af59  gcc/testsuite/gcc.dg/ipa/iinline-2.c
  750701c08c3f9027b97d19ca317ddf8b  gcc/testsuite/gcc.dg/ipa/iinline-3.c
! 39f6621376d850dae22404851e06c6e2  gcc/testsuite/gcc.dg/ipa/iinline-4.c
  43d5c0e314a3292dcc193afd2be619bf  gcc/testsuite/gcc.dg/ipa/iinline-5.c
  c7f0626e05751d9c20b2246acd8fee16  gcc/testsuite/gcc.dg/ipa/iinline-6.c
  9cdfc8f1f86ba8ace89ecfd4d060e448  gcc/testsuite/gcc.dg/ipa/iinline-7.c
--- 44757,44772 ----
  a481d0a49a4bf2aa98254e8df226bcd5  gcc/testsuite/gcc.dg/intermod-1.c
  22557d653f291c76fc7092fa90747b0a  gcc/testsuite/gcc.dg/intmax_t-1.c
  623aed8859c8d8790d8542fcad873744  gcc/testsuite/gcc.dg/invalid-call-1.c
! ea1a3834a944afe9b1461f6fb9d32ead  gcc/testsuite/gcc.dg/ipa/20040703-wpa.c
  ee8131c6a8c9753b56fee8c390b0317c  gcc/testsuite/gcc.dg/ipa/PR64550.c
  60361af977014e7bcbcbd7f689d078ba  gcc/testsuite/gcc.dg/ipa/PR64559.c
  484329c6f176bf519f41e9257ff4adda  gcc/testsuite/gcc.dg/ipa/PR65282.c
  d4c1a7113a33d3c2137dc2348b102dc0  gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c
! 5bb1e383d7837b494b7630980b0ef6f3  gcc/testsuite/gcc.dg/ipa/fopt-info-inline-1.c
  6438286ac73aa139024f31997ab14db7  gcc/testsuite/gcc.dg/ipa/iinline-1.c
  8c71eef392227cf4fbf71b2219f5af59  gcc/testsuite/gcc.dg/ipa/iinline-2.c
  750701c08c3f9027b97d19ca317ddf8b  gcc/testsuite/gcc.dg/ipa/iinline-3.c
! 49c4f464f77ff6850363e0933f26adc7  gcc/testsuite/gcc.dg/ipa/iinline-4.c
  43d5c0e314a3292dcc193afd2be619bf  gcc/testsuite/gcc.dg/ipa/iinline-5.c
  c7f0626e05751d9c20b2246acd8fee16  gcc/testsuite/gcc.dg/ipa/iinline-6.c
  9cdfc8f1f86ba8ace89ecfd4d060e448  gcc/testsuite/gcc.dg/ipa/iinline-7.c
*************** b396e5f65410b5143443d020f227239a  gcc/te
*** 42721,42727 ****
  484a33ceda75623f14c31dc5c0cb5e1d  gcc/testsuite/gcc.dg/ipa/inline-2.c
  dbb9508e584dea250f29a4f07a0c7ada  gcc/testsuite/gcc.dg/ipa/inline-3.c
  45b36514eaece229a05f0707b2e7d604  gcc/testsuite/gcc.dg/ipa/inline-4.c
! 9bb0a2b102b0a468a762e09f797097d2  gcc/testsuite/gcc.dg/ipa/inline-5.c
  77b0b740de49bbf357d4e1d97ac0d440  gcc/testsuite/gcc.dg/ipa/inline-6.c
  49ad75a8f9454fd0d593fc64789c5490  gcc/testsuite/gcc.dg/ipa/inline-7.c
  be1aaa4f1e7c9f717b85701f5fd66480  gcc/testsuite/gcc.dg/ipa/inline-8.c
--- 44777,44783 ----
  484a33ceda75623f14c31dc5c0cb5e1d  gcc/testsuite/gcc.dg/ipa/inline-2.c
  dbb9508e584dea250f29a4f07a0c7ada  gcc/testsuite/gcc.dg/ipa/inline-3.c
  45b36514eaece229a05f0707b2e7d604  gcc/testsuite/gcc.dg/ipa/inline-4.c
! a37a881b6f0df25ea373a40c574b75c4  gcc/testsuite/gcc.dg/ipa/inline-5.c
  77b0b740de49bbf357d4e1d97ac0d440  gcc/testsuite/gcc.dg/ipa/inline-6.c
  49ad75a8f9454fd0d593fc64789c5490  gcc/testsuite/gcc.dg/ipa/inline-7.c
  be1aaa4f1e7c9f717b85701f5fd66480  gcc/testsuite/gcc.dg/ipa/inline-8.c
*************** b23171d1fac1f82e590a6e196db0996d  gcc/te
*** 42741,42749 ****
  fae4e127bf18f2b79e20c299fc32e930  gcc/testsuite/gcc.dg/ipa/ipa-6.c
  6c2f25da23de51d6cd02d42910cb6239  gcc/testsuite/gcc.dg/ipa/ipa-7.c
  e6abb860376b654b78c23a68c2741729  gcc/testsuite/gcc.dg/ipa/ipa-8.c
! 1aef81e0ff3a8a77ea3fa23a05927c7d  gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-1.c
! f3f65e1d3145f966098a6cfbc7bca62a  gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-2.c
! 1aef81e0ff3a8a77ea3fa23a05927c7d  gcc/testsuite/gcc.dg/ipa/ipa-bit-cp.c
  86a9990992fcc01dbfcaf9edc8f17ad6  gcc/testsuite/gcc.dg/ipa/ipa-clone-1.c
  62bf4f8be35fb3861ecd4ec28a86fd95  gcc/testsuite/gcc.dg/ipa/ipa-clone-2.c
  283ef27eb9ca69eb6559ad3a16f5a2a4  gcc/testsuite/gcc.dg/ipa/ipa-clone-3.c
--- 44797,44805 ----
  fae4e127bf18f2b79e20c299fc32e930  gcc/testsuite/gcc.dg/ipa/ipa-6.c
  6c2f25da23de51d6cd02d42910cb6239  gcc/testsuite/gcc.dg/ipa/ipa-7.c
  e6abb860376b654b78c23a68c2741729  gcc/testsuite/gcc.dg/ipa/ipa-8.c
! 65c2a97146c311d10b6196f10ab25324  gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-1.c
! 2fba01536c68041907fcbc033a7e7e3f  gcc/testsuite/gcc.dg/ipa/ipa-bit-cp-2.c
! 65c2a97146c311d10b6196f10ab25324  gcc/testsuite/gcc.dg/ipa/ipa-bit-cp.c
  86a9990992fcc01dbfcaf9edc8f17ad6  gcc/testsuite/gcc.dg/ipa/ipa-clone-1.c
  62bf4f8be35fb3861ecd4ec28a86fd95  gcc/testsuite/gcc.dg/ipa/ipa-clone-2.c
  283ef27eb9ca69eb6559ad3a16f5a2a4  gcc/testsuite/gcc.dg/ipa/ipa-clone-3.c
*************** d02226bf191ce19547d1840646a9ab5c  gcc/te
*** 42764,42770 ****
  f0286b285fa8c21dc29aef50749d3578  gcc/testsuite/gcc.dg/ipa/ipa-icf-22.c
  e5ac4bee57ce10b256e6571d5f43593b  gcc/testsuite/gcc.dg/ipa/ipa-icf-23.c
  4d4cf86c87ab1a21377e9e5c7863e2c9  gcc/testsuite/gcc.dg/ipa/ipa-icf-24.c
! 8eae17a15d96bf301704a092ddaba0be  gcc/testsuite/gcc.dg/ipa/ipa-icf-25.c
  f8e2e3cadf847c1fe146e08c5dbc87b9  gcc/testsuite/gcc.dg/ipa/ipa-icf-26.c
  2dd071b9eff960cc432fbfdce7c5d777  gcc/testsuite/gcc.dg/ipa/ipa-icf-27.c
  3d26b2319c7ece32674f6c76e4068cb7  gcc/testsuite/gcc.dg/ipa/ipa-icf-28.c
--- 44820,44826 ----
  f0286b285fa8c21dc29aef50749d3578  gcc/testsuite/gcc.dg/ipa/ipa-icf-22.c
  e5ac4bee57ce10b256e6571d5f43593b  gcc/testsuite/gcc.dg/ipa/ipa-icf-23.c
  4d4cf86c87ab1a21377e9e5c7863e2c9  gcc/testsuite/gcc.dg/ipa/ipa-icf-24.c
! 4d343839d550c523d0cd313d62d25e9c  gcc/testsuite/gcc.dg/ipa/ipa-icf-25.c
  f8e2e3cadf847c1fe146e08c5dbc87b9  gcc/testsuite/gcc.dg/ipa/ipa-icf-26.c
  2dd071b9eff960cc432fbfdce7c5d777  gcc/testsuite/gcc.dg/ipa/ipa-icf-27.c
  3d26b2319c7ece32674f6c76e4068cb7  gcc/testsuite/gcc.dg/ipa/ipa-icf-28.c
*************** d06f7c5820eb923c44d73fa73e63ee5d  gcc/te
*** 42778,42784 ****
  3f06e49cd636df9de21331230b0e59e0  gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c
  4630bb4962c62c86ea5589ff20308a9a  gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c
  ef947bf14a3a516703fe551dea457061  gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c
! 682c8d620b16f64d33f18d73e453a4ae  gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c
  8d25872a618a0cf64f0d344afe44543a  gcc/testsuite/gcc.dg/ipa/ipa-icf-38a.c
  554bb9677c9084721bcca9a42daa5b9a  gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c
  639814886ab7278c2142d218eef816de  gcc/testsuite/gcc.dg/ipa/ipa-icf-4.c
--- 44834,44840 ----
  3f06e49cd636df9de21331230b0e59e0  gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c
  4630bb4962c62c86ea5589ff20308a9a  gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c
  ef947bf14a3a516703fe551dea457061  gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c
! 72f6b106778454ffd2aa9d3de15a2087  gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c
  8d25872a618a0cf64f0d344afe44543a  gcc/testsuite/gcc.dg/ipa/ipa-icf-38a.c
  554bb9677c9084721bcca9a42daa5b9a  gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c
  639814886ab7278c2142d218eef816de  gcc/testsuite/gcc.dg/ipa/ipa-icf-4.c
*************** a1f45503a5693ba924f940435c258afa  gcc/te
*** 42795,42801 ****
  81975ae5e39e58b128b0ffa494b17cac  gcc/testsuite/gcc.dg/ipa/ipa-pta-13.c
  c6173ea10b589e0736f6a4e4b24aeae0  gcc/testsuite/gcc.dg/ipa/ipa-pta-14.c
  def7e11a18eea4df779bd2605c1a040e  gcc/testsuite/gcc.dg/ipa/ipa-pta-15.c
! 5dd668648d66c29bd065eca897a0c024  gcc/testsuite/gcc.dg/ipa/ipa-pta-16.c
  747c42ce05fc89e40631ca5673afc2ad  gcc/testsuite/gcc.dg/ipa/ipa-pta-17.c
  241e4142635d64eed70e6c902853f3da  gcc/testsuite/gcc.dg/ipa/ipa-pta-18.c
  b18b72303bf1ea7390dd15ee7f35f66c  gcc/testsuite/gcc.dg/ipa/ipa-pta-19.c
--- 44851,44857 ----
  81975ae5e39e58b128b0ffa494b17cac  gcc/testsuite/gcc.dg/ipa/ipa-pta-13.c
  c6173ea10b589e0736f6a4e4b24aeae0  gcc/testsuite/gcc.dg/ipa/ipa-pta-14.c
  def7e11a18eea4df779bd2605c1a040e  gcc/testsuite/gcc.dg/ipa/ipa-pta-15.c
! 1808c5b5810916afa0a7a0414cef201e  gcc/testsuite/gcc.dg/ipa/ipa-pta-16.c
  747c42ce05fc89e40631ca5673afc2ad  gcc/testsuite/gcc.dg/ipa/ipa-pta-17.c
  241e4142635d64eed70e6c902853f3da  gcc/testsuite/gcc.dg/ipa/ipa-pta-18.c
  b18b72303bf1ea7390dd15ee7f35f66c  gcc/testsuite/gcc.dg/ipa/ipa-pta-19.c
*************** c4697d04b552316912df01412ff9eab9  gcc/te
*** 42831,42843 ****
  97395f127f5222283afef7a146b9bb7c  gcc/testsuite/gcc.dg/ipa/ipa-sra-3.c
  024df9535f9a738beafd35d5a95bdc86  gcc/testsuite/gcc.dg/ipa/ipa-sra-30.c
  ec1f5ae82072d277b96b8260ff2f93b1  gcc/testsuite/gcc.dg/ipa/ipa-sra-31.c
! 8f778cd0ed59258e5860e55940de2881  gcc/testsuite/gcc.dg/ipa/ipa-sra-4.c
  6ef7d3bb5d644ec45ca8db604c29cbb0  gcc/testsuite/gcc.dg/ipa/ipa-sra-5.c
  f389ed7606a4bab674d66dc4dcbd5533  gcc/testsuite/gcc.dg/ipa/ipa-sra-7.c
  a150c8ee6054d4be6013ea5d81d3f7d8  gcc/testsuite/gcc.dg/ipa/ipa-sra-8.c
  bb00c0c2b31f210548ae62b1328be368  gcc/testsuite/gcc.dg/ipa/ipa-sra-9.c
  fb762aeae2f1c2476ca0c285f1bf9a37  gcc/testsuite/gcc.dg/ipa/ipa-sra-ret-nonull.c
! 48a211c8c5b330860be46e6f9c4f244e  gcc/testsuite/gcc.dg/ipa/ipa.exp
  be5489532ad8117e567e1ea5c8ad4b6a  gcc/testsuite/gcc.dg/ipa/ipacost-1.c
  a1e98f91fdb742af3e542b201d095fcd  gcc/testsuite/gcc.dg/ipa/ipacost-2.c
  cec9083b7567e1f82d50440e7631e86f  gcc/testsuite/gcc.dg/ipa/ipcp-1.c
--- 44887,44900 ----
  97395f127f5222283afef7a146b9bb7c  gcc/testsuite/gcc.dg/ipa/ipa-sra-3.c
  024df9535f9a738beafd35d5a95bdc86  gcc/testsuite/gcc.dg/ipa/ipa-sra-30.c
  ec1f5ae82072d277b96b8260ff2f93b1  gcc/testsuite/gcc.dg/ipa/ipa-sra-31.c
! 902e61e79157318d5830f3728f6655e7  gcc/testsuite/gcc.dg/ipa/ipa-sra-32.c
! 45746482ac2c77edd72512846593afc1  gcc/testsuite/gcc.dg/ipa/ipa-sra-4.c
  6ef7d3bb5d644ec45ca8db604c29cbb0  gcc/testsuite/gcc.dg/ipa/ipa-sra-5.c
  f389ed7606a4bab674d66dc4dcbd5533  gcc/testsuite/gcc.dg/ipa/ipa-sra-7.c
  a150c8ee6054d4be6013ea5d81d3f7d8  gcc/testsuite/gcc.dg/ipa/ipa-sra-8.c
  bb00c0c2b31f210548ae62b1328be368  gcc/testsuite/gcc.dg/ipa/ipa-sra-9.c
  fb762aeae2f1c2476ca0c285f1bf9a37  gcc/testsuite/gcc.dg/ipa/ipa-sra-ret-nonull.c
! b71a2ba31e7c816b362a0944b26090b2  gcc/testsuite/gcc.dg/ipa/ipa.exp
  be5489532ad8117e567e1ea5c8ad4b6a  gcc/testsuite/gcc.dg/ipa/ipacost-1.c
  a1e98f91fdb742af3e542b201d095fcd  gcc/testsuite/gcc.dg/ipa/ipacost-2.c
  cec9083b7567e1f82d50440e7631e86f  gcc/testsuite/gcc.dg/ipa/ipcp-1.c
*************** b30637ee2dfddd2f33e1f6f41de2efa3  gcc/te
*** 42864,42870 ****
  adfd4fd9a5f3bcdd08a76458f2286a64  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-4.c
  6338363d06028cff9b3b592e2478b0f1  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-5.c
  b0e6976d3728dfc604f80cfaf17a5150  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-6.c
! 0cdbda40d5cdc9ac180ed340d948e96b  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-7.c
  bbdc28908094ef1ce181532afaf1b2dc  gcc/testsuite/gcc.dg/ipa/ipcp-ii-1.c
  7e51de4c9b7b88e115e6f81d3b98eab5  gcc/testsuite/gcc.dg/ipa/ipcp-loophint-1.c
  69364376b4034b0e22099f8f23273a79  gcc/testsuite/gcc.dg/ipa/ipcp-self-recursion-1.c
--- 44921,44927 ----
  adfd4fd9a5f3bcdd08a76458f2286a64  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-4.c
  6338363d06028cff9b3b592e2478b0f1  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-5.c
  b0e6976d3728dfc604f80cfaf17a5150  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-6.c
! da94c78b4a93e95073a9759dce468886  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-7.c
  bbdc28908094ef1ce181532afaf1b2dc  gcc/testsuite/gcc.dg/ipa/ipcp-ii-1.c
  7e51de4c9b7b88e115e6f81d3b98eab5  gcc/testsuite/gcc.dg/ipa/ipcp-loophint-1.c
  69364376b4034b0e22099f8f23273a79  gcc/testsuite/gcc.dg/ipa/ipcp-self-recursion-1.c
*************** e9a270cc0fe29965bd5d3f98375ad921  gcc/te
*** 42886,42899 ****
  3d61a501d84f658a0c31179e41f0686a  gcc/testsuite/gcc.dg/ipa/pr103601.c
  0b336f1d0f57e04aaa45b68e72e0bfec  gcc/testsuite/gcc.dg/ipa/pr104813.c
  99587579302ee66a706ecb63eca8d73f  gcc/testsuite/gcc.dg/ipa/pr105160.c
! e261240fcc7035cd8398f9cbecd10a00  gcc/testsuite/gcc.dg/ipa/pr105639.c
  d6d366e61e9493a8fc9ad14a2e6f9ba4  gcc/testsuite/gcc.dg/ipa/pr105739.c
  e53f73d24fa35ba6817e4a5b5d5e4d33  gcc/testsuite/gcc.dg/ipa/pr107640-2.c
  265ca89bf18d64d019ff7d75ea03f0b7  gcc/testsuite/gcc.dg/ipa/pr108384.c
  a613ec3a747f862a332859659437e61a  gcc/testsuite/gcc.dg/ipa/pr108679.c
  ec56d4020da1007033149a15637c5de4  gcc/testsuite/gcc.dg/ipa/pr108959.c
  cf4edb1ce9b073657fc6da0e1310515b  gcc/testsuite/gcc.dg/ipa/pr109318.c
  b70865b06d221ed2025f4fc757d9e20a  gcc/testsuite/gcc.dg/ipa/pr110276.c
  40bd41302666d56c4edf7330db97920e  gcc/testsuite/gcc.dg/ipa/pr42706.c
  e4887053c792f4f78b03804c148839ce  gcc/testsuite/gcc.dg/ipa/pr45644.c
  6e1b4f2c5d0c0d768778da8e3b7df828  gcc/testsuite/gcc.dg/ipa/pr48195.c
--- 44943,44964 ----
  3d61a501d84f658a0c31179e41f0686a  gcc/testsuite/gcc.dg/ipa/pr103601.c
  0b336f1d0f57e04aaa45b68e72e0bfec  gcc/testsuite/gcc.dg/ipa/pr104813.c
  99587579302ee66a706ecb63eca8d73f  gcc/testsuite/gcc.dg/ipa/pr105160.c
! c05e296cafa5084ddb1b1685f4733c1c  gcc/testsuite/gcc.dg/ipa/pr105639.c
  d6d366e61e9493a8fc9ad14a2e6f9ba4  gcc/testsuite/gcc.dg/ipa/pr105739.c
  e53f73d24fa35ba6817e4a5b5d5e4d33  gcc/testsuite/gcc.dg/ipa/pr107640-2.c
+ 95030383fded4b7071d378fb24eccc10  gcc/testsuite/gcc.dg/ipa/pr108007.c
  265ca89bf18d64d019ff7d75ea03f0b7  gcc/testsuite/gcc.dg/ipa/pr108384.c
  a613ec3a747f862a332859659437e61a  gcc/testsuite/gcc.dg/ipa/pr108679.c
  ec56d4020da1007033149a15637c5de4  gcc/testsuite/gcc.dg/ipa/pr108959.c
  cf4edb1ce9b073657fc6da0e1310515b  gcc/testsuite/gcc.dg/ipa/pr109318.c
+ 6cf1ca5750b51bebb32beb346554ff99  gcc/testsuite/gcc.dg/ipa/pr109849.c
  b70865b06d221ed2025f4fc757d9e20a  gcc/testsuite/gcc.dg/ipa/pr110276.c
+ e94db23260f47b2de7ac46111f42bfbd  gcc/testsuite/gcc.dg/ipa/pr110377.c
+ f94dfaffe55e1e883967e9ea683df097  gcc/testsuite/gcc.dg/ipa/pr110378-4.c
+ f741ddb64786110b58c8991c33d44c79  gcc/testsuite/gcc.dg/ipa/pr111571.c
+ 6cadebd8b42bda8557c5814d0103a2fa  gcc/testsuite/gcc.dg/ipa/pr112616.c
+ 32227973eac51db77fc53f4f18573df2  gcc/testsuite/gcc.dg/ipa/pr113490.c
+ b7a69609ea582386c302afd514d8e233  gcc/testsuite/gcc.dg/ipa/pr114247.c
  40bd41302666d56c4edf7330db97920e  gcc/testsuite/gcc.dg/ipa/pr42706.c
  e4887053c792f4f78b03804c148839ce  gcc/testsuite/gcc.dg/ipa/pr45644.c
  6e1b4f2c5d0c0d768778da8e3b7df828  gcc/testsuite/gcc.dg/ipa/pr48195.c
*************** eddfda4ba6e5db900b697d68f6dc4f54  gcc/te
*** 42924,42932 ****
  6391743d2f9ed0c57ef00442b79ff9fa  gcc/testsuite/gcc.dg/ipa/pr68790.c
  8a5bcf790b3a7e92c83518ad5f38f586  gcc/testsuite/gcc.dg/ipa/pr70306.c
  d7c1d9b981bf01c33fdef55aa1f7d528  gcc/testsuite/gcc.dg/ipa/pr70646.c
! 9b41a13a82881dc459bf71f6d78e8b4c  gcc/testsuite/gcc.dg/ipa/pr71981.c
  c188e02f6048255b4701a0567717ba31  gcc/testsuite/gcc.dg/ipa/pr77653.c
! 6c0d1235242158b8fda56254328d3d8f  gcc/testsuite/gcc.dg/ipa/pr78121.c
  fa8ddbcc7285d68bc45e806fa10c5aa5  gcc/testsuite/gcc.dg/ipa/pr80104.c
  a55e76e0d9a9ab759aa659b874d72f39  gcc/testsuite/gcc.dg/ipa/pr81520.c
  9dab8c515b418d1308f580ebaa505cc5  gcc/testsuite/gcc.dg/ipa/pr81696.c
--- 44989,44997 ----
  6391743d2f9ed0c57ef00442b79ff9fa  gcc/testsuite/gcc.dg/ipa/pr68790.c
  8a5bcf790b3a7e92c83518ad5f38f586  gcc/testsuite/gcc.dg/ipa/pr70306.c
  d7c1d9b981bf01c33fdef55aa1f7d528  gcc/testsuite/gcc.dg/ipa/pr70646.c
! a10502f8743cee77cac879ba54eec56d  gcc/testsuite/gcc.dg/ipa/pr71981.c
  c188e02f6048255b4701a0567717ba31  gcc/testsuite/gcc.dg/ipa/pr77653.c
! c9dd5cc40a2cce6bb8c7ca905ee132f1  gcc/testsuite/gcc.dg/ipa/pr78121.c
  fa8ddbcc7285d68bc45e806fa10c5aa5  gcc/testsuite/gcc.dg/ipa/pr80104.c
  a55e76e0d9a9ab759aa659b874d72f39  gcc/testsuite/gcc.dg/ipa/pr81520.c
  9dab8c515b418d1308f580ebaa505cc5  gcc/testsuite/gcc.dg/ipa/pr81696.c
*************** e69e8e71bc18aee250eb3863dee58b57  gcc/te
*** 42934,42940 ****
  c5a982844b74e3d73d7511fd2cb5ce36  gcc/testsuite/gcc.dg/ipa/pr82808.c
  6cdfa7edc9fa33fed27201e42af99e35  gcc/testsuite/gcc.dg/ipa/pr83594.c
  942a1d0bcd560b7a982f679a46d990a3  gcc/testsuite/gcc.dg/ipa/pr85449.c
! 17672e6a3f05352f780b7e246fb465ed  gcc/testsuite/gcc.dg/ipa/pr85734.c
  bfd19a33e270e728ac128981bbc58f6d  gcc/testsuite/gcc.dg/ipa/pr86279.c
  4d2a385eed9a0157f2820e93f227f411  gcc/testsuite/gcc.dg/ipa/pr88214.c
  722161cd45054e7141436121f8d7998f  gcc/testsuite/gcc.dg/ipa/pr88985.c
--- 44999,45005 ----
  c5a982844b74e3d73d7511fd2cb5ce36  gcc/testsuite/gcc.dg/ipa/pr82808.c
  6cdfa7edc9fa33fed27201e42af99e35  gcc/testsuite/gcc.dg/ipa/pr83594.c
  942a1d0bcd560b7a982f679a46d990a3  gcc/testsuite/gcc.dg/ipa/pr85449.c
! 07ae52fb2deb3ea1bf4d45a1ee294b77  gcc/testsuite/gcc.dg/ipa/pr85734.c
  bfd19a33e270e728ac128981bbc58f6d  gcc/testsuite/gcc.dg/ipa/pr86279.c
  4d2a385eed9a0157f2820e93f227f411  gcc/testsuite/gcc.dg/ipa/pr88214.c
  722161cd45054e7141436121f8d7998f  gcc/testsuite/gcc.dg/ipa/pr88985.c
*************** bfd19a33e270e728ac128981bbc58f6d  gcc/te
*** 42943,42948 ****
--- 45008,45015 ----
  51d419af24e1c36f61ecab348e06a07a  gcc/testsuite/gcc.dg/ipa/pr91089.c
  43bcde3d47cbbc50a0b5af735557b1a5  gcc/testsuite/gcc.dg/ipa/pr91832.c
  2b42c5b979097f2aa72e75bd29f4248d  gcc/testsuite/gcc.dg/ipa/pr91853.c
+ 2e3217eb0de9dcff0d296a707a817f68  gcc/testsuite/gcc.dg/ipa/pr92497-1.c
+ 163ea794c26fa6574dbdd74b9d2ea087  gcc/testsuite/gcc.dg/ipa/pr92497-2.c
  ba23b80ec5972171f5efaac4c636f710  gcc/testsuite/gcc.dg/ipa/pr92529.c
  08e6903d460435a7c6e7ac4d919a7d09  gcc/testsuite/gcc.dg/ipa/pr92794.c
  34ee4483371757cbb8f65ffc2b094df4  gcc/testsuite/gcc.dg/ipa/pr92883.c
*************** fe61754d682bd3ea724a03bb59912cfc  gcc/te
*** 42963,42976 ****
  3a6c3874c5a3d00f0257c8849444f1fa  gcc/testsuite/gcc.dg/ipa/propbits-1.c
  8e1d9af884140b1542f5fcba9ff86aec  gcc/testsuite/gcc.dg/ipa/propbits-2.c
  474330642cbec7b918c7e67faacb51b5  gcc/testsuite/gcc.dg/ipa/propbits-3.c
! 9047226ecdecd4a9b269044c8c4cf98a  gcc/testsuite/gcc.dg/ipa/propmalloc-1.c
! dec7c68955ba2e2854d7a33876b14525  gcc/testsuite/gcc.dg/ipa/propmalloc-2.c
! dbc052e7584a5974d15a850108b7a2c2  gcc/testsuite/gcc.dg/ipa/propmalloc-3.c
! 1a923aef9bd29d9ee0f38c1191572535  gcc/testsuite/gcc.dg/ipa/propmalloc-4.c
! d10e652496964c9cb3578e0e41bed200  gcc/testsuite/gcc.dg/ipa/pure-const-1.c
  1f165e75d721f80ecb86c192d412d78a  gcc/testsuite/gcc.dg/ipa/pure-const-2.c
  41c75241d4863185e9a7feee9e7afed9  gcc/testsuite/gcc.dg/ipa/pure-const-3.c
! e402d8a4110cdc5175efd8b02599244a  gcc/testsuite/gcc.dg/ipa/remref-0.c
  841041369faeaf90c82c40eb786fd202  gcc/testsuite/gcc.dg/ipa/remref-1a.c
  df7efbca91e6daf7ca0015336c194c9e  gcc/testsuite/gcc.dg/ipa/remref-1b.c
  201a0180936bb9bd03922bc02d69174d  gcc/testsuite/gcc.dg/ipa/remref-2a.c
--- 45030,45043 ----
  3a6c3874c5a3d00f0257c8849444f1fa  gcc/testsuite/gcc.dg/ipa/propbits-1.c
  8e1d9af884140b1542f5fcba9ff86aec  gcc/testsuite/gcc.dg/ipa/propbits-2.c
  474330642cbec7b918c7e67faacb51b5  gcc/testsuite/gcc.dg/ipa/propbits-3.c
! 716679b44719516841e5aad5b35a16c0  gcc/testsuite/gcc.dg/ipa/propmalloc-1.c
! 1a58e020e9c9ffb36bf0d6bafd39b79a  gcc/testsuite/gcc.dg/ipa/propmalloc-2.c
! c560eca529003729007f61bde705f01d  gcc/testsuite/gcc.dg/ipa/propmalloc-3.c
! 536bc4fd53c6f8143d7d9c65047d9880  gcc/testsuite/gcc.dg/ipa/propmalloc-4.c
! a146399f7c661c6245392fc80ca8b494  gcc/testsuite/gcc.dg/ipa/pure-const-1.c
  1f165e75d721f80ecb86c192d412d78a  gcc/testsuite/gcc.dg/ipa/pure-const-2.c
  41c75241d4863185e9a7feee9e7afed9  gcc/testsuite/gcc.dg/ipa/pure-const-3.c
! 7f9eb95be3c84102214ce8bbee98d033  gcc/testsuite/gcc.dg/ipa/remref-0.c
  841041369faeaf90c82c40eb786fd202  gcc/testsuite/gcc.dg/ipa/remref-1a.c
  df7efbca91e6daf7ca0015336c194c9e  gcc/testsuite/gcc.dg/ipa/remref-1b.c
  201a0180936bb9bd03922bc02d69174d  gcc/testsuite/gcc.dg/ipa/remref-2a.c
*************** fcc7dce8774036ba93e1fe9211b4421d  gcc/te
*** 42981,42994 ****
  2f98d70b4613eb7789fd16ce01458a0a  gcc/testsuite/gcc.dg/ipa/remref-6.c
  a4676419cc3a331d3b9012027515cd35  gcc/testsuite/gcc.dg/ipa/remref-7.c
  930b7aab3d43c8aa2dca624660702723  gcc/testsuite/gcc.dg/ipa/symver1.c
! dc629ef9342acd1db93ed124df2cb8ca  gcc/testsuite/gcc.dg/ipa/vrp1.c
! 7528bdadffdc3cc715527935504b1e45  gcc/testsuite/gcc.dg/ipa/vrp2.c
! 4b601248e5b7991bdcf988b06b4a5e1c  gcc/testsuite/gcc.dg/ipa/vrp3.c
! 9f45ed998e4526177c27ac0e736ed825  gcc/testsuite/gcc.dg/ipa/vrp4.c
! 9eebee3f2b913aa13422c1ce1975b5fc  gcc/testsuite/gcc.dg/ipa/vrp5.c
! 2d54f2cd1622c174dba74210c4398562  gcc/testsuite/gcc.dg/ipa/vrp6.c
! e2578680c59d9befa003170a787e13ed  gcc/testsuite/gcc.dg/ipa/vrp7.c
! fcf62556288e1b4e92c3810d39cb2082  gcc/testsuite/gcc.dg/ipa/vrp8.c
  e65101ee4834860ab2862af619795bf1  gcc/testsuite/gcc.dg/ira-loop-pressure.c
  f2bdfc94f6f8c1dd5a85cf68be8cf616  gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c
  19123d30c3be274cc288b04d8c885b48  gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-2.c
--- 45048,45061 ----
  2f98d70b4613eb7789fd16ce01458a0a  gcc/testsuite/gcc.dg/ipa/remref-6.c
  a4676419cc3a331d3b9012027515cd35  gcc/testsuite/gcc.dg/ipa/remref-7.c
  930b7aab3d43c8aa2dca624660702723  gcc/testsuite/gcc.dg/ipa/symver1.c
! 3c328ddcd5d7a795c5f00f06d206b8e2  gcc/testsuite/gcc.dg/ipa/vrp1.c
! 2ab8d962e85eaf6f689f3049f44347b5  gcc/testsuite/gcc.dg/ipa/vrp2.c
! 03985c8cc09afefc99b9871d9d7c38ae  gcc/testsuite/gcc.dg/ipa/vrp3.c
! f4269859704db60812dbb102775a3be9  gcc/testsuite/gcc.dg/ipa/vrp4.c
! d2481bf1011492fe019b45234ffe2de9  gcc/testsuite/gcc.dg/ipa/vrp5.c
! 2e367db510360866da20fb5913d43f1a  gcc/testsuite/gcc.dg/ipa/vrp6.c
! bfa8b67e49da38079f1612d0a76d6ef3  gcc/testsuite/gcc.dg/ipa/vrp7.c
! fdccff659aeb65d90b24a5ba6ea2679f  gcc/testsuite/gcc.dg/ipa/vrp8.c
  e65101ee4834860ab2862af619795bf1  gcc/testsuite/gcc.dg/ira-loop-pressure.c
  f2bdfc94f6f8c1dd5a85cf68be8cf616  gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-1.c
  19123d30c3be274cc288b04d8c885b48  gcc/testsuite/gcc.dg/ira-shrinkwrap-prep-2.c
*************** ae7bcf6f4a20a62efe1f640c131c15cb  gcc/te
*** 43007,43013 ****
  b9d0331e6e845cb0d7f26561f4753f77  gcc/testsuite/gcc.dg/large-size-array.c
  a1511014730573ca08fa055a4f00aa75  gcc/testsuite/gcc.dg/lazy-ptr-test.c
  d0bcca2e1a0a2193680083619c7cffab  gcc/testsuite/gcc.dg/limits-width-1.c
! e413f0f7240a3d4dd2c99035203b33f4  gcc/testsuite/gcc.dg/limits-width-2.c
  7cbf042d875b063388beeee95141e92b  gcc/testsuite/gcc.dg/live-patching-1.c
  94f2b5084b2cc34273650b4de59a5e2e  gcc/testsuite/gcc.dg/live-patching-2.c
  5832d6d09db6f71495d0171b2f941e50  gcc/testsuite/gcc.dg/live-patching-3.c
--- 45074,45080 ----
  b9d0331e6e845cb0d7f26561f4753f77  gcc/testsuite/gcc.dg/large-size-array.c
  a1511014730573ca08fa055a4f00aa75  gcc/testsuite/gcc.dg/lazy-ptr-test.c
  d0bcca2e1a0a2193680083619c7cffab  gcc/testsuite/gcc.dg/limits-width-1.c
! b22be2559a8886fa235c4257ce1f2437  gcc/testsuite/gcc.dg/limits-width-2.c
  7cbf042d875b063388beeee95141e92b  gcc/testsuite/gcc.dg/live-patching-1.c
  94f2b5084b2cc34273650b4de59a5e2e  gcc/testsuite/gcc.dg/live-patching-2.c
  5832d6d09db6f71495d0171b2f941e50  gcc/testsuite/gcc.dg/live-patching-3.c
*************** ee0c3ba150290bda1153f3076c3303b4  gcc/te
*** 43019,43025 ****
  0719df2af362b74f64d07659e78dbc9d  gcc/testsuite/gcc.dg/long-long-compare-1.c
  ffe4d747ae708d9b7c4aa0999dc0837a  gcc/testsuite/gcc.dg/long-long-cst1.c
  2fc326204806db0bd76fbba4686929cd  gcc/testsuite/gcc.dg/long-long-typespec-1.c
! a120e94847ba585d4876bc532dcde466  gcc/testsuite/gcc.dg/long_branch.c
  bf870f767c6be672a0cfc990dd97f936  gcc/testsuite/gcc.dg/loop-1.c
  6b5237c8148a38f20728981213824d52  gcc/testsuite/gcc.dg/loop-2.c
  0a9033ecae87ae0e54d2b003958a08a2  gcc/testsuite/gcc.dg/loop-3.c
--- 45086,45092 ----
  0719df2af362b74f64d07659e78dbc9d  gcc/testsuite/gcc.dg/long-long-compare-1.c
  ffe4d747ae708d9b7c4aa0999dc0837a  gcc/testsuite/gcc.dg/long-long-cst1.c
  2fc326204806db0bd76fbba4686929cd  gcc/testsuite/gcc.dg/long-long-typespec-1.c
! ef82a96160fbdc16c3ae89b852af04d5  gcc/testsuite/gcc.dg/long_branch.c
  bf870f767c6be672a0cfc990dd97f936  gcc/testsuite/gcc.dg/loop-1.c
  6b5237c8148a38f20728981213824d52  gcc/testsuite/gcc.dg/loop-2.c
  0a9033ecae87ae0e54d2b003958a08a2  gcc/testsuite/gcc.dg/loop-3.c
*************** b9d2d63f3863f74c5f1ce87d23debfe4  gcc/te
*** 43033,43046 ****
  efe590d29d570b6d17bba7b2c21339db  gcc/testsuite/gcc.dg/loop-invariant.c
  77d01b87345e303fc40f590c4f7e7785  gcc/testsuite/gcc.dg/loop-split.c
  131e2820dc3f0dd0daad8b4f7485d09f  gcc/testsuite/gcc.dg/loop-unswitch-1.c
! 32780ee5bb7778abc6761d5c7d9a9530  gcc/testsuite/gcc.dg/loop-unswitch-10.c
! 3b2beaec24c7308c8093a6c0a8324979  gcc/testsuite/gcc.dg/loop-unswitch-11.c
  dfb8eb3d8776a98272cdb79c03057de6  gcc/testsuite/gcc.dg/loop-unswitch-12.c
  0954352f4fa3a3999892475cc0eff8bc  gcc/testsuite/gcc.dg/loop-unswitch-13.c
! 0764b413afc4ede726e55adcd0e080d8  gcc/testsuite/gcc.dg/loop-unswitch-14.c
  7eff269f165fc9c4703633000fc4872a  gcc/testsuite/gcc.dg/loop-unswitch-15.c
  fd615ddc837f30eb837c3252a93097a5  gcc/testsuite/gcc.dg/loop-unswitch-16.c
! 5cfd2f4d832d3b87649e681e72711509  gcc/testsuite/gcc.dg/loop-unswitch-17.c
  d7918e0526893bb36ea04d7229ead772  gcc/testsuite/gcc.dg/loop-unswitch-18.c
  44b490988cc0f0544b4081ca49ca2822  gcc/testsuite/gcc.dg/loop-unswitch-2.c
  ff181fa6e4548d47aa84367f90ad303f  gcc/testsuite/gcc.dg/loop-unswitch-3.c
--- 45100,45113 ----
  efe590d29d570b6d17bba7b2c21339db  gcc/testsuite/gcc.dg/loop-invariant.c
  77d01b87345e303fc40f590c4f7e7785  gcc/testsuite/gcc.dg/loop-split.c
  131e2820dc3f0dd0daad8b4f7485d09f  gcc/testsuite/gcc.dg/loop-unswitch-1.c
! b67adbae1ced5aad88a57462afdeca2b  gcc/testsuite/gcc.dg/loop-unswitch-10.c
! a37c8a94a72909d1a77419a89bc646dd  gcc/testsuite/gcc.dg/loop-unswitch-11.c
  dfb8eb3d8776a98272cdb79c03057de6  gcc/testsuite/gcc.dg/loop-unswitch-12.c
  0954352f4fa3a3999892475cc0eff8bc  gcc/testsuite/gcc.dg/loop-unswitch-13.c
! e01a56e39b5dd5c338e771a1ce6d38a2  gcc/testsuite/gcc.dg/loop-unswitch-14.c
  7eff269f165fc9c4703633000fc4872a  gcc/testsuite/gcc.dg/loop-unswitch-15.c
  fd615ddc837f30eb837c3252a93097a5  gcc/testsuite/gcc.dg/loop-unswitch-16.c
! 5a560b88a3c9daa4246febcd97af4bfb  gcc/testsuite/gcc.dg/loop-unswitch-17.c
  d7918e0526893bb36ea04d7229ead772  gcc/testsuite/gcc.dg/loop-unswitch-18.c
  44b490988cc0f0544b4081ca49ca2822  gcc/testsuite/gcc.dg/loop-unswitch-2.c
  ff181fa6e4548d47aa84367f90ad303f  gcc/testsuite/gcc.dg/loop-unswitch-3.c
*************** e81d04faee8838d4f176f04b73de78ae  gcc/te
*** 43070,43076 ****
  c94f785256f1b68d319dcd3c9cff6a07  gcc/testsuite/gcc.dg/lto/20080917_0.c
  3ba1962566722e68ae1f749e89c3036c  gcc/testsuite/gcc.dg/lto/20080924_0.c
  b7280670787a2a7c64b52d093752d209  gcc/testsuite/gcc.dg/lto/20081024_0.c
! 83056d2e0d1f891862f91a80537867c3  gcc/testsuite/gcc.dg/lto/20081109_0.c
  73b695aabc202a903056deb75400cbd5  gcc/testsuite/gcc.dg/lto/20081111_0.c
  b04eb25fa11d0ef29c8817d3d48327de  gcc/testsuite/gcc.dg/lto/20081111_1.c
  1a219e8a5ece7593257865db08cdf8e1  gcc/testsuite/gcc.dg/lto/20081112_0.c
--- 45137,45143 ----
  c94f785256f1b68d319dcd3c9cff6a07  gcc/testsuite/gcc.dg/lto/20080917_0.c
  3ba1962566722e68ae1f749e89c3036c  gcc/testsuite/gcc.dg/lto/20080924_0.c
  b7280670787a2a7c64b52d093752d209  gcc/testsuite/gcc.dg/lto/20081024_0.c
! 8a9056f9bb9090e6036fcebd8cdfba3e  gcc/testsuite/gcc.dg/lto/20081109_0.c
  73b695aabc202a903056deb75400cbd5  gcc/testsuite/gcc.dg/lto/20081111_0.c
  b04eb25fa11d0ef29c8817d3d48327de  gcc/testsuite/gcc.dg/lto/20081111_1.c
  1a219e8a5ece7593257865db08cdf8e1  gcc/testsuite/gcc.dg/lto/20081112_0.c
*************** cd83120ec879013b19aafcc5f838c047  gcc/te
*** 43148,43156 ****
  230dc84b12ec2dc49c2a2afaea1e08db  gcc/testsuite/gcc.dg/lto/20091006-2_0.c
  b4339b390113a15f56bdeba41587958c  gcc/testsuite/gcc.dg/lto/20091006-2_1.c
  f26f4f4d9973dff3665201724f9dc4c4  gcc/testsuite/gcc.dg/lto/20091006-2_2.c
! ace7c1ab295298b8db389de962acce4b  gcc/testsuite/gcc.dg/lto/20091013-1_0.c
  f04ef6add169f04f5a01494d3a85f438  gcc/testsuite/gcc.dg/lto/20091013-1_1.c
! c84d0c9aa63f3f77ac404fcc6c98e472  gcc/testsuite/gcc.dg/lto/20091013-1_2.c
  3b10f79cd30196caa87ca77c16e13aa1  gcc/testsuite/gcc.dg/lto/20091014-1_0.c
  7cf51136e40f296b0c702fa9682478ad  gcc/testsuite/gcc.dg/lto/20091015-1_0.c
  d05ae72bc2da158ccd15c392b0755414  gcc/testsuite/gcc.dg/lto/20091015-1_1.c
--- 45215,45223 ----
  230dc84b12ec2dc49c2a2afaea1e08db  gcc/testsuite/gcc.dg/lto/20091006-2_0.c
  b4339b390113a15f56bdeba41587958c  gcc/testsuite/gcc.dg/lto/20091006-2_1.c
  f26f4f4d9973dff3665201724f9dc4c4  gcc/testsuite/gcc.dg/lto/20091006-2_2.c
! 35c2c36cc67c40eac6d7a88ea8b7af0c  gcc/testsuite/gcc.dg/lto/20091013-1_0.c
  f04ef6add169f04f5a01494d3a85f438  gcc/testsuite/gcc.dg/lto/20091013-1_1.c
! 207b929127cc169ea17cd61eb2df9341  gcc/testsuite/gcc.dg/lto/20091013-1_2.c
  3b10f79cd30196caa87ca77c16e13aa1  gcc/testsuite/gcc.dg/lto/20091014-1_0.c
  7cf51136e40f296b0c702fa9682478ad  gcc/testsuite/gcc.dg/lto/20091015-1_0.c
  d05ae72bc2da158ccd15c392b0755414  gcc/testsuite/gcc.dg/lto/20091015-1_1.c
*************** e22501e605edeaceeca043b437e49ba9  gcc/te
*** 43235,43249 ****
  5afe5712f0eec3e1317099cf354d0a38  gcc/testsuite/gcc.dg/lto/ipareference2_1.c
  744ef838cd191f7a2544697bf8f124dd  gcc/testsuite/gcc.dg/lto/ipareference_0.c
  798f96b8b3130da03f51bfae27df4189  gcc/testsuite/gcc.dg/lto/ipareference_1.c
! 03266039adc925ac2b9a6815e2756a0d  gcc/testsuite/gcc.dg/lto/lto.exp
  b9cc7cb6d7d65f984ee0a8985b8e0e6e  gcc/testsuite/gcc.dg/lto/materialize-1_0.c
  4c9f4a6440d7bd9fa3f564ee6b91b50c  gcc/testsuite/gcc.dg/lto/materialize-1_1.c
  ae3d0968e71a8445a5ea662452d0f5ce  gcc/testsuite/gcc.dg/lto/modref-1_0.c
  99c5a2a8670ef4b0b82cb919884648f5  gcc/testsuite/gcc.dg/lto/modref-1_1.c
  f98a566b3b2ff6733ed676024f2fb9f5  gcc/testsuite/gcc.dg/lto/modref-2_0.c
! a6de94e75077173343457ffe489d2c5e  gcc/testsuite/gcc.dg/lto/modref-3_0.c
  1eb5a5a9618f46e44dc9d6ee2a4c8bc4  gcc/testsuite/gcc.dg/lto/modref-3_1.c
! 2d9264f8917c432df21550864fbdc984  gcc/testsuite/gcc.dg/lto/modref-4_0.c
  1eb5a5a9618f46e44dc9d6ee2a4c8bc4  gcc/testsuite/gcc.dg/lto/modref-4_1.c
  e1bd2be5006d2bb7a3b670af0868ffeb  gcc/testsuite/gcc.dg/lto/noreturn-1_0.c
  2472b5bc8466fe62188232d9fbcd9de6  gcc/testsuite/gcc.dg/lto/noreturn-1_1.c
--- 45302,45316 ----
  5afe5712f0eec3e1317099cf354d0a38  gcc/testsuite/gcc.dg/lto/ipareference2_1.c
  744ef838cd191f7a2544697bf8f124dd  gcc/testsuite/gcc.dg/lto/ipareference_0.c
  798f96b8b3130da03f51bfae27df4189  gcc/testsuite/gcc.dg/lto/ipareference_1.c
! 53b8ba0463731e016c3ac950036f40d1  gcc/testsuite/gcc.dg/lto/lto.exp
  b9cc7cb6d7d65f984ee0a8985b8e0e6e  gcc/testsuite/gcc.dg/lto/materialize-1_0.c
  4c9f4a6440d7bd9fa3f564ee6b91b50c  gcc/testsuite/gcc.dg/lto/materialize-1_1.c
  ae3d0968e71a8445a5ea662452d0f5ce  gcc/testsuite/gcc.dg/lto/modref-1_0.c
  99c5a2a8670ef4b0b82cb919884648f5  gcc/testsuite/gcc.dg/lto/modref-1_1.c
  f98a566b3b2ff6733ed676024f2fb9f5  gcc/testsuite/gcc.dg/lto/modref-2_0.c
! 81b29b4be5c510dcb3e2600cad9e406b  gcc/testsuite/gcc.dg/lto/modref-3_0.c
  1eb5a5a9618f46e44dc9d6ee2a4c8bc4  gcc/testsuite/gcc.dg/lto/modref-3_1.c
! cbe8129904b881293ad63c724322c5f7  gcc/testsuite/gcc.dg/lto/modref-4_0.c
  1eb5a5a9618f46e44dc9d6ee2a4c8bc4  gcc/testsuite/gcc.dg/lto/modref-4_1.c
  e1bd2be5006d2bb7a3b670af0868ffeb  gcc/testsuite/gcc.dg/lto/noreturn-1_0.c
  2472b5bc8466fe62188232d9fbcd9de6  gcc/testsuite/gcc.dg/lto/noreturn-1_1.c
*************** fe020ff7b4d35a4d3f13e426cbacc4da  gcc/te
*** 43267,43272 ****
--- 45334,45355 ----
  75895ff7058fe9716d776a1c92124f2d  gcc/testsuite/gcc.dg/lto/pr108445_1.c
  ef0b90ba09e6e56d1d655afdcb63cdd4  gcc/testsuite/gcc.dg/lto/pr109778_0.c
  c3ad752a64c11978f9f2cce0520bf58c  gcc/testsuite/gcc.dg/lto/pr109778_1.c
+ 416450f6c91d224b71df4377a39b3fe7  gcc/testsuite/gcc.dg/lto/pr111157_0.c
+ d2a12eff624006349f40806ec941ae27  gcc/testsuite/gcc.dg/lto/pr111157_1.c
+ c8f6b1129e2eea0401251eaa5bad2940  gcc/testsuite/gcc.dg/lto/pr113233_0.c
+ 5a30be7e5faebcb3c788634739d7942d  gcc/testsuite/gcc.dg/lto/pr113359-1_0.c
+ 689493d8859ebd5141c7576ea5812894  gcc/testsuite/gcc.dg/lto/pr113359-1_1.c
+ a1748e20d9862396a285906364208f44  gcc/testsuite/gcc.dg/lto/pr113359-2_0.c
+ 6edfa3823a45aec28bfe3906cb0c8c59  gcc/testsuite/gcc.dg/lto/pr113359-2_1.c
+ 82e2344118052c04301038fec390f42d  gcc/testsuite/gcc.dg/lto/pr113359-3_0.c
+ 1f06069ea30d27a1e0fef1294b1bc9dd  gcc/testsuite/gcc.dg/lto/pr113359-3_1.c
+ 4a10953226e8b2bf38c71b31a58873ae  gcc/testsuite/gcc.dg/lto/pr113359-4_0.c
+ 180bf112da9a15f3f5953a72550e8c06  gcc/testsuite/gcc.dg/lto/pr113359-4_1.c
+ 45aca1e319518dd57f0a7c287a454a94  gcc/testsuite/gcc.dg/lto/pr113359-5_0.c
+ 6a759ddbca5b12559a1d058104297f87  gcc/testsuite/gcc.dg/lto/pr113359-5_1.c
+ 19509c8f1bdf98e2ab64c3f9e2c3f584  gcc/testsuite/gcc.dg/lto/pr113907_0.c
+ 9f07bf819862bc85bb8767d97947d837  gcc/testsuite/gcc.dg/lto/pr113907_1.c
+ 4d872eeace42ef5001147db36f0eb548  gcc/testsuite/gcc.dg/lto/pr113907_2.c
  5192817b2492ca93ffadce3b4a5e4794  gcc/testsuite/gcc.dg/lto/pr27898_0.c
  c5f48897247dfaec60df4e32beffcd8e  gcc/testsuite/gcc.dg/lto/pr27898_1.c
  2ad724786bc4b555a7f31e8b3bf164b6  gcc/testsuite/gcc.dg/lto/pr28706_0.c
*************** ca133eb45ca5807ac1ebf3a198de9306  gcc/te
*** 43296,43305 ****
  a64fcd8b9752e9274bf113e4f8c66522  gcc/testsuite/gcc.dg/lto/pr53214_0.c
  29ec2433c8fcc6971a9c77da7bcb77c5  gcc/testsuite/gcc.dg/lto/pr53470_0.c
  f2ca7f47966827f94f5a77e51e70d147  gcc/testsuite/gcc.dg/lto/pr54702_0.c
! f4e0b5c5947ea83ba5022f817499ab8b  gcc/testsuite/gcc.dg/lto/pr54702_1.c
  aae6afc076dac549323ad55c39757d0f  gcc/testsuite/gcc.dg/lto/pr54709_0.c
  ff470ed3bf1bbfa848a1ee2162616399  gcc/testsuite/gcc.dg/lto/pr54709_1.c
! f1fd88f7790df5b4edcf9b765d2b2beb  gcc/testsuite/gcc.dg/lto/pr55525_0.c
  b89812631e05725143963f1ff3fbbfc7  gcc/testsuite/gcc.dg/lto/pr55525_1.c
  47a8065df4bdece34317dab2da3d4076  gcc/testsuite/gcc.dg/lto/pr55660_0.c
  5bd545a061ad0b0b4c239a6958b57509  gcc/testsuite/gcc.dg/lto/pr55660_1.c
--- 45379,45388 ----
  a64fcd8b9752e9274bf113e4f8c66522  gcc/testsuite/gcc.dg/lto/pr53214_0.c
  29ec2433c8fcc6971a9c77da7bcb77c5  gcc/testsuite/gcc.dg/lto/pr53470_0.c
  f2ca7f47966827f94f5a77e51e70d147  gcc/testsuite/gcc.dg/lto/pr54702_0.c
! f288b413e895105108075f75f0c0ff06  gcc/testsuite/gcc.dg/lto/pr54702_1.c
  aae6afc076dac549323ad55c39757d0f  gcc/testsuite/gcc.dg/lto/pr54709_0.c
  ff470ed3bf1bbfa848a1ee2162616399  gcc/testsuite/gcc.dg/lto/pr54709_1.c
! 6aeb37cec76b66cd4f720c5760e6191b  gcc/testsuite/gcc.dg/lto/pr55525_0.c
  b89812631e05725143963f1ff3fbbfc7  gcc/testsuite/gcc.dg/lto/pr55525_1.c
  47a8065df4bdece34317dab2da3d4076  gcc/testsuite/gcc.dg/lto/pr55660_0.c
  5bd545a061ad0b0b4c239a6958b57509  gcc/testsuite/gcc.dg/lto/pr55660_1.c
*************** ebb801f97326701c44c33bb719490703  gcc/te
*** 43364,43370 ****
  f67a44e9e2f963084509149bec7655af  gcc/testsuite/gcc.dg/lto/pr85248_1.c
  282f07e58b4588a8dc30a94934177fbd  gcc/testsuite/gcc.dg/lto/pr85870_0.c
  0ad0dd21ac624ed6e82cfbb6d23cba67  gcc/testsuite/gcc.dg/lto/pr85870_1.c
! 39b1acb86d4ff0131276667f2bbd4586  gcc/testsuite/gcc.dg/lto/pr88077_0.c
  833668f47a5741405cf53fc58d31d1bc  gcc/testsuite/gcc.dg/lto/pr88077_1.c
  c51c424cae679b65a2dc52ea3ddc96d9  gcc/testsuite/gcc.dg/lto/pr88297_0.c
  14664c531ea727ce3e6cd733560c6895  gcc/testsuite/gcc.dg/lto/pr88297_1.c
--- 45447,45453 ----
  f67a44e9e2f963084509149bec7655af  gcc/testsuite/gcc.dg/lto/pr85248_1.c
  282f07e58b4588a8dc30a94934177fbd  gcc/testsuite/gcc.dg/lto/pr85870_0.c
  0ad0dd21ac624ed6e82cfbb6d23cba67  gcc/testsuite/gcc.dg/lto/pr85870_1.c
! 7aba7fb94344876cd45a197f9bfe5c20  gcc/testsuite/gcc.dg/lto/pr88077_0.c
  833668f47a5741405cf53fc58d31d1bc  gcc/testsuite/gcc.dg/lto/pr88077_1.c
  c51c424cae679b65a2dc52ea3ddc96d9  gcc/testsuite/gcc.dg/lto/pr88297_0.c
  14664c531ea727ce3e6cd733560c6895  gcc/testsuite/gcc.dg/lto/pr88297_1.c
*************** d0f7ad775f7535709bd76a4c558f1a51  gcc/te
*** 43416,43424 ****
  797c5b8279b119e196b60ddd82ff6200  gcc/testsuite/gcc.dg/max-1.c
  1a4cdf01852ee814e663ce4a12f81332  gcc/testsuite/gcc.dg/max.c
  2eb99e685dc27ff7c74d04a147795043  gcc/testsuite/gcc.dg/memchr-2.c
! 4ae6cf9ba3571b90f177d4b9b44d1cce  gcc/testsuite/gcc.dg/memchr-3.c
  9d87244d84141f68f68c9df9b9943fae  gcc/testsuite/gcc.dg/memchr.c
! a7970b17f2cd70d5522f097145c9da58  gcc/testsuite/gcc.dg/memcmp-1.c
  d46511208ba88b755c518bb5aa8112c3  gcc/testsuite/gcc.dg/memcmp-2.c
  656fc17a7231d4e1379a02817888a5d3  gcc/testsuite/gcc.dg/memcmp-3.c
  30c111f00536fce8bf5c9fddb92630a8  gcc/testsuite/gcc.dg/memcmp-4.c
--- 45499,45507 ----
  797c5b8279b119e196b60ddd82ff6200  gcc/testsuite/gcc.dg/max-1.c
  1a4cdf01852ee814e663ce4a12f81332  gcc/testsuite/gcc.dg/max.c
  2eb99e685dc27ff7c74d04a147795043  gcc/testsuite/gcc.dg/memchr-2.c
! 7253243e752b28339ab60d7858fa1d33  gcc/testsuite/gcc.dg/memchr-3.c
  9d87244d84141f68f68c9df9b9943fae  gcc/testsuite/gcc.dg/memchr.c
! c7ab022dfd7aca20ec1641f9eb2a2fbd  gcc/testsuite/gcc.dg/memcmp-1.c
  d46511208ba88b755c518bb5aa8112c3  gcc/testsuite/gcc.dg/memcmp-2.c
  656fc17a7231d4e1379a02817888a5d3  gcc/testsuite/gcc.dg/memcmp-3.c
  30c111f00536fce8bf5c9fddb92630a8  gcc/testsuite/gcc.dg/memcmp-4.c
*************** f95475da948bd44dcc9bae1ad2414546  gcc/te
*** 43448,43459 ****
  86112c3416ca6ddc642a2921ee1be969  gcc/testsuite/gcc.dg/mismatch-decl-1.c
  92c08397a16ba624a215e17607fb2894  gcc/testsuite/gcc.dg/missing-field-init-1.c
  1985016e3939b7a19fcb706dace00051  gcc/testsuite/gcc.dg/missing-field-init-2.c
! 12013d66b5c707c34bc03444452cbb4f  gcc/testsuite/gcc.dg/missing-header-fixit-1.c
! 7c63ea085d710c6e7ee71f21c9a986d2  gcc/testsuite/gcc.dg/missing-header-fixit-2.c
  2c267a2b2b580b8eccb468b5081a094b  gcc/testsuite/gcc.dg/missing-header-fixit-2.h
  65ee2fa6df47f63f7ce45b35524d91db  gcc/testsuite/gcc.dg/missing-header-fixit-3.c
! fd9a07883bf331e887ea8e84e77f18b0  gcc/testsuite/gcc.dg/missing-header-fixit-4.c
! 1359a99d082fddcfcc0811bf3c32500c  gcc/testsuite/gcc.dg/missing-header-fixit-5.c
  330c9a6cac31c8da3e7d9b86dff18542  gcc/testsuite/gcc.dg/missing-symbol-2.c
  51c49aa571a9f83a1ef09aa2de4ed0ff  gcc/testsuite/gcc.dg/missing-symbol-3.c
  a9d25b005316d831dbd591be8a92f08e  gcc/testsuite/gcc.dg/mmix-1.c
--- 45531,45546 ----
  86112c3416ca6ddc642a2921ee1be969  gcc/testsuite/gcc.dg/mismatch-decl-1.c
  92c08397a16ba624a215e17607fb2894  gcc/testsuite/gcc.dg/missing-field-init-1.c
  1985016e3939b7a19fcb706dace00051  gcc/testsuite/gcc.dg/missing-field-init-2.c
! 976005e6eb78539febaae2b0664f9e99  gcc/testsuite/gcc.dg/missing-header-fixit-1.c
! 8b3afb44c36c2883471024fef14daba3  gcc/testsuite/gcc.dg/missing-header-fixit-1a.c
! dde35f7563e5ce7e408f727e00fb48db  gcc/testsuite/gcc.dg/missing-header-fixit-2.c
  2c267a2b2b580b8eccb468b5081a094b  gcc/testsuite/gcc.dg/missing-header-fixit-2.h
+ 15df4a7479b6792befda97d6195e31fe  gcc/testsuite/gcc.dg/missing-header-fixit-2a.c
  65ee2fa6df47f63f7ce45b35524d91db  gcc/testsuite/gcc.dg/missing-header-fixit-3.c
! 4800c699b2cc6227e06afd62f28f0ea6  gcc/testsuite/gcc.dg/missing-header-fixit-4.c
! 58b2abea77b1fbd8de8609d0ea455e4c  gcc/testsuite/gcc.dg/missing-header-fixit-4a.c
! b6b171b53dd8fe6601baa95200befcca  gcc/testsuite/gcc.dg/missing-header-fixit-5.c
! c25ccf9d9ffab574b99a5c3d86c5554a  gcc/testsuite/gcc.dg/missing-header-fixit-5a.c
  330c9a6cac31c8da3e7d9b86dff18542  gcc/testsuite/gcc.dg/missing-symbol-2.c
  51c49aa571a9f83a1ef09aa2de4ed0ff  gcc/testsuite/gcc.dg/missing-symbol-3.c
  a9d25b005316d831dbd591be8a92f08e  gcc/testsuite/gcc.dg/mmix-1.c
*************** c277f277d0df3dd537cf20409167e023  gcc/te
*** 43479,43484 ****
--- 45566,45574 ----
  9b2b87a837afbb3185b68584c224938c  gcc/testsuite/gcc.dg/nested-func-8.c
  a43584a2eaad726a7d3c7a5adf915002  gcc/testsuite/gcc.dg/nested-func-9.c
  a2066a54fee8d64eae2217ae9213f31d  gcc/testsuite/gcc.dg/nested-redef-1.c
+ 0a6a96bf23d0651968c7fab7a318a533  gcc/testsuite/gcc.dg/nested-vla-1.c
+ 999bc8e1663e00fcaa7a469ac3938497  gcc/testsuite/gcc.dg/nested-vla-2.c
+ 9559afef40cfd6bdc088b9b8b7a895c2  gcc/testsuite/gcc.dg/nested-vla-3.c
  ab68fd8380d760fb702d59b8bfe85afe  gcc/testsuite/gcc.dg/nextafter-1.c
  e161d73e86fd34ba326047d5aa5bcd5a  gcc/testsuite/gcc.dg/nextafter-2.c
  3ccb5f1eba3e08b1f570b976cd81bc4e  gcc/testsuite/gcc.dg/nextafter-3.c
*************** d8b8e704d82244bf172325ffe7687229  gcc/te
*** 43517,43523 ****
  efaec86420af0d4c7d1309e3f635fe7b  gcc/testsuite/gcc.dg/noncompile/20011025-1.c
  3479030e3e59e70fabf3395145384ec5  gcc/testsuite/gcc.dg/noncompile/20020130-1.c
  ae4bbb0e37fbefdbb9ec9ce5946463ca  gcc/testsuite/gcc.dg/noncompile/20020207-1.c
! 305db8cecffb879688ae2b3927c8470f  gcc/testsuite/gcc.dg/noncompile/20020213-1.c
  ebaa4ee280f3ee63dd95a60e45569641  gcc/testsuite/gcc.dg/noncompile/20020220-1.c
  b5076a05f012d9662ba39a0ac14be746  gcc/testsuite/gcc.dg/noncompile/20030818-1.c
  2a95e7e5c29b3ea69b58b0b8389e2e98  gcc/testsuite/gcc.dg/noncompile/20040203-1.c
--- 45607,45613 ----
  efaec86420af0d4c7d1309e3f635fe7b  gcc/testsuite/gcc.dg/noncompile/20011025-1.c
  3479030e3e59e70fabf3395145384ec5  gcc/testsuite/gcc.dg/noncompile/20020130-1.c
  ae4bbb0e37fbefdbb9ec9ce5946463ca  gcc/testsuite/gcc.dg/noncompile/20020207-1.c
! 5faa276c0b3dd18a3eb19f05afeeeb34  gcc/testsuite/gcc.dg/noncompile/20020213-1.c
  ebaa4ee280f3ee63dd95a60e45569641  gcc/testsuite/gcc.dg/noncompile/20020220-1.c
  b5076a05f012d9662ba39a0ac14be746  gcc/testsuite/gcc.dg/noncompile/20030818-1.c
  2a95e7e5c29b3ea69b58b0b8389e2e98  gcc/testsuite/gcc.dg/noncompile/20040203-1.c
*************** c12474a7bd9d8234bbe400c5fd2be7ad  gcc/te
*** 43548,43554 ****
  1b2bc08a1a268520d0499de7a83200fa  gcc/testsuite/gcc.dg/noncompile/const-ll-1.c
  759ff42bb54e18e9e24d737a965fb659  gcc/testsuite/gcc.dg/noncompile/incomplete-1.c
  7d3d0c0d0116e643196ba9bdfbe5f4ce  gcc/testsuite/gcc.dg/noncompile/incomplete-2.c
! c1aa2d30f3e4d1579a26a453fc08fa73  gcc/testsuite/gcc.dg/noncompile/incomplete-3.c
  21405527ee0ce8a5e4e311f015a6554a  gcc/testsuite/gcc.dg/noncompile/incomplete-4.c
  54c9e9fdda71822c794a5c7997030a19  gcc/testsuite/gcc.dg/noncompile/incomplete-5.c
  d9f2478bdbe9c4a081a38bc37a06293e  gcc/testsuite/gcc.dg/noncompile/init-1.c
--- 45638,45644 ----
  1b2bc08a1a268520d0499de7a83200fa  gcc/testsuite/gcc.dg/noncompile/const-ll-1.c
  759ff42bb54e18e9e24d737a965fb659  gcc/testsuite/gcc.dg/noncompile/incomplete-1.c
  7d3d0c0d0116e643196ba9bdfbe5f4ce  gcc/testsuite/gcc.dg/noncompile/incomplete-2.c
! c19eff2ee92a78413064a52953fbf11d  gcc/testsuite/gcc.dg/noncompile/incomplete-3.c
  21405527ee0ce8a5e4e311f015a6554a  gcc/testsuite/gcc.dg/noncompile/incomplete-4.c
  54c9e9fdda71822c794a5c7997030a19  gcc/testsuite/gcc.dg/noncompile/incomplete-5.c
  d9f2478bdbe9c4a081a38bc37a06293e  gcc/testsuite/gcc.dg/noncompile/init-1.c
*************** b054d23fd7d868a509aeb363dc7e8ffc  gcc/te
*** 43559,43565 ****
  816b6759ae933f803099070549d0e06e  gcc/testsuite/gcc.dg/noncompile/invalid_asm.c
  67db74b19085ff950f0aaafaec250ef4  gcc/testsuite/gcc.dg/noncompile/label-1.c
  158d88cfb97dd38de0cb17ccc39f3d5e  gcc/testsuite/gcc.dg/noncompile/label-lineno-1.c
! 655f968731ccda4617395be232d2003b  gcc/testsuite/gcc.dg/noncompile/noncompile.exp
  415c039abdab8437275df71102cc5113  gcc/testsuite/gcc.dg/noncompile/old-style-parm-1.c
  6ccdd7958d053743fbd68691650b1b61  gcc/testsuite/gcc.dg/noncompile/old-style-parm-2.c
  dc03b56a3d101a6001179c75ccbd6723  gcc/testsuite/gcc.dg/noncompile/old-style-parm-3.c
--- 45649,45655 ----
  816b6759ae933f803099070549d0e06e  gcc/testsuite/gcc.dg/noncompile/invalid_asm.c
  67db74b19085ff950f0aaafaec250ef4  gcc/testsuite/gcc.dg/noncompile/label-1.c
  158d88cfb97dd38de0cb17ccc39f3d5e  gcc/testsuite/gcc.dg/noncompile/label-lineno-1.c
! 3a4d5bc49e203fafaad4d51b0d8bf733  gcc/testsuite/gcc.dg/noncompile/noncompile.exp
  415c039abdab8437275df71102cc5113  gcc/testsuite/gcc.dg/noncompile/old-style-parm-1.c
  6ccdd7958d053743fbd68691650b1b61  gcc/testsuite/gcc.dg/noncompile/old-style-parm-2.c
  dc03b56a3d101a6001179c75ccbd6723  gcc/testsuite/gcc.dg/noncompile/old-style-parm-3.c
*************** f7b0583ef99de8104eb364054c2ab1ae  gcc/te
*** 43574,43592 ****
  eebc988665ccd52c01692b6d73fdf1a7  gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
  de304718b009b210b30f573b7fc0491d  gcc/testsuite/gcc.dg/noncompile/pr44517.c
  0c6d70d2240eeb85a465c0d349792a78  gcc/testsuite/gcc.dg/noncompile/pr52290.c
! 6c251813c9154a7f301ef51167524063  gcc/testsuite/gcc.dg/noncompile/pr55976-1.c
! 93732fef2ba06a0acbfb9b8d30a18ef4  gcc/testsuite/gcc.dg/noncompile/pr55976-2.c
  4ba1dea2c906010f72544a694c8055d2  gcc/testsuite/gcc.dg/noncompile/pr71265.c
  e9c4b9ac1764f109629be29afe89e235  gcc/testsuite/gcc.dg/noncompile/pr71418.c
! 0957326859205274026e4dcb33639746  gcc/testsuite/gcc.dg/noncompile/pr71426.c
  9d1dbbc7954243ba6f9b868a5f7cc3c6  gcc/testsuite/gcc.dg/noncompile/pr71573.c
  dce450a02a76e8850fa1af640a197e05  gcc/testsuite/gcc.dg/noncompile/pr71583.c
  795fb0aea23fa4679ac66c15370f8f54  gcc/testsuite/gcc.dg/noncompile/pr71853.c
! d6215827f1b3ddeacd3b48d1d8b16bd5  gcc/testsuite/gcc.dg/noncompile/pr79758.c
  9dcbfb000a62c03db07cd7dfcc272eae  gcc/testsuite/gcc.dg/noncompile/pr81289.c
  7e17434473e72d99de0e53837884085d  gcc/testsuite/gcc.dg/noncompile/redecl-1.c
  efd9f24faf3a5e574722522b379e34c7  gcc/testsuite/gcc.dg/noncompile/scope.c
! bacce3ff1a5219b8aef3929e36521ff4  gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
  2abbebc8d611565f8348fdd5ae78f555  gcc/testsuite/gcc.dg/noncompile/undeclared-2.c
  e65c0aad11135d5f145655fd963b86e6  gcc/testsuite/gcc.dg/noncompile/va-arg-1.c
  22faeecb9b2619b4c2796b8fd40a3a76  gcc/testsuite/gcc.dg/noncompile/voidparam-1.c
--- 45664,45683 ----
  eebc988665ccd52c01692b6d73fdf1a7  gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
  de304718b009b210b30f573b7fc0491d  gcc/testsuite/gcc.dg/noncompile/pr44517.c
  0c6d70d2240eeb85a465c0d349792a78  gcc/testsuite/gcc.dg/noncompile/pr52290.c
! c5e0f548af5c87d4b40b062c90374ac5  gcc/testsuite/gcc.dg/noncompile/pr55976-1.c
! 1e44ca7b40713459e1e7bb8f3d8f838c  gcc/testsuite/gcc.dg/noncompile/pr55976-2.c
  4ba1dea2c906010f72544a694c8055d2  gcc/testsuite/gcc.dg/noncompile/pr71265.c
  e9c4b9ac1764f109629be29afe89e235  gcc/testsuite/gcc.dg/noncompile/pr71418.c
! 2a280d59838498ec3da9d7343cd29700  gcc/testsuite/gcc.dg/noncompile/pr71426.c
  9d1dbbc7954243ba6f9b868a5f7cc3c6  gcc/testsuite/gcc.dg/noncompile/pr71573.c
  dce450a02a76e8850fa1af640a197e05  gcc/testsuite/gcc.dg/noncompile/pr71583.c
  795fb0aea23fa4679ac66c15370f8f54  gcc/testsuite/gcc.dg/noncompile/pr71853.c
! 4c6e72ae257c01d7196bc78af9babfa4  gcc/testsuite/gcc.dg/noncompile/pr79758-2.c
! 229ebd1d273fe705ac50d99a534032da  gcc/testsuite/gcc.dg/noncompile/pr79758.c
  9dcbfb000a62c03db07cd7dfcc272eae  gcc/testsuite/gcc.dg/noncompile/pr81289.c
  7e17434473e72d99de0e53837884085d  gcc/testsuite/gcc.dg/noncompile/redecl-1.c
  efd9f24faf3a5e574722522b379e34c7  gcc/testsuite/gcc.dg/noncompile/scope.c
! 776ca86f7122507469a01a8baa0dd8ef  gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
  2abbebc8d611565f8348fdd5ae78f555  gcc/testsuite/gcc.dg/noncompile/undeclared-2.c
  e65c0aad11135d5f145655fd963b86e6  gcc/testsuite/gcc.dg/noncompile/va-arg-1.c
  22faeecb9b2619b4c2796b8fd40a3a76  gcc/testsuite/gcc.dg/noncompile/voidparam-1.c
*************** e65c0aad11135d5f145655fd963b86e6  gcc/te
*** 43596,43601 ****
--- 45687,45693 ----
  9922cca70be66c8b7ef7db9ddf403b59  gcc/testsuite/gcc.dg/nonnull-4.c
  f39bd472f690e3e2598e1924ee2b8d14  gcc/testsuite/gcc.dg/nonnull-5.c
  e1e1132fa7369727498c14f35a94281c  gcc/testsuite/gcc.dg/nonnull-6.c
+ fc042eaad3066a30b59b100c8d3fdb9c  gcc/testsuite/gcc.dg/nonnull-7.c
  3aaa6f3029122e1bc2b4026e23e9faf0  gcc/testsuite/gcc.dg/nop.h
  dae2d727f3381a38344f95d1d6efde7a  gcc/testsuite/gcc.dg/noreorder.c
  3e581c5222a4c527b62118185817b783  gcc/testsuite/gcc.dg/noreorder2.c
*************** e2c51fe1d974ad05661fe94550d25433  gcc/te
*** 43646,43654 ****
  15d3a8299e6cae5a8d42a26e2c2975ca  gcc/testsuite/gcc.dg/out-of-bounds-1.c
  d524cbf9b3805a6b9bbfc037661424cc  gcc/testsuite/gcc.dg/overflow-1.c
  1bef7f403044d1646079b0bf7ffe725c  gcc/testsuite/gcc.dg/overflow-2.c
! 6ab1c2ca708f065fbe0f869aa0ec1224  gcc/testsuite/gcc.dg/overflow-warn-1.c
! 78d622257fbab076a41391eef6d04031  gcc/testsuite/gcc.dg/overflow-warn-2.c
! ad340c212293170a71d90e58ff6eea45  gcc/testsuite/gcc.dg/overflow-warn-3.c
  50ebcc09894e2934fbb42f04be8a8139  gcc/testsuite/gcc.dg/overflow-warn-4.c
  25493248e01d4cc218ef219f90174985  gcc/testsuite/gcc.dg/overflow-warn-5.c
  00468c6e7128a9c553728d36cac76215  gcc/testsuite/gcc.dg/overflow-warn-6.c
--- 45738,45746 ----
  15d3a8299e6cae5a8d42a26e2c2975ca  gcc/testsuite/gcc.dg/out-of-bounds-1.c
  d524cbf9b3805a6b9bbfc037661424cc  gcc/testsuite/gcc.dg/overflow-1.c
  1bef7f403044d1646079b0bf7ffe725c  gcc/testsuite/gcc.dg/overflow-2.c
! ab8c52c1cdf3491322007d58712f27d2  gcc/testsuite/gcc.dg/overflow-warn-1.c
! d92c72c33ccc851b1cbf8c0de77ceb3e  gcc/testsuite/gcc.dg/overflow-warn-2.c
! 05b34e6d42e6430c12e592ef401024fd  gcc/testsuite/gcc.dg/overflow-warn-3.c
  50ebcc09894e2934fbb42f04be8a8139  gcc/testsuite/gcc.dg/overflow-warn-4.c
  25493248e01d4cc218ef219f90174985  gcc/testsuite/gcc.dg/overflow-warn-5.c
  00468c6e7128a9c553728d36cac76215  gcc/testsuite/gcc.dg/overflow-warn-6.c
*************** c508332c262788008c73edbcedf451b5  gcc/te
*** 43663,43673 ****
  c618f958af883e26030aeef384665b7a  gcc/testsuite/gcc.dg/pack-test-5.c
  ae1be7c8a9157aa5984b4ba25923b8e3  gcc/testsuite/gcc.dg/packed-array.c
  822ac96689508a423d828561e32cc2fb  gcc/testsuite/gcc.dg/packed-vla.c
! b817ca627688575b94c9dba877cb008f  gcc/testsuite/gcc.dg/param-type-mismatch.c
  ddeb76cd34e791893c0f539fdab879bb  gcc/testsuite/gcc.dg/params/LICENSE
  dbe49534045bebcd393d3d0d5ccec28a  gcc/testsuite/gcc.dg/params/README
! 86dede4ba9e425e8357eeabd89e5a7a9  gcc/testsuite/gcc.dg/params/blocksort-part.c
! 78302be1dc09444d3c24aa26118634d5  gcc/testsuite/gcc.dg/params/params.exp
  2bfe07faa645e00622fecd5d6eb93e5d  gcc/testsuite/gcc.dg/parm-forwdecl-1.c
  64cab05bc7533e03a76ec901dec2853f  gcc/testsuite/gcc.dg/parm-forwdecl-2.c
  acdeeb693086bdb4ca6cdde57d9eb91d  gcc/testsuite/gcc.dg/parm-forwdecl-3.c
--- 45755,45766 ----
  c618f958af883e26030aeef384665b7a  gcc/testsuite/gcc.dg/pack-test-5.c
  ae1be7c8a9157aa5984b4ba25923b8e3  gcc/testsuite/gcc.dg/packed-array.c
  822ac96689508a423d828561e32cc2fb  gcc/testsuite/gcc.dg/packed-vla.c
! 59043297eedad056999e984cd9dc5d69  gcc/testsuite/gcc.dg/param-type-mismatch-2.c
! 6bd42b2459fb4b0024685baff0c8edbd  gcc/testsuite/gcc.dg/param-type-mismatch.c
  ddeb76cd34e791893c0f539fdab879bb  gcc/testsuite/gcc.dg/params/LICENSE
  dbe49534045bebcd393d3d0d5ccec28a  gcc/testsuite/gcc.dg/params/README
! 2c554c73cf6c37c1b3931d6affe736a7  gcc/testsuite/gcc.dg/params/blocksort-part.c
! c80beeef7d48a2f24c7ffda47307d8af  gcc/testsuite/gcc.dg/params/params.exp
  2bfe07faa645e00622fecd5d6eb93e5d  gcc/testsuite/gcc.dg/parm-forwdecl-1.c
  64cab05bc7533e03a76ec901dec2853f  gcc/testsuite/gcc.dg/parm-forwdecl-2.c
  acdeeb693086bdb4ca6cdde57d9eb91d  gcc/testsuite/gcc.dg/parm-forwdecl-3.c
*************** b19f78cc8cfdc1d6a96b2f1f9d2b1da6  gcc/te
*** 43747,43753 ****
  b01e42858e0423266a42ce48f5963765  gcc/testsuite/gcc.dg/pch/macro-3.hs
  98eb40fd35afc99b8d7a0d9037913d4a  gcc/testsuite/gcc.dg/pch/macro-4.c
  9dfd3f4bded8093e1bd9fe58412b43c6  gcc/testsuite/gcc.dg/pch/macro-4.hs
! 1034c18d3eef301d7787058e72b714e2  gcc/testsuite/gcc.dg/pch/pch.exp
  d4141b7ac70c28b7c83f42cea80032d1  gcc/testsuite/gcc.dg/pch/pr66343-1.c
  fecd32092f1271edbd03eb98de866244  gcc/testsuite/gcc.dg/pch/pr66343-1.hs
  140e74992c61983f49deebe0a5a98c95  gcc/testsuite/gcc.dg/pch/pr66343-2.c
--- 45840,45850 ----
  b01e42858e0423266a42ce48f5963765  gcc/testsuite/gcc.dg/pch/macro-3.hs
  98eb40fd35afc99b8d7a0d9037913d4a  gcc/testsuite/gcc.dg/pch/macro-4.c
  9dfd3f4bded8093e1bd9fe58412b43c6  gcc/testsuite/gcc.dg/pch/macro-4.hs
! 38924a9508ec357e6f2e5a1cc2352b3d  gcc/testsuite/gcc.dg/pch/main-file-warnings.c
! 0694410f427657d40670c2499c1ff27c  gcc/testsuite/gcc.dg/pch/main-file-warnings.hs
! 3aa15254f06dd6c939f898b39ab1b402  gcc/testsuite/gcc.dg/pch/pch.exp
! 963bc3763085c2126d782eeeb9c7ab62  gcc/testsuite/gcc.dg/pch/pr112319.c
! 29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/gcc.dg/pch/pr112319.hs
  d4141b7ac70c28b7c83f42cea80032d1  gcc/testsuite/gcc.dg/pch/pr66343-1.c
  fecd32092f1271edbd03eb98de866244  gcc/testsuite/gcc.dg/pch/pr66343-1.hs
  140e74992c61983f49deebe0a5a98c95  gcc/testsuite/gcc.dg/pch/pr66343-2.c
*************** fac1b885206212e0bfdeb3be1bc37207  gcc/te
*** 43756,43761 ****
--- 45853,45860 ----
  1aa1688bedcfdaca9a0ec230ff4300a1  gcc/testsuite/gcc.dg/pch/pr66343-3.hs
  10e7aa3c9c88169c37fec51ab85d804b  gcc/testsuite/gcc.dg/pch/pushpop-1.c
  8dd7fa6bfb17e08908378d5179a15dcd  gcc/testsuite/gcc.dg/pch/pushpop-1.hs
+ eaf0e6d72d4b5414d63356d52ff4d656  gcc/testsuite/gcc.dg/pch/rwsr-pch.c
+ f35d8d222d6874128289556b09c05e73  gcc/testsuite/gcc.dg/pch/rwsr-pch.hs
  7005218423a218c5f4782184b74041c8  gcc/testsuite/gcc.dg/pch/save-temps-1.c
  2eac3fb5ef4057d96387db046e19ef2d  gcc/testsuite/gcc.dg/pch/save-temps-1.hs
  81a23065a357b947b990e7d22d20daed  gcc/testsuite/gcc.dg/pch/static-1.c
*************** fe461e61798a0b67d33eee3c428b8a1c  gcc/te
*** 43768,43776 ****
  d596db764e44964f1913b62908368dd5  gcc/testsuite/gcc.dg/pch/struct-1.hs
  e14f432a1fcbe132dba427a035e8309a  gcc/testsuite/gcc.dg/pch/system-1.c
  00c470b0510973ef43dacfaf4b849a74  gcc/testsuite/gcc.dg/pch/system-1.hs
! ddd836f40cbe15cbe8fbf6819c9c5db6  gcc/testsuite/gcc.dg/pch/valid-1.c
  5d442738a691e03a1889fa0d9f94329e  gcc/testsuite/gcc.dg/pch/valid-1.hs
! 08d2f31336df747768d4ad608b42606f  gcc/testsuite/gcc.dg/pch/valid-1b.c
  0c4739c81e44dd26b6eef0b501357e41  gcc/testsuite/gcc.dg/pch/valid-1b.hs
  16361b9c3c8646743b4b47e5111d3989  gcc/testsuite/gcc.dg/pch/valid-2.c
  2e8f6dc30261676da60951797852bbc4  gcc/testsuite/gcc.dg/pch/valid-2.hs
--- 45867,45875 ----
  d596db764e44964f1913b62908368dd5  gcc/testsuite/gcc.dg/pch/struct-1.hs
  e14f432a1fcbe132dba427a035e8309a  gcc/testsuite/gcc.dg/pch/system-1.c
  00c470b0510973ef43dacfaf4b849a74  gcc/testsuite/gcc.dg/pch/system-1.hs
! eb47b6dac8d27b7acdff704f288ba21a  gcc/testsuite/gcc.dg/pch/valid-1.c
  5d442738a691e03a1889fa0d9f94329e  gcc/testsuite/gcc.dg/pch/valid-1.hs
! eb9c763f412290606abc7b7179d39a30  gcc/testsuite/gcc.dg/pch/valid-1b.c
  0c4739c81e44dd26b6eef0b501357e41  gcc/testsuite/gcc.dg/pch/valid-1b.hs
  16361b9c3c8646743b4b47e5111d3989  gcc/testsuite/gcc.dg/pch/valid-2.c
  2e8f6dc30261676da60951797852bbc4  gcc/testsuite/gcc.dg/pch/valid-2.hs
*************** f765638f45ffbbeedb011e00c6425181  gcc/te
*** 43783,43812 ****
  b896794f81fc191be4cef03999d2a872  gcc/testsuite/gcc.dg/pch/warn-1.c
  581c36ee7a8e61fb33c629ef34ae8cf1  gcc/testsuite/gcc.dg/pch/warn-1.hs
  69d13c9ba46d3a3e9a7fb87a20a4bcf2  gcc/testsuite/gcc.dg/pedwarn-init.c
  53c37d9194064876f0e4cff1ae180761  gcc/testsuite/gcc.dg/pg-override.c
  53c37d9194064876f0e4cff1ae180761  gcc/testsuite/gcc.dg/pg.c
  f1072dd0acb0f7d06b0b1ef593b7b1cc  gcc/testsuite/gcc.dg/pic-1.c
! 9e29e867a9a1778af032970f4f41c31a  gcc/testsuite/gcc.dg/pic-2.c
  3fb15b43f77e2c2c948a15f8437476e4  gcc/testsuite/gcc.dg/pic-3.c
  08d8bf606d2349825433d688bb7b8259  gcc/testsuite/gcc.dg/pic-4.c
  1310eec5a596f6f3f1034c18543936a3  gcc/testsuite/gcc.dg/pic-macro-define.c
  de302da8d7737a4e96d474e241080339  gcc/testsuite/gcc.dg/pie-1.c
! e85ed22735e235dc5a9457487286d6f0  gcc/testsuite/gcc.dg/pie-2.c
  a1104a3ff24cf683d1a597e325c9f573  gcc/testsuite/gcc.dg/pie-3.c
  d9f2439f176b4f73afa0c30baa468855  gcc/testsuite/gcc.dg/pie-4.c
  17f4008aaadc7db4f869e804d77d753a  gcc/testsuite/gcc.dg/pie-5.c
  0debd1544970fb56a2a4a7828bb92d07  gcc/testsuite/gcc.dg/pie-6.c
! df1fb04645820cce9159c1b05e520fc7  gcc/testsuite/gcc.dg/pie-7.c
  72712f41dcc921ba1827000fc0809a9c  gcc/testsuite/gcc.dg/pie-link.c
  000d3a6c8dca7e54f5be771190d10f29  gcc/testsuite/gcc.dg/pie-static-1.c
  be052bceddbf752586b645bc9e048e9c  gcc/testsuite/gcc.dg/pie-static-2.c
! be7e44e725cbd4a51086ce42ce21698c  gcc/testsuite/gcc.dg/plugin/analyzer_gil_plugin.c
! a11f551bfc410c5fd7f2e4f9d40e8104  gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.c
! f7d1429adff33775f830febb9d10f825  gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.c
! d3483f3815d016c754ed9f76ac62ac34  gcc/testsuite/gcc.dg/plugin/copy_from_user-1.c
  7ce38991ee9680f25520e34f0eb8e02c  gcc/testsuite/gcc.dg/plugin/crash-test-ice-sarif.c
  25e14555a1456447b35858de17d08ee9  gcc/testsuite/gcc.dg/plugin/crash-test-ice-stderr.c
! d7d4781fbd9b6b93a0741c7ab9a91942  gcc/testsuite/gcc.dg/plugin/crash-test-write-though-null-sarif.c
  6a8964ce93ffc0bd30309c60194183b2  gcc/testsuite/gcc.dg/plugin/crash-test-write-though-null-stderr.c
  07e231a98872197c9ea4f93a023099fe  gcc/testsuite/gcc.dg/plugin/crash_test_plugin.c
  146ffa25d8a6444346ca2a51bfa748ec  gcc/testsuite/gcc.dg/plugin/diagnostic-group-test-1.c
--- 45882,45926 ----
  b896794f81fc191be4cef03999d2a872  gcc/testsuite/gcc.dg/pch/warn-1.c
  581c36ee7a8e61fb33c629ef34ae8cf1  gcc/testsuite/gcc.dg/pch/warn-1.hs
  69d13c9ba46d3a3e9a7fb87a20a4bcf2  gcc/testsuite/gcc.dg/pedwarn-init.c
+ 98ac7bdeef67de43ea5be3318707dea1  gcc/testsuite/gcc.dg/permerror-default.c
+ 283bdf08f9e5c1395be07d024b26dd35  gcc/testsuite/gcc.dg/permerror-fpermissive-nowarning.c
+ 66045a5ecaf682009459299205f86b84  gcc/testsuite/gcc.dg/permerror-fpermissive.c
+ b0065dc535719ec50565df230d182677  gcc/testsuite/gcc.dg/permerror-gnu89-nopermissive.c
+ 6ddeeae8665e98f41152e41830ac8182  gcc/testsuite/gcc.dg/permerror-gnu89-pedantic.c
+ 7503c6702eb1b48b8950652b73036be8  gcc/testsuite/gcc.dg/permerror-gnu89.c
+ b93f7039f542cb7c899a3af96273b3f5  gcc/testsuite/gcc.dg/permerror-noerror.c
+ ccddc9fbba3677088d9e65eb7d542de4  gcc/testsuite/gcc.dg/permerror-nowarning.c
+ 23169080c4526fbbad90b99bf9d34649  gcc/testsuite/gcc.dg/permerror-pedantic.c
+ aff42fd022e1da5e6f72d1a882a88323  gcc/testsuite/gcc.dg/permerror-system.c
  53c37d9194064876f0e4cff1ae180761  gcc/testsuite/gcc.dg/pg-override.c
  53c37d9194064876f0e4cff1ae180761  gcc/testsuite/gcc.dg/pg.c
  f1072dd0acb0f7d06b0b1ef593b7b1cc  gcc/testsuite/gcc.dg/pic-1.c
! e7f8739287177652901843bb49b729db  gcc/testsuite/gcc.dg/pic-2.c
  3fb15b43f77e2c2c948a15f8437476e4  gcc/testsuite/gcc.dg/pic-3.c
  08d8bf606d2349825433d688bb7b8259  gcc/testsuite/gcc.dg/pic-4.c
  1310eec5a596f6f3f1034c18543936a3  gcc/testsuite/gcc.dg/pic-macro-define.c
  de302da8d7737a4e96d474e241080339  gcc/testsuite/gcc.dg/pie-1.c
! d3b785ef540cb4e67cd67fada4080a39  gcc/testsuite/gcc.dg/pie-2.c
  a1104a3ff24cf683d1a597e325c9f573  gcc/testsuite/gcc.dg/pie-3.c
  d9f2439f176b4f73afa0c30baa468855  gcc/testsuite/gcc.dg/pie-4.c
  17f4008aaadc7db4f869e804d77d753a  gcc/testsuite/gcc.dg/pie-5.c
  0debd1544970fb56a2a4a7828bb92d07  gcc/testsuite/gcc.dg/pie-6.c
! 2db756126636737e343b6e63f0f96fcb  gcc/testsuite/gcc.dg/pie-7.c
  72712f41dcc921ba1827000fc0809a9c  gcc/testsuite/gcc.dg/pie-link.c
  000d3a6c8dca7e54f5be771190d10f29  gcc/testsuite/gcc.dg/pie-static-1.c
  be052bceddbf752586b645bc9e048e9c  gcc/testsuite/gcc.dg/pie-static-2.c
! e1ed42c4bc1c88149c85faa52b8067a9  gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.c
! 9c415433bc5a652381efaa59d7a31911  gcc/testsuite/gcc.dg/plugin/analyzer_gil_plugin.c
! 11fdb0f22cf9200df3d2c062fe870719  gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.c
! 19e35f702b7ccbc8d53b64e4f26b945a  gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.c
! cb4eac35bee8576a953631c035c2ff66  gcc/testsuite/gcc.dg/plugin/copy_from_user-1.c
! 47f23deacf7629644591a6e9f024a065  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_Append.c
! 77898c598fcadce69594a47533fa5d08  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyList_New.c
! ff7a88cd17d96503e8ecf7bfe494db6e  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-PyLong_FromLong.c
! bddc0bc123e5a7cbd3c2a7e87bda5fcd  gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-no-Python-h.c
  7ce38991ee9680f25520e34f0eb8e02c  gcc/testsuite/gcc.dg/plugin/crash-test-ice-sarif.c
  25e14555a1456447b35858de17d08ee9  gcc/testsuite/gcc.dg/plugin/crash-test-ice-stderr.c
! 3333d94ad6aeaef96f8f360fbb86bc40  gcc/testsuite/gcc.dg/plugin/crash-test-write-though-null-sarif.c
  6a8964ce93ffc0bd30309c60194183b2  gcc/testsuite/gcc.dg/plugin/crash-test-write-though-null-stderr.c
  07e231a98872197c9ea4f93a023099fe  gcc/testsuite/gcc.dg/plugin/crash_test_plugin.c
  146ffa25d8a6444346ca2a51bfa748ec  gcc/testsuite/gcc.dg/plugin/diagnostic-group-test-1.c
*************** c5d2a11e1172f48545387ed92bd56a11  gcc/te
*** 43824,43832 ****
  ce81f72fcd363c22f9fce9cd0b0c76b1  gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata.c
  a6a63e4d673f32d534d3afc18a7f8218  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-1.c
  2559315813eed7c53c721794d2abb2e6  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-2.c
! 38b2aa13fa65cc96be9b8cd14bde1ec1  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-3.c
  9c2ec1cc8d8b83dbb2bda70a9f54dcf4  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-4.c
  d69b80e0a539be7739a33736ee0e8aaf  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-5.c
  7049acd785444dd8554dd09b160777de  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v1.c
  d7b8d6a01abe683de027809614a2b63f  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v2.c
  d97d9296064e2548698cc70191b940fe  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c
--- 45938,45949 ----
  ce81f72fcd363c22f9fce9cd0b0c76b1  gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata.c
  a6a63e4d673f32d534d3afc18a7f8218  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-1.c
  2559315813eed7c53c721794d2abb2e6  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-2.c
! 5f17663596e733b7a39a6b737dc9ea56  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-3.c
  9c2ec1cc8d8b83dbb2bda70a9f54dcf4  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-4.c
  d69b80e0a539be7739a33736ee0e8aaf  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-5.c
+ 5e39276df00ec8320b4e62745c7f8884  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-inline-events.c
+ 15882a5a2b81645ce041c5415a4f7f92  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.c
+ afc9d2ee9a6e60022a97d974b2b241a9  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-separate-events.c
  7049acd785444dd8554dd09b160777de  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v1.c
  d7b8d6a01abe683de027809614a2b63f  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v2.c
  d97d9296064e2548698cc70191b940fe  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c
*************** bb20191ab0ad6e0d6ba368003d857339  gcc/te
*** 43842,43860 ****
  1a45355cf06403e775b5d7ab5b2a59f7  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-2.c
  9724706865aec183bf418db2220222c0  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-3.c
  9130ee71c624765ab112b75378ac96c0  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-4.c
! 72f6f67e826b1657a8d1c2b9fbfbf44c  gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.c
! b12fef6ecd628932a2da7d4367604327  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_show_trees.c
! 8d6b21a11d4a8a2c270dfdfc9254864a  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.c
  55c90f2e521240707723c45e6dbb1902  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.c
! 6450d67e283426f43fc8c8f502cd165c  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c
! a989a148e3bd656e85efc84c0ad59700  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
! d0a5e5c508f128e3073f77cee71cdf3a  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.c
! 4de49470f2aa7e4564980b292b26f49c  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.c
  07558668b4c054118c12c8514bb94698  gcc/testsuite/gcc.dg/plugin/dump-1.c
  88c83e306ac4f214fd9bc80a3eba0054  gcc/testsuite/gcc.dg/plugin/dump-2.c
  7427e09de26af0b57094c9728b35ea7d  gcc/testsuite/gcc.dg/plugin/dump_plugin.c
  3364b35e14d37af3ceb073f305b97409  gcc/testsuite/gcc.dg/plugin/expensive-selftests-1.c
! 8a629c0ce899fb209834c51965bc5bf3  gcc/testsuite/gcc.dg/plugin/expensive_selftests_plugin.c
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/finish_unit-test-1.c
  f73dcf28a556d348a80ecf63c3650bad  gcc/testsuite/gcc.dg/plugin/finish_unit_plugin.c
  232d54c69029a45c46660ba009ebdf28  gcc/testsuite/gcc.dg/plugin/ggcplug-test-1.c
--- 45959,45983 ----
  1a45355cf06403e775b5d7ab5b2a59f7  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-2.c
  9724706865aec183bf418db2220222c0  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-3.c
  9130ee71c624765ab112b75378ac96c0  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-4.c
! 08987f08fd10f0fa879fffef641b846b  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-ascii-bw.c
! 72d6b2f2eff9a4be2d6e7aa6ef5ce3e3  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-ascii-color.c
! ac52c5d4de0c71ac6754e0b97aa2d1aa  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-none.c
! 42f7a9a0ce93b9a8f3456309a30456af  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-unicode-bw.c
! 60342111ed9bfef70e8686e973bb3988  gcc/testsuite/gcc.dg/plugin/diagnostic-test-text-art-unicode-color.c
! 46d5c5647d51b1cf4e1ca4c64ee9ba2f  gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.c
! 10ccd3cf0ee076345e4a4996a5812ab6  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_show_trees.c
! db3e6ef9ec4da923b133090fdbe255cc  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.c
  55c90f2e521240707723c45e6dbb1902  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.c
! 98080798d15afb93bfdfa81a09458654  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c
! 0ca7d331a711c6a8a9a4380f33540040  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
! 1ccc719787fbe42fe419d1cbaff567f7  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.c
! b6d4440d9bc5c3c1e7f4a283f75cdff7  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.c
! 5717eba351963438141001f9817dac7f  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.c
  07558668b4c054118c12c8514bb94698  gcc/testsuite/gcc.dg/plugin/dump-1.c
  88c83e306ac4f214fd9bc80a3eba0054  gcc/testsuite/gcc.dg/plugin/dump-2.c
  7427e09de26af0b57094c9728b35ea7d  gcc/testsuite/gcc.dg/plugin/dump_plugin.c
  3364b35e14d37af3ceb073f305b97409  gcc/testsuite/gcc.dg/plugin/expensive-selftests-1.c
! e7f918119de388df3b7431c1eb465ace  gcc/testsuite/gcc.dg/plugin/expensive_selftests_plugin.c
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/finish_unit-test-1.c
  f73dcf28a556d348a80ecf63c3650bad  gcc/testsuite/gcc.dg/plugin/finish_unit_plugin.c
  232d54c69029a45c46660ba009ebdf28  gcc/testsuite/gcc.dg/plugin/ggcplug-test-1.c
*************** b05ae8584845daeb59ab2a2d859880ad  gcc/te
*** 43872,43877 ****
--- 45995,46003 ----
  1bf6e41b018b4dbc083435bfec8eca81  gcc/testsuite/gcc.dg/plugin/infoleak-antipatterns-1.c
  f22c386d32e16704e73e0ad284bf1ad1  gcc/testsuite/gcc.dg/plugin/infoleak-fixit-1.c
  02ffae050507325cf99ff537048a6e3c  gcc/testsuite/gcc.dg/plugin/infoleak-net-ethtool-ioctl.c
+ 943dd958fccd6601ad0d896830982ad8  gcc/testsuite/gcc.dg/plugin/infoleak-pr112969.c
+ 325d240bf4ab01e4f4a4816c0af921de  gcc/testsuite/gcc.dg/plugin/infoleak-uninit-size-1.c
+ 3063e30cdafbd67110bf3f451a2644d1  gcc/testsuite/gcc.dg/plugin/infoleak-uninit-size-2.c
  1a2a9877b17c3ce0a16c15c88640cc64  gcc/testsuite/gcc.dg/plugin/infoleak-vfio_iommu_type1.c
  4644aff4e3d9b41ef0b44eb441b3e574  gcc/testsuite/gcc.dg/plugin/known-fns-1.c
  d3e84ae842f69911a3ac0ceb96542627  gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c
*************** b584a46252319e63ce8a18cd3d89f07c  gcc/te
*** 43880,43892 ****
  8bc743f30102ffbfb1bc6a409fc63a2e  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173-2.h
  6d6028de00b79eb5be6f42b7a4332c90  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.c
  96ff609825b6520f9e9cc6f866930933  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.h
! d1539ad0fd49e9bb07ab30a1445bc9fb  gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.c
  c323b7b4ac0cf2caa641c6bb31350375  gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c
  de7a6b85ff1667e6ef4b89117e774f2d  gcc/testsuite/gcc.dg/plugin/must-tail-call-2.c
  4905199fc259967af414db22821f7f74  gcc/testsuite/gcc.dg/plugin/must_tail_call_plugin.c
  adbc6d60d6e1474ca93af3b50208e741  gcc/testsuite/gcc.dg/plugin/one_time-test-1.c
  91500c30c78de7048ecb72b86a431e80  gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
! 542804f26bfc1222c71283cbfe874800  gcc/testsuite/gcc.dg/plugin/plugin.exp
  10b87cc378ff8b6e30ae77af8c669e4b  gcc/testsuite/gcc.dg/plugin/plugindir1.c
  770fbe5bf2a65884c6120dab4b13a1d4  gcc/testsuite/gcc.dg/plugin/plugindir2.c
  5be673fb13573d3689c3cc3dff9f5a2e  gcc/testsuite/gcc.dg/plugin/plugindir3.c
--- 46006,46018 ----
  8bc743f30102ffbfb1bc6a409fc63a2e  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173-2.h
  6d6028de00b79eb5be6f42b7a4332c90  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.c
  96ff609825b6520f9e9cc6f866930933  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.h
! 7ed2331e1a7f3114d7589d237e39abde  gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.c
  c323b7b4ac0cf2caa641c6bb31350375  gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c
  de7a6b85ff1667e6ef4b89117e774f2d  gcc/testsuite/gcc.dg/plugin/must-tail-call-2.c
  4905199fc259967af414db22821f7f74  gcc/testsuite/gcc.dg/plugin/must_tail_call_plugin.c
  adbc6d60d6e1474ca93af3b50208e741  gcc/testsuite/gcc.dg/plugin/one_time-test-1.c
  91500c30c78de7048ecb72b86a431e80  gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
! 77079e24bd64da7841a69b1545b100bc  gcc/testsuite/gcc.dg/plugin/plugin.exp
  10b87cc378ff8b6e30ae77af8c669e4b  gcc/testsuite/gcc.dg/plugin/plugindir1.c
  770fbe5bf2a65884c6120dab4b13a1d4  gcc/testsuite/gcc.dg/plugin/plugindir2.c
  5be673fb13573d3689c3cc3dff9f5a2e  gcc/testsuite/gcc.dg/plugin/plugindir3.c
*************** efa708c21ad7551e498d6b97aa054cb5  gcc/te
*** 43899,43905 ****
  f932a68db380ed55129ab7dc6df6698a  gcc/testsuite/gcc.dg/plugin/poly-int-06_plugin.c
  751abadab9f4d44286f1ee12966ab705  gcc/testsuite/gcc.dg/plugin/poly-int-07_plugin.c
  57f33c5cba4ed25369a584b1ff775ed0  gcc/testsuite/gcc.dg/plugin/poly-int-test-1.c
! f43fc23479a723cf1e0c43c07823d2d0  gcc/testsuite/gcc.dg/plugin/poly-int-tests.h
  5d9a802715d28b4b62c9db362346bb3e  gcc/testsuite/gcc.dg/plugin/pr87562-a.h
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/plugin/pr87562-b.h
  dfb4077095a9a1767f9d3405363543a5  gcc/testsuite/gcc.dg/plugin/self-assign-test-1.c
--- 46025,46031 ----
  f932a68db380ed55129ab7dc6df6698a  gcc/testsuite/gcc.dg/plugin/poly-int-06_plugin.c
  751abadab9f4d44286f1ee12966ab705  gcc/testsuite/gcc.dg/plugin/poly-int-07_plugin.c
  57f33c5cba4ed25369a584b1ff775ed0  gcc/testsuite/gcc.dg/plugin/poly-int-test-1.c
! ecf889c1d7dbb40148c64cf892a125b3  gcc/testsuite/gcc.dg/plugin/poly-int-tests.h
  5d9a802715d28b4b62c9db362346bb3e  gcc/testsuite/gcc.dg/plugin/pr87562-a.h
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/plugin/pr87562-b.h
  dfb4077095a9a1767f9d3405363543a5  gcc/testsuite/gcc.dg/plugin/self-assign-test-1.c
*************** f6e137597dce4650ba1565206e539ea7  gcc/te
*** 43907,43924 ****
  e02805e9ce58a796cf7d12cfc4e32dc7  gcc/testsuite/gcc.dg/plugin/selfassign.c
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/start_unit-test-1.c
  64321dc1b161184739b07f96a1981ab5  gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
! dbb098adf2d5b48ac3a000abc8467144  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1-fixed.c
! 5c2013df18e4e995b824b24046c49fc1  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1.c
! 75ced7cee07d6c06cd2c77b07cff0426  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2-fixed.c
! 9547d28a2fec3c60a37f846b2af9cfdf  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2.c
! df6a93e07c1b85f6e0a87c611b64ca47  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-3-fixed.c
! 121da33372989db0ee2b31a02a05b788  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-3.c
! 9ce297064cb02b7f00a9a6199aee0d69  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-4.c
! c2d8aa5a6d357f555e63e55c889dd7fa  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-5-fixed.c
! 811331dbdc9c1a30c41c5f7f8ae5bb67  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-5.c
! 332fe157f957c46be4d8f317244e1d34  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-6.c
  6197eb6a55be4bb0911aef2bdace74a3  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521.h
! 96166fb1ce38c2715288ab82a00bed60  gcc/testsuite/gcc.dg/plugin/taint-antipatterns-1.c
  8432194cb08e7a4a524b574b0b640535  gcc/testsuite/gcc.dg/plugin/test-uaccess.h
  0085c872ae54e8abe011c707f4b59882  gcc/testsuite/gcc.dg/plugin/wide-int-test-1.c
  8afb11ca2fdffe4c8ee020a4c15c0e25  gcc/testsuite/gcc.dg/plugin/wide-int_plugin.c
--- 46033,46059 ----
  e02805e9ce58a796cf7d12cfc4e32dc7  gcc/testsuite/gcc.dg/plugin/selfassign.c
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/start_unit-test-1.c
  64321dc1b161184739b07f96a1981ab5  gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
! 00a1b96bbcffd09bac3474dd95024a53  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1-fixed.c
! 23796e19f3d5fa6dd7da57577c891b75  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1.c
! 88e4aa7c8e5b18cfd476fd5ab8d06ff8  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2-fixed.c
! cbd89d756b5f463bbe5be755ed908419  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2.c
! 8c9bec8bc8bea98bf35a805c9f8df3fa  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-3-fixed.c
! 7d2b46bc2006000cdb582d349d6a3e80  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-3.c
! 689c95636d18f706f49c4a087dac4c83  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-4.c
! 4582e7792d09d041b5f0dfb8f54035e3  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-5-fixed.c
! 2585c684f9382084f67b31a783230688  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-5.c
! c3b2df2d08297b00430498f9bb8ba530  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-6.c
  6197eb6a55be4bb0911aef2bdace74a3  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521.h
! c1a578dbfc8ffb7d4721396689b33c19  gcc/testsuite/gcc.dg/plugin/taint-antipatterns-1.c
! f2c52ae1d377095c434748afcd91b675  gcc/testsuite/gcc.dg/plugin/taint-modulus.c
! 4afd7887a8997709037b71e2ef67f3d8  gcc/testsuite/gcc.dg/plugin/taint-pr112850-precise.c
! fee49b17633c5728f24afc848db018d3  gcc/testsuite/gcc.dg/plugin/taint-pr112850-too-complex.c
! ab90a57b9447cc9bb60c34f5be763ba6  gcc/testsuite/gcc.dg/plugin/taint-pr112850-unsanitized.c
! 7d45017453a6982b93404b647076e465  gcc/testsuite/gcc.dg/plugin/taint-pr112850.c
! e375ae0fb9e58470ad097820ae515e6a  gcc/testsuite/gcc.dg/plugin/taint-pr112927.c
! 80638b300518f1017e5c81ccc529aeeb  gcc/testsuite/gcc.dg/plugin/taint-pr112974.c
! cde77cccdd4200c20b184e23ad8888a2  gcc/testsuite/gcc.dg/plugin/taint-pr112975.c
! 87888cf76c02ea963a02cf893bb01f3c  gcc/testsuite/gcc.dg/plugin/taint-pr112977.c
  8432194cb08e7a4a524b574b0b640535  gcc/testsuite/gcc.dg/plugin/test-uaccess.h
  0085c872ae54e8abe011c707f4b59882  gcc/testsuite/gcc.dg/plugin/wide-int-test-1.c
  8afb11ca2fdffe4c8ee020a4c15c0e25  gcc/testsuite/gcc.dg/plugin/wide-int_plugin.c
*************** d1af5b003a508a2d28e4373e2cab8c24  gcc/te
*** 43932,43939 ****
  ce11f2489f1fcb28d7e75b367bd7e130  gcc/testsuite/gcc.dg/pointer-arith-7.c
  c55115022c217aa6026425a6847a9846  gcc/testsuite/gcc.dg/pointer-arith-8.c
  cec4c2edab704d04ba9649b787ed5274  gcc/testsuite/gcc.dg/pointer-arith-9.c
! 42290d08dbf6f913b532061d99a25d7b  gcc/testsuite/gcc.dg/pointer-array-atomic.c
! f899fb155519fb6812ec325a0c6f9618  gcc/testsuite/gcc.dg/pointer-array-quals-1.c
  d7d0ec9427f5c578b1a1539d6c4107cf  gcc/testsuite/gcc.dg/pointer-array-quals-2.c
  098a9eb0b304a107d7e16d34e57694dd  gcc/testsuite/gcc.dg/pointer-range-check-1.c
  f5883b8a2323e7318237e3750e037d52  gcc/testsuite/gcc.dg/pointer-range-check-2.c
--- 46067,46075 ----
  ce11f2489f1fcb28d7e75b367bd7e130  gcc/testsuite/gcc.dg/pointer-arith-7.c
  c55115022c217aa6026425a6847a9846  gcc/testsuite/gcc.dg/pointer-arith-8.c
  cec4c2edab704d04ba9649b787ed5274  gcc/testsuite/gcc.dg/pointer-arith-9.c
! 65456225fab08ebfa295e644e7378302  gcc/testsuite/gcc.dg/pointer-array-atomic-2.c
! b667b5f1f8c62505fc01d9178b47459d  gcc/testsuite/gcc.dg/pointer-array-atomic.c
! 40af08aff371e27231863e7e54014bf6  gcc/testsuite/gcc.dg/pointer-array-quals-1.c
  d7d0ec9427f5c578b1a1539d6c4107cf  gcc/testsuite/gcc.dg/pointer-array-quals-2.c
  098a9eb0b304a107d7e16d34e57694dd  gcc/testsuite/gcc.dg/pointer-range-check-1.c
  f5883b8a2323e7318237e3750e037d52  gcc/testsuite/gcc.dg/pointer-range-check-2.c
*************** f5883b8a2323e7318237e3750e037d52  gcc/te
*** 43943,43973 ****
  fd3265437095da6aff9d665f55b837b2  gcc/testsuite/gcc.dg/pow-sqrt-3.c
  d0f47c969958818a7b10cdf3e0a873d7  gcc/testsuite/gcc.dg/pow-sqrt-synth-1.c
  e037582257371f62a3a039df4321225d  gcc/testsuite/gcc.dg/pow-sqrt.x
! ecd4e45106744489e5a78254ca44d88a  gcc/testsuite/gcc.dg/pr100142.c
  0869c29788d11616cd48af5ae7173721  gcc/testsuite/gcc.dg/pr100225.c
  1297b760f49fded84008e039bc67829a  gcc/testsuite/gcc.dg/pr100239.c
! a7ccf39acb8caab020a0ba6554bb69f7  gcc/testsuite/gcc.dg/pr100292.c
! db661ade03c7d38cab8e4ca47f631e4c  gcc/testsuite/gcc.dg/pr100349.c
  633c569152621a26f5adb2fd40949b36  gcc/testsuite/gcc.dg/pr100373.c
  5ca809ef622425c422640fc82af912d6  gcc/testsuite/gcc.dg/pr100414.c
  0427d40b4e082cce256dba416ad5965d  gcc/testsuite/gcc.dg/pr100464.c
  920a8638d9df8cce219be521aa35bf72  gcc/testsuite/gcc.dg/pr100509.c
! 1a84b827f9521de18b59f87f40ef6d18  gcc/testsuite/gcc.dg/pr100512.c
  11146764fafb29a1319cb0b5d9f09044  gcc/testsuite/gcc.dg/pr100520.c
  380f5ed401661497e77142772a24054a  gcc/testsuite/gcc.dg/pr100521.c
  580ac919e1954ba779b2269203b11211  gcc/testsuite/gcc.dg/pr100547.c
  395736a8e0816a51c506968c1ca01f5d  gcc/testsuite/gcc.dg/pr100563.c
! 6daa69c8cca8c36c6357499a855a73b9  gcc/testsuite/gcc.dg/pr100590.c
  b6d7f7ed4dde3865c140de6c031f2bda  gcc/testsuite/gcc.dg/pr100619.c
  3a4aa573e35026433b0c5710fc8ceed0  gcc/testsuite/gcc.dg/pr100680.c
  74d2cc6d66d3dd7e2d623ddcf80111a2  gcc/testsuite/gcc.dg/pr100781.c
  a79b25dcfa2c7136ecdca2ad37927dff  gcc/testsuite/gcc.dg/pr100788.c
! 807e819f46c5553946b5fd3987e81c9f  gcc/testsuite/gcc.dg/pr100790.c
! 5e25293a3107689203988f78c03ea859  gcc/testsuite/gcc.dg/pr100791.c
  62ea3571a0a58e5eef07826715647995  gcc/testsuite/gcc.dg/pr100834.c
  a022ade94980f9c4caf7f7f509f932d4  gcc/testsuite/gcc.dg/pr100843.c
  474ed168e6f6888faee6cd5ce80997dc  gcc/testsuite/gcc.dg/pr100887.c
! e280e3138d3f866451e5f7c69bf2af22  gcc/testsuite/gcc.dg/pr101008.c
  0d03fd02d95149f8c7d54f57fbe17c9a  gcc/testsuite/gcc.dg/pr101028.c
  b20e922d857d70fc849642b04d8aef50  gcc/testsuite/gcc.dg/pr101062.c
  2acf2b8e09ad9bce35eeea4f93f5ebde  gcc/testsuite/gcc.dg/pr101145-1.c
--- 46079,46110 ----
  fd3265437095da6aff9d665f55b837b2  gcc/testsuite/gcc.dg/pow-sqrt-3.c
  d0f47c969958818a7b10cdf3e0a873d7  gcc/testsuite/gcc.dg/pow-sqrt-synth-1.c
  e037582257371f62a3a039df4321225d  gcc/testsuite/gcc.dg/pow-sqrt.x
! 4a843b8a906276e6a40c22d05fb6a8e1  gcc/testsuite/gcc.dg/pr100142.c
  0869c29788d11616cd48af5ae7173721  gcc/testsuite/gcc.dg/pr100225.c
  1297b760f49fded84008e039bc67829a  gcc/testsuite/gcc.dg/pr100239.c
! 0f83e7c9f809d3279fa6049fdf043f1e  gcc/testsuite/gcc.dg/pr100292.c
! 30bd1d581d3df78bbe6e79d3c9a0315e  gcc/testsuite/gcc.dg/pr100349.c
  633c569152621a26f5adb2fd40949b36  gcc/testsuite/gcc.dg/pr100373.c
  5ca809ef622425c422640fc82af912d6  gcc/testsuite/gcc.dg/pr100414.c
  0427d40b4e082cce256dba416ad5965d  gcc/testsuite/gcc.dg/pr100464.c
  920a8638d9df8cce219be521aa35bf72  gcc/testsuite/gcc.dg/pr100509.c
! fc99474ef3ac8fa598ea826d59670dc2  gcc/testsuite/gcc.dg/pr100512.c
  11146764fafb29a1319cb0b5d9f09044  gcc/testsuite/gcc.dg/pr100520.c
  380f5ed401661497e77142772a24054a  gcc/testsuite/gcc.dg/pr100521.c
+ 36e693228da2bb6b5e8c1b1986bf3559  gcc/testsuite/gcc.dg/pr100532-1.c
  580ac919e1954ba779b2269203b11211  gcc/testsuite/gcc.dg/pr100547.c
  395736a8e0816a51c506968c1ca01f5d  gcc/testsuite/gcc.dg/pr100563.c
! e36a40c977fe9c4991f19ab3daddc703  gcc/testsuite/gcc.dg/pr100590.c
  b6d7f7ed4dde3865c140de6c031f2bda  gcc/testsuite/gcc.dg/pr100619.c
  3a4aa573e35026433b0c5710fc8ceed0  gcc/testsuite/gcc.dg/pr100680.c
  74d2cc6d66d3dd7e2d623ddcf80111a2  gcc/testsuite/gcc.dg/pr100781.c
  a79b25dcfa2c7136ecdca2ad37927dff  gcc/testsuite/gcc.dg/pr100788.c
! a4455e1e1eaac09914d9c2fe95bd8a57  gcc/testsuite/gcc.dg/pr100790.c
! 9f45e5f9c38c0bff5406d559152ab7c4  gcc/testsuite/gcc.dg/pr100791.c
  62ea3571a0a58e5eef07826715647995  gcc/testsuite/gcc.dg/pr100834.c
  a022ade94980f9c4caf7f7f509f932d4  gcc/testsuite/gcc.dg/pr100843.c
  474ed168e6f6888faee6cd5ce80997dc  gcc/testsuite/gcc.dg/pr100887.c
! 5c6fec9e76cca693e1a702f5bb6843bf  gcc/testsuite/gcc.dg/pr101008.c
  0d03fd02d95149f8c7d54f57fbe17c9a  gcc/testsuite/gcc.dg/pr101028.c
  b20e922d857d70fc849642b04d8aef50  gcc/testsuite/gcc.dg/pr101062.c
  2acf2b8e09ad9bce35eeea4f93f5ebde  gcc/testsuite/gcc.dg/pr101145-1.c
*************** f18acedefe9e23843bfc481cdeb419ad  gcc/te
*** 43976,44000 ****
  7952b8b6d14ea9a6e15744297329db7c  gcc/testsuite/gcc.dg/pr101170.c
  f7653fb72f02585ca98c4cb008a53e32  gcc/testsuite/gcc.dg/pr101171.c
  ce4c9d39348d671d75f2c9b6009262fb  gcc/testsuite/gcc.dg/pr101172.c
  36e682a40ce779df8943180980917338  gcc/testsuite/gcc.dg/pr101223.c
  d98596956367fc29b9341da6c0f03f55  gcc/testsuite/gcc.dg/pr101254.c
  2eebdeb5aef44432de1498de14cbf4e6  gcc/testsuite/gcc.dg/pr101266.c
  cbe7e390158f186ae3fd0f808bea7563  gcc/testsuite/gcc.dg/pr101294.c
  70303171ed7f5b2cba05e6b98daad2ab  gcc/testsuite/gcc.dg/pr101384.c
  566100ed369cb8ddbb77ca59ac7f4416  gcc/testsuite/gcc.dg/pr101403.c
  cf17d565e22770879e54b6d0b5f98c72  gcc/testsuite/gcc.dg/pr101419.c
  51fa849c28379b9795b20cbcf5bd8067  gcc/testsuite/gcc.dg/pr101496.c
  82ba8f6dfa7a7a8e6eb6d73d5c8df572  gcc/testsuite/gcc.dg/pr101497.c
  fea990856f92887377e1bb43b4bd09e3  gcc/testsuite/gcc.dg/pr101741.c
! 07ef659451572ce97fd0afbe444142e4  gcc/testsuite/gcc.dg/pr101836.c
! 0703faa789a431b6ad04398656468f62  gcc/testsuite/gcc.dg/pr101836_1.c
! d55157cee78d06e4d19028939549708f  gcc/testsuite/gcc.dg/pr101836_2.c
! 0b0050222d217ad74a3d8cd1b277c371  gcc/testsuite/gcc.dg/pr101836_3.c
  9e8cbfa3dac14212a1985707843f0f36  gcc/testsuite/gcc.dg/pr101836_4.c
  5b8385c501579191610e18648375493b  gcc/testsuite/gcc.dg/pr101836_5.c
  b4b433110fcae56d605360d13c82f748  gcc/testsuite/gcc.dg/pr101858.c
  dc76b4ca81299363e06ffe39774d173b  gcc/testsuite/gcc.dg/pr101885.c
  f116a7bdcdcc6c4004a71ae0ab006702  gcc/testsuite/gcc.dg/pr101938.c
  4640a42a8aab285b13749e2a10e874c2  gcc/testsuite/gcc.dg/pr102009.c
  6f23cea214b7364e2f86ece7e773f066  gcc/testsuite/gcc.dg/pr102087.c
  be9ddb035cc83ea1227c7930f1a36f1b  gcc/testsuite/gcc.dg/pr102087_1.c
--- 46113,46141 ----
  7952b8b6d14ea9a6e15744297329db7c  gcc/testsuite/gcc.dg/pr101170.c
  f7653fb72f02585ca98c4cb008a53e32  gcc/testsuite/gcc.dg/pr101171.c
  ce4c9d39348d671d75f2c9b6009262fb  gcc/testsuite/gcc.dg/pr101172.c
+ 079a11028b94d6bab58434f2747d04e0  gcc/testsuite/gcc.dg/pr101195.c
  36e682a40ce779df8943180980917338  gcc/testsuite/gcc.dg/pr101223.c
  d98596956367fc29b9341da6c0f03f55  gcc/testsuite/gcc.dg/pr101254.c
  2eebdeb5aef44432de1498de14cbf4e6  gcc/testsuite/gcc.dg/pr101266.c
+ a7ea71615239b0d5a09bdb20e483a02f  gcc/testsuite/gcc.dg/pr101285-1.c
  cbe7e390158f186ae3fd0f808bea7563  gcc/testsuite/gcc.dg/pr101294.c
+ a03b0a2a9da12c5aa5f258d44f7cba03  gcc/testsuite/gcc.dg/pr101364-1.c
  70303171ed7f5b2cba05e6b98daad2ab  gcc/testsuite/gcc.dg/pr101384.c
  566100ed369cb8ddbb77ca59ac7f4416  gcc/testsuite/gcc.dg/pr101403.c
  cf17d565e22770879e54b6d0b5f98c72  gcc/testsuite/gcc.dg/pr101419.c
  51fa849c28379b9795b20cbcf5bd8067  gcc/testsuite/gcc.dg/pr101496.c
  82ba8f6dfa7a7a8e6eb6d73d5c8df572  gcc/testsuite/gcc.dg/pr101497.c
  fea990856f92887377e1bb43b4bd09e3  gcc/testsuite/gcc.dg/pr101741.c
! 8225e58fc7ef9fae633ca49441368076  gcc/testsuite/gcc.dg/pr101836.c
! 38ffb12d376480ac944d2ced081b3ff0  gcc/testsuite/gcc.dg/pr101836_1.c
! d144a274da007edfb1d7834db7e46279  gcc/testsuite/gcc.dg/pr101836_2.c
! 8b6a741ae180d4a23450733ee68d6e01  gcc/testsuite/gcc.dg/pr101836_3.c
  9e8cbfa3dac14212a1985707843f0f36  gcc/testsuite/gcc.dg/pr101836_4.c
  5b8385c501579191610e18648375493b  gcc/testsuite/gcc.dg/pr101836_5.c
  b4b433110fcae56d605360d13c82f748  gcc/testsuite/gcc.dg/pr101858.c
  dc76b4ca81299363e06ffe39774d173b  gcc/testsuite/gcc.dg/pr101885.c
  f116a7bdcdcc6c4004a71ae0ab006702  gcc/testsuite/gcc.dg/pr101938.c
+ 4a91904a5bb2c5571535820f28263d3f  gcc/testsuite/gcc.dg/pr101955.c
  4640a42a8aab285b13749e2a10e874c2  gcc/testsuite/gcc.dg/pr102009.c
  6f23cea214b7364e2f86ece7e773f066  gcc/testsuite/gcc.dg/pr102087.c
  be9ddb035cc83ea1227c7930f1a36f1b  gcc/testsuite/gcc.dg/pr102087_1.c
*************** afb36cfd0415d59db229d4058c30853f  gcc/te
*** 44006,44012 ****
  19014f75a82495dc3a06436ef24a4424  gcc/testsuite/gcc.dg/pr102269.c
  a8b0cac4c5b824611e6fc2a6a978218a  gcc/testsuite/gcc.dg/pr102273.c
  0bb85c23ffa7496538a767244947fdb2  gcc/testsuite/gcc.dg/pr102356.c
! 3bd1b7702c370684690afe5b0a42cc7a  gcc/testsuite/gcc.dg/pr102385.c
  18cfd35dbe31380111f765852cb9f992  gcc/testsuite/gcc.dg/pr102463.c
  91844853e35a7b41b30a3460cc946f81  gcc/testsuite/gcc.dg/pr102478.c
  3eb7714752e61f1a5b88bd014f660753  gcc/testsuite/gcc.dg/pr102511.c
--- 46147,46153 ----
  19014f75a82495dc3a06436ef24a4424  gcc/testsuite/gcc.dg/pr102269.c
  a8b0cac4c5b824611e6fc2a6a978218a  gcc/testsuite/gcc.dg/pr102273.c
  0bb85c23ffa7496538a767244947fdb2  gcc/testsuite/gcc.dg/pr102356.c
! 7294d52b49fbc203ebe824db860430a1  gcc/testsuite/gcc.dg/pr102385.c
  18cfd35dbe31380111f765852cb9f992  gcc/testsuite/gcc.dg/pr102463.c
  91844853e35a7b41b30a3460cc946f81  gcc/testsuite/gcc.dg/pr102478.c
  3eb7714752e61f1a5b88bd014f660753  gcc/testsuite/gcc.dg/pr102511.c
*************** ef83c05a9501eeb220dfbcfbe176575e  gcc/te
*** 44023,44039 ****
  3cc3131778a8709d2331de3fa630fd84  gcc/testsuite/gcc.dg/pr102892-2.c
  c045562529677f5cb7d484f9a1528485  gcc/testsuite/gcc.dg/pr102897.c
  c8eff45b51c94e89b3b09b1a17943808  gcc/testsuite/gcc.dg/pr102950.c
! 1eeb7a06e5c02c8e753d91ead59c0fde  gcc/testsuite/gcc.dg/pr102983.c
! 29252f4cd0235dafa4a0aa5783ea4e2a  gcc/testsuite/gcc.dg/pr103003.c
  11b2d6d5fe2e6b7e01f567ce3bb16ad4  gcc/testsuite/gcc.dg/pr103028.c
  7ee0c5d807884f2fbee926b391d31764  gcc/testsuite/gcc.dg/pr103062.c
  38ac28313fdaa17d5b23a808fee208fa  gcc/testsuite/gcc.dg/pr103075.c
! 0ffb8c2a4389f13a8ac32b504c74e0af  gcc/testsuite/gcc.dg/pr103079.c
! c19ee3365ada1f12fda3434fa13c9e18  gcc/testsuite/gcc.dg/pr103093.c
  30a42998bf1b9ceacc63df2e0d3579ee  gcc/testsuite/gcc.dg/pr103120.c
  1c1761666d4d7bf6b7ae8bf9eb6803e9  gcc/testsuite/gcc.dg/pr103184-1.c
  a267d764dfe830b81c1bd01e3f9e9e3d  gcc/testsuite/gcc.dg/pr103184-2.c
! 12bee52c4f95b7f01f53835ae5a2bd1c  gcc/testsuite/gcc.dg/pr103207.c
  07cb3100d5ce6854d6cbd6fdbf4119ad  gcc/testsuite/gcc.dg/pr103222.c
  403235552bc51decc6aaf0f2f60e8721  gcc/testsuite/gcc.dg/pr103248.c
  d8eb2a227e52aa5ee92bca485c5024a1  gcc/testsuite/gcc.dg/pr103254.c
--- 46164,46180 ----
  3cc3131778a8709d2331de3fa630fd84  gcc/testsuite/gcc.dg/pr102892-2.c
  c045562529677f5cb7d484f9a1528485  gcc/testsuite/gcc.dg/pr102897.c
  c8eff45b51c94e89b3b09b1a17943808  gcc/testsuite/gcc.dg/pr102950.c
! bdd6d43d4d29c6364c8fcfdc04dc9dc7  gcc/testsuite/gcc.dg/pr102983.c
! 788d5650aced9b0553d7571feda572c6  gcc/testsuite/gcc.dg/pr103003.c
  11b2d6d5fe2e6b7e01f567ce3bb16ad4  gcc/testsuite/gcc.dg/pr103028.c
  7ee0c5d807884f2fbee926b391d31764  gcc/testsuite/gcc.dg/pr103062.c
  38ac28313fdaa17d5b23a808fee208fa  gcc/testsuite/gcc.dg/pr103075.c
! 175be8f288189f6410ddede00f018563  gcc/testsuite/gcc.dg/pr103079.c
! 307161fc7e53e4ed925d463ca8fed73d  gcc/testsuite/gcc.dg/pr103093.c
  30a42998bf1b9ceacc63df2e0d3579ee  gcc/testsuite/gcc.dg/pr103120.c
  1c1761666d4d7bf6b7ae8bf9eb6803e9  gcc/testsuite/gcc.dg/pr103184-1.c
  a267d764dfe830b81c1bd01e3f9e9e3d  gcc/testsuite/gcc.dg/pr103184-2.c
! 4b65b23c38403dba1462e256547be35e  gcc/testsuite/gcc.dg/pr103207.c
  07cb3100d5ce6854d6cbd6fdbf4119ad  gcc/testsuite/gcc.dg/pr103222.c
  403235552bc51decc6aaf0f2f60e8721  gcc/testsuite/gcc.dg/pr103248.c
  d8eb2a227e52aa5ee92bca485c5024a1  gcc/testsuite/gcc.dg/pr103254.c
*************** b96dd7512bd361f35bb0182715a8b4ab  gcc/te
*** 44046,44056 ****
  250254752bed666b5d72300a0db5cab9  gcc/testsuite/gcc.dg/pr103406.c
  2cdc02ab045994a9364118673417319d  gcc/testsuite/gcc.dg/pr103431.c
  8f046257827d0744ed22e0e47b099fd3  gcc/testsuite/gcc.dg/pr103440.c
! f339e15d0bfc50d3400a3fcd67b1e48f  gcc/testsuite/gcc.dg/pr103451.c
  215f4c416db7a94099775c055a43c1f4  gcc/testsuite/gcc.dg/pr103485.c
  5cf580820aedc778e4de76262078142d  gcc/testsuite/gcc.dg/pr103587.c
  935af8248001b82d641b2af34c047572  gcc/testsuite/gcc.dg/pr103594.c
! 18e73d7fe225bed88611a5c17d298a3f  gcc/testsuite/gcc.dg/pr103721-2.c
  8d33e065fb7ed80e1325731c58eaa0a2  gcc/testsuite/gcc.dg/pr103721.c
  07e7c1461840964f3ae4ee460ab89407  gcc/testsuite/gcc.dg/pr103770.c
  22d5541869a19caa77db2bab79e6fe3b  gcc/testsuite/gcc.dg/pr103775.c
--- 46187,46197 ----
  250254752bed666b5d72300a0db5cab9  gcc/testsuite/gcc.dg/pr103406.c
  2cdc02ab045994a9364118673417319d  gcc/testsuite/gcc.dg/pr103431.c
  8f046257827d0744ed22e0e47b099fd3  gcc/testsuite/gcc.dg/pr103440.c
! ef462e83823ce9bd63281a8ed065fe88  gcc/testsuite/gcc.dg/pr103451.c
  215f4c416db7a94099775c055a43c1f4  gcc/testsuite/gcc.dg/pr103485.c
  5cf580820aedc778e4de76262078142d  gcc/testsuite/gcc.dg/pr103587.c
  935af8248001b82d641b2af34c047572  gcc/testsuite/gcc.dg/pr103594.c
! 4edf26fe82d04fc996582e31aab4436e  gcc/testsuite/gcc.dg/pr103721-2.c
  8d33e065fb7ed80e1325731c58eaa0a2  gcc/testsuite/gcc.dg/pr103721.c
  07e7c1461840964f3ae4ee460ab89407  gcc/testsuite/gcc.dg/pr103770.c
  22d5541869a19caa77db2bab79e6fe3b  gcc/testsuite/gcc.dg/pr103775.c
*************** e5a36e1443ebdb69deb9b43102e8e931  gcc/te
*** 44063,44069 ****
  a4874d44c0ba05d6340ed06bc5958e53  gcc/testsuite/gcc.dg/pr103860.c
  8226e377d45ef0ffeb7badfb04740ab9  gcc/testsuite/gcc.dg/pr10392-1.c
  63c1519148bdbf875d5e04e0ba238c3d  gcc/testsuite/gcc.dg/pr103961.c
! c44c16ebd6ce7796016eb65295c4740d  gcc/testsuite/gcc.dg/pr104198.c
  274592903ac1b8bb26cb04aaeb7bceb4  gcc/testsuite/gcc.dg/pr104263.c
  6cdf5f889cfeab1185ff2396685e6d88  gcc/testsuite/gcc.dg/pr104288.c
  d4b1991f3f45c9ebd1cf3709240914be  gcc/testsuite/gcc.dg/pr104380.c
--- 46204,46210 ----
  a4874d44c0ba05d6340ed06bc5958e53  gcc/testsuite/gcc.dg/pr103860.c
  8226e377d45ef0ffeb7badfb04740ab9  gcc/testsuite/gcc.dg/pr10392-1.c
  63c1519148bdbf875d5e04e0ba238c3d  gcc/testsuite/gcc.dg/pr103961.c
! 4794bcb3179f7ffe41fbe7b648f1f6cc  gcc/testsuite/gcc.dg/pr104198.c
  274592903ac1b8bb26cb04aaeb7bceb4  gcc/testsuite/gcc.dg/pr104263.c
  6cdf5f889cfeab1185ff2396685e6d88  gcc/testsuite/gcc.dg/pr104288.c
  d4b1991f3f45c9ebd1cf3709240914be  gcc/testsuite/gcc.dg/pr104380.c
*************** a5833b8dc2703b241e6699df2222f98c  gcc/te
*** 44094,44106 ****
  d8ac6e8cccf7bcb1070140ae44ef117a  gcc/testsuite/gcc.dg/pr10474.c
  2968ba86ec9be073192c7975ec531fb3  gcc/testsuite/gcc.dg/pr104786.c
  8c0ed1baab74c7b05d89e60fb2786609  gcc/testsuite/gcc.dg/pr104910.c
  624cf1d4b1b58ba0e2c492d29bba7754  gcc/testsuite/gcc.dg/pr104975.c
! 9f7acbb30f08c556606caa81d9d748e9  gcc/testsuite/gcc.dg/pr104992.c
  b86dfb95591cedd4e8f9612c0d76e923  gcc/testsuite/gcc.dg/pr105049.c
  f6daf3140a9707899657962982ad2826  gcc/testsuite/gcc.dg/pr105065.c
  d08f59d459c7f9fa390c668c1f6b2b4f  gcc/testsuite/gcc.dg/pr105080.c
  f8d1a8342ac7db3ad1336ab098edd372  gcc/testsuite/gcc.dg/pr105094.c
! 194a2dad6f902fdbaa5355dc3fa0ebe6  gcc/testsuite/gcc.dg/pr105140.c
  6ee7b97cec7b16eb8ec9815bf5468fdc  gcc/testsuite/gcc.dg/pr105149.c
  4fcf5458586095c916f824d7fa09fad0  gcc/testsuite/gcc.dg/pr105150.c
  299f6a400b7fb5db65f2901e5285cc2c  gcc/testsuite/gcc.dg/pr105165.c
--- 46235,46248 ----
  d8ac6e8cccf7bcb1070140ae44ef117a  gcc/testsuite/gcc.dg/pr10474.c
  2968ba86ec9be073192c7975ec531fb3  gcc/testsuite/gcc.dg/pr104786.c
  8c0ed1baab74c7b05d89e60fb2786609  gcc/testsuite/gcc.dg/pr104910.c
+ d328197e83a949ec338507a8a4e15ed2  gcc/testsuite/gcc.dg/pr104970.c
  624cf1d4b1b58ba0e2c492d29bba7754  gcc/testsuite/gcc.dg/pr104975.c
! 15c37d32fafc712a4a14d6b6992b3af3  gcc/testsuite/gcc.dg/pr104992.c
  b86dfb95591cedd4e8f9612c0d76e923  gcc/testsuite/gcc.dg/pr105049.c
  f6daf3140a9707899657962982ad2826  gcc/testsuite/gcc.dg/pr105065.c
  d08f59d459c7f9fa390c668c1f6b2b4f  gcc/testsuite/gcc.dg/pr105080.c
  f8d1a8342ac7db3ad1336ab098edd372  gcc/testsuite/gcc.dg/pr105094.c
! 327383bd48b0b7afa01ce2fd76da3475  gcc/testsuite/gcc.dg/pr105140.c
  6ee7b97cec7b16eb8ec9815bf5468fdc  gcc/testsuite/gcc.dg/pr105149.c
  4fcf5458586095c916f824d7fa09fad0  gcc/testsuite/gcc.dg/pr105150.c
  299f6a400b7fb5db65f2901e5285cc2c  gcc/testsuite/gcc.dg/pr105165.c
*************** f8d1a8342ac7db3ad1336ab098edd372  gcc/te
*** 44109,44115 ****
  b01f707de15442a63cdb3e32148021fd  gcc/testsuite/gcc.dg/pr105211.c
  674eaeafaa8d6299c130d40d3f974939  gcc/testsuite/gcc.dg/pr105218.c
  62b3efd9b859c1e2a74f5d3cfa969d33  gcc/testsuite/gcc.dg/pr105226.c
! 7a57a46938f6612f3203e9d1d32bf2a2  gcc/testsuite/gcc.dg/pr105250.c
  cc6ac8d68c79338a580a123141221e8b  gcc/testsuite/gcc.dg/pr105257.c
  01d945e452f69cb1fee8b12a879e51c6  gcc/testsuite/gcc.dg/pr105263.c
  c3d8ae3e46240608f001dd6a702ebf0b  gcc/testsuite/gcc.dg/pr105331.c
--- 46251,46257 ----
  b01f707de15442a63cdb3e32148021fd  gcc/testsuite/gcc.dg/pr105211.c
  674eaeafaa8d6299c130d40d3f974939  gcc/testsuite/gcc.dg/pr105218.c
  62b3efd9b859c1e2a74f5d3cfa969d33  gcc/testsuite/gcc.dg/pr105226.c
! 96c11731f907ddadef477decdb20f5b6  gcc/testsuite/gcc.dg/pr105250.c
  cc6ac8d68c79338a580a123141221e8b  gcc/testsuite/gcc.dg/pr105257.c
  01d945e452f69cb1fee8b12a879e51c6  gcc/testsuite/gcc.dg/pr105263.c
  c3d8ae3e46240608f001dd6a702ebf0b  gcc/testsuite/gcc.dg/pr105331.c
*************** cfa158c5ec1ec68947ea7cf84ebac9f7  gcc/te
*** 44120,44130 ****
  6c079381fc5bea8ba966068e353963c8  gcc/testsuite/gcc.dg/pr105455.c
  70752dbf95282e3e1682d161dec96c60  gcc/testsuite/gcc.dg/pr105458.c
  8f69648258c8f27361e18186db792348  gcc/testsuite/gcc.dg/pr105461.c
  bd694253207b0e4d0a25d5c16b288b5c  gcc/testsuite/gcc.dg/pr105528.c
  c1c400df202083158ced44d2e89c6c0b  gcc/testsuite/gcc.dg/pr105591.c
  9e6c2e731a3d7f363d04d35feadca314  gcc/testsuite/gcc.dg/pr105597.c
  56c0bd9327182434c23201e42a562b2c  gcc/testsuite/gcc.dg/pr105630.c
! 96d62d7595a54c11e88844900871d456  gcc/testsuite/gcc.dg/pr105635.c
  7cfe0252fb06e6e2b62656ef015985b6  gcc/testsuite/gcc.dg/pr105660-1.c
  0ceb4dedc7a251ff1d9fc92f7d657369  gcc/testsuite/gcc.dg/pr105660-2.c
  7a17ba9a0aa919417290b69137a34761  gcc/testsuite/gcc.dg/pr105676.c
--- 46262,46275 ----
  6c079381fc5bea8ba966068e353963c8  gcc/testsuite/gcc.dg/pr105455.c
  70752dbf95282e3e1682d161dec96c60  gcc/testsuite/gcc.dg/pr105458.c
  8f69648258c8f27361e18186db792348  gcc/testsuite/gcc.dg/pr105461.c
+ bfec3f2610558e315de99d8027586521  gcc/testsuite/gcc.dg/pr105522.c
  bd694253207b0e4d0a25d5c16b288b5c  gcc/testsuite/gcc.dg/pr105528.c
+ 0e380df8a3b03af68c3ab642e58831fb  gcc/testsuite/gcc.dg/pr105533.c
  c1c400df202083158ced44d2e89c6c0b  gcc/testsuite/gcc.dg/pr105591.c
  9e6c2e731a3d7f363d04d35feadca314  gcc/testsuite/gcc.dg/pr105597.c
  56c0bd9327182434c23201e42a562b2c  gcc/testsuite/gcc.dg/pr105630.c
! b9796d1785a2da32a27e45f530154896  gcc/testsuite/gcc.dg/pr105635-2.c
! 6bd2db27f53e28c276184c288c08c884  gcc/testsuite/gcc.dg/pr105635.c
  7cfe0252fb06e6e2b62656ef015985b6  gcc/testsuite/gcc.dg/pr105660-1.c
  0ceb4dedc7a251ff1d9fc92f7d657369  gcc/testsuite/gcc.dg/pr105660-2.c
  7a17ba9a0aa919417290b69137a34761  gcc/testsuite/gcc.dg/pr105676.c
*************** c1c400df202083158ced44d2e89c6c0b  gcc/te
*** 44132,44139 ****
  3eecbad8adf883985a8182ede3852cb0  gcc/testsuite/gcc.dg/pr105770.c
  2207c4a0b7a6da52b2ec26f5bf39a6b9  gcc/testsuite/gcc.dg/pr105825.c
  6b33bb77cadcbae3d990e7ab45ad03f5  gcc/testsuite/gcc.dg/pr105835.c
! 7aa8b2b488f023e583cd6e55b561305c  gcc/testsuite/gcc.dg/pr105853.c
! 117927dac9db8b5c56a299e6548c7534  gcc/testsuite/gcc.dg/pr105856.c
  9c3d1e5699081a64f9a7371ec1bf079f  gcc/testsuite/gcc.dg/pr105911.c
  5450efb71a4677ee6bce61dee16ec4eb  gcc/testsuite/gcc.dg/pr105969.c
  fe172baae6e5e7cbaa701cf25aed6296  gcc/testsuite/gcc.dg/pr105972.c
--- 46277,46284 ----
  3eecbad8adf883985a8182ede3852cb0  gcc/testsuite/gcc.dg/pr105770.c
  2207c4a0b7a6da52b2ec26f5bf39a6b9  gcc/testsuite/gcc.dg/pr105825.c
  6b33bb77cadcbae3d990e7ab45ad03f5  gcc/testsuite/gcc.dg/pr105835.c
! bca44005de70f47b9c65777d0cdb42c3  gcc/testsuite/gcc.dg/pr105853.c
! 08b7a02f47713e1710303af211013ff4  gcc/testsuite/gcc.dg/pr105856.c
  9c3d1e5699081a64f9a7371ec1bf079f  gcc/testsuite/gcc.dg/pr105911.c
  5450efb71a4677ee6bce61dee16ec4eb  gcc/testsuite/gcc.dg/pr105969.c
  fe172baae6e5e7cbaa701cf25aed6296  gcc/testsuite/gcc.dg/pr105972.c
*************** de5d81445ad859074ca4d853ab220c74  gcc/te
*** 44142,44148 ****
  7fb0f2437939b99bbac4d027b90b6c84  gcc/testsuite/gcc.dg/pr106063.c
  0b79f13def5875cdcd6ff7cf2914ae2d  gcc/testsuite/gcc.dg/pr106099.c
  56b89433876918f481cf5fe03041c940  gcc/testsuite/gcc.dg/pr106114.c
! 289edb9f71d96816c053cd6cf90ff744  gcc/testsuite/gcc.dg/pr106189.c
  1f4be7e07d7f460c7594bec7acb069fb  gcc/testsuite/gcc.dg/pr106198.c
  9dc72ac5ba62dd8f65968a481c0d9d96  gcc/testsuite/gcc.dg/pr106243-1.c
  686d5cd37d847890054a9f9a4dd372bd  gcc/testsuite/gcc.dg/pr106243.c
--- 46287,46293 ----
  7fb0f2437939b99bbac4d027b90b6c84  gcc/testsuite/gcc.dg/pr106063.c
  0b79f13def5875cdcd6ff7cf2914ae2d  gcc/testsuite/gcc.dg/pr106099.c
  56b89433876918f481cf5fe03041c940  gcc/testsuite/gcc.dg/pr106114.c
! c9253a2e34a5177add9e9a758f0558a5  gcc/testsuite/gcc.dg/pr106189.c
  1f4be7e07d7f460c7594bec7acb069fb  gcc/testsuite/gcc.dg/pr106198.c
  9dc72ac5ba62dd8f65968a481c0d9d96  gcc/testsuite/gcc.dg/pr106243-1.c
  686d5cd37d847890054a9f9a4dd372bd  gcc/testsuite/gcc.dg/pr106243.c
*************** ae823fe6c503b8d3ab2c78c40ec443da  gcc/te
*** 44152,44157 ****
--- 46297,46303 ----
  f3f94c6c846098a44b824a2a97da9053  gcc/testsuite/gcc.dg/pr106379-1.c
  7532e844fdf56a837eb37652b272feb3  gcc/testsuite/gcc.dg/pr106397.c
  c748e71e8ac256d9575c8ae2120aab9f  gcc/testsuite/gcc.dg/pr106421.c
+ a960e71126cd5e767312dc5b5f6cd7aa  gcc/testsuite/gcc.dg/pr106465.c
  122c07534d40d5ce912a266ebc276bb2  gcc/testsuite/gcc.dg/pr106510.c
  aff98ecaeb2732bfef9a1b217335bb20  gcc/testsuite/gcc.dg/pr106519.c
  9605daec39a2a2f38931e6f175e753d9  gcc/testsuite/gcc.dg/pr106617.c
*************** ebccf814e2974ae2d3fef79375fc2a74  gcc/te
*** 44167,44177 ****
  9ab2aff363e0823d9616d81769d4729d  gcc/testsuite/gcc.dg/pr107131.c
  c16717b833d5db5a9a8e0b0649ed37bf  gcc/testsuite/gcc.dg/pr107262.c
  4f0d5b8c78199ceef742ba745999898c  gcc/testsuite/gcc.dg/pr107300.c
  0215d2ef3b9000a72563a0a5de550edf  gcc/testsuite/gcc.dg/pr107389.c
  e93299ab13ea49e64f3354c006946b72  gcc/testsuite/gcc.dg/pr107505.c
  5ad9ea4546fd246fa3030e31b6e8525c  gcc/testsuite/gcc.dg/pr107523.c
! 28e818f9bc480a7c87c0c9b03c0121ea  gcc/testsuite/gcc.dg/pr107547.c
  d64d53420ac059d0a4813bb6b0e625bd  gcc/testsuite/gcc.dg/pr107554.c
  08de5247efbcbc99d7fec40b33ebcd24  gcc/testsuite/gcc.dg/pr107570.c
  974e2a521a10196206be8afa62a1233b  gcc/testsuite/gcc.dg/pr107585.c
  e8aa9aecaf909f80bb293391d3cbff23  gcc/testsuite/gcc.dg/pr107618.c
--- 46313,46326 ----
  9ab2aff363e0823d9616d81769d4729d  gcc/testsuite/gcc.dg/pr107131.c
  c16717b833d5db5a9a8e0b0649ed37bf  gcc/testsuite/gcc.dg/pr107262.c
  4f0d5b8c78199ceef742ba745999898c  gcc/testsuite/gcc.dg/pr107300.c
+ 66f99f11c840e33dae7bfe0a998c7670  gcc/testsuite/gcc.dg/pr107385.c
  0215d2ef3b9000a72563a0a5de550edf  gcc/testsuite/gcc.dg/pr107389.c
  e93299ab13ea49e64f3354c006946b72  gcc/testsuite/gcc.dg/pr107505.c
  5ad9ea4546fd246fa3030e31b6e8525c  gcc/testsuite/gcc.dg/pr107523.c
! 81bc84b5b95958eb5c2583001b6b590a  gcc/testsuite/gcc.dg/pr107547.c
  d64d53420ac059d0a4813bb6b0e625bd  gcc/testsuite/gcc.dg/pr107554.c
+ e4fcac0dad4ca1fbe25db5e0d7c43206  gcc/testsuite/gcc.dg/pr107557-1.c
+ eba13ab51ad7b58602b7787a1f2c3b34  gcc/testsuite/gcc.dg/pr107557-2.c
  08de5247efbcbc99d7fec40b33ebcd24  gcc/testsuite/gcc.dg/pr107570.c
  974e2a521a10196206be8afa62a1233b  gcc/testsuite/gcc.dg/pr107585.c
  e8aa9aecaf909f80bb293391d3cbff23  gcc/testsuite/gcc.dg/pr107618.c
*************** bfe683bab17f972c72cffcb817291d2e  gcc/te
*** 44179,44192 ****
  90b413a4271c49f08bcd093300aaec2b  gcc/testsuite/gcc.dg/pr107787.c
  af78a3b891c82dc5de6e1d27319cff32  gcc/testsuite/gcc.dg/pr107805-1.c
  69665fa155e8b9a9ae8e1c2c06f79732  gcc/testsuite/gcc.dg/pr107805-2.c
  098e26474f2d8d62843aadfbdb935013  gcc/testsuite/gcc.dg/pr107846.c
  19724dd3bb7e549b1d58a7a696392572  gcc/testsuite/gcc.dg/pr107937.c
  66cf99f0b8a24303327f1f5543248c3b  gcc/testsuite/gcc.dg/pr107967-1.c
  856756e7fb251e8a3883170e78ec1cf3  gcc/testsuite/gcc.dg/pr107967-2.c
  36c1d5b1df984f2219a47b6011d26aa4  gcc/testsuite/gcc.dg/pr107967-3.c
  29bef005daafa096eb2fea0a0d724444  gcc/testsuite/gcc.dg/pr107975.c
  0e355bc6ddeaf24bb5f47834594ac0b8  gcc/testsuite/gcc.dg/pr108043.c
! 4b0c665c9ac4f4701760e4205e109f61  gcc/testsuite/gcc.dg/pr108095.c
  daebdf64898476146d541014e20e03da  gcc/testsuite/gcc.dg/pr108117.c
  3aa3d774e528445c83a111a977c5ea5d  gcc/testsuite/gcc.dg/pr108139.c
  76e40e99e3864dc91727ad4aa957999e  gcc/testsuite/gcc.dg/pr108164.c
--- 46328,46343 ----
  90b413a4271c49f08bcd093300aaec2b  gcc/testsuite/gcc.dg/pr107787.c
  af78a3b891c82dc5de6e1d27319cff32  gcc/testsuite/gcc.dg/pr107805-1.c
  69665fa155e8b9a9ae8e1c2c06f79732  gcc/testsuite/gcc.dg/pr107805-2.c
+ 553a7727d3b310e8d8a8b6eb59dd36ee  gcc/testsuite/gcc.dg/pr107822.c
  098e26474f2d8d62843aadfbdb935013  gcc/testsuite/gcc.dg/pr107846.c
  19724dd3bb7e549b1d58a7a696392572  gcc/testsuite/gcc.dg/pr107937.c
  66cf99f0b8a24303327f1f5543248c3b  gcc/testsuite/gcc.dg/pr107967-1.c
  856756e7fb251e8a3883170e78ec1cf3  gcc/testsuite/gcc.dg/pr107967-2.c
  36c1d5b1df984f2219a47b6011d26aa4  gcc/testsuite/gcc.dg/pr107967-3.c
  29bef005daafa096eb2fea0a0d724444  gcc/testsuite/gcc.dg/pr107975.c
+ 28cb48112676af98f19c71b1605ddaf6  gcc/testsuite/gcc.dg/pr107986-1.c
  0e355bc6ddeaf24bb5f47834594ac0b8  gcc/testsuite/gcc.dg/pr108043.c
! 1dafc8507a0df975f8733ce7a6df805b  gcc/testsuite/gcc.dg/pr108095.c
  daebdf64898476146d541014e20e03da  gcc/testsuite/gcc.dg/pr108117.c
  3aa3d774e528445c83a111a977c5ea5d  gcc/testsuite/gcc.dg/pr108139.c
  76e40e99e3864dc91727ad4aa957999e  gcc/testsuite/gcc.dg/pr108164.c
*************** a42a27ad33f635fa46d4d20d1c0d8634  gcc/te
*** 44201,44206 ****
--- 46352,46363 ----
  3e7c3041f5bbcedffb2450c7db9a556b  gcc/testsuite/gcc.dg/pr108375-2.c
  f8f2fb0ca21e49421f7660d4a63a0d99  gcc/testsuite/gcc.dg/pr108385.c
  f30b1102f1055492125a5e7ac2f4cf1e  gcc/testsuite/gcc.dg/pr108387.c
+ 1b3c2ab2b11fef6eff3bdcd58abc1d7e  gcc/testsuite/gcc.dg/pr108423-1.c
+ f3ddaafbd41e029de837b4ac21bd6a3c  gcc/testsuite/gcc.dg/pr108423-2.c
+ 89b2d08e399898da0a5f988ab1567b04  gcc/testsuite/gcc.dg/pr108423-3.c
+ b9bb28365f65c1f3f49aa06b5bc33ed3  gcc/testsuite/gcc.dg/pr108423-4.c
+ 8d80a86de08e17c289f4276f7db3a8b1  gcc/testsuite/gcc.dg/pr108423-5.c
+ 24c818f5749c897661bb2d4a7e163545  gcc/testsuite/gcc.dg/pr108423-6.c
  60ea2c19441da71df58ec088daf3d829  gcc/testsuite/gcc.dg/pr108447.c
  de94641db5f202a1a636dbdf4e798129  gcc/testsuite/gcc.dg/pr108449.c
  138236578f41448aaca50b7c8d6a4881  gcc/testsuite/gcc.dg/pr108463.c
*************** a7cbf4a480a7e4f83515bec5365194b1  gcc/te
*** 44212,44217 ****
--- 46369,46377 ----
  601a4d114636a020de8efde04e19967e  gcc/testsuite/gcc.dg/pr108688.c
  5b3e9146fc31e7a7e8623f94f2118fac  gcc/testsuite/gcc.dg/pr108691.c
  21a62b0e858621e46700af10fbe121e4  gcc/testsuite/gcc.dg/pr108692.c
+ a951e2130312a2483521d0488520a7dd  gcc/testsuite/gcc.dg/pr108757-1.c
+ 035cbf44a35f5e9e35d503017768c289  gcc/testsuite/gcc.dg/pr108757-2.c
+ 14ce0415b2425853b00c55ee5dd0ecab  gcc/testsuite/gcc.dg/pr108757.h
  10fcf1d08f9a39199beb3e72d1836739  gcc/testsuite/gcc.dg/pr108787.c
  e1e8d414ac951f379fb6ccff06784511  gcc/testsuite/gcc.dg/pr108805.c
  70cc568eeb5214c97b9d32241c816bf9  gcc/testsuite/gcc.dg/pr108819.c
*************** c84c4385dc7b913c1ab044bf620d7696  gcc/te
*** 44235,44243 ****
--- 46395,46520 ----
  8c5ddd68de1ed874eb52f91b7136909e  gcc/testsuite/gcc.dg/pr109410.c
  3399ef12e5625e30f72a928ee7afca74  gcc/testsuite/gcc.dg/pr109412.c
  86a351ab8a6255c1c7e39f673dcac916  gcc/testsuite/gcc.dg/pr109417.c
+ 44bb06cdfe8ad3f9f8694d867bb8d32c  gcc/testsuite/gcc.dg/pr109450-1.c
+ 1d3c04fff07d186c1fe4732e22d121ca  gcc/testsuite/gcc.dg/pr109450-2.c
+ 5fea7f14ba482b73b2e21d73cc09aee8  gcc/testsuite/gcc.dg/pr109546.c
  761ec38d2e9b593ffd05c4d7af63acfb  gcc/testsuite/gcc.dg/pr109583.c
+ 29ec1970f543461cffd2d972b7c8e505  gcc/testsuite/gcc.dg/pr109732-1.c
+ 7c50b7c4dd7c1ae51a3b106fcbb93882  gcc/testsuite/gcc.dg/pr109732.c
+ 262ac161f1a9c7704264c0d5dc016ea3  gcc/testsuite/gcc.dg/pr109970.c
+ 51be893929e915a37f70018245b4d3e7  gcc/testsuite/gcc.dg/pr109977.c
+ 0be0825740ccb1d06acec4a993c98057  gcc/testsuite/gcc.dg/pr110038.c
+ 895803050a2ad777e84457e79b9ccb38  gcc/testsuite/gcc.dg/pr110079.c
+ ecc7f43394c2cabbdfd67c6544078083  gcc/testsuite/gcc.dg/pr110080.c
+ 4e18b84f5672f486b4ebebf92b54a317  gcc/testsuite/gcc.dg/pr110117-1.c
+ fa2fa7c87accd361a3ffc55669286d2b  gcc/testsuite/gcc.dg/pr110117-2.c
+ fc2d5987f0935ba7fb72456a74052a3a  gcc/testsuite/gcc.dg/pr110266.c
+ d8ca37550399d0d0107dd334c557b611  gcc/testsuite/gcc.dg/pr110279-1.c
+ 4d010b0a841ae58fbceaa23059d37d44  gcc/testsuite/gcc.dg/pr110279-2.c
+ 44cc8bdb8e24be94e67c6e9b8820384b  gcc/testsuite/gcc.dg/pr110436.c
+ 1bfa7501393c86817caa57b323c5f302  gcc/testsuite/gcc.dg/pr110461.c
+ d7d11e1fe70efcc887bf72a552f64cdb  gcc/testsuite/gcc.dg/pr110496.c
+ 6ac068b0f987707ee5368366f30869b2  gcc/testsuite/gcc.dg/pr110506-2.c
+ ae986afb1a497beb4d4167c8b3f0288b  gcc/testsuite/gcc.dg/pr110506.c
+ aebaae13d4f64ac52e2ac316b60e081d  gcc/testsuite/gcc.dg/pr110508.c
+ 83cc4799a0b4d0681b4ed314dc40135d  gcc/testsuite/gcc.dg/pr110582.c
+ 7a812bc5f437397fa142a0e02117979f  gcc/testsuite/gcc.dg/pr110699.c
+ 26f891ca620139f13e77d8f98fb62115  gcc/testsuite/gcc.dg/pr110729.c
  c63f42682a97d6307d214dda47bb00f9  gcc/testsuite/gcc.dg/pr110731.c
+ f51a9b458f6acfae6b798994c6f8ead3  gcc/testsuite/gcc.dg/pr110755.c
+ f1ca1707a3f3959e6493ed08a0c9a372  gcc/testsuite/gcc.dg/pr110777.c
+ 174879daa6c6fa0b392c0bce0a3cd2cd  gcc/testsuite/gcc.dg/pr110875.c
+ b4d546898a12e72434f42340dae3dbc0  gcc/testsuite/gcc.dg/pr110915-1.c
+ 407a6e36de2f9c6478c0d0dd9b95aa4e  gcc/testsuite/gcc.dg/pr110915-10.c
+ 5fc15918b3a95110d7c450d839ec1741  gcc/testsuite/gcc.dg/pr110915-11.c
+ 044c04fe4892f3ac670de4c5ca46de77  gcc/testsuite/gcc.dg/pr110915-12.c
+ 10691ceb989987a07970d204ba2fdd31  gcc/testsuite/gcc.dg/pr110915-2.c
+ a1b393d3a2c8b8660ca9eeaf41e25415  gcc/testsuite/gcc.dg/pr110915-3.c
+ 6508c16e23e8b8d5c5a7ffe6531acbbf  gcc/testsuite/gcc.dg/pr110915-4.c
+ c4a192c831ad5480c795af75d8661107  gcc/testsuite/gcc.dg/pr110915-5.c
+ 08cb04aba0de47f1f016d44dfc122158  gcc/testsuite/gcc.dg/pr110915-6.c
+ ce21ef6d28d5fe43e792b7b1b4413514  gcc/testsuite/gcc.dg/pr110915-7.c
+ 690185f2061d6502f012a080ac7a0ce5  gcc/testsuite/gcc.dg/pr110915-8.c
+ 78185ffd649e7ff5b42f44d4ab099539  gcc/testsuite/gcc.dg/pr110915-9.c
+ 5c2a2a4cf5aae8649c58434526ab55bb  gcc/testsuite/gcc.dg/pr110918.c
+ 7aeeff98686427c2e25aa1b7bb60b7f6  gcc/testsuite/gcc.dg/pr111009.c
+ 5328040ceef0db656025d09af496f06a  gcc/testsuite/gcc.dg/pr111015.c
+ 327d668219b1c9a3fd61015f9abe833d  gcc/testsuite/gcc.dg/pr111039.c
+ 87d20f122852256ed9f4f43a162fbb2f  gcc/testsuite/gcc.dg/pr111070.c
+ 00923aa8b6f2b27eaa66a7f093f4a59f  gcc/testsuite/gcc.dg/pr111082.c
+ 6e14588163beffcf47ea7884dce92104  gcc/testsuite/gcc.dg/pr111303.c
+ 283ae18e472c603f77f7f5bd12528fb9  gcc/testsuite/gcc.dg/pr111355.c
+ 8a45dfbe070c48845446dc22aab1602b  gcc/testsuite/gcc.dg/pr111407.c
+ d543b00b0d604d4964af14ffe5c536d8  gcc/testsuite/gcc.dg/pr111409.c
+ ad92d0e6b224b22bbd94fa951c90fc58  gcc/testsuite/gcc.dg/pr111599.c
+ 010daf0af0cc91370932a98cc477bc7f  gcc/testsuite/gcc.dg/pr111683-1.c
+ 4f842151b1830fe13f002a8c7d0757c0  gcc/testsuite/gcc.dg/pr111683-2.c
+ 2e6f2b717172ebff161876d80e0a1ba0  gcc/testsuite/gcc.dg/pr111694.c
+ 1804afb1e0fbf572df2f2e5e06a11a87  gcc/testsuite/gcc.dg/pr111708-1.c
+ df7bcd5b30dcb365530100b54c2bdba5  gcc/testsuite/gcc.dg/pr111708-2.c
+ a76ba9cff7ec5e68222bc3ba5c96b764  gcc/testsuite/gcc.dg/pr111766.c
+ 7db639ec792c27c6a7468bd93d13319e  gcc/testsuite/gcc.dg/pr111845.c
+ 6ce18b070c4ba53372e6f844745170fb  gcc/testsuite/gcc.dg/pr111914.c
+ 83a77129d5c5ed4fd847594964619e0b  gcc/testsuite/gcc.dg/pr111922.c
+ 74ea2a88cbe4c900533076e803a81379  gcc/testsuite/gcc.dg/pr112320.c
+ 47d5ac3f97b4fe7e14821680bc5edf62  gcc/testsuite/gcc.dg/pr112359.c
+ bf2535aab811e2223cfd0e68d61e0f3a  gcc/testsuite/gcc.dg/pr112369.c
+ 1e774a8867399f8872470a93a3f6f213  gcc/testsuite/gcc.dg/pr112374-1.c
+ 08ae364b10587d221c0f17fe72ad034b  gcc/testsuite/gcc.dg/pr112374-2.c
+ 6ecf6d19b418f7c8ee60039498a300a7  gcc/testsuite/gcc.dg/pr112380.c
+ 9c5576df7fa372f8b295b192e4e59c62  gcc/testsuite/gcc.dg/pr112430.c
+ 27b19c882a226e22e4e605adb16c80f8  gcc/testsuite/gcc.dg/pr112488-1.c
+ 875b0b66a0ec5a48d476bbaa272ce50b  gcc/testsuite/gcc.dg/pr112488-2.c
+ 57b56fcde5440d30d30538aa64a77437  gcc/testsuite/gcc.dg/pr112509.c
+ ddbc024f7fd0c85c067bfeb292bdffc4  gcc/testsuite/gcc.dg/pr112511.c
+ 2aa058fb6aff6dd3a8453c92911bc246  gcc/testsuite/gcc.dg/pr112536.c
+ fdb16ef8799c254c7fb05a841b5dd428  gcc/testsuite/gcc.dg/pr112566-1.c
+ ac650e18d68aad999edfbae8dcb5f164  gcc/testsuite/gcc.dg/pr112566-2.c
+ 125e2db90bf11679dc30f0d8d1612fd6  gcc/testsuite/gcc.dg/pr112618.c
+ 5537390c9deeacd4fa2c3d2e7630bae6  gcc/testsuite/gcc.dg/pr112622.c
+ f7c5d80cd042190b4fff347042223ac4  gcc/testsuite/gcc.dg/pr112636.c
+ 16ac069c30f8f704c4d9b469d526185e  gcc/testsuite/gcc.dg/pr112673.c
+ 56a99f1ebd4f2087440307dfcfc7a580  gcc/testsuite/gcc.dg/pr112719.c
+ f97f1cf6ac420452092fc3fba4203574  gcc/testsuite/gcc.dg/pr112733.c
+ 9f36721ee01a05a179a97b729d82aca7  gcc/testsuite/gcc.dg/pr112740.c
+ a0033432135786c64c329eaf5438caae  gcc/testsuite/gcc.dg/pr112760.c
+ e5517dc2a2e07c9b2472bb545cd5a722  gcc/testsuite/gcc.dg/pr112837.c
+ 6b73a8d375ddff23d86f9f1c9377f381  gcc/testsuite/gcc.dg/pr112845.c
+ e65638e5fe28e8ad32d61c454bbf2f97  gcc/testsuite/gcc.dg/pr112887.c
+ a66f568f224ba89b60ee5457aec04a7e  gcc/testsuite/gcc.dg/pr112898.c
+ 49d768c24628283282cd0deaabc6c56c  gcc/testsuite/gcc.dg/pr112924.c
+ 1317cf4d138aabe07f56d2c9a76283b2  gcc/testsuite/gcc.dg/pr112939.c
+ 68812a8a18bdcb8c9b56b83823f8a853  gcc/testsuite/gcc.dg/pr113013.c
+ deb41154534dbf473d4613d8e1b5b205  gcc/testsuite/gcc.dg/pr113062.c
+ ad2ad5946902352f9ec1c92a22b2bec1  gcc/testsuite/gcc.dg/pr113093.c
+ da36c4c045a6839485d1209b636f2fa6  gcc/testsuite/gcc.dg/pr113262.c
+ cb88492b8c13891e578ed68023fdbd5d  gcc/testsuite/gcc.dg/pr113267.c
+ b3bff2025ea2829f369b883345a9ac4d  gcc/testsuite/gcc.dg/pr113438.c
+ 251597307c5081767ca76e85e86e471e  gcc/testsuite/gcc.dg/pr113445.c
+ 09c144492c54d8c957d2554d144ab1fe  gcc/testsuite/gcc.dg/pr113492.c
+ 78dd45f553f44492c5c325398210f4ec  gcc/testsuite/gcc.dg/pr113602.c
+ df6f93c285d5bce25f758e2e93482ded  gcc/testsuite/gcc.dg/pr113659.c
+ 57d872032d8ecee35cd1542ada8db1b5  gcc/testsuite/gcc.dg/pr113693.c
+ 0b16d5d5605a7453bf5a8d24c0d71bfb  gcc/testsuite/gcc.dg/pr113722.c
+ fba5338ec42bfb937930f7e3f67e2ca3  gcc/testsuite/gcc.dg/pr113756.c
+ 474b404a919b24588967e9b40c511263  gcc/testsuite/gcc.dg/pr113776-1.c
+ 80dd822c938d0450c4de42c9b958748c  gcc/testsuite/gcc.dg/pr113776-2.c
+ 026b9457813441761298dc9a4e7c53e9  gcc/testsuite/gcc.dg/pr113776-3.c
+ 1a67adf7ad070821265b534b5043635a  gcc/testsuite/gcc.dg/pr113776-4.c
+ e68a7c7f2d1db31e0e0e0a23960975a7  gcc/testsuite/gcc.dg/pr113907-1.c
+ 9763b0b64087a45a0d3420c2efcecb05  gcc/testsuite/gcc.dg/pr113967.c
+ b200221e1cccaf2dc905de01fccdb601  gcc/testsuite/gcc.dg/pr114090.c
+ 12ecf3bc0aab66a39903f50c4a6dfc66  gcc/testsuite/gcc.dg/pr114115.c
+ 5f50cdb1b2a60a511ba8bff25319527f  gcc/testsuite/gcc.dg/pr114211.c
+ 6c8f2e684eee8bd8983196eac859b465  gcc/testsuite/gcc.dg/pr114293.c
+ 7cd5609790e8cb3ba4ad54ccf122a48a  gcc/testsuite/gcc.dg/pr114310.c
+ 4940ffe18e12cb373bdf01efe4350809  gcc/testsuite/gcc.dg/pr114361.c
+ ea92be6444e68f4116ad99f520ed844f  gcc/testsuite/gcc.dg/pr114574-1.c
+ 5c86816d02795101636c8edc87ce5942  gcc/testsuite/gcc.dg/pr114574-2.c
  860f163dcd0b252ea3f85323bc959a7d  gcc/testsuite/gcc.dg/pr11459-1.c
+ 8d675fa965ab88a772c5a3c7d82c11e3  gcc/testsuite/gcc.dg/pr114605.c
+ 18db873e30d811e6904623797ead2825  gcc/testsuite/gcc.dg/pr114753.c
+ 278b6ea6998e142ef9ecea8b30a97701  gcc/testsuite/gcc.dg/pr114768.c
  e164a736918661d669864e3645da290c  gcc/testsuite/gcc.dg/pr11492.c
  3b83403729a3686d25552352bf0c4577  gcc/testsuite/gcc.dg/pr11864-1.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
*************** f8a3978367cd44ca6e219ce553ee3c10  gcc/te
*** 44316,44322 ****
  6f6257c83afb52028ea914e6e60161ec  gcc/testsuite/gcc.dg/pr19340.c
  8150eaf90e1f00208b3dfdf711457bd2  gcc/testsuite/gcc.dg/pr19345.c
  85a9be052f27b32bb6f58f060ea06464  gcc/testsuite/gcc.dg/pr19402-1.c
! 1d772b57574234bee1e7e32446b929dd  gcc/testsuite/gcc.dg/pr19402-2.c
  21b15db22818710a3ace8f86a7596663  gcc/testsuite/gcc.dg/pr19633-1.c
  4d90a1079395c780d5dd3ed2ffb9abf4  gcc/testsuite/gcc.dg/pr19633.c
  035958165a632cb62da45ebc79f0f2cd  gcc/testsuite/gcc.dg/pr19967.c
--- 46593,46599 ----
  6f6257c83afb52028ea914e6e60161ec  gcc/testsuite/gcc.dg/pr19340.c
  8150eaf90e1f00208b3dfdf711457bd2  gcc/testsuite/gcc.dg/pr19345.c
  85a9be052f27b32bb6f58f060ea06464  gcc/testsuite/gcc.dg/pr19402-1.c
! d6d552ec2dc46a15f0d3f6bc3f5bd1c6  gcc/testsuite/gcc.dg/pr19402-2.c
  21b15db22818710a3ace8f86a7596663  gcc/testsuite/gcc.dg/pr19633-1.c
  4d90a1079395c780d5dd3ed2ffb9abf4  gcc/testsuite/gcc.dg/pr19633.c
  035958165a632cb62da45ebc79f0f2cd  gcc/testsuite/gcc.dg/pr19967.c
*************** e316cb920a9eeb2e96d6ff0071b4e1e9  gcc/te
*** 44344,44353 ****
  9695cc6a9e799e9e7d52afe1e843c73e  gcc/testsuite/gcc.dg/pr21032.c
  38b4c19356959c0903f790d063e1e6a6  gcc/testsuite/gcc.dg/pr21041.c
  7b876d09593734c8cf12eb56eee155e4  gcc/testsuite/gcc.dg/pr21085.c
! 37d954c5426b91f7e6301d17caa6698a  gcc/testsuite/gcc.dg/pr21137.c
  f249c8e4714cd5737b79a74e42be5c46  gcc/testsuite/gcc.dg/pr21282.c
  3a005f57879f3d6575f529bdf1d45e71  gcc/testsuite/gcc.dg/pr21419.c
! 8abe00dcabcdb999cf165c8503003d8c  gcc/testsuite/gcc.dg/pr21643.c
  6eb70c44077eefcd9928219727af399b  gcc/testsuite/gcc.dg/pr21709-1.c
  976425aba6999b8696d3181fd5853a99  gcc/testsuite/gcc.dg/pr21858.c
  17409ff77d84a8feb4e2504dd2df58e4  gcc/testsuite/gcc.dg/pr21921.c
--- 46621,46630 ----
  9695cc6a9e799e9e7d52afe1e843c73e  gcc/testsuite/gcc.dg/pr21032.c
  38b4c19356959c0903f790d063e1e6a6  gcc/testsuite/gcc.dg/pr21041.c
  7b876d09593734c8cf12eb56eee155e4  gcc/testsuite/gcc.dg/pr21085.c
! f5c32cc231aa62059ac316f481202939  gcc/testsuite/gcc.dg/pr21137.c
  f249c8e4714cd5737b79a74e42be5c46  gcc/testsuite/gcc.dg/pr21282.c
  3a005f57879f3d6575f529bdf1d45e71  gcc/testsuite/gcc.dg/pr21419.c
! 1a98ee1725ab3cf2a0dc3b6cd698ad3a  gcc/testsuite/gcc.dg/pr21643.c
  6eb70c44077eefcd9928219727af399b  gcc/testsuite/gcc.dg/pr21709-1.c
  976425aba6999b8696d3181fd5853a99  gcc/testsuite/gcc.dg/pr21858.c
  17409ff77d84a8feb4e2504dd2df58e4  gcc/testsuite/gcc.dg/pr21921.c
*************** c53dedac4ad1ee1a61f4173c056fcf0b  gcc/te
*** 44360,44366 ****
  10ae2728d50b401b2d697bfa062b0789  gcc/testsuite/gcc.dg/pr22356-1.c
  1188750724523ee6372b186c9bf168ba  gcc/testsuite/gcc.dg/pr22458-1.c
  f324b04e08c44cffb07b668bc6deba83  gcc/testsuite/gcc.dg/pr23049.c
! 02b7ad504ab3a2a79148f9816f41f2c7  gcc/testsuite/gcc.dg/pr23075.c
  e6f9ed128f23b888c1a7db1a1f348e4f  gcc/testsuite/gcc.dg/pr23165.c
  02c729891e05fee560c9df25a9e6cb66  gcc/testsuite/gcc.dg/pr23200.c
  4d42e500c6b954e0eee12855120f923c  gcc/testsuite/gcc.dg/pr23295.c
--- 46637,46644 ----
  10ae2728d50b401b2d697bfa062b0789  gcc/testsuite/gcc.dg/pr22356-1.c
  1188750724523ee6372b186c9bf168ba  gcc/testsuite/gcc.dg/pr22458-1.c
  f324b04e08c44cffb07b668bc6deba83  gcc/testsuite/gcc.dg/pr23049.c
! 5da637598d7c9fb2e64ca5bf7af84d74  gcc/testsuite/gcc.dg/pr23075-2.c
! fa2d5386763b493558922eb0c34d8319  gcc/testsuite/gcc.dg/pr23075.c
  e6f9ed128f23b888c1a7db1a1f348e4f  gcc/testsuite/gcc.dg/pr23165.c
  02c729891e05fee560c9df25a9e6cb66  gcc/testsuite/gcc.dg/pr23200.c
  4d42e500c6b954e0eee12855120f923c  gcc/testsuite/gcc.dg/pr23295.c
*************** c34ca8b7706e35c4ae280fe610fab224  gcc/te
*** 44403,44409 ****
  b7d2ff448b5eb827f486bdeda5184ff3  gcc/testsuite/gcc.dg/pr26717.c
  ced7aaee2ed382ba4e4be8a202b00641  gcc/testsuite/gcc.dg/pr26719.c
  4d7a59849fbcea8fcec102ebc0771a9e  gcc/testsuite/gcc.dg/pr26729-1.c
! 82af7696ef85ee1a9ee206168fc23567  gcc/testsuite/gcc.dg/pr26865.c
  b1b856b73b84d80b21155d7584fa8426  gcc/testsuite/gcc.dg/pr26961-1.c
  e48b98be698252355b5cf78b47d7f61a  gcc/testsuite/gcc.dg/pr26983.c
  5ee82eec634c979d583a0b340d4203e2  gcc/testsuite/gcc.dg/pr27003.c
--- 46681,46687 ----
  b7d2ff448b5eb827f486bdeda5184ff3  gcc/testsuite/gcc.dg/pr26717.c
  ced7aaee2ed382ba4e4be8a202b00641  gcc/testsuite/gcc.dg/pr26719.c
  4d7a59849fbcea8fcec102ebc0771a9e  gcc/testsuite/gcc.dg/pr26729-1.c
! b15d7a12f1a30dbefe913120297eaded  gcc/testsuite/gcc.dg/pr26865.c
  b1b856b73b84d80b21155d7584fa8426  gcc/testsuite/gcc.dg/pr26961-1.c
  e48b98be698252355b5cf78b47d7f61a  gcc/testsuite/gcc.dg/pr26983.c
  5ee82eec634c979d583a0b340d4203e2  gcc/testsuite/gcc.dg/pr27003.c
*************** f01d173f73d540b3c4e02e6020a8cc2e  gcc/te
*** 44452,44458 ****
  161eff1fb461cde37dc4b366730b1d6d  gcc/testsuite/gcc.dg/pr29299.c
  38c278da19f98a3713b6cbad4e16f9d5  gcc/testsuite/gcc.dg/pr29467.c
  cc1930f6034cf77fae64f5f02fbf2dfe  gcc/testsuite/gcc.dg/pr29521-2.c
! d41863175ed5028a088799a1d6931018  gcc/testsuite/gcc.dg/pr29521.c
  e1d2153028861f9aed7db30c58b6999c  gcc/testsuite/gcc.dg/pr29637.c
  18d0d92fd5bdac525e0879b95a88d05f  gcc/testsuite/gcc.dg/pr29683.c
  be3c932e8460ec4922c97d2570f7a35d  gcc/testsuite/gcc.dg/pr29736.c
--- 46730,46737 ----
  161eff1fb461cde37dc4b366730b1d6d  gcc/testsuite/gcc.dg/pr29299.c
  38c278da19f98a3713b6cbad4e16f9d5  gcc/testsuite/gcc.dg/pr29467.c
  cc1930f6034cf77fae64f5f02fbf2dfe  gcc/testsuite/gcc.dg/pr29521-2.c
! e77cbcb03c063ef61296d291f6ad61b7  gcc/testsuite/gcc.dg/pr29521-a.c
! 0b35914a9d530a629fd9830eafd2cd68  gcc/testsuite/gcc.dg/pr29521.c
  e1d2153028861f9aed7db30c58b6999c  gcc/testsuite/gcc.dg/pr29637.c
  18d0d92fd5bdac525e0879b95a88d05f  gcc/testsuite/gcc.dg/pr29683.c
  be3c932e8460ec4922c97d2570f7a35d  gcc/testsuite/gcc.dg/pr29736.c
*************** b49231117065e2d837d054b724055511  gcc/te
*** 44464,44470 ****
  51ce9c94a8adba4173a5e911b6cff35b  gcc/testsuite/gcc.dg/pr30137-2.c
  cd332e620ec60d4412ded051731a9400  gcc/testsuite/gcc.dg/pr30172-1.c
  c182d03bce69cbc3b1b5abeffa1ba863  gcc/testsuite/gcc.dg/pr30189.c
! 4921129f8218d1dae97c20f8d69481b6  gcc/testsuite/gcc.dg/pr30260.c
  20a61f6930831773474c9fea96678a54  gcc/testsuite/gcc.dg/pr30286.c
  ca5e9b5f5a638fa1bf92d74546e76cb6  gcc/testsuite/gcc.dg/pr30360.c
  ae4bf96bdc8e70590c5576f435e6652b  gcc/testsuite/gcc.dg/pr30457.c
--- 46743,46749 ----
  51ce9c94a8adba4173a5e911b6cff35b  gcc/testsuite/gcc.dg/pr30137-2.c
  cd332e620ec60d4412ded051731a9400  gcc/testsuite/gcc.dg/pr30172-1.c
  c182d03bce69cbc3b1b5abeffa1ba863  gcc/testsuite/gcc.dg/pr30189.c
! 9ccfbd9a86e22e1227f6608b809b039e  gcc/testsuite/gcc.dg/pr30260.c
  20a61f6930831773474c9fea96678a54  gcc/testsuite/gcc.dg/pr30286.c
  ca5e9b5f5a638fa1bf92d74546e76cb6  gcc/testsuite/gcc.dg/pr30360.c
  ae4bf96bdc8e70590c5576f435e6652b  gcc/testsuite/gcc.dg/pr30457.c
*************** fc8929dd64bfcf841a08a6a32186eb30  gcc/te
*** 44483,44489 ****
  431cfa5908d3108c0cdbba874dbb3f2b  gcc/testsuite/gcc.dg/pr30904.c
  9b4801324b438007958aa1175641a7ed  gcc/testsuite/gcc.dg/pr30949.c
  a1f2b5e214ad8f9e511143518b49bc77  gcc/testsuite/gcc.dg/pr30951.c
- 9aec541f35e8725373ba97b5491a3f78  gcc/testsuite/gcc.dg/pr30957-1.c
  1396264299dd3bd2f3edf0d99b93e37f  gcc/testsuite/gcc.dg/pr31096-1.c
  ac0ebd6f2a612028194ca2e4c50a7e32  gcc/testsuite/gcc.dg/pr31096.c
  150f52c3c953c3adebca31102e0db1ff  gcc/testsuite/gcc.dg/pr31127.c
--- 46762,46767 ----
*************** a5fbef8dc1ac30ffbaa04bb729109b3b  gcc/te
*** 44702,44708 ****
  673ce1a4238d31429263d591c75bdd28  gcc/testsuite/gcc.dg/pr40861.c
  5fd4ab6526215be44a7986411c46235d  gcc/testsuite/gcc.dg/pr40946.c
  473afe14ed300daf161d14dc50f39d79  gcc/testsuite/gcc.dg/pr40971.c
! 826ae94c63ac13fc2cbb3788859bcdd6  gcc/testsuite/gcc.dg/pr40989.c
  3b0cbc09a7c7f5f18b7d1334db94a3f6  gcc/testsuite/gcc.dg/pr41033.c
  613278cdaf6528aece655f0d29bffa72  gcc/testsuite/gcc.dg/pr41123.c
  70564fcc0dc14b340ad199349421fd67  gcc/testsuite/gcc.dg/pr41232.c
--- 46980,46986 ----
  673ce1a4238d31429263d591c75bdd28  gcc/testsuite/gcc.dg/pr40861.c
  5fd4ab6526215be44a7986411c46235d  gcc/testsuite/gcc.dg/pr40946.c
  473afe14ed300daf161d14dc50f39d79  gcc/testsuite/gcc.dg/pr40971.c
! 5e257e83d4f3b15f3b6c897d246c54c0  gcc/testsuite/gcc.dg/pr40989.c
  3b0cbc09a7c7f5f18b7d1334db94a3f6  gcc/testsuite/gcc.dg/pr41033.c
  613278cdaf6528aece655f0d29bffa72  gcc/testsuite/gcc.dg/pr41123.c
  70564fcc0dc14b340ad199349421fd67  gcc/testsuite/gcc.dg/pr41232.c
*************** e55d645cf1882ab0b13b127c05a11de3  gcc/te
*** 44746,44752 ****
  a972e0fddd8e97e85540ada26321bc3e  gcc/testsuite/gcc.dg/pr42631.c
  fe703f1c5408673830a0564d9b17522c  gcc/testsuite/gcc.dg/pr42662.c
  8eecbd4ee2624d5bc0c82345d3068069  gcc/testsuite/gcc.dg/pr42685.c
! 32bd49786a519a41137825e2e3983c6c  gcc/testsuite/gcc.dg/pr42715.c
  f2d19dcdf1730b83523b2ecb3d958121  gcc/testsuite/gcc.dg/pr42719.c
  b2b47b91b9c642b21a903f4666829957  gcc/testsuite/gcc.dg/pr42728.c
  b0bb4d16123de6ee42a63b35a586d99d  gcc/testsuite/gcc.dg/pr42889.c
--- 47024,47030 ----
  a972e0fddd8e97e85540ada26321bc3e  gcc/testsuite/gcc.dg/pr42631.c
  fe703f1c5408673830a0564d9b17522c  gcc/testsuite/gcc.dg/pr42662.c
  8eecbd4ee2624d5bc0c82345d3068069  gcc/testsuite/gcc.dg/pr42685.c
! 662813010ba31528f1684a7f4eaabea9  gcc/testsuite/gcc.dg/pr42715.c
  f2d19dcdf1730b83523b2ecb3d958121  gcc/testsuite/gcc.dg/pr42719.c
  b2b47b91b9c642b21a903f4666829957  gcc/testsuite/gcc.dg/pr42728.c
  b0bb4d16123de6ee42a63b35a586d99d  gcc/testsuite/gcc.dg/pr42889.c
*************** e415d69104a6c3a1501ac297eac4da71  gcc/te
*** 44778,44787 ****
  124390b09843414aa638992f3a4705a2  gcc/testsuite/gcc.dg/pr43670.c
  c0057c21378b571cccb57351b9ef9acd  gcc/testsuite/gcc.dg/pr43730.c
  e7531c0be062d752d1ed493e5d39c393  gcc/testsuite/gcc.dg/pr43783.c
! 24513a60f9d4450589b46353e396e399  gcc/testsuite/gcc.dg/pr43864-2.c
! 5fd7dfa795890eb46d57b824f015d779  gcc/testsuite/gcc.dg/pr43864-3.c
! e06bc8e528fd4a13dc8d2650b1bc01af  gcc/testsuite/gcc.dg/pr43864-4.c
! edeb8035df2844baaefa0393b87eb3a5  gcc/testsuite/gcc.dg/pr43864.c
  eca3d1dd5335a9db1ea0c2a98084a274  gcc/testsuite/gcc.dg/pr43971.c
  45fb81d3e797c178603b7671145854be  gcc/testsuite/gcc.dg/pr44012.c
  4f8543f88faf00c40c2a3544d483d2c9  gcc/testsuite/gcc.dg/pr44023.c
--- 47056,47065 ----
  124390b09843414aa638992f3a4705a2  gcc/testsuite/gcc.dg/pr43670.c
  c0057c21378b571cccb57351b9ef9acd  gcc/testsuite/gcc.dg/pr43730.c
  e7531c0be062d752d1ed493e5d39c393  gcc/testsuite/gcc.dg/pr43783.c
! d2922c4c769b7754160b3788de555f08  gcc/testsuite/gcc.dg/pr43864-2.c
! 02c3169d0a12c4365e9a9aced4fc354d  gcc/testsuite/gcc.dg/pr43864-3.c
! a15ac62a79a3e0b2c97e88914927bace  gcc/testsuite/gcc.dg/pr43864-4.c
! 771b4ef850ff35e15af05000c62eada6  gcc/testsuite/gcc.dg/pr43864.c
  eca3d1dd5335a9db1ea0c2a98084a274  gcc/testsuite/gcc.dg/pr43971.c
  45fb81d3e797c178603b7671145854be  gcc/testsuite/gcc.dg/pr44012.c
  4f8543f88faf00c40c2a3544d483d2c9  gcc/testsuite/gcc.dg/pr44023.c
*************** a85f2b0d69f1437e6fee5a4bcbc3317f  gcc/te
*** 44808,44814 ****
  12a1f37d9558ab5a436327aee380db84  gcc/testsuite/gcc.dg/pr44699.c
  1dd339d0bc02f9a3a727d8be141f986a  gcc/testsuite/gcc.dg/pr44838.c
  f3c4c64f74497d3f3aa244503068274f  gcc/testsuite/gcc.dg/pr44964.c
! d110059ec6d902e2d1a27d81da1a93d5  gcc/testsuite/gcc.dg/pr44971.c
  d871198f1b5c0cdfc7011ededa0b3f76  gcc/testsuite/gcc.dg/pr44974.c
  f8d34eb80e2a3fd954f615a25de29a12  gcc/testsuite/gcc.dg/pr45055.c
  3ff8bb2cf90b6a53dc6afc05772869e1  gcc/testsuite/gcc.dg/pr45071.c
--- 47086,47092 ----
  12a1f37d9558ab5a436327aee380db84  gcc/testsuite/gcc.dg/pr44699.c
  1dd339d0bc02f9a3a727d8be141f986a  gcc/testsuite/gcc.dg/pr44838.c
  f3c4c64f74497d3f3aa244503068274f  gcc/testsuite/gcc.dg/pr44964.c
! 3038f2966d8fa1fa9563f1087ea2843e  gcc/testsuite/gcc.dg/pr44971.c
  d871198f1b5c0cdfc7011ededa0b3f76  gcc/testsuite/gcc.dg/pr44974.c
  f8d34eb80e2a3fd954f615a25de29a12  gcc/testsuite/gcc.dg/pr45055.c
  3ff8bb2cf90b6a53dc6afc05772869e1  gcc/testsuite/gcc.dg/pr45071.c
*************** eff2c7246a923259b2428fad4cb5f5cc  gcc/te
*** 44828,44834 ****
  640a3be3840cabf158b023f3f41f625e  gcc/testsuite/gcc.dg/pr45449.c
  6fdd669e0ce204028fa4c56551a45e22  gcc/testsuite/gcc.dg/pr45461.c
  048ec08391a5071f4c625e98696583fa  gcc/testsuite/gcc.dg/pr45472.c
! 1f8018e44b320d2f914cf5d1be8b41e6  gcc/testsuite/gcc.dg/pr45506.c
  08042d04be82eb7742612b5d873877b2  gcc/testsuite/gcc.dg/pr45567.c
  a0ed5109e680d9ee459de2cef72ba4b0  gcc/testsuite/gcc.dg/pr45570.c
  bfb03a33fe8437ca13abfba21aa67c40  gcc/testsuite/gcc.dg/pr45652.c
--- 47106,47112 ----
  640a3be3840cabf158b023f3f41f625e  gcc/testsuite/gcc.dg/pr45449.c
  6fdd669e0ce204028fa4c56551a45e22  gcc/testsuite/gcc.dg/pr45461.c
  048ec08391a5071f4c625e98696583fa  gcc/testsuite/gcc.dg/pr45472.c
! 2fc4fc385825ca4ba90e6c4825fd97ef  gcc/testsuite/gcc.dg/pr45506.c
  08042d04be82eb7742612b5d873877b2  gcc/testsuite/gcc.dg/pr45567.c
  a0ed5109e680d9ee459de2cef72ba4b0  gcc/testsuite/gcc.dg/pr45570.c
  bfb03a33fe8437ca13abfba21aa67c40  gcc/testsuite/gcc.dg/pr45652.c
*************** c267f27d66dfa9d41de2ff22a497b284  gcc/te
*** 44865,44871 ****
  a23b348ba22b9b3c7481a946b8091599  gcc/testsuite/gcc.dg/pr46499-2.c
  c98d4c0b3b0d6614585bbb736532cbca  gcc/testsuite/gcc.dg/pr46521.c
  6e5cfa8ca35da11ed75897128e6ae633  gcc/testsuite/gcc.dg/pr46522.c
! a5b131ce7b0ee006d66f2f1d89605944  gcc/testsuite/gcc.dg/pr46571.c
  78056e976ecd239614632c4a7189bbc6  gcc/testsuite/gcc.dg/pr46585.c
  035b086fe2da3c833f5c2d21a6b75dda  gcc/testsuite/gcc.dg/pr46614.c
  8e0cbd622a0d0f0e00d409d7def41aa7  gcc/testsuite/gcc.dg/pr46620.c
--- 47143,47149 ----
  a23b348ba22b9b3c7481a946b8091599  gcc/testsuite/gcc.dg/pr46499-2.c
  c98d4c0b3b0d6614585bbb736532cbca  gcc/testsuite/gcc.dg/pr46521.c
  6e5cfa8ca35da11ed75897128e6ae633  gcc/testsuite/gcc.dg/pr46522.c
! dcb85e37504aa86766b4013979a26112  gcc/testsuite/gcc.dg/pr46571.c
  78056e976ecd239614632c4a7189bbc6  gcc/testsuite/gcc.dg/pr46585.c
  035b086fe2da3c833f5c2d21a6b75dda  gcc/testsuite/gcc.dg/pr46614.c
  8e0cbd622a0d0f0e00d409d7def41aa7  gcc/testsuite/gcc.dg/pr46620.c
*************** d1d1d8a1a7c1101a9df5901e911386c8  gcc/te
*** 45013,45024 ****
  6184ae6992c6c3468bff0cfd9875aad9  gcc/testsuite/gcc.dg/pr51628-17.c
  ae0a504832ab09f277444d4b87afdba0  gcc/testsuite/gcc.dg/pr51628-18.c
  c3ae2bb4fdcdded82aec02af6430e555  gcc/testsuite/gcc.dg/pr51628-19.c
- d72966b98b121ba500d38b818a63a0fb  gcc/testsuite/gcc.dg/pr51628-20.c
- d5f4c93aab914c4d8a3557b65d88a826  gcc/testsuite/gcc.dg/pr51628-21.c
  f731a6b6955d526e68a973207429ffb1  gcc/testsuite/gcc.dg/pr51628-22.c
  27079d488d927fe72fc34f4c18a381b7  gcc/testsuite/gcc.dg/pr51628-23.c
  8b75506ca391fbc0d724f8e3a900eda8  gcc/testsuite/gcc.dg/pr51628-24.c
- 000f653ca7aeac813c7884b2ccc6c1e3  gcc/testsuite/gcc.dg/pr51628-25.c
  477326e7a093fbe58e1df83a33b692d2  gcc/testsuite/gcc.dg/pr51628-34.c
  24d7d553df59ac2694dc3ca36e4da9aa  gcc/testsuite/gcc.dg/pr51644.c
  9c6f2d21efe57b13f2204f1dd4b21bff  gcc/testsuite/gcc.dg/pr51683.c
--- 47291,47299 ----
*************** b81900d9ad3fcbe05c4ed65ac7256e11  gcc/te
*** 45098,45104 ****
  07824df135f4349df5c421e2761c7ecc  gcc/testsuite/gcc.dg/pr54121.c
  ea5f69dac6c7008be4f907d24e559c42  gcc/testsuite/gcc.dg/pr54346.c
  d29cdb734b585413f64cca717aec325c  gcc/testsuite/gcc.dg/pr54355.c
! 8a2ea91a96747976b46923fd8abd89fc  gcc/testsuite/gcc.dg/pr54363.c
  612ee5bfe180d9a9545ce42edbf4098c  gcc/testsuite/gcc.dg/pr54472.c
  af4bc8fe0dc212c698c2e0dd7f0c0b83  gcc/testsuite/gcc.dg/pr54669.c
  d0b073e0c8ec059684038af46bbcf95a  gcc/testsuite/gcc.dg/pr54676.c
--- 47373,47379 ----
  07824df135f4349df5c421e2761c7ecc  gcc/testsuite/gcc.dg/pr54121.c
  ea5f69dac6c7008be4f907d24e559c42  gcc/testsuite/gcc.dg/pr54346.c
  d29cdb734b585413f64cca717aec325c  gcc/testsuite/gcc.dg/pr54355.c
! 083b3830e09aa426eb24d3234d3d291a  gcc/testsuite/gcc.dg/pr54363.c
  612ee5bfe180d9a9545ce42edbf4098c  gcc/testsuite/gcc.dg/pr54472.c
  af4bc8fe0dc212c698c2e0dd7f0c0b83  gcc/testsuite/gcc.dg/pr54669.c
  d0b073e0c8ec059684038af46bbcf95a  gcc/testsuite/gcc.dg/pr54676.c
*************** c02fa2301e188a2a455f9e563251e0ab  gcc/te
*** 45116,45122 ****
  1d8c36210d3670ed7233860a3ae6d969  gcc/testsuite/gcc.dg/pr55122.c
  2feff382cd1763b0f7fcb4d1fbd09d8c  gcc/testsuite/gcc.dg/pr55150-1.c
  318809cf4617ac74fa55ca4c401067dd  gcc/testsuite/gcc.dg/pr55150-2.c
! 0e3c63cb0b0745c1e5ea196dd1af7d50  gcc/testsuite/gcc.dg/pr55152-2.c
  815043146bd85da5bcefd5235fc403ab  gcc/testsuite/gcc.dg/pr55152.c
  6ce0cac6549a893cdf7f5bffc7f596ba  gcc/testsuite/gcc.dg/pr55153.c
  33b8d22c163e4008eca016572aae682e  gcc/testsuite/gcc.dg/pr55191.c
--- 47391,47397 ----
  1d8c36210d3670ed7233860a3ae6d969  gcc/testsuite/gcc.dg/pr55122.c
  2feff382cd1763b0f7fcb4d1fbd09d8c  gcc/testsuite/gcc.dg/pr55150-1.c
  318809cf4617ac74fa55ca4c401067dd  gcc/testsuite/gcc.dg/pr55150-2.c
! aa91db30f4a67a45b35a7ea2607df8a7  gcc/testsuite/gcc.dg/pr55152-2.c
  815043146bd85da5bcefd5235fc403ab  gcc/testsuite/gcc.dg/pr55152.c
  6ce0cac6549a893cdf7f5bffc7f596ba  gcc/testsuite/gcc.dg/pr55153.c
  33b8d22c163e4008eca016572aae682e  gcc/testsuite/gcc.dg/pr55191.c
*************** f3aafc1ac1826a17da4a7cda0097be39  gcc/te
*** 45152,45164 ****
  ef3410d3545c2b9132200b302b552936  gcc/testsuite/gcc.dg/pr56510.c
  e4a2d97c5aa27b96f13bb39a2628cf46  gcc/testsuite/gcc.dg/pr56548.c
  2534f2dabfd4bac8a897b73256d962ee  gcc/testsuite/gcc.dg/pr56724-1.c
! 94613aef8331dce3090f3d0f2b06f4fc  gcc/testsuite/gcc.dg/pr56724-2.c
  fe7ed549d28272f92eefa456f8f14385  gcc/testsuite/gcc.dg/pr56724-3.c
  bb5fccf7a55d79a7791b33fabe4c113e  gcc/testsuite/gcc.dg/pr56727-1.c
  f06d51365d517484132cde7cdec349d9  gcc/testsuite/gcc.dg/pr56727-2.c
  b93ca323776283280bb9a60242ee3b5c  gcc/testsuite/gcc.dg/pr56809.c
  c190644fa957e1a9b70d4a1173fb83f8  gcc/testsuite/gcc.dg/pr56824.c
! 4f0e0f47263f76400e1e9e51ba922fc5  gcc/testsuite/gcc.dg/pr56837.c
  f26f8c6b2b3adcb38915f56973447282  gcc/testsuite/gcc.dg/pr56847.c
  df4b816776f2c4e40c56112e07abeeca  gcc/testsuite/gcc.dg/pr56890-1.c
  8fe731c15e241e6c041ba662739f3d48  gcc/testsuite/gcc.dg/pr56890-2.c
--- 47427,47439 ----
  ef3410d3545c2b9132200b302b552936  gcc/testsuite/gcc.dg/pr56510.c
  e4a2d97c5aa27b96f13bb39a2628cf46  gcc/testsuite/gcc.dg/pr56548.c
  2534f2dabfd4bac8a897b73256d962ee  gcc/testsuite/gcc.dg/pr56724-1.c
! 73136464d3ed7dd06f6f6d1a45f0ef65  gcc/testsuite/gcc.dg/pr56724-2.c
  fe7ed549d28272f92eefa456f8f14385  gcc/testsuite/gcc.dg/pr56724-3.c
  bb5fccf7a55d79a7791b33fabe4c113e  gcc/testsuite/gcc.dg/pr56727-1.c
  f06d51365d517484132cde7cdec349d9  gcc/testsuite/gcc.dg/pr56727-2.c
  b93ca323776283280bb9a60242ee3b5c  gcc/testsuite/gcc.dg/pr56809.c
  c190644fa957e1a9b70d4a1173fb83f8  gcc/testsuite/gcc.dg/pr56824.c
! 91d819e653b4d46ff4a7d8d59dfbd578  gcc/testsuite/gcc.dg/pr56837.c
  f26f8c6b2b3adcb38915f56973447282  gcc/testsuite/gcc.dg/pr56847.c
  df4b816776f2c4e40c56112e07abeeca  gcc/testsuite/gcc.dg/pr56890-1.c
  8fe731c15e241e6c041ba662739f3d48  gcc/testsuite/gcc.dg/pr56890-2.c
*************** b251d85be9287376d6d25c7e58b66101  gcc/te
*** 45214,45220 ****
  9a43e00eba3fd0eefb7a0854b0b7f452  gcc/testsuite/gcc.dg/pr59523.c
  aea8bec089c6d2a626215ee12c116402  gcc/testsuite/gcc.dg/pr59605-2.c
  3cc91310c2b368813c209fd05c92ab4f  gcc/testsuite/gcc.dg/pr59605.c
! 55c9fe0cd13f84f8bfdecf2a2db9156c  gcc/testsuite/gcc.dg/pr59630.c
  4d5986bb06bd938fb823607ac3d8df24  gcc/testsuite/gcc.dg/pr59643.c
  37619a86b62bdb2aeb36a81a3e760620  gcc/testsuite/gcc.dg/pr59670.c
  9d9fb94a4a58e8d2bd57be4d21b5cb7d  gcc/testsuite/gcc.dg/pr59717.c
--- 47489,47495 ----
  9a43e00eba3fd0eefb7a0854b0b7f452  gcc/testsuite/gcc.dg/pr59523.c
  aea8bec089c6d2a626215ee12c116402  gcc/testsuite/gcc.dg/pr59605-2.c
  3cc91310c2b368813c209fd05c92ab4f  gcc/testsuite/gcc.dg/pr59605.c
! 56c5b356e100ce7002e76a634c37e58f  gcc/testsuite/gcc.dg/pr59630.c
  4d5986bb06bd938fb823607ac3d8df24  gcc/testsuite/gcc.dg/pr59643.c
  37619a86b62bdb2aeb36a81a3e760620  gcc/testsuite/gcc.dg/pr59670.c
  9d9fb94a4a58e8d2bd57be4d21b5cb7d  gcc/testsuite/gcc.dg/pr59717.c
*************** d2c91f0601aece029dd3340da8167e6d  gcc/te
*** 45258,45267 ****
  fd6d55cfa9bf35d351e1a730e13d5043  gcc/testsuite/gcc.dg/pr61058.c
  e2d94f81ab73335d50800841dbd4b12c  gcc/testsuite/gcc.dg/pr61060.c
  5a9d386362e104a85e47611c5e368830  gcc/testsuite/gcc.dg/pr61077.c
! 70906d02431b537ddb9417d4632f567f  gcc/testsuite/gcc.dg/pr61096-1.c
  e9f7cfac9bbb82f94ba17e371af853b0  gcc/testsuite/gcc.dg/pr61096-2.c
  b358e4a8210bfc8692a1c2a738bba969  gcc/testsuite/gcc.dg/pr61158.c
! 4f2f3101076ad61604b0b0a351c21bab  gcc/testsuite/gcc.dg/pr61162-2.c
  2398edb39c8e34021e85e5769fcd0bbd  gcc/testsuite/gcc.dg/pr61162.c
  6d95afd7770049e2a0f113d54fedeefd  gcc/testsuite/gcc.dg/pr61220.c
  a9f1277a67e8ebfd814ebc53b9c5ab6b  gcc/testsuite/gcc.dg/pr61240.c
--- 47533,47543 ----
  fd6d55cfa9bf35d351e1a730e13d5043  gcc/testsuite/gcc.dg/pr61058.c
  e2d94f81ab73335d50800841dbd4b12c  gcc/testsuite/gcc.dg/pr61060.c
  5a9d386362e104a85e47611c5e368830  gcc/testsuite/gcc.dg/pr61077.c
! e8381405ffb7325c1c10f06693256df0  gcc/testsuite/gcc.dg/pr61096-1.c
  e9f7cfac9bbb82f94ba17e371af853b0  gcc/testsuite/gcc.dg/pr61096-2.c
  b358e4a8210bfc8692a1c2a738bba969  gcc/testsuite/gcc.dg/pr61158.c
! 7ba44d553148ce11d4f3196df4e71fe5  gcc/testsuite/gcc.dg/pr61162-2.c
! d94b234e8cc14c721761c3e89ac2ba92  gcc/testsuite/gcc.dg/pr61162-3.c
  2398edb39c8e34021e85e5769fcd0bbd  gcc/testsuite/gcc.dg/pr61162.c
  6d95afd7770049e2a0f113d54fedeefd  gcc/testsuite/gcc.dg/pr61220.c
  a9f1277a67e8ebfd814ebc53b9c5ab6b  gcc/testsuite/gcc.dg/pr61240.c
*************** ebf8881e5c4d408113e36e00f06f3998  gcc/te
*** 45276,45284 ****
  d08bf03e5480dcb46ca5529dec396fe6  gcc/testsuite/gcc.dg/pr61776.c
  aa4f70862e42a3cac49c7aea73a073fd  gcc/testsuite/gcc.dg/pr61817-1.c
  06b70cc9fcb572cb3bbd86a9f4a062e7  gcc/testsuite/gcc.dg/pr61817-2.c
! ecbb1c9ba59072941431427be6968c06  gcc/testsuite/gcc.dg/pr61852.c
  bb11d9cbbd043000e4600a429ceddeb4  gcc/testsuite/gcc.dg/pr61861.c
! 460d5e1fb769cf810732f31ec48030d1  gcc/testsuite/gcc.dg/pr61868.c
  71ac40f015127df76654ea6e22918e63  gcc/testsuite/gcc.dg/pr62004.c
  c1805b15ade6ad9e612ccb2cf6f42150  gcc/testsuite/gcc.dg/pr62024.c
  bd4064e0367064ef7a80137afba01057  gcc/testsuite/gcc.dg/pr62030.c
--- 47552,47560 ----
  d08bf03e5480dcb46ca5529dec396fe6  gcc/testsuite/gcc.dg/pr61776.c
  aa4f70862e42a3cac49c7aea73a073fd  gcc/testsuite/gcc.dg/pr61817-1.c
  06b70cc9fcb572cb3bbd86a9f4a062e7  gcc/testsuite/gcc.dg/pr61817-2.c
! 9111e228ff90d7660e4c2afb3ba090ad  gcc/testsuite/gcc.dg/pr61852.c
  bb11d9cbbd043000e4600a429ceddeb4  gcc/testsuite/gcc.dg/pr61861.c
! d562eabe3f66c3c7c9c7d728952974c0  gcc/testsuite/gcc.dg/pr61868.c
  71ac40f015127df76654ea6e22918e63  gcc/testsuite/gcc.dg/pr62004.c
  c1805b15ade6ad9e612ccb2cf6f42150  gcc/testsuite/gcc.dg/pr62024.c
  bd4064e0367064ef7a80137afba01057  gcc/testsuite/gcc.dg/pr62030.c
*************** c9a82b59038b9527c9c9c41958f89b87  gcc/te
*** 45396,45402 ****
  8bf319e0a2f06c4b5658fbfaa0016960  gcc/testsuite/gcc.dg/pr66899.c
  9b83e97ecb4b549b8c90122cd4fbd1f8  gcc/testsuite/gcc.dg/pr67028.c
  22b215a01a6d868774c721c1885d3cb4  gcc/testsuite/gcc.dg/pr67029.c
! 3bdd411daaf657eff705549dade39a9b  gcc/testsuite/gcc.dg/pr67043.c
  4a6176599c3f489957bd2adff3bdefa6  gcc/testsuite/gcc.dg/pr67077.c
  23d2dd45f435f89a4f77c8b0f4f91426  gcc/testsuite/gcc.dg/pr67088.c
  848b133d63387b013a49d4509d92a243  gcc/testsuite/gcc.dg/pr67089-1.c
--- 47672,47678 ----
  8bf319e0a2f06c4b5658fbfaa0016960  gcc/testsuite/gcc.dg/pr66899.c
  9b83e97ecb4b549b8c90122cd4fbd1f8  gcc/testsuite/gcc.dg/pr67028.c
  22b215a01a6d868774c721c1885d3cb4  gcc/testsuite/gcc.dg/pr67029.c
! 9e5ea77283421a1d6bdc6a11ef05f768  gcc/testsuite/gcc.dg/pr67043.c
  4a6176599c3f489957bd2adff3bdefa6  gcc/testsuite/gcc.dg/pr67077.c
  23d2dd45f435f89a4f77c8b0f4f91426  gcc/testsuite/gcc.dg/pr67088.c
  848b133d63387b013a49d4509d92a243  gcc/testsuite/gcc.dg/pr67089-1.c
*************** c7c4b7705622efa27fdc0b569d8c2977  gcc/te
*** 45416,45427 ****
  26420e282f9c8903f34baea4ce4e2835  gcc/testsuite/gcc.dg/pr67512.c
  a39be8d5fa60b3651da74fef3cc009f5  gcc/testsuite/gcc.dg/pr67563.c
  029aebb2f9e40fda30114345bb5a0879  gcc/testsuite/gcc.dg/pr67580.c
! b501c41d88536640ee6fb443cdfed70b  gcc/testsuite/gcc.dg/pr67730-1.c
! 6b9c20819fdb2e05a773e1c73869fc1e  gcc/testsuite/gcc.dg/pr67730-2.c
! 2486cf16676499bbbdb97ee70343e770  gcc/testsuite/gcc.dg/pr67730.c
  c45551dd8d8013b5bcaaaa846bd05c11  gcc/testsuite/gcc.dg/pr67730.h
  03033b4d2292bed3ebe7963c83062a05  gcc/testsuite/gcc.dg/pr67784-1.c
! b9fea8cc79bb6b3bc8392e090fe586d7  gcc/testsuite/gcc.dg/pr67784-2.c
  e3cd3ddb3f43ee48d292909be86aa614  gcc/testsuite/gcc.dg/pr67784-3.c
  9d07acaa2f6130ce2c55e363587c02a6  gcc/testsuite/gcc.dg/pr67784-4.c
  08bf883422217238bc3840dcb3a3e609  gcc/testsuite/gcc.dg/pr67784-5.c
--- 47692,47704 ----
  26420e282f9c8903f34baea4ce4e2835  gcc/testsuite/gcc.dg/pr67512.c
  a39be8d5fa60b3651da74fef3cc009f5  gcc/testsuite/gcc.dg/pr67563.c
  029aebb2f9e40fda30114345bb5a0879  gcc/testsuite/gcc.dg/pr67580.c
! 766bd676462c252c0b12e8446cdc45b2  gcc/testsuite/gcc.dg/pr67730-1.c
! 4b201071131315f769ad31d03b05ccc4  gcc/testsuite/gcc.dg/pr67730-2.c
! ccb9116ceb70e733f5cace3a8488ccb4  gcc/testsuite/gcc.dg/pr67730-a.c
! 48eadcb6e2afa86800e28027285e6e9b  gcc/testsuite/gcc.dg/pr67730.c
  c45551dd8d8013b5bcaaaa846bd05c11  gcc/testsuite/gcc.dg/pr67730.h
  03033b4d2292bed3ebe7963c83062a05  gcc/testsuite/gcc.dg/pr67784-1.c
! 5d9c954237ac7a5ac9cb0d7262f3fdf5  gcc/testsuite/gcc.dg/pr67784-2.c
  e3cd3ddb3f43ee48d292909be86aa614  gcc/testsuite/gcc.dg/pr67784-3.c
  9d07acaa2f6130ce2c55e363587c02a6  gcc/testsuite/gcc.dg/pr67784-4.c
  08bf883422217238bc3840dcb3a3e609  gcc/testsuite/gcc.dg/pr67784-5.c
*************** bafa800c13b3f396448834609a245b9f  gcc/te
*** 45437,45454 ****
  fe7ef582e37d9691649dc50a2e0357f2  gcc/testsuite/gcc.dg/pr68129_1.c
  18d42254aaeedf3ee06abcca146f8308  gcc/testsuite/gcc.dg/pr68134.c
  4f48371433fff03f9edb551983ceaf91  gcc/testsuite/gcc.dg/pr68162-1.c
  a9a2c019da5ff110f4ba92e331569775  gcc/testsuite/gcc.dg/pr68217.c
  676afbe2455b670ba0309593d30aeb84  gcc/testsuite/gcc.dg/pr68286.c
  244993ecc8cf3673159d65b46a85e488  gcc/testsuite/gcc.dg/pr68306-2.c
  821e8f1eb04499179f7605c25960f8f3  gcc/testsuite/gcc.dg/pr68306-3.c
  55e36468fb3a1a867386a779d86b0d1e  gcc/testsuite/gcc.dg/pr68306.c
  8ae8f7633c4411f5a9d099567688c09e  gcc/testsuite/gcc.dg/pr68317.c
! a6babb5906e3c7d406659baa4eed07d9  gcc/testsuite/gcc.dg/pr68320.c
  612ebbeb3a70817569e18294f309b0a2  gcc/testsuite/gcc.dg/pr68327.c
  0da4236c106cfafd8cfab8e41f71b442  gcc/testsuite/gcc.dg/pr68375.c
  34d2d48b78c896fc14701c70eb86bfa0  gcc/testsuite/gcc.dg/pr68412-2.c
  88bae10ec68d495c9197ab8d6307a055  gcc/testsuite/gcc.dg/pr68412.c
! 1527d6beba148c1d8b4945daf571b68a  gcc/testsuite/gcc.dg/pr68435.c
  180685ff5aaf4ddc0d3f2d1a39176fa5  gcc/testsuite/gcc.dg/pr68474.c
  934181169c6a5ecc22506c06a8916b09  gcc/testsuite/gcc.dg/pr68513.c
  17dcc791ef1d73cb0a521d8afdd4bbff  gcc/testsuite/gcc.dg/pr68533.c
--- 47714,47732 ----
  fe7ef582e37d9691649dc50a2e0357f2  gcc/testsuite/gcc.dg/pr68129_1.c
  18d42254aaeedf3ee06abcca146f8308  gcc/testsuite/gcc.dg/pr68134.c
  4f48371433fff03f9edb551983ceaf91  gcc/testsuite/gcc.dg/pr68162-1.c
+ 7115d6866eae64c6701e986910279f74  gcc/testsuite/gcc.dg/pr68193.c
  a9a2c019da5ff110f4ba92e331569775  gcc/testsuite/gcc.dg/pr68217.c
  676afbe2455b670ba0309593d30aeb84  gcc/testsuite/gcc.dg/pr68286.c
  244993ecc8cf3673159d65b46a85e488  gcc/testsuite/gcc.dg/pr68306-2.c
  821e8f1eb04499179f7605c25960f8f3  gcc/testsuite/gcc.dg/pr68306-3.c
  55e36468fb3a1a867386a779d86b0d1e  gcc/testsuite/gcc.dg/pr68306.c
  8ae8f7633c4411f5a9d099567688c09e  gcc/testsuite/gcc.dg/pr68317.c
! 4302d0d3d03ae8942af854e5cd33c8e3  gcc/testsuite/gcc.dg/pr68320.c
  612ebbeb3a70817569e18294f309b0a2  gcc/testsuite/gcc.dg/pr68327.c
  0da4236c106cfafd8cfab8e41f71b442  gcc/testsuite/gcc.dg/pr68375.c
  34d2d48b78c896fc14701c70eb86bfa0  gcc/testsuite/gcc.dg/pr68412-2.c
  88bae10ec68d495c9197ab8d6307a055  gcc/testsuite/gcc.dg/pr68412.c
! e6f6937c9e34a019ef1623c282971f9a  gcc/testsuite/gcc.dg/pr68435.c
  180685ff5aaf4ddc0d3f2d1a39176fa5  gcc/testsuite/gcc.dg/pr68474.c
  934181169c6a5ecc22506c06a8916b09  gcc/testsuite/gcc.dg/pr68513.c
  17dcc791ef1d73cb0a521d8afdd4bbff  gcc/testsuite/gcc.dg/pr68533.c
*************** ea32f1c8046a96724b1e08bfc887f5e6  gcc/te
*** 45471,45477 ****
  55bdde3017c469b5c2cc6de510d0701e  gcc/testsuite/gcc.dg/pr69071.c
  31b60f3303cfcbc3553f84ae11924b0d  gcc/testsuite/gcc.dg/pr69097-1.c
  888c4c2ebea746632d3bed498e889d29  gcc/testsuite/gcc.dg/pr69097-2.c
! be4ee8215bb41a15289a83b48beca961  gcc/testsuite/gcc.dg/pr69156.c
  cc54694cf1e606b299ce05a8c96ffd5d  gcc/testsuite/gcc.dg/pr69162.c
  7506e2016bb4a153119aed31e41f2aec  gcc/testsuite/gcc.dg/pr69167.c
  fe217a0107a76d8937b20f139ada0789  gcc/testsuite/gcc.dg/pr69169.c
--- 47749,47755 ----
  55bdde3017c469b5c2cc6de510d0701e  gcc/testsuite/gcc.dg/pr69071.c
  31b60f3303cfcbc3553f84ae11924b0d  gcc/testsuite/gcc.dg/pr69097-1.c
  888c4c2ebea746632d3bed498e889d29  gcc/testsuite/gcc.dg/pr69097-2.c
! 611ad8b99818e4242cc8a5596b178c49  gcc/testsuite/gcc.dg/pr69156.c
  cc54694cf1e606b299ce05a8c96ffd5d  gcc/testsuite/gcc.dg/pr69162.c
  7506e2016bb4a153119aed31e41f2aec  gcc/testsuite/gcc.dg/pr69167.c
  fe217a0107a76d8937b20f139ada0789  gcc/testsuite/gcc.dg/pr69169.c
*************** d51a561260f88ada670c134fdaf509cd  gcc/te
*** 45506,45512 ****
  4e4f2312383cca520412f9da06f25cc5  gcc/testsuite/gcc.dg/pr69801.c
  78218b638caf9f113c9ac7db2872e4a0  gcc/testsuite/gcc.dg/pr69802.c
  3a246deda2ad240af326638e8239067b  gcc/testsuite/gcc.dg/pr69819.c
! f6ffece9984a995955e70b807b1fde78  gcc/testsuite/gcc.dg/pr69824.c
  8062d7f3915236fb4a273e373d6adba2  gcc/testsuite/gcc.dg/pr69885.c
  cbdaeedde95b865c383e0c983b9ac366  gcc/testsuite/gcc.dg/pr69896.c
  9a19bcff0b953ba0ef196a05dff677f3  gcc/testsuite/gcc.dg/pr69900.c
--- 47784,47790 ----
  4e4f2312383cca520412f9da06f25cc5  gcc/testsuite/gcc.dg/pr69801.c
  78218b638caf9f113c9ac7db2872e4a0  gcc/testsuite/gcc.dg/pr69802.c
  3a246deda2ad240af326638e8239067b  gcc/testsuite/gcc.dg/pr69819.c
! c5113ea9155e0093a0fe94b56d774235  gcc/testsuite/gcc.dg/pr69824.c
  8062d7f3915236fb4a273e373d6adba2  gcc/testsuite/gcc.dg/pr69885.c
  cbdaeedde95b865c383e0c983b9ac366  gcc/testsuite/gcc.dg/pr69896.c
  9a19bcff0b953ba0ef196a05dff677f3  gcc/testsuite/gcc.dg/pr69900.c
*************** c32e69e0b15af869a3408b989cf2a673  gcc/te
*** 45525,45540 ****
  460d8e73cab3e6784b930f92855788fa  gcc/testsuite/gcc.dg/pr70161-2.c
  f8e2fa4ae6dc1040ed9c1a1c0a9c60bf  gcc/testsuite/gcc.dg/pr70161.c
  463fcd186254e2c4c3914b8865d46c4b  gcc/testsuite/gcc.dg/pr70169.c
! ebba30b35280b052f9b4430e359d81a6  gcc/testsuite/gcc.dg/pr70174.c
  5a875c740aedd4dc64ede0baa88152db  gcc/testsuite/gcc.dg/pr70177.c
  e8fdbe08a6947f6557322a9782cecdbc  gcc/testsuite/gcc.dg/pr70219.c
  739cba5a2995c109ebac171a273aed82  gcc/testsuite/gcc.dg/pr70252.c
  c67417bef7b2de68b948a03f52093a75  gcc/testsuite/gcc.dg/pr70269.c
! fa42fa5837dc78f6275d757725f9415f  gcc/testsuite/gcc.dg/pr70281.c
  57c9de9e853c7a496ceb07c57443560a  gcc/testsuite/gcc.dg/pr70292.c
  486b43a7c4dc83dc79da4f5547383955  gcc/testsuite/gcc.dg/pr70317.c
  866611622329fa10b4510034ca67a894  gcc/testsuite/gcc.dg/pr70326.c
  9b876d092c02858272d53c2649401ae8  gcc/testsuite/gcc.dg/pr70405.c
  ac328b834a1ea6428569ff38945772b0  gcc/testsuite/gcc.dg/pr70442.c
  3d94be0ce2dae6f1f4b431750028673c  gcc/testsuite/gcc.dg/pr70700.c
  36a35251047803a79950fef784d13ae4  gcc/testsuite/gcc.dg/pr70725.c
--- 47803,47819 ----
  460d8e73cab3e6784b930f92855788fa  gcc/testsuite/gcc.dg/pr70161-2.c
  f8e2fa4ae6dc1040ed9c1a1c0a9c60bf  gcc/testsuite/gcc.dg/pr70161.c
  463fcd186254e2c4c3914b8865d46c4b  gcc/testsuite/gcc.dg/pr70169.c
! c46afde963d041b746697fde71e1507a  gcc/testsuite/gcc.dg/pr70174.c
  5a875c740aedd4dc64ede0baa88152db  gcc/testsuite/gcc.dg/pr70177.c
  e8fdbe08a6947f6557322a9782cecdbc  gcc/testsuite/gcc.dg/pr70219.c
  739cba5a2995c109ebac171a273aed82  gcc/testsuite/gcc.dg/pr70252.c
  c67417bef7b2de68b948a03f52093a75  gcc/testsuite/gcc.dg/pr70269.c
! fca7445c9f18414b61317576f98124b8  gcc/testsuite/gcc.dg/pr70281.c
  57c9de9e853c7a496ceb07c57443560a  gcc/testsuite/gcc.dg/pr70292.c
  486b43a7c4dc83dc79da4f5547383955  gcc/testsuite/gcc.dg/pr70317.c
  866611622329fa10b4510034ca67a894  gcc/testsuite/gcc.dg/pr70326.c
  9b876d092c02858272d53c2649401ae8  gcc/testsuite/gcc.dg/pr70405.c
+ 7b868cf3d1f605d166ff1ae431d26cb4  gcc/testsuite/gcc.dg/pr70418.c
  ac328b834a1ea6428569ff38945772b0  gcc/testsuite/gcc.dg/pr70442.c
  3d94be0ce2dae6f1f4b431750028673c  gcc/testsuite/gcc.dg/pr70700.c
  36a35251047803a79950fef784d13ae4  gcc/testsuite/gcc.dg/pr70725.c
*************** e05d98a959f2f668c84f75a7ef1c1bf5  gcc/te
*** 45557,45563 ****
  3c164324f0b2787d9f354342477a3843  gcc/testsuite/gcc.dg/pr71104-1.c
  cd6384cce6d749c94d09ceb5ff92b5da  gcc/testsuite/gcc.dg/pr71104-2.c
  5684d1c0368ae4de0fd31ee6e577d71e  gcc/testsuite/gcc.dg/pr71148.c
! dc3c7225f47bd3f37227cbbb8d77804b  gcc/testsuite/gcc.dg/pr71279.c
  3d37594011e2b17c95916d7a93b445c5  gcc/testsuite/gcc.dg/pr71280.c
  d8fb37a88dd6af67ddf26141a988183a  gcc/testsuite/gcc.dg/pr71289.c
  33c1716c8b3aeef4c91f6dd22650e0df  gcc/testsuite/gcc.dg/pr71343-1.c
--- 47836,47842 ----
  3c164324f0b2787d9f354342477a3843  gcc/testsuite/gcc.dg/pr71104-1.c
  cd6384cce6d749c94d09ceb5ff92b5da  gcc/testsuite/gcc.dg/pr71104-2.c
  5684d1c0368ae4de0fd31ee6e577d71e  gcc/testsuite/gcc.dg/pr71148.c
! edbd52ef3b191265057cff0c79b54f34  gcc/testsuite/gcc.dg/pr71279.c
  3d37594011e2b17c95916d7a93b445c5  gcc/testsuite/gcc.dg/pr71280.c
  d8fb37a88dd6af67ddf26141a988183a  gcc/testsuite/gcc.dg/pr71289.c
  33c1716c8b3aeef4c91f6dd22650e0df  gcc/testsuite/gcc.dg/pr71343-1.c
*************** de363b2498e48d7d080b1376114f5b49  gcc/te
*** 45596,45602 ****
  a45d8a7ea58bf6c772c8fa0d9d6f1ca5  gcc/testsuite/gcc.dg/pr77673.c
  7b4000046bfacc476cc593d31d924258  gcc/testsuite/gcc.dg/pr77834.c
  8fb4c574c5adf7215daaa687ac164da5  gcc/testsuite/gcc.dg/pr77860.c
! 3f2cb00a662837941189f51adc2d8214  gcc/testsuite/gcc.dg/pr77862.c
  9bab0eefb1f67d8cb761385476ed39f4  gcc/testsuite/gcc.dg/pr77975.c
  a777a206da2c1bfe3ba53d32fb8b2e9c  gcc/testsuite/gcc.dg/pr78138.c
  427e79810052c59fa2a8c9b43fbdfa29  gcc/testsuite/gcc.dg/pr78148.c
--- 47875,47881 ----
  a45d8a7ea58bf6c772c8fa0d9d6f1ca5  gcc/testsuite/gcc.dg/pr77673.c
  7b4000046bfacc476cc593d31d924258  gcc/testsuite/gcc.dg/pr77834.c
  8fb4c574c5adf7215daaa687ac164da5  gcc/testsuite/gcc.dg/pr77860.c
! 348044d86200a84fadb30b265b7ba207  gcc/testsuite/gcc.dg/pr77862.c
  9bab0eefb1f67d8cb761385476ed39f4  gcc/testsuite/gcc.dg/pr77975.c
  a777a206da2c1bfe3ba53d32fb8b2e9c  gcc/testsuite/gcc.dg/pr78138.c
  427e79810052c59fa2a8c9b43fbdfa29  gcc/testsuite/gcc.dg/pr78148.c
*************** c5719c018c12b0a0dfafc5cce8663b35  gcc/te
*** 45676,45682 ****
  423e68203f69b77d89938e7e12632466  gcc/testsuite/gcc.dg/pr81020.c
  0e9fa6d863f3301949fcec2f6c5d73ec  gcc/testsuite/gcc.dg/pr81030.c
  66ddd134037471a6a0f9653a3d3cee47  gcc/testsuite/gcc.dg/pr81165.c
! b491d1bc57ee8efd2d0cb606d3ba98d4  gcc/testsuite/gcc.dg/pr81192.c
  597afe973f83e86d9b7fde6d5683f0a2  gcc/testsuite/gcc.dg/pr81227.c
  f8b9e7e40bbdc976061399c74f48e7e0  gcc/testsuite/gcc.dg/pr81228.c
  db7151f89bb35a308fb76b916ed6af28  gcc/testsuite/gcc.dg/pr81281-1.c
--- 47955,47961 ----
  423e68203f69b77d89938e7e12632466  gcc/testsuite/gcc.dg/pr81020.c
  0e9fa6d863f3301949fcec2f6c5d73ec  gcc/testsuite/gcc.dg/pr81030.c
  66ddd134037471a6a0f9653a3d3cee47  gcc/testsuite/gcc.dg/pr81165.c
! d8ebff2bcd6c2c287f60df284484a234  gcc/testsuite/gcc.dg/pr81192.c
  597afe973f83e86d9b7fde6d5683f0a2  gcc/testsuite/gcc.dg/pr81227.c
  f8b9e7e40bbdc976061399c74f48e7e0  gcc/testsuite/gcc.dg/pr81228.c
  db7151f89bb35a308fb76b916ed6af28  gcc/testsuite/gcc.dg/pr81281-1.c
*************** b28312731883249096b369ec396b5d93  gcc/te
*** 45715,45721 ****
  d0ad725b61443532ff6f658b865edb3d  gcc/testsuite/gcc.dg/pr82596.c
  f22dd8c91991123c128bf55dc061361a  gcc/testsuite/gcc.dg/pr82597.c
  ae605184856a82a47dbd32ae477f514f  gcc/testsuite/gcc.dg/pr82703.c
! 090f08b3a0f18a09d76a66610bb47031  gcc/testsuite/gcc.dg/pr82765.c
  e77d1488aab50c40d308ea8d40193e07  gcc/testsuite/gcc.dg/pr82788.c
  f033acbc387fbfc3cc80c2bb7eb16554  gcc/testsuite/gcc.dg/pr82809.c
  926bb5d76c1c3805f39aff025afdf392  gcc/testsuite/gcc.dg/pr82863.c
--- 47994,48000 ----
  d0ad725b61443532ff6f658b865edb3d  gcc/testsuite/gcc.dg/pr82596.c
  f22dd8c91991123c128bf55dc061361a  gcc/testsuite/gcc.dg/pr82597.c
  ae605184856a82a47dbd32ae477f514f  gcc/testsuite/gcc.dg/pr82703.c
! a5e9983b1435bb8837871cf1cb99e588  gcc/testsuite/gcc.dg/pr82765.c
  e77d1488aab50c40d308ea8d40193e07  gcc/testsuite/gcc.dg/pr82788.c
  f033acbc387fbfc3cc80c2bb7eb16554  gcc/testsuite/gcc.dg/pr82809.c
  926bb5d76c1c3805f39aff025afdf392  gcc/testsuite/gcc.dg/pr82863.c
*************** fd3c9dad463ae33d02b4e94dbd632234  gcc/te
*** 45729,45735 ****
  9afadc7286f5f425c917815b09088199  gcc/testsuite/gcc.dg/pr83047.c
  3e5041473efe3b22e02270b61876ffeb  gcc/testsuite/gcc.dg/pr83072-2.c
  532ab37475e69baa2e1cfaaa30b1b9b3  gcc/testsuite/gcc.dg/pr83072.c
! c1804299d67bf5c8bb4cdc800844ef3f  gcc/testsuite/gcc.dg/pr83073.c
  f07888e58b74d33a6e69cb7e1bff68f5  gcc/testsuite/gcc.dg/pr83089.c
  f15d9e8b068a360ba0c22ea156c8aa69  gcc/testsuite/gcc.dg/pr83100-1.c
  ac3acd9e7ede2310f45dd30cb994a455  gcc/testsuite/gcc.dg/pr83100-2.c
--- 48008,48014 ----
  9afadc7286f5f425c917815b09088199  gcc/testsuite/gcc.dg/pr83047.c
  3e5041473efe3b22e02270b61876ffeb  gcc/testsuite/gcc.dg/pr83072-2.c
  532ab37475e69baa2e1cfaaa30b1b9b3  gcc/testsuite/gcc.dg/pr83072.c
! 0c9f1f8e5af4de42fa598c6fe722fb08  gcc/testsuite/gcc.dg/pr83073.c
  f07888e58b74d33a6e69cb7e1bff68f5  gcc/testsuite/gcc.dg/pr83089.c
  f15d9e8b068a360ba0c22ea156c8aa69  gcc/testsuite/gcc.dg/pr83100-1.c
  ac3acd9e7ede2310f45dd30cb994a455  gcc/testsuite/gcc.dg/pr83100-2.c
*************** fe9e33c8a4c46f238c225caf5f4d7935  gcc/te
*** 45774,45780 ****
  e53637bef6923ab6eae09ba5d651bafe  gcc/testsuite/gcc.dg/pr83771.c
  b7db39b59a66affdb99e26004f92b5db  gcc/testsuite/gcc.dg/pr83801.c
  30cd5500060c0590a514e7004bf3f3b2  gcc/testsuite/gcc.dg/pr83844.c
! 201dd112a06809a09ad070798d04a086  gcc/testsuite/gcc.dg/pr83852.c
  f18c98a6522174d4131ce51bb8396ca6  gcc/testsuite/gcc.dg/pr83913.c
  41515793e14c2520469b603b7155b95d  gcc/testsuite/gcc.dg/pr83922.c
  7322bdcabbdef7d769fc894b6e8694da  gcc/testsuite/gcc.dg/pr83930.c
--- 48053,48059 ----
  e53637bef6923ab6eae09ba5d651bafe  gcc/testsuite/gcc.dg/pr83771.c
  b7db39b59a66affdb99e26004f92b5db  gcc/testsuite/gcc.dg/pr83801.c
  30cd5500060c0590a514e7004bf3f3b2  gcc/testsuite/gcc.dg/pr83844.c
! 8efc71427eb9e0f45044adf4aa1bf290  gcc/testsuite/gcc.dg/pr83852.c
  f18c98a6522174d4131ce51bb8396ca6  gcc/testsuite/gcc.dg/pr83913.c
  41515793e14c2520469b603b7155b95d  gcc/testsuite/gcc.dg/pr83922.c
  7322bdcabbdef7d769fc894b6e8694da  gcc/testsuite/gcc.dg/pr83930.c
*************** aa5aeeb9303713d11e8680d92dbd0bb3  gcc/te
*** 45787,45793 ****
  70e4b16ceedc356882716fae5db2910c  gcc/testsuite/gcc.dg/pr84095.c
  0712819fb01550d8a1b60a1d736b34a1  gcc/testsuite/gcc.dg/pr84100.c
  b2368c15a09646fb656b3178fb41f4da  gcc/testsuite/gcc.dg/pr84131.c
! 65735bb8299cddd5582a2ab1342eb625  gcc/testsuite/gcc.dg/pr84206.c
  a43593a06b13b6090fbe6e58dd959845  gcc/testsuite/gcc.dg/pr84225.c
  8569398860bc00c2e87732809c2b291c  gcc/testsuite/gcc.dg/pr84237.c
  cb34dca6f6fc6fb4bfcf3271edd22b6e  gcc/testsuite/gcc.dg/pr84300.c
--- 48066,48072 ----
  70e4b16ceedc356882716fae5db2910c  gcc/testsuite/gcc.dg/pr84095.c
  0712819fb01550d8a1b60a1d736b34a1  gcc/testsuite/gcc.dg/pr84100.c
  b2368c15a09646fb656b3178fb41f4da  gcc/testsuite/gcc.dg/pr84131.c
! 631d64e25ebe667df224fc37813f66ff  gcc/testsuite/gcc.dg/pr84206.c
  a43593a06b13b6090fbe6e58dd959845  gcc/testsuite/gcc.dg/pr84225.c
  8569398860bc00c2e87732809c2b291c  gcc/testsuite/gcc.dg/pr84237.c
  cb34dca6f6fc6fb4bfcf3271edd22b6e  gcc/testsuite/gcc.dg/pr84300.c
*************** c63e7806c3d2d9248a99f9d2bbc5619b  gcc/te
*** 45816,45828 ****
  350ecde2080adce3b16ae868d60d4aa7  gcc/testsuite/gcc.dg/pr84841.c
  0b86071d460e95cfac961b6b9e5ddc6d  gcc/testsuite/gcc.dg/pr84853.c
  13a2c6ed4e8585ccd298c2bbe58a83f9  gcc/testsuite/gcc.dg/pr84875.c
! 2b1f11fb67ff2c482d994080b53065d1  gcc/testsuite/gcc.dg/pr84877.c
  4294a6745f3296677b46dd5bfd884901  gcc/testsuite/gcc.dg/pr84899.c
  dbf69b3874174be30af9ef57a4dddf35  gcc/testsuite/gcc.dg/pr84941.c
  10853acb471ecaea1557d0f0b8f741e4  gcc/testsuite/gcc.dg/pr84953.c
  c225bb9a94447d43ab8196e9559ae2df  gcc/testsuite/gcc.dg/pr84956.c
  6febb7d580bbfd3830c00ff452bfd33f  gcc/testsuite/gcc.dg/pr85045.c
! 4753bff64ae1e1d6ddf999a5737cc3f1  gcc/testsuite/gcc.dg/pr85164-1.c
  2f100c26812a849c9b91a84e1dd50f51  gcc/testsuite/gcc.dg/pr85164-2.c
  7b105cf4c5c1f15634bc3e69c614bd30  gcc/testsuite/gcc.dg/pr85167.c
  5635d424e24d4c97660bed71dc7eff9d  gcc/testsuite/gcc.dg/pr85180.c
--- 48095,48107 ----
  350ecde2080adce3b16ae868d60d4aa7  gcc/testsuite/gcc.dg/pr84841.c
  0b86071d460e95cfac961b6b9e5ddc6d  gcc/testsuite/gcc.dg/pr84853.c
  13a2c6ed4e8585ccd298c2bbe58a83f9  gcc/testsuite/gcc.dg/pr84875.c
! 7724c8c3ee84e082bfa917bf6e151c0d  gcc/testsuite/gcc.dg/pr84877.c
  4294a6745f3296677b46dd5bfd884901  gcc/testsuite/gcc.dg/pr84899.c
  dbf69b3874174be30af9ef57a4dddf35  gcc/testsuite/gcc.dg/pr84941.c
  10853acb471ecaea1557d0f0b8f741e4  gcc/testsuite/gcc.dg/pr84953.c
  c225bb9a94447d43ab8196e9559ae2df  gcc/testsuite/gcc.dg/pr84956.c
  6febb7d580bbfd3830c00ff452bfd33f  gcc/testsuite/gcc.dg/pr85045.c
! 95fe518a77158b5ecdc243363d268441  gcc/testsuite/gcc.dg/pr85164-1.c
  2f100c26812a849c9b91a84e1dd50f51  gcc/testsuite/gcc.dg/pr85164-2.c
  7b105cf4c5c1f15634bc3e69c614bd30  gcc/testsuite/gcc.dg/pr85167.c
  5635d424e24d4c97660bed71dc7eff9d  gcc/testsuite/gcc.dg/pr85180.c
*************** cb695ce4fc7b5c82485f5253b71e1b94  gcc/te
*** 45850,45856 ****
  455d96b214c03d6e9cf11a859c32e95f  gcc/testsuite/gcc.dg/pr85859.c
  d906368ab5f3481fc6dc6dc09f603cb0  gcc/testsuite/gcc.dg/pr85876.c
  601f5b2a64200d54ab02283def0d999d  gcc/testsuite/gcc.dg/pr85899.c
! 1c2466ed3580140df949296a1b06cdb8  gcc/testsuite/gcc.dg/pr85955.c
  55262bac3fbfbab74602a90f5b27a9ee  gcc/testsuite/gcc.dg/pr86010-2.c
  e8ffb3480fa440b95d57b5b27ecfa108  gcc/testsuite/gcc.dg/pr86010.c
  4fa81d8b8cee41548372697495c19c43  gcc/testsuite/gcc.dg/pr86038.c
--- 48129,48135 ----
  455d96b214c03d6e9cf11a859c32e95f  gcc/testsuite/gcc.dg/pr85859.c
  d906368ab5f3481fc6dc6dc09f603cb0  gcc/testsuite/gcc.dg/pr85876.c
  601f5b2a64200d54ab02283def0d999d  gcc/testsuite/gcc.dg/pr85899.c
! f1c716502291d215181a108e6b6d525c  gcc/testsuite/gcc.dg/pr85955.c
  55262bac3fbfbab74602a90f5b27a9ee  gcc/testsuite/gcc.dg/pr86010-2.c
  e8ffb3480fa440b95d57b5b27ecfa108  gcc/testsuite/gcc.dg/pr86010.c
  4fa81d8b8cee41548372697495c19c43  gcc/testsuite/gcc.dg/pr86038.c
*************** f98abf1027d4ad97dad0dff2de3386fc  gcc/te
*** 45860,45869 ****
  dbbddf5823dbcbf2da02f69c174add7a  gcc/testsuite/gcc.dg/pr86064.c
  7a01da1f64d70f7d2af4f656b97d91a3  gcc/testsuite/gcc.dg/pr86076.c
  cb556d7ecc43fb557a2f4222a58494a6  gcc/testsuite/gcc.dg/pr86114.c
! e42f2bc808c85ce8a42393651a7526fc  gcc/testsuite/gcc.dg/pr86124.c
  a8359c428353397ec48b0315ab73faba  gcc/testsuite/gcc.dg/pr86134.c
  1ad6ee86200302eb3843aafe30ff446a  gcc/testsuite/gcc.dg/pr86179.c
! 2ac00ac06cb6d4437ca066cf2a8673d1  gcc/testsuite/gcc.dg/pr86271.c
  5d811fedd1cc9c16668212aff6377a97  gcc/testsuite/gcc.dg/pr86314.c
  1bcd8d7cf72ba6538b92fc829708aa4d  gcc/testsuite/gcc.dg/pr86459.c
  8c8c33b6f45d3f9252fc8c51ddeb30b8  gcc/testsuite/gcc.dg/pr86489.c
--- 48139,48148 ----
  dbbddf5823dbcbf2da02f69c174add7a  gcc/testsuite/gcc.dg/pr86064.c
  7a01da1f64d70f7d2af4f656b97d91a3  gcc/testsuite/gcc.dg/pr86076.c
  cb556d7ecc43fb557a2f4222a58494a6  gcc/testsuite/gcc.dg/pr86114.c
! 3006b8c524bc1d3c533c606a10f64e0a  gcc/testsuite/gcc.dg/pr86124.c
  a8359c428353397ec48b0315ab73faba  gcc/testsuite/gcc.dg/pr86134.c
  1ad6ee86200302eb3843aafe30ff446a  gcc/testsuite/gcc.dg/pr86179.c
! 265d39b3933b0ecefd0cd853268889cd  gcc/testsuite/gcc.dg/pr86271.c
  5d811fedd1cc9c16668212aff6377a97  gcc/testsuite/gcc.dg/pr86314.c
  1bcd8d7cf72ba6538b92fc829708aa4d  gcc/testsuite/gcc.dg/pr86459.c
  8c8c33b6f45d3f9252fc8c51ddeb30b8  gcc/testsuite/gcc.dg/pr86489.c
*************** a8359c428353397ec48b0315ab73faba  gcc/te
*** 45871,45884 ****
  d2851550c4c046324732068307e768eb  gcc/testsuite/gcc.dg/pr86617.c
  c045d6a7155d87f33a8a58e18fc8fae0  gcc/testsuite/gcc.dg/pr86723.c
  509e988b3e613c61b734eb2102089a16  gcc/testsuite/gcc.dg/pr86835.c
! 7b7fb8ce154bde5bd83bdc72e81a3d98  gcc/testsuite/gcc.dg/pr86928.c
  79448a46523d1165571265ca2c3c651c  gcc/testsuite/gcc.dg/pr86979.c
  5b39b496783fedc62020b78e5499cfcc  gcc/testsuite/gcc.dg/pr86991.c
! 7c808c832059c7bb5915b2873124b1d5  gcc/testsuite/gcc.dg/pr87009.c
  1eccee440762e525a97556576c144d1f  gcc/testsuite/gcc.dg/pr87024.c
  92af82d0ed0498d359b9b41731157a6f  gcc/testsuite/gcc.dg/pr87025.c
  75b21a531d585a6452f6c1ff03fdf713  gcc/testsuite/gcc.dg/pr87047.c
! 76cdfe0fa9071cd68093c7fd89331ccb  gcc/testsuite/gcc.dg/pr87052.c
  7409a4639ad449497636ab1ffd396ab9  gcc/testsuite/gcc.dg/pr87054.c
  573bff30fabe1d954bb7773456e8752b  gcc/testsuite/gcc.dg/pr87074.c
  5b7ec2719e61162c44f1431fa4b8f9d3  gcc/testsuite/gcc.dg/pr87092.c
--- 48150,48163 ----
  d2851550c4c046324732068307e768eb  gcc/testsuite/gcc.dg/pr86617.c
  c045d6a7155d87f33a8a58e18fc8fae0  gcc/testsuite/gcc.dg/pr86723.c
  509e988b3e613c61b734eb2102089a16  gcc/testsuite/gcc.dg/pr86835.c
! 3f5cd54f2e25d2ff0de2599fd49c3e3c  gcc/testsuite/gcc.dg/pr86928.c
  79448a46523d1165571265ca2c3c651c  gcc/testsuite/gcc.dg/pr86979.c
  5b39b496783fedc62020b78e5499cfcc  gcc/testsuite/gcc.dg/pr86991.c
! e8e8dbecdcff9d1e7bcea14445809d6a  gcc/testsuite/gcc.dg/pr87009.c
  1eccee440762e525a97556576c144d1f  gcc/testsuite/gcc.dg/pr87024.c
  92af82d0ed0498d359b9b41731157a6f  gcc/testsuite/gcc.dg/pr87025.c
  75b21a531d585a6452f6c1ff03fdf713  gcc/testsuite/gcc.dg/pr87047.c
! 22883e8fc9a30c1009a1b571c2031426  gcc/testsuite/gcc.dg/pr87052.c
  7409a4639ad449497636ab1ffd396ab9  gcc/testsuite/gcc.dg/pr87054.c
  573bff30fabe1d954bb7773456e8752b  gcc/testsuite/gcc.dg/pr87074.c
  5b7ec2719e61162c44f1431fa4b8f9d3  gcc/testsuite/gcc.dg/pr87092.c
*************** e2d03dc7655ae1521542a25b068b4e10  gcc/te
*** 45915,45921 ****
  baca482777e04433dadd66be5738e776  gcc/testsuite/gcc.dg/pr8788-1.c
  79f79d747c6d037c56152108c4bff465  gcc/testsuite/gcc.dg/pr87894.c
  0cb1263d58005e7943ed8e4e7280590d  gcc/testsuite/gcc.dg/pr87929.c
! fea60d0a54aeee993e874d132622a77f  gcc/testsuite/gcc.dg/pr87954.c
  1a7048b58c83d5c378045393abae2ced  gcc/testsuite/gcc.dg/pr87962.c
  4dc6a02b95b9de1998e24869985641df  gcc/testsuite/gcc.dg/pr87979.c
  c4c99745612ea04b34aea8c271cf3a1c  gcc/testsuite/gcc.dg/pr87985.c
--- 48194,48200 ----
  baca482777e04433dadd66be5738e776  gcc/testsuite/gcc.dg/pr8788-1.c
  79f79d747c6d037c56152108c4bff465  gcc/testsuite/gcc.dg/pr87894.c
  0cb1263d58005e7943ed8e4e7280590d  gcc/testsuite/gcc.dg/pr87929.c
! 8b9d15dd2bacc18a7f9d734e63328f4d  gcc/testsuite/gcc.dg/pr87954.c
  1a7048b58c83d5c378045393abae2ced  gcc/testsuite/gcc.dg/pr87962.c
  4dc6a02b95b9de1998e24869985641df  gcc/testsuite/gcc.dg/pr87979.c
  c4c99745612ea04b34aea8c271cf3a1c  gcc/testsuite/gcc.dg/pr87985.c
*************** f1fa316140a0d5cf611a6a6515122eda  gcc/te
*** 45953,45960 ****
  fe4716424056f67142ad5f2b38759f16  gcc/testsuite/gcc.dg/pr88784-9.c
  f9c1ef445b699a39ecd5de8bef2f58a1  gcc/testsuite/gcc.dg/pr88855.c
  53b8ee9b592cb03b7a7fd424ee91842b  gcc/testsuite/gcc.dg/pr88870.c
! 6c16d1c0a7bddee382161ec4f69c7e3e  gcc/testsuite/gcc.dg/pr88905.c
! 4591787bed42e90bf0cd384f7948f822  gcc/testsuite/gcc.dg/pr88928.c
  b6a6442523e13cc8d22cef6d9b29643f  gcc/testsuite/gcc.dg/pr89037.c
  5a1677356a851d40c0dcb114a77bf62a  gcc/testsuite/gcc.dg/pr89045.c
  5572f39e552c4af805d3f1f11f16d9e7  gcc/testsuite/gcc.dg/pr89061.c
--- 48232,48239 ----
  fe4716424056f67142ad5f2b38759f16  gcc/testsuite/gcc.dg/pr88784-9.c
  f9c1ef445b699a39ecd5de8bef2f58a1  gcc/testsuite/gcc.dg/pr88855.c
  53b8ee9b592cb03b7a7fd424ee91842b  gcc/testsuite/gcc.dg/pr88870.c
! dc21f1feef8a6a0c1a7cc8b01b324d6c  gcc/testsuite/gcc.dg/pr88905.c
! c006acbb3a94328dc8bd6721ee5f1c5a  gcc/testsuite/gcc.dg/pr88928.c
  b6a6442523e13cc8d22cef6d9b29643f  gcc/testsuite/gcc.dg/pr89037.c
  5a1677356a851d40c0dcb114a77bf62a  gcc/testsuite/gcc.dg/pr89045.c
  5572f39e552c4af805d3f1f11f16d9e7  gcc/testsuite/gcc.dg/pr89061.c
*************** a930fd978777f4a12a11a2e5ae864cd0  gcc/te
*** 45995,46007 ****
  1da58e3a4fac902964fc884136ff0b30  gcc/testsuite/gcc.dg/pr90095-1.c
  3a34ebdf201442368e6b516ca9855124  gcc/testsuite/gcc.dg/pr90095-2.c
  368c5e054fd6744cd7791f2fd85550c6  gcc/testsuite/gcc.dg/pr90248.c
! 135491b34f20e048e00df061316f0163  gcc/testsuite/gcc.dg/pr90263.c
  a9ce57b01303a768bbf7a03ccdfc9a9f  gcc/testsuite/gcc.dg/pr90648.c
  bcd4b5d9c82e28d29459255dca15732c  gcc/testsuite/gcc.dg/pr90726.c
  007da9cc3379de76a6986f6c8d62f1aa  gcc/testsuite/gcc.dg/pr90733.c
  afa570e1edc03a94c45eb741b09cab0a  gcc/testsuite/gcc.dg/pr90756.c
  a5cf54d159902a526ee7923257cf4b92  gcc/testsuite/gcc.dg/pr90760.c
! 3beead04971b8a0616b59a10c27861ca  gcc/testsuite/gcc.dg/pr90838.c
  e25de604fa47d4cbf21b04eb8d96eedc  gcc/testsuite/gcc.dg/pr90866-2.c
  1e31e24165ead8e639abcd53299950b0  gcc/testsuite/gcc.dg/pr90866.c
  e2ae67eb39b2578af8765a01c6e6dd08  gcc/testsuite/gcc.dg/pr90892.c
--- 48274,48286 ----
  1da58e3a4fac902964fc884136ff0b30  gcc/testsuite/gcc.dg/pr90095-1.c
  3a34ebdf201442368e6b516ca9855124  gcc/testsuite/gcc.dg/pr90095-2.c
  368c5e054fd6744cd7791f2fd85550c6  gcc/testsuite/gcc.dg/pr90248.c
! 8934d806ac7c85ea4e0291197e5597ca  gcc/testsuite/gcc.dg/pr90263.c
  a9ce57b01303a768bbf7a03ccdfc9a9f  gcc/testsuite/gcc.dg/pr90648.c
  bcd4b5d9c82e28d29459255dca15732c  gcc/testsuite/gcc.dg/pr90726.c
  007da9cc3379de76a6986f6c8d62f1aa  gcc/testsuite/gcc.dg/pr90733.c
  afa570e1edc03a94c45eb741b09cab0a  gcc/testsuite/gcc.dg/pr90756.c
  a5cf54d159902a526ee7923257cf4b92  gcc/testsuite/gcc.dg/pr90760.c
! f0aca126286cc86395555e20e906d122  gcc/testsuite/gcc.dg/pr90838.c
  e25de604fa47d4cbf21b04eb8d96eedc  gcc/testsuite/gcc.dg/pr90866-2.c
  1e31e24165ead8e639abcd53299950b0  gcc/testsuite/gcc.dg/pr90866.c
  e2ae67eb39b2578af8765a01c6e6dd08  gcc/testsuite/gcc.dg/pr90892.c
*************** d415dab7955287f7dc30b8f97718c405  gcc/te
*** 46062,46068 ****
  a381b8115d1a3059738b007b59ec85b1  gcc/testsuite/gcc.dg/pr93820-2.c
  96f7c73b6cb0b7b5f65e07636845c78b  gcc/testsuite/gcc.dg/pr93820.c
  be052ff03204f5c4aab2ab7a358b6b27  gcc/testsuite/gcc.dg/pr93874.c
! 1615991b1e5f6fce46e7f2acbb2cbb2d  gcc/testsuite/gcc.dg/pr93917.c
  87b5cdd84800016a77df3942458b9c21  gcc/testsuite/gcc.dg/pr93953.c
  8bda02493a3432a443e4f3c222a0d773  gcc/testsuite/gcc.dg/pr93986.c
  cfd561b135ceb50d230b596505e94c74  gcc/testsuite/gcc.dg/pr93995.c
--- 48341,48347 ----
  a381b8115d1a3059738b007b59ec85b1  gcc/testsuite/gcc.dg/pr93820-2.c
  96f7c73b6cb0b7b5f65e07636845c78b  gcc/testsuite/gcc.dg/pr93820.c
  be052ff03204f5c4aab2ab7a358b6b27  gcc/testsuite/gcc.dg/pr93874.c
! 560095b2ead114a4246d81ea4af580b1  gcc/testsuite/gcc.dg/pr93917.c
  87b5cdd84800016a77df3942458b9c21  gcc/testsuite/gcc.dg/pr93953.c
  8bda02493a3432a443e4f3c222a0d773  gcc/testsuite/gcc.dg/pr93986.c
  cfd561b135ceb50d230b596505e94c74  gcc/testsuite/gcc.dg/pr93995.c
*************** dbee3538a18bef45f3a54729b574ae13  gcc/te
*** 46086,46092 ****
  8752d4b61db563ffd1bc6f8c992edb09  gcc/testsuite/gcc.dg/pr94277.c
  2a5ea2d9089b86f01982fe32f61729a7  gcc/testsuite/gcc.dg/pr94283.c
  5425c7612d0758ce101dbb6f3e5f377e  gcc/testsuite/gcc.dg/pr94286.c
! b973a838787d1cdd121e558494416509  gcc/testsuite/gcc.dg/pr94291.c
  2455ef5efb95d04a610bbb381539e67e  gcc/testsuite/gcc.dg/pr94292.c
  68259ab38f8b9554e23ad25c2347c0a7  gcc/testsuite/gcc.dg/pr94344.c
  9849f1374b13c980f5fddf0329f189c7  gcc/testsuite/gcc.dg/pr94368.c
--- 48365,48371 ----
  8752d4b61db563ffd1bc6f8c992edb09  gcc/testsuite/gcc.dg/pr94277.c
  2a5ea2d9089b86f01982fe32f61729a7  gcc/testsuite/gcc.dg/pr94283.c
  5425c7612d0758ce101dbb6f3e5f377e  gcc/testsuite/gcc.dg/pr94286.c
! 4cdbb242d757a992aac04f1a4a59905f  gcc/testsuite/gcc.dg/pr94291.c
  2455ef5efb95d04a610bbb381539e67e  gcc/testsuite/gcc.dg/pr94292.c
  68259ab38f8b9554e23ad25c2347c0a7  gcc/testsuite/gcc.dg/pr94344.c
  9849f1374b13c980f5fddf0329f189c7  gcc/testsuite/gcc.dg/pr94368.c
*************** e81595a04ac86a2f9b83fb199a7245c9  gcc/te
*** 46145,46169 ****
  327090f1ff0488bf70d342d108613ef0  gcc/testsuite/gcc.dg/pr96453.c
  6f3a630e04585e6954c3af6c3da4cd68  gcc/testsuite/gcc.dg/pr96466.c
  f6dbe508409f3fdef69bb18356571537  gcc/testsuite/gcc.dg/pr96514.c
! 00f80ae1653a2bbff450c40d3bc8f47b  gcc/testsuite/gcc.dg/pr96542.c
  12772272fb5504a0b84c4743fde95b04  gcc/testsuite/gcc.dg/pr96558.c
  3ee9fc3b7d139b2e57d06a5c240864a3  gcc/testsuite/gcc.dg/pr96573.c
  06ae27dde8da22331e1e8dcd059d4d03  gcc/testsuite/gcc.dg/pr96579.c
! 1dd2da186c8f2d34b4589c79f6204749  gcc/testsuite/gcc.dg/pr96674.c
! 2d09784e99aa11a2937586b5d4685a1f  gcc/testsuite/gcc.dg/pr96708-negative.c
! 712f12b913297d5282df212af57c5475  gcc/testsuite/gcc.dg/pr96708-positive.c
  dbc34bc46bbc999bcf2710255622383b  gcc/testsuite/gcc.dg/pr96818.c
! 9bec2b8a25f8938fad5ab8edff428134  gcc/testsuite/gcc.dg/pr96931.c
  e2fcbb1a028a1d70899c14aaedb82450  gcc/testsuite/gcc.dg/pr97078.c
  8547a0b7d698cdd8886f6f9de8cd32a5  gcc/testsuite/gcc.dg/pr97172-2.c
  bae42579ca300d6f7e5fdf641f2ce9ed  gcc/testsuite/gcc.dg/pr97172.c
  cadcdac808b965a7b33d87188deac421  gcc/testsuite/gcc.dg/pr97192.c
  f54e2f3a93cb93910a45086bec0fe1cc  gcc/testsuite/gcc.dg/pr97238.c
  f7aa1c2f4e37387cc8dcab91ba373ee5  gcc/testsuite/gcc.dg/pr97315-2.c
! 4468f5cbee2c28317bf29cd7ff71d706  gcc/testsuite/gcc.dg/pr97317.c
  f24d05a3d28035f5da6c7d16e133c906  gcc/testsuite/gcc.dg/pr97322.c
  8fa62770eef31189349eee6b772e8713  gcc/testsuite/gcc.dg/pr97357.c
! 7bff46d927a6231f25705ba920aec9cc  gcc/testsuite/gcc.dg/pr97359.c
  775512ace87117ff427697fb95c7c1c3  gcc/testsuite/gcc.dg/pr97360-2.c
  738afc9afc77243f50900bb48cc32282  gcc/testsuite/gcc.dg/pr97371.c
  ec7b2a6f20da4f623564af36f5331625  gcc/testsuite/gcc.dg/pr97378.c
--- 48424,48460 ----
  327090f1ff0488bf70d342d108613ef0  gcc/testsuite/gcc.dg/pr96453.c
  6f3a630e04585e6954c3af6c3da4cd68  gcc/testsuite/gcc.dg/pr96466.c
  f6dbe508409f3fdef69bb18356571537  gcc/testsuite/gcc.dg/pr96514.c
! 90381ca042f347867bb79f1b8c673c2b  gcc/testsuite/gcc.dg/pr96542.c
  12772272fb5504a0b84c4743fde95b04  gcc/testsuite/gcc.dg/pr96558.c
  3ee9fc3b7d139b2e57d06a5c240864a3  gcc/testsuite/gcc.dg/pr96573.c
  06ae27dde8da22331e1e8dcd059d4d03  gcc/testsuite/gcc.dg/pr96579.c
! f9d7df2106482d3d130cf0456e86db31  gcc/testsuite/gcc.dg/pr96674.c
! b67465804988a5616c497e885680fd2c  gcc/testsuite/gcc.dg/pr96695-1.c
! bae61ce91f8312d787de99e8d14ca6af  gcc/testsuite/gcc.dg/pr96695-10.c
! 5aff7e22596b31e1cbcd98e6719bfbd0  gcc/testsuite/gcc.dg/pr96695-11.c
! ebd1f5f8348a0766f37ede7151904678  gcc/testsuite/gcc.dg/pr96695-12.c
! 7b05d96b78166a119a00da852eae5803  gcc/testsuite/gcc.dg/pr96695-2.c
! 903d6bb5c26a8e32806ab48e27026064  gcc/testsuite/gcc.dg/pr96695-3.c
! efca6d0ddf8332257ec52e6587b42530  gcc/testsuite/gcc.dg/pr96695-4.c
! 2a1682c5d560bc76edc1c996d2479f28  gcc/testsuite/gcc.dg/pr96695-5.c
! 847df5e21958f54bc56d128e0a0d9b70  gcc/testsuite/gcc.dg/pr96695-6.c
! 8a275ff2f6c85ea248b3725e144cebb8  gcc/testsuite/gcc.dg/pr96695-7.c
! fb5cac46a50575e67c9724a1d428b0dd  gcc/testsuite/gcc.dg/pr96695-8.c
! 2f73804faf6a03edd971424c488a3362  gcc/testsuite/gcc.dg/pr96695-9.c
! 33c7eca67cf033bd7bcde66c3e66b315  gcc/testsuite/gcc.dg/pr96708-negative.c
! 8c557ee57dd6f4e50dd3e3afe4061120  gcc/testsuite/gcc.dg/pr96708-positive.c
  dbc34bc46bbc999bcf2710255622383b  gcc/testsuite/gcc.dg/pr96818.c
! 4ece741de773ab41d7931280a3d12fe3  gcc/testsuite/gcc.dg/pr96931.c
  e2fcbb1a028a1d70899c14aaedb82450  gcc/testsuite/gcc.dg/pr97078.c
  8547a0b7d698cdd8886f6f9de8cd32a5  gcc/testsuite/gcc.dg/pr97172-2.c
  bae42579ca300d6f7e5fdf641f2ce9ed  gcc/testsuite/gcc.dg/pr97172.c
  cadcdac808b965a7b33d87188deac421  gcc/testsuite/gcc.dg/pr97192.c
  f54e2f3a93cb93910a45086bec0fe1cc  gcc/testsuite/gcc.dg/pr97238.c
  f7aa1c2f4e37387cc8dcab91ba373ee5  gcc/testsuite/gcc.dg/pr97315-2.c
! 205335d9ee3829efc8938e9d67e50dd0  gcc/testsuite/gcc.dg/pr97317.c
  f24d05a3d28035f5da6c7d16e133c906  gcc/testsuite/gcc.dg/pr97322.c
  8fa62770eef31189349eee6b772e8713  gcc/testsuite/gcc.dg/pr97357.c
! dfc3a50d54f160dd107f6aaed9cda154  gcc/testsuite/gcc.dg/pr97359.c
  775512ace87117ff427697fb95c7c1c3  gcc/testsuite/gcc.dg/pr97360-2.c
  738afc9afc77243f50900bb48cc32282  gcc/testsuite/gcc.dg/pr97371.c
  ec7b2a6f20da4f623564af36f5331625  gcc/testsuite/gcc.dg/pr97378.c
*************** bb0f91c384e2b0c10f6a2b569f227ce2  gcc/te
*** 46197,46203 ****
  b31656f3d589501279f9b3957d76e7d8  gcc/testsuite/gcc.dg/pr97725.c
  2cafeb388acee553eacac0843032a2b5  gcc/testsuite/gcc.dg/pr97737.c
  cdfeca036db478839d22133998667f05  gcc/testsuite/gcc.dg/pr97741.c
! 7726d531aea4bd8eb9d35761d60c7527  gcc/testsuite/gcc.dg/pr97750.c
  32dbdf99e8be7a3cc9392721bd1d794d  gcc/testsuite/gcc.dg/pr97806.c
  bb5958739b960c32b06e6d3daf4186ba  gcc/testsuite/gcc.dg/pr97830.c
  ebd05406fb069fea2c49c527155a3864  gcc/testsuite/gcc.dg/pr97860.c
--- 48488,48494 ----
  b31656f3d589501279f9b3957d76e7d8  gcc/testsuite/gcc.dg/pr97725.c
  2cafeb388acee553eacac0843032a2b5  gcc/testsuite/gcc.dg/pr97737.c
  cdfeca036db478839d22133998667f05  gcc/testsuite/gcc.dg/pr97741.c
! bf0c76a76ec33705f98f6dcc11e12f2f  gcc/testsuite/gcc.dg/pr97750.c
  32dbdf99e8be7a3cc9392721bd1d794d  gcc/testsuite/gcc.dg/pr97806.c
  bb5958739b960c32b06e6d3daf4186ba  gcc/testsuite/gcc.dg/pr97830.c
  ebd05406fb069fea2c49c527155a3864  gcc/testsuite/gcc.dg/pr97860.c
*************** bfcdbe04e4db5115b18a5676acde0c97  gcc/te
*** 46205,46211 ****
  7cc410466db1f834697611a61399f7ba  gcc/testsuite/gcc.dg/pr97897.c
  c486b3b3763d822f61027894e246354b  gcc/testsuite/gcc.dg/pr97932.c
  dd83a8b867ef8c886adacb097f55bc6b  gcc/testsuite/gcc.dg/pr97953.c
! 7db64a5a0b5d2c480da44e8b2e7b4892  gcc/testsuite/gcc.dg/pr97954.c
  071d2ae1bd35b15c3f27a168b4050eb2  gcc/testsuite/gcc.dg/pr97955.c
  2fbd889735fcfc930838d4d0e5f735b3  gcc/testsuite/gcc.dg/pr97979.c
  25eabe894b19890870bd6364b863658a  gcc/testsuite/gcc.dg/pr97981.c
--- 48496,48502 ----
  7cc410466db1f834697611a61399f7ba  gcc/testsuite/gcc.dg/pr97897.c
  c486b3b3763d822f61027894e246354b  gcc/testsuite/gcc.dg/pr97932.c
  dd83a8b867ef8c886adacb097f55bc6b  gcc/testsuite/gcc.dg/pr97953.c
! 7ca0ca832b0fe2fe00256a67b9ccead1  gcc/testsuite/gcc.dg/pr97954.c
  071d2ae1bd35b15c3f27a168b4050eb2  gcc/testsuite/gcc.dg/pr97955.c
  2fbd889735fcfc930838d4d0e5f735b3  gcc/testsuite/gcc.dg/pr97979.c
  25eabe894b19890870bd6364b863658a  gcc/testsuite/gcc.dg/pr97981.c
*************** bab0f33f3dc1129eb8dcb00974efb2ba  gcc/te
*** 46223,46228 ****
--- 48514,48521 ----
  e0aaf35916ca626fd4eb6512d1bcb49f  gcc/testsuite/gcc.dg/pr98304-1.c
  7970814b2b083dc51dccbb47c9b622d3  gcc/testsuite/gcc.dg/pr98330.c
  2232cd10c89412a750db8fa0a772b747  gcc/testsuite/gcc.dg/pr98331.c
+ 71e51d140e2ea9bf0936bb0c01194726  gcc/testsuite/gcc.dg/pr98350-1.c
+ 07315bd3bf00b907a110f3de5d83188e  gcc/testsuite/gcc.dg/pr98350-2.c
  fe3fce151ef7e045021498cdad0f3ecf  gcc/testsuite/gcc.dg/pr98420.c
  cb517fef5185a3c728c4f6a074659af6  gcc/testsuite/gcc.dg/pr98721-1.c
  b21ece181cd66a1e64aa9dde33e8d1d0  gcc/testsuite/gcc.dg/pr98721-2.c
*************** adabb0bef50f4d7481373e03730d7eca  gcc/te
*** 46231,46240 ****
  740d7fb36e41a4cae562cdea26998ff2  gcc/testsuite/gcc.dg/pr98807.c
  7935203ef9b964ed53ea8adeecd1bbed  gcc/testsuite/gcc.dg/pr98865.c
  310114e6ce04de1373727da3fff452a3  gcc/testsuite/gcc.dg/pr99104.c
! c8ed2bc909c8f2213b8af5e0e34bb1fc  gcc/testsuite/gcc.dg/pr99122-1.c
  3efab6f8b5fe7930094ba4b39f130934  gcc/testsuite/gcc.dg/pr99122-2.c
  18aad8f5bd43bff2ff6c9709072d550c  gcc/testsuite/gcc.dg/pr99122-3.c
! 2eea8fc255e64207bc4e80b2eb33a6f0  gcc/testsuite/gcc.dg/pr99136.c
  915d115cd30c8f24c98345c9a7a5593c  gcc/testsuite/gcc.dg/pr99224.c
  96da29b8d07f768f24eaeff4ea07b505  gcc/testsuite/gcc.dg/pr99230.c
  41121635897d600e326a315863592036  gcc/testsuite/gcc.dg/pr99296.c
--- 48524,48533 ----
  740d7fb36e41a4cae562cdea26998ff2  gcc/testsuite/gcc.dg/pr98807.c
  7935203ef9b964ed53ea8adeecd1bbed  gcc/testsuite/gcc.dg/pr98865.c
  310114e6ce04de1373727da3fff452a3  gcc/testsuite/gcc.dg/pr99104.c
! 0c792f14b9a97f41c77e25cf97585664  gcc/testsuite/gcc.dg/pr99122-1.c
  3efab6f8b5fe7930094ba4b39f130934  gcc/testsuite/gcc.dg/pr99122-2.c
  18aad8f5bd43bff2ff6c9709072d550c  gcc/testsuite/gcc.dg/pr99122-3.c
! e3c8b18e6e88ee3cfc0ca5366899c2da  gcc/testsuite/gcc.dg/pr99136.c
  915d115cd30c8f24c98345c9a7a5593c  gcc/testsuite/gcc.dg/pr99224.c
  96da29b8d07f768f24eaeff4ea07b505  gcc/testsuite/gcc.dg/pr99230.c
  41121635897d600e326a315863592036  gcc/testsuite/gcc.dg/pr99296.c
*************** ea82d4023b231a2f4540f76435c3b6d2  gcc/te
*** 46286,46297 ****
  fa3e7c382ff66e5d2620f232268180a7  gcc/testsuite/gcc.dg/predict-15.c
  6b9422268a7cc187f0275be0fbe52517  gcc/testsuite/gcc.dg/predict-16.c
  4f0fe15405a042db1fae3a1477af433d  gcc/testsuite/gcc.dg/predict-17.c
! fb8ee0a0567856379f47c9fa24376c9f  gcc/testsuite/gcc.dg/predict-18.c
  1868f122f6ae50a73af86b5d3ba896b0  gcc/testsuite/gcc.dg/predict-19.c
  72706bfb463bdad90a67054588fe3a08  gcc/testsuite/gcc.dg/predict-2.c
  d604d9323f647ba625472c89e0281422  gcc/testsuite/gcc.dg/predict-20.c
  398b3637b52a2ef982352b439856518c  gcc/testsuite/gcc.dg/predict-21.c
! d1261478a22b761e5ece132558a44e6f  gcc/testsuite/gcc.dg/predict-22.c
  db02424a4c19e49ec9d7f6697aa99832  gcc/testsuite/gcc.dg/predict-3.c
  305021fbe14adc964b339f63ed4ed8f0  gcc/testsuite/gcc.dg/predict-4.c
  18ff4271089e0d93667ccab1cfa2a459  gcc/testsuite/gcc.dg/predict-5.c
--- 48579,48591 ----
  fa3e7c382ff66e5d2620f232268180a7  gcc/testsuite/gcc.dg/predict-15.c
  6b9422268a7cc187f0275be0fbe52517  gcc/testsuite/gcc.dg/predict-16.c
  4f0fe15405a042db1fae3a1477af433d  gcc/testsuite/gcc.dg/predict-17.c
! 456f780f7d719d52e8130833f10ef013  gcc/testsuite/gcc.dg/predict-18.c
  1868f122f6ae50a73af86b5d3ba896b0  gcc/testsuite/gcc.dg/predict-19.c
  72706bfb463bdad90a67054588fe3a08  gcc/testsuite/gcc.dg/predict-2.c
  d604d9323f647ba625472c89e0281422  gcc/testsuite/gcc.dg/predict-20.c
  398b3637b52a2ef982352b439856518c  gcc/testsuite/gcc.dg/predict-21.c
! 181477d5de6bdd236d866a9634540fc3  gcc/testsuite/gcc.dg/predict-22.c
! cca79e9f199f3f1a6650b2b63e71902f  gcc/testsuite/gcc.dg/predict-23.c
  db02424a4c19e49ec9d7f6697aa99832  gcc/testsuite/gcc.dg/predict-3.c
  305021fbe14adc964b339f63ed4ed8f0  gcc/testsuite/gcc.dg/predict-4.c
  18ff4271089e0d93667ccab1cfa2a459  gcc/testsuite/gcc.dg/predict-5.c
*************** fe0dfbb4e9a3744d6ae829de7b0e4b76  gcc/te
*** 46313,46319 ****
  03400698c3e371c93945ab78c118bc44  gcc/testsuite/gcc.dg/profile-update-warning.c
  731cbe31caa392f45d3a34efa13ec6fe  gcc/testsuite/gcc.dg/proto-1.c
  3f306803a83b1c0770c6a4928f2a5171  gcc/testsuite/gcc.dg/pthread-init-1.c
! 21e944271b22264b9a72d7efb2072acc  gcc/testsuite/gcc.dg/pthread-init-2.c
  1e43eff6196cdabcccbabb483e4e5469  gcc/testsuite/gcc.dg/pthread-init-common.h
  81c32e7aa8336105b10ad33457ae164f  gcc/testsuite/gcc.dg/pubtypes-1.c
  b86e198a5aac258c7d57d970aa82b11f  gcc/testsuite/gcc.dg/pubtypes-2.c
--- 48607,48613 ----
  03400698c3e371c93945ab78c118bc44  gcc/testsuite/gcc.dg/profile-update-warning.c
  731cbe31caa392f45d3a34efa13ec6fe  gcc/testsuite/gcc.dg/proto-1.c
  3f306803a83b1c0770c6a4928f2a5171  gcc/testsuite/gcc.dg/pthread-init-1.c
! b5afa4a9423bfaaecdc7aed2175814dc  gcc/testsuite/gcc.dg/pthread-init-2.c
  1e43eff6196cdabcccbabb483e4e5469  gcc/testsuite/gcc.dg/pthread-init-common.h
  81c32e7aa8336105b10ad33457ae164f  gcc/testsuite/gcc.dg/pubtypes-1.c
  b86e198a5aac258c7d57d970aa82b11f  gcc/testsuite/gcc.dg/pubtypes-2.c
*************** e91f166b4de92c03f81d916150bf3333  gcc/te
*** 46325,46330 ****
--- 48619,48625 ----
  a7d0583b6c2ce6dcaa388b97217992a8  gcc/testsuite/gcc.dg/qual-assign-7.c
  131d7728e0baca355ff811d6c48cc2c2  gcc/testsuite/gcc.dg/qual-component-1.c
  f98b23a23376b07500bb22dc9c07a97b  gcc/testsuite/gcc.dg/qual-return-1.c
+ f1cd1b20474b1aaa97dbc54187b2296d  gcc/testsuite/gcc.dg/qual-return-10.c
  a69c0ed8db7dad6898af9609fa119bf4  gcc/testsuite/gcc.dg/qual-return-2.c
  234682479bf216f3399ca1361c73ba78  gcc/testsuite/gcc.dg/qual-return-3.c
  86201f12f9bbd928a88f23757f5aed08  gcc/testsuite/gcc.dg/qual-return-4.c
*************** a69c0ed8db7dad6898af9609fa119bf4  gcc/te
*** 46332,46337 ****
--- 48627,48633 ----
  7a233a8a5eef90550bf415fb9b005997  gcc/testsuite/gcc.dg/qual-return-6.c
  2accc0fea5768fd7a58defd66f51e1c3  gcc/testsuite/gcc.dg/qual-return-7.c
  67523d7372b85342e04c7206c7e920d6  gcc/testsuite/gcc.dg/qual-return-8.c
+ 3b2f1be1b5ec4ce996ea925a2f8c167c  gcc/testsuite/gcc.dg/qual-return-9.c
  fa6e4618c862111306143bc22d6cb230  gcc/testsuite/gcc.dg/range-test-1.c
  b40a9d0cd8cc04909a88242a822ab148  gcc/testsuite/gcc.dg/range.h
  e4f44dea457e219eca0cd8bd565720f4  gcc/testsuite/gcc.dg/readonly-loc.c
*************** bbc5eb9ec870c7a8a2930d29040efe10  gcc/te
*** 46353,46366 ****
  e9f6ab8177be009b10587da44d562a5a  gcc/testsuite/gcc.dg/redecl-16.c
  fccd1934a683d43aa6a7d546eee38065  gcc/testsuite/gcc.dg/redecl-17.c
  581f2d3b0f6519eb0fb0b166b220fdb6  gcc/testsuite/gcc.dg/redecl-18.c
! fc4d9aa23649c1bae28ec227fd82281f  gcc/testsuite/gcc.dg/redecl-19.c
  0c4274e004ec10f6f1cd982118716a43  gcc/testsuite/gcc.dg/redecl-2.c
  4940ac7ea47f01e1bfab755372b91200  gcc/testsuite/gcc.dg/redecl-20.c
  53169922682abdb600a60ca5d9a1f02f  gcc/testsuite/gcc.dg/redecl-21.c
  303d553f7e6bbd80402018d422342320  gcc/testsuite/gcc.dg/redecl-22.c
  22997665367f8e4d62c40ca6b9304dc4  gcc/testsuite/gcc.dg/redecl-23.c
! fb540068c6e9115d05618b4b7b7222cc  gcc/testsuite/gcc.dg/redecl-24.c
  41fed7044e8456e814ecdc143463bd42  gcc/testsuite/gcc.dg/redecl-25.c
  a894d26cb8bd0b9d9dc915eec4d06120  gcc/testsuite/gcc.dg/redecl-3.c
  019f3b9fad0705bf1afbc6b03a6ecb78  gcc/testsuite/gcc.dg/redecl-4.c
  436332565897173cbaf3ea20d42805c4  gcc/testsuite/gcc.dg/redecl-5.c
--- 48649,48663 ----
  e9f6ab8177be009b10587da44d562a5a  gcc/testsuite/gcc.dg/redecl-16.c
  fccd1934a683d43aa6a7d546eee38065  gcc/testsuite/gcc.dg/redecl-17.c
  581f2d3b0f6519eb0fb0b166b220fdb6  gcc/testsuite/gcc.dg/redecl-18.c
! ebcd98d3d688ebb6b936970417735e94  gcc/testsuite/gcc.dg/redecl-19.c
  0c4274e004ec10f6f1cd982118716a43  gcc/testsuite/gcc.dg/redecl-2.c
  4940ac7ea47f01e1bfab755372b91200  gcc/testsuite/gcc.dg/redecl-20.c
  53169922682abdb600a60ca5d9a1f02f  gcc/testsuite/gcc.dg/redecl-21.c
  303d553f7e6bbd80402018d422342320  gcc/testsuite/gcc.dg/redecl-22.c
  22997665367f8e4d62c40ca6b9304dc4  gcc/testsuite/gcc.dg/redecl-23.c
! 8c6d576b2059281ddb1eec33cc158253  gcc/testsuite/gcc.dg/redecl-24.c
  41fed7044e8456e814ecdc143463bd42  gcc/testsuite/gcc.dg/redecl-25.c
+ 575a913b9aaac83a3c23c00f406171ed  gcc/testsuite/gcc.dg/redecl-26.c
  a894d26cb8bd0b9d9dc915eec4d06120  gcc/testsuite/gcc.dg/redecl-3.c
  019f3b9fad0705bf1afbc6b03a6ecb78  gcc/testsuite/gcc.dg/redecl-4.c
  436332565897173cbaf3ea20d42805c4  gcc/testsuite/gcc.dg/redecl-5.c
*************** e7055b12b2da73125c471ef6e21aec3d  gcc/te
*** 46381,46386 ****
--- 48678,48686 ----
  b401e32d0fdcef56538c60685124c8d6  gcc/testsuite/gcc.dg/rtl/aarch64/big-endian-cse-1.c
  a1925ccc0f69537c243f239b703bd7e1  gcc/testsuite/gcc.dg/rtl/aarch64/missed-pass-error.c
  c101dc190e024f7cd8e13d412510c399  gcc/testsuite/gcc.dg/rtl/aarch64/multi-subreg-1.c
+ 1ba71d3525a92b2cd35acab9a03c063e  gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c
+ 8ae0b3cf4d0f9c736e2aca2226756dc6  gcc/testsuite/gcc.dg/rtl/aarch64/pr111702.c
+ b76f25a5e2a39d0da6541a73b5cd3e32  gcc/testsuite/gcc.dg/rtl/aarch64/pr113295-1.c
  82921214d686f1804813b91947084109  gcc/testsuite/gcc.dg/rtl/aarch64/pr71779.c
  043d0b0c264990e6e6ac1f2827823f1b  gcc/testsuite/gcc.dg/rtl/aarch64/rtl-handle-column-numbers.c
  770cae6014d989d238db251906e1d55c  gcc/testsuite/gcc.dg/rtl/aarch64/subs_adds_sp.c
*************** c101dc190e024f7cd8e13d412510c399  gcc/te
*** 46388,46395 ****
  a107a9eae4cd59d68f55abfc11da7cec  gcc/testsuite/gcc.dg/rtl/aarch64/unspecified-pass-error.c
  a9069345cbc40d488766c1fbf34c5555  gcc/testsuite/gcc.dg/rtl/arm/ldrd-peepholes.c
  85baf2f4880c1f6892aac66e29e93d7a  gcc/testsuite/gcc.dg/rtl/arm/mve-vxbi.c
! 1a862d5804e1cd16507ae8049cf93f0d  gcc/testsuite/gcc.dg/rtl/arm/stl-cond.c
! 27b2890aa92c322eff82e4b42dc7c124  gcc/testsuite/gcc.dg/rtl/rtl.exp
  75dd0c3d9daa8abdd58a0d0eaf55bd9e  gcc/testsuite/gcc.dg/rtl/test.c
  555898d2432906a81b3aa66cb112a450  gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c
  3a9704d0df301152dace95218afa80c6  gcc/testsuite/gcc.dg/rtl/unknown-rtx-code.c
--- 48688,48696 ----
  a107a9eae4cd59d68f55abfc11da7cec  gcc/testsuite/gcc.dg/rtl/aarch64/unspecified-pass-error.c
  a9069345cbc40d488766c1fbf34c5555  gcc/testsuite/gcc.dg/rtl/arm/ldrd-peepholes.c
  85baf2f4880c1f6892aac66e29e93d7a  gcc/testsuite/gcc.dg/rtl/arm/mve-vxbi.c
! 0fad692089013e1244e2ad3e5560e613  gcc/testsuite/gcc.dg/rtl/powerpc/move_compare_peephole_32.c
! 67d911dae09d634dcf74fac029f1d2e6  gcc/testsuite/gcc.dg/rtl/powerpc/move_compare_peephole_64.c
! 9309c465988a6dc9c6eb0ec83ff1a77c  gcc/testsuite/gcc.dg/rtl/rtl.exp
  75dd0c3d9daa8abdd58a0d0eaf55bd9e  gcc/testsuite/gcc.dg/rtl/test.c
  555898d2432906a81b3aa66cb112a450  gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c
  3a9704d0df301152dace95218afa80c6  gcc/testsuite/gcc.dg/rtl/unknown-rtx-code.c
*************** f8ab1139f3bd02009859925ec6b4f1ec  gcc/te
*** 46411,46417 ****
  454cb76cf4a06abba08354e6a236e7a8  gcc/testsuite/gcc.dg/rtl/x86_64/vregs.c
  b1af2df249a0e6a4c994bd1ed21dca0d  gcc/testsuite/gcc.dg/sabd_1.c
  1e9910f4cb4ae5d35806411d5a76d2eb  gcc/testsuite/gcc.dg/sancov/attribute.c
! 0c3b41d31bc8c5766ef00b41563b6f67  gcc/testsuite/gcc.dg/sancov/basic0.c
  7bc3b2dd6c2595fc002c58318ba0ad0e  gcc/testsuite/gcc.dg/sancov/basic1.c
  c3a18562322c5cc05e7fb2d95a929a8a  gcc/testsuite/gcc.dg/sancov/basic2.c
  a278b5899a838354deb402aaf261e227  gcc/testsuite/gcc.dg/sancov/cmp0.c
--- 48712,48718 ----
  454cb76cf4a06abba08354e6a236e7a8  gcc/testsuite/gcc.dg/rtl/x86_64/vregs.c
  b1af2df249a0e6a4c994bd1ed21dca0d  gcc/testsuite/gcc.dg/sabd_1.c
  1e9910f4cb4ae5d35806411d5a76d2eb  gcc/testsuite/gcc.dg/sancov/attribute.c
! c15366823557ee657d9fd82e1627096b  gcc/testsuite/gcc.dg/sancov/basic0.c
  7bc3b2dd6c2595fc002c58318ba0ad0e  gcc/testsuite/gcc.dg/sancov/basic1.c
  c3a18562322c5cc05e7fb2d95a929a8a  gcc/testsuite/gcc.dg/sancov/basic2.c
  a278b5899a838354deb402aaf261e227  gcc/testsuite/gcc.dg/sancov/cmp0.c
*************** eb7e84bf599d4eff95e62177de9c772a  gcc/te
*** 46423,46429 ****
  7a3f147eba9c1aeac1de411abd4f64cf  gcc/testsuite/gcc.dg/sancov/pr104158-6.c
  fdf6d2f3e4906aec199d43bc561b5a5d  gcc/testsuite/gcc.dg/sancov/pr104158-7.c
  10a9db85b046a8ccc1ebb5e953dedb6d  gcc/testsuite/gcc.dg/sancov/pr80444.c
! 773fec7d67784038ef6f742055a37dbd  gcc/testsuite/gcc.dg/sancov/sancov.exp
  d5126a2bd42a9c1593aedafecf29da00  gcc/testsuite/gcc.dg/section1.c
  8ecbb4fd22f228acc936096f5fed21fb  gcc/testsuite/gcc.dg/self-right-shift.c
  00d91fe4b16ca2aeae1cccad86d4c9f2  gcc/testsuite/gcc.dg/semicolon-fixits.c
--- 48724,48732 ----
  7a3f147eba9c1aeac1de411abd4f64cf  gcc/testsuite/gcc.dg/sancov/pr104158-6.c
  fdf6d2f3e4906aec199d43bc561b5a5d  gcc/testsuite/gcc.dg/sancov/pr104158-7.c
  10a9db85b046a8ccc1ebb5e953dedb6d  gcc/testsuite/gcc.dg/sancov/pr80444.c
! f74489664381ec87f1f57c59510dddea  gcc/testsuite/gcc.dg/sancov/sancov.exp
! f4b64b6518910ecc79ec847a430db7d0  gcc/testsuite/gcc.dg/scantest-lto.c
! 61448b028e590daa16b590a3a8025e23  gcc/testsuite/gcc.dg/sccopy-1.c
  d5126a2bd42a9c1593aedafecf29da00  gcc/testsuite/gcc.dg/section1.c
  8ecbb4fd22f228acc936096f5fed21fb  gcc/testsuite/gcc.dg/self-right-shift.c
  00d91fe4b16ca2aeae1cccad86d4c9f2  gcc/testsuite/gcc.dg/semicolon-fixits.c
*************** aaf2153b841fae71456b1ba41211400b  gcc/te
*** 46437,46443 ****
  5dbdea05d50f594556f604bf66857dbc  gcc/testsuite/gcc.dg/setjmp-4.c
  157d41b3446aa6c54a0249f7f027768f  gcc/testsuite/gcc.dg/setjmp-5.c
  3d24e3b1ad253339cd3d8ab118110513  gcc/testsuite/gcc.dg/setjmp-6.c
! dfe9d8b1cef24676837fec45edf86c22  gcc/testsuite/gcc.dg/setjmp-7.c
  6f4ffedec35f0de53e9ae24b36462712  gcc/testsuite/gcc.dg/short-compare-1.c
  e95ac1ec5f25aac9c9389159d09b366c  gcc/testsuite/gcc.dg/short-compare-2.c
  d97ba82ddd6d2eff00283bf678a89e32  gcc/testsuite/gcc.dg/shrink-wrap-alloca.c
--- 48740,48746 ----
  5dbdea05d50f594556f604bf66857dbc  gcc/testsuite/gcc.dg/setjmp-4.c
  157d41b3446aa6c54a0249f7f027768f  gcc/testsuite/gcc.dg/setjmp-5.c
  3d24e3b1ad253339cd3d8ab118110513  gcc/testsuite/gcc.dg/setjmp-6.c
! fafbe5a5c3660e12b3ae052ba2f07d16  gcc/testsuite/gcc.dg/setjmp-7.c
  6f4ffedec35f0de53e9ae24b36462712  gcc/testsuite/gcc.dg/short-compare-1.c
  e95ac1ec5f25aac9c9389159d09b366c  gcc/testsuite/gcc.dg/short-compare-2.c
  d97ba82ddd6d2eff00283bf678a89e32  gcc/testsuite/gcc.dg/shrink-wrap-alloca.c
*************** a4a9d32810747a683dfd61a19a195556  gcc/te
*** 46454,46468 ****
  62808c704ae0941d6882eb2639725b7e  gcc/testsuite/gcc.dg/sibcall-7.c
  ffee6308d78dda55af86280534155756  gcc/testsuite/gcc.dg/sibcall-8.c
  a9d1837d9fddf7d1517a251715a86a60  gcc/testsuite/gcc.dg/sibcall-9.c
! 7976154c3c96bf4378598eacd1dcd4bd  gcc/testsuite/gcc.dg/signbit-2.c
  66aaf0d9868e1fb506cfc16fea64b403  gcc/testsuite/gcc.dg/signbit-3.c
  82d412bd422617ac165bdfeefeb96891  gcc/testsuite/gcc.dg/signbit-4.c
! 52a293945a9e0a01f0bf494d4b9197c4  gcc/testsuite/gcc.dg/signbit-5.c
  336150c4fa4cf498d062bcda71db9baf  gcc/testsuite/gcc.dg/signbit-6.c
  5b629cb801eca62320ea49a242d8d182  gcc/testsuite/gcc.dg/signbit-sa.c
  333e0feef5b858bcbce745edf0d287f9  gcc/testsuite/gcc.dg/simd-1.c
  ab02b1889f7a1a4dc5afd40bb4ecd23e  gcc/testsuite/gcc.dg/simd-1b.c
! e466b023a99975f058c0055638d0b0a4  gcc/testsuite/gcc.dg/simd-2.c
  ae5548f8119d025f73912bf1fe92e4e7  gcc/testsuite/gcc.dg/simd-3.c
  e7edbe5a2c71be83020688e5b9a6ae0d  gcc/testsuite/gcc.dg/simd-4.c
  675c5b6328d7f774de1ee3da92f964b5  gcc/testsuite/gcc.dg/simd-5.c
--- 48757,48771 ----
  62808c704ae0941d6882eb2639725b7e  gcc/testsuite/gcc.dg/sibcall-7.c
  ffee6308d78dda55af86280534155756  gcc/testsuite/gcc.dg/sibcall-8.c
  a9d1837d9fddf7d1517a251715a86a60  gcc/testsuite/gcc.dg/sibcall-9.c
! 47ab5e28888b6a337336f12ed44d19c2  gcc/testsuite/gcc.dg/signbit-2.c
  66aaf0d9868e1fb506cfc16fea64b403  gcc/testsuite/gcc.dg/signbit-3.c
  82d412bd422617ac165bdfeefeb96891  gcc/testsuite/gcc.dg/signbit-4.c
! 4ad6f52ff9e89375107971312a3f3ff7  gcc/testsuite/gcc.dg/signbit-5.c
  336150c4fa4cf498d062bcda71db9baf  gcc/testsuite/gcc.dg/signbit-6.c
  5b629cb801eca62320ea49a242d8d182  gcc/testsuite/gcc.dg/signbit-sa.c
  333e0feef5b858bcbce745edf0d287f9  gcc/testsuite/gcc.dg/simd-1.c
  ab02b1889f7a1a4dc5afd40bb4ecd23e  gcc/testsuite/gcc.dg/simd-1b.c
! 9431f6bf0d2ac2e308dfe974f6338df0  gcc/testsuite/gcc.dg/simd-2.c
  ae5548f8119d025f73912bf1fe92e4e7  gcc/testsuite/gcc.dg/simd-3.c
  e7edbe5a2c71be83020688e5b9a6ae0d  gcc/testsuite/gcc.dg/simd-4.c
  675c5b6328d7f774de1ee3da92f964b5  gcc/testsuite/gcc.dg/simd-5.c
*************** cdcbfe4963d2fb08c5ca3beee8988a3a  gcc/te
*** 46478,46484 ****
  2cef976581d9a7b739ab4028601cccef  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-int128.c
  dd9deecd35e329ea7c8b1a24c3721dfb  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-longlong.c
  bc0a90e6775aacab35294b814a4dc066  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-short.c
! 46a4d47130d315f8b442e200ebe70180  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp
  a551d568c4b3e2e586a288740ed87bc7  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.gdb
  e01edd8c252c9b0041b4625fb9403160  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.h
  1206815dd7536f73ea767fa3901ecc15  gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c
--- 48781,48787 ----
  2cef976581d9a7b739ab4028601cccef  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-int128.c
  dd9deecd35e329ea7c8b1a24c3721dfb  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-longlong.c
  bc0a90e6775aacab35294b814a4dc066  gcc/testsuite/gcc.dg/simulate-thread/atomic-other-short.c
! 98bf5216831a83729a8cd4713e1b52b5  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp
  a551d568c4b3e2e586a288740ed87bc7  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.gdb
  e01edd8c252c9b0041b4625fb9403160  gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.h
  1206815dd7536f73ea767fa3901ecc15  gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c
*************** cf6adf4ec5a0e6eb5b11e830643ea604  gcc/te
*** 46515,46529 ****
  31d8133fa794f2c9dc7e6cc940c20eff  gcc/testsuite/gcc.dg/sms-9.c
  59676cf895a96b5df60c99dab32c2e77  gcc/testsuite/gcc.dg/sms-compare-debug-1.c
  29083ff7a74e33bf670767bdfe423cbb  gcc/testsuite/gcc.dg/sms-compare-debug-2.c
! d699e78c8f0e5f106aca671faa82b0db  gcc/testsuite/gcc.dg/spec-barrier-3.c
  9c080ca6c2427d1836ee0c8b3b4a07c7  gcc/testsuite/gcc.dg/spec-options.c
  20dc171666c91cdac8714a7c5075874e  gcc/testsuite/gcc.dg/special/20000419-2.c
  58b6b7734c2d9522f6acba13d91a557a  gcc/testsuite/gcc.dg/special/alias-1.c
  4b29f93ef3bc27cb9d83fdbc6aaa5b4a  gcc/testsuite/gcc.dg/special/alias-2.c
  d7d4289254a30a2d7a36599f413b3f00  gcc/testsuite/gcc.dg/special/gcsec-1.c
! f92541e8d261725af6992e532860b7a7  gcc/testsuite/gcc.dg/special/mips-abi.exp
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/special/mips-abi.s
! e855de58512cb759f8260619e8fb79e3  gcc/testsuite/gcc.dg/special/special.exp
  401a0d7d075a4091d05bc341cd97d3bf  gcc/testsuite/gcc.dg/special/weak-1.c
  f92cc2fa14e5fe946fde0490c2b6321b  gcc/testsuite/gcc.dg/special/weak-1a.c
  679f99ed535d87ef210f2c69a6777b7e  gcc/testsuite/gcc.dg/special/weak-2.c
--- 48818,48833 ----
  31d8133fa794f2c9dc7e6cc940c20eff  gcc/testsuite/gcc.dg/sms-9.c
  59676cf895a96b5df60c99dab32c2e77  gcc/testsuite/gcc.dg/sms-compare-debug-1.c
  29083ff7a74e33bf670767bdfe423cbb  gcc/testsuite/gcc.dg/sms-compare-debug-2.c
! 462ee539b38e672e3b24a7ae2268df8b  gcc/testsuite/gcc.dg/spec-barrier-3.c
! b5774d82d5e7a13f47820c57cf1db3ea  gcc/testsuite/gcc.dg/spec-barrier-3a.c
  9c080ca6c2427d1836ee0c8b3b4a07c7  gcc/testsuite/gcc.dg/spec-options.c
  20dc171666c91cdac8714a7c5075874e  gcc/testsuite/gcc.dg/special/20000419-2.c
  58b6b7734c2d9522f6acba13d91a557a  gcc/testsuite/gcc.dg/special/alias-1.c
  4b29f93ef3bc27cb9d83fdbc6aaa5b4a  gcc/testsuite/gcc.dg/special/alias-2.c
  d7d4289254a30a2d7a36599f413b3f00  gcc/testsuite/gcc.dg/special/gcsec-1.c
! e9baaf4a9bf68fe7d9541c1454409425  gcc/testsuite/gcc.dg/special/mips-abi.exp
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/special/mips-abi.s
! dd5d6f5f50d7a772d4462d50e4efdb63  gcc/testsuite/gcc.dg/special/special.exp
  401a0d7d075a4091d05bc341cd97d3bf  gcc/testsuite/gcc.dg/special/weak-1.c
  f92cc2fa14e5fe946fde0490c2b6321b  gcc/testsuite/gcc.dg/special/weak-1a.c
  679f99ed535d87ef210f2c69a6777b7e  gcc/testsuite/gcc.dg/special/weak-2.c
*************** f3746837de836616a2cd4a391fcb8570  gcc/te
*** 46536,46546 ****
  d6d6998346806ab756f4a6f2f1837c80  gcc/testsuite/gcc.dg/spellcheck-fields-2.c
  d4fdbf76b8ce0a055e73d176eb3bd869  gcc/testsuite/gcc.dg/spellcheck-fields-3.c
  0554276520e4130db57ea9cf8819e961  gcc/testsuite/gcc.dg/spellcheck-fields.c
! 00aefa38dc871345d4b4bec671b5e1c0  gcc/testsuite/gcc.dg/spellcheck-identifiers-2.c
! abdb32685f22b8929cf8f9f168d29d28  gcc/testsuite/gcc.dg/spellcheck-identifiers-3.c
! abbf935c723608f478f96bb74ad0816f  gcc/testsuite/gcc.dg/spellcheck-identifiers-4.c
! 4199bfa480931af1cf705e6ac8edbd20  gcc/testsuite/gcc.dg/spellcheck-identifiers.c
! fe2951799b55173b7852d27be3c40b66  gcc/testsuite/gcc.dg/spellcheck-inttypes.c
  2f8375b9f5127dafd07a2ab53b3bd6d0  gcc/testsuite/gcc.dg/spellcheck-options-1.c
  0d2bf1adcd64da826bc3c3e7d0a3e5e5  gcc/testsuite/gcc.dg/spellcheck-options-10.c
  12d8777e4c8e0dafacc2353dcbfd3e32  gcc/testsuite/gcc.dg/spellcheck-options-11.c
--- 48840,48854 ----
  d6d6998346806ab756f4a6f2f1837c80  gcc/testsuite/gcc.dg/spellcheck-fields-2.c
  d4fdbf76b8ce0a055e73d176eb3bd869  gcc/testsuite/gcc.dg/spellcheck-fields-3.c
  0554276520e4130db57ea9cf8819e961  gcc/testsuite/gcc.dg/spellcheck-fields.c
! faa934aa263ee55c94a0b2467225da61  gcc/testsuite/gcc.dg/spellcheck-identifiers-1a.c
! 47636f87c16d8ed34b7c06d705fc977c  gcc/testsuite/gcc.dg/spellcheck-identifiers-2.c
! 3c7915050b43070a67c48a281ab0bea7  gcc/testsuite/gcc.dg/spellcheck-identifiers-2a.c
! 980165ddf2e5a08c738c967e05621b73  gcc/testsuite/gcc.dg/spellcheck-identifiers-3.c
! 542261e8720c61493ba0885c6df21d89  gcc/testsuite/gcc.dg/spellcheck-identifiers-3a.c
! 0f02c661c4216725bee0ddd9a79d005d  gcc/testsuite/gcc.dg/spellcheck-identifiers-4.c
! cc6bb7e542a524fdec38a9a721414d5c  gcc/testsuite/gcc.dg/spellcheck-identifiers-4a.c
! f912a0cec865a8b6cd9ae8dcbf8fb2b4  gcc/testsuite/gcc.dg/spellcheck-identifiers.c
! f6181c2c7e465534916b50593f220f31  gcc/testsuite/gcc.dg/spellcheck-inttypes.c
  2f8375b9f5127dafd07a2ab53b3bd6d0  gcc/testsuite/gcc.dg/spellcheck-options-1.c
  0d2bf1adcd64da826bc3c3e7d0a3e5e5  gcc/testsuite/gcc.dg/spellcheck-options-10.c
  12d8777e4c8e0dafacc2353dcbfd3e32  gcc/testsuite/gcc.dg/spellcheck-options-11.c
*************** c280fdf8b30c02f59215201f8dacde94  gcc/te
*** 46568,46576 ****
  3dca88bd579ce41697169b0dde5f2138  gcc/testsuite/gcc.dg/spellcheck-params-2.c
  8d1f73ad5d3529aad78c303ef97bca51  gcc/testsuite/gcc.dg/spellcheck-params.c
  4b027606d627457f537d4da5f7fac762  gcc/testsuite/gcc.dg/spellcheck-pr83056.c
! 8155283fb3fe8f13e7b742eca13c9bae  gcc/testsuite/gcc.dg/spellcheck-stdbool.c
! 9a8c6f9098603f0acd1c42a10fec415b  gcc/testsuite/gcc.dg/spellcheck-stdint.c
! 44384157e4aa4da56203a3ed509127c6  gcc/testsuite/gcc.dg/spellcheck-stdlib.c
  8246cd5a7d8a2e4d0ea11bf9def939cd  gcc/testsuite/gcc.dg/spellcheck-transposition.c
  e3188822fe2eb498f64ea0ad687f6232  gcc/testsuite/gcc.dg/spellcheck-typenames.c
  d5b447904c327f5cfa57b69050822e4f  gcc/testsuite/gcc.dg/spill-1.c
--- 48876,48884 ----
  3dca88bd579ce41697169b0dde5f2138  gcc/testsuite/gcc.dg/spellcheck-params-2.c
  8d1f73ad5d3529aad78c303ef97bca51  gcc/testsuite/gcc.dg/spellcheck-params.c
  4b027606d627457f537d4da5f7fac762  gcc/testsuite/gcc.dg/spellcheck-pr83056.c
! 635a2ff7c6015d6f7f386573f64a37e0  gcc/testsuite/gcc.dg/spellcheck-stdbool.c
! b220f8c3ced72de2027ae1466fd1176a  gcc/testsuite/gcc.dg/spellcheck-stdint.c
! d08cb9df9c9f82e77ac793e523e2e2c1  gcc/testsuite/gcc.dg/spellcheck-stdlib.c
  8246cd5a7d8a2e4d0ea11bf9def939cd  gcc/testsuite/gcc.dg/spellcheck-transposition.c
  e3188822fe2eb498f64ea0ad687f6232  gcc/testsuite/gcc.dg/spellcheck-typenames.c
  d5b447904c327f5cfa57b69050822e4f  gcc/testsuite/gcc.dg/spill-1.c
*************** a22c0db258dd69508b2ceb6070cac172  gcc/te
*** 46591,46597 ****
--- 48899,48909 ----
  c248e635d1ac4e803a2fd1f8e029c98b  gcc/testsuite/gcc.dg/sso-15.c
  ae63ef59d4955da47b8b32d066fbadb0  gcc/testsuite/gcc.dg/sso-16.c
  48e05b713f14b7737a5213a884d6b0ed  gcc/testsuite/gcc.dg/sso-17.c
+ 75aa1c7dc30c77e64917010a59ba6787  gcc/testsuite/gcc.dg/sso-18.c
+ 99c40589df56f39b2b223d6bfd16f819  gcc/testsuite/gcc.dg/sso-19.c
  1596e67c3fd5ccc4a9264cba4aa398c4  gcc/testsuite/gcc.dg/sso-2.c
+ 6298c5ebb7b67ccc7f53cb1866c8d161  gcc/testsuite/gcc.dg/sso-20.c
+ b064d0c500ffab606bd961c41d284437  gcc/testsuite/gcc.dg/sso-21.c
  4a6f7bb1645423ba5d23a61f98233d1d  gcc/testsuite/gcc.dg/sso-3.c
  edaa32662275ea6100c4a0657754194a  gcc/testsuite/gcc.dg/sso-4.c
  59162427b88b2734a1718acc697b4048  gcc/testsuite/gcc.dg/sso-5.c
*************** dfb751744ae63c43f989ee13f0e517d6  gcc/te
*** 46641,46647 ****
  5acf2012225c2563f5111699dc108d4e  gcc/testsuite/gcc.dg/sso/s6.c
  2881d668843202ec4c4e53caf7d29b7c  gcc/testsuite/gcc.dg/sso/s7.c
  dc1e222143fcffd35ee8b32c36dfe5e9  gcc/testsuite/gcc.dg/sso/s8.c
! d576b401252b6b1c50dbdc299565c8d5  gcc/testsuite/gcc.dg/sso/sso.exp
  72a4bbb7159286bb235d6cc0329af835  gcc/testsuite/gcc.dg/sso/t1.c
  093ed74aa99ca9c9bc8760b6167c6c6f  gcc/testsuite/gcc.dg/sso/t13.c
  7b8e3ada92eb2f2a4e4aea8f81dd9b16  gcc/testsuite/gcc.dg/sso/t2.c
--- 48953,48959 ----
  5acf2012225c2563f5111699dc108d4e  gcc/testsuite/gcc.dg/sso/s6.c
  2881d668843202ec4c4e53caf7d29b7c  gcc/testsuite/gcc.dg/sso/s7.c
  dc1e222143fcffd35ee8b32c36dfe5e9  gcc/testsuite/gcc.dg/sso/s8.c
! 8bcd71545fa74d5fd97394256a2f8fc5  gcc/testsuite/gcc.dg/sso/sso.exp
  72a4bbb7159286bb235d6cc0329af835  gcc/testsuite/gcc.dg/sso/t1.c
  093ed74aa99ca9c9bc8760b6167c6c6f  gcc/testsuite/gcc.dg/sso/t13.c
  7b8e3ada92eb2f2a4e4aea8f81dd9b16  gcc/testsuite/gcc.dg/sso/t2.c
*************** fc94c5cf1382c5cc791f1e082f1bc93b  gcc/te
*** 46655,46661 ****
  4bb868e2d5ae5ad0f471895fe036ce9d  gcc/testsuite/gcc.dg/sso/u5.c
  6a94b217dd2dc52bd804b559734d7d6d  gcc/testsuite/gcc.dg/sso/u6.c
  aadb80509f82b46b30f6e6764a2e2dd1  gcc/testsuite/gcc.dg/ssp-1.c
! 298fe2c4a920a1453489cedaeaa98ff3  gcc/testsuite/gcc.dg/ssp-2.c
  b764f892e6c6f673878a4e8da208c16b  gcc/testsuite/gcc.dg/ssp-3.c
  5843aab6624989ad947aa1f77c816bce  gcc/testsuite/gcc.dg/ssp-4.c
  70e6f2a4c4d5735002d0b1f7dd18ddd2  gcc/testsuite/gcc.dg/stack-check-10.c
--- 48967,48973 ----
  4bb868e2d5ae5ad0f471895fe036ce9d  gcc/testsuite/gcc.dg/sso/u5.c
  6a94b217dd2dc52bd804b559734d7d6d  gcc/testsuite/gcc.dg/sso/u6.c
  aadb80509f82b46b30f6e6764a2e2dd1  gcc/testsuite/gcc.dg/ssp-1.c
! 07c428d62b7171c3d051c3770f57156c  gcc/testsuite/gcc.dg/ssp-2.c
  b764f892e6c6f673878a4e8da208c16b  gcc/testsuite/gcc.dg/ssp-3.c
  5843aab6624989ad947aa1f77c816bce  gcc/testsuite/gcc.dg/ssp-4.c
  70e6f2a4c4d5735002d0b1f7dd18ddd2  gcc/testsuite/gcc.dg/stack-check-10.c
*************** d5355400a72402c33417096b04dc2a5d  gcc/te
*** 46675,46682 ****
  33845ee1e7047b8e21181d9479f62d90  gcc/testsuite/gcc.dg/stack-usage-1.c
  198c846924d490e8eba17829d0caf626  gcc/testsuite/gcc.dg/stack-usage-2.c
  abeae7e4a2120581a50d5eb7cbe3929d  gcc/testsuite/gcc.dg/stackprotectexplicit1.c
  f4760013e77ec339cce4491012f46d96  gcc/testsuite/gcc.dg/stdint-width-1.c
! 539d4e69f29fe98f1c2fadb4a295cd5a  gcc/testsuite/gcc.dg/stdint-width-2.c
  cc4c4b4f3d828c816c22793a90c03eb1  gcc/testsuite/gcc.dg/stmt-expr-1.c
  8b47d043f375a5995d83feae8f86a8d3  gcc/testsuite/gcc.dg/stmt-expr-2.c
  894f6c6d644fc16f27c51f447c5e60c1  gcc/testsuite/gcc.dg/stmt-expr-3.c
--- 48987,48996 ----
  33845ee1e7047b8e21181d9479f62d90  gcc/testsuite/gcc.dg/stack-usage-1.c
  198c846924d490e8eba17829d0caf626  gcc/testsuite/gcc.dg/stack-usage-2.c
  abeae7e4a2120581a50d5eb7cbe3929d  gcc/testsuite/gcc.dg/stackprotectexplicit1.c
+ 6e9664759f9a2a278adb8639495ec2e1  gcc/testsuite/gcc.dg/stdckdint-1.c
+ f448887cba9d374d141b220fa79ed665  gcc/testsuite/gcc.dg/stdckdint-2.c
  f4760013e77ec339cce4491012f46d96  gcc/testsuite/gcc.dg/stdint-width-1.c
! 9aae58755527a84cdf6d9ef50ee110c6  gcc/testsuite/gcc.dg/stdint-width-2.c
  cc4c4b4f3d828c816c22793a90c03eb1  gcc/testsuite/gcc.dg/stmt-expr-1.c
  8b47d043f375a5995d83feae8f86a8d3  gcc/testsuite/gcc.dg/stmt-expr-2.c
  894f6c6d644fc16f27c51f447c5e60c1  gcc/testsuite/gcc.dg/stmt-expr-3.c
*************** b6afda10a5c27a727b0d08f21d516d4e  gcc/te
*** 46827,46833 ****
  266cb582a2b22ec485ff4459934b2dff  gcc/testsuite/gcc.dg/strlenopt-78.c
  19ad1d7297ba36f34f9d6cafb32b03df  gcc/testsuite/gcc.dg/strlenopt-79.c
  3483f22866ff8ad2f086a39d551abaeb  gcc/testsuite/gcc.dg/strlenopt-8.c
! 5a8cb450bfc771d9bf79d689f9f0033c  gcc/testsuite/gcc.dg/strlenopt-80.c
  8acdf4a4e0ea9ee3bbe36483c1d0dd90  gcc/testsuite/gcc.dg/strlenopt-81.c
  702c5265fb58aca854e1e7d0a5c48af0  gcc/testsuite/gcc.dg/strlenopt-82.c
  ccdd91fe71fd1e140e311902b699e7f9  gcc/testsuite/gcc.dg/strlenopt-83.c
--- 49141,49147 ----
  266cb582a2b22ec485ff4459934b2dff  gcc/testsuite/gcc.dg/strlenopt-78.c
  19ad1d7297ba36f34f9d6cafb32b03df  gcc/testsuite/gcc.dg/strlenopt-79.c
  3483f22866ff8ad2f086a39d551abaeb  gcc/testsuite/gcc.dg/strlenopt-8.c
! 8cc7f9a531a1854d32ce03ee927ec368  gcc/testsuite/gcc.dg/strlenopt-80.c
  8acdf4a4e0ea9ee3bbe36483c1d0dd90  gcc/testsuite/gcc.dg/strlenopt-81.c
  702c5265fb58aca854e1e7d0a5c48af0  gcc/testsuite/gcc.dg/strlenopt-82.c
  ccdd91fe71fd1e140e311902b699e7f9  gcc/testsuite/gcc.dg/strlenopt-83.c
*************** b5f70e58553a0938c1120805bb7995ab  gcc/te
*** 46849,46854 ****
--- 49163,49170 ----
  f58f592113e43197dadf58bbb685b20d  gcc/testsuite/gcc.dg/strncmp-2.c
  9e121cd0851f3306c9ca051ddcd04530  gcc/testsuite/gcc.dg/strncmp-3.c
  5778a0fbb76227bc62f3513b3543aed6  gcc/testsuite/gcc.dg/strncpy-fix-1.c
+ c66363249ca43baee9f09bde5baeb896  gcc/testsuite/gcc.dg/strub-internal-pr113394.c
+ 6c551fbb45a2e62474fcd9aa76cc7676  gcc/testsuite/gcc.dg/strub-internal-volatile.c
  e1737f9100fe39030ff4b356bc6ff29e  gcc/testsuite/gcc.dg/struct-alias-1.c
  eab81e074a250403be7bbbc61131ba0e  gcc/testsuite/gcc.dg/struct-by-value-1.c
  fff906a27910e082e50f16054f4642c4  gcc/testsuite/gcc.dg/struct-by-value-2.c
*************** ff05bfaf09ff28888e82d2b9fc85207b  gcc/te
*** 46888,46894 ****
  63c183838fe82cdc7372813b97203123  gcc/testsuite/gcc.dg/sync-3.c
  85e022f32fe6e5043e4e7ef1eac7a089  gcc/testsuite/gcc.dg/sync-fetch-bool.c
  9ee612d8f22fad1d020266761b85e3aa  gcc/testsuite/gcc.dg/sync-fetch.c
! 8eebc65fdc96b58289292950c92c2e41  gcc/testsuite/gcc.dg/system-binary-constants-1.c
  e365b74306fcc009f9864598bae7a166  gcc/testsuite/gcc.dg/system-binary-constants-1.h
  a55e4206e2dab0fdee9089430a7ce0ac  gcc/testsuite/gcc.dg/tail-merge-store.c
  6b4d32d7726a0d54806d2d9029c1eb62  gcc/testsuite/gcc.dg/tanhbysinh.c
--- 49204,49210 ----
  63c183838fe82cdc7372813b97203123  gcc/testsuite/gcc.dg/sync-3.c
  85e022f32fe6e5043e4e7ef1eac7a089  gcc/testsuite/gcc.dg/sync-fetch-bool.c
  9ee612d8f22fad1d020266761b85e3aa  gcc/testsuite/gcc.dg/sync-fetch.c
! e26af612fbb4cd35a904b7f167a4f5a0  gcc/testsuite/gcc.dg/system-binary-constants-1.c
  e365b74306fcc009f9864598bae7a166  gcc/testsuite/gcc.dg/system-binary-constants-1.h
  a55e4206e2dab0fdee9089430a7ce0ac  gcc/testsuite/gcc.dg/tail-merge-store.c
  6b4d32d7726a0d54806d2d9029c1eb62  gcc/testsuite/gcc.dg/tanhbysinh.c
*************** bd750cfcc2981be8695d1ba87cf4e02d  gcc/te
*** 46948,46954 ****
  3ab1a16951cdbfaf172055375ee208b1  gcc/testsuite/gcc.dg/tls/thr-cse-1.c
  f9dca9ba3163a454b601045eb9567803  gcc/testsuite/gcc.dg/tls/thr-init-1.c
  622c1bed70cf0fe0a74c0a5ed3602602  gcc/testsuite/gcc.dg/tls/thr-init-2.c
! 8fd786ba0c0ce77522031d17e888538c  gcc/testsuite/gcc.dg/tls/tls.exp
  972a92c27c38895cc90d496745d8e669  gcc/testsuite/gcc.dg/tls/trivial.c
  3f64e8f044d5d216448bf9d1642e94a3  gcc/testsuite/gcc.dg/tls/vis-attr-gd.c
  ac52768e9cf872ef83ce702631ddbf02  gcc/testsuite/gcc.dg/tls/vis-attr-hidden-gd.c
--- 49264,49270 ----
  3ab1a16951cdbfaf172055375ee208b1  gcc/testsuite/gcc.dg/tls/thr-cse-1.c
  f9dca9ba3163a454b601045eb9567803  gcc/testsuite/gcc.dg/tls/thr-init-1.c
  622c1bed70cf0fe0a74c0a5ed3602602  gcc/testsuite/gcc.dg/tls/thr-init-2.c
! fb0abe7e0e551470cff2dafc5d599748  gcc/testsuite/gcc.dg/tls/tls.exp
  972a92c27c38895cc90d496745d8e669  gcc/testsuite/gcc.dg/tls/trivial.c
  3f64e8f044d5d216448bf9d1642e94a3  gcc/testsuite/gcc.dg/tls/vis-attr-gd.c
  ac52768e9cf872ef83ce702631ddbf02  gcc/testsuite/gcc.dg/tls/vis-attr-hidden-gd.c
*************** e553d8e6fa00a9de620b73eb3e451616  gcc/te
*** 46968,46977 ****
  898880165cc7c4b87bfbc4d6f6f7e3fb  gcc/testsuite/gcc.dg/tm/20100615-2.c
  cde576929b1b37f0964764c54db538bb  gcc/testsuite/gcc.dg/tm/20100615.c
  0c34a4f07e157a596d22ed2e07a0f172  gcc/testsuite/gcc.dg/tm/20110216.c
! 8326d2d253bf59a69f0da42746857d7b  gcc/testsuite/gcc.dg/tm/alias-1.c
! 282bc8b1da979e23fbdd406afe9d90b6  gcc/testsuite/gcc.dg/tm/alias-2.c
  9a0fe198945480c964459b97cac6fcd1  gcc/testsuite/gcc.dg/tm/asm-1.c
! 8a5e8de6369af1f47dbe12de0901e63c  gcc/testsuite/gcc.dg/tm/attrs-1.c
  c85174ea75b28fc6687d97fd89cf70da  gcc/testsuite/gcc.dg/tm/clone-1.c
  833cdeaae273f71be87180d1599c89df  gcc/testsuite/gcc.dg/tm/data-1.c
  6b6685e17b04eabd7b220223321f2acf  gcc/testsuite/gcc.dg/tm/data-2.c
--- 49284,49293 ----
  898880165cc7c4b87bfbc4d6f6f7e3fb  gcc/testsuite/gcc.dg/tm/20100615-2.c
  cde576929b1b37f0964764c54db538bb  gcc/testsuite/gcc.dg/tm/20100615.c
  0c34a4f07e157a596d22ed2e07a0f172  gcc/testsuite/gcc.dg/tm/20110216.c
! e83d8b3bed1e07da433bacb5e95e5ed8  gcc/testsuite/gcc.dg/tm/alias-1.c
! 6a34a9050541db7a7b31fabdb5c50fe2  gcc/testsuite/gcc.dg/tm/alias-2.c
  9a0fe198945480c964459b97cac6fcd1  gcc/testsuite/gcc.dg/tm/asm-1.c
! 23f7e3ccae55af3cd159e8c25aa0b84c  gcc/testsuite/gcc.dg/tm/attrs-1.c
  c85174ea75b28fc6687d97fd89cf70da  gcc/testsuite/gcc.dg/tm/clone-1.c
  833cdeaae273f71be87180d1599c89df  gcc/testsuite/gcc.dg/tm/data-1.c
  6b6685e17b04eabd7b220223321f2acf  gcc/testsuite/gcc.dg/tm/data-2.c
*************** fe3f545b4342e4629b8e3f50ec72aa75  gcc/te
*** 47038,47044 ****
  69106475c2239e1185e01df0c747e5d0  gcc/testsuite/gcc.dg/tm/props-5.c
  c6a48dab441b531c2ea8105678947e48  gcc/testsuite/gcc.dg/tm/pub-safety-1.c
  04141c931c3cf5684e6da6b0f18cc32b  gcc/testsuite/gcc.dg/tm/reg-promotion.c
! 3304bb83dcb816ac2ff1ab7161e9c93e  gcc/testsuite/gcc.dg/tm/tm.exp
  00343bf5eb219ac16f5bb8c4bd59994b  gcc/testsuite/gcc.dg/tm/unsafe.c
  c5937eee848b88c1df5be63f77274eb5  gcc/testsuite/gcc.dg/tm/unused.c
  73db2a051a0e581c5f21d54dac46af4f  gcc/testsuite/gcc.dg/tm/vector-1.c
--- 49354,49360 ----
  69106475c2239e1185e01df0c747e5d0  gcc/testsuite/gcc.dg/tm/props-5.c
  c6a48dab441b531c2ea8105678947e48  gcc/testsuite/gcc.dg/tm/pub-safety-1.c
  04141c931c3cf5684e6da6b0f18cc32b  gcc/testsuite/gcc.dg/tm/reg-promotion.c
! e4eb1747624e4e5df09f61fadb7c2325  gcc/testsuite/gcc.dg/tm/tm.exp
  00343bf5eb219ac16f5bb8c4bd59994b  gcc/testsuite/gcc.dg/tm/unsafe.c
  c5937eee848b88c1df5be63f77274eb5  gcc/testsuite/gcc.dg/tm/unused.c
  73db2a051a0e581c5f21d54dac46af4f  gcc/testsuite/gcc.dg/tm/vector-1.c
*************** e9a65b982d10036ade7cc92c77da3682  gcc/te
*** 47072,47087 ****
  9fd80ecd2f7ee9f40db77c5478910f27  gcc/testsuite/gcc.dg/torture/20220518-2.c
  852a8e3497f32ebb54e9b55fc7587eb2  gcc/testsuite/gcc.dg/torture/20220525-1.c
  6b765185ec201860e2594b08bb18461a  gcc/testsuite/gcc.dg/torture/Wsizeof-pointer-memaccess1.c
  d23f5563695ea2b9898397f0244ca90d  gcc/testsuite/gcc.dg/torture/alias-1.c
  2063dc05a74374000dcf03fc407536e5  gcc/testsuite/gcc.dg/torture/alias-2.c
  623b6f1d93f75b391f9d1dc139c50697  gcc/testsuite/gcc.dg/torture/arm-fp16-compile-assign.c
  79136fa8006ded4d50fd423e8feb0576  gcc/testsuite/gcc.dg/torture/arm-fp16-compile-convert.c
! c3134bb932da882d8edab2b4ad966f2e  gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c
  acce6a0692aef9e9f3765bf8135e97a4  gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c
  9ad9eafed83197342bcdbe7afa3a727f  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-1.c
  888dbd717f5ba09e01e62616168dedf1  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-2.c
! 82c0c210293346e61741b53da986b4e2  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-3.c
! 8dbcfef517b3c3b34b4a663496492cdd  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-4.c
  55ccc89665481af2e7e6fc67952359f9  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-5.c
  7b3de180584180ecc9cfa5543f4cb88c  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-6.c
  df15bedf7dd28c41919973661d580f91  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-7.c
--- 49388,49435 ----
  9fd80ecd2f7ee9f40db77c5478910f27  gcc/testsuite/gcc.dg/torture/20220518-2.c
  852a8e3497f32ebb54e9b55fc7587eb2  gcc/testsuite/gcc.dg/torture/20220525-1.c
  6b765185ec201860e2594b08bb18461a  gcc/testsuite/gcc.dg/torture/Wsizeof-pointer-memaccess1.c
+ 33c88fb1161a115c3d2d9683966a010c  gcc/testsuite/gcc.dg/torture/addieq.c
+ d90316227fadaa997f8880be358748ba  gcc/testsuite/gcc.dg/torture/addifeq.c
+ f0fbadd5bb9cd5157ad0ecf5704442e7  gcc/testsuite/gcc.dg/torture/addifge.c
+ 0f78eae93d560f05465eb7d551c3f79d  gcc/testsuite/gcc.dg/torture/addifgt.c
+ 3c34ae3ba22fee5fd69c35e7355a5fc3  gcc/testsuite/gcc.dg/torture/addifle.c
+ c496d893e5b03181c6927eb22c4e3744  gcc/testsuite/gcc.dg/torture/addiflt.c
+ 79c19208ce9b2acb51ed2bc5d61f0155  gcc/testsuite/gcc.dg/torture/addifne.c
+ e57804559baa2677f45996de49ac5c35  gcc/testsuite/gcc.dg/torture/addige.c
+ 5bac153fb44c7e2a0edeeaec6744546b  gcc/testsuite/gcc.dg/torture/addigeu.c
+ c41d68a0f0692eaef087568c4806ef02  gcc/testsuite/gcc.dg/torture/addigt.c
+ a656fdf9ed68f497a203288379c32bb8  gcc/testsuite/gcc.dg/torture/addigtu.c
+ 658ade4f4cacc8ac015cf5ad8d440748  gcc/testsuite/gcc.dg/torture/addile.c
+ 639badc854980ddd8612d05084414c82  gcc/testsuite/gcc.dg/torture/addileu.c
+ e38321cac314cc8deb48d7ff0d2de5fc  gcc/testsuite/gcc.dg/torture/addilt.c
+ ae9ffb5fadc1508a04baa570cee6a2f6  gcc/testsuite/gcc.dg/torture/addiltu.c
+ efc7f669c02cb6572b13de1968edf095  gcc/testsuite/gcc.dg/torture/addine.c
+ 0b32cf7469b1fe68a5b3e8e6ec5ac069  gcc/testsuite/gcc.dg/torture/addleq.c
+ ca81312a30d5e737ec48c1c23b1063f7  gcc/testsuite/gcc.dg/torture/addlfeq.c
+ ffce6cae823b70c5e3b1009193b4dc52  gcc/testsuite/gcc.dg/torture/addlfge.c
+ 32ce5f5327049a2a178a3ef9ff2643b1  gcc/testsuite/gcc.dg/torture/addlfgt.c
+ b31a13ac67a9ce7b426efbb1da636765  gcc/testsuite/gcc.dg/torture/addlfle.c
+ cabbd1846667f48a065ef2c0e4b6b3fb  gcc/testsuite/gcc.dg/torture/addlflt.c
+ 5a832655a3f4504c083ef1b027ac7f59  gcc/testsuite/gcc.dg/torture/addlfne.c
+ e13295146efe0e38998947500a1b9bf2  gcc/testsuite/gcc.dg/torture/addlge.c
+ a988c4ebc8baf1058a181a50ad0a3bcb  gcc/testsuite/gcc.dg/torture/addlgeu.c
+ 0b67678d7746211f7509ec86df872bb9  gcc/testsuite/gcc.dg/torture/addlgt.c
+ b09c561418fb72bd3c8844ac3f1e0a34  gcc/testsuite/gcc.dg/torture/addlgtu.c
+ 58e3541c33c50d438c39ba00709b639e  gcc/testsuite/gcc.dg/torture/addlle.c
+ 3f7c1c7abe7565e673e2656958bb1241  gcc/testsuite/gcc.dg/torture/addlleu.c
+ 26df48267e657090780507e5a02ed61a  gcc/testsuite/gcc.dg/torture/addllt.c
+ 632186ea8bd38bf789b9aafb6512d532  gcc/testsuite/gcc.dg/torture/addlltu.c
+ 01ca1900e04b1f2b73bf6a3f474645bf  gcc/testsuite/gcc.dg/torture/addlne.c
  d23f5563695ea2b9898397f0244ca90d  gcc/testsuite/gcc.dg/torture/alias-1.c
  2063dc05a74374000dcf03fc407536e5  gcc/testsuite/gcc.dg/torture/alias-2.c
  623b6f1d93f75b391f9d1dc139c50697  gcc/testsuite/gcc.dg/torture/arm-fp16-compile-assign.c
  79136fa8006ded4d50fd423e8feb0576  gcc/testsuite/gcc.dg/torture/arm-fp16-compile-convert.c
! b9eb255566755af3180eb0e9b25d0db1  gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c
  acce6a0692aef9e9f3765bf8135e97a4  gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c
  9ad9eafed83197342bcdbe7afa3a727f  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-1.c
  888dbd717f5ba09e01e62616168dedf1  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-2.c
! 863d9c5a7d15467a72e816b2b43571e2  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-3.c
! 9bd8042dcfc26701d025f9153b773ec7  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-4.c
  55ccc89665481af2e7e6fc67952359f9  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-5.c
  7b3de180584180ecc9cfa5543f4cb88c  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-6.c
  df15bedf7dd28c41919973661d580f91  gcc/testsuite/gcc.dg/torture/arm-fp16-ops-7.c
*************** ef8a74113ed65681e746068871cc9691  gcc/te
*** 47093,47100 ****
  4f2bc32805181f5c4c94abf466abb45b  gcc/testsuite/gcc.dg/torture/bfloat16-builtin-issignaling-1.c
  0f421e5d90df5d6b1df83fa8ea509c38  gcc/testsuite/gcc.dg/torture/bfloat16-builtin.c
  b17b4527a47b2b6306755793803b481f  gcc/testsuite/gcc.dg/torture/bfloat16-complex.c
  cf9904d4026e69bddaf745011bbaaab3  gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
! e9fcd2618d7b5037e83f97c753ccd9b8  gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
  3799cfeec447b62af156b116f77ae4e8  gcc/testsuite/gcc.dg/torture/builtin-convert-1.c
  74038efa774ec2e3461c609c16206820  gcc/testsuite/gcc.dg/torture/builtin-convert-2.c
  c7905f1c5735f10bdde7891d750bec40  gcc/testsuite/gcc.dg/torture/builtin-convert-3.c
--- 49441,49518 ----
  4f2bc32805181f5c4c94abf466abb45b  gcc/testsuite/gcc.dg/torture/bfloat16-builtin-issignaling-1.c
  0f421e5d90df5d6b1df83fa8ea509c38  gcc/testsuite/gcc.dg/torture/bfloat16-builtin.c
  b17b4527a47b2b6306755793803b481f  gcc/testsuite/gcc.dg/torture/bfloat16-complex.c
+ 9271e7a27977295d012588d87c307184  gcc/testsuite/gcc.dg/torture/bitint-1.c
+ 8e57ed5237e8f0f6918760eea643be09  gcc/testsuite/gcc.dg/torture/bitint-10.c
+ 6e0edfd615730c144c767fcf9cebc844  gcc/testsuite/gcc.dg/torture/bitint-11.c
+ 70badd65fbc9d51f24c59244ff200b8c  gcc/testsuite/gcc.dg/torture/bitint-12.c
+ d43d461c9733529f16abae58889c550b  gcc/testsuite/gcc.dg/torture/bitint-13.c
+ 1f03416dd50b11c6d25d2aa3612e5194  gcc/testsuite/gcc.dg/torture/bitint-14.c
+ a08356c1d6ddf27eeaaa3efc9da8e858  gcc/testsuite/gcc.dg/torture/bitint-15.c
+ 7afca1f3e3ef921d30b4f0f4d1acdbf6  gcc/testsuite/gcc.dg/torture/bitint-16.c
+ f0306298978622c01f4b0b0898342eee  gcc/testsuite/gcc.dg/torture/bitint-17.c
+ c06e9b3d5919e2e5baf7e4b85c10e86a  gcc/testsuite/gcc.dg/torture/bitint-18.c
+ d1bf509ad14c2ee3f943902a371db863  gcc/testsuite/gcc.dg/torture/bitint-19.c
+ e5b49a1c6781bda087b7d5fc9798b5e5  gcc/testsuite/gcc.dg/torture/bitint-2.c
+ 63c2b06f93260e0a8f9540ed3d4b1f21  gcc/testsuite/gcc.dg/torture/bitint-20.c
+ 4012a361172fcb418ca90a4b5523eb7c  gcc/testsuite/gcc.dg/torture/bitint-21.c
+ 26bee3d4b73e5132f6dc576000e7961a  gcc/testsuite/gcc.dg/torture/bitint-22.c
+ 59ce790b3bc66870f759792b9a41cb29  gcc/testsuite/gcc.dg/torture/bitint-23.c
+ a93971493e50bfff196d1369b2077ef0  gcc/testsuite/gcc.dg/torture/bitint-24.c
+ 4c608b41f43f80ca8bffe57d90e95299  gcc/testsuite/gcc.dg/torture/bitint-25.c
+ 07919a53da61572f3acac82a3281511e  gcc/testsuite/gcc.dg/torture/bitint-26.c
+ 20d4ae4ce4bbb55061ccf8bde37e59ce  gcc/testsuite/gcc.dg/torture/bitint-27.c
+ 9987bdb6f017df76d61b09c90254b324  gcc/testsuite/gcc.dg/torture/bitint-28.c
+ 294bb05027551e2695b4208819d13a60  gcc/testsuite/gcc.dg/torture/bitint-29.c
+ d9c79f2aa888158207dad9234d228ce5  gcc/testsuite/gcc.dg/torture/bitint-3.c
+ 38e6e04daf3b7539e4871977d68ea81c  gcc/testsuite/gcc.dg/torture/bitint-30.c
+ a3249dadbc6d3061093c028ccff62638  gcc/testsuite/gcc.dg/torture/bitint-31.c
+ 9cf3440ce73e1dbea8999cb39c227b11  gcc/testsuite/gcc.dg/torture/bitint-32.c
+ d249bf1f1ee99ddd96b8fc258a7ac4a1  gcc/testsuite/gcc.dg/torture/bitint-33.c
+ d9c472c8bf7f36be0ce2d60b95c94014  gcc/testsuite/gcc.dg/torture/bitint-34.c
+ ced34c0feb2cdfae0939b7608dacfd04  gcc/testsuite/gcc.dg/torture/bitint-35.c
+ 0422db481a41027b76517cfeaf19b630  gcc/testsuite/gcc.dg/torture/bitint-36.c
+ e19c2d45ead0ca0c1a59be8bb8077c6c  gcc/testsuite/gcc.dg/torture/bitint-37.c
+ b9298c9f7876bb04d9df6dc41b2e20e5  gcc/testsuite/gcc.dg/torture/bitint-38.c
+ d486400a375a9d60222ea72a5ee90def  gcc/testsuite/gcc.dg/torture/bitint-39.c
+ 6e8166182d19458f36e5e70cb91d6b51  gcc/testsuite/gcc.dg/torture/bitint-4.c
+ 5e6a1bad0566e1b1e0e0ca52ebbda27a  gcc/testsuite/gcc.dg/torture/bitint-40.c
+ 6cfd7991865a623821558aefa6d12f10  gcc/testsuite/gcc.dg/torture/bitint-41.c
+ 8df794769eeb8f1f65a57ee21e4b24bc  gcc/testsuite/gcc.dg/torture/bitint-42.c
+ 9aa5a2d91462b75eaff3848709ef1347  gcc/testsuite/gcc.dg/torture/bitint-43.c
+ b304b006e8ec2d323826df9c32913578  gcc/testsuite/gcc.dg/torture/bitint-44.c
+ 45eb3c762584d345ff86c05e7d3bf3ff  gcc/testsuite/gcc.dg/torture/bitint-45.c
+ 2bc325b53242c17cba37b276c544b8f5  gcc/testsuite/gcc.dg/torture/bitint-46.c
+ 665d8c4b8fa9dbfb02619e8d0ef21d19  gcc/testsuite/gcc.dg/torture/bitint-47.c
+ abd5464e95a53e9d61fa641c13e25b4a  gcc/testsuite/gcc.dg/torture/bitint-48.c
+ 31f993f05b0ce3b800db6202dd7a671b  gcc/testsuite/gcc.dg/torture/bitint-49.c
+ 108afc8b032075f7579c08b491bdfd5e  gcc/testsuite/gcc.dg/torture/bitint-5.c
+ a9f2b9da9129137e1d94686cfa560ef0  gcc/testsuite/gcc.dg/torture/bitint-50.c
+ f411bbf85a26f039d4d5ef468aa90b10  gcc/testsuite/gcc.dg/torture/bitint-51.c
+ f1423c7b9c79d54b73712971e3f0a009  gcc/testsuite/gcc.dg/torture/bitint-52.c
+ a558c5c18c9205bcbbef796b203e6485  gcc/testsuite/gcc.dg/torture/bitint-53.c
+ 1a29b9910c461e742d93a9afd83867e9  gcc/testsuite/gcc.dg/torture/bitint-54.c
+ 6b911c5ff6f70d0bbfc82ee72ba8c046  gcc/testsuite/gcc.dg/torture/bitint-55.c
+ b1c0540cea1044f1155a0b437a39e1a5  gcc/testsuite/gcc.dg/torture/bitint-56.c
+ c2a46e867e783aa09ce428803ff2eb1f  gcc/testsuite/gcc.dg/torture/bitint-57.c
+ 104dc8648b521a106e1040d33264696c  gcc/testsuite/gcc.dg/torture/bitint-58.c
+ 69521efdc8ce9b4d529c3750851b8ba3  gcc/testsuite/gcc.dg/torture/bitint-59.c
+ 0b2b1dd6001722a84744f762d325d870  gcc/testsuite/gcc.dg/torture/bitint-6.c
+ 14622dcb571df11444242f61b14dc2e2  gcc/testsuite/gcc.dg/torture/bitint-60.c
+ fb1ac4ca7d21a0ebd69de3b13f313e3c  gcc/testsuite/gcc.dg/torture/bitint-61.c
+ ec46adffd1b71b37080f2c2fdfd30dbb  gcc/testsuite/gcc.dg/torture/bitint-62.c
+ 12041a6757f63a687858dedea1213648  gcc/testsuite/gcc.dg/torture/bitint-63.c
+ 46e3e76051e6a69f02c46d10e1cacefa  gcc/testsuite/gcc.dg/torture/bitint-64.c
+ d3fc0f9dcd751a3330cf8dad7a58f270  gcc/testsuite/gcc.dg/torture/bitint-65.c
+ 32852fe0c4231daaf28127cda08a71f6  gcc/testsuite/gcc.dg/torture/bitint-66.c
+ 308ffdbb2d530e7bb0d9566dcc845610  gcc/testsuite/gcc.dg/torture/bitint-67.c
+ c814fe4a3cd51a2ffa1ce4dc2a66cb30  gcc/testsuite/gcc.dg/torture/bitint-68.c
+ 463b9669569d8f969dc689fd5751b1d1  gcc/testsuite/gcc.dg/torture/bitint-69.c
+ 7c09d9b7385b033f56397e505e490aac  gcc/testsuite/gcc.dg/torture/bitint-7.c
+ c7d2f371831f92ad470bde6ed1221537  gcc/testsuite/gcc.dg/torture/bitint-70.c
+ cf2a2337cf009457d836bd48e49c0af3  gcc/testsuite/gcc.dg/torture/bitint-8.c
+ 4d03bd57dac0507a44cc15b9afacd8a3  gcc/testsuite/gcc.dg/torture/bitint-9.c
  cf9904d4026e69bddaf745011bbaaab3  gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
! c3c39411545c83e500562780b71883b6  gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
  3799cfeec447b62af156b116f77ae4e8  gcc/testsuite/gcc.dg/torture/builtin-convert-1.c
  74038efa774ec2e3461c609c16206820  gcc/testsuite/gcc.dg/torture/builtin-convert-2.c
  c7905f1c5735f10bdde7891d750bec40  gcc/testsuite/gcc.dg/torture/builtin-convert-3.c
*************** a0f56ed57baba405990ff4804a378582  gcc/te
*** 47104,47113 ****
  dfb471a397851bdb52f7df883b650b86  gcc/testsuite/gcc.dg/torture/builtin-ctype-1.c
  17bcbd76d1d14e04b26622ff64a84e7e  gcc/testsuite/gcc.dg/torture/builtin-ctype-2.c
  21ae8e4c97f9712921eba7fc818f95ac  gcc/testsuite/gcc.dg/torture/builtin-explog-1.c
! d5c9ca0ff5b0b34e1fa874eadc3d6c3c  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-c2x.c
  c52cf8304bc6fa5604bc97a203120619  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact.c
  f17d1f5035ab6459558b499a77e14ecc  gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
  b240a0ef7d00244042073b024cac7c9e  gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
  4ce025382a7da5160143d92f4b87df45  gcc/testsuite/gcc.dg/torture/builtin-isinf_sign-1.c
  ae065e2d0b0f2cf03ba8778b34d20d38  gcc/testsuite/gcc.dg/torture/builtin-issignaling-1.c
  eaaf6db1d2f24f7e1647597cee1dab33  gcc/testsuite/gcc.dg/torture/builtin-issignaling-2.c
--- 49522,49535 ----
  dfb471a397851bdb52f7df883b650b86  gcc/testsuite/gcc.dg/torture/builtin-ctype-1.c
  17bcbd76d1d14e04b26622ff64a84e7e  gcc/testsuite/gcc.dg/torture/builtin-ctype-2.c
  21ae8e4c97f9712921eba7fc818f95ac  gcc/testsuite/gcc.dg/torture/builtin-explog-1.c
! 8713a7e9dff2eba5a2964d8d1c60e2f0  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-c23.c
! 16fc4b75d1106b1dcba3231d6838deb2  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-trunc.c
  c52cf8304bc6fa5604bc97a203120619  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact.c
  f17d1f5035ab6459558b499a77e14ecc  gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
  b240a0ef7d00244042073b024cac7c9e  gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
+ 2ebe7edfc38a82904cf251e2bdfe9b55  gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c
+ 5fa7281fb8ba2184bd3c722d16dd4750  gcc/testsuite/gcc.dg/torture/builtin-iseqsig-2.c
+ 84953d6d72ca6df8863fe5d2a0870cdb  gcc/testsuite/gcc.dg/torture/builtin-iseqsig-3.c
  4ce025382a7da5160143d92f4b87df45  gcc/testsuite/gcc.dg/torture/builtin-isinf_sign-1.c
  ae065e2d0b0f2cf03ba8778b34d20d38  gcc/testsuite/gcc.dg/torture/builtin-issignaling-1.c
  eaaf6db1d2f24f7e1647597cee1dab33  gcc/testsuite/gcc.dg/torture/builtin-issignaling-2.c
*************** fe01d458fb1e7b307aca4d27de62eff0  gcc/te
*** 47138,47145 ****
  500d48d3b156ad2e1b9121d933504b79  gcc/testsuite/gcc.dg/torture/builtin-symmetric-1.c
  aa8cb0db7596e9b0e87edb8ba4d89392  gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c
  48103f541453ef994906baa3e8cc9d99  gcc/testsuite/gcc.dg/torture/builtins-1.c
! 666ec222d674bedc16159aefa730071e  gcc/testsuite/gcc.dg/torture/c2x-stdarg-split-1a.c
! ed8e4df274fbfd698768337bdf0ac488  gcc/testsuite/gcc.dg/torture/c2x-stdarg-split-1b.c
  dca6b9a0b04be64d1fd91290469bb98b  gcc/testsuite/gcc.dg/torture/c99-contract-1.c
  d91f1642a3d3d72da6f61a576021d2ea  gcc/testsuite/gcc.dg/torture/calleesave-sse.c
  ca7351c7a93d80d524ce603d92263c47  gcc/testsuite/gcc.dg/torture/convert-dfp-2.c
--- 49560,49567 ----
  500d48d3b156ad2e1b9121d933504b79  gcc/testsuite/gcc.dg/torture/builtin-symmetric-1.c
  aa8cb0db7596e9b0e87edb8ba4d89392  gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c
  48103f541453ef994906baa3e8cc9d99  gcc/testsuite/gcc.dg/torture/builtins-1.c
! 95c003e64ffbfa88cf22e7e0abb6d15c  gcc/testsuite/gcc.dg/torture/c23-stdarg-split-1a.c
! 4e37088d4365ea621db431f7e6fed74e  gcc/testsuite/gcc.dg/torture/c23-stdarg-split-1b.c
  dca6b9a0b04be64d1fd91290469bb98b  gcc/testsuite/gcc.dg/torture/c99-contract-1.c
  d91f1642a3d3d72da6f61a576021d2ea  gcc/testsuite/gcc.dg/torture/calleesave-sse.c
  ca7351c7a93d80d524ce603d92263c47  gcc/testsuite/gcc.dg/torture/convert-dfp-2.c
*************** f0a0abbf88d90c241d5a79a842755381  gcc/te
*** 47154,47160 ****
  cd5f72d1a4b2a92dcf8434e80e2602fc  gcc/testsuite/gcc.dg/torture/float128-basic.c
  bb3b562f0a0883df26aa18dc082521cd  gcc/testsuite/gcc.dg/torture/float128-builtin-issignaling-1.c
  494e5cff36358bcb8a5d95a0a1af2886  gcc/testsuite/gcc.dg/torture/float128-builtin.c
! 91878abc4b4d0b7881e1265b4152798a  gcc/testsuite/gcc.dg/torture/float128-cmp-invalid.c
  1d70fefec2682a655242b228afd11ac7  gcc/testsuite/gcc.dg/torture/float128-complex.c
  f866a0ec75af63274fded6d6e704572a  gcc/testsuite/gcc.dg/torture/float128-div-underflow.c
  4c582f75a6506b2d756ac4784481eef0  gcc/testsuite/gcc.dg/torture/float128-exact-underflow.c
--- 49576,49582 ----
  cd5f72d1a4b2a92dcf8434e80e2602fc  gcc/testsuite/gcc.dg/torture/float128-basic.c
  bb3b562f0a0883df26aa18dc082521cd  gcc/testsuite/gcc.dg/torture/float128-builtin-issignaling-1.c
  494e5cff36358bcb8a5d95a0a1af2886  gcc/testsuite/gcc.dg/torture/float128-builtin.c
! 9f83e18dda798133f6769ec78faafc56  gcc/testsuite/gcc.dg/torture/float128-cmp-invalid.c
  1d70fefec2682a655242b228afd11ac7  gcc/testsuite/gcc.dg/torture/float128-complex.c
  f866a0ec75af63274fded6d6e704572a  gcc/testsuite/gcc.dg/torture/float128-div-underflow.c
  4c582f75a6506b2d756ac4784481eef0  gcc/testsuite/gcc.dg/torture/float128-exact-underflow.c
*************** f866a0ec75af63274fded6d6e704572a  gcc/te
*** 47164,47170 ****
  16e3add3ddbf39ea888b43c6589dd825  gcc/testsuite/gcc.dg/torture/float128-floath.c
  c35d3e6323ffb752dd3c9f891a3f6e50  gcc/testsuite/gcc.dg/torture/float128-ieee-nan.c
  1d581b89a6131cdc2bd3dc2b34fc7fa9  gcc/testsuite/gcc.dg/torture/float128-mul-underflow.c
! c5d4b4a6b1f41f7b06ae617c02247ab7  gcc/testsuite/gcc.dg/torture/float128-nan-floath.c
  27c304116c294f65c11bea55d8534fbf  gcc/testsuite/gcc.dg/torture/float128-nan.c
  9e7fc55d35743bbfaf829c9543de9ac4  gcc/testsuite/gcc.dg/torture/float128-tg-2.c
  b28a81887fe424c5516f8c05bef87e24  gcc/testsuite/gcc.dg/torture/float128-tg-3.c
--- 49586,49592 ----
  16e3add3ddbf39ea888b43c6589dd825  gcc/testsuite/gcc.dg/torture/float128-floath.c
  c35d3e6323ffb752dd3c9f891a3f6e50  gcc/testsuite/gcc.dg/torture/float128-ieee-nan.c
  1d581b89a6131cdc2bd3dc2b34fc7fa9  gcc/testsuite/gcc.dg/torture/float128-mul-underflow.c
! a845446fb1e6c01b81287363b3fbf07c  gcc/testsuite/gcc.dg/torture/float128-nan-floath.c
  27c304116c294f65c11bea55d8534fbf  gcc/testsuite/gcc.dg/torture/float128-nan.c
  9e7fc55d35743bbfaf829c9543de9ac4  gcc/testsuite/gcc.dg/torture/float128-tg-2.c
  b28a81887fe424c5516f8c05bef87e24  gcc/testsuite/gcc.dg/torture/float128-tg-3.c
*************** a0352637f21fc07fa0443b4c4e043743  gcc/te
*** 47176,47182 ****
  e33e9866b71e5b2d80a7726f98b4f67a  gcc/testsuite/gcc.dg/torture/float128x-builtin.c
  e49fe7885268fff640a38e0a037329c4  gcc/testsuite/gcc.dg/torture/float128x-complex.c
  401684af3896cffb4704dc55d75742c0  gcc/testsuite/gcc.dg/torture/float128x-floath.c
! 2315f81e52c5cfc21731357ab789e22b  gcc/testsuite/gcc.dg/torture/float128x-nan-floath.c
  faaae848adb2651e6d76b499120a3ad5  gcc/testsuite/gcc.dg/torture/float128x-nan.c
  c13372500282ebfd8b04577d9ddf5d17  gcc/testsuite/gcc.dg/torture/float128x-tg-2.c
  2d17bad2259db985234345b4f2259fe6  gcc/testsuite/gcc.dg/torture/float128x-tg-3.c
--- 49598,49604 ----
  e33e9866b71e5b2d80a7726f98b4f67a  gcc/testsuite/gcc.dg/torture/float128x-builtin.c
  e49fe7885268fff640a38e0a037329c4  gcc/testsuite/gcc.dg/torture/float128x-complex.c
  401684af3896cffb4704dc55d75742c0  gcc/testsuite/gcc.dg/torture/float128x-floath.c
! 4f2fd6c8dc2920637ac9d4d87f30ec21  gcc/testsuite/gcc.dg/torture/float128x-nan-floath.c
  faaae848adb2651e6d76b499120a3ad5  gcc/testsuite/gcc.dg/torture/float128x-nan.c
  c13372500282ebfd8b04577d9ddf5d17  gcc/testsuite/gcc.dg/torture/float128x-tg-2.c
  2d17bad2259db985234345b4f2259fe6  gcc/testsuite/gcc.dg/torture/float128x-tg-3.c
*************** c13372500282ebfd8b04577d9ddf5d17  gcc/te
*** 47186,47192 ****
  0b852fc3b1862a3ee4465e753b0e5269  gcc/testsuite/gcc.dg/torture/float16-builtin.c
  7e58cfd59df7aaacf5f6b4d8cf740b4e  gcc/testsuite/gcc.dg/torture/float16-complex.c
  810fc9eca4c8607405db7c71c2529179  gcc/testsuite/gcc.dg/torture/float16-floath.c
! 3833ea15a71d37392754b1e38a57e46f  gcc/testsuite/gcc.dg/torture/float16-nan-floath.c
  e090fedeec308991a1c09abff9f6fe64  gcc/testsuite/gcc.dg/torture/float16-nan.c
  5634e3daf8b7419925b6959aa3ed1764  gcc/testsuite/gcc.dg/torture/float16-tg-2.c
  9777da1a4b23fac807d5ed96f0c68132  gcc/testsuite/gcc.dg/torture/float16-tg-3.c
--- 49608,49614 ----
  0b852fc3b1862a3ee4465e753b0e5269  gcc/testsuite/gcc.dg/torture/float16-builtin.c
  7e58cfd59df7aaacf5f6b4d8cf740b4e  gcc/testsuite/gcc.dg/torture/float16-complex.c
  810fc9eca4c8607405db7c71c2529179  gcc/testsuite/gcc.dg/torture/float16-floath.c
! 1633384298cdbb8c08d6c120e25a3dd8  gcc/testsuite/gcc.dg/torture/float16-nan-floath.c
  e090fedeec308991a1c09abff9f6fe64  gcc/testsuite/gcc.dg/torture/float16-nan.c
  5634e3daf8b7419925b6959aa3ed1764  gcc/testsuite/gcc.dg/torture/float16-tg-2.c
  9777da1a4b23fac807d5ed96f0c68132  gcc/testsuite/gcc.dg/torture/float16-tg-3.c
*************** b4096eb52651ec65f950d30aee4a4940  gcc/te
*** 47196,47202 ****
  94b044327500f6d1582d37ae9ea7796c  gcc/testsuite/gcc.dg/torture/float32-builtin.c
  466fe4121149750edb2fec5ab3226c8a  gcc/testsuite/gcc.dg/torture/float32-complex.c
  479194fddf3b58b2a535336a2b171630  gcc/testsuite/gcc.dg/torture/float32-floath.c
! a16ef20b21801ed8093d661dce12dff1  gcc/testsuite/gcc.dg/torture/float32-nan-floath.c
  01ee43ae824950a2c289789898233261  gcc/testsuite/gcc.dg/torture/float32-nan.c
  fa50dda441f5c8935cc3883b733d6f4f  gcc/testsuite/gcc.dg/torture/float32-tg-2.c
  484c0f7a0e1bacc0b657a1a64d94ee09  gcc/testsuite/gcc.dg/torture/float32-tg-3.c
--- 49618,49624 ----
  94b044327500f6d1582d37ae9ea7796c  gcc/testsuite/gcc.dg/torture/float32-builtin.c
  466fe4121149750edb2fec5ab3226c8a  gcc/testsuite/gcc.dg/torture/float32-complex.c
  479194fddf3b58b2a535336a2b171630  gcc/testsuite/gcc.dg/torture/float32-floath.c
! 423cd6c9c8153107ea5c47869e5b46a9  gcc/testsuite/gcc.dg/torture/float32-nan-floath.c
  01ee43ae824950a2c289789898233261  gcc/testsuite/gcc.dg/torture/float32-nan.c
  fa50dda441f5c8935cc3883b733d6f4f  gcc/testsuite/gcc.dg/torture/float32-tg-2.c
  484c0f7a0e1bacc0b657a1a64d94ee09  gcc/testsuite/gcc.dg/torture/float32-tg-3.c
*************** fa50dda441f5c8935cc3883b733d6f4f  gcc/te
*** 47206,47212 ****
  4a70ceb9cb585dd2e7b808836ba1a5c6  gcc/testsuite/gcc.dg/torture/float32x-builtin.c
  aef817e604f3b188289291b1907bfc65  gcc/testsuite/gcc.dg/torture/float32x-complex.c
  63ec3f7c1deb2f123396d523bf83ae3a  gcc/testsuite/gcc.dg/torture/float32x-floath.c
! 5899748737d87a2f48dfe688cbe0a77b  gcc/testsuite/gcc.dg/torture/float32x-nan-floath.c
  8efe896a31c91066b6963bfdcb5a1e49  gcc/testsuite/gcc.dg/torture/float32x-nan.c
  dafff5133398fb327002b7b2ecfdc9f7  gcc/testsuite/gcc.dg/torture/float32x-tg-2.c
  7e0e3d85111a1d8396674ffd7902dcc4  gcc/testsuite/gcc.dg/torture/float32x-tg-3.c
--- 49628,49634 ----
  4a70ceb9cb585dd2e7b808836ba1a5c6  gcc/testsuite/gcc.dg/torture/float32x-builtin.c
  aef817e604f3b188289291b1907bfc65  gcc/testsuite/gcc.dg/torture/float32x-complex.c
  63ec3f7c1deb2f123396d523bf83ae3a  gcc/testsuite/gcc.dg/torture/float32x-floath.c
! 358860f12e4b52c4d8c267c510fb3657  gcc/testsuite/gcc.dg/torture/float32x-nan-floath.c
  8efe896a31c91066b6963bfdcb5a1e49  gcc/testsuite/gcc.dg/torture/float32x-nan.c
  dafff5133398fb327002b7b2ecfdc9f7  gcc/testsuite/gcc.dg/torture/float32x-tg-2.c
  7e0e3d85111a1d8396674ffd7902dcc4  gcc/testsuite/gcc.dg/torture/float32x-tg-3.c
*************** d484dfa82978a064727b8afa7bfcf265  gcc/te
*** 47216,47222 ****
  cae353410ad77c26913e93de7759b965  gcc/testsuite/gcc.dg/torture/float64-builtin.c
  4796861bb6ca40790008edefd3e86b9f  gcc/testsuite/gcc.dg/torture/float64-complex.c
  465667475890a3f5b21d79ee1d6989f4  gcc/testsuite/gcc.dg/torture/float64-floath.c
! 65537651c353ca1685a3cb584fad3afb  gcc/testsuite/gcc.dg/torture/float64-nan-floath.c
  aafa2750eb1c3f9c87d637685a067d90  gcc/testsuite/gcc.dg/torture/float64-nan.c
  d296cbbb51d32777492acb1f17aef0f2  gcc/testsuite/gcc.dg/torture/float64-tg-2.c
  a5c1a74d472cc90f018fe1671f7c9256  gcc/testsuite/gcc.dg/torture/float64-tg-3.c
--- 49638,49644 ----
  cae353410ad77c26913e93de7759b965  gcc/testsuite/gcc.dg/torture/float64-builtin.c
  4796861bb6ca40790008edefd3e86b9f  gcc/testsuite/gcc.dg/torture/float64-complex.c
  465667475890a3f5b21d79ee1d6989f4  gcc/testsuite/gcc.dg/torture/float64-floath.c
! 67b225cec1e66f9c31619146784d75ab  gcc/testsuite/gcc.dg/torture/float64-nan-floath.c
  aafa2750eb1c3f9c87d637685a067d90  gcc/testsuite/gcc.dg/torture/float64-nan.c
  d296cbbb51d32777492acb1f17aef0f2  gcc/testsuite/gcc.dg/torture/float64-tg-2.c
  a5c1a74d472cc90f018fe1671f7c9256  gcc/testsuite/gcc.dg/torture/float64-tg-3.c
*************** e4e755a866c90ba4abb29720bc65fed2  gcc/te
*** 47226,47232 ****
  857b2170423eed94fc84970fa740a540  gcc/testsuite/gcc.dg/torture/float64x-builtin.c
  aa497c91f7fdcc573573ced57b4f09dc  gcc/testsuite/gcc.dg/torture/float64x-complex.c
  689e43c42e051608d1c6723fed792de2  gcc/testsuite/gcc.dg/torture/float64x-floath.c
! 5c948f8c2a58c6187ddb1b55cc8238ab  gcc/testsuite/gcc.dg/torture/float64x-nan-floath.c
  44b291fdce21f604bd68c9aa9c80830e  gcc/testsuite/gcc.dg/torture/float64x-nan.c
  ce3cf05c8b3a13ab0ef86e5961e651ac  gcc/testsuite/gcc.dg/torture/float64x-tg-2.c
  575021dc90e288896a1760008ca30505  gcc/testsuite/gcc.dg/torture/float64x-tg-3.c
--- 49648,49654 ----
  857b2170423eed94fc84970fa740a540  gcc/testsuite/gcc.dg/torture/float64x-builtin.c
  aa497c91f7fdcc573573ced57b4f09dc  gcc/testsuite/gcc.dg/torture/float64x-complex.c
  689e43c42e051608d1c6723fed792de2  gcc/testsuite/gcc.dg/torture/float64x-floath.c
! 4da089055a3c4ceed2bf8e02b9ef860c  gcc/testsuite/gcc.dg/torture/float64x-nan-floath.c
  44b291fdce21f604bd68c9aa9c80830e  gcc/testsuite/gcc.dg/torture/float64x-nan.c
  ce3cf05c8b3a13ab0ef86e5961e651ac  gcc/testsuite/gcc.dg/torture/float64x-tg-2.c
  575021dc90e288896a1760008ca30505  gcc/testsuite/gcc.dg/torture/float64x-tg-3.c
*************** ff95c77eb9185f7c24b193a333483dc0  gcc/te
*** 47258,47282 ****
  43bd0aecaf24732a3dc781a6fd64fb55  gcc/testsuite/gcc.dg/torture/fp-int-convert-float16.c
  df021d0a77367aa9ffb15a927ed211bb  gcc/testsuite/gcc.dg/torture/fp-int-convert-float32-timode.c
  4bfd9532c1155257e7d5c26cfeb2c324  gcc/testsuite/gcc.dg/torture/fp-int-convert-float32.c
! 21131dad7cebc67340062c10c21d6d6f  gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x-timode.c
! be249d0675fb231fee2385afaf10e838  gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x.c
! 77e9c981f512b347a7b243a294e592c4  gcc/testsuite/gcc.dg/torture/fp-int-convert-float64-timode.c
! 9d152dc252d82f28b85854d4bb0b82c4  gcc/testsuite/gcc.dg/torture/fp-int-convert-float64.c
  c1cffd1b0259bf283393906e26efd144  gcc/testsuite/gcc.dg/torture/fp-int-convert-float64x-timode.c
  a6ed3655f340ec98978d6cd922fa78f4  gcc/testsuite/gcc.dg/torture/fp-int-convert-float64x.c
  8654addeb23f459469332edaa77b769b  gcc/testsuite/gcc.dg/torture/fp-int-convert-float80-timode.c
  c291ca9e80ea000b6dc33f0d7f7d34e9  gcc/testsuite/gcc.dg/torture/fp-int-convert-float80.c
! f8e2abd75769f3a4ef8ad7b9914390be  gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c
  9ef87b27cfee504086000e94ac29f50a  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-1.c
  5169357e3279d3d6cdbbba3f5f56ae06  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-2.c
  a10d4bf791ef2af812d4f7be0cf8acf9  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-3.c
  2c192bccc0605a278e8405d2583ff09f  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-4.c
! b433f576987f7d246553ea453e377ab9  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c
  ee42b6d1749f9706fac80052d9404d0a  gcc/testsuite/gcc.dg/torture/fp-int-convert.h
  effb4dbb66229fedfdf33c591ab1c3fe  gcc/testsuite/gcc.dg/torture/fp-uint64-convert-double-1.c
  b5ce592010c8698105487afa7089b8b1  gcc/testsuite/gcc.dg/torture/fp-uint64-convert-double-2.c
  ff646b4bbd5d24fb83db416b6482d625  gcc/testsuite/gcc.dg/torture/ftrapv-1.c
  9479cb5c7a5a2913427912c1cb622377  gcc/testsuite/gcc.dg/torture/ftrapv-2.c
  0781e72d34733d4d855abdff16164e61  gcc/testsuite/gcc.dg/torture/inf-compare-1-float.c
  37b3a395204de921222050c9326ed5d3  gcc/testsuite/gcc.dg/torture/inf-compare-1.c
  b704a5182c8ca77a9eb5810b6918a36b  gcc/testsuite/gcc.dg/torture/inf-compare-2-float.c
--- 49680,49718 ----
  43bd0aecaf24732a3dc781a6fd64fb55  gcc/testsuite/gcc.dg/torture/fp-int-convert-float16.c
  df021d0a77367aa9ffb15a927ed211bb  gcc/testsuite/gcc.dg/torture/fp-int-convert-float32-timode.c
  4bfd9532c1155257e7d5c26cfeb2c324  gcc/testsuite/gcc.dg/torture/fp-int-convert-float32.c
! 1e277ccd9fa00464830cfd37af56d4f1  gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x-timode.c
! b096dfb8c978fcd7dfa4cbe284c9ffc7  gcc/testsuite/gcc.dg/torture/fp-int-convert-float32x.c
! 92d956d82b58efb2c2c3632415a99187  gcc/testsuite/gcc.dg/torture/fp-int-convert-float64-timode.c
! 4a91508e5cfa938a7e2dbcb968059b9f  gcc/testsuite/gcc.dg/torture/fp-int-convert-float64.c
  c1cffd1b0259bf283393906e26efd144  gcc/testsuite/gcc.dg/torture/fp-int-convert-float64x-timode.c
  a6ed3655f340ec98978d6cd922fa78f4  gcc/testsuite/gcc.dg/torture/fp-int-convert-float64x.c
  8654addeb23f459469332edaa77b769b  gcc/testsuite/gcc.dg/torture/fp-int-convert-float80-timode.c
  c291ca9e80ea000b6dc33f0d7f7d34e9  gcc/testsuite/gcc.dg/torture/fp-int-convert-float80.c
! 3e344979bd24cc7c25b5d83e6e98743d  gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c
  9ef87b27cfee504086000e94ac29f50a  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-1.c
  5169357e3279d3d6cdbbba3f5f56ae06  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-2.c
  a10d4bf791ef2af812d4f7be0cf8acf9  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-3.c
  2c192bccc0605a278e8405d2583ff09f  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-4.c
! 01823c6b2f3c4404b23ba0d5b36d1ca9  gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c
  ee42b6d1749f9706fac80052d9404d0a  gcc/testsuite/gcc.dg/torture/fp-int-convert.h
  effb4dbb66229fedfdf33c591ab1c3fe  gcc/testsuite/gcc.dg/torture/fp-uint64-convert-double-1.c
  b5ce592010c8698105487afa7089b8b1  gcc/testsuite/gcc.dg/torture/fp-uint64-convert-double-2.c
  ff646b4bbd5d24fb83db416b6482d625  gcc/testsuite/gcc.dg/torture/ftrapv-1.c
  9479cb5c7a5a2913427912c1cb622377  gcc/testsuite/gcc.dg/torture/ftrapv-2.c
+ e4726c7b6c2132e9442ce94f5e871ee3  gcc/testsuite/gcc.dg/torture/hardbool-5a.c
+ 37f39797ffb910048aa5846da3a00a56  gcc/testsuite/gcc.dg/torture/hardbool-i-5a.c
+ a513263f77c45368937762cf8bc80e24  gcc/testsuite/gcc.dg/torture/hardbool-i.c
+ c66f8eb3ff74118b0efdd2d7f2e831b2  gcc/testsuite/gcc.dg/torture/hardbool-ll-5a.c
+ 379cf41195595e72bffbe12349575aac  gcc/testsuite/gcc.dg/torture/hardbool-ll.c
+ 29384ed5388796de5c04f20d7c45c04e  gcc/testsuite/gcc.dg/torture/hardbool-s-5a.c
+ 6a879f6f74e3a6f11b5b20d023c05e93  gcc/testsuite/gcc.dg/torture/hardbool-s.c
+ a060cc3d6f98bac643c4fd7ad707692c  gcc/testsuite/gcc.dg/torture/hardbool-ul-5a.c
+ 919b3972807507a9e338f8d2ea8b829b  gcc/testsuite/gcc.dg/torture/hardbool-ul.c
+ 37bdb2715c8275f99b5dce763a3c4f9d  gcc/testsuite/gcc.dg/torture/hardbool-us-5a.c
+ c607e9ba043b49a404bff7052c271656  gcc/testsuite/gcc.dg/torture/hardbool-us.c
+ 2acab4e0e224902eccaeb4589df83bea  gcc/testsuite/gcc.dg/torture/hardbool.c
+ 2904f806acee7b2db769318625116a2e  gcc/testsuite/gcc.dg/torture/harden-cfr-noret-no-nothrow.c
+ 0325deb2602e09ab66f57245ebc297d1  gcc/testsuite/gcc.dg/torture/harden-cfr-tail-ub.c
  0781e72d34733d4d855abdff16164e61  gcc/testsuite/gcc.dg/torture/inf-compare-1-float.c
  37b3a395204de921222050c9326ed5d3  gcc/testsuite/gcc.dg/torture/inf-compare-1.c
  b704a5182c8ca77a9eb5810b6918a36b  gcc/testsuite/gcc.dg/torture/inf-compare-2-float.c
*************** cee315c60d4bb9871399c0c79c06b497  gcc/te
*** 47295,47301 ****
  81911e8fd95be0f05b695bc222d6e48f  gcc/testsuite/gcc.dg/torture/inf-compare-8.c
  8bc405a0c2f066f42366f583340cc58b  gcc/testsuite/gcc.dg/torture/inline-1.c
  601b941620b89839abca232084604d70  gcc/testsuite/gcc.dg/torture/inline-2.c
! b7ae2bf193984e936d51e73d7e4783e2  gcc/testsuite/gcc.dg/torture/ipa-pta-1.c
  215abff408789603b6bcd0b72b9dbb37  gcc/testsuite/gcc.dg/torture/ipa-pta-2.c
  67e032a26a6dcb61fd477f98f6504336  gcc/testsuite/gcc.dg/torture/ipa-pta-3.c
  613d2e7400ad0760d1e2dc6e98d7a11e  gcc/testsuite/gcc.dg/torture/ldist-1.c
--- 49731,49742 ----
  81911e8fd95be0f05b695bc222d6e48f  gcc/testsuite/gcc.dg/torture/inf-compare-8.c
  8bc405a0c2f066f42366f583340cc58b  gcc/testsuite/gcc.dg/torture/inline-1.c
  601b941620b89839abca232084604d70  gcc/testsuite/gcc.dg/torture/inline-2.c
! c1ce8f34fb0b1a45c0af19c1798ebfb9  gcc/testsuite/gcc.dg/torture/inline-mem-cmp-1.c
! b8661c0755c3e6ca9beb09ca39354870  gcc/testsuite/gcc.dg/torture/inline-mem-cpy-1.c
! 2529600ee21ae9ddc90ef7b17f203c75  gcc/testsuite/gcc.dg/torture/inline-mem-cpy-cmp-1.c
! d9d7e0bbb351429b87cfc3d6828caa28  gcc/testsuite/gcc.dg/torture/inline-mem-move-1.c
! 0b1f6fa6ba2d2c75e662d5c3f6a45967  gcc/testsuite/gcc.dg/torture/inline-mem-set-1.c
! d8de96ae2b044149f75e65807303c0d8  gcc/testsuite/gcc.dg/torture/ipa-pta-1.c
  215abff408789603b6bcd0b72b9dbb37  gcc/testsuite/gcc.dg/torture/ipa-pta-2.c
  67e032a26a6dcb61fd477f98f6504336  gcc/testsuite/gcc.dg/torture/ipa-pta-3.c
  613d2e7400ad0760d1e2dc6e98d7a11e  gcc/testsuite/gcc.dg/torture/ldist-1.c
*************** e18294d3404279a1f70b16e5f321d933  gcc/te
*** 47310,47326 ****
  33f2d5a949f3be0de5e28e8cf8bec90f  gcc/testsuite/gcc.dg/torture/mips-div-1.c
  4e40647acd4c0b0f635e3e9be60ce610  gcc/testsuite/gcc.dg/torture/mips-hilo-2.c
  d07ecd707fac97fa40042e04a59d4b1e  gcc/testsuite/gcc.dg/torture/mips-sdata-1.c
  f509ceab15e52f50f8b11d7cacc6447f  gcc/testsuite/gcc.dg/torture/neon-immediate-timode.c
  ba222bffc08c28a180298a0d4c6d6aea  gcc/testsuite/gcc.dg/torture/nested-fn-1.c
  4ac07881b7842f59c3aeffe74b35a881  gcc/testsuite/gcc.dg/torture/parm-coalesce.c
  9d76608a6d99fb21a235151928a24b22  gcc/testsuite/gcc.dg/torture/pr100053.c
! 73b4b3e59f81e5abe002d826d7be5575  gcc/testsuite/gcc.dg/torture/pr100329.c
! dee163a9ce8a5e588dba3fce2f306d7f  gcc/testsuite/gcc.dg/torture/pr100398.c
  9d2f1adc508f8626c3bd56448501eb00  gcc/testsuite/gcc.dg/torture/pr100492.c
  232932e20fd0511dfa266de78f409bb5  gcc/testsuite/gcc.dg/torture/pr100499-1.c
  81a324c7b609a973d1a7d59affcdcf93  gcc/testsuite/gcc.dg/torture/pr100499-2.c
  3de8c8a5d80ed7f0d771bb60687b2a10  gcc/testsuite/gcc.dg/torture/pr100499-3.c
! cd3623a9a5449cb82511430f6740d167  gcc/testsuite/gcc.dg/torture/pr100519.c
  6335c9430427e1e94a7a58bb8b0b5255  gcc/testsuite/gcc.dg/torture/pr100566.c
  5f5809ecbd695f122244007bc7702241  gcc/testsuite/gcc.dg/torture/pr100672.c
  388a8dff9de0f1e0bbc729715448e744  gcc/testsuite/gcc.dg/torture/pr100740.c
--- 49751,49802 ----
  33f2d5a949f3be0de5e28e8cf8bec90f  gcc/testsuite/gcc.dg/torture/mips-div-1.c
  4e40647acd4c0b0f635e3e9be60ce610  gcc/testsuite/gcc.dg/torture/mips-hilo-2.c
  d07ecd707fac97fa40042e04a59d4b1e  gcc/testsuite/gcc.dg/torture/mips-sdata-1.c
+ ac4cf4009dac6420bb57640644990b7b  gcc/testsuite/gcc.dg/torture/movieq.c
+ 9a38c85065a88ca949c1f84fead43c83  gcc/testsuite/gcc.dg/torture/movifeq.c
+ 82a9c9faa0779236936b6a20311cbc82  gcc/testsuite/gcc.dg/torture/movifge.c
+ 864c429993880820bc83770ef4c2425b  gcc/testsuite/gcc.dg/torture/movifgt.c
+ ddbc32fa1bab6135a551871294fe788a  gcc/testsuite/gcc.dg/torture/movifle.c
+ 765207f7e52f98fa6852e9f9fff783ba  gcc/testsuite/gcc.dg/torture/moviflt.c
+ 152371ca40d095b9f229d5c3018aa03d  gcc/testsuite/gcc.dg/torture/movifne.c
+ f61f748e53bc15b109ea2bd78090cae7  gcc/testsuite/gcc.dg/torture/movige.c
+ 2916c252a4c96a4fe455df6abdb0a975  gcc/testsuite/gcc.dg/torture/movigeu.c
+ 92e9ee4d62ece56ea1fa121a7bf01dd4  gcc/testsuite/gcc.dg/torture/movigt.c
+ ea24ecf36df5847cd66e71b193fb67bb  gcc/testsuite/gcc.dg/torture/movigtu.c
+ 41329bef9dfdd3f7ccf9ac2fdb27501f  gcc/testsuite/gcc.dg/torture/movile.c
+ 2bbe2a0075b398f6200b0309bb88002f  gcc/testsuite/gcc.dg/torture/movileu.c
+ ccd5b7d5ae1147da02ba52dc07f5821e  gcc/testsuite/gcc.dg/torture/movilt.c
+ e1b65bab0241ea46ec8a4dd5fca78573  gcc/testsuite/gcc.dg/torture/moviltu.c
+ 77ac156ab8e55a0fb9401e277f9e647a  gcc/testsuite/gcc.dg/torture/movine.c
+ b2fff049add8956a45fe939c30e0cbb5  gcc/testsuite/gcc.dg/torture/movleq.c
+ d0ca688407a981f0127eeda2b06975ba  gcc/testsuite/gcc.dg/torture/movlfeq.c
+ 59832efad757384adf93c048e47e6646  gcc/testsuite/gcc.dg/torture/movlfge.c
+ 837a32cd255322df10c7a9969a5513d2  gcc/testsuite/gcc.dg/torture/movlfgt.c
+ 9e665adae4f658a59f2f2e67bbcdb9b2  gcc/testsuite/gcc.dg/torture/movlfle.c
+ aa51a844ec90ed55dd1dafcde34666b4  gcc/testsuite/gcc.dg/torture/movlflt.c
+ d381d566febc00e58f087d9cbc249aad  gcc/testsuite/gcc.dg/torture/movlfne.c
+ e1b478f86b9ccc572539b5758e36c7f3  gcc/testsuite/gcc.dg/torture/movlge.c
+ 8a21adc7b4169575a5955245142de821  gcc/testsuite/gcc.dg/torture/movlgeu.c
+ 40e3b772dfc152837f1a571bc26f3b7f  gcc/testsuite/gcc.dg/torture/movlgt.c
+ 434cb662846895fc2a086e1b57a7742b  gcc/testsuite/gcc.dg/torture/movlgtu.c
+ ac2dacaedc2f9b5eee2ce7bc9cfb3bc1  gcc/testsuite/gcc.dg/torture/movlle.c
+ 0ebc64eed2162c731b4ebb593aed7379  gcc/testsuite/gcc.dg/torture/movlleu.c
+ 5756879c9bd0a5d885605294ecc2180f  gcc/testsuite/gcc.dg/torture/movllt.c
+ 93342f04294bff1450132f2286f582ae  gcc/testsuite/gcc.dg/torture/movlltu.c
+ e3f84bea33ffe8866ee816c500a7caad  gcc/testsuite/gcc.dg/torture/movlne.c
  f509ceab15e52f50f8b11d7cacc6447f  gcc/testsuite/gcc.dg/torture/neon-immediate-timode.c
+ dcaa9bd09a9aeb3e8b95cd03c03355b3  gcc/testsuite/gcc.dg/torture/neon-sve-bridge.c
  ba222bffc08c28a180298a0d4c6d6aea  gcc/testsuite/gcc.dg/torture/nested-fn-1.c
+ b6e5979d80ab9434376818326ccd234f  gcc/testsuite/gcc.dg/torture/no-callee-saved-run-1a.c
+ 3aca4011b6eb7dc99c2de8b1a0c0269c  gcc/testsuite/gcc.dg/torture/no-callee-saved-run-1b.c
  4ac07881b7842f59c3aeffe74b35a881  gcc/testsuite/gcc.dg/torture/parm-coalesce.c
  9d76608a6d99fb21a235151928a24b22  gcc/testsuite/gcc.dg/torture/pr100053.c
! 5555551f7f450c7087e9008e1355a766  gcc/testsuite/gcc.dg/torture/pr100329.c
! 13b087a2312370af99493113462f6060  gcc/testsuite/gcc.dg/torture/pr100398.c
  9d2f1adc508f8626c3bd56448501eb00  gcc/testsuite/gcc.dg/torture/pr100492.c
  232932e20fd0511dfa266de78f409bb5  gcc/testsuite/gcc.dg/torture/pr100499-1.c
  81a324c7b609a973d1a7d59affcdcf93  gcc/testsuite/gcc.dg/torture/pr100499-2.c
  3de8c8a5d80ed7f0d771bb60687b2a10  gcc/testsuite/gcc.dg/torture/pr100499-3.c
! 4a2258a09bba34531a0799fe2c7be492  gcc/testsuite/gcc.dg/torture/pr100519.c
  6335c9430427e1e94a7a58bb8b0b5255  gcc/testsuite/gcc.dg/torture/pr100566.c
  5f5809ecbd695f122244007bc7702241  gcc/testsuite/gcc.dg/torture/pr100672.c
  388a8dff9de0f1e0bbc729715448e744  gcc/testsuite/gcc.dg/torture/pr100740.c
*************** c17159dabf628310bc542029267ef6ef  gcc/te
*** 47410,47416 ****
  478730bb4770bc629982821178a47f1f  gcc/testsuite/gcc.dg/torture/pr107407.c
  f533117b3ab96be08cf3daab9f874c30  gcc/testsuite/gcc.dg/torture/pr107435.c
  8a45c1212793c3a86f7cf259756d9723  gcc/testsuite/gcc.dg/torture/pr107447.c
! 52e50fb88c76596d45c9fa47a5313317  gcc/testsuite/gcc.dg/torture/pr107451.c
  d547ae28851e97478962ff6033f81a59  gcc/testsuite/gcc.dg/torture/pr107493.c
  44958c82c4db4c00d6a4b45238c045b2  gcc/testsuite/gcc.dg/torture/pr107833.c
  4cc4206c7e7cf05e631a4aca06268055  gcc/testsuite/gcc.dg/torture/pr107935.c
--- 49886,49892 ----
  478730bb4770bc629982821178a47f1f  gcc/testsuite/gcc.dg/torture/pr107407.c
  f533117b3ab96be08cf3daab9f874c30  gcc/testsuite/gcc.dg/torture/pr107435.c
  8a45c1212793c3a86f7cf259756d9723  gcc/testsuite/gcc.dg/torture/pr107447.c
! e824b9ca33c0a85b41cd1aef40a59be7  gcc/testsuite/gcc.dg/torture/pr107451.c
  d547ae28851e97478962ff6033f81a59  gcc/testsuite/gcc.dg/torture/pr107493.c
  44958c82c4db4c00d6a4b45238c045b2  gcc/testsuite/gcc.dg/torture/pr107833.c
  4cc4206c7e7cf05e631a4aca06268055  gcc/testsuite/gcc.dg/torture/pr107935.c
*************** d547ae28851e97478962ff6033f81a59  gcc/te
*** 47419,47425 ****
  bdc32dadd650e03564d59453e6ae95a3  gcc/testsuite/gcc.dg/torture/pr108523.c
  292b783fa2e7d560be2c126dcc50e292  gcc/testsuite/gcc.dg/torture/pr108574-1.c
  0bedd6dbdbba339e6fad78d82ef87bb8  gcc/testsuite/gcc.dg/torture/pr108574-2.c
! cb14f27bab3637f8fbcf0eedffc10553  gcc/testsuite/gcc.dg/torture/pr108574-3.c
  3b223f324553364856c2a05c4e806779  gcc/testsuite/gcc.dg/torture/pr108737.c
  2d2278d5a53cf6f5eb54dd1534cc4318  gcc/testsuite/gcc.dg/torture/pr108782.c
  e1867f2717ff0868a4ea5d1f1913e338  gcc/testsuite/gcc.dg/torture/pr108791.c
--- 49895,49901 ----
  bdc32dadd650e03564d59453e6ae95a3  gcc/testsuite/gcc.dg/torture/pr108523.c
  292b783fa2e7d560be2c126dcc50e292  gcc/testsuite/gcc.dg/torture/pr108574-1.c
  0bedd6dbdbba339e6fad78d82ef87bb8  gcc/testsuite/gcc.dg/torture/pr108574-2.c
! 2ccd5b0438fc6548a081bca41d1a76a6  gcc/testsuite/gcc.dg/torture/pr108574-3.c
  3b223f324553364856c2a05c4e806779  gcc/testsuite/gcc.dg/torture/pr108737.c
  2d2278d5a53cf6f5eb54dd1534cc4318  gcc/testsuite/gcc.dg/torture/pr108782.c
  e1867f2717ff0868a4ea5d1f1913e338  gcc/testsuite/gcc.dg/torture/pr108791.c
*************** eeac37698d62ac42c407cf7ffdab1b4a  gcc/te
*** 47436,47445 ****
--- 49912,50008 ----
  ef2b84dc0bce27c12bd12e27c33dd806  gcc/testsuite/gcc.dg/torture/pr109564-2.c
  72f322a0e5d8096eb7fa42e2d8fabe7d  gcc/testsuite/gcc.dg/torture/pr109585.c
  f5aad1409cbbb9e3039cb7da55080bc6  gcc/testsuite/gcc.dg/torture/pr109609.c
+ 0e0f17c50e8911b22c5b47e78696aba5  gcc/testsuite/gcc.dg/torture/pr109652.c
+ 2187f595796e8269bf267180b56e18a8  gcc/testsuite/gcc.dg/torture/pr109689.c
+ c1a87948bd38764af99342569982d720  gcc/testsuite/gcc.dg/torture/pr109940.c
+ c68e0fca588779377278aa9e84380d07  gcc/testsuite/gcc.dg/torture/pr110176.c
  0c0edd5cb473e3baec880eabda166963  gcc/testsuite/gcc.dg/torture/pr110228.c
+ 37a4a130bd302ce957ac9e65b5949c60  gcc/testsuite/gcc.dg/torture/pr110243.c
  2c65ac9bb8c6b6218eb71392ab387879  gcc/testsuite/gcc.dg/torture/pr110298.c
+ 711a98353d135b0dc842ac76b73c6d4e  gcc/testsuite/gcc.dg/torture/pr110332-1.c
+ b1ad1fcbff9e85ca12937a858c01c8b3  gcc/testsuite/gcc.dg/torture/pr110332-2.c
+ 47f91df1ace771c79a793e0437db1067  gcc/testsuite/gcc.dg/torture/pr110376.c
+ e6b73fc2fd74018ab562381d7572ae09  gcc/testsuite/gcc.dg/torture/pr110422.c
+ 8c0aaf824058e53ebb83cd8a3da05ac3  gcc/testsuite/gcc.dg/torture/pr110443.c
+ c51bef0d5b0d8a564c548459d5cbcf98  gcc/testsuite/gcc.dg/torture/pr110491.c
  7df804d5efde0457098ad2b86b9a7447  gcc/testsuite/gcc.dg/torture/pr110556.c
+ 495a3e805892ebf2b05f67dbac854e92  gcc/testsuite/gcc.dg/torture/pr110640.c
  aaecc5ca23f58b7071a57eaa96693127  gcc/testsuite/gcc.dg/torture/pr110669.c
+ 39a13c5ef6e1f4f1fb97ea3cdca7f2f7  gcc/testsuite/gcc.dg/torture/pr110702.c
+ adcee8c1e5b1ea90af01ed3ee2f5548f  gcc/testsuite/gcc.dg/torture/pr110766.c
+ fd4292c0fcabd728ea0a1a6dbef87843  gcc/testsuite/gcc.dg/torture/pr110799.c
+ 56de115841242f81919781f2f306ff6f  gcc/testsuite/gcc.dg/torture/pr110838.c
+ b6cc54f5d02a9045680d8ba8b767f7b8  gcc/testsuite/gcc.dg/torture/pr110924.c
+ 4dd66a9e59fc17c29835a93cd50deb03  gcc/testsuite/gcc.dg/torture/pr110979.c
+ fa1cc5eb743efae6b534499912897d96  gcc/testsuite/gcc.dg/torture/pr111000.c
+ 1dd35b4e28b7f72f0b12fbe3e5efb60a  gcc/testsuite/gcc.dg/torture/pr111048.c
+ b3155d2832f93397879a73cc5d6f43b5  gcc/testsuite/gcc.dg/torture/pr111128.c
+ a5aabe56aa9f2db146fb1185eabbfacb  gcc/testsuite/gcc.dg/torture/pr111137.c
+ a43bd03411a5760be63df03a8c7a0add  gcc/testsuite/gcc.dg/torture/pr111233.c
+ 65c74edbc4bf83dbb636b659c82030a9  gcc/testsuite/gcc.dg/torture/pr111336.c
+ fd26f1ba6c30a0667cccf8ec8a588490  gcc/testsuite/gcc.dg/torture/pr111383.c
+ c03a94bf3221f3e1fe6701290ec4b037  gcc/testsuite/gcc.dg/torture/pr111387.c
+ 637e386536c1da22d30005ed3c0f83c2  gcc/testsuite/gcc.dg/torture/pr111444.c
+ 880ef8f569f8ceaf9a94d105c12a8f97  gcc/testsuite/gcc.dg/torture/pr111445.c
+ 6b2965d4ac5485c88aa22c20791498bd  gcc/testsuite/gcc.dg/torture/pr111519.c
+ 9ac3aab221fd38c4d0dda7ec4429c95d  gcc/testsuite/gcc.dg/torture/pr111614.c
+ 77d656dcb66b7ad03d088d9bccc44d7e  gcc/testsuite/gcc.dg/torture/pr111652.c
+ fdc8b582a69646e7582a869c04a0e89f  gcc/testsuite/gcc.dg/torture/pr111727.c
+ 1d48af0eb5df09e0746ad3efa44eb0da  gcc/testsuite/gcc.dg/torture/pr111792.c
+ 08e70858d749c8cf6135eb92d5105a17  gcc/testsuite/gcc.dg/torture/pr111807.c
+ 404440fd3b4aac03198b518a7e9c5268  gcc/testsuite/gcc.dg/torture/pr111815.c
+ e289e3514153e0ffe8b5b086904f40c4  gcc/testsuite/gcc.dg/torture/pr111818.c
+ b70bde6cc545284036a1efb03258af3b  gcc/testsuite/gcc.dg/torture/pr111838.c
+ 56318d34ceddb9d526a7fb72e608c202  gcc/testsuite/gcc.dg/torture/pr111916.c
+ 5a3dd17b41272920e3804d1b42cba87e  gcc/testsuite/gcc.dg/torture/pr111917.c
+ e6a17de8a318ca00e3d210f4f76c6d3b  gcc/testsuite/gcc.dg/torture/pr111950.c
+ e298819172440b235b58efbd38679a05  gcc/testsuite/gcc.dg/torture/pr112113.c
+ 1e5a5be4efef1ee222e142fcbc25978e  gcc/testsuite/gcc.dg/torture/pr112281-1.c
+ 3acf5c04c64ba9b942f88c4d8bde666c  gcc/testsuite/gcc.dg/torture/pr112281-2.c
+ d02ac212dd010d49c79de1822f13d282  gcc/testsuite/gcc.dg/torture/pr112282.c
+ 528cc4e00d07d0eabcf3a206aaf8aa6c  gcc/testsuite/gcc.dg/torture/pr112305.c
+ 43473d4c51e74fbf73e7e3e432756d89  gcc/testsuite/gcc.dg/torture/pr112310.c
+ 5947d5eb52c05e83fa32c3cdcd086391  gcc/testsuite/gcc.dg/torture/pr112344.c
+ 2b763007d398585945f77af679d5b6f0  gcc/testsuite/gcc.dg/torture/pr112444.c
+ 2480cdfe9d615f1d720b5ee7ea51259d  gcc/testsuite/gcc.dg/torture/pr112469.c
+ ec8ed57fd5556d08fb62e78e2002ba5d  gcc/testsuite/gcc.dg/torture/pr112487.c
+ 4c4e5699113cdfbd6a67cfd2e7875a9f  gcc/testsuite/gcc.dg/torture/pr112585.c
+ 40c1fe395d0ea4a0696f91a5bb92899f  gcc/testsuite/gcc.dg/torture/pr112639.c
+ 415a2f2eda94f4f5b36d33719c72da12  gcc/testsuite/gcc.dg/torture/pr112736.c
+ c5684166faf02044b5d8930cae3d92a2  gcc/testsuite/gcc.dg/torture/pr112827-1.c
+ 0d17f0aa6732803773034388710b03eb  gcc/testsuite/gcc.dg/torture/pr112827-2.c
+ 71e6b4437bf381edd99e9e6fdd633492  gcc/testsuite/gcc.dg/torture/pr112856.c
+ 0da1b162b4d30cd723409c71ad927d22  gcc/testsuite/gcc.dg/torture/pr112991.c
+ a1645001cf3586b47483c821d94bff24  gcc/testsuite/gcc.dg/torture/pr113026-1.c
+ f7f8eb5978df60ecbe2021cabd4bdc7a  gcc/testsuite/gcc.dg/torture/pr113026-2.c
+ e8f4a19d4fdfea91e08564a544b094b3  gcc/testsuite/gcc.dg/torture/pr113126.c
+ f3bab6271794f76a87e753dbe63b2cde  gcc/testsuite/gcc.dg/torture/pr113205.c
+ c8fe6f984eb6e789cb2335a4556da38a  gcc/testsuite/gcc.dg/torture/pr113255.c
+ 8017656920f66e02201f705044be8aa7  gcc/testsuite/gcc.dg/torture/pr113396.c
+ 45205268a0626647bba2b5a390bc850c  gcc/testsuite/gcc.dg/torture/pr113630.c
+ 15b8874949ebf045f6743233fde4d666  gcc/testsuite/gcc.dg/torture/pr113707-1.c
+ 243a929412eb13a060dcb94ae86dff9a  gcc/testsuite/gcc.dg/torture/pr113707-2.c
+ 2b580a7ae85036ff9da4bf50bc4bb0aa  gcc/testsuite/gcc.dg/torture/pr113727.c
+ 6408328525b8820bbb97c99607f8bac0  gcc/testsuite/gcc.dg/torture/pr113796.c
+ a9d12e460bc40c21c3c320bc3fc8b4d8  gcc/testsuite/gcc.dg/torture/pr113831.c
+ 0b6eb97f6a9d2518b3190250da6fd4b3  gcc/testsuite/gcc.dg/torture/pr113895-1.c
+ 4b65a700ebaf772fdbde386e373dc3fd  gcc/testsuite/gcc.dg/torture/pr113895-2.c
+ d215874f31934de25b278e61fefd0be3  gcc/testsuite/gcc.dg/torture/pr113895-3.c
+ 1e8952f063fca22c99cb576ea742fa8c  gcc/testsuite/gcc.dg/torture/pr113895-4.c
+ 59bd5392821be3bfd1ad431a82e9919e  gcc/testsuite/gcc.dg/torture/pr113898.c
+ d40188d721dd1b63b893a6b359e1d22b  gcc/testsuite/gcc.dg/torture/pr114048.c
+ fb3073f1c56c1a4f007ba250839854b9  gcc/testsuite/gcc.dg/torture/pr114070.c
+ 4e70a1ea4b684e024d45d8d2ca1c3be5  gcc/testsuite/gcc.dg/torture/pr114074.c
+ 8fecf4a4b2ad5acc16aa83bfea4c9ec8  gcc/testsuite/gcc.dg/torture/pr114121.c
+ 2e1023665df2acf316912eeae8a8fe41  gcc/testsuite/gcc.dg/torture/pr114197.c
+ e968b8aa93e5a5203a6c7bf6ce0ab2b7  gcc/testsuite/gcc.dg/torture/pr114203.c
+ edb26d624826c2089120476194daef30  gcc/testsuite/gcc.dg/torture/pr114246.c
+ adfade0b828b4f6c04193bf5e8dae44f  gcc/testsuite/gcc.dg/torture/pr114312.c
+ 18503b6158dc43ed4fbdb3d2d5540480  gcc/testsuite/gcc.dg/torture/pr114551.c
+ 9b475881d950a62694337f4f18d2eba0  gcc/testsuite/gcc.dg/torture/pr114624.c
+ 8ebd93b45204d340baa4a9798f5bcd62  gcc/testsuite/gcc.dg/torture/pr114672.c
+ 2c68830fdc44dbd18e300f9430c6c89f  gcc/testsuite/gcc.dg/torture/pr114787.c
+ 36eccbc565ddfe1c74a1123440077694  gcc/testsuite/gcc.dg/torture/pr114792.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** fe1661d7b8d16d061f6cc858a2e28779  gcc/te
*** 47547,47560 ****
  8e52e2d532e19a78160642ca0ddb091b  gcc/testsuite/gcc.dg/torture/pr38405.c
  805f2f2486d22fcc3f9e2ec4e4ce9199  gcc/testsuite/gcc.dg/torture/pr38774.c
  a899d6b91eee2d19732a6759e74d8824  gcc/testsuite/gcc.dg/torture/pr38948.c
! 2bc40ac7b8ad2ae9eb8268dd93786c11  gcc/testsuite/gcc.dg/torture/pr39074-2.c
  f5556fc19a016272c56be8148ef6baad  gcc/testsuite/gcc.dg/torture/pr39074-3.c
! 05c090287ef2a84766ad18a5c5c75bfd  gcc/testsuite/gcc.dg/torture/pr39074.c
  3249cfc8d05d08d1d1266968480d80bd  gcc/testsuite/gcc.dg/torture/pr39132.c
! f8a61f251aa368a38715a6a8dae7d38d  gcc/testsuite/gcc.dg/torture/pr39204.c
  f44d4dc5e20ee22470ba77e35c7ef929  gcc/testsuite/gcc.dg/torture/pr39241.c
  7216119874dca4262ad1843bd62f5fba  gcc/testsuite/gcc.dg/torture/pr39678.c
! ee15473389f3aab62e7d4c0a739a2057  gcc/testsuite/gcc.dg/torture/pr39829.c
  1bbdd46904faf6ecc39fc586b27c59cc  gcc/testsuite/gcc.dg/torture/pr39855.c
  9684c8c6fe2713ff37e04f5e2ca7de21  gcc/testsuite/gcc.dg/torture/pr39903-1.c
  b01b9a9c54ba2c4e89f9bef0dc84dee6  gcc/testsuite/gcc.dg/torture/pr39903-2.c
--- 50110,50123 ----
  8e52e2d532e19a78160642ca0ddb091b  gcc/testsuite/gcc.dg/torture/pr38405.c
  805f2f2486d22fcc3f9e2ec4e4ce9199  gcc/testsuite/gcc.dg/torture/pr38774.c
  a899d6b91eee2d19732a6759e74d8824  gcc/testsuite/gcc.dg/torture/pr38948.c
! f97ad0d8ef48d456625b66b76f988cee  gcc/testsuite/gcc.dg/torture/pr39074-2.c
  f5556fc19a016272c56be8148ef6baad  gcc/testsuite/gcc.dg/torture/pr39074-3.c
! 373956d0b5237e5ba8ef9331c9cd0563  gcc/testsuite/gcc.dg/torture/pr39074.c
  3249cfc8d05d08d1d1266968480d80bd  gcc/testsuite/gcc.dg/torture/pr39132.c
! c842bcc620d15f8d9728caf80b3cfc95  gcc/testsuite/gcc.dg/torture/pr39204.c
  f44d4dc5e20ee22470ba77e35c7ef929  gcc/testsuite/gcc.dg/torture/pr39241.c
  7216119874dca4262ad1843bd62f5fba  gcc/testsuite/gcc.dg/torture/pr39678.c
! d0bb00944ae2fd293b83eaee247bc413  gcc/testsuite/gcc.dg/torture/pr39829.c
  1bbdd46904faf6ecc39fc586b27c59cc  gcc/testsuite/gcc.dg/torture/pr39855.c
  9684c8c6fe2713ff37e04f5e2ca7de21  gcc/testsuite/gcc.dg/torture/pr39903-1.c
  b01b9a9c54ba2c4e89f9bef0dc84dee6  gcc/testsuite/gcc.dg/torture/pr39903-2.c
*************** ea4a551f9f2d2c167e1844af9f89b5c1  gcc/te
*** 47589,47595 ****
  81232d0897a3b1fa5983f60300770a1e  gcc/testsuite/gcc.dg/torture/pr44806.c
  cbbcd8bd2883f9552e7782bfe9210b85  gcc/testsuite/gcc.dg/torture/pr44807.c
  e1213e7f1781099e8b6b8f61fe547285  gcc/testsuite/gcc.dg/torture/pr44913.c
! 06f567c8058b608c2932d1b30cbea59b  gcc/testsuite/gcc.dg/torture/pr44977.c
  3c8aae93a6be73ed35d3a47fe82d6795  gcc/testsuite/gcc.dg/torture/pr45017.c
  261e5f6117e00e375529c9a6ae21629a  gcc/testsuite/gcc.dg/torture/pr45623.c
  790bc0935a41469c85ad318f10dd5c96  gcc/testsuite/gcc.dg/torture/pr45636.c
--- 50152,50158 ----
  81232d0897a3b1fa5983f60300770a1e  gcc/testsuite/gcc.dg/torture/pr44806.c
  cbbcd8bd2883f9552e7782bfe9210b85  gcc/testsuite/gcc.dg/torture/pr44807.c
  e1213e7f1781099e8b6b8f61fe547285  gcc/testsuite/gcc.dg/torture/pr44913.c
! ed55ce1aecae511b6cdf551f76c90350  gcc/testsuite/gcc.dg/torture/pr44977.c
  3c8aae93a6be73ed35d3a47fe82d6795  gcc/testsuite/gcc.dg/torture/pr45017.c
  261e5f6117e00e375529c9a6ae21629a  gcc/testsuite/gcc.dg/torture/pr45623.c
  790bc0935a41469c85ad318f10dd5c96  gcc/testsuite/gcc.dg/torture/pr45636.c
*************** d74f6acf0e1f652f5c716c969531d6c9  gcc/te
*** 47633,47639 ****
  068c3b0c1e041dff7326ef728033d52a  gcc/testsuite/gcc.dg/torture/pr47744-2.c
  d8f37dc708617f6389ec622f76b6cbcf  gcc/testsuite/gcc.dg/torture/pr47744-3.c
  0dd48878c14fd87645d9271ddfc856a8  gcc/testsuite/gcc.dg/torture/pr47890.c
! 7a86000b0f2d30713ddf442d25ab66ae  gcc/testsuite/gcc.dg/torture/pr47917.c
  1e3482288568c4f0ac3f7d648bb5e835  gcc/testsuite/gcc.dg/torture/pr47958-1.c
  6f4d26d375e37dd68889b6d257b90b9b  gcc/testsuite/gcc.dg/torture/pr47968.c
  287ecf24d5abcb1d62df079ac9c2bee2  gcc/testsuite/gcc.dg/torture/pr47975.c
--- 50196,50202 ----
  068c3b0c1e041dff7326ef728033d52a  gcc/testsuite/gcc.dg/torture/pr47744-2.c
  d8f37dc708617f6389ec622f76b6cbcf  gcc/testsuite/gcc.dg/torture/pr47744-3.c
  0dd48878c14fd87645d9271ddfc856a8  gcc/testsuite/gcc.dg/torture/pr47890.c
! c9bd28adfe04acb9e189efa51749b0ea  gcc/testsuite/gcc.dg/torture/pr47917.c
  1e3482288568c4f0ac3f7d648bb5e835  gcc/testsuite/gcc.dg/torture/pr47958-1.c
  6f4d26d375e37dd68889b6d257b90b9b  gcc/testsuite/gcc.dg/torture/pr47968.c
  287ecf24d5abcb1d62df079ac9c2bee2  gcc/testsuite/gcc.dg/torture/pr47975.c
*************** eb7c28f8fb377dba0060e3879194722d  gcc/te
*** 47738,47744 ****
  3e2a97d04d8c4e8423946ab3ac335660  gcc/testsuite/gcc.dg/torture/pr53663-2.c
  7aa9adad88eac4e1c358c4c8ffb822bb  gcc/testsuite/gcc.dg/torture/pr53663-3.c
  09dacb50599a05bb79f7643981ca49ff  gcc/testsuite/gcc.dg/torture/pr53695.c
! 03807cc67dfb92ed7387ab445e76f0df  gcc/testsuite/gcc.dg/torture/pr53703.c
  58809eab4a9186297cc9e6413399f775  gcc/testsuite/gcc.dg/torture/pr53790.c
  d0ffb441d208abf83622aa00e25e03a4  gcc/testsuite/gcc.dg/torture/pr53908.c
  fc38200e078d65f6dab8b688cc12ecc7  gcc/testsuite/gcc.dg/torture/pr53922.c
--- 50301,50307 ----
  3e2a97d04d8c4e8423946ab3ac335660  gcc/testsuite/gcc.dg/torture/pr53663-2.c
  7aa9adad88eac4e1c358c4c8ffb822bb  gcc/testsuite/gcc.dg/torture/pr53663-3.c
  09dacb50599a05bb79f7643981ca49ff  gcc/testsuite/gcc.dg/torture/pr53695.c
! 4b5653e0b4f409bfbadfee34366d7981  gcc/testsuite/gcc.dg/torture/pr53703.c
  58809eab4a9186297cc9e6413399f775  gcc/testsuite/gcc.dg/torture/pr53790.c
  d0ffb441d208abf83622aa00e25e03a4  gcc/testsuite/gcc.dg/torture/pr53908.c
  fc38200e078d65f6dab8b688cc12ecc7  gcc/testsuite/gcc.dg/torture/pr53922.c
*************** c74e90f8306b6281caa911742850a4f3  gcc/te
*** 47779,47785 ****
  f936b50a6e5b9d4d7872fadb5f12fefd  gcc/testsuite/gcc.dg/torture/pr55890-2.c
  a40fcdba272bddc4eb833d5dea2ce426  gcc/testsuite/gcc.dg/torture/pr55890-3.c
  072ade76db0b81c1c3eab55a3263fd33  gcc/testsuite/gcc.dg/torture/pr55964-2.c
! 468e858a11f76148fe4b6ff8320c12b1  gcc/testsuite/gcc.dg/torture/pr55964.c
  54e73492f83d9d588dde2415f38912b9  gcc/testsuite/gcc.dg/torture/pr56034.c
  ab89089bbddded6efe7b82dfb946f307  gcc/testsuite/gcc.dg/torture/pr56150.c
  acab5c99eecf9f3040e77417e1d75487  gcc/testsuite/gcc.dg/torture/pr56157.c
--- 50342,50348 ----
  f936b50a6e5b9d4d7872fadb5f12fefd  gcc/testsuite/gcc.dg/torture/pr55890-2.c
  a40fcdba272bddc4eb833d5dea2ce426  gcc/testsuite/gcc.dg/torture/pr55890-3.c
  072ade76db0b81c1c3eab55a3263fd33  gcc/testsuite/gcc.dg/torture/pr55964-2.c
! fec76d50246e383451b07c91c3e28091  gcc/testsuite/gcc.dg/torture/pr55964.c
  54e73492f83d9d588dde2415f38912b9  gcc/testsuite/gcc.dg/torture/pr56034.c
  ab89089bbddded6efe7b82dfb946f307  gcc/testsuite/gcc.dg/torture/pr56150.c
  acab5c99eecf9f3040e77417e1d75487  gcc/testsuite/gcc.dg/torture/pr56157.c
*************** a5c2783ab5ddf3529e7f6c7e2fd5069b  gcc/te
*** 47835,47841 ****
  d4d870805cc25dec6df7af24f58f6572  gcc/testsuite/gcc.dg/torture/pr57569.c
  ab3afea7e6068f3d641661689418c23a  gcc/testsuite/gcc.dg/torture/pr57584.c
  0b745a857b3c7efb0e1061874c943ce1  gcc/testsuite/gcc.dg/torture/pr57656.c
! 015f612e92cf7535bcd713cc928cf326  gcc/testsuite/gcc.dg/torture/pr57676.c
  26110023944b046641989ad92c41a349  gcc/testsuite/gcc.dg/torture/pr57685.c
  f2dddb213748ccb1b2e30ff1ff7f59e4  gcc/testsuite/gcc.dg/torture/pr57748-1.c
  5564f74a800596aaf87f8e8cb5453803  gcc/testsuite/gcc.dg/torture/pr57748-2.c
--- 50398,50404 ----
  d4d870805cc25dec6df7af24f58f6572  gcc/testsuite/gcc.dg/torture/pr57569.c
  ab3afea7e6068f3d641661689418c23a  gcc/testsuite/gcc.dg/torture/pr57584.c
  0b745a857b3c7efb0e1061874c943ce1  gcc/testsuite/gcc.dg/torture/pr57656.c
! d064c04422c573521042a21d9b65dbf6  gcc/testsuite/gcc.dg/torture/pr57676.c
  26110023944b046641989ad92c41a349  gcc/testsuite/gcc.dg/torture/pr57685.c
  f2dddb213748ccb1b2e30ff1ff7f59e4  gcc/testsuite/gcc.dg/torture/pr57748-1.c
  5564f74a800596aaf87f8e8cb5453803  gcc/testsuite/gcc.dg/torture/pr57748-2.c
*************** e96fe1c6eebbdd3f0057188f60ed7df5  gcc/te
*** 47975,47981 ****
  bb49395472f8f4b22068b1d1b0aa5f92  gcc/testsuite/gcc.dg/torture/pr67133.c
  164c3a92cf45ab1375b15f1f5508114d  gcc/testsuite/gcc.dg/torture/pr67191.c
  de2e281f230857edf98e8ae33bd5655f  gcc/testsuite/gcc.dg/torture/pr67221.c
! aaacd290d48f144c047d8ec3994538b7  gcc/testsuite/gcc.dg/torture/pr67222.c
  dce8c5297653936abefc662cfb01d0ce  gcc/testsuite/gcc.dg/torture/pr67253.c
  12de9db90b7c74db5e2d6c68b4bb625f  gcc/testsuite/gcc.dg/torture/pr67442.c
  2b90875e4c6d8c1f091c453d59c7c8ac  gcc/testsuite/gcc.dg/torture/pr67470.c
--- 50538,50544 ----
  bb49395472f8f4b22068b1d1b0aa5f92  gcc/testsuite/gcc.dg/torture/pr67133.c
  164c3a92cf45ab1375b15f1f5508114d  gcc/testsuite/gcc.dg/torture/pr67191.c
  de2e281f230857edf98e8ae33bd5655f  gcc/testsuite/gcc.dg/torture/pr67221.c
! 3ffcdf48f456fa1f2490916e89c498c9  gcc/testsuite/gcc.dg/torture/pr67222.c
  dce8c5297653936abefc662cfb01d0ce  gcc/testsuite/gcc.dg/torture/pr67253.c
  12de9db90b7c74db5e2d6c68b4bb625f  gcc/testsuite/gcc.dg/torture/pr67442.c
  2b90875e4c6d8c1f091c453d59c7c8ac  gcc/testsuite/gcc.dg/torture/pr67470.c
*************** a51a547efd2608066695ab7bae57b97a  gcc/te
*** 48012,48018 ****
  087e8b6be4668a1d43c1b1b5f5ca4ba4  gcc/testsuite/gcc.dg/torture/pr68517.c
  d97bda1e2b9d4a1a15d587e807ffaba1  gcc/testsuite/gcc.dg/torture/pr68528.c
  1a1ab334b21d739b92a6eae8745eaf83  gcc/testsuite/gcc.dg/torture/pr68570.c
! a2c16b0c186c1ecd77851e6895da3ab8  gcc/testsuite/gcc.dg/torture/pr68625.c
  dd15fadabbe6adcb0ae23c5f7ff0af28  gcc/testsuite/gcc.dg/torture/pr68661-1a.c
  cdabd29a153c80c602294af1fceca7d3  gcc/testsuite/gcc.dg/torture/pr68661-1b.c
  34c752c622ab951e59034d86a97cf8fe  gcc/testsuite/gcc.dg/torture/pr68721.c
--- 50575,50581 ----
  087e8b6be4668a1d43c1b1b5f5ca4ba4  gcc/testsuite/gcc.dg/torture/pr68517.c
  d97bda1e2b9d4a1a15d587e807ffaba1  gcc/testsuite/gcc.dg/torture/pr68528.c
  1a1ab334b21d739b92a6eae8745eaf83  gcc/testsuite/gcc.dg/torture/pr68570.c
! 9595d3c8901f871dca7ac853ee5f3927  gcc/testsuite/gcc.dg/torture/pr68625.c
  dd15fadabbe6adcb0ae23c5f7ff0af28  gcc/testsuite/gcc.dg/torture/pr68661-1a.c
  cdabd29a153c80c602294af1fceca7d3  gcc/testsuite/gcc.dg/torture/pr68661-1b.c
  34c752c622ab951e59034d86a97cf8fe  gcc/testsuite/gcc.dg/torture/pr68721.c
*************** ff3c2aee40e9c9844deb96dd9600b613  gcc/te
*** 48077,48083 ****
  b64fc3513d09279239f96771a7af996c  gcc/testsuite/gcc.dg/torture/pr70484.c
  8c186e2ae6ce38e03ee12e2e7609360e  gcc/testsuite/gcc.dg/torture/pr70542.c
  afe02f85eea1b350f51277401b3e0d48  gcc/testsuite/gcc.dg/torture/pr70623-2.c
! ae5459727bedcc45a1feee9f56e5974c  gcc/testsuite/gcc.dg/torture/pr70623.c
  da4037959e336e19cb95c25f91f8eb52  gcc/testsuite/gcc.dg/torture/pr70628.c
  4bf720800970b360938f42a250aa3e59  gcc/testsuite/gcc.dg/torture/pr70724.c
  4d1238dca9ba78a21e7d9610e1650501  gcc/testsuite/gcc.dg/torture/pr70740.c
--- 50640,50646 ----
  b64fc3513d09279239f96771a7af996c  gcc/testsuite/gcc.dg/torture/pr70484.c
  8c186e2ae6ce38e03ee12e2e7609360e  gcc/testsuite/gcc.dg/torture/pr70542.c
  afe02f85eea1b350f51277401b3e0d48  gcc/testsuite/gcc.dg/torture/pr70623-2.c
! 61e7cec95df840c2a121c16af7c54856  gcc/testsuite/gcc.dg/torture/pr70623.c
  da4037959e336e19cb95c25f91f8eb52  gcc/testsuite/gcc.dg/torture/pr70628.c
  4bf720800970b360938f42a250aa3e59  gcc/testsuite/gcc.dg/torture/pr70724.c
  4d1238dca9ba78a21e7d9610e1650501  gcc/testsuite/gcc.dg/torture/pr70740.c
*************** b2079f895bb4a53a9fb50a4f7f4dad38  gcc/te
*** 48141,48147 ****
  57be2089dac1fb2e85cd58323205f9a6  gcc/testsuite/gcc.dg/torture/pr77646.c
  865946206183cafa8a5643538e8b0fbb  gcc/testsuite/gcc.dg/torture/pr77648-1.c
  c945e3dac4b0d4098ff940d231eba713  gcc/testsuite/gcc.dg/torture/pr77648-2.c
! 7186e705042b8f369fcd3a0136ab3436  gcc/testsuite/gcc.dg/torture/pr77677-2.c
  2afc5a931cc5490f42d223f25485577c  gcc/testsuite/gcc.dg/torture/pr77677.c
  114db937484a8170c1da6ce7c65177ca  gcc/testsuite/gcc.dg/torture/pr77768.c
  0c1201c2deca664e3c1604ccf7754c4c  gcc/testsuite/gcc.dg/torture/pr77826.c
--- 50704,50710 ----
  57be2089dac1fb2e85cd58323205f9a6  gcc/testsuite/gcc.dg/torture/pr77646.c
  865946206183cafa8a5643538e8b0fbb  gcc/testsuite/gcc.dg/torture/pr77648-1.c
  c945e3dac4b0d4098ff940d231eba713  gcc/testsuite/gcc.dg/torture/pr77648-2.c
! 8e1f04a554d32d547604127e4ea4f59b  gcc/testsuite/gcc.dg/torture/pr77677-2.c
  2afc5a931cc5490f42d223f25485577c  gcc/testsuite/gcc.dg/torture/pr77677.c
  114db937484a8170c1da6ce7c65177ca  gcc/testsuite/gcc.dg/torture/pr77768.c
  0c1201c2deca664e3c1604ccf7754c4c  gcc/testsuite/gcc.dg/torture/pr77826.c
*************** ab66b40ecce76ec45ca64c32ff85824f  gcc/te
*** 48172,48178 ****
  49f923ed2eeea47441e849d02551b8b8  gcc/testsuite/gcc.dg/torture/pr78788.c
  fe180c0631cead1bc5043f1df2d9dfb7  gcc/testsuite/gcc.dg/torture/pr78997.c
  9969378616b981d84d0f99463d031ff9  gcc/testsuite/gcc.dg/torture/pr79088.c
! 2c98d5431f8a12ae033acf995cccf8c8  gcc/testsuite/gcc.dg/torture/pr79125.c
  ba12ca76f8140e2310abb058a4ccd99f  gcc/testsuite/gcc.dg/torture/pr79186.c
  988d6bcb697e9211f94cbb3c9dc563b8  gcc/testsuite/gcc.dg/torture/pr79187.c
  de7dbbd134e802d02b8e9f377abab351  gcc/testsuite/gcc.dg/torture/pr79188.c
--- 50735,50741 ----
  49f923ed2eeea47441e849d02551b8b8  gcc/testsuite/gcc.dg/torture/pr78788.c
  fe180c0631cead1bc5043f1df2d9dfb7  gcc/testsuite/gcc.dg/torture/pr78997.c
  9969378616b981d84d0f99463d031ff9  gcc/testsuite/gcc.dg/torture/pr79088.c
! 6e9068d13baf0e9967946e59103cca1a  gcc/testsuite/gcc.dg/torture/pr79125.c
  ba12ca76f8140e2310abb058a4ccd99f  gcc/testsuite/gcc.dg/torture/pr79186.c
  988d6bcb697e9211f94cbb3c9dc563b8  gcc/testsuite/gcc.dg/torture/pr79187.c
  de7dbbd134e802d02b8e9f377abab351  gcc/testsuite/gcc.dg/torture/pr79188.c
*************** d19aed0a4e2ff7539a13bbabe58b1718  gcc/te
*** 48218,48224 ****
  3178eaae90fe84d2dd9dcf93c5a8bde7  gcc/testsuite/gcc.dg/torture/pr80974.c
  4763b0156de02f04a125f8a06d388503  gcc/testsuite/gcc.dg/torture/pr81053.c
  1b226454a7fb0c8fb9378879e493da1a  gcc/testsuite/gcc.dg/torture/pr81083.c
! 5db0d71bb858fbcf267f74784eafa025  gcc/testsuite/gcc.dg/torture/pr81118.c
  ca2acb1431d1d7c06c0023e61785e6dc  gcc/testsuite/gcc.dg/torture/pr81181.c
  2b08ff3a31aab85590e162ac5a0dc5be  gcc/testsuite/gcc.dg/torture/pr81203.c
  e9f1827db6fb8beca36fd05861e3be00  gcc/testsuite/gcc.dg/torture/pr81245.c
--- 50781,50787 ----
  3178eaae90fe84d2dd9dcf93c5a8bde7  gcc/testsuite/gcc.dg/torture/pr80974.c
  4763b0156de02f04a125f8a06d388503  gcc/testsuite/gcc.dg/torture/pr81053.c
  1b226454a7fb0c8fb9378879e493da1a  gcc/testsuite/gcc.dg/torture/pr81083.c
! 8513382e8847c4b93441fdb60f4a0ca8  gcc/testsuite/gcc.dg/torture/pr81118.c
  ca2acb1431d1d7c06c0023e61785e6dc  gcc/testsuite/gcc.dg/torture/pr81181.c
  2b08ff3a31aab85590e162ac5a0dc5be  gcc/testsuite/gcc.dg/torture/pr81203.c
  e9f1827db6fb8beca36fd05861e3be00  gcc/testsuite/gcc.dg/torture/pr81245.c
*************** b4963215ee517c205128bce8c9697431  gcc/te
*** 48227,48233 ****
  f6ecda76f0349d0f236b608096f983ff  gcc/testsuite/gcc.dg/torture/pr81418.c
  ba11a0001b6a1f19cd92d2dd0bc919c7  gcc/testsuite/gcc.dg/torture/pr81500.c
  2251cea8fd7bac1b4787cbe028310e67  gcc/testsuite/gcc.dg/torture/pr81510-2.c
! 3872f3bedbb93a834e3ed9c000d7056e  gcc/testsuite/gcc.dg/torture/pr81510.c
  cc42448c4074f5bd6a38db7ef796616a  gcc/testsuite/gcc.dg/torture/pr81571.c
  39ba29e784fe1aeb492892ff34001798  gcc/testsuite/gcc.dg/torture/pr81573.c
  a3cbd362ecf5d6369ad7ee79963a0535  gcc/testsuite/gcc.dg/torture/pr81790.c
--- 50790,50796 ----
  f6ecda76f0349d0f236b608096f983ff  gcc/testsuite/gcc.dg/torture/pr81418.c
  ba11a0001b6a1f19cd92d2dd0bc919c7  gcc/testsuite/gcc.dg/torture/pr81500.c
  2251cea8fd7bac1b4787cbe028310e67  gcc/testsuite/gcc.dg/torture/pr81510-2.c
! 0e1dd552cb348f4522ebf862a4797a80  gcc/testsuite/gcc.dg/torture/pr81510.c
  cc42448c4074f5bd6a38db7ef796616a  gcc/testsuite/gcc.dg/torture/pr81571.c
  39ba29e784fe1aeb492892ff34001798  gcc/testsuite/gcc.dg/torture/pr81573.c
  a3cbd362ecf5d6369ad7ee79963a0535  gcc/testsuite/gcc.dg/torture/pr81790.c
*************** d736e8ca407901a1a6c2bd20ab711d98  gcc/te
*** 48261,48267 ****
  eb357b6602c35f0f3e0749bf3ba3ecaa  gcc/testsuite/gcc.dg/torture/pr84178-2.c
  6bc3ab573f134b6310d887f131782e31  gcc/testsuite/gcc.dg/torture/pr84417.c
  8d0ffb493b91f045356477e34cdb5848  gcc/testsuite/gcc.dg/torture/pr84427.c
! 3bb40f2a3a02e38c27d7ea687f6b99e9  gcc/testsuite/gcc.dg/torture/pr84528.c
  d9fa5112301c2b0d1f2ce2b0ef38af05  gcc/testsuite/gcc.dg/torture/pr84682-1.c
  33111966a4bd9d832e37f6e24594e0ec  gcc/testsuite/gcc.dg/torture/pr84682-2.c
  be22396349bbab37b65bc1eb3033887e  gcc/testsuite/gcc.dg/torture/pr84682-3.c
--- 50824,50830 ----
  eb357b6602c35f0f3e0749bf3ba3ecaa  gcc/testsuite/gcc.dg/torture/pr84178-2.c
  6bc3ab573f134b6310d887f131782e31  gcc/testsuite/gcc.dg/torture/pr84417.c
  8d0ffb493b91f045356477e34cdb5848  gcc/testsuite/gcc.dg/torture/pr84427.c
! 0e72e484475d0856afac509dc28b8158  gcc/testsuite/gcc.dg/torture/pr84528.c
  d9fa5112301c2b0d1f2ce2b0ef38af05  gcc/testsuite/gcc.dg/torture/pr84682-1.c
  33111966a4bd9d832e37f6e24594e0ec  gcc/testsuite/gcc.dg/torture/pr84682-2.c
  be22396349bbab37b65bc1eb3033887e  gcc/testsuite/gcc.dg/torture/pr84682-3.c
*************** bae425547d7c364d4781b56048755e11  gcc/te
*** 48410,48416 ****
  79912fc54487057b27f1a3b11f9f5414  gcc/testsuite/gcc.dg/torture/pr94206.c
  ce4383e1e83e1b0ab846107796c0f2b4  gcc/testsuite/gcc.dg/torture/pr94392.c
  d5053eab2105e6cdf547694ad59b90fa  gcc/testsuite/gcc.dg/torture/pr94439.c
! 71f844d3e7de4c89905c25aee1bf4a63  gcc/testsuite/gcc.dg/torture/pr94479.c
  79631314e3a293ef93ce4202a5146f06  gcc/testsuite/gcc.dg/torture/pr94482.c
  e0ac106a863f9ebde2e73b57ac977143  gcc/testsuite/gcc.dg/torture/pr94516.c
  d6a8eaeb23cf8364c52302f30197c470  gcc/testsuite/gcc.dg/torture/pr94947-1.c
--- 50973,50979 ----
  79912fc54487057b27f1a3b11f9f5414  gcc/testsuite/gcc.dg/torture/pr94206.c
  ce4383e1e83e1b0ab846107796c0f2b4  gcc/testsuite/gcc.dg/torture/pr94392.c
  d5053eab2105e6cdf547694ad59b90fa  gcc/testsuite/gcc.dg/torture/pr94439.c
! 577ab7d7a8d2ffa87f99f89445fa3408  gcc/testsuite/gcc.dg/torture/pr94479.c
  79631314e3a293ef93ce4202a5146f06  gcc/testsuite/gcc.dg/torture/pr94482.c
  e0ac106a863f9ebde2e73b57ac977143  gcc/testsuite/gcc.dg/torture/pr94516.c
  d6a8eaeb23cf8364c52302f30197c470  gcc/testsuite/gcc.dg/torture/pr94947-1.c
*************** e40acfa5897068d8cc14032225d0cfe7  gcc/te
*** 48421,48431 ****
  9bd090eb98b104e24e65c11efd4da0d5  gcc/testsuite/gcc.dg/torture/pr95045.c
  a5d39ec2048b8f4f3145b829fa56bec1  gcc/testsuite/gcc.dg/torture/pr95049.c
  d3789a84a5e991a5b456463e7edb4334  gcc/testsuite/gcc.dg/torture/pr95172.c
! 3d0a595848e08425b4ab281e4ae2112c  gcc/testsuite/gcc.dg/torture/pr95248.c
  da4f541e6deb606f319b4d8c17fc2b0a  gcc/testsuite/gcc.dg/torture/pr95283.c
  766755af2c3473e3bcb3981740b87304  gcc/testsuite/gcc.dg/torture/pr95295-1.c
  563a33a52d739d9d5494207e066545e9  gcc/testsuite/gcc.dg/torture/pr95295-2.c
! 7de93e9c6bd7c8b9b24e63ae9894661c  gcc/testsuite/gcc.dg/torture/pr95295-3.c
  deb4c8bf26e85d757ac0f2555e19d607  gcc/testsuite/gcc.dg/torture/pr95761.c
  0b01dca702634f65529254117d74cdc9  gcc/testsuite/gcc.dg/torture/pr96130.c
  6904165f78a3e3bd6c3a2d614bbf3240  gcc/testsuite/gcc.dg/torture/pr96133.c
--- 50984,50994 ----
  9bd090eb98b104e24e65c11efd4da0d5  gcc/testsuite/gcc.dg/torture/pr95045.c
  a5d39ec2048b8f4f3145b829fa56bec1  gcc/testsuite/gcc.dg/torture/pr95049.c
  d3789a84a5e991a5b456463e7edb4334  gcc/testsuite/gcc.dg/torture/pr95172.c
! b5606e050865ac393485e06d975d4f88  gcc/testsuite/gcc.dg/torture/pr95248.c
  da4f541e6deb606f319b4d8c17fc2b0a  gcc/testsuite/gcc.dg/torture/pr95283.c
  766755af2c3473e3bcb3981740b87304  gcc/testsuite/gcc.dg/torture/pr95295-1.c
  563a33a52d739d9d5494207e066545e9  gcc/testsuite/gcc.dg/torture/pr95295-2.c
! dd74f94889b67e3c6af431f82dd65d12  gcc/testsuite/gcc.dg/torture/pr95295-3.c
  deb4c8bf26e85d757ac0f2555e19d607  gcc/testsuite/gcc.dg/torture/pr95761.c
  0b01dca702634f65529254117d74cdc9  gcc/testsuite/gcc.dg/torture/pr96130.c
  6904165f78a3e3bd6c3a2d614bbf3240  gcc/testsuite/gcc.dg/torture/pr96133.c
*************** a4585f3b2febaea9b377690eb6e27b00  gcc/te
*** 48449,48471 ****
  78bc3f365c6a04f7f922bbb07fb465ac  gcc/testsuite/gcc.dg/torture/pr98235.c
  464aa2044b2bacce5e44c3835cdeff74  gcc/testsuite/gcc.dg/torture/pr98289.c
  e04ec27dc5469da4d5b29038bf9a9865  gcc/testsuite/gcc.dg/torture/pr98601.c
! 199fada7702df9f4b8545d7dcb3c7cb7  gcc/testsuite/gcc.dg/torture/pr98640.c
  26d769ec578c3e810f69bed767d169de  gcc/testsuite/gcc.dg/torture/pr98758.c
  0c23d23b6342f50b1da53586ef32fdd6  gcc/testsuite/gcc.dg/torture/pr98773.c
  4d7897f67f77d46b2917c68e493089ba  gcc/testsuite/gcc.dg/torture/pr98786.c
  bb157f4a51d2cdf6bf7f85020478cfab  gcc/testsuite/gcc.dg/torture/pr99652-1.c
  2fff8ca65194be4ac8378ccc98a0bf27  gcc/testsuite/gcc.dg/torture/pr99652-2.c
! a54bab589a8d1756d3664fc38d64bf3b  gcc/testsuite/gcc.dg/torture/pr99694.c
  2712af19a1b0692a370799c3da75f379  gcc/testsuite/gcc.dg/torture/pr99824.c
  1e1d5d7c1a9f7fb97f53ed28cd4d5c93  gcc/testsuite/gcc.dg/torture/pr99880.c
  34e5b5ddc6995292f18effac74e9fcce  gcc/testsuite/gcc.dg/torture/pr99947.c
  42cad3ed6f197e1283a3767a1f0ae8d6  gcc/testsuite/gcc.dg/torture/pr99954.c
! 61b01a5945681ee4eaa80a546a0b2347  gcc/testsuite/gcc.dg/torture/pta-callused-1.c
! 39620328710fd9ff170741766805e426  gcc/testsuite/gcc.dg/torture/pta-escape-1.c
! 658053fc9112f2a15eaa664b29ab348e  gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c
! 3701f1550ba67d16d9397b038cac0c3f  gcc/testsuite/gcc.dg/torture/pta-ptrarith-2.c
! df396cd766224a9e7fffe709c652f429  gcc/testsuite/gcc.dg/torture/pta-ptrarith-3.c
! 14eb5450bfac48ec521b879f890ef581  gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c
  c0cfd51fe6f1e14871c143f73aad0044  gcc/testsuite/gcc.dg/torture/reassoc-1.c
  2bb861a14ab113d8b1cbbebeb9bf8409  gcc/testsuite/gcc.dg/torture/restrict-1.c
  e1decb9e86857df6bd3eb4df41220bbf  gcc/testsuite/gcc.dg/torture/restrict-2.c
--- 51012,51034 ----
  78bc3f365c6a04f7f922bbb07fb465ac  gcc/testsuite/gcc.dg/torture/pr98235.c
  464aa2044b2bacce5e44c3835cdeff74  gcc/testsuite/gcc.dg/torture/pr98289.c
  e04ec27dc5469da4d5b29038bf9a9865  gcc/testsuite/gcc.dg/torture/pr98601.c
! b4f22a4d03e15783a08326646103718e  gcc/testsuite/gcc.dg/torture/pr98640.c
  26d769ec578c3e810f69bed767d169de  gcc/testsuite/gcc.dg/torture/pr98758.c
  0c23d23b6342f50b1da53586ef32fdd6  gcc/testsuite/gcc.dg/torture/pr98773.c
  4d7897f67f77d46b2917c68e493089ba  gcc/testsuite/gcc.dg/torture/pr98786.c
  bb157f4a51d2cdf6bf7f85020478cfab  gcc/testsuite/gcc.dg/torture/pr99652-1.c
  2fff8ca65194be4ac8378ccc98a0bf27  gcc/testsuite/gcc.dg/torture/pr99652-2.c
! f2d36d390723c0b2f171dce75acc904f  gcc/testsuite/gcc.dg/torture/pr99694.c
  2712af19a1b0692a370799c3da75f379  gcc/testsuite/gcc.dg/torture/pr99824.c
  1e1d5d7c1a9f7fb97f53ed28cd4d5c93  gcc/testsuite/gcc.dg/torture/pr99880.c
  34e5b5ddc6995292f18effac74e9fcce  gcc/testsuite/gcc.dg/torture/pr99947.c
  42cad3ed6f197e1283a3767a1f0ae8d6  gcc/testsuite/gcc.dg/torture/pr99954.c
! 0eca026c5f494ac8f6053324d20a5b52  gcc/testsuite/gcc.dg/torture/pta-callused-1.c
! 0b2814a1751bad53f2d19b0030989b04  gcc/testsuite/gcc.dg/torture/pta-escape-1.c
! 55912001dcdb9755ca174d9c933af51d  gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c
! 240db28faba6654fc680720a2f04ff21  gcc/testsuite/gcc.dg/torture/pta-ptrarith-2.c
! 3f211c75577582f13ae7f9ccdf24b922  gcc/testsuite/gcc.dg/torture/pta-ptrarith-3.c
! 977ab5bd0f423f1d9efaf9535bc814cd  gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c
  c0cfd51fe6f1e14871c143f73aad0044  gcc/testsuite/gcc.dg/torture/reassoc-1.c
  2bb861a14ab113d8b1cbbebeb9bf8409  gcc/testsuite/gcc.dg/torture/restrict-1.c
  e1decb9e86857df6bd3eb4df41220bbf  gcc/testsuite/gcc.dg/torture/restrict-2.c
*************** ef26911618617d51e6ffc39ca7a78dc2  gcc/te
*** 48482,48488 ****
  21e1c7ca64fde86602f4b6e1f1fc190d  gcc/testsuite/gcc.dg/torture/ssa-fre-5.c
  e210efee65ce4c71ee51c42800c7d958  gcc/testsuite/gcc.dg/torture/ssa-fre-6.c
  095e87ff17fb64844ff3bf9a63f032dd  gcc/testsuite/gcc.dg/torture/ssa-fre-7.c
! 2781dc6d2fef5f3f895a7736312f66e5  gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c
  53a2ab81fc05f5ba0724c2020a12a151  gcc/testsuite/gcc.dg/torture/stackalign/alloca-1.c
  2d416072232dd69f1b2a756bbb4d1dfd  gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
  9173dbcdd930c05fbaaa3328f1c8aa19  gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
--- 51045,51051 ----
  21e1c7ca64fde86602f4b6e1f1fc190d  gcc/testsuite/gcc.dg/torture/ssa-fre-5.c
  e210efee65ce4c71ee51c42800c7d958  gcc/testsuite/gcc.dg/torture/ssa-fre-6.c
  095e87ff17fb64844ff3bf9a63f032dd  gcc/testsuite/gcc.dg/torture/ssa-fre-7.c
! d51a1a2d04a1d082546a84981004801f  gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c
  53a2ab81fc05f5ba0724c2020a12a151  gcc/testsuite/gcc.dg/torture/stackalign/alloca-1.c
  2d416072232dd69f1b2a756bbb4d1dfd  gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
  9173dbcdd930c05fbaaa3328f1c8aa19  gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
*************** eeb7cdfccbec69227ac2915527d61fa3  gcc/te
*** 48523,48529 ****
  0c1806b37db5e92a3ab1c3c51fb22d93  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-3.c
  ffc8d6d378e80da23cc2300fd9f2d529  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-4.c
  2a60ec21d6968b6101b16fa5b7c6ddb5  gcc/testsuite/gcc.dg/torture/stackalign/sibcall-1.c
! d54ebba248aaee10ada26e217df8176f  gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp
  1adc6e1acc06069cf12168f39ef7f916  gcc/testsuite/gcc.dg/torture/stackalign/struct-1.c
  30d5a92d8a2ed3890586ed1c2d6602c9  gcc/testsuite/gcc.dg/torture/stackalign/thiscall-1.c
  d5967747961c3c0e43380a4aee91e5dd  gcc/testsuite/gcc.dg/torture/stackalign/vararg-1.c
--- 51086,51092 ----
  0c1806b37db5e92a3ab1c3c51fb22d93  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-3.c
  ffc8d6d378e80da23cc2300fd9f2d529  gcc/testsuite/gcc.dg/torture/stackalign/setjmp-4.c
  2a60ec21d6968b6101b16fa5b7c6ddb5  gcc/testsuite/gcc.dg/torture/stackalign/sibcall-1.c
! 45d30dbbaf1c2fa73a426e4a219cdd0c  gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp
  1adc6e1acc06069cf12168f39ef7f916  gcc/testsuite/gcc.dg/torture/stackalign/struct-1.c
  30d5a92d8a2ed3890586ed1c2d6602c9  gcc/testsuite/gcc.dg/torture/stackalign/thiscall-1.c
  d5967747961c3c0e43380a4aee91e5dd  gcc/testsuite/gcc.dg/torture/stackalign/vararg-1.c
*************** a7dd8959cd95d178e51f986a468a0a72  gcc/te
*** 48538,48544 ****
  0cca0b22c665af78b56436b3e71b756f  gcc/testsuite/gcc.dg/torture/tls/thr-init-2.c
  32042e365dfe5925f2393ec1d5c692d1  gcc/testsuite/gcc.dg/torture/tls/tls-reload-1.c
  a759d083aeeb716f90190112ebdae9ca  gcc/testsuite/gcc.dg/torture/tls/tls-test.c
! 4062b423cbac7cf0791422db1f54afff  gcc/testsuite/gcc.dg/torture/tls/tls.exp
  943be2937b2b327811185a47734cf258  gcc/testsuite/gcc.dg/torture/transpose-1.c
  1449d9d29dea8de5fba10079ff2581ac  gcc/testsuite/gcc.dg/torture/transpose-2.c
  5061844ac50db8a5cc4a6626c641b34c  gcc/testsuite/gcc.dg/torture/transpose-3.c
--- 51101,51107 ----
  0cca0b22c665af78b56436b3e71b756f  gcc/testsuite/gcc.dg/torture/tls/thr-init-2.c
  32042e365dfe5925f2393ec1d5c692d1  gcc/testsuite/gcc.dg/torture/tls/tls-reload-1.c
  a759d083aeeb716f90190112ebdae9ca  gcc/testsuite/gcc.dg/torture/tls/tls-test.c
! 563159d66f8678187ed69450244304f8  gcc/testsuite/gcc.dg/torture/tls/tls.exp
  943be2937b2b327811185a47734cf258  gcc/testsuite/gcc.dg/torture/transpose-1.c
  1449d9d29dea8de5fba10079ff2581ac  gcc/testsuite/gcc.dg/torture/transpose-2.c
  5061844ac50db8a5cc4a6626c641b34c  gcc/testsuite/gcc.dg/torture/transpose-3.c
*************** ac96a62a2df197c2347e0911d7134d17  gcc/te
*** 48584,48590 ****
  98b2aca48bf05221e64adcb2b9ee617d  gcc/testsuite/gcc.dg/torture/vshuf-v8sf.c
  8c320c5be67953d33f31ec50ca43f2de  gcc/testsuite/gcc.dg/torture/vshuf-v8si.c
  e9fd20c6a5ee817fc329cc085c9032eb  gcc/testsuite/gcc.dg/trampoline-1.c
! d85610312206caa729ac7ee485b19a6b  gcc/testsuite/gcc.dg/transparent-union-1.c
  2366c8b58c823732925c080840a681c3  gcc/testsuite/gcc.dg/transparent-union-2.c
  71cf50e1558bafc58d1cb6514cf4fa37  gcc/testsuite/gcc.dg/transparent-union-3.c
  11f059e83dc6392e3262e900d4421030  gcc/testsuite/gcc.dg/transparent-union-4.c
--- 51147,51154 ----
  98b2aca48bf05221e64adcb2b9ee617d  gcc/testsuite/gcc.dg/torture/vshuf-v8sf.c
  8c320c5be67953d33f31ec50ca43f2de  gcc/testsuite/gcc.dg/torture/vshuf-v8si.c
  e9fd20c6a5ee817fc329cc085c9032eb  gcc/testsuite/gcc.dg/trampoline-1.c
! 095e5d49335032428894d1c52a9de054  gcc/testsuite/gcc.dg/transparent-union-1.c
! 9569715c9aefa8a82e529ee2f78de0a7  gcc/testsuite/gcc.dg/transparent-union-1a.c
  2366c8b58c823732925c080840a681c3  gcc/testsuite/gcc.dg/transparent-union-2.c
  71cf50e1558bafc58d1cb6514cf4fa37  gcc/testsuite/gcc.dg/transparent-union-3.c
  11f059e83dc6392e3262e900d4421030  gcc/testsuite/gcc.dg/transparent-union-4.c
*************** d85610312206caa729ac7ee485b19a6b  gcc/te
*** 48593,48600 ****
  8d1595003065ecd1d4556067ec7e25cc  gcc/testsuite/gcc.dg/tree-prof/20041218-1.c
  3efe9018c42617fad26ca176fc3306fd  gcc/testsuite/gcc.dg/tree-prof/20050826-2.c
  7fea89044d1cae3c25a1775dd049cbe7  gcc/testsuite/gcc.dg/tree-prof/bb-reorg.c
! 476017a09a2a64a3c852ac67367e7c4b  gcc/testsuite/gcc.dg/tree-prof/cmpsf-1.c
! 0693fb7446c5b001070e35451ce72e12  gcc/testsuite/gcc.dg/tree-prof/cold_partition_label.c
  9a43319c4f03c869fc3c7320fbc78bff  gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c
  b45a4f5b69be7e2454186267f7bdab9b  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-1.c
  cf7f678829144365c7c6e3436f2fe6c9  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-1a.c
--- 51157,51164 ----
  8d1595003065ecd1d4556067ec7e25cc  gcc/testsuite/gcc.dg/tree-prof/20041218-1.c
  3efe9018c42617fad26ca176fc3306fd  gcc/testsuite/gcc.dg/tree-prof/20050826-2.c
  7fea89044d1cae3c25a1775dd049cbe7  gcc/testsuite/gcc.dg/tree-prof/bb-reorg.c
! fea6679f47a5ff36663a877937522419  gcc/testsuite/gcc.dg/tree-prof/cmpsf-1.c
! 124079e3848ee10f2ebc98be4d07e9f5  gcc/testsuite/gcc.dg/tree-prof/cold_partition_label.c
  9a43319c4f03c869fc3c7320fbc78bff  gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c
  b45a4f5b69be7e2454186267f7bdab9b  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-1.c
  cf7f678829144365c7c6e3436f2fe6c9  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indir-call-topn-1a.c
*************** af6029c2bad38cfb5326e5a120549d06  gcc/te
*** 48606,48617 ****
  aa1766806b0aae39d0f83f4e18d3fa48  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-2.c
  1a6a44bdec75a8550a766d6afea7e532  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-malloc.c
  85d5018bec782bddcb3e3782c0be5143  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-topn.c
! 2f63ba3e6af0482cfbe8138e11455f6f  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof.c
  954750bebc2263af14be18c3b9de4c11  gcc/testsuite/gcc.dg/tree-prof/init-array.c
  5db2d8c69929de2cc39824b4fc51389a  gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
  2b174a32f54b644b6e346838426c6612  gcc/testsuite/gcc.dg/tree-prof/merge_block.c
! d47ca7cd7557792c189886a518a1a5dd  gcc/testsuite/gcc.dg/tree-prof/peel-1.c
  688e3ad6723d98b311ac0dbae88a997e  gcc/testsuite/gcc.dg/tree-prof/pr108000.c
  fa7217b4e402db46b1d64ca38eb6f212  gcc/testsuite/gcc.dg/tree-prof/pr34999.c
  108cb119dfbe8eeaec0b0f384384d090  gcc/testsuite/gcc.dg/tree-prof/pr44777.c
  8878763a813881e8960c5e8246142427  gcc/testsuite/gcc.dg/tree-prof/pr45354.c
--- 51170,51186 ----
  aa1766806b0aae39d0f83f4e18d3fa48  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-2.c
  1a6a44bdec75a8550a766d6afea7e532  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-malloc.c
  85d5018bec782bddcb3e3782c0be5143  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-topn.c
! f3d50d6757f0db7ac4ee44425c687545  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof.c
  954750bebc2263af14be18c3b9de4c11  gcc/testsuite/gcc.dg/tree-prof/init-array.c
  5db2d8c69929de2cc39824b4fc51389a  gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
+ 1e3e76b5776790d0a8807f337635bcbe  gcc/testsuite/gcc.dg/tree-prof/loop-split-1.c
+ 87c3e8970d3d4eb3263f4bf93551e5d6  gcc/testsuite/gcc.dg/tree-prof/loop-split-2.c
+ 024848445b421f484722fad17deb1e8c  gcc/testsuite/gcc.dg/tree-prof/loop-split-3.c
  2b174a32f54b644b6e346838426c6612  gcc/testsuite/gcc.dg/tree-prof/merge_block.c
! f42eb1c078c3a1e9ca456dfd95d19635  gcc/testsuite/gcc.dg/tree-prof/peel-1.c
! 03681fb31b899782af576da9dbd43dcb  gcc/testsuite/gcc.dg/tree-prof/peel-2.c
  688e3ad6723d98b311ac0dbae88a997e  gcc/testsuite/gcc.dg/tree-prof/pr108000.c
+ 92aff39b9753a13db432c180e7fac0e6  gcc/testsuite/gcc.dg/tree-prof/pr111559.c
  fa7217b4e402db46b1d64ca38eb6f212  gcc/testsuite/gcc.dg/tree-prof/pr34999.c
  108cb119dfbe8eeaec0b0f384384d090  gcc/testsuite/gcc.dg/tree-prof/pr44777.c
  8878763a813881e8960c5e8246142427  gcc/testsuite/gcc.dg/tree-prof/pr45354.c
*************** e0651baf3344a3a41f63b729be3166b4  gcc/te
*** 48637,48658 ****
  5dff0b8dd29e1343fce33f09353889c2  gcc/testsuite/gcc.dg/tree-prof/stringop-2.c
  1ad0b9bb9b1b8c06cc6b4cb52fbf9139  gcc/testsuite/gcc.dg/tree-prof/switch-case-1.c
  e7aeca94f621518a6e6709ceaeb4e162  gcc/testsuite/gcc.dg/tree-prof/switch-case-2.c
! d772d253a3efe703a6f81d851febfdcc  gcc/testsuite/gcc.dg/tree-prof/time-profiler-1.c
! a3bc2a0ab5b9121134c0c8183bdd363d  gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c
! d4bb2fbb3f0ff1c2682f30c9bd6f533d  gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c
  00abf1ef402b6663d2eca17cddf11f1b  gcc/testsuite/gcc.dg/tree-prof/tracer-1.c
! 073d9e122cf5da574d2ee8dae2dc25e4  gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
! 7475ec338be2dc0236a9208d95977141  gcc/testsuite/gcc.dg/tree-prof/unroll-1.c
! 14a5277ebc22dc06798be4e7a79ee909  gcc/testsuite/gcc.dg/tree-prof/update-cunroll-2.c
  2c485d6763546bfa5c14ee8da0cfe215  gcc/testsuite/gcc.dg/tree-prof/update-loopch.c
! 4285a41f16951c78dcea799bc6384527  gcc/testsuite/gcc.dg/tree-prof/update-tailcall.c
  04aa0e967004f0d1cad47683ea601b71  gcc/testsuite/gcc.dg/tree-prof/va-arg-pack-1.c
! d2eae6fde99941cccb53b8455e7edec0  gcc/testsuite/gcc.dg/tree-prof/val-prof-1.c
  b3e6508b3316595b1b3db25621833306  gcc/testsuite/gcc.dg/tree-prof/val-prof-10.c
! b6f3da8f5de5cf9087a0bf3999571bfe  gcc/testsuite/gcc.dg/tree-prof/val-prof-2.c
! 5920a760055b51c22ee52e215ba55645  gcc/testsuite/gcc.dg/tree-prof/val-prof-3.c
! e172209dacf2dae3665edc9a50631432  gcc/testsuite/gcc.dg/tree-prof/val-prof-4.c
! 9f0fe60346f37a9df28102da482e6ad7  gcc/testsuite/gcc.dg/tree-prof/val-prof-5.c
  ab9ab8b98786ab1ecff0b4892e178a8e  gcc/testsuite/gcc.dg/tree-prof/val-prof-6.c
  93db8fd0d1b9f75972c0cecedd2cc5fc  gcc/testsuite/gcc.dg/tree-prof/val-prof-7.c
  3fb849b574c0669b2fb1689c146284d4  gcc/testsuite/gcc.dg/tree-prof/val-prof-8.c
--- 51206,51227 ----
  5dff0b8dd29e1343fce33f09353889c2  gcc/testsuite/gcc.dg/tree-prof/stringop-2.c
  1ad0b9bb9b1b8c06cc6b4cb52fbf9139  gcc/testsuite/gcc.dg/tree-prof/switch-case-1.c
  e7aeca94f621518a6e6709ceaeb4e162  gcc/testsuite/gcc.dg/tree-prof/switch-case-2.c
! 0a598b4b48a8877504c5114ff05059d6  gcc/testsuite/gcc.dg/tree-prof/time-profiler-1.c
! c39e8c24d0e23352b3b105c836684589  gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c
! 14e4356e423f10d65d9dd47e54d12f79  gcc/testsuite/gcc.dg/tree-prof/time-profiler-3.c
  00abf1ef402b6663d2eca17cddf11f1b  gcc/testsuite/gcc.dg/tree-prof/tracer-1.c
! 0c55e2a16b95b86e6a47b0f2d9eb7bda  gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
! ca2556aa492874cfc1c2ddedf34c44ad  gcc/testsuite/gcc.dg/tree-prof/unroll-1.c
! 5a3539327f82d8c4b059afc5f9785f18  gcc/testsuite/gcc.dg/tree-prof/update-cunroll-2.c
  2c485d6763546bfa5c14ee8da0cfe215  gcc/testsuite/gcc.dg/tree-prof/update-loopch.c
! f9d2120c4a426b28b3469fb84e804028  gcc/testsuite/gcc.dg/tree-prof/update-tailcall.c
  04aa0e967004f0d1cad47683ea601b71  gcc/testsuite/gcc.dg/tree-prof/va-arg-pack-1.c
! 8f36f09ed69876b5de24a1829473495f  gcc/testsuite/gcc.dg/tree-prof/val-prof-1.c
  b3e6508b3316595b1b3db25621833306  gcc/testsuite/gcc.dg/tree-prof/val-prof-10.c
! d54f26a291b420f098ddf1675eaacbf9  gcc/testsuite/gcc.dg/tree-prof/val-prof-2.c
! ee0094658affffd72b6e12fb56d28436  gcc/testsuite/gcc.dg/tree-prof/val-prof-3.c
! d9483bc0efaf2a3f0cf967f460d7812c  gcc/testsuite/gcc.dg/tree-prof/val-prof-4.c
! 8bec4a3aab4d53f52f8c9dd54b78940b  gcc/testsuite/gcc.dg/tree-prof/val-prof-5.c
  ab9ab8b98786ab1ecff0b4892e178a8e  gcc/testsuite/gcc.dg/tree-prof/val-prof-6.c
  93db8fd0d1b9f75972c0cecedd2cc5fc  gcc/testsuite/gcc.dg/tree-prof/val-prof-7.c
  3fb849b574c0669b2fb1689c146284d4  gcc/testsuite/gcc.dg/tree-prof/val-prof-8.c
*************** d4bd7cdc56a7f6df1ca2ea46658dbe95  gcc/te
*** 48665,48671 ****
  0997dcda7bd26b106617081c55e613b4  gcc/testsuite/gcc.dg/tree-ssa/20030703-2.c
  fe13f07aeb50e762fe2e3b9dc16bf29c  gcc/testsuite/gcc.dg/tree-ssa/20030708-1.c
  05a0937d3a487e4c333cbaad069898b3  gcc/testsuite/gcc.dg/tree-ssa/20030709-1.c
! aa7081d638a042c84e828dde940b95d7  gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c
  cee26498e263409634bde8de4e2122e5  gcc/testsuite/gcc.dg/tree-ssa/20030709-3.c
  a02a02f44d9d7fe4b73ae24eefc06032  gcc/testsuite/gcc.dg/tree-ssa/20030710-1.c
  663c7f59f9b3ef33f9d79cd2bc268497  gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c
--- 51234,51240 ----
  0997dcda7bd26b106617081c55e613b4  gcc/testsuite/gcc.dg/tree-ssa/20030703-2.c
  fe13f07aeb50e762fe2e3b9dc16bf29c  gcc/testsuite/gcc.dg/tree-ssa/20030708-1.c
  05a0937d3a487e4c333cbaad069898b3  gcc/testsuite/gcc.dg/tree-ssa/20030709-1.c
! 923e3c4fe0fc20690f37c94e158192dc  gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c
  cee26498e263409634bde8de4e2122e5  gcc/testsuite/gcc.dg/tree-ssa/20030709-3.c
  a02a02f44d9d7fe4b73ae24eefc06032  gcc/testsuite/gcc.dg/tree-ssa/20030710-1.c
  663c7f59f9b3ef33f9d79cd2bc268497  gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c
*************** d64f06b6bc60f2a26df5a85f00b45925  gcc/te
*** 48725,48731 ****
  3d74f7a86f1ec677f56458b70548904e  gcc/testsuite/gcc.dg/tree-ssa/20031113-1.c
  ccbf57ac62324c514aa4cbd38bbd36a7  gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c
  046d6c6897e5fb6982e21292a9f79c4a  gcc/testsuite/gcc.dg/tree-ssa/20040121-1.c
! 9132c55266c118e2c7ed7bf3f83563ca  gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
  3d3da3e7e412ccd4ce57150272c67207  gcc/testsuite/gcc.dg/tree-ssa/20040209-1.c
  47b2d8fe599b0dcd6d60633059b77b46  gcc/testsuite/gcc.dg/tree-ssa/20040210-1.c
  80d7cab85f020a3b219eba8f19258895  gcc/testsuite/gcc.dg/tree-ssa/20040211-1.c
--- 51294,51300 ----
  3d74f7a86f1ec677f56458b70548904e  gcc/testsuite/gcc.dg/tree-ssa/20031113-1.c
  ccbf57ac62324c514aa4cbd38bbd36a7  gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c
  046d6c6897e5fb6982e21292a9f79c4a  gcc/testsuite/gcc.dg/tree-ssa/20040121-1.c
! 9bff2e5b55ee70aaea1007fecbc33b70  gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
  3d3da3e7e412ccd4ce57150272c67207  gcc/testsuite/gcc.dg/tree-ssa/20040209-1.c
  47b2d8fe599b0dcd6d60633059b77b46  gcc/testsuite/gcc.dg/tree-ssa/20040210-1.c
  80d7cab85f020a3b219eba8f19258895  gcc/testsuite/gcc.dg/tree-ssa/20040211-1.c
*************** b52d277dcf119d179901b94b86af9e19  gcc/te
*** 48762,48771 ****
  6fb1f14bd743bbf66c256752ea8af592  gcc/testsuite/gcc.dg/tree-ssa/20050412-1.c
  63ecc3e8b3d498acd8198b1c05fcbd40  gcc/testsuite/gcc.dg/tree-ssa/20050719-1.c
  ce5aafb4955372c5794fefbc1ca41606  gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c
! faa7c39d0dee8295dcc54184f6ada554  gcc/testsuite/gcc.dg/tree-ssa/20070815.c
  81b01930660a620bdd4690b08300af36  gcc/testsuite/gcc.dg/tree-ssa/20080530.c
  13d008dba74840c2e2c06c6866504815  gcc/testsuite/gcc.dg/tree-ssa/71206.c
! b0a0ae6dea1191be70b2c744d4e4ac3b  gcc/testsuite/gcc.dg/tree-ssa/addadd-2.c
  9b7a0308ab7d67febabc87a64b5fe6b9  gcc/testsuite/gcc.dg/tree-ssa/addadd.c
  b07a61efdfbca5d72c8f45ebb4cbb834  gcc/testsuite/gcc.dg/tree-ssa/alias-10.c
  9c80d7050307ca3baba810c2c06e9260  gcc/testsuite/gcc.dg/tree-ssa/alias-11.c
--- 51331,51344 ----
  6fb1f14bd743bbf66c256752ea8af592  gcc/testsuite/gcc.dg/tree-ssa/20050412-1.c
  63ecc3e8b3d498acd8198b1c05fcbd40  gcc/testsuite/gcc.dg/tree-ssa/20050719-1.c
  ce5aafb4955372c5794fefbc1ca41606  gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c
! 8f6bb820017566fb77d96e38f6e66a75  gcc/testsuite/gcc.dg/tree-ssa/20070815.c
  81b01930660a620bdd4690b08300af36  gcc/testsuite/gcc.dg/tree-ssa/20080530.c
  13d008dba74840c2e2c06c6866504815  gcc/testsuite/gcc.dg/tree-ssa/71206.c
! 4ec1df50bbb7aaccfc074fac7917886d  gcc/testsuite/gcc.dg/tree-ssa/abs-1.c
! b0b5e612a2c704e5987ba249f764ac8f  gcc/testsuite/gcc.dg/tree-ssa/abs-2.c
! 19a62d3eff900f9178b8148a3c2dcfde  gcc/testsuite/gcc.dg/tree-ssa/abs-3.c
! e2373ab81a661f181b5a3de4fd940689  gcc/testsuite/gcc.dg/tree-ssa/abs-4.c
! 1ffb35a31eceb4a5cd948b003ff98d4a  gcc/testsuite/gcc.dg/tree-ssa/addadd-2.c
  9b7a0308ab7d67febabc87a64b5fe6b9  gcc/testsuite/gcc.dg/tree-ssa/addadd.c
  b07a61efdfbca5d72c8f45ebb4cbb834  gcc/testsuite/gcc.dg/tree-ssa/alias-10.c
  9c80d7050307ca3baba810c2c06e9260  gcc/testsuite/gcc.dg/tree-ssa/alias-11.c
*************** d30fe487cafc4d4d993a4f0cb4d3abb1  gcc/te
*** 48775,48781 ****
  8e49ecde2a38cbef6c9eeee2f1bc6e57  gcc/testsuite/gcc.dg/tree-ssa/alias-16.c
  9cb74a5a27e662b382a628edae074a9e  gcc/testsuite/gcc.dg/tree-ssa/alias-17.c
  6692ad285a05126c7f5371214f478c84  gcc/testsuite/gcc.dg/tree-ssa/alias-18.c
! b878e19fec5169bb4535496c97ed2e2e  gcc/testsuite/gcc.dg/tree-ssa/alias-19.c
  3f10cb8d7d1d3a3ed99df8a499011734  gcc/testsuite/gcc.dg/tree-ssa/alias-2.c
  d29279eed5e527c55032fb99e188cfcd  gcc/testsuite/gcc.dg/tree-ssa/alias-20.c
  69b07c8e0950e416d092bf1902e6aceb  gcc/testsuite/gcc.dg/tree-ssa/alias-21.c
--- 51348,51354 ----
  8e49ecde2a38cbef6c9eeee2f1bc6e57  gcc/testsuite/gcc.dg/tree-ssa/alias-16.c
  9cb74a5a27e662b382a628edae074a9e  gcc/testsuite/gcc.dg/tree-ssa/alias-17.c
  6692ad285a05126c7f5371214f478c84  gcc/testsuite/gcc.dg/tree-ssa/alias-18.c
! 0644e4319e777d392f0887ec706d6923  gcc/testsuite/gcc.dg/tree-ssa/alias-19.c
  3f10cb8d7d1d3a3ed99df8a499011734  gcc/testsuite/gcc.dg/tree-ssa/alias-2.c
  d29279eed5e527c55032fb99e188cfcd  gcc/testsuite/gcc.dg/tree-ssa/alias-20.c
  69b07c8e0950e416d092bf1902e6aceb  gcc/testsuite/gcc.dg/tree-ssa/alias-21.c
*************** e79cd62bd574d773375b923ec037485f  gcc/te
*** 48816,48822 ****
  6f5dc79ae34866c6f5a5a55987e7a778  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-8.c
  d7f5d8dac03d8f6fae78c4e03ccad69a  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-9.c
  05f03e56d0aa980b93ecd29184a0ce06  gcc/testsuite/gcc.dg/tree-ssa/alias_bug.c
! 1c6abd3e143f916950c60b2a81dfabc6  gcc/testsuite/gcc.dg/tree-ssa/and-1.c
  ce0af69e6d986f69bff758d75ded9d29  gcc/testsuite/gcc.dg/tree-ssa/andnegcmp-1.c
  544405ef759f703ebe70e92f216d8b61  gcc/testsuite/gcc.dg/tree-ssa/andnegcmp-2.c
  05defa8900f91e914561900c8614c842  gcc/testsuite/gcc.dg/tree-ssa/andnot-1.c
--- 51389,51395 ----
  6f5dc79ae34866c6f5a5a55987e7a778  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-8.c
  d7f5d8dac03d8f6fae78c4e03ccad69a  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-9.c
  05f03e56d0aa980b93ecd29184a0ce06  gcc/testsuite/gcc.dg/tree-ssa/alias_bug.c
! cf0259b9e3bf49657124cf97747f4316  gcc/testsuite/gcc.dg/tree-ssa/and-1.c
  ce0af69e6d986f69bff758d75ded9d29  gcc/testsuite/gcc.dg/tree-ssa/andnegcmp-1.c
  544405ef759f703ebe70e92f216d8b61  gcc/testsuite/gcc.dg/tree-ssa/andnegcmp-2.c
  05defa8900f91e914561900c8614c842  gcc/testsuite/gcc.dg/tree-ssa/andnot-1.c
*************** dfe706f0d26d930c6244daa570b86549  gcc/te
*** 48826,48831 ****
--- 51399,51408 ----
  554f992863d90976c55c4f9ec51aaa25  gcc/testsuite/gcc.dg/tree-ssa/andor-3.c
  edbbed45529994048c441088038a811d  gcc/testsuite/gcc.dg/tree-ssa/andor-4.c
  9367ad17d920349e30dcf31cb1a579e0  gcc/testsuite/gcc.dg/tree-ssa/andor-5.c
+ 43772f366081c1531e1a30ed4b783bfd  gcc/testsuite/gcc.dg/tree-ssa/andor-6.c
+ c11d4d8ef1401e7a0563f4fe8b3b4952  gcc/testsuite/gcc.dg/tree-ssa/andor-7.c
+ b4ead087e3728f8dbdaff68e5409cb7a  gcc/testsuite/gcc.dg/tree-ssa/andor-8.c
+ 13f8b1c91365b10db412b8bfeaab0775  gcc/testsuite/gcc.dg/tree-ssa/andor-bool-1.c
  ec60ff778b6ff7ae98ac570c5cf75752  gcc/testsuite/gcc.dg/tree-ssa/asm-1.c
  f592b1e7ee130b029a2f0e1ce211ee89  gcc/testsuite/gcc.dg/tree-ssa/asm-2.c
  94b1ee5a4b36b1614fee3427a0fc3117  gcc/testsuite/gcc.dg/tree-ssa/asm-3.c
*************** d605c0b7d6a001365bda6d24ef97cbb5  gcc/te
*** 48843,48856 ****
  ac00cf20aa901dad53cb68baa97cc1f8  gcc/testsuite/gcc.dg/tree-ssa/backprop-3.c
  151b70acaafa11170c060a221c5cb1f7  gcc/testsuite/gcc.dg/tree-ssa/backprop-4.c
  9d10ba95e8f24da60dec445a85298578  gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c
! 1c348dd9e53251b100358e06daaa0e82  gcc/testsuite/gcc.dg/tree-ssa/backprop-6.c
  ad829088c2d182fe6e84645dc44f07e6  gcc/testsuite/gcc.dg/tree-ssa/bit-assoc.c
  7ad8d748f571e7a17cc0495c3da36812  gcc/testsuite/gcc.dg/tree-ssa/bitops-1.c
  bc51e4802e1c8004fa81811aa33d2f94  gcc/testsuite/gcc.dg/tree-ssa/bittest.c
  44bd2d4a00e9c35b630f563007d3d516  gcc/testsuite/gcc.dg/tree-ssa/bitwise-sink.c
  2ecf267e7c02e16be8be3c79c3e74dab  gcc/testsuite/gcc.dg/tree-ssa/bool-1.c
  2fbcc9d1e1290309e1f23fa115b1f65d  gcc/testsuite/gcc.dg/tree-ssa/bool-10.c
  fee4ba51742ec36ab144364e8dc30006  gcc/testsuite/gcc.dg/tree-ssa/bool-11.c
  88a7255e7e1705395f01796ae6433a96  gcc/testsuite/gcc.dg/tree-ssa/bool-2.c
  a8df71a072b373e79551ce809995cb20  gcc/testsuite/gcc.dg/tree-ssa/bool-3.c
  a29063474bcdd62171fde73e3f852671  gcc/testsuite/gcc.dg/tree-ssa/bool-4.c
--- 51420,51451 ----
  ac00cf20aa901dad53cb68baa97cc1f8  gcc/testsuite/gcc.dg/tree-ssa/backprop-3.c
  151b70acaafa11170c060a221c5cb1f7  gcc/testsuite/gcc.dg/tree-ssa/backprop-4.c
  9d10ba95e8f24da60dec445a85298578  gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c
! b945d8c281862d959c57df0356e60697  gcc/testsuite/gcc.dg/tree-ssa/backprop-6.c
  ad829088c2d182fe6e84645dc44f07e6  gcc/testsuite/gcc.dg/tree-ssa/bit-assoc.c
+ b0045d2d08c49e824e2e272c7dcb35d1  gcc/testsuite/gcc.dg/tree-ssa/bit1neg-1.c
+ 8dbf4ef5de01b617ef64b9e8fdf74796  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-1.c
+ bb4b8f021ae28e9eb1296a3f9c98bb4e  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-2.c
+ b99a791d3dbef7a8c3f50eb93840c713  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-3.c
+ 381ef830e9a150ddcea0a41fb29e4315  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-4.c
+ 6343433b3e0aa0ffd3490751d53b3204  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-5.c
+ 3feff9909245c9b7bf6685c76478af5c  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-6.c
  7ad8d748f571e7a17cc0495c3da36812  gcc/testsuite/gcc.dg/tree-ssa/bitops-1.c
+ 2bb75de536bbde529169d19b1c3100a4  gcc/testsuite/gcc.dg/tree-ssa/bitops-2.c
+ 2023414b5a08c97c5d350acaab9d9158  gcc/testsuite/gcc.dg/tree-ssa/bitops-3.c
+ 0b073c6f533f1ad0778489cddb884b85  gcc/testsuite/gcc.dg/tree-ssa/bitops-4.c
+ ac55f467c357136e42a5f139451f2d9a  gcc/testsuite/gcc.dg/tree-ssa/bitops-5.c
+ 1615c7e4783e811738b3cbc9c451cb00  gcc/testsuite/gcc.dg/tree-ssa/bitops-6.c
+ 7b7bf7ca4bbd1bd9d81b840f2add10b8  gcc/testsuite/gcc.dg/tree-ssa/bitops-7.c
+ 7c2509eae27b04f658a8374468a5dde9  gcc/testsuite/gcc.dg/tree-ssa/bitops-bool-1.c
  bc51e4802e1c8004fa81811aa33d2f94  gcc/testsuite/gcc.dg/tree-ssa/bittest.c
  44bd2d4a00e9c35b630f563007d3d516  gcc/testsuite/gcc.dg/tree-ssa/bitwise-sink.c
  2ecf267e7c02e16be8be3c79c3e74dab  gcc/testsuite/gcc.dg/tree-ssa/bool-1.c
  2fbcc9d1e1290309e1f23fa115b1f65d  gcc/testsuite/gcc.dg/tree-ssa/bool-10.c
  fee4ba51742ec36ab144364e8dc30006  gcc/testsuite/gcc.dg/tree-ssa/bool-11.c
+ 742f567216c0be2caa14fcbafbc39587  gcc/testsuite/gcc.dg/tree-ssa/bool-12.c
+ 477c9bbae1c44b978deaeeea49bbc1c3  gcc/testsuite/gcc.dg/tree-ssa/bool-13.c
+ 6456c884df1bb657483d18f1928e9b0e  gcc/testsuite/gcc.dg/tree-ssa/bool-14.c
+ 877dfe3646023f8ad0a722fb9f947d04  gcc/testsuite/gcc.dg/tree-ssa/bool-15.c
  88a7255e7e1705395f01796ae6433a96  gcc/testsuite/gcc.dg/tree-ssa/bool-2.c
  a8df71a072b373e79551ce809995cb20  gcc/testsuite/gcc.dg/tree-ssa/bool-3.c
  a29063474bcdd62171fde73e3f852671  gcc/testsuite/gcc.dg/tree-ssa/bool-4.c
*************** e1bd4409eccc80afa812078aba4007f5  gcc/te
*** 48859,48867 ****
  1cb3b179de593b07bb216808c9edb43d  gcc/testsuite/gcc.dg/tree-ssa/bool-7.c
  67f7f27945fd8a6f00b5d020c854dbb7  gcc/testsuite/gcc.dg/tree-ssa/bool-8.c
  9eefb67e552cd1d47b1ded79984c99ab  gcc/testsuite/gcc.dg/tree-ssa/bool-9.c
  977c3821d057bc7435e1e736f1a29f48  gcc/testsuite/gcc.dg/tree-ssa/bool-minus-1.c
  fdb67da438c8a0f6f02fb5406cd9bded  gcc/testsuite/gcc.dg/tree-ssa/bool-minus-2.c
! d86f3b089d923169837c453da1b2acb1  gcc/testsuite/gcc.dg/tree-ssa/branchless-cond.c
  ed01fecf47b756a152f04241a3582230  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-1.c
  1934645e97bb01171b718e4c4bed6c96  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-2.c
  09801fa8130e8dd4207500ebac85229c  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-3.c
--- 51454,51465 ----
  1cb3b179de593b07bb216808c9edb43d  gcc/testsuite/gcc.dg/tree-ssa/bool-7.c
  67f7f27945fd8a6f00b5d020c854dbb7  gcc/testsuite/gcc.dg/tree-ssa/bool-8.c
  9eefb67e552cd1d47b1ded79984c99ab  gcc/testsuite/gcc.dg/tree-ssa/bool-9.c
+ a39ed2de2f8b46920023c9dde2b74c21  gcc/testsuite/gcc.dg/tree-ssa/bool-checks-1.c
  977c3821d057bc7435e1e736f1a29f48  gcc/testsuite/gcc.dg/tree-ssa/bool-minus-1.c
  fdb67da438c8a0f6f02fb5406cd9bded  gcc/testsuite/gcc.dg/tree-ssa/bool-minus-2.c
! d005eb06f0fcec94113d67a294737641  gcc/testsuite/gcc.dg/tree-ssa/branchless-cond-add-2.c
! 4b9cece323ba759dc63372fe790e04f3  gcc/testsuite/gcc.dg/tree-ssa/branchless-cond-add.c
! 4fbe65a8af02c2f92426cd2f315c4c07  gcc/testsuite/gcc.dg/tree-ssa/branchless-cond.c
  ed01fecf47b756a152f04241a3582230  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-1.c
  1934645e97bb01171b718e4c4bed6c96  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-2.c
  09801fa8130e8dd4207500ebac85229c  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-3.c
*************** cc227fc1cc6d10a58e03dcd84a92a069  gcc/te
*** 48886,48892 ****
  e44bb4ad4c3e2d34436a971260bd2bf8  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-3.c
  f72d1952df8e119a58ac250b8bad77eb  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-4.c
  6532dcbaaeb981e1d82e2330626d0c4c  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-5.c
! c7f299180823ac8da15c25fbfd67c90d  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-6.c
  944bfd282d419b986c4026bf57b89005  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-7.c
  274ba17c7d39724796c6e90a4c8c4146  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-8.c
  2fa3d38def9a401cdac9cc1bb9530216  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-9.c
--- 51484,51490 ----
  e44bb4ad4c3e2d34436a971260bd2bf8  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-3.c
  f72d1952df8e119a58ac250b8bad77eb  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-4.c
  6532dcbaaeb981e1d82e2330626d0c4c  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-5.c
! 67aba80ced13ba091730f17675058a79  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-6.c
  944bfd282d419b986c4026bf57b89005  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-7.c
  274ba17c7d39724796c6e90a4c8c4146  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-8.c
  2fa3d38def9a401cdac9cc1bb9530216  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-9.c
*************** a3dc3772de28d6654b24548d0ad18473  gcc/te
*** 48900,48906 ****
  d1dbc661f00ed58c1743eecaaf46b55c  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-11.c
  7cd4d10132da2de70795da26ec44e6a2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c
  0fb1214ede6b7effc8fb25cb3004355e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-28.c
! 53d3d6582bee69a2ea95cbd99afa392f  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-29.c
  4b6e22a2474da2a1885901d4695e11cb  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-3.c
  df45688bd80db8170c6145ac667856b2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c
  761414c30f0c96c9ad06d84337daeb0d  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c
--- 51498,51504 ----
  d1dbc661f00ed58c1743eecaaf46b55c  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-11.c
  7cd4d10132da2de70795da26ec44e6a2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c
  0fb1214ede6b7effc8fb25cb3004355e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-28.c
! 7f3a373bdf59dca553ee175aa0441b14  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-29.c
  4b6e22a2474da2a1885901d4695e11cb  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-3.c
  df45688bd80db8170c6145ac667856b2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c
  761414c30f0c96c9ad06d84337daeb0d  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c
*************** e19c538f8e7a0c10da0db728b9418c4a  gcc/te
*** 48923,48929 ****
  d508ee9b0fcccb2985b9c7ecfbc9db19  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-20.c
  599e3a4a1f5a9b0f3fba72a0604d0f1e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-21.c
  bb3ad62473fb1b352f0d8d043f94e5df  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-22.c
! c39c6873978a0525187b3d9137343d88  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-23.c
  6109206cde3c1702a9d3f8da1898b8f2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-24.c
  1da7d23b74877b067eb9bfca2f50004e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-25.c
  fe8f765f332dbaff704a41e1bd8dc369  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-26.c
--- 51521,51527 ----
  d508ee9b0fcccb2985b9c7ecfbc9db19  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-20.c
  599e3a4a1f5a9b0f3fba72a0604d0f1e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-21.c
  bb3ad62473fb1b352f0d8d043f94e5df  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-22.c
! 9757fbb89c27bbe40ecd488391a28592  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-23.c
  6109206cde3c1702a9d3f8da1898b8f2  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-24.c
  1da7d23b74877b067eb9bfca2f50004e  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-25.c
  fe8f765f332dbaff704a41e1bd8dc369  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-26.c
*************** bd0e09f37c905aa13bbb2d522a84d767  gcc/te
*** 48945,48960 ****
  aeea5f7137fe38c1de403df2897890fe  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-generic.c
  481ec0a559daa3d23650750794586529  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-2.c
  d60687d3346161f39aee81b214d1486d  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-3.c
! 7a2a2adf1c38a5df47743e636e0434d9  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c
  7dee8398848f696ea4d8ac959ee7a60a  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple.c
  e63ccfba7faa0464680f2aaeb88d32e9  gcc/testsuite/gcc.dg/tree-ssa/calloc-1.c
  60199bed80e510c230537c5f4d852a5b  gcc/testsuite/gcc.dg/tree-ssa/calloc-2.c
  b5bac817fa7c7a456a8e73848dfde207  gcc/testsuite/gcc.dg/tree-ssa/calloc-3.c
  99ba8314164b834571c8f16cca8ac3fc  gcc/testsuite/gcc.dg/tree-ssa/calloc-4.c
  a4f18eca886b653efaca825607a6bfd3  gcc/testsuite/gcc.dg/tree-ssa/calloc-5.c
  6fcdc3ce00d06104607909b512da9a61  gcc/testsuite/gcc.dg/tree-ssa/cfgcleanup-1.c
! da812dc2a63bd55a6862444747526edf  gcc/testsuite/gcc.dg/tree-ssa/cltz-complement-max.c
! c2e528a882c38b974f5ff48fe615b523  gcc/testsuite/gcc.dg/tree-ssa/cltz-max.c
  e4f9d2d39bc022ae5d3a7fd0e327087c  gcc/testsuite/gcc.dg/tree-ssa/clz-char.c
  c19bdc5326921865c7002435de1da26d  gcc/testsuite/gcc.dg/tree-ssa/clz-complement-char.c
  41a3f7aa9e4120aa7bdc6fd848aea2a4  gcc/testsuite/gcc.dg/tree-ssa/clz-complement-int.c
--- 51543,51560 ----
  aeea5f7137fe38c1de403df2897890fe  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-generic.c
  481ec0a559daa3d23650750794586529  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-2.c
  d60687d3346161f39aee81b214d1486d  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-3.c
! 0c86ac3fc8f774c1c3dca0726a33e6d8  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c
  7dee8398848f696ea4d8ac959ee7a60a  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple.c
  e63ccfba7faa0464680f2aaeb88d32e9  gcc/testsuite/gcc.dg/tree-ssa/calloc-1.c
  60199bed80e510c230537c5f4d852a5b  gcc/testsuite/gcc.dg/tree-ssa/calloc-2.c
  b5bac817fa7c7a456a8e73848dfde207  gcc/testsuite/gcc.dg/tree-ssa/calloc-3.c
  99ba8314164b834571c8f16cca8ac3fc  gcc/testsuite/gcc.dg/tree-ssa/calloc-4.c
  a4f18eca886b653efaca825607a6bfd3  gcc/testsuite/gcc.dg/tree-ssa/calloc-5.c
+ bde2787a0a4de64c489ecf0193a51626  gcc/testsuite/gcc.dg/tree-ssa/cast-1.c
+ 32f4f6cf84e77191a9714a0865c8cf34  gcc/testsuite/gcc.dg/tree-ssa/cast-2.c
  6fcdc3ce00d06104607909b512da9a61  gcc/testsuite/gcc.dg/tree-ssa/cfgcleanup-1.c
! f6a70e33add5647e63690464de0faee8  gcc/testsuite/gcc.dg/tree-ssa/cltz-complement-max.c
! 9176bae4f1b18779e3c42d9b3fd14c45  gcc/testsuite/gcc.dg/tree-ssa/cltz-max.c
  e4f9d2d39bc022ae5d3a7fd0e327087c  gcc/testsuite/gcc.dg/tree-ssa/clz-char.c
  c19bdc5326921865c7002435de1da26d  gcc/testsuite/gcc.dg/tree-ssa/clz-complement-char.c
  41a3f7aa9e4120aa7bdc6fd848aea2a4  gcc/testsuite/gcc.dg/tree-ssa/clz-complement-int.c
*************** edbd9c8149ee7f7444bccf51ba92d4d3  gcc/te
*** 48964,48976 ****
--- 51564,51588 ----
  a3b38bae98a3e59b214495d7876b628d  gcc/testsuite/gcc.dg/tree-ssa/clz-long-long.c
  b81775b8e2a31310b44c81245fcf9eec  gcc/testsuite/gcc.dg/tree-ssa/clz-long.c
  33f85eb0abc0ef1a76d386a351d636de  gcc/testsuite/gcc.dg/tree-ssa/cmp-1.c
+ f4e19c8828a0d6f955101c070bea8b7b  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-1.c
+ a39dab289b7a420b65c6f1cfa6d4b033  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-2.c
+ 67cdad9dd803b591ec81ea144f12ade1  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-3.c
+ a64f4f5d6bbeb6b955413018bbd8389f  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-4.c
+ bed8aea8e19a26de63e433a9479c90ce  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-5.c
+ c401e87c4f88d00a4e5334e34f50c506  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-6.c
+ 4e290f83b1e9a2c96de54e6ebb592343  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-7.c
  03432e056ab2d24dc46fc6da99462435  gcc/testsuite/gcc.dg/tree-ssa/cmpdiv.c
+ 48da18381e7d12a2eaab03c32756cd5e  gcc/testsuite/gcc.dg/tree-ssa/cmpeq-1.c
+ 57024299c492b810294dd6481bb0b788  gcc/testsuite/gcc.dg/tree-ssa/cmpeq-2.c
+ 5e41577f4242d255cee2a6c65b77241d  gcc/testsuite/gcc.dg/tree-ssa/cmpeq-3.c
+ 81c2b269bb1b8b6fc580bf108d379a9e  gcc/testsuite/gcc.dg/tree-ssa/cmpeq-4.c
  cb3424dc91a8b1d10dfaf36552885dcb  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv-2.c
  8bb38c44a7b410ff214c889359a9d0f3  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv-3.c
  b7538fbc5842296bc995c43dd00f62f3  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv-4.c
  7bcfbcf6970138a6cea5c134ddedbb35  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv-5.c
  17cc430b53e3e2e80905a2c06ee4bc48  gcc/testsuite/gcc.dg/tree-ssa/cmpexactdiv.c
  9e6b10b925bffb8b219e9fba3c7553dd  gcc/testsuite/gcc.dg/tree-ssa/cmpmul-1.c
+ 51579a62157a967c42037da78bf20e87  gcc/testsuite/gcc.dg/tree-ssa/cmpxor-1.c
  4e7da3b115b0ee1e9d743812b90a080f  gcc/testsuite/gcc.dg/tree-ssa/coalesce-1.c
  0f9280d2d4d6003b617da13c27be1ace  gcc/testsuite/gcc.dg/tree-ssa/coalesce-2.c
  7e54b8dc5db70c6c8e813294f0006bef  gcc/testsuite/gcc.dg/tree-ssa/col-1.c
*************** d046933f0c0499aabaad4a49f7df472e  gcc/te
*** 48981,48995 ****
  85f3a18fc48237bf2cd66a31832c5292  gcc/testsuite/gcc.dg/tree-ssa/complex-5.c
  c51305b57b6a71a526e50a8fb191e467  gcc/testsuite/gcc.dg/tree-ssa/complex-6.c
  51573fc56543beb840d17e34cd36104b  gcc/testsuite/gcc.dg/tree-ssa/complex-7.c
  0cf82fedd0523d48a3c11ee74277d669  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-2.c
  363d3e4ac12b479eddce56ba34c2afd4  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-3.c
  a0f533cf1734bcf6ffb5fc5a84378862  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-4.c
  3169d2a3ce970212b12d917baf5b24b1  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-5.c
  39eed18d80aa24f1a65dbe00e3249c05  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-6.c
! 2c3f3ebd7dd0d76c3395e53829b4274f  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-7.c
! 0214eb3ac3488e88cb4deee3fc5dbb83  gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c
  48504e3950251da5400c954fc79fbb47  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-1.c
! 72628eb5d911d52101f6a4a6daecdcbc  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-2.c
  ab9071615cb96e67306f62799834192d  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-3.c
  3e33363df98971ca2810932b7646d933  gcc/testsuite/gcc.dg/tree-ssa/counts-1.c
  cb85a2159e6429ded025be9506d3d3ec  gcc/testsuite/gcc.dg/tree-ssa/cswtch-2.c
--- 51593,51612 ----
  85f3a18fc48237bf2cd66a31832c5292  gcc/testsuite/gcc.dg/tree-ssa/complex-5.c
  c51305b57b6a71a526e50a8fb191e467  gcc/testsuite/gcc.dg/tree-ssa/complex-6.c
  51573fc56543beb840d17e34cd36104b  gcc/testsuite/gcc.dg/tree-ssa/complex-7.c
+ bb2f1b58a2e661687f29e9f7ec18614c  gcc/testsuite/gcc.dg/tree-ssa/cond-1.c
+ f337209daba5d33fb4d0b55313bfde9e  gcc/testsuite/gcc.dg/tree-ssa/cond-bool-1.c
+ 3710303b0c1ebb142a604fa3af23f1af  gcc/testsuite/gcc.dg/tree-ssa/cond-bool-2.c
  0cf82fedd0523d48a3c11ee74277d669  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-2.c
  363d3e4ac12b479eddce56ba34c2afd4  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-3.c
  a0f533cf1734bcf6ffb5fc5a84378862  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-4.c
  3169d2a3ce970212b12d917baf5b24b1  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-5.c
  39eed18d80aa24f1a65dbe00e3249c05  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-6.c
! 443298e1325b7200ac2bc6f7b658a6c7  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-7.c
! ba534422ad0a79e177e4df595590f346  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-8.c
! bbd27c9626a85b85613edc25e673f5b8  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-9.c
! 8fbc9eee0416b3a104acac36b4f55468  gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c
  48504e3950251da5400c954fc79fbb47  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-1.c
! 88685d259411b8277a35ca6a1e889adb  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-2.c
  ab9071615cb96e67306f62799834192d  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-3.c
  3e33363df98971ca2810932b7646d933  gcc/testsuite/gcc.dg/tree-ssa/counts-1.c
  cb85a2159e6429ded025be9506d3d3ec  gcc/testsuite/gcc.dg/tree-ssa/cswtch-2.c
*************** de47e1dc744794c6364cf571cd32858d  gcc/te
*** 49012,49023 ****
  da097b3871db93c7b786396966159647  gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c
  b1c253fe95960a7923e13899ba946ba6  gcc/testsuite/gcc.dg/tree-ssa/cunroll-14.c
  eed4b89d45eb045007bd380613040c2f  gcc/testsuite/gcc.dg/tree-ssa/cunroll-15.c
  d109cdac0850a2501dddd3084029062b  gcc/testsuite/gcc.dg/tree-ssa/cunroll-2.c
  3830867226119f3e45719fe4b6cc6781  gcc/testsuite/gcc.dg/tree-ssa/cunroll-3.c
  61c6f1980e2718be48b32a9a81b98953  gcc/testsuite/gcc.dg/tree-ssa/cunroll-4.c
  647afc55a08f1ca45c92ce44d92bc258  gcc/testsuite/gcc.dg/tree-ssa/cunroll-5.c
  04b91af254a2c30c63af481aed6f8a6d  gcc/testsuite/gcc.dg/tree-ssa/cunroll-9.c
! f1399b93e28ce7707f9be6db7d28b2d2  gcc/testsuite/gcc.dg/tree-ssa/dce-1.c
  d832596804520e5ce86f97bd7120c822  gcc/testsuite/gcc.dg/tree-ssa/dce-2.c
  31c21f931e0ddb65367d987da500b4cb  gcc/testsuite/gcc.dg/tree-ssa/divide-1.c
  86091663ed66d8d6fff67f6f3a0b8413  gcc/testsuite/gcc.dg/tree-ssa/divide-2.c
--- 51629,51641 ----
  da097b3871db93c7b786396966159647  gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c
  b1c253fe95960a7923e13899ba946ba6  gcc/testsuite/gcc.dg/tree-ssa/cunroll-14.c
  eed4b89d45eb045007bd380613040c2f  gcc/testsuite/gcc.dg/tree-ssa/cunroll-15.c
+ 812fc990ad836498b62225a2df74f4df  gcc/testsuite/gcc.dg/tree-ssa/cunroll-16.c
  d109cdac0850a2501dddd3084029062b  gcc/testsuite/gcc.dg/tree-ssa/cunroll-2.c
  3830867226119f3e45719fe4b6cc6781  gcc/testsuite/gcc.dg/tree-ssa/cunroll-3.c
  61c6f1980e2718be48b32a9a81b98953  gcc/testsuite/gcc.dg/tree-ssa/cunroll-4.c
  647afc55a08f1ca45c92ce44d92bc258  gcc/testsuite/gcc.dg/tree-ssa/cunroll-5.c
  04b91af254a2c30c63af481aed6f8a6d  gcc/testsuite/gcc.dg/tree-ssa/cunroll-9.c
! 9db0455537ee16dedf9da508dc52bb0c  gcc/testsuite/gcc.dg/tree-ssa/dce-1.c
  d832596804520e5ce86f97bd7120c822  gcc/testsuite/gcc.dg/tree-ssa/dce-2.c
  31c21f931e0ddb65367d987da500b4cb  gcc/testsuite/gcc.dg/tree-ssa/divide-1.c
  86091663ed66d8d6fff67f6f3a0b8413  gcc/testsuite/gcc.dg/tree-ssa/divide-2.c
*************** d9df64c73cfb44c982ea8777bc83598c  gcc/te
*** 49026,49031 ****
--- 51644,51650 ----
  a2e7a9267052ac4ae19d933a4fe39c12  gcc/testsuite/gcc.dg/tree-ssa/divide-5.c
  5c71f313af73633da474793408a37470  gcc/testsuite/gcc.dg/tree-ssa/divide-6.c
  77e49fec8819a28745200ccf32657ae6  gcc/testsuite/gcc.dg/tree-ssa/divide-7.c
+ d1e7893bac97fbc28f3fa03eb0accdbd  gcc/testsuite/gcc.dg/tree-ssa/divide-8.c
  5ff4e3bb013af087df7774637a5a7f32  gcc/testsuite/gcc.dg/tree-ssa/dse-points-to.c
  0a7ff4f8ff2cbc2ad6ac233489b11964  gcc/testsuite/gcc.dg/tree-ssa/dump-1.c
  5d82d65865d66cefacac9df984f79919  gcc/testsuite/gcc.dg/tree-ssa/dump-2.c
*************** b093f37312e163e366fad183f508f659  gcc/te
*** 49037,49044 ****
  6dc99348cdd056f4be8776745f0eba7a  gcc/testsuite/gcc.dg/tree-ssa/evrp-trans.c
  941457da855f0081ed2295b1a14dbcc4  gcc/testsuite/gcc.dg/tree-ssa/evrp-trans2.c
  329281a919b365ab71ed91ef28202305  gcc/testsuite/gcc.dg/tree-ssa/evrp1.c
! 4e7b9519daa6a5e1f96160da92af99b0  gcc/testsuite/gcc.dg/tree-ssa/evrp10.c
! 27ac2ccca1316b69757f2c9d71f85f56  gcc/testsuite/gcc.dg/tree-ssa/evrp11.c
  3a97a9e35e227264546d100a03b93ca6  gcc/testsuite/gcc.dg/tree-ssa/evrp12.c
  7a804e5df582c42d9dc57ca0ad528f5a  gcc/testsuite/gcc.dg/tree-ssa/evrp13.c
  ba8847f2e0da1d265091d23e8313750e  gcc/testsuite/gcc.dg/tree-ssa/evrp2.c
--- 51656,51663 ----
  6dc99348cdd056f4be8776745f0eba7a  gcc/testsuite/gcc.dg/tree-ssa/evrp-trans.c
  941457da855f0081ed2295b1a14dbcc4  gcc/testsuite/gcc.dg/tree-ssa/evrp-trans2.c
  329281a919b365ab71ed91ef28202305  gcc/testsuite/gcc.dg/tree-ssa/evrp1.c
! ec0cbb8d630ecf3420d29cc24e62c824  gcc/testsuite/gcc.dg/tree-ssa/evrp10.c
! 933c7832625794f919228a19c6d5663a  gcc/testsuite/gcc.dg/tree-ssa/evrp11.c
  3a97a9e35e227264546d100a03b93ca6  gcc/testsuite/gcc.dg/tree-ssa/evrp12.c
  7a804e5df582c42d9dc57ca0ad528f5a  gcc/testsuite/gcc.dg/tree-ssa/evrp13.c
  ba8847f2e0da1d265091d23e8313750e  gcc/testsuite/gcc.dg/tree-ssa/evrp2.c
*************** defaf318e06f609663fceb3a057d74cb  gcc/te
*** 49048,49061 ****
  84ac955a816090865d6a53c9fd6a9d18  gcc/testsuite/gcc.dg/tree-ssa/evrp3.c
  5328bbb800f5f302e3e3d17f3f8c256f  gcc/testsuite/gcc.dg/tree-ssa/evrp30.c
  b77a4fe96fe03c3ef4300ba716a48d4e  gcc/testsuite/gcc.dg/tree-ssa/evrp4.c
! d31aba1cffe264ab5c504eb3c2466555  gcc/testsuite/gcc.dg/tree-ssa/evrp6.c
! 220974a462638cc10a01465b1d592ac9  gcc/testsuite/gcc.dg/tree-ssa/evrp7.c
! b96ec27bf62c7cc9ec3e981db0fe5ba1  gcc/testsuite/gcc.dg/tree-ssa/evrp8.c
  df98e1f10e9362d780ceaf678d234d36  gcc/testsuite/gcc.dg/tree-ssa/evrp9.c
  33a3fcae747cee654667314a41d7dae6  gcc/testsuite/gcc.dg/tree-ssa/flatten-1.c
  5aa642235531b56fe71d129b3128e653  gcc/testsuite/gcc.dg/tree-ssa/flatten-2.c
  7013e9405bbea7d794f84d52c038fb91  gcc/testsuite/gcc.dg/tree-ssa/flatten-3.c
! d6fa635b314b00f1469f213d3c7adaf5  gcc/testsuite/gcc.dg/tree-ssa/fnsplit-1.c
  e5035d32dc605a277b663840398291b0  gcc/testsuite/gcc.dg/tree-ssa/fnsplit-2.c
  55eb8b4695bc9df408b84073a57d4125  gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c
  1ace6320b3c64ddcefd35277803fef7b  gcc/testsuite/gcc.dg/tree-ssa/foldcast-1.c
--- 51667,51680 ----
  84ac955a816090865d6a53c9fd6a9d18  gcc/testsuite/gcc.dg/tree-ssa/evrp3.c
  5328bbb800f5f302e3e3d17f3f8c256f  gcc/testsuite/gcc.dg/tree-ssa/evrp30.c
  b77a4fe96fe03c3ef4300ba716a48d4e  gcc/testsuite/gcc.dg/tree-ssa/evrp4.c
! 4b8a5237fd2edeff1ebe938ac8d6d652  gcc/testsuite/gcc.dg/tree-ssa/evrp6.c
! 2947c3f3769526bc81dce6f4e7b7e869  gcc/testsuite/gcc.dg/tree-ssa/evrp7.c
! 3c5306ea69eb69321af6dd6b5e7733da  gcc/testsuite/gcc.dg/tree-ssa/evrp8.c
  df98e1f10e9362d780ceaf678d234d36  gcc/testsuite/gcc.dg/tree-ssa/evrp9.c
  33a3fcae747cee654667314a41d7dae6  gcc/testsuite/gcc.dg/tree-ssa/flatten-1.c
  5aa642235531b56fe71d129b3128e653  gcc/testsuite/gcc.dg/tree-ssa/flatten-2.c
  7013e9405bbea7d794f84d52c038fb91  gcc/testsuite/gcc.dg/tree-ssa/flatten-3.c
! 228dfa7248ebf7ccfcdb0ecfb5d30bf6  gcc/testsuite/gcc.dg/tree-ssa/fnsplit-1.c
  e5035d32dc605a277b663840398291b0  gcc/testsuite/gcc.dg/tree-ssa/fnsplit-2.c
  55eb8b4695bc9df408b84073a57d4125  gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c
  1ace6320b3c64ddcefd35277803fef7b  gcc/testsuite/gcc.dg/tree-ssa/foldcast-1.c
*************** f41a1c01935f5cb62c7e92e58cbab4ec  gcc/te
*** 49069,49075 ****
  2cd2016d86d77011ce16c96d80a25090  gcc/testsuite/gcc.dg/tree-ssa/forwprop-1.c
  01404dc80a4add9d1492e00af187428d  gcc/testsuite/gcc.dg/tree-ssa/forwprop-10.c
  e758fea75908a06109d424caa32b8e49  gcc/testsuite/gcc.dg/tree-ssa/forwprop-11.c
- e6465f8e8e3acc334998e69e559ac140  gcc/testsuite/gcc.dg/tree-ssa/forwprop-12.c
  de19bdb4f5c6840baf236481a9e6b638  gcc/testsuite/gcc.dg/tree-ssa/forwprop-13.c
  18edd5e33718055ac440b04d3da1d156  gcc/testsuite/gcc.dg/tree-ssa/forwprop-14.c
  f235a066c1064d4e7f0dbd1cfe1d6416  gcc/testsuite/gcc.dg/tree-ssa/forwprop-15.c
--- 51688,51693 ----
*************** a930baef7589695e3e3de90cd756f5a3  gcc/te
*** 49084,49095 ****
  154adb667a49d5a0457cd7639850aa79  gcc/testsuite/gcc.dg/tree-ssa/forwprop-24.c
  f538956198f8cfd8efabf61fdedcf966  gcc/testsuite/gcc.dg/tree-ssa/forwprop-25.c
  1d26c8d34638035d4d63a94fc6991d9f  gcc/testsuite/gcc.dg/tree-ssa/forwprop-26.c
! 7ebd17dc0f032a72f40c0d2ab9180999  gcc/testsuite/gcc.dg/tree-ssa/forwprop-27.c
  875ed5a0be1bd431aab4e2f4b09f63ae  gcc/testsuite/gcc.dg/tree-ssa/forwprop-28.c
  cdde25415329017e4f06612e1a50c87c  gcc/testsuite/gcc.dg/tree-ssa/forwprop-29.c
  2b0cab82b62d75f08d6104927e441690  gcc/testsuite/gcc.dg/tree-ssa/forwprop-3.c
  a2f3f36dd4a0c63859fad47e5d64e2f6  gcc/testsuite/gcc.dg/tree-ssa/forwprop-30.c
! 2031aa845b341e47554f528e4a8311a7  gcc/testsuite/gcc.dg/tree-ssa/forwprop-31.c
  7d391e34842fa812d33d401d09446978  gcc/testsuite/gcc.dg/tree-ssa/forwprop-32.c
  68a1d254ba25c51f90a7c44414e50e41  gcc/testsuite/gcc.dg/tree-ssa/forwprop-33.c
  cde9d104bd184f9fe53748afa894a131  gcc/testsuite/gcc.dg/tree-ssa/forwprop-34.c
--- 51702,51713 ----
  154adb667a49d5a0457cd7639850aa79  gcc/testsuite/gcc.dg/tree-ssa/forwprop-24.c
  f538956198f8cfd8efabf61fdedcf966  gcc/testsuite/gcc.dg/tree-ssa/forwprop-25.c
  1d26c8d34638035d4d63a94fc6991d9f  gcc/testsuite/gcc.dg/tree-ssa/forwprop-26.c
! f021c86b58dd6fc4b43c7a8406eeb76e  gcc/testsuite/gcc.dg/tree-ssa/forwprop-27.c
  875ed5a0be1bd431aab4e2f4b09f63ae  gcc/testsuite/gcc.dg/tree-ssa/forwprop-28.c
  cdde25415329017e4f06612e1a50c87c  gcc/testsuite/gcc.dg/tree-ssa/forwprop-29.c
  2b0cab82b62d75f08d6104927e441690  gcc/testsuite/gcc.dg/tree-ssa/forwprop-3.c
  a2f3f36dd4a0c63859fad47e5d64e2f6  gcc/testsuite/gcc.dg/tree-ssa/forwprop-30.c
! a030c124a5d2e18eed9aa8c3469482d0  gcc/testsuite/gcc.dg/tree-ssa/forwprop-31.c
  7d391e34842fa812d33d401d09446978  gcc/testsuite/gcc.dg/tree-ssa/forwprop-32.c
  68a1d254ba25c51f90a7c44414e50e41  gcc/testsuite/gcc.dg/tree-ssa/forwprop-33.c
  cde9d104bd184f9fe53748afa894a131  gcc/testsuite/gcc.dg/tree-ssa/forwprop-34.c
*************** c4d85f1a0ac2c091e026cf0d052e2f21  gcc/te
*** 49099,49104 ****
--- 51717,51724 ----
  fc8efeaf2ed7c9bba5d4f1717e7e356b  gcc/testsuite/gcc.dg/tree-ssa/forwprop-38.c
  260a7d066794f7642a568e403fb5e5d4  gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c
  cb909e7812f73f90414b63042c95d199  gcc/testsuite/gcc.dg/tree-ssa/forwprop-4.c
+ eb894750e8c2c762096d861a6009f51a  gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
+ a7f663adfd228e0c28c58bd9894c4b57  gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
  d56422e63543fcf4bf4b78d825c534da  gcc/testsuite/gcc.dg/tree-ssa/forwprop-5.c
  0f6dc2b3b3469af9cd27d5b5cd97353c  gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c
  a9096c4b5b756bdc9dcc196398730d73  gcc/testsuite/gcc.dg/tree-ssa/forwprop-7.c
*************** a0fbf3c748cab32ce67837bafd594ee5  gcc/te
*** 49109,49117 ****
  92c19b6c66be5177d45c3de598c5ce47  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c
  c4778a5d167ea622bf99df287c4bd701  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c
  c177f823491b23ed671dd72cae6bdd38  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
! f339f3a1e5bd9548ccfe5b18c2c7c7e5  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c
! 407f5e3525abdace7d6ff525b35e9b3b  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c
! a9035f101274c289aedd6685e9ed30ec  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
  d637cf73f6c38b75ddfb9687a20f1ec6  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c
  e04b32c6114139e6a8e522e17e1b449b  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c
  c700544c3e68a401546cefbdad359728  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-33.c
--- 51729,51737 ----
  92c19b6c66be5177d45c3de598c5ce47  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c
  c4778a5d167ea622bf99df287c4bd701  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c
  c177f823491b23ed671dd72cae6bdd38  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
! cedf03bd0bae65b47e8d533ec043d85b  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c
! 8c08bb59d159cc1850160224edbb70fd  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c
! 90512bbeacddcca66fd3984243eb5137  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
  d637cf73f6c38b75ddfb9687a20f1ec6  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c
  e04b32c6114139e6a8e522e17e1b449b  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c
  c700544c3e68a401546cefbdad359728  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-33.c
*************** fbc46d731b28682d463972d7b59d20e7  gcc/te
*** 49125,49136 ****
  e9b4d4c4f8743a9a1dd703c822d8b75f  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c
  8a7ce6e7cef9b25005e2c6b8e1c3b8ff  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-6.c
  2c97bcb8b034b3b3666fa303045a35e1  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-7.c
! 43711b33f763213e9c99555f055e2a90  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c
! 24b7b133d68a4c138aba1f6e105a1990  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-9.c
  b2e6051605666541fc80985492b002a4  gcc/testsuite/gcc.dg/tree-ssa/ifc-10.c
  45abed04f141d506c77bb20d255d1d0c  gcc/testsuite/gcc.dg/tree-ssa/ifc-11.c
! d44b6872baa4beaa748572b6e08714e4  gcc/testsuite/gcc.dg/tree-ssa/ifc-12.c
! 36057bb80c99be90edb4fb4eac751fb2  gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c
  b2ff4c71a123464796ac48e111522544  gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c
  ee0564e9d214fe5d7c14a3fcf3790afe  gcc/testsuite/gcc.dg/tree-ssa/ifc-3.c
  2d051374dcbdc8f06faa1a30f4336ac9  gcc/testsuite/gcc.dg/tree-ssa/ifc-4.c
--- 51745,51756 ----
  e9b4d4c4f8743a9a1dd703c822d8b75f  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c
  8a7ce6e7cef9b25005e2c6b8e1c3b8ff  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-6.c
  2c97bcb8b034b3b3666fa303045a35e1  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-7.c
! 8096b74435c1645452b88dfdb954dad0  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c
! 09663b75048202b90e4e43dbca76d076  gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-9.c
  b2e6051605666541fc80985492b002a4  gcc/testsuite/gcc.dg/tree-ssa/ifc-10.c
  45abed04f141d506c77bb20d255d1d0c  gcc/testsuite/gcc.dg/tree-ssa/ifc-11.c
! 9b8d3601d8e48bcd7e0baf0776852ddf  gcc/testsuite/gcc.dg/tree-ssa/ifc-12.c
! 536d9dd34ec278bfbe9c189f38850454  gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c
  b2ff4c71a123464796ac48e111522544  gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c
  ee0564e9d214fe5d7c14a3fcf3790afe  gcc/testsuite/gcc.dg/tree-ssa/ifc-3.c
  2d051374dcbdc8f06faa1a30f4336ac9  gcc/testsuite/gcc.dg/tree-ssa/ifc-4.c
*************** b446a0e31a14376e27ed88bd22830f2d  gcc/te
*** 49187,49195 ****
  d6553119ece5e8e438869a199c051b4c  gcc/testsuite/gcc.dg/tree-ssa/ivopt_5.c
  d744d4c51bdfd624c0e319090f128cb3  gcc/testsuite/gcc.dg/tree-ssa/ivopt_infer_1.c
  b287d43359cd5843f8b77d977b005de3  gcc/testsuite/gcc.dg/tree-ssa/ivopt_infer_2.c
! f70137dbabe6fc1f9f3c1a89ebb8bc0b  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1.c
  35314297772a4e2693af4de33fd15121  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1g.c
! 5ce0ba26e607d9efe02e63caa215c1bf  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2.c
  1555818d99d92f06682e947affda7cd6  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c
  5041ebf3f5faa2d0e57611af93a05a35  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_3.c
  464b02740233ca8c8bc9313e9f3535e5  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_4.c
--- 51807,51815 ----
  d6553119ece5e8e438869a199c051b4c  gcc/testsuite/gcc.dg/tree-ssa/ivopt_5.c
  d744d4c51bdfd624c0e319090f128cb3  gcc/testsuite/gcc.dg/tree-ssa/ivopt_infer_1.c
  b287d43359cd5843f8b77d977b005de3  gcc/testsuite/gcc.dg/tree-ssa/ivopt_infer_2.c
! a5306c72500f08e489070a529596c461  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1.c
  35314297772a4e2693af4de33fd15121  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1g.c
! c51531d45b38425bcfdb8eac54e3b2b7  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2.c
  1555818d99d92f06682e947affda7cd6  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2g.c
  5041ebf3f5faa2d0e57611af93a05a35  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_3.c
  464b02740233ca8c8bc9313e9f3535e5  gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_4.c
*************** cb3f41761a6ebc49e3f09eea34e14823  gcc/te
*** 49247,49254 ****
  954cf334b3e76720f290bf8bd4eb603b  gcc/testsuite/gcc.dg/tree-ssa/ldist-9.c
  327e2f57b705fe0a234c5b99b74dc2de  gcc/testsuite/gcc.dg/tree-ssa/ldist-pr45948-2.c
  016eb8bd8214ac939a7331fddd0a81e0  gcc/testsuite/gcc.dg/tree-ssa/ldist-pr45948.c
! 0fc6b696bfa7ddbc347d1a1394bf3f87  gcc/testsuite/gcc.dg/tree-ssa/ldist-rawmemchr-1.c
! a829539342e1cf17c795358e1aac2326  gcc/testsuite/gcc.dg/tree-ssa/ldist-rawmemchr-2.c
  fa7bbf7fd8a6beee8cfe0ebcc47c9ae2  gcc/testsuite/gcc.dg/tree-ssa/ldist-strlen-1.c
  a1ef47e899db53462f91f7039cdd1234  gcc/testsuite/gcc.dg/tree-ssa/ldist-strlen-2.c
  8f00264fe7f9da886dc2bf4c4ebc6e92  gcc/testsuite/gcc.dg/tree-ssa/ldist-strlen-3.c
--- 51867,51874 ----
  954cf334b3e76720f290bf8bd4eb603b  gcc/testsuite/gcc.dg/tree-ssa/ldist-9.c
  327e2f57b705fe0a234c5b99b74dc2de  gcc/testsuite/gcc.dg/tree-ssa/ldist-pr45948-2.c
  016eb8bd8214ac939a7331fddd0a81e0  gcc/testsuite/gcc.dg/tree-ssa/ldist-pr45948.c
! 9872cf49407fd7f9dc29cf6a23f7cf7f  gcc/testsuite/gcc.dg/tree-ssa/ldist-rawmemchr-1.c
! 00822e7b30ab17294d0e97ad6dac6005  gcc/testsuite/gcc.dg/tree-ssa/ldist-rawmemchr-2.c
  fa7bbf7fd8a6beee8cfe0ebcc47c9ae2  gcc/testsuite/gcc.dg/tree-ssa/ldist-strlen-1.c
  a1ef47e899db53462f91f7039cdd1234  gcc/testsuite/gcc.dg/tree-ssa/ldist-strlen-2.c
  8f00264fe7f9da886dc2bf4c4ebc6e92  gcc/testsuite/gcc.dg/tree-ssa/ldist-strlen-3.c
*************** ce89d25154d5909623400e7fbd68607a  gcc/te
*** 49324,49329 ****
--- 51944,51951 ----
  0f6ec9444d41b9dd8705e8ce33ea1257  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-4.c
  ea5f8b5ade3a674d82e4721a61ae4348  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-5.c
  60da9819e46ae737a79c3d2fa208f269  gcc/testsuite/gcc.dg/tree-ssa/loop-bound-6.c
+ a26d97652f4894f734d4cba3c788c9ac  gcc/testsuite/gcc.dg/tree-ssa/loop-ch-profile-1.c
+ a1bd7e076cb21f864ed0c87ce674899a  gcc/testsuite/gcc.dg/tree-ssa/loop-ch-profile-2.c
  830db83fad8d4c8f17ce6c8a575ef8e7  gcc/testsuite/gcc.dg/tree-ssa/loop-cond-split-1.c
  0a18fa76c624c7aae2e2ac50d8b68517  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1.c
  1efb8637b51c1eb590eddbd9d05f2b31  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-10.c
*************** b785e1a2b2d1f8899bb42aef2aebb7a8  gcc/te
*** 49332,49338 ****
  68ea1e33b73e2699fe3e0888ae6721b1  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-13.c
  fe84a4129539ca0baa6a9d7402d4d376  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-14.c
  b1188ae63556e140acddb61c169ee3c5  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-15.c
! 5d4cdc6bd818734c048b194c28a11deb  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c
  b12d1ab254d179b32ea5f184c4240c23  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c
  195d9617ba34c560d8e9caab1c13ad0e  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c
  4f2173acb80928f0b6a87daf5033149e  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-3.c
--- 51954,51960 ----
  68ea1e33b73e2699fe3e0888ae6721b1  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-13.c
  fe84a4129539ca0baa6a9d7402d4d376  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-14.c
  b1188ae63556e140acddb61c169ee3c5  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-15.c
! a396077c5b09482a1d6295ef3886fbb2  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c
  b12d1ab254d179b32ea5f184c4240c23  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c
  195d9617ba34c560d8e9caab1c13ad0e  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c
  4f2173acb80928f0b6a87daf5033149e  gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-3.c
*************** a83f3f323f8f4ab72419c34630657fda  gcc/te
*** 49351,49368 ****
  5ef0140a508e96e35b40ba98840cf428  gcc/testsuite/gcc.dg/tree-ssa/minmax-12.c
  50001d0643c91a8ce803c90b31c9f2ad  gcc/testsuite/gcc.dg/tree-ssa/minmax-13.c
  7b7a8c9883da8c818f8747dd78b0a8cb  gcc/testsuite/gcc.dg/tree-ssa/minmax-14.c
! 0d22930804e950147349eaad66b3eee9  gcc/testsuite/gcc.dg/tree-ssa/minmax-15.c
! ea319c1ff516eeeb4546121f25214fc2  gcc/testsuite/gcc.dg/tree-ssa/minmax-16.c
  21959e600b3e318fb6e964900d48abc5  gcc/testsuite/gcc.dg/tree-ssa/minmax-2.c
! cabdddbd82b9ba47b42ba8ef74b296c7  gcc/testsuite/gcc.dg/tree-ssa/minmax-3.c
! ea1937c79f8939d4475860f08a6403bb  gcc/testsuite/gcc.dg/tree-ssa/minmax-4.c
! 77ed912ede1a2bab711125703d70fecc  gcc/testsuite/gcc.dg/tree-ssa/minmax-5.c
  64d1ac96d63f1275356a5f31398dce9d  gcc/testsuite/gcc.dg/tree-ssa/minmax-6.c
  8c3961b152f7a4c237cf3af53a73d146  gcc/testsuite/gcc.dg/tree-ssa/minmax-7.c
! 6347d7fbd0234ce23fafb40caa72bbe6  gcc/testsuite/gcc.dg/tree-ssa/minmax-8.c
  50c27bf3f0fece6523414faee93a4c74  gcc/testsuite/gcc.dg/tree-ssa/minmax-9.c
  fa665ccc5c37f6639ff420a922266cc1  gcc/testsuite/gcc.dg/tree-ssa/minmax-loopend-2.c
  eab9b8fbca526d3026277ce8a7c3179f  gcc/testsuite/gcc.dg/tree-ssa/minmax-loopend.c
  dd531f5928d5579a42c6d936314756c1  gcc/testsuite/gcc.dg/tree-ssa/minus-ovf.c
  f4dea9fb4e5bd2155b8ba67624432e3e  gcc/testsuite/gcc.dg/tree-ssa/modref-1.c
  63c10aef303a55c6703f6c6f9d1197ef  gcc/testsuite/gcc.dg/tree-ssa/modref-10.c
--- 51973,52004 ----
  5ef0140a508e96e35b40ba98840cf428  gcc/testsuite/gcc.dg/tree-ssa/minmax-12.c
  50001d0643c91a8ce803c90b31c9f2ad  gcc/testsuite/gcc.dg/tree-ssa/minmax-13.c
  7b7a8c9883da8c818f8747dd78b0a8cb  gcc/testsuite/gcc.dg/tree-ssa/minmax-14.c
! 8a0de9ac36a527a91193e503f1aa6389  gcc/testsuite/gcc.dg/tree-ssa/minmax-15.c
! 15b7b9d1a210685d1403b547fbf66cd8  gcc/testsuite/gcc.dg/tree-ssa/minmax-16.c
! 552a1c927296f9dca116af3ef24c50ce  gcc/testsuite/gcc.dg/tree-ssa/minmax-17.c
! d61ccd4e26ec50f05761bcdb0ed0d84c  gcc/testsuite/gcc.dg/tree-ssa/minmax-18.c
! 4c170efb2c9caf34746b7c1e1ba1ba5f  gcc/testsuite/gcc.dg/tree-ssa/minmax-19.c
  21959e600b3e318fb6e964900d48abc5  gcc/testsuite/gcc.dg/tree-ssa/minmax-2.c
! cc7d7f170618128ba1478e12a15bd609  gcc/testsuite/gcc.dg/tree-ssa/minmax-20.c
! 8238e39d3e1c82af7d85f1a0f1a207be  gcc/testsuite/gcc.dg/tree-ssa/minmax-21.c
! 6ed09dda1556c2945d4cef3cdf1d35cf  gcc/testsuite/gcc.dg/tree-ssa/minmax-22.c
! cbfe845bffd1d19054fe82fa5a8f02c8  gcc/testsuite/gcc.dg/tree-ssa/minmax-23.c
! 13b33d2da61d9c554089fe5cfa2034c2  gcc/testsuite/gcc.dg/tree-ssa/minmax-24.c
! 42075be765385e6239fd60be49720c23  gcc/testsuite/gcc.dg/tree-ssa/minmax-25.c
! 02ce417920a0feee673f17298fba6c7e  gcc/testsuite/gcc.dg/tree-ssa/minmax-26.c
! 99fd130546ede52bae431d4f1c21fc5a  gcc/testsuite/gcc.dg/tree-ssa/minmax-27.c
! 8dcc30df5adfcfd8829d5ff46acc9657  gcc/testsuite/gcc.dg/tree-ssa/minmax-28.c
! ebd64598eb4ae669eb0b23c8f04d5a46  gcc/testsuite/gcc.dg/tree-ssa/minmax-3.c
! 7c34c6b9eac11cf5e9264d6575d41224  gcc/testsuite/gcc.dg/tree-ssa/minmax-4.c
! 639bc9b57e1078143511dae7efca80b0  gcc/testsuite/gcc.dg/tree-ssa/minmax-5.c
  64d1ac96d63f1275356a5f31398dce9d  gcc/testsuite/gcc.dg/tree-ssa/minmax-6.c
  8c3961b152f7a4c237cf3af53a73d146  gcc/testsuite/gcc.dg/tree-ssa/minmax-7.c
! 432370bb984e2c48e6db0062bf8c4fac  gcc/testsuite/gcc.dg/tree-ssa/minmax-8.c
  50c27bf3f0fece6523414faee93a4c74  gcc/testsuite/gcc.dg/tree-ssa/minmax-9.c
  fa665ccc5c37f6639ff420a922266cc1  gcc/testsuite/gcc.dg/tree-ssa/minmax-loopend-2.c
  eab9b8fbca526d3026277ce8a7c3179f  gcc/testsuite/gcc.dg/tree-ssa/minmax-loopend.c
+ 9ade6eafbf29a8a919b306d3bbaff091  gcc/testsuite/gcc.dg/tree-ssa/minmaxcmp-1.c
+ 9167d418f7606e764753fbe43b058c6e  gcc/testsuite/gcc.dg/tree-ssa/minmaxcmp-2.c
  dd531f5928d5579a42c6d936314756c1  gcc/testsuite/gcc.dg/tree-ssa/minus-ovf.c
  f4dea9fb4e5bd2155b8ba67624432e3e  gcc/testsuite/gcc.dg/tree-ssa/modref-1.c
  63c10aef303a55c6703f6c6f9d1197ef  gcc/testsuite/gcc.dg/tree-ssa/modref-10.c
*************** fd326f4e5a35e41b78cb70f85b0fff1d  gcc/te
*** 49389,49403 ****
  86b3b545b7d95e5a9edad0a6ab56705b  gcc/testsuite/gcc.dg/tree-ssa/mulcmp-1.c
  9d609bd79769ece6157bc34fbbb0371f  gcc/testsuite/gcc.dg/tree-ssa/muldiv-1.c
  9a861088652f3a7c7b3117c9a108131a  gcc/testsuite/gcc.dg/tree-ssa/muldiv-2.c
! 0f176d9e4db4a1694abf102a0c8ac46f  gcc/testsuite/gcc.dg/tree-ssa/mult-abs-2.c
  de18b9aafeb5b7a70c2415d80406308c  gcc/testsuite/gcc.dg/tree-ssa/multcmp-1.c
  d247eecb7ac955c043ad5e586c7470e1  gcc/testsuite/gcc.dg/tree-ssa/multcmp-2.c
  2d24280dac358b9f66c4931b4f05b337  gcc/testsuite/gcc.dg/tree-ssa/negate.c
  0e4f2cc9014da9897cf2e06c37a2172d  gcc/testsuite/gcc.dg/tree-ssa/negminus.c
  38dca550c71758b1703de32c9e8a47c5  gcc/testsuite/gcc.dg/tree-ssa/negneg-1.c
  e548a94664ac02f15cfda14370455269  gcc/testsuite/gcc.dg/tree-ssa/negneg-2.c
! fd3e17bbeabb9e9147c31ce59d7f4c05  gcc/testsuite/gcc.dg/tree-ssa/negneg-3.c
  3819fd1873721abc800e327bb75f2977  gcc/testsuite/gcc.dg/tree-ssa/negneg-4.c
  fa56920695d7960f275efc9fdfa0cbea  gcc/testsuite/gcc.dg/tree-ssa/nonzero-1.c
  e0419e6272f3f7d06ab87ebdcac6b06f  gcc/testsuite/gcc.dg/tree-ssa/nonzero-1a.c
  9408e54e117e3760c360e811a1decee4  gcc/testsuite/gcc.dg/tree-ssa/noreturn-1.c
--- 52025,52045 ----
  86b3b545b7d95e5a9edad0a6ab56705b  gcc/testsuite/gcc.dg/tree-ssa/mulcmp-1.c
  9d609bd79769ece6157bc34fbbb0371f  gcc/testsuite/gcc.dg/tree-ssa/muldiv-1.c
  9a861088652f3a7c7b3117c9a108131a  gcc/testsuite/gcc.dg/tree-ssa/muldiv-2.c
! 3f0b8ca2956c4eecb250bec846ea984b  gcc/testsuite/gcc.dg/tree-ssa/mult-abs-2.c
  de18b9aafeb5b7a70c2415d80406308c  gcc/testsuite/gcc.dg/tree-ssa/multcmp-1.c
  d247eecb7ac955c043ad5e586c7470e1  gcc/testsuite/gcc.dg/tree-ssa/multcmp-2.c
+ 9fed80a4ae6cf5c73c12ca92c518b676  gcc/testsuite/gcc.dg/tree-ssa/neg-cast-2.c
+ 26693dceeecd0a142bbce3c8a3f5b0af  gcc/testsuite/gcc.dg/tree-ssa/neg-cast-3.c
  2d24280dac358b9f66c4931b4f05b337  gcc/testsuite/gcc.dg/tree-ssa/negate.c
  0e4f2cc9014da9897cf2e06c37a2172d  gcc/testsuite/gcc.dg/tree-ssa/negminus.c
  38dca550c71758b1703de32c9e8a47c5  gcc/testsuite/gcc.dg/tree-ssa/negneg-1.c
  e548a94664ac02f15cfda14370455269  gcc/testsuite/gcc.dg/tree-ssa/negneg-2.c
! efe2b6db134d37ba952a211f775f3454  gcc/testsuite/gcc.dg/tree-ssa/negneg-3.c
  3819fd1873721abc800e327bb75f2977  gcc/testsuite/gcc.dg/tree-ssa/negneg-4.c
+ 0f1e6fb257ae50dd53d5b636090a9ac1  gcc/testsuite/gcc.dg/tree-ssa/negneq-1.c
+ 49cde18759c78db6d3fccb20ca03ac47  gcc/testsuite/gcc.dg/tree-ssa/negneq-2.c
+ 3913d282bf90a57e41f26993c7bfd4a5  gcc/testsuite/gcc.dg/tree-ssa/negneq-3.c
+ abe5621a92d7de21676f49603a144c76  gcc/testsuite/gcc.dg/tree-ssa/negneq-4.c
  fa56920695d7960f275efc9fdfa0cbea  gcc/testsuite/gcc.dg/tree-ssa/nonzero-1.c
  e0419e6272f3f7d06ab87ebdcac6b06f  gcc/testsuite/gcc.dg/tree-ssa/nonzero-1a.c
  9408e54e117e3760c360e811a1decee4  gcc/testsuite/gcc.dg/tree-ssa/noreturn-1.c
*************** e0419e6272f3f7d06ab87ebdcac6b06f  gcc/te
*** 49405,49411 ****
  92e3c8666216cd6c40ba9fcb1eaa2a54  gcc/testsuite/gcc.dg/tree-ssa/operand-equal-2.c
  ce587f71a4758452bb7bdd847c66e619  gcc/testsuite/gcc.dg/tree-ssa/overflow-1.c
  20ab75cc87eeb1a4398c8dd8140e58c6  gcc/testsuite/gcc.dg/tree-ssa/overflow-2.c
! 5a98b1998ff6213f7c4d03f86ad6f651  gcc/testsuite/gcc.dg/tree-ssa/peel1.c
  ca3185e60127c7a83151ffd5cf76d1d2  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-1.c
  1669094b5b199dda6f7632cac7062c80  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-10.c
  e40f317a34d22fbf09f2b1db491def14  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-11.c
--- 52047,52053 ----
  92e3c8666216cd6c40ba9fcb1eaa2a54  gcc/testsuite/gcc.dg/tree-ssa/operand-equal-2.c
  ce587f71a4758452bb7bdd847c66e619  gcc/testsuite/gcc.dg/tree-ssa/overflow-1.c
  20ab75cc87eeb1a4398c8dd8140e58c6  gcc/testsuite/gcc.dg/tree-ssa/overflow-2.c
! 266c21d33851ad395bde2ea3f8603d58  gcc/testsuite/gcc.dg/tree-ssa/peel1.c
  ca3185e60127c7a83151ffd5cf76d1d2  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-1.c
  1669094b5b199dda6f7632cac7062c80  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-10.c
  e40f317a34d22fbf09f2b1db491def14  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-11.c
*************** f9a4deff22999b8c987de60c9aa84e72  gcc/te
*** 49417,49442 ****
  c6bab30ae3a1787d5ea4950933c06c28  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-17.c
  9a9c396e92e733d8de653209b1837b47  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-18.c
  99580bb5b01f5543864ee1f3d0930a74  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-19.c
! 2643dcfeb724a0a257a2307aeecaa480  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-2.c
  527210fcbd1816aa28cc65d7c33068fa  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-20.c
  b84a8bc940945b8cdca0c6ff5ccff1af  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-21.c
  da93f33fbcf120eb1e7aa848bb5b3ed8  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-22.c
! 0ae1e2bf0f244e9fefe7b6415d62420c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-23.c
! a8fbbb3d3180114ac0b2febbc18b2de7  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-24.c
  c77e1e558a98210ffc3ec93562f1bb78  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-25.c
  ddfeb5736d45279be3efa9397b59d63c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-26.c
  9c5b91e9723f7d587ab6723f6d888f0c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-3.c
  abf36d925f7053c105cfd3f71d64a6a7  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c
! 355dc8df4a0d47b33dae9c0577572ea2  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
  033ff5a0b13956ee34bb2647a8515399  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-6.c
  514de6e24d86533ce1f0d4152530aef0  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-7.c
  dec7e9a594d55bb6427abfb7ee0ae7b3  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-8.c
  1e3a245190acf2fd12bb7c7a73b26fce  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-9.c
! 9f5959d9081cec34b53244a5c485281a  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c
  44b84455e4e32ef45ab0091bcb29e029  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-2.c
  f26d2e01babf45dbaeac6dc0140557e7  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c
! e6b4d4e12abe0ec0eba00659cb2c72b1  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c
! 9e81c2841a4d91e2549d250cfa33f24c  gcc/testsuite/gcc.dg/tree-ssa/popcount-max.c
  c7d4b48e1b7fabc4a3165b3279573966  gcc/testsuite/gcc.dg/tree-ssa/popcount.c
  698a1a5b66251de92ebeb4f655fd8be8  gcc/testsuite/gcc.dg/tree-ssa/popcount2.c
  33c3ca116bd47b630a440a6f2c7764db  gcc/testsuite/gcc.dg/tree-ssa/popcount3.c
--- 52059,52107 ----
  c6bab30ae3a1787d5ea4950933c06c28  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-17.c
  9a9c396e92e733d8de653209b1837b47  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-18.c
  99580bb5b01f5543864ee1f3d0930a74  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-19.c
! 6a9323662457935e188edb043e5bd2ae  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-2.c
  527210fcbd1816aa28cc65d7c33068fa  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-20.c
  b84a8bc940945b8cdca0c6ff5ccff1af  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-21.c
  da93f33fbcf120eb1e7aa848bb5b3ed8  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-22.c
! 7778cd6d19e09b6fba82ae17d21642e9  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-23.c
! 13e6533b381e5e02ca88b3c6350d354c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-24.c
  c77e1e558a98210ffc3ec93562f1bb78  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-25.c
+ 756e948889a212dcbbe51dda0e6bae6b  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-25a.c
+ 4cda5ad2cf70fb72fb81d3172aeb6f6f  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-25b.c
  ddfeb5736d45279be3efa9397b59d63c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-26.c
+ 31b0a4ec4b9bef0d0577a92f64a0940d  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-27.c
+ 7cd8242114792fdeb51565124eaecdd1  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-28.c
+ 67855aeda26b153b4e1770ed6f2e5ebf  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-29.c
  9c5b91e9723f7d587ab6723f6d888f0c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-3.c
+ f6540745c032eb3f3c7ae26c9e31dda9  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-30.c
+ d07d03e3edfa44006005dd44c6c4ce1d  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-31.c
+ e3d44d4ed5af198709778d1117cffbb6  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-32.c
+ db2d1d7377bcb90d17775a8ce5c09fbc  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-33.c
+ f581fc1d2d08a6b757396dc59c0c5fa8  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-34.c
+ 472b7507df730aa2e1795be220d7a968  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-35.c
+ d31dc426deb5317052817eae5638d4dd  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-36.c
+ e9ccf5561ec154e17b83f854b31ffdb3  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-37.c
+ 23ce2f2fa5c30c3b31998ecd5455631c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-38.c
+ a66b4d75c24b7b87fa85665ce41632e4  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-39.c
  abf36d925f7053c105cfd3f71d64a6a7  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c
! f833c6ecf2070a21485d7371d3d5c264  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-40.c
! 56955a10efc69b18ceb9374a2c5c5b90  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
  033ff5a0b13956ee34bb2647a8515399  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-6.c
  514de6e24d86533ce1f0d4152530aef0  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-7.c
  dec7e9a594d55bb6427abfb7ee0ae7b3  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-8.c
  1e3a245190acf2fd12bb7c7a73b26fce  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-9.c
! eeadd0310b1767b684f335417f1cae65  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-same-1.c
! ebfd2de9c20bd860af0d147f7475ea60  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-same-2.c
! 2ec45f2f644b279531e9d46c9e3fada3  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-1.c
! 880ac30f61294f2a27258455fb36e8b4  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-1a.c
! 9c819f9de58d3593f450abbac3752fce  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-2.c
! 853bb73e539fb11952babaad04094941  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-value-4.c
! cef3bfd56530a07f8eb43ec1a8c7552d  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c
  44b84455e4e32ef45ab0091bcb29e029  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-2.c
  f26d2e01babf45dbaeac6dc0140557e7  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c
! d5f82ca4c500006079bdac0858cef071  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c
! a39b55be53be7f30c85f02bc40f6fa4d  gcc/testsuite/gcc.dg/tree-ssa/phiprop-1.c
! b81bf617d471d744150338432db43dc6  gcc/testsuite/gcc.dg/tree-ssa/popcount-max.c
  c7d4b48e1b7fabc4a3165b3279573966  gcc/testsuite/gcc.dg/tree-ssa/popcount.c
  698a1a5b66251de92ebeb4f655fd8be8  gcc/testsuite/gcc.dg/tree-ssa/popcount2.c
  33c3ca116bd47b630a440a6f2c7764db  gcc/testsuite/gcc.dg/tree-ssa/popcount3.c
*************** b2197879c497a963508f367b026baebe  gcc/te
*** 49451,49460 ****
  0341d659d040511e18c036b7dd477420  gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
  6804f4f388ad8b533f34eb3de20dac4d  gcc/testsuite/gcc.dg/tree-ssa/pr100794.c
  d5dace55f72aa8ccb51636dff79f5ccc  gcc/testsuite/gcc.dg/tree-ssa/pr101824.c
  c3925f4a4c97c2d1ae9800c4011550d8  gcc/testsuite/gcc.dg/tree-ssa/pr101941-1.c
! f8aa58d775821ac68e9eb39aea49d62d  gcc/testsuite/gcc.dg/tree-ssa/pr102232.c
  015eeaafe9c8e7b743c67fed8fc93670  gcc/testsuite/gcc.dg/tree-ssa/pr102546.c
! a83cf6ce07b5beafc03b84bd91b5dbcb  gcc/testsuite/gcc.dg/tree-ssa/pr102563.c
  07cbfe319374507b0bd58c75bf83d9e2  gcc/testsuite/gcc.dg/tree-ssa/pr102736.c
  335850968e8422bffc030a8ed0663409  gcc/testsuite/gcc.dg/tree-ssa/pr102880.c
  dfb016d569355b28ba6779d09c046dc0  gcc/testsuite/gcc.dg/tree-ssa/pr102906.c
--- 52116,52126 ----
  0341d659d040511e18c036b7dd477420  gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
  6804f4f388ad8b533f34eb3de20dac4d  gcc/testsuite/gcc.dg/tree-ssa/pr100794.c
  d5dace55f72aa8ccb51636dff79f5ccc  gcc/testsuite/gcc.dg/tree-ssa/pr101824.c
+ cc9f8c702d219c1fe6887d926a6617f8  gcc/testsuite/gcc.dg/tree-ssa/pr101856.c
  c3925f4a4c97c2d1ae9800c4011550d8  gcc/testsuite/gcc.dg/tree-ssa/pr101941-1.c
! cce90032144405ca7da9448ff0ff237f  gcc/testsuite/gcc.dg/tree-ssa/pr102232.c
  015eeaafe9c8e7b743c67fed8fc93670  gcc/testsuite/gcc.dg/tree-ssa/pr102546.c
! 914bbe09bc94e772a17ba6a04e734349  gcc/testsuite/gcc.dg/tree-ssa/pr102563.c
  07cbfe319374507b0bd58c75bf83d9e2  gcc/testsuite/gcc.dg/tree-ssa/pr102736.c
  335850968e8422bffc030a8ed0663409  gcc/testsuite/gcc.dg/tree-ssa/pr102880.c
  dfb016d569355b28ba6779d09c046dc0  gcc/testsuite/gcc.dg/tree-ssa/pr102906.c
*************** dfb016d569355b28ba6779d09c046dc0  gcc/te
*** 49465,49485 ****
  cfd7d842f63da4db48b1d992a8c985eb  gcc/testsuite/gcc.dg/tree-ssa/pr103228-1.c
  4e381cb067a220525cf16869cb8387e2  gcc/testsuite/gcc.dg/tree-ssa/pr103245-1.c
  fa56633d7111e0bde475691ce592224c  gcc/testsuite/gcc.dg/tree-ssa/pr103257-1.c
! 5fe9aa8fe861dcc2248a00967f9079d7  gcc/testsuite/gcc.dg/tree-ssa/pr103345.c
  ba5fbae8412c94dcffa215cb6cff04c0  gcc/testsuite/gcc.dg/tree-ssa/pr103514.c
  b09ca12340e534366a044672763446bf  gcc/testsuite/gcc.dg/tree-ssa/pr104639-1.c
  c502141393b8f053f7454ee254898a9a  gcc/testsuite/gcc.dg/tree-ssa/pr104639-2.c
  83ed534d9becd608f3b5229e52d305d0  gcc/testsuite/gcc.dg/tree-ssa/pr104645.c
  e47699ee9cf13d5804649766bc0537e9  gcc/testsuite/gcc.dg/tree-ssa/pr105777.c
! 660324e032912162df8b4570de2731f5  gcc/testsuite/gcc.dg/tree-ssa/pr105860.c
  51aefebe5a7150d43227f1c8527c0fbb  gcc/testsuite/gcc.dg/tree-ssa/pr105983.c
  b891127ad22d0d7cb09e69f8f27f96ac  gcc/testsuite/gcc.dg/tree-ssa/pr106126.c
  e36665ab393c345c7737cbc50b135180  gcc/testsuite/gcc.dg/tree-ssa/pr106819.c
  d505cdb5188b39f3577224e86bc9b394  gcc/testsuite/gcc.dg/tree-ssa/pr106867.c
  2039a8bc432137e3b821b7f1ea3987f1  gcc/testsuite/gcc.dg/tree-ssa/pr106967.c
  d9497cab1ff90504a77521039499946d  gcc/testsuite/gcc.dg/tree-ssa/pr106970.c
! 3617e4911386a9f579e684140bedcd67  gcc/testsuite/gcc.dg/tree-ssa/pr107009.c
  d4179bd30d4ee2dec6b88eb328b1a6d9  gcc/testsuite/gcc.dg/tree-ssa/pr107052.c
  b7cd3b55b88b19a9bd8451e7659e14d1  gcc/testsuite/gcc.dg/tree-ssa/pr107130.c
  e43a40ad32978f21f63f34a0544b7b49  gcc/testsuite/gcc.dg/tree-ssa/pr107170.c
  deaa5c976f0b0bca0ce9ddc252dabb33  gcc/testsuite/gcc.dg/tree-ssa/pr107195-1.c
--- 52131,52159 ----
  cfd7d842f63da4db48b1d992a8c985eb  gcc/testsuite/gcc.dg/tree-ssa/pr103228-1.c
  4e381cb067a220525cf16869cb8387e2  gcc/testsuite/gcc.dg/tree-ssa/pr103245-1.c
  fa56633d7111e0bde475691ce592224c  gcc/testsuite/gcc.dg/tree-ssa/pr103257-1.c
! f1e7a055411335174b0cb7ac7ee70469  gcc/testsuite/gcc.dg/tree-ssa/pr103281-1.c
! c5e6a09c698a49751c6bada9dd9ec317  gcc/testsuite/gcc.dg/tree-ssa/pr103345.c
  ba5fbae8412c94dcffa215cb6cff04c0  gcc/testsuite/gcc.dg/tree-ssa/pr103514.c
+ 56e10a813fe3529f5a1ee81e2a9948ea  gcc/testsuite/gcc.dg/tree-ssa/pr103680.c
+ b51ff14aa94b335bd58bf2c9ba403788  gcc/testsuite/gcc.dg/tree-ssa/pr103771.c
  b09ca12340e534366a044672763446bf  gcc/testsuite/gcc.dg/tree-ssa/pr104639-1.c
  c502141393b8f053f7454ee254898a9a  gcc/testsuite/gcc.dg/tree-ssa/pr104639-2.c
  83ed534d9becd608f3b5229e52d305d0  gcc/testsuite/gcc.dg/tree-ssa/pr104645.c
  e47699ee9cf13d5804649766bc0537e9  gcc/testsuite/gcc.dg/tree-ssa/pr105777.c
! 83adb5ec06e1ce57942d0ce47cc7588f  gcc/testsuite/gcc.dg/tree-ssa/pr105832-1.c
! 13f8f687d8dcd1ad27f352632abf424b  gcc/testsuite/gcc.dg/tree-ssa/pr105832-2.c
! 8488487a8f3715f1d2592bde49e39159  gcc/testsuite/gcc.dg/tree-ssa/pr105832-3.c
! 9178c8107e7a1061f72d817706754a85  gcc/testsuite/gcc.dg/tree-ssa/pr105860.c
  51aefebe5a7150d43227f1c8527c0fbb  gcc/testsuite/gcc.dg/tree-ssa/pr105983.c
  b891127ad22d0d7cb09e69f8f27f96ac  gcc/testsuite/gcc.dg/tree-ssa/pr106126.c
  e36665ab393c345c7737cbc50b135180  gcc/testsuite/gcc.dg/tree-ssa/pr106819.c
  d505cdb5188b39f3577224e86bc9b394  gcc/testsuite/gcc.dg/tree-ssa/pr106867.c
  2039a8bc432137e3b821b7f1ea3987f1  gcc/testsuite/gcc.dg/tree-ssa/pr106967.c
  d9497cab1ff90504a77521039499946d  gcc/testsuite/gcc.dg/tree-ssa/pr106970.c
! 6e3c90919768f6d97e40ba8741220904  gcc/testsuite/gcc.dg/tree-ssa/pr107009.c
! 1cf3733e85daee9e7106e3ee48282ee7  gcc/testsuite/gcc.dg/tree-ssa/pr107043.c
  d4179bd30d4ee2dec6b88eb328b1a6d9  gcc/testsuite/gcc.dg/tree-ssa/pr107052.c
+ 4571b28776744568ce82bb32d49623f2  gcc/testsuite/gcc.dg/tree-ssa/pr107053.c
  b7cd3b55b88b19a9bd8451e7659e14d1  gcc/testsuite/gcc.dg/tree-ssa/pr107130.c
  e43a40ad32978f21f63f34a0544b7b49  gcc/testsuite/gcc.dg/tree-ssa/pr107170.c
  deaa5c976f0b0bca0ce9ddc252dabb33  gcc/testsuite/gcc.dg/tree-ssa/pr107195-1.c
*************** ba0f756770b2c8c27b5698876e3038d6  gcc/te
*** 49500,49507 ****
  6e9a4a3a8a16375f78591054eb13656b  gcc/testsuite/gcc.dg/tree-ssa/pr108354-1.c
  17457a9f12304e22150f0ed2c4732252  gcc/testsuite/gcc.dg/tree-ssa/pr108357.c
  486e83eb732ae374266e81bf0ad91d4c  gcc/testsuite/gcc.dg/tree-ssa/pr108684-1.c
! 9a57b932241f72e62ecf6645de5034e9  gcc/testsuite/gcc.dg/tree-ssa/pr109031-1.c
! 3e53d598753ed4660dbeb6be7795b42e  gcc/testsuite/gcc.dg/tree-ssa/pr109031-2.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
  9945ed7002a5f7d4918e8ff5eb4cb647  gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
--- 52174,52219 ----
  6e9a4a3a8a16375f78591054eb13656b  gcc/testsuite/gcc.dg/tree-ssa/pr108354-1.c
  17457a9f12304e22150f0ed2c4732252  gcc/testsuite/gcc.dg/tree-ssa/pr108357.c
  486e83eb732ae374266e81bf0ad91d4c  gcc/testsuite/gcc.dg/tree-ssa/pr108684-1.c
! 336fbe90910f8510ce18879884624b1f  gcc/testsuite/gcc.dg/tree-ssa/pr109031-1.c
! b95e043a8efd5687ccde935f82229c3f  gcc/testsuite/gcc.dg/tree-ssa/pr109031-2.c
! bcc1e80ace8dfce442cc953aeebe8f09  gcc/testsuite/gcc.dg/tree-ssa/pr109639.c
! 0484f73625f0f6fcb5ba8f13c9fe7ce2  gcc/testsuite/gcc.dg/tree-ssa/pr109643.c
! 224ab867e798b5cf13d97d39d2a1eb10  gcc/testsuite/gcc.dg/tree-ssa/pr109711-1.c
! 40a15ee5d38d19b2ca6d98814456dcfc  gcc/testsuite/gcc.dg/tree-ssa/pr109711-2.c
! b0a5d0cb26e6cc9477b05eaf27f231fe  gcc/testsuite/gcc.dg/tree-ssa/pr109834-1.c
! c894a43d6d18577fb0be67375fb6fe32  gcc/testsuite/gcc.dg/tree-ssa/pr109849.c
! 3adb7e9f8a25b141deab6a826dbf4d2a  gcc/testsuite/gcc.dg/tree-ssa/pr109934.c
! 59a24d80466c265cf89ff1a407f6bc52  gcc/testsuite/gcc.dg/tree-ssa/pr109938.c
! 867364fc143bc4b929132a4541e2c148  gcc/testsuite/gcc.dg/tree-ssa/pr109986.c
! d858508cab283f80f2c10b71c55f18cf  gcc/testsuite/gcc.dg/tree-ssa/pr110269.c
! 1a43d4aa287797f77da28ba29ac7e784  gcc/testsuite/gcc.dg/tree-ssa/pr110293-1.c
! cf18292fc8e047eca4019ed9a5986464  gcc/testsuite/gcc.dg/tree-ssa/pr110334.c
! 14621cb098ae80f702a4171944cab2d0  gcc/testsuite/gcc.dg/tree-ssa/pr110539-1.c
! 11bd19493ce1feb72539f6472aa45740  gcc/testsuite/gcc.dg/tree-ssa/pr110539-2.c
! 00661c0fec0a14e36f8c7db3aea51bf6  gcc/testsuite/gcc.dg/tree-ssa/pr110539-3.c
! 9d6212cf9ca598a454eba0d53b580d8c  gcc/testsuite/gcc.dg/tree-ssa/pr110539-4.c
! 326c5357afa17edb3d68d781e2c8e23e  gcc/testsuite/gcc.dg/tree-ssa/pr110637-1.c
! d995b9152fb033c1efa90b7c0930e6f9  gcc/testsuite/gcc.dg/tree-ssa/pr110637-2.c
! ce036f14fca174d66f05f8e0619e160f  gcc/testsuite/gcc.dg/tree-ssa/pr110637-3.c
! 972f1ff8349023459362c48f1ddff426  gcc/testsuite/gcc.dg/tree-ssa/pr110753.c
! 04fd298aa9bd6b97a889de59aa8af394  gcc/testsuite/gcc.dg/tree-ssa/pr110923.c
! 7394e3e71f10f70f8a9941c68e3b2fb6  gcc/testsuite/gcc.dg/tree-ssa/pr111003.c
! b9c5a68b2233aa836355012fa917a7b5  gcc/testsuite/gcc.dg/tree-ssa/pr111294.c
! eed236f4c0a3dab3cadb4c5cbce403da  gcc/testsuite/gcc.dg/tree-ssa/pr111324.c
! dec0cf7cbaa0a37eeaed7924b7fbc166  gcc/testsuite/gcc.dg/tree-ssa/pr111456-1.c
! 61d72ed2564524f68aa2ca633cd0ff9b  gcc/testsuite/gcc.dg/tree-ssa/pr111583-1.c
! 44119a9898cb07aa07b7491d0a643353  gcc/testsuite/gcc.dg/tree-ssa/pr111583-2.c
! 30191e7f04d08f0b42092e36965a3c63  gcc/testsuite/gcc.dg/tree-ssa/pr111967.c
! f5a620ca99a1fc9e267beab2ad387ade  gcc/testsuite/gcc.dg/tree-ssa/pr111972-1.c
! beccfabbbe0e25820c8a0bf1789cad24  gcc/testsuite/gcc.dg/tree-ssa/pr112706.c
! 19ee66e2ab8d0fdea9f3e335e4a8fa86  gcc/testsuite/gcc.dg/tree-ssa/pr112721.c
! 4eb8c3fc22eb21c2ea6d58e0ea78f8fc  gcc/testsuite/gcc.dg/tree-ssa/pr112767.c
! 085da52899c892d40e925268a4927d02  gcc/testsuite/gcc.dg/tree-ssa/pr112994-1.c
! 35e78696025683486887846091caaf97  gcc/testsuite/gcc.dg/tree-ssa/pr112994-2.c
! 452950579226b1aabcc75fe9aabac790  gcc/testsuite/gcc.dg/tree-ssa/pr113024.c
! 02a5ab6dda99f9a8349410f9b29f8d78  gcc/testsuite/gcc.dg/tree-ssa/pr113735.c
! 02b4814f72330fad1ca31d29097c0f1e  gcc/testsuite/gcc.dg/tree-ssa/pr113993.c
! d044056d4248cb78637686f3d28272bb  gcc/testsuite/gcc.dg/tree-ssa/pr114009.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
  9945ed7002a5f7d4918e8ff5eb4cb647  gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
*************** e8abc7d5f3d4fef21d06eec48f3389e8  gcc/te
*** 49549,49555 ****
  1ec162aa74dccae78e824ec108c86c61  gcc/testsuite/gcc.dg/tree-ssa/pr20470.c
  50fa95184525227ec9edcf572adafb03  gcc/testsuite/gcc.dg/tree-ssa/pr20490.c
  eb9cdb731a638b47ce0c22ca470edb30  gcc/testsuite/gcc.dg/tree-ssa/pr20657.c
! 627144ebe0d710f9394bc3aea67469ee  gcc/testsuite/gcc.dg/tree-ssa/pr20701.c
  e7b18ff3cf3359b9824faf6e90e24697  gcc/testsuite/gcc.dg/tree-ssa/pr20702.c
  ae08c16dd8b5ab7f07e32230d2d40f11  gcc/testsuite/gcc.dg/tree-ssa/pr20739.c
  3e7b00190ef12800b35acc9eed263b78  gcc/testsuite/gcc.dg/tree-ssa/pr20742.c
--- 52261,52267 ----
  1ec162aa74dccae78e824ec108c86c61  gcc/testsuite/gcc.dg/tree-ssa/pr20470.c
  50fa95184525227ec9edcf572adafb03  gcc/testsuite/gcc.dg/tree-ssa/pr20490.c
  eb9cdb731a638b47ce0c22ca470edb30  gcc/testsuite/gcc.dg/tree-ssa/pr20657.c
! bad0b911b3dbdb44c3d7515d70c6e982  gcc/testsuite/gcc.dg/tree-ssa/pr20701.c
  e7b18ff3cf3359b9824faf6e90e24697  gcc/testsuite/gcc.dg/tree-ssa/pr20702.c
  ae08c16dd8b5ab7f07e32230d2d40f11  gcc/testsuite/gcc.dg/tree-ssa/pr20739.c
  3e7b00190ef12800b35acc9eed263b78  gcc/testsuite/gcc.dg/tree-ssa/pr20742.c
*************** ea6a7baaceb80ef4cf5f5c5cf3e7788b  gcc/te
*** 49566,49572 ****
  d811d69b45b08696ad81b5f26e4a94ce  gcc/testsuite/gcc.dg/tree-ssa/pr21417.c
  88444e3a0001ba06553cd234bcac03c5  gcc/testsuite/gcc.dg/tree-ssa/pr21458-2.c
  c048bfe35c82ce2ba96ac7bbf0e4d40d  gcc/testsuite/gcc.dg/tree-ssa/pr21458.c
! 1bd3a1ab25743cbb8d3d657555246fd1  gcc/testsuite/gcc.dg/tree-ssa/pr21463.c
  0669fd06935b54081677076b9ba7c6ab  gcc/testsuite/gcc.dg/tree-ssa/pr21559.c
  1ad997bb33b318b3f1899968964c6be9  gcc/testsuite/gcc.dg/tree-ssa/pr21563.c
  e64bddc662b76275a7129f612d2b6085  gcc/testsuite/gcc.dg/tree-ssa/pr21574.c
--- 52278,52284 ----
  d811d69b45b08696ad81b5f26e4a94ce  gcc/testsuite/gcc.dg/tree-ssa/pr21417.c
  88444e3a0001ba06553cd234bcac03c5  gcc/testsuite/gcc.dg/tree-ssa/pr21458-2.c
  c048bfe35c82ce2ba96ac7bbf0e4d40d  gcc/testsuite/gcc.dg/tree-ssa/pr21458.c
! a3cfae9bb07d9e8146464a05cb84a107  gcc/testsuite/gcc.dg/tree-ssa/pr21463.c
  0669fd06935b54081677076b9ba7c6ab  gcc/testsuite/gcc.dg/tree-ssa/pr21559.c
  1ad997bb33b318b3f1899968964c6be9  gcc/testsuite/gcc.dg/tree-ssa/pr21563.c
  e64bddc662b76275a7129f612d2b6085  gcc/testsuite/gcc.dg/tree-ssa/pr21574.c
*************** d708001f889fd59b2f876e9d6bc14583  gcc/te
*** 49578,49584 ****
  c9764a905f2c37d0f5420dcc057352f0  gcc/testsuite/gcc.dg/tree-ssa/pr22018.c
  b1562049ca8d52aa2155dbb50209d3da  gcc/testsuite/gcc.dg/tree-ssa/pr22026.c
  fb5f4aeb807b516ae9ab1c41d5b25809  gcc/testsuite/gcc.dg/tree-ssa/pr22051-1.c
! 673aab4a30f146c9bad885bc2b8057cf  gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c
  518a0d9783cc6ec8db78e246c4ec96ef  gcc/testsuite/gcc.dg/tree-ssa/pr22117.c
  8722e1903d33eba8d8172a467f1f57eb  gcc/testsuite/gcc.dg/tree-ssa/pr22171.c
  d9df7625f66b989cd9c941e4fe5b29c1  gcc/testsuite/gcc.dg/tree-ssa/pr22230.c
--- 52290,52296 ----
  c9764a905f2c37d0f5420dcc057352f0  gcc/testsuite/gcc.dg/tree-ssa/pr22018.c
  b1562049ca8d52aa2155dbb50209d3da  gcc/testsuite/gcc.dg/tree-ssa/pr22026.c
  fb5f4aeb807b516ae9ab1c41d5b25809  gcc/testsuite/gcc.dg/tree-ssa/pr22051-1.c
! f5c547a9bc73a98f17f5a7ceb8d5f11a  gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c
  518a0d9783cc6ec8db78e246c4ec96ef  gcc/testsuite/gcc.dg/tree-ssa/pr22117.c
  8722e1903d33eba8d8172a467f1f57eb  gcc/testsuite/gcc.dg/tree-ssa/pr22171.c
  d9df7625f66b989cd9c941e4fe5b29c1  gcc/testsuite/gcc.dg/tree-ssa/pr22230.c
*************** b30f3a905d9cb1c07a3b7b7325d275a2  gcc/te
*** 49631,49636 ****
--- 52343,52350 ----
  573cf597efe5e1b29a3d6c30a72feb89  gcc/testsuite/gcc.dg/tree-ssa/pr30978.c
  1abc5a684a68d03301f4fc1147b86a17  gcc/testsuite/gcc.dg/tree-ssa/pr31261.c
  300102f2c58251d43634d5abfd4fba78  gcc/testsuite/gcc.dg/tree-ssa/pr31521.c
+ 5a9052bdc105ad513c4664e8f70869e7  gcc/testsuite/gcc.dg/tree-ssa/pr31531-1.c
+ 246086e5e2ae0892b32fa54f0c2c8c8c  gcc/testsuite/gcc.dg/tree-ssa/pr31531-2.c
  f5de7ca48e45fa07564a59ee1e11e628  gcc/testsuite/gcc.dg/tree-ssa/pr31966.c
  290eb7d19ada4aa4119656a556e431db  gcc/testsuite/gcc.dg/tree-ssa/pr32044.c
  b8e0a7f87b5acd987532af03c0e3293f  gcc/testsuite/gcc.dg/tree-ssa/pr32367.c
*************** eb3c860d5f9311432576d2c60ba8e833  gcc/te
*** 49704,49710 ****
  5cfe577df2571b1475d5db616c40bf37  gcc/testsuite/gcc.dg/tree-ssa/pr54915.c
  87ba347e6d0c933e0a6a8cdb3c2f1bac  gcc/testsuite/gcc.dg/tree-ssa/pr55008.c
  5138a9c7520620d92b0450383907175d  gcc/testsuite/gcc.dg/tree-ssa/pr55157.c
! d64d66e96b2a81e7097abe36ef4bafbd  gcc/testsuite/gcc.dg/tree-ssa/pr55177-1.c
  c7ad6f1bea15d0129d2d4114715d38ab  gcc/testsuite/gcc.dg/tree-ssa/pr55579.c
  337de2f03bc182ae1e01fb18807fa344  gcc/testsuite/gcc.dg/tree-ssa/pr56719.c
  db0896d26b0b514a5ee7c242f2caf3fb  gcc/testsuite/gcc.dg/tree-ssa/pr56727.c
--- 52418,52424 ----
  5cfe577df2571b1475d5db616c40bf37  gcc/testsuite/gcc.dg/tree-ssa/pr54915.c
  87ba347e6d0c933e0a6a8cdb3c2f1bac  gcc/testsuite/gcc.dg/tree-ssa/pr55008.c
  5138a9c7520620d92b0450383907175d  gcc/testsuite/gcc.dg/tree-ssa/pr55157.c
! c63243a8574ce97ea22e7dde21b469c6  gcc/testsuite/gcc.dg/tree-ssa/pr55177-1.c
  c7ad6f1bea15d0129d2d4114715d38ab  gcc/testsuite/gcc.dg/tree-ssa/pr55579.c
  337de2f03bc182ae1e01fb18807fa344  gcc/testsuite/gcc.dg/tree-ssa/pr56719.c
  db0896d26b0b514a5ee7c242f2caf3fb  gcc/testsuite/gcc.dg/tree-ssa/pr56727.c
*************** a1b69b395bc1073391af5c497fbcaa6f  gcc/te
*** 49712,49718 ****
  3add5403cc3aefec17c98fd16ca42721  gcc/testsuite/gcc.dg/tree-ssa/pr57385.c
  6e5c334c8814768ab3b4bf81240e5d61  gcc/testsuite/gcc.dg/tree-ssa/pr58480.c
  c4bed0849dd869035230ef14c12f5167  gcc/testsuite/gcc.dg/tree-ssa/pr58958.c
! 5b6fd58d9cdc48456cdf2ff0d44fd256  gcc/testsuite/gcc.dg/tree-ssa/pr59597.c
  57d2eb9aedc84f2534151f02031e4f6f  gcc/testsuite/gcc.dg/tree-ssa/pr60770-1.c
  c1a1214c4f6f4e4d71a1466aa45fbc98  gcc/testsuite/gcc.dg/tree-ssa/pr61090.c
  45898ae21ed46306d601cd4c7d93f545  gcc/testsuite/gcc.dg/tree-ssa/pr61140.c
--- 52426,52432 ----
  3add5403cc3aefec17c98fd16ca42721  gcc/testsuite/gcc.dg/tree-ssa/pr57385.c
  6e5c334c8814768ab3b4bf81240e5d61  gcc/testsuite/gcc.dg/tree-ssa/pr58480.c
  c4bed0849dd869035230ef14c12f5167  gcc/testsuite/gcc.dg/tree-ssa/pr58958.c
! f05d27c97d811559e7ac29c78b717129  gcc/testsuite/gcc.dg/tree-ssa/pr59597.c
  57d2eb9aedc84f2534151f02031e4f6f  gcc/testsuite/gcc.dg/tree-ssa/pr60770-1.c
  c1a1214c4f6f4e4d71a1466aa45fbc98  gcc/testsuite/gcc.dg/tree-ssa/pr61090.c
  45898ae21ed46306d601cd4c7d93f545  gcc/testsuite/gcc.dg/tree-ssa/pr61140.c
*************** c1a1214c4f6f4e4d71a1466aa45fbc98  gcc/te
*** 49724,49730 ****
  6385de463934a70dde788fe6ba5fc47f  gcc/testsuite/gcc.dg/tree-ssa/pr61743-1.c
  feb9a853a0548af696e7d13eeb3a435d  gcc/testsuite/gcc.dg/tree-ssa/pr61743-2.c
  a098963116aba87c5b3e3db8404b7e72  gcc/testsuite/gcc.dg/tree-ssa/pr61839_1.c
! b6bdc9b73d81393380cf8bb76886499a  gcc/testsuite/gcc.dg/tree-ssa/pr61839_2.c
  6b1b7f02cbf760aeffccce0289e06eb0  gcc/testsuite/gcc.dg/tree-ssa/pr61839_3.c
  fdf71b131cfffb1acfa1864e8be83ea3  gcc/testsuite/gcc.dg/tree-ssa/pr61839_4.c
  2a97f529e786df2ff135adfdcea70961  gcc/testsuite/gcc.dg/tree-ssa/pr62112-1.c
--- 52438,52444 ----
  6385de463934a70dde788fe6ba5fc47f  gcc/testsuite/gcc.dg/tree-ssa/pr61743-1.c
  feb9a853a0548af696e7d13eeb3a435d  gcc/testsuite/gcc.dg/tree-ssa/pr61743-2.c
  a098963116aba87c5b3e3db8404b7e72  gcc/testsuite/gcc.dg/tree-ssa/pr61839_1.c
! b7a813d01e30ac7070985bf2267ea5c4  gcc/testsuite/gcc.dg/tree-ssa/pr61839_2.c
  6b1b7f02cbf760aeffccce0289e06eb0  gcc/testsuite/gcc.dg/tree-ssa/pr61839_3.c
  fdf71b131cfffb1acfa1864e8be83ea3  gcc/testsuite/gcc.dg/tree-ssa/pr61839_4.c
  2a97f529e786df2ff135adfdcea70961  gcc/testsuite/gcc.dg/tree-ssa/pr62112-1.c
*************** e3a8c430fd6ca31515a7e1bbea95b6dd  gcc/te
*** 49742,49748 ****
  80ee06c1361a2efc5e45db8d97d08877  gcc/testsuite/gcc.dg/tree-ssa/pr66449.c
  9746cb857a37622734dbbf059cadd7b4  gcc/testsuite/gcc.dg/tree-ssa/pr66726-2.c
  6f286535adafcaa2bd2c8411c48b6c57  gcc/testsuite/gcc.dg/tree-ssa/pr66726-3.c
! b8c92b95a7a3a403ae8106229e562ab9  gcc/testsuite/gcc.dg/tree-ssa/pr66726-4.c
  b482edbf0104ac1d5032061561d34261  gcc/testsuite/gcc.dg/tree-ssa/pr66726.c
  a5d9293bea1c9447a8db52636544596a  gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c
  bb8857e07a5b85d146bcc9aec96d0c1b  gcc/testsuite/gcc.dg/tree-ssa/pr67755.c
--- 52456,52464 ----
  80ee06c1361a2efc5e45db8d97d08877  gcc/testsuite/gcc.dg/tree-ssa/pr66449.c
  9746cb857a37622734dbbf059cadd7b4  gcc/testsuite/gcc.dg/tree-ssa/pr66726-2.c
  6f286535adafcaa2bd2c8411c48b6c57  gcc/testsuite/gcc.dg/tree-ssa/pr66726-3.c
! e819b283cd7b8b9129b416d738503f5e  gcc/testsuite/gcc.dg/tree-ssa/pr66726-4.c
! 4f9b72bf1faf7a7f18adf8cd0b4540a6  gcc/testsuite/gcc.dg/tree-ssa/pr66726-5.c
! 70761e8402af94d5b54ff3e588a0e9e7  gcc/testsuite/gcc.dg/tree-ssa/pr66726-6.c
  b482edbf0104ac1d5032061561d34261  gcc/testsuite/gcc.dg/tree-ssa/pr66726.c
  a5d9293bea1c9447a8db52636544596a  gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c
  bb8857e07a5b85d146bcc9aec96d0c1b  gcc/testsuite/gcc.dg/tree-ssa/pr67755.c
*************** cc336a7b72706a5f447ef6f6f2fa30d0  gcc/te
*** 49756,49770 ****
  9691aa7057f77de2a3cb86f41c76aaa7  gcc/testsuite/gcc.dg/tree-ssa/pr68529-2.c
  e8527fc0af4d4530b771535a495cee62  gcc/testsuite/gcc.dg/tree-ssa/pr68529-3.c
  2aa29e0bd8f7d914f5864d014d548fb7  gcc/testsuite/gcc.dg/tree-ssa/pr68619-1.c
! 94c4e2074159e5182b5168e5f370aac4  gcc/testsuite/gcc.dg/tree-ssa/pr68619-2.c
! 62953eb378b353095e0fb259552176de  gcc/testsuite/gcc.dg/tree-ssa/pr68619-3.c
! 535c7fa074506d9de36818bd96137ddb  gcc/testsuite/gcc.dg/tree-ssa/pr68619-4.c
! 29f2a28e01ed0d201c2ca9327f579b1b  gcc/testsuite/gcc.dg/tree-ssa/pr68619-5.c
  444b256d35c7ed527841c6ca712d587e  gcc/testsuite/gcc.dg/tree-ssa/pr68714.c
  0c78d91dfdb52bc5a13e535cc2b4ec36  gcc/testsuite/gcc.dg/tree-ssa/pr69196-1.c
! 6a1b4ff94b03f62a4921f625f1b11e8d  gcc/testsuite/gcc.dg/tree-ssa/pr69270-2.c
! bc7e1d2ffb2f67bf2188f3d7cf829bb8  gcc/testsuite/gcc.dg/tree-ssa/pr69270-3.c
! 920bbfed79f72b4a90eddd3306648c9b  gcc/testsuite/gcc.dg/tree-ssa/pr69270.c
  4c8881edc71005a1d85370d1a8358a54  gcc/testsuite/gcc.dg/tree-ssa/pr69355.c
  5b019fa45c335f7fb5befbed76021ee5  gcc/testsuite/gcc.dg/tree-ssa/pr69615.c
  da374335b5ce20d724b67b01ce0e71d3  gcc/testsuite/gcc.dg/tree-ssa/pr69666.c
--- 52472,52486 ----
  9691aa7057f77de2a3cb86f41c76aaa7  gcc/testsuite/gcc.dg/tree-ssa/pr68529-2.c
  e8527fc0af4d4530b771535a495cee62  gcc/testsuite/gcc.dg/tree-ssa/pr68529-3.c
  2aa29e0bd8f7d914f5864d014d548fb7  gcc/testsuite/gcc.dg/tree-ssa/pr68619-1.c
! 2ccb14ec7c1d255cacf74ef2359d0a50  gcc/testsuite/gcc.dg/tree-ssa/pr68619-2.c
! 80ad14aa07dabe6df67e07a4e32c995f  gcc/testsuite/gcc.dg/tree-ssa/pr68619-3.c
! 9c6bbcff6fbe7846e9ae80cb5e2f68a9  gcc/testsuite/gcc.dg/tree-ssa/pr68619-4.c
! 2df5cf5afa2e9c390a9405e060947b6b  gcc/testsuite/gcc.dg/tree-ssa/pr68619-5.c
  444b256d35c7ed527841c6ca712d587e  gcc/testsuite/gcc.dg/tree-ssa/pr68714.c
  0c78d91dfdb52bc5a13e535cc2b4ec36  gcc/testsuite/gcc.dg/tree-ssa/pr69196-1.c
! de88dc62a5d0e18cadd56d11d2dc6239  gcc/testsuite/gcc.dg/tree-ssa/pr69270-2.c
! 389896057add755a9a99bd844a3c0cf6  gcc/testsuite/gcc.dg/tree-ssa/pr69270-3.c
! f95a7a27ecfcac20891a4a024d1f82cb  gcc/testsuite/gcc.dg/tree-ssa/pr69270.c
  4c8881edc71005a1d85370d1a8358a54  gcc/testsuite/gcc.dg/tree-ssa/pr69355.c
  5b019fa45c335f7fb5befbed76021ee5  gcc/testsuite/gcc.dg/tree-ssa/pr69615.c
  da374335b5ce20d724b67b01ce0e71d3  gcc/testsuite/gcc.dg/tree-ssa/pr69666.c
*************** e69de51dce3766c5fdf511b7cae45ae2  gcc/te
*** 49879,49885 ****
  5b03cd4f2ede1565fa5509924793e88f  gcc/testsuite/gcc.dg/tree-ssa/pr83403.h
  47d8a98b2d47b4961be0d43f9a0310fb  gcc/testsuite/gcc.dg/tree-ssa/pr83501.c
  c95f9346fdf91a2af21b609136ce6e2b  gcc/testsuite/gcc.dg/tree-ssa/pr83648-2.c
! 1c296504ab2e292b80b2f17f4a8bd1da  gcc/testsuite/gcc.dg/tree-ssa/pr83648.c
  893a1bc278c3ce3874bce3efe709bc89  gcc/testsuite/gcc.dg/tree-ssa/pr83695.c
  8ed1f7332c91bd8bf3aa0d93af04baba  gcc/testsuite/gcc.dg/tree-ssa/pr83907-1.c
  d1c26c609c5d2d65129aebab87fc5fd2  gcc/testsuite/gcc.dg/tree-ssa/pr83907-2.c
--- 52595,52601 ----
  5b03cd4f2ede1565fa5509924793e88f  gcc/testsuite/gcc.dg/tree-ssa/pr83403.h
  47d8a98b2d47b4961be0d43f9a0310fb  gcc/testsuite/gcc.dg/tree-ssa/pr83501.c
  c95f9346fdf91a2af21b609136ce6e2b  gcc/testsuite/gcc.dg/tree-ssa/pr83648-2.c
! 4bf05c69014ffc72d5afeeb71f604eb5  gcc/testsuite/gcc.dg/tree-ssa/pr83648.c
  893a1bc278c3ce3874bce3efe709bc89  gcc/testsuite/gcc.dg/tree-ssa/pr83695.c
  8ed1f7332c91bd8bf3aa0d93af04baba  gcc/testsuite/gcc.dg/tree-ssa/pr83907-1.c
  d1c26c609c5d2d65129aebab87fc5fd2  gcc/testsuite/gcc.dg/tree-ssa/pr83907-2.c
*************** c56985aba27fe45fdf438551dcc4ab69  gcc/te
*** 49952,49959 ****
  1eb325ec61e5d0650119ea5ceb8ef547  gcc/testsuite/gcc.dg/tree-ssa/pr91680.c
  09720c9d63a37b100c4f7496556cfa75  gcc/testsuite/gcc.dg/tree-ssa/pr91866.c
  219fd68451d7c2ad2a2a33ec563c5415  gcc/testsuite/gcc.dg/tree-ssa/pr92056.c
! 99686e486bebacc26b0e47dc8a99351a  gcc/testsuite/gcc.dg/tree-ssa/pr92085-1.c
! dfc83ff803f350d2dce34b00594788f0  gcc/testsuite/gcc.dg/tree-ssa/pr92085-2.c
  83c31db387f7c26758e02c771be7756d  gcc/testsuite/gcc.dg/tree-ssa/pr92163.c
  cb1c522fc333e708aeae36385b2bcb23  gcc/testsuite/gcc.dg/tree-ssa/pr92706-1.c
  9d7b91661314d8dcebc96672f5a310d9  gcc/testsuite/gcc.dg/tree-ssa/pr92706-2.c
--- 52668,52675 ----
  1eb325ec61e5d0650119ea5ceb8ef547  gcc/testsuite/gcc.dg/tree-ssa/pr91680.c
  09720c9d63a37b100c4f7496556cfa75  gcc/testsuite/gcc.dg/tree-ssa/pr91866.c
  219fd68451d7c2ad2a2a33ec563c5415  gcc/testsuite/gcc.dg/tree-ssa/pr92056.c
! decafc32d22e5dd20a9bbabf0b7effa1  gcc/testsuite/gcc.dg/tree-ssa/pr92085-1.c
! c4ac7df95922361922f035e83df195f6  gcc/testsuite/gcc.dg/tree-ssa/pr92085-2.c
  83c31db387f7c26758e02c771be7756d  gcc/testsuite/gcc.dg/tree-ssa/pr92163.c
  cb1c522fc333e708aeae36385b2bcb23  gcc/testsuite/gcc.dg/tree-ssa/pr92706-1.c
  9d7b91661314d8dcebc96672f5a310d9  gcc/testsuite/gcc.dg/tree-ssa/pr92706-2.c
*************** ca014276e5f9cd1e1500f2830781f240  gcc/te
*** 49968,49974 ****
  019fdc71b1f5726bb310324278d3460f  gcc/testsuite/gcc.dg/tree-ssa/pr93121-1.c
  9d9302ffa70de588552c3a3f7b1f1af0  gcc/testsuite/gcc.dg/tree-ssa/pr93121-2.c
  49ce3b8143e38f26a53b650ad7e55830  gcc/testsuite/gcc.dg/tree-ssa/pr93156.c
! 9b7e7c0ab60634eababd236b65f5c04c  gcc/testsuite/gcc.dg/tree-ssa/pr93435.c
  a488a3513c6d93c3c473b1e5f764fa67  gcc/testsuite/gcc.dg/tree-ssa/pr93582-1.c
  2d5896fa7e31ad4151eed1029ef0851c  gcc/testsuite/gcc.dg/tree-ssa/pr93582-10.c
  cd32e7fa486e77e284253738866c686d  gcc/testsuite/gcc.dg/tree-ssa/pr93582-11.c
--- 52684,52690 ----
  019fdc71b1f5726bb310324278d3460f  gcc/testsuite/gcc.dg/tree-ssa/pr93121-1.c
  9d9302ffa70de588552c3a3f7b1f1af0  gcc/testsuite/gcc.dg/tree-ssa/pr93121-2.c
  49ce3b8143e38f26a53b650ad7e55830  gcc/testsuite/gcc.dg/tree-ssa/pr93156.c
! 465f0219115c94014ba26ded3a7670e2  gcc/testsuite/gcc.dg/tree-ssa/pr93435.c
  a488a3513c6d93c3c473b1e5f764fa67  gcc/testsuite/gcc.dg/tree-ssa/pr93582-1.c
  2d5896fa7e31ad4151eed1029ef0851c  gcc/testsuite/gcc.dg/tree-ssa/pr93582-10.c
  cd32e7fa486e77e284253738866c686d  gcc/testsuite/gcc.dg/tree-ssa/pr93582-11.c
*************** c6af84a8aff126c3fa99b857da4a410d  gcc/te
*** 50016,50022 ****
  8e9c05f529c069211365519d5eeba631  gcc/testsuite/gcc.dg/tree-ssa/pr95731.c
  a43f5375ab3cccb18ca71f3f0527e303  gcc/testsuite/gcc.dg/tree-ssa/pr95804.c
  ef25b14aec06c09126d8700e9e6c651e  gcc/testsuite/gcc.dg/tree-ssa/pr95867.c
! 51d0beabe908b726fb4191bd39af0246  gcc/testsuite/gcc.dg/tree-ssa/pr95906.c
  968ccabd73ea2fb554fc4607b0d12540  gcc/testsuite/gcc.dg/tree-ssa/pr96094.c
  f17fd671286e407b5fc734cde17bc88d  gcc/testsuite/gcc.dg/tree-ssa/pr96232-1.c
  d97d04db64402cd822338856f145fec9  gcc/testsuite/gcc.dg/tree-ssa/pr96232-2.c
--- 52732,52738 ----
  8e9c05f529c069211365519d5eeba631  gcc/testsuite/gcc.dg/tree-ssa/pr95731.c
  a43f5375ab3cccb18ca71f3f0527e303  gcc/testsuite/gcc.dg/tree-ssa/pr95804.c
  ef25b14aec06c09126d8700e9e6c651e  gcc/testsuite/gcc.dg/tree-ssa/pr95867.c
! 3fa5aa65dbfa04de9d6f766b9f6059b7  gcc/testsuite/gcc.dg/tree-ssa/pr95906.c
  968ccabd73ea2fb554fc4607b0d12540  gcc/testsuite/gcc.dg/tree-ssa/pr96094.c
  f17fd671286e407b5fc734cde17bc88d  gcc/testsuite/gcc.dg/tree-ssa/pr96232-1.c
  d97d04db64402cd822338856f145fec9  gcc/testsuite/gcc.dg/tree-ssa/pr96232-2.c
*************** a69ef08a707c656293089717bb0b3f16  gcc/te
*** 50033,50041 ****
  a0647084804b90be3e8bdad82c7777a9  gcc/testsuite/gcc.dg/tree-ssa/pr96685-3.c
  a73a95372785101c5f4de5e36a62d6a1  gcc/testsuite/gcc.dg/tree-ssa/pr96688.c
  70188bafba9d185995a25fd8835ab428  gcc/testsuite/gcc.dg/tree-ssa/pr96691.c
! 79c2af3b956e595ff8675e6c9039ee00  gcc/testsuite/gcc.dg/tree-ssa/pr96730.c
! 8c549fc58576f7fea896a3ca99d51eae  gcc/testsuite/gcc.dg/tree-ssa/pr96779-disabled.c
! 1fa5fe03c2b3fe01e5ba5ecd2cba3da6  gcc/testsuite/gcc.dg/tree-ssa/pr96779.c
  83c579881e1867fc68ce84f7d2d6c782  gcc/testsuite/gcc.dg/tree-ssa/pr96782.c
  f1814d9f48268164f5abca2ef9ff90f6  gcc/testsuite/gcc.dg/tree-ssa/pr96789.c
  7ce01d5539f42257afefbfc03dd79f4c  gcc/testsuite/gcc.dg/tree-ssa/pr96820.c
--- 52749,52757 ----
  a0647084804b90be3e8bdad82c7777a9  gcc/testsuite/gcc.dg/tree-ssa/pr96685-3.c
  a73a95372785101c5f4de5e36a62d6a1  gcc/testsuite/gcc.dg/tree-ssa/pr96688.c
  70188bafba9d185995a25fd8835ab428  gcc/testsuite/gcc.dg/tree-ssa/pr96691.c
! 7b531ae0c6a470cf7a1f01a121524cb9  gcc/testsuite/gcc.dg/tree-ssa/pr96730.c
! daeb1c528ad4784407e7da4fe6db99d8  gcc/testsuite/gcc.dg/tree-ssa/pr96779-disabled.c
! 9522287958089c6c057c70702b091d11  gcc/testsuite/gcc.dg/tree-ssa/pr96779.c
  83c579881e1867fc68ce84f7d2d6c782  gcc/testsuite/gcc.dg/tree-ssa/pr96782.c
  f1814d9f48268164f5abca2ef9ff90f6  gcc/testsuite/gcc.dg/tree-ssa/pr96789.c
  7ce01d5539f42257afefbfc03dd79f4c  gcc/testsuite/gcc.dg/tree-ssa/pr96820.c
*************** baea640f2f5ede46363c43f03abd38cb  gcc/te
*** 50056,50063 ****
  7110147a3d242779ed037a4107bc56a9  gcc/testsuite/gcc.dg/tree-ssa/pr98182.c
  4f67b77cce4d4a67193b302faa4ed10b  gcc/testsuite/gcc.dg/tree-ssa/pr98265.C
  2802e4a2ba6a403181f297d6a0a30fe5  gcc/testsuite/gcc.dg/tree-ssa/pr98455.c
! 3725366f65490df73d15cafa94bca1d5  gcc/testsuite/gcc.dg/tree-ssa/pr98513.c
! 93dba0e34b479058be098d254f289a3b  gcc/testsuite/gcc.dg/tree-ssa/pr98737-1.c
  b72700d1405dc73ecb0cb4aae1b592f5  gcc/testsuite/gcc.dg/tree-ssa/pr98737-2.c
  8cf2154b162cdab518ec9a15e4f0f4ce  gcc/testsuite/gcc.dg/tree-ssa/pr98953.c
  566f2cf5c36f26ba96a5827e3ad9322f  gcc/testsuite/gcc.dg/tree-ssa/pr99142.c
--- 52772,52779 ----
  7110147a3d242779ed037a4107bc56a9  gcc/testsuite/gcc.dg/tree-ssa/pr98182.c
  4f67b77cce4d4a67193b302faa4ed10b  gcc/testsuite/gcc.dg/tree-ssa/pr98265.C
  2802e4a2ba6a403181f297d6a0a30fe5  gcc/testsuite/gcc.dg/tree-ssa/pr98455.c
! 320534e9f39f1cf4ef20e66c87f47c92  gcc/testsuite/gcc.dg/tree-ssa/pr98513.c
! 589535bc2a8746fcdf9998d8902ffabd  gcc/testsuite/gcc.dg/tree-ssa/pr98737-1.c
  b72700d1405dc73ecb0cb4aae1b592f5  gcc/testsuite/gcc.dg/tree-ssa/pr98737-2.c
  8cf2154b162cdab518ec9a15e4f0f4ce  gcc/testsuite/gcc.dg/tree-ssa/pr98953.c
  566f2cf5c36f26ba96a5827e3ad9322f  gcc/testsuite/gcc.dg/tree-ssa/pr99142.c
*************** ade2a31f339a2cef5d9ebcd9b1f2cb67  gcc/te
*** 50066,50091 ****
  4a41d61459a69194154301316b5463c8  gcc/testsuite/gcc.dg/tree-ssa/pr99739.c
  25bc0c9f6fb706db98fb7274413f0086  gcc/testsuite/gcc.dg/tree-ssa/pr99793.c
  e6c9f2dd9d7405dee4bfd5d6d0fc455f  gcc/testsuite/gcc.dg/tree-ssa/pred-1.c
! 073bed4b8270e0ae3beaf5098f0630da  gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
! ec45787b9b781da6181e7960a8cb76f0  gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c
! dc84bc461e507299eafa5a6975e4eded  gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c
! a01af62b0a92d61ae163e5294ef53944  gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c
! 22e897ef51f75d6342498f7c026af634  gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c
  c16e2519f7131c283e7aee755fb3f7de  gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c
! 71f3764772c5ea1c19be28f21548effd  gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c
! 8ccb49d15d02c02934fe942ee613dd0a  gcc/testsuite/gcc.dg/tree-ssa/predcom-8.c
! c872ff5dab2de3b0d5dc1aeaa4b7eda7  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c
! d4f7d4324a529b1938fb625888d2024d  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c
! 1206a8ad1fe06868f7b06f02d71cfa32  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c
! 7cabc27bc668f088021b366c1fb896e1  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c
! 145622925ffd732406b1b910be63998c  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c
! 59d9653b1601b7829155f2638ba30498  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c
! 6088369105f4efe7eb45ad7a363fb3ab  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c
! d61d9e0865c3291b2a168f2caad031b5  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c
! b907972571b881cc3feaf8a5cfaaad81  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c
! 053987c325ac49de1828cb89f01ecede  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c
! 1d80600c80442239544ab549170f2796  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c
! 93fcde4e41195522bad7807a40f99e79  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c
  69de4b2d3d49a610200ec75f43a8fcc2  gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c
  7079d4a5b32b0fb90f75d41681a18ef5  gcc/testsuite/gcc.dg/tree-ssa/prefetch-4.c
  702b5dc387dece55e17d16332ba0c040  gcc/testsuite/gcc.dg/tree-ssa/prefetch-5.c
--- 52782,52811 ----
  4a41d61459a69194154301316b5463c8  gcc/testsuite/gcc.dg/tree-ssa/pr99739.c
  25bc0c9f6fb706db98fb7274413f0086  gcc/testsuite/gcc.dg/tree-ssa/pr99793.c
  e6c9f2dd9d7405dee4bfd5d6d0fc455f  gcc/testsuite/gcc.dg/tree-ssa/pred-1.c
! bdfc875aa987009450b37436ca4f2d74  gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
! 54b7d9fd32f2069197b1e3cfdc9c2c3f  gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c
! 26e5bfe2e33b57ca17335606af9bba7b  gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c
! adf16bebc6f6e0a3cba7f2af2298ca3f  gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c
! 82680605c186b864a1becc5deb83e345  gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c
  c16e2519f7131c283e7aee755fb3f7de  gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c
! 1edc378aa83efe6a301fb07d1e704d3b  gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c
! b8b2b0c1df8fac526583169e86def318  gcc/testsuite/gcc.dg/tree-ssa/predcom-8.c
! 3528666a0b307c78426930f2e66b8aef  gcc/testsuite/gcc.dg/tree-ssa/predcom-9.c
! 7ec0bd77e17316c9e4ff298afda32304  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-1.c
! 9b80702f930ef001796ad9ca51b8bd30  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-10.c
! 9bb26d9219fc91b2ebadd329bac2d87e  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-11.c
! 8247b090c65343cc62331be1c0f2b338  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-12.c
! b2882b33d02dff1afc9a3f0f21091eca  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-2.c
! 445f9dffde40b898e27e6f8b9e8221fd  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c
! 18d0b09217eed4123f35017bcbe04118  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-4.c
! 9e77608146f96b613332b9fafc705123  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-5.c
! 305db603f6824609c0699955efc709e8  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-6.c
! 44a3962cc99aa8fe2b6c4cf9e30323dc  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-7.c
! 376a20e0039761849e956b27da01c0d6  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-8.c
! 4976ebdc13dc16039446087b31b4aae9  gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-9.c
! e448afd26a97b254518f8f2ddd16f428  gcc/testsuite/gcc.dg/tree-ssa/predict-1.c
! ec935317c41ed1d9a8f3a5d3c63e2625  gcc/testsuite/gcc.dg/tree-ssa/predict-2.c
! 6202b9b6c4570bd1c3769099e7df2630  gcc/testsuite/gcc.dg/tree-ssa/predict-3.c
  69de4b2d3d49a610200ec75f43a8fcc2  gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c
  7079d4a5b32b0fb90f75d41681a18ef5  gcc/testsuite/gcc.dg/tree-ssa/prefetch-4.c
  702b5dc387dece55e17d16332ba0c040  gcc/testsuite/gcc.dg/tree-ssa/prefetch-5.c
*************** fc62a023d1086f7d7f3b273491f38574  gcc/te
*** 50093,50114 ****
  aef854f254d834ddb7e56d1cfbc87d8c  gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c
  241191df5ff81b05eaeae07437bc5a50  gcc/testsuite/gcc.dg/tree-ssa/prefetch-8.c
  ebfee5909ffbe595960867349f1a0d2e  gcc/testsuite/gcc.dg/tree-ssa/prefetch-9.c
! b03938ad443132b24cbf1ec45e7fc6df  gcc/testsuite/gcc.dg/tree-ssa/pta-callused.c
  2889a37e4abece89645116192598e9c1  gcc/testsuite/gcc.dg/tree-ssa/pta-escape-1.c
  0eab172a88acb62457c2ca2e4e478e99  gcc/testsuite/gcc.dg/tree-ssa/pta-escape-2.c
  b3183a8068ff42b9045e5c2c03670e85  gcc/testsuite/gcc.dg/tree-ssa/pta-escape-3.c
! fe1c318ea96ffe144e3739139fe328d5  gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
! 91c0798da36e2a645f1be9f771afe271  gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
! dbd0bf7a5c79e66ce528e77a937779b7  gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
  2f310b89b6ab546f5e70431ba049c923  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-1.c
! 9975b9ee1e191120cc40a3a199df785f  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-2.c
! bcf9704e688257d7a8088a9c5b489b91  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-3.c
  62bc304e06dd9fcd02e6fed5c2caa3fd  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-4.c
  45c828cd1080992aefbeab607fd6ec49  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-5.c
  45e9351a897d53e0e62a4f45bfdcb931  gcc/testsuite/gcc.dg/tree-ssa/reassoc-1.c
  2871dbb9f178364c514c54860eff37b1  gcc/testsuite/gcc.dg/tree-ssa/reassoc-10.c
  6d7e130191af5b0e41cbbb091bae44fd  gcc/testsuite/gcc.dg/tree-ssa/reassoc-11.c
! 359680a362257598d520ff3fdbeeb843  gcc/testsuite/gcc.dg/tree-ssa/reassoc-12.c
  ff031104eacb3a697a48b098004a96b5  gcc/testsuite/gcc.dg/tree-ssa/reassoc-13.c
  a4015f4375bc9d2bb01517d8250f6cda  gcc/testsuite/gcc.dg/tree-ssa/reassoc-14.c
  aca924bbb82bb5c139659ef80a19bc73  gcc/testsuite/gcc.dg/tree-ssa/reassoc-15.c
--- 52813,52839 ----
  aef854f254d834ddb7e56d1cfbc87d8c  gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c
  241191df5ff81b05eaeae07437bc5a50  gcc/testsuite/gcc.dg/tree-ssa/prefetch-8.c
  ebfee5909ffbe595960867349f1a0d2e  gcc/testsuite/gcc.dg/tree-ssa/prefetch-9.c
! cac8053b628ec818e1362cd35d589c97  gcc/testsuite/gcc.dg/tree-ssa/pta-callused.c
  2889a37e4abece89645116192598e9c1  gcc/testsuite/gcc.dg/tree-ssa/pta-escape-1.c
  0eab172a88acb62457c2ca2e4e478e99  gcc/testsuite/gcc.dg/tree-ssa/pta-escape-2.c
  b3183a8068ff42b9045e5c2c03670e85  gcc/testsuite/gcc.dg/tree-ssa/pta-escape-3.c
! caec31b6e1784bb308ed0a58b70ee166  gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
! c4ca2d65d14522cbf809425090d9d2cf  gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
! 446b09e6b417720ef42dfcaf25665e4b  gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
! 5bda4ff113aae302609d4e4e125cbcd8  gcc/testsuite/gcc.dg/tree-ssa/pta-return-1.c
! e3f7b73b72098713101b4f74589061bb  gcc/testsuite/gcc.dg/tree-ssa/range-sincos-2.c
! 86f099690609dcdb2c460eac8a8d7e1b  gcc/testsuite/gcc.dg/tree-ssa/range-sincos.c
! ced3031379929de208951f3fd90a05ff  gcc/testsuite/gcc.dg/tree-ssa/range-sqrt-2.c
! bd25c9b85f6e659052b4e935f54a9b92  gcc/testsuite/gcc.dg/tree-ssa/range-sqrt.c
  2f310b89b6ab546f5e70431ba049c923  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-1.c
! 787b70e51a730317884e2a14dc1fc256  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-2.c
! 815cc48e3b1a6ff57839378f476eaf64  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-3.c
  62bc304e06dd9fcd02e6fed5c2caa3fd  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-4.c
  45c828cd1080992aefbeab607fd6ec49  gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-5.c
  45e9351a897d53e0e62a4f45bfdcb931  gcc/testsuite/gcc.dg/tree-ssa/reassoc-1.c
  2871dbb9f178364c514c54860eff37b1  gcc/testsuite/gcc.dg/tree-ssa/reassoc-10.c
  6d7e130191af5b0e41cbbb091bae44fd  gcc/testsuite/gcc.dg/tree-ssa/reassoc-11.c
! dece45b0c9e52ad0c21444f39c7901d4  gcc/testsuite/gcc.dg/tree-ssa/reassoc-12.c
  ff031104eacb3a697a48b098004a96b5  gcc/testsuite/gcc.dg/tree-ssa/reassoc-13.c
  a4015f4375bc9d2bb01517d8250f6cda  gcc/testsuite/gcc.dg/tree-ssa/reassoc-14.c
  aca924bbb82bb5c139659ef80a19bc73  gcc/testsuite/gcc.dg/tree-ssa/reassoc-15.c
*************** ad0c910858cba8a5b3996305d7d5447d  gcc/te
*** 50142,50148 ****
  fb8e1542fc1472c62c777c39fb27803a  gcc/testsuite/gcc.dg/tree-ssa/reassoc-40.c
  0945a4a5876e31c0c04a5dcd26ecb09b  gcc/testsuite/gcc.dg/tree-ssa/reassoc-41.c
  854b9533e402a2c0f1a5576704a59839  gcc/testsuite/gcc.dg/tree-ssa/reassoc-42.c
! bc54a55ac78e555806e7b448f49728b0  gcc/testsuite/gcc.dg/tree-ssa/reassoc-43.c
  40306bba57979317f1b6ac5abc1c61aa  gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c
  43cedee8ba1282cf6b6558cafbaf9c24  gcc/testsuite/gcc.dg/tree-ssa/reassoc-45.c
  31c8f83c1a544753f4baf31acc63a283  gcc/testsuite/gcc.dg/tree-ssa/reassoc-46.c
--- 52867,52873 ----
  fb8e1542fc1472c62c777c39fb27803a  gcc/testsuite/gcc.dg/tree-ssa/reassoc-40.c
  0945a4a5876e31c0c04a5dcd26ecb09b  gcc/testsuite/gcc.dg/tree-ssa/reassoc-41.c
  854b9533e402a2c0f1a5576704a59839  gcc/testsuite/gcc.dg/tree-ssa/reassoc-42.c
! 9770271c8160893f7b5dc581405acf3e  gcc/testsuite/gcc.dg/tree-ssa/reassoc-43.c
  40306bba57979317f1b6ac5abc1c61aa  gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c
  43cedee8ba1282cf6b6558cafbaf9c24  gcc/testsuite/gcc.dg/tree-ssa/reassoc-45.c
  31c8f83c1a544753f4baf31acc63a283  gcc/testsuite/gcc.dg/tree-ssa/reassoc-46.c
*************** d66408c518c8dabc34c03159ce0ee317  gcc/te
*** 50173,50180 ****
--- 52898,52907 ----
  7f3be08ea2d3e850a92a25dedb1a1835  gcc/testsuite/gcc.dg/tree-ssa/restrict-7.c
  9439ae3a1e07c16e1c5b152f81a0de70  gcc/testsuite/gcc.dg/tree-ssa/restrict-8.c
  0d2c77f887c7650308ee4834b850c7f9  gcc/testsuite/gcc.dg/tree-ssa/restrict-9.c
+ a16e6045a67747df1bbf4e0359c3ee89  gcc/testsuite/gcc.dg/tree-ssa/return-value-range-1.c
  cd3e3a590031a7862742691f55854a22  gcc/testsuite/gcc.dg/tree-ssa/sccp-1.c
  63d4e72c76cf7ed65099b2b2f48ab339  gcc/testsuite/gcc.dg/tree-ssa/sccp-2.c
+ 42b99510cc5b8fea4f6a5325548506f6  gcc/testsuite/gcc.dg/tree-ssa/sccp-3.c
  52daa8eedbd22c7715c760e3a07d16d9  gcc/testsuite/gcc.dg/tree-ssa/scev-1.c
  d49a52812d0306aed6b4afd71f9a8985  gcc/testsuite/gcc.dg/tree-ssa/scev-10.c
  effc8031a8163b496d4a05b5aed0a92d  gcc/testsuite/gcc.dg/tree-ssa/scev-11.c
*************** f217e7eaaf0fa982496dcfbf0c1b65fa  gcc/te
*** 50183,50191 ****
  8c83b125bec2afaa6eba2f0385dc4625  gcc/testsuite/gcc.dg/tree-ssa/scev-14.c
  d396c36b9f0d747b966a2da9958bc3ac  gcc/testsuite/gcc.dg/tree-ssa/scev-15.c
  4323482b616b668100a20fa9ef8249fa  gcc/testsuite/gcc.dg/tree-ssa/scev-2.c
- 8962c81ea440e5058d174ddc6f24ab6b  gcc/testsuite/gcc.dg/tree-ssa/scev-3.c
- 47465c4eb02aee6a0f4488afd8f40d56  gcc/testsuite/gcc.dg/tree-ssa/scev-4.c
- dd68d04a67a361d839dfa171034bb8e7  gcc/testsuite/gcc.dg/tree-ssa/scev-5.c
  219839db1cd5ee662a1d6dfd20d04a13  gcc/testsuite/gcc.dg/tree-ssa/scev-6.c
  2a4d896a7956f73ba5c280f397c5d479  gcc/testsuite/gcc.dg/tree-ssa/scev-7.c
  617f17f9d345921cc3d44ce933023f61  gcc/testsuite/gcc.dg/tree-ssa/scev-8.c
--- 52910,52915 ----
*************** dd68d04a67a361d839dfa171034bb8e7  gcc/te
*** 50196,50202 ****
  a2527727970eaab3e3d043e5e4379256  gcc/testsuite/gcc.dg/tree-ssa/slsr-10.c
  549723cdcfb863f339c41fe0af39103f  gcc/testsuite/gcc.dg/tree-ssa/slsr-11.c
  9ce7448aa1ff873d9eeb0c63415fb5f7  gcc/testsuite/gcc.dg/tree-ssa/slsr-12.c
! abfff43cfd57b375e852c60474db6e1d  gcc/testsuite/gcc.dg/tree-ssa/slsr-13.c
  fc528be3158a0d09309e336766dd346e  gcc/testsuite/gcc.dg/tree-ssa/slsr-14.c
  961ace88dde969fcb700495e23b3f51b  gcc/testsuite/gcc.dg/tree-ssa/slsr-15.c
  04fdcaeb035d2f9392f0f410c157d0c7  gcc/testsuite/gcc.dg/tree-ssa/slsr-16.c
--- 52920,52926 ----
  a2527727970eaab3e3d043e5e4379256  gcc/testsuite/gcc.dg/tree-ssa/slsr-10.c
  549723cdcfb863f339c41fe0af39103f  gcc/testsuite/gcc.dg/tree-ssa/slsr-11.c
  9ce7448aa1ff873d9eeb0c63415fb5f7  gcc/testsuite/gcc.dg/tree-ssa/slsr-12.c
! 1a4ffd71baf2ac9d35c50ae9dd3a8c73  gcc/testsuite/gcc.dg/tree-ssa/slsr-13.c
  fc528be3158a0d09309e336766dd346e  gcc/testsuite/gcc.dg/tree-ssa/slsr-14.c
  961ace88dde969fcb700495e23b3f51b  gcc/testsuite/gcc.dg/tree-ssa/slsr-15.c
  04fdcaeb035d2f9392f0f410c157d0c7  gcc/testsuite/gcc.dg/tree-ssa/slsr-16.c
*************** c9d54e802a416f03458eaee182da0547  gcc/te
*** 50234,50249 ****
  47f4aa00fc6ef30ae0f1b03e5733a572  gcc/testsuite/gcc.dg/tree-ssa/slsr-7.c
  f5cbb278145ac126dcce52ba55a7e986  gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c
  a033da229d97e775dc989a1095ff34b8  gcc/testsuite/gcc.dg/tree-ssa/slsr-9.c
! 1dff1a4b39584300d227d7cd277f036c  gcc/testsuite/gcc.dg/tree-ssa/split-path-1.c
  374f7d1e0bcd74c6255d65e104a73dbf  gcc/testsuite/gcc.dg/tree-ssa/split-path-10.c
  6f118f8784310e78f72417963dea9249  gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c
! 7f70f1f8957026ce7c76f2d7f8173762  gcc/testsuite/gcc.dg/tree-ssa/split-path-12.c
  90e953eef4724c1c9123f8b3133d04ea  gcc/testsuite/gcc.dg/tree-ssa/split-path-2.c
! 18bf42127373d760055aeed15ce02990  gcc/testsuite/gcc.dg/tree-ssa/split-path-3.c
! bb6b540e48f8be7df8c55c27a5182535  gcc/testsuite/gcc.dg/tree-ssa/split-path-4.c
  82281eb4072e89865db7b58f503ee3d3  gcc/testsuite/gcc.dg/tree-ssa/split-path-5.c
! 5a45c0480607e4a3dcb00e6e103b66bc  gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c
! 5fbb9ae8c2667915da5de25c4368db74  gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c
  cc58f2bbf63f20c83f4c8c0d2d1348d8  gcc/testsuite/gcc.dg/tree-ssa/split-path-8.c
  44357fdb9d6f097cddb4a49dbb427a27  gcc/testsuite/gcc.dg/tree-ssa/split-path-9.c
  5497d0691f379f1d688647db6c95cc34  gcc/testsuite/gcc.dg/tree-ssa/sra-1.c
--- 52958,52973 ----
  47f4aa00fc6ef30ae0f1b03e5733a572  gcc/testsuite/gcc.dg/tree-ssa/slsr-7.c
  f5cbb278145ac126dcce52ba55a7e986  gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c
  a033da229d97e775dc989a1095ff34b8  gcc/testsuite/gcc.dg/tree-ssa/slsr-9.c
! 42cfda00a4e3f590579d9164da8db652  gcc/testsuite/gcc.dg/tree-ssa/split-path-1.c
  374f7d1e0bcd74c6255d65e104a73dbf  gcc/testsuite/gcc.dg/tree-ssa/split-path-10.c
  6f118f8784310e78f72417963dea9249  gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c
! 84aa833acb5b0b615f7f68aa3b7e2469  gcc/testsuite/gcc.dg/tree-ssa/split-path-12.c
  90e953eef4724c1c9123f8b3133d04ea  gcc/testsuite/gcc.dg/tree-ssa/split-path-2.c
! df2fef34213133c5afed537f489aca64  gcc/testsuite/gcc.dg/tree-ssa/split-path-3.c
! d992ba599bfc7773921562d11d02f7da  gcc/testsuite/gcc.dg/tree-ssa/split-path-4.c
  82281eb4072e89865db7b58f503ee3d3  gcc/testsuite/gcc.dg/tree-ssa/split-path-5.c
! 78efd9666eb82f0d3c1c7ba6a4e81eae  gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c
! ff3476556b9ca9f0a5f0389b2522eefa  gcc/testsuite/gcc.dg/tree-ssa/split-path-7.c
  cc58f2bbf63f20c83f4c8c0d2d1348d8  gcc/testsuite/gcc.dg/tree-ssa/split-path-8.c
  44357fdb9d6f097cddb4a49dbb427a27  gcc/testsuite/gcc.dg/tree-ssa/split-path-9.c
  5497d0691f379f1d688647db6c95cc34  gcc/testsuite/gcc.dg/tree-ssa/sra-1.c
*************** ddf9315dbac20ff7fbce56f78fda6731  gcc/te
*** 50254,50261 ****
  f9adc7e80f19a36d482f8128b08df58a  gcc/testsuite/gcc.dg/tree-ssa/sra-14.c
  fd23dcd14579c074e4cb9e73391c0fcc  gcc/testsuite/gcc.dg/tree-ssa/sra-15.c
  e1fed1df34fa3695c5fbf10de58a1b6c  gcc/testsuite/gcc.dg/tree-ssa/sra-16.c
! c836150323c5e0e0e4856cf5491062a7  gcc/testsuite/gcc.dg/tree-ssa/sra-17.c
! ba1bbedcfde4fce4a0a1bd7e1461b57d  gcc/testsuite/gcc.dg/tree-ssa/sra-18.c
  0a26e4c4175f91f74a541be7742e2dc3  gcc/testsuite/gcc.dg/tree-ssa/sra-2.c
  19ac0b026345992c792186914bb9e67e  gcc/testsuite/gcc.dg/tree-ssa/sra-20.c
  1a24f5c1bcd2bda699e880e864e1652f  gcc/testsuite/gcc.dg/tree-ssa/sra-3.c
--- 52978,52985 ----
  f9adc7e80f19a36d482f8128b08df58a  gcc/testsuite/gcc.dg/tree-ssa/sra-14.c
  fd23dcd14579c074e4cb9e73391c0fcc  gcc/testsuite/gcc.dg/tree-ssa/sra-15.c
  e1fed1df34fa3695c5fbf10de58a1b6c  gcc/testsuite/gcc.dg/tree-ssa/sra-16.c
! d47f18a18531e7a89ee451079bd5ba75  gcc/testsuite/gcc.dg/tree-ssa/sra-17.c
! da62e9a8f7b484225d8569b628dfad35  gcc/testsuite/gcc.dg/tree-ssa/sra-18.c
  0a26e4c4175f91f74a541be7742e2dc3  gcc/testsuite/gcc.dg/tree-ssa/sra-2.c
  19ac0b026345992c792186914bb9e67e  gcc/testsuite/gcc.dg/tree-ssa/sra-20.c
  1a24f5c1bcd2bda699e880e864e1652f  gcc/testsuite/gcc.dg/tree-ssa/sra-3.c
*************** e92489c90dd47c31b76500ce339319b1  gcc/te
*** 50265,50270 ****
--- 52989,52995 ----
  3a260fe33e94848cf839cd35d19d489f  gcc/testsuite/gcc.dg/tree-ssa/sra-7.c
  97b651654f38659b8324ea2f737ecd20  gcc/testsuite/gcc.dg/tree-ssa/sra-8.c
  7b3f5a61b9f4a3f5a778aab896139fe2  gcc/testsuite/gcc.dg/tree-ssa/sra-9.c
+ 677df0479e77e329b2cee6fbc674ed5f  gcc/testsuite/gcc.dg/tree-ssa/sra-longjmp-1.c
  b25208e2c31a217147d4f793dbfb7cb8  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c
  6b25812d84cb808691e7459f2ec58990  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
  d024d06922004215bb3d85a5e207ece3  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c
*************** d518651c3d7549162b3704956a798ca6  gcc/te
*** 50297,50303 ****
  d205ff4a7ea20fa74fa2ce48df212443  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-38.c
  22eb5bf1dae656cba392dcf7143de995  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-39.c
  a89cc51f8eed91ff9f67a03136fadfc2  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-40.c
! 9f43a2b46c3c7518c4325720e6dfe2a1  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-41.c
  da74be31fe6f59d63f8df06e088dd2de  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-42.c
  53b3235f987a5fda4292f25d2b007ef6  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-43.c
  f7cce43d31e9f12959af7cf644592290  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-7.c
--- 53022,53028 ----
  d205ff4a7ea20fa74fa2ce48df212443  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-38.c
  22eb5bf1dae656cba392dcf7143de995  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-39.c
  a89cc51f8eed91ff9f67a03136fadfc2  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-40.c
! deec482a9ac1be670c63e41f8f6c51b4  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-41.c
  da74be31fe6f59d63f8df06e088dd2de  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-42.c
  53b3235f987a5fda4292f25d2b007ef6  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-43.c
  f7cce43d31e9f12959af7cf644592290  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-7.c
*************** b596f72df33a0229e9487dc91cf6fc0f  gcc/te
*** 50314,50323 ****
  867e58b89d0d7e5db1ae140b1b97f4ce  gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-7.c
  b7ccd5f262237601ddd937d39599c479  gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-8.c
  fe380a1f1df354382cdc2b0804d55603  gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-9.c
! f1f638198cff2b8c357994d67d496cac  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-branch-1.c
  e666ad14b4ed9af521fe3321b676a452  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c
  8a64614ddb6fafb7fd2cde19df7908b4  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c
! 35fe651ba16877b7b82da8181a1b6e5d  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-2.c
  0b33d127d9be03423c182ddedafe0447  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-3.c
  0e4a93b4f8ef0ea9a03525280c2e9e66  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-4.c
  b8c4472d1c80ee7abb4e274e617c5565  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-5.c
--- 53039,53048 ----
  867e58b89d0d7e5db1ae140b1b97f4ce  gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-7.c
  b7ccd5f262237601ddd937d39599c479  gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-8.c
  fe380a1f1df354382cdc2b0804d55603  gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-9.c
! f948f53265f6c4cd6b3a22d571852b66  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-branch-1.c
  e666ad14b4ed9af521fe3321b676a452  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c
  8a64614ddb6fafb7fd2cde19df7908b4  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c
! 6dc959c11d07d7b2d5247c74e35b29e0  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-2.c
  0b33d127d9be03423c182ddedafe0447  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-3.c
  0e4a93b4f8ef0ea9a03525280c2e9e66  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-4.c
  b8c4472d1c80ee7abb4e274e617c5565  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-5.c
*************** c5656fdca6aa193bc08fd9469a34c84b  gcc/te
*** 50329,50338 ****
  984549568f3a12694d9542f445b224cd  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c
  64e7c8e4ccc4b1ec9f49e584741aeb7e  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-10.c
  faf8cc903da4c81e5fd131b67777d586  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-11.c
! cd25a9c6e41e0218fcc1bff90155e715  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-12.c
! e8b76a04bfe9ee86c58f5bc8c293fbba  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-13.c
! cb116123611aabec34a5f7821fa63a02  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-14.c
! 922d1f9f1f6ab599216e118d568912cf  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-15.c
  8e3146c2955212f79fee09247532b9a8  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-16.c
  6a062095cfc49b033ae64a9b8f6bb271  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-17.c
  0b5603138ce50a545e780a5b9a561765  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2b.c
--- 53054,53063 ----
  984549568f3a12694d9542f445b224cd  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c
  64e7c8e4ccc4b1ec9f49e584741aeb7e  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-10.c
  faf8cc903da4c81e5fd131b67777d586  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-11.c
! 0f4856d5daa699bf1fe8d45a0a045dd6  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-12.c
! 5ac19a616d1940367d7d5df6df997edb  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-13.c
! c2227dca1b48f6238568121c66c0d632  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-14.c
! c80e73a06995d8806bc8a56ee1df1346  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-15.c
  8e3146c2955212f79fee09247532b9a8  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-16.c
  6a062095cfc49b033ae64a9b8f6bb271  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-17.c
  0b5603138ce50a545e780a5b9a561765  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2b.c
*************** bcc0e3162deeb1a11b7daf4065e6b405  gcc/te
*** 50347,50353 ****
  de890ed0b8a4a8f0e19572bf759856a3  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-8.c
  1e01eee87c695d67cde163a4530069b0  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-9.c
  9131f70d5244737552818651f478cdc5  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-1.c
! 7960eee1bc3ae6b98fcb5222961a49de  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c
  5ae3143599b54a81465899a7bf149db4  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c
  2665194cfb7a053e25e39b5377cfa687  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-12.c
  8fec2ca26e35fb29b74885c018a8bda8  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-13.c
--- 53072,53078 ----
  de890ed0b8a4a8f0e19572bf759856a3  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-8.c
  1e01eee87c695d67cde163a4530069b0  gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-9.c
  9131f70d5244737552818651f478cdc5  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-1.c
! 458db85f703d8310e662378d7ea5b0ac  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c
  5ae3143599b54a81465899a7bf149db4  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c
  2665194cfb7a053e25e39b5377cfa687  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-12.c
  8fec2ca26e35fb29b74885c018a8bda8  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-13.c
*************** effa2b4f13ad5537618bfe52bbce3ac7  gcc/te
*** 50361,50368 ****
  f3c1018cd7257cd934c6df52bc0e7440  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-20.c
  33ae9727bb74ef8f4880c77b0c67c256  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-21.c
  f7e20155bdbd371f097bd98615d07829  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-24.c
! 9b065a37e7fbc662c999af80c73b937c  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-25.c
! ccb017814c7da66053731e3b0d543053  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-26.c
  afe8feb8b27c744a88b97d9ea3a344a1  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c
  3f557126af3b8bbf78f827a857103325  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-29.c
  58f01e588bb6eda6cadea1242d43f6a2  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-3.c
--- 53086,53093 ----
  f3c1018cd7257cd934c6df52bc0e7440  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-20.c
  33ae9727bb74ef8f4880c77b0c67c256  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-21.c
  f7e20155bdbd371f097bd98615d07829  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-24.c
! 3c40032af867bf26be68dba50a358e3f  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-25.c
! 683351f66e4d3aca32ee2346273576b8  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-26.c
  afe8feb8b27c744a88b97d9ea3a344a1  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c
  3f557126af3b8bbf78f827a857103325  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-29.c
  58f01e588bb6eda6cadea1242d43f6a2  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-3.c
*************** dbb4751df5b581df2bf59314c3a16ebf  gcc/te
*** 50384,50389 ****
--- 53109,53115 ----
  789058e5fe3d3df6b624fcf249f795c6  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-44.c
  34e7711e9599a9e06c0484e2d330ab6a  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-45.c
  2d90cf283a134945d0ba42c6d39a54da  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-46.c
+ a2846d57ec83eed658cd1060b55e2581  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-47.c
  8464edd661b6724b6cc8a6c0591e9ada  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-5.c
  d67df09df0e5c754eb61edc5766cd64b  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c
  e61169ee1fb9fc84f1d8b0d413a8a21b  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-7.c
*************** e5f1a43c747faec63c35af79e768d4a5  gcc/te
*** 50393,50398 ****
--- 53119,53126 ----
  c1d1b89464c021a62101f69087a9fc75  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
  e38a8e54b4ea0d0d8fd4e9176e26de28  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-100.c
  4c8f24912f15202c6672c6017ec6d769  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-101.c
+ c00143ba60133588bfbe318454aa251f  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-102.c
+ 1c953f589e84249a6420f207f2c26c21  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-104.c
  5561c38451474a42839647e4e156c010  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-11.c
  5561c38451474a42839647e4e156c010  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-12.c
  b95088c9ed88a484349d681f36871312  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-13.c
*************** d8e76aa1a22aab10e268cd387ef24fae  gcc/te
*** 50411,50417 ****
  24c4df9086aa14575861479a9d443298  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-25.c
  ae4edcabb9f0a3c23740e5f9828ec494  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-26.c
  cce8a83046345e131845178240c0e959  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-27.c
! 2ce44e33346073a4b09ca9c28e2f9d67  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c
  96adbef81122499033534b9cf98fc698  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-30.c
  be3cd07dd10711ebedecae14fb11eb44  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-31.c
  188886a969fc804c96236ec8ceae85d7  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-32.c
--- 53139,53145 ----
  24c4df9086aa14575861479a9d443298  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-25.c
  ae4edcabb9f0a3c23740e5f9828ec494  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-26.c
  cce8a83046345e131845178240c0e959  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-27.c
! 1bc70160ba00eeb03c86f691561a791b  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c
  96adbef81122499033534b9cf98fc698  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-30.c
  be3cd07dd10711ebedecae14fb11eb44  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-31.c
  188886a969fc804c96236ec8ceae85d7  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-32.c
*************** bab030e723ebb78dbecdf8eb91fd51f8  gcc/te
*** 50489,50499 ****
  d8fd271beac9fb50c62ae9fe35942746  gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-4.c
  0bb304969657bc7f0e6ee0910e9c9075  gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-6.c
  6915beb291208732b4319c3caa0b9e66  gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-7.c
  4538f03bf5d2279aa9f9ab29429c9895  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-1.c
  ef248fefdf4c55a5bae752c45ccbb1ca  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-10.c
  3f3aaa9436c3b80ea80253215d20cac2  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-11.c
  919243bbf846990fa260beeb0a2ab0f0  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-12.c
! baee9c631e48f3be1a05abb70eb0fe9e  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-13.c
  36150436c918d3a32fe15db8cba931ee  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-2.c
  b2765abeccae3f34c0bec404ef0c4f50  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-3.c
  379f242fb0d1aa900a2552ef8a2871cd  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-4.c
--- 53217,53229 ----
  d8fd271beac9fb50c62ae9fe35942746  gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-4.c
  0bb304969657bc7f0e6ee0910e9c9075  gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-6.c
  6915beb291208732b4319c3caa0b9e66  gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-7.c
+ c4c8019ef28c075526766ce81740fc54  gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-8.c
+ 90805c2de08e7bcf32337c1273568300  gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-9.c
  4538f03bf5d2279aa9f9ab29429c9895  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-1.c
  ef248fefdf4c55a5bae752c45ccbb1ca  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-10.c
  3f3aaa9436c3b80ea80253215d20cac2  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-11.c
  919243bbf846990fa260beeb0a2ab0f0  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-12.c
! 9536df87155ac0f252a8303d5899a459  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-13.c
  36150436c918d3a32fe15db8cba931ee  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-2.c
  b2765abeccae3f34c0bec404ef0c4f50  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-3.c
  379f242fb0d1aa900a2552ef8a2871cd  gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-4.c
*************** aa1777c45c7d6736cca46a69392522b9  gcc/te
*** 50558,50563 ****
--- 53288,53294 ----
  7e73c668c31b6f73c95b69cbdc80eac5  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-31.c
  d7800e6a28e5b70e0293c932b14894f8  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-32.c
  17d5e649f4ebd09ca062e6a51b4bb263  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-33.c
+ 887ebbb6fc9fa28141e943ea74380c78  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-34.c
  39d8ac143c15d11301c705a380a6769b  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-4.c
  bd3ae093f96e1ef4c6e63e83f1c59945  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-5.c
  38403894c988bb66d103ea06dcfd401d  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-6.c
*************** ca855609bb608ce2b8cc0450d0bae3d5  gcc/te
*** 50569,50575 ****
  c1c886b77a9aae16c0297c9b61312de4  gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-3.c
  3629557537a9a826caeefb9ae34e9c32  gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-4.c
  fc97ee263c2c758e4874bdefc160a943  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c
! bcc65fc71d46911a477e877dcb2c1805  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-10.c
  b40ae88699747b0b89167ecdd1146400  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-11.c
  be3ea69b52e071fd375d56784f1b9d68  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-12.c
  efe5489ad9d254a993f08552a0b11702  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-13.c
--- 53300,53306 ----
  c1c886b77a9aae16c0297c9b61312de4  gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-3.c
  3629557537a9a826caeefb9ae34e9c32  gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-4.c
  fc97ee263c2c758e4874bdefc160a943  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c
! e366954deff9dddef37f9c9103115d24  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-10.c
  b40ae88699747b0b89167ecdd1146400  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-11.c
  be3ea69b52e071fd375d56784f1b9d68  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-12.c
  efe5489ad9d254a993f08552a0b11702  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-13.c
*************** c0e501146babecae5e2250a96dc56a99  gcc/te
*** 50577,50585 ****
  f237fb84d8c929de79482cd9290e2e8a  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-15.c
  05f9dbfe971934dca1a91733dd7cc3ef  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-16.c
  161829b6c7430353195336356feb1e31  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-17.c
! 571ef285aa422e43de74cf948caaf618  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c
  d869cf884bf06167758bc9df313cee97  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c
  75f1fbb86f90eb2820845f3b864c8649  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c
  9825bb51561846515088fa3daf93eb2c  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c
  3c498a479ee03a4591c4e96f4a6bf880  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c
  5cbdfbf1e670807b4bbad98ff1c27449  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-5.c
--- 53308,53317 ----
  f237fb84d8c929de79482cd9290e2e8a  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-15.c
  05f9dbfe971934dca1a91733dd7cc3ef  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-16.c
  161829b6c7430353195336356feb1e31  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-17.c
! d4c634a44627f8d20bac4d1e9feb7084  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c
  d869cf884bf06167758bc9df313cee97  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c
  75f1fbb86f90eb2820845f3b864c8649  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c
+ 55b0bbd3097383eac55fcb6866cb5adc  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-20.c
  9825bb51561846515088fa3daf93eb2c  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c
  3c498a479ee03a4591c4e96f4a6bf880  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c
  5cbdfbf1e670807b4bbad98ff1c27449  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-5.c
*************** d27e19cbc74977f6d1e4eb7b508acbd2  gcc/te
*** 50599,50605 ****
  054da81e5ac60be0a91010d71ddf9ee8  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-18.c
  4b0f41e665ea108724b1c5c7fc582cd4  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-19.c
  8754296b236f3b2f6abfa14ca2a80025  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-20.c
! 5dcb244531627f9e7d56395a25df0cf7  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-21.c
  f9ec9861cfad29ae5e65f5801dec8b35  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-backedge.c
  345c2de66411a0afb210e968afaa62c0  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-invalid.c
  31af1b6bef4a6bfebd6ec195519366b8  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-valid.c
--- 53331,53338 ----
  054da81e5ac60be0a91010d71ddf9ee8  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-18.c
  4b0f41e665ea108724b1c5c7fc582cd4  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-19.c
  8754296b236f3b2f6abfa14ca2a80025  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-20.c
! 5ccdb84afe4b17b83db35bd3a776f132  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-21.c
! be15956f5f5a8f21ac672a6ca9016095  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-22.c
  f9ec9861cfad29ae5e65f5801dec8b35  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-backedge.c
  345c2de66411a0afb210e968afaa62c0  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-invalid.c
  31af1b6bef4a6bfebd6ec195519366b8  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-valid.c
*************** ac68e635052c49f6b773cb66ed20a1e8  gcc/te
*** 50648,50673 ****
  e84424985e065b3a1999b1ea596c8e5c  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-6.c
  6400d5651fcf9e68caeb41223c2fced7  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-7.c
  fe06bda8f8339334f5d8b9e5b475bfc5  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-8.c
! fec363e80efb724288fe2a78a0c012d8  gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp
  b529a183f5c763b842cd8fad5900b40f  gcc/testsuite/gcc.dg/tree-ssa/unord.c
  1c4bf657e9d9fe122d42a9f94704b7e2  gcc/testsuite/gcc.dg/tree-ssa/unreachable.c
  1e3d2be7b65bc67d143ce4e436bfcdb1  gcc/testsuite/gcc.dg/tree-ssa/upcast-1.c
! 53ce39a8ef75c800417b0d4f5497d5bd  gcc/testsuite/gcc.dg/tree-ssa/update-cunroll.c
! ba71974763cb74b80bc8550c30525e12  gcc/testsuite/gcc.dg/tree-ssa/update-threading.c
! 6235b1f2d30d3e6bb100898f12a6126a  gcc/testsuite/gcc.dg/tree-ssa/update-unroll-1.c
! cd2e3f109765d4f1f75bba5025a94135  gcc/testsuite/gcc.dg/tree-ssa/update-unswitch-1.c
  a07b328f828c5a6dc6814d58e08a5752  gcc/testsuite/gcc.dg/tree-ssa/useless-1.c
  64f1cae87e015159454aabd1d7bcb893  gcc/testsuite/gcc.dg/tree-ssa/user-printf-warn-1.c
  76db98755bcf2873abe9e88c68154bf5  gcc/testsuite/gcc.dg/tree-ssa/vce-1.c
  f85c8615f3ea51105c4b0deb990f425b  gcc/testsuite/gcc.dg/tree-ssa/vector-1.c
  2a5f9b88e20858cdca30caa31058acc9  gcc/testsuite/gcc.dg/tree-ssa/vector-2.c
  6ea6a701eaec7e89b5495272360e279d  gcc/testsuite/gcc.dg/tree-ssa/vector-3.c
! d2a0e5aa7e3c69668d759a4fc33f63ca  gcc/testsuite/gcc.dg/tree-ssa/vector-4.c
  5075fecf046c0224239ec47fc9cdb321  gcc/testsuite/gcc.dg/tree-ssa/vector-5.c
  a12895e160ece0f553a23b23be8acc70  gcc/testsuite/gcc.dg/tree-ssa/vector-6.c
  ae4c45e8e11a3fe4fc4c58ed7fba53fa  gcc/testsuite/gcc.dg/tree-ssa/vector-7.c
  d2716d7b0ff8fed54064ac391092556a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-1.c
  ead105f59515a642c6fc52a424df28de  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-11.c
  8fc95c275dc5e1ffb8c7d13ea8c8d61d  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3.c
  f43c0ce34a118063d676f4018c4bc0a8  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3a.c
  004d2bbfe19302e36a7a52883734af6d  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-4.c
--- 53381,53410 ----
  e84424985e065b3a1999b1ea596c8e5c  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-6.c
  6400d5651fcf9e68caeb41223c2fced7  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-7.c
  fe06bda8f8339334f5d8b9e5b475bfc5  gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-8.c
! fbcf714e55181a760ea9bbe4f2bf24d7  gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp
  b529a183f5c763b842cd8fad5900b40f  gcc/testsuite/gcc.dg/tree-ssa/unord.c
  1c4bf657e9d9fe122d42a9f94704b7e2  gcc/testsuite/gcc.dg/tree-ssa/unreachable.c
  1e3d2be7b65bc67d143ce4e436bfcdb1  gcc/testsuite/gcc.dg/tree-ssa/upcast-1.c
! 92be8d3e5c717d3ec710c2cd91ed01b2  gcc/testsuite/gcc.dg/tree-ssa/update-cunroll.c
! 82580efab87209bbe811009b607a81cf  gcc/testsuite/gcc.dg/tree-ssa/update-threading.c
! c37c0057138e674f00ffb7647f11323b  gcc/testsuite/gcc.dg/tree-ssa/update-unroll-1.c
! e09d2755ec8b8dca170666824978501f  gcc/testsuite/gcc.dg/tree-ssa/update-unswitch-1.c
  a07b328f828c5a6dc6814d58e08a5752  gcc/testsuite/gcc.dg/tree-ssa/useless-1.c
  64f1cae87e015159454aabd1d7bcb893  gcc/testsuite/gcc.dg/tree-ssa/user-printf-warn-1.c
  76db98755bcf2873abe9e88c68154bf5  gcc/testsuite/gcc.dg/tree-ssa/vce-1.c
+ 026cc8eee110e3e13351651d019ec81e  gcc/testsuite/gcc.dg/tree-ssa/vect-profile-upate-2.c
+ f6903c1778cac285a3ba54b0784b6186  gcc/testsuite/gcc.dg/tree-ssa/vect-profile-upate.c
  f85c8615f3ea51105c4b0deb990f425b  gcc/testsuite/gcc.dg/tree-ssa/vector-1.c
  2a5f9b88e20858cdca30caa31058acc9  gcc/testsuite/gcc.dg/tree-ssa/vector-2.c
  6ea6a701eaec7e89b5495272360e279d  gcc/testsuite/gcc.dg/tree-ssa/vector-3.c
! f799895dc087ab7f79f3ca0936a187a8  gcc/testsuite/gcc.dg/tree-ssa/vector-4.c
  5075fecf046c0224239ec47fc9cdb321  gcc/testsuite/gcc.dg/tree-ssa/vector-5.c
  a12895e160ece0f553a23b23be8acc70  gcc/testsuite/gcc.dg/tree-ssa/vector-6.c
  ae4c45e8e11a3fe4fc4c58ed7fba53fa  gcc/testsuite/gcc.dg/tree-ssa/vector-7.c
+ efe6f8695ae5fbf7f82d66e0c9ec26b1  gcc/testsuite/gcc.dg/tree-ssa/vrp-compare-1.c
  d2716d7b0ff8fed54064ac391092556a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-1.c
  ead105f59515a642c6fc52a424df28de  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-11.c
+ 94630606d876e869c54b8bc5a52b4c0e  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-13.c
  8fc95c275dc5e1ffb8c7d13ea8c8d61d  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3.c
  f43c0ce34a118063d676f4018c4bc0a8  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3a.c
  004d2bbfe19302e36a7a52883734af6d  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-4.c
*************** bb80b99977750a36908e3e2dffb9a3f9  gcc/te
*** 50676,50696 ****
  9e836be71c76565f6b21bfc807316709  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-6.c
  330ef877971bbef3819f4cf263e25dfb  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-7.c
  564f40109b1049f137c82198e8c6c769  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-8.c
! 50d0391a92e3a04baff8f5d6fe93d683  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-abs-1.c
  088c5fcb38e11ac3ea517c35416e3888  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-inf-1.c
  ddf35dbfa6fadefd77f8d99f52bf0310  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-nan-1.c
  b3ab245e78e617ea4a53ae113c58df6e  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-plus.c
  dcd6b7c8149e3e1bf62ecdac2c39dce3  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-1.c
  ebac22fe693910194996cdf239108af7  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-2.c
  c7772445382b7be958fdb8b4b189ab2a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-3.c
! 2dbbcecafae688d4435ec38c3d30ed5f  gcc/testsuite/gcc.dg/tree-ssa/vrp-unreachable.c
  821a8719b170a366e27a5139e23b4b21  gcc/testsuite/gcc.dg/tree-ssa/vrp-update.c
  42f4f044421eebfa376074d65304f8c1  gcc/testsuite/gcc.dg/tree-ssa/vrp.h
  98949ddf030166af1c48e9d8178080a7  gcc/testsuite/gcc.dg/tree-ssa/vrp01.c
  5d06bb2c1a50be57fc580e1055ed9f6a  gcc/testsuite/gcc.dg/tree-ssa/vrp02.c
  996219a5d7fe3925b7d8246148bfa5a8  gcc/testsuite/gcc.dg/tree-ssa/vrp03.c
  55cd62e5dbba2b7f42ec1d98b2da126c  gcc/testsuite/gcc.dg/tree-ssa/vrp04.c
! a6a58345d8323b1844a96f9b45df6e20  gcc/testsuite/gcc.dg/tree-ssa/vrp05.c
  995e3714b08a433eabff3026cd0b6d43  gcc/testsuite/gcc.dg/tree-ssa/vrp06.c
  eff08b3fde2380a2ac814a1e396be412  gcc/testsuite/gcc.dg/tree-ssa/vrp07.c
  be5af6115952e8a4bdcb3c935f76e3bf  gcc/testsuite/gcc.dg/tree-ssa/vrp08.c
--- 53413,53443 ----
  9e836be71c76565f6b21bfc807316709  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-6.c
  330ef877971bbef3819f4cf263e25dfb  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-7.c
  564f40109b1049f137c82198e8c6c769  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-8.c
! 34063a10ba0f7505954d590f3a16de4a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-abs-1.c
  088c5fcb38e11ac3ea517c35416e3888  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-inf-1.c
  ddf35dbfa6fadefd77f8d99f52bf0310  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-nan-1.c
  b3ab245e78e617ea4a53ae113c58df6e  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-plus.c
+ 9b0cda19ace215228c1e146dc69a89bd  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-relations-1.c
+ cdb232520de742203b73158e9e94c51d  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-relations-2.c
+ 5b56cce86f3dc38fe0c815319cd2ff47  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-relations-3.c
+ d4d639d6c49a3b458c2d0bb421b96666  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-relations-4.c
+ b62f715ee8b8937cdca8e5fb3f4a31b7  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-relations-5.c
+ 1a763146c4d0649bd911f3447f9e50c9  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-relations-6.c
  dcd6b7c8149e3e1bf62ecdac2c39dce3  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-1.c
  ebac22fe693910194996cdf239108af7  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-2.c
  c7772445382b7be958fdb8b4b189ab2a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-3.c
! b8bce41399c7a872e19e6af776f1b0e8  gcc/testsuite/gcc.dg/tree-ssa/vrp-loop-1.c
! 65e1c44626dcbb799fcde072f844d5ee  gcc/testsuite/gcc.dg/tree-ssa/vrp-loop-2.c
! 05c12d9d18ddba971b5eade05baa3576  gcc/testsuite/gcc.dg/tree-ssa/vrp-unreachable-1.c
! d01238cbd63ed71c9b0e630b2f98aa57  gcc/testsuite/gcc.dg/tree-ssa/vrp-unreachable-2.c
! 8dcdf713e57cfeaf7d8143542c4e46f9  gcc/testsuite/gcc.dg/tree-ssa/vrp-unreachable.c
  821a8719b170a366e27a5139e23b4b21  gcc/testsuite/gcc.dg/tree-ssa/vrp-update.c
  42f4f044421eebfa376074d65304f8c1  gcc/testsuite/gcc.dg/tree-ssa/vrp.h
  98949ddf030166af1c48e9d8178080a7  gcc/testsuite/gcc.dg/tree-ssa/vrp01.c
  5d06bb2c1a50be57fc580e1055ed9f6a  gcc/testsuite/gcc.dg/tree-ssa/vrp02.c
  996219a5d7fe3925b7d8246148bfa5a8  gcc/testsuite/gcc.dg/tree-ssa/vrp03.c
  55cd62e5dbba2b7f42ec1d98b2da126c  gcc/testsuite/gcc.dg/tree-ssa/vrp04.c
! 6174168e5d8a70df9e5bfb47818a2856  gcc/testsuite/gcc.dg/tree-ssa/vrp05.c
  995e3714b08a433eabff3026cd0b6d43  gcc/testsuite/gcc.dg/tree-ssa/vrp06.c
  eff08b3fde2380a2ac814a1e396be412  gcc/testsuite/gcc.dg/tree-ssa/vrp07.c
  be5af6115952e8a4bdcb3c935f76e3bf  gcc/testsuite/gcc.dg/tree-ssa/vrp08.c
*************** a2d068c8b5d5ecb7aeb9d6f60f75690b  gcc/te
*** 50719,50725 ****
  419ced6aac18d78614ce2296a1a6b660  gcc/testsuite/gcc.dg/tree-ssa/vrp12.c
  2103f3e1c8fc30651b6d62c026cac2ca  gcc/testsuite/gcc.dg/tree-ssa/vrp120.c
  a62799429f8c8c8beabf64b3b102d402  gcc/testsuite/gcc.dg/tree-ssa/vrp121.c
! d28e9c71b10a2f76510acd6bfc8979c6  gcc/testsuite/gcc.dg/tree-ssa/vrp122.c
  fffdbdc5b093f3e6f5bcd7eddb0c788b  gcc/testsuite/gcc.dg/tree-ssa/vrp123.c
  5c02e78e0a19d3b4ab362211af9c057d  gcc/testsuite/gcc.dg/tree-ssa/vrp13.c
  7e4e2677592121fe637fead20ff82420  gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
--- 53466,53472 ----
  419ced6aac18d78614ce2296a1a6b660  gcc/testsuite/gcc.dg/tree-ssa/vrp12.c
  2103f3e1c8fc30651b6d62c026cac2ca  gcc/testsuite/gcc.dg/tree-ssa/vrp120.c
  a62799429f8c8c8beabf64b3b102d402  gcc/testsuite/gcc.dg/tree-ssa/vrp121.c
! f28a1bb034e3f1d91b64dfca64b982de  gcc/testsuite/gcc.dg/tree-ssa/vrp122.c
  fffdbdc5b093f3e6f5bcd7eddb0c788b  gcc/testsuite/gcc.dg/tree-ssa/vrp123.c
  5c02e78e0a19d3b4ab362211af9c057d  gcc/testsuite/gcc.dg/tree-ssa/vrp13.c
  7e4e2677592121fe637fead20ff82420  gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
*************** d0598ba2d5f45d6ef63021b0be3f6106  gcc/te
*** 50743,50750 ****
  9307f7054a7feb4804716224e260ee0a  gcc/testsuite/gcc.dg/tree-ssa/vrp32.c
  4a0ceeee1a5037ddf111511ec4514cf9  gcc/testsuite/gcc.dg/tree-ssa/vrp33.c
  99d603c2a4486a008a06e53fafb9344b  gcc/testsuite/gcc.dg/tree-ssa/vrp34.c
! cc9dc707c3eee82a1ab7bd80848580f2  gcc/testsuite/gcc.dg/tree-ssa/vrp35.c
! e9bcf1ad006c50e0fa341de3b0e3c7be  gcc/testsuite/gcc.dg/tree-ssa/vrp36.c
  0320cab5b1ae70504995076252f095de  gcc/testsuite/gcc.dg/tree-ssa/vrp37.c
  0ef93be0d1c5bd1f30261042fdffa318  gcc/testsuite/gcc.dg/tree-ssa/vrp38.c
  9e66ae8010c46cba7f9292ed74c65200  gcc/testsuite/gcc.dg/tree-ssa/vrp39.c
--- 53490,53497 ----
  9307f7054a7feb4804716224e260ee0a  gcc/testsuite/gcc.dg/tree-ssa/vrp32.c
  4a0ceeee1a5037ddf111511ec4514cf9  gcc/testsuite/gcc.dg/tree-ssa/vrp33.c
  99d603c2a4486a008a06e53fafb9344b  gcc/testsuite/gcc.dg/tree-ssa/vrp34.c
! 81899b0a4bcb7a124a8e33a75b5c3004  gcc/testsuite/gcc.dg/tree-ssa/vrp35.c
! 7e3c3a1c48eb88be1f30aef8911768fb  gcc/testsuite/gcc.dg/tree-ssa/vrp36.c
  0320cab5b1ae70504995076252f095de  gcc/testsuite/gcc.dg/tree-ssa/vrp37.c
  0ef93be0d1c5bd1f30261042fdffa318  gcc/testsuite/gcc.dg/tree-ssa/vrp38.c
  9e66ae8010c46cba7f9292ed74c65200  gcc/testsuite/gcc.dg/tree-ssa/vrp39.c
*************** bb62f82a973334db1c0ebf75b17bcdf8  gcc/te
*** 50819,50829 ****
  22eb0b8eeae794a6956326b2c9383fb2  gcc/testsuite/gcc.dg/trunc-1.c
  0986037c6e0724a89f8308100f3f920f  gcc/testsuite/gcc.dg/tsan/atomic-fence.c
  c0761616b56e6c13ccfbf05810c3ad42  gcc/testsuite/gcc.dg/tsan/pr106984.c
  66723ae098123069493e416708ef5146  gcc/testsuite/gcc.dg/tsan/pr88017.c
  dcc8ff133faffd3fe561dfe431569a07  gcc/testsuite/gcc.dg/tsan/pr88030.c
  de40a1e950c75128048b75517e728603  gcc/testsuite/gcc.dg/tsan/pr90208-1.c
  65ac9eca3bcd49137d096a4f2573e2e2  gcc/testsuite/gcc.dg/tsan/pr90208-2.c
! 142fa6c1d7f64fa57e1c8f1e665cd1e6  gcc/testsuite/gcc.dg/tsan/tsan.exp
  01ec42502b146041504a5ab811e7f3b1  gcc/testsuite/gcc.dg/two-types-1.c
  95ad9b7c791f67ee2f4be1bd942e6718  gcc/testsuite/gcc.dg/two-types-10.c
  ca1b8417ca9c37159dd4270d3263cc19  gcc/testsuite/gcc.dg/two-types-2.c
--- 53566,53577 ----
  22eb0b8eeae794a6956326b2c9383fb2  gcc/testsuite/gcc.dg/trunc-1.c
  0986037c6e0724a89f8308100f3f920f  gcc/testsuite/gcc.dg/tsan/atomic-fence.c
  c0761616b56e6c13ccfbf05810c3ad42  gcc/testsuite/gcc.dg/tsan/pr106984.c
+ 93c01dbb8a77851bfbe99fc7c806d056  gcc/testsuite/gcc.dg/tsan/pr111736.c
  66723ae098123069493e416708ef5146  gcc/testsuite/gcc.dg/tsan/pr88017.c
  dcc8ff133faffd3fe561dfe431569a07  gcc/testsuite/gcc.dg/tsan/pr88030.c
  de40a1e950c75128048b75517e728603  gcc/testsuite/gcc.dg/tsan/pr90208-1.c
  65ac9eca3bcd49137d096a4f2573e2e2  gcc/testsuite/gcc.dg/tsan/pr90208-2.c
! a1d0446aa13cd19c5ea2615e4d8e0e0b  gcc/testsuite/gcc.dg/tsan/tsan.exp
  01ec42502b146041504a5ab811e7f3b1  gcc/testsuite/gcc.dg/two-types-1.c
  95ad9b7c791f67ee2f4be1bd942e6718  gcc/testsuite/gcc.dg/two-types-10.c
  ca1b8417ca9c37159dd4270d3263cc19  gcc/testsuite/gcc.dg/two-types-2.c
*************** c3e1ec66a1ba63c23068279c0986a103  gcc/te
*** 50842,50850 ****
--- 53590,53607 ----
  7bf977fdddd58f9186f5cc099280b5eb  gcc/testsuite/gcc.dg/typedef-var-1.c
  68f588a635357a5cb520c7708e945ba6  gcc/testsuite/gcc.dg/typedef-var-2.c
  44e859486a96c5bde24ac67ae73472fe  gcc/testsuite/gcc.dg/typename-vla-1.c
+ 0730498487ea3b9a21b9551281fa98b4  gcc/testsuite/gcc.dg/typename-vla-2.c
+ 2d6beb6bbf971e0dfe97247f59921115  gcc/testsuite/gcc.dg/typename-vla-3.c
+ 92611a5b0e30ced0f709297b828a5955  gcc/testsuite/gcc.dg/typename-vla-4.c
+ 2afe09714034c39404d4f57e1b185aa0  gcc/testsuite/gcc.dg/typename-vla-5.c
+ a8df54973e4482a64dfab9ad7d5030e1  gcc/testsuite/gcc.dg/typename-vla-6.c
  0347a7dc32b8dfb279bdfe3b50e84008  gcc/testsuite/gcc.dg/typeof-1.c
  2f68d2aabae53b45ecb33173c3613128  gcc/testsuite/gcc.dg/typeof-2.c
  38f4467be27d0432adea9abcaf9cc366  gcc/testsuite/gcc.dg/typespec-1.c
+ a6cf066e6e502eee358c3db0aee78926  gcc/testsuite/gcc.dg/ubsan/bitint-1.c
+ 3bb3d7147b5445fd4f17d2be28e5a317  gcc/testsuite/gcc.dg/ubsan/bitint-2.c
+ 199adf7daa04d85435a3c1a0995f955f  gcc/testsuite/gcc.dg/ubsan/bitint-3.c
+ 209487ed7251c08b5d467814d7e24249  gcc/testsuite/gcc.dg/ubsan/bitint-4.c
  b9d67dbc50419a82b76d70029936f329  gcc/testsuite/gcc.dg/ubsan/bounds-1.c
  8ef707e5f4c734c1b8be85269cd93d06  gcc/testsuite/gcc.dg/ubsan/bounds-2.c
  49c14bdc09fb274e14fd4f886b5e6fb9  gcc/testsuite/gcc.dg/ubsan/bounds-3.c
*************** acf0af3723cb1d2f1a5fe0dbbb7d9fa9  gcc/te
*** 50866,50879 ****
  e4441e7485c1c8e740509a37f0c0bb14  gcc/testsuite/gcc.dg/ubsan/commutative-1.c
  7255cefa0dd234815e49556ae85bf1f6  gcc/testsuite/gcc.dg/ubsan/float-cast-overflow-atomic.c
  b6636fcf606d4b2a9b3c129b082bc808  gcc/testsuite/gcc.dg/ubsan/float-cast-overflow-bf.c
  3325507ff87bcf4f63df3972ec6895c4  gcc/testsuite/gcc.dg/ubsan/ipa-icf-1.c
  20138e45bcf86067b02f18ee36d2a451  gcc/testsuite/gcc.dg/ubsan/object-size-9.c
! 623866abaff3bf1dcf98b3248fabce25  gcc/testsuite/gcc.dg/ubsan/object-size-dyn.c
  bd23f40ca964648dca24107dcc929765  gcc/testsuite/gcc.dg/ubsan/pr103456.c
  dc95648d25ed66b53703856ca8bf9c89  gcc/testsuite/gcc.dg/ubsan/pr106099.c
  cefdc2a9eb13f2095c81dff3665fcbe2  gcc/testsuite/gcc.dg/ubsan/pr107183.c
  50f54783636f7e63e2f5702bfd228de0  gcc/testsuite/gcc.dg/ubsan/pr107668.c
  4111deb3a8958abcc5c35e4fb6d09931  gcc/testsuite/gcc.dg/ubsan/pr108995.c
  8b53119c2975ba4eb7e0a8a3f21049bc  gcc/testsuite/gcc.dg/ubsan/pr63690.c
  7a3b89a11b570c0d6817707c745a9fba  gcc/testsuite/gcc.dg/ubsan/pr67279.c
  c9a455b03d901e306e1836d50e9e37d6  gcc/testsuite/gcc.dg/ubsan/pr67662.c
--- 53623,53642 ----
  e4441e7485c1c8e740509a37f0c0bb14  gcc/testsuite/gcc.dg/ubsan/commutative-1.c
  7255cefa0dd234815e49556ae85bf1f6  gcc/testsuite/gcc.dg/ubsan/float-cast-overflow-atomic.c
  b6636fcf606d4b2a9b3c129b082bc808  gcc/testsuite/gcc.dg/ubsan/float-cast-overflow-bf.c
+ 84b9af4e3fdf6716cb2d43bb45b05d7a  gcc/testsuite/gcc.dg/ubsan/has-feature-ubsan.c
  3325507ff87bcf4f63df3972ec6895c4  gcc/testsuite/gcc.dg/ubsan/ipa-icf-1.c
  20138e45bcf86067b02f18ee36d2a451  gcc/testsuite/gcc.dg/ubsan/object-size-9.c
! 4e0da97c15afa52d7e5b234e4f20fb83  gcc/testsuite/gcc.dg/ubsan/object-size-dyn.c
  bd23f40ca964648dca24107dcc929765  gcc/testsuite/gcc.dg/ubsan/pr103456.c
  dc95648d25ed66b53703856ca8bf9c89  gcc/testsuite/gcc.dg/ubsan/pr106099.c
  cefdc2a9eb13f2095c81dff3665fcbe2  gcc/testsuite/gcc.dg/ubsan/pr107183.c
  50f54783636f7e63e2f5702bfd228de0  gcc/testsuite/gcc.dg/ubsan/pr107668.c
  4111deb3a8958abcc5c35e4fb6d09931  gcc/testsuite/gcc.dg/ubsan/pr108995.c
+ 3d891ede9caa6aed55954898e1974cef  gcc/testsuite/gcc.dg/ubsan/pr111736.c
+ 5ecc4a818796a17622dbe25b368725ec  gcc/testsuite/gcc.dg/ubsan/pr112709-1.c
+ f7352e346071f20c88b4cda3aefaf007  gcc/testsuite/gcc.dg/ubsan/pr112709-2.c
+ 07fea3b40997114ec3071642a71f05f0  gcc/testsuite/gcc.dg/ubsan/pr112741.c
+ 9d35f4aafed7065254d5bcbd8e4b3469  gcc/testsuite/gcc.dg/ubsan/pr113012.c
  8b53119c2975ba4eb7e0a8a3f21049bc  gcc/testsuite/gcc.dg/ubsan/pr63690.c
  7a3b89a11b570c0d6817707c745a9fba  gcc/testsuite/gcc.dg/ubsan/pr67279.c
  c9a455b03d901e306e1836d50e9e37d6  gcc/testsuite/gcc.dg/ubsan/pr67662.c
*************** e95ed112f0ea45770ff240c4770cd2c7  gcc/te
*** 50897,50903 ****
  a6de1d906f46c35c2202d196fcbdba1a  gcc/testsuite/gcc.dg/ubsan/pr89284.c
  51557943b6a5571078dca811d526d7d8  gcc/testsuite/gcc.dg/ubsan/pr94423.c
  0f09425e087253b3e4d9360b845cfa01  gcc/testsuite/gcc.dg/ubsan/pr95810.c
! d6c02bc15397c86f7944794eec1a171e  gcc/testsuite/gcc.dg/ubsan/ubsan.exp
  ff1993364d91d08b560ce3b84092e86d  gcc/testsuite/gcc.dg/ucnid-1-utf8.c
  b749062a1214fdf6ba947d30bdf90f30  gcc/testsuite/gcc.dg/ucnid-1.c
  d1ef7efe2db207bd7f1420dda8d447eb  gcc/testsuite/gcc.dg/ucnid-10-utf8.c
--- 53660,53666 ----
  a6de1d906f46c35c2202d196fcbdba1a  gcc/testsuite/gcc.dg/ubsan/pr89284.c
  51557943b6a5571078dca811d526d7d8  gcc/testsuite/gcc.dg/ubsan/pr94423.c
  0f09425e087253b3e4d9360b845cfa01  gcc/testsuite/gcc.dg/ubsan/pr95810.c
! 1a382abb24efac308bfa27e32759a88b  gcc/testsuite/gcc.dg/ubsan/ubsan.exp
  ff1993364d91d08b560ce3b84092e86d  gcc/testsuite/gcc.dg/ucnid-1-utf8.c
  b749062a1214fdf6ba947d30bdf90f30  gcc/testsuite/gcc.dg/ucnid-1.c
  d1ef7efe2db207bd7f1420dda8d447eb  gcc/testsuite/gcc.dg/ucnid-10-utf8.c
*************** e2b774abf8d7e4cc810bee5ab597c4cc  gcc/te
*** 51012,51017 ****
--- 53775,53783 ----
  d302509e7e4d06b47b78ba3214c7fc0e  gcc/testsuite/gcc.dg/uninit-pr106881.c
  bb6370e51fdfc71eb406f2d9d7e1f004  gcc/testsuite/gcc.dg/uninit-pr107839.c
  10779a14525372affcb25a7e7209e309  gcc/testsuite/gcc.dg/uninit-pr108547.c
+ a0d21e844c69e57b42877341fb99cf0d  gcc/testsuite/gcc.dg/uninit-pr111397.c
+ 499c474f28073285766d0bb22cfa9e09  gcc/testsuite/gcc.dg/uninit-pr111489.c
+ 1f3e810920438ffd137d7d7c1975faef  gcc/testsuite/gcc.dg/uninit-pr112909.c
  58c1fce493b489aff04e0b2f66635e90  gcc/testsuite/gcc.dg/uninit-pr19430-2.c
  79f653fd913dfd35f07e5b3890168e74  gcc/testsuite/gcc.dg/uninit-pr19430-O0.c
  0ba39e72d317abfcfd3703541b7f8a41  gcc/testsuite/gcc.dg/uninit-pr19430.c
*************** f3d0c9f5e1f93ea3a3c13cc79f4d5def  gcc/te
*** 51034,51040 ****
  a10553f644fe76b730224e51945b36d6  gcc/testsuite/gcc.dg/uninit-pr65244-2.c
  1c8d27f96b4cf1013a7cd0fae3e7368a  gcc/testsuite/gcc.dg/uninit-pr65686.c
  e821794f64a67239864ede698d50f620  gcc/testsuite/gcc.dg/uninit-pr78295.c
! e5914ec194abe834db8656483a92fcdc  gcc/testsuite/gcc.dg/uninit-pr78548.c
  e37d87bcbc2425be943ff59a8baa223d  gcc/testsuite/gcc.dg/uninit-pr81782.c
  277c9911e147065687afe2d561f10430  gcc/testsuite/gcc.dg/uninit-pr81897-2.c
  2cff9b0e356693e6320ee7ba4d4f02c2  gcc/testsuite/gcc.dg/uninit-pr81897.c
--- 53800,53806 ----
  a10553f644fe76b730224e51945b36d6  gcc/testsuite/gcc.dg/uninit-pr65244-2.c
  1c8d27f96b4cf1013a7cd0fae3e7368a  gcc/testsuite/gcc.dg/uninit-pr65686.c
  e821794f64a67239864ede698d50f620  gcc/testsuite/gcc.dg/uninit-pr78295.c
! 2e13341f057981cb148a846f0412c0b3  gcc/testsuite/gcc.dg/uninit-pr78548.c
  e37d87bcbc2425be943ff59a8baa223d  gcc/testsuite/gcc.dg/uninit-pr81782.c
  277c9911e147065687afe2d561f10430  gcc/testsuite/gcc.dg/uninit-pr81897-2.c
  2cff9b0e356693e6320ee7ba4d4f02c2  gcc/testsuite/gcc.dg/uninit-pr81897.c
*************** ae9f63955208be4c16b0ba30bd16f5b4  gcc/te
*** 51076,51082 ****
  48dec70277ff9a8f83aba472bc7a6ea6  gcc/testsuite/gcc.dg/uninit-pred-8_c.c
  096e58c93515dd3678c391930e20efb7  gcc/testsuite/gcc.dg/uninit-pred-8_d.c
  f8c4f61a7dcf75600a176b4dab26db57  gcc/testsuite/gcc.dg/uninit-pred-9_a.c
! c2d9ec976494d9c7d7650dfbdb043fb3  gcc/testsuite/gcc.dg/uninit-pred-9_b.c
  bc7ca58b23b9c0a381b714ac4dc2ca9f  gcc/testsuite/gcc.dg/uninit-suppress.c
  5e843957c9ab050cc934b752246d8cf9  gcc/testsuite/gcc.dg/uninit-suppress_2.c
  b0e2e79211806d4afcda9cf5d4d4dcb6  gcc/testsuite/gcc.dg/uninit-suppress_3.c
--- 53842,53848 ----
  48dec70277ff9a8f83aba472bc7a6ea6  gcc/testsuite/gcc.dg/uninit-pred-8_c.c
  096e58c93515dd3678c391930e20efb7  gcc/testsuite/gcc.dg/uninit-pred-8_d.c
  f8c4f61a7dcf75600a176b4dab26db57  gcc/testsuite/gcc.dg/uninit-pred-9_a.c
! 4e6982657d7f1c7b53d3b35c16091946  gcc/testsuite/gcc.dg/uninit-pred-9_b.c
  bc7ca58b23b9c0a381b714ac4dc2ca9f  gcc/testsuite/gcc.dg/uninit-suppress.c
  5e843957c9ab050cc934b752246d8cf9  gcc/testsuite/gcc.dg/uninit-suppress_2.c
  b0e2e79211806d4afcda9cf5d4d4dcb6  gcc/testsuite/gcc.dg/uninit-suppress_3.c
*************** ae4d67d87a0b04934eeaae8a208e5575  gcc/te
*** 51093,51107 ****
  a7ac2b6782378edf99026215c26ce37f  gcc/testsuite/gcc.dg/unordered-1.c
  fced4847e686e50fcf2f9178fed8ec41  gcc/testsuite/gcc.dg/unordered-2.c
  3e159974de24470fb7ecc60669d62183  gcc/testsuite/gcc.dg/unordered-3.c
! a5c7a9cbd547b9d922f89fd38295d579  gcc/testsuite/gcc.dg/unroll-1.c
  b1481603f0fc03920239ad401f62f53f  gcc/testsuite/gcc.dg/unroll-10.c
  225da14b33f643c6fc0fd75bf00f550a  gcc/testsuite/gcc.dg/unroll-2.c
! 2fc59ac0f60d8c5500adb56cf66c1ed6  gcc/testsuite/gcc.dg/unroll-3.c
! b1b811ab7ccd6cb7c2bb14df1bde12f8  gcc/testsuite/gcc.dg/unroll-4.c
! c6ae2df6a353c5ac288fcafb37edc450  gcc/testsuite/gcc.dg/unroll-5.c
! 77dbefe7ee6b1de71f451796787f1532  gcc/testsuite/gcc.dg/unroll-6.c
! 06b8019a5e45bc39db1cb57d850fdbb7  gcc/testsuite/gcc.dg/unroll-7.c
! 204b9be344d219dfaab5a48887ad9516  gcc/testsuite/gcc.dg/unroll-8.c
  a0a496a7280c881b5951e833f694ac32  gcc/testsuite/gcc.dg/unroll-9.c
  47ae2c5d29560d4618b97c02b8cb064d  gcc/testsuite/gcc.dg/unroll-and-jam.c
  99b212e0df5c61c48b3f2593a23414cc  gcc/testsuite/gcc.dg/unsigned-long-compare.c
--- 53859,53873 ----
  a7ac2b6782378edf99026215c26ce37f  gcc/testsuite/gcc.dg/unordered-1.c
  fced4847e686e50fcf2f9178fed8ec41  gcc/testsuite/gcc.dg/unordered-2.c
  3e159974de24470fb7ecc60669d62183  gcc/testsuite/gcc.dg/unordered-3.c
! 5bb850c5501e913af9efe8376fc600bc  gcc/testsuite/gcc.dg/unroll-1.c
  b1481603f0fc03920239ad401f62f53f  gcc/testsuite/gcc.dg/unroll-10.c
  225da14b33f643c6fc0fd75bf00f550a  gcc/testsuite/gcc.dg/unroll-2.c
! 0fe28f993ccec2f06e4a9c2105b2021d  gcc/testsuite/gcc.dg/unroll-3.c
! 777660e2dc9d12a9acab7df76238ac98  gcc/testsuite/gcc.dg/unroll-4.c
! bbf8c4c829c8bcd063d7b3b3bfd5af9b  gcc/testsuite/gcc.dg/unroll-5.c
! ecd5578b9de117c722ef7ea3a8f8394a  gcc/testsuite/gcc.dg/unroll-6.c
! da74da10d2ceaed8ef8b6560bb599dd2  gcc/testsuite/gcc.dg/unroll-7.c
! 4dfea4679ec70ce494ad2177be6be05c  gcc/testsuite/gcc.dg/unroll-8.c
  a0a496a7280c881b5951e833f694ac32  gcc/testsuite/gcc.dg/unroll-9.c
  47ae2c5d29560d4618b97c02b8cb064d  gcc/testsuite/gcc.dg/unroll-and-jam.c
  99b212e0df5c61c48b3f2593a23414cc  gcc/testsuite/gcc.dg/unsigned-long-compare.c
*************** b95f4f2227d41e7727db9557a77c5c3d  gcc/te
*** 51133,51143 ****
  3a9d1a26a5aaeef5defa0d9d1f97bc15  gcc/testsuite/gcc.dg/utf16-1.c
  5c528afe636171f8d43e8b0bf4a1c548  gcc/testsuite/gcc.dg/utf16-2.c
  a32533b17e250ced05d50a9e8fbf6f1f  gcc/testsuite/gcc.dg/utf16-3.c
! 0bde34f1d5714f120ceb45f0c197e481  gcc/testsuite/gcc.dg/utf16-4.c
  fd1c2c198274ccdf0a4eeebbfafb373c  gcc/testsuite/gcc.dg/utf32-1.c
  04cef3d507bd18a15a3509a8a710cd93  gcc/testsuite/gcc.dg/utf32-2.c
  f28569cb7d58cae741a1de06facaa1af  gcc/testsuite/gcc.dg/utf32-3.c
! 71e032697bfe797cfaf13758ee8f91cb  gcc/testsuite/gcc.dg/utf32-4.c
  89fdbff2c0bfe976b5f25cd200a06a68  gcc/testsuite/gcc.dg/utf8-1.c
  9afbcb90cb93cfe5ce6ba4d5e2f12723  gcc/testsuite/gcc.dg/utf8-2.c
  5fb1882dbd19a99231ccfb010ee68bd5  gcc/testsuite/gcc.dg/va-arg-1.c
--- 53899,53909 ----
  3a9d1a26a5aaeef5defa0d9d1f97bc15  gcc/testsuite/gcc.dg/utf16-1.c
  5c528afe636171f8d43e8b0bf4a1c548  gcc/testsuite/gcc.dg/utf16-2.c
  a32533b17e250ced05d50a9e8fbf6f1f  gcc/testsuite/gcc.dg/utf16-3.c
! cfb5d24fcfc15a762a6e4aa0da83aae8  gcc/testsuite/gcc.dg/utf16-4.c
  fd1c2c198274ccdf0a4eeebbfafb373c  gcc/testsuite/gcc.dg/utf32-1.c
  04cef3d507bd18a15a3509a8a710cd93  gcc/testsuite/gcc.dg/utf32-2.c
  f28569cb7d58cae741a1de06facaa1af  gcc/testsuite/gcc.dg/utf32-3.c
! 6692e8a4b664a8a33e5aa3c6e8fae728  gcc/testsuite/gcc.dg/utf32-4.c
  89fdbff2c0bfe976b5f25cd200a06a68  gcc/testsuite/gcc.dg/utf8-1.c
  9afbcb90cb93cfe5ce6ba4d5e2f12723  gcc/testsuite/gcc.dg/utf8-2.c
  5fb1882dbd19a99231ccfb010ee68bd5  gcc/testsuite/gcc.dg/va-arg-1.c
*************** f8641f484320b6413dce61ad27e48f86  gcc/te
*** 51152,51157 ****
--- 53918,53924 ----
  8aaa954be03aa7b92dd9ba48059b992e  gcc/testsuite/gcc.dg/var-expand1.c
  c89f320f0f14a7fa8638f6b38a20ed26  gcc/testsuite/gcc.dg/var-expand2.c
  97f4fb5030de62782435a2d1279c4e81  gcc/testsuite/gcc.dg/var-expand3.c
+ 69a1c3531ab884c6c7e1fbc875e956bc  gcc/testsuite/gcc.dg/variable-sized-type-flex-array.c
  7f29aa4616378fb72f7fab614907128d  gcc/testsuite/gcc.dg/varpool-1.c
  d8ef65c736eef2f4a9994c6a87ebda95  gcc/testsuite/gcc.dg/vec-andxor1.c
  f15a087d2d1b7f1cc41a5b0473154ebc  gcc/testsuite/gcc.dg/vect/O-pr46167.c
*************** f15a087d2d1b7f1cc41a5b0473154ebc  gcc/te
*** 51163,51220 ****
  0bd53a59e4e24ff3ae224207642dd919  gcc/testsuite/gcc.dg/vect/O3-pr45971.c
  f04c55b103b93bf0cf4ac5956072c73c  gcc/testsuite/gcc.dg/vect/O3-pr46077.c
  f03f156261b27743d553f9fe6d7d101c  gcc/testsuite/gcc.dg/vect/O3-pr49087.c
! 9a0258ffd47b0e72bd2e39e51aeafd22  gcc/testsuite/gcc.dg/vect/O3-pr70130.c
  0624b7385890a947f64e52ebba25b5c4  gcc/testsuite/gcc.dg/vect/O3-pr85794.c
  480e3a6ad5c66a146fe08e5b9f5bcbbf  gcc/testsuite/gcc.dg/vect/O3-pr87546.c
  a959c9cd4dfb9164c103f8c61740e6ab  gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c
  f7665d7d0aa1b90766acc485626018a6  gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c
  3aceef80872b677e6b60251bfe10b13c  gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c
  013f85cb6d747ae2935ef1404e22d4d8  gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c
! b41c90298adcb4e30a8795376d8dc280  gcc/testsuite/gcc.dg/vect/Os-vect-95.c
  466c6438cbf21bd48800a6bd2bce72af  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c
  9f9afc3ac1c180057b7c583bd065c471  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c
  6f596ecff4c2737731de5f27856f1a79  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c
  fc3f9485da33ab149e612932c91c2cb1  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c
! 277952ae0b5533ed98fe1d721f4b2a3b  gcc/testsuite/gcc.dg/vect/bb-slp-1.c
  3aba66ae84b78b9d88c641884c46c32a  gcc/testsuite/gcc.dg/vect/bb-slp-10.c
  758cea355af7aa7ee4207f36da0baa72  gcc/testsuite/gcc.dg/vect/bb-slp-11.c
  ce36b8e49455e65805b6c7b39eb20a08  gcc/testsuite/gcc.dg/vect/bb-slp-13.c
  997e8e409fc9d65e61eedd915ed06a08  gcc/testsuite/gcc.dg/vect/bb-slp-14.c
  22e04ce02d2e83a37186472a1dbb5fcb  gcc/testsuite/gcc.dg/vect/bb-slp-15.c
! abc245615aaeaa94c37236d69b5bac76  gcc/testsuite/gcc.dg/vect/bb-slp-16.c
! 07dfa4e9468fe605994cdc0801e9aa3b  gcc/testsuite/gcc.dg/vect/bb-slp-17.c
  f0567941b77c37b1f0e116a41dd7787c  gcc/testsuite/gcc.dg/vect/bb-slp-18.c
  e9f7d5047f2fefff8b3351ac80d10f30  gcc/testsuite/gcc.dg/vect/bb-slp-19.c
! 95a4e09df73280a5074daf44e1cddf5b  gcc/testsuite/gcc.dg/vect/bb-slp-2.c
! c9869ae8502198281d13e300922a2ec8  gcc/testsuite/gcc.dg/vect/bb-slp-20.c
! 76ae99db97373f8ece84e87eb9815583  gcc/testsuite/gcc.dg/vect/bb-slp-21.c
! 9dfbd1c08fa30afa6ecb976e971c31fd  gcc/testsuite/gcc.dg/vect/bb-slp-22.c
  1c900840158a23b4e2368795f6ed410f  gcc/testsuite/gcc.dg/vect/bb-slp-23.c
! bc4febb7e3515dbe8ba908ece80c4a84  gcc/testsuite/gcc.dg/vect/bb-slp-24.c
! 381baf403a36c1e398dc6d170c9c0050  gcc/testsuite/gcc.dg/vect/bb-slp-25.c
! c39ee99f5554c9c5e5b8b654e4ef8bb5  gcc/testsuite/gcc.dg/vect/bb-slp-26.c
! 09459d75fbf6779593394686f160fc40  gcc/testsuite/gcc.dg/vect/bb-slp-27.c
! 4dc9b81d0d296fa97f7ed9e3e1adc30c  gcc/testsuite/gcc.dg/vect/bb-slp-28.c
! ff08b6f401ad25a842944e9e3e8384c1  gcc/testsuite/gcc.dg/vect/bb-slp-29.c
  ef73926f06ee885b1e602103a90f3aa5  gcc/testsuite/gcc.dg/vect/bb-slp-3.c
  f721b1c058f629b7e0d63be91a2b9a48  gcc/testsuite/gcc.dg/vect/bb-slp-30.c
  e227798a6ceabae26034233f900b8049  gcc/testsuite/gcc.dg/vect/bb-slp-31.c
! 4281c46ea627e815994656f5fc30e214  gcc/testsuite/gcc.dg/vect/bb-slp-32.c
! 4693259f8c6e75589b77e35e3c005d09  gcc/testsuite/gcc.dg/vect/bb-slp-33.c
  396aef8acf5cc6413bb922a950d3eda5  gcc/testsuite/gcc.dg/vect/bb-slp-34.c
  9d3c4162fa90a93c0d7aa208388789b3  gcc/testsuite/gcc.dg/vect/bb-slp-35.c
  167edde777120c9bbb2baa8d8b1962a6  gcc/testsuite/gcc.dg/vect/bb-slp-36.c
  d9b82f24ec441bd4ed9946db9792733c  gcc/testsuite/gcc.dg/vect/bb-slp-37.c
  7bcff90b9863e84eae294cff0b865427  gcc/testsuite/gcc.dg/vect/bb-slp-38.c
! 174d2ec8a3db7f65c3cdc324acdfe55d  gcc/testsuite/gcc.dg/vect/bb-slp-39.c
  2d3a915ced26b6be766341dc7de50ad8  gcc/testsuite/gcc.dg/vect/bb-slp-4.c
  094d2618b84be18ada044275f13cbf29  gcc/testsuite/gcc.dg/vect/bb-slp-40.c
  e32567a5dc4b945280cd4527bf1666a5  gcc/testsuite/gcc.dg/vect/bb-slp-41.c
! d94b6b6501276fc53adc9a3e81024111  gcc/testsuite/gcc.dg/vect/bb-slp-42.c
! 918a1435861e771b3a59353884b4c985  gcc/testsuite/gcc.dg/vect/bb-slp-43.c
! 81469097534af4831f53f485f558509a  gcc/testsuite/gcc.dg/vect/bb-slp-44.c
  7d00b7ceb27589ec58e1510082a67d6a  gcc/testsuite/gcc.dg/vect/bb-slp-45.c
! 03cdd0d35a4f6af2267c8d347d74542a  gcc/testsuite/gcc.dg/vect/bb-slp-46.c
  b25bae04c395a5c7d339456cd3566a64  gcc/testsuite/gcc.dg/vect/bb-slp-47.c
  630584f8240422cfa4661e71dc81f951  gcc/testsuite/gcc.dg/vect/bb-slp-48.c
  c03e6ccbd759364f47f750471f0748c5  gcc/testsuite/gcc.dg/vect/bb-slp-49.c
--- 53930,53987 ----
  0bd53a59e4e24ff3ae224207642dd919  gcc/testsuite/gcc.dg/vect/O3-pr45971.c
  f04c55b103b93bf0cf4ac5956072c73c  gcc/testsuite/gcc.dg/vect/O3-pr46077.c
  f03f156261b27743d553f9fe6d7d101c  gcc/testsuite/gcc.dg/vect/O3-pr49087.c
! d8070175db1427b96725412f7f707e00  gcc/testsuite/gcc.dg/vect/O3-pr70130.c
  0624b7385890a947f64e52ebba25b5c4  gcc/testsuite/gcc.dg/vect/O3-pr85794.c
  480e3a6ad5c66a146fe08e5b9f5bcbbf  gcc/testsuite/gcc.dg/vect/O3-pr87546.c
  a959c9cd4dfb9164c103f8c61740e6ab  gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c
  f7665d7d0aa1b90766acc485626018a6  gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c
  3aceef80872b677e6b60251bfe10b13c  gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c
  013f85cb6d747ae2935ef1404e22d4d8  gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c
! 61cff5751ac047afd81084622de56210  gcc/testsuite/gcc.dg/vect/Os-vect-95.c
  466c6438cbf21bd48800a6bd2bce72af  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c
  9f9afc3ac1c180057b7c583bd065c471  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c
  6f596ecff4c2737731de5f27856f1a79  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c
  fc3f9485da33ab149e612932c91c2cb1  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c
! fe265996a9ba43da01bf88128f9404f7  gcc/testsuite/gcc.dg/vect/bb-slp-1.c
  3aba66ae84b78b9d88c641884c46c32a  gcc/testsuite/gcc.dg/vect/bb-slp-10.c
  758cea355af7aa7ee4207f36da0baa72  gcc/testsuite/gcc.dg/vect/bb-slp-11.c
  ce36b8e49455e65805b6c7b39eb20a08  gcc/testsuite/gcc.dg/vect/bb-slp-13.c
  997e8e409fc9d65e61eedd915ed06a08  gcc/testsuite/gcc.dg/vect/bb-slp-14.c
  22e04ce02d2e83a37186472a1dbb5fcb  gcc/testsuite/gcc.dg/vect/bb-slp-15.c
! 537e0c31891b8e066cee72f93cc56b63  gcc/testsuite/gcc.dg/vect/bb-slp-16.c
! 17d52c669c725e31932bda02f2616349  gcc/testsuite/gcc.dg/vect/bb-slp-17.c
  f0567941b77c37b1f0e116a41dd7787c  gcc/testsuite/gcc.dg/vect/bb-slp-18.c
  e9f7d5047f2fefff8b3351ac80d10f30  gcc/testsuite/gcc.dg/vect/bb-slp-19.c
! d62d0208526d5a8be8b99cb21a77ee2b  gcc/testsuite/gcc.dg/vect/bb-slp-2.c
! 60bd4a01487a57de54f2f8959d2e8916  gcc/testsuite/gcc.dg/vect/bb-slp-20.c
! a93716aaf630d8086ea4be258bcef044  gcc/testsuite/gcc.dg/vect/bb-slp-21.c
! 331c5ec05b1259400a93959589364761  gcc/testsuite/gcc.dg/vect/bb-slp-22.c
  1c900840158a23b4e2368795f6ed410f  gcc/testsuite/gcc.dg/vect/bb-slp-23.c
! 0af389bd2f3eeb35567d47045c880dd0  gcc/testsuite/gcc.dg/vect/bb-slp-24.c
! d927d50e055e595174b951db3902d382  gcc/testsuite/gcc.dg/vect/bb-slp-25.c
! f62d1fa699a0b3a2927e2142c70d26ea  gcc/testsuite/gcc.dg/vect/bb-slp-26.c
! 1e37385c787a8833f7b0ab551fe6aa45  gcc/testsuite/gcc.dg/vect/bb-slp-27.c
! 2a75aaf5fe9d6acab60cffa0841f979e  gcc/testsuite/gcc.dg/vect/bb-slp-28.c
! bcb7eec8c06f22a1f83f8d5ba0e3b5ce  gcc/testsuite/gcc.dg/vect/bb-slp-29.c
  ef73926f06ee885b1e602103a90f3aa5  gcc/testsuite/gcc.dg/vect/bb-slp-3.c
  f721b1c058f629b7e0d63be91a2b9a48  gcc/testsuite/gcc.dg/vect/bb-slp-30.c
  e227798a6ceabae26034233f900b8049  gcc/testsuite/gcc.dg/vect/bb-slp-31.c
! fdbfc95dbb75eaffcf3b6f077cff8ecc  gcc/testsuite/gcc.dg/vect/bb-slp-32.c
! 9672256c5afd24077facb2fc570376d2  gcc/testsuite/gcc.dg/vect/bb-slp-33.c
  396aef8acf5cc6413bb922a950d3eda5  gcc/testsuite/gcc.dg/vect/bb-slp-34.c
  9d3c4162fa90a93c0d7aa208388789b3  gcc/testsuite/gcc.dg/vect/bb-slp-35.c
  167edde777120c9bbb2baa8d8b1962a6  gcc/testsuite/gcc.dg/vect/bb-slp-36.c
  d9b82f24ec441bd4ed9946db9792733c  gcc/testsuite/gcc.dg/vect/bb-slp-37.c
  7bcff90b9863e84eae294cff0b865427  gcc/testsuite/gcc.dg/vect/bb-slp-38.c
! 9a6ae4d79a0aa4df13f4774657d827d5  gcc/testsuite/gcc.dg/vect/bb-slp-39.c
  2d3a915ced26b6be766341dc7de50ad8  gcc/testsuite/gcc.dg/vect/bb-slp-4.c
  094d2618b84be18ada044275f13cbf29  gcc/testsuite/gcc.dg/vect/bb-slp-40.c
  e32567a5dc4b945280cd4527bf1666a5  gcc/testsuite/gcc.dg/vect/bb-slp-41.c
! e4c676f0a43dacdd2f4d419df5741c50  gcc/testsuite/gcc.dg/vect/bb-slp-42.c
! c0131afc365e0cb0b19e85366ef89e76  gcc/testsuite/gcc.dg/vect/bb-slp-43.c
! b9ca35cc9a57c4edabbac114d77a55d3  gcc/testsuite/gcc.dg/vect/bb-slp-44.c
  7d00b7ceb27589ec58e1510082a67d6a  gcc/testsuite/gcc.dg/vect/bb-slp-45.c
! 0f0ac3c75f180d29787151576fcf17ed  gcc/testsuite/gcc.dg/vect/bb-slp-46.c
  b25bae04c395a5c7d339456cd3566a64  gcc/testsuite/gcc.dg/vect/bb-slp-47.c
  630584f8240422cfa4661e71dc81f951  gcc/testsuite/gcc.dg/vect/bb-slp-48.c
  c03e6ccbd759364f47f750471f0748c5  gcc/testsuite/gcc.dg/vect/bb-slp-49.c
*************** b06bbb6143a3be2dc6987b5a4cda943c  gcc/te
*** 51238,51257 ****
  63055f2f2246daecb801ed30dfa937b1  gcc/testsuite/gcc.dg/vect/bb-slp-65.c
  a69c2c27919262d61df10eca968ae56c  gcc/testsuite/gcc.dg/vect/bb-slp-66.c
  57b252f3073ef6efcb04277b95ebb03d  gcc/testsuite/gcc.dg/vect/bb-slp-67.c
! d0e02a661312441465b49fcd58bd789f  gcc/testsuite/gcc.dg/vect/bb-slp-68.c
  15ebcb1640864f38fb35c69c5a64c16d  gcc/testsuite/gcc.dg/vect/bb-slp-69.c
  e07b4d2c5c7b96559385582969530695  gcc/testsuite/gcc.dg/vect/bb-slp-7.c
  385cc9557f6c95e0dd210863bce477a0  gcc/testsuite/gcc.dg/vect/bb-slp-70.c
! 6e6b896be12848b57e91c549bb26aae7  gcc/testsuite/gcc.dg/vect/bb-slp-71.c
! 4a63b7e8fcecda2972c9cff4802d1ef0  gcc/testsuite/gcc.dg/vect/bb-slp-72.c
! 66b8bd516d317bd54b91735803958bf9  gcc/testsuite/gcc.dg/vect/bb-slp-73.c
! 3afc57c93ad8c3a8c753f0a7af01fb4e  gcc/testsuite/gcc.dg/vect/bb-slp-74.c
  e25a8f3320f641e5055cfc1e0a955c40  gcc/testsuite/gcc.dg/vect/bb-slp-8.c
  9f7711e0c82ad69b17839e734862f539  gcc/testsuite/gcc.dg/vect/bb-slp-8a.c
  74399495ff8f4034fefd09f665413168  gcc/testsuite/gcc.dg/vect/bb-slp-8b.c
  19ee53d59cf6e245a1708525a8887b01  gcc/testsuite/gcc.dg/vect/bb-slp-9.c
  8809855af1ea14173db1668e1ebb3c33  gcc/testsuite/gcc.dg/vect/bb-slp-bool-1.c
! f8db9d15b58a75bf595dae1f3f511417  gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
  1b5ff799161e9971d6bd28bec8d16440  gcc/testsuite/gcc.dg/vect/bb-slp-div-1.c
  d840a44aa42e8dbf05f710b4031b11a1  gcc/testsuite/gcc.dg/vect/bb-slp-div-2.c
  4e9145a07928809fe075b3bb341ee40f  gcc/testsuite/gcc.dg/vect/bb-slp-layout-1.c
--- 54005,54025 ----
  63055f2f2246daecb801ed30dfa937b1  gcc/testsuite/gcc.dg/vect/bb-slp-65.c
  a69c2c27919262d61df10eca968ae56c  gcc/testsuite/gcc.dg/vect/bb-slp-66.c
  57b252f3073ef6efcb04277b95ebb03d  gcc/testsuite/gcc.dg/vect/bb-slp-67.c
! f57d9fab555677b14448681b1b82c1a5  gcc/testsuite/gcc.dg/vect/bb-slp-68.c
  15ebcb1640864f38fb35c69c5a64c16d  gcc/testsuite/gcc.dg/vect/bb-slp-69.c
  e07b4d2c5c7b96559385582969530695  gcc/testsuite/gcc.dg/vect/bb-slp-7.c
  385cc9557f6c95e0dd210863bce477a0  gcc/testsuite/gcc.dg/vect/bb-slp-70.c
! 220a0836fcbfbc6fa7c92ed7c7a9a3b7  gcc/testsuite/gcc.dg/vect/bb-slp-71.c
! 5ac52566b0b06b7511fbcfbd88707b9d  gcc/testsuite/gcc.dg/vect/bb-slp-72.c
! 242e51e0af6a2017cbc1d4ab66f9f45f  gcc/testsuite/gcc.dg/vect/bb-slp-73.c
! 2d7bec17f0cdc931d95b17fa6eb9509e  gcc/testsuite/gcc.dg/vect/bb-slp-74.c
! 963ec162e1d10c7045e406c8a77a9913  gcc/testsuite/gcc.dg/vect/bb-slp-75.c
  e25a8f3320f641e5055cfc1e0a955c40  gcc/testsuite/gcc.dg/vect/bb-slp-8.c
  9f7711e0c82ad69b17839e734862f539  gcc/testsuite/gcc.dg/vect/bb-slp-8a.c
  74399495ff8f4034fefd09f665413168  gcc/testsuite/gcc.dg/vect/bb-slp-8b.c
  19ee53d59cf6e245a1708525a8887b01  gcc/testsuite/gcc.dg/vect/bb-slp-9.c
  8809855af1ea14173db1668e1ebb3c33  gcc/testsuite/gcc.dg/vect/bb-slp-bool-1.c
! b139bc8a7ebad29213bbf02c0f22f632  gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
  1b5ff799161e9971d6bd28bec8d16440  gcc/testsuite/gcc.dg/vect/bb-slp-div-1.c
  d840a44aa42e8dbf05f710b4031b11a1  gcc/testsuite/gcc.dg/vect/bb-slp-div-2.c
  4e9145a07928809fe075b3bb341ee40f  gcc/testsuite/gcc.dg/vect/bb-slp-layout-1.c
*************** c8ed8e9e4250f08b918c56bfef4b7a7f  gcc/te
*** 51264,51270 ****
  0e8f57e36bc8448e80035b833a363fe7  gcc/testsuite/gcc.dg/vect/bb-slp-layout-16.c
  43e9ffb9410d050942d09e445ee46ffa  gcc/testsuite/gcc.dg/vect/bb-slp-layout-17.c
  3afdb69243343b45ef93e502063ebf7e  gcc/testsuite/gcc.dg/vect/bb-slp-layout-18.c
! cb45a80ec54e79ec32e9eb3b3ab3ff58  gcc/testsuite/gcc.dg/vect/bb-slp-layout-19.c
  55c6129299ee94434b97edc3312d1563  gcc/testsuite/gcc.dg/vect/bb-slp-layout-2.c
  9e1acf425f12a0a63d6844e356ebdb18  gcc/testsuite/gcc.dg/vect/bb-slp-layout-20.c
  d14dd3c8c51616e1a7455ce0faa962c7  gcc/testsuite/gcc.dg/vect/bb-slp-layout-21.c
--- 54032,54038 ----
  0e8f57e36bc8448e80035b833a363fe7  gcc/testsuite/gcc.dg/vect/bb-slp-layout-16.c
  43e9ffb9410d050942d09e445ee46ffa  gcc/testsuite/gcc.dg/vect/bb-slp-layout-17.c
  3afdb69243343b45ef93e502063ebf7e  gcc/testsuite/gcc.dg/vect/bb-slp-layout-18.c
! f5ab06f78f896f3a5f8c5603e80a4eb5  gcc/testsuite/gcc.dg/vect/bb-slp-layout-19.c
  55c6129299ee94434b97edc3312d1563  gcc/testsuite/gcc.dg/vect/bb-slp-layout-2.c
  9e1acf425f12a0a63d6844e356ebdb18  gcc/testsuite/gcc.dg/vect/bb-slp-layout-20.c
  d14dd3c8c51616e1a7455ce0faa962c7  gcc/testsuite/gcc.dg/vect/bb-slp-layout-21.c
*************** adb8e3246d18d18c606b9853f2a369a1  gcc/te
*** 51275,51300 ****
  bf93022bc801116cb5c896bd159f9325  gcc/testsuite/gcc.dg/vect/bb-slp-layout-7.c
  586550b9ffd6fb956900d17ebaed8ca9  gcc/testsuite/gcc.dg/vect/bb-slp-layout-8.c
  ca338e02e0e7f8d2527742eb4245b399  gcc/testsuite/gcc.dg/vect/bb-slp-layout-9.c
! 7c41afdc5735a359182f9e762fce7639  gcc/testsuite/gcc.dg/vect/bb-slp-over-widen-1.c
! da7b4fa15b104e471f4ae118b8378eb1  gcc/testsuite/gcc.dg/vect/bb-slp-over-widen-2.c
! c311453bfa9e07fb29dd6981eaaf350d  gcc/testsuite/gcc.dg/vect/bb-slp-pattern-1.c
! 42a99fc92d1e774d5a0da4f7734b361a  gcc/testsuite/gcc.dg/vect/bb-slp-pattern-2.c
  5face17b7bca252af575af588f27be32  gcc/testsuite/gcc.dg/vect/bb-slp-phis-1.c
! f46db941b9a35f0bfa38b50d084a730c  gcc/testsuite/gcc.dg/vect/bb-slp-pow-1.c
  f606c48752c134307bcd2f9c1b4911ce  gcc/testsuite/gcc.dg/vect/bb-slp-pr100778-1.c
! d073ebbe7b155eb721f58facf72de8c5  gcc/testsuite/gcc.dg/vect/bb-slp-pr101207.c
  937488d605d0957aa4f93e7419efeefb  gcc/testsuite/gcc.dg/vect/bb-slp-pr101242.c
! a393de493a44969dd08e807805513df0  gcc/testsuite/gcc.dg/vect/bb-slp-pr101615-1.c
! bdedf0ea0dbf21fbeaa20a6ae82af692  gcc/testsuite/gcc.dg/vect/bb-slp-pr101615-2.c
! a225231bf09f735228bcd507754e255a  gcc/testsuite/gcc.dg/vect/bb-slp-pr101668.c
  cf1f520661c5242475d0a36f640664dd  gcc/testsuite/gcc.dg/vect/bb-slp-pr101756.c
  5295b6a2a7e93bc6dfe10ebdd01406b8  gcc/testsuite/gcc.dg/vect/bb-slp-pr103800.c
  be86bc81622216478087ebb0eb3b5c80  gcc/testsuite/gcc.dg/vect/bb-slp-pr104240.c
  272eb771300120bc0b0190d7c82879d6  gcc/testsuite/gcc.dg/vect/bb-slp-pr106019.c
! 3fdbb9f95d28ae07799a0c2627ff805d  gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c
  5472e7bf338627077f4e6ce8cce9944e  gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c
! 416b7cfbbbbca3664b53c4942dfd6f6d  gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c
! a3000cd864ecf8f7a3037fec3f0ac388  gcc/testsuite/gcc.dg/vect/bb-slp-pr69907.c
  1d3aaf7003b6ad6834ed135c4c749cac  gcc/testsuite/gcc.dg/vect/bb-slp-pr78205.c
  7bde18f16db8ba76291d8ca502888f3e  gcc/testsuite/gcc.dg/vect/bb-slp-pr80705.c
  9abc16eaff706d04389dd061cf9b1d1b  gcc/testsuite/gcc.dg/vect/bb-slp-pr81635-1.c
--- 54043,54070 ----
  bf93022bc801116cb5c896bd159f9325  gcc/testsuite/gcc.dg/vect/bb-slp-layout-7.c
  586550b9ffd6fb956900d17ebaed8ca9  gcc/testsuite/gcc.dg/vect/bb-slp-layout-8.c
  ca338e02e0e7f8d2527742eb4245b399  gcc/testsuite/gcc.dg/vect/bb-slp-layout-9.c
! 3bd87bde81e79f84ec0a3836e08ea231  gcc/testsuite/gcc.dg/vect/bb-slp-over-widen-1.c
! 08f7d2104468f41c60713a915aec4048  gcc/testsuite/gcc.dg/vect/bb-slp-over-widen-2.c
! ed7761151262e1545e5b7b7fb4ebd47a  gcc/testsuite/gcc.dg/vect/bb-slp-pattern-1.c
! 239d8e740244a4d7cd86a364c25b4eb6  gcc/testsuite/gcc.dg/vect/bb-slp-pattern-2.c
  5face17b7bca252af575af588f27be32  gcc/testsuite/gcc.dg/vect/bb-slp-phis-1.c
! 52950543b95fcddb7a612560c97928ed  gcc/testsuite/gcc.dg/vect/bb-slp-pow-1.c
  f606c48752c134307bcd2f9c1b4911ce  gcc/testsuite/gcc.dg/vect/bb-slp-pr100778-1.c
! e469d24f2c6c738187fa07839c521130  gcc/testsuite/gcc.dg/vect/bb-slp-pr101207.c
  937488d605d0957aa4f93e7419efeefb  gcc/testsuite/gcc.dg/vect/bb-slp-pr101242.c
! 0df00fd3540048eb8b78723554cb78e7  gcc/testsuite/gcc.dg/vect/bb-slp-pr101615-1.c
! 0365dc4268b03bcf94f6069a1a12ac5f  gcc/testsuite/gcc.dg/vect/bb-slp-pr101615-2.c
! 6893e80b9a29c9ed252ed2595f83cf6a  gcc/testsuite/gcc.dg/vect/bb-slp-pr101668.c
  cf1f520661c5242475d0a36f640664dd  gcc/testsuite/gcc.dg/vect/bb-slp-pr101756.c
  5295b6a2a7e93bc6dfe10ebdd01406b8  gcc/testsuite/gcc.dg/vect/bb-slp-pr103800.c
  be86bc81622216478087ebb0eb3b5c80  gcc/testsuite/gcc.dg/vect/bb-slp-pr104240.c
  272eb771300120bc0b0190d7c82879d6  gcc/testsuite/gcc.dg/vect/bb-slp-pr106019.c
! 00f1be9b86dce90d7976ec4c31c71677  gcc/testsuite/gcc.dg/vect/bb-slp-pr114249.c
! 70f6ab93795e7362efbb766199500951  gcc/testsuite/gcc.dg/vect/bb-slp-pr114799.c
! ab672ba1427b5d98b02782a1e721a08a  gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c
  5472e7bf338627077f4e6ce8cce9944e  gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c
! 95f7751605c95143bf8206010e40b12c  gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c
! d2715cffa6c80881dfd3b2948121dc3b  gcc/testsuite/gcc.dg/vect/bb-slp-pr69907.c
  1d3aaf7003b6ad6834ed135c4c749cac  gcc/testsuite/gcc.dg/vect/bb-slp-pr78205.c
  7bde18f16db8ba76291d8ca502888f3e  gcc/testsuite/gcc.dg/vect/bb-slp-pr80705.c
  9abc16eaff706d04389dd061cf9b1d1b  gcc/testsuite/gcc.dg/vect/bb-slp-pr81635-1.c
*************** dd22f4fbb5e5a16296ec833b8840b9a6  gcc/te
*** 51306,51312 ****
  6628429c4ae70acf5a0a3f8a70698be4  gcc/testsuite/gcc.dg/vect/bb-slp-pr95271.c
  3f25c3533bbcf6591976383f55675529  gcc/testsuite/gcc.dg/vect/bb-slp-pr95335.c
  aa200d631e463383770f6f717838c251  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839-2.c
! 3bd1b8a47182c99f35f68853319a3ea3  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839.c
  eaa743aab9bdd479cfc9a5a33dfc917f  gcc/testsuite/gcc.dg/vect/bb-slp-pr95866.c
  d96c37dc33c7e1aca31487e5caf1fa33  gcc/testsuite/gcc.dg/vect/bb-slp-pr97486.c
  e7425206869b10684b25feb8565feaf5  gcc/testsuite/gcc.dg/vect/bb-slp-pr97496.c
--- 54076,54084 ----
  6628429c4ae70acf5a0a3f8a70698be4  gcc/testsuite/gcc.dg/vect/bb-slp-pr95271.c
  3f25c3533bbcf6591976383f55675529  gcc/testsuite/gcc.dg/vect/bb-slp-pr95335.c
  aa200d631e463383770f6f717838c251  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839-2.c
! 1df216033bc4ece6da328504becb52e0  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839-3.c
! 8957826e0fd28b8a7bc79629f31136a2  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839-v8.c
! 1b6aa1f8965209359c259bb620d3e355  gcc/testsuite/gcc.dg/vect/bb-slp-pr95839.c
  eaa743aab9bdd479cfc9a5a33dfc917f  gcc/testsuite/gcc.dg/vect/bb-slp-pr95866.c
  d96c37dc33c7e1aca31487e5caf1fa33  gcc/testsuite/gcc.dg/vect/bb-slp-pr97486.c
  e7425206869b10684b25feb8565feaf5  gcc/testsuite/gcc.dg/vect/bb-slp-pr97496.c
*************** e49ed0be3bc897c4046ed5bef93a1b9d  gcc/te
*** 51319,51332 ****
  9257b26931e51ae5eba37c850fb84046  gcc/testsuite/gcc.dg/vect/bb-slp-pr97732.c
  88064d22a3df086ef138637cd76b9322  gcc/testsuite/gcc.dg/vect/bb-slp-pr97746.c
  0484d6c983b701e29c113b1019b353fc  gcc/testsuite/gcc.dg/vect/bb-slp-pr98137.c
! 8994da70145a38cadeb8d78da558971f  gcc/testsuite/gcc.dg/vect/bb-slp-pr98516-1.c
! 9a9f98c8e22a96e135220e14e9a5f3e8  gcc/testsuite/gcc.dg/vect/bb-slp-pr98516-2.c
! f458c4bd5bf3886b45d0ca62da2ba1ff  gcc/testsuite/gcc.dg/vect/bb-slp-pr98544.c
  30c741c1a917278da82b36e7d0917343  gcc/testsuite/gcc.dg/vect/bb-slp-pr98685.c
  61b5bdbfdffd17b15f9ffe274ebb887e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98854.c
! 76ca89dbf04b0da54f93449816c40139  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c
! 6f206346ceb24c5ac1795b0003f74f55  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c
! 1d4bc9f1de300fbdc340417100930d00  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c
  303f98baa99ca71b360bb5b490edf989  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
  4de1e012f6eb5ea19ca369f6fcf4e1c5  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
  211bc477e9c121e47269e80a88557f74  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
--- 54091,54104 ----
  9257b26931e51ae5eba37c850fb84046  gcc/testsuite/gcc.dg/vect/bb-slp-pr97732.c
  88064d22a3df086ef138637cd76b9322  gcc/testsuite/gcc.dg/vect/bb-slp-pr97746.c
  0484d6c983b701e29c113b1019b353fc  gcc/testsuite/gcc.dg/vect/bb-slp-pr98137.c
! 911f323010042c53fea10620a1572ca5  gcc/testsuite/gcc.dg/vect/bb-slp-pr98516-1.c
! 79a30f9dfe629f54861ea435d10d3981  gcc/testsuite/gcc.dg/vect/bb-slp-pr98516-2.c
! ce6f3b76b7f5757740b1751047c0460e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98544.c
  30c741c1a917278da82b36e7d0917343  gcc/testsuite/gcc.dg/vect/bb-slp-pr98685.c
  61b5bdbfdffd17b15f9ffe274ebb887e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98854.c
! 10cb228990c580565b76c9c992b9e55f  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c
! 96b561810ea80aa1fa1c71407a583bbf  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c
! 8f9c23a104fcdabcb880e18a797db46f  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c
  303f98baa99ca71b360bb5b490edf989  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
  4de1e012f6eb5ea19ca369f6fcf4e1c5  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
  211bc477e9c121e47269e80a88557f74  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
*************** b6ce92f01b0a8720a15a8af7995a1dde  gcc/te
*** 51338,51346 ****
  53c115ab260300dfb7fb6a17a5b91fb9  gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
  d296c18a5121519fc5fa6c393b6ca043  gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
  62214c964d5fe67dd941ceaf38c0af04  gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
! 1b2da204849f9a4b044381276b99053b  gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c
  b663bc81b4270defc2534ee4b697c313  gcc/testsuite/gcc.dg/vect/complex/complex-operations.c
! b5fc87074676c97d4f7c80a4314bab8f  gcc/testsuite/gcc.dg/vect/complex/complex.exp
  6731d6a4275dee04a68d8a15040dbf9d  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
  e7e998e227aa0d1f54e5abb40415b355  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
  315119e00b97000fb6f371f5ae9b2515  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
--- 54110,54118 ----
  53c115ab260300dfb7fb6a17a5b91fb9  gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
  d296c18a5121519fc5fa6c393b6ca043  gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
  62214c964d5fe67dd941ceaf38c0af04  gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
! 8311196139150cb01f5bd481b88ab9db  gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c
  b663bc81b4270defc2534ee4b697c313  gcc/testsuite/gcc.dg/vect/complex/complex-operations.c
! 916f779a44b0b86093ec3b21fa42d186  gcc/testsuite/gcc.dg/vect/complex/complex.exp
  6731d6a4275dee04a68d8a15040dbf9d  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
  e7e998e227aa0d1f54e5abb40415b355  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
  315119e00b97000fb6f371f5ae9b2515  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
*************** bcb67819eb28363a86adad46990edf31  gcc/te
*** 51390,51420 ****
  eb33c9aba50486ac13a7328fde376230  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c
  dc4950313316b732f84a3dbc6a45f70d  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c
  05fc220f1ddbdb4d47d859b5d07869e2  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c
! de7dd1e584604b7bdea2dc13b43ddc14  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-31.c
! f460536507001609ab3aa91df1c958aa  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-33.c
! e8ac43ab8cf8cbf7bfd8167cf04e3b0e  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-68.c
  460815bb26ae1f6c220e23de56a2d3fd  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c
! a40c1ee7581ca34c837ed964fa6b39e8  gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
  f8de521e4a7696891de446aa77201098  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
  ffaf8702a4fc3b142c8b1a931c153dae  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c
  d25dc6b156dd43d1cf5e1224a3abb151  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c
  bd8562e8bd66700ee1114f70cbcff47e  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c
! 2926d53e5e3391b93ff4c3fdf9b102c4  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c
! a9e7ff0eac965a3c7cbff3f3be3fdf77  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c
! 50493cebd3df3a5e504c890169d57496  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c
! 08e1fba7264d20e5d5a68eb9e3d96238  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
! ce405318474685a1fe34d771dea2f82e  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c
! a3fbdcd8880d2b38ef90333ee846cfb0  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c
! f5d642efddbd554383cbaa9e19b68090  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c
! aa372c1380771801d70b995b93dcfbad  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68a.c
! 77fa92233fb4fc39191191b80d6b5ab6  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68b.c
! 0e412468aec9c2713d05b85058373067  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68c.c
! 5a7ad9d157bf1bb7f8863e07290ff154  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c
! d7e4207d0458ef7d643b113a4d3b67be  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
! 8f22ac8bc29002f40901ab1712356e3f  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c
! 9ac66f90cde8ee4865e6773bc02157e1  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c
  a0cfa86bcfadab7dd7bfdc45d44a30ee  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c
! 4ffa9e791b25772b0c1da69a089e3784  gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp
  782f0b41429f222276333f508cb8f6be  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-alignpeel.c
  05fc220f1ddbdb4d47d859b5d07869e2  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-fast-math-vect-pr29925.c
  1cdf0d7e4e3b665e1cc3792b6ab6e912  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr104582-1.c
--- 54162,54278 ----
  eb33c9aba50486ac13a7328fde376230  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c
  dc4950313316b732f84a3dbc6a45f70d  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c
  05fc220f1ddbdb4d47d859b5d07869e2  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c
! f69c055c238cc0217c98e86380f16061  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-31.c
! 68ed88a7ee41dc1a8fca3bc8ec542481  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-33.c
! d13254c5eb24a8e02c724470d3f22c66  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-68.c
  460815bb26ae1f6c220e23de56a2d3fd  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c
! 51c62c55c5daf02981cf043a21ef7100  gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
  f8de521e4a7696891de446aa77201098  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
  ffaf8702a4fc3b142c8b1a931c153dae  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c
  d25dc6b156dd43d1cf5e1224a3abb151  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c
  bd8562e8bd66700ee1114f70cbcff47e  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c
! 701712fb8c0a5cde45da4e717a40d128  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-pr82255.c
! 9827509fe791a6b88ed3a3ca38b45452  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c
! 04ec9e0fd7bc2b2c6198872b427ef868  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c
! a7ef9b09736d5268582e03e325fb4c0e  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c
! 06d3056e1427780a6eefeb04e46c9d75  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-perm.c
! 4acd308681557af0328a5142deef7a13  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
! de30f3eabad1cf84463b710042eda400  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c
! ba0b890ead9d4d35a8e44d0233adf9d0  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c
! 5a20fba979e5232490465f39d0999cce  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c
! ac3c274084d6cffb78c0d5b0c713ca72  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68a.c
! 3cc04b136b20283d7a402d2e850ac828  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68b.c
! 27e6237092f2d011b2a932d043d8b6a0  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68c.c
! cd6dac5446d775a94427ecba358d9e79  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c
! af69da60c75fc05307db5a9f16132234  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
! 7ce92e67cc41a9fa641936f19bf89557  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c
! ec3e92d6a56ed9bbb8ea844dbde1d2b9  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c
  a0cfa86bcfadab7dd7bfdc45d44a30ee  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c
! 90fb8f79fb461586d6b7e23b55597db5  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reversed.c
! e1b075d9714c149d8fa498d1a3e56a74  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-store-1.c
! 823b27856ffd2c40c6cd8775afdd3c05  gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-store-2.c
! 92ff423ccc3c0ac014d4b942b69412b6  gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp
! ffed8206bd469b10d2db7829601a2692  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-1.c
! 70bc5e51fe11d28e20adb9352ecf30ab  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-2.c
! 338790618c8bbb3225c024dd8e7a5e32  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-ice-3.c
! f7d1fb8d27ab4cf9ffae02496420b8e4  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c
! 7093493362da3124990a5386cf336c39  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c
! 00f1dae11dc8850a3053baf14814022c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c
! 7e518fc11a5d6936e79e383e302ec517  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-3.c
! fb0779a83315c890e428be22908a30a0  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-4.c
! 75f0959d1a784d5e0ea3342221833fc9  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-5.c
! f7f23f70f7826df3a05a318bd5e632da  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-6.c
! 3a1aac122889ce0ea631f144d6f532bb  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-7.c
! 8b6d04ec57a605c52cd2b07929d9810f  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-1.c
! 5a5292e274a107e46395380e6835f6ae  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-2.c
! 8b6d04ec57a605c52cd2b07929d9810f  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-3.c
! 930465eeb7e560d0f535260f49bba793  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c
! 093cd2208575e614a596f2a401b7b63c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c
! ae492c945415066b7a6a35db28cdd97c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c
! f6d8d6158ac4d829ae424254112a3905  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-7.c
! 33da4b564d716b519f2a81711ec187f6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c
! 0184053a2d211ba6aed4daa5105bdda3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-10.c
! f2317f19938996a698ef438051827fa8  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-11.c
! 6ce36d21bab8c8f0d1ec0445949787e6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-12.c
! 9142a47e0d92eb815a6ab62fb813409b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c
! 64ebc5c00b3b93cf3fba373248930a4a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c
! f90613eca1398e841f666ecb38eb4e66  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c
! a538aa2c6d6d5fe669b39929cfc50b18  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c
! 6c4cb21484bc65e227288f39312dc57b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c
! e5ce45ad08253ab1421aa37cc580e7cc  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c
! 337c7b64a5d457f02c8492fd2fa1aafd  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-9.c
! e5fb34ed6bac60fc3bd747c1f7d59d62  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-1.c
! c77e3227751bb9a8c7a7cf75ddc22830  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-10.c
! 26123072fa512c52055c97c7c76b8ce5  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-11.c
! f798ac51e1550c7537bbd99e35e62d16  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-12.c
! 19081e29f1e62a6af5f2b3541e3347d3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-13.c
! 045f71cd9dc60802f1b1538cff78a188  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-14.c
! 33cd89200cb4fcc1b82602b00dc1b812  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c
! 8867409dcfcc10a34b02ce112f87eb26  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-3.c
! 830d08bebe6bc2a1ee79de78371b6950  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-4.c
! 66a1a92304754b908da7f42efed019b7  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-5.c
! 48fb739a1edb3a6c802592137ae3b924  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-6.c
! 8bbbc4b1c6f342f47fd7ee2222a232c3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-7.c
! 694e0220f13baa716a5985ee126d221a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-8.c
! 103e30a153c56b1ebb14ecf560ece380  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-9.c
! 97dab4827e773bb05c5e5cb3d3cc4cf1  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/no-dynamic-lmul-1.c
! 41e3b09c9cd2e4a261409d6d754d1ea8  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr111153-1.c
! 28a9a6bfa55b6d61ac5076ddaef032bb  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr111317.c
! 31e1d5f720d8a92bc2d90181d5590477  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr11153-2.c
! bfbef312c1eb167e9b377420da07c0dd  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr111848.c
! 0337a6295da9f0855dac6f3c53986429  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr112387-1.c
! 9be8169d72cecf51be42dac4d682221a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr112387-2.c
! cafa8dfe3e91d7693561c1b355e97072  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-1.c
! 696cb400499d38d8d660ac378dfec2f9  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c
! f137e80651e8e42bfbe055bff1c24502  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-3.c
! cf11093d03b5e929ab4b93ee0da4330b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-4.c
! e223c985c0278fae6e62daae83a5fa3f  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-5.c
! 28b94cd084f6b9f35c7224575431dd87  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-1.c
! 9a7e40b18e0358ca4f962a6a4b56f189  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-2.c
! 761fedeff705b8fc8afdd031b9754b44  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-3.c
! d80bfc6c78f7b2de2fe9e7c1d6d6021b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113247-4.c
! d782f4948f51043c2bc59287b57bbb32  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-1.c
! 3e1d95d98310a755a15a7b192d914e2a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-2.c
! 6bb6bd426b1becc418355d493c02c014  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-3.c
! 9d5cc2556fe6a2789953d26755bef7f9  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-4.c
! 7157c7c5d7d7e7686c421f2336dffd68  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113281-5.c
! 9853fcd370fbdb6957bbfc245a52880b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr114264.c
! 979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/riscv_vector.h
! a457f4dcc41b775fdbcdbaecd37c64f7  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/rvv-costmodel-vect.exp
! 788c12f50f2859623dd4839a46f0806e  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-1.c
! 66c697dcf682fdd818f4848d8970deef  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-10.c
! 9072771b626d7fc25eb18399bce2c3a6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-11.c
! 30beb61a7f8086266f6dd9f4f7f51ea4  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-12.c
! 1a3a10db24ec3f5fab84a77c2ef5c91c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-2.c
! b09aa1afa3eca5d2dfadb1403d500c43  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-3.c
! 8f6550c494fda4148506e4e5dd62ec39  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-4.c
! f3b3c1f3914830220fd736199912c878  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-5.c
! 7296f85d85e893225e5a5d323ab3ecfa  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-6.c
! 6e8836f82b2b1ad9fbbeca3425f50f3f  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-7.c
! bf83c84fce376fa1071d163b4073c060  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-8.c
! 475f084590e1a24155b698a5b82bb879  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vla_vs_vls-9.c
! 8895b7114b18f43d6bf43cb52eef46e7  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vse-slp-1.c
! 29a9e73b3585e2597cfe33c8cdd94e43  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/vse-slp-2.c
  782f0b41429f222276333f508cb8f6be  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-alignpeel.c
  05fc220f1ddbdb4d47d859b5d07869e2  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-fast-math-vect-pr29925.c
  1cdf0d7e4e3b665e1cc3792b6ab6e912  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr104582-1.c
*************** ec5c6a4d5052e20e84aa5eb95742d36f  gcc/te
*** 51426,51440 ****
  e094ee1a12f158fa8be372b1974af637  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr69297.c
  95441d9036c7c6a8ec66097fa438a66b  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr83202.c
  48ec02ae594bd65df110f1d4ae1066f9  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr84986.c
! de7dd1e584604b7bdea2dc13b43ddc14  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c
! afc5dba022f09221fdd72f43f975aa2c  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c
! e8ac43ab8cf8cbf7bfd8167cf04e3b0e  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-68.c
  460815bb26ae1f6c220e23de56a2d3fd  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c
  f6fdadd0ea9395aed541bf9b57b73780  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp-2.c
  8fa1df6d327c2eef9e16ea686cbebd42  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c
! cf20fe4f5d8053c0153d855d3581cb6c  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
! 82db66d96715b83f7de0d05c532b64ac  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
! c7b2ca703aba051b9a31eb848cd6195e  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
  dba914eb2c6896f87a7a3bb3e0c40c08  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
  b5419cd17152b23060020cc6c0a8595b  gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c
  3503419d90afd0b4a83e8b5273f36f68  gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
--- 54284,54298 ----
  e094ee1a12f158fa8be372b1974af637  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr69297.c
  95441d9036c7c6a8ec66097fa438a66b  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr83202.c
  48ec02ae594bd65df110f1d4ae1066f9  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr84986.c
! f69c055c238cc0217c98e86380f16061  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c
! 396130749e6b4f9ec773821041143ba0  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c
! d13254c5eb24a8e02c724470d3f22c66  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-68.c
  460815bb26ae1f6c220e23de56a2d3fd  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c
  f6fdadd0ea9395aed541bf9b57b73780  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp-2.c
  8fa1df6d327c2eef9e16ea686cbebd42  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c
! 2ac4c1eff3300ebdae73bfdc8f7e121a  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
! 7784264b91e751cc0641111cc780fd22  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
! 3a222309e7cede5574be8b6ba7839b76  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
  dba914eb2c6896f87a7a3bb3e0c40c08  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
  b5419cd17152b23060020cc6c0a8595b  gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c
  3503419d90afd0b4a83e8b5273f36f68  gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
*************** ba3ba1417b4b4d7190b32549c4cc480d  gcc/te
*** 51442,51451 ****
  4f57edc25078fea449d5575f9bc76591  gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c
  a0e431405b4a231e57edf67833ff2b5e  gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c
  300995981557dfd810e9f01204fd73df  gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
! 5ffb7b2cd3742679d3e39ecab6fad8c8  gcc/testsuite/gcc.dg/vect/fast-math-slp-38.c
! bdeec0b7c7e4063a8cc7302b6fc5cf97  gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c
! 3b1dc406490dfb0ab6492889ec2f3465  gcc/testsuite/gcc.dg/vect/fast-math-vect-call-2.c
! 6cc95709f1aa67e7830dce52461e8468  gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
  d4813c7c6037ade43db3ca011cd64159  gcc/testsuite/gcc.dg/vect/fast-math-vect-outer-7.c
  750d5e431275f271c0ed35bab0126c14  gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-1.c
  aeccb6c4596e9dc997c595bdb09b1715  gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c
--- 54300,54309 ----
  4f57edc25078fea449d5575f9bc76591  gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c
  a0e431405b4a231e57edf67833ff2b5e  gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c
  300995981557dfd810e9f01204fd73df  gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
! e52a1ffa015ccc03cfb71a8f2f1329be  gcc/testsuite/gcc.dg/vect/fast-math-slp-38.c
! ea93bd14440eb99dd28bf11817eb00a8  gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c
! 7dd4608e64338438d380100fd63672a6  gcc/testsuite/gcc.dg/vect/fast-math-vect-call-2.c
! e86a1e483db20d334920fd82c5383854  gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
  d4813c7c6037ade43db3ca011cd64159  gcc/testsuite/gcc.dg/vect/fast-math-vect-outer-7.c
  750d5e431275f271c0ed35bab0126c14  gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-1.c
  aeccb6c4596e9dc997c595bdb09b1715  gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c
*************** aeccb6c4596e9dc997c595bdb09b1715  gcc/te
*** 51456,51553 ****
  7f0608980670dad162f7c6dc5445dee0  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
  c96ad17d79b357aa3a1fafd4373fa123  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
  468cb6f8da74e4fcecd69eee085d36b4  gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
! dc74a68d7d4f6ba1501c231d929ce6b4  gcc/testsuite/gcc.dg/vect/gimplefe-40.c
! 91223cbc995b53e58dcd6701cda19613  gcc/testsuite/gcc.dg/vect/gimplefe-41.c
  0290c046682f1964e85751a23e4b4c75  gcc/testsuite/gcc.dg/vect/group-no-gaps-1.c
! 3ba1ad7e9f05d87d9b64782325c73302  gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
  bb23e40896d73c9770ba4c31753c6025  gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
  cbd914dd109796186423ddfed675979c  gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
  e9916782f0455a8b23c7fbc2a4a6e5f0  gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
  a5ca373c88404a1a95ab1edc403b130a  gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
! b10dd548912b9084dd9939b934144e02  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
! ba5e18e4fd1e9002c7951cc235cad7ee  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
! de73eadb22ff19ae156640df8113cd50  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
  632a3b961d87adfe616ad7b6caf77e2a  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c
! 8ad8447370b44370c338a335ee0d9d11  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c
  dc3a3bc9b79895046a5bf0cec43c1125  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c
  444765775ff88c35d3dd9a64404c4c9b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c
! 6b2a50eb0bf38eaa36f85c6421598613  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c
! 2d1d1020214b7e0db8ac4e0854fd555b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
! 02c6f0280a3c56481a62e175224f1d0e  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
! 4d2c57b99a6e72f3b11a591f9b4ce2dc  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
! a278c861db9c5b56035fb5089bb1a55f  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
  da146f4705b5b76e96df30e97f090b94  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
  f71692f531d922bbf56a02d45f5624b4  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
! a1d8b0c6c26cc7830cd2388347259d96  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
! b48780d16c8a98cb8cc75b6f41666306  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
! 7a7a46d9427ab94918103343958ce47a  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
! 67bd5f8ff75ae0579e75e48a315fd1d2  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
! 24a1712f8a4dc46efd3755acdad3529a  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
  9f50f69fcb296a448ce0f982fb9b64e9  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c
! 321a4da4d7067cc3c36948e1fb8fefe7  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c
! 0cf82c4d18a44fdd60d6c6d9a6327f18  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
! 952e9bdfcf8566548275c787c1ddb604  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c
! 430493066a878de510cf693d00856cbf  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c
! a66b01371868efa9a4adec95cc87ef1f  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c
! b71059b74869a01e94497080a5e24fe6  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
! eb7d1ccb68b4e7ca7c14251b9e20bd9b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
! 9ba30a034fbb33c8f916845d0abcd69d  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
! 8849e7e8c8dd22006ab9a590a57e9e1f  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
! 5c323d242c0dc1470d50f2695937d744  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
! 26ac148f0fdaf32bff987da5e8231b57  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
! 32ef8cd233fa35af0927136f6f6093dd  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
! 846caad3969ddc71abfad67120f60e86  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
  e6095768f1f1931c159ead61694b7ef5  gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
  41e7bd61d87f3d171e9d2194721910ce  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
  8d8da86a4d7847be6c8c6337c5da90d8  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
  b5d81fad47701142c522bbbffb0f3614  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
  cd3ac968b3fbe2cb40b77398720f48d1  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
  b52163346c2e53bdf0d289d24f4d137c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
! 6f338971bf2ba8d471c8bfc321d2ebf4  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
! 1181459f2efd27640cd76ba6e14ce68a  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
  376ff2d180a1e50a4401ec9e6ca0207b  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
! 3e502194f796878514404dce65cf000b  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
! cf3e849c6c6dadaa3cf4e756a2662fde  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
! 9ebc4ac43a9b193a6845163f46b56e5a  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
! ba7c3000d1d865690966568f6267b0a8  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
! cb8239fde6fa61b8b2dd009bb9407e28  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
! 4fa383b9efd12b315d98bf107a050c61  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
! da51cffd1e47aff6e5503dbed6b88052  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c
! a721abd71c136979e5ca41213309578c  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c
! 9bcf27b96de83522ece367566877ca86  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c
! 32277b19d645fded753d07d17d4f13f5  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
! 809b9586d47e6383210cdc4529c21137  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c
  9bb7e0736983a747bdf909b641ac8345  gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c
! 12d96f20cabf42771e4205401a9e8847  gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c
! 8b5be91983c0cacf3ac1965cea068ee3  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c
! d6e0dd32f292a6d49d02bdb3e0d9fb94  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c
! 7ab040a228f04ec8a261ab3487a4de59  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c
! 7bef2ddb81be81f63bb704c680afa2fe  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c
! 7bef2ddb81be81f63bb704c680afa2fe  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c
! d439c35ee0abe4e70ac098029c2e6cf4  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c
! bd375aac935bab28b8bb7f1b33d12836  gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c
  deb80b9e42227ef9cf3ab1d7f28f3f42  gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c
  9d154ff23b4a783dc0c623860ab1b50c  gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c
! 1c63d8c2e71e99f2f4dae43c53bb6555  gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
  80e3432e13638dba27b02c0b1fe76fea  gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c
  98363a4caed4fef8e2d82dc3b4776d97  gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c
! 353ce72fd19727fe5790eb78afad584a  gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
! 109d46d999481abc6706a1e03a8cfd19  gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
! 2ca81df55a0a27062064e437c8be6c4f  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
! ee3b53c86be7a5fecbb8472ba448b418  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c
! 16d1312f89fe5268558d0a1b425059ec  gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c
! 0e3f2524992ea25d9916d65f98d007f7  gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
! 61a43ccfa38c7830737494bc6298810c  gcc/testsuite/gcc.dg/vect/no-vfa-vect-45.c
! 8139eb3c3b115d6f6b52912e68f9c90b  gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c
! 2519a9c68b3311372dc53a30499bfd6e  gcc/testsuite/gcc.dg/vect/no-vfa-vect-51.c
! 0181e9f1f425f33f7716405042b7ff96  gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c
! fc10208c55881431e6477e4618491f9e  gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
! 6dcd4afc04a3078b894bd8b9273794f2  gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
! cc946be513229c842b441477d742adec  gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c
! 90ab4de708b524f7cbbdacf1cc401f14  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-1.c
! d53ba1956152b091d0556807a2646668  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
! f098c26c1e0188d733a3992b19505255  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
! 91af3673bc1774acfcabeaa64650294f  gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c
  d122ac18b4a3ae4813e46562ff41d564  gcc/testsuite/gcc.dg/vect/nodump-forwprop-22.c
  ac90ad8f4383592387ff86cb8dbd78ce  gcc/testsuite/gcc.dg/vect/nodump-pr23073.c
  8bb8b8c5a5dd310d79c2ef7142ad2432  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c
--- 54314,54411 ----
  7f0608980670dad162f7c6dc5445dee0  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
  c96ad17d79b357aa3a1fafd4373fa123  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
  468cb6f8da74e4fcecd69eee085d36b4  gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
! 4efebcda88a2225070cc962fc6d82fc9  gcc/testsuite/gcc.dg/vect/gimplefe-40.c
! d4210e4a58cd5fb42ac6afbcf9a8f361  gcc/testsuite/gcc.dg/vect/gimplefe-41.c
  0290c046682f1964e85751a23e4b4c75  gcc/testsuite/gcc.dg/vect/group-no-gaps-1.c
! 0a675f5442e2a158dd6bd64df302bb2c  gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
  bb23e40896d73c9770ba4c31753c6025  gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
  cbd914dd109796186423ddfed675979c  gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
  e9916782f0455a8b23c7fbc2a4a6e5f0  gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
  a5ca373c88404a1a95ab1edc403b130a  gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
! 5e809f76a90b3214ed4c5c22b9ed3546  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
! 31f492da75d5c984323816dc8ff1e160  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
! 5d97c676fcf52690b27698a4ae640549  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
  632a3b961d87adfe616ad7b6caf77e2a  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c
! 5c8d741d16bae59236f53f3e4139bde3  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c
  dc3a3bc9b79895046a5bf0cec43c1125  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c
  444765775ff88c35d3dd9a64404c4c9b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c
! 2aae889e51be404f0bcf161226bbd576  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c
! b3129ec8ea8c7da6a0173ab2b1fe7290  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
! 135ec340fd3635c4013bfc7b877ecf35  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
! 4c7c5b36a98813fdee9001398294329c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
! d851a2040b67fef622d08340c1a85827  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
  da146f4705b5b76e96df30e97f090b94  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
  f71692f531d922bbf56a02d45f5624b4  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
! 5184bb3c35060df529c04971144b043d  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
! 733389f42b2f0989683c4925e91966fe  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
! 633c8ed2387eb126f8f6cca1e27c3713  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
! e7b5de1894b484ced0e49d90a7968a99  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
! 7eb0dd5173ffba4f1ea3b31b1a809652  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
  9f50f69fcb296a448ce0f982fb9b64e9  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c
! 72e4890bb4c779fc0dd23ae637b24b82  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c
! 34c1f4c303fffc2f4383bc2136ea8b12  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
! 7bc65670a413530a863b18bbb7954090  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c
! 735727110e852301d8d1d7ac36fca871  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c
! 6b127c94dc5bb97f5e607eeedd0bbff9  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c
! ec6fe1711153176d2e700ad62a181692  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
! 02cb63b256d7ab498f11c4d83bebf638  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
! 8ca71521b63e0a2f3280f94f4aad2cb1  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
! a37d4a6114535b5f2083ef4cf2d8b87a  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
! f1a74ad4034497d9cd8c0f6653cd832c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
! 2785d935171620f92974cd3b73efe8d5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
! 696e58e1a9d66a6229a4418239470e20  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
! 5212f6bfc76ea8cf4d27d31bf55dec68  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
  e6095768f1f1931c159ead61694b7ef5  gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
  41e7bd61d87f3d171e9d2194721910ce  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
  8d8da86a4d7847be6c8c6337c5da90d8  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
  b5d81fad47701142c522bbbffb0f3614  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
  cd3ac968b3fbe2cb40b77398720f48d1  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
  b52163346c2e53bdf0d289d24f4d137c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
! 0fec78cf46f702db1cd1beb06e8a395c  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
! 69f7f8c279ae4830ca4ae144a8fb357e  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
  376ff2d180a1e50a4401ec9e6ca0207b  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
! adc82a204a804f0f74bd416c874eedca  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
! 5275e437bcf37fd85b8a35bc4dacc143  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
! f6d719f2f0c5479786a8b86a479327a1  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
! 95ca43c5701ec86ab475429a67375132  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
! d4404b4f2f9ff09ef71a31254c4aafcd  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
! 412234e30d445edf3132f3e4bbb4836e  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
! fe015b93da5ee269e8f46ec570a18d14  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c
! 7bca351db6f0e3ef6ca3c55ab7db9024  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c
! 0ec1438efe6d02e461b3c52a5631997e  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c
! fa930dcbe795913d5ac14d8459b69e60  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
! e99507d97e91edb5c0d902cf8de380ea  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c
  9bb7e0736983a747bdf909b641ac8345  gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c
! 3461f63ca373760633bb8e942938ee38  gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c
! 5cbbfffc47dc1a776b1c2d5db5d4db62  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c
! c07fd28f097aea3bc73cf3f4db1ed84c  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c
! 70703e0cfc465cf5bb67b058bf9f9418  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c
! 742241c33b1ead9bb254f758b55a5210  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c
! 742241c33b1ead9bb254f758b55a5210  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c
! 7d1936518e449c572147bc1855b05712  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c
! c5a5b5a62e09fcafc91522f67de660b1  gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c
  deb80b9e42227ef9cf3ab1d7f28f3f42  gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c
  9d154ff23b4a783dc0c623860ab1b50c  gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c
! 25ecbed72fa7aedfcb243446098a1493  gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
  80e3432e13638dba27b02c0b1fe76fea  gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c
  98363a4caed4fef8e2d82dc3b4776d97  gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c
! 0b91915a1cc2de5a3ac43ecfa059e891  gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
! e51492ac67013986086c8e562c727373  gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
! 20be964fb05adb6aa52458392982b140  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
! e8f8c0ec7407fd45b7349d5a77639ab5  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c
! 55320b2f648ee741e5dfca32c22ac74a  gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c
! 2148b4fcd7fffd70ed262ba8802e8836  gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
! 621526681d7f7378d9c790f368941262  gcc/testsuite/gcc.dg/vect/no-vfa-vect-45.c
! 3d01931be3d6a4ebe2c579a3dee0ef6f  gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c
! 343d908be28e1f05879937d594ab2218  gcc/testsuite/gcc.dg/vect/no-vfa-vect-51.c
! 672c267c905a2637bf140767368997cc  gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c
! eef9fbf8ce207c436ec7c5f431cfc25e  gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
! e357a5d7869c2160f3b4cfd764ec56c2  gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
! d8aacd34dc1932ba87f9bde9decf6c57  gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c
! b4c570225a94d0bedb79cf6d24748610  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-1.c
! 29c66e255f37542e313b1053513fea94  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
! 9cfea891468bf76480babd2052690f4e  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
! d66092431baa66c6073c1caed84f72a6  gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c
  d122ac18b4a3ae4813e46562ff41d564  gcc/testsuite/gcc.dg/vect/nodump-forwprop-22.c
  ac90ad8f4383592387ff86cb8dbd78ce  gcc/testsuite/gcc.dg/vect/nodump-pr23073.c
  8bb8b8c5a5dd310d79c2ef7142ad2432  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c
*************** eef9d53f7fc64f5bf484207cbabd7414  gcc/te
*** 51558,51567 ****
  25482ceb1124b6cb3b0b4a429c5903c3  gcc/testsuite/gcc.dg/vect/pr101145_1.c
  934d5ab38d163ec43088d96a3e867322  gcc/testsuite/gcc.dg/vect/pr101145_2.c
  e31e77a43384ba3824812ab7b9248617  gcc/testsuite/gcc.dg/vect/pr101145_3.c
! 7d3c5e393206dac2719dc826713d3f7e  gcc/testsuite/gcc.dg/vect/pr101145inf.c
  d5f2105742a211cdf1e93edf3df752b5  gcc/testsuite/gcc.dg/vect/pr101145inf.inc
! 6f75b244aeadf47d581f9c4a8ed3b7ef  gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
! bd6686ddac4dec394f0f0af136fe8012  gcc/testsuite/gcc.dg/vect/pr101445.c
  ae8b9fa809bc0868516d373dbc070b85  gcc/testsuite/gcc.dg/vect/pr101505.c
  6893aed7299a121a69eb5b9deac04ae4  gcc/testsuite/gcc.dg/vect/pr102046.c
  859bb5bf4a83258b4c99d26be93ed965  gcc/testsuite/gcc.dg/vect/pr102318.c
--- 54416,54425 ----
  25482ceb1124b6cb3b0b4a429c5903c3  gcc/testsuite/gcc.dg/vect/pr101145_1.c
  934d5ab38d163ec43088d96a3e867322  gcc/testsuite/gcc.dg/vect/pr101145_2.c
  e31e77a43384ba3824812ab7b9248617  gcc/testsuite/gcc.dg/vect/pr101145_3.c
! a77031361251e1360c755d4e8e3e1b5b  gcc/testsuite/gcc.dg/vect/pr101145inf.c
  d5f2105742a211cdf1e93edf3df752b5  gcc/testsuite/gcc.dg/vect/pr101145inf.inc
! b46316b7cc11753f28cbf037c3cbea91  gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
! 3afd2e83ab31eb426ca675f9d658fd30  gcc/testsuite/gcc.dg/vect/pr101445.c
  ae8b9fa809bc0868516d373dbc070b85  gcc/testsuite/gcc.dg/vect/pr101505.c
  6893aed7299a121a69eb5b9deac04ae4  gcc/testsuite/gcc.dg/vect/pr102046.c
  859bb5bf4a83258b4c99d26be93ed965  gcc/testsuite/gcc.dg/vect/pr102318.c
*************** dcd21bad9a0ccaa6b61cc26ae10498ab  gcc/te
*** 51572,51578 ****
  3027554c675b698964371551d4c242aa  gcc/testsuite/gcc.dg/vect/pr103494.c
  167997ae7fe74f3c29652d5e227a608e  gcc/testsuite/gcc.dg/vect/pr103517.c
  b02b62e31de9fe3f178db0e94281db9e  gcc/testsuite/gcc.dg/vect/pr103544.c
! f358711d4f8108113a44ec088145255a  gcc/testsuite/gcc.dg/vect/pr103581.c
  2b06fc8e5822751c29cc7d2a9370c317  gcc/testsuite/gcc.dg/vect/pr103744-1.c
  8a77c6f0f3b5e4794037b85c74246d47  gcc/testsuite/gcc.dg/vect/pr103744-2.c
  fd7e1b94d8c4315a2364eebdd0c788df  gcc/testsuite/gcc.dg/vect/pr103761.c
--- 54430,54436 ----
  3027554c675b698964371551d4c242aa  gcc/testsuite/gcc.dg/vect/pr103494.c
  167997ae7fe74f3c29652d5e227a608e  gcc/testsuite/gcc.dg/vect/pr103517.c
  b02b62e31de9fe3f178db0e94281db9e  gcc/testsuite/gcc.dg/vect/pr103544.c
! 5099dcaa01e9bfde9b9c92015c794ca5  gcc/testsuite/gcc.dg/vect/pr103581.c
  2b06fc8e5822751c29cc7d2a9370c317  gcc/testsuite/gcc.dg/vect/pr103744-1.c
  8a77c6f0f3b5e4794037b85c74246d47  gcc/testsuite/gcc.dg/vect/pr103744-2.c
  fd7e1b94d8c4315a2364eebdd0c788df  gcc/testsuite/gcc.dg/vect/pr103761.c
*************** b53f19c5cce29955511b5d817d2f0418  gcc/te
*** 51583,51594 ****
  793fae35b1a1e920435aac3954c23d69  gcc/testsuite/gcc.dg/vect/pr104445.c
  d69269cb4ebabc5a087a077a3f160d36  gcc/testsuite/gcc.dg/vect/pr104595.c
  1e8e221275bfa8e8dc66a37d14f07f32  gcc/testsuite/gcc.dg/vect/pr104782.c
! 98736a2db3fdc5e7b1063193abafc00f  gcc/testsuite/gcc.dg/vect/pr105219.c
  1677ed7c45e6703fe35e0c2366f6bb59  gcc/testsuite/gcc.dg/vect/pr106250.c
  a82282f2fe95b4b06a700f2c046471b0  gcc/testsuite/gcc.dg/vect/pr106914.c
! 65b4f8979f34c05baa567391729a83e6  gcc/testsuite/gcc.dg/vect/pr107160.c
! f1c2ca8659ed33069fed7de6e429bc7e  gcc/testsuite/gcc.dg/vect/pr107212-1.c
! 4d42750e9517b302a0544999b3f7fcc1  gcc/testsuite/gcc.dg/vect/pr107212-2.c
  c39e8942cd73a8d2514fd1c87f13f049  gcc/testsuite/gcc.dg/vect/pr107229-1.c
  cd5ad38c33be8ec2737a203e34259a0f  gcc/testsuite/gcc.dg/vect/pr107229-2.c
  e35b2631434308a15ce0dad177058fce  gcc/testsuite/gcc.dg/vect/pr107229-3.c
--- 54441,54453 ----
  793fae35b1a1e920435aac3954c23d69  gcc/testsuite/gcc.dg/vect/pr104445.c
  d69269cb4ebabc5a087a077a3f160d36  gcc/testsuite/gcc.dg/vect/pr104595.c
  1e8e221275bfa8e8dc66a37d14f07f32  gcc/testsuite/gcc.dg/vect/pr104782.c
! ef88f0d058be6add1e55209b3a683a64  gcc/testsuite/gcc.dg/vect/pr105219.c
! baca9a33eba679fae2999fda53db33d5  gcc/testsuite/gcc.dg/vect/pr106081.c
  1677ed7c45e6703fe35e0c2366f6bb59  gcc/testsuite/gcc.dg/vect/pr106250.c
  a82282f2fe95b4b06a700f2c046471b0  gcc/testsuite/gcc.dg/vect/pr106914.c
! 0b81f74933d14ac7b75958ce5a6c1782  gcc/testsuite/gcc.dg/vect/pr107160.c
! 6aa8a8ad7d19a70339a7fa447d7efab2  gcc/testsuite/gcc.dg/vect/pr107212-1.c
! 4b5f1417ddb63ca312f0865fefd30b3a  gcc/testsuite/gcc.dg/vect/pr107212-2.c
  c39e8942cd73a8d2514fd1c87f13f049  gcc/testsuite/gcc.dg/vect/pr107229-1.c
  cd5ad38c33be8ec2737a203e34259a0f  gcc/testsuite/gcc.dg/vect/pr107229-2.c
  e35b2631434308a15ce0dad177058fce  gcc/testsuite/gcc.dg/vect/pr107229-3.c
*************** e35b2631434308a15ce0dad177058fce  gcc/te
*** 51596,51614 ****
  c65533e1ccb5c102bc25ce3dc93172d8  gcc/testsuite/gcc.dg/vect/pr107302.c
  f2b4fd422f1a8a843040f86cce9edfa2  gcc/testsuite/gcc.dg/vect/pr107326.c
  ccbd4ad0ec4d5c7d66ae8a17324026a8  gcc/testsuite/gcc.dg/vect/pr108314.c
! a1aac4d2d18c86d4f8a2b483d19f6571  gcc/testsuite/gcc.dg/vect/pr108316.c
! e131976da53307331b69c03e9c64cc4a  gcc/testsuite/gcc.dg/vect/pr108608.c
  42e71f76f5fec72cddb8f569851aa595  gcc/testsuite/gcc.dg/vect/pr108950.c
  4c3bfccc66bd917fd713c2ef21b62992  gcc/testsuite/gcc.dg/vect/pr109025.c
  bce13fdf2ea61a0bc1886470eed1bf60  gcc/testsuite/gcc.dg/vect/pr109473.c
! aa0a603e6aee5b8a3fd3463354c9bf10  gcc/testsuite/gcc.dg/vect/pr109502.c
! 61caac1f4435045879dd40b08cc7fcec  gcc/testsuite/gcc.dg/vect/pr110381.c
  42d48d2ecd5682545b12ac42f879a831  gcc/testsuite/gcc.dg/vect/pr16105.c
  231c99dba9475fe09525bbf6f4374124  gcc/testsuite/gcc.dg/vect/pr18308.c
! 3aed50f38aa86c4915d6e4b3cef91287  gcc/testsuite/gcc.dg/vect/pr18400.c
  d6aff1909a921e27333361faf66ca1fd  gcc/testsuite/gcc.dg/vect/pr18425.c
! 28ffa71c56b598d3949f9416b0d74942  gcc/testsuite/gcc.dg/vect/pr18536.c
! 9ae72eab5a4e2193c6f90e31a3a1dc21  gcc/testsuite/gcc.dg/vect/pr20122.c
  7ec6711ac256f06d11fe4deffb4de197  gcc/testsuite/gcc.dg/vect/pr21591.c
  93062dc07459216ae29daaf0daf682b7  gcc/testsuite/gcc.dg/vect/pr21969.c
  a1229c02ab8bf4dbd422f256e4404163  gcc/testsuite/gcc.dg/vect/pr22480.c
--- 54455,54510 ----
  c65533e1ccb5c102bc25ce3dc93172d8  gcc/testsuite/gcc.dg/vect/pr107302.c
  f2b4fd422f1a8a843040f86cce9edfa2  gcc/testsuite/gcc.dg/vect/pr107326.c
  ccbd4ad0ec4d5c7d66ae8a17324026a8  gcc/testsuite/gcc.dg/vect/pr108314.c
! 66d2abe9c41829a342449e916654a1d9  gcc/testsuite/gcc.dg/vect/pr108316.c
! cd501eb39fb5991c37f6b640db11e4b9  gcc/testsuite/gcc.dg/vect/pr108608.c
  42e71f76f5fec72cddb8f569851aa595  gcc/testsuite/gcc.dg/vect/pr108950.c
+ 4bdba4486420388953db5c8a7aa0f39b  gcc/testsuite/gcc.dg/vect/pr109011-1.c
+ 2a6a665a277104679fb937e56c29dc3d  gcc/testsuite/gcc.dg/vect/pr109011-2.c
+ f7d1bedc5bf1199771f4ce87a705240a  gcc/testsuite/gcc.dg/vect/pr109011-3.c
+ 060b9898eb5f6c62189bbf2ad7359dbd  gcc/testsuite/gcc.dg/vect/pr109011-4.c
+ 2f9a863705f358a2e304b801de1542ca  gcc/testsuite/gcc.dg/vect/pr109011-5.c
  4c3bfccc66bd917fd713c2ef21b62992  gcc/testsuite/gcc.dg/vect/pr109025.c
  bce13fdf2ea61a0bc1886470eed1bf60  gcc/testsuite/gcc.dg/vect/pr109473.c
! 8c383ef6a1ef6fccfbf9db8655155e9f  gcc/testsuite/gcc.dg/vect/pr109502.c
! aca5bd50cec92a92dc7001d05a119869  gcc/testsuite/gcc.dg/vect/pr110142.c
! baaa98ae2916da0747250082d79ae452  gcc/testsuite/gcc.dg/vect/pr110381.c
! bc0df90868b912d6f740eccb4b2b73fb  gcc/testsuite/gcc.dg/vect/pr110838.c
! b3d2fa6178591498d3cf54ea157c655c  gcc/testsuite/gcc.dg/vect/pr111754.c
! 6fe7a9f8a10f6b62e25fc4c1fa96deff  gcc/testsuite/gcc.dg/vect/pr111764.c
! cc75756dd806302f17415b7431f25d94  gcc/testsuite/gcc.dg/vect/pr111846.c
! f3a261701959ac2b47476c1030a0b0f0  gcc/testsuite/gcc.dg/vect/pr111860-2.c
! f3a261701959ac2b47476c1030a0b0f0  gcc/testsuite/gcc.dg/vect/pr111860-3.c
! fcd62ed55b3c39965db79cc237474ba7  gcc/testsuite/gcc.dg/vect/pr111860.c
! 9386a649786af115ac3366d153cb1ece  gcc/testsuite/gcc.dg/vect/pr111882.c
! e0a4c017051217573c6b9a677272bd56  gcc/testsuite/gcc.dg/vect/pr111915.c
! 769cf4bfcb97c43ac962799ae8d222c5  gcc/testsuite/gcc.dg/vect/pr112505.c
! 61f2084097045706a89a10ff2539ff64  gcc/testsuite/gcc.dg/vect/pr112774.c
! 74f8fa21b890e04b38c4f16805d074a3  gcc/testsuite/gcc.dg/vect/pr112818.c
! 2175988acf47d5b755fecc4c8e6295ee  gcc/testsuite/gcc.dg/vect/pr113002.c
! c26acbf1612dc4698a8344d64f963df0  gcc/testsuite/gcc.dg/vect/pr113281-1.c
! 21722bf37953d9796f5d5fd71e243c2b  gcc/testsuite/gcc.dg/vect/pr113281-2.c
! 31ad99fbdbecf9925f5f4504adc83b13  gcc/testsuite/gcc.dg/vect/pr113281-3.c
! e7f3d45d3b7be1d3f34c03fe14a64322  gcc/testsuite/gcc.dg/vect/pr113281-4.c
! 8f0bbff86de57f60a2a350c847f4db18  gcc/testsuite/gcc.dg/vect/pr113281-5.c
! a625823efd8fef236da2a9d09aac2d38  gcc/testsuite/gcc.dg/vect/pr113371.c
! 28a525506efb3dd3a5d9317a10bf1e7d  gcc/testsuite/gcc.dg/vect/pr113431.c
! b1cdd3c6aefbc3dde4884c1feb68b95f  gcc/testsuite/gcc.dg/vect/pr113576.c
! 402cfcbaf7768a8351fd906cfecfc467  gcc/testsuite/gcc.dg/vect/pr113863.c
! 2d455da5d02021509d6b9eb92207f92f  gcc/testsuite/gcc.dg/vect/pr113902.c
! f2ad143cd940fa42deda153f442d29b2  gcc/testsuite/gcc.dg/vect/pr114027.c
! 3c09450a4f0323e04e1f096b790cddae  gcc/testsuite/gcc.dg/vect/pr114108.c
! ae8b389a68778f9cfdd3436253d31b14  gcc/testsuite/gcc.dg/vect/pr114231.c
! 19461e6055477a59e5893710d251b212  gcc/testsuite/gcc.dg/vect/pr114322.c
! e3aaddf0ac2fdd37a5228a58d8c0f079  gcc/testsuite/gcc.dg/vect/pr114471.c
! 0079bcebbbf82f5487b36b4f2e1532ef  gcc/testsuite/gcc.dg/vect/pr114485.c
! c0f0ed71d5889d42079442a4cdca8181  gcc/testsuite/gcc.dg/vect/pr114733.c
! ffa061cc92fc1fdab57b5c587a33d81b  gcc/testsuite/gcc.dg/vect/pr114832.c
  42d48d2ecd5682545b12ac42f879a831  gcc/testsuite/gcc.dg/vect/pr16105.c
  231c99dba9475fe09525bbf6f4374124  gcc/testsuite/gcc.dg/vect/pr18308.c
! 915cf38408eaa7fee5013d90ec1c3251  gcc/testsuite/gcc.dg/vect/pr18400.c
  d6aff1909a921e27333361faf66ca1fd  gcc/testsuite/gcc.dg/vect/pr18425.c
! c7f2c7c68d7182c094641d1fa656b575  gcc/testsuite/gcc.dg/vect/pr18536.c
! 8dfc07174c0b1cb284ce2ced6f244121  gcc/testsuite/gcc.dg/vect/pr20122.c
  7ec6711ac256f06d11fe4deffb4de197  gcc/testsuite/gcc.dg/vect/pr21591.c
  93062dc07459216ae29daaf0daf682b7  gcc/testsuite/gcc.dg/vect/pr21969.c
  a1229c02ab8bf4dbd422f256e4404163  gcc/testsuite/gcc.dg/vect/pr22480.c
*************** ee6aef039a540fc0ec6f028ae5c8e51a  gcc/te
*** 51620,51632 ****
  fdf8a174e47e1f4318a6da556f44c549  gcc/testsuite/gcc.dg/vect/pr24059.c
  92e9f91a60720269bfb35a3ceb22fc06  gcc/testsuite/gcc.dg/vect/pr24300.c
  48b0e55c3f50eda8d40483392c4ee61e  gcc/testsuite/gcc.dg/vect/pr25371.c
! b972eb3535ad7b67ff80f3ff6ea1049f  gcc/testsuite/gcc.dg/vect/pr25413.c
! b4686f8ea054e3c9109b8db9de24e873  gcc/testsuite/gcc.dg/vect/pr25413a.c
  ca08fe6054188ea7431d12ad5529e257  gcc/testsuite/gcc.dg/vect/pr26359.c
  ad21873ce089b706df5718647e61cf3d  gcc/testsuite/gcc.dg/vect/pr27151.c
  317c1e81850b07b04db7735e6a85de5b  gcc/testsuite/gcc.dg/vect/pr28952.c
  277d435ff88475f0dcdb33757678b038  gcc/testsuite/gcc.dg/vect/pr30771.c
! 91f3cfc3259c13aaa1bb61687812437f  gcc/testsuite/gcc.dg/vect/pr30784.c
  1c3b739b47b2ce29129c1665dc09872b  gcc/testsuite/gcc.dg/vect/pr30795.c
  11d70ba6923338f1bffc0985e5e8251c  gcc/testsuite/gcc.dg/vect/pr30843.c
  4c14ec7fa1a829e47c563d055c2b40df  gcc/testsuite/gcc.dg/vect/pr30858.c
--- 54516,54528 ----
  fdf8a174e47e1f4318a6da556f44c549  gcc/testsuite/gcc.dg/vect/pr24059.c
  92e9f91a60720269bfb35a3ceb22fc06  gcc/testsuite/gcc.dg/vect/pr24300.c
  48b0e55c3f50eda8d40483392c4ee61e  gcc/testsuite/gcc.dg/vect/pr25371.c
! 82fbe152f665fa3cdfbaf8b1ca818e0c  gcc/testsuite/gcc.dg/vect/pr25413.c
! a3809d32f12307eb2439f186a8587a39  gcc/testsuite/gcc.dg/vect/pr25413a.c
  ca08fe6054188ea7431d12ad5529e257  gcc/testsuite/gcc.dg/vect/pr26359.c
  ad21873ce089b706df5718647e61cf3d  gcc/testsuite/gcc.dg/vect/pr27151.c
  317c1e81850b07b04db7735e6a85de5b  gcc/testsuite/gcc.dg/vect/pr28952.c
  277d435ff88475f0dcdb33757678b038  gcc/testsuite/gcc.dg/vect/pr30771.c
! cc7d87eeb7db9afd235fae6f4193108d  gcc/testsuite/gcc.dg/vect/pr30784.c
  1c3b739b47b2ce29129c1665dc09872b  gcc/testsuite/gcc.dg/vect/pr30795.c
  11d70ba6923338f1bffc0985e5e8251c  gcc/testsuite/gcc.dg/vect/pr30843.c
  4c14ec7fa1a829e47c563d055c2b40df  gcc/testsuite/gcc.dg/vect/pr30858.c
*************** a46ff63fc3b27434f0db611d79725ce2  gcc/te
*** 51656,51670 ****
  076894cab1127f499c660888eba6f8d6  gcc/testsuite/gcc.dg/vect/pr36228.c
  ae97e84d313b97e32d4f5ae51b419f10  gcc/testsuite/gcc.dg/vect/pr36493.c
  0de39ab286dcf8379f2e871243d6cc34  gcc/testsuite/gcc.dg/vect/pr36630.c
! f3178dd8a97bbef1bb5480baf068a01b  gcc/testsuite/gcc.dg/vect/pr37027.c
  17c749c43cc818202fef9f0ff16a4d0c  gcc/testsuite/gcc.dg/vect/pr37385.c
  51202ee05bb59aaf801bf6253306ef4a  gcc/testsuite/gcc.dg/vect/pr37474.c
  0f4fd4952fbee1eaf1341cd8d538bf24  gcc/testsuite/gcc.dg/vect/pr37482.c
! 28e1032ac950fec4a4618e49b0c3f45a  gcc/testsuite/gcc.dg/vect/pr37539.c
  549ffab1747e1c691dd648ecb97f2f65  gcc/testsuite/gcc.dg/vect/pr37730.c
  cba3296b9589cb4873c9df9b34711683  gcc/testsuite/gcc.dg/vect/pr38529.c
  b4cc0a825d878a37cdf76a1cfe5127d3  gcc/testsuite/gcc.dg/vect/pr39529.c
! 087b79dc31d3a0ed77d9347cedcc563c  gcc/testsuite/gcc.dg/vect/pr40074.c
  4f58669762e1f8d8857e33e38487d08f  gcc/testsuite/gcc.dg/vect/pr40238.c
  9378946634542b99fcc94167796b7843  gcc/testsuite/gcc.dg/vect/pr40254.c
  cd935331160cf0281e45fafa4749f5f0  gcc/testsuite/gcc.dg/vect/pr40542.c
--- 54552,54566 ----
  076894cab1127f499c660888eba6f8d6  gcc/testsuite/gcc.dg/vect/pr36228.c
  ae97e84d313b97e32d4f5ae51b419f10  gcc/testsuite/gcc.dg/vect/pr36493.c
  0de39ab286dcf8379f2e871243d6cc34  gcc/testsuite/gcc.dg/vect/pr36630.c
! 3c520be59793b5b197cbdf335b409320  gcc/testsuite/gcc.dg/vect/pr37027.c
  17c749c43cc818202fef9f0ff16a4d0c  gcc/testsuite/gcc.dg/vect/pr37385.c
  51202ee05bb59aaf801bf6253306ef4a  gcc/testsuite/gcc.dg/vect/pr37474.c
  0f4fd4952fbee1eaf1341cd8d538bf24  gcc/testsuite/gcc.dg/vect/pr37482.c
! dc80041cd898d4b1d574b1cea3ec80f0  gcc/testsuite/gcc.dg/vect/pr37539.c
  549ffab1747e1c691dd648ecb97f2f65  gcc/testsuite/gcc.dg/vect/pr37730.c
  cba3296b9589cb4873c9df9b34711683  gcc/testsuite/gcc.dg/vect/pr38529.c
  b4cc0a825d878a37cdf76a1cfe5127d3  gcc/testsuite/gcc.dg/vect/pr39529.c
! 3259b47ff6d5323a71479de0e8cbd43b  gcc/testsuite/gcc.dg/vect/pr40074.c
  4f58669762e1f8d8857e33e38487d08f  gcc/testsuite/gcc.dg/vect/pr40238.c
  9378946634542b99fcc94167796b7843  gcc/testsuite/gcc.dg/vect/pr40254.c
  cd935331160cf0281e45fafa4749f5f0  gcc/testsuite/gcc.dg/vect/pr40542.c
*************** f1ef3d07a2fda546b09d4fa9df469b6e  gcc/te
*** 51680,51689 ****
  8c048eca5b035663b764f0d53af6cd31  gcc/testsuite/gcc.dg/vect/pr43842.c
  9ec7b3ea846c1dce7c3f519d615efccc  gcc/testsuite/gcc.dg/vect/pr44507.c
  747998e3ae4f8a1bbfd93c248af40a73  gcc/testsuite/gcc.dg/vect/pr45633.c
! 277f4616723257025b4737545b9bc4d0  gcc/testsuite/gcc.dg/vect/pr45752.c
  34ad24fd4967722fdee1f299bd913fdf  gcc/testsuite/gcc.dg/vect/pr45847.c
! 7ffb8b228d406b08c8f1a38dfd458d83  gcc/testsuite/gcc.dg/vect/pr45902.c
! 077b06fe00ec6287ef58ee5a4072426c  gcc/testsuite/gcc.dg/vect/pr46009.c
  561e465aec68a415f763b2c7a2968c7a  gcc/testsuite/gcc.dg/vect/pr46032.c
  81f906b41eee1a5e8d0a46ce93d7f018  gcc/testsuite/gcc.dg/vect/pr46049.c
  d2d836651023c6911336e1bb824c9135  gcc/testsuite/gcc.dg/vect/pr46052.c
--- 54576,54585 ----
  8c048eca5b035663b764f0d53af6cd31  gcc/testsuite/gcc.dg/vect/pr43842.c
  9ec7b3ea846c1dce7c3f519d615efccc  gcc/testsuite/gcc.dg/vect/pr44507.c
  747998e3ae4f8a1bbfd93c248af40a73  gcc/testsuite/gcc.dg/vect/pr45633.c
! 157933927ee3d2564b25f70ee3996221  gcc/testsuite/gcc.dg/vect/pr45752.c
  34ad24fd4967722fdee1f299bd913fdf  gcc/testsuite/gcc.dg/vect/pr45847.c
! 4af8e24aaf2def7cf29005c775b27d5b  gcc/testsuite/gcc.dg/vect/pr45902.c
! 955e1ce8cf21c0feeb8005e2bcbac453  gcc/testsuite/gcc.dg/vect/pr46009.c
  561e465aec68a415f763b2c7a2968c7a  gcc/testsuite/gcc.dg/vect/pr46032.c
  81f906b41eee1a5e8d0a46ce93d7f018  gcc/testsuite/gcc.dg/vect/pr46049.c
  d2d836651023c6911336e1bb824c9135  gcc/testsuite/gcc.dg/vect/pr46052.c
*************** c2455168a41837341a911785e40a72e5  gcc/te
*** 51692,51700 ****
  090bf1e14d04cab8061ba8332f48059e  gcc/testsuite/gcc.dg/vect/pr47001.c
  0e9c5aa263e38724e91be164ba88afee  gcc/testsuite/gcc.dg/vect/pr47139.c
  8a7ca8f2db3165ea9146e11392e68722  gcc/testsuite/gcc.dg/vect/pr48052.c
! 632fa56eee2cc26db53055117caed41e  gcc/testsuite/gcc.dg/vect/pr48172.c
  f20a1760d264fe0667bfd7990309368f  gcc/testsuite/gcc.dg/vect/pr48377.c
! f1d73b113c2ba2f1bc36c26a166742ac  gcc/testsuite/gcc.dg/vect/pr48765.c
  6cbb0ca0c466ff1208f5c003f81ab645  gcc/testsuite/gcc.dg/vect/pr49038.c
  5693d2db7c6fd6a87fdce1ddb192cbd2  gcc/testsuite/gcc.dg/vect/pr49093.c
  ca3c5574bbb2e574a5ec16290e473133  gcc/testsuite/gcc.dg/vect/pr49318.c
--- 54588,54596 ----
  090bf1e14d04cab8061ba8332f48059e  gcc/testsuite/gcc.dg/vect/pr47001.c
  0e9c5aa263e38724e91be164ba88afee  gcc/testsuite/gcc.dg/vect/pr47139.c
  8a7ca8f2db3165ea9146e11392e68722  gcc/testsuite/gcc.dg/vect/pr48052.c
! 2d67e3ea63ebcbc6b915965381b94994  gcc/testsuite/gcc.dg/vect/pr48172.c
  f20a1760d264fe0667bfd7990309368f  gcc/testsuite/gcc.dg/vect/pr48377.c
! 36d822d0be5e4daf4a99a96f8ab7b82f  gcc/testsuite/gcc.dg/vect/pr48765.c
  6cbb0ca0c466ff1208f5c003f81ab645  gcc/testsuite/gcc.dg/vect/pr49038.c
  5693d2db7c6fd6a87fdce1ddb192cbd2  gcc/testsuite/gcc.dg/vect/pr49093.c
  ca3c5574bbb2e574a5ec16290e473133  gcc/testsuite/gcc.dg/vect/pr49318.c
*************** f089cfb6792071017a4db2e67c557b5f  gcc/te
*** 51709,51720 ****
  f7024e0e02140462ab35a65470f968b0  gcc/testsuite/gcc.dg/vect/pr50727.c
  5424c7ed7acb620650b897234a669626  gcc/testsuite/gcc.dg/vect/pr51000.c
  9ed7110c28a8b1d18b968c69ddf003ad  gcc/testsuite/gcc.dg/vect/pr51015.c
! fe50c8330be330894ab4819884e855f6  gcc/testsuite/gcc.dg/vect/pr51074.c
  f19ff3a1c44dcc51bd4e023dcba76ef2  gcc/testsuite/gcc.dg/vect/pr51301.c
  63381a0c6d1ef7b14656eb68526f4e4c  gcc/testsuite/gcc.dg/vect/pr51581-1.c
  3e48ef359defbf731576f5b2dd27f17e  gcc/testsuite/gcc.dg/vect/pr51581-2.c
! e7911fceec93993797e385dd0bf5ab4b  gcc/testsuite/gcc.dg/vect/pr51581-3.c
! 3ea38cfb6c9adbee7719ce464377f153  gcc/testsuite/gcc.dg/vect/pr51581-4.c
  ff03d7c6f54e13ecc92dec15c8db7c3e  gcc/testsuite/gcc.dg/vect/pr51590.c
  00baffe34555e27dffa69590da4955f8  gcc/testsuite/gcc.dg/vect/pr51799.c
  e252b924148623c164d4cbb7dcf420ef  gcc/testsuite/gcc.dg/vect/pr52091.c
--- 54605,54616 ----
  f7024e0e02140462ab35a65470f968b0  gcc/testsuite/gcc.dg/vect/pr50727.c
  5424c7ed7acb620650b897234a669626  gcc/testsuite/gcc.dg/vect/pr51000.c
  9ed7110c28a8b1d18b968c69ddf003ad  gcc/testsuite/gcc.dg/vect/pr51015.c
! b2ae1f278558856c4e86b8f8efc4a413  gcc/testsuite/gcc.dg/vect/pr51074.c
  f19ff3a1c44dcc51bd4e023dcba76ef2  gcc/testsuite/gcc.dg/vect/pr51301.c
  63381a0c6d1ef7b14656eb68526f4e4c  gcc/testsuite/gcc.dg/vect/pr51581-1.c
  3e48ef359defbf731576f5b2dd27f17e  gcc/testsuite/gcc.dg/vect/pr51581-2.c
! 0df83ca86704272d4d7a0da8bcd5312c  gcc/testsuite/gcc.dg/vect/pr51581-3.c
! 5b2c407f370ee0d3622a33a47ad04f97  gcc/testsuite/gcc.dg/vect/pr51581-4.c
  ff03d7c6f54e13ecc92dec15c8db7c3e  gcc/testsuite/gcc.dg/vect/pr51590.c
  00baffe34555e27dffa69590da4955f8  gcc/testsuite/gcc.dg/vect/pr51799.c
  e252b924148623c164d4cbb7dcf420ef  gcc/testsuite/gcc.dg/vect/pr52091.c
*************** e252b924148623c164d4cbb7dcf420ef  gcc/te
*** 51722,51730 ****
  bd34047315934420bc0f9474dadf5f0a  gcc/testsuite/gcc.dg/vect/pr52252-st.c
  431a6b71e21632929a3a40f16569b576  gcc/testsuite/gcc.dg/vect/pr52298.c
  cb2f1722ae6064430b5f67fd9b5fd2d3  gcc/testsuite/gcc.dg/vect/pr52870.c
! 2166d6822760e8092c59948ea1d88090  gcc/testsuite/gcc.dg/vect/pr53185-2.c
  791bae33b9237c308db0a266d2598c7b  gcc/testsuite/gcc.dg/vect/pr53185.c
! 4ee27a4d1d278002b4f2e9f141749960  gcc/testsuite/gcc.dg/vect/pr53773.c
  ba9c7edb5329e6eb06c04e2546f66c01  gcc/testsuite/gcc.dg/vect/pr55857-1.c
  1713687ed4d808a579a447a3b0ef56c2  gcc/testsuite/gcc.dg/vect/pr55857-2.c
  d9240778c89dcaa2d4955586182f7c91  gcc/testsuite/gcc.dg/vect/pr56541.c
--- 54618,54626 ----
  bd34047315934420bc0f9474dadf5f0a  gcc/testsuite/gcc.dg/vect/pr52252-st.c
  431a6b71e21632929a3a40f16569b576  gcc/testsuite/gcc.dg/vect/pr52298.c
  cb2f1722ae6064430b5f67fd9b5fd2d3  gcc/testsuite/gcc.dg/vect/pr52870.c
! c940033ee5e6846e87c0a89d5f74af23  gcc/testsuite/gcc.dg/vect/pr53185-2.c
  791bae33b9237c308db0a266d2598c7b  gcc/testsuite/gcc.dg/vect/pr53185.c
! 7e5567e7dd03ce0af2e2a8a80ce6765a  gcc/testsuite/gcc.dg/vect/pr53773.c
  ba9c7edb5329e6eb06c04e2546f66c01  gcc/testsuite/gcc.dg/vect/pr55857-1.c
  1713687ed4d808a579a447a3b0ef56c2  gcc/testsuite/gcc.dg/vect/pr55857-2.c
  d9240778c89dcaa2d4955586182f7c91  gcc/testsuite/gcc.dg/vect/pr56541.c
*************** d9240778c89dcaa2d4955586182f7c91  gcc/te
*** 51732,51792 ****
  63e4af31dd039b5aeb9c3d6467a27adc  gcc/testsuite/gcc.dg/vect/pr56695.c
  61af94d2d4187dd8541079986f51397f  gcc/testsuite/gcc.dg/vect/pr56787.c
  883fb55733d565f5fe1a40755bf559d8  gcc/testsuite/gcc.dg/vect/pr56826.c
! b8d42c8e267db6bd022c55e7cdd77e55  gcc/testsuite/gcc.dg/vect/pr56918.c
! bdd47e3b9e6628c8a824814db304617c  gcc/testsuite/gcc.dg/vect/pr56920.c
! 13866269240b79531e0ed82e77cca388  gcc/testsuite/gcc.dg/vect/pr56933.c
  395534d4a0570e13e96d9cf3a61fd08a  gcc/testsuite/gcc.dg/vect/pr57206.c
  e365c23680d84c22b6c52d196b65cfae  gcc/testsuite/gcc.dg/vect/pr57558-1.c
  533b70e8c86afbfac39ac07c4f8df23f  gcc/testsuite/gcc.dg/vect/pr57558-2.c
! 6e837f10772b0c422b7725785943a963  gcc/testsuite/gcc.dg/vect/pr57705.c
  3ea17b7d7796fee7fa07d1d1976140b0  gcc/testsuite/gcc.dg/vect/pr57741-1.c
! fb6db148248616e6723aadc08e35f18b  gcc/testsuite/gcc.dg/vect/pr57741-2.c
! 64a93d715e6f58272b05852f1ff1461e  gcc/testsuite/gcc.dg/vect/pr57741-3.c
  0231f59e82965ac2c3e36af3c92fe0de  gcc/testsuite/gcc.dg/vect/pr58508.c
  21013db4f71b2cc71819ed8b12d50564  gcc/testsuite/gcc.dg/vect/pr59354.c
  690dfa6d3b6b0aa21990028126ec54bf  gcc/testsuite/gcc.dg/vect/pr59519-1.c
  61bc8da4ac8d8690cd5f1324557ad569  gcc/testsuite/gcc.dg/vect/pr59519-2.c
! ad2aae3c1c936ea4c4da13190975a74f  gcc/testsuite/gcc.dg/vect/pr59591-1.c
! 47de0d41b28ebc0b43021cfec743efc7  gcc/testsuite/gcc.dg/vect/pr59591-2.c
! 7b5c873121257f651dd1aacdfc4c3c6e  gcc/testsuite/gcc.dg/vect/pr59594.c
  5d6830edc1bc232319270056d2e1b51a  gcc/testsuite/gcc.dg/vect/pr59651.c
! 7ea3f441dc1098f3bda43560e36b7088  gcc/testsuite/gcc.dg/vect/pr59984.c
  bce45b63e374b50d341f0fc6164eed56  gcc/testsuite/gcc.dg/vect/pr60012.c
  f2202cae0d8b24fc77b7ee1599bba372  gcc/testsuite/gcc.dg/vect/pr60092-2.c
  58539c47f3dda9c13c058356ee38eb2e  gcc/testsuite/gcc.dg/vect/pr60092.c
  034fdf95085b1c8765441f2ef3473983  gcc/testsuite/gcc.dg/vect/pr60196-1.c
  64824909472258e95a624b38b5661b83  gcc/testsuite/gcc.dg/vect/pr60196-2.c
! c6c26572a22bac2dfd7ad907ee0b967e  gcc/testsuite/gcc.dg/vect/pr60276.c
  126463ed383e8f077f50ece8eddb7c87  gcc/testsuite/gcc.dg/vect/pr60382.c
  68256e88de1c5b1aa6a7cbd50cedbd35  gcc/testsuite/gcc.dg/vect/pr60482.c
  242b045b4e98184d2e453773e6ede738  gcc/testsuite/gcc.dg/vect/pr60505.c
  46a6dd2bc79b24ae06b68126569f8700  gcc/testsuite/gcc.dg/vect/pr60656.c
  b6e098566d53b50570bb6eb17cbd7e25  gcc/testsuite/gcc.dg/vect/pr60841.c
! 4a0182644d22bcc6892fbe45d266f75e  gcc/testsuite/gcc.dg/vect/pr61194.c
  f4d4b702127672cb8722167eb7daf41b  gcc/testsuite/gcc.dg/vect/pr61634.c
! 721bd88cde3c00cbdf9cec35cec92c9f  gcc/testsuite/gcc.dg/vect/pr61680.c
! 2771ecad7a930d0d32794d40bed756c6  gcc/testsuite/gcc.dg/vect/pr62021.c
  c056d91242013a5802c9da46791e5851  gcc/testsuite/gcc.dg/vect/pr62073.c
  79f5eea98ab40aa2199455d4f2bfa6f2  gcc/testsuite/gcc.dg/vect/pr62075.c
  7605bfe328515a1ec2cb82e7f3c73d73  gcc/testsuite/gcc.dg/vect/pr62171.c
  ce140bd653cb1ecac1f1eef998b80f1d  gcc/testsuite/gcc.dg/vect/pr63148.c
  c4da339a2973d6052c7dffb8a5605643  gcc/testsuite/gcc.dg/vect/pr63189.c
  91f71af1b8d1b7c72887d6cb641aa4ab  gcc/testsuite/gcc.dg/vect/pr63341-1.c
! 5c6f8ebaaf6d8eb322eb8708008b96d3  gcc/testsuite/gcc.dg/vect/pr63341-2.c
  fb96dcf61fa0eb3bba8203b1b30518a6  gcc/testsuite/gcc.dg/vect/pr63379.c
  6bd3f64a972a002267c1af875cf4bc09  gcc/testsuite/gcc.dg/vect/pr63530.c
  5706320301b9cd05ecd0c47c9d787564  gcc/testsuite/gcc.dg/vect/pr63605.c
! c7220066dc70eca3bd7df1c08c7f4352  gcc/testsuite/gcc.dg/vect/pr64252.c
! 12857a5d403185d125fcaff9af11124e  gcc/testsuite/gcc.dg/vect/pr64404.c
! 660078f104592a74f0e4fa64370352d0  gcc/testsuite/gcc.dg/vect/pr64421.c
! ec3365bba00d1cc2cd3969c55351e80c  gcc/testsuite/gcc.dg/vect/pr64493.c
! c98bdb23f463d98ed1f37c2088b11798  gcc/testsuite/gcc.dg/vect/pr64495.c
  36b8af4238d302a0ce43f1cb75dfda35  gcc/testsuite/gcc.dg/vect/pr64829.c
  02665d8d0016645ae7a66642793cd124  gcc/testsuite/gcc.dg/vect/pr64844.c
  98e32e0f67ea33564a8131db10fcc2d1  gcc/testsuite/gcc.dg/vect/pr65206.c
  6dc746c14c5e0a5a989ccf84fcdfda0d  gcc/testsuite/gcc.dg/vect/pr65310.c
  9956a4c3d2d612eab06cfc8981da6967  gcc/testsuite/gcc.dg/vect/pr65494.c
! 227e8aad63905e3d6d110cef1da40ead  gcc/testsuite/gcc.dg/vect/pr65518.c
  538f1d6369b933f5c46f055d1829ece2  gcc/testsuite/gcc.dg/vect/pr65930-1.c
  d13429b3781bb8b350e71ceb1d17df1a  gcc/testsuite/gcc.dg/vect/pr65930-2.c
  2e7cb88c0ae683eecc30f2b1f201c579  gcc/testsuite/gcc.dg/vect/pr65947-1.c
--- 54628,54688 ----
  63e4af31dd039b5aeb9c3d6467a27adc  gcc/testsuite/gcc.dg/vect/pr56695.c
  61af94d2d4187dd8541079986f51397f  gcc/testsuite/gcc.dg/vect/pr56787.c
  883fb55733d565f5fe1a40755bf559d8  gcc/testsuite/gcc.dg/vect/pr56826.c
! e1c4cee18e0c177f7c02e74318eec70d  gcc/testsuite/gcc.dg/vect/pr56918.c
! 3559dd8d7793dc09abd367356ac7cd39  gcc/testsuite/gcc.dg/vect/pr56920.c
! cb33555dc06813329342d9d5a8f69331  gcc/testsuite/gcc.dg/vect/pr56933.c
  395534d4a0570e13e96d9cf3a61fd08a  gcc/testsuite/gcc.dg/vect/pr57206.c
  e365c23680d84c22b6c52d196b65cfae  gcc/testsuite/gcc.dg/vect/pr57558-1.c
  533b70e8c86afbfac39ac07c4f8df23f  gcc/testsuite/gcc.dg/vect/pr57558-2.c
! 10112bfc2822390f6acca04a580439ad  gcc/testsuite/gcc.dg/vect/pr57705.c
  3ea17b7d7796fee7fa07d1d1976140b0  gcc/testsuite/gcc.dg/vect/pr57741-1.c
! b0afd7398b8865213f12886fece555fd  gcc/testsuite/gcc.dg/vect/pr57741-2.c
! d0c3ebc940ef2c059fe594b3393e984f  gcc/testsuite/gcc.dg/vect/pr57741-3.c
  0231f59e82965ac2c3e36af3c92fe0de  gcc/testsuite/gcc.dg/vect/pr58508.c
  21013db4f71b2cc71819ed8b12d50564  gcc/testsuite/gcc.dg/vect/pr59354.c
  690dfa6d3b6b0aa21990028126ec54bf  gcc/testsuite/gcc.dg/vect/pr59519-1.c
  61bc8da4ac8d8690cd5f1324557ad569  gcc/testsuite/gcc.dg/vect/pr59519-2.c
! 4d4d2e88cffc43659f6d5630c46ce4df  gcc/testsuite/gcc.dg/vect/pr59591-1.c
! 6cf90bb7c9e5ccaa4e444f8754fef4d5  gcc/testsuite/gcc.dg/vect/pr59591-2.c
! 8e9ca825271ad66a6369d2c08958f324  gcc/testsuite/gcc.dg/vect/pr59594.c
  5d6830edc1bc232319270056d2e1b51a  gcc/testsuite/gcc.dg/vect/pr59651.c
! 8c139ed20f643904b9b1975ab1815c1b  gcc/testsuite/gcc.dg/vect/pr59984.c
  bce45b63e374b50d341f0fc6164eed56  gcc/testsuite/gcc.dg/vect/pr60012.c
  f2202cae0d8b24fc77b7ee1599bba372  gcc/testsuite/gcc.dg/vect/pr60092-2.c
  58539c47f3dda9c13c058356ee38eb2e  gcc/testsuite/gcc.dg/vect/pr60092.c
  034fdf95085b1c8765441f2ef3473983  gcc/testsuite/gcc.dg/vect/pr60196-1.c
  64824909472258e95a624b38b5661b83  gcc/testsuite/gcc.dg/vect/pr60196-2.c
! abfc6f81546e9e3bd432821c98b9c527  gcc/testsuite/gcc.dg/vect/pr60276.c
  126463ed383e8f077f50ece8eddb7c87  gcc/testsuite/gcc.dg/vect/pr60382.c
  68256e88de1c5b1aa6a7cbd50cedbd35  gcc/testsuite/gcc.dg/vect/pr60482.c
  242b045b4e98184d2e453773e6ede738  gcc/testsuite/gcc.dg/vect/pr60505.c
  46a6dd2bc79b24ae06b68126569f8700  gcc/testsuite/gcc.dg/vect/pr60656.c
  b6e098566d53b50570bb6eb17cbd7e25  gcc/testsuite/gcc.dg/vect/pr60841.c
! b2318154c3528087ff3842e9e908347b  gcc/testsuite/gcc.dg/vect/pr61194.c
  f4d4b702127672cb8722167eb7daf41b  gcc/testsuite/gcc.dg/vect/pr61634.c
! 8651e2442d9c7170abc709f9b7b3d4eb  gcc/testsuite/gcc.dg/vect/pr61680.c
! 2f9300684a9bd6a70068f85e789ece6d  gcc/testsuite/gcc.dg/vect/pr62021.c
  c056d91242013a5802c9da46791e5851  gcc/testsuite/gcc.dg/vect/pr62073.c
  79f5eea98ab40aa2199455d4f2bfa6f2  gcc/testsuite/gcc.dg/vect/pr62075.c
  7605bfe328515a1ec2cb82e7f3c73d73  gcc/testsuite/gcc.dg/vect/pr62171.c
  ce140bd653cb1ecac1f1eef998b80f1d  gcc/testsuite/gcc.dg/vect/pr63148.c
  c4da339a2973d6052c7dffb8a5605643  gcc/testsuite/gcc.dg/vect/pr63189.c
  91f71af1b8d1b7c72887d6cb641aa4ab  gcc/testsuite/gcc.dg/vect/pr63341-1.c
! 63102cfe27542bbb7566f5407cd94cf1  gcc/testsuite/gcc.dg/vect/pr63341-2.c
  fb96dcf61fa0eb3bba8203b1b30518a6  gcc/testsuite/gcc.dg/vect/pr63379.c
  6bd3f64a972a002267c1af875cf4bc09  gcc/testsuite/gcc.dg/vect/pr63530.c
  5706320301b9cd05ecd0c47c9d787564  gcc/testsuite/gcc.dg/vect/pr63605.c
! e0165544509335971dfc302760d50f9d  gcc/testsuite/gcc.dg/vect/pr64252.c
! da55519e9a471a1a1c39421175cac8aa  gcc/testsuite/gcc.dg/vect/pr64404.c
! bc3ab18ab7dbc66ee90006c5bf7d85b2  gcc/testsuite/gcc.dg/vect/pr64421.c
! e22ef7c2f66eb8bd36aa3d25b7300136  gcc/testsuite/gcc.dg/vect/pr64493.c
! 25b6984f4481e5d18c7ebb1038c31c5c  gcc/testsuite/gcc.dg/vect/pr64495.c
  36b8af4238d302a0ce43f1cb75dfda35  gcc/testsuite/gcc.dg/vect/pr64829.c
  02665d8d0016645ae7a66642793cd124  gcc/testsuite/gcc.dg/vect/pr64844.c
  98e32e0f67ea33564a8131db10fcc2d1  gcc/testsuite/gcc.dg/vect/pr65206.c
  6dc746c14c5e0a5a989ccf84fcdfda0d  gcc/testsuite/gcc.dg/vect/pr65310.c
  9956a4c3d2d612eab06cfc8981da6967  gcc/testsuite/gcc.dg/vect/pr65494.c
! 8bd896ef52d0e7ea3ac9901d5aac9834  gcc/testsuite/gcc.dg/vect/pr65518.c
  538f1d6369b933f5c46f055d1829ece2  gcc/testsuite/gcc.dg/vect/pr65930-1.c
  d13429b3781bb8b350e71ceb1d17df1a  gcc/testsuite/gcc.dg/vect/pr65930-2.c
  2e7cb88c0ae683eecc30f2b1f201c579  gcc/testsuite/gcc.dg/vect/pr65947-1.c
*************** a13016b360e8964d5f476e90b028d5e5  gcc/te
*** 51796,51837 ****
  835c1397b93dfc9716446a50b49777b9  gcc/testsuite/gcc.dg/vect/pr65947-13.c
  0444ea4cd1d517faad3350085077f8ca  gcc/testsuite/gcc.dg/vect/pr65947-14.c
  d036d0bbc6468e18bdb62cb3b4289dc7  gcc/testsuite/gcc.dg/vect/pr65947-2.c
! 82379586f666c9edccfb38a83aa8bb11  gcc/testsuite/gcc.dg/vect/pr65947-3.c
  a2b44b460b60928ab08cf781bca61362  gcc/testsuite/gcc.dg/vect/pr65947-4.c
  cbec58ef280004b3eff5801426a72e11  gcc/testsuite/gcc.dg/vect/pr65947-5.c
  49bc43ce848248bdd193c0cf0e414eb7  gcc/testsuite/gcc.dg/vect/pr65947-6.c
! 35146bd594b75af193b3b385d118f76c  gcc/testsuite/gcc.dg/vect/pr65947-7.c
! df190bdc0cff4b2591d3fcba483faa21  gcc/testsuite/gcc.dg/vect/pr65947-8.c
  9bb2f2b31235ad5f54dd6c6bfd87c2cf  gcc/testsuite/gcc.dg/vect/pr65947-9.c
  d1bb916522cf51af2ec6b26d7bfe3875  gcc/testsuite/gcc.dg/vect/pr65951.c
  c1a0987a004bbddb462c182b491c3887  gcc/testsuite/gcc.dg/vect/pr66142.c
! a420fd5016218be0e51a1f9cec8d2168  gcc/testsuite/gcc.dg/vect/pr66251.c
! fe55b7b3a0180146eb06495eed9f01a0  gcc/testsuite/gcc.dg/vect/pr66253.c
  ffb0c9d848fbf1c998daad920c587b69  gcc/testsuite/gcc.dg/vect/pr66278.c
  8f4716353b96f7ad31f8ad2e730be6b6  gcc/testsuite/gcc.dg/vect/pr66623.c
  31de59c90b606bb80ee8c60486379cc0  gcc/testsuite/gcc.dg/vect/pr66636.c
  86169de4aac395fc7dd49fd713661f87  gcc/testsuite/gcc.dg/vect/pr66677.c
  f4505aa6c41d3aa5d36144edc00b927e  gcc/testsuite/gcc.dg/vect/pr66951.c
! 98088935f35ef569417f19c1c221426d  gcc/testsuite/gcc.dg/vect/pr67790.c
  62a72b6ca1acac0241ad15032cf2b23f  gcc/testsuite/gcc.dg/vect/pr68305.c
  ac916e4c549ed47dc42ad0172c7b60b7  gcc/testsuite/gcc.dg/vect/pr68339.c
  75bd6448a642ced4b65eb52a07dfcb3e  gcc/testsuite/gcc.dg/vect/pr68417.c
  fc4004004a9a82551a093065fe47f3d8  gcc/testsuite/gcc.dg/vect/pr68445.c
  a83a73e956c9df25282bf0fca7b44fb4  gcc/testsuite/gcc.dg/vect/pr68482.c
! 87c3451c4b5254ada5aa2180ca9f4bdb  gcc/testsuite/gcc.dg/vect/pr68502-1.c
! 56f7e2dcd1c74f4456ebe865bb6236a0  gcc/testsuite/gcc.dg/vect/pr68502-2.c
  66b4cf1838c4c22fdcda578c0c74fff8  gcc/testsuite/gcc.dg/vect/pr68577.c
  0d3505ac68dc23fc576e1a97dac2d15d  gcc/testsuite/gcc.dg/vect/pr69083.c
  ea3f198bbbc76b8075833d54ae6ccd7f  gcc/testsuite/gcc.dg/vect/pr69652.c
  c481f39ecfc556bf9c7fe72a5cbb2546  gcc/testsuite/gcc.dg/vect/pr69783.c
! 6a2a2b9eeb5421f3c67345d9d3cb87b8  gcc/testsuite/gcc.dg/vect/pr69820.c
! e1904c1f9ae328e3bb4aa9d4286d897b  gcc/testsuite/gcc.dg/vect/pr70021.c
  f37adb0c8591b6cb63695d079e8f557d  gcc/testsuite/gcc.dg/vect/pr70138-1.c
  c767283ec3596bb0dba0d999784e7fff  gcc/testsuite/gcc.dg/vect/pr70138-2.c
! 7a332ec10658dfabe1c3011749239c5c  gcc/testsuite/gcc.dg/vect/pr70354-1.c
! 6effacda352151dd8ad3c1f3ebedb311  gcc/testsuite/gcc.dg/vect/pr70354-2.c
! 52afaa46e6365b9bca043823dd5c153c  gcc/testsuite/gcc.dg/vect/pr71259.c
! aa306d1d6cdfc3b73368aa52a566db5c  gcc/testsuite/gcc.dg/vect/pr71264.c
  4d7bde9d01cc446108e79c91758c884d  gcc/testsuite/gcc.dg/vect/pr71407.c
  ccf58a30dd929d85895b8d85741a71ea  gcc/testsuite/gcc.dg/vect/pr71416-1.c
  cc35147435b2efa4e7d217223b42d740  gcc/testsuite/gcc.dg/vect/pr71416-2.c
--- 54692,54733 ----
  835c1397b93dfc9716446a50b49777b9  gcc/testsuite/gcc.dg/vect/pr65947-13.c
  0444ea4cd1d517faad3350085077f8ca  gcc/testsuite/gcc.dg/vect/pr65947-14.c
  d036d0bbc6468e18bdb62cb3b4289dc7  gcc/testsuite/gcc.dg/vect/pr65947-2.c
! 05f2ecb6982637e5850788ecf3c5343a  gcc/testsuite/gcc.dg/vect/pr65947-3.c
  a2b44b460b60928ab08cf781bca61362  gcc/testsuite/gcc.dg/vect/pr65947-4.c
  cbec58ef280004b3eff5801426a72e11  gcc/testsuite/gcc.dg/vect/pr65947-5.c
  49bc43ce848248bdd193c0cf0e414eb7  gcc/testsuite/gcc.dg/vect/pr65947-6.c
! 5a048ae2950546f0b4fe2bad2fb58d75  gcc/testsuite/gcc.dg/vect/pr65947-7.c
! 5c15a330297325681d98147a72e5411e  gcc/testsuite/gcc.dg/vect/pr65947-8.c
  9bb2f2b31235ad5f54dd6c6bfd87c2cf  gcc/testsuite/gcc.dg/vect/pr65947-9.c
  d1bb916522cf51af2ec6b26d7bfe3875  gcc/testsuite/gcc.dg/vect/pr65951.c
  c1a0987a004bbddb462c182b491c3887  gcc/testsuite/gcc.dg/vect/pr66142.c
! ba85e8148564737f2492c8310a763eff  gcc/testsuite/gcc.dg/vect/pr66251.c
! 407a3bfb11fc93ad80a133e78310930d  gcc/testsuite/gcc.dg/vect/pr66253.c
  ffb0c9d848fbf1c998daad920c587b69  gcc/testsuite/gcc.dg/vect/pr66278.c
  8f4716353b96f7ad31f8ad2e730be6b6  gcc/testsuite/gcc.dg/vect/pr66623.c
  31de59c90b606bb80ee8c60486379cc0  gcc/testsuite/gcc.dg/vect/pr66636.c
  86169de4aac395fc7dd49fd713661f87  gcc/testsuite/gcc.dg/vect/pr66677.c
  f4505aa6c41d3aa5d36144edc00b927e  gcc/testsuite/gcc.dg/vect/pr66951.c
! d7d7a3e37f5cdb32c49cbb55a253b5fe  gcc/testsuite/gcc.dg/vect/pr67790.c
  62a72b6ca1acac0241ad15032cf2b23f  gcc/testsuite/gcc.dg/vect/pr68305.c
  ac916e4c549ed47dc42ad0172c7b60b7  gcc/testsuite/gcc.dg/vect/pr68339.c
  75bd6448a642ced4b65eb52a07dfcb3e  gcc/testsuite/gcc.dg/vect/pr68417.c
  fc4004004a9a82551a093065fe47f3d8  gcc/testsuite/gcc.dg/vect/pr68445.c
  a83a73e956c9df25282bf0fca7b44fb4  gcc/testsuite/gcc.dg/vect/pr68482.c
! 279c9d3566650ea88a0b1e61dec3b297  gcc/testsuite/gcc.dg/vect/pr68502-1.c
! be9cb42820a257a105baf2eca22e2838  gcc/testsuite/gcc.dg/vect/pr68502-2.c
  66b4cf1838c4c22fdcda578c0c74fff8  gcc/testsuite/gcc.dg/vect/pr68577.c
  0d3505ac68dc23fc576e1a97dac2d15d  gcc/testsuite/gcc.dg/vect/pr69083.c
  ea3f198bbbc76b8075833d54ae6ccd7f  gcc/testsuite/gcc.dg/vect/pr69652.c
  c481f39ecfc556bf9c7fe72a5cbb2546  gcc/testsuite/gcc.dg/vect/pr69783.c
! ed99cfc378621d77587991627b5c81b3  gcc/testsuite/gcc.dg/vect/pr69820.c
! b755b0d312c103942af3e05bc32da026  gcc/testsuite/gcc.dg/vect/pr70021.c
  f37adb0c8591b6cb63695d079e8f557d  gcc/testsuite/gcc.dg/vect/pr70138-1.c
  c767283ec3596bb0dba0d999784e7fff  gcc/testsuite/gcc.dg/vect/pr70138-2.c
! 2f656d8bd57e2abf2965b2ce3a10d55c  gcc/testsuite/gcc.dg/vect/pr70354-1.c
! 2d4448d7328ec6e3beaff2698bec4012  gcc/testsuite/gcc.dg/vect/pr70354-2.c
! 3a634f70d1b39850c87cc1abae663bc2  gcc/testsuite/gcc.dg/vect/pr71259.c
! 5f217ab4a051c65ee1a1d92719cc1c0f  gcc/testsuite/gcc.dg/vect/pr71264.c
  4d7bde9d01cc446108e79c91758c884d  gcc/testsuite/gcc.dg/vect/pr71407.c
  ccf58a30dd929d85895b8d85741a71ea  gcc/testsuite/gcc.dg/vect/pr71416-1.c
  cc35147435b2efa4e7d217223b42d740  gcc/testsuite/gcc.dg/vect/pr71416-2.c
*************** bfbd314e67532ca23e292ce54b72762f  gcc/te
*** 51844,51851 ****
  a6bf2f9e7fd4d4710635ceb80c4703e8  gcc/testsuite/gcc.dg/vect/pr72866.c
  d4d83ecc92f0756477efce1e86234799  gcc/testsuite/gcc.dg/vect/pr77503.c
  7a4387a14749b0753c6aa71d2eb4ddc0  gcc/testsuite/gcc.dg/vect/pr77724.c
! a7cd8b8cb8be22a9ef1f1166d448aa8f  gcc/testsuite/gcc.dg/vect/pr78005.c
! d01f8a0347e5cae7456521187b5b512e  gcc/testsuite/gcc.dg/vect/pr78558.c
  52467e237dda0f04eeca5d2663e9eaae  gcc/testsuite/gcc.dg/vect/pr78938.c
  8861499ec24cd393cebd7a6e56264ef5  gcc/testsuite/gcc.dg/vect/pr79347.c
  5c08c1c457f4c7dee7ee437f4b859865  gcc/testsuite/gcc.dg/vect/pr79824-1.c
--- 54740,54747 ----
  a6bf2f9e7fd4d4710635ceb80c4703e8  gcc/testsuite/gcc.dg/vect/pr72866.c
  d4d83ecc92f0756477efce1e86234799  gcc/testsuite/gcc.dg/vect/pr77503.c
  7a4387a14749b0753c6aa71d2eb4ddc0  gcc/testsuite/gcc.dg/vect/pr77724.c
! 2110dd486fcf9956e1f78eeec5076289  gcc/testsuite/gcc.dg/vect/pr78005.c
! f9ac9e288aef969f9861bd60a572491f  gcc/testsuite/gcc.dg/vect/pr78558.c
  52467e237dda0f04eeca5d2663e9eaae  gcc/testsuite/gcc.dg/vect/pr78938.c
  8861499ec24cd393cebd7a6e56264ef5  gcc/testsuite/gcc.dg/vect/pr79347.c
  5c08c1c457f4c7dee7ee437f4b859865  gcc/testsuite/gcc.dg/vect/pr79824-1.c
*************** edbdd45bd957dd2181f8bbebe5b66f82  gcc/te
*** 51855,51871 ****
  c4f04d47e0c0be544b6ac473f0645e04  gcc/testsuite/gcc.dg/vect/pr80631-1.c
  9f4ef732c9f5f6f60071db8372930150  gcc/testsuite/gcc.dg/vect/pr80631-2.c
  6e21e500860ba90d3c89edc03a134816  gcc/testsuite/gcc.dg/vect/pr80815-1.c
! 736948611ba2161e516a3e99760aa173  gcc/testsuite/gcc.dg/vect/pr80815-2.c
! 39fbed119a918e618964fa9ab4e4d72d  gcc/testsuite/gcc.dg/vect/pr80815-3.c
! 654137c7b0d9e65431583093a90f0b8e  gcc/testsuite/gcc.dg/vect/pr80928.c
  0ddb632fe10f4e7596ddf6a2ee402259  gcc/testsuite/gcc.dg/vect/pr81082.c
  4620e86ca949db6bb330effa6a9eb9a2  gcc/testsuite/gcc.dg/vect/pr81136.c
  a60d20408d305ea4b4f537d848682d4d  gcc/testsuite/gcc.dg/vect/pr81196-2.c
  3f00aa8bd4647b819ebad8742aae55ff  gcc/testsuite/gcc.dg/vect/pr81196.c
! 9f6e75e9dbf6ab44b15e511f1ec5060c  gcc/testsuite/gcc.dg/vect/pr81410.c
! 5d2ab81a9406e2000bbd06f6aba15b52  gcc/testsuite/gcc.dg/vect/pr81633.c
! 10510f023dee4f560fd2c6810998c54a  gcc/testsuite/gcc.dg/vect/pr81740-1.c
! e0bebbbd43dce055c1cc6885c75397c5  gcc/testsuite/gcc.dg/vect/pr81740-2.c
  b01d1cf10e6bd44acf483b58e22aced4  gcc/testsuite/gcc.dg/vect/pr81815.c
  bddceeb2dcbec7478439798545334dc9  gcc/testsuite/gcc.dg/vect/pr82108.c
  13fb523d8fb02882b90caadcfa00e949  gcc/testsuite/gcc.dg/vect/pr82289.c
--- 54751,54767 ----
  c4f04d47e0c0be544b6ac473f0645e04  gcc/testsuite/gcc.dg/vect/pr80631-1.c
  9f4ef732c9f5f6f60071db8372930150  gcc/testsuite/gcc.dg/vect/pr80631-2.c
  6e21e500860ba90d3c89edc03a134816  gcc/testsuite/gcc.dg/vect/pr80815-1.c
! 60cfcbe87149a1db658bbf0c57e44661  gcc/testsuite/gcc.dg/vect/pr80815-2.c
! 5b28b3b618d296fd70bf4d33ca9064c2  gcc/testsuite/gcc.dg/vect/pr80815-3.c
! f4ea667418afe5debef8465bd2d1f880  gcc/testsuite/gcc.dg/vect/pr80928.c
  0ddb632fe10f4e7596ddf6a2ee402259  gcc/testsuite/gcc.dg/vect/pr81082.c
  4620e86ca949db6bb330effa6a9eb9a2  gcc/testsuite/gcc.dg/vect/pr81136.c
  a60d20408d305ea4b4f537d848682d4d  gcc/testsuite/gcc.dg/vect/pr81196-2.c
  3f00aa8bd4647b819ebad8742aae55ff  gcc/testsuite/gcc.dg/vect/pr81196.c
! 171ef9ff8102c2a84166e9054ced978f  gcc/testsuite/gcc.dg/vect/pr81410.c
! b77bf75651d36760c05877d23c60c4a1  gcc/testsuite/gcc.dg/vect/pr81633.c
! a29023a6984e13118fc40036869cb2e0  gcc/testsuite/gcc.dg/vect/pr81740-1.c
! 6eaf719c3dd0adb21211734b263c0cbd  gcc/testsuite/gcc.dg/vect/pr81740-2.c
  b01d1cf10e6bd44acf483b58e22aced4  gcc/testsuite/gcc.dg/vect/pr81815.c
  bddceeb2dcbec7478439798545334dc9  gcc/testsuite/gcc.dg/vect/pr82108.c
  13fb523d8fb02882b90caadcfa00e949  gcc/testsuite/gcc.dg/vect/pr82289.c
*************** bb394015eb47365049979112f1fef4e1  gcc/te
*** 51881,51916 ****
  b83c7628f6a3196a7493cd61645c2322  gcc/testsuite/gcc.dg/vect/pr84265.c
  3ccfddb01fb0c35f130b75cb184351cb  gcc/testsuite/gcc.dg/vect/pr84357.c
  757457cc7b786e3635e3b333e13494f4  gcc/testsuite/gcc.dg/vect/pr84419.c
! 3db82a255f0f32226b7f77c9ee8c4293  gcc/testsuite/gcc.dg/vect/pr84711.c
  fbc0074bad8664bb29ed347a842005c1  gcc/testsuite/gcc.dg/vect/pr85286.c
! acebc3727874d06279fc624eb53d05d9  gcc/testsuite/gcc.dg/vect/pr85586.c
! b9935cee50a5b2b9496865c653bad56a  gcc/testsuite/gcc.dg/vect/pr85597.c
  6836fb5159f3fe9f011fcabbf5b3d813  gcc/testsuite/gcc.dg/vect/pr85793.c
  20c4507c6970fe58f8fd393814c00bd8  gcc/testsuite/gcc.dg/vect/pr86749.c
  abddaf21e12c8536a7df69f9ced15484  gcc/testsuite/gcc.dg/vect/pr86858.c
  a74546822a4adc798d2b21953e901a2a  gcc/testsuite/gcc.dg/vect/pr86871.c
  dec135e959be35a2676395dffb879be7  gcc/testsuite/gcc.dg/vect/pr86927.c
! 3cb4d75313e408fcaa5d94a8ebac1bd8  gcc/testsuite/gcc.dg/vect/pr87288-1.c
! 8afac62c3ddf30c026b071501d026ef1  gcc/testsuite/gcc.dg/vect/pr87288-2.c
! 7674336c5d1b951d7050cb96ac3739f9  gcc/testsuite/gcc.dg/vect/pr87288-3.c
! 23732b3db5c6f7f04af4bce8c067ba93  gcc/testsuite/gcc.dg/vect/pr88497-1.c
! 119bb89957914dee93b4490c013c3059  gcc/testsuite/gcc.dg/vect/pr88497-2.c
! 581e73167798a8a827d9b71e375970aa  gcc/testsuite/gcc.dg/vect/pr88497-3.c
! 4e76cd841f561af01e0ab78e9b579189  gcc/testsuite/gcc.dg/vect/pr88497-4.c
! 1ec95e99e87ea4da93c9dbf326ff37ba  gcc/testsuite/gcc.dg/vect/pr88497-5.c
  96e922d9508a93e4f66a0cca91ab5f03  gcc/testsuite/gcc.dg/vect/pr88497-6.c
! eea0c9b3c36c473cbf20eb0ca7ea9be5  gcc/testsuite/gcc.dg/vect/pr88497-7.c
! 347c0aa939bb2194617f6854308c1b7a  gcc/testsuite/gcc.dg/vect/pr88598-1.c
! a0ae16b9a969c6cc5a56c608a30f6d42  gcc/testsuite/gcc.dg/vect/pr88598-2.c
! 6728467bacf7ca544c18a11177bc3de4  gcc/testsuite/gcc.dg/vect/pr88598-3.c
  ed7cde8e1a08544cdddda561f1ebf932  gcc/testsuite/gcc.dg/vect/pr88598-4.c
  6791e198c179ad5f74627c15c3f87f15  gcc/testsuite/gcc.dg/vect/pr88598-5.c
  ef7c3ddd7343dd608cc7531460c930b4  gcc/testsuite/gcc.dg/vect/pr88598-6.c
! 706ffeb725a655c10c3af015fa40d1ea  gcc/testsuite/gcc.dg/vect/pr88903-1.c
! 3fa6b0486dc4b237da9bc2ffa11dd19e  gcc/testsuite/gcc.dg/vect/pr88903-2.c
  56809f132957b63d3b875ee3bb0bf07d  gcc/testsuite/gcc.dg/vect/pr89268.c
  0bde013437ca120189007c75f648b4a1  gcc/testsuite/gcc.dg/vect/pr89440.c
! 5fe489929573f893231fc306c692cd67  gcc/testsuite/gcc.dg/vect/pr90018.c
  bfa0e486a504473f7f92839014e98a65  gcc/testsuite/gcc.dg/vect/pr91114.c
  32c3254950573198ca65ac3d419c5233  gcc/testsuite/gcc.dg/vect/pr91293-1.c
  8a5b9c6a36d246d002f3cf60916106b5  gcc/testsuite/gcc.dg/vect/pr91293-2.c
--- 54777,54812 ----
  b83c7628f6a3196a7493cd61645c2322  gcc/testsuite/gcc.dg/vect/pr84265.c
  3ccfddb01fb0c35f130b75cb184351cb  gcc/testsuite/gcc.dg/vect/pr84357.c
  757457cc7b786e3635e3b333e13494f4  gcc/testsuite/gcc.dg/vect/pr84419.c
! 93e2bb8ea67ad8e0e592f9905ae1e68a  gcc/testsuite/gcc.dg/vect/pr84711.c
  fbc0074bad8664bb29ed347a842005c1  gcc/testsuite/gcc.dg/vect/pr85286.c
! 42b411c9cedf7778440272a8b723ca7e  gcc/testsuite/gcc.dg/vect/pr85586.c
! e732264b50a4329291dae165a985e8a2  gcc/testsuite/gcc.dg/vect/pr85597.c
  6836fb5159f3fe9f011fcabbf5b3d813  gcc/testsuite/gcc.dg/vect/pr85793.c
  20c4507c6970fe58f8fd393814c00bd8  gcc/testsuite/gcc.dg/vect/pr86749.c
  abddaf21e12c8536a7df69f9ced15484  gcc/testsuite/gcc.dg/vect/pr86858.c
  a74546822a4adc798d2b21953e901a2a  gcc/testsuite/gcc.dg/vect/pr86871.c
  dec135e959be35a2676395dffb879be7  gcc/testsuite/gcc.dg/vect/pr86927.c
! e3c77d4b4dfea2c2565640e0d0837e75  gcc/testsuite/gcc.dg/vect/pr87288-1.c
! ac91c959bfc94890c8d03c09bd8e09a1  gcc/testsuite/gcc.dg/vect/pr87288-2.c
! acfd210f1a62418b844cbc1107c78025  gcc/testsuite/gcc.dg/vect/pr87288-3.c
! ae31ddf5ef50389168b7c8f95700793f  gcc/testsuite/gcc.dg/vect/pr88497-1.c
! 2ee3aa90ebb7f514a2e2804255163229  gcc/testsuite/gcc.dg/vect/pr88497-2.c
! 65578e091dbb6ac10329e74090b52b4e  gcc/testsuite/gcc.dg/vect/pr88497-3.c
! ff8a2c500036a5a319d69bf08cb171e0  gcc/testsuite/gcc.dg/vect/pr88497-4.c
! 9035840ef2e7e9e2bdcae7d839cf6fd4  gcc/testsuite/gcc.dg/vect/pr88497-5.c
  96e922d9508a93e4f66a0cca91ab5f03  gcc/testsuite/gcc.dg/vect/pr88497-6.c
! 8f060106e4d9d8a89957f2040722e847  gcc/testsuite/gcc.dg/vect/pr88497-7.c
! a7b4e5fc1f499a86bb8ebf7006aca5e5  gcc/testsuite/gcc.dg/vect/pr88598-1.c
! eb82813015677b731911445c26f708d7  gcc/testsuite/gcc.dg/vect/pr88598-2.c
! a80dc974377a93a8dd0f3050ec7abe75  gcc/testsuite/gcc.dg/vect/pr88598-3.c
  ed7cde8e1a08544cdddda561f1ebf932  gcc/testsuite/gcc.dg/vect/pr88598-4.c
  6791e198c179ad5f74627c15c3f87f15  gcc/testsuite/gcc.dg/vect/pr88598-5.c
  ef7c3ddd7343dd608cc7531460c930b4  gcc/testsuite/gcc.dg/vect/pr88598-6.c
! 26e185b685b38b77224e585a1495eeb3  gcc/testsuite/gcc.dg/vect/pr88903-1.c
! 03216d82e554aa712de4b495a01afaa7  gcc/testsuite/gcc.dg/vect/pr88903-2.c
  56809f132957b63d3b875ee3bb0bf07d  gcc/testsuite/gcc.dg/vect/pr89268.c
  0bde013437ca120189007c75f648b4a1  gcc/testsuite/gcc.dg/vect/pr89440.c
! dbd34dc420d9e4785b0c6abf7ca453df  gcc/testsuite/gcc.dg/vect/pr90018.c
  bfa0e486a504473f7f92839014e98a65  gcc/testsuite/gcc.dg/vect/pr91114.c
  32c3254950573198ca65ac3d419c5233  gcc/testsuite/gcc.dg/vect/pr91293-1.c
  8a5b9c6a36d246d002f3cf60916106b5  gcc/testsuite/gcc.dg/vect/pr91293-2.c
*************** a1c78d2103801b51ae10808ad3d27915  gcc/te
*** 51923,51930 ****
  fbe32cc2f1f0b303ae091e28add696ee  gcc/testsuite/gcc.dg/vect/pr92324-2.c
  98dd4dd5861001136f3d1f1581a11d1c  gcc/testsuite/gcc.dg/vect/pr92324-3.c
  6444cd7e452df7d4468eca1876460b84  gcc/testsuite/gcc.dg/vect/pr92324-4.c
! 1b261f0a325e5676396df1d40d807b37  gcc/testsuite/gcc.dg/vect/pr92347.c
! 8592f5133853519281066e3cdcdc9082  gcc/testsuite/gcc.dg/vect/pr92420.c
  ba21c2d4c521bfd679e08620481a494d  gcc/testsuite/gcc.dg/vect/pr92429.c
  c54988c24251a71c06cd1302d2440982  gcc/testsuite/gcc.dg/vect/pr92554.c
  4866dc6d48f80ef181b9d9517d743c01  gcc/testsuite/gcc.dg/vect/pr92555.c
--- 54819,54826 ----
  fbe32cc2f1f0b303ae091e28add696ee  gcc/testsuite/gcc.dg/vect/pr92324-2.c
  98dd4dd5861001136f3d1f1581a11d1c  gcc/testsuite/gcc.dg/vect/pr92324-3.c
  6444cd7e452df7d4468eca1876460b84  gcc/testsuite/gcc.dg/vect/pr92324-4.c
! 678a248e85609e4cd3058b1b151c18de  gcc/testsuite/gcc.dg/vect/pr92347.c
! 2858fb99d07ea409604b64ad2df7baf3  gcc/testsuite/gcc.dg/vect/pr92420.c
  ba21c2d4c521bfd679e08620481a494d  gcc/testsuite/gcc.dg/vect/pr92429.c
  c54988c24251a71c06cd1302d2440982  gcc/testsuite/gcc.dg/vect/pr92554.c
  4866dc6d48f80ef181b9d9517d743c01  gcc/testsuite/gcc.dg/vect/pr92555.c
*************** c54988c24251a71c06cd1302d2440982  gcc/te
*** 51932,51938 ****
  2c9429a9ada0a815b32a3ddbe262e5e3  gcc/testsuite/gcc.dg/vect/pr92677.c
  01906fed72c9f61c670e936527239bd8  gcc/testsuite/gcc.dg/vect/pr92710.c
  9314244e8dd2629fd52faec10e7e5f47  gcc/testsuite/gcc.dg/vect/pr92723.c
! 767ab353cfba6d78b511d00cff1c0465  gcc/testsuite/gcc.dg/vect/pr93069.c
  7804bc51d608393b1a518f45419a5fb2  gcc/testsuite/gcc.dg/vect/pr93094.c
  b5c34a5f7ef7153d118dae2e5d99edda  gcc/testsuite/gcc.dg/vect/pr93247-1.c
  90682d8d2b68b8ccf359fd4d83a0bd15  gcc/testsuite/gcc.dg/vect/pr93247-2.c
--- 54828,54834 ----
  2c9429a9ada0a815b32a3ddbe262e5e3  gcc/testsuite/gcc.dg/vect/pr92677.c
  01906fed72c9f61c670e936527239bd8  gcc/testsuite/gcc.dg/vect/pr92710.c
  9314244e8dd2629fd52faec10e7e5f47  gcc/testsuite/gcc.dg/vect/pr92723.c
! a55219b9afa2857196a40d238fdf76fc  gcc/testsuite/gcc.dg/vect/pr93069.c
  7804bc51d608393b1a518f45419a5fb2  gcc/testsuite/gcc.dg/vect/pr93094.c
  b5c34a5f7ef7153d118dae2e5d99edda  gcc/testsuite/gcc.dg/vect/pr93247-1.c
  90682d8d2b68b8ccf359fd4d83a0bd15  gcc/testsuite/gcc.dg/vect/pr93247-2.c
*************** c360d0e291a0b0b1640d028e462e524c  gcc/te
*** 51942,51948 ****
  cac1837db0f18d03c9d1b37ac3d31796  gcc/testsuite/gcc.dg/vect/pr94443.c
  0d318897a6d7512255fe0dac2261264c  gcc/testsuite/gcc.dg/vect/pr94606.c
  2b1272d98c0843cb34b0b6bca44e86ee  gcc/testsuite/gcc.dg/vect/pr94727.c
! 8072f6d08a80fbd33b1be42ec47db64e  gcc/testsuite/gcc.dg/vect/pr94994.c
  4b69df6d5e35024255da4e4e966901bd  gcc/testsuite/gcc.dg/vect/pr95272.c
  69c694c08bc9a4d9994f78a8f8288607  gcc/testsuite/gcc.dg/vect/pr95495.c
  c07ae476dce0a5d5f03034001a1f07a9  gcc/testsuite/gcc.dg/vect/pr95539.c
--- 54838,54844 ----
  cac1837db0f18d03c9d1b37ac3d31796  gcc/testsuite/gcc.dg/vect/pr94443.c
  0d318897a6d7512255fe0dac2261264c  gcc/testsuite/gcc.dg/vect/pr94606.c
  2b1272d98c0843cb34b0b6bca44e86ee  gcc/testsuite/gcc.dg/vect/pr94727.c
! 40eb851466ea6c193bbfc2bc1df7832b  gcc/testsuite/gcc.dg/vect/pr94994.c
  4b69df6d5e35024255da4e4e966901bd  gcc/testsuite/gcc.dg/vect/pr95272.c
  69c694c08bc9a4d9994f78a8f8288607  gcc/testsuite/gcc.dg/vect/pr95495.c
  c07ae476dce0a5d5f03034001a1f07a9  gcc/testsuite/gcc.dg/vect/pr95539.c
*************** c07ae476dce0a5d5f03034001a1f07a9  gcc/te
*** 51951,52123 ****
  9580b042b08a37186ada7134d2de81c6  gcc/testsuite/gcc.dg/vect/pr95897.c
  13d91ca100fc03f2963725ce48e8004f  gcc/testsuite/gcc.dg/vect/pr95916.c
  99d29dd4c5f954590b3db9a8eb557c28  gcc/testsuite/gcc.dg/vect/pr96698.c
! d17f29b3ff1f04a416ac6c66dee15f97  gcc/testsuite/gcc.dg/vect/pr96783-1.c
! c80b0abaead3e4084ec80c819f38ef65  gcc/testsuite/gcc.dg/vect/pr96783-2.c
  7533577367bbacf23ddec310ebc2c7bb  gcc/testsuite/gcc.dg/vect/pr96854.c
  e1dafb84c7e06168210ff8f538447cbc  gcc/testsuite/gcc.dg/vect/pr96920.c
! b839d6fa7ffaab08413a204d84e114d4  gcc/testsuite/gcc.dg/vect/pr97081-2.c
  a406e555a8f5f93143c15c8b6b6b63f4  gcc/testsuite/gcc.dg/vect/pr97081.c
  c85681f9b5d2f6a1d4b453846f37fcef  gcc/testsuite/gcc.dg/vect/pr97085.c
  b551cf977314c7406b99b8d04c143b19  gcc/testsuite/gcc.dg/vect/pr97139.c
  6895e7a56bdc4993b94c03e6d5dc587d  gcc/testsuite/gcc.dg/vect/pr97173.c
  28db70b2a4bdf2faf03ba619381af631  gcc/testsuite/gcc.dg/vect/pr97236.c
! 20e8d4d146127438ffe685c492c8ad86  gcc/testsuite/gcc.dg/vect/pr97241.c
! 383951c1cc307ec21b173cbb393b3a33  gcc/testsuite/gcc.dg/vect/pr97428.c
  8d732449a24564fd2cd4ff8dca6c2f37  gcc/testsuite/gcc.dg/vect/pr97457.c
! 4e7901b46d8ff6dfbd12f354b54c6743  gcc/testsuite/gcc.dg/vect/pr97558-2.c
  a0e548875f044f3b51270f1185a1fee3  gcc/testsuite/gcc.dg/vect/pr97558.c
! 948ee123e7e0e4cd42d1affb82aa185b  gcc/testsuite/gcc.dg/vect/pr97678.c
  902c83243896096ca722f80843e37d20  gcc/testsuite/gcc.dg/vect/pr97693.c
  5547564420f3d37eea60b06c9de2674f  gcc/testsuite/gcc.dg/vect/pr97730.c
  80b007c45c37817c71dfe4f531486d33  gcc/testsuite/gcc.dg/vect/pr97753.c
  de446341563e3d64852efdd708c73af4  gcc/testsuite/gcc.dg/vect/pr97760.c
  dfdc43a72483e576cda9ee907710de6d  gcc/testsuite/gcc.dg/vect/pr97769.c
  bb0da8ca0d65ffa68b7178e78ca62cb5  gcc/testsuite/gcc.dg/vect/pr97832-1.c
! 40454d3875750a88cad24bc292a71ebf  gcc/testsuite/gcc.dg/vect/pr97832-2.c
! bb12e628a0ce52cb4c7a107277f6afe6  gcc/testsuite/gcc.dg/vect/pr97832-3.c
! ad723172eccf766bd8e191661e67befb  gcc/testsuite/gcc.dg/vect/pr97832-4.c
  9fe2fbd0b1b3ca85c2b7f3108913ca1f  gcc/testsuite/gcc.dg/vect/pr97835.c
  5b0928674dd82fb6b5b0394b33cbc1a1  gcc/testsuite/gcc.dg/vect/pr97838.c
  ed8e1d716e602e779351272808949150  gcc/testsuite/gcc.dg/vect/pr97929.c
  030baeb142aa86ed13330f77e2bc3979  gcc/testsuite/gcc.dg/vect/pr98048.c
  8c4c12ffbafce0ee4bd214fab89cae4e  gcc/testsuite/gcc.dg/vect/pr98069.c
  a27483154b2f4bcb777eb2dbc73702b9  gcc/testsuite/gcc.dg/vect/pr98302.c
! f63cffd299776f130bda5408dca137c2  gcc/testsuite/gcc.dg/vect/pr98308.c
  dc519b432ee67d22f382f436de6b049d  gcc/testsuite/gcc.dg/vect/pr98560-1.c
  4afc8efba1f31b432e831f101ed6f173  gcc/testsuite/gcc.dg/vect/pr98560-2.c
  c5cc63b339d4d79237ce6ae9795568aa  gcc/testsuite/gcc.dg/vect/pr98674.c
  ecf30a3d5633aea4fdce036a11b8e64f  gcc/testsuite/gcc.dg/vect/pr98848.c
! 32439212bff1056b7d07e9de23c2f3df  gcc/testsuite/gcc.dg/vect/pr99102.c
! 1906ecaca4ed41844bbfad6d9289b6e2  gcc/testsuite/gcc.dg/vect/pr99253.c
  000173f450d34bba06b07317e128469c  gcc/testsuite/gcc.dg/vect/pr99412.c
  24dbffd92c63e8683ef23b5143e0d607  gcc/testsuite/gcc.dg/vect/pr99540.c
  aefd4bda7e5d3e855da2011fb58b8c47  gcc/testsuite/gcc.dg/vect/pr99856.c
! 32d06c886c85516fbdce4ca1bd516496  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
! d7c598d838a7c98392febc88239e2769  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
! cd2f0240aaa18dda8ac3a18459c93d29  gcc/testsuite/gcc.dg/vect/slp-1.c
! 7f23b9b51779dc0a435fe7f7eb32b0e8  gcc/testsuite/gcc.dg/vect/slp-10.c
! 75ee84147bff16154172aea7e7e9ce3a  gcc/testsuite/gcc.dg/vect/slp-11a.c
! bcc1565365a52a580ef234e60732045c  gcc/testsuite/gcc.dg/vect/slp-11b.c
! 639970eabd19badb89a03efd21ba873c  gcc/testsuite/gcc.dg/vect/slp-11c.c
! ba897d8c2f0b0e987a99c1e033948730  gcc/testsuite/gcc.dg/vect/slp-12a.c
! aee19441d8ce48ddc2771a5390cca482  gcc/testsuite/gcc.dg/vect/slp-12b.c
! 062fad9552b7b19c8e06570251ae1f45  gcc/testsuite/gcc.dg/vect/slp-12c.c
! 2f8ea14ce59b6b1755d366f7e0a55b84  gcc/testsuite/gcc.dg/vect/slp-13-big-array.c
! 951bb45b178fca165abc77197fefc192  gcc/testsuite/gcc.dg/vect/slp-13.c
! 4cde9bc0fad9158b3cb2f616ee013de6  gcc/testsuite/gcc.dg/vect/slp-14.c
! ab38cb31bf29887796e19f51e50eab07  gcc/testsuite/gcc.dg/vect/slp-15.c
! 2b173c6ea61be245da9b48b1b51ff29f  gcc/testsuite/gcc.dg/vect/slp-16.c
! 1cadda5cdbf87b3020b20db90bf3137c  gcc/testsuite/gcc.dg/vect/slp-17.c
! feeec17385c2095429ad132bd085a67b  gcc/testsuite/gcc.dg/vect/slp-18.c
! 2b500ec8b214818b594f3bb39f583d5b  gcc/testsuite/gcc.dg/vect/slp-19a.c
! 2920234f7fd01e1c0402626b61e93688  gcc/testsuite/gcc.dg/vect/slp-19b.c
! 107b703b7e1442d67b0d3d6345c9655e  gcc/testsuite/gcc.dg/vect/slp-19c.c
! d7fccaa610ea11b1a5f271dc2f429653  gcc/testsuite/gcc.dg/vect/slp-2.c
! 8ebb5ddb99a2da9a195e7369c7f9b513  gcc/testsuite/gcc.dg/vect/slp-20.c
! 9487bec6ff5dce01695f9c50f3fffc2e  gcc/testsuite/gcc.dg/vect/slp-21.c
! 36a51711f52dc82c7546d284e2f6904a  gcc/testsuite/gcc.dg/vect/slp-22.c
! 986d9befacef0ad372eba8123772baa8  gcc/testsuite/gcc.dg/vect/slp-23.c
! c9166044854a8e3d87de33160660cfbd  gcc/testsuite/gcc.dg/vect/slp-24-big-array.c
! e5e1221b0f3db24e3f3bf9735cf578a4  gcc/testsuite/gcc.dg/vect/slp-24.c
! 66c9a375cd69cdb8d5da80a2527b8641  gcc/testsuite/gcc.dg/vect/slp-25.c
! 140aa4e68ff44957bad070a78e984763  gcc/testsuite/gcc.dg/vect/slp-26.c
! 40b78b95123cd9af1a6de9646a0e2d0e  gcc/testsuite/gcc.dg/vect/slp-28.c
! 620f25efe383cf052fc165488dc172ac  gcc/testsuite/gcc.dg/vect/slp-3-big-array.c
! d155e7a306b63e41a94a1696a3d2ddcd  gcc/testsuite/gcc.dg/vect/slp-3.c
! f1371cb78bd8406146bf5d3be6ca8a13  gcc/testsuite/gcc.dg/vect/slp-33.c
! a8ca70fc391abd3a49dd54f752958fa2  gcc/testsuite/gcc.dg/vect/slp-34-big-array.c
! a5429ab06c5986c2e0271c3a6f4c6cf0  gcc/testsuite/gcc.dg/vect/slp-34.c
! 2a9c280973b2115f991d18030b181036  gcc/testsuite/gcc.dg/vect/slp-35.c
  4098835309b4ba9d3e73db2246ce3bf0  gcc/testsuite/gcc.dg/vect/slp-36.c
! 24390ece3f5070de3923a5b701402fc9  gcc/testsuite/gcc.dg/vect/slp-37.c
  ede1734f85186c73229dd4786f51636c  gcc/testsuite/gcc.dg/vect/slp-38.c
  52c75813f292478bcc4d550f1479c3e3  gcc/testsuite/gcc.dg/vect/slp-39.c
! 20b0cff3f2802b25641b4afb1397d411  gcc/testsuite/gcc.dg/vect/slp-4-big-array.c
! 636f816ad3566bd94c00ce9f450da9e3  gcc/testsuite/gcc.dg/vect/slp-4.c
! 5da40f81b7bf77865a2bd24b6770ff69  gcc/testsuite/gcc.dg/vect/slp-41.c
  03ddbd9e0aebee2332870297075726df  gcc/testsuite/gcc.dg/vect/slp-42.c
! 822c04ff63bb1c82aafdcb8e8cc9a7a6  gcc/testsuite/gcc.dg/vect/slp-43.c
  a397bfe9f818dafa44b2593952e5c479  gcc/testsuite/gcc.dg/vect/slp-44.c
! 17e88098b60257dac75a6f022b16bd1e  gcc/testsuite/gcc.dg/vect/slp-45.c
! ca8d8277a6f49e408bef068a9c40deb4  gcc/testsuite/gcc.dg/vect/slp-46.c
! 4ee7f77e4da88fb9cc7fdfe1d22c1c2c  gcc/testsuite/gcc.dg/vect/slp-47.c
! a5b5fe21d953b3cf402506aa57c3d065  gcc/testsuite/gcc.dg/vect/slp-48.c
! d411c01b4877554576a690ad75642c9c  gcc/testsuite/gcc.dg/vect/slp-49.c
! 94cab958cbf9ae8fce13bdd8c3b74a6d  gcc/testsuite/gcc.dg/vect/slp-5.c
  9bcd40afd8d4d59a592c847a0e18238c  gcc/testsuite/gcc.dg/vect/slp-50.c
! af23113d71fb18e642c9a7a2b9f9c0fd  gcc/testsuite/gcc.dg/vect/slp-6.c
! b3d2fff99fdc9c33e68f2ba4a3b8955b  gcc/testsuite/gcc.dg/vect/slp-7.c
! 095b15e60c3303038cf50c94ca50d6dd  gcc/testsuite/gcc.dg/vect/slp-8.c
! 0804808e9d19a3655fbde51e64fcfb76  gcc/testsuite/gcc.dg/vect/slp-9.c
! fd68ef959b65053a430833f00187206a  gcc/testsuite/gcc.dg/vect/slp-cond-1.c
! d6e562ba3471fb70a14d801706bbc84e  gcc/testsuite/gcc.dg/vect/slp-cond-2-big-array.c
! 2088ab634839af0153824a2487f1f85c  gcc/testsuite/gcc.dg/vect/slp-cond-2.c
! 6a7607d5d5730954b62fb2c3b7c8389e  gcc/testsuite/gcc.dg/vect/slp-cond-3.c
! 025c8079f0e732250e3bdf3a52f8218f  gcc/testsuite/gcc.dg/vect/slp-cond-4.c
! fae76ca272ca1d56a1750929315ad201  gcc/testsuite/gcc.dg/vect/slp-cond-5.c
! 128dd7ca21c17a4f31443f1f3ae6a233  gcc/testsuite/gcc.dg/vect/slp-multitypes-1.c
! 378fd3c047a4e11988b5916b89079e54  gcc/testsuite/gcc.dg/vect/slp-multitypes-10.c
! 36720b86229f187364440189c978bdb7  gcc/testsuite/gcc.dg/vect/slp-multitypes-11-big-array.c
! 2984ea81250ef4a7d4116170eec3ba6b  gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
! 611fa558934babaeccf3ebcc805c085a  gcc/testsuite/gcc.dg/vect/slp-multitypes-12.c
  c3b3a41e54fbfae2cbdac1a7285c0ca4  gcc/testsuite/gcc.dg/vect/slp-multitypes-13.c
! 409aa5591bdee4aacf2a5aa83d03e9f9  gcc/testsuite/gcc.dg/vect/slp-multitypes-2.c
! db686f43011d39a6e06570d752910217  gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c
! c64db5e6268c059d406e30dbcc678daf  gcc/testsuite/gcc.dg/vect/slp-multitypes-4.c
! eadba91843cb96fda86d2bac9b86b096  gcc/testsuite/gcc.dg/vect/slp-multitypes-5.c
! b0dbfa6cdc6dde5390e046d7232b175a  gcc/testsuite/gcc.dg/vect/slp-multitypes-6.c
! 9356116338addb961af16b16abfadde1  gcc/testsuite/gcc.dg/vect/slp-multitypes-7.c
! 1fa87443d845f33c3180891583ec33de  gcc/testsuite/gcc.dg/vect/slp-multitypes-8.c
! 6c7bf362ee69b05cf36bbac9eb502eca  gcc/testsuite/gcc.dg/vect/slp-multitypes-9.c
! 2db8480467b39673d00cfc2cab295718  gcc/testsuite/gcc.dg/vect/slp-perm-1.c
! 29a3b90ad389260373341a01a2ea4a4a  gcc/testsuite/gcc.dg/vect/slp-perm-10.c
! 7100361f955fae8aee5871765ae13581  gcc/testsuite/gcc.dg/vect/slp-perm-11.c
! 4578d9218e40d1673ff09407cf44828d  gcc/testsuite/gcc.dg/vect/slp-perm-12.c
! 18d9fe222911261ce35b01f0fd794f78  gcc/testsuite/gcc.dg/vect/slp-perm-2.c
! 24ca29b41e5261a4514fbabfda7b1a56  gcc/testsuite/gcc.dg/vect/slp-perm-3.c
! 5b86ca4cac6d5223a0bec92eb10300b9  gcc/testsuite/gcc.dg/vect/slp-perm-4.c
! e9bb13be425e14161749170fa87ec0f6  gcc/testsuite/gcc.dg/vect/slp-perm-5.c
! ed9aee5045ea1db454e98a0a75bb0595  gcc/testsuite/gcc.dg/vect/slp-perm-6.c
! 46764cca553d4fe0718067fb18004da4  gcc/testsuite/gcc.dg/vect/slp-perm-7.c
! 5730fe935f21cd67726d3798f0b6d166  gcc/testsuite/gcc.dg/vect/slp-perm-8.c
! bc336869608effbadcb614ac30fd0f2c  gcc/testsuite/gcc.dg/vect/slp-perm-9.c
! 15dec799e753a2ad77b96874b96dc1c8  gcc/testsuite/gcc.dg/vect/slp-reduc-1.c
! e33d9305ff87bf0b76410ea5729955bf  gcc/testsuite/gcc.dg/vect/slp-reduc-10a.c
! c4e2f923d33c5b7b33949455e9f92e65  gcc/testsuite/gcc.dg/vect/slp-reduc-10b.c
! 5a50e4f3cc91f11db970ceee67a4e452  gcc/testsuite/gcc.dg/vect/slp-reduc-10c.c
! 5fb72323180fdc61146cc89144a7d3f2  gcc/testsuite/gcc.dg/vect/slp-reduc-10d.c
! 3f349243229dc47da1e7ca7f0be9ee64  gcc/testsuite/gcc.dg/vect/slp-reduc-10e.c
  72470473142b614c9abbb4961ae363e0  gcc/testsuite/gcc.dg/vect/slp-reduc-11.c
! c2dfc1561d3c84ccf7888c7ec864dca3  gcc/testsuite/gcc.dg/vect/slp-reduc-2.c
  75285f8513469a815d923eef56a5a8ac  gcc/testsuite/gcc.dg/vect/slp-reduc-3.c
! 922cbd15ae104261be30cbbf32336d93  gcc/testsuite/gcc.dg/vect/slp-reduc-4.c
  1b5987e80f4b7de162d30d061e5a4354  gcc/testsuite/gcc.dg/vect/slp-reduc-5.c
  e0e83977857b0d99ff7820be33d715b3  gcc/testsuite/gcc.dg/vect/slp-reduc-6.c
! 40e5371238678c762c14d45c232ab7d3  gcc/testsuite/gcc.dg/vect/slp-reduc-7.c
! 030cb8061ca9614b756c8f4471116e37  gcc/testsuite/gcc.dg/vect/slp-reduc-8.c
  47a58a2432ef206c186d1cc0b3bd5bc0  gcc/testsuite/gcc.dg/vect/slp-reduc-9.c
  df438928392b81c11f2a1e3220ae04a3  gcc/testsuite/gcc.dg/vect/slp-reduc-sad-2.c
! da6b49438769df265a4a0896419569eb  gcc/testsuite/gcc.dg/vect/slp-reduc-sad.c
! ebf9a4af438eb418680812f064e4b6b0  gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c
! b959bf9c495c51757df862405bcd0437  gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
! d1b21b9400153596e0d058bf048e9911  gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
  3581110ad2b3af27f54b41f9364c1e14  gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c
! c98bf5e8cdb13d002ce5b474539328d2  gcc/testsuite/gcc.dg/vect/tree-vect.h
  e89cc050a04f95cc194e9469aa72808f  gcc/testsuite/gcc.dg/vect/tsvc/license.txt
! a7d3e97da65f4dfe42449b901cf9215b  gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h
  9f6419b4c50931a4103f67c8213f8a60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s000.c
  f17c1a09c018fb8c535cbda72ebac53e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s111.c
  2173284143ca43e8bbe2dce3ebb0db1a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1111.c
  62faa1933c89383fd2efc5372fd647c8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1112.c
  f6febd963b483d944c8ee4be5b62cdbe  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1113.c
! e17d68464dfda80bfc59ec90a1c47a36  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1115.c
  f98c1dacd12f364b7ee1fd15c01f81bb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1119.c
  efaa17f7e9e73adc6190a31446bd7b3c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s112.c
  1f99778feb8660cd3a163abf9247f420  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s113.c
! 7352fd7df6191de49dcd1861c87e48b5  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s114.c
  68708d9f2685bd5fae6ab720ca83852f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s115.c
! 60d1671aced0a23a9671e1ddc1c9f5de  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s116.c
! 4dc3c697abe75e0fe11ab6a416691218  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1161.c
  d58dfcd344355c4c2590cf4b04c4a19d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s118.c
  0e5e95e7cf3bef9b2265f4accdfa7203  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s119.c
  59ccaef4b77350ae26e0cba8d763db60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s121.c
--- 54847,55022 ----
  9580b042b08a37186ada7134d2de81c6  gcc/testsuite/gcc.dg/vect/pr95897.c
  13d91ca100fc03f2963725ce48e8004f  gcc/testsuite/gcc.dg/vect/pr95916.c
  99d29dd4c5f954590b3db9a8eb557c28  gcc/testsuite/gcc.dg/vect/pr96698.c
! eb98529f4fbe0da5c07f1b617204a1e9  gcc/testsuite/gcc.dg/vect/pr96783-1.c
! a10041b648ed804fb41db6478e3c6e8a  gcc/testsuite/gcc.dg/vect/pr96783-2.c
  7533577367bbacf23ddec310ebc2c7bb  gcc/testsuite/gcc.dg/vect/pr96854.c
  e1dafb84c7e06168210ff8f538447cbc  gcc/testsuite/gcc.dg/vect/pr96920.c
! f38057ca3e7e10fdbb30cdc87b2fca78  gcc/testsuite/gcc.dg/vect/pr97081-2.c
  a406e555a8f5f93143c15c8b6b6b63f4  gcc/testsuite/gcc.dg/vect/pr97081.c
  c85681f9b5d2f6a1d4b453846f37fcef  gcc/testsuite/gcc.dg/vect/pr97085.c
  b551cf977314c7406b99b8d04c143b19  gcc/testsuite/gcc.dg/vect/pr97139.c
  6895e7a56bdc4993b94c03e6d5dc587d  gcc/testsuite/gcc.dg/vect/pr97173.c
  28db70b2a4bdf2faf03ba619381af631  gcc/testsuite/gcc.dg/vect/pr97236.c
! 1b1823c20d6d9a09ca7a1729f72c05f2  gcc/testsuite/gcc.dg/vect/pr97241.c
! 0e9132aedc16790298c756a5bb468d40  gcc/testsuite/gcc.dg/vect/pr97428.c
  8d732449a24564fd2cd4ff8dca6c2f37  gcc/testsuite/gcc.dg/vect/pr97457.c
! 9cbc914a5b729f1284eeaea50a3f98b1  gcc/testsuite/gcc.dg/vect/pr97558-2.c
  a0e548875f044f3b51270f1185a1fee3  gcc/testsuite/gcc.dg/vect/pr97558.c
! f03dfc7a4d7b802ed456a631835f4689  gcc/testsuite/gcc.dg/vect/pr97678.c
  902c83243896096ca722f80843e37d20  gcc/testsuite/gcc.dg/vect/pr97693.c
  5547564420f3d37eea60b06c9de2674f  gcc/testsuite/gcc.dg/vect/pr97730.c
  80b007c45c37817c71dfe4f531486d33  gcc/testsuite/gcc.dg/vect/pr97753.c
  de446341563e3d64852efdd708c73af4  gcc/testsuite/gcc.dg/vect/pr97760.c
  dfdc43a72483e576cda9ee907710de6d  gcc/testsuite/gcc.dg/vect/pr97769.c
  bb0da8ca0d65ffa68b7178e78ca62cb5  gcc/testsuite/gcc.dg/vect/pr97832-1.c
! 708d1251e863a4366d70c44d607b83e7  gcc/testsuite/gcc.dg/vect/pr97832-2.c
! a484f88bf4d34b48820848e71c7adaf2  gcc/testsuite/gcc.dg/vect/pr97832-3.c
! 1d0bc5db0d7aa51c8b1ab70d297125a7  gcc/testsuite/gcc.dg/vect/pr97832-4.c
  9fe2fbd0b1b3ca85c2b7f3108913ca1f  gcc/testsuite/gcc.dg/vect/pr97835.c
  5b0928674dd82fb6b5b0394b33cbc1a1  gcc/testsuite/gcc.dg/vect/pr97838.c
  ed8e1d716e602e779351272808949150  gcc/testsuite/gcc.dg/vect/pr97929.c
  030baeb142aa86ed13330f77e2bc3979  gcc/testsuite/gcc.dg/vect/pr98048.c
  8c4c12ffbafce0ee4bd214fab89cae4e  gcc/testsuite/gcc.dg/vect/pr98069.c
  a27483154b2f4bcb777eb2dbc73702b9  gcc/testsuite/gcc.dg/vect/pr98302.c
! 10bfe222b87b0ed656203c656fd3c840  gcc/testsuite/gcc.dg/vect/pr98308.c
  dc519b432ee67d22f382f436de6b049d  gcc/testsuite/gcc.dg/vect/pr98560-1.c
  4afc8efba1f31b432e831f101ed6f173  gcc/testsuite/gcc.dg/vect/pr98560-2.c
  c5cc63b339d4d79237ce6ae9795568aa  gcc/testsuite/gcc.dg/vect/pr98674.c
  ecf30a3d5633aea4fdce036a11b8e64f  gcc/testsuite/gcc.dg/vect/pr98848.c
! 0698e78ccfdf0af3dbe8c3e062d6faa4  gcc/testsuite/gcc.dg/vect/pr99102.c
! 9d0aa7f46ec92cf88a6713ddd1d7c203  gcc/testsuite/gcc.dg/vect/pr99253.c
  000173f450d34bba06b07317e128469c  gcc/testsuite/gcc.dg/vect/pr99412.c
  24dbffd92c63e8683ef23b5143e0d607  gcc/testsuite/gcc.dg/vect/pr99540.c
  aefd4bda7e5d3e855da2011fb58b8c47  gcc/testsuite/gcc.dg/vect/pr99856.c
! 9cd318f612b8d0495c561f5291f6ad13  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
! 9cdba68e4ea92813441d88e7dd129580  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
! 37ce270a08fd89fd72de1e08913dfe45  gcc/testsuite/gcc.dg/vect/slp-1.c
! a30ffc73f52e57b75e3c5f7d010895c9  gcc/testsuite/gcc.dg/vect/slp-10.c
! e567a4c718e7cd8cfedc176405ec0dc1  gcc/testsuite/gcc.dg/vect/slp-11a.c
! 2f0bfa32d48f181e2988511ef49e6f72  gcc/testsuite/gcc.dg/vect/slp-11b.c
! 2817addccb7241ef81e7d8c0ebbb4eaf  gcc/testsuite/gcc.dg/vect/slp-11c.c
! 84decce7e3ce6b875660d7c4f2a3bf19  gcc/testsuite/gcc.dg/vect/slp-12a.c
! 3c1ad2ccea73708be2698e02609bf0fa  gcc/testsuite/gcc.dg/vect/slp-12b.c
! 1ca5ce71edb3d9d83c26dca6df8711f1  gcc/testsuite/gcc.dg/vect/slp-12c.c
! 4099ae3686d9682e2105c56f14108cf2  gcc/testsuite/gcc.dg/vect/slp-13-big-array.c
! 92573900bfaa6153dd3c04fbf544b73e  gcc/testsuite/gcc.dg/vect/slp-13.c
! db479e896063dc565f9b60d1b90e32fb  gcc/testsuite/gcc.dg/vect/slp-14.c
! b631213cc9769461a0904b3f2df409e7  gcc/testsuite/gcc.dg/vect/slp-15.c
! 69e85e55a6cc8b408e733ec9857b98f5  gcc/testsuite/gcc.dg/vect/slp-16.c
! b938790e21681ca7c15aa47e31279a7a  gcc/testsuite/gcc.dg/vect/slp-17.c
! 8b8bcee36330c02f3d8e165a067e3a69  gcc/testsuite/gcc.dg/vect/slp-18.c
! 67edc4bee3d4e329cfc3dfc65611d5a2  gcc/testsuite/gcc.dg/vect/slp-19a.c
! a508692d7568d01bcf603cd2f58351b3  gcc/testsuite/gcc.dg/vect/slp-19b.c
! bfca64c152b62900f20074cff0135f2f  gcc/testsuite/gcc.dg/vect/slp-19c.c
! aef69f0d6a8c8f7dbaca311c84273cc5  gcc/testsuite/gcc.dg/vect/slp-2.c
! b19a8753eafbe778b32fd81fecaf9d04  gcc/testsuite/gcc.dg/vect/slp-20.c
! f754f8b79f4d65bb902f9f6db58ab815  gcc/testsuite/gcc.dg/vect/slp-21.c
! c9acad13727b373a9e9ad7b3fb8f387a  gcc/testsuite/gcc.dg/vect/slp-22.c
! ab14b9a8140b2f5e39266655cba1cb42  gcc/testsuite/gcc.dg/vect/slp-23.c
! f0201677f0d911594cdc82d7854c4ec9  gcc/testsuite/gcc.dg/vect/slp-24-big-array.c
! 5742e4c32af38803dd64f3361cfd73fb  gcc/testsuite/gcc.dg/vect/slp-24.c
! e3153e4fa0cd57f31cd27ff2a5e3e509  gcc/testsuite/gcc.dg/vect/slp-25.c
! 620757b2866bdc938ee17a56a7c169b1  gcc/testsuite/gcc.dg/vect/slp-26.c
! 1400ec4b5a057164a2b0f27db7323166  gcc/testsuite/gcc.dg/vect/slp-28.c
! 4e1ffccecc23382df688437a5f471a8e  gcc/testsuite/gcc.dg/vect/slp-3-big-array.c
! 8e4d813bb5abc2214d5c49998ce56f69  gcc/testsuite/gcc.dg/vect/slp-3.c
! 8fdf629547427db5c457df973aafb534  gcc/testsuite/gcc.dg/vect/slp-33.c
! 57baa6fb31fd4789f10b494034f9b604  gcc/testsuite/gcc.dg/vect/slp-34-big-array.c
! 863afe436d792775ddc5040ac14c804b  gcc/testsuite/gcc.dg/vect/slp-34.c
! 3e921a4d4c808ab5bd837258de91135c  gcc/testsuite/gcc.dg/vect/slp-35.c
  4098835309b4ba9d3e73db2246ce3bf0  gcc/testsuite/gcc.dg/vect/slp-36.c
! abe70bf7ff6c0a004e8c49a02a04af30  gcc/testsuite/gcc.dg/vect/slp-37.c
  ede1734f85186c73229dd4786f51636c  gcc/testsuite/gcc.dg/vect/slp-38.c
  52c75813f292478bcc4d550f1479c3e3  gcc/testsuite/gcc.dg/vect/slp-39.c
! a5251717535bcc12e7363da2c2bce203  gcc/testsuite/gcc.dg/vect/slp-4-big-array.c
! 99d64643a7d3f702e146be03ab9dd663  gcc/testsuite/gcc.dg/vect/slp-4.c
! 2a99bfcee356fb9cd9c3d423ac561f87  gcc/testsuite/gcc.dg/vect/slp-41.c
  03ddbd9e0aebee2332870297075726df  gcc/testsuite/gcc.dg/vect/slp-42.c
! fcf3629c1596676f7b3f80a06bd0ca65  gcc/testsuite/gcc.dg/vect/slp-43.c
  a397bfe9f818dafa44b2593952e5c479  gcc/testsuite/gcc.dg/vect/slp-44.c
! 8fce992b2313d2212af809a1833ec229  gcc/testsuite/gcc.dg/vect/slp-45.c
! f265ba618df9ede76ed975fc09e0c434  gcc/testsuite/gcc.dg/vect/slp-46.c
! bd95de1a4f7a5b8df307c0ae67eb8676  gcc/testsuite/gcc.dg/vect/slp-47.c
! de649522f3ab7b00ae0b659e97a5d056  gcc/testsuite/gcc.dg/vect/slp-48.c
! 34dfcf82c079958b668bce6a7db573fe  gcc/testsuite/gcc.dg/vect/slp-49.c
! abff6dc2123081ede4be06cc91956e8a  gcc/testsuite/gcc.dg/vect/slp-5.c
  9bcd40afd8d4d59a592c847a0e18238c  gcc/testsuite/gcc.dg/vect/slp-50.c
! fd61a3a4acd9d7431e7535472d55145c  gcc/testsuite/gcc.dg/vect/slp-6.c
! 149e3b4d9c443485af4651f8f7e8fc55  gcc/testsuite/gcc.dg/vect/slp-7.c
! cd278a5b32bf0e2c064277bbe8d933a8  gcc/testsuite/gcc.dg/vect/slp-8.c
! d25431ed7f2be1237c16a48249905766  gcc/testsuite/gcc.dg/vect/slp-9.c
! 5a33d33294593fc94f5b4b3f6ac4b14d  gcc/testsuite/gcc.dg/vect/slp-cond-1.c
! 258375ae16fbc698952a40ba6484aca8  gcc/testsuite/gcc.dg/vect/slp-cond-2-big-array.c
! a9bd53f8fe80a6107f7d6733cfa34de8  gcc/testsuite/gcc.dg/vect/slp-cond-2.c
! 1c03f52cb5495e44a665aa0f46f70340  gcc/testsuite/gcc.dg/vect/slp-cond-3.c
! 468486cc4740370353b32e6201d6f0f1  gcc/testsuite/gcc.dg/vect/slp-cond-4.c
! f5eab4a25b5ed4d078593a97bea91fe0  gcc/testsuite/gcc.dg/vect/slp-cond-5.c
! 6dc1a058f04985c8b79da92f3cbea6ac  gcc/testsuite/gcc.dg/vect/slp-mask-store-1.c
! 43e8632b365ee1abea3df922903c71cf  gcc/testsuite/gcc.dg/vect/slp-multitypes-1.c
! 6b1a73fd3fee41f5f71ef9f400e19520  gcc/testsuite/gcc.dg/vect/slp-multitypes-10.c
! e13f2ca391860230019b43ec75cf0653  gcc/testsuite/gcc.dg/vect/slp-multitypes-11-big-array.c
! 083cb89962153765889875beb82c75f8  gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
! 5cac9643b35cf67643402eda4a47df04  gcc/testsuite/gcc.dg/vect/slp-multitypes-12.c
  c3b3a41e54fbfae2cbdac1a7285c0ca4  gcc/testsuite/gcc.dg/vect/slp-multitypes-13.c
! 025c524333d646b9dbf37582aa6eef38  gcc/testsuite/gcc.dg/vect/slp-multitypes-2.c
! f619a85155e0660effc9ac07e331a211  gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c
! c4ace72884528e85d1a015eb8250a628  gcc/testsuite/gcc.dg/vect/slp-multitypes-4.c
! effcb9be59afe85fa806a754bcb7c5e1  gcc/testsuite/gcc.dg/vect/slp-multitypes-5.c
! dced205d4b7229b2015bdcec33c917e2  gcc/testsuite/gcc.dg/vect/slp-multitypes-6.c
! fc0d735bc020a2dee72b143a0431a202  gcc/testsuite/gcc.dg/vect/slp-multitypes-7.c
! a29ec40838f0e106ac740767d8a1d364  gcc/testsuite/gcc.dg/vect/slp-multitypes-8.c
! c711cd9eff7eb5ed5d14d0fd363950e6  gcc/testsuite/gcc.dg/vect/slp-multitypes-9.c
! b966b5ea1577b8dbc5254e4ae59aa431  gcc/testsuite/gcc.dg/vect/slp-perm-1.c
! 3b2842a1c1ebc95c16b7619d3d426eba  gcc/testsuite/gcc.dg/vect/slp-perm-10.c
! 3beafb427d12fe91313ba6b5153f34a8  gcc/testsuite/gcc.dg/vect/slp-perm-11.c
! e5c04f2ab9a5a2958b6dbccd94242115  gcc/testsuite/gcc.dg/vect/slp-perm-12.c
! bc340fa7071f0d0b32685fa8f23d2f3e  gcc/testsuite/gcc.dg/vect/slp-perm-2.c
! 8ce993773e36b7f22a78c8b5321d9e56  gcc/testsuite/gcc.dg/vect/slp-perm-3.c
! cb4a7d9b4c2a6d61cf2d8ce37a94abe6  gcc/testsuite/gcc.dg/vect/slp-perm-4.c
! f3e49dd2b21db5315552ee950626c052  gcc/testsuite/gcc.dg/vect/slp-perm-5.c
! c58ad9d59071fa75e555ec9c39f4ea8b  gcc/testsuite/gcc.dg/vect/slp-perm-6.c
! 9d6f2dd1bb9b2a2dffd6eb70572f2f03  gcc/testsuite/gcc.dg/vect/slp-perm-7.c
! fe936ca4c1d77a94e231c608a3824065  gcc/testsuite/gcc.dg/vect/slp-perm-8.c
! cfa2f44ce4f4e85152a07aa1e2b1fa89  gcc/testsuite/gcc.dg/vect/slp-perm-9.c
! 1aa1e9fdfef6388c4496484bfc44a281  gcc/testsuite/gcc.dg/vect/slp-reduc-1.c
! 1053e4b8dc7f2e960051d957ae4e61f5  gcc/testsuite/gcc.dg/vect/slp-reduc-10a.c
! 1a977bd501160d55eb0eecdbef3712ec  gcc/testsuite/gcc.dg/vect/slp-reduc-10b.c
! 1f515ae19f1e20e423c95ccf4621832b  gcc/testsuite/gcc.dg/vect/slp-reduc-10c.c
! e75c09f3eb5fab5920e6bbe5a24c7bd6  gcc/testsuite/gcc.dg/vect/slp-reduc-10d.c
! f611850bdcf6c79cc21bf0f12c5469e8  gcc/testsuite/gcc.dg/vect/slp-reduc-10e.c
  72470473142b614c9abbb4961ae363e0  gcc/testsuite/gcc.dg/vect/slp-reduc-11.c
! 13f8e9309546363711eaedb177e2c8b9  gcc/testsuite/gcc.dg/vect/slp-reduc-2.c
  75285f8513469a815d923eef56a5a8ac  gcc/testsuite/gcc.dg/vect/slp-reduc-3.c
! c55d57b7c388649326d3f1769d26a8dc  gcc/testsuite/gcc.dg/vect/slp-reduc-4.c
  1b5987e80f4b7de162d30d061e5a4354  gcc/testsuite/gcc.dg/vect/slp-reduc-5.c
  e0e83977857b0d99ff7820be33d715b3  gcc/testsuite/gcc.dg/vect/slp-reduc-6.c
! 79681bd4a80232057373be7dcc712b09  gcc/testsuite/gcc.dg/vect/slp-reduc-7.c
! 6b88b083ffbec1373a1873a7ffab2b3c  gcc/testsuite/gcc.dg/vect/slp-reduc-8.c
  47a58a2432ef206c186d1cc0b3bd5bc0  gcc/testsuite/gcc.dg/vect/slp-reduc-9.c
  df438928392b81c11f2a1e3220ae04a3  gcc/testsuite/gcc.dg/vect/slp-reduc-sad-2.c
! 066c96f1ae2a9f0f0508e5f06659427c  gcc/testsuite/gcc.dg/vect/slp-reduc-sad.c
! bce659f36d2c583cb99462b31ce124ad  gcc/testsuite/gcc.dg/vect/slp-simd-clone-1.c
! b0a87850d8d88048ac704db35dcc2459  gcc/testsuite/gcc.dg/vect/slp-simd-clone-2.c
! 8bdc194c5dbf3576077b33bb90449c00  gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c
! 582f4de89dcf598a96b7dabf673209dd  gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
! cbfea86deb7a2172db8304b50540da0c  gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
  3581110ad2b3af27f54b41f9364c1e14  gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c
! 0d80df321da1e267172df96267f9af63  gcc/testsuite/gcc.dg/vect/tree-vect.h
  e89cc050a04f95cc194e9469aa72808f  gcc/testsuite/gcc.dg/vect/tsvc/license.txt
! 997237fb8e8959841dca4c15e8d10100  gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h
  9f6419b4c50931a4103f67c8213f8a60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s000.c
  f17c1a09c018fb8c535cbda72ebac53e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s111.c
  2173284143ca43e8bbe2dce3ebb0db1a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1111.c
  62faa1933c89383fd2efc5372fd647c8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1112.c
  f6febd963b483d944c8ee4be5b62cdbe  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1113.c
! cf52f123e368acb6e2ecdacc3a6eec3c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1115.c
  f98c1dacd12f364b7ee1fd15c01f81bb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1119.c
  efaa17f7e9e73adc6190a31446bd7b3c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s112.c
  1f99778feb8660cd3a163abf9247f420  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s113.c
! 8a66acf697bcf2504928144082d7d464  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s114.c
  68708d9f2685bd5fae6ab720ca83852f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s115.c
! 8816daece0171b3400ef437f83401be4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s116.c
! 71ef34ee988add646fe976e86e3a18f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1161.c
  d58dfcd344355c4c2590cf4b04c4a19d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s118.c
  0e5e95e7cf3bef9b2265f4accdfa7203  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s119.c
  59ccaef4b77350ae26e0cba8d763db60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s121.c
*************** e9cd016b9ff2801305d1e0ad988644b9  gcc/te
*** 52125,52138 ****
  b35c2e9856d8c47fe15c1afbe3df715a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s122.c
  32a572e42f783699e05d80fa568e71e8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1221.c
  d964fdd5bad3468a8e455bfbee9320f3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s123.c
! 1b485cbb623b845072245660d95fb9a3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1232.c
! 6ee91573792aa030782c8dc731c5bc60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s124.c
  642c46feeade837a191b39791c9ee4d8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c
  adae3096335071cf3e8254d1f7904485  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s125.c
  46026f923782ba797469188e75c2eec4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1251.c
  0d1a85b433572bbc136855de9237264a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s126.c
  395e127cfc68ba064c7a372968e52f02  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s127.c
! 77d05532034ce33e71366bb8964e0c72  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1279.c
  94a4ff4ac7ebaed7587848bd371a8265  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s128.c
  e6b49f4f04d3717d26650650306cb6cf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1281.c
  906ea5d96a9f8ff26ffacdbc50c68fb8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s131.c
--- 55024,55037 ----
  b35c2e9856d8c47fe15c1afbe3df715a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s122.c
  32a572e42f783699e05d80fa568e71e8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1221.c
  d964fdd5bad3468a8e455bfbee9320f3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s123.c
! 762ca438d6f2445bb7f2c91d1d1379f0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1232.c
! 45cc297ae1f89f389a55977a2b04ed2b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s124.c
  642c46feeade837a191b39791c9ee4d8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c
  adae3096335071cf3e8254d1f7904485  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s125.c
  46026f923782ba797469188e75c2eec4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1251.c
  0d1a85b433572bbc136855de9237264a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s126.c
  395e127cfc68ba064c7a372968e52f02  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s127.c
! 2807b531f29b82cac701626a5b540677  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1279.c
  94a4ff4ac7ebaed7587848bd371a8265  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s128.c
  e6b49f4f04d3717d26650650306cb6cf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1281.c
  906ea5d96a9f8ff26ffacdbc50c68fb8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s131.c
*************** e6aba3ea69500d13a666c2cc21358274  gcc/te
*** 52143,52156 ****
  8cbb98fc74be38ad1c9ed6fb7bb4afa3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1421.c
  56b3ad1b3cce6bfc16d2f17a7667537c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s151.c
  0dd05f74e950ad74111e845a9a90c6ba  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s152.c
! 0c1a8d6a731765257eb9346c160d3449  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s161.c
  eeba78ab47e7fa23964b6d6fb81b79f9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s162.c
  e887776f7cc57c048d38867fab488115  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s171.c
  eb16b823c80f13ff0bcd018c1aa76df9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s172.c
  2a3d1083c7ce395f480a0b8155ea2748  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s173.c
  3e244002926fbfb4cd8da2821ad02d48  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s174.c
  a28f0042581f0989759c860f5c0e57f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s175.c
! 0ebb176ad300fbff95668528a9c3d5fb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s176.c
  fe75dd190bca68b94872eb6dd6b58c82  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2101.c
  b25051863266eda556c3632eb211ebeb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2102.c
  767f361a57ec7fc39e42fada1468ad83  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s211.c
--- 55042,55055 ----
  8cbb98fc74be38ad1c9ed6fb7bb4afa3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1421.c
  56b3ad1b3cce6bfc16d2f17a7667537c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s151.c
  0dd05f74e950ad74111e845a9a90c6ba  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s152.c
! 04dbaf79f4d140ed75e064613453555b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s161.c
  eeba78ab47e7fa23964b6d6fb81b79f9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s162.c
  e887776f7cc57c048d38867fab488115  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s171.c
  eb16b823c80f13ff0bcd018c1aa76df9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s172.c
  2a3d1083c7ce395f480a0b8155ea2748  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s173.c
  3e244002926fbfb4cd8da2821ad02d48  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s174.c
  a28f0042581f0989759c860f5c0e57f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s175.c
! efb49820616c175b5945f28ff50a8639  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s176.c
  fe75dd190bca68b94872eb6dd6b58c82  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2101.c
  b25051863266eda556c3632eb211ebeb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2102.c
  767f361a57ec7fc39e42fada1468ad83  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s211.c
*************** af9046baf5e43f4ff13449c949f1bce7  gcc/te
*** 52166,52203 ****
  0e07ada68b935ff470dd5909852dd62a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s232.c
  a7f2dbf580114b2f153604e7581e2acf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s233.c
  4c435fc1c8fd55c7fae05909b4a826b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s235.c
! dcaf196bf79d059b531baf20e4bd7de3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s241.c
  96c0667d45798115c6fb862dd5c94f25  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s242.c
  47d237c29cb7dae067162bde8f8dcc5c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s243.c
  131b19be810a8bfb767545aa578b7ef8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s244.c
  fbe1a08af29413012b695d33f50acd1c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s251.c
  16808db49d694bcb7fa2388f2b27cae0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s252.c
! 6c4318e97128d7ceac21358ef7a0ac08  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s253.c
! 4244ba9876785c75a498ff49318fb37f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s254.c
  2c381e103fb4bc210b8893a0e3694b5d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s255.c
  607d0e9c1c3547b8e384fcc149ea0adc  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s256.c
! c34e9a7ae92c1e585ce20ab7d630e069  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s257.c
  338620bfc661e6a5a7e9e1761bf55f3e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s258.c
  7a86fb91e2f6da576040de609ff2c4b6  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s261.c
! ffc55e07ae1faf07cf0752399740e4a4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s271.c
  5903d75da8531c131180982d7be371e4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2710.c
! 5beb5ec15b7340f76dbac096093d0668  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2711.c
! 8a925dae6ac60b969163d2516af5b4d0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2712.c
! bac95b08817d9b936beab0d8d3e3a837  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s272.c
! 627fb078d98679f2cd42f277a71ae6c9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s273.c
! 2806dedca39b77d6d2e14fac2c2846bd  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s274.c
  aff4ccd2e23e41d8895aca42006ac7b9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s275.c
! 65addeee1005ef918cb9782229b00b9b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s276.c
  b4e1a61bab611e31beed78edb6d07e2f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s277.c
! 7981ad0f8f86f890e7ead1c0e91a467d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s278.c
! f3cf46b7cb75f0d802320c0f8da0e16b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s279.c
  edde27caeb90674dfc63f9c173c1b91f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s281.c
  96fbfc156c3b3288d2ff073c66fd45f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s291.c
  487436a657a10164bf9f61b4a31677bf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s292.c
  bb61c333ca489dc9c9ff444266758423  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s293.c
  190e37171bed3c92de9d86fa1e13fa24  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s311.c
  68fbc3db2225942315dd9388c277f3b1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3110.c
! 0e6c6d41c82ea7677a114b3c54906b2e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3111.c
  95287d087840175189959333ae52a2e8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s31111.c
  07ba7e0bb209092900969c9940d17b36  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3112.c
  c317cb696a26bea6d51beb4b38e72094  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3113.c
--- 55065,55102 ----
  0e07ada68b935ff470dd5909852dd62a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s232.c
  a7f2dbf580114b2f153604e7581e2acf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s233.c
  4c435fc1c8fd55c7fae05909b4a826b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s235.c
! e2588c07704f7f0206e90c0caf400a71  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s241.c
  96c0667d45798115c6fb862dd5c94f25  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s242.c
  47d237c29cb7dae067162bde8f8dcc5c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s243.c
  131b19be810a8bfb767545aa578b7ef8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s244.c
  fbe1a08af29413012b695d33f50acd1c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s251.c
  16808db49d694bcb7fa2388f2b27cae0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s252.c
! 07c2e82e8178708e57ca22b81a5d06c0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s253.c
! 7941e84dbbdbf5c3285ed7a921617275  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s254.c
  2c381e103fb4bc210b8893a0e3694b5d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s255.c
  607d0e9c1c3547b8e384fcc149ea0adc  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s256.c
! 6b96ba168db9d270ad498ea921ab2c53  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s257.c
  338620bfc661e6a5a7e9e1761bf55f3e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s258.c
  7a86fb91e2f6da576040de609ff2c4b6  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s261.c
! c6cbb46656d89a9c4f2c3689d713d92d  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s271.c
  5903d75da8531c131180982d7be371e4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2710.c
! db55ce5af1da0766ee525280cc8dafcd  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2711.c
! e4ca7fb84c2f80b48672fb556a95df18  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2712.c
! fcb04e9cbca635f4ef142c6621245943  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s272.c
! 87927431f2b137279dbfbe8a80faf7a8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s273.c
! 928b4a67cdbc5ad6e24ce6b909820093  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s274.c
  aff4ccd2e23e41d8895aca42006ac7b9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s275.c
! 569a0ba66859ccd5369c05389f3df081  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s276.c
  b4e1a61bab611e31beed78edb6d07e2f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s277.c
! 78d3078964f98ed8218a7083f6ed3d20  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s278.c
! f2feb5fc14947b3e4ec897d183397960  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s279.c
  edde27caeb90674dfc63f9c173c1b91f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s281.c
  96fbfc156c3b3288d2ff073c66fd45f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s291.c
  487436a657a10164bf9f61b4a31677bf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s292.c
  bb61c333ca489dc9c9ff444266758423  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s293.c
  190e37171bed3c92de9d86fa1e13fa24  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s311.c
  68fbc3db2225942315dd9388c277f3b1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3110.c
! c4ba7b02ba746cdf97742ae6e5697134  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3111.c
  95287d087840175189959333ae52a2e8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s31111.c
  07ba7e0bb209092900969c9940d17b36  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3112.c
  c317cb696a26bea6d51beb4b38e72094  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3113.c
*************** c317cb696a26bea6d51beb4b38e72094  gcc/te
*** 52214,52228 ****
  226f54e6f293495fd6c000a73ed8b7a3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s323.c
  61d0197203c46e31e39c8c4f8ad9e853  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3251.c
  5c71ac7653e5a2836d2465a9f13c6ede  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s331.c
! b44b732e0119ea523080710710440db6  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s332.c
  1fa698b706ad7a329bb8f12d8c9de007  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s341.c
  a574c6728b7b30ed7cb79cad1aca2a5b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s342.c
  e54027ff8457ca286ef1dc9996df732c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s343.c
  9e79b48d1a903193baad80a323499cf9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s351.c
  99e8f1fe9486403faae8402ba0ed0ca1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s352.c
! 303ba185f44756da9fc77bdcd0536887  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s353.c
  5c2ad6273861241745ea9d3770ad3665  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4112.c
! b01d2c04e1c86617cb4f789998804412  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4113.c
  24bad4f966afe882059b7dde1299d0d8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4114.c
  282680c9bf1f2bfeac371268b87266a8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4115.c
  687f1d54063b48a54964186cb0fb499a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4116.c
--- 55113,55127 ----
  226f54e6f293495fd6c000a73ed8b7a3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s323.c
  61d0197203c46e31e39c8c4f8ad9e853  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3251.c
  5c71ac7653e5a2836d2465a9f13c6ede  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s331.c
! bf0687fd782a94fee64bb5a6231b7710  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s332.c
  1fa698b706ad7a329bb8f12d8c9de007  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s341.c
  a574c6728b7b30ed7cb79cad1aca2a5b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s342.c
  e54027ff8457ca286ef1dc9996df732c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s343.c
  9e79b48d1a903193baad80a323499cf9  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s351.c
  99e8f1fe9486403faae8402ba0ed0ca1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s352.c
! caccf8723be9748336d20eaa39ac50cf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s353.c
  5c2ad6273861241745ea9d3770ad3665  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4112.c
! 76013a953a308d67d4d62b21f2c68f02  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4113.c
  24bad4f966afe882059b7dde1299d0d8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4114.c
  282680c9bf1f2bfeac371268b87266a8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4115.c
  687f1d54063b48a54964186cb0fb499a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s4116.c
*************** bd1844fcf4e4bb107cf8289e22c02701  gcc/te
*** 52233,52254 ****
  bca328bde6f3c66427970d2da2bb0f49  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s423.c
  0c66d42f590beb5fbb9407bf15ef49ff  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s424.c
  ba3a373eedf2c03477e20c9da74ec971  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s431.c
! bc21252a8c6f8db65075ed6f8cf1b007  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s441.c
  ad0f4047d7360ebac10c29b453fd5b29  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s442.c
! d0e8b52666c63dec883d596bae828531  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s443.c
  7c8bbd04cb24f6425ab99fd5c68470b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s451.c
  71c7e2710eb0d787abf80641134c8464  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s452.c
  0a53ab45e8069125854b0ad478690528  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s453.c
  8840c708a7f2798298113799bfaaea0b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s471.c
! a5e978c739ab3c4fcea558303df553a5  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s481.c
! 7af64fc80a6fc647167e1552335980c8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s482.c
! a2e242e90c2044fcb838325c3440c7c7  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s491.c
  69786ca5ac25ed37637f1c1fc9a0ea8f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-va.c
  e66f09a7a57dbc6fd0a0e6f0ae175ceb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vag.c
! df47fc897425d382a1cdad2f9a5ed8e2  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vas.c
  de3c285ab455b25dffc4584ad979fbcd  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vbor.c
! d1d22ecd3beb949e67fea5c9b52c325b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vdotr.c
! d7b648d74f7555ede1110c75c06fa56a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vif.c
  3385d8f3883293b1c32e42ac209ddc56  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vpv.c
  9c0e5e5c81d167fe2e20534e1308871c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vpvpv.c
  f02b315be9d149a11b9a642dddfc1360  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vpvts.c
--- 55132,55153 ----
  bca328bde6f3c66427970d2da2bb0f49  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s423.c
  0c66d42f590beb5fbb9407bf15ef49ff  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s424.c
  ba3a373eedf2c03477e20c9da74ec971  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s431.c
! c5d3b77318ea66cf3868def663a73e6b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s441.c
  ad0f4047d7360ebac10c29b453fd5b29  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s442.c
! da2e0ca1db6e6911aecfa27990b0f4e7  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s443.c
  7c8bbd04cb24f6425ab99fd5c68470b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s451.c
  71c7e2710eb0d787abf80641134c8464  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s452.c
  0a53ab45e8069125854b0ad478690528  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s453.c
  8840c708a7f2798298113799bfaaea0b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s471.c
! 7d9d5fc521d92219b5cd950f9bf40394  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s481.c
! 6d1198c692415eb73b7ee5001abac6ec  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s482.c
! ab963c718fe086a0fc72501588ceb52f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s491.c
  69786ca5ac25ed37637f1c1fc9a0ea8f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-va.c
  e66f09a7a57dbc6fd0a0e6f0ae175ceb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vag.c
! 9d48c82c15e8acf6580a3cb69cf45714  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vas.c
  de3c285ab455b25dffc4584ad979fbcd  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vbor.c
! 2631d3c431bbebd8bbcaafcf0cafa49a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vdotr.c
! 562096fd58fac3a901df03d445a59b77  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vif.c
  3385d8f3883293b1c32e42ac209ddc56  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vpv.c
  9c0e5e5c81d167fe2e20534e1308871c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vpvpv.c
  f02b315be9d149a11b9a642dddfc1360  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vpvts.c
*************** ba59522d2af9dbc0b642d30b265fdf9a  gcc/te
*** 52260,52535 ****
  6520c3dd9e657028a89c31328634d22a  gcc/testsuite/gcc.dg/vect/vec-scal-opt.c
  9b5d0a9d2e1a81f9454f0082b9f240b7  gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c
  e7af2caa929bde4629f98c1edd91b168  gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c
! 1ed1af552c3c860e2ff7ef3f3b465959  gcc/testsuite/gcc.dg/vect/vect-1-big-array.c
! 1e5351130c401b7a3aee501f65f82395  gcc/testsuite/gcc.dg/vect/vect-1.c
! a41c758a08dbbae4cdce175be25b9aa5  gcc/testsuite/gcc.dg/vect/vect-10-big-array.c
! d9d22ef4c80b68b2157aace863e5c8d9  gcc/testsuite/gcc.dg/vect/vect-10.c
! 943f718db2328380721922c51e55afa7  gcc/testsuite/gcc.dg/vect/vect-100.c
! ea3f47007476c0ffa56db011c3f499f7  gcc/testsuite/gcc.dg/vect/vect-103.c
! b3b389cba52a916cb099287ef0a98b13  gcc/testsuite/gcc.dg/vect/vect-104.c
! 74fac254331754dcf4736b2e8ae2b563  gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
! c10f06766fe6db4862006e60420eae40  gcc/testsuite/gcc.dg/vect/vect-105.c
! ae9489ec6ff59b5feb8a10fb4425ddd6  gcc/testsuite/gcc.dg/vect/vect-106.c
! 8b9ebb1a81bc88f87a3cc9dbc46ad4c6  gcc/testsuite/gcc.dg/vect/vect-107.c
! 34a4614643e01fba31b451da7cbf5baa  gcc/testsuite/gcc.dg/vect/vect-108.c
! 9ccee724f51eaf57a6458f4c7bfdfa4f  gcc/testsuite/gcc.dg/vect/vect-109.c
! 34614ac36b22b0274f5fc104ab8669f8  gcc/testsuite/gcc.dg/vect/vect-11.c
! 77d4ebd73bb6f6747b83b7344fcdcf15  gcc/testsuite/gcc.dg/vect/vect-110.c
! 6e22fe753f1e436104d6365e212c5f16  gcc/testsuite/gcc.dg/vect/vect-112-big-array.c
! dacc16276faf9fdb9dc43429e6f722d0  gcc/testsuite/gcc.dg/vect/vect-112.c
! 74a0517ce10c34a9fdcb266d78a198aa  gcc/testsuite/gcc.dg/vect/vect-113.c
! 3709e3c4aefc1324980e88dca726f086  gcc/testsuite/gcc.dg/vect/vect-114.c
! c7a685bac4232f2ebcaf76c58144db93  gcc/testsuite/gcc.dg/vect/vect-115.c
! 1d7d8b6f8c3da268534f0f32b016fa3c  gcc/testsuite/gcc.dg/vect/vect-116.c
! c859038e3e0bdddc4380066a12289b84  gcc/testsuite/gcc.dg/vect/vect-117.c
! 8ab31cf2e81bafcda73b86e3af091fde  gcc/testsuite/gcc.dg/vect/vect-118.c
! 3662e3807972d45dfd160860777a8e2d  gcc/testsuite/gcc.dg/vect/vect-119.c
! f51f91eeb2c496f91b4837b99347348f  gcc/testsuite/gcc.dg/vect/vect-11a.c
! aaf971ecc9e5fd72389ec8dbdde16d48  gcc/testsuite/gcc.dg/vect/vect-12.c
! 2fd40e81421e462ecfed722bc379918c  gcc/testsuite/gcc.dg/vect/vect-120.c
! 699b23f9b353197a7331dcdac8b4c33f  gcc/testsuite/gcc.dg/vect/vect-121.c
! 1410b3d8d79642eae233cc8d5f6ec268  gcc/testsuite/gcc.dg/vect/vect-122.c
! 867df548e75653baa8b50ab85c46ca0b  gcc/testsuite/gcc.dg/vect/vect-123.c
! 375335959cf30b9f11e216f5f2d2b5a2  gcc/testsuite/gcc.dg/vect/vect-124.c
  d1187d0e4af6272062f2c0272cefedc0  gcc/testsuite/gcc.dg/vect/vect-125.c
! b564a513884f5c946593c2e9b4748025  gcc/testsuite/gcc.dg/vect/vect-126.c
! af22d62a20b93aedb32ccd95506c0fce  gcc/testsuite/gcc.dg/vect/vect-13.c
! 31c6a95b94417fcd630d0155cd8f29b8  gcc/testsuite/gcc.dg/vect/vect-14.c
! cf8d7bfdacc0cc65623a59fd5ebe0676  gcc/testsuite/gcc.dg/vect/vect-15-big-array.c
! 204489420e172c0bc8944852750c3332  gcc/testsuite/gcc.dg/vect/vect-15.c
! 50c2ded9ed99308d6bea4dcfdf39a0fc  gcc/testsuite/gcc.dg/vect/vect-17.c
! 2c7df44fbd171beff27dc29ee80a1209  gcc/testsuite/gcc.dg/vect/vect-18.c
! 594f2de9b6a7390757af2adcf34f69f9  gcc/testsuite/gcc.dg/vect/vect-19.c
! 821f41bbe0d4d4bb10f6108a634cd6ee  gcc/testsuite/gcc.dg/vect/vect-2-big-array.c
! e419110ef7cced66fb761226126be306  gcc/testsuite/gcc.dg/vect/vect-2.c
! c10cc9fb2ae078eb4c4cd032787de254  gcc/testsuite/gcc.dg/vect/vect-20.c
! fbed228f06794e26f4a6dffa3477a3c4  gcc/testsuite/gcc.dg/vect/vect-21.c
! e252fb053e252cc891cc912974e89dd2  gcc/testsuite/gcc.dg/vect/vect-22.c
! 80fe7b18f869402f71ba3ccfca49519f  gcc/testsuite/gcc.dg/vect/vect-23.c
! 837c1c61af22868f4d9562542a15a832  gcc/testsuite/gcc.dg/vect/vect-24.c
! 8557996356675784bc40911b69ae1efa  gcc/testsuite/gcc.dg/vect/vect-25.c
! 0a3e29823f2e0b6c329bb49a6e4ecba5  gcc/testsuite/gcc.dg/vect/vect-26.c
! f6faf8c51ec1272b3642d9452c939a16  gcc/testsuite/gcc.dg/vect/vect-27.c
! 57535ec4710ca72928717a9e773884d3  gcc/testsuite/gcc.dg/vect/vect-28.c
! 7652acf3602c8e43d8e8342d95067a7f  gcc/testsuite/gcc.dg/vect/vect-29.c
! 7fccf61543af1de115801346c785bcf6  gcc/testsuite/gcc.dg/vect/vect-3.c
! a5ca9a897618c3c39151ce4482924773  gcc/testsuite/gcc.dg/vect/vect-30.c
! 0736635f0c4b5c9340c3784e881be447  gcc/testsuite/gcc.dg/vect/vect-31-big-array.c
! 37fe99d552512e38d5b653a113565719  gcc/testsuite/gcc.dg/vect/vect-31.c
! ba6079ed10f631cf6bd43e9fdbf649fe  gcc/testsuite/gcc.dg/vect/vect-32-big-array.c
! 58dfe699b4796e834446a61af1a4a482  gcc/testsuite/gcc.dg/vect/vect-32-chars.c
! e7972c5bdef0883a7567779b950bcb03  gcc/testsuite/gcc.dg/vect/vect-32.c
! aa854d154802da25b63adab581d1fd59  gcc/testsuite/gcc.dg/vect/vect-33-big-array.c
! ebad80bf0a1a6818c90300b5f1292418  gcc/testsuite/gcc.dg/vect/vect-33.c
! 47625e9675b3fa0e5b0690b38bb7726f  gcc/testsuite/gcc.dg/vect/vect-34-big-array.c
! f392d99bc7357a4d1265d46aace51636  gcc/testsuite/gcc.dg/vect/vect-34.c
! 23258496e0f95475d8420ffe38f9c8ac  gcc/testsuite/gcc.dg/vect/vect-35-big-array.c
! 0e97bb31fecb3c77298fd092a4ded6f5  gcc/testsuite/gcc.dg/vect/vect-35.c
! a287b48a98fe5cbaf4ac63080a6fa826  gcc/testsuite/gcc.dg/vect/vect-36-big-array.c
! d1bd152f7bb5c25d59cd6d46b0e236bf  gcc/testsuite/gcc.dg/vect/vect-36.c
! b94979e4bc03d519e5ae1e1aa5a5bc4e  gcc/testsuite/gcc.dg/vect/vect-38.c
! 9e2bd64220338871e8db419a34eb69f2  gcc/testsuite/gcc.dg/vect/vect-4.c
! b6b2d22a80721c25cf3c7d7610ccb74c  gcc/testsuite/gcc.dg/vect/vect-40.c
! 546b9a7c950403e26f48b6e16a5816be  gcc/testsuite/gcc.dg/vect/vect-42.c
! fa1c2eeda26ad59b936884b6a99d10b6  gcc/testsuite/gcc.dg/vect/vect-44.c
! 1833ae8e3c83aa2bc0b2fad5da1f3d22  gcc/testsuite/gcc.dg/vect/vect-46.c
! 20d87dd02d487f5b5b4f8a2dae70eb1b  gcc/testsuite/gcc.dg/vect/vect-48.c
! 562201b5385d204497769493436d85f8  gcc/testsuite/gcc.dg/vect/vect-5.c
! c2e08a0fcf0e783eefd0bce94db4155d  gcc/testsuite/gcc.dg/vect/vect-50.c
! b856a69959f78964e316fc9b63a38382  gcc/testsuite/gcc.dg/vect/vect-52.c
! 6dad6e3e7bb1277e2fb56b1e511b5dde  gcc/testsuite/gcc.dg/vect/vect-54.c
! 0dbb4578443ab450cfa3e76706226a16  gcc/testsuite/gcc.dg/vect/vect-56.c
! 283dcfabe6912883abdd1d5137c12256  gcc/testsuite/gcc.dg/vect/vect-58.c
! e63f8ce4a1307e89c8666773631c567a  gcc/testsuite/gcc.dg/vect/vect-6-big-array.c
! a4f17e0629954f6216dd15b12b696b52  gcc/testsuite/gcc.dg/vect/vect-6.c
! 7b1eb1759ca86470af3d25aa6372327c  gcc/testsuite/gcc.dg/vect/vect-60.c
! 37d01b8115ce028769644aa7196c7b75  gcc/testsuite/gcc.dg/vect/vect-62.c
! a23cc05fc9646dceff23fdb3e917f5fc  gcc/testsuite/gcc.dg/vect/vect-63.c
! a322eb2a68fb51c6abffabc72d92d382  gcc/testsuite/gcc.dg/vect/vect-64.c
! 5c007f57a2cbe9b79b28b030c798e768  gcc/testsuite/gcc.dg/vect/vect-65.c
! 7a221b0abfd844ba209bf8ce7d4fe47b  gcc/testsuite/gcc.dg/vect/vect-66.c
! 5b143303f8c2f12dfc807a523ea92352  gcc/testsuite/gcc.dg/vect/vect-67.c
! 43c9235a290a9584c5958d932d747511  gcc/testsuite/gcc.dg/vect/vect-68.c
! c9ea752b59bdb9cf7bb7f05701e8036c  gcc/testsuite/gcc.dg/vect/vect-7.c
! 127df3292abfade459309c6e339b0165  gcc/testsuite/gcc.dg/vect/vect-70.c
! 1ff7d4730e4b5c4438b63a7ceced9dda  gcc/testsuite/gcc.dg/vect/vect-71.c
! a18e642146bd9e8a9876898e7f32379f  gcc/testsuite/gcc.dg/vect/vect-72.c
! ffeee2cb662e82d6ec6ffb22d843b3cd  gcc/testsuite/gcc.dg/vect/vect-73-big-array.c
! 7be5c2e77f520af92312652e0b303927  gcc/testsuite/gcc.dg/vect/vect-73.c
! 113057ada77406098074d1d89604bb78  gcc/testsuite/gcc.dg/vect/vect-74-big-array.c
! 89844f470351169b4b85b60ab2ebfef4  gcc/testsuite/gcc.dg/vect/vect-74.c
! 108147e83f0092ae3ecc49c5b7d38e0d  gcc/testsuite/gcc.dg/vect/vect-75-big-array.c
! 45befb9b4d9698262ba7f1f06844cc5d  gcc/testsuite/gcc.dg/vect/vect-75.c
! 9b7bbf1be9eda8c7bc74b321265346e3  gcc/testsuite/gcc.dg/vect/vect-76-big-array.c
! 053e801fd18dca68c662073d95e5b955  gcc/testsuite/gcc.dg/vect/vect-76.c
! bc6eca969f3ce80306426d998aa7eb14  gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c
! 35353bf439682b95a401460334963c8f  gcc/testsuite/gcc.dg/vect/vect-77-global.c
! 41aa4cdcc156b9232c87b820eafa0b5d  gcc/testsuite/gcc.dg/vect/vect-77.c
! 43569ad2438022905584cdcb2c4c72ae  gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c
! d5b076220b5fc038d26dfa5a69db2f52  gcc/testsuite/gcc.dg/vect/vect-78-global.c
! 337b5bc90b9635ec8f68cac93ebacf9f  gcc/testsuite/gcc.dg/vect/vect-78.c
! be12baa6bca1176e207ce342161a76af  gcc/testsuite/gcc.dg/vect/vect-8.c
! f0f799c0412a8684fdddf0b43f449b5c  gcc/testsuite/gcc.dg/vect/vect-80-big-array.c
! 2aa38602a8d7243334d2b36d8415d09d  gcc/testsuite/gcc.dg/vect/vect-80.c
! 47e0735b9a02c276ff47276b476f117e  gcc/testsuite/gcc.dg/vect/vect-82.c
! 381a59de0e17f27afa424064ea344d2f  gcc/testsuite/gcc.dg/vect/vect-82_64.c
! 4c8c3c1a0c5ccf7a84e0dd29b924e6f8  gcc/testsuite/gcc.dg/vect/vect-83.c
! 9ebe5c9cdab4747e1f36bb938d1e3a3b  gcc/testsuite/gcc.dg/vect/vect-83_64.c
! c49447767d8666f5bad0ba66bada3dbb  gcc/testsuite/gcc.dg/vect/vect-85-big-array.c
! ae00234ebf24afba7f4fa942d974637d  gcc/testsuite/gcc.dg/vect/vect-85.c
! 503087f2fc7036e1963787ec92d877e5  gcc/testsuite/gcc.dg/vect/vect-86.c
! bc4dc201b1ab4aca3e6f8ffdb91ea397  gcc/testsuite/gcc.dg/vect/vect-87.c
! f52a639e72d8b3585d3fbf67ead95e6c  gcc/testsuite/gcc.dg/vect/vect-88.c
! 3ffd13d3a8fcb05a4e3f6730e4be2053  gcc/testsuite/gcc.dg/vect/vect-89-big-array.c
! bbed9708803e06f1e29c75cbabe1a8f2  gcc/testsuite/gcc.dg/vect/vect-89.c
! 84ff8a851f2889e15c8bc3141c319a34  gcc/testsuite/gcc.dg/vect/vect-9.c
! e4d92e200d265bb61bacb0900bca5f8d  gcc/testsuite/gcc.dg/vect/vect-91.c
! 80da3797bd4f5b3eecfb5635a2a105cb  gcc/testsuite/gcc.dg/vect/vect-92.c
! 47bd58197d325d0fb1dfc95fef1f5b8d  gcc/testsuite/gcc.dg/vect/vect-93.c
! b5beda8f210ec1cc64a12ed0b78ca087  gcc/testsuite/gcc.dg/vect/vect-95.c
! 468852c682a06431bdc297db37b13d0d  gcc/testsuite/gcc.dg/vect/vect-96.c
! 84f1727ec3693172bd2a5b7a0cf16fb5  gcc/testsuite/gcc.dg/vect/vect-97-big-array.c
! 786a2edd3da33d668bfef933d397d80f  gcc/testsuite/gcc.dg/vect/vect-97.c
! 08650414d504a11b353ff38997eee513  gcc/testsuite/gcc.dg/vect/vect-98-big-array.c
! 20ae4026daeb20726045d267fc8726ba  gcc/testsuite/gcc.dg/vect/vect-98.c
! a5dd771ac25ad721110e4c63655deee3  gcc/testsuite/gcc.dg/vect/vect-99.c
  a04da26df4dc686ef67148f9bd250c35  gcc/testsuite/gcc.dg/vect/vect-aggressive-1.c
  31386eb9c366c1ab0762533bd8c5b0ec  gcc/testsuite/gcc.dg/vect/vect-alias-check-1.c
! 64981a5eedf615f27b268cf5dd6df1c9  gcc/testsuite/gcc.dg/vect/vect-alias-check-10.c
! 6e014a3b0eaceb86c06c949c02c5f695  gcc/testsuite/gcc.dg/vect/vect-alias-check-11.c
! 0f7495a6a69b3489c80f2e01ea3396b9  gcc/testsuite/gcc.dg/vect/vect-alias-check-12.c
  7a4667fae9796377abfc4d7edc29bdbc  gcc/testsuite/gcc.dg/vect/vect-alias-check-13.c
! 0fcd6b3517ccd5579e31185d4c0f0ef6  gcc/testsuite/gcc.dg/vect/vect-alias-check-14.c
! 8d85780ad9c2797caba84d95e237df59  gcc/testsuite/gcc.dg/vect/vect-alias-check-15.c
! f240b9b0ec219b5b76f57c02ed2d843b  gcc/testsuite/gcc.dg/vect/vect-alias-check-16.c
  7bd22ac20c813f2f2bfac55ea0865100  gcc/testsuite/gcc.dg/vect/vect-alias-check-17.c
! ab187a182550ce8f0573caa529604ca1  gcc/testsuite/gcc.dg/vect/vect-alias-check-18.c
! 7f8a9c6141830f20f5ec7bf941acb027  gcc/testsuite/gcc.dg/vect/vect-alias-check-19.c
  2a3e312bd7e5ab5df45fd26be16729e2  gcc/testsuite/gcc.dg/vect/vect-alias-check-2.c
! 686b6b8b01ef5c668a42ed2bb59ba5d8  gcc/testsuite/gcc.dg/vect/vect-alias-check-20.c
  70f35d6235f257d8a748a4c306ed92cd  gcc/testsuite/gcc.dg/vect/vect-alias-check-3.c
  e91e50f7ac96bf4c7f84c3910d7a8ffd  gcc/testsuite/gcc.dg/vect/vect-alias-check-4.c
  3c03b4406103dc9957e802641a4d4b36  gcc/testsuite/gcc.dg/vect/vect-alias-check-5.c
  ff089a27e850ec5cc9c4418ac3d53928  gcc/testsuite/gcc.dg/vect/vect-alias-check-6.c
  849eee1578d80f374003ab06c8c9881d  gcc/testsuite/gcc.dg/vect/vect-alias-check-7.c
! 7abc191c2e73886ecfc3cbc6628814c5  gcc/testsuite/gcc.dg/vect/vect-alias-check-8.c
! b6ffd38c8b88073c06fd9acef129fffb  gcc/testsuite/gcc.dg/vect/vect-alias-check-9.c
  164f1d465e8f0c3cf4f0595cdd0b4142  gcc/testsuite/gcc.dg/vect/vect-alias-check.c
! f0b56b894481ffe1fe102a037e482707  gcc/testsuite/gcc.dg/vect/vect-align-1.c
! 75ba50d97de7fbaec0de05868c19be02  gcc/testsuite/gcc.dg/vect/vect-align-2.c
  374e4045853c30f4e4156da8f6908c21  gcc/testsuite/gcc.dg/vect/vect-align-3.c
  2f35186c388c67e16cd4026e435ba093  gcc/testsuite/gcc.dg/vect/vect-align-4.c
! 6019f522296a560e835582b3eae77b17  gcc/testsuite/gcc.dg/vect/vect-all-big-array.c
! c212d9634747288642316f5a4ff71688  gcc/testsuite/gcc.dg/vect/vect-all.c
! ee055d377505db9eda044f402bb212b4  gcc/testsuite/gcc.dg/vect/vect-avg-1.c
  2ac26c50bc7f1e1b6af581b61a3ec5dd  gcc/testsuite/gcc.dg/vect/vect-avg-10.c
! d93304869becf94ab812870a5c0ede05  gcc/testsuite/gcc.dg/vect/vect-avg-11.c
! 7d74c799d30cec1a345ccafd4d517b35  gcc/testsuite/gcc.dg/vect/vect-avg-12.c
! 43dcafb9e9344c50bd9df1bc1292bcb2  gcc/testsuite/gcc.dg/vect/vect-avg-13.c
! 5a8a4bb11ad27c080c4e2fcf16d9cd5c  gcc/testsuite/gcc.dg/vect/vect-avg-14.c
! be9cac92ee598ade7962bf9af18bfaca  gcc/testsuite/gcc.dg/vect/vect-avg-15.c
! 8673f6d6561d8de8807637b692f57471  gcc/testsuite/gcc.dg/vect/vect-avg-16.c
! 7fc2acd8b7cfec6d5a9715b5af7c27fb  gcc/testsuite/gcc.dg/vect/vect-avg-2.c
! 21a7c3ddd9fb3f7ebbbbc5c0d761fb58  gcc/testsuite/gcc.dg/vect/vect-avg-3.c
! b7ee8a145dd31645011dffa634300f40  gcc/testsuite/gcc.dg/vect/vect-avg-4.c
! 2852a97853d94d87d5c97a0578b8826f  gcc/testsuite/gcc.dg/vect/vect-avg-5.c
! d775142a6a932653608822369c64b74c  gcc/testsuite/gcc.dg/vect/vect-avg-6.c
! c98cb887213a527e1e60e0259f21719c  gcc/testsuite/gcc.dg/vect/vect-avg-7.c
! ba86350cac418159fe43da834182caac  gcc/testsuite/gcc.dg/vect/vect-avg-8.c
  7c4ca4d68d7e84bceb06dd4dd4d2f0fd  gcc/testsuite/gcc.dg/vect/vect-avg-9.c
! c63fe452f6bfd47afcefc320dd3c0599  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-10.c
! fb803f7287d6ad3338c2b8e8bc4c4546  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-11.c
! eacea0f3e9efe0205a0c275fd0c4605f  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-12.c
! d391b35e2c4e70375306a57ece5a354f  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-2.c
! 5a62e288eee9c160b93d71bf596f62e1  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-23.c
! d391b35e2c4e70375306a57ece5a354f  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-3.c
! e52a8fc930a06c6459ec662b4524dea9  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-4.c
! acd17fa620a3c8c7714b13203c43d954  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-5.c
! eee8284de2c89fe1e0116b94f0f75118  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-6.c
! 2f55dc2b07040c1444953a4f6b6fe16a  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-8.c
! d6eaa948601aaabef30d80face368007  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-9.c
! fc742340dcb637deb759feca71ed75a0  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-1.c
! 42250d2a0ebc5276a2112e13e7b78288  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-2.c
! e371674e0f6ebfad6750cc1aaa6f34cd  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-3.c
! 3373118a9355e443623d9fd499a73c18  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-4.c
! 4ac6e34b4c32b7f15b57005d80172e76  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-5.c
! 38c0147ce2e58b998fea6377c8af11ef  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-6.c
! b2b51a8172e905eb6018b2775c5b3898  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-7.c
! 7d40787c298c4bc379dddba79872ccbe  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-1.c
! b59a33769ea67abadddd0bdd9c7272b1  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-2.c
! 14fec4c0a17b1bfd24c5a899b909330d  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-3.c
! 5f6d3f4b4570e6945733546a9cf30f7f  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-4.c
! f56d013138b7a700ae8b85fcbe983f1e  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-5.c
  154c42706e014b10ba6740d5b2ec9fb1  gcc/testsuite/gcc.dg/vect/vect-bool-1.c
  88ece9587087a3d3d1b4461a490bb1e1  gcc/testsuite/gcc.dg/vect/vect-bool-cmp-2.c
! 2c73184f24942ac0b976ac2249081168  gcc/testsuite/gcc.dg/vect/vect-bool-cmp.c
! e3c5cf4065fd5d1d91d202884b11f0f3  gcc/testsuite/gcc.dg/vect/vect-bswap16.c
  9e66be7556b2d11cacfd42f03990f256  gcc/testsuite/gcc.dg/vect/vect-bswap16a.c
! 3acbbdac3cc638db4960646b1840991e  gcc/testsuite/gcc.dg/vect/vect-bswap32.c
! b2d5fdfbc58c5118bd998f7c68a8c577  gcc/testsuite/gcc.dg/vect/vect-bswap64.c
! 3345e4d48d4dae1815be747d1f004f30  gcc/testsuite/gcc.dg/vect/vect-complex-1.c
! b81ef7010ac5d9d83cfe4611715502a2  gcc/testsuite/gcc.dg/vect/vect-complex-2.c
! e4e0ae2a20f798eba85140061b6a6ad7  gcc/testsuite/gcc.dg/vect/vect-complex-4.c
  eafef82eb0f50e37d2fec2ed962bb498  gcc/testsuite/gcc.dg/vect/vect-complex-5.c
! 9c48c2e7ee6b6e1e9b1e2b7901602fbe  gcc/testsuite/gcc.dg/vect/vect-cond-1.c
! a99df602f63d4a5feb6218eea711914c  gcc/testsuite/gcc.dg/vect/vect-cond-10.c
! f8505a9522f91f3c6e75d412bfaf15c4  gcc/testsuite/gcc.dg/vect/vect-cond-11.c
  7c19802622ded8e0ba7ba5d19673294d  gcc/testsuite/gcc.dg/vect/vect-cond-12.c
! 23f2c859446e7317c1f55b4532293e1f  gcc/testsuite/gcc.dg/vect/vect-cond-13.c
  712c13b79dff5bb5217da812c8ede340  gcc/testsuite/gcc.dg/vect/vect-cond-2.c
! ff9fb5835d0218f0d8fc8d2eebee9cd1  gcc/testsuite/gcc.dg/vect/vect-cond-3.c
! cb3604d059d377d3776d6c2581c5c08b  gcc/testsuite/gcc.dg/vect/vect-cond-4.c
! 69ea81ef62184e89c4415e7b3ab5281a  gcc/testsuite/gcc.dg/vect/vect-cond-5.c
! 03c006f9ae1c0745f5ce6578df9d0058  gcc/testsuite/gcc.dg/vect/vect-cond-6.c
! c12c84bf010d50ae110ef5e6dfb49a43  gcc/testsuite/gcc.dg/vect/vect-cond-7.c
! d91dc14edf1b9b81835cfbf0fab8c331  gcc/testsuite/gcc.dg/vect/vect-cond-8.c
! a502d47dd93b6d56727a01608c24afcf  gcc/testsuite/gcc.dg/vect/vect-cond-9.c
! d2b1099871ec91564470b20c5e283237  gcc/testsuite/gcc.dg/vect/vect-cond-arith-1.c
! a5098f71d5fb94f99f81933d3548b9b2  gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c
! ba24322066c35e10260838062bc30a18  gcc/testsuite/gcc.dg/vect/vect-cond-arith-3.c
! 5bd10b83ee02de7700af337790c3735d  gcc/testsuite/gcc.dg/vect/vect-cond-arith-4.c
! ce319d382295ad3dba238e1c218f5d1f  gcc/testsuite/gcc.dg/vect/vect-cond-arith-5.c
! f5de5f3ff41c7d7401e5f38a86408ac7  gcc/testsuite/gcc.dg/vect/vect-cond-arith-6.c
! b4188256cd6221fb7da940f6df96e212  gcc/testsuite/gcc.dg/vect/vect-cond-arith-7.c
  5e22f47ff8de514c07d900867d766dda  gcc/testsuite/gcc.dg/vect/vect-cond-arith-8.c
  0b977702a40013afcdb78bddf04bc009  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-1.c
  81f1d27e9fbd5b434349fe98c68f7243  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-2.c
  816615d056597f69ca99524b8d4ea447  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c
! 536ace2e50ab35e8e72d705f7f83e894  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c
  354271b6665dd6a9f399e33f82de844b  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-5.c
  32eea07216ed1bd222c4bbe9811ae8ea  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-6.c
! 027686170ba85c903a9f643110fb3e3c  gcc/testsuite/gcc.dg/vect/vect-cost-model-1.c
  ef8210af227234a14b841ff219badabd  gcc/testsuite/gcc.dg/vect/vect-cost-model-2.c
! 51ec3366cd8da68d9bea193898863ea9  gcc/testsuite/gcc.dg/vect/vect-cost-model-3.c
  f144da89da4331752490c122d7327ead  gcc/testsuite/gcc.dg/vect/vect-cost-model-4.c
! 3804fc704836b9c53f86b72eefdfe0c2  gcc/testsuite/gcc.dg/vect/vect-cost-model-5.c
  46d80b9e652277c492accd6a5c0fbc8e  gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c
! c6eb69337f445f03241c930aa5ae855c  gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
! da6c54a57c412277438b8a28fa335e40  gcc/testsuite/gcc.dg/vect/vect-cselim-2.c
  dce2415ccc21ee8df7ffd1b533a4cd37  gcc/testsuite/gcc.dg/vect/vect-ctor-1.c
  6a93583f599051f181cc85fe92a7146a  gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  93cbbf2fc0227c3002a8b9a73567c9d3  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-1.c
  7ed32f556e2f90b2ce76f1c86a0d92da  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-2.c
  5a75a78907385e61f827b75b524ed7b1  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-3.c
! b9a4f7a51fc0260cbc49c60989ec57e1  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-4.c
! b9eb1109a68d122cb02640c72d29f5fa  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-5.c
! c7abd4c8107a04a3226169b5e991502f  gcc/testsuite/gcc.dg/vect/vect-div-bitmask.h
! cc5c83e334c2dda13f9040f4d00fa2ac  gcc/testsuite/gcc.dg/vect/vect-double-reduc-1.c
! 1d63e3caff982316641c6691c217430c  gcc/testsuite/gcc.dg/vect/vect-double-reduc-2.c
! 23a5ea26364ec425dc1dee5d59d6625b  gcc/testsuite/gcc.dg/vect/vect-double-reduc-3.c
! 1fa54155a9c77a8b7257c238559985ca  gcc/testsuite/gcc.dg/vect/vect-double-reduc-4.c
! f80eb06ce6428fede7a0180460006e8b  gcc/testsuite/gcc.dg/vect/vect-double-reduc-5.c
! ffe5781d87a8ab896ccae4df49ccc0e4  gcc/testsuite/gcc.dg/vect/vect-double-reduc-6-big-array.c
! ecc6e535f52f16dbcde06462b089ec97  gcc/testsuite/gcc.dg/vect/vect-double-reduc-6.c
! 325db9bd39399b062ac1e02d48e286f3  gcc/testsuite/gcc.dg/vect/vect-double-reduc-7.c
  5255db3025b7dc2620f6c83a2979c5ba  gcc/testsuite/gcc.dg/vect/vect-dv-1.c
! f19a7bd823d81009b19c7d93f5087b24  gcc/testsuite/gcc.dg/vect/vect-epilogues-2.c
! b0b659d3d34d1c801baa65099651a01a  gcc/testsuite/gcc.dg/vect/vect-epilogues.c
! 5a96e68b10c3c631b0811cfad4eb5962  gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c
! 12d2eac03f0327fc0c443f9ee6e88e2b  gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c
! cf4a4d6e6cc4b23522c19982266ca248  gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-1.c
! 0ad5246c517109cae0c7f2b2f7401f34  gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-2.c
! aa46a01c430ca6bcb60fb6bc2edfbb1d  gcc/testsuite/gcc.dg/vect/vect-fma-1.c
  b10686cc9cc745d9a4e579ee285eae2d  gcc/testsuite/gcc.dg/vect/vect-fma-2.c
  f26bda59075ce8ddcb0291dc86a118b3  gcc/testsuite/gcc.dg/vect/vect-fma-3.c
  609ec8572941506ac02bdead3631cf1a  gcc/testsuite/gcc.dg/vect/vect-fmax-1.c
--- 55159,55575 ----
  6520c3dd9e657028a89c31328634d22a  gcc/testsuite/gcc.dg/vect/vec-scal-opt.c
  9b5d0a9d2e1a81f9454f0082b9f240b7  gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c
  e7af2caa929bde4629f98c1edd91b168  gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c
! 03fe06df10b299e2d376f21ab86f344f  gcc/testsuite/gcc.dg/vect/vect-1-big-array.c
! 913dbf0c258c7c344cd97cc8aea9deeb  gcc/testsuite/gcc.dg/vect/vect-1.c
! 05b07deb7bdb2c5192e4d8862461bc08  gcc/testsuite/gcc.dg/vect/vect-10-big-array.c
! aca34f88c0a4f1aa591e8ef4740aeb4f  gcc/testsuite/gcc.dg/vect/vect-10.c
! f5f0b6b4230b22ceb5401a1e94980c94  gcc/testsuite/gcc.dg/vect/vect-100.c
! 79e64883f6d93078dd0505e884592f90  gcc/testsuite/gcc.dg/vect/vect-103.c
! 79ad375e0b7f85ff757883a28c335836  gcc/testsuite/gcc.dg/vect/vect-104.c
! f20728c01bde8cdddc275654c9a4581c  gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
! 802f3ecb6987126c579bf634fee3d9a1  gcc/testsuite/gcc.dg/vect/vect-105.c
! 1777b79b9a9aaf6d71cece6de510b242  gcc/testsuite/gcc.dg/vect/vect-106.c
! 9f8ae77139c291aabfd2946e70a60010  gcc/testsuite/gcc.dg/vect/vect-107.c
! e813e63c9825a3377b02a74e8f241dd3  gcc/testsuite/gcc.dg/vect/vect-108.c
! 43a8b08c21b4c30238fa6b3584f6413a  gcc/testsuite/gcc.dg/vect/vect-109.c
! cecf449db3f22da39ab90eeff38bebab  gcc/testsuite/gcc.dg/vect/vect-11.c
! 5c83586feeb0aef6cc19d7b1c180109d  gcc/testsuite/gcc.dg/vect/vect-110.c
! 9f6f5ba2cca56fa1d63b4419baf2e827  gcc/testsuite/gcc.dg/vect/vect-112-big-array.c
! be2e215b655b0a093c94c71e21c70495  gcc/testsuite/gcc.dg/vect/vect-112.c
! af93831b3e1a88e0486b5577563b435c  gcc/testsuite/gcc.dg/vect/vect-113.c
! cd0889d7048bc57dbe4a0d3571959698  gcc/testsuite/gcc.dg/vect/vect-114.c
! c8bed27bab997bfae3b11ab9f2864174  gcc/testsuite/gcc.dg/vect/vect-115.c
! 70c967840f38eca7166b262e8cc6a826  gcc/testsuite/gcc.dg/vect/vect-116.c
! 07d2e1da53a705905f30b1763d9e65cc  gcc/testsuite/gcc.dg/vect/vect-117.c
! 320b4b0ada3aaa80c6c57bf2d938a2e3  gcc/testsuite/gcc.dg/vect/vect-118.c
! e86e5429216f0575dccdbd37b55c1d2f  gcc/testsuite/gcc.dg/vect/vect-119.c
! b88f0d8217846f39fb7138984d5ddf24  gcc/testsuite/gcc.dg/vect/vect-11a.c
! e84f9b903393cfff2edd99b358cb865a  gcc/testsuite/gcc.dg/vect/vect-12.c
! 95f25cab76044b57a520d91c3ba37cff  gcc/testsuite/gcc.dg/vect/vect-120.c
! 266369f9048f1fb1639742a63dff3a04  gcc/testsuite/gcc.dg/vect/vect-121.c
! 431235f3577c15265e729e9e747c2bf1  gcc/testsuite/gcc.dg/vect/vect-122.c
! eb957e8021e48e5316de303f90acf93d  gcc/testsuite/gcc.dg/vect/vect-123.c
! 17e1fd733b776ac37fe82aa4e0e672c7  gcc/testsuite/gcc.dg/vect/vect-124.c
  d1187d0e4af6272062f2c0272cefedc0  gcc/testsuite/gcc.dg/vect/vect-125.c
! 2f1d70fac40824a935446a6fbe98a4b9  gcc/testsuite/gcc.dg/vect/vect-126.c
! d6bd417d3eca5baa91e6702748a3c1cc  gcc/testsuite/gcc.dg/vect/vect-13.c
! 2f4ebdd8f30675c3e85c475850edbf37  gcc/testsuite/gcc.dg/vect/vect-14.c
! 1a0be8fa1ed53c514993f7dcb4962ac8  gcc/testsuite/gcc.dg/vect/vect-15-big-array.c
! e7a9708f2da247a56a8265cb05831fa2  gcc/testsuite/gcc.dg/vect/vect-15.c
! eeac9524a8eee0e7b293e783ebc8d184  gcc/testsuite/gcc.dg/vect/vect-17.c
! 65ca0adcee53b3feb1b8191896426608  gcc/testsuite/gcc.dg/vect/vect-18.c
! b6c9d9b24b2f8a31182c01db9c724299  gcc/testsuite/gcc.dg/vect/vect-19.c
! c442c99999f266543d92d0e687e61899  gcc/testsuite/gcc.dg/vect/vect-2-big-array.c
! 6e0ed4ff7c32842e700db2cd44acd996  gcc/testsuite/gcc.dg/vect/vect-2.c
! 45a94703c1879135b29cc93fe27b7bb6  gcc/testsuite/gcc.dg/vect/vect-20.c
! 874c9792fb2a32cee745c4a47cc7afef  gcc/testsuite/gcc.dg/vect/vect-21.c
! c73de50edd786fec922f23d07f7367f8  gcc/testsuite/gcc.dg/vect/vect-22.c
! 9b6b5896e525e077ae89f433bb5c8bd1  gcc/testsuite/gcc.dg/vect/vect-23.c
! 41e4d4bb8d294779a98200e11bea50cf  gcc/testsuite/gcc.dg/vect/vect-24.c
! e057babab57f68329de674061425ee58  gcc/testsuite/gcc.dg/vect/vect-25.c
! 59f78c915aeb0dab1a7dd76afc97b1f7  gcc/testsuite/gcc.dg/vect/vect-26.c
! d232fa03880fae85ae6b34ad0fd93244  gcc/testsuite/gcc.dg/vect/vect-27.c
! d676d1bcc29919505837051de3330189  gcc/testsuite/gcc.dg/vect/vect-28.c
! 5500e2aac2c700a9c409e5897bb8b633  gcc/testsuite/gcc.dg/vect/vect-29.c
! 73147472c7fd3ae193f170a1f3c1975b  gcc/testsuite/gcc.dg/vect/vect-3.c
! c3f0c2c3cfca0d1ae52ca0caa9cac89f  gcc/testsuite/gcc.dg/vect/vect-30.c
! 5df6c688c701e22e8876083a641035e2  gcc/testsuite/gcc.dg/vect/vect-31-big-array.c
! b92ed30ec3668083a13eefaf6f28eb9e  gcc/testsuite/gcc.dg/vect/vect-31.c
! 45f93cb07cfe2c8e76c45dac8f223bba  gcc/testsuite/gcc.dg/vect/vect-32-big-array.c
! dd17dd9c3f3e156072a586a029a1f9f2  gcc/testsuite/gcc.dg/vect/vect-32-chars.c
! d4b75b9fd921b5a1c2c8a1cf529d7d4c  gcc/testsuite/gcc.dg/vect/vect-32.c
! 8b1a95827744666316e232d6312ee5d7  gcc/testsuite/gcc.dg/vect/vect-33-big-array.c
! 2d4fdc5d20cbd5137e014cbda617a835  gcc/testsuite/gcc.dg/vect/vect-33.c
! b6ad233e083b102134708d8c8d78ab18  gcc/testsuite/gcc.dg/vect/vect-34-big-array.c
! 9574fb944c0503e1bc6a8ed638849712  gcc/testsuite/gcc.dg/vect/vect-34.c
! 1c71c95f74fba5c521851b445f1a5cfc  gcc/testsuite/gcc.dg/vect/vect-35-big-array.c
! 7e0bb1d8d386e95a4951f09a16f912a1  gcc/testsuite/gcc.dg/vect/vect-35.c
! 49395f6db08ae7b52482bc59d6f035f9  gcc/testsuite/gcc.dg/vect/vect-36-big-array.c
! 04df7d02a70d6354dbf877b2ce0a3236  gcc/testsuite/gcc.dg/vect/vect-36.c
! c4e7e4921e76923ec5b02bfdf5016d50  gcc/testsuite/gcc.dg/vect/vect-38.c
! e700542bdb2c9068788a1e7c391f8812  gcc/testsuite/gcc.dg/vect/vect-4.c
! d7a9bc99cf15db04345e48b91b5d35ae  gcc/testsuite/gcc.dg/vect/vect-40.c
! 081e181ebac1e375f616fdb1a9407dba  gcc/testsuite/gcc.dg/vect/vect-42.c
! efe0abd412e513ec41114a6ebcdde555  gcc/testsuite/gcc.dg/vect/vect-44.c
! 8741641bef70caacee35e5a05945fd65  gcc/testsuite/gcc.dg/vect/vect-46.c
! b40943f54fba8a1607d1c41bb3fa0739  gcc/testsuite/gcc.dg/vect/vect-48.c
! e89fd9dfafec9e836737c051cd28f75f  gcc/testsuite/gcc.dg/vect/vect-5.c
! 66b40c54a10ddf28125bbb1e9af64312  gcc/testsuite/gcc.dg/vect/vect-50.c
! fb4195285fcc10dee35b421c05ad1bf9  gcc/testsuite/gcc.dg/vect/vect-52.c
! 07f1cabdd2502e74def97f1ff1109890  gcc/testsuite/gcc.dg/vect/vect-54.c
! b297e1eef8d3f33bb018116a8f2a2263  gcc/testsuite/gcc.dg/vect/vect-56.c
! f65968c4590d2ea9c3d8d117522589c6  gcc/testsuite/gcc.dg/vect/vect-58.c
! d50a4738e39182508005af1ccf8ba5cb  gcc/testsuite/gcc.dg/vect/vect-6-big-array.c
! 4c6bb62df7ed8944f0a0801fd6251129  gcc/testsuite/gcc.dg/vect/vect-6.c
! f73d709f80bc387905c97b444edc6979  gcc/testsuite/gcc.dg/vect/vect-60.c
! aaedafe0b0e68dadd4124aac7abd36d2  gcc/testsuite/gcc.dg/vect/vect-62.c
! 0781aceffc6773a582a259f5c62d803e  gcc/testsuite/gcc.dg/vect/vect-63.c
! b626848f1394e0afbff312b24ad61e74  gcc/testsuite/gcc.dg/vect/vect-64.c
! 484ec8931dbbec19edb6a2682bd0f36b  gcc/testsuite/gcc.dg/vect/vect-65.c
! 16cea799963bb65a218c0d231622a8b2  gcc/testsuite/gcc.dg/vect/vect-66.c
! f525f408cc53838fb0ce7152f99e3967  gcc/testsuite/gcc.dg/vect/vect-67.c
! 789540c67f5c83928236c471f23897f5  gcc/testsuite/gcc.dg/vect/vect-68.c
! 73bf7fdba8047add01fa876a80073ecd  gcc/testsuite/gcc.dg/vect/vect-7.c
! e775c704825e6f8ddf67091fe0b9138b  gcc/testsuite/gcc.dg/vect/vect-70.c
! 43675b1bdbd3bcf7877c0f912d01d7e1  gcc/testsuite/gcc.dg/vect/vect-71.c
! d5f5323f5bacf3c38fc4ff6a0214501a  gcc/testsuite/gcc.dg/vect/vect-72.c
! 6d81900a7f9804f00d30a95e12bc5e15  gcc/testsuite/gcc.dg/vect/vect-73-big-array.c
! 7d47b4d36e26c7006e980dbec040a231  gcc/testsuite/gcc.dg/vect/vect-73.c
! fcf93e1d35a76271a054c1168c631e66  gcc/testsuite/gcc.dg/vect/vect-74-big-array.c
! bd6d88c201f4b501b8947eed4b80f4df  gcc/testsuite/gcc.dg/vect/vect-74.c
! ecceef8a6a5070a8cb2450410fde4ec6  gcc/testsuite/gcc.dg/vect/vect-75-big-array.c
! 1d7a1fe8f2bf093265b222d26937072c  gcc/testsuite/gcc.dg/vect/vect-75.c
! 2191dd32a5c1c30c1ad8ada52adf7936  gcc/testsuite/gcc.dg/vect/vect-76-big-array.c
! f9904c8b08691f3650f5de419755d772  gcc/testsuite/gcc.dg/vect/vect-76.c
! f9e5e48a1cfc90f71c4c3260eb8e9f19  gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c
! b7eec42af9dbe5cd94b69885bebed427  gcc/testsuite/gcc.dg/vect/vect-77-global.c
! 8a138f299c74ff55e90b72ab1f8f7a8c  gcc/testsuite/gcc.dg/vect/vect-77.c
! 705dec208f18c6f6e7bc9fcc871d80d0  gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c
! e762b5bfe4e18e042aa559a325ae9be3  gcc/testsuite/gcc.dg/vect/vect-78-global.c
! c258045f6256ba717c39e0eb0e693c7d  gcc/testsuite/gcc.dg/vect/vect-78.c
! db1a7c3b3032004dd8b70df406344e08  gcc/testsuite/gcc.dg/vect/vect-8.c
! 651e64d4e4fcc593b4dce8f3362d9a37  gcc/testsuite/gcc.dg/vect/vect-80-big-array.c
! 3afbd7e419d2ca1e9fd54a3a19e9ee42  gcc/testsuite/gcc.dg/vect/vect-80.c
! 8279bd3b2e82fdbcbe0fd8ace21ada53  gcc/testsuite/gcc.dg/vect/vect-82.c
! a0adf125c18e8105a6f239d50b657d47  gcc/testsuite/gcc.dg/vect/vect-82_64.c
! 106d79d6bcb38d4cbdbc06db2f4fb8ed  gcc/testsuite/gcc.dg/vect/vect-83.c
! 6bb1144ef42f3733e61d8ddd9a244b5c  gcc/testsuite/gcc.dg/vect/vect-83_64.c
! e7e20cc1acf393245d4f75a07d5dffb6  gcc/testsuite/gcc.dg/vect/vect-85-big-array.c
! b5a5a2481630aee0cf4695ed88414f4a  gcc/testsuite/gcc.dg/vect/vect-85.c
! 17f15e5847566c5e7b9c2dd3f3c8d1eb  gcc/testsuite/gcc.dg/vect/vect-86.c
! 368aa8b2a0c58c4d8a428c66b1618bc7  gcc/testsuite/gcc.dg/vect/vect-87.c
! 24a7cb449142458353a1e4b42c3ee903  gcc/testsuite/gcc.dg/vect/vect-88.c
! 2b1acd15a3b4d4e9949c8497ff0a7544  gcc/testsuite/gcc.dg/vect/vect-89-big-array.c
! 08efaf25b4643518ae8dfcf22d8a6d78  gcc/testsuite/gcc.dg/vect/vect-89.c
! a2d7d6dfd6051a1538ffca29ebebf1fb  gcc/testsuite/gcc.dg/vect/vect-9.c
! fd88fcee50a98d54de6290e5c4904d9a  gcc/testsuite/gcc.dg/vect/vect-91.c
! 0b152ca649eb6f0d36016ee5cbb29d08  gcc/testsuite/gcc.dg/vect/vect-92.c
! 6c036d375d59dfdf439b74eaaa41f1f9  gcc/testsuite/gcc.dg/vect/vect-93.c
! e9b23603dc294df13c6fe78e89fa0311  gcc/testsuite/gcc.dg/vect/vect-95.c
! bbff8c4741e237b55378c5bd0bfc806e  gcc/testsuite/gcc.dg/vect/vect-96.c
! 1da2adb1bbab161436d085636bd17f63  gcc/testsuite/gcc.dg/vect/vect-97-big-array.c
! d126164e25e8f1fbc7f7121bb6518c97  gcc/testsuite/gcc.dg/vect/vect-97.c
! f1aa8e8409a4eb6db05121c8732dfeb8  gcc/testsuite/gcc.dg/vect/vect-98-big-array.c
! 7d9c343aa64cd52500af5edf31d8b5c3  gcc/testsuite/gcc.dg/vect/vect-98.c
! 957205b79e63b826b08e91b2911631ad  gcc/testsuite/gcc.dg/vect/vect-99.c
  a04da26df4dc686ef67148f9bd250c35  gcc/testsuite/gcc.dg/vect/vect-aggressive-1.c
  31386eb9c366c1ab0762533bd8c5b0ec  gcc/testsuite/gcc.dg/vect/vect-alias-check-1.c
! 5138f19e20e08e5a1532ddd516db764c  gcc/testsuite/gcc.dg/vect/vect-alias-check-10.c
! 9d638c98d91a4b03c1ff3f96c1991a19  gcc/testsuite/gcc.dg/vect/vect-alias-check-11.c
! 7ad2338fc6e6ba90500dce72f404915c  gcc/testsuite/gcc.dg/vect/vect-alias-check-12.c
  7a4667fae9796377abfc4d7edc29bdbc  gcc/testsuite/gcc.dg/vect/vect-alias-check-13.c
! 603502538b9e1d73510355bafbb00e38  gcc/testsuite/gcc.dg/vect/vect-alias-check-14.c
! 95af4c1c3324f974c78e1242376be43c  gcc/testsuite/gcc.dg/vect/vect-alias-check-15.c
! 36631f0fd7bd44e490179b854a614d52  gcc/testsuite/gcc.dg/vect/vect-alias-check-16.c
  7bd22ac20c813f2f2bfac55ea0865100  gcc/testsuite/gcc.dg/vect/vect-alias-check-17.c
! b1cc384f47b89880332e2ada90b5a27c  gcc/testsuite/gcc.dg/vect/vect-alias-check-18.c
! 7c8270ddbcadf5c94e1a4e060d45463b  gcc/testsuite/gcc.dg/vect/vect-alias-check-19.c
  2a3e312bd7e5ab5df45fd26be16729e2  gcc/testsuite/gcc.dg/vect/vect-alias-check-2.c
! 4b1c70d74fd73297c4cea65a983aaa98  gcc/testsuite/gcc.dg/vect/vect-alias-check-20.c
  70f35d6235f257d8a748a4c306ed92cd  gcc/testsuite/gcc.dg/vect/vect-alias-check-3.c
  e91e50f7ac96bf4c7f84c3910d7a8ffd  gcc/testsuite/gcc.dg/vect/vect-alias-check-4.c
  3c03b4406103dc9957e802641a4d4b36  gcc/testsuite/gcc.dg/vect/vect-alias-check-5.c
  ff089a27e850ec5cc9c4418ac3d53928  gcc/testsuite/gcc.dg/vect/vect-alias-check-6.c
  849eee1578d80f374003ab06c8c9881d  gcc/testsuite/gcc.dg/vect/vect-alias-check-7.c
! 036eee3e0c04f21ef4d6e2a063fa1c0f  gcc/testsuite/gcc.dg/vect/vect-alias-check-8.c
! 60b6260cfc9b1359dc5701d9abd1840f  gcc/testsuite/gcc.dg/vect/vect-alias-check-9.c
  164f1d465e8f0c3cf4f0595cdd0b4142  gcc/testsuite/gcc.dg/vect/vect-alias-check.c
! 17bdb665549faae9e703f11612fed7b4  gcc/testsuite/gcc.dg/vect/vect-align-1.c
! d1ef5a0be01d3296be3695298d09fb6b  gcc/testsuite/gcc.dg/vect/vect-align-2.c
  374e4045853c30f4e4156da8f6908c21  gcc/testsuite/gcc.dg/vect/vect-align-3.c
  2f35186c388c67e16cd4026e435ba093  gcc/testsuite/gcc.dg/vect/vect-align-4.c
! 35c5fff15810d72a659eb18f2c9c82a5  gcc/testsuite/gcc.dg/vect/vect-all-big-array.c
! b41b78cd936a6115847f1f7e7b32d0a0  gcc/testsuite/gcc.dg/vect/vect-all.c
! be63607547a51d64b0dfb33119937e99  gcc/testsuite/gcc.dg/vect/vect-avg-1.c
  2ac26c50bc7f1e1b6af581b61a3ec5dd  gcc/testsuite/gcc.dg/vect/vect-avg-10.c
! 80059348f9c82a8bc429462690188046  gcc/testsuite/gcc.dg/vect/vect-avg-11.c
! f05e52753edc6b00c25cab12ceb3d7dc  gcc/testsuite/gcc.dg/vect/vect-avg-12.c
! 2cfb7aae8e6f5617e2cd31e7c3d4146e  gcc/testsuite/gcc.dg/vect/vect-avg-13.c
! a1f7a9734e05e265d824e7c7a0f979c3  gcc/testsuite/gcc.dg/vect/vect-avg-14.c
! 99bae11008ac06665b12581b13b5e075  gcc/testsuite/gcc.dg/vect/vect-avg-15.c
! 7d144becc7f60a8b93f3a08cef42cde2  gcc/testsuite/gcc.dg/vect/vect-avg-16.c
! 46fb10e293b36fd1eaa92849b4d0f2b7  gcc/testsuite/gcc.dg/vect/vect-avg-2.c
! 6518cc8b09e60cdf8fb7f933353106e6  gcc/testsuite/gcc.dg/vect/vect-avg-3.c
! c4e10c1b79077738b9e3b8b1894d2643  gcc/testsuite/gcc.dg/vect/vect-avg-4.c
! 18dba9170dfe6918a13ceffcbd058dd8  gcc/testsuite/gcc.dg/vect/vect-avg-5.c
! 90b0d587e3f220522ad3012787a1f5a5  gcc/testsuite/gcc.dg/vect/vect-avg-6.c
! ab8c4bd93c540be79142d665919b6a78  gcc/testsuite/gcc.dg/vect/vect-avg-7.c
! e9b25c141b537b662cd8e66675d25181  gcc/testsuite/gcc.dg/vect/vect-avg-8.c
  7c4ca4d68d7e84bceb06dd4dd4d2f0fd  gcc/testsuite/gcc.dg/vect/vect-avg-9.c
! da4f77e29dfb9fbb823f9e7743d5cea1  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-10.c
! 51f90a7b510e3ff1d82b2f4e33eb5423  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-11.c
! 1e043cd328671198c924e02b5acc4589  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-12.c
! 89c6cde65436b5336b384a6f12c2f50e  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-2.c
! 70c440ce6d956a5ea955d7a570a69b65  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-23.c
! 89c6cde65436b5336b384a6f12c2f50e  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-3.c
! a245ca779cddec5455dad352686009ca  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-4.c
! d6761ff8f8adad6b73db1122bc8a345a  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-5.c
! 8fb3c6d5aa684be25647bed396f9df35  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-6.c
! d6053ca863d307451051a9139b28ecab  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-8.c
! c93223b3b90dcc207fe2e6c5f30f3d56  gcc/testsuite/gcc.dg/vect/vect-bic-bitmask-9.c
! 9352c9f69e981ec3f7c49dac5952b2c5  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-1-not.c
! 542a4fb870ce2a07d8520f9a08059aa7  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-1.c
! 3d71306e2f6a74baf2d7541296b48868  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-2-not.c
! 6b997782291773fdbe873736d56b683d  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-2.c
! a8670fb0ea6897402545e1ceeb225673  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-3.c
! 804db345e86486db5088b1ec899772a0  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-4.c
! bd037177d51ab9f05617c06eaf77070f  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-5.c
! effdaf454c0990c490bedfc461211c9a  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-6.c
! 277b9dd3cfe77e196e7ac6cd2052b68b  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-7.c
! 6c7d17bf88e4202f263b934ccc14ffc6  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-8.c
! e92fad84a9315029cc8841880f84eea6  gcc/testsuite/gcc.dg/vect/vect-bitfield-read-9.c
! 4a46d8a82e68997d6f35fbf8e519e577  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-1.c
! 8f5f9e1b4af26bcdfe10c4dceab2b1ea  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-2.c
! 1038701ddda8e301fd6dbe136dd390f5  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-3.c
! ef0aa33c5f3ea85c398891ed13668325  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-4.c
! 025744c3d46021403ca00270449bf8e6  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-5.c
  154c42706e014b10ba6740d5b2ec9fb1  gcc/testsuite/gcc.dg/vect/vect-bool-1.c
  88ece9587087a3d3d1b4461a490bb1e1  gcc/testsuite/gcc.dg/vect/vect-bool-cmp-2.c
! 4afd16e3b53b6f4c3915509813624fde  gcc/testsuite/gcc.dg/vect/vect-bool-cmp.c
! ce4ee72e06224b881e9d4dba216500c3  gcc/testsuite/gcc.dg/vect/vect-bswap16.c
  9e66be7556b2d11cacfd42f03990f256  gcc/testsuite/gcc.dg/vect/vect-bswap16a.c
! c35993d21df9a7d36f655e03f1da3108  gcc/testsuite/gcc.dg/vect/vect-bswap32.c
! 9c789087d105ce82b523a6028332e5e9  gcc/testsuite/gcc.dg/vect/vect-bswap64.c
! 608bd66ff4aa5e54d6f8083516652968  gcc/testsuite/gcc.dg/vect/vect-complex-1.c
! 9d03085c10780c6ee3c0a94594cde8eb  gcc/testsuite/gcc.dg/vect/vect-complex-2.c
! 43d62511a450e6ab8e6b88de0c2cc729  gcc/testsuite/gcc.dg/vect/vect-complex-4.c
  eafef82eb0f50e37d2fec2ed962bb498  gcc/testsuite/gcc.dg/vect/vect-complex-5.c
! 91ef7a7b890b574045a4ca1657218d31  gcc/testsuite/gcc.dg/vect/vect-cond-1.c
! 3e57154a5aa83073a5eb0f62b0e58ff9  gcc/testsuite/gcc.dg/vect/vect-cond-10.c
! 3cd897ddd5a4a1bdca666ca184b9656f  gcc/testsuite/gcc.dg/vect/vect-cond-11.c
  7c19802622ded8e0ba7ba5d19673294d  gcc/testsuite/gcc.dg/vect/vect-cond-12.c
! 4e2cff5d95b6b574089710090fa8adac  gcc/testsuite/gcc.dg/vect/vect-cond-13.c
  712c13b79dff5bb5217da812c8ede340  gcc/testsuite/gcc.dg/vect/vect-cond-2.c
! 697d2d18248367ca2f7da44a1a2d6362  gcc/testsuite/gcc.dg/vect/vect-cond-3.c
! fa5262a239c6fe2f2348e1acc12d6208  gcc/testsuite/gcc.dg/vect/vect-cond-4.c
! c8c7545cfed5250b583622bb2891df48  gcc/testsuite/gcc.dg/vect/vect-cond-5.c
! 8ddb3af3710655d558c1bbf85a3c43e4  gcc/testsuite/gcc.dg/vect/vect-cond-6.c
! da73de347c797b9a701d8154f5cb9d97  gcc/testsuite/gcc.dg/vect/vect-cond-7.c
! aa92807b0fb182ba3804bcdd0aab9797  gcc/testsuite/gcc.dg/vect/vect-cond-8.c
! c73b7190e5a668fbbdfa72d1a5f2b046  gcc/testsuite/gcc.dg/vect/vect-cond-9.c
! e7dcbb4c70bfd8dbced3099581c0013a  gcc/testsuite/gcc.dg/vect/vect-cond-arith-1.c
! 0e8bd05fc1f59bb31d744f28c136aad7  gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c
! 320a04ffac8a1dcfa2d9470d5df76913  gcc/testsuite/gcc.dg/vect/vect-cond-arith-3.c
! 25e90ce6f81e7bf254eecf280a19ccfa  gcc/testsuite/gcc.dg/vect/vect-cond-arith-4.c
! 064436c045da2a25bcf85892cd88790c  gcc/testsuite/gcc.dg/vect/vect-cond-arith-5.c
! f2f658e2def4baf3334f43729b62c379  gcc/testsuite/gcc.dg/vect/vect-cond-arith-6.c
! 96f40179d6b44e1fcea2bc77b644705a  gcc/testsuite/gcc.dg/vect/vect-cond-arith-7.c
  5e22f47ff8de514c07d900867d766dda  gcc/testsuite/gcc.dg/vect/vect-cond-arith-8.c
  0b977702a40013afcdb78bddf04bc009  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-1.c
  81f1d27e9fbd5b434349fe98c68f7243  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-2.c
  816615d056597f69ca99524b8d4ea447  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-3.c
! 82c3be2ff16b4aac2514b62d99a32ada  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-4.c
  354271b6665dd6a9f399e33f82de844b  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-5.c
  32eea07216ed1bd222c4bbe9811ae8ea  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-6.c
! ff17ac63b00c193f6f6017712dcf34fc  gcc/testsuite/gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c
! 9e4943d8d4000c4fea905c706d2fe3c3  gcc/testsuite/gcc.dg/vect/vect-cost-model-1.c
  ef8210af227234a14b841ff219badabd  gcc/testsuite/gcc.dg/vect/vect-cost-model-2.c
! edef51a5b7cca27aacc1d70737e46fea  gcc/testsuite/gcc.dg/vect/vect-cost-model-3.c
  f144da89da4331752490c122d7327ead  gcc/testsuite/gcc.dg/vect/vect-cost-model-4.c
! 6ceefd863dca3cb143750c2a79944baf  gcc/testsuite/gcc.dg/vect/vect-cost-model-5.c
  46d80b9e652277c492accd6a5c0fbc8e  gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c
! 35db2319e113a5079c89b99b507b6be9  gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
! f75658296c3c00611ae0ac2b4a10d10f  gcc/testsuite/gcc.dg/vect/vect-cselim-2.c
  dce2415ccc21ee8df7ffd1b533a4cd37  gcc/testsuite/gcc.dg/vect/vect-ctor-1.c
  6a93583f599051f181cc85fe92a7146a  gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  93cbbf2fc0227c3002a8b9a73567c9d3  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-1.c
  7ed32f556e2f90b2ce76f1c86a0d92da  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-2.c
  5a75a78907385e61f827b75b524ed7b1  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-3.c
! 53af242baa1f9bddab22c7a4c5a2f2de  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-4.c
! 8e685fec09da3432deb6dc0cbcd50437  gcc/testsuite/gcc.dg/vect/vect-div-bitmask-5.c
! 6b89c52b4d7413f07b81db5f85524c96  gcc/testsuite/gcc.dg/vect/vect-div-bitmask.h
! f59f861b2ae1377152bf61c8fa7077c0  gcc/testsuite/gcc.dg/vect/vect-double-reduc-1.c
! afb9c2452043c4e42b352d4e8ff76fc5  gcc/testsuite/gcc.dg/vect/vect-double-reduc-2.c
! 5ebd2c1f7178618c3a2d6ef2ecb354d9  gcc/testsuite/gcc.dg/vect/vect-double-reduc-3.c
! 623a5728515061a4eac5d78753cfa10b  gcc/testsuite/gcc.dg/vect/vect-double-reduc-4.c
! 63d04580ed047cf42018652aeb701b07  gcc/testsuite/gcc.dg/vect/vect-double-reduc-5.c
! 3eb5520691c0475a6efd495067a16b10  gcc/testsuite/gcc.dg/vect/vect-double-reduc-6-big-array.c
! 064fad2dfa034410343d195edfc9a26d  gcc/testsuite/gcc.dg/vect/vect-double-reduc-6.c
! 41840760f1977f481892205b1118db9b  gcc/testsuite/gcc.dg/vect/vect-double-reduc-7.c
  5255db3025b7dc2620f6c83a2979c5ba  gcc/testsuite/gcc.dg/vect/vect-dv-1.c
! 4747b41b65ed1b3e582dd065bdc81d27  gcc/testsuite/gcc.dg/vect/vect-early-break-run_1.c
! ea56c22a03eb32b0e220d6e15ef8436a  gcc/testsuite/gcc.dg/vect/vect-early-break-run_10.c
! 16bcb04c3817a36a854370d9e98dfa98  gcc/testsuite/gcc.dg/vect/vect-early-break-run_2.c
! 1aabf41e970d0fb00913c3e7d9f23848  gcc/testsuite/gcc.dg/vect/vect-early-break-run_3.c
! 5c04d041edb335cd0215edfb8c9b59f5  gcc/testsuite/gcc.dg/vect/vect-early-break-run_4.c
! c9993ce1aaa4942652e946ecf21d26b5  gcc/testsuite/gcc.dg/vect/vect-early-break-run_5.c
! 062e9b733ce78f6424e86d51ab3c7a77  gcc/testsuite/gcc.dg/vect/vect-early-break-run_6.c
! 7a4e2df148585cdd20c6ba4086e6cbd0  gcc/testsuite/gcc.dg/vect/vect-early-break-run_7.c
! 21bebd2c6619138299badce0f7f8d806  gcc/testsuite/gcc.dg/vect/vect-early-break-run_8.c
! cc10c30fef1e4307158f62cd13aaa227  gcc/testsuite/gcc.dg/vect/vect-early-break-run_9.c
! 5ee26b01297dd851d2885e4187997fe1  gcc/testsuite/gcc.dg/vect/vect-early-break-template_1.c
! c0ce685966038dc8e92931d6e0b8279a  gcc/testsuite/gcc.dg/vect/vect-early-break-template_2.c
! e4cb486e8ef4e6cb96a119f96d07605c  gcc/testsuite/gcc.dg/vect/vect-early-break_1.c
! f5e094c22b477cb4f07c83c1a160caec  gcc/testsuite/gcc.dg/vect/vect-early-break_10.c
! 928a7179c57cb832795a649ac98c43e4  gcc/testsuite/gcc.dg/vect/vect-early-break_100-pr113287.c
! 5e41c081b8e93866d607ccf7f3f02c91  gcc/testsuite/gcc.dg/vect/vect-early-break_101-pr113178.c
! 10c857b2b791ad59c394d9a9c9504bba  gcc/testsuite/gcc.dg/vect/vect-early-break_102-pr113178.c
! 91c9ac0ab6d850f86ee5061fcdf46b64  gcc/testsuite/gcc.dg/vect/vect-early-break_103-pr113135.c
! eaa73217c152faaac7e01f0ac44c6ff2  gcc/testsuite/gcc.dg/vect/vect-early-break_104-pr113373.c
! 10908e4c8bf983ab4d74d15f75e66883  gcc/testsuite/gcc.dg/vect/vect-early-break_106-pr113374.c
! 6edae31e5ed57603990fcbd8f0053e3a  gcc/testsuite/gcc.dg/vect/vect-early-break_107-pr113364.c
! c33e7667a6b2f9344a75c204b9cd61b7  gcc/testsuite/gcc.dg/vect/vect-early-break_108-pr113588.c
! b2cc21facd8b22244a7a6a1e92700e70  gcc/testsuite/gcc.dg/vect/vect-early-break_109-pr113588.c
! dd5b6d7f602a7381c1b370609b86288f  gcc/testsuite/gcc.dg/vect/vect-early-break_11.c
! da0f156483470264ab13e178b41053f2  gcc/testsuite/gcc.dg/vect/vect-early-break_110-pr113467.c
! 96206e4989ca62976eb7566af8a1d4db  gcc/testsuite/gcc.dg/vect/vect-early-break_111-pr113731.c
! 8b222a03e0db91e062fe36876169ce5e  gcc/testsuite/gcc.dg/vect/vect-early-break_112-pr113750.c
! 15368cf8744f54bf14c68c678e1ffca9  gcc/testsuite/gcc.dg/vect/vect-early-break_113-pr113750.c
! e6e52f76739d8182e2952bdeb89373a9  gcc/testsuite/gcc.dg/vect/vect-early-break_114-pr113750.c
! 45c9325bc066f4a67efa11623de80bc7  gcc/testsuite/gcc.dg/vect/vect-early-break_115-pr113750.c
! e243ff34913f43920d226f1386edcc42  gcc/testsuite/gcc.dg/vect/vect-early-break_116-pr113750.c
! 1f37b608459f01644ae247f133e9f7bd  gcc/testsuite/gcc.dg/vect/vect-early-break_117-pr113734.c
! 5c31169824cb9b876783324409c0c491  gcc/testsuite/gcc.dg/vect/vect-early-break_118-pr114068.c
! 167e98f293e4c8f2e92b6355b3e65470  gcc/testsuite/gcc.dg/vect/vect-early-break_119-pr114068.c
! 0847d015f2e5553ecc27077a0495d022  gcc/testsuite/gcc.dg/vect/vect-early-break_12.c
! 821a79ffc8fbc8143e9dfabd5919af42  gcc/testsuite/gcc.dg/vect/vect-early-break_120-pr114099.c
! c2f9785b71ae5973a478fe7acb86030f  gcc/testsuite/gcc.dg/vect/vect-early-break_121-pr114081.c
! 8c265e723c35b7308f17126456accb93  gcc/testsuite/gcc.dg/vect/vect-early-break_122-pr114239.c
! d5d9976efc22ed1298b4dc18d8f9369d  gcc/testsuite/gcc.dg/vect/vect-early-break_123-pr114297.c
! 3bc525ac3a0c692e58024ee1f6dfad8d  gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c
! 31652e7c628ce651ee20a71bc455f9ea  gcc/testsuite/gcc.dg/vect/vect-early-break_125-pr114403.c
! e664ac062bb0e564d2a811a548b6923f  gcc/testsuite/gcc.dg/vect/vect-early-break_13.c
! 73bc7475d6af2bd77455abec5df316e4  gcc/testsuite/gcc.dg/vect/vect-early-break_14.c
! e90473e2ecf7c08db9278bdca5060773  gcc/testsuite/gcc.dg/vect/vect-early-break_15.c
! 2232d395ceff11af9b28f269e86162c9  gcc/testsuite/gcc.dg/vect/vect-early-break_16.c
! 74848a5e9be64a5356628885f52c286b  gcc/testsuite/gcc.dg/vect/vect-early-break_17.c
! 4158b0a949b05bb0d018271966049405  gcc/testsuite/gcc.dg/vect/vect-early-break_18.c
! faae1dc73ce526e78bf82181d754f36b  gcc/testsuite/gcc.dg/vect/vect-early-break_19.c
! 0e5a6c011dde934aa2d4213ba9f485e4  gcc/testsuite/gcc.dg/vect/vect-early-break_2.c
! 49c4836e297fc9907d132082ebd5b97e  gcc/testsuite/gcc.dg/vect/vect-early-break_20.c
! a79a55edebe746e36aa14e5c907e0478  gcc/testsuite/gcc.dg/vect/vect-early-break_21.c
! 9128076c4682498fb96a3b6c05da1507  gcc/testsuite/gcc.dg/vect/vect-early-break_22.c
! d67fe4039b98f5ade1cfa4ba95d7ebb9  gcc/testsuite/gcc.dg/vect/vect-early-break_23.c
! c0370a5b569f3d56987aeff5c8e78356  gcc/testsuite/gcc.dg/vect/vect-early-break_24.c
! c6478ec076451d018cdfd7229ea3d987  gcc/testsuite/gcc.dg/vect/vect-early-break_25.c
! 3b64d3ca85e57cba2d381d92f015a678  gcc/testsuite/gcc.dg/vect/vect-early-break_26.c
! 414570f14991cc52da4dac67f95cc334  gcc/testsuite/gcc.dg/vect/vect-early-break_27.c
! 5d2258f925c074920b13a3e08555af4e  gcc/testsuite/gcc.dg/vect/vect-early-break_28.c
! 2b1e6ef5a85a7158949d35eb24be42fe  gcc/testsuite/gcc.dg/vect/vect-early-break_29.c
! 7347a7763c9e0add11ab30489ecaa280  gcc/testsuite/gcc.dg/vect/vect-early-break_3.c
! 32eb8ee43e7f2da0dcc02df2fdb5a91c  gcc/testsuite/gcc.dg/vect/vect-early-break_30.c
! 99824c771bc53546b513f0b7cadc27d4  gcc/testsuite/gcc.dg/vect/vect-early-break_31.c
! 66ef6ef1c02b6c96da818d9a0f34ce47  gcc/testsuite/gcc.dg/vect/vect-early-break_32.c
! 9c5f6b21fae0ab9ed6c36c8eff0f7921  gcc/testsuite/gcc.dg/vect/vect-early-break_33.c
! 7a3132569e0dceed130b87568ed6cb44  gcc/testsuite/gcc.dg/vect/vect-early-break_34.c
! 96ef29c46f419a39a1dedbea923246bc  gcc/testsuite/gcc.dg/vect/vect-early-break_35.c
! 022966c92ec61ab5cf18db41dbacdd07  gcc/testsuite/gcc.dg/vect/vect-early-break_36.c
! 9e063714246e3fdcc0e977fd1c8c35b9  gcc/testsuite/gcc.dg/vect/vect-early-break_37.c
! 9465b4eaca5f3f27a694788bc4fca8b0  gcc/testsuite/gcc.dg/vect/vect-early-break_38.c
! 5d7ade500317a4489fbfeb9915ccf147  gcc/testsuite/gcc.dg/vect/vect-early-break_39.c
! b79992b539b9fdd81c73ef95ccc8a698  gcc/testsuite/gcc.dg/vect/vect-early-break_4.c
! 7761ce13a32a18b3ec7db110a8b90cbd  gcc/testsuite/gcc.dg/vect/vect-early-break_40.c
! 558c156f60ccffa54575ac120eab374f  gcc/testsuite/gcc.dg/vect/vect-early-break_41.c
! c66141b356f45606226340093d65e0d4  gcc/testsuite/gcc.dg/vect/vect-early-break_42.c
! 152797ca51457def0cde7c1330455165  gcc/testsuite/gcc.dg/vect/vect-early-break_43.c
! 152797ca51457def0cde7c1330455165  gcc/testsuite/gcc.dg/vect/vect-early-break_44.c
! 7ca2fa7c66ce922aab0bac38bf5cbe31  gcc/testsuite/gcc.dg/vect/vect-early-break_45.c
! fb4a01843167a114839fe928e7182c43  gcc/testsuite/gcc.dg/vect/vect-early-break_46.c
! 1eaa5028cdd6dcdddaf57a4d7a7a2bc2  gcc/testsuite/gcc.dg/vect/vect-early-break_47.c
! f2db07147352fcd7264392170cb624f2  gcc/testsuite/gcc.dg/vect/vect-early-break_48.c
! 010c15d89dfa7575e98d07ef06f6c6d5  gcc/testsuite/gcc.dg/vect/vect-early-break_49.c
! a5b43e5af772bc8bb12357c98990bc22  gcc/testsuite/gcc.dg/vect/vect-early-break_5.c
! 747e14cd2aefae21174fa633459a497c  gcc/testsuite/gcc.dg/vect/vect-early-break_50.c
! cb74e82e285dc1e77625b4824212b14a  gcc/testsuite/gcc.dg/vect/vect-early-break_51.c
! 3efbc9af84b1e7c0ba4b15e63613cb4f  gcc/testsuite/gcc.dg/vect/vect-early-break_52.c
! 215c047e92be41f805a64d656508b472  gcc/testsuite/gcc.dg/vect/vect-early-break_53.c
! 2b148b4ecaed809d92b99c39a15d788c  gcc/testsuite/gcc.dg/vect/vect-early-break_54.c
! cedec433c63e1267dec0f94451d7b0f7  gcc/testsuite/gcc.dg/vect/vect-early-break_55.c
! a51d9528ef3bdbad44d7168656adb838  gcc/testsuite/gcc.dg/vect/vect-early-break_56.c
! 42603f6f5fb41c91438fdc5eda8b92b4  gcc/testsuite/gcc.dg/vect/vect-early-break_57.c
! 7a2cc4db878519e2c4422ad2ae2ad57e  gcc/testsuite/gcc.dg/vect/vect-early-break_58.c
! 5122cb2a84181ea43d8cf23ed9b437a5  gcc/testsuite/gcc.dg/vect/vect-early-break_59.c
! ae59ba9f62def7e8a6f229318c3924d9  gcc/testsuite/gcc.dg/vect/vect-early-break_6.c
! 81232e4d3ee549d9cb01c996a0681602  gcc/testsuite/gcc.dg/vect/vect-early-break_60.c
! 68b398bb93a046ee564aac321fc657a3  gcc/testsuite/gcc.dg/vect/vect-early-break_61.c
! 203db8a8d255435fcd7ba086f2394479  gcc/testsuite/gcc.dg/vect/vect-early-break_62.c
! b1036eb8e75ee2093f4d523b69de440b  gcc/testsuite/gcc.dg/vect/vect-early-break_63.c
! 51192e8cdd54834f8aa1922866d1971b  gcc/testsuite/gcc.dg/vect/vect-early-break_64.c
! 4b5b37d4436a58ee3a242f230d37875b  gcc/testsuite/gcc.dg/vect/vect-early-break_65.c
! db5d79c4f96be8ff0ce93fc1afe9708d  gcc/testsuite/gcc.dg/vect/vect-early-break_66.c
! 67e8ce34107e3d47c129f3803abe29b3  gcc/testsuite/gcc.dg/vect/vect-early-break_67.c
! 16099ffea25a9e9474023fadeb9c9c7a  gcc/testsuite/gcc.dg/vect/vect-early-break_68.c
! db1064c94b8ef718b2d2b5ba9789a5df  gcc/testsuite/gcc.dg/vect/vect-early-break_69.c
! e7bd7c8cf47327826a3023b1b5784c10  gcc/testsuite/gcc.dg/vect/vect-early-break_7.c
! 676f8999fc3cbf13f062df9506366a66  gcc/testsuite/gcc.dg/vect/vect-early-break_70.c
! 3a8f7b84d76fc906aa5ce256b57476df  gcc/testsuite/gcc.dg/vect/vect-early-break_71.c
! 7da05005599d01b464d163704e0b0c8e  gcc/testsuite/gcc.dg/vect/vect-early-break_72.c
! 7cf8d042935dbe87998874729ec2c036  gcc/testsuite/gcc.dg/vect/vect-early-break_73.c
! 31a7695900ffc33af9891ce779322ef8  gcc/testsuite/gcc.dg/vect/vect-early-break_74.c
! 1927b3264069c1152544c3590418e958  gcc/testsuite/gcc.dg/vect/vect-early-break_75.c
! 28b5e2c5eb8336dd7ced1e1454a006e1  gcc/testsuite/gcc.dg/vect/vect-early-break_76.c
! dc4a94e183149529531a4aad8dd44a32  gcc/testsuite/gcc.dg/vect/vect-early-break_77.c
! 40d99e15bd59e59bda39cca2ef20c2c9  gcc/testsuite/gcc.dg/vect/vect-early-break_78.c
! c204b8cf85750419aeeef52cb269a4da  gcc/testsuite/gcc.dg/vect/vect-early-break_79.c
! 4a16e18a7b94d9e9a8665115cff3a900  gcc/testsuite/gcc.dg/vect/vect-early-break_8.c
! 77b5c34dd9127f0e9d619402fefce6f6  gcc/testsuite/gcc.dg/vect/vect-early-break_80.c
! 8aa94cc89ee38a0b7f67c809fa1e7ea2  gcc/testsuite/gcc.dg/vect/vect-early-break_81.c
! 747c6c84b17006ab909052926a6333cb  gcc/testsuite/gcc.dg/vect/vect-early-break_82.c
! 95dc32a8163faca86b5cc17ce002bbff  gcc/testsuite/gcc.dg/vect/vect-early-break_83.c
! 6d629830468ec4d68071b15e22b45d3e  gcc/testsuite/gcc.dg/vect/vect-early-break_84.c
! 9a39670250036f7cb5a4d195a125da85  gcc/testsuite/gcc.dg/vect/vect-early-break_85.c
! 6f208a8bb031775058d329e10ecea7d2  gcc/testsuite/gcc.dg/vect/vect-early-break_86.c
! 711c8e2c9af7de7addc9658b7c98987a  gcc/testsuite/gcc.dg/vect/vect-early-break_87.c
! dfdce19ffe60abb3a9ccdcf4a396ee71  gcc/testsuite/gcc.dg/vect/vect-early-break_88.c
! 61d2e177f0f8434a5dc1117b13deef37  gcc/testsuite/gcc.dg/vect/vect-early-break_89.c
! 90eb76d56e2d917774cb4055549bd629  gcc/testsuite/gcc.dg/vect/vect-early-break_9.c
! cc8b1078637b52a23150b78e0ba893cb  gcc/testsuite/gcc.dg/vect/vect-early-break_90.c
! b903d8f3aafefadf307e04a1a96a1546  gcc/testsuite/gcc.dg/vect/vect-early-break_91.c
! 243dee1ea6fd192667cee4c413c13fe5  gcc/testsuite/gcc.dg/vect/vect-early-break_92.c
! 8edc3fc9243836c5cac1522c81614a19  gcc/testsuite/gcc.dg/vect/vect-early-break_93.c
! 3dc1fd4473bdd7f414512f8df2c03044  gcc/testsuite/gcc.dg/vect/vect-early-break_94-pr113144.c
! 9c59735552b064243f2b720fad0637d1  gcc/testsuite/gcc.dg/vect/vect-early-break_95-pr113137.c
! 3d10fa5ec30534782286465a786d70e4  gcc/testsuite/gcc.dg/vect/vect-early-break_96-pr113136.c
! 0e5e3338de2b365b110720da54f5a479  gcc/testsuite/gcc.dg/vect/vect-early-break_97-pr113172.c
! 2b5af29ebf2998ada69b3e634910d352  gcc/testsuite/gcc.dg/vect/vect-early-break_98-pr113237.c
! d4ebf05d9e90d8bd56c34cd5adb3398c  gcc/testsuite/gcc.dg/vect/vect-early-break_99-pr113287.c
! 2199a6b7e56a028ed2ce2b09593dd39a  gcc/testsuite/gcc.dg/vect/vect-epilogues-2.c
! 6d97b66c0555d770b0d2f12c56dda9f3  gcc/testsuite/gcc.dg/vect/vect-epilogues.c
! 968918de7b4aa0b681eb8530665da7e7  gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c
! 534281763a7e21be698d26ff75f2e3dc  gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c
! ddcca171bffd2c9e38be85db0266fddc  gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-1.c
! f85ef0b99140422d78068ad18a39e03b  gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-2.c
! 1cfb60cff785873ea9d5e79c391d7e1b  gcc/testsuite/gcc.dg/vect/vect-fma-1.c
  b10686cc9cc745d9a4e579ee285eae2d  gcc/testsuite/gcc.dg/vect/vect-fma-2.c
  f26bda59075ce8ddcb0291dc86a118b3  gcc/testsuite/gcc.dg/vect/vect-fma-3.c
  609ec8572941506ac02bdead3631cf1a  gcc/testsuite/gcc.dg/vect/vect-fmax-1.c
*************** b913a0ce97e1075ed9731f6e62b860bf  gcc/te
*** 52538,52630 ****
  f7641c61bbf333053e42be5bfa67d8e4  gcc/testsuite/gcc.dg/vect/vect-fmin-1.c
  33e9990b22cd49f97ec590b283e99e41  gcc/testsuite/gcc.dg/vect/vect-fmin-2.c
  92e4333ba4e6a6e7852441677e9dd7e1  gcc/testsuite/gcc.dg/vect/vect-fmin-3.c
! f7e0d01143aad0f81b1d1f66c5737e3a  gcc/testsuite/gcc.dg/vect/vect-fold-1.c
! 35c3ee4b34fc72c77cfca5c91b2ab36c  gcc/testsuite/gcc.dg/vect/vect-gather-1.c
! 42b00c38af065e33048d2a1d390a7232  gcc/testsuite/gcc.dg/vect/vect-gather-2.c
! 1dba52381c6aba539d0efa40e551a155  gcc/testsuite/gcc.dg/vect/vect-gather-3.c
! e180f90bcddffb95d143a607814ea50a  gcc/testsuite/gcc.dg/vect/vect-gather-4.c
  da9eedb2c6a365008d958ef7f394e8c4  gcc/testsuite/gcc.dg/vect/vect-gather-5.c
  b57bff07bf75c647567f17c15d11e41a  gcc/testsuite/gcc.dg/vect/vect-ifcvt-10.c
! a0b812b43a2a49d603a582c192074c86  gcc/testsuite/gcc.dg/vect/vect-ifcvt-11.c
! 9dbd0e84949b41bb8d3ca7406736f54d  gcc/testsuite/gcc.dg/vect/vect-ifcvt-16.c
! 8bc0b33be3c023bd3459a56725e590f0  gcc/testsuite/gcc.dg/vect/vect-ifcvt-17.c
  37f2a7b8cd501d5ff2a6c9638bff8602  gcc/testsuite/gcc.dg/vect/vect-ifcvt-18.c
! 8280799a10a29a6d5a9d9f18d643f7fc  gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
! 22b8162196395f56afc3fda805e5c7a6  gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c
! d31c580b602974793ca141ffe83739b6  gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c
! 5fd2b4e06c72c03c86c1595a791dc3ef  gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c
! 293aae0f59f625069204ebc6b2e3d02c  gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c
! afc4a003b63c2ed63c2827e5b8ed54d9  gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c
! 34ad3aa09b0a3b20b52f804868682bc5  gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
! 284173c938c46f958642cb361af91dcc  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-1.c
! fcc2519d16046623a62ebaa3f3acb61c  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-2.c
! fb82237f822ac3fa1be30d19014f0ead  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-3.c
! 943e74696f555b7c9e58c8c916645922  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-4a.c
! aa7dfecc9413b46e1123e775d8b0cf72  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-4b.c
! 07ee66eb7c6796e72a49eba09680932a  gcc/testsuite/gcc.dg/vect/vect-iv-1.c
! 097bd190a8a5a122fda1118de61f0860  gcc/testsuite/gcc.dg/vect/vect-iv-10.c
  9cf555dd8c73b5af645b547b1dc3c916  gcc/testsuite/gcc.dg/vect/vect-iv-11.c
! f611e6b3ba628016127f5f60b88dc730  gcc/testsuite/gcc.dg/vect/vect-iv-2.c
! 476413bc1fde0333e0ba98a650f24546  gcc/testsuite/gcc.dg/vect/vect-iv-3.c
! abf05f1309399cc400f58c0c22ec7215  gcc/testsuite/gcc.dg/vect/vect-iv-4.c
! 8bb32c495edf83d024ce5206c7626f9e  gcc/testsuite/gcc.dg/vect/vect-iv-5.c
! a8568763a32bcddd3cf0ef628dddef5a  gcc/testsuite/gcc.dg/vect/vect-iv-6.c
! f162d98965c186362a3f69ca46d9c849  gcc/testsuite/gcc.dg/vect/vect-iv-7.c
! 13fdeaf2b49f16b69de30c61b52ddec4  gcc/testsuite/gcc.dg/vect/vect-iv-8-big-array.c
! ef3389384918a2b301cc9c796df022e0  gcc/testsuite/gcc.dg/vect/vect-iv-8.c
! d79515fbbf785c8349e4cd731cf6fe4e  gcc/testsuite/gcc.dg/vect/vect-iv-8a-big-array.c
! ded2842e259fa84e07493315d52f3364  gcc/testsuite/gcc.dg/vect/vect-iv-8a.c
  4b150e87dac554fceef613b915933fc7  gcc/testsuite/gcc.dg/vect/vect-iv-9.c
  90c475a933e6b5782b7addead927023e  gcc/testsuite/gcc.dg/vect/vect-ivdep-1.c
  493ca8152f570c674714f0d614c3c345  gcc/testsuite/gcc.dg/vect/vect-ivdep-2.c
! 9894cc0dc56da26dcf877a798fdcfccb  gcc/testsuite/gcc.dg/vect/vect-live-1.c
! d676f038674efad4914da01fc8379f28  gcc/testsuite/gcc.dg/vect/vect-live-2.c
! afa1a602036d14e70fa1b02ea20d919e  gcc/testsuite/gcc.dg/vect/vect-live-3.c
! a016634eea53109923bc8853517120f3  gcc/testsuite/gcc.dg/vect/vect-live-4.c
! ba11fdb8c1ad9eb5e1be0865d6fd4b98  gcc/testsuite/gcc.dg/vect/vect-live-5.c
  c75c8a681d57daf063af3e8d9b0bf67b  gcc/testsuite/gcc.dg/vect/vect-live-6.c
! 354e369f3e3fe9c8bc3d975c408dcac6  gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c
! 075ba531c30f4d82eaf6fa6b3eca8c1e  gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c
! 99a44482d23d626b05ab44c5e256afbf  gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c
  58169dfd1934bcecee0d6fdd7931eca3  gcc/testsuite/gcc.dg/vect/vect-load-lanes-peeling-1.c
! 258cac44ad790dd732e5c8f290404338  gcc/testsuite/gcc.dg/vect/vect-mask-load-1.c
! 456e914e9be455adff33c015eef994df  gcc/testsuite/gcc.dg/vect/vect-mask-loadstore-1.c
! eee53e73bb62e3a2c57e19ae2588381e  gcc/testsuite/gcc.dg/vect/vect-mask-store-move-1.c
  08ec7ca9b1b2ef94dc0c50601bd973ff  gcc/testsuite/gcc.dg/vect/vect-mixed-size-cond-1.c
! 0974abc2982d8d6b81365c8403e2b271  gcc/testsuite/gcc.dg/vect/vect-mulhrs-1.c
  f48e8b9c86c8cca3cfc630262f34e718  gcc/testsuite/gcc.dg/vect/vect-mulhrs-2.c
  41b1ea0887f72fbfcbca0b26d8c47892  gcc/testsuite/gcc.dg/vect/vect-mulhrs-3.c
  ade33c9a6228b7df138aa0a3d5c9e969  gcc/testsuite/gcc.dg/vect/vect-mulhrs-4.c
! f3e5d3af866d80764567f6a9716879d6  gcc/testsuite/gcc.dg/vect/vect-mult-const-pattern-1.c
! c60e0a7ffcf5bdc80a3b83fc3ec4f6e7  gcc/testsuite/gcc.dg/vect/vect-mult-const-pattern-2.c
  4656afca0ce66b7237e1f714334354d0  gcc/testsuite/gcc.dg/vect/vect-mult-pattern-1.c
  c803a6ba1c147c45b591a730527ab2b1  gcc/testsuite/gcc.dg/vect/vect-mult-pattern-2.c
! aa4e3565270dc91625de8fbda6bc864e  gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
! f0b81a5ed7ca804a416117433fb97b42  gcc/testsuite/gcc.dg/vect/vect-multitypes-10.c
! 9b66722b681e4741477fb208a6fb4552  gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c
! c211faa6630bfacdbf04eaec23ee6d9c  gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c
! 37de9a2b19f10c09d87a7d4c615f0f86  gcc/testsuite/gcc.dg/vect/vect-multitypes-13.c
! 1d7324a988d61b4694209ca9937e079c  gcc/testsuite/gcc.dg/vect/vect-multitypes-14.c
  c78e329614306ddfd2430617ba82c3e8  gcc/testsuite/gcc.dg/vect/vect-multitypes-15.c
! c21abdf687a185e08cdaf733987d06e3  gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c
! dee337c321ec8c1bd4a4072e3a051b58  gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c
! 3c8a9b0f5fda3ac2292bc0c2e20b45eb  gcc/testsuite/gcc.dg/vect/vect-multitypes-2.c
! 2ba298e6245941c9e6dba0941379dfce  gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
! 4bf072b521f03ef7d9c6731d2e6331f6  gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
! 1d6b46966ea0952dcee6f07f8e71291e  gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c
! 4f2ae015d32dda1901173e2384d69398  gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
  ee152373b3cb6439fc8f5b449b865292  gcc/testsuite/gcc.dg/vect/vect-multitypes-7.c
! 4effd1110c39761332a5f2cf3c2f7dbf  gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c
! e22c5292855d04ebec8fcca164b3f63e  gcc/testsuite/gcc.dg/vect/vect-multitypes-9.c
! 8d6c1b8d6a26c0f488ec9cfcdb717ac9  gcc/testsuite/gcc.dg/vect/vect-nb-iter-ub-1.c
! f183b835e04e4f4df76b8b11d27c58d7  gcc/testsuite/gcc.dg/vect/vect-nb-iter-ub-2.c
! 0ea90f94654371f797d54e984f8eedf9  gcc/testsuite/gcc.dg/vect/vect-nb-iter-ub-3.c
! 028844c7681fb2695f5b0915b7920e58  gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c
! ca50208d018fefe0221f31fc0c7c54f3  gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c
! 7d2000a243e1f215be6b9717ebe11d76  gcc/testsuite/gcc.dg/vect/vect-nest-cycle-1.c
! d52c422cd38a7b844a4921424d5d9d65  gcc/testsuite/gcc.dg/vect/vect-nest-cycle-2.c
! 8a6b65d1295e7ccaa2b44a2792c31ae0  gcc/testsuite/gcc.dg/vect/vect-nest-cycle-3.c
  887fe0dd0c6cf6cd900562bdad5b0825  gcc/testsuite/gcc.dg/vect/vect-nop-move.c
  af6b3bb0b0a586c675ff13949e8439ad  gcc/testsuite/gcc.dg/vect/vect-ooo-group-1.c
  4282774df31f82337883da80b25f86ac  gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c
  09caa8d1a5ae68073d149268a0c5f096  gcc/testsuite/gcc.dg/vect/vect-outer-1.c
--- 55578,55677 ----
  f7641c61bbf333053e42be5bfa67d8e4  gcc/testsuite/gcc.dg/vect/vect-fmin-1.c
  33e9990b22cd49f97ec590b283e99e41  gcc/testsuite/gcc.dg/vect/vect-fmin-2.c
  92e4333ba4e6a6e7852441677e9dd7e1  gcc/testsuite/gcc.dg/vect/vect-fmin-3.c
! e41338bfbaaf9c5f7d3e7394fd0720c0  gcc/testsuite/gcc.dg/vect/vect-fold-1.c
! d19ffdb745a89b901fd8e4ee54b8e7fe  gcc/testsuite/gcc.dg/vect/vect-gather-1.c
! 0cbaf148709fdfb5a16556a06f60989d  gcc/testsuite/gcc.dg/vect/vect-gather-2.c
! 259a09d807f29b1b0eeae54b0f4391aa  gcc/testsuite/gcc.dg/vect/vect-gather-3.c
! f11c3d59750eb71cbfa16421b13933b6  gcc/testsuite/gcc.dg/vect/vect-gather-4.c
  da9eedb2c6a365008d958ef7f394e8c4  gcc/testsuite/gcc.dg/vect/vect-gather-5.c
+ 6587a33138b55d2611b8a08a33765246  gcc/testsuite/gcc.dg/vect/vect-gather-6.c
  b57bff07bf75c647567f17c15d11e41a  gcc/testsuite/gcc.dg/vect/vect-ifcvt-10.c
! 7ff6a1677653178105297386e07866a3  gcc/testsuite/gcc.dg/vect/vect-ifcvt-11.c
! 4a2948c935a39269be9a9b98aaa705de  gcc/testsuite/gcc.dg/vect/vect-ifcvt-16.c
! 7327c28f8d2805ac1f7243e0f8c06f88  gcc/testsuite/gcc.dg/vect/vect-ifcvt-17.c
  37f2a7b8cd501d5ff2a6c9638bff8602  gcc/testsuite/gcc.dg/vect/vect-ifcvt-18.c
! 9813255e783203151ab49d4ce485230b  gcc/testsuite/gcc.dg/vect/vect-ifcvt-19.c
! b6ce15665db0f38a221a25445b374a51  gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
! 2eb0e8aca6416abbf02d3465a385b9e4  gcc/testsuite/gcc.dg/vect/vect-ifcvt-20.c
! 70f318404d3cc0e533573b5f1f45403b  gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c
! 3a0cecd6a54d62e38ff2e77341a72837  gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c
! bc6fc06af35c1b0be1fedd016383ee3c  gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c
! 0768a356f45e7543599033dbef416afa  gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c
! ff3e82e310d1c2380f9a3a14f91f4d51  gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c
! 3acfd05b7ff04e7ebed279650b63fd1e  gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
! d04189238fb513780c5bb292893bf205  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-1.c
! df9bfcdec10927f5fd56a9a548d47aec  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-2.c
! 5b6eec17e779643a64d3fc4734f0cd22  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-3.c
! 7f1c7cc4c32396dfa0e1f2733cff8ff3  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-4a.c
! fd31259468ed3a5a98f792e69642f8bd  gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-4b.c
! d3b4c2028af09de8a536ea7d5d164784  gcc/testsuite/gcc.dg/vect/vect-iv-1.c
! fda40f3796375acc042d4401406aed99  gcc/testsuite/gcc.dg/vect/vect-iv-10.c
  9cf555dd8c73b5af645b547b1dc3c916  gcc/testsuite/gcc.dg/vect/vect-iv-11.c
! 50250b5bc48bf181a657db785d38f47b  gcc/testsuite/gcc.dg/vect/vect-iv-2.c
! ee841f054b30aab4bbcd963fd434f6da  gcc/testsuite/gcc.dg/vect/vect-iv-3.c
! 51614d6c7b7f6a25f52354649cd00cd9  gcc/testsuite/gcc.dg/vect/vect-iv-4.c
! 2513cab85ff6fd41c478531d98b4c5df  gcc/testsuite/gcc.dg/vect/vect-iv-5.c
! 725d3e099b79ce9d2e69d0e1264a4378  gcc/testsuite/gcc.dg/vect/vect-iv-6.c
! 6e898f2e8bdb64065533502024b8377d  gcc/testsuite/gcc.dg/vect/vect-iv-7.c
! 64b925b660791a99d2ed3a5bdf4063b6  gcc/testsuite/gcc.dg/vect/vect-iv-8-big-array.c
! 4993c20e9f7afe7ec630d15933c1d672  gcc/testsuite/gcc.dg/vect/vect-iv-8.c
! 9b89b84ddba7888d8d02dd62eccb27c2  gcc/testsuite/gcc.dg/vect/vect-iv-8a-big-array.c
! d317da023f28bcc842f91f92f1b90a87  gcc/testsuite/gcc.dg/vect/vect-iv-8a.c
  4b150e87dac554fceef613b915933fc7  gcc/testsuite/gcc.dg/vect/vect-iv-9.c
  90c475a933e6b5782b7addead927023e  gcc/testsuite/gcc.dg/vect/vect-ivdep-1.c
  493ca8152f570c674714f0d614c3c345  gcc/testsuite/gcc.dg/vect/vect-ivdep-2.c
! ff7f3590811cf5cc9f69a38040d6fc4b  gcc/testsuite/gcc.dg/vect/vect-live-1.c
! 7ff28029f2e88f7ffa5fd195496f05c7  gcc/testsuite/gcc.dg/vect/vect-live-2.c
! 8c0e3e397a19ebe40d2506b17b99faa7  gcc/testsuite/gcc.dg/vect/vect-live-3.c
! 070c8a41af74e10fdbc32274d89aa4a3  gcc/testsuite/gcc.dg/vect/vect-live-4.c
! dc52a66d864b9ab729601722af77633c  gcc/testsuite/gcc.dg/vect/vect-live-5.c
  c75c8a681d57daf063af3e8d9b0bf67b  gcc/testsuite/gcc.dg/vect/vect-live-6.c
! eebc3ab61611b4267911e7f83eba4926  gcc/testsuite/gcc.dg/vect/vect-live-slp-1.c
! e1a124ee873e19bca7b3a79579de5d89  gcc/testsuite/gcc.dg/vect/vect-live-slp-2.c
! edbb23a1a988c6699bbd18cea14684ae  gcc/testsuite/gcc.dg/vect/vect-live-slp-3.c
  58169dfd1934bcecee0d6fdd7931eca3  gcc/testsuite/gcc.dg/vect/vect-load-lanes-peeling-1.c
! 465325f30fa52b4a07cd53601a830a34  gcc/testsuite/gcc.dg/vect/vect-mask-load-1.c
! 5a6dffd1398aa6f0880bee558cfc4b44  gcc/testsuite/gcc.dg/vect/vect-mask-loadstore-1.c
! 73c71251b131876d44371cd3edbb0e48  gcc/testsuite/gcc.dg/vect/vect-mask-store-move-1.c
  08ec7ca9b1b2ef94dc0c50601bd973ff  gcc/testsuite/gcc.dg/vect/vect-mixed-size-cond-1.c
! b606b9cf4d603637adc2aa0cc2368380  gcc/testsuite/gcc.dg/vect/vect-mulhrs-1.c
  f48e8b9c86c8cca3cfc630262f34e718  gcc/testsuite/gcc.dg/vect/vect-mulhrs-2.c
  41b1ea0887f72fbfcbca0b26d8c47892  gcc/testsuite/gcc.dg/vect/vect-mulhrs-3.c
  ade33c9a6228b7df138aa0a3d5c9e969  gcc/testsuite/gcc.dg/vect/vect-mulhrs-4.c
! e4efb1ed7a7ff7aa2a482fee6ed3385e  gcc/testsuite/gcc.dg/vect/vect-mult-const-pattern-1.c
! 06011cc407c02d269818ad75792af11e  gcc/testsuite/gcc.dg/vect/vect-mult-const-pattern-2.c
  4656afca0ce66b7237e1f714334354d0  gcc/testsuite/gcc.dg/vect/vect-mult-pattern-1.c
  c803a6ba1c147c45b591a730527ab2b1  gcc/testsuite/gcc.dg/vect/vect-mult-pattern-2.c
! ba9402cb6366e3f36bc5fc2b08f3cca0  gcc/testsuite/gcc.dg/vect/vect-multi-peel-gaps.c
! b9327e3b038366df0ab1c34b3cfe5ab6  gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
! de3d69bd25bcd5c2024dcdd5b304ef4e  gcc/testsuite/gcc.dg/vect/vect-multitypes-10.c
! 3486930a20709e3f84f0c9b1745fcab2  gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c
! 152b1efc0af81c734357c5b7294bbaac  gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c
! 9a4cc99ba50b73e0768a1486b023ae8b  gcc/testsuite/gcc.dg/vect/vect-multitypes-13.c
! 62f6a2e1de2d4e5336281a658a665867  gcc/testsuite/gcc.dg/vect/vect-multitypes-14.c
  c78e329614306ddfd2430617ba82c3e8  gcc/testsuite/gcc.dg/vect/vect-multitypes-15.c
! 455e479397d6c53453f892e9d1eabc82  gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c
! 5e0b0c0e4240f68452d3de8bc3fb4fb4  gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c
! 94c92585efeaa5dfb1377fb60f28aa58  gcc/testsuite/gcc.dg/vect/vect-multitypes-2.c
! 3262385d6fea86884024433082bc5f1f  gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
! 06eea1f1f9d3e532ae70dbbf5a73cbda  gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
! b92efaf823e2d43c65bfc71227c72d27  gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c
! 74ed7173121176c1af5649e54a3922ec  gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
  ee152373b3cb6439fc8f5b449b865292  gcc/testsuite/gcc.dg/vect/vect-multitypes-7.c
! 6e005df50a4c3c6f4eb35bf65cb3c285  gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c
! 8a1e8c088186246a175dc2d06f6b693c  gcc/testsuite/gcc.dg/vect/vect-multitypes-9.c
! bbe894db3c4fdc3708bfad6f7fe2c4ca  gcc/testsuite/gcc.dg/vect/vect-nb-iter-ub-1.c
! 825351ac0e80f3ab0e2e3650997f35fd  gcc/testsuite/gcc.dg/vect/vect-nb-iter-ub-2.c
! f705f864cd2e40dae7c57e74dae1786d  gcc/testsuite/gcc.dg/vect/vect-nb-iter-ub-3.c
! 11a4c078d4ebb284dbd6e32e6bc020a0  gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c
! 6e6ef071c7e7401d9ee5d881f8192372  gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c
! f396994bfd36d478d762026d0c827ab4  gcc/testsuite/gcc.dg/vect/vect-neg-zero.c
! 7d7027a0bde42dc61ce8d2be51da0504  gcc/testsuite/gcc.dg/vect/vect-nest-cycle-1.c
! 26f0842ebdd9dd253f80a01d0c7bdf58  gcc/testsuite/gcc.dg/vect/vect-nest-cycle-2.c
! 6e3b5d8a42adda2c6829d48b553b539a  gcc/testsuite/gcc.dg/vect/vect-nest-cycle-3.c
  887fe0dd0c6cf6cd900562bdad5b0825  gcc/testsuite/gcc.dg/vect/vect-nop-move.c
+ f86b1361aa685a64d18ef6fc1d8dcbb4  gcc/testsuite/gcc.dg/vect/vect-novect_gcond.c
+ 4b7227d7ada3a9df00ee59e47314d5aa  gcc/testsuite/gcc.dg/vect/vect-novector-pragma.c
  af6b3bb0b0a586c675ff13949e8439ad  gcc/testsuite/gcc.dg/vect/vect-ooo-group-1.c
  4282774df31f82337883da80b25f86ac  gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c
  09caa8d1a5ae68073d149268a0c5f096  gcc/testsuite/gcc.dg/vect/vect-outer-1.c
*************** af6b3bb0b0a586c675ff13949e8439ad  gcc/te
*** 52632,52732 ****
  0ab3b086afcc70071ac054f303000e2e  gcc/testsuite/gcc.dg/vect/vect-outer-1a.c
  18699033c56c999035df5c64644b00b6  gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c
  9f94afd126beedb642e8c3575f27fc23  gcc/testsuite/gcc.dg/vect/vect-outer-1b.c
! 79a29e72ed945ad5ded076294ef4d96e  gcc/testsuite/gcc.dg/vect/vect-outer-2-big-array.c
! 29875c43fc05438626e46d04a39d88d5  gcc/testsuite/gcc.dg/vect/vect-outer-2.c
! c5127f250d37177cd348a642675b0472  gcc/testsuite/gcc.dg/vect/vect-outer-2a-big-array.c
! 1ccd9e552d1bc315ae954c06cdac0d18  gcc/testsuite/gcc.dg/vect/vect-outer-2a.c
! 38ce4e814dee49fa04fa65d9da71baf8  gcc/testsuite/gcc.dg/vect/vect-outer-2b.c
! fb5f83f213993173648de4201d9f9786  gcc/testsuite/gcc.dg/vect/vect-outer-2c-big-array.c
! 7d8f1f11f16f7b935b4481db3ecc1583  gcc/testsuite/gcc.dg/vect/vect-outer-2c.c
! 2685b41eb06145cae235370f75407dea  gcc/testsuite/gcc.dg/vect/vect-outer-2d.c
! 829b4c293b2eed605a01c827b549cde1  gcc/testsuite/gcc.dg/vect/vect-outer-3-big-array.c
! ba10e2f352d80c63fd5e4c8e6ca343db  gcc/testsuite/gcc.dg/vect/vect-outer-3.c
! 024fb2ace3f47536c48a51e7e9ebe1cb  gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
! 7a01f396fb69ae277435681f3c059101  gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
! 855d8fe4ee8393dab3c213df5e63c0cd  gcc/testsuite/gcc.dg/vect/vect-outer-3b.c
! eebe61251e3f57ced2641e1e6c4e9f20  gcc/testsuite/gcc.dg/vect/vect-outer-3c.c
! 0b2e994dbdfd28ff958edad37f970d29  gcc/testsuite/gcc.dg/vect/vect-outer-4.c
  f205432b6c00d8132e22eb322451e77f  gcc/testsuite/gcc.dg/vect/vect-outer-4a-big-array.c
  8e042f4fd129295abbf377fff9781bfb  gcc/testsuite/gcc.dg/vect/vect-outer-4a.c
  2967c602cfcbfc5ddd73fd5170c6afbf  gcc/testsuite/gcc.dg/vect/vect-outer-4b-big-array.c
  ec640955685882d94ce9bff8c0ce888e  gcc/testsuite/gcc.dg/vect/vect-outer-4b.c
! 5073c21269ea49f606cb80556363cc73  gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c
  fb782fd9a255ca9e4869120cb1e1f3fa  gcc/testsuite/gcc.dg/vect/vect-outer-4c.c
! 9cc3288393d86167c8efcefd05a55661  gcc/testsuite/gcc.dg/vect/vect-outer-4d-big-array.c
! c86d0f1f35b3fc95614a3c5039bceb0a  gcc/testsuite/gcc.dg/vect/vect-outer-4d.c
! b4032599000463980de5d3ff02f511ac  gcc/testsuite/gcc.dg/vect/vect-outer-4e.c
! 204e9be83eab08bb0ab433ff40d003ec  gcc/testsuite/gcc.dg/vect/vect-outer-4f.c
! 204e9be83eab08bb0ab433ff40d003ec  gcc/testsuite/gcc.dg/vect/vect-outer-4g.c
  f482a040966c832cdbc85233ea82822d  gcc/testsuite/gcc.dg/vect/vect-outer-4i.c
  d52741b0619d4700e5f522bc6c747e84  gcc/testsuite/gcc.dg/vect/vect-outer-4j.c
! 204e9be83eab08bb0ab433ff40d003ec  gcc/testsuite/gcc.dg/vect/vect-outer-4k.c
! 7aecdeef6dbcc4c1c00c95fa8057a38b  gcc/testsuite/gcc.dg/vect/vect-outer-4l.c
  d2be01cd285e7634def82ab531186c1c  gcc/testsuite/gcc.dg/vect/vect-outer-4m-big-array.c
  46fc5de4221f3c5f20edea2a32c67a9c  gcc/testsuite/gcc.dg/vect/vect-outer-4m.c
! 35c02a691d4e8718a7d55d12012799b5  gcc/testsuite/gcc.dg/vect/vect-outer-5.c
! 24a06412938ceee3b813a61ed7175aac  gcc/testsuite/gcc.dg/vect/vect-outer-6.c
  020cd484e6d5a99f7035261976267982  gcc/testsuite/gcc.dg/vect/vect-outer-call-1.c
! 9b047e0c833072847a0e7961f0d96498  gcc/testsuite/gcc.dg/vect/vect-outer-fir-big-array.c
! 1a29cfd2c1babead3767e766d40cd1df  gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb-big-array.c
! e813b6488a9595fa4ab939d7da845d3c  gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb.c
! ec1c67f028c800c3f86b95dbbc6cf776  gcc/testsuite/gcc.dg/vect/vect-outer-fir.c
  ccf146e115b5e565086e582ba389575e  gcc/testsuite/gcc.dg/vect/vect-outer-pr69720.c
! e6330a4b2d9a87e898cdaadd8b254246  gcc/testsuite/gcc.dg/vect/vect-outer-simd-1.c
! 988e5dbde608634bea71cb2fe3acb5a3  gcc/testsuite/gcc.dg/vect/vect-outer-simd-2.c
! ea891669f15d8e84d6fda8024dd5f815  gcc/testsuite/gcc.dg/vect/vect-outer-simd-3.c
  5666635e14070a657bf1e668d3ed2801  gcc/testsuite/gcc.dg/vect/vect-outer-slp-1.c
! df36cb0c240831b9733207208bc578ed  gcc/testsuite/gcc.dg/vect/vect-outer-slp-2.c
! 347db98e53368a88ad19a70adab83483  gcc/testsuite/gcc.dg/vect/vect-outer-slp-3.c
! 7a1c6bc53e2cab2c1a4b348505223c4e  gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c
! b79c1b1d104e71954ba6514449e457a1  gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c
  7ef8875afbd4bb0c3a177da55ea4c13b  gcc/testsuite/gcc.dg/vect/vect-over-widen-10.c
! 0df50304255db16bc31792bec92fe372  gcc/testsuite/gcc.dg/vect/vect-over-widen-11.c
  50dbec7ec92bebd5ac32c272cc975735  gcc/testsuite/gcc.dg/vect/vect-over-widen-12.c
! da0060ee840a879ce7673a4b990e901b  gcc/testsuite/gcc.dg/vect/vect-over-widen-13.c
  9565534bec36a8672de8f81fc7ecc657  gcc/testsuite/gcc.dg/vect/vect-over-widen-14.c
! 532cb965fa072f388149de6a6e1897a6  gcc/testsuite/gcc.dg/vect/vect-over-widen-15.c
  ea2d5959220bf350f395f5a5200ac918  gcc/testsuite/gcc.dg/vect/vect-over-widen-16.c
! e32a9f969e803a839093c16df4917a03  gcc/testsuite/gcc.dg/vect/vect-over-widen-17.c
! 99a5e39fc4d31a5a2930b3ebbb869ed1  gcc/testsuite/gcc.dg/vect/vect-over-widen-18.c
! ee15a71495c9e6dc136dc542dd11c0f5  gcc/testsuite/gcc.dg/vect/vect-over-widen-19.c
! fa21364c98fc5274644488e0b27a028d  gcc/testsuite/gcc.dg/vect/vect-over-widen-2-big-array.c
! 9438a7cf7fc710d37dd8f4d9af0db6b0  gcc/testsuite/gcc.dg/vect/vect-over-widen-2.c
! 4bceb9d6762ddb180f5a22c1b85fde21  gcc/testsuite/gcc.dg/vect/vect-over-widen-20.c
! 413de422a9f903d9693f12cb0cf139c5  gcc/testsuite/gcc.dg/vect/vect-over-widen-21.c
! 59550746bf2f2b7ac80133868e731de8  gcc/testsuite/gcc.dg/vect/vect-over-widen-22.c
  c9a117c798551ca179c9f9b6b278c897  gcc/testsuite/gcc.dg/vect/vect-over-widen-23.c
! e9ecc76f7f55b6b823397ffb05329b17  gcc/testsuite/gcc.dg/vect/vect-over-widen-3-big-array.c
! d4ebd36e2e0b6aea988ba3a2dc48a87e  gcc/testsuite/gcc.dg/vect/vect-over-widen-3.c
! e58340a93b3a9ff24f71cc253fa37e38  gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c
! 82b65dd5c3822f3a3a537243cb20844b  gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c
! ebc132ebf64090b329410885b70adc85  gcc/testsuite/gcc.dg/vect/vect-over-widen-5.c
  3c5da2507fe18e1cda1a449db0cce8d4  gcc/testsuite/gcc.dg/vect/vect-over-widen-6.c
! 7099455014defdb848588bc5ed9d1b4d  gcc/testsuite/gcc.dg/vect/vect-over-widen-7.c
  c6a855055a2ddc06d0c070822c517a6b  gcc/testsuite/gcc.dg/vect/vect-over-widen-8.c
! 1b19321d84196d9f69d2fff12a83a386  gcc/testsuite/gcc.dg/vect/vect-over-widen-9.c
  d1f79422c142a30dfa519b440be9c4c8  gcc/testsuite/gcc.dg/vect/vect-peel-1-epilogue.c
! 3d656bc781503c350329f1ae4b43b9e0  gcc/testsuite/gcc.dg/vect/vect-peel-1-src.c
  0136caaca0e808d39d22da93f0c44972  gcc/testsuite/gcc.dg/vect/vect-peel-1.c
  ebdba3b3186aa00c6ac6c75d9e96bce5  gcc/testsuite/gcc.dg/vect/vect-peel-2-epilogues.c
! c66852d3e17852cda91c4260abf02abb  gcc/testsuite/gcc.dg/vect/vect-peel-2-src.c
  fdf20bcd9d63ed86b9c1fd780850e9d7  gcc/testsuite/gcc.dg/vect/vect-peel-2.c
  6e79d569ab3c1f14a72b34a6c51c47a8  gcc/testsuite/gcc.dg/vect/vect-peel-3-epilogue.c
  c38511a26575a66a65ddd31d3bc229da  gcc/testsuite/gcc.dg/vect/vect-peel-3-src.c
  0efe3f26cf28b22cdf5ac8c1b69a5975  gcc/testsuite/gcc.dg/vect/vect-peel-3.c
  0a0e7b7396e78408cb66cc38d9e15cd1  gcc/testsuite/gcc.dg/vect/vect-peel-4-epilogue.c
! dce179d9539fcb48637e8e9c102da26c  gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c
  39723945c19c26c57adf66d889eabb98  gcc/testsuite/gcc.dg/vect/vect-peel-4.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
  bcf8d4d938304b75cfe5af73ef6b191b  gcc/testsuite/gcc.dg/vect/vect-profile-1.c
  ae4441b04534528916849ebd82e66022  gcc/testsuite/gcc.dg/vect/vect-recip.c
! 36b22a8977e962db02dde3913cf3bfd4  gcc/testsuite/gcc.dg/vect/vect-recurr-1.c
! 8e041c4703813c2549809428eef8d93c  gcc/testsuite/gcc.dg/vect/vect-recurr-2.c
! f77bcd6abf3d7fc181b5c9099b8107e9  gcc/testsuite/gcc.dg/vect/vect-recurr-3.c
! 57fce33d05ece46874b1533bb515f641  gcc/testsuite/gcc.dg/vect/vect-recurr-4.c
! 4fd234c6d904b08de1c1ef5da8a85989  gcc/testsuite/gcc.dg/vect/vect-recurr-5.c
! 341e8cf83af90ee08e2f0e11eabd1b72  gcc/testsuite/gcc.dg/vect/vect-recurr-6.c
  14379418c35bd92a759c557ae5c861c6  gcc/testsuite/gcc.dg/vect/vect-reduc-1.c
  22a0d53785f7d6c47cd23f6847097e73  gcc/testsuite/gcc.dg/vect/vect-reduc-10.c
  5e2267c9823c709c9186c2bae29c4b9e  gcc/testsuite/gcc.dg/vect/vect-reduc-11.c
--- 55679,55781 ----
  0ab3b086afcc70071ac054f303000e2e  gcc/testsuite/gcc.dg/vect/vect-outer-1a.c
  18699033c56c999035df5c64644b00b6  gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c
  9f94afd126beedb642e8c3575f27fc23  gcc/testsuite/gcc.dg/vect/vect-outer-1b.c
! 220b2f731bc707c5878be3f3daedaa76  gcc/testsuite/gcc.dg/vect/vect-outer-2-big-array.c
! f27ede3436bafdd0d50420a0c2ddce40  gcc/testsuite/gcc.dg/vect/vect-outer-2.c
! 21bf549dd550e7f2b4eb146d9fbee95f  gcc/testsuite/gcc.dg/vect/vect-outer-2a-big-array.c
! 564be0172fccec0856e519d0d02be2c0  gcc/testsuite/gcc.dg/vect/vect-outer-2a.c
! 43e3912e8eed7a5df35086932a162e81  gcc/testsuite/gcc.dg/vect/vect-outer-2b.c
! 2b27c29fbb4492238efa79d3526b93bf  gcc/testsuite/gcc.dg/vect/vect-outer-2c-big-array.c
! 6df8514ca23b3a8cd71aae4349dfa9e9  gcc/testsuite/gcc.dg/vect/vect-outer-2c.c
! 345add18210d0ca0fb9e0e2bd8d2bbea  gcc/testsuite/gcc.dg/vect/vect-outer-2d.c
! a419ad853b24f0b40bac72ecb3087438  gcc/testsuite/gcc.dg/vect/vect-outer-3-big-array.c
! 7d3cf68a66c4f3103eadfd1abf212b7b  gcc/testsuite/gcc.dg/vect/vect-outer-3.c
! 89b5a99e347d08f7a9334931d43cf261  gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
! e3ac6b33cea635e9b93448a7fe206523  gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
! a37a262f249a7a555bc634d04d178a0a  gcc/testsuite/gcc.dg/vect/vect-outer-3b.c
! 6ffbbf6685f95e850f47df1dca67fe73  gcc/testsuite/gcc.dg/vect/vect-outer-3c.c
! 0bc2eddbfe32685c5f44c3d887979c58  gcc/testsuite/gcc.dg/vect/vect-outer-4.c
  f205432b6c00d8132e22eb322451e77f  gcc/testsuite/gcc.dg/vect/vect-outer-4a-big-array.c
  8e042f4fd129295abbf377fff9781bfb  gcc/testsuite/gcc.dg/vect/vect-outer-4a.c
  2967c602cfcbfc5ddd73fd5170c6afbf  gcc/testsuite/gcc.dg/vect/vect-outer-4b-big-array.c
  ec640955685882d94ce9bff8c0ce888e  gcc/testsuite/gcc.dg/vect/vect-outer-4b.c
! 1aa8bf2b01e0be71932fadef56ed2ded  gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c
  fb782fd9a255ca9e4869120cb1e1f3fa  gcc/testsuite/gcc.dg/vect/vect-outer-4c.c
! c996857c6c99e635d46a5974b3e30ec0  gcc/testsuite/gcc.dg/vect/vect-outer-4d-big-array.c
! a162b4283d4f0fbe1fbee3a1bdcac35e  gcc/testsuite/gcc.dg/vect/vect-outer-4d.c
! 87a743196d143902e11d83c1bdc3fc9b  gcc/testsuite/gcc.dg/vect/vect-outer-4e.c
! 336bda33b14051b219162c173fe02fdf  gcc/testsuite/gcc.dg/vect/vect-outer-4f.c
! 336bda33b14051b219162c173fe02fdf  gcc/testsuite/gcc.dg/vect/vect-outer-4g.c
  f482a040966c832cdbc85233ea82822d  gcc/testsuite/gcc.dg/vect/vect-outer-4i.c
  d52741b0619d4700e5f522bc6c747e84  gcc/testsuite/gcc.dg/vect/vect-outer-4j.c
! 336bda33b14051b219162c173fe02fdf  gcc/testsuite/gcc.dg/vect/vect-outer-4k.c
! 70a7534cf7fbad47ccd1cde5ed8331c2  gcc/testsuite/gcc.dg/vect/vect-outer-4l.c
  d2be01cd285e7634def82ab531186c1c  gcc/testsuite/gcc.dg/vect/vect-outer-4m-big-array.c
  46fc5de4221f3c5f20edea2a32c67a9c  gcc/testsuite/gcc.dg/vect/vect-outer-4m.c
! 22b9d94a3624b51c4de5a1eb9012e6ab  gcc/testsuite/gcc.dg/vect/vect-outer-5.c
! 1d21579e54c2876446207da93fad46ae  gcc/testsuite/gcc.dg/vect/vect-outer-6.c
  020cd484e6d5a99f7035261976267982  gcc/testsuite/gcc.dg/vect/vect-outer-call-1.c
! d44bd53843f4b2167c039bfc01fea4f5  gcc/testsuite/gcc.dg/vect/vect-outer-fir-big-array.c
! d824b710d8e6bbb3d77bd10c9ba8cd1d  gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb-big-array.c
! 6fd37722f152facaa58c5f40512f7e7e  gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb.c
! 0b0f8d0d0c6ec72f0ce829d6df0d7c7c  gcc/testsuite/gcc.dg/vect/vect-outer-fir.c
  ccf146e115b5e565086e582ba389575e  gcc/testsuite/gcc.dg/vect/vect-outer-pr69720.c
! c990af201219e7d940554fe6fb44db6e  gcc/testsuite/gcc.dg/vect/vect-outer-simd-1.c
! f70d92381ee0118a241e778a4dffa096  gcc/testsuite/gcc.dg/vect/vect-outer-simd-2.c
! bc549db6210e886eabe7f43d64ebe832  gcc/testsuite/gcc.dg/vect/vect-outer-simd-3.c
  5666635e14070a657bf1e668d3ed2801  gcc/testsuite/gcc.dg/vect/vect-outer-slp-1.c
! b3d8b29b0faddb8aa8293048ab8e6b7b  gcc/testsuite/gcc.dg/vect/vect-outer-slp-2.c
! e66fbb704376ad93c35cd99e5ec04dbb  gcc/testsuite/gcc.dg/vect/vect-outer-slp-3.c
! 322ebc8df76e8b04bf243b489908d33f  gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c
! 1f137dd02c6365d629505b54b90f8e8d  gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c
  7ef8875afbd4bb0c3a177da55ea4c13b  gcc/testsuite/gcc.dg/vect/vect-over-widen-10.c
! 635d6c158f1e178eee01b90504bf7a1d  gcc/testsuite/gcc.dg/vect/vect-over-widen-11.c
  50dbec7ec92bebd5ac32c272cc975735  gcc/testsuite/gcc.dg/vect/vect-over-widen-12.c
! 7daf99723b63dff0fe0fc4e0940a0b1f  gcc/testsuite/gcc.dg/vect/vect-over-widen-13.c
  9565534bec36a8672de8f81fc7ecc657  gcc/testsuite/gcc.dg/vect/vect-over-widen-14.c
! aacd317ffd182417451136cb15aa0b4b  gcc/testsuite/gcc.dg/vect/vect-over-widen-15.c
  ea2d5959220bf350f395f5a5200ac918  gcc/testsuite/gcc.dg/vect/vect-over-widen-16.c
! 29f6b80d0353ec707a3de8a2f37f49e6  gcc/testsuite/gcc.dg/vect/vect-over-widen-17.c
! 558ae838b8c445654511a102c44e48e7  gcc/testsuite/gcc.dg/vect/vect-over-widen-18.c
! 5e1b2cd15be072d4f73534254ed4e98d  gcc/testsuite/gcc.dg/vect/vect-over-widen-19.c
! 3cf0b79f9c4aa854294d981c53d2fb4e  gcc/testsuite/gcc.dg/vect/vect-over-widen-2-big-array.c
! 95ad48ce8312cbd04a4e5e7ebf11d524  gcc/testsuite/gcc.dg/vect/vect-over-widen-2.c
! df6be03a986341edb524423bee3ab519  gcc/testsuite/gcc.dg/vect/vect-over-widen-20.c
! 4e4a4b4458c518bcba5d1d4a9ab2be5d  gcc/testsuite/gcc.dg/vect/vect-over-widen-21.c
! c57c1842a06581f12b71658401aeb01d  gcc/testsuite/gcc.dg/vect/vect-over-widen-22.c
  c9a117c798551ca179c9f9b6b278c897  gcc/testsuite/gcc.dg/vect/vect-over-widen-23.c
! c4365b5b5ceaffc4f98e2671faca1299  gcc/testsuite/gcc.dg/vect/vect-over-widen-3-big-array.c
! bf300bc8030985905132e96a3e0b81e3  gcc/testsuite/gcc.dg/vect/vect-over-widen-3.c
! e2a13fc5c63da4053a086d3d56d26bbc  gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c
! bce52b668d44b6a3996ddbac7a4dc246  gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c
! b0d9ccbf12b12ade1bd7dd264b4f2f86  gcc/testsuite/gcc.dg/vect/vect-over-widen-5.c
  3c5da2507fe18e1cda1a449db0cce8d4  gcc/testsuite/gcc.dg/vect/vect-over-widen-6.c
! d36aa803c5a317ff9d12dcd365972e6f  gcc/testsuite/gcc.dg/vect/vect-over-widen-7.c
  c6a855055a2ddc06d0c070822c517a6b  gcc/testsuite/gcc.dg/vect/vect-over-widen-8.c
! 91ed4b85ce9056cc02f283b83c440551  gcc/testsuite/gcc.dg/vect/vect-over-widen-9.c
  d1f79422c142a30dfa519b440be9c4c8  gcc/testsuite/gcc.dg/vect/vect-peel-1-epilogue.c
! 4d0e2dabcacb03b2833c3a26bf773c62  gcc/testsuite/gcc.dg/vect/vect-peel-1-src.c
  0136caaca0e808d39d22da93f0c44972  gcc/testsuite/gcc.dg/vect/vect-peel-1.c
  ebdba3b3186aa00c6ac6c75d9e96bce5  gcc/testsuite/gcc.dg/vect/vect-peel-2-epilogues.c
! 3dda2db973b49904ab5b09be96851ffe  gcc/testsuite/gcc.dg/vect/vect-peel-2-src.c
  fdf20bcd9d63ed86b9c1fd780850e9d7  gcc/testsuite/gcc.dg/vect/vect-peel-2.c
  6e79d569ab3c1f14a72b34a6c51c47a8  gcc/testsuite/gcc.dg/vect/vect-peel-3-epilogue.c
  c38511a26575a66a65ddd31d3bc229da  gcc/testsuite/gcc.dg/vect/vect-peel-3-src.c
  0efe3f26cf28b22cdf5ac8c1b69a5975  gcc/testsuite/gcc.dg/vect/vect-peel-3.c
  0a0e7b7396e78408cb66cc38d9e15cd1  gcc/testsuite/gcc.dg/vect/vect-peel-4-epilogue.c
! e8a9b3f3f510ee57f71acab27a6b2cb0  gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c
  39723945c19c26c57adf66d889eabb98  gcc/testsuite/gcc.dg/vect/vect-peel-4.c
+ e7cd5788f09670057ebf36ffc7961d4b  gcc/testsuite/gcc.dg/vect/vect-pr111779.c
+ 94bda84899e2683692deba382167aa8e  gcc/testsuite/gcc.dg/vect/vect-pr114375.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
  bcf8d4d938304b75cfe5af73ef6b191b  gcc/testsuite/gcc.dg/vect/vect-profile-1.c
  ae4441b04534528916849ebd82e66022  gcc/testsuite/gcc.dg/vect/vect-recip.c
! dcb575790bfcf549452814ca72a66ab3  gcc/testsuite/gcc.dg/vect/vect-recurr-1.c
! cb231639cf786430567a587f38a8ff9f  gcc/testsuite/gcc.dg/vect/vect-recurr-2.c
! 74cc02799216975a5b37b25ce5e59dcb  gcc/testsuite/gcc.dg/vect/vect-recurr-3.c
! 4a8dea4dc7d611321a7a1df3ee9fa8ca  gcc/testsuite/gcc.dg/vect/vect-recurr-4.c
! 9f9e3510ab63ced839b8ee9b73968135  gcc/testsuite/gcc.dg/vect/vect-recurr-5.c
! 1260c41ed0bc0989cd1bae4b33c037b5  gcc/testsuite/gcc.dg/vect/vect-recurr-6.c
  14379418c35bd92a759c557ae5c861c6  gcc/testsuite/gcc.dg/vect/vect-reduc-1.c
  22a0d53785f7d6c47cd23f6847097e73  gcc/testsuite/gcc.dg/vect/vect-reduc-10.c
  5e2267c9823c709c9186c2bae29c4b9e  gcc/testsuite/gcc.dg/vect/vect-reduc-11.c
*************** afaa45daeb6740febad38b149bba00f4  gcc/te
*** 52742,52747 ****
--- 55791,55797 ----
  6dfb966ec0651e1f0bfd61ae96ee63b4  gcc/testsuite/gcc.dg/vect/vect-reduc-7.c
  c0dc4d999a9dd3a90639e4eb6b307722  gcc/testsuite/gcc.dg/vect/vect-reduc-8.c
  deb8ecbd7cdb913c066f7d366640b30b  gcc/testsuite/gcc.dg/vect/vect-reduc-9.c
+ 1c446ff114c972abcfb111d361bd107f  gcc/testsuite/gcc.dg/vect/vect-reduc-cond-sub.c
  78bdeb760d9d97cdc35bbb827cdcf29d  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-1.c
  8766f1e32dd79e5d368ecf7021fdac0f  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-10.c
  85696840ef5d750dde8486e0a7c97463  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-11.c
*************** a79cc962357cf4f42a44efad158b03e6  gcc/te
*** 52764,52780 ****
  8593f0a78707f2d870196d3db8601bb9  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-7.c
  b6aeb022dde69e8ffe448352fd61d3bd  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-8.c
  7f56c49d37576baac4d44a6bd6013359  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-9.c
! f567043538b37b8f96a7639f420ebf5a  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
  4ac381c0ce01711ae42fa052dd047242  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16b.c
  3f79364b1434591b07c839635489cfd3  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16c.c
! 09cdb605f52ab81a54dd719fd89a3a7a  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
! 16c0cede332694c17594c0db794fe874  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
  594729e48529b6e77fd028ff43ccf9cf  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8c.c
! 99ef0bff592fc8c93d39d6320fd21785  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
! 91560a084ba58de64e36331bdaaff187  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
! 55a108c8044de11831df4bc2158d96cc  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
! d725de559ca3f14debda53ef2eba8a0a  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
! b8ee2e05bb744185d8fae3450ec0bf36  gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c
  e6d7cffdfe32895fb6cd02c38d3f7dfa  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-1.c
  b7b984e0456b49a107ab1fead4038420  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-2.c
  1eef69f3a699802657df0415b9475266  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-3.c
--- 55814,55830 ----
  8593f0a78707f2d870196d3db8601bb9  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-7.c
  b6aeb022dde69e8ffe448352fd61d3bd  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-8.c
  7f56c49d37576baac4d44a6bd6013359  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-9.c
! 3ef45f340e865f9be728af78208ca9b8  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
  4ac381c0ce01711ae42fa052dd047242  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16b.c
  3f79364b1434591b07c839635489cfd3  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16c.c
! 24414b57d8dcf06f15a5da531433f327  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
! 9a9ffa344e978bded839b814eb9f0954  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
  594729e48529b6e77fd028ff43ccf9cf  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8c.c
! d2a8a52420449f3f1c8de04704fbf4f6  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
! 6e0eb819de08a01b21d0238df61f357c  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
! d23224d1cac62f68c0975f9cc2906e29  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
! 634525a782e18efb5e88629de6c5bcbf  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
! 55ec9b312052ccb0235403f0877ce3cc  gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c
  e6d7cffdfe32895fb6cd02c38d3f7dfa  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-1.c
  b7b984e0456b49a107ab1fead4038420  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-2.c
  1eef69f3a699802657df0415b9475266  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-3.c
*************** a1590cdef29fb480824603e746a7ab80  gcc/te
*** 52783,52795 ****
  327cfa6e82122e67b62c1edd8d146433  gcc/testsuite/gcc.dg/vect/vect-reduc-mul_2.c
  ab2e4fc58c88f361a248cf81039c8523  gcc/testsuite/gcc.dg/vect/vect-reduc-or_1.c
  37ef75277a4e4b18f485cee67978b961  gcc/testsuite/gcc.dg/vect/vect-reduc-or_2.c
! 729c6124e1b414a76c0afe8206adb1ef  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
! 4a2ef5a0dd32236819ae938864040733  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
  cc5ec47e6e35ed7e43a933a71a367c23  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b.c
! ad1ec846a0a89c36f67055757c305683  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
  bd52e3921544e1711ab57051060881cb  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c.c
! 8d986aa999529eb6d686936450a08d08  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
! d55a8187311d133abb884d506cd1ecef  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
  0286cd7b14fa72279d00b58b4ca208c9  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b.c
  3cdb53796ba9ac625a2f405dd5838c04  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2c.c
  427dcb0ed4cb20c8579fd8447ff07df3  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-3.c
--- 55833,55845 ----
  327cfa6e82122e67b62c1edd8d146433  gcc/testsuite/gcc.dg/vect/vect-reduc-mul_2.c
  ab2e4fc58c88f361a248cf81039c8523  gcc/testsuite/gcc.dg/vect/vect-reduc-or_1.c
  37ef75277a4e4b18f485cee67978b961  gcc/testsuite/gcc.dg/vect/vect-reduc-or_2.c
! 19b1b4f51c69be8db44d07c39954e39d  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
! 1d2a8cce384b3a9613520d55c0c64fe2  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
  cc5ec47e6e35ed7e43a933a71a367c23  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b.c
! 262b9bb9c66afd8e3bffee1ce4813355  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
  bd52e3921544e1711ab57051060881cb  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c.c
! bad512cd591dad2aa801f18fb68f80df  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
! 7a95c2843fa12544aa6d8c99491f65e4  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
  0286cd7b14fa72279d00b58b4ca208c9  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b.c
  3cdb53796ba9ac625a2f405dd5838c04  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2c.c
  427dcb0ed4cb20c8579fd8447ff07df3  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-3.c
*************** addd4dc2a89deb3989a2263e7c62478f  gcc/te
*** 52801,52807 ****
  decd4b8e6c443a882ee4236e3587c34a  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-6.c
  c933e94a38cdeab2e386d79408bfca05  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-7.c
  6bd6b6d724e189632567fe4aa4a15526  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-8.c
! 049b2c5825c339d542bb9b4576b55445  gcc/testsuite/gcc.dg/vect/vect-reduc-sad.c
  448c60f6f652471f6e750c40b1911db8  gcc/testsuite/gcc.dg/vect/vect-rounding-btrunc.c
  4f8bb8467f6af88b25fa98a33ba88860  gcc/testsuite/gcc.dg/vect/vect-rounding-btruncf.c
  208d0572abdf3298bc478e772e258486  gcc/testsuite/gcc.dg/vect/vect-rounding-ceil.c
--- 55851,55857 ----
  decd4b8e6c443a882ee4236e3587c34a  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-6.c
  c933e94a38cdeab2e386d79408bfca05  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-7.c
  6bd6b6d724e189632567fe4aa4a15526  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-8.c
! 8fb6ed5f1cd51ded6a4caf9abf8c6821  gcc/testsuite/gcc.dg/vect/vect-reduc-sad.c
  448c60f6f652471f6e750c40b1911db8  gcc/testsuite/gcc.dg/vect/vect-rounding-btrunc.c
  4f8bb8467f6af88b25fa98a33ba88860  gcc/testsuite/gcc.dg/vect/vect-rounding-btruncf.c
  208d0572abdf3298bc478e772e258486  gcc/testsuite/gcc.dg/vect/vect-rounding-ceil.c
*************** e09d0611313202af9ed401131b732f60  gcc/te
*** 52814,52953 ****
  5d24ff9975021460fe20c032e9e6f33a  gcc/testsuite/gcc.dg/vect/vect-rounding-nearbyintf.c
  0f9bae66d5cefd017d87eed08f3abe1b  gcc/testsuite/gcc.dg/vect/vect-rounding-round.c
  e2c1b1e126604d8abd27603de94e25b3  gcc/testsuite/gcc.dg/vect/vect-rounding-roundf.c
! 0d5ca77d0aff00d6dcf72c6b98e86519  gcc/testsuite/gcc.dg/vect/vect-sdiv-pow2-1.c
! f08b879256c2fc596e95558ea71b10dc  gcc/testsuite/gcc.dg/vect/vect-sdivmod-1.c
! 9011832a762730fdc6c926b601790d67  gcc/testsuite/gcc.dg/vect/vect-shift-1.c
  82796b1dfa62eada3f1dc721021e93b1  gcc/testsuite/gcc.dg/vect/vect-shift-2-big-array.c
  08f10aa885db4bd2be45820edefe8f15  gcc/testsuite/gcc.dg/vect/vect-shift-2.c
! 876c5613dea8cc4a21ab44d45a6cbd51  gcc/testsuite/gcc.dg/vect/vect-shift-3.c
! 86ca35d7517444420f285d4f05d95404  gcc/testsuite/gcc.dg/vect/vect-shift-4.c
  a3abad572643c23c18b4f45e179245a8  gcc/testsuite/gcc.dg/vect/vect-shift-5.c
! c17f2dbf9b52a99ba0a2fd83d8aee24d  gcc/testsuite/gcc.dg/vect/vect-simd-1.c
! c200f6d27bf92250215bfe72973280e3  gcc/testsuite/gcc.dg/vect/vect-simd-10.c
! c54aea0f12061b91febe792090927a42  gcc/testsuite/gcc.dg/vect/vect-simd-11.c
! 752109f488f3df56c171e2c24b41078e  gcc/testsuite/gcc.dg/vect/vect-simd-12.c
! be23045c05cc8bc221e254d4264d3330  gcc/testsuite/gcc.dg/vect/vect-simd-13.c
! 9e20fdc587b38d3a35e1e47a82cde0ad  gcc/testsuite/gcc.dg/vect/vect-simd-14.c
! d97bb14eaa463c7f3e2a94150ca6c42a  gcc/testsuite/gcc.dg/vect/vect-simd-15.c
! c2dd0980ae08fc1379d9d11238f808a7  gcc/testsuite/gcc.dg/vect/vect-simd-16.c
! bad60085e2f9deac920b28ca450bd47c  gcc/testsuite/gcc.dg/vect/vect-simd-17.c
! 8736d67e541bae5eaaa063e6925eb053  gcc/testsuite/gcc.dg/vect/vect-simd-18.c
! 22628e24c555b634f9e0fb675e2c9387  gcc/testsuite/gcc.dg/vect/vect-simd-19.c
  5cd096983154275509f757eca11421cc  gcc/testsuite/gcc.dg/vect/vect-simd-2.c
! 8f11e4ff7260b93c380ec79215dc6905  gcc/testsuite/gcc.dg/vect/vect-simd-20.c
  038a733926c218424972ecbb363de886  gcc/testsuite/gcc.dg/vect/vect-simd-3.c
  3985e66f5c318e1f67337946ef35d269  gcc/testsuite/gcc.dg/vect/vect-simd-4.c
  b706dc8a8f0465d5f4517099eb8a07c4  gcc/testsuite/gcc.dg/vect/vect-simd-5.c
  3803d6cf1206875b7724e70d7b2513af  gcc/testsuite/gcc.dg/vect/vect-simd-6.c
  d1851a7e16c0f7f9c86a65bc1f5dddf4  gcc/testsuite/gcc.dg/vect/vect-simd-7.c
! cd8006ee32a8ec77d460d4c6d8b8b4da  gcc/testsuite/gcc.dg/vect/vect-simd-8.c
! ebf671e29dd7d98b4e2c2e69a4c2385e  gcc/testsuite/gcc.dg/vect/vect-simd-9.c
! 163a3863922c6a5dd0c12afb89f6fb78  gcc/testsuite/gcc.dg/vect/vect-simd-clone-1.c
! bc9723b4294408a734863a909b71712b  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.c
  e15c9b03d8e1d3a7a5ee1c79b19ba163  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.h
  1464349ea26540551dcba3e44d957b36  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10a.c
! 9ed94e5b3a5ac6748ac6014743032981  gcc/testsuite/gcc.dg/vect/vect-simd-clone-11.c
! 20d48fca5f9eb1c9b7913ef5cc2c6c85  gcc/testsuite/gcc.dg/vect/vect-simd-clone-12.c
  d8b650e8ad6c5d4182b48acc7bced0d5  gcc/testsuite/gcc.dg/vect/vect-simd-clone-12a.c
  60af91149238db9ff77ec6956d1e63e8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-13.c
  a81a97f4a56c119cab9c8d7bdf895b21  gcc/testsuite/gcc.dg/vect/vect-simd-clone-14.c
! 5edae6372e7587276b5346987dce1fb9  gcc/testsuite/gcc.dg/vect/vect-simd-clone-15.c
  b0cb1e21e14035b1194c4f3f4e68becc  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16.c
  c36c3ad97cfbf1be43ad8307f7b3eba0  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16b.c
! d5c3e537825f03ee31473b2e33902ca3  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c
! 525f5f7180939d3a63ee7c154328349e  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c
  28bb9727bb68f19dffb44f934f029e2d  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16e.c
! 5f234dcc8c1625b954e63a615aff2aa2  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c
  df907a0bedf6430cc4e5e0086f3ac9ab  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17.c
  30dd07bd633247c311c2eb04d6ecefe8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17b.c
! 239c912ca0d50a3601dceab4e3497575  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c
! 0032df92d6eb481839eeaf1b67a14297  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c
  bf533adb9e5c51763d56908279be7daa  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17e.c
! 46ed78e3b8ad5d2df7f7a6c6b1f31dac  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c
  ee711a645968f35d0d88969943f997df  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18.c
  bb816b62d1cccb292fd79316f6930a5b  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18b.c
! 73528a22e87c01b97bafd4e1c533d7c3  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c
! c16fe6c117819bc16384ac60165d3f0c  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c
  b909da935d057e1e3a2fd43bee466656  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18e.c
! 2a3a123209dffbe92e72508d5f345d9e  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c
! 78a8ef05e5cb8fd8fc34936f429365f1  gcc/testsuite/gcc.dg/vect/vect-simd-clone-2.c
! 90f5d376aa6d955add3f1b1d0030d7b3  gcc/testsuite/gcc.dg/vect/vect-simd-clone-3.c
! d7a3842f772dd42ffcc5f0bc7f110063  gcc/testsuite/gcc.dg/vect/vect-simd-clone-4.c
! e90398c2ab202382d78208e5e6804056  gcc/testsuite/gcc.dg/vect/vect-simd-clone-5.c
! 23c0980905550ebefa630b2c4d63e046  gcc/testsuite/gcc.dg/vect/vect-simd-clone-6.c
! 306ffa24004dc399b10db67824a78811  gcc/testsuite/gcc.dg/vect/vect-simd-clone-7.c
! aac1475c4e6d451886448cb5fcf0d391  gcc/testsuite/gcc.dg/vect/vect-simd-clone-8.c
! 53fc47c084baeaf27ddd1b2fea497ffb  gcc/testsuite/gcc.dg/vect/vect-simd-clone-9.c
! 4f938eaebf48217ae438f73dece6a598  gcc/testsuite/gcc.dg/vect/vect-singleton_1.c
! 843ea11d418a53b8f740fee4a248309d  gcc/testsuite/gcc.dg/vect/vect-strided-a-mult.c
! 86c1f87b2deab38537cbd45ec400e457  gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i2.c
! 20028b1ce8d31fa6a4db4556d25166dd  gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i4.c
! 626aa098a26efd5da99fcc2af6d82d5e  gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-mult.c
! 450f2dc7922e65c7d2ff04e6e8f2796a  gcc/testsuite/gcc.dg/vect/vect-strided-a-u32-mult.c
! 3ee643ee182420e1df54347f5a2693e9  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i2-gap.c
! 88eb848acfc790412f3cd5f2d6d781e1  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap2-big-array.c
! 42ea6dc3d3c1bdc733affab603a216c9  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap2.c
! 6f7c11c840059339eb7907f2dea52bc1  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap7-big-array.c
! cca008a18da9671e47936d74e799dc0f  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap7.c
  3118114a8df7d4b4ae9c90cf0733c437  gcc/testsuite/gcc.dg/vect/vect-strided-epilogue-1.c
! b9ba9677e8ed5dac27c521aec9e672a6  gcc/testsuite/gcc.dg/vect/vect-strided-float.c
! 138c86a3f18bb9ffc54f17bfa4a4171e  gcc/testsuite/gcc.dg/vect/vect-strided-mult-char-ls.c
! 9663bcaf461e96fdfbca7bf6eb7006c0  gcc/testsuite/gcc.dg/vect/vect-strided-mult.c
! a044bfeadaa371c7f2c3c588dec1047a  gcc/testsuite/gcc.dg/vect/vect-strided-same-dr.c
! 2803c1081a87a6b3bbfe8f3173163fba  gcc/testsuite/gcc.dg/vect/vect-strided-shift-1.c
! 25b6de8de2d373a4b9533b23cd9636bf  gcc/testsuite/gcc.dg/vect/vect-strided-store-a-u8-i2.c
! 7893657fb28d41228ef4eea490143c61  gcc/testsuite/gcc.dg/vect/vect-strided-store-u16-i4.c
! dd1ccc0236c625d520b2eddf7851b5b8  gcc/testsuite/gcc.dg/vect/vect-strided-store-u32-i2.c
! 7392e17ca464a784f05c0d70c106fd5e  gcc/testsuite/gcc.dg/vect/vect-strided-store.c
! 3dbd827bdb795daada01b5828ba704d5  gcc/testsuite/gcc.dg/vect/vect-strided-u16-i2.c
! 419b4e75d35d4bd2d27375739815ede3  gcc/testsuite/gcc.dg/vect/vect-strided-u16-i3.c
! 3fb5394ffe2539ddd8e77800bc13bb55  gcc/testsuite/gcc.dg/vect/vect-strided-u16-i4.c
! 30d750e61873eb6056913c388d8d6cd1  gcc/testsuite/gcc.dg/vect/vect-strided-u32-i4.c
! bbddfb6f4982ab7d0b6308609ddcbe3e  gcc/testsuite/gcc.dg/vect/vect-strided-u32-i8.c
! f2b01871037429c6251c9f9f645bbc74  gcc/testsuite/gcc.dg/vect/vect-strided-u32-mult.c
! 1dbe8f0b92c1af733d0464bf5771c94e  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2-gap.c
! 4e61b897f60e4f6d6816d0fb6d859d2d  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2.c
! 7a05071905e4634a00a5a802eddb48fd  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap2-big-array.c
! ec8649274ccde755c3b534616abdabd8  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap2.c
! 35b8b9b7950253d192045fbb53361fb2  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-big-array.c
! 34a9982ee58ea0a910aaf2b1f4c1f6a9  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c
! a59df89b1376b4f03dea39b74f5b0a4b  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4.c
! a635c9f92719f684fc12bdcfa02f7ef5  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c
! 49b5b5246537d2032067a34b59509e15  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7.c
! f7ec09efd18b80ae109a707068f6ee9b  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8.c
  9720e2786d44326ad8aad89ca3093cc4  gcc/testsuite/gcc.dg/vect/vect-tail-nomask-1.c
  77c1344d6e99c9bf6c4f1170c256d122  gcc/testsuite/gcc.dg/vect/vect-version-1.c
  b4f31e51d7444b0dbc43aff2dc3d5426  gcc/testsuite/gcc.dg/vect/vect-version-2.c
! a7957f54ccc3f67952d53b86c4b0094d  gcc/testsuite/gcc.dg/vect/vect-vfa-01.c
! dc4a926156676105cfc990ccc75ee1c9  gcc/testsuite/gcc.dg/vect/vect-vfa-02.c
! b205a7b71517102e7b08e3e3a131aa45  gcc/testsuite/gcc.dg/vect/vect-vfa-03.c
! b117af7e425bb90c38cba81793690371  gcc/testsuite/gcc.dg/vect/vect-vfa-04.c
! cd7a4bdc7cf64fef843150cf5d2a231f  gcc/testsuite/gcc.dg/vect/vect-vfa-slp.c
! 89af6a9edf1e4dbc32f4135fca5d876d  gcc/testsuite/gcc.dg/vect/vect-widen-mult-1.c
  28cfda3bc854be355322e26b1cadc604  gcc/testsuite/gcc.dg/vect/vect-widen-mult-2.c
  c409a040921012445ba61789d66778ab  gcc/testsuite/gcc.dg/vect/vect-widen-mult-3.c
  6928783caf5a4aaf0261975fe55ca576  gcc/testsuite/gcc.dg/vect/vect-widen-mult-4.c
! ffd14c68db695ee2d94e2e4dab1afda1  gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c
! 4874ad14f2d9fcc8d3e7f45948873f64  gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c
! c1264f0932d2664e5ba13b05250d9b06  gcc/testsuite/gcc.dg/vect/vect-widen-mult-extern-1.c
! d9c31356eaabcb1cbe558cfa2f8b8620  gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c
! 2cd5da15f3e0eb4c70b229131fec67b3  gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c
! e37114c00a62426d505fc15d930c8a56  gcc/testsuite/gcc.dg/vect/vect-widen-mult-s16.c
! f4e2955019f363ba0fe4d3cd32976bca  gcc/testsuite/gcc.dg/vect/vect-widen-mult-s8.c
  4d8384a6755a406e8a0acfa99c50425e  gcc/testsuite/gcc.dg/vect/vect-widen-mult-sum.c
! 7f014ae96e40adfba8a01cf3d2364450  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c
! ae8319f4a742309edd9e0a1998fad62d  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-s16-s32.c
! 665c4fcad5b806aa3fc8ff6d12083262  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-u32.c
! ab5379404640e60b68283cea3a87ea22  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8.c
! 4f917a3765e67ec61b0fa76606cfb5ca  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s16.c
! fbf164f2875819f557043a2d78017764  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c
! abe3c6bc74fd9730499cd8e54e143935  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c
! 8146ba6466499582165bf09d96598f47  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c
! c6a3442e5a767e5d00af1789454bfc8a  gcc/testsuite/gcc.dg/vect/vect.exp
! 9dfff9b6a28d5e65dca4073934514d5e  gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c
  3613af6098a597772fd1b7e4dd37a0f3  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c
  431e29e277cc621ccb31b18bba96d195  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c
! a0d5aba875c723e7d5076cfe7bee0a75  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
  fd3bcd055bec50020f362b17a4410e68  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c
  deacf2b346fc9032e20669526a1ad31d  gcc/testsuite/gcc.dg/vector-1.c
  58b3ba1d4334276fa57ab63f07c9918b  gcc/testsuite/gcc.dg/vector-shift-2.c
--- 55864,56005 ----
  5d24ff9975021460fe20c032e9e6f33a  gcc/testsuite/gcc.dg/vect/vect-rounding-nearbyintf.c
  0f9bae66d5cefd017d87eed08f3abe1b  gcc/testsuite/gcc.dg/vect/vect-rounding-round.c
  e2c1b1e126604d8abd27603de94e25b3  gcc/testsuite/gcc.dg/vect/vect-rounding-roundf.c
! 9165bd7fc0ed20274b617efd2bed28eb  gcc/testsuite/gcc.dg/vect/vect-sdiv-pow2-1.c
! cfa8fc9b80bd9eebe3d4cc410769556e  gcc/testsuite/gcc.dg/vect/vect-sdivmod-1.c
! 3ad6e8864726bb33d18d1f129d077740  gcc/testsuite/gcc.dg/vect/vect-shift-1.c
  82796b1dfa62eada3f1dc721021e93b1  gcc/testsuite/gcc.dg/vect/vect-shift-2-big-array.c
  08f10aa885db4bd2be45820edefe8f15  gcc/testsuite/gcc.dg/vect/vect-shift-2.c
! 0e87c62ec1138a065b23d92f1ca65e21  gcc/testsuite/gcc.dg/vect/vect-shift-3.c
! ec4d4d3832cff2b41a7852de4562eeb8  gcc/testsuite/gcc.dg/vect/vect-shift-4.c
  a3abad572643c23c18b4f45e179245a8  gcc/testsuite/gcc.dg/vect/vect-shift-5.c
! 04ed6964c024e8091e3e464aa942ec30  gcc/testsuite/gcc.dg/vect/vect-simd-1.c
! 7718cc15eed38252b4c17e6c0115febd  gcc/testsuite/gcc.dg/vect/vect-simd-10.c
! ffc85ff7d823c4bfc0406924f8353c07  gcc/testsuite/gcc.dg/vect/vect-simd-11.c
! b25531e741cc599061246473ff81bad4  gcc/testsuite/gcc.dg/vect/vect-simd-12.c
! a34b06a59557760433511763487dcda3  gcc/testsuite/gcc.dg/vect/vect-simd-13.c
! 3378509a88f49ac01bc0d60b7d8eadfb  gcc/testsuite/gcc.dg/vect/vect-simd-14.c
! b57662fe458b2f5a658f54aecd4a83cd  gcc/testsuite/gcc.dg/vect/vect-simd-15.c
! 8707b1c40634f643fff4a2fc4cb40876  gcc/testsuite/gcc.dg/vect/vect-simd-16.c
! 661b357faf625634d936116c5e39fb62  gcc/testsuite/gcc.dg/vect/vect-simd-17.c
! 8409def4ec7a4b810e93868422c3d326  gcc/testsuite/gcc.dg/vect/vect-simd-18.c
! e16254e14a594ce75776c05c1637f75e  gcc/testsuite/gcc.dg/vect/vect-simd-19.c
  5cd096983154275509f757eca11421cc  gcc/testsuite/gcc.dg/vect/vect-simd-2.c
! cde4eef896dbed257a633ea900a247fd  gcc/testsuite/gcc.dg/vect/vect-simd-20.c
  038a733926c218424972ecbb363de886  gcc/testsuite/gcc.dg/vect/vect-simd-3.c
  3985e66f5c318e1f67337946ef35d269  gcc/testsuite/gcc.dg/vect/vect-simd-4.c
  b706dc8a8f0465d5f4517099eb8a07c4  gcc/testsuite/gcc.dg/vect/vect-simd-5.c
  3803d6cf1206875b7724e70d7b2513af  gcc/testsuite/gcc.dg/vect/vect-simd-6.c
  d1851a7e16c0f7f9c86a65bc1f5dddf4  gcc/testsuite/gcc.dg/vect/vect-simd-7.c
! 21be74613930b92cbf372416cd77f848  gcc/testsuite/gcc.dg/vect/vect-simd-8.c
! 6b7405138e36e755404a29eba2f83a1a  gcc/testsuite/gcc.dg/vect/vect-simd-9.c
! ffb3e85bd5bce5e2c665cba40dfb3b4a  gcc/testsuite/gcc.dg/vect/vect-simd-clone-1.c
! 4242097d5c9b6e6bd99aa913a51d23bb  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.c
  e15c9b03d8e1d3a7a5ee1c79b19ba163  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.h
  1464349ea26540551dcba3e44d957b36  gcc/testsuite/gcc.dg/vect/vect-simd-clone-10a.c
! 6d76780106b81203ac4163e17b2be021  gcc/testsuite/gcc.dg/vect/vect-simd-clone-11.c
! 3b62dd0080dc10835b2f1e1852ba408a  gcc/testsuite/gcc.dg/vect/vect-simd-clone-12.c
  d8b650e8ad6c5d4182b48acc7bced0d5  gcc/testsuite/gcc.dg/vect/vect-simd-clone-12a.c
  60af91149238db9ff77ec6956d1e63e8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-13.c
  a81a97f4a56c119cab9c8d7bdf895b21  gcc/testsuite/gcc.dg/vect/vect-simd-clone-14.c
! 17860616151d9700d7693707e8b6be2b  gcc/testsuite/gcc.dg/vect/vect-simd-clone-15.c
  b0cb1e21e14035b1194c4f3f4e68becc  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16.c
  c36c3ad97cfbf1be43ad8307f7b3eba0  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16b.c
! d067a3fc6a32207c57892dcdd8c33d07  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c
! f1599ed5874eacd70fbd053be0144191  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c
  28bb9727bb68f19dffb44f934f029e2d  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16e.c
! 89cfdc5cd10df440364c82e4b87fe77f  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c
  df907a0bedf6430cc4e5e0086f3ac9ab  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17.c
  30dd07bd633247c311c2eb04d6ecefe8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17b.c
! b18a2f417c8b7656e03ece0608fbb689  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c
! 2f79bfc9cc94a1eeb5037ea7481ce342  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c
  bf533adb9e5c51763d56908279be7daa  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17e.c
! 49be1f06ece13358e29daf42d6a6b2ea  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c
  ee711a645968f35d0d88969943f997df  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18.c
  bb816b62d1cccb292fd79316f6930a5b  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18b.c
! f2293ee13696a68e51fc46fe685a2cbe  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c
! 8b31e3c22776513fd3b23d424fe40b60  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c
  b909da935d057e1e3a2fd43bee466656  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18e.c
! 928fe52f28fcd29573710c999b9575ca  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c
! 62cdfa46df8c5da5a3da34d4c0bd5104  gcc/testsuite/gcc.dg/vect/vect-simd-clone-19.c
! fcf52e93fe21db4ebf8416abf92ac7cb  gcc/testsuite/gcc.dg/vect/vect-simd-clone-2.c
! 52c293a078d14b6ebd3772f31c059a12  gcc/testsuite/gcc.dg/vect/vect-simd-clone-20.c
! cff83413760df8eec4e9c7187ee7ada9  gcc/testsuite/gcc.dg/vect/vect-simd-clone-3.c
! 0d3326ce976d42f0a96b625fa721ab32  gcc/testsuite/gcc.dg/vect/vect-simd-clone-4.c
! bc0f68b226839ed569e371de527479fe  gcc/testsuite/gcc.dg/vect/vect-simd-clone-5.c
! 66fc66f04a047af2d301a48f56ae79da  gcc/testsuite/gcc.dg/vect/vect-simd-clone-6.c
! e0f38a9b3ec0f742abed22cd672aa982  gcc/testsuite/gcc.dg/vect/vect-simd-clone-7.c
! c3250637f281a41b33f82d785f31ae71  gcc/testsuite/gcc.dg/vect/vect-simd-clone-8.c
! 068515d98cb76263014fe2d1f01ac267  gcc/testsuite/gcc.dg/vect/vect-simd-clone-9.c
! 6e90abcda205699fc9e9fbcaeb293a8e  gcc/testsuite/gcc.dg/vect/vect-singleton_1.c
! c007274fcf98c292ac6a9827d7cc665e  gcc/testsuite/gcc.dg/vect/vect-strided-a-mult.c
! 0ce7615b1fe7bfcc4f7eec3834127876  gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i2.c
! e13b192d2f008bcd028c8766a69cea49  gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i4.c
! d28a7367f3c510191681597f734ad224  gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-mult.c
! 985dc10fa18ebf779632be9f683e8ce0  gcc/testsuite/gcc.dg/vect/vect-strided-a-u32-mult.c
! 06038f5e2411aeee5e8e062b023d5fa6  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i2-gap.c
! 023e1670de6a9df7d442fccfbfbd2325  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap2-big-array.c
! a16a3edba1bc9483effc5099dea32336  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap2.c
! 452dc99661cc66727c5cf682b0104804  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap7-big-array.c
! 0d358893d2c2a270b47e9ea06bc5c173  gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap7.c
  3118114a8df7d4b4ae9c90cf0733c437  gcc/testsuite/gcc.dg/vect/vect-strided-epilogue-1.c
! ec7abf5433fe7a4d25c7d88db3faf154  gcc/testsuite/gcc.dg/vect/vect-strided-float.c
! 88bb1e2c5af74b609324db0889ee3600  gcc/testsuite/gcc.dg/vect/vect-strided-mult-char-ls.c
! 0c54a9e6f4258b66bd35b94b41c54039  gcc/testsuite/gcc.dg/vect/vect-strided-mult.c
! efcb78a71c7c1edd0fb531872804a98c  gcc/testsuite/gcc.dg/vect/vect-strided-same-dr.c
! a3dff593b2bdb8a7c374ffd45187f424  gcc/testsuite/gcc.dg/vect/vect-strided-shift-1.c
! aa3aa2bf1f30f13cc5af537d2fdabc16  gcc/testsuite/gcc.dg/vect/vect-strided-store-a-u8-i2.c
! e61df4401d7bc38e821df0a90628411d  gcc/testsuite/gcc.dg/vect/vect-strided-store-u16-i4.c
! be473bc359cc2ddfb9605187609eff3b  gcc/testsuite/gcc.dg/vect/vect-strided-store-u32-i2.c
! f4e9cf3fe8a2d43414798aa6537a4f05  gcc/testsuite/gcc.dg/vect/vect-strided-store.c
! 036a4bcf317a1d5f21696c1564eecf8a  gcc/testsuite/gcc.dg/vect/vect-strided-u16-i2.c
! bf83cd334962f09526df75adfb10bd7a  gcc/testsuite/gcc.dg/vect/vect-strided-u16-i3.c
! a9b5b12947b0612ec869ef5b7a253e9f  gcc/testsuite/gcc.dg/vect/vect-strided-u16-i4.c
! 80a4856e374109c7b217de8df62526ac  gcc/testsuite/gcc.dg/vect/vect-strided-u32-i4.c
! 9105e0f40e9dd6e25b8145ca91a562c2  gcc/testsuite/gcc.dg/vect/vect-strided-u32-i8.c
! f79d10bd2cac3c5e75b39a319f0b14a9  gcc/testsuite/gcc.dg/vect/vect-strided-u32-mult.c
! e29c88eed51ce34f711e093b9826353f  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2-gap.c
! 239988ad96fa98dcac070fc121c32b1a  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2.c
! cb18bb4f57390e7156e0408add2faf67  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap2-big-array.c
! faa0fc90d089ce7c2ce110e4203bcbe4  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap2.c
! 43bc7b3caebb933dd6b507242609d999  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-big-array.c
! 713a77076b0bb6306ea13be8eb244b11  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c
! 9cc4267b4b9347e3e79351da01e87f83  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4.c
! 5105b009742c9197d706313c7de591f6  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c
! bba9d03b50c8759a601ef1eb6bce4583  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7.c
! 5350a5a4b31a515a6c8842252ff390bc  gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8.c
  9720e2786d44326ad8aad89ca3093cc4  gcc/testsuite/gcc.dg/vect/vect-tail-nomask-1.c
  77c1344d6e99c9bf6c4f1170c256d122  gcc/testsuite/gcc.dg/vect/vect-version-1.c
  b4f31e51d7444b0dbc43aff2dc3d5426  gcc/testsuite/gcc.dg/vect/vect-version-2.c
! 6bf67c113cd4d93ff129dbdce29b1131  gcc/testsuite/gcc.dg/vect/vect-vfa-01.c
! 71ea12b968d7038586387d743341480c  gcc/testsuite/gcc.dg/vect/vect-vfa-02.c
! 1879868a17acde87b81af3921971f0c9  gcc/testsuite/gcc.dg/vect/vect-vfa-03.c
! 750f54139cf9c4d039d2edcc9404e64f  gcc/testsuite/gcc.dg/vect/vect-vfa-04.c
! 48bc35a9ff846e26372eb1f3e55ceed8  gcc/testsuite/gcc.dg/vect/vect-vfa-slp.c
! 1d9282b5020df721a6a17ee6e81d9d54  gcc/testsuite/gcc.dg/vect/vect-widen-mult-1.c
  28cfda3bc854be355322e26b1cadc604  gcc/testsuite/gcc.dg/vect/vect-widen-mult-2.c
  c409a040921012445ba61789d66778ab  gcc/testsuite/gcc.dg/vect/vect-widen-mult-3.c
  6928783caf5a4aaf0261975fe55ca576  gcc/testsuite/gcc.dg/vect/vect-widen-mult-4.c
! b8d465b886de8f059bcf419385dfa565  gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c
! 6d5435b75eea3429d44a61b22d96dea7  gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c
! 9297df8190d814d4a7e82544e483ca78  gcc/testsuite/gcc.dg/vect/vect-widen-mult-extern-1.c
! 611f9bbbf3e4c95565b2232c8fbc80be  gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c
! 1f445f4e00fabf096f808f689b53397e  gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c
! 0ca4cfa6145afbdc4b13e3ca575fe327  gcc/testsuite/gcc.dg/vect/vect-widen-mult-s16.c
! ef6123bca5b0e71a26d4094e2c7ab7e2  gcc/testsuite/gcc.dg/vect/vect-widen-mult-s8.c
  4d8384a6755a406e8a0acfa99c50425e  gcc/testsuite/gcc.dg/vect/vect-widen-mult-sum.c
! 821f75c53b8b7fc52d6a748921350808  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c
! 4f6079115944850e56fe66afdfbe3762  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-s16-s32.c
! 72c5fffdc3e8d1e48e931707a796b379  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-u32.c
! 9d064300c8131a8b12d42e840a0218ef  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8.c
! 3f152091dccbd974d6c65fe6f1a3e9eb  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s16.c
! 57a16ece134220af9fcef6f72f220c2d  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c
! 5b67f59c833986f08bd4b40c60f69162  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c
! aa708d3594fce40d90cd549c09eec048  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c
! dd8baf2aced3ae29fb8cc391370d7008  gcc/testsuite/gcc.dg/vect/vect.exp
! 37bf824afb81780391918cb999b4db03  gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c
  3613af6098a597772fd1b7e4dd37a0f3  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c
  431e29e277cc621ccb31b18bba96d195  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c
! c5b19ce70155bcbe93c87a793658fc0e  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
  fd3bcd055bec50020f362b17a4410e68  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c
  deacf2b346fc9032e20669526a1ad31d  gcc/testsuite/gcc.dg/vector-1.c
  58b3ba1d4334276fa57ab63f07c9918b  gcc/testsuite/gcc.dg/vector-shift-2.c
*************** cef7070b381518da6b1a5af1d304f9f6  gcc/te
*** 52981,52987 ****
  65032f980ed26d35986016868f58f5fb  gcc/testsuite/gcc.dg/visibility-b.c
  3914edf5bc61ae4a7f8bfe7daf7a917f  gcc/testsuite/gcc.dg/visibility-c.c
  86ff2e0220006b62079262b0a60c8325  gcc/testsuite/gcc.dg/visibility-d.c
! d68db98b1301eb74542b13f0067ac00e  gcc/testsuite/gcc.dg/vla-1.c
  3a3971b57d9b9c24f86e7ec58832e1cc  gcc/testsuite/gcc.dg/vla-10.c
  156d8c0cb6e36f02ea60ab74130dbbb3  gcc/testsuite/gcc.dg/vla-11.c
  6279bb892b45c144be8f0f592f512f57  gcc/testsuite/gcc.dg/vla-12.c
--- 56033,56039 ----
  65032f980ed26d35986016868f58f5fb  gcc/testsuite/gcc.dg/visibility-b.c
  3914edf5bc61ae4a7f8bfe7daf7a917f  gcc/testsuite/gcc.dg/visibility-c.c
  86ff2e0220006b62079262b0a60c8325  gcc/testsuite/gcc.dg/visibility-d.c
! 2258ff3f0170625e89bd91bc89305caf  gcc/testsuite/gcc.dg/vla-1.c
  3a3971b57d9b9c24f86e7ec58832e1cc  gcc/testsuite/gcc.dg/vla-10.c
  156d8c0cb6e36f02ea60ab74130dbbb3  gcc/testsuite/gcc.dg/vla-11.c
  6279bb892b45c144be8f0f592f512f57  gcc/testsuite/gcc.dg/vla-12.c
*************** c2396edad56315ee8a5af0140ad73bf7  gcc/te
*** 52999,53004 ****
--- 56051,56057 ----
  4068a8e32bdde55681bfb2565c369a07  gcc/testsuite/gcc.dg/vla-23.c
  7aaf234190ed1dd3fc3d5a6df2fead19  gcc/testsuite/gcc.dg/vla-24.c
  f736aed607e0d390f1d8538182aeae6e  gcc/testsuite/gcc.dg/vla-25.c
+ 897d6b1cdf0339d94452b4e4931fbe96  gcc/testsuite/gcc.dg/vla-26.c
  254a505e7349b8680ce45be17119c59c  gcc/testsuite/gcc.dg/vla-3.c
  53ed8f0dceef99c808255ae9514abde2  gcc/testsuite/gcc.dg/vla-4.c
  2ba0b2394f27a6df280beeaa565ae148  gcc/testsuite/gcc.dg/vla-5.c
*************** b74b4229263d70abbf112c2c622f29ba  gcc/te
*** 53150,53156 ****
  5cc01078c1f3f451644a44dfdc807444  gcc/testsuite/gcc.dg/vmx/varargs-6.c
  441584a435c20e33e9ba2840da79de7b  gcc/testsuite/gcc.dg/vmx/varargs-7.c
  88d7e6b1c915da50092f2f05e8403f00  gcc/testsuite/gcc.dg/vmx/vec-set.c
! d413349126c005f42e9d17a4c253a8dd  gcc/testsuite/gcc.dg/vmx/vmx.exp
  7b36f93de20205be4944182fe8222120  gcc/testsuite/gcc.dg/vmx/vsums.c
  0e39fb03e625fd0928ac3568284946cb  gcc/testsuite/gcc.dg/vmx/x-01.c
  780491d8a6964b34313eb871098c1ec6  gcc/testsuite/gcc.dg/vmx/x-02.c
--- 56203,56209 ----
  5cc01078c1f3f451644a44dfdc807444  gcc/testsuite/gcc.dg/vmx/varargs-6.c
  441584a435c20e33e9ba2840da79de7b  gcc/testsuite/gcc.dg/vmx/varargs-7.c
  88d7e6b1c915da50092f2f05e8403f00  gcc/testsuite/gcc.dg/vmx/vec-set.c
! 829608616605c69e60d580a1a7064ec5  gcc/testsuite/gcc.dg/vmx/vmx.exp
  7b36f93de20205be4944182fe8222120  gcc/testsuite/gcc.dg/vmx/vsums.c
  0e39fb03e625fd0928ac3568284946cb  gcc/testsuite/gcc.dg/vmx/x-01.c
  780491d8a6964b34313eb871098c1ec6  gcc/testsuite/gcc.dg/vmx/x-02.c
*************** c2a72555b847a160fe0e6ed226d4d97d  gcc/te
*** 53180,53186 ****
  f5b5cb2b526a46cc84be22a60b28910d  gcc/testsuite/gcc.dg/vshift-7.c
  e24f2248b6dfe2458324a1f859ecb3c3  gcc/testsuite/gcc.dg/vxworks/initpri1.c
  082cdb5ff1a15b2384040533828cac32  gcc/testsuite/gcc.dg/vxworks/initpri2.c
! 613dad4294841831abf4273676390e8b  gcc/testsuite/gcc.dg/vxworks/vxworks.exp
  807831bd928d8bca1ad6f704a5f898aa  gcc/testsuite/gcc.dg/warn-1.c
  707e0da2129d4bb332c0bf10ea621989  gcc/testsuite/gcc.dg/warn-abs-1.c
  be8f7b50176d3cc112e9b45dfbff569c  gcc/testsuite/gcc.dg/warn-addr-cmp.c
--- 56233,56239 ----
  f5b5cb2b526a46cc84be22a60b28910d  gcc/testsuite/gcc.dg/vshift-7.c
  e24f2248b6dfe2458324a1f859ecb3c3  gcc/testsuite/gcc.dg/vxworks/initpri1.c
  082cdb5ff1a15b2384040533828cac32  gcc/testsuite/gcc.dg/vxworks/initpri2.c
! 92eb63883cc2dcea104fb54773efc430  gcc/testsuite/gcc.dg/vxworks/vxworks.exp
  807831bd928d8bca1ad6f704a5f898aa  gcc/testsuite/gcc.dg/warn-1.c
  707e0da2129d4bb332c0bf10ea621989  gcc/testsuite/gcc.dg/warn-abs-1.c
  be8f7b50176d3cc112e9b45dfbff569c  gcc/testsuite/gcc.dg/warn-addr-cmp.c
*************** b7dc9ca29b0c2fb0c11b45350fbe20ac  gcc/te
*** 53216,53222 ****
  bbde9e22b1b903e5ff4a277a65a1cb04  gcc/testsuite/gcc.dg/weak/weak-7.c
  ef4ea7d4216e9123244c1d14e75ca376  gcc/testsuite/gcc.dg/weak/weak-8.c
  df7f481c6f796831760bd5209df6243d  gcc/testsuite/gcc.dg/weak/weak-9.c
! 018305c81e1ab48a6ce45d3e548c9bb9  gcc/testsuite/gcc.dg/weak/weak.exp
  4f8d055b663cb38e2bbb352f1cb7a53c  gcc/testsuite/gcc.dg/webizer.c
  b73fb0ba5d6e226781f1b052bc3742c5  gcc/testsuite/gcc.dg/wide-shift-128.c
  81a04bf47a86380caff11ddcb8294ecc  gcc/testsuite/gcc.dg/wide-shift-64.c
--- 56269,56275 ----
  bbde9e22b1b903e5ff4a277a65a1cb04  gcc/testsuite/gcc.dg/weak/weak-7.c
  ef4ea7d4216e9123244c1d14e75ca376  gcc/testsuite/gcc.dg/weak/weak-8.c
  df7f481c6f796831760bd5209df6243d  gcc/testsuite/gcc.dg/weak/weak-9.c
! 45236285aa267ad856171f6ab9cb3bc5  gcc/testsuite/gcc.dg/weak/weak.exp
  4f8d055b663cb38e2bbb352f1cb7a53c  gcc/testsuite/gcc.dg/webizer.c
  b73fb0ba5d6e226781f1b052bc3742c5  gcc/testsuite/gcc.dg/wide-shift-128.c
  81a04bf47a86380caff11ddcb8294ecc  gcc/testsuite/gcc.dg/wide-shift-64.c
*************** c34b827a7f28759ebf3d5ebc26e975b8  gcc/te
*** 53251,53265 ****
  ce7181a37e4abd0831a2d47b7a9a11f2  gcc/testsuite/gcc.dg/zero_bits_compound-2.c
  3818016c4a025396f38ca3c9bd0c1f47  gcc/testsuite/gcc.dg/zero_sign_ext_test.c
  4e040b1868690b5543136a52a2f030b3  gcc/testsuite/gcc.misc-tests/acker1.c
! da4f30cbb9618847df5c0a2527d4a277  gcc/testsuite/gcc.misc-tests/acker1.exp
  77cec6e0fd95e9ae200e495071d1ae9a  gcc/testsuite/gcc.misc-tests/arm-isr.c
! 279014f3f0c11d988ce5db47ac16b41b  gcc/testsuite/gcc.misc-tests/arm-isr.exp
  69ee82e02b642cb6edfac2cec4b99756  gcc/testsuite/gcc.misc-tests/bprob-1.c
  769b91c7738037eb489394524ae54796  gcc/testsuite/gcc.misc-tests/bprob-2.c
! 1fe791d6e970d9bcec8808f52ebfa4ec  gcc/testsuite/gcc.misc-tests/bprob.exp
! cebf681185f2b495aacead3047b18d8d  gcc/testsuite/gcc.misc-tests/dectest.exp
  a11bded9860644075434da1f07b7f1bf  gcc/testsuite/gcc.misc-tests/dhry.c
! cd5160d924d96c5f1ee74e165004eebf  gcc/testsuite/gcc.misc-tests/dhry.exp
  850c45b3c3b492adf09b115c0d2d2286  gcc/testsuite/gcc.misc-tests/dhry.h
  02aa6ab9e158e9fa6e94768d75bd86cb  gcc/testsuite/gcc.misc-tests/gcov-1.c
  44d73a2d21081bbe1b4c64084331ec77  gcc/testsuite/gcc.misc-tests/gcov-10.c
--- 56304,56318 ----
  ce7181a37e4abd0831a2d47b7a9a11f2  gcc/testsuite/gcc.dg/zero_bits_compound-2.c
  3818016c4a025396f38ca3c9bd0c1f47  gcc/testsuite/gcc.dg/zero_sign_ext_test.c
  4e040b1868690b5543136a52a2f030b3  gcc/testsuite/gcc.misc-tests/acker1.c
! 3d1fd5444e9fb8105fded44265d64f32  gcc/testsuite/gcc.misc-tests/acker1.exp
  77cec6e0fd95e9ae200e495071d1ae9a  gcc/testsuite/gcc.misc-tests/arm-isr.c
! 2a1e3ad1d2d6911f166c4f1bc1070a87  gcc/testsuite/gcc.misc-tests/arm-isr.exp
  69ee82e02b642cb6edfac2cec4b99756  gcc/testsuite/gcc.misc-tests/bprob-1.c
  769b91c7738037eb489394524ae54796  gcc/testsuite/gcc.misc-tests/bprob-2.c
! a4c2569236fd931492a9cb81ed60249c  gcc/testsuite/gcc.misc-tests/bprob.exp
! eb7af35b2b6ca86f8df129ac94e8fb7d  gcc/testsuite/gcc.misc-tests/dectest.exp
  a11bded9860644075434da1f07b7f1bf  gcc/testsuite/gcc.misc-tests/dhry.c
! 8aea0b29276d8b18f79c4fd30ed6a9e7  gcc/testsuite/gcc.misc-tests/dhry.exp
  850c45b3c3b492adf09b115c0d2d2286  gcc/testsuite/gcc.misc-tests/dhry.h
  02aa6ab9e158e9fa6e94768d75bd86cb  gcc/testsuite/gcc.misc-tests/gcov-1.c
  44d73a2d21081bbe1b4c64084331ec77  gcc/testsuite/gcc.misc-tests/gcov-10.c
*************** c400cc0e03e4317110d582fdba04ace0  gcc/te
*** 53267,53279 ****
  0c8ac613f2d2a35706fd7c8b7b16a1a9  gcc/testsuite/gcc.misc-tests/gcov-11.c
  eee8f00567cf54ebbed65a4f71c7d314  gcc/testsuite/gcc.misc-tests/gcov-12.c
  1aac355a176cb811b951b73ea58ef6c7  gcc/testsuite/gcc.misc-tests/gcov-13.c
! 91c5005b1b38df67c1f35c1fa5ed34b7  gcc/testsuite/gcc.misc-tests/gcov-14.c
  a7fcf55fbb07ad31be551305d543313e  gcc/testsuite/gcc.misc-tests/gcov-15.c
  a19cb340410a6420dbacef02fec4bcd8  gcc/testsuite/gcc.misc-tests/gcov-16.c
  90ae2485842728f278e979faa45ad805  gcc/testsuite/gcc.misc-tests/gcov-17.c
  70c6f6b4d1974332d8e93bc9a3457028  gcc/testsuite/gcc.misc-tests/gcov-18.c
  26d3ee0bab7bc8a86b5239d64728101d  gcc/testsuite/gcc.misc-tests/gcov-1a.c
  7a8ab4c1f62f1462575863cae613404b  gcc/testsuite/gcc.misc-tests/gcov-2.c
  c71219d95b56b360f999cbe8dd8b9109  gcc/testsuite/gcc.misc-tests/gcov-3.c
  5031c27c248f452d2706615b860fc3f3  gcc/testsuite/gcc.misc-tests/gcov-4.c
  7d9bedbf8aa7d7ba724d6149406ba528  gcc/testsuite/gcc.misc-tests/gcov-4b.c
--- 56320,56338 ----
  0c8ac613f2d2a35706fd7c8b7b16a1a9  gcc/testsuite/gcc.misc-tests/gcov-11.c
  eee8f00567cf54ebbed65a4f71c7d314  gcc/testsuite/gcc.misc-tests/gcov-12.c
  1aac355a176cb811b951b73ea58ef6c7  gcc/testsuite/gcc.misc-tests/gcov-13.c
! a95cd74daf7751d37ad0e80b754f3ef8  gcc/testsuite/gcc.misc-tests/gcov-14.c
  a7fcf55fbb07ad31be551305d543313e  gcc/testsuite/gcc.misc-tests/gcov-15.c
  a19cb340410a6420dbacef02fec4bcd8  gcc/testsuite/gcc.misc-tests/gcov-16.c
  90ae2485842728f278e979faa45ad805  gcc/testsuite/gcc.misc-tests/gcov-17.c
  70c6f6b4d1974332d8e93bc9a3457028  gcc/testsuite/gcc.misc-tests/gcov-18.c
+ a1241f25f3288ad9f494cee117c43506  gcc/testsuite/gcc.misc-tests/gcov-19.c
  26d3ee0bab7bc8a86b5239d64728101d  gcc/testsuite/gcc.misc-tests/gcov-1a.c
  7a8ab4c1f62f1462575863cae613404b  gcc/testsuite/gcc.misc-tests/gcov-2.c
+ d3e578d8bc312db32a2f399db7f8fd84  gcc/testsuite/gcc.misc-tests/gcov-20.c
+ 7cbc5cb8d89f137fee58e670e9b96f48  gcc/testsuite/gcc.misc-tests/gcov-21.c
+ 4bf90ad9ab4acffa656c2a2cf8a10265  gcc/testsuite/gcc.misc-tests/gcov-22.c
+ 555cc131a69f9faba7b1ac0ae339c2eb  gcc/testsuite/gcc.misc-tests/gcov-23.c
+ 632a8cbb04146bcb82659d2a9419f3cd  gcc/testsuite/gcc.misc-tests/gcov-24.c
  c71219d95b56b360f999cbe8dd8b9109  gcc/testsuite/gcc.misc-tests/gcov-3.c
  5031c27c248f452d2706615b860fc3f3  gcc/testsuite/gcc.misc-tests/gcov-4.c
  7d9bedbf8aa7d7ba724d6149406ba528  gcc/testsuite/gcc.misc-tests/gcov-4b.c
*************** c71219d95b56b360f999cbe8dd8b9109  gcc/te
*** 53282,53287 ****
--- 56341,56349 ----
  5324617bdeb58cd08b3e16f20f9e3c50  gcc/testsuite/gcc.misc-tests/gcov-7.c
  cd07c3504059efe7fb7533158e061864  gcc/testsuite/gcc.misc-tests/gcov-8.c
  c80d5a6473bfd6e4b6e87a183c6d05b5  gcc/testsuite/gcc.misc-tests/gcov-9.c
+ 2e9ddc8005d8dbaf76953e1c6efcc168  gcc/testsuite/gcc.misc-tests/gcov-pr114599.c
+ 532090f95d4315be0d583fcdf9aa2328  gcc/testsuite/gcc.misc-tests/gcov-pr114601.c
+ 8114252892791c2c861a0b816aa62dbe  gcc/testsuite/gcc.misc-tests/gcov-pr114681.c
  0df3e4ffd1610249fe85ed5bdd64727a  gcc/testsuite/gcc.misc-tests/gcov-pr83813.c
  21f13efd8f57c103a63da9546f8a4c63  gcc/testsuite/gcc.misc-tests/gcov-pr84758.c
  0ff4a1fb9692c697b091ed4523db6462  gcc/testsuite/gcc.misc-tests/gcov-pr85217.c
*************** cd738df03ae207debc1ad168ab05d024  gcc/te
*** 53293,53344 ****
  ce15b46ef3abd924c340b60b46880630  gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c
  b4c981ce038b4aba05421ca069c8e20f  gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c
  64595fd213798d37265f5eb087bb77f2  gcc/testsuite/gcc.misc-tests/gcov-pr94029.c
! 2d28ae8fb4289514d89f7e79f8cba7ff  gcc/testsuite/gcc.misc-tests/gcov.exp
  d0c60992e0ef331502b84f8ee13cb818  gcc/testsuite/gcc.misc-tests/gcovpart-13b.c
! 85548e872dac07684e3abdce20cb40dc  gcc/testsuite/gcc.misc-tests/godump-1.c
! 48b4dafb082f3392b06fe646783a708f  gcc/testsuite/gcc.misc-tests/godump.exp
! 6159f136e8f235edb80f8b07ae130603  gcc/testsuite/gcc.misc-tests/help.exp
  6d43a784cf19762437a5b9baec4d4095  gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c
  4a06f6c2d9b50ef414030d175fbe9d5c  gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c
  bfd2eae1e2b6b0aa804a7e33580dc190  gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c
  81ac61201db56efd77fdfd14cf2e4266  gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c
! 63cef59190bb388ede6566d1f3830332  gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
  51bca646196e93b1c8a68319441e0595  gcc/testsuite/gcc.misc-tests/linkage-x.c
! 4020995d3b08e117c48c529d5bc0b3ec  gcc/testsuite/gcc.misc-tests/linkage-y.c
! e5b3d6adaec0dba51a4e9f3cc666096a  gcc/testsuite/gcc.misc-tests/linkage.exp
  1d8fa0a1210ed4c4bf0ff4dfa959f060  gcc/testsuite/gcc.misc-tests/matrix1.c
! 6a828df86636ce0726e3caabae0e6ae4  gcc/testsuite/gcc.misc-tests/matrix1.exp
  b45579fdac6008721502ddecb5df29d8  gcc/testsuite/gcc.misc-tests/mg-2.c
! 92659b9776e29c1afd5a8d7925e58798  gcc/testsuite/gcc.misc-tests/mg-2.exp
  fb7a4e029ce05eea8ba0f03f9033caa2  gcc/testsuite/gcc.misc-tests/mg.c
! 93ec1896f85ca8262070fca6ea519197  gcc/testsuite/gcc.misc-tests/mg.exp
! fa03e2d2bac3733688489904e8bcfe65  gcc/testsuite/gcc.misc-tests/options.exp
! d8ce66444739ddb9416e222f7d05151a  gcc/testsuite/gcc.misc-tests/output.exp
  69d9b561b303bd96e74ea417f73e1ac5  gcc/testsuite/gcc.misc-tests/outputs-0.c
  773736389c2fb248099dd6dcee0ddb6b  gcc/testsuite/gcc.misc-tests/outputs-1.c
  4bffb1320eb13262d3eb5336a6683a84  gcc/testsuite/gcc.misc-tests/outputs-2.c
! 61601cdae2aab8fd16af70d24226c1a9  gcc/testsuite/gcc.misc-tests/outputs.exp
  37d75aade49dd3329803e520456ae8a6  gcc/testsuite/gcc.misc-tests/sieve.c
! c82a7d80308f5416abb8d2c4597ae9f4  gcc/testsuite/gcc.misc-tests/sieve.exp
  f0e0d52dbb689249f8d057f00e4c65e9  gcc/testsuite/gcc.misc-tests/sort2.c
! 755c56cd6c5771e50d081bb660cc4da4  gcc/testsuite/gcc.misc-tests/sort2.exp
! 8c703dc9d60dffb960ea94c363242565  gcc/testsuite/gcc.src/maintainers.exp
  8031dd3c171877e36f7163b73fe68210  gcc/testsuite/gcc.target/aarch64/121127.c
  512f8592397ac26799ee85d9c29339ec  gcc/testsuite/gcc.target/aarch64/_Float16_1.c
  6bead3d18e15a037cfb743e33e7712a5  gcc/testsuite/gcc.target/aarch64/_Float16_2.c
  d365d8bf0f5478b04e6451262cf0b804  gcc/testsuite/gcc.target/aarch64/_Float16_3.c
! cad7c9a931ff8c2a10f8eb9a4e6cb38b  gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
  fbb13bb7b4d389c258ef20d9aae07cf6  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest-2.h
  c708255687954aa3e3174b83b89e4e66  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest-common.h
  ab893b67ef591ba6b84bda6885255075  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest.S
  61be345a5679446528edab66406aba1e  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest.h
  a060bf27d254f08eb108d21b46fed38f  gcc/testsuite/gcc.target/aarch64/aapcs64/dfp-1.c
! eda0242f1312e5f417f132c24aa7a9a4  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-1.c
! a6c7d5ab48076a030ed52077beafbecf  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-2.c
! 61d3f7c1866200f2ff0c83f649cc05c2  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.c
! 6e23a268de3c65849220e7499e74dfde  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.c
! 7b79a81d3a6b2801b420b5c1340b6d04  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-64x1_1.c
! 12a5af6191c62319e9641c4190e5883e  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_1.c
  449ae46fb2287a0fff8ae0611a75c163  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_2.c
  6f60c7c22501fc5c0d017c297a34ddba  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_3.c
  ba077977324443167e28ec8443883dfd  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_4.c
--- 56355,56407 ----
  ce15b46ef3abd924c340b60b46880630  gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c
  b4c981ce038b4aba05421ca069c8e20f  gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c
  64595fd213798d37265f5eb087bb77f2  gcc/testsuite/gcc.misc-tests/gcov-pr94029.c
! eff555879387c6c36ca72606e31fee1f  gcc/testsuite/gcc.misc-tests/gcov.exp
  d0c60992e0ef331502b84f8ee13cb818  gcc/testsuite/gcc.misc-tests/gcovpart-13b.c
! 34383bd53fad12bfd0999bb18c2acbd8  gcc/testsuite/gcc.misc-tests/godump-1.c
! b141cf6e0368373cb6ce35d96fe044aa  gcc/testsuite/gcc.misc-tests/godump-2.c
! 89648e43b7ae32fdd56684522835192d  gcc/testsuite/gcc.misc-tests/godump.exp
! 514b152d23e6542f8db78547d8921f7e  gcc/testsuite/gcc.misc-tests/help.exp
  6d43a784cf19762437a5b9baec4d4095  gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c
  4a06f6c2d9b50ef414030d175fbe9d5c  gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c
  bfd2eae1e2b6b0aa804a7e33580dc190  gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c
  81ac61201db56efd77fdfd14cf2e4266  gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c
! bd934a50ddeb4d16c2730a16eaf17f7f  gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
  51bca646196e93b1c8a68319441e0595  gcc/testsuite/gcc.misc-tests/linkage-x.c
! c8d7a18c46af7540c2434614324e7daf  gcc/testsuite/gcc.misc-tests/linkage-y.c
! e21da71ad252577d5e268d7658adc8ab  gcc/testsuite/gcc.misc-tests/linkage.exp
  1d8fa0a1210ed4c4bf0ff4dfa959f060  gcc/testsuite/gcc.misc-tests/matrix1.c
! 6498a9aa20a18cbb55cd807611b742b0  gcc/testsuite/gcc.misc-tests/matrix1.exp
  b45579fdac6008721502ddecb5df29d8  gcc/testsuite/gcc.misc-tests/mg-2.c
! 1767559a792d884823a9dc2ec419bda1  gcc/testsuite/gcc.misc-tests/mg-2.exp
  fb7a4e029ce05eea8ba0f03f9033caa2  gcc/testsuite/gcc.misc-tests/mg.c
! 7150033db45fb674b79211f0fe5a1ede  gcc/testsuite/gcc.misc-tests/mg.exp
! f35d41a836a0cf23f527815f9cf1b0a8  gcc/testsuite/gcc.misc-tests/options.exp
! 7f523ad4f8f021de09eb8adcd3f9e4f3  gcc/testsuite/gcc.misc-tests/output.exp
  69d9b561b303bd96e74ea417f73e1ac5  gcc/testsuite/gcc.misc-tests/outputs-0.c
  773736389c2fb248099dd6dcee0ddb6b  gcc/testsuite/gcc.misc-tests/outputs-1.c
  4bffb1320eb13262d3eb5336a6683a84  gcc/testsuite/gcc.misc-tests/outputs-2.c
! 7883c7b83c95d51ae7a49da343c8c4ef  gcc/testsuite/gcc.misc-tests/outputs.exp
  37d75aade49dd3329803e520456ae8a6  gcc/testsuite/gcc.misc-tests/sieve.c
! bb22859956bf813cdea3d429518e05bc  gcc/testsuite/gcc.misc-tests/sieve.exp
  f0e0d52dbb689249f8d057f00e4c65e9  gcc/testsuite/gcc.misc-tests/sort2.c
! ed3d754b80fb05f7e81d52f1fe9011a9  gcc/testsuite/gcc.misc-tests/sort2.exp
! 6d46815e9047881902b4dbbe8166c234  gcc/testsuite/gcc.src/maintainers.exp
  8031dd3c171877e36f7163b73fe68210  gcc/testsuite/gcc.target/aarch64/121127.c
  512f8592397ac26799ee85d9c29339ec  gcc/testsuite/gcc.target/aarch64/_Float16_1.c
  6bead3d18e15a037cfb743e33e7712a5  gcc/testsuite/gcc.target/aarch64/_Float16_2.c
  d365d8bf0f5478b04e6451262cf0b804  gcc/testsuite/gcc.target/aarch64/_Float16_3.c
! b6476222ccd817e988d31376fe6017bc  gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
  fbb13bb7b4d389c258ef20d9aae07cf6  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest-2.h
  c708255687954aa3e3174b83b89e4e66  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest-common.h
  ab893b67ef591ba6b84bda6885255075  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest.S
  61be345a5679446528edab66406aba1e  gcc/testsuite/gcc.target/aarch64/aapcs64/abitest.h
  a060bf27d254f08eb108d21b46fed38f  gcc/testsuite/gcc.target/aarch64/aapcs64/dfp-1.c
! dc0bc2f6235b1b60a1916af41316c993  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-1.c
! b08a36b5351c426ed10658f08f6bec7c  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-2.c
! bd6535c91d339319f24ec9d0d4773b8a  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.c
! f5ad457e88c353a8d60662f014f458de  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.c
! 33600f191707a870a7ebe4f6483dbe9e  gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-64x1_1.c
! 6fb5a7ed4aa917c50e94023a1d085aa0  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_1.c
  449ae46fb2287a0fff8ae0611a75c163  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_2.c
  6f60c7c22501fc5c0d017c297a34ddba  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_3.c
  ba077977324443167e28ec8443883dfd  gcc/testsuite/gcc.target/aarch64/aapcs64/ice_4.c
*************** ffcbde78d87177a33ffb25aa93517159  gcc/te
*** 53434,53440 ****
  7277fa58dadb57113bc4495170498ae7  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-14.c
  d6d753fee2cc939c6e58cf69a3d84ce4  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-15.c
  cf78d84c225362adc20fcbbd1c4020fd  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-16.c
! 271d94a1e8fcc99eabcb16bcae6495dd  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-17.c
  fc1b2fafeab3eb9b11c280cffbae0a84  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-2.c
  90f631203c55b0d551750a5a226e34d4  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-3.c
  8976e90901bc403d658e1154a201ff04  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-4.c
--- 56497,56503 ----
  7277fa58dadb57113bc4495170498ae7  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-14.c
  d6d753fee2cc939c6e58cf69a3d84ce4  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-15.c
  cf78d84c225362adc20fcbbd1c4020fd  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-16.c
! a81b13be61c104f6e23420d3df6f68f9  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-17.c
  fc1b2fafeab3eb9b11c280cffbae0a84  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-2.c
  90f631203c55b0d551750a5a226e34d4  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-3.c
  8976e90901bc403d658e1154a201ff04  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-4.c
*************** b51362df070ad6ef73f3c62bb1acacfb  gcc/te
*** 53458,53468 ****
  8306069eae8c21a38cf65ea80960e602  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg_dfp-8.c
  f05c75f497f017a490f3facad4b26647  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg_dfp-9.c
  3f40e5d196a05153206e4941fc3b1d10  gcc/testsuite/gcc.target/aarch64/aapcs64/validate_memory.h
! a999c41430e4cf632ef9b0cb5d601688  gcc/testsuite/gcc.target/aarch64/aarch64.exp
  5edfd2c8b369aabd5c367fb78ad782bd  gcc/testsuite/gcc.target/aarch64/abd_1.c
  ae513bfb2896c38de994944b104fb7c8  gcc/testsuite/gcc.target/aarch64/abs_1.c
  8a6aed21d2622bf72389f22f09d8bd4b  gcc/testsuite/gcc.target/aarch64/abs_2.c
! 9cfd4d4ad02332bd9b9d2ef4e80d85c6  gcc/testsuite/gcc.target/aarch64/acle/acle.exp
  a545b8f7fc60af12576f85397e1733cb  gcc/testsuite/gcc.target/aarch64/acle/armv8-r.c
  62e20cc9b647dedfdd26cf101e10f58e  gcc/testsuite/gcc.target/aarch64/acle/bti_def.c
  339f7215861041bbe928186d86e2c7b7  gcc/testsuite/gcc.target/aarch64/acle/crc32b.c
--- 56521,56542 ----
  8306069eae8c21a38cf65ea80960e602  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg_dfp-8.c
  f05c75f497f017a490f3facad4b26647  gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg_dfp-9.c
  3f40e5d196a05153206e4941fc3b1d10  gcc/testsuite/gcc.target/aarch64/aapcs64/validate_memory.h
! 5b0f99f048f068e243d02e1d47c33704  gcc/testsuite/gcc.target/aarch64/aarch64.exp
! e3907dca91ae6b3afba8ef6c1d54da50  gcc/testsuite/gcc.target/aarch64/abd.h
  5edfd2c8b369aabd5c367fb78ad782bd  gcc/testsuite/gcc.target/aarch64/abd_1.c
+ 88c6f608f5889cfbde4d786516bb8177  gcc/testsuite/gcc.target/aarch64/abd_2.c
+ 5b49f0951f7608471b0a228188356a49  gcc/testsuite/gcc.target/aarch64/abd_3.c
+ 8fb1659725308c2e05971f5236851779  gcc/testsuite/gcc.target/aarch64/abd_4.c
+ 2d12d58e090c65217010ef5e2ffc4025  gcc/testsuite/gcc.target/aarch64/abd_none_2.c
+ 0524aec47398e9cab5efe5c07500c407  gcc/testsuite/gcc.target/aarch64/abd_none_3.c
+ 246e5ae66d999b4e2925f24c5f497103  gcc/testsuite/gcc.target/aarch64/abd_none_4.c
+ c6a1f0107a2fd7a6f892e20cc97049bc  gcc/testsuite/gcc.target/aarch64/abd_run_1.c
+ 9d0e6567aa068ffce11d020994bcd065  gcc/testsuite/gcc.target/aarch64/abd_widen_2.c
+ ca6c06d80f2b9e8ed39f4fd5a6dff020  gcc/testsuite/gcc.target/aarch64/abd_widen_3.c
+ 91e43442f0e12759c331da35420b2704  gcc/testsuite/gcc.target/aarch64/abd_widen_4.c
  ae513bfb2896c38de994944b104fb7c8  gcc/testsuite/gcc.target/aarch64/abs_1.c
  8a6aed21d2622bf72389f22f09d8bd4b  gcc/testsuite/gcc.target/aarch64/abs_2.c
! 4c042431bd9c0fee72fecae7e28abe01  gcc/testsuite/gcc.target/aarch64/acle/acle.exp
  a545b8f7fc60af12576f85397e1733cb  gcc/testsuite/gcc.target/aarch64/acle/armv8-r.c
  62e20cc9b647dedfdd26cf101e10f58e  gcc/testsuite/gcc.target/aarch64/acle/bti_def.c
  339f7215861041bbe928186d86e2c7b7  gcc/testsuite/gcc.target/aarch64/acle/crc32b.c
*************** ccf5175907998c0c871634fd51ca889f  gcc/te
*** 53482,53488 ****
  1c5b2165b1d114daea4683d247a75998  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld64b-3.c
  fa1ccdd20a958a2e7bc98028d2b2a9f0  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld64b.c
  1ffa16c70b659d0b3a7b52c3c3f51adb  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld_st_o0.c
! 9875fbc47f91e6e679897f9e122f5c0a  gcc/testsuite/gcc.target/aarch64/acle/ls64_lto.c
  16fffb65ffb6236dc8280f6dbd45b120  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64b-2.c
  97d4553a6c2fe6ee3d781f1d446bcd13  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64b.c
  75d2799589f92d6d9e81a786b103d9b9  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv-2.c
--- 56556,56562 ----
  1c5b2165b1d114daea4683d247a75998  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld64b-3.c
  fa1ccdd20a958a2e7bc98028d2b2a9f0  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld64b.c
  1ffa16c70b659d0b3a7b52c3c3f51adb  gcc/testsuite/gcc.target/aarch64/acle/ls64_ld_st_o0.c
! b266fdbac7924755e5e70677609f129c  gcc/testsuite/gcc.target/aarch64/acle/ls64_lto.c
  16fffb65ffb6236dc8280f6dbd45b120  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64b-2.c
  97d4553a6c2fe6ee3d781f1d446bcd13  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64b.c
  75d2799589f92d6d9e81a786b103d9b9  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv-2.c
*************** b78a4169933a9354d9c9f02a41a28212  gcc/te
*** 53491,53507 ****
  4af384ab8a48684efd94c0ed76595201  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0-2.c
  c2eae4877980c06eaa23ea8db426a5c1  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0-3.c
  a9efd5e0ebc228f128308006c2db9c2b  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0.c
  ff3a09d9afde293ac1598cb7530ead9d  gcc/testsuite/gcc.target/aarch64/acle/memtag_1.c
! 722af47b92a99bf8f052eb56ae7c0c5e  gcc/testsuite/gcc.target/aarch64/acle/memtag_2.c
  e2be4748443bb6caa176b86d28972388  gcc/testsuite/gcc.target/aarch64/acle/memtag_3.c
  1d797526b5b45f0f4e3526be82bb2af3  gcc/testsuite/gcc.target/aarch64/acle/pauth_def.c
  4f75ca7b0d38f756a18d8f9574e56fd4  gcc/testsuite/gcc.target/aarch64/acle/pmull64.c
  7891d663249f27cbe3e8c65142207451  gcc/testsuite/gcc.target/aarch64/acle/pr108140.c
! 65e8ac291dbd38bf3de7003fd4621829  gcc/testsuite/gcc.target/aarch64/acle/pr110100.c
! e496c7fdebdf15ca4d829243a7bbfa8f  gcc/testsuite/gcc.target/aarch64/acle/pr110132.c
  59a572a57e0172b2d647b53aaa71b73b  gcc/testsuite/gcc.target/aarch64/acle/rintnzx_1.c
  0d5ba16c2924cc1abd60d5f6e84bb892  gcc/testsuite/gcc.target/aarch64/acle/rng_1.c
  cb84d7d74821259d1a47775dd18c13c8  gcc/testsuite/gcc.target/aarch64/acle/rng_2.c
  10ce3b5edee8a787906dd58121496c70  gcc/testsuite/gcc.target/aarch64/acle/tme.c
  3956a5fd71df11f14c94ff428d8264a6  gcc/testsuite/gcc.target/aarch64/adc-1.c
  d20a3c5925eb2e8c28249b5e4eb57a97  gcc/testsuite/gcc.target/aarch64/adc-2.c
--- 56565,56590 ----
  4af384ab8a48684efd94c0ed76595201  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0-2.c
  c2eae4877980c06eaa23ea8db426a5c1  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0-3.c
  a9efd5e0ebc228f128308006c2db9c2b  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0.c
+ bbcc298547eb556312f83b765ff6baef  gcc/testsuite/gcc.target/aarch64/acle/ls64_strict_align.c
  ff3a09d9afde293ac1598cb7530ead9d  gcc/testsuite/gcc.target/aarch64/acle/memtag_1.c
! 42f386dac12d330a687e58d7027f0c47  gcc/testsuite/gcc.target/aarch64/acle/memtag_2.c
! dad27dd9a8b076099818ec56a74ef781  gcc/testsuite/gcc.target/aarch64/acle/memtag_2a.c
  e2be4748443bb6caa176b86d28972388  gcc/testsuite/gcc.target/aarch64/acle/memtag_3.c
+ 80e71befec8aee6a1de511bb177d338e  gcc/testsuite/gcc.target/aarch64/acle/memtag_4.c
  1d797526b5b45f0f4e3526be82bb2af3  gcc/testsuite/gcc.target/aarch64/acle/pauth_def.c
  4f75ca7b0d38f756a18d8f9574e56fd4  gcc/testsuite/gcc.target/aarch64/acle/pmull64.c
  7891d663249f27cbe3e8c65142207451  gcc/testsuite/gcc.target/aarch64/acle/pr108140.c
! e15fb874d0ae7c74f74b2eb5bd8f8bf3  gcc/testsuite/gcc.target/aarch64/acle/pr110100.c
! 9effc18b2bce4cad72da3e28af5e9e4f  gcc/testsuite/gcc.target/aarch64/acle/pr110132.c
! 08a8a5810dce9bd6c10770aa725b8e19  gcc/testsuite/gcc.target/aarch64/acle/rcpc3.c
  59a572a57e0172b2d647b53aaa71b73b  gcc/testsuite/gcc.target/aarch64/acle/rintnzx_1.c
  0d5ba16c2924cc1abd60d5f6e84bb892  gcc/testsuite/gcc.target/aarch64/acle/rng_1.c
  cb84d7d74821259d1a47775dd18c13c8  gcc/testsuite/gcc.target/aarch64/acle/rng_2.c
+ a204aadb3f5fc384dd117c7c09175029  gcc/testsuite/gcc.target/aarch64/acle/rwsr-1.c
+ d5b77d8e1a21321e649e6b77802e64c8  gcc/testsuite/gcc.target/aarch64/acle/rwsr-2.c
+ 90a044b6489e0d51268ae3d5ce15dead  gcc/testsuite/gcc.target/aarch64/acle/rwsr-3.c
+ 37f8720622531f40d94c6e3f7f2b1050  gcc/testsuite/gcc.target/aarch64/acle/rwsr-armv8p9.c
+ c41c68503dfa6ef4c72faaf77fd40cb2  gcc/testsuite/gcc.target/aarch64/acle/rwsr.c
  10ce3b5edee8a787906dd58121496c70  gcc/testsuite/gcc.target/aarch64/acle/tme.c
  3956a5fd71df11f14c94ff428d8264a6  gcc/testsuite/gcc.target/aarch64/adc-1.c
  d20a3c5925eb2e8c28249b5e4eb57a97  gcc/testsuite/gcc.target/aarch64/adc-2.c
*************** e2b1388fba47b95c8b27a3e1a29953ff  gcc/te
*** 53510,53516 ****
  caf80fb3defd2872fa7d7dc3fa721878  gcc/testsuite/gcc.target/aarch64/adds2.c
  480e16f2c7cfb659fed5b0f7a3c1547a  gcc/testsuite/gcc.target/aarch64/adds3.c
  55ff9765cb94d7817c4c42421ab1deaa  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/README
! d7a8ea326d253b902f54565f323cb4ab  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
  6be72d4411b42d96dbefbc2a2b05d2be  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
  012249ec105164442e4c8e2f09841d19  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
  13fdac8c1ccc57731f09af48efde5d69  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get-be.c
--- 56593,56599 ----
  caf80fb3defd2872fa7d7dc3fa721878  gcc/testsuite/gcc.target/aarch64/adds2.c
  480e16f2c7cfb659fed5b0f7a3c1547a  gcc/testsuite/gcc.target/aarch64/adds3.c
  55ff9765cb94d7817c4c42421ab1deaa  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/README
! 628330757af13a3f0ef457960d843489  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
  6be72d4411b42d96dbefbc2a2b05d2be  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
  012249ec105164442e4c8e2f09841d19  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
  13fdac8c1ccc57731f09af48efde5d69  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get-be.c
*************** b5a3cbb3dca404ee6fb15c847674d9c3  gcc/te
*** 53527,53535 ****
  9feed4d43b2dc0fb58d80996741d1e5b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nobf16.c
  ba9dc453d672df4e122665e17e9bc7b1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c
  00456ae78cc030ad000daa7715ad10f2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtn-nobf16.c
! 80679345b66fbddb5b356aab15ef408e  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c
! ca317e34913d0ac711b2329ebaffa59b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-1.c
! bf5b3f02ecfe1cfb73ee52c218b4ff11  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c
  f5f5a17e7a3a4bce3949b0324a7d0352  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-3.c
  e0dfea9be141b94827ea52d89e96a588  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmlalbt-compile.c
  1537ebb794f31e1304ddc29f0339c9e2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c
--- 56610,56618 ----
  9feed4d43b2dc0fb58d80996741d1e5b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nobf16.c
  ba9dc453d672df4e122665e17e9bc7b1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c
  00456ae78cc030ad000daa7715ad10f2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtn-nobf16.c
! eda76c9093cac476cc7f2cf05173609b  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c
! eb318278b2a7675d469799a00b300b69  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-1.c
! e13d62b8785de9d450d16dba3629eafc  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c
  f5f5a17e7a3a4bce3949b0324a7d0352  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-3.c
  e0dfea9be141b94827ea52d89e96a588  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmlalbt-compile.c
  1537ebb794f31e1304ddc29f0339c9e2  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c
*************** efedd50642c6644cb6f531aba682095e  gcc/te
*** 53676,53683 ****
  8e5a12cc91e3d9700a3797351ad068df  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtx.c
  deb9860e1a64c53b3c341799f3fbe87d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdiv_f16_1.c
  cc8862bbb06bf4f811fe1be4bca2eeb1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdivh_f16_1.c
! c9273881e943aacaa6e13b8c5147e4aa  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
! 3cd256c9093abf1af1d6796fdd93f903  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
  02fdf739d8e929deb204884dbd92339d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-3.c
  daa618bd01b9b21999bfb0bf4c48cf21  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-4.c
  0642560d65fb69f44e04f928f89cf649  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-compile-2.c
--- 56759,56766 ----
  8e5a12cc91e3d9700a3797351ad068df  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvtx.c
  deb9860e1a64c53b3c341799f3fbe87d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdiv_f16_1.c
  cc8862bbb06bf4f811fe1be4bca2eeb1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdivh_f16_1.c
! 5934bccf031a2282593bd2fcf51d29c1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
! bd27e28c107029963bc14382b8b4e2c5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
  02fdf739d8e929deb204884dbd92339d  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-3.c
  daa618bd01b9b21999bfb0bf4c48cf21  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-4.c
  0642560d65fb69f44e04f928f89cf649  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-compile-2.c
*************** bfeae76254480655a1facd4fd82b65d1  gcc/te
*** 53712,53718 ****
  c09bfdef2bfed68f3c6a6b918e6bf91f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c
  17c614af1921f2e7fb163173523b8f71  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x2.c
  66913d837874172f4062f48c21afa4e1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x3.c
! 820775bc343f4dc9ff9c347e92187a37  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x4.c
  f6001854eaca71f68290006d17daa075  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_bf16_indices_1.c
  a1cd4982b079c6219414aebc78248e70  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c
  80a2ba3700244d2e74ac3529c34c3505  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f32_indices_1.c
--- 56795,56801 ----
  c09bfdef2bfed68f3c6a6b918e6bf91f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c
  17c614af1921f2e7fb163173523b8f71  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x2.c
  66913d837874172f4062f48c21afa4e1  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x3.c
! 38b9ed8560106b40e7eff8f107ff977f  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x4.c
  f6001854eaca71f68290006d17daa075  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_bf16_indices_1.c
  a1cd4982b079c6219414aebc78248e70  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c
  80a2ba3700244d2e74ac3529c34c3505  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f32_indices_1.c
*************** c4b8d2884f5c8a131e9042d674edd379  gcc/te
*** 53975,53981 ****
  6ec8275a10f554c5c4615afc04fd4149  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-3.c
  80534931772dc2c83ea0c3edb6bc1ed5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-4.c
  78d8a614002fb0b6e0398898ff4e1238  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-5.c
! 2831aa5e41fd7b4dad442ba71dc9ae01  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-6.c
  6de2876bec073f844e0e2ca24fdf21eb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-7.c
  907cb28ddd3631f5becb477e3ff66cee  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-8.c
  6a857b077efa8b7f609ef8921a2e8212  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl.c
--- 57058,57064 ----
  6ec8275a10f554c5c4615afc04fd4149  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-3.c
  80534931772dc2c83ea0c3edb6bc1ed5  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-4.c
  78d8a614002fb0b6e0398898ff4e1238  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-5.c
! c610f51b409f4e46bcde3cac52e901ec  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-6.c
  6de2876bec073f844e0e2ca24fdf21eb  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-7.c
  907cb28ddd3631f5becb477e3ff66cee  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl-opt-8.c
  6a857b077efa8b7f609ef8921a2e8212  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vshl.c
*************** c1a78c795e464e555618f9dae7cddf94  gcc/te
*** 54092,54098 ****
  f73e7d4ce7c3e327e953b946f2617247  gcc/testsuite/gcc.target/aarch64/aes_1.c
  d1d74e6c3fd8740a204f8a685d723756  gcc/testsuite/gcc.target/aarch64/aes_2.c
  ae9d490ad1228549fa8e44e7c17ec959  gcc/testsuite/gcc.target/aarch64/aes_xor_combine.c
- 87ffe2f549ae8342b95a0220082c56a9  gcc/testsuite/gcc.target/aarch64/ampere1-no_ldp_combine.c
  b144bbaff9193d702e5e6e91e1c21a7a  gcc/testsuite/gcc.target/aarch64/and_const.c
  5625f9d0aa6dd393a4e54a9d8f0df277  gcc/testsuite/gcc.target/aarch64/and_const2.c
  e4ce46d425f8ea0594bf48b8fec9250a  gcc/testsuite/gcc.target/aarch64/ands_1.c
--- 57175,57180 ----
*************** e9c25c1873b1c88e896cbfdc10e65bb2  gcc/te
*** 54103,54110 ****
  b287abfa131d4fc02a9f9f035aa88fbd  gcc/testsuite/gcc.target/aarch64/arg-type-diagnostics-1.c
  32870aac07385ec32efd5ecbbb3d76d3  gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c
  e79c5d685820bc76d9daf4e435221433  gcc/testsuite/gcc.target/aarch64/arm_align_max_stack_pwr.c
  26518a2b3146873d5a85678ac0ec9937  gcc/testsuite/gcc.target/aarch64/ashltidisi.c
! e3529db67617a1338a1ecd734bcf1f16  gcc/testsuite/gcc.target/aarch64/asimd-mul-to-shl-sub.c
  5e4a5f52a0317bf1c356ac654c5509f0  gcc/testsuite/gcc.target/aarch64/asimd-mull-elem.c
  dcc9c2b184e5339c1d80d3a05b09ded3  gcc/testsuite/gcc.target/aarch64/asm-1.c
  df4261abff5d11ed565343cbcd36e8e6  gcc/testsuite/gcc.target/aarch64/asm-2.c
--- 57185,57193 ----
  b287abfa131d4fc02a9f9f035aa88fbd  gcc/testsuite/gcc.target/aarch64/arg-type-diagnostics-1.c
  32870aac07385ec32efd5ecbbb3d76d3  gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c
  e79c5d685820bc76d9daf4e435221433  gcc/testsuite/gcc.target/aarch64/arm_align_max_stack_pwr.c
+ 88a76c21f1cdd35b20bdc18c844115a4  gcc/testsuite/gcc.target/aarch64/armv9_warning.c
  26518a2b3146873d5a85678ac0ec9937  gcc/testsuite/gcc.target/aarch64/ashltidisi.c
! 52adaa84753177a9c3a19b92e8237735  gcc/testsuite/gcc.target/aarch64/asimd-mul-to-shl-sub.c
  5e4a5f52a0317bf1c356ac654c5509f0  gcc/testsuite/gcc.target/aarch64/asimd-mull-elem.c
  dcc9c2b184e5339c1d80d3a05b09ded3  gcc/testsuite/gcc.target/aarch64/asm-1.c
  df4261abff5d11ed565343cbcd36e8e6  gcc/testsuite/gcc.target/aarch64/asm-2.c
*************** dec6fa45fd2a29df2bb34f29716542bd  gcc/te
*** 54118,54124 ****
  84cc9bafe1857dc2a9bd4ae96b8c27e3  gcc/testsuite/gcc.target/aarch64/asm-flag-5.c
  81557d2f721a4a556b0a0651b5d87cbd  gcc/testsuite/gcc.target/aarch64/asm-flag-6.c
  58ce71dec34e038ef9935b9ddf669c0b  gcc/testsuite/gcc.target/aarch64/asm-flag-7.c
! a0366d18b82e7b349de74147a8ed728e  gcc/testsuite/gcc.target/aarch64/asm-x-constraint-1.c
  9ddf4430e4abf2352e0ad119aab27915  gcc/testsuite/gcc.target/aarch64/asm-y-constraint-1.c
  4243a23aa0a384578b2d05d3f99be487  gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c
  d711069757aeb0145e840cff37701747  gcc/testsuite/gcc.target/aarch64/atomic-comp-swap-release-acquire.c
--- 57201,57207 ----
  84cc9bafe1857dc2a9bd4ae96b8c27e3  gcc/testsuite/gcc.target/aarch64/asm-flag-5.c
  81557d2f721a4a556b0a0651b5d87cbd  gcc/testsuite/gcc.target/aarch64/asm-flag-6.c
  58ce71dec34e038ef9935b9ddf669c0b  gcc/testsuite/gcc.target/aarch64/asm-flag-7.c
! d1ef31752e82f204d0e8943181982368  gcc/testsuite/gcc.target/aarch64/asm-x-constraint-1.c
  9ddf4430e4abf2352e0ad119aab27915  gcc/testsuite/gcc.target/aarch64/asm-y-constraint-1.c
  4243a23aa0a384578b2d05d3f99be487  gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c
  d711069757aeb0145e840cff37701747  gcc/testsuite/gcc.target/aarch64/atomic-comp-swap-release-acquire.c
*************** e7b8ba1ea741c7a9f79ac8356c698d78  gcc/te
*** 54152,54158 ****
  54ef40f0c37a67de10bb882fb6956099  gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_reg_1.c
  51e5228d8a5c0d375800a8ddb69247ca  gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c
  07437ce12511a14a25ac0b125b050902  gcc/testsuite/gcc.target/aarch64/attr-aligned.c
! b02b567952b3733bfbd6ebc2d1065fa0  gcc/testsuite/gcc.target/aarch64/auto-init-1.c
  f5b1276588c9d9ba2f92070dd86994a1  gcc/testsuite/gcc.target/aarch64/auto-init-2.c
  e3003ad7bf9014830c6f9c58e85b082a  gcc/testsuite/gcc.target/aarch64/auto-init-3.c
  e2630d4e02d27500ef42c075fea9596a  gcc/testsuite/gcc.target/aarch64/auto-init-4.c
--- 57235,57241 ----
  54ef40f0c37a67de10bb882fb6956099  gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_reg_1.c
  51e5228d8a5c0d375800a8ddb69247ca  gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c
  07437ce12511a14a25ac0b125b050902  gcc/testsuite/gcc.target/aarch64/attr-aligned.c
! ce18e5026a485a8f7703a20b7d6f26ed  gcc/testsuite/gcc.target/aarch64/auto-init-1.c
  f5b1276588c9d9ba2f92070dd86994a1  gcc/testsuite/gcc.target/aarch64/auto-init-2.c
  e3003ad7bf9014830c6f9c58e85b082a  gcc/testsuite/gcc.target/aarch64/auto-init-3.c
  e2630d4e02d27500ef42c075fea9596a  gcc/testsuite/gcc.target/aarch64/auto-init-4.c
*************** e2630d4e02d27500ef42c075fea9596a  gcc/te
*** 54160,54177 ****
  46b2038d6a8de54fe8ef127b8d150cc2  gcc/testsuite/gcc.target/aarch64/auto-init-6.c
  bf9558c21c69b0ace0ae8237582b7a3c  gcc/testsuite/gcc.target/aarch64/auto-init-7.c
  82a86967361fb139ed59816cd69721e4  gcc/testsuite/gcc.target/aarch64/auto-init-8.c
! 630c742bc2781439914d777f777f39fb  gcc/testsuite/gcc.target/aarch64/auto-init-padding-1.c
  6152eb7bd8e8fb962404c859fd655d9d  gcc/testsuite/gcc.target/aarch64/auto-init-padding-10.c
  ba3b80a743046593df9ed388ceb66f03  gcc/testsuite/gcc.target/aarch64/auto-init-padding-11.c
  cfcd3e6d235151d91afb31b338a749e2  gcc/testsuite/gcc.target/aarch64/auto-init-padding-12.c
! 2b71c6e5d5d4f957dc77774a3bdf765d  gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c
! 4bc5cabdb6a9aac6ba4d401181c48ed7  gcc/testsuite/gcc.target/aarch64/auto-init-padding-3.c
! 9f02bb828eefe3a33fb0ac132019fe2c  gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c
  418b10ba7b8091584dc3bcc8c4ccefc7  gcc/testsuite/gcc.target/aarch64/auto-init-padding-5.c
  a8a16d0937642cc260a09db6d3387b40  gcc/testsuite/gcc.target/aarch64/auto-init-padding-6.c
  de76859b307e32b03a98f03a94e54fe0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-7.c
  585eda662bdd7f06f3d17aafcefa8670  gcc/testsuite/gcc.target/aarch64/auto-init-padding-8.c
! d98a95bb6eca18059fc08f9f2ea22d0c  gcc/testsuite/gcc.target/aarch64/auto-init-padding-9.c
  b46f641f0dcc38f3e3de3f9a90702753  gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_1.c
  855cfd1a9802da7ce78ef8175531090b  gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_2.c
  d6a50d584b2477098572c1a78a597d52  gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_3.c
--- 57243,57261 ----
  46b2038d6a8de54fe8ef127b8d150cc2  gcc/testsuite/gcc.target/aarch64/auto-init-6.c
  bf9558c21c69b0ace0ae8237582b7a3c  gcc/testsuite/gcc.target/aarch64/auto-init-7.c
  82a86967361fb139ed59816cd69721e4  gcc/testsuite/gcc.target/aarch64/auto-init-8.c
! aa553ecd38d6f1390bde2fd58eeb4ba6  gcc/testsuite/gcc.target/aarch64/auto-init-padding-1.c
  6152eb7bd8e8fb962404c859fd655d9d  gcc/testsuite/gcc.target/aarch64/auto-init-padding-10.c
  ba3b80a743046593df9ed388ceb66f03  gcc/testsuite/gcc.target/aarch64/auto-init-padding-11.c
  cfcd3e6d235151d91afb31b338a749e2  gcc/testsuite/gcc.target/aarch64/auto-init-padding-12.c
! 75bf69853931f2294dca7448c331e569  gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c
! 8617f8a139394f10f8c1a9448a322dc0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-3.c
! ba17361507bd54cc99fb2816d4863eaa  gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c
  418b10ba7b8091584dc3bcc8c4ccefc7  gcc/testsuite/gcc.target/aarch64/auto-init-padding-5.c
  a8a16d0937642cc260a09db6d3387b40  gcc/testsuite/gcc.target/aarch64/auto-init-padding-6.c
  de76859b307e32b03a98f03a94e54fe0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-7.c
  585eda662bdd7f06f3d17aafcefa8670  gcc/testsuite/gcc.target/aarch64/auto-init-padding-8.c
! 721a33437def414205b86d642c689ebc  gcc/testsuite/gcc.target/aarch64/auto-init-padding-9.c
! 2e34b4d658642fa31028e6c77888d89c  gcc/testsuite/gcc.target/aarch64/bb-slp-pr113091.c
  b46f641f0dcc38f3e3de3f9a90702753  gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_1.c
  855cfd1a9802da7ce78ef8175531090b  gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_2.c
  d6a50d584b2477098572c1a78a597d52  gcc/testsuite/gcc.target/aarch64/bfloat16_scalar_3.c
*************** ee084d41732fc33444a013c68c2fe7a9  gcc/te
*** 54180,54187 ****
  66b05a6a721964103c20b21e071477da  gcc/testsuite/gcc.target/aarch64/bfloat16_simd_1.c
  b13075188317e306c6968ca79a2b3829  gcc/testsuite/gcc.target/aarch64/bfloat16_simd_2.c
  99f62f94c817421cc9fe2b591336cf33  gcc/testsuite/gcc.target/aarch64/bfloat16_simd_3.c
! 7fc4c28ccfdbc3afaf140439691cbab7  gcc/testsuite/gcc.target/aarch64/bfloat16_vector_typecheck_1.c
! 671f594119aea1682088a130c977c529  gcc/testsuite/gcc.target/aarch64/bfloat16_vector_typecheck_2.c
  61dac314ba6a1629bed37f7dc73024de  gcc/testsuite/gcc.target/aarch64/bfxil_1.c
  6378518f0a698c129d49f6f5eb229d63  gcc/testsuite/gcc.target/aarch64/bfxil_2.c
  6dc62170423fa4b690cc016a9b80d5a7  gcc/testsuite/gcc.target/aarch64/bic-bitmask-1.c
--- 57264,57271 ----
  66b05a6a721964103c20b21e071477da  gcc/testsuite/gcc.target/aarch64/bfloat16_simd_1.c
  b13075188317e306c6968ca79a2b3829  gcc/testsuite/gcc.target/aarch64/bfloat16_simd_2.c
  99f62f94c817421cc9fe2b591336cf33  gcc/testsuite/gcc.target/aarch64/bfloat16_simd_3.c
! dcd90531dfe31a64f5aa5522b9c8807a  gcc/testsuite/gcc.target/aarch64/bfloat16_vector_typecheck_1.c
! b69ac5f2f29059073281b00ba6975f78  gcc/testsuite/gcc.target/aarch64/bfloat16_vector_typecheck_2.c
  61dac314ba6a1629bed37f7dc73024de  gcc/testsuite/gcc.target/aarch64/bfxil_1.c
  6378518f0a698c129d49f6f5eb229d63  gcc/testsuite/gcc.target/aarch64/bfxil_2.c
  6dc62170423fa4b690cc016a9b80d5a7  gcc/testsuite/gcc.target/aarch64/bic-bitmask-1.c
*************** fa7780f2752e4fa50b018aad6ab46b33  gcc/te
*** 54197,54206 ****
  45fd75f2db6f8fa64db6d2ca793f30a9  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
  ba1aa14b7548fcc22d232467eb0998c9  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c
  f7378d596bb7308498db40ad34fd8dab  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h
  11f6f9054981704db09136d921c586d4  gcc/testsuite/gcc.target/aarch64/branch-protection-attr-2.c
! b6fc023f262312a065344653a280322f  gcc/testsuite/gcc.target/aarch64/branch-protection-attr.c
  c45ad55864031fa75ffa4f831160438a  gcc/testsuite/gcc.target/aarch64/branch-protection-option-2.c
! 43fb9dc4a9b688a1d2b0ab684d2f58d0  gcc/testsuite/gcc.target/aarch64/branch-protection-option.c
  cb2d59ab293179fb8d00b44de02f2556  gcc/testsuite/gcc.target/aarch64/bsl-idiom.c
  db5fd5b64a2eb4eb636d6dfdb413c130  gcc/testsuite/gcc.target/aarch64/bti-1.c
  1f3ef5067a390251f12ef6026d548694  gcc/testsuite/gcc.target/aarch64/bti-2.c
--- 57281,57296 ----
  45fd75f2db6f8fa64db6d2ca793f30a9  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
  ba1aa14b7548fcc22d232467eb0998c9  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c
  f7378d596bb7308498db40ad34fd8dab  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h
+ 5168d8bb07cb979e8deed590f4992c2e  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi-align16.c
+ e2b2b96f056db35abf2c6c967865cf05  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi-align8.c
+ b2b956bad084ba29822ce226a454dfc9  gcc/testsuite/gcc.target/aarch64/bitfield-bitint-abi.h
+ cd00ceeea45683383cf6ab2205253ad0  gcc/testsuite/gcc.target/aarch64/bitint-alignments.c
+ c62b738738d7bd8c9d5f9ab0c4ead533  gcc/testsuite/gcc.target/aarch64/bitint-args.c
+ 301277270ef16c20c5a857394b26d4e3  gcc/testsuite/gcc.target/aarch64/bitint-sizes.c
  11f6f9054981704db09136d921c586d4  gcc/testsuite/gcc.target/aarch64/branch-protection-attr-2.c
! f29221b3dc2d27ac71c726e119cac0ff  gcc/testsuite/gcc.target/aarch64/branch-protection-attr.c
  c45ad55864031fa75ffa4f831160438a  gcc/testsuite/gcc.target/aarch64/branch-protection-option-2.c
! 0b8cf058ef48ad79bf7930ffa7dada5f  gcc/testsuite/gcc.target/aarch64/branch-protection-option.c
  cb2d59ab293179fb8d00b44de02f2556  gcc/testsuite/gcc.target/aarch64/bsl-idiom.c
  db5fd5b64a2eb4eb636d6dfdb413c130  gcc/testsuite/gcc.target/aarch64/bti-1.c
  1f3ef5067a390251f12ef6026d548694  gcc/testsuite/gcc.target/aarch64/bti-2.c
*************** b78c22df355563107f991e1e75999388  gcc/te
*** 54208,54213 ****
--- 57298,57306 ----
  ab6bc72e5251715038d4dfdf5a92be3c  gcc/testsuite/gcc.target/aarch64/bti-4.c
  82ebc34e179e256a16633eeed8f5931d  gcc/testsuite/gcc.target/aarch64/builtin-bswap-1.c
  33f370cd2a619d45e68ba5747504d94e  gcc/testsuite/gcc.target/aarch64/builtin-bswap-2.c
+ ac800c0500abf9ea311dffda98f211fe  gcc/testsuite/gcc.target/aarch64/builtin_apply-1.c
+ 8afdfea25c5c0f6b7a714287496d0ffd  gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c
+ ebfe61998b217972759700f67918b7b9  gcc/testsuite/gcc.target/aarch64/builtin_pld_pli_illegal.c
  6927a6e9009b152efa44797dcae0c93a  gcc/testsuite/gcc.target/aarch64/builtin_sadd_128.c
  65465f2ba4ff1bba0055376633cc793f  gcc/testsuite/gcc.target/aarch64/builtin_saddl.c
  ca79e3e8e48412cc54e6a8e998f1e0c7  gcc/testsuite/gcc.target/aarch64/builtin_saddll.c
*************** f428f9c5b708c4aa5332ace486635c39  gcc/te
*** 54224,54231 ****
  c4ae2a7bf845c772f094152df5a530e4  gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
  d578e201f80bef3bb20982775c575c47  gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
  2cd370a67d59632871c3a25dd8578909  gcc/testsuite/gcc.target/aarch64/c-output-template.c
! 989fcce0ec4fb5aff0755dfb63c09104  gcc/testsuite/gcc.target/aarch64/ccmp_1.c
  c944449cf5b356cfed6ac847f005db22  gcc/testsuite/gcc.target/aarch64/ccmp_2.c
  210a06b80ccb6a87c0693b42719d3182  gcc/testsuite/gcc.target/aarch64/cinc_common_1.c
  f9b7d6532dbf0b85e4f2d34e60d8eba9  gcc/testsuite/gcc.target/aarch64/clrsb.c
  06b1d011104c741b0b515b92676f6c71  gcc/testsuite/gcc.target/aarch64/clz.c
--- 57317,57327 ----
  c4ae2a7bf845c772f094152df5a530e4  gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
  d578e201f80bef3bb20982775c575c47  gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
  2cd370a67d59632871c3a25dd8578909  gcc/testsuite/gcc.target/aarch64/c-output-template.c
! 17bf06a4a3e5b8e0afd594e9f9efeb59  gcc/testsuite/gcc.target/aarch64/ccmp_1.c
  c944449cf5b356cfed6ac847f005db22  gcc/testsuite/gcc.target/aarch64/ccmp_2.c
+ 241d8ea25e2bb3fe6d39fe6f2201baf9  gcc/testsuite/gcc.target/aarch64/ccmp_3.c
+ f19dc69c0aeda4c531ac93459c18637a  gcc/testsuite/gcc.target/aarch64/ccmp_4.c
+ 9239537044e0e8b3473c23208cfaec87  gcc/testsuite/gcc.target/aarch64/ccmp_5.c
  210a06b80ccb6a87c0693b42719d3182  gcc/testsuite/gcc.target/aarch64/cinc_common_1.c
  f9b7d6532dbf0b85e4f2d34e60d8eba9  gcc/testsuite/gcc.target/aarch64/clrsb.c
  06b1d011104c741b0b515b92676f6c71  gcc/testsuite/gcc.target/aarch64/clz.c
*************** ee389eae370cb027260e737bcb692a7d  gcc/te
*** 54243,54248 ****
--- 57339,57345 ----
  aace2ed034a2ab98ac7097658cded7d2  gcc/testsuite/gcc.target/aarch64/combine_bfi_2.c
  8f93f4a270e92598ab0ec630e7163508  gcc/testsuite/gcc.target/aarch64/combine_bfxil.c
  7d998bdbaa387cd381e195454f81c9a1  gcc/testsuite/gcc.target/aarch64/combine_bfxil_2.c
+ 406527d352e705e9eea107377ec8bf3f  gcc/testsuite/gcc.target/aarch64/cond_op-1.c
  78f94a7be65d717b8374c731aed0783e  gcc/testsuite/gcc.target/aarch64/cond_op_imm_1.c
  3811d4cc6f8390eed0076b9d9707162e  gcc/testsuite/gcc.target/aarch64/construct_lane_zero_1.c
  00a4ff8c32a4c83ca879cf99e246a37d  gcc/testsuite/gcc.target/aarch64/copysign-bsl.c
*************** f0d278d66f3c6d099e299ada3c0f2f5a  gcc/te
*** 54252,54258 ****
  e8f539acbee96c6f26c7eb82b2275f73  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-2.c
  bacc2bf13ff0d50de57c856b6cfe89f2  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-3.c
  204fe994da11aab4c0f8f0a889d976ad  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-4.c
! 9cfd4d4ad02332bd9b9d2ef4e80d85c6  gcc/testsuite/gcc.target/aarch64/cpunative/aarch64-cpunative.exp
  f88dcec7a52a0d115da213f16170f154  gcc/testsuite/gcc.target/aarch64/cpunative/info_0
  8d55917f3f8bda7a065c7a0f0fb75c4b  gcc/testsuite/gcc.target/aarch64/cpunative/info_1
  ee8eca9c8007ef2044353709e26a2510  gcc/testsuite/gcc.target/aarch64/cpunative/info_10
--- 57349,57355 ----
  e8f539acbee96c6f26c7eb82b2275f73  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-2.c
  bacc2bf13ff0d50de57c856b6cfe89f2  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-3.c
  204fe994da11aab4c0f8f0a889d976ad  gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-4.c
! 4c042431bd9c0fee72fecae7e28abe01  gcc/testsuite/gcc.target/aarch64/cpunative/aarch64-cpunative.exp
  f88dcec7a52a0d115da213f16170f154  gcc/testsuite/gcc.target/aarch64/cpunative/info_0
  8d55917f3f8bda7a065c7a0f0fb75c4b  gcc/testsuite/gcc.target/aarch64/cpunative/info_1
  ee8eca9c8007ef2044353709e26a2510  gcc/testsuite/gcc.target/aarch64/cpunative/info_10
*************** d205b924c7f019cc69da5720c3107c22  gcc/te
*** 54269,54274 ****
--- 57366,57373 ----
  21db1247990bbb695911318f39d8bd85  gcc/testsuite/gcc.target/aarch64/cpunative/info_20
  d335e36067020cadd7d9a133513eafd0  gcc/testsuite/gcc.target/aarch64/cpunative/info_21
  10b507183ea6ee447505b829be51e826  gcc/testsuite/gcc.target/aarch64/cpunative/info_22
+ bc6bfc844c0478de24fdceef61c08381  gcc/testsuite/gcc.target/aarch64/cpunative/info_23
+ af7eded849fa43258d6a947345148ae5  gcc/testsuite/gcc.target/aarch64/cpunative/info_24
  4c4387d4071cf10c793b4efe11f43439  gcc/testsuite/gcc.target/aarch64/cpunative/info_3
  d8a7caffcc99feff5312001aed51cd38  gcc/testsuite/gcc.target/aarch64/cpunative/info_4
  195bf754aeaf6d4fa8426e8fb4a553ce  gcc/testsuite/gcc.target/aarch64/cpunative/info_5
*************** d8a7caffcc99feff5312001aed51cd38  gcc/te
*** 54276,54311 ****
  a4639eec7e5e20089dff980c4a41ff83  gcc/testsuite/gcc.target/aarch64/cpunative/info_7
  f8a42f4cf707ff9f63c265a3286517d1  gcc/testsuite/gcc.target/aarch64/cpunative/info_8
  b2078512594dc486f0ff5f2a787bc11a  gcc/testsuite/gcc.target/aarch64/cpunative/info_9
! 001023459e427c6da4b2a886baaf3e9c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_0.c
! 1dbb8e9e14a8f091753c4cdc0bb18156  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_1.c
! c7370b7498d9a03df58bea8b1defa2f7  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_10.c
! 9066b157ae07f93acfab6f4f76a1ed40  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_11.c
! d381cd3e88e2680adaf2d96ab40c7f36  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_12.c
! f4a3bc92b6cd54dfb06948010e6af5de  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_13.c
! 6053245b4b2e80b7e957f46340ac4844  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_14.c
! 1edb30a14c92c1f3d8768f2fe63085ab  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_15.c
! bd3077fc2687bf509987850e7707ea80  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_16.c
! 1f77dd934a211344d8c9fcc3d6a12401  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_17.c
! 7f6f8f8e6241c818ea037d533dc71d1a  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_18.c
! 476b3fa2c761d7942530b1eae27aec1b  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_19.c
! 9d16997853f8148025ecc0370b78842f  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_2.c
! 6f01c32735c284b9b5c64340ca11fbbe  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_20.c
! e033630a50ba8eda1384e5633631743a  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_21.c
! b261e4b3a92afb198bb5a15e54284bae  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_22.c
! 5932d955ed9dc11faefb9f331763ff2c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_3.c
! cfd988497c936bc048f9b952dc82ebac  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_4.c
! f40714de7a09b627eb98087b5a7cff0a  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_5.c
! 9852d3f0d62cf759f60853c972dbbedb  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_6.c
! c554faf0b14292eccb2f12f903c5ec3f  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_7.c
! 464a3107496c61df0ccb63ddc46e787f  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_8.c
! 3a30be9f048052ce41672d65dd8f9fed  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_9.c
  e8ccec6b2fb8a30023cf88dcf2548dba  gcc/testsuite/gcc.target/aarch64/cpymem-q-reg_1.c
  8d232ec62529aafba12431c49d0e03d4  gcc/testsuite/gcc.target/aarch64/cpymem-size.c
  e127674777b8d02e7ad1d0d85afb8eda  gcc/testsuite/gcc.target/aarch64/csel_bfx_1.c
  0f38f1bf69aced631eb538fe6f944aad  gcc/testsuite/gcc.target/aarch64/csel_imms_inc_1.c
  84a090e1555a75d7d6e3d23e245a0d46  gcc/testsuite/gcc.target/aarch64/csinc-1.c
  af3d0bc9d40b3fb7c6426688a1d29602  gcc/testsuite/gcc.target/aarch64/csinc-2.c
  eebd6ca7c2a0fe9846bf88388a00d172  gcc/testsuite/gcc.target/aarch64/csinv-1.c
  6410b551a20f2f0c610819e3d5145b76  gcc/testsuite/gcc.target/aarch64/csinv-neg-1.c
  dee20761ab09d0689a56f667594a30a7  gcc/testsuite/gcc.target/aarch64/csinv-neg.c
  daa118ed7835c32ea71c32e65d22689f  gcc/testsuite/gcc.target/aarch64/csneg-1.c
--- 57375,57415 ----
  a4639eec7e5e20089dff980c4a41ff83  gcc/testsuite/gcc.target/aarch64/cpunative/info_7
  f8a42f4cf707ff9f63c265a3286517d1  gcc/testsuite/gcc.target/aarch64/cpunative/info_8
  b2078512594dc486f0ff5f2a787bc11a  gcc/testsuite/gcc.target/aarch64/cpunative/info_9
! ffa0f5c14e361a4c13b4dae7c1e3bc31  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_0.c
! 0b959a308c60758eae84d52bce3886ef  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_1.c
! 68fbdfb6924a730d0e7021b570e92457  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_10.c
! 9a5c8a05cfb5194eb858e66b29615f6c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_11.c
! 9c1c421af14e13d528830b5a276bb16b  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_12.c
! c2d2ddf525b94d766e48a0da5d8a2088  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_13.c
! 0643d48ec914240401f209cb31f4540a  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_14.c
! 5bbd7f233ecac91bf9e92525235f811f  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_15.c
! 3fe5d228893dc7392ef4e8949448e5f3  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_16.c
! fcf175b96b1232e14cf68a2873e5158b  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_17.c
! 38ebe07ea30658fb9eadb011321d408c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_18.c
! 1c4f8dce8be342dbb992894cb166b294  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_19.c
! 89c1dad76697e90c6f60664458c8c4ba  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_2.c
! 1b03a6f5cffb3433a29ae9e9ef08bdc7  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_20.c
! c17c6b760b763931849708dac88df69f  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_21.c
! 06094760266cd69289bf27460ac3cee9  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_22.c
! 87529e68023afb4019b3bd5e7a79fdcf  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_23.c
! d988aea2234754cb819d3739755dd774  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_24.c
! f61082217e1b13aa7be48cee990bc135  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_3.c
! d1af08d975410370c6fd940a45ef218c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_4.c
! 37f85a7eaba0054155c050334e383421  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_5.c
! 63c5b23fb80b8ec12cc3c65027436fde  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_6.c
! 421d3ae7ad3b1de738402010e74ba40e  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_7.c
! c5a25189d013bff63967d8ba4395e70f  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_8.c
! 480caca0a9fee70800397740ad646165  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_9.c
  e8ccec6b2fb8a30023cf88dcf2548dba  gcc/testsuite/gcc.target/aarch64/cpymem-q-reg_1.c
  8d232ec62529aafba12431c49d0e03d4  gcc/testsuite/gcc.target/aarch64/cpymem-size.c
  e127674777b8d02e7ad1d0d85afb8eda  gcc/testsuite/gcc.target/aarch64/csel_bfx_1.c
+ 0fcb30ee0ed54592f917c0a2ca39da92  gcc/testsuite/gcc.target/aarch64/csel_bfx_2.c
  0f38f1bf69aced631eb538fe6f944aad  gcc/testsuite/gcc.target/aarch64/csel_imms_inc_1.c
  84a090e1555a75d7d6e3d23e245a0d46  gcc/testsuite/gcc.target/aarch64/csinc-1.c
  af3d0bc9d40b3fb7c6426688a1d29602  gcc/testsuite/gcc.target/aarch64/csinc-2.c
+ a7cc9f628dc551103dcae76f4c42f571  gcc/testsuite/gcc.target/aarch64/csinc-3.c
  eebd6ca7c2a0fe9846bf88388a00d172  gcc/testsuite/gcc.target/aarch64/csinv-1.c
+ 50a331be5c5ce2cf83a1e168d92246b2  gcc/testsuite/gcc.target/aarch64/csinv-2.c
  6410b551a20f2f0c610819e3d5145b76  gcc/testsuite/gcc.target/aarch64/csinv-neg-1.c
  dee20761ab09d0689a56f667594a30a7  gcc/testsuite/gcc.target/aarch64/csinv-neg.c
  daa118ed7835c32ea71c32e65d22689f  gcc/testsuite/gcc.target/aarch64/csneg-1.c
*************** f8584ef5813441112b0bfb8283a130fd  gcc/te
*** 54316,54327 ****
  c6f22c75d128166e2734ec28d48d349b  gcc/testsuite/gcc.target/aarch64/cssc_5.c
  f15d1ff83066971ce9a42593ae9e147c  gcc/testsuite/gcc.target/aarch64/ctz.c
  66e80d99734f8cef1f2093c52336c4c2  gcc/testsuite/gcc.target/aarch64/cvtf_1.c
! aae1cd7b85cfa4ed915a5b8a0b263fda  gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
  063fb3cb3ef8c03670a39beb490eee85  gcc/testsuite/gcc.target/aarch64/diag_aka_1.c
  99d13b07988399a087cb53856c728972  gcc/testsuite/gcc.target/aarch64/div-by-bitmask.c
  5a0fb82365f402f7b5e039bc723a3020  gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
  a9ccf8cef71e90daa83ae00204fd983c  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_1.c
  5fdc01fccf89920c24ce6dadea7114d3  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_2.c
  337c39f85c95ad488bb585665bf18a76  gcc/testsuite/gcc.target/aarch64/eh_return.c
  0d0e2a489d3255344941fbdef5cd849a  gcc/testsuite/gcc.target/aarch64/eon_1.c
  8dac5a05d1eca8860b3df16bc7b03f2a  gcc/testsuite/gcc.target/aarch64/extend-syntax.c
--- 57420,57435 ----
  c6f22c75d128166e2734ec28d48d349b  gcc/testsuite/gcc.target/aarch64/cssc_5.c
  f15d1ff83066971ce9a42593ae9e147c  gcc/testsuite/gcc.target/aarch64/ctz.c
  66e80d99734f8cef1f2093c52336c4c2  gcc/testsuite/gcc.target/aarch64/cvtf_1.c
! 3265bb3224d32bda35ba3927ebe123b5  gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
! a95c8779f3b9cc5c91774eab2c3b9b8d  gcc/testsuite/gcc.target/aarch64/declare-simd-1.c
! 41703958f685e80bf77bb344c18b67fc  gcc/testsuite/gcc.target/aarch64/declare-simd-2.c
  063fb3cb3ef8c03670a39beb490eee85  gcc/testsuite/gcc.target/aarch64/diag_aka_1.c
  99d13b07988399a087cb53856c728972  gcc/testsuite/gcc.target/aarch64/div-by-bitmask.c
  5a0fb82365f402f7b5e039bc723a3020  gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
  a9ccf8cef71e90daa83ae00204fd983c  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_1.c
  5fdc01fccf89920c24ce6dadea7114d3  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_2.c
+ 8315d244ed24d1cd05bc6fae2d911e8e  gcc/testsuite/gcc.target/aarch64/eh_return-2.c
+ 541dacd7bf1c293af6ef0e1ad4c5f943  gcc/testsuite/gcc.target/aarch64/eh_return-3.c
  337c39f85c95ad488bb585665bf18a76  gcc/testsuite/gcc.target/aarch64/eh_return.c
  0d0e2a489d3255344941fbdef5cd849a  gcc/testsuite/gcc.target/aarch64/eon_1.c
  8dac5a05d1eca8860b3df16bc7b03f2a  gcc/testsuite/gcc.target/aarch64/extend-syntax.c
*************** a9ccf8cef71e90daa83ae00204fd983c  gcc/te
*** 54333,54338 ****
--- 57441,57447 ----
  0b34d01deb7ba10b2680ec6c1f87743b  gcc/testsuite/gcc.target/aarch64/f16_mov_immediate_3.c
  e81304c89391c1aada178179ec2fbdca  gcc/testsuite/gcc.target/aarch64/f16_movs_1.c
  00e6e92ff613394f0a74acad3a55eb46  gcc/testsuite/gcc.target/aarch64/fabd.c
+ aa99270f5a066f6f9f04bf9022c9f496  gcc/testsuite/gcc.target/aarch64/facg_1.c
  49ec90613c7d01f51b54ae0134ad9626  gcc/testsuite/gcc.target/aarch64/fcsel_1.c
  21b6229f5dc2c7385cfe7155dd182c43  gcc/testsuite/gcc.target/aarch64/fcvt.x
  23f3739e5016b29009e15024c1d116e9  gcc/testsuite/gcc.target/aarch64/fcvt_double_int.c
*************** d256d1ca6afee8c9f035975033b2b6c6  gcc/te
*** 54364,54369 ****
--- 57473,57479 ----
  86d107005c385fe3591907b81522aaf8  gcc/testsuite/gcc.target/aarch64/ffs.c
  9c5bbea35483b24fc9a870096facec01  gcc/testsuite/gcc.target/aarch64/fix_extend1.c
  abddc9f1fca0b1871d2b5fa9f425d10a  gcc/testsuite/gcc.target/aarch64/fix_trunc1.c
+ 08efe84ed3a8a3a4d9a85a6d64eb9cae  gcc/testsuite/gcc.target/aarch64/float_truncate_zero.c
  bd03ecf6b19690f6dc1bbbd227d20b37  gcc/testsuite/gcc.target/aarch64/floatdihf2_1.c
  e72513b4caa62260940a267106d0a423  gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c
  d1278d287cb5cdd487a5dc5eb1a39f07  gcc/testsuite/gcc.target/aarch64/fmadd.c
*************** c3c69a71f2670cdbe2550868228987d2  gcc/te
*** 54384,54393 ****
  177e01eebca0354fdecdfea8902fd651  gcc/testsuite/gcc.target/aarch64/fmovld-zero-mem.c
  601316c07515259ff9862a3619b4369d  gcc/testsuite/gcc.target/aarch64/fmovld-zero-reg.c
  1b65f09f40144de16a3ef9f82ee84e8e  gcc/testsuite/gcc.target/aarch64/fmul_fcvt_1.c
! 9c8230d12decbc2037ad11b8e6be1ce2  gcc/testsuite/gcc.target/aarch64/fmul_fcvt_2.c
  7b71af44f426c02a57a50cd617031d72  gcc/testsuite/gcc.target/aarch64/fmul_intrinsic_1.c
  465c5e93e0d87400182fa5e10e3467e7  gcc/testsuite/gcc.target/aarch64/fmul_lane_1.c
  280080ede1b5fe22866a6d647c295c88  gcc/testsuite/gcc.target/aarch64/fmul_scvtf_1.c
  b41dba1046447c932cc183fe90f50467  gcc/testsuite/gcc.target/aarch64/fnmadd-fastmath.c
  b22aa9cc27c6d5f12963d16ea8b99803  gcc/testsuite/gcc.target/aarch64/fnmul-1.c
  b59ae0640b0fcb8cb2b558fc7fa92aac  gcc/testsuite/gcc.target/aarch64/fnmul-2.c
--- 57494,57507 ----
  177e01eebca0354fdecdfea8902fd651  gcc/testsuite/gcc.target/aarch64/fmovld-zero-mem.c
  601316c07515259ff9862a3619b4369d  gcc/testsuite/gcc.target/aarch64/fmovld-zero-reg.c
  1b65f09f40144de16a3ef9f82ee84e8e  gcc/testsuite/gcc.target/aarch64/fmul_fcvt_1.c
! 65aa15a5d83741a82efe4a7622931aa9  gcc/testsuite/gcc.target/aarch64/fmul_fcvt_2.c
  7b71af44f426c02a57a50cd617031d72  gcc/testsuite/gcc.target/aarch64/fmul_intrinsic_1.c
  465c5e93e0d87400182fa5e10e3467e7  gcc/testsuite/gcc.target/aarch64/fmul_lane_1.c
  280080ede1b5fe22866a6d647c295c88  gcc/testsuite/gcc.target/aarch64/fmul_scvtf_1.c
+ b075be33bb3dd3fe6cfc7fed03f4e7bd  gcc/testsuite/gcc.target/aarch64/fneg-abs_1.c
+ 23b74c903f32d288f1f020d8c6a635c9  gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c
+ 0d030dfc7300a0c8f233b0c19df84323  gcc/testsuite/gcc.target/aarch64/fneg-abs_3.c
+ 8653dd9b97414054987543b18b6e887d  gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c
  b41dba1046447c932cc183fe90f50467  gcc/testsuite/gcc.target/aarch64/fnmadd-fastmath.c
  b22aa9cc27c6d5f12963d16ea8b99803  gcc/testsuite/gcc.target/aarch64/fnmul-1.c
  b59ae0640b0fcb8cb2b558fc7fa92aac  gcc/testsuite/gcc.target/aarch64/fnmul-2.c
*************** a1212235242dd12baac6ac6d3f0f04ad  gcc/te
*** 54395,54401 ****
  37fb660ad953888e296980c0d2b85a7c  gcc/testsuite/gcc.target/aarch64/fnmul-4.c
  a9470d48ec15369aea11218770e41e89  gcc/testsuite/gcc.target/aarch64/fp16/f16_convs_1.c
  1a65d9a8643a40367284cf31d1d3b963  gcc/testsuite/gcc.target/aarch64/fp16/f16_convs_2.c
! dc5ab594228ca6b61b3ba51dad0c5969  gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp
  c789e3d353f9e2287a4c9ef36dffcb2f  gcc/testsuite/gcc.target/aarch64/fp16/set_zero_1.c
  33e7feca82b3b0b54d58bbcd49d61f40  gcc/testsuite/gcc.target/aarch64/fp16_fmul_high.h
  7aa945158b0a4b5f86014c0b7d857a22  gcc/testsuite/gcc.target/aarch64/fp16_fmul_high_1.c
--- 57509,57515 ----
  37fb660ad953888e296980c0d2b85a7c  gcc/testsuite/gcc.target/aarch64/fnmul-4.c
  a9470d48ec15369aea11218770e41e89  gcc/testsuite/gcc.target/aarch64/fp16/f16_convs_1.c
  1a65d9a8643a40367284cf31d1d3b963  gcc/testsuite/gcc.target/aarch64/fp16/f16_convs_2.c
! cd6a6d038eb7032b7b5e88e2780d6056  gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp
  c789e3d353f9e2287a4c9ef36dffcb2f  gcc/testsuite/gcc.target/aarch64/fp16/set_zero_1.c
  33e7feca82b3b0b54d58bbcd49d61f40  gcc/testsuite/gcc.target/aarch64/fp16_fmul_high.h
  7aa945158b0a4b5f86014c0b7d857a22  gcc/testsuite/gcc.target/aarch64/fp16_fmul_high_1.c
*************** f7353dd395d4a06a8cb38e34a076fb39  gcc/te
*** 54432,54454 ****
  65020835c6bbf8049ce4f2254d0ae7cb  gcc/testsuite/gcc.target/aarch64/if-compare_2.c
  b90f3600518fbc46af4cd4bd1cdb7186  gcc/testsuite/gcc.target/aarch64/ifcvt_multiple_sets_subreg_1.c
  af0e32f53ec629289269248abb106c2e  gcc/testsuite/gcc.target/aarch64/iinline-attr-1.c
! aefe1b3bc82bc3b13544821b70918a4f  gcc/testsuite/gcc.target/aarch64/imm_choice_comparison.c
  aa9097deb2901881188486bdf9eb3343  gcc/testsuite/gcc.target/aarch64/index.c
  2b13cf8445a95980ea035811da6abe95  gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
  caaafb769b844ad26e03a5f739c93732  gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c
  b37a5781e82510dfa7ecdf3ce4922a58  gcc/testsuite/gcc.target/aarch64/insv_1.c
  a897ae01d807185bd4ca7f1587e181d9  gcc/testsuite/gcc.target/aarch64/insv_2.c
  18f0bd2efa738426efce6208b83e0cbd  gcc/testsuite/gcc.target/aarch64/int_mov_immediate_1.c
- f4cfa8c3ddedd1eb26e5f20fdfac88d1  gcc/testsuite/gcc.target/aarch64/interleave-init-1.c
  2feabf7a23a544e445cd6f1d402811d0  gcc/testsuite/gcc.target/aarch64/lane-bound-1.c
  49907aab7182a2a85495455c2d574117  gcc/testsuite/gcc.target/aarch64/lane-bound-2.c
  81256a6fac965eea861536637ff35013  gcc/testsuite/gcc.target/aarch64/large_struct_copy.c
  508532c90ef5da7602402b5f0076c554  gcc/testsuite/gcc.target/aarch64/large_struct_copy_2.c
  aa51cad6adc25f2ceabe6717f164d378  gcc/testsuite/gcc.target/aarch64/ldapr-sext.c
! 38fc6dd344a380994437f88ed387faca  gcc/testsuite/gcc.target/aarch64/ldapr-zext.c
  68214d6b949317dd07f6359cdaaaf7d5  gcc/testsuite/gcc.target/aarch64/ldapr.c
  e44d2a3726404fa7172221c7b20729b8  gcc/testsuite/gcc.target/aarch64/ldar_1.c
  8d2d09f7823d54ba6cd111f061a9329c  gcc/testsuite/gcc.target/aarch64/ldar_2.c
  c4d33c58db6c2e77df14b83ac56be1ec  gcc/testsuite/gcc.target/aarch64/ldp_stp_1.c
  d60171b608bda1a5cf0258e031bb3520  gcc/testsuite/gcc.target/aarch64/ldp_stp_10.c
  1786c5d34b0f7cceace3327361040bde  gcc/testsuite/gcc.target/aarch64/ldp_stp_11.c
--- 57546,57577 ----
  65020835c6bbf8049ce4f2254d0ae7cb  gcc/testsuite/gcc.target/aarch64/if-compare_2.c
  b90f3600518fbc46af4cd4bd1cdb7186  gcc/testsuite/gcc.target/aarch64/ifcvt_multiple_sets_subreg_1.c
  af0e32f53ec629289269248abb106c2e  gcc/testsuite/gcc.target/aarch64/iinline-attr-1.c
! 6fb81bd92df3487698e7f9bc3ce53f6e  gcc/testsuite/gcc.target/aarch64/imm_choice_comparison.c
  aa9097deb2901881188486bdf9eb3343  gcc/testsuite/gcc.target/aarch64/index.c
  2b13cf8445a95980ea035811da6abe95  gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
  caaafb769b844ad26e03a5f739c93732  gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c
+ 90527d433a3475173994f5e1d0e10202  gcc/testsuite/gcc.target/aarch64/inline-mem-set-pr112804.c
+ f93d26b8600db1431d907a2283893a96  gcc/testsuite/gcc.target/aarch64/ins_bitfield_1.c
+ 562885e1b79b6c4ecd87a7f511db5420  gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
+ 39e77099ed8a31c9803583dcfff90eb6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_3.c
+ 560aad3e91ef22a6855588024205f289  gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
+ 3d14be3c70a800fd875069d7410b31a6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_5.c
+ 825a05cc66dd3bb694b37457fcfbf490  gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
  b37a5781e82510dfa7ecdf3ce4922a58  gcc/testsuite/gcc.target/aarch64/insv_1.c
  a897ae01d807185bd4ca7f1587e181d9  gcc/testsuite/gcc.target/aarch64/insv_2.c
  18f0bd2efa738426efce6208b83e0cbd  gcc/testsuite/gcc.target/aarch64/int_mov_immediate_1.c
  2feabf7a23a544e445cd6f1d402811d0  gcc/testsuite/gcc.target/aarch64/lane-bound-1.c
  49907aab7182a2a85495455c2d574117  gcc/testsuite/gcc.target/aarch64/lane-bound-2.c
  81256a6fac965eea861536637ff35013  gcc/testsuite/gcc.target/aarch64/large_struct_copy.c
  508532c90ef5da7602402b5f0076c554  gcc/testsuite/gcc.target/aarch64/large_struct_copy_2.c
  aa51cad6adc25f2ceabe6717f164d378  gcc/testsuite/gcc.target/aarch64/ldapr-sext.c
! d8466196c5738675b4083dd4447f2cdc  gcc/testsuite/gcc.target/aarch64/ldapr-zext.c
  68214d6b949317dd07f6359cdaaaf7d5  gcc/testsuite/gcc.target/aarch64/ldapr.c
  e44d2a3726404fa7172221c7b20729b8  gcc/testsuite/gcc.target/aarch64/ldar_1.c
  8d2d09f7823d54ba6cd111f061a9329c  gcc/testsuite/gcc.target/aarch64/ldar_2.c
+ c6413118981f491be9ede894ae3f2e71  gcc/testsuite/gcc.target/aarch64/ldp_aligned.c
+ 19d89a057ead563f6210b1037d86a183  gcc/testsuite/gcc.target/aarch64/ldp_always.c
+ 8155aa5f08613225f718be84e5008489  gcc/testsuite/gcc.target/aarch64/ldp_never.c
  c4d33c58db6c2e77df14b83ac56be1ec  gcc/testsuite/gcc.target/aarch64/ldp_stp_1.c
  d60171b608bda1a5cf0258e031bb3520  gcc/testsuite/gcc.target/aarch64/ldp_stp_10.c
  1786c5d34b0f7cceace3327361040bde  gcc/testsuite/gcc.target/aarch64/ldp_stp_11.c
*************** bad5203b70baf772382e68b6c79a2da2  gcc/te
*** 54457,54469 ****
  f63af0e2c637d2d9ca8823625488dcda  gcc/testsuite/gcc.target/aarch64/ldp_stp_14.c
  5163e8d4cea70416f782eaff9affa0df  gcc/testsuite/gcc.target/aarch64/ldp_stp_14.h
  1f6c2cb1d0138cf6fab877c2e97f2ee1  gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
! c41a0c229f9176163d13cb44c65d01cc  gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
! cbdc754fdeb0adb91fae9b724bc37683  gcc/testsuite/gcc.target/aarch64/ldp_stp_17.c
  cb8abbb0950e72e68d86ee3959b22eee  gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
  c5975ec22e631fd84b727d806f60c43b  gcc/testsuite/gcc.target/aarch64/ldp_stp_19.c
  a942ef178dbff47e07909da75486489e  gcc/testsuite/gcc.target/aarch64/ldp_stp_2.c
  9e261e1619ca4e81d153ea9758d5be03  gcc/testsuite/gcc.target/aarch64/ldp_stp_20.c
! 0fed88402afe9cba3c6cab88369753b9  gcc/testsuite/gcc.target/aarch64/ldp_stp_21.c
  13127d30e930179c95b9c11cf172855d  gcc/testsuite/gcc.target/aarch64/ldp_stp_22.c
  a49bb74e71ea598c3c09fede3892b1f2  gcc/testsuite/gcc.target/aarch64/ldp_stp_23.c
  65457a83421b49a3500338270e1bec47  gcc/testsuite/gcc.target/aarch64/ldp_stp_24.c
--- 57580,57592 ----
  f63af0e2c637d2d9ca8823625488dcda  gcc/testsuite/gcc.target/aarch64/ldp_stp_14.c
  5163e8d4cea70416f782eaff9affa0df  gcc/testsuite/gcc.target/aarch64/ldp_stp_14.h
  1f6c2cb1d0138cf6fab877c2e97f2ee1  gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
! 66db316d3c42d9ddbeadd60f263792d4  gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
! ffedc0ef46ae1e25eb82fb4257a7f56e  gcc/testsuite/gcc.target/aarch64/ldp_stp_17.c
  cb8abbb0950e72e68d86ee3959b22eee  gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
  c5975ec22e631fd84b727d806f60c43b  gcc/testsuite/gcc.target/aarch64/ldp_stp_19.c
  a942ef178dbff47e07909da75486489e  gcc/testsuite/gcc.target/aarch64/ldp_stp_2.c
  9e261e1619ca4e81d153ea9758d5be03  gcc/testsuite/gcc.target/aarch64/ldp_stp_20.c
! eba5c2fe283dd3f3f18787c725265b5c  gcc/testsuite/gcc.target/aarch64/ldp_stp_21.c
  13127d30e930179c95b9c11cf172855d  gcc/testsuite/gcc.target/aarch64/ldp_stp_22.c
  a49bb74e71ea598c3c09fede3892b1f2  gcc/testsuite/gcc.target/aarch64/ldp_stp_23.c
  65457a83421b49a3500338270e1bec47  gcc/testsuite/gcc.target/aarch64/ldp_stp_24.c
*************** cf3224c75efba2a7cdab28293aa78058  gcc/te
*** 54472,54492 ****
  c61389721149fafe5b576ac5eac3e81d  gcc/testsuite/gcc.target/aarch64/ldp_stp_5.c
  61c09ae0091786f892f4de5b3a9a3458  gcc/testsuite/gcc.target/aarch64/ldp_stp_6.c
  59350b5fc92367fbd7dc7ea69d786e04  gcc/testsuite/gcc.target/aarch64/ldp_stp_7.c
! 97be2de5bff27731354e53fef8677db9  gcc/testsuite/gcc.target/aarch64/ldp_stp_8.c
  da228c5bd8eba6a5793d1df393f9c8d1  gcc/testsuite/gcc.target/aarch64/ldp_stp_9.c
  0bcc3ab641e2e6d78c1c1d5a7daf7a65  gcc/testsuite/gcc.target/aarch64/ldp_stp_q.c
  9e522133a644add5316916a419c9e2d7  gcc/testsuite/gcc.target/aarch64/ldp_stp_q_disable.c
  2e89613bc3014a7c541e4842fef81025  gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_1.c
! 29215c380dc3c39d0bb516b829dd0503  gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c
  cc9a9ea2da09d4b15bb44f3466819c58  gcc/testsuite/gcc.target/aarch64/ldp_vec_64_1.c
  d8fad0a193deddeb2e504f247f0e1721  gcc/testsuite/gcc.target/aarch64/ldp_vec_v2sf.c
  1457863fb2c6fad305de6653fab4b7ae  gcc/testsuite/gcc.target/aarch64/ldp_vec_v2si.c
  aacf72675fc499d7008f0afd92fba8a8  gcc/testsuite/gcc.target/aarch64/legitimize_stack_var_before_reload_1.c
  75b9e47e034140e3e91bf7ed48db1aad  gcc/testsuite/gcc.target/aarch64/load_v2vec_lanes_1.c
  16de8ed84724234cc0c899222f576867  gcc/testsuite/gcc.target/aarch64/long_branch_1.c
! e0426a33d4f559c4d94019530c6033af  gcc/testsuite/gcc.target/aarch64/lr_free_1.c
  a5cfe0849b43ef498cda6a872be26cb6  gcc/testsuite/gcc.target/aarch64/lr_free_2.c
  9ca4f25b97ec89a6e60a1484f11dc946  gcc/testsuite/gcc.target/aarch64/lrint-matherr.h
  7339c0aa8e8c4ee7e29c285881181276  gcc/testsuite/gcc.target/aarch64/lsl_asr_sbfiz.c
  7693bd5e719d20476ed31986d797a71e  gcc/testsuite/gcc.target/aarch64/madd_after_asm_1.c
  bb3da2a325af25b65f245763a182c784  gcc/testsuite/gcc.target/aarch64/masked_epilogue.c
--- 57595,57617 ----
  c61389721149fafe5b576ac5eac3e81d  gcc/testsuite/gcc.target/aarch64/ldp_stp_5.c
  61c09ae0091786f892f4de5b3a9a3458  gcc/testsuite/gcc.target/aarch64/ldp_stp_6.c
  59350b5fc92367fbd7dc7ea69d786e04  gcc/testsuite/gcc.target/aarch64/ldp_stp_7.c
! a8582030f92388542aa64d3c023021dd  gcc/testsuite/gcc.target/aarch64/ldp_stp_8.c
  da228c5bd8eba6a5793d1df393f9c8d1  gcc/testsuite/gcc.target/aarch64/ldp_stp_9.c
  0bcc3ab641e2e6d78c1c1d5a7daf7a65  gcc/testsuite/gcc.target/aarch64/ldp_stp_q.c
  9e522133a644add5316916a419c9e2d7  gcc/testsuite/gcc.target/aarch64/ldp_stp_q_disable.c
  2e89613bc3014a7c541e4842fef81025  gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_1.c
! 51bb10f532df4bc6978cee31e584b6ec  gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_2.c
! 3f3797acb2b274fe18352839b6facd1b  gcc/testsuite/gcc.target/aarch64/ldp_unaligned.c
  cc9a9ea2da09d4b15bb44f3466819c58  gcc/testsuite/gcc.target/aarch64/ldp_vec_64_1.c
  d8fad0a193deddeb2e504f247f0e1721  gcc/testsuite/gcc.target/aarch64/ldp_vec_v2sf.c
  1457863fb2c6fad305de6653fab4b7ae  gcc/testsuite/gcc.target/aarch64/ldp_vec_v2si.c
  aacf72675fc499d7008f0afd92fba8a8  gcc/testsuite/gcc.target/aarch64/legitimize_stack_var_before_reload_1.c
  75b9e47e034140e3e91bf7ed48db1aad  gcc/testsuite/gcc.target/aarch64/load_v2vec_lanes_1.c
  16de8ed84724234cc0c899222f576867  gcc/testsuite/gcc.target/aarch64/long_branch_1.c
! 88bfd0f75750bcbae51d894aa0f4baea  gcc/testsuite/gcc.target/aarch64/lr_free_1.c
  a5cfe0849b43ef498cda6a872be26cb6  gcc/testsuite/gcc.target/aarch64/lr_free_2.c
  9ca4f25b97ec89a6e60a1484f11dc946  gcc/testsuite/gcc.target/aarch64/lrint-matherr.h
+ 3e2f2e8484734ce36febdaef58fadad1  gcc/testsuite/gcc.target/aarch64/lse128-flag.c
  7339c0aa8e8c4ee7e29c285881181276  gcc/testsuite/gcc.target/aarch64/lsl_asr_sbfiz.c
  7693bd5e719d20476ed31986d797a71e  gcc/testsuite/gcc.target/aarch64/madd_after_asm_1.c
  bb3da2a325af25b65f245763a182c784  gcc/testsuite/gcc.target/aarch64/masked_epilogue.c
*************** bb3da2a325af25b65f245763a182c784  gcc/te
*** 54498,54506 ****
  cb18e653bc36a91d64d93edcc2632490  gcc/testsuite/gcc.target/aarch64/max_plus_6.c
  2475a4a20497e217c9d9f603eef918cd  gcc/testsuite/gcc.target/aarch64/max_plus_7.c
  33eab0e3b5245e5b101b281c59cd1cae  gcc/testsuite/gcc.target/aarch64/mem-shift-canonical.c
  913e2469a12f166a024ccedfe08051db  gcc/testsuite/gcc.target/aarch64/memset-corner-cases-2.c
! 374405f39b31b6bc7351dbd0fd02dfdb  gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c
! 870a86498f49d152dd144acaf79cf544  gcc/testsuite/gcc.target/aarch64/memset-q-reg.c
  99f047cbf8399ea75f540f743fbcd4cb  gcc/testsuite/gcc.target/aarch64/memset-strict-align-1.c
  424a2b5eafd789db7d0b5caa9628ff62  gcc/testsuite/gcc.target/aarch64/merge_trunc1.c
  4eed4dd5aa94cdbafdb452fb4f2fa939  gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c
--- 57623,57633 ----
  cb18e653bc36a91d64d93edcc2632490  gcc/testsuite/gcc.target/aarch64/max_plus_6.c
  2475a4a20497e217c9d9f603eef918cd  gcc/testsuite/gcc.target/aarch64/max_plus_7.c
  33eab0e3b5245e5b101b281c59cd1cae  gcc/testsuite/gcc.target/aarch64/mem-shift-canonical.c
+ 5ef2589d506c837eb28befbe4fe31ab7  gcc/testsuite/gcc.target/aarch64/memmove.c
+ b50e1f81d7305cfe5249cb4bd2be5e6f  gcc/testsuite/gcc.target/aarch64/memmove2.c
  913e2469a12f166a024ccedfe08051db  gcc/testsuite/gcc.target/aarch64/memset-corner-cases-2.c
! ed7961df6f5543807d73486339453e46  gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c
! ef180504b13044e94b604990b6c3ef43  gcc/testsuite/gcc.target/aarch64/memset-q-reg.c
  99f047cbf8399ea75f540f743fbcd4cb  gcc/testsuite/gcc.target/aarch64/memset-strict-align-1.c
  424a2b5eafd789db7d0b5caa9628ff62  gcc/testsuite/gcc.target/aarch64/merge_trunc1.c
  4eed4dd5aa94cdbafdb452fb4f2fa939  gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c
*************** cb35ae597b395ee5d00d96a082dfbd6a  gcc/te
*** 54531,54560 ****
  838782f1efd4baefc000469e9fa89394  gcc/testsuite/gcc.target/aarch64/mops_1.c
  1a56fe0cba4f9ce878a71c556244fa39  gcc/testsuite/gcc.target/aarch64/mops_2.c
  9e207cc04909dc52e63cc6c37858b5e4  gcc/testsuite/gcc.target/aarch64/mops_3.c
! 50151365e68fe7717c740c37be863cc2  gcc/testsuite/gcc.target/aarch64/mops_4.c
  fd48ccb944d2f2990e98c181bd06ec24  gcc/testsuite/gcc.target/aarch64/mops_5.c
  6b6269dcfa6bceb701b7943ad5703be6  gcc/testsuite/gcc.target/aarch64/mops_6.c
  a3777fac4759dcd3290aa64c1d8c180e  gcc/testsuite/gcc.target/aarch64/mops_7.c
  fe9f5338c111dab8f276e8a4494a0dcb  gcc/testsuite/gcc.target/aarch64/movdf_1.c
  4eaf2d9267fe13f12a85ce4cf0fa7ce3  gcc/testsuite/gcc.target/aarch64/movdi_1.c
  77bdacd4884727d28cdf331a4228bec9  gcc/testsuite/gcc.target/aarch64/movdi_2.c
  66870a63499684530fce81f912341322  gcc/testsuite/gcc.target/aarch64/movhf_1.c
  06e414f021c8fab509bb158c2da3d270  gcc/testsuite/gcc.target/aarch64/movhi_1.c
  f6ab612d7f8f0a3e569b67ec3d18908f  gcc/testsuite/gcc.target/aarch64/movi_1.c
  85fbc78b9315391c60d6d963528f56b8  gcc/testsuite/gcc.target/aarch64/movi_hf.c
! f3845a0299f51ecef1ccd2bcae060294  gcc/testsuite/gcc.target/aarch64/movk.c
  ae82e1a65f9bde05cbb20490441434f5  gcc/testsuite/gcc.target/aarch64/movk_2.c
  eb1f3b98910d52b14f033a9a92438cd5  gcc/testsuite/gcc.target/aarch64/movk_3.c
  8f9a97c266a8915a1e8b920efda091a7  gcc/testsuite/gcc.target/aarch64/movqi_1.c
  d4c27b38956ec8fb167aea6848768109  gcc/testsuite/gcc.target/aarch64/movsf_1.c
  98d49c1bf6bb77a3f05ffd1ccaccde82  gcc/testsuite/gcc.target/aarch64/movsi_1.c
  5260008b5bf426c473c9db5529ca9d42  gcc/testsuite/gcc.target/aarch64/movtf_1.c
  39df00ec4bd1411c1c8d69fd09d821b5  gcc/testsuite/gcc.target/aarch64/movtf_2.c
  823357b095860206610462e9b4d49d8f  gcc/testsuite/gcc.target/aarch64/movti_1.c
  61256683e06efa0fd21cd86e4829697d  gcc/testsuite/gcc.target/aarch64/movti_2.c
  db4d3fa1b5ba501f604db0f5bf16208a  gcc/testsuite/gcc.target/aarch64/movv16qi_1.c
  28ed27a67067dfa66b0e20cedba187bb  gcc/testsuite/gcc.target/aarch64/movv16qi_2.c
  5c90437514d5456256912d55e745eecd  gcc/testsuite/gcc.target/aarch64/movv16qi_3.c
  823e45606e78e31955727b7d97c25e6d  gcc/testsuite/gcc.target/aarch64/movv2di_1.c
  e1413ddcbf283ae1312893ff82fd70b8  gcc/testsuite/gcc.target/aarch64/movv2x16qi_1.c
  970594770208e13b0c5fbbf26313b2e7  gcc/testsuite/gcc.target/aarch64/movv2x8qi_1.c
--- 57658,57701 ----
  838782f1efd4baefc000469e9fa89394  gcc/testsuite/gcc.target/aarch64/mops_1.c
  1a56fe0cba4f9ce878a71c556244fa39  gcc/testsuite/gcc.target/aarch64/mops_2.c
  9e207cc04909dc52e63cc6c37858b5e4  gcc/testsuite/gcc.target/aarch64/mops_3.c
! 4f70f13ba5254fb500f72a9e35ec9b20  gcc/testsuite/gcc.target/aarch64/mops_4.c
  fd48ccb944d2f2990e98c181bd06ec24  gcc/testsuite/gcc.target/aarch64/mops_5.c
  6b6269dcfa6bceb701b7943ad5703be6  gcc/testsuite/gcc.target/aarch64/mops_6.c
  a3777fac4759dcd3290aa64c1d8c180e  gcc/testsuite/gcc.target/aarch64/mops_7.c
  fe9f5338c111dab8f276e8a4494a0dcb  gcc/testsuite/gcc.target/aarch64/movdf_1.c
+ 40a43f31482612210ee43260143a5e6f  gcc/testsuite/gcc.target/aarch64/movdf_2.c
  4eaf2d9267fe13f12a85ce4cf0fa7ce3  gcc/testsuite/gcc.target/aarch64/movdi_1.c
  77bdacd4884727d28cdf331a4228bec9  gcc/testsuite/gcc.target/aarch64/movdi_2.c
+ aef33f4442a73ccc05b40defa7720fe1  gcc/testsuite/gcc.target/aarch64/movdi_3.c
+ 9d363698895d3a9308e0927bfa696de7  gcc/testsuite/gcc.target/aarch64/moveor_imm.c
  66870a63499684530fce81f912341322  gcc/testsuite/gcc.target/aarch64/movhf_1.c
+ e172857de0686ca60782026aff0cff2c  gcc/testsuite/gcc.target/aarch64/movhf_2.c
  06e414f021c8fab509bb158c2da3d270  gcc/testsuite/gcc.target/aarch64/movhi_1.c
+ 7091d9c5236007935dc65f318abc1a33  gcc/testsuite/gcc.target/aarch64/movhi_2.c
  f6ab612d7f8f0a3e569b67ec3d18908f  gcc/testsuite/gcc.target/aarch64/movi_1.c
  85fbc78b9315391c60d6d963528f56b8  gcc/testsuite/gcc.target/aarch64/movi_hf.c
! 2784b30a145816de47d288c3241aeac2  gcc/testsuite/gcc.target/aarch64/movk.c
  ae82e1a65f9bde05cbb20490441434f5  gcc/testsuite/gcc.target/aarch64/movk_2.c
  eb1f3b98910d52b14f033a9a92438cd5  gcc/testsuite/gcc.target/aarch64/movk_3.c
  8f9a97c266a8915a1e8b920efda091a7  gcc/testsuite/gcc.target/aarch64/movqi_1.c
+ 2e662fccbf891a9576b284c3ae46432e  gcc/testsuite/gcc.target/aarch64/movqi_2.c
  d4c27b38956ec8fb167aea6848768109  gcc/testsuite/gcc.target/aarch64/movsf_1.c
+ 0060cd9a84f65c212cbfdfe356bd78c6  gcc/testsuite/gcc.target/aarch64/movsf_2.c
  98d49c1bf6bb77a3f05ffd1ccaccde82  gcc/testsuite/gcc.target/aarch64/movsi_1.c
+ 9390dd19a47368363c8572da8cefc42c  gcc/testsuite/gcc.target/aarch64/movsi_2.c
  5260008b5bf426c473c9db5529ca9d42  gcc/testsuite/gcc.target/aarch64/movtf_1.c
  39df00ec4bd1411c1c8d69fd09d821b5  gcc/testsuite/gcc.target/aarch64/movtf_2.c
+ 22ce7a399c1449e3a73e5c07d1ec6c46  gcc/testsuite/gcc.target/aarch64/movtf_3.c
+ d0ea1a89930f9754bad4281bd290e63c  gcc/testsuite/gcc.target/aarch64/movtf_4.c
  823357b095860206610462e9b4d49d8f  gcc/testsuite/gcc.target/aarch64/movti_1.c
  61256683e06efa0fd21cd86e4829697d  gcc/testsuite/gcc.target/aarch64/movti_2.c
+ 113e45c7b700546ca7d0dac30a1d8bd2  gcc/testsuite/gcc.target/aarch64/movti_3.c
+ 509511b9929fa7991e2506df6d9fd3c6  gcc/testsuite/gcc.target/aarch64/movti_4.c
  db4d3fa1b5ba501f604db0f5bf16208a  gcc/testsuite/gcc.target/aarch64/movv16qi_1.c
  28ed27a67067dfa66b0e20cedba187bb  gcc/testsuite/gcc.target/aarch64/movv16qi_2.c
  5c90437514d5456256912d55e745eecd  gcc/testsuite/gcc.target/aarch64/movv16qi_3.c
+ 50c2f2c8b43a566e18ee4548792dcf21  gcc/testsuite/gcc.target/aarch64/movv16qi_4.c
+ 927cb163b6b398b3d277e3abb8754be6  gcc/testsuite/gcc.target/aarch64/movv16qi_5.c
  823e45606e78e31955727b7d97c25e6d  gcc/testsuite/gcc.target/aarch64/movv2di_1.c
  e1413ddcbf283ae1312893ff82fd70b8  gcc/testsuite/gcc.target/aarch64/movv2x16qi_1.c
  970594770208e13b0c5fbbf26313b2e7  gcc/testsuite/gcc.target/aarch64/movv2x8qi_1.c
*************** a642072306e978a39000ad2039303e17  gcc/te
*** 54565,54570 ****
--- 57706,57722 ----
  5e04d57c61b44aa3f8b127d73d163ce0  gcc/testsuite/gcc.target/aarch64/movv8qi_1.c
  5258818fc0a55113c967990ffec0ef08  gcc/testsuite/gcc.target/aarch64/movv8qi_2.c
  40eb481cbe44f83df2c6cf97bbd02e6d  gcc/testsuite/gcc.target/aarch64/movv8qi_3.c
+ 989b3ee1ab71746069f9512c3cfc893c  gcc/testsuite/gcc.target/aarch64/movv8qi_4.c
+ f42e92224664e9fa5060a38f34f8bd42  gcc/testsuite/gcc.target/aarch64/mtp.c
+ fcc590063ff2eec1e128ffe964398347  gcc/testsuite/gcc.target/aarch64/mtp_1.c
+ f846e958bf5a85815f3749a0d9068408  gcc/testsuite/gcc.target/aarch64/mtp_2.c
+ 8db0bcca356c0057f9753f8dc5013272  gcc/testsuite/gcc.target/aarch64/mtp_3.c
+ 7b2f761bbb1967b92eec8b81080e5a36  gcc/testsuite/gcc.target/aarch64/mtp_4.c
+ a2b3253cfc76e1c5ee4759cb1a1e03c4  gcc/testsuite/gcc.target/aarch64/mtp_5.c
+ ce61cd3d9f72064bae7b0a168eb81f7a  gcc/testsuite/gcc.target/aarch64/mtp_6.c
+ 5de5ce091761efcc80e07bba20af00f0  gcc/testsuite/gcc.target/aarch64/mtp_7.c
+ b6cced1d94f00d1d4e15cfec525b6b22  gcc/testsuite/gcc.target/aarch64/mtp_8.c
+ 7c5d53abaf1ab2f179841ad2a54207dc  gcc/testsuite/gcc.target/aarch64/mtp_9.c
  db03f22087ec85856b46abc08df18a7c  gcc/testsuite/gcc.target/aarch64/mul_intrinsic_1.c
  b9c785119e80b786b5898ebaa7db0700  gcc/testsuite/gcc.target/aarch64/mult-synth_1.c
  5e37be111c4688833b9693bc6302f1ed  gcc/testsuite/gcc.target/aarch64/mult-synth_2.c
*************** c62a8a637de4eb00aef16c6f2aa34f7e  gcc/te
*** 54581,54590 ****
--- 57733,57745 ----
  98aa8533c6a9248fe295572b2512fac7  gcc/testsuite/gcc.target/aarch64/neg_abs_1.c
  c8c679e672173f52fbc0d86757b5c05a  gcc/testsuite/gcc.target/aarch64/negs.c
  c73625ed2ccdb03a534164bcd8dc3145  gcc/testsuite/gcc.target/aarch64/neoverse_v1_1.c
+ e3a8c5bfee4d33ed4f53056a51b94ec3  gcc/testsuite/gcc.target/aarch64/neoverse_v1_2.c
+ 56bdf6258ec7b70f3d355abb9f4cd070  gcc/testsuite/gcc.target/aarch64/neoverse_v1_3.c
  face3a8c6631236fedad3dce5526b762  gcc/testsuite/gcc.target/aarch64/ngc.c
  fb19dd57034e67da13f2a5b22815fcc5  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
  56f1cae94d74d605f3127ff54df58e5e  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_2.c
  9567b5cb1744b0c5a301604d3a25bbc2  gcc/testsuite/gcc.target/aarch64/no-inline-lrint_3.c
+ b716a0213aba89c759289668d57ef9cd  gcc/testsuite/gcc.target/aarch64/no_merge_trunc_signed_zero.c
  13a63494139cde5273b13f2e4eb58493  gcc/testsuite/gcc.target/aarch64/nofp_1.c
  b0e90aa46397bdde3bb349cc558012c7  gcc/testsuite/gcc.target/aarch64/nofp_2.c
  31192c5ad4b7d30f5e3a3f25a5e74741  gcc/testsuite/gcc.target/aarch64/noplt_1.c
*************** b0e90aa46397bdde3bb349cc558012c7  gcc/te
*** 54592,54622 ****
  e1e28ce510ce90ec2cf4b8863b5abb4d  gcc/testsuite/gcc.target/aarch64/noplt_3.c
  e061c7b1af333a61965c081818e07940  gcc/testsuite/gcc.target/aarch64/nospill.c
  5d43e2829488a18473d4b2ca37cdaf82  gcc/testsuite/gcc.target/aarch64/nosplit-di-const-volatile_1.c
! 773bc5b0a8368679f7d4856edfb4d60f  gcc/testsuite/gcc.target/aarch64/options_set_1.c
! c5e8bab80eb00f021421951e89f331a9  gcc/testsuite/gcc.target/aarch64/options_set_11.c
! 3a1012ebba55424a028d07c19041e778  gcc/testsuite/gcc.target/aarch64/options_set_12.c
! 7f1d3dc87c84e390ee1213d03242532f  gcc/testsuite/gcc.target/aarch64/options_set_13.c
! 73598bec73a5162476ba275cf936b29f  gcc/testsuite/gcc.target/aarch64/options_set_14.c
! 788622f7d718938d2ace0faf054645e3  gcc/testsuite/gcc.target/aarch64/options_set_15.c
! a1bbe83545c5254641ff6b90ee835c61  gcc/testsuite/gcc.target/aarch64/options_set_16.c
! 7de15e6e1084033d6b95a78446e19759  gcc/testsuite/gcc.target/aarch64/options_set_17.c
! 65f58e1706d189216515431bf57337c7  gcc/testsuite/gcc.target/aarch64/options_set_18.c
! bbac3d5e80988a3a19fd1bad42c38ac0  gcc/testsuite/gcc.target/aarch64/options_set_19.c
! 92e6cecbbd6027815cc383aea7f6506d  gcc/testsuite/gcc.target/aarch64/options_set_2.c
! 22795f64e718b99e4ce25b666f1d0146  gcc/testsuite/gcc.target/aarch64/options_set_20.c
! 7155a606924a2522e139f80e006686c0  gcc/testsuite/gcc.target/aarch64/options_set_21.c
! a92fd71ffb40052125105d63684b3c88  gcc/testsuite/gcc.target/aarch64/options_set_22.c
! cd36419db4c9900c9708bb37b8a098cf  gcc/testsuite/gcc.target/aarch64/options_set_23.c
! 0c4290a59a2e292e41e0c29bb697fc3a  gcc/testsuite/gcc.target/aarch64/options_set_24.c
! 4859272e9512afe43a0babeaeb697569  gcc/testsuite/gcc.target/aarch64/options_set_25.c
! 22795f64e718b99e4ce25b666f1d0146  gcc/testsuite/gcc.target/aarch64/options_set_26.c
! dadab3a539de6a89bb855b42477abf45  gcc/testsuite/gcc.target/aarch64/options_set_3.c
! 126860f6709220fb9557ef4fc3c09ed7  gcc/testsuite/gcc.target/aarch64/options_set_4.c
! 8f27bf551906208d070df1b7012a68a2  gcc/testsuite/gcc.target/aarch64/options_set_5.c
! 4cf7502e3271943a7d36d78ab82b8bbf  gcc/testsuite/gcc.target/aarch64/options_set_6.c
! 3c7fc6e40b171e0b03c095ccf5773192  gcc/testsuite/gcc.target/aarch64/options_set_7.c
! 51f0102245f943732739fa2da8b863ee  gcc/testsuite/gcc.target/aarch64/options_set_8.c
! df4e11a3114d2114f873039e70aa26eb  gcc/testsuite/gcc.target/aarch64/options_set_9.c
  2ba9e0951fadcf5ce5f2eab080c09a68  gcc/testsuite/gcc.target/aarch64/orr_imm_1.c
  2affd5586d9d9534731788d83a2a3904  gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c
  b0a892934f70ddbece003356d1462148  gcc/testsuite/gcc.target/aarch64/pcs_attribute-3.c
--- 57747,57779 ----
  e1e28ce510ce90ec2cf4b8863b5abb4d  gcc/testsuite/gcc.target/aarch64/noplt_3.c
  e061c7b1af333a61965c081818e07940  gcc/testsuite/gcc.target/aarch64/nospill.c
  5d43e2829488a18473d4b2ca37cdaf82  gcc/testsuite/gcc.target/aarch64/nosplit-di-const-volatile_1.c
! 73c9daf060bcd5eae98045984538301a  gcc/testsuite/gcc.target/aarch64/options_set_1.c
! 3b2c503676415e57877128f0812b273e  gcc/testsuite/gcc.target/aarch64/options_set_11.c
! e74e00a462db328ebba52bdd0b81391d  gcc/testsuite/gcc.target/aarch64/options_set_12.c
! 9f120759aeed1a507a970efd7f1809fd  gcc/testsuite/gcc.target/aarch64/options_set_13.c
! 26c2a0f2fb47796c28f0dc19b6e3a4c7  gcc/testsuite/gcc.target/aarch64/options_set_14.c
! 72e7fc58a17a703101b468d9f9b2dbec  gcc/testsuite/gcc.target/aarch64/options_set_15.c
! 3937a4d04ce70cfd4ff0e07dbb5a5f1a  gcc/testsuite/gcc.target/aarch64/options_set_16.c
! 4526c4597021eef530c7e9cbc7320264  gcc/testsuite/gcc.target/aarch64/options_set_17.c
! 2d346eef06fbb020703d9581cdb0fda3  gcc/testsuite/gcc.target/aarch64/options_set_18.c
! 70a90fe0e350a4e0f2b6883085089d41  gcc/testsuite/gcc.target/aarch64/options_set_19.c
! fc93522619724385bed3e39780a947e1  gcc/testsuite/gcc.target/aarch64/options_set_2.c
! 987d08a4134e473a1aeb60c120914f29  gcc/testsuite/gcc.target/aarch64/options_set_20.c
! 2e682d2ebf4368e64640121279652b36  gcc/testsuite/gcc.target/aarch64/options_set_21.c
! 161033b5f1a026ccdc767985390182fb  gcc/testsuite/gcc.target/aarch64/options_set_22.c
! cc673aee5d01bdca3169c14664bb007e  gcc/testsuite/gcc.target/aarch64/options_set_23.c
! 78b941c1f7d1bf87ef93ab9b14af1278  gcc/testsuite/gcc.target/aarch64/options_set_24.c
! 551652fedc9c1737ba030cf69ed1eeb1  gcc/testsuite/gcc.target/aarch64/options_set_25.c
! 987d08a4134e473a1aeb60c120914f29  gcc/testsuite/gcc.target/aarch64/options_set_26.c
! f3b5922b8b4354df5f810cfdcfd0f7e6  gcc/testsuite/gcc.target/aarch64/options_set_27.c
! 45fde6d2b5e6119a4720e8c2aaa5396c  gcc/testsuite/gcc.target/aarch64/options_set_28.c
! 936ce13e85d31d5545886eb94526915b  gcc/testsuite/gcc.target/aarch64/options_set_3.c
! e721f980e1e7a9648d77300c2f6ea0e5  gcc/testsuite/gcc.target/aarch64/options_set_4.c
! 9c2ebf89a44fab00a57afc61e1a1fe86  gcc/testsuite/gcc.target/aarch64/options_set_5.c
! 3da7d2bb75f9e314375a2e3a933c689d  gcc/testsuite/gcc.target/aarch64/options_set_6.c
! 526d16060a4363063b7d15236795dec4  gcc/testsuite/gcc.target/aarch64/options_set_7.c
! d28ce23985b773a211ff26743e9e661d  gcc/testsuite/gcc.target/aarch64/options_set_8.c
! 55ae452185bb0bb101f614fc4fa21cd9  gcc/testsuite/gcc.target/aarch64/options_set_9.c
  2ba9e0951fadcf5ce5f2eab080c09a68  gcc/testsuite/gcc.target/aarch64/orr_imm_1.c
  2affd5586d9d9534731788d83a2a3904  gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c
  b0a892934f70ddbece003356d1462148  gcc/testsuite/gcc.target/aarch64/pcs_attribute-3.c
*************** c3d44b74cbd361a863813180478ad6c8  gcc/te
*** 54634,54643 ****
  e2136e7e4121b5b98591560242d1826f  gcc/testsuite/gcc.target/aarch64/pr100518.c
  90ff787e2854382a010cb41d41d74b65  gcc/testsuite/gcc.target/aarch64/pr102008.c
  2b4e17d3d8fabfd5192210873467463b  gcc/testsuite/gcc.target/aarch64/pr102376.c
! 60149cce51c7ce96f2f40008aac502a2  gcc/testsuite/gcc.target/aarch64/pr103085.c
  46d6ff3fd00506e5bdc9c04d3d444c4e  gcc/testsuite/gcc.target/aarch64/pr103094.c
  6ab646c64e54d73bfe7fecdb44f824c3  gcc/testsuite/gcc.target/aarch64/pr103147-1.c
! 7a6bdaa071cc871595b1c5e9dee1f8f6  gcc/testsuite/gcc.target/aarch64/pr103147-10.c
  b4780965b308ea64a30faae3dd03ff0b  gcc/testsuite/gcc.target/aarch64/pr103147-2.c
  331a1f2804cb2d624b662808784a18cf  gcc/testsuite/gcc.target/aarch64/pr103147-3.c
  1863cdd074e5a1878fd0fa3625c0bec4  gcc/testsuite/gcc.target/aarch64/pr103147-4.c
--- 57791,57800 ----
  e2136e7e4121b5b98591560242d1826f  gcc/testsuite/gcc.target/aarch64/pr100518.c
  90ff787e2854382a010cb41d41d74b65  gcc/testsuite/gcc.target/aarch64/pr102008.c
  2b4e17d3d8fabfd5192210873467463b  gcc/testsuite/gcc.target/aarch64/pr102376.c
! 8f357d4ccc6a0a50914dfbcfa3ad7dec  gcc/testsuite/gcc.target/aarch64/pr103085.c
  46d6ff3fd00506e5bdc9c04d3d444c4e  gcc/testsuite/gcc.target/aarch64/pr103094.c
  6ab646c64e54d73bfe7fecdb44f824c3  gcc/testsuite/gcc.target/aarch64/pr103147-1.c
! 286a5e87c28ffba2b9d4a828f2121aff  gcc/testsuite/gcc.target/aarch64/pr103147-10.c
  b4780965b308ea64a30faae3dd03ff0b  gcc/testsuite/gcc.target/aarch64/pr103147-2.c
  331a1f2804cb2d624b662808784a18cf  gcc/testsuite/gcc.target/aarch64/pr103147-3.c
  1863cdd074e5a1878fd0fa3625c0bec4  gcc/testsuite/gcc.target/aarch64/pr103147-4.c
*************** d31b19093bf5b52a4ab71663355a6864  gcc/te
*** 54658,54679 ****
  de49e9125d6237709299bcc3a1dfd315  gcc/testsuite/gcc.target/aarch64/pr104921-2.c
  80bfa364bfe20370e6bd035b978c10f8  gcc/testsuite/gcc.target/aarch64/pr104921.x
  4198cdedd33371d2e34f020137612130  gcc/testsuite/gcc.target/aarch64/pr105549.c
! c9fe2bbbb223bb44d35e0f763a6c53f1  gcc/testsuite/gcc.target/aarch64/pr106583.c
  d11f9a84e9269478f65c52a7249a2186  gcc/testsuite/gcc.target/aarch64/pr107209.c
  8c8a67e24364ffc97872921358d32983  gcc/testsuite/gcc.target/aarch64/pr107988-1.c
  49e3db98c926a3ebc07b785f4627de36  gcc/testsuite/gcc.target/aarch64/pr108508.c
  a7d8042acc2272e21686f52da76e42f1  gcc/testsuite/gcc.target/aarch64/pr108589.c
  6dc2a87c4e95456d47637c506dfe5b0e  gcc/testsuite/gcc.target/aarch64/pr108601.c
  8caf1b331d1a984045c0427f609a988b  gcc/testsuite/gcc.target/aarch64/pr108681.c
  41c34270308784309bf8fd336d044aa7  gcc/testsuite/gcc.target/aarch64/pr108999.c
  c06d3b2030bc06f25071cbc162980592  gcc/testsuite/gcc.target/aarch64/pr109072_1.c
  96db4199e6f01de5b5bc5f1e5545c2e2  gcc/testsuite/gcc.target/aarch64/pr109072_2.c
! c0b04f74adb90213a554c87f602b9139  gcc/testsuite/gcc.target/aarch64/pr109661-1.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
  d014963609e7593b422c8bb81d6c432d  gcc/testsuite/gcc.target/aarch64/pr60580_1.c
! d2cd8f6effeef5d9ac5a4ce081648274  gcc/testsuite/gcc.target/aarch64/pr60697.c
  2cd11476b07e206416f5d88420120ea5  gcc/testsuite/gcc.target/aarch64/pr61325.c
  d8cfefc063686118062e9fc3b774907b  gcc/testsuite/gcc.target/aarch64/pr62040.c
  617b125a3275c9ce440e1e542a8bbc79  gcc/testsuite/gcc.target/aarch64/pr62178.c
--- 57815,57868 ----
  de49e9125d6237709299bcc3a1dfd315  gcc/testsuite/gcc.target/aarch64/pr104921-2.c
  80bfa364bfe20370e6bd035b978c10f8  gcc/testsuite/gcc.target/aarch64/pr104921.x
  4198cdedd33371d2e34f020137612130  gcc/testsuite/gcc.target/aarch64/pr105549.c
! 66431eedd33503252c3b97e921a10d89  gcc/testsuite/gcc.target/aarch64/pr105928.c
! 8897115863886cea652a468f3aae6cc5  gcc/testsuite/gcc.target/aarch64/pr106583.c
  d11f9a84e9269478f65c52a7249a2186  gcc/testsuite/gcc.target/aarch64/pr107209.c
  8c8a67e24364ffc97872921358d32983  gcc/testsuite/gcc.target/aarch64/pr107988-1.c
  49e3db98c926a3ebc07b785f4627de36  gcc/testsuite/gcc.target/aarch64/pr108508.c
  a7d8042acc2272e21686f52da76e42f1  gcc/testsuite/gcc.target/aarch64/pr108589.c
  6dc2a87c4e95456d47637c506dfe5b0e  gcc/testsuite/gcc.target/aarch64/pr108601.c
  8caf1b331d1a984045c0427f609a988b  gcc/testsuite/gcc.target/aarch64/pr108681.c
+ 431079dfbd3b51852c6cb97aeb2d5d89  gcc/testsuite/gcc.target/aarch64/pr108840.c
  41c34270308784309bf8fd336d044aa7  gcc/testsuite/gcc.target/aarch64/pr108999.c
  c06d3b2030bc06f25071cbc162980592  gcc/testsuite/gcc.target/aarch64/pr109072_1.c
  96db4199e6f01de5b5bc5f1e5545c2e2  gcc/testsuite/gcc.target/aarch64/pr109072_2.c
! 7ea78cde4c1f96ae1fb65982d3de9c9b  gcc/testsuite/gcc.target/aarch64/pr109078.c
! 60019babe909af068cb1f4a2d3578e60  gcc/testsuite/gcc.target/aarch64/pr109391.c
! dd50619c53872b9c8933625d2bbf1a84  gcc/testsuite/gcc.target/aarch64/pr109661-1.c
! 1d12526e542ae9c32b4536013514dfb0  gcc/testsuite/gcc.target/aarch64/pr109855.c
! 142d4ede9d3ebb07e8f1ebe726b5f2ea  gcc/testsuite/gcc.target/aarch64/pr110371.c
! 24b8996e0f371f83948a088a2e9498c9  gcc/testsuite/gcc.target/aarch64/pr110449.c
! 554742e030772ab3f50ea60a5083284c  gcc/testsuite/gcc.target/aarch64/pr110474.c
! 64eb80f1a7c38ddd0cddacf7ded0bdb2  gcc/testsuite/gcc.target/aarch64/pr110625_1.c
! ef0e3bf9df58bab491d74a6514a2a996  gcc/testsuite/gcc.target/aarch64/pr110625_2.c
! e53a403c5c95647f6b6b8ccf446fc342  gcc/testsuite/gcc.target/aarch64/pr110625_3.c
! 56718cd742704660fe90514eb98975cd  gcc/testsuite/gcc.target/aarch64/pr110625_4.c
! 14138ac5a07e8b3c30967b1d1fd7a92a  gcc/testsuite/gcc.target/aarch64/pr112105.c
! f3f6d3e236c744bb128945fb5e3609df  gcc/testsuite/gcc.target/aarch64/pr112406-2.c
! ea64f6f6caa9947f9a065dae92817770  gcc/testsuite/gcc.target/aarch64/pr112406.c
! c83a09a0e16c61674cfbebcc059ceb22  gcc/testsuite/gcc.target/aarch64/pr112573.c
! fb47e676224180b04e459251a5e0250a  gcc/testsuite/gcc.target/aarch64/pr112787.c
! 12cba4b8ee2e9d41299be00097081971  gcc/testsuite/gcc.target/aarch64/pr113077.c
! de8e78a604e69bc88717147c309e69ef  gcc/testsuite/gcc.target/aarch64/pr113094.c
! e64015aa3333e77e13b230e2bc2580b0  gcc/testsuite/gcc.target/aarch64/pr113104.c
! 63517ba6c866e502a1b2dac09ef3bc42  gcc/testsuite/gcc.target/aarch64/pr113114.c
! 87355a60d36c24e61552591804e644e0  gcc/testsuite/gcc.target/aarch64/pr113196.c
! 947e939e0de525b188c373b823895f21  gcc/testsuite/gcc.target/aarch64/pr113295-2.c
! 642fe82936cfa8f9a1ed358581691f4f  gcc/testsuite/gcc.target/aarch64/pr113356.C
! fe21fc167a8d34db237e8348c2a1fc85  gcc/testsuite/gcc.target/aarch64/pr113485.c
! f12479eade051fc653baa3b9e92457a8  gcc/testsuite/gcc.target/aarch64/pr113550.c
! 5c93b32021bd32ca40c9fb5ec6a30f04  gcc/testsuite/gcc.target/aarch64/pr113552.c
! 53dcb523d7488a29fa2eb06ae2e3983d  gcc/testsuite/gcc.target/aarch64/pr113573.c
! 5e8481e02f3cfad1b565c1fcf18a51b0  gcc/testsuite/gcc.target/aarch64/pr113613.c
! c3b3090c8cc6b28f90027aceb08f6ad7  gcc/testsuite/gcc.target/aarch64/pr113618.c
! 65b79dfa682a9ae7b9e39d7180ffd699  gcc/testsuite/gcc.target/aarch64/pr114196.c
! e95d7302a79bebe0c38e93d641a753d8  gcc/testsuite/gcc.target/aarch64/pr114741.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
  d014963609e7593b422c8bb81d6c432d  gcc/testsuite/gcc.target/aarch64/pr60580_1.c
! b3fe2de9b23b56de57259440edc766d1  gcc/testsuite/gcc.target/aarch64/pr60697.c
  2cd11476b07e206416f5d88420120ea5  gcc/testsuite/gcc.target/aarch64/pr61325.c
  d8cfefc063686118062e9fc3b774907b  gcc/testsuite/gcc.target/aarch64/pr62040.c
  617b125a3275c9ce440e1e542a8bbc79  gcc/testsuite/gcc.target/aarch64/pr62178.c
*************** a5a030e82205f8d9b2799618b27cc294  gcc/te
*** 54705,54711 ****
  e7efe396ef16dbc7526785247ead6d84  gcc/testsuite/gcc.target/aarch64/pr70809_1.c
  1acf0bf1d4e41e413852c39aabdc7e52  gcc/testsuite/gcc.target/aarch64/pr71016.c
  4aa462ffa5914a7dd8ae0a2383731a49  gcc/testsuite/gcc.target/aarch64/pr71727-2.c
! 5bd52c228972674cffe72c469a2f436c  gcc/testsuite/gcc.target/aarch64/pr71727.c
  c8c052e3ffb361fbe4b0043b1414c58b  gcc/testsuite/gcc.target/aarch64/pr78038.c
  ed6579d962ab6988afc3e526e6c51275  gcc/testsuite/gcc.target/aarch64/pr78255.c
  f9f37ccfc032535c8079deb6b916aca7  gcc/testsuite/gcc.target/aarch64/pr78382.c
--- 57894,57900 ----
  e7efe396ef16dbc7526785247ead6d84  gcc/testsuite/gcc.target/aarch64/pr70809_1.c
  1acf0bf1d4e41e413852c39aabdc7e52  gcc/testsuite/gcc.target/aarch64/pr71016.c
  4aa462ffa5914a7dd8ae0a2383731a49  gcc/testsuite/gcc.target/aarch64/pr71727-2.c
! f76dd066bc43a08b0ab74e36bd588f9a  gcc/testsuite/gcc.target/aarch64/pr71727.c
  c8c052e3ffb361fbe4b0043b1414c58b  gcc/testsuite/gcc.target/aarch64/pr78038.c
  ed6579d962ab6988afc3e526e6c51275  gcc/testsuite/gcc.target/aarch64/pr78255.c
  f9f37ccfc032535c8079deb6b916aca7  gcc/testsuite/gcc.target/aarch64/pr78382.c
*************** aa2dfd18bc6784e0bc7ee00c3ef8561a  gcc/te
*** 54720,54726 ****
  83d999153e7b99641d3f07b79d3dd12f  gcc/testsuite/gcc.target/aarch64/pr83370.c
  d1d34ae8edbb84b094c7f011971b77f4  gcc/testsuite/gcc.target/aarch64/pr84252.c
  2c637fae82427ff05452a4d7a593117a  gcc/testsuite/gcc.target/aarch64/pr84882.c
! bd8fbfc436e20c74e94a234b1baad093  gcc/testsuite/gcc.target/aarch64/pr87305.c
  438fbd8d80e583c9dd8e4b6f03d561d9  gcc/testsuite/gcc.target/aarch64/pr87511.c
  0c8e55f8ca526b3ff4c65395e56b96c5  gcc/testsuite/gcc.target/aarch64/pr87839.c
  2e6dacda509bf27f5cf4f99c2ff71f34  gcc/testsuite/gcc.target/aarch64/pr88838.c
--- 57909,57915 ----
  83d999153e7b99641d3f07b79d3dd12f  gcc/testsuite/gcc.target/aarch64/pr83370.c
  d1d34ae8edbb84b094c7f011971b77f4  gcc/testsuite/gcc.target/aarch64/pr84252.c
  2c637fae82427ff05452a4d7a593117a  gcc/testsuite/gcc.target/aarch64/pr84882.c
! f1ca93aa1717ebabd10b953f8c0f43fb  gcc/testsuite/gcc.target/aarch64/pr87305.c
  438fbd8d80e583c9dd8e4b6f03d561d9  gcc/testsuite/gcc.target/aarch64/pr87511.c
  0c8e55f8ca526b3ff4c65395e56b96c5  gcc/testsuite/gcc.target/aarch64/pr87839.c
  2e6dacda509bf27f5cf4f99c2ff71f34  gcc/testsuite/gcc.target/aarch64/pr88838.c
*************** f8ddd6b01afffeb3d1d200d82260e62c  gcc/te
*** 54739,54745 ****
  a9e3fa9bf042d9c1c357a23c16f6b387  gcc/testsuite/gcc.target/aarch64/pr93341.c
  25f4d169805c913dc7178cf1e389dc23  gcc/testsuite/gcc.target/aarch64/pr93565.c
  83c9062bbfd307a3487d0d4c3ea11a07  gcc/testsuite/gcc.target/aarch64/pr94072.c
! 167628eba1234f65ebe241d9e5e5945d  gcc/testsuite/gcc.target/aarch64/pr94201.c
  9cfb3b160866ec3ddc9bc343efa6b2e8  gcc/testsuite/gcc.target/aarch64/pr94398.c
  d89f585a7ccbac10cff70c726d0dea2b  gcc/testsuite/gcc.target/aarch64/pr94435.c
  8d8f9b6336f8a3c7534960e50ea4d681  gcc/testsuite/gcc.target/aarch64/pr94514.c
--- 57928,57934 ----
  a9e3fa9bf042d9c1c357a23c16f6b387  gcc/testsuite/gcc.target/aarch64/pr93341.c
  25f4d169805c913dc7178cf1e389dc23  gcc/testsuite/gcc.target/aarch64/pr93565.c
  83c9062bbfd307a3487d0d4c3ea11a07  gcc/testsuite/gcc.target/aarch64/pr94072.c
! 2c413e03107f4081d70ac1bbd1c7a79f  gcc/testsuite/gcc.target/aarch64/pr94201.c
  9cfb3b160866ec3ddc9bc343efa6b2e8  gcc/testsuite/gcc.target/aarch64/pr94398.c
  d89f585a7ccbac10cff70c726d0dea2b  gcc/testsuite/gcc.target/aarch64/pr94435.c
  8d8f9b6336f8a3c7534960e50ea4d681  gcc/testsuite/gcc.target/aarch64/pr94514.c
*************** bf82071ea86307b407ab979b320a2a98  gcc/te
*** 54758,54764 ****
  c5ac198fcc683ea88b36ff21fc73e2c5  gcc/testsuite/gcc.target/aarch64/pr97638.c
  fd312dc569ccf5ce510dd16b64f1203b  gcc/testsuite/gcc.target/aarch64/pr97701.c
  98e2f872193b247fc94cc5d6f30aaddf  gcc/testsuite/gcc.target/aarch64/pr98603.c
! d36ed016a2b11c922ff41b3a63eb03d8  gcc/testsuite/gcc.target/aarch64/pr98772.c
  ed80808a6a48521e174e06ce44642e0c  gcc/testsuite/gcc.target/aarch64/pr98776.c
  18603818c100529306da07a556c00769  gcc/testsuite/gcc.target/aarch64/pr99381.c
  1f2ce8a6e6be36322ada7a2a222926ac  gcc/testsuite/gcc.target/aarch64/pr99767.c
--- 57947,57953 ----
  c5ac198fcc683ea88b36ff21fc73e2c5  gcc/testsuite/gcc.target/aarch64/pr97638.c
  fd312dc569ccf5ce510dd16b64f1203b  gcc/testsuite/gcc.target/aarch64/pr97701.c
  98e2f872193b247fc94cc5d6f30aaddf  gcc/testsuite/gcc.target/aarch64/pr98603.c
! db4187da682eaa268209795283ce02e8  gcc/testsuite/gcc.target/aarch64/pr98772.c
  ed80808a6a48521e174e06ce44642e0c  gcc/testsuite/gcc.target/aarch64/pr98776.c
  18603818c100529306da07a556c00769  gcc/testsuite/gcc.target/aarch64/pr99381.c
  1f2ce8a6e6be36322ada7a2a222926ac  gcc/testsuite/gcc.target/aarch64/pr99767.c
*************** c45bc47433163208f0aec414ada73705  gcc/te
*** 54768,54791 ****
  18c52a2faa4e83538abeef107e3b4d8a  gcc/testsuite/gcc.target/aarch64/pr99873_3.c
  5e9a238ae88bfc957497e635ed104144  gcc/testsuite/gcc.target/aarch64/pr99988.c
  7647e74954bed1df0b5452c86dc7806b  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
! dc70336a2a022f10ec27787e628c5113  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
  1802b716a6dff570eaf8df2688efe1dd  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
! 823557554938ddb59a20f60c31dc3e22  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
  1f95766b4ed5bfb5f2cf1f168a607a8d  gcc/testsuite/gcc.target/aarch64/predefine_large.c
  d38e476730748c653068e7cb2d8d6ca6  gcc/testsuite/gcc.target/aarch64/predefine_small.c
  29e7dbfba15c0f945488b33400b908b4  gcc/testsuite/gcc.target/aarch64/predefine_tiny.c
  d0bcbc3d9ff4ecc6817a33d0d9f3aed3  gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_1.c
  86a8787839e88d2267f016ea88262ae8  gcc/testsuite/gcc.target/aarch64/profile.c
  48d743cb731002c6490f875730d154df  gcc/testsuite/gcc.target/aarch64/reg-alloc-1.c
  74688db113854841ef6e7ea639b44f4c  gcc/testsuite/gcc.target/aarch64/reg-alloc-2.c
  d6af8901d4df3dbbd85fb4a872ad6e99  gcc/testsuite/gcc.target/aarch64/reg-alloc-3.c
  ae41f7b64717901920ce9a6a8098b825  gcc/testsuite/gcc.target/aarch64/reg-alloc-4.c
  c27a4c6f9c9e7aee309e6f023d713539  gcc/testsuite/gcc.target/aarch64/reload-valid-spoff.c
! bed515c59d85f8fa531ff7c57e701c41  gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c
! 4b0e7c8dc1ccf80140eee97a9b37aeef  gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c
  b9524ac9c94a04e98f82c9c679c0b715  gcc/testsuite/gcc.target/aarch64/return_address_sign_3.c
! 524bdd3965ba73f33bc2d2a6258fc570  gcc/testsuite/gcc.target/aarch64/return_address_sign_b_1.c
! 58a512be52520d352d047b5c26186ad4  gcc/testsuite/gcc.target/aarch64/return_address_sign_b_2.c
  10c0667fe6669dd3a58aad882ef86a33  gcc/testsuite/gcc.target/aarch64/return_address_sign_b_3.c
  4c29e6ea2fa29c84d350a343b163fe54  gcc/testsuite/gcc.target/aarch64/return_address_sign_builtin.c
  70b0a417548eb5574b49ff1b37acde43  gcc/testsuite/gcc.target/aarch64/rev16_1.c
--- 57957,57982 ----
  18c52a2faa4e83538abeef107e3b4d8a  gcc/testsuite/gcc.target/aarch64/pr99873_3.c
  5e9a238ae88bfc957497e635ed104144  gcc/testsuite/gcc.target/aarch64/pr99988.c
  7647e74954bed1df0b5452c86dc7806b  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
! cc4f69997a3864b3299f1b4809507883  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1b.c
! be30d927e2df67d4fe2786d0d026bbaa  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
  1802b716a6dff570eaf8df2688efe1dd  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
! 54e13d4176bb90728d042d6d16097346  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
  1f95766b4ed5bfb5f2cf1f168a607a8d  gcc/testsuite/gcc.target/aarch64/predefine_large.c
  d38e476730748c653068e7cb2d8d6ca6  gcc/testsuite/gcc.target/aarch64/predefine_small.c
  29e7dbfba15c0f945488b33400b908b4  gcc/testsuite/gcc.target/aarch64/predefine_tiny.c
  d0bcbc3d9ff4ecc6817a33d0d9f3aed3  gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_1.c
+ 70cc2797179c765a9f3a6178b9cedc73  gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_2.c
  86a8787839e88d2267f016ea88262ae8  gcc/testsuite/gcc.target/aarch64/profile.c
  48d743cb731002c6490f875730d154df  gcc/testsuite/gcc.target/aarch64/reg-alloc-1.c
  74688db113854841ef6e7ea639b44f4c  gcc/testsuite/gcc.target/aarch64/reg-alloc-2.c
  d6af8901d4df3dbbd85fb4a872ad6e99  gcc/testsuite/gcc.target/aarch64/reg-alloc-3.c
  ae41f7b64717901920ce9a6a8098b825  gcc/testsuite/gcc.target/aarch64/reg-alloc-4.c
  c27a4c6f9c9e7aee309e6f023d713539  gcc/testsuite/gcc.target/aarch64/reload-valid-spoff.c
! 12027036f3324e61c799dd687707f327  gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c
! 3a6d132840352f3644dba08c59522fcb  gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c
  b9524ac9c94a04e98f82c9c679c0b715  gcc/testsuite/gcc.target/aarch64/return_address_sign_3.c
! e40b581fdc11c43dabf302ccb1384c57  gcc/testsuite/gcc.target/aarch64/return_address_sign_b_1.c
! b6a18fb1ecc9f56b3894553675bc0455  gcc/testsuite/gcc.target/aarch64/return_address_sign_b_2.c
  10c0667fe6669dd3a58aad882ef86a33  gcc/testsuite/gcc.target/aarch64/return_address_sign_b_3.c
  4c29e6ea2fa29c84d350a343b163fe54  gcc/testsuite/gcc.target/aarch64/return_address_sign_builtin.c
  70b0a417548eb5574b49ff1b37acde43  gcc/testsuite/gcc.target/aarch64/rev16_1.c
*************** b452d4c86751bd11bf03b8ca21d25bf4  gcc/te
*** 54817,54826 ****
  e35638303a0cd435f199e6e2d3d6e7c6  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_2.c
  426a463bcea5af95b04b1d22b1bbacc9  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_3.c
  a363537d70052012f4777fd050c01616  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_4.c
! f98a0bd31791e270aac8fc6102a9e140  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c
! a0d0870973f0fcaae1c5cec0042ef105  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c
! a02965d358c103b08e6c3e285f93010b  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c
! 529e67315e902787ce0d0009ef247545  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c
  a165f88ed1988f9840bbb02ea02df7de  gcc/testsuite/gcc.target/aarch64/shift_and_operator-1.c
  8944288dbff8e1e27c9948e6640f93d5  gcc/testsuite/gcc.target/aarch64/shift_wide_invalid_1.c
  82788cbb043cb268dfa4db7129b0952a  gcc/testsuite/gcc.target/aarch64/shl-combine-2.c
--- 58008,58017 ----
  e35638303a0cd435f199e6e2d3d6e7c6  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_2.c
  426a463bcea5af95b04b1d22b1bbacc9  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_3.c
  a363537d70052012f4777fd050c01616  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_4.c
! 15ab2e89615616e6256107a14fec5826  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c
! 50727fb397c1155a47819bce866a95bf  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c
! 02194799b94f05acf17b63ab5c06347f  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c
! 18c96dea861729b7500d35a579132122  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c
  a165f88ed1988f9840bbb02ea02df7de  gcc/testsuite/gcc.target/aarch64/shift_and_operator-1.c
  8944288dbff8e1e27c9948e6640f93d5  gcc/testsuite/gcc.target/aarch64/shift_wide_invalid_1.c
  82788cbb043cb268dfa4db7129b0952a  gcc/testsuite/gcc.target/aarch64/shl-combine-2.c
*************** df616b441a15b0fdbf888d04c5fe95fb  gcc/te
*** 54843,54849 ****
--- 58034,58044 ----
  d6d84820bf58577dda59d8f5e7e556f1  gcc/testsuite/gcc.target/aarch64/signbit-2.c
  7378ad57a7e281bf3f87ce9a0d494e69  gcc/testsuite/gcc.target/aarch64/signbitv2sf.c
  d2757938fad3b14f583150a49e03367e  gcc/testsuite/gcc.target/aarch64/signbitv4sf.c
+ b3b3cf4271262efc97f836f3073eda48  gcc/testsuite/gcc.target/aarch64/simd/addlv_1.c
+ ec1e7259ab590008de3be293d2d948c0  gcc/testsuite/gcc.target/aarch64/simd/addlv_zext.c
+ 364cf4fd6ff71dc64e043028de5daf6b  gcc/testsuite/gcc.target/aarch64/simd/addp-same-low_1.c
  cce0e0d17f23232b9c556c2da6266969  gcc/testsuite/gcc.target/aarch64/simd/addsub_1.c
+ 57c6fccec8c2043eb48a2c0c8d755d91  gcc/testsuite/gcc.target/aarch64/simd/addsub_2.c
  6aef5c8c46a252fab1f15291c3545ce4  gcc/testsuite/gcc.target/aarch64/simd/ext_f32.x
  ddc6725ef357d85f1e09e4c10067f0cd  gcc/testsuite/gcc.target/aarch64/simd/ext_f32_1.c
  c1e72dac8ab01a1a17aeec90718b60d2  gcc/testsuite/gcc.target/aarch64/simd/ext_f64_1.c
*************** a7ee2c16e3808c9ad7f7873b8f2f11b8  gcc/te
*** 54888,54906 ****
  b9cc14c11e7f00bc0baf65bded51e112  gcc/testsuite/gcc.target/aarch64/simd/extq_u64_1.c
  10eb08326a114bba265a10ef7f717f52  gcc/testsuite/gcc.target/aarch64/simd/extq_u8.x
  fed45a34e01f1c902eebbb4525b2026f  gcc/testsuite/gcc.target/aarch64/simd/extq_u8_1.c
  504f31916b3f274eea930e1fc7da2e3c  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons.x
  22d82645ad53737e5bfbe2ba9b98cc05  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_1.c
  f1c9e2aa3c435c9efdc1ea83da4e1eeb  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_2.c
  99a09108bd01d3ee4865fd98b8b302bb  gcc/testsuite/gcc.target/aarch64/simd/lowering_tbaa.c
  f2791d55a2c9ed7182a54a406810cf47  gcc/testsuite/gcc.target/aarch64/simd/pr67896.c
  c4b08114012e09e0f47a84f5e5311441  gcc/testsuite/gcc.target/aarch64/simd/pr97349.c
  98ad17eba6ed6a47a93dddc98dcba951  gcc/testsuite/gcc.target/aarch64/simd/pr99437.c
! 881e0d6d37b76c188c89f79078037db7  gcc/testsuite/gcc.target/aarch64/simd/simd.exp
  3bdc28b0037a305b18bdc0489c55e433  gcc/testsuite/gcc.target/aarch64/simd/ssra.c
  6cc70e998362cc09840837fba67910d8  gcc/testsuite/gcc.target/aarch64/simd/trn_zip_p64_1.c
  5de7a6e0814e5fb97ee3b61393d07d26  gcc/testsuite/gcc.target/aarch64/simd/usra.c
  433cb4ec4520c807f8d4a73e400502ae  gcc/testsuite/gcc.target/aarch64/simd/vadd_poly_1.c
! 4e444ccd3e50f6329670ce1dbd3f466c  gcc/testsuite/gcc.target/aarch64/simd/vaddlv_1.c
  644c7b6ceda9f8b60fb839e127602e3c  gcc/testsuite/gcc.target/aarch64/simd/vbsl_f64_1.c
  e10e947e9f1b8d492f7629bc92f27019  gcc/testsuite/gcc.target/aarch64/simd/vcage_f64.c
  90da7e6d78027945448c660af03a4cb2  gcc/testsuite/gcc.target/aarch64/simd/vcagt_f64.c
--- 58083,58115 ----
  b9cc14c11e7f00bc0baf65bded51e112  gcc/testsuite/gcc.target/aarch64/simd/extq_u64_1.c
  10eb08326a114bba265a10ef7f717f52  gcc/testsuite/gcc.target/aarch64/simd/extq_u8.x
  fed45a34e01f1c902eebbb4525b2026f  gcc/testsuite/gcc.target/aarch64/simd/extq_u8_1.c
+ bb692e50ab2bed2943d200f6f0097d3a  gcc/testsuite/gcc.target/aarch64/simd/facgt_constpool_1.c
  504f31916b3f274eea930e1fc7da2e3c  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons.x
  22d82645ad53737e5bfbe2ba9b98cc05  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_1.c
  f1c9e2aa3c435c9efdc1ea83da4e1eeb  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_2.c
+ df08a7f1b91a8c0f914aab7f291c95e7  gcc/testsuite/gcc.target/aarch64/simd/low-high-combine_1.c
  99a09108bd01d3ee4865fd98b8b302bb  gcc/testsuite/gcc.target/aarch64/simd/lowering_tbaa.c
  f2791d55a2c9ed7182a54a406810cf47  gcc/testsuite/gcc.target/aarch64/simd/pr67896.c
  c4b08114012e09e0f47a84f5e5311441  gcc/testsuite/gcc.target/aarch64/simd/pr97349.c
+ 46d08ecc25480336a5b22ec204104ec5  gcc/testsuite/gcc.target/aarch64/simd/pr99195_1.c
+ b0ee57d18a18a6c6e948b38aa2152adf  gcc/testsuite/gcc.target/aarch64/simd/pr99195_10.c
+ 6d742ebd80b1e971dd0fd9c2c17c8eeb  gcc/testsuite/gcc.target/aarch64/simd/pr99195_11.c
+ 55bf404d285183d9b37ad194d9ee4f8e  gcc/testsuite/gcc.target/aarch64/simd/pr99195_2.c
+ 0a5f15e65e795c0ee3cd458bc8d9e58b  gcc/testsuite/gcc.target/aarch64/simd/pr99195_3.c
+ a12a39a541f702e6cf10167093ab195a  gcc/testsuite/gcc.target/aarch64/simd/pr99195_4.c
+ 2374de0986768ddcf16949844d7359b2  gcc/testsuite/gcc.target/aarch64/simd/pr99195_5.c
+ 608f7a78956f65f701e224ead239d331  gcc/testsuite/gcc.target/aarch64/simd/pr99195_6.c
+ f2732ebf6d60e1e2af62d1c3dcbeb77d  gcc/testsuite/gcc.target/aarch64/simd/pr99195_7.c
+ 7475e85940c2a134de33c563e3ee00fe  gcc/testsuite/gcc.target/aarch64/simd/pr99195_8.c
+ 9757c9a081cfbd0982adb72632324248  gcc/testsuite/gcc.target/aarch64/simd/pr99195_9.c
  98ad17eba6ed6a47a93dddc98dcba951  gcc/testsuite/gcc.target/aarch64/simd/pr99437.c
! d197b766580d4128e577fdef0836105d  gcc/testsuite/gcc.target/aarch64/simd/simd.exp
  3bdc28b0037a305b18bdc0489c55e433  gcc/testsuite/gcc.target/aarch64/simd/ssra.c
  6cc70e998362cc09840837fba67910d8  gcc/testsuite/gcc.target/aarch64/simd/trn_zip_p64_1.c
  5de7a6e0814e5fb97ee3b61393d07d26  gcc/testsuite/gcc.target/aarch64/simd/usra.c
+ 620e5ff16ce4b53a27dc1881cdbb5e4b  gcc/testsuite/gcc.target/aarch64/simd/vabal_combine.c
  433cb4ec4520c807f8d4a73e400502ae  gcc/testsuite/gcc.target/aarch64/simd/vadd_poly_1.c
! 674bb632e572dd98991d41294ce32e90  gcc/testsuite/gcc.target/aarch64/simd/vaddlv_1.c
  644c7b6ceda9f8b60fb839e127602e3c  gcc/testsuite/gcc.target/aarch64/simd/vbsl_f64_1.c
  e10e947e9f1b8d492f7629bc92f27019  gcc/testsuite/gcc.target/aarch64/simd/vcage_f64.c
  90da7e6d78027945448c660af03a4cb2  gcc/testsuite/gcc.target/aarch64/simd/vcagt_f64.c
*************** e101fae335b7ee05e94f44945ad9e568  gcc/te
*** 54958,54964 ****
  d3471e819805085e851c6ef99b412fc9  gcc/testsuite/gcc.target/aarch64/simd/vmla_f64.c
  76bd294b136cfc9375488944eb7f3ba0  gcc/testsuite/gcc.target/aarch64/simd/vmls_f64.c
  7b488ba6c1f84e266799b037eedc797b  gcc/testsuite/gcc.target/aarch64/simd/vmmla.c
! 94345e699abe993e3294cab2d9423634  gcc/testsuite/gcc.target/aarch64/simd/vmovl_high_1.c
  22cac23569a49d0ec6c6bc3ebf72db5a  gcc/testsuite/gcc.target/aarch64/simd/vmul_elem_1.c
  65169a4470253b75fae29b77e6c97dad  gcc/testsuite/gcc.target/aarch64/simd/vmul_f64_1.c
  7fd8f1130afba68a9c1f1cdf8b7c4c5d  gcc/testsuite/gcc.target/aarch64/simd/vmul_lane_const_lane_1.c
--- 58167,58173 ----
  d3471e819805085e851c6ef99b412fc9  gcc/testsuite/gcc.target/aarch64/simd/vmla_f64.c
  76bd294b136cfc9375488944eb7f3ba0  gcc/testsuite/gcc.target/aarch64/simd/vmls_f64.c
  7b488ba6c1f84e266799b037eedc797b  gcc/testsuite/gcc.target/aarch64/simd/vmmla.c
! 8d7e8e077c8c3346221716faace17146  gcc/testsuite/gcc.target/aarch64/simd/vmovl_high_1.c
  22cac23569a49d0ec6c6bc3ebf72db5a  gcc/testsuite/gcc.target/aarch64/simd/vmul_elem_1.c
  65169a4470253b75fae29b77e6c97dad  gcc/testsuite/gcc.target/aarch64/simd/vmul_f64_1.c
  7fd8f1130afba68a9c1f1cdf8b7c4c5d  gcc/testsuite/gcc.target/aarch64/simd/vmul_lane_const_lane_1.c
*************** b4b1c51bedd41012a4234e1c9f3cbc87  gcc/te
*** 54967,54973 ****
  8289fdc27e513a6b5430040add06d87b  gcc/testsuite/gcc.target/aarch64/simd/vmuld_laneq_f64_1.c
  3d545be7fa0f553f61cb140189e7bf75  gcc/testsuite/gcc.target/aarch64/simd/vmuls_lane_f32_1.c
  b131ad17a1ee08d6d7110a64302d227f  gcc/testsuite/gcc.target/aarch64/simd/vmuls_laneq_f32_1.c
! f855a515a8c073b41021471cb65f9d73  gcc/testsuite/gcc.target/aarch64/simd/vmulx.x
  34d29f291c1e11b99ce551aebd4eaa8c  gcc/testsuite/gcc.target/aarch64/simd/vmulx_f32_1.c
  4832d4f6900e54de379cae92424d1382  gcc/testsuite/gcc.target/aarch64/simd/vmulx_f64_1.c
  ffffc5a122506b8ac5d984951d9720dc  gcc/testsuite/gcc.target/aarch64/simd/vmulx_f64_2.c
--- 58176,58182 ----
  8289fdc27e513a6b5430040add06d87b  gcc/testsuite/gcc.target/aarch64/simd/vmuld_laneq_f64_1.c
  3d545be7fa0f553f61cb140189e7bf75  gcc/testsuite/gcc.target/aarch64/simd/vmuls_lane_f32_1.c
  b131ad17a1ee08d6d7110a64302d227f  gcc/testsuite/gcc.target/aarch64/simd/vmuls_laneq_f32_1.c
! ff68baae45bafc89d26a49c81ae64ea3  gcc/testsuite/gcc.target/aarch64/simd/vmulx.x
  34d29f291c1e11b99ce551aebd4eaa8c  gcc/testsuite/gcc.target/aarch64/simd/vmulx_f32_1.c
  4832d4f6900e54de379cae92424d1382  gcc/testsuite/gcc.target/aarch64/simd/vmulx_f64_1.c
  ffffc5a122506b8ac5d984951d9720dc  gcc/testsuite/gcc.target/aarch64/simd/vmulx_f64_2.c
*************** fb6eb3bfd5b64cb60ed3a4e857b8acce  gcc/te
*** 54989,54997 ****
  9ca47e4d1ce6233fae456368ba09a2a1  gcc/testsuite/gcc.target/aarch64/simd/vmulxs_f32_2.c
  26c3647344fc15c12d7e940edf491c93  gcc/testsuite/gcc.target/aarch64/simd/vmulxs_lane_f32_1.c
  2a6ef5fcb219115676a6d2caa86f6598  gcc/testsuite/gcc.target/aarch64/simd/vmulxs_laneq_f32_1.c
! b05f9dafc47b22752e4be4934a51c0fd  gcc/testsuite/gcc.target/aarch64/simd/vpaddd_f64.c
! 5c6d7402ebc2bc64b18638f9eeb6e567  gcc/testsuite/gcc.target/aarch64/simd/vpaddd_s64.c
! 2758e9b2c5de64639a0342e28ec37aa8  gcc/testsuite/gcc.target/aarch64/simd/vpaddd_u64.c
  86dcfd91647e852cc9ba0a308cfd6669  gcc/testsuite/gcc.target/aarch64/simd/vqdmlal_high_lane_s16.c
  477d2d67b37d622ffb0b10ff7a672ea6  gcc/testsuite/gcc.target/aarch64/simd/vqdmlal_high_lane_s16_indices_1.c
  aefe00253924e0d926f2f81575ae298e  gcc/testsuite/gcc.target/aarch64/simd/vqdmlal_high_lane_s32.c
--- 58198,58206 ----
  9ca47e4d1ce6233fae456368ba09a2a1  gcc/testsuite/gcc.target/aarch64/simd/vmulxs_f32_2.c
  26c3647344fc15c12d7e940edf491c93  gcc/testsuite/gcc.target/aarch64/simd/vmulxs_lane_f32_1.c
  2a6ef5fcb219115676a6d2caa86f6598  gcc/testsuite/gcc.target/aarch64/simd/vmulxs_laneq_f32_1.c
! dc5778f89da29f878141fd2128c35c60  gcc/testsuite/gcc.target/aarch64/simd/vpaddd_f64.c
! 5ede041dc731ad5d8ab5ee48fefe09dc  gcc/testsuite/gcc.target/aarch64/simd/vpaddd_s64.c
! 18d225075077c3bab53328ccaa7c015e  gcc/testsuite/gcc.target/aarch64/simd/vpaddd_u64.c
  86dcfd91647e852cc9ba0a308cfd6669  gcc/testsuite/gcc.target/aarch64/simd/vqdmlal_high_lane_s16.c
  477d2d67b37d622ffb0b10ff7a672ea6  gcc/testsuite/gcc.target/aarch64/simd/vqdmlal_high_lane_s16_indices_1.c
  aefe00253924e0d926f2f81575ae298e  gcc/testsuite/gcc.target/aarch64/simd/vqdmlal_high_lane_s32.c
*************** b0d6479df19c40bdd8f43564d457cbe5  gcc/te
*** 55169,55174 ****
--- 58378,58384 ----
  80c5c3140637bd87c9f78110514bbc08  gcc/testsuite/gcc.target/aarch64/simd/vrev64u8_1.c
  ea00e722d71efdc7c8bc34e4f52f4267  gcc/testsuite/gcc.target/aarch64/simd/vrndns_f32_1.c
  32cd04568766eff83c2953e0e0896ed8  gcc/testsuite/gcc.target/aarch64/simd/vrndnzx_1.c
+ d03add80ea999508d8a302babc5770b3  gcc/testsuite/gcc.target/aarch64/simd/vrshr_1.c
  b8ac02a599cbc267b2dbe3d141002d4e  gcc/testsuite/gcc.target/aarch64/simd/vset_lane_s16_const_1.c
  7a785e7a855c2dc76f687ba4daa9304b  gcc/testsuite/gcc.target/aarch64/simd/vsqrt_f64_1.c
  77b683f2806e42bd49a374316bbc9e35  gcc/testsuite/gcc.target/aarch64/simd/vstrq_p128_1.c
*************** d8cba6fbd72082d21194a1854f6c2dfc  gcc/te
*** 55282,55288 ****
  eb612e50dff956594dedc023c01c005d  gcc/testsuite/gcc.target/aarch64/simd/vzipu8.x
  91d02599c3437c09a7b9841ceadb46bf  gcc/testsuite/gcc.target/aarch64/simd/vzipu8_1.c
  9ed21057ed9603af458520370acef207  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
! a1bb40eab16d5f5dfc6b73cc362bd351  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
  e24e752cdfaae08d96c7ec56c0ef75fd  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
  96b414deb2ef664ef0e319c9d099a140  gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c
  1720e6906e4df69467a464d77453cbb9  gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c
--- 58492,58498 ----
  eb612e50dff956594dedc023c01c005d  gcc/testsuite/gcc.target/aarch64/simd/vzipu8.x
  91d02599c3437c09a7b9841ceadb46bf  gcc/testsuite/gcc.target/aarch64/simd/vzipu8_1.c
  9ed21057ed9603af458520370acef207  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
! d1a781848976d72dd29ad2008392d1ea  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
  e24e752cdfaae08d96c7ec56c0ef75fd  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
  96b414deb2ef664ef0e319c9d099a140  gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c
  1720e6906e4df69467a464d77453cbb9  gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c
*************** e24e752cdfaae08d96c7ec56c0ef75fd  gcc/te
*** 55290,55300 ****
  ea10ab0509dcbe5d25695d4b7db37790  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
  411e73a8b509fa4da979e06198cebf3f  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
  191883f75825c4b0b253a140dcf374ff  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
! 1fd9f7a128a06ec973c245bbc26a5f2b  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
  95e880a9b2777120f2cedeadb9eff8ee  gcc/testsuite/gcc.target/aarch64/sm3_sm4.c
  75e6f162f69d023ed491e527240992ca  gcc/testsuite/gcc.target/aarch64/smov_1.c
  e414dc04465c5addb25b43a59cc281ec  gcc/testsuite/gcc.target/aarch64/spellcheck_1.c
  0b508e0ea40f93dfb0b6afcca4d21f87  gcc/testsuite/gcc.target/aarch64/spellcheck_10.c
  1c287219907e110889f1c6702b055fdc  gcc/testsuite/gcc.target/aarch64/spellcheck_2.c
  0994b950f62dafc38693405ca796983d  gcc/testsuite/gcc.target/aarch64/spellcheck_3.c
  7a99444b0c4b744562c85becf03023c1  gcc/testsuite/gcc.target/aarch64/spellcheck_4.c
--- 58500,59496 ----
  ea10ab0509dcbe5d25695d4b7db37790  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
  411e73a8b509fa4da979e06198cebf3f  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
  191883f75825c4b0b253a140dcf374ff  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
! 1503b157fa157e3dc4084c112b3beb0e  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
  95e880a9b2777120f2cedeadb9eff8ee  gcc/testsuite/gcc.target/aarch64/sm3_sm4.c
+ 9a33b26463f98f9444a5e1f75d08f650  gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme-acle-asm.exp
+ dcfeda6cc127edc0a2558f8a7efb8f5e  gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme.exp
+ e046627e0f8358e37a52c4ea2c09170c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addha_za32.c
+ 46b5156309796ea2ec132aa13a9c04ee  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addha_za64.c
+ 58031a312276deb6221864eff32899f8  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addva_za32.c
+ e134698efbd3ef8ff02acbd62a840d37  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addva_za64.c
+ e75ea5db8a29ad51374575a5f5d2feda  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/arm_has_sme_sc.c
+ 11a0be8f9841dd80a47f3f7fe038fe45  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/arm_in_streaming_mode_ns.c
+ c06ae3da941753a00447f1b325b54879  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/arm_in_streaming_mode_s.c
+ c9bac9f1d0003b1ec9ef248c8073355b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/arm_in_streaming_mode_sc.c
+ f4fde1b5f7205c0c86249cd8d750f90e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/clamp_s16.c
+ 48773aa0a61d1bcf70eec2c8adab98a3  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/clamp_s32.c
+ 9424dc2f9afd6af6ef25aebaf3ce3d66  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/clamp_s64.c
+ 1d5e1e0e2ce9cf268dc92318c1065189  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/clamp_s8.c
+ 15448dccd1a226723d41b2e638efd335  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/clamp_u16.c
+ 910772583fcaac0ac77f887c5c101993  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/clamp_u32.c
+ 108f58378d0c8dd45d6b4feaea1ecb03  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/clamp_u64.c
+ 40b33c239bdfe217a8430a65be930541  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/clamp_u8.c
+ 9ab5b97c075be4366ee866868d07df57  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsb_s.c
+ a28d2b83febe840e5b8961cbe86016db  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsb_sc.c
+ 47d5af6e5d7658755d673f66570630df  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsd_s.c
+ a1179f4eefdef96aba3b54406efeff28  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsd_sc.c
+ ce7f6b81fd28f559e76706bf6aad1a27  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsh_s.c
+ ff4e1f8277b9277fb3398591bec38f15  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsh_sc.c
+ 2c845429a843089db47953bc34810920  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsw_s.c
+ 157693ae0739254a4e718d7b8a95c6fb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsw_sc.c
+ afeeb71b9587a7ba87b12f1ad3469a15  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za128.c
+ 85d23d623c90d91f7c3cfdf815d9c195  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za16.c
+ 44ba38a138ae1332e2fbd93e2c4e2c82  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za32.c
+ b63838a15e6ff9337a0b57ab3427668d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za64.c
+ 80d4a09d8b709864b1111b5277fe6aad  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za8.c
+ 9acbfd1093349baff91137c2b2de3bc2  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za128.c
+ 0d448551d92f101d3fc37e933f5b0ccb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za16.c
+ b827e4b4ac47f66e47a198e9bc86a50a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za32.c
+ 9764667ff1d8c8d07d0d74ea3d94663c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za64.c
+ dd4b1771b0d8450d54b73fef32e37c1c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za8.c
+ 156b4ff6b72036620ef40d56f7a473fb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za128.c
+ d5e39d8c5dcc1f6041933d2e1d3ff366  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za16.c
+ 2e7f08fb137fa53f2936f0b0f7d0b864  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za32.c
+ 3b8c7de9b52319e69071217ea0772718  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za64.c
+ 8f0e2e24db45a383d42f0026e790537b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za8.c
+ adca2f981624506582c96131391eaa05  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za128.c
+ 4092778ad052ce9a938383c1c3240637  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za16.c
+ 8b3487fe82eb73bf4087029598028d13  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za32.c
+ 6eed916e46e887f59effeb7f2397fe99  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za64.c
+ 9e20e21d6b32e47a2f99ed5f7fa4123d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za8.c
+ ca37cd4da880af941c271dbc05e04bdb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_vnum_za_s.c
+ 3a62e9f46e3206db1e44a67d2cc47e52  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_vnum_za_sc.c
+ a7d999a2574d1cc57f0543781f520910  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_za_s.c
+ 589bf1cb46f51f14f8000e84a2288243  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_za_sc.c
+ 689872f2851b269fd85891987f813e43  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za32.c
+ 6ca41c0f301e40b5141dc795c89d1981  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za64.c
+ c2e981bc8504bd54c6bc37823e964cfb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mops_za32.c
+ 87bc29ff5f3eca3a41b4e72bb88161dc  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mops_za64.c
+ fcebf3db146b8f53a8f6331baf69fbfc  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za128.c
+ 334e8a5dad4b07c99d66059975c05638  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za16.c
+ dec729f0b9203a79ab9190c6ae4dd39c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za32.c
+ 30178df775f7eeeccabf84a70732b6d1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za64.c
+ 1af84d56dda07892566ba3ff4598ae4c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za8.c
+ 7be891326b4081f07577a68a4e0d4b51  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za128.c
+ db7ec863bbc5f42e3eaaf7d41c078f60  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za16.c
+ 954127f6d3b08028a0dbbecea8abaea4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za32.c
+ 6c42cd7108db85285989b01cdfe0ceab  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za64.c
+ f73c190603e33d11562ee018328fb06d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za8.c
+ 51fe1ff100a97529ff50e1cdfa4f4df5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c
+ 05f8708c4c12f406de2089cf37bf90af  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c
+ 4cfb225b1d4aa772e7e240fc0752a577  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c
+ 6158db047e21dfef0f794eaaa1d81934  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c
+ f8dada53e59219879e1222d2fe3ab1ae  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c
+ 996bbb92a143273e76c7e00eb7af251b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c
+ d7f554a5c062ed5854bee2de13199617  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c
+ 7f47048704253b30608855f28c703ff5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c
+ ea46a7175ec34a07eae85e2422bb2782  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c
+ 7e0d11228c3bd92d57df156977acba45  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c
+ 9c1e58d46a866546b3444e3a8caca5f3  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c
+ 6c9a91485037b596556ccd3de1fdf852  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c
+ 92f3366342aae6b2ec7f6d53be3fe1a1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za128.c
+ 4a2c37b58b46cda8f18baebab50b1238  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za16.c
+ af7a839b3b15a2c2cfbbc10272a15951  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za32.c
+ cbfe9fb5d7dc1514aaf631490fb8de50  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za64.c
+ 556fd8ea5bd66ac20a647576dbd17c90  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za8.c
+ 68978d6afa639236f1da980448e607b7  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za128.c
+ 87bce96126527db164ea77cdee07eb4b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za16.c
+ 865cbea75d0b33d1f301752485123305  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za32.c
+ a74352a6fd8d7b61624c25ca8323c674  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za64.c
+ 06b62e7a6bf2a96849ed48e5f3610a02  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za8.c
+ a7a0f3a7ef83b48c08874c10c045b9dd  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za128.c
+ 9a0d6dc1e972eeff4b488890d15dab75  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za16.c
+ c842dc40235d3f0338283edad3c54fd2  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za32.c
+ 82b015b6431660bb6b14b66aaadcc9b0  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za64.c
+ c11a9bcf093986e525157532401c3c49  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za8.c
+ 51090ed99f55b74406beb0f94cdf1a9d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za128.c
+ e723e0e18483300ca4620a78edf21477  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za16.c
+ afe5f92fba438a5edf0ca3d4ee4f6cfa  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za32.c
+ b2fc6537ae3c1d84e8716570b5d7d886  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za64.c
+ a66e4dda27a961dc538b08fa7707a40a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za8.c
+ 3383963da499e0b608220c4696a1e0dd  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_vnum_za_s.c
+ 121651e9287f886b738ec261b51bc7df  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_vnum_za_sc.c
+ b8cc2e9d88a0a16faa538934b519cf89  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_za_s.c
+ 80fa7369c2170c75856dcfe3fd5e7060  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_za_sc.c
+ 884ad364bb1ee23f5265448ecc43dc16  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumopa_za32.c
+ 3e205476351a45bf8306b7e60c397b11  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumopa_za64.c
+ fa1cc0af91efbfbe4114931cd0014196  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumops_za32.c
+ 950f4c612e85d459a5680f63cea26930  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumops_za64.c
+ 4d1fb7432458952bb9ff41df13f2c2e5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/test_sme_acle.h
+ 751ac5c0bca8fa2442b9cc92355f0bb1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/undef_za.c
+ 8b4bf8582e42d9776dbf25df79244f31  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmopa_za32.c
+ cbdfbc444eb1d7272d5ea088132d03e1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmopa_za64.c
+ 9a90415d76c978c2a518d07445500729  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmops_za32.c
+ ccd27a6410d0b8d06baa13f3b77e3f6b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmops_za64.c
+ 2aeebf3cb36e9041a437578eb1bcaf14  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za128.c
+ ea94fdd9a03eec3b7233f34dcd984904  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za16.c
+ da72391aef5386ede43d8abba91108bc  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za32.c
+ 373b2be3979a0e482990678e58ead6f8  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za64.c
+ bce80ec3805c30acfd6ac59e2f0fed54  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za8.c
+ e4e174198cf387557de99fcff7e17e47  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za128.c
+ f148fda3adffbb0b0223fa8587320002  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za16.c
+ 1e9f4355184d9731ee41cc213447b4a5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za32.c
+ afe62fa89b5483576738572de037298b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za64.c
+ 5174cd33cb05315c467a5cbabefa3c0e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za8.c
+ 7ebbe5326f328e43b785fd6ee8bd7f7d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/zero_mask_za.c
+ 29c4dd1f8bae70ea4c5926d2fc011e3e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/zero_za.c
+ d6f0c95fd7a6f5179274aac3f6cc20c4  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_1.c
+ dadcd855a787ed42d61441acfdf07035  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_2.c
+ ee7a30eb13293817fbc0761ba471e1dc  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_3.c
+ eb580446b9c202515566ebe3c407f886  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_1.c
+ 84feb7d27fbd53171100e87b74c92cb0  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_10.c
+ 89058a2808c1b72afc62d38caf8a3e03  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_11.c
+ 11e2ce1b161d5c2f033e70deb98ef99d  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_2.c
+ 484b7eb2527c452159f353eabdaf3c5a  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_3.c
+ c383c91adda41f85554329e5922e2985  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_4.c
+ 515b852d1df6173cbfe26c7630a4f25e  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c
+ 4e2634a31bc12398a54af681595dc441  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5_scp.c
+ 35854782f79aaf94cc1b5dfccec50023  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_6.c
+ ae1c24c734208ab54ab2b41e77807099  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_7.c
+ 0b857738a499c8c5fc14530a95778882  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c
+ 1e94c17baaf235985865fcc0080d29aa  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_9.c
+ f75d0405345296dc1bd56b0e3ff06a29  gcc/testsuite/gcc.target/aarch64/sme/clamp_1.c
+ 467e2d100be80751c5972f0004786b76  gcc/testsuite/gcc.target/aarch64/sme/clamp_2.c
+ 01cab72ebda273ac88ba62e6f3b3b525  gcc/testsuite/gcc.target/aarch64/sme/clamp_3.c
+ cb9e666b97de7d1530cdf6c4d4d9a8ac  gcc/testsuite/gcc.target/aarch64/sme/clamp_4.c
+ 016560dc141726f25baa60ea9a10d721  gcc/testsuite/gcc.target/aarch64/sme/inlining_1.c
+ b7da09d0116a503250afcdab67fe911d  gcc/testsuite/gcc.target/aarch64/sme/inlining_10.c
+ 9a9bfe1438f439a9f23353227722fe31  gcc/testsuite/gcc.target/aarch64/sme/inlining_11.c
+ 879f8cbda3bac2a9515ac7b25fe72355  gcc/testsuite/gcc.target/aarch64/sme/inlining_12.c
+ cf0ef9d94d28540fd020773ed51d6006  gcc/testsuite/gcc.target/aarch64/sme/inlining_13.c
+ bd862476d0822e624003a284b6549ab7  gcc/testsuite/gcc.target/aarch64/sme/inlining_14.c
+ 313deab8f0d484cc4dcbe2d0810a2eeb  gcc/testsuite/gcc.target/aarch64/sme/inlining_15.c
+ bbb16ebe530c456755af6b1a3bd999b4  gcc/testsuite/gcc.target/aarch64/sme/inlining_2.c
+ d4466d5be463235b2051bda1c42ac52b  gcc/testsuite/gcc.target/aarch64/sme/inlining_3.c
+ e8f3940401f61957e271283ead08f9df  gcc/testsuite/gcc.target/aarch64/sme/inlining_4.c
+ 3c855d6c19556f1bcd964cc06d46ba32  gcc/testsuite/gcc.target/aarch64/sme/inlining_5.c
+ 8e5db10a32a8ef428edb2cb2171af8b3  gcc/testsuite/gcc.target/aarch64/sme/inlining_6.c
+ 4b42b91f7c58b38a6117a5c277e18f5a  gcc/testsuite/gcc.target/aarch64/sme/inlining_7.c
+ 07e3d6d42e241c26ef2af7d1e45830cb  gcc/testsuite/gcc.target/aarch64/sme/inlining_8.c
+ 181e43a1fdbcc5f311e49c4511f67d15  gcc/testsuite/gcc.target/aarch64/sme/inlining_9.c
+ b3810edd100268236942967f1ddc5f1c  gcc/testsuite/gcc.target/aarch64/sme/keyword_macros_1.c
+ 14a65a5144a79377e26550f0795bb4de  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c
+ 26c5b65254a5e6fffb46740bb729dcde  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1_scp.c
+ c9d369dea4ca29ccd648d788cfb8ea09  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1_ts.c
+ 8b77b15e6a3831e3b0fed7e89decf181  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_2.c
+ 1cac7b6477b6f8a18e8af2c0382a7c19  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_3.c
+ bbf6f844429d0a09aa8e59fff5c21e3e  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_4.c
+ df9a1b5d24aec3bc8a0ef502ec0a64b9  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
+ 9e8c955b1919174497153e1d3013fee2  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
+ 1e34a9aa245aab348a971503bc5835f8  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c
+ 0373341714db841a3c860cbd655625fe  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_4.c
+ 93bae5f8e7e98d08018a7b8c114d3d6c  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_5.c
+ 14e8f4e8dfc80d7bf98c1533e6c560ff  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_6.c
+ cea477cbfc0138870da19d13a6f78a5c  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_7.c
+ b4e79a733b5f7121eaeed1af03f9454b  gcc/testsuite/gcc.target/aarch64/sme/sibcall_1.c
+ e1bebbe2531d4c2ec4fb9cfa4437f1cb  gcc/testsuite/gcc.target/aarch64/sme/sibcall_2.c
+ fab5f8d90e717b628f306df26d55a4c6  gcc/testsuite/gcc.target/aarch64/sme/sibcall_3.c
+ c9c5d63719aeeb95481242346004422f  gcc/testsuite/gcc.target/aarch64/sme/sibcall_4.c
+ f4358d854802c57a07829c82c6f0d085  gcc/testsuite/gcc.target/aarch64/sme/sibcall_5.c
+ bb85649ac9090f5c8c68c8ede6a961e1  gcc/testsuite/gcc.target/aarch64/sme/sibcall_6.c
+ fdf31615d4c23a6cda30ff2ff1493fcd  gcc/testsuite/gcc.target/aarch64/sme/sibcall_6_scp.c
+ 9036d6ed8e7c25a781bb37282c3aca39  gcc/testsuite/gcc.target/aarch64/sme/sibcall_7.c
+ 5a4e5012170fd731aad53e8a5e8ca2b0  gcc/testsuite/gcc.target/aarch64/sme/sibcall_7_ts.c
+ c24e7b6e6657e7a0bc6f6c3324ca0e55  gcc/testsuite/gcc.target/aarch64/sme/sibcall_8.c
+ b7e9ea35db65f1f9ab0129b6787b4aa1  gcc/testsuite/gcc.target/aarch64/sme/sibcall_9.c
+ 197d088cac6259805e5e00b6ddfcd879  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
+ 9ce9b56fcc81eccd70d155b7ba6b7628  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_2.c
+ fcf99b5d14963d6dc0b0c9a728fc8ac4  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_3.c
+ 45b9f575f027140925fc936c8d30534d  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_4.c
+ 85e1850960c61207c9a4cb5dd8e69598  gcc/testsuite/gcc.target/aarch64/sme/strided_1.c
+ 81a779484b0f043efbd99f738c1c27e6  gcc/testsuite/gcc.target/aarch64/sme/strided_2.c
+ 979334c69a2f8eed619a5a0284b37a61  gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
+ a5610f22b8f865667ffebce563c88521  gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c
+ 9cb16862a1478383d8cdf3203c2ad706  gcc/testsuite/gcc.target/aarch64/sme/za_state_3.c
+ 7a60cf4da2ff4c6d7086ae2a36cf1ab5  gcc/testsuite/gcc.target/aarch64/sme/za_state_4.c
+ 87835961d5d73ad50d96a3f254bcb7ae  gcc/testsuite/gcc.target/aarch64/sme/za_state_4_scp.c
+ ff37df956d90b080a15eee27baf83cf8  gcc/testsuite/gcc.target/aarch64/sme/za_state_5.c
+ a9421cc74fddeb0b2e03c60e20410ede  gcc/testsuite/gcc.target/aarch64/sme/za_state_5_scp.c
+ 031a04851bc92dab81da666022b43d00  gcc/testsuite/gcc.target/aarch64/sme/za_state_6.c
+ bc8fa843cae0050c83a00ac2cd807a98  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_1.c
+ f5392df0161b11a2eb084fecc3cb5f73  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_2.c
+ 3ff747add1e9dfb996292dd5bf39ad0e  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_3.c
+ bebea6bca886ddb2b04f3e5d8cdcc37b  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_4.c
+ 5894e562761e4a9c0970a6c20c035cbe  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_5.c
+ 33b81e9b83c7b38a981495a49f1aa0c2  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_6.c
+ d15056f4c9481ef024af18a010af1310  gcc/testsuite/gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp
+ d73f575123ea1f8b210a85a05740e038  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s16_x2.c
+ 0ec44768bb670ac528e5ac9f2472ec65  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s16_x4.c
+ c6877c6031b0b3cea72f4c67ff127e64  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s32_x2.c
+ 3e646e249176f887be4cd111e3b7e5ce  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s32_x4.c
+ c24d40468d5aae8834dc23e2af3af742  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s64_x2.c
+ 4d24bf77be7aac9f6fbaa8aaeca9441d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s64_x4.c
+ 6e0ceb4d80922ccd560924bac292e6e9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s8_x2.c
+ 41740527563aefd48b889b9cf08813fb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_s8_x4.c
+ 59583094c7fb204a097b11139ac2f270  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_u16_x2.c
+ 65ca6044fcf60d64f5d565eb4ab0567b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_u16_x4.c
+ 24fb7490e12da6115643393e8e0ac142  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_u32_x2.c
+ 3abd8fd05c9ff551a5afdbd290890002  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_u32_x4.c
+ 1077b5a3d15bbb61f1b6b53215df2524  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_u64_x2.c
+ 4d190cac6bc863950a0340892f0880c2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_u64_x4.c
+ 018920a6d0115eae5a0fdecac87ac5a0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_u8_x2.c
+ bf060877e0e3067f3774042509fa92b0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_u8_x4.c
+ d0ae70b2c375f3272b169959cebe2aa8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za32_s32_vg1x2.c
+ b06d418c39c13e7e524f7d68d7e896e0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za32_s32_vg1x4.c
+ 6a543ec953c5092f06e94d132d61b27b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za32_u32_vg1x2.c
+ 02414514902586017e5e2b284e7011b8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za32_u32_vg1x4.c
+ 02ab9faa9c85904d86c29f98e139e872  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za64_s64_vg1x2.c
+ 51e6c26ce329524338f1a4429eda9b03  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za64_s64_vg1x4.c
+ bbf4543e6bd57c651ab5160541c67546  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za64_u64_vg1x2.c
+ 10de2d035cc94d6e5417eb0a9873cecc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_write_za64_u64_vg1x4.c
+ 3d9af9b7b10ef1d94ad2618630b90aba  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_f32_vg1x2.c
+ f3273ba112cfcaba65be81d70f68777f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_f32_vg1x4.c
+ 561074b5bf2789694e9dc4bc995bcd8f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_s32_vg1x2.c
+ 4e6b62a23d57699bd7dac48b62b6a9e2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_s32_vg1x4.c
+ 57bcd8724dbe4d693b9093a5520a08a6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_u32_vg1x2.c
+ cb98661cb76cdd4bac9664b7f7d06c7f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za32_u32_vg1x4.c
+ de3ab92d4b867e41b39330054f7dd63f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_f64_vg1x2.c
+ af0c9bfd94289339a9a89b18b0914058  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_f64_vg1x4.c
+ 731bccdee8be17cd9a0051355158be0b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_s64_vg1x2.c
+ c803cc21302ec827d923660d7eb5e3c3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_s64_vg1x4.c
+ c51004424d10e799288e22af07498fb2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_u64_vg1x2.c
+ 426a8a4dcae7a2798501404234b1c876  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/add_za64_u64_vg1x4.c
+ 3d652db9596cef362f7c39c6b17e7bc9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c
+ 63d1cbaa5c0d97381df956921930ebc8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_lane_f32.c
+ e78d7953d4a32db3c0601bb046b7e3ff  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslt_f32.c
+ 7f1363ccca494cfa99fbbdef54a415cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslt_lane_f32.c
+ 04287e0e2960398e60d1d3532547a685  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bmopa_za32.c
+ b4eb3b683cde7a473091f3e0fa47a451  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bmops_za32.c
+ 25870d2698fec1b63c277d4aeb58ffb7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16.c
+ 48fc559886a97ae29a048dcd3501a36d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16_x2.c
+ 92b07f461417f9cf7aaa7e7eab47bd35  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f16_x4.c
+ 12e9ebc6d316050b01c7c9ffd227e076  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f32.c
+ 0ba19b59d0ad51b634c6e644e4b27ba1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f32_x2.c
+ 3190b2a8ea71cabd8f901d6893190ce6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f32_x4.c
+ 600d478ce84f389d563349f20ee8da14  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f64.c
+ 323330fe3f970dc8c8c5a681b9678774  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f64_x2.c
+ 85154b831d775baa6f2eb84cb6055f2a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_f64_x4.c
+ 7cb10619fb1f43d9e23e33d112cf397d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_s16_x2.c
+ 0530feec3b01cd10eaebb5b18bfd64ea  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_s16_x4.c
+ 7be2a8b737dab51f6d33e96fbb495530  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_s32_x2.c
+ e980b1967ac4f6393b6545b7d5be1633  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_s32_x4.c
+ 8afb5d553c7e779d91c8eee9f6d0b5bc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_s64_x2.c
+ 47cfae11559c869f0a0092929de194fc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_s64_x4.c
+ 62037bd36294cb58f3cbcf0ee865efd4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_s8_x2.c
+ 141661a3fccd1daed5521ae4cdea5536  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_s8_x4.c
+ 258c2f08cce25e7a508ff123e098326e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_u16_x2.c
+ 64665e036d5c08bb44e9444c2a9c6888  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_u16_x4.c
+ 5967fc5d6ce993538f2a03ac7fb5cb26  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_u32_x2.c
+ 820f23dbbf63e6bb8fbe2778f58a3158  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_u32_x4.c
+ 02c54b4693d6d206abf63a6802dac116  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_u64_x2.c
+ c65bd334ba3c69084bf9cb81c8f1fbe6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_u64_x4.c
+ c685b277fd4e4c6cb74674f501f0a902  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_u8_x2.c
+ 4b3a83725935cb5c8a14b66736b47830  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/clamp_u8_x4.c
+ 89e788555d04764e0853d83fecc99921  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cntp_c16.c
+ eed48cb77f089a4bef70c8a3b1e9066b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cntp_c32.c
+ ea6b477b8cf868d82f7b4020fc3d99e3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cntp_c64.c
+ 1c4ff89461fab497d187455c1dfe2532  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cntp_c8.c
+ 85117d9d7b5986492a8cb5406cd0a218  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_bf16_f32_x2.c
+ 7715c73d8155a0e7612f35550c33f95c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f16_f32_x2.c
+ 3c65346684f49a180e041092ba2c0bc9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_s32_x2.c
+ bd74662fa87765674d154ca63c69e837  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_s32_x4.c
+ 0c4515c5440fafeba33404df47d694f9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_u32_x2.c
+ 84da17a32976df75d7f7fa54f68383d7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_u32_x4.c
+ cd04bfeb885395f8141a5eb5e79d513b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_s32_f32_x2.c
+ 5da06bb8e1f77e628372e25b0a9a48e8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_s32_f32_x4.c
+ f8cd4f07fb93f3045ab21c993af3b464  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_u32_f32_x2.c
+ bfad1ade50c6407affa0bb57d100e232  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_u32_f32_x4.c
+ c7e70850df6204b80a6eb2a595dde2c5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_bf16_f32_x2.c
+ 8fb32ef3a80092caff5869318f4a26ea  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_f16_f32_x2.c
+ 6d2e06bbf42e9a73d30281a2ef54d819  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_f32.c
+ 2254e8fce53e727c3c39066718e987a5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_f32.c
+ 9f7f258d6d152e8e4e9e0d166efba1b4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_s32.c
+ 2f90e9c4c59aa90dc949d2e18df4e7c5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_u32.c
+ ab2c50d389ce596e612f83960accb2dd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_bf16_vg1x2.c
+ f3383da05b8415a028db9fe4e9dee86d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_bf16_vg1x4.c
+ b2871916905b229d9cc96af203c2d741  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_f16_vg1x2.c
+ ea1a13d45c82cd47b92921e3513d1ec0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_f16_vg1x4.c
+ 93e08ac06b2d77511340f3b3a0374f96  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_s16_vg1x2.c
+ 4a562ab5adbf64b62ef8e1f7525cb01c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_s16_vg1x4.c
+ 92492c0194aecf44c6056cb012d27b8a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_s8_vg1x2.c
+ d199c6279263b2d397cc23d804ecd05d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_s8_vg1x4.c
+ 651dfa6c05f8b410c9d2c18f469e88d5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_u16_vg1x2.c
+ c241c089b8ab3d16858bc39b4a02e19a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_u16_vg1x4.c
+ 2414599c9b0158d876c1596987c0b02e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_u8_vg1x2.c
+ 893522f325c06b0cee9384a00abc5efe  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_u8_vg1x4.c
+ 0be65845657ef9af15c74dab4c82cc35  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za64_s16_vg1x2.c
+ 82ca80a01f4b14a9011fb681cae95e62  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za64_s16_vg1x4.c
+ 9a73744c0c4e15b184bb36bb5d86ae30  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za64_u16_vg1x2.c
+ b32cddc1437ee499dde6e742aa28993a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za64_u16_vg1x4.c
+ 6945f4b4c7935aa74ad875b92039760a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_s32.c
+ c2aaad259d2a6d2baebf63670e518d4d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_u32.c
+ e72a24bf1038ad0cfed16980562835a0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_bf16_vg1x2.c
+ 3c8cd5a7e9c5313d6c1a0fccdce2b8ad  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_bf16_vg1x4.c
+ 58a998e9fc8953759988e09405eb2905  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_f16_vg1x2.c
+ df41634a7123886fe211986bf918fb4a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_f16_vg1x4.c
+ 10c2803320491fe65673116cd34586b4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_s16_vg1x2.c
+ 04bb1427235664c256e6164d937fafa7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_s16_vg1x4.c
+ 57fc0da4ef01858c3bd1143c52640282  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_s8_vg1x2.c
+ 6a78abbeee6c1cb79bba71aacc779c33  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_s8_vg1x4.c
+ 8c967eb55d8e7098f378f2666b277f05  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_u16_vg1x2.c
+ 475117fc312882521124ff8f9c01d500  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_u16_vg1x4.c
+ ff696717f5d3214bb965e490a107643e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_u8_vg1x2.c
+ 95c970aaf4e9dec8c32275696d099f4d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_u8_vg1x4.c
+ cab0b60487e8f2af2512d28b76373500  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za64_s16_vg1x2.c
+ 8d0bd12acb672a8fc4493b33535254af  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za64_s16_vg1x4.c
+ 6f276afc508fb14ecf34845130720ace  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za64_u16_vg1x2.c
+ 4ef41785f367e53595cec47d97c329e1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za64_u16_vg1x4.c
+ bc099c8a6f099ba51e8636336d5a5894  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_bf16_x2.c
+ 0887066d98ef600e77731a746e630333  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_bf16_x4.c
+ fd711e03fbc48fac32d3db9738b2539a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f16_x2.c
+ 5913191d4d998ffad89da2ae0a3d4488  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f16_x4.c
+ 4fb2c0c7d83b24135c75e6215f23bb62  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f32_x2.c
+ ec28ac62c31ac197347d69e24ca27c4b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f32_x4.c
+ bc8df40372b0f731a6871943d2ab3d25  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f64_x2.c
+ 480bec1ce3078fd4ddcb3297f81410c6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f64_x4.c
+ 46afdc84064c30f9d92f7ea89ccb2e23  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s16_x2.c
+ 99893261a2fc793b5afacb05b832cebd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s16_x4.c
+ 629fce5d4ce9540938e5f017fdcbd38f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s32_x2.c
+ a4dd10a980e6401a3f4a6a27811f98d8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s32_x4.c
+ 93fca288e4b7cef86f45799ac357ddd9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s64_x2.c
+ f957aee62a98e48b64e8e7b27435cf94  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s64_x4.c
+ 97ccfeea87ca137b24fac72520be789b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s8_x2.c
+ 6c13bd189f42455cf19702fe8d36e6f1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s8_x4.c
+ ac3d86f5605b700535f0dd6f0c5ce9ec  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_u16_x2.c
+ 6da74a78e7c7e8d7a22dfb82cdc372d2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_u16_x4.c
+ acc01a381c57e08ba75ef1de2d738296  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_u32_x2.c
+ c985c552b02ef844ae3520e7ea2752bf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_u32_x4.c
+ fce6749a3b51e8803c40dd30e583f255  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_u64_x2.c
+ 4843a7f5187b7e6ee6b6b4ecbad7f743  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_u64_x4.c
+ ae8db3ce85fbe4f4319acea0635eb790  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_u8_x2.c
+ 38cd564e52cc1fdc177bfa75eed59de7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_u8_x4.c
+ 71c3ad53c89515fdd4d30629aa5b4de1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_bf16_x2.c
+ fed19059de74f280c87b34cd1646d4dc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_bf16_x4.c
+ f98a3884bb74e8496fc315ef32f15ad4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f16_x2.c
+ 395d7010cee1eb1afcc171c9e9d9b893  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f16_x4.c
+ ac28407540ca7d4670210e42b0413a4f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f32_x2.c
+ 025875bb629aa93a7bb5c12d02b9de14  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f32_x4.c
+ 33d0b99b37f569fb7b3f617fb5689944  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f64_x2.c
+ 613a440a5220603023e1b77335a36710  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f64_x4.c
+ 827e86f3330b1dff7f134ea89ed9038e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s16_x2.c
+ 3fc5c355fb70c84f73cee8bb58426260  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s16_x4.c
+ 2092a53e766007efb6e6ceae6ab8a47d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s32_x2.c
+ 44da95a3da603d388237d7a9d47065e1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s32_x4.c
+ 6bcdf71d2b19a324c1377ae8ffa1fb11  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s64_x2.c
+ 17f0a6cc5b513f164ce6dc94470d3b11  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s64_x4.c
+ 3e6b14df8a7dd267bf391b11340609d7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s8_x2.c
+ 8f422040be211bf375e37209bd13ec2f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s8_x4.c
+ 7273f130a06e1f16a78aa8dd71bb2d40  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u16_x2.c
+ 0f5926ef83b923ead44c4d4e883e49b3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u16_x4.c
+ 2aeda6b89fcf1bcfd50b8ee05dd10352  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u32_x2.c
+ b9d0323dc24096969b137aaab76541fa  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u32_x4.c
+ 8102800dd898a7a25a60d41c3372887d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u64_x2.c
+ 1a4e2272de71258ed8b7a81d9b83e598  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u64_x4.c
+ 0fdddd40362dbc3ca9408781a54be2ab  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u8_x2.c
+ 3d7bda376291648afa3479cbb4c3efd1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u8_x4.c
+ c7f09758f4bb785e6b263957585a6f89  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldr_zt.c
+ b4d3512b25df8114001668c075e950e4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16.c
+ cc20708c03f9c819104c981fa264a30d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16_x2.c
+ 7a212674582b9e8f4340d5e01a9cb5cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16_x4.c
+ 25b37eb7b9d6c635518126095a74bac9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f16.c
+ 946e48e57775560264b3012550746047  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f16_x2.c
+ d98cb63fafbcb39cb8f837016598f6b1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f16_x4.c
+ 42f101ab3042eb94971d68202f636556  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f32.c
+ eb26cc608e004138fb870e9348821929  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f32_x2.c
+ 60184d0e40319b2932792c4114580d99  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f32_x4.c
+ 1694e3ca21c302ce86249490fbb0e794  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s16.c
+ 8fdaa275e37d30cb9ee3c646f8cb724c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s16_x2.c
+ 12b4d502b5badcbf68ae2a297c7f9628  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s16_x4.c
+ c6ebfc8fbe422e471692aa0d4e104df1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s32.c
+ 83dfed277a0752493767b15ce648e187  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s32_x2.c
+ f90be49be2b535556075e2768e6d06dd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s32_x4.c
+ 5e259cf22e2822d764e7ab224c639bce  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s8.c
+ 61a689400a0f9d28b78d066358d1939b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s8_x2.c
+ ed2468f97b338bb8fd95630f96ac86bf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s8_x4.c
+ 955a616a06ac8f3dc2896cbda3bdd83a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u16.c
+ 4b26f9dbfa7e748991c699cb91754406  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u16_x2.c
+ 472d17547b7d15265deabf1840ceb6f5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u16_x4.c
+ bb17f2c386d40cc6a319027871126399  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u32.c
+ cd41d94749929c14564f52403e57089a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u32_x2.c
+ a35ab1d4961558aafbef22fce06856d5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u32_x4.c
+ 37347e2c043d6dc6a6a5d1f0bbad1f6d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u8.c
+ 74cd9e99498468a32ae74b684d0479b8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u8_x2.c
+ c5d7dd475ed3f0cb878665e0e575d666  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_u8_x4.c
+ e1306ad61b49b9ccc40d3f754817de63  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_bf16.c
+ 8b14115da4ade70a5a5e16cdaecf1072  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_bf16_x2.c
+ 310e947db6f08ec1116b5eb1dda7a7eb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_bf16_x4.c
+ f79f511e6b87c6ed8a95684c98baf3ab  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f16.c
+ 26c37b92560a194801c10926bea01794  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f16_x2.c
+ 6d2f47dd24c57df977116f7443d37fb4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f16_x4.c
+ d25c8900eeb896830b7632be3b86be7b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f32.c
+ 0309e5cb32e0c53ff8a6a68da5159b55  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f32_x2.c
+ bdaae4f992811602f00a12e2a21e092e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f32_x4.c
+ 84f2072544313415ad0ece87b1820a2f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s16.c
+ a7ed33896e6accd40476f6c3a3000da7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s16_x2.c
+ 868cd86e41159cfa48eec65febc5ef11  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s16_x4.c
+ 5313db3d51d5b81403819980528a1f6d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s32.c
+ 81331d3b8c66cdef3890ec55a94c8ca1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s32_x2.c
+ 927791b6f15beccd5bc7e945dde93e83  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s32_x4.c
+ 0fe7111742665ab314661ba91aae0e98  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s8.c
+ 685b5e62ecf789582a9352b9ecfe58b7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s8_x2.c
+ 97c02e05fa5c26b18834787a8e6ed477  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u16.c
+ 4c27afbc87d807fd08e692d66b76c81a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u16_x2.c
+ 5eafef68d519b750d70d74a7ed0fcb35  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u16_x4.c
+ 837ca83b18d9b5bda38ead9c8ece198c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u32.c
+ 8611b1da180f5344747f7e5089521e9a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u32_x2.c
+ 5bdcbd15da35208161edfeec7296040e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u32_x4.c
+ 26177008a47686942e686fdc194b8dc0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u8.c
+ be9d746071f4821a7158f9380f767af3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_u8_x2.c
+ aa59d15b3e0053a69d3cf6d5148eeb58  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f16_x2.c
+ d2b449112798f452538aaa6d9d68e2ef  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f16_x4.c
+ 8f22c4453d69ce3aef7642f915eb95f9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f32_x2.c
+ 5756ab5601d78a4a79a9f1c132d2290b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f32_x4.c
+ d34a211cc3aed244fb97687dc8cb0486  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f64_x2.c
+ e998416d23b520c36b3efb3c1c5ada81  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_f64_x4.c
+ 52a456dd1d4b9c905435ea3326a9aef7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_s16_x2.c
+ 1de35373f31bbea4bc7b86011ead824f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_s16_x4.c
+ 1707c2122150733b635e7dbbf27272e7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_s32_x2.c
+ aef491c98dda9f9ea2251e4f2ca3ae4c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_s32_x4.c
+ d669acddd783bba16df5df54fe708ad8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_s64_x2.c
+ 7a84baeef47a281567ef410d7842763a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_s64_x4.c
+ a07eda2ac76a0dee0620f99cb9d63db1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_s8_x2.c
+ d724de9f1f9cf03b438579fc44ead330  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_s8_x4.c
+ bce438c4c4c1b76696a12d21182e3261  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u16_x2.c
+ 7326e6d94e7f7728e2143a9a9c363655  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u16_x4.c
+ f46ca477cdb8c1a4887d031ad72e8efa  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u32_x2.c
+ b77e8ff365c0464109c5e52354de540d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u32_x4.c
+ 661f85d23a840aadf0fd576ba2137253  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u64_x2.c
+ c41e8aad99d8188df58b36208943cc83  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u64_x4.c
+ de5953db175924ce323d2f3d739e6bb7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u8_x2.c
+ 7e01e9a01488a1c75443ad5a8de13497  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/max_u8_x4.c
+ dc314222dc324c11ebddc8a03a37d5a5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f16_x2.c
+ 510c2b9ccac2e8fa2494b332eec35cfc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f16_x4.c
+ 72b55ceb56cecb74461a8a3d19bf56d3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f32_x2.c
+ 777a48311d36346e5266051e2245b226  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f32_x4.c
+ db0f81ede12765ccb2ffce5946bc89cc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f64_x2.c
+ e76f9a59298ed9d2e48a443dae6d4775  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/maxnm_f64_x4.c
+ 25b83fde01179389c2130642eb6ba06a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f16_x2.c
+ f123c18b8420c4af69bc4058f7d78a5c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f16_x4.c
+ f29840b1f674f915460871cc5a944e48  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f32_x2.c
+ b0015648f519843a601054e41bcd7c62  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f32_x4.c
+ 0f53a096d9d3123641fff926ea2acc45  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f64_x2.c
+ e7429e1f09ddae523a6b039ab704e794  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_f64_x4.c
+ 3bc2b4be69620bc87d5f534fde454cae  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_s16_x2.c
+ 5ae6658cfcd04af7eea73ba22c3d78dd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_s16_x4.c
+ 21d0586977aa8395651dcba69180a9f5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_s32_x2.c
+ b1f550cc6a8881857cab260a65f51f88  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_s32_x4.c
+ e24d67fad78f709ee3279725a05e63c2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_s64_x2.c
+ e2ec8f807ac08e15c4166ac32012ffb5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_s64_x4.c
+ 9d0044432481581d617ea759db0d9d83  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_s8_x2.c
+ 74a4b4ca9b4573f3e5c91c949aa6da57  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_s8_x4.c
+ 5e3b2405033839967ec9ea08e09a91d9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u16_x2.c
+ c1ebb36781bfa1dc8339cd51a9fb2d00  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u16_x4.c
+ adfa8df1e627fe3703e465650d46b4ea  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u32_x2.c
+ 91f793b34bd094ea62f45860f0177287  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u32_x4.c
+ 0b208f2a5f26ce7ccc211ea8b6f98f52  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u64_x2.c
+ 83edac8025fd8892853abe3d5bb2c7fc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u64_x4.c
+ 73f60afb809a538496b5d6aa3f2a536a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u8_x2.c
+ 62e7116c874d97b5fbbed714059e2b70  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/min_u8_x4.c
+ e2db2141e1cc92ceb4248ec38c1f89e9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f16_x2.c
+ 2263d4251c4844c650616c4ae914f3c2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f16_x4.c
+ 34292febbbb84c5f0d7050e952f90f76  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f32_x2.c
+ df38a8fca585da7748386987d5318b98  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f32_x4.c
+ 1db3206fd1325e76d9f1570c97268ce9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f64_x2.c
+ 556e47d2b736adb60f0776f4d7cf0c45  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/minnm_f64_x4.c
+ 7ae4063210d14f310f6f95db01e453dd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_bf16_vg2x1.c
+ 24cb4f847a696ca1b06cb8da5503b552  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_bf16_vg2x2.c
+ 5c2f30d5d657a7b2249b627d61ddfce4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_bf16_vg2x4.c
+ 7f267ff243d6d0d37096e0e3446367ef  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_f16_vg2x1.c
+ dfb654d5cca6e8ae4af339f674e1c298  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_f16_vg2x2.c
+ 851c7429fa19845aeac6535fc21995ce  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_f16_vg2x4.c
+ 605c99d708a551eb9d61cf6405ac0d36  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_f32_vg1x2.c
+ 736dc28ccda7c8c969756ba859a0c69a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_f32_vg1x4.c
+ da1bb70a7c975d01d610292968d9808b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s16_vg2x1.c
+ 361ffb48db4e8a94bbb3c7e80ffa7b99  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s16_vg2x2.c
+ be69420dc7c3db71cc8fc51f125acdb1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s16_vg2x4.c
+ 9f59bcc703bdc87f98e15040c59ce035  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s8_vg4x1.c
+ 23e83e5ba5c98d728ec8a9f94938e932  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s8_vg4x2.c
+ a28cf964fc48c42ac5c424aa6a90d62f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s8_vg4x4.c
+ 99e94e4c0d6025d206df1f5144d6226f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_u16_vg2x1.c
+ 8dc0121b7373bd13d3999e803e039b75  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_u16_vg2x2.c
+ a48470576f7524613820fddc81b55be5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_u16_vg2x4.c
+ 74af8b3e42df8020113cff1f66ad57a7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_u8_vg4x1.c
+ 3048c3cfafeabc477198831922c8a92e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_u8_vg4x2.c
+ 1fddb4e8e4a403f15e3e159a32dee182  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_u8_vg4x4.c
+ 442bfd6c58175854ff01ed9e4061d08a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_f64_vg1x2.c
+ 72dc02ae899882a988ffd986b59241be  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_f64_vg1x4.c
+ cca51f3166bf6ff1e129faabb426bc88  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_s16_vg4x1.c
+ 482cbe5e8a8ad3e65661933b144e28e3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_s16_vg4x2.c
+ 179d5c3ea551f6a9f4e801d2e4eff369  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_s16_vg4x4.c
+ 05047aeb78011a8984d27b639b9db8c7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_u16_vg4x1.c
+ 286cfd5b842eec8c122ea85aef24f747  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_u16_vg4x2.c
+ c6255fa319a4b66adeb3cb556740ea16  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za64_u16_vg4x4.c
+ 1f5d6bdd4afc26adb52d3a299310f35a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_bf16_vg2x1.c
+ 4c319085edcace1f9e1340d39115be32  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_bf16_vg2x2.c
+ 1066940c95d6c281241572b5d74cc742  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_bf16_vg2x4.c
+ b149fc5d7701d711fcfefe85a2b96f0f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_f16_vg2x1.c
+ 9a3f0abab8d211ef04502e0acc3fce32  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_f16_vg2x2.c
+ e1fca5a6dd25bcf3b84d97289bc23532  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_f16_vg2x4.c
+ efad5786de17e50e9bb6046a0d9cd6fc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_f32_vg1x2.c
+ afec910f85fddc00f6091f412fe1cdb9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_f32_vg1x4.c
+ 37e2a2923b4104f053cba18952e3da9a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s16_vg2x1.c
+ 16bbd82d866991203f6325014edf413d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s16_vg2x2.c
+ 9c04f6aa6c7220c79238821e2006390c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s16_vg2x4.c
+ a1e30ef5599d3a12574d17e531f248b6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s8_vg4x1.c
+ b1cc7bc59cfcb8d4ec91d88c986275e4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s8_vg4x2.c
+ 7c2901157c55821aad986534729d07fd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s8_vg4x4.c
+ d5d8e958244638e479966ff787f5c6fd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_u16_vg2x1.c
+ 0af46de7675fd415c1794ac74eb1da89  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_u16_vg2x2.c
+ 86c59c37451ecc843902bc447c62a9d6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_u16_vg2x4.c
+ 16fdba6ab67771a7742445406ed258a8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_u8_vg4x1.c
+ 49a397b102c87dc1efa27cb02de1a3b1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_u8_vg4x2.c
+ 405b68d8ea34c18b8fd18b0af5520865  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_u8_vg4x4.c
+ 2ca473fad83a12077fb64abc4a9f9eb2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_f64_vg1x2.c
+ 3b44e0168ba412060cdf22e34946e293  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_f64_vg1x4.c
+ 9864238154f3b4482b0c4074803bb183  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_s16_vg4x1.c
+ 370ad360f8885696d63e3418e6379a71  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_s16_vg4x2.c
+ fd4022103946c61a6b74cf76750c4f29  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_s16_vg4x4.c
+ 8943f1fb7cb2157e703401feae1cb834  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_u16_vg4x1.c
+ 69a4129029bde480b1cb431ed599bfb3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_u16_vg4x2.c
+ 639953a0bcbdce7eb98d41a41b17ce86  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za64_u16_vg4x4.c
+ bdc23a7bf0d381fe05b3fc7abe289607  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_bf16_vg2x1.c
+ aed43f91b76f78f7a4562bef39e41f2b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_bf16_vg2x2.c
+ 061ae0f4254908447f3240c771d3bc71  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_bf16_vg2x4.c
+ 7b18b7f4ecf2fccf77129e522a13e815  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_f16_vg2x1.c
+ 0cbf4929b1c487624419de2cf52f60a5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_f16_vg2x2.c
+ bf0d678aa8008ef8be334250adfc9a45  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_f16_vg2x4.c
+ 7e7773b836e15666a09cd67e5a684e86  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_f32_vg1x2.c
+ 2e1a686c742cdd4b00eae16edbaa7a00  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_f32_vg1x4.c
+ 4469196b602ea8b0d9c57c7ad2d4e99f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_s16_vg2x1.c
+ 5b3d3fc5e8804f5c9543589849e28917  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_s16_vg2x2.c
+ 7e859a0cf27b4751c734bab4ac41279d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_s16_vg2x4.c
+ b6cc08de0235d095ea5b80dc6652f567  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_s8_vg4x1.c
+ 280540abeefdbc19e5e788de291346b8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_s8_vg4x2.c
+ 7dfff75e25b7e1c42e467d368e891535  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_s8_vg4x4.c
+ a1f4cf65267d5ebb4ff990c8803409a6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_u16_vg2x1.c
+ a7cfc0b31d3247942e2d7030af86b8a4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_u16_vg2x2.c
+ c160e03f9d42fbe64a8bcc1548860828  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_u16_vg2x4.c
+ 9eb46ee35f14fdebe51c8fbbe905e802  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_u8_vg4x1.c
+ 71df0b71f306d0171c40ddf6e4a8f737  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_u8_vg4x2.c
+ d0372c4c90a0ae3d92fb483ebf88af66  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za32_u8_vg4x4.c
+ 4059857703b552f063c83bfa1232b0c2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_f64_vg1x2.c
+ 98623ff19383f368bc250e75dd9eba9e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_f64_vg1x4.c
+ f2d1481cb4a64a0ad5180608791fe08e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_s16_vg4x1.c
+ 4761d339ae1b323b387e607e0ae6cfee  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_s16_vg4x2.c
+ 6489c866a4efa28840fd0368de186f80  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_s16_vg4x4.c
+ 5fa96eb60681d7b2fdfe6d2c5af9416b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_u16_vg4x1.c
+ 8b6e38b1b5958301c8cfee7e41825e4c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_u16_vg4x2.c
+ 6a36368afd63005845d421be32ba7dae  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_lane_za64_u16_vg4x4.c
+ 02981ec78f196f781bbd787dd188ef84  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_bf16_vg2x1.c
+ 9fadc733eb21f3c80331447a6c73c98e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_bf16_vg2x2.c
+ 2874561b8ea5760b3692b1a979c6a705  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_bf16_vg2x4.c
+ c418756ac3eb13706739a544f76eeaf8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_f16_vg2x1.c
+ d284124d58e3902d5ac0410af341b8bb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_f16_vg2x2.c
+ 90f1d4807cf8e6761955d524a844d795  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_f16_vg2x4.c
+ 30576eacb67aeb51fd7a523cf9bd7bdf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_f32_vg1x2.c
+ ba3fb52ba69a398fe79d3c4647caa493  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_f32_vg1x4.c
+ 504c51aa0b46b7b90b4e8ed592631313  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_s16_vg2x1.c
+ 312a42cec3e4eb8f79510ff927bab3a3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_s16_vg2x2.c
+ 107cce2dcebbe9a90db04dbfab5b0d69  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_s16_vg2x4.c
+ 6faa7f6ed8ef25cbaea9c8fc36c874d0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_s8_vg4x1.c
+ b88285900d5d13dfa74beab5d7054c6f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_s8_vg4x2.c
+ 562d62cbef80bdad367df657324ae7d8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_s8_vg4x4.c
+ faa1d700541730573e07499d1b353dc4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_u16_vg2x1.c
+ defc9349b6b7158fb0cab0952ca8caa9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_u16_vg2x2.c
+ e8a6dd6452703170c45535c8917e4cc7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_u16_vg2x4.c
+ 596bec1f0b96529f9cdc806f040a0074  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_u8_vg4x1.c
+ ab60989d48369f6b150e03225bb44893  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_u8_vg4x2.c
+ c15e2ce10f2408581112ceb161bfe10e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za32_u8_vg4x4.c
+ b859a5f522518a13c1400caaf256ce86  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_f64_vg1x2.c
+ 3790199a4a44964acc19eaba924b037d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_f64_vg1x4.c
+ 73a7b7e3e96b2f4829fa074381948139  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_s16_vg4x1.c
+ 20646c5f39f741250b985553f32a37ce  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_s16_vg4x2.c
+ 7a69dd59798a1366f42f24a464db3300  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_s16_vg4x4.c
+ 16b1e7c3885bc868c311e63021451b39  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x1.c
+ 08306410971afaae63e63dc395032c7b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x2.c
+ 090c16bab9987cd4bc26adb3356930e5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mls_za64_u16_vg4x4.c
+ 03b18bc928708b61d9b4f0973cf53572  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za32.c
+ 676a036c6c3b39dc99d832f1dcf5d10a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mops_za32.c
+ 0bbde403efac3e44679135e8a2d25843  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c
+ 8eafa44cc696b9c25c68917210dfb25e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c
+ ca309ebe63506eb3eac158f5e2724fed  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c
+ 102b5347bdabdf901f8c1ebed59cb155  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c
+ 08a26b9d3a11bb43e63fc3a426d8ec89  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c
+ d7732f10cc28bc212eff13af8a30a3f4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c
+ eef19f1f1f1b19ee7bba33069190fae9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c
+ e8991db6af6e2eb3cd20c4b57b29e67d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c
+ 64aa0bc1ee3bcffb38a58a0cb13e2c01  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pfalse_c.c
+ fb9049fc6fe8f1562670aa10ec1999bc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b16.c
+ 017e86ebb117ebc2f6b879e5f8dfff6d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b32.c
+ 7916a44ab5f48bcef419e9d18e1b58d5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b64.c
+ c8401fde1bce8d36982076e9f737c21c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b8.c
+ 97bb5b3aa756a6b6b66de165127bf821  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c16.c
+ da1cc3c94f35b2d6261b09be3cd12502  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c32.c
+ e77abd1a50800f21341d7e427bc08746  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c64.c
+ e39516b0373133a54a58a2820cd6b1aa  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c8.c
+ 44de5c73072b851153d18b3a5843b72c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c16.c
+ 9847e3e63b4516d7b21ef5cc4ec47036  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c32.c
+ 83337c441834a4abe1ee10837c4a7996  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c64.c
+ 937a9a64ed275ebd92096a66b021f56e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ptrue_c8.c
+ 4897334e65261ba17336a72db6a2f8da  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_s16_s32_x2.c
+ 0e25394cf32d9fb14ab948c027b3b61f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_s16_s64_x4.c
+ 3a57fcd8745b3f02a55353067ada3702  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_s8_s32_x4.c
+ eb94d7ae4a8def216cf4e812e176cf87  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_u16_s32_x2.c
+ 0714b1e5c7fdb535e2bb062ca21cc209  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_u16_s64_x4.c
+ 1ba103f1959b902f2e5f16a0a36f4ad8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_u16_u32_x2.c
+ f36a0df7f0260f59f76acaf7d0cffa61  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_u16_u64_x4.c
+ 659090c4af8c6ce7741fe78477be9ce8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_u8_s32_x4.c
+ 5b8feafb8ac78b252829107b81cd3e5e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvt_u8_u32_x4.c
+ df7a2d9bccb65b45f233ea3c009a1b48  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_s16_s32_x2.c
+ f28b75564449b1adcd5b310b273c0802  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_s16_s64_x4.c
+ 61fa7eba7e8f0cd37562428513d7aa8b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_s8_s32_x4.c
+ 232c2086279730103deb701cd2a3faca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_u16_s32_x2.c
+ d9b0a28094797ee129435d2ff6d500bd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_u16_s64_x4.c
+ 568d4be2dbed2d49f61f945e4eb67b63  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_u16_u32_x2.c
+ 466d76f46b3c71ad888c54efd9ae1a91  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_u16_u64_x4.c
+ c7dc730f3f14279b4830468b25bec0dd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_u8_s32_x4.c
+ c95db38bb9765e10882f6b704862edd5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qcvtn_u8_u32_x4.c
+ 2a18e11a1a74ae61042d6989a4c8edec  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qdmulh_s16_x2.c
+ bf8901279447aa94ae481e772dbaccfc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qdmulh_s16_x4.c
+ 57bd6201142dd4d518e540a629f30645  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qdmulh_s32_x2.c
+ 1eceb4f42fca68480a5866c4b41ff58a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qdmulh_s32_x4.c
+ f4395da9d06767d8521caa916106a5e0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qdmulh_s64_x2.c
+ e0cd8279c8b4c91f5b7f9eb9b1bb3924  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qdmulh_s64_x4.c
+ 5e0df3c35b704ba0fe45df87bb8cfdc1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qdmulh_s8_x2.c
+ 213291274411f2c5675cf9cefdf371c3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qdmulh_s8_x4.c
+ e3c0d63dfab6553fef36a6582d93b7ca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshr_s16_x2.c
+ 33376901f308cb05bd483fe641be28b1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshr_s16_x4.c
+ b56b74cf8f2debb90844f58c69a7e9db  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshr_s8_x4.c
+ 07983467bc8b93ac8ab23a2b0057198b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshr_u16_x2.c
+ 795229bab6610d242cbcb9d98c86b3ef  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshr_u16_x4.c
+ 491d6a01b9647f342f362b04f4ede4e6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshr_u8_x4.c
+ b4c2521fa8802fab4764865eb343a692  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrn_s16_x2.c
+ 864517bfb0794b3ac1f1515a837d8ac4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrn_s16_x4.c
+ a0163d68c7e97e92f169f823f965bca1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrn_s8_x4.c
+ 83968b197925272723f792652c043117  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrn_u16_x2.c
+ a7b1e1c532d5e83f7a2ca00e7951ebcd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrn_u16_x4.c
+ 85e9135c5e4b7269bba9538aa0328c6d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrn_u8_x4.c
+ 3f7f92cc5558fe45d259b13d49007698  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshru_u16_x2.c
+ cee82614b43d810bfed12a5369dd343f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshru_u16_x4.c
+ 8ef35f31afdf68885e52ad83aadca815  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshru_u8_x4.c
+ 69514bdef923881709f631b3018597f7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrun_u16_x2.c
+ 087f23821bdc7903753f5a79a51122ba  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrun_u16_x4.c
+ 7e6ed294529e71cce345af90f553cf09  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrun_u8_x4.c
+ f5d41f09d3b1acba464002767e474284  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za16_vg2.c
+ dcd97a7da607faf4b907979a110e5460  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za16_vg4.c
+ 83a644342bd915b8f4e2b571dbd2bac4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za32_vg2.c
+ 22384a721e6d418e149b4136c69495ad  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za32_vg4.c
+ 98705f7b7f755a54623039a2d8980ce9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za64_vg2.c
+ b2fa91bf485e03450c469b7e96adf0ff  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za64_vg4.c
+ 397be31d27b4fd44b0bf0cbe50b21529  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za8_vg2.c
+ 079468c1e3a20ceca46e25bd039c227c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za8_vg4.c
+ 2fcd4b6a03679d8cb0f73d645e8adac0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za16_vg2.c
+ 7a921093a09000dcffea26864f035209  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za16_vg4.c
+ 4dae55a5d39614f12a4c3d380e17f62e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za32_vg2.c
+ f080e4f3a28f3e13b7efb13501a54181  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za32_vg4.c
+ 37e029d82bd9a648bbbab068156e7106  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za64_vg2.c
+ 00cdc5de25dd1ca0dc2d10c65b0b3686  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za64_vg4.c
+ 01f823db3386eb46e747428c1807821f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za8_vg2.c
+ d4a169fc127815c1341ba7f3b5bba23e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za8_vg4.c
+ 78bed5693ad4628d22ab254f2560a50d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za16_vg1x2.c
+ 2df6e5f019a3667aefeca502f3c47d22  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za16_vg1x4.c
+ 29833bfe7c380c2594982be73a3089de  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za32_vg1x2.c
+ da5383a278d11964e3e04cdc3435cf1e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za32_vg1x4.c
+ 6a50b3cbf0c7083b01e400ac4f5cef0f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za64_vg1x2.c
+ 8a4e55c7aacf430f54a254c660be21be  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za64_vg1x4.c
+ b22e09dc2304b99136b2635940337653  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za8_vg1x2.c
+ d39be755ae823d8dda870622ad8a7a85  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za8_vg1x4.c
+ 8eb8e54b291746afdae2c763373bc24c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rinta_s32_x2.c
+ 4a0dbc26c94da78f79fa916e04b827a1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rinta_s32_x4.c
+ 975affd81f1281fbd96bf761df994a0a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rintm_u32_x2.c
+ b6b289d6b89372ae37943a6ee393b127  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rintm_u32_x4.c
+ bdf9167a1d106acb2d1fc9a9307bbf16  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rintn_u32_x2.c
+ 16a061dfe369b6bd002d8dc357bc5da2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rintn_u32_x4.c
+ 350719fb639431406692c580d91b2359  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rintp_u32_x2.c
+ 6fe5cf6700cce1f3badef5b5499ff18c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rintp_u32_x4.c
+ 57ca90e32c3ace4248e87b418dd9f2ca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_s16_x2.c
+ b79ac6c72bd451a53ed383a13e4e1e60  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_s16_x4.c
+ 9198305c6e1b22849978328735705f07  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_s32_x2.c
+ f2afb8821aa4bd0ef49e01baf8509e04  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_s32_x4.c
+ 4afd8ad7e3a8164c78017de6409909c2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_s64_x2.c
+ da7d34bcce55e4611531cff435280301  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_s64_x4.c
+ 41b30aca5009bde4c41054625aba6226  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_s8_x2.c
+ 0e8ae9525daa7b54703167beb7b0e6b7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_s8_x4.c
+ 570b79adba688304f11f14a5e25b0c6f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u16_x2.c
+ 8abb0bd4b8517e82eb84d628f2fab35d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u16_x4.c
+ 75e0e1f093eba595de2e995c5a4e0127  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u32_x2.c
+ 7c0d0250d1553a7ebb83dab1e812e5af  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u32_x4.c
+ d22a3bd90868146ac9eae1229a4aba9c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u64_x2.c
+ e7e3a27c2a468ff586b8fd1d17f67a3c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u64_x4.c
+ 0f56106e7a5b42675422b40b315e4035  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u8_x2.c
+ 5786b6152b5ef772386c1c2fb329421e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u8_x4.c
+ f2d9a2b1123be589ca2a71591a6388bd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_bf16_x2.c
+ 9f0b4021df6d37447f6daef5b6ab57c8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_bf16_x4.c
+ 94e0b3b236eb1f558e70a7b0a2327094  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f16_x2.c
+ 5528fd600c092f3f19dd73e9185001f2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f16_x4.c
+ 3c9d243e4e6d169c14ca9f9c9e7daf26  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f32_x2.c
+ 301ba82185eceb6f3f5de9d75bac8e07  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f32_x4.c
+ ab2ce556585e3d28560a869392c75078  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f64_x2.c
+ 354553af8574a13d5380f1d696d5860b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f64_x4.c
+ 7368aed510f0e4194854086d5454fa89  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s16_x2.c
+ df75020973319b98e2cd2a75afac4f43  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s16_x4.c
+ 15da70995b12578e38738bf7a6217434  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s32_x2.c
+ ba0811d33a1767d01d5373dafecf3acc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s32_x4.c
+ d6b630a45466e76d68d82584f08cae1b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s64_x2.c
+ 88699313bcaaec2f4a20252e9a90a1ca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s64_x4.c
+ b682c84b77af006903b79e51523a78c2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s8_x2.c
+ d87991a979e98f0c1271991ee23463d0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s8_x4.c
+ 9c8c0391f9a26ef7a7c8a19d23d601a0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_u16_x2.c
+ 92ced5dbd0c546b94843a092900b0ab4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_u16_x4.c
+ 1579a2cd408c06a5344b778be4b3517e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_u32_x2.c
+ e59875527190ae362f3b4f6346bd997b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_u32_x4.c
+ b34c7fdce5bad743c35c11169310ca1b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_u64_x2.c
+ f03c93f3061dcef15eef56a092dfae26  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_u64_x4.c
+ 0bb24971e26a752312837b4cc0a8bdd9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_u8_x2.c
+ ab3b9dc23983c2c678da0deaa413f7e3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_u8_x4.c
+ 9dbc6608d82a1f11629eaa1fabd22b63  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_bf16_x2.c
+ 637ec94600df0d24d096f37a27d166b9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_bf16_x4.c
+ b235e75ab90dd9f3ea18bf756bd65b2d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f16_x2.c
+ 7ea17fe20dcb4a7f5527755d2c93aac8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f16_x4.c
+ c89de4c4973fff658674bf6ef6ac5fc8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f32_x2.c
+ cf61894ecddf408dfc83cfcb0e7d1cb3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f32_x4.c
+ ad579961e19d0d85367bdcf34340fa94  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f64_x2.c
+ 68419cb130b208da9e647653ffb25cd7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f64_x4.c
+ 0586ba9db0c665667b86e164facaf72c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s16_x2.c
+ fedff4e7c4a9cfc9b4169cf5e566c4be  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s16_x4.c
+ e6f1cdae88967383b79add0f64a00fe4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s32_x2.c
+ a8d6ef68bf451fb49fe400b69bdea679  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s32_x4.c
+ 95859840964800e3cdf8a58330bb23a1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s64_x2.c
+ 7024674c10a8de1cd1beb6a45e3d076a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s64_x4.c
+ b4b77139afdde21d486a7fd47b2d9d61  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s8_x2.c
+ f569f05ff81bdca15bc79c58fb09b58b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s8_x4.c
+ 0f8dd4e93f5b10c1550f14380d2d9d71  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_u16_x2.c
+ 5b1c563c8da8aa0b61d9a7226d095cb5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_u16_x4.c
+ 7395f38d6c1e44852184aa65acfa46ba  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_u32_x2.c
+ d0698a406a275d20bdc73825960e8346  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_u32_x4.c
+ bfd3acb4b936058c222db877c81109aa  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_u64_x2.c
+ 7eb27521302552318eaadec39650a31d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_u64_x4.c
+ 6d92b849c06913031f627052fa75c019  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_u8_x2.c
+ 38a09c3d9be036a9431f9129edb3a784  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_u8_x4.c
+ 2ba1cde538ddd075ac75f3ac5a7dccec  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_bf16_x2.c
+ 0fc8f115b7a4a0760d8e1f28d295de0d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_bf16_x4.c
+ d6421e29a256e1df14496078beb2074c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f16_x2.c
+ fea934017e1c3a38cf60b1bdc9beb2cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f16_x4.c
+ 90086be8bbd71cfefe15779887f1f89f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f32_x2.c
+ 64d215d8dc2a47190cb23ce57e3b75d3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f32_x4.c
+ 40045651bf1fc2ce69709880e25c430d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f64_x2.c
+ 613bc24b14e5613a8f2eb31f0b65d29a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f64_x4.c
+ 2c853ed75bb21ee95507a8e4589afacc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s16_x2.c
+ c62276ba80c8c95003018d969787a704  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s16_x4.c
+ 7c8df31f7e8717bdbb3f7047ee9438bb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s32_x2.c
+ a9f97f86fb4daa469ecbd7b2cc3485d5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s32_x4.c
+ d42801c179f70f08f93b503be9c9e3cc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s64_x2.c
+ 778ca5cfa4c7c013e440e804d6326997  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s64_x4.c
+ 5834de94dea5558743997b2ee9ecaf9e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s8_x2.c
+ ede49a445fcedec68435b6d2888c1edb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s8_x4.c
+ b622bb543ab2ae1a44e70d55b17ac44d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u16_x2.c
+ b757b79c6758ea731cf8d21e59f72d80  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u16_x4.c
+ d46930c987c179ad5c81a9d622a4a435  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u32_x2.c
+ 8a1b96bfe241d093e5c253def59dc04b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u32_x4.c
+ f70a5a96b64575dac42f3727dc450746  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u64_x2.c
+ 4111107dc8932be7625d4b3aaf5316ec  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u64_x4.c
+ 7e951600e2af6dbece5b7117e794424b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u8_x2.c
+ 6ea50065904b86f9dbfe28c9c9424f43  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u8_x4.c
+ 6970dc6f5eb1d6e13d52233576cc1a98  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/str_zt.c
+ dc93a4d3f0ddf5dff57d1d6d3f4cac55  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_s32_vg1x2.c
+ 89f1dd3525839f289f9245f5818bf2c1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_s32_vg1x4.c
+ 9cb8e56faaab92f905b9ace561951dd7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_u32_vg1x2.c
+ fc08dc0a2444536f3a351a093d9d39f5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_u32_vg1x4.c
+ 2cffbed64b32970d88a3f13430e04b70  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za64_s64_vg1x2.c
+ 3a02873e2efb00b3816c13208a56f6d7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za64_s64_vg1x4.c
+ 88b246b75f7448f03e2d3d8644ce240c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za64_u64_vg1x2.c
+ c800827fa23147ff5d1fcf5d58170b8e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za64_u64_vg1x4.c
+ c8aed0c97520f84c42460c7d1f6f0997  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_f32_vg1x2.c
+ 1a2c2e81ddb807a510794a77d7683d5f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_f32_vg1x4.c
+ 55aaa04d1f58a7656837f81c1c6dbf75  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_s32_vg1x2.c
+ c66dc9146d497e493c7c4f8d92932b6f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_s32_vg1x4.c
+ 2e7278e5bb4816de3d5d8254c2da5d27  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_u32_vg1x2.c
+ 6765c9cecc39adb80996779bf0f979e6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za32_u32_vg1x4.c
+ 907314747a11b2648becc8419aa80e24  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za64_f64_vg1x2.c
+ 663456452f5c08ddbea0f60d1e81c86f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za64_f64_vg1x4.c
+ d8cf9b4984fd3c5b70f34b394ffc2cfd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za64_s64_vg1x2.c
+ d82e91485d24b0cf4d2e422ec8011966  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za64_s64_vg1x4.c
+ 6fc1b505983b658ea06e7a5586de8888  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za64_u64_vg1x2.c
+ 4d724c046a931a8b43b2b2c31d0aa6ca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_za64_u64_vg1x4.c
+ 9f5acc8031d26d50c28f59ef249c001c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sudot_lane_za32_s8_vg1x2.c
+ 825aff58fadc8202ccf19c6ded83e86d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sudot_lane_za32_s8_vg1x4.c
+ 2a4121b5645664402b571daa21f66172  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sudot_za32_s8_vg1x2.c
+ 41e685821a5fe75dbce4d2e681110882  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sudot_za32_s8_vg1x4.c
+ 98cf869ad1fbee9b39a6b7f1280c3819  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/suvdot_lane_za32_s8_vg1x4.c
+ 548e83ffcea63c963ba83c5ea81ed6ae  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/test_sme2_acle.h
+ 77448bea927d957f1775dca6bf314aca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s16_x2.c
+ 6ff10bfdd5d3166a1ab489104cca1a03  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s16_x4.c
+ 333d3ddf0f4bd44c3833ce2351276405  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s32_x2.c
+ 89ffd32461ca122d49d67773f6675771  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s32_x4.c
+ 9b962705af6f88606682cded8efd66ee  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s8_x2.c
+ 2341543b205a8bb6ba6752e8951a2394  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s8_x4.c
+ 6ef9b1f1bcfade8a5d9b82ce1a364902  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_u16_x2.c
+ a784da62687ba3b7724af8b64c52f41c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_u16_x4.c
+ 60bb6d2c4b3066ffd14c198ea969cf62  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_u32_x2.c
+ bce1df6eaa2593482c36225e40d5c05d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_u32_x4.c
+ 98c21fc1c30e99a401a8349a0554be91  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_u8_x2.c
+ 11a577d27e26ee52c3fe2de5a2dc5448  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_u8_x4.c
+ bac128e813b4e4d6a4c77ceb6d0159cf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/usdot_lane_za32_u8_vg1x2.c
+ 001f7373a5ee23df6648e29101eec197  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/usdot_lane_za32_u8_vg1x4.c
+ 1910b661958dbb829a01e40901db9748  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/usdot_za32_u8_vg1x2.c
+ 71d4abfdec8773f56ab0e01ac9c57763  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/usdot_za32_u8_vg1x4.c
+ 89f748ce06300949449b45ffbacffb0e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/usvdot_lane_za32_u8_vg1x4.c
+ f83459af141715d98c22efbcf9142285  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_bf16_x2.c
+ 42db2a72631d3a5dd95e6e12c45572d8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_bf16_x4.c
+ 8717df20b448899498b8e7932f536962  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f16_x2.c
+ ff27499dc8826e44cc49d07e428af4aa  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f16_x4.c
+ d6dab91015e04b1853f319c0a7e6691b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f32_x2.c
+ 6bf9ae7e79ac67d45d000c1f365f3146  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f32_x4.c
+ 18faf3dd9672e4d292be8d0f18d2f135  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f64_x2.c
+ 05c4c4205d20cac690d1529257a885d9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f64_x4.c
+ 15ba3cffef42aba66d0b9cd5d1d33ac2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s16_x2.c
+ 25079efb21b21b2c0aa081d1ceef88cf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s16_x4.c
+ 528e6f5700ddc8c482fc990c2f168270  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s32_x2.c
+ c424788572898d688b186078f04abecc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s32_x4.c
+ 331556161ce103742bdc4b9dc0d45ac6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s64_x2.c
+ 52ea6d1fcfb06af347d760073efea5af  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s64_x4.c
+ 388ef29f45c29f3d936bcbedbcce400b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s8_x2.c
+ 0abc76e24e547565ef6f058cd482065a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s8_x4.c
+ 197778c8c2dc2ddd443071e390e074ed  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_u16_x2.c
+ 913f6d65297496ab0f359a8f638aed41  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_u16_x4.c
+ 55606e256e2bc185d10ebd0fe86683b3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_u32_x2.c
+ e1e32f399c765f26a6cebc87235c2b6e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_u32_x4.c
+ 1645e7ad3fdc09b249b7dbdaac9fae95  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_u64_x2.c
+ ff9a6d91d04e2104f492f907bcec1972  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_u64_x4.c
+ bbcba33fab2b3eaf1dfbc95f2caf17d6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_u8_x2.c
+ a420c647b7898a617f07fc807e0055c8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_u8_x4.c
+ 4c0a33f5f5c15c2ca844fafb9b1ebe52  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_bf16_x2.c
+ 37f408bd1c86a3efc3f6e2673e869ba5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_bf16_x4.c
+ 0e3a0ca755f9c6cd313929ab244bc0b2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f16_x2.c
+ a495ba03e7e1a5a29c1dcc1f3d0a5818  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f16_x4.c
+ 3b0c58255ec5f06dc65604950b6a9847  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f32_x2.c
+ 8f9628bb164d18f06b25c496a65b16c4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f32_x4.c
+ 83b093f818e8392ccb5ca2da204b6276  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f64_x2.c
+ 74e3f1dd0f9f2acb06bce06562dc90b5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f64_x4.c
+ cb70e5cde8378503c9816d6b5aa42cce  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s16_x2.c
+ a6853395408f9abc4ba57223a8b2c753  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s16_x4.c
+ 2f3049745414e3cbdffe73e5da8ca931  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s32_x2.c
+ f48b657f748690537b9247935d571585  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s32_x4.c
+ db275e713079073b20b64e6ee0f77fa7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s64_x2.c
+ bb8acf691e34b36dad913eb592ee8134  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s64_x4.c
+ f062eaba39e286d1c3e4cdb75c8e9e0e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s8_x2.c
+ 6b3e198161ba98af71c79eb0e7cabb2f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s8_x4.c
+ eda4fc79216524b6cb9154bf8b067119  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u16_x2.c
+ 63e38f48a92855923b4db8239b861d4a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u16_x4.c
+ 54f403061561e2e67d9c4c4e8e6b66b7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u32_x2.c
+ 2f1a17c5633e450b3d34a676e1b5ab6e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u32_x4.c
+ 71baecf9378ed4a153c83af290a4b8f1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u64_x2.c
+ afb014686120f06a945893b033dda57d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u64_x4.c
+ daa4e38c02cf0ca5769991e0166e4d87  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u8_x2.c
+ 52484e276b7a6f988dffef97c0d2edab  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u8_x4.c
+ 1ba51add008e0c2e66608411aa967bbf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_bf16_vg1x2.c
+ 0a8b7d35821e04f411e8debb4e8cbece  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_f16_vg1x2.c
+ 8fab3c1fb029c9eb5eeb1213d20d92a7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_s16_vg1x2.c
+ 0ac63fe036bc83ecc03ae5c413ab05fe  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_s8_vg1x4.c
+ db787b3df5de3b90a1778c9e31cfeb87  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_u16_vg1x2.c
+ fcd07f204caee5fb5f0b3544c2afad20  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_u8_vg1x4.c
+ 842e777f6b8a4364818dce4bf498b72f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za64_s16_vg1x4.c
+ ca9fec7655002d228c407324be5f1085  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za64_u16_vg1x4.c
+ 9b20af2c8c04297e1df69b26834a69a2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_b16.c
+ 7b6b13feb83a0eacd12b12f200d086d9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_b32.c
+ 5a498c4d2e0347fdf29c36d6de6b5ac3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_b64.c
+ 19e203b4ddb24b35a6142a6da7390ea3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_b8.c
+ a0102f1c7379f4d1adb338498167af37  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_c16.c
+ 46f57ede3faf9666b3e123a8dc69b965  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_c32.c
+ d27f64b7cb7d69910646fc4461d249bc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_c64.c
+ 71b09027b1e45711fa48c0139cfeb523  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_c8.c
+ 4b571b7f90ab99f0c3892cd2a605da43  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilegt_b16.c
+ a19be69f6bb56801e5a512a0871b5ad0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilegt_b32.c
+ cb4a692b4610a9c271f808143db547f1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilegt_b64.c
+ 3f8f8639050b03902793f9cac2457c36  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilegt_b8.c
+ f86f7ae361488fcc166a605da8129ca4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilegt_c16.c
+ 31ee68abda9e7fd6d62d12ce1d7ec46a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilegt_c32.c
+ 5153aad39f083aa5fe13c82928b7f612  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilegt_c64.c
+ 1fa0526800c6f15cb1617b0e2f509917  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilegt_c8.c
+ a28f2aeb240f3fe6d2978ac84eac16d0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilele_b16.c
+ 78d746aa6018decc24e66608448d27f4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilele_b32.c
+ 1a5b67513f4dad49f19569977aba993f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilele_b64.c
+ 500b3d8d486f1ca3e1bf932d2392cd90  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilele_b8.c
+ 3e64c2454b674524207ccf5c304430d0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilele_c16.c
+ 7838812a41e50924d68e5ffee2d6c2d8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilele_c32.c
+ b4e86269a8a36f0ff430b8052d586952  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilele_c64.c
+ 40ca519516e5cf033b0dbb65f318e309  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilele_c8.c
+ 3260b6e750c44afb00caa1cd4911192e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilelt_b16.c
+ 5949764cffc1a1bb9cb17ad6f763c3f4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilelt_b32.c
+ 25c9a49a80a0d60778d6b6cd78687164  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilelt_b64.c
+ 923d93923fb7e156b23cfccba15b1895  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilelt_b8.c
+ 85ce8c25a037a052e9eba4dfe278fb11  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilelt_c16.c
+ ce9ea0a1e105ac8397d4f8251d29964b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilelt_c32.c
+ 5b8abce669536776257dfff0c6e0242f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilelt_c64.c
+ 28a1bc002c42979d2282ed886d53cd2e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilelt_c8.c
+ 08cf4a63583c3e5100cec7c3a2720ce7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za16_vg2.c
+ 68acf687eb123345a3a3dbd2bf25aefd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za16_vg4.c
+ 6a519a7b258ef8d924c58d73a4927e9b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za32_vg2.c
+ 1b9b67591a207398f36c9cd0650b703e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za32_vg4.c
+ d4494a698dd329d5da6754fa4e7dc45d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za64_vg2.c
+ 0777e54b63a250b29b9bd6988e2e38b5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za64_vg4.c
+ 670d25f205c0eedc73d9c6e364336cbd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za8_vg2.c
+ d465761f5c6c8f8ca7a8c8e6d4fb18e2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za8_vg4.c
+ c8973aaea30e9995e738c714f292182a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za16_vg2.c
+ 1773aa1973a99056c4275f25b78b8d42  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za16_vg4.c
+ c62bfc1a475dc826e807ce41969d402b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za32_vg2.c
+ 0fa8585311f0689dc058b933752b5b45  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za32_vg4.c
+ b2f8974228ba195e65552b8de779565a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za64_vg2.c
+ 9eff54b0fa429f57309cafeb578844bc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za64_vg4.c
+ 71ed2b767f2e2c554260b9008f161563  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za8_vg2.c
+ 47e01e12f80fd1a7aba6cc8771753b46  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za8_vg4.c
+ 674714d9eeefa4f2a12d5f52af0eb67a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za16_vg1x2.c
+ 4e33796e0252308e8c6a664bdf147984  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za16_vg1x4.c
+ 35c11179e1ab2d62f5d8dedbd8a2e424  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za32_vg1x2.c
+ 51b72e45dc7628585d3babe9e6520018  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za32_vg1x4.c
+ 7530007f0abed0b9257c4f7e70144548  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za64_vg1x2.c
+ 35d20bc558182139cae7d1d2a122f1a6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za64_vg1x4.c
+ 20130e8914f7deef7673f29599e5e145  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za8_vg1x2.c
+ 2887fc8a9d4cfa36256570c431ba2395  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za8_vg1x4.c
+ 842b1d58ad5d1ee560321b461b8733b5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zero_zt.c
+ eca7c47d351d1df09e7298c0b939ea51  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_bf16_x2.c
+ bfc407ea5205c6326abd5adf44a321d8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_bf16_x4.c
+ bce89101644b8e5dc1b4c1599dc62203  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f16_x2.c
+ ed7ec2e0f4dceed6cfc65152dc2dd69e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f16_x4.c
+ d538457193e82209a0d220b1c033a680  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f32_x2.c
+ bac4fe4e5ac70753ee5177f2969f3841  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f32_x4.c
+ 46dc1d485d7c1205f84ef4632e91f56f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f64_x2.c
+ 31058aca5c18a01e07b9b974cc487005  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f64_x4.c
+ a9d48207530f099ff594a1b18d031eea  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s16_x2.c
+ 74ce02da3509100e586849c24b45a0bb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s16_x4.c
+ b40e0c1edf9cb88ffb94d20727e31451  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s32_x2.c
+ 6a47674116e1bb6fb94472347a0f6ec5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s32_x4.c
+ d5c7cc5cf7fd9dff234b31e97a8f3821  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s64_x2.c
+ 83b28fbf26e7fd1a2d07bd83e718f5c7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s64_x4.c
+ 48c5b7aee67f383299997d6ad8ca658d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s8_x2.c
+ f8226f8681563925039e34f0c0218433  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s8_x4.c
+ aea872631d67cbd33a6c28cf935234f3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_u16_x2.c
+ 01fc25c66829d6ba69bb0a0c3ea71a67  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_u16_x4.c
+ 384a9d04c0fe4cfd982d69e137b19535  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_u32_x2.c
+ f35aff7505bb5d201b1d55e306485265  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_u32_x4.c
+ 5f6714a7e69e4a29d3b97853abd5bbf1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_u64_x2.c
+ 80adf929846cc26b4dedd823477f9f5a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_u64_x4.c
+ 79b141dd9709e086c18e877d3bbbdcb6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_u8_x2.c
+ 426d0f7f53eea7b94f9318f01e0195f7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_u8_x4.c
+ 2d69542406feb3874bded2d13b6b8a2a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_bf16_x2.c
+ 5c400de0d6e1e2d13e2a72c7cd6a7d2e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_bf16_x4.c
+ 3555a59ee1e741d25141d75ba5d671f6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f16_x2.c
+ a073e9a0b1d6712b1796e666f092d865  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f16_x4.c
+ dbb23c5b36ef91174f62bf7cba4d6ddc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f32_x2.c
+ 0e4e5b6d8e08a0013271805c26b040fc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f32_x4.c
+ 20d1e257707ab6b3cc94fb1901b0a78b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f64_x2.c
+ 1875ce085d0022daf6469e864cf13e93  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f64_x4.c
+ f99dc0c1c035702cd63c19800e9c660e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s16_x2.c
+ 2cbbab3075d7fd872ccc1976e83309da  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s16_x4.c
+ 8a4d5eda0c73963e7a58244b96ee6a8a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s32_x2.c
+ f4bf93c5047f983841d867b48dd9a4bb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s32_x4.c
+ 348f9c98cdd6351ae9b2cd25ecf3c840  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s64_x2.c
+ a165df87110f800bd21f5398feaebeb5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s64_x4.c
+ 8f8dc0e931206de4d31ab0991a8a9a68  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s8_x2.c
+ 7b89420e5ab856dc969a2831d6050378  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s8_x4.c
+ 40b7c72bfd3e52e29db834385c7bdd24  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_u16_x2.c
+ ff2967c92c5f9737173641778f1c0cbf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_u16_x4.c
+ 7e71164ab7b0cb2f1764ea1e93ee8ad6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_u32_x2.c
+ 20d8ccac235bc4888be03bbc6c0b3144  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_u32_x4.c
+ 4645d0441c2fcf0db6d9d29b29e0d5bf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_u64_x2.c
+ 081f3e470002698c70b7d763d4611999  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_u64_x4.c
+ 1563a750197d256c6d5803b9c9eccf48  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_u8_x2.c
+ ccf6eb7d60052aeeb115fc48eab990d5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_u8_x4.c
+ 3c3f340f05725faf0c907fb16ee5abfd  gcc/testsuite/gcc.target/aarch64/sminmax-asr_1.c
  75e6f162f69d023ed491e527240992ca  gcc/testsuite/gcc.target/aarch64/smov_1.c
  e414dc04465c5addb25b43a59cc281ec  gcc/testsuite/gcc.target/aarch64/spellcheck_1.c
  0b508e0ea40f93dfb0b6afcca4d21f87  gcc/testsuite/gcc.target/aarch64/spellcheck_10.c
+ db43a4a8ba02dcf2c6ddb07a3a276a93  gcc/testsuite/gcc.target/aarch64/spellcheck_11.c
  1c287219907e110889f1c6702b055fdc  gcc/testsuite/gcc.target/aarch64/spellcheck_2.c
  0994b950f62dafc38693405ca796983d  gcc/testsuite/gcc.target/aarch64/spellcheck_3.c
  7a99444b0c4b744562c85becf03023c1  gcc/testsuite/gcc.target/aarch64/spellcheck_4.c
*************** ab9816f0fa89b01232ba9f7ffc945eb7  gcc/te
*** 55307,55313 ****
  629a0fab295e3148bdcbcb6e3dff688f  gcc/testsuite/gcc.target/aarch64/ssadv16qi-dotprod.c
  88329a328a41e05702fc92b943fbf480  gcc/testsuite/gcc.target/aarch64/ssadv16qi.c
  512465aa769914ac35eb1d0a4232a211  gcc/testsuite/gcc.target/aarch64/sshr64_1.c
! af60056026451e6dee0380e795ebc86d  gcc/testsuite/gcc.target/aarch64/stack-check-12.c
  e6c55af3adf3650fb4b27beafb000634  gcc/testsuite/gcc.target/aarch64/stack-check-13.c
  fac6f931983e67baa339968698f4c2e5  gcc/testsuite/gcc.target/aarch64/stack-check-14.c
  609f20baadbd661d2a0f815cf84a41e4  gcc/testsuite/gcc.target/aarch64/stack-check-15.c
--- 59503,59509 ----
  629a0fab295e3148bdcbcb6e3dff688f  gcc/testsuite/gcc.target/aarch64/ssadv16qi-dotprod.c
  88329a328a41e05702fc92b943fbf480  gcc/testsuite/gcc.target/aarch64/ssadv16qi.c
  512465aa769914ac35eb1d0a4232a211  gcc/testsuite/gcc.target/aarch64/sshr64_1.c
! 73e2f511da95fb645c83b17b6f51d1e7  gcc/testsuite/gcc.target/aarch64/stack-check-12.c
  e6c55af3adf3650fb4b27beafb000634  gcc/testsuite/gcc.target/aarch64/stack-check-13.c
  fac6f931983e67baa339968698f4c2e5  gcc/testsuite/gcc.target/aarch64/stack-check-14.c
  609f20baadbd661d2a0f815cf84a41e4  gcc/testsuite/gcc.target/aarch64/stack-check-15.c
*************** a39fffcb877f065fdd23dfa57eee91ff  gcc/te
*** 55327,55346 ****
  c2a30320545955ae7a4bcbbb006591c0  gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c
  65bc395ce81a82844cf56c9c527ed62e  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-1.c
  e1809e82f25f94c4d0945a9220fc235e  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-10.c
! ee374121d8e3b134daa646b8dc500bd5  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-11.c
! b6d24cc44c0ae841eedac19bb3b71ae7  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-12.c
! 09c97a9c7acb1e945b98e857a57d5d78  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-13.c
! 8ae74d3437f7d43d17cfac17632d942f  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-14.c
! ed8a92c22bb4c356e72a00b75da4bccd  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-15.c
  f60705b79c18983e5449cb2640888da9  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-16.c
! 7df002241fabdd43166a078456b9af79  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c
  4d593b97a712f1c1b227372e57c2b116  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-3.c
  dbd54994dcdef6b44b1f3378ddd01e83  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-4.c
! 4f9b39e7a10dd2ede8a5c7b35f2e98ff  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c
! b6a86e4539e956f55a82711f45a28e1d  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-6.c
  db832f8fa7442c0229f0a35d0ea8ff1a  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-7.c
! 1c66e19d708f5eddf69f4222a5f56863  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-8.c
! bf1b4163311ce1666bdf27103c7c7f54  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-9.c
  6cc96f2ff91ce012328dc2190416bdf3  gcc/testsuite/gcc.target/aarch64/stack-check-prologue.h
  a45adf8dc3cf3437c984bded22857527  gcc/testsuite/gcc.target/aarch64/stack-checking.c
  15daf3ca2e93cf9884e5c8e104e8a765  gcc/testsuite/gcc.target/aarch64/stack-protector-1.c
--- 59523,59546 ----
  c2a30320545955ae7a4bcbbb006591c0  gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c
  65bc395ce81a82844cf56c9c527ed62e  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-1.c
  e1809e82f25f94c4d0945a9220fc235e  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-10.c
! ea15e4a67a836541f5115dc1a0c34975  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-11.c
! ac3db2399e343bf6aa97e54c57df82ad  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-12.c
! 121164ab67b14b90a8a60c008ddeb606  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-13.c
! 4b3b5b4b9dfbf8ee2d314d73efa96a36  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-14.c
! e996cd8c829a02c64b035caa943ddf85  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-15.c
  f60705b79c18983e5449cb2640888da9  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-16.c
! 88257f5a4ca972bb5e1bc6a5a4eca89e  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
! 14d0d8388a620d2cf045430fae29bb5b  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
! 6ccb0fbe36746268e24f8912f1eabee6  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
! d7433841ac09c91656c5bb63b8e8a09a  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c
! 3615b928f50ecd37b55bccdd18e7b615  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c
  4d593b97a712f1c1b227372e57c2b116  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-3.c
  dbd54994dcdef6b44b1f3378ddd01e83  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-4.c
! f4a154bf65900f64fd155fb1f95ddd80  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c
! dfe2ec70e3cd8e2d7a4f8eb9dfaea6b8  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-6.c
  db832f8fa7442c0229f0a35d0ea8ff1a  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-7.c
! 988588363cc30be9cddf2458225188e6  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-8.c
! 2c3556ebdc422d8a3e548e01b23c4371  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-9.c
  6cc96f2ff91ce012328dc2190416bdf3  gcc/testsuite/gcc.target/aarch64/stack-check-prologue.h
  a45adf8dc3cf3437c984bded22857527  gcc/testsuite/gcc.target/aarch64/stack-checking.c
  15daf3ca2e93cf9884e5c8e104e8a765  gcc/testsuite/gcc.target/aarch64/stack-protector-1.c
*************** e13154393d19a49196906480b6d2d4bc  gcc/te
*** 55350,55355 ****
--- 59550,59557 ----
  3367dd14de391b1bd4bcf779e76b539d  gcc/testsuite/gcc.target/aarch64/stack-protector-5.c
  e01a1f1b04b18c2fe9d9ae7868f0e844  gcc/testsuite/gcc.target/aarch64/stack-protector-6.c
  a27709d027d6c6481721a51a678b65ed  gcc/testsuite/gcc.target/aarch64/stack-protector-7.c
+ ecbce9b7301b6ddc08bd87f89762b3cd  gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
+ bd965202297cac63c28f20a2183eb2e2  gcc/testsuite/gcc.target/aarch64/stack-protector-9.c
  e60080b5e2fe845d07811566ce955b35  gcc/testsuite/gcc.target/aarch64/store-pair-1.c
  fc9240608ee0f16e1f1c3b227052460b  gcc/testsuite/gcc.target/aarch64/store_lane0_str_1.c
  187e9a28ba40c7239e3291680f4edd90  gcc/testsuite/gcc.target/aarch64/store_lane_spill_1.c
*************** b8c2c1180004b93a6595ce5210822124  gcc/te
*** 55357,55364 ****
--- 59559,59571 ----
  fa57c8801f6408a8a60441b14264d643  gcc/testsuite/gcc.target/aarch64/store_repeating_constant_2.c
  c53782180ecc2da4ebe7c8ea28905f89  gcc/testsuite/gcc.target/aarch64/store_v2vec_lanes.c
  0a4a90933116614f46d21e3af250af94  gcc/testsuite/gcc.target/aarch64/stp_1.c
+ 855557e886d243df7ead46e47788793a  gcc/testsuite/gcc.target/aarch64/stp_aligned.c
+ 0fd55c1e9b04e3167761d9361fdb425d  gcc/testsuite/gcc.target/aarch64/stp_always.c
+ e23988652b64bd83479393dba459d02b  gcc/testsuite/gcc.target/aarch64/stp_never.c
+ d02cfccd0b9b65d1c952dc0a4fd68710  gcc/testsuite/gcc.target/aarch64/stp_unaligned.c
  20a94ac6074e4b9fc9ae888885d787ca  gcc/testsuite/gcc.target/aarch64/stp_vec_128_1.c
  2b3b2d71a1eeaa42d801c6f3133c4919  gcc/testsuite/gcc.target/aarch64/stp_vec_64_1.c
+ 602eebf0c342d4d7e38b07e7544fb46f  gcc/testsuite/gcc.target/aarch64/stp_vec_dup_32_64-1.c
  f19ede0e4b05ef8dfb622bbb931da820  gcc/testsuite/gcc.target/aarch64/stp_vec_v2df.c
  8e4e6b5ef2b82c562beaa0575c3f3b41  gcc/testsuite/gcc.target/aarch64/stp_vec_v2di.c
  bc1fbefe895b54cedd688127c53b9660  gcc/testsuite/gcc.target/aarch64/stp_vec_v2sf.c
*************** a4531a773ebb1ba221309f7860dbafa3  gcc/te
*** 55373,55393 ****
  da0f05a59f07947e5516436d11add9e4  gcc/testsuite/gcc.target/aarch64/subs_compare_1.c
  244d438c9b47564a8579d9ea1b0639e2  gcc/testsuite/gcc.target/aarch64/subs_compare_2.c
  b80ee08d736c3560f1d085793990beb9  gcc/testsuite/gcc.target/aarch64/subsp.c
! 5100298de44ce9bb05c0d7f99fe29e50  gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
  18ebbc8e9de1d2ee5d54133da671b995  gcc/testsuite/gcc.target/aarch64/sve/abs_1.c
! 6055e2691e8fd9527c1dc616fa8481ec  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! 7ae1887a6c09d13a53f0d2be00acd608  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
! 7f5733dc43b70ddb95a2391ed989189b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f16.c
! 50880d9abd4092a46bc1d7b23eb352a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f32.c
! 94959a93fdfe967c8d71932f6b318833  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f64.c
! 02d0aa595865aa5fc5f633efa4b627ad  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_s16.c
! dcc59d862c1fe5aab297d2d8ca559920  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_s32.c
! 6086370ada4c544d2a55ae28612c451d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_s64.c
! 32163d9c5b3b48026c580943f7f565ca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_s8.c
! b53677344f58258d0cae2d778b60cb3f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_u16.c
! dcd1ae6e0f918fe382153d666bf96497  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_u32.c
! df28e3ba08865a2f9b9a59a10be3b28f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_u64.c
! ae9f367900086068ba0742e3102cd8b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_u8.c
  90c14e3a7d0befb3e2f68ce15a61d3e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f16.c
  74a36a84f1170e01523e4bd0d5c71103  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f32.c
  cf55563cd90b12877d56dd29c1ec4e43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f64.c
--- 59580,59608 ----
  da0f05a59f07947e5516436d11add9e4  gcc/testsuite/gcc.target/aarch64/subs_compare_1.c
  244d438c9b47564a8579d9ea1b0639e2  gcc/testsuite/gcc.target/aarch64/subs_compare_2.c
  b80ee08d736c3560f1d085793990beb9  gcc/testsuite/gcc.target/aarch64/subsp.c
! 36962347e800d070719d9e332d214821  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_1.c
! b135579ce681e74c80f319482fde80e7  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_2.c
! 2b1fdf8217ead1442009059ae002c033  gcc/testsuite/gcc.target/aarch64/sve-neon-modes_3.c
! 1bb97dbe28cf8f13b0118299675f2af7  gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
! 346c3c2a2e315fe0b70bad7df18688e3  gcc/testsuite/gcc.target/aarch64/sve/abd_1.c
! 1b1f81a7e1450f6036dfd4713376f464  gcc/testsuite/gcc.target/aarch64/sve/abd_2.c
! 75061c73bf9e3e7af02ff8d8457f5512  gcc/testsuite/gcc.target/aarch64/sve/abd_none_1.c
! 05c156b14aa112cd2807bc4eb133fafd  gcc/testsuite/gcc.target/aarch64/sve/abd_none_2.c
  18ebbc8e9de1d2ee5d54133da671b995  gcc/testsuite/gcc.target/aarch64/sve/abs_1.c
! c22dae91839f97ca3a67c8adecac4433  gcc/testsuite/gcc.target/aarch64/sve/accumulators_1.c
! b98ddfbbcc564e1c915c4446888a0924  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! fe06392010356470a1341513e9216d55  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
! 5af3b7c813a2126358fb53676638d8da  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f16.c
! 09f3e49bc58aec25be5fa56dc68049c3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f32.c
! eae3da841383db23699205bd452a2c20  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_f64.c
! 8818a5dc1ed93fc72ea1dcc2a76ce185  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_s16.c
! f4fbd703d0db2ccc1971e767e28fe2e3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_s32.c
! 2d5828dcd9f688f2b8da00755d01b604  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_s64.c
! 88a0de04b859c8f0e7bc1d118b0c9f59  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_s8.c
! 6e64ca276d882b6315e7a911daf6a020  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_u16.c
! 7172b3109fff44f38a8ea7c7ce80b1a9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_u32.c
! bc6ecba78494c4cc7b91e105eba643b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_u64.c
! f20c6bbbabbdf72e45023615989faaee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abd_u8.c
  90c14e3a7d0befb3e2f68ce15a61d3e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f16.c
  74a36a84f1170e01523e4bd0d5c71103  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f32.c
  cf55563cd90b12877d56dd29c1ec4e43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/abs_f64.c
*************** b6054825c5d35f58bb48101430d1b5d4  gcc/te
*** 55413,55429 ****
  8537941688ce3b26501b6174f0f767f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f32_notrap.c
  72c82f3be00807a6a89881bff9605d68  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f64.c
  ff1cd4d590fd82d466b2ed5ded52b1d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f64_notrap.c
! 887796b6db5b0b69a9bf40d6291aa89f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_s16.c
! 838e25990c6da97a7bc1a1f0c8cdea8a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_s32.c
! db963ce3668fdc180ec93052066b96ce  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_s64.c
! ce27d4312f69396f826fa97db3c72aeb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_s8.c
! 1ad1f95ef621b0637998e9cd9c3209a1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_u16.c
! 643a0cbfece5c25a5610f2589ac26441  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_u32.c
! 27981eb8045264e04931f23ece70049d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_u64.c
! a73adcfc9fefa7fcb023f320ea1152d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_u8.c
! be320a89133ed847de5427c4530f50e1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adda_f16.c
! bec5bfed085d39ae167fd1c4cda171d0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adda_f32.c
! ba5f2b4286fb985d6357e524135ff010  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adda_f64.c
  f881d5af41c1dbad8dbdf951e4d1d5fc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_f16.c
  d5bd422905484c8a84dcd67d3fbca53f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_f32.c
  9ee0256611a9c0f47188ee16fcf73a74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_f64.c
--- 59628,59644 ----
  8537941688ce3b26501b6174f0f767f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f32_notrap.c
  72c82f3be00807a6a89881bff9605d68  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f64.c
  ff1cd4d590fd82d466b2ed5ded52b1d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_f64_notrap.c
! 6703a1856b6f98a57f29a822e4c103dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_s16.c
! c9ff87b2ff500d35cc5596f4ac81fccf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_s32.c
! 233831983cd07ad455ef5c45af34dc4c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_s64.c
! 9750e29095345fee0e81c6b3dbbf7f89  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_s8.c
! 33814a5bf59a7e9e4ddf506c1452f6dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_u16.c
! f2abd9f4b0bd77aa91d4dd34dc61f48e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_u32.c
! 7f4e53757693945ce159d39b9e1ba92e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_u64.c
! 5b121e42cbe4d2131e27c477222c85dd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/add_u8.c
! 139f51e74b6eab602cc457d0d13d326e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adda_f16.c
! 56a2026a9cd9b7b042a1d18032914727  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adda_f32.c
! b513eaed3734b231bc45625b0ef7b587  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adda_f64.c
  f881d5af41c1dbad8dbdf951e4d1d5fc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_f16.c
  d5bd422905484c8a84dcd67d3fbca53f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_f32.c
  9ee0256611a9c0f47188ee16fcf73a74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_f64.c
*************** d5bd422905484c8a84dcd67d3fbca53f  gcc/te
*** 55435,55453 ****
  56c8338cddd16e6640e03b7d66bf877b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_u32.c
  632c25834cdf9b034a6e362ad1164ef7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_u64.c
  44a32d1cd35e6fa6a0813ea017ef114e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_u8.c
! e6b471970a6fc1c377f82d08c394d7cc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adrb.c
! bccac4037253f4f344d3095c0e5a2d95  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adrd.c
! cebd0039723b3fa5189720e6d4afd303  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adrh.c
! 3131d6e2c9e6b3558955191d87a1344c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adrw.c
  9f614c6e3a42e99b7e51f4d79c2abaaf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_b.c
! bf118212d0fd662c3f8f00382a15679b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_s16.c
! bde6c453be95e781a03650a3480dd6b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_s32.c
! 2d743d39c8f2ee4ab9b3b6b55d326c0d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_s64.c
! 27b37d7a9517740105ea60a528137fe2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_s8.c
! 3250838bd8b6a356c1d17b8a37c3cbf9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_u16.c
! ff0972358e0ab4fb628abfd84a53f19a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_u32.c
! c4a6c29566716f50656c9ff94eabeea3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_u64.c
! e40b650bac8e6efd63d8663bcaa485f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_u8.c
  bd5f98fdee2e6e976fe3620626103160  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_s16.c
  954c75bf9c92f6c81856e97a261339b1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_s32.c
  70059976002405c48070704714ae822e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_s64.c
--- 59650,59668 ----
  56c8338cddd16e6640e03b7d66bf877b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_u32.c
  632c25834cdf9b034a6e362ad1164ef7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_u64.c
  44a32d1cd35e6fa6a0813ea017ef114e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/addv_u8.c
! daa669c8a0102299a2d809b64a3915e6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adrb.c
! 368a81ae9af04321043a1b03c0b0c559  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adrd.c
! 90e9405aa8f94b770409983500a28160  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adrh.c
! 9806ea15be2b71fd71436da170097936  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/adrw.c
  9f614c6e3a42e99b7e51f4d79c2abaaf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_b.c
! f9b2d06ae4289d22eba0e4f416bdf807  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_s16.c
! b381a0ea55c9c40361443937fc93eed4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_s32.c
! b25c7afd0c444138c8e130ad9c29a2e6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_s64.c
! da437244b32e2c71b58bc477a0c6a786  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_s8.c
! 16158c534aa883f28f49eccbab034aa5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_u16.c
! 9afea9a277062818080c78d0f6b7c9e3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_u32.c
! cdc159f8b47780e17d706ac6d221911e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_u64.c
! 356771ff0c4e389d1a3554c209dfea4b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/and_u8.c
  bd5f98fdee2e6e976fe3620626103160  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_s16.c
  954c75bf9c92f6c81856e97a261339b1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_s32.c
  70059976002405c48070704714ae822e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_s64.c
*************** bd5f98fdee2e6e976fe3620626103160  gcc/te
*** 55456,55468 ****
  82d0f2ddee1595f85d7d9ed49afc5874  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_u32.c
  06a5bf90bfc4622cdf2d502979ab92ee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_u64.c
  e9a062dd255a7c5b0b6f0995fec88797  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_u8.c
! cd983ae3b45419287c15bc0f9046babc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_s16.c
  325d64a19d5db2d815bd9af6cd51a617  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_s32.c
  1e97c3252c92d27ae9da54398026e9fa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_s64.c
! 3ea8efd74e423034a1aac7f2c465b4bc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_s8.c
! a12c547a6720f768ceee313ee2961c22  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_wide_s16.c
! 8b623bd667949ff79616c79e60bad4f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_wide_s32.c
! 464ada0da7701c4b25acb235f8cb1830  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_wide_s8.c
  24500aa988c5492e82675ae1c80c74b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asrd_s16.c
  9a9f64f4ea08bfdb1074dc46343ae223  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asrd_s32.c
  1edf68429b4fc9c0285642294efbf99b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asrd_s64.c
--- 59671,59683 ----
  82d0f2ddee1595f85d7d9ed49afc5874  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_u32.c
  06a5bf90bfc4622cdf2d502979ab92ee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_u64.c
  e9a062dd255a7c5b0b6f0995fec88797  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/andv_u8.c
! b0d7cfe355029e62af717d740aa81b28  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_s16.c
  325d64a19d5db2d815bd9af6cd51a617  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_s32.c
  1e97c3252c92d27ae9da54398026e9fa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_s64.c
! 54ccf5003c3e4ae0d1e7cab2fd5eccf8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_s8.c
! 50ecb7f651dd5cfd075ef0d3d73437ab  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_wide_s16.c
! 6a7d4a825a17cfb6ec1f9e12117f9e5a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_wide_s32.c
! dd57786f3a48c27cf2b92ee41edac6b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asr_wide_s8.c
  24500aa988c5492e82675ae1c80c74b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asrd_s16.c
  9a9f64f4ea08bfdb1074dc46343ae223  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asrd_s32.c
  1edf68429b4fc9c0285642294efbf99b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/asrd_s64.c
*************** acb3fbfb1977d0ddac6260ff78383c7d  gcc/te
*** 55473,55500 ****
  64c49f20d98f720eba9f851b6bd780d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bfmlalb_lane_f32.c
  d43f4598c11db51ac4151737a3ec5593  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bfmlalt_f32.c
  f4135e8b42c5b0a27eded92d40323739  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bfmlalt_lane_f32.c
! 17add13965683641259ee7585a596336  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bfmmla_f32.c
  582246d65f485a3d7582cd6125f56d30  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_b.c
! c59ed951d4b2ac8ae7319ab30a74b4c8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s16.c
! 91af43f0506943759048d9178b610b4b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s32.c
! fc6fe9736307dce2952e788838115582  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s64.c
! 086f7fd11a9970153384bc4eb5424d98  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s8.c
! a79e30e97ed1ed58e3c996f9a29db3f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u16.c
! b8777290bc59989db45dbc3a9d53da70  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u32.c
! 18a63146f132b588a1b68a781fda5422  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u64.c
! d8b36048713cf6ca40a625494b8af473  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u8.c
! 46eeed304a37c4bcd6f103f80c70a531  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brka_b.c
! 4d630901bec642edd6ccb69f6f9e3513  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkb_b.c
! 15d49c1ccb3af2be7f9991b58a62f7c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkn_b.c
  51e228f38470f6e85b98ccbcc762f0ec  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkpa_b.c
  34172c8b5118788c4c362d083cbf9d6c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkpb_b.c
  fd2dfe71944a7319124148379575735d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cadd_f16.c
  cec7de2404d73dd156a1e1be8640c078  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cadd_f32.c
  4a0fc8aba750ca31d3566550922fd701  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cadd_f64.c
! fdb2b4b366be96ab3df8ac21e0f8cebc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_bf16.c
! 1a626465b837a0d5980b259acee3bd98  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f16.c
! f17114b740669dc56912ec3a42132bd9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f32.c
! 2b37512e55a01cd9a7b3ff5f49a3d212  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f64.c
  96fc88d5d985210e83f1c59083bc0dfe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s16.c
  21f444c0d80e15a2e9a38534ef037741  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s32.c
  23b236ee16bc833f39a5fb39ff06bb0d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s64.c
--- 59688,59715 ----
  64c49f20d98f720eba9f851b6bd780d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bfmlalb_lane_f32.c
  d43f4598c11db51ac4151737a3ec5593  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bfmlalt_f32.c
  f4135e8b42c5b0a27eded92d40323739  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bfmlalt_lane_f32.c
! 5082fed2ec044775cf2f826f4d81696f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bfmmla_f32.c
  582246d65f485a3d7582cd6125f56d30  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_b.c
! 3a736c5bc57825589a7afb4d2632b102  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s16.c
! 4101153c83b36d847350c4377c70194c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s32.c
! a850fd44d17004b3adff62a1950dd019  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s64.c
! c0e75632507945d7ea36bbcdca5595a1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_s8.c
! 790184203b2e29f0b3f5edb1ec9f93a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u16.c
! d1cf22eea7972906753573b1f522e0a8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u32.c
! 46c25436fc5b0c3582480cb2b1003e74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u64.c
! 4bd65f68172e75541298d2898242b8ef  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/bic_u8.c
! 9bf97cb0935a5e0c08df4b9fa26a7bf7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brka_b.c
! fe4bee3bb6e5d28da763511ce62058b8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkb_b.c
! fcf10a114648a9eb59d85866903ae4b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkn_b.c
  51e228f38470f6e85b98ccbcc762f0ec  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkpa_b.c
  34172c8b5118788c4c362d083cbf9d6c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/brkpb_b.c
  fd2dfe71944a7319124148379575735d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cadd_f16.c
  cec7de2404d73dd156a1e1be8640c078  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cadd_f32.c
  4a0fc8aba750ca31d3566550922fd701  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cadd_f64.c
! fb54fecedd00d4d3ccdd3b8376d09e2d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_bf16.c
! c282857ea5e495b2f2853f2dfd630b26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f16.c
! 648cdd3209cfed847e1f5bd40e2d8ee5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f32.c
! a8cee16473f43f4f8eaf843638fd7933  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_f64.c
  96fc88d5d985210e83f1c59083bc0dfe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s16.c
  21f444c0d80e15a2e9a38534ef037741  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s32.c
  23b236ee16bc833f39a5fb39ff06bb0d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_s64.c
*************** f526dd2ab9cefb5b7dadb353e72bcaf1  gcc/te
*** 55503,55512 ****
  3401cbdfe6c3aaa5ad303834a7e0e97a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_u32.c
  e23f79d7e23eccb630c982425beb236a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_u64.c
  39686623ef1d5550c8108c5e1a27fae5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_u8.c
! afd2566fb318d5bc0c71cdfc89c3eece  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_bf16.c
! bbdde84c5b546cda9b27e07145aebfa2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f16.c
! 30c3f61ff0fbc8b19c936a6d8da7aca5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f32.c
! 5b32fd2b3bf1e285700d282a29fbf0e6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f64.c
  f7f1111215555989f231553fb4836336  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s16.c
  4e322146e0ed4ae9d60686ce166cbd44  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s32.c
  75f139147d9eaa0430da954be34b9803  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s64.c
--- 59718,59727 ----
  3401cbdfe6c3aaa5ad303834a7e0e97a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_u32.c
  e23f79d7e23eccb630c982425beb236a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_u64.c
  39686623ef1d5550c8108c5e1a27fae5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clasta_u8.c
! be1747ea6d92fceaf1e86ed9d3443dfb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_bf16.c
! 7686e99b30a989df83816b9744f112af  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f16.c
! b050a1c5db2990413541be49967ab144  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f32.c
! 3de12000cb8c280d06ac83f21de4fcf6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_f64.c
  f7f1111215555989f231553fb4836336  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s16.c
  4e322146e0ed4ae9d60686ce166cbd44  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s32.c
  75f139147d9eaa0430da954be34b9803  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/clastb_s64.c
*************** eb73180e7df9dad1a163b0dbd6108302  gcc/te
*** 55651,55677 ****
  b329f5f42842d8fbfcde90b3b0ac95d8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u32.c
  3c2bfed20b9f97bbbae82ffcb83009d0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u64.c
  58c289b1a3f39fc3e5edd5d5acc9c236  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u8.c
! eaf102599836109062ffc139091abe2f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntb.c
  828dc47f5d84f727166c9b012dc3c50d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntb_pat.c
! e4a19bb5e30f56bae629ec7b50ff925e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntd.c
  324b44e908f45c4bac7c1a2f2b6cbe9c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntd_pat.c
! aa0a9083483bd3509e36906b6a694f77  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnth.c
  d707671ee0877fc02eaa93a45e67e22c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnth_pat.c
  f6c264e158b2e8ac464fe4f627877166  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntp_b16.c
  e9c4ac3ab5181792a38c1f99758a8cb9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntp_b32.c
  d3f8e6d4321c6201b92317aff6f39ad9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntp_b64.c
  0a4eeec02551c7158f2719a01f256ff6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntp_b8.c
! d8ef829fd133ea702a97c53cb48f521e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntw.c
  6a9b991664fe6aa60efc65c1f94f482c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntw_pat.c
! e6c5c6b10b819c95541132811265d0d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_f32.c
! 594241b956d17bf666c7a6397134eeb4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_f64.c
! 587fe448cbbe223943000fd1824aa6b1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_s32.c
! 606d2e4cf7d66ada239bf5ac080f91ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_s64.c
! d03780157ae3d923a85b22fa6011a1ae  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_u32.c
! 717e7a0c0b0909a3affec6985301db7f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_u64.c
! 097c7a43445de8cba5ddb65fa08b4f89  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create2_1.c
! 8e2d62b880654e8a540d214f48cbf4f3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create3_1.c
! d4519a776c2f6959b57acbbec12934d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create4_1.c
  7ac5befd60051e2c3a0dae07404fcac3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_bf16.c
  b59d2c959c3327d797a92bff06c456b6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f16.c
  5bbb5399743aed1a5f446ce8dd4ab7d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f32.c
--- 59866,59892 ----
  b329f5f42842d8fbfcde90b3b0ac95d8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u32.c
  3c2bfed20b9f97bbbae82ffcb83009d0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u64.c
  58c289b1a3f39fc3e5edd5d5acc9c236  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnt_u8.c
! 44ffc5ce85b80981d2f67fbe32e2b1d8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntb.c
  828dc47f5d84f727166c9b012dc3c50d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntb_pat.c
! 27ad78a94ffd7d127492f3ff869e7e79  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntd.c
  324b44e908f45c4bac7c1a2f2b6cbe9c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntd_pat.c
! d37ed3dd0d252523d8c0862ceac30045  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnth.c
  d707671ee0877fc02eaa93a45e67e22c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cnth_pat.c
  f6c264e158b2e8ac464fe4f627877166  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntp_b16.c
  e9c4ac3ab5181792a38c1f99758a8cb9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntp_b32.c
  d3f8e6d4321c6201b92317aff6f39ad9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntp_b64.c
  0a4eeec02551c7158f2719a01f256ff6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntp_b8.c
! 1a63084b9a12c3b748f9e7ec72a061a2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntw.c
  6a9b991664fe6aa60efc65c1f94f482c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cntw_pat.c
! 8a18c752adf22e3a80061ee06b1a753f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_f32.c
! b3e3f4e5edc927eecc1258622b3d5f39  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_f64.c
! fe1207fc8a777e1821f360d05d26c092  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_s32.c
! 78de857b11b1463703af18692725e12f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_s64.c
! ab1aacdab1199783fccd4b5f4965b073  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_u32.c
! e9da53abaf6d019ca31195bdb6c969a8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/compact_u64.c
! bc76337978a3e06106d6c2aac6ae6a4f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create2_1.c
! 829d8963ad178b17e8a457bffb880ef7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create3_1.c
! 02db21866a05527e9d898266410c7f95  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/create4_1.c
  7ac5befd60051e2c3a0dae07404fcac3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_bf16.c
  b59d2c959c3327d797a92bff06c456b6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f16.c
  5bbb5399743aed1a5f446ce8dd4ab7d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_f32.c
*************** a05c72bb5a2bad9a8167ab5e35e011d7  gcc/te
*** 55683,55710 ****
  77ad2a3e88d8541d8f2973f0c6647a73  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_u32.c
  60a7c2e5009bb3576c198bc8124d5748  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_u64.c
  6af806895c5563ed60b5942ebcbd967d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvtnt_bf16.c
! 19b94a8b62fa7638c251fea92b7296a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f16.c
! 4ae38725c44ad8ae9b602806068651d9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f32.c
! c009a8a7c7795d385c820591b50a9988  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f64.c
! dbfe688e80245eac4b98a2b812080143  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_s32.c
! 2a26c10912810a720fd46b59d9c2eae9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_s64.c
! 7e9f758e5ac2be0d4396ab6faaa3522d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_u32.c
! 478710ed33c0d4210b2cc45828e50136  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_u64.c
! a0b0f3747892879e45d8411218bbdb92  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f16.c
! efc6dfdee37e3ac889fed35af5bca778  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f32.c
! 17e2ec499570fdda4bd8df585568c5dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f64.c
! 297d68a3c4649c25e4fcee878f0ec2d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_s32.c
! 14a6d19eebc9d16f3b5f07b6e8340bb4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_s64.c
! e9354f54c6640a93b9a64b06c71610c5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_u32.c
! 5d05db8dbcb44269d6bdaf4b43b18322  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_u64.c
  9bad9e7a6cd3839be5b95596bec146af  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_lane_s32.c
  fa51d40f72d9c6c3d9a35c8e25af25f7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_lane_s64.c
  b41e8b160a7ae4654d4e1dcbe4657220  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_lane_u32.c
  157151b4197ff4ae4aad9212717c81af  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_lane_u64.c
! 8b04b904a096cc8a0d1f4f2b47637673  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_s32.c
! 40f62c7961420f57c4fbc9828d92718a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_s64.c
! 00388acb62f399ee74c6da0a65354ce3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_u32.c
! e9e0e72b6caffe26f17ed90c039e30f8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_u64.c
  77d00f441ae280d2617b03170731ae66  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b16.c
  3a2b35ce3482a4c28be3f6f29ae380b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b32.c
  14a3ea080f5c240dca14fb7384c3344a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b64.c
--- 59898,59925 ----
  77ad2a3e88d8541d8f2973f0c6647a73  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_u32.c
  60a7c2e5009bb3576c198bc8124d5748  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvt_u64.c
  6af806895c5563ed60b5942ebcbd967d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/cvtnt_bf16.c
! 644284f50d4b1f2685962421ea78f457  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f16.c
! 22a8756486d41e1fada76572570dab81  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f32.c
! 030144f86d6a0c5e5aea6cb20c355484  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_f64.c
! 89a3d18d37e59928133e0b5d65870f18  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_s32.c
! f966b720ea89fb4f941de97bd37ae35b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_s64.c
! 1e1a5d44ca8217003cbfe0efec348c26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_u32.c
! e3abcaa1fb827f437503360488430e72  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/div_u64.c
! 01a2e7e8fc0e8a561561b0e5770acabf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f16.c
! 9260524a094a3267a42d72ecd8bbbc82  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f32.c
! 68a37291fa655bf4ad4aa1354c67040c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_f64.c
! 27896c81049f299bfeb2d137ec5fc4d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_s32.c
! e46680c86c4b6fd931d8bb7bb69d53ca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_s64.c
! 82971998471c6ac265b2fef2b58284c9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_u32.c
! 82885fc48c86f5989e1c01a6dcb140f3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/divr_u64.c
  9bad9e7a6cd3839be5b95596bec146af  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_lane_s32.c
  fa51d40f72d9c6c3d9a35c8e25af25f7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_lane_s64.c
  b41e8b160a7ae4654d4e1dcbe4657220  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_lane_u32.c
  157151b4197ff4ae4aad9212717c81af  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_lane_u64.c
! c74121ec0420f4213a3db29d35482b7b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_s32.c
! 5999e4917ddb27d9510622bde909ec26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_s64.c
! 4feb627e8800b655419f5e24fcbab1c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_u32.c
! eec249db065f3a86470b4cdd0afd4707  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dot_u64.c
  77d00f441ae280d2617b03170731ae66  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b16.c
  3a2b35ce3482a4c28be3f6f29ae380b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b32.c
  14a3ea080f5c240dca14fb7384c3344a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_b64.c
*************** c2d21444de7980031e9b3468759c18f8  gcc/te
*** 55725,55742 ****
  f8db72abf60f1a8ac634fad0d2ff9a70  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u32.c
  5f44414ac7c3c8a624b468957dc2285c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u64.c
  017eb44471cf29acba24c46bc026ea0e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u8.c
! 18aba1ebd4150fdceea9f190eba208cc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s16.c
! 8ba5fdec6124dfd51422686684a8832a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s32.c
! ff13667473fa6ef94e9dd9c1984490e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s64.c
  34ae53d5168044e856cc8b8af8ff3541  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s8.c
! d1e5045d1a21d08aa21dbb5274851c13  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u16.c
! 7d6eaaa358bc4622b8d420e390ed1aa8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u32.c
! 9dbbe11c0a26445a9beeee75ae053107  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u64.c
  25df7fab9aba9fbe74ab9e37dd3c0e5b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u8.c
! b2aa595378fe67ac5cc504435ca508a9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b16.c
! e7749ff6645892a5923f88dbc3ec8a2f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b32.c
! f14796ce05f706aac4011233a1e5394b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b64.c
! c4f4b0566dcf458678c2101a2e6931cc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b8.c
  37c252aeced91b6927f3518d25ca2513  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_f16.c
  63debd988bcba903be9567b782eb9cd1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_f32.c
  236111f61d803d04cb282939770d27cd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_f64.c
--- 59940,59969 ----
  f8db72abf60f1a8ac634fad0d2ff9a70  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u32.c
  5f44414ac7c3c8a624b468957dc2285c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u64.c
  017eb44471cf29acba24c46bc026ea0e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_lane_u8.c
! ba88c55e3c34aa6f5a0bc569c9215ff8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_bf16.c
! f6ef91ee3323d5a041958e19fbe4939b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f16.c
! f11a98af2001dbe8e0e0d104e6b11b3a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f32.c
! 0c54bb9b2f64b113f778842935ffcec6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_f64.c
! d456cae10294cbed8ad0384bcc96b8b5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s16.c
! 15711f68e07e4cd135958466af64dfed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s32.c
! 76b8748c6f274fc65810059d3282d083  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s64.c
! 4db598ba5760bb29a5b4574bfd061074  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_s8.c
! 43201b8d9eed0a11fcffdbd877b9b988  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u16.c
! b65e770c3562f33aefd54a3b74450ac1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u32.c
! 48c46e58c06844fed26fc71a5d9b2977  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u64.c
! 04b6ada14aad43d52b3cc37e4832c0d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_neonq_u8.c
! e9ac7d30f40b47801ebbaaf44fea6779  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s16.c
! b73e31859e96ae9720d7fa03c98b1d11  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s32.c
! 73dd04765ad04314c77bac30799dd02d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s64.c
  34ae53d5168044e856cc8b8af8ff3541  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s8.c
! d8fac60715caf541b330f1d40069674d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u16.c
! e6d7365911fccf597cfcc4d026c3367c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u32.c
! 680a2fcc9340edd13ddf9a2f9d86c256  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u64.c
  25df7fab9aba9fbe74ab9e37dd3c0e5b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u8.c
! 4b2de0f90ea5912af0dee6e63aa4efa4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b16.c
! 4b644e1ff71911187926414b8f179e4a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b32.c
! f48b23cbea6952de74b95b1d47adb067  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b64.c
! ed637b53961ec5bfb3bf5d8a150e2aa4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_b8.c
  37c252aeced91b6927f3518d25ca2513  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_f16.c
  63debd988bcba903be9567b782eb9cd1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_f32.c
  236111f61d803d04cb282939770d27cd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_f64.c
*************** a30abc09c3894db82116e58d2f9f6c2b  gcc/te
*** 55761,55774 ****
  b16dc71ce46ce632ec2a67806ab3e884  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_u64.c
  d05276a39576da8b55d94719b8939ced  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_u8.c
  29deda905e68937e8f6d6de5972708e4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_b.c
! a9c76bd839205245a8fd1dc8f5f386a2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_s16.c
! 831c81d6aae906adaff09621b4dd9e04  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_s32.c
! 9e3c6d6cafec60d6cd5a9f2fda959e8d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_s64.c
! f820551acd5403da33ceef5b6b05b05f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_s8.c
! f9e0ef6ef79afb7a6505843cf36d2549  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_u16.c
! e860fc91ad49e2da16f9e4a4d073c18f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_u32.c
! 6808f1dad07e86c8042f2acaeb962dad  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_u64.c
! 58b6f937d36610fbc6dd221dad7c8ccd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_u8.c
  2705f4086d564e76f96ecc65a5cf1695  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_s16.c
  2b302aa0960c7bc6ab9a154e2c3de3d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_s32.c
  a95f803d9cac145982fec91a2a3e69d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_s64.c
--- 59988,60001 ----
  b16dc71ce46ce632ec2a67806ab3e884  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_u64.c
  d05276a39576da8b55d94719b8939ced  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dupq_u8.c
  29deda905e68937e8f6d6de5972708e4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_b.c
! 6b7ca3b1ef57c5cbec4a9d4f218af6cc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_s16.c
! 5de5e387e36934eabccf91e1fb975585  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_s32.c
! b09ac737a2baae2bd3c30cb898c8434d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_s64.c
! 22c8af1b0acfde8b4f391eb46ef100fc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_s8.c
! 5b971d3310806071b18ca862e0df6629  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_u16.c
! 385bd28e77cc4984a714fbad92be1cea  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_u32.c
! 94da7a104b7baa5b76b27af4a1141f28  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_u64.c
! f963bc553023d8c27bf7f6b7dde23876  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eor_u8.c
  2705f4086d564e76f96ecc65a5cf1695  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_s16.c
  2b302aa0960c7bc6ab9a154e2c3de3d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_s32.c
  a95f803d9cac145982fec91a2a3e69d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_s64.c
*************** b4f85e70a370313e5aae33f1315346e2  gcc/te
*** 55777,55785 ****
  bbb93a6e76402fb251f4b3348fe1f875  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_u32.c
  c5145fb1d050e3b88acc2561c0c07e8e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_u64.c
  3356e1b0c4954a589ea6dac77d069b09  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_u8.c
! af11cbe254f4c263e09e97bef6d93519  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/expa_f16.c
! da6aa1d724d9205090c4b2649f0dba4b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/expa_f32.c
! 4b677dd691e004d31275d42828f545a0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/expa_f64.c
  9ac6067d89089b88755b62035aa3d98d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_bf16.c
  98a4e1268bb46a683214146e003a6762  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_f16.c
  a455a2f732234c8adc7080a1ab7cc5a0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_f32.c
--- 60004,60012 ----
  bbb93a6e76402fb251f4b3348fe1f875  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_u32.c
  c5145fb1d050e3b88acc2561c0c07e8e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_u64.c
  3356e1b0c4954a589ea6dac77d069b09  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/eorv_u8.c
! 57a0d9d1f599a3958e4859923d61c33f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/expa_f16.c
! af3b00eb4bbcdab9fd6f195f386c4a5c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/expa_f32.c
! 55fe9b9ac22d20b96e0dbd84eb554f1f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/expa_f64.c
  9ac6067d89089b88755b62035aa3d98d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_bf16.c
  98a4e1268bb46a683214146e003a6762  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_f16.c
  a455a2f732234c8adc7080a1ab7cc5a0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ext_f32.c
*************** e6a33aa1869aa94f0f66c8a313228792  gcc/te
*** 55804,55809 ****
--- 60031,60037 ----
  596b7fc7525247bd827ca91f11b47db1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/exth_u64.c
  fbdbe0d606aba0a45610afd2ddbc9248  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/extw_s64.c
  58b56906d75b9df11498be0c6e0258b1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/extw_u64.c
+ 3412d2fbf9a723f7d97e0baa3242ee30  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_b.c
  95c7605ec52f7fef79c3c25be89c60d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_bf16.c
  beb0ce18ff1479eb130b6af96a9c459f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_f16.c
  b53a49fce5ecad0a97d1c3464a9e019a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get2_f32.c
*************** a309753dfb5742c7099664ef7eedbdff  gcc/te
*** 55840,55845 ****
--- 60068,60085 ----
  7c8a18e54a984c4ccf375b2ae463d0a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_u32.c
  288bbc5e97716a0cb288bd915abaf975  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_u64.c
  3afd4a9f8ac00c6e5517d4f33b9f4b47  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get4_u8.c
+ f31f6bd10d68b0150c9313ee8b9dfe10  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_bf16.c
+ 8f32204b156a3dfc825d3c0d3ffa38ff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_f16.c
+ 16fa92ca5983ba0fdb659672635da845  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_f32.c
+ 1584b1909ea0ac6f5fad88567c3b9cbc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_f64.c
+ a30cd0f882fa8132c2dd06f4c3aabc66  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_s16.c
+ 278237999c1a843b22d690d292ea2d43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_s32.c
+ b83a1c64293b6bcef12dc7074dd83bf4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_s64.c
+ f8beafba52a8da2c302e02ac5d745528  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_s8.c
+ e710a94a6ba39f8c3d6011168b40835f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_u16.c
+ b31dedcf780f6dc764715de216b29b3a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_u32.c
+ 2c0c4d879952d3dc76c756e102790852  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_u64.c
+ cf36673e01c55b69f6fff9be380fef32  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/get_neonq_u8.c
  2d7dfd3dbfa56b3731c8a620b216b2dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/index_s16.c
  d6d2a8d820651d1e5ca985f93f370acc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/index_s32.c
  2009976ec8d5bc89e259f8860ce85d06  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/index_s64.c
*************** b52d1ae2b2e31f4493dc3161dbe751c8  gcc/te
*** 55888,55899 ****
  ea2331685e4c2dedd59eaa91b0d021c0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_f16.c
  2e6341a1f6a8a2b027caaf56dd300d53  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_f32.c
  5a1a38b3c278f45638abef02e960fbf0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_f64.c
! 4d21d9bf01d1e92cf32471cdec43a6f7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_f32.c
! 23fc5c12fa2ccd07836b770317d1c670  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_f64.c
! 53ec8fb034619c19f4bf13b6b333dcc8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_s32.c
! af265415ec3caa9dcb774b62ee802dcb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_s64.c
! a724d26212cd8948ab520f424e38dfab  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_u32.c
! 8992f3902dcf4e716d179878e4eb1d92  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_u64.c
  1a8b45a2dd1233b376f297b70e1c285c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s16.c
  72c4d38fb9071a4553787ccbba3ce6fd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s32.c
  c68eb10e050731fdc36b3325293f0df9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s64.c
--- 60128,60139 ----
  ea2331685e4c2dedd59eaa91b0d021c0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_f16.c
  2e6341a1f6a8a2b027caaf56dd300d53  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_f32.c
  5a1a38b3c278f45638abef02e960fbf0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_f64.c
! 577176523b5f3128122458bad98e098a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_f32.c
! 2a77897832b78a377844ae06b36524f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_f64.c
! 3384ef06d9d226fb5b484c34421b837a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_s32.c
! 02af7b0a39ef3b4d782beeada9d6af1b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_s64.c
! 4bc07faf9c88db6a0ce0c46b5753d811  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_u32.c
! bd644290c330980cb24bc33f8757f758  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_gather_u64.c
  1a8b45a2dd1233b376f297b70e1c285c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s16.c
  72c4d38fb9071a4553787ccbba3ce6fd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s32.c
  c68eb10e050731fdc36b3325293f0df9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_s64.c
*************** fd6e63ab8a150c5fa0a62ee2faa04064  gcc/te
*** 55902,55919 ****
  217531d167ba3c22d81a33167cd0d8d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_u32.c
  8258fb8d09daa346e2d4db62ede73051  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_u64.c
  3a746f30c907a824eb73d2af782e0647  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_u8.c
! 8c536770cab280925851e36baa8883b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_bf16.c
! af927e22dd36b43da933d5c4d8eae48b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f16.c
! 4bcfd86e5188b3c2005b29d53b0c0cd5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f32.c
! a2dec10a099c1a8abc88a777efe399f1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f64.c
! 725abdd7e9f13e5608c2e297c14d4062  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s16.c
! a4e735e208ee0e94878e0b1154fbcd33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s32.c
! 7580b57498a0f9657fb29aef4415c729  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s64.c
! 7497f66d4b0ddd4edff345de52df8303  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s8.c
! cd07bbb2fee368687ecdc06dd4a261d8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_u16.c
! 2d8fca41df81d1c42dfa6aa69b06d400  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_u32.c
! 93ebfaef86c570f4a4f7cecfada29ff4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_u64.c
! 789006e56f20958fbdcdf5c355e90970  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_u8.c
  b72bbb05e99f63784b498874df5d65dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_bf16.c
  2eeea316381d7a4912cb97c839619690  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_f16.c
  6ce0f609e60e6ff14c7a81013688a800  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_f32.c
--- 60142,60159 ----
  217531d167ba3c22d81a33167cd0d8d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_u32.c
  8258fb8d09daa346e2d4db62ede73051  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_u64.c
  3a746f30c907a824eb73d2af782e0647  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1_u8.c
! 000175ae411d95a42132220db59261e5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_bf16.c
! 2de1d8e86f9139323c134d4efa48b3ca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f16.c
! 4951ea9353c66b617e08666fea99167a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f32.c
! 1e76702dc8b8b6506138a16657696aca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_f64.c
! f869160db708727328c1f7d11c3920c7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s16.c
! 37efbec9c27621d8d9814129c6342d32  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s32.c
! 3f78afbc1538bfe842256404bc9a6961  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s64.c
! 96291bed80ebc0f8b045bc774c826514  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_s8.c
! ed0e95151b6596326bfb072abb8b926b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_u16.c
! 00afee38a2b4b36f181543b4bae15e5b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_u32.c
! 6499bd6ad83ecccdfab191bc6fcfc48c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_u64.c
! a2f6f096f9663ee4a8cd76ef84c6bc6f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ro_u8.c
  b72bbb05e99f63784b498874df5d65dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_bf16.c
  2eeea316381d7a4912cb97c839619690  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_f16.c
  6ce0f609e60e6ff14c7a81013688a800  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_f32.c
*************** a9b2ea4359685f07672ca4c606e0d0bb  gcc/te
*** 55926,55973 ****
  652384b77b26ddee737ff583931e24d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_u32.c
  3a3b53bcc706091c4b60da8fffabfce7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_u64.c
  b421f75f9732bbb0bde36acabbf8c963  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_u8.c
! e23a3bf0e3fa37b1bf38be599856ef23  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s32.c
! aff4900e295a10e1fdad2ca5cf6d4a07  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s64.c
! e879cca3889d77353a3e3c64313a54ca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u32.c
! c12b25f8845d62cbe804333cc0e67993  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u64.c
  bff5572cfa0d524c84f4711919a25207  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_s16.c
  b5cc27a3ee0224994b4481c74b4bd7e3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_s32.c
  2dedb1916971fb48c2e201fdeeb72e7c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_s64.c
  a5cc2ad492ad4bfb918dc2b713b83918  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_u16.c
  3274cadb4791dcaf92e38842d6cf642e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_u32.c
  8142d7a2413bd36fa710d1f85580f35a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_u64.c
! d5ddc1c2e5e47a80ab74a9d52928848b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s32.c
! 759d3fd557fefad00b1c91dcfac54a1c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s64.c
! 480971a9a23b4f59a8c92689233c2b10  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u32.c
! 06386299f8e3657aad00904b8d63399c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u64.c
  f8cf75f4fb397aef001f64fc6cc227e2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_s32.c
  7a1ef923eb4fcdc18654e0708e71dbf4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_s64.c
  2e92a6b03acdbcb6fe22328e39cee20d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_u32.c
  6e6631addfb43b925c3be080ce9feaf5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_u64.c
! eb62923c3d626d50679e93238e9d8bdc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sw_gather_s64.c
! 0204ff5dc6fc343b7d5becd680d3ff67  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sw_gather_u64.c
  6f2cb979573837dfd9c5a34edc541f2a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sw_s64.c
  24d8d0723883bb41768513a05575500d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sw_u64.c
! 67b570664de57a55375687328260ec89  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s32.c
! fab0504f50b3a675cb5d44496e9fdaa5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s64.c
! 319dc577fa5b238da80fad61b242f81f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u32.c
! 2e1071b90b98957205b726f6e5cff81e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u64.c
  21435ca9ed66e1f9a81537c0a1f23ac5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_s16.c
  a138a160ccf1cb89533940cad5aea423  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_s32.c
  7cd6d11eb870dd15b5d8ee8c702e44dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_s64.c
  3586ebf58298e8bee9c9a423c3d87531  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_u16.c
  a6f236c2a2556dc0057a73c9f27d2258  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_u32.c
  ec77ce11b1c4dfb9f5f4a2fb6f043028  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_u64.c
! 19e3b12721b7f52cac8751d38b538791  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s32.c
! a7657c61b4a70568a40bef2d667eb4c2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s64.c
! ff5ef2e89093610c75735045b052c730  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u32.c
! 60a4d86ce2f53beb6a79a884637c6946  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u64.c
  4752218f6dc97f29d90e55e356e68669  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_s32.c
  c11d2e4612a07d9e345e275ebf8c3b82  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_s64.c
  342c7bbf25ec3e4a15e5c6700154f8e2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_u32.c
  74c7e44b9da8327b3ab189c37749e8f3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_u64.c
! 15b71061e92f817f3220b88fa2cfd449  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uw_gather_s64.c
! e1575b4282efeb0ca9becb56f824b399  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uw_gather_u64.c
  f03fd7687091e62ea174ea32e5f5eb92  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uw_s64.c
  6f0ed7f64040505845b170b919797c9a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uw_u64.c
  65954aa3ed80607a75b2ff5fe63e485f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_bf16.c
--- 60166,60213 ----
  652384b77b26ddee737ff583931e24d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_u32.c
  3a3b53bcc706091c4b60da8fffabfce7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_u64.c
  b421f75f9732bbb0bde36acabbf8c963  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1rq_u8.c
! d3a215470357b3709f4b6a276baf62e4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s32.c
! d91d31ce5c1935d0a3647f2ab4129608  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s64.c
! 8b5da653a668436032c4daff47f4c106  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u32.c
! e3ae83b0b529b2d8d2df4b48a16d09aa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u64.c
  bff5572cfa0d524c84f4711919a25207  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_s16.c
  b5cc27a3ee0224994b4481c74b4bd7e3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_s32.c
  2dedb1916971fb48c2e201fdeeb72e7c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_s64.c
  a5cc2ad492ad4bfb918dc2b713b83918  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_u16.c
  3274cadb4791dcaf92e38842d6cf642e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_u32.c
  8142d7a2413bd36fa710d1f85580f35a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sb_u64.c
! d1fb3d0d93619899a0f4c4abcbfc4bd6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s32.c
! df456e684f688057b0e0245b8a781cbe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s64.c
! 0b32897a501a99d48d6be35d91ca68d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u32.c
! 34309d28b020f96d6572607f8a09330f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u64.c
  f8cf75f4fb397aef001f64fc6cc227e2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_s32.c
  7a1ef923eb4fcdc18654e0708e71dbf4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_s64.c
  2e92a6b03acdbcb6fe22328e39cee20d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_u32.c
  6e6631addfb43b925c3be080ce9feaf5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sh_u64.c
! 75d7550cea2cc5a6732331bc20f6b378  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sw_gather_s64.c
! fc213903a5bd697a8d837632c4225a8a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sw_gather_u64.c
  6f2cb979573837dfd9c5a34edc541f2a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sw_s64.c
  24d8d0723883bb41768513a05575500d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1sw_u64.c
! a14d65d9133b7eec9400673614537d44  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s32.c
! 95c924e6be0cf8be402860476c3b2f37  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s64.c
! 7553f602cbf4be7d52b52a32591c0aeb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u32.c
! 2d20fcc0f2543a3e8f0778e30d93be48  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u64.c
  21435ca9ed66e1f9a81537c0a1f23ac5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_s16.c
  a138a160ccf1cb89533940cad5aea423  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_s32.c
  7cd6d11eb870dd15b5d8ee8c702e44dc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_s64.c
  3586ebf58298e8bee9c9a423c3d87531  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_u16.c
  a6f236c2a2556dc0057a73c9f27d2258  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_u32.c
  ec77ce11b1c4dfb9f5f4a2fb6f043028  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1ub_u64.c
! 29b843606f8f5069aa8c50e0d6bb0ec3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s32.c
! b90edd4b9850285c1c590d2eb42ed7aa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s64.c
! ff45c51344338601dfc43b41b30daaed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u32.c
! 5ef92cb74c751290fc5c831046a4b589  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u64.c
  4752218f6dc97f29d90e55e356e68669  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_s32.c
  c11d2e4612a07d9e345e275ebf8c3b82  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_s64.c
  342c7bbf25ec3e4a15e5c6700154f8e2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_u32.c
  74c7e44b9da8327b3ab189c37749e8f3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uh_u64.c
! fb2dbf3b97973d2700dcd5356ef547ce  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uw_gather_s64.c
! eefcd4cfb2562c6a1847c2a1581e9505  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uw_gather_u64.c
  f03fd7687091e62ea174ea32e5f5eb92  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uw_s64.c
  6f0ed7f64040505845b170b919797c9a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld1uw_u64.c
  65954aa3ed80607a75b2ff5fe63e485f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld2_bf16.c
*************** a9d7c4ed665999292cb06ea41ce7760c  gcc/te
*** 56006,56109 ****
  e3d631b30ec8eccce2fa6e1a7212bb9e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_u32.c
  b8c896abaa9adb22f54b7f791432b596  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_u64.c
  46d9178c86e0d8e1ae1ceda27e728442  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_u8.c
! 7fbe741f91144b6175c64ee3e31d799a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_bf16.c
! ad2727c80cc46c2f44b381c7feead20c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_f16.c
! 9848bf31b33280299f3a02d479fbe846  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_f32.c
! 390ab3ca74381f1dba4ee155d1800d9f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_f64.c
! c33f9539542580e0c55f091eb5c8ca1c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_f32.c
! 96e4cec03feb6920453479261394d662  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_f64.c
! 2cc6c3e3950ee9524d85489c46764f37  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_s32.c
! bf0e000d8dcbd8796262748710818dd4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_s64.c
! 99a18e8d4c62aae426bfcd4cf864a8f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_u32.c
! afca7f339623d23b0f2b76b061c36d78  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_u64.c
! 360d7a5b9a18510e2ddff26bf13af4e1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s16.c
! c87b1f420dd4671a228d424bd68bc755  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s32.c
! 8a63c5f15b54441b85444ee87fa93a49  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s64.c
! 0eee2a8d6ad147c1ea919d040898634e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s8.c
! 1b23657f6b43e0abb642bc0e89a07c78  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_u16.c
! 9bca8ac19384c3e7ec8053ced2d14ed3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_u32.c
! 28c713f3fba32e32ce74b16e54d5821d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_u64.c
! 13bee8d198d303e88ae07124abae14bc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_u8.c
! 197d66f615bfbaf35a91b6d9befb8c20  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s32.c
! e09a6e8d6ac956869fe9a9dd1f168030  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s64.c
! 7c3c7dca41f27b6b1d35a74de9193a10  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u32.c
! 896a03fd79eace493b9978bfee8ab51f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u64.c
! 37208f8168e9067f539c368ff233b263  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_s16.c
! 796b95adfce96b8c891d0fa0ee80ff61  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_s32.c
! 5c7df2cee30bc6bea4e043e82348585b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_s64.c
! 5672b569f3d495dae765640034c7fe07  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_u16.c
! 645b403857820b347e51fa06f7727dfa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_u32.c
! 37f6b53469a9e9e543e55fcf41a93cbe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_u64.c
! b5e192777adedb147c147a7e22b38598  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s32.c
! 9f286cd3f241aacaaa8179d51f2dd34b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s64.c
! 3b63c7683ef6ad7eb9b7852ecb10bb82  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u32.c
! 4b4ccbd0a1d37fd9016c2619ca34ad0e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u64.c
! 111d40b8289f01f5e83dd08d268f32da  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_s32.c
! f747614fe4f7934d60579393d9bf1435  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_s64.c
! 22ae1439db78502fd210894a6ab6bec2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_u32.c
! 6740c60ba26b054cb93387394dd2e5bd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_u64.c
! 63b69acb1b10181bebb17e5538c0b801  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_s64.c
! c159e7cf14f5be901fc31fb649189961  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_u64.c
! 5ac9f35913354bd5250f43abf05b8039  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sw_s64.c
! 2c5c4acc36362a12af09c4df9f7486aa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sw_u64.c
! 012034e2e92931cd5c20a9536f66907d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s32.c
! 74d96a02066b35e6166333dd482f4629  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s64.c
! 066b2936e021049552267ed26da5023b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u32.c
! 00fcd74d7c72bf2c54a1a2db0a0990c2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u64.c
! b88958caec09ca33e5285909936bcca8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_s16.c
! a970f4c98d619eceb481cf844d728341  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_s32.c
! 83a453a2d52fde8b4154284d49b91519  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_s64.c
! 3840fa7c6d94ad458fe4eb021e6c1fc2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_u16.c
! d6236ef0fbc64fc138f7c28aa8423bca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_u32.c
! 194880ccc0f9157e6837af58dbb37bab  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_u64.c
! 9bb652e27104a60018e94d52d5e9a504  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s32.c
! 442d43f027c48595efb0d778c120a601  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s64.c
! 1fe366020be4ea6223701827ebd6045d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u32.c
! 241bb0319b4f952b092ad1056dcd8f44  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u64.c
! 27254daeb0375aeabcf3e4883b005dd2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_s32.c
! 85fe9d80d6e930019fb6f36fcb777aef  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_s64.c
! 2c4ac68da5d4a553c9e48b2e9c60d2c2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_u32.c
! 7af0e260dfc7f75e9b620029d4f131bd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_u64.c
! 9f5d93eca7863826108b969774a6dc12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_s64.c
! 07c93bd5d4048248dc5263e74ed04ffa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_u64.c
! 62e1071589ab6221a21b97ef0a5cad7c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uw_s64.c
! 7d04575d747a2f15a8890f127ea6f8c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uw_u64.c
! 1fb94af89c7f4216c207dbe361c2ae35  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_bf16.c
! affcb154434ec7c0885f6f227809efd9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f16.c
! 245aa7f9667fe577b9d057ce193405b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f32.c
! 96f253ac0cf99175466bc4affd6be59c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f64.c
! 78c60ccfe3d2450601dbbb503436e4c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s16.c
! 4cddf0119c6557355509ff6285352180  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s32.c
! b6cd0c64e9fbd04785924767df35d81c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s64.c
! 47f7e8d3f7ce36511c9724612a717ec8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s8.c
! 22516cb8d93694b451f84f55412cffc2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_u16.c
! ca7b9343c201c674cf71c6c4e525468e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_u32.c
! e56e2b3a90e3e3a4842a48a1f43beb52  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_u64.c
! 30dbcc472b08d9530dbb64f00edb73e5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_u8.c
! 2f97ebcef68a735fbe32382a19d7804c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_s16.c
! 7c933a666878cab73fd63a49d0525691  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_s32.c
! d611a8d80b1697fcdbb378519c0ec3fa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_s64.c
! 218d99d12ca85dd3853c23745690e71e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_u16.c
! e9509354ffa6bdc40829db698e4c1ac0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_u32.c
! 643ad11de388dd8cc6361666ec4a9c92  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_u64.c
! fe5b541f10128c04d606695a575faccd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sh_s32.c
! 063d352f04fdab8457157fa2b581794e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sh_s64.c
! 9fa4de467ae8d3a88722bb8a0236fb99  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sh_u32.c
! ca5036157b56e4e8ba53410a80a5b23e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sh_u64.c
! 6fed8a22b3034595bd22e227b3252143  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sw_s64.c
! 5e1ed59865fad4f36ae784f3337bdb8e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sw_u64.c
! 35fe9755851482332c8c177aa8d2a4d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_s16.c
! 38a7667bacdfa1592471ab749cb018a1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_s32.c
! 8a19e334b7ef6901bb637e6ad2a2b17f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_s64.c
! 5319c3c1dfc8ace8d351b469a9b99ce9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_u16.c
! b31c676ca0d9c3517e61f0545a867b6c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_u32.c
! 13e054276f35e04db31f8c1eca568fa1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_u64.c
! ce732cff6b8a9297a3464bfefa8b0266  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uh_s32.c
! 300a788dca269f64e7a5de892bd86d99  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uh_s64.c
! 374dc57d3d1b2145022f0760e62375fb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uh_u32.c
! 6289416ed6c3ef1ce49f6ceb787de1d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uh_u64.c
! f1476eb674e212380200d6da56620dd3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uw_s64.c
! a6b894959fad6cff1fedf12108e34873  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uw_u64.c
  9f30dd1ae1b36a2a237718b4798dab57  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_bf16.c
  e95fb85db19e9d6f13194df66de7eb94  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_f16.c
  83e10e60c01150d87eec2f82c7b79136  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_f32.c
--- 60246,60349 ----
  e3d631b30ec8eccce2fa6e1a7212bb9e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_u32.c
  b8c896abaa9adb22f54b7f791432b596  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_u64.c
  46d9178c86e0d8e1ae1ceda27e728442  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ld4_u8.c
! d31b3ffc906cf6810b360869459069e6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_bf16.c
! 30b46aabd07192731f3adb8f83dd1212  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_f16.c
! 8335996fe1444bcbe6c74dc961a10231  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_f32.c
! bba1d1b31275bd7756c4297671325104  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_f64.c
! 7e0d98fec79bbf1961aca3d5e35139bb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_f32.c
! c89ca6f96aac30ad6759323af0004456  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_f64.c
! 0c8d09c6bb254034de3ea96bae6358b7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_s32.c
! d1dba4144a654f78d973e20a1668c882  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_s64.c
! dde3af6835ea596605602320f1167625  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_u32.c
! 934a59b1fa9add9e68fcf5896df69461  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_gather_u64.c
! 0421684cf52a2d54d9c546a159cca0cc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s16.c
! 8ab75c8db54027530b6dd216031e0a01  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s32.c
! 67fe3345b336c6eb6c28fb16ceafae26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s64.c
! b080a692b98f873a1ef67c5c71b58e0e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_s8.c
! 052b48e1469e4036c0361519fddbfe71  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_u16.c
! 7ac8b73cd4a2c58fac534c2a296d0b3e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_u32.c
! aeee3412b3f839515759d994ac318b97  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_u64.c
! 75af2edc079e382603bada4e2691b581  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1_u8.c
! 163ecab4bc28e604534521ccd63b7176  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s32.c
! 2ef714f6a533dae0c879a5b57debfea0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s64.c
! 147f9a31e5659e504d36884c07a51792  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u32.c
! eb3dad7f102565b8fa6f6482d48b2e2c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u64.c
! a2b683e88d141874eaa005cebb456543  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_s16.c
! ee2818e05adb636623476116a3d0a397  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_s32.c
! 59f5909c1f1722f96a69d0d286a0596f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_s64.c
! 873d294e8b4bc712b6f95de535e2bd85  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_u16.c
! 995259ed9ccaf29c70874162995c32d7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_u32.c
! c48a736b01825582981b2869940d5f76  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sb_u64.c
! 56564b0762c56b5d44df1fc350dc7ef5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s32.c
! 96a8d5680a4b16b13d6bfe26bad9cc88  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s64.c
! 5ea23136d7b5e624a2c1c86ad254bd56  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u32.c
! bfb9f8ecdefc084f0f6375e38d0bdb15  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u64.c
! ec5b3e8deecb2030816f4771f7b61571  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_s32.c
! 4aec86089a481871b31a690f420a9d62  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_s64.c
! 1845be498ae6efe5c724a95c720c0ba6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_u32.c
! 8030dfe7708340a4a966b63973c5f919  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sh_u64.c
! d4e16cca825a006702d825cd586d4b84  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_s64.c
! 518e03a291dc83635637cef11499044a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_u64.c
! 276cea894a74474c675ac66b46390308  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sw_s64.c
! 700b3fec0561b232cb2efe3269a65aaf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1sw_u64.c
! 680528ac5f5e44d3ce4f53ba35f2380d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s32.c
! e809a8f48fd4b7fcc5fb088eb4db36f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s64.c
! 38595f6f8d4aba47456affabf3c185db  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u32.c
! 2f94432920d108dc5dde97ad7d3cdc59  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u64.c
! d63c506fd5be4b0cb9da8521d5b29804  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_s16.c
! dcd09d562b47b664a7f8e76d31d8249b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_s32.c
! 24ad7b327f1f3ec840c90291f4e5f2ef  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_s64.c
! e51be79a0d06a3f09e562e9b819d80d4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_u16.c
! 7ad1fa01618cebae76605d7bacc0a8a5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_u32.c
! 4e764d231047c4f82b206e0219ff4110  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1ub_u64.c
! 3f0c464fc2a7699613a2338d98b68f3e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s32.c
! bc6a31d935e896939ed8abf55f385971  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s64.c
! 4e192b273aef88ca5729e69cb9f8879b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u32.c
! ee232e933025c6c0eb2cd0b221284a52  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u64.c
! b4f95dff3feacf4f99d2ef5098cd0b2f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_s32.c
! c43ee22f1df9ddce21408ebbe6068752  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_s64.c
! 3165be280429f37fff88176ecf4fe8a0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_u32.c
! 7f91a1270511f872c276fa611782065d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uh_u64.c
! 606030bb2e0d7238fc90c34c995f7e8b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_s64.c
! 98c852b3a89e470fa1a4af03980be9ce  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_u64.c
! d218de56c80e66d43dfb8916d07dc602  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uw_s64.c
! 8bf03f5bb37dba5764669e60b9df0e6b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldff1uw_u64.c
! dc6e962ac84ecdf0894efab67faaea06  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_bf16.c
! 2f9d0f78ce1a35021ef833469eba700d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f16.c
! a83c6e05e110cd8c937bcca7fb6a8776  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f32.c
! 629b3c581fd7ffafc1071fe837037c4b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_f64.c
! 827829583a4dd16db46cfe66d8ebb059  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s16.c
! 3f4b8b52d4c7a697224217d8c65820b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s32.c
! 6a36cd1ccb0720c05348d713578f2267  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s64.c
! 98e37c18329c33be642f6ab091b99702  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_s8.c
! 4f2d03f3a4a727622ff3523e638a627b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_u16.c
! 3f09a5af374c06b80997cb0a8ed27f62  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_u32.c
! 341353124f9210b0490c6181f502ad58  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_u64.c
! e28a5e6fed7451b5c601f0dd5098592d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1_u8.c
! 7b5c25149e3b0f3ddad84d7060079434  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_s16.c
! 444796d1f677c8e1eb13c6230c732a6a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_s32.c
! 56257fdd9a81296cf7e7a62a190c9b9e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_s64.c
! c2a8fe0efdad41a73b0ed088bf6deab2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_u16.c
! 5a45115ce10214e5c4fce69532180e71  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_u32.c
! 2b0e8d862546437117cb25e39bb2079a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sb_u64.c
! 15eca5b9de4fa9c9d13d9b43a88470e7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sh_s32.c
! 1644264f8e06e4bedaa0467b5083a9a9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sh_s64.c
! e14df5d16e06309de1b7eb4cc291003f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sh_u32.c
! 15b728d4f94e5f9c9cf8108c2fdfdf94  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sh_u64.c
! 8aa70a3fe20a3692df11f7a9d62a2bd6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sw_s64.c
! f81f52881a4012755459ee81975b0ea2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1sw_u64.c
! 753598aad443c3e88a56a138c3f468bf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_s16.c
! bc9f5ef7def64654e8b986fa72faaec1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_s32.c
! ae975431f64ad807fb3d9e8951e3bfaa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_s64.c
! efa49175604a196fd259846379f56192  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_u16.c
! b90aedcc5a34ffb08bb33c8a50cd3d67  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_u32.c
! 856a76944709064bf6b82284b528be77  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1ub_u64.c
! b6df022062bb4705c34c44a786bc4097  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uh_s32.c
! 3087be8cc5426c2a08ed488e26ce2258  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uh_s64.c
! 591a0b71a965a4ada1f8250f39f6593d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uh_u32.c
! 63475a3e5ec5d39e3f1f165d2a37618e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uh_u64.c
! 5ac1bc66db8d8a710de733a051ed7565  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uw_s64.c
! eca3b8e907eda0aced6ca5acca631db8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnf1uw_u64.c
  9f30dd1ae1b36a2a237718b4798dab57  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_bf16.c
  e95fb85db19e9d6f13194df66de7eb94  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_f16.c
  83e10e60c01150d87eec2f82c7b79136  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ldnt1_f32.c
*************** e346dc9da51a0cd38f56451ba2ec9a1e  gcc/te
*** 56128,56176 ****
  35c1c0e4ce0ec993da6e5b1ef02e1b12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u32.c
  393db7d8485ad37fba3972e507acd3b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u64.c
  3c4680103157a3af2c34e1fd7b3c1e22  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u8.c
! 9b3619829f8c6df29a99ad130716fabc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s16.c
! aea5808733febb0c6d8919a4643b8fbc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s32.c
! f48c455ea46cfd0ba9ddc8fe5df5a325  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s64.c
! fa4fa129bf0d9578f95af44700336db5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s8.c
! 9d079ea45c198c36e8c5fd9d8fd6e2af  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u16.c
! 799dfeb336675e2be2f05df83342a323  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u32.c
! c81d16ac3889171ce8b0adc3cc39f17e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u64.c
! 43cd1eff7bf90fdd063ba2b99df56c71  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u8.c
! a5f2a6d39e0ca732258e7989844c016b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s16.c
! bf76bd270579e26457f73ea02b53fb4d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s32.c
! 914aad96652392a4bb1bc8f482cd9b4d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s8.c
! 0e1fc1c8a6df8a24a22226ddb57e85f4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u16.c
! ff03f3e8b3bb395ebebf7447860d88c5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u32.c
! 144180934b1dfa0ac82948aa23d12283  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u8.c
! 2c0d6325fb42c296978d4c77d86c71de  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u16.c
  241b2c4f201481f69fae73f93446a59b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u32.c
  7f574d6478f32135a5f54487db0496e1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u64.c
! e3f441de4ec2d48e012201d2d06efcff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u8.c
! b00d7b39c0af931306befa4b3ccf12a2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_wide_u16.c
! a6fbd35390a3afe991472dbe5aa6ed31  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_wide_u32.c
! cbe3782b28c5adb5d83b8568a0c0ee26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_wide_u8.c
! 73383d372490bf18a5e6696202a7ad73  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_f16.c
! ed9a7db3d9fe7765e7378d9cac5faaaa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_f32.c
! f96e0c8b43a7eee6a0ed968b11ac99e5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_f64.c
! c6aca09c003f225a026e216015810e55  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_s16.c
! 06e2deda969896b5199d2c6fccb1de97  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_s32.c
! 1892d7ec5432f33a43cf555ee517b4d6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_s64.c
! c42d679ec32d738129402fe96302db5f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_s8.c
! 5809bb6fca7794d83d9c4829d76cd5c4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_u16.c
! 6228a8af23bbea837f31b4f933b8ce8e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_u32.c
! 726152db6b006fe1f582edd6cbdac56e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_u64.c
! 047c8fc91e21e18726c625f8bcbbcba5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_u8.c
  d73512bc9cca2c95b3a03bbd65707cdd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_f16.c
  d4ab3f8f35f6c56d37aa2ad6bbcecb56  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_f32.c
  bbf74a288ccf1451d3d1e65a5357a3e8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_f64.c
! 8025f8d6767f31a53a9f7ced2e932c8f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_s16.c
! 6ea5002d76a4b791c238a0ffbb12a9a6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_s32.c
! 7772c84a5ca56274d6c321afe70ccfa3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_s64.c
! 9bd1a3c92136983e9dcfa96fa617da96  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_s8.c
! df753e76806065c95e5a916eb9beeb26  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_u16.c
! 752f67f4a50b203d98a2b29f35331d2c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_u32.c
! 7105424fd602fb87197ffb62ece3413c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_u64.c
! c6e60dc827196d9967c464f406c27a14  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_u8.c
  926b323b6c88b35605e747018e5cc17c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/maxnm_f16.c
  ca8c46d792e86c53ecfe617971a490a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/maxnm_f32.c
  5332e9dde0facde354d0a5c99267443e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/maxnm_f64.c
--- 60368,60416 ----
  35c1c0e4ce0ec993da6e5b1ef02e1b12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u32.c
  393db7d8485ad37fba3972e507acd3b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u64.c
  3c4680103157a3af2c34e1fd7b3c1e22  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/len_u8.c
! eb316075f8add76d42e1dad661bc445e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s16.c
! 4a95e6621bba6d056401caab6155bf20  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s32.c
! ece2d79e9f7ad3b5dabb1d3bec336a6f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s64.c
! 5a129261561b5ccc1a0cf348cd310f3f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_s8.c
! a09fa3117ed8a24351197fd7e917d215  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u16.c
! 0a9d2c64b0cf04521668a3eb444b3107  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u32.c
! c816e5820ae4fed0e7ac104c65a7dc18  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u64.c
! df30623263348d0444fa8ce4564e3100  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_u8.c
! 70d6c4cc51e1ad57064a6a17ae5754b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s16.c
! 63d7b7e6dca9cb085443e9ab928b20b6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s32.c
! bfe7190d5860bb66c36b243132514c6a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_s8.c
! 8e5ddcc7120d56a3cd73e3fade23e7b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u16.c
! 712b9680ec176a9019065c811c22acc0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u32.c
! ea9ae40d13929eda7e682200b07e8570  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsl_wide_u8.c
! 389413808664c5f3066a8e0c1bdac9d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u16.c
  241b2c4f201481f69fae73f93446a59b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u32.c
  7f574d6478f32135a5f54487db0496e1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u64.c
! 26e6fab630fa3861bd93f98e690160a7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_u8.c
! 9f4f8f8336248c3716a15857c42e364c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_wide_u16.c
! 639071fb6b03ec905fafa849312ff25b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_wide_u32.c
! beb9c04c95f2426057d55a98e879a297  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/lsr_wide_u8.c
! 696f52ce282ba1a7558d97f8b41d332d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_f16.c
! 59e93dd91576adaffd2dde350495494f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_f32.c
! ca9ef1461e9104639cb66a7f81a76263  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_f64.c
! a8be99e541c4b6b3a5250ce58088e1a6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_s16.c
! 22e1d36c9e125df5a904e8617fb331af  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_s32.c
! 8ac78916a25cc4a1c0e090508184c38d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_s64.c
! b6f9a9834829d075a1fd58d4b7dc7ffc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_s8.c
! 94912adff8448a0f34dbe9ebf90db83d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_u16.c
! c89d40c51b7f71e84beabdf414b097fa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_u32.c
! 1a0f93e2a0c15813382392865cd2c1cd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_u64.c
! df0381b5be45c7d81e314e3467a4c335  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mad_u8.c
  d73512bc9cca2c95b3a03bbd65707cdd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_f16.c
  d4ab3f8f35f6c56d37aa2ad6bbcecb56  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_f32.c
  bbf74a288ccf1451d3d1e65a5357a3e8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_f64.c
! e5d625a0dbaa5ef8b3dee8867f1ef615  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_s16.c
! 088a242ee2cca3454a919be78d0600a2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_s32.c
! 04cc27e66adb4c651c63705077467192  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_s64.c
! c4c253350096ce8b322f14f2f0500fad  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_s8.c
! a28c59ee07ffb05723c824ff8290b063  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_u16.c
! 8940f2e01789a51b8bef5c3d00accb5c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_u32.c
! b5feed7a244d929b6f4abcffe0c39f2d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_u64.c
! 4f97d2da0954f04dea6dd80a69824722  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/max_u8.c
  926b323b6c88b35605e747018e5cc17c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/maxnm_f16.c
  ca8c46d792e86c53ecfe617971a490a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/maxnm_f32.c
  5332e9dde0facde354d0a5c99267443e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/maxnm_f64.c
*************** d66075ce58a580713f810577cf4d46b2  gcc/te
*** 56191,56204 ****
  1db7960845d3a333ab9f79be2246713a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_f16.c
  6215d30f6c892799613a315621d1448a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_f32.c
  cce9ac93704f646bf35741fbbb2dc1e2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_f64.c
! ef1048c0457b5a77675b59b78b2bff02  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_s16.c
! a39b810d7b5411005619cbd40d605c40  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_s32.c
! f7941351199ce1b7eda618aeadfdb114  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_s64.c
! 22c3f2e2b523bbf351a3cd2c11273fc5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_s8.c
! 2d31723d3f101d9d7ba1acc82ff2a227  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_u16.c
! 2c67b4e74118a091f156c6c98cf9a5ff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_u32.c
! a68daca4784017a2522665ad83b8e635  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_u64.c
! 727830af8c34685a97bfe644be4c106b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_u8.c
  944da398b93b94b5654e11a118921025  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minnm_f16.c
  adde27c51365d561a5158ec5add9e979  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minnm_f32.c
  f260da84bc5e3fced3331b97b2a6d020  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minnm_f64.c
--- 60431,60444 ----
  1db7960845d3a333ab9f79be2246713a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_f16.c
  6215d30f6c892799613a315621d1448a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_f32.c
  cce9ac93704f646bf35741fbbb2dc1e2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_f64.c
! 343d3a47ba7ea908984e6d41f8e9cc90  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_s16.c
! 43d17559e57b77d04f66c0c738a3538c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_s32.c
! 6f02c2f107c86581e8916c603278a320  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_s64.c
! 9b59884fe236c9e5284a402c03bb5c4b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_s8.c
! be4fd43f7f4728557488ccf71b834e2f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_u16.c
! 1822eece43d330cb628ef06e693d7aee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_u32.c
! 78a8120f2fca474b89edadb652e00166  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_u64.c
! e68f57870eb6367b334f2e013f645c23  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/min_u8.c
  944da398b93b94b5654e11a118921025  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minnm_f16.c
  adde27c51365d561a5158ec5add9e979  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minnm_f32.c
  f260da84bc5e3fced3331b97b2a6d020  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minnm_f64.c
*************** c285efd84d31c41164f13f193da9270b  gcc/te
*** 56216,56293 ****
  6d836695ff8994e4d12eee1a29866c5c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minv_u32.c
  80c7726cc8db2036bfe24de5c7bdf114  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minv_u64.c
  b4ace8e1ff7beb4f0d8907f942824439  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minv_u8.c
! 354b54a2bb09441060b95a0ea89bde7a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_f16.c
! ffeb6686ee2feaa79fd30e7c41073106  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_f32.c
! 1928598ad6f7bb20e8082d92dcd49bf7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_f64.c
  f77bbab52c1b600fedbeaa69bc6aae51  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_lane_f16.c
  33c98200887f8f0b272a65811c7a54fa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_lane_f32.c
  5d013d1e2ba65615b4eae7148d7c305e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_lane_f64.c
! c871ab5793e96e74fda29374d7a60a9b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_s16.c
! 3c3614c74df401d1c3db206e79b0895e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_s32.c
! 5de4c2097f6a3c0187c22667e73b262f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_s64.c
! fb927dd962060c7cc10455902c4bac73  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_s8.c
! 1ab9a8622bd4567160ea6e9c80b48175  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_u16.c
! 527cfabe088859fd652bd921940e0014  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_u32.c
! 02224b6f8b3ab26d74df7a1f1d1a2239  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_u64.c
! 5ab1aef8f820a17c06ea02c25f379802  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_u8.c
! 5e9257a122d5f845e2a8bf6ce1a44d67  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_f16.c
! 3826bee10d85b2895d967832b191a77b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_f32.c
! 5f97fd7ff834d1d30b7b8189b6a6fc9b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_f64.c
  fe9f55318014b4bff7dcd8dc8fca2710  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_lane_f16.c
  11da6d78ca409183c955ed21d237115f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_lane_f32.c
  4c78e9c3171e9c6f490145ad107e72b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_lane_f64.c
! ed134c35ae1e60d44deca46fd9b80b54  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_s16.c
! 03e4a2c056ebc7ba7db214d6d2236d29  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_s32.c
! d8a99f020333bcca10ec13c1303876db  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_s64.c
! 3c7ec605972bd0325f270e4f915b8e0b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_s8.c
! b7a1aa847f348c43d413afd6259d3d07  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_u16.c
! 699ad07119018ef62ded5f65e3298e1a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_u32.c
! 6610e02f5b4bf5f08a2c9bf9c3fe7b1f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_u64.c
! ebe6060371c3a47d9e7edc74f8921c96  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_u8.c
! 261b2b3cde292309294537f826ef8389  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mmla_f32.c
! 269681aa9436babd637fed8608d134d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mmla_f64.c
! 3cbc99d5972c93be1a8e3684ecec100b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mmla_s32.c
! de7722b2ecd1f01d5ed9eed0077102c7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mmla_u32.c
  bcdf69edb914fda42b80c7047b998fc2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mov_b.c
! bfc7d2fdc0d4e7a7da3c4883e2572499  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_f16.c
! 86b09545c3f39c95502ec160ad13ef91  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_f32.c
! 06d119a7f2c57f6187563d1090a4e3d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_f64.c
! ea63b7586fb06a24855c2ac2c905de89  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_s16.c
! 06230290846298a8dd8563eae3724dc6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_s32.c
! 0543f481778992cdf907dfda1f1f6301  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_s64.c
! d1bad78ba982af7303cb46a6b8a1eedd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_s8.c
! aaa67e301b3c3e8049200c09c2c5d897  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_u16.c
! bbab955287efa4cdcddb4282851d5841  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_u32.c
! 61a0ecc911106ff11ad8c0a6876a0f77  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_u64.c
! f4d6aec84badfabfdcdc22d585cce087  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_u8.c
! d53c5115774738d8e00e92ef8448346b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f16.c
! f1d078615a4e93633496ca60992ae4de  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f16_notrap.c
! 4f2bed93172dde7c5a51caa7a6a64b04  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f32.c
! 98ea44186a33e6f9b92682e6801189c9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f32_notrap.c
! f87913ff7df4dcb4aefeedfe0aff9e55  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f64.c
! adc72519a35f38b4795f7185468d7346  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f64_notrap.c
  a7a4c48a2a400e927d1783f11ff5ae2f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f16.c
  1c2f087197693ac0f8341bb2de2f9903  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f32.c
  9bf80dcb14d6ec0ad3830bc283fafefa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f64.c
! 0f128e09a1878a6f238148bd85aa302e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
! 96ee2497d870f6141a7393ac167f89ee  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
! 1ed9e4745de6d81f2dae71474c745c29  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
! 155918ffdd17c59821576727b8749baf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
! 6f34735160bc7f11fa9f7fa88c4a6183  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
! 7d6ffbcc9bc3438e81d2c8f83cd1fb16  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
! 01c66983c6cffd7217bacf607ff5f96e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
! c4bb392b2803b74894917ff39c313a5b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u8.c
! 6795ff125fae4da8345b04c511ca6e4a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s16.c
! 7f04bebaf8b83eb71ed75cdaa5887b40  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s32.c
! af366357627bf3bdf78342f11aa85703  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s64.c
! a3a41ed373d0aed4cdeac8473c7cd085  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s8.c
! ed603dc9ecf9a8e67ab6d0d27662363b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_u16.c
! a2a2de738de5496dc39523187bfe5382  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_u32.c
! cd9937bee46add0ef650a283e9de73d1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_u64.c
! 3400dfc26e339d42761c8f63e1ff2ef2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_u8.c
! cfbd40f52b0f4c12570bc1b0abe3d27f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulx_f16.c
! 378c91f6bade3eb1db0374be0a20e6e9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulx_f32.c
! 74732775ef6717aa93bbcdfb643c2f8a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulx_f64.c
  9aa31bccf29d77ee8fdad995cff34a24  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nand_b.c
  955b9777cd7b1aea9a20345abdb93c2c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_f16.c
  443b93c2ed216da3115b74d2dbe8c0f7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_f32.c
--- 60456,60533 ----
  6d836695ff8994e4d12eee1a29866c5c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minv_u32.c
  80c7726cc8db2036bfe24de5c7bdf114  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minv_u64.c
  b4ace8e1ff7beb4f0d8907f942824439  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/minv_u8.c
! 0f23211671780fff6ed0307667d0df39  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_f16.c
! 25a963117020f7cce79e434f790de343  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_f32.c
! d66c3dacfc46eb8c56a7dcade99a4b21  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_f64.c
  f77bbab52c1b600fedbeaa69bc6aae51  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_lane_f16.c
  33c98200887f8f0b272a65811c7a54fa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_lane_f32.c
  5d013d1e2ba65615b4eae7148d7c305e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_lane_f64.c
! dda095815cd1752fb730c153bff4a7cf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_s16.c
! ce3cf9b8925c91039c3bddfde9be9039  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_s32.c
! 41b2c7c171e19a515b6e166d5d4db876  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_s64.c
! 4dd8ae66dd9ccab938d8e4ec540b1c50  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_s8.c
! 048c74e7006f7d6cba0aaceaa2e49e5f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_u16.c
! 8056e6b21a1c3726afdd3f3e2a080fcc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_u32.c
! 052736828e323f796c5ffada6e0d4f99  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_u64.c
! dc42a34acd1ed719e9613982c308a4c5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mla_u8.c
! 3885ce506984e901b831a02761cdc26e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_f16.c
! af6353e21106016496765d88bb972718  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_f32.c
! f83786a7950a6745eef346482745df37  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_f64.c
  fe9f55318014b4bff7dcd8dc8fca2710  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_lane_f16.c
  11da6d78ca409183c955ed21d237115f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_lane_f32.c
  4c78e9c3171e9c6f490145ad107e72b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_lane_f64.c
! 42f925ea77dbb4e87ad494a3e6d9c671  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_s16.c
! 5d28feda35771d1dbcfac2f4fbb210dd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_s32.c
! 7685600e87b4c177d830472365e1ecf2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_s64.c
! 677815d676cb2c27760a87af70ea3ac1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_s8.c
! 7163f1f7eadf831ae8bd7668186b0da1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_u16.c
! 9bf6789930ea24732051265c9d6d8cfe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_u32.c
! 6204bc6c2f327e4b962aac55726db41e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_u64.c
! 51a2c4fa5ae9d9a2a652c595b5b52000  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mls_u8.c
! 7b82c30a11571d1b43e25182c78a1065  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mmla_f32.c
! eb5b63b75d510e09f372110f7e668657  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mmla_f64.c
! 77aa2c7d90d3c01bd71d958f2d5dcd1f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mmla_s32.c
! 0be5ae13e9f5600a008ede9cd4f08a7b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mmla_u32.c
  bcdf69edb914fda42b80c7047b998fc2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mov_b.c
! a504d58ed375670500269cdde467ebae  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_f16.c
! 6d43a7b534dadcb3111959f1718f8bed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_f32.c
! 23b501022ed081d8dd3b16aba2e1cd72  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_f64.c
! 9a52ef84d3842920c7efb8e3d67f9d5c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_s16.c
! a7aca8415c9203e8be779c15325589e4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_s32.c
! f0dfc5ac4f61eeb7993239e886a9a65b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_s64.c
! 935ce3a419d3893a1a64871ca95b1482  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_s8.c
! 413124b9dacab649042b3adfd48722a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_u16.c
! f82d02e47505c8ebeb34e50c0642b0db  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_u32.c
! 982b508c2b893968095abb3dfd04ea43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_u64.c
! 1888b17c327bebd12e47014b6db226d8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/msb_u8.c
! 58eba18cf14783e1ffd805900132c8d0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f16.c
! 6bff492c7857a9e060ca05e8e1044302  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f16_notrap.c
! 3e4e37c1f7182367503c3bea366b580a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f32.c
! a73b936dea19469fd6c7f1199c952b73  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f32_notrap.c
! 363dd815108e7e68aeba256f63d2852c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f64.c
! e716ac2dd0b6a489e0a066923531fe33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_f64_notrap.c
  a7a4c48a2a400e927d1783f11ff5ae2f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f16.c
  1c2f087197693ac0f8341bb2de2f9903  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f32.c
  9bf80dcb14d6ec0ad3830bc283fafefa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_lane_f64.c
! 48d7a5d440e1e69c3813f0edf697d6f8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
! 8549c51a868528aca988f22c5dcac5b5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
! 584c4bf704ab9ae1146f3dd1f083d1a2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
! c1fb30b9b04262caf61f11c8f866da51  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
! 9bdd0c3dab377a0b7ed07deb44f655c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
! 0d5f2522b16fdae22413a8612fa256e9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
! bc7c87af98f9d8c59a6e9bb1239c0bd7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
! e35492b0b10bbbf7a0d7c2040e0aa34b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u8.c
! 13e5426577da8e8350426b98cdde0d0f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s16.c
! 887cde542b27dadbbd6e7abe7696d2cd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s32.c
! 78776c6e140b51a29713f2889bc58bca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s64.c
! 5421b17ee6771a0ea73c24b85912891b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_s8.c
! 793896d45824d862f614f7492de581e4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_u16.c
! c53cd4e2ce658310f2b8917daf7128d0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_u32.c
! d50664e49a51dca41c92925261d92679  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_u64.c
! 53cc6801fb3d5dbe31feefb2438bba33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulh_u8.c
! 829a3d0f2690afee6374f54a26433405  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulx_f16.c
! 724d90f835dbc7aaebadd8a28e53617d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulx_f32.c
! 921c5ac1cfbc38cfef0a5bc239545710  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mulx_f64.c
  9aa31bccf29d77ee8fdad995cff34a24  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nand_b.c
  955b9777cd7b1aea9a20345abdb93c2c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_f16.c
  443b93c2ed216da3115b74d2dbe8c0f7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_f32.c
*************** f236a628a9028679460cc26eed56bf5e  gcc/te
*** 56296,56313 ****
  0a251dc7b7eaa05b173be1b6c6b48439  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s32.c
  e0d1fad60c82a86d9ac93bf1996a5588  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s64.c
  23141a1608a2ec93f136eada057d8c95  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s8.c
! 438a0475273e12dc778c3838d82db8a8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmad_f16.c
! a4a06f5ea6b0b35d93bd2dae8a400598  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmad_f32.c
! 3c2395569e7628a3f33f03da99e2f8be  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmad_f64.c
! bc7c1d56491f056533596459c423aa7e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmla_f16.c
! 8950ffe394801cb2154f1bb64a112606  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmla_f32.c
! f38be3fbe2583110ae1c19a648986478  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmla_f64.c
! 86de91ad86338183e5d763c6b7f73541  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmls_f16.c
! bbcdf6a50cca08e95a02c4d01a295fad  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmls_f32.c
! 49f4f289a488266c88b722e3c3cb2998  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmls_f64.c
! 215a7cd8ab1a9508124eba90d700666f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmsb_f16.c
! a0b77e66f7297e8cf14ebd57b396f7b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmsb_f32.c
! f14adee759694c0c07baa55a96a078db  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmsb_f64.c
  cdeb942bc0a4b348ba435fcf8ef6c93f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nor_b.c
  069d904486bbd21b78f1f2b264dceb87  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_b.c
  13b460adf9c9f49abbc7cd6b7507d5ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_s16.c
--- 60536,60553 ----
  0a251dc7b7eaa05b173be1b6c6b48439  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s32.c
  e0d1fad60c82a86d9ac93bf1996a5588  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s64.c
  23141a1608a2ec93f136eada057d8c95  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/neg_s8.c
! 2b9a2e00a9316142a7ff167f66b0995d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmad_f16.c
! ea2abc3ad00fa1cf5cb049d1a0e070ed  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmad_f32.c
! c18cc8424df5f321bdc6307d91f69644  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmad_f64.c
! 9a22b548f0e74d32ab6a9acfee6588d8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmla_f16.c
! 1daea64437f6132e1ab88b0eade82833  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmla_f32.c
! bf917f0c54550cd8f5d924d788a7afd7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmla_f64.c
! 77e03c90da0ad8a26039f79f04060cea  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmls_f16.c
! 36387f85a3f9118731de546f67336e0a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmls_f32.c
! 6eea928bff80d95c3bab55db7d092005  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmls_f64.c
! 1eb9e0f6e5cafffe5603a38617c2325b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmsb_f16.c
! 6f7ed3c0de903d329c8286aa61e18156  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmsb_f32.c
! 90fbe70b49abb2bb5ab7437739d4c2e4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nmsb_f64.c
  cdeb942bc0a4b348ba435fcf8ef6c93f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/nor_b.c
  069d904486bbd21b78f1f2b264dceb87  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_b.c
  13b460adf9c9f49abbc7cd6b7507d5ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_s16.c
*************** f7126e762385f99d87fc16d410a26996  gcc/te
*** 56320,56333 ****
  08f2a9179db2bce41d628cb85506dc28  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_u8.c
  dd733c3cead1ee0c477f46e11f7fdcca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orn_b.c
  168cbe2f3902a006c6408855e8bab715  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_b.c
! 6fc8eba01bae32f01dcd41d3d9b4b9b9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_s16.c
! 1c1acab74d22f02462bca2b0e0698d6b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_s32.c
! affaae011e27a46622ad8326e1c49796  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_s64.c
! 4bbd5d2e5228051fc03004d6dbbafcc1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_s8.c
! 44d8ba94abe919740e80c880e40e7a54  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_u16.c
! 693ec767fcb4fb4d890d595883767401  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_u32.c
! b8a908c3e547229a93930b3702839bd4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_u64.c
! b2426f4e854e3c1f6cbd7f31b5a69ae1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_u8.c
  08a5c7774288d310450d534c503216a3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_s16.c
  48346e20bbfdcdc319b66b46279c2cca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_s32.c
  44dc11a44ecc8521fe58a3cd072afc6e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_s64.c
--- 60560,60573 ----
  08f2a9179db2bce41d628cb85506dc28  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/not_u8.c
  dd733c3cead1ee0c477f46e11f7fdcca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orn_b.c
  168cbe2f3902a006c6408855e8bab715  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_b.c
! e66085a78beca52e2866e8a4cbfeb265  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_s16.c
! c7080725b52cedce03355a2ae7d6447a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_s32.c
! cf83d0e2fff59704101d39567f61a880  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_s64.c
! 3e43bb8db2b8b5e8ebd655dbdf263026  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_s8.c
! 7f5860bb2a27d3e645a0d5d408e5f042  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_u16.c
! 00c7288f34d11679a2d3062de1f48688  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_u32.c
! 0d41d091fdb9da39e887b49701ef0357  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_u64.c
! dc0fd9251e10ccc9b4b92072ba9b9576  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orr_u8.c
  08a5c7774288d310450d534c503216a3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_s16.c
  48346e20bbfdcdc319b66b46279c2cca  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_s32.c
  44dc11a44ecc8521fe58a3cd072afc6e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_s64.c
*************** fd1e095e880760e23df3596a0bf1f69d  gcc/te
*** 56337,56355 ****
  99ab96828c5b408323be1cecaaef485a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_u64.c
  d8c618d45262ad65ee3a787196bf0a6d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_u8.c
  92e2345601523a20457d43448343f0b7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pfalse.c
! ae0176129a5913f76a91077988e45221  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pfirst_b.c
! 1b61e4a9c859c5799e8bc2121b04e9c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pnext_b16.c
! 867e3aae5132aa767098ab0265b45c16  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pnext_b32.c
! 1cfc1ba54c883f2d6bdeae0738656ea9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pnext_b64.c
! a2d899895a42b3de04cebd930dee7d0f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pnext_b8.c
! 931eaeee330faa4ec3e32bcbc91c16bb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfb.c
! fead0ab03b9454a660c6c085b26085e9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfb_gather.c
! 600e946cb269155fb497d8aebe2466a3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfd.c
! 3d9b39a6545da45d04b6314acc6054df  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfd_gather.c
! 5f1c0e0eadc4935d7c44b1f68efa1b89  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfh.c
! 20a25e0c8308556ffb60522519087b0c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfh_gather.c
! f72481ba1755a7934b8fb51f6290a014  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfw.c
! 75c4726a8e23f81991bd9f536cf6ef7f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfw_gather.c
  e39dfcc81aee1e3dc7f7e3714bd7fd33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ptest_any.c
  0acf46d836c699d5621e8f96a73d2141  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ptest_first.c
  286d0147b6b0f9122f4a7202023fbc53  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ptest_last.c
--- 60577,60595 ----
  99ab96828c5b408323be1cecaaef485a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_u64.c
  d8c618d45262ad65ee3a787196bf0a6d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/orv_u8.c
  92e2345601523a20457d43448343f0b7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pfalse.c
! 42711375dc5d8b82102ee1ab891962bb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pfirst_b.c
! b7cc4463af24bb1921c063f838fa417a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pnext_b16.c
! 591cd7d28c8fc5995da96949cbb51638  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pnext_b32.c
! 73c7ee9306ac7dcb32cf1e8e49198c29  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pnext_b64.c
! 297d0e2f8ba3ca3c4bcc0b35d5ad1e84  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/pnext_b8.c
! f553a000f0d242ee83eed2e71e19e97c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfb.c
! bcd3be7b70530e9d6438f64ec4f45457  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfb_gather.c
! 3992c83f32ee97dd6b007a67ed2a43ab  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfd.c
! 5ff23ab0a1b1b1feb85ed3d017762856  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfd_gather.c
! 46b4eef32aec3332c1d539468f97e383  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfh.c
! 2550bd34a1ac685389c7bddbb6c3acd4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfh_gather.c
! 683521c94ab79cca7b242e3004c6de68  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfw.c
! 1c8fb1198210b8e4a1f409325a5ee11d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/prfw_gather.c
  e39dfcc81aee1e3dc7f7e3714bd7fd33  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ptest_any.c
  0acf46d836c699d5621e8f96a73d2141  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ptest_first.c
  286d0147b6b0f9122f4a7202023fbc53  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/ptest_last.c
*************** e3aca0675774bbac4b36c5a3d99db86c  gcc/te
*** 56466,56472 ****
  53c8a639a6d01b36b8f1accacae9fed4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u32.c
  92f7dde81a1011335ff3031fb7f27f9b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u64.c
  cfce607bcc4f3d0b29c017e5eb3731f0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u8.c
! b25eddc2b11b9c6326d2ba6bbb3fede0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rdffr_1.c
  a3a5b13c45ad9c23f8a5db48417d9da0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpe_f16.c
  d8236daf448db20c1afcc630d87bdd4e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpe_f32.c
  541f198e19023ef6d9dd195bc724ef65  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpe_f64.c
--- 60706,60712 ----
  53c8a639a6d01b36b8f1accacae9fed4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u32.c
  92f7dde81a1011335ff3031fb7f27f9b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u64.c
  cfce607bcc4f3d0b29c017e5eb3731f0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rbit_u8.c
! 4b21c0274330afe4ecf524cb312833c6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rdffr_1.c
  a3a5b13c45ad9c23f8a5db48417d9da0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpe_f16.c
  d8236daf448db20c1afcc630d87bdd4e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpe_f32.c
  541f198e19023ef6d9dd195bc724ef65  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpe_f64.c
*************** da78bb596f3f65c86ae9beb142c749f4  gcc/te
*** 56476,56493 ****
  eb556d67c4e33e3eb511598a745cc1f8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f16.c
  0a11752baf2527724205cd1fb2ae0c67  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f32.c
  3f2ca5492bae639fe3bbf90fc228d4ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f64.c
! c97e172cd9f4cc86889b5fa62ef23fc3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_bf16.c
! c070c382e3c8ca51a578de4966266a89  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f16.c
! 2ab4c78e20fb5151ba69a84a1ff47ec0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f32.c
! b74161b1f071cadad75bcb42be219053  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f64.c
! 9b9e81030e6a215e939e4a61a0d67ffe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s16.c
! 8e45f578c7af3557b1eab4365c33bbff  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s32.c
! bf29228d7ce9d3ee807c316d61db273a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s64.c
! 07fd56f809bed42835eb77d30abd5231  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s8.c
! ac442b87ce4181fd8f29890c8a081eb6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u16.c
! 75f2d2af89e16cd83eaf969aacd4515e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u32.c
! 6d13b47e605fd77a3365bb07b31f8461  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u64.c
! 145c6f5011b55e4e7316fadfb7376a31  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u8.c
  919127ad80560a5b03e284b0d7377e74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b16.c
  482d07285ef3533e27547dc500a01998  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b32.c
  8c7432ce81cc282b1e71c62037d0eb86  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b64.c
--- 60716,60734 ----
  eb556d67c4e33e3eb511598a745cc1f8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f16.c
  0a11752baf2527724205cd1fb2ae0c67  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f32.c
  3f2ca5492bae639fe3bbf90fc228d4ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/recpx_f64.c
! ab26dbf9d404f567dfaaafd8bc5e1698  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_b.c
! 7e2208e74b6d602813c74776d6fde646  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_bf16.c
! 7aa98a980ad11ab4f199c97bd84bcee2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f16.c
! f5047bc7ed8f9f7c4c65e939215912fd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f32.c
! 01d15b16838d398f8c2f983f972cd7a4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_f64.c
! 5d04bbb4436b2195f054b4265189cffa  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s16.c
! 8e1565c4423e407b51497213c09d8918  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s32.c
! c36faed06c1e2914d6d67af26164eb74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s64.c
! 445cdccbda7257299d1985353e0abee7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_s8.c
! 6dce6ad619dbc9a5f4e96c6ea4a1c660  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u16.c
! b0d87aca95ae2246ae76b7841152926d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u32.c
! a6850012db327279fb94c5bcfe321578  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u64.c
! 984693ba3d3a7182a990aaa558227381  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/reinterpret_u8.c
  919127ad80560a5b03e284b0d7377e74  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b16.c
  482d07285ef3533e27547dc500a01998  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b32.c
  8c7432ce81cc282b1e71c62037d0eb86  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rev_b64.c
*************** fcaf02aa6e3f5dd268b404a8bca92a89  gcc/te
*** 56543,56551 ****
  70ed6caad6bebfbd14964ddc6501850d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f16.c
  f59ab9c85fd6537f7058c727584ef917  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f32.c
  1149f1a40c9e53498525ec14c42c596b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f64.c
! 674e6a4cbaa48914e4e1af5c2c7b5d9d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f16.c
! ed51090e1bcd412d3fd5a1ac7dba5346  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f32.c
! 275b074e1e9694e81140f89697bdb5c1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f64.c
  a969e3cecc8c8db27a4c426036cce0bc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_b.c
  9161839e083df82a98eb71499592b867  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_bf16.c
  ff59715022cfac520674930fbb2d168a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_f16.c
--- 60784,60792 ----
  70ed6caad6bebfbd14964ddc6501850d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f16.c
  f59ab9c85fd6537f7058c727584ef917  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f32.c
  1149f1a40c9e53498525ec14c42c596b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f64.c
! d0c344e021b53ed378987fc003c6ebe3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f16.c
! 15480ccc211ec663b27b52c1242a64d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f32.c
! 8a83c9b2bbf3519308df61aaa9649795  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f64.c
  a969e3cecc8c8db27a4c426036cce0bc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_b.c
  9161839e083df82a98eb71499592b867  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_bf16.c
  ff59715022cfac520674930fbb2d168a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_f16.c
*************** e5953ce87a2e45d2373b48d9c3ec6957  gcc/te
*** 56559,56564 ****
--- 60800,60806 ----
  3377fbf929aa1639f983e68a87917d9c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_u32.c
  ed59d52997a81aac2456a98e5c4a67b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_u64.c
  b58ce6d942b28dafd34b41db57702a78  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sel_u8.c
+ 5eb2696cc5306b678716778a8ff3dde2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_b.c
  ceb6457a5f6f6a359f8a873303c8c0fe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_bf16.c
  66313052b5ca481ae0b59b945cf90223  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_f16.c
  437d1b3fbd294c42b4641bf6d57b1c07  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set2_f32.c
*************** eefeede14bb8aec6723ba2b58f965652  gcc/te
*** 56595,56600 ****
--- 60837,60854 ----
  55eb00f536931c63a2993a30ed2e674a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_u32.c
  bbe7f63b2ba52436b306b0459b2ca2a5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_u64.c
  55b3e0576b8bdf0c209f91250db3ad58  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set4_u8.c
+ 03e983864c9651cd7aaf9d28db224215  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_bf16.c
+ ce46783ba6d9562a04d9d12a65326d2e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_f16.c
+ 6dede7fa2353e91a4eef89124add139e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_f32.c
+ c1edef8d36fe89fa0933b048123ab1fd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_f64.c
+ cf07700fcb2088960f82c34579a5647c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_s16.c
+ 3b13e7d9fd82485f32b4d3aa7c872242  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_s32.c
+ b1f7f23d8f091a3653573d71cabf2f5c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_s64.c
+ 4543f0c996db78d497917be7bb89b16c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_s8.c
+ 9b6b5b72230bc6f1fdcd0086f0861897  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_u16.c
+ d31e3feacbb9d5ab93b6d09bcc7a0464  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_u32.c
+ f3720d3ed4c67935d5757addd950fb44  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_u64.c
+ 9678ea47a173e525bbac600f30453a4e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/set_neonq_u8.c
  f72006130e698d567ad2e35a6410c2d5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_bf16.c
  5b4486c1be01db3a88890d5bb076aede  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_f16.c
  10a224d32b4804d622e9cf7286ce4a52  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/splice_f32.c
*************** a261810d80432e53bc4c2370a713ef62  gcc/te
*** 56618,56629 ****
  c179b42173edfee79ce25062392064ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s32.c
  da04e20b57b022218ed025e38b7f118e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s64.c
  ae27b2136e698d70a6ef463854dbfd49  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s8.c
! 40d8120dfa91d29faa22daf59b4ed493  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_f32.c
! 867bb8c975241ddd4227bd12620ada69  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_f64.c
! fb3586d4f2c8d695c8d008b1a66bbdd7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_s32.c
! 1cfee2dc64b81690ba57c9a4638bfd77  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_s64.c
! 3e9dcf8e8b1f10605b9c3e01ad26b134  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_u32.c
! 78d786aaa3f4da3d1efe17d8f86386f0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_u64.c
  f6942da9d71094f35902cc1a14cfe03d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_u16.c
  526bfc06f534c12c8ecdc45fa8d7aa36  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_u32.c
  e8d3e3b478fc9b269bf6b987184960e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_u64.c
--- 60872,60883 ----
  c179b42173edfee79ce25062392064ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s32.c
  da04e20b57b022218ed025e38b7f118e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s64.c
  ae27b2136e698d70a6ef463854dbfd49  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_s8.c
! 6c7e67f40d9b0c192cc784088857271a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_f32.c
! a2a62d2635e9302e11af19077b8eb798  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_f64.c
! 66886442bfa62f5a29095b21908863f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_s32.c
! 2c741cb88b7352972b30980d7413dc7e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_s64.c
! 2ea401b67d1986d6e3ad52ad3a9a2d84  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_u32.c
! b066c63189097791f0c3b03da4f6edbd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_scatter_u64.c
  f6942da9d71094f35902cc1a14cfe03d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_u16.c
  526bfc06f534c12c8ecdc45fa8d7aa36  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_u32.c
  e8d3e3b478fc9b269bf6b987184960e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1_u64.c
*************** e8d3e3b478fc9b269bf6b987184960e0  gcc/te
*** 56631,56654 ****
  3612373cafcfd660fc900731020b10b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_s16.c
  060f7d5e0fe25a9dd4dfd4354e7a85d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_s32.c
  ea966453ffdcd38c27bd58630b7b1608  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_s64.c
! 36c7070a076ed8dddcc881d7f36e533c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_scatter_s32.c
! 881cd36fc08ada5b6e4fbd23bd847cea  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_scatter_s64.c
! 5447afe19aad2681ff7800300a6f4263  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_scatter_u32.c
! c80ad6b6d31a08eddbe04f838808d77d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_scatter_u64.c
  2742d375fda131bbd1b2faa39042b907  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_u16.c
  90537f3ac23cebc3ec5c77b3252d8cc5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_u32.c
  a3169a5777f3404e4736acb10ff72edd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_u64.c
  1a017ac3a378ff8c9746e6a78ac9a492  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_s32.c
  8637813c5062cbef7ed95f5c465a3ace  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_s64.c
! 2eea70867d13e5e74b4ae5d5569380ac  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_scatter_s32.c
! 194bfb840a51106518873fc151bdead8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_scatter_s64.c
! 27723287566deb786a7df4dc6a006141  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_scatter_u32.c
! f7afa0c1a95466a928f187d981aaf16f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_scatter_u64.c
  cef09c955878f5789e8ae3c836548ac3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_u32.c
  af157fd449f44595e08085c693ebd1df  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_u64.c
  567a372880991112e96624ce96ea0f7a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1w_s64.c
! 2b1999a31929c3f514172cda707d156c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1w_scatter_s64.c
! 70dba7f3e806dc2dc6159cd7c01a8199  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1w_scatter_u64.c
  71349887404d0d817edb48b646d3d599  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1w_u64.c
  985417b60ae9e966c50cf8d24d92cbe4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_bf16.c
  3973173efe68872351a0bda773c11c11  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_f16.c
--- 60885,60908 ----
  3612373cafcfd660fc900731020b10b3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_s16.c
  060f7d5e0fe25a9dd4dfd4354e7a85d3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_s32.c
  ea966453ffdcd38c27bd58630b7b1608  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_s64.c
! 88daf60f2b58cfdc42158cecaddfbdb9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_scatter_s32.c
! 1eda45c8b264b42dbcb1e7723280cf61  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_scatter_s64.c
! 9c35be890ac55d57f9d8529945111a91  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_scatter_u32.c
! cd8f29bfa39e1a683181d9b31048750b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_scatter_u64.c
  2742d375fda131bbd1b2faa39042b907  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_u16.c
  90537f3ac23cebc3ec5c77b3252d8cc5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_u32.c
  a3169a5777f3404e4736acb10ff72edd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1b_u64.c
  1a017ac3a378ff8c9746e6a78ac9a492  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_s32.c
  8637813c5062cbef7ed95f5c465a3ace  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_s64.c
! cfa2e478e7723458183c64f4de196186  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_scatter_s32.c
! 8c355dabac2fcb6214c7039b677d3bd9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_scatter_s64.c
! b72bb653fc8f12683dac5ca7c88d14e0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_scatter_u32.c
! b844dbbce4d9273188572c3e14b59257  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_scatter_u64.c
  cef09c955878f5789e8ae3c836548ac3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_u32.c
  af157fd449f44595e08085c693ebd1df  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1h_u64.c
  567a372880991112e96624ce96ea0f7a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1w_s64.c
! 278fb8b2fe76573b2df5f0b6d6ef0b6b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1w_scatter_s64.c
! cf917eca5be3f513c8bb1f33960c94b7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1w_scatter_u64.c
  71349887404d0d817edb48b646d3d599  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st1w_u64.c
  985417b60ae9e966c50cf8d24d92cbe4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_bf16.c
  3973173efe68872351a0bda773c11c11  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/st2_f16.c
*************** a474c01426e646f86a5f5c0427b0cea2  gcc/te
*** 56704,56733 ****
  69da11cd2a75771e5eff8b7b507ec556  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_f32_notrap.c
  90c74d2eecd649f61bed8f49078ceffb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_f64.c
  964891a99d0e6e252c95a3c0b6910b5f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_f64_notrap.c
! e0189f46ff6c918782c09c3106821849  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_s16.c
! d94e975feec0108a94a08bc1731ea448  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_s32.c
! cf82caf47bbf3736d89654aba973272c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_s64.c
! 293281bdf04d47e66e264a352eff73f6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_s8.c
! ba2bc44e599d90742d9a486148eb173a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_u16.c
! 365ee5f7f86575eeb6e8f02dbffbe14b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_u32.c
! b2f934656dbad5b08cef2d2bfbf3cb34  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_u64.c
! 14e8c636012cbc2ee0e827b03e744010  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_u8.c
! be3c9994d75d246d40ded9ec50e11ab1  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f16.c
! 7a301a1a8bc311c5becdf5abde4f9267  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f16_notrap.c
! 1471b9a453cb5986e84dfe75b37b083a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f32.c
! f70b01578ea99ddfc22ef58b5a471fbc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f32_notrap.c
! 36397c2fa1970b6dd85638a71b389745  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f64.c
! e3b6992b60724be69b16032b425a5672  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f64_notrap.c
! 25a762a76fe521ee8a704513a4ecc9e3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s16.c
! a64e138e8875c920e4d1039ba33014eb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s32.c
! 7ff488b83caf8e4072e5ad20d0b497c0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s64.c
! cf2feda607251322b5205da4036fd1c4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c
! 608e89b4a94f85547a063d124dcf1c46  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u16.c
! 40980c22e623232bd92bcf60c4339f8e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u32.c
! 6d8bd2efb554f6d091fb8e33d61282ce  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u64.c
! c87493cb5df94025db4b916e3c76dbce  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c
  d62014d4165619be9e66bb5968586984  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sudot_lane_s32.c
! abc1a5ce46a7ea8e1fbdd4a38900647c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sudot_s32.c
  4aba6ed207e5eaeee50dd28f9ea0e6c8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_bf16.c
  d716b98f28d9b983243b29c17423c344  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f16.c
  0fbc73f88771b326dd4bb35363badfcd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f32.c
--- 60958,60987 ----
  69da11cd2a75771e5eff8b7b507ec556  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_f32_notrap.c
  90c74d2eecd649f61bed8f49078ceffb  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_f64.c
  964891a99d0e6e252c95a3c0b6910b5f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_f64_notrap.c
! 4e79cb7a9d5eca70ff8a509369084972  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_s16.c
! 79521415a05c0ee47deef7875a4eeb87  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_s32.c
! 6a6ddf0ca8687c37e4c6dc02b869e7da  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_s64.c
! 723db2e2eb73175c619fb9d90c32743f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_s8.c
! a723099befee6541ab128d780ae7a87d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_u16.c
! bfaac94f826e43a9e33abce2e4419404  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_u32.c
! 4308b1c8148653627509512007c87fd7  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_u64.c
! c207cd38ab3859fa4c29680a3447971a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sub_u8.c
! 15817e4c8c30c12c7e5f8fadf628ff4d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f16.c
! 1ac6f1a9dfbe28ba1dbc36aa7c44a981  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f16_notrap.c
! f93b9ae3c145b239b2ea7c6a2a0c485a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f32.c
! 337c689a9d03f46e7ab66f6c8203cc43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f32_notrap.c
! 2f54d585a48110fc41b2e4538b3a728d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f64.c
! a2027a044bca558ecdf3750c65d78b8b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_f64_notrap.c
! a645cce98ce333384e8a1d548ef6dbba  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s16.c
! fd8947584434bf1c88c1e4b0d7dfe9ea  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s32.c
! dce7688d5f2f3f88b317d7e943872ab3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s64.c
! ed7ba550f0332c46ba6960d559120686  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c
! 2c49f1f124ff0f44a9055ffff45423c4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u16.c
! b3546cef8af2f346158cdfbb6170e486  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u32.c
! 1dfaad238b852e7581237f53afcaf19b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u64.c
! 5eb751b740a71c8f9732b591cb649df9  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c
  d62014d4165619be9e66bb5968586984  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sudot_lane_s32.c
! f313037b074c947edcfe07f61f5fbbc5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/sudot_s32.c
  4aba6ed207e5eaeee50dd28f9ea0e6c8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_bf16.c
  d716b98f28d9b983243b29c17423c344  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f16.c
  0fbc73f88771b326dd4bb35363badfcd  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_f32.c
*************** eef92b1a3b7d04739d340ad7e46b4813  gcc/te
*** 56740,56749 ****
  f23324538784f8a52ed2ed5ab33d8c43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u32.c
  eea9161427365db4de3e4f905a3f991c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u64.c
  08144823246b826845caab05f37fdcc4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u8.c
! f1462a6663516594f3342829e333bf1a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h
! dd63ba98beff2db924a2728c6a3de37c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f16.c
! 9788311c30a733cb275fa17e8644cd34  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f32.c
! 42756ed873215cd24f6a3227cc3b6d8c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f64.c
  ba8809f3762f25947351a0629370db56  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_b16.c
  7baf7ff2c0a939353b6895ab8115d8bf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_b32.c
  073facd962488b508482da585db61633  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_b64.c
--- 60994,61003 ----
  f23324538784f8a52ed2ed5ab33d8c43  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u32.c
  eea9161427365db4de3e4f905a3f991c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u64.c
  08144823246b826845caab05f37fdcc4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tbl_u8.c
! 67a09437bdb8b7ba35d0c082aa81def3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h
! e1d55b697dd3f26b83e09349fa9bd50a  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f16.c
! 023102988d91e8649e76b3f619a0fe14  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f32.c
! 42edd7f70c6dd83aed2e1e8f2822d1b0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tmad_f64.c
  ba8809f3762f25947351a0629370db56  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_b16.c
  7baf7ff2c0a939353b6895ab8115d8bf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_b32.c
  073facd962488b508482da585db61633  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1_b64.c
*************** f9ef4d916b87a89ff56aedac6f5f7c45  gcc/te
*** 56800,56811 ****
  66a3a21d1f620279732307e8d9848eb3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u32.c
  8565958462d52454e766ea6fba3d8993  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u64.c
  e1789ecbd0b626478e428097c3a0bc62  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u8.c
! cd6353378da9197cc67eebafa401308c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f16.c
! 5ecf36b86abdda04a40afdc7c8691a46  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f32.c
! 785c34bb875f1a24082e37ea1b8ee13b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f64.c
! 68910d007db18a5a945c0792595fc676  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f16.c
! 8de98a0d5476623c6e4279bf00abb125  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f32.c
! 8241ce10a152d8f6b5393e3cd3a03fbe  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f64.c
  59d7735138daf2d48905f8ce341292c8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef2_1.c
  6f782d36509a005c7090095df3b5010c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef3_1.c
  54a71b0eab72ee63d8c55a77f732fcfc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef4_1.c
--- 61054,61065 ----
  66a3a21d1f620279732307e8d9848eb3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u32.c
  8565958462d52454e766ea6fba3d8993  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u64.c
  e1789ecbd0b626478e428097c3a0bc62  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u8.c
! 283d7b44a6a5b712e807a497ce6bf750  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f16.c
! 039fbb0516265c5c316522edf1118e2c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f32.c
! 08f340249660e277c5f0a9fe996b2ded  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tsmul_f64.c
! 5371e1c98b5384d1fc9d29a1c9528a12  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f16.c
! a0b3076fcde6f4a14e72cdf805c5d09b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f32.c
! 02b22ce06609ed45fd8299c4de360130  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/tssel_f64.c
  59d7735138daf2d48905f8ce341292c8  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef2_1.c
  6f782d36509a005c7090095df3b5010c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef3_1.c
  54a71b0eab72ee63d8c55a77f732fcfc  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/undef4_1.c
*************** ebd33fac9eb0f7adaa41974584da443b  gcc/te
*** 56826,56832 ****
  e0fef2d50781e5c8b20f89d246febcd6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/unpklo_u64.c
  50be76514744f4f929c13fcbea1119d0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/usdot_lane_s32.c
  625f74b36897f796c740bda42c4e2e13  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/usdot_s32.c
! 5a70ce2423ebff80872043ef384caed4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/usmmla_s32.c
  4c2486c63853440c7abb10a4f13dba9e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_b16.c
  58437699387f7207e10d21f746a16c11  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_b32.c
  0048c8c4bfd6b33599321676f2ac5c07  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_b64.c
--- 61080,61086 ----
  e0fef2d50781e5c8b20f89d246febcd6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/unpklo_u64.c
  50be76514744f4f929c13fcbea1119d0  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/usdot_lane_s32.c
  625f74b36897f796c740bda42c4e2e13  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/usdot_s32.c
! 219558adc9b99c058d3e90cc8646adb5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/usmmla_s32.c
  4c2486c63853440c7abb10a4f13dba9e  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_b16.c
  58437699387f7207e10d21f746a16c11  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_b32.c
  0048c8c4bfd6b33599321676f2ac5c07  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1_b64.c
*************** ac95af410a833fd739bdcdff89ecd166  gcc/te
*** 56947,56996 ****
  4ddb52fcf6808a7635f9679f90f24088  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u32.c
  4b43fa14d56ed0d48911b9690ce5d75b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u64.c
  e68175c46da8df4f6c744465c32a30b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u8.c
! b28cc239e2388f460b7e9eae4bf1f85e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/adr_index_1.c
! dcb4f1f32e409d54abd73a67924d8f46  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/adr_offset_1.c
! 7676cabc381463e577b0bb518d14046e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_1.c
! 20ea403c6d929265ddd9a0bbc0a480fd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_n.c
! d4c8f68bd71536e2b5679b39e4398aa9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_lane_1.c
! 40ed5508496dcc2fd762dab9a96ad638  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_long_lane_1.c
! 047f4eaf84cde085fdef971430bc523a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_long_opt_n_1.c
! 58b5da0ef21e26babdb8ab92e4e18482  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_n_1.c
! 3e5bf284ea5dc0a4b834551dcee59798  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_narrowb_opt_n_1.c
! d178848642c9d9da8f2497500dfdc413  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_narrowt_opt_n_1.c
  af6d17482a59d82ecf6030c429377322  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_1.c
! 065fc300925b044e4d59bfb108746174  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_2.c
! e746ec3d7ee235317beb8ca36bcfab2d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_3.c
! 1973a62408a238d3e33bbefa86b2772b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_rotate_1.c
! 4efdcd5af96cb22b5f98a7a3b72ed812  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_to_uint_1.c
! 8b52f5b945bd6eadd72182d60ea3e070  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_n_1.c
  a71eac74a7c0cb9e452b4f181ca2f1e0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_opt_n_1.c
! 52f6a186744bcf8f6aaf103dd7c08f16  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_opt_n_2.c
! 7523e0af0f9e237f90bb182739b0fe3f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint_1.c
! 88844fa77155b2368125d14e4ea0b512  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint_n_1.c
! 8386dbb3dd77284dd9e5c4b8c90b6320  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint_opt_n_1.c
! e5c9769714dba4dd5f39fac5406959ff  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_wide_1.c
! 3bc272810b1345b84412a04a9cc1a988  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_wide_opt_n_1.c
! c18f9863cb52e2031cbf16dda6291577  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/clast_1.c
! a311cfd516b0afe4e9921512bbee38c5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_1.c
! 3e2e06db146f3ae1e1e0c30bcfecb770  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_opt_n_1.c
  e71b116d6eb7de546591d4b41632a115  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_ptr_1.c
  4dd6c509245443ca131c4f60f54dbfdf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_scalar_1.c
! ce13aceea21301e1994ca73cfe205ec4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_wide_opt_n_1.c
  5561acaaee271b850f1d738828033770  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/count_pat_1.c
! 1891d81632ec51d8b99faa774aa52d85  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/count_vector_1.c
! 4f9206aee21ec9477f5e319307294b71  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_1.c
  4c2776a6bdf6cd2dcd6d347390ff0dcb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_2.c
! 54d95d42877177e5d3c6c8a8b7bd5c9d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_3.c
  8634c9ab763ed1f0527cf45a472103ff  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_4.c
! d5fcee13cd2358e769f93bfbe4b5256c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_5.c
  eb453b437e35070d74c76756ef730f41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_6.c
  249e8a678420c92db86a63096adaa40c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ext_1.c
! e9c110fd430f139755b8ad5496e3227c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/fold_left_1.c
  a225ae423f67b692af207a8a83138a66  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_1.c
  799639f0fb6c82853d5a4f033f154e54  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_2.c
  853ceb5b5ba271b7edad614861749830  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_3.c
! a8f787fd1ec7ddbbee8caef7bc2191cc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_4.c
! a9dc745493fb77434b1319040dae5a31  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_5.c
  9ae1b05dc8d8f928c81d748a26f2e8f2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_6.c
  969ade7f25e3c9e771be9b1cdd12588a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_1.c
  058af2267f666bcfc7762c1914bdb9b0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_2.c
--- 61201,61277 ----
  4ddb52fcf6808a7635f9679f90f24088  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u32.c
  4b43fa14d56ed0d48911b9690ce5d75b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u64.c
  e68175c46da8df4f6c744465c32a30b4  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u8.c
! b261313e5da1689d5eac7d27948a935b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/adr_index_1.c
! f439e0960e8177b476453cb45e7ab2cc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/adr_offset_1.c
! b6224acd5d609473a3f91ca13ff23eef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_1.c
! 1510b83a0b1baf70601985c85f019762  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_n.c
! 46fea8fe01ddf17f515efe0bd36669dc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_single_n_1.c
! af89fdf606c973d8bd4b526deebc3e58  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_int_opt_single_n_2.c
! f9a5917115e2a7a6c256243d562bcbcd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_lane_1.c
! 6a9201f477e7c15b5a49327185947f2f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_long_lane_1.c
! a88d9da697f24cfa029fb24091638202  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_long_opt_n_1.c
! 0b0d06fc3761702c26a793743ce6d5e5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_n_1.c
! db063c4ea3c03f4a9178d74f8df81090  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_narrowb_opt_n_1.c
! 9384d87be3250efc820bb4df22b74b98  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_narrowt_opt_n_1.c
  af6d17482a59d82ecf6030c429377322  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_1.c
! 95b4fe75b039c1c048d6a86b4e098c7b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_2.c
! 3da47f318cc13cf83605e8b3811e211e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_n_3.c
! 4bd4b0d44a938e68c2c88659891d035d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_single_n_1.c
! 2b695ddc86ceba028190cb428e8ed9ce  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_opt_single_n_2.c
! 2474780e26f89300396c78a73db85653  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_rotate_1.c
! 9b682259f48c8a682a863d15e4f84e9c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_single_1.c
! 9eded2861c9844b0cd9aab007e831f98  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_to_uint_1.c
! 08463a43f1196b5e3353d9272879c1c0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_n_1.c
  a71eac74a7c0cb9e452b4f181ca2f1e0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_opt_n_1.c
! a6d4d74ac3cff1c1c34b6d44d92856ae  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint64_opt_n_2.c
! c6d84b0aa9031d9da4500f61b64a39f3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint_1.c
! 10c6ccd864554e9a5f9a75bc1603dcc2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint_n_1.c
! 84b15264dc708a7b337ce098184aef90  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_uint_opt_n_1.c
! 5bce92e13a71d078ea2b471f6627ffb7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_wide_1.c
! 61eff29e192c9bd062c059e6f70bca74  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_wide_opt_n_1.c
! 3519ef42cc2ea6e6aa95a2a27424c013  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_int_m_1.c
! bb718f37ebd51c6b74490488e1bc254d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_m_1.c
! 6e9cdbff31e4ca5170514082d7739c85  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_m_2.c
! 0543ec601b83385a0bb9ddc86fb6f4eb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_int_opt_single_1.c
! 114179cbc710b68b32f041fe863ffdbd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_1.c
! 532e33c1e0354c7769bfb971b1d7d034  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_2.c
! 7477383e59b2594ac52d787f07d46704  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_3.c
! cb53fe1c9ca603a8036e081fce8045c6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_lane_4.c
! f6e7f4766927bb0343c8aa3bcfc0910f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_1.c
! e648ab6999dc9d7a49b457385b1a1ed6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_2.c
! 5c06cc1735bd3327a6465c5d71b9e74f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_opt_single_3.c
! 17ceb65cf8c721a6b11ccebcdda65841  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_slice_uint_opt_single_1.c
! b4e9c28da63af2bded8cb279b6986c8b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_uint_m_1.c
! 3901102f1b487e6c5558014ffcfa85ef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binaryxn_1.c
! 13d11b0a502cfb0065accf3ace6c8c8d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binaryxn_2.c
! cdd9f599e1c0782f09c559d002fb1869  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/clamp_1.c
! f3f6e0f3007fb326a88a40bc70484886  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/clast_1.c
! 86feec33d659444e15fc1e11a42fb937  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_1.c
! 1734595d02158a8468b29fd18daf657e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_opt_n_1.c
  e71b116d6eb7de546591d4b41632a115  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_ptr_1.c
  4dd6c509245443ca131c4f60f54dbfdf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_scalar_1.c
! dfd389fbbe69761ebb617c8bf562d39b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_scalar_count_1.c
! a70d786e40b7e98a1f76282b15633670  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/compare_wide_opt_n_1.c
  5561acaaee271b850f1d738828033770  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/count_pat_1.c
! ce13014966a94f4ea101d9f8892229a4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/count_vector_1.c
! 5998a38f7f26101177289773f7e675b8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_1.c
  4c2776a6bdf6cd2dcd6d347390ff0dcb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_2.c
! 03d07c8fde019915acdb809ce29efa7b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_3.c
  8634c9ab763ed1f0527cf45a472103ff  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_4.c
! a8d03a4b86c9a3e0d7b05c1824a898c8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_5.c
  eb453b437e35070d74c76756ef730f41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/create_6.c
+ cad879e38ee9e7f549d3594c7bf2675c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_int_lane_1.c
+ 8c329df4178279456908732d70338865  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_lane_1.c
+ e5271991a5220a15ae3a90a81059a94d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_lane_2.c
+ 9a88b2782d73e617a7b008c441c39c6f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_za_slice_uint_lane_1.c
+ 09c8d57356b444e099b8c216f49a6f86  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dup_neonq_1.c
  249e8a678420c92db86a63096adaa40c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ext_1.c
! 9ecf203ce73f31a3adb3fd85da731e33  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/fold_left_1.c
  a225ae423f67b692af207a8a83138a66  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_1.c
  799639f0fb6c82853d5a4f033f154e54  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_2.c
  853ceb5b5ba271b7edad614861749830  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_3.c
! a78ed93cb974648d153c7c8acca78b52  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_4.c
! 13e56dea54b01b7f64f72798c1fc0111  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_5.c
  9ae1b05dc8d8f928c81d748a26f2e8f2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/func_redef_6.c
  969ade7f25e3c9e771be9b1cdd12588a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_1.c
  058af2267f666bcfc7762c1914bdb9b0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_2.c
*************** ec11eff8f5009ed3e03c5cf524c5878a  gcc/te
*** 56998,57003 ****
--- 61279,61285 ----
  0b68032f816a925e8845d3f268a55eec  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_4.c
  337b7d7297a2c734b9d6bb549e12ff20  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_5.c
  1b825dc1e669f521fe9e9634dc38c59d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_6.c
+ 9983fc5cd06892d81b07b85fc02392d2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/get_neonq_1.c
  b7a3c2edca741d7b4c4b8125976c63a2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_1.c
  979b52ffe58f075abc0d7aeee3475935  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_2.c
  b770c388883ffa9cba2a327f326c095c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_3.c
*************** fd2df5229868f5998100789792552edf  gcc/te
*** 57012,57040 ****
  e0791e2c8f1db29a4a2519f76ec6eb15  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pat_3.c
  a06036a81fac97cbaa499eb187abc348  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pat_4.c
  8bb71ab3a8bcb92e7151ef1df16180d6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pat_5.c
! acd7f7918ca6a275f495bd5d463bdb5c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pred_1.c
  c72982b3747c9fe05f2de4fd4053e092  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pred_scalar_1.c
! 68c8b06e02a5369f1c82d7f3b6f37fcf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ld1sh_gather_1.c
! 395ae72e7c53cf56336171e39cf62895  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_1.c
! fd7c3f12dda9b96954c2733b9799809b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_2.c
! 65656d8e9537c23fb139ff0f53222d59  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_3.c
! 68c8b06e02a5369f1c82d7f3b6f37fcf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_1.c
! 45bfa612321de9c679637a6aa00077cf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_restricted_1.c
! f81b410461d8c37c1a7a8a9f2d66c01b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_1.c
! 9b980421b1225edd32331353e64556c4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_2.c
! 4792d4c0b7656773a2d1c1f036cd958c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_3.c
! 8c2deecf97c429e54d3c76fda938a251  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_4.c
! 82ff77c6a537545f1bbb6e2a9c17095e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_5.c
! 12aa31661b4e07b7ca84acb933f8dca4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_1.c
! 32c9650cd8e4d8fa1e166047994369d3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_2.c
! d0ddf3ebedc88901f2e4f891cca93eff  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_3.c
! bfba8d19b72125a7354198efb18ba311  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_4.c
  4cd9636155557a344583bc9781ecce1d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_1.c
  ba9bbf08df367c4a48ed27a4a5da72de  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_2.c
  2e41f561e98a0c3ec68bce4791ed96a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_restricted_1.c
  703a562b8349e6f20e0b4a710eec33d8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_restricted_2.c
  20ca8a43a539e1c7832f22ead8516187  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_replicate_1.c
! 1821a05f10018c318e60c0083db8cafd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_1.c
  ae39438a4e7b3ed18af12c7495d1e030  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_2.c
  81be2436455b026e124189fe99f62212  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_3.c
  01966f84e39b32dd676a007b9f6cff2e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_4.c
--- 61294,61322 ----
  e0791e2c8f1db29a4a2519f76ec6eb15  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pat_3.c
  a06036a81fac97cbaa499eb187abc348  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pat_4.c
  8bb71ab3a8bcb92e7151ef1df16180d6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pat_5.c
! 9ef9fb338eb0f207bb200f90c9e994f0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pred_1.c
  c72982b3747c9fe05f2de4fd4053e092  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/inc_dec_pred_scalar_1.c
! 5de0e0e3125de798299de6223b4c25fb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ld1sh_gather_1.c
! 5ed1c1661da101e5bedd40a2e46264a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_1.c
! bc9b522a6edaa7e70f173886fb12b655  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_2.c
! 05b39248f4441b665b2495099fad0515  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_3.c
! 5de0e0e3125de798299de6223b4c25fb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_1.c
! 29f5e3e3f9114c68937715ecaa061c75  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_index_restricted_1.c
! da9f4653cd5ef8e22952e52c69f8be18  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_1.c
! d916b5c3b835b93cb43702685dbe2c9f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_2.c
! 3a8ee5023f320061317bb16641ecf4c7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_3.c
! 434fa4214ec15a5f548143e6182e1f43  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_4.c
! 8fb07dc1d6dadd069ceec696ec117838  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_5.c
! 4599ffffa6bf722bcdb09c098c45a128  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_1.c
! 52a96e75c8064ec8af539a35b2248137  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_2.c
! e8ea911fa407ba1b9d48c515bf711cfd  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_3.c
! e14b246e556ec8528a39d36aee14d378  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_4.c
  4cd9636155557a344583bc9781ecce1d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_1.c
  ba9bbf08df367c4a48ed27a4a5da72de  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_2.c
  2e41f561e98a0c3ec68bce4791ed96a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_restricted_1.c
  703a562b8349e6f20e0b4a710eec33d8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_gather_sv_restricted_2.c
  20ca8a43a539e1c7832f22ead8516187  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_replicate_1.c
! ac1112ea88694d89dc677d86e0e3d35d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_1.c
  ae39438a4e7b3ed18af12c7495d1e030  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_2.c
  81be2436455b026e124189fe99f62212  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_3.c
  01966f84e39b32dd676a007b9f6cff2e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_4.c
*************** f81bab9101248e66e7b11d0198342f79  gcc/te
*** 57048,57107 ****
  21c717707f139824bb62e119a9f80fc2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_index_1.c
  b32080f6397eb6ba4176ca23965fe0e3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_index_2.c
  36bee90e48b8b0a48c9ffea4337927ce  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_offset_1.c
! 2635f4fd7a3fbf6e7f9939d1f1dac43d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_offset_2.c
  8088309a2bae13c7dac43e8608be92f8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_offset_3.c
  e9cc9e8274ee7f7e610367274c623ca7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_offset_4.c
! 5b2431a3be47e8651cfe066d3b4f0479  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/reduction_1.c
! 10988da9a6d765183494fb80cade7e8a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/reduction_wide_1.c
! 13d1bfae092b50e46d84b0f5d0654058  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_1.c
  fdef02a3f51356207a03ac1a152763a1  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_2.c
! 2753fa7d0f6faa501c6c91da2ef467c9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_3.c
  f09470ad902956ab115fe5070ece73fe  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_4.c
! de73bef40865eeff68c542eaf5825de6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_5.c
  60d052d0d64e0b70c4b941cf02e39d98  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_6.c
  462fda8a94523442af881ef1041b3c2d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_left_imm_long_1.c
  8a031cb03300738f2a82b7268fce555f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_left_imm_to_uint_1.c
  ac7280d286cc2fe6c70c0b749582d555  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_left_imm_to_uint_2.c
  c4e2c9959cb8be044fb52477f35eaf68  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_1.c
  ef1c49097e0bab8ac8f2b3b769937427  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_2.c
! d694a2a73e1299bcb9942d63a1fd1f53  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowb_1.c
! 7860e226748dc56cc8a042c854f7451c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowb_to_uint_1.c
! 5247f1c6191fedb6ff46df2d8b49730b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowt_1.c
! 72423ba2ee357b0880c2f5c558b896cb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowt_to_uint_1.c
! eeecc69ee185191f420ff179f52442cf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-1.c
! 3ec75b71e378c7b447e19930f9b358a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-2.c
! e2a52c026c55887b56cf89fcbf36f4ab  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_1.c
! 08d256af3c1d657a617185babd817877  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_2.c
! 6c75b84741b054bef7e2c7af4cade6dc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_1.c
! 1735a05f7c3876d43f252c1a1064bbd6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_restricted_1.c
! 6e73d953144a73981ad86ac84fb523c6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_1.c
! 41a2ec5799d29d270c9b9d1d3865cc8d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_2.c
! 0e22dd8b700e9ccde6fef011336113c8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_restricted_1.c
  b52fb4e9ec8a6b03376457660198d288  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/struct_1.c
  415df05f3abc8db59c80ac9f28da4c36  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/tbl_tuple_1.c
! e489201588035c19e80854319dfa6c1c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_1.c
! 2a968cffec554c08f741b8e1d996c629  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_lane_1.c
! 536694c0c8ac04dfb812d7e5fe6f95b9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_lanex2_1.c
! c09e6507cab90829ffcb000f63b46bf4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_opt_n_1.c
! 5ea045af8c3b78015c57a191f6deee74  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_intq_uintq_lane_1.c
! ddb27d621b0790b802bcfd7ccc5f89e0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_intq_uintq_opt_n_1.c
! fa4dcb6f258709fbf77beb43a8a32a71  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_lane_1.c
! 5d43c1e053c73382a6a3a5ea5cdcb423  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_lane_rotate_1.c
! 616d1ff6f445ffa9ed937f1d08c1e7a5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_long_lane_1.c
! 952bb4c83f8af9bc093be717063171ca  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_long_opt_n_1.c
! a8a6c49c9d8cb31a9fd3a00e54858084  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_opt_n_1.c
! 7b9001f4b50418e4b01d94c07e6c3d85  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_lane_1.c
! 61a9f889f936e28558f0d3e7c462e48c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_lane_rotate_1.c
  fab8a0231988ca90aae231c61af26643  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_opt_n_1.c
! 0ae6b179d981252ffe62a53d4a11aae6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_opt_n_2.c
! 0c43b4b765b792dff8cc1570696d6f18  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_rotate_1.c
! ca31a7b53465f83ddf403c44603db171  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_rotate_1.c
! ed04fac049e54cfef559d44b71f9f3d4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_shift_right_imm_1.c
! c43f9361ffe3eef8e73a470c01abe765  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_uint_1.c
! 4920359c886fbd14a59ff4507b36543a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_uintq_intq_1.c
! 040db5b2cee39a07e6372dfab55dfb7e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_uintq_intq_lane_1.c
! f53b1ab878f7b9108877de83395be5e1  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_uintq_intq_opt_n_1.c
! c51086686f2040d765e15cd6750b84de  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/tmad_1.c
  fe8b1fedb830960ed78b96fc34dbdc23  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_1.c
  f115482ad1b58022cec74e0221ca5738  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_10.c
  7127861bc8a07c2c554fa0f635a5912d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_11.c
--- 61330,61399 ----
  21c717707f139824bb62e119a9f80fc2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_index_1.c
  b32080f6397eb6ba4176ca23965fe0e3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_index_2.c
  36bee90e48b8b0a48c9ffea4337927ce  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_offset_1.c
! a7869d47b20185532bf0e3107854db07  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_offset_2.c
  8088309a2bae13c7dac43e8608be92f8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_offset_3.c
  e9cc9e8274ee7f7e610367274c623ca7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/prefetch_gather_offset_4.c
! 4dc0ccf2bff93f72d2742cf07cd94a84  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/read_za_m_1.c
! e45bf49e3ab27d501efd2ddb69e54f70  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/reduction_1.c
! 8d707c606034edc08209d884d56547d2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/reduction_wide_1.c
! 674d554df80be731b73e0d32ee2aca87  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_1.c
  fdef02a3f51356207a03ac1a152763a1  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_2.c
! e6f133e9f265dbfcfd6080ccdacf3366  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_3.c
  f09470ad902956ab115fe5070ece73fe  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_4.c
! 99a679e7c65f695a55ec19973a29ec70  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_5.c
  60d052d0d64e0b70c4b941cf02e39d98  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_6.c
+ 36374c5bf24d955dd2d847f7b8fed0eb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/set_neonq_1.c
  462fda8a94523442af881ef1041b3c2d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_left_imm_long_1.c
  8a031cb03300738f2a82b7268fce555f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_left_imm_to_uint_1.c
  ac7280d286cc2fe6c70c0b749582d555  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_left_imm_to_uint_2.c
  c4e2c9959cb8be044fb52477f35eaf68  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_1.c
  ef1c49097e0bab8ac8f2b3b769937427  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_2.c
! 80c1824a84a762b40c7ddcbdad053e41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowb_1.c
! 927f92ccee39bc60defa345aba4f4acc  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowb_to_uint_1.c
! 877fcce12ad68ab4c20ab4c8c67c4add  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowt_1.c
! cfd861255a479d919738f3d77cdc3f9f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowt_to_uint_1.c
! a7af6e40463ead1066d26d2635cffe5f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/shift_right_imm_narrowxn_1.c
! 853a34e1cd9dc7794a32094665aae5cf  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-1.c
! 86b75bf9b1e65f6673305c604cc30dd9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-2.c
! e7a003fc623dfa02a69d0c61259a5bef  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_1.c
! 2ed76cfbfa38c71939a4645029ae60be  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_2.c
! 5da30099dd8e3cc2f16c40bce41be05b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_1.c
! db6a7f40ba388da3a0fcea32db830c02  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_restricted_1.c
! dc083d1856f3a13be0a767276b132afb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_1.c
! 592a579e8bdf1653f88b2e40b8c344e6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_2.c
! 07ef55fd0d3bf03a5c25955024d8438e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_restricted_1.c
! df9b1c5659a1667d777d01185a31d302  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/storexn_1.c
  b52fb4e9ec8a6b03376457660198d288  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/struct_1.c
+ 923c99057f062c134be803bd6d55fc2e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svboolx2_1.c
+ 2d11aefe539338b6e7ec761468099b30  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svcount_1.c
+ d9823cbd34836a7cbb417173ee20f519  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast.c
+ 29cace40b91c5375f944f44e97bae2f5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast128_run.c
+ dd949f1aaa34adff76b9ec0730190812  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast256_run.c
  415df05f3abc8db59c80ac9f28da4c36  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/tbl_tuple_1.c
! 6f84f9e2a4fb3cb8125a835db8703669  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_1.c
! 4b11535a21d8f9931c92d09236b5027d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_lane_1.c
! bedab63cf5c922083d4065c586004f3a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_lanex2_1.c
! 0f2b93d293f0741ebb48867a31a99f26  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_opt_n_1.c
! 5f2da8f48c16e36febfb0019dc4d2ba8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_intq_uintq_lane_1.c
! b3c9cac37ce7a099fe7e4802e538596c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_intq_uintq_opt_n_1.c
! 77c09f06206a80ee93404ec3b519023f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_lane_1.c
! 46402646bfe2a632ef690f5fc962d45e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_lane_rotate_1.c
! dcbeaf0326da4b9dee3e0890f740f8c4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_long_lane_1.c
! 1536d36252c18e28cdfb06054849acd5  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_long_opt_n_1.c
! 7a6599eaefd501075adb77149adfd4e6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_opt_n_1.c
! e0ff4cfc56081e30cc77f5cb52e669aa  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_lane_1.c
! 86c8c495cbb710026739007820398066  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_lane_rotate_1.c
  fab8a0231988ca90aae231c61af26643  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_opt_n_1.c
! 67534d31f9bf7ebcadf27eb3db59aa7a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_opt_n_2.c
! b62ed8d459ba966980a1c9ec9e1d096b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_or_011_lane_1.c
! c9bfef59737c38bb4012159cc1fc5757  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_qq_rotate_1.c
! c5079a4f97471d28afd5fc84afe9e6fa  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_rotate_1.c
! e0e2c1b160c8aa37f2e10c750eb8d568  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_shift_right_imm_1.c
! 6212ae54284e264d0ed9696471412cb4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_uint_1.c
! beb7c26a61fd79f81a92facde6499a4b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_uintq_intq_1.c
! 8f03a78814acf716acc760f8670c59ee  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_uintq_intq_lane_1.c
! 4c4dea98480ebfb3653ed5430fea5e3b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_uintq_intq_opt_n_1.c
! 3afcc9242c1a0cc816e11d2fe19fd918  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/tmad_1.c
  fe8b1fedb830960ed78b96fc34dbdc23  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_1.c
  f115482ad1b58022cec74e0221ca5738  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_10.c
  7127861bc8a07c2c554fa0f635a5912d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_11.c
*************** b82fa73576ee65cbf46fb469818b539b  gcc/te
*** 57122,57144 ****
  941fbe47fb9f41337622c694d5ef6ffe  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_7.c
  21e968b6774b431d4114da11710a6e27  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_8.c
  6503fe801701d996c25560850815526a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_9.c
! 0889c288d8602f5cdf5b5effae8d44e9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_1.c
! b4527d245e03173d2a8596456cf3bc7e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_2.c
! 996faa99460a4541c80773f8e90bcc8a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_1.c
! 6f66265a0225b7775f364c1956e2b4d9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_2.c
! 7079169643b05ae3734710e57dd265ab  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_narrowt_1.c
! fa9d78ec3d65d4b9b9e4c8e38ac5334c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowb_1.c
! 47fc475a2696fccb625ccc4223b68296  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowb_to_uint_1.c
! c1e5714777f9d07297b7635e731c8bd3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowt_1.c
! 924609482629b0730b1dfc5ae2045a38  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowt_to_uint_1.c
! ce8d54a8624bca43145fc378a4edf14a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_to_int_1.c
! 63c71018c0c67fe2f43b7a681833c1a9  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_to_uint_1.c
! 2bdbc7536b1606635434a443ecf4920e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_to_uint_2.c
! 9158df1f1ed169b9de5bbf65e604eeb3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_to_uint_3.c
! e852263d47e89d0768ec55fc21ce4f91  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_uint_1.c
! ebe2ab971dd52f6951f76d0df47a49a2  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_widen_1.c
  0a1aa4bef991a224ceb1d69748618687  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/undeclared_1.c
! 5c4bafd2c0b6d200f406a335426f69d3  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/undeclared_2.c
  aa357d405e2f83cc3b5b21d3513c1281  gcc/testsuite/gcc.target/aarch64/sve/acle/general/add_1.c
  171242c36c5137cac47934923813a672  gcc/testsuite/gcc.target/aarch64/sve/acle/general/and_1.c
  68b3b762499b486689be862b5b06513c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
--- 61414,61445 ----
  941fbe47fb9f41337622c694d5ef6ffe  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_7.c
  21e968b6774b431d4114da11710a6e27  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_8.c
  6503fe801701d996c25560850815526a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/type_redef_9.c
! 65e186bd0135eab4aec831d6507d0cd6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_1.c
! b64ceb135019ca0468a29f479670b23e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_2.c
! 097aae60317737c1fae07460f599a298  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_1.c
! 2fe0c69467ef1da4c1258b244058ad56  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_2.c
! 02448ffd0a1f6e903ab6b09774338e0d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convert_narrowt_1.c
! 9dc6d91af28f13e7829749d6abf2d74b  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convertxn_1.c
! 33f4b46aa573fa6dd8c9579200b14e41  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowb_1.c
! a3afd4274251cb99bc08ee3a8d7fbc96  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowb_to_uint_1.c
! ae7313ce49643183ba2ad1bc61668936  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowt_1.c
! 8fc9da30d998137c06a45b04bdde9770  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_narrowt_to_uint_1.c
! aac549e3bf8d79b1ead96bb590efbaeb  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_to_int_1.c
! 0bdf276701dde10234fb759e37f7ec99  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_to_uint_1.c
! bcb61571740d74e4fa4223a3d47329a1  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_to_uint_2.c
! a7b214e73cc85486f612e05af76a069e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_to_uint_3.c
! 3888513e08e8a3f59659f00234ad2a28  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_uint_1.c
! 062996e744f1756f4eb9a8718b34ab7c  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_widen_1.c
! 4404793b95ce0451db382713b8837e36  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_m_1.c
! 3938d809f37baeb2c39516e53118c316  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_1.c
! 4fd25827a923a2c5e0935d63a9469153  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_2.c
! 134a362cc501b40090666439460283f4  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_slice_3.c
! a48d71c86d0a741c08703094d9e5eb34  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unaryxn_1.c
  0a1aa4bef991a224ceb1d69748618687  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/undeclared_1.c
! 336167b7db7104244a24a1310090a6a8  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/undeclared_2.c
! b90966e5c8ac18d79f9f77f1bf562567  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_1.c
! de2e59eeec9cea88f8e1125fdec8d66d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_m_1.c
! 0e8960bf707959071679d67cd30b96b6  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_slice_1.c
  aa357d405e2f83cc3b5b21d3513c1281  gcc/testsuite/gcc.target/aarch64/sve/acle/general/add_1.c
  171242c36c5137cac47934923813a672  gcc/testsuite/gcc.target/aarch64/sve/acle/general/and_1.c
  68b3b762499b486689be862b5b06513c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
*************** c837aa90d4f65fe43a41a1df66ecddaa  gcc/te
*** 57147,57153 ****
  dbd822adb848a971885a06967432c628  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_4.c
  cffa63a742186323feab22505915a6e9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_5.c
  4427e079ae4e96814bee01be95c9fa65  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_6.c
! 8eb96c59a60b9d4449fc0ae4c9d8ccb2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_7.c
  92c276aa826427c641795daf9568c67a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_8.c
  05382618b8c4ba6e308d6b5ff864fab5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/bic_1.c
  af77aba325d1fbc52d95aa9fcc602577  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c
--- 61448,61454 ----
  dbd822adb848a971885a06967432c628  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_4.c
  cffa63a742186323feab22505915a6e9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_5.c
  4427e079ae4e96814bee01be95c9fa65  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_6.c
! 8c6def5b6e4382b26fc86316ed6f920e  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_7.c
  92c276aa826427c641795daf9568c67a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_8.c
  05382618b8c4ba6e308d6b5ff864fab5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/bic_1.c
  af77aba325d1fbc52d95aa9fcc602577  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c
*************** f05f061869c6f335b6395f5250ec83ee  gcc/te
*** 57161,57166 ****
--- 61462,61468 ----
  4e7a3ff45a72f35e2476f4e660886eb0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_1.c
  60577eb222495e42c0d4e2d7e2ce19a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_2.c
  890d0907288d2b72f9ec70456e205a4c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_3.c
+ 493d587eaeaa014288091839539ed594  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cnot_1.c
  8670785b5e7c8b75fb219f0ddae33190  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntb_1.c
  9e41721b4dcb606909b3efa814293f4e  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntb_pat_1.c
  60a6cb5f3583610557e9b4dde6cd5453  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntd_pat_1.c
*************** e46654fee58cc18d1ac01ba2cdb41732  gcc/te
*** 57176,57186 ****
  091e427422cbb47ec0b2dcc6afb999d1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/double_pragma_1.c
  9a54ccb1477231b28fa9890ff0236c4f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_1.c
  031b72e29159a4e91bbc8c052d96d350  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_10.c
  8b0c761cea4233e5fa7bdf46876000c3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
  18e1c44f4c68aef7141e21d94efcb130  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_3.c
  01ad385ac38540a97d0f0010298449b4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
! e181cf24b5b5a0bcb9149b53e4daf770  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_5.c
! 1582102c5f2375cf4a46f2f6bdfd40ee  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
  261e8d974cfe6e108fbd2fca3d149de3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_7.c
  db57844e5d153caf67671703c4b34d2f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_8.c
  fe2921ebbd482cc73ae92d1bf808ade5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_9.c
--- 61478,61489 ----
  091e427422cbb47ec0b2dcc6afb999d1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/double_pragma_1.c
  9a54ccb1477231b28fa9890ff0236c4f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_1.c
  031b72e29159a4e91bbc8c052d96d350  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_10.c
+ 60aaa4e9d487bd6a45aa3bf0af5e8a64  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_11.c
  8b0c761cea4233e5fa7bdf46876000c3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
  18e1c44f4c68aef7141e21d94efcb130  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_3.c
  01ad385ac38540a97d0f0010298449b4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
! d1b6ffd93379744e84b1e20517c2a8ee  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_5.c
! 25c9afc168aa4280373525ba6a0fb422  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
  261e8d974cfe6e108fbd2fca3d149de3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_7.c
  db57844e5d153caf67671703c4b34d2f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_8.c
  fe2921ebbd482cc73ae92d1bf808ade5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_9.c
*************** c41c67f44c22e68000696077b274f5ac  gcc/te
*** 57197,57202 ****
--- 61500,61506 ----
  68be4a7d9fc95686fd0f20ee08808483  gcc/testsuite/gcc.target/aarch64/sve/acle/general/inline_1.c
  b18abd5c067d4b942ea0efece4b6b199  gcc/testsuite/gcc.target/aarch64/sve/acle/general/inline_2.c
  c708987cfd1689934541e80a8365d6e2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ld1_1.c
+ 36e84466ad8c8202022edb8dbbcff8c7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ld1rq_1.c
  cd8c13f3a593aa4740b7b89ecc83e265  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_1.c
  3fccd4c3b1554dbc93cfd07f87aab9be  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_2.c
  3d191f60f7b2ffabd5c9e211d93fa260  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ldff1_3.c
*************** bb3a7f2587d8584d185738649f93a6f6  gcc/te
*** 57220,57226 ****
--- 61524,61534 ----
  4a5457bf98a3061b6c949b777ceca410  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pnext_1.c
  6d3b0cbb6b0b88e0030fbf0003faa4c9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pnext_2.c
  9ff121474de72b7f1e7df15e02d1fcbf  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr104092.c
+ e376d54074cb770c4949e830690ed08f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr106326_1.c
  06b9fe18846ba9da10d77ea945b0fa4f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr107920.c
+ 250431124622842c2b832d1eeb0e2c51  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr112906.c
+ 399964c19f2b44b199fd6c9d5258a129  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr114577_1.c
+ b47de1519a1ea6d899c2a6cd56b65cba  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr114577_2.c
  cd84e485b3fa7a0d50f2ee5113eca33d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr94683.c
  111a35b5bdbe877086a99d29b13dc65b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr94700.c
  dd9873ff910539b000561a51ccc3a52f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr96146.c
*************** a5788fbbeb941609b02d51151c326705  gcc/te
*** 57235,57270 ****
  bf328a0ed3cadaf01cdcd516cb16a2eb  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ptrue_pat_4.c
  21cf8f26265cb4080b1703c09d296dc5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ptrue_pat_5.c
  ef386f442776c7325a9c4120d5f0f1cd  gcc/testsuite/gcc.target/aarch64/sve/acle/general/qincb_1.c
  b73d2b4b9aeaceb7898b89f8e147cc04  gcc/testsuite/gcc.target/aarch64/sve/acle/general/stack_vars_1.c
  a60971180940fb9126dc3f2440073c3a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/struct_1.c
  9404c4e4b822b81b48891a1fe0625266  gcc/testsuite/gcc.target/aarch64/sve/acle/general/temporaries_1.c
  01c228bca66f0def69756fae10d3ddbf  gcc/testsuite/gcc.target/aarch64/sve/acle/general/undef_1.c
  de2f1d6ff8c05a5ea5ffb81b8ce61ce2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/unoptimized_1.c
  129d25d3f8de8545837b08910c736d81  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_1.c
! 5dbffb9595fe745c3cdfebeeece83ee5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_10.c
  2af690a7706f6a510d3d0b49d8bcbc92  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_2.c
  786ef1b1105a4d7d76e8259890eddb76  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_3.c
  32aacb55289afea049bef27ee3e43b32  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_4.c
! b3ac885cdf7c809e6e3a99a873bb46db  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_5.c
! 5c753061bc4092a3fd420d4ea189dc5c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_6.c
! 4252f061da5cf9319b8f1502028ab9d3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_7.c
  3c67dda964fc05a59fcc4c706524e07f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_8.c
! d36d9579c20df8f136f28fd106587166  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_9.c
! 6a28dd98007e749cecb4a3e1832b31af  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_1.c
! 88d6a35cd548c74adcb762733e4e55c0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_2.c
! 3d416ecddcdc2b5a7c6c8837f0357738  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_3.c
  0806391c016c8debb474b7d2ccb7f9e1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_4.c
  ba734365b41c2307c8f246196db5fb40  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_5.c
  961cd5bf40c30fe194d6c5a5bb165705  gcc/testsuite/gcc.target/aarch64/sve/addsub_1.c
! 76a0c6858282d55909f2d7749a149ea2  gcc/testsuite/gcc.target/aarch64/sve/adr_1.c
  2d610447058d50eb4f033ca1419526bb  gcc/testsuite/gcc.target/aarch64/sve/adr_1_run.c
! 28f064710084d9e8a8aef431c7cb26de  gcc/testsuite/gcc.target/aarch64/sve/adr_2.c
  cc7fcd63be30e4f74d3bba7993ffc3fd  gcc/testsuite/gcc.target/aarch64/sve/adr_2_run.c
! 0463423aee4d43730f9c21337e63a78b  gcc/testsuite/gcc.target/aarch64/sve/adr_3.c
  89034006e18049b53905e6ed32e723dc  gcc/testsuite/gcc.target/aarch64/sve/adr_3_run.c
! d7c66bb8a9596a5783933da6d7034eb1  gcc/testsuite/gcc.target/aarch64/sve/adr_4.c
  b77d57f6ab3a698dfef1798ec4ada94d  gcc/testsuite/gcc.target/aarch64/sve/adr_4_run.c
! 60017b5f72b2047b2e24cd3daccccc1e  gcc/testsuite/gcc.target/aarch64/sve/adr_5.c
  08a30fcbd7cb13074d9f737a36ee873c  gcc/testsuite/gcc.target/aarch64/sve/adr_5_run.c
  bc43440ccc76848bad7aec9e25e7135c  gcc/testsuite/gcc.target/aarch64/sve/adr_6.c
  62c2fdff5e2575e27bb0a1d20d21aa9e  gcc/testsuite/gcc.target/aarch64/sve/arith_1.c
--- 61543,61580 ----
  bf328a0ed3cadaf01cdcd516cb16a2eb  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ptrue_pat_4.c
  21cf8f26265cb4080b1703c09d296dc5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ptrue_pat_5.c
  ef386f442776c7325a9c4120d5f0f1cd  gcc/testsuite/gcc.target/aarch64/sve/acle/general/qincb_1.c
+ 884f0309ada7f457179926eca68ecf14  gcc/testsuite/gcc.target/aarch64/sve/acle/general/rev-1.c
  b73d2b4b9aeaceb7898b89f8e147cc04  gcc/testsuite/gcc.target/aarch64/sve/acle/general/stack_vars_1.c
  a60971180940fb9126dc3f2440073c3a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/struct_1.c
  9404c4e4b822b81b48891a1fe0625266  gcc/testsuite/gcc.target/aarch64/sve/acle/general/temporaries_1.c
  01c228bca66f0def69756fae10d3ddbf  gcc/testsuite/gcc.target/aarch64/sve/acle/general/undef_1.c
  de2f1d6ff8c05a5ea5ffb81b8ce61ce2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/unoptimized_1.c
  129d25d3f8de8545837b08910c736d81  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_1.c
! c6678960d749be98b106a4f7b03c6107  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_10.c
  2af690a7706f6a510d3d0b49d8bcbc92  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_2.c
  786ef1b1105a4d7d76e8259890eddb76  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_3.c
  32aacb55289afea049bef27ee3e43b32  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_4.c
! 73f73113a8c352f22109f5dce0287a00  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_5.c
! c4e508d281be8960d54bac41c072670a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_6.c
! 91bc27f9c52bd64030e6b7f8cb43204d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_7.c
  3c67dda964fc05a59fcc4c706524e07f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_8.c
! cbc14176bcaf520187ca5e1cb7a290ba  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_9.c
! 61c26c15653263e91b92f7fefe6025a6  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_1.c
! f4c9f8f5a8d604bc447fb7d463e7735f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_2.c
! 14793ed2e5397935138c3dfaf3068f34  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_3.c
  0806391c016c8debb474b7d2ccb7f9e1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_4.c
  ba734365b41c2307c8f246196db5fb40  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_5.c
  961cd5bf40c30fe194d6c5a5bb165705  gcc/testsuite/gcc.target/aarch64/sve/addsub_1.c
! 56d4c411c942789ba83621762b5183d3  gcc/testsuite/gcc.target/aarch64/sve/addsub_2.c
! e429640da7b78c466b74f5ad43bd2ef4  gcc/testsuite/gcc.target/aarch64/sve/adr_1.c
  2d610447058d50eb4f033ca1419526bb  gcc/testsuite/gcc.target/aarch64/sve/adr_1_run.c
! 5ec73001fb74d73604a89bc2bc933031  gcc/testsuite/gcc.target/aarch64/sve/adr_2.c
  cc7fcd63be30e4f74d3bba7993ffc3fd  gcc/testsuite/gcc.target/aarch64/sve/adr_2_run.c
! 8545c2570d287385754cb569a40a25a2  gcc/testsuite/gcc.target/aarch64/sve/adr_3.c
  89034006e18049b53905e6ed32e723dc  gcc/testsuite/gcc.target/aarch64/sve/adr_3_run.c
! 89cb988a0cf96eb2cafc05de948baad2  gcc/testsuite/gcc.target/aarch64/sve/adr_4.c
  b77d57f6ab3a698dfef1798ec4ada94d  gcc/testsuite/gcc.target/aarch64/sve/adr_4_run.c
! 1644b5aca1029272980fa6486471e83f  gcc/testsuite/gcc.target/aarch64/sve/adr_5.c
  08a30fcbd7cb13074d9f737a36ee873c  gcc/testsuite/gcc.target/aarch64/sve/adr_5_run.c
  bc43440ccc76848bad7aec9e25e7135c  gcc/testsuite/gcc.target/aarch64/sve/adr_6.c
  62c2fdff5e2575e27bb0a1d20d21aa9e  gcc/testsuite/gcc.target/aarch64/sve/arith_1.c
*************** cb248f58483fd13d2e58eaaae9b31e9f  gcc/te
*** 57310,57327 ****
  c2f1605307c75d35717247d838dc6523  gcc/testsuite/gcc.target/aarch64/sve/cond_abd_4_run.c
  503d27a6592542e9965e8a233851095e  gcc/testsuite/gcc.target/aarch64/sve/cond_abd_5.c
  09186e3b784bbad13f0d1c81166fb33a  gcc/testsuite/gcc.target/aarch64/sve/cond_abd_5_run.c
! f424707b74b259bb744ddfd561e1abf3  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_1.c
! 2c20ae3d00ddc2a8381670b49b8efcaf  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_1_run.c
  ca2b7a595f56f0dd2985679783aae33f  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_2.c
  b23831f00f7f888aca5688e25eea799b  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_2_run.c
! 2a2845189d193a6059f9293d6a6b26dd  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_3.c
! 8e28318f90750ff59b6b73ea15c63119  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_3_run.c
  d4b0fcf49dbdac56043aee98347c8ccf  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_4.c
  ae054ca80eef5370f60b398f80ca624e  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_4_run.c
  de20c023bfdec615e3bef202481b8941  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5.c
  f76243fd74d976c03e9e9c6e2d0e09af  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5_run.c
  057607b93c8072bb59862f61a65f16f7  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_6.c
! bd01832532ac120bc025aa363c885809  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1.c
  66f89090e06d8be84d0ece9730aee086  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1_run.c
  e8b19672e185ac775fab17be20819eed  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_2.c
  e9ed357e627af054ebae26f9f7b0ee32  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_2_run.c
--- 61620,61637 ----
  c2f1605307c75d35717247d838dc6523  gcc/testsuite/gcc.target/aarch64/sve/cond_abd_4_run.c
  503d27a6592542e9965e8a233851095e  gcc/testsuite/gcc.target/aarch64/sve/cond_abd_5.c
  09186e3b784bbad13f0d1c81166fb33a  gcc/testsuite/gcc.target/aarch64/sve/cond_abd_5_run.c
! 2a8e3f7a53ef9c513e0cf5762c801cc4  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_1.c
! 1339f59ff3629d6faef831d67cb59a92  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_1_run.c
  ca2b7a595f56f0dd2985679783aae33f  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_2.c
  b23831f00f7f888aca5688e25eea799b  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_2_run.c
! 1e61b50dbd17aa3735e977acafcf5fbb  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_3.c
! 4121f93aa119e4bbc503c61780569358  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_3_run.c
  d4b0fcf49dbdac56043aee98347c8ccf  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_4.c
  ae054ca80eef5370f60b398f80ca624e  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_4_run.c
  de20c023bfdec615e3bef202481b8941  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5.c
  f76243fd74d976c03e9e9c6e2d0e09af  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5_run.c
  057607b93c8072bb59862f61a65f16f7  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_6.c
! e30fc1d48efff8e0d66a6e9f603691f3  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1.c
  66f89090e06d8be84d0ece9730aee086  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_1_run.c
  e8b19672e185ac775fab17be20819eed  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_2.c
  e9ed357e627af054ebae26f9f7b0ee32  gcc/testsuite/gcc.target/aarch64/sve/cond_asrd_2_run.c
*************** eb7f72a0a8905e0f9d876a515cbc0468  gcc/te
*** 57333,57339 ****
  aba660a7ebde60eb7c63ad59a707f076  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_2_run.c
  442027510f6e107e768dbd2aad42fa72  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_3.c
  85048f66e07545d536f3ae18e4e4df87  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_3_run.c
! 202d7b1d33137718d5fe28e4e2cd7272  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4.c
  a14493d83d663147b4b88fd163bc2b72  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4_run.c
  5ce681225c3088de36e1d1a7654fd8b3  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_5.c
  13a3ee06b66c0c4211cb0cc7b785c475  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_5_run.c
--- 61643,61649 ----
  aba660a7ebde60eb7c63ad59a707f076  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_2_run.c
  442027510f6e107e768dbd2aad42fa72  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_3.c
  85048f66e07545d536f3ae18e4e4df87  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_3_run.c
! d3b36291a26b3d941518500009166590  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4.c
  a14493d83d663147b4b88fd163bc2b72  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_4_run.c
  5ce681225c3088de36e1d1a7654fd8b3  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_5.c
  13a3ee06b66c0c4211cb0cc7b785c475  gcc/testsuite/gcc.target/aarch64/sve/cond_cnot_5_run.c
*************** b009e2ac0ac4b817121704c308cdc523  gcc/te
*** 57351,57356 ****
--- 61661,61668 ----
  f4e9b13c1210611196f736112141a08b  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_5_run.c
  4657d9c528b7e7051b1098d9cc1429d5  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_6.c
  bd3048ab3377de4ff80850e2786c91ab  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_6_run.c
+ ba0a372d0e65cbc916e97902bcf0c9c2  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_7.c
+ b978f10085bb833e64a43c5c808877b4  gcc/testsuite/gcc.target/aarch64/sve/cond_convert_8.c
  0ff5ea1c0c6ab099aa7b6a05243f617f  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_1.c
  184401c974631a376b5c609608df2ec9  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_1_run.c
  6b5f46712535ee9d888c5dc8a17cfdbb  gcc/testsuite/gcc.target/aarch64/sve/cond_fabd_2.c
*************** c646dd2e0fac8da4972c667888c025dc  gcc/te
*** 57470,57476 ****
  48c8b8da28cd7561f3eebc9897a10408  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_3_run.c
  203714ae863c84f9652c911b42a25da5  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_4.c
  14deb8e873fa9fed70a00adc999bf312  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_4_run.c
! eb1747931f82467dfe34ef642129e56f  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c
  435ac44927974eb89426cad7e0d39cce  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5_run.c
  9ed3dd7a15c80c18e046f7ad39033169  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6.c
  91fa757262d5209751931a7e514e7e42  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6_run.c
--- 61782,61788 ----
  48c8b8da28cd7561f3eebc9897a10408  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_3_run.c
  203714ae863c84f9652c911b42a25da5  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_4.c
  14deb8e873fa9fed70a00adc999bf312  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_4_run.c
! 610c33c6adf85eb1648e6516a0290a43  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5.c
  435ac44927974eb89426cad7e0d39cce  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_5_run.c
  9ed3dd7a15c80c18e046f7ad39033169  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6.c
  91fa757262d5209751931a7e514e7e42  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_6_run.c
*************** eb1747931f82467dfe34ef642129e56f  gcc/te
*** 57478,57483 ****
--- 61790,61796 ----
  678eb6b159a1b54b7a80cf499bdde4f9  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_7_run.c
  7bc8b4c99ebb3d89746b4bf253a9feaf  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_8.c
  df6cde408c472dda22a187cd762e82b5  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_8_run.c
+ ad200b55958d13ad502b338cf4da9f4e  gcc/testsuite/gcc.target/aarch64/sve/cond_unary_9.c
  bb15b0126d7f584f963014cc76355f09  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_1.c
  10c666c887785efedb2e83c1b596c4c8  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_1_run.c
  a8419890219c776edc0ed6dbae299529  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_2.c
*************** a8419890219c776edc0ed6dbae299529  gcc/te
*** 57486,57492 ****
  81c8713fc65aeeceea43e413e0853180  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_3_run.c
  552619d8323219cf84c033d1e66bb3be  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_4.c
  17f39d852a925eb171b031496e369494  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_4_run.c
! d3a49e046c591565f5cd7736b81bf151  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5.c
  5669236b1b64f25a02492e26bff3fff9  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5_run.c
  8bbdef796cb9f7c3ed167406690c24c5  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_6.c
  d8756a95c958d82cd6c5e7e4c6a9a6b0  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_6_run.c
--- 61799,61805 ----
  81c8713fc65aeeceea43e413e0853180  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_3_run.c
  552619d8323219cf84c033d1e66bb3be  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_4.c
  17f39d852a925eb171b031496e369494  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_4_run.c
! 871d18a8e633ddc1254fc0d899becf53  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5.c
  5669236b1b64f25a02492e26bff3fff9  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_5_run.c
  8bbdef796cb9f7c3ed167406690c24c5  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_6.c
  d8756a95c958d82cd6c5e7e4c6a9a6b0  gcc/testsuite/gcc.target/aarch64/sve/cond_uxt_6_run.c
*************** a04b176d1f4debec96b6eb4ccec14017  gcc/te
*** 57507,57512 ****
--- 61820,61826 ----
  246db2ce2d061b4faf830feefc2d4165  gcc/testsuite/gcc.target/aarch64/sve/cost_model_12.c
  f5f51f0ce22434617d58b4330621ef23  gcc/testsuite/gcc.target/aarch64/sve/cost_model_13.c
  c5c994981c93e2e000c8d8ff085fc54e  gcc/testsuite/gcc.target/aarch64/sve/cost_model_14.c
+ d5b139bd861ddd97284d5f818eb70a78  gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c
  e918451f74d084e54a9a7ceb98f0bf8e  gcc/testsuite/gcc.target/aarch64/sve/cost_model_2.c
  8814c7380f5de0a24225ed6e4ac88c89  gcc/testsuite/gcc.target/aarch64/sve/cost_model_3.c
  bd604bfadfafeee51abf031d456ada7f  gcc/testsuite/gcc.target/aarch64/sve/cost_model_4.c
*************** d0e1d8fee3d430dd78f1f6b60a9c0f79  gcc/te
*** 57536,57545 ****
  c586ed3d32d5df8a6105efcebd07dd98  gcc/testsuite/gcc.target/aarch64/sve/extend_2.c
  4063928cf46e04fc803834e77ff45a36  gcc/testsuite/gcc.target/aarch64/sve/extend_3.c
  216fd1111249112979d7d82a869c8495  gcc/testsuite/gcc.target/aarch64/sve/extend_4.c
! 9d1208be5a5ddbcb536530253fc08c59  gcc/testsuite/gcc.target/aarch64/sve/extract_1.c
! 38050c69412a8327882afb28104af3c3  gcc/testsuite/gcc.target/aarch64/sve/extract_2.c
! d68047438620c41fa63ab865908964c6  gcc/testsuite/gcc.target/aarch64/sve/extract_3.c
! 8fcc627e22d38ab106a67d22164e34b1  gcc/testsuite/gcc.target/aarch64/sve/extract_4.c
  78032a462f8d255b37f9ae88a948b638  gcc/testsuite/gcc.target/aarch64/sve/extract_5.c
  05e4cf39731fb932fb11ed96cfc93adc  gcc/testsuite/gcc.target/aarch64/sve/fabd_1.c
  e09d60c9368e764045edec1b162362fb  gcc/testsuite/gcc.target/aarch64/sve/fabs_1.c
--- 61850,61859 ----
  c586ed3d32d5df8a6105efcebd07dd98  gcc/testsuite/gcc.target/aarch64/sve/extend_2.c
  4063928cf46e04fc803834e77ff45a36  gcc/testsuite/gcc.target/aarch64/sve/extend_3.c
  216fd1111249112979d7d82a869c8495  gcc/testsuite/gcc.target/aarch64/sve/extend_4.c
! 04191a4d4d75417424c3d95727822922  gcc/testsuite/gcc.target/aarch64/sve/extract_1.c
! 45d4ff9780e3f5ccc2de4d60744d91e4  gcc/testsuite/gcc.target/aarch64/sve/extract_2.c
! 38ce0204158a9156bd579c55e039828a  gcc/testsuite/gcc.target/aarch64/sve/extract_3.c
! 242819b8729a14c05843c059ae623c03  gcc/testsuite/gcc.target/aarch64/sve/extract_4.c
  78032a462f8d255b37f9ae88a948b638  gcc/testsuite/gcc.target/aarch64/sve/extract_5.c
  05e4cf39731fb932fb11ed96cfc93adc  gcc/testsuite/gcc.target/aarch64/sve/fabd_1.c
  e09d60c9368e764045edec1b162362fb  gcc/testsuite/gcc.target/aarch64/sve/fabs_1.c
*************** e1ebbc13eea26781f1254af1d30baefc  gcc/te
*** 57564,57569 ****
--- 61878,61888 ----
  de76ba42542481bf5d10f04cc4a567e0  gcc/testsuite/gcc.target/aarch64/sve/fmls_1.c
  3628717788183220201dedb49380cc4e  gcc/testsuite/gcc.target/aarch64/sve/fmsb_1.c
  621f97df478d60ad2d8b4f5b792dc424  gcc/testsuite/gcc.target/aarch64/sve/fmul_1.c
+ 41c36a4cbcd85b71828eea6f21b70062  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_1.c
+ 4ccee897144f9c594cebd8dd11deebd9  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_2.c
+ f4c4689027fa4974f2d03abe27971460  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_3.c
+ 87cec4ed8085253e81cbb56604ac7d2f  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_4.c
+ 0926d8033ee319a31e8380647299d9cd  gcc/testsuite/gcc.target/aarch64/sve/fneg-abs_5.c
  321ab23efa97fd79ba7096856581ba95  gcc/testsuite/gcc.target/aarch64/sve/fneg_1.c
  d7286c7d7044caf530eb51c8265882bf  gcc/testsuite/gcc.target/aarch64/sve/fnmad_1.c
  0a35e1341e09452548284613ce871aab  gcc/testsuite/gcc.target/aarch64/sve/fnmla_1.c
*************** f18be1e7abbda4855f72a61ca0933ab7  gcc/te
*** 57578,57583 ****
--- 61897,61903 ----
  9910bd2f1261719b81a80509e3d2295d  gcc/testsuite/gcc.target/aarch64/sve/frintz_1.c
  607014dc05862a9ad4f7f4418f259f4c  gcc/testsuite/gcc.target/aarch64/sve/fsqrt_1.c
  5dcdcb3bfd4e0ede6827ac488ba11d6a  gcc/testsuite/gcc.target/aarch64/sve/fsubr_1.c
+ 3b3029334aae94b745b7fb933c8662d1  gcc/testsuite/gcc.target/aarch64/sve/gather_earlyclobber.c
  f07bba8d8481e5ecf52b8e2cb7e34fc4  gcc/testsuite/gcc.target/aarch64/sve/gather_load_1.c
  d624e2893eea113ceac2f384f150224e  gcc/testsuite/gcc.target/aarch64/sve/gather_load_10.c
  85f4fd77f528414afa59cb2cf0575f23  gcc/testsuite/gcc.target/aarch64/sve/gather_load_11.c
*************** af2c0679cfb2c0a03b5088b5ce334bb4  gcc/te
*** 57585,57592 ****
  9e0640b59b7117e989a549c055e8e25a  gcc/testsuite/gcc.target/aarch64/sve/gather_load_3.c
  edf71ec22aa704caeb6c73794bfb3278  gcc/testsuite/gcc.target/aarch64/sve/gather_load_4.c
  37f7a0ebad3296e907a905ce46e0109c  gcc/testsuite/gcc.target/aarch64/sve/gather_load_5.c
! 2bcdaab4bed8e1fe84f46779faef6ce3  gcc/testsuite/gcc.target/aarch64/sve/gather_load_6.c
! a49f7bccf3b1cd33ec538a81753fd7fe  gcc/testsuite/gcc.target/aarch64/sve/gather_load_7.c
  3a53dbbfe1c486bba0ec084703e20d00  gcc/testsuite/gcc.target/aarch64/sve/gather_load_8.c
  de47b8c7870462bd3e891ec5b9c8862f  gcc/testsuite/gcc.target/aarch64/sve/gather_load_9.c
  580097d842bf18f1c69ac34291d5d76e  gcc/testsuite/gcc.target/aarch64/sve/gather_load_extend_1.c
--- 61905,61912 ----
  9e0640b59b7117e989a549c055e8e25a  gcc/testsuite/gcc.target/aarch64/sve/gather_load_3.c
  edf71ec22aa704caeb6c73794bfb3278  gcc/testsuite/gcc.target/aarch64/sve/gather_load_4.c
  37f7a0ebad3296e907a905ce46e0109c  gcc/testsuite/gcc.target/aarch64/sve/gather_load_5.c
! 4efa920cda8a0beaa5531ad0fff38ab4  gcc/testsuite/gcc.target/aarch64/sve/gather_load_6.c
! caf9d2b52c5d867f6caa428dc91688f0  gcc/testsuite/gcc.target/aarch64/sve/gather_load_7.c
  3a53dbbfe1c486bba0ec084703e20d00  gcc/testsuite/gcc.target/aarch64/sve/gather_load_8.c
  de47b8c7870462bd3e891ec5b9c8862f  gcc/testsuite/gcc.target/aarch64/sve/gather_load_9.c
  580097d842bf18f1c69ac34291d5d76e  gcc/testsuite/gcc.target/aarch64/sve/gather_load_extend_1.c
*************** aad68f8e924a8c091e990343009eb711  gcc/te
*** 57637,57644 ****
  1ea09f2a19c46ad516d0eb5b6d131af4  gcc/testsuite/gcc.target/aarch64/sve/live_1.c
  923bb31c870842be1bdc0760f07e09fa  gcc/testsuite/gcc.target/aarch64/sve/live_1_run.c
  39ed1486d973a97f97b58e0b6c511eab  gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_1.c
! b57cf1e950e677b2e53ac70e77c99d05  gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_2.c
! f249878a64cd02127a61accf5ae9930e  gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_3.c
  ec247792b095590d0d44d2d2e2c5bf41  gcc/testsuite/gcc.target/aarch64/sve/load_extend_1.c
  e2e25f31696f4fb451930808279103d4  gcc/testsuite/gcc.target/aarch64/sve/load_extend_10.c
  790517d8cde9d2a527a49288031c31fa  gcc/testsuite/gcc.target/aarch64/sve/load_extend_2.c
--- 61957,61964 ----
  1ea09f2a19c46ad516d0eb5b6d131af4  gcc/testsuite/gcc.target/aarch64/sve/live_1.c
  923bb31c870842be1bdc0760f07e09fa  gcc/testsuite/gcc.target/aarch64/sve/live_1_run.c
  39ed1486d973a97f97b58e0b6c511eab  gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_1.c
! 34e5296f411c6f80dbfb45c513b1c13b  gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_2.c
! 8431e16e94ddc543801e583f51984bc1  gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_3.c
  ec247792b095590d0d44d2d2e2c5bf41  gcc/testsuite/gcc.target/aarch64/sve/load_extend_1.c
  e2e25f31696f4fb451930808279103d4  gcc/testsuite/gcc.target/aarch64/sve/load_extend_10.c
  790517d8cde9d2a527a49288031c31fa  gcc/testsuite/gcc.target/aarch64/sve/load_extend_2.c
*************** b201d6f9200ce2a45ee89e72a774d1d3  gcc/te
*** 57649,57655 ****
  63fcf0d5863cff9ea07dfbb9b95c1041  gcc/testsuite/gcc.target/aarch64/sve/load_extend_7.c
  2dc9127ee89ce210d758950b38467bd0  gcc/testsuite/gcc.target/aarch64/sve/load_extend_8.c
  e22444f26c2b1ba7461b38efa2a5e5de  gcc/testsuite/gcc.target/aarch64/sve/load_extend_9.c
! 9840c833aac604741afb4d328cf04733  gcc/testsuite/gcc.target/aarch64/sve/load_scalar_offset_1.c
  1a8e35632d0239051c261823b239718a  gcc/testsuite/gcc.target/aarch64/sve/logical_1.c
  2e27c74ebbef71811a06bc0d203a45ba  gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_abs.c
  ddf8a628cff7228b393f3993668b9a0a  gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_1.c
--- 61969,61975 ----
  63fcf0d5863cff9ea07dfbb9b95c1041  gcc/testsuite/gcc.target/aarch64/sve/load_extend_7.c
  2dc9127ee89ce210d758950b38467bd0  gcc/testsuite/gcc.target/aarch64/sve/load_extend_8.c
  e22444f26c2b1ba7461b38efa2a5e5de  gcc/testsuite/gcc.target/aarch64/sve/load_extend_9.c
! b54b6b857390d7eec97a3e44ca061c6b  gcc/testsuite/gcc.target/aarch64/sve/load_scalar_offset_1.c
  1a8e35632d0239051c261823b239718a  gcc/testsuite/gcc.target/aarch64/sve/logical_1.c
  2e27c74ebbef71811a06bc0d203a45ba  gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_abs.c
  ddf8a628cff7228b393f3993668b9a0a  gcc/testsuite/gcc.target/aarch64/sve/logical_unpacked_and_1.c
*************** caa2d84db90f8717a1ddcee18b4dde83  gcc/te
*** 57683,57689 ****
  98c8b2db756d72e10d401d537d30a630  gcc/testsuite/gcc.target/aarch64/sve/loop_add_1_run.c
  a7755b98be930532d1c450534277247d  gcc/testsuite/gcc.target/aarch64/sve/loop_add_2.c
  b73572201458dc7f519a8654007b2b63  gcc/testsuite/gcc.target/aarch64/sve/loop_add_3.c
! 58936882463f1ac9333d07588712c7bc  gcc/testsuite/gcc.target/aarch64/sve/loop_add_4.c
  1fc8fcef7279889004c42dd937b9fa27  gcc/testsuite/gcc.target/aarch64/sve/loop_add_4_run.c
  be71033c83a6c0e06777dbf661f03814  gcc/testsuite/gcc.target/aarch64/sve/loop_add_5.c
  51936108808de9da2be25482022737c2  gcc/testsuite/gcc.target/aarch64/sve/loop_add_5_run.c
--- 62003,62009 ----
  98c8b2db756d72e10d401d537d30a630  gcc/testsuite/gcc.target/aarch64/sve/loop_add_1_run.c
  a7755b98be930532d1c450534277247d  gcc/testsuite/gcc.target/aarch64/sve/loop_add_2.c
  b73572201458dc7f519a8654007b2b63  gcc/testsuite/gcc.target/aarch64/sve/loop_add_3.c
! 43e6f25e04a689808b96628db7957f19  gcc/testsuite/gcc.target/aarch64/sve/loop_add_4.c
  1fc8fcef7279889004c42dd937b9fa27  gcc/testsuite/gcc.target/aarch64/sve/loop_add_4_run.c
  be71033c83a6c0e06777dbf661f03814  gcc/testsuite/gcc.target/aarch64/sve/loop_add_5.c
  51936108808de9da2be25482022737c2  gcc/testsuite/gcc.target/aarch64/sve/loop_add_5_run.c
*************** ab2c2f8b2b4f63ff5400dfcc4b0cff0a  gcc/te
*** 57694,57721 ****
  2c46e65cd1570d015dba2adf995c345f  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_3.c
  314d51574d6f9db0b883b4ca323b5708  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_4.c
  b7284adec21d80573a852744d3773966  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_5.c
! 7e03eb9f8bca7ec64e92833f07e72bc1  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_6.c
! 180c63f647144505c4458c4fe8862b6b  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_7.c
  52379e5a1fc8215095293f9e8d860994  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_8.c
  649716e3727c061dd3cee9567b1ab97b  gcc/testsuite/gcc.target/aarch64/sve/mask_load_1.c
! a41a0265e55f04ac23145029381456f9  gcc/testsuite/gcc.target/aarch64/sve/mask_load_slp_1.c
  33047a915e1581d35186161bbca699ee  gcc/testsuite/gcc.target/aarch64/sve/mask_scatter_store_1.c
  606025785cdd6d1660f408e9fe34b4b3  gcc/testsuite/gcc.target/aarch64/sve/mask_scatter_store_2.c
! 314a84ea751a1268ad11fc39fa153774  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_1.c
  c90ec5ef7fda5b046b14353bb213caf1  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_1_run.c
! e961b19c15e5777e926046630acb4022  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2.c
  d9a0da227f33c19f4ede7586e9cdd9f4  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2_run.c
! 25f3f9591c3f9809f02707aceb315fd9  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3.c
  c6f6e7729d8243981389542d9dbef36d  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3_run.c
! 09e077e3570c7ad2c062051b26262984  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_4.c
  580ec4c6c7aecbe229368cee756a20c2  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_5.c
  d473d3c091bf5718e5468fecc695a99b  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_6.c
  acba09771e8ee6468a08fba21bd1baa4  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_7.c
  f6afd81cff61022210d0e6714c551848  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_8.c
! 67c54d6196051f8e71b28d8ef76a7ad6  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1.c
! f05ebe7f80a4e8416ad8fdf008aa8d5c  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1_run.c
! 3290bb92c66a4c73225425e2c4d8bf3f  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2.c
! 41b353144c8bf8e037a62c34baf98347  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2_run.c
  7b85a06dc5ecf7482ada42a97c2239c3  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_3.c
  ddd9ddbde49a4027f36a7f9bf707ac98  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_3_run.c
  392c70570ddc56c575336e2e89fe5a01  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_4.c
--- 62014,62041 ----
  2c46e65cd1570d015dba2adf995c345f  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_3.c
  314d51574d6f9db0b883b4ca323b5708  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_4.c
  b7284adec21d80573a852744d3773966  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_5.c
! 660d72314db284367b4c82d8f85ac2dc  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_6.c
! d08dd988ab1240d1f0f8c0944aeaab55  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_7.c
  52379e5a1fc8215095293f9e8d860994  gcc/testsuite/gcc.target/aarch64/sve/mask_gather_load_8.c
  649716e3727c061dd3cee9567b1ab97b  gcc/testsuite/gcc.target/aarch64/sve/mask_load_1.c
! f6a3d086c2e96143317e844a1a523358  gcc/testsuite/gcc.target/aarch64/sve/mask_load_slp_1.c
  33047a915e1581d35186161bbca699ee  gcc/testsuite/gcc.target/aarch64/sve/mask_scatter_store_1.c
  606025785cdd6d1660f408e9fe34b4b3  gcc/testsuite/gcc.target/aarch64/sve/mask_scatter_store_2.c
! 6435a77169223a73d106e971c2bade6a  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_1.c
  c90ec5ef7fda5b046b14353bb213caf1  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_1_run.c
! 8f33dc01246dcbcf08c4b83e11e06376  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2.c
  d9a0da227f33c19f4ede7586e9cdd9f4  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2_run.c
! 08a65fc44b51d8c3a210ae3018b7e037  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3.c
  c6f6e7729d8243981389542d9dbef36d  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3_run.c
! 1162186d2a12aae5acdb0fbe081f21fd  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_4.c
  580ec4c6c7aecbe229368cee756a20c2  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_5.c
  d473d3c091bf5718e5468fecc695a99b  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_6.c
  acba09771e8ee6468a08fba21bd1baa4  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_7.c
  f6afd81cff61022210d0e6714c551848  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_8.c
! 4ea08d2d72af1117d45b2195458f4299  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1.c
! 38ffd815aa759a03b1b206a9a582f8c0  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1_run.c
! e01002356bed608ea8599c89faffa8ba  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2.c
! 9b7a0568fab63b9d9e9667fdbb2dcc94  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2_run.c
  7b85a06dc5ecf7482ada42a97c2239c3  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_3.c
  ddd9ddbde49a4027f36a7f9bf707ac98  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_3_run.c
  392c70570ddc56c575336e2e89fe5a01  gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_4.c
*************** c1b4210e7c857e81f9f5dd17c8019137  gcc/te
*** 57755,57761 ****
  8544826a8b7a261158f7b83af125df56  gcc/testsuite/gcc.target/aarch64/sve/nlogical_1_run.c
  746ca7f5666b70779bb2d11b745cb684  gcc/testsuite/gcc.target/aarch64/sve/nopeel_1.c
  82a96e648c528899d2018dd434c8c574  gcc/testsuite/gcc.target/aarch64/sve/override_sve_width_1.c
! f4d1dc52818ef38f2d1b92484a8e97f6  gcc/testsuite/gcc.target/aarch64/sve/pack_1.c
  d3c80688ca6e46a07411a695aff6365c  gcc/testsuite/gcc.target/aarch64/sve/pack_1_run.c
  a560e8d33bc4b495e1f23d0645271de2  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_signed_1.c
  40250c68c4a2717b364222c87b1065a7  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_signed_1_run.c
--- 62075,62081 ----
  8544826a8b7a261158f7b83af125df56  gcc/testsuite/gcc.target/aarch64/sve/nlogical_1_run.c
  746ca7f5666b70779bb2d11b745cb684  gcc/testsuite/gcc.target/aarch64/sve/nopeel_1.c
  82a96e648c528899d2018dd434c8c574  gcc/testsuite/gcc.target/aarch64/sve/override_sve_width_1.c
! 88297aa00c0ea56bf3fce0f8ccae0962  gcc/testsuite/gcc.target/aarch64/sve/pack_1.c
  d3c80688ca6e46a07411a695aff6365c  gcc/testsuite/gcc.target/aarch64/sve/pack_1_run.c
  a560e8d33bc4b495e1f23d0645271de2  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_signed_1.c
  40250c68c4a2717b364222c87b1065a7  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_signed_1_run.c
*************** bd0ea7412913a5ce083ddea4613bd169  gcc/te
*** 57764,57835 ****
  fa06e7238dbd52dd10fcbc8218d6f455  gcc/testsuite/gcc.target/aarch64/sve/pack_float_1.c
  f73856c9978f65aed41f7a5c062f010a  gcc/testsuite/gcc.target/aarch64/sve/pack_float_1_run.c
  3767d9f5b48765e1ea663d93605a0b14  gcc/testsuite/gcc.target/aarch64/sve/part_vect_single_iter_epilog.c
! 3d753238fd574c5bbbbb5420eeefc339  gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
! 32297ab4eebb8c660c35d34c167b3298  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c
! 248fda9300aa4a9871796c24beae3e58  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_2.c
  eb3818ec16fadffb1ecf19d7a7d01030  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_3.c
  16aa5dcc140f25f14cdc5b421698530a  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_4.c
  45157b3952d31d2c228377d21fcbed41  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_5.c
  10c9afddcc698e3655198dff861f166c  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_6.c
  36242c5a4392d2462c973902d248be24  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_7.c
! 0ef53d7274adba3503817829ea0762a9  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_1.c
  9a0c1a30e339f10b2eff5d87d97a3d2e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_10.c
  b5855d38ae62afe76597bfbf06293bcc  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_11_nosc.c
  9a99d36b0e07041bce9440421b0a8731  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_11_sc.c
! ac13e9b43b3df6f5917200078f2fbd6d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_2.c
! b350942794ea156fb1cca0a7dd6e84da  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_3.c
! 63477a827f1b5104d400be60a61db1c4  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_4.c
! f5c6503424b01ae1c275a0591ab74d5e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
! d8a1acf08899ffce80f8389c746004b5  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
! a2223b4754fe1cd7e4066d4206719b9d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
! eabe501598fb815f75b91aacf36143d9  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
! 9dca0aa9183a80eb4f1e2699bea13959  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
! 238d907c0774a0b6a1d6cc93752fbea9  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
! 47d891a474ca3713464519e03b8a88d1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
! db0fe9ee4073b8eaaa9448dbed96adbc  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c
! 4bbfd6378d0e6030cf0425d10ab483d7  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c
! 05a5a974a341d96ace10ac9d5fe39ab0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c
! 7cfb3a421127f6ba8afa60cfdcc38789  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c
! b488d69641207f2ab8790712fb1625af  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c
! df0c4f2a0bd377386f5abf526cbb589f  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_bf16.c
! ba1eca9e7481f2d2eb01744d31158b76  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f16.c
! 2a081e75ed47377b0409e43f932dee1f  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f32.c
! 176e45c2ff7756b6dbd16890affa5eae  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f64.c
! 0d16e14c91daae25adbed5a969c61434  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s16.c
! 70917121c185546e5c939427b9eae47f  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s32.c
! 882fbbb55ef0d32c324b89fd22e00523  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s64.c
! 9a116254c1019a9796c36f2442557491  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s8.c
! 12ce3f8f6ec4f91663022f4668c4d9b8  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u16.c
! 01f81f4bc6898f3d6f6b1af4b3375908  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u32.c
! e2c64136688704fa04cb6daa721472fb  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u64.c
! fd699fb4cb9a4a37248d34eb5c4563f8  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u8.c
! 571ea70e440a0fc89966c502b2c9ce2c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c
! 04879423c6891586b1336034e4512845  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
! 6d0234e43a0f6542222fae3b98952713  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
! eb70ff134a199bd4bb57ae497e4a416e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
! 30b31e1460e06365cda11d021d09fddf  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
! ca24333860fcdaee39a2c2a1b3c7cf06  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
! 14f41b811fc86ada4a53b68088479042  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
! 9e82bb648071aa3818deadbe2ca6ba06  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c
! afec50f7640739b5c07590403f7cfab7  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c
! 02bb122d3dfc28644f92af04008db5bd  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c
! da4594bc5ccaa65a50d85e08693ea201  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c
! c4726677fbb9b9f5d909eec5b3fdf06b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c
! cc07462904f7cfc92406e7a77da24ced  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_bf16.c
! c152f79d9d443a04e3388e3c730bdf49  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f16.c
! e7ffb5880a211c10e8dd1b3c750e6024  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f32.c
! 6be4ef3efde2d08ca28d0e8bb03e6651  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f64.c
! e17045d519b41b63ae0218945ec61476  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s16.c
! d1924e04bb846b3bed53c292e237874d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s32.c
! 17aacdb0edbf9d2fb1e56d9fbc5f7bd7  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s64.c
! b22dd5d0aa58dc0a2c44dbf21fe53ec1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s8.c
! aadf486749bb7e213db72355f1f7b3b2  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_u16.c
! 3192784d931b8c85d4f5046f7cd21c00  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_u32.c
! bf356bc102aaea9e358c1e6fd167ac33  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_u64.c
! c4312367e87e90ec515828ccf7158a4f  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_u8.c
  95b39f5e70575f426a47e83d7975f948  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_7.c
! c6aaad68f977b8e7b48c96f2b249a9ea  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_8.c
! c1874d3729012c24ca9c030a04ae2274  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_9.c
  f18202de4dff9630d08a3ca727a71cc6  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_1.c
  8ce7d348db223538fc712dc7bc5b77bb  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_2.c
  213f62d24f3c2c17933c8ff0fd0b260c  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_3.c
--- 62084,62156 ----
  fa06e7238dbd52dd10fcbc8218d6f455  gcc/testsuite/gcc.target/aarch64/sve/pack_float_1.c
  f73856c9978f65aed41f7a5c062f010a  gcc/testsuite/gcc.target/aarch64/sve/pack_float_1_run.c
  3767d9f5b48765e1ea663d93605a0b14  gcc/testsuite/gcc.target/aarch64/sve/part_vect_single_iter_epilog.c
! 226a01b9ac3be0909e01b84b78f91836  gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
! ad5ffaf025a78f32419653970427a5b5  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c
! 23815e6e344ddb0ffbd008b6b60aba7b  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_2.c
  eb3818ec16fadffb1ecf19d7a7d01030  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_3.c
  16aa5dcc140f25f14cdc5b421698530a  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_4.c
  45157b3952d31d2c228377d21fcbed41  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_5.c
  10c9afddcc698e3655198dff861f166c  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_6.c
  36242c5a4392d2462c973902d248be24  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_7.c
! 98c1201e0b11d1891ee56448228c3484  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_1.c
  9a0c1a30e339f10b2eff5d87d97a3d2e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_10.c
  b5855d38ae62afe76597bfbf06293bcc  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_11_nosc.c
  9a99d36b0e07041bce9440421b0a8731  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_11_sc.c
! 70d973fc6bb839c0a068b2525e3a4157  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_12.c
! 96c44a7276489a92013bdef346dbe7a2  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_2.c
! d5c99629f498f917b4f397397fa41fca  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_3.c
! c8d32334d9cabf8ce36d214a3f64cc83  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_4.c
! dedc0d2c92973eafdf8c1a8de6b0c429  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
! 99a09031f93f949c151488589294bfb1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
! ada863585f0231ad1c002dbbaac4a4df  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
! 10bbe772963a1e57da9ea4613d971059  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
! 8381cf08d7063b4e838fee651d4464b3  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
! 326493e79a60651abcb4a163c7d4d89b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
! 067b6b885f8c7df1cb648d4ae4db66f0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
! bdde4845a6c9d8e5e8d3857c2878a10b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c
! 2fa5f8c7865faa368294a3cf853a9a7b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c
! 7acbb40ffc5b1b088f4d9b0d5f23aed0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c
! 6115b0ad07f6dfc0c26928362853ad2e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c
! 5a6ea1d515c38f1420a531eafc688059  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c
! e9ab924d06198e4361421bd99828983c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_bf16.c
! 4f4e6cdce478774e73ad00174dd6c9b8  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f16.c
! afc8c6a245866482bbbba7a5ac5ddc81  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f32.c
! fc04d5e884c869af5dca58bc8e51ba73  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f64.c
! 5deb7d8b7d8e23302943c16027118697  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s16.c
! c4b5aa503e68bffaab9ed120e7531563  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s32.c
! 2f027eaad596a7186f1d2fdc38d84eaa  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s64.c
! 2f00b5ea369941f95268babfe652365c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_s8.c
! a81abf2c3b847d89a391aad7ea53e5f2  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u16.c
! 8b77e7189a10a9b36e346c7237af2618  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u32.c
! 97d731f6adfa7a06f618270144cd1838  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u64.c
! 036e1909d7f265b5e0f0e3abe9151c45  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u8.c
! 53937eabac82d6215c24052aa3a6787a  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c
! b7ec1766a03976b57dfa9a7c08af77fa  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
! 5001e95713f93a5038d2776c75ae6acd  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
! f56d97605deea3197f3f5dc508df26d5  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
! 035754cb03ea542937abcfed875cac20  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
! 23d1493011c19064fe79030828f04a1f  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
! c043f0ce0d21f4e0f1160148ddc6f957  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
! 70b972311310b33768ba96bef0c2c6ea  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c
! 1f27a9abc260f5c085433b42ecacc6e6  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c
! 7f5196533f2af4baa4c466f371d08806  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c
! 843ef1b1e55c975366132b153b14a205  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c
! 43163d3645153c8ba6a45048f9205b74  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c
! 93a830e134658d1f883d8e1e6cf2ef36  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_bf16.c
! 4e68464f63068967791c2c9f7ae46e5d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f16.c
! 097b0ac1dd32964b78fd1e120fbfca78  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f32.c
! 2e9f5af57e66f288349137a7f5ff528a  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f64.c
! 5fa014bf92d3facdfff830aed8117cd9  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s16.c
! 3493c19e510041f88c9cc58ec51a79e1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s32.c
! 680590483cddbb9e0c1dc33c59127a4c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s64.c
! 135e47e3206756ec54c5d3c4f65149e5  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_s8.c
! 7bb817e1e13ac9f36539086efa501782  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_u16.c
! 614a08851d743808146cab0ecb6aece2  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_u32.c
! 18918053a72fb3bbaa4e0ef0d2f587f3  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_u64.c
! c1006feea3c9b78bab24f56562463c2b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_u8.c
  95b39f5e70575f426a47e83d7975f948  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_7.c
! 67f30b172f3a75ebd579c8c1533513d1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_8.c
! 13d714787495af941d7e4d798bb6c2b4  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_9.c
  f18202de4dff9630d08a3ca727a71cc6  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_1.c
  8ce7d348db223538fc712dc7bc5b77bb  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_2.c
  213f62d24f3c2c17933c8ff0fd0b260c  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_3.c
*************** d3aa01a293830f92f6727f864fa00976  gcc/te
*** 57853,57879 ****
  8ec16762a48181a1c644507e60803511  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_1_512.c
  8ed12dccaf1d0982d88249511e700226  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_2.c
  6a25d51e9ed5331e0804b3c47b4231dd  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_3.c
! 03c459fd72fa058fea09a7503c7555ce  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4.c
! 2e8dcf9e2eae7abd8bb8d28a5beed094  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_1024.c
! 6b920e4fa798822ad925b4be4071bc14  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_128.c
! 7cb3b7ebb63e2ec0558995b2e1087c05  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_2048.c
! 0a8b81ebb820e94f9fdc39f9ecb5fb32  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_256.c
! 26f51738aedef4a588bae45eaee9462b  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_512.c
! 9d72d1c988c4e78a80b8ee0b3a938480  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5.c
! 723228b5146a714e224033075140dbd8  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_1024.c
! f6ad644581a358bedd887f960e45327f  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_128.c
! a051e2f712825a425bcdc9e6d17f8684  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_2048.c
! c2e5a7a3b703a2932d07b95008e1037a  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_256.c
! af56bf409765b4fa02bb9d8353d26208  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_512.c
  a682b6187b0053ecf787b85ac86f0569  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c
! bb8afc45690fbb5142e1b9db40954309  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_1024.c
  7b6ef7ec271fd0b76170f817228bd307  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_128.c
! a89fc8f03c0fbd6d54fa1059add55336  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_2048.c
! acacf2c6a30298a702d4d13e976921f9  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_256.c
! 9a81e122a69e8199f63345b532c4c4ec  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_512.c
  1fa844510b7fd5db54dd350675625f08  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_7.c
  857ed7eac4f7e705b0f02b5dab754025  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_8.c
! 5c7f4460743df66fe43964b789b5b504  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_9.c
  10f00aace9bc09ca8fc4843893c36c9a  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
  9c155f5b570dacfc5f7e76267ce1caee  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
  7e55c541f34c0e5a330e7788260989d9  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_le_nowrap.c
--- 62174,62200 ----
  8ec16762a48181a1c644507e60803511  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_1_512.c
  8ed12dccaf1d0982d88249511e700226  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_2.c
  6a25d51e9ed5331e0804b3c47b4231dd  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_3.c
! a1da7d87197ea07e2313567753513ab4  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4.c
! a7268f45e3d6013fa4ab1ae391622bbe  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_1024.c
! fd50708e0e982669de2862a1af7c747b  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_128.c
! d25b0ab684c415dde41b1c3ca781bf01  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_2048.c
! 1c1aaa96fff3ec3bef98560315284276  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_256.c
! f2ee25b58a368a58d4ed28519f7fb6c9  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_4_512.c
! 721d77297c404c1431b09d15c2c6e439  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5.c
! d0ed82d141451484c41ec3319cf55b09  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_1024.c
! fe732faaee450d90b9c7999c89795870  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_128.c
! 6884c7ee75c9f6825b7b2d3c15194013  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_2048.c
! 4eb2d2411e2cf82d8dc3ddbeee545815  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_256.c
! 7c0b3036a4bae3bd2ebfc43a06c021d0  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_512.c
  a682b6187b0053ecf787b85ac86f0569  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c
! 805efe28f0c53b783a6f39f4755c1d12  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_1024.c
  7b6ef7ec271fd0b76170f817228bd307  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_128.c
! 3c71fe642ab5dc2d73a707462f9803c8  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_2048.c
! c3fcb375c93a4e00808a890b375c3690  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_256.c
! 688bb27278d442ebc90d61edfb0b2f4e  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_512.c
  1fa844510b7fd5db54dd350675625f08  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_7.c
  857ed7eac4f7e705b0f02b5dab754025  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_8.c
! e84627e8e6f26a86950c5326781a2b9e  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_9.c
  10f00aace9bc09ca8fc4843893c36c9a  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
  9c155f5b570dacfc5f7e76267ce1caee  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
  7e55c541f34c0e5a330e7788260989d9  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_le_nowrap.c
*************** f7762a57c0440c80f5ca35e798f26fdc  gcc/te
*** 57887,57905 ****
  3c24d3065803cbd5911e17149adca397  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_le.c
  7512a1ef73a4c05c0ed8c65c74443ffa  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c
  9c0394621eaffa490b3862c4c5f5b600  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_le.c
! 5a58d126b993f73b3fea76950e0f5f61  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1.c
  169092757dc1c053f54c2ea37b51c838  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_1024.c
! 67d96b6d17a1f41725dcfe971688ad5c  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_128.c
  667b558d36dfdd0866e9494b62b13ae2  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_2048.c
  ccb2910c4016d12f642c73fb3f63e511  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_256.c
  a781ee1e4bfe63bd1be7a9397a847724  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_512.c
! 77e3f8f1a9a15e4520626c0f41617e44  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2.c
! e79a454266487377a5fe47ecfa638d07  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_1024.c
! 0e766d0ad01b5ae1f2470a7bc978187e  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_128.c
! f3fc0d43f234493b5b9ce5a5503f8808  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_2048.c
! e9b154bc8367ff38eb536d7d7192db9a  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_256.c
! e24fbdf33e77d28819c9e81e53b35801  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_512.c
! 51ecf8b206f222d4d7bcad650be74d53  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c
  f2456a359f3821da1bc28f9a5f7e556e  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct.h
  3bdedaf042ffb29eabe08512390ff3b9  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_1_1024.c
  80cff442b432ccbde3e763ee004ba5cb  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_1_128.c
--- 62208,62226 ----
  3c24d3065803cbd5911e17149adca397  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_le.c
  7512a1ef73a4c05c0ed8c65c74443ffa  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c
  9c0394621eaffa490b3862c4c5f5b600  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_le.c
! 6bfcf63a1d4b589a189f8674b52ccb55  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1.c
  169092757dc1c053f54c2ea37b51c838  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_1024.c
! 2769a82ba506210aef2d808b63f64317  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_128.c
  667b558d36dfdd0866e9494b62b13ae2  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_2048.c
  ccb2910c4016d12f642c73fb3f63e511  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_256.c
  a781ee1e4bfe63bd1be7a9397a847724  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_512.c
! 7d33b782b82f77fd66186a9af931d454  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2.c
! e7355b5cfe59559484918534243c9049  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_1024.c
! ddaac92d6ed896f310340ba4b5159bd8  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_128.c
! 2c7732e1259f11f699140df3db04a453  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_2048.c
! af5e35c89314c8ed21a0498d880960fa  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_256.c
! fff12dc2088f2702387133ff15077ae8  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_512.c
! 467df00c49d5cdd5a0904a0d794a6d10  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c
  f2456a359f3821da1bc28f9a5f7e556e  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct.h
  3bdedaf042ffb29eabe08512390ff3b9  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_1_1024.c
  80cff442b432ccbde3e763ee004ba5cb  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_1_128.c
*************** d3252738fa0db5bfceb3e80d9754a54f  gcc/te
*** 57911,57938 ****
  859d5154812c85cbc1e73c45328f242a  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_2048.c
  4f44041e2c506ee8f11eda5ef8e6d82a  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_256.c
  10f8dc4eefc15929b133ffd9eb7d8dcc  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_512.c
! 986a34e7b68a2172352aa179ca3ae208  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_128.c
  dbe89864fb99377871dd0d209abfd059  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_256.c
  ff2ac4b70a46e17015348c2091d8ca97  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_512.c
  4d884f04b08f8626de41656c2dc89c2b  gcc/testsuite/gcc.target/aarch64/sve/pcs/unprototyped_1.c
! 99b7f4143e0a6b547ec750423bb0c293  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_1.c
! b3011815b3b788da64ccdd5d5f1a293c  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f16.c
! dea6d7d86f74e1bb854a7065d837e623  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f32.c
! 74f6e6ab85ada9f9a20bddf94a669685  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f64.c
! 75917922d8ee6a41f5dbc6e0d83a3d17  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s16.c
! 93029968b27b0824b0dbcb5c58e2c1d6  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s32.c
! 417745a69770a2d16d737e97a2371f96  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s64.c
! 5e00038d19fe8c5e9e54ec9703485eda  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s8.c
! 4983073a7a0a269346a1265c03bad2bc  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u16.c
! 1f8f0372643209648db8396f4399363e  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u32.c
! 1543feb4e253b8bc9d69721dfc240dbc  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u64.c
! 6f5887b1b3d66690daca7a0b4475dae4  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u8.c
! c59ea4439b29072f246b45d4a85648ee  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_3_nosc.c
! 020ce426b4d717248ea44a434d65e6cc  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_3_sc.c
  57917e2d5014450641adb15f9801307e  gcc/testsuite/gcc.target/aarch64/sve/pcs/vpcs_1.c
  64e601a6c086feed3d6f413ecf0cde2b  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_1.c
  554f0eec3d39895e8e465acc9954378d  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_1_run.c
! 97ef9b0b797eff5ca0f3888fd255f6b9  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2.c
  40ef61fe1aa9144c65314b0f7a98fa78  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2_run.c
  f247489d5a83c25a52bba3f69ccf6256  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_3.c
  12e45901cb5e8fffa6c192620053ac14  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_3_run.c
--- 62232,62259 ----
  859d5154812c85cbc1e73c45328f242a  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_2048.c
  4f44041e2c506ee8f11eda5ef8e6d82a  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_256.c
  10f8dc4eefc15929b133ffd9eb7d8dcc  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_512.c
! 139d23c174acc64b4bf4cf3ef2a0fbe5  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_128.c
  dbe89864fb99377871dd0d209abfd059  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_256.c
  ff2ac4b70a46e17015348c2091d8ca97  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_512.c
  4d884f04b08f8626de41656c2dc89c2b  gcc/testsuite/gcc.target/aarch64/sve/pcs/unprototyped_1.c
! dbe533f64021d2fa4e2cf74186903196  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_1.c
! 80d14a04b840bc3a3bd811fa2114d12d  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f16.c
! 286af88e1a731089d99cbc7b1ea2e1fe  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f32.c
! f127b8b40a1ff4bcaff27aee662292e6  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f64.c
! d051fbb29828ca8034e333484fbbca74  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s16.c
! 1b829d24f5286017ea5f91ce232c890b  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s32.c
! 2a842db4f74dccbf184a4bfc67696447  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s64.c
! 891c4efe75f04b2650a60ecc278f3998  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s8.c
! c8051d438f3559bb51bdf7f23df5e8b4  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u16.c
! 3bda56f7c9d9a02448bb01c7fa1ac729  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u32.c
! 64f58d32f1f6e53fb82de95204847208  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u64.c
! be784ca9a5ddf6f066bc7915b4142d38  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u8.c
! 85a82347712f37364a3d0b53b010504a  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_3_nosc.c
! 0d2b1da457c317494bd523774a232651  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_3_sc.c
  57917e2d5014450641adb15f9801307e  gcc/testsuite/gcc.target/aarch64/sve/pcs/vpcs_1.c
  64e601a6c086feed3d6f413ecf0cde2b  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_1.c
  554f0eec3d39895e8e465acc9954378d  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_1_run.c
! d78130ede7fe7a8c472ebbcb4da07037  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2.c
  40ef61fe1aa9144c65314b0f7a98fa78  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2_run.c
  f247489d5a83c25a52bba3f69ccf6256  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_3.c
  12e45901cb5e8fffa6c192620053ac14  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_3_run.c
*************** e30fd5dcda5a72ba3b2d66a5485b282a  gcc/te
*** 57951,57970 ****
  a1eb5ddb5902496d5253fa3260ba71e1  gcc/testsuite/gcc.target/aarch64/sve/pr105197-1.c
  03657387d2c9ee82c783fb8d0980449a  gcc/testsuite/gcc.target/aarch64/sve/pr105197-2.c
  8cdf49618d3a0d6c619b66f29122607c  gcc/testsuite/gcc.target/aarch64/sve/pr106524.c
  98d66f81e990fa17cc98d71159fe3ada  gcc/testsuite/gcc.target/aarch64/sve/pr108430.c
  48482e1fc72765b58f7e50fe16705068  gcc/testsuite/gcc.target/aarch64/sve/pr108603.c
  e63ee9a8151c9691caadc8fcc81bbf26  gcc/testsuite/gcc.target/aarch64/sve/pr108608-1.c
  fca208aba0269c8218d4736a10ac6a83  gcc/testsuite/gcc.target/aarch64/sve/pr109176.c
  72b392d1da91fcaa10ed39874a05eb04  gcc/testsuite/gcc.target/aarch64/sve/pr109254.c
  bc4cb512648e75cde04a28680b1c4a89  gcc/testsuite/gcc.target/aarch64/sve/pr109505.c
  7e2aaf0806edd37415079b5c2e48b66c  gcc/testsuite/gcc.target/aarch64/sve/pr81003.c
  00b752a6e175de8b1a300df08f275461  gcc/testsuite/gcc.target/aarch64/sve/pr87563.c
  c56eeba71ad463673a1bdb30e7a94863  gcc/testsuite/gcc.target/aarch64/sve/pr87815.c
  f0e2b5504e3b6dcd97ff8a6d8549d00e  gcc/testsuite/gcc.target/aarch64/sve/pr88834.c
  6c57cf09cf91238f79720a6f44bc30e7  gcc/testsuite/gcc.target/aarch64/sve/pr88834_ld3.c
  f489c5abc2ffc3a8cc03ca0a831513a0  gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
! cade04c34d59dcc18fe0606f0bd12dda  gcc/testsuite/gcc.target/aarch64/sve/pr89007-1.c
! 58206037487584b9069bf315874db761  gcc/testsuite/gcc.target/aarch64/sve/pr89007-2.c
  524dba2cfc8aa02f6ecbcd599762ae62  gcc/testsuite/gcc.target/aarch64/sve/pr91166.c
  b8cc1762bc5a2f3599b4ca89f90fec1d  gcc/testsuite/gcc.target/aarch64/sve/pr93183.c
  69268dbafdd67918766f6fc2d133be88  gcc/testsuite/gcc.target/aarch64/sve/pr94605.c
--- 62272,62297 ----
  a1eb5ddb5902496d5253fa3260ba71e1  gcc/testsuite/gcc.target/aarch64/sve/pr105197-1.c
  03657387d2c9ee82c783fb8d0980449a  gcc/testsuite/gcc.target/aarch64/sve/pr105197-2.c
  8cdf49618d3a0d6c619b66f29122607c  gcc/testsuite/gcc.target/aarch64/sve/pr106524.c
+ eca80e3b9abf33f8e3c3b0f03259af2f  gcc/testsuite/gcc.target/aarch64/sve/pr106694.c
  98d66f81e990fa17cc98d71159fe3ada  gcc/testsuite/gcc.target/aarch64/sve/pr108430.c
  48482e1fc72765b58f7e50fe16705068  gcc/testsuite/gcc.target/aarch64/sve/pr108603.c
  e63ee9a8151c9691caadc8fcc81bbf26  gcc/testsuite/gcc.target/aarch64/sve/pr108608-1.c
  fca208aba0269c8218d4736a10ac6a83  gcc/testsuite/gcc.target/aarch64/sve/pr109176.c
  72b392d1da91fcaa10ed39874a05eb04  gcc/testsuite/gcc.target/aarch64/sve/pr109254.c
  bc4cb512648e75cde04a28680b1c4a89  gcc/testsuite/gcc.target/aarch64/sve/pr109505.c
+ d397e696c3a4e79e515c9cd8f43000eb  gcc/testsuite/gcc.target/aarch64/sve/pr109636_1.c
+ 10493f32adab7361927bfad4d72d962e  gcc/testsuite/gcc.target/aarch64/sve/pr109636_2.c
+ ea42d07119e6d0bf4a13e781c6d1367d  gcc/testsuite/gcc.target/aarch64/sve/pr110280.c
+ df238b64cc974628a48afaac0cd271a1  gcc/testsuite/gcc.target/aarch64/sve/pr112278.c
+ 1e6a531b2e65bc8f68af2fa7690637f3  gcc/testsuite/gcc.target/aarch64/sve/pr113572.c
  7e2aaf0806edd37415079b5c2e48b66c  gcc/testsuite/gcc.target/aarch64/sve/pr81003.c
  00b752a6e175de8b1a300df08f275461  gcc/testsuite/gcc.target/aarch64/sve/pr87563.c
  c56eeba71ad463673a1bdb30e7a94863  gcc/testsuite/gcc.target/aarch64/sve/pr87815.c
  f0e2b5504e3b6dcd97ff8a6d8549d00e  gcc/testsuite/gcc.target/aarch64/sve/pr88834.c
  6c57cf09cf91238f79720a6f44bc30e7  gcc/testsuite/gcc.target/aarch64/sve/pr88834_ld3.c
  f489c5abc2ffc3a8cc03ca0a831513a0  gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
! e0b78e43838c121e00d55df1fc6d615d  gcc/testsuite/gcc.target/aarch64/sve/pr89007-1.c
! 266bb71e3a0d15c0c49daba845361e82  gcc/testsuite/gcc.target/aarch64/sve/pr89007-2.c
  524dba2cfc8aa02f6ecbcd599762ae62  gcc/testsuite/gcc.target/aarch64/sve/pr91166.c
  b8cc1762bc5a2f3599b4ca89f90fec1d  gcc/testsuite/gcc.target/aarch64/sve/pr93183.c
  69268dbafdd67918766f6fc2d133be88  gcc/testsuite/gcc.target/aarch64/sve/pr94605.c
*************** b8cc1762bc5a2f3599b4ca89f90fec1d  gcc/te
*** 57974,57985 ****
  e4716fbcf4507ded08c7ba19117342af  gcc/testsuite/gcc.target/aarch64/sve/pr95523.c
  73c22821e511dff2428a3cdf38594095  gcc/testsuite/gcc.target/aarch64/sve/pr95961.c
  2bc0ea26dbeeba1d473323fc407b8d0b  gcc/testsuite/gcc.target/aarch64/sve/pr96195.c
! e842145fd4cb8d836d070b28e9f9d4d4  gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
  81df79ed0e2d1c5f6c67f08458be2c74  gcc/testsuite/gcc.target/aarch64/sve/pr96915.c
  b1c8f3af47e9cea755b055cce544806c  gcc/testsuite/gcc.target/aarch64/sve/pr97079.c
  a21cb5077461cbf23ca054f7c89a9bd8  gcc/testsuite/gcc.target/aarch64/sve/pr97092.c
  0bd0c11c70979d74de80fd698161a3be  gcc/testsuite/gcc.target/aarch64/sve/pr97141.c
  551b93da908927fd5461395f52ee36cf  gcc/testsuite/gcc.target/aarch64/sve/pr97144.c
  feaaf48c5bd3e12bf1024ebc5d6dfdfa  gcc/testsuite/gcc.target/aarch64/sve/pr98119.c
  6c0e94c363caf9e62df35ea98b4918ed  gcc/testsuite/gcc.target/aarch64/sve/pr98177-1.c
  e64000c150bb204c31dca884ee33dd4f  gcc/testsuite/gcc.target/aarch64/sve/pr98177-2.c
--- 62301,62313 ----
  e4716fbcf4507ded08c7ba19117342af  gcc/testsuite/gcc.target/aarch64/sve/pr95523.c
  73c22821e511dff2428a3cdf38594095  gcc/testsuite/gcc.target/aarch64/sve/pr95961.c
  2bc0ea26dbeeba1d473323fc407b8d0b  gcc/testsuite/gcc.target/aarch64/sve/pr96195.c
! adf46d789692f755bcd2cfd35bcf7480  gcc/testsuite/gcc.target/aarch64/sve/pr96357.c
  81df79ed0e2d1c5f6c67f08458be2c74  gcc/testsuite/gcc.target/aarch64/sve/pr96915.c
  b1c8f3af47e9cea755b055cce544806c  gcc/testsuite/gcc.target/aarch64/sve/pr97079.c
  a21cb5077461cbf23ca054f7c89a9bd8  gcc/testsuite/gcc.target/aarch64/sve/pr97092.c
  0bd0c11c70979d74de80fd698161a3be  gcc/testsuite/gcc.target/aarch64/sve/pr97141.c
  551b93da908927fd5461395f52ee36cf  gcc/testsuite/gcc.target/aarch64/sve/pr97144.c
+ 52c6ecc9bb5839481a0b9229b539e8f3  gcc/testsuite/gcc.target/aarch64/sve/pr97696.c
  feaaf48c5bd3e12bf1024ebc5d6dfdfa  gcc/testsuite/gcc.target/aarch64/sve/pr98119.c
  6c0e94c363caf9e62df35ea98b4918ed  gcc/testsuite/gcc.target/aarch64/sve/pr98177-1.c
  e64000c150bb204c31dca884ee33dd4f  gcc/testsuite/gcc.target/aarch64/sve/pr98177-2.c
*************** d1c128e3b98b85fbd2989c58c4ec796d  gcc/te
*** 57995,58006 ****
  2c1a652b1133f045edf5ad7b399104ea  gcc/testsuite/gcc.target/aarch64/sve/pr99873_3.c
  a866cb5b08078d8fe7c2f8ead2f55150  gcc/testsuite/gcc.target/aarch64/sve/pr99929_1.c
  26d14a9990e480e5b2370a215688cb95  gcc/testsuite/gcc.target/aarch64/sve/pr99929_2.c
  331555427c952e0fafa4d28627ba2203  gcc/testsuite/gcc.target/aarch64/sve/pred-combine-and.c
  8827ce78fac454b1055c71e630a32f2f  gcc/testsuite/gcc.target/aarch64/sve/pred-cond-reduc.c
  08acdc830c2cfab2d6049cb71c8781cd  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-1.c
  e96a492f889ca21f0d94c0f7863bccd3  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-2.c
  1c82ca31e6643e7150d5be264a0b3f0b  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-3.c
! 079632525d7b76525b81e9a6e9583134  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-4.c
  e9e92c2ec92da9f29261bd9d1a3cace4  gcc/testsuite/gcc.target/aarch64/sve/pred_elim_1.c
  bc00a0e0dea7500ecba0544bd58c0277  gcc/testsuite/gcc.target/aarch64/sve/pred_elim_2.c
  5db11794c73b7fe99d963e6944cfc839  gcc/testsuite/gcc.target/aarch64/sve/ptest_1.c
--- 62323,62335 ----
  2c1a652b1133f045edf5ad7b399104ea  gcc/testsuite/gcc.target/aarch64/sve/pr99873_3.c
  a866cb5b08078d8fe7c2f8ead2f55150  gcc/testsuite/gcc.target/aarch64/sve/pr99929_1.c
  26d14a9990e480e5b2370a215688cb95  gcc/testsuite/gcc.target/aarch64/sve/pr99929_2.c
+ 1222024b6d31eb7974ee689bde858f96  gcc/testsuite/gcc.target/aarch64/sve/pre_cond_share_1.c
  331555427c952e0fafa4d28627ba2203  gcc/testsuite/gcc.target/aarch64/sve/pred-combine-and.c
  8827ce78fac454b1055c71e630a32f2f  gcc/testsuite/gcc.target/aarch64/sve/pred-cond-reduc.c
  08acdc830c2cfab2d6049cb71c8781cd  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-1.c
  e96a492f889ca21f0d94c0f7863bccd3  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-2.c
  1c82ca31e6643e7150d5be264a0b3f0b  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-3.c
! e84d1cb8e3ce67d9fc555c73dccf9a6f  gcc/testsuite/gcc.target/aarch64/sve/pred-not-gen-4.c
  e9e92c2ec92da9f29261bd9d1a3cace4  gcc/testsuite/gcc.target/aarch64/sve/pred_elim_1.c
  bc00a0e0dea7500ecba0544bd58c0277  gcc/testsuite/gcc.target/aarch64/sve/pred_elim_2.c
  5db11794c73b7fe99d963e6944cfc839  gcc/testsuite/gcc.target/aarch64/sve/ptest_1.c
*************** e5af8d5ddc19297c37575ca92211e116  gcc/te
*** 58026,58032 ****
  ff9d5e617831a577f203db2924357e2e  gcc/testsuite/gcc.target/aarch64/sve/reduc_2_run.c
  31589372e98f5db9b44baf71b4bf3a2b  gcc/testsuite/gcc.target/aarch64/sve/reduc_3.c
  58bd69e851293160d420a15ca08abc10  gcc/testsuite/gcc.target/aarch64/sve/reduc_3_costly.c
! 5ac3eb6536ebd805d5581e35c69af409  gcc/testsuite/gcc.target/aarch64/sve/reduc_4.c
  85d0d8ccff5261118448ec8ad481cce1  gcc/testsuite/gcc.target/aarch64/sve/reduc_5.c
  3095445690a40e55afa7db24a400e0c5  gcc/testsuite/gcc.target/aarch64/sve/reduc_6.c
  6cbd4fabf5b87a93d965dbd192f3cbcb  gcc/testsuite/gcc.target/aarch64/sve/reduc_7.c
--- 62355,62361 ----
  ff9d5e617831a577f203db2924357e2e  gcc/testsuite/gcc.target/aarch64/sve/reduc_2_run.c
  31589372e98f5db9b44baf71b4bf3a2b  gcc/testsuite/gcc.target/aarch64/sve/reduc_3.c
  58bd69e851293160d420a15ca08abc10  gcc/testsuite/gcc.target/aarch64/sve/reduc_3_costly.c
! 09f212e2cb38a84fe8800de11b5c139c  gcc/testsuite/gcc.target/aarch64/sve/reduc_4.c
  85d0d8ccff5261118448ec8ad481cce1  gcc/testsuite/gcc.target/aarch64/sve/reduc_5.c
  3095445690a40e55afa7db24a400e0c5  gcc/testsuite/gcc.target/aarch64/sve/reduc_6.c
  6cbd4fabf5b87a93d965dbd192f3cbcb  gcc/testsuite/gcc.target/aarch64/sve/reduc_7.c
*************** afdb66d32645b4f02c5999f7bd471f22  gcc/te
*** 58062,58069 ****
  3c6af3bacb63f30f2b337b7281706995  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_3.c
  8c564e4bacae3a41e86eb8680a460972  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_4.c
  53e48e06b9829b1c2e6daf346f0312f8  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_5.c
! 5ce3c75f2076695fb803677f6e3c71f4  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_6.c
! db772f767d90c626c0481f6acff078f7  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_7.c
  114dc1571da4e8f7606aba7263b3fee4  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_8.c
  78f4676039837518b1efba6bead04810  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_9.c
  e2acf93d4531b090b1da29f88375ad49  gcc/testsuite/gcc.target/aarch64/sve/sel_1.c
--- 62391,62398 ----
  3c6af3bacb63f30f2b337b7281706995  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_3.c
  8c564e4bacae3a41e86eb8680a460972  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_4.c
  53e48e06b9829b1c2e6daf346f0312f8  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_5.c
! 8f86d90d0448ca9f5f4bce4c701a3609  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_6.c
! f795b8608adfa427178133f15004c73d  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_7.c
  114dc1571da4e8f7606aba7263b3fee4  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_8.c
  78f4676039837518b1efba6bead04810  gcc/testsuite/gcc.target/aarch64/sve/scatter_store_9.c
  e2acf93d4531b090b1da29f88375ad49  gcc/testsuite/gcc.target/aarch64/sve/sel_1.c
*************** a64a595af9c7795c4df589abab70dce0  gcc/te
*** 58072,58078 ****
  c0086cbea7bf880d226cb176d078ccf1  gcc/testsuite/gcc.target/aarch64/sve/sel_4.c
  a8c77b95bd5326b0cdaee7971136285d  gcc/testsuite/gcc.target/aarch64/sve/sel_5.c
  c22e90c555fd4e08f770dd7e84a27798  gcc/testsuite/gcc.target/aarch64/sve/sel_6.c
! 885d20c1dc9e5c219f360d9622a0ce60  gcc/testsuite/gcc.target/aarch64/sve/shift_1.c
  b55f97923c0c759dae9e5c7b37c79c79  gcc/testsuite/gcc.target/aarch64/sve/shift_2.c
  ea96e0c3148179cba37c3aa8410afe8f  gcc/testsuite/gcc.target/aarch64/sve/single_1.c
  aff4971b5f3193b9e2a927dfa176b6d6  gcc/testsuite/gcc.target/aarch64/sve/single_2.c
--- 62401,62407 ----
  c0086cbea7bf880d226cb176d078ccf1  gcc/testsuite/gcc.target/aarch64/sve/sel_4.c
  a8c77b95bd5326b0cdaee7971136285d  gcc/testsuite/gcc.target/aarch64/sve/sel_5.c
  c22e90c555fd4e08f770dd7e84a27798  gcc/testsuite/gcc.target/aarch64/sve/sel_6.c
! c36c0d859d7358a7cf09605bb6f61e7a  gcc/testsuite/gcc.target/aarch64/sve/shift_1.c
  b55f97923c0c759dae9e5c7b37c79c79  gcc/testsuite/gcc.target/aarch64/sve/shift_2.c
  ea96e0c3148179cba37c3aa8410afe8f  gcc/testsuite/gcc.target/aarch64/sve/single_1.c
  aff4971b5f3193b9e2a927dfa176b6d6  gcc/testsuite/gcc.target/aarch64/sve/single_2.c
*************** c54948f7932f7edbfcf5e583707bb57a  gcc/te
*** 58094,58102 ****
  79f41ea7a893e9339ce387e58fe66fd6  gcc/testsuite/gcc.target/aarch64/sve/slp_1_run.c
  a9b0fe55793066f4a15802f6acd2e1e6  gcc/testsuite/gcc.target/aarch64/sve/slp_2.c
  b8578d07ed2dd3d31f510c026633eb78  gcc/testsuite/gcc.target/aarch64/sve/slp_2_run.c
! 87d41959a8a27007ceb47d919c9d8ff7  gcc/testsuite/gcc.target/aarch64/sve/slp_3.c
  1646974ae33b226075bbe62d628c50e1  gcc/testsuite/gcc.target/aarch64/sve/slp_3_run.c
! bfe632a8a6d2194d362499aebb7939c1  gcc/testsuite/gcc.target/aarch64/sve/slp_4.c
  d1df9198c1ceabf8c5c446a9e7974b0d  gcc/testsuite/gcc.target/aarch64/sve/slp_4_run.c
  321d0e682abd3202ff92cdf28e1100e8  gcc/testsuite/gcc.target/aarch64/sve/slp_5.c
  2d4dee8f297e8b75474d52eef5cc59ea  gcc/testsuite/gcc.target/aarch64/sve/slp_5_run.c
--- 62423,62431 ----
  79f41ea7a893e9339ce387e58fe66fd6  gcc/testsuite/gcc.target/aarch64/sve/slp_1_run.c
  a9b0fe55793066f4a15802f6acd2e1e6  gcc/testsuite/gcc.target/aarch64/sve/slp_2.c
  b8578d07ed2dd3d31f510c026633eb78  gcc/testsuite/gcc.target/aarch64/sve/slp_2_run.c
! 8240045082b3e7c6eadaa4448cd62597  gcc/testsuite/gcc.target/aarch64/sve/slp_3.c
  1646974ae33b226075bbe62d628c50e1  gcc/testsuite/gcc.target/aarch64/sve/slp_3_run.c
! e1f32d43eb3643ddcee856d6c7416b2d  gcc/testsuite/gcc.target/aarch64/sve/slp_4.c
  d1df9198c1ceabf8c5c446a9e7974b0d  gcc/testsuite/gcc.target/aarch64/sve/slp_4_run.c
  321d0e682abd3202ff92cdf28e1100e8  gcc/testsuite/gcc.target/aarch64/sve/slp_5.c
  2d4dee8f297e8b75474d52eef5cc59ea  gcc/testsuite/gcc.target/aarch64/sve/slp_5_run.c
*************** d20b7524d251213c0a38ee4072095889  gcc/te
*** 58122,58128 ****
  bcc54159505177890d20f04228b96fc3  gcc/testsuite/gcc.target/aarch64/sve/smin_1.c
  0645f95efcdf83d65444096218a05a17  gcc/testsuite/gcc.target/aarch64/sve/spill_1.c
  c741483ab050dbc5557298221d4f6535  gcc/testsuite/gcc.target/aarch64/sve/spill_2.c
! 7b2b8f018acb426552b52521bae00c42  gcc/testsuite/gcc.target/aarch64/sve/spill_3.c
  dc65fa58e389d25f2ce06865b4f3c78d  gcc/testsuite/gcc.target/aarch64/sve/spill_4.c
  7d58d6f8c4952c765dce0a4b673a7f57  gcc/testsuite/gcc.target/aarch64/sve/spill_5.c
  51778573e851b5ddaa1321ab1bbe384d  gcc/testsuite/gcc.target/aarch64/sve/spill_6.c
--- 62451,62457 ----
  bcc54159505177890d20f04228b96fc3  gcc/testsuite/gcc.target/aarch64/sve/smin_1.c
  0645f95efcdf83d65444096218a05a17  gcc/testsuite/gcc.target/aarch64/sve/spill_1.c
  c741483ab050dbc5557298221d4f6535  gcc/testsuite/gcc.target/aarch64/sve/spill_2.c
! 9d61e8489d807a0ddab5a56502080830  gcc/testsuite/gcc.target/aarch64/sve/spill_3.c
  dc65fa58e389d25f2ce06865b4f3c78d  gcc/testsuite/gcc.target/aarch64/sve/spill_4.c
  7d58d6f8c4952c765dce0a4b673a7f57  gcc/testsuite/gcc.target/aarch64/sve/spill_5.c
  51778573e851b5ddaa1321ab1bbe384d  gcc/testsuite/gcc.target/aarch64/sve/spill_6.c
*************** dc65fa58e389d25f2ce06865b4f3c78d  gcc/te
*** 58130,58139 ****
  46b3c126f564cf34f6b05d520688ac64  gcc/testsuite/gcc.target/aarch64/sve/sqrt_1.c
  3a97109aa07f35190124bbf7f1c97e74  gcc/testsuite/gcc.target/aarch64/sve/sqrt_1_run.c
  24c79cb66b332e52a6555fc4279da15e  gcc/testsuite/gcc.target/aarch64/sve/store_lane_spill_1.c
! fa54ccc091393b9b50bb9131362a3475  gcc/testsuite/gcc.target/aarch64/sve/store_scalar_offset_1.c
  181bfd966c00aa4ed6fa1aae34f53f52  gcc/testsuite/gcc.target/aarch64/sve/strided_load_1.c
  12f4989e398bbd604266bbe500309d29  gcc/testsuite/gcc.target/aarch64/sve/strided_load_2.c
! e1925135d38cedde6c98faa0d1341238  gcc/testsuite/gcc.target/aarch64/sve/strided_load_3.c
  4bb795bf92eab9e6860cec5ad334a41d  gcc/testsuite/gcc.target/aarch64/sve/strided_load_4.c
  d8059cb9117a068460bf24f5dba7d2f8  gcc/testsuite/gcc.target/aarch64/sve/strided_load_5.c
  6ed9e96864421958237522d59a802f8d  gcc/testsuite/gcc.target/aarch64/sve/strided_load_6.c
--- 62459,62468 ----
  46b3c126f564cf34f6b05d520688ac64  gcc/testsuite/gcc.target/aarch64/sve/sqrt_1.c
  3a97109aa07f35190124bbf7f1c97e74  gcc/testsuite/gcc.target/aarch64/sve/sqrt_1_run.c
  24c79cb66b332e52a6555fc4279da15e  gcc/testsuite/gcc.target/aarch64/sve/store_lane_spill_1.c
! bd594459c81050716629f82ccab27133  gcc/testsuite/gcc.target/aarch64/sve/store_scalar_offset_1.c
  181bfd966c00aa4ed6fa1aae34f53f52  gcc/testsuite/gcc.target/aarch64/sve/strided_load_1.c
  12f4989e398bbd604266bbe500309d29  gcc/testsuite/gcc.target/aarch64/sve/strided_load_2.c
! 001ca127b5344bafb4f914644d174d52  gcc/testsuite/gcc.target/aarch64/sve/strided_load_3.c
  4bb795bf92eab9e6860cec5ad334a41d  gcc/testsuite/gcc.target/aarch64/sve/strided_load_4.c
  d8059cb9117a068460bf24f5dba7d2f8  gcc/testsuite/gcc.target/aarch64/sve/strided_load_5.c
  6ed9e96864421958237522d59a802f8d  gcc/testsuite/gcc.target/aarch64/sve/strided_load_6.c
*************** acf037781a376e80d46dbdacfd1de583  gcc/te
*** 58141,58147 ****
  f3cb7598c2e0806a8c4a0ef095a88423  gcc/testsuite/gcc.target/aarch64/sve/strided_load_8.c
  ff8786ae6fde587cbd18b1512938785d  gcc/testsuite/gcc.target/aarch64/sve/strided_store_1.c
  175c042e0f9e9ff7613b2d4ec6b2512f  gcc/testsuite/gcc.target/aarch64/sve/strided_store_2.c
! da6262e2f652c055a06de68cab8265ca  gcc/testsuite/gcc.target/aarch64/sve/strided_store_3.c
  a421d5e1fc09e2a43ba0b51529d4676c  gcc/testsuite/gcc.target/aarch64/sve/strided_store_4.c
  6c4375f8f66f1784d2a589119a5261cc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_5.c
  21ee3e0b3b3163909b128c7c23ecf3bc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_6.c
--- 62470,62476 ----
  f3cb7598c2e0806a8c4a0ef095a88423  gcc/testsuite/gcc.target/aarch64/sve/strided_load_8.c
  ff8786ae6fde587cbd18b1512938785d  gcc/testsuite/gcc.target/aarch64/sve/strided_store_1.c
  175c042e0f9e9ff7613b2d4ec6b2512f  gcc/testsuite/gcc.target/aarch64/sve/strided_store_2.c
! b1e81372ee1a91d170f8a70bb2d1e5c2  gcc/testsuite/gcc.target/aarch64/sve/strided_store_3.c
  a421d5e1fc09e2a43ba0b51529d4676c  gcc/testsuite/gcc.target/aarch64/sve/strided_store_4.c
  6c4375f8f66f1784d2a589119a5261cc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_5.c
  21ee3e0b3b3163909b128c7c23ecf3bc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_6.c
*************** a85a20601345f1048cc1b6fe0c73f504  gcc/te
*** 58179,58185 ****
  64c09fe1827d21d05e175a6943a2d427  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_22_run.c
  19cf1f19dd08d6d04808bd1f0773a7ce  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_23.c
  23a9863cd6eacac9f7376a55c013460c  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_23_run.c
! 02e008c0ae3619e8c52012ed54eebbb1  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24.c
  8fc0784710a38cd83d666e4753cf4cec  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24_run.c
  065471df9040c5f345e64b575e067e38  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_25.c
  8585a6e5cc9377355b604e2185a211c2  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_26.c
--- 62508,62514 ----
  64c09fe1827d21d05e175a6943a2d427  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_22_run.c
  19cf1f19dd08d6d04808bd1f0773a7ce  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_23.c
  23a9863cd6eacac9f7376a55c013460c  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_23_run.c
! bf9922f4aff21ba2afb86af56429c5e3  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24.c
  8fc0784710a38cd83d666e4753cf4cec  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_24_run.c
  065471df9040c5f345e64b575e067e38  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_25.c
  8585a6e5cc9377355b604e2185a211c2  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_26.c
*************** c0e9f1053cbcbdcf665c67fcfd249122  gcc/te
*** 58210,58225 ****
  801b5710924f9c7a8d5f5892f5ef05dd  gcc/testsuite/gcc.target/aarch64/sve/truncate_1.c
  1f6a41fdf4d9fc29aaf82a61813ec5f8  gcc/testsuite/gcc.target/aarch64/sve/umax_1.c
  62d1ecc4a7e6a5ceb305c98a05813595  gcc/testsuite/gcc.target/aarch64/sve/umin_1.c
! d48fbe456a044db6f77d528c49f340ac  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_signed_1.c
  d3805ccb98774fc60783e0d714834aa0  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_signed_1_run.c
! 86f81c6caf2f36b49b15df5be29bf154  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c
  32a0ff26410cd0894dafd6f7f0d291a2  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_unsigned_1_run.c
  b57de878cb338939c71466f3393bfaf2  gcc/testsuite/gcc.target/aarch64/sve/unpack_float_1.c
  e7a3b62d81ab7c0991182b370fdfe06f  gcc/testsuite/gcc.target/aarch64/sve/unpack_float_1_run.c
! 863dc1f022e5e722d294392df91690dd  gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1.c
  0dac8ce2706a1e811d4ef39d2e7c0c52  gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1_run.c
! 36fd605fe5951150cd3be8a183550d0e  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1.c
! 7ec405f5254cd6ee7e9eaf07731797fe  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1_run.c
  f202a910bae302c6c775c55d23a33bc1  gcc/testsuite/gcc.target/aarch64/sve/unroll-1.c
  5a1bd749bf4d60baf28be6e49b1b9d4b  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c
  d876021ee15812d1dc53c0bd7c9fc144  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1_run.c
--- 62539,62554 ----
  801b5710924f9c7a8d5f5892f5ef05dd  gcc/testsuite/gcc.target/aarch64/sve/truncate_1.c
  1f6a41fdf4d9fc29aaf82a61813ec5f8  gcc/testsuite/gcc.target/aarch64/sve/umax_1.c
  62d1ecc4a7e6a5ceb305c98a05813595  gcc/testsuite/gcc.target/aarch64/sve/umin_1.c
! 66ab6f1e7c04c3d49fef403406afc328  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_signed_1.c
  d3805ccb98774fc60783e0d714834aa0  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_signed_1_run.c
! 8f91aaf06d470b496de41940f3e49d4c  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c
  32a0ff26410cd0894dafd6f7f0d291a2  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_unsigned_1_run.c
  b57de878cb338939c71466f3393bfaf2  gcc/testsuite/gcc.target/aarch64/sve/unpack_float_1.c
  e7a3b62d81ab7c0991182b370fdfe06f  gcc/testsuite/gcc.target/aarch64/sve/unpack_float_1_run.c
! 6831c41ec32a11ef4790d4d2c2a2b2ae  gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1.c
  0dac8ce2706a1e811d4ef39d2e7c0c52  gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1_run.c
! 5fc3acd66e8ad342f32e01a87a71ead4  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1.c
! 61ef61cfc6c64004c59a9698eaaf6e47  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1_run.c
  f202a910bae302c6c775c55d23a33bc1  gcc/testsuite/gcc.target/aarch64/sve/unroll-1.c
  5a1bd749bf4d60baf28be6e49b1b9d4b  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c
  d876021ee15812d1dc53c0bd7c9fc144  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1_run.c
*************** d5a8f553575071402cda9532934d1f73  gcc/te
*** 58246,58253 ****
  3d2fb4a232f381e21bad82eb408f70db  gcc/testsuite/gcc.target/aarch64/sve/var_stride_8_run.c
  a6a975a0f9a3d6c2461cd427c69e0a43  gcc/testsuite/gcc.target/aarch64/sve/vcond_10.c
  f58922b1f5d9d289c8df20273c0568d3  gcc/testsuite/gcc.target/aarch64/sve/vcond_10_run.c
! 330c5ff2794f793e876ec9588fd6d6d8  gcc/testsuite/gcc.target/aarch64/sve/vcond_11.c
! be81a4bf4b907d45c9e12dadc114a2b9  gcc/testsuite/gcc.target/aarch64/sve/vcond_11_run.c
  e9f58ff7f49efc88f6e02a3abd7c57b3  gcc/testsuite/gcc.target/aarch64/sve/vcond_12.c
  a7baf4374a452d4c69aa5bd1a8828f47  gcc/testsuite/gcc.target/aarch64/sve/vcond_12_run.c
  e75b1a176eb77ade401935c1937d86aa  gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c
--- 62575,62582 ----
  3d2fb4a232f381e21bad82eb408f70db  gcc/testsuite/gcc.target/aarch64/sve/var_stride_8_run.c
  a6a975a0f9a3d6c2461cd427c69e0a43  gcc/testsuite/gcc.target/aarch64/sve/vcond_10.c
  f58922b1f5d9d289c8df20273c0568d3  gcc/testsuite/gcc.target/aarch64/sve/vcond_10_run.c
! fa91a29c1966fde184724e0d4d381ac5  gcc/testsuite/gcc.target/aarch64/sve/vcond_11.c
! 9a6984ba404ef13688bb162b3cb8aef7  gcc/testsuite/gcc.target/aarch64/sve/vcond_11_run.c
  e9f58ff7f49efc88f6e02a3abd7c57b3  gcc/testsuite/gcc.target/aarch64/sve/vcond_12.c
  a7baf4374a452d4c69aa5bd1a8828f47  gcc/testsuite/gcc.target/aarch64/sve/vcond_12_run.c
  e75b1a176eb77ade401935c1937d86aa  gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c
*************** fbe87754cf05ae39628fa258e35d957f  gcc/te
*** 58260,58276 ****
  dd5f9825588ddadcfbe38ab5bdcd4df0  gcc/testsuite/gcc.target/aarch64/sve/vcond_16_run.c
  9e123cbd01378010565e2e2ff8437b0a  gcc/testsuite/gcc.target/aarch64/sve/vcond_17.c
  aa58567ac1c63869f31f67f66b03c29e  gcc/testsuite/gcc.target/aarch64/sve/vcond_17_run.c
! 4587a2e18a4c2d6967a7480ad4d3768a  gcc/testsuite/gcc.target/aarch64/sve/vcond_18.c
  a17f292462b7c9ae489e75c5912c5e1f  gcc/testsuite/gcc.target/aarch64/sve/vcond_18_run.c
! 16225fa3b96660e99190a665d202c094  gcc/testsuite/gcc.target/aarch64/sve/vcond_19.c
  77af94f3e8ea5e1f776d991dbeae104a  gcc/testsuite/gcc.target/aarch64/sve/vcond_19_run.c
! c4d65cea3b5f22dfd51cb63247bf221f  gcc/testsuite/gcc.target/aarch64/sve/vcond_2.c
! 47825f1dd14cf47438795eb3c1e24643  gcc/testsuite/gcc.target/aarch64/sve/vcond_20.c
  a157567552e4bb6043dc8bb91cd804d7  gcc/testsuite/gcc.target/aarch64/sve/vcond_20_run.c
  f43ef1769e91eb875072734c9c8173f1  gcc/testsuite/gcc.target/aarch64/sve/vcond_21.c
  28f80ece69ae70776205fd24d1b1aff7  gcc/testsuite/gcc.target/aarch64/sve/vcond_21_run.c
  f0f80eba8ad8cb496dcf47c07681b8c4  gcc/testsuite/gcc.target/aarch64/sve/vcond_2_run.c
! 1d26374203c365b659b39bcfeb06199e  gcc/testsuite/gcc.target/aarch64/sve/vcond_3.c
  38651e95e5b4205ca7bb3bc5b6ea8489  gcc/testsuite/gcc.target/aarch64/sve/vcond_4.c
  04d905a4165cb88d645ce34061ae95a9  gcc/testsuite/gcc.target/aarch64/sve/vcond_4_costly.c
  a97678d2ba804b4a8bec4111661eb537  gcc/testsuite/gcc.target/aarch64/sve/vcond_4_run.c
--- 62589,62605 ----
  dd5f9825588ddadcfbe38ab5bdcd4df0  gcc/testsuite/gcc.target/aarch64/sve/vcond_16_run.c
  9e123cbd01378010565e2e2ff8437b0a  gcc/testsuite/gcc.target/aarch64/sve/vcond_17.c
  aa58567ac1c63869f31f67f66b03c29e  gcc/testsuite/gcc.target/aarch64/sve/vcond_17_run.c
! 947db71e57fa2ca55c3a53bd25333369  gcc/testsuite/gcc.target/aarch64/sve/vcond_18.c
  a17f292462b7c9ae489e75c5912c5e1f  gcc/testsuite/gcc.target/aarch64/sve/vcond_18_run.c
! 0ed99c3afe8d1ad6c5cce2606d768512  gcc/testsuite/gcc.target/aarch64/sve/vcond_19.c
  77af94f3e8ea5e1f776d991dbeae104a  gcc/testsuite/gcc.target/aarch64/sve/vcond_19_run.c
! c5527dd252addf6270c0ff669fe59671  gcc/testsuite/gcc.target/aarch64/sve/vcond_2.c
! a5bd2639dbdec9fa5316483afc22214f  gcc/testsuite/gcc.target/aarch64/sve/vcond_20.c
  a157567552e4bb6043dc8bb91cd804d7  gcc/testsuite/gcc.target/aarch64/sve/vcond_20_run.c
  f43ef1769e91eb875072734c9c8173f1  gcc/testsuite/gcc.target/aarch64/sve/vcond_21.c
  28f80ece69ae70776205fd24d1b1aff7  gcc/testsuite/gcc.target/aarch64/sve/vcond_21_run.c
  f0f80eba8ad8cb496dcf47c07681b8c4  gcc/testsuite/gcc.target/aarch64/sve/vcond_2_run.c
! dc23573e95b5b4472bf1b92b19d03266  gcc/testsuite/gcc.target/aarch64/sve/vcond_3.c
  38651e95e5b4205ca7bb3bc5b6ea8489  gcc/testsuite/gcc.target/aarch64/sve/vcond_4.c
  04d905a4165cb88d645ce34061ae95a9  gcc/testsuite/gcc.target/aarch64/sve/vcond_4_costly.c
  a97678d2ba804b4a8bec4111661eb537  gcc/testsuite/gcc.target/aarch64/sve/vcond_4_run.c
*************** b01361325a97d937e4664ba86e8f8fcb  gcc/te
*** 58280,58286 ****
  dd1e6bbf22f1b03feb2bfdbae38cab23  gcc/testsuite/gcc.target/aarch64/sve/vcond_5_run.c
  2bed8848e1343554c458745945d46f89  gcc/testsuite/gcc.target/aarch64/sve/vcond_6.c
  55edfe4fea432103d150b8ab303e24b1  gcc/testsuite/gcc.target/aarch64/sve/vcond_6_run.c
! 2fef483d092a13e28a738c5092f5776d  gcc/testsuite/gcc.target/aarch64/sve/vcond_7.c
  6403005df33307601f9f49dfa419a327  gcc/testsuite/gcc.target/aarch64/sve/vcond_7_run.c
  41853b66ec152bda3c1ee2b3b885299b  gcc/testsuite/gcc.target/aarch64/sve/vcond_8.c
  5fb0645895263b97a1ef977e87ab3ff5  gcc/testsuite/gcc.target/aarch64/sve/vcond_8_run.c
--- 62609,62615 ----
  dd1e6bbf22f1b03feb2bfdbae38cab23  gcc/testsuite/gcc.target/aarch64/sve/vcond_5_run.c
  2bed8848e1343554c458745945d46f89  gcc/testsuite/gcc.target/aarch64/sve/vcond_6.c
  55edfe4fea432103d150b8ab303e24b1  gcc/testsuite/gcc.target/aarch64/sve/vcond_6_run.c
! 50adc29e65684ef8ab939dd14331e8d5  gcc/testsuite/gcc.target/aarch64/sve/vcond_7.c
  6403005df33307601f9f49dfa419a327  gcc/testsuite/gcc.target/aarch64/sve/vcond_7_run.c
  41853b66ec152bda3c1ee2b3b885299b  gcc/testsuite/gcc.target/aarch64/sve/vcond_8.c
  5fb0645895263b97a1ef977e87ab3ff5  gcc/testsuite/gcc.target/aarch64/sve/vcond_8_run.c
*************** ed24813645562316311675bf8409cfc5  gcc/te
*** 58301,58306 ****
--- 62630,62636 ----
  cbb22a935d1768837f5969eca674b5f8  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_const_single_1_run.c
  661c355d657c0e853dce72437a032ef3  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_single_1.c
  1fdea20be121da7789c290195705e989  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_single_1_run.c
+ 0c14cc7eaae54f0f371665d59952475d  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c
  f0756c53ff3a98bc41d556c52afe94e6  gcc/testsuite/gcc.target/aarch64/sve/vusdot-autovec.c
  8f996475a52aff431b850bf794a5aeb4  gcc/testsuite/gcc.target/aarch64/sve/while_1.c
  bf66f155c3e51c7d9f592a9699731758  gcc/testsuite/gcc.target/aarch64/sve/while_10.c
*************** e13b38f2990120fb563c7e3296667346  gcc/te
*** 58317,58325 ****
  1a84a5937709246fd93ca5b48868e104  gcc/testsuite/gcc.target/aarch64/sve/zip1_2.c
  c5724f6767410c7983d266d6febb0f89  gcc/testsuite/gcc.target/aarch64/sve/zip2_1.c
  2eed99c891a5aeae7979afd71257ceaa  gcc/testsuite/gcc.target/aarch64/sve/zip2_2.c
! 5a56319fc72f257af912cadbcb5d6b6f  gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
! 927268733e860b6e3776708e04d4336a  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! a50f04dc9f9e3d0a11424355f6f90870  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
  f70a8121d1df4875294cca368f9923a7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s16.c
  c218a2086e6a44bef255447d1da29b8b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s32.c
  e66b0c7936f0923b4b4c2d6f4e417206  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s64.c
--- 62647,62655 ----
  1a84a5937709246fd93ca5b48868e104  gcc/testsuite/gcc.target/aarch64/sve/zip1_2.c
  c5724f6767410c7983d266d6febb0f89  gcc/testsuite/gcc.target/aarch64/sve/zip2_1.c
  2eed99c891a5aeae7979afd71257ceaa  gcc/testsuite/gcc.target/aarch64/sve/zip2_2.c
! dc6ed7e6176ba70fbc7cd8c384eca06d  gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
! cdab2930bc48f02364930e7fab77512a  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! 239e4ce7128a96a26bbe7d1cedc5cbab  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
  f70a8121d1df4875294cca368f9923a7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s16.c
  c218a2086e6a44bef255447d1da29b8b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s32.c
  e66b0c7936f0923b4b4c2d6f4e417206  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aba_s64.c
*************** c4bc25c8f2e113ab5a32a55e0ba74a9c  gcc/te
*** 58412,58441 ****
  fe62ebda0f812ba066de42b5c9810c34  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwt_u16.c
  9a94723637fefd61d733cbf095ff7d4d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwt_u32.c
  ba7ee78cdb8348039b7574c86d1cf21f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwt_u64.c
! b70b01739b1914e3a93da3328e665442  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesd_u8.c
! 83bc3cb5f46a2393994933cf5852fdfd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aese_u8.c
! 1e72b67fc1d6ae34a897437afdf57c78  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesimc_u8.c
! 2227ad5b1fda80e77eff026126331637  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesmc_u8.c
! ab430698960208a6d67311399d05b3bc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s16.c
! 484fd2b80bac1bb6e1c2f6f13f3444af  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s32.c
! ba2ff7e5e4aa3fc2acca265e60f0f325  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s64.c
! 7a9f62d557b3b78c55c07e152d641731  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s8.c
! 897024c969b153c2bc65a8d7203dd250  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_u16.c
! b4cc32f0776b20ca3002c19ca96d3d3f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_u32.c
! 7d02df923ac3b7fd3b7d38e072a0c94b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_u64.c
! 7c848c007ba30b49f4d9b70e7e642270  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_u8.c
! da413ac3c046c88db340f99089d6e9c1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bdep_u16.c
! 951377cd380d312e7e1db5e2abcc5201  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bdep_u32.c
! 2b98d2c5904a1aa80ca72dad70436083  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bdep_u64.c
! 35ef21e8d4c7faf927b76d832a684bbe  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bdep_u8.c
! 0bc1cb6884e4e7c7002e940db31ca0d9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u16.c
! 7cfb45714a84c7dd18071bc646558207  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u32.c
! 37f81d6cb0f2f3aa67b8c8d3ee3ccf4b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u64.c
! db922c9847caea4fdc805f793abd8ca0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u8.c
! 44f3b094fe822c32c75a4c4c1802fb6b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u16.c
! 350f71992958f1b75c191ab9bcc93746  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u32.c
! fc74ce855e6deae80272a1c7fde9e71b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u64.c
! acc446962385d9e66680f3970efe1f15  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u8.c
  42b02c7a0d7ee6a48f2a6a0f85d18628  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bsl1n_s16.c
  43a527ca154d8e7e43a6b48ffe86db72  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bsl1n_s32.c
  dda91ae028361c13ba043659ff338c0a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bsl1n_s64.c
--- 62742,62771 ----
  fe62ebda0f812ba066de42b5c9810c34  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwt_u16.c
  9a94723637fefd61d733cbf095ff7d4d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwt_u32.c
  ba7ee78cdb8348039b7574c86d1cf21f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/addwt_u64.c
! 5e45a37866be4133ad4d3fa548b80193  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesd_u8.c
! effb20438dc42075bce3c0de4e5b297d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aese_u8.c
! e3f6117cf6bfb81600aeae3af01548ef  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesimc_u8.c
! def6e2e434633a418959e3a0166fcfd6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesmc_u8.c
! 4344af94c15d04783d09ce8c853d54bb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s16.c
! c482f58d8a4aec7c50bb9ec5dc1250d3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s32.c
! 76f95faf1aed97eb6c75483222b26944  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s64.c
! 459ef20c6a2c74508b42907481ab4474  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_s8.c
! 4baa9ba18ad2c8fa1cec590c68a83153  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_u16.c
! ab8c753f2777c500aa1521f5aaf46816  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_u32.c
! cc8434a1b84bf4464c6650cab1e52062  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_u64.c
! 27e50647f5fcb3ebcb9691c7f998f08e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bcax_u8.c
! 232e89c4bcb348fb3661e73a3095366e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bdep_u16.c
! 0d32924eb8ee3ceefc1ad5df543453c0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bdep_u32.c
! 05e923c51c20c99720ae845a0cb5c228  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bdep_u64.c
! a00e4d709f9f9fe01067a9812d1399d7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bdep_u8.c
! b2fdb8128997689e38cb1b498aa9f753  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u16.c
! 88191b271d2a7ae8eb674daaf16c2b43  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u32.c
! 8e0287e3ff998f5f48ce838c02b56ddc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u64.c
! 738af1ce61bd86c546aa3b7a44f43944  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bext_u8.c
! 3f0cdc2f22f735579b31ece07b532eff  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u16.c
! 18a3340ba6e132e98b16ec8a59a0e2bf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u32.c
! ca4e644b720d222224101b40fa4525a6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u64.c
! 2789ff717bc2d0bdfc410970ffcddc46  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bgrp_u8.c
  42b02c7a0d7ee6a48f2a6a0f85d18628  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bsl1n_s16.c
  43a527ca154d8e7e43a6b48ffe86db72  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bsl1n_s32.c
  dda91ae028361c13ba043659ff338c0a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/bsl1n_s64.c
*************** db120e3d590a5e951630f53234b3369e  gcc/te
*** 58522,58533 ****
  6c5ecb4d19eeadc6505fec34cee6e645  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_u32.c
  85203e9bcec9630fe7e2cbaad1840834  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_u64.c
  cc4e7ec9c7bb20ad0c4f1dc2ec63f529  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_u8.c
! 0f7d2bddf93bc48a0d18e35ba3177fec  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histcnt_s32.c
! d02888a3e01ba29f5a4fd3965d9f0dbb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histcnt_s64.c
! 5cc62e934924267845ff9f7d3f522611  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histcnt_u32.c
! d76e0e6f0af6857cf9985db774adbd1f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histcnt_u64.c
! 3658cd36b3e0ab876f0a67c202c6a84c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histseg_s8.c
! 47281dffdef49708337880e9e271c8e5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histseg_u8.c
  eb903ec1098ee79004b7351a8c77481c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsub_s16.c
  61366f34310e0bb30def73bf0d2c00b7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsub_s32.c
  dd1d4021ebc4d8525e172b0a8a694518  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsub_s64.c
--- 62852,62863 ----
  6c5ecb4d19eeadc6505fec34cee6e645  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_u32.c
  85203e9bcec9630fe7e2cbaad1840834  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_u64.c
  cc4e7ec9c7bb20ad0c4f1dc2ec63f529  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hadd_u8.c
! 190129c81f89572f44beb34c22a09750  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histcnt_s32.c
! 51713d7da5ee01dfe5924f74c27edfc0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histcnt_s64.c
! 23564431e3d051855e3aaa01634e8f48  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histcnt_u32.c
! 70a3571a9fbaf5146693f1b4fdd2be14  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histcnt_u64.c
! 37f89cea0d15a7b24e812627628acfeb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histseg_s8.c
! e15ea2f7aea3e176f36d2711a21e1dd2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/histseg_u8.c
  eb903ec1098ee79004b7351a8c77481c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsub_s16.c
  61366f34310e0bb30def73bf0d2c00b7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsub_s32.c
  dd1d4021ebc4d8525e172b0a8a694518  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsub_s64.c
*************** f16e23d85f4b1bf1c739c56f1cb191a2  gcc/te
*** 58544,58582 ****
  9b5a9a297c5b79b77ed2c0b67d1b69cd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u32.c
  8ccd672328a2d11ceaf8164f0c7c336f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u64.c
  cba769b6b5db4a7190ffd535a9a7e63b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u8.c
! 2393fd0b246319f2db55f56634e039e8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f32.c
! d37f40093b6a63965b7afcfe32c7031b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f64.c
! 13f1d0eb2f8f6c415a1212d6bf946c87  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s32.c
! b30ec8e49e706a48cd2d4a94f4faa6fe  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s64.c
! 31b5e335135a259a5366bf7ff6c05071  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u32.c
! a727998df06b040f23f6975667fe8029  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u64.c
! 4b6168cd84cb236f2e00260fd4fa03e5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s32.c
! 765496a08da61a1d0dc788c00122e90f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s64.c
! 00c2d4fe3fb15594895490941f541ec1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u32.c
! 2d3f6eb96434ae6d8f58f1ffab25e07e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u64.c
! 2e4018e6060376abd5077ca45ce49813  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s32.c
! bc2a8ac3c61c8f6dc1173d4849598916  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s64.c
! f16acef37333ab74687e180d9713fd00  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u32.c
! e13c545481d85b2d3f800d69c1c85883  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u64.c
! 91bd45127c112f7ab04595906a3fe74f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_s64.c
! a8c77ce0dc8ae5d98f0699f936e7c297  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_u64.c
! bdbe68daecadcd0e1b1b408ddc2a3a1a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s32.c
! 229005b39811c035c69a1f9e7b4432f0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s64.c
! 2d7b0c836948d0fb02a9d3b2625abcf4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u32.c
! ba4c51f58c7acd5f0751d9b5e3f21adf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u64.c
! 870fbc1caba3a587aa1b8132b0e9efbc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s32.c
! ce9fcebcaf943664ebf61abf7b4969d5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s64.c
! 406393dd1f078b6e1f71ca7c38879d99  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u32.c
! 9e3488c91c81c79be19d805493c5f9d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u64.c
! 593f72df3dd7b5b3a86510766c2f60b2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_s64.c
! 20fe315a139823d7ffe6fb2b4848d242  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_u64.c
  3b3858da743cc4a472d159cac9335700  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f16.c
  7803182f3fba07a8b946e6232aebddeb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f32.c
  ba0e2b35831f7095231c85cba3cfb584  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f64.c
! ff131edd5bb595afee8ac3c179780c6d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_s16.c
! eb1513df43097b394953817ebd006f9d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_s8.c
! 54e536ad3382ba38c0b5d0392745dc30  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_u16.c
! f182ff829f0b14c85768d996959486a5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_u8.c
  2fca98259d0459051b29033f0f46e47c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f16.c
  73a1134ee9cac492b3bde39128af78d5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f32.c
  51c88d8cb6dde7028e619f866d254f7e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f64.c
--- 62874,62912 ----
  9b5a9a297c5b79b77ed2c0b67d1b69cd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u32.c
  8ccd672328a2d11ceaf8164f0c7c336f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u64.c
  cba769b6b5db4a7190ffd535a9a7e63b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/hsubr_u8.c
! 513970c59fd27dd2bf07d28b0f24ddfd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f32.c
! 6b39035e9294c0921efe3b55edc9760c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f64.c
! ebadc36dc160d8ffc0360e8c8e81dddd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s32.c
! 8b235b99fe6f46ca010addddae970c36  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s64.c
! 9ac61c1f0593f782c84eae9faae47523  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u32.c
! e637a133c84cb7de8c650a02343e825f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u64.c
! a60ca3e79c196d63516903f8bee10109  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s32.c
! b1a7ce65192798dea38154969f6df5ce  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s64.c
! 3ebe000d098875b50540e7970ab1336b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u32.c
! 1f40af3c78532bf92655443eaef99f80  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u64.c
! f229cfd988349323c293f16886badbc9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s32.c
! 25970be550be91422a91f8b143857463  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s64.c
! 8c92f4d0ddd0369c97bda66b429547da  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u32.c
! f2e70ada4f1b7184154e4b0768615505  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u64.c
! 6ed339cfd74e4c39b350be630a8f2f84  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_s64.c
! d04882e2e37a1b88658ffa29379c1eb5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_u64.c
! b22ec6b7adb826b320b7b5b23c47ca46  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s32.c
! fbe0657b2f16c71e1084b6c953b45817  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s64.c
! cb42a0b620d3a714ae7cad3eec373cbf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u32.c
! 9e75e965810b5e165298142ea9556fd5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u64.c
! 2cdb82450495146b964a46f0861ad803  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s32.c
! a800dfc8eecbeb8b61bdf7d089f7470b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s64.c
! 2602868d6f7bf3c79995aa1d0abfd1fa  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u32.c
! 6850a76efe4fd7e7afc1659076115ad8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u64.c
! a686d38021ec5c3f87eae54413f6a7c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_s64.c
! 641ccb1b01f9bf98637eaec7c0ea4138  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_u64.c
  3b3858da743cc4a472d159cac9335700  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f16.c
  7803182f3fba07a8b946e6232aebddeb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f32.c
  ba0e2b35831f7095231c85cba3cfb584  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/logb_f64.c
! a45ecc74107527aa86e456e504eddab2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_s16.c
! 57ddfef7efff5ddc90390b41577bc375  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_s8.c
! 662bf8b466dde2596496a6fd27ae3c8f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_u16.c
! d04da08decd61cc5242b4711fd0737e2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/match_u8.c
  2fca98259d0459051b29033f0f46e47c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f16.c
  73a1134ee9cac492b3bde39128af78d5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f32.c
  51c88d8cb6dde7028e619f866d254f7e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/maxnmp_f64.c
*************** ccd242c808554f9b42425151f2707ec6  gcc/te
*** 58711,58728 ****
  3275cbbef032c93eba25f71a538a3157  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nbsl_u32.c
  107e6d8c6bc2dc7a4c9aeb9561104a9d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nbsl_u64.c
  cf6676cbf5ef438e603b7840f953d807  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nbsl_u8.c
! 8fbcb7c10ef815b25b1272280629ccb8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_s16.c
! 2a8cecee4b0f324cb83cd1df24fdac57  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_s8.c
! 354c668007825c0994072b4408eb9adc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_u16.c
! cee6d5d069d998058b7a98e297b19e97  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_u8.c
  b8f79024134838fe7655fe8257c2c4aa  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmul_u8.c
  5ed58a7f1f1f5ee101786fe59992a411  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_pair_u32.c
! 70b565fe0e6889e751625e93577e8066  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_pair_u64.c
  8af909277a0d575851896c44e304046d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_pair_u8.c
  dedebe59bcfefffcc0b6090f89683a09  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_u16.c
  c37fc2354b2295c919753d3ac845ad08  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_u64.c
  70b07e03155cb2e02bcde07b8977f5f4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_pair_u32.c
! daa856b58608054675203dc8ffae5939  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_pair_u64.c
  225cab410a9638ca54d96beb443e6386  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_pair_u8.c
  1860346512d7df08f56dabb0458109a8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_u16.c
  a4a3d7a7cb98f0d72b95131f429b2de6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_u64.c
--- 63041,63058 ----
  3275cbbef032c93eba25f71a538a3157  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nbsl_u32.c
  107e6d8c6bc2dc7a4c9aeb9561104a9d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nbsl_u64.c
  cf6676cbf5ef438e603b7840f953d807  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nbsl_u8.c
! 64132908b8bd08e7e28cc13c1ebe7eaf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_s16.c
! 1f10a15a7cdea6e526938bc921ba977d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_s8.c
! 36845e3bf5900d5a90be7656ce77f583  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_u16.c
! f2135caf646e542ba160cb5099588c04  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/nmatch_u8.c
  b8f79024134838fe7655fe8257c2c4aa  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmul_u8.c
  5ed58a7f1f1f5ee101786fe59992a411  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_pair_u32.c
! 13ab710890a30b012d70f00ddd606030  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_pair_u64.c
  8af909277a0d575851896c44e304046d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_pair_u8.c
  dedebe59bcfefffcc0b6090f89683a09  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_u16.c
  c37fc2354b2295c919753d3ac845ad08  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullb_u64.c
  70b07e03155cb2e02bcde07b8977f5f4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_pair_u32.c
! b7364c9fdc7e16ace385b61fab973037  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_pair_u64.c
  225cab410a9638ca54d96beb443e6386  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_pair_u8.c
  1860346512d7df08f56dabb0458109a8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_u16.c
  a4a3d7a7cb98f0d72b95131f429b2de6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmullt_u64.c
*************** ce9d85d1f663a89c99059331f390a83b  gcc/te
*** 58730,58755 ****
  14c9fc2b0a767b5ac248c20f85d1e802  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s32.c
  fbc69905263b1e74fa97aabff6224321  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s64.c
  01ec16a5256300b51b3e94a0421c80da  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s8.c
! d75a6be10fb0c383f877e29d239352ef  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_s16.c
! 39b349eb83d9451efe4bc644a9528d9b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_s32.c
! eb98ba904f27c4ebe5e2f973c8266654  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_s64.c
! f0717297aed270325084d82e00620a0e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_s8.c
! 8c328e1dbceb2472bbfc01884081c7a8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_u16.c
! 5dcce6d0cec9be8ad8b0da7c1f69aed7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_u32.c
! 1389d70bcdf83bcb05b389fe28a44d8f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_u64.c
! 98a5bf650c6e889234d5188683672aa1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_u8.c
  0c138ef291e422f0d46061c591556a9c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s16.c
  c8f58e0844a39c97136de11907be7821  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s32.c
  c0f9b2ea663fdef2e7de188e8766b6c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s64.c
  ee5e129bef264dd86693921cb2d5b53f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s8.c
  6423fb9e3cc9648b50854bdf34cfa5cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_lane_s32.c
  48e2b482df6a451bc3bc3b686673aebd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_lane_s64.c
! 90960d37400e020c622c1e9f758d7799  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_s16.c
! 42a15b5b19cc0d8e004eae6c814203f3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_s32.c
! d0c67bb48680621f819e0bd2b060abfb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_s64.c
! 980508933b444079d42a994058008b24  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalbt_s16.c
! f28dbd6ced023cd04851e20e9478b13f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalbt_s32.c
! 3b50cfbd0c8489b8a775ae586227693b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalbt_s64.c
  abf4aec55726b1c450ec2c8fbefb8b0b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalt_lane_s32.c
  f3c090596248f7be11f661bbb3b3ea6d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalt_lane_s64.c
  e6c7aec06e2f968f963d0ef75fee8598  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalt_s16.c
--- 63060,63085 ----
  14c9fc2b0a767b5ac248c20f85d1e802  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s32.c
  fbc69905263b1e74fa97aabff6224321  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s64.c
  01ec16a5256300b51b3e94a0421c80da  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qabs_s8.c
! 38fe15ead3a16839a8e989107f4e1a68  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_s16.c
! 4d7ee00e8d0be3d6403f6d17c7f04fbc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_s32.c
! 33bd0c0ee78a061e5e97cf45cdb4ceb1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_s64.c
! 8836b36d89882db5d1a999e01be26323  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_s8.c
! 857776ef74161419ae5d757e7db3c13c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_u16.c
! 1d54d4d598895a07dd8a4c42ff270fc6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_u32.c
! 04882f2289122bd11257dc1f7ec3c4c2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_u64.c
! b854b80734ece8b1eafef967f5ad3339  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qadd_u8.c
  0c138ef291e422f0d46061c591556a9c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s16.c
  c8f58e0844a39c97136de11907be7821  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s32.c
  c0f9b2ea663fdef2e7de188e8766b6c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s64.c
  ee5e129bef264dd86693921cb2d5b53f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qcadd_s8.c
  6423fb9e3cc9648b50854bdf34cfa5cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_lane_s32.c
  48e2b482df6a451bc3bc3b686673aebd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_lane_s64.c
! 0de461077a7c79db8bafd5e97a80275a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_s16.c
! 50526f3b3d2a475fee013536a8f1e0ae  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_s32.c
! ab7ead7371097722813370d339fe4a07  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalb_s64.c
! 2f2c252d770e8d4617ed6919d6d0c49e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalbt_s16.c
! 9967a689222e49d5781086f345ca4321  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalbt_s32.c
! 0f67f414f6c4438e11f3705a77f3f664  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalbt_s64.c
  abf4aec55726b1c450ec2c8fbefb8b0b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalt_lane_s32.c
  f3c090596248f7be11f661bbb3b3ea6d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalt_lane_s64.c
  e6c7aec06e2f968f963d0ef75fee8598  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qdmlalt_s16.c
*************** a13c7b53445e5b3f875749e3b26988de  gcc/te
*** 58872,58893 ****
  803592bd4c81aa9b2b2d9e9d5d1debc1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qshrunt_s16.c
  0afb366e52f139247f802b97fce6f56b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qshrunt_s32.c
  8916642ad205154d30cf04518e2ba360  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qshrunt_s64.c
! ed2c3ebb43d7b4e8a96e20c58e221175  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_s16.c
! ed3c3f932862f8dc251a1f9d61929999  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_s32.c
! 775704bf53a53f5d2e0f8f40c71d12ac  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_s64.c
! 1d23207383e1ffcfef2e51725468f3c6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_s8.c
! 5943dc8dedc04b3996a674a99d77d313  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_u16.c
! d78097178dbc848d99891f8fc3419055  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_u32.c
! 523f807f11554970276ea4579c02e1a4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_u64.c
! afb3c402ab6f2c4e203eca8797633302  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_u8.c
! d7d4a8977978fc41dc9c7ef0e0605a57  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_s16.c
! 67cf09316ce3746afc37a9e4411bbf73  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_s32.c
! 88ef50fa5d68faf1a36922f84f748cc5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_s64.c
! 3c8e7a74799eaacb6236933465fc0c2d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_s8.c
! 466ba5fe3a2f95496eaec562a77fdb0b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u16.c
! 99279f029193e5f0829b0caa25e81dfc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u32.c
! fc43104ac943ef59d08e0641257b1341  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u64.c
! 79fc11025713552d1a9eb096c6da7be7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u8.c
  8059055eb0a57c41396658f3e2389390  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qxtnb_s16.c
  a1ee69621a309578dbfe8d28652387bc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qxtnb_s32.c
  5dbffe202dcef31452d921fd881d6575  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qxtnb_s64.c
--- 63202,63223 ----
  803592bd4c81aa9b2b2d9e9d5d1debc1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qshrunt_s16.c
  0afb366e52f139247f802b97fce6f56b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qshrunt_s32.c
  8916642ad205154d30cf04518e2ba360  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qshrunt_s64.c
! 8c2396faaf24e8f3fb8dfd5997e56b1e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_s16.c
! 4fe354fbedb68662b06866a9beadf8c1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_s32.c
! 4f30d8b5546da4e486536d7b8b9fda15  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_s64.c
! d0e225566ce8955d0b1a900a3e02e9c7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_s8.c
! 6b650729d6c80b95e87bc782fc0a29ec  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_u16.c
! ae8d2cc61be052dd03fa309669874067  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_u32.c
! 6aa8bae0316b066b0af7af9a34bd44ab  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_u64.c
! 098011e929dfdfe13fafa7edf29f5002  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsub_u8.c
! 5dc8b7d8936b4fa8ef6537a547997d7f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_s16.c
! cde45d7e02f28fa8fe14592c4f0583c2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_s32.c
! e8d4eacb01bdfa121a0552d0f005377c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_s64.c
! 90549248dc5fee47b9c4819a7dc63c2d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_s8.c
! bb62516c0ab43b6af9fd087305bb5a70  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u16.c
! 694648c0b5513a0cdfee8e99c7fecba9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u32.c
! 835a7814483d9109524add76878a3405  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u64.c
! aa33e7daf9cac927dd67ba20e6f88be0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qsubr_u8.c
  8059055eb0a57c41396658f3e2389390  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qxtnb_s16.c
  a1ee69621a309578dbfe8d28652387bc  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qxtnb_s32.c
  5dbffe202dcef31452d921fd881d6575  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/qxtnb_s64.c
*************** e2a2dfa358458c203a3f975b8ad04f2b  gcc/te
*** 58918,58925 ****
  8c9bf8235f9c17a3825afc91daf7a51d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/raddhnt_u16.c
  d4639ecdcd782342338d7cc2128666d2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/raddhnt_u32.c
  b9b880247845019946d9397ae50a7dcf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/raddhnt_u64.c
! 75172be5802f5a8b8849db5ada9fbc3f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_s64.c
! 916b1c73053126d87b4304dcf451f179  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_u64.c
  1e60fc894c3aa822383f66ed0fae4f0d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/recpe_u32.c
  9596a6d388086fba832d8a2f53ea57c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s16.c
  10d33337c7eb8998a71c51e7f2bb3e30  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s32.c
--- 63248,63255 ----
  8c9bf8235f9c17a3825afc91daf7a51d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/raddhnt_u16.c
  d4639ecdcd782342338d7cc2128666d2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/raddhnt_u32.c
  b9b880247845019946d9397ae50a7dcf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/raddhnt_u64.c
! 96438bdfb17fb69927c45a82c26bcbd0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_s64.c
! 4b908d3cdc65630d5d194574d04a9d04  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_u64.c
  1e60fc894c3aa822383f66ed0fae4f0d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/recpe_u32.c
  9596a6d388086fba832d8a2f53ea57c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s16.c
  10d33337c7eb8998a71c51e7f2bb3e30  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s32.c
*************** f4d46281657d475f89c5acc3c984f271  gcc/te
*** 59006,59021 ****
  81821aa2ee211e51ed874d3a072106c5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/shrnt_u16.c
  6bf3d3b60b8322f773cc1675497a1395  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/shrnt_u32.c
  8d17099ed60dfec07a0e46d261de7398  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/shrnt_u64.c
! f1de9caa58351852bc30eea0c02352d9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_s16.c
! 49bbdd6fb6a5d96f9d4bab3e5689302c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_s32.c
! 60f9226e1d4a2facf16ae5434b771dc8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_s64.c
! fd6806ce2f85174b1f960a23dab960a2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_s8.c
! a5ffea43e15585b11b876f2805b59575  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_u16.c
! 3bc5411f762e7695ccf61b4f0d227f41  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_u32.c
! 2177b5fb02dfee1fe54ae019f7e63112  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_u64.c
! fd11193a22951456ee5560104f794a16  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_u8.c
! 07068325f1540265bbd5b875782340cd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sm4e_u32.c
! 459bc62ddd302e7e44a22868e2fc8a74  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sm4ekey_u32.c
  8669bcdf5d4b69068e15002b7a9dcbab  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u16.c
  758003ce0b3606de12e22bd93e65fa5a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u32.c
  1a95d35ed842e41b4bdd6a13b54ad441  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u64.c
--- 63336,63351 ----
  81821aa2ee211e51ed874d3a072106c5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/shrnt_u16.c
  6bf3d3b60b8322f773cc1675497a1395  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/shrnt_u32.c
  8d17099ed60dfec07a0e46d261de7398  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/shrnt_u64.c
! 05a4788ed91c6c672eaf338f5267f0b7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_s16.c
! fef98a1b5a8a50e19a40ffd7ec7566a2  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_s32.c
! 7683096f5ae5e7323e089f0f0b8a50d9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_s64.c
! 7cb94920f8bd85143114785ac0b56e24  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_s8.c
! 7ed4782a4b72894be73dda7c4995d6bb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_u16.c
! 8f2d0201f0ba713d63404c4b1e672367  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_u32.c
! 90e89e9d2ce82d0f889f23d9297bd2f6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_u64.c
! e891d53215e26c0c4785fafe36a8468c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sli_u8.c
! c5b11471e175d181dd735ae246dc35a1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sm4e_u32.c
! 2f87b549b1638cda81ae80545692933c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sm4ekey_u32.c
  8669bcdf5d4b69068e15002b7a9dcbab  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u16.c
  758003ce0b3606de12e22bd93e65fa5a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u32.c
  1a95d35ed842e41b4bdd6a13b54ad441  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sqadd_u64.c
*************** ecef176b7c1d8abb2bbeb9991e708be4  gcc/te
*** 59028,59057 ****
  c8509e5a42a29f334cbd93331a270e34  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u32.c
  a98f14ae85c773355054a392dbb0a937  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u64.c
  ec9ba03842defb4e71106a266a77f4d3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u8.c
! 8273e94bd463899d81b5efcfa510d0d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s16.c
! 988e7ae870ac83f135ff93038418ba19  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s32.c
! 71dd0fbbe416470217eadb165e9152c4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s64.c
! 1f726bd5fb3363c6543f795f745bdd3a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s8.c
! 295979003aa60835b6e7ca47d5022ba3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u16.c
! 07a1e024cf65899c61a14d6a80b56d6b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u32.c
! 4b39c902e2ea1d9bc76df8cf74a91ff4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u64.c
! 407e86dadd207ee599686eaf196eda4d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u8.c
! 45fa4daeb174f587d4e9f48608def225  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f32.c
! f410c89ccf0ff9a77923dfcb0ba6005c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f64.c
! 22c5c035602c55d1fa06424966772bac  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s32.c
! 38174d1d261936b5be02625cc83c144f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s64.c
! 87656881a0598acb61f3b2b8192ca530  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u32.c
! ab3f847890845c4cf054480745e824ec  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u64.c
! 52ba72e693d40ce905f079da651b3e3b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s32.c
! 239d63483def18f13d19066966c7e9ca  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s64.c
! 0fd64d3d78872b29aadd6b1254c6bc15  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u32.c
! 5caa8df9dc87781d47371d0261bb6264  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u64.c
! 25b5041e9f0ef9b6a93e6b9015ab2df4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s32.c
! c64982ccfe13566874f98604a8d5b105  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s64.c
! 5d31a088edd035c286d5cd9bcf0762b8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u32.c
! ea681d4efafe53b5c1889330eabd3184  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u64.c
! 4df3dc9f7db3d8b961acc37775c41057  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_s64.c
! 45eda703147306f8e7d491834beb527f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_u64.c
  918873d71fd9273dfd39b597eff8bf96  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s16.c
  3f6d9166b25591eb6a69da47844fefe7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s32.c
  3b12e0026faecde4c70c7c8cad5cb421  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s64.c
--- 63358,63387 ----
  c8509e5a42a29f334cbd93331a270e34  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u32.c
  a98f14ae85c773355054a392dbb0a937  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u64.c
  ec9ba03842defb4e71106a266a77f4d3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sra_u8.c
! b1d381c70678d29beb02c5dff0fa301c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s16.c
! 05faebb4b9887ef1b4db3bc2e77f966e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s32.c
! 52b5d91106192d25273084bebb3ca7f5  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s64.c
! 88ee1211c77ec3bdc80c044271d1e4be  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_s8.c
! 5ad0e229510d7785c95e7a5eb3ef233a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u16.c
! f6ff6bd0e7b905d97b24a489c76e411a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u32.c
! 1f0a3aa412ac0af0de15d393dbba84c6  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u64.c
! aca8dee6b1695eb86090868cd9b620d4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/sri_u8.c
! c945c741506cfe18e6192b7f0814a439  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f32.c
! 7e1ffd28d44eac004f137d2e84c44661  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f64.c
! 88c3b1c287ec55b17f5e20b76461ab68  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s32.c
! 4a861e267f9730814813ec1225e6e85d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s64.c
! 01554c94701f7ef3bb23c9ac65f92831  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u32.c
! 572da2dccd6c69b23ac3fb897e09e757  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u64.c
! b9454b8ad108258d36dc70a72ca457e7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s32.c
! 20fc4567375dd5f16d81cfbe3a5c9434  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s64.c
! 719384270753cdf68b292dd867ac52b4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u32.c
! 4cc6920d1677729a340d273d4631c77c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u64.c
! c312d89bbd2088e951ba0ae1661da39d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s32.c
! 8e1888f16bf4b21a46623f9010a05e46  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s64.c
! b76dbbbbc38da3a9c7706b002743bca3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u32.c
! f4fb5b3acc86a3ad9cee566820f80575  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u64.c
! 9cab9643ce3e5452aa5f508750b0410a  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_s64.c
! 0dc63dd27af7187f1fe9b470ce753d8d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_u64.c
  918873d71fd9273dfd39b597eff8bf96  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s16.c
  3f6d9166b25591eb6a69da47844fefe7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s32.c
  3b12e0026faecde4c70c7c8cad5cb421  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/subhnb_s64.c
*************** f23df8d77bb63840931d1aee39d47578  gcc/te
*** 59180,59197 ****
  f138a3da42d63bd49959d9ace6c814ab  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_2.c
  138cb696e2f9aecb8036abf684116d9a  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_3.c
  db510fed2a207b35df2126caab14bc03  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_4.c
! f51ca31da309b560c4c02fd5d28475ba  gcc/testsuite/gcc.target/aarch64/sve2/div-by-bitmask_1.c
  601e2a51cde2e0a9fd3515f4fbdf4eb7  gcc/testsuite/gcc.target/aarch64/sve2/eor3_1.c
  34c844ca053b9c871341786139fbf872  gcc/testsuite/gcc.target/aarch64/sve2/mulhrs_1.c
  b360e0ac1da1500645df64fce4fab7dd  gcc/testsuite/gcc.target/aarch64/sve2/nlogic_1.c
  4446107d252cac5778f692095515b222  gcc/testsuite/gcc.target/aarch64/sve2/nlogic_2.c
  f6df41d6d0c00a657a60617993e7fd37  gcc/testsuite/gcc.target/aarch64/sve2/pr107717.c
  10614e0cbb3e88c95f34ea133bf8898e  gcc/testsuite/gcc.target/aarch64/sve2/pr107830-1.c
  f5f6f291e9c1c848a46c8ef91ca99f58  gcc/testsuite/gcc.target/aarch64/sve2/pr107830-2.c
  3ddfd16fcbf89890fd9785fec8f0c081  gcc/testsuite/gcc.target/aarch64/sve2/shracc_1.c
  253ea1793d85a6047e9fc6e69f5a62af  gcc/testsuite/gcc.target/aarch64/sve2/whilerw_1.c
  42ba6aece1381e39342dd7cf99a96910  gcc/testsuite/gcc.target/aarch64/sve2/whilewr_1.c
  d807c78d9b80a1f49bc50cb0cae86706  gcc/testsuite/gcc.target/aarch64/sve2/whilewr_2.c
  c1ccdcf1821a2a9f689561bfc74f48dc  gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
  b10293e89ee2df8eb55e37a5c18f3bd5  gcc/testsuite/gcc.target/aarch64/symbol-range.c
  d707fbbaf0d37436be7ea3b6ac3b81d7  gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c
--- 63510,63531 ----
  f138a3da42d63bd49959d9ace6c814ab  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_2.c
  138cb696e2f9aecb8036abf684116d9a  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_3.c
  db510fed2a207b35df2126caab14bc03  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_4.c
! c0db897049451d05160e3d761c3e6da0  gcc/testsuite/gcc.target/aarch64/sve2/div-by-bitmask_1.c
  601e2a51cde2e0a9fd3515f4fbdf4eb7  gcc/testsuite/gcc.target/aarch64/sve2/eor3_1.c
+ 6699c8d574b87c7018fc5b494c65cb7f  gcc/testsuite/gcc.target/aarch64/sve2/gather_earlyclobber.c
  34c844ca053b9c871341786139fbf872  gcc/testsuite/gcc.target/aarch64/sve2/mulhrs_1.c
  b360e0ac1da1500645df64fce4fab7dd  gcc/testsuite/gcc.target/aarch64/sve2/nlogic_1.c
  4446107d252cac5778f692095515b222  gcc/testsuite/gcc.target/aarch64/sve2/nlogic_2.c
  f6df41d6d0c00a657a60617993e7fd37  gcc/testsuite/gcc.target/aarch64/sve2/pr107717.c
  10614e0cbb3e88c95f34ea133bf8898e  gcc/testsuite/gcc.target/aarch64/sve2/pr107830-1.c
  f5f6f291e9c1c848a46c8ef91ca99f58  gcc/testsuite/gcc.target/aarch64/sve2/pr107830-2.c
+ 429b387819fe31e459436020f966ae50  gcc/testsuite/gcc.target/aarch64/sve2/pr109636_1.c
  3ddfd16fcbf89890fd9785fec8f0c081  gcc/testsuite/gcc.target/aarch64/sve2/shracc_1.c
+ 8cd4d6e010de57b57d5d8fb325fa79bb  gcc/testsuite/gcc.target/aarch64/sve2/unpred_mul_1.c
  253ea1793d85a6047e9fc6e69f5a62af  gcc/testsuite/gcc.target/aarch64/sve2/whilerw_1.c
  42ba6aece1381e39342dd7cf99a96910  gcc/testsuite/gcc.target/aarch64/sve2/whilewr_1.c
  d807c78d9b80a1f49bc50cb0cae86706  gcc/testsuite/gcc.target/aarch64/sve2/whilewr_2.c
+ 7edd975b42fef37f221ec76013222098  gcc/testsuite/gcc.target/aarch64/swar_to_vec_cmp.c
  c1ccdcf1821a2a9f689561bfc74f48dc  gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
  b10293e89ee2df8eb55e37a5c18f3bd5  gcc/testsuite/gcc.target/aarch64/symbol-range.c
  d707fbbaf0d37436be7ea3b6ac3b81d7  gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c
*************** e259ba8323c6ae474eebb9f1a89e0a1d  gcc/te
*** 59211,59219 ****
  349d0154c3dbd1cf6f4537ed70cd2b88  gcc/testsuite/gcc.target/aarch64/target_attr_10.c
  bf9afeb6532edb2f9d5ea8620df5ab50  gcc/testsuite/gcc.target/aarch64/target_attr_11.c
  2a9edf7c483ff75cf1319b1811b18262  gcc/testsuite/gcc.target/aarch64/target_attr_12.c
! c850677a06284224d4f4c40ffd5e4d78  gcc/testsuite/gcc.target/aarch64/target_attr_13.c
  6ead8e56b05aa69dc2477d005100c803  gcc/testsuite/gcc.target/aarch64/target_attr_14.c
! 9d574d7da39f2900f48a62cbfc310aaa  gcc/testsuite/gcc.target/aarch64/target_attr_15.c
  639032a9f80bce937ccbcf962600a338  gcc/testsuite/gcc.target/aarch64/target_attr_17.c
  c58ba3dda55aafe8c837f58d3ba9dc9d  gcc/testsuite/gcc.target/aarch64/target_attr_18.c
  93145ff3e03510c58daa08e45866f6ba  gcc/testsuite/gcc.target/aarch64/target_attr_2.c
--- 63545,63553 ----
  349d0154c3dbd1cf6f4537ed70cd2b88  gcc/testsuite/gcc.target/aarch64/target_attr_10.c
  bf9afeb6532edb2f9d5ea8620df5ab50  gcc/testsuite/gcc.target/aarch64/target_attr_11.c
  2a9edf7c483ff75cf1319b1811b18262  gcc/testsuite/gcc.target/aarch64/target_attr_12.c
! 7057e6704db7a615c178821ca8216281  gcc/testsuite/gcc.target/aarch64/target_attr_13.c
  6ead8e56b05aa69dc2477d005100c803  gcc/testsuite/gcc.target/aarch64/target_attr_14.c
! 6a037523c688d07f9530af6ab7fbe4a7  gcc/testsuite/gcc.target/aarch64/target_attr_15.c
  639032a9f80bce937ccbcf962600a338  gcc/testsuite/gcc.target/aarch64/target_attr_17.c
  c58ba3dda55aafe8c837f58d3ba9dc9d  gcc/testsuite/gcc.target/aarch64/target_attr_18.c
  93145ff3e03510c58daa08e45866f6ba  gcc/testsuite/gcc.target/aarch64/target_attr_2.c
*************** bc008dc088ecbe464d13cb4de9d4a7b0  gcc/te
*** 59242,59263 ****
  013d0ca8f75b2646d5054bdae523ed20  gcc/testsuite/gcc.target/aarch64/test-ptr-arg-on-stack-1.c
  7857fd1254ec0bf2ed2f024fd3613f67  gcc/testsuite/gcc.target/aarch64/test_fp_attribute_1.c
  31965ecddde4343efeb7055681ec2ee1  gcc/testsuite/gcc.target/aarch64/test_fp_attribute_2.c
! 83c03cc9513699a7fa7c7ca610bc7783  gcc/testsuite/gcc.target/aarch64/test_frame_1.c
! 7af8e47c04246b91387f8ab1dea107d9  gcc/testsuite/gcc.target/aarch64/test_frame_10.c
! 1266f5f8d41e600d6d9011d551c7375f  gcc/testsuite/gcc.target/aarch64/test_frame_11.c
  cfed1de6c3a12e6d1bfaaba77c0e7100  gcc/testsuite/gcc.target/aarch64/test_frame_12.c
! c59c91f159013d73cdf4d699b8f4ae48  gcc/testsuite/gcc.target/aarch64/test_frame_13.c
  a5e6b722f4144697d90e30cfabaee788  gcc/testsuite/gcc.target/aarch64/test_frame_14.c
! 9880f8a846f56405c1be761252ad78b7  gcc/testsuite/gcc.target/aarch64/test_frame_15.c
  6c5bce43d2093b676bcbc3084394efb0  gcc/testsuite/gcc.target/aarch64/test_frame_16.c
  1558cee3b358a4686101166d3efa7561  gcc/testsuite/gcc.target/aarch64/test_frame_17.c
! d559354500ea93464e9f09bbad4b19a9  gcc/testsuite/gcc.target/aarch64/test_frame_2.c
  3b6dc13fe4d40fc07c0288cb31d3cfc5  gcc/testsuite/gcc.target/aarch64/test_frame_3.c
! 49c58d65bf066f19f7a62fd4998f8a83  gcc/testsuite/gcc.target/aarch64/test_frame_4.c
  0e8919c68871104fabfa2063b32a4595  gcc/testsuite/gcc.target/aarch64/test_frame_5.c
! 9c88da56ab2ded7e1dc2345148397c78  gcc/testsuite/gcc.target/aarch64/test_frame_6.c
! ca52d8bac43d6f8cd9d06d72159b621c  gcc/testsuite/gcc.target/aarch64/test_frame_7.c
! fe11cf3fb0485d759d8d4bf326b15cd1  gcc/testsuite/gcc.target/aarch64/test_frame_8.c
  2448073ffbe1d605c9ff8c449a4ab04c  gcc/testsuite/gcc.target/aarch64/test_frame_9.c
  e305e52e017cd5650701a9b9bac24e7e  gcc/testsuite/gcc.target/aarch64/test_frame_common.h
  f981bb5d7ae1c0cf6fecfb1807c0d512  gcc/testsuite/gcc.target/aarch64/thunderxloadpair.c
--- 63576,63597 ----
  013d0ca8f75b2646d5054bdae523ed20  gcc/testsuite/gcc.target/aarch64/test-ptr-arg-on-stack-1.c
  7857fd1254ec0bf2ed2f024fd3613f67  gcc/testsuite/gcc.target/aarch64/test_fp_attribute_1.c
  31965ecddde4343efeb7055681ec2ee1  gcc/testsuite/gcc.target/aarch64/test_fp_attribute_2.c
! dc7d2ac6c51e791d407a7bb38065e280  gcc/testsuite/gcc.target/aarch64/test_frame_1.c
! 307b44e53372c4519479a48dfbd01d23  gcc/testsuite/gcc.target/aarch64/test_frame_10.c
! 3279df7180e60c4111accafccdc9b8e0  gcc/testsuite/gcc.target/aarch64/test_frame_11.c
  cfed1de6c3a12e6d1bfaaba77c0e7100  gcc/testsuite/gcc.target/aarch64/test_frame_12.c
! 5ef6a40d4a61c0bca17e054d0e571af7  gcc/testsuite/gcc.target/aarch64/test_frame_13.c
  a5e6b722f4144697d90e30cfabaee788  gcc/testsuite/gcc.target/aarch64/test_frame_14.c
! 576b76733224038c69565bcbe03d9f46  gcc/testsuite/gcc.target/aarch64/test_frame_15.c
  6c5bce43d2093b676bcbc3084394efb0  gcc/testsuite/gcc.target/aarch64/test_frame_16.c
  1558cee3b358a4686101166d3efa7561  gcc/testsuite/gcc.target/aarch64/test_frame_17.c
! 5e7d8c8412f87dc4b8e1d4440e369e15  gcc/testsuite/gcc.target/aarch64/test_frame_2.c
  3b6dc13fe4d40fc07c0288cb31d3cfc5  gcc/testsuite/gcc.target/aarch64/test_frame_3.c
! 876852d872a721e883015b9600044c4a  gcc/testsuite/gcc.target/aarch64/test_frame_4.c
  0e8919c68871104fabfa2063b32a4595  gcc/testsuite/gcc.target/aarch64/test_frame_5.c
! 76147f92dc2edd7c8af4da9703361f58  gcc/testsuite/gcc.target/aarch64/test_frame_6.c
! d4f0527a7281831e68658ac869eb3f53  gcc/testsuite/gcc.target/aarch64/test_frame_7.c
! 5cff3820ab838755eba034e080cfb5a6  gcc/testsuite/gcc.target/aarch64/test_frame_8.c
  2448073ffbe1d605c9ff8c449a4ab04c  gcc/testsuite/gcc.target/aarch64/test_frame_9.c
  e305e52e017cd5650701a9b9bac24e7e  gcc/testsuite/gcc.target/aarch64/test_frame_common.h
  f981bb5d7ae1c0cf6fecfb1807c0d512  gcc/testsuite/gcc.target/aarch64/thunderxloadpair.c
*************** a2ccf9bfd1d0bb840b23c25e1bdec31c  gcc/te
*** 59271,59277 ****
  4d1251d696b9339c130cb783420a3ecc  gcc/testsuite/gcc.target/aarch64/tlsle32_1.c
  d7ac99c012df73ffbde36998316bf1ef  gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c
  fc2eb8ac52faed5fba0a017b858d4ae4  gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c
! 8a43a90457a76e1e8f6951c362fed0e0  gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp
  5266ac107a73e3ee1d1f44e1cda7d9f2  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c
  9c3416db2fc04c3f91b03ecae15e943e  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c
  df55bfe2c1ce46074b19b4566cedeef4  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c
--- 63605,63612 ----
  4d1251d696b9339c130cb783420a3ecc  gcc/testsuite/gcc.target/aarch64/tlsle32_1.c
  d7ac99c012df73ffbde36998316bf1ef  gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c
  fc2eb8ac52faed5fba0a017b858d4ae4  gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c
! 0afb99fcdb9951f648c24b7cbbef6b69  gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp
! 4036d83a59b4adcf9e8a4cf5a291d22e  gcc/testsuite/gcc.target/aarch64/torture/pr111677.c
  5266ac107a73e3ee1d1f44e1cda7d9f2  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c
  9c3416db2fc04c3f91b03ecae15e943e  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c
  df55bfe2c1ce46074b19b4566cedeef4  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c
*************** a5b09578629531d465aefeed46ebae10  gcc/te
*** 59302,59307 ****
--- 63637,63648 ----
  906a218fd0162c7785f09ed6656bec74  gcc/testsuite/gcc.target/aarch64/usadv16qi-dotprod.c
  f3d243dcf39853698a3cfd781d75b3d2  gcc/testsuite/gcc.target/aarch64/usadv16qi.c
  326941b744fdecb3e3a6d66433d7d18e  gcc/testsuite/gcc.target/aarch64/ushr64_1.c
+ 1b2551f6a2a4ad71124946ab90859d29  gcc/testsuite/gcc.target/aarch64/uxtl-combine-1.c
+ fb26325337fead2fbf903dcddaa84e61  gcc/testsuite/gcc.target/aarch64/uxtl-combine-2.c
+ 48882180beb059f3db88547c75fd7d82  gcc/testsuite/gcc.target/aarch64/uxtl-combine-3.c
+ 2bceca2fbb1f6f1a5ed3b923b18eeada  gcc/testsuite/gcc.target/aarch64/uxtl-combine-4.c
+ 4abc4f50096fdd86d44920c3aa722e1a  gcc/testsuite/gcc.target/aarch64/uxtl-combine-5.c
+ 1aa1d660279cc2e3cafc1861a9552507  gcc/testsuite/gcc.target/aarch64/uxtl-combine-6.c
  6e7eb81d5cf161ee308ac79e791bcce5  gcc/testsuite/gcc.target/aarch64/va_arg_1.c
  19da3d1cc391b4838b113d903a0ec3ac  gcc/testsuite/gcc.target/aarch64/va_arg_2.c
  3849c7c28bead1abc63b69ba935bd5a1  gcc/testsuite/gcc.target/aarch64/va_arg_3.c
*************** f3d243dcf39853698a3cfd781d75b3d2  gcc/te
*** 59311,59318 ****
  04bd6d209138b6065aa56466964c5d38  gcc/testsuite/gcc.target/aarch64/vabsd_s64.c
  0137e26104febeefb127214806921f5d  gcc/testsuite/gcc.target/aarch64/vaddX_high_cost.c
  dc94f6cc36939ec840efaf38cd2c5f0b  gcc/testsuite/gcc.target/aarch64/vadd_f64.c
! 248ce42670f7d6619e34e9f0e620ab1e  gcc/testsuite/gcc.target/aarch64/vadd_reduc-1.c
! 3fa674f98f53170c2ca93869bf9d2c8c  gcc/testsuite/gcc.target/aarch64/vadd_reduc-2.c
  fec967eda33c049f56db1d868caa498e  gcc/testsuite/gcc.target/aarch64/vaddv-intrinsic-compile.c
  233cac300eab2e10bb368145246a76f0  gcc/testsuite/gcc.target/aarch64/vaddv-intrinsic.c
  2c5f051a343e8c52e858f08ad4f1812c  gcc/testsuite/gcc.target/aarch64/vaddv-intrinsic.x
--- 63652,63659 ----
  04bd6d209138b6065aa56466964c5d38  gcc/testsuite/gcc.target/aarch64/vabsd_s64.c
  0137e26104febeefb127214806921f5d  gcc/testsuite/gcc.target/aarch64/vaddX_high_cost.c
  dc94f6cc36939ec840efaf38cd2c5f0b  gcc/testsuite/gcc.target/aarch64/vadd_f64.c
! 4be3d8035c51db80f8aaded8474b38e6  gcc/testsuite/gcc.target/aarch64/vadd_reduc-1.c
! 8c2a15c30b1bf9514457066944877333  gcc/testsuite/gcc.target/aarch64/vadd_reduc-2.c
  fec967eda33c049f56db1d868caa498e  gcc/testsuite/gcc.target/aarch64/vaddv-intrinsic-compile.c
  233cac300eab2e10bb368145246a76f0  gcc/testsuite/gcc.target/aarch64/vaddv-intrinsic.c
  2c5f051a343e8c52e858f08ad4f1812c  gcc/testsuite/gcc.target/aarch64/vaddv-intrinsic.x
*************** ec1f4e31dbc32ad8c510ee0d47b63019  gcc/te
*** 59337,59346 ****
--- 63678,63698 ----
  5a02fc8d0841b45c544a81856934d565  gcc/testsuite/gcc.target/aarch64/vec-init-15.c
  fe39e0171addd79f69407e9a5dd97957  gcc/testsuite/gcc.target/aarch64/vec-init-16.c
  716927e27c337fb94328f360dbc20d8d  gcc/testsuite/gcc.target/aarch64/vec-init-17.c
+ 4708e95243595b28f32a0c795a28354a  gcc/testsuite/gcc.target/aarch64/vec-init-18.c
+ afa8fab2054c54e87a7ba607a3edf2d4  gcc/testsuite/gcc.target/aarch64/vec-init-19.c
+ d75418024f450ee16a7a73711a6003a1  gcc/testsuite/gcc.target/aarch64/vec-init-20.c
+ 3ea86b4f1a8221327beda15839097483  gcc/testsuite/gcc.target/aarch64/vec-init-21.c
+ ea033577ced75cfd9d67b3cf9125dec3  gcc/testsuite/gcc.target/aarch64/vec-init-22-size.c
+ 892606c38d51e479c2acb42be081ab98  gcc/testsuite/gcc.target/aarch64/vec-init-22-speed.c
+ 29813326d297818de7e632909c908723  gcc/testsuite/gcc.target/aarch64/vec-init-22.h
  3e4c042c59f7ebd0de553ce71974d7f0  gcc/testsuite/gcc.target/aarch64/vec-init-6.c
  23056a98bd836157022df74aba0ea38d  gcc/testsuite/gcc.target/aarch64/vec-init-7.c
  a0d7ee23594a897783efec837fcc9a89  gcc/testsuite/gcc.target/aarch64/vec-init-8.c
  e7da83991e6ca968f7a645695ab5ebd7  gcc/testsuite/gcc.target/aarch64/vec-init-9.c
+ 86a847e5bf1fb5499432a6b5ad8911b4  gcc/testsuite/gcc.target/aarch64/vec-init-single-const-2.c
+ 94984b8886aab5d70d86c49c090fc10a  gcc/testsuite/gcc.target/aarch64/vec-init-single-const-be.c
+ 2a52f8c315f452dcdf472938c1cbaee5  gcc/testsuite/gcc.target/aarch64/vec-init-single-const.c
+ ea714644678a19125b30ea9d003ff65f  gcc/testsuite/gcc.target/aarch64/vec-set-zero.c
  b1c97e59631c205f913afab4e1ffde4a  gcc/testsuite/gcc.target/aarch64/vec_init_1.c
  96b0c4ebb4ed6713b9f9e7fbb787a46c  gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c
  a8bd653ddae99985293ee04dc707de34  gcc/testsuite/gcc.target/aarch64/vect-abs-compile.c
*************** a8bd653ddae99985293ee04dc707de34  gcc/te
*** 59349,59355 ****
  f5c728d57ec7b4ccd629be9ae3daa4e9  gcc/testsuite/gcc.target/aarch64/vect-add-sub-cond.c
  459f637ca04566f864e27fecd8292d26  gcc/testsuite/gcc.target/aarch64/vect-clz.c
  e17c8c4e15c789037c218893bf9161b8  gcc/testsuite/gcc.target/aarch64/vect-compile.c
! 986d69eb9a7dc04ea29856c73f985853  gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
  d7d37bd9558713b30e8774cf2b0adc67  gcc/testsuite/gcc.target/aarch64/vect-faddv-compile.c
  561fb26098c56226b672e381ee1cfb4f  gcc/testsuite/gcc.target/aarch64/vect-faddv.c
  82a1b7c6de9e1d98e38135298f34c932  gcc/testsuite/gcc.target/aarch64/vect-faddv.x
--- 63701,63708 ----
  f5c728d57ec7b4ccd629be9ae3daa4e9  gcc/testsuite/gcc.target/aarch64/vect-add-sub-cond.c
  459f637ca04566f864e27fecd8292d26  gcc/testsuite/gcc.target/aarch64/vect-clz.c
  e17c8c4e15c789037c218893bf9161b8  gcc/testsuite/gcc.target/aarch64/vect-compile.c
! 8689c2554e8b864529f3565bc73a3a83  gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
! 9236bf16cd47adcb95dc6a0916ba183c  gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch.c
  d7d37bd9558713b30e8774cf2b0adc67  gcc/testsuite/gcc.target/aarch64/vect-faddv-compile.c
  561fb26098c56226b672e381ee1cfb4f  gcc/testsuite/gcc.target/aarch64/vect-faddv.c
  82a1b7c6de9e1d98e38135298f34c932  gcc/testsuite/gcc.target/aarch64/vect-faddv.x
*************** ab6883e822bb3f1fc8d811e7e3f12d7a  gcc/te
*** 59397,59416 ****
  f4f649fed2885c785319cab7327c85be  gcc/testsuite/gcc.target/aarch64/vect-vfmaxv.c
  775eebe5ddc5745391badfaf19b8f030  gcc/testsuite/gcc.target/aarch64/vect-vmaxv.c
  8e92dda024e7991c23b32a3f9256b71c  gcc/testsuite/gcc.target/aarch64/vect-vrnd.c
! 6e2c7398c236cc99969146f2c4cfe20a  gcc/testsuite/gcc.target/aarch64/vect-widen-add.c
  97a0d1424e83df1c9f02fdc0ca3f2eaa  gcc/testsuite/gcc.target/aarch64/vect-widen-lshift.c
! 876e0a511560986db3faa7260456eab5  gcc/testsuite/gcc.target/aarch64/vect-widen-sub.c
! 9bd1da2ef5ca73f1ef05f54dedc76156  gcc/testsuite/gcc.target/aarch64/vect-xorsign_exec.c
  8dfcd2a2d7ceb7d5140289d41af9786b  gcc/testsuite/gcc.target/aarch64/vect.c
  b693ee9ea2fea604f11a6e4a32b9b085  gcc/testsuite/gcc.target/aarch64/vect.x
  bb3045dcb1412da7658e5620448319d7  gcc/testsuite/gcc.target/aarch64/vect_combine_zeroes_1.c
! a860d5689d18fb33cd0d03f9e3e8f138  gcc/testsuite/gcc.target/aarch64/vect_copy_lane_1.c
! df24aaf6990690613ac293de5fa4ddf7  gcc/testsuite/gcc.target/aarch64/vect_ctz_1.c
  ac7e977b4868ba7e6e93eda9b315d240  gcc/testsuite/gcc.target/aarch64/vect_fp16_1.c
  02389472fa09f664f50b713065fbaa13  gcc/testsuite/gcc.target/aarch64/vect_hadd_1.h
  180ddf49a759eca015efba0ac6f72a79  gcc/testsuite/gcc.target/aarch64/vect_int32x2x4_1.c
  5b0f6e7c79a4b254e51120128bc39852  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_1.c
! 3d53cdb42f17fe88d0681a730a1cabac  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_10.c
  be0bcad7b6f027f0d5259cf6738c96f9  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_11.c
  46beb0376ce05751fd6a8936cdbba59c  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_12.c
  a5d0c322b929c93a941c1298f7e592d5  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_13.c
--- 63750,63770 ----
  f4f649fed2885c785319cab7327c85be  gcc/testsuite/gcc.target/aarch64/vect-vfmaxv.c
  775eebe5ddc5745391badfaf19b8f030  gcc/testsuite/gcc.target/aarch64/vect-vmaxv.c
  8e92dda024e7991c23b32a3f9256b71c  gcc/testsuite/gcc.target/aarch64/vect-vrnd.c
! 80b640eb2c944599f608727ca0657bd0  gcc/testsuite/gcc.target/aarch64/vect-widen-add.c
  97a0d1424e83df1c9f02fdc0ca3f2eaa  gcc/testsuite/gcc.target/aarch64/vect-widen-lshift.c
! 0affee8b5d9aba4052a58d9c1ef029ce  gcc/testsuite/gcc.target/aarch64/vect-widen-shift.c
! 0506ba18ab55283754496e897aa49358  gcc/testsuite/gcc.target/aarch64/vect-widen-sub.c
! 2ac9b778b9113bff444fb48ff0f86ab3  gcc/testsuite/gcc.target/aarch64/vect-xorsign_exec.c
  8dfcd2a2d7ceb7d5140289d41af9786b  gcc/testsuite/gcc.target/aarch64/vect.c
  b693ee9ea2fea604f11a6e4a32b9b085  gcc/testsuite/gcc.target/aarch64/vect.x
  bb3045dcb1412da7658e5620448319d7  gcc/testsuite/gcc.target/aarch64/vect_combine_zeroes_1.c
! a5a2c035661a9a7ad761f4ea2321d569  gcc/testsuite/gcc.target/aarch64/vect_copy_lane_1.c
! 95acd34bb13537f81b8384ba0dc1c619  gcc/testsuite/gcc.target/aarch64/vect_ctz_1.c
  ac7e977b4868ba7e6e93eda9b315d240  gcc/testsuite/gcc.target/aarch64/vect_fp16_1.c
  02389472fa09f664f50b713065fbaa13  gcc/testsuite/gcc.target/aarch64/vect_hadd_1.h
  180ddf49a759eca015efba0ac6f72a79  gcc/testsuite/gcc.target/aarch64/vect_int32x2x4_1.c
  5b0f6e7c79a4b254e51120128bc39852  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_1.c
! 8181974240d9e4e32374630352f00146  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_10.c
  be0bcad7b6f027f0d5259cf6738c96f9  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_11.c
  46beb0376ce05751fd6a8936cdbba59c  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_12.c
  a5d0c322b929c93a941c1298f7e592d5  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_13.c
*************** cc77051f854802fef5ab7cdbcba2891b  gcc/te
*** 59421,59428 ****
  da6f975ea446d2ef97c099ef4f1e4747  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_5.c
  ddeefe9f8aedcd982d65da2a6567ec68  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_6.c
  e3f717243f84b4f60c36d689dd643106  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_7.c
! cbad544a18cd915c15d0b4b8b80a14d2  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_8.c
! e6b9946a1986b795094a79817cb344ea  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_9.c
  3237ca045c1415650f4390fad8fe696c  gcc/testsuite/gcc.target/aarch64/vect_saddl_1.c
  84c540c8b6b235efdf39529f450865a1  gcc/testsuite/gcc.target/aarch64/vect_shadd_1.c
  8b98b40c2e7ce896247ab9ceeb2eb1cc  gcc/testsuite/gcc.target/aarch64/vect_smlal_1.c
--- 63775,63782 ----
  da6f975ea446d2ef97c099ef4f1e4747  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_5.c
  ddeefe9f8aedcd982d65da2a6567ec68  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_6.c
  e3f717243f84b4f60c36d689dd643106  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_7.c
! 9bd7cafdf46eed0e7b97ef62789b5b6c  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_8.c
! 00346a7e83e473e6ea2c26c5aceb0acb  gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_9.c
  3237ca045c1415650f4390fad8fe696c  gcc/testsuite/gcc.target/aarch64/vect_saddl_1.c
  84c540c8b6b235efdf39529f450865a1  gcc/testsuite/gcc.target/aarch64/vect_shadd_1.c
  8b98b40c2e7ce896247ab9ceeb2eb1cc  gcc/testsuite/gcc.target/aarch64/vect_smlal_1.c
*************** d8b7bf172e8cfd96979b54e10c4e2570  gcc/te
*** 59434,59443 ****
  739575d641b47c254cda6c8d642702f9  gcc/testsuite/gcc.target/aarch64/vector_initialization_nostack.c
  91822962d5a71129a8f94a0f50f2c42b  gcc/testsuite/gcc.target/aarch64/vector_intrinsics.c
  dc26c976e2b4512c622399bbaac9f150  gcc/testsuite/gcc.target/aarch64/vector_structure_intrinsics.c
! 3e4dc9db466ce6ecea8d0ef182864814  gcc/testsuite/gcc.target/aarch64/vfp-1.c
  a7efe0794d7e3b0752ef79d9b193f732  gcc/testsuite/gcc.target/aarch64/vget_high_1.c
  ba86e661dd1013208b7601f68c9e82c6  gcc/testsuite/gcc.target/aarch64/vget_low_1.c
! 4c0b1addb12780dd7cbb77fd15e991c1  gcc/testsuite/gcc.target/aarch64/vget_set_lane_1.c
  cfcefa0eda1f9dc2b828001739a59b3c  gcc/testsuite/gcc.target/aarch64/vins-1.c
  866df8192450aa2e37378d37f700681c  gcc/testsuite/gcc.target/aarch64/vins-2.c
  3847649bd45af7444086415ae9a2f95c  gcc/testsuite/gcc.target/aarch64/vins-3.c
--- 63788,63797 ----
  739575d641b47c254cda6c8d642702f9  gcc/testsuite/gcc.target/aarch64/vector_initialization_nostack.c
  91822962d5a71129a8f94a0f50f2c42b  gcc/testsuite/gcc.target/aarch64/vector_intrinsics.c
  dc26c976e2b4512c622399bbaac9f150  gcc/testsuite/gcc.target/aarch64/vector_structure_intrinsics.c
! daaae70f1b12a12a9975bc061e8b23d6  gcc/testsuite/gcc.target/aarch64/vfp-1.c
  a7efe0794d7e3b0752ef79d9b193f732  gcc/testsuite/gcc.target/aarch64/vget_high_1.c
  ba86e661dd1013208b7601f68c9e82c6  gcc/testsuite/gcc.target/aarch64/vget_low_1.c
! 2c3620b493e0117b74a619cf2dc3290b  gcc/testsuite/gcc.target/aarch64/vget_set_lane_1.c
  cfcefa0eda1f9dc2b828001739a59b3c  gcc/testsuite/gcc.target/aarch64/vins-1.c
  866df8192450aa2e37378d37f700681c  gcc/testsuite/gcc.target/aarch64/vins-2.c
  3847649bd45af7444086415ae9a2f95c  gcc/testsuite/gcc.target/aarch64/vins-3.c
*************** e916fcf0c3130fc5102d03f2d729ff64  gcc/te
*** 59484,59491 ****
  4683d4cffa583230e66ffd80229a9ff7  gcc/testsuite/gcc.target/aarch64/with-tune-march.c
  244ffe859281a44df2fa3ac62341bd75  gcc/testsuite/gcc.target/aarch64/with-tune-mcpu.c
  73648276a5cd96f9c11169ae4e70ef9c  gcc/testsuite/gcc.target/aarch64/with-tune-mtune.c
! 1a1d5b3eed51d3d70093486855498c52  gcc/testsuite/gcc.target/aarch64/xorsign.c
  69c2e660fb11d6895b17cde723e07c66  gcc/testsuite/gcc.target/aarch64/xorsign_exec.c
  ea71ffff06bc29290526b871fc5578de  gcc/testsuite/gcc.target/aarch64/xtn-combine-1.c
  cfcc9465aff8635171e854029f1c3211  gcc/testsuite/gcc.target/aarch64/xtn-combine-2.c
  af390eecb595c38839ef22a261c6b84b  gcc/testsuite/gcc.target/aarch64/xtn-combine-3.c
--- 63838,63846 ----
  4683d4cffa583230e66ffd80229a9ff7  gcc/testsuite/gcc.target/aarch64/with-tune-march.c
  244ffe859281a44df2fa3ac62341bd75  gcc/testsuite/gcc.target/aarch64/with-tune-mcpu.c
  73648276a5cd96f9c11169ae4e70ef9c  gcc/testsuite/gcc.target/aarch64/with-tune-mtune.c
! fd934708c3543d8703170d5494395bf0  gcc/testsuite/gcc.target/aarch64/xorsign.c
  69c2e660fb11d6895b17cde723e07c66  gcc/testsuite/gcc.target/aarch64/xorsign_exec.c
+ 4103f6313846ad5d7e1139c35722cc6c  gcc/testsuite/gcc.target/aarch64/xreg-vec-modes_1.c
  ea71ffff06bc29290526b871fc5578de  gcc/testsuite/gcc.target/aarch64/xtn-combine-1.c
  cfcc9465aff8635171e854029f1c3211  gcc/testsuite/gcc.target/aarch64/xtn-combine-2.c
  af390eecb595c38839ef22a261c6b84b  gcc/testsuite/gcc.target/aarch64/xtn-combine-3.c
*************** f439076be9a48a135c5fa2921d660d58  gcc/te
*** 59495,59501 ****
  17f6fb1c3dca9d7ede25b02cf419efc7  gcc/testsuite/gcc.target/alpha/20000715-1.c
  11ab80b2f79c054dcb32865854c6ea77  gcc/testsuite/gcc.target/alpha/20011018-1.c
  2d8c29ac23704a70a80831327c5e0754  gcc/testsuite/gcc.target/alpha/980217-1.c
! 49417b15338157ff889e109b265c4957  gcc/testsuite/gcc.target/alpha/alpha.exp
  a9f54382c872d8300abd0751aaf2baa7  gcc/testsuite/gcc.target/alpha/asm-1.c
  72088d2975371a0383b6fa19c63a6ee4  gcc/testsuite/gcc.target/alpha/base-1.c
  2cf5d8a00cade8200304281bbeb38cff  gcc/testsuite/gcc.target/alpha/base-2.c
--- 63850,63856 ----
  17f6fb1c3dca9d7ede25b02cf419efc7  gcc/testsuite/gcc.target/alpha/20000715-1.c
  11ab80b2f79c054dcb32865854c6ea77  gcc/testsuite/gcc.target/alpha/20011018-1.c
  2d8c29ac23704a70a80831327c5e0754  gcc/testsuite/gcc.target/alpha/980217-1.c
! e58d1a3817e0c19f8e681765346f5b49  gcc/testsuite/gcc.target/alpha/alpha.exp
  a9f54382c872d8300abd0751aaf2baa7  gcc/testsuite/gcc.target/alpha/asm-1.c
  72088d2975371a0383b6fa19c63a6ee4  gcc/testsuite/gcc.target/alpha/base-1.c
  2cf5d8a00cade8200304281bbeb38cff  gcc/testsuite/gcc.target/alpha/base-2.c
*************** a28c8b957006268fb63ac90eaea21d90  gcc/te
*** 59523,59532 ****
  5821aa7e8ef51d9e9f03077c43721bd0  gcc/testsuite/gcc.target/alpha/sqrt.c
  96315e3201d2fa31fb4cbdf30fb2ba4d  gcc/testsuite/gcc.target/arc/abitest.S
  a125f0012bfc0fdad155c9b9bcc0f009  gcc/testsuite/gcc.target/arc/abitest.h
! 317e054822141a390845a27fd6a9d594  gcc/testsuite/gcc.target/arc/add_n-combine.c
  e6be20952086b2b05a1879e41e70daac  gcc/testsuite/gcc.target/arc/and-cnst-size.c
! 85178d697db8e8d29b68336eeac19781  gcc/testsuite/gcc.target/arc/arc.exp
  3e772a00d37dc9ac78faa763e2dd058d  gcc/testsuite/gcc.target/arc/arc700-stld-hazard.c
  d0cebb0a2330505d8dd990632e8fccbf  gcc/testsuite/gcc.target/arc/barrel-shifter-1.c
  b39c0e6513279f1844d9242a3025b258  gcc/testsuite/gcc.target/arc/barrel-shifter-2.c
  67cb27f1515fdc67ab583f3729ed480e  gcc/testsuite/gcc.target/arc/bitfield.c
--- 63878,63896 ----
  5821aa7e8ef51d9e9f03077c43721bd0  gcc/testsuite/gcc.target/alpha/sqrt.c
  96315e3201d2fa31fb4cbdf30fb2ba4d  gcc/testsuite/gcc.target/arc/abitest.S
  a125f0012bfc0fdad155c9b9bcc0f009  gcc/testsuite/gcc.target/arc/abitest.h
! de6da4a52a0859ffa9a053a8c13e86cc  gcc/testsuite/gcc.target/arc/add_f-combine.c
! db888d7c4bcd1e3319426a38f93b91d6  gcc/testsuite/gcc.target/arc/add_n-combine.c
! a518cd4cde3320f6241ec570b444414f  gcc/testsuite/gcc.target/arc/adddi3-1.c
  e6be20952086b2b05a1879e41e70daac  gcc/testsuite/gcc.target/arc/and-cnst-size.c
! c39828fcc01a168f375867a4da0dd469  gcc/testsuite/gcc.target/arc/arc.exp
  3e772a00d37dc9ac78faa763e2dd058d  gcc/testsuite/gcc.target/arc/arc700-stld-hazard.c
+ 098e5a4b4da45b6c9a2530ba8820404c  gcc/testsuite/gcc.target/arc/ashldi3-1.c
+ 45b3f35fc118b7f9cbf151b8b3af0da9  gcc/testsuite/gcc.target/arc/ashrdi3-1.c
+ c2b25c4300f4ba60499986df2c4f2d5e  gcc/testsuite/gcc.target/arc/ashrsi-1.c
+ 3061299522d4663fb446314b4afe9839  gcc/testsuite/gcc.target/arc/ashrsi-2.c
+ a3958b96f761cbf4b89ea06d0a2a6bd5  gcc/testsuite/gcc.target/arc/ashrsi-3.c
+ 6a3bf16ad4397e27c13c7642d9836901  gcc/testsuite/gcc.target/arc/ashrsi-4.c
+ 2a5446aeb9aa3511c2764f8ae74273fa  gcc/testsuite/gcc.target/arc/ashrsi-5.c
  d0cebb0a2330505d8dd990632e8fccbf  gcc/testsuite/gcc.target/arc/barrel-shifter-1.c
  b39c0e6513279f1844d9242a3025b258  gcc/testsuite/gcc.target/arc/barrel-shifter-2.c
  67cb27f1515fdc67ab583f3729ed480e  gcc/testsuite/gcc.target/arc/bitfield.c
*************** b39c0e6513279f1844d9242a3025b258  gcc/te
*** 59535,59543 ****
--- 63899,63914 ----
  c63670e596c246f3002a0f44ce341617  gcc/testsuite/gcc.target/arc/builtin_arc_aligned-3.c
  dff840d406fa0b5fbf3926a7ff2acda2  gcc/testsuite/gcc.target/arc/builtin_eh.c
  f6f24cca348367d018fd26540705d2d6  gcc/testsuite/gcc.target/arc/builtin_general.c
+ a174cff0daf5e9c6bdff55dd5c147b70  gcc/testsuite/gcc.target/arc/builtin_norm-1.c
+ 2fae32f7bc16961fe85e3b052588e81c  gcc/testsuite/gcc.target/arc/builtin_norm-2.c
+ b8cbe3a6ab857e13b8e6f98de8f7aea8  gcc/testsuite/gcc.target/arc/builtin_normw-1.c
+ 592ecd5b6484302421d315eee956175a  gcc/testsuite/gcc.target/arc/builtin_normw-2.c
  7ee3fdeaab109aced6f9915fec7bdcce  gcc/testsuite/gcc.target/arc/builtin_simd.c
  0a7113251c58caffacf1eb7f90795d95  gcc/testsuite/gcc.target/arc/builtin_simdarc.c
  65ca7be5ea8689cbdcf92614c6de946b  gcc/testsuite/gcc.target/arc/builtin_special.c
+ 83d792ff71437bc4c714147d5572b83f  gcc/testsuite/gcc.target/arc/builtin_swap-1.c
+ 505b65fd6b9dc1cdcf269f0637b54475  gcc/testsuite/gcc.target/arc/builtin_swap-2.c
+ a6b2253185e643b681fae02f425ed348  gcc/testsuite/gcc.target/arc/builtin_swap-3.c
  aecc0b52522dc665695ef01f2d3f9e3d  gcc/testsuite/gcc.target/arc/cancel-1.c
  bb7a791bb8f7d701826fe6c83b5f1134  gcc/testsuite/gcc.target/arc/cmem-1.c
  2ecd7dba64a9e26909f498d810795595  gcc/testsuite/gcc.target/arc/cmem-2.c
*************** d07620cd1b0aefd0ce0a68df905f1326  gcc/te
*** 59555,59568 ****
  093c1c334d43cf719378e187c501d944  gcc/testsuite/gcc.target/arc/code-density-flag.c
  ab3e3c633530b0e2e02f20e76907cab4  gcc/testsuite/gcc.target/arc/cond-set-use.c
  a8ef1d01a0865b83aab1825f39789150  gcc/testsuite/gcc.target/arc/delay-slot-limm.c
! 1a62d72266a82c77878046559bc2e3aa  gcc/testsuite/gcc.target/arc/enter-dw2-1.c
  d9d9cdf928da4c195b1a99dad0aeda06  gcc/testsuite/gcc.target/arc/extzv-1.c
  548254c3a241c8551ebb0aa5d94e45c4  gcc/testsuite/gcc.target/arc/firq-1.c
  4e583df9e864022980d99fd265bb3ab5  gcc/testsuite/gcc.target/arc/firq-2.c
  32a96355f88ba3b0208383590a245d22  gcc/testsuite/gcc.target/arc/firq-3.c
! 4e00bb632f49dab2de75d958d6bda84d  gcc/testsuite/gcc.target/arc/firq-4.c
  fea7af7c12eb392f30364e1362155d21  gcc/testsuite/gcc.target/arc/firq-5.c
! 9f1bfa8b5c1c0dab3cd220e662342a6c  gcc/testsuite/gcc.target/arc/firq-6.c
  64cd64d9aa6eb0154a5465c1457c2f0b  gcc/testsuite/gcc.target/arc/fma-1.c
  d84b29a4749c8b59782ed7037960886b  gcc/testsuite/gcc.target/arc/ieee_eq.c
  9f963e71c7574105d5690f43341ba8ca  gcc/testsuite/gcc.target/arc/insv-1.c
--- 63926,63941 ----
  093c1c334d43cf719378e187c501d944  gcc/testsuite/gcc.target/arc/code-density-flag.c
  ab3e3c633530b0e2e02f20e76907cab4  gcc/testsuite/gcc.target/arc/cond-set-use.c
  a8ef1d01a0865b83aab1825f39789150  gcc/testsuite/gcc.target/arc/delay-slot-limm.c
! faeadd9b775f7efdb556fab9131531ce  gcc/testsuite/gcc.target/arc/enter-dw2-1.c
! 44b5768bc6140e92ed2010b885a0f7bb  gcc/testsuite/gcc.target/arc/extvsi-1.c
! 1739e65eb5e46676f54b11ff2d56e570  gcc/testsuite/gcc.target/arc/extvsi-2.c
  d9d9cdf928da4c195b1a99dad0aeda06  gcc/testsuite/gcc.target/arc/extzv-1.c
  548254c3a241c8551ebb0aa5d94e45c4  gcc/testsuite/gcc.target/arc/firq-1.c
  4e583df9e864022980d99fd265bb3ab5  gcc/testsuite/gcc.target/arc/firq-2.c
  32a96355f88ba3b0208383590a245d22  gcc/testsuite/gcc.target/arc/firq-3.c
! e6a1e115fbf28d06087d516fa4896471  gcc/testsuite/gcc.target/arc/firq-4.c
  fea7af7c12eb392f30364e1362155d21  gcc/testsuite/gcc.target/arc/firq-5.c
! 3d599566405fe6df0acac7b4a16c3ca5  gcc/testsuite/gcc.target/arc/firq-6.c
  64cd64d9aa6eb0154a5465c1457c2f0b  gcc/testsuite/gcc.target/arc/fma-1.c
  d84b29a4749c8b59782ed7037960886b  gcc/testsuite/gcc.target/arc/ieee_eq.c
  9f963e71c7574105d5690f43341ba8ca  gcc/testsuite/gcc.target/arc/insv-1.c
*************** b1b1e7ab7fe3d3c645620b9ae615c9f0  gcc/te
*** 59580,59598 ****
  595889dfbd8d6ce827b81609c818446f  gcc/testsuite/gcc.target/arc/interrupt-7.c
  1f9bdc6c3e79e94c8b414ebf2b30eb44  gcc/testsuite/gcc.target/arc/interrupt-8.c
  154b4c12f5fe1b3324a2dfaf3374a4ed  gcc/testsuite/gcc.target/arc/interrupt-9.c
! 1201c4f7063edad3883de4d2cbc274dc  gcc/testsuite/gcc.target/arc/jli-1.c
! 22105be72516ef52d8a7f57da8c94e3a  gcc/testsuite/gcc.target/arc/jli-2.c
  8e91f903de2281d3030cf14d194ca3a6  gcc/testsuite/gcc.target/arc/jump-around-jump.c
  7bd7a1ae5730df6f4b83af79178fc9ac  gcc/testsuite/gcc.target/arc/jumptable.c
  9618e65b2127e1c0f867fcc6cf914636  gcc/testsuite/gcc.target/arc/load-update.c
  f07f53a4dfd154c4babdb0ead46ccc61  gcc/testsuite/gcc.target/arc/long-calls.c
  e6fd4471e35965064bec7e019a343785  gcc/testsuite/gcc.target/arc/loop-1.c
  a8139c5c60e1336d6ba8fd0f2cd5b87e  gcc/testsuite/gcc.target/arc/loop-2.cpp
! 40a81e278b84bc91cacb2c06e0d6fab4  gcc/testsuite/gcc.target/arc/loop-3.c
  8ea24c8a496a1109505e25a0a0ec5c7d  gcc/testsuite/gcc.target/arc/loop-4.c
  5ba1cd91c81e3462387184a5487a64d0  gcc/testsuite/gcc.target/arc/loop-5.cpp
  24bd83c9d7ba11e5c048452de26834c9  gcc/testsuite/gcc.target/arc/loop-hazard-1.c
! 5029b1e57501d4214fa7d163235d3a51  gcc/testsuite/gcc.target/arc/lra-1.c
  ea8d0a9c58c13a47c41397306d62c616  gcc/testsuite/gcc.target/arc/mA6.c
  d64d9022cfc74eb84d1a1a26f22d9c16  gcc/testsuite/gcc.target/arc/mA7.c
  10a13507028e810ecae3839285f27a61  gcc/testsuite/gcc.target/arc/mARC600.c
--- 63953,63979 ----
  595889dfbd8d6ce827b81609c818446f  gcc/testsuite/gcc.target/arc/interrupt-7.c
  1f9bdc6c3e79e94c8b414ebf2b30eb44  gcc/testsuite/gcc.target/arc/interrupt-8.c
  154b4c12f5fe1b3324a2dfaf3374a4ed  gcc/testsuite/gcc.target/arc/interrupt-9.c
! 2bd8770348da9e57dd21a4e0583aa5d2  gcc/testsuite/gcc.target/arc/jli-1.c
! 8c070b3576b40e768f6dd5591e937398  gcc/testsuite/gcc.target/arc/jli-2.c
  8e91f903de2281d3030cf14d194ca3a6  gcc/testsuite/gcc.target/arc/jump-around-jump.c
  7bd7a1ae5730df6f4b83af79178fc9ac  gcc/testsuite/gcc.target/arc/jumptable.c
  9618e65b2127e1c0f867fcc6cf914636  gcc/testsuite/gcc.target/arc/load-update.c
  f07f53a4dfd154c4babdb0ead46ccc61  gcc/testsuite/gcc.target/arc/long-calls.c
  e6fd4471e35965064bec7e019a343785  gcc/testsuite/gcc.target/arc/loop-1.c
  a8139c5c60e1336d6ba8fd0f2cd5b87e  gcc/testsuite/gcc.target/arc/loop-2.cpp
! be27a87a258a217b2d8f913dead8f81e  gcc/testsuite/gcc.target/arc/loop-3.c
  8ea24c8a496a1109505e25a0a0ec5c7d  gcc/testsuite/gcc.target/arc/loop-4.c
  5ba1cd91c81e3462387184a5487a64d0  gcc/testsuite/gcc.target/arc/loop-5.cpp
  24bd83c9d7ba11e5c048452de26834c9  gcc/testsuite/gcc.target/arc/loop-hazard-1.c
! 37bf93edc4a1a5c5a627e40d5b688c0b  gcc/testsuite/gcc.target/arc/lra-1.c
! 446342b4ed89aa74c0e47e7a93c73560  gcc/testsuite/gcc.target/arc/lshrdi3-1.c
! 439bbca863c0e1af8c833e0918e5af99  gcc/testsuite/gcc.target/arc/lshrsi-1.c
! 2cac8bcc133de41fde00b558a1f09b68  gcc/testsuite/gcc.target/arc/lshrsi-2.c
! a5ace3eacccd16ab422182f43da295d5  gcc/testsuite/gcc.target/arc/lshrsi-3.c
! b34f9750779c2549c3e3ed14a6adeb5c  gcc/testsuite/gcc.target/arc/lshrsi-4.c
! 2cc7184534db277c0cfb6012655ad9ba  gcc/testsuite/gcc.target/arc/lshrsi-5.c
! ddc6446f511334e05209a8de768ecabc  gcc/testsuite/gcc.target/arc/lsl16-1.c
! 918586f65b72b9b722b859c64786e5d4  gcc/testsuite/gcc.target/arc/lsr16-1.c
  ea8d0a9c58c13a47c41397306d62c616  gcc/testsuite/gcc.target/arc/mA6.c
  d64d9022cfc74eb84d1a1a26f22d9c16  gcc/testsuite/gcc.target/arc/mA7.c
  10a13507028e810ecae3839285f27a61  gcc/testsuite/gcc.target/arc/mARC600.c
*************** ea02e52a5a6f8e2ca3e8ad695065812f  gcc/te
*** 59619,59660 ****
  2e66e2adbfa68ec4f18f2f3cbc6da26b  gcc/testsuite/gcc.target/arc/movl-1.c
  b28f6252aaf3288f7754a0c50786df34  gcc/testsuite/gcc.target/arc/mspfp.c
  2da9746a54337c45dfb1f4da6bd37fd5  gcc/testsuite/gcc.target/arc/mswape.c
- 635645c47bbc2941a7d7801f8c8b5b64  gcc/testsuite/gcc.target/arc/mtune-ARC600.c
- 1ef162e8c11b4e6ba2d8811eb96271f0  gcc/testsuite/gcc.target/arc/mtune-ARC601.c
- b443447704f4a7b7a2a5c8b97db22640  gcc/testsuite/gcc.target/arc/mtune-ARC700-xmac
- 34220358acee31a93fc8c97863057d7f  gcc/testsuite/gcc.target/arc/mtune-ARC700.c
- baea275c33a1e24b5ae1193f7059ac40  gcc/testsuite/gcc.target/arc/mtune-ARC725D.c
- 68a3b828cb2a7e43b370207bcc2f073e  gcc/testsuite/gcc.target/arc/mtune-ARC750D.c
  4ee070d89a7b3e774eaf40214625cf03  gcc/testsuite/gcc.target/arc/mul64-1.c
  51a65655bfba373cbacabf27deec612c  gcc/testsuite/gcc.target/arc/mul64.c
  46c5b1c885d49d863f7518670ae85e9c  gcc/testsuite/gcc.target/arc/mulsi3_highpart-1.c
  793d7938e24de8127c5230bc8a1799e9  gcc/testsuite/gcc.target/arc/mulsi3_highpart-2.c
  a55caab34589aaad4b44c2b23036a38a  gcc/testsuite/gcc.target/arc/mxy.c
! 8dbc962d23b65ad48d111bd9dd381dec  gcc/testsuite/gcc.target/arc/naked-1.c
! 4f4c6738ec0359d10052ca27f1b660ad  gcc/testsuite/gcc.target/arc/naked-2.c
  c2635eb729f09720a184a5826e218569  gcc/testsuite/gcc.target/arc/no-dpfp-lrsr.c
  44056921f356727d2dbdf06018554b44  gcc/testsuite/gcc.target/arc/nps400-1.c
  58fc9721ecffbfdff197d4585c412004  gcc/testsuite/gcc.target/arc/nps400-cpu-flag.c
  a6f761c17339470bb07c2d99265ec06d  gcc/testsuite/gcc.target/arc/nv-cache.c
  18a4082484710c4349aebc15d3720bf1  gcc/testsuite/gcc.target/arc/or-cnst-size.c
  5a4576d30026a60f39a87cbe7efe00a6  gcc/testsuite/gcc.target/arc/or-cnst-size2.c
! 76cbc9fa02438e0b056b240c1acc42a6  gcc/testsuite/gcc.target/arc/pic-1.c
  8ac75d73a43ffeabafa566330b0b646a  gcc/testsuite/gcc.target/arc/pic-2.c
  a6dcc28a587998a1e31f18709aa0f66c  gcc/testsuite/gcc.target/arc/pmpyd.c
  9cf31b5a40dc5c0daec2297181924d9c  gcc/testsuite/gcc.target/arc/pr89838.c
  9bcff0642ee893311d6172e5bdfbc249  gcc/testsuite/gcc.target/arc/pr9000674901.c
  de1d148fe0e6156b068d3be0465e4657  gcc/testsuite/gcc.target/arc/pr9001090948.c
  f46cb560bbbdee851a633b3344aff41c  gcc/testsuite/gcc.target/arc/pr9001107555.c
  26d6771deea16e669ff0f9d35318bebb  gcc/testsuite/gcc.target/arc/pr9001184797.c
! 167afaa0b0dea93ffc9adefb9fb883c6  gcc/testsuite/gcc.target/arc/pr9001191897.c
! 94045df90a584be70ae8b5c31fc5f8d1  gcc/testsuite/gcc.target/arc/pr9001195952.c
  2828f1a2b0bac192b17ae1bec8bcaba4  gcc/testsuite/gcc.target/arc/sdata-1.c
  579ed1babb08719766167da5b34817df  gcc/testsuite/gcc.target/arc/sdata-2.c
  871e12148b7f9b5713bdd08d343eb282  gcc/testsuite/gcc.target/arc/sdata-3.c
  d0d9ef681fbb444736d5e1a93af1b4d7  gcc/testsuite/gcc.target/arc/sdata-4.c
  3548ca5684b59d3df3f1b73f4af93e08  gcc/testsuite/gcc.target/arc/sdata-5.c
  a5cf816ec09509d297751d31b4352ce6  gcc/testsuite/gcc.target/arc/store-merge-1.c
  e5e848898853bc4d0fcffb1d5c59a37c  gcc/testsuite/gcc.target/arc/sub_n-combine.c
  d98c22783b8b7aa60168331e19fb3c03  gcc/testsuite/gcc.target/arc/taux-1.c
  c519795c715b1ee38d8570576574b148  gcc/testsuite/gcc.target/arc/taux-2.c
  96d2f45c2e97c55bc84b472d2f3d175e  gcc/testsuite/gcc.target/arc/tdelay_slots.cpp
--- 64000,64046 ----
  2e66e2adbfa68ec4f18f2f3cbc6da26b  gcc/testsuite/gcc.target/arc/movl-1.c
  b28f6252aaf3288f7754a0c50786df34  gcc/testsuite/gcc.target/arc/mspfp.c
  2da9746a54337c45dfb1f4da6bd37fd5  gcc/testsuite/gcc.target/arc/mswape.c
  4ee070d89a7b3e774eaf40214625cf03  gcc/testsuite/gcc.target/arc/mul64-1.c
  51a65655bfba373cbacabf27deec612c  gcc/testsuite/gcc.target/arc/mul64.c
  46c5b1c885d49d863f7518670ae85e9c  gcc/testsuite/gcc.target/arc/mulsi3_highpart-1.c
  793d7938e24de8127c5230bc8a1799e9  gcc/testsuite/gcc.target/arc/mulsi3_highpart-2.c
  a55caab34589aaad4b44c2b23036a38a  gcc/testsuite/gcc.target/arc/mxy.c
! cb20618eea943bb5260b4d5b424f7756  gcc/testsuite/gcc.target/arc/naked-1.c
! 77013bd7a2cc422045b496b9aa750111  gcc/testsuite/gcc.target/arc/naked-2.c
  c2635eb729f09720a184a5826e218569  gcc/testsuite/gcc.target/arc/no-dpfp-lrsr.c
  44056921f356727d2dbdf06018554b44  gcc/testsuite/gcc.target/arc/nps400-1.c
  58fc9721ecffbfdff197d4585c412004  gcc/testsuite/gcc.target/arc/nps400-cpu-flag.c
  a6f761c17339470bb07c2d99265ec06d  gcc/testsuite/gcc.target/arc/nv-cache.c
  18a4082484710c4349aebc15d3720bf1  gcc/testsuite/gcc.target/arc/or-cnst-size.c
  5a4576d30026a60f39a87cbe7efe00a6  gcc/testsuite/gcc.target/arc/or-cnst-size2.c
! 4d26da527c4326cbce22405e70988c60  gcc/testsuite/gcc.target/arc/pic-1.c
  8ac75d73a43ffeabafa566330b0b646a  gcc/testsuite/gcc.target/arc/pic-2.c
  a6dcc28a587998a1e31f18709aa0f66c  gcc/testsuite/gcc.target/arc/pmpyd.c
+ 3e41166f6dcff1dbf3097e5141e3c7f4  gcc/testsuite/gcc.target/arc/pr101955.c
  9cf31b5a40dc5c0daec2297181924d9c  gcc/testsuite/gcc.target/arc/pr89838.c
  9bcff0642ee893311d6172e5bdfbc249  gcc/testsuite/gcc.target/arc/pr9000674901.c
  de1d148fe0e6156b068d3be0465e4657  gcc/testsuite/gcc.target/arc/pr9001090948.c
  f46cb560bbbdee851a633b3344aff41c  gcc/testsuite/gcc.target/arc/pr9001107555.c
  26d6771deea16e669ff0f9d35318bebb  gcc/testsuite/gcc.target/arc/pr9001184797.c
! 964d69f0d471d0ca217307bec4ced3e2  gcc/testsuite/gcc.target/arc/pr9001191897.c
! 58044230657ba04fdae8399146ddf054  gcc/testsuite/gcc.target/arc/pr9001195952.c
! 3cdc4c1a7dc19dd061ef30712bd30cb8  gcc/testsuite/gcc.target/arc/rotldi3-1.c
! 488a86f79ac4257ad0b0fc36a799372f  gcc/testsuite/gcc.target/arc/rotrdi3-1.c
! e963a81134c27ab0136fa91188158682  gcc/testsuite/gcc.target/arc/scc-ltu.c
  2828f1a2b0bac192b17ae1bec8bcaba4  gcc/testsuite/gcc.target/arc/sdata-1.c
  579ed1babb08719766167da5b34817df  gcc/testsuite/gcc.target/arc/sdata-2.c
  871e12148b7f9b5713bdd08d343eb282  gcc/testsuite/gcc.target/arc/sdata-3.c
  d0d9ef681fbb444736d5e1a93af1b4d7  gcc/testsuite/gcc.target/arc/sdata-4.c
  3548ca5684b59d3df3f1b73f4af93e08  gcc/testsuite/gcc.target/arc/sdata-5.c
+ 92fc3fd98e40a51c2d87628560cebd9d  gcc/testsuite/gcc.target/arc/shlsi-1.c
+ 067b0a5f89321de3f4f61c0aca42f7a4  gcc/testsuite/gcc.target/arc/shlsi-2.c
+ e0d14bc4647cfc2d656dd758e505bd88  gcc/testsuite/gcc.target/arc/shlsi-3.c
+ 215700a0d39c755dded25d3939d61ff8  gcc/testsuite/gcc.target/arc/shlsi-4.c
+ 7edf2eb0f8909a62ff95edd2ee0f1eea  gcc/testsuite/gcc.target/arc/shlsi-5.c
  a5cf816ec09509d297751d31b4352ce6  gcc/testsuite/gcc.target/arc/store-merge-1.c
  e5e848898853bc4d0fcffb1d5c59a37c  gcc/testsuite/gcc.target/arc/sub_n-combine.c
+ aaa144694ae3a3b6b2658806c40c1a91  gcc/testsuite/gcc.target/arc/swap-1.c
+ ec28a25ef30387cb543795a7494021bb  gcc/testsuite/gcc.target/arc/swap-2.c
  d98c22783b8b7aa60168331e19fb3c03  gcc/testsuite/gcc.target/arc/taux-1.c
  c519795c715b1ee38d8570576574b148  gcc/testsuite/gcc.target/arc/taux-2.c
  96d2f45c2e97c55bc84b472d2f3d175e  gcc/testsuite/gcc.target/arc/tdelay_slots.cpp
*************** f948016cf876549e5e3dcd87acd07370  gcc/te
*** 59664,59673 ****
  44a2859768c0bcbc2a0bcbb297d64e50  gcc/testsuite/gcc.target/arc/tls-3.c
  c77e8405d55c2fe6d24ad0097b7ab009  gcc/testsuite/gcc.target/arc/tls-gd.c
  ba04f0952f2c38c9d10a1af7f5d56f9a  gcc/testsuite/gcc.target/arc/tls-ie.c
! f6ab9742a5f36de1928fda9c37febb86  gcc/testsuite/gcc.target/arc/tls-ld.c
! 078ba8c63e3f35e7c682fa712064ebb1  gcc/testsuite/gcc.target/arc/tls-le.c
! c3e938f937a51f7649df681938f6cd9b  gcc/testsuite/gcc.target/arc/tmac-1.c
! 3d22c8cc2938a210e4c8729caf3e3e09  gcc/testsuite/gcc.target/arc/tmac-2.c
  34b33b974d6dbb0431042aa5831e4bf8  gcc/testsuite/gcc.target/arc/tmac-3.c
  0c045503d08f603cf24d7b47172fdd78  gcc/testsuite/gcc.target/arc/tmac-4.c
  fc60d81a81f1025434b2711d3bc9cade  gcc/testsuite/gcc.target/arc/tmac.h
--- 64050,64059 ----
  44a2859768c0bcbc2a0bcbb297d64e50  gcc/testsuite/gcc.target/arc/tls-3.c
  c77e8405d55c2fe6d24ad0097b7ab009  gcc/testsuite/gcc.target/arc/tls-gd.c
  ba04f0952f2c38c9d10a1af7f5d56f9a  gcc/testsuite/gcc.target/arc/tls-ie.c
! 25bf5b39f8f35b6b44ceb1c9cc4c0e6a  gcc/testsuite/gcc.target/arc/tls-ld.c
! ec4d7cf6b253b11fed7ce7912c99ae81  gcc/testsuite/gcc.target/arc/tls-le.c
! a3d619aa96c8ce2c8ac1e3c942973087  gcc/testsuite/gcc.target/arc/tmac-1.c
! 5d5b5496ae1f483b1032eb3403eb3f8c  gcc/testsuite/gcc.target/arc/tmac-2.c
  34b33b974d6dbb0431042aa5831e4bf8  gcc/testsuite/gcc.target/arc/tmac-3.c
  0c045503d08f603cf24d7b47172fdd78  gcc/testsuite/gcc.target/arc/tmac-4.c
  fc60d81a81f1025434b2711d3bc9cade  gcc/testsuite/gcc.target/arc/tmac.h
*************** e1966245f7a1b5e2d13404759d9745ee  gcc/te
*** 59681,59687 ****
  b7447dd455d522b01d8038bf537a3014  gcc/testsuite/gcc.target/arc/uncached-4.c
  53d9a20434f9d68e85f4d197e8c8b532  gcc/testsuite/gcc.target/arc/uncached-5.c
  4aa4bea5182116d7d0462ac78d6f669e  gcc/testsuite/gcc.target/arc/uncached-6.c
! 332845dfd09bbcad8877874819a30ba1  gcc/testsuite/gcc.target/arc/uncached-7.c
  a73e42e3a4b9da241314f90464930931  gcc/testsuite/gcc.target/arc/uncached-8.c
  26955d5e0a1d1a3d8966390c4e5565f5  gcc/testsuite/gcc.target/arc/uncached-9.c
  721ddfeb1e6af8110e1f5975daed686d  gcc/testsuite/gcc.target/arc/uncached.c
--- 64067,64073 ----
  b7447dd455d522b01d8038bf537a3014  gcc/testsuite/gcc.target/arc/uncached-4.c
  53d9a20434f9d68e85f4d197e8c8b532  gcc/testsuite/gcc.target/arc/uncached-5.c
  4aa4bea5182116d7d0462ac78d6f669e  gcc/testsuite/gcc.target/arc/uncached-6.c
! 8fb975e65605a1661b627f73f23d4ec5  gcc/testsuite/gcc.target/arc/uncached-7.c
  a73e42e3a4b9da241314f90464930931  gcc/testsuite/gcc.target/arc/uncached-8.c
  26955d5e0a1d1a3d8966390c4e5565f5  gcc/testsuite/gcc.target/arc/uncached-9.c
  721ddfeb1e6af8110e1f5975daed686d  gcc/testsuite/gcc.target/arc/uncached.c
*************** d059b2e33fe3944d4609bef74df38413  gcc/te
*** 59695,59701 ****
  678e95fcf9ea10b2ad5f97a249136cdb  gcc/testsuite/gcc.target/arm/20090811-1.c
  3246666ab1db4fd6160f12106dd2fea4  gcc/testsuite/gcc.target/arm/20131120.c
  99d362e2051f9f2bf0e7ff2ec49b0df7  gcc/testsuite/gcc.target/arm/README.advsimd-intrinsics
! 87b719410182b44e0d940f44ae268f2b  gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp
  dce658d805b258027bde980a1d76a50d  gcc/testsuite/gcc.target/arm/aapcs/abitest.h
  96bc5ca2eaed6da1d7e22b1c0e28317d  gcc/testsuite/gcc.target/arm/aapcs/align1.c
  1ad40fcc9ea2067b6fa8508030c2f1d4  gcc/testsuite/gcc.target/arm/aapcs/align2.c
--- 64081,64087 ----
  678e95fcf9ea10b2ad5f97a249136cdb  gcc/testsuite/gcc.target/arm/20090811-1.c
  3246666ab1db4fd6160f12106dd2fea4  gcc/testsuite/gcc.target/arm/20131120.c
  99d362e2051f9f2bf0e7ff2ec49b0df7  gcc/testsuite/gcc.target/arm/README.advsimd-intrinsics
! bac5dd23e090e088691fc23f20daa60e  gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp
  dce658d805b258027bde980a1d76a50d  gcc/testsuite/gcc.target/arm/aapcs/abitest.h
  96bc5ca2eaed6da1d7e22b1c0e28317d  gcc/testsuite/gcc.target/arm/aapcs/align1.c
  1ad40fcc9ea2067b6fa8508030c2f1d4  gcc/testsuite/gcc.target/arm/aapcs/align2.c
*************** b03843d0bfb6128e2d6e634be21c3021  gcc/te
*** 59750,59759 ****
  e5b7374e291244b801b4c292504d3f80  gcc/testsuite/gcc.target/arm/aapcs/vfp7.c
  3aa1f9e592cb3a6a4181176724ae2fa8  gcc/testsuite/gcc.target/arm/aapcs/vfp8.c
  37ac30daf2fa61e7f2d97c17c39fddfe  gcc/testsuite/gcc.target/arm/aapcs/vfp9.c
! d04a2fd2bd877bfdef331abbf1edc92b  gcc/testsuite/gcc.target/arm/acle/acle.exp
  658e0707622d22620aa765f8608c22db  gcc/testsuite/gcc.target/arm/acle/cde-errors.c
  5ae0b75d3edc7d5441f595fec368443c  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-1.c
! 792d9dbc57ff346f36bc666b7df02fc5  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c
  94bcf4eb76f1c5723627b1baedcdc159  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-3.c
  499b585a2e76d2f641d42e0683c31f90  gcc/testsuite/gcc.target/arm/acle/cde-mve-full-assembly.c
  c7f80609570e0d905fcd9cff2e6350ed  gcc/testsuite/gcc.target/arm/acle/cde-mve-tests.c
--- 64136,64145 ----
  e5b7374e291244b801b4c292504d3f80  gcc/testsuite/gcc.target/arm/aapcs/vfp7.c
  3aa1f9e592cb3a6a4181176724ae2fa8  gcc/testsuite/gcc.target/arm/aapcs/vfp8.c
  37ac30daf2fa61e7f2d97c17c39fddfe  gcc/testsuite/gcc.target/arm/aapcs/vfp9.c
! 1d41f4acfc14a50fddf06d164e5b6778  gcc/testsuite/gcc.target/arm/acle/acle.exp
  658e0707622d22620aa765f8608c22db  gcc/testsuite/gcc.target/arm/acle/cde-errors.c
  5ae0b75d3edc7d5441f595fec368443c  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-1.c
! 778409d191a473e3d1b5c897c9402030  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c
  94bcf4eb76f1c5723627b1baedcdc159  gcc/testsuite/gcc.target/arm/acle/cde-mve-error-3.c
  499b585a2e76d2f641d42e0683c31f90  gcc/testsuite/gcc.target/arm/acle/cde-mve-full-assembly.c
  c7f80609570e0d905fcd9cff2e6350ed  gcc/testsuite/gcc.target/arm/acle/cde-mve-tests.c
*************** a7f2e5349eb3677d4e532197beb261b8  gcc/te
*** 59772,59777 ****
--- 64158,64167 ----
  21b20cecbc6689dc6367a96e210b956e  gcc/testsuite/gcc.target/arm/acle/crc32h.c
  2d7c8358817ecb57e689202c2e4f2dd6  gcc/testsuite/gcc.target/arm/acle/crc32w.c
  7625090916298326fe50051cd11dd95b  gcc/testsuite/gcc.target/arm/acle/crc_hf_1.c
+ 93f424360e45e9fa22d1c95f2c33829e  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-armv6.c
+ 65e253803e564d2d4b3251980c3c929c  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-assembly.c
+ d477c51bad40b0d53e197494787ca836  gcc/testsuite/gcc.target/arm/acle/data-intrinsics-rbit.c
+ 9daa2dd494117856691db24b535770e4  gcc/testsuite/gcc.target/arm/acle/data-intrinsics.c
  7009c6abfd18e2667a2c733ef4c48096  gcc/testsuite/gcc.target/arm/acle/dsp_arith.c
  15caa7f54c3a3e06d97de61aaaa7ca1c  gcc/testsuite/gcc.target/arm/acle/ldc.c
  343921f8186546d1f5253679431b890b  gcc/testsuite/gcc.target/arm/acle/ldc2.c
*************** e66b3819f1cc1c13b66c38b83972f3a2  gcc/te
*** 59787,59793 ****
  5280b32decaf5622a9f85f834e828bdf  gcc/testsuite/gcc.target/arm/acle/mrrc2.c
  6f740e3440a96131c11b5113864a1398  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c
  f65741e127a585964d0a2540cba9fa79  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c
! 12f3b36de7e30a9feb40a75552be0dbd  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c
  336eaaa6b59a3fe03826de0277b51fbc  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c
  2fed58fe92afda390e1d0b2a5c1f0d3e  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c
  1c61e241c3a55069d019bffd2ec1425a  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c
--- 64177,64183 ----
  5280b32decaf5622a9f85f834e828bdf  gcc/testsuite/gcc.target/arm/acle/mrrc2.c
  6f740e3440a96131c11b5113864a1398  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c
  f65741e127a585964d0a2540cba9fa79  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c
! 6941afdbe9bf1b67ecb444478ac28991  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c
  336eaaa6b59a3fe03826de0277b51fbc  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c
  2fed58fe92afda390e1d0b2a5c1f0d3e  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c
  1c61e241c3a55069d019bffd2ec1425a  gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c
*************** beeedfa6811e6847c3cf97dc8034edc6  gcc/te
*** 59816,59822 ****
  dfc4bf650d099d2aff3f9e5f3d4b62ac  gcc/testsuite/gcc.target/arm/anddi3-opt2.c
  8acda08d68bcc11cfdd01eb0a1ed850d  gcc/testsuite/gcc.target/arm/anddi_notdi-1.c
  2de4b776a367481e41c80f0bf35fc6e4  gcc/testsuite/gcc.target/arm/arm-soft-strd-even.c
! f84b40fdc43503eaaac6c5a61e166ae7  gcc/testsuite/gcc.target/arm/arm.exp
  5810c65774cd6173ff73a4ca6f3b0562  gcc/testsuite/gcc.target/arm/armv6-unaligned-load-ice.c
  e0b358414d3e86102d32b626de2fbc40  gcc/testsuite/gcc.target/arm/armv8-sync-comp-swap.c
  0434c51f353f1957fce79533a348ee29  gcc/testsuite/gcc.target/arm/armv8-sync-op-acquire.c
--- 64206,64213 ----
  dfc4bf650d099d2aff3f9e5f3d4b62ac  gcc/testsuite/gcc.target/arm/anddi3-opt2.c
  8acda08d68bcc11cfdd01eb0a1ed850d  gcc/testsuite/gcc.target/arm/anddi_notdi-1.c
  2de4b776a367481e41c80f0bf35fc6e4  gcc/testsuite/gcc.target/arm/arm-soft-strd-even.c
! ce4273427c0d13a68dcf16c846001d0b  gcc/testsuite/gcc.target/arm/arm-switchstatement.c
! 124ad7f3b9e28e613823688852cc363b  gcc/testsuite/gcc.target/arm/arm.exp
  5810c65774cd6173ff73a4ca6f3b0562  gcc/testsuite/gcc.target/arm/armv6-unaligned-load-ice.c
  e0b358414d3e86102d32b626de2fbc40  gcc/testsuite/gcc.target/arm/armv8-sync-comp-swap.c
  0434c51f353f1957fce79533a348ee29  gcc/testsuite/gcc.target/arm/armv8-sync-op-acquire.c
*************** b0c810f8e8ebce60679fb5931167685d  gcc/te
*** 59882,59889 ****
  1d7bea0fc7af466cfda2e07083caf4e7  gcc/testsuite/gcc.target/arm/atomic_loaddi_4.c
  67dd829db4e5954c826ae22dbe6919ed  gcc/testsuite/gcc.target/arm/atomic_loaddi_5.c
  9028a3fc0f30474ef37d42dc4f3ff2f0  gcc/testsuite/gcc.target/arm/atomic_loaddi_6.c
! 09cdd44922c1ee7eeec81a504c0c5799  gcc/testsuite/gcc.target/arm/atomic_loaddi_7.c
! 510bca28c1ed8b509918e367eec699ba  gcc/testsuite/gcc.target/arm/atomic_loaddi_8.c
  4a2e35341703d93daa09a3b8e42e126c  gcc/testsuite/gcc.target/arm/atomic_loaddi_9.c
  8d17def26df7a19010542a66ba349674  gcc/testsuite/gcc.target/arm/atomic_loaddi_acquire.x
  fc8506cad4c77b4468d913131234b8df  gcc/testsuite/gcc.target/arm/atomic_loaddi_relaxed.x
--- 64273,64280 ----
  1d7bea0fc7af466cfda2e07083caf4e7  gcc/testsuite/gcc.target/arm/atomic_loaddi_4.c
  67dd829db4e5954c826ae22dbe6919ed  gcc/testsuite/gcc.target/arm/atomic_loaddi_5.c
  9028a3fc0f30474ef37d42dc4f3ff2f0  gcc/testsuite/gcc.target/arm/atomic_loaddi_6.c
! 7c51b525f4d8847f82e7a839d5ec0903  gcc/testsuite/gcc.target/arm/atomic_loaddi_7.c
! 478158ac08a5964bd8001529b0f2c8e1  gcc/testsuite/gcc.target/arm/atomic_loaddi_8.c
  4a2e35341703d93daa09a3b8e42e126c  gcc/testsuite/gcc.target/arm/atomic_loaddi_9.c
  8d17def26df7a19010542a66ba349674  gcc/testsuite/gcc.target/arm/atomic_loaddi_acquire.x
  fc8506cad4c77b4468d913131234b8df  gcc/testsuite/gcc.target/arm/atomic_loaddi_relaxed.x
*************** fc8506cad4c77b4468d913131234b8df  gcc/te
*** 59891,59897 ****
  610fd80be398913926ba72652bd8ae63  gcc/testsuite/gcc.target/arm/attr-align1.c
  eced09044f2e63efaea7b67cc2b8701d  gcc/testsuite/gcc.target/arm/attr-align2.c
  7f9cac5a33fedda7cbe7dbfa7091e3c8  gcc/testsuite/gcc.target/arm/attr-align3.c
! 491c57202a0a92733d5e2d45a475ff1c  gcc/testsuite/gcc.target/arm/attr-crypto.c
  cf7c684a14b2daa8b876c512e3599582  gcc/testsuite/gcc.target/arm/attr-fp16-arith-1.c
  d5f4f823ea6fb9bc4c6e9ccba5acdb91  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
  c462d71e23fb07062a21f54c54d09271  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
--- 64282,64288 ----
  610fd80be398913926ba72652bd8ae63  gcc/testsuite/gcc.target/arm/attr-align1.c
  eced09044f2e63efaea7b67cc2b8701d  gcc/testsuite/gcc.target/arm/attr-align2.c
  7f9cac5a33fedda7cbe7dbfa7091e3c8  gcc/testsuite/gcc.target/arm/attr-align3.c
! 0b6995d2e1fe92d440e02b598715ac74  gcc/testsuite/gcc.target/arm/attr-crypto.c
  cf7c684a14b2daa8b876c512e3599582  gcc/testsuite/gcc.target/arm/attr-fp16-arith-1.c
  d5f4f823ea6fb9bc4c6e9ccba5acdb91  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
  c462d71e23fb07062a21f54c54d09271  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
*************** f23d0119800a017079c65170401ab2c1  gcc/te
*** 59903,59909 ****
  ba6a1a17734115428b72a71a491695fb  gcc/testsuite/gcc.target/arm/attr_arm-err.c
  8ab2ce7d24547f03640f6087eb2b9be4  gcc/testsuite/gcc.target/arm/attr_arm.c
  0f7cecf6939530d192dd4ccc7a6ce8ce  gcc/testsuite/gcc.target/arm/attr_thumb-static.c
! 3c48820c733cf164b886b82341b6cf06  gcc/testsuite/gcc.target/arm/attr_thumb-static2.c
  b623510ec705d6b7193e2c0e2a0f5f94  gcc/testsuite/gcc.target/arm/attr_thumb.c
  ddf5f8837478e164c620abb8c7ac47ca  gcc/testsuite/gcc.target/arm/bf16_dup.c
  6e41b96954872461a57e818eb21c53b9  gcc/testsuite/gcc.target/arm/bf16_reinterpret.c
--- 64294,64300 ----
  ba6a1a17734115428b72a71a491695fb  gcc/testsuite/gcc.target/arm/attr_arm-err.c
  8ab2ce7d24547f03640f6087eb2b9be4  gcc/testsuite/gcc.target/arm/attr_arm.c
  0f7cecf6939530d192dd4ccc7a6ce8ce  gcc/testsuite/gcc.target/arm/attr_thumb-static.c
! 10b4bd6c28cd5a50f11c6a3e0eb9d3e6  gcc/testsuite/gcc.target/arm/attr_thumb-static2.c
  b623510ec705d6b7193e2c0e2a0f5f94  gcc/testsuite/gcc.target/arm/attr_thumb.c
  ddf5f8837478e164c620abb8c7ac47ca  gcc/testsuite/gcc.target/arm/bf16_dup.c
  6e41b96954872461a57e818eb21c53b9  gcc/testsuite/gcc.target/arm/bf16_reinterpret.c
*************** ddf5f8837478e164c620abb8c7ac47ca  gcc/te
*** 59914,59939 ****
  212bb298ddd1b8070ef221976c821d59  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_1.c
  533fcce74b96ed545cfaddb3fd6c0f50  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_2.c
  ebd9a7e3125d7b51692987388532dfb3  gcc/testsuite/gcc.target/arm/bfloat16_scalar_4.c
! e0066c1f5b260f83bb34906c9900f8bc  gcc/testsuite/gcc.target/arm/bfloat16_scalar_typecheck.c
  9d566a8c25c9173357e8d1701a9c9181  gcc/testsuite/gcc.target/arm/bfloat16_simd_1_1.c
  e82342fa684459ff8667e9b61d0a7224  gcc/testsuite/gcc.target/arm/bfloat16_simd_1_2.c
  3d1619ca156d9442f835868012752a98  gcc/testsuite/gcc.target/arm/bfloat16_simd_2_1.c
  713be387902863185c43e0479009cf62  gcc/testsuite/gcc.target/arm/bfloat16_simd_2_2.c
  a30e0a4d7a48b01ccc07bd5be4a0d065  gcc/testsuite/gcc.target/arm/bfloat16_simd_3_1.c
  9083033564e6fc8e449d986191be65da  gcc/testsuite/gcc.target/arm/bfloat16_simd_3_2.c
! f101ebe2e42b2c28eb921bcc60e875f6  gcc/testsuite/gcc.target/arm/bfloat16_vector_typecheck_1.c
! 18abf401a6ff676a0d67d9f1b08a74eb  gcc/testsuite/gcc.target/arm/bfloat16_vector_typecheck_2.c
  6fd7f87aeac118d347a74f2afe95ddc0  gcc/testsuite/gcc.target/arm/bics_1.c
  6f5448d43fe1db047a8d790ae666a6c8  gcc/testsuite/gcc.target/arm/bics_2.c
! 737e99e41cecd5bc4c1c91c76e580e6b  gcc/testsuite/gcc.target/arm/bics_3.c
  8a63eeba730368096509797a3284dc46  gcc/testsuite/gcc.target/arm/bics_4.c
  0fd8a665cdc25d00e7cd297ae567a70f  gcc/testsuite/gcc.target/arm/bics_5.c
  8689ee742289887539d8fd99b8a4ae0b  gcc/testsuite/gcc.target/arm/big-endian-subreg.c
  8c6582c78364705bc61eb152846b1036  gcc/testsuite/gcc.target/arm/bti-1.c
  abb9e91f15aee3a63c2d663676de29ac  gcc/testsuite/gcc.target/arm/bti-2.c
! 1dd263669be7a1b6c873cc7a525944ee  gcc/testsuite/gcc.target/arm/builtin-bswap-1.c
  2b930ef60b0ed29af3cf92e86d988143  gcc/testsuite/gcc.target/arm/builtin-bswap-2.c
! 3404eef73f3a64fd34cd1b8785921d04  gcc/testsuite/gcc.target/arm/builtin-bswap.x
  a44e6820d28af4953febbbc86ab18887  gcc/testsuite/gcc.target/arm/builtin-bswap16-1.c
  495680756bf372f5619a696bc526ad09  gcc/testsuite/gcc.target/arm/builtin-bswap16-2.c
  ffe05528d9d41b8523ca6d2cec69fdd3  gcc/testsuite/gcc.target/arm/builtin-bswap16.x
--- 64305,64330 ----
  212bb298ddd1b8070ef221976c821d59  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_1.c
  533fcce74b96ed545cfaddb3fd6c0f50  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_2.c
  ebd9a7e3125d7b51692987388532dfb3  gcc/testsuite/gcc.target/arm/bfloat16_scalar_4.c
! 7f6fca1944d2c355117b62adc96d2e90  gcc/testsuite/gcc.target/arm/bfloat16_scalar_typecheck.c
  9d566a8c25c9173357e8d1701a9c9181  gcc/testsuite/gcc.target/arm/bfloat16_simd_1_1.c
  e82342fa684459ff8667e9b61d0a7224  gcc/testsuite/gcc.target/arm/bfloat16_simd_1_2.c
  3d1619ca156d9442f835868012752a98  gcc/testsuite/gcc.target/arm/bfloat16_simd_2_1.c
  713be387902863185c43e0479009cf62  gcc/testsuite/gcc.target/arm/bfloat16_simd_2_2.c
  a30e0a4d7a48b01ccc07bd5be4a0d065  gcc/testsuite/gcc.target/arm/bfloat16_simd_3_1.c
  9083033564e6fc8e449d986191be65da  gcc/testsuite/gcc.target/arm/bfloat16_simd_3_2.c
! fd023d3635562de2ff5e0ed5260d21d5  gcc/testsuite/gcc.target/arm/bfloat16_vector_typecheck_1.c
! 3a97f76c1b98b4d2244bb1a213d2e4b5  gcc/testsuite/gcc.target/arm/bfloat16_vector_typecheck_2.c
  6fd7f87aeac118d347a74f2afe95ddc0  gcc/testsuite/gcc.target/arm/bics_1.c
  6f5448d43fe1db047a8d790ae666a6c8  gcc/testsuite/gcc.target/arm/bics_2.c
! 8a87a44de79b9c816f5b48c40b96038e  gcc/testsuite/gcc.target/arm/bics_3.c
  8a63eeba730368096509797a3284dc46  gcc/testsuite/gcc.target/arm/bics_4.c
  0fd8a665cdc25d00e7cd297ae567a70f  gcc/testsuite/gcc.target/arm/bics_5.c
  8689ee742289887539d8fd99b8a4ae0b  gcc/testsuite/gcc.target/arm/big-endian-subreg.c
  8c6582c78364705bc61eb152846b1036  gcc/testsuite/gcc.target/arm/bti-1.c
  abb9e91f15aee3a63c2d663676de29ac  gcc/testsuite/gcc.target/arm/bti-2.c
! ca89a1298ee462833d5b24dc0d298138  gcc/testsuite/gcc.target/arm/builtin-bswap-1.c
  2b930ef60b0ed29af3cf92e86d988143  gcc/testsuite/gcc.target/arm/builtin-bswap-2.c
! 10d51024d72d319e9ad21f369ba44e39  gcc/testsuite/gcc.target/arm/builtin-bswap.x
  a44e6820d28af4953febbbc86ab18887  gcc/testsuite/gcc.target/arm/builtin-bswap16-1.c
  495680756bf372f5619a696bc526ad09  gcc/testsuite/gcc.target/arm/builtin-bswap16-2.c
  ffe05528d9d41b8523ca6d2cec69fdd3  gcc/testsuite/gcc.target/arm/builtin-bswap16.x
*************** ce1fe2059d8e263b0f3d889cb1392892  gcc/te
*** 59991,59997 ****
  679443fc734534194407169158890899  gcc/testsuite/gcc.target/arm/cmse/cmse-7.x
  a29c7dfe0255ba24ca52aa9293640971  gcc/testsuite/gcc.target/arm/cmse/cmse-8.x
  ce946170746cf737bca71ec699014fef  gcc/testsuite/gcc.target/arm/cmse/cmse-9.c
! 397473f1a48c5b6f6bd4381804634aad  gcc/testsuite/gcc.target/arm/cmse/cmse.exp
  6e9c9a777c4a333e2bdba95bdaf23364  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c
  c540adef0c0a8fc3e8e03fee5f712683  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-5.c
  727ae9b55594654191b60afa67ad5094  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c
--- 64382,64390 ----
  679443fc734534194407169158890899  gcc/testsuite/gcc.target/arm/cmse/cmse-7.x
  a29c7dfe0255ba24ca52aa9293640971  gcc/testsuite/gcc.target/arm/cmse/cmse-8.x
  ce946170746cf737bca71ec699014fef  gcc/testsuite/gcc.target/arm/cmse/cmse-9.c
! 8f64bcb2f75fa93f7207ef4f9b39d06e  gcc/testsuite/gcc.target/arm/cmse/cmse.exp
! 68589fe6cc14ec6e535b037c8db589b9  gcc/testsuite/gcc.target/arm/cmse/extend-param.c
! 448776b3a969f181f903853f8b701bca  gcc/testsuite/gcc.target/arm/cmse/extend-return.c
  6e9c9a777c4a333e2bdba95bdaf23364  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c
  c540adef0c0a8fc3e8e03fee5f712683  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-5.c
  727ae9b55594654191b60afa67ad5094  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c
*************** e95ad2780e346935674e8e065a322d1d  gcc/te
*** 60124,60144 ****
  a1182e17a398d2114e6f9d6156618a24  gcc/testsuite/gcc.target/arm/fmaxmin.x
  2837a07778aef449950a3368be9791fe  gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c
  881ecf60a322e5ee074353b003f87c28  gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c
! 35553655c6f980a60e7c1f3cc0b41685  gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c
! f8d5e67f17aad354a491cc8f84d1eb43  gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c
  f7e509420aab463592a3e5d54b6c6b8c  gcc/testsuite/gcc.target/arm/fp16-builtins-1.c
! 41bfad82a86dda91176255c81f99a1ff  gcc/testsuite/gcc.target/arm/fp16-compile-alt-1.c
! e90e8e086e8d16e845dc45d26da6716b  gcc/testsuite/gcc.target/arm/fp16-compile-alt-10.c
! 4af72802071f1aeed1616b2ad0aee75a  gcc/testsuite/gcc.target/arm/fp16-compile-alt-11.c
! 4eedf95f4201c450aa873492cf362a79  gcc/testsuite/gcc.target/arm/fp16-compile-alt-12.c
! d0dd6e55bfeddee04c5a7bd8b4c683dc  gcc/testsuite/gcc.target/arm/fp16-compile-alt-2.c
! d09ed58b62a4865f9adf2df3f3a871ba  gcc/testsuite/gcc.target/arm/fp16-compile-alt-3.c
! 0dab67cd5dcf5a5bc137351356131bcb  gcc/testsuite/gcc.target/arm/fp16-compile-alt-4.c
! f8a5d9c3e4fd27767c935f13665645fb  gcc/testsuite/gcc.target/arm/fp16-compile-alt-5.c
! fa6149240da5ae9d25d5d2d6e93393e0  gcc/testsuite/gcc.target/arm/fp16-compile-alt-6.c
! 4c4e89009dd22add955943fb3f24807e  gcc/testsuite/gcc.target/arm/fp16-compile-alt-7.c
! 9d7b4af89bb27c82e9c49ef3a9eccfda  gcc/testsuite/gcc.target/arm/fp16-compile-alt-8.c
! 7b46172e4e8b56581fb20650910469e5  gcc/testsuite/gcc.target/arm/fp16-compile-alt-9.c
  61a9dc5929f3e02497be3522800d4372  gcc/testsuite/gcc.target/arm/fp16-compile-exprtype.c
  43e6b64ef2a3d00c1a9e6a6a0096bef6  gcc/testsuite/gcc.target/arm/fp16-compile-ieee-1.c
  19c0ae96a193d21011c1d3557da8e2c6  gcc/testsuite/gcc.target/arm/fp16-compile-ieee-10.c
--- 64517,64537 ----
  a1182e17a398d2114e6f9d6156618a24  gcc/testsuite/gcc.target/arm/fmaxmin.x
  2837a07778aef449950a3368be9791fe  gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c
  881ecf60a322e5ee074353b003f87c28  gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c
! b5b68816acad2ad233b7606bd16f60e0  gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c
! 503ab62871ad29ae7e129eab8fdbd5b3  gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c
  f7e509420aab463592a3e5d54b6c6b8c  gcc/testsuite/gcc.target/arm/fp16-builtins-1.c
! 237aa223257ca24bfddebcc43dd387a2  gcc/testsuite/gcc.target/arm/fp16-compile-alt-1.c
! 85be9f1d24d495b2882fc58bb89a96d2  gcc/testsuite/gcc.target/arm/fp16-compile-alt-10.c
! 6d3f1c1d5570409ec4eda40a97cf7ec3  gcc/testsuite/gcc.target/arm/fp16-compile-alt-11.c
! 94aa2692ca188ae6378ec06c593589a2  gcc/testsuite/gcc.target/arm/fp16-compile-alt-12.c
! a74a582efe355831b8984c5f30e6ea63  gcc/testsuite/gcc.target/arm/fp16-compile-alt-2.c
! 24e090b7b99cbbc32c4f4a1af19897b7  gcc/testsuite/gcc.target/arm/fp16-compile-alt-3.c
! 84d27b11d3b3a9a4bbd2dd2868fa018c  gcc/testsuite/gcc.target/arm/fp16-compile-alt-4.c
! 4055f5e1728933d21d6d2f6035cc45bd  gcc/testsuite/gcc.target/arm/fp16-compile-alt-5.c
! 268e82bed4754f955c50d59f1182c8fc  gcc/testsuite/gcc.target/arm/fp16-compile-alt-6.c
! c948bd7f5182bca9d03fde6a72957d37  gcc/testsuite/gcc.target/arm/fp16-compile-alt-7.c
! a77f63f184c0a7d69890220cca210796  gcc/testsuite/gcc.target/arm/fp16-compile-alt-8.c
! 026938c042cecbb5d9e25d7ee4127720  gcc/testsuite/gcc.target/arm/fp16-compile-alt-9.c
  61a9dc5929f3e02497be3522800d4372  gcc/testsuite/gcc.target/arm/fp16-compile-exprtype.c
  43e6b64ef2a3d00c1a9e6a6a0096bef6  gcc/testsuite/gcc.target/arm/fp16-compile-ieee-1.c
  19c0ae96a193d21011c1d3557da8e2c6  gcc/testsuite/gcc.target/arm/fp16-compile-ieee-10.c
*************** e1bf55d078ccc0f4928c49eb854cdd2c  gcc/te
*** 60158,60164 ****
  8d796d7bd29e4649bde373195abd883c  gcc/testsuite/gcc.target/arm/fp16-inf.c
  35cb1692974e41138772b32d84258e46  gcc/testsuite/gcc.target/arm/fp16-param-1.c
  372e4189c57a6fc5114fd971133b4b2f  gcc/testsuite/gcc.target/arm/fp16-return-1.c
! c9783da849a5942aff3a279f2af962f5  gcc/testsuite/gcc.target/arm/fp16-rounding-alt-1.c
  c516e326d8b57e14b9119f95a0b6d475  gcc/testsuite/gcc.target/arm/fp16-rounding-ieee-1.c
  59b43d7fa573aec56d37e8d3ee175b75  gcc/testsuite/gcc.target/arm/fp16-unprototyped-1.c
  a60c72361842412ed806a9caeafedd5b  gcc/testsuite/gcc.target/arm/fp16-unprototyped-2.c
--- 64551,64557 ----
  8d796d7bd29e4649bde373195abd883c  gcc/testsuite/gcc.target/arm/fp16-inf.c
  35cb1692974e41138772b32d84258e46  gcc/testsuite/gcc.target/arm/fp16-param-1.c
  372e4189c57a6fc5114fd971133b4b2f  gcc/testsuite/gcc.target/arm/fp16-return-1.c
! c19f478780631bf7433e7bd5d48f1e86  gcc/testsuite/gcc.target/arm/fp16-rounding-alt-1.c
  c516e326d8b57e14b9119f95a0b6d475  gcc/testsuite/gcc.target/arm/fp16-rounding-ieee-1.c
  59b43d7fa573aec56d37e8d3ee175b75  gcc/testsuite/gcc.target/arm/fp16-unprototyped-1.c
  a60c72361842412ed806a9caeafedd5b  gcc/testsuite/gcc.target/arm/fp16-unprototyped-2.c
*************** b67a660aeb2f935ac05d4b074c7ca35f  gcc/te
*** 60184,60190 ****
  cc3bf63a2cc1fc74f21c1e57da528622  gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c
  073d2ad8b49199fac2e14a0451022f69  gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c
  23738abdc20d281228fd111ac4144101  gcc/testsuite/gcc.target/arm/ftest-armv7em-thumb.c
! 5c8db3033f6212a7181f9da3a712e939  gcc/testsuite/gcc.target/arm/ftest-armv7m-thumb.c
  38a3e2e4c6d02d03cbf304de6f85a548  gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c
  857ba193cf81b16136d7f157e1c53212  gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c
  2fcf969379fa297319af349434b4878c  gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c
--- 64577,64583 ----
  cc3bf63a2cc1fc74f21c1e57da528622  gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c
  073d2ad8b49199fac2e14a0451022f69  gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c
  23738abdc20d281228fd111ac4144101  gcc/testsuite/gcc.target/arm/ftest-armv7em-thumb.c
! 16a8cd5efb4c918b57fedba7fb49df8c  gcc/testsuite/gcc.target/arm/ftest-armv7m-thumb.c
  38a3e2e4c6d02d03cbf304de6f85a548  gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c
  857ba193cf81b16136d7f157e1c53212  gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c
  2fcf969379fa297319af349434b4878c  gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c
*************** d4443bdada9e4e3255926d63fbf8a076  gcc/te
*** 60193,60199 ****
  441457e096999cf30b99fee8b924f853  gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c
  38e08d940bc9a9e57c4a3f201288491d  gcc/testsuite/gcc.target/arm/ftest-support.h
  771012b8908e8619d0619b8ab08c00bc  gcc/testsuite/gcc.target/arm/fuse-caller-save.c
! 0b800f1c07afa3e06b56f8644fe52ba0  gcc/testsuite/gcc.target/arm/g2.c
  cb9e119b328b5c2a1e304f019876ecad  gcc/testsuite/gcc.target/arm/get_address_cost_aligned_max_offset.c
  12359868a59ebf7bf8463feb3bb796ef  gcc/testsuite/gcc.target/arm/handler-align.c
  ecf3e369bf7ea3b785fa7c81fca39ca9  gcc/testsuite/gcc.target/arm/headmerge-1.c
--- 64586,64592 ----
  441457e096999cf30b99fee8b924f853  gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c
  38e08d940bc9a9e57c4a3f201288491d  gcc/testsuite/gcc.target/arm/ftest-support.h
  771012b8908e8619d0619b8ab08c00bc  gcc/testsuite/gcc.target/arm/fuse-caller-save.c
! 596d1909fed899eb5ffc7a8020a0466a  gcc/testsuite/gcc.target/arm/g2.c
  cb9e119b328b5c2a1e304f019876ecad  gcc/testsuite/gcc.target/arm/get_address_cost_aligned_max_offset.c
  12359868a59ebf7bf8463feb3bb796ef  gcc/testsuite/gcc.target/arm/handler-align.c
  ecf3e369bf7ea3b785fa7c81fca39ca9  gcc/testsuite/gcc.target/arm/headmerge-1.c
*************** bf821309d2cd93b8c0d6b0704742bc45  gcc/te
*** 60229,60244 ****
  bda0b982c40bee2fd28b1750fa6bc2bf  gcc/testsuite/gcc.target/arm/lp1189445.c
  c0ebea9052f8cd9253ee6ff358df5e52  gcc/testsuite/gcc.target/arm/lp1243022.c
  b4f8ad85c07f7be61a90747a85bd0be4  gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
! ae84b7955dc0a27defac5b969be1f806  gcc/testsuite/gcc.target/arm/lto/lto.exp
  90bf73bda834641a0bea89584effe1a7  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c
  636cbd6b191957f3f94b3734e71688a5  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_1.c
  0fe8e2ad477327f013e80d0961d711a8  gcc/testsuite/gcc.target/arm/lto/pr65837-attr_0.c
  9c1d0bd8b530eb85b5c816dc0a3e7423  gcc/testsuite/gcc.target/arm/lto/pr65837_0.c
  5af2b12c815bb15417b5f4b3667368b3  gcc/testsuite/gcc.target/arm/lto/pr96939_0.c
! 54703ebb10b5ea0e3b0410412157221f  gcc/testsuite/gcc.target/arm/lto/pr96939_1.c
! bbec60a3809be2a64fe690e41e9880fa  gcc/testsuite/gcc.target/arm/macro_defs0.c
! 847b15c15d7e48b10ccc606bb2503847  gcc/testsuite/gcc.target/arm/macro_defs1.c
! 124b8184e718e7e16799430a99e76983  gcc/testsuite/gcc.target/arm/macro_defs2.c
  992923ff987c3f4f952a04e11fea3029  gcc/testsuite/gcc.target/arm/maskdata.c
  005470d1710eae11e6e158418d79d3a7  gcc/testsuite/gcc.target/arm/max-insns-skipped.c
  7588a0bf83f9bb0e0fbf403314a1ff95  gcc/testsuite/gcc.target/arm/memcpy-aligned-1.c
--- 64622,64637 ----
  bda0b982c40bee2fd28b1750fa6bc2bf  gcc/testsuite/gcc.target/arm/lp1189445.c
  c0ebea9052f8cd9253ee6ff358df5e52  gcc/testsuite/gcc.target/arm/lp1243022.c
  b4f8ad85c07f7be61a90747a85bd0be4  gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
! 1d0576ab8c00f065330ae25a2ca673d6  gcc/testsuite/gcc.target/arm/lto/lto.exp
  90bf73bda834641a0bea89584effe1a7  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c
  636cbd6b191957f3f94b3734e71688a5  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_1.c
  0fe8e2ad477327f013e80d0961d711a8  gcc/testsuite/gcc.target/arm/lto/pr65837-attr_0.c
  9c1d0bd8b530eb85b5c816dc0a3e7423  gcc/testsuite/gcc.target/arm/lto/pr65837_0.c
  5af2b12c815bb15417b5f4b3667368b3  gcc/testsuite/gcc.target/arm/lto/pr96939_0.c
! a86a3f3c6c1c6d7dc8271acb46abe110  gcc/testsuite/gcc.target/arm/lto/pr96939_1.c
! 4a895f6b9a2ea62053aa54a66629a5a3  gcc/testsuite/gcc.target/arm/macro_defs0.c
! 7d48850c7c0f14894c8ae56eda6aa27b  gcc/testsuite/gcc.target/arm/macro_defs1.c
! 55356a1ea88fba61f865de51904eb4a9  gcc/testsuite/gcc.target/arm/macro_defs2.c
  992923ff987c3f4f952a04e11fea3029  gcc/testsuite/gcc.target/arm/maskdata.c
  005470d1710eae11e6e158418d79d3a7  gcc/testsuite/gcc.target/arm/max-insns-skipped.c
  7588a0bf83f9bb0e0fbf403314a1ff95  gcc/testsuite/gcc.target/arm/memcpy-aligned-1.c
*************** c6b1f31177a60b170040e0eddc1787ba  gcc/te
*** 60265,60280 ****
  7b0294d6197317c05cb3accfdbee95d9  gcc/testsuite/gcc.target/arm/movhi_movw.c
  484b6553c962caa2f0746fa65de739e8  gcc/testsuite/gcc.target/arm/movsi_movt.c
  190ffba53357096715f051384c38965b  gcc/testsuite/gcc.target/arm/movsi_movw.c
! e7756a9be4efbfccc1e126064251e13a  gcc/testsuite/gcc.target/arm/multilib.exp
  56a0fbce4d79d10043dc3f64ce0aa364  gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_1.c
  f7aa4c937541029a5bd3fe618bef6974  gcc/testsuite/gcc.target/arm/mve/general/double_pragmas_1.c
  e787e32385a63c5e015b59725e3d0250  gcc/testsuite/gcc.target/arm/mve/general/nomve_1.c
  398e4816db99fac1f05cd83d7d9911ec  gcc/testsuite/gcc.target/arm/mve/general/preserve_user_namespace_1.c
  2884159c19b60a0ae3743c8a1b9c6729  gcc/testsuite/gcc.target/arm/mve/intrinsics/asrl.c
  c52dd6cedef3761b071c005d8eda4014  gcc/testsuite/gcc.target/arm/mve/intrinsics/lsll.c
  8742cb74c36fe44acebeaf852842a44d  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve-vldstr16-no-writeback.c
! f846a99fa37aa6932ef3fa1100fa2e84  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu1.c
! a23662cdce162388aafacd6bd5ae8401  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu2.c
  132717e92c239271ccfc4f567a61fd56  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu1.c
  7831959c4528e6a37429d37461c09bd6  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu2.c
  9b8afb9ef88ec69d20f93267dfc70f09  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu3.c
--- 64658,64680 ----
  7b0294d6197317c05cb3accfdbee95d9  gcc/testsuite/gcc.target/arm/movhi_movw.c
  484b6553c962caa2f0746fa65de739e8  gcc/testsuite/gcc.target/arm/movsi_movt.c
  190ffba53357096715f051384c38965b  gcc/testsuite/gcc.target/arm/movsi_movw.c
! f42e92224664e9fa5060a38f34f8bd42  gcc/testsuite/gcc.target/arm/mtp.c
! ece96d078d4f7198568ffe0fd40fcb07  gcc/testsuite/gcc.target/arm/mtp_1.c
! 60bfcb1ec9c219dadd4107a6ec6428f2  gcc/testsuite/gcc.target/arm/mtp_2.c
! 1b224c33e828ab92e89518827722e740  gcc/testsuite/gcc.target/arm/mtp_3.c
! e7f8bfccdb68c02a11bd2ceca91edcf7  gcc/testsuite/gcc.target/arm/mtp_4.c
! 4564c956ea9877ed020615ade716e0b2  gcc/testsuite/gcc.target/arm/multilib.exp
! 25a47cd160e73409cb11626721346fe7  gcc/testsuite/gcc.target/arm/mve/general-c/nomve_fp_1.c
  56a0fbce4d79d10043dc3f64ce0aa364  gcc/testsuite/gcc.target/arm/mve/general-c/type_redef_1.c
+ 7913199bfd3408d69e28f6fb3e23c0be  gcc/testsuite/gcc.target/arm/mve/general-c/vreinterpretq_1.c
  f7aa4c937541029a5bd3fe618bef6974  gcc/testsuite/gcc.target/arm/mve/general/double_pragmas_1.c
  e787e32385a63c5e015b59725e3d0250  gcc/testsuite/gcc.target/arm/mve/general/nomve_1.c
  398e4816db99fac1f05cd83d7d9911ec  gcc/testsuite/gcc.target/arm/mve/general/preserve_user_namespace_1.c
  2884159c19b60a0ae3743c8a1b9c6729  gcc/testsuite/gcc.target/arm/mve/intrinsics/asrl.c
  c52dd6cedef3761b071c005d8eda4014  gcc/testsuite/gcc.target/arm/mve/intrinsics/lsll.c
  8742cb74c36fe44acebeaf852842a44d  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve-vldstr16-no-writeback.c
! 755209da383c0bfcbef14b5d5e67e63c  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu1.c
! c7eb5530f2e54a5355602534aff7aad0  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu2.c
  132717e92c239271ccfc4f567a61fd56  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu1.c
  7831959c4528e6a37429d37461c09bd6  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu2.c
  9b8afb9ef88ec69d20f93267dfc70f09  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu3.c
*************** a784171370ee888e8a7d32d5bb1b2379  gcc/te
*** 62510,62517 ****
  8715b8892906cef64d0686fae26d5a7f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsriq_n_u16.c
  3d126af6c85e0923c87a96cdac83bf77  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsriq_n_u32.c
  e827108f7e891623e4d78420f9cffec4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsriq_n_u8.c
! 5ba39740a461cedfdb4daaf96f9823e3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_f16.c
! 18f4b674ba45a97d973654ac6edbbfed  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_f32.c
  0724d6e806dad6a0671e1e1030632af1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_f16.c
  5c93964a36e41d018e4b079091f17f88  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_f32.c
  15331b6bb19d2c8bc7f58e1103b19ef7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_s16.c
--- 66910,66917 ----
  8715b8892906cef64d0686fae26d5a7f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsriq_n_u16.c
  3d126af6c85e0923c87a96cdac83bf77  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsriq_n_u32.c
  e827108f7e891623e4d78420f9cffec4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsriq_n_u8.c
! 3213b1f12734513782cb09134fa1cf65  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_f16.c
! 8f3799622bf9365b0c6122ec41285f00  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_f32.c
  0724d6e806dad6a0671e1e1030632af1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_f16.c
  5c93964a36e41d018e4b079091f17f88  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_f32.c
  15331b6bb19d2c8bc7f58e1103b19ef7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_s16.c
*************** ec79b84bf99c471ebd242745f05d7081  gcc/te
*** 62520,62531 ****
  02dcff2fbdbaa32c11780a228054a19b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u16.c
  716955523861c2f2fc924f3c6da4599b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u32.c
  6191b75197c8189efa5e192e5ea09d57  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u8.c
! 5c38761e7e527220b89b98d52a583c1b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s16.c
! ccf3e9b150afef964784c2c636ea4eb4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s32.c
! 9c553d037e45471aa0a94eeb03ba0241  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s8.c
! 634c38ef2a0a9d6bfd11540aff5a0b6c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u16.c
! 920ecbe1ef74c2fde2616df4ea17706e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u32.c
! 4d80fe3bf218f76fbaaea0f71a706b80  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u8.c
  9f603e079fab043b8c08a8786bf24e8a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_f16.c
  41daae8e63f53762def00088b3df1d49  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_f32.c
  ab8fe598ed86f6cb119a3abc035da277  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_s16.c
--- 66920,66931 ----
  02dcff2fbdbaa32c11780a228054a19b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u16.c
  716955523861c2f2fc924f3c6da4599b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u32.c
  6191b75197c8189efa5e192e5ea09d57  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_p_u8.c
! a762b293ef18a574dad71d43f925d66b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s16.c
! 19253c689f5f50e8a4f2df711234de2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s32.c
! c578767e4bf5a50b512b4bf54a3da51c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_s8.c
! a6c544c64ffd847f9cc23f86b92eef1c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u16.c
! d3fdb6810590ac585bb82dec1e188563  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u32.c
! a8490fe32916753f23e24d9fb33fbf87  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst1q_u8.c
  9f603e079fab043b8c08a8786bf24e8a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_f16.c
  41daae8e63f53762def00088b3df1d49  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_f32.c
  ab8fe598ed86f6cb119a3abc035da277  gcc/testsuite/gcc.target/arm/mve/intrinsics/vst2q_s16.c
*************** d5068cbd7a08c2cb2252064ce7d7f5b2  gcc/te
*** 62694,62704 ****
  1b1caac6115bffedba10607ae46ecb1a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_float1.c
  dd8187345c556677b24a6d6363dd2cf5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c
  140114add4d912efe3ae58837e07a2e9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c
! 3c96b97a8cb10e25816aaa9094533908  gcc/testsuite/gcc.target/arm/mve/mve.exp
  0d8124a63664354decc1577f5a019490  gcc/testsuite/gcc.target/arm/mve/mve_const_shifts.c
  844c3ba72612fb8dee47abb3578cbd7d  gcc/testsuite/gcc.target/arm/mve/mve_load_memory_modes.c
  c0dde028cd8e5d714e98c74caa23c249  gcc/testsuite/gcc.target/arm/mve/mve_store_memory_modes.c
! 2790f5cb934844b57568e7e66e5a5077  gcc/testsuite/gcc.target/arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c
  28756e11817e21b4baba9ba369b61c1a  gcc/testsuite/gcc.target/arm/mve/mve_vpt.c
  1898761e9d8b35657c796620a30ff540  gcc/testsuite/gcc.target/arm/mve/pr107987.c
  8058f9e4ee7ad1cb4b0efe6e1d8aeb7b  gcc/testsuite/gcc.target/arm/mve/pr108177-1-run.c
--- 67094,67104 ----
  1b1caac6115bffedba10607ae46ecb1a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_float1.c
  dd8187345c556677b24a6d6363dd2cf5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c
  140114add4d912efe3ae58837e07a2e9  gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c
! 165b841f1c235a0a27e31a7ce5173f93  gcc/testsuite/gcc.target/arm/mve/mve.exp
  0d8124a63664354decc1577f5a019490  gcc/testsuite/gcc.target/arm/mve/mve_const_shifts.c
  844c3ba72612fb8dee47abb3578cbd7d  gcc/testsuite/gcc.target/arm/mve/mve_load_memory_modes.c
  c0dde028cd8e5d714e98c74caa23c249  gcc/testsuite/gcc.target/arm/mve/mve_store_memory_modes.c
! f7f268f70cde2ac6db727205a8c67174  gcc/testsuite/gcc.target/arm/mve/mve_vadcq_vsbcq_fpscr_overwrite.c
  28756e11817e21b4baba9ba369b61c1a  gcc/testsuite/gcc.target/arm/mve/mve_vpt.c
  1898761e9d8b35657c796620a30ff540  gcc/testsuite/gcc.target/arm/mve/pr107987.c
  8058f9e4ee7ad1cb4b0efe6e1d8aeb7b  gcc/testsuite/gcc.target/arm/mve/pr108177-1-run.c
*************** be3211364ab68484e27dc759e0f73f8e  gcc/te
*** 62733,62738 ****
--- 67133,67140 ----
  18522c58df95c4bb74f07216f5d84eb4  gcc/testsuite/gcc.target/arm/mve/pr108177.x
  862598210b4a0190e89ee162ce0a04f3  gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
  213c8f121b27265f0cfdb5f2363a9259  gcc/testsuite/gcc.target/arm/mve/pr108443.c
+ 1c540ef82a18535044e3c7c503f29ca2  gcc/testsuite/gcc.target/arm/mve/pr112337.c
+ 095178c5b2acf07de5ab779ded29286b  gcc/testsuite/gcc.target/arm/mve/pr114323.c
  a27c7480ff5cba860dda5da683bb3b87  gcc/testsuite/gcc.target/arm/naked-1.c
  292c423c2aa66b03398c922259527367  gcc/testsuite/gcc.target/arm/naked-2.c
  2d75e6bd9379b6e090e6104b97434376  gcc/testsuite/gcc.target/arm/negdi-1.c
*************** bce9be46a9e956c5fcc66bfb68691f0f  gcc/te
*** 62752,62757 ****
--- 67154,67160 ----
  92d7537f3966988f20d05b94977b3beb  gcc/testsuite/gcc.target/arm/neon-modes-3.c
  4e0cca6bc39f2d3cecf9ea72ec4b0d52  gcc/testsuite/gcc.target/arm/neon-nested-apcs.c
  7783093cce901b3a47068de662227a6b  gcc/testsuite/gcc.target/arm/neon-offset-1.c
+ 2f0d808ded25a27c867026ac6296d1b9  gcc/testsuite/gcc.target/arm/neon-recip-div-1.c
  1f48b8fad239c5f29804610f9f08ce99  gcc/testsuite/gcc.target/arm/neon-reload-class.c
  79e2b86f1be68bc1014fb6b480d5322f  gcc/testsuite/gcc.target/arm/neon-thumb2-move.c
  add75049520bb3c0c677317469ccb57e  gcc/testsuite/gcc.target/arm/neon-vadds64.c
*************** ee6c93458553e35ec5433a6d1072b62e  gcc/te
*** 62833,62841 ****
  46fabf7d3b6b2ea6203c6c79381673c9  gcc/testsuite/gcc.target/arm/no-align.c
  d9176edb2d4bd04cd070915cebff5f2a  gcc/testsuite/gcc.target/arm/no-volatile-in-it.c
  6188396ca8a78fbad6544a226338aa28  gcc/testsuite/gcc.target/arm/no-wmla-1.c
! 149a0cf89600ca690106d2b6482bf84a  gcc/testsuite/gcc.target/arm/optional_thumb-1.c
  dd0827774a767586a558dee375d638d3  gcc/testsuite/gcc.target/arm/optional_thumb-2.c
! 7f513f196dcd13462f6ac0cd6ce1da4d  gcc/testsuite/gcc.target/arm/optional_thumb-3.c
  cd79f6a8a6619bfb4deabfdd64ef1d49  gcc/testsuite/gcc.target/arm/pac-1.c
  0f3f42e604f65aa2313ffa8acf201e4e  gcc/testsuite/gcc.target/arm/pac-10.c
  c0018f3211f42533b453803a006dcb93  gcc/testsuite/gcc.target/arm/pac-11.c
--- 67236,67244 ----
  46fabf7d3b6b2ea6203c6c79381673c9  gcc/testsuite/gcc.target/arm/no-align.c
  d9176edb2d4bd04cd070915cebff5f2a  gcc/testsuite/gcc.target/arm/no-volatile-in-it.c
  6188396ca8a78fbad6544a226338aa28  gcc/testsuite/gcc.target/arm/no-wmla-1.c
! 79001c723c0e36b517c6b940c0b48388  gcc/testsuite/gcc.target/arm/optional_thumb-1.c
  dd0827774a767586a558dee375d638d3  gcc/testsuite/gcc.target/arm/optional_thumb-2.c
! 269954746bcea7cb5769275244223510  gcc/testsuite/gcc.target/arm/optional_thumb-3.c
  cd79f6a8a6619bfb4deabfdd64ef1d49  gcc/testsuite/gcc.target/arm/pac-1.c
  0f3f42e604f65aa2313ffa8acf201e4e  gcc/testsuite/gcc.target/arm/pac-10.c
  c0018f3211f42533b453803a006dcb93  gcc/testsuite/gcc.target/arm/pac-11.c
*************** ef10b7803f7ace6199521b5e4c9428a0  gcc/te
*** 62851,62856 ****
--- 67254,67260 ----
  12b022cc37717c3bfd0b8e98e9ed0a33  gcc/testsuite/gcc.target/arm/pac-7.c
  34aba47ad65c3950a41fc2c64c4861cf  gcc/testsuite/gcc.target/arm/pac-8.c
  1f9b68eab435a69c70be7fdee6ed275f  gcc/testsuite/gcc.target/arm/pac-9.c
+ 5fc600a11e9ef844b77eb834b6fd363c  gcc/testsuite/gcc.target/arm/pac-sibcall.c
  1115daad97541e167c5651bc1032e202  gcc/testsuite/gcc.target/arm/pac.h
  37a9218c79439946d7d0121ec2abee72  gcc/testsuite/gcc.target/arm/peep-ldrd-1.c
  ce2ea998f70f030c1e5c5cf0f3536bd7  gcc/testsuite/gcc.target/arm/peep-ldrd-2.c
*************** ca03d4215dfd4e98fc1d17e6890fcc4a  gcc/te
*** 62860,62866 ****
  2f719adc3f3e3724629a17daf9bb2e71  gcc/testsuite/gcc.target/arm/pr100775.c
  b78ed4b32814a22ad0cf1f46aee89cc8  gcc/testsuite/gcc.target/arm/pr105312.c
  d59d090be25d48a18820542cf3abe1eb  gcc/testsuite/gcc.target/arm/pr109939.c
! 03b84ccc5b909e6ece59f619e9298211  gcc/testsuite/gcc.target/arm/pr19599.c
  3425143e88f989a8f52f345e6237106a  gcc/testsuite/gcc.target/arm/pr26702.c
  fc0dd660f56108005b4f0b142e94d10d  gcc/testsuite/gcc.target/arm/pr37780_1.c
  0cf9145284e787c538df3913bd69a329  gcc/testsuite/gcc.target/arm/pr39839.c
--- 67264,67274 ----
  2f719adc3f3e3724629a17daf9bb2e71  gcc/testsuite/gcc.target/arm/pr100775.c
  b78ed4b32814a22ad0cf1f46aee89cc8  gcc/testsuite/gcc.target/arm/pr105312.c
  d59d090be25d48a18820542cf3abe1eb  gcc/testsuite/gcc.target/arm/pr109939.c
! 783749b808801f545a547539f41dec21  gcc/testsuite/gcc.target/arm/pr110268-1.c
! 64df4c73d4d8e79ee289d41e18bf6095  gcc/testsuite/gcc.target/arm/pr110268-2.c
! e9f9686fc9b3d00e6675347491ea18ce  gcc/testsuite/gcc.target/arm/pr111235.c
! a1fe9428938050a47df83f9ccfccf156  gcc/testsuite/gcc.target/arm/pr112337.c
! 3ce2c6a399da67ae36390d522e1f1296  gcc/testsuite/gcc.target/arm/pr19599.c
  3425143e88f989a8f52f345e6237106a  gcc/testsuite/gcc.target/arm/pr26702.c
  fc0dd660f56108005b4f0b142e94d10d  gcc/testsuite/gcc.target/arm/pr37780_1.c
  0cf9145284e787c538df3913bd69a329  gcc/testsuite/gcc.target/arm/pr39839.c
*************** de6431d80bdeb202e278026554164376  gcc/te
*** 62925,62931 ****
  0f88d92f71989ee4311f8e64e481879b  gcc/testsuite/gcc.target/arm/pr53447-2.c
  251ccb5884ca5d49fb49eac8544c1304  gcc/testsuite/gcc.target/arm/pr53447-3.c
  5742f15de268dcad9e7c912034374daa  gcc/testsuite/gcc.target/arm/pr53447-4.c
! 6f41e44f9e2fb752e24f68fef4ee357b  gcc/testsuite/gcc.target/arm/pr53447-5.c
  9a6c78c74218ccc7be4511d7bbf530d0  gcc/testsuite/gcc.target/arm/pr53636.c
  4f8bbd8590bd295e95df0cfef75e77cb  gcc/testsuite/gcc.target/arm/pr53859.c
  6af15a37f89b2eda59754bf3f8c6c2d3  gcc/testsuite/gcc.target/arm/pr54051.c
--- 67333,67339 ----
  0f88d92f71989ee4311f8e64e481879b  gcc/testsuite/gcc.target/arm/pr53447-2.c
  251ccb5884ca5d49fb49eac8544c1304  gcc/testsuite/gcc.target/arm/pr53447-3.c
  5742f15de268dcad9e7c912034374daa  gcc/testsuite/gcc.target/arm/pr53447-4.c
! fa376788ea1ab780cf88253abbe02fc0  gcc/testsuite/gcc.target/arm/pr53447-5.c
  9a6c78c74218ccc7be4511d7bbf530d0  gcc/testsuite/gcc.target/arm/pr53636.c
  4f8bbd8590bd295e95df0cfef75e77cb  gcc/testsuite/gcc.target/arm/pr53859.c
  6af15a37f89b2eda59754bf3f8c6c2d3  gcc/testsuite/gcc.target/arm/pr54051.c
*************** f959f5c10e21a15d658780237062fe2c  gcc/te
*** 62936,62942 ****
  54166fd5f347708a423e88701c6c6679  gcc/testsuite/gcc.target/arm/pr58041.c
  3549acaa8c64d511367164d1fce14e18  gcc/testsuite/gcc.target/arm/pr58578.c
  dc9b43e8f5f7f2502fa16b8711f16a88  gcc/testsuite/gcc.target/arm/pr58784.c
! d3cbb4759ca5dfc7c1f380d7a5b63458  gcc/testsuite/gcc.target/arm/pr59575.c
  0d695763a5ab39b1576c1db1efd0c2ec  gcc/testsuite/gcc.target/arm/pr59858.c
  39260c40447562253e3ad118b62c162f  gcc/testsuite/gcc.target/arm/pr59896.c
  d02477312e978591c331d9c0ba4f9f70  gcc/testsuite/gcc.target/arm/pr59923.c
--- 67344,67350 ----
  54166fd5f347708a423e88701c6c6679  gcc/testsuite/gcc.target/arm/pr58041.c
  3549acaa8c64d511367164d1fce14e18  gcc/testsuite/gcc.target/arm/pr58578.c
  dc9b43e8f5f7f2502fa16b8711f16a88  gcc/testsuite/gcc.target/arm/pr58784.c
! f4720d81bf2117a9782aa93b0ded5923  gcc/testsuite/gcc.target/arm/pr59575.c
  0d695763a5ab39b1576c1db1efd0c2ec  gcc/testsuite/gcc.target/arm/pr59858.c
  39260c40447562253e3ad118b62c162f  gcc/testsuite/gcc.target/arm/pr59896.c
  d02477312e978591c331d9c0ba4f9f70  gcc/testsuite/gcc.target/arm/pr59923.c
*************** a24a83b67035822b706f3721d2778fcd  gcc/te
*** 62944,62953 ****
  fcb367b7d7625c8d2ceeae5e133a2c18  gcc/testsuite/gcc.target/arm/pr60606-2.c
  114c6738cce394870e68b64892961ceb  gcc/testsuite/gcc.target/arm/pr60606-3.c
  7498e1b7fa8952e3d9eac7a211b012ca  gcc/testsuite/gcc.target/arm/pr60606-4.c
! d75d5d24e6babb0fecde11a6866f182a  gcc/testsuite/gcc.target/arm/pr60650-2.c
  dd89c1faa772f50df78a54a9514f4728  gcc/testsuite/gcc.target/arm/pr60650.c
! e4068fe4daffcb3c0c0ef0bc997656b9  gcc/testsuite/gcc.target/arm/pr60657.c
! e99c0ffc541ed18959ef3f75614b4923  gcc/testsuite/gcc.target/arm/pr60663.c
  8b14f6a79d37229ed4d5153fe3389de1  gcc/testsuite/gcc.target/arm/pr61948.c
  5fdae85bb8a321060a991fe154549488  gcc/testsuite/gcc.target/arm/pr63210.c
  090e3a4d2e2fdbab7b1d5b0be5ab12a3  gcc/testsuite/gcc.target/arm/pr63408.c
--- 67352,67361 ----
  fcb367b7d7625c8d2ceeae5e133a2c18  gcc/testsuite/gcc.target/arm/pr60606-2.c
  114c6738cce394870e68b64892961ceb  gcc/testsuite/gcc.target/arm/pr60606-3.c
  7498e1b7fa8952e3d9eac7a211b012ca  gcc/testsuite/gcc.target/arm/pr60606-4.c
! 3fa3a7f01c31a9f19bc3597e4973e4ae  gcc/testsuite/gcc.target/arm/pr60650-2.c
  dd89c1faa772f50df78a54a9514f4728  gcc/testsuite/gcc.target/arm/pr60650.c
! 80d8b2b95ce38433be26f63633a0c397  gcc/testsuite/gcc.target/arm/pr60657.c
! 8944fa0da632677ab8035fce58e92bb2  gcc/testsuite/gcc.target/arm/pr60663.c
  8b14f6a79d37229ed4d5153fe3389de1  gcc/testsuite/gcc.target/arm/pr61948.c
  5fdae85bb8a321060a991fe154549488  gcc/testsuite/gcc.target/arm/pr63210.c
  090e3a4d2e2fdbab7b1d5b0be5ab12a3  gcc/testsuite/gcc.target/arm/pr63408.c
*************** ba50e02461bee64efbeb4ab6a3ee0cbb  gcc/te
*** 62960,62966 ****
  f14c68ee63b6ef2e00f28b8452830aaf  gcc/testsuite/gcc.target/arm/pr64744-2.c
  9f632e04b7517bef89552e65e30fb9bf  gcc/testsuite/gcc.target/arm/pr64818.c
  19016b19d283f52e6e1c80fd2dfb6350  gcc/testsuite/gcc.target/arm/pr65067.c
! 8d1bcaef30bf3f9024b8cb7ddf31c520  gcc/testsuite/gcc.target/arm/pr65647-2.c
  1379a6cdc93a6cb32d9b29f8e84aeef3  gcc/testsuite/gcc.target/arm/pr65647.c
  80a1221cd010aa9d1bfa0ce02f075b90  gcc/testsuite/gcc.target/arm/pr65710.c
  73f9e867b1e36eb5931644947e88045b  gcc/testsuite/gcc.target/arm/pr65729.c
--- 67368,67374 ----
  f14c68ee63b6ef2e00f28b8452830aaf  gcc/testsuite/gcc.target/arm/pr64744-2.c
  9f632e04b7517bef89552e65e30fb9bf  gcc/testsuite/gcc.target/arm/pr64818.c
  19016b19d283f52e6e1c80fd2dfb6350  gcc/testsuite/gcc.target/arm/pr65067.c
! 8a9397dc502bc9627f836caa186dbc4d  gcc/testsuite/gcc.target/arm/pr65647-2.c
  1379a6cdc93a6cb32d9b29f8e84aeef3  gcc/testsuite/gcc.target/arm/pr65647.c
  80a1221cd010aa9d1bfa0ce02f075b90  gcc/testsuite/gcc.target/arm/pr65710.c
  73f9e867b1e36eb5931644947e88045b  gcc/testsuite/gcc.target/arm/pr65729.c
*************** a87cd0f693aebc8497bfb2473f178e4c  gcc/te
*** 62994,63007 ****
  68c26348d2a6791f295710024aba5c21  gcc/testsuite/gcc.target/arm/pr78041.c
  7ff23bd8b3754acf52c8f22104b1f9b6  gcc/testsuite/gcc.target/arm/pr78255-1.c
  45646c314a5e5bf7cade479b55622520  gcc/testsuite/gcc.target/arm/pr78255-2.c
! 042f604ace69e00ceb1db3ccd28a79e4  gcc/testsuite/gcc.target/arm/pr78353-1.c
! b79c2d18ae7e330b89264897e8430bf4  gcc/testsuite/gcc.target/arm/pr78353-2.c
  d818fe5994fb2978716480bd4e16254f  gcc/testsuite/gcc.target/arm/pr79058.c
  e9273f96fab761cd7ea5079114cf850a  gcc/testsuite/gcc.target/arm/pr79131-1.c
  9af668f971102617e44a1aabe76bd18b  gcc/testsuite/gcc.target/arm/pr79131-2.c
  3116e99b993df2059971c2fae6d9b6b0  gcc/testsuite/gcc.target/arm/pr79145.c
  19c999613c5cb39b3c8e5a4be43e416a  gcc/testsuite/gcc.target/arm/pr79239.c
! 60f860b067bcece27bca7c27b8a769d8  gcc/testsuite/gcc.target/arm/pr81863.c
  8be1830a6ab834d38ea072aa6d567865  gcc/testsuite/gcc.target/arm/pr82518.c
  433157273902c9544461f755ababe38e  gcc/testsuite/gcc.target/arm/pr82989.c
  c3c03d98bf1110fec6902ef64b984fde  gcc/testsuite/gcc.target/arm/pr83687.c
--- 67402,67415 ----
  68c26348d2a6791f295710024aba5c21  gcc/testsuite/gcc.target/arm/pr78041.c
  7ff23bd8b3754acf52c8f22104b1f9b6  gcc/testsuite/gcc.target/arm/pr78255-1.c
  45646c314a5e5bf7cade479b55622520  gcc/testsuite/gcc.target/arm/pr78255-2.c
! ec8c4ff3af03507f30ead4557a13b160  gcc/testsuite/gcc.target/arm/pr78353-1.c
! f7764fa4377a6050626f28e9a6bdc097  gcc/testsuite/gcc.target/arm/pr78353-2.c
  d818fe5994fb2978716480bd4e16254f  gcc/testsuite/gcc.target/arm/pr79058.c
  e9273f96fab761cd7ea5079114cf850a  gcc/testsuite/gcc.target/arm/pr79131-1.c
  9af668f971102617e44a1aabe76bd18b  gcc/testsuite/gcc.target/arm/pr79131-2.c
  3116e99b993df2059971c2fae6d9b6b0  gcc/testsuite/gcc.target/arm/pr79145.c
  19c999613c5cb39b3c8e5a4be43e416a  gcc/testsuite/gcc.target/arm/pr79239.c
! 25dd3a45c16c6a81452676fe2dd2fe37  gcc/testsuite/gcc.target/arm/pr81863.c
  8be1830a6ab834d38ea072aa6d567865  gcc/testsuite/gcc.target/arm/pr82518.c
  433157273902c9544461f755ababe38e  gcc/testsuite/gcc.target/arm/pr82989.c
  c3c03d98bf1110fec6902ef64b984fde  gcc/testsuite/gcc.target/arm/pr83687.c
*************** e279a2811aa09df5a0ba9cb6b9fd5c6d  gcc/te
*** 63013,63019 ****
  40076045a4c00e49c70de6a7a08bea67  gcc/testsuite/gcc.target/arm/pr86640.c
  13b419ece183c8289f8cd381a21bd825  gcc/testsuite/gcc.target/arm/pr88167-1.c
  061a3fd61673c5c82f24f6000121e426  gcc/testsuite/gcc.target/arm/pr88167-2.c
! c11a83f6e8e6cfecb2d201bb9832efb3  gcc/testsuite/gcc.target/arm/pr88648-asm-syntax-unified.c
  7b0e297d62102568ff399d15acdcc21a  gcc/testsuite/gcc.target/arm/pr88850-2.c
  abdf1bb4a331fd1ce60a010f9cea7a9f  gcc/testsuite/gcc.target/arm/pr88850.c
  c6644644f11735f6f9c0967e73bd841d  gcc/testsuite/gcc.target/arm/pr89093-2.c
--- 67421,67427 ----
  40076045a4c00e49c70de6a7a08bea67  gcc/testsuite/gcc.target/arm/pr86640.c
  13b419ece183c8289f8cd381a21bd825  gcc/testsuite/gcc.target/arm/pr88167-1.c
  061a3fd61673c5c82f24f6000121e426  gcc/testsuite/gcc.target/arm/pr88167-2.c
! 15726e6d74e9ce6ede5d9af682a2f312  gcc/testsuite/gcc.target/arm/pr88648-asm-syntax-unified.c
  7b0e297d62102568ff399d15acdcc21a  gcc/testsuite/gcc.target/arm/pr88850-2.c
  abdf1bb4a331fd1ce60a010f9cea7a9f  gcc/testsuite/gcc.target/arm/pr88850.c
  c6644644f11735f6f9c0967e73bd841d  gcc/testsuite/gcc.target/arm/pr89093-2.c
*************** b70e117682ea2c3ea32336823df49031  gcc/te
*** 63032,63050 ****
  d82900f431e8901b0c85c6ec6602768b  gcc/testsuite/gcc.target/arm/pr95646.c
  fe5e1dadd9ea1e8cccb81773046e8da9  gcc/testsuite/gcc.target/arm/pr97528.c
  0acfbc30986a6ae2c5d696f4f52554ec  gcc/testsuite/gcc.target/arm/pr97872.c
! 5a0206dfb3c3b92c728997ed8090982f  gcc/testsuite/gcc.target/arm/pr97969.c
  d1cd03d23aee2b254c487e2374882458  gcc/testsuite/gcc.target/arm/pr98636.c
! 8e9eaa5b1ef39697d0a8c3be3ef47e30  gcc/testsuite/gcc.target/arm/pr98931.c
  dfc2cd714cdc3607e121f73074613d5d  gcc/testsuite/gcc.target/arm/pr99592.c
  ea503c77c48a0e40d96c6afcc7523f85  gcc/testsuite/gcc.target/arm/pr99596.c
  8791a633f5b84ed5331bf9cba1e68e6e  gcc/testsuite/gcc.target/arm/pr99724.c
  38e2ef1e7dbe41d15f1fe7459a11571d  gcc/testsuite/gcc.target/arm/pr99727.c
  0fbbfb8f043defb1e2b0991415909c85  gcc/testsuite/gcc.target/arm/pr99786.c
  ec5230c6f63b4a45740b6ae0d8e7b39c  gcc/testsuite/gcc.target/arm/pr99977.c
! a57b4669de94641d7fba5928bf1f8ca0  gcc/testsuite/gcc.target/arm/pragma_arch_attribute.c
! d1fa915a7ba92f09b7cb8676f62a0974  gcc/testsuite/gcc.target/arm/pragma_arch_attribute_2.c
! 5184d53e7d6c028c1c22ef106f053ed7  gcc/testsuite/gcc.target/arm/pragma_arch_attribute_3.c
! 5a8f24349410b442bd8a74d44f67e35b  gcc/testsuite/gcc.target/arm/pragma_arch_switch_2.c
  69a76bf30e898a884452a47f57250f63  gcc/testsuite/gcc.target/arm/pragma_attribute.c
  71ad4b41bc5bd0250d3207f161968628  gcc/testsuite/gcc.target/arm/pragma_cde.c
  9116a1dcd409b76a55fc08b4255c9d50  gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c
--- 67440,67459 ----
  d82900f431e8901b0c85c6ec6602768b  gcc/testsuite/gcc.target/arm/pr95646.c
  fe5e1dadd9ea1e8cccb81773046e8da9  gcc/testsuite/gcc.target/arm/pr97528.c
  0acfbc30986a6ae2c5d696f4f52554ec  gcc/testsuite/gcc.target/arm/pr97872.c
! f7e798ca127e21e85d4765f1feb52337  gcc/testsuite/gcc.target/arm/pr97969.c
  d1cd03d23aee2b254c487e2374882458  gcc/testsuite/gcc.target/arm/pr98636.c
! ffaef2f11095458b1dee423809dce0fa  gcc/testsuite/gcc.target/arm/pr98931.c
  dfc2cd714cdc3607e121f73074613d5d  gcc/testsuite/gcc.target/arm/pr99592.c
  ea503c77c48a0e40d96c6afcc7523f85  gcc/testsuite/gcc.target/arm/pr99596.c
  8791a633f5b84ed5331bf9cba1e68e6e  gcc/testsuite/gcc.target/arm/pr99724.c
  38e2ef1e7dbe41d15f1fe7459a11571d  gcc/testsuite/gcc.target/arm/pr99727.c
  0fbbfb8f043defb1e2b0991415909c85  gcc/testsuite/gcc.target/arm/pr99786.c
  ec5230c6f63b4a45740b6ae0d8e7b39c  gcc/testsuite/gcc.target/arm/pr99977.c
! a2aa1366d4e45f7e19b9247149707b37  gcc/testsuite/gcc.target/arm/pragma_arch_attribute.c
! 1cf1f843bbe280fb321fd7e18480fcd9  gcc/testsuite/gcc.target/arm/pragma_arch_attribute_1b.c
! 382b5228966abf5f48921c2e9bf30372  gcc/testsuite/gcc.target/arm/pragma_arch_attribute_2.c
! c144045e42f1cc8b6fbc2c51340b77e7  gcc/testsuite/gcc.target/arm/pragma_arch_attribute_3.c
! dffa06d71b957e8661bd3643ef356d5a  gcc/testsuite/gcc.target/arm/pragma_arch_switch_2.c
  69a76bf30e898a884452a47f57250f63  gcc/testsuite/gcc.target/arm/pragma_attribute.c
  71ad4b41bc5bd0250d3207f161968628  gcc/testsuite/gcc.target/arm/pragma_cde.c
  9116a1dcd409b76a55fc08b4255c9d50  gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c
*************** be0f627c9760e72ac531303722e2aa4a  gcc/te
*** 63062,63075 ****
  fae12b2484aa501254f0f6f18c223eb7  gcc/testsuite/gcc.target/arm/pure-code/pr96769.c
  97baedb199afd57478166d225f8cdc6d  gcc/testsuite/gcc.target/arm/pure-code/pr96770.c
  23b438a7445931d6c586530cff90a5e9  gcc/testsuite/gcc.target/arm/pure-code/pr98998.c
! 501266fd274467f8491a4d983fca5a76  gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp
  f95b339eab714ded2d8494556dd13630  gcc/testsuite/gcc.target/arm/reg_equal_test.c
  3143560976572191d8bba6ba78a45aa6  gcc/testsuite/gcc.target/arm/register-variables.c
  7e00efeaf92d1f9068732d041c1566d2  gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
! 7488cdc20f835bda2359993c0ec74d15  gcc/testsuite/gcc.target/arm/rev16.c
  f4b0167ffa11835780a49b6681dae08a  gcc/testsuite/gcc.target/arm/sat-1.c
  33bb623f1a1557b9fdd91f630e4b4bcd  gcc/testsuite/gcc.target/arm/scd42-1.c
! aa724d56f5d6e1a5a2872c0cb30eeaab  gcc/testsuite/gcc.target/arm/scd42-2.c
  36d44b388f22ada9bd4ccb763c1a86f6  gcc/testsuite/gcc.target/arm/scd42-3.c
  989b8bb302c72af40a614c1f4a881c81  gcc/testsuite/gcc.target/arm/sdiv_costs_1.c
  e92559ac36cc602d8ecc10c3604d11e0  gcc/testsuite/gcc.target/arm/shiftable.c
--- 67471,67485 ----
  fae12b2484aa501254f0f6f18c223eb7  gcc/testsuite/gcc.target/arm/pure-code/pr96769.c
  97baedb199afd57478166d225f8cdc6d  gcc/testsuite/gcc.target/arm/pure-code/pr96770.c
  23b438a7445931d6c586530cff90a5e9  gcc/testsuite/gcc.target/arm/pure-code/pr98998.c
! dad0d9d810cbe4e11d2168da664f380e  gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp
  f95b339eab714ded2d8494556dd13630  gcc/testsuite/gcc.target/arm/reg_equal_test.c
  3143560976572191d8bba6ba78a45aa6  gcc/testsuite/gcc.target/arm/register-variables.c
  7e00efeaf92d1f9068732d041c1566d2  gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
! 7488cdc20f835bda2359993c0ec74d15  gcc/testsuite/gcc.target/arm/rev16_1.c
! 98c24c8d3d2aa246d9dbbe6aef94be46  gcc/testsuite/gcc.target/arm/rev16_2.c
  f4b0167ffa11835780a49b6681dae08a  gcc/testsuite/gcc.target/arm/sat-1.c
  33bb623f1a1557b9fdd91f630e4b4bcd  gcc/testsuite/gcc.target/arm/scd42-1.c
! 6aac2fd111fbd7115813c8dd3457a73c  gcc/testsuite/gcc.target/arm/scd42-2.c
  36d44b388f22ada9bd4ccb763c1a86f6  gcc/testsuite/gcc.target/arm/scd42-3.c
  989b8bb302c72af40a614c1f4a881c81  gcc/testsuite/gcc.target/arm/sdiv_costs_1.c
  e92559ac36cc602d8ecc10c3604d11e0  gcc/testsuite/gcc.target/arm/shiftable.c
*************** ac6c1f0bd9ddea47b998e6d6fe81f3f3  gcc/te
*** 63145,63151 ****
  be3a6e865cff5e83a7ddc3fdeff09efc  gcc/testsuite/gcc.target/arm/simd/pr105374.C
  046001a34adf828e1dc1680bb6554761  gcc/testsuite/gcc.target/arm/simd/pr97906.c
  be013ac628d53196d301f2fb67205a61  gcc/testsuite/gcc.target/arm/simd/pr98435.c
! a77b4b18df3edf884332fded851f948c  gcc/testsuite/gcc.target/arm/simd/simd.exp
  be37d1c2f068a408d0dcf51da9bb2153  gcc/testsuite/gcc.target/arm/simd/vceqz_p64.c
  bfc8c84b4d25f4a7889d9453580915a0  gcc/testsuite/gcc.target/arm/simd/vceqzq_p64.c
  32ad7b41034573f84cb8764de3e4cd94  gcc/testsuite/gcc.target/arm/simd/vdot-2-1.c
--- 67555,67561 ----
  be3a6e865cff5e83a7ddc3fdeff09efc  gcc/testsuite/gcc.target/arm/simd/pr105374.C
  046001a34adf828e1dc1680bb6554761  gcc/testsuite/gcc.target/arm/simd/pr97906.c
  be013ac628d53196d301f2fb67205a61  gcc/testsuite/gcc.target/arm/simd/pr98435.c
! d8757b3a529aba077f23b753732ce62e  gcc/testsuite/gcc.target/arm/simd/simd.exp
  be37d1c2f068a408d0dcf51da9bb2153  gcc/testsuite/gcc.target/arm/simd/vceqz_p64.c
  bfc8c84b4d25f4a7889d9453580915a0  gcc/testsuite/gcc.target/arm/simd/vceqzq_p64.c
  32ad7b41034573f84cb8764de3e4cd94  gcc/testsuite/gcc.target/arm/simd/vdot-2-1.c
*************** b5623ceac6636ba879496eaee0772a23  gcc/te
*** 63181,63190 ****
--- 67591,67608 ----
  b83cceb5830de8f28a6279192bdb0de3  gcc/testsuite/gcc.target/arm/simd/vextu32_1.c
  d8c65564dadfe634fbccc16d228dc48d  gcc/testsuite/gcc.target/arm/simd/vextu64_1.c
  1cfb3196cf27417aa514f2803de7a5d3  gcc/testsuite/gcc.target/arm/simd/vextu8_1.c
+ d5a079d8cc122a11d2e1d3ea8b5d7409  gcc/testsuite/gcc.target/arm/simd/vld1_base_xN_1.c
  b9a8249bc01cf3f7fe513629617010a7  gcc/testsuite/gcc.target/arm/simd/vld1_bf16_1.c
+ c518318c5924e407030509fda40b08f9  gcc/testsuite/gcc.target/arm/simd/vld1_bf16_xN_1.c
+ 224240f416c779e01cd34a3c2897fea2  gcc/testsuite/gcc.target/arm/simd/vld1_fp16_xN_1.c
  f941b33232fe32f8014b4aa08b153989  gcc/testsuite/gcc.target/arm/simd/vld1_lane_bf16_1.c
  fa84c526b21743635ac7b99c5df1c64b  gcc/testsuite/gcc.target/arm/simd/vld1_lane_bf16_indices_1.c
+ b093d9fb9b254156de38f7fdcd60b73b  gcc/testsuite/gcc.target/arm/simd/vld1_p64_xN_1.c
+ c95915cca0ae10e54a1b3c3df6e7520e  gcc/testsuite/gcc.target/arm/simd/vld1q_base_xN_1.c
+ 281ea02968923c74589e2b5499108965  gcc/testsuite/gcc.target/arm/simd/vld1q_bf16_xN_1.c
+ d7102f0260ec3db3a65a4709d590c032  gcc/testsuite/gcc.target/arm/simd/vld1q_fp16_xN_1.c
  e0f365607757a3b5ff67210d33210e44  gcc/testsuite/gcc.target/arm/simd/vld1q_lane_bf16_indices_1.c
+ 31ab6396bf8865357a428d235696dbff  gcc/testsuite/gcc.target/arm/simd/vld1q_p64_xN_1.c
  2205d6c1ab6b2c55e2542d5fc3c760e1  gcc/testsuite/gcc.target/arm/simd/vldn_lane_bf16_1.c
  2ee5df6168cdbfb1a78816764c853690  gcc/testsuite/gcc.target/arm/simd/vmaxnm_f32_1.c
  8c822be300fa91058277e10852236e36  gcc/testsuite/gcc.target/arm/simd/vmaxnmq_f32_1.c
*************** a2d62181a57faca3679c1d04633f0100  gcc/te
*** 63227,63235 ****
--- 67645,67661 ----
  20d53f9709a5da5939ad2beda57da127  gcc/testsuite/gcc.target/arm/simd/vrev64u16_1.c
  edc2f7dcab25bf120ba46d27a47f5f30  gcc/testsuite/gcc.target/arm/simd/vrev64u32_1.c
  b6aa67a56498fa3f1770c6c790e6436b  gcc/testsuite/gcc.target/arm/simd/vrev64u8_1.c
+ 3f038bbe6481f47cf13116c352cfb5b1  gcc/testsuite/gcc.target/arm/simd/vst1_base_xN_1.c
  579c1d9e1df05810febb3dd4de25d358  gcc/testsuite/gcc.target/arm/simd/vst1_bf16_1.c
+ 68f09882d8947ef998e4944ba4ae48f0  gcc/testsuite/gcc.target/arm/simd/vst1_bf16_xN_1.c
+ d08d64ab98577af7cab4bf8782d7b0de  gcc/testsuite/gcc.target/arm/simd/vst1_fp16_xN_1.c
  0f055b5334bb1d265d3c873a0cd50dd2  gcc/testsuite/gcc.target/arm/simd/vst1_lane_bf16_1.c
  c0bf44b7a238d70d8310dfc093134a3e  gcc/testsuite/gcc.target/arm/simd/vst1_lane_bf16_indices_1.c
+ d1724fd01052d38fc1f8fd4df1f992af  gcc/testsuite/gcc.target/arm/simd/vst1_p64_xN_1.c
+ e77138df630bdba148f24dc2c3b5e318  gcc/testsuite/gcc.target/arm/simd/vst1q_base_xN_1.c
+ 47bf6b916fe9b3a1c2c49869db066df3  gcc/testsuite/gcc.target/arm/simd/vst1q_bf16_xN_1.c
+ 81d1aa65debf48222272b998ceb4062c  gcc/testsuite/gcc.target/arm/simd/vst1q_fp16_xN_1.c
+ a2038d30ba5586a81741d0c1b28a763c  gcc/testsuite/gcc.target/arm/simd/vst1q_p64_xN_1.c
  0eabba88c777d192cf81fb36407377bc  gcc/testsuite/gcc.target/arm/simd/vstn_lane_bf16_1.c
  fc5f3547bc336db17494d9a9f653f48c  gcc/testsuite/gcc.target/arm/simd/vstq1_lane_bf16_indices_1.c
  fff9fa8c1d4b0d402e6c89b8ce936be2  gcc/testsuite/gcc.target/arm/simd/vtrnf32_1.c
*************** a2a9b9135252a63f30ae15393ececf8f  gcc/te
*** 63323,63329 ****
  a7b483d7dfa030106153baa28a7406da  gcc/testsuite/gcc.target/arm/symbian5.c
  44913c21da8c6dac3b61fbfbc5ff338c  gcc/testsuite/gcc.target/arm/sync-1.c
  d59622117e340a2cea3149554ca5fa78  gcc/testsuite/gcc.target/arm/synchronize.c
! a9300b36540d49e9475ff750bafb5589  gcc/testsuite/gcc.target/arm/tail-long-call.c
  c0067203155a98c23d9eda220bd6a4e2  gcc/testsuite/gcc.target/arm/thumb-16bit-ops.c
  64204a9e3abf4b73643855cd6cef610b  gcc/testsuite/gcc.target/arm/thumb-andsi.c
  22e74605fb70b95e19310c076e1b02c5  gcc/testsuite/gcc.target/arm/thumb-bitfld1.c
--- 67749,67755 ----
  a7b483d7dfa030106153baa28a7406da  gcc/testsuite/gcc.target/arm/symbian5.c
  44913c21da8c6dac3b61fbfbc5ff338c  gcc/testsuite/gcc.target/arm/sync-1.c
  d59622117e340a2cea3149554ca5fa78  gcc/testsuite/gcc.target/arm/synchronize.c
! 4e3f9214406154cd0782683477b3abff  gcc/testsuite/gcc.target/arm/tail-long-call.c
  c0067203155a98c23d9eda220bd6a4e2  gcc/testsuite/gcc.target/arm/thumb-16bit-ops.c
  64204a9e3abf4b73643855cd6cef610b  gcc/testsuite/gcc.target/arm/thumb-andsi.c
  22e74605fb70b95e19310c076e1b02c5  gcc/testsuite/gcc.target/arm/thumb-bitfld1.c
*************** ead94d850a836710bef3cff899906668  gcc/te
*** 63381,63386 ****
--- 67807,67813 ----
  dafe3f438a1a1630e53458e22dbec6bc  gcc/testsuite/gcc.target/arm/usadv16qi.c
  dd7bfde900d68546e1d3dd468f37370b  gcc/testsuite/gcc.target/arm/va_list.c
  cc0bc7a437b1048adcd2bbb500c8613f  gcc/testsuite/gcc.target/arm/vect-copysignf.c
+ e179bb6071f227e90cd9bf3b56210108  gcc/testsuite/gcc.target/arm/vect-early-break-cbranch.c
  fc4b69778fc737ef010c991d12b1dc42  gcc/testsuite/gcc.target/arm/vect-fmaxmin.c
  b2a77cb9f8dcabbc91a1f9b3df63c325  gcc/testsuite/gcc.target/arm/vect-half-floats.c
  295aeeb880398f05123f0a31c3d102e3  gcc/testsuite/gcc.target/arm/vect-lceilf_1.c
*************** c75ed40c88ef10849c23f953624d1ae2  gcc/te
*** 63465,63483 ****
  5c6680598a83083cd8ee0c39ad5821bf  gcc/testsuite/gcc.target/arm/wmul-bitfield-2.c
  a1131491d67160098e775860b91e3021  gcc/testsuite/gcc.target/arm/xor-and.c
  79a594a642e89de4c3a753867b50cf54  gcc/testsuite/gcc.target/arm/xordi3-opt.c
! f337da365ccbbfcebc72092316840c27  gcc/testsuite/gcc.target/avr/avr.exp
  a6701935d18c8ed062555c8a48454bc9  gcc/testsuite/gcc.target/avr/dev-specific-rmw.c
  2028ceccf9f97e5e84e9adf6beb7597e  gcc/testsuite/gcc.target/avr/exit-abort.h
  01c5f01bf5db7494c293de76bfa7ad3f  gcc/testsuite/gcc.target/avr/isr-test.h
! 893cec940cefc9cecf77869119a40689  gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp
  421d2b9b36fa2496dce05d129d2c352b  gcc/testsuite/gcc.target/avr/mmcu/pr58545.c
  8172209b564aa8049ce5758eac60cc46  gcc/testsuite/gcc.target/avr/mmcu/tiny-caller-save.c
  80cabd0a89ca2c48055ae61bc82b633e  gcc/testsuite/gcc.target/avr/mmcu/tiny-memx.c
! 2931177f4aeff49d531d5474224448f6  gcc/testsuite/gcc.target/avr/pr46779-1.c
! 572dc228e08385a1db0fcbab66dbaa4e  gcc/testsuite/gcc.target/avr/pr46779-2.c
  d92831f37e30237d1dc568f585e4c2c9  gcc/testsuite/gcc.target/avr/pr50739.c
  cab5109a6b7fdff7f863acba217c057c  gcc/testsuite/gcc.target/avr/pr52472.c
! e0e1e2e0021b9ad7de197bd200536621  gcc/testsuite/gcc.target/avr/pr54816.c
  efcda82866c9de5c520a07c8b80a5a00  gcc/testsuite/gcc.target/avr/pr60040-1.c
  378bd094630b756ab3a99b367485434b  gcc/testsuite/gcc.target/avr/pr60040-2.c
  9e82df166e8b559cb56d2c4f48cbaf30  gcc/testsuite/gcc.target/avr/pr60991.c
--- 67892,67925 ----
  5c6680598a83083cd8ee0c39ad5821bf  gcc/testsuite/gcc.target/arm/wmul-bitfield-2.c
  a1131491d67160098e775860b91e3021  gcc/testsuite/gcc.target/arm/xor-and.c
  79a594a642e89de4c3a753867b50cf54  gcc/testsuite/gcc.target/arm/xordi3-opt.c
! c80b20e750ebef437da2bce443dea236  gcc/testsuite/gcc.target/avr/attribute-io.h
! ccbfc33e8dfbece89b515e3a31919e02  gcc/testsuite/gcc.target/avr/avr.exp
  a6701935d18c8ed062555c8a48454bc9  gcc/testsuite/gcc.target/avr/dev-specific-rmw.c
  2028ceccf9f97e5e84e9adf6beb7597e  gcc/testsuite/gcc.target/avr/exit-abort.h
  01c5f01bf5db7494c293de76bfa7ad3f  gcc/testsuite/gcc.target/avr/isr-test.h
! d258157b4a9f2a166772579aaadca0be  gcc/testsuite/gcc.target/avr/lra-cpymem_qi.c
! c1c7be0795b89f4d537c95e15050d230  gcc/testsuite/gcc.target/avr/lra-elim.c
! 1d369daa23e9f096729be38ef8b052f4  gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp
! e6c6cd4929655e37f97d2182ddfe5617  gcc/testsuite/gcc.target/avr/mmcu/pr109476.c
! e0e1e2e0021b9ad7de197bd200536621  gcc/testsuite/gcc.target/avr/mmcu/pr54816.c
  421d2b9b36fa2496dce05d129d2c352b  gcc/testsuite/gcc.target/avr/mmcu/pr58545.c
  8172209b564aa8049ce5758eac60cc46  gcc/testsuite/gcc.target/avr/mmcu/tiny-caller-save.c
  80cabd0a89ca2c48055ae61bc82b633e  gcc/testsuite/gcc.target/avr/mmcu/tiny-memx.c
! b4a62998a3bf2398dc7d70146c73de72  gcc/testsuite/gcc.target/avr/pr105523.c
! 25060b482994b77ea4fb512db78edd6b  gcc/testsuite/gcc.target/avr/pr109907.c
! c93e0e1c2a33bb1f5af792e1345d3660  gcc/testsuite/gcc.target/avr/pr110086.c
! bbc702e9b8c4d946ac35ac4b65b43bb8  gcc/testsuite/gcc.target/avr/pr112830.c
! f8477bcb4f0897df97ce12509813078f  gcc/testsuite/gcc.target/avr/pr112952-0.c
! 7f4851ba862178ebdd33c37d9afb8e90  gcc/testsuite/gcc.target/avr/pr112952-1.c
! cbbdbc1f2e5f1be9d84964c49c4e1d8a  gcc/testsuite/gcc.target/avr/pr112952-2.c
! 4c2e6ef3904adf4a21d13daa991d00c8  gcc/testsuite/gcc.target/avr/pr112952-3.c
! 5bce43a3b899dee1019d96465b5ebf67  gcc/testsuite/gcc.target/avr/pr114132-1.c
! 8d351de18b6ca99f76c43eaa14213d53  gcc/testsuite/gcc.target/avr/pr46779-1.c
! 2887bd8c777e4696616590f0d60653b6  gcc/testsuite/gcc.target/avr/pr46779-2.c
  d92831f37e30237d1dc568f585e4c2c9  gcc/testsuite/gcc.target/avr/pr50739.c
  cab5109a6b7fdff7f863acba217c057c  gcc/testsuite/gcc.target/avr/pr52472.c
! 6f5a28bde8d91d55f2fd3fe10e026cef  gcc/testsuite/gcc.target/avr/pr53372-1.c
! fb60f18e3cab672ed7e9b2968349217b  gcc/testsuite/gcc.target/avr/pr53372-2.c
  efcda82866c9de5c520a07c8b80a5a00  gcc/testsuite/gcc.target/avr/pr60040-1.c
  378bd094630b756ab3a99b367485434b  gcc/testsuite/gcc.target/avr/pr60040-2.c
  9e82df166e8b559cb56d2c4f48cbaf30  gcc/testsuite/gcc.target/avr/pr60991.c
*************** d5c8fd29fb9b2ff9d36bac3d01f75b13  gcc/te
*** 63501,63527 ****
  859b3836a035473a6251a77102bbe16d  gcc/testsuite/gcc.target/avr/pr71678.c
  f91d8c4774a3ac3e49934378e0629b52  gcc/testsuite/gcc.target/avr/pr71873.c
  5e90aa3ebe8d6e58597bdaa2ecf4948c  gcc/testsuite/gcc.target/avr/pr82931.c
  675750e3e482b5f5103d79510bfe2e28  gcc/testsuite/gcc.target/avr/pr88253.c
  cbd676b663043514bbc26a8a6c3b7a9d  gcc/testsuite/gcc.target/avr/pr90706.c
  881cb1836ddfc3105e0aacacc481aa09  gcc/testsuite/gcc.target/avr/progmem-error-1.c
  57cf0cd622a50ae70434f57249214c0a  gcc/testsuite/gcc.target/avr/progmem-error-1.cpp
  56de611fd29076ce9da389a853476819  gcc/testsuite/gcc.target/avr/progmem-warning-1.c
  06a40c47b5a1c6fd69f69a33ab43a52e  gcc/testsuite/gcc.target/avr/progmem.h
  2b06671686db85920f5618751e2f29b6  gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c
! 2b549e7c542307748d2612736203a53e  gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c
  e1c7151f17ec114f6529f690e6145cb6  gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c
  e448136494af9abcaa38e2065e82682d  gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c
  7203095415106fa12c3d912391683ad7  gcc/testsuite/gcc.target/avr/torture/addr-space-1.h
  9d5a32faf6748464f7acaa8160b0ac81  gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c
! e2ddf19981b44595d911d7d384c3824f  gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c
  53dfc94573110c2220b0a51c076fda55  gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c
  6fb32c1fcefb2d5260347dc067759686  gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c
  a0d24b6b729b3316832b85d84ee2f113  gcc/testsuite/gcc.target/avr/torture/addr-space-2.h
! 36a9fd0ce0b7dbcd36baf1027fd8b06e  gcc/testsuite/gcc.target/avr/torture/avr-torture.exp
  8fb103e22590dcf8f557336ecf8d0b5d  gcc/testsuite/gcc.target/avr/torture/builtin_insert_bits-1.c
  43852eb8aa736eadca5b3c517bf0d743  gcc/testsuite/gcc.target/avr/torture/builtin_insert_bits-2.c
  6f7a316d69505eb726fcfadde1df3047  gcc/testsuite/gcc.target/avr/torture/builtins-1.c
! 3314f640d798e120530bb658d3b34922  gcc/testsuite/gcc.target/avr/torture/builtins-2-flash.c
  61068b3aeb87690dcde7e0ba02534a6b  gcc/testsuite/gcc.target/avr/torture/builtins-2.c
  70190ccb451c4e6d9e95a411de38c26a  gcc/testsuite/gcc.target/avr/torture/builtins-3-absfx.c
  72764bd3fc957d6e2c5475fdf94633ff  gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c
--- 67943,67971 ----
  859b3836a035473a6251a77102bbe16d  gcc/testsuite/gcc.target/avr/pr71678.c
  f91d8c4774a3ac3e49934378e0629b52  gcc/testsuite/gcc.target/avr/pr71873.c
  5e90aa3ebe8d6e58597bdaa2ecf4948c  gcc/testsuite/gcc.target/avr/pr82931.c
+ 3a2b58540a6ad23dcfc491867f903256  gcc/testsuite/gcc.target/avr/pr86869.c
  675750e3e482b5f5103d79510bfe2e28  gcc/testsuite/gcc.target/avr/pr88253.c
+ b42a1246bf1b21dbbd28d13a91f20491  gcc/testsuite/gcc.target/avr/pr89270.c
  cbd676b663043514bbc26a8a6c3b7a9d  gcc/testsuite/gcc.target/avr/pr90706.c
  881cb1836ddfc3105e0aacacc481aa09  gcc/testsuite/gcc.target/avr/progmem-error-1.c
  57cf0cd622a50ae70434f57249214c0a  gcc/testsuite/gcc.target/avr/progmem-error-1.cpp
  56de611fd29076ce9da389a853476819  gcc/testsuite/gcc.target/avr/progmem-warning-1.c
  06a40c47b5a1c6fd69f69a33ab43a52e  gcc/testsuite/gcc.target/avr/progmem.h
  2b06671686db85920f5618751e2f29b6  gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c
! 74d75d6b9b2f092a0eaf81b8ffe81ced  gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c
  e1c7151f17ec114f6529f690e6145cb6  gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c
  e448136494af9abcaa38e2065e82682d  gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c
  7203095415106fa12c3d912391683ad7  gcc/testsuite/gcc.target/avr/torture/addr-space-1.h
  9d5a32faf6748464f7acaa8160b0ac81  gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c
! 88efd122a34e6eca1c9d552052df8bbc  gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c
  53dfc94573110c2220b0a51c076fda55  gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c
  6fb32c1fcefb2d5260347dc067759686  gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c
  a0d24b6b729b3316832b85d84ee2f113  gcc/testsuite/gcc.target/avr/torture/addr-space-2.h
! e1b2eb478168430cebc92bdd9d62b8c1  gcc/testsuite/gcc.target/avr/torture/avr-torture.exp
  8fb103e22590dcf8f557336ecf8d0b5d  gcc/testsuite/gcc.target/avr/torture/builtin_insert_bits-1.c
  43852eb8aa736eadca5b3c517bf0d743  gcc/testsuite/gcc.target/avr/torture/builtin_insert_bits-2.c
  6f7a316d69505eb726fcfadde1df3047  gcc/testsuite/gcc.target/avr/torture/builtins-1.c
! 117d3c01441228cd60679f087e054905  gcc/testsuite/gcc.target/avr/torture/builtins-2-flash.c
  61068b3aeb87690dcde7e0ba02534a6b  gcc/testsuite/gcc.target/avr/torture/builtins-2.c
  70190ccb451c4e6d9e95a411de38c26a  gcc/testsuite/gcc.target/avr/torture/builtins-3-absfx.c
  72764bd3fc957d6e2c5475fdf94633ff  gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c
*************** a0d24b6b729b3316832b85d84ee2f113  gcc/te
*** 63529,63534 ****
--- 67973,67980 ----
  0628f66d299ecca3619e823e3cc62896  gcc/testsuite/gcc.target/avr/torture/builtins-error.c
  c458c2462e23a4c58a7e4d05b6200907  gcc/testsuite/gcc.target/avr/torture/fix-types.h
  955a40e1d1066b48539480d898f7b7e3  gcc/testsuite/gcc.target/avr/torture/get-mem.c
+ 80f19a686eb7d8fa81e0ee3daf68fc5c  gcc/testsuite/gcc.target/avr/torture/insv-anyshift-hi.c
+ ae0e4639aab784faf6d9790cd216e5af  gcc/testsuite/gcc.target/avr/torture/insv-anyshift-si.c
  33798ca51880c8beb722dd5baf15598f  gcc/testsuite/gcc.target/avr/torture/int24-mul.c
  f07474ce14e61da44f73f5bc38af0fa5  gcc/testsuite/gcc.target/avr/torture/isr-01-simple.c
  fcfc22b5becf29a31bc290457133738d  gcc/testsuite/gcc.target/avr/torture/isr-02-call.c
*************** fcfc22b5becf29a31bc290457133738d  gcc/te
*** 63536,63541 ****
--- 67982,67992 ----
  da616058fed041fe8be91af9e560a517  gcc/testsuite/gcc.target/avr/torture/pr105753.c
  112c41be69fc1500c61b78d58e88cb62  gcc/testsuite/gcc.target/avr/torture/pr109650-1.c
  057f8a7fa6d90ee3ba242f26befaec45  gcc/testsuite/gcc.target/avr/torture/pr109650-2.c
+ ba0a1d3cd4b035483a1c25a15db266c5  gcc/testsuite/gcc.target/avr/torture/pr109907-1.c
+ 9c5ff907a967e478516a17f07c83cc80  gcc/testsuite/gcc.target/avr/torture/pr109907-2.c
+ 9d22856d71f5be1330322ffedc6b0c48  gcc/testsuite/gcc.target/avr/torture/pr112944-flmap-0.c
+ b69cc366bcf67c0a489ddd0287a0ff9f  gcc/testsuite/gcc.target/avr/torture/pr112944-flmap-1.c
+ 36bf0eb6c126e0f430da14b0a987d739  gcc/testsuite/gcc.target/avr/torture/pr114132-2.c
  0844a939ea2464d30cc8892c85b4aecc  gcc/testsuite/gcc.target/avr/torture/pr39633.c
  8fb17af722ee890b7fa08b5610cdb80e  gcc/testsuite/gcc.target/avr/torture/pr41885.c
  70b849f57ecf42299230b99b7734dd2d  gcc/testsuite/gcc.target/avr/torture/pr51374-1.c
*************** b132d1738c80be39010cd2b0314aba73  gcc/te
*** 63580,63586 ****
  e8596cb430561d81a166efee3830ab78  gcc/testsuite/gcc.target/bfin/20090914-2.c
  49ce985a23784e4dedbfc6c211266187  gcc/testsuite/gcc.target/bfin/20090914-3.c
  bf1c248fa1b1520ecdeed5e768375da7  gcc/testsuite/gcc.target/bfin/arith.c
! f834ff02afc8ba5ab71378e830107cac  gcc/testsuite/gcc.target/bfin/bfin.exp
  e666a8a0054e7cac9ce2a121c6d1ccbf  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x16-1.c
  9b9ec1d751f1617d55d1098c8c77391b  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x16-2.c
  6b81ebc6aa2acb74b2481ebe48c3dc2c  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x32-1.c
--- 68031,68037 ----
  e8596cb430561d81a166efee3830ab78  gcc/testsuite/gcc.target/bfin/20090914-2.c
  49ce985a23784e4dedbfc6c211266187  gcc/testsuite/gcc.target/bfin/20090914-3.c
  bf1c248fa1b1520ecdeed5e768375da7  gcc/testsuite/gcc.target/bfin/arith.c
! 8e2cc06824354e45be523ed4740bf263  gcc/testsuite/gcc.target/bfin/bfin.exp
  e666a8a0054e7cac9ce2a121c6d1ccbf  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x16-1.c
  9b9ec1d751f1617d55d1098c8c77391b  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x16-2.c
  6b81ebc6aa2acb74b2481ebe48c3dc2c  gcc/testsuite/gcc.target/bfin/builtins/abs_fr1x32-1.c
*************** fe4d87c005f4281c70950e298d2332d6  gcc/te
*** 63593,63599 ****
  68777a9f94150662d944e2fa189c4dd7  gcc/testsuite/gcc.target/bfin/builtins/add_fr1x32-2.c
  d0c87dc45464d8073220a36a5b5f9150  gcc/testsuite/gcc.target/bfin/builtins/add_fr2x16-1.c
  9d8cdd9e02d1a76707491953ffcab689  gcc/testsuite/gcc.target/bfin/builtins/add_fr2x16-2.c
! c0495f5d61d6baea866b12b508a4baaf  gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp
  f7e7cbc65ce8949842a0128a24bd2338  gcc/testsuite/gcc.target/bfin/builtins/circptr.c
  6c9969a981de179714ed81df51335aa9  gcc/testsuite/gcc.target/bfin/builtins/cpmlx_mac_fr2x16-1.c
  136597c96eab5947bf5b9d9ac2e01f54  gcc/testsuite/gcc.target/bfin/builtins/cpmlx_mac_fr2x16-2.c
--- 68044,68050 ----
  68777a9f94150662d944e2fa189c4dd7  gcc/testsuite/gcc.target/bfin/builtins/add_fr1x32-2.c
  d0c87dc45464d8073220a36a5b5f9150  gcc/testsuite/gcc.target/bfin/builtins/add_fr2x16-1.c
  9d8cdd9e02d1a76707491953ffcab689  gcc/testsuite/gcc.target/bfin/builtins/add_fr2x16-2.c
! 930f661f7aa3eeac43a29637dd074bf9  gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp
  f7e7cbc65ce8949842a0128a24bd2338  gcc/testsuite/gcc.target/bfin/builtins/circptr.c
  6c9969a981de179714ed81df51335aa9  gcc/testsuite/gcc.target/bfin/builtins/cpmlx_mac_fr2x16-1.c
  136597c96eab5947bf5b9d9ac2e01f54  gcc/testsuite/gcc.target/bfin/builtins/cpmlx_mac_fr2x16-2.c
*************** b7e44f629992ef6eb090866310307190  gcc/te
*** 63793,63952 ****
  998eede0c55f8146863da4eee6db210b  gcc/testsuite/gcc.target/bfin/workarounds-4.c
  998eede0c55f8146863da4eee6db210b  gcc/testsuite/gcc.target/bfin/workarounds-any.c
  b7e44f629992ef6eb090866310307190  gcc/testsuite/gcc.target/bfin/workarounds-none.c
! d574c9cd6d9f06e4304767f46fc8eb38  gcc/testsuite/gcc.target/bpf/alu-1.c
! ac83cc9a0e1d08440d2d555fddc2c882  gcc/testsuite/gcc.target/bpf/bpf.exp
! bb33a5daec764c44d4e0362372821146  gcc/testsuite/gcc.target/bpf/bswap-1.c
! e18e9906424d8f6d6559626d05b228a1  gcc/testsuite/gcc.target/bpf/builtin-load.c
  c15ffd0fcf13b8089eb979818ca695d3  gcc/testsuite/gcc.target/bpf/constant-calls-1.c
  308ec3c13b184f3b2a8e46ea0f32f4c8  gcc/testsuite/gcc.target/bpf/constant-calls-2.c
! b8b314b84b551ed2be2f010a24abe9f9  gcc/testsuite/gcc.target/bpf/core-attr-1.c
! b9cc467364bead27ec20679665483049  gcc/testsuite/gcc.target/bpf/core-attr-2.c
! 3b2e17aff6a101dd53a2e432ea78e841  gcc/testsuite/gcc.target/bpf/core-attr-3.c
! d91a5053beb3967e034e51883dc25dd1  gcc/testsuite/gcc.target/bpf/core-attr-4.c
! 8daa38602d4832500fa5d1fa654882ae  gcc/testsuite/gcc.target/bpf/core-builtin-1.c
! d29fde5f049c90eb3638f347d15f46a2  gcc/testsuite/gcc.target/bpf/core-builtin-2.c
! 89ded91824d23ad06903739576a871a1  gcc/testsuite/gcc.target/bpf/core-builtin-3.c
! 54dea86a7ec285be4a47822eb5a09605  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-errors-1.c
! 2729b49591c9a44633a77bf566f42862  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-errors-2.c
! 1f78bd2cfd4a5c777fb05eb36815df1b  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-existence-1.c
! c6be4d29a0c7cdfaee53492c2a9c09db  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-lshift-1-be.c
! 4e6c59149276c655d18b50cc0fe8f981  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-lshift-1-le.c
! 44481361289520140189eec43bd02c1d  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-lshift-2.c
! 3c2fc0ef2ba38abbe6886b142e03dbfb  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-offset-1.c
! ba0b6bea55f2e88cf37c259450b1fef3  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-rshift-1.c
! 3c0bac34957bd44026dce11bbd751c63  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-rshift-2.c
! c3b945765a99565aebc91abe802a3012  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-sign-1.c
! 128c5eb3ecf36fbf536c1c44027a967a  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-sign-2.c
! a920c278d59c641452e0bbf6d068c86b  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-size-1.c
  382784a9ab064815e8d03f16cad75b39  gcc/testsuite/gcc.target/bpf/core-lto-1.c
  d806e90d8b8b8547bd35f37c91477380  gcc/testsuite/gcc.target/bpf/core-pr106745.c
! 44d568fcfefc5d8da7a27f51746e08ed  gcc/testsuite/gcc.target/bpf/core-section-1.c
  7c5767ad8853516ee52b4fccd6f2ad45  gcc/testsuite/gcc.target/bpf/diag-funargs-2.c
  0f171b6874c7ce98e825ae0d0725fee0  gcc/testsuite/gcc.target/bpf/diag-funargs-3.c
! 879173f0084082f7f1ff2a8afbb56f1a  gcc/testsuite/gcc.target/bpf/diag-funargs.c
  efb35ca8408d4ca4edc1dc74e7d53c88  gcc/testsuite/gcc.target/bpf/diag-indcalls.c
! 6157a730cbda46936373436b62a9dd52  gcc/testsuite/gcc.target/bpf/diag-sdiv.c
! 868a8fcabece970704fc01dcdd8c940f  gcc/testsuite/gcc.target/bpf/diag-smod.c
! a2ee893a1eca899e32b9191538662abe  gcc/testsuite/gcc.target/bpf/double-1.c
! e1fab4c62985d1f4ca539e04ff39f922  gcc/testsuite/gcc.target/bpf/double-2.c
! 676b4b1bf98949a54214ceb5f0c1ec3a  gcc/testsuite/gcc.target/bpf/float-1.c
! dae4968889f616459c438a45482825bc  gcc/testsuite/gcc.target/bpf/helper-bind.c
! 25f9de4ca526ec37e6f6aa1c1f3b3d73  gcc/testsuite/gcc.target/bpf/helper-bpf-redirect.c
! 4cf9afc33fb29b890d470dc5e598b794  gcc/testsuite/gcc.target/bpf/helper-clone-redirect.c
! faff9ede044b00f80593afd8f6528682  gcc/testsuite/gcc.target/bpf/helper-csum-diff.c
! 8d14ce4bbc014eb8d7bcb092c20b462e  gcc/testsuite/gcc.target/bpf/helper-csum-update.c
! 60fb4566da9a5f8d6fd1fc52777a2a56  gcc/testsuite/gcc.target/bpf/helper-current-task-under-cgroup.c
! 09835792b86f6189ea7f5b5c6a74aca5  gcc/testsuite/gcc.target/bpf/helper-fib-lookup.c
! 800c0e97c562f34af2c5312c1449b630  gcc/testsuite/gcc.target/bpf/helper-get-cgroup-classid.c
! 4b18aec32e0c725302cd006f0ffdbe44  gcc/testsuite/gcc.target/bpf/helper-get-current-cgroup-id.c
! e322b3f893f917e767965d34e6d2a966  gcc/testsuite/gcc.target/bpf/helper-get-current-comm.c
! 9e62fa3ffb0fad7af08742e6bf493155  gcc/testsuite/gcc.target/bpf/helper-get-current-pid-tgid.c
! ad732f20c21a3b80a476a53f0c4d5ac4  gcc/testsuite/gcc.target/bpf/helper-get-current-task.c
! 7468097a210f4b699732b6705e3ebdd6  gcc/testsuite/gcc.target/bpf/helper-get-current-uid-gid.c
! e40d088df2ada55e7d5775a8007537c0  gcc/testsuite/gcc.target/bpf/helper-get-hash-recalc.c
! 3f26c96cf718694fc902a968c42e5daa  gcc/testsuite/gcc.target/bpf/helper-get-listener-sock.c
! 66441278c6bc6ed29e7f8e84c40aca11  gcc/testsuite/gcc.target/bpf/helper-get-local-storage.c
! 16fd953f71843d5b16de82c6b95bed47  gcc/testsuite/gcc.target/bpf/helper-get-numa-node-id.c
! 720905fae6df389c58483b1a4a30aae8  gcc/testsuite/gcc.target/bpf/helper-get-prandom-u32.c
! 66d76f3eedf31cf7ec539ea3fbefcdc4  gcc/testsuite/gcc.target/bpf/helper-get-route-realm.c
! 133b35460e50a281a9d99a6e8cf8cb93  gcc/testsuite/gcc.target/bpf/helper-get-smp-processor-id.c
! 0b48543b93e7a7a901713d78a9d3e937  gcc/testsuite/gcc.target/bpf/helper-get-socket-cookie.c
! 4249c7c43bf2759fabe62e31eabd26d8  gcc/testsuite/gcc.target/bpf/helper-get-socket-uid.c
! 75a906aabbd914f382705466eaf05a37  gcc/testsuite/gcc.target/bpf/helper-get-stack.c
! b6fdf61720d99b11602374f5d9028a5d  gcc/testsuite/gcc.target/bpf/helper-get-stackid.c
! 7b278692dac40ee571b5465445486b82  gcc/testsuite/gcc.target/bpf/helper-getsockopt.c
! e54b365e86170149b5eb9182a5f95480  gcc/testsuite/gcc.target/bpf/helper-ktime-get-ns.c
! 317bdc7505af91bb296f7bb0f76214de  gcc/testsuite/gcc.target/bpf/helper-l3-csum-replace.c
! ea271843f7f8510a53f14f70ea67d42b  gcc/testsuite/gcc.target/bpf/helper-l4-csum-replace.c
! ce0a759f2f425e28c38a4ab139c037d6  gcc/testsuite/gcc.target/bpf/helper-lwt-push-encap.c
! 4d294777bb703105ded12dc5e6aee64a  gcc/testsuite/gcc.target/bpf/helper-lwt-seg6-action.c
! 3ac7982bd461c63650c765144ef71917  gcc/testsuite/gcc.target/bpf/helper-lwt-seg6-adjust-srh.c
! 97c928df5802ed0e392bd8510eb73384  gcc/testsuite/gcc.target/bpf/helper-lwt-seg6-store-bytes.c
! 6c0fe5518acd61784fbffaad433f68d0  gcc/testsuite/gcc.target/bpf/helper-map-delete-elem.c
! 577efbbc2f2eb965c2746aedfc42f3b7  gcc/testsuite/gcc.target/bpf/helper-map-lookup-elem.c
! 4b0a884871dcc45d9114c54f5c1e989d  gcc/testsuite/gcc.target/bpf/helper-map-peek-elem.c
! 3f020da8ead91be13d9f6e3834b6c412  gcc/testsuite/gcc.target/bpf/helper-map-pop-elem.c
! 5d18967974604a522e950b7996d6b007  gcc/testsuite/gcc.target/bpf/helper-map-push-elem.c
! c18e01b3e879de8440f07c5cb633ad46  gcc/testsuite/gcc.target/bpf/helper-map-update-elem.c
! 0b32e0a0d5a791237667da74898a3ca9  gcc/testsuite/gcc.target/bpf/helper-msg-apply-bytes.c
! b2969abd284823f4469619a264ca25e6  gcc/testsuite/gcc.target/bpf/helper-msg-cork-bytes.c
! e5bb7a0764e683812d262d0f33cc7c51  gcc/testsuite/gcc.target/bpf/helper-msg-pop-data.c
! 23ab68a980eab1cd5c68d54cad6e0e94  gcc/testsuite/gcc.target/bpf/helper-msg-pull-data.c
! 981d7bba2ba020b6c057865da8d54adb  gcc/testsuite/gcc.target/bpf/helper-msg-push-data.c
! e9db25bcc75413643c5dde2b3f2d2064  gcc/testsuite/gcc.target/bpf/helper-msg-redirect-hash.c
! 52981ab44a5c0449282c04f241ebea7e  gcc/testsuite/gcc.target/bpf/helper-msg-redirect-map.c
! 901917cdadb318fcef4ee34567ba80c7  gcc/testsuite/gcc.target/bpf/helper-override-return.c
! 25a094adb680d89f100fd23f19e827be  gcc/testsuite/gcc.target/bpf/helper-perf-event-output.c
! 71b638c5c6abcf1711e33fdb29bf6dec  gcc/testsuite/gcc.target/bpf/helper-perf-event-read-value.c
! c2ccb3b55ec5b800e29e2c7ddded0a10  gcc/testsuite/gcc.target/bpf/helper-perf-event-read.c
! fada8abbd7d89bd0f85e0e3121ea9299  gcc/testsuite/gcc.target/bpf/helper-perf-prog-read-value.c
! 196fb427f4d1ffbaabe45c92ef38f429  gcc/testsuite/gcc.target/bpf/helper-probe-read-str.c
! 8ce910ae3a6e5ebdb18c80926d08c0bd  gcc/testsuite/gcc.target/bpf/helper-probe-read.c
! f29cdf1c37067ff8e3dbceaa725c6905  gcc/testsuite/gcc.target/bpf/helper-probe-write-user.c
! 9ccec40ad9f02e33e2c836b97deb5f68  gcc/testsuite/gcc.target/bpf/helper-rc-keydown.c
! f7e4b687ccd0676e6d6179d8a2367b9d  gcc/testsuite/gcc.target/bpf/helper-rc-pointer-rel.c
! 0d60b4ed9524bf498dac87bd9b05486d  gcc/testsuite/gcc.target/bpf/helper-rc-repeat.c
! f61d96f113abb3bf4b241e1a55994ae5  gcc/testsuite/gcc.target/bpf/helper-redirect-map.c
! 0dc0d2893fdfef81f4efae642c58f942  gcc/testsuite/gcc.target/bpf/helper-set-hash-invalid.c
! 883d64d07a08853f4f67474e0129d5e5  gcc/testsuite/gcc.target/bpf/helper-set-hash.c
! 1f52854623f90a4f37b7e3f51e3beb66  gcc/testsuite/gcc.target/bpf/helper-setsockopt.c
! b1b3ea65f0bdfbd935c421f98582f6a3  gcc/testsuite/gcc.target/bpf/helper-sk-fullsock.c
! 8f38e785ea2fa65269c200bc1a043c78  gcc/testsuite/gcc.target/bpf/helper-sk-lookup-tcp.c
! 40551219df4fecf4e510b4a796eee53e  gcc/testsuite/gcc.target/bpf/helper-sk-lookup-upd.c
! c8b770a242283f45a910c92beabd1edf  gcc/testsuite/gcc.target/bpf/helper-sk-redirect-hash.c
! b9fbd37f8e6718c689a9fe2d31620e1c  gcc/testsuite/gcc.target/bpf/helper-sk-redirect-map.c
! f0b8c2b86dd6289f60e143bae5949ed0  gcc/testsuite/gcc.target/bpf/helper-sk-release.c
! c735809663d789e640ee007e65b77f3b  gcc/testsuite/gcc.target/bpf/helper-sk-select-reuseport.c
! 476e7323f3420d71ed5ec89e28920f9a  gcc/testsuite/gcc.target/bpf/helper-sk-storage-delete.c
! 78a19b8cd4e68fdf9dc2ef961959088f  gcc/testsuite/gcc.target/bpf/helper-sk-storage-get.c
! 95325d09167b9045f75a9e1beb7377fb  gcc/testsuite/gcc.target/bpf/helper-skb-adjust-room.c
! 16af7a715476cd6d081d02df1d2d16f0  gcc/testsuite/gcc.target/bpf/helper-skb-cgroup-id.c
! e9f608222d8b11366784e60722914daa  gcc/testsuite/gcc.target/bpf/helper-skb-change-head.c
! 406ab747b48653375f5e8c344f812732  gcc/testsuite/gcc.target/bpf/helper-skb-change-proto.c
! 2abed24f6d808ef592d88fb9de81d89f  gcc/testsuite/gcc.target/bpf/helper-skb-change-tail.c
! 69d12f7256fa0cf8aa0681f193296f31  gcc/testsuite/gcc.target/bpf/helper-skb-change-type.c
! c8ef2b0e6dfca91cf50cbff6618cb1ad  gcc/testsuite/gcc.target/bpf/helper-skb-ecn-set-ce.c
! d7e09b35ae106968af152eb681f1f758  gcc/testsuite/gcc.target/bpf/helper-skb-get-tunnel-key.c
! 2f52cecab300d44ed556add6ce4aaef7  gcc/testsuite/gcc.target/bpf/helper-skb-get-tunnel-opt.c
! 923e77188ff268fce69e9d4f41669943  gcc/testsuite/gcc.target/bpf/helper-skb-get-xfrm-state.c
! 9f592a1083def76054984315012d8047  gcc/testsuite/gcc.target/bpf/helper-skb-load-bytes-relative.c
! ccf52a54cd36177184d33647b107a20d  gcc/testsuite/gcc.target/bpf/helper-skb-load-bytes.c
! 87179ccd66ab021c64c06de0e8657eda  gcc/testsuite/gcc.target/bpf/helper-skb-pull-data.c
! 5bd50f9fb4c63bc5ec08cff07940a0be  gcc/testsuite/gcc.target/bpf/helper-skb-set-tunnel-key.c
! 7b093c446ddffb84cc03535b019993a3  gcc/testsuite/gcc.target/bpf/helper-skb-set-tunnel-opt.c
! 6985f62a68d0ff5b7461bbf88f5c1238  gcc/testsuite/gcc.target/bpf/helper-skb-store-bytes.c
! 438a86172aa7f7e1e9967587190d7760  gcc/testsuite/gcc.target/bpf/helper-skb-under-cgroup.c
! b4c29fcdb837cebf7ec24cb2d1b67764  gcc/testsuite/gcc.target/bpf/helper-skb-vlan-pop.c
! 6f9f7854f54bac5a9ec236e58c46b926  gcc/testsuite/gcc.target/bpf/helper-skb-vlan-push.c
! 34bddc04a00c2bdb869d4d2c4007aca1  gcc/testsuite/gcc.target/bpf/helper-skc-lookup-tcp.c
! 83e600724b26b05390cf5727b58e49e3  gcc/testsuite/gcc.target/bpf/helper-sock-hash-update.c
! cc9e7d7a6f356be5b98dde4650f750ad  gcc/testsuite/gcc.target/bpf/helper-sock-map-update.c
! 5ce6ad7ba074c403eb163c037ffd88f9  gcc/testsuite/gcc.target/bpf/helper-sock-ops-cb-flags-set.c
! 4b56e97ab1386682970c3e042e19eb3b  gcc/testsuite/gcc.target/bpf/helper-spin-lock.c
! 6f51f3b684abdff2d2b9e6bbfad02ce1  gcc/testsuite/gcc.target/bpf/helper-spin-unlock.c
! 7f117ad64321ddaccd1c7e742dd2d6a9  gcc/testsuite/gcc.target/bpf/helper-strtol.c
! 38e5825e4fb2b1b3d2a6e534a315d70c  gcc/testsuite/gcc.target/bpf/helper-strtoul.c
! aa49b40d53dc0205eb6b6c35917b7e78  gcc/testsuite/gcc.target/bpf/helper-sysctl-get-current-value.c
! e9cd36c921533c54f03c3de6426927f9  gcc/testsuite/gcc.target/bpf/helper-sysctl-get-name.c
! aebc6196790d3600ae73a49f8856c919  gcc/testsuite/gcc.target/bpf/helper-sysctl-get-new-value.c
! c12e97baae886a33f7d05bbd2bb69a39  gcc/testsuite/gcc.target/bpf/helper-sysctl-set-new-value.c
! c0c04a0ed12ec95a86e428b6a03ec112  gcc/testsuite/gcc.target/bpf/helper-tail-call.c
! 036ca321ffc92009ae554174ec18ef60  gcc/testsuite/gcc.target/bpf/helper-tcp-check-syncookie.c
! 6c8660ac48e346c7ba1712b7fdff1235  gcc/testsuite/gcc.target/bpf/helper-tcp-sock.c
! 6952b62643d6e19c63ba6fb215e39193  gcc/testsuite/gcc.target/bpf/helper-trace-printk.c
! 97e0d4b47960bb0f508506da28056e87  gcc/testsuite/gcc.target/bpf/helper-xdp-adjust-head.c
! 34f49e9a3bad17dcba3af6133ecdac39  gcc/testsuite/gcc.target/bpf/helper-xdp-adjust-meta.c
! 73b0d4e42dc2de2a236b6bc0a889e58a  gcc/testsuite/gcc.target/bpf/helper-xdp-adjust-tail.c
! aecb36e66a00bc767e57e19c60cac9b3  gcc/testsuite/gcc.target/bpf/jmp-1.c
! cc1edd27320c8d14e2d909c679a42497  gcc/testsuite/gcc.target/bpf/ldxdw.c
! ea119219c2d407c1b7b8da1f3946fa74  gcc/testsuite/gcc.target/bpf/nop-1.c
! cd41d37c2f24e4c5454955bd38989508  gcc/testsuite/gcc.target/bpf/skb-ancestor-cgroup-id.c
! 5660ceee20ea01caded4e675ebcc0487  gcc/testsuite/gcc.target/bpf/sync-fetch-and-add.c
! 9f297dcd35ada00e0477bf09a705d1af  gcc/testsuite/gcc.target/bpf/xbpf-callee-saved-regs-1.c
! 503c36bf52bd0711c971255afe58aa20  gcc/testsuite/gcc.target/bpf/xbpf-callee-saved-regs-2.c
! 6c39489cef7fbf3a872e84167262962b  gcc/testsuite/gcc.target/bpf/xbpf-indirect-call-1.c
! 47b13d08b65f8dc2b68ba5a872666d59  gcc/testsuite/gcc.target/bpf/xbpf-sdiv-1.c
! a8db8f73e387b781a751c8af0afb48f3  gcc/testsuite/gcc.target/bpf/xbpf-smod-1.c
  3ae9e0cc2cd08e28ef54e8540c762679  gcc/testsuite/gcc.target/cris/20011127-1.c
  75d3e9019c866a8402bf7aa4c913ee2d  gcc/testsuite/gcc.target/cris/asm-b-1.c
  a9d478d7af0e0b31660f3b7e507a6318  gcc/testsuite/gcc.target/cris/asm-other.S
--- 68244,68361 ----
  998eede0c55f8146863da4eee6db210b  gcc/testsuite/gcc.target/bfin/workarounds-4.c
  998eede0c55f8146863da4eee6db210b  gcc/testsuite/gcc.target/bfin/workarounds-any.c
  b7e44f629992ef6eb090866310307190  gcc/testsuite/gcc.target/bfin/workarounds-none.c
! efafb1dec5754e44201ee1c0d0b61465  gcc/testsuite/gcc.target/bpf/alu-1.c
! 47bbdac6224ef61e2b07a3e6193d2a1e  gcc/testsuite/gcc.target/bpf/alu-2.c
! 79c9c5f9fdca6defe5e1bd08cbda6f30  gcc/testsuite/gcc.target/bpf/alu-pseudoc-2.c
! d50be5d0939a1b9596749ef0ef85f7c7  gcc/testsuite/gcc.target/bpf/atomic-cmpxchg-1.c
! ab7427346b9711b1f84ad93d071c6329  gcc/testsuite/gcc.target/bpf/atomic-cmpxchg-2.c
! dea5d60ffe0e555b7dd9a3cd8a2c9ed8  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-1.c
! 67e2d323ed067d60e9eecb863a5ba92d  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-2.c
! d370fea6c3b14a1870345c69a56e29fd  gcc/testsuite/gcc.target/bpf/atomic-fetch-op-3.c
! 0e60a43b76649b87bc9fcd602794bc18  gcc/testsuite/gcc.target/bpf/atomic-op-1.c
! c1d17ef61aee7cd5cecbb0800c07bb0a  gcc/testsuite/gcc.target/bpf/atomic-op-2.c
! 043ea24b5e8def71f150fd7b6d0987ff  gcc/testsuite/gcc.target/bpf/atomic-op-3.c
! 14b72ae48aa6aa9944b2d8be146eee22  gcc/testsuite/gcc.target/bpf/atomic-xchg-1.c
! f270d8c52b1c8ecda06456b02342c806  gcc/testsuite/gcc.target/bpf/atomic-xchg-2.c
! 96ab67cd9b4be31679698947b23d5a63  gcc/testsuite/gcc.target/bpf/attr-kernel-helper.c
! 7150bf3f7f6aba0a510591b349325f14  gcc/testsuite/gcc.target/bpf/bpf-debug-options-1.c
! 565e352c8160d4f936f647e174ceaa31  gcc/testsuite/gcc.target/bpf/bpf-debug-options-2.c
! bf9ee92c02481fc487e6bdb697cd1b46  gcc/testsuite/gcc.target/bpf/bpf-debug-options-3.c
! 981c4d6e0137a8b37c024554aef036f0  gcc/testsuite/gcc.target/bpf/bpf.exp
! df7859ccc4fa99578f3c302c440d4605  gcc/testsuite/gcc.target/bpf/bswap-1.c
! c4a6ad70ac74c8733e479dfebcba3f60  gcc/testsuite/gcc.target/bpf/bswap-2.c
! 702aee4a9b7aaab7fabe02878e894d4c  gcc/testsuite/gcc.target/bpf/btfext-funcinfo-nocore.c
! e548674ceff126911c821129892cc7b4  gcc/testsuite/gcc.target/bpf/btfext-funcinfo.c
! 764fe5926bb10fe72fe4f44a1b56005a  gcc/testsuite/gcc.target/bpf/builtin-load.c
  c15ffd0fcf13b8089eb979818ca695d3  gcc/testsuite/gcc.target/bpf/constant-calls-1.c
  308ec3c13b184f3b2a8e46ea0f32f4c8  gcc/testsuite/gcc.target/bpf/constant-calls-2.c
! 0a35b0d6dab89db0e09c72c9ad75162e  gcc/testsuite/gcc.target/bpf/core-attr-1.c
! 6e576aec6dd862637a199f3cbdb0f2be  gcc/testsuite/gcc.target/bpf/core-attr-2.c
! aa148331f65710cec43d1bf4d93d05b5  gcc/testsuite/gcc.target/bpf/core-attr-3.c
! a422056a3e8f923356c4ec575ecf217e  gcc/testsuite/gcc.target/bpf/core-attr-4.c
! 8d52d5c271be64be1b7eeac8d1d6bfaf  gcc/testsuite/gcc.target/bpf/core-attr-5.c
! 876532ca74fad1f226e0523102920dfd  gcc/testsuite/gcc.target/bpf/core-attr-6.c
! 1785c9ea822d1ed50d0ffd5d959b4586  gcc/testsuite/gcc.target/bpf/core-attr-struct-as-array.c
! 017e4c01b555938ee728250f95e6f71c  gcc/testsuite/gcc.target/bpf/core-builtin-1.c
! 75a367e77b0706f7e63697a23b340061  gcc/testsuite/gcc.target/bpf/core-builtin-2.c
! b36d6b59df495ddd9e43470a49c5c997  gcc/testsuite/gcc.target/bpf/core-builtin-3.c
! 240b18f16784c89b91899c83c590baee  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue-errors.c
! fd555b17498e9c37bbcf8a9472e3d240  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue-opt.c
! fdfc5a3638e9d1309f0c32df19c3d42a  gcc/testsuite/gcc.target/bpf/core-builtin-enumvalue.c
! abc8518d8890c4979f91f0bfb8ef9028  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-1.c
! c0d2db508f7e7778e75088a5c07f7435  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-2.c
! 396c0a04f85a91e92cdc4735800dcca1  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-3.c
! 5724c83a8ac776a5a1ab87ebbf9c427e  gcc/testsuite/gcc.target/bpf/core-builtin-exprlist-4.c
! d4fe78235fef0d53c547b6d11fc3ef9b  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-const-elimination.c
! 41c8475163365b898a4aabab9cce497f  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-errors-1.c
! 2cafbab2c4fe82488ef722d494878909  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-errors-2.c
! 928c7646ce14ca2c890b1528c5fdedc9  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-existence-1.c
! ad0ef274e62ce90aded08697abd6dc7c  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-lshift-1-be.c
! 2ed2933cc2272d430493267e90e34199  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-lshift-1-le.c
! 7b4d795c83b022a00dffb0f5578ee4a1  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-lshift-2.c
! 3da057dcb05191efa3988175b4ed856d  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-offset-1.c
! 492d3a4401a7120a8e71e6f229bddfee  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-rshift-1.c
! 8d26daadb9dc7a56132b9a25c4d8bb6d  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-rshift-2.c
! 62e8340166328db9be463dfa8da443c5  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-sign-1.c
! 2f728b45503fd0b6f893238ed84a0bb2  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-sign-2.c
! 28962e91f85734d05f34c27f38ae2832  gcc/testsuite/gcc.target/bpf/core-builtin-fieldinfo-size-1.c
! f96b16be13445691e2258fbfc09631ad  gcc/testsuite/gcc.target/bpf/core-builtin-type-based.c
! 14f9c3f7f05fae64819e47a834e195b2  gcc/testsuite/gcc.target/bpf/core-builtin-type-id.c
  382784a9ab064815e8d03f16cad75b39  gcc/testsuite/gcc.target/bpf/core-lto-1.c
+ 331054e8979e449cf14cd1aeaeed8a24  gcc/testsuite/gcc.target/bpf/core-options-1.c
+ 90c9064e40d7e0f696985fd0cbcba943  gcc/testsuite/gcc.target/bpf/core-options-2.c
+ b0b05241d526a421896492e3d8849746  gcc/testsuite/gcc.target/bpf/core-options-3.c
+ 2138c6ab7f14cc4b6286b4ace47733ca  gcc/testsuite/gcc.target/bpf/core-options-4.c
  d806e90d8b8b8547bd35f37c91477380  gcc/testsuite/gcc.target/bpf/core-pr106745.c
! c43a670a617146d1a8286c5889ce5352  gcc/testsuite/gcc.target/bpf/core-section-1.c
! f0fb8751b0c40c08d089ce4f9ad1360e  gcc/testsuite/gcc.target/bpf/core-support.h
! f06242099b4e9156ed3c38d58d50a3a5  gcc/testsuite/gcc.target/bpf/diag-alloca-1.c
! 00387db12829f0b6041d8fe26db237aa  gcc/testsuite/gcc.target/bpf/diag-alloca-2.c
  7c5767ad8853516ee52b4fccd6f2ad45  gcc/testsuite/gcc.target/bpf/diag-funargs-2.c
  0f171b6874c7ce98e825ae0d0725fee0  gcc/testsuite/gcc.target/bpf/diag-funargs-3.c
! 2ec8b16e1098fc424b4a8ae2c4f8d0cf  gcc/testsuite/gcc.target/bpf/diag-funargs-inline-1.c
! 7e1980c39acd840bc303f8ffa2b1fdd6  gcc/testsuite/gcc.target/bpf/diag-funargs.c
  efb35ca8408d4ca4edc1dc74e7d53c88  gcc/testsuite/gcc.target/bpf/diag-indcalls.c
! a7f5ec01768cb381e90f685b889688dc  gcc/testsuite/gcc.target/bpf/diag-sdiv.c
! b90b06d639ef91190b7be8faa799f952  gcc/testsuite/gcc.target/bpf/diag-smod.c
! b54058163f5d939a8477daa99df0fbbf  gcc/testsuite/gcc.target/bpf/divmod-libcall-1.c
! 60640aca7351c76a1bc281f6142094ee  gcc/testsuite/gcc.target/bpf/divmod-libcall-2.c
! 5e39fb2cd2a85b22504756c39f25533e  gcc/testsuite/gcc.target/bpf/double-1.c
! 3bb235b8e0679659cf9aeff4f7c74d0f  gcc/testsuite/gcc.target/bpf/double-2.c
! 1947b79385e3f345e890e43912dd4b67  gcc/testsuite/gcc.target/bpf/feature-macro-1.c
! e5525edccc3d87be1237807c8e8f9dfb  gcc/testsuite/gcc.target/bpf/feature-macro-2.c
! 8cab7be4c87ef1f4ccfac5dc49e4a69c  gcc/testsuite/gcc.target/bpf/float-1.c
! 4d0f950765df1a681dd400307fa531c3  gcc/testsuite/gcc.target/bpf/frame-limit-1.c
! abfd084cab85b0aedb5178e83f909790  gcc/testsuite/gcc.target/bpf/frame-limit-2.c
! 0076277c4aa9f6465e4f9218c1aa7da4  gcc/testsuite/gcc.target/bpf/helper-bind.c
! 83c48c42a3f4a186202380adee694770  gcc/testsuite/gcc.target/bpf/helper-skb-ancestor-cgroup-id.c
! f65eb828e596b224a28902061ef2441b  gcc/testsuite/gcc.target/bpf/inline-memops-threshold-1.c
! 66569f3ff86403fc3202023a30d8fec9  gcc/testsuite/gcc.target/bpf/inline-memops-threshold-2.c
! b81a5c6eb8052fc52c54180b9aa17094  gcc/testsuite/gcc.target/bpf/jmp-1.c
! 3e9e2a10d62850fc7a4a194f6a6bb3b4  gcc/testsuite/gcc.target/bpf/ldxdw.c
! 0ddf77d1a973d7fd84028e0841e7e023  gcc/testsuite/gcc.target/bpf/memcpy-1.c
! b813d8fe9de40e92d053612c2870377f  gcc/testsuite/gcc.target/bpf/memmove-1.c
! 61717431b5a0ac29696b8966fcffb82d  gcc/testsuite/gcc.target/bpf/memmove-2.c
! 519cc9b302f9a6af82ee23578c42d978  gcc/testsuite/gcc.target/bpf/memset-1.c
! 08e35dee7813883fc06d43011a5b8b95  gcc/testsuite/gcc.target/bpf/memset-2.c
! adb6b92de0215aeb6afd970f07e89f03  gcc/testsuite/gcc.target/bpf/mulsidi3-zeroextend-pseudoc.c
! 290115ca392c41eb0b1d03361f774e46  gcc/testsuite/gcc.target/bpf/naked-1.c
! 848cfe50cbcfdb0ecd5397dde4709429  gcc/testsuite/gcc.target/bpf/naked-2.c
! e738ce01523c2f93ce93628076549b0e  gcc/testsuite/gcc.target/bpf/neg-1.c
! 4399a337e21749a23a6b185419c7009a  gcc/testsuite/gcc.target/bpf/neg-pseudoc-1.c
! 2f26e4242ea5fe9f6729e07a5649f0bb  gcc/testsuite/gcc.target/bpf/nop-1.c
! 9ae63023d712a4740d04e5f6abd0bccd  gcc/testsuite/gcc.target/bpf/regs-availability-1.c
! dc210944850146bb727cbe535853bf0f  gcc/testsuite/gcc.target/bpf/sdiv-1.c
! 26bee20e977af9e23fa3be4e74768b7d  gcc/testsuite/gcc.target/bpf/section-name-quoting-1.c
! c53b690925561139a373a97efbff2df6  gcc/testsuite/gcc.target/bpf/sload-1.c
! 97ddebb6d7bfc3bfe780c8bbeb83b216  gcc/testsuite/gcc.target/bpf/sload-pseudoc-1.c
! e06259744e645d5481c883ea0e114096  gcc/testsuite/gcc.target/bpf/smod-1.c
! eb65326c3de97684419ac66273ccce78  gcc/testsuite/gcc.target/bpf/smov-1.c
! b460526d0eaa50cb9a920c16a0074c0e  gcc/testsuite/gcc.target/bpf/smov-2.c
! 68ec7736d4c49c86426f1acb6a95e51f  gcc/testsuite/gcc.target/bpf/smov-pseudoc-1.c
! e6aad35d5d9107b96f024e37ca14ddab  gcc/testsuite/gcc.target/bpf/smov-pseudoc-2.c
! 34d2229b801d933b622d125db4f2d732  gcc/testsuite/gcc.target/bpf/sync-fetch-and-add.c
! 657b196a2414bfd6480a9ed6066f8819  gcc/testsuite/gcc.target/bpf/xbpf-indirect-call-1.c
  3ae9e0cc2cd08e28ef54e8540c762679  gcc/testsuite/gcc.target/cris/20011127-1.c
  75d3e9019c866a8402bf7aa4c913ee2d  gcc/testsuite/gcc.target/cris/asm-b-1.c
  a9d478d7af0e0b31660f3b7e507a6318  gcc/testsuite/gcc.target/cris/asm-other.S
*************** da811515083d9ddf056500903ebb758b  gcc/te
*** 63961,63976 ****
  825d51bc2455ddb81464d0a078c11bda  gcc/testsuite/gcc.target/cris/builtin_clz_v3.c
  619e346f21294a1edba1fa0d4fb11951  gcc/testsuite/gcc.target/cris/builtin_ctz_v3.c
  37dd2f4312701e553c1c5e8a89d8fcdd  gcc/testsuite/gcc.target/cris/builtin_ctz_v8.c
! 03c6809132162401322c77c3d7d6487a  gcc/testsuite/gcc.target/cris/cris.exp
  f267ed4a3d93f57ca2fd47fb88787845  gcc/testsuite/gcc.target/cris/dbr-1.c
  09fbcf24d1de7a8eae1a6d8d6243d8de  gcc/testsuite/gcc.target/cris/inasm-other.c
  22e3cf12d66bc0fca53215d6e8dbe6ff  gcc/testsuite/gcc.target/cris/inasm-v10.c
  0a47d77414729eb63abf0c919507b06e  gcc/testsuite/gcc.target/cris/inasm-v8.c
! 751812a15cc9e10b0d6ba8ebba967cb1  gcc/testsuite/gcc.target/cris/peep2-andu1.c
! 27facbb3023392cd2969ad6febfccd01  gcc/testsuite/gcc.target/cris/peep2-andu2.c
  a888364968b3f214618b7437a8d2044c  gcc/testsuite/gcc.target/cris/peep2-movulsr.c
! 78ff0ef706b5793ecc014e54ba01c61b  gcc/testsuite/gcc.target/cris/peep2-xsrand.c
! 8dca75dcf3a1144233e50bb58096542f  gcc/testsuite/gcc.target/cris/peep2-xsrand2.c
  3df6fb02a80881816df3a683b934876c  gcc/testsuite/gcc.target/cris/pr93372-1.c
  127bb47e5d714aa68423d049579791e7  gcc/testsuite/gcc.target/cris/pr93372-10.c
  044349cf85ef581bccf4952e7d8b2c6d  gcc/testsuite/gcc.target/cris/pr93372-11.c
--- 68370,68390 ----
  825d51bc2455ddb81464d0a078c11bda  gcc/testsuite/gcc.target/cris/builtin_clz_v3.c
  619e346f21294a1edba1fa0d4fb11951  gcc/testsuite/gcc.target/cris/builtin_ctz_v3.c
  37dd2f4312701e553c1c5e8a89d8fcdd  gcc/testsuite/gcc.target/cris/builtin_ctz_v8.c
! 04477a3aedc6caa50ece10e3be4cb524  gcc/testsuite/gcc.target/cris/cris.exp
  f267ed4a3d93f57ca2fd47fb88787845  gcc/testsuite/gcc.target/cris/dbr-1.c
  09fbcf24d1de7a8eae1a6d8d6243d8de  gcc/testsuite/gcc.target/cris/inasm-other.c
  22e3cf12d66bc0fca53215d6e8dbe6ff  gcc/testsuite/gcc.target/cris/inasm-v10.c
  0a47d77414729eb63abf0c919507b06e  gcc/testsuite/gcc.target/cris/inasm-v8.c
! 0d9f50110e8e54a51586df0eb31c724e  gcc/testsuite/gcc.target/cris/peep2-addsplit1.c
! bea0db9afb5d1e89641aa3f00396ed73  gcc/testsuite/gcc.target/cris/peep2-andsplit1.c
! 6eaf9972a9502111ac997f91c342da20  gcc/testsuite/gcc.target/cris/peep2-andu1.c
! f62fcd0eed909979aeb2b1f0fc17e9db  gcc/testsuite/gcc.target/cris/peep2-andu2.c
! 31da6295b06918353640ea34840095a9  gcc/testsuite/gcc.target/cris/peep2-lsrandsplit1.c
! cf672a5b62cb370366ae52cf386220cc  gcc/testsuite/gcc.target/cris/peep2-movandsplit1.c
  a888364968b3f214618b7437a8d2044c  gcc/testsuite/gcc.target/cris/peep2-movulsr.c
! 0c2f7a30ab638f8ec1df5049273102a0  gcc/testsuite/gcc.target/cris/peep2-movulsr2.c
! 48c2295b1383d04fb6a0d974de6b95f5  gcc/testsuite/gcc.target/cris/peep2-xsrand.c
! 318278a10ebe628017e0f9a8da82e05d  gcc/testsuite/gcc.target/cris/peep2-xsrand2.c
  3df6fb02a80881816df3a683b934876c  gcc/testsuite/gcc.target/cris/pr93372-1.c
  127bb47e5d714aa68423d049579791e7  gcc/testsuite/gcc.target/cris/pr93372-10.c
  044349cf85ef581bccf4952e7d8b2c6d  gcc/testsuite/gcc.target/cris/pr93372-11.c
*************** b08e4db62a9fb0f97ea3211c38828a92  gcc/te
*** 64027,64033 ****
  a8632f4c714d9a1bc78849b980440a8c  gcc/testsuite/gcc.target/cris/sync-4i.c
  690e9023ecafeef7a7be46436ca9854c  gcc/testsuite/gcc.target/cris/sync-4s.c
  0b1b7109726eb4d3415da0cc65329694  gcc/testsuite/gcc.target/cris/sync-xchg-1.c
! 7c848d41b0e7fb76bda766aef6d3aed5  gcc/testsuite/gcc.target/cris/torture/cris-torture.exp
  46bb07141c5993a8c5154d62b285f8c7  gcc/testsuite/gcc.target/cris/torture/no-pro-epi-1.c
  4181eccc65a7ef0c720e1f62eafc01fa  gcc/testsuite/gcc.target/cris/torture/pr24750-2.c
  3578773c3349eca3bbd054dfb8ebac62  gcc/testsuite/gcc.target/cris/torture/pr34773.c
--- 68441,68447 ----
  a8632f4c714d9a1bc78849b980440a8c  gcc/testsuite/gcc.target/cris/sync-4i.c
  690e9023ecafeef7a7be46436ca9854c  gcc/testsuite/gcc.target/cris/sync-4s.c
  0b1b7109726eb4d3415da0cc65329694  gcc/testsuite/gcc.target/cris/sync-xchg-1.c
! 6538a97c1b13e48c03e5369f7ba5ff9c  gcc/testsuite/gcc.target/cris/torture/cris-torture.exp
  46bb07141c5993a8c5154d62b285f8c7  gcc/testsuite/gcc.target/cris/torture/no-pro-epi-1.c
  4181eccc65a7ef0c720e1f62eafc01fa  gcc/testsuite/gcc.target/cris/torture/pr24750-2.c
  3578773c3349eca3bbd054dfb8ebac62  gcc/testsuite/gcc.target/cris/torture/pr34773.c
*************** e334448d62e2715aea6c2d7e57c2576b  gcc/te
*** 64055,64061 ****
  aaad88eae49192421bd38c2c837d5ffc  gcc/testsuite/gcc.target/csky/constpool-1.c
  7e4e72e722403eab3bdd2874c8512498  gcc/testsuite/gcc.target/csky/constpool-2.c
  c64550af69ac6a4dfb37edcc3e6de899  gcc/testsuite/gcc.target/csky/cse-cc.c
! 98a36041b88d8d2a9eaf1c97735e80da  gcc/testsuite/gcc.target/csky/csky.exp
  3ff18cb12dcb4fb55c1616d207f0f2e9  gcc/testsuite/gcc.target/csky/fldrd_fstrd.c
  0f17acdd834091c69016d7a2af242e1f  gcc/testsuite/gcc.target/csky/fnargs-1.c
  71a0a8fdef92000347984095b42f84f2  gcc/testsuite/gcc.target/csky/fnargs-2.c
--- 68469,68475 ----
  aaad88eae49192421bd38c2c837d5ffc  gcc/testsuite/gcc.target/csky/constpool-1.c
  7e4e72e722403eab3bdd2874c8512498  gcc/testsuite/gcc.target/csky/constpool-2.c
  c64550af69ac6a4dfb37edcc3e6de899  gcc/testsuite/gcc.target/csky/cse-cc.c
! fd56f58ba1b0d4980902769303a9a8ae  gcc/testsuite/gcc.target/csky/csky.exp
  3ff18cb12dcb4fb55c1616d207f0f2e9  gcc/testsuite/gcc.target/csky/fldrd_fstrd.c
  0f17acdd834091c69016d7a2af242e1f  gcc/testsuite/gcc.target/csky/fnargs-1.c
  71a0a8fdef92000347984095b42f84f2  gcc/testsuite/gcc.target/csky/fnargs-2.c
*************** ac08a3c5539d8fe4b68818cce90d0271  gcc/te
*** 64065,64071 ****
  fcd38c704b19d2241fdea4d4564d7218  gcc/testsuite/gcc.target/csky/fnmul-3.c
  8e4a61b89a91d87d007558c91da270fc  gcc/testsuite/gcc.target/csky/fnmul-4.c
  32b43a0f434aa490598892cf1cbe6618  gcc/testsuite/gcc.target/csky/fpuv3/fldr64_fstr64.c
! f5e73e6eeb923dbf23757ae4c9af8696  gcc/testsuite/gcc.target/csky/fpuv3/fpuv3.exp
  f0e0df3f7b547f0f568889d82be4d61b  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_div.c
  94bf44b18840c2e29caf1d82fd7284a4  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_fadd.c
  3367772e87bcfd8ebc7f55ac55c2da13  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_fdtos.c
--- 68479,68485 ----
  fcd38c704b19d2241fdea4d4564d7218  gcc/testsuite/gcc.target/csky/fnmul-3.c
  8e4a61b89a91d87d007558c91da270fc  gcc/testsuite/gcc.target/csky/fnmul-4.c
  32b43a0f434aa490598892cf1cbe6618  gcc/testsuite/gcc.target/csky/fpuv3/fldr64_fstr64.c
! 92e01084f49b3712293a1669b1d639ec  gcc/testsuite/gcc.target/csky/fpuv3/fpuv3.exp
  f0e0df3f7b547f0f568889d82be4d61b  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_div.c
  94bf44b18840c2e29caf1d82fd7284a4  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_fadd.c
  3367772e87bcfd8ebc7f55ac55c2da13  gcc/testsuite/gcc.target/csky/fpuv3/fpv3_fdtos.c
*************** e21f46f9fe1e967307de4447e3bfd188  gcc/te
*** 64108,64114 ****
  f8325974b60d2e8397f34c8f0e8d8bbf  gcc/testsuite/gcc.target/csky/naked.c
  b7b0230f4b534b91ce701e0cfaf699fc  gcc/testsuite/gcc.target/csky/or1.c
  3396d7f14e4963592892b06ccec1dbed  gcc/testsuite/gcc.target/epiphany/btst-1.c
! cbfd5f1e718dd39b2a49ad348501d777  gcc/testsuite/gcc.target/epiphany/epiphany.exp
  f477a84910092e956697c8b091ff4aba  gcc/testsuite/gcc.target/epiphany/fcmp-1.c
  c8ff5d5cf55484cd9bab33958ca94c36  gcc/testsuite/gcc.target/epiphany/fmadd-1.c
  a2ce030a9439b19e934208c89cb93ba6  gcc/testsuite/gcc.target/epiphany/fmsub-1.c
--- 68522,68528 ----
  f8325974b60d2e8397f34c8f0e8d8bbf  gcc/testsuite/gcc.target/csky/naked.c
  b7b0230f4b534b91ce701e0cfaf699fc  gcc/testsuite/gcc.target/csky/or1.c
  3396d7f14e4963592892b06ccec1dbed  gcc/testsuite/gcc.target/epiphany/btst-1.c
! d0961e08f657f540da640e1f5c283244  gcc/testsuite/gcc.target/epiphany/epiphany.exp
  f477a84910092e956697c8b091ff4aba  gcc/testsuite/gcc.target/epiphany/fcmp-1.c
  c8ff5d5cf55484cd9bab33958ca94c36  gcc/testsuite/gcc.target/epiphany/fmadd-1.c
  a2ce030a9439b19e934208c89cb93ba6  gcc/testsuite/gcc.target/epiphany/fmsub-1.c
*************** d7f2f60c2c464ec7133704d0b8deb86d  gcc/te
*** 64149,64224 ****
  0bbd4283a697514ba60e495e007fbbaa  gcc/testsuite/gcc.target/frv/fr550-builtins-3.c
  d8fff2cc6bc3321095b7345915e98ec1  gcc/testsuite/gcc.target/frv/fr550-builtins-4.c
  4f94aea2a37f6adad09abfdbb47bb87e  gcc/testsuite/gcc.target/frv/fr550-builtins-5.c
! a59a55f98239d81df45e4007d315600c  gcc/testsuite/gcc.target/frv/frv.exp
  df466e656c9d9b4d351c2a9bb8d8f6d8  gcc/testsuite/gcc.target/gcn/complex.c
! 2180e3d37af65cd29a16bd32a2a43df9  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_1.c
  2511ca08a6587c62a068468e93afc652  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_1_run.c
! e2ab8c5c5d97ce6fe19ec2aff7e51ff3  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_2.c
  eb8696a455fd16137fbe536d0c09c64f  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_2_run.c
! 9a8ee023dd2f4ca6c2e4c3d2193e4852  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_3.c
  1116a722095cd29029e1ed1b0f42f342  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_3_run.c
! 0880f9b5a2ba60d4cfc07299a77f4141  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_4.c
  10f7ee57055ca921a3fc2baa780f7a02  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_4_run.c
! 3aef879c4b7d9f3935d4b6e58d415267  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_5.c
  22598d4094703254571d1c1c38bf9114  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_5_run.c
! 7f900b8ac9c9966af39b571863622648  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_6.c
  153d623e75f707339c207b99c3961ad3  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_6_run.c
! d12235e973d22c294cf5136f6f5b8ab2  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_7.c
  f2cdea9c4c832879b4953b4fb63da7a6  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_7_run.c
! 7d19fc5e1e6e0888afacdcf3fa81c450  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_8.c
  f10c8486c2d1b83804c7a5660577c681  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_8_run.c
! ddb1b4294adfd2d23a9838976c16e4f4  gcc/testsuite/gcc.target/gcn/cond_fminnm_1.c
  6ba7a458125ab63cef5a955eb3f679dc  gcc/testsuite/gcc.target/gcn/cond_fminnm_1_run.c
! 1064b4200284c35c256b130af88351c3  gcc/testsuite/gcc.target/gcn/cond_fminnm_2.c
  9ab15d59c2a1ef7550302595b78e4c77  gcc/testsuite/gcc.target/gcn/cond_fminnm_2_run.c
! ab06844ea189789b119d83f5fc9d7d44  gcc/testsuite/gcc.target/gcn/cond_fminnm_3.c
  4cd45f5a7694799cc968464eb3bba148  gcc/testsuite/gcc.target/gcn/cond_fminnm_3_run.c
! a17fe579768053b36d39439f54d7c0ee  gcc/testsuite/gcc.target/gcn/cond_fminnm_4.c
  d366633ce5e932318194971afdf7f7a2  gcc/testsuite/gcc.target/gcn/cond_fminnm_4_run.c
! a834f5feb85b7f2249d3c80ae4eb8132  gcc/testsuite/gcc.target/gcn/cond_fminnm_5.c
  b58ba4d23a4f05a63892c26fc6320b36  gcc/testsuite/gcc.target/gcn/cond_fminnm_5_run.c
! 68ed5ddba4705689c324bc851f261cc8  gcc/testsuite/gcc.target/gcn/cond_fminnm_6.c
  1c77c03912b367743edd4a016041f6c9  gcc/testsuite/gcc.target/gcn/cond_fminnm_6_run.c
! cea588f3895bdb567e1093b9394ce7af  gcc/testsuite/gcc.target/gcn/cond_fminnm_7.c
  fd541d2634275bc49972f63e3ea1a22b  gcc/testsuite/gcc.target/gcn/cond_fminnm_7_run.c
! 92e5e45db0341446db03e77e841c2024  gcc/testsuite/gcc.target/gcn/cond_fminnm_8.c
  05cf329d952b3c5fa1f6dee44334b2f4  gcc/testsuite/gcc.target/gcn/cond_fminnm_8_run.c
! da99fd0980d64626bae6adcc0d09b2b2  gcc/testsuite/gcc.target/gcn/cond_shift_3.c
  1e17bdb912a33e366ddc9e5e1dbcf66f  gcc/testsuite/gcc.target/gcn/cond_shift_3_run.c
! 2487d22c007b08c202ddbd911690e973  gcc/testsuite/gcc.target/gcn/cond_shift_4.c
  c3e4da440176caeea1441b7269253b5a  gcc/testsuite/gcc.target/gcn/cond_shift_4_run.c
! 14893f5191dec0c2bf3756d1160ca43d  gcc/testsuite/gcc.target/gcn/cond_shift_8.c
  a4dccf4a3ebf463ff7c1ef6309127c2b  gcc/testsuite/gcc.target/gcn/cond_shift_8_run.c
! 3800505c91250f200fe4040ccf934ba4  gcc/testsuite/gcc.target/gcn/cond_shift_9.c
  8001e6f963f215252768c40269d67f46  gcc/testsuite/gcc.target/gcn/cond_shift_9_run.c
! d96f3b7bcbb9b368c854e7f4d51afd63  gcc/testsuite/gcc.target/gcn/cond_smax_1.c
  4af897fd9bc0955a48837cdf20fc911b  gcc/testsuite/gcc.target/gcn/cond_smax_1_run.c
! 94e035d612e8e3463e1b101fd813943e  gcc/testsuite/gcc.target/gcn/cond_smin_1.c
  2ed63564c3ec9cee1b4a9b34863cb248  gcc/testsuite/gcc.target/gcn/cond_smin_1_run.c
! 3df2b1c2704a56f59d951a6767194fd9  gcc/testsuite/gcc.target/gcn/cond_umax_1.c
  3a2b9375bc537bfcb75d840dd851b66b  gcc/testsuite/gcc.target/gcn/cond_umax_1_run.c
! 5ec317301426d571f7b2cdf778be9091  gcc/testsuite/gcc.target/gcn/cond_umin_1.c
  40b9cd3a0a4158d65bbd69924aa432fa  gcc/testsuite/gcc.target/gcn/cond_umin_1_run.c
  1b1c20c803fbc22cf3ed4c1a9dbb7cd6  gcc/testsuite/gcc.target/gcn/fpdiv.c
! d64b16993666ddd5f00728d95c1e5e36  gcc/testsuite/gcc.target/gcn/gcn.exp
  f8c14281fa729687851e69729e7776c8  gcc/testsuite/gcc.target/gcn/math-builtins-1.c
! e1a9ff6e293dc4cd41f1b88894566c73  gcc/testsuite/gcc.target/gcn/simd-math-1.c
  e44eff572cbf9d441776358c84f710c4  gcc/testsuite/gcc.target/gcn/simd-math-2.c
! b2a9def41f10244288af094b92597e8e  gcc/testsuite/gcc.target/gcn/smax_1.c
  6e933396760a7a72a37422dcce7d607d  gcc/testsuite/gcc.target/gcn/smax_1_run.c
! d3b69579c49c8403b79d6b23a4fd93ad  gcc/testsuite/gcc.target/gcn/smin_1.c
  1e8da5af3a5f8caa3571350d21540384  gcc/testsuite/gcc.target/gcn/smin_1_run.c
  0ea62a0ac401e376be4dd2643553b422  gcc/testsuite/gcc.target/gcn/sram-ecc-1.c
  294892f7304e51ed7447fc2643e45348  gcc/testsuite/gcc.target/gcn/sram-ecc-2.c
! 3f10465d2867369105692e397e098a18  gcc/testsuite/gcc.target/gcn/sram-ecc-3.c
! d60d982cb4210c180358f523b33a4a54  gcc/testsuite/gcc.target/gcn/sram-ecc-4.c
  7dfdb0fb2674bd25f2ae262e01097a60  gcc/testsuite/gcc.target/gcn/sram-ecc-5.c
  b39be000dd7931ea7f636d96b9345501  gcc/testsuite/gcc.target/gcn/sram-ecc-6.c
! d8a69d1e0f8e59ede6337a9f9af06146  gcc/testsuite/gcc.target/gcn/sram-ecc-7.c
! 2c882a842b59dbf26f7c106877836e56  gcc/testsuite/gcc.target/gcn/sram-ecc-8.c
! a6912225a2514b70b905d5ce5b1ff92f  gcc/testsuite/gcc.target/gcn/umax_1.c
  2719dad67ae134a3041196bde8b23bec  gcc/testsuite/gcc.target/gcn/umax_1_run.c
! 008a014072290507913d8cbfb6b03211  gcc/testsuite/gcc.target/gcn/umin_1.c
  c1f2f58ff01ac0af9bac1540222140eb  gcc/testsuite/gcc.target/gcn/umin_1_run.c
  789a4df2f8cafe6ecb94a95067888657  gcc/testsuite/gcc.target/gcn/unsafe-math-1.c
  1e706003dee9df5d57006e904e26af25  gcc/testsuite/gcc.target/gcn/vcc-clobber.c
--- 68563,68744 ----
  0bbd4283a697514ba60e495e007fbbaa  gcc/testsuite/gcc.target/frv/fr550-builtins-3.c
  d8fff2cc6bc3321095b7345915e98ec1  gcc/testsuite/gcc.target/frv/fr550-builtins-4.c
  4f94aea2a37f6adad09abfdbb47bb87e  gcc/testsuite/gcc.target/frv/fr550-builtins-5.c
! a20afe7ed77b3a04801a555492ea6bde  gcc/testsuite/gcc.target/frv/frv.exp
! b76010526d08e7c23f0e74cf91cf6e0c  gcc/testsuite/gcc.target/gcn/avgpr-mem-double.c
! 25674c58995cafd26319f71daae6bc47  gcc/testsuite/gcc.target/gcn/avgpr-mem-int.c
! f1b50d3c7f006e6bcf86d5c49efa0b0d  gcc/testsuite/gcc.target/gcn/avgpr-mem-long.c
! cac300ddeb7d746a67bc2f5f77ff189d  gcc/testsuite/gcc.target/gcn/avgpr-mem-short.c
! 208637f8756b6b749b1c0b0660a1d074  gcc/testsuite/gcc.target/gcn/avgpr-spill-double.c
! 36ae71ef8df8560d23d8c43e66668203  gcc/testsuite/gcc.target/gcn/avgpr-spill-int.c
! e31178f2d8326966f92aede921e7b705  gcc/testsuite/gcc.target/gcn/avgpr-spill-long.c
! 23608a2f839a211c1a1df7ba7fa4c822  gcc/testsuite/gcc.target/gcn/avgpr-spill-short.c
  df466e656c9d9b4d351c2a9bb8d8f6d8  gcc/testsuite/gcc.target/gcn/complex.c
! da2c45d7d0822fa8b3874402bb73965a  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_1.c
  2511ca08a6587c62a068468e93afc652  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_1_run.c
! 33c36eccd5c31f1673fb9645d1cbbb6d  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_2.c
  eb8696a455fd16137fbe536d0c09c64f  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_2_run.c
! b944d26de901092c3b2ac680330dec44  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_3.c
  1116a722095cd29029e1ed1b0f42f342  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_3_run.c
! 8875a0da1c7c25eef7a3843794bad578  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_4.c
  10f7ee57055ca921a3fc2baa780f7a02  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_4_run.c
! 6c4a4102129414af13d6a9dbe41e2659  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_5.c
  22598d4094703254571d1c1c38bf9114  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_5_run.c
! 8964785afe665a3caa34a5edf48a4242  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_6.c
  153d623e75f707339c207b99c3961ad3  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_6_run.c
! c4687db2d832f93cd618db9830060fb3  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_7.c
  f2cdea9c4c832879b4953b4fb63da7a6  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_7_run.c
! f23a2407076fd09af92144824b83d758  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_8.c
  f10c8486c2d1b83804c7a5660577c681  gcc/testsuite/gcc.target/gcn/cond_fmaxnm_8_run.c
! 9878573385ebee077548492a5de712f0  gcc/testsuite/gcc.target/gcn/cond_fminnm_1.c
  6ba7a458125ab63cef5a955eb3f679dc  gcc/testsuite/gcc.target/gcn/cond_fminnm_1_run.c
! 77f5aee594f64e389afe27ac55fda217  gcc/testsuite/gcc.target/gcn/cond_fminnm_2.c
  9ab15d59c2a1ef7550302595b78e4c77  gcc/testsuite/gcc.target/gcn/cond_fminnm_2_run.c
! 336372f84f4ee400d15cf7c508060840  gcc/testsuite/gcc.target/gcn/cond_fminnm_3.c
  4cd45f5a7694799cc968464eb3bba148  gcc/testsuite/gcc.target/gcn/cond_fminnm_3_run.c
! 02e33e9d1891c326bf44f1faffcd6d06  gcc/testsuite/gcc.target/gcn/cond_fminnm_4.c
  d366633ce5e932318194971afdf7f7a2  gcc/testsuite/gcc.target/gcn/cond_fminnm_4_run.c
! 1ad8af1e1bc5d9c669eb29f2c97d395f  gcc/testsuite/gcc.target/gcn/cond_fminnm_5.c
  b58ba4d23a4f05a63892c26fc6320b36  gcc/testsuite/gcc.target/gcn/cond_fminnm_5_run.c
! 95b7518c2c6356ffc7fd770de727dc37  gcc/testsuite/gcc.target/gcn/cond_fminnm_6.c
  1c77c03912b367743edd4a016041f6c9  gcc/testsuite/gcc.target/gcn/cond_fminnm_6_run.c
! 00ee55c8f7075a66164f92151534457b  gcc/testsuite/gcc.target/gcn/cond_fminnm_7.c
  fd541d2634275bc49972f63e3ea1a22b  gcc/testsuite/gcc.target/gcn/cond_fminnm_7_run.c
! 781896ef8b8c630368133c890f18e9de  gcc/testsuite/gcc.target/gcn/cond_fminnm_8.c
  05cf329d952b3c5fa1f6dee44334b2f4  gcc/testsuite/gcc.target/gcn/cond_fminnm_8_run.c
! 4fa2b6e23154f6b5ea0557f0c1b109a7  gcc/testsuite/gcc.target/gcn/cond_shift_3.c
  1e17bdb912a33e366ddc9e5e1dbcf66f  gcc/testsuite/gcc.target/gcn/cond_shift_3_run.c
! cfeae75383efba8ed2d18b97db2cec39  gcc/testsuite/gcc.target/gcn/cond_shift_4.c
  c3e4da440176caeea1441b7269253b5a  gcc/testsuite/gcc.target/gcn/cond_shift_4_run.c
! 31521f3e2dc6be13f2f3439ce7f758f3  gcc/testsuite/gcc.target/gcn/cond_shift_8.c
  a4dccf4a3ebf463ff7c1ef6309127c2b  gcc/testsuite/gcc.target/gcn/cond_shift_8_run.c
! 9cdecbe24c9590f041d89dd325ac1a26  gcc/testsuite/gcc.target/gcn/cond_shift_9.c
  8001e6f963f215252768c40269d67f46  gcc/testsuite/gcc.target/gcn/cond_shift_9_run.c
! 639505d80870650de79d33bc894103ec  gcc/testsuite/gcc.target/gcn/cond_smax_1.c
  4af897fd9bc0955a48837cdf20fc911b  gcc/testsuite/gcc.target/gcn/cond_smax_1_run.c
! 330ca7f42afeccde9ee5b231c2d061f7  gcc/testsuite/gcc.target/gcn/cond_smin_1.c
  2ed63564c3ec9cee1b4a9b34863cb248  gcc/testsuite/gcc.target/gcn/cond_smin_1_run.c
! 66f3e5c25fdfaafc3dd5af27dc5bc528  gcc/testsuite/gcc.target/gcn/cond_umax_1.c
  3a2b9375bc537bfcb75d840dd851b66b  gcc/testsuite/gcc.target/gcn/cond_umax_1_run.c
! 98f0611c154397256fc470fabb022f55  gcc/testsuite/gcc.target/gcn/cond_umin_1.c
  40b9cd3a0a4158d65bbd69924aa432fa  gcc/testsuite/gcc.target/gcn/cond_umin_1_run.c
  1b1c20c803fbc22cf3ed4c1a9dbb7cd6  gcc/testsuite/gcc.target/gcn/fpdiv.c
! e90dd69c8ec9fe641da215baa2411e40  gcc/testsuite/gcc.target/gcn/gcn.exp
  f8c14281fa729687851e69729e7776c8  gcc/testsuite/gcc.target/gcn/math-builtins-1.c
! 37943267e1d7063abbdffcb7bbe70b61  gcc/testsuite/gcc.target/gcn/pr113163.c
! d75a491a0b0343050793e6acdce8b787  gcc/testsuite/gcc.target/gcn/pr113199.c
! 4e6c56ab172baa7aa93d0febfa33ccdf  gcc/testsuite/gcc.target/gcn/simd-math-1.c
  e44eff572cbf9d441776358c84f710c4  gcc/testsuite/gcc.target/gcn/simd-math-2.c
! 4244ab42f721cbdd08bdae5d5b626e57  gcc/testsuite/gcc.target/gcn/simd-math-3-16.c
! f30c2915a1d04c0886dc017f4fa9fc95  gcc/testsuite/gcc.target/gcn/simd-math-3-2.c
! ce21e80728593a26772cd9b37ca6740b  gcc/testsuite/gcc.target/gcn/simd-math-3-32.c
! 7537ce4853d9b13705e87901af661613  gcc/testsuite/gcc.target/gcn/simd-math-3-4.c
! 3c8d747bcc9b4535de43fb88cc1bd5db  gcc/testsuite/gcc.target/gcn/simd-math-3-8.c
! ebc887191b10e8964355bab3eae4cdf9  gcc/testsuite/gcc.target/gcn/simd-math-3-char-16.c
! 59002034770fadaa8ef0d651b86e945a  gcc/testsuite/gcc.target/gcn/simd-math-3-char-2.c
! 6c70eb8d5b286234f3e4ec63c4047d61  gcc/testsuite/gcc.target/gcn/simd-math-3-char-32.c
! 395d47c0c10e2741aafcbb16a25068e7  gcc/testsuite/gcc.target/gcn/simd-math-3-char-4.c
! 0c44f0822d28e32d168bf75ad9b2cc07  gcc/testsuite/gcc.target/gcn/simd-math-3-char-8.c
! 86a389215fc8bd7cb7421b16b0613f24  gcc/testsuite/gcc.target/gcn/simd-math-3-char-run-16.c
! 2f2a6736e72002680dd7370375ff5e6e  gcc/testsuite/gcc.target/gcn/simd-math-3-char-run-2.c
! 0bc4d14b45ca525bcff8d5578981dd9f  gcc/testsuite/gcc.target/gcn/simd-math-3-char-run-32.c
! 3ac199a7576910eed00e755471ce5caf  gcc/testsuite/gcc.target/gcn/simd-math-3-char-run-4.c
! 28d5e3cea2704d956aeff50aebb74ccc  gcc/testsuite/gcc.target/gcn/simd-math-3-char-run-8.c
! 75e161e9a59a7bf87259ca7b73f6412d  gcc/testsuite/gcc.target/gcn/simd-math-3-char-run.c
! 854d2bf12fb6a2b1b46eba76960f586f  gcc/testsuite/gcc.target/gcn/simd-math-3-char.c
! fbc93d3e2aeb82ba32167a64b6e3fa04  gcc/testsuite/gcc.target/gcn/simd-math-3-long-16.c
! 9238aa9ea6eae8b7c7f655ca98b5cfca  gcc/testsuite/gcc.target/gcn/simd-math-3-long-2.c
! d91218ad446239a8b1226ee4543cc1c8  gcc/testsuite/gcc.target/gcn/simd-math-3-long-32.c
! 1120b87c3e20899d23d07c1d6e2da572  gcc/testsuite/gcc.target/gcn/simd-math-3-long-4.c
! d668f993ea9faabf24a0cbb5da96a3b0  gcc/testsuite/gcc.target/gcn/simd-math-3-long-8.c
! 3ca5eaa7abe1edd85dc447f1993063be  gcc/testsuite/gcc.target/gcn/simd-math-3-long-run-16.c
! a943cc480f5dc0b8b510cf5bef83d79c  gcc/testsuite/gcc.target/gcn/simd-math-3-long-run-2.c
! 4a56aecfe18954dff39bb6ef483936c9  gcc/testsuite/gcc.target/gcn/simd-math-3-long-run-32.c
! 03a85a8f75a457a99388309c7295b5ef  gcc/testsuite/gcc.target/gcn/simd-math-3-long-run-4.c
! 13411bd89102b6e8be2cd690f5d414ac  gcc/testsuite/gcc.target/gcn/simd-math-3-long-run-8.c
! 9df04cc02073793e7711c4ea3794a57e  gcc/testsuite/gcc.target/gcn/simd-math-3-long-run.c
! 27e55870290af7171d3ed205f9b935df  gcc/testsuite/gcc.target/gcn/simd-math-3-long.c
! 55f8d40daf2047804ca38d995a6af635  gcc/testsuite/gcc.target/gcn/simd-math-3-run-16.c
! cabd39b9de279fda4062d7adf44d73f3  gcc/testsuite/gcc.target/gcn/simd-math-3-run-2.c
! 40b4159562e8b061829159e07e274320  gcc/testsuite/gcc.target/gcn/simd-math-3-run-32.c
! 0eec771d03c73b9b6c0e6d96dc9e7fc5  gcc/testsuite/gcc.target/gcn/simd-math-3-run-4.c
! d8720904b0e5ca056d6bf035fd7520a9  gcc/testsuite/gcc.target/gcn/simd-math-3-run-8.c
! 52c936d120d2baa5455fd9dab065cf95  gcc/testsuite/gcc.target/gcn/simd-math-3-run.c
! 1d11ace31fc7b9797b569f73003527f3  gcc/testsuite/gcc.target/gcn/simd-math-3-short-16.c
! f403e431bfdc5476796eed3422631db2  gcc/testsuite/gcc.target/gcn/simd-math-3-short-2.c
! d30d0f170f7020ada300e10e4fe90287  gcc/testsuite/gcc.target/gcn/simd-math-3-short-32.c
! 981bbaaf6014fe6d42d78fcac52cc436  gcc/testsuite/gcc.target/gcn/simd-math-3-short-4.c
! fe7de84a5ed4c9a711d27526b763d026  gcc/testsuite/gcc.target/gcn/simd-math-3-short-8.c
! 26a6a777a2bff303d398f90e38a7c59c  gcc/testsuite/gcc.target/gcn/simd-math-3-short-run-16.c
! 8b939966ae4cf6eaa7e5719020288b72  gcc/testsuite/gcc.target/gcn/simd-math-3-short-run-2.c
! c78264b8c7e1e3dcfd80622c2a4f410b  gcc/testsuite/gcc.target/gcn/simd-math-3-short-run-32.c
! 65d9dced527e6771c8e27b2a76dc5859  gcc/testsuite/gcc.target/gcn/simd-math-3-short-run-4.c
! 8679ae2dc60d316bdd2f5fdd73c7d7ee  gcc/testsuite/gcc.target/gcn/simd-math-3-short-run-8.c
! 12bfd03d9e83777cbaef5d4480c745a8  gcc/testsuite/gcc.target/gcn/simd-math-3-short-run.c
! be022c63dd25ddbafce91da8d6b4044a  gcc/testsuite/gcc.target/gcn/simd-math-3-short.c
! 8b754083e81cdf4d097004466a9f0cbe  gcc/testsuite/gcc.target/gcn/simd-math-3.c
! d88bc6331de1407f5dfffe3391867249  gcc/testsuite/gcc.target/gcn/simd-math-4-char-run.c
! 1b782f276f6cac5a64bdc1343d72fc80  gcc/testsuite/gcc.target/gcn/simd-math-4-char.c
! 8afa6481e098a6f216b53f36976bb747  gcc/testsuite/gcc.target/gcn/simd-math-4-long-run.c
! a928483167b8226e2a5599991a4f6a91  gcc/testsuite/gcc.target/gcn/simd-math-4-long.c
! 445c39c9e9f8d4f1d3a41ed878f92b9e  gcc/testsuite/gcc.target/gcn/simd-math-4-run.c
! b40513b34e171d266328e35fda4b76c0  gcc/testsuite/gcc.target/gcn/simd-math-4-short-run.c
! d5f8b5d4197bfba9831c5c49526fceef  gcc/testsuite/gcc.target/gcn/simd-math-4-short.c
! bb34af7fcaa3ad76886bcb6d56067528  gcc/testsuite/gcc.target/gcn/simd-math-4.c
! cfa77361523b34b4d245835ac25cdfd3  gcc/testsuite/gcc.target/gcn/simd-math-5-16.c
! c1534c0b2be107d9d7cbe7fac40cde4d  gcc/testsuite/gcc.target/gcn/simd-math-5-32.c
! d41134932e91b72a53dd6b4a6f292bde  gcc/testsuite/gcc.target/gcn/simd-math-5-4.c
! 166df8b3d535dba84364ec210da6cb6b  gcc/testsuite/gcc.target/gcn/simd-math-5-8.c
! 17679c389c0eb74e87ff95f5ec08c548  gcc/testsuite/gcc.target/gcn/simd-math-5-char-16.c
! 2ecc2cd274d3dbab88ea30623eee0f61  gcc/testsuite/gcc.target/gcn/simd-math-5-char-32.c
! 362a9df746e5457ac5703ac4e358f8d3  gcc/testsuite/gcc.target/gcn/simd-math-5-char-4.c
! 0a221a3a535cee69faa43be8a4889582  gcc/testsuite/gcc.target/gcn/simd-math-5-char-8.c
! a59bfe10fc32d7184e02cb6c3036f83b  gcc/testsuite/gcc.target/gcn/simd-math-5-char-run-16.c
! f5df96a99db0e9ac2404430aaff8ff29  gcc/testsuite/gcc.target/gcn/simd-math-5-char-run-32.c
! 0187d0cae23d4a15f70dfcb32f648c66  gcc/testsuite/gcc.target/gcn/simd-math-5-char-run-4.c
! e3aca1dc5fadd1c6a4d7bd398c7aecf8  gcc/testsuite/gcc.target/gcn/simd-math-5-char-run-8.c
! 90800d578899c4d9d4c9d62752b004c8  gcc/testsuite/gcc.target/gcn/simd-math-5-char-run.c
! 7bdbf5a9b3319ecebe2e3d97bd122bb1  gcc/testsuite/gcc.target/gcn/simd-math-5-char.c
! 4c009a68c97beb57a6788ad73a54147a  gcc/testsuite/gcc.target/gcn/simd-math-5-long-16.c
! 4f820c4a7ef6293e5482fdfd14d165a5  gcc/testsuite/gcc.target/gcn/simd-math-5-long-32.c
! b9f8215f005282345a0a82da008d6b0d  gcc/testsuite/gcc.target/gcn/simd-math-5-long-4.c
! 1f6ac65c9695db59292fb0bcff947b0f  gcc/testsuite/gcc.target/gcn/simd-math-5-long-8.c
! 220287e1abadb770294d03545a49957c  gcc/testsuite/gcc.target/gcn/simd-math-5-long-run-16.c
! 116c7797c1baeab2367a0e0e13cc6a7d  gcc/testsuite/gcc.target/gcn/simd-math-5-long-run-32.c
! 276fba963e0c4ffdccee59f83c52a1bf  gcc/testsuite/gcc.target/gcn/simd-math-5-long-run-4.c
! 427366960539eab9e3291bf24c0c9453  gcc/testsuite/gcc.target/gcn/simd-math-5-long-run-8.c
! 27672e9446321a15ad65479ee8f74bf7  gcc/testsuite/gcc.target/gcn/simd-math-5-long-run.c
! c6f4789bcd69b3d395e9f409205cebb8  gcc/testsuite/gcc.target/gcn/simd-math-5-long.c
! 220287e1abadb770294d03545a49957c  gcc/testsuite/gcc.target/gcn/simd-math-5-run-16.c
! 116c7797c1baeab2367a0e0e13cc6a7d  gcc/testsuite/gcc.target/gcn/simd-math-5-run-32.c
! 276fba963e0c4ffdccee59f83c52a1bf  gcc/testsuite/gcc.target/gcn/simd-math-5-run-4.c
! 427366960539eab9e3291bf24c0c9453  gcc/testsuite/gcc.target/gcn/simd-math-5-run-8.c
! cdd162b0832979cddb48ea58fd728869  gcc/testsuite/gcc.target/gcn/simd-math-5-run.c
! 9fa5129387f29dff5769af1a976198e5  gcc/testsuite/gcc.target/gcn/simd-math-5-short-16.c
! ada292d1c6b70b3a47072401d04931fc  gcc/testsuite/gcc.target/gcn/simd-math-5-short-32.c
! 662030057eeb7296987a7e455a22feab  gcc/testsuite/gcc.target/gcn/simd-math-5-short-4.c
! 22a117e7daf945437780606ceaa489e2  gcc/testsuite/gcc.target/gcn/simd-math-5-short-8.c
! f5bebf5f5ffe36e0ea2703384e07b80f  gcc/testsuite/gcc.target/gcn/simd-math-5-short-run-16.c
! ce760812e4b170974727020f0343cd99  gcc/testsuite/gcc.target/gcn/simd-math-5-short-run-32.c
! 89fcbab58b32e247f2a922aa757a2371  gcc/testsuite/gcc.target/gcn/simd-math-5-short-run-4.c
! 3a08504b6a40d35f7bd927eaea0a655b  gcc/testsuite/gcc.target/gcn/simd-math-5-short-run-8.c
! 2bb715a1712dc578dd08a452e8f80b5f  gcc/testsuite/gcc.target/gcn/simd-math-5-short-run.c
! 1e92a961b8be80eff95e0d94ee494725  gcc/testsuite/gcc.target/gcn/simd-math-5-short.c
! 5b91a51bf3c209f29ece25c29f8a556b  gcc/testsuite/gcc.target/gcn/simd-math-5.c
! c725bb6cd1ad5f29265111af6e3d86e5  gcc/testsuite/gcc.target/gcn/smax_1.c
  6e933396760a7a72a37422dcce7d607d  gcc/testsuite/gcc.target/gcn/smax_1_run.c
! 02843a6f601ee9bd8b48f6beb255868a  gcc/testsuite/gcc.target/gcn/smin_1.c
  1e8da5af3a5f8caa3571350d21540384  gcc/testsuite/gcc.target/gcn/smin_1_run.c
  0ea62a0ac401e376be4dd2643553b422  gcc/testsuite/gcc.target/gcn/sram-ecc-1.c
  294892f7304e51ed7447fc2643e45348  gcc/testsuite/gcc.target/gcn/sram-ecc-2.c
! c72f4feb0b6f9a7a1f692c3567e6b19e  gcc/testsuite/gcc.target/gcn/sram-ecc-3.c
! ee33ab773eaf685c8628d86e5d0e3092  gcc/testsuite/gcc.target/gcn/sram-ecc-4.c
  7dfdb0fb2674bd25f2ae262e01097a60  gcc/testsuite/gcc.target/gcn/sram-ecc-5.c
  b39be000dd7931ea7f636d96b9345501  gcc/testsuite/gcc.target/gcn/sram-ecc-6.c
! f2987270243a658a9284b3ffcd65f5be  gcc/testsuite/gcc.target/gcn/sram-ecc-7.c
! c6f8f22274a235371177c6296115132d  gcc/testsuite/gcc.target/gcn/sram-ecc-8.c
! fe2e6028fc0dcba8cc768056da3acf04  gcc/testsuite/gcc.target/gcn/umax_1.c
  2719dad67ae134a3041196bde8b23bec  gcc/testsuite/gcc.target/gcn/umax_1_run.c
! 359dc414e4dfd0ba906adcd36b314139  gcc/testsuite/gcc.target/gcn/umin_1.c
  c1f2f58ff01ac0af9bac1540222140eb  gcc/testsuite/gcc.target/gcn/umin_1_run.c
  789a4df2f8cafe6ecb94a95067888657  gcc/testsuite/gcc.target/gcn/unsafe-math-1.c
  1e706003dee9df5d57006e904e26af25  gcc/testsuite/gcc.target/gcn/vcc-clobber.c
*************** c1f2f58ff01ac0af9bac1540222140eb  gcc/te
*** 64226,64245 ****
  216037d0da5ff83a3c5aee08d451cc6a  gcc/testsuite/gcc.target/h8300/add-3.c
  60aaa20daa95a2c6a46f951ed2210274  gcc/testsuite/gcc.target/h8300/add.c
  6618feb3136b4db14cb25d0ac22056c4  gcc/testsuite/gcc.target/h8300/andsi3_ashift_n_lower.c
! 16c99693f801ce9594ae9490f115afe5  gcc/testsuite/gcc.target/h8300/h8300.exp
  945675e6af6576f674dcc30697a6f78b  gcc/testsuite/gcc.target/h8300/pr13721.c
  5788c901799e460b8e5c429a23b94ebe  gcc/testsuite/gcc.target/h8300/pr17306-1.c
! 4a76a6a9bd3c90b87865db2ad9c10434  gcc/testsuite/gcc.target/h8300/pr17306-2.c
! c91efeb870ae7690b89a4b3ebff5d024  gcc/testsuite/gcc.target/h8300/pr58400.c
  344a21000f3cf05f2baaf02b2c346cd5  gcc/testsuite/gcc.target/h8300/pragma-isr.c
  aaaadf978237931983f712ab447eeff0  gcc/testsuite/gcc.target/h8300/pragma-isr2.c
  520d992d481a80dfc60ea32b9335b583  gcc/testsuite/gcc.target/h8300/sub-2.c
  04357d0cac796ebc8355f137f2041585  gcc/testsuite/gcc.target/h8300/sub-3.c
  4e0e54c95521e668ac88da0666ea4642  gcc/testsuite/gcc.target/h8300/sub.c
! 30fc046c532e536172a25c2fa595e8e8  gcc/testsuite/gcc.target/hppa/hppa.exp
  b3208ea4097d665215fd20e76146b954  gcc/testsuite/gcc.target/hppa/shadd-1.c
  793a9a24f14f046eed5297e9926e198f  gcc/testsuite/gcc.target/hppa/shadd-2.c
! 062013a0e3e7eddd556932d95da5027e  gcc/testsuite/gcc.target/hppa/shadd-3.c
  3d70153939fed76a4a6d9ce8e10a5bd1  gcc/testsuite/gcc.target/hppa/shadd-4.c
  48202f0a384db36b0b22c39d56b89641  gcc/testsuite/gcc.target/i386/20000609-1.c
  1eb3eb3df6c7fab586557cb5fafe4764  gcc/testsuite/gcc.target/i386/20000614-1.c
--- 68746,68765 ----
  216037d0da5ff83a3c5aee08d451cc6a  gcc/testsuite/gcc.target/h8300/add-3.c
  60aaa20daa95a2c6a46f951ed2210274  gcc/testsuite/gcc.target/h8300/add.c
  6618feb3136b4db14cb25d0ac22056c4  gcc/testsuite/gcc.target/h8300/andsi3_ashift_n_lower.c
! dd29b369f415932cba4308e8669ada0b  gcc/testsuite/gcc.target/h8300/h8300.exp
  945675e6af6576f674dcc30697a6f78b  gcc/testsuite/gcc.target/h8300/pr13721.c
  5788c901799e460b8e5c429a23b94ebe  gcc/testsuite/gcc.target/h8300/pr17306-1.c
! 5b147cea3517b62e755b86aafee99229  gcc/testsuite/gcc.target/h8300/pr17306-2.c
! 53258035613911ab480f77cbaf0dc10c  gcc/testsuite/gcc.target/h8300/pr58400.c
  344a21000f3cf05f2baaf02b2c346cd5  gcc/testsuite/gcc.target/h8300/pragma-isr.c
  aaaadf978237931983f712ab447eeff0  gcc/testsuite/gcc.target/h8300/pragma-isr2.c
  520d992d481a80dfc60ea32b9335b583  gcc/testsuite/gcc.target/h8300/sub-2.c
  04357d0cac796ebc8355f137f2041585  gcc/testsuite/gcc.target/h8300/sub-3.c
  4e0e54c95521e668ac88da0666ea4642  gcc/testsuite/gcc.target/h8300/sub.c
! 3febf98f281a81083ff5b1ce09e7daec  gcc/testsuite/gcc.target/hppa/hppa.exp
  b3208ea4097d665215fd20e76146b954  gcc/testsuite/gcc.target/hppa/shadd-1.c
  793a9a24f14f046eed5297e9926e198f  gcc/testsuite/gcc.target/hppa/shadd-2.c
! bec45e424269c61868beb11e175edb5f  gcc/testsuite/gcc.target/hppa/shadd-3.c
  3d70153939fed76a4a6d9ce8e10a5bd1  gcc/testsuite/gcc.target/hppa/shadd-4.c
  48202f0a384db36b0b22c39d56b89641  gcc/testsuite/gcc.target/i386/20000609-1.c
  1eb3eb3df6c7fab586557cb5fafe4764  gcc/testsuite/gcc.target/i386/20000614-1.c
*************** f3b1566c7c98d2f59922637c82963457  gcc/te
*** 64325,64330 ****
--- 68845,68851 ----
  3db02232be23b8323e256e34853b5a45  gcc/testsuite/gcc.target/i386/addr-space-3.c
  8271f07e21d6eeebacf960a2de716a17  gcc/testsuite/gcc.target/i386/addr-space-4.c
  152e32331ada53cf77054183ff2428ef  gcc/testsuite/gcc.target/i386/addr-space-5.c
+ 0990052b88f60b927ce977c3fab221cc  gcc/testsuite/gcc.target/i386/addr-space-6.c
  44bbc82940c02caf24e3da98b3d7f366  gcc/testsuite/gcc.target/i386/addr-space-typeck-1.c
  8c140e83decbbd083657a128e5f45ec1  gcc/testsuite/gcc.target/i386/addr-space-typeck-2.c
  dd05e8a4c4da9897a764303a258ce47e  gcc/testsuite/gcc.target/i386/adx-addcarryx32-1.c
*************** dd05e8a4c4da9897a764303a258ce47e  gcc/te
*** 64333,64341 ****
  3e27c30f777edd54bc9a1e93b7412901  gcc/testsuite/gcc.target/i386/adx-addcarryx64-1.c
  16b588d5456763b6d7e055289e1bf69c  gcc/testsuite/gcc.target/i386/adx-addcarryx64-2.c
  76b34ef617a605f6c05cda6752ae4bd7  gcc/testsuite/gcc.target/i386/adx-addcarryx64-3.c
! 51d41f8cac24ffc284286ac53adc9a7c  gcc/testsuite/gcc.target/i386/adx-check.h
  f2d78603e52e7e053a779e149383c1de  gcc/testsuite/gcc.target/i386/aes-avx-check.h
  a7b2ba93a40acf61b74c80dd6835eb3d  gcc/testsuite/gcc.target/i386/aes-check.h
  002af625049a48934e8f3e1ee9e9d4c6  gcc/testsuite/gcc.target/i386/aesdec.c
  54d024c3feafb0e0b97e8329572c38ba  gcc/testsuite/gcc.target/i386/aesdeclast.c
  881e8675e972a235deb1cb02da6974b3  gcc/testsuite/gcc.target/i386/aesenc.c
--- 68854,68863 ----
  3e27c30f777edd54bc9a1e93b7412901  gcc/testsuite/gcc.target/i386/adx-addcarryx64-1.c
  16b588d5456763b6d7e055289e1bf69c  gcc/testsuite/gcc.target/i386/adx-addcarryx64-2.c
  76b34ef617a605f6c05cda6752ae4bd7  gcc/testsuite/gcc.target/i386/adx-addcarryx64-3.c
! 82748a4aa347209e274e50b3ed012ff5  gcc/testsuite/gcc.target/i386/adx-check.h
  f2d78603e52e7e053a779e149383c1de  gcc/testsuite/gcc.target/i386/aes-avx-check.h
  a7b2ba93a40acf61b74c80dd6835eb3d  gcc/testsuite/gcc.target/i386/aes-check.h
+ 9e115b87570ceb5dd349c826993811fc  gcc/testsuite/gcc.target/i386/aes-pr114576.c
  002af625049a48934e8f3e1ee9e9d4c6  gcc/testsuite/gcc.target/i386/aesdec.c
  54d024c3feafb0e0b97e8329572c38ba  gcc/testsuite/gcc.target/i386/aesdeclast.c
  881e8675e972a235deb1cb02da6974b3  gcc/testsuite/gcc.target/i386/aesenc.c
*************** a8ab966558faa138830cc3e75dbe4464  gcc/te
*** 64382,64393 ****
--- 68904,68958 ----
  fc50af06e61cf9d13887f2fe515b0e27  gcc/testsuite/gcc.target/i386/amxint8-dpbuud-2.c
  4e7e8638f4652613beb251daa4730463  gcc/testsuite/gcc.target/i386/amxtile-2.c
  a455baf8f9990eb7494164842dce7c91  gcc/testsuite/gcc.target/i386/amxtile-3.c
+ 84fc02cc52ddc8bdd53d77902c0176fb  gcc/testsuite/gcc.target/i386/amxtile-4.c
  8e7fab1b3f5c89155f09aabb59da8382  gcc/testsuite/gcc.target/i386/amxtile-asmatt-1.c
  2629a435840ab211444b4a2af4563d8d  gcc/testsuite/gcc.target/i386/amxtile-asmintel-1.c
  000edc038d71c16eb844c26f6d7f2f53  gcc/testsuite/gcc.target/i386/and-1.c
  c5cfc6b01e748536e4ac5d65b3528952  gcc/testsuite/gcc.target/i386/andor-1.c
  c052d916aa90fa5343dac48ba370180f  gcc/testsuite/gcc.target/i386/andor-2.c
+ 745e29c9e0b19c2b93d7ae9d0de30df9  gcc/testsuite/gcc.target/i386/apx-1.c
+ 64d9611d397e2c1046819d723f4b3641  gcc/testsuite/gcc.target/i386/apx-2.c
+ c608f84b293f51940f3c9578d19c6aa6  gcc/testsuite/gcc.target/i386/apx-3.c
+ 564fa992780ab2d8d650d966ad8dc7b2  gcc/testsuite/gcc.target/i386/apx-egprs-names.c
+ df2002d51980a8fe3227dd410dccc984  gcc/testsuite/gcc.target/i386/apx-inline-gpr-norex2.c
+ ac5041015e095ce8abfe9b54a21ebf53  gcc/testsuite/gcc.target/i386/apx-interrupt-1.c
+ 9e8b8925bafe362fcf8ebd984ba486a3  gcc/testsuite/gcc.target/i386/apx-legacy-insn-check-norex2-asm.c
+ 0048c251e7a719f7b18c2f8a3c7defaf  gcc/testsuite/gcc.target/i386/apx-legacy-insn-check-norex2.c
+ 5445ad3695d579a1afc41a7bea257e5b  gcc/testsuite/gcc.target/i386/apx-ndd-2.c
+ ea9e689c411902c90ae3a04f5f77a1bb  gcc/testsuite/gcc.target/i386/apx-ndd-adc.c
+ 6b34f73f3bb8ff9896b82fef8ede6bdf  gcc/testsuite/gcc.target/i386/apx-ndd-base-index-1.c
+ 2ddfa53e08aded4b29c13276c4069bf4  gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c
+ 8b086a995b0b4f32f6c1b9eb29490982  gcc/testsuite/gcc.target/i386/apx-ndd-no-seg-global-1.c
+ 32e19088e7101b07b75e900e5bd470ed  gcc/testsuite/gcc.target/i386/apx-ndd-sbb.c
+ 6dcc39fd3eb46590cc2797d40ac4e0b3  gcc/testsuite/gcc.target/i386/apx-ndd-seg-1.c
+ 17e1a9ed8337f680367147bb1344e4e9  gcc/testsuite/gcc.target/i386/apx-ndd-seg-2.c
+ b6e599b4cc96f57de7a64c27e3c92aa3  gcc/testsuite/gcc.target/i386/apx-ndd-seg-3.c
+ 16ed52e3d71e0e6c3593b9de3004335e  gcc/testsuite/gcc.target/i386/apx-ndd-seg-4.c
+ 72c881b384869173b01c4e092e547b4c  gcc/testsuite/gcc.target/i386/apx-ndd-seg-5.c
+ 54e6959ccdc4af3a418d51fd8d3225e5  gcc/testsuite/gcc.target/i386/apx-ndd-shld-shrd.c
+ 72665232e4e20114192126c16383477e  gcc/testsuite/gcc.target/i386/apx-ndd-ti-shift.c
+ 42edfb574803d4599f5677599613331b  gcc/testsuite/gcc.target/i386/apx-ndd-tls-1a.c
+ 949eaf9973197204f0c57c107257e848  gcc/testsuite/gcc.target/i386/apx-ndd-tls-1b.c
+ 26b973e578d113bfe19274f6b260423b  gcc/testsuite/gcc.target/i386/apx-ndd-tls-2.c
+ f79d898ef40db39bcbc383d512549f5a  gcc/testsuite/gcc.target/i386/apx-ndd-tls-3.c
+ f331bf34bdd0201dd7790981418cd8c8  gcc/testsuite/gcc.target/i386/apx-ndd-tls-4.c
+ 8f85b1ea5d63bc623f9d08d772d0c819  gcc/testsuite/gcc.target/i386/apx-ndd-x32-1.c
+ 0ee7ea4f3c832d8e63a29b0235446dc2  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2a.c
+ 586d3aad0d165c0981eb80ec0e7fb62e  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2b.c
+ b3c414f1b3d6c48c7e20a5673443690c  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2c.c
+ 3e95982a863780ff44ad8aaffdb6def8  gcc/testsuite/gcc.target/i386/apx-ndd-x32-2d.c
+ 4865ff107ce18e1484efa5d5f5fec4df  gcc/testsuite/gcc.target/i386/apx-ndd.c
+ fcf6ebcd2d266f7ad2c63665e05f9315  gcc/testsuite/gcc.target/i386/apx-ppx-1.c
+ b76efc502226ffd2eed7d56bb5ac974a  gcc/testsuite/gcc.target/i386/apx-push2pop2-1.c
+ ba815e440bcd2af0a357a066d6a64dbf  gcc/testsuite/gcc.target/i386/apx-push2pop2-2.c
+ 09b6d63033c67dd3b806c7c28d691ec9  gcc/testsuite/gcc.target/i386/apx-push2pop2_force_drap-1.c
+ 2ab42e94b1a6fae8bd3d0db869ee84f5  gcc/testsuite/gcc.target/i386/apx-push2pop2_interrupt-1.c
+ a0087c60ab6914bc07a95e55747be0f6  gcc/testsuite/gcc.target/i386/apx-spill_to_egprs-1.c
+ 1d9d11dcd88432f117e44c643ec90ad2  gcc/testsuite/gcc.target/i386/ashldi3-1.c
+ 0fe4c919ffa886428aea4dfbafae6152  gcc/testsuite/gcc.target/i386/ashldi3-2.c
  6b37f3af0f281a50739a4dabbfa5799a  gcc/testsuite/gcc.target/i386/ashlti3-1.c
+ 20b39ed586d93cd21e867cc89398e8ea  gcc/testsuite/gcc.target/i386/ashlti3-2.c
+ 5997744de9263c7a776a02434c057727  gcc/testsuite/gcc.target/i386/ashlti3-3.c
  2a0e75dae748effbe9abaa9db2d01436  gcc/testsuite/gcc.target/i386/asm-1.c
  71b9972c5849678e344f7330b6b395bd  gcc/testsuite/gcc.target/i386/asm-2.c
  85f31e7bd33534098fea5ad7147be119  gcc/testsuite/gcc.target/i386/asm-3.c
*************** cca7e10ee55fb1f96e6f6f5962a52b47  gcc/te
*** 64406,64415 ****
  12e90c2a4e4c615ce5067b4215a5d18b  gcc/testsuite/gcc.target/i386/asm-flag-6.c
  c9e95a50e4c08ce058a523de15b6c8fd  gcc/testsuite/gcc.target/i386/asm-flag-7.c
  837d6eb699db50d462ddc69fd4d051c2  gcc/testsuite/gcc.target/i386/asm-mem.c
  ddb64605d0e2af6e58489acd2ebba490  gcc/testsuite/gcc.target/i386/attr-aligned-2.c
  c34fe5a5178e9716c0f68ffb47564686  gcc/testsuite/gcc.target/i386/attr-aligned.c
! 9d11ea77a94e6833f3991c7909c56335  gcc/testsuite/gcc.target/i386/attr-nocf-check-1a.c
! 2632af969dd8680f097556a40ba2c147  gcc/testsuite/gcc.target/i386/attr-nocf-check-3a.c
  29ff688e49690bf34e23911fb0d6a871  gcc/testsuite/gcc.target/i386/attr-optimize.c
  9702921db90d8706268aafc9574e606d  gcc/testsuite/gcc.target/i386/attr-returns_twice-1.c
  b417781449436dad69aae8b9300baa1a  gcc/testsuite/gcc.target/i386/attributes-error.c
--- 68971,68981 ----
  12e90c2a4e4c615ce5067b4215a5d18b  gcc/testsuite/gcc.target/i386/asm-flag-6.c
  c9e95a50e4c08ce058a523de15b6c8fd  gcc/testsuite/gcc.target/i386/asm-flag-7.c
  837d6eb699db50d462ddc69fd4d051c2  gcc/testsuite/gcc.target/i386/asm-mem.c
+ 4ae3c20d33728cb22ef071075de01013  gcc/testsuite/gcc.target/i386/asm-raw-symbol.c
  ddb64605d0e2af6e58489acd2ebba490  gcc/testsuite/gcc.target/i386/attr-aligned-2.c
  c34fe5a5178e9716c0f68ffb47564686  gcc/testsuite/gcc.target/i386/attr-aligned.c
! 61c3608aa8e457337e1e932bb8cfdd80  gcc/testsuite/gcc.target/i386/attr-nocf-check-1a.c
! e212830c10c9237069ec30aa0332cf29  gcc/testsuite/gcc.target/i386/attr-nocf-check-3a.c
  29ff688e49690bf34e23911fb0d6a871  gcc/testsuite/gcc.target/i386/attr-optimize.c
  9702921db90d8706268aafc9574e606d  gcc/testsuite/gcc.target/i386/attr-returns_twice-1.c
  b417781449436dad69aae8b9300baa1a  gcc/testsuite/gcc.target/i386/attributes-error.c
*************** f65b08f90b0d063dfe0900c48ae44e31  gcc/te
*** 64421,64430 ****
  bcf4bec8ae3fb406f477539e4ce5e3ae  gcc/testsuite/gcc.target/i386/auto-init-24.c
  71a4675584bf20a65fc303e77c312593  gcc/testsuite/gcc.target/i386/auto-init-3.c
  2215064118772f25fb8ca3b2b1b122a4  gcc/testsuite/gcc.target/i386/auto-init-4.c
! 1c3aad106f065f8f59eefa5ef2e696f7  gcc/testsuite/gcc.target/i386/auto-init-5.c
! b75e9b4b68c37a6bbe89fb4653e9c56f  gcc/testsuite/gcc.target/i386/auto-init-6.c
  839577d5139fbc687a0280c2c0655a0d  gcc/testsuite/gcc.target/i386/auto-init-7.c
! ebe893055f7ccbf4240d02e9cba39f2d  gcc/testsuite/gcc.target/i386/auto-init-8.c
  c3a3f56e12ef5746581ec762d6d67d1d  gcc/testsuite/gcc.target/i386/auto-init-padding-1.c
  a34b4fb61dcd1e5a3c0daf5d7d6fae65  gcc/testsuite/gcc.target/i386/auto-init-padding-10.c
  da9a874cc43d515ca40fe91f469c7339  gcc/testsuite/gcc.target/i386/auto-init-padding-11.c
--- 68987,68996 ----
  bcf4bec8ae3fb406f477539e4ce5e3ae  gcc/testsuite/gcc.target/i386/auto-init-24.c
  71a4675584bf20a65fc303e77c312593  gcc/testsuite/gcc.target/i386/auto-init-3.c
  2215064118772f25fb8ca3b2b1b122a4  gcc/testsuite/gcc.target/i386/auto-init-4.c
! c21b3698d1ed03df65eaa7dfc51af82b  gcc/testsuite/gcc.target/i386/auto-init-5.c
! 240cb8056d819d4820d9f5d00149b619  gcc/testsuite/gcc.target/i386/auto-init-6.c
  839577d5139fbc687a0280c2c0655a0d  gcc/testsuite/gcc.target/i386/auto-init-7.c
! e8d5717b225e498c46c8a81361f9e0ab  gcc/testsuite/gcc.target/i386/auto-init-8.c
  c3a3f56e12ef5746581ec762d6d67d1d  gcc/testsuite/gcc.target/i386/auto-init-padding-1.c
  a34b4fb61dcd1e5a3c0daf5d7d6fae65  gcc/testsuite/gcc.target/i386/auto-init-padding-10.c
  da9a874cc43d515ca40fe91f469c7339  gcc/testsuite/gcc.target/i386/auto-init-padding-11.c
*************** da9a874cc43d515ca40fe91f469c7339  gcc/te
*** 64437,64443 ****
  64889694d1cb3280b3aa71fa1424dec5  gcc/testsuite/gcc.target/i386/auto-init-padding-7.c
  6833c0fc00c0e05839ef7fc0ebe6662f  gcc/testsuite/gcc.target/i386/auto-init-padding-8.c
  549987a73da82c221222811981e79dc3  gcc/testsuite/gcc.target/i386/auto-init-padding-9.c
! ec16ac6fa2b59bd228d2fafe922958a6  gcc/testsuite/gcc.target/i386/avx-1.c
  5d79949d0342d2be91b231a563b48794  gcc/testsuite/gcc.target/i386/avx-2.c
  b8752c209e6f3770321077d53e28d157  gcc/testsuite/gcc.target/i386/avx-3.c
  604a63c576a08022e714a4940dc0e904  gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c
--- 69003,69009 ----
  64889694d1cb3280b3aa71fa1424dec5  gcc/testsuite/gcc.target/i386/auto-init-padding-7.c
  6833c0fc00c0e05839ef7fc0ebe6662f  gcc/testsuite/gcc.target/i386/auto-init-padding-8.c
  549987a73da82c221222811981e79dc3  gcc/testsuite/gcc.target/i386/auto-init-padding-9.c
! 08d2dfaf226576f475c3f9db045b477d  gcc/testsuite/gcc.target/i386/avx-1.c
  5d79949d0342d2be91b231a563b48794  gcc/testsuite/gcc.target/i386/avx-2.c
  b8752c209e6f3770321077d53e28d157  gcc/testsuite/gcc.target/i386/avx-3.c
  604a63c576a08022e714a4940dc0e904  gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c
*************** b8752c209e6f3770321077d53e28d157  gcc/te
*** 64446,64452 ****
  6121fa35c29e810adc69d901b6a65662  gcc/testsuite/gcc.target/i386/avx-ceil-vec.c
  dc7b0b61713dbdc64942fcafa8aa3bbf  gcc/testsuite/gcc.target/i386/avx-ceilf-sfix-vec.c
  85748cbad44c56d9ae5a472ce45f79ce  gcc/testsuite/gcc.target/i386/avx-ceilf-vec.c
! 280f8ccacb138dc4e0c315c8cdd230c5  gcc/testsuite/gcc.target/i386/avx-check.h
  2a65fd05c0003aea46c7faaefb3a9ad1  gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c
  ae728a63491324c9279e2facbffccbb7  gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c
  584d5233a25d47a9749449fea9de2276  gcc/testsuite/gcc.target/i386/avx-cmpss-1.c
--- 69012,69018 ----
  6121fa35c29e810adc69d901b6a65662  gcc/testsuite/gcc.target/i386/avx-ceil-vec.c
  dc7b0b61713dbdc64942fcafa8aa3bbf  gcc/testsuite/gcc.target/i386/avx-ceilf-sfix-vec.c
  85748cbad44c56d9ae5a472ce45f79ce  gcc/testsuite/gcc.target/i386/avx-ceilf-vec.c
! f44ed46b58016d4afb9e8a06bae1e59f  gcc/testsuite/gcc.target/i386/avx-check.h
  2a65fd05c0003aea46c7faaefb3a9ad1  gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c
  ae728a63491324c9279e2facbffccbb7  gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c
  584d5233a25d47a9749449fea9de2276  gcc/testsuite/gcc.target/i386/avx-cmpss-1.c
*************** d62f4eaf47b23414362fe83ba0b4dd8f  gcc/te
*** 64498,64503 ****
--- 69064,69070 ----
  646358e4ca06412b35d34d9562ea8118  gcc/testsuite/gcc.target/i386/avx-ne-convert-vcvtneps2bf16-2.c
  46322bf9b32fe645dd973a6bc8e8b128  gcc/testsuite/gcc.target/i386/avx-os-support.h
  4282e5e62a637968b77c731037a2875b  gcc/testsuite/gcc.target/i386/avx-pr102224.c
+ d7381eba5a3462b2fdda088ce0332455  gcc/testsuite/gcc.target/i386/avx-pr114190.c
  62aa13560c827f799be1941a2e6da500  gcc/testsuite/gcc.target/i386/avx-pr51581-1.c
  c437ae63e2540199d8c765547fc407d6  gcc/testsuite/gcc.target/i386/avx-pr51581-2.c
  b6e744a5c521873cc8be2dbb5f25790d  gcc/testsuite/gcc.target/i386/avx-pr57233.c
*************** cedf1e692d2b7821bd63039bce8cd7e8  gcc/te
*** 64930,64935 ****
--- 69497,69505 ----
  004fc67200431e36119328fa5b3cd69b  gcc/testsuite/gcc.target/i386/avx-vptest-256-2.c
  63493921ce7eb9ce52a110efc299d4f7  gcc/testsuite/gcc.target/i386/avx-vptest-256-3.c
  9336efcf38a30e5f0897f2f748c70fbe  gcc/testsuite/gcc.target/i386/avx-vptest-3.c
+ 6e7611dc5c621bd9ff001531ebd2b208  gcc/testsuite/gcc.target/i386/avx-vptest-4.c
+ 314eaa79c39a2652e159ddbfc0ac00d0  gcc/testsuite/gcc.target/i386/avx-vptest-5.c
+ f42cd987a4589adbf6a45f8793970b96  gcc/testsuite/gcc.target/i386/avx-vptest-6.c
  fcc77c585dc8add3fdda5ff6e368d76c  gcc/testsuite/gcc.target/i386/avx-vpunpckhbw-1.c
  e202fb6ba66899a7f8e55fa6cc1b0a24  gcc/testsuite/gcc.target/i386/avx-vpunpckhdq-1.c
  052a1ee0d7e09b842114ff3cafca82a4  gcc/testsuite/gcc.target/i386/avx-vpunpckhqdq-1.c
*************** cbb0208f2a1bdf8ac8ed52da238b76d2  gcc/te
*** 65009,65015 ****
  c7eb87b3adb4d1f009938acb24e45805  gcc/testsuite/gcc.target/i386/avx-vzeroupper-1.c
  56576f5aeaa789fe5e147bc0a24947ed  gcc/testsuite/gcc.target/i386/avx-vzeroupper-10.c
  4d1ac7f558077b3999165f5dc25784c6  gcc/testsuite/gcc.target/i386/avx-vzeroupper-11.c
! 110ab12ca780d22a3ae82cbf936d4591  gcc/testsuite/gcc.target/i386/avx-vzeroupper-12.c
  8f4945cde0bafb95376035acb8001955  gcc/testsuite/gcc.target/i386/avx-vzeroupper-13.c
  b842dd5b565fe11176de207b00b4109f  gcc/testsuite/gcc.target/i386/avx-vzeroupper-14.c
  135eb49b0c89f064146bbbaa422289af  gcc/testsuite/gcc.target/i386/avx-vzeroupper-15.c
--- 69579,69585 ----
  c7eb87b3adb4d1f009938acb24e45805  gcc/testsuite/gcc.target/i386/avx-vzeroupper-1.c
  56576f5aeaa789fe5e147bc0a24947ed  gcc/testsuite/gcc.target/i386/avx-vzeroupper-10.c
  4d1ac7f558077b3999165f5dc25784c6  gcc/testsuite/gcc.target/i386/avx-vzeroupper-11.c
! e574c1cd5d253ccd4178534da6c08128  gcc/testsuite/gcc.target/i386/avx-vzeroupper-12.c
  8f4945cde0bafb95376035acb8001955  gcc/testsuite/gcc.target/i386/avx-vzeroupper-13.c
  b842dd5b565fe11176de207b00b4109f  gcc/testsuite/gcc.target/i386/avx-vzeroupper-14.c
  135eb49b0c89f064146bbbaa422289af  gcc/testsuite/gcc.target/i386/avx-vzeroupper-15.c
*************** c9c1cc09c516bf54bf50fb514a8f862c  gcc/te
*** 65029,65051 ****
  c196063785925f2f19d102abe1488774  gcc/testsuite/gcc.target/i386/avx-vzeroupper-28.c
  c0bed0be10ece6c15e9aa800b77e5436  gcc/testsuite/gcc.target/i386/avx-vzeroupper-29.c
  2676f686c636ba65ddf77da8485ee324  gcc/testsuite/gcc.target/i386/avx-vzeroupper-3.c
  762b6911a6dc394fae9ee24213fb6114  gcc/testsuite/gcc.target/i386/avx-vzeroupper-4.c
  27e3a091b9bfccddb7c44014ae46ed71  gcc/testsuite/gcc.target/i386/avx-vzeroupper-5.c
  e496930891266115a9ceee7c7de0cac4  gcc/testsuite/gcc.target/i386/avx-vzeroupper-6.c
! c4227998307c3408290373f455089594  gcc/testsuite/gcc.target/i386/avx-vzeroupper-7.c
  2dd3d3b02f96ec89ffed6f185b8e940f  gcc/testsuite/gcc.target/i386/avx-vzeroupper-8.c
! 5933a51943f93cc857080a185b5c5e51  gcc/testsuite/gcc.target/i386/avx-vzeroupper-9.c
  a5901d33285892facee8dbfe287ce0d1  gcc/testsuite/gcc.target/i386/avx2-broadcast-pr87767-1.c
  958690bb20e5ef6d9a38def7eb976f13  gcc/testsuite/gcc.target/i386/avx2-check.h
  7dc98d98981fa7b82c0ae95d09c8128c  gcc/testsuite/gcc.target/i386/avx2-cvt-1.c
  ea08c4d81609e53332974756983fe0c2  gcc/testsuite/gcc.target/i386/avx2-cvt-2.c
! 396a1c94edbd7736dc717b5af4f86d14  gcc/testsuite/gcc.target/i386/avx2-dest-false-dep-for-glc.c
  aaabb27f441033ad22d615277a666b93  gcc/testsuite/gcc.target/i386/avx2-gather-1.c
! 193500dbe679e3b0106077cb94dcd659  gcc/testsuite/gcc.target/i386/avx2-gather-2.c
  e6fb48367ac48aab006ff09ee7205b7f  gcc/testsuite/gcc.target/i386/avx2-gather-3.c
  74c386970583ffac555d2320df839c1b  gcc/testsuite/gcc.target/i386/avx2-gather-4.c
  b10dfe874c7de4330090cb5b58ccddda  gcc/testsuite/gcc.target/i386/avx2-gather-5.c
! bab8d3346cd39524a79bf0922698f8dc  gcc/testsuite/gcc.target/i386/avx2-gather-6.c
  5bab3385f59413b4ac1d08b312a04c67  gcc/testsuite/gcc.target/i386/avx2-i32gatherd-1.c
  61279c227c143e8c3c052c2ba1d0e226  gcc/testsuite/gcc.target/i386/avx2-i32gatherd-2.c
  025259b149283dd7aa44783815197ac4  gcc/testsuite/gcc.target/i386/avx2-i32gatherd-3.c
--- 69599,69648 ----
  c196063785925f2f19d102abe1488774  gcc/testsuite/gcc.target/i386/avx-vzeroupper-28.c
  c0bed0be10ece6c15e9aa800b77e5436  gcc/testsuite/gcc.target/i386/avx-vzeroupper-29.c
  2676f686c636ba65ddf77da8485ee324  gcc/testsuite/gcc.target/i386/avx-vzeroupper-3.c
+ 0c46cbcc47ae6c75df447a5acbcbb299  gcc/testsuite/gcc.target/i386/avx-vzeroupper-30.c
  762b6911a6dc394fae9ee24213fb6114  gcc/testsuite/gcc.target/i386/avx-vzeroupper-4.c
  27e3a091b9bfccddb7c44014ae46ed71  gcc/testsuite/gcc.target/i386/avx-vzeroupper-5.c
  e496930891266115a9ceee7c7de0cac4  gcc/testsuite/gcc.target/i386/avx-vzeroupper-6.c
! 196aec2399172c70cc1b6322412ec45d  gcc/testsuite/gcc.target/i386/avx-vzeroupper-7.c
  2dd3d3b02f96ec89ffed6f185b8e940f  gcc/testsuite/gcc.target/i386/avx-vzeroupper-8.c
! 280e2807a80caedf3c9b1fd25684032d  gcc/testsuite/gcc.target/i386/avx-vzeroupper-9.c
! 3ca528977553962fce3bc10b01fc3684  gcc/testsuite/gcc.target/i386/avx10_1-1.c
! 0a655b753b539acc1bcd09410a028d06  gcc/testsuite/gcc.target/i386/avx10_1-10.c
! 311b630db1248222bb47cc04eaba92e8  gcc/testsuite/gcc.target/i386/avx10_1-11.c
! 0b480a0caf25eb2711c495f68ec5980f  gcc/testsuite/gcc.target/i386/avx10_1-12.c
! bb915b48e77ad7fd0731fcc6c7b03d33  gcc/testsuite/gcc.target/i386/avx10_1-13.c
! 83d77d348b52adaccf35e8175afb3c58  gcc/testsuite/gcc.target/i386/avx10_1-14.c
! 5fb6b852a619cbf9bbee0ada6fad4cd9  gcc/testsuite/gcc.target/i386/avx10_1-15.c
! 84a9145152b9ebc56374cb5df242bab2  gcc/testsuite/gcc.target/i386/avx10_1-16.c
! aeda7501da026a41c711cb6d0f9c1998  gcc/testsuite/gcc.target/i386/avx10_1-17.c
! be9fe73c143527b6d151dd769ef24a50  gcc/testsuite/gcc.target/i386/avx10_1-18.c
! 1a94a1a1192d3548fef7ec675481e363  gcc/testsuite/gcc.target/i386/avx10_1-19.c
! c60370bc00b6f0ed92d624f8a583ce26  gcc/testsuite/gcc.target/i386/avx10_1-2.c
! 17d9492713ce9172485fbd80ebc4877c  gcc/testsuite/gcc.target/i386/avx10_1-20.c
! 2a7856ec5ef7f2633ac5a1be307f2e8c  gcc/testsuite/gcc.target/i386/avx10_1-21.c
! 8fa657b6c7175810f81fb9448954ee0a  gcc/testsuite/gcc.target/i386/avx10_1-22.c
! 0d2b9652b54c8b0d81f3ce309b9de6d0  gcc/testsuite/gcc.target/i386/avx10_1-23.c
! e905651c365a2662464429415c016a9e  gcc/testsuite/gcc.target/i386/avx10_1-24.c
! 83836eb7c19ebd0a3cb10c1b38859560  gcc/testsuite/gcc.target/i386/avx10_1-3.c
! cc6ebfff46b4601c68183c5748f30189  gcc/testsuite/gcc.target/i386/avx10_1-4.c
! 35084fd0a3d20b2364ee47139e043395  gcc/testsuite/gcc.target/i386/avx10_1-5.c
! ba28fa2f54eaa9223f6892f84f5a47df  gcc/testsuite/gcc.target/i386/avx10_1-6.c
! f4c520e356c7025aa9d88e5b6f03f609  gcc/testsuite/gcc.target/i386/avx10_1-7.c
! d22e7e4eda7fab29c0c8f9bc98db0708  gcc/testsuite/gcc.target/i386/avx10_1-8.c
! 70e6ed4814ed650da167895b30718a2b  gcc/testsuite/gcc.target/i386/avx10_1-9.c
  a5901d33285892facee8dbfe287ce0d1  gcc/testsuite/gcc.target/i386/avx2-broadcast-pr87767-1.c
  958690bb20e5ef6d9a38def7eb976f13  gcc/testsuite/gcc.target/i386/avx2-check.h
  7dc98d98981fa7b82c0ae95d09c8128c  gcc/testsuite/gcc.target/i386/avx2-cvt-1.c
  ea08c4d81609e53332974756983fe0c2  gcc/testsuite/gcc.target/i386/avx2-cvt-2.c
! 97517788e6fe95175156fdde9fbf880e  gcc/testsuite/gcc.target/i386/avx2-dest-false-dep-for-glc.c
! 9a7e11faa47a445a3eb3d04da7a09346  gcc/testsuite/gcc.target/i386/avx2-dupv4sf.c
! fea0a96c9e63276f222dc2cd651c9c6a  gcc/testsuite/gcc.target/i386/avx2-dupv4si.c
  aaabb27f441033ad22d615277a666b93  gcc/testsuite/gcc.target/i386/avx2-gather-1.c
! 9a1f20db8a24cf28261761ea84f4920a  gcc/testsuite/gcc.target/i386/avx2-gather-2.c
  e6fb48367ac48aab006ff09ee7205b7f  gcc/testsuite/gcc.target/i386/avx2-gather-3.c
  74c386970583ffac555d2320df839c1b  gcc/testsuite/gcc.target/i386/avx2-gather-4.c
  b10dfe874c7de4330090cb5b58ccddda  gcc/testsuite/gcc.target/i386/avx2-gather-5.c
! 2408d263d302c706c38e8a8378c6c48c  gcc/testsuite/gcc.target/i386/avx2-gather-6.c
  5bab3385f59413b4ac1d08b312a04c67  gcc/testsuite/gcc.target/i386/avx2-i32gatherd-1.c
  61279c227c143e8c3c052c2ba1d0e226  gcc/testsuite/gcc.target/i386/avx2-i32gatherd-2.c
  025259b149283dd7aa44783815197ac4  gcc/testsuite/gcc.target/i386/avx2-i32gatherd-3.c
*************** fe43a9deff46d9922603adbeeafc1bca  gcc/te
*** 65117,65122 ****
--- 69714,69721 ----
  d88c63775cca32821a256ed084eb0bc4  gcc/testsuite/gcc.target/i386/avx2-pr101611-1.c
  f9c098fee9a454404b6c994c1b481bc0  gcc/testsuite/gcc.target/i386/avx2-pr101611-2.c
  b2a5408a9b77cab42d5d95146250a38f  gcc/testsuite/gcc.target/i386/avx2-pr108599.c
+ f6a4ee4d223cdf4463f296171468844c  gcc/testsuite/gcc.target/i386/avx2-pr114157.c
+ 1e455b321989ce8198e2a5cd0ab772ff  gcc/testsuite/gcc.target/i386/avx2-pr114783.c
  a544282846ec57648b2f38abf14119f0  gcc/testsuite/gcc.target/i386/avx2-pr51581-1.c
  46ffedd4e5e66cd46ad561ee8562eb7b  gcc/testsuite/gcc.target/i386/avx2-pr51581-2.c
  adf63582badc02467af57f768108628f  gcc/testsuite/gcc.target/i386/avx2-pr57233.c
*************** e1d1b9e055d09a1e78f8bfc020b865df  gcc/te
*** 65158,65164 ****
  990742bce89a71ddcd0d9565f96bfe57  gcc/testsuite/gcc.target/i386/avx2-vec-set-1.c
  4e5aa3a19d8c19848e116c07be676e2e  gcc/testsuite/gcc.target/i386/avx2-vec-set-2.c
  f5ff5b2d2c7f5ab0f0ed01ea89033342  gcc/testsuite/gcc.target/i386/avx2-vect-aggressive-1.c
! 72d53023764a6f03c328a10d9759fadd  gcc/testsuite/gcc.target/i386/avx2-vect-aggressive.c
  5e8c9e53598c37c0fbf65642f16af194  gcc/testsuite/gcc.target/i386/avx2-vect-mask-store-move1.c
  63e46dd5c3cd39f62e0c9adfec2118d5  gcc/testsuite/gcc.target/i386/avx2-vect-shift.c
  3ceda49499c5d8d2c2e2c36fad3ce111  gcc/testsuite/gcc.target/i386/avx2-vect-simd-10.c
--- 69757,69763 ----
  990742bce89a71ddcd0d9565f96bfe57  gcc/testsuite/gcc.target/i386/avx2-vec-set-1.c
  4e5aa3a19d8c19848e116c07be676e2e  gcc/testsuite/gcc.target/i386/avx2-vec-set-2.c
  f5ff5b2d2c7f5ab0f0ed01ea89033342  gcc/testsuite/gcc.target/i386/avx2-vect-aggressive-1.c
! 9dbcf96155a3373b6b4dd40e8992e2ef  gcc/testsuite/gcc.target/i386/avx2-vect-aggressive.c
  5e8c9e53598c37c0fbf65642f16af194  gcc/testsuite/gcc.target/i386/avx2-vect-mask-store-move1.c
  63e46dd5c3cd39f62e0c9adfec2118d5  gcc/testsuite/gcc.target/i386/avx2-vect-shift.c
  3ceda49499c5d8d2c2e2c36fad3ce111  gcc/testsuite/gcc.target/i386/avx2-vect-simd-10.c
*************** aaef10fa24c4bc67258e89962335eaed  gcc/te
*** 65503,65508 ****
--- 70102,70109 ----
  94a7348b69336db67bf71197f22793b5  gcc/testsuite/gcc.target/i386/avx512-binop-4.h
  a18d070763a97447058fa5b584a5b9c6  gcc/testsuite/gcc.target/i386/avx512-binop-5.h
  0d28ea104e88f32dc070c3e46e4aa0d6  gcc/testsuite/gcc.target/i386/avx512-binop-6.h
+ 3b257ca31f00e3b54be716783dc0bcd5  gcc/testsuite/gcc.target/i386/avx512-binop-not-1.h
+ 57a0cd54ccab64d53d58695f998ebb3c  gcc/testsuite/gcc.target/i386/avx512-binop-not-2.h
  fbdba68ba420ccce8fa8455faaab1f7e  gcc/testsuite/gcc.target/i386/avx512-check.h
  7cbcb9acf470bd0a7216d3b1ecdc7782  gcc/testsuite/gcc.target/i386/avx512-fma-1.h
  c89b3bb38d9093b77d878d003a4d9b43  gcc/testsuite/gcc.target/i386/avx512-fma-2.h
*************** c89b3bb38d9093b77d878d003a4d9b43  gcc/te
*** 65512,65529 ****
  a86fc7d9e3eb32e85df89db1a80bc4b2  gcc/testsuite/gcc.target/i386/avx512-fma-6.h
  c6dd0e8c40911df14c1fab26ea71eb01  gcc/testsuite/gcc.target/i386/avx512-fma-7.h
  9f5f97d054e0b3fa4dae0cfafc067bd4  gcc/testsuite/gcc.target/i386/avx512-fma-8.h
! 56eacdcaa6f4ba77310471f5bf25bafe  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-1.c
! ccfc5764fc92683192805079030054db  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-2.c
! 3b836c85b185e2067d6af7aafe966920  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddss-1.c
! 43bc9f2d5ca445393cbe4c61a470b6b0  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c
! f55df70acaaa1a05030d45495848eb2b  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c
! 4586ad0b68a40bc7c7c6383bfe03e770  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c
! 3fff72919fb366f3a0ca961a19131e65  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c
! 1db2c2106138cc396b1ae8c512625b33  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c
! 5052cdd63fbafc27cd3d7534458acaec  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c
! 925a068450d57f20740e5ce6e8fe217e  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c
  d29c79e3f90ea13ca131538d02e8cbea  gcc/testsuite/gcc.target/i386/avx512bf16-cvtsbh2ss-1.c
! f1bdc6fefc74a8aef23a109f4b02e663  gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c
  964a5f2a2c89b83533b2be720732ccd6  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtne2ps2bf16-1.c
  80660c3a1129515840c1c9e263211f06  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c
  85f9fe6854d98f374a63df40394fb8cd  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtpbh2ps-1.c
--- 70113,70130 ----
  a86fc7d9e3eb32e85df89db1a80bc4b2  gcc/testsuite/gcc.target/i386/avx512-fma-6.h
  c6dd0e8c40911df14c1fab26ea71eb01  gcc/testsuite/gcc.target/i386/avx512-fma-7.h
  9f5f97d054e0b3fa4dae0cfafc067bd4  gcc/testsuite/gcc.target/i386/avx512-fma-8.h
! f0aa68f330dcefdaa4664e7925bc30ad  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-1.c
! a59a7165a6a7c043d3e82623d5c65cd0  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-2.c
! 13d74bfe6e9246a60f607020c039f9e8  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddss-1.c
! f5550cb7e616f09cc755438f7f1675f7  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c
! 5c3c9c77a4e17cd5656d4b938b74c48e  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c
! 4fa6a0bba42297052bea0768d05d9961  gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c
! 5f8d432627203f72bcd0af344ff351bb  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c
! e563f3cdf5b20ea55710705da0f087eb  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c
! 3d05042c535aeaa621acdae5d9ac1b14  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c
! 16e4839794d0046dadc6ccf418412da3  gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c
  d29c79e3f90ea13ca131538d02e8cbea  gcc/testsuite/gcc.target/i386/avx512bf16-cvtsbh2ss-1.c
! 62b19e80a3afe81ed00caf74d9ff1785  gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c
  964a5f2a2c89b83533b2be720732ccd6  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtne2ps2bf16-1.c
  80660c3a1129515840c1c9e263211f06  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c
  85f9fe6854d98f374a63df40394fb8cd  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtpbh2ps-1.c
*************** f877c7aff68980a873311e9e3029ab4e  gcc/te
*** 65536,65552 ****
  3df523677ab1d5b0815a28ada548ad0f  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtpbh2ps-1.c
  4d0bcbe3e5ed908d180434ef26bd4a3a  gcc/testsuite/gcc.target/i386/avx512bf16vl-vdpbf16ps-1.c
  1c17eded698566bf1d33a8808168935d  gcc/testsuite/gcc.target/i386/avx512bitalg-pr97770-1.c
! 84a11e540e8533df61152a30c873a575  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c
! d728d0693656bb9b505f505356762d3c  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb.c
! 7f84f82c7512e69110cd9ace71cf5f78  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntbvl.c
! 2840f678f86d3934d9e12bd4efe274c8  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c
! 137fee4b6bc1f1276f3a325244117c02  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw.c
! 0ed417774de76c917c5a1a3494fb4bdd  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntwvl.c
! eabafa4926a7abff1e6146a7ef0143e0  gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c
! 0fc77f0fbea2843ee17f4836823ce2f9  gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c
! b2b1fe9e25a1a50c9e88e7a8d168d328  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c
! 1ec84afddb23f029e622de60c2ac094b  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntw-1.c
! 32886feb7eab4824ce529ce5fd625319  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c
  34f70835661397c9f3bdb5572f6d8ce1  gcc/testsuite/gcc.target/i386/avx512bw-check.h
  edb4e52333b73c860f134c92abb703cc  gcc/testsuite/gcc.target/i386/avx512bw-kaddd-1.c
  52f3640ff4e5a494fec30c714fbea8ad  gcc/testsuite/gcc.target/i386/avx512bw-kaddq-1.c
--- 70137,70153 ----
  3df523677ab1d5b0815a28ada548ad0f  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtpbh2ps-1.c
  4d0bcbe3e5ed908d180434ef26bd4a3a  gcc/testsuite/gcc.target/i386/avx512bf16vl-vdpbf16ps-1.c
  1c17eded698566bf1d33a8808168935d  gcc/testsuite/gcc.target/i386/avx512bitalg-pr97770-1.c
! e5a7b594a43b43d7c5fb9a42e551f0f1  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c
! dda9a1d52bfa393e0f6c5c797bbc7a05  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb.c
! 5fcdf160cc475c909532a8dbc434de5e  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntbvl.c
! 5a3d2089f406ef4e7e620e6f6883a771  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c
! 94ca40b49344f49154976728f8e04eba  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw.c
! 498728419393ba311d4b42ef8a6b3c19  gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntwvl.c
! b39fe9dc3f7b0c435de242709abf276a  gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c
! 684647cae9d0555dc0a794c38a7a7cfd  gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c
! ae6b05eb60ec60c92e6f0b3a7d4e3adf  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c
! 1bc03df9d4275e9b41e7f0e356b06088  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntw-1.c
! 687030be4c7de0df65d352c6e5e2741b  gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c
  34f70835661397c9f3bdb5572f6d8ce1  gcc/testsuite/gcc.target/i386/avx512bw-check.h
  edb4e52333b73c860f134c92abb703cc  gcc/testsuite/gcc.target/i386/avx512bw-kaddd-1.c
  52f3640ff4e5a494fec30c714fbea8ad  gcc/testsuite/gcc.target/i386/avx512bw-kaddq-1.c
*************** c72add6d291b707951ee1d66088d7cc2  gcc/te
*** 65593,65603 ****
  de9ce5efe88acd77018d22a7dcdb9493  gcc/testsuite/gcc.target/i386/avx512bw-kxord-1.c
  6c302267f8ed92e29f0d59629f0eec4f  gcc/testsuite/gcc.target/i386/avx512bw-kxorq-1.c
  bce67b236520c561f93006d5bd66eea1  gcc/testsuite/gcc.target/i386/avx512bw-pack-2.c
! 3f89e05f12e6b21ca97cf02184351639  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-1.c
! 0bc7bf24e360d39661eccfc27dd3bdf8  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-b-2.c
! f647d36b7701e4997d1256eb0c4cb741  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-d-2.c
! 6fdcf602650b181e914aaa03a2e18c3a  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-q-2.c
! 7f067774026be7c71e746d719f34e7be  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-w-2.c
  71ac6a04534042bfa057ebce7bc266b4  gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c
  2589b43ccc82e972823c4c4f159c2244  gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c
  2d319ef27177a5dd5161f6c501d73c11  gcc/testsuite/gcc.target/i386/avx512bw-pr70329-1.c
--- 70194,70204 ----
  de9ce5efe88acd77018d22a7dcdb9493  gcc/testsuite/gcc.target/i386/avx512bw-kxord-1.c
  6c302267f8ed92e29f0d59629f0eec4f  gcc/testsuite/gcc.target/i386/avx512bw-kxorq-1.c
  bce67b236520c561f93006d5bd66eea1  gcc/testsuite/gcc.target/i386/avx512bw-pack-2.c
! 1c2a2b5aa23a2f51d4369defa09e11f4  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-1.c
! 9ba0129c845ea79457de6bc81940fc1e  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-b-2.c
! 3f44c2ea2e8fdb3406905bdcbe71c00a  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-d-2.c
! 5a54db93d0716b5d30e9561d76fde43a  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-q-2.c
! 38b828abde48acfe108bf890bddbcd2e  gcc/testsuite/gcc.target/i386/avx512bw-pr100267-w-2.c
  71ac6a04534042bfa057ebce7bc266b4  gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c
  2589b43ccc82e972823c4c4f159c2244  gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c
  2d319ef27177a5dd5161f6c501d73c11  gcc/testsuite/gcc.target/i386/avx512bw-pr70329-1.c
*************** b3fc0e2ed6ad4663554cfe6beb7c728c  gcc/te
*** 65650,65657 ****
--- 70251,70260 ----
  763b98e1b688bba4973179a8a0f0f792  gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-2.c
  f5d4e33fe73fd19617089f23235ef6aa  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-1.c
  c528acbf638ead7e00a72c7f6a8e2676  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-2.c
+ 7774011f206efe680c3c0bc56566322d  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-3.c
  57add79bdc825ef2ec63e229833a0bd1  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-1.c
  1fdf5436b492e9245f483d8368e3c711  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-2.c
+ 2fdbbc63f2a17935b64972a5141ef964  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-3.c
  d837708b1c7e483b262950e1ad83ec08  gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-1.c
  4846959fd9d170b8cdc5c5ad55f81af5  gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-2.c
  a603784067a3b8a533167ff3484c72fe  gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-1.c
*************** a6bbea58bae93cf3ac9adfb46530b561  gcc/te
*** 65856,65865 ****
  f29161b6d65e0866939bb7ae6690851a  gcc/testsuite/gcc.target/i386/avx512bw-vpunpcklbw-2.c
  70447357f51dc52b64f867a733ac4528  gcc/testsuite/gcc.target/i386/avx512bw-vpunpcklwd-1.c
  cc564320e4323c2cd97b20122dac95f2  gcc/testsuite/gcc.target/i386/avx512bw-vpunpcklwd-2.c
  5527753fe96f461c4183c2dd51ade1ea  gcc/testsuite/gcc.target/i386/avx512cd-vpbroadcastmb2q-1.c
! f0a8c1d89ba5b4171fdf7d0c53b23056  gcc/testsuite/gcc.target/i386/avx512cd-vpbroadcastmb2q-2.c
  1ba1fdb75e2f3361da29169e24010330  gcc/testsuite/gcc.target/i386/avx512cd-vpbroadcastmw2d-1.c
! 7d1d7a316cde8098b9884f414c5bca7f  gcc/testsuite/gcc.target/i386/avx512cd-vpbroadcastmw2d-2.c
  47ed8893624d3cdda0fdff86a98b3018  gcc/testsuite/gcc.target/i386/avx512cd-vpconflictd-1.c
  b3f86917089639ee3ce82f98ebec62f0  gcc/testsuite/gcc.target/i386/avx512cd-vpconflictd-2.c
  bcc88c437f26fe9038f20c11574e610f  gcc/testsuite/gcc.target/i386/avx512cd-vpconflictq-1.c
--- 70459,70469 ----
  f29161b6d65e0866939bb7ae6690851a  gcc/testsuite/gcc.target/i386/avx512bw-vpunpcklbw-2.c
  70447357f51dc52b64f867a733ac4528  gcc/testsuite/gcc.target/i386/avx512bw-vpunpcklwd-1.c
  cc564320e4323c2cd97b20122dac95f2  gcc/testsuite/gcc.target/i386/avx512bw-vpunpcklwd-2.c
+ f44a05e6ba7e4d8f818d793584594b11  gcc/testsuite/gcc.target/i386/avx512cd-inline-stringops-pr112784.c
  5527753fe96f461c4183c2dd51ade1ea  gcc/testsuite/gcc.target/i386/avx512cd-vpbroadcastmb2q-1.c
! ef55d100e053a07afa02629d8c26a898  gcc/testsuite/gcc.target/i386/avx512cd-vpbroadcastmb2q-2.c
  1ba1fdb75e2f3361da29169e24010330  gcc/testsuite/gcc.target/i386/avx512cd-vpbroadcastmw2d-1.c
! f71a8a31f0a3c834aadbd0fa1fab834f  gcc/testsuite/gcc.target/i386/avx512cd-vpbroadcastmw2d-2.c
  47ed8893624d3cdda0fdff86a98b3018  gcc/testsuite/gcc.target/i386/avx512cd-vpconflictd-1.c
  b3f86917089639ee3ce82f98ebec62f0  gcc/testsuite/gcc.target/i386/avx512cd-vpconflictd-2.c
  bcc88c437f26fe9038f20c11574e610f  gcc/testsuite/gcc.target/i386/avx512cd-vpconflictq-1.c
*************** b0adfb9446386fabce01e1d52f6ac753  gcc/te
*** 65872,65878 ****
  d71061bda865f7d6e210825e8be8c9b2  gcc/testsuite/gcc.target/i386/avx512dq-check.h
  b24af0ec73e5059fe5c5a4e5e72245fe  gcc/testsuite/gcc.target/i386/avx512dq-concatv2di-1.c
  2ea23cac0240a4e6291d19e092e97085  gcc/testsuite/gcc.target/i386/avx512dq-concatv2si-1.c
! 75caabd80371bee809874c605a23ef96  gcc/testsuite/gcc.target/i386/avx512dq-dest-false-dep-for-glc.c
  81d19af2e47db979a4a09153c9d11b15  gcc/testsuite/gcc.target/i386/avx512dq-kaddb-1.c
  f9309a4f0009270a5be2ed3e55841186  gcc/testsuite/gcc.target/i386/avx512dq-kaddw-1.c
  da21fba9f364fff466ac9aa0b1c9af36  gcc/testsuite/gcc.target/i386/avx512dq-kandb-1.c
--- 70476,70482 ----
  d71061bda865f7d6e210825e8be8c9b2  gcc/testsuite/gcc.target/i386/avx512dq-check.h
  b24af0ec73e5059fe5c5a4e5e72245fe  gcc/testsuite/gcc.target/i386/avx512dq-concatv2di-1.c
  2ea23cac0240a4e6291d19e092e97085  gcc/testsuite/gcc.target/i386/avx512dq-concatv2si-1.c
! 18ae367808c32654e3b1e19ea9c70964  gcc/testsuite/gcc.target/i386/avx512dq-dest-false-dep-for-glc.c
  81d19af2e47db979a4a09153c9d11b15  gcc/testsuite/gcc.target/i386/avx512dq-kaddb-1.c
  f9309a4f0009270a5be2ed3e55841186  gcc/testsuite/gcc.target/i386/avx512dq-kaddw-1.c
  da21fba9f364fff466ac9aa0b1c9af36  gcc/testsuite/gcc.target/i386/avx512dq-kandb-1.c
*************** d2485d57c89b4736d55cf3ad043515d3  gcc/te
*** 66016,66047 ****
  b91dc4453f3b5b5e4ea6147d114bb759  gcc/testsuite/gcc.target/i386/avx512dq-vxorps-1.c
  bbfd1d8973f4b73e98d2b686f541bb50  gcc/testsuite/gcc.target/i386/avx512dq-vxorps-2.c
  c405e2766f008522fd2c57413f19b993  gcc/testsuite/gcc.target/i386/avx512er-check.h
! b0e1db6611b800faabd5d2b58087c958  gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-1.c
! 45a80e5bfb75a7687ce40c8252c02bb1  gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-2.c
! 5339120b856c4aa5fc4fef6e52189bf7  gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-1.c
! f94ab5ad4fb140232d20ec06409f5507  gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-2.c
! a6e3ca12766024983c4bd07942dcea94  gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-1.c
! 9cf1814bc4e24360fd8750234592599d  gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-2.c
! 8d8412e19963de55dee4c910d28bd0f1  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-1.c
! d332ff80ee4b7ab0f986c01830b71f56  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-2.c
! d419db76587d703249bdaf744fa26837  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-3.c
! 1eff4e31b1112a6e42565a793938d5d3  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-4.c
! 7700040f89509d28de49473df688ca2c  gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-1.c
! de275ba6032bbf340939a8a3a7f5e8b5  gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-2.c
! f45ea3a6978b162ada8564733369a181  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-1.c
! d9760fd4d56d78fb74c11f868961d5b7  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-2.c
! f5ad8999490aefec59caba35c52c8ca8  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-1.c
! 576f3eb877125320c138b2fa28755f75  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-2.c
! abb56706ab0726d30e28300ef79aa60d  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-1.c
! ed3d90dbe58b8809b57c676f74ba1f79  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-2.c
! 1a5ee4fd35367a786cd3075c169817c7  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-3.c
! 159cfafc29392f77a8739fe68a0b09ab  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-4.c
! 5b61bffa07458921675f2da31d85cd98  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-5.c
! 4e3e9759fa00ea5280852a728e03dfbe  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-6.c
! d75a6f1ef70ad3aacf0b532d1fa862fc  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-1.c
! 9770ef153809418a1c49ecf0b82ecd58  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-2.c
! ccd1795a774a499a45b67596fdc9f917  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-1.c
! b96cf98b97eadf8cbe37fad5be0196f1  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-2.c
  293c0a0037da464f897d16eb6f1159b5  gcc/testsuite/gcc.target/i386/avx512f-abspd-1.c
  848eeff915167de4b7db43649930109b  gcc/testsuite/gcc.target/i386/avx512f-absps-1.c
  8799a68f026a746fb50083af4ae4154a  gcc/testsuite/gcc.target/i386/avx512f-add-df-zmm-1.c
--- 70620,70651 ----
  b91dc4453f3b5b5e4ea6147d114bb759  gcc/testsuite/gcc.target/i386/avx512dq-vxorps-1.c
  bbfd1d8973f4b73e98d2b686f541bb50  gcc/testsuite/gcc.target/i386/avx512dq-vxorps-2.c
  c405e2766f008522fd2c57413f19b993  gcc/testsuite/gcc.target/i386/avx512er-check.h
! e55a21ee9825fc765e8d70c803bf5399  gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-1.c
! cc841f117331b04d66fa65fa83728c86  gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-2.c
! e5b2f7afd6ced3cec028ce9df126a9b4  gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-1.c
! 9fd2897cbec3afada0ec96aa4838e6f4  gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-2.c
! c8e3138f2b20c9bf1a275e67064382d9  gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-1.c
! bc0226d6498e8d6fab6a566b075a9678  gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-2.c
! 13c66d051d563c3a420d06221d6bbba8  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-1.c
! 48573d985c0675c0e49b657402f5df5b  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-2.c
! 2ab17c420c1504918056e4828a54af46  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-3.c
! 4b4c3b9a19f7bbef9357425e8b31b84c  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-4.c
! 0cf9d5ba4728d648f3584e371af95f0a  gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-1.c
! 092a6a84f0cec8d8fb43fd718af436e0  gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-2.c
! dead58d39633d33ade52ea73f39047d3  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-1.c
! ac9cfd39005f952dffc08da62c5b7d54  gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-2.c
! da3724378cbd79a6cd7736792fbb3ab5  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-1.c
! eddfef7ff8418b69b812f14ce879db83  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-2.c
! 804076ebf805502dd2a07ac7ec06a724  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-1.c
! 3d85799d4e67b477edc3488cabc7f8df  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-2.c
! d3bd370bfdcda1ec9c11e8f50fe1d6bc  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-3.c
! 1804af161b27d900eae87bbd7a424635  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-4.c
! bd4f98d4b7da8466d842fb10b974e112  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-5.c
! 2a120054966f0c8f27e9ebc8d46854fd  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-6.c
! cb70d3e0c65052d000d235a411ad4639  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-1.c
! 1fd1d19c26567a8a415190506c8dfa9b  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-2.c
! f3c51971ddbe93762507b15c8f8ba348  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-1.c
! 6adeba05bc662363fccf5222609bd551  gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-2.c
  293c0a0037da464f897d16eb6f1159b5  gcc/testsuite/gcc.target/i386/avx512f-abspd-1.c
  848eeff915167de4b7db43649930109b  gcc/testsuite/gcc.target/i386/avx512f-absps-1.c
  8799a68f026a746fb50083af4ae4154a  gcc/testsuite/gcc.target/i386/avx512f-add-df-zmm-1.c
*************** b737ab4f98d129dced7909dfeaa6d989  gcc/te
*** 66071,66105 ****
  4bea2ff5abdb1019ace175782737355d  gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-5.c
  83ce2eedd5a8fe181728bcec87580e4c  gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-6.c
  e6a2d08517354a6475d26db37dba85e2  gcc/testsuite/gcc.target/i386/avx512f-andn-di-zmm-1.c
  7bdb8d5e0ed3104f993f95e7b17d28a9  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-1.c
! 66a2f249a83de12ca9332ca9eff456fd  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-2.c
  15b74051431ad7afd25be6d603d3293d  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-3.c
  9b64e09bf8ab17f1dcd8f928bdd25743  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-4.c
  d63ad896d9c758712bf90d6dc9341750  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-5.c
  ac444822bf41eda8ff9b0517ed627613  gcc/testsuite/gcc.target/i386/avx512f-broadcast-gpr-1.c
  c88d598d6edb7c0c743c1dc16a2cc16d  gcc/testsuite/gcc.target/i386/avx512f-broadcast-gpr-2.c
! 4610630dc06f46ba15cb4b1d4afefbf7  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-1.c
  08373bd09639bc64a0bddd2ddc47768f  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-2.c
  97b1b6d4bf2739b6e621086b377217b7  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-3.c
  a9d7eae800fa77dbac9b5164b17093c5  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-4.c
! 9000011503e7dcdf5c7e6a12355ce3d6  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-5.c
  0e1564775717bbc2a1b1b34d11aa25e2  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-6.c
  57a624131d39343fc5c40145915d6580  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-7.c
! d6d82e1f94a08c07c77189274e3051de  gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-1.c
  043ca358343e3cd8084b52ddd77fc44b  gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-2.c
! 46819e77f7b43bb780dd8a446e563d7d  gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-1.c
  e37893c9abd7382a7def7fd7274dcd64  gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-2.c
! 4655c45d51f3f7f92008ad008eb540dc  gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-1.c
  8a2399e65f2d83ffe127b069db603b09  gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-2.c
! 7b9fceb5e55b478f88c4af3fe739bcfc  gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-1.c
  a4b256bf9501d70dd2182eab7f624689  gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-2.c
  c5f7c86bd282a5bc688c97ebe5388b28  gcc/testsuite/gcc.target/i386/avx512f-check.h
  cdb325d7797efd888176d6a35fedf7fe  gcc/testsuite/gcc.target/i386/avx512f-constant-float-return.c
  0c68e6ebccf8b738884ea7b2fe334d9f  gcc/testsuite/gcc.target/i386/avx512f-constant-set.c
  f87a131592c4947fafb6dc93f2da20e6  gcc/testsuite/gcc.target/i386/avx512f-cvt-1.c
  64f178993bcb5b745f68c3b782f8605e  gcc/testsuite/gcc.target/i386/avx512f-cvtsd-1.c
  1a0c742ccf81b9a3980e6819cc48fb69  gcc/testsuite/gcc.target/i386/avx512f-cvtss-1.c
! c5c4b532f8e9dabc2ae5d555cbc88b4b  gcc/testsuite/gcc.target/i386/avx512f-dest-false-dep-for-glc.c
  27a29e27b8e4594212c0df685a312f07  gcc/testsuite/gcc.target/i386/avx512f-div-df-zmm-1.c
  6ea84a48bc98f16e4e183e13edf2aaf0  gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-1.c
  67ca9e9ba1bb1279dbf0ec1d370411f0  gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-2.c
--- 70675,70711 ----
  4bea2ff5abdb1019ace175782737355d  gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-5.c
  83ce2eedd5a8fe181728bcec87580e4c  gcc/testsuite/gcc.target/i386/avx512f-and-si-zmm-6.c
  e6a2d08517354a6475d26db37dba85e2  gcc/testsuite/gcc.target/i386/avx512f-andn-di-zmm-1.c
+ 9e7d3f0ab599c0afabe514796e4c43d3  gcc/testsuite/gcc.target/i386/avx512f-andn-di-zmm-2.c
  7bdb8d5e0ed3104f993f95e7b17d28a9  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-1.c
! 95609c26db388922692a359d22d8c046  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-2.c
  15b74051431ad7afd25be6d603d3293d  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-3.c
  9b64e09bf8ab17f1dcd8f928bdd25743  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-4.c
  d63ad896d9c758712bf90d6dc9341750  gcc/testsuite/gcc.target/i386/avx512f-andn-si-zmm-5.c
  ac444822bf41eda8ff9b0517ed627613  gcc/testsuite/gcc.target/i386/avx512f-broadcast-gpr-1.c
  c88d598d6edb7c0c743c1dc16a2cc16d  gcc/testsuite/gcc.target/i386/avx512f-broadcast-gpr-2.c
! ddd7b452f2f34f9dc53027542af17f41  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-1.c
  08373bd09639bc64a0bddd2ddc47768f  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-2.c
  97b1b6d4bf2739b6e621086b377217b7  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-3.c
  a9d7eae800fa77dbac9b5164b17093c5  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-4.c
! 617f9556c50759ea1267e85e32e5b3d2  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-5.c
  0e1564775717bbc2a1b1b34d11aa25e2  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-6.c
  57a624131d39343fc5c40145915d6580  gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-7.c
! a612d3f3d319b7fcfca22fcefe6e2a0a  gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-1.c
  043ca358343e3cd8084b52ddd77fc44b  gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-2.c
! 07ae5b54b0694e8b3833f18dfdae0b40  gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-1.c
  e37893c9abd7382a7def7fd7274dcd64  gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-2.c
! 9ceffd8737406d4815351e8f3ecf0477  gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-1.c
  8a2399e65f2d83ffe127b069db603b09  gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-2.c
! 57ee35d775bc590d18314f940b31caa2  gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-1.c
  a4b256bf9501d70dd2182eab7f624689  gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-2.c
  c5f7c86bd282a5bc688c97ebe5388b28  gcc/testsuite/gcc.target/i386/avx512f-check.h
  cdb325d7797efd888176d6a35fedf7fe  gcc/testsuite/gcc.target/i386/avx512f-constant-float-return.c
  0c68e6ebccf8b738884ea7b2fe334d9f  gcc/testsuite/gcc.target/i386/avx512f-constant-set.c
+ 7669ef1fa8ad73ce164f7671422a223f  gcc/testsuite/gcc.target/i386/avx512f-copysign.c
  f87a131592c4947fafb6dc93f2da20e6  gcc/testsuite/gcc.target/i386/avx512f-cvt-1.c
  64f178993bcb5b745f68c3b782f8605e  gcc/testsuite/gcc.target/i386/avx512f-cvtsd-1.c
  1a0c742ccf81b9a3980e6819cc48fb69  gcc/testsuite/gcc.target/i386/avx512f-cvtss-1.c
! 71cf2e92d2a52884ee64ad94711035b6  gcc/testsuite/gcc.target/i386/avx512f-dest-false-dep-for-glc.c
  27a29e27b8e4594212c0df685a312f07  gcc/testsuite/gcc.target/i386/avx512f-div-df-zmm-1.c
  6ea84a48bc98f16e4e183e13edf2aaf0  gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-1.c
  67ca9e9ba1bb1279dbf0ec1d370411f0  gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-2.c
*************** c5c4b532f8e9dabc2ae5d555cbc88b4b  gcc/te
*** 66107,66119 ****
  e2325f61e93314633613d911abcf306e  gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-4.c
  b4e131dd3ad96c441604e2dfd490613b  gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-5.c
  9db780c1e1f36c905bedd1fd077c44bc  gcc/testsuite/gcc.target/i386/avx512f-dummy.c
! 38515bb16a771ea67179aba28dabc899  gcc/testsuite/gcc.target/i386/avx512f-floor-sfix-vec-1.c
  f449e800780313dbf245bac9b4df7ed5  gcc/testsuite/gcc.target/i386/avx512f-floor-sfix-vec-2.c
! 2d2632af36a386ae64468c73e4228761  gcc/testsuite/gcc.target/i386/avx512f-floor-vec-1.c
  ae10c62470cea283261617eaed4fb4bd  gcc/testsuite/gcc.target/i386/avx512f-floor-vec-2.c
! bce51b0cbc5dfcc6a2bca9a993abd484  gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-1.c
  36f5b8ecaa1309fea47c6565009b0e43  gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-2.c
! e57565df183b62d9679fcf9443d3acce  gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-1.c
  0e2a8a11b7939edbb836489d6d1ae8cb  gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-2.c
  e4c53b4b3beb8b7fd9f352712d400e8f  gcc/testsuite/gcc.target/i386/avx512f-fmadd-df-zmm-1.c
  93ed9a055bf99cebd94ea5ab34d46747  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-1.c
--- 70713,70728 ----
  e2325f61e93314633613d911abcf306e  gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-4.c
  b4e131dd3ad96c441604e2dfd490613b  gcc/testsuite/gcc.target/i386/avx512f-div-sf-zmm-5.c
  9db780c1e1f36c905bedd1fd077c44bc  gcc/testsuite/gcc.target/i386/avx512f-dummy.c
! d0563f6629ca539ba97e548fb0fd34cf  gcc/testsuite/gcc.target/i386/avx512f-dupv2di.c
! dc0a299d1be44c20f4757a79367d5150  gcc/testsuite/gcc.target/i386/avx512f-dupv4sf.c
! 8e839044ea9513f81d3f27e91b7d5a8d  gcc/testsuite/gcc.target/i386/avx512f-dupv4si.c
! de498fa4a00d1636cd6689eb1882bdee  gcc/testsuite/gcc.target/i386/avx512f-floor-sfix-vec-1.c
  f449e800780313dbf245bac9b4df7ed5  gcc/testsuite/gcc.target/i386/avx512f-floor-sfix-vec-2.c
! c1e38a311bd743c165e1ed2724e35826  gcc/testsuite/gcc.target/i386/avx512f-floor-vec-1.c
  ae10c62470cea283261617eaed4fb4bd  gcc/testsuite/gcc.target/i386/avx512f-floor-vec-2.c
! c1ce15c0f4b69a67a16f8dafa4078aec  gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-1.c
  36f5b8ecaa1309fea47c6565009b0e43  gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-2.c
! d3511fa79bc09104caf0c4246a1e63b4  gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-1.c
  0e2a8a11b7939edbb836489d6d1ae8cb  gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-2.c
  e4c53b4b3beb8b7fd9f352712d400e8f  gcc/testsuite/gcc.target/i386/avx512f-fmadd-df-zmm-1.c
  93ed9a055bf99cebd94ea5ab34d46747  gcc/testsuite/gcc.target/i386/avx512f-fmadd-sf-zmm-1.c
*************** f29cb80478e0215da944b07d692b0066  gcc/te
*** 66151,66170 ****
  a667779f55bbe4353e3c110dc1ba9d88  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c
  1308de2cbc34f432d25336bc885bca51  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c
  16c3b0cf3a3c961cb0fec74bf4060737  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c
! 84e7771e69ca717e00f65b0c4bbe9141  gcc/testsuite/gcc.target/i386/avx512f-gather-1.c
! ec10bbbd1b66bb7ba0d5e0802f26a87e  gcc/testsuite/gcc.target/i386/avx512f-gather-2.c
! 43edded2cee80685d44eaa8cf0d2c843  gcc/testsuite/gcc.target/i386/avx512f-gather-3.c
! 5e45c30811fe00caa23cb57dac5512e2  gcc/testsuite/gcc.target/i386/avx512f-gather-4.c
! dd199a9fdbe9b835c87e49aa0d40141f  gcc/testsuite/gcc.target/i386/avx512f-gather-5.c
  b38a9c14f87367c694a03c6a85cda093  gcc/testsuite/gcc.target/i386/avx512f-gf2p8affineinvqb-2.c
  e8ed6420b94ba8e4f884b1fed3192afb  gcc/testsuite/gcc.target/i386/avx512f-gf2p8affineqb-2.c
  fbf4c4e93ebbba4e4057d944ad324b7b  gcc/testsuite/gcc.target/i386/avx512f-gf2p8mulb-2.c
  b30bd8215949240eadbb28b213632870  gcc/testsuite/gcc.target/i386/avx512f-helper.h
! 4d4e3cd5268174957dc407363e2a23b0  gcc/testsuite/gcc.target/i386/avx512f-i32gatherd512-1.c
! 7c16a650586fef4d8808abe3c59e1490  gcc/testsuite/gcc.target/i386/avx512f-i32gatherd512-2.c
! ffd288851f8ba62882abb34284af577d  gcc/testsuite/gcc.target/i386/avx512f-i32gatherpd512-1.c
! 1f28adb61f138ef40be7dbb353bc35e7  gcc/testsuite/gcc.target/i386/avx512f-i32gatherpd512-2.c
! a631a9bbe52c64ed6928cc40a37bd2b2  gcc/testsuite/gcc.target/i386/avx512f-i32gatherps512-1.c
  2dc47fbf53205c914a8c89a971c1e28e  gcc/testsuite/gcc.target/i386/avx512f-i32gatherps512-2.c
  e02918aee214e5ef32e06b74634c4f74  gcc/testsuite/gcc.target/i386/avx512f-i32gatherq512-1.c
  597082d30f3c73bb9b42cf7b4b8453e7  gcc/testsuite/gcc.target/i386/avx512f-i32gatherq512-2.c
--- 70760,70779 ----
  a667779f55bbe4353e3c110dc1ba9d88  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c
  1308de2cbc34f432d25336bc885bca51  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c
  16c3b0cf3a3c961cb0fec74bf4060737  gcc/testsuite/gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c
! 13cdce1bf0a69ff1f2d074309568894b  gcc/testsuite/gcc.target/i386/avx512f-gather-1.c
! c8624eb2b3174b5a690f95d397a2597b  gcc/testsuite/gcc.target/i386/avx512f-gather-2.c
! 3b8a5f3ff9ed5c166b9d0311732879f8  gcc/testsuite/gcc.target/i386/avx512f-gather-3.c
! f783e66b09f316c2dde663ba5ce3186a  gcc/testsuite/gcc.target/i386/avx512f-gather-4.c
! 4dbad20a82949b420146f939edf169ae  gcc/testsuite/gcc.target/i386/avx512f-gather-5.c
  b38a9c14f87367c694a03c6a85cda093  gcc/testsuite/gcc.target/i386/avx512f-gf2p8affineinvqb-2.c
  e8ed6420b94ba8e4f884b1fed3192afb  gcc/testsuite/gcc.target/i386/avx512f-gf2p8affineqb-2.c
  fbf4c4e93ebbba4e4057d944ad324b7b  gcc/testsuite/gcc.target/i386/avx512f-gf2p8mulb-2.c
  b30bd8215949240eadbb28b213632870  gcc/testsuite/gcc.target/i386/avx512f-helper.h
! bc1e264d74393600ad6c3dc8e5f9a8c1  gcc/testsuite/gcc.target/i386/avx512f-i32gatherd512-1.c
! 970def87f940562db570ac590860c040  gcc/testsuite/gcc.target/i386/avx512f-i32gatherd512-2.c
! 368e993e6c8f94205fcb74a268d08265  gcc/testsuite/gcc.target/i386/avx512f-i32gatherpd512-1.c
! c67d3c163b472f7cc58f728b8f232420  gcc/testsuite/gcc.target/i386/avx512f-i32gatherpd512-2.c
! 67edee81430e1ff4002b856bbfeace54  gcc/testsuite/gcc.target/i386/avx512f-i32gatherps512-1.c
  2dc47fbf53205c914a8c89a971c1e28e  gcc/testsuite/gcc.target/i386/avx512f-i32gatherps512-2.c
  e02918aee214e5ef32e06b74634c4f74  gcc/testsuite/gcc.target/i386/avx512f-i32gatherq512-1.c
  597082d30f3c73bb9b42cf7b4b8453e7  gcc/testsuite/gcc.target/i386/avx512f-i32gatherq512-2.c
*************** c0dd86eaa0095c2b38908928d5034cf3  gcc/te
*** 66231,66236 ****
--- 70840,70847 ----
  86f982a5a551113f9ce0c7e950b8f010  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-4.c
  d787a0a2840b56339d3621983623b18d  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-5.c
  d35963959d5b010c3b26b967f48d3608  gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-6.c
+ f07390ef5068cb86c51a4795e19fed6d  gcc/testsuite/gcc.target/i386/avx512f-orn-si-zmm-1.c
+ fd0cedd44d95c2ea94fb116776766883  gcc/testsuite/gcc.target/i386/avx512f-orn-si-zmm-2.c
  17acbefd47a510ed96d83a23e3e4b8c3  gcc/testsuite/gcc.target/i386/avx512f-os-support.h
  3914b6d25111ca6ae59285960acf2a38  gcc/testsuite/gcc.target/i386/avx512f-pr100267-1.c
  96968590e0e38d8ab07a46aa232aaa22  gcc/testsuite/gcc.target/i386/avx512f-pr100267-pd-2.c
*************** dc7877a60c094039a172aa23afb1e37c  gcc/te
*** 66241,66246 ****
--- 70852,70859 ----
  45a98ac2d84ae154c61e3e1ce84c17eb  gcc/testsuite/gcc.target/i386/avx512f-pr101896.c
  ce0cad9f4c5da96b0d07d2029604250c  gcc/testsuite/gcc.target/i386/avx512f-pr103750-1.c
  1d9114b974ef8241068b2ece25e00b2e  gcc/testsuite/gcc.target/i386/avx512f-pr103750-2.c
+ fa2c17673f6ee0e3a3910298a93d723d  gcc/testsuite/gcc.target/i386/avx512f-pr114157.c
+ 9a6936f1815277f15801196159007f44  gcc/testsuite/gcc.target/i386/avx512f-pr114566.c
  88877c518076ecdec1dba128743ad627  gcc/testsuite/gcc.target/i386/avx512f-pr57233.c
  0272e0fc54cb34ee03db4b0027dbec3d  gcc/testsuite/gcc.target/i386/avx512f-pr63594-1.c
  381f53de01f1e9893e6903d9fac40b87  gcc/testsuite/gcc.target/i386/avx512f-pr63594-2.c
*************** f5e2d9cb20058374157f0683dddeff73  gcc/te
*** 66262,66275 ****
  33ef0191b116f2207f8cae72da53f074  gcc/testsuite/gcc.target/i386/avx512f-pr85177.c
  44b94a02b283cd9b531e1679a63bb550  gcc/testsuite/gcc.target/i386/avx512f-pr85255.c
  91d1cf3389554e9095c24e2d0922e5ce  gcc/testsuite/gcc.target/i386/avx512f-pr85832.c
! 8755bbd1991d543ed8238049d8c8dd38  gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c
! bfe1b42fed4f27d06a2686cddbd8c3c0  gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c
! 7438f166ed28ad4498da4b5077b71181  gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c
! da0186580868c5f1ebd96d179687ae26  gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c
! 6bc4181653baf587b37d974277810ee5  gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c
! 15e278dd63e5ac145f6c67f833a47cf2  gcc/testsuite/gcc.target/i386/avx512f-pr88464-6.c
! fbb4eb7430260d94966d2091a7204617  gcc/testsuite/gcc.target/i386/avx512f-pr88464-7.c
! a2908de260a59647ee69aa2e1e318a8b  gcc/testsuite/gcc.target/i386/avx512f-pr88464-8.c
  41c6855272c11ec0b26ebefa50be9a34  gcc/testsuite/gcc.target/i386/avx512f-pr88465.c
  3aa049459422c341c69aa3fcbc348fc9  gcc/testsuite/gcc.target/i386/avx512f-pr88513-1.c
  a940544da86cef217be8f69bb1db86fd  gcc/testsuite/gcc.target/i386/avx512f-pr88513-2.c
--- 70875,70888 ----
  33ef0191b116f2207f8cae72da53f074  gcc/testsuite/gcc.target/i386/avx512f-pr85177.c
  44b94a02b283cd9b531e1679a63bb550  gcc/testsuite/gcc.target/i386/avx512f-pr85255.c
  91d1cf3389554e9095c24e2d0922e5ce  gcc/testsuite/gcc.target/i386/avx512f-pr85832.c
! c1c9be5c000ba09322d1bcaed3d61241  gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c
! c139215d068f042405a4a6e5acf67533  gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c
! e6837d64d8ea60579771d056bced2ed2  gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c
! e86cd7c796cbad6ff27a7ebb14ac427b  gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c
! d3d0db87e65534dc95ebeafc29f6eb13  gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c
! e361365524818f5b94e18df0a836eccd  gcc/testsuite/gcc.target/i386/avx512f-pr88464-6.c
! 044747585bd7c124bd6ace6f902a05a5  gcc/testsuite/gcc.target/i386/avx512f-pr88464-7.c
! 5a0de9412d609ea4d766462312136fd5  gcc/testsuite/gcc.target/i386/avx512f-pr88464-8.c
  41c6855272c11ec0b26ebefa50be9a34  gcc/testsuite/gcc.target/i386/avx512f-pr88465.c
  3aa049459422c341c69aa3fcbc348fc9  gcc/testsuite/gcc.target/i386/avx512f-pr88513-1.c
  a940544da86cef217be8f69bb1db86fd  gcc/testsuite/gcc.target/i386/avx512f-pr88513-2.c
*************** d78e3457ea49412fb5342c9d2fc4b516  gcc/te
*** 66290,66302 ****
  23ad5d665df88571c33627be5c844324  gcc/testsuite/gcc.target/i386/avx512f-pr97028.c
  c03d8cf4fa3fd17be806ad4e6adc4bca  gcc/testsuite/gcc.target/i386/avx512f-prefer.c
  fa779c05cab9a2378601e3ad5ae642ef  gcc/testsuite/gcc.target/i386/avx512f-reduce-op-1.c
! 26df6259bb9333b0893acf32bbb4ba18  gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-1.c
  baa174f3b95df710a30b886b8722cf67  gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-2.c
! 5584cde495e1a705458595dc71c5574b  gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-1.c
  b52dd7286b029673cd399b0a07bf733a  gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-2.c
! 8575b02bce7152cd093d4ffdf448b103  gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-1.c
  8ec0c6ee2d9b777f1da5706d825590f4  gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-2.c
! 9bc466341f1264fa95a235e1e65f81a5  gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-1.c
  8b538e860606539734b2c832df5c63eb  gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-2.c
  5158ac78802e368957a44c0f68b3b5d8  gcc/testsuite/gcc.target/i386/avx512f-rounding.c
  8eb7f0638fb7f71388916d2f90f89f93  gcc/testsuite/gcc.target/i386/avx512f-scatter-1.c
--- 70903,70915 ----
  23ad5d665df88571c33627be5c844324  gcc/testsuite/gcc.target/i386/avx512f-pr97028.c
  c03d8cf4fa3fd17be806ad4e6adc4bca  gcc/testsuite/gcc.target/i386/avx512f-prefer.c
  fa779c05cab9a2378601e3ad5ae642ef  gcc/testsuite/gcc.target/i386/avx512f-reduce-op-1.c
! 75c208d763a521e0e90826ce92f93264  gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-1.c
  baa174f3b95df710a30b886b8722cf67  gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-2.c
! 3529097f5df4a217dc8259ddb58c51af  gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-1.c
  b52dd7286b029673cd399b0a07bf733a  gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-2.c
! 67de23db78d34acab3121e54f43c476e  gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-1.c
  8ec0c6ee2d9b777f1da5706d825590f4  gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-2.c
! 3f98f75205776594adbcc6fd10f26cd0  gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-1.c
  8b538e860606539734b2c832df5c63eb  gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-2.c
  5158ac78802e368957a44c0f68b3b5d8  gcc/testsuite/gcc.target/i386/avx512f-rounding.c
  8eb7f0638fb7f71388916d2f90f89f93  gcc/testsuite/gcc.target/i386/avx512f-scatter-1.c
*************** db071ed8613b1b2492ad9f75d6fcb5f2  gcc/te
*** 66349,66357 ****
  8715e07d6f56ff7cead0da7f63068f5f  gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-3.c
  6f21359c0f0e91b6e03a7bdab21e7e19  gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-4.c
  3f59c0a81ef8b38973d9d2a5672b8c9d  gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-5.c
! 14e9739678ce7edb62b9e6ae5737a7ce  gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-1.c
  b74179ff996ee056241e1c5238385936  gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-2.c
! 3b2750d80ece2194e72929ab59094c71  gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-1.c
  75f99d519bd7e5ff40d6b2db26925c32  gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-2.c
  06c531d6ffd8e2dc9c35db5a25f946d2  gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c
  da21abc25efbe604faee84c333c2e4b8  gcc/testsuite/gcc.target/i386/avx512f-typecast-2.c
--- 70962,70970 ----
  8715e07d6f56ff7cead0da7f63068f5f  gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-3.c
  6f21359c0f0e91b6e03a7bdab21e7e19  gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-4.c
  3f59c0a81ef8b38973d9d2a5672b8c9d  gcc/testsuite/gcc.target/i386/avx512f-sub-si-zmm-5.c
! 7774571083fa0fec2abd53cf85923b9c  gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-1.c
  b74179ff996ee056241e1c5238385936  gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-2.c
! ec75980506a682385a725e84113f20c9  gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-1.c
  75f99d519bd7e5ff40d6b2db26925c32  gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-2.c
  06c531d6ffd8e2dc9c35db5a25f946d2  gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c
  da21abc25efbe604faee84c333c2e4b8  gcc/testsuite/gcc.target/i386/avx512f-typecast-2.c
*************** b5e4cd18a2247fe8c73f3ec6f8f9beb7  gcc/te
*** 66497,66504 ****
  9ec671949531bc4d3d3c8417ef38f144  gcc/testsuite/gcc.target/i386/avx512f-vect-fmaddsubXXXps.c
  f3e471e75f3dce472af5e45973930eb4  gcc/testsuite/gcc.target/i386/avx512f-vect-fmsubaddXXXpd.c
  f2328b4b9bec3539fe7a8edf1c41f6fb  gcc/testsuite/gcc.target/i386/avx512f-vect-fmsubaddXXXps.c
! aad59cde1da67f91dcaf200225242b6a  gcc/testsuite/gcc.target/i386/avx512f-vect-perm-1.c
! b69783ae8c604afd50edd08d70d106e0  gcc/testsuite/gcc.target/i386/avx512f-vect-perm-2.c
  03b9480b3206c24de8802dd795e0c58e  gcc/testsuite/gcc.target/i386/avx512f-vect-rebuild.c
  5f38cf2f2a3f2868982bacd044e07bfb  gcc/testsuite/gcc.target/i386/avx512f-vect-simd-10.c
  e4184b0ed7137d40b72195be4213604f  gcc/testsuite/gcc.target/i386/avx512f-vect-simd-12.c
--- 71110,71117 ----
  9ec671949531bc4d3d3c8417ef38f144  gcc/testsuite/gcc.target/i386/avx512f-vect-fmaddsubXXXps.c
  f3e471e75f3dce472af5e45973930eb4  gcc/testsuite/gcc.target/i386/avx512f-vect-fmsubaddXXXpd.c
  f2328b4b9bec3539fe7a8edf1c41f6fb  gcc/testsuite/gcc.target/i386/avx512f-vect-fmsubaddXXXps.c
! 4fe8eaf4ad556b671c106bed55a54fcc  gcc/testsuite/gcc.target/i386/avx512f-vect-perm-1.c
! 822c8d308264134db59b80551889282f  gcc/testsuite/gcc.target/i386/avx512f-vect-perm-2.c
  03b9480b3206c24de8802dd795e0c58e  gcc/testsuite/gcc.target/i386/avx512f-vect-rebuild.c
  5f38cf2f2a3f2868982bacd044e07bfb  gcc/testsuite/gcc.target/i386/avx512f-vect-simd-10.c
  e4184b0ed7137d40b72195be4213604f  gcc/testsuite/gcc.target/i386/avx512f-vect-simd-12.c
*************** a6451c4914c5e548ed0b6b1e89bc6f14  gcc/te
*** 66749,66762 ****
  168050657750b10d1ebfeaae01fe19da  gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-2.c
  9818d935e35295611c375d42862183bb  gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-1.c
  c7a149a80b76351d66c8c6d26298bece  gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-2.c
! d2f5a90b7c2f0f7162fdc9fbd024107c  gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-1.c
! 46a17052853380a1021e659494e2fbff  gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c
  8e83a84aaf58c1723af67a365a8d7010  gcc/testsuite/gcc.target/i386/avx512f-vpcompressd-1.c
  4756278a12238d5e74693ccf118d2ebe  gcc/testsuite/gcc.target/i386/avx512f-vpcompressd-2.c
  4469a2497500a44fbee5e07165ba9bde  gcc/testsuite/gcc.target/i386/avx512f-vpcompressq-1.c
  0d85648b7a0ee7f131e478405e74c9d3  gcc/testsuite/gcc.target/i386/avx512f-vpcompressq-2.c
! 1488080dc9b9b495b03ef71484a8b792  gcc/testsuite/gcc.target/i386/avx512f-vpcompressw-1.c
! a1244584b7196c8505ff51cef8c0db8b  gcc/testsuite/gcc.target/i386/avx512f-vpcompressw-2.c
  94e0fe23c87ea3d72348e590f80affbd  gcc/testsuite/gcc.target/i386/avx512f-vpdpbusd-2.c
  d4f021ae95c4ae6fec94177b4b8887d2  gcc/testsuite/gcc.target/i386/avx512f-vpdpbusds-2.c
  f38af091d60259a3848c0d15e5dca26b  gcc/testsuite/gcc.target/i386/avx512f-vpdpwssd-2.c
--- 71362,71375 ----
  168050657750b10d1ebfeaae01fe19da  gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-2.c
  9818d935e35295611c375d42862183bb  gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-1.c
  c7a149a80b76351d66c8c6d26298bece  gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-2.c
! 604f26dd3cd6a40229c6c51cb663acb7  gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-1.c
! 60c29a1b9e21aa53fd0c293e7f092802  gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c
  8e83a84aaf58c1723af67a365a8d7010  gcc/testsuite/gcc.target/i386/avx512f-vpcompressd-1.c
  4756278a12238d5e74693ccf118d2ebe  gcc/testsuite/gcc.target/i386/avx512f-vpcompressd-2.c
  4469a2497500a44fbee5e07165ba9bde  gcc/testsuite/gcc.target/i386/avx512f-vpcompressq-1.c
  0d85648b7a0ee7f131e478405e74c9d3  gcc/testsuite/gcc.target/i386/avx512f-vpcompressq-2.c
! c86a4d15e7ad7bd10d3447fd50dfa73e  gcc/testsuite/gcc.target/i386/avx512f-vpcompressw-1.c
! 7a839b03a70b1e5af4ca3c4287065e3b  gcc/testsuite/gcc.target/i386/avx512f-vpcompressw-2.c
  94e0fe23c87ea3d72348e590f80affbd  gcc/testsuite/gcc.target/i386/avx512f-vpdpbusd-2.c
  d4f021ae95c4ae6fec94177b4b8887d2  gcc/testsuite/gcc.target/i386/avx512f-vpdpbusds-2.c
  f38af091d60259a3848c0d15e5dca26b  gcc/testsuite/gcc.target/i386/avx512f-vpdpwssd-2.c
*************** d3bf85eb1d1a650504366986dbe06adb  gcc/te
*** 66798,66811 ****
  bcefab56d22fef7fc172314ba9c97989  gcc/testsuite/gcc.target/i386/avx512f-vpermt2ps-2.c
  fb35f3070662bee2d24d59ff3ec16a2f  gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-1.c
  536defcff4871422ef4471360578575b  gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-2.c
! ead21fe528f3cb6c8e7f11113b481045  gcc/testsuite/gcc.target/i386/avx512f-vpexpandb-1.c
! ac643645e5420b07aa30be189cb349ce  gcc/testsuite/gcc.target/i386/avx512f-vpexpandb-2.c
  741a9d787c341bfbc61069c5b83e11f4  gcc/testsuite/gcc.target/i386/avx512f-vpexpandd-1.c
  18ef213b980207dddeaab010e02d8373  gcc/testsuite/gcc.target/i386/avx512f-vpexpandd-2.c
  e8f13a9c8c9f47b388d2ae251d990e0f  gcc/testsuite/gcc.target/i386/avx512f-vpexpandq-1.c
  7b02d45ecdbe27555e1c4d4706bbf7b4  gcc/testsuite/gcc.target/i386/avx512f-vpexpandq-2.c
! 56c5dc30a3c1d9d0594d167042cedef6  gcc/testsuite/gcc.target/i386/avx512f-vpexpandw-1.c
! 817f0beeaabb0eca611ef3a78b630e39  gcc/testsuite/gcc.target/i386/avx512f-vpexpandw-2.c
  de0e3874d0aa605d2655bc54cca75463  gcc/testsuite/gcc.target/i386/avx512f-vpmaxsd-1.c
  3e63a841111601e4b7f1bf6a8ab00963  gcc/testsuite/gcc.target/i386/avx512f-vpmaxsd-2.c
  5ef2a3041971aa49d75c5693a4eda2fa  gcc/testsuite/gcc.target/i386/avx512f-vpmaxsq-1.c
--- 71411,71424 ----
  bcefab56d22fef7fc172314ba9c97989  gcc/testsuite/gcc.target/i386/avx512f-vpermt2ps-2.c
  fb35f3070662bee2d24d59ff3ec16a2f  gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-1.c
  536defcff4871422ef4471360578575b  gcc/testsuite/gcc.target/i386/avx512f-vpermt2q-2.c
! c4706a10759ee178231f857c8326c825  gcc/testsuite/gcc.target/i386/avx512f-vpexpandb-1.c
! 4e2da19ecce8a21626d06fca19a1fc6b  gcc/testsuite/gcc.target/i386/avx512f-vpexpandb-2.c
  741a9d787c341bfbc61069c5b83e11f4  gcc/testsuite/gcc.target/i386/avx512f-vpexpandd-1.c
  18ef213b980207dddeaab010e02d8373  gcc/testsuite/gcc.target/i386/avx512f-vpexpandd-2.c
  e8f13a9c8c9f47b388d2ae251d990e0f  gcc/testsuite/gcc.target/i386/avx512f-vpexpandq-1.c
  7b02d45ecdbe27555e1c4d4706bbf7b4  gcc/testsuite/gcc.target/i386/avx512f-vpexpandq-2.c
! 6f9817df6d0b02444abefc37162ff8ab  gcc/testsuite/gcc.target/i386/avx512f-vpexpandw-1.c
! f16cb7a7a0671d4207107b49a9693c5c  gcc/testsuite/gcc.target/i386/avx512f-vpexpandw-2.c
  de0e3874d0aa605d2655bc54cca75463  gcc/testsuite/gcc.target/i386/avx512f-vpmaxsd-1.c
  3e63a841111601e4b7f1bf6a8ab00963  gcc/testsuite/gcc.target/i386/avx512f-vpmaxsd-2.c
  5ef2a3041971aa49d75c5693a4eda2fa  gcc/testsuite/gcc.target/i386/avx512f-vpmaxsq-1.c
*************** f20b5304a03f49cb0f19e7e9a6946898  gcc/te
*** 66900,66919 ****
  c4494e5c8f2f5712605e076f2e600674  gcc/testsuite/gcc.target/i386/avx512f-vprorvd-2.c
  cb1c82b7418448d896760ace3454f3a3  gcc/testsuite/gcc.target/i386/avx512f-vprorvq-1.c
  7a1ff54d11a0d9bb0cdf5ed6965eecb1  gcc/testsuite/gcc.target/i386/avx512f-vprorvq-2.c
! 9887ab54074eeef0af1cb3fc9b5f7dfd  gcc/testsuite/gcc.target/i386/avx512f-vpshld-1.c
! 42bb6bb824011c29df1e23ffb210d7d3  gcc/testsuite/gcc.target/i386/avx512f-vpshldd-2.c
! c2916e99da438fd9fcabe74171b14ebd  gcc/testsuite/gcc.target/i386/avx512f-vpshldq-2.c
! eb08b611533afd14c4ebe4e0926102be  gcc/testsuite/gcc.target/i386/avx512f-vpshldv-1.c
! 0b7d2fd486d2771094090bd31603d02b  gcc/testsuite/gcc.target/i386/avx512f-vpshldvd-2.c
! f8890f06bec73f17fc83db9f46be4d06  gcc/testsuite/gcc.target/i386/avx512f-vpshldvq-2.c
! 195c5d627f50d6fbf95969ae408c4e1a  gcc/testsuite/gcc.target/i386/avx512f-vpshldvw-2.c
! b9d84ad1774097a2f9443c22c2bc45a5  gcc/testsuite/gcc.target/i386/avx512f-vpshrdd-2.c
! 0a74e009fd2ffedddb18d9135cadb815  gcc/testsuite/gcc.target/i386/avx512f-vpshrdq-2.c
! 597bebee7398e51c39d1e3e8fbd337e5  gcc/testsuite/gcc.target/i386/avx512f-vpshrdv-1.c
! a215e3027c33db8f238bcee999a3829d  gcc/testsuite/gcc.target/i386/avx512f-vpshrdvd-2.c
! a932376370a86358e47398fb1a2940c8  gcc/testsuite/gcc.target/i386/avx512f-vpshrdvq-2.c
! d7272f8b979d82be06ec18390fccd29f  gcc/testsuite/gcc.target/i386/avx512f-vpshrdvw-2.c
! 00a406591ceb4c6af2ba689805ccf336  gcc/testsuite/gcc.target/i386/avx512f-vpshrdw-2.c
  bcd3addead7fb0a49914abb9c88da517  gcc/testsuite/gcc.target/i386/avx512f-vpshufd-1.c
  b1234db8d1acd04e8c3fb61310d055fa  gcc/testsuite/gcc.target/i386/avx512f-vpshufd-2.c
  79e7dde86741e98fb488c4c07d3326d7  gcc/testsuite/gcc.target/i386/avx512f-vpslld-1.c
--- 71513,71532 ----
  c4494e5c8f2f5712605e076f2e600674  gcc/testsuite/gcc.target/i386/avx512f-vprorvd-2.c
  cb1c82b7418448d896760ace3454f3a3  gcc/testsuite/gcc.target/i386/avx512f-vprorvq-1.c
  7a1ff54d11a0d9bb0cdf5ed6965eecb1  gcc/testsuite/gcc.target/i386/avx512f-vprorvq-2.c
! 7ba242a4a2edc4cdb5da298f44cfb73c  gcc/testsuite/gcc.target/i386/avx512f-vpshld-1.c
! d55421f84aa27c0342974a7229dd8045  gcc/testsuite/gcc.target/i386/avx512f-vpshldd-2.c
! 95a29beb8f584f23219ffb49f4d4464b  gcc/testsuite/gcc.target/i386/avx512f-vpshldq-2.c
! 9c35f407742c8271ac7b2e029664039d  gcc/testsuite/gcc.target/i386/avx512f-vpshldv-1.c
! d9dea3d9571ea4d1288b72bf1d2974d0  gcc/testsuite/gcc.target/i386/avx512f-vpshldvd-2.c
! de92215b7daee8f9f7e1c3d59398ba2d  gcc/testsuite/gcc.target/i386/avx512f-vpshldvq-2.c
! bd569a492c44b71f2cc0c35a5396439e  gcc/testsuite/gcc.target/i386/avx512f-vpshldvw-2.c
! 21f4c0e7ec18ed0522bd247635a87443  gcc/testsuite/gcc.target/i386/avx512f-vpshrdd-2.c
! 3abf6d1d4e34dd144973756bee294256  gcc/testsuite/gcc.target/i386/avx512f-vpshrdq-2.c
! 6ab7c4ac69eeab8c26df964e8a80fd19  gcc/testsuite/gcc.target/i386/avx512f-vpshrdv-1.c
! 0b099052e5105a4a6434f1b68f725e7f  gcc/testsuite/gcc.target/i386/avx512f-vpshrdvd-2.c
! 437aac9a702bb26ae938b6ceff47ab05  gcc/testsuite/gcc.target/i386/avx512f-vpshrdvq-2.c
! a5b2f1da0afd30057374e529d9dffc96  gcc/testsuite/gcc.target/i386/avx512f-vpshrdvw-2.c
! 6ccfa778ed023ad27839052e8f9d870e  gcc/testsuite/gcc.target/i386/avx512f-vpshrdw-2.c
  bcd3addead7fb0a49914abb9c88da517  gcc/testsuite/gcc.target/i386/avx512f-vpshufd-1.c
  b1234db8d1acd04e8c3fb61310d055fa  gcc/testsuite/gcc.target/i386/avx512f-vpshufd-2.c
  79e7dde86741e98fb488c4c07d3326d7  gcc/testsuite/gcc.target/i386/avx512f-vpslld-1.c
*************** bd345afb9ab5c80981d21fb74ec70404  gcc/te
*** 67074,67080 ****
  c8546919944aa8e519a6d7c6609e35a2  gcc/testsuite/gcc.target/i386/avx512fp16-11b.c
  45998199c9d05373b91b703c489b1dab  gcc/testsuite/gcc.target/i386/avx512fp16-12a.c
  14758831e35f6207f1d8a401d5965ad7  gcc/testsuite/gcc.target/i386/avx512fp16-12b.c
! 862073cfcfba18207943a6a08c3ff107  gcc/testsuite/gcc.target/i386/avx512fp16-13.c
  0548680cb90baddc2f4289b1daddf2d7  gcc/testsuite/gcc.target/i386/avx512fp16-14.c
  5105733c3744e643e48e7e479046d119  gcc/testsuite/gcc.target/i386/avx512fp16-1a.c
  e5318fffe1e2b5367902db745c03823d  gcc/testsuite/gcc.target/i386/avx512fp16-1b.c
--- 71687,71693 ----
  c8546919944aa8e519a6d7c6609e35a2  gcc/testsuite/gcc.target/i386/avx512fp16-11b.c
  45998199c9d05373b91b703c489b1dab  gcc/testsuite/gcc.target/i386/avx512fp16-12a.c
  14758831e35f6207f1d8a401d5965ad7  gcc/testsuite/gcc.target/i386/avx512fp16-12b.c
! 6a274bd35235abca23d28d21f2d21394  gcc/testsuite/gcc.target/i386/avx512fp16-13.c
  0548680cb90baddc2f4289b1daddf2d7  gcc/testsuite/gcc.target/i386/avx512fp16-14.c
  5105733c3744e643e48e7e479046d119  gcc/testsuite/gcc.target/i386/avx512fp16-1a.c
  e5318fffe1e2b5367902db745c03823d  gcc/testsuite/gcc.target/i386/avx512fp16-1b.c
*************** d001e45e400153dbb11a32a6d08d03fa  gcc/te
*** 67090,67096 ****
  6312c51a90aaed80d3886c7f43b7f1b8  gcc/testsuite/gcc.target/i386/avx512fp16-4.c
  101c08a4d969227fdb206ab705f485aa  gcc/testsuite/gcc.target/i386/avx512fp16-5.c
  9a702f9e241fa493d1108fc603bc1d8e  gcc/testsuite/gcc.target/i386/avx512fp16-6.c
! ca0f018c6d6395c19ee0d3be7e8879f8  gcc/testsuite/gcc.target/i386/avx512fp16-64-32-vecop-1.c
  13ee89c502731ad99e7d5dff6a882390  gcc/testsuite/gcc.target/i386/avx512fp16-64-32-vecop-2.c
  37c9515f817c225a3f852c3f47d8264b  gcc/testsuite/gcc.target/i386/avx512fp16-7.c
  a44636473e98bc4b55c8bd51133893da  gcc/testsuite/gcc.target/i386/avx512fp16-8.c
--- 71703,71709 ----
  6312c51a90aaed80d3886c7f43b7f1b8  gcc/testsuite/gcc.target/i386/avx512fp16-4.c
  101c08a4d969227fdb206ab705f485aa  gcc/testsuite/gcc.target/i386/avx512fp16-5.c
  9a702f9e241fa493d1108fc603bc1d8e  gcc/testsuite/gcc.target/i386/avx512fp16-6.c
! fd426c9406b92852b0b50d5258dbfec8  gcc/testsuite/gcc.target/i386/avx512fp16-64-32-vecop-1.c
  13ee89c502731ad99e7d5dff6a882390  gcc/testsuite/gcc.target/i386/avx512fp16-64-32-vecop-2.c
  37c9515f817c225a3f852c3f47d8264b  gcc/testsuite/gcc.target/i386/avx512fp16-7.c
  a44636473e98bc4b55c8bd51133893da  gcc/testsuite/gcc.target/i386/avx512fp16-8.c
*************** b9ed1e48c2076ab8bd9adfc96519f6d4  gcc/te
*** 67107,67113 ****
  262fe61d867c3bf99c20653180a2b0e0  gcc/testsuite/gcc.target/i386/avx512fp16-complex-constraints.c
  b087aa309dcb182d79cfcb79c9dd7901  gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c
  5803090f97de94af7dd3164c50bd1adc  gcc/testsuite/gcc.target/i386/avx512fp16-conjugation-1.c
! eae7a5773425eb384999034d4e03918d  gcc/testsuite/gcc.target/i386/avx512fp16-dest-false-dep-for-glc.c
  970bc47c225c13b0c28a2f329533ddb7  gcc/testsuite/gcc.target/i386/avx512fp16-floatvnhf.c
  ac477f1c32fad10fc7a0406189e98ac6  gcc/testsuite/gcc.target/i386/avx512fp16-fma-1.c
  834dadc5dea756bfe689d52ed2ec58a6  gcc/testsuite/gcc.target/i386/avx512fp16-helper.h
--- 71720,71726 ----
  262fe61d867c3bf99c20653180a2b0e0  gcc/testsuite/gcc.target/i386/avx512fp16-complex-constraints.c
  b087aa309dcb182d79cfcb79c9dd7901  gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c
  5803090f97de94af7dd3164c50bd1adc  gcc/testsuite/gcc.target/i386/avx512fp16-conjugation-1.c
! 62ba9a2c64517f9e64fd9cb6e220a7bc  gcc/testsuite/gcc.target/i386/avx512fp16-dest-false-dep-for-glc.c
  970bc47c225c13b0c28a2f329533ddb7  gcc/testsuite/gcc.target/i386/avx512fp16-floatvnhf.c
  ac477f1c32fad10fc7a0406189e98ac6  gcc/testsuite/gcc.target/i386/avx512fp16-fma-1.c
  834dadc5dea756bfe689d52ed2ec58a6  gcc/testsuite/gcc.target/i386/avx512fp16-helper.h
*************** c03a6fd4dae639987f2f4fd9293201c1  gcc/te
*** 67321,67327 ****
  6bbcebe17b0358483254a9deef8746b9  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtsh-1a.c
  e22965ad7f8ae66186f596cb545534c5  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtsh-1b.c
  5a4d455d11bcb915c5225b5e0ab45ce6  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefph-1a.c
! 4c9d451f855a68baae773b5a616589b1  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefph-1b.c
  245119bf0a8838235d99ccded98653b8  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefsh-1a.c
  893f3813fb89f59b802c9104f2599e8c  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefsh-1b.c
  abec174f2ad4aeb106fa898023f0c25d  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1a.c
--- 71934,71940 ----
  6bbcebe17b0358483254a9deef8746b9  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtsh-1a.c
  e22965ad7f8ae66186f596cb545534c5  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtsh-1b.c
  5a4d455d11bcb915c5225b5e0ab45ce6  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefph-1a.c
! 7d0e35d69ba82cec1eeb05dc952ecd82  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefph-1b.c
  245119bf0a8838235d99ccded98653b8  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefsh-1a.c
  893f3813fb89f59b802c9104f2599e8c  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefsh-1b.c
  abec174f2ad4aeb106fa898023f0c25d  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1a.c
*************** a2e2af8ff03c5796d335ffb9b6d5cc1c  gcc/te
*** 67332,67338 ****
  d3064bc8e32fbd4b222b12baf22ca2f0  gcc/testsuite/gcc.target/i386/avx512fp16-vsubph-1b.c
  3ceefff146ab36e49f465a71bb91897a  gcc/testsuite/gcc.target/i386/avx512fp16-vsubsh-1a.c
  a1f4b75339c19727d3758c22b23b84a4  gcc/testsuite/gcc.target/i386/avx512fp16-vsubsh-1b.c
! 138cb068fbcd58bbcd96b9dfb34da3af  gcc/testsuite/gcc.target/i386/avx512fp16-xorsign-1.c
  9124b923004bf790ed4da1d0c675d320  gcc/testsuite/gcc.target/i386/avx512fp16vl-builtin-sqrt-1.c
  5e4929aedf1814bce1f01dc3cbc59c66  gcc/testsuite/gcc.target/i386/avx512fp16vl-complex-broadcast-1.c
  9cdcf3ee0e93903fd6873cc07ff469e9  gcc/testsuite/gcc.target/i386/avx512fp16vl-conjugation-1.c
--- 71945,71951 ----
  d3064bc8e32fbd4b222b12baf22ca2f0  gcc/testsuite/gcc.target/i386/avx512fp16-vsubph-1b.c
  3ceefff146ab36e49f465a71bb91897a  gcc/testsuite/gcc.target/i386/avx512fp16-vsubsh-1a.c
  a1f4b75339c19727d3758c22b23b84a4  gcc/testsuite/gcc.target/i386/avx512fp16-vsubsh-1b.c
! fcf70bfc3c79dd61e55358d5bad50223  gcc/testsuite/gcc.target/i386/avx512fp16-xorsign-1.c
  9124b923004bf790ed4da1d0c675d320  gcc/testsuite/gcc.target/i386/avx512fp16vl-builtin-sqrt-1.c
  5e4929aedf1814bce1f01dc3cbc59c66  gcc/testsuite/gcc.target/i386/avx512fp16vl-complex-broadcast-1.c
  9cdcf3ee0e93903fd6873cc07ff469e9  gcc/testsuite/gcc.target/i386/avx512fp16vl-conjugation-1.c
*************** bd3b529925e98454f166219923e494f2  gcc/te
*** 67347,67355 ****
  4c8fe2c0f31819229e27d8797cd2496b  gcc/testsuite/gcc.target/i386/avx512fp16vl-typecast-1.c
  b46a427bb17a20b520a7db7ce4250c1b  gcc/testsuite/gcc.target/i386/avx512fp16vl-typecast-2.c
  668e017a3e6b9bff2a578d15fedc9030  gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1a.c
! f6ce795f99286ee69df3063791fbe9b4  gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1b.c
  47c7f79bcaeb11267d2a809293d9ae93  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcmpph-1a.c
! e548611fce880193d09e02357b7a71d9  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcmpph-1b.c
  78ad59fb4291984c765815bac8d15b10  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtdq2ph-1a.c
  7eda7b75b02475ecbb3bf828b4513c00  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtdq2ph-1b.c
  fd67ae5beec610a3518bdd0c9a4212d1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c
--- 71960,71968 ----
  4c8fe2c0f31819229e27d8797cd2496b  gcc/testsuite/gcc.target/i386/avx512fp16vl-typecast-1.c
  b46a427bb17a20b520a7db7ce4250c1b  gcc/testsuite/gcc.target/i386/avx512fp16vl-typecast-2.c
  668e017a3e6b9bff2a578d15fedc9030  gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1a.c
! 2574a54024be5d6ef518e2bae25cd6f6  gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1b.c
  47c7f79bcaeb11267d2a809293d9ae93  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcmpph-1a.c
! e548c5f165233a6b0f52bddfd00b604f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcmpph-1b.c
  78ad59fb4291984c765815bac8d15b10  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtdq2ph-1a.c
  7eda7b75b02475ecbb3bf828b4513c00  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtdq2ph-1b.c
  fd67ae5beec610a3518bdd0c9a4212d1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c
*************** ce915f9aa41b8c0ad0d5bfd50d48dce2  gcc/te
*** 67395,67401 ****
  eefc96e7b40bd13cadc405b15f10ad07  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtw2ph-1a.c
  9ef10cbc9797265ae13dbae561ad1676  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtw2ph-1b.c
  fff2a9cfd16fc5853b1107b9fbb4527c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vdivph-1a.c
! e4eae2e0c2c2641bc4a15e9b95341a64  gcc/testsuite/gcc.target/i386/avx512fp16vl-vdivph-1b.c
  0746bbc58449a87d9711475b0ef6a0ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c
  3a1da4c9373179778309ff3b777580a3  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1b.c
  1b2109245a774f87cb04912a57232f71  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c
--- 72008,72014 ----
  eefc96e7b40bd13cadc405b15f10ad07  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtw2ph-1a.c
  9ef10cbc9797265ae13dbae561ad1676  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtw2ph-1b.c
  fff2a9cfd16fc5853b1107b9fbb4527c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vdivph-1a.c
! 936e00e626512e1c797d60b896fb10ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vdivph-1b.c
  0746bbc58449a87d9711475b0ef6a0ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c
  3a1da4c9373179778309ff3b777580a3  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1b.c
  1b2109245a774f87cb04912a57232f71  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c
*************** efbed2b76f297f283a4e744a943eb080  gcc/te
*** 67417,67470 ****
  814bc54a52a34da228a1b13605fc56f0  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1a.c
  595b5846335c3c0a86b8db17e0f60f78  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1b.c
  1749cfb3b31eedd0e0f4abe9aff2cb6f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1a.c
! d2046fd45902cdaa7ca23e49ddc0285b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1b.c
  ef47275bb5b5e9cd3b674c4c46801a5f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetexpph-1a.c
! 82d2e6647d865c844ee18a1553dbb052  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetexpph-1b.c
  8bd67070a38740029cc6798571c0b6ec  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetmantph-1a.c
! dc7ff2e5992c3aefdd5040eac2493935  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetmantph-1b.c
  41b5c5a693e5246ffcaefcbb61347c03  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmaxph-1a.c
! 3046fbc25c463ae9a0f1b43d4fb12220  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmaxph-1b.c
  c508fa63b82d7e8485231005e838faab  gcc/testsuite/gcc.target/i386/avx512fp16vl-vminph-1a.c
! 29bcca23e13350cf45d2964f5b4e380c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vminph-1b.c
  553e723ff2415a9cdbc699fa31c7538e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1a.c
! e8bbbce134f15fb5531328b94c3449af  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1b.c
  ff4516d71292cd5af79c95c27649973b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1a.c
! a54e25a70fa265b1397011ea192faa27  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1b.c
  a19dadf2648d4aba0db44a3a6bc14483  gcc/testsuite/gcc.target/i386/avx512fp16vl-vreduceph-1a.c
! dae6573f8035eeb3a93b2872a35b7e8e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vreduceph-1b.c
  8bc4593197ca60bcd96f53f036241ec9  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrndscaleph-1a.c
! 951d1bdf3c262e4be3957c97a63c47c4  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrndscaleph-1b.c
  d9a2c270bf8fe66405b8f9c8501ad830  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c
! 175ef28a607e9ce5c9c08bf6df00839c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1b.c
  6d023fb1acf67f582c34ee1446e9fb84  gcc/testsuite/gcc.target/i386/avx512fp16vl-vscalefph-1a.c
! 9d4f7ac253518d01d5e29d6c50041dea  gcc/testsuite/gcc.target/i386/avx512fp16vl-vscalefph-1b.c
  7e73fe2e2df29207a028d2954f7ea930  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1a.c
! a31020a143f331b9ec34d4180148bd9e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1b.c
  09bb88db303e43f561ea2094ee199daa  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsubph-1a.c
! 45cc050ea550fe0bc7b9a0b73a4ad3e4  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsubph-1b.c
! bec6be257618e9cc911be966efb2ab8a  gcc/testsuite/gcc.target/i386/avx512fvl-vaes-1.c
  7ca8f53ddb06d28b1ffcae13894efb3e  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddhuq-1a.c
  eff58fd06e835dcfa36c08eb98e94ab7  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddhuq-1b.c
  ae1ccb7e2041f3482999d81701ee97ed  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddhuq-2.c
  44f5fa114a15245b56519092be1d7465  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-1a.c
  5a753e738033b0a079fb2f710c5fd40a  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-1b.c
  3b96fd792360e8ef04bfaf7109ce2873  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-2.c
! 3c3b16fd347899ace66a367d92875093  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dpd-1.c
! 182846f8342d6a2ee02f868f0f626b17  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dps-1.c
! 5bfb232687d735c6ebbf4308889bbd74  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qpd-1.c
! 9d3bd00a6cbcb0a0021b1512bcf2d9e4  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qps-1.c
! 8e1f5d000a201fa2dd6cb34abcfd397d  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dpd-1.c
! fe67fb594db1742ef745c10a0ea5b135  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dps-1.c
! f39db5cdf4e955a3ee5b94dd8fd17657  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qpd-1.c
! 341c83693092103e85cfae676ce8314c  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qps-1.c
! 0eea594db1c227b295e9cb7d1b6d6962  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c
! 489c874a292649faaa0689440ad13ff5  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c
! 0ddcba069eab5710be2d7a2c8d22e847  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c
! cc0b1ea3121b27adaefd2f7622112e9d  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c
! c7550dbb04a71bdfec68bb75eabad2ec  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c
! 6e5ed4c0fa8aca75b9711335a64f6de9  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c
! 0074178d72d8032efb700e05004cd863  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c
! 1736cd4966fae5871c23abc4e174d3c3  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c
  7a89da980943c10241c8fae92f56405f  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermb-1.c
  cddb99c63e0e76bfa9a96f8ad9706542  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermb-2.c
  22e777ee742eabb49ca9c4bf3f1ab383  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermi2b-1.c
--- 72030,72083 ----
  814bc54a52a34da228a1b13605fc56f0  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1a.c
  595b5846335c3c0a86b8db17e0f60f78  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1b.c
  1749cfb3b31eedd0e0f4abe9aff2cb6f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1a.c
! 33c3e06fb0746731f8072b54c08551fa  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1b.c
  ef47275bb5b5e9cd3b674c4c46801a5f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetexpph-1a.c
! 0bae68e74ad4f94f4ad5adf1402f8418  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetexpph-1b.c
  8bd67070a38740029cc6798571c0b6ec  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetmantph-1a.c
! edab8b1a84af22b7e06cc8a03d449cdf  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetmantph-1b.c
  41b5c5a693e5246ffcaefcbb61347c03  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmaxph-1a.c
! 144d71f745f870de3bed2f56253f5def  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmaxph-1b.c
  c508fa63b82d7e8485231005e838faab  gcc/testsuite/gcc.target/i386/avx512fp16vl-vminph-1a.c
! 2ac14e17c7d8bea08c38524d9ce767de  gcc/testsuite/gcc.target/i386/avx512fp16vl-vminph-1b.c
  553e723ff2415a9cdbc699fa31c7538e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1a.c
! c23f725b208d00b2a17b0eeff0f4e4e1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1b.c
  ff4516d71292cd5af79c95c27649973b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1a.c
! 73ea27999df3c8f3b4d3df583b0e4d8b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1b.c
  a19dadf2648d4aba0db44a3a6bc14483  gcc/testsuite/gcc.target/i386/avx512fp16vl-vreduceph-1a.c
! 874335942c5b3e9038faae6a630c32b8  gcc/testsuite/gcc.target/i386/avx512fp16vl-vreduceph-1b.c
  8bc4593197ca60bcd96f53f036241ec9  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrndscaleph-1a.c
! c4e22178ec6623c8299ad06eb75c68b0  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrndscaleph-1b.c
  d9a2c270bf8fe66405b8f9c8501ad830  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c
! a9b4f598a9d799ddfa6d58ecaa25e0ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1b.c
  6d023fb1acf67f582c34ee1446e9fb84  gcc/testsuite/gcc.target/i386/avx512fp16vl-vscalefph-1a.c
! a593f4f9d8ba870b0eed0981c3824f3b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vscalefph-1b.c
  7e73fe2e2df29207a028d2954f7ea930  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1a.c
! f79eb1ae00681f2da24450b180fb9d92  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1b.c
  09bb88db303e43f561ea2094ee199daa  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsubph-1a.c
! c02bc805f1179c259ec57d0a754f44e1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsubph-1b.c
! f5f3ab11681d173e7d210051686809ec  gcc/testsuite/gcc.target/i386/avx512fvl-vaes-1.c
  7ca8f53ddb06d28b1ffcae13894efb3e  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddhuq-1a.c
  eff58fd06e835dcfa36c08eb98e94ab7  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddhuq-1b.c
  ae1ccb7e2041f3482999d81701ee97ed  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddhuq-2.c
  44f5fa114a15245b56519092be1d7465  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-1a.c
  5a753e738033b0a079fb2f710c5fd40a  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-1b.c
  3b96fd792360e8ef04bfaf7109ce2873  gcc/testsuite/gcc.target/i386/avx512ifma-vpmaddluq-2.c
! 87408b6fabc03f9b2965a64d8dbbc931  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dpd-1.c
! 2da0410e86ccbdaf3fcdf035ac051664  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dps-1.c
! 2891868a7bcdf678e13efd22873998a4  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qpd-1.c
! 23f41b10a9b2a252bd764fbb22d29eab  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qps-1.c
! 2cee685055038a5a0a64826e29104467  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dpd-1.c
! 765e99f58774175dfe6250fe3c0dfba1  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dps-1.c
! 86f822a5835ad0c7c10eeade84e087e6  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qpd-1.c
! c9a39f3cfd5358c60301c6eee6957ef2  gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qps-1.c
! fc332beb7a8591457ab8e039ec91656d  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c
! 478f73de8561e1b72d68179e18f14db9  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c
! 9b435170c15a34059a1b2700101bf153  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c
! 04a6f5361fe6d138e5d970c90df1e995  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c
! cad69bdbd8e1a72db618258ded6972a1  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c
! ef73b77fa34f246ffc0e06ae16f1047c  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c
! 8272d2b574625d2bb486b4bbddd0a98e  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c
! a398ee1e6aa4eb29c087c2e5ab953f3a  gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c
  7a89da980943c10241c8fae92f56405f  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermb-1.c
  cddb99c63e0e76bfa9a96f8ad9706542  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermb-2.c
  22e777ee742eabb49ca9c4bf3f1ab383  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermi2b-1.c
*************** c75f41a84b0ff9e1454ea517888cf42e  gcc/te
*** 67473,67480 ****
  901b5f592de42b8641315e7a0e470c78  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermt2b-2.c
  da943fec8529ab4219ae92fa7701f4f3  gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c
  b3bb92860a7a7725c03afa6bd022047f  gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c
! 894c1afa27bde11c6d50e1f6fae905b8  gcc/testsuite/gcc.target/i386/avx512vbmi2-vpshld-1.c
! 1a47d56ff1d6271c07878c0fee5ba0e6  gcc/testsuite/gcc.target/i386/avx512vbmi2-vpshrd-1.c
  43535ad47619b634b3da66d4a6a4c11c  gcc/testsuite/gcc.target/i386/avx512vl-abs-copysign-1.c
  d2d79308516c8d8c17653303db1b5237  gcc/testsuite/gcc.target/i386/avx512vl-abs-copysign-2.c
  d54abcf534a735a2ad01ccab68350c63  gcc/testsuite/gcc.target/i386/avx512vl-add-sf-xmm-1.c
--- 72086,72093 ----
  901b5f592de42b8641315e7a0e470c78  gcc/testsuite/gcc.target/i386/avx512vbmi-vpermt2b-2.c
  da943fec8529ab4219ae92fa7701f4f3  gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c
  b3bb92860a7a7725c03afa6bd022047f  gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c
! a4b3a6875e0a9d77366e39458e9a6211  gcc/testsuite/gcc.target/i386/avx512vbmi2-vpshld-1.c
! ac9add0e0570d17b9d930eda3ae49791  gcc/testsuite/gcc.target/i386/avx512vbmi2-vpshrd-1.c
  43535ad47619b634b3da66d4a6a4c11c  gcc/testsuite/gcc.target/i386/avx512vl-abs-copysign-1.c
  d2d79308516c8d8c17653303db1b5237  gcc/testsuite/gcc.target/i386/avx512vl-abs-copysign-2.c
  d54abcf534a735a2ad01ccab68350c63  gcc/testsuite/gcc.target/i386/avx512vl-add-sf-xmm-1.c
*************** d1bdd43046d2a862a62096e884f2a148  gcc/te
*** 67491,67507 ****
  c6cc01bcba78b07acbc0c97f8ecffc30  gcc/testsuite/gcc.target/i386/avx512vl-andn-si-ymm-1.c
  660e32b26a158d938edc524a1d9fead4  gcc/testsuite/gcc.target/i386/avx512vl-blendv-1.c
  177293e898edfd6fd1acc72f09e22811  gcc/testsuite/gcc.target/i386/avx512vl-blendv-2.c
! 29066099d9f6b15b059200ec33043337  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-1.c
  bcc0041bf4882e8ffc439974df32bf6a  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-2.c
  fa2b0b2963dda19be4f2c7496960f9d1  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-3.c
  7ca815481d1a25c18f3e474b0ace8bca  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-4.c
! 0d6ea41fc2a073816b607e33beecee04  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-5.c
  205513778704d9cadedab6e62b5b5621  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-6.c
  99ab8f6b1890ccfcd14f1ea1cc6ca1c8  gcc/testsuite/gcc.target/i386/avx512vl-check.h
  0617dd4b8fef3764392d3723a75e2c8b  gcc/testsuite/gcc.target/i386/avx512vl-concatv2di-1.c
  aa1c65ae5d415bc961f9a1df5e0e7664  gcc/testsuite/gcc.target/i386/avx512vl-concatv2si-1.c
  cfe2aa1be3273634b71c46e44025ff10  gcc/testsuite/gcc.target/i386/avx512vl-concatv4si-1.c
! b078a1deb26e6acb3ae6aaf31f6e3da1  gcc/testsuite/gcc.target/i386/avx512vl-dest-false-dep-for-glc.c
  9c18b5a50845fa97a3fa72f280bdd73e  gcc/testsuite/gcc.target/i386/avx512vl-div-sf-xmm-1.c
  5a5bb900735bbe0f16a8a6c42b1fbdf4  gcc/testsuite/gcc.target/i386/avx512vl-div-sf-ymm-1.c
  3c980f1dc6e4e31f3657b9f4b21e12bf  gcc/testsuite/gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c
--- 72104,72121 ----
  c6cc01bcba78b07acbc0c97f8ecffc30  gcc/testsuite/gcc.target/i386/avx512vl-andn-si-ymm-1.c
  660e32b26a158d938edc524a1d9fead4  gcc/testsuite/gcc.target/i386/avx512vl-blendv-1.c
  177293e898edfd6fd1acc72f09e22811  gcc/testsuite/gcc.target/i386/avx512vl-blendv-2.c
! beaab312a023e59e3ac833e2e5b12cf7  gcc/testsuite/gcc.target/i386/avx512vl-blendv-3.c
! 58855938a6512763508e8bf8d2bd182e  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-1.c
  bcc0041bf4882e8ffc439974df32bf6a  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-2.c
  fa2b0b2963dda19be4f2c7496960f9d1  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-3.c
  7ca815481d1a25c18f3e474b0ace8bca  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-4.c
! c9f45f92f04fe2c786553ee2c04df202  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-5.c
  205513778704d9cadedab6e62b5b5621  gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-6.c
  99ab8f6b1890ccfcd14f1ea1cc6ca1c8  gcc/testsuite/gcc.target/i386/avx512vl-check.h
  0617dd4b8fef3764392d3723a75e2c8b  gcc/testsuite/gcc.target/i386/avx512vl-concatv2di-1.c
  aa1c65ae5d415bc961f9a1df5e0e7664  gcc/testsuite/gcc.target/i386/avx512vl-concatv2si-1.c
  cfe2aa1be3273634b71c46e44025ff10  gcc/testsuite/gcc.target/i386/avx512vl-concatv4si-1.c
! 6788a25423c898ac689e10dd7d5299f8  gcc/testsuite/gcc.target/i386/avx512vl-dest-false-dep-for-glc.c
  9c18b5a50845fa97a3fa72f280bdd73e  gcc/testsuite/gcc.target/i386/avx512vl-div-sf-xmm-1.c
  5a5bb900735bbe0f16a8a6c42b1fbdf4  gcc/testsuite/gcc.target/i386/avx512vl-div-sf-ymm-1.c
  3c980f1dc6e4e31f3657b9f4b21e12bf  gcc/testsuite/gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c
*************** c1fc8c403bea321e9edbec8f46fe2fd8  gcc/te
*** 67549,67576 ****
  283b4877d58ced6f0c220db178d854a5  gcc/testsuite/gcc.target/i386/avx512vl-pr100648.c
  94073157c7c18d465b0898342cfaf127  gcc/testsuite/gcc.target/i386/avx512vl-pr101472.c
  283543f4907a911dc1da7cea2581ece6  gcc/testsuite/gcc.target/i386/avx512vl-pr106721.c
  1ce70da2226efd6f3d5d92c101fb79d9  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c
  e3cc31b3308cdb56423451f2cd8c2a00  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c
  7cff0350d919ed5edc42e841b11e38f2  gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c
  0fe6ef0c597e472d3e4d732c54448a91  gcc/testsuite/gcc.target/i386/avx512vl-pr85832.c
  22c31bf03678131c3d0a583fba1ee269  gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c
  dd0303ef457dc2b0fdc13d8c6e3f9345  gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c
! 2f9574eab62f05e192ea2ec667f3169a  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c
! 39601a1f18d6f833823d29236463df8c  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-10.c
! eca8146b34153f093d3ae43d4ffec4ee  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c
! 90010aa28415b8ef8b837a85aeaf6256  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-12.c
! 47d67b7a934bfd1a79e1141deacdd525  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-13.c
! 6811e4896e4da5ef69f652fb2a3e7715  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-14.c
! b21314a51f62c382ba0199f1b8adf2bb  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-15.c
! 358b025054514a4ae1275fcceaa36667  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-16.c
! fc0518ef4725b34153f0e37bdcb0a2d3  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-2.c
! da252c14fc71905221513689897c1026  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c
! cc3ed6589d4b7dc894bcddb5723a20be  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-4.c
! 73410dddfff0383c686500f838991335  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-5.c
! 03455808cfb1c0b507621b77fee871ba  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-6.c
! 48216c7fa5105b8c80d52a41661ff0c8  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-7.c
! 433b8f377654ed9d9083111df5ded23a  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-8.c
! d83d1465cecd57a6282539266e56f304  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c
  a211ab10a3faac2cd055fdacc95d4e1d  gcc/testsuite/gcc.target/i386/avx512vl-pr88513-1.c
  06cabf563581814176556ba2a1b73501  gcc/testsuite/gcc.target/i386/avx512vl-pr88513-2.c
  3695b4f8bd527469e884b72d9a1b8f41  gcc/testsuite/gcc.target/i386/avx512vl-pr88513-3.c
--- 72163,72193 ----
  283b4877d58ced6f0c220db178d854a5  gcc/testsuite/gcc.target/i386/avx512vl-pr100648.c
  94073157c7c18d465b0898342cfaf127  gcc/testsuite/gcc.target/i386/avx512vl-pr101472.c
  283543f4907a911dc1da7cea2581ece6  gcc/testsuite/gcc.target/i386/avx512vl-pr106721.c
+ 1156c3947fee64640053c33ec3a1d627  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-1.c
+ de717f1cf1bd87731a52727c854e17f3  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-2.c
+ ff7d4b178317336c918bd3d476aa77a8  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-3.c
  1ce70da2226efd6f3d5d92c101fb79d9  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c
  e3cc31b3308cdb56423451f2cd8c2a00  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c
  7cff0350d919ed5edc42e841b11e38f2  gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c
  0fe6ef0c597e472d3e4d732c54448a91  gcc/testsuite/gcc.target/i386/avx512vl-pr85832.c
  22c31bf03678131c3d0a583fba1ee269  gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c
  dd0303ef457dc2b0fdc13d8c6e3f9345  gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c
! 30e7e4c7f248a8349d72262db59905b6  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c
! 3fe633dd660f3c6bd6c1ccc52b6ff856  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-10.c
! d295a2038bd58f73a24b4afff4544e6f  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c
! d1f193151528f40d623c2273371aad55  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-12.c
! 2ca825fdb3930c6f9ed8d40f899a290b  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-13.c
! 3866112e9e8bee0f5e6ffa80ea779ef4  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-14.c
! 6e479985cd5996bacb42b32c310a05d3  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-15.c
! ece7612847f71c4ce28bff637dc72994  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-16.c
! 794f450c979342770cf02858256de906  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-2.c
! 98caed71eec15644727965520faa59fd  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c
! a8f209562aa666e417771e92482b070b  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-4.c
! 1ec609de3b9001b235b50ad44a939180  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-5.c
! 08bf329f13554ad426fd152a3e8589b4  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-6.c
! bfc126ac65f87fd7c34aee5b72da64e6  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-7.c
! 7ff7d89cd3792725d143ffb30729241b  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-8.c
! b7a84ab3dd62d3cbb53acf2c4c116a82  gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c
  a211ab10a3faac2cd055fdacc95d4e1d  gcc/testsuite/gcc.target/i386/avx512vl-pr88513-1.c
  06cabf563581814176556ba2a1b73501  gcc/testsuite/gcc.target/i386/avx512vl-pr88513-2.c
  3695b4f8bd527469e884b72d9a1b8f41  gcc/testsuite/gcc.target/i386/avx512vl-pr88513-3.c
*************** a1130e7f1125407b6b6d30d7c4b95365  gcc/te
*** 67592,67597 ****
--- 72209,72215 ----
  653440f772c0c591ba73e65901da0239  gcc/testsuite/gcc.target/i386/avx512vl-pr95488-2.c
  616f945fddaa33d994cc18fe1ba4a02d  gcc/testsuite/gcc.target/i386/avx512vl-pr99321-1.c
  740d195d90879ded887268e753fa3b62  gcc/testsuite/gcc.target/i386/avx512vl-pr99321-2.c
+ 3f48961b852d42a6fc1067141e84727a  gcc/testsuite/gcc.target/i386/avx512vl-stv-rotatedi-1.c
  224ac9323dda6256b6cecaa257324229  gcc/testsuite/gcc.target/i386/avx512vl-sub-sf-xmm-1.c
  8f9702be88cd81a245f378c6c354fb8c  gcc/testsuite/gcc.target/i386/avx512vl-sub-sf-ymm-1.c
  eb60351b2f49a1b13a1a93145f192ab8  gcc/testsuite/gcc.target/i386/avx512vl-sub-si-xmm-1.c
*************** a7e85788730f7acc7e5174c636d29676  gcc/te
*** 67600,67605 ****
--- 72218,72224 ----
  2b0c748a58e54ffa4102710cc467b33b  gcc/testsuite/gcc.target/i386/avx512vl-vaddpd-2.c
  df4c1c2e223dab18c858a16ca0d5bb83  gcc/testsuite/gcc.target/i386/avx512vl-vaddps-1.c
  65598447cfa0c10897da2ffdf93e95e0  gcc/testsuite/gcc.target/i386/avx512vl-vaddps-2.c
+ ac2ee3be692597283247591937e44889  gcc/testsuite/gcc.target/i386/avx512vl-vaes-1.c
  79c3a64519a5650ef8325a1e7ae43f77  gcc/testsuite/gcc.target/i386/avx512vl-valignd-1.c
  2c099e2c99e2a3a8736f9a95748c0aa5  gcc/testsuite/gcc.target/i386/avx512vl-valignd-2.c
  4a892693a270119b5c7d5360e4e5cdc8  gcc/testsuite/gcc.target/i386/avx512vl-valignq-1.c
*************** a2c316e85cf1db765e9ee9a53ced388f  gcc/te
*** 67925,67938 ****
  0421f91a556804cea02c315ea567ddc6  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-2.c
  f58201ac16ad74264db1d9335b90a003  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuw-2.c
  3b93b5708b6a5857882fe8d951d1ac11  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpw-2.c
! 6ce48c94a513b552d1b96116cfb844aa  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressb-1.c
! 7c49b8a49de5164e07065965f8e780f7  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressb-2.c
  fad6dc416073968b83030debf528dee6  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressd-1.c
  381312b05c40ff011dea9c4dadc79c39  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressd-2.c
  75c4453c615ff0f774f7ac2dfa0dd511  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressq-1.c
  9f94af48b44ec189c8df7018063c2812  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressq-2.c
  aa31284688d2c92e92f7431c173b5e31  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressw-1.c
! 35a07708661ec67a03ca5f28a19fc2b1  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressw-2.c
  1dd51a1fcd20c49d0f062301e4b92963  gcc/testsuite/gcc.target/i386/avx512vl-vpconflictd-1.c
  49877147c87fe283d931254425e464a6  gcc/testsuite/gcc.target/i386/avx512vl-vpconflictq-1.c
  23e5e35b9153c13c9306578c1182292c  gcc/testsuite/gcc.target/i386/avx512vl-vpdpbusd-2.c
--- 72544,72557 ----
  0421f91a556804cea02c315ea567ddc6  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-2.c
  f58201ac16ad74264db1d9335b90a003  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuw-2.c
  3b93b5708b6a5857882fe8d951d1ac11  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpw-2.c
! c97ad6d1b940e8ea1986f952abf7fdf4  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressb-1.c
! fe84bbc707e2a970c5138a062253d914  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressb-2.c
  fad6dc416073968b83030debf528dee6  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressd-1.c
  381312b05c40ff011dea9c4dadc79c39  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressd-2.c
  75c4453c615ff0f774f7ac2dfa0dd511  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressq-1.c
  9f94af48b44ec189c8df7018063c2812  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressq-2.c
  aa31284688d2c92e92f7431c173b5e31  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressw-1.c
! 5cbbbc90d161345de055b80392772108  gcc/testsuite/gcc.target/i386/avx512vl-vpcompressw-2.c
  1dd51a1fcd20c49d0f062301e4b92963  gcc/testsuite/gcc.target/i386/avx512vl-vpconflictd-1.c
  49877147c87fe283d931254425e464a6  gcc/testsuite/gcc.target/i386/avx512vl-vpconflictq-1.c
  23e5e35b9153c13c9306578c1182292c  gcc/testsuite/gcc.target/i386/avx512vl-vpdpbusd-2.c
*************** c731125b56437bfaaf506e0456546f2c  gcc/te
*** 67981,67994 ****
  aff8112fc800f2ea591f176d875ad4e3  gcc/testsuite/gcc.target/i386/avx512vl-vpermt2q-2.c
  cf9b8f042e6da487a6f98b177d1fec51  gcc/testsuite/gcc.target/i386/avx512vl-vpermt2w-2.c
  195063913940aa7f7e13b4f1b2e73859  gcc/testsuite/gcc.target/i386/avx512vl-vpermw-2.c
! 69daecef9a4226f7917925ae2a4369db  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandb-1.c
! b3aa0bfd1e2971727c9cf09d2ef99f65  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandb-2.c
  bf71e9dee33b1f4728c028b43467d85a  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandd-1.c
  d6364e226f1ec48c58c33ed28c1d389f  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandd-2.c
  95c1551ffee52ec67be93fdd3a97a0dc  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandq-1.c
  50bde963f36c1218d670d4f1f5205496  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandq-2.c
! 50f2ea29b794b6a2ca8f8d54539fc803  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandw-1.c
! e794c0f338e8fba4d223312885f6cd06  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandw-2.c
  7281c7605e8c964d961b0c0656ad5934  gcc/testsuite/gcc.target/i386/avx512vl-vpinsr-1.c
  27b47a6ea32352f6789579c47c9e772d  gcc/testsuite/gcc.target/i386/avx512vl-vplzcntd-1.c
  2ea0a252b352759b6def813b265bd4b2  gcc/testsuite/gcc.target/i386/avx512vl-vplzcntq-1.c
--- 72600,72613 ----
  aff8112fc800f2ea591f176d875ad4e3  gcc/testsuite/gcc.target/i386/avx512vl-vpermt2q-2.c
  cf9b8f042e6da487a6f98b177d1fec51  gcc/testsuite/gcc.target/i386/avx512vl-vpermt2w-2.c
  195063913940aa7f7e13b4f1b2e73859  gcc/testsuite/gcc.target/i386/avx512vl-vpermw-2.c
! 8f258454447b412870eba167022a2642  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandb-1.c
! 2b594700050e76cb127ee2221ab77f75  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandb-2.c
  bf71e9dee33b1f4728c028b43467d85a  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandd-1.c
  d6364e226f1ec48c58c33ed28c1d389f  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandd-2.c
  95c1551ffee52ec67be93fdd3a97a0dc  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandq-1.c
  50bde963f36c1218d670d4f1f5205496  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandq-2.c
! 38475622f5a4faa4adfaf1d2e3bcf857  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandw-1.c
! 32c87b48919e3ee719eacda1cc937a9c  gcc/testsuite/gcc.target/i386/avx512vl-vpexpandw-2.c
  7281c7605e8c964d961b0c0656ad5934  gcc/testsuite/gcc.target/i386/avx512vl-vpinsr-1.c
  27b47a6ea32352f6789579c47c9e772d  gcc/testsuite/gcc.target/i386/avx512vl-vplzcntd-1.c
  2ea0a252b352759b6def813b265bd4b2  gcc/testsuite/gcc.target/i386/avx512vl-vplzcntq-1.c
*************** dba0ef049d0c455f2feca549def7640b  gcc/te
*** 68118,68137 ****
  454f1eb968b834db54f87f3f5608bac6  gcc/testsuite/gcc.target/i386/avx512vl-vprorvq-2.c
  9f5ee1e4a885ecd64cd03a40682cca4e  gcc/testsuite/gcc.target/i386/avx512vl-vpsadbw-1.c
  5379e870b6c01e5644c4140f884f1398  gcc/testsuite/gcc.target/i386/avx512vl-vpshld-1.c
! beaafd8511efcb8b216f78a48d83a376  gcc/testsuite/gcc.target/i386/avx512vl-vpshldd-2.c
! 0352f6f3fafd2f9340d7561aa63c71e0  gcc/testsuite/gcc.target/i386/avx512vl-vpshldq-2.c
! d9a995b7bf8c1dd2a12d96454b68c03a  gcc/testsuite/gcc.target/i386/avx512vl-vpshldv-1.c
! 5340a9a31b1df2017c5a192c72dbcf73  gcc/testsuite/gcc.target/i386/avx512vl-vpshldvd-2.c
! 3336b0f3e1b4a662d2952a1bb261bfa5  gcc/testsuite/gcc.target/i386/avx512vl-vpshldvq-2.c
! a2d7adff0d956d2f3fb7e4c8e394a83e  gcc/testsuite/gcc.target/i386/avx512vl-vpshldvw-2.c
  7d27d8d330e6bc224c31e326f501a91a  gcc/testsuite/gcc.target/i386/avx512vl-vpshrd-1.c
! 82b82975e175ac19b9eb345558902b6f  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdd-2.c
! 7881dde00e8ec21e53f9f3eabfd015a7  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdq-2.c
! 70d7d419fc202e7d7e75ba399f9effd6  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdv-1.c
! 746d48e4c19c37565af486b2bcff3e5b  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvd-2.c
! a523fd50a37ff8c66b0716af76dddd54  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvq-2.c
! 98037a23162692b776688c4d74e54167  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvw-2.c
! 976d6b50314e36d4b4acc6ba1ce294eb  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdw-2.c
  3270e24d628e81a6e683002f25edb28e  gcc/testsuite/gcc.target/i386/avx512vl-vpshufb-2.c
  0a4cd8a3780eec90e5147ad689d08f8d  gcc/testsuite/gcc.target/i386/avx512vl-vpshufb-3.c
  7c5dfa7c79d90ae66fac5e98971edebe  gcc/testsuite/gcc.target/i386/avx512vl-vpshufd-1.c
--- 72737,72756 ----
  454f1eb968b834db54f87f3f5608bac6  gcc/testsuite/gcc.target/i386/avx512vl-vprorvq-2.c
  9f5ee1e4a885ecd64cd03a40682cca4e  gcc/testsuite/gcc.target/i386/avx512vl-vpsadbw-1.c
  5379e870b6c01e5644c4140f884f1398  gcc/testsuite/gcc.target/i386/avx512vl-vpshld-1.c
! 14b809008deaa38fe0d38919bc0e70f1  gcc/testsuite/gcc.target/i386/avx512vl-vpshldd-2.c
! 32ca932998c37984dbde85243c56654a  gcc/testsuite/gcc.target/i386/avx512vl-vpshldq-2.c
! 90b24d0528a06f855de88cdc6f910e1b  gcc/testsuite/gcc.target/i386/avx512vl-vpshldv-1.c
! cdcffadfcf5dc0e2f2e94038e6e66cb8  gcc/testsuite/gcc.target/i386/avx512vl-vpshldvd-2.c
! b589748d39e07e26eed544bf54ae8838  gcc/testsuite/gcc.target/i386/avx512vl-vpshldvq-2.c
! d39a1b5c6cf4e8bbf9884f3cbadc54f5  gcc/testsuite/gcc.target/i386/avx512vl-vpshldvw-2.c
  7d27d8d330e6bc224c31e326f501a91a  gcc/testsuite/gcc.target/i386/avx512vl-vpshrd-1.c
! ec133dd80d3734183e1ecb4cb4777c66  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdd-2.c
! 1b59a949b8a6d1eda48903743a262872  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdq-2.c
! 5d35f64f78bd4a6bdacd3571f8fc8e39  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdv-1.c
! 9532e23938f0c0fcbc6b0b47dd11bdb8  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvd-2.c
! 098de5a399705a35d1971f9e65b6ad9a  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvq-2.c
! 524ce3113b3209af0fc796a9ba13e4d9  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvw-2.c
! 3bba2dd2d02939ee3b0d4a0693a36cbf  gcc/testsuite/gcc.target/i386/avx512vl-vpshrdw-2.c
  3270e24d628e81a6e683002f25edb28e  gcc/testsuite/gcc.target/i386/avx512vl-vpshufb-2.c
  0a4cd8a3780eec90e5147ad689d08f8d  gcc/testsuite/gcc.target/i386/avx512vl-vpshufb-3.c
  7c5dfa7c79d90ae66fac5e98971edebe  gcc/testsuite/gcc.target/i386/avx512vl-vpshufd-1.c
*************** e9d75195a4e82a0d5f10d21c69cf6f75  gcc/te
*** 68248,68260 ****
  f9ae5ae41999a69ebd7aca0971de55ff  gcc/testsuite/gcc.target/i386/avx512vl-vscalefpd-2.c
  0a5d206ac887d9c7161e89119a302524  gcc/testsuite/gcc.target/i386/avx512vl-vscalefps-1.c
  f8d54356211483b59097f77e93cee5e8  gcc/testsuite/gcc.target/i386/avx512vl-vscalefps-2.c
! e3448e176822a6cd48d3e447348c3736  gcc/testsuite/gcc.target/i386/avx512vl-vshuff32x4-1.c
  6a9a7822769b4e2b408bb4e2e92de238  gcc/testsuite/gcc.target/i386/avx512vl-vshuff32x4-2.c
! 4301b45ff906126aa07a45f88eaa872e  gcc/testsuite/gcc.target/i386/avx512vl-vshuff64x2-1.c
  1524c14ec354419ddd470c9b96873954  gcc/testsuite/gcc.target/i386/avx512vl-vshuff64x2-2.c
! c199f8174de5b915dacac3ca5cfb9ffe  gcc/testsuite/gcc.target/i386/avx512vl-vshufi32x4-1.c
  6abb15ab6b91af9b8540e2434c7e2856  gcc/testsuite/gcc.target/i386/avx512vl-vshufi32x4-2.c
! bc581f6e28eb04fe64da3b36d3ac6063  gcc/testsuite/gcc.target/i386/avx512vl-vshufi64x2-1.c
  72c022fe88754f80ddccd592a2b17d21  gcc/testsuite/gcc.target/i386/avx512vl-vshufi64x2-2.c
  34ed571690fe56d4ae4838fac5d4f5fe  gcc/testsuite/gcc.target/i386/avx512vl-vshufpd-1.c
  ed1bdc958ae6198a7fa3e15820f8d8a9  gcc/testsuite/gcc.target/i386/avx512vl-vshufpd-2.c
--- 72867,72879 ----
  f9ae5ae41999a69ebd7aca0971de55ff  gcc/testsuite/gcc.target/i386/avx512vl-vscalefpd-2.c
  0a5d206ac887d9c7161e89119a302524  gcc/testsuite/gcc.target/i386/avx512vl-vscalefps-1.c
  f8d54356211483b59097f77e93cee5e8  gcc/testsuite/gcc.target/i386/avx512vl-vscalefps-2.c
! 35ce9319652fff9c3db6a199b1923195  gcc/testsuite/gcc.target/i386/avx512vl-vshuff32x4-1.c
  6a9a7822769b4e2b408bb4e2e92de238  gcc/testsuite/gcc.target/i386/avx512vl-vshuff32x4-2.c
! f3a97c0380231ae7120c59c5df07e93f  gcc/testsuite/gcc.target/i386/avx512vl-vshuff64x2-1.c
  1524c14ec354419ddd470c9b96873954  gcc/testsuite/gcc.target/i386/avx512vl-vshuff64x2-2.c
! faa309c3f679b5a8b08d80e788cc2d00  gcc/testsuite/gcc.target/i386/avx512vl-vshufi32x4-1.c
  6abb15ab6b91af9b8540e2434c7e2856  gcc/testsuite/gcc.target/i386/avx512vl-vshufi32x4-2.c
! 0b52da6c9c401fffd9ffc01376d4ce02  gcc/testsuite/gcc.target/i386/avx512vl-vshufi64x2-1.c
  72c022fe88754f80ddccd592a2b17d21  gcc/testsuite/gcc.target/i386/avx512vl-vshufi64x2-2.c
  34ed571690fe56d4ae4838fac5d4f5fe  gcc/testsuite/gcc.target/i386/avx512vl-vshufpd-1.c
  ed1bdc958ae6198a7fa3e15820f8d8a9  gcc/testsuite/gcc.target/i386/avx512vl-vshufpd-2.c
*************** c292ba048c97e84fe04aa26984af35f1  gcc/te
*** 68280,68293 ****
  91c9b414d4e752a1bdfcd70fc683eb70  gcc/testsuite/gcc.target/i386/avx512vl-vxorps-2.c
  5efa324ccb9a0b17dddba57ef3d4832a  gcc/testsuite/gcc.target/i386/avx512vl-xor-si-xmm-1.c
  5dd65f3a93c30a9885fc551a4cad76a4  gcc/testsuite/gcc.target/i386/avx512vl-xor-si-ymm-1.c
! f0b797770a695bf8df1c84f9d1788052  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-1.c
! 6b99d925cfb1c3a73102340d54fa046f  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-b-2.c
  12caadcc614ce695a59fb81977248f92  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-d-2.c
  16de2ede7b14609816bb549d10fff2a3  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-q-2.c
! 2c71ba27ebf3918150b879849bdb162a  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-w-2.c
  e8b40df1b29caa7e7a5ad3533f175e18  gcc/testsuite/gcc.target/i386/avx512vlbw-pr82370.c
  3b56096e93a13615a8ca272bc3ed8e6c  gcc/testsuite/gcc.target/i386/avx512vlbw-pr85832.c
  b67b9c14f28f9a4e5c234829ea1ba329  gcc/testsuite/gcc.target/i386/avx512vlbw-pr94438.c
  a5154c35da99e437d07d50f9d09efde2  gcc/testsuite/gcc.target/i386/avx512vlfp16-11a.c
  9c6b6e093a081af180fd337112cf2708  gcc/testsuite/gcc.target/i386/avx512vlfp16-11b.c
  d54fd157e5b9989a9c4a4011c92a6b85  gcc/testsuite/gcc.target/i386/avx512vnnivl-builtin.c
--- 72899,72913 ----
  91c9b414d4e752a1bdfcd70fc683eb70  gcc/testsuite/gcc.target/i386/avx512vl-vxorps-2.c
  5efa324ccb9a0b17dddba57ef3d4832a  gcc/testsuite/gcc.target/i386/avx512vl-xor-si-xmm-1.c
  5dd65f3a93c30a9885fc551a4cad76a4  gcc/testsuite/gcc.target/i386/avx512vl-xor-si-ymm-1.c
! aa0b25ede746c605a77cb9d3e9120d05  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-1.c
! fb205e0be8fba9246cc83e41df27e2d7  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-b-2.c
  12caadcc614ce695a59fb81977248f92  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-d-2.c
  16de2ede7b14609816bb549d10fff2a3  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-q-2.c
! a6b046c83544292b7291932b990bbd8c  gcc/testsuite/gcc.target/i386/avx512vlbw-pr100267-w-2.c
  e8b40df1b29caa7e7a5ad3533f175e18  gcc/testsuite/gcc.target/i386/avx512vlbw-pr82370.c
  3b56096e93a13615a8ca272bc3ed8e6c  gcc/testsuite/gcc.target/i386/avx512vlbw-pr85832.c
  b67b9c14f28f9a4e5c234829ea1ba329  gcc/testsuite/gcc.target/i386/avx512vlbw-pr94438.c
+ e5d08d8fd0263c771031df0975bb13dd  gcc/testsuite/gcc.target/i386/avx512vlbw-reduce-op-1.c
  a5154c35da99e437d07d50f9d09efde2  gcc/testsuite/gcc.target/i386/avx512vlfp16-11a.c
  9c6b6e093a081af180fd337112cf2708  gcc/testsuite/gcc.target/i386/avx512vlfp16-11b.c
  d54fd157e5b9989a9c4a4011c92a6b85  gcc/testsuite/gcc.target/i386/avx512vnnivl-builtin.c
*************** bd110cc98a6c83e36f31c6c68e28123c  gcc/te
*** 68308,68313 ****
--- 72928,72940 ----
  96da42bfb9b55e417c89693514ae20a6  gcc/testsuite/gcc.target/i386/avxfp-2.c
  886ec1208d19dfac1038071807c2c23b  gcc/testsuite/gcc.target/i386/avxneconvert-1.c
  51a2ee7ea5f4c0b592af239653345942  gcc/testsuite/gcc.target/i386/avxvnni-builtin.c
+ 5480b1942b0810ee651f8ef449c04df2  gcc/testsuite/gcc.target/i386/avxvnniint16-1.c
+ 28ff6095daf554426152911c1b2ebb26  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwsud-2.c
+ 06aaf72104214cf78fcac2e4b999b459  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwsuds-2.c
+ fc8345bf38f57e092f1ab4e0bf32968e  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwusd-2.c
+ b20c30629ea4fe848f35ef3370c0cc0f  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwusds-2.c
+ b630886c3b900f6a43e9de810bb4af31  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwuud-2.c
+ ad3fa32444d440b5a3c0f49047e5be66  gcc/testsuite/gcc.target/i386/avxvnniint16-vpdpwuuds-2.c
  206e272a2b52f2dcded8941856eceb15  gcc/testsuite/gcc.target/i386/avxvnniint8-1.c
  9962104b5a5c9aaab63179604e9068d9  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbssd-2.c
  dbc1b41820399022ea74a49b480fd874  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbssds-2.c
*************** dbc1b41820399022ea74a49b480fd874  gcc/te
*** 68315,68321 ****
  406488c79902ceb0e213d598ca18d72c  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbsuds-2.c
  1b44a60e1ea9e44cc57cc2bb75aacd4c  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbuud-2.c
  3f680c0ac1b6f6a8b31e44de8ac7d07c  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbuuds-2.c
! b61c5e539adad2b0774aed51d71d93f8  gcc/testsuite/gcc.target/i386/bf16_short_warn.c
  4eafaac84ebae56fbab9cf9ce58b0e31  gcc/testsuite/gcc.target/i386/bfloat16-1.c
  6f9ec5819fa880d6a423fcc3fa67af2f  gcc/testsuite/gcc.target/i386/bitfield1.c
  674019fac54e0c27947386666000a1c8  gcc/testsuite/gcc.target/i386/bitfield2.c
--- 72942,72948 ----
  406488c79902ceb0e213d598ca18d72c  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbsuds-2.c
  1b44a60e1ea9e44cc57cc2bb75aacd4c  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbuud-2.c
  3f680c0ac1b6f6a8b31e44de8ac7d07c  gcc/testsuite/gcc.target/i386/avxvnniint8-vpdpbuuds-2.c
! b581c7e9554c3e76b8ca8481c7c36168  gcc/testsuite/gcc.target/i386/bf16_short_warn.c
  4eafaac84ebae56fbab9cf9ce58b0e31  gcc/testsuite/gcc.target/i386/bfloat16-1.c
  6f9ec5819fa880d6a423fcc3fa67af2f  gcc/testsuite/gcc.target/i386/bitfield1.c
  674019fac54e0c27947386666000a1c8  gcc/testsuite/gcc.target/i386/bitfield2.c
*************** f453ea0129a9fcdd06a9ec24524c1cb9  gcc/te
*** 68326,68331 ****
--- 72953,72959 ----
  e1228efcdb6bf353fa7c28bd12b9b98c  gcc/testsuite/gcc.target/i386/bitwise_mask_op-3.c
  be2f67968aaa0963cbb0968b7acbd1d6  gcc/testsuite/gcc.target/i386/blendv-1.c
  b12d3a3a3f5688f6e3fbce7f50575ff0  gcc/testsuite/gcc.target/i386/blendv-2.c
+ 1c58ca4f3058a5166d3253b494a9587f  gcc/testsuite/gcc.target/i386/blendv-3.c
  d48291e93124a5754c399a0d42b8b4b2  gcc/testsuite/gcc.target/i386/bmi-1.c
  61ff83566b9a04f15ec25ca39e4f2165  gcc/testsuite/gcc.target/i386/bmi-2.c
  ce48de8f7f303fa84891bd7841005fb1  gcc/testsuite/gcc.target/i386/bmi-3.c
*************** eb6d296fc055f71af8d6286a76275c08  gcc/te
*** 68389,68394 ****
--- 73017,73024 ----
  c7ce604b365a1dabeac828385fadac82  gcc/testsuite/gcc.target/i386/bmi2-pext32-1a.c
  07f0339fdff4b3fe5bfd2ef2568cf1ff  gcc/testsuite/gcc.target/i386/bmi2-pext64-1.c
  80e1b157bf4698a4c063a051d260de86  gcc/testsuite/gcc.target/i386/bmi2-pext64-1a.c
+ 2a224509096d4707814ee1803ac0587b  gcc/testsuite/gcc.target/i386/bmi2-pr112518.c
+ 16c0fe6e9e87d680c03e01d692eca239  gcc/testsuite/gcc.target/i386/bmi2-pr112526.c
  b3c8283dbd8e5f9b716e300034584eb1  gcc/testsuite/gcc.target/i386/bmi2-rorx32-1.c
  43e2ea585c6afa59c6fc24b1d5778b5f  gcc/testsuite/gcc.target/i386/bmi2-rorx32-1a.c
  715c6fdea5af863f17366b07b0976147  gcc/testsuite/gcc.target/i386/bmi2-rorx64-1.c
*************** a4410c640e49d7c3d27ec7afdf0d190e  gcc/te
*** 68450,68464 ****
  8d4bc4b13691198ea5a326facb061445  gcc/testsuite/gcc.target/i386/cet-label.c
  671f52a1fab49e5e1c343d299a944c30  gcc/testsuite/gcc.target/i386/cet-notrack-1a.c
  fff9edf460aa6cf22d4c62ce8fa4e869  gcc/testsuite/gcc.target/i386/cet-notrack-1b.c
! 2e113cee01c6c8885b2528e679a87906  gcc/testsuite/gcc.target/i386/cet-notrack-2a.c
! e2f92fc61b085e4497461eff83299ca3  gcc/testsuite/gcc.target/i386/cet-notrack-2b.c
  952021d619f2d303a2b0e49db7c8ff04  gcc/testsuite/gcc.target/i386/cet-notrack-3.c
  5c49d05a89027d834db9e8a1a3fcdb75  gcc/testsuite/gcc.target/i386/cet-notrack-4a.c
  23e59cfc2a2ff42cf3c52d39115e995a  gcc/testsuite/gcc.target/i386/cet-notrack-4b.c
  a79324fe15faea253fa7ef9290c4afe3  gcc/testsuite/gcc.target/i386/cet-notrack-5a.c
! 661572a49be971a917933ca223fa5ec5  gcc/testsuite/gcc.target/i386/cet-notrack-5b.c
! 6cc33f7183c2ffe0f20e2fa470b4e950  gcc/testsuite/gcc.target/i386/cet-notrack-6a.c
! fee41db997ba7115adf94b1d67611144  gcc/testsuite/gcc.target/i386/cet-notrack-6b.c
  f46cdc03f831aa997cbc8fa392d93334  gcc/testsuite/gcc.target/i386/cet-notrack-7.c
  dfd6d048c4cc790cbf85d5080d1b5a6e  gcc/testsuite/gcc.target/i386/cet-notrack-icf-1.c
  e420c76b5d51167be532aea06e242b7d  gcc/testsuite/gcc.target/i386/cet-notrack-icf-2.c
--- 73080,73094 ----
  8d4bc4b13691198ea5a326facb061445  gcc/testsuite/gcc.target/i386/cet-label.c
  671f52a1fab49e5e1c343d299a944c30  gcc/testsuite/gcc.target/i386/cet-notrack-1a.c
  fff9edf460aa6cf22d4c62ce8fa4e869  gcc/testsuite/gcc.target/i386/cet-notrack-1b.c
! 846c9f0e47d2886a4399c6cb5c4c674b  gcc/testsuite/gcc.target/i386/cet-notrack-2a.c
! db08cfbf47ebe20453aeda4d4030fa97  gcc/testsuite/gcc.target/i386/cet-notrack-2b.c
  952021d619f2d303a2b0e49db7c8ff04  gcc/testsuite/gcc.target/i386/cet-notrack-3.c
  5c49d05a89027d834db9e8a1a3fcdb75  gcc/testsuite/gcc.target/i386/cet-notrack-4a.c
  23e59cfc2a2ff42cf3c52d39115e995a  gcc/testsuite/gcc.target/i386/cet-notrack-4b.c
  a79324fe15faea253fa7ef9290c4afe3  gcc/testsuite/gcc.target/i386/cet-notrack-5a.c
! 271361383dbe0e0ee8fe54cc33ff4551  gcc/testsuite/gcc.target/i386/cet-notrack-5b.c
! c54a29e5a62976541ff3c60b4bb6090a  gcc/testsuite/gcc.target/i386/cet-notrack-6a.c
! 48a8c684edab13364a524fdc73e4ea8a  gcc/testsuite/gcc.target/i386/cet-notrack-6b.c
  f46cdc03f831aa997cbc8fa392d93334  gcc/testsuite/gcc.target/i386/cet-notrack-7.c
  dfd6d048c4cc790cbf85d5080d1b5a6e  gcc/testsuite/gcc.target/i386/cet-notrack-icf-1.c
  e420c76b5d51167be532aea06e242b7d  gcc/testsuite/gcc.target/i386/cet-notrack-icf-2.c
*************** b20d49e3df7ecba263d6a023f199461f  gcc/te
*** 68482,68487 ****
--- 73112,73118 ----
  77f13ccc769fbeb31556af0dea458693  gcc/testsuite/gcc.target/i386/cf_check-3.c
  5c3b7040795451a42f588086b955b02d  gcc/testsuite/gcc.target/i386/cf_check-4.c
  365b20e670ddcffaf52fe6a4f718095f  gcc/testsuite/gcc.target/i386/cf_check-5.c
+ e3bc6bdf24f38e69ec436864405bc65d  gcc/testsuite/gcc.target/i386/cf_check-6.c
  d236bc684017e128d2809e943a21a577  gcc/testsuite/gcc.target/i386/cldemote-1.c
  993cba0e31e78353b3247fbc2d6ab5e5  gcc/testsuite/gcc.target/i386/cleanup-1.c
  661baae059c4a949fc8987d711d9be61  gcc/testsuite/gcc.target/i386/cleanup-2.c
*************** d236bc684017e128d2809e943a21a577  gcc/te
*** 68489,68500 ****
  d4153e1bcf8bc5c311eaf09c93c16d08  gcc/testsuite/gcc.target/i386/clobbers.c
  3d40f7699a7e2394a57ca6dce12de1c2  gcc/testsuite/gcc.target/i386/clwb-1.c
  c4aea5211e55d55e35576a08520c127a  gcc/testsuite/gcc.target/i386/clzero.c
  538ab6e8a06c514c724312c46aa4c439  gcc/testsuite/gcc.target/i386/cmov1.c
  f79e1b7782293fd20dff7bc711017061  gcc/testsuite/gcc.target/i386/cmov2.c
  7883df7ea3d35db7f224c99c7a13548e  gcc/testsuite/gcc.target/i386/cmov3.c
  6ad79381e3d28784a59b6568a64a4cf1  gcc/testsuite/gcc.target/i386/cmov4.c
  bcb4166cdef6b56e89b654dc4cb83a03  gcc/testsuite/gcc.target/i386/cmov5.c
! 51cc94a54257c3dac176a77838614f58  gcc/testsuite/gcc.target/i386/cmov6.c
  9f954feff3ae35b2879ea55901eae8a4  gcc/testsuite/gcc.target/i386/cmov7.c
  f20d8e2e048a66edc93c5638ce3cd2d9  gcc/testsuite/gcc.target/i386/cmov8.c
  000f630353ad4e662a8123ff07c183c0  gcc/testsuite/gcc.target/i386/cmov9.c
--- 73120,73134 ----
  d4153e1bcf8bc5c311eaf09c93c16d08  gcc/testsuite/gcc.target/i386/clobbers.c
  3d40f7699a7e2394a57ca6dce12de1c2  gcc/testsuite/gcc.target/i386/clwb-1.c
  c4aea5211e55d55e35576a08520c127a  gcc/testsuite/gcc.target/i386/clzero.c
+ 14ea70be1043a4ca70370089d18c6a7a  gcc/testsuite/gcc.target/i386/cmc-1.c
  538ab6e8a06c514c724312c46aa4c439  gcc/testsuite/gcc.target/i386/cmov1.c
+ fd0466945d68b3ee20c00b8032326680  gcc/testsuite/gcc.target/i386/cmov10.c
+ df17ff93ab67a6d01ce2486635e9755d  gcc/testsuite/gcc.target/i386/cmov11.c
  f79e1b7782293fd20dff7bc711017061  gcc/testsuite/gcc.target/i386/cmov2.c
  7883df7ea3d35db7f224c99c7a13548e  gcc/testsuite/gcc.target/i386/cmov3.c
  6ad79381e3d28784a59b6568a64a4cf1  gcc/testsuite/gcc.target/i386/cmov4.c
  bcb4166cdef6b56e89b654dc4cb83a03  gcc/testsuite/gcc.target/i386/cmov5.c
! cac2b9b7f53564bb7d46f6d27ace3c37  gcc/testsuite/gcc.target/i386/cmov6.c
  9f954feff3ae35b2879ea55901eae8a4  gcc/testsuite/gcc.target/i386/cmov7.c
  f20d8e2e048a66edc93c5638ce3cd2d9  gcc/testsuite/gcc.target/i386/cmov8.c
  000f630353ad4e662a8123ff07c183c0  gcc/testsuite/gcc.target/i386/cmov9.c
*************** ce70c4a119d14c06b2fe42a33e116033  gcc/te
*** 68578,68583 ****
--- 73212,73218 ----
  1ec829505141734f1abf4d2eb0a16629  gcc/testsuite/gcc.target/i386/crc32-5.c
  39663510ffe6121924493586558913c9  gcc/testsuite/gcc.target/i386/crc32-6.c
  e69b1c1cbd30b748e8f1a4ca9aebf536  gcc/testsuite/gcc.target/i386/crc32-7.c
+ 6cdf79fe7ef418c69155aa2354d48d9f  gcc/testsuite/gcc.target/i386/ctzll-1.c
  c8a0091af04c84c4c994bf5df34e424b  gcc/testsuite/gcc.target/i386/cvt-1.c
  5db7d4cef9479b58ccb87b9116809892  gcc/testsuite/gcc.target/i386/cvt-2.c
  9328f3eb46f550a80d11cc22163e9e4e  gcc/testsuite/gcc.target/i386/cvt-3.c
*************** e0d22ed73421320d7f3bb70305094f77  gcc/te
*** 68605,68612 ****
  f71b6a7495b0645d1ecb8db1b2f1958b  gcc/testsuite/gcc.target/i386/enqcmds.c
  38e6b3fda33a09c739a549f0b0c62cf2  gcc/testsuite/gcc.target/i386/excess-precision-1.c
  1074f8ea1a1217c0ad0e9b4f254d3bfd  gcc/testsuite/gcc.target/i386/excess-precision-10.c
! 0ea8a219394ab895453cd722a1361eff  gcc/testsuite/gcc.target/i386/excess-precision-11.c
! f7d01e998f70eb80188d51ba570690e2  gcc/testsuite/gcc.target/i386/excess-precision-12.c
  9aec2858d7d8e4a0b46251f74b74be90  gcc/testsuite/gcc.target/i386/excess-precision-2.c
  67ab49a3410a627e09fd6ff969d84637  gcc/testsuite/gcc.target/i386/excess-precision-3.c
  d32dfb8b0b8944719e8830b24eea1a9b  gcc/testsuite/gcc.target/i386/excess-precision-4.c
--- 73240,73247 ----
  f71b6a7495b0645d1ecb8db1b2f1958b  gcc/testsuite/gcc.target/i386/enqcmds.c
  38e6b3fda33a09c739a549f0b0c62cf2  gcc/testsuite/gcc.target/i386/excess-precision-1.c
  1074f8ea1a1217c0ad0e9b4f254d3bfd  gcc/testsuite/gcc.target/i386/excess-precision-10.c
! 01a277c71b6711426655672f406de87e  gcc/testsuite/gcc.target/i386/excess-precision-11.c
! 73330d2ae88d97e297aa509d1434c88b  gcc/testsuite/gcc.target/i386/excess-precision-12.c
  9aec2858d7d8e4a0b46251f74b74be90  gcc/testsuite/gcc.target/i386/excess-precision-2.c
  67ab49a3410a627e09fd6ff969d84637  gcc/testsuite/gcc.target/i386/excess-precision-3.c
  d32dfb8b0b8944719e8830b24eea1a9b  gcc/testsuite/gcc.target/i386/excess-precision-4.c
*************** dbf3cc9b53b5e2d78a16330cbb9137e5  gcc/te
*** 68637,68642 ****
--- 73272,73280 ----
  48b7c3a611d7e2361c0d7fe315d26972  gcc/testsuite/gcc.target/i386/fentryname1.c
  25e6a100b24cebd0390edc44a4b95b46  gcc/testsuite/gcc.target/i386/fentryname2.c
  e929ba2759562dca3c31e9c489d9b6c7  gcc/testsuite/gcc.target/i386/fentryname3.c
+ a62be9915528ee3d1da21515d09cbe48  gcc/testsuite/gcc.target/i386/ffsll-1.c
+ 660248d15f2531361adec4be67114071  gcc/testsuite/gcc.target/i386/fhardened-1.c
+ 5aa4af2da2069e7299930ba358943744  gcc/testsuite/gcc.target/i386/fhardened-2.c
  bd55fbb60894cd429f7fc93df2f43fee  gcc/testsuite/gcc.target/i386/float128-1.c
  706567a3c78ce7fec9f91ce88f6100bd  gcc/testsuite/gcc.target/i386/float128-2.c
  02d798a42a24e851bb36577bb0e02d26  gcc/testsuite/gcc.target/i386/float128-3.c
*************** b52e5916ef9d3f89d0d8f84bc0d0e6b7  gcc/te
*** 68646,68652 ****
  153020147bfa9790bffcd9ddd2a47652  gcc/testsuite/gcc.target/i386/float16-4b.c
  865ba344a8422f876b53f19b67af2432  gcc/testsuite/gcc.target/i386/float16-5.c
  d26033b8132dee10b43656238b9181fa  gcc/testsuite/gcc.target/i386/float16-6.c
! 19e328f2a9fa3b07a854e35aff90c7ce  gcc/testsuite/gcc.target/i386/float16-7.c
  0a1a3539e0c385c56d2e79530e32ab69  gcc/testsuite/gcc.target/i386/fma-256-fmaddXX.c
  29a04ab3729933ba7af8c96d60044336  gcc/testsuite/gcc.target/i386/fma-256-fmaddsubXX.c
  0b0438d9da61899f597dfca4882dbb72  gcc/testsuite/gcc.target/i386/fma-256-fmsubXX.c
--- 73284,73291 ----
  153020147bfa9790bffcd9ddd2a47652  gcc/testsuite/gcc.target/i386/float16-4b.c
  865ba344a8422f876b53f19b67af2432  gcc/testsuite/gcc.target/i386/float16-5.c
  d26033b8132dee10b43656238b9181fa  gcc/testsuite/gcc.target/i386/float16-6.c
! aae38c36bde8a6fdb7bc979b0164a648  gcc/testsuite/gcc.target/i386/float16-7.c
! 4e53ee4d5c0045339d8fa7dba19fda65  gcc/testsuite/gcc.target/i386/float16-8.c
  0a1a3539e0c385c56d2e79530e32ab69  gcc/testsuite/gcc.target/i386/fma-256-fmaddXX.c
  29a04ab3729933ba7af8c96d60044336  gcc/testsuite/gcc.target/i386/fma-256-fmaddsubXX.c
  0b0438d9da61899f597dfca4882dbb72  gcc/testsuite/gcc.target/i386/fma-256-fmsubXX.c
*************** c1320fd604803bc04257c984f1e3ba77  gcc/te
*** 68739,68745 ****
  3dd864a351a6115db6a5b2ea1ee16ece  gcc/testsuite/gcc.target/i386/funcspec-3.c
  5af0527c599bf95f77628d48b1beb0ec  gcc/testsuite/gcc.target/i386/funcspec-4.c
  7568c1249431aafb7f8e2610a1e4a35e  gcc/testsuite/gcc.target/i386/funcspec-5.c
! d8d5af151fe446959eec33cf754947f6  gcc/testsuite/gcc.target/i386/funcspec-56.inc
  6886186deb869f2b04be36492c05b8aa  gcc/testsuite/gcc.target/i386/funcspec-6.c
  35655de5c9348f2a36254312a8d17908  gcc/testsuite/gcc.target/i386/funcspec-7.c
  0ba9f1b7368ea580cabab541b451aea8  gcc/testsuite/gcc.target/i386/funcspec-8.c
--- 73378,73384 ----
  3dd864a351a6115db6a5b2ea1ee16ece  gcc/testsuite/gcc.target/i386/funcspec-3.c
  5af0527c599bf95f77628d48b1beb0ec  gcc/testsuite/gcc.target/i386/funcspec-4.c
  7568c1249431aafb7f8e2610a1e4a35e  gcc/testsuite/gcc.target/i386/funcspec-5.c
! 432dd2d642e36633f7c3d119c61bf951  gcc/testsuite/gcc.target/i386/funcspec-56.inc
  6886186deb869f2b04be36492c05b8aa  gcc/testsuite/gcc.target/i386/funcspec-6.c
  35655de5c9348f2a36254312a8d17908  gcc/testsuite/gcc.target/i386/funcspec-7.c
  0ba9f1b7368ea580cabab541b451aea8  gcc/testsuite/gcc.target/i386/funcspec-8.c
*************** d95f56a3f95ba78c3fdb5f418f8d953a  gcc/te
*** 68789,68796 ****
  c937938a0a49e70d699ee5ef70d33cb0  gcc/testsuite/gcc.target/i386/hle-xor-acq-1.c
  7aef940035776cbf7ecabc540f63e33e  gcc/testsuite/gcc.target/i386/hle-xor-rel-1.c
  6bb730f0122ef83efe1593372db950e5  gcc/testsuite/gcc.target/i386/hreset-1.c
! 70e796450f5dc751de1615eee89b6415  gcc/testsuite/gcc.target/i386/i386.exp
! 1da955e054415579b90399c8776c88a9  gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp
  824179ec90e1e4fdb872aed133f8d523  gcc/testsuite/gcc.target/i386/iamcu/args.h
  8c17efb1ee1c990d7e1a55e4f347a4b2  gcc/testsuite/gcc.target/i386/iamcu/asm-support.S
  a77c8e89ec538edb98eb4ac96da0db61  gcc/testsuite/gcc.target/i386/iamcu/defines.h
--- 73428,73435 ----
  c937938a0a49e70d699ee5ef70d33cb0  gcc/testsuite/gcc.target/i386/hle-xor-acq-1.c
  7aef940035776cbf7ecabc540f63e33e  gcc/testsuite/gcc.target/i386/hle-xor-rel-1.c
  6bb730f0122ef83efe1593372db950e5  gcc/testsuite/gcc.target/i386/hreset-1.c
! 933757fe378e5ef22a413b3aaaeb1484  gcc/testsuite/gcc.target/i386/i386.exp
! 035fbeb3af328d12fa2675555dc7dfd4  gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp
  824179ec90e1e4fdb872aed133f8d523  gcc/testsuite/gcc.target/i386/iamcu/args.h
  8c17efb1ee1c990d7e1a55e4f347a4b2  gcc/testsuite/gcc.target/i386/iamcu/asm-support.S
  a77c8e89ec538edb98eb4ac96da0db61  gcc/testsuite/gcc.target/i386/iamcu/defines.h
*************** a09ada0e82af6f6e6522d77d6b3e549d  gcc/te
*** 68880,68886 ****
--- 73519,73530 ----
  2589f31cac8d58723b7156ade58d680a  gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c
  ee5ee3c3feb8c1952691f98991ee7be3  gcc/testsuite/gcc.target/i386/indjmp-1.c
  aa8a4b5daac0c21a379120ce3ab4e865  gcc/testsuite/gcc.target/i386/inline-mcpy.c
+ be5127d6a8d38fddecd420f6a20dcfc8  gcc/testsuite/gcc.target/i386/inline_attr_arch.c
  6bbc5e1b00a93a791e4215af0c1c561e  gcc/testsuite/gcc.target/i386/inline_error.c
+ 8f4f3d097358480cbec41138b2c3de61  gcc/testsuite/gcc.target/i386/inline_target_clones.c
+ f2c8e3dbffae8c41978aa596744c6d83  gcc/testsuite/gcc.target/i386/insvdi_lowpart-1.c
+ 6c402e08a3e5a591a04271bd0b7922f5  gcc/testsuite/gcc.target/i386/insvti_highpart-1.c
+ 3d82df92d96a80ecaa4a6c68ba620f75  gcc/testsuite/gcc.target/i386/insvti_lowpart-1.c
  e9c3d3c97474356da96a1fc22eb4227d  gcc/testsuite/gcc.target/i386/interrupt-1.c
  b8833946f76f120528a455a8a038099f  gcc/testsuite/gcc.target/i386/interrupt-10.c
  4133b05dd173ebdf704d2fd2b9ca3bc0  gcc/testsuite/gcc.target/i386/interrupt-11.c
*************** c3866e83ca6d52936ae37bf8ace61f83  gcc/te
*** 68929,68934 ****
--- 73573,73580 ----
  a797b5dc37751d3c42f9a52c27599321  gcc/testsuite/gcc.target/i386/intrinsics_opt-2.c
  335a0460d1bb3f99cd8c777b8e2c920c  gcc/testsuite/gcc.target/i386/intrinsics_opt-3.c
  864d97e8d87cc272bd81d8d07a4a1ee9  gcc/testsuite/gcc.target/i386/intrinsics_opt-4.c
+ fbdba1fbe5951ef01ceef4e4282d1f1a  gcc/testsuite/gcc.target/i386/invariant-ternlog-1.c
+ 731350885cf7d7d928a7dadf53e9e871  gcc/testsuite/gcc.target/i386/invariant-ternlog-2.c
  5fb0715bbf93baf839d87f35d1098bc4  gcc/testsuite/gcc.target/i386/invsize-1.c
  c2b55c9abe8a89d3101643e6567b5385  gcc/testsuite/gcc.target/i386/invsize-2.c
  9b5a4e202afc51d784f918d816a016a1  gcc/testsuite/gcc.target/i386/invsize-3.c
*************** c710032b30fa0c6872f1182e50284506  gcc/te
*** 68992,69000 ****
--- 73638,73649 ----
  09306f8b81d2fc818b477672b9f4d2df  gcc/testsuite/gcc.target/i386/l_fma_run_float_4.c
  8a3929ac8523c9f39f24b30fb4e518b3  gcc/testsuite/gcc.target/i386/l_fma_run_float_5.c
  d2234ab09253f045697088ae34493c42  gcc/testsuite/gcc.target/i386/l_fma_run_float_6.c
+ 9d1be320d5d4fe8ff995e38d833e3a2e  gcc/testsuite/gcc.target/i386/large-data.c
  5a3d613b241b3e2c5bec4225d8e6060a  gcc/testsuite/gcc.target/i386/large-frame.c
  4a38b7116c2a109e1be6a1dc98e10a3e  gcc/testsuite/gcc.target/i386/large-size-array-3.c
+ 0b8a2da369539507851e8622ecfe9930  gcc/testsuite/gcc.target/i386/lea-2.c
  770c226bef6f53eea20210a705e96ef4  gcc/testsuite/gcc.target/i386/lea.c
+ 3e916468dde4fcc2483713703f478fcb  gcc/testsuite/gcc.target/i386/libcall-1.c
  b7a45b4fc6c8c2589a7335cf26c2170c  gcc/testsuite/gcc.target/i386/local.c
  29691bdd3abdb40bd26e3372dd2a9731  gcc/testsuite/gcc.target/i386/long-double-128-1.c
  59e87390ae046ed61753d1c6c7c847c2  gcc/testsuite/gcc.target/i386/long-double-128-2.c
*************** a697ff9e2f8fc0bffc90007a1118893e  gcc/te
*** 69053,69066 ****
  2b719a429ba467512cb34ad73352ab1f  gcc/testsuite/gcc.target/i386/math-torture/lfloor.c
  90c0fcbde458b9688e1e20332b2f1308  gcc/testsuite/gcc.target/i386/math-torture/lrint.c
  75c95d53b12109ed3e501ca632f0035d  gcc/testsuite/gcc.target/i386/math-torture/lround.c
! ea9fb826489c4c036a50a4acf55afd57  gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp
  b8987de7098b84e004093b3d86b59425  gcc/testsuite/gcc.target/i386/math-torture/nearbyint.c
  9b512770257f2687cde1774f56f4d64d  gcc/testsuite/gcc.target/i386/math-torture/rint.c
  29b89b8d60fbc8ee9eb2fb986ae17c23  gcc/testsuite/gcc.target/i386/math-torture/round.c
  e993892d6c4fa7eda7617a0b6857cd4b  gcc/testsuite/gcc.target/i386/math-torture/trunc.c
  df67a62d776122baa97424f200b31fd5  gcc/testsuite/gcc.target/i386/math_m_pi.h
  740ec5817041798b2da186e7037a71c3  gcc/testsuite/gcc.target/i386/max-stack-align.c
! f08c3f5ff2d2d97f5970228622db7e3b  gcc/testsuite/gcc.target/i386/mcount_pic.c
  cda0d89452347311cc45a79be2d8f0fc  gcc/testsuite/gcc.target/i386/memcpy-1.c
  6497cb2d22febb00a904f50025d863bd  gcc/testsuite/gcc.target/i386/memcpy-2.c
  536862ceddae932e3d7da830f0866d31  gcc/testsuite/gcc.target/i386/memcpy-3.c
--- 73702,73715 ----
  2b719a429ba467512cb34ad73352ab1f  gcc/testsuite/gcc.target/i386/math-torture/lfloor.c
  90c0fcbde458b9688e1e20332b2f1308  gcc/testsuite/gcc.target/i386/math-torture/lrint.c
  75c95d53b12109ed3e501ca632f0035d  gcc/testsuite/gcc.target/i386/math-torture/lround.c
! 144ed00324fc1549797f28db5da5510c  gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp
  b8987de7098b84e004093b3d86b59425  gcc/testsuite/gcc.target/i386/math-torture/nearbyint.c
  9b512770257f2687cde1774f56f4d64d  gcc/testsuite/gcc.target/i386/math-torture/rint.c
  29b89b8d60fbc8ee9eb2fb986ae17c23  gcc/testsuite/gcc.target/i386/math-torture/round.c
  e993892d6c4fa7eda7617a0b6857cd4b  gcc/testsuite/gcc.target/i386/math-torture/trunc.c
  df67a62d776122baa97424f200b31fd5  gcc/testsuite/gcc.target/i386/math_m_pi.h
  740ec5817041798b2da186e7037a71c3  gcc/testsuite/gcc.target/i386/max-stack-align.c
! f82327ef3caa200d8024822491c53316  gcc/testsuite/gcc.target/i386/mcount_pic.c
  cda0d89452347311cc45a79be2d8f0fc  gcc/testsuite/gcc.target/i386/memcpy-1.c
  6497cb2d22febb00a904f50025d863bd  gcc/testsuite/gcc.target/i386/memcpy-2.c
  536862ceddae932e3d7da830f0866d31  gcc/testsuite/gcc.target/i386/memcpy-3.c
*************** d4c716e20ab6e64d6bb29cc63dd65677  gcc/te
*** 69135,69140 ****
--- 73784,73791 ----
  d7e128da4dee8caf6cd8d400af12d230  gcc/testsuite/gcc.target/i386/movq.c
  347dca8d249a46ac2f5892d9ffdc0337  gcc/testsuite/gcc.target/i386/movsd.c
  bb0703a0cfe126aeba12e7589d46db56  gcc/testsuite/gcc.target/i386/movsi-sm-1.c
+ d3a80442aec43e4161002d68ff5d258f  gcc/testsuite/gcc.target/i386/movti-2.c
+ b05d96c2d351e6bf385aef183d4b3003  gcc/testsuite/gcc.target/i386/movti-3.c
  c6304e928bcf1393de99639a142057ad  gcc/testsuite/gcc.target/i386/movti.c
  2376b08fdef000cf037280264f5437fb  gcc/testsuite/gcc.target/i386/mpx.c
  05b06b2c30d6910a0afec51d588f2c21  gcc/testsuite/gcc.target/i386/ms_hook_prologue.c
*************** d4f46b5271ce6dccc8d803376c5790f5  gcc/te
*** 69164,69169 ****
--- 73815,73841 ----
  53573eabfe7a88bc5c685842328a0bfb  gcc/testsuite/gcc.target/i386/neg-zext-1.c
  17e0a5a79b5ebe25244934057a3faf0f  gcc/testsuite/gcc.target/i386/neg-zext-2.c
  a7f204e20c0df5dad30eac30c4a089ab  gcc/testsuite/gcc.target/i386/nest-1.c
+ dd28f3910c1c820877396bdada67b53a  gcc/testsuite/gcc.target/i386/no-callee-saved-1.c
+ 483378afab21196a730cecbe3a61c407  gcc/testsuite/gcc.target/i386/no-callee-saved-10.c
+ f3e395b65622feac99889a0a7b3407ca  gcc/testsuite/gcc.target/i386/no-callee-saved-11.c
+ e5188370fac870f1044da14bdbfa0928  gcc/testsuite/gcc.target/i386/no-callee-saved-12.c
+ b784ec58f2403dd4f9a633abaed65e7e  gcc/testsuite/gcc.target/i386/no-callee-saved-13.c
+ 5f73cdcf900442bd3e805be7f964080c  gcc/testsuite/gcc.target/i386/no-callee-saved-14.c
+ 0b539de36ace8aa0cb3c0a5ca5bc43f7  gcc/testsuite/gcc.target/i386/no-callee-saved-15.c
+ e64677fd1b7c27d60addb63546c0ff37  gcc/testsuite/gcc.target/i386/no-callee-saved-16.c
+ f846596eea204aa036b0110a1c1e843e  gcc/testsuite/gcc.target/i386/no-callee-saved-17.c
+ f6e04015c07dfdbd1fec397006546df4  gcc/testsuite/gcc.target/i386/no-callee-saved-18.c
+ ad33c89265b5a7b8d4a875a0abf790b3  gcc/testsuite/gcc.target/i386/no-callee-saved-2.c
+ b8869983f4d7802c2c8be19ce2dcdeac  gcc/testsuite/gcc.target/i386/no-callee-saved-3.c
+ 7c0013e877ad677f03dc9f16afde12ee  gcc/testsuite/gcc.target/i386/no-callee-saved-4.c
+ 3945dff670a00bd729c9d700c0e429d3  gcc/testsuite/gcc.target/i386/no-callee-saved-5.c
+ b72976450abb440a20ee8bbbcbe9d3da  gcc/testsuite/gcc.target/i386/no-callee-saved-6.c
+ cb75d1a0c9cbcc1ff35c0ebfc4521d0f  gcc/testsuite/gcc.target/i386/no-callee-saved-7.c
+ d2d958ed5eb47397497845d4ec4608e7  gcc/testsuite/gcc.target/i386/no-callee-saved-8.c
+ fcdd3649e1c0734d0e2c71c3b6a131b6  gcc/testsuite/gcc.target/i386/no-callee-saved-9.c
+ 9a7ed643946ff93624c0eaaa89d06d29  gcc/testsuite/gcc.target/i386/noevex512-1.c
+ 2e598785b3617e0c168cf0c01315dcd8  gcc/testsuite/gcc.target/i386/noevex512-2.c
+ d951ae4cc5d9c709635f329d67545205  gcc/testsuite/gcc.target/i386/noevex512-3.c
  907e6711117480fbf04e37d85bdb4beb  gcc/testsuite/gcc.target/i386/nop-mcount.c
  7554f6e1a30e3cc93f33dbad79fc2a68  gcc/testsuite/gcc.target/i386/noplt-1.c
  4db83aa123fc4bac669e5678c3fd01a8  gcc/testsuite/gcc.target/i386/noplt-2.c
*************** d84c245c19907cbcb51ec1260f2f2e75  gcc/te
*** 69178,69183 ****
--- 73850,73858 ----
  724ac6ecb21390d732dee529300ac27a  gcc/testsuite/gcc.target/i386/nrv1.c
  50b8bcd150bf9d9e5338438449a8f71f  gcc/testsuite/gcc.target/i386/opt-1.c
  d7a02dbcdc54a18a392397fb1ed438e2  gcc/testsuite/gcc.target/i386/opt-2.c
+ 68dad9551718d81c7acabebdeb04eddd  gcc/testsuite/gcc.target/i386/opt-vperm-vshuf-1.c
+ a709d69635171ba8cb23aeb32f14a735  gcc/testsuite/gcc.target/i386/opt-vperm-vshuf-2.c
+ c1c7a1f6ca54b294694be556fcad274e  gcc/testsuite/gcc.target/i386/opt-vperm-vshuf-3.c
  768e6e106257ef723b64a10eb89e9811  gcc/testsuite/gcc.target/i386/ordcmp-1.c
  f0eaf4bd598d014fce8369eb0b54ee88  gcc/testsuite/gcc.target/i386/pad-1.c
  5f9a4d07e98c50b2728dc23ca71b8f3b  gcc/testsuite/gcc.target/i386/pad-10.c
*************** a2da30b33f626c449124b741d63ff50f  gcc/te
*** 69200,69205 ****
--- 73875,73893 ----
  1dfea81292e4d43d2d7fc2bfd3430eda  gcc/testsuite/gcc.target/i386/parity-7.c
  03b41b2f42cb61cb71b23f1af7f0135e  gcc/testsuite/gcc.target/i386/parity-8.c
  8d756665b79bf6bd7920f21a780f11dc  gcc/testsuite/gcc.target/i386/parity-9.c
+ 8e4c38a70fbd0d029a0b696304e2047f  gcc/testsuite/gcc.target/i386/part-vect-absneghf.c
+ d7575e4a239acf382fe6978f76d7f8f6  gcc/testsuite/gcc.target/i386/part-vect-complexhf.c
+ a42e41a70df25254ab0c3533058e09ce  gcc/testsuite/gcc.target/i386/part-vect-copysignhf.c
+ 4b843d6eac8cca928388713cfd822eee  gcc/testsuite/gcc.target/i386/part-vect-fmaddsubhf-1.c
+ e015c782d5b49dadd97d26626e42640b  gcc/testsuite/gcc.target/i386/part-vect-fmahf-1.c
+ 64335d6cecf643b8ef62a44976333099  gcc/testsuite/gcc.target/i386/part-vect-hf-convert-1.c
+ 0768d0b749af0eb1fb571374da5d942d  gcc/testsuite/gcc.target/i386/part-vect-roundhf.c
+ 519a7daf109eddf310406d5e83d8eaf1  gcc/testsuite/gcc.target/i386/part-vect-sqrtph-1.c
+ ddb983a4fc4f72a8d948b07ead39c6ff  gcc/testsuite/gcc.target/i386/part-vect-vec_cmphf.c
+ b7b34404037d059764a956af000e887b  gcc/testsuite/gcc.target/i386/part-vect-vec_elem-1.c
+ b21d12aa2edfb56fc4495ab1a5629994  gcc/testsuite/gcc.target/i386/part-vect-vec_elem-2.c
+ f247ff71da7e2d1e07ecdcc6961f9454  gcc/testsuite/gcc.target/i386/part-vect-vminmaxph-1.c
+ b2c04bbb85fe55a57f1b540aa066a20b  gcc/testsuite/gcc.target/i386/part-vect-xorsignhf.c
  f354844939fdb7c6c229607f1ff57287  gcc/testsuite/gcc.target/i386/pause-1.c
  bccc40fa95a11c992c5319581f1c269f  gcc/testsuite/gcc.target/i386/pause-2.c
  b6587e8091b873e052b86981b4c6dd26  gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
*************** ec64d74d91ed819f110fdc6f8f90197e  gcc/te
*** 69214,69219 ****
--- 73902,73908 ----
  8a9325754f481fbe42e35a28aa1b451b  gcc/testsuite/gcc.target/i386/pie-copyrelocs-3.c
  9f8568a66133d16283b57d8a97c3dc49  gcc/testsuite/gcc.target/i386/pie-copyrelocs-4.c
  f91cf99532e69c383485f6be3f62eb99  gcc/testsuite/gcc.target/i386/pie.c
+ bfa37686c6affd9e18d5a37af31e5391  gcc/testsuite/gcc.target/i386/pieces-memcmp-2.c
  5d062b099437fb64de565760ffa381a8  gcc/testsuite/gcc.target/i386/pieces-memcpy-1.c
  159890d45cc96b5006c69f188375af79  gcc/testsuite/gcc.target/i386/pieces-memcpy-10.c
  c8299c32a2fde2871d46799e54ca9c20  gcc/testsuite/gcc.target/i386/pieces-memcpy-11.c
*************** b5f6fb3aaac27e15ae52d9111e60d98d  gcc/te
*** 69232,69241 ****
  698986063dd5ba005476ca849de14359  gcc/testsuite/gcc.target/i386/pieces-memcpy-4.c
  5e90eca9009d511850fb8fc840c7e236  gcc/testsuite/gcc.target/i386/pieces-memcpy-5.c
  592f55f6e3184576f7ecadf1df7171df  gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c
! e4e4d6519861d83a595eadd0756e3cf2  gcc/testsuite/gcc.target/i386/pieces-memcpy-7.c
! bb3f405fb2a00f93ade9f112f66a2ae2  gcc/testsuite/gcc.target/i386/pieces-memcpy-8.c
! 224b0424797e8741da92fc8c1b86afb3  gcc/testsuite/gcc.target/i386/pieces-memcpy-9.c
! c98547d08a943793d837a760610bc52a  gcc/testsuite/gcc.target/i386/pieces-memset-1.c
  c41f980df778f8d15a4483383b7d8511  gcc/testsuite/gcc.target/i386/pieces-memset-10.c
  36699977c9823831dcdc918a5f0e56e6  gcc/testsuite/gcc.target/i386/pieces-memset-11.c
  bee0e3ab99ebaaa281b982a8bb48cf7c  gcc/testsuite/gcc.target/i386/pieces-memset-12.c
--- 73921,73930 ----
  698986063dd5ba005476ca849de14359  gcc/testsuite/gcc.target/i386/pieces-memcpy-4.c
  5e90eca9009d511850fb8fc840c7e236  gcc/testsuite/gcc.target/i386/pieces-memcpy-5.c
  592f55f6e3184576f7ecadf1df7171df  gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c
! cd997974279df052137a9eb6b7161224  gcc/testsuite/gcc.target/i386/pieces-memcpy-7.c
! 0ba882bb3e15e6f15fe51824a6b413d7  gcc/testsuite/gcc.target/i386/pieces-memcpy-8.c
! 4a7d1a3d782fc80de77eb424e11408a6  gcc/testsuite/gcc.target/i386/pieces-memcpy-9.c
! a2c913299d352a6451775b290ec1815e  gcc/testsuite/gcc.target/i386/pieces-memset-1.c
  c41f980df778f8d15a4483383b7d8511  gcc/testsuite/gcc.target/i386/pieces-memset-10.c
  36699977c9823831dcdc918a5f0e56e6  gcc/testsuite/gcc.target/i386/pieces-memset-11.c
  bee0e3ab99ebaaa281b982a8bb48cf7c  gcc/testsuite/gcc.target/i386/pieces-memset-12.c
*************** dfdb563e4ff7bbe491b12bbbe647b9dc  gcc/te
*** 69264,69280 ****
  924e5e7e92512605ec9367e612f23eb7  gcc/testsuite/gcc.target/i386/pieces-memset-33.c
  16f63d88d853af6b12c879750e183960  gcc/testsuite/gcc.target/i386/pieces-memset-34.c
  181b017254dd31eb2223399402d99647  gcc/testsuite/gcc.target/i386/pieces-memset-35.c
! 1459df6a5e5bf8ce8f966ba8966bfddd  gcc/testsuite/gcc.target/i386/pieces-memset-36.c
  706f5c92442e84a05ac86f5049be1023  gcc/testsuite/gcc.target/i386/pieces-memset-37.c
  71d7cb14af52878612fec7d2cc2dcdff  gcc/testsuite/gcc.target/i386/pieces-memset-38.c
  46290722ded2b4db346c0397ed4a4f6e  gcc/testsuite/gcc.target/i386/pieces-memset-39.c
! b9528f9fe022aa90d7c7d9764f67ece4  gcc/testsuite/gcc.target/i386/pieces-memset-4.c
! e97806715f1d074e19f850beb7a46cf7  gcc/testsuite/gcc.target/i386/pieces-memset-40.c
! fa508fb4ea1f8f8b18cde0a830cf3953  gcc/testsuite/gcc.target/i386/pieces-memset-41.c
  ef978a20afb9412dabbe15a9b8dfb5b0  gcc/testsuite/gcc.target/i386/pieces-memset-42.c
  36d97d09e24700e91c20a52767b17774  gcc/testsuite/gcc.target/i386/pieces-memset-43.c
  2b47b7f82aeabc7a238642520819b3f0  gcc/testsuite/gcc.target/i386/pieces-memset-44.c
! f2f0e85f12be6d8c85584ef9e34e08ca  gcc/testsuite/gcc.target/i386/pieces-memset-45.c
  f29f6d2af05e1f08f148f0eed162d860  gcc/testsuite/gcc.target/i386/pieces-memset-46.c
  8f0614f1d8cbc09d9e6e515b9c85586c  gcc/testsuite/gcc.target/i386/pieces-memset-47.c
  fab4224ceed336ed6902793909c0c6c2  gcc/testsuite/gcc.target/i386/pieces-memset-48.c
--- 73953,73969 ----
  924e5e7e92512605ec9367e612f23eb7  gcc/testsuite/gcc.target/i386/pieces-memset-33.c
  16f63d88d853af6b12c879750e183960  gcc/testsuite/gcc.target/i386/pieces-memset-34.c
  181b017254dd31eb2223399402d99647  gcc/testsuite/gcc.target/i386/pieces-memset-35.c
! 2470a2e9bf55b8c93f14b390efa3a27b  gcc/testsuite/gcc.target/i386/pieces-memset-36.c
  706f5c92442e84a05ac86f5049be1023  gcc/testsuite/gcc.target/i386/pieces-memset-37.c
  71d7cb14af52878612fec7d2cc2dcdff  gcc/testsuite/gcc.target/i386/pieces-memset-38.c
  46290722ded2b4db346c0397ed4a4f6e  gcc/testsuite/gcc.target/i386/pieces-memset-39.c
! 1bf16fae349290026eded0b2214cc165  gcc/testsuite/gcc.target/i386/pieces-memset-4.c
! a757412dd10897fd7e3bd72420325c6b  gcc/testsuite/gcc.target/i386/pieces-memset-40.c
! fd6f0825c9ff8f7a7dc12a51c3fecc7b  gcc/testsuite/gcc.target/i386/pieces-memset-41.c
  ef978a20afb9412dabbe15a9b8dfb5b0  gcc/testsuite/gcc.target/i386/pieces-memset-42.c
  36d97d09e24700e91c20a52767b17774  gcc/testsuite/gcc.target/i386/pieces-memset-43.c
  2b47b7f82aeabc7a238642520819b3f0  gcc/testsuite/gcc.target/i386/pieces-memset-44.c
! 86947bff2a1eb3faba119670600994db  gcc/testsuite/gcc.target/i386/pieces-memset-45.c
  f29f6d2af05e1f08f148f0eed162d860  gcc/testsuite/gcc.target/i386/pieces-memset-46.c
  8f0614f1d8cbc09d9e6e515b9c85586c  gcc/testsuite/gcc.target/i386/pieces-memset-47.c
  fab4224ceed336ed6902793909c0c6c2  gcc/testsuite/gcc.target/i386/pieces-memset-48.c
*************** b6a5763cac2b72e43f0900c7fbca0740  gcc/te
*** 69282,69290 ****
  e59e962761850423b307c01f720c8e84  gcc/testsuite/gcc.target/i386/pieces-memset-5.c
  f6afe5571570af54d1d2e02c0e28d3f6  gcc/testsuite/gcc.target/i386/pieces-memset-50.c
  9a26520df010055f642c2ece0b8228da  gcc/testsuite/gcc.target/i386/pieces-memset-6.c
! 965472deb34cf62f613f73701201f9b4  gcc/testsuite/gcc.target/i386/pieces-memset-7.c
! 7c2aa9a23dfc3f65dc77c8d3af0a6a3f  gcc/testsuite/gcc.target/i386/pieces-memset-8.c
! 5a05b363e010e9b9a4fc05f362d42dae  gcc/testsuite/gcc.target/i386/pieces-memset-9.c
  b1d366c21cfdcfacf9854ed6cbfd7bc3  gcc/testsuite/gcc.target/i386/pieces-strcpy-1.c
  52e52549556117888f85f13d26ced39b  gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c
  13d06bee88f2ccd2a16effe0c243e61e  gcc/testsuite/gcc.target/i386/pow-1.c
--- 73971,73979 ----
  e59e962761850423b307c01f720c8e84  gcc/testsuite/gcc.target/i386/pieces-memset-5.c
  f6afe5571570af54d1d2e02c0e28d3f6  gcc/testsuite/gcc.target/i386/pieces-memset-50.c
  9a26520df010055f642c2ece0b8228da  gcc/testsuite/gcc.target/i386/pieces-memset-6.c
! 23a2abe42e35c944c1378d4073b91461  gcc/testsuite/gcc.target/i386/pieces-memset-7.c
! fc8529106d1dfbf63818c2acf5d2440e  gcc/testsuite/gcc.target/i386/pieces-memset-8.c
! 1dd6e4930e865481c75e8be67f518ca9  gcc/testsuite/gcc.target/i386/pieces-memset-9.c
  b1d366c21cfdcfacf9854ed6cbfd7bc3  gcc/testsuite/gcc.target/i386/pieces-strcpy-1.c
  52e52549556117888f85f13d26ced39b  gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c
  13d06bee88f2ccd2a16effe0c243e61e  gcc/testsuite/gcc.target/i386/pow-1.c
*************** d6be9416b5a692dcf10f49538e62c72a  gcc/te
*** 69315,69351 ****
  79bcfaca817f59f84be4d439452f5686  gcc/testsuite/gcc.target/i386/pr100704-2.c
  8197644f7a377a4e773e37bcaf521a03  gcc/testsuite/gcc.target/i386/pr100704-3.c
  3867710318c1f66b0baefc39f250ac61  gcc/testsuite/gcc.target/i386/pr100711-1.c
! d67bab80045236216b478b5dc7a6b6c7  gcc/testsuite/gcc.target/i386/pr100711-2.c
  21342a2d589a99d18c416c9c8cb14e73  gcc/testsuite/gcc.target/i386/pr100722.c
! d19e79e7b50e1255609c0bb606935482  gcc/testsuite/gcc.target/i386/pr100865-1.c
! 2669fce2b79e0f456b3e2cbbe2b3ba5f  gcc/testsuite/gcc.target/i386/pr100865-10a.c
! 661e4041ace7ed04282c71aa07552cff  gcc/testsuite/gcc.target/i386/pr100865-10b.c
  f5bc9b077ed43bdc9a703fbae0412df9  gcc/testsuite/gcc.target/i386/pr100865-11a.c
  0386e3fab23fe7e48eee2cfa3b04d7ff  gcc/testsuite/gcc.target/i386/pr100865-11b.c
  e292a240560fbabcde2b3e6709148e38  gcc/testsuite/gcc.target/i386/pr100865-11c.c
  bfc29b0613a8b50ad05723222e02fca0  gcc/testsuite/gcc.target/i386/pr100865-12a.c
  05ff62d2aea9db819682757c26e4d599  gcc/testsuite/gcc.target/i386/pr100865-12b.c
  609a6efc8f26048c66413a6b2cd5337e  gcc/testsuite/gcc.target/i386/pr100865-12c.c
! 9eb1d7bee3ec27dabbdf0479bcde9808  gcc/testsuite/gcc.target/i386/pr100865-2.c
! 2ac7fb416e4a98fc4e69463ec597559b  gcc/testsuite/gcc.target/i386/pr100865-3.c
! 9d6cb22953f26fa862eb8852bc96677e  gcc/testsuite/gcc.target/i386/pr100865-4a.c
! 7cac8f6f48bb687c22fa1d0be557fa16  gcc/testsuite/gcc.target/i386/pr100865-4b.c
! 47b3df774c896fec66fdd3127d76b7c1  gcc/testsuite/gcc.target/i386/pr100865-5a.c
! 02c1e45e4337022f463c96887afff0db  gcc/testsuite/gcc.target/i386/pr100865-5b.c
  b1a92e51935fa6dfe87cc1b5591f86cc  gcc/testsuite/gcc.target/i386/pr100865-6a.c
  cd0c1e0c14e0cd797ad6a3fe36f61c41  gcc/testsuite/gcc.target/i386/pr100865-6b.c
  79c69335f7b22344550f6fa784a3c0fd  gcc/testsuite/gcc.target/i386/pr100865-6c.c
! 1c42679e51355c023fcf9ced51148e88  gcc/testsuite/gcc.target/i386/pr100865-7a.c
  9ad73e17a2a8a2177f83924d42a9ec6d  gcc/testsuite/gcc.target/i386/pr100865-7b.c
! 24b690b0da869c1f902989f4c75dfd60  gcc/testsuite/gcc.target/i386/pr100865-7c.c
  2e6c0885d5ed036832dae0f07276269a  gcc/testsuite/gcc.target/i386/pr100865-8a.c
  38883a5389fa795fd84a1023776608ea  gcc/testsuite/gcc.target/i386/pr100865-8b.c
  b1b7cd191466fe5bf9c8de405078e268  gcc/testsuite/gcc.target/i386/pr100865-8c.c
! a2db1599502ab18d8be9008240a5479f  gcc/testsuite/gcc.target/i386/pr100865-9a.c
! b4bca83d8c5eb66cc3b76c908b3d3d01  gcc/testsuite/gcc.target/i386/pr100865-9b.c
  0e777948f43f406fb25b7236272ef276  gcc/testsuite/gcc.target/i386/pr100865-9c.c
  92347818baf371677943e85e6acf1cb2  gcc/testsuite/gcc.target/i386/pr100887.c
! 1bc38c498cc637c99a48d91d8c5545b8  gcc/testsuite/gcc.target/i386/pr100936.c
  988b04066631a4c959820d4ced9f5e39  gcc/testsuite/gcc.target/i386/pr100951.c
  0f1a3e79d17305cf67121bb850f8bbee  gcc/testsuite/gcc.target/i386/pr101021-1.c
  d1dc5c84e88280386be51fbb5bbe9542  gcc/testsuite/gcc.target/i386/pr101021-2.c
--- 74004,74044 ----
  79bcfaca817f59f84be4d439452f5686  gcc/testsuite/gcc.target/i386/pr100704-2.c
  8197644f7a377a4e773e37bcaf521a03  gcc/testsuite/gcc.target/i386/pr100704-3.c
  3867710318c1f66b0baefc39f250ac61  gcc/testsuite/gcc.target/i386/pr100711-1.c
! 12601676937cfa769b9e00cbd99ad57d  gcc/testsuite/gcc.target/i386/pr100711-2.c
! f3f2e2e3cbd0d24f18c189931dea3a08  gcc/testsuite/gcc.target/i386/pr100711-3.c
! 327aba1b48506df4e916e2e0a96496b2  gcc/testsuite/gcc.target/i386/pr100711-4.c
! b1274c9ef720f2514c547a4ba7b30fd1  gcc/testsuite/gcc.target/i386/pr100711-5.c
! a62f6df63fc4be6e37901b08c83e8ecc  gcc/testsuite/gcc.target/i386/pr100711-6.c
  21342a2d589a99d18c416c9c8cb14e73  gcc/testsuite/gcc.target/i386/pr100722.c
! 497d2d61f81da5f5f2da7eb41e5a7d5d  gcc/testsuite/gcc.target/i386/pr100865-1.c
! 5897140defc06e5ec0c1df1ca44dc11b  gcc/testsuite/gcc.target/i386/pr100865-10a.c
! e0e3790cfa1f6811774dcf19a77f25f2  gcc/testsuite/gcc.target/i386/pr100865-10b.c
  f5bc9b077ed43bdc9a703fbae0412df9  gcc/testsuite/gcc.target/i386/pr100865-11a.c
  0386e3fab23fe7e48eee2cfa3b04d7ff  gcc/testsuite/gcc.target/i386/pr100865-11b.c
  e292a240560fbabcde2b3e6709148e38  gcc/testsuite/gcc.target/i386/pr100865-11c.c
  bfc29b0613a8b50ad05723222e02fca0  gcc/testsuite/gcc.target/i386/pr100865-12a.c
  05ff62d2aea9db819682757c26e4d599  gcc/testsuite/gcc.target/i386/pr100865-12b.c
  609a6efc8f26048c66413a6b2cd5337e  gcc/testsuite/gcc.target/i386/pr100865-12c.c
! 34a761a63cd2014d84ca26fea2853a7f  gcc/testsuite/gcc.target/i386/pr100865-2.c
! b8b50f6180977b3f28c7afe9ded05d31  gcc/testsuite/gcc.target/i386/pr100865-3.c
! ae222d570e09d9116b7c2f9853f5e702  gcc/testsuite/gcc.target/i386/pr100865-4a.c
! a90afdf44dd3d8d415e8841ab25031cf  gcc/testsuite/gcc.target/i386/pr100865-4b.c
! 78ea55b8818c2a0569b83153050c7528  gcc/testsuite/gcc.target/i386/pr100865-5a.c
! f61ed5d74862aeb9b691e538e77da134  gcc/testsuite/gcc.target/i386/pr100865-5b.c
  b1a92e51935fa6dfe87cc1b5591f86cc  gcc/testsuite/gcc.target/i386/pr100865-6a.c
  cd0c1e0c14e0cd797ad6a3fe36f61c41  gcc/testsuite/gcc.target/i386/pr100865-6b.c
  79c69335f7b22344550f6fa784a3c0fd  gcc/testsuite/gcc.target/i386/pr100865-6c.c
! fb20dc4041fb8da84bfe6bd15ed8d02c  gcc/testsuite/gcc.target/i386/pr100865-7a.c
  9ad73e17a2a8a2177f83924d42a9ec6d  gcc/testsuite/gcc.target/i386/pr100865-7b.c
! c58243f3def69bc2967aa587eeb4541b  gcc/testsuite/gcc.target/i386/pr100865-7c.c
  2e6c0885d5ed036832dae0f07276269a  gcc/testsuite/gcc.target/i386/pr100865-8a.c
  38883a5389fa795fd84a1023776608ea  gcc/testsuite/gcc.target/i386/pr100865-8b.c
  b1b7cd191466fe5bf9c8de405078e268  gcc/testsuite/gcc.target/i386/pr100865-8c.c
! ca04bf1479794db5867a7dcbdaba654c  gcc/testsuite/gcc.target/i386/pr100865-9a.c
! 3d572b546fbc5d6017f7688f8c9858c5  gcc/testsuite/gcc.target/i386/pr100865-9b.c
  0e777948f43f406fb25b7236272ef276  gcc/testsuite/gcc.target/i386/pr100865-9c.c
  92347818baf371677943e85e6acf1cb2  gcc/testsuite/gcc.target/i386/pr100887.c
! 71d6b9b3a9303f1619b5e004899cb385  gcc/testsuite/gcc.target/i386/pr100936.c
  988b04066631a4c959820d4ced9f5e39  gcc/testsuite/gcc.target/i386/pr100951.c
  0f1a3e79d17305cf67121bb850f8bbee  gcc/testsuite/gcc.target/i386/pr101021-1.c
  d1dc5c84e88280386be51fbb5bbe9542  gcc/testsuite/gcc.target/i386/pr101021-2.c
*************** c0989692a0f2603de7cdb8cf6bbc470d  gcc/te
*** 69398,69407 ****
  ce94fb3876b696419b146fe6dbfba74b  gcc/testsuite/gcc.target/i386/pr101989-3.c
  21b1e986ca3dc4d419c2817e1ca408b4  gcc/testsuite/gcc.target/i386/pr101989-broadcast-1.c
  87b3d1a468a63279ca3c521ffeeeb440  gcc/testsuite/gcc.target/i386/pr102016.c
! 3a74be3f071d0c9cbe7710c799b1c986  gcc/testsuite/gcc.target/i386/pr102021.c
  ae9e982908f39694cfa63cde47ecd4ef  gcc/testsuite/gcc.target/i386/pr102024.c
  7b643f9feaacdf61e235197b76917d23  gcc/testsuite/gcc.target/i386/pr102080.c
! 906d02e2e76bbe7aab1739a3b7260688  gcc/testsuite/gcc.target/i386/pr102230.c
  c2e2542ba19e2e812b738e7f9f1ad1ee  gcc/testsuite/gcc.target/i386/pr102327-1.c
  4987841b15eaa01d352aa88053d06695  gcc/testsuite/gcc.target/i386/pr102327-2.c
  94fa8d96af9c0edf5a0841788c01edc1  gcc/testsuite/gcc.target/i386/pr102464-copysign-1.c
--- 74091,74100 ----
  ce94fb3876b696419b146fe6dbfba74b  gcc/testsuite/gcc.target/i386/pr101989-3.c
  21b1e986ca3dc4d419c2817e1ca408b4  gcc/testsuite/gcc.target/i386/pr101989-broadcast-1.c
  87b3d1a468a63279ca3c521ffeeeb440  gcc/testsuite/gcc.target/i386/pr102016.c
! 149ca17ab2bce6331b1e630f254fe518  gcc/testsuite/gcc.target/i386/pr102021.c
  ae9e982908f39694cfa63cde47ecd4ef  gcc/testsuite/gcc.target/i386/pr102024.c
  7b643f9feaacdf61e235197b76917d23  gcc/testsuite/gcc.target/i386/pr102080.c
! 753fa8f7460d27b7c0a0e6ff32f4a8e7  gcc/testsuite/gcc.target/i386/pr102230.c
  c2e2542ba19e2e812b738e7f9f1ad1ee  gcc/testsuite/gcc.target/i386/pr102327-1.c
  4987841b15eaa01d352aa88053d06695  gcc/testsuite/gcc.target/i386/pr102327-2.c
  94fa8d96af9c0edf5a0841788c01edc1  gcc/testsuite/gcc.target/i386/pr102464-copysign-1.c
*************** d6f8918336e876cc84a4ac33805567e9  gcc/te
*** 69446,69455 ****
  b1c903e2b37cfb9b2f060a009b3b4219  gcc/testsuite/gcc.target/i386/pr103069-2.c
  530caabfe97509f0aaaab47d9021ca22  gcc/testsuite/gcc.target/i386/pr103069-3.c
  a44a12bfc869662533e31a5506badb47  gcc/testsuite/gcc.target/i386/pr103069-4.c
! 45c8bf67cae0f4d4cd78e718c7e3f2eb  gcc/testsuite/gcc.target/i386/pr103074.c
  3c046813d3772127c2fb4a817b636b16  gcc/testsuite/gcc.target/i386/pr103097.c
! 5ca3ad8301019ec3134b62c9354d4773  gcc/testsuite/gcc.target/i386/pr103144-mul-1.c
! b3bbd6ffde93886f859abdcc885dcd18  gcc/testsuite/gcc.target/i386/pr103144-mul-2.c
  618e2eb0d569357f9280d4d1d6908740  gcc/testsuite/gcc.target/i386/pr103144-neg-1.c
  96936763b96a30ad61e7cc0bfdf47519  gcc/testsuite/gcc.target/i386/pr103144-neg-2.c
  0bcf66b0bd59812ba14aa080080dd122  gcc/testsuite/gcc.target/i386/pr103144-shift-1.c
--- 74139,74148 ----
  b1c903e2b37cfb9b2f060a009b3b4219  gcc/testsuite/gcc.target/i386/pr103069-2.c
  530caabfe97509f0aaaab47d9021ca22  gcc/testsuite/gcc.target/i386/pr103069-3.c
  a44a12bfc869662533e31a5506badb47  gcc/testsuite/gcc.target/i386/pr103069-4.c
! 8e69f25c7ec349e3247e8d556b8a04a6  gcc/testsuite/gcc.target/i386/pr103074.c
  3c046813d3772127c2fb4a817b636b16  gcc/testsuite/gcc.target/i386/pr103097.c
! cfe263127394a0977c5049a8006cc11d  gcc/testsuite/gcc.target/i386/pr103144-mul-1.c
! b7ab7b1910a521aee543373d4aeaaba9  gcc/testsuite/gcc.target/i386/pr103144-mul-2.c
  618e2eb0d569357f9280d4d1d6908740  gcc/testsuite/gcc.target/i386/pr103144-neg-1.c
  96936763b96a30ad61e7cc0bfdf47519  gcc/testsuite/gcc.target/i386/pr103144-neg-2.c
  0bcf66b0bd59812ba14aa080080dd122  gcc/testsuite/gcc.target/i386/pr103144-shift-1.c
*************** ee849ea0c1d98eae6fa7149655fda76a  gcc/te
*** 69463,69469 ****
  c0e2167ef56d8630d304b52813dd2572  gcc/testsuite/gcc.target/i386/pr103205-2.c
  bcf207e15c0d5b9e3168e3c570bc4999  gcc/testsuite/gcc.target/i386/pr103205.c
  212321a633ef72354f108b8d3918603c  gcc/testsuite/gcc.target/i386/pr103275.c
! 3ad820d9f385b5084912eee35d9461fb  gcc/testsuite/gcc.target/i386/pr103404.c
  93a80f0957a7ab302bc89298a34b73f3  gcc/testsuite/gcc.target/i386/pr103462-1.c
  894b627406e9c9888fb4697cb9bc455d  gcc/testsuite/gcc.target/i386/pr103462-2.c
  0e1f4e15f0cd7bf2621f1415e7a230bd  gcc/testsuite/gcc.target/i386/pr103462-3.c
--- 74156,74162 ----
  c0e2167ef56d8630d304b52813dd2572  gcc/testsuite/gcc.target/i386/pr103205-2.c
  bcf207e15c0d5b9e3168e3c570bc4999  gcc/testsuite/gcc.target/i386/pr103205.c
  212321a633ef72354f108b8d3918603c  gcc/testsuite/gcc.target/i386/pr103275.c
! 8ec3489d2e9a77b691d5ddc3de8a0f34  gcc/testsuite/gcc.target/i386/pr103404.c
  93a80f0957a7ab302bc89298a34b73f3  gcc/testsuite/gcc.target/i386/pr103462-1.c
  894b627406e9c9888fb4697cb9bc455d  gcc/testsuite/gcc.target/i386/pr103462-2.c
  0e1f4e15f0cd7bf2621f1415e7a230bd  gcc/testsuite/gcc.target/i386/pr103462-3.c
*************** a4a622986785e6f70969c2a502ed82b5  gcc/te
*** 69531,69541 ****
  de5c0402e953a4791c9ebd5927b494ef  gcc/testsuite/gcc.target/i386/pr104371-1.c
  9e15c481c855ada756c6eba2e513df9b  gcc/testsuite/gcc.target/i386/pr104371-2.c
  280455c5b9367e3a1d330a905b2515dd  gcc/testsuite/gcc.target/i386/pr104375.c
  edf62206a68a4c58a0dec6fbdc090c31  gcc/testsuite/gcc.target/i386/pr104441-1a.c
  7847083e5431fa0d0f90a6966b944b11  gcc/testsuite/gcc.target/i386/pr104441-1b.c
  9db2b13a34fc86475d27728a925461c5  gcc/testsuite/gcc.target/i386/pr104446.c
! bf404f867e3472759c232458b7e6fb09  gcc/testsuite/gcc.target/i386/pr104447.c
! 02696130cc1ac504d964566b605a5294  gcc/testsuite/gcc.target/i386/pr104448.c
  9afbd8cbff177a7e555fe32de7558c2e  gcc/testsuite/gcc.target/i386/pr104451.c
  f34a56063b53daa2722dd66e280f5aab  gcc/testsuite/gcc.target/i386/pr104453.c
  30d7b1638a5f604ac4353737e0db1816  gcc/testsuite/gcc.target/i386/pr104458.c
--- 74224,74235 ----
  de5c0402e953a4791c9ebd5927b494ef  gcc/testsuite/gcc.target/i386/pr104371-1.c
  9e15c481c855ada756c6eba2e513df9b  gcc/testsuite/gcc.target/i386/pr104371-2.c
  280455c5b9367e3a1d330a905b2515dd  gcc/testsuite/gcc.target/i386/pr104375.c
+ eb14eddf6e5656136e935eaa1eb82b99  gcc/testsuite/gcc.target/i386/pr104401.c
  edf62206a68a4c58a0dec6fbdc090c31  gcc/testsuite/gcc.target/i386/pr104441-1a.c
  7847083e5431fa0d0f90a6966b944b11  gcc/testsuite/gcc.target/i386/pr104441-1b.c
  9db2b13a34fc86475d27728a925461c5  gcc/testsuite/gcc.target/i386/pr104446.c
! eb1e8167d404b6acfac2b490f5061493  gcc/testsuite/gcc.target/i386/pr104447.c
! 9db0f32defbcb2d378f47646566fc388  gcc/testsuite/gcc.target/i386/pr104448.c
  9afbd8cbff177a7e555fe32de7558c2e  gcc/testsuite/gcc.target/i386/pr104451.c
  f34a56063b53daa2722dd66e280f5aab  gcc/testsuite/gcc.target/i386/pr104453.c
  30d7b1638a5f604ac4353737e0db1816  gcc/testsuite/gcc.target/i386/pr104458.c
*************** a92681d4c2c5095462e23684946fe9fd  gcc/te
*** 69545,69550 ****
--- 74239,74245 ----
  8d0bd7059c7beeb35df811f84735212e  gcc/testsuite/gcc.target/i386/pr104496.c
  6f32caf69432ac867dd42051bcfa22a8  gcc/testsuite/gcc.target/i386/pr104502.c
  2bb2b636832da9741d92fab7c29a5ffc  gcc/testsuite/gcc.target/i386/pr104551.c
+ 3201dd2903e2d244e5e562f28327059d  gcc/testsuite/gcc.target/i386/pr104610-2.c
  b1ac4c44221a37640b0fc40086d39cb8  gcc/testsuite/gcc.target/i386/pr104610.c
  21083ed0382a1c184689d3a9ee1bc7ee  gcc/testsuite/gcc.target/i386/pr104637.c
  1c3cbf71b8260b841b1623172a27e2dd  gcc/testsuite/gcc.target/i386/pr104658.c
*************** a892cf5449c572594d9ac500ec2178bc  gcc/te
*** 69584,69600 ****
  4ae7c694596b4d8b84d1d2e01c54c21c  gcc/testsuite/gcc.target/i386/pr105253.c
  dfc3f83604e6883a02d821c48a3ad632  gcc/testsuite/gcc.target/i386/pr105338.c
  011c836b7c20d989a4885bbe1ca245b7  gcc/testsuite/gcc.target/i386/pr105354-1.c
! af9539d60e2dd11a0e3e3f8e78f0e9ae  gcc/testsuite/gcc.target/i386/pr105354-2.c
  2a5473f87bb2410849bfe5418a5abeb6  gcc/testsuite/gcc.target/i386/pr105367.c
  3e59623d82099b9b3e3d1ea99c8157e9  gcc/testsuite/gcc.target/i386/pr105493.c
  faa2789fb55d0b7bb1e08f48501c285d  gcc/testsuite/gcc.target/i386/pr105513-1.c
! db0abcfd3877faa33b33aa19a57352a5  gcc/testsuite/gcc.target/i386/pr105554.c
  abdcac20a85ff356a7103baf30c2cad2  gcc/testsuite/gcc.target/i386/pr105587.c
  1c991f69922d2409520cabb4c80c0b51  gcc/testsuite/gcc.target/i386/pr105624.c
  d3054d00843266f8c2d242966d899040  gcc/testsuite/gcc.target/i386/pr105668.c
  eeeee8caa23185d1a21ba6680503f028  gcc/testsuite/gcc.target/i386/pr105711.c
  a498301dfaa6c0008b4d07706c9a06e2  gcc/testsuite/gcc.target/i386/pr105735-1.c
  135d7d6c0eb77bfdf1602a21d85cd598  gcc/testsuite/gcc.target/i386/pr105735-2.c
  ea3f5b1a8dc1f2a75525c32a752e7f2e  gcc/testsuite/gcc.target/i386/pr105778.c
  8217651f44dab90cf8e1033c97295008  gcc/testsuite/gcc.target/i386/pr105791.c
  b4224e20d05d6c8f5776e96a70593e71  gcc/testsuite/gcc.target/i386/pr105854.c
--- 74279,74297 ----
  4ae7c694596b4d8b84d1d2e01c54c21c  gcc/testsuite/gcc.target/i386/pr105253.c
  dfc3f83604e6883a02d821c48a3ad632  gcc/testsuite/gcc.target/i386/pr105338.c
  011c836b7c20d989a4885bbe1ca245b7  gcc/testsuite/gcc.target/i386/pr105354-1.c
! 1d7fb996d2968bda606469734db8f081  gcc/testsuite/gcc.target/i386/pr105354-2.c
  2a5473f87bb2410849bfe5418a5abeb6  gcc/testsuite/gcc.target/i386/pr105367.c
  3e59623d82099b9b3e3d1ea99c8157e9  gcc/testsuite/gcc.target/i386/pr105493.c
  faa2789fb55d0b7bb1e08f48501c285d  gcc/testsuite/gcc.target/i386/pr105513-1.c
! 8515bef5344a20c9dafa2d780bab4b57  gcc/testsuite/gcc.target/i386/pr105554.c
  abdcac20a85ff356a7103baf30c2cad2  gcc/testsuite/gcc.target/i386/pr105587.c
  1c991f69922d2409520cabb4c80c0b51  gcc/testsuite/gcc.target/i386/pr105624.c
  d3054d00843266f8c2d242966d899040  gcc/testsuite/gcc.target/i386/pr105668.c
  eeeee8caa23185d1a21ba6680503f028  gcc/testsuite/gcc.target/i386/pr105711.c
  a498301dfaa6c0008b4d07706c9a06e2  gcc/testsuite/gcc.target/i386/pr105735-1.c
  135d7d6c0eb77bfdf1602a21d85cd598  gcc/testsuite/gcc.target/i386/pr105735-2.c
+ c0a2ca005877e183a3bd3c684fd9ae58  gcc/testsuite/gcc.target/i386/pr105735-3.c
+ 8c9085240015050c98084d878d6470ba  gcc/testsuite/gcc.target/i386/pr105776.c
  ea3f5b1a8dc1f2a75525c32a752e7f2e  gcc/testsuite/gcc.target/i386/pr105778.c
  8217651f44dab90cf8e1033c97295008  gcc/testsuite/gcc.target/i386/pr105791.c
  b4224e20d05d6c8f5776e96a70593e71  gcc/testsuite/gcc.target/i386/pr105854.c
*************** a81b000946ef8fad4e273c7209987f99  gcc/te
*** 69643,69648 ****
--- 74340,74350 ----
  7cb073c67b48920056a7708378cc97d8  gcc/testsuite/gcc.target/i386/pr106122.c
  2d54c8c3f54676aee89848132817019f  gcc/testsuite/gcc.target/i386/pr106231-1.c
  3868cfb4a47544faf495a6f775077677  gcc/testsuite/gcc.target/i386/pr106231-2.c
+ 4bc1bfa6498ffe020f76a794a247116c  gcc/testsuite/gcc.target/i386/pr106245-1.c
+ ccca3b30b6af298d42eddc8e8341d504  gcc/testsuite/gcc.target/i386/pr106245-2.c
+ 81d3ada81c83ccb5a8d8d4a9ba4f8397  gcc/testsuite/gcc.target/i386/pr106245-3.c
+ 8d95615564c16dc50847bb0d0020c593  gcc/testsuite/gcc.target/i386/pr106245-4.c
+ 458c51705b37ae03bcd13300e491ac52  gcc/testsuite/gcc.target/i386/pr106245-5.c
  819678158c85d77cc74b35cd5756b035  gcc/testsuite/gcc.target/i386/pr106273.c
  b908829ba1abd899d74b7494ef7f84c8  gcc/testsuite/gcc.target/i386/pr106303.c
  8e04a4c455c50be91bd44e269c69ba78  gcc/testsuite/gcc.target/i386/pr106322.c
*************** d2fddfa7bc1e37a2ad1ca1d7acb2872b  gcc/te
*** 69657,69663 ****
  732eb589da116456399d4986f2bbee2c  gcc/testsuite/gcc.target/i386/pr106746.c
  554ff25f596284886f56c2aaa02f626a  gcc/testsuite/gcc.target/i386/pr106748.c
  1ba09abc788e14765d429f80f97f5eee  gcc/testsuite/gcc.target/i386/pr106905.c
! f805b23a7f2175af94df7507c4e61d36  gcc/testsuite/gcc.target/i386/pr106910-1.c
  0c9cf96197202ea56a56b353995f0f07  gcc/testsuite/gcc.target/i386/pr106933-1.c
  ae1d9a465c5a85bd604ce1465bcf1aa4  gcc/testsuite/gcc.target/i386/pr106933-2.c
  acf19b986d49be7e37d7e04397ccc58f  gcc/testsuite/gcc.target/i386/pr106959-1.c
--- 74359,74365 ----
  732eb589da116456399d4986f2bbee2c  gcc/testsuite/gcc.target/i386/pr106746.c
  554ff25f596284886f56c2aaa02f626a  gcc/testsuite/gcc.target/i386/pr106748.c
  1ba09abc788e14765d429f80f97f5eee  gcc/testsuite/gcc.target/i386/pr106905.c
! bea78a92e53b000893295e176a668a68  gcc/testsuite/gcc.target/i386/pr106910-1.c
  0c9cf96197202ea56a56b353995f0f07  gcc/testsuite/gcc.target/i386/pr106933-1.c
  ae1d9a465c5a85bd604ce1465bcf1aa4  gcc/testsuite/gcc.target/i386/pr106933-2.c
  acf19b986d49be7e37d7e04397ccc58f  gcc/testsuite/gcc.target/i386/pr106959-1.c
*************** acf19b986d49be7e37d7e04397ccc58f  gcc/te
*** 69666,69676 ****
  a4ade66456ceb82af20435e9dcf75a5e  gcc/testsuite/gcc.target/i386/pr106963.c
  a6d6cc09f712eb0d5c30d8c6bfd7fe4e  gcc/testsuite/gcc.target/i386/pr106994.c
  5a1d9db6cf3904e8bb2c665002bf8422  gcc/testsuite/gcc.target/i386/pr107055.c
! 7d7df678172356bc247923ffad2e2caf  gcc/testsuite/gcc.target/i386/pr107057.c
  b4c76c40ecd921fd705ccb0caf7bcc7e  gcc/testsuite/gcc.target/i386/pr107093.c
  eaaa31c47163e310ff84038671b83217  gcc/testsuite/gcc.target/i386/pr107172.c
  ef78793d46f8e457dbd4a2bb90422566  gcc/testsuite/gcc.target/i386/pr107185.c
! a1a323ccbaff417b65ffa44d58cff85b  gcc/testsuite/gcc.target/i386/pr107261.c
  9d91b164a4b311e663b49e1b224fb89b  gcc/testsuite/gcc.target/i386/pr107271.c
  cdeea0aa2bbf545e490be76ecf1ae59a  gcc/testsuite/gcc.target/i386/pr107304.c
  568fd8d874c6aaa98b459e4a4b02b865  gcc/testsuite/gcc.target/i386/pr107312.c
--- 74368,74378 ----
  a4ade66456ceb82af20435e9dcf75a5e  gcc/testsuite/gcc.target/i386/pr106963.c
  a6d6cc09f712eb0d5c30d8c6bfd7fe4e  gcc/testsuite/gcc.target/i386/pr106994.c
  5a1d9db6cf3904e8bb2c665002bf8422  gcc/testsuite/gcc.target/i386/pr107055.c
! 162334c371388bbef161d0454efcc9f5  gcc/testsuite/gcc.target/i386/pr107057.c
  b4c76c40ecd921fd705ccb0caf7bcc7e  gcc/testsuite/gcc.target/i386/pr107093.c
  eaaa31c47163e310ff84038671b83217  gcc/testsuite/gcc.target/i386/pr107172.c
  ef78793d46f8e457dbd4a2bb90422566  gcc/testsuite/gcc.target/i386/pr107185.c
! 68f452c10b9dd23ed5336585b1f94e15  gcc/testsuite/gcc.target/i386/pr107261.c
  9d91b164a4b311e663b49e1b224fb89b  gcc/testsuite/gcc.target/i386/pr107271.c
  cdeea0aa2bbf545e490be76ecf1ae59a  gcc/testsuite/gcc.target/i386/pr107304.c
  568fd8d874c6aaa98b459e4a4b02b865  gcc/testsuite/gcc.target/i386/pr107312.c
*************** b3fc3daadd1cc019e966631ca9efbd21  gcc/te
*** 69686,69692 ****
  7634a8c29f899f66c003a8fee07bbe89  gcc/testsuite/gcc.target/i386/pr107628.c
  793166a4646d4f87faa84df62cc37760  gcc/testsuite/gcc.target/i386/pr107647.c
  972837aa3a25d88acfe4af629c37d530  gcc/testsuite/gcc.target/i386/pr107863.c
! cff6d762589be31cfb42f0b3f5f9c273  gcc/testsuite/gcc.target/i386/pr107934.c
  48075294edf8cd1a881d62641b64bf53  gcc/testsuite/gcc.target/i386/pr107969.c
  78faa0a79d1b2ebb67bf0f082827008d  gcc/testsuite/gcc.target/i386/pr107970.c
  7db7bb050758aafe3487678dbc26ef13  gcc/testsuite/gcc.target/i386/pr107993.c
--- 74388,74394 ----
  7634a8c29f899f66c003a8fee07bbe89  gcc/testsuite/gcc.target/i386/pr107628.c
  793166a4646d4f87faa84df62cc37760  gcc/testsuite/gcc.target/i386/pr107647.c
  972837aa3a25d88acfe4af629c37d530  gcc/testsuite/gcc.target/i386/pr107863.c
! d69317a9b2139437521466bed65c9af8  gcc/testsuite/gcc.target/i386/pr107934.c
  48075294edf8cd1a881d62641b64bf53  gcc/testsuite/gcc.target/i386/pr107969.c
  78faa0a79d1b2ebb67bf0f082827008d  gcc/testsuite/gcc.target/i386/pr107970.c
  7db7bb050758aafe3487678dbc26ef13  gcc/testsuite/gcc.target/i386/pr107993.c
*************** f93f1f3ff8581b00136eccb401d0e142  gcc/te
*** 69698,69717 ****
  1246612a5c47e50325bced1167f36a79  gcc/testsuite/gcc.target/i386/pr108436.c
  7fc748dc706bfe536df57132aa1fc2b1  gcc/testsuite/gcc.target/i386/pr108516-1.c
  3d9ce8d9fde5a211bf8aeb8e5e2d87b9  gcc/testsuite/gcc.target/i386/pr108516-2.c
  6d48857e6500359b1e3e69289a21f6cc  gcc/testsuite/gcc.target/i386/pr108724.c
  f41bcc9cec5b788807bebdd7850d9984  gcc/testsuite/gcc.target/i386/pr108774.c
  635557f7ce6a4e98cde86d132129bca7  gcc/testsuite/gcc.target/i386/pr108831-1.c
  2a282149878baf27ad80c5fbcc6663fc  gcc/testsuite/gcc.target/i386/pr108831-2.c
  19d501a9e83dcf447b7a20813cd5c63e  gcc/testsuite/gcc.target/i386/pr108832.c
  1675944d49d0d21e6ed54ac1de036ca6  gcc/testsuite/gcc.target/i386/pr109052-2.c
  06350ebd5780be04cce09335e3042ce5  gcc/testsuite/gcc.target/i386/pr109052.c
  4951625cf53f5113b1aa560d5d82ceb2  gcc/testsuite/gcc.target/i386/pr109109-1.c
  b1a0a8623e789df1f0aa53476ec194b6  gcc/testsuite/gcc.target/i386/pr109109-2.c
! 55bf808880a186f7e91325a07a3c8b97  gcc/testsuite/gcc.target/i386/pr109117-1.c
  42289d7c9bc3961bee61677fd75996d4  gcc/testsuite/gcc.target/i386/pr109137.c
  a643678ff500c5823e0dfd6f13a78767  gcc/testsuite/gcc.target/i386/pr109276.c
  0c97b030ebc254d658a2a94036b21e96  gcc/testsuite/gcc.target/i386/pr109362.c
  53f3c713c5195f8b1c6f3756b973b949  gcc/testsuite/gcc.target/i386/pr109458.c
  304b7d185da41754f69656f5bfa7d508  gcc/testsuite/gcc.target/i386/pr11001-memcpy-1.c
  7dbe55f1460795545dd744807466a430  gcc/testsuite/gcc.target/i386/pr11001-memcpy-2.c
  cbe58ae1efc3b97c1019a430e1fedfcb  gcc/testsuite/gcc.target/i386/pr11001-memcpy-3.c
--- 74400,74447 ----
  1246612a5c47e50325bced1167f36a79  gcc/testsuite/gcc.target/i386/pr108436.c
  7fc748dc706bfe536df57132aa1fc2b1  gcc/testsuite/gcc.target/i386/pr108516-1.c
  3d9ce8d9fde5a211bf8aeb8e5e2d87b9  gcc/testsuite/gcc.target/i386/pr108516-2.c
+ e0258faf196776962936111534af031c  gcc/testsuite/gcc.target/i386/pr108707.c
  6d48857e6500359b1e3e69289a21f6cc  gcc/testsuite/gcc.target/i386/pr108724.c
  f41bcc9cec5b788807bebdd7850d9984  gcc/testsuite/gcc.target/i386/pr108774.c
+ 81538f5386300d4bcfae4cb1f355a752  gcc/testsuite/gcc.target/i386/pr108804.c
  635557f7ce6a4e98cde86d132129bca7  gcc/testsuite/gcc.target/i386/pr108831-1.c
  2a282149878baf27ad80c5fbcc6663fc  gcc/testsuite/gcc.target/i386/pr108831-2.c
  19d501a9e83dcf447b7a20813cd5c63e  gcc/testsuite/gcc.target/i386/pr108832.c
+ 35b08fb233f8e50c79f9031224448ebb  gcc/testsuite/gcc.target/i386/pr108938-1.c
+ f06baf49d6978c656ea587aa54eefe45  gcc/testsuite/gcc.target/i386/pr108938-2.c
+ 26b8bc1a9b7d5eb5c4645c3a2084f7d7  gcc/testsuite/gcc.target/i386/pr108938-3.c
+ b2d87acf7076d3345828df49eb24d0c9  gcc/testsuite/gcc.target/i386/pr108938-load-1.c
+ 53491e3f538a93b51e92b8c8a03197c8  gcc/testsuite/gcc.target/i386/pr108938-load-2.c
+ 7bdb45a4703b69087f030127552f957b  gcc/testsuite/gcc.target/i386/pr109011-b1.c
+ 493bcc5a2a113b9fdedec73abb28c3f2  gcc/testsuite/gcc.target/i386/pr109011-b2.c
+ cf9e12eab7a0e867f1d7c756c57d2ce8  gcc/testsuite/gcc.target/i386/pr109011-d1.c
+ 33be5700f9df195664f3ef588ed6a38c  gcc/testsuite/gcc.target/i386/pr109011-d2.c
+ 84516af8f51fc6fa57d1b68c7e96ca68  gcc/testsuite/gcc.target/i386/pr109011-dq1.c
+ fdb825079d00bd7662b2d22d85896ebf  gcc/testsuite/gcc.target/i386/pr109011-dq2.c
+ 34c7f8d31feefb1b1ea95f31a45be685  gcc/testsuite/gcc.target/i386/pr109011-q1.c
+ 40efd2aaeafc622ded4f09059ba3f993  gcc/testsuite/gcc.target/i386/pr109011-q2.c
+ 2e74d2a67000b07163aa8bb775292f54  gcc/testsuite/gcc.target/i386/pr109011-w1.c
+ 20757fb988762a2246bdc505aaf4d3ef  gcc/testsuite/gcc.target/i386/pr109011-w2.c
  1675944d49d0d21e6ed54ac1de036ca6  gcc/testsuite/gcc.target/i386/pr109052-2.c
  06350ebd5780be04cce09335e3042ce5  gcc/testsuite/gcc.target/i386/pr109052.c
  4951625cf53f5113b1aa560d5d82ceb2  gcc/testsuite/gcc.target/i386/pr109109-1.c
  b1a0a8623e789df1f0aa53476ec194b6  gcc/testsuite/gcc.target/i386/pr109109-2.c
! c53a3d9bef0c2240ee08db4b18471dbd  gcc/testsuite/gcc.target/i386/pr109117-1.c
  42289d7c9bc3961bee61677fd75996d4  gcc/testsuite/gcc.target/i386/pr109137.c
+ 52be5e84981a88e5c246ca3d21014b7e  gcc/testsuite/gcc.target/i386/pr109173-1.c
+ dc74ed1bf908a060467845b63e837101  gcc/testsuite/gcc.target/i386/pr109174-1.c
  a643678ff500c5823e0dfd6f13a78767  gcc/testsuite/gcc.target/i386/pr109276.c
  0c97b030ebc254d658a2a94036b21e96  gcc/testsuite/gcc.target/i386/pr109362.c
  53f3c713c5195f8b1c6f3756b973b949  gcc/testsuite/gcc.target/i386/pr109458.c
+ 3d997ce0e13218819a2d74880f4ade56  gcc/testsuite/gcc.target/i386/pr109504.c
+ ca03ac246410edffe018806fae9bc377  gcc/testsuite/gcc.target/i386/pr109520.c
+ abd4572edbe8fd903a9187e979f0564a  gcc/testsuite/gcc.target/i386/pr109807.c
+ b5200af3303388d353bf85ab73fac84f  gcc/testsuite/gcc.target/i386/pr109825.c
+ 22f1825b4e8265962dce9925a8bc92d8  gcc/testsuite/gcc.target/i386/pr109900.c
+ b95ee272164f563885f17e6df6e93167  gcc/testsuite/gcc.target/i386/pr109944-1.c
+ 56a15304b20e0ff0ec36a265d84f7527  gcc/testsuite/gcc.target/i386/pr109944-2.c
+ 6451cad3799944cbc2e881d0d2d9bfc6  gcc/testsuite/gcc.target/i386/pr109973-1.c
+ fc1df0ecccbe96f2a96fe0fd28951145  gcc/testsuite/gcc.target/i386/pr109973-2.c
  304b7d185da41754f69656f5bfa7d508  gcc/testsuite/gcc.target/i386/pr11001-memcpy-1.c
  7dbe55f1460795545dd744807466a430  gcc/testsuite/gcc.target/i386/pr11001-memcpy-2.c
  cbe58ae1efc3b97c1019a430e1fedfcb  gcc/testsuite/gcc.target/i386/pr11001-memcpy-3.c
*************** cbe58ae1efc3b97c1019a430e1fedfcb  gcc/te
*** 69721,69730 ****
--- 74451,74581 ----
  e00380cd123a9ea3429ab36047aa6624  gcc/testsuite/gcc.target/i386/pr11001-strlen-1.c
  f2961b113a187971d8c265513b16a3a5  gcc/testsuite/gcc.target/i386/pr11001-strlen-2.c
  27f57729aea057bdb268886140eaba10  gcc/testsuite/gcc.target/i386/pr11001-strlen-3.c
+ 0f5a4c380d7cb83b5a8e58a760e8cd81  gcc/testsuite/gcc.target/i386/pr110018-1.c
+ 56b5f994117869bab5e40df508009adc  gcc/testsuite/gcc.target/i386/pr110018-2.c
+ de2b1ce9edc1e45dc5ccdb708b9289c9  gcc/testsuite/gcc.target/i386/pr110067.c
+ 9abe147c3103ef790ce491ae8a226c2e  gcc/testsuite/gcc.target/i386/pr110083.c
  f562385a23a792c182758e4565e2e1a0  gcc/testsuite/gcc.target/i386/pr110108-2.c
+ 425bc2cf2325b0948f0065ade9ca22a8  gcc/testsuite/gcc.target/i386/pr110108-3.c
+ 0b6d2f6e686dfad86cccb24dde10e480  gcc/testsuite/gcc.target/i386/pr110108.c
+ e8cdf7e6d6d3a11b5536f80ca371c69e  gcc/testsuite/gcc.target/i386/pr110170-2.c
+ ae133b6a6857ca5bc2e95a272e01f447  gcc/testsuite/gcc.target/i386/pr110170-3.c
+ bee23171881c8628b022e11c82af1737  gcc/testsuite/gcc.target/i386/pr110170.c
  5d3322fc19dcfb45977b7e950b6b7abd  gcc/testsuite/gcc.target/i386/pr110206.c
  a9e9b13ffffb6326bdaaf3a4037cac8b  gcc/testsuite/gcc.target/i386/pr110227.c
+ 7c4e6a1aee658b34e96c1c14c2cbf28b  gcc/testsuite/gcc.target/i386/pr110232.c
  7f0cde3ec2fdeaca91525ac49787aa22  gcc/testsuite/gcc.target/i386/pr110309.c
+ b6245dfe719261e91e59f38dfe5a4812  gcc/testsuite/gcc.target/i386/pr110310.c
+ 4ad7a316776972272f625f2de53164d6  gcc/testsuite/gcc.target/i386/pr110372.c
+ 68e0d40a0818ba1b85cd95dc7ce0b1e4  gcc/testsuite/gcc.target/i386/pr110438.c
+ 674aa758380ee7d3317eb3b15cc45aac  gcc/testsuite/gcc.target/i386/pr110452.c
+ 3dfd85e970cc0e49b8dd83eed52c45b5  gcc/testsuite/gcc.target/i386/pr110533.c
+ 1881a61bb94612252160d6e5f7b5e82c  gcc/testsuite/gcc.target/i386/pr110551-2.c
+ b8e579818f606e61adda2b0a5f6d00eb  gcc/testsuite/gcc.target/i386/pr110551.c
+ 399359780aff7464c83c447b92cb47b4  gcc/testsuite/gcc.target/i386/pr110588.c
+ dd3eccd855c45cecccb9c94bedec70a1  gcc/testsuite/gcc.target/i386/pr110591-2.c
+ 0e9fb9528717f574331e65eecf6b55c5  gcc/testsuite/gcc.target/i386/pr110591.c
+ 910a215c38515accc609e599aa44b29f  gcc/testsuite/gcc.target/i386/pr110598.c
+ 75afd745fea78079d6bc6909053977bf  gcc/testsuite/gcc.target/i386/pr110701.c
+ f212514a427070216dde696c2051d1d5  gcc/testsuite/gcc.target/i386/pr110717-2.c
+ b103630dbb646d2ae85ba29c9f6f1057  gcc/testsuite/gcc.target/i386/pr110717.c
+ d9f9c066154ea6fed146f6dcf67c639c  gcc/testsuite/gcc.target/i386/pr110762-v4hf.c
+ 9317c818fec21471452493564283d56e  gcc/testsuite/gcc.target/i386/pr110762.c
+ 682995f80646e1e1d0ef68ab88795cc1  gcc/testsuite/gcc.target/i386/pr110788.c
+ 99ca511cb8a09f2005babab03f6a6337  gcc/testsuite/gcc.target/i386/pr110790-1.c
+ 71bb94a8df19ac4d3820f560839262c2  gcc/testsuite/gcc.target/i386/pr110790-2.c
+ 2ba5d433c622303def352cc3d13ed930  gcc/testsuite/gcc.target/i386/pr110792.c
+ f677fb794e525a12d302549971a7b70d  gcc/testsuite/gcc.target/i386/pr110832-1.c
+ 86e2c61b8ce60db6902944fcea70c9bb  gcc/testsuite/gcc.target/i386/pr110832-2.c
+ 09f5d6f078e626469f630e38c4729317  gcc/testsuite/gcc.target/i386/pr110832-3.c
+ 304a3d4f503374d056374e6a414b82e3  gcc/testsuite/gcc.target/i386/pr110843.c
+ 397b5fc62039e6b08354b9dd22da90d6  gcc/testsuite/gcc.target/i386/pr111023-2.c
+ b88aae0d24fb15cc43715836d9bf2c18  gcc/testsuite/gcc.target/i386/pr111023-4b.c
+ 060012033df7167c54831b5b28cf562c  gcc/testsuite/gcc.target/i386/pr111023-8b.c
+ 95fbcd7ddaac3c855e985835673182ac  gcc/testsuite/gcc.target/i386/pr111023.c
+ 4166f0cbbec98584e09dedc7e128c6d4  gcc/testsuite/gcc.target/i386/pr111068.c
+ 9f4b24b8710ca01983411725919ea553  gcc/testsuite/gcc.target/i386/pr111127.c
+ ef802a25b2bc4b4b385b11e23da65eb7  gcc/testsuite/gcc.target/i386/pr111225.c
+ c9065d2ec6fc0f6750fa18d0a76c0c4c  gcc/testsuite/gcc.target/i386/pr111228.c
+ d8cca194dc6db82d20ea1426711cc2ea  gcc/testsuite/gcc.target/i386/pr111267.c
+ 9355c41ef1e78b70305475dee4bed5c8  gcc/testsuite/gcc.target/i386/pr111306.c
+ 1459550770245224c9edce111674e4e5  gcc/testsuite/gcc.target/i386/pr111340.c
+ 5792d8414a49aa4afbf19fa324e6fc73  gcc/testsuite/gcc.target/i386/pr111657.c
+ d4cd7dbfdbbd5e89e09dc648e484762b  gcc/testsuite/gcc.target/i386/pr111698.c
+ 83c1fd77f5c5b1d08ae6f047d224f609  gcc/testsuite/gcc.target/i386/pr111736.c
+ 3c98ef59fa755a2495cfd58c6b263590  gcc/testsuite/gcc.target/i386/pr111745.c
+ 723cba398f919dd4e8c018e95b47707b  gcc/testsuite/gcc.target/i386/pr111753.c
+ b43e8c56c9033d4c1f8d39f742aab4d4  gcc/testsuite/gcc.target/i386/pr111820-1.c
+ 603eaebdbc5d49ed79685f9993d08daa  gcc/testsuite/gcc.target/i386/pr111820-2.c
+ a02b7dbda2cbde55631a6de0c782cb06  gcc/testsuite/gcc.target/i386/pr111820-3.c
+ ca614dc6b270000921a424091862e6bc  gcc/testsuite/gcc.target/i386/pr111845.c
+ 66086c14fee56da075b7ab9d5aee985a  gcc/testsuite/gcc.target/i386/pr111889.c
+ c3cb44332bcb2fc9a2b71070dd592d16  gcc/testsuite/gcc.target/i386/pr111907.c
+ 6b5d4f53e8a1fd75a906e1a3cc1a449c  gcc/testsuite/gcc.target/i386/pr112276.c
+ 592fbf1f98a7c30e432c6c49c9e70ab3  gcc/testsuite/gcc.target/i386/pr112325-1.c
+ ee7c876119a1d014a83f4ab835388676  gcc/testsuite/gcc.target/i386/pr112325-2.c
+ a9b4757dba2129a6f1d4ec6515362fb5  gcc/testsuite/gcc.target/i386/pr112325-mmx-1.c
+ a1c510b43849c91a61f1aa0ac0f65c29  gcc/testsuite/gcc.target/i386/pr112393.c
+ b63b3d50a115221d6c0159d9b30c489f  gcc/testsuite/gcc.target/i386/pr112394.c
+ 5f43620a455b1da47e50b76144134c1c  gcc/testsuite/gcc.target/i386/pr112445.c
+ e62ae9208252f235efbfd2491b30d6ad  gcc/testsuite/gcc.target/i386/pr112464.c
+ e36cb7df855bcf5bf05b3b03d5ddabb6  gcc/testsuite/gcc.target/i386/pr112494.c
+ d639374a10f845f4130a83222b9ee43c  gcc/testsuite/gcc.target/i386/pr112495.c
+ 35a8999d2b193e394aa0f2a62dc658b2  gcc/testsuite/gcc.target/i386/pr112496.c
+ 15369f3b1980799cf460d0387f219f17  gcc/testsuite/gcc.target/i386/pr112532.c
+ 25ecc2e8c60064d0e6472dd56a13598e  gcc/testsuite/gcc.target/i386/pr112605-1.c
+ c5bf5cd32acee0668f89c44d195c3ef2  gcc/testsuite/gcc.target/i386/pr112605-2.c
+ 10b308e0b6093a29ea2c232670caebf1  gcc/testsuite/gcc.target/i386/pr112605.c
+ 4b6e4410c846e7fc966a99149449dab6  gcc/testsuite/gcc.target/i386/pr112623.c
+ 1601f8939826f2a25f2d128d43833970  gcc/testsuite/gcc.target/i386/pr112672.c
+ 0b828ee6d6e371170ee0a327aaabc939  gcc/testsuite/gcc.target/i386/pr112686.c
+ 07489883afa139c8dc32fdc1e522ae56  gcc/testsuite/gcc.target/i386/pr112816.c
+ f9de493ed7de291c5d3823adeea1b530  gcc/testsuite/gcc.target/i386/pr112830.c
+ c7536259cf1c735ccb0b3dba13a99d7d  gcc/testsuite/gcc.target/i386/pr112875.c
+ cee904627dd8919025dea0c6817c07d5  gcc/testsuite/gcc.target/i386/pr112891-2.c
+ 008137751ea4cc5c732bf09733a5c5d3  gcc/testsuite/gcc.target/i386/pr112891.c
+ c1fc43e09bc0ea310a0ac5413393974b  gcc/testsuite/gcc.target/i386/pr112943.c
+ fbbc62e1df14b88a5f21ff14a68a9210  gcc/testsuite/gcc.target/i386/pr112962.c
+ 16b0db7542d3fa79bc5c5e987147532d  gcc/testsuite/gcc.target/i386/pr112992.c
+ b93179270ceae2b38ad009cffbecd4ca  gcc/testsuite/gcc.target/i386/pr113044.c
+ b336efc3872fb3d530f97e9556a46578  gcc/testsuite/gcc.target/i386/pr113048.c
+ 985d15f4237e366d808d224318b78cb2  gcc/testsuite/gcc.target/i386/pr113122-1.c
+ d150e8020454e98754c7dabfd41ad2ea  gcc/testsuite/gcc.target/i386/pr113122-2.c
+ 122f757ff15551df2a5ee4ba2135d85f  gcc/testsuite/gcc.target/i386/pr113122-3.c
+ 2f2dbd2c371a9961cb21196f2ee6f88d  gcc/testsuite/gcc.target/i386/pr113122-4.c
+ 234a82d280e8430bcdddf0d13ef70971  gcc/testsuite/gcc.target/i386/pr113133-1.c
+ 9fb3fb011da6ec53a9b79e09b5677dbc  gcc/testsuite/gcc.target/i386/pr113133-2.c
+ aa7afd82afab476cca1d41fe1223f473  gcc/testsuite/gcc.target/i386/pr113231.c
+ 5a42928e4c2936666a4e8c610a50ce96  gcc/testsuite/gcc.target/i386/pr113415.c
+ 457ec900383feae9352e7455f7d503c8  gcc/testsuite/gcc.target/i386/pr113560.c
+ 4b607a87f64fa4cdb46c07d556b6c89f  gcc/testsuite/gcc.target/i386/pr113622-1.c
+ 56da2b6247afd52355a77b7d0ed83122  gcc/testsuite/gcc.target/i386/pr113622-2.c
+ 3a9d8d29fd88cf096fa864f0d13222fc  gcc/testsuite/gcc.target/i386/pr113622-3.c
+ 32961cbf15615c89045042f8ad2ac064  gcc/testsuite/gcc.target/i386/pr113656.c
+ d0e5711b97afe1b1990bb5e2ae02b3a6  gcc/testsuite/gcc.target/i386/pr113670.c
+ ccb5cb7c7bddafe88ad220131d5c37e3  gcc/testsuite/gcc.target/i386/pr113689-1.c
+ f493395d4fe6815eba3b57983b4a9ddb  gcc/testsuite/gcc.target/i386/pr113689-2.c
+ 345305b2acb8c137435a2f63294e05ac  gcc/testsuite/gcc.target/i386/pr113689-3.c
+ 50ffaa51abcbb82cfc7644b67824e8fc  gcc/testsuite/gcc.target/i386/pr113690.c
+ a9a573012fc484bb497dc872018bf972  gcc/testsuite/gcc.target/i386/pr113871-1a.c
+ ad5a6a885aebfea78cc5e42d766fb108  gcc/testsuite/gcc.target/i386/pr113871-1b.c
+ c6416e13d7dbfa56b101f9257c193a91  gcc/testsuite/gcc.target/i386/pr113871-2a.c
+ 95841561d5a9824472d5f728e3297766  gcc/testsuite/gcc.target/i386/pr113871-2b.c
+ 38f6df6ffccd9d0538ac7df25c1b5ed2  gcc/testsuite/gcc.target/i386/pr113871-3a.c
+ fc942bc001cac6a8e55208165c6642d9  gcc/testsuite/gcc.target/i386/pr113871-3b.c
+ 3ff0374eaff9559da2d215e34717d7a2  gcc/testsuite/gcc.target/i386/pr113871-4a.c
+ 395da2bfd4e853cfaf86d19371fef7fe  gcc/testsuite/gcc.target/i386/pr113871-5a.c
+ b436f1333f7de28683ddc43b3e4b97dc  gcc/testsuite/gcc.target/i386/pr113871-5b.c
+ b9fa89b57d1d0049a7e5e2e459fa4cc0  gcc/testsuite/gcc.target/i386/pr113876.c
+ 04b5ce89d67e35431c960a773e44688c  gcc/testsuite/gcc.target/i386/pr113921.c
+ bb78e50da618d52883c6032b5f11496e  gcc/testsuite/gcc.target/i386/pr114094.c
+ 45cca736f72d350d1e1d47780dd326c4  gcc/testsuite/gcc.target/i386/pr114097-1.c
+ f561e51e21b70027e9a545f161c78a39  gcc/testsuite/gcc.target/i386/pr114184.c
+ 98a1ee2137f67f693371dbb6f43702b2  gcc/testsuite/gcc.target/i386/pr114299.c
+ ca68db2c39d0a3fceab3c9705cb9af62  gcc/testsuite/gcc.target/i386/pr114319.c
+ 168635b91f788ee23782943f3ee8fc02  gcc/testsuite/gcc.target/i386/pr114334.c
+ d2e40d7bd7109a0b57be13dfeec77fe6  gcc/testsuite/gcc.target/i386/pr114339.c
+ 624a387ab1cfd526aa46778b8c3cbf5f  gcc/testsuite/gcc.target/i386/pr114415.c
  991b7f7f44e28179f98bb458fdb69ea6  gcc/testsuite/gcc.target/i386/pr11877-2.c
  e7f6a568e551d3786797d6f56294b949  gcc/testsuite/gcc.target/i386/pr11877.c
  b03b1d817538a863277c823b5e4cdf75  gcc/testsuite/gcc.target/i386/pr12092-1.c
*************** dcfc47d5c6f74562228eb399293c4bc5  gcc/te
*** 69797,69802 ****
--- 74648,74654 ----
  86281a53df1b24c8068e4bf1b184d74b  gcc/testsuite/gcc.target/i386/pr31628.c
  5ce3efb86f23dc0eae07a9a326f046aa  gcc/testsuite/gcc.target/i386/pr31799.c
  9131ed1be82a4a4fecdc9d0aa2021134  gcc/testsuite/gcc.target/i386/pr31854.c
+ d8f0d132b6babb11136a862b1d0d3d15  gcc/testsuite/gcc.target/i386/pr31985.c
  dfd05b1f491f52c6fed332039ead357a  gcc/testsuite/gcc.target/i386/pr32000-1.c
  a07b3ac10c2e8d8960d5f94aacc75325  gcc/testsuite/gcc.target/i386/pr32000-2.c
  9b916b67c68cce873259ce7198b6593b  gcc/testsuite/gcc.target/i386/pr32065-1.c
*************** edf114aaf603cd2b399d59ea698ebff8  gcc/te
*** 69905,69910 ****
--- 74757,74768 ----
  b17093c3bfb7dce01e2961b9007a74f1  gcc/testsuite/gcc.target/i386/pr37870.c
  66db28c964871d1cf5b53a83b4707bcf  gcc/testsuite/gcc.target/i386/pr38151-1.c
  4154ec0f103c247832ad4ef3c70ff33e  gcc/testsuite/gcc.target/i386/pr38240.c
+ 2c69d006fd815110892575342015618e  gcc/testsuite/gcc.target/i386/pr38534-1.c
+ c1899e08286807fb6bfc2b2da99581fd  gcc/testsuite/gcc.target/i386/pr38534-2.c
+ 4a18a72b7467fddfec9c4d9f270d1d73  gcc/testsuite/gcc.target/i386/pr38534-3.c
+ 5cfe5cc944e86507508d5eeb659614a2  gcc/testsuite/gcc.target/i386/pr38534-4.c
+ 297daecdcd9796eeec6e263f4992b39c  gcc/testsuite/gcc.target/i386/pr38534-5.c
+ 308e091c0874f29695a2f69017d71aa4  gcc/testsuite/gcc.target/i386/pr38534-6.c
  302fd577a2a020db1af8817a3e4168ac  gcc/testsuite/gcc.target/i386/pr38824.c
  cc52fb6e855215f99580b9fa0002669f  gcc/testsuite/gcc.target/i386/pr38931.c
  776dfcacbe92f325df29c325a1a39d91  gcc/testsuite/gcc.target/i386/pr38988.c
*************** f959f9b7f68ec9300176ea5f3b5b723a  gcc/te
*** 69968,69973 ****
--- 74826,74833 ----
  58183b44c704bf8f6adb8c75a84488d9  gcc/testsuite/gcc.target/i386/pr43546.c
  8fd04955fb3d4e10718dce3149a58f48  gcc/testsuite/gcc.target/i386/pr43618-1.c
  5635dcc46744c1f49edb4c954be65a2a  gcc/testsuite/gcc.target/i386/pr43638.c
+ fa4e98231e6d9ff3ceaf5e3e2a8006b7  gcc/testsuite/gcc.target/i386/pr43644-2.c
+ 1dd31d8a94c3a78141622b02e31c4b52  gcc/testsuite/gcc.target/i386/pr43644.c
  3ab94ca7094b4b2701ceb9a87bd5055b  gcc/testsuite/gcc.target/i386/pr43653.c
  1e6cfad2ee7ef499c25f339998f4e63f  gcc/testsuite/gcc.target/i386/pr43662.c
  5fc034f7335e1d13da593214c69166d4  gcc/testsuite/gcc.target/i386/pr43668.c
*************** e2c5c9c01d62f181543c46c15e625efc  gcc/te
*** 70100,70109 ****
  cc3feb019a23f31f22f8d90ea35306a2  gcc/testsuite/gcc.target/i386/pr51393.c
  5127dab483b6f86a4dd94731958d0698  gcc/testsuite/gcc.target/i386/pr51954.c
  feae34d686df3d5dc6348f1e08292d5f  gcc/testsuite/gcc.target/i386/pr51987.c
! 28bbe8fb8e03847360d72e655a04541c  gcc/testsuite/gcc.target/i386/pr52146.c
  fa01242d5badde4691345c598d6cad72  gcc/testsuite/gcc.target/i386/pr52171.c
! ef886cc6e383e494a854c7e9478d4347  gcc/testsuite/gcc.target/i386/pr52252-atom.c
! 66960d383ca0ec04f2cfc2ce546d9746  gcc/testsuite/gcc.target/i386/pr52252-core.c
  e90dc7f0b1e6d26c11b5224430e328db  gcc/testsuite/gcc.target/i386/pr52330.c
  c48d1106f891da8cb9f2181a389e01b7  gcc/testsuite/gcc.target/i386/pr52698.c
  0c3fdc1f40423ab5e185c0b1d9df7215  gcc/testsuite/gcc.target/i386/pr52736.c
--- 74960,74969 ----
  cc3feb019a23f31f22f8d90ea35306a2  gcc/testsuite/gcc.target/i386/pr51393.c
  5127dab483b6f86a4dd94731958d0698  gcc/testsuite/gcc.target/i386/pr51954.c
  feae34d686df3d5dc6348f1e08292d5f  gcc/testsuite/gcc.target/i386/pr51987.c
! 82298a8708df4bdb4784b6d76acb9446  gcc/testsuite/gcc.target/i386/pr52146.c
  fa01242d5badde4691345c598d6cad72  gcc/testsuite/gcc.target/i386/pr52171.c
! 8e05abd29e7e9ff35950d35273b14425  gcc/testsuite/gcc.target/i386/pr52252-atom.c
! 035dc0f5acfabbcff9a163f2cb1371af  gcc/testsuite/gcc.target/i386/pr52252-core.c
  e90dc7f0b1e6d26c11b5224430e328db  gcc/testsuite/gcc.target/i386/pr52330.c
  c48d1106f891da8cb9f2181a389e01b7  gcc/testsuite/gcc.target/i386/pr52698.c
  0c3fdc1f40423ab5e185c0b1d9df7215  gcc/testsuite/gcc.target/i386/pr52736.c
*************** c502c143bfe08e286784446e3a530233  gcc/te
*** 70154,70161 ****
  8c18d416dc1825c06a3a9dcbd8c0d384  gcc/testsuite/gcc.target/i386/pr54855-1.c
  099011458f2d14598fb51abb03498f98  gcc/testsuite/gcc.target/i386/pr54855-10.c
  7ea9105d4d66f0c9724cbec7a7c70dd8  gcc/testsuite/gcc.target/i386/pr54855-11.c
! 915f45d04c9dfc17ee40450f653a11f7  gcc/testsuite/gcc.target/i386/pr54855-12.c
! 306948b0d5b1130b66d0cea7fca028f5  gcc/testsuite/gcc.target/i386/pr54855-13.c
  e1f8fefaf23ab23b68f6b9e333156fbd  gcc/testsuite/gcc.target/i386/pr54855-2.c
  c5180162b29d54e400e719e562e3e7b2  gcc/testsuite/gcc.target/i386/pr54855-3.c
  6c8a61e66aa69d7b21476fdde3fc61e9  gcc/testsuite/gcc.target/i386/pr54855-4.c
--- 75014,75021 ----
  8c18d416dc1825c06a3a9dcbd8c0d384  gcc/testsuite/gcc.target/i386/pr54855-1.c
  099011458f2d14598fb51abb03498f98  gcc/testsuite/gcc.target/i386/pr54855-10.c
  7ea9105d4d66f0c9724cbec7a7c70dd8  gcc/testsuite/gcc.target/i386/pr54855-11.c
! c41787b461e07058b4753b061ebee528  gcc/testsuite/gcc.target/i386/pr54855-12.c
! da25227be6c2e8d97f4082c5dcee0ea8  gcc/testsuite/gcc.target/i386/pr54855-13.c
  e1f8fefaf23ab23b68f6b9e333156fbd  gcc/testsuite/gcc.target/i386/pr54855-2.c
  c5180162b29d54e400e719e562e3e7b2  gcc/testsuite/gcc.target/i386/pr54855-3.c
  6c8a61e66aa69d7b21476fdde3fc61e9  gcc/testsuite/gcc.target/i386/pr54855-4.c
*************** c5180162b29d54e400e719e562e3e7b2  gcc/te
*** 70163,70169 ****
  4a710e105a13bc0c780bd4a46bd28238  gcc/testsuite/gcc.target/i386/pr54855-6.c
  eaa8b0340911db238f1a4cf7122772b7  gcc/testsuite/gcc.target/i386/pr54855-7.c
  44e6d3206f845c1ad1a6581540a52f97  gcc/testsuite/gcc.target/i386/pr54855-8.c
! 508a976f0ef4831a104047d6425744ca  gcc/testsuite/gcc.target/i386/pr54855-9.c
  f9b778e3b98dfbae81a8d9edc0e6e7f0  gcc/testsuite/gcc.target/i386/pr55049-1.c
  2d60942307fe4e7e807550a8a784f351  gcc/testsuite/gcc.target/i386/pr55093.c
  65f2fe2ece7ea124fb44ac3412f502b0  gcc/testsuite/gcc.target/i386/pr55116-1.c
--- 75023,75029 ----
  4a710e105a13bc0c780bd4a46bd28238  gcc/testsuite/gcc.target/i386/pr54855-6.c
  eaa8b0340911db238f1a4cf7122772b7  gcc/testsuite/gcc.target/i386/pr54855-7.c
  44e6d3206f845c1ad1a6581540a52f97  gcc/testsuite/gcc.target/i386/pr54855-8.c
! bc63c3756a4c8558a345b23aed4936ba  gcc/testsuite/gcc.target/i386/pr54855-9.c
  f9b778e3b98dfbae81a8d9edc0e6e7f0  gcc/testsuite/gcc.target/i386/pr55049-1.c
  2d60942307fe4e7e807550a8a784f351  gcc/testsuite/gcc.target/i386/pr55093.c
  65f2fe2ece7ea124fb44ac3412f502b0  gcc/testsuite/gcc.target/i386/pr55116-1.c
*************** ac964f4b563acffae35942f124a29c33  gcc/te
*** 70364,70374 ****
  2b7674a20e784b4cf390cb695a576dfe  gcc/testsuite/gcc.target/i386/pr64291-2.c
  e05ae6facbbbf26826893a785e206bc4  gcc/testsuite/gcc.target/i386/pr64317.c
  062641897c1f576f8e34f6685a28feab  gcc/testsuite/gcc.target/i386/pr64386.c
! 4ab995a39be1d9f6ab51bed74868b4d9  gcc/testsuite/gcc.target/i386/pr64387.c
  7f461e790905a6a59c18169efe63b087  gcc/testsuite/gcc.target/i386/pr64393.c
  a6c2194cbd848e329ab5c8240df1a6f0  gcc/testsuite/gcc.target/i386/pr64409.c
  0377a72cd6ce11f8f6572ea17dc41a9c  gcc/testsuite/gcc.target/i386/pr64513.c
  10edafa5d28fec2dd9bc1ecab31a24f3  gcc/testsuite/gcc.target/i386/pr64617.c
  1373d22a1c11a77bbd5c3b0ae7ab163b  gcc/testsuite/gcc.target/i386/pr64905.c
  3f9f04c2528a876d6e1d568bacdc4432  gcc/testsuite/gcc.target/i386/pr65078-1.c
  eb5c42e7434196907a6b147b87ede739  gcc/testsuite/gcc.target/i386/pr65078-2.c
--- 75224,75235 ----
  2b7674a20e784b4cf390cb695a576dfe  gcc/testsuite/gcc.target/i386/pr64291-2.c
  e05ae6facbbbf26826893a785e206bc4  gcc/testsuite/gcc.target/i386/pr64317.c
  062641897c1f576f8e34f6685a28feab  gcc/testsuite/gcc.target/i386/pr64386.c
! c1f485778a538436a6a68f5e6498922d  gcc/testsuite/gcc.target/i386/pr64387.c
  7f461e790905a6a59c18169efe63b087  gcc/testsuite/gcc.target/i386/pr64393.c
  a6c2194cbd848e329ab5c8240df1a6f0  gcc/testsuite/gcc.target/i386/pr64409.c
  0377a72cd6ce11f8f6572ea17dc41a9c  gcc/testsuite/gcc.target/i386/pr64513.c
  10edafa5d28fec2dd9bc1ecab31a24f3  gcc/testsuite/gcc.target/i386/pr64617.c
+ b128456d496b4d734d4aab15cf2ab9cd  gcc/testsuite/gcc.target/i386/pr64731.c
  1373d22a1c11a77bbd5c3b0ae7ab163b  gcc/testsuite/gcc.target/i386/pr64905.c
  3f9f04c2528a876d6e1d568bacdc4432  gcc/testsuite/gcc.target/i386/pr65078-1.c
  eb5c42e7434196907a6b147b87ede739  gcc/testsuite/gcc.target/i386/pr65078-2.c
*************** f6aed10f35c73b007f503bc7420b6c99  gcc/te
*** 70526,70532 ****
  9ef7148569dcf23a63b9a3ddc540cd73  gcc/testsuite/gcc.target/i386/pr68990.c
  70cde2be44d04b4655e5832e5347b750  gcc/testsuite/gcc.target/i386/pr68991.c
  13a06d6cf77d90ce5afc167ace2e59f4  gcc/testsuite/gcc.target/i386/pr69010.c
! b0b6b0c99b0c2c7b2b0ccafefafb09cb  gcc/testsuite/gcc.target/i386/pr69030.c
  c5ec6ad26756dfcc9ab3e3e13b35b8d4  gcc/testsuite/gcc.target/i386/pr69052.c
  83614eb45e5ff50c722598b07a6d24ed  gcc/testsuite/gcc.target/i386/pr69140.c
  d22d67b66500fb3728fbb28c6b1f1e15  gcc/testsuite/gcc.target/i386/pr69171-1.c
--- 75387,75393 ----
  9ef7148569dcf23a63b9a3ddc540cd73  gcc/testsuite/gcc.target/i386/pr68990.c
  70cde2be44d04b4655e5832e5347b750  gcc/testsuite/gcc.target/i386/pr68991.c
  13a06d6cf77d90ce5afc167ace2e59f4  gcc/testsuite/gcc.target/i386/pr69010.c
! cd2d53c3d9fd98ca79c8e1ee95b0b197  gcc/testsuite/gcc.target/i386/pr69030.c
  c5ec6ad26756dfcc9ab3e3e13b35b8d4  gcc/testsuite/gcc.target/i386/pr69052.c
  83614eb45e5ff50c722598b07a6d24ed  gcc/testsuite/gcc.target/i386/pr69140.c
  d22d67b66500fb3728fbb28c6b1f1e15  gcc/testsuite/gcc.target/i386/pr69171-1.c
*************** c8a2893ea0fde8d16222be9c58cb1f46  gcc/te
*** 70549,70557 ****
  2405d63480ce45885939957f93e0b459  gcc/testsuite/gcc.target/i386/pr69454-1.c
  7baa00da5b600cf9ac0059d740da1816  gcc/testsuite/gcc.target/i386/pr69454-2.c
  4baed9b88fed94b3bd199c8235745c94  gcc/testsuite/gcc.target/i386/pr69459.c
! 05855004b849a72af06e7dcbc61536a0  gcc/testsuite/gcc.target/i386/pr69471-3.c
! 2073c049f438d03ac6a1ebdad5191090  gcc/testsuite/gcc.target/i386/pr69482-1.c
! ef7acb24e613dbadf45fc15b65ab66d4  gcc/testsuite/gcc.target/i386/pr69482-2.c
  28bcee77a96d7f6cfe65409040fe5e10  gcc/testsuite/gcc.target/i386/pr69512.c
  3e28b4ade390d7c7ac3afa2b0617487e  gcc/testsuite/gcc.target/i386/pr69530.c
  51f445507ac4ace5b56d6e38e816cc6d  gcc/testsuite/gcc.target/i386/pr69551.c
--- 75410,75417 ----
  2405d63480ce45885939957f93e0b459  gcc/testsuite/gcc.target/i386/pr69454-1.c
  7baa00da5b600cf9ac0059d740da1816  gcc/testsuite/gcc.target/i386/pr69454-2.c
  4baed9b88fed94b3bd199c8235745c94  gcc/testsuite/gcc.target/i386/pr69459.c
! 20a9a210637f79017b23d7b676fe225c  gcc/testsuite/gcc.target/i386/pr69482-1.c
! 6b0891cd85b97e76852049638e4e042a  gcc/testsuite/gcc.target/i386/pr69482-2.c
  28bcee77a96d7f6cfe65409040fe5e10  gcc/testsuite/gcc.target/i386/pr69512.c
  3e28b4ade390d7c7ac3afa2b0617487e  gcc/testsuite/gcc.target/i386/pr69530.c
  51f445507ac4ace5b56d6e38e816cc6d  gcc/testsuite/gcc.target/i386/pr69551.c
*************** d5cd7c3367c572eacb1e10986253e7b6  gcc/te
*** 70562,70568 ****
  54a6b1cdefb04b6044321aa68b8ce4c6  gcc/testsuite/gcc.target/i386/pr69888.c
  18b5257a0bbaecefbf7a16d4882f7943  gcc/testsuite/gcc.target/i386/pr69891.c
  8814ce3cb1c59fd8c0c53db743c9c3b4  gcc/testsuite/gcc.target/i386/pr70007.c
! c98c404b55db11cf40d49c45407c41e7  gcc/testsuite/gcc.target/i386/pr70021.c
  0b8a4bab344332b86c461073997de777  gcc/testsuite/gcc.target/i386/pr70023.c
  ffe191e28f01770a627ed106f22bf734  gcc/testsuite/gcc.target/i386/pr70027.c
  969a64bc15f1c6ed459dba9ae3ea08d2  gcc/testsuite/gcc.target/i386/pr70028.c
--- 75422,75428 ----
  54a6b1cdefb04b6044321aa68b8ce4c6  gcc/testsuite/gcc.target/i386/pr69888.c
  18b5257a0bbaecefbf7a16d4882f7943  gcc/testsuite/gcc.target/i386/pr69891.c
  8814ce3cb1c59fd8c0c53db743c9c3b4  gcc/testsuite/gcc.target/i386/pr70007.c
! 95ffbd13aaed8691fe25868dd38a9d2a  gcc/testsuite/gcc.target/i386/pr70021.c
  0b8a4bab344332b86c461073997de777  gcc/testsuite/gcc.target/i386/pr70023.c
  ffe191e28f01770a627ed106f22bf734  gcc/testsuite/gcc.target/i386/pr70027.c
  969a64bc15f1c6ed459dba9ae3ea08d2  gcc/testsuite/gcc.target/i386/pr70028.c
*************** b58f75f5f0f7fddf4cec8fc6a02cb7ca  gcc/te
*** 70601,70612 ****
  77a10eac7238aed7e2e4bc7e46fdbf09  gcc/testsuite/gcc.target/i386/pr70300.c
  857f3aaeea9ed51acaa70ac8080e3855  gcc/testsuite/gcc.target/i386/pr70302.c
  6192086ea1bd3f4ca3024f18ae02c92b  gcc/testsuite/gcc.target/i386/pr70314.c
! ccdd5c4d93dfe61c6892752fc3490614  gcc/testsuite/gcc.target/i386/pr70321.c
  8eb635052e7af90b767d742c35d98c12  gcc/testsuite/gcc.target/i386/pr70322-1.c
  614a4d96f766f9b0c9a16b2c6430a0c4  gcc/testsuite/gcc.target/i386/pr70322-2.c
  000306df7153399c97be28712e1e4637  gcc/testsuite/gcc.target/i386/pr70322-3.c
  20bf8cbdb5ec84cb85770259cbdb7da9  gcc/testsuite/gcc.target/i386/pr70322-4.c
! 668cf582ac8163a25897442803aa4cbd  gcc/testsuite/gcc.target/i386/pr70325.c
  e44800457a70163ec72b2dc33ac17526  gcc/testsuite/gcc.target/i386/pr70327.c
  eb4e22d671989cb7f3fba5d82472ab65  gcc/testsuite/gcc.target/i386/pr70355.c
  9d7c81de8851fa380ebd81b0f4c1c5a4  gcc/testsuite/gcc.target/i386/pr70359.c
--- 75461,75472 ----
  77a10eac7238aed7e2e4bc7e46fdbf09  gcc/testsuite/gcc.target/i386/pr70300.c
  857f3aaeea9ed51acaa70ac8080e3855  gcc/testsuite/gcc.target/i386/pr70302.c
  6192086ea1bd3f4ca3024f18ae02c92b  gcc/testsuite/gcc.target/i386/pr70314.c
! 3d94d1fe4da3aaf19da298c2827c252d  gcc/testsuite/gcc.target/i386/pr70321.c
  8eb635052e7af90b767d742c35d98c12  gcc/testsuite/gcc.target/i386/pr70322-1.c
  614a4d96f766f9b0c9a16b2c6430a0c4  gcc/testsuite/gcc.target/i386/pr70322-2.c
  000306df7153399c97be28712e1e4637  gcc/testsuite/gcc.target/i386/pr70322-3.c
  20bf8cbdb5ec84cb85770259cbdb7da9  gcc/testsuite/gcc.target/i386/pr70322-4.c
! d178a4178315727b7ac6a7f18e055893  gcc/testsuite/gcc.target/i386/pr70325.c
  e44800457a70163ec72b2dc33ac17526  gcc/testsuite/gcc.target/i386/pr70327.c
  eb4e22d671989cb7f3fba5d82472ab65  gcc/testsuite/gcc.target/i386/pr70355.c
  9d7c81de8851fa380ebd81b0f4c1c5a4  gcc/testsuite/gcc.target/i386/pr70359.c
*************** c4dd0a4466890153a50da4018a6840e3  gcc/te
*** 70628,70634 ****
  d30fb05bd79f101c6bd53c37a89521cf  gcc/testsuite/gcc.target/i386/pr70689.c
  18fd16e0176d3982cb0de00173db61f3  gcc/testsuite/gcc.target/i386/pr70703.c
  ee4d21c179f70daddef4c7dfe1e1af37  gcc/testsuite/gcc.target/i386/pr70708.c
! b98041baad19fb37bd266fc10bd5bc38  gcc/testsuite/gcc.target/i386/pr70728.c
  ba9f70183a79e24b3e312229ab487b2a  gcc/testsuite/gcc.target/i386/pr70738-1.c
  fb74d73535ae13841ad274eed8746e1d  gcc/testsuite/gcc.target/i386/pr70738-2.c
  62b40d388752410d70587bdea276841f  gcc/testsuite/gcc.target/i386/pr70738-3.c
--- 75488,75494 ----
  d30fb05bd79f101c6bd53c37a89521cf  gcc/testsuite/gcc.target/i386/pr70689.c
  18fd16e0176d3982cb0de00173db61f3  gcc/testsuite/gcc.target/i386/pr70703.c
  ee4d21c179f70daddef4c7dfe1e1af37  gcc/testsuite/gcc.target/i386/pr70708.c
! c649eb9bcf37fdb7326072e730f21606  gcc/testsuite/gcc.target/i386/pr70728.c
  ba9f70183a79e24b3e312229ab487b2a  gcc/testsuite/gcc.target/i386/pr70738-1.c
  fb74d73535ae13841ad274eed8746e1d  gcc/testsuite/gcc.target/i386/pr70738-2.c
  62b40d388752410d70587bdea276841f  gcc/testsuite/gcc.target/i386/pr70738-3.c
*************** b4e9ddfcff5392084623bc865a470f0d  gcc/te
*** 70644,70658 ****
  b27b2690cfdc8b79c2ce0f89b171b834  gcc/testsuite/gcc.target/i386/pr70799-2.c
  f353395bccf918949658ea5606b5bc6e  gcc/testsuite/gcc.target/i386/pr70799-3.c
  4a1998a131bd50329d33a11477629de5  gcc/testsuite/gcc.target/i386/pr70821.c
! 1003b2af30448864252327bd08ddb57b  gcc/testsuite/gcc.target/i386/pr70858.c
  2969e0a99ac5696cdf2b676f9bebb301  gcc/testsuite/gcc.target/i386/pr70955.c
  b041f793f29c8dbb81f30cc6cff59540  gcc/testsuite/gcc.target/i386/pr71016.c
  cdf785a2bc0d7b4e9128691fc978d25e  gcc/testsuite/gcc.target/i386/pr71077.c
! 4686813e5aef13aac985ec9ba2058c27  gcc/testsuite/gcc.target/i386/pr71321.c
! d0bd03c535d9acf1fa5c53d9fab89cef  gcc/testsuite/gcc.target/i386/pr71346.c
  1c394993c347ba5c842359a75dc15aa5  gcc/testsuite/gcc.target/i386/pr71374.c
  7786a10672726c2ed77f67e580e70a6e  gcc/testsuite/gcc.target/i386/pr71549.c
! ac2396ab06594f438764afe4a73917f9  gcc/testsuite/gcc.target/i386/pr71621-1.c
  c16210c63be96d3385f19cd743ed1c7f  gcc/testsuite/gcc.target/i386/pr71621-2.c
  a9c6395b5501af8f7e41af6ddea5ede0  gcc/testsuite/gcc.target/i386/pr71647.c
  c889e958b00a84bc18acb602a17fb8a9  gcc/testsuite/gcc.target/i386/pr71652-2.c
--- 75504,75518 ----
  b27b2690cfdc8b79c2ce0f89b171b834  gcc/testsuite/gcc.target/i386/pr70799-2.c
  f353395bccf918949658ea5606b5bc6e  gcc/testsuite/gcc.target/i386/pr70799-3.c
  4a1998a131bd50329d33a11477629de5  gcc/testsuite/gcc.target/i386/pr70821.c
! a48f44b93ca051992ea6120398f963a9  gcc/testsuite/gcc.target/i386/pr70858.c
  2969e0a99ac5696cdf2b676f9bebb301  gcc/testsuite/gcc.target/i386/pr70955.c
  b041f793f29c8dbb81f30cc6cff59540  gcc/testsuite/gcc.target/i386/pr71016.c
  cdf785a2bc0d7b4e9128691fc978d25e  gcc/testsuite/gcc.target/i386/pr71077.c
! d48e079ab3a1a032189706649a987adc  gcc/testsuite/gcc.target/i386/pr71321.c
! 656e63c116a21fb6299c2b07a27d888e  gcc/testsuite/gcc.target/i386/pr71346.c
  1c394993c347ba5c842359a75dc15aa5  gcc/testsuite/gcc.target/i386/pr71374.c
  7786a10672726c2ed77f67e580e70a6e  gcc/testsuite/gcc.target/i386/pr71549.c
! 57972bfb9c97aae83bd5309e84871a62  gcc/testsuite/gcc.target/i386/pr71621-1.c
  c16210c63be96d3385f19cd743ed1c7f  gcc/testsuite/gcc.target/i386/pr71621-2.c
  a9c6395b5501af8f7e41af6ddea5ede0  gcc/testsuite/gcc.target/i386/pr71647.c
  c889e958b00a84bc18acb602a17fb8a9  gcc/testsuite/gcc.target/i386/pr71652-2.c
*************** e5be6cf6d0060be81cbbeb24d1b45ac8  gcc/te
*** 70682,70691 ****
  ebdf78610e5253029e5305e68875b6c9  gcc/testsuite/gcc.target/i386/pr77991.c
  f7128cf60180ba3fac33b941315c81be  gcc/testsuite/gcc.target/i386/pr78035.c
  a0f1a716d3aa44f2dbe260d265da5118  gcc/testsuite/gcc.target/i386/pr78037.c
! 01e4a31e89c869cea640914ee549516e  gcc/testsuite/gcc.target/i386/pr78057.c
  cb796275f121f6fc5bb34a1f5ecd6404  gcc/testsuite/gcc.target/i386/pr78102.c
  d2671f8de951e862a05a3b058c0e531b  gcc/testsuite/gcc.target/i386/pr78103-1.c
! 50efd3865abcadb7db28e7cfa5658fd7  gcc/testsuite/gcc.target/i386/pr78103-2.c
  d143377745242bb93324de6ab740c8fa  gcc/testsuite/gcc.target/i386/pr78103-3.c
  3414b03e159800ce2cea7361afdc1832  gcc/testsuite/gcc.target/i386/pr78120.c
  57fc37420cc22c6af539706f8bd31ff9  gcc/testsuite/gcc.target/i386/pr78132.c
--- 75542,75551 ----
  ebdf78610e5253029e5305e68875b6c9  gcc/testsuite/gcc.target/i386/pr77991.c
  f7128cf60180ba3fac33b941315c81be  gcc/testsuite/gcc.target/i386/pr78035.c
  a0f1a716d3aa44f2dbe260d265da5118  gcc/testsuite/gcc.target/i386/pr78037.c
! 2eceebafa8040e380209c0fbb4f79051  gcc/testsuite/gcc.target/i386/pr78057.c
  cb796275f121f6fc5bb34a1f5ecd6404  gcc/testsuite/gcc.target/i386/pr78102.c
  d2671f8de951e862a05a3b058c0e531b  gcc/testsuite/gcc.target/i386/pr78103-1.c
! c0447552da7231c248ebed47deda4cfc  gcc/testsuite/gcc.target/i386/pr78103-2.c
  d143377745242bb93324de6ab740c8fa  gcc/testsuite/gcc.target/i386/pr78103-3.c
  3414b03e159800ce2cea7361afdc1832  gcc/testsuite/gcc.target/i386/pr78120.c
  57fc37420cc22c6af539706f8bd31ff9  gcc/testsuite/gcc.target/i386/pr78132.c
*************** eeb101032ca1ec313a250b41e73a0923  gcc/te
*** 70707,70718 ****
  64583ca88a2ae5f59a647f8f764ef826  gcc/testsuite/gcc.target/i386/pr78791.c
  179510b05909a0d18190ef1e493d2f7d  gcc/testsuite/gcc.target/i386/pr78794.c
  8bb0a80b75fee7b1b9635d370229df0a  gcc/testsuite/gcc.target/i386/pr78899.c
! 34fbf36ae1414b01bc5a9dc0ebb3c8e2  gcc/testsuite/gcc.target/i386/pr78904-1.c
! 277de54e2a1675b60497b17747bbe2e0  gcc/testsuite/gcc.target/i386/pr78904-1a.c
! 6266343a3e642ee8ae580b29db7e0498  gcc/testsuite/gcc.target/i386/pr78904-1b.c
! 431ee362bd90ea68300d55f026847649  gcc/testsuite/gcc.target/i386/pr78904-2.c
! 2f562e0d11829cb6a36c493e9facf280  gcc/testsuite/gcc.target/i386/pr78904-2a.c
! 712871a48a305cee5d01588401905f17  gcc/testsuite/gcc.target/i386/pr78904-2b.c
  1afddfb891bc89f8889bd3969ca52488  gcc/testsuite/gcc.target/i386/pr78904-3.c
  1afddfb891bc89f8889bd3969ca52488  gcc/testsuite/gcc.target/i386/pr78904-3a.c
  471d1a52fd871f114161d4ed695fa762  gcc/testsuite/gcc.target/i386/pr78904-3b.c
--- 75567,75581 ----
  64583ca88a2ae5f59a647f8f764ef826  gcc/testsuite/gcc.target/i386/pr78791.c
  179510b05909a0d18190ef1e493d2f7d  gcc/testsuite/gcc.target/i386/pr78794.c
  8bb0a80b75fee7b1b9635d370229df0a  gcc/testsuite/gcc.target/i386/pr78899.c
! ebae8627d70e26f3340e157eb7d316d7  gcc/testsuite/gcc.target/i386/pr78904-1.c
! e8b661262c4c26e2ea7122f2b634d4bd  gcc/testsuite/gcc.target/i386/pr78904-10.c
! 1506ef50dc4d1794e86c6a478971f6ed  gcc/testsuite/gcc.target/i386/pr78904-10a.c
! 783049ac1f359e3d6a4428f8885847dd  gcc/testsuite/gcc.target/i386/pr78904-10b.c
! 8606d7f1ecd2b90608c841c502763a6b  gcc/testsuite/gcc.target/i386/pr78904-1a.c
! 9fb76a733fc7bdaaab3f78dc0eef5e03  gcc/testsuite/gcc.target/i386/pr78904-1b.c
! 4ccd44e1e1b3c290c80cdc80717e6bae  gcc/testsuite/gcc.target/i386/pr78904-2.c
! c2066ee25b357dc27c299536d9dbfdcb  gcc/testsuite/gcc.target/i386/pr78904-2a.c
! f3e14cf883e1bb54bd777c0dc38fec77  gcc/testsuite/gcc.target/i386/pr78904-2b.c
  1afddfb891bc89f8889bd3969ca52488  gcc/testsuite/gcc.target/i386/pr78904-3.c
  1afddfb891bc89f8889bd3969ca52488  gcc/testsuite/gcc.target/i386/pr78904-3a.c
  471d1a52fd871f114161d4ed695fa762  gcc/testsuite/gcc.target/i386/pr78904-3b.c
*************** ae0a051037800db981d2001886a1012d  gcc/te
*** 70725,70734 ****
--- 75588,75608 ----
  abda6bd7a71392efe02a028d9353051b  gcc/testsuite/gcc.target/i386/pr78904-6.c
  036c3a5d203e899a58e78db13ca602b2  gcc/testsuite/gcc.target/i386/pr78904-6a.c
  346edf1d01f9cd8440bdd34f2077b782  gcc/testsuite/gcc.target/i386/pr78904-6b.c
+ c58b3555e623a5e9d62c2a1e9c25c1c8  gcc/testsuite/gcc.target/i386/pr78904-7.c
+ e3cb0f2e63da755b126315d79a786e39  gcc/testsuite/gcc.target/i386/pr78904-7a.c
+ 2ab32580b3382328b81fc5def0b76dcb  gcc/testsuite/gcc.target/i386/pr78904-7b.c
+ 94111b167ef46323d52852f032f7a9aa  gcc/testsuite/gcc.target/i386/pr78904-8.c
+ d2728e0871d30e98e669ed1ff9eb9dd9  gcc/testsuite/gcc.target/i386/pr78904-8a.c
+ 4dacbabc89a5d0d2b17674a5b3496c16  gcc/testsuite/gcc.target/i386/pr78904-8b.c
+ 48a05bf2af61fe7602a8f2ec851472da  gcc/testsuite/gcc.target/i386/pr78904-9.c
+ 36e411e1841deb0eaf05ca4f970e1cda  gcc/testsuite/gcc.target/i386/pr78904-9a.c
+ b2bcd02697897408b4eee3163910363d  gcc/testsuite/gcc.target/i386/pr78904-9b.c
  ca042b3c4305f4f55aa06471b59ff5d4  gcc/testsuite/gcc.target/i386/pr78911-1.c
  d65aaa9022ffcb2d0576786f3af860ab  gcc/testsuite/gcc.target/i386/pr78911-2.c
  b738138063f176e961fde8e943e8de61  gcc/testsuite/gcc.target/i386/pr78952-1.c
  7776f23de5d0006aba640cdca032403a  gcc/testsuite/gcc.target/i386/pr78952-2.c
+ b857e7afc144cd72a44224bf991ae8a3  gcc/testsuite/gcc.target/i386/pr78952-3.c
+ f8ee14c0988872123295062028a63b6b  gcc/testsuite/gcc.target/i386/pr78952-4.c
  517093c2b414f120bba32bf8d566196c  gcc/testsuite/gcc.target/i386/pr78967-1.c
  b5a1195fb0000fa62d98484dc9e5e87b  gcc/testsuite/gcc.target/i386/pr78967-1a.c
  3faf4a91ec874eacedf3e8c2d0173971  gcc/testsuite/gcc.target/i386/pr78967-1b.c
*************** b5a1195fb0000fa62d98484dc9e5e87b  gcc/te
*** 70736,70741 ****
--- 75610,75627 ----
  7f21028fb6a23b07d60def66ad0aa430  gcc/testsuite/gcc.target/i386/pr78967-2a.c
  1bc40bd568d118d0618417c29a2b5cf5  gcc/testsuite/gcc.target/i386/pr78967-2b.c
  7a92b022c349ad0fc9deebe2be4405bc  gcc/testsuite/gcc.target/i386/pr78967-3.c
+ 4ebc983fa920ba0f78d33af23d62657d  gcc/testsuite/gcc.target/i386/pr79173-1.c
+ 616daf2d4d783e488553e78b6c46d260  gcc/testsuite/gcc.target/i386/pr79173-10.c
+ 480c378e954d49ead07ff613c02aa220  gcc/testsuite/gcc.target/i386/pr79173-11.c
+ 7b3c56c3a7c4a5016a3ea348a5e0d550  gcc/testsuite/gcc.target/i386/pr79173-12.c
+ 170afdaa9dbc731764f764f8d5d55a1c  gcc/testsuite/gcc.target/i386/pr79173-2.c
+ 072519c437f2f5a7fa2fade014904329  gcc/testsuite/gcc.target/i386/pr79173-3.c
+ dccb59824fde7bfbcbe8da947d024b4f  gcc/testsuite/gcc.target/i386/pr79173-4.c
+ 63c5ce927190bc9bd4a0b84e3f7b4ff8  gcc/testsuite/gcc.target/i386/pr79173-5.c
+ c499d2713fbbd62562e235f07df86f12  gcc/testsuite/gcc.target/i386/pr79173-6.c
+ 2660731156d235bdbcb3a7d4a8c03e56  gcc/testsuite/gcc.target/i386/pr79173-7.c
+ d194ada54d95951335f37ef52aa4264c  gcc/testsuite/gcc.target/i386/pr79173-8.c
+ 81311a620fa5b5b2f4299f34d643842a  gcc/testsuite/gcc.target/i386/pr79173-9.c
  34f00940b8e59e2ea4e70930a99d085c  gcc/testsuite/gcc.target/i386/pr79390.c
  ca3856428f6efee273c964dd181478b9  gcc/testsuite/gcc.target/i386/pr79495.c
  54f6598f08ee40c3b595937431a9760d  gcc/testsuite/gcc.target/i386/pr79498.c
*************** e24bb155bc16036a1f39902f9cda1133  gcc/te
*** 70744,70750 ****
  a899c2c752f43e7b6b3632e8e72b7058  gcc/testsuite/gcc.target/i386/pr79568-1.c
  a11495811689152262f1a40e2f796ce9  gcc/testsuite/gcc.target/i386/pr79568-2.c
  18b2847f138512a15d9b786fc39ff5df  gcc/testsuite/gcc.target/i386/pr79568-3.c
! dfa67d7fbcc2c68a9541c2549d5c65c0  gcc/testsuite/gcc.target/i386/pr79571.c
  d5021064232d41e8126229774a76b913  gcc/testsuite/gcc.target/i386/pr79593.c
  dab9304dfe29b159ebf7edf9bda9b645  gcc/testsuite/gcc.target/i386/pr79649.c
  52588f332bbbceb324db208297409c7f  gcc/testsuite/gcc.target/i386/pr79673.c
--- 75630,75636 ----
  a899c2c752f43e7b6b3632e8e72b7058  gcc/testsuite/gcc.target/i386/pr79568-1.c
  a11495811689152262f1a40e2f796ce9  gcc/testsuite/gcc.target/i386/pr79568-2.c
  18b2847f138512a15d9b786fc39ff5df  gcc/testsuite/gcc.target/i386/pr79568-3.c
! 307a1d1875bb34ebdaa0f9ef8998a222  gcc/testsuite/gcc.target/i386/pr79571.c
  d5021064232d41e8126229774a76b913  gcc/testsuite/gcc.target/i386/pr79593.c
  dab9304dfe29b159ebf7edf9bda9b645  gcc/testsuite/gcc.target/i386/pr79649.c
  52588f332bbbceb324db208297409c7f  gcc/testsuite/gcc.target/i386/pr79673.c
*************** a68ae3ab97b6d21670085a72bc4277db  gcc/te
*** 70774,70786 ****
  abc257b14188812bbc7b6c809868219a  gcc/testsuite/gcc.target/i386/pr80425-1.c
  f55b6997243b3c7b0d3f9a3969344c18  gcc/testsuite/gcc.target/i386/pr80425-2.c
  e14d5ef49b53cded3c0f7eb05be56489  gcc/testsuite/gcc.target/i386/pr80425-3.c
! ccd1c247864f05916416dc77c0aee2d4  gcc/testsuite/gcc.target/i386/pr80569.c
  7095adb94d5c22dd7820cabd3edd706a  gcc/testsuite/gcc.target/i386/pr80583.c
  0c5a8762e99a86ebb02539f557e3598b  gcc/testsuite/gcc.target/i386/pr80706.c
  12901605ab26feeefd09e02d26d24ea7  gcc/testsuite/gcc.target/i386/pr80732.c
  bb36bc80b1317e2a9173fafae3bac834  gcc/testsuite/gcc.target/i386/pr80819-1.c
  e4860277aff5bee9717885cd9f34a2aa  gcc/testsuite/gcc.target/i386/pr80819-2.c
! c1d3dffadb2171d3b96d7c99547fb0cb  gcc/testsuite/gcc.target/i386/pr80833-1.c
  ca6cd3958837a92bb6bdc09445126890  gcc/testsuite/gcc.target/i386/pr80833-2.c
  32bc4fd95f2deb94e2c3d3a4a2aecb27  gcc/testsuite/gcc.target/i386/pr80833-3.c
  e9d6922230050e7efcb4180dddeb82a9  gcc/testsuite/gcc.target/i386/pr80846-1.c
--- 75660,75672 ----
  abc257b14188812bbc7b6c809868219a  gcc/testsuite/gcc.target/i386/pr80425-1.c
  f55b6997243b3c7b0d3f9a3969344c18  gcc/testsuite/gcc.target/i386/pr80425-2.c
  e14d5ef49b53cded3c0f7eb05be56489  gcc/testsuite/gcc.target/i386/pr80425-3.c
! 4ed8cbab6f59f74bd919657389be0dec  gcc/testsuite/gcc.target/i386/pr80569.c
  7095adb94d5c22dd7820cabd3edd706a  gcc/testsuite/gcc.target/i386/pr80583.c
  0c5a8762e99a86ebb02539f557e3598b  gcc/testsuite/gcc.target/i386/pr80706.c
  12901605ab26feeefd09e02d26d24ea7  gcc/testsuite/gcc.target/i386/pr80732.c
  bb36bc80b1317e2a9173fafae3bac834  gcc/testsuite/gcc.target/i386/pr80819-1.c
  e4860277aff5bee9717885cd9f34a2aa  gcc/testsuite/gcc.target/i386/pr80819-2.c
! 9ece05e1b146422b25c883211926bbeb  gcc/testsuite/gcc.target/i386/pr80833-1.c
  ca6cd3958837a92bb6bdc09445126890  gcc/testsuite/gcc.target/i386/pr80833-2.c
  32bc4fd95f2deb94e2c3d3a4a2aecb27  gcc/testsuite/gcc.target/i386/pr80833-3.c
  e9d6922230050e7efcb4180dddeb82a9  gcc/testsuite/gcc.target/i386/pr80846-1.c
*************** c5d91f720ac19a39b21200b7763ea25f  gcc/te
*** 70829,70834 ****
--- 75715,75721 ----
  147e8ea8d47f4a3d8f4818e4d0b63af0  gcc/testsuite/gcc.target/i386/pr81769-1a.c
  151e53a6bb0727048dacc68c71734940  gcc/testsuite/gcc.target/i386/pr81769-1b.c
  ffa16d83c5a56297789b6491e1a84696  gcc/testsuite/gcc.target/i386/pr81769-2.c
+ bc9d6a8d154ce394c0572ac7f1b29989  gcc/testsuite/gcc.target/i386/pr81904.c
  19b3622fb150753481d323bf9ac175ff  gcc/testsuite/gcc.target/i386/pr81906.c
  115b670aa5d368116903b6d6bf4c83ef  gcc/testsuite/gcc.target/i386/pr81921.c
  9d3708841372a6448fa90429994de766  gcc/testsuite/gcc.target/i386/pr82002-1.c
*************** c10399d1ca461d449d887689665c60f5  gcc/te
*** 70856,70861 ****
--- 75743,75752 ----
  e9459bfcf921f112450c534f27774ed9  gcc/testsuite/gcc.target/i386/pr82499-1.c
  00d426c0b4a8c382f289d00f82fc7317  gcc/testsuite/gcc.target/i386/pr82499-2.c
  2914d4ca26cf79dcf54fc4298c7624a3  gcc/testsuite/gcc.target/i386/pr82499-3.c
+ ef4d1dab0750baf92ebba9a400bcfdb2  gcc/testsuite/gcc.target/i386/pr82524-1.c
+ 5325d1588b0caaf616a3a6b9639d442d  gcc/testsuite/gcc.target/i386/pr82524-2.c
+ 7dd63239df8e38cb86b68897923b3326  gcc/testsuite/gcc.target/i386/pr82524-3.c
+ 106b785f594b5d29653aec8f80cdfa5f  gcc/testsuite/gcc.target/i386/pr82524.c
  c68e8244d2a128db4097c8be34013b64  gcc/testsuite/gcc.target/i386/pr82556.c
  d779be6e6523bed8d49af2073be794c0  gcc/testsuite/gcc.target/i386/pr82580.c
  ec965c6c04e6eccada8b8ad3ae3be837  gcc/testsuite/gcc.target/i386/pr82618.c
*************** fee48546949cab9b7dea834adf9c10c3  gcc/te
*** 70884,70898 ****
  7312e4c0a341ddbb1d280ed6869fc821  gcc/testsuite/gcc.target/i386/pr82853-1.c
  c3301cc2465c8460c504da97e005dc50  gcc/testsuite/gcc.target/i386/pr82853-2.c
  515e5dcd6ad99630111df5a872a15e5d  gcc/testsuite/gcc.target/i386/pr82941-1.c
! cce8682d8e49dc83cd8b34fceaf37849  gcc/testsuite/gcc.target/i386/pr82941-2.c
! 1aea5be2654d4ae28e01b3b0bdbeddc4  gcc/testsuite/gcc.target/i386/pr82942-1.c
! e78b9ff33e2bc143eef4c5ce3bc640f4  gcc/testsuite/gcc.target/i386/pr82942-2.c
! 0012a85c6be348ae29beb70fd6ff806b  gcc/testsuite/gcc.target/i386/pr82990-1.c
  3ad428b83226dbf5b2a87eb43684bff0  gcc/testsuite/gcc.target/i386/pr82990-2.c
! 719d3a60657d860175b801b3a2ede1dc  gcc/testsuite/gcc.target/i386/pr82990-3.c
! 5ddddc7e6b297e35b1bffcfabfc78f47  gcc/testsuite/gcc.target/i386/pr82990-4.c
  2f9f76a6c879b9887bcca49404a95240  gcc/testsuite/gcc.target/i386/pr82990-5.c
! d7f60a991290b161c7a4e078936f009e  gcc/testsuite/gcc.target/i386/pr82990-6.c
  c154f3d5dbf0100ab4daf298da4d51da  gcc/testsuite/gcc.target/i386/pr82990-7.c
  c3aa2b794df8c4324dba61c205ba9aa6  gcc/testsuite/gcc.target/i386/pr83008.c
  6835eae8ea408bb193a56d38af9b51af  gcc/testsuite/gcc.target/i386/pr83210.c
--- 75775,75789 ----
  7312e4c0a341ddbb1d280ed6869fc821  gcc/testsuite/gcc.target/i386/pr82853-1.c
  c3301cc2465c8460c504da97e005dc50  gcc/testsuite/gcc.target/i386/pr82853-2.c
  515e5dcd6ad99630111df5a872a15e5d  gcc/testsuite/gcc.target/i386/pr82941-1.c
! fdfddb65846afd42b83e23e26400c970  gcc/testsuite/gcc.target/i386/pr82941-2.c
! a9cf69b9b81843306597b6b215bd0ffa  gcc/testsuite/gcc.target/i386/pr82942-1.c
! 08140398d6f0adb11dc1d845ebaa81bb  gcc/testsuite/gcc.target/i386/pr82942-2.c
! 2329c06da251ba6596ac51ab294d32ba  gcc/testsuite/gcc.target/i386/pr82990-1.c
  3ad428b83226dbf5b2a87eb43684bff0  gcc/testsuite/gcc.target/i386/pr82990-2.c
! 690c0579888015032cbf35d1c46e79b9  gcc/testsuite/gcc.target/i386/pr82990-3.c
! 0d73bdb5e70db1033d425b4ad36c7626  gcc/testsuite/gcc.target/i386/pr82990-4.c
  2f9f76a6c879b9887bcca49404a95240  gcc/testsuite/gcc.target/i386/pr82990-5.c
! fdaebf1bf8a43d207fcebb488be8ffaa  gcc/testsuite/gcc.target/i386/pr82990-6.c
  c154f3d5dbf0100ab4daf298da4d51da  gcc/testsuite/gcc.target/i386/pr82990-7.c
  c3aa2b794df8c4324dba61c205ba9aa6  gcc/testsuite/gcc.target/i386/pr83008.c
  6835eae8ea408bb193a56d38af9b51af  gcc/testsuite/gcc.target/i386/pr83210.c
*************** cd9a57159b45a8dc9f69fb76dba516c9  gcc/te
*** 70904,70910 ****
  f9fd161edde06fb92941f348f3942cd9  gcc/testsuite/gcc.target/i386/pr83467-2.c
  34b865a276acc2ac3831fd68b8043bb6  gcc/testsuite/gcc.target/i386/pr83488-2.c
  a0fcc3d48a1a14a2b0deb08aede99332  gcc/testsuite/gcc.target/i386/pr83488-3.c
! be4886fc2cd0dbd18a9cbd38f8d6690d  gcc/testsuite/gcc.target/i386/pr83488.c
  0d9a79a28d25640b5f02f32b94794287  gcc/testsuite/gcc.target/i386/pr83546.c
  5b952359affd669df1a1fcc1c6bafde6  gcc/testsuite/gcc.target/i386/pr83554.c
  877cca55706c376ea1ea168f35d65b39  gcc/testsuite/gcc.target/i386/pr83604.c
--- 75795,75801 ----
  f9fd161edde06fb92941f348f3942cd9  gcc/testsuite/gcc.target/i386/pr83467-2.c
  34b865a276acc2ac3831fd68b8043bb6  gcc/testsuite/gcc.target/i386/pr83488-2.c
  a0fcc3d48a1a14a2b0deb08aede99332  gcc/testsuite/gcc.target/i386/pr83488-3.c
! df1887f245fd3c6cf6ee66813a345d99  gcc/testsuite/gcc.target/i386/pr83488.c
  0d9a79a28d25640b5f02f32b94794287  gcc/testsuite/gcc.target/i386/pr83546.c
  5b952359affd669df1a1fcc1c6bafde6  gcc/testsuite/gcc.target/i386/pr83554.c
  877cca55706c376ea1ea168f35d65b39  gcc/testsuite/gcc.target/i386/pr83604.c
*************** e0206060855fbdd405c6183bce97a0ea  gcc/te
*** 70973,70979 ****
  0022d2cb76f38f4d0c64782752aab287  gcc/testsuite/gcc.target/i386/pr85473-1.c
  bfc63737303c346862df5e9d8928d4f0  gcc/testsuite/gcc.target/i386/pr85473-2.c
  51e373c9a10bdce46b6bd839fecfedeb  gcc/testsuite/gcc.target/i386/pr85508.c
! c9b6441c0d7b7f884874e0499b1458cd  gcc/testsuite/gcc.target/i386/pr85511.c
  eb20c12ceb921a6c11b6e5b72c08d1b7  gcc/testsuite/gcc.target/i386/pr85593.c
  b4b72e8bbdacae2a4a51a302193e0b33  gcc/testsuite/gcc.target/i386/pr85620-1.c
  816c52552db759833c19b548883dc1e3  gcc/testsuite/gcc.target/i386/pr85620-2.c
--- 75864,75870 ----
  0022d2cb76f38f4d0c64782752aab287  gcc/testsuite/gcc.target/i386/pr85473-1.c
  bfc63737303c346862df5e9d8928d4f0  gcc/testsuite/gcc.target/i386/pr85473-2.c
  51e373c9a10bdce46b6bd839fecfedeb  gcc/testsuite/gcc.target/i386/pr85508.c
! da9915438ad0fbe2c695e641c381e5bb  gcc/testsuite/gcc.target/i386/pr85511.c
  eb20c12ceb921a6c11b6e5b72c08d1b7  gcc/testsuite/gcc.target/i386/pr85593.c
  b4b72e8bbdacae2a4a51a302193e0b33  gcc/testsuite/gcc.target/i386/pr85620-1.c
  816c52552db759833c19b548883dc1e3  gcc/testsuite/gcc.target/i386/pr85620-2.c
*************** cd325df07a34c25d7fa808319419b8c1  gcc/te
*** 71027,71038 ****
  713c32cd165cd428c96f881442855928  gcc/testsuite/gcc.target/i386/pr87007-1.c
  e500c9305de0564e4618ad5878201a8c  gcc/testsuite/gcc.target/i386/pr87007-2.c
  b29279fea41f09c3d829643c01710547  gcc/testsuite/gcc.target/i386/pr87007-3.c
! 3c51a92f86d87e64167d756b38777f31  gcc/testsuite/gcc.target/i386/pr87007-4.c
! 705853765437dc1ce73b961aeed8fb39  gcc/testsuite/gcc.target/i386/pr87007-5.c
  646c4c149f87e924fd338e46a8d900f1  gcc/testsuite/gcc.target/i386/pr87065.c
  c2ca631fa7bb41bff427b4c2a6a6aaa1  gcc/testsuite/gcc.target/i386/pr87198.c
! 2dc347f1c11144765ea46729857f25f9  gcc/testsuite/gcc.target/i386/pr87246.c
  8d26a7a5b26f5883109e2e62783c69ea  gcc/testsuite/gcc.target/i386/pr87290.c
  a93dbe413506a5423ba513bd7972202d  gcc/testsuite/gcc.target/i386/pr87317-1.c
  4c710992551a7d64756c2e5b799e61c4  gcc/testsuite/gcc.target/i386/pr87317-10.c
  3f1aeaac8c59363c95f507da577c13ac  gcc/testsuite/gcc.target/i386/pr87317-11.c
--- 75918,75931 ----
  713c32cd165cd428c96f881442855928  gcc/testsuite/gcc.target/i386/pr87007-1.c
  e500c9305de0564e4618ad5878201a8c  gcc/testsuite/gcc.target/i386/pr87007-2.c
  b29279fea41f09c3d829643c01710547  gcc/testsuite/gcc.target/i386/pr87007-3.c
! e8f1d98010527f4b46b2cf680190b1f8  gcc/testsuite/gcc.target/i386/pr87007-4.c
! d84b93ebf009823650b0dce95c030d39  gcc/testsuite/gcc.target/i386/pr87007-5.c
  646c4c149f87e924fd338e46a8d900f1  gcc/testsuite/gcc.target/i386/pr87065.c
  c2ca631fa7bb41bff427b4c2a6a6aaa1  gcc/testsuite/gcc.target/i386/pr87198.c
! 09d95dc5e840b3fa5a6b11b924f3fb59  gcc/testsuite/gcc.target/i386/pr87246.c
  8d26a7a5b26f5883109e2e62783c69ea  gcc/testsuite/gcc.target/i386/pr87290.c
+ e39ce20fb6740b051ab3ab6677fa1d98  gcc/testsuite/gcc.target/i386/pr87299-1.c
+ db4e39ddff19e7c7c94ce6bcf3f8d05c  gcc/testsuite/gcc.target/i386/pr87299-2.c
  a93dbe413506a5423ba513bd7972202d  gcc/testsuite/gcc.target/i386/pr87317-1.c
  4c710992551a7d64756c2e5b799e61c4  gcc/testsuite/gcc.target/i386/pr87317-10.c
  3f1aeaac8c59363c95f507da577c13ac  gcc/testsuite/gcc.target/i386/pr87317-11.c
*************** c1aba74d3393b01f774f50e92b00499f  gcc/te
*** 71054,71066 ****
  be44974eea91b110edaba515611c55d3  gcc/testsuite/gcc.target/i386/pr87537-1.c
  640f95ee3bcfcdd3ddddf350e70a219e  gcc/testsuite/gcc.target/i386/pr87550.c
  0f9166c4b5de1db76ab2ddc96605f006  gcc/testsuite/gcc.target/i386/pr87558.c
! 2a14e0519dd2e95827fa1036a59615aa  gcc/testsuite/gcc.target/i386/pr87572.c
  45e76d1601c3634b39a5d8456ef4109a  gcc/testsuite/gcc.target/i386/pr87573.c
  f0746b171ec726929384a5727b7a1a74  gcc/testsuite/gcc.target/i386/pr87596.c
  d7bcb4fdd0161bda3f8883308852762d  gcc/testsuite/gcc.target/i386/pr87599.c
  a2e3db16bdc7a25f338922bcd6f76215  gcc/testsuite/gcc.target/i386/pr87657.c
  a35bf9ac71101c4fd7617105e2022af1  gcc/testsuite/gcc.target/i386/pr87662.c
! 1820add1be755a939216eaf57b8daf5b  gcc/testsuite/gcc.target/i386/pr87759.c
  b91162801f7d0d6af855bd692e22ab63  gcc/testsuite/gcc.target/i386/pr87853.c
  c7fbb8c42391916088505cea2847ff00  gcc/testsuite/gcc.target/i386/pr87918.c
  4b54801016bc4b3cc228ac7dd70de407  gcc/testsuite/gcc.target/i386/pr87928.c
--- 75947,75959 ----
  be44974eea91b110edaba515611c55d3  gcc/testsuite/gcc.target/i386/pr87537-1.c
  640f95ee3bcfcdd3ddddf350e70a219e  gcc/testsuite/gcc.target/i386/pr87550.c
  0f9166c4b5de1db76ab2ddc96605f006  gcc/testsuite/gcc.target/i386/pr87558.c
! 6721f757fcc20f5761b582c1b240ace4  gcc/testsuite/gcc.target/i386/pr87572.c
  45e76d1601c3634b39a5d8456ef4109a  gcc/testsuite/gcc.target/i386/pr87573.c
  f0746b171ec726929384a5727b7a1a74  gcc/testsuite/gcc.target/i386/pr87596.c
  d7bcb4fdd0161bda3f8883308852762d  gcc/testsuite/gcc.target/i386/pr87599.c
  a2e3db16bdc7a25f338922bcd6f76215  gcc/testsuite/gcc.target/i386/pr87657.c
  a35bf9ac71101c4fd7617105e2022af1  gcc/testsuite/gcc.target/i386/pr87662.c
! 049bd8f3b1cc2c683b9210ef238c5539  gcc/testsuite/gcc.target/i386/pr87759.c
  b91162801f7d0d6af855bd692e22ab63  gcc/testsuite/gcc.target/i386/pr87853.c
  c7fbb8c42391916088505cea2847ff00  gcc/testsuite/gcc.target/i386/pr87918.c
  4b54801016bc4b3cc228ac7dd70de407  gcc/testsuite/gcc.target/i386/pr87928.c
*************** c7fbb8c42391916088505cea2847ff00  gcc/te
*** 71068,71074 ****
  ec61cb2764cd0d05b8fd416bac2b290b  gcc/testsuite/gcc.target/i386/pr88033.c
  a720bfe0104feb1cfa40b8ab91dc5f05  gcc/testsuite/gcc.target/i386/pr88070.c
  b14b816d91744aa96c9da5bad9de427b  gcc/testsuite/gcc.target/i386/pr88178.c
! 014704589a34c96de8b39971853cff79  gcc/testsuite/gcc.target/i386/pr88195.c
  f25bcc4bed5d0d95251b485d5a39506b  gcc/testsuite/gcc.target/i386/pr88240.c
  9a7163535cd9dd187c7dfeb7fc7ce059  gcc/testsuite/gcc.target/i386/pr88278.c
  0f995c2402f66c16a0344297ae847803  gcc/testsuite/gcc.target/i386/pr88296.c
--- 75961,75967 ----
  ec61cb2764cd0d05b8fd416bac2b290b  gcc/testsuite/gcc.target/i386/pr88033.c
  a720bfe0104feb1cfa40b8ab91dc5f05  gcc/testsuite/gcc.target/i386/pr88070.c
  b14b816d91744aa96c9da5bad9de427b  gcc/testsuite/gcc.target/i386/pr88178.c
! e65ff76ca5bb02bdeb12445be23c9f99  gcc/testsuite/gcc.target/i386/pr88195.c
  f25bcc4bed5d0d95251b485d5a39506b  gcc/testsuite/gcc.target/i386/pr88240.c
  9a7163535cd9dd187c7dfeb7fc7ce059  gcc/testsuite/gcc.target/i386/pr88278.c
  0f995c2402f66c16a0344297ae847803  gcc/testsuite/gcc.target/i386/pr88296.c
*************** e3721c52844753536ca549f71e61f954  gcc/te
*** 71081,71095 ****
  40a7ef6fb3bcabb2e6a14793769e9983  gcc/testsuite/gcc.target/i386/pr88470.c
  d09b03236b7aad3cf25c32ccea767d74  gcc/testsuite/gcc.target/i386/pr88521.c
  5dbead610a1dd7e77af25c77972ddac1  gcc/testsuite/gcc.target/i386/pr88531-1a.c
! 555df29348deb23102cde1e8c8e7388a  gcc/testsuite/gcc.target/i386/pr88531-1b.c
! 32a862e24930734825f74ccb5cd04fdc  gcc/testsuite/gcc.target/i386/pr88531-1c.c
! 019c39c7d098cf7f5069489447de5cf8  gcc/testsuite/gcc.target/i386/pr88531-2a.c
! e86f2defc250de76fe2280f190250a40  gcc/testsuite/gcc.target/i386/pr88531-2b.c
! 197ea43338868f67bcf03c0a230ffe75  gcc/testsuite/gcc.target/i386/pr88531-2c.c
  d759143ff7be3c83a7d63b6b1da335f4  gcc/testsuite/gcc.target/i386/pr88547-1.c
  bce12f30738edf2774ad07623978e78c  gcc/testsuite/gcc.target/i386/pr88713-1.c
  11cd1934753fe7004db294de3fb77a13  gcc/testsuite/gcc.target/i386/pr88713-2.c
! 84b781bd0c4761d869c164e750d66c8f  gcc/testsuite/gcc.target/i386/pr88713-3.c
  5f3212c6668588f297c52b9a790ce2d5  gcc/testsuite/gcc.target/i386/pr88717.c
  96469657c46a5db9e093206d585159bb  gcc/testsuite/gcc.target/i386/pr88796.c
  7af4459509529efc78f8cbe44f73cabd  gcc/testsuite/gcc.target/i386/pr88809-2.c
--- 75974,75989 ----
  40a7ef6fb3bcabb2e6a14793769e9983  gcc/testsuite/gcc.target/i386/pr88470.c
  d09b03236b7aad3cf25c32ccea767d74  gcc/testsuite/gcc.target/i386/pr88521.c
  5dbead610a1dd7e77af25c77972ddac1  gcc/testsuite/gcc.target/i386/pr88531-1a.c
! 093e38278aff880d894eac88351c1e71  gcc/testsuite/gcc.target/i386/pr88531-1b.c
! b4ea0253a4a44cae7ea592ca115c81cb  gcc/testsuite/gcc.target/i386/pr88531-1c.c
! 1d74b7497b6f347eeabb5c8ff7fc5e64  gcc/testsuite/gcc.target/i386/pr88531-2a.c
! 20d5dbd1c6fbe2d4bb83c990c45323c1  gcc/testsuite/gcc.target/i386/pr88531-2b.c
! 30fb5b9d9ddbe31ad10403c402c0aa0b  gcc/testsuite/gcc.target/i386/pr88531-2c.c
! 54bfbf6c67986bb74858fb23b20dca1e  gcc/testsuite/gcc.target/i386/pr88540.c
  d759143ff7be3c83a7d63b6b1da335f4  gcc/testsuite/gcc.target/i386/pr88547-1.c
  bce12f30738edf2774ad07623978e78c  gcc/testsuite/gcc.target/i386/pr88713-1.c
  11cd1934753fe7004db294de3fb77a13  gcc/testsuite/gcc.target/i386/pr88713-2.c
! 6eb0d7b520ddf41342e5d94072f9595e  gcc/testsuite/gcc.target/i386/pr88713-3.c
  5f3212c6668588f297c52b9a790ce2d5  gcc/testsuite/gcc.target/i386/pr88717.c
  96469657c46a5db9e093206d585159bb  gcc/testsuite/gcc.target/i386/pr88796.c
  7af4459509529efc78f8cbe44f73cabd  gcc/testsuite/gcc.target/i386/pr88809-2.c
*************** c3c581cee62ad6beb569eca0716914e5  gcc/te
*** 71112,71117 ****
--- 76006,76012 ----
  2a0e8249b916d6c9b339cf0461b58cf8  gcc/testsuite/gcc.target/i386/pr88828-9.c
  295f20050d0d35aaac75babb72570773  gcc/testsuite/gcc.target/i386/pr88828-9a.c
  28612176bb56409dbcc40657fdf74670  gcc/testsuite/gcc.target/i386/pr88828-9b.c
+ 0e7d71892f36e9c558d81c12fec52cc8  gcc/testsuite/gcc.target/i386/pr88873.c
  44f18856f00f48988a17b6c2f08502ed  gcc/testsuite/gcc.target/i386/pr88906.c
  f32a1aef3d374a5b4ad42047396a3805  gcc/testsuite/gcc.target/i386/pr88938.c
  141169b2e8ff64bdba2208ca1feb4a7c  gcc/testsuite/gcc.target/i386/pr88948.c
*************** b62cb3394a12c9b8682e994364bf3ec5  gcc/te
*** 71126,71142 ****
  55ab81893c87939e215be4741aeb777a  gcc/testsuite/gcc.target/i386/pr89229-3a.c
  496b7af2902eced3e7264de7dc9e72ce  gcc/testsuite/gcc.target/i386/pr89229-3b.c
  05c66a25081370318df1f0081f652859  gcc/testsuite/gcc.target/i386/pr89229-3c.c
! 702e565ec4b726fa27bd2d985c861647  gcc/testsuite/gcc.target/i386/pr89229-4a.c
  402c73663db110a84f8e8a884ad489a8  gcc/testsuite/gcc.target/i386/pr89229-4b.c
  3281b9418bc62f50658aaeee5f750eb6  gcc/testsuite/gcc.target/i386/pr89229-4c.c
  f5f0d3d506f0d4a68d6ecf7fa349e89f  gcc/testsuite/gcc.target/i386/pr89229-5a.c
! 323ad657e20630f81bee9a46ce61f957  gcc/testsuite/gcc.target/i386/pr89229-5b.c
  c106ae8bd337690a9d0248156ece78f7  gcc/testsuite/gcc.target/i386/pr89229-5c.c
  539d06d11640fad0ffc037027cc4e26a  gcc/testsuite/gcc.target/i386/pr89229-6a.c
! 48f091ee8bd2e1ff7f3fec41772b5901  gcc/testsuite/gcc.target/i386/pr89229-6b.c
  d82c437b681e812dd9c8b48af5ec1850  gcc/testsuite/gcc.target/i386/pr89229-6c.c
  a6b13b01e1a41a2d0dec3e0debcdf80b  gcc/testsuite/gcc.target/i386/pr89229-7a.c
! aead7f35b166baa85ab2aed11aa3c2d4  gcc/testsuite/gcc.target/i386/pr89229-7b.c
  d9b72f271f61a1292d8be12ea7a23b54  gcc/testsuite/gcc.target/i386/pr89229-7c.c
  4e53037c62f9dce84f092674db01aec5  gcc/testsuite/gcc.target/i386/pr89261.c
  956a0e340ae4dfe5721ba6a3ab98969f  gcc/testsuite/gcc.target/i386/pr89290.c
--- 76021,76037 ----
  55ab81893c87939e215be4741aeb777a  gcc/testsuite/gcc.target/i386/pr89229-3a.c
  496b7af2902eced3e7264de7dc9e72ce  gcc/testsuite/gcc.target/i386/pr89229-3b.c
  05c66a25081370318df1f0081f652859  gcc/testsuite/gcc.target/i386/pr89229-3c.c
! a48f15acf1e858beed430952e8008068  gcc/testsuite/gcc.target/i386/pr89229-4a.c
  402c73663db110a84f8e8a884ad489a8  gcc/testsuite/gcc.target/i386/pr89229-4b.c
  3281b9418bc62f50658aaeee5f750eb6  gcc/testsuite/gcc.target/i386/pr89229-4c.c
  f5f0d3d506f0d4a68d6ecf7fa349e89f  gcc/testsuite/gcc.target/i386/pr89229-5a.c
! 38f4b95d50e9c568a9235bf355746047  gcc/testsuite/gcc.target/i386/pr89229-5b.c
  c106ae8bd337690a9d0248156ece78f7  gcc/testsuite/gcc.target/i386/pr89229-5c.c
  539d06d11640fad0ffc037027cc4e26a  gcc/testsuite/gcc.target/i386/pr89229-6a.c
! 185119f6a713c45bc44930dabc2ecfc1  gcc/testsuite/gcc.target/i386/pr89229-6b.c
  d82c437b681e812dd9c8b48af5ec1850  gcc/testsuite/gcc.target/i386/pr89229-6c.c
  a6b13b01e1a41a2d0dec3e0debcdf80b  gcc/testsuite/gcc.target/i386/pr89229-7a.c
! be6c59ebdcc0a16cfc3d47dad3ee22df  gcc/testsuite/gcc.target/i386/pr89229-7b.c
  d9b72f271f61a1292d8be12ea7a23b54  gcc/testsuite/gcc.target/i386/pr89229-7c.c
  4e53037c62f9dce84f092674db01aec5  gcc/testsuite/gcc.target/i386/pr89261.c
  956a0e340ae4dfe5721ba6a3ab98969f  gcc/testsuite/gcc.target/i386/pr89290.c
*************** bcb8ff722b8b594bcfd9075d37eaff6f  gcc/te
*** 71149,71162 ****
  1a7b71dea5f1b81b4c20d53bd27d1604  gcc/testsuite/gcc.target/i386/pr89523-2.c
  c477d7333d280aa9ba0232f363826175  gcc/testsuite/gcc.target/i386/pr89523-3.c
  37d95d0f23ac1bfc04510b1a7b4a0ed7  gcc/testsuite/gcc.target/i386/pr89523-4.c
! b9dc216c8935f73126bb07b75ef58c82  gcc/testsuite/gcc.target/i386/pr89523-5.c
! 21b4d2c258f9255ac099efdcceba396c  gcc/testsuite/gcc.target/i386/pr89523-6.c
  104a2416e74048f45915a5e09656c2aa  gcc/testsuite/gcc.target/i386/pr89523-7.c
  fa633632e627d7c0fcb34ba2673e196b  gcc/testsuite/gcc.target/i386/pr89523-8.c
  aab7cb035d0456e2d0bf25f7f53cfd30  gcc/testsuite/gcc.target/i386/pr89523-9.c
  8d11eaa1821254c815377b2af471ed8f  gcc/testsuite/gcc.target/i386/pr89618.c
  7a4a0653050f553879a39852089ab9b9  gcc/testsuite/gcc.target/i386/pr89676.c
  8c3d1b44db7a8ab2be0a823e6604c679  gcc/testsuite/gcc.target/i386/pr89684.c
  673b7f390c915c1784df3e6226b2ea65  gcc/testsuite/gcc.target/i386/pr89827.c
  246798e6fdd75c72604b74965a056935  gcc/testsuite/gcc.target/i386/pr89848.c
  17b51e3fde50f413030ac13d4da5f92d  gcc/testsuite/gcc.target/i386/pr89902.c
--- 76044,76061 ----
  1a7b71dea5f1b81b4c20d53bd27d1604  gcc/testsuite/gcc.target/i386/pr89523-2.c
  c477d7333d280aa9ba0232f363826175  gcc/testsuite/gcc.target/i386/pr89523-3.c
  37d95d0f23ac1bfc04510b1a7b4a0ed7  gcc/testsuite/gcc.target/i386/pr89523-4.c
! 6f79757cdb3668619951a1c62e603b17  gcc/testsuite/gcc.target/i386/pr89523-5.c
! 24c1731ede4b27aee8f866b95bdbb25c  gcc/testsuite/gcc.target/i386/pr89523-6.c
  104a2416e74048f45915a5e09656c2aa  gcc/testsuite/gcc.target/i386/pr89523-7.c
  fa633632e627d7c0fcb34ba2673e196b  gcc/testsuite/gcc.target/i386/pr89523-8.c
  aab7cb035d0456e2d0bf25f7f53cfd30  gcc/testsuite/gcc.target/i386/pr89523-9.c
+ 8fd9dedd92faca691ac7497433f4e7d5  gcc/testsuite/gcc.target/i386/pr89618-2.c
  8d11eaa1821254c815377b2af471ed8f  gcc/testsuite/gcc.target/i386/pr89618.c
  7a4a0653050f553879a39852089ab9b9  gcc/testsuite/gcc.target/i386/pr89676.c
  8c3d1b44db7a8ab2be0a823e6604c679  gcc/testsuite/gcc.target/i386/pr89684.c
+ cf6df95ff00b8bd66eb45648b589d8b7  gcc/testsuite/gcc.target/i386/pr89701-1.c
+ ed6edead9007472a48f08704770c1144  gcc/testsuite/gcc.target/i386/pr89701-2.c
+ f65eee1e053f6c1675726396c6df0509  gcc/testsuite/gcc.target/i386/pr89701-3.c
  673b7f390c915c1784df3e6226b2ea65  gcc/testsuite/gcc.target/i386/pr89827.c
  246798e6fdd75c72604b74965a056935  gcc/testsuite/gcc.target/i386/pr89848.c
  17b51e3fde50f413030ac13d4da5f92d  gcc/testsuite/gcc.target/i386/pr89902.c
*************** adae3156ab4e2f317ef6a23cbd52a09e  gcc/te
*** 71167,71173 ****
  61421458c0cd694e7f45d147f09c71dd  gcc/testsuite/gcc.target/i386/pr89984-1.c
  4675458af6efdc7039a76f2ca0824f6a  gcc/testsuite/gcc.target/i386/pr89984-2.c
  0fde4fbe7c3ef420d3178fba128d51e7  gcc/testsuite/gcc.target/i386/pr90007.c
! a7e4330876ef271143c6421ba5f2cf85  gcc/testsuite/gcc.target/i386/pr90096.c
  a9287216d129eff30597718cb0900160  gcc/testsuite/gcc.target/i386/pr90178.c
  c04294701860868605e6d4177d1f5a28  gcc/testsuite/gcc.target/i386/pr90193.c
  7201d75d66d22da420434866d606904c  gcc/testsuite/gcc.target/i386/pr90356.c
--- 76066,76072 ----
  61421458c0cd694e7f45d147f09c71dd  gcc/testsuite/gcc.target/i386/pr89984-1.c
  4675458af6efdc7039a76f2ca0824f6a  gcc/testsuite/gcc.target/i386/pr89984-2.c
  0fde4fbe7c3ef420d3178fba128d51e7  gcc/testsuite/gcc.target/i386/pr90007.c
! 7110f728cfc3075095fa258ecfd05c36  gcc/testsuite/gcc.target/i386/pr90096.c
  a9287216d129eff30597718cb0900160  gcc/testsuite/gcc.target/i386/pr90178.c
  c04294701860868605e6d4177d1f5a28  gcc/testsuite/gcc.target/i386/pr90193.c
  7201d75d66d22da420434866d606904c  gcc/testsuite/gcc.target/i386/pr90356.c
*************** e848ec23a6a21441ce72a346a0736a69  gcc/te
*** 71179,71184 ****
--- 76078,76085 ----
  79825d8e4562ba47624b18d80f41d52b  gcc/testsuite/gcc.target/i386/pr90510.c
  71daed2fce58de22bfa193c1d29d8205  gcc/testsuite/gcc.target/i386/pr90547.c
  cd32b51927f32216f74b09c3940931d8  gcc/testsuite/gcc.target/i386/pr90552.c
+ 3333c9fab61d2b0a85919c2f2bcabcf7  gcc/testsuite/gcc.target/i386/pr90693-2.c
+ ab0b47df71ffc980ef55fd8e562bb640  gcc/testsuite/gcc.target/i386/pr90693.c
  bedac99974c4a13a1a78b62b24233122  gcc/testsuite/gcc.target/i386/pr90765-1.c
  78277186e5e9fff510631438a31733a5  gcc/testsuite/gcc.target/i386/pr90765-2.c
  5535723054d423f76999bb4ced0c98cb  gcc/testsuite/gcc.target/i386/pr90773-1.c
*************** bedac99974c4a13a1a78b62b24233122  gcc/te
*** 71189,71195 ****
  f7e21a56566f8559fcba70f3cda721fe  gcc/testsuite/gcc.target/i386/pr90773-14.c
  bc6806d14eb4d9fac9f78751c494bb2b  gcc/testsuite/gcc.target/i386/pr90773-15.c
  06df718acc299d530a1ea5b6fa3f889d  gcc/testsuite/gcc.target/i386/pr90773-16.c
! a2bf3f9fe7475c7374a80e84180baad8  gcc/testsuite/gcc.target/i386/pr90773-17.c
  91b619d01a947fbd9e263614f1000278  gcc/testsuite/gcc.target/i386/pr90773-18.c
  700d4a7ed37c9f9247b66f3967dc24c1  gcc/testsuite/gcc.target/i386/pr90773-19.c
  f80a713960f0646d35d5cd99ddc87102  gcc/testsuite/gcc.target/i386/pr90773-2.c
--- 76090,76096 ----
  f7e21a56566f8559fcba70f3cda721fe  gcc/testsuite/gcc.target/i386/pr90773-14.c
  bc6806d14eb4d9fac9f78751c494bb2b  gcc/testsuite/gcc.target/i386/pr90773-15.c
  06df718acc299d530a1ea5b6fa3f889d  gcc/testsuite/gcc.target/i386/pr90773-16.c
! 22e9c0a2d6c467c1b378db4d4ca5a26c  gcc/testsuite/gcc.target/i386/pr90773-17.c
  91b619d01a947fbd9e263614f1000278  gcc/testsuite/gcc.target/i386/pr90773-18.c
  700d4a7ed37c9f9247b66f3967dc24c1  gcc/testsuite/gcc.target/i386/pr90773-19.c
  f80a713960f0646d35d5cd99ddc87102  gcc/testsuite/gcc.target/i386/pr90773-2.c
*************** cef1d7eea62819f6e063e7efe1b02721  gcc/te
*** 71214,71220 ****
  f7f20cd21d9a7c4a60073a194c493b9e  gcc/testsuite/gcc.target/i386/pr90980-1.c
  e95a39ca6615e1505ad093c0aee36b67  gcc/testsuite/gcc.target/i386/pr90980-2.c
  901dc48d360343e1ea7e6419484c143a  gcc/testsuite/gcc.target/i386/pr90980-3.c
! d4d3cbfe391f8d5fa9c6de8aa15ab683  gcc/testsuite/gcc.target/i386/pr91033.c
  e0933c52118bda34d334db98cda88cf5  gcc/testsuite/gcc.target/i386/pr91103-1.c
  3c82ceb8f8dce6c69a814ac312cb47e4  gcc/testsuite/gcc.target/i386/pr91103-2.c
  214e297c0a7eb9cbfdb0fe5aaefdfaa2  gcc/testsuite/gcc.target/i386/pr91131.c
--- 76115,76121 ----
  f7f20cd21d9a7c4a60073a194c493b9e  gcc/testsuite/gcc.target/i386/pr90980-1.c
  e95a39ca6615e1505ad093c0aee36b67  gcc/testsuite/gcc.target/i386/pr90980-2.c
  901dc48d360343e1ea7e6419484c143a  gcc/testsuite/gcc.target/i386/pr90980-3.c
! dcc5fd32fdce1bf57c42c744b337590c  gcc/testsuite/gcc.target/i386/pr91033.c
  e0933c52118bda34d334db98cda88cf5  gcc/testsuite/gcc.target/i386/pr91103-1.c
  3c82ceb8f8dce6c69a814ac312cb47e4  gcc/testsuite/gcc.target/i386/pr91103-2.c
  214e297c0a7eb9cbfdb0fe5aaefdfaa2  gcc/testsuite/gcc.target/i386/pr91131.c
*************** c689d7bd208a6bbb908ec089abdd00ef  gcc/te
*** 71274,71284 ****
--- 76175,76188 ----
  6b30805bc47b76314701de39182024c7  gcc/testsuite/gcc.target/i386/pr92658-avx2-2.c
  2d1dbf18bcc052068a31667f01a26b12  gcc/testsuite/gcc.target/i386/pr92658-avx2.c
  a6d944350614d95163bf09072cee89ea  gcc/testsuite/gcc.target/i386/pr92658-avx512bw-2.c
+ d5de6306ab2a4697aa791a99699be715  gcc/testsuite/gcc.target/i386/pr92658-avx512bw-trunc-2.c
  6b0191050c1457729dd379bd3a918548  gcc/testsuite/gcc.target/i386/pr92658-avx512bw-trunc.c
  51599d0f567f1121d4f98c5828e35d5d  gcc/testsuite/gcc.target/i386/pr92658-avx512bw.c
  76128622fa1f72cf7ae14382561830e9  gcc/testsuite/gcc.target/i386/pr92658-avx512f.c
  15423b073f0aa92eeb8683d4f96ce6b0  gcc/testsuite/gcc.target/i386/pr92658-avx512vl.c
  f7ec7712f5bdc6ba6548210cb66b2681  gcc/testsuite/gcc.target/i386/pr92658-sse4-2.c
+ 63b25d859c875940887aaa9e411619c3  gcc/testsuite/gcc.target/i386/pr92658-sse4-4b.c
+ c635d7feb976f5c2940274cd81ff8dee  gcc/testsuite/gcc.target/i386/pr92658-sse4-8b.c
  d99054d3a6717f6febc8ba0f9175eb4d  gcc/testsuite/gcc.target/i386/pr92658-sse4.c
  3f30af17306d3c4ccb2eda2412f652a6  gcc/testsuite/gcc.target/i386/pr92686.inc
  925625e5b22e0fe4e1688a9751714623  gcc/testsuite/gcc.target/i386/pr92803.c
*************** dfe601dd62f0bb43b4f06b62a5ddeb31  gcc/te
*** 71313,71320 ****
  16c32cf33e45444168010f2d660b185b  gcc/testsuite/gcc.target/i386/pr93611.c
  9387bfde104289ddf53adc9ae95c43ef  gcc/testsuite/gcc.target/i386/pr93654.c
  0cbbfb6a80b114bf60fcfd0fce913fdb  gcc/testsuite/gcc.target/i386/pr93656.c
! 77b9ee8512c8e923363a5e2d927e99b1  gcc/testsuite/gcc.target/i386/pr93696-1.c
! b35da961377f3aa60ef57bb47462f48e  gcc/testsuite/gcc.target/i386/pr93696-2.c
  a830133e19b8979f8f171a4d277b5086  gcc/testsuite/gcc.target/i386/pr93743.c
  7644c1be476e6209891a685451fc7a8e  gcc/testsuite/gcc.target/i386/pr93997.c
  8c165251cb999c0428e4d75a69c73e1a  gcc/testsuite/gcc.target/i386/pr94088.c
--- 76217,76224 ----
  16c32cf33e45444168010f2d660b185b  gcc/testsuite/gcc.target/i386/pr93611.c
  9387bfde104289ddf53adc9ae95c43ef  gcc/testsuite/gcc.target/i386/pr93654.c
  0cbbfb6a80b114bf60fcfd0fce913fdb  gcc/testsuite/gcc.target/i386/pr93656.c
! e78645e554f8aee853084d414d3837c6  gcc/testsuite/gcc.target/i386/pr93696-1.c
! ac845056ec1e0b3b9292fe2e6db459a5  gcc/testsuite/gcc.target/i386/pr93696-2.c
  a830133e19b8979f8f171a4d277b5086  gcc/testsuite/gcc.target/i386/pr93743.c
  7644c1be476e6209891a685451fc7a8e  gcc/testsuite/gcc.target/i386/pr93997.c
  8c165251cb999c0428e4d75a69c73e1a  gcc/testsuite/gcc.target/i386/pr94088.c
*************** b2cbf35d26b6c14bf91ddc351c1728b9  gcc/te
*** 71332,71338 ****
  0c008328566429591af81428a5eda8b1  gcc/testsuite/gcc.target/i386/pr94467-2.c
  1824d4880bae6569c17f23ff1765d6e5  gcc/testsuite/gcc.target/i386/pr94467-3.c
  2c68755a191496cfb5c6b92316444329  gcc/testsuite/gcc.target/i386/pr94494.c
! 975929fc9881516edb25370a2a0a5a8c  gcc/testsuite/gcc.target/i386/pr94561.c
  c93af1b8273ac94a94f8677f1b5cd79e  gcc/testsuite/gcc.target/i386/pr94603.c
  2a4ee61ffc4ff89b03d5b4db97003ff9  gcc/testsuite/gcc.target/i386/pr94650.c
  0f3249fd11f2a4f7ed103608da29c5f0  gcc/testsuite/gcc.target/i386/pr94790-1.c
--- 76236,76242 ----
  0c008328566429591af81428a5eda8b1  gcc/testsuite/gcc.target/i386/pr94467-2.c
  1824d4880bae6569c17f23ff1765d6e5  gcc/testsuite/gcc.target/i386/pr94467-3.c
  2c68755a191496cfb5c6b92316444329  gcc/testsuite/gcc.target/i386/pr94494.c
! 2aabd8a440b1ace51473e159a5ebe6ff  gcc/testsuite/gcc.target/i386/pr94561.c
  c93af1b8273ac94a94f8677f1b5cd79e  gcc/testsuite/gcc.target/i386/pr94603.c
  2a4ee61ffc4ff89b03d5b4db97003ff9  gcc/testsuite/gcc.target/i386/pr94650.c
  0f3249fd11f2a4f7ed103608da29c5f0  gcc/testsuite/gcc.target/i386/pr94790-1.c
*************** c93af1b8273ac94a94f8677f1b5cd79e  gcc/te
*** 71341,71346 ****
--- 76245,76253 ----
  50f032a8bd40c7787a10cb203b657362  gcc/testsuite/gcc.target/i386/pr94795-2.c
  74bc9b105e1d3b09ffb1089b0029ed6c  gcc/testsuite/gcc.target/i386/pr94802.c
  6066623ac8fb7000178efdaffd58159d  gcc/testsuite/gcc.target/i386/pr94857.c
+ 3d8c6ca4743fbe08e8aa51d6bce81048  gcc/testsuite/gcc.target/i386/pr94864.c
+ ba4317c6fa488ec5175c503c317b326a  gcc/testsuite/gcc.target/i386/pr94865.c
+ 007c879779a72d2f63751a986ad2dbaf  gcc/testsuite/gcc.target/i386/pr94908.c
  86bbb5b72491974076a858614f1c432f  gcc/testsuite/gcc.target/i386/pr94913-1.c
  e88e5727a67218596a6069f1451699bf  gcc/testsuite/gcc.target/i386/pr94913-2.c
  4e4197632993a51b7c388446fa78e6ba  gcc/testsuite/gcc.target/i386/pr94914.c
*************** e3c8ba81048775e01a220f4434f6f73b  gcc/te
*** 71370,71377 ****
  dee92b3246f112fd920d87f83464ad78  gcc/testsuite/gcc.target/i386/pr95125-avx512f.c
  ee4dac3e3567c7d89e1f0f2ffe25d07f  gcc/testsuite/gcc.target/i386/pr95126-m32-1.c
  ff914d385bee390a3cda3641cbea7e7c  gcc/testsuite/gcc.target/i386/pr95126-m32-2.c
! 6f4453068096c2f7f2b430ae11b6a41d  gcc/testsuite/gcc.target/i386/pr95126-m32-3.c
! 606d8de76d329dc8f588b79e5ee72b53  gcc/testsuite/gcc.target/i386/pr95126-m32-4.c
  da4bd0e3a4a3b190a7d47b84e1ebea0f  gcc/testsuite/gcc.target/i386/pr95126-m64-1.c
  717bc9c274878452d5d82fa5feaa2c18  gcc/testsuite/gcc.target/i386/pr95126-m64-2.c
  7a2687c3f533d6dae8afa7abdb6fb2b8  gcc/testsuite/gcc.target/i386/pr95126-m64-3.c
--- 76277,76284 ----
  dee92b3246f112fd920d87f83464ad78  gcc/testsuite/gcc.target/i386/pr95125-avx512f.c
  ee4dac3e3567c7d89e1f0f2ffe25d07f  gcc/testsuite/gcc.target/i386/pr95126-m32-1.c
  ff914d385bee390a3cda3641cbea7e7c  gcc/testsuite/gcc.target/i386/pr95126-m32-2.c
! 9a237dc3fc98da46591e7d7c4e25aced  gcc/testsuite/gcc.target/i386/pr95126-m32-3.c
! 0da7eee450f87e939c4da1d15ce32a1d  gcc/testsuite/gcc.target/i386/pr95126-m32-4.c
  da4bd0e3a4a3b190a7d47b84e1ebea0f  gcc/testsuite/gcc.target/i386/pr95126-m64-1.c
  717bc9c274878452d5d82fa5feaa2c18  gcc/testsuite/gcc.target/i386/pr95126-m64-2.c
  7a2687c3f533d6dae8afa7abdb6fb2b8  gcc/testsuite/gcc.target/i386/pr95126-m64-3.c
*************** a2799012296658b7581bee7cb15827db  gcc/te
*** 71540,71546 ****
  49a5c59adcc80f5baad6214266e1e0eb  gcc/testsuite/gcc.target/i386/pr99123.c
  0b19a340038d11d42d65c8bb289ec153  gcc/testsuite/gcc.target/i386/pr99321.c
  a9d8b452ef25921e567309d0cc5e4daf  gcc/testsuite/gcc.target/i386/pr99405.c
! c58d1c95f1a45ece2f51ade32dc55823  gcc/testsuite/gcc.target/i386/pr99454.c
  f961c1d8f947043bf2b762f5fc35531a  gcc/testsuite/gcc.target/i386/pr99463-2.c
  0d4aa0e3c5217bd61c80adc456e50b25  gcc/testsuite/gcc.target/i386/pr99463.c
  93d34a3ab3374dee5f772a3c620facbe  gcc/testsuite/gcc.target/i386/pr99464.c
--- 76447,76453 ----
  49a5c59adcc80f5baad6214266e1e0eb  gcc/testsuite/gcc.target/i386/pr99123.c
  0b19a340038d11d42d65c8bb289ec153  gcc/testsuite/gcc.target/i386/pr99321.c
  a9d8b452ef25921e567309d0cc5e4daf  gcc/testsuite/gcc.target/i386/pr99405.c
! e6b1b5cba5cc2a6e1144475ed62335fa  gcc/testsuite/gcc.target/i386/pr99454.c
  f961c1d8f947043bf2b762f5fc35531a  gcc/testsuite/gcc.target/i386/pr99463-2.c
  0d4aa0e3c5217bd61c80adc456e50b25  gcc/testsuite/gcc.target/i386/pr99463.c
  93d34a3ab3374dee5f772a3c620facbe  gcc/testsuite/gcc.target/i386/pr99464.c
*************** aac8ef14c7538ca8bb3df8ee0d3a6144  gcc/te
*** 71575,71581 ****
  89c120add0d0cea3a2a86aaa0863dd2e  gcc/testsuite/gcc.target/i386/prefetchi-4.c
  7ac67198871c4cac2af2231517ff5658  gcc/testsuite/gcc.target/i386/prefetchi-5.c
  24ceb6d5f3f5cde4b9d852839bdb98ae  gcc/testsuite/gcc.target/i386/prefetchw-1.c
! f11f4731c396f099373c033ab016a64f  gcc/testsuite/gcc.target/i386/prefetchwt1-1.c
  4561455bd0f6ca8ce0b0f477f2897ee2  gcc/testsuite/gcc.target/i386/ptwrite1.c
  90a00e0f61849345a274cd1b4f96c029  gcc/testsuite/gcc.target/i386/ptwrite2.c
  1c20da95e9e947694dd009c5a701a628  gcc/testsuite/gcc.target/i386/quad-sse.c
--- 76482,76488 ----
  89c120add0d0cea3a2a86aaa0863dd2e  gcc/testsuite/gcc.target/i386/prefetchi-4.c
  7ac67198871c4cac2af2231517ff5658  gcc/testsuite/gcc.target/i386/prefetchi-5.c
  24ceb6d5f3f5cde4b9d852839bdb98ae  gcc/testsuite/gcc.target/i386/prefetchw-1.c
! 17f0808c67bbcf2b74fb6dbafd6cc820  gcc/testsuite/gcc.target/i386/prefetchwt1-1.c
  4561455bd0f6ca8ce0b0f477f2897ee2  gcc/testsuite/gcc.target/i386/ptwrite1.c
  90a00e0f61849345a274cd1b4f96c029  gcc/testsuite/gcc.target/i386/ptwrite2.c
  1c20da95e9e947694dd009c5a701a628  gcc/testsuite/gcc.target/i386/quad-sse.c
*************** c2971ff23fbc8134c0463c0bc6621697  gcc/te
*** 71586,71591 ****
--- 76493,76500 ----
  d0cd1b1558d7f3aa670d07b17e28892d  gcc/testsuite/gcc.target/i386/raoint-aand-2.c
  297518408472f8e129cb6a4ba9bbda2a  gcc/testsuite/gcc.target/i386/raoint-aor-2.c
  b83d9424492e932ab4ddac51f3bc8363  gcc/testsuite/gcc.target/i386/raoint-axor-2.c
+ 527fcd6b25bc1893f33918c5101cf9a6  gcc/testsuite/gcc.target/i386/rcr-1.c
+ 7337b8a9cd3cec60d1c947ea42342231  gcc/testsuite/gcc.target/i386/rcr-2.c
  9934554e37602f57ebd1d5ff71e36078  gcc/testsuite/gcc.target/i386/rdfsbase-1.c
  f65c92042f645a4147cc6f4fcc1d717a  gcc/testsuite/gcc.target/i386/rdfsbase-2.c
  47f1d67eee8b98ccbc0ba91d2ba98f10  gcc/testsuite/gcc.target/i386/rdgsbase-1.c
*************** cecba7a153a4f229c50a990feb03d1c4  gcc/te
*** 71598,71604 ****
  12405bc30059cdd65821f77c13917288  gcc/testsuite/gcc.target/i386/rdseed16-1.c
  a3227491a22e8bd3428c5f35d9e9b625  gcc/testsuite/gcc.target/i386/rdseed32-1.c
  f1d942e689de2f23040c5e669c9dcb1b  gcc/testsuite/gcc.target/i386/rdseed64-1.c
! 5a5df36e2ac91f38d93a87305f4d15f3  gcc/testsuite/gcc.target/i386/readeflags-1.c
  e2839913fadc6a00676c8f02deb3f59e  gcc/testsuite/gcc.target/i386/recip-divf.c
  4557dbe9ae51590eba29dc37199cf9e4  gcc/testsuite/gcc.target/i386/recip-sqrtf.c
  3e22a439d0d08ad9c95292f2967fbe0d  gcc/testsuite/gcc.target/i386/recip-vec-divf-avx.c
--- 76507,76513 ----
  12405bc30059cdd65821f77c13917288  gcc/testsuite/gcc.target/i386/rdseed16-1.c
  a3227491a22e8bd3428c5f35d9e9b625  gcc/testsuite/gcc.target/i386/rdseed32-1.c
  f1d942e689de2f23040c5e669c9dcb1b  gcc/testsuite/gcc.target/i386/rdseed64-1.c
! 142d4950df9ac1babf63d55d02e4e07c  gcc/testsuite/gcc.target/i386/readeflags-1.c
  e2839913fadc6a00676c8f02deb3f59e  gcc/testsuite/gcc.target/i386/recip-divf.c
  4557dbe9ae51590eba29dc37199cf9e4  gcc/testsuite/gcc.target/i386/recip-sqrtf.c
  3e22a439d0d08ad9c95292f2967fbe0d  gcc/testsuite/gcc.target/i386/recip-vec-divf-avx.c
*************** f866bdeeebb744ba85eb8a56a351d9ce  gcc/te
*** 71646,71656 ****
  b3dc0d6c504f9985b1ec853a2ea1f552  gcc/testsuite/gcc.target/i386/rotate-4a.c
  e0e82a96b9fe76815f9250103b103e7b  gcc/testsuite/gcc.target/i386/rotate-5.c
  5e043cdfeb2caa1c3d68abe34e504ac6  gcc/testsuite/gcc.target/i386/rotate-5a.c
! 361a25645f97be3dfad63265fe02e0df  gcc/testsuite/gcc.target/i386/rtm-check.h
  097d79c6b182bd897a4461103de5f332  gcc/testsuite/gcc.target/i386/rtm-xabort-1.c
  7fd857319bdcc9049991294652943c98  gcc/testsuite/gcc.target/i386/rtm-xbegin-1.c
  9e2fab54032ef9d21789f19e68471555  gcc/testsuite/gcc.target/i386/rtm-xend-1.c
  d972e8dd48d19a6440cd7b63d7254c83  gcc/testsuite/gcc.target/i386/rtm-xtest-1.c
  a18a448e8758231b30c9b1d3f052f01c  gcc/testsuite/gcc.target/i386/serialize-1.c
  8fe36ae5ff2b4bac66cad558d27e43e8  gcc/testsuite/gcc.target/i386/set-v16qi-1.h
  6915570db34df8b6c58fb59297c73851  gcc/testsuite/gcc.target/i386/set-v16qi-2.h
--- 76555,76567 ----
  b3dc0d6c504f9985b1ec853a2ea1f552  gcc/testsuite/gcc.target/i386/rotate-4a.c
  e0e82a96b9fe76815f9250103b103e7b  gcc/testsuite/gcc.target/i386/rotate-5.c
  5e043cdfeb2caa1c3d68abe34e504ac6  gcc/testsuite/gcc.target/i386/rotate-5a.c
! 5a064bb77cbad41828de54c2ed90781f  gcc/testsuite/gcc.target/i386/rotate-6.c
! b418457f73d31910e20ece8dbf697ddc  gcc/testsuite/gcc.target/i386/rtm-check.h
  097d79c6b182bd897a4461103de5f332  gcc/testsuite/gcc.target/i386/rtm-xabort-1.c
  7fd857319bdcc9049991294652943c98  gcc/testsuite/gcc.target/i386/rtm-xbegin-1.c
  9e2fab54032ef9d21789f19e68471555  gcc/testsuite/gcc.target/i386/rtm-xend-1.c
  d972e8dd48d19a6440cd7b63d7254c83  gcc/testsuite/gcc.target/i386/rtm-xtest-1.c
+ 58ce3daa4a1a48e4d8b4ff9e1e0eeff7  gcc/testsuite/gcc.target/i386/sdotprodint8_emulate.c
  a18a448e8758231b30c9b1d3f052f01c  gcc/testsuite/gcc.target/i386/serialize-1.c
  8fe36ae5ff2b4bac66cad558d27e43e8  gcc/testsuite/gcc.target/i386/set-v16qi-1.h
  6915570db34df8b6c58fb59297c73851  gcc/testsuite/gcc.target/i386/set-v16qi-2.h
*************** cf00a8a2d0f04ca8796391128435b5c5  gcc/te
*** 71658,71664 ****
  e3010259fd969225e1ae036ff2dbbcf1  gcc/testsuite/gcc.target/i386/set-v8hi-1.h
  df7fe464f1a66a5f86ee8844223864bf  gcc/testsuite/gcc.target/i386/set-v8hi-2.h
  9bfec9dc5427c758f1b6c4c8b6b1665d  gcc/testsuite/gcc.target/i386/sgx.c
! affa49da5e31be36a36b297ae7f02626  gcc/testsuite/gcc.target/i386/sha-check.h
  511a342a2698ef6a77eb8d291927fff5  gcc/testsuite/gcc.target/i386/sha1msg1-1.c
  5e8e0f5adc9c194ecbbce80f794c0f7a  gcc/testsuite/gcc.target/i386/sha1msg1-2.c
  20a205e37970ae77e828c09702257644  gcc/testsuite/gcc.target/i386/sha1msg2-1.c
--- 76569,76575 ----
  e3010259fd969225e1ae036ff2dbbcf1  gcc/testsuite/gcc.target/i386/set-v8hi-1.h
  df7fe464f1a66a5f86ee8844223864bf  gcc/testsuite/gcc.target/i386/set-v8hi-2.h
  9bfec9dc5427c758f1b6c4c8b6b1665d  gcc/testsuite/gcc.target/i386/sgx.c
! 2465c209e064e194a0622c2554ea843f  gcc/testsuite/gcc.target/i386/sha-check.h
  511a342a2698ef6a77eb8d291927fff5  gcc/testsuite/gcc.target/i386/sha1msg1-1.c
  5e8e0f5adc9c194ecbbce80f794c0f7a  gcc/testsuite/gcc.target/i386/sha1msg1-2.c
  20a205e37970ae77e828c09702257644  gcc/testsuite/gcc.target/i386/sha1msg2-1.c
*************** f2e570dc674eafa85f840615dd2948fb  gcc/te
*** 71673,71678 ****
--- 76584,76594 ----
  568f5d4ffbda01157a02f87e9b9e13bd  gcc/testsuite/gcc.target/i386/sha256msg2-2.c
  8f111b41fd31fe6cff00368285dfe3ae  gcc/testsuite/gcc.target/i386/sha256rnds2-1.c
  2c2126d5e0ee71d49c43210cdc139c79  gcc/testsuite/gcc.target/i386/sha256rnds2-2.c
+ c19fb1b7c0161a440da56f97ea41b67e  gcc/testsuite/gcc.target/i386/sha512-1.c
+ c05d22a930ef3f74451ec3e9d4db1b74  gcc/testsuite/gcc.target/i386/sha512-check.h
+ 08b28bfac5203b2af9b0fb068727a87c  gcc/testsuite/gcc.target/i386/sha512msg1-2.c
+ 1d13c923e2137e0e9947a181060c5ef9  gcc/testsuite/gcc.target/i386/sha512msg2-2.c
+ e0ace5d39e9cc7930c86ec3fac2a2562  gcc/testsuite/gcc.target/i386/sha512rnds2-2.c
  11a4bd4138e7963e0cd81b6e0197cfe6  gcc/testsuite/gcc.target/i386/shift_mask.c
  b575f46102e75c61317492fad36873d8  gcc/testsuite/gcc.target/i386/shrink_wrap_1.c
  db687b7347e27fd960300505daa014ee  gcc/testsuite/gcc.target/i386/shuf-concat.c
*************** c243f1e5e2ec3b5d5c6b3cce7b8a72e4  gcc/te
*** 71687,71692 ****
--- 76603,76617 ----
  3001d63a83bb1d685960823efc333364  gcc/testsuite/gcc.target/i386/signbit-1.c
  2f0289ffcedbdb4af3f936dc5e9bdeb4  gcc/testsuite/gcc.target/i386/signbit-2.c
  b5540c2e6c4aa6f5730ae17876c12e1f  gcc/testsuite/gcc.target/i386/signbit-3.c
+ 33dbb38586061293651c028880bd99fa  gcc/testsuite/gcc.target/i386/sm3-1.c
+ 5a643b9fc56f00aebd37ebb534eecf1c  gcc/testsuite/gcc.target/i386/sm3-check.h
+ 46e64aea45bf1a49d1a401bf19f959fa  gcc/testsuite/gcc.target/i386/sm3msg1-2.c
+ a91c690a2baabf7fb9fbf56c14d88bed  gcc/testsuite/gcc.target/i386/sm3msg2-2.c
+ 658cdfafdd75c9f80c598bb25abc395a  gcc/testsuite/gcc.target/i386/sm3rnds2-2.c
+ 527afc04ce7409a5918499d4e09fb6d0  gcc/testsuite/gcc.target/i386/sm4-1.c
+ 710a3de2afdbcce862d99b837cc77c25  gcc/testsuite/gcc.target/i386/sm4-check.h
+ d3d755c099a0d9093b8e3e5488d4fca0  gcc/testsuite/gcc.target/i386/sm4key4-2.c
+ aad85a16999958388a426758d91d43f4  gcc/testsuite/gcc.target/i386/sm4rnds4-2.c
  577e5b7c826e6a9e098a6607865c5e41  gcc/testsuite/gcc.target/i386/smuldi3_highpart.c
  ced55c097c7540a16ac1207e0104aafd  gcc/testsuite/gcc.target/i386/spellcheck-options-1.c
  2e1cd127d43849d529e1e8543aaaba2b  gcc/testsuite/gcc.target/i386/spellcheck-options-2.c
*************** bc6b7244a28a5688b5a5c75593461393  gcc/te
*** 71700,71708 ****
  cc8a162617784a2e883a5e726d28ebde  gcc/testsuite/gcc.target/i386/sse-1.c
  31f7ce4356be3b5523e49df7d4ad0951  gcc/testsuite/gcc.target/i386/sse-10.c
  49bde97b271274cb2bc26697ce2b19be  gcc/testsuite/gcc.target/i386/sse-11.c
! d7c1af06bacfa705cb95c916f47a2010  gcc/testsuite/gcc.target/i386/sse-12.c
! 26a3deabdd423e91b1550b2dd3a26d25  gcc/testsuite/gcc.target/i386/sse-13.c
! f795187d62f27a8281898f11142171ea  gcc/testsuite/gcc.target/i386/sse-14.c
  92ad37b5ad7426d489b1b6f1ba0f41ea  gcc/testsuite/gcc.target/i386/sse-15.c
  2e7b115c4bd7984925f1a8d17a5faf67  gcc/testsuite/gcc.target/i386/sse-16.c
  f660e67b22cb44e6a6b38a247b1d78c3  gcc/testsuite/gcc.target/i386/sse-17.c
--- 76625,76633 ----
  cc8a162617784a2e883a5e726d28ebde  gcc/testsuite/gcc.target/i386/sse-1.c
  31f7ce4356be3b5523e49df7d4ad0951  gcc/testsuite/gcc.target/i386/sse-10.c
  49bde97b271274cb2bc26697ce2b19be  gcc/testsuite/gcc.target/i386/sse-11.c
! 05bd35f432682f9cbfa3d5258b149e67  gcc/testsuite/gcc.target/i386/sse-12.c
! 92584d689966fb22ac0b8bdfd30dc981  gcc/testsuite/gcc.target/i386/sse-13.c
! 4e9d3b0dd4fee332fb71587d2110fd50  gcc/testsuite/gcc.target/i386/sse-14.c
  92ad37b5ad7426d489b1b6f1ba0f41ea  gcc/testsuite/gcc.target/i386/sse-15.c
  2e7b115c4bd7984925f1a8d17a5faf67  gcc/testsuite/gcc.target/i386/sse-16.c
  f660e67b22cb44e6a6b38a247b1d78c3  gcc/testsuite/gcc.target/i386/sse-17.c
*************** f660e67b22cb44e6a6b38a247b1d78c3  gcc/te
*** 71711,71722 ****
  bb148b6e9dd40de90aed723794e38216  gcc/testsuite/gcc.target/i386/sse-2.c
  c23a0ea446a060d55e49e48429513f7d  gcc/testsuite/gcc.target/i386/sse-20.c
  d5e7e4c7d488a953399d853e48aa484e  gcc/testsuite/gcc.target/i386/sse-21.c
! 16fb832b50fecbd99928a9356103cccc  gcc/testsuite/gcc.target/i386/sse-22.c
  1c2df57cb3d7d6a3daf4084135ba9b1b  gcc/testsuite/gcc.target/i386/sse-22a.c
! d3f0a0a2a7404257578e6f05560c3b6d  gcc/testsuite/gcc.target/i386/sse-23.c
  3fe1d48ff9d52631da56f04cc922a9cb  gcc/testsuite/gcc.target/i386/sse-24.c
  f839ec28fa786a06dabe541954c1b1ae  gcc/testsuite/gcc.target/i386/sse-25.c
! 74d7245c448c34b5d69a304bcd162956  gcc/testsuite/gcc.target/i386/sse-26.c
  9dfe2cc74e998cef475e202f64ff8322  gcc/testsuite/gcc.target/i386/sse-3.c
  5d81ca69ddc7b70211c056c3bdc53dfa  gcc/testsuite/gcc.target/i386/sse-4.c
  61e96951e72e9099132e830d78d88dd2  gcc/testsuite/gcc.target/i386/sse-5.c
--- 76636,76647 ----
  bb148b6e9dd40de90aed723794e38216  gcc/testsuite/gcc.target/i386/sse-2.c
  c23a0ea446a060d55e49e48429513f7d  gcc/testsuite/gcc.target/i386/sse-20.c
  d5e7e4c7d488a953399d853e48aa484e  gcc/testsuite/gcc.target/i386/sse-21.c
! 824514b351a1420f4e2bd309b4548d4a  gcc/testsuite/gcc.target/i386/sse-22.c
  1c2df57cb3d7d6a3daf4084135ba9b1b  gcc/testsuite/gcc.target/i386/sse-22a.c
! d87997c408608e3c6e4aad06da1ad657  gcc/testsuite/gcc.target/i386/sse-23.c
  3fe1d48ff9d52631da56f04cc922a9cb  gcc/testsuite/gcc.target/i386/sse-24.c
  f839ec28fa786a06dabe541954c1b1ae  gcc/testsuite/gcc.target/i386/sse-25.c
! e8a84d53379236add57dd9d8b7053ab1  gcc/testsuite/gcc.target/i386/sse-26.c
  9dfe2cc74e998cef475e202f64ff8322  gcc/testsuite/gcc.target/i386/sse-3.c
  5d81ca69ddc7b70211c056c3bdc53dfa  gcc/testsuite/gcc.target/i386/sse-4.c
  61e96951e72e9099132e830d78d88dd2  gcc/testsuite/gcc.target/i386/sse-5.c
*************** d577617bdd4e8a2de2ec9b6e4bde1eb4  gcc/te
*** 71800,71808 ****
  45d458b0f755e9542ac936ae4fc8eb16  gcc/testsuite/gcc.target/i386/sse2-addsd-1.c
  f31713939bdc5209351df9a08b597557  gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c
  ad1dd097598261bb606526980c62c78e  gcc/testsuite/gcc.target/i386/sse2-andpd-1.c
! f755c7b1256859497debfc77f9c3ca36  gcc/testsuite/gcc.target/i386/sse2-bfloat16-1.c
  534cad63c699a360c7081b2647c43ab9  gcc/testsuite/gcc.target/i386/sse2-bfloat16-2.c
! 783e29c7002c1fa71d641869a82c7f8b  gcc/testsuite/gcc.target/i386/sse2-bfloat16-scalar-typecheck.c
  5c043f9abbc3ad9ae973384fd30850c0  gcc/testsuite/gcc.target/i386/sse2-builtin-fp-int-inexact.c
  6658245d9cdd7b084f9f2fa2dcc881f2  gcc/testsuite/gcc.target/i386/sse2-check.h
  12ed5dd15b94275feb351ef37ce96d3d  gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c
--- 76725,76733 ----
  45d458b0f755e9542ac936ae4fc8eb16  gcc/testsuite/gcc.target/i386/sse2-addsd-1.c
  f31713939bdc5209351df9a08b597557  gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c
  ad1dd097598261bb606526980c62c78e  gcc/testsuite/gcc.target/i386/sse2-andpd-1.c
! ef24b6bdf3dfec31c6a03f2c1d49b42b  gcc/testsuite/gcc.target/i386/sse2-bfloat16-1.c
  534cad63c699a360c7081b2647c43ab9  gcc/testsuite/gcc.target/i386/sse2-bfloat16-2.c
! 84cd4cec73572972cceb0db29510b927  gcc/testsuite/gcc.target/i386/sse2-bfloat16-scalar-typecheck.c
  5c043f9abbc3ad9ae973384fd30850c0  gcc/testsuite/gcc.target/i386/sse2-builtin-fp-int-inexact.c
  6658245d9cdd7b084f9f2fa2dcc881f2  gcc/testsuite/gcc.target/i386/sse2-check.h
  12ed5dd15b94275feb351ef37ce96d3d  gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c
*************** b9ce5798c339f3d6a78c41c0059bb5e2  gcc/te
*** 71837,71845 ****
  fc535f253868df6d104fe59110255bbe  gcc/testsuite/gcc.target/i386/sse2-divpd-1.c
  c61ecb520f8d8d7266675b405d7b2aa7  gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
  a4889872f8bd70b679c9e9fc5ee3617f  gcc/testsuite/gcc.target/i386/sse2-extract-1.c
! c6b2603aad0a6b24415ac190a2809108  gcc/testsuite/gcc.target/i386/sse2-float16-1.c
  f8306e38605e0cbae5c9cbfe5ac4c94c  gcc/testsuite/gcc.target/i386/sse2-float16-2.c
  230115582d6aa23705616d8b7bfcdaca  gcc/testsuite/gcc.target/i386/sse2-float16-3.c
  bce0423c5fcea8a8b29f29c4fb6680c2  gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
  8e1f68af9dae754623af8653e461ece1  gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
  a483238e8a216ddeb00c43d4921dd054  gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
--- 76762,76772 ----
  fc535f253868df6d104fe59110255bbe  gcc/testsuite/gcc.target/i386/sse2-divpd-1.c
  c61ecb520f8d8d7266675b405d7b2aa7  gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
  a4889872f8bd70b679c9e9fc5ee3617f  gcc/testsuite/gcc.target/i386/sse2-extract-1.c
! 67f0eee468e95f56f724a8eac0228c99  gcc/testsuite/gcc.target/i386/sse2-float16-1.c
  f8306e38605e0cbae5c9cbfe5ac4c94c  gcc/testsuite/gcc.target/i386/sse2-float16-2.c
  230115582d6aa23705616d8b7bfcdaca  gcc/testsuite/gcc.target/i386/sse2-float16-3.c
+ a8cbfe4bb81133de6efac722e80f2cb9  gcc/testsuite/gcc.target/i386/sse2-float16-4.c
+ 3c00574463ef55a91b65fc4f46b65ed7  gcc/testsuite/gcc.target/i386/sse2-float16-5.c
  bce0423c5fcea8a8b29f29c4fb6680c2  gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
  8e1f68af9dae754623af8653e461ece1  gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
  a483238e8a216ddeb00c43d4921dd054  gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
*************** a9f2b3f67cc7cb3fb9c0619f634d95c3  gcc/te
*** 71880,71885 ****
--- 76807,76813 ----
  246aec5060d9e32ebd3fdcc6119f9387  gcc/testsuite/gcc.target/i386/sse2-mmx-cvttps2pi.c
  dcc8ed3eee64487dcb2955693af5ca25  gcc/testsuite/gcc.target/i386/sse2-mmx-maskmovq.c
  03c4ea51dc32d67f20c5680428b2bebe  gcc/testsuite/gcc.target/i386/sse2-mmx-movss-1.c
+ 4c835a2ac3391aeb6f2bf43b47039e7f  gcc/testsuite/gcc.target/i386/sse2-mmx-mult-vec.c
  aeedf1243eb2ac92a988260ff4f330e2  gcc/testsuite/gcc.target/i386/sse2-mmx-packssdw.c
  ebb38c7ab7edcfdb1a20ad6d30e500be  gcc/testsuite/gcc.target/i386/sse2-mmx-packsswb.c
  b9e6b582fd5bc8c137d2bb46eae6f3bb  gcc/testsuite/gcc.target/i386/sse2-mmx-packuswb.c
*************** b4038cdeb4eee7cf1074de1cead1d1b5  gcc/te
*** 72011,72016 ****
--- 76939,76946 ----
  d1e0ff73b10eb61ca8fa06128a453ef9  gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c
  308fe64b1fe9bf78b6b4ed03b89a6c2f  gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c
  5a4b1b55ad120b0697aa2b141f831dcc  gcc/testsuite/gcc.target/i386/sse2-por-1.c
+ 42b0a030864c4e7c12b6c80d6c8ae276  gcc/testsuite/gcc.target/i386/sse2-pr112816-2.c
+ f25ef90e2173390dbb01786ae8576e29  gcc/testsuite/gcc.target/i386/sse2-pr112816.c
  749703f860d7a5cb18e2328329fb1c71  gcc/testsuite/gcc.target/i386/sse2-pr39821.c
  bdbcd892d3f88fe1d7a07a2122cb928d  gcc/testsuite/gcc.target/i386/sse2-pr57233.c
  ab93046758268c8e3106f1bed7d4e8a5  gcc/testsuite/gcc.target/i386/sse2-pr63594-1.c
*************** cf5ce63ad160152c8cf0c9c3d01c5b79  gcc/te
*** 72077,72088 ****
  d83d0f8b342ff8ef187b5267acdf1b9a  gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c
  001bec980378e25765c927def02c9eae  gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c
  c86c2814d0ff9e3e7807177c93e54cdf  gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c
! e906f5a58f29936534956c33249771a4  gcc/testsuite/gcc.target/i386/sse2-shiftqihi-constant-1.c
  1de74963e620964fc49c729ef9de0a73  gcc/testsuite/gcc.target/i386/sse2-shiftqihi-constant-2.c
  747d389fb10946466ce7106bf9861c05  gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c
  229da27deb07940e47896f28568a9ad6  gcc/testsuite/gcc.target/i386/sse2-shufps-1.c
  e3c923013c80e125486648e3307d19ca  gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c
  7db644ccdd175cb179b38dae92b1ab88  gcc/testsuite/gcc.target/i386/sse2-store-multi.c
  9be13acc473ad924e8c8d9361b6bb102  gcc/testsuite/gcc.target/i386/sse2-subpd-1.c
  27c775be57a4cec6ca0c692df6b7b073  gcc/testsuite/gcc.target/i386/sse2-subsd-1.c
  29e42097b8a8d6b6700b13e1bd99e89d  gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c
--- 77007,77019 ----
  d83d0f8b342ff8ef187b5267acdf1b9a  gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c
  001bec980378e25765c927def02c9eae  gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c
  c86c2814d0ff9e3e7807177c93e54cdf  gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c
! c3f9e4e1884a10b88f0b0841400ac634  gcc/testsuite/gcc.target/i386/sse2-shiftqihi-constant-1.c
  1de74963e620964fc49c729ef9de0a73  gcc/testsuite/gcc.target/i386/sse2-shiftqihi-constant-2.c
  747d389fb10946466ce7106bf9861c05  gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c
  229da27deb07940e47896f28568a9ad6  gcc/testsuite/gcc.target/i386/sse2-shufps-1.c
  e3c923013c80e125486648e3307d19ca  gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c
  7db644ccdd175cb179b38dae92b1ab88  gcc/testsuite/gcc.target/i386/sse2-store-multi.c
+ 485842b0c48475dd73631d5d7395a734  gcc/testsuite/gcc.target/i386/sse2-stv-1.c
  9be13acc473ad924e8c8d9361b6bb102  gcc/testsuite/gcc.target/i386/sse2-subpd-1.c
  27c775be57a4cec6ca0c692df6b7b073  gcc/testsuite/gcc.target/i386/sse2-subsd-1.c
  29e42097b8a8d6b6700b13e1bd99e89d  gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c
*************** c8e314bac263e55f2fcbbdf16df8d2d1  gcc/te
*** 72103,72108 ****
--- 77034,77040 ----
  44b5efea3dad2df6243820aea41c77e6  gcc/testsuite/gcc.target/i386/sse2-v1ti-logic-2.c
  7c08c8089d2cd264085f8f1f27aaaa4c  gcc/testsuite/gcc.target/i386/sse2-v1ti-logic.c
  9903085d39d7b4b8be1b9dc73e11aab9  gcc/testsuite/gcc.target/i386/sse2-v1ti-mov-1.c
+ 34aa9ecda1e867a6b58a66613bbfbba9  gcc/testsuite/gcc.target/i386/sse2-v1ti-mov-2.c
  438a96821f374f7584ee4fcdf0179706  gcc/testsuite/gcc.target/i386/sse2-v1ti-rotate.c
  cf99e4d1cf8d2c89fd3dbdda184cc0ea  gcc/testsuite/gcc.target/i386/sse2-v1ti-shift-2.c
  4eba81e6b3506e6c73a8b1b2aeac0f41  gcc/testsuite/gcc.target/i386/sse2-v1ti-shift-3.c
*************** b0b2094f1f81694e655c06af411b909e  gcc/te
*** 72137,72142 ****
--- 77069,77075 ----
  e74162d2e3d68b7ced7d0745c7adc4f2  gcc/testsuite/gcc.target/i386/sse3-movddup.c
  d82d917b914b989a4f437aca582f09a3  gcc/testsuite/gcc.target/i386/sse3-movshdup.c
  61cb0bb6708a19006f1679b146c2f6e1  gcc/testsuite/gcc.target/i386/sse3-movsldup.c
+ 587d69bc58be1302b1b8f9147eb534de  gcc/testsuite/gcc.target/i386/sse4-pr112681.c
  9624ab9319b8bca095f72845310aa4eb  gcc/testsuite/gcc.target/i386/sse4-pr39821.c
  e18bbd1a575dbb964c9953896983e6c4  gcc/testsuite/gcc.target/i386/sse4_1-blendpd.c
  a736f67981b7b1bab60f7f837650f79f  gcc/testsuite/gcc.target/i386/sse4_1-blendps-2.c
*************** bdae5ff1d18a830901bb43d664174dd6  gcc/te
*** 72168,72173 ****
--- 77101,77107 ----
  90c8599a467abc2454dac6a68dc4ba6c  gcc/testsuite/gcc.target/i386/sse4_1-insertps-2.c
  909b150567f6eceb243322e353156041  gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c
  9e802ec2f740be070ce64c7f77ab248c  gcc/testsuite/gcc.target/i386/sse4_1-insertps-4.c
+ 68922774108d148f26f9fbf1fd458e37  gcc/testsuite/gcc.target/i386/sse4_1-insertps-5.c
  5fa55f67e7ee6b8a4c903cb54d2c371e  gcc/testsuite/gcc.target/i386/sse4_1-insvdi.c
  22c494d00cdea9dd4dcabbc91d6ed567  gcc/testsuite/gcc.target/i386/sse4_1-insvqi.c
  42dbfc0cc96136a3afb436034096ed1c  gcc/testsuite/gcc.target/i386/sse4_1-insvsi.c
*************** bb5484db46d5db1bc08e3be71a124faf  gcc/te
*** 72221,72226 ****
--- 77155,77163 ----
  74446c253cb11a77fdd1592a740b22da  gcc/testsuite/gcc.target/i386/sse4_1-ptest-1.c
  caaaf541c6f7eb87214c11b5dc2b35f0  gcc/testsuite/gcc.target/i386/sse4_1-ptest-2.c
  839d2ec94fbd1d01290fff5be102952c  gcc/testsuite/gcc.target/i386/sse4_1-ptest-3.c
+ 15ef11d1dac7ad31e1121e9c543bea70  gcc/testsuite/gcc.target/i386/sse4_1-ptest-4.c
+ c7f19bd30ed931063fa75e82444dd743  gcc/testsuite/gcc.target/i386/sse4_1-ptest-5.c
+ b2f9c9d9e447094c2e94c85cc66d9048  gcc/testsuite/gcc.target/i386/sse4_1-ptest-6.c
  6408e72a864871562196b6c57a9cad38  gcc/testsuite/gcc.target/i386/sse4_1-rint-inline.c
  75e4f72172a62d7cb9bc07f245c0c740  gcc/testsuite/gcc.target/i386/sse4_1-rint-sfix-vec.c
  d43f57b93ce30d26aca624ea0e35e1ed  gcc/testsuite/gcc.target/i386/sse4_1-rint-vec.c
*************** fd3b33fd84346bf0b8d462c1febb06fb  gcc/te
*** 72256,72268 ****
  ff4a381ee5305c9a18c5754c13c12790  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-2a.c
  e74f5b8f16d9e3c28227ea31186f816a  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-3.c
  a2f5b0c7365f7c93751ba3a6aa3eee83  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-3a.c
! edddd6da3bf0853cb20bb152f72f3334  gcc/testsuite/gcc.target/i386/sse4_1-stv-1.c
  0d4ea3fb9a13317ac032d3b746eb211a  gcc/testsuite/gcc.target/i386/sse4_1-stv-2.c
  7ccf320367db828d9231b02a5a2706de  gcc/testsuite/gcc.target/i386/sse4_1-stv-3.c
  60adbd8686ae10af58220efca0984cce  gcc/testsuite/gcc.target/i386/sse4_1-stv-4.c
  188e6fb351c623587b3438faa7402197  gcc/testsuite/gcc.target/i386/sse4_1-stv-5.c
  0141a211b57a98b2a722a6e14ddc2551  gcc/testsuite/gcc.target/i386/sse4_1-stv-6.c
  e1c25694b14becd08b14458203f36c4e  gcc/testsuite/gcc.target/i386/sse4_1-stv-7.c
  68831cd1afc62953bae7add902600a86  gcc/testsuite/gcc.target/i386/sse4_1-stv-9.c
  6ce5f7a9e3c9fffe77b1a62fe72e8122  gcc/testsuite/gcc.target/i386/sse4_1-trunc-vec.c
  73a07de2b59200c14c97da9c1f6888c8  gcc/testsuite/gcc.target/i386/sse4_1-truncf-vec.c
--- 77193,77206 ----
  ff4a381ee5305c9a18c5754c13c12790  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-2a.c
  e74f5b8f16d9e3c28227ea31186f816a  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-3.c
  a2f5b0c7365f7c93751ba3a6aa3eee83  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-3a.c
! 72524fc8a79531162d13f560e0d144fe  gcc/testsuite/gcc.target/i386/sse4_1-stv-1.c
  0d4ea3fb9a13317ac032d3b746eb211a  gcc/testsuite/gcc.target/i386/sse4_1-stv-2.c
  7ccf320367db828d9231b02a5a2706de  gcc/testsuite/gcc.target/i386/sse4_1-stv-3.c
  60adbd8686ae10af58220efca0984cce  gcc/testsuite/gcc.target/i386/sse4_1-stv-4.c
  188e6fb351c623587b3438faa7402197  gcc/testsuite/gcc.target/i386/sse4_1-stv-5.c
  0141a211b57a98b2a722a6e14ddc2551  gcc/testsuite/gcc.target/i386/sse4_1-stv-6.c
  e1c25694b14becd08b14458203f36c4e  gcc/testsuite/gcc.target/i386/sse4_1-stv-7.c
+ c5d8a69553e93d20da53aa97dbd851fd  gcc/testsuite/gcc.target/i386/sse4_1-stv-8.c
  68831cd1afc62953bae7add902600a86  gcc/testsuite/gcc.target/i386/sse4_1-stv-9.c
  6ce5f7a9e3c9fffe77b1a62fe72e8122  gcc/testsuite/gcc.target/i386/sse4_1-trunc-vec.c
  73a07de2b59200c14c97da9c1f6888c8  gcc/testsuite/gcc.target/i386/sse4_1-truncf-vec.c
*************** a9f88e9f5dc3a65651e4aac1c477bd99  gcc/te
*** 72337,72343 ****
  350a25c3aea2becac5c56cff7b4bf401  gcc/testsuite/gcc.target/i386/ssse3-vals.h
  477939a29a89fa9e24f140cf485795a0  gcc/testsuite/gcc.target/i386/stack-check-11.c
  663ee911f5f6c14483010012c61ad672  gcc/testsuite/gcc.target/i386/stack-check-12.c
! 7844ca617d81af9d9c4b5080dbdde5fe  gcc/testsuite/gcc.target/i386/stack-check-17.c
  f4f31f4c82164ce7b9fec1c877d2f06a  gcc/testsuite/gcc.target/i386/stack-check-18.c
  85ba669397fb051dbc3e76f146553033  gcc/testsuite/gcc.target/i386/stack-check-19.c
  ca5571ee490db85826dd15cbfd5c6555  gcc/testsuite/gcc.target/i386/stack-prot-guard.c
--- 77275,77281 ----
  350a25c3aea2becac5c56cff7b4bf401  gcc/testsuite/gcc.target/i386/ssse3-vals.h
  477939a29a89fa9e24f140cf485795a0  gcc/testsuite/gcc.target/i386/stack-check-11.c
  663ee911f5f6c14483010012c61ad672  gcc/testsuite/gcc.target/i386/stack-check-12.c
! 750a7405dd4a2eeed037db510a92fe3e  gcc/testsuite/gcc.target/i386/stack-check-17.c
  f4f31f4c82164ce7b9fec1c877d2f06a  gcc/testsuite/gcc.target/i386/stack-check-18.c
  85ba669397fb051dbc3e76f146553033  gcc/testsuite/gcc.target/i386/stack-check-19.c
  ca5571ee490db85826dd15cbfd5c6555  gcc/testsuite/gcc.target/i386/stack-prot-guard.c
*************** e797e3acc17ea660fd93c0911e210be1  gcc/te
*** 72358,72364 ****
  22fcf3b6f05e35417473446a6401735c  gcc/testsuite/gcc.target/i386/stackalign/return-4.c
  8276f2c9f0467299ccc2c3bc989ca9cb  gcc/testsuite/gcc.target/i386/stackalign/return-5.c
  67a3c24d3712370ddefd38dcbb853a48  gcc/testsuite/gcc.target/i386/stackalign/return-6.c
! be1e25f439f8ea6d53eb7d517508c2d7  gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp
  2778b9ab1729f5a65d10668b47f03340  gcc/testsuite/gcc.target/i386/strcmpopt_6.c
  caa0a36ffb354dbc6cd84a8137f4aef9  gcc/testsuite/gcc.target/i386/strinline.c
  aa69c6504471efa5d76824859d0bc6cb  gcc/testsuite/gcc.target/i386/strncmp-1.c
--- 77296,77303 ----
  22fcf3b6f05e35417473446a6401735c  gcc/testsuite/gcc.target/i386/stackalign/return-4.c
  8276f2c9f0467299ccc2c3bc989ca9cb  gcc/testsuite/gcc.target/i386/stackalign/return-5.c
  67a3c24d3712370ddefd38dcbb853a48  gcc/testsuite/gcc.target/i386/stackalign/return-6.c
! c7175677e79a3b0510890932cf9db36b  gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp
! ad09d7a5edd0c6a4e2e56b5ee419095d  gcc/testsuite/gcc.target/i386/stc-1.c
  2778b9ab1729f5a65d10668b47f03340  gcc/testsuite/gcc.target/i386/strcmpopt_6.c
  caa0a36ffb354dbc6cd84a8137f4aef9  gcc/testsuite/gcc.target/i386/strinline.c
  aa69c6504471efa5d76824859d0bc6cb  gcc/testsuite/gcc.target/i386/strncmp-1.c
*************** cd1514bc672897ccd336522e7e4b9c75  gcc/te
*** 72394,72399 ****
--- 77333,77339 ----
  81ddb632fb38aeca1743e7f489feb55d  gcc/testsuite/gcc.target/i386/udivmod-6.c
  9d334c93c0ea26df7f9434fcb5a047b4  gcc/testsuite/gcc.target/i386/udivmod-7.c
  be3365966668001dda567754312a4f5e  gcc/testsuite/gcc.target/i386/udivmod-8.c
+ 9d15628fbee0275cb7429604d186f49a  gcc/testsuite/gcc.target/i386/udotprodint8_emulate.c
  0109d1a4e225b3755673fbaf77ba3cec  gcc/testsuite/gcc.target/i386/uintr-1.c
  350a9926055dac3bb8d57db4885aff10  gcc/testsuite/gcc.target/i386/uintr-2.c
  208db11f3088f797e0d34eef91005d8f  gcc/testsuite/gcc.target/i386/uintr-3.c
*************** bc81fc7aec323184dc275b97962476e5  gcc/te
*** 72405,72410 ****
--- 77345,77352 ----
  9a5eeb730f7c4497d69c0ccd31429ec1  gcc/testsuite/gcc.target/i386/umonitor-1.c
  b3482aa074e044edfb2a4c72e5c1d085  gcc/testsuite/gcc.target/i386/unordcmp-1.c
  133d7eb15ead287c2ef11a8162780801  gcc/testsuite/gcc.target/i386/unroll-1.c
+ c30812b4c7eb367ec8e5f4aba349d66b  gcc/testsuite/gcc.target/i386/user_msr-1.c
+ d817f6a5d58eae58bff8e4083f7945db  gcc/testsuite/gcc.target/i386/user_msr-2.c
  aafb0010ebceff249236af3aa1f22e2b  gcc/testsuite/gcc.target/i386/vararg-1.c
  3b8acabb2f18b3fd13f3871729bac23f  gcc/testsuite/gcc.target/i386/vararg-10.c
  2869209769b52916ee551938b0c572f1  gcc/testsuite/gcc.target/i386/vararg-2.c
*************** a4fe926ed930e3d04f3d214919607450  gcc/te
*** 72425,72430 ****
--- 77367,77375 ----
  7bfd4b219fe89df5db7d39dd83f07267  gcc/testsuite/gcc.target/i386/vcvtps2ph-3.c
  4e2a9fed7ac851716175ce533cffc50c  gcc/testsuite/gcc.target/i386/vec-maskstore-vn.c
  c3845076ba5898729c1d858ed48d8182  gcc/testsuite/gcc.target/i386/vec-may_alias.c
+ cd181fd10dd2e6a15a006a58f1a11629  gcc/testsuite/gcc.target/i386/vec_pack_fp16-1.c
+ 66adb507eda2790323af12542d99bb86  gcc/testsuite/gcc.target/i386/vec_pack_fp16-2.c
+ 397899ef41e8a5ef65935f0d7f824bc4  gcc/testsuite/gcc.target/i386/vec_pack_fp16-3.c
  6c6b35f324ed291cf10b22e9a8f246a4  gcc/testsuite/gcc.target/i386/vecinit-1.c
  8c76c9fbb837c00a866f4323808181a0  gcc/testsuite/gcc.target/i386/vecinit-2.c
  5c31804a1a01677fce626685b7d3670c  gcc/testsuite/gcc.target/i386/vecinit-3.c
*************** d8a06b42b5d0e429d4de46913e331fbf  gcc/te
*** 72441,72455 ****
  5580f2a6928e2da29a5b366a63baa25f  gcc/testsuite/gcc.target/i386/vect-addsubv4df.c
  c24fae5adc0ce5fb40efb0c3fd4c5150  gcc/testsuite/gcc.target/i386/vect-addsubv4sf.c
  e8b765803fadda8eefcf01741317c8de  gcc/testsuite/gcc.target/i386/vect-addsubv8sf.c
! 5e421c94bedfd65495d5368891bb3990  gcc/testsuite/gcc.target/i386/vect-alignment-peeling-1.c
! 0518e4e31721ecfae2923daa6806692e  gcc/testsuite/gcc.target/i386/vect-alignment-peeling-2.c
  dcf09c8d7eb01e0e8a5e8cefaf164498  gcc/testsuite/gcc.target/i386/vect-args.c
  166514b293e147eb9e6ae706c1dcf60f  gcc/testsuite/gcc.target/i386/vect-bfloat16-1.c
  64e947d6f5fbfaeeb886d49aec0a5ea0  gcc/testsuite/gcc.target/i386/vect-bfloat16-2a.c
  5e1a816c4e72e212dd0e6f8f96f869f2  gcc/testsuite/gcc.target/i386/vect-bfloat16-2b.c
  eda0d442fd95aa4f91e9f15d67b2a009  gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c
! 4308a7e615055bcef8a986ef90c02437  gcc/testsuite/gcc.target/i386/vect-bfloat16-typecheck_1.c
! 18e1b622ec54ee1383a44580695adefb  gcc/testsuite/gcc.target/i386/vect-bfloat16-typecheck_2.c
  f34aa81937bfa895146815db467bcc3d  gcc/testsuite/gcc.target/i386/vect-cond-1.c
  5c0044496c9a7d83c47a821d73ab8ddf  gcc/testsuite/gcc.target/i386/vect-div-1.c
  38733171ed3f42215de340f00f2277e8  gcc/testsuite/gcc.target/i386/vect-double-1.c
--- 77386,77400 ----
  5580f2a6928e2da29a5b366a63baa25f  gcc/testsuite/gcc.target/i386/vect-addsubv4df.c
  c24fae5adc0ce5fb40efb0c3fd4c5150  gcc/testsuite/gcc.target/i386/vect-addsubv4sf.c
  e8b765803fadda8eefcf01741317c8de  gcc/testsuite/gcc.target/i386/vect-addsubv8sf.c
! fb08b790e4753cd7a09e81d7f3e66820  gcc/testsuite/gcc.target/i386/vect-alignment-peeling-1.c
! 327ac4d8bdf3fa32f396833f25ddefdd  gcc/testsuite/gcc.target/i386/vect-alignment-peeling-2.c
  dcf09c8d7eb01e0e8a5e8cefaf164498  gcc/testsuite/gcc.target/i386/vect-args.c
  166514b293e147eb9e6ae706c1dcf60f  gcc/testsuite/gcc.target/i386/vect-bfloat16-1.c
  64e947d6f5fbfaeeb886d49aec0a5ea0  gcc/testsuite/gcc.target/i386/vect-bfloat16-2a.c
  5e1a816c4e72e212dd0e6f8f96f869f2  gcc/testsuite/gcc.target/i386/vect-bfloat16-2b.c
  eda0d442fd95aa4f91e9f15d67b2a009  gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c
! ef5c459cb91849c88697aa740366def5  gcc/testsuite/gcc.target/i386/vect-bfloat16-typecheck_1.c
! c6de9db89c9a84b86bc9e22583bbe1da  gcc/testsuite/gcc.target/i386/vect-bfloat16-typecheck_2.c
  f34aa81937bfa895146815db467bcc3d  gcc/testsuite/gcc.target/i386/vect-cond-1.c
  5c0044496c9a7d83c47a821d73ab8ddf  gcc/testsuite/gcc.target/i386/vect-div-1.c
  38733171ed3f42215de340f00f2277e8  gcc/testsuite/gcc.target/i386/vect-double-1.c
*************** f9b3af027a9b6ed15ac79a3d3003a815  gcc/te
*** 72474,72493 ****
  df8fe973095a25b0038e0371af9053d4  gcc/testsuite/gcc.target/i386/vect-fmsubaddXXXps.c
  82dc60fe528d41ccd86fd9e442fb288f  gcc/testsuite/gcc.target/i386/vect-gather-1.c
  339b25c1c15e2ab8d1fcf9cb530f1171  gcc/testsuite/gcc.target/i386/vect-insert-1.c
! 1be56ef9ea27431ea78de1b1f37ba260  gcc/testsuite/gcc.target/i386/vect-pack-trunc-1.c
! 20a0928d3e53e6a1f55cc1cdd9b7dd3e  gcc/testsuite/gcc.target/i386/vect-pack-trunc-2.c
! 3ae8894d32adfa76a3d2a79477527531  gcc/testsuite/gcc.target/i386/vect-perm-even-1.c
  01c1d7e7805e8138e514493ab9238621  gcc/testsuite/gcc.target/i386/vect-perm-odd-1.c
  515f451843087285cae4273f2866f93b  gcc/testsuite/gcc.target/i386/vect-pr67800.c
  3c9e12b95afbbd42b2d335da98dfca9b  gcc/testsuite/gcc.target/i386/vect-pr82426.c
  c94d34a8add7450a1085d0dbbfca7403  gcc/testsuite/gcc.target/i386/vect-pr97352.c
  721bbf9cfd81a48f5915680f4a425bad  gcc/testsuite/gcc.target/i386/vect-rebuild.c
  75207fad1f58c73a9ea0045ffa247e39  gcc/testsuite/gcc.target/i386/vect-reduc-1.c
  de36035a6b74d9e9cabfaa8cfb15f288  gcc/testsuite/gcc.target/i386/vect-signbitf.c
  7f2bb0dd2fdc6e3a083e43645ee26275  gcc/testsuite/gcc.target/i386/vect-sizes-1.c
! ee92f709acd8e62a7c9dee331c01f3b5  gcc/testsuite/gcc.target/i386/vect-unpack-1.c
  6e2ac104cc5f021d36fbcdf67129f17d  gcc/testsuite/gcc.target/i386/vect-unpack-2.c
  e050839388ed939e6ea93e65d85f8264  gcc/testsuite/gcc.target/i386/vect-unpack-3.c
  14f97b9dcbd389e10dc5aa32f63f91f2  gcc/testsuite/gcc.target/i386/vect8-ret.c
  17262b0be0bb91aa8e2425773da183a3  gcc/testsuite/gcc.target/i386/vectorize1.c
  a681ca062ac072c3cb40b105a2ea0266  gcc/testsuite/gcc.target/i386/vectorize10.c
--- 77419,77451 ----
  df8fe973095a25b0038e0371af9053d4  gcc/testsuite/gcc.target/i386/vect-fmsubaddXXXps.c
  82dc60fe528d41ccd86fd9e442fb288f  gcc/testsuite/gcc.target/i386/vect-gather-1.c
  339b25c1c15e2ab8d1fcf9cb530f1171  gcc/testsuite/gcc.target/i386/vect-insert-1.c
! 82437418330b1ff76bf6a36967bd247c  gcc/testsuite/gcc.target/i386/vect-mulv4qi.c
! c0a8e3de707fb78f4441c0fe831dc041  gcc/testsuite/gcc.target/i386/vect-mulv8qi.c
! d6be07090948813f683ac84038744ff7  gcc/testsuite/gcc.target/i386/vect-pack-trunc-1.c
! effe531b5f3e972a24f7fcf6ae02d447  gcc/testsuite/gcc.target/i386/vect-pack-trunc-2.c
! d5deff4fe842f021396f3f5c94e96477  gcc/testsuite/gcc.target/i386/vect-partial-vectors-1.c
! 7163b5bbe13dbe8a1313ee8eaded246e  gcc/testsuite/gcc.target/i386/vect-partial-vectors-2.c
! c50397e875cfec6d318c0ef41dbe3596  gcc/testsuite/gcc.target/i386/vect-perm-even-1.c
  01c1d7e7805e8138e514493ab9238621  gcc/testsuite/gcc.target/i386/vect-perm-odd-1.c
+ 92f0334cc6aa244e46623ffea17f19a7  gcc/testsuite/gcc.target/i386/vect-pr113078.c
  515f451843087285cae4273f2866f93b  gcc/testsuite/gcc.target/i386/vect-pr67800.c
  3c9e12b95afbbd42b2d335da98dfca9b  gcc/testsuite/gcc.target/i386/vect-pr82426.c
  c94d34a8add7450a1085d0dbbfca7403  gcc/testsuite/gcc.target/i386/vect-pr97352.c
  721bbf9cfd81a48f5915680f4a425bad  gcc/testsuite/gcc.target/i386/vect-rebuild.c
  75207fad1f58c73a9ea0045ffa247e39  gcc/testsuite/gcc.target/i386/vect-reduc-1.c
+ 0f9fc194c0bd731306645fe06259feae  gcc/testsuite/gcc.target/i386/vect-reduc-2.c
+ db3be8fb9749039e9e22aaeecbc61b0c  gcc/testsuite/gcc.target/i386/vect-shiftv4qi.c
+ 00d914a2c06c655170776f24abf00754  gcc/testsuite/gcc.target/i386/vect-shiftv8qi.c
  de36035a6b74d9e9cabfaa8cfb15f288  gcc/testsuite/gcc.target/i386/vect-signbitf.c
+ b0da24fa88b08163c773260811462548  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-1.c
+ 0d27c648c7c20454c90cb0a7a80ec0e0  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-2.c
+ 998709b1ee7004cbdd5d3d7e5cc5794d  gcc/testsuite/gcc.target/i386/vect-simd-clone-avx512-3.c
  7f2bb0dd2fdc6e3a083e43645ee26275  gcc/testsuite/gcc.target/i386/vect-sizes-1.c
! aed8bd49e1e3dbcce9eed60b9381a26f  gcc/testsuite/gcc.target/i386/vect-unpack-1.c
  6e2ac104cc5f021d36fbcdf67129f17d  gcc/testsuite/gcc.target/i386/vect-unpack-2.c
  e050839388ed939e6ea93e65d85f8264  gcc/testsuite/gcc.target/i386/vect-unpack-3.c
+ 6138f593bf5a8a54c6a2ecd9c082fa92  gcc/testsuite/gcc.target/i386/vect-vshiftv4qi.c
+ aabfb464563bba6c95de882354b5de43  gcc/testsuite/gcc.target/i386/vect-vshiftv8qi.c
  14f97b9dcbd389e10dc5aa32f63f91f2  gcc/testsuite/gcc.target/i386/vect8-ret.c
  17262b0be0bb91aa8e2425773da183a3  gcc/testsuite/gcc.target/i386/vectorize1.c
  a681ca062ac072c3cb40b105a2ea0266  gcc/testsuite/gcc.target/i386/vectorize10.c
*************** f5394c038a3031cca8da6381b321aedb  gcc/te
*** 72500,72515 ****
  146491bc3c3d5fec1957a2ca55dbd0d5  gcc/testsuite/gcc.target/i386/vectorize7.c
  cf807a1a0c9ea4bc99f4a22859d9b829  gcc/testsuite/gcc.target/i386/vectorize8.c
  51bb807723c574207213354a4efa70d9  gcc/testsuite/gcc.target/i386/vectorize9.c
  6e75842fa095abfc68c803037e8bf3aa  gcc/testsuite/gcc.target/i386/vnni-auto-vectorize-1.c
  40595281c51d64d5637a42a7958158a3  gcc/testsuite/gcc.target/i386/vnni-auto-vectorize-2.c
  6517a2c66873ffa0e86469852e46a556  gcc/testsuite/gcc.target/i386/vnni_inline_error.c
  e125caaf089656a38668d9a76e5a9fd8  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-1.c
  0f1ad3156307cf7dd9eb8422acf396f6  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-2.c
  784c987777c87b20adb70aefdd43c1ea  gcc/testsuite/gcc.target/i386/volatile-1.c
  df392be222a4275b2813dd6198b59951  gcc/testsuite/gcc.target/i386/volatile-2.c
  a1724ce16bcf831fa3fa93e00649d504  gcc/testsuite/gcc.target/i386/volatile-bitfields-1.c
  4174eba20d57dcb2ac544483683682d3  gcc/testsuite/gcc.target/i386/volatile-bitfields-2.c
! 7ba434f6fe67861a583988bbb7fc4a22  gcc/testsuite/gcc.target/i386/vpclmulqdq.c
  ba2b1e708b3eafbf4da944250a3d4f95  gcc/testsuite/gcc.target/i386/vperm-2-2.inc
  132194f2f74e61ac0af4fc6e2c606778  gcc/testsuite/gcc.target/i386/vperm-4-1.inc
  a29164d700162446291a30e80f9fdf44  gcc/testsuite/gcc.target/i386/vperm-4-2.inc
--- 77458,77476 ----
  146491bc3c3d5fec1957a2ca55dbd0d5  gcc/testsuite/gcc.target/i386/vectorize7.c
  cf807a1a0c9ea4bc99f4a22859d9b829  gcc/testsuite/gcc.target/i386/vectorize8.c
  51bb807723c574207213354a4efa70d9  gcc/testsuite/gcc.target/i386/vectorize9.c
+ d9550dbca205ca245040a4868f69e106  gcc/testsuite/gcc.target/i386/vlddqu_vinserti128.c
  6e75842fa095abfc68c803037e8bf3aa  gcc/testsuite/gcc.target/i386/vnni-auto-vectorize-1.c
  40595281c51d64d5637a42a7958158a3  gcc/testsuite/gcc.target/i386/vnni-auto-vectorize-2.c
  6517a2c66873ffa0e86469852e46a556  gcc/testsuite/gcc.target/i386/vnni_inline_error.c
+ 2842007b495cf9a83ae76f07de10dbbf  gcc/testsuite/gcc.target/i386/vnniint16-auto-vectorize-1.c
+ b0ee6954fdce6436bbe35194c9ec5609  gcc/testsuite/gcc.target/i386/vnniint16-auto-vectorize-2.c
  e125caaf089656a38668d9a76e5a9fd8  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-1.c
  0f1ad3156307cf7dd9eb8422acf396f6  gcc/testsuite/gcc.target/i386/vnniint8-auto-vectorize-2.c
  784c987777c87b20adb70aefdd43c1ea  gcc/testsuite/gcc.target/i386/volatile-1.c
  df392be222a4275b2813dd6198b59951  gcc/testsuite/gcc.target/i386/volatile-2.c
  a1724ce16bcf831fa3fa93e00649d504  gcc/testsuite/gcc.target/i386/volatile-bitfields-1.c
  4174eba20d57dcb2ac544483683682d3  gcc/testsuite/gcc.target/i386/volatile-bitfields-2.c
! 95f1d1e61996bf6dedef6155e51caf39  gcc/testsuite/gcc.target/i386/vpclmulqdq.c
  ba2b1e708b3eafbf4da944250a3d4f95  gcc/testsuite/gcc.target/i386/vperm-2-2.inc
  132194f2f74e61ac0af4fc6e2c606778  gcc/testsuite/gcc.target/i386/vperm-4-1.inc
  a29164d700162446291a30e80f9fdf44  gcc/testsuite/gcc.target/i386/vperm-4-2.inc
*************** cbcb3a51114df75d5fc346195be3bd8b  gcc/te
*** 72521,72526 ****
--- 77482,77488 ----
  f0d5e9353fe4d75539c109b81f53b70f  gcc/testsuite/gcc.target/i386/vperm-v4hi.c
  7b442824f0ed49c588322ea1457ff6c1  gcc/testsuite/gcc.target/i386/vperm-v4qi.c
  82ed376ff5668a0e249e3bd95aa55829  gcc/testsuite/gcc.target/i386/vperm-v4sf-1.c
+ 8881bf9ab32274f763932e3b0a538930  gcc/testsuite/gcc.target/i386/vperm-v4sf-2-sse4.c
  76b76c363a368ed345acc428fa7cd7ff  gcc/testsuite/gcc.target/i386/vperm-v4sf-2.c
  57d05bf2e7a02a243498dbeed968f0ff  gcc/testsuite/gcc.target/i386/vperm-v4si-1.c
  b7ed6144e23cbc6c1d47acced00af07f  gcc/testsuite/gcc.target/i386/vperm-v4si-2-sse4.c
*************** a2033299875112ec8a8d46645cf7d9b0  gcc/te
*** 72541,72547 ****
  aa2d4eb580e35dec4a50808e5ffbbd3a  gcc/testsuite/gcc.target/i386/wrfsbase-2.c
  daffc3afd6be114661cde40a175059e8  gcc/testsuite/gcc.target/i386/wrgsbase-1.c
  d58eb898aedc8c5886435ac33cca3a59  gcc/testsuite/gcc.target/i386/wrgsbase-2.c
! 7f3bbce1bf03227b597c69acdd7ffd4d  gcc/testsuite/gcc.target/i386/writeeflags-1.c
  cbb5b90c73478aeca5c2a0542f0be2af  gcc/testsuite/gcc.target/i386/wrpku-1.c
  34ad5f77b44548399cce1e9609cec263  gcc/testsuite/gcc.target/i386/x86-64-v2-msabi.c
  13acc8ea17c92e8731e0d9d2d33eceea  gcc/testsuite/gcc.target/i386/x86-64-v2-other.c
--- 77503,77509 ----
  aa2d4eb580e35dec4a50808e5ffbbd3a  gcc/testsuite/gcc.target/i386/wrfsbase-2.c
  daffc3afd6be114661cde40a175059e8  gcc/testsuite/gcc.target/i386/wrgsbase-1.c
  d58eb898aedc8c5886435ac33cca3a59  gcc/testsuite/gcc.target/i386/wrgsbase-2.c
! 2988aeb8685f403a2138160b3a1dca0a  gcc/testsuite/gcc.target/i386/writeeflags-1.c
  cbb5b90c73478aeca5c2a0542f0be2af  gcc/testsuite/gcc.target/i386/wrpku-1.c
  34ad5f77b44548399cce1e9609cec263  gcc/testsuite/gcc.target/i386/x86-64-v2-msabi.c
  13acc8ea17c92e8731e0d9d2d33eceea  gcc/testsuite/gcc.target/i386/x86-64-v2-other.c
*************** c3b4c8bfdfdc7315973c64221ff65caf  gcc/te
*** 72557,72568 ****
  745fd40cb30f0b4a91e9bf21f348141d  gcc/testsuite/gcc.target/i386/x86-needed-1.c
  96b734de6eb2ea47555de580d9a37d21  gcc/testsuite/gcc.target/i386/x86-needed-2.c
  35735ea8c699397471a586d8d1adc3a1  gcc/testsuite/gcc.target/i386/x86-needed-3.c
! 6ddee8fa7b63886daf25f05d48fd025f  gcc/testsuite/gcc.target/i386/x86gprintrin-1.c
! 4ce5e6bf0dca69a3667c3f3f7766c0f0  gcc/testsuite/gcc.target/i386/x86gprintrin-2.c
! 5a9b46af74fdae66a37c24cb1b5520fd  gcc/testsuite/gcc.target/i386/x86gprintrin-3.c
! d5fe2479baf7d830bba4bd5e4f721a22  gcc/testsuite/gcc.target/i386/x86gprintrin-4.c
  9400b7c473e2b608a3bcc607d5bdfb8e  gcc/testsuite/gcc.target/i386/x86gprintrin-4a.c
! 05fc8b936bc9aea7c2671df843999017  gcc/testsuite/gcc.target/i386/x86gprintrin-5.c
  928b2ab134391048e3dc1272d26b7f0a  gcc/testsuite/gcc.target/i386/x86gprintrin-5a.c
  e620cb612e6e5e7d4d2148b916d23273  gcc/testsuite/gcc.target/i386/x86gprintrin-5b.c
  cd5f15dc6f4513c2f0c6b7723c73a3cc  gcc/testsuite/gcc.target/i386/x86gprintrin-6.c
--- 77519,77530 ----
  745fd40cb30f0b4a91e9bf21f348141d  gcc/testsuite/gcc.target/i386/x86-needed-1.c
  96b734de6eb2ea47555de580d9a37d21  gcc/testsuite/gcc.target/i386/x86-needed-2.c
  35735ea8c699397471a586d8d1adc3a1  gcc/testsuite/gcc.target/i386/x86-needed-3.c
! ec84b4d376fe9aa022354e9b8f833064  gcc/testsuite/gcc.target/i386/x86gprintrin-1.c
! b8c20dd32b95a6d4d47a7dcf5350168c  gcc/testsuite/gcc.target/i386/x86gprintrin-2.c
! 9f6105eb99992821218a204db3b2b62e  gcc/testsuite/gcc.target/i386/x86gprintrin-3.c
! f11a4b30c9b2bd84fb3a0c33a1f320db  gcc/testsuite/gcc.target/i386/x86gprintrin-4.c
  9400b7c473e2b608a3bcc607d5bdfb8e  gcc/testsuite/gcc.target/i386/x86gprintrin-4a.c
! c1f619c85acf6302085e7b426a707374  gcc/testsuite/gcc.target/i386/x86gprintrin-5.c
  928b2ab134391048e3dc1272d26b7f0a  gcc/testsuite/gcc.target/i386/x86gprintrin-5a.c
  e620cb612e6e5e7d4d2148b916d23273  gcc/testsuite/gcc.target/i386/x86gprintrin-5b.c
  cd5f15dc6f4513c2f0c6b7723c73a3cc  gcc/testsuite/gcc.target/i386/x86gprintrin-6.c
*************** eadfc0a02336a6e52dffc2fcf8dfcf59  gcc/te
*** 72645,72650 ****
--- 77607,77614 ----
  e503a36f60906243e41efad6cd79687d  gcc/testsuite/gcc.target/i386/zero-scratch-regs-7.c
  20320b9dab040f388cb8a67cf50f9a82  gcc/testsuite/gcc.target/i386/zero-scratch-regs-8.c
  77261340baccba3c1606d1f074300bcb  gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.c
+ e80eb96074dc5330cca76e675ed3fa81  gcc/testsuite/gcc.target/i386/zero-scratch-regs-leafy-1.c
+ 9ec40a460fd8d078d383004e804051e7  gcc/testsuite/gcc.target/i386/zero-scratch-regs-leafy-2.c
  09fb6852403bb7a0b9b3339c49e09efb  gcc/testsuite/gcc.target/ia64/20010423-1.c
  d42256aef37a73ae61dad2030303738b  gcc/testsuite/gcc.target/ia64/20020313-1.c
  80710ab442f553a1629beb106d8276a3  gcc/testsuite/gcc.target/ia64/20020326-1.c
*************** e50239a34975c5fbc852ce8f339c44ea  gcc/te
*** 72671,72677 ****
  de4e305b115a22fef774b1524552bf20  gcc/testsuite/gcc.target/ia64/fpreg-2.c
  25922243d19af1f913e65dbd4e5ffb31  gcc/testsuite/gcc.target/ia64/fptr-1.c
  08fa38ef5026e6de3937383461ad92f2  gcc/testsuite/gcc.target/ia64/got-1.c
! 1979f0877ceb23fe75b8d4446e9bc109  gcc/testsuite/gcc.target/ia64/ia64.exp
  37ef53f75bdf314832e2e6e7f81c6c93  gcc/testsuite/gcc.target/ia64/mfused-madd-vect.c
  e8a414d98f9dcd1d545f9c542dda6671  gcc/testsuite/gcc.target/ia64/mfused-madd.c
  282dda375f4c7025c7ff2dee87894838  gcc/testsuite/gcc.target/ia64/mno-fused-madd-vect.c
--- 77635,77641 ----
  de4e305b115a22fef774b1524552bf20  gcc/testsuite/gcc.target/ia64/fpreg-2.c
  25922243d19af1f913e65dbd4e5ffb31  gcc/testsuite/gcc.target/ia64/fptr-1.c
  08fa38ef5026e6de3937383461ad92f2  gcc/testsuite/gcc.target/ia64/got-1.c
! 5c29f9cfc1c27cd4a65decd8f196fc91  gcc/testsuite/gcc.target/ia64/ia64.exp
  37ef53f75bdf314832e2e6e7f81c6c93  gcc/testsuite/gcc.target/ia64/mfused-madd-vect.c
  e8a414d98f9dcd1d545f9c542dda6671  gcc/testsuite/gcc.target/ia64/mfused-madd.c
  282dda375f4c7025c7ff2dee87894838  gcc/testsuite/gcc.target/ia64/mno-fused-madd-vect.c
*************** e7cfcf35d3576cc348fad814806318e1  gcc/te
*** 72703,72719 ****
--- 77667,77717 ----
  2191695e83896188ccba1a223f3a204c  gcc/testsuite/gcc.target/ia64/versionid-2.c
  5976d0923571b4543887e7a4b23c0414  gcc/testsuite/gcc.target/ia64/visibility-1.c
  ab4a753420c7cc112326b8711285358c  gcc/testsuite/gcc.target/ia64/visibility-2.c
+ a6d76184ab8ab5eabc181a864d04aac5  gcc/testsuite/gcc.target/loongarch/add-const.c
  9f6a0067cf273ede4ba33d3824d023ff  gcc/testsuite/gcc.target/loongarch/attr-model-1.c
  432baf56ded24535d315bd2e867a8be3  gcc/testsuite/gcc.target/loongarch/attr-model-2.c
+ a7210513dd89b8e683a00184ee4478a4  gcc/testsuite/gcc.target/loongarch/attr-model-3.c
+ 9d4f972a3175f736a746ae031fb25e7a  gcc/testsuite/gcc.target/loongarch/attr-model-4.c
+ 02f1973aec4f57a84c09f2b6bc6eaf79  gcc/testsuite/gcc.target/loongarch/attr-model-5.c
  f9bd26f98b04e99789925370214a2a06  gcc/testsuite/gcc.target/loongarch/attr-model-diag.c
  b0da33fc443024e77c7b605056bff4ae  gcc/testsuite/gcc.target/loongarch/attr-model-test.c
+ 10a58b0c68aafdaa8704cc0ab8a37e3c  gcc/testsuite/gcc.target/loongarch/avg-ceil-lasx.c
+ e6be30166471664309a52d26e4caaad6  gcc/testsuite/gcc.target/loongarch/avg-ceil-lsx.c
+ 38e4e62393ad811f1092ea45b0c52b77  gcc/testsuite/gcc.target/loongarch/avg-floor-lasx.c
+ a85403ab7a61ba6f56d2c3150b9f8bcb  gcc/testsuite/gcc.target/loongarch/avg-floor-lsx.c
+ ca8ab2fdd097231be9dd3f7bfdcebb7b  gcc/testsuite/gcc.target/loongarch/builtin_thread_pointer.c
+ 00fd27046cb10694212b8b3aa9811204  gcc/testsuite/gcc.target/loongarch/cas-acquire.c
+ 07df4f30580de6fbe39974aaae4cfa05  gcc/testsuite/gcc.target/loongarch/cmodel-extreme-1.c
+ 8b8540247ed71088dc38c31caa401102  gcc/testsuite/gcc.target/loongarch/cmodel-extreme-2.c
+ 6c4891b18c6bd1154b7ea8237dc05a30  gcc/testsuite/gcc.target/loongarch/cmov_ii.c
+ a927df7490b89511c3214d07f4dc7ebe  gcc/testsuite/gcc.target/loongarch/const-double-zero-stx.c
+ c794f526430241ad83fd3ca5415524f0  gcc/testsuite/gcc.target/loongarch/crc-sext.c
  2ea39544bfe26567ec668ca7a33a8a5e  gcc/testsuite/gcc.target/loongarch/direct-extern-1.c
  b4c0f3fd4670da4309e2a028316c3c4c  gcc/testsuite/gcc.target/loongarch/direct-extern-2.c
  1dfea9ab319ea08d9da234c41d4b88e7  gcc/testsuite/gcc.target/loongarch/div-1.c
  82faab3f51217ce0561916dde4f4f801  gcc/testsuite/gcc.target/loongarch/div-2.c
  7247cc240dabb3c9514ba4b0a07278c5  gcc/testsuite/gcc.target/loongarch/div-3.c
  adc95e9ab59294f8040ec17904b73569  gcc/testsuite/gcc.target/loongarch/div-4.c
+ 190971c88d51a5f97fe7426a50068cb5  gcc/testsuite/gcc.target/loongarch/div-div32.c
+ a8652f3f7c02977b31b644cea4e31481  gcc/testsuite/gcc.target/loongarch/div-no-div32.c
+ 6e5197f221248d28ac06cac538a2363d  gcc/testsuite/gcc.target/loongarch/divf.c
+ 40042c7bbd496ecf64b96ae4ff1f8fdc  gcc/testsuite/gcc.target/loongarch/eh_return-normal-return.c
+ 1ae9338e5985e5f9077cdebb9c2bb358  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-extreme-tls-desc.c
+ 21b95a5d0d6bd05f5d9790ef4a88439e  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-lto.c
+ 1c89c7fbe655876c33ea49ba08f726d6  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-single-load-store-2.c
+ 5f992d8bcd502efa354f5ce03c484ef6  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-single-load-store-3.c
+ bdaf93b46f27a28e6b3cb3969710f26d  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-single-load-store-no-anchor.c
+ bb6ab9b0cdb20096c989643240d23a65  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-single-load-store.c
+ 34306a7899f2b0f1cb8e0ca52c24dcfe  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-tls-desc.c
+ a0974c41c2d76b1294fb1d2efc48bd2f  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-tls-ld-gd.c
+ 45ece568055adcf16495ad5a85ce6044  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-tls-le-ie.c
+ 692c2e25f06c20d20bed12d9a727afdf  gcc/testsuite/gcc.target/loongarch/explicit-relocs-extreme-auto-tls-ld-gd.c
+ 6b912173420cd9c9f4e13ae0fd38c58a  gcc/testsuite/gcc.target/loongarch/explicit-relocs-extreme-tls-desc.c
+ b90d585b99c59a2e3f6f7cce1bac5d6a  gcc/testsuite/gcc.target/loongarch/explicit-relocs-medium-auto-tls-ld-gd.c
+ aaabc24a35d397c6567d048e65a87c90  gcc/testsuite/gcc.target/loongarch/explicit-relocs-medium-call36-auto-tls-ld-gd.c
+ e68925dfe7ee95de42d72028c06903e1  gcc/testsuite/gcc.target/loongarch/explicit-relocs-tls-desc.c
  ddf9ecd0daf6d14ef98de40e7fd68f34  gcc/testsuite/gcc.target/loongarch/fcopysign.c
+ e37813bf5456a9a963e9baeb8753628b  gcc/testsuite/gcc.target/loongarch/float-load.c
  256bb0a8b0fff1f225a70fa39849ccd6  gcc/testsuite/gcc.target/loongarch/flogb.c
  c9d08bb72896d9b4861ce4073ec5e57f  gcc/testsuite/gcc.target/loongarch/flt-abi-isa-1.c
  6d758f852068391aa189ac79c376aa60  gcc/testsuite/gcc.target/loongarch/flt-abi-isa-2.c
*************** ad86dc957e0557262d3e3b556956b2a0  gcc/te
*** 72732,72758 ****
  f4006ce8b6051f06f10f9d4f5591b9ee  gcc/testsuite/gcc.target/loongarch/func-call-6.c
  ff8685804997300a25a532b1f5c17e96  gcc/testsuite/gcc.target/loongarch/func-call-7.c
  decd98512ab21ae74a09e32a6abfc080  gcc/testsuite/gcc.target/loongarch/func-call-8.c
! 5ad7009545802e7808918400f05e83de  gcc/testsuite/gcc.target/loongarch/func-call-extreme-1.c
! 2b04aafdbcae51de9e3f0d37c0657f2f  gcc/testsuite/gcc.target/loongarch/func-call-extreme-2.c
! 8c085fb4a134c34fb9db525796ff0a95  gcc/testsuite/gcc.target/loongarch/func-call-medium-1.c
! 7dab082f11ca0ded9fa5be66ac950f2e  gcc/testsuite/gcc.target/loongarch/func-call-medium-2.c
! 7e3cba207400b286611487e31fed9062  gcc/testsuite/gcc.target/loongarch/func-call-medium-3.c
! 6a51fa31f036257c2d590cb31dec9999  gcc/testsuite/gcc.target/loongarch/func-call-medium-4.c
! 3bb1daf919e779264cc37600030a29ea  gcc/testsuite/gcc.target/loongarch/func-call-medium-5.c
! a40f459343a02dd25d8bf6479130ee77  gcc/testsuite/gcc.target/loongarch/func-call-medium-6.c
! bbc8be931fd6e36bcc88f959bc6702fe  gcc/testsuite/gcc.target/loongarch/func-call-medium-7.c
! fd5539b6de7d74ba74d1a9d756cbc509  gcc/testsuite/gcc.target/loongarch/func-call-medium-8.c
  fa9b5bf25d00779ab5d75b5c231c2558  gcc/testsuite/gcc.target/loongarch/imm-load.c
! bf43fbf10b9ffc55af574ffb98286b8e  gcc/testsuite/gcc.target/loongarch/imm-load1.c
  6a73e078ae4dd205f6bf24d6d465a6ae  gcc/testsuite/gcc.target/loongarch/larch-builtin.c
! 5149b74a773463551ceb59b2f038916e  gcc/testsuite/gcc.target/loongarch/loongarch.exp
  ab8d85a261f0846c278e2d6db2c6ab77  gcc/testsuite/gcc.target/loongarch/mulw_d_w.c
  d6f2200e900b3d85d0a491db3bfa13bc  gcc/testsuite/gcc.target/loongarch/pr106459.c
  087dab2b9c082de756b93456f039cdb7  gcc/testsuite/gcc.target/loongarch/pr107713-1.c
  dfafc65f0a89ca5ee45ebec52ceac527  gcc/testsuite/gcc.target/loongarch/pr107713-2.c
  ee611d581d29c00b7178ec95c3dc6e82  gcc/testsuite/gcc.target/loongarch/pr107731.c
  3adba2a8ae6f671eb22ec8228777c1ac  gcc/testsuite/gcc.target/loongarch/prolog-opt.c
  1075563283e6d2ab3492f10a46a844ad  gcc/testsuite/gcc.target/loongarch/relocs-symbol-noaddend.c
  1794666eb38b2c760f7e0797a8843251  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-1.c
  bada1783d3726bb8da71dcc10c61bb4e  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-2.c
  acdab92956a33fb473e28883d3784f6b  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-3.c
--- 77730,77811 ----
  f4006ce8b6051f06f10f9d4f5591b9ee  gcc/testsuite/gcc.target/loongarch/func-call-6.c
  ff8685804997300a25a532b1f5c17e96  gcc/testsuite/gcc.target/loongarch/func-call-7.c
  decd98512ab21ae74a09e32a6abfc080  gcc/testsuite/gcc.target/loongarch/func-call-8.c
! 28eaa615b63650546298adaaa97138fb  gcc/testsuite/gcc.target/loongarch/func-call-extreme-1.c
! abc2b0838f859cb5034e6b9c9d18c92e  gcc/testsuite/gcc.target/loongarch/func-call-extreme-2.c
! eb2a26811e189c046efddce2a403655a  gcc/testsuite/gcc.target/loongarch/func-call-extreme-3.c
! 53f7e2bf828ce03ea819bf054c3f5246  gcc/testsuite/gcc.target/loongarch/func-call-extreme-4.c
! ff0e2aebfb4d1d5589a93141d243ada3  gcc/testsuite/gcc.target/loongarch/func-call-extreme-5.c
! 4dfba11663b761b721dae15e3da8b055  gcc/testsuite/gcc.target/loongarch/func-call-extreme-6.c
! 2a224d8ac2c945f49aabfa8e72480cdc  gcc/testsuite/gcc.target/loongarch/func-call-medium-1.c
! f6b7479169616c267e977f0e4b51f5e8  gcc/testsuite/gcc.target/loongarch/func-call-medium-2.c
! 43e04457b33459e3eb8aaf53726aaad9  gcc/testsuite/gcc.target/loongarch/func-call-medium-3.c
! eb1c2859a54e94bb4ffc91ace282a688  gcc/testsuite/gcc.target/loongarch/func-call-medium-4.c
! 688abdafec41a13b5ed3e398a95c59a6  gcc/testsuite/gcc.target/loongarch/func-call-medium-5.c
! 88d4d9f38daa1da73fd5c65a4d728df4  gcc/testsuite/gcc.target/loongarch/func-call-medium-6.c
! 0821cc90410456526313b711771dd54e  gcc/testsuite/gcc.target/loongarch/func-call-medium-7.c
! 6649897103ef58074cf4038c9f752b73  gcc/testsuite/gcc.target/loongarch/func-call-medium-8.c
! 6ab9f24cca6a9ec8103e6ba80f494143  gcc/testsuite/gcc.target/loongarch/func-call-medium-call36-1.c
! b9e59385233aedda5e9e3d95bfa2f29c  gcc/testsuite/gcc.target/loongarch/func-call-medium-call36.c
  fa9b5bf25d00779ab5d75b5c231c2558  gcc/testsuite/gcc.target/loongarch/imm-load.c
! d7a3a4b5e884b4ba96b4ba493eb19316  gcc/testsuite/gcc.target/loongarch/imm-load1.c
! c74ac6255a37860200cb087c773ff537  gcc/testsuite/gcc.target/loongarch/invariant-recip.c
  6a73e078ae4dd205f6bf24d6d465a6ae  gcc/testsuite/gcc.target/loongarch/larch-builtin.c
! 98ef5580c4aefc9fc806240653123084  gcc/testsuite/gcc.target/loongarch/larch-frecipe-builtin.c
! 707da34d54e7998fc65722528a071870  gcc/testsuite/gcc.target/loongarch/larch-frecipe-intrinsic.c
! 422b961441dba2c6db58a57ace03db0d  gcc/testsuite/gcc.target/loongarch/lasx-extract-even_odd-opt.c
! 206e23634e4888b9b8f6b20aa1e58b08  gcc/testsuite/gcc.target/loongarch/loongarch.exp
! 6fd3a91ad4fcbff919f3f7121bd94819  gcc/testsuite/gcc.target/loongarch/math-float-128.c
! 9fb3b8610b37b8332c61ea243a7f7eef  gcc/testsuite/gcc.target/loongarch/memcpy-vec-1.c
! f8e85c0fabedb15da4e203ea4c1d6792  gcc/testsuite/gcc.target/loongarch/memcpy-vec-2.c
! 9bdb8bae55f19f1a7d359c4bf87a4ba8  gcc/testsuite/gcc.target/loongarch/memcpy-vec-3.c
! 4931eef8fe508d14b75d3631fe8bbafc  gcc/testsuite/gcc.target/loongarch/movcf2gr-via-fr.c
! bb6ea01b244f2c3e617730a44580a7bc  gcc/testsuite/gcc.target/loongarch/movcf2gr.c
! d23b33973d13d263ab78b5b4e0b94ef3  gcc/testsuite/gcc.target/loongarch/mul-const-reduction.c
  ab8d85a261f0846c278e2d6db2c6ab77  gcc/testsuite/gcc.target/loongarch/mulw_d_w.c
+ a82bd0c91438f0a8e295e7cb52d0c28d  gcc/testsuite/gcc.target/loongarch/mulw_d_wu.c
+ fd0c004c00698c398646c63b4784aec2  gcc/testsuite/gcc.target/loongarch/popcnt.c
+ cae8b3c3dd5f2d63f52f320672dc070b  gcc/testsuite/gcc.target/loongarch/popcount.c
  d6f2200e900b3d85d0a491db3bfa13bc  gcc/testsuite/gcc.target/loongarch/pr106459.c
  087dab2b9c082de756b93456f039cdb7  gcc/testsuite/gcc.target/loongarch/pr107713-1.c
  dfafc65f0a89ca5ee45ebec52ceac527  gcc/testsuite/gcc.target/loongarch/pr107713-2.c
  ee611d581d29c00b7178ec95c3dc6e82  gcc/testsuite/gcc.target/loongarch/pr107731.c
+ 251e6e0daf2f383d861cd4cc3d6dbab7  gcc/testsuite/gcc.target/loongarch/pr109465-1.c
+ 0be0571edd267d6daa792723973599b0  gcc/testsuite/gcc.target/loongarch/pr109465-2.c
+ 6e2aba711dd54f39182efa0211e7c661  gcc/testsuite/gcc.target/loongarch/pr109465-3.c
+ 28cb26eb126183368e892a65835d3354  gcc/testsuite/gcc.target/loongarch/pr111334.c
+ ec09b6aa0ae7b7a9eac9fb924e19c04c  gcc/testsuite/gcc.target/loongarch/pr112476-1.c
+ a9d4722a275cd3486436322291f39c73  gcc/testsuite/gcc.target/loongarch/pr112476-2.c
+ 015955305b62cb203ef217c6e29fe08a  gcc/testsuite/gcc.target/loongarch/pr112476-3.c
+ 6c1f996e20dd99168f1dd9b6c6f40b00  gcc/testsuite/gcc.target/loongarch/pr112476-4.c
+ 9b9319e8de39dcffbe873584b20d35a5  gcc/testsuite/gcc.target/loongarch/pr113033.c
+ b4671c279162dd2c1fd844929bdbbc6b  gcc/testsuite/gcc.target/loongarch/pr113148.c
+ 25f1f19f59d10bccef4e82021564ba66  gcc/testsuite/gcc.target/loongarch/pr114861.c
  3adba2a8ae6f671eb22ec8228777c1ac  gcc/testsuite/gcc.target/loongarch/prolog-opt.c
+ 1bfa30f99dc5f04f569fbff68640ab19  gcc/testsuite/gcc.target/loongarch/recip-divf.c
+ dfa82d46bae04856dd91309f03684574  gcc/testsuite/gcc.target/loongarch/recip-sqrtf.c
+ 1eb5918b9e848616f17c8675b198b827  gcc/testsuite/gcc.target/loongarch/regname-fp-s9.c
  1075563283e6d2ab3492f10a46a844ad  gcc/testsuite/gcc.target/loongarch/relocs-symbol-noaddend.c
+ b6b376728d20351c33b093f21d54677e  gcc/testsuite/gcc.target/loongarch/rotl-with-rotr.c
+ 2ddebd413eaa67833fbe9045727d296a  gcc/testsuite/gcc.target/loongarch/rotl-with-vrotr-b.c
+ b4792704ae2560835ce2844ab052bd96  gcc/testsuite/gcc.target/loongarch/rotl-with-vrotr-d.c
+ 0f0929ffb430681fa30b2b435c3a1aea  gcc/testsuite/gcc.target/loongarch/rotl-with-vrotr-h.c
+ 741a56f765e9ca1db0263f22cf381eb7  gcc/testsuite/gcc.target/loongarch/rotl-with-vrotr-w.c
+ 7dc4a61c0b96fca5ec769fe35befac24  gcc/testsuite/gcc.target/loongarch/rotl-with-xvrotr-b.c
+ 280f9daaa9214e2c695cd02105bca31e  gcc/testsuite/gcc.target/loongarch/rotl-with-xvrotr-d.c
+ 83a5f2fef9371e8f93530c6cba35f019  gcc/testsuite/gcc.target/loongarch/rotl-with-xvrotr-h.c
+ caf6ff4ee29f7a81608a744d8b8bf49e  gcc/testsuite/gcc.target/loongarch/rotl-with-xvrotr-w.c
+ 3443535afd7371e731be6ab37b74d55a  gcc/testsuite/gcc.target/loongarch/rotrw.c
+ 6d04fd6ea7131893bf5730d8748cd0df  gcc/testsuite/gcc.target/loongarch/sad-lasx.c
+ da965754e87b0f0ce1cc22b3fbb7298a  gcc/testsuite/gcc.target/loongarch/sad-lsx.c
+ 46f4e137231cac38e7e10152e3340365  gcc/testsuite/gcc.target/loongarch/short-circuit.c
+ f46bb4d68c80f94cd959f7aefc8389e4  gcc/testsuite/gcc.target/loongarch/shrink-wrap.c
+ 294f8a20e4eec5c0c40de71226677399  gcc/testsuite/gcc.target/loongarch/sign-extend-1.c
+ ff53d68fc0f97e1b389fbdfc6b733d9e  gcc/testsuite/gcc.target/loongarch/sign-extend-2.c
+ 503978ebbda9df9f9d2896d9898ab7b0  gcc/testsuite/gcc.target/loongarch/sign-extend-bitwise.c
+ 969f8c63d5313b0ef2802d00df27886a  gcc/testsuite/gcc.target/loongarch/slt-sign-extend.c
+ bf64f97d74ef11f20bfde63932d56667  gcc/testsuite/gcc.target/loongarch/smuldi3_highpart.c
+ e1615ec0889043a33798fc33df9c0c5e  gcc/testsuite/gcc.target/loongarch/smulsi3_highpart.c
+ 803ffb89ba4bbdbdb90c999bf781d4cc  gcc/testsuite/gcc.target/loongarch/sqrtf.c
  1794666eb38b2c760f7e0797a8843251  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-1.c
  bada1783d3726bb8da71dcc10c61bb4e  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-2.c
  acdab92956a33fb473e28883d3784f6b  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-3.c
*************** acdab92956a33fb473e28883d3784f6b  gcc/te
*** 72760,72767 ****
  8c3d80861a826008564aca9af2f9443a  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-5.c
  9360480ea47fd9090e9779b774260f1b  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-6.c
  45d0507f692b31ce9bcb7889745dd889  gcc/testsuite/gcc.target/loongarch/stack-check-alloca.h
! 5502a3356820f8e05e5b07aecb26da88  gcc/testsuite/gcc.target/loongarch/stack-check-cfa-1.c
! 83735f4f8a3b9258cb4049ebe8dc37ad  gcc/testsuite/gcc.target/loongarch/stack-check-cfa-2.c
  adc9389cbfe48c25858aaf47dbd856e7  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-1.c
  5f68933f0e9b335edad6507943792a49  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-2.c
  f654ef3204f91c3ea6a9a4613e068084  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-3.c
--- 77813,77820 ----
  8c3d80861a826008564aca9af2f9443a  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-5.c
  9360480ea47fd9090e9779b774260f1b  gcc/testsuite/gcc.target/loongarch/stack-check-alloca-6.c
  45d0507f692b31ce9bcb7889745dd889  gcc/testsuite/gcc.target/loongarch/stack-check-alloca.h
! d35a2a70824e3df7a2e90beabe7e3ee6  gcc/testsuite/gcc.target/loongarch/stack-check-cfa-1.c
! 8f29fa8bfe4970bbdb969483bbce91bb  gcc/testsuite/gcc.target/loongarch/stack-check-cfa-2.c
  adc9389cbfe48c25858aaf47dbd856e7  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-1.c
  5f68933f0e9b335edad6507943792a49  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-2.c
  f654ef3204f91c3ea6a9a4613e068084  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-3.c
*************** b0d8451f1600fb7ed044bb4afac6c54e  gcc/te
*** 72770,72776 ****
  9ddc825310e2f1207621093040d11658  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-6.c
  835c129cffc725b50f77270d00d701aa  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-7.c
  6cc96f2ff91ce012328dc2190416bdf3  gcc/testsuite/gcc.target/loongarch/stack-check-prologue.h
! f5882791c480e8388c4406c0e38b740a  gcc/testsuite/gcc.target/loongarch/tls-gd-noplt.c
  daa985dfac90c17791ed0549fd2b0181  gcc/testsuite/gcc.target/loongarch/zero-size-field-pass.c
  c5a3a773bb277e1c1071f9d892d1ed48  gcc/testsuite/gcc.target/loongarch/zero-size-field-ret.c
  ce7c3a66fa22a36825ef82d61a779479  gcc/testsuite/gcc.target/m68k/20090709-1.c
--- 77823,78285 ----
  9ddc825310e2f1207621093040d11658  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-6.c
  835c129cffc725b50f77270d00d701aa  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-7.c
  6cc96f2ff91ce012328dc2190416bdf3  gcc/testsuite/gcc.target/loongarch/stack-check-prologue.h
! 18e238abfacb1352fe7e95b0b7b889f2  gcc/testsuite/gcc.target/loongarch/strict-align.c
! 5c59a0f71afe5e1247603961548ac0fc  gcc/testsuite/gcc.target/loongarch/switch-qi.c
! 7832a3e8dee4406e9a90696a4939bef8  gcc/testsuite/gcc.target/loongarch/tls-extreme-macro.c
! befd90e214441fef72ffe1fb266888d6  gcc/testsuite/gcc.target/loongarch/tls-gd-noplt.c
! d3511a1f030e8253dbf6b20c73d33105  gcc/testsuite/gcc.target/loongarch/tls-ie-extreme.c
! 59f8afcb4e93c86d7da2ab3c90529db3  gcc/testsuite/gcc.target/loongarch/tls-ie-norelax.c
! 2a0b997731ed1ae360413e97d22d1e5c  gcc/testsuite/gcc.target/loongarch/tls-ie-relax.c
! 273aefb7dcb812b056ec4f65efdd49ff  gcc/testsuite/gcc.target/loongarch/tls-le-relax.c
! bb57d24452eb2fea309f990edfa5de1c  gcc/testsuite/gcc.target/loongarch/umulsi3_highpart.c
! 20592e6b1e8a0f3b8742b7beb0f51ae2  gcc/testsuite/gcc.target/loongarch/va_arg.c
! 13cec58c7391a5cef41368197f850947  gcc/testsuite/gcc.target/loongarch/vect-extract.c
! b6bfa37f9af27452a2a4b02fe436d406  gcc/testsuite/gcc.target/loongarch/vect-frint-no-inexact.c
! da64d29140771aaa088d1e71efc3c471  gcc/testsuite/gcc.target/loongarch/vect-frint-scalar-no-inexact.c
! 88ac77c28c16cf30dbe5e3be50a1691a  gcc/testsuite/gcc.target/loongarch/vect-frint-scalar.c
! 5b7d4139ebfdb98e583f6b953ed4a02c  gcc/testsuite/gcc.target/loongarch/vect-frint.c
! 27009f16c075543914978dfab3406875  gcc/testsuite/gcc.target/loongarch/vect-ftint-no-inexact.c
! e54bae204bdb1c4dc0d6593893901a8f  gcc/testsuite/gcc.target/loongarch/vect-ftint.c
! e174ae75eabb1baa10e7ef9e75e93275  gcc/testsuite/gcc.target/loongarch/vect-ld-st-imm12.c
! 537c2448576790bc3b9448c2a930f5f0  gcc/testsuite/gcc.target/loongarch/vect-muh.c
! 1f7b7228148fe23bb98c9ae0d151646c  gcc/testsuite/gcc.target/loongarch/vect-rotr.c
! 0a2e2eac72cfcca97984627c1e764927  gcc/testsuite/gcc.target/loongarch/vect-shuf-fp.c
! 453da6047ce09c69691270feaa485c69  gcc/testsuite/gcc.target/loongarch/vect-widen-add.c
! c4a5bf3904159f6c4f6e17ee0da90889  gcc/testsuite/gcc.target/loongarch/vect-widen-mul.c
! 3ed720b4bc387e4269bf3226dd3fdfe5  gcc/testsuite/gcc.target/loongarch/vect-widen-sub.c
! bd4661a3c6101adef1a721b574d41199  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
! fe6faa6ba0306efed8c468b31f250333  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-divf.c
! 63c0a41070b08339598b12401f6f0275  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-frecipe-builtin.c
! 269e58b3141de7803fd2da2ee4583a7c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip-divf.c
! 26416d3a1315b205e74061b5b07e84ec  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip-sqrtf.c
! ec4196a5693a2d78e09e090c4cfa571d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-recip.c
! a063d665153ff8caea1f55d2d763456e  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-rsqrt.c
! 775b8d8b29c403d9447185837f4a85a9  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-sqrtf.c
! fc2eff72ff94e1f24b1ded5d567647ec  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vcond-1.c
! c34cbb6754e054b443b5e2e9d65d81ac  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vcond-2.c
! 46115a5ef060ecd6c057d311e492cbba  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-construct-opt.c
! 3c28a8c37a3b35a9bd2a46f1805cd159  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-init-1.c
! e74ff91fd52e580524be0561ebb0a0cf  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-vec-init-2.c
! f5d040911d7e323a3e9559cb230d0813  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xorsign-run.c
! ed617e6c7440142c020620f5bab5b207  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xorsign.c
! 67e2a67f43111af6bb79660616ac6840  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-1.c
! 9bf21379d5f6f4f16750303a00c7d45a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-2.c
! db2d322dec660cf89d7ffa7afd3cb4cc  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadd.c
! 9c4d7c02fc589f7577d26d503367b4c1  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadda.c
! b643eb305655996a3a5a0b71bb2bde12  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddi.c
! d582beac6ecf550d6113ef191b8385d4  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-1.c
! 958bb18038d49db2c0998f9ff2c0cad0  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-2.c
! 1312b257ebf2bcf08b73d2308c35c9c1  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-3.c
! 3fce6bef37384348ce71437adc769301  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-1.c
! 88f480158c0cbd48905c5489067f9faf  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-2.c
! 07056ac013c745d1b3f55b3c8fd4672e  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-3.c
! 8febc2f050668cfa243effac3e18d946  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvand.c
! bc0848f3ccd993e41b91f0e4e87666bb  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandi.c
! 0c26e9775a448da9cc03cdca63793197  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandn.c
! 4e78a92420abf5689cffe6cf57719594  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-1.c
! 1b14060d909006b2cd0244a0f5573958  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-2.c
! 4157febac3b4d1bc7b07e01ba956967d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavgr-1.c
! e5e217333e23302bdd707dc0ba79d54a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavgr-2.c
! 9d21bcafe881514c288a70b48bdd2702  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclr.c
! efa0eed48fb70c07b1111a6a585e82a6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclri.c
! c06071e06997ee6fae9f8b95625d67b6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrev.c
! ef62a38d3c721462cdae3a5dd6d20baf  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrevi.c
! 9019d1e77d85ecd1328744427f431463  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitsel.c
! 3ae236baf81f147caca0b1da229ec3d6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseli.c
! c79e5f146f5114986de6f7bda447e369  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitset.c
! ad672e671af2aab8625d44b7930c36c7  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseti.c
! c5a72505d032d5aaba69b40866e07951  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsll_v.c
! 5a5e09ec0c51ba37c7e29b3c971f17cd  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsrl_v.c
! c44378c725a11fcf1fb8c73e9d22ad60  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclo.c
! e9f6874ada76d73c6fde0d2a02d46a46  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclz.c
! 651a4225658738c2bdf58346fcd3ddbc  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-1.c
! b16617074d6491df922a226847dde068  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-2.c
! db4402250fa14c8b46b63dc388c9a54f  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-1.c
! 102d5c1e546908bd1c032189bba96850  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-2.c
! 646d73f7083bc838fb1dbd0244fcea8e  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-1.c
! d1bc2491085fb9cdfe52a9e846a9bc97  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-2.c
! 735194bf1b87a4f589a680d45014fe66  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c
! d6d29a3024b8ee68c86c922d0787a3d7  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c
! 65492780a8b8a35a12591c013635563f  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextrins.c
! 9000eba1484334a663ec09c9a18fac2b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c
! 2b50e151a3e09a9523dd16ddccd20c4c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c
! 7c53b7dbb5aa72444311806afa22ba01  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c
! c761b5ef71c14b5c015f4a7af9721218  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c
! 9a1ed69e628ed81db9d1088cc32bbd7d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_caf_s.c
! 907a87f3988921eb62c920a47b7b522f  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_ceq_s.c
! d459d5491cd2fa82954cacb77ff08caa  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cle_s.c
! c4209d4db39b1245bd1526422d7b471a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_clt_s.c
! b2b98e6c3a59670827aa59f4947af4dd  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cne_s.c
! 810267880a818127fd1828ae6c21e340  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cor_s.c
! a74010354f1526a03a1774d0a4047419  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cun_s.c
! de426dacb1b74d5e239b5892cd2cb3e8  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_saf_s.c
! 71c8e1fd2696f359c1a8de24e58ccb48  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_seq_s.c
! 472bba8cbba06a4b90335110eec22934  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sle_s.c
! adb004e666bdfa3d0623377403017a48  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_slt_s.c
! c1255f3f263b71fc6c4bbbb7da2324de  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sne_s.c
! 32b2365bbfdd0085f43f2828824a3d98  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sor_s.c
! 4352309961a0d11b95d04ecd1aa9b0b4  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sun_s.c
! 86172604be82dcd79499a5f3ef4e7717  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvt.c
! 3bb308ae74e66106e9e251507fcf9f54  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvth.c
! 1556c484e62fcb125d9123866f34f17f  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-1.c
! 936d61510945d467872b6e7d57ff072b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-2.c
! 3a646637ca04c3cbc5c90b7619a703c8  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffinth.c
! ebdb05ab1d6a36e30dbc3205fd24a284  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c
! d174910f306bdb38cf3c4735221fe30a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c
! 790b1d6c25848520546ba6a651de4501  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c
! 2f132bc922d75278d3cc79250f1af643  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c
! c48c1b9f992bd2a65d2b102783327a9b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c
! 3b04aefb82178259a72b71c9d77242d5  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c
! 8d9c22e8b6ffaff257e0d51dc1ea6db6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c
! 2ebd01319ea1b34b1af442065afe2254  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c
! 618817e5f972b109d8024567b6b38c6a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_d.c
! 43d40bf1f581f34e2b89a18c84f325a9  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_s.c
! 59b82ef128e596610790abbe7de05ef9  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_d.c
! e80520ed2ce7f6d60147363893d03664  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_s.c
! 770ba067ced63b2de0a2b961090986eb  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstp.c
! 196de05cefa7a368b8639a2ad4ec4025  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstpi.c
! dce7e3250e8702bb7d4ced87fcb8f601  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c
! 3a4b9f94751c7b941d05bf517865f474  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c
! 1811f85951e0336826fbf42355159cc6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-1.c
! c4a332a6f24d738d4220e49a5141fc51  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-2.c
! 79639de2ce2cde1af40237102f1fea96  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-3.c
! 7bae65798fc5a51eb67fa59d141b7c7d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftintl.c
! cac7b12f7f070b2d2cc135f1daacb80a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-1.c
! 68817c3e3bbad8490210e446d4856a06  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-2.c
! eabada13f32856fa41e6cac69f561cf4  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhsubw-1.c
! 9466b071b20d485ba7ea213754cd1911  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhsubw-2.c
! 3de26d92df5cb4dd19d612791b6b4f6a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvh.c
! 0d73660c5fa298bc3aadaa03ee237c66  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvl.c
! 766453875b0d43b6c8bb99abbe5b9557  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsgr2vr.c
! 26672a5dbc3041697a045017e0cde737  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsve0.c
! 77f3d7a82751f9eb11467be3889070b2  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvld.c
! 748ffb4edd4561ec7feb3fec60b26a91  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldi.c
! 0a8c73176bb28027c671b5d568ef09bb  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldrepl.c
! bbd1785f04afb1fd3106fdd0526be638  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmadd.c
! cb6d6eccadcfe2ef85697dc38bbbcbdc  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-1.c
! 701810a704c320e33057c35502e0f029  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-2.c
! 1303cdae010f097e8498302c7139bca0  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-3.c
! 9ce64666ec51336b7d5c6397681e3930  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-1.c
! f0be3048912b17ffbe08ec712965fdae  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-2.c
! 0e24015ae45db272a5bc43bdb2c2f3de  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-3.c
! dcbf11748c18ebb5402645141a4b37ad  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-1.c
! c07a2eb873faa0a4cd5c266e3b053345  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-2.c
! ab256d35d86755e40a04de2aa279794d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-1.c
! 24bcaf0bcd4cea171fe33e426a8b393c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-2.c
! 1a0c8805c3608a72a401810f07f53ca7  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-1.c
! 6798c577313b60d5a6dd77c11e2ce2ae  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-2.c
! 07c332295c4954d61ca6c1edc90585d1  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-1.c
! 1440af0e633c97a6832d61fd2f897eb4  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-2.c
! f2410bea05f7a1303e4d4244ff078541  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-1.c
! 576ced7c6007d20d13ad2fd4ece6874a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-2.c
! 8905c0ddb5ca37da87b29b6163e8316b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskgez.c
! 58e9457e2e2b9ddfb5042a0251303935  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskltz.c
! cfa990f4ab138ec83044ad4a93c8b9dc  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsknz.c
! 848a973e5c60e8a5c841651756e253a0  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsub.c
! faa4bb3cf9b66556f0d13aef5f0eaca4  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-1.c
! 98a44262e14992442ecc1043524e837c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-2.c
! 1d98ebbd3bf6b8dc1abc3cb4d071ce4f  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmul.c
! 1cdb74eddfda68959f0043ae62d75129  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-1.c
! 5374daf3a327cb3191c0eefe0458dc61  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-2.c
! 7a4f8be8feddf384aa8e6e162d1b675b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-3.c
! fb94ecb923611999338614b56e32b90b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-1.c
! 376908a3591302e82f262dfb68a872c2  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-2.c
! 03934946b07c8a8f5147d71a382b5e9a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-3.c
! ce251c8ffa5f8d5bc737f290ac9bb6c0  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvneg.c
! 5c0fbde0e54d5aae90557c1f3eeed86a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnor.c
! ac681d2442d2afbbae9a5483b59f933f  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnori.c
! 7a0c8b18ab2874624e8b395a1e857151  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvor.c
! e6d073e359cda464e138b1b808209a07  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvori.c
! 667fbb553a33095734d7d4bfcaabe3d1  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvorn.c
! d8e031a7672d551daeb9c0343f196b90  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c
! 1d2659e78407c128a3305bd53e7d8751  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c
! c6091d6b4d13af307c56751cc58f5e22  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpcnt.c
! 30a0eb65ea8739a2ebc0d73f416eb624  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpermi_q.c
! b5d94eacfaeb18df1a5ba78a6988a18d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c
! 5bedc8766d3982d413dc2aae27eb52cf  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c
! 65f2dcebe01e5ebd41e19463b4925589  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c
! bfe3c3630acaeea666f85d4bef2e968e  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c
! 6bd1903db829f14fcabbb4c5d9182475  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvprem.c
! ca4c348ff35b7998f76c596da781ee6e  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c
! ef5137f45858b22ccb95912b375e1fb6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c
! b82ebb5bf6760af61f546963e8b16f7d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c
! 6bd1903db829f14fcabbb4c5d9182475  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c
! a0d53066b5f39d91ab5a4f7106ca7ea1  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotr.c
! cbea570dade1a78136e0d5238fc98720  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotri.c
! 4476854c9e9a84a96c2c7ab5e8b4f234  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-1.c
! 927f38e437b21f76b40ae721fbbcddbd  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-2.c
! 8164d0233fc63ac60784ef783e4dfa21  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-1.c
! e46ee122d6cde387fa114d51c5a05475  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-2.c
! 9b546f5315876e128048424cc7653484  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseq.c
! 879a89bc24d30d8060d801b992cef972  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseqi.c
! b3b4de6b12e56d78fc085901277f47ba  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c
! eff4485c43fe556dd1c1e81c679de95d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c
! 7996630e3896e5eda1b88153a96544b4  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsigncov.c
! 82821b68c905e3a2377842b096e459a7  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsle-1.c
! a5eedc5557cdb89e7cdb50c76e4389a6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsle-2.c
! f6a63ad5aaa85e229ff9c9030c824073  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-1.c
! 738a2abf80a787fe1ac55153249a7e13  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-2.c
! 9496836fa42593629bd53b936916ea4c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsll.c
! bc8dc346d37ff04d9d872a09276ddc76  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslli.c
! c24117efd04176d7c227ff8f5f5a99f6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-1.c
! b6c3ca5091ffb272c7be8837a344700d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-2.c
! 0a74d9af330d45eb29889c0a5f39fcd1  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-1.c
! 48f6b825705a61a88fca5a7755c43c41  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-2.c
! d613f87e411d78603673028c3b266af1  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-1.c
! a882829bfb1c468175f6ca7d7b3b9124  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-2.c
! 324e54aac5b526ca67d7e93180418b07  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c
! 7f7a85ee25b30530371000574b80d2e0  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrai.c
! 0714717384a174794236fbd35c8cb1b7  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c
! 33e98cd4a3d860fd59c6971613547dbe  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c
! 92200933f6d769aaf67cb3280bcefb4d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c
! 9bb028c15f4d38a4e2d2afda83789bdc  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrari.c
! 6a493ccb51b0e0cf0b7583cf5fa01756  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c
! ca1e0743b591b5d3779f86795cb5d067  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c
! 99ca9f586d5048bdd3c106c695695c2b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrl.c
! 394b97a4e9b6b6edf439e112fc72c44b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrli.c
! 22fa155efff0f81ebc06469630b4e75e  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrln.c
! 7c759614182b6b08827a196a12cd423f  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlni.c
! 8842447f19e81e687379826cfe7d9553  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlr.c
! 75819a13632eea79ea23ba422af68c9b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlri.c
! 9f5170cde0145e4896243d7299298dd5  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrn.c
! 6fbe5820d8c79a12b305a4a201f4dce8  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrni.c
! 1fc15147b555f4be99f077c91b8059ed  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssran.c
! 2220e86d24b1b3493a96434170495a89  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrani.c
! 843ef84f0b9751bfc955b620ac3f18d9  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarn.c
! c824784136cd7d1e55b7cfbbfb982a13  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarni.c
! d6511b9b23fbd2b569dd628f71b47852  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrln.c
! 0e0f4312511f12dd232d6f3437ddab69  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlni.c
! f925d563acf7431c37f6f5177352c9c1  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrn.c
! 57bc6f872b26d78b3f885ffffb34d126  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrni.c
! 39ca3a3d1ebe57d0363ffc03e9722b46  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-1.c
! 0a773bbe783a7a5dfb7049902e293f3b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-2.c
! dd17b7e06bf7306b0acf7c67870da38b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvst.c
! 3676c9ef0090b9307c21dd269bdb128a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvstelm.c
! 712741e03f03799b3bf87f7e4fbc6a3b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsub.c
! 6b3553cfc57b2d94a1dfbbbbf687d41c  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubi.c
! 22c8240b3be273c7cadc3b1d96cd50b0  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-1.c
! eb7720d1ee0f7dde86471e1b8ad3b82f  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-2.c
! 889e8727281336edfc95c5c2fca0636b  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-1.c
! 41959494be952fe2706930c383d4bb72  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-2.c
! 601d1dad0996e42f64abfcea74b57e97  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxor.c
! 2b866f80af5cafa566ed2bbd75936c79  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxori.c
! 05195bf7810e2bd4fbb645f0dd4ea154  gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp
! 5d55305c4d66b32dd004f424d4a0a0fb  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-abs.c
! eb01d16b6ef25f57c504c9436202f387  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
! a8ab1fe3de13920929161ff744d0be79  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-divf.c
! 3ca33073dc5707d30e1c86e7cff80a83  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-frecipe-builtin.c
! 7fd4b4d80ef3b95b73b71b66d9e6cd92  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-1.c
! 21062258537eee99097cccdc4b7c1956  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-divf.c
! 2549c56a693f1d0960c7cc8ba86e0067  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-sqrtf.c
! fb3c160369677c07483fb4dc63539faa  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip.c
! 63ac14d5cd13627869c47454ff7f8a8c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-rsqrt.c
! 9e6e3680aef327f22953b39967f23a23  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-sqrtf.c
! 097a3137904b0f0fd945d3ed8a6ac1c9  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-1.c
! 06d50f2ade72fa0a119d695fb1ca30cb  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-2.c
! c93b4dba62e43a0104394770a8079023  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadd.c
! 2305e7d5d597175e76ae1ffbef33269d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadda.c
! c31ee916d65da4e3dd48959f0a2353c8  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddi.c
! a25eb189be0819d0d61c4358fa13ac41  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-1.c
! 258e813824b8d910e5019275602c078b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-2.c
! 71392950aa291da337bb6f9c7ab434e1  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-3.c
! 3d0da025aaae16a558d6908305b5f03f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-1.c
! 06b328570291d00dd5a31c15552d3c3d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-2.c
! 3eacb3fb7cdac0ce3d01c145af822349  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-3.c
! 25e70de00fe0e9efcdb13f651ff33c90  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vand.c
! 8381919c147fb878dc81485d48268886  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandi.c
! 2b8b54751380117db41f471df3cdd10b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandn.c
! 2f6f6fb3ca940a025aad0de3ed4b3061  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-1.c
! 42ebbae789543320999ecac9da28bac8  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-2.c
! b5c229b53428178cc901193623aec195  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-1.c
! 288369c55bfe2b8d863318a5b4b19a8b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-2.c
! d3a57b5f41594e5fa49165508efb79db  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclr.c
! 07d8b8e42585f173035fc68079780b7a  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclri.c
! 59e4ab855ace7ea022ad035e4fa510fa  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrev.c
! fe5f5acc0bb6b5cc14a92233b91b13e7  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrevi.c
! 542d29653be463ecddb039b838200d86  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitsel.c
! c4ecfd83acd9e2f8919c6b1e23c7c8e5  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseli.c
! 97fbb58739980a03a87081a772c04bad  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitset.c
! d20630ed6a8a37a1d466ab6858b4bf13  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseti.c
! 9626cec735d2462349a822de6a81a543  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsll.c
! e84275b7667c2d79a9ec36554a0a0ff8  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsrl.c
! 8ec6103dafb3c5bde040b4d7f5fbb8a2  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclo.c
! 7bb7058e2703dfef1bf217fb498659a0  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclz.c
! 6d15667785b77fa780fdb59fa173b7dd  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vcond-1.c
! cd8d19881388a5f6b39dfcba7f117cde  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vcond-2.c
! b2b648fbb2867c84e9f49bfc3fce51ee  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c
! 31a97a86424b3714d7f6dccb4be9d209  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c
! 93970ab0ec124181f94e7cf40603c7b3  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vec-construct-opt.c
! d36022645c83931e253e55310ed5e242  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-1.c
! 97d7f446a9a9bd22f76abc0db7d87330  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-2.c
! 727349918eaca621d2c907e505552319  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-1.c
! 184b48e83c75faace73fe6aa587ea892  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-2.c
! 543d55434459e542b2e21d6e99c2b48d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextrins.c
! c33508c219e127028acb059920084241  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_d.c
! 8b7a7c0e9e2c18fcdb70216002096625  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_s.c
! e1cfa0b74973f4a7ff1c620da863d559  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_d.c
! 6b23904bf165265f0d4b70e6eef3f24d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_s.c
! 1b3211c3be414702a1f0a10bfaaa6949  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c
! 5b2d9c842880d8b99518eeccb09f55ef  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c
! 817f650ff8ea645903b32b67f1b355c2  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c
! 2f26b0d79bea8de5b744bbe0e1ac0a0b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c
! 2bf185cbd465d0a317cbe9d5c3ec39ee  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c
! 6640ccba5146e3e09ecdb1fe76c16f41  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c
! e3c0eb864df0ff68253cbeaa3c343933  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c
! d603f9cf40bfc4921393ff16612fc67b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c
! 1eda4ff552ace4d850307e32d029dc13  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c
! 4e74285c15f471a729efc19ef6cfa7d8  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c
! f5e3c7b7fb6041c7e354cb34ff1391c0  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c
! f92645998b64611417a1bb00c04076b0  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c
! 390890246afcb0eb4e65e69001a93310  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c
! 6e37f84286557a5b608a6bf7f2727d81  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c
! aa6f815bf09170baf80caa573e1d1e48  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-1.c
! 8d002d64825285e2d2cd05c071aa5929  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-2.c
! e97c44fa00ad5876d7afd6df94d46ef3  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-1.c
! 5dbb057b548b141741d31d19219f5c4f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-2.c
! e7bf9a77a582a4865029eab26abc3cb3  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-3.c
! 7a0e53f1c70a81e2cbbc0e2c5f61fb85  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_d.c
! 51566c0d5e971fee52daa824e63d51cd  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_s.c
! fbc47941d280c9579ca852af891488ba  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_d.c
! b2282b4376ec0248ff72a6f0330c536f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_s.c
! 56b6a38bd51055f2fc4e0f5dff86a94c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_d.c
! 8e828ae44f4b49bd2d617221fca7ca3a  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_s.c
! 39fcf0e15f4349c3c57406a13b757c64  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_d.c
! 33eba977c7b782697aefa02ab5c3db85  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_s.c
! 0ae36a10efd568f6d66846e8ddc34e08  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_d.c
! 30f2e18555957d41dbb3123df85f14ef  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_s.c
! 4e46957cd753fe101472c070c381fa43  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_d.c
! 0f9442fc766cfb3f9d548a12955ef8ec  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_s.c
! 574d8e0c6a51115415b8e58a6d4b0dfc  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstp.c
! 8082289a7ca35980be552199303b3c7b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstpi.c
! e42a857b7ae64e04dbd036e15cebf4ff  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_d.c
! d0f4f13703aa7263b33308fa040e6d76  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_s.c
! 6598e9bd146b86f6225fe52dace434b0  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-1.c
! 8ba89e85b5d482310c3916397380994e  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-2.c
! 713d1831f0212c4b1873c6c3ed2336e4  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-3.c
! d6df13bbc527aed4f037842d2aff587a  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-4.c
! 84f0c78c0f74c1128983cbeaa9c51b1f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-1.c
! aef6220ae8b3956523cf4f88ac577cef  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-2.c
! e40dc2993df035e3dee5b00adeef38b5  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-1.c
! 4ef79ba98d1dbf933b4bd1a45bc9a583  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-2.c
! e2aeb686c929d21655a56b41ff82b987  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvh.c
! f9f6637e34ded5af025ddf799b0dd1f7  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvl.c
! 04017bc91621d05d67abd13e9c9705cc  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vinsgr2vr.c
! 9b2425b4d722accf67b41a8487f0fa83  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vld.c
! 6ff8009674b1b0aacde6adf1cc03478d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vldi.c
! 9a97926cb00a679d29797fdb19a15f8e  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmadd.c
! 4e790fa00c3e4756b044c3ee8eafc818  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-1.c
! e4900698dcf9ee2a5ec75faf3518ec79  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-2.c
! 8c4ad4a25995bac17448e751e81d44e1  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-3.c
! f47594e6c685b3fc4a25175e207c020d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-1.c
! a028312339098dc6f12bc3467523ce7c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-2.c
! 447b020db393272d1fe1b9b75fdada75  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-3.c
! d7d006da786f193494a1c5f4e14764a8  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-1.c
! 654b2a22795c18b853f228d628d8ba64  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-2.c
! 534dac913c94920eb5066b3b0c8163e4  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-1.c
! 411ff4161f4bc5ec76fb62d8d6ac6cfe  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-2.c
! d2d513bfa7c231bc634414ae4aee3140  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-1.c
! ecb085091efacbfb9dee776391955c86  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-2.c
! a05821d2f3ad7bf4ec04e68a6c440086  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-1.c
! 8c87ec89ced7ce79ee9a6b6f208f804e  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-2.c
! b52861e18fbdf46bc92582630b28d40d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-1.c
! 47a9ef41984b24ebfe9d8f44699ce13e  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-2.c
! d70345d219fa177bf4681a74b831ea65  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskgez.c
! 6c4733ce1ac4658b8ef5176a5be035eb  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskltz.c
! a0da7cefd808d57e285cdb11061d775a  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsknz.c
! a3343581fa435bf431bce2d2e2feb5ec  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsub.c
! 426f037e7a7808c4c14ddb380d5d8112  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-1.c
! 5a6c4eccf8f24e7fa78b7892e27f4651  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-2.c
! e72819d52157f0219718381dfc7c5b38  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmul.c
! 695f922cf4f8290aa717793abeb35dff  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-1.c
! cd7135e7f2e177868edaa75de34c1a02  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-2.c
! 80d191f89feeacbf05bc90a5069087b0  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-3.c
! d935c97db37e9d8ac768b55d6e0c51c5  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-1.c
! 1e5330413286f0dee2ce27f3df0f04d7  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-2.c
! 009c44f1a3660f385e78b25a553638d3  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-3.c
! a057c80b0d2b932f4ad367ae666b9569  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vneg.c
! 8c6f78180461884d832d6601ffdf1366  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnor.c
! 15f445ea1438ac29cee6d9b85992a3d5  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnori.c
! 812480e673c269ba8155693f22aae9ac  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vor.c
! a6aebee1d5feaab1134e5b1df79826b6  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vori.c
! 8d89681a2f1e72db9b674fc1ed1c8326  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vorn.c
! 05317f4ed81287f16652c17283d8e3c8  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackev.c
! 1a8e8be6686002ac6e0306f2d7e5148d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackod.c
! 1e15e1bfcd420a44af33a7a95863de93  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpcnt.c
! 9e77fa7308d3a3f09e42e0e380b2551b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickev.c
! 046e405466b2f32326f2d7277de3785b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickod.c
! f961147c5e2aeb3690a7924e41bdee3f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickve2gr.c
! c180e664a6cfbe0364e57211941a9c14  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpremi.c
! 9e7fe745e5961a15571ca80bce0000b9  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplgr2vr.c
! 13d2bfa8fb6dbc8d863a2a6d99d8d7e6  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplve.c
! 8d1a00b14e23b45b0b59d3fa6339a03c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplvei.c
! cf454fe8cd5c11593239475c5425ba1b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotr.c
! 151c7e67ff02efdedf2cf7bbdcdbaec6  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotri.c
! 550694faab2603e1a7b11d0c6cf6960f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-1.c
! b42cd827d7028b2d017143467f55412a  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-2.c
! 069edf8883182b2153505e0d4f092828  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-1.c
! a31e1d876cadb33274b1f3232dad1f32  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-2.c
! 168405f195dbe677fe599e40661e8a77  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseq.c
! 7d21030084013597a2bd4360ecdaa115  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseqi.c
! 82a250604b506b4f70bc49383af1c9e1  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c
! a5c6162b62e0a6e9c077832a71dc29e2  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf4i.c
! c46c28ad017dc305a22764d1c0dc9d0f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsigncov.c
! d34123469190ddedd8335f29eb57a024  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-1.c
! 5aacdd190b8d2c2035e0be019e0dd38f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-2.c
! b454d8b292d219e44a934014a79f7342  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-1.c
! 754123ccf109e6fb910b3ac35d815e70  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-2.c
! a27aabec4cdb6db3b9aca7f9fd5254dd  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsll.c
! a5ab48848025c827b7bedff30b9b85d5  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslli.c
! 221b705e8209c5d7123c06f19ee105d9  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-1.c
! ffdb0b5b46d50c487c52c9f383986c0b  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-2.c
! a251dc604e144e6b3628c20ab3171cbe  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-1.c
! 3d43454071e29f2722970c5f1728e0a5  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-2.c
! 0366e0041e1812375293850430fda8ba  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-1.c
! d0484358c020f5341d3f0f484b3b57d2  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-2.c
! 3d336a5d8861ca3b1c14ccff1efb7ee3  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsra.c
! 0413dd5d207cef051566058767cc42fe  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrai.c
! 34691ccc3ce9742d2a394d4d761aa369  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsran.c
! c7b9681f71e53429879b35d7640b7b68  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrani.c
! a2175bbcdda466f62c526266ed6114b8  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrar.c
! 999d182ecbf29ad5a9fca99486515cac  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrari.c
! 54aef2b739ed51589e96eab659a6fd1c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarn.c
! 4a6f6e0a3cb560cbef3e3bcbda5a5dec  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarni.c
! a05f493ca3e5b0debd1bd6558ab021f1  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrl.c
! 81cbf39b7118be38d359e7b2a50545c6  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrli.c
! 677ee81ce44c205cb471fb2e55a2c7b6  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrln.c
! a7454714122c966e74421777f703ad9c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlni.c
! cb3492c3a989e2f6930b7c3a279ef36c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlr.c
! 2a33ed8fb2303125943bc6e667b7a0c0  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlri.c
! 1bf99f2989697465bab04859b2b5d1ba  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrn.c
! 176921b527b58131e743f5b3b92b3d8f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrni.c
! 0aad110b1069ded56d4969131bd20c25  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssran.c
! 01367fa18c427c7db92f644723c70077  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrani.c
! 452add62b02e4f582cf774860192210a  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarn.c
! 574a0d23ebb123a1dc6731812d140fef  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarni.c
! 22874dbf5e7ac702541e51a749ae74e3  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrln.c
! 3698ed1f2c7ac98c220707525b85ff26  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlni.c
! 958983f20e129937d2b89f3573233b1e  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrn.c
! 57a2e05977388a1a40bbdf593d231442  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrni.c
! 40952be805de22f1d74d6c944b7b974f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-1.c
! c6a8f9f185442bbcaa9b0a165111a829  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-2.c
! 6eb9434f3340a6abc7c48576aaa98f3c  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vst.c
! c1394942c3e34450f695f8f29b35c57f  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsub.c
! ba16c18034fdd168170580b65bd4cc22  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubi.c
! 461e710e05346e0eb4987c4c1ff060cf  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-1.c
! abf9b1b8f476c2adf2ad06461d70ebb3  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-2.c
! 475a22131b1d7ad49abb4d81f840cb66  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-1.c
! 92722f570e617b4afdb46e656fbecfe2  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-2.c
! d9ab49aa7d7730596242bed46b4c7bed  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxor.c
! 87366d24b56b7a97edbfcb4983a57a52  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxori.c
! 5c8f61426f6c4882be1e61b33f277961  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-xorsign-run.c
! ee9aafb340a5c2597a6f656ccbd8a374  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-xorsign.c
! 70005d5f6a26c8e3f8e5afe7cdc53bbf  gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h
! 32fede0d9373ef10c92cbfd15cda3c85  gcc/testsuite/gcc.target/loongarch/vfcmp-d.c
! c08e307370de6dd5122f517ca9b88bd3  gcc/testsuite/gcc.target/loongarch/vfcmp-f.c
! 10ddd292b7613ff19e60e7031e01d5b7  gcc/testsuite/gcc.target/loongarch/vfmax-vfmin.c
! 10ce9c8f9619651c9d46b51e45ae26da  gcc/testsuite/gcc.target/loongarch/xorsign-run.c
! 9b099d473b8bfb835da7cb656ac3e3f3  gcc/testsuite/gcc.target/loongarch/xorsign.c
! 390ebfd9588a71fef795823e622f6c10  gcc/testsuite/gcc.target/loongarch/xvfcmp-d.c
! 3bce0fc3b123701a83000672e3455ccc  gcc/testsuite/gcc.target/loongarch/xvfcmp-f.c
  daa985dfac90c17791ed0549fd2b0181  gcc/testsuite/gcc.target/loongarch/zero-size-field-pass.c
  c5a3a773bb277e1c1071f9d892d1ed48  gcc/testsuite/gcc.target/loongarch/zero-size-field-ret.c
  ce7c3a66fa22a36825ef82d61a779479  gcc/testsuite/gcc.target/m68k/20090709-1.c
*************** aa59fb938dc80d0bfebfc946cdbfbabf  gcc/te
*** 72781,72789 ****
  363ff108550fa02c923cccb0da681ab5  gcc/testsuite/gcc.target/m68k/interrupt_thread-1.c
  3c540acf2434a3c410d35013267ca79a  gcc/testsuite/gcc.target/m68k/interrupt_thread-2.c
  4183579970ae4f3d5815533efb1b3269  gcc/testsuite/gcc.target/m68k/interrupt_thread-3.c
! b719a888edd5bf8788705230c861e90b  gcc/testsuite/gcc.target/m68k/m68k.exp
  22fc64de9c71e0dd6fc2ede8b6a4b336  gcc/testsuite/gcc.target/m68k/mulsi_highpart.c
  024e8f5fdf9b8d6bb2395e4e383e4712  gcc/testsuite/gcc.target/m68k/pic-1.c
  16f39f8e31f0f10521879907e696470d  gcc/testsuite/gcc.target/m68k/pr19201.c
  6aabbfd07af3135327aa4db3b6e25a2f  gcc/testsuite/gcc.target/m68k/pr25111.c
  04e7dcba5ba58f7947c879c2dc007500  gcc/testsuite/gcc.target/m68k/pr25112.c
--- 78290,78300 ----
  363ff108550fa02c923cccb0da681ab5  gcc/testsuite/gcc.target/m68k/interrupt_thread-1.c
  3c540acf2434a3c410d35013267ca79a  gcc/testsuite/gcc.target/m68k/interrupt_thread-2.c
  4183579970ae4f3d5815533efb1b3269  gcc/testsuite/gcc.target/m68k/interrupt_thread-3.c
! e3241e168be38d5bb1bcda6512960883  gcc/testsuite/gcc.target/m68k/m68k.exp
  22fc64de9c71e0dd6fc2ede8b6a4b336  gcc/testsuite/gcc.target/m68k/mulsi_highpart.c
  024e8f5fdf9b8d6bb2395e4e383e4712  gcc/testsuite/gcc.target/m68k/pic-1.c
+ e8fdda859a75e1eaaafc6ed9f59009ae  gcc/testsuite/gcc.target/m68k/pr108640.c
+ ad023317ae9d16e580c3536142da2ff6  gcc/testsuite/gcc.target/m68k/pr110934.c
  16f39f8e31f0f10521879907e696470d  gcc/testsuite/gcc.target/m68k/pr19201.c
  6aabbfd07af3135327aa4db3b6e25a2f  gcc/testsuite/gcc.target/m68k/pr25111.c
  04e7dcba5ba58f7947c879c2dc007500  gcc/testsuite/gcc.target/m68k/pr25112.c
*************** c39bfa10d384c32bcc566623feb04b8d  gcc/te
*** 72804,72811 ****
  bff7eeb417a8650a559d52c58568d83f  gcc/testsuite/gcc.target/m68k/pr54041.c
  4af5487bc8d0ccfe479387f097ce107e  gcc/testsuite/gcc.target/m68k/pr54555.c
  e695224d5b317835a290893c94d4209e  gcc/testsuite/gcc.target/m68k/pr59946.c
! 688a1a6a79e18140c7f2f2370aae9b92  gcc/testsuite/gcc.target/m68k/pr63347.c
  0d7fa736ace82879979668cb692d9f87  gcc/testsuite/gcc.target/m68k/pr64461.c
  64801a5d12a7d876eb9fc0407fd9af8f  gcc/testsuite/gcc.target/m68k/slp-ice.c
  0849c1bed0b42b3d010dd80dc8d7c444  gcc/testsuite/gcc.target/m68k/stack-limit-1.c
  8cd9d92a4559564d1109079326d62868  gcc/testsuite/gcc.target/m68k/tls-dimode.c
--- 78315,78323 ----
  bff7eeb417a8650a559d52c58568d83f  gcc/testsuite/gcc.target/m68k/pr54041.c
  4af5487bc8d0ccfe479387f097ce107e  gcc/testsuite/gcc.target/m68k/pr54555.c
  e695224d5b317835a290893c94d4209e  gcc/testsuite/gcc.target/m68k/pr59946.c
! b1a1c268f5286d61258af150b181ad66  gcc/testsuite/gcc.target/m68k/pr63347.c
  0d7fa736ace82879979668cb692d9f87  gcc/testsuite/gcc.target/m68k/pr64461.c
+ 60f7ed33bc6999b562cbece16ce2938b  gcc/testsuite/gcc.target/m68k/pr82420.c
  64801a5d12a7d876eb9fc0407fd9af8f  gcc/testsuite/gcc.target/m68k/slp-ice.c
  0849c1bed0b42b3d010dd80dc8d7c444  gcc/testsuite/gcc.target/m68k/stack-limit-1.c
  8cd9d92a4559564d1109079326d62868  gcc/testsuite/gcc.target/m68k/tls-dimode.c
*************** d42eb48f71e2c7fc0fb924df3962c815  gcc/te
*** 72826,72850 ****
  24c3e276dc2fbfc57b71dc04b9e9f5d4  gcc/testsuite/gcc.target/m68k/tls-le-xtls.c
  4a2c94ae2d02983de778783de1bbfde0  gcc/testsuite/gcc.target/m68k/tls-le.c
  ab8edefded7f6632435c925aac41912a  gcc/testsuite/gcc.target/m68k/xgot-1.c
! ff9e93d3e77e32e0ebcc4ee4d9ace05d  gcc/testsuite/gcc.target/microblaze/isa/bshift.c
! 0527b3c3c328b62fc0ae788dc511ddf5  gcc/testsuite/gcc.target/microblaze/isa/div.c
! 6b0045d8d4687ce8b771c9e95d2825eb  gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c
! 1511dc8689e393c4eba262c5025d283f  gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c
! e26b5e2810c778271b3566e0648a477c  gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c
! f518418a345df7455fbf45d2755aabfd  gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c
! 13116e55c6dc9d1e27361d96171e4efd  gcc/testsuite/gcc.target/microblaze/isa/fcvt.c
! 8559aefca5d5bbcf1662fcc0b10d2684  gcc/testsuite/gcc.target/microblaze/isa/float.c
! 65b7ac5e997d43763d364e2632b09140  gcc/testsuite/gcc.target/microblaze/isa/fsqrt.c
! cf0584e52b949ce8ef0adc4733a51788  gcc/testsuite/gcc.target/microblaze/isa/mul-bshift-pcmp.c
! 0a4ab7a57539b70e4881ee9f58aafc09  gcc/testsuite/gcc.target/microblaze/isa/mul-bshift.c
! 5eb6114c45259bc6a6f9e448146297a9  gcc/testsuite/gcc.target/microblaze/isa/mul.c
! ba0c061939f0d2ab48e63b0dc178cc72  gcc/testsuite/gcc.target/microblaze/isa/mulh-bshift-pcmp.c
! c58762cd9e8ece2fd7e5cdf82ba6e645  gcc/testsuite/gcc.target/microblaze/isa/mulh.c
! e143618b2c8e9f74a89e408849d5ea9e  gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c
! 2086e2e1ebf0b6ad99cc2808f906bdaf  gcc/testsuite/gcc.target/microblaze/isa/nofloat.c
! 7d11470d188b8ddbdb82b31ba91f41ff  gcc/testsuite/gcc.target/microblaze/isa/pcmp.c
! 950feeef0cf00d66d2c89478821978e0  gcc/testsuite/gcc.target/microblaze/isa/vanilla.c
! 7a924dcfefdd5ed6de9a76749cdc7146  gcc/testsuite/gcc.target/microblaze/microblaze.exp
  9a329728496d062effbbdf4b7bde3f00  gcc/testsuite/gcc.target/microblaze/others/break_handler.c
  a498a396b1e4969560394c7d56f05fa5  gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c
  821cbcd6a2563ff2997adb005fdd91af  gcc/testsuite/gcc.target/microblaze/others/data_var1.c
--- 78338,78362 ----
  24c3e276dc2fbfc57b71dc04b9e9f5d4  gcc/testsuite/gcc.target/m68k/tls-le-xtls.c
  4a2c94ae2d02983de778783de1bbfde0  gcc/testsuite/gcc.target/m68k/tls-le.c
  ab8edefded7f6632435c925aac41912a  gcc/testsuite/gcc.target/m68k/xgot-1.c
! 61b3fb8648e44a8820c83fe68332bdfc  gcc/testsuite/gcc.target/microblaze/isa/bshift.c
! 964eece09ed30ca58c87760919a5e37a  gcc/testsuite/gcc.target/microblaze/isa/div.c
! 47f5a36bcc1ece85be9ed45d5ed8eae5  gcc/testsuite/gcc.target/microblaze/isa/fcmp1.c
! 9ae90b177668718dbba0a44cc8a0016a  gcc/testsuite/gcc.target/microblaze/isa/fcmp2.c
! 850aff9bbf2f7b222515fbf59e7b33e0  gcc/testsuite/gcc.target/microblaze/isa/fcmp3.c
! 678f21767579d8c994fb17bcab1f4916  gcc/testsuite/gcc.target/microblaze/isa/fcmp4.c
! 4310bf939d1e99bd747ee2e2a4f5e536  gcc/testsuite/gcc.target/microblaze/isa/fcvt.c
! 016558d9b0ff7732fa1a8051e59a07b5  gcc/testsuite/gcc.target/microblaze/isa/float.c
! 8b2df6adb3f166a0f0f9d5a9806335c8  gcc/testsuite/gcc.target/microblaze/isa/fsqrt.c
! f19b26a0ef75bc5a842096dd766f36b0  gcc/testsuite/gcc.target/microblaze/isa/mul-bshift-pcmp.c
! bce9fa2c6f1e56b2fc1016479a2343a7  gcc/testsuite/gcc.target/microblaze/isa/mul-bshift.c
! 838eaa2cf5a8d996fba91944dec34769  gcc/testsuite/gcc.target/microblaze/isa/mul.c
! 9f619570b5190526cd402dcbed76ac2e  gcc/testsuite/gcc.target/microblaze/isa/mulh-bshift-pcmp.c
! 1191c1463724db4c4d17cf085df1e4cb  gcc/testsuite/gcc.target/microblaze/isa/mulh.c
! 5b2981de420be71c356c495dfca11de9  gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c
! a816dff6f0a70651b4a2baba36df01bf  gcc/testsuite/gcc.target/microblaze/isa/nofloat.c
! 7bd8c4012b4e818f846d60047de3d957  gcc/testsuite/gcc.target/microblaze/isa/pcmp.c
! 215c22e1a44b562b1792467518f5da2c  gcc/testsuite/gcc.target/microblaze/isa/vanilla.c
! cb9a9e22766eb1fff51ce75d99cd1648  gcc/testsuite/gcc.target/microblaze/microblaze.exp
  9a329728496d062effbbdf4b7bde3f00  gcc/testsuite/gcc.target/microblaze/others/break_handler.c
  a498a396b1e4969560394c7d56f05fa5  gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c
  821cbcd6a2563ff2997adb005fdd91af  gcc/testsuite/gcc.target/microblaze/others/data_var1.c
*************** ef8649507880937e147c9dd91759a065  gcc/te
*** 72895,72900 ****
--- 78407,78414 ----
  6ff9c6d87150c3a9a07ca863a2e320c7  gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c
  cf1dc564ccb95729a0652f1a81ecd9d7  gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c
  36f61fecd50876445b11bc347fd8df75  gcc/testsuite/gcc.target/mips/abi-o64-long64.c
+ 570d0590bb5ce50914d2476e5e364514  gcc/testsuite/gcc.target/mips/align-1-n64.c
+ 301257833755f15ce6562f1940c4dc83  gcc/testsuite/gcc.target/mips/align-1-o32.c
  7753a95f0c404b82e5982f495131dc67  gcc/testsuite/gcc.target/mips/args-1.c
  50f988403fd9a3e22a623e08100b7ad4  gcc/testsuite/gcc.target/mips/args-2.c
  459f535d497d03c1a76ca45d3166cf73  gcc/testsuite/gcc.target/mips/args-3.c
*************** bd664be1fa493e8551398de32f3a5bec  gcc/te
*** 72963,72968 ****
--- 78477,78487 ----
  8e8d38b5848408e00f13fdbbab2914bc  gcc/testsuite/gcc.target/mips/code-readable-2.c
  1abe031db3c5b45247fccbf2ca25dea4  gcc/testsuite/gcc.target/mips/code-readable-3.c
  511e74e77bede63bd88c956d1c083daa  gcc/testsuite/gcc.target/mips/code-readable-4.c
+ a07c8e0df940b709ceb7a664134d53e4  gcc/testsuite/gcc.target/mips/code-readable-attr-1.c
+ e49c935f01caf11667868b17bbcac80c  gcc/testsuite/gcc.target/mips/code-readable-attr-2.c
+ f25cfc8aec75a46a888efcfccc2a45b1  gcc/testsuite/gcc.target/mips/code-readable-attr-3.c
+ 481bb60b08d5851302050a96a96a0ca2  gcc/testsuite/gcc.target/mips/code-readable-attr-4.c
+ 6353a9de393ed3f058d0aa0dc565222f  gcc/testsuite/gcc.target/mips/code-readable-attr-5.c
  fd1a158a5c96f52051dc580e5683a1c4  gcc/testsuite/gcc.target/mips/compact-branches-1.c
  d91cd5fe96893db5204874d9dfddfb40  gcc/testsuite/gcc.target/mips/compact-branches-2.c
  553c2949d5952ba5b080f920812388e3  gcc/testsuite/gcc.target/mips/compact-branches-3.c
*************** d70897fb103953773b6a45dd5328c664  gcc/te
*** 72978,72984 ****
  05ea0ada393e7ec2c1c35a6485113a2b  gcc/testsuite/gcc.target/mips/const-anchor-4.c
  766902dab6d6d5cd9d7197254a7332e5  gcc/testsuite/gcc.target/mips/constant-spill.c
  43c7b13372ab127f62a02908b0d109ea  gcc/testsuite/gcc.target/mips/data-sym-jump.c
! 3c9641aa6969157a57229607c3f7ec68  gcc/testsuite/gcc.target/mips/data-sym-multi-pool.c
  fbb4f223bbd5e08d3cc054682c367405  gcc/testsuite/gcc.target/mips/data-sym-pool.c
  17c9c459b5bd9c2c1f5322a9cebe7c52  gcc/testsuite/gcc.target/mips/div-1.c
  258f4051ab8422e0fc6f3fecf2520d64  gcc/testsuite/gcc.target/mips/div-13.c
--- 78497,78503 ----
  05ea0ada393e7ec2c1c35a6485113a2b  gcc/testsuite/gcc.target/mips/const-anchor-4.c
  766902dab6d6d5cd9d7197254a7332e5  gcc/testsuite/gcc.target/mips/constant-spill.c
  43c7b13372ab127f62a02908b0d109ea  gcc/testsuite/gcc.target/mips/data-sym-jump.c
! fbf8bb4471f999ed5cb33b803f6818ab  gcc/testsuite/gcc.target/mips/data-sym-multi-pool.c
  fbb4f223bbd5e08d3cc054682c367405  gcc/testsuite/gcc.target/mips/data-sym-pool.c
  17c9c459b5bd9c2c1f5322a9cebe7c52  gcc/testsuite/gcc.target/mips/div-1.c
  258f4051ab8422e0fc6f3fecf2520d64  gcc/testsuite/gcc.target/mips/div-13.c
*************** e9ef81a89f459482496a3c1471c1986f  gcc/te
*** 73006,73011 ****
--- 78525,78532 ----
  11bff7641c0c758d7c30257dc468db79  gcc/testsuite/gcc.target/mips/dwarfregtable-3.c
  03fe5459ac3f6802a18085e01248c384  gcc/testsuite/gcc.target/mips/dwarfregtable-4.c
  c8083c4579b9c1fbfcd99780e8ae96c7  gcc/testsuite/gcc.target/mips/dwarfregtable.h
+ 080418ec463400f08e07ae904b9e5d08  gcc/testsuite/gcc.target/mips/expand-block-move-r6-no-unaligned.c
+ f73cdbdb7eac8f0ceb41ff25e0822ad5  gcc/testsuite/gcc.target/mips/expand-block-move-r6.c
  6f9e51b8c25866e2827e7200aab30706  gcc/testsuite/gcc.target/mips/ext-1.c
  a0f0152f684621e3c5d9fb7f4592097f  gcc/testsuite/gcc.target/mips/ext-2.c
  c5e7f849981b87558b7a06bbb5c10d92  gcc/testsuite/gcc.target/mips/ext-3.c
*************** facef9dc8f4751cf6faf6a5e5dc417b0  gcc/te
*** 73019,73026 ****
--- 78540,78549 ----
  00ede36a2c10f0acbe8ab4033ece63ad  gcc/testsuite/gcc.target/mips/extend-2.c
  b3ad8c6856c7bc9752d8b05f0b929807  gcc/testsuite/gcc.target/mips/fabs-2008.c
  2e6661e0f7851cca612101f34a7e1b63  gcc/testsuite/gcc.target/mips/fabs-legacy.c
+ 45990abc3087101733888f51b7f16144  gcc/testsuite/gcc.target/mips/fabs-nan2008.c
  98bce7c444b8d76cafc97d866958938d  gcc/testsuite/gcc.target/mips/fabsf-2008.c
  2c3e817d57af50a34bbddde40221b520  gcc/testsuite/gcc.target/mips/fabsf-legacy.c
+ d2382b0b52b69889ebb37280a8ce03dc  gcc/testsuite/gcc.target/mips/fabsf-nan2008.c
  5af37811bbb3571e89a6dc3be1d5808d  gcc/testsuite/gcc.target/mips/fix-r10000-1.c
  90f7f438b37f09bf95522d46f38c86bb  gcc/testsuite/gcc.target/mips/fix-r10000-10.c
  56f9244779240d129c8460c849132fe6  gcc/testsuite/gcc.target/mips/fix-r10000-11.c
*************** e7490a676f50b43dff9fbe84ff3bd95e  gcc/te
*** 73099,73105 ****
  c81aee9c49e6f97c3c8859ac412e9a1a  gcc/testsuite/gcc.target/mips/insn-tablejump.c
  89a4ef1858913bac4051ca04ba4ebdea  gcc/testsuite/gcc.target/mips/int-moves-1.c
  1c97317ecf082e15cdf77755e9fcebbb  gcc/testsuite/gcc.target/mips/int-moves-2.c
! 7fe940a2e6b987da7c3a27c86ec60bf2  gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp
  41a97b2d305c2755e145a924168d4527  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_main.c
  d231e6bcd981687f765ebf5b64bfe33d  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_x.c
  1b5e8db99dca8d400407b92203490cd8  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_y.c
--- 78622,78628 ----
  c81aee9c49e6f97c3c8859ac412e9a1a  gcc/testsuite/gcc.target/mips/insn-tablejump.c
  89a4ef1858913bac4051ca04ba4ebdea  gcc/testsuite/gcc.target/mips/int-moves-1.c
  1c97317ecf082e15cdf77755e9fcebbb  gcc/testsuite/gcc.target/mips/int-moves-2.c
! 6df92fd4bf5436398bcc08b4278b51a5  gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp
  41a97b2d305c2755e145a924168d4527  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_main.c
  d231e6bcd981687f765ebf5b64bfe33d  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_x.c
  1b5e8db99dca8d400407b92203490cd8  gcc/testsuite/gcc.target/mips/inter/mips16_stubs_1_y.c
*************** e29cf040ff47381ec220169736b7446a  gcc/te
*** 73148,73154 ****
  0c68f22b9635571f990298a5dd303133  gcc/testsuite/gcc.target/mips/mips-3d-8.c
  3f1d2771ce47e4d32f5b8afd4beb82d3  gcc/testsuite/gcc.target/mips/mips-3d-9.c
  375a28f0b3d06b2fad9a483c26ea4000  gcc/testsuite/gcc.target/mips/mips-builtins-pure.c
! 4a5a0e83f0594367232cc9f00e65bcde  gcc/testsuite/gcc.target/mips/mips-nonpic/README
  0e86fc6b72b862d940296b6decd5d983  gcc/testsuite/gcc.target/mips/mips-nonpic/main-1.c
  84eb9316a2c541350e627b08dd891336  gcc/testsuite/gcc.target/mips/mips-nonpic/main-10.c
  b1a835baf5477fd4c7927dfd57b3c53b  gcc/testsuite/gcc.target/mips/mips-nonpic/main-11.c
--- 78671,78677 ----
  0c68f22b9635571f990298a5dd303133  gcc/testsuite/gcc.target/mips/mips-3d-8.c
  3f1d2771ce47e4d32f5b8afd4beb82d3  gcc/testsuite/gcc.target/mips/mips-3d-9.c
  375a28f0b3d06b2fad9a483c26ea4000  gcc/testsuite/gcc.target/mips/mips-builtins-pure.c
! 74e71183666814a8818b0b7b0f2cae0d  gcc/testsuite/gcc.target/mips/mips-nonpic/README
  0e86fc6b72b862d940296b6decd5d983  gcc/testsuite/gcc.target/mips/mips-nonpic/main-1.c
  84eb9316a2c541350e627b08dd891336  gcc/testsuite/gcc.target/mips/mips-nonpic/main-10.c
  b1a835baf5477fd4c7927dfd57b3c53b  gcc/testsuite/gcc.target/mips/mips-nonpic/main-11.c
*************** f7db832be6c1f33d30392dc4571ec31a  gcc/te
*** 73165,73171 ****
  f3d83fe630c8754c36f040556d8ac908  gcc/testsuite/gcc.target/mips/mips-nonpic/main-7.c
  6df45c093b1debb44ab59e19680afe1a  gcc/testsuite/gcc.target/mips/mips-nonpic/main-8.c
  1c8aaab2d02d475708358405e698cef3  gcc/testsuite/gcc.target/mips/mips-nonpic/main-9.c
! 171a260207dba9533e0d65eb88b53917  gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp
  019e2bb848027bcd4216983c967f3950  gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.h
  1e01424d10b7a1e8927d5a1f53724f45  gcc/testsuite/gcc.target/mips/mips-nonpic/nonpic-addr-call.c
  8dd8657a8c441d55f4fa03d7b3eb5ea8  gcc/testsuite/gcc.target/mips/mips-nonpic/nonpic-addr.c
--- 78688,78694 ----
  f3d83fe630c8754c36f040556d8ac908  gcc/testsuite/gcc.target/mips/mips-nonpic/main-7.c
  6df45c093b1debb44ab59e19680afe1a  gcc/testsuite/gcc.target/mips/mips-nonpic/main-8.c
  1c8aaab2d02d475708358405e698cef3  gcc/testsuite/gcc.target/mips/mips-nonpic/main-9.c
! 2e5548ceeefb035868ee583fd66e94e9  gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp
  019e2bb848027bcd4216983c967f3950  gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.h
  1e01424d10b7a1e8927d5a1f53724f45  gcc/testsuite/gcc.target/mips/mips-nonpic/nonpic-addr-call.c
  8dd8657a8c441d55f4fa03d7b3eb5ea8  gcc/testsuite/gcc.target/mips/mips-nonpic/nonpic-addr.c
*************** a85a02c19fa964f6a465de8a4f8929ee  gcc/te
*** 73185,73194 ****
  5b7eb2b42d72760b29c633e7a6a437ee  gcc/testsuite/gcc.target/mips/mips-ps-5.c
  284330748a80bedb6450b324b875118f  gcc/testsuite/gcc.target/mips/mips-ps-6.c
  65eb098e9d656aa6d2c028f16a6e1483  gcc/testsuite/gcc.target/mips/mips-ps-7.c
! 9a29c67ce03ecfddfabb4df18f2ea5d0  gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
  e166ce4f43ccc2c62b14cf1987cc44c9  gcc/testsuite/gcc.target/mips/mips-ps-type.c
  1da4a0d69d85dcc79c371471a1e1519e  gcc/testsuite/gcc.target/mips/mips-sched-madd.c
! 74d2d14ba2a4130da6cbaef9604ffd13  gcc/testsuite/gcc.target/mips/mips.exp
  b48e1f7713d9377ade65ca3353e3aadd  gcc/testsuite/gcc.target/mips/mips16-attributes-2.c
  ec0fc4cda7ea3307bf321757f0f6ab8b  gcc/testsuite/gcc.target/mips/mips16-attributes-3.c
  6de1fc03c068d128a6bcc28a79510784  gcc/testsuite/gcc.target/mips/mips16-attributes-4.c
--- 78708,78717 ----
  5b7eb2b42d72760b29c633e7a6a437ee  gcc/testsuite/gcc.target/mips/mips-ps-5.c
  284330748a80bedb6450b324b875118f  gcc/testsuite/gcc.target/mips/mips-ps-6.c
  65eb098e9d656aa6d2c028f16a6e1483  gcc/testsuite/gcc.target/mips/mips-ps-7.c
! 4836d50787b1340a0197269158f84f44  gcc/testsuite/gcc.target/mips/mips-ps-type-2.c
  e166ce4f43ccc2c62b14cf1987cc44c9  gcc/testsuite/gcc.target/mips/mips-ps-type.c
  1da4a0d69d85dcc79c371471a1e1519e  gcc/testsuite/gcc.target/mips/mips-sched-madd.c
! 712a26db5518b7cd4b0abb2a5b12d441  gcc/testsuite/gcc.target/mips/mips.exp
  b48e1f7713d9377ade65ca3353e3aadd  gcc/testsuite/gcc.target/mips/mips16-attributes-2.c
  ec0fc4cda7ea3307bf321757f0f6ab8b  gcc/testsuite/gcc.target/mips/mips16-attributes-3.c
  6de1fc03c068d128a6bcc28a79510784  gcc/testsuite/gcc.target/mips/mips16-attributes-4.c
*************** c4ac04d8c733f747b25b5f56130e96a6  gcc/te
*** 73196,73201 ****
--- 78719,78728 ----
  61309df197bd69375b9390be669c2859  gcc/testsuite/gcc.target/mips/mips16-attributes-6.c
  0d2e7e54ca55ba8f4126d2168560cb54  gcc/testsuite/gcc.target/mips/mips16-attributes.c
  07ba7e6d8ae3ebf058722d2b5d276292  gcc/testsuite/gcc.target/mips/mips16e-extends.c
+ a7510ef1991cfa9c9824c280d6a977e2  gcc/testsuite/gcc.target/mips/mips16e2-cache.c
+ 78a7aac3f3e38a7d49c7318bf45dc97f  gcc/testsuite/gcc.target/mips/mips16e2-cmov.c
+ 39d6de185b9fa5aaf8fc776a8ab76b77  gcc/testsuite/gcc.target/mips/mips16e2-gp.c
+ 4eb4d2540c6bf19f8a39f3cd5734a1d7  gcc/testsuite/gcc.target/mips/mips16e2.c
  0960e18594df8b61a3087d8d4f347f1c  gcc/testsuite/gcc.target/mips/mips32-dsp-accinit-1.c
  3dc69728f988eb5b16cf78b02d604c45  gcc/testsuite/gcc.target/mips/mips32-dsp-accinit-2.c
  30497bf44801046ae08202eee83ee391  gcc/testsuite/gcc.target/mips/mips32-dsp-run.c
*************** d40b38e3d7fd5c4f4d003bfdbd8dcbb4  gcc/te
*** 73213,73219 ****
  b238c2e658160f86a7797e1d34586a82  gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c
  5a01daf99d322156fcf6e611dfc09e73  gcc/testsuite/gcc.target/mips/movcc-1.c
  a4539c4766d0ff228763889fef30c969  gcc/testsuite/gcc.target/mips/movcc-2.c
! 03909de55e0dfb7777234482b3118b50  gcc/testsuite/gcc.target/mips/movcc-3.c
  5a635cdf10fc870400897d358ef152df  gcc/testsuite/gcc.target/mips/movdf-1.c
  18cb4194916303a03c81e584b70d9bd6  gcc/testsuite/gcc.target/mips/movdf-2.c
  17ccb6da9e8bb3dab1d8b9266cd0e15a  gcc/testsuite/gcc.target/mips/movdf-3.c
--- 78740,78746 ----
  b238c2e658160f86a7797e1d34586a82  gcc/testsuite/gcc.target/mips/mmcount-ra-address-3.c
  5a01daf99d322156fcf6e611dfc09e73  gcc/testsuite/gcc.target/mips/movcc-1.c
  a4539c4766d0ff228763889fef30c969  gcc/testsuite/gcc.target/mips/movcc-2.c
! 1ca0f0e62bf17bda27141db1f33d9861  gcc/testsuite/gcc.target/mips/movcc-3.c
  5a635cdf10fc870400897d358ef152df  gcc/testsuite/gcc.target/mips/movdf-1.c
  18cb4194916303a03c81e584b70d9bd6  gcc/testsuite/gcc.target/mips/movdf-2.c
  17ccb6da9e8bb3dab1d8b9266cd0e15a  gcc/testsuite/gcc.target/mips/movdf-3.c
*************** caada899adaa25d988c300185e4be613  gcc/te
*** 73331,73336 ****
--- 78858,78864 ----
  f42f0801a44d06285cee316810947fb7  gcc/testsuite/gcc.target/mips/pr102024-2.c
  98311d9530bd225a74247a96e75fd525  gcc/testsuite/gcc.target/mips/pr102024-3.c
  4722bc5e1a9d0de7597bc138894a36d3  gcc/testsuite/gcc.target/mips/pr102024-4.c
+ a5fe054c259b2b857e58ca81fc2ee790  gcc/testsuite/gcc.target/mips/pr104914.c
  06ed58a6932750afce22db3b1b18fd17  gcc/testsuite/gcc.target/mips/pr106462.c
  def76d72ccc4011afcc36f6a1668e0a5  gcc/testsuite/gcc.target/mips/pr26765.c
  a353694197fdff37f4981c3e510c5565  gcc/testsuite/gcc.target/mips/pr33256.c
*************** dad4d404aea0c78820d07b70cdb4a798  gcc/te
*** 73457,73468 ****
  4319fa17073adf2232d14816bdaed5e7  gcc/testsuite/gcc.target/mips/umips-swp-6.c
  3b1c9fc4c85fd0230ae29b589c67c5f8  gcc/testsuite/gcc.target/mips/umips-swp-7.c
  3ef81e2fdc408fca681222a7916f61a8  gcc/testsuite/gcc.target/mips/unaligned-1.c
! 1e8fd5633e42fffb55aa6db0c1970ad2  gcc/testsuite/gcc.target/mips/unaligned-2.c
  0145f04e66a4240e0326621cfd7c7d90  gcc/testsuite/gcc.target/mips/unaligned-3.c
  02c4c8d0119ce2bc51f551d7c42c6af6  gcc/testsuite/gcc.target/mips/va-arg-1.c
  48f200c43fab7d67a5ee8d4fd8af91a5  gcc/testsuite/gcc.target/mips/vr-mult-1.c
  bdbe1b2e833e8da48eee27859726180e  gcc/testsuite/gcc.target/mips/vr-mult-2.c
  3ec2a63f9573f652ac209afae65a0770  gcc/testsuite/gcc.target/mips/wrap-delay.c
  235b3b0b968ad1c186db280d0ec67188  gcc/testsuite/gcc.target/msp430/430x-default-isa.c
  fa5c22f6671af3e43fcfec3ce3d4585a  gcc/testsuite/gcc.target/msp430/430x-insns.c
  43aa1a66b3a1c3d3fcd2c539b6b799e4  gcc/testsuite/gcc.target/msp430/asm-register-names-lower-case.c
--- 78985,78998 ----
  4319fa17073adf2232d14816bdaed5e7  gcc/testsuite/gcc.target/mips/umips-swp-6.c
  3b1c9fc4c85fd0230ae29b589c67c5f8  gcc/testsuite/gcc.target/mips/umips-swp-7.c
  3ef81e2fdc408fca681222a7916f61a8  gcc/testsuite/gcc.target/mips/unaligned-1.c
! 690de596e5776faa948ac6446d99be66  gcc/testsuite/gcc.target/mips/unaligned-2.c
  0145f04e66a4240e0326621cfd7c7d90  gcc/testsuite/gcc.target/mips/unaligned-3.c
  02c4c8d0119ce2bc51f551d7c42c6af6  gcc/testsuite/gcc.target/mips/va-arg-1.c
  48f200c43fab7d67a5ee8d4fd8af91a5  gcc/testsuite/gcc.target/mips/vr-mult-1.c
  bdbe1b2e833e8da48eee27859726180e  gcc/testsuite/gcc.target/mips/vr-mult-2.c
  3ec2a63f9573f652ac209afae65a0770  gcc/testsuite/gcc.target/mips/wrap-delay.c
+ 7d0ae39c98ed6fae647341f3f9b55828  gcc/testsuite/gcc.target/mips/xgot-n32-avoid-gp.c
+ 7899920d6aa9a4945df22521765316d2  gcc/testsuite/gcc.target/mips/xgot-n32-need-gp.c
  235b3b0b968ad1c186db280d0ec67188  gcc/testsuite/gcc.target/msp430/430x-default-isa.c
  fa5c22f6671af3e43fcfec3ce3d4585a  gcc/testsuite/gcc.target/msp430/430x-insns.c
  43aa1a66b3a1c3d3fcd2c539b6b799e4  gcc/testsuite/gcc.target/msp430/asm-register-names-lower-case.c
*************** e8ccb7e6be9b4a5a6ee6f2e94fc961da  gcc/te
*** 73534,73540 ****
  27128b7463fae2c76e78b92abb781315  gcc/testsuite/gcc.target/msp430/mcpu-is-430xv2.c
  e7e107ec835c73626fadb6558d4cd699  gcc/testsuite/gcc.target/msp430/mlarge-pedwarns.c
  68a7d21ba011cdccee863c1757c35ab8  gcc/testsuite/gcc.target/msp430/mlarge-use-430-insn.c
! 05947598ec8fe71c81391f96b076c0c9  gcc/testsuite/gcc.target/msp430/msp430.exp
  9a9833f7a9115cf97f061eb7c068bbb7  gcc/testsuite/gcc.target/msp430/msp430.h
  e96192907f9fd6f32abdb4b2f8c43e7a  gcc/testsuite/gcc.target/msp430/msp430f-device-symbol.c
  4ff245af8aceb3c9dc91c199e31b7af0  gcc/testsuite/gcc.target/msp430/msp430i-device-symbol.c
--- 79064,79070 ----
  27128b7463fae2c76e78b92abb781315  gcc/testsuite/gcc.target/msp430/mcpu-is-430xv2.c
  e7e107ec835c73626fadb6558d4cd699  gcc/testsuite/gcc.target/msp430/mlarge-pedwarns.c
  68a7d21ba011cdccee863c1757c35ab8  gcc/testsuite/gcc.target/msp430/mlarge-use-430-insn.c
! 3ee274f92979c3346c3cb33c4de776f2  gcc/testsuite/gcc.target/msp430/msp430.exp
  9a9833f7a9115cf97f061eb7c068bbb7  gcc/testsuite/gcc.target/msp430/msp430.h
  e96192907f9fd6f32abdb4b2f8c43e7a  gcc/testsuite/gcc.target/msp430/msp430f-device-symbol.c
  4ff245af8aceb3c9dc91c199e31b7af0  gcc/testsuite/gcc.target/msp430/msp430i-device-symbol.c
*************** d1fa64363b98d0dfc99c64fd81ba4fc3  gcc/te
*** 73564,73569 ****
--- 79094,79100 ----
  39a1ebb6f966a3b25fba9725fb2b40b3  gcc/testsuite/gcc.target/msp430/pr80993.c
  69500889eed192041fd9a134ef51dcc8  gcc/testsuite/gcc.target/msp430/pr86662.c
  793308c05b3cd41087c641de34946830  gcc/testsuite/gcc.target/msp430/pr87691.c
+ 56f4751d2e790c86fc2938804de01d07  gcc/testsuite/gcc.target/msp430/pr91865.c
  f07eb78f12fc7d18beb8af8dcc60638f  gcc/testsuite/gcc.target/msp430/region-attribute-misuse.c
  67d5fefdb7b360f62350515543133c7c  gcc/testsuite/gcc.target/msp430/region-misuse-code-data.c
  c3e40a9f60eb8aa4b86d4cf27a15b785  gcc/testsuite/gcc.target/msp430/region-misuse-code.c
*************** a76e9bdd8dd768b474700a1307ac151c  gcc/te
*** 73583,73589 ****
  15f6a34c31bfccfa2f37f50fbedaa686  gcc/testsuite/gcc.target/nds32/builtin-mfusr-mtusr.c
  2a347ba3731aa3fa17024e865968c3b8  gcc/testsuite/gcc.target/nds32/builtin-setgie-dis.c
  ddaca84e0c321fa88f3cedb3bac1bae5  gcc/testsuite/gcc.target/nds32/builtin-setgie-en.c
! f9563b5c57e98e55080571f163da547f  gcc/testsuite/gcc.target/nds32/nds32.exp
  267d1f508341cb93b318d1a249e34c19  gcc/testsuite/gcc.target/nios2/andci.c
  b6812a3a7ba3a86a41e0fdc982390c97  gcc/testsuite/gcc.target/nios2/biggot-1.c
  cdbcb03e5a340d5566b6e43e17797f5e  gcc/testsuite/gcc.target/nios2/biggot-2.c
--- 79114,79120 ----
  15f6a34c31bfccfa2f37f50fbedaa686  gcc/testsuite/gcc.target/nds32/builtin-mfusr-mtusr.c
  2a347ba3731aa3fa17024e865968c3b8  gcc/testsuite/gcc.target/nds32/builtin-setgie-dis.c
  ddaca84e0c321fa88f3cedb3bac1bae5  gcc/testsuite/gcc.target/nds32/builtin-setgie-en.c
! 800e5dbd5732c7866babe3f397e3627f  gcc/testsuite/gcc.target/nds32/nds32.exp
  267d1f508341cb93b318d1a249e34c19  gcc/testsuite/gcc.target/nios2/andci.c
  b6812a3a7ba3a86a41e0fdc982390c97  gcc/testsuite/gcc.target/nios2/biggot-1.c
  cdbcb03e5a340d5566b6e43e17797f5e  gcc/testsuite/gcc.target/nios2/biggot-2.c
*************** cdbcb03e5a340d5566b6e43e17797f5e  gcc/te
*** 73591,73598 ****
  4bc5175c130b77602bada4e45b848e9c  gcc/testsuite/gcc.target/nios2/cdx-add.c
  cdcd422790c51845b0b18baf7aff2e76  gcc/testsuite/gcc.target/nios2/cdx-branch.c
  b59ec0f1beb70cc9698217f55342b3f4  gcc/testsuite/gcc.target/nios2/cdx-callret.c
! 6cbcc24398047fe9fb30733c321ea031  gcc/testsuite/gcc.target/nios2/cdx-ldstwm-1.c
! 72441bf994a95951498fdc814d381e84  gcc/testsuite/gcc.target/nios2/cdx-ldstwm-2.c
  64bf3f23e86707c51bbf1abb024bf895  gcc/testsuite/gcc.target/nios2/cdx-loadstore.c
  2b7176c9318878d9599e0d4aca52f41a  gcc/testsuite/gcc.target/nios2/cdx-logical.c
  3c008e0c8cbda6a22518f72f859e2e4a  gcc/testsuite/gcc.target/nios2/cdx-mov.c
--- 79122,79129 ----
  4bc5175c130b77602bada4e45b848e9c  gcc/testsuite/gcc.target/nios2/cdx-add.c
  cdcd422790c51845b0b18baf7aff2e76  gcc/testsuite/gcc.target/nios2/cdx-branch.c
  b59ec0f1beb70cc9698217f55342b3f4  gcc/testsuite/gcc.target/nios2/cdx-callret.c
! 96adaeb62cd204155d5443993c93c5b4  gcc/testsuite/gcc.target/nios2/cdx-ldstwm-1.c
! 931a4d7701ece9a4ce7c89c3a1872057  gcc/testsuite/gcc.target/nios2/cdx-ldstwm-2.c
  64bf3f23e86707c51bbf1abb024bf895  gcc/testsuite/gcc.target/nios2/cdx-loadstore.c
  2b7176c9318878d9599e0d4aca52f41a  gcc/testsuite/gcc.target/nios2/cdx-logical.c
  3c008e0c8cbda6a22518f72f859e2e4a  gcc/testsuite/gcc.target/nios2/cdx-mov.c
*************** c42dfb4e7f092beb62f8476044079abd  gcc/te
*** 73603,73608 ****
--- 79134,79140 ----
  14d0bdd59692ae8a06c7ea929b3c7c93  gcc/testsuite/gcc.target/nios2/const-addr-3.c
  1b474a2c9901994775fa9c7721a1dcb1  gcc/testsuite/gcc.target/nios2/custom-fp-1.c
  f6a41f12e561359f4d276266dd1e70b1  gcc/testsuite/gcc.target/nios2/custom-fp-2.c
+ a11af1f2211a7fb440bd3930e5fc22ab  gcc/testsuite/gcc.target/nios2/custom-fp-2b.c
  e7a7cd2ef177c3d3de0503896e705fcb  gcc/testsuite/gcc.target/nios2/custom-fp-3.c
  d8262912f060fed85fc52122eaca0045  gcc/testsuite/gcc.target/nios2/custom-fp-4.c
  8a8572dbcd74763bf807e6637cd24d44  gcc/testsuite/gcc.target/nios2/custom-fp-5.c
*************** a87061df79ea1df98b37173a67798115  gcc/te
*** 73661,73667 ****
  6dbe531363c65af94c9d1cf19e943696  gcc/testsuite/gcc.target/nios2/nios2-wrctl-not-zero.c
  758d14c9a54781c627955ab573f81558  gcc/testsuite/gcc.target/nios2/nios2-wrctl-zero.c
  84c9378417e6cb2069a618430a13661c  gcc/testsuite/gcc.target/nios2/nios2-wrctl.c
! 78ab90932562d8d5a5d3d1902d0196d0  gcc/testsuite/gcc.target/nios2/nios2.exp
  5738a626d052d93dbea37d4d0144d7b8  gcc/testsuite/gcc.target/nios2/pr87079-1.c
  efa2a47188c46b5407f22a2a066118c8  gcc/testsuite/gcc.target/nios2/pr87079-2.c
  b267f28fe7ecd61569a0c578100b7bea  gcc/testsuite/gcc.target/nios2/pr92499-1.c
--- 79193,79199 ----
  6dbe531363c65af94c9d1cf19e943696  gcc/testsuite/gcc.target/nios2/nios2-wrctl-not-zero.c
  758d14c9a54781c627955ab573f81558  gcc/testsuite/gcc.target/nios2/nios2-wrctl-zero.c
  84c9378417e6cb2069a618430a13661c  gcc/testsuite/gcc.target/nios2/nios2-wrctl.c
! 98e66a993c5830132d869284f7aad1f9  gcc/testsuite/gcc.target/nios2/nios2.exp
  5738a626d052d93dbea37d4d0144d7b8  gcc/testsuite/gcc.target/nios2/pr87079-1.c
  efa2a47188c46b5407f22a2a066118c8  gcc/testsuite/gcc.target/nios2/pr87079-2.c
  b267f28fe7ecd61569a0c578100b7bea  gcc/testsuite/gcc.target/nios2/pr92499-1.c
*************** f554ef897d4cddb8f5cfcb8c1cf7a6dc  gcc/te
*** 73708,73713 ****
--- 79240,79251 ----
  aa5afc822c9af22a9c54b48b6b4a92c9  gcc/testsuite/gcc.target/nvptx/bool-2.c
  67ca8f2b077a70a24e00acde350bc86e  gcc/testsuite/gcc.target/nvptx/bool-3.c
  58c516f8f71a6d125ca885364f4c28b5  gcc/testsuite/gcc.target/nvptx/bool-4.c
+ 41dfe00e75ea94e8ebc06eb528349bf8  gcc/testsuite/gcc.target/nvptx/brev-1.c
+ 62c9f33d8226cf86fc011f20e2920321  gcc/testsuite/gcc.target/nvptx/brev-2-O0.c
+ 03bf7254ab7140e363a52b44d70e2947  gcc/testsuite/gcc.target/nvptx/brev-2-O2.c
+ 2b8ef1a6e5142946d487d7a76d4d768e  gcc/testsuite/gcc.target/nvptx/brevll-1.c
+ e693c15626896ec109b3519546301710  gcc/testsuite/gcc.target/nvptx/brevll-2-O0.c
+ c0f22d278b34a31116dc5c0ad386b797  gcc/testsuite/gcc.target/nvptx/brevll-2-O2.c
  7256fb37dbe73de95bd0a735ced7ae4d  gcc/testsuite/gcc.target/nvptx/cnot-1.c
  246cf8f97d24ca211fbf44806e414291  gcc/testsuite/gcc.target/nvptx/cvt.c
  cf91ca14cafbda331f4d85cb59c361c2  gcc/testsuite/gcc.target/nvptx/decl-init.c
*************** fb0e44378720162460683cbfd0dbdc52  gcc/te
*** 73743,73749 ****
  46842942450b2228182a8a02cdfd0bad  gcc/testsuite/gcc.target/nvptx/mul-wide.c
  26682b7c6e1dc875ec8e2effc028a378  gcc/testsuite/gcc.target/nvptx/mul-wide64.c
  17c39d8f0e043cf2fa692089cf8498c7  gcc/testsuite/gcc.target/nvptx/neg-selp.c
! 13be6ed7e57081edaab34a164f27eddb  gcc/testsuite/gcc.target/nvptx/nvptx.exp
  97135e11860bc0316757d03f9f9eab37  gcc/testsuite/gcc.target/nvptx/patchable_function_entry-default.c
  a935421e20c83d40eb47ae736d5b5859  gcc/testsuite/gcc.target/nvptx/popc-1.c
  c8bd1e5a7d975c41c97fb76577695e6e  gcc/testsuite/gcc.target/nvptx/popc-2.c
--- 79281,79287 ----
  46842942450b2228182a8a02cdfd0bad  gcc/testsuite/gcc.target/nvptx/mul-wide.c
  26682b7c6e1dc875ec8e2effc028a378  gcc/testsuite/gcc.target/nvptx/mul-wide64.c
  17c39d8f0e043cf2fa692089cf8498c7  gcc/testsuite/gcc.target/nvptx/neg-selp.c
! e3533b63131bbc30740fb27ddc03cc11  gcc/testsuite/gcc.target/nvptx/nvptx.exp
  97135e11860bc0316757d03f9f9eab37  gcc/testsuite/gcc.target/nvptx/patchable_function_entry-default.c
  a935421e20c83d40eb47ae736d5b5859  gcc/testsuite/gcc.target/nvptx/popc-1.c
  c8bd1e5a7d975c41c97fb76577695e6e  gcc/testsuite/gcc.target/nvptx/popc-2.c
*************** d59f1ded63c010f7c70d8914ff035369  gcc/te
*** 73800,73806 ****
  9e49229cfb3a4570a9259ea659772866  gcc/testsuite/gcc.target/or1k/cmov-2.c
  6bd14b0136c11119eb7b862a377f7a1d  gcc/testsuite/gcc.target/or1k/div-mul-1.c
  7fd1bcd610e82d1586aecf6b07e5cabb  gcc/testsuite/gcc.target/or1k/div-mul-2.c
! 15daecaaa26f5064ec7574187b04636b  gcc/testsuite/gcc.target/or1k/or1k.exp
  26536fcae441d001c2a53c21abf56757  gcc/testsuite/gcc.target/or1k/return-1.c
  cbc20b748446a09b12e149a14d1dc326  gcc/testsuite/gcc.target/or1k/return-2.c
  30571d600ad8e2c620b4c88dd60b22ab  gcc/testsuite/gcc.target/or1k/return-3.c
--- 79338,79344 ----
  9e49229cfb3a4570a9259ea659772866  gcc/testsuite/gcc.target/or1k/cmov-2.c
  6bd14b0136c11119eb7b862a377f7a1d  gcc/testsuite/gcc.target/or1k/div-mul-1.c
  7fd1bcd610e82d1586aecf6b07e5cabb  gcc/testsuite/gcc.target/or1k/div-mul-2.c
! f3d09b2fddff7e52b4a1618ab331943d  gcc/testsuite/gcc.target/or1k/or1k.exp
  26536fcae441d001c2a53c21abf56757  gcc/testsuite/gcc.target/or1k/return-1.c
  cbc20b748446a09b12e149a14d1dc326  gcc/testsuite/gcc.target/or1k/return-2.c
  30571d600ad8e2c620b4c88dd60b22ab  gcc/testsuite/gcc.target/or1k/return-3.c
*************** ea95f7612f0049e3a94038c123a0e60d  gcc/te
*** 73811,73817 ****
  11fa4323bb0698ed08c441ecf4a9de20  gcc/testsuite/gcc.target/or1k/shftimm-1.c
  4ee88d86fdfbf4d4ea1743897d934830  gcc/testsuite/gcc.target/or1k/shftimm-2.c
  e4f9cf3a5432c52f9f1d2ce9020312c4  gcc/testsuite/gcc.target/or1k/sibcall-1.c
! 1cc48a89a1301f83729259444d93da62  gcc/testsuite/gcc.target/pdp11/pdp11.exp
  5e734d4f3084597cb92d1488fd0b9760  gcc/testsuite/gcc.target/pdp11/pr108388.c
  a03b92350a69b724ce16f3b7aa1803d7  gcc/testsuite/gcc.target/powerpc/20020118-1.c
  bb3374c69dde2e7b04fca300c9416620  gcc/testsuite/gcc.target/powerpc/20040121-1.c
--- 79349,79356 ----
  11fa4323bb0698ed08c441ecf4a9de20  gcc/testsuite/gcc.target/or1k/shftimm-1.c
  4ee88d86fdfbf4d4ea1743897d934830  gcc/testsuite/gcc.target/or1k/shftimm-2.c
  e4f9cf3a5432c52f9f1d2ce9020312c4  gcc/testsuite/gcc.target/or1k/sibcall-1.c
! 0f5eac304486dcced353865e5719c18a  gcc/testsuite/gcc.target/pdp11/pdp11.exp
! 0c8183983c697ce3477bebbc537cc9e2  gcc/testsuite/gcc.target/pdp11/pr107841.c
  5e734d4f3084597cb92d1488fd0b9760  gcc/testsuite/gcc.target/pdp11/pr108388.c
  a03b92350a69b724ce16f3b7aa1803d7  gcc/testsuite/gcc.target/powerpc/20020118-1.c
  bb3374c69dde2e7b04fca300c9416620  gcc/testsuite/gcc.target/powerpc/20040121-1.c
*************** c982986bb8e3c1381b39b73a89ceffa6  gcc/te
*** 73896,73902 ****
  185ea70c33583036bd31cdc573947c3a  gcc/testsuite/gcc.target/powerpc/altivec-17.c
  340ead8fcad4b53652916ead19c7fdd0  gcc/testsuite/gcc.target/powerpc/altivec-18.c
  49786113fcbc4891acce995d7b682bd9  gcc/testsuite/gcc.target/powerpc/altivec-19.c
! f0b5028a4b60290bd2ef62d0d73c3980  gcc/testsuite/gcc.target/powerpc/altivec-2-runnable.c
  61ff3467149ed3837c58c54416b2a830  gcc/testsuite/gcc.target/powerpc/altivec-2.c
  a01b4ba9613a62e5269a134ef0141cac  gcc/testsuite/gcc.target/powerpc/altivec-20.c
  3bb8802689d0e131eeb4dc94f557b828  gcc/testsuite/gcc.target/powerpc/altivec-21.c
--- 79435,79441 ----
  185ea70c33583036bd31cdc573947c3a  gcc/testsuite/gcc.target/powerpc/altivec-17.c
  340ead8fcad4b53652916ead19c7fdd0  gcc/testsuite/gcc.target/powerpc/altivec-18.c
  49786113fcbc4891acce995d7b682bd9  gcc/testsuite/gcc.target/powerpc/altivec-19.c
! bfedc8264e553b108c38d913b203384d  gcc/testsuite/gcc.target/powerpc/altivec-2-runnable.c
  61ff3467149ed3837c58c54416b2a830  gcc/testsuite/gcc.target/powerpc/altivec-2.c
  a01b4ba9613a62e5269a134ef0141cac  gcc/testsuite/gcc.target/powerpc/altivec-20.c
  3bb8802689d0e131eeb4dc94f557b828  gcc/testsuite/gcc.target/powerpc/altivec-21.c
*************** ba2853eb8abfe3cb584eba584d6c8a5f  gcc/te
*** 73914,73922 ****
  5611b822073e859e7e9e927415130fd9  gcc/testsuite/gcc.target/powerpc/altivec-32.c
  26c1a163569afe23696923beafdfa120  gcc/testsuite/gcc.target/powerpc/altivec-33.c
  ccdffa66434da57284425d73d80f6992  gcc/testsuite/gcc.target/powerpc/altivec-34.c
! ad6f8207d43a95d54217cbb287044f70  gcc/testsuite/gcc.target/powerpc/altivec-35.c
  3a766e7fcc9f7a590ca459ef72986b86  gcc/testsuite/gcc.target/powerpc/altivec-36.c
! 66c31fa893f530dc02bafd7d01d9051b  gcc/testsuite/gcc.target/powerpc/altivec-37.c
  a007efc316dcfa1327d38adb2feca1d8  gcc/testsuite/gcc.target/powerpc/altivec-4.c
  2586491d3f0993007b6292363a62437c  gcc/testsuite/gcc.target/powerpc/altivec-5.c
  9304d8abe305f6069344f238eecabcc1  gcc/testsuite/gcc.target/powerpc/altivec-6.c
--- 79453,79461 ----
  5611b822073e859e7e9e927415130fd9  gcc/testsuite/gcc.target/powerpc/altivec-32.c
  26c1a163569afe23696923beafdfa120  gcc/testsuite/gcc.target/powerpc/altivec-33.c
  ccdffa66434da57284425d73d80f6992  gcc/testsuite/gcc.target/powerpc/altivec-34.c
! 509e8e216f34e89d6007e3ca495dbeee  gcc/testsuite/gcc.target/powerpc/altivec-35.c
  3a766e7fcc9f7a590ca459ef72986b86  gcc/testsuite/gcc.target/powerpc/altivec-36.c
! 27b1409c92e2aae17462c5880eb9980e  gcc/testsuite/gcc.target/powerpc/altivec-37.c
  a007efc316dcfa1327d38adb2feca1d8  gcc/testsuite/gcc.target/powerpc/altivec-4.c
  2586491d3f0993007b6292363a62437c  gcc/testsuite/gcc.target/powerpc/altivec-5.c
  9304d8abe305f6069344f238eecabcc1  gcc/testsuite/gcc.target/powerpc/altivec-6.c
*************** f12268642caf2b8f80bf48e0b7f5bd87  gcc/te
*** 73949,74080 ****
  c1ad5df368bf78f67f3b4c15cbe1c757  gcc/testsuite/gcc.target/powerpc/altivec-volatile.c
  541dc69590a0abf3cefd6043e9b408fe  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c
  70f3b3f2a0f6da1f6a9709a6730b94e1  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c
! 0b4f96081cd39140c18fddc872f35b06  gcc/testsuite/gcc.target/powerpc/amo1.c
! 7e6b6d1856e46596521e509e0346e697  gcc/testsuite/gcc.target/powerpc/amo2.c
  f92704c5f7f462e7f0b0f7a56209b9c1  gcc/testsuite/gcc.target/powerpc/asm-es-1.c
  ab233b59d18c7aa71a26292124ceae27  gcc/testsuite/gcc.target/powerpc/asm-es-2.c
  f1f6a9ec080c7f1554b538d5701c21e2  gcc/testsuite/gcc.target/powerpc/asm-y.c
  a61d22c62275401f65d76e3818f74bbf  gcc/testsuite/gcc.target/powerpc/atomic-p7.c
! cac82e7d1ff3a6b35a8c31f5b2d34992  gcc/testsuite/gcc.target/powerpc/atomic-p8.c
! 11d186ceefd0bd75eb916fe3dd86fd24  gcc/testsuite/gcc.target/powerpc/atomic_load_store-p8.c
  07065d69128eacb3acf282a9773e8740  gcc/testsuite/gcc.target/powerpc/attr-aligned.c
  f7e7c3525d555350473e6eaeb20a763c  gcc/testsuite/gcc.target/powerpc/avoid-indexed-addresses.c
  d5a3520388a5d684298f2ecede66ab11  gcc/testsuite/gcc.target/powerpc/bcd-1.c
! 3a64fbfa795ceb21229f28888aa88ca4  gcc/testsuite/gcc.target/powerpc/bcd-2.c
! 17645a2fd8d5ba2d2bc6c718c249ccf2  gcc/testsuite/gcc.target/powerpc/bcd-3.c
! fc549969b0a6cd788bf8da347fdb8b8a  gcc/testsuite/gcc.target/powerpc/bcd-4.c
! 328a73a692c963c977f386d831574570  gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
! a9acf66df4a99620b48a370fbf90f1e9  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c
! 6b805ac8ccc140528c05fe8211e24791  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c
! 9edcc760a84627d628e437142f98fe00  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c
  f3194996966558e148459eaa19051680  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-3.c
  e65d59f4230e9c53f54d63868e8239f0  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-4.c
! 009fce5b0a5034bf68e977458b659f2e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c
! 76075ee8f92ddf7867d6c043128a7358  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c
! 9c516a13dfaf5cc3e4485be519d731ff  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c
  e683c8a7971e2663faec07c2adf73a60  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-3.c
  de7e9257dd76fa5ff8b2a725f59c4640  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-4.c
! f210372be003b48b9be26ea5feee3aec  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c
! 6a05818b1fb190bc45fb943aaec50a57  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c
! b0385511815fb25a979cd8ff4de304ef  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c
  6c310aa6c58d8c6938112a1dbb9467d6  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-3.c
  51d470609b66a5e163f94dc06ca31193  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-4.c
! f4eb813d0c1da973bdbaac6dfac0a7d8  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c
! ca21bb9def7990f48987101955bba205  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c
! a21a413c4573e7293cec10e8570e81dc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c
  6760aca75fd126c5043ff61b318f5faf  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-3.c
  a395db7849f7521757d13b7076de3bf4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-4.c
! 88c6d01600050991b6c9470a87d97a42  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-0.c
! b19c643f79afa7045f1c13c06f8bf79b  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-1.c
! 227fb773d7e9ab4b64b8d13a6c67e4c2  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-2.c
! dffafa22f1df544d5e027908706588fa  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-3.c
! 3746290a78c6f678cb2f7d730d0d55eb  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-4.c
! 9b2c130c9f05f587fb0b619f2dbae246  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-5.c
! f01634038355cb537ceea155776e32cc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-6.c
  47d9d99579f3f793b40d85f161d1b909  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-7.c
! d04a82a77cbaac2a88d99b239ec8b19f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-0.c
! b7e741409f5404bb12984bcd938dd8c5  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-1.c
! b7ff2c7b8e9d1aa5b9d377547c13ba6a  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-2.c
! 7c096e51f3cca308670cd81f18e363df  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-3.c
! 170b5bd2187b5b2617cfcc8b9386c2c4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-4.c
! 5c7201adda42fa1fe1592257f3156b38  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-5.c
! fcc0581c65d5d89ec74b7586f206397e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-6.c
  02ba0234cb987da71cba3c0fa7d5e281  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-7.c
! 74ec5cc425112c2d08138803668face6  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-0.c
! 8a27ff48cf2c5dbeaa2772876b5ffe93  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-1.c
! daa4ee7cbab5fbc1e59a3199b03078d1  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-10.c
! d1692a1d94ace4d4bc0c8fe447f186f7  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-11.c
! dbb13c6d061239680d968a118f3136ea  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-12.c
! 0fa8670e32f9248c271e7ae4c38f973b  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-13.c
  0e752a1b501c034b208c1e3d49f06616  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-14.c
  08349a2992fbc7e6aad40d5b73773654  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-15.c
! faf6a0b6248e2e9fdaa9cf468ee23738  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-2.c
! ea53c38e71bb50f3ce00b3349fec4bce  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-3.c
! c3789ea6ee8a22a62a6099095c7d5652  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-4.c
! 01f406bdf147a0ff994171a5ed93c653  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-5.c
! 3b063d1b88ef22302ebeb4f096689af3  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-6.c
! 4f2725559c58fd41224b2ec41e032304  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-7.c
! 2200e993321e0def8816b93756f38527  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-8.c
! 17ae124803b9ac32cc90dd5773954bc8  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-9.c
! e6064234e1ff945f70aea710267ad0fd  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-0.c
! 3aafb56b77b9d6a86fe4f40e1a8aa4d5  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-1.c
! d28ee61836b7ad032f0ca8aac9877f6b  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c
! c1ae2fed6493b53ca839ee1492f670df  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-11.c
  acab18328795beb684d3fb0230912659  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-12.c
  8b151022a0fe9b76fc734fa235c42dd5  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-13.c
  5a55d694383ea42c65a0e734a08fde15  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-14.c
  72332bb8f78bdc43c6f1a8dc5cf11687  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-15.c
! f05f903cb210020b46710f6d136404c1  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c
! 6a54ac165bd51ab56c830f2132c8aa52  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c
! f4c31ce75c2db5935d3bd54b3b434540  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c
! e8fbde64dd69e7b47ded23c559aba5c2  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c
! 6188d4e90f6138c80c8752c022c22001  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-6.c
! 00507faf2ee80a293d6895b158e063f1  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-7.c
! af308b2dda9f4a44a9114ae3fd629f46  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-8.c
! b1bc252405b7f4917852753f4bdc4b13  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c
! 92e395c65ac9d07c36da30c12a277405  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-0.c
! e166645e764091f36de5e380ed9f8bed  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-1.c
! 6972b1387c027b8d834a562241ba336e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-2.c
! 0c7adc27c252bf3b7461611a48f35e5e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-3.c
! f89867d63a217f084e9502e63d906695  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-4.c
! f56af8c646c37c09819af6d713463c1b  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-5.c
  a17c0089fe2acabf4baa27c99b4c3f90  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-6.c
  5af1cb0aa09a5184a2286fbdabe56fcd  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-7.c
  c5a6e3698c21f2484a57892ba8b6b9bc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-8.c
! 5afb3d1b3050df892764184540c0f215  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-0.c
! d75a7d80c777560a61f51a81e5f2df0d  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-1.c
! 350ce82578c5a4bec2b1ad5d1d12b57c  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-2.c
! b78a1b718b2abc981e19d44d63e9760a  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-3.c
  6964326ee586ff73807b31f0836b6a31  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-4.c
  c6f0caa8323885ac25f4591ea0c476b2  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-5.c
! 107eee984897c2c843cff7ad9721bf4f  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-0.c
! b426485a5483b811cf973ad715ca73ee  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-1.c
! 52fcc464aa21a8aac08cf4265e0fcfad  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-2.c
! ff03c576fa8a1dc08ac70278406b9aef  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-3.c
  a7f6df10c58a67ec848748b251fc5a55  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-4.c
  ed135f29b9cf6f4548c4fa15629037c9  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-5.c
! 1fd6d4c785f99d15031b34e1738b2a43  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-0.c
! 8ede99b5c99ebbf927b19638819e8876  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-1.c
  7eb9a104877d676ddb188a8ca2c66ac5  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-10.c
  1277d1d55236a9362f4167b96415f161  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-11.c
! ad9249246d58e9459d2076ef3bd85f70  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-2.c
! f7332b2a1f8a9a553fcad856f6f9a766  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-3.c
! 6ea9fd01ab2acbec1527c363163b7a3c  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-4.c
! 949ec48826d5d03fbbd8cc9362e6ba48  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-5.c
! acd0d658cef74bd78577eeb378d68ffb  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-6.c
! e02475b2eef62c61d2cd3c53a7791a2f  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-7.c
  cdef3cfa6f1fc28b9394eded23882e43  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-8.c
  e91eb5ed9d8099ff6d41f39f157a6d53  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-9.c
! a3a73209a708292ebdf7b4371af6c388  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-0.c
! 21e14b3148fda76d1097bda544c98439  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-1.c
! 323312a08a765b1e6e91b9f465ac1f90  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-2.c
! ac48998d4de3e7355105041a85fb9ff4  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-3.c
! bb4b7ac98b67eb69dfafdba7d0001209  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c
! 88a56a3ea876072be820f4330d504f9a  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c
! d2e524b382b2181ac5438a1200c31c09  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c
! 8a575518d085a37695caa4f3694a712e  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c
  f6ef2287686b07dd4ad99d21b7aabe54  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-8.c
  97cdb1e602cc1725a6ed7cf35b9a5254  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-9.c
  d71e4fffd67fe9a02068065c31f40a8c  gcc/testsuite/gcc.target/powerpc/block-move-1.c
  acce3a59dc7d4ef94160abede8f06c07  gcc/testsuite/gcc.target/powerpc/block-move-2.c
  d8aa673b60fb5339ddbce0e63fdee95e  gcc/testsuite/gcc.target/powerpc/bmi-andn-1.c
--- 79488,79626 ----
  c1ad5df368bf78f67f3b4c15cbe1c757  gcc/testsuite/gcc.target/powerpc/altivec-volatile.c
  541dc69590a0abf3cefd6043e9b408fe  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c
  70f3b3f2a0f6da1f6a9709a6730b94e1  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c
! 78b43fbb636e2c4e1261932aa23bd93b  gcc/testsuite/gcc.target/powerpc/amo1.c
! 0c6ecf2966a9aa40a6bc3399dd2d04ce  gcc/testsuite/gcc.target/powerpc/amo2.c
  f92704c5f7f462e7f0b0f7a56209b9c1  gcc/testsuite/gcc.target/powerpc/asm-es-1.c
  ab233b59d18c7aa71a26292124ceae27  gcc/testsuite/gcc.target/powerpc/asm-es-2.c
  f1f6a9ec080c7f1554b538d5701c21e2  gcc/testsuite/gcc.target/powerpc/asm-y.c
  a61d22c62275401f65d76e3818f74bbf  gcc/testsuite/gcc.target/powerpc/atomic-p7.c
! 3f86f30f7ffe0f4035628d8050eb6765  gcc/testsuite/gcc.target/powerpc/atomic-p8.c
! fb94226f27cdbd518c3f6b173ae323b5  gcc/testsuite/gcc.target/powerpc/atomic_load_store-p8.c
  07065d69128eacb3acf282a9773e8740  gcc/testsuite/gcc.target/powerpc/attr-aligned.c
  f7e7c3525d555350473e6eaeb20a763c  gcc/testsuite/gcc.target/powerpc/avoid-indexed-addresses.c
  d5a3520388a5d684298f2ecede66ab11  gcc/testsuite/gcc.target/powerpc/bcd-1.c
! 663ffe280faaaa15a1bf0e4ceea66882  gcc/testsuite/gcc.target/powerpc/bcd-2.c
! ad416b1bc3631ec113317ff4797e7b68  gcc/testsuite/gcc.target/powerpc/bcd-3.c
! e9c15b11a9e28ae240ca11139e5a1d35  gcc/testsuite/gcc.target/powerpc/bcd-4.c
! e42b37391357b061ee449151cc226195  gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
! 4d4ea850794ecc2bff358e435c922017  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c
! d8b41e13e15f7760822334a68a919e03  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c
! f88d7e82401d466c084c77030abefd1f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c
  f3194996966558e148459eaa19051680  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-3.c
  e65d59f4230e9c53f54d63868e8239f0  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-4.c
! 8c73f6a6854b1f18893d2d71b60a0c53  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c
! f115c23658b84e22dc0275e87f40677d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c
! 5afd13872ecb4be4a505674fe5fb3edf  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c
  e683c8a7971e2663faec07c2adf73a60  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-3.c
  de7e9257dd76fa5ff8b2a725f59c4640  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-gt-4.c
! f66cd0179a470c6eaa6c28c349c89e39  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c
! a7e4aa5ade4ce564c2e2bb7c671d18f8  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c
! 92cd430f17adc5a13001e8bc985fdffc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c
  6c310aa6c58d8c6938112a1dbb9467d6  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-3.c
  51d470609b66a5e163f94dc06ca31193  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-lt-4.c
! a4cf7bab083771b0485b3395857b713d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c
! 110d1bd18122b11f61e77e94001d99f2  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c
! ac96b620ebf91488c0be68809cdb7867  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c
  6760aca75fd126c5043ff61b318f5faf  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-3.c
  a395db7849f7521757d13b7076de3bf4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-4.c
! af22569af5f27eaa2951993ffebfba38  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-0.c
! aab03e2c61d64183d574dba36b64cd73  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-1.c
! e20a8cbbfedb0b2128556dcc2852e3de  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-3.c
! 935e685c189249517f674b77c05ebd73  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-4.c
! 29e9c62cd33543f6b55de619478c8994  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-5.c
! b1d87b31aec755b7f34c69f34d40a60c  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-6.c
  47d9d99579f3f793b40d85f161d1b909  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-7.c
! 97a04a40b19de84e23a7d0d6a9e2ac53  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-exp-8.c
! 2778f9626d925e7e0180e0502d2fb07f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-0.c
! 978e0e8ef05f985c62ef9c4daba0777e  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-1.c
! 3349df171c9d493ecb7cce98df029a43  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-2.c
! 0db685c4301f82439bda6c7d80908e2d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-3.c
! 1af5750016beab55a2ed9d94f2b528e0  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-4.c
! c1d175b2c420f58c32b99129a1a33121  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-5.c
! e169ab406b7b001eadf4f6c765083374  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-6.c
  02ba0234cb987da71cba3c0fa7d5e281  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-7.c
! 40fe593d2d553dfc3564539eb712eb27  gcc/testsuite/gcc.target/powerpc/bfp/scalar-extract-sig-8.c
! e7e61b8b3c42bb083b4f912dfc7f03a1  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-0.c
! 3ea26b9cbbee12550414bcfcd66bdfc3  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-1.c
! 858bacb179d37b0d03fad286adb3fa8a  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-10.c
! e24eb3ee98f145f4e3497d543b541274  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-11.c
! 90af6fac9ab61445c743aa08fdbd43e7  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-12.c
! 081926bbfdea1e7084a2f0f2e7d445be  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-13.c
  0e752a1b501c034b208c1e3d49f06616  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-14.c
  08349a2992fbc7e6aad40d5b73773654  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-15.c
! 3138d49030f5334565730a6e1c7d6014  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
! 7f2cb2bd5de57370c820bc77aee1eb1d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-2.c
! 25c7ded73efcdb0d5c1f9753af409911  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-3.c
! 25ce42d7c54491e79b717d381ea20673  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-4.c
! 14b2e87d55aadf3cb7fa5b5a7cb027ee  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-5.c
! 58a25f629026a64fc687a827ef0321d2  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-6.c
! cb86398a6b0a1d62eaae39a24709124c  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-7.c
! a02217293da92756277ce4cb554e7986  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-8.c
! 0cdffe36064c676de8d7bb237a28c557  gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-9.c
! 2ef8a47084e3cb9cd6fbf708fb3e594d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-0.c
! b76bb5f4a3e12db749a6eb9f341fd292  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-1.c
! a83ed27c4d38c883111a238df02140b8  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-10.c
! 6a01a023d4c30c8c13b39f9449e125a4  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-11.c
  acab18328795beb684d3fb0230912659  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-12.c
  8b151022a0fe9b76fc734fa235c42dd5  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-13.c
  5a55d694383ea42c65a0e734a08fde15  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-14.c
  72332bb8f78bdc43c6f1a8dc5cf11687  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-15.c
! 5cd8f1c4652747917c65f4e02bb01a07  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-2.c
! fb6a3af1a9e9b444930077025bf38b1d  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-3.c
! 26f24d4e01845ed4877d88a65b6ace69  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-4.c
! d370bfa1f33a010bba8fc5acec886cc1  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-5.c
! 3114deb43e7a0c2b7e20d15a7bcc0140  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-6.c
! da9d8e3fd34dca1885229b453d21a059  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-7.c
! 17f5e310580392fa96c7bfb381875bc3  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-8.c
! 27b759ecb11615f735c94db2f9d2ac0b  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-data-class-9.c
! a846dbe3d7330ed034d44422793d81ec  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-0.c
! 5025c303ae60364ab443a463a022addc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-1.c
! 4edde884fbe3303e62496cc6f250bd49  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-2.c
! 3440c84f3906024c4c5186714529b34f  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-3.c
! 9f3b009cdddd8a426cc5b05bd96b0e95  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-4.c
! 562ab540eb628ab21eae00da3ceb6432  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-5.c
  a17c0089fe2acabf4baa27c99b4c3f90  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-6.c
  5af1cb0aa09a5184a2286fbdabe56fcd  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-7.c
  c5a6e3698c21f2484a57892ba8b6b9bc  gcc/testsuite/gcc.target/powerpc/bfp/scalar-test-neg-8.c
! fb91b3b340af7b0ec96044a26eeeec2a  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-0.c
! 8342f493b61229b28a7bbee99b694e3c  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-1.c
! 4c7bb9fd3765d5e15d6fcce82f21c70b  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-2.c
! 47e98d12cf9aefb39f03cf69c58f4b93  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-3.c
  6964326ee586ff73807b31f0836b6a31  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-4.c
  c6f0caa8323885ac25f4591ea0c476b2  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-exp-5.c
! 6a3d14e0e85bae829e4c3a3e0f7ae1e7  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-0.c
! 3d863d86fc7bf494461ec9c996b99ca3  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-1.c
! ed0592bc039c782881f4c79e86995039  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-2.c
! 6370d2be0119ef252cf0ffa5279cde5a  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-3.c
  a7f6df10c58a67ec848748b251fc5a55  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-4.c
  ed135f29b9cf6f4548c4fa15629037c9  gcc/testsuite/gcc.target/powerpc/bfp/vec-extract-sig-5.c
! 9c519c8736d5e25986e38a1a19143667  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-0.c
! e361a079171f4d86b221dcd2b94e4c21  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-1.c
  7eb9a104877d676ddb188a8ca2c66ac5  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-10.c
  1277d1d55236a9362f4167b96415f161  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-11.c
! 7435eb2a74834134693342fb8678632d  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-2.c
! f14d42509752e0f1ba3929fb9866bde7  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-3.c
! e51240c3fd6dfde0145ba26289f36c21  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-4.c
! 117d7bf274442357b26eaca0a4283a75  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-5.c
! 6105665385308d3591fc7409fae4f10e  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-6.c
! 4987d4d0efbde309b9b358b3b93ed892  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-7.c
  cdef3cfa6f1fc28b9394eded23882e43  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-8.c
  e91eb5ed9d8099ff6d41f39f157a6d53  gcc/testsuite/gcc.target/powerpc/bfp/vec-insert-exp-9.c
! 039feca9192eb2d375cac1ae71a19e16  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-0.c
! 310e03cb1f1975b9c9a4b7804f6ce93d  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-1.c
! c579d072dfb724687f01f4381faa9168  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-2.c
! d414d95b9a1ae278635ff37b90562d45  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-3.c
! c2c685a9599ea64b9ddfebde78f249a1  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-4.c
! b5df8247364220dbad02fbed385b59d1  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-5.c
! c75e1561e8e8d2989166d3dd12728816  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-6.c
! c2545479d8426b90a36addecfee41ccf  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-7.c
  f6ef2287686b07dd4ad99d21b7aabe54  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-8.c
  97cdb1e602cc1725a6ed7cf35b9a5254  gcc/testsuite/gcc.target/powerpc/bfp/vec-test-data-class-9.c
+ cb18f5be95ab3fbf67fc1c5e4ef5ba2b  gcc/testsuite/gcc.target/powerpc/block-cmp-1.c
+ 13d1d93ef325676e26cb149464158713  gcc/testsuite/gcc.target/powerpc/block-cmp-2.c
+ c46592d7ef2d4d65a6e7d37781eb6aa8  gcc/testsuite/gcc.target/powerpc/block-cmp-3.c
+ 27f0261afae3e1d9a6470641dcf8cf23  gcc/testsuite/gcc.target/powerpc/block-cmp-4.c
+ 47ac68f4cf1fb91de16644ace1749dd7  gcc/testsuite/gcc.target/powerpc/block-cmp-8.c
  d71e4fffd67fe9a02068065c31f40a8c  gcc/testsuite/gcc.target/powerpc/block-move-1.c
  acce3a59dc7d4ef94160abede8f06c07  gcc/testsuite/gcc.target/powerpc/block-move-2.c
  d8aa673b60fb5339ddbce0e63fdee95e  gcc/testsuite/gcc.target/powerpc/bmi-andn-1.c
*************** d57d37595aa7af4c7c5933b2b1729426  gcc/te
*** 74109,74119 ****
  5521289284db49315d6d88073191998f  gcc/testsuite/gcc.target/powerpc/bool2-av.c
  b6fda7c87285b3acb89db046fdcdfc99  gcc/testsuite/gcc.target/powerpc/bool2-p5.c
  7c74c0481903fa596fda2347746f680e  gcc/testsuite/gcc.target/powerpc/bool2-p7.c
! 2cb9691af45c85317aa9555a6efc262f  gcc/testsuite/gcc.target/powerpc/bool2-p8.c
  c9f98da2825e699344ef8948cd8d19fa  gcc/testsuite/gcc.target/powerpc/bool2.h
  37bd9c01fed3fee4028301f75be4af36  gcc/testsuite/gcc.target/powerpc/bool3-av.c
  08a9ed953f979a242c144dc324a10243  gcc/testsuite/gcc.target/powerpc/bool3-p7.c
! d98190bc7003de5846e7f794a9f2b8ab  gcc/testsuite/gcc.target/powerpc/bool3-p8.c
  438f4e658462567e81a685ced3c5a415  gcc/testsuite/gcc.target/powerpc/bool3.h
  3493bdc771b9bce44627e8e680b7ec82  gcc/testsuite/gcc.target/powerpc/bswap-brd.c
  13eb8866848667a4deb9edc6aa321b7a  gcc/testsuite/gcc.target/powerpc/bswap-brh.c
--- 79655,79665 ----
  5521289284db49315d6d88073191998f  gcc/testsuite/gcc.target/powerpc/bool2-av.c
  b6fda7c87285b3acb89db046fdcdfc99  gcc/testsuite/gcc.target/powerpc/bool2-p5.c
  7c74c0481903fa596fda2347746f680e  gcc/testsuite/gcc.target/powerpc/bool2-p7.c
! 24b4435c955211e51ffa8fc193c12035  gcc/testsuite/gcc.target/powerpc/bool2-p8.c
  c9f98da2825e699344ef8948cd8d19fa  gcc/testsuite/gcc.target/powerpc/bool2.h
  37bd9c01fed3fee4028301f75be4af36  gcc/testsuite/gcc.target/powerpc/bool3-av.c
  08a9ed953f979a242c144dc324a10243  gcc/testsuite/gcc.target/powerpc/bool3-p7.c
! 358686fb2ca0a8c3aff1cc3d05902701  gcc/testsuite/gcc.target/powerpc/bool3-p8.c
  438f4e658462567e81a685ced3c5a415  gcc/testsuite/gcc.target/powerpc/bool3.h
  3493bdc771b9bce44627e8e680b7ec82  gcc/testsuite/gcc.target/powerpc/bswap-brd.c
  13eb8866848667a4deb9edc6aa321b7a  gcc/testsuite/gcc.target/powerpc/bswap-brh.c
*************** f1ea877f35ca466bb967858a715d4f6c  gcc/te
*** 74129,74172 ****
  c02928696f09c7fc9c99174083ecb49c  gcc/testsuite/gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-2.c
  04b3fc34bfccb1856530015004e53b0f  gcc/testsuite/gcc.target/powerpc/builtin-fegetround.c
  660ec5b28bd11c4d01e9d4d45e4670fa  gcc/testsuite/gcc.target/powerpc/builtin-vec-sums-be-int.c
  a8f9adaf01b9c4605ccf3a2b91395d9a  gcc/testsuite/gcc.target/powerpc/builtins-1-be-folded.c
  d7a191d70b9b9996b4b19f79964cf6c2  gcc/testsuite/gcc.target/powerpc/builtins-1-le-folded.c
  3630b13056a134afac9072861304e1b7  gcc/testsuite/gcc.target/powerpc/builtins-1-p10-runnable.c
  f2df3bae9f5a0120e073ffd853edc95d  gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c
! b2a3592bc01a8390ab0bcd360e5bfb80  gcc/testsuite/gcc.target/powerpc/builtins-1.c
  ec989a2f75efdf3d6a18fdd8ae6ce35b  gcc/testsuite/gcc.target/powerpc/builtins-1.fold.h
  8e9c179d065241f1abc6396d9fe644c2  gcc/testsuite/gcc.target/powerpc/builtins-2-p9-runnable.c
  bf30b9cab89c9a31f84d84c53b7aa123  gcc/testsuite/gcc.target/powerpc/builtins-2.c
! dc2d3d2859a886302c3ee70084f25059  gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c
  581afa4a87a76c03caa4cc92c55a9420  gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c
! 204a856da08501aa36827805addf36ca  gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c
  927bf2bb212f0a33b741d6509c20af1d  gcc/testsuite/gcc.target/powerpc/builtins-3-runnable-p8.c
  231b1a0d50ab0005d6a65185953e6dfd  gcc/testsuite/gcc.target/powerpc/builtins-3-runnable.c
  1ec414bf03c468f718d4248fa34a641b  gcc/testsuite/gcc.target/powerpc/builtins-3-vec_reve-runnable.c
  55acc231850fbe80b15baa3b9e4205d1  gcc/testsuite/gcc.target/powerpc/builtins-3.c
! 8a1bb8ec52829a6ea7f9ee07a431c165  gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c
  50bb9ae2f77e2ee92fa420b15a5d1d93  gcc/testsuite/gcc.target/powerpc/builtins-4-p9-runnable.c
  229b92af5d708ec95906efd39c078624  gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c
  a434ec9b73b5bda40b0236364298edbc  gcc/testsuite/gcc.target/powerpc/builtins-4.c
  e08baaf9a0d1b4c5378da7deab293215  gcc/testsuite/gcc.target/powerpc/builtins-5-p9-runnable.c
! 46cecca879d095c0c788ca55bc6241ef  gcc/testsuite/gcc.target/powerpc/builtins-5.c
! d6c50bef137b8bc795dc8da8475e7d72  gcc/testsuite/gcc.target/powerpc/builtins-6-p9-runnable.c
  54e75f8afa24099030187760b9579828  gcc/testsuite/gcc.target/powerpc/builtins-6-runnable.c
  ad36609570d36fac7a261cbe1422b2b9  gcc/testsuite/gcc.target/powerpc/builtins-7-p9-runnable.c
  5021f1b431e5d7e29a6077f0c5f07696  gcc/testsuite/gcc.target/powerpc/builtins-7-runnable.c
  ee1c5ac94e903887037c05d6567c3761  gcc/testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c
  558e4a865d747855d622b4c1a83f0141  gcc/testsuite/gcc.target/powerpc/builtins-8-runnable.c
! 2add1ae4a68a813b6bf3da8f6d2c12b4  gcc/testsuite/gcc.target/powerpc/builtins-9.c
! 6a0869294a2f975212e388f211524c2a  gcc/testsuite/gcc.target/powerpc/builtins-mergew-mergow.c
  8511dc5404e834d17307b5bf949c9856  gcc/testsuite/gcc.target/powerpc/builtins-msum-runnable.c
  09b5267e3ea7f6dcce98a91fe0dc43eb  gcc/testsuite/gcc.target/powerpc/builtins-revb-runnable.c
! 0d677809adae77450d80e5fbb9654ba9  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-0.c
! c557254ecf58aa4d6f3d4bdb298275db  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-1.c
! 3b946853253b1119012209568dcb1505  gcc/testsuite/gcc.target/powerpc/byte-in-range-0.c
! 7ac736aea6ce95600f3a9f361777f41f  gcc/testsuite/gcc.target/powerpc/byte-in-range-1.c
! 58649744a331577784ece84c2d89a6b3  gcc/testsuite/gcc.target/powerpc/byte-in-set-0.c
! 595315abe517e7640f312c098a95a84e  gcc/testsuite/gcc.target/powerpc/byte-in-set-1.c
! ccab226ed6b1c2e5cad1abda23c992c7  gcc/testsuite/gcc.target/powerpc/byte-in-set-2.c
  aa3a328249d1b5d2e5d886843c65f69f  gcc/testsuite/gcc.target/powerpc/cbranchcc4-1.c
  774f769c6ea974794be75428470b27d3  gcc/testsuite/gcc.target/powerpc/cbranchcc4-2.c
  2967ae37e85e61aa7e2d5198922374ad  gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c
--- 79675,79719 ----
  c02928696f09c7fc9c99174083ecb49c  gcc/testsuite/gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-2.c
  04b3fc34bfccb1856530015004e53b0f  gcc/testsuite/gcc.target/powerpc/builtin-fegetround.c
  660ec5b28bd11c4d01e9d4d45e4670fa  gcc/testsuite/gcc.target/powerpc/builtin-vec-sums-be-int.c
+ ac5fc8abef0ee25e3006e84d9ec6e994  gcc/testsuite/gcc.target/powerpc/builtin_altivec_tr_stxvr_runnable.c
  a8f9adaf01b9c4605ccf3a2b91395d9a  gcc/testsuite/gcc.target/powerpc/builtins-1-be-folded.c
  d7a191d70b9b9996b4b19f79964cf6c2  gcc/testsuite/gcc.target/powerpc/builtins-1-le-folded.c
  3630b13056a134afac9072861304e1b7  gcc/testsuite/gcc.target/powerpc/builtins-1-p10-runnable.c
  f2df3bae9f5a0120e073ffd853edc95d  gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c
! 567fac0020932c494ce7231e1a6fa753  gcc/testsuite/gcc.target/powerpc/builtins-1.c
  ec989a2f75efdf3d6a18fdd8ae6ce35b  gcc/testsuite/gcc.target/powerpc/builtins-1.fold.h
  8e9c179d065241f1abc6396d9fe644c2  gcc/testsuite/gcc.target/powerpc/builtins-2-p9-runnable.c
  bf30b9cab89c9a31f84d84c53b7aa123  gcc/testsuite/gcc.target/powerpc/builtins-2.c
! c7fccd1b5e3e47f166234c4ebb4e1aba  gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c
  581afa4a87a76c03caa4cc92c55a9420  gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c
! 6f36bc313b48f6d434d3dd9911156529  gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c
  927bf2bb212f0a33b741d6509c20af1d  gcc/testsuite/gcc.target/powerpc/builtins-3-runnable-p8.c
  231b1a0d50ab0005d6a65185953e6dfd  gcc/testsuite/gcc.target/powerpc/builtins-3-runnable.c
  1ec414bf03c468f718d4248fa34a641b  gcc/testsuite/gcc.target/powerpc/builtins-3-vec_reve-runnable.c
  55acc231850fbe80b15baa3b9e4205d1  gcc/testsuite/gcc.target/powerpc/builtins-3.c
! 1b45aa4900862d1e703b0ee0c5c8fa40  gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c
  50bb9ae2f77e2ee92fa420b15a5d1d93  gcc/testsuite/gcc.target/powerpc/builtins-4-p9-runnable.c
  229b92af5d708ec95906efd39c078624  gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c
  a434ec9b73b5bda40b0236364298edbc  gcc/testsuite/gcc.target/powerpc/builtins-4.c
  e08baaf9a0d1b4c5378da7deab293215  gcc/testsuite/gcc.target/powerpc/builtins-5-p9-runnable.c
! 8ba385e81739e130af3d29ca0ce3a9e7  gcc/testsuite/gcc.target/powerpc/builtins-5.c
! 5a48cbd99499adcd022b6f0c41fc8e4e  gcc/testsuite/gcc.target/powerpc/builtins-6-p9-runnable.c
  54e75f8afa24099030187760b9579828  gcc/testsuite/gcc.target/powerpc/builtins-6-runnable.c
  ad36609570d36fac7a261cbe1422b2b9  gcc/testsuite/gcc.target/powerpc/builtins-7-p9-runnable.c
  5021f1b431e5d7e29a6077f0c5f07696  gcc/testsuite/gcc.target/powerpc/builtins-7-runnable.c
  ee1c5ac94e903887037c05d6567c3761  gcc/testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c
  558e4a865d747855d622b4c1a83f0141  gcc/testsuite/gcc.target/powerpc/builtins-8-runnable.c
! 6044ddb4404ef7b1e8bf981bc829f641  gcc/testsuite/gcc.target/powerpc/builtins-9.c
! 5bd27ee26d7080d08867022b9d47373f  gcc/testsuite/gcc.target/powerpc/builtins-mergew-mergow.c
  8511dc5404e834d17307b5bf949c9856  gcc/testsuite/gcc.target/powerpc/builtins-msum-runnable.c
  09b5267e3ea7f6dcce98a91fe0dc43eb  gcc/testsuite/gcc.target/powerpc/builtins-revb-runnable.c
! 81a88232f1bb777faccbb3f973654c2c  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-0.c
! 73036f9eed1ffda742ae98d81459fd76  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-1.c
! 77ba5c869b6fc65d6cd660491e3194dd  gcc/testsuite/gcc.target/powerpc/byte-in-range-0.c
! db937991eee90b6475f9518293357f7b  gcc/testsuite/gcc.target/powerpc/byte-in-range-1.c
! 17ccf0af06b885642b05801359402dfd  gcc/testsuite/gcc.target/powerpc/byte-in-set-0.c
! a429f6f4dd5a28059fd7c953729730ac  gcc/testsuite/gcc.target/powerpc/byte-in-set-1.c
! 07a9c33e18e1b67483f738cdebb5f7c0  gcc/testsuite/gcc.target/powerpc/byte-in-set-2.c
  aa3a328249d1b5d2e5d886843c65f69f  gcc/testsuite/gcc.target/powerpc/cbranchcc4-1.c
  774f769c6ea974794be75428470b27d3  gcc/testsuite/gcc.target/powerpc/cbranchcc4-2.c
  2967ae37e85e61aa7e2d5198922374ad  gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c
*************** bceca9004faa6729357ac4757f81b563  gcc/te
*** 74180,74188 ****
  2b0169ca798a1ab2ef548ccc6466fa75  gcc/testsuite/gcc.target/powerpc/cfuged-0.c
  3f04d51f3229d580c7e3475221fac283  gcc/testsuite/gcc.target/powerpc/cfuged-1.c
  4c1e1ec241d7a8a123436d0d1e5ad8e9  gcc/testsuite/gcc.target/powerpc/check-builtin-vec_rlnm-runnable.c
! 88a65f2c70356d30873b9e3fbf14bd02  gcc/testsuite/gcc.target/powerpc/clone1.c
! b8e6c9f8968f2606ab8c45e4bae3d807  gcc/testsuite/gcc.target/powerpc/clone2.c
! 3f03cede40acb0331345348ac7486253  gcc/testsuite/gcc.target/powerpc/clone3.c
  df3bb7789b2e14f68bc9eb0b7af53cea  gcc/testsuite/gcc.target/powerpc/cmpb-1.c
  a31afc98fa8da142eae0a79235d01462  gcc/testsuite/gcc.target/powerpc/cmpb-2.c
  46f5ec685c2730e6e034d52190e348d3  gcc/testsuite/gcc.target/powerpc/cmpb-3.c
--- 79727,79735 ----
  2b0169ca798a1ab2ef548ccc6466fa75  gcc/testsuite/gcc.target/powerpc/cfuged-0.c
  3f04d51f3229d580c7e3475221fac283  gcc/testsuite/gcc.target/powerpc/cfuged-1.c
  4c1e1ec241d7a8a123436d0d1e5ad8e9  gcc/testsuite/gcc.target/powerpc/check-builtin-vec_rlnm-runnable.c
! 025b256fabe3f2406b3aa15094e43a62  gcc/testsuite/gcc.target/powerpc/clone1.c
! 485e13cbde92ce4b0320c293640c5c15  gcc/testsuite/gcc.target/powerpc/clone2.c
! 53805374917dfb0695aa66ad55f2cc0a  gcc/testsuite/gcc.target/powerpc/clone3.c
  df3bb7789b2e14f68bc9eb0b7af53cea  gcc/testsuite/gcc.target/powerpc/cmpb-1.c
  a31afc98fa8da142eae0a79235d01462  gcc/testsuite/gcc.target/powerpc/cmpb-2.c
  46f5ec685c2730e6e034d52190e348d3  gcc/testsuite/gcc.target/powerpc/cmpb-3.c
*************** a31afc98fa8da142eae0a79235d01462  gcc/te
*** 74195,74202 ****
  f2eb2bc74f81b523e009fd067f9f627d  gcc/testsuite/gcc.target/powerpc/combine-2-2.c
  cc20d8ebb0dff3b95b56685f2cf4ba50  gcc/testsuite/gcc.target/powerpc/compress-float-ppc-pic.c
  27dc5d563118e818ee9c359c5906e1c4  gcc/testsuite/gcc.target/powerpc/compress-float-ppc.c
! 416032da5b592cc90008b1b2f2bbc3c7  gcc/testsuite/gcc.target/powerpc/conditional-return.c
  6419d1aaea22c0476688f484ac4f0f43  gcc/testsuite/gcc.target/powerpc/const-compare.c
  ea2791615781e50d93e59e8389958d7d  gcc/testsuite/gcc.target/powerpc/conv-vectorize-1.c
  d6eb67727149d6d42efabf2f7d82dfd1  gcc/testsuite/gcc.target/powerpc/conv-vectorize-2.c
  4e36c5466e14328dd78f0c7711495fb1  gcc/testsuite/gcc.target/powerpc/convert-fp-128.c
--- 79742,79752 ----
  f2eb2bc74f81b523e009fd067f9f627d  gcc/testsuite/gcc.target/powerpc/combine-2-2.c
  cc20d8ebb0dff3b95b56685f2cf4ba50  gcc/testsuite/gcc.target/powerpc/compress-float-ppc-pic.c
  27dc5d563118e818ee9c359c5906e1c4  gcc/testsuite/gcc.target/powerpc/compress-float-ppc.c
! a1836ccfd40cc14a0498756317475eb7  gcc/testsuite/gcc.target/powerpc/conditional-return.c
! 107137a590478f6e6a0b47a41eea7605  gcc/testsuite/gcc.target/powerpc/const-build-1.c
! dfdf0dc5bc48d63f07b8c4f420fb70ad  gcc/testsuite/gcc.target/powerpc/const-build.c
  6419d1aaea22c0476688f484ac4f0f43  gcc/testsuite/gcc.target/powerpc/const-compare.c
+ 68049b5e91f7fd0a54cfca006fd77841  gcc/testsuite/gcc.target/powerpc/const_anchors.c
  ea2791615781e50d93e59e8389958d7d  gcc/testsuite/gcc.target/powerpc/conv-vectorize-1.c
  d6eb67727149d6d42efabf2f7d82dfd1  gcc/testsuite/gcc.target/powerpc/conv-vectorize-2.c
  4e36c5466e14328dd78f0c7711495fb1  gcc/testsuite/gcc.target/powerpc/convert-fp-128.c
*************** d6eb67727149d6d42efabf2f7d82dfd1  gcc/te
*** 74206,74220 ****
  9c8ad70539244dbdecc43664cc03e7d5  gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c
  1f6e5c800809283a311bbea2c2e28f46  gcc/testsuite/gcc.target/powerpc/cpu-future.c
  81b6f286dd2f5fda45d87e46682a7d3a  gcc/testsuite/gcc.target/powerpc/cr_shrink-wrap.c
! 9ec5a71503700f842b2d68337529fc06  gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c
! a0bda8ba97dfdcb84a014df7f85f7194  gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
  a3b487e53959665b5ecb0d7ba6138585  gcc/testsuite/gcc.target/powerpc/ctz-1.c
  71b4f483951bb34e21b95b1e7b4a3801  gcc/testsuite/gcc.target/powerpc/ctz-2.c
! 12afc733a9f58f420e3066fa01c0c969  gcc/testsuite/gcc.target/powerpc/ctz-3.c
! 044d4d9143ef24136f34cfd9b9ca8536  gcc/testsuite/gcc.target/powerpc/ctz-4.c
! 0d8949d9e877f10f059ea10f3089b6f8  gcc/testsuite/gcc.target/powerpc/darn-0.c
! fe23137ae052519c7048642ea9fcef97  gcc/testsuite/gcc.target/powerpc/darn-1.c
! 19d98529530fd6519134a06754fbc348  gcc/testsuite/gcc.target/powerpc/darn-2.c
  49f7be188d4e8d81852e8a7ff4bd6422  gcc/testsuite/gcc.target/powerpc/darn-3.c
  965986b227062a2b8c664c916a71ad45  gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c
  9a0e4836781f28669ddca26eb214c2b2  gcc/testsuite/gcc.target/powerpc/darwin-abi-10.c
--- 79756,79770 ----
  9c8ad70539244dbdecc43664cc03e7d5  gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c
  1f6e5c800809283a311bbea2c2e28f46  gcc/testsuite/gcc.target/powerpc/cpu-future.c
  81b6f286dd2f5fda45d87e46682a7d3a  gcc/testsuite/gcc.target/powerpc/cr_shrink-wrap.c
! 2f386e483983ec1f81caba67bbcd4222  gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c
! b12e38f63d9b5685393424078099b7d1  gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
  a3b487e53959665b5ecb0d7ba6138585  gcc/testsuite/gcc.target/powerpc/ctz-1.c
  71b4f483951bb34e21b95b1e7b4a3801  gcc/testsuite/gcc.target/powerpc/ctz-2.c
! 524ca8fc9ad615df92fa761c26aef7e0  gcc/testsuite/gcc.target/powerpc/ctz-3.c
! 91af518552dec54a9bfdbfdda4ae2201  gcc/testsuite/gcc.target/powerpc/ctz-4.c
! 52284f8e57f19953bf7d0ce3182cb945  gcc/testsuite/gcc.target/powerpc/darn-0.c
! 070c5332e8c4a0025bce8637b3d636b3  gcc/testsuite/gcc.target/powerpc/darn-1.c
! be1540ec3ec5448345c27821eb88df94  gcc/testsuite/gcc.target/powerpc/darn-2.c
  49f7be188d4e8d81852e8a7ff4bd6422  gcc/testsuite/gcc.target/powerpc/darn-3.c
  965986b227062a2b8c664c916a71ad45  gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c
  9a0e4836781f28669ddca26eb214c2b2  gcc/testsuite/gcc.target/powerpc/darwin-abi-10.c
*************** a034d7a8bf265623a75800f01113e836  gcc/te
*** 74242,74250 ****
  c45226a99273c8755ce33ff73f22d3b3  gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h
  548fc585bcbf766f23bef7319f0b0a18  gcc/testsuite/gcc.target/powerpc/darwin64-abi.c
  5df8870892f8ad5f8ea3060c6c5b82b1  gcc/testsuite/gcc.target/powerpc/dfmode_off.c
! 030fee52bc4732793404bc93dfb61c48  gcc/testsuite/gcc.target/powerpc/dform-1.c
! 5896373222b7dff5f22997f2456a5ff8  gcc/testsuite/gcc.target/powerpc/dform-2.c
! 4dd3f71a457a50fc5e9225fc5b49f066  gcc/testsuite/gcc.target/powerpc/dform-3.c
  1b0ed9e1fb7627938798531b5360281f  gcc/testsuite/gcc.target/powerpc/dfp-builtin-1.c
  ce1f3ad7eb43ff7d5709418e9886c843  gcc/testsuite/gcc.target/powerpc/dfp-builtin-2.c
  8358905c287a7c0503579941926785d6  gcc/testsuite/gcc.target/powerpc/dfp-dd-2.c
--- 79792,79800 ----
  c45226a99273c8755ce33ff73f22d3b3  gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h
  548fc585bcbf766f23bef7319f0b0a18  gcc/testsuite/gcc.target/powerpc/darwin64-abi.c
  5df8870892f8ad5f8ea3060c6c5b82b1  gcc/testsuite/gcc.target/powerpc/dfmode_off.c
! cb2749d9ea03814ff405990430df4da5  gcc/testsuite/gcc.target/powerpc/dform-1.c
! 95b28b5eb267a06ba28e7cd923d0e857  gcc/testsuite/gcc.target/powerpc/dform-2.c
! 6b3ea99497346148fbd68e060ce27424  gcc/testsuite/gcc.target/powerpc/dform-3.c
  1b0ed9e1fb7627938798531b5360281f  gcc/testsuite/gcc.target/powerpc/dfp-builtin-1.c
  ce1f3ad7eb43ff7d5709418e9886c843  gcc/testsuite/gcc.target/powerpc/dfp-builtin-2.c
  8358905c287a7c0503579941926785d6  gcc/testsuite/gcc.target/powerpc/dfp-dd-2.c
*************** ce1f3ad7eb43ff7d5709418e9886c843  gcc/te
*** 74252,74350 ****
  70d51abf2988870d80cb9cc5e753c87b  gcc/testsuite/gcc.target/powerpc/dfp-td-2.c
  28bb384f8efa10801efa64c838eab4e2  gcc/testsuite/gcc.target/powerpc/dfp-td-3.c
  20555599c7a199625c2d8d95f50de5e9  gcc/testsuite/gcc.target/powerpc/dfp-td.c
! fe40ce44c356a7f5ce67d2aefb86efd3  gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
! 87e54b934c02cfbc3b6fb142c76e4e04  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-0.c
! eeaa0257c75044dd988a2b10bddeea7c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-1.c
! cf4bee8bc84345204e6621398ea24cc3  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-10.c
! b09fef29f4fe2deacf330ed66879db00  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-11.c
! 60366bdd1fabaa18efb9eca44182857c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c
! 06d89f4b19dcc4eb8b2a45693f874b96  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-13.c
! 8742a29b8b148ca4549f602d841ff711  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c
! 896249f62148197fb02e3253b95f5b6c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-15.c
! a0eaf14e0589c416534d568bbf1ac099  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-16.c
! 995d6ad817f8b8dc4aea80efb9a0fdb2  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c
! 561342c40824e36b5066026827e45db6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-18.c
! e9456ac4ece3396d8d4cdca84ad77eff  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c
! df2ea7bc3018bdccdb121fe9a2baf10b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c
! 287cc6102c97a9d3550943dcd5724153  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-20.c
! e1e59e6925bfe358e24609d95fb6aafc  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-21.c
! fde0651ee76ae6d6b167ed3f02aed640  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c
! 543ac3a17017fb6b4c9d44c1e6ba0199  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-23.c
! 1338c2c7bc056e7064e564642d4e6247  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c
! 12e50f6c2ae0829b62fc7915e9f77ec1  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-25.c
! ab98eaab47ce164c13261296c3ad6e8e  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-26.c
! 4dbbabe6902992ddf0ff6fb8d70117df  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c
! 4c58c46e43ebd348b6e4afc535b23431  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-28.c
! eb6b1d744c06facca90c3467692cd913  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c
! 3f125ea2873a274255bc2b41c87cb11b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-3.c
! 0ad4f4871f5cf42a4e73bb468a4c63cc  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-30.c
! 460616e76916d24a330b70509ed34ca8  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-31.c
! 7dcf6cb97dbc6968827b7f45824553fe  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c
! 226d8891e460ee5fd95d2d5539993f31  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-33.c
! b017c0583de98686d05f7add1f90e751  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c
! 7ba91132f163db518dcc89322d0c38f5  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-35.c
! aa45195b1a03f52ee423415111bed952  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-36.c
! 9522a0d68ed1d99f6ae2ee3f1d91c72c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c
! 76e04d888aef02cc3c35730b7eef30e9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-38.c
! 624efa7360658827d58830122d71d8d7  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c
! 756662c727974d0e662cdd2ae725dba4  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c
! 836325a1b8c3ec44998679797869fe5a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-40.c
! 7518cd1338c99de5ac1d55e4b71791ad  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-41.c
! d23150a22fb5653e4e50eac564de51ff  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c
! 6ecb7fe3d314a14e25cc069ada20dd4c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-43.c
! 8880298736117201e04c8fe59b003acd  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c
! 7b3705f6e5a7938e75c08a861298e183  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-45.c
! b43e26c9d59ff3881ebeebc1c74d456e  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-46.c
! da3afec2d7d08a1d7fb1d5aad5ddfb2f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c
! d1f1694fcefd74f7f91ec9e7cceaadd0  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-48.c
! cbcbad3bc8dbb16d69bedabcbab3dd07  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c
! b7c52892d38ca15a0284fd87216dab21  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-5.c
! 6cc5102f213c8e65cf4e09a3f97083a4  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-50.c
! 7ae4a7e2e9708fc884cc3f68d1d533ab  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-51.c
! 7b2bc6c7358dab180d551798a668b2b9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c
! 6987cccabe1d1f073c3c8e3d2ce6fe47  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-53.c
! ccd7025d9fdaa4d1e37d123b9eb38efe  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c
! a26c3e6ae9e7911ab3b2eaf9ccf49ae5  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-55.c
! ba6a7e52c8f516f2d48825cb656718f4  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-56.c
! 24bee1202edf9c89675618a939ee6d81  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c
! f96a994586f2bc793a6b2b1cbb39ae77  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-58.c
! 98f5b5dcb4e168bb8cfbdcd110d32212  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c
! a60d3c93d025c0342f8cb8f0b01e2364  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-6.c
! e056bd94e69b1fc79f46e89d058be27f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-60.c
! ae85a05bf34b057975818e41edea7d9d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-61.c
! 49a93f5f509a7689e3bab89a3c8372ca  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c
! 74ef3d73f6fc7ca9abd0cdea44194c17  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-63.c
! a548ec9c8a9c2a243a018391ed201d0d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c
! e6d252c07b5fea308f180b1b00bf6114  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-65.c
! 6a1a8ba658d9f847d5be9ceba090864c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-66.c
! 15a070e1f3ee88c4f9ae9f856fef46e2  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c
! 313dcc7e0fb439977e8f3776b87bbc26  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-68.c
! 661eebf79b3943f4a17abf8980c652a2  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c
! a054d8a857732a7eb0bb1ab6eeb5738a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c
! f67a00c818340b63ab2e557d45a48428  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-70.c
! b22002a8fff02ac99f0b4bc3575b7e6d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-71.c
! fa2b4ad3c28271ef78d665ab06805373  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c
! 99f9de6fb003390156a6bb7194e35d2c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-73.c
! 019a739c72ea211d3b233c8370ee66e5  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c
! 4fa253c45b0bfa6066a7f3f67131f71c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-75.c
! eb7be457c6183733c031f3aeff01290a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-76.c
! fd27e765658f781c9a6fc170edb1a17c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c
! 27cf8889ee7edf21c600f96a93fdd168  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-78.c
! 719dd2c8af948f8013a1117fdac5a66a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c
! 6102e2b4214f7870a0abc64f0d119806  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-8.c
! 7e5b0736d39ca878f461cc7fce6a5f0b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c
  15797f7c1b9cc9547384233a7abdd49f  gcc/testsuite/gcc.target/powerpc/dg-future-0.c
  c4c7537d0bdc6e02c64ae690f9feac1f  gcc/testsuite/gcc.target/powerpc/dg-future-1.c
  0f4816e68e75ee735727c70ca742fb95  gcc/testsuite/gcc.target/powerpc/dimode_off.c
! 069cf050a2c2f7c0b1d9bcc3de283d88  gcc/testsuite/gcc.target/powerpc/direct-move-double1.c
  4d54fa94954d5ff791c5151280363a89  gcc/testsuite/gcc.target/powerpc/direct-move-double2.c
! 827a7cfcf1c4c964c4be214658070c7b  gcc/testsuite/gcc.target/powerpc/direct-move-float1.c
  f4d7704dfb409d1d00851ce115bbb180  gcc/testsuite/gcc.target/powerpc/direct-move-float2.c
! 433f74a1fbcd6efd94f9b4a6e2f20efb  gcc/testsuite/gcc.target/powerpc/direct-move-float3.c
! 1f62754034d3b8bb62c8a1c6d209a355  gcc/testsuite/gcc.target/powerpc/direct-move-long1.c
  d4ce6459348a97119b44b465bb11034f  gcc/testsuite/gcc.target/powerpc/direct-move-long2.c
! 40e1e41bbc185ffb6251f42a1e1ecbd6  gcc/testsuite/gcc.target/powerpc/direct-move-vector.c
! 818a2d9329056fb35fbe2858ed53b4e3  gcc/testsuite/gcc.target/powerpc/direct-move-vint1.c
  500da673182d1ca48d430f3e8f4e6736  gcc/testsuite/gcc.target/powerpc/direct-move-vint2.c
  3bb9355169d26ef4a2e610a4cc121c5b  gcc/testsuite/gcc.target/powerpc/direct-move.h
  627e7592bae7233fb11325ff51156a61  gcc/testsuite/gcc.target/powerpc/div-vectorize-1.c
--- 79802,79900 ----
  70d51abf2988870d80cb9cc5e753c87b  gcc/testsuite/gcc.target/powerpc/dfp-td-2.c
  28bb384f8efa10801efa64c838eab4e2  gcc/testsuite/gcc.target/powerpc/dfp-td-3.c
  20555599c7a199625c2d8d95f50de5e9  gcc/testsuite/gcc.target/powerpc/dfp-td.c
! 62d29793a94099474da8ac7e983673ad  gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
! f98d82c0c8bf7191b847e64514e70c1a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-0.c
! 4b6522fc43ec6286c39dc8dd1642faa6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-1.c
! c91630886e36934a9193701a1eb39ba9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-10.c
! 8f99caad9c777de1f2f54c4bfb7dc3b9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-11.c
! 2cae34feb481b3b7ab6101704d359e13  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-12.c
! 5aa39f4ff353187fad02b6fe91cf9ece  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-13.c
! aa7d00126fdc6019ea6c90dc028efcf7  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-14.c
! 11e560a3736b321b0650efcbb2286461  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-15.c
! 3b3f5679b6fa27b62a3d1b02c6eff826  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-16.c
! 072321ea34914b75e33794c701d38362  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-17.c
! 058826d127222ccd1cf39743f4a75c00  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-18.c
! d5916c68f898ce575c9e51828ae1753e  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-19.c
! e96dee7cf1d9b042f564157eb66f3846  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-2.c
! c89b2562b842e1a5b31ef79e7985ed02  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-20.c
! ab453aee170c6741a3c97b70bb5e3d54  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-21.c
! 07d7b355fd0a454bf2feebf59ce9c1fb  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-22.c
! 6a04788db0a6a1e731201927ad34d889  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-23.c
! b0b228e1dc4cc37d5d43b5d8543fdd6c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-24.c
! 12d4225e553c0d69993a9851f8cd31fa  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-25.c
! 3abd92b615f7b34d197f1345e5721591  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-26.c
! 4b978f39cbecdcdce6bb4683b0c73d0f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-27.c
! e418aec648c8cccf37eabbe29b36c88a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-28.c
! c68fbd112b8c6b981062a25c6040b504  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-29.c
! 866a9f017302c7d52571c2e019120911  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-3.c
! 9bd9006c1ca4b515ff1a4e0d7ad0223a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-30.c
! d9973d7488f808b8cf58b77079eb7c55  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-31.c
! 10fb2afa5d350f9429ade01c4563eb9d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-32.c
! 4fd0265950adcddcd6509807a2fb655e  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-33.c
! 6e4b13968a88df21ca06217bbfc6741c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-34.c
! 350e09c70b9afa6e59d27bf8599995d6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-35.c
! a00f0e5b9971e86977b468b586ffd604  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-36.c
! 1cc36940450095ea8b4d37c2fb4fbd7a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-37.c
! 5e58911ed156548ea316f7cb8161c8a9  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-38.c
! 459aea079774e8d311eb804a474e9b21  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-39.c
! f4565c7eeded7312952b067e1e682b7b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-4.c
! f95b54ed20340928451fd75c634b678b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-40.c
! 4ba688be9d24e19b412fd772312e6a76  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-41.c
! bee5507ebc7a6f417d76bf998a26b425  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-42.c
! 0b329168bd3456479cc47d800ff7b80d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-43.c
! fd2db5ca302265e3d28753e265165316  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-44.c
! 98c9ad803924a7a8c310aa31b99c0351  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-45.c
! 2e3e35cd93c2d11db2ceb9e945332421  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-46.c
! ee2f2b299fbec0891d54d95c3157b934  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-47.c
! 7c92c26f5b2e6fcb70280425e63af08c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-48.c
! 2654971cdbd582a51d7e7b37abb54341  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-49.c
! 67735ed0af705882a0830facddb3ed8f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-5.c
! 3d8729d7cd9291138dd6fc85ee424921  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-50.c
! 7a2a5235960b6dd0ceb2b29a3745bbeb  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-51.c
! cb801e0f822c8f49a52935137091e2c4  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-52.c
! f924abcec359a8e46c553743fa80b033  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-53.c
! ac0dd59d61743a7cdc5a50c8a162ec08  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-54.c
! 7b46e9b73f9248109a027d1e9241caf7  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-55.c
! 864248f18558afe4e2d3445b27bd3ca1  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-56.c
! 6275b56eca6057ea1e53e1d3989208c5  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-57.c
! 6302e85cc657eb124923056e596e067b  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-58.c
! 289b46e4b2f7465fcaac443d87f473ca  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-59.c
! 2f81a4dbaeab57b78b61d415df0038cc  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-6.c
! 4fbaa07108164cca1116a35f5c2e4649  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-60.c
! 5ae2398b1a8d2a7a4a4ed48b2e17d919  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-61.c
! 3f15ec0416dc7b88f0e16a5ed6193d9d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-62.c
! 271af34a621b04bebb2a1c6f98ed4bb4  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-63.c
! 98c76a4dffdbe30f6af7f87658011009  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-64.c
! f538381964878bc1494564c3f3c83c37  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-65.c
! 43b161f9b7b4fdf8cc8e337f91274f66  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-66.c
! 7ae50137d4486efa7cdcae7c06d6cdbc  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-67.c
! 05d8dc5a5886358068f4d5bec7c4e67c  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-68.c
! 99775331ca670bcab906e4494ab5f854  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-69.c
! a722a9fb22ebeda86ee6ea7dad47ca04  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-7.c
! 0251ecf3097508a42f13849d64ab8f9f  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-70.c
! a2d40d553d28407b52834a404ba39eac  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-71.c
! dceb3dad6fcf48e0064b67c9494d9a84  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-72.c
! 88c387901bc8fd16f9dc347bbc505525  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-73.c
! e97cfa8b611a25262bd6fadfb4381b68  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-74.c
! 758538930f7cb2d5a1b54f5337b03ccd  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-75.c
! 2f50663022dd20147966b264dc687f81  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-76.c
! abdd38f46e66b0e06601c893178fc0e6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-77.c
! 6d69cbf853ffa403d75ff52b3ce700a6  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-78.c
! 9e0e4aec458db663d39dbd3d6908fbd3  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-79.c
! 79d4cee9bd8ccfbfdbae3a58b955c8cf  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-8.c
! d115ae319fdbda3a6fc6560f3568af73  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-9.c
  15797f7c1b9cc9547384233a7abdd49f  gcc/testsuite/gcc.target/powerpc/dg-future-0.c
  c4c7537d0bdc6e02c64ae690f9feac1f  gcc/testsuite/gcc.target/powerpc/dg-future-1.c
  0f4816e68e75ee735727c70ca742fb95  gcc/testsuite/gcc.target/powerpc/dimode_off.c
! b8e057eebf8967401bc7cbc7578ac789  gcc/testsuite/gcc.target/powerpc/direct-move-double1.c
  4d54fa94954d5ff791c5151280363a89  gcc/testsuite/gcc.target/powerpc/direct-move-double2.c
! ebbfda9e71ab97bc1f5c2dbc0aa46641  gcc/testsuite/gcc.target/powerpc/direct-move-float1.c
  f4d7704dfb409d1d00851ce115bbb180  gcc/testsuite/gcc.target/powerpc/direct-move-float2.c
! 1d28131483cd41a9c163d6c46f89e470  gcc/testsuite/gcc.target/powerpc/direct-move-float3.c
! 8eab0be3596a86c956e5c029400edff8  gcc/testsuite/gcc.target/powerpc/direct-move-long1.c
  d4ce6459348a97119b44b465bb11034f  gcc/testsuite/gcc.target/powerpc/direct-move-long2.c
! 0eaf597265a21e9c8df93ad1d044edfb  gcc/testsuite/gcc.target/powerpc/direct-move-vector.c
! 76fbca96247f5a2bb4e50616bf2caa32  gcc/testsuite/gcc.target/powerpc/direct-move-vint1.c
  500da673182d1ca48d430f3e8f4e6736  gcc/testsuite/gcc.target/powerpc/direct-move-vint2.c
  3bb9355169d26ef4a2e610a4cc121c5b  gcc/testsuite/gcc.target/powerpc/direct-move.h
  627e7592bae7233fb11325ff51156a61  gcc/testsuite/gcc.target/powerpc/div-vectorize-1.c
*************** c5a9d08c3b838f5a1fea3a4a1a8fd74c  gcc/te
*** 74357,74364 ****
  696e63162a2f3acf5d17e871a4d6c5b7  gcc/testsuite/gcc.target/powerpc/divic3-1.c
  1979ea6670fbb71d39841682940e44aa  gcc/testsuite/gcc.target/powerpc/divic3-2.c
  437116f4ece2fc838159319958a00e92  gcc/testsuite/gcc.target/powerpc/divkc3-1.c
! 499cd7621c221e968d7b038cf3e898d9  gcc/testsuite/gcc.target/powerpc/divkc3-2.c
! acd01b4a84dada449fb4247ebc8529e0  gcc/testsuite/gcc.target/powerpc/divkc3-3.c
  8f2229fba1c4dc16358c52a26e62a35e  gcc/testsuite/gcc.target/powerpc/doloop-1.c
  1795ee28ccf0c1777cfcd23010593966  gcc/testsuite/gcc.target/powerpc/doloop-2.c
  1e28ad29e43de3bf402fb713b7540c32  gcc/testsuite/gcc.target/powerpc/e500-1.c
--- 79907,79914 ----
  696e63162a2f3acf5d17e871a4d6c5b7  gcc/testsuite/gcc.target/powerpc/divic3-1.c
  1979ea6670fbb71d39841682940e44aa  gcc/testsuite/gcc.target/powerpc/divic3-2.c
  437116f4ece2fc838159319958a00e92  gcc/testsuite/gcc.target/powerpc/divkc3-1.c
! 54f33d7f869c07c53a66d6030b959c49  gcc/testsuite/gcc.target/powerpc/divkc3-2.c
! 3af24f7251ba2ee50bda11e6d14d5fd7  gcc/testsuite/gcc.target/powerpc/divkc3-3.c
  8f2229fba1c4dc16358c52a26e62a35e  gcc/testsuite/gcc.target/powerpc/doloop-1.c
  1795ee28ccf0c1777cfcd23010593966  gcc/testsuite/gcc.target/powerpc/doloop-2.c
  1e28ad29e43de3bf402fb713b7540c32  gcc/testsuite/gcc.target/powerpc/e500-1.c
*************** f92fd7820b0c5610b80d80849330a5b5  gcc/te
*** 74375,74494 ****
  0ee5a8314afe97bf7a61d79ae4788f89  gcc/testsuite/gcc.target/powerpc/float128-1.c
  96b4a8fffbca0c3e72f47fb998546030  gcc/testsuite/gcc.target/powerpc/float128-2.c
  23470b0b15ae268a0d29143204e3df41  gcc/testsuite/gcc.target/powerpc/float128-3.c
  87db0533dd0b96c3e0982f0eb5d1d216  gcc/testsuite/gcc.target/powerpc/float128-4.c
! 6768d5d711515ed5b6da41a056b388ab  gcc/testsuite/gcc.target/powerpc/float128-5.c
  0b6c17e72390bfb9052600f21ba0c89a  gcc/testsuite/gcc.target/powerpc/float128-call.c
  5dc8dae5e463cb191053a5df48a57e79  gcc/testsuite/gcc.target/powerpc/float128-cmove.c
  d2e66a0adae820881b99ec45ffe24c78  gcc/testsuite/gcc.target/powerpc/float128-cmp.c
  5a85c91ce9fcc3b73b638295db4d02b2  gcc/testsuite/gcc.target/powerpc/float128-cmp2-runnable.c
  c30565a907667e990dd7f92247003742  gcc/testsuite/gcc.target/powerpc/float128-complex-1.c
! eb3c3874b4477c7a84697fb0ec856be8  gcc/testsuite/gcc.target/powerpc/float128-complex-2.c
  fd25bebf75e74cfe87389db792a9d7e6  gcc/testsuite/gcc.target/powerpc/float128-constant.c
! 947cc2d0979c0deb0e29543fd5844482  gcc/testsuite/gcc.target/powerpc/float128-fma1.c
! f160590fc0253f43510e8bb41d6c5b4d  gcc/testsuite/gcc.target/powerpc/float128-hw.c
! 1290d54b6f45970d0eb251c8fcdeb870  gcc/testsuite/gcc.target/powerpc/float128-hw10.c
! 8cfda8709bba213497265f10f4445f9d  gcc/testsuite/gcc.target/powerpc/float128-hw11.c
! c5f778615c24c40e2b1360df121979cc  gcc/testsuite/gcc.target/powerpc/float128-hw2.c
! a5281a5add4f57bd9f20e5929923f1ea  gcc/testsuite/gcc.target/powerpc/float128-hw3.c
! fa85518761e05ea1b7911472fe973343  gcc/testsuite/gcc.target/powerpc/float128-hw4.c
! 5d4f9abc4e5250c43cf9eaa8404ed6da  gcc/testsuite/gcc.target/powerpc/float128-hw5.c
! 9c9de5bbd726458baf3797289d69d1b9  gcc/testsuite/gcc.target/powerpc/float128-hw6.c
! e389bb5a0e38ec6cbc075059b8ca5097  gcc/testsuite/gcc.target/powerpc/float128-hw7.c
! 3c4ecbb2bc43adefffd8717adc1ac5b3  gcc/testsuite/gcc.target/powerpc/float128-hw8.c
! f5694c7e9c5b3bff03f9ed4ed0f44287  gcc/testsuite/gcc.target/powerpc/float128-hw9.c
  1bfe07e7e08f200440538b1544af3c81  gcc/testsuite/gcc.target/powerpc/float128-longdouble-math.c
  ecb6702ec576754aa1c226cb34fba2a9  gcc/testsuite/gcc.target/powerpc/float128-longdouble-stdio.c
  e8d96efd9bb48348b9c55c740d924256  gcc/testsuite/gcc.target/powerpc/float128-math.c
  25cef8f84b1596e12e7dc355ff78e7ca  gcc/testsuite/gcc.target/powerpc/float128-minmax-2.c
  de7e29f869f77414f98a7b7e41387a33  gcc/testsuite/gcc.target/powerpc/float128-minmax-3.c
! ff345277dcceeffde57f495d6d8d2b5b  gcc/testsuite/gcc.target/powerpc/float128-minmax.c
  a4ce181d9028c3331d12902e18b6c8cb  gcc/testsuite/gcc.target/powerpc/float128-mix-2.c
  7e61fd8543295554419a5912d79afeb9  gcc/testsuite/gcc.target/powerpc/float128-mix-3.c
  d8a8e21eb6eebbb81346e00d9e4a210f  gcc/testsuite/gcc.target/powerpc/float128-mix.c
! 3a7af09fa8357a8c80ed50a3cad62c20  gcc/testsuite/gcc.target/powerpc/float128-odd.c
! 5e9ae7e3a7494688d889769d4532efae  gcc/testsuite/gcc.target/powerpc/float128-sqrt1.c
! 5768c9640bb50ab91e62ecf03e9527df  gcc/testsuite/gcc.target/powerpc/float128-type-1.c
! 1db5d06a7ec691586dade4a5d0d9d46d  gcc/testsuite/gcc.target/powerpc/float128-type-2.c
  e0ad25ce9491285ff2b02b92e79f6591  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-char-fwrapv.c
  bc538b78d826c6d929d4d4cc8a050ca6  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-char.c
  fc9f8abb6fc339215e8874dc977f42a9  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-floatdouble.c
  a8953f2a3db7f1bae2b0c53f01c4e2a9  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.c
  549e31b00eee46354860b47e7d5e36ee  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p7.c
  92ad6c66b58855bcafc5b09a76020ca0  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p8.c
! 65b8e47b4257fed8cdb848732f816c7b  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c
  6e567b796a1d87fc2b8a3b33fc98c3b1  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.c
  95fddf22c382f98ab2dc099702dffe61  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p7.c
  5a9e21aba9be4c0e5a752a8dfbb636c5  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p8.c
! 2169ce7970f72caed29917ed34d30e0e  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p9.c
! ef95602a4b11bf87f4310349372afd26  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.c
! d5893d51222719b6c9099d5f1b9e0361  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p8.c
! d817c6277f08cdbcbb466f6f322efa83  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p9.c
! 6a799cdd702ac4e94b0de54b0069f61c  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.c
! a897206cfbdc66dfc24b769a579c2c8f  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.p8.c
! d817c6277f08cdbcbb466f6f322efa83  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.p9.c
  5eb8a69ee53e82131b8626c1325e4204  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-short-fwrapv.c
  6e6d229856f86fa80e80959345b3d040  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-short.c
  9fea82572de51713f7f34f38bfbc65a1  gcc/testsuite/gcc.target/powerpc/fold-vec-add-1.c
  584a512198f713c5373b5cf53c722434  gcc/testsuite/gcc.target/powerpc/fold-vec-add-2.c
  9689a568c1cb8a17bfdac146660f667d  gcc/testsuite/gcc.target/powerpc/fold-vec-add-3.c
! 567400a264e6f4ec01ee4e8497fedb2c  gcc/testsuite/gcc.target/powerpc/fold-vec-add-4.c
  dcb18b06f41257634287eb447567431e  gcc/testsuite/gcc.target/powerpc/fold-vec-add-5.c
  f8af801a732c6c01b33e5d3b75fef925  gcc/testsuite/gcc.target/powerpc/fold-vec-add-6.c
! d8d9f9b4eb11f2c28c30815fcda864d9  gcc/testsuite/gcc.target/powerpc/fold-vec-add-7.c
  c40e77e4d231f0aa78af12735573c571  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.h
! e346ed9ccd81b4478be14f984a437d29  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.p8.c
! eb998d6ef2653ca2d3b987d2a1b0c567  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.p9.c
  26a6a752ac1166f5a31bd4969ad63706  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-double.c
  5fd1cfd1d0c56047743e22b7ffad5f07  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-float.c
! 9afa75663b00a2cd4f2c312aaed91cb9  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.h
  7482829c69b33ee5b98c599b6ecdfb75  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p7.c
! 54367c549f4cf6dd1cafba2967f03121  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p8.c
! 48f224974d267d780136ce5281b87afb  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p9.c
  95589273f7be6f4ef22f88ff1ff2d4c9  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int128.c
! f67a83a9f4936ed73f685569b705dcec  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-longlong.c
! 1e3dcfff9a591243440725f5901f9d63  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.h
! c64b3b6e74c02a83ece50134f8a7c94a  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.p8.c
! e33158df6e5c4a0dcbd199c9508be156  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.p9.c
! 9c9659b19287ae416c1252e92a8a24e4  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-char.c
! a54bbc10a3951d2aeb7f39e8f635a7a3  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-int.c
! a74141cbbf5be937c226ffee13bee031  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-longlong.c
! 9c144374ed5b648079ac35c154cec420  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-short.c
  34c909a89e104fa83e45b28020ea4537  gcc/testsuite/gcc.target/powerpc/fold-vec-div-float.c
  bc4ffe5b102cbda3b8132211813a5f60  gcc/testsuite/gcc.target/powerpc/fold-vec-div-floatdouble.c
  e5d4f3b0afd81706b6cc6b5850f9eefe  gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c
! 281b80b6f83e9dd0d46cb2a376157b20  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p7.c
! c0d91fe2e7dbdb7d7aedb914d67fcedb  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p8.c
! e878b1f5b97280c654030ad18132a088  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p9.c
  06662a48faa71b240b5e9d3c1e1ba5af  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p7.c
! fa27145dde6c108df6e976bb402b111c  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p8.c
  f28454392bfa7d7a1137bcafe2123abf  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p9.c
  89f40be7947fda24987e25856b7b165e  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p7.c
! fc258cfb8dc3c7bd06ab308198b80404  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p8.c
! 7a0759e27979c5806319cd64c6401208  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p9.c
  ba44c22af8fc41d6af9d5e804762b5d3  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p7.c
! 07dc14621a6458c0bd6bf7abab469a91  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p8.c
! 15f587810c3d44d43d07acdf08ed8172  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p9.c
  34229cd255d399db41aeaa2e3d6a7d4b  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p7.c
! e74ad96144d5acea58122904f48c65f8  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c
! 1f22d28d38cd21aeccbd1200e083292c  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p9.c
  a5325c8cc86dc478739621b3d95026f9  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p7.c
! cb3bd583a4d262fb790046331d439005  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p8.c
! 6994c144ac60ae33eec89d3cc3c5a5d3  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p9.c
! ece82d4c2ddf426273ca99cdb03376b3  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-char-p8.c
! 341788b17eb18d27671f590a7e0c375a  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-char-p9.c
  d03c7fdf183782e0dca3f4ddf4cfc464  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-double.c
! 58774bd87f327119c53fd6ab1d6eb511  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-float-p8.c
! 4e6ef1fd54b154244a3634123d4dce3f  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-float-p9.c
! 5e6552158b74ab765143f60ef099aabb  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-int-p8.c
! 189950203483766908f3e93840583ccf  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-int-p9.c
! 358a1b5347d6ed7c0c086f1a45e89f6f  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-longlong.c
! 152fdf8c5bbcc4e786dafecc0c341284  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-short-p8.c
! 81db8105bbcf392a81df370f6532454c  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-short-p9.c
  f83dd36ea74330541196905107594a4b  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-char.c
  789754980b9d6f48bf02b8d3e87b72ed  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-double.c
  857fe53226a86ade248b779d3f5a20d6  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-float.c
  fad3ccaaf13d39b936807d9415e4165c  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-int.c
! 98217697644416990b57d0a01fa4840e  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-longlong.c
  5cf0c2402b7fea385dac074b3865e37a  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-misc.c
  11f5c822fb66163c2b4ff6823d8bba9e  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-short.c
  b8569310d4209fa463dc6fa6ff13a513  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
--- 79925,80045 ----
  0ee5a8314afe97bf7a61d79ae4788f89  gcc/testsuite/gcc.target/powerpc/float128-1.c
  96b4a8fffbca0c3e72f47fb998546030  gcc/testsuite/gcc.target/powerpc/float128-2.c
  23470b0b15ae268a0d29143204e3df41  gcc/testsuite/gcc.target/powerpc/float128-3.c
+ b2276d66af2be03cec5596af82315b7f  gcc/testsuite/gcc.target/powerpc/float128-3b.c
  87db0533dd0b96c3e0982f0eb5d1d216  gcc/testsuite/gcc.target/powerpc/float128-4.c
! 246e0834d0ba6318ff7dd6e994422f4b  gcc/testsuite/gcc.target/powerpc/float128-5.c
  0b6c17e72390bfb9052600f21ba0c89a  gcc/testsuite/gcc.target/powerpc/float128-call.c
  5dc8dae5e463cb191053a5df48a57e79  gcc/testsuite/gcc.target/powerpc/float128-cmove.c
  d2e66a0adae820881b99ec45ffe24c78  gcc/testsuite/gcc.target/powerpc/float128-cmp.c
  5a85c91ce9fcc3b73b638295db4d02b2  gcc/testsuite/gcc.target/powerpc/float128-cmp2-runnable.c
  c30565a907667e990dd7f92247003742  gcc/testsuite/gcc.target/powerpc/float128-complex-1.c
! 77d0f44077c974643c0f632095a7df55  gcc/testsuite/gcc.target/powerpc/float128-complex-2.c
  fd25bebf75e74cfe87389db792a9d7e6  gcc/testsuite/gcc.target/powerpc/float128-constant.c
! a0a14e7929cd631015fa571fea1d2b6c  gcc/testsuite/gcc.target/powerpc/float128-fma1.c
! bbf7d0a1e97a331c0cfbe411324e50a4  gcc/testsuite/gcc.target/powerpc/float128-hw.c
! df5e2127d5c42a82462e2edb720733a2  gcc/testsuite/gcc.target/powerpc/float128-hw10.c
! 2a187217100392844d8e7f9672e0d484  gcc/testsuite/gcc.target/powerpc/float128-hw11.c
! a4a6c5bb9656cd64ad69856c2c853a38  gcc/testsuite/gcc.target/powerpc/float128-hw2.c
! a0570f9f967b129745cd84e6ce076b4c  gcc/testsuite/gcc.target/powerpc/float128-hw3.c
! f3e00871ca68ea8ba9c767ef17559e4a  gcc/testsuite/gcc.target/powerpc/float128-hw4.c
! ad1a1dd482fd96e19ba6ed8000d2de05  gcc/testsuite/gcc.target/powerpc/float128-hw5.c
! be84b77220724e0dbf55785cd0f72958  gcc/testsuite/gcc.target/powerpc/float128-hw6.c
! 6ae9dc0e411b3022c91332950ffb70ca  gcc/testsuite/gcc.target/powerpc/float128-hw7.c
! a2e80d239b121dc5248e2b92736df692  gcc/testsuite/gcc.target/powerpc/float128-hw8.c
! 7ea029f56a56f2c5cb3e2aab04d50c9a  gcc/testsuite/gcc.target/powerpc/float128-hw9.c
  1bfe07e7e08f200440538b1544af3c81  gcc/testsuite/gcc.target/powerpc/float128-longdouble-math.c
  ecb6702ec576754aa1c226cb34fba2a9  gcc/testsuite/gcc.target/powerpc/float128-longdouble-stdio.c
  e8d96efd9bb48348b9c55c740d924256  gcc/testsuite/gcc.target/powerpc/float128-math.c
  25cef8f84b1596e12e7dc355ff78e7ca  gcc/testsuite/gcc.target/powerpc/float128-minmax-2.c
  de7e29f869f77414f98a7b7e41387a33  gcc/testsuite/gcc.target/powerpc/float128-minmax-3.c
! 9edd6c8893f9e0e9e880387a78cb0181  gcc/testsuite/gcc.target/powerpc/float128-minmax.c
  a4ce181d9028c3331d12902e18b6c8cb  gcc/testsuite/gcc.target/powerpc/float128-mix-2.c
  7e61fd8543295554419a5912d79afeb9  gcc/testsuite/gcc.target/powerpc/float128-mix-3.c
  d8a8e21eb6eebbb81346e00d9e4a210f  gcc/testsuite/gcc.target/powerpc/float128-mix.c
! 69f8414cd6c0767bb18c0bc448984fea  gcc/testsuite/gcc.target/powerpc/float128-odd.c
! e3a0ecf65fe12f3ab20f4c4cdb670637  gcc/testsuite/gcc.target/powerpc/float128-sqrt1.c
! ff1d4e0e9e90ca7ac002d7964f4472be  gcc/testsuite/gcc.target/powerpc/float128-type-1.c
! 8d0e6f2b011a249311b8f7dd86bbf695  gcc/testsuite/gcc.target/powerpc/float128-type-2.c
  e0ad25ce9491285ff2b02b92e79f6591  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-char-fwrapv.c
  bc538b78d826c6d929d4d4cc8a050ca6  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-char.c
  fc9f8abb6fc339215e8874dc977f42a9  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-floatdouble.c
  a8953f2a3db7f1bae2b0c53f01c4e2a9  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.c
  549e31b00eee46354860b47e7d5e36ee  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p7.c
  92ad6c66b58855bcafc5b09a76020ca0  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p8.c
! dff2ab5533857016025e6f61c0459d20  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c
  6e567b796a1d87fc2b8a3b33fc98c3b1  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.c
  95fddf22c382f98ab2dc099702dffe61  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p7.c
  5a9e21aba9be4c0e5a752a8dfbb636c5  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p8.c
! f9928abdbb50a6fc3a361b5b5fa033bb  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-int.p9.c
! 0e80288a9274453aed0fcce5cb7f3c52  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.c
! 466a8a5e92c8d2d0b0d4cd76a9e26afa  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p8.c
! 68b7d2084d6947475cbe4c69d253666b  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p9.c
! 41d5aec5d7c74419e030ee34461536d3  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.c
! 52b4d5d37606d46405165fcd9b89c3ce  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.p8.c
! 68b7d2084d6947475cbe4c69d253666b  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-longlong.p9.c
  5eb8a69ee53e82131b8626c1325e4204  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-short-fwrapv.c
  6e6d229856f86fa80e80959345b3d040  gcc/testsuite/gcc.target/powerpc/fold-vec-abs-short.c
  9fea82572de51713f7f34f38bfbc65a1  gcc/testsuite/gcc.target/powerpc/fold-vec-add-1.c
  584a512198f713c5373b5cf53c722434  gcc/testsuite/gcc.target/powerpc/fold-vec-add-2.c
  9689a568c1cb8a17bfdac146660f667d  gcc/testsuite/gcc.target/powerpc/fold-vec-add-3.c
! 9afb3056f1fea38284adcc3b45cfdd16  gcc/testsuite/gcc.target/powerpc/fold-vec-add-4.c
  dcb18b06f41257634287eb447567431e  gcc/testsuite/gcc.target/powerpc/fold-vec-add-5.c
  f8af801a732c6c01b33e5d3b75fef925  gcc/testsuite/gcc.target/powerpc/fold-vec-add-6.c
! 504404006529ed1f073eee1529af4446  gcc/testsuite/gcc.target/powerpc/fold-vec-add-7.c
  c40e77e4d231f0aa78af12735573c571  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.h
! f7ab0c5567bd7414d10ef0e21db5d56d  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.p8.c
! 0a25d6bb7aac4c76bc348cd8a509392e  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-char.p9.c
  26a6a752ac1166f5a31bd4969ad63706  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-double.c
  5fd1cfd1d0c56047743e22b7ffad5f07  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-float.c
! 4dace8b3b13d88d12a6a5fe643875ace  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.h
  7482829c69b33ee5b98c599b6ecdfb75  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p7.c
! a347b192dc5334cff1323071a76293ab  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p8.c
! e8bb6e710e33ad479f9595bda9b0bf39  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int.p9.c
  95589273f7be6f4ef22f88ff1ff2d4c9  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-int128.c
! bf1f5d27518de6eb2fc65e9645dee6da  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-longlong.c
! bc55d97eae451d3a4b1e457fc97196c4  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.h
! b3649b7da1979b691ae564d73cd28800  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.p8.c
! 00e31ae68d2a04ec8ff0fe9cc0a66215  gcc/testsuite/gcc.target/powerpc/fold-vec-cmp-short.p9.c
! 2106e1b890da2cb57b17ddd297089b26  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-char.c
! eaa944b63ab9c48c0a102ccab6370faa  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-int.c
! 414c91e03d4d79ec79bb5cc506303327  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-longlong.c
! 7adfbdb98039756edc351b6926413dcf  gcc/testsuite/gcc.target/powerpc/fold-vec-cntlz-short.c
  34c909a89e104fa83e45b28020ea4537  gcc/testsuite/gcc.target/powerpc/fold-vec-div-float.c
  bc4ffe5b102cbda3b8132211813a5f60  gcc/testsuite/gcc.target/powerpc/fold-vec-div-floatdouble.c
  e5d4f3b0afd81706b6cc6b5850f9eefe  gcc/testsuite/gcc.target/powerpc/fold-vec-div-longlong.c
! 45ab856d86dd48caf7e82564946f923c  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p7.c
! 7aff1cbe8ad2796e6fca95d5a8a79aa1  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p8.c
! 008fab29c6cd854cf588bf77331f77e1  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p9.c
  06662a48faa71b240b5e9d3c1e1ba5af  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p7.c
! fb2e1588bd7702f14bde2ceb760055ee  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p8.c
  f28454392bfa7d7a1137bcafe2123abf  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-double.p9.c
  89f40be7947fda24987e25856b7b165e  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p7.c
! 26d2f2cf6b19a48d8f9c3616437b6aba  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p8.c
! 02cae4468c122cad0a3c64bd221e9b8b  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-float.p9.c
  ba44c22af8fc41d6af9d5e804762b5d3  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p7.c
! e0dccb8709ede9eb00d205614dd78775  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p8.c
! 2f4fb62b08c488fd986d780c8530daee  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p9.c
  34229cd255d399db41aeaa2e3d6a7d4b  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p7.c
! b0d4f53ef7241037639164403e0630e7  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c
! d0f98316e4c3869134974bc1cb6a89d6  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p9.c
  a5325c8cc86dc478739621b3d95026f9  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p7.c
! 8c599efa22da54d889f26e626ede7b77  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p8.c
! 90a48c1d1c1126202e07cf1410e29c78  gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p9.c
! 18ce02d1f6c7e00cd5d5445114c26b49  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-char-p8.c
! d150b930c4e22ff11b236f0f53b635ee  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-char-p9.c
  d03c7fdf183782e0dca3f4ddf4cfc464  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-double.c
! 59a5557ff43a4434ed95968f4ab850ca  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-float-p8.c
! 06940256d74591296d5c3b23b79d105a  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-float-p9.c
! 11be817addf1d9d72d78c49c47fd9fb8  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-int-p8.c
! 886e25b684b108a3fd60b188cc100dad  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-int-p9.c
! 4fae68a011dc724b097d597d6c8a2966  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-longlong.c
! 37308d4ce5ad628c3c118ec87db75ddb  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-short-p8.c
! 24adacd6348e5f5dfefc95e74244e3f7  gcc/testsuite/gcc.target/powerpc/fold-vec-insert-short-p9.c
  f83dd36ea74330541196905107594a4b  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-char.c
  789754980b9d6f48bf02b8d3e87b72ed  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-double.c
  857fe53226a86ade248b779d3f5a20d6  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-float.c
  fad3ccaaf13d39b936807d9415e4165c  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-int.c
! 55322d8aa5ef0f30d335f57631e96008  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-longlong.c
  5cf0c2402b7fea385dac074b3865e37a  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-misc.c
  11f5c822fb66163c2b4ff6823d8bba9e  gcc/testsuite/gcc.target/powerpc/fold-vec-ld-short.c
  b8569310d4209fa463dc6fa6ff13a513  gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
*************** a6bf49f1508c4751594982b3ba9c1402  gcc/te
*** 74513,74549 ****
  65f0aacb6d00b5110c863e5cb9304409  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-int.c
  786bb59f48d5eb9fb4612efaf2950505  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-longlong.c
  47553608344dabd648258400b08bb70e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-short.c
! 1b49a1c6b2a45ef72ea3ddc088f2cff4  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-char.c
! 0abcc943e61ff167cb063cf834d9e6ba  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-float.c
! 50232c635489d28d8e135e3070fe657b  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-floatdouble.c
! 0180cb57809678d426e0d00f6096dc95  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-int.c
! 8cb96605893eab102110a3d357c0cf9c  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-longlong.c
! b33048beec786386cef47b9a43d3e4bc  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-short.c
! 223caa64a4f9aab3244298aa1cf8454c  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-char.c
! b5fc9639023acca2b844e31157e91dba  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-int.c
! f2652e32a478d15311828858b63abe0b  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-longlong.c
! d053c4bbb332ec3a6e4e9aae2f9c3a7e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-short.c
! e7a4e76d4e305a6363e59b00fa6e8139  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-char.c
! d361bcf905ef1ae2cbeca6f79ba344a4  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-int.c
! 0d0bda4531ebb9575036a51d41a7ac24  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-longlong.c
! d77734b38749e7669471f97a5a641c1c  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-short.c
  51130abd0d75c8b7084cf4776be63043  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-double.c
  c5a2e0e18b989631ff4f1c9e4b0f5ee2  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-float.c
  b2740aca0f3481b5d711325fed94bf4b  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-short.c
! 02ea50098ca8652c35a212dbd5d1ad24  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c
! 459502d9a2552fe03c34d860f8bec6c8  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-int.c
! 23d82945c76e401e871581fefcecfd6e  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-longlong.c
  15b0ef78deaa74d0936ce2a256ca4880  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-char.c
  639c5d50d6d610c022e624085b42d082  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-double.c
  ec5dbe0b4f0e94b5f299aa14c6e97def  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-float.c
  23d5402a4c4336fcb6826687aec9a720  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-int.c
! 3bdbd87c7f65bcb6041613ddaa42558e  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-longlong.c
  93fc7d054dd12a16b757fcd3a85e3270  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-pixel.c
  986be3f5d1abfe691663e7f764fdd791  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-short.c
  e09dec817573f33ca52cd449bb0f683e  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-char.c
  46a53c71f6c3712386cbd703269f8462  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-floatdouble.c
  d403d1dfe2edb0af634741adb9b2ea06  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-int.c
! c88fe9ad68ba639d36aedfe926d50d8c  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-longlong.c
  60f510ecaf270d58efc3cccedfc515d3  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-short.c
  d166c789e58b419540ab45a26e13bb56  gcc/testsuite/gcc.target/powerpc/fold-vec-missing-lhs.c
  eaf0b440284bcd41bd729d89639cd59c  gcc/testsuite/gcc.target/powerpc/fold-vec-msum-char.c
--- 80064,80100 ----
  65f0aacb6d00b5110c863e5cb9304409  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-int.c
  786bb59f48d5eb9fb4612efaf2950505  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-longlong.c
  47553608344dabd648258400b08bb70e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ands-short.c
! fc5115be5c1f7a28cf803b6af2cf012e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-char.c
! 314ca07c449e3064be8fe31c64eb1f12  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-float.c
! 8a96f04fcf1c9b92b3e08d6c3d90dcd3  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-floatdouble.c
! 016521f52bd61ce41df13f832f31165c  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-int.c
! 80e0782286542bb25c814d7f134f3ca5  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-longlong.c
! 63843d625213b1e7ff6184ce1529cb4c  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-eqv-short.c
! 443ce99f821a9feb00a98e2a591f4c29  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-char.c
! 185d0e9ecf31b83eefc4f2db4c41aecc  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-int.c
! 4b7bdddf5d112b4f2e785c83b5011c85  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-longlong.c
! 4837c956f9c14a1f2b93ce2662208ae6  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-ors-short.c
! ff45788cf964ace54b6cccffb48343a6  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-char.c
! ba8bac2856797a0d6a174a34221b333f  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-int.c
! e745f6179f59ae246780f3003672e70e  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-longlong.c
! 3b36b329ba4c37b932bdd47511a0368d  gcc/testsuite/gcc.target/powerpc/fold-vec-logical-other-short.c
  51130abd0d75c8b7084cf4776be63043  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-double.c
  c5a2e0e18b989631ff4f1c9e4b0f5ee2  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-float.c
  b2740aca0f3481b5d711325fed94bf4b  gcc/testsuite/gcc.target/powerpc/fold-vec-madd-short.c
! 0c222bde3a868add6fa8c52efbb317c5  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c
! 9e87688d442c81ebb017f415a5d3ec79  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-int.c
! dc94da38f875a5bb547f89095a188cb1  gcc/testsuite/gcc.target/powerpc/fold-vec-mergeeo-longlong.c
  15b0ef78deaa74d0936ce2a256ca4880  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-char.c
  639c5d50d6d610c022e624085b42d082  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-double.c
  ec5dbe0b4f0e94b5f299aa14c6e97def  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-float.c
  23d5402a4c4336fcb6826687aec9a720  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-int.c
! df79d3b321ba0356c5a1ef7ee7645a58  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-longlong.c
  93fc7d054dd12a16b757fcd3a85e3270  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-pixel.c
  986be3f5d1abfe691663e7f764fdd791  gcc/testsuite/gcc.target/powerpc/fold-vec-mergehl-short.c
  e09dec817573f33ca52cd449bb0f683e  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-char.c
  46a53c71f6c3712386cbd703269f8462  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-floatdouble.c
  d403d1dfe2edb0af634741adb9b2ea06  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-int.c
! 2a5765e88049ac4ad658bbcaef4a8156  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-longlong.c
  60f510ecaf270d58efc3cccedfc515d3  gcc/testsuite/gcc.target/powerpc/fold-vec-minmax-short.c
  d166c789e58b419540ab45a26e13bb56  gcc/testsuite/gcc.target/powerpc/fold-vec-missing-lhs.c
  eaf0b440284bcd41bd729d89639cd59c  gcc/testsuite/gcc.target/powerpc/fold-vec-msum-char.c
*************** fb0a89e45ba252c43353b0f5f4c7ce06  gcc/te
*** 74554,74576 ****
  375caba5d8a625665beec176aafc6220  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-char.c
  426a600871598fb80a8b81e4b814e90a  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-float.c
  d75d344612568a4f86f9acdb280128fa  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-floatdouble.c
! e4f3b55cba815be73871563930d38863  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int.c
! b6513310181ec27043ef75e55698b5e5  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int128-p8.c
! 6dd8ae095ddbedca6e6ad524d89b01f4  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int128-p9.c
! 8ce0631fe60c93865f448e94c4a340db  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c
  49b251a50e1bf1e51c1a49aa6fd075f0  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-short.c
! bce7329fd22f2f2b624bf5ad15cb2605  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-char.c
! cd5e71433eabf8fac39499ce3ea7f945  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-floatdouble.c
! c64d34b4323a0068f09c47d8b312a30e  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.c
! bd9d0d4b68a24562248f1e0f946393ce  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.p8.c
! 108ff6e7ed9a87b6abca336f8da52b7d  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.p9.c
! b0d4b9eba3b8d9817c3a0d14cbfbb6de  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.h
! 5d4aa866f46608725514a6ecca985c54  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.p8.c
! 7b8dd7a94f265e46fd208116b6a12e40  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.p9.c
! 20f61931fdf9339f713ffb5b98a329b5  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-short.c
! e44b137e0ce85e7e42d8c53162f08089  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-double.c
  9dc9af4f6434ea16e511ecf0c0ed2a3c  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-int.c
! e10f21270c1b37353711b71077d3364a  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-longlong.c
  95ee03eb866a6ce8e68fe4231fc04a00  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-short.c
  199a4c2e03db86236fcdf85bef7f3f4e  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-char.c
  4e69b825017e023761b8caac4483112e  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-double.c
--- 80105,80127 ----
  375caba5d8a625665beec176aafc6220  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-char.c
  426a600871598fb80a8b81e4b814e90a  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-float.c
  d75d344612568a4f86f9acdb280128fa  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-floatdouble.c
! 5cb893107e6a7dc7d0354154a2d64e0c  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int.c
! 3b72b67c6a2b47d88e6467f47a39e5e8  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int128-p8.c
! da23b52d5cbfc5799009cf7594bb1305  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-int128-p9.c
! 4db0e660d4fdc234946d081939c1996e  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-longlong.c
  49b251a50e1bf1e51c1a49aa6fd075f0  gcc/testsuite/gcc.target/powerpc/fold-vec-mult-short.c
! 04e436ce27513c5ad8113ceaef17f7eb  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-char.c
! 4e30180ef391e415a71232b2d8237c5b  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-floatdouble.c
! 520ea1a71fcf33d79690dd162890ac91  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.c
! d80ac23aeb1c0a4abd98518fe1753f04  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.p8.c
! 8803cc2f2e9552d577f93c65a94f0387  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-int.p9.c
! d3f707e9276cce68dc9841194eea5747  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.h
! 33ef5742743ae8967eebcbfac3c3a628  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.p8.c
! f22b922ad063b7913d1725cba59cf113  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-longlong.p9.c
! 3ce9143aad99fe006a17a236425720db  gcc/testsuite/gcc.target/powerpc/fold-vec-neg-short.c
! 761c697dff69ec09df4f192dcaaeeb45  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-double.c
  9dc9af4f6434ea16e511ecf0c0ed2a3c  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-int.c
! 8e3c5557459b5c972b946ee3b9135dc2  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-longlong.c
  95ee03eb866a6ce8e68fe4231fc04a00  gcc/testsuite/gcc.target/powerpc/fold-vec-pack-short.c
  199a4c2e03db86236fcdf85bef7f3f4e  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-char.c
  4e69b825017e023761b8caac4483112e  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-double.c
*************** c7345d3a8b7347730058cb8cc10de9dd  gcc/te
*** 74580,74586 ****
  9ae68d31e49898985c619a910ca7aa07  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-pixel.c
  f0aa86bc355cbd349d4d86ad17d5d7af  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-short.c
  5b0744b0b5565e3157eefb0eeb12d8e3  gcc/testsuite/gcc.target/powerpc/fold-vec-select-char.c
! 53672f78ec893c4b59e6e57e8c86263e  gcc/testsuite/gcc.target/powerpc/fold-vec-select-double.c
  d1807d527b384d685f9a957299d36672  gcc/testsuite/gcc.target/powerpc/fold-vec-select-float.c
  528671ac5fa40094ad0850b0a6f57b34  gcc/testsuite/gcc.target/powerpc/fold-vec-select-int.c
  15ce020fe88301e74e0dada945d3665b  gcc/testsuite/gcc.target/powerpc/fold-vec-select-longlong.c
--- 80131,80137 ----
  9ae68d31e49898985c619a910ca7aa07  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-pixel.c
  f0aa86bc355cbd349d4d86ad17d5d7af  gcc/testsuite/gcc.target/powerpc/fold-vec-perm-short.c
  5b0744b0b5565e3157eefb0eeb12d8e3  gcc/testsuite/gcc.target/powerpc/fold-vec-select-char.c
! 63c827d4c5742e460aaec5b9a4605bfa  gcc/testsuite/gcc.target/powerpc/fold-vec-select-double.c
  d1807d527b384d685f9a957299d36672  gcc/testsuite/gcc.target/powerpc/fold-vec-select-float.c
  528671ac5fa40094ad0850b0a6f57b34  gcc/testsuite/gcc.target/powerpc/fold-vec-select-int.c
  15ce020fe88301e74e0dada945d3665b  gcc/testsuite/gcc.target/powerpc/fold-vec-select-longlong.c
*************** d1807d527b384d685f9a957299d36672  gcc/te
*** 74588,74597 ****
  395ffe68d26e6b1a9ad3614b6111358f  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-char.c
  212d503d79804785ed9940384b4f3198  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-int.c
  8576415c1e37ade78f6c031011153d01  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-fwrapv.c
! e85a59e7cd50c8ae8a0bfd35663f19ca  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-longlong-fwrapv.c
! 023977c4c5a7edda903015fec09f826e  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-longlong.c
  0c4ce9c8666b972a318787c914166797  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left.c
! dbc411e4c00c190a163bc911484099f8  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-longlong.c
  11424c610452bbdaa0ca65a9fe0d19ae  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-short.c
  56712289e441cccbb20f69c47f2b1cff  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-16.c
  2d9452e937f198bbc849c148dc936929  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-32.c
--- 80139,80148 ----
  395ffe68d26e6b1a9ad3614b6111358f  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-char.c
  212d503d79804785ed9940384b4f3198  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-int.c
  8576415c1e37ade78f6c031011153d01  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-fwrapv.c
! b4f94c4dd9c64a445990dfee1112483b  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-longlong-fwrapv.c
! cf157418c5e11b4d62a881af66170d97  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left-longlong.c
  0c4ce9c8666b972a318787c914166797  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-left.c
! bfcea967d563b64cd84b75679654adb8  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-longlong.c
  11424c610452bbdaa0ca65a9fe0d19ae  gcc/testsuite/gcc.target/powerpc/fold-vec-shift-short.c
  56712289e441cccbb20f69c47f2b1cff  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-16.c
  2d9452e937f198bbc849c148dc936929  gcc/testsuite/gcc.target/powerpc/fold-vec-splat-32.c
*************** e4fbe5d0e5c9d22841c6836a3291bd79  gcc/te
*** 74612,74625 ****
  c884f4242bd424ff4337f85e2a9563f6  gcc/testsuite/gcc.target/powerpc/fold-vec-st-double.c
  0bf51ecddc6744a938b22c21dcee1b42  gcc/testsuite/gcc.target/powerpc/fold-vec-st-float.c
  9da8f017e147e1f745c281029f8113f8  gcc/testsuite/gcc.target/powerpc/fold-vec-st-int.c
! 86541d5efbd5d046fdc20c7f8cf38020  gcc/testsuite/gcc.target/powerpc/fold-vec-st-longlong.c
  4e0a13aac50c1c19a6931feb0ffb2d1c  gcc/testsuite/gcc.target/powerpc/fold-vec-st-pixel.c
  d21c8ed0be51451aebb44a84e728f25d  gcc/testsuite/gcc.target/powerpc/fold-vec-st-short.c
  02efabc53e9b8ee5c74a293ddd4e1202  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
  f0484fe45046c4ec74342b1cb5913b34  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
  e5b9216f97f29e1a1d4c75ef13f8f467  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
  2f6bfc35e9a15aeab8f9d268c964daaa  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
! 5e837278fad3ab6f96d361732b531b15  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
  8ec98c8d3393166996141eb720a8180c  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
  93d4697e1ff119fa63a935a5f03232ad  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
  8589454364daadb6a2531178384c59a9  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
--- 80163,80176 ----
  c884f4242bd424ff4337f85e2a9563f6  gcc/testsuite/gcc.target/powerpc/fold-vec-st-double.c
  0bf51ecddc6744a938b22c21dcee1b42  gcc/testsuite/gcc.target/powerpc/fold-vec-st-float.c
  9da8f017e147e1f745c281029f8113f8  gcc/testsuite/gcc.target/powerpc/fold-vec-st-int.c
! f9357aacce38be61d55bf28ca5c4ab77  gcc/testsuite/gcc.target/powerpc/fold-vec-st-longlong.c
  4e0a13aac50c1c19a6931feb0ffb2d1c  gcc/testsuite/gcc.target/powerpc/fold-vec-st-pixel.c
  d21c8ed0be51451aebb44a84e728f25d  gcc/testsuite/gcc.target/powerpc/fold-vec-st-short.c
  02efabc53e9b8ee5c74a293ddd4e1202  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
  f0484fe45046c4ec74342b1cb5913b34  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
  e5b9216f97f29e1a1d4c75ef13f8f467  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
  2f6bfc35e9a15aeab8f9d268c964daaa  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
! b9a7d0867cf956106c1c913ca3b53c6f  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
  8ec98c8d3393166996141eb720a8180c  gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
  93d4697e1ff119fa63a935a5f03232ad  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
  8589454364daadb6a2531178384c59a9  gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
*************** ad2b4572d2db6cc1979e2268ca64ca93  gcc/te
*** 74637,74649 ****
  f1b1c0fb1f99284d5a7de09a14694612  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-float.c
  6c338f4ac8c6539eeb08f4db9c02dc2a  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-floatdouble.c
  3e023d589a9aaa4f547577fadcde7c55  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-int.c
! bdc676ac6c69543f8601c7add4ab1322  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-int128.c
! 66dd7afb5c235abe1fd2cb61f87862ae  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-longlong.c
  61197a95386eed25a58aa795f9a43be9  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-short.c
  b681248afe4bdb1d889c6999e517fe7f  gcc/testsuite/gcc.target/powerpc/fold-vec-sums-int.c
  8303935008cde3448504afa45d270261  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-char.c
! 8514df47d547e7a41356b1add938e21f  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-float.c
! 813e9e4e09e5e1dbbf39cc9852ed3f2b  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-int.c
  1551b0b6be64f5eba760a72e19de3597  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-pixel.c
  3945e589530622f3dffbe2381c9922e1  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-short.c
  677059b338aae8245e5715c1bf783dd9  gcc/testsuite/gcc.target/powerpc/fp128_conversions.c
--- 80188,80200 ----
  f1b1c0fb1f99284d5a7de09a14694612  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-float.c
  6c338f4ac8c6539eeb08f4db9c02dc2a  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-floatdouble.c
  3e023d589a9aaa4f547577fadcde7c55  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-int.c
! c813ce6c39b8d88d5f032ba70b6f455e  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-int128.c
! 8eb25756d7e25054c651ed39b9155668  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-longlong.c
  61197a95386eed25a58aa795f9a43be9  gcc/testsuite/gcc.target/powerpc/fold-vec-sub-short.c
  b681248afe4bdb1d889c6999e517fe7f  gcc/testsuite/gcc.target/powerpc/fold-vec-sums-int.c
  8303935008cde3448504afa45d270261  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-char.c
! 657a28c79c79ec58475fb5af81a67d7a  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-float.c
! 5a377435b40e4f2de36018f4c6ebcb84  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-int.c
  1551b0b6be64f5eba760a72e19de3597  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-pixel.c
  3945e589530622f3dffbe2381c9922e1  gcc/testsuite/gcc.target/powerpc/fold-vec-unpack-short.c
  677059b338aae8245e5715c1bf783dd9  gcc/testsuite/gcc.target/powerpc/fp128_conversions.c
*************** b681248afe4bdb1d889c6999e517fe7f  gcc/te
*** 74653,74663 ****
  dcbebe071d63c21a542a5715031d4d82  gcc/testsuite/gcc.target/powerpc/fusion-p10-logadd.c
  4bdf54c34acc51427043fafe760993e1  gcc/testsuite/gcc.target/powerpc/fusion-p10-stst.c
  2016e7aba1138d1b75643f27f6d362c9  gcc/testsuite/gcc.target/powerpc/fusion-p10-stst2.c
! c21eafe688d7ccbc9bdcb0aaf81bfd30  gcc/testsuite/gcc.target/powerpc/fusion.c
! 4adade68cb00ba61c6843394fdadd638  gcc/testsuite/gcc.target/powerpc/fusion2.c
  d339d3fe4c50dd4c2727de10dcf3374e  gcc/testsuite/gcc.target/powerpc/gcse-1.c
  bbca57fae9dea88267eaea26d8c43380  gcc/testsuite/gcc.target/powerpc/gnuattr1.c
! df3448b5306ef9e06b44d7414e6a12ff  gcc/testsuite/gcc.target/powerpc/gnuattr2.c
  b0289eef57a41f5bdbb7823fee56214b  gcc/testsuite/gcc.target/powerpc/gnuattr3.c
  9af14d5dfa11a1cc8018bd66b0978df8  gcc/testsuite/gcc.target/powerpc/htm-1.c
  95e15b8f67722f785f9cc961f2fc1f4c  gcc/testsuite/gcc.target/powerpc/htm-builtin-1.c
--- 80204,80215 ----
  dcbebe071d63c21a542a5715031d4d82  gcc/testsuite/gcc.target/powerpc/fusion-p10-logadd.c
  4bdf54c34acc51427043fafe760993e1  gcc/testsuite/gcc.target/powerpc/fusion-p10-stst.c
  2016e7aba1138d1b75643f27f6d362c9  gcc/testsuite/gcc.target/powerpc/fusion-p10-stst2.c
! 9c173770fd757f9a796a946f03ad7c3d  gcc/testsuite/gcc.target/powerpc/fusion.c
! 8e636ea4149deaaca61f8238f59a81f0  gcc/testsuite/gcc.target/powerpc/fusion2.c
! c8bb039efa1ac96486e0294c85966d8f  gcc/testsuite/gcc.target/powerpc/fwprop-1.c
  d339d3fe4c50dd4c2727de10dcf3374e  gcc/testsuite/gcc.target/powerpc/gcse-1.c
  bbca57fae9dea88267eaea26d8c43380  gcc/testsuite/gcc.target/powerpc/gnuattr1.c
! 08b68023ae875e4ee9f801b117931ec6  gcc/testsuite/gcc.target/powerpc/gnuattr2.c
  b0289eef57a41f5bdbb7823fee56214b  gcc/testsuite/gcc.target/powerpc/gnuattr3.c
  9af14d5dfa11a1cc8018bd66b0978df8  gcc/testsuite/gcc.target/powerpc/htm-1.c
  95e15b8f67722f785f9cc961f2fc1f4c  gcc/testsuite/gcc.target/powerpc/htm-builtin-1.c
*************** b0289eef57a41f5bdbb7823fee56214b  gcc/te
*** 74666,74672 ****
  b777ef2a10f6f5ff643ab886bf487233  gcc/testsuite/gcc.target/powerpc/htm-xl-intrin-1.c
  8d634b2a7d443f1e5b4b69716e57ac00  gcc/testsuite/gcc.target/powerpc/indexed-addr.c
  1cc843325d44861ca12b01f8232baced  gcc/testsuite/gcc.target/powerpc/inf128-1.c
! 9207e81fac0b858b4fe23a0d073da056  gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c
  2cfd2ecd43230367d6d063b77664e314  gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c
  7893fdf7b4681a84cb4d049bea9ffc10  gcc/testsuite/gcc.target/powerpc/leaf.c
  9d79c9715a5734121e7d5c8fa078a7df  gcc/testsuite/gcc.target/powerpc/lhs-1.c
--- 80218,80224 ----
  b777ef2a10f6f5ff643ab886bf487233  gcc/testsuite/gcc.target/powerpc/htm-xl-intrin-1.c
  8d634b2a7d443f1e5b4b69716e57ac00  gcc/testsuite/gcc.target/powerpc/indexed-addr.c
  1cc843325d44861ca12b01f8232baced  gcc/testsuite/gcc.target/powerpc/inf128-1.c
! 4df3f086531ccb000a342f9552c6da9c  gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c
  2cfd2ecd43230367d6d063b77664e314  gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c
  7893fdf7b4681a84cb4d049bea9ffc10  gcc/testsuite/gcc.target/powerpc/leaf.c
  9d79c9715a5734121e7d5c8fa078a7df  gcc/testsuite/gcc.target/powerpc/lhs-1.c
*************** b94b02f54e2566541edbead974161cd8  gcc/te
*** 74702,74760 ****
  57fc310b69598562cbec3535f97fd354  gcc/testsuite/gcc.target/powerpc/mma-single-test.c
  a271f35c38761fdbb749bf1bec83cfe4  gcc/testsuite/gcc.target/powerpc/mma-supported.c
  fd90b8f8f736e4de9d0ea4c6ce93cf36  gcc/testsuite/gcc.target/powerpc/mmx-check.h
! 8ea98bf9f7849c85085a75d0cc2e56f3  gcc/testsuite/gcc.target/powerpc/mmx-packs.c
! 2ccf86033c167fa6b6775690a19bbdf6  gcc/testsuite/gcc.target/powerpc/mmx-packssdw-1.c
! 3fc88a620d2b143a524d7c4c04b5a916  gcc/testsuite/gcc.target/powerpc/mmx-packsswb-1.c
! 77ffa3bfe0356f3b7ec3c5d7e331787f  gcc/testsuite/gcc.target/powerpc/mmx-packuswb-1.c
! f317e6170331fd09002e0ad9728082de  gcc/testsuite/gcc.target/powerpc/mmx-paddb-1.c
! efbbd5c0ff1fd79d11e8b1961f2407e2  gcc/testsuite/gcc.target/powerpc/mmx-paddd-1.c
! 88dbd29bb9b12bd3c573ebc378813699  gcc/testsuite/gcc.target/powerpc/mmx-paddsb-1.c
! 769522bb4e775035d15b2c628b45e832  gcc/testsuite/gcc.target/powerpc/mmx-paddsw-1.c
! b157d72e1086660579ba7483007a9ceb  gcc/testsuite/gcc.target/powerpc/mmx-paddusb-1.c
! 137a6ac9ca4e222cc0ccdc6f1a33cd51  gcc/testsuite/gcc.target/powerpc/mmx-paddusw-1.c
! 96e2d4e0d0c310586ec7accfde77ce06  gcc/testsuite/gcc.target/powerpc/mmx-paddw-1.c
! e8ab4e6d37e5601128640e129067f0f1  gcc/testsuite/gcc.target/powerpc/mmx-pcmpeqb-1.c
! 1f4d4d3230844d896660ab7f293546a9  gcc/testsuite/gcc.target/powerpc/mmx-pcmpeqd-1.c
! 28b8fa315f2170d732264cdf881b6d05  gcc/testsuite/gcc.target/powerpc/mmx-pcmpeqw-1.c
! 7f3555bcaf4b2926e19d10954ac45ef8  gcc/testsuite/gcc.target/powerpc/mmx-pcmpgtb-1.c
! f2dd7a0ef62f04f0dab4faf5746a2cc2  gcc/testsuite/gcc.target/powerpc/mmx-pcmpgtd-1.c
! 0ffdec46d16e18bf8ff455a19229a327  gcc/testsuite/gcc.target/powerpc/mmx-pcmpgtw-1.c
! a27360f44a17fd512577f2e83c5ce3c0  gcc/testsuite/gcc.target/powerpc/mmx-pmaddwd-1.c
! 6e81fbc613ba0a057ccbdffa747580c0  gcc/testsuite/gcc.target/powerpc/mmx-pmulhw-1.c
! 61c570c8ffa252da35a63036bbfccd5c  gcc/testsuite/gcc.target/powerpc/mmx-pmullw-1.c
! 0bfc78d88d8f8c1eda1d471f70a0cc5d  gcc/testsuite/gcc.target/powerpc/mmx-pslld-1.c
! f9f0b5c56f50a307eae47693a75287a1  gcc/testsuite/gcc.target/powerpc/mmx-psllw-1.c
! ba471ad820ec613799a22e1713030a41  gcc/testsuite/gcc.target/powerpc/mmx-psrad-1.c
! 0cf961a672c22f1308c55fcf3102f65a  gcc/testsuite/gcc.target/powerpc/mmx-psraw-1.c
! a419a7d025c97022f39eb41675aa2351  gcc/testsuite/gcc.target/powerpc/mmx-psrld-1.c
! 9c055259a12609ae72f3cd97d895cc00  gcc/testsuite/gcc.target/powerpc/mmx-psrlw-1.c
! 7f196c2f5f3c89ca32b1ffe94d184470  gcc/testsuite/gcc.target/powerpc/mmx-psubb-2.c
! 21e7c1a697369505dc44b96e8c33c7e6  gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c
! 6cfefe59d2dc8828e6b002a7530afe0c  gcc/testsuite/gcc.target/powerpc/mmx-psubsb-1.c
! 1093774b0f4d973f72200bd4c6d1338a  gcc/testsuite/gcc.target/powerpc/mmx-psubsw-1.c
! 7cc4646e9a9cf213b41599b8b693ea64  gcc/testsuite/gcc.target/powerpc/mmx-psubusb-1.c
! 6debca618ff777b33ab19eb636aaae20  gcc/testsuite/gcc.target/powerpc/mmx-psubusw-1.c
! 47cccc8762009da58895e8c1467f05bd  gcc/testsuite/gcc.target/powerpc/mmx-psubw-2.c
! bf7f604072a7d4589a87709ca53da328  gcc/testsuite/gcc.target/powerpc/mmx-punpckhbw-1.c
! c293099a7794f0aab10f29687907b5ee  gcc/testsuite/gcc.target/powerpc/mmx-punpckhdq-1.c
! a415b80ac7d3605461a355a307f12336  gcc/testsuite/gcc.target/powerpc/mmx-punpckhwd-1.c
! 758a89dcb12764d68855b09f85e3a355  gcc/testsuite/gcc.target/powerpc/mmx-punpcklbw-1.c
! bc09ccd31ca386dda15202c6adf9371a  gcc/testsuite/gcc.target/powerpc/mmx-punpckldq-1.c
! 44ea7227a4af1aed1643b840469d076d  gcc/testsuite/gcc.target/powerpc/mmx-punpcklwd-1.c
! 180bf46e92dd9c837dbbc9cb04dd70c9  gcc/testsuite/gcc.target/powerpc/mod-1.c
! f86f87dd7c82f05785a8e530a4718235  gcc/testsuite/gcc.target/powerpc/mod-2.c
  e7f24c5bcf4677a0ae7a8fdcd1aeff80  gcc/testsuite/gcc.target/powerpc/mod-no_copy.c
  fed2453600d3a45ca2a5679c322ff194  gcc/testsuite/gcc.target/powerpc/mod-peephole.c
  b3bf87376bd60d32d00ef203e1cf7d6e  gcc/testsuite/gcc.target/powerpc/mod-vectorize.c
! 2a62a820771528492abcb2b5b082d93d  gcc/testsuite/gcc.target/powerpc/mul-vectorize-1.c
  0756792d071f22b4d0d92c56ab912d25  gcc/testsuite/gcc.target/powerpc/mul-vectorize-2.c
  64af73bfe790036cc6a9cae813ae5517  gcc/testsuite/gcc.target/powerpc/mul-vectorize-3.c
  fb4a75732e13475e8348aaa599f24ca9  gcc/testsuite/gcc.target/powerpc/mul-vectorize-4.c
  0eeef6e17953a9f9d3921bffff4a3fad  gcc/testsuite/gcc.target/powerpc/mulic3-1.c
  40832ab7e8baf16efb6af3d58eb2479b  gcc/testsuite/gcc.target/powerpc/mulic3-2.c
  4eaddf22e0f22b514f7215226f16b76c  gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
! 1549b9373bc2fd4008625c3dfbefb007  gcc/testsuite/gcc.target/powerpc/mulkc3-2.c
! 18aac6a2b165d96b59c08a6941c593dd  gcc/testsuite/gcc.target/powerpc/mulkc3-3.c
  1f98efd43a15bde30353489bd97a085d  gcc/testsuite/gcc.target/powerpc/nan128-1.c
  7ae49a33b45e51770e88e4a1e02a8d3e  gcc/testsuite/gcc.target/powerpc/no-r11-1.c
  0831e4d64f9c944a22351c0a3a55d827  gcc/testsuite/gcc.target/powerpc/no-r11-2.c
--- 80254,80312 ----
  57fc310b69598562cbec3535f97fd354  gcc/testsuite/gcc.target/powerpc/mma-single-test.c
  a271f35c38761fdbb749bf1bec83cfe4  gcc/testsuite/gcc.target/powerpc/mma-supported.c
  fd90b8f8f736e4de9d0ea4c6ce93cf36  gcc/testsuite/gcc.target/powerpc/mmx-check.h
! 210c41420bf3f75e10c11cd6de0d736e  gcc/testsuite/gcc.target/powerpc/mmx-packs.c
! 7ca8d5fe27eac0772869029b8f964942  gcc/testsuite/gcc.target/powerpc/mmx-packssdw-1.c
! fe977ce4bf52327567cd2ba9ca247a40  gcc/testsuite/gcc.target/powerpc/mmx-packsswb-1.c
! 698d701b09dab6a4538f4c6fd81559a9  gcc/testsuite/gcc.target/powerpc/mmx-packuswb-1.c
! 9b3da273657886a3e2bde7612aee0ab0  gcc/testsuite/gcc.target/powerpc/mmx-paddb-1.c
! 6b30355c048d9e07c99565e569ef78d2  gcc/testsuite/gcc.target/powerpc/mmx-paddd-1.c
! 1444b7059e3deeed310d2763d75fb745  gcc/testsuite/gcc.target/powerpc/mmx-paddsb-1.c
! e0542046c6b117f8e7a0be98621797ab  gcc/testsuite/gcc.target/powerpc/mmx-paddsw-1.c
! 4bcfe1e0504a070ffe3e7f1e23992c8d  gcc/testsuite/gcc.target/powerpc/mmx-paddusb-1.c
! 503faa7a3485741419ce059b14aa926e  gcc/testsuite/gcc.target/powerpc/mmx-paddusw-1.c
! b0e573290d516907539289c7285e15e9  gcc/testsuite/gcc.target/powerpc/mmx-paddw-1.c
! 19d4c40ac55ea6e6badbf79c317f6f79  gcc/testsuite/gcc.target/powerpc/mmx-pcmpeqb-1.c
! cece747e0f4fd88a307ab1cd33351ea1  gcc/testsuite/gcc.target/powerpc/mmx-pcmpeqd-1.c
! 9608b896d09190643e9e3fbcd8409304  gcc/testsuite/gcc.target/powerpc/mmx-pcmpeqw-1.c
! 141b09e9b82f1ef9bdb344ded4d82590  gcc/testsuite/gcc.target/powerpc/mmx-pcmpgtb-1.c
! 6664ba275459187c7e10bb3e097406d3  gcc/testsuite/gcc.target/powerpc/mmx-pcmpgtd-1.c
! 074d4a477eb076c4ce1b850b12eca70c  gcc/testsuite/gcc.target/powerpc/mmx-pcmpgtw-1.c
! a4223da127fa0472e1709207fb4da2e6  gcc/testsuite/gcc.target/powerpc/mmx-pmaddwd-1.c
! f420b0a3f40abd8a40f676c004d2d81b  gcc/testsuite/gcc.target/powerpc/mmx-pmulhw-1.c
! cc0a07c79f55d4b062baf831358a373f  gcc/testsuite/gcc.target/powerpc/mmx-pmullw-1.c
! 99285d664baf868cf7fc5f81289e58d6  gcc/testsuite/gcc.target/powerpc/mmx-pslld-1.c
! c94d101eab179a0e6b1e7c48582faad6  gcc/testsuite/gcc.target/powerpc/mmx-psllw-1.c
! 6a463c86e31125a73d9f524098a907cc  gcc/testsuite/gcc.target/powerpc/mmx-psrad-1.c
! 5dca3d2799eefd84928823250a51fc33  gcc/testsuite/gcc.target/powerpc/mmx-psraw-1.c
! 2efb0d234eec0f8c7ead4611e1a46130  gcc/testsuite/gcc.target/powerpc/mmx-psrld-1.c
! dab262ffdc37ed95af4664fb5422e908  gcc/testsuite/gcc.target/powerpc/mmx-psrlw-1.c
! e1fdd95921ccf0fc2ad3bbdc5928db05  gcc/testsuite/gcc.target/powerpc/mmx-psubb-2.c
! 7963afd73480a247a1add07f72e7b384  gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c
! a1bb0745a758d2d7fb42c8e9c6a49594  gcc/testsuite/gcc.target/powerpc/mmx-psubsb-1.c
! 72e46d7e685da48a66cd065b254d65f0  gcc/testsuite/gcc.target/powerpc/mmx-psubsw-1.c
! 3f659501d49437839080666c7ab40a34  gcc/testsuite/gcc.target/powerpc/mmx-psubusb-1.c
! ac357fc916938e2a633b7cb151a5638f  gcc/testsuite/gcc.target/powerpc/mmx-psubusw-1.c
! 509c27b850d16f91d63bbf7092e8876f  gcc/testsuite/gcc.target/powerpc/mmx-psubw-2.c
! 83386f895941c6028a668aa0b94c6e51  gcc/testsuite/gcc.target/powerpc/mmx-punpckhbw-1.c
! dada9b5540f865ba0c0df21dc2b72904  gcc/testsuite/gcc.target/powerpc/mmx-punpckhdq-1.c
! 730ed660e137eaa582fc606bf00216f8  gcc/testsuite/gcc.target/powerpc/mmx-punpckhwd-1.c
! 5a019836fd97d7543ada2e03a55f251d  gcc/testsuite/gcc.target/powerpc/mmx-punpcklbw-1.c
! 4c76e439b65226bcbd0e565c24d91933  gcc/testsuite/gcc.target/powerpc/mmx-punpckldq-1.c
! 88a97935277f44f82c35be04da77788e  gcc/testsuite/gcc.target/powerpc/mmx-punpcklwd-1.c
! 727ad93993ba39773cf01458fedef7c1  gcc/testsuite/gcc.target/powerpc/mod-1.c
! 2832a9d4f2590d3b9c3fdf8c23e24efc  gcc/testsuite/gcc.target/powerpc/mod-2.c
  e7f24c5bcf4677a0ae7a8fdcd1aeff80  gcc/testsuite/gcc.target/powerpc/mod-no_copy.c
  fed2453600d3a45ca2a5679c322ff194  gcc/testsuite/gcc.target/powerpc/mod-peephole.c
  b3bf87376bd60d32d00ef203e1cf7d6e  gcc/testsuite/gcc.target/powerpc/mod-vectorize.c
! 743b3b257bf6e6aadeffde146364dd0d  gcc/testsuite/gcc.target/powerpc/mul-vectorize-1.c
  0756792d071f22b4d0d92c56ab912d25  gcc/testsuite/gcc.target/powerpc/mul-vectorize-2.c
  64af73bfe790036cc6a9cae813ae5517  gcc/testsuite/gcc.target/powerpc/mul-vectorize-3.c
  fb4a75732e13475e8348aaa599f24ca9  gcc/testsuite/gcc.target/powerpc/mul-vectorize-4.c
  0eeef6e17953a9f9d3921bffff4a3fad  gcc/testsuite/gcc.target/powerpc/mulic3-1.c
  40832ab7e8baf16efb6af3d58eb2479b  gcc/testsuite/gcc.target/powerpc/mulic3-2.c
  4eaddf22e0f22b514f7215226f16b76c  gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
! f43cc23cf8c50dfa7710fe42d4410b04  gcc/testsuite/gcc.target/powerpc/mulkc3-2.c
! ab8f7421611e79a8980300ca3400cc93  gcc/testsuite/gcc.target/powerpc/mulkc3-3.c
  1f98efd43a15bde30353489bd97a085d  gcc/testsuite/gcc.target/powerpc/nan128-1.c
  7ae49a33b45e51770e88e4a1e02a8d3e  gcc/testsuite/gcc.target/powerpc/no-r11-1.c
  0831e4d64f9c944a22351c0a3a55d827  gcc/testsuite/gcc.target/powerpc/no-r11-2.c
*************** b96c1a1a69bfb6f4e16a5153a31d50f7  gcc/te
*** 74771,74823 ****
  8146fa4167bbb25230a315064dba5646  gcc/testsuite/gcc.target/powerpc/p10-bifs-vectorize-1.h
  0eb8d7ac53ad9776863e302b1988e792  gcc/testsuite/gcc.target/powerpc/p10-bifs-vectorize-run-1.c
  9c56caddea7ae0680f831cbc5cf18478  gcc/testsuite/gcc.target/powerpc/p10-identify.c
! 01797cdaaa29a1c3b7afa60542008236  gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c
  7780b667e143b7a27c0d0e2bd81ed8e4  gcc/testsuite/gcc.target/powerpc/p10_vec_xl_sext.c
! 6b3fcb3de6af2c0b3ca86ded91487247  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst-v2.c
! 54ba74546331eea6e76dd0101295232f  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c
! 8bea7369d1f259b76c9b70c7f551336b  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-1.c
! 238ee777bf6e13883524d20baf33d114  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c
! e9f047a5ded9754c5264e90f2eda9634  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-3.c
! 1412e3bc1a9a024a6d1fb33270f323cb  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-4.c
! dcf34acbf49340855b62e41838a7e645  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-5.c
! 1605b0158639d3fd0bf98d99b5337fea  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-6.c
! 0fe547fc9f8742fdc4fd68e408fb6d1c  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-7.c
! 3bf91ab0b62b47cdbeca264b9c3fbdf5  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-8.c
! 7d895bd944a22999c51a99abad7237b0  gcc/testsuite/gcc.target/powerpc/p8vector-fp.c
! aeb37b52015afabe5b71ae61de11439a  gcc/testsuite/gcc.target/powerpc/p8vector-int128-1.c
  03e5ad9b0268bf7e8d1cec36bef9bb85  gcc/testsuite/gcc.target/powerpc/p8vector-int128-2.c
! 90e3e245eb4330a85e01d9d724e310df  gcc/testsuite/gcc.target/powerpc/p8vector-ldst.c
! dd2f431b724618c3322686b2732a44b1  gcc/testsuite/gcc.target/powerpc/p8vector-vbpermq.c
! e5741a8821fcabf823c731561f6fe007  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-1.c
! 141bfd53221200ebb5b65aa17dd32cc7  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-2.c
! 5f1771310a05c32418316fd39ce1735c  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-3.c
! f894721021799aabe3eadaa2daf74231  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-4.c
! 060af2b0be9baf28c65dd6a2c3c8a530  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-5.c
! 5fad8b402567215ed28ca6fdf43f0183  gcc/testsuite/gcc.target/powerpc/p9-dimode1.c
! a7f58c62ee3a7a8f1162eb70b615945a  gcc/testsuite/gcc.target/powerpc/p9-dimode2.c
! 892408850b0143d0d0b9e22eab6d6bf7  gcc/testsuite/gcc.target/powerpc/p9-extract-1.c
! 23e74d860629275756e652adec96ff26  gcc/testsuite/gcc.target/powerpc/p9-extract-2.c
! b98e9e294f5e7e979ffc1acb72861484  gcc/testsuite/gcc.target/powerpc/p9-extract-3.c
! cf1b99547521c33d8d864faace781136  gcc/testsuite/gcc.target/powerpc/p9-extract-4.c
! 6678d47ce9b81883fb0b45e6c5d6c333  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-1.c
! 18cbd19f91352b7a14be01bcbd86d924  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-2.c
! 5b4bf2e56d3df300c0400a9aadc7e1fc  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-3.c
! 4d8c4ecfe3669d8687af38cc0c4f3a7a  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-1.c
! 3fb5bcfc98e67635f5ecdd53a0fc1a4d  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-2.c
! 414edff1c1c6bb5fdc10af42b236acf0  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
! 6a715cb43f89f921d9406b1b8a042a4e  gcc/testsuite/gcc.target/powerpc/p9-minmax-1.c
! e0ee656d5391035c8bb87de938172a70  gcc/testsuite/gcc.target/powerpc/p9-minmax-2.c
! c28edf1d4900581a18cfe9388ed98dd7  gcc/testsuite/gcc.target/powerpc/p9-minmax-3.c
! a6211dec098d657a18749d7ffe72b371  gcc/testsuite/gcc.target/powerpc/p9-novsx.c
! f1c22b7125d1d3b2d4a8cb3878d6a313  gcc/testsuite/gcc.target/powerpc/p9-options-1.c
! 9d87be0758175c69faf593117726c44c  gcc/testsuite/gcc.target/powerpc/p9-permute.c
! 886c77bc76a412a94847f37ff07e2fb9  gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c
! 19208a1ca04ecbd61dd2fc9f62b0bb17  gcc/testsuite/gcc.target/powerpc/p9-splat-1.c
! b3bd137ac2457919c51b1e0885a28cf9  gcc/testsuite/gcc.target/powerpc/p9-splat-2.c
! cdd965ef19d5f08902aa357d47055aab  gcc/testsuite/gcc.target/powerpc/p9-splat-3.c
! 9c522a85551b5bbc5d0b4c2f9a20f284  gcc/testsuite/gcc.target/powerpc/p9-splat-4.c
! a3bc962cdf97f11842afa5f6bc2c6f87  gcc/testsuite/gcc.target/powerpc/p9-splat-5.c
! 17596740248ab276808abe9c4da7815f  gcc/testsuite/gcc.target/powerpc/p9-vbpermd.c
  696e4b1b607f9c82564bfc887f22bd00  gcc/testsuite/gcc.target/powerpc/p9-vec-length-1.h
  5e9e7fcaee357c16920957129d3b8cef  gcc/testsuite/gcc.target/powerpc/p9-vec-length-2.h
  4a0f1a087435b46bd7c5bad51f004a73  gcc/testsuite/gcc.target/powerpc/p9-vec-length-3.h
--- 80323,80375 ----
  8146fa4167bbb25230a315064dba5646  gcc/testsuite/gcc.target/powerpc/p10-bifs-vectorize-1.h
  0eb8d7ac53ad9776863e302b1988e792  gcc/testsuite/gcc.target/powerpc/p10-bifs-vectorize-run-1.c
  9c56caddea7ae0680f831cbc5cf18478  gcc/testsuite/gcc.target/powerpc/p10-identify.c
! 05222dfc42774b4f3acc94610419905e  gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c
  7780b667e143b7a27c0d0e2bd81ed8e4  gcc/testsuite/gcc.target/powerpc/p10_vec_xl_sext.c
! ce50e9d23c19760a47653d7f715ecee9  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst-v2.c
! fb42625c289454bec0def912cc30158c  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c
! 0afe890a8a6d0e3f48d6953f6d929e24  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-1.c
! f09d1efdb94c4df7242483a24931c268  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c
! ce2b08fad0fb54ad34cf098a6d6911e1  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-3.c
! 27bd7a00d6e51a2a6a0ee49806b1ae0b  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-4.c
! 45ceb62bbb263669a59d5e6dc11d772b  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-5.c
! d6e6c66ca8a20dbddc85faa6f4079629  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-6.c
! dfd11ace4c77ba9f6d612eca57c14d66  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-7.c
! 82ee5955406177d024c2b5dfbd6e3c04  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-8.c
! 3f36125dba0b678b5c4ebda3ea0972ce  gcc/testsuite/gcc.target/powerpc/p8vector-fp.c
! a2e5b68bfd2ea3d276b454ec96d52e0d  gcc/testsuite/gcc.target/powerpc/p8vector-int128-1.c
  03e5ad9b0268bf7e8d1cec36bef9bb85  gcc/testsuite/gcc.target/powerpc/p8vector-int128-2.c
! d29e74e0129823dc36f1374762ad6ad5  gcc/testsuite/gcc.target/powerpc/p8vector-ldst.c
! 071ae9020e6ba54f477151c14b04a6b6  gcc/testsuite/gcc.target/powerpc/p8vector-vbpermq.c
! e1e635bdf4ae157e18841dd10e02a6da  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-1.c
! 1e12f58b8023a9191db817b650c73a88  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-2.c
! 3f785b89f9e79a075e4ee1c248a11656  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-3.c
! 8fe2147d51f2bd88750de3894262aa81  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-4.c
! ac13569092da49f9f65c7e25f4d24195  gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-5.c
! c901ffec5dbe6e6d78dbfb3a34f12b92  gcc/testsuite/gcc.target/powerpc/p9-dimode1.c
! 5bdae9209885901fdd89f59cdd943038  gcc/testsuite/gcc.target/powerpc/p9-dimode2.c
! 6e8fc778a1696df8771df8ca1237472f  gcc/testsuite/gcc.target/powerpc/p9-extract-1.c
! d6afc35c35702136a708d04f126a82e6  gcc/testsuite/gcc.target/powerpc/p9-extract-2.c
! c56a6ab7e6d523ace3d91f0a065ebb54  gcc/testsuite/gcc.target/powerpc/p9-extract-3.c
! c2b949690cb6e72dd546aed5827b64c0  gcc/testsuite/gcc.target/powerpc/p9-extract-4.c
! b04e7918ede53e0a53b858a3b3a641ff  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-1.c
! 1791a584448303eef8a20cec8498f6c1  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-2.c
! 59edf834163c9e7b0566e30d948031fa  gcc/testsuite/gcc.target/powerpc/p9-fpcvt-3.c
! ace16d23553bab880b5e6c8794934a6e  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-1.c
! 19121f17c7feb72d670e9382ad5965b6  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-2.c
! 1c4096318894906aeea3c59f6151ee65  gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
! c905f0acd58ea3f53342d0a5e6ad31d1  gcc/testsuite/gcc.target/powerpc/p9-minmax-1.c
! 124520ee5046cfc525fde09738460967  gcc/testsuite/gcc.target/powerpc/p9-minmax-2.c
! 0a8507f11d2002e05f6be0a6d74409d6  gcc/testsuite/gcc.target/powerpc/p9-minmax-3.c
! 42cd8cbf8d7b5a9d9dac89b697c51d25  gcc/testsuite/gcc.target/powerpc/p9-novsx.c
! ab831911f1b70765cbcd5d4fc610974c  gcc/testsuite/gcc.target/powerpc/p9-options-1.c
! 6b429daabb08b819a3d29cfef601aa84  gcc/testsuite/gcc.target/powerpc/p9-permute.c
! b2b91c760b5f7a51e1840155259ba78c  gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c
! 6cb138c3098281ff4755736c8203469d  gcc/testsuite/gcc.target/powerpc/p9-splat-1.c
! 0fe0246f06a0106606d50393827bbaad  gcc/testsuite/gcc.target/powerpc/p9-splat-2.c
! b995e4a018233df59ac81589a455bb9a  gcc/testsuite/gcc.target/powerpc/p9-splat-3.c
! 866b5c9ac7d351fedfb3a80146f5180d  gcc/testsuite/gcc.target/powerpc/p9-splat-4.c
! c0182230f1d8b9ae13b90489a6c51bc8  gcc/testsuite/gcc.target/powerpc/p9-splat-5.c
! 1e57f5b08332092fd62690550a5882d0  gcc/testsuite/gcc.target/powerpc/p9-vbpermd.c
  696e4b1b607f9c82564bfc887f22bd00  gcc/testsuite/gcc.target/powerpc/p9-vec-length-1.h
  5e9e7fcaee357c16920957129d3b8cef  gcc/testsuite/gcc.target/powerpc/p9-vec-length-2.h
  4a0f1a087435b46bd7c5bad51f004a73  gcc/testsuite/gcc.target/powerpc/p9-vec-length-3.h
*************** e1b8cd08f8318d0a6b2e5b855075001d  gcc/te
*** 74826,74863 ****
  5d9fad6eebd37291c65898f8fbfd8aa4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-6.h
  4b4d6e3387e320581f6e26cd33efa8c4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-7.h
  542bcc43fcc4ae002c6071e4fb82f606  gcc/testsuite/gcc.target/powerpc/p9-vec-length-8.h
! b6245cfe8555a1c112ab77aa31231677  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c
! 2c4b0d06849c2813d8ba1cc5c99530ef  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c
! b1888bfc7a38a6175d5283f28a368a2c  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c
! f0e6330c98b8592e570e0d33c210435b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c
! b5343082f0bc012ab020a3c7990f8288  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c
! 534b0ef33b44ea2c96d3d9760d39a66e  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c
! 3b95eb0e16f740c59fed518b1061aafd  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-7.c
! ada3a85647eeb3b0a752188b923a7c80  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c
! 661823bc37a352c7a0284caefaf94ad3  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-1.c
! c93356c7aed0735689569396e6f3134e  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-2.c
! 9855b5087d8f6fff301d3c34593e4278  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-3.c
! 20a921820c1b8fd0817201a97b934f25  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-4.c
! 54d2fc7218c1bbcbe69e86ee0465fff5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-5.c
! befd102cc556de49c551f984f7607ff5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-6.c
! 6ab4acea9bc066025498eb5a8caa7ce8  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-7.c
! d9bf88eb680a6b1eb840090871e1de9d  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-8.c
! 9a27c1344dbb9441c877b805dc907046  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c
! 33fa9a224f1e37ab8974891f072663e6  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c
! 521b01c205745a9d2e925dcd51eb848d  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c
! acf38bf1b4cd8c6aba876365302e136c  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c
! 18f0bd05f35a09e69cd4c2810bdcaec5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c
! 962ca313d6325e87c01096c9dfe0d5e8  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c
! abd5542b140772430f89fdc57f0f9b17  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-7.c
! a38e3be0257e605d028979c9c058102a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c
! 347f7ced5af84328cec5b76767c2dfd0  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-1.c
! 6011bbefd012a5722b03bf23fc01c8b7  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-2.c
! fa24c780840f4b77dd9ff11801a2aa9a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-3.c
! 9d773ce9977c70a974bbe326e0de73e0  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-4.c
! 314492316c577b2f6456bff8a6cd3fc1  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-5.c
! ee8c0fe3fe328a4102e36f1a91ad6105  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-6.c
! 8ca03f8a0c659a56151a97f943da50a6  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-7.c
! 5589e88925a32c62e55841f14bf05ffb  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-8.c
  942cd323752023f463209b0e08637fa7  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-1.h
  04a50a51b12149b246a7f9bdfb5b49c5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-2.h
  0c85b9a857c49d8c5a3483bfee3bab0f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-3.h
--- 80378,80415 ----
  5d9fad6eebd37291c65898f8fbfd8aa4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-6.h
  4b4d6e3387e320581f6e26cd33efa8c4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-7.h
  542bcc43fcc4ae002c6071e4fb82f606  gcc/testsuite/gcc.target/powerpc/p9-vec-length-8.h
! 3481f76f7fe2863004f67b857857276a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c
! a8598b25a5a9e2de440b4f0799f34d7c  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c
! 077cca21aeb7a2674fe67a66892d4e5f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c
! 3a5d45f2abdee8d2f74d10c6c83aeaa3  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c
! a74f22b30ddea310dd0067c12c4de1fc  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c
! 07d3f8c90b7147eacc8c968b46ccb681  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c
! 73039ed74373f00b2a4cf224999b68ca  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-7.c
! 88d60546e84a102e52621ec4d0b9da85  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c
! 6edce6a791cdbade4a7d5c4e46d8e90f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-1.c
! 3d8e128315c701984cca5647c4002f7b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-2.c
! 6684496deefa50081491a6995956bc24  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-3.c
! 3d8c20d02893de3074e4e6c635e15d2f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-4.c
! 7daec4ac3b1b79cb468e4f4ae9eac2b4  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-5.c
! 8aa319fd77a8f941baaff5e465c3d8c6  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-6.c
! 17b5e5670d68da521daf73eaa8709d16  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-7.c
! d4b2d539cd9714f8dfd62917e74a9590  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-8.c
! a6b3f7924d9d44ee8f36278e8ff4bd3b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c
! a8a3b64bde884f5dfe1d8eced32bc9e3  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c
! 8ad3c1f1792eebd06e56efbf19ebba34  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c
! 9edd15c061d0e24c1976cf94020bfeb1  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c
! 05cfc612f8310fcaf7dd11fd056874c5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c
! 5c2ced57de22cf4b395db9e0f188cf0a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c
! 060390a4ed6eb910d9bb0de8101e535a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-7.c
! 2fc6a35349357e3e9e48c72f072644d2  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c
! 9262132fc23ca0add3cdfed1b93e481b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-1.c
! 0b227a6bff72009e18b683a68c5d6b36  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-2.c
! b52e4590c5fd1893e9c00c1448de3880  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-3.c
! 8093d942a1b72357219dc39e76755486  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-4.c
! a0081e516704875ee488f224a221119f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-5.c
! 61a2b26d7b6eb6d0b2ee106081690db5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-6.c
! 2ea6abf42b9365dc372966c2b89f2013  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-7.c
! b2f6fcc92feced95a1b9a33222f012be  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-8.c
  942cd323752023f463209b0e08637fa7  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-1.h
  04a50a51b12149b246a7f9bdfb5b49c5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-2.h
  0c85b9a857c49d8c5a3483bfee3bab0f  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-3.h
*************** ee8c0fe3fe328a4102e36f1a91ad6105  gcc/te
*** 74867,74878 ****
  5fef58d2720ce28dbd5bb63b0b62093a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-7.h
  71775cec123fe96ec58d805a44df5147  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-8.h
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/powerpc/p9-vec-length.h
! 384af3a86160f8a14629fb05f541acd4  gcc/testsuite/gcc.target/powerpc/p9-vneg.c
! bc701c10be9cbdfa6b05c521a259cd14  gcc/testsuite/gcc.target/powerpc/p9-vparity.c
! b26961d59fb61a1d972f9bce8166abcf  gcc/testsuite/gcc.target/powerpc/p9-vpermr.c
! effdc6f6f7d2783f62ecfc6b15424d8e  gcc/testsuite/gcc.target/powerpc/p9-xxbr-1.c
! f5ff4265dd8eef473babbbc9f92afdc2  gcc/testsuite/gcc.target/powerpc/p9-xxbr-2.c
! a2e51f3b0b91bf8206250c1ee0df078c  gcc/testsuite/gcc.target/powerpc/p9-xxbr-3.c
  b396e8c2ddafdac99a9e2e3405b62059  gcc/testsuite/gcc.target/powerpc/pack01.c
  e6411f2bd538317acd5d904235c162ea  gcc/testsuite/gcc.target/powerpc/pack02.c
  ef937a62c12c8f2079f32ebb9fe33257  gcc/testsuite/gcc.target/powerpc/pack03.c
--- 80419,80430 ----
  5fef58d2720ce28dbd5bb63b0b62093a  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-7.h
  71775cec123fe96ec58d805a44df5147  gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-8.h
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/powerpc/p9-vec-length.h
! 05e1fc0ae76c326cff3d00b367daf8c4  gcc/testsuite/gcc.target/powerpc/p9-vneg.c
! 50aa7ddc9012084beaf8c7dd08c1221e  gcc/testsuite/gcc.target/powerpc/p9-vparity.c
! b73b48482a1fb36badb568f421ae32d8  gcc/testsuite/gcc.target/powerpc/p9-vpermr.c
! 12ce8eaa54a14a664e3183f479b1b11c  gcc/testsuite/gcc.target/powerpc/p9-xxbr-1.c
! 7522910205aabbef3fff8a3afa3e1115  gcc/testsuite/gcc.target/powerpc/p9-xxbr-2.c
! 3f3355a1466191c23ec4966ce2295259  gcc/testsuite/gcc.target/powerpc/p9-xxbr-3.c
  b396e8c2ddafdac99a9e2e3405b62059  gcc/testsuite/gcc.target/powerpc/pack01.c
  e6411f2bd538317acd5d904235c162ea  gcc/testsuite/gcc.target/powerpc/pack02.c
  ef937a62c12c8f2079f32ebb9fe33257  gcc/testsuite/gcc.target/powerpc/pack03.c
*************** a49cebe820198e98df6e4c433d7270fd  gcc/te
*** 74886,74891 ****
--- 80438,80444 ----
  42f0dc64ed6bcc9e20fed0286081f606  gcc/testsuite/gcc.target/powerpc/paired-7.c
  eb724f0712c2e09bd99aa65ce0b1419c  gcc/testsuite/gcc.target/powerpc/paired-8.c
  b1d50d914f0b51e97312384685214bc6  gcc/testsuite/gcc.target/powerpc/paired-9.c
+ 5f656f3dc8fc5da9c6066bf924a21932  gcc/testsuite/gcc.target/powerpc/parall_5insn_const.c
  86c888f921328d6e3f8fa16fa17951f3  gcc/testsuite/gcc.target/powerpc/parity-1.c
  be69e5f730b4a7750a23ddb5eb67196c  gcc/testsuite/gcc.target/powerpc/pcrel-opt-inc-di.c
  a73e38c323617c6a0e98a2978e87b1a4  gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-df.c
*************** c7871cae66a8bd5f305e09292633bdf2  gcc/te
*** 74902,74908 ****
  ddca0244558681459a2d8f4e17b0b300  gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-sf.c
  3e8d7f176543fe17c8e0304a9242642e  gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-si.c
  43200950191f16f082e3dd62aaabaf78  gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-vector.c
! f3bcfcd71339225d3b3fc35393553b55  gcc/testsuite/gcc.target/powerpc/pcrel-sibcall-1.c
  463f06956e65859a0ffae0be953f89e2  gcc/testsuite/gcc.target/powerpc/pdep-0.c
  7b38d1effbbe804bcb84bd922a858891  gcc/testsuite/gcc.target/powerpc/pdep-1.c
  203ef0c0c9ee3953a67395f05dd9e0fb  gcc/testsuite/gcc.target/powerpc/pextd-0.c
--- 80455,80461 ----
  ddca0244558681459a2d8f4e17b0b300  gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-sf.c
  3e8d7f176543fe17c8e0304a9242642e  gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-si.c
  43200950191f16f082e3dd62aaabaf78  gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-vector.c
! 2420be689c3a00a4f8c4e14587187dbc  gcc/testsuite/gcc.target/powerpc/pcrel-sibcall-1.c
  463f06956e65859a0ffae0be953f89e2  gcc/testsuite/gcc.target/powerpc/pdep-0.c
  7b38d1effbbe804bcb84bd922a858891  gcc/testsuite/gcc.target/powerpc/pdep-1.c
  203ef0c0c9ee3953a67395f05dd9e0fb  gcc/testsuite/gcc.target/powerpc/pextd-0.c
*************** f3bcfcd71339225d3b3fc35393553b55  gcc/te
*** 74910,74916 ****
  b818a05f9892ef086f53347beb95c5ab  gcc/testsuite/gcc.target/powerpc/popcount-1.c
  a1ca0398bda92fa2d58fffbdae74b412  gcc/testsuite/gcc.target/powerpc/popcount-2.c
  765612a7627c33c6b923cafa4b6f8492  gcc/testsuite/gcc.target/powerpc/popcount-3.c
! c549f352f6ea953815eab6307c23df14  gcc/testsuite/gcc.target/powerpc/powerpc.exp
  7b955220897e3c489f9cc6a3dfbb95eb  gcc/testsuite/gcc.target/powerpc/ppc-and-1.c
  d6e0d31ab4778feea50f0fdf0f3bcd89  gcc/testsuite/gcc.target/powerpc/ppc-bitfield1.c
  1ea7507881ba72f6b3c6548f30014d46  gcc/testsuite/gcc.target/powerpc/ppc-compare-1.c
--- 80463,80469 ----
  b818a05f9892ef086f53347beb95c5ab  gcc/testsuite/gcc.target/powerpc/popcount-1.c
  a1ca0398bda92fa2d58fffbdae74b412  gcc/testsuite/gcc.target/powerpc/popcount-2.c
  765612a7627c33c6b923cafa4b6f8492  gcc/testsuite/gcc.target/powerpc/popcount-3.c
! 6b492bc3411dc7499a78324c03cb41ef  gcc/testsuite/gcc.target/powerpc/powerpc.exp
  7b955220897e3c489f9cc6a3dfbb95eb  gcc/testsuite/gcc.target/powerpc/ppc-and-1.c
  d6e0d31ab4778feea50f0fdf0f3bcd89  gcc/testsuite/gcc.target/powerpc/ppc-bitfield1.c
  1ea7507881ba72f6b3c6548f30014d46  gcc/testsuite/gcc.target/powerpc/ppc-compare-1.c
*************** dbe8b7a61a7368d65f67bfc4131425cf  gcc/te
*** 74927,74935 ****
  b49bfc8892e32ccd4715b924f41106d6  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c
  90d042fffee10d77e01ab7cf9fcbb7c1  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c
  546f8b1533e6aef90ce72768fe282cb0  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ieee128-math.f90
! dc7de1f5fb8e08a6a2d1685a834561f0  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
  52ce6ab70ec07f3c0a8847b56ee3e297  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr102767.f90
! 7053a555244823afb7f5781e652a5180  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90
  164d50a721edad82a9cd9f4b63b1b8f9  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-1.c
  98f6990b548a4e10341ee0039997e942  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-10.c
  9f7c58381e366ddea9a6746fd8d828e0  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-11.c
--- 80480,80488 ----
  b49bfc8892e32ccd4715b924f41106d6  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c
  90d042fffee10d77e01ab7cf9fcbb7c1  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c
  546f8b1533e6aef90ce72768fe282cb0  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ieee128-math.f90
! 0b1c8f2988fac4a7e180614c255710a5  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
  52ce6ab70ec07f3c0a8847b56ee3e297  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr102767.f90
! 75c57658632cc40e9ab26cec498888fa  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90
  164d50a721edad82a9cd9f4b63b1b8f9  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-1.c
  98f6990b548a4e10341ee0039997e942  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-10.c
  9f7c58381e366ddea9a6746fd8d828e0  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-11.c
*************** b7322913d151f09caa41a4c0c0b086ea  gcc/te
*** 74954,74961 ****
  6b09e7266618e801c185fac6b9279725  gcc/testsuite/gcc.target/powerpc/ppc-paired.c
  e6fc3dbdad2c38eeb480490d619f3681  gcc/testsuite/gcc.target/powerpc/ppc-pow.c
  2b97ffc2689d0d97f0583e49e63ce667  gcc/testsuite/gcc.target/powerpc/ppc-round.c
! f2d3a6dbe5a7a5022c1f48fdd8952252  gcc/testsuite/gcc.target/powerpc/ppc-round2.c
! dc85587b8ee1e7549684620b9583a8cf  gcc/testsuite/gcc.target/powerpc/ppc-round3.c
  01aaaef3cb8cee0f105c2e9489dc423d  gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c
  9dc1fa13d3f31bcd3a134627edb4458a  gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c
  031e121f3288d78b35a626363fbb6306  gcc/testsuite/gcc.target/powerpc/ppc-stackalign-1.c
--- 80507,80514 ----
  6b09e7266618e801c185fac6b9279725  gcc/testsuite/gcc.target/powerpc/ppc-paired.c
  e6fc3dbdad2c38eeb480490d619f3681  gcc/testsuite/gcc.target/powerpc/ppc-pow.c
  2b97ffc2689d0d97f0583e49e63ce667  gcc/testsuite/gcc.target/powerpc/ppc-round.c
! e2097fc13132305733d18f95106ab316  gcc/testsuite/gcc.target/powerpc/ppc-round2.c
! 27c55f2bb703feef5ef2814276012a00  gcc/testsuite/gcc.target/powerpc/ppc-round3.c
  01aaaef3cb8cee0f105c2e9489dc423d  gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c
  9dc1fa13d3f31bcd3a134627edb4458a  gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c
  031e121f3288d78b35a626363fbb6306  gcc/testsuite/gcc.target/powerpc/ppc-stackalign-1.c
*************** b6bd72515ca594257e5ab11b307231e8  gcc/te
*** 74977,74986 ****
  322275a6e18c464401bb8e7d050b7539  gcc/testsuite/gcc.target/powerpc/ppc64-toc.c
  a64bd4e47397af3253bc9e8dc2c56780  gcc/testsuite/gcc.target/powerpc/ppu-intrinsics.c
  ef3b097387678432aef397a313268021  gcc/testsuite/gcc.target/powerpc/pr100085.c
  1303cdaf34dd8ca56079b84c2ea25cc0  gcc/testsuite/gcc.target/powerpc/pr100645.c
  5ccf50d6af741aec776b2d54411331d5  gcc/testsuite/gcc.target/powerpc/pr100777.c
! 75fb37badf6ba6dceeec125380fbd87c  gcc/testsuite/gcc.target/powerpc/pr100866-1.c
! 6ad97209debb8a530eaf908370f96c0b  gcc/testsuite/gcc.target/powerpc/pr100866-2.c
  93530f0352e114499a2243d7a2a63830  gcc/testsuite/gcc.target/powerpc/pr101129.c
  98ac1105d04b59ee48240bf0f7de65df  gcc/testsuite/gcc.target/powerpc/pr101324.c
  49e2861f8bafbfa8fb4beaf059a21224  gcc/testsuite/gcc.target/powerpc/pr101384-1.c
--- 80530,80540 ----
  322275a6e18c464401bb8e7d050b7539  gcc/testsuite/gcc.target/powerpc/ppc64-toc.c
  a64bd4e47397af3253bc9e8dc2c56780  gcc/testsuite/gcc.target/powerpc/ppu-intrinsics.c
  ef3b097387678432aef397a313268021  gcc/testsuite/gcc.target/powerpc/pr100085.c
+ dd5152504d225107b11fb67b0294b0c1  gcc/testsuite/gcc.target/powerpc/pr100106-sa.c
  1303cdaf34dd8ca56079b84c2ea25cc0  gcc/testsuite/gcc.target/powerpc/pr100645.c
  5ccf50d6af741aec776b2d54411331d5  gcc/testsuite/gcc.target/powerpc/pr100777.c
! b92b00752870bc2c7ef7b6348079936c  gcc/testsuite/gcc.target/powerpc/pr100866-1.c
! 28412cf7e4303340e474aa5bb58c3993  gcc/testsuite/gcc.target/powerpc/pr100866-2.c
  93530f0352e114499a2243d7a2a63830  gcc/testsuite/gcc.target/powerpc/pr101129.c
  98ac1105d04b59ee48240bf0f7de65df  gcc/testsuite/gcc.target/powerpc/pr101324.c
  49e2861f8bafbfa8fb4beaf059a21224  gcc/testsuite/gcc.target/powerpc/pr101384-1.c
*************** a192830e09e3a3d8478a89f2b2add0ff  gcc/te
*** 75002,75025 ****
  b47ab1f05bef402d7e2e00653ef4fae7  gcc/testsuite/gcc.target/powerpc/pr103109-1.c
  2ca490f74221b15ca25bbbea22261a60  gcc/testsuite/gcc.target/powerpc/pr103109-2.c
  459499543bab72d501d949ef029805a7  gcc/testsuite/gcc.target/powerpc/pr103109.h
! 848df019550d5cc820772a40ac5a43de  gcc/testsuite/gcc.target/powerpc/pr103124.c
  0a52159bfa51b1365996904b04ac429e  gcc/testsuite/gcc.target/powerpc/pr103127.c
  3a624f553d6aa779c9ac3ded4d4e2396  gcc/testsuite/gcc.target/powerpc/pr103316.c
  2e28abb3dab00a40af19eb41bc4d56ce  gcc/testsuite/gcc.target/powerpc/pr103353.c
  4a0d8fa948f1e42c9d8e4482f83147b5  gcc/testsuite/gcc.target/powerpc/pr103515.c
  20a7942f4601125d17110951f0d9d799  gcc/testsuite/gcc.target/powerpc/pr103627-1.c
  75bf709f259ebd7bb4ea3bb9e4c7a6e3  gcc/testsuite/gcc.target/powerpc/pr103627-2.c
  173204ae2ee9c78ee24b407929800cd8  gcc/testsuite/gcc.target/powerpc/pr103627-3.c
  cb6e7330d4dd26c88108858950fb503f  gcc/testsuite/gcc.target/powerpc/pr103702.c
  ed0696b7f115d5ca0a4d67f86142bcff  gcc/testsuite/gcc.target/powerpc/pr103743.c
  718ffe2bb1815e937f879e7cf1f059f8  gcc/testsuite/gcc.target/powerpc/pr103743_1.c
! 4c5fec3c22510255ca3a019ae8a8db95  gcc/testsuite/gcc.target/powerpc/pr104015-1.c
  b8b074d85922e675276b730f8e4cee82  gcc/testsuite/gcc.target/powerpc/pr104015-2.c
  b7339ab4137e4c5175deca053bb790c8  gcc/testsuite/gcc.target/powerpc/pr104208-1.c
  7dff0a95f65947b541c04da0c7b307a5  gcc/testsuite/gcc.target/powerpc/pr104208-2.c
! f6ac3c27283c48efaf0d82dfeb54c5bd  gcc/testsuite/gcc.target/powerpc/pr104239-1.c
! 97f7181aacfdfde9e170de93028d3af8  gcc/testsuite/gcc.target/powerpc/pr104239-2.c
! df3d484780813f669a79bf679fb169af  gcc/testsuite/gcc.target/powerpc/pr104239-3.c
  76860a5a20e1c892c05c24cdc70fe3c2  gcc/testsuite/gcc.target/powerpc/pr104253.c
  bcea25fcc7f7d5b31ffe8cfbc60716ae  gcc/testsuite/gcc.target/powerpc/pr104482.c
  2b6918b6554ea8bb4c4efc7647cb4607  gcc/testsuite/gcc.target/powerpc/pr104698-1.c
--- 80556,80583 ----
  b47ab1f05bef402d7e2e00653ef4fae7  gcc/testsuite/gcc.target/powerpc/pr103109-1.c
  2ca490f74221b15ca25bbbea22261a60  gcc/testsuite/gcc.target/powerpc/pr103109-2.c
  459499543bab72d501d949ef029805a7  gcc/testsuite/gcc.target/powerpc/pr103109.h
! 2bb096d69154d89acabffc3e80657091  gcc/testsuite/gcc.target/powerpc/pr103124.c
  0a52159bfa51b1365996904b04ac429e  gcc/testsuite/gcc.target/powerpc/pr103127.c
  3a624f553d6aa779c9ac3ded4d4e2396  gcc/testsuite/gcc.target/powerpc/pr103316.c
  2e28abb3dab00a40af19eb41bc4d56ce  gcc/testsuite/gcc.target/powerpc/pr103353.c
  4a0d8fa948f1e42c9d8e4482f83147b5  gcc/testsuite/gcc.target/powerpc/pr103515.c
+ ff6beddf5791184ad2153d11407b223e  gcc/testsuite/gcc.target/powerpc/pr103605-1.c
+ ad70b871b186054c102033e5bb98dede  gcc/testsuite/gcc.target/powerpc/pr103605-2.c
+ ddba8d82446a17f0e2280f3a093bc891  gcc/testsuite/gcc.target/powerpc/pr103605.h
  20a7942f4601125d17110951f0d9d799  gcc/testsuite/gcc.target/powerpc/pr103627-1.c
  75bf709f259ebd7bb4ea3bb9e4c7a6e3  gcc/testsuite/gcc.target/powerpc/pr103627-2.c
  173204ae2ee9c78ee24b407929800cd8  gcc/testsuite/gcc.target/powerpc/pr103627-3.c
  cb6e7330d4dd26c88108858950fb503f  gcc/testsuite/gcc.target/powerpc/pr103702.c
  ed0696b7f115d5ca0a4d67f86142bcff  gcc/testsuite/gcc.target/powerpc/pr103743.c
  718ffe2bb1815e937f879e7cf1f059f8  gcc/testsuite/gcc.target/powerpc/pr103743_1.c
! 816c960682e8ea5af26623ce10209800  gcc/testsuite/gcc.target/powerpc/pr104015-1.c
  b8b074d85922e675276b730f8e4cee82  gcc/testsuite/gcc.target/powerpc/pr104015-2.c
+ 068a1f1e7126c1da53e2410a1529e853  gcc/testsuite/gcc.target/powerpc/pr104124.c
  b7339ab4137e4c5175deca053bb790c8  gcc/testsuite/gcc.target/powerpc/pr104208-1.c
  7dff0a95f65947b541c04da0c7b307a5  gcc/testsuite/gcc.target/powerpc/pr104208-2.c
! 7f46383478a7b864e4654e5626f656d8  gcc/testsuite/gcc.target/powerpc/pr104239-1.c
! 8e5ae8b58b0aad99b2d5318371418436  gcc/testsuite/gcc.target/powerpc/pr104239-2.c
! 63c573f6e0766cc03580bd31511ab2a8  gcc/testsuite/gcc.target/powerpc/pr104239-3.c
  76860a5a20e1c892c05c24cdc70fe3c2  gcc/testsuite/gcc.target/powerpc/pr104253.c
  bcea25fcc7f7d5b31ffe8cfbc60716ae  gcc/testsuite/gcc.target/powerpc/pr104482.c
  2b6918b6554ea8bb4c4efc7647cb4607  gcc/testsuite/gcc.target/powerpc/pr104698-1.c
*************** e1311d3408303e5d3bb31126a2f3dcaf  gcc/te
*** 75040,75065 ****
  19c79cd734687058ce13a5486b78bd77  gcc/testsuite/gcc.target/powerpc/pr106322.c
  7b0904894180cdbddf64e53f5fbe7f6c  gcc/testsuite/gcc.target/powerpc/pr106460.c
  7de40a1c4b42a4fb49cc3f14baa10c1e  gcc/testsuite/gcc.target/powerpc/pr106550.c
! 07835abe5928af6d0923e12335abf594  gcc/testsuite/gcc.target/powerpc/pr106550_1.c
  739048c640db1dc5dea58911f6dcac93  gcc/testsuite/gcc.target/powerpc/pr106680-1.c
  ffc27d1ed5ea543d6fefe54a1710ea32  gcc/testsuite/gcc.target/powerpc/pr106680-2.c
  2e7ce8e63be729d8e1c7833fed3ed847  gcc/testsuite/gcc.target/powerpc/pr106680-3.c
  925b4846930bdcf4c7d3c04aad8fbcb4  gcc/testsuite/gcc.target/powerpc/pr106680-4.c
! 4a7e08f1ffe7c6ff37e4adfdda70773d  gcc/testsuite/gcc.target/powerpc/pr106708.c
  b89eb373488426e128fceff637542836  gcc/testsuite/gcc.target/powerpc/pr106736-1.c
  b628655d5e6da478a0338b6a99c2b547  gcc/testsuite/gcc.target/powerpc/pr106736-2.c
  268c405264ea346b9620a21b4008ae3d  gcc/testsuite/gcc.target/powerpc/pr106736-3.c
  80f943ae05ca5bf1bdb90616a4a55bee  gcc/testsuite/gcc.target/powerpc/pr106736-4.c
  8c4791ff0309e78169b9fa522b35014a  gcc/testsuite/gcc.target/powerpc/pr106736-5.c
  cc371da54f8baaffe7810cf7f4a388f7  gcc/testsuite/gcc.target/powerpc/pr106833.c
! 501399bb132d9f61ee543ed14dcc26d9  gcc/testsuite/gcc.target/powerpc/pr107412.c
  cf6fc6f2cd4ce40de4bfcae2384bc88d  gcc/testsuite/gcc.target/powerpc/pr108272-1.c
  f50d5d85d2fd6cdb2c24ba2f99c5ed50  gcc/testsuite/gcc.target/powerpc/pr108272-2.c
  80b0790ba15d5f168fdb877edfba8e3c  gcc/testsuite/gcc.target/powerpc/pr108272-3.c
  8b12dd4a97ca50e2f9880c335cebf74b  gcc/testsuite/gcc.target/powerpc/pr108272-4.c
  40726e9ba9f0dbe699d13f0248929db7  gcc/testsuite/gcc.target/powerpc/pr108348-1.c
  590060f31f74e624d8948e67f5efe8a9  gcc/testsuite/gcc.target/powerpc/pr108348-2.c
! d4695291f14d81c9829000b656211b10  gcc/testsuite/gcc.target/powerpc/pr108396.c
  d1ebac89ce86ba01adcab56447399dd9  gcc/testsuite/gcc.target/powerpc/pr108699.c
  8dc6f7b3f475db76d4acd724068737cc  gcc/testsuite/gcc.target/powerpc/pr108787.c
  4e716a0a290d9aa588276f96d74da875  gcc/testsuite/gcc.target/powerpc/pr108862.c
--- 80598,80627 ----
  19c79cd734687058ce13a5486b78bd77  gcc/testsuite/gcc.target/powerpc/pr106322.c
  7b0904894180cdbddf64e53f5fbe7f6c  gcc/testsuite/gcc.target/powerpc/pr106460.c
  7de40a1c4b42a4fb49cc3f14baa10c1e  gcc/testsuite/gcc.target/powerpc/pr106550.c
! cc7362c52eacff25a0a7423c094b03e5  gcc/testsuite/gcc.target/powerpc/pr106550_1.c
  739048c640db1dc5dea58911f6dcac93  gcc/testsuite/gcc.target/powerpc/pr106680-1.c
  ffc27d1ed5ea543d6fefe54a1710ea32  gcc/testsuite/gcc.target/powerpc/pr106680-2.c
  2e7ce8e63be729d8e1c7833fed3ed847  gcc/testsuite/gcc.target/powerpc/pr106680-3.c
  925b4846930bdcf4c7d3c04aad8fbcb4  gcc/testsuite/gcc.target/powerpc/pr106680-4.c
! 9d22d4b7ac8d3bc9f60f0489b4ffe848  gcc/testsuite/gcc.target/powerpc/pr106708.c
  b89eb373488426e128fceff637542836  gcc/testsuite/gcc.target/powerpc/pr106736-1.c
  b628655d5e6da478a0338b6a99c2b547  gcc/testsuite/gcc.target/powerpc/pr106736-2.c
  268c405264ea346b9620a21b4008ae3d  gcc/testsuite/gcc.target/powerpc/pr106736-3.c
  80f943ae05ca5bf1bdb90616a4a55bee  gcc/testsuite/gcc.target/powerpc/pr106736-4.c
  8c4791ff0309e78169b9fa522b35014a  gcc/testsuite/gcc.target/powerpc/pr106736-5.c
+ 2add2a2b22d40851dbfc92d531653c50  gcc/testsuite/gcc.target/powerpc/pr106769-p8.c
+ 9917990833a14d0dde54c2ac836650c4  gcc/testsuite/gcc.target/powerpc/pr106769-p9.c
+ 0963f14ccd4877c21a47d1a3bd7eb59e  gcc/testsuite/gcc.target/powerpc/pr106769.h
  cc371da54f8baaffe7810cf7f4a388f7  gcc/testsuite/gcc.target/powerpc/pr106833.c
! 71b7941237afb0106a85f37e8683cc8d  gcc/testsuite/gcc.target/powerpc/pr107412.c
  cf6fc6f2cd4ce40de4bfcae2384bc88d  gcc/testsuite/gcc.target/powerpc/pr108272-1.c
  f50d5d85d2fd6cdb2c24ba2f99c5ed50  gcc/testsuite/gcc.target/powerpc/pr108272-2.c
  80b0790ba15d5f168fdb877edfba8e3c  gcc/testsuite/gcc.target/powerpc/pr108272-3.c
  8b12dd4a97ca50e2f9880c335cebf74b  gcc/testsuite/gcc.target/powerpc/pr108272-4.c
+ 9ddbaf07e6730054bf657e2df6b73692  gcc/testsuite/gcc.target/powerpc/pr108338.c
  40726e9ba9f0dbe699d13f0248929db7  gcc/testsuite/gcc.target/powerpc/pr108348-1.c
  590060f31f74e624d8948e67f5efe8a9  gcc/testsuite/gcc.target/powerpc/pr108348-2.c
! dcfd0b5eb3fa3b17e60172ec0b8a791d  gcc/testsuite/gcc.target/powerpc/pr108396.c
  d1ebac89ce86ba01adcab56447399dd9  gcc/testsuite/gcc.target/powerpc/pr108699.c
  8dc6f7b3f475db76d4acd724068737cc  gcc/testsuite/gcc.target/powerpc/pr108787.c
  4e716a0a290d9aa588276f96d74da875  gcc/testsuite/gcc.target/powerpc/pr108862.c
*************** d002a5bc24966823d127263f4f26fc6f  gcc/te
*** 75070,75079 ****
  183c2d6b4a645b22aa3a9a3870d8c787  gcc/testsuite/gcc.target/powerpc/pr109082.c
  bafd50f43ed68366ad85e5b1a7157b97  gcc/testsuite/gcc.target/powerpc/pr109167.c
  5d792150402910e5e2632539f0ba98c0  gcc/testsuite/gcc.target/powerpc/pr109178.c
! be09a09453e3025da575fddc32110640  gcc/testsuite/gcc.target/powerpc/pr109566.c
  d746d0fb9156720298fa3c2071023bbf  gcc/testsuite/gcc.target/powerpc/pr109932-1.c
  d746d0fb9156720298fa3c2071023bbf  gcc/testsuite/gcc.target/powerpc/pr109932-2.c
  30266f999ed968f6bfdc98dae3651704  gcc/testsuite/gcc.target/powerpc/pr110011.c
  c2f6d6cf82ef4931619d09e10a0a72aa  gcc/testsuite/gcc.target/powerpc/pr16155.c
  396ae287e72ecdda51bb3157818030a9  gcc/testsuite/gcc.target/powerpc/pr16286.c
  198d8a69d2887e8fadcb050d90e21aa6  gcc/testsuite/gcc.target/powerpc/pr16458-1.c
--- 80632,80661 ----
  183c2d6b4a645b22aa3a9a3870d8c787  gcc/testsuite/gcc.target/powerpc/pr109082.c
  bafd50f43ed68366ad85e5b1a7157b97  gcc/testsuite/gcc.target/powerpc/pr109167.c
  5d792150402910e5e2632539f0ba98c0  gcc/testsuite/gcc.target/powerpc/pr109178.c
! 7b7dca63220f83027fa5bbff06ededcb  gcc/testsuite/gcc.target/powerpc/pr109566.c
  d746d0fb9156720298fa3c2071023bbf  gcc/testsuite/gcc.target/powerpc/pr109932-1.c
  d746d0fb9156720298fa3c2071023bbf  gcc/testsuite/gcc.target/powerpc/pr109932-2.c
  30266f999ed968f6bfdc98dae3651704  gcc/testsuite/gcc.target/powerpc/pr110011.c
+ 824073815638d2562ae17cd1428f48e2  gcc/testsuite/gcc.target/powerpc/pr110071.c
+ 8989fb86fe162e16bfc145adc53eb41d  gcc/testsuite/gcc.target/powerpc/pr110320-1.c
+ 1d2e1c64a6490425a3d436069ea5d9ee  gcc/testsuite/gcc.target/powerpc/pr110320-2.c
+ de6ffeadfb93fbec891279db1ecf2210  gcc/testsuite/gcc.target/powerpc/pr110320-3.c
+ 0fc82ebefb1ad802aeb7fce96c922091  gcc/testsuite/gcc.target/powerpc/pr110411-1.c
+ 39880b05b13efbac2f1002f1730f701b  gcc/testsuite/gcc.target/powerpc/pr110411-2.c
+ 01a99e85c619f69fe65e8dc7c3cc604f  gcc/testsuite/gcc.target/powerpc/pr110429.c
+ 87fc309ea6ac12043d7cb411c2e49b02  gcc/testsuite/gcc.target/powerpc/pr110776.c
+ c610c8d7cbb111b72025bba844602bd8  gcc/testsuite/gcc.target/powerpc/pr111380-1.c
+ 68b71977f7a24a5a6b3cb45a7941649a  gcc/testsuite/gcc.target/powerpc/pr111380-2.c
+ 14deb79f3de932a6c3507b07a2b07b1b  gcc/testsuite/gcc.target/powerpc/pr111449-1.c
+ f41a9d980a2fa01c4bc18b59a4362288  gcc/testsuite/gcc.target/powerpc/pr111449-2.c
+ ef7ee7d75d9d3cb837f9895dc04fe54e  gcc/testsuite/gcc.target/powerpc/pr111971.c
+ d65923a88c1a895abf1a0b6491463f66  gcc/testsuite/gcc.target/powerpc/pr112525.c
+ 6c42e6e48da378e05514cb0730c927ba  gcc/testsuite/gcc.target/powerpc/pr112707-1.c
+ bea55488bc41970b4864911300479619  gcc/testsuite/gcc.target/powerpc/pr112707-2.c
+ dfa8429959dd6c6fcf851ca3064927e4  gcc/testsuite/gcc.target/powerpc/pr112707-3.c
+ 1fc128afa44f8e922fda52e4bb478f12  gcc/testsuite/gcc.target/powerpc/pr112707.h
+ 0e7a854ff85bd85cdd8df405d6910ef8  gcc/testsuite/gcc.target/powerpc/pr112995.c
+ b61eff89fa46bd55405a0700c83058dd  gcc/testsuite/gcc.target/powerpc/pr113950.c
  c2f6d6cf82ef4931619d09e10a0a72aa  gcc/testsuite/gcc.target/powerpc/pr16155.c
  396ae287e72ecdda51bb3157818030a9  gcc/testsuite/gcc.target/powerpc/pr16286.c
  198d8a69d2887e8fadcb050d90e21aa6  gcc/testsuite/gcc.target/powerpc/pr16458-1.c
*************** c79d8c338657eeb7d28fba8be724005d  gcc/te
*** 75085,75093 ****
  ab27caeed3a927279188546795ad1803  gcc/testsuite/gcc.target/powerpc/pr25960.c
  dd769e19e79e3e81d587561be1c4c5a7  gcc/testsuite/gcc.target/powerpc/pr26350.c
  e568badc378a1ea556b482bc42fe4220  gcc/testsuite/gcc.target/powerpc/pr27158.c
  e7cb34a71318969a14e6e5913d6c9d82  gcc/testsuite/gcc.target/powerpc/pr35907.c
  e183225a8b1a53401796864308b33359  gcc/testsuite/gcc.target/powerpc/pr37168.c
! 95a63a6242ef8f4e7f5b8f9b28bba3a2  gcc/testsuite/gcc.target/powerpc/pr37191.c
  10a4dfe7b6545ed5cd448dc9a60c7228  gcc/testsuite/gcc.target/powerpc/pr39457.c
  e1070d5b726899f80292b497fab29a24  gcc/testsuite/gcc.target/powerpc/pr39902-2.c
  22e940b76d5cf6790c8617b43e339e66  gcc/testsuite/gcc.target/powerpc/pr41175.c
--- 80667,80676 ----
  ab27caeed3a927279188546795ad1803  gcc/testsuite/gcc.target/powerpc/pr25960.c
  dd769e19e79e3e81d587561be1c4c5a7  gcc/testsuite/gcc.target/powerpc/pr26350.c
  e568badc378a1ea556b482bc42fe4220  gcc/testsuite/gcc.target/powerpc/pr27158.c
+ 8a75743bcada3e5894868f9bcdb20889  gcc/testsuite/gcc.target/powerpc/pr30271.c
  e7cb34a71318969a14e6e5913d6c9d82  gcc/testsuite/gcc.target/powerpc/pr35907.c
  e183225a8b1a53401796864308b33359  gcc/testsuite/gcc.target/powerpc/pr37168.c
! a8b9deee7e4e1cf21cd8c0cc3a32078e  gcc/testsuite/gcc.target/powerpc/pr37191.c
  10a4dfe7b6545ed5cd448dc9a60c7228  gcc/testsuite/gcc.target/powerpc/pr39457.c
  e1070d5b726899f80292b497fab29a24  gcc/testsuite/gcc.target/powerpc/pr39902-2.c
  22e940b76d5cf6790c8617b43e339e66  gcc/testsuite/gcc.target/powerpc/pr41175.c
*************** e4531bd522b146b22bdbf991fc3d207e  gcc/te
*** 75134,75149 ****
  c1e226810308677426b3240d2a8147a5  gcc/testsuite/gcc.target/powerpc/pr56605.c
  be37d527321d015059e346e469f7e0e4  gcc/testsuite/gcc.target/powerpc/pr57150.c
  7a49a99d1d678fcb8065029344b893d5  gcc/testsuite/gcc.target/powerpc/pr57363.c
! 84af6f269cb613d7abad750c2b136798  gcc/testsuite/gcc.target/powerpc/pr57744.c
  2a812c7ca353d030cdacba52d4837f7e  gcc/testsuite/gcc.target/powerpc/pr57949-1.c
  3064b02fb529ee79d095f87da7dce88b  gcc/testsuite/gcc.target/powerpc/pr57949-2.c
  d58a248fbbaa40f8533b7dd68594b12c  gcc/testsuite/gcc.target/powerpc/pr58330.c
! ea28759e6ccde5366d95808602337571  gcc/testsuite/gcc.target/powerpc/pr58673-1.c
! 5cf8dfe29bd7b71e42862452895adcb9  gcc/testsuite/gcc.target/powerpc/pr58673-2.c
  71efa814e2df5fb65075309616e87141  gcc/testsuite/gcc.target/powerpc/pr59054.c
  e2be005a17035d4d4c6269830259fd72  gcc/testsuite/gcc.target/powerpc/pr60032.c
! f7e744d22854f13c66364fe3a722086f  gcc/testsuite/gcc.target/powerpc/pr60137.c
! 25cd2e4aec8072cfa79bf5aba7c64182  gcc/testsuite/gcc.target/powerpc/pr60203.c
  5364c7cd89460e7ab273bea540e3a8ac  gcc/testsuite/gcc.target/powerpc/pr60676.c
  8d3043f8e784226d4ad699f3ddca5838  gcc/testsuite/gcc.target/powerpc/pr61837.c
  20ff46b0608216382ea6e9abd325e184  gcc/testsuite/gcc.target/powerpc/pr61977-1.c
--- 80717,80732 ----
  c1e226810308677426b3240d2a8147a5  gcc/testsuite/gcc.target/powerpc/pr56605.c
  be37d527321d015059e346e469f7e0e4  gcc/testsuite/gcc.target/powerpc/pr57150.c
  7a49a99d1d678fcb8065029344b893d5  gcc/testsuite/gcc.target/powerpc/pr57363.c
! 9fc95cd5b7aa3be3fba8f91329053241  gcc/testsuite/gcc.target/powerpc/pr57744.c
  2a812c7ca353d030cdacba52d4837f7e  gcc/testsuite/gcc.target/powerpc/pr57949-1.c
  3064b02fb529ee79d095f87da7dce88b  gcc/testsuite/gcc.target/powerpc/pr57949-2.c
  d58a248fbbaa40f8533b7dd68594b12c  gcc/testsuite/gcc.target/powerpc/pr58330.c
! d7bf9e585b3099437911e981c5545178  gcc/testsuite/gcc.target/powerpc/pr58673-1.c
! 13f936e962f25395726b2f710fc3f3d6  gcc/testsuite/gcc.target/powerpc/pr58673-2.c
  71efa814e2df5fb65075309616e87141  gcc/testsuite/gcc.target/powerpc/pr59054.c
  e2be005a17035d4d4c6269830259fd72  gcc/testsuite/gcc.target/powerpc/pr60032.c
! d394eb78d661209dccfe2b335440ba8d  gcc/testsuite/gcc.target/powerpc/pr60137.c
! aee199321f25d1a33f1b5224236029eb  gcc/testsuite/gcc.target/powerpc/pr60203.c
  5364c7cd89460e7ab273bea540e3a8ac  gcc/testsuite/gcc.target/powerpc/pr60676.c
  8d3043f8e784226d4ad699f3ddca5838  gcc/testsuite/gcc.target/powerpc/pr61837.c
  20ff46b0608216382ea6e9abd325e184  gcc/testsuite/gcc.target/powerpc/pr61977-1.c
*************** a3fecc86b4f3176d71745478e4b20b0b  gcc/te
*** 75158,75177 ****
  564b9b7942b8363816b2ed8864ac1b7a  gcc/testsuite/gcc.target/powerpc/pr65058.c
  07ae256a310975ba7230e33196da928e  gcc/testsuite/gcc.target/powerpc/pr65456.c
  3db2f60754130dda04d75b82cad74f3a  gcc/testsuite/gcc.target/powerpc/pr65787.c
! f2e778a950bcbb9554eea5aed23fbbaf  gcc/testsuite/gcc.target/powerpc/pr66144-1.c
! 9355440849ea4c5e0ad9a6163cec2748  gcc/testsuite/gcc.target/powerpc/pr66144-2.c
! 49c40e5fb70bb6dc4ccc7083f6a4ff2b  gcc/testsuite/gcc.target/powerpc/pr66144-3.c
  a7b8f91239a6849190c33d6dc7fca2f1  gcc/testsuite/gcc.target/powerpc/pr67071-1.c
  e038631511e1b99595d6a8397a4ef5e9  gcc/testsuite/gcc.target/powerpc/pr67071-2.c
  5c67dc7bd814ce966307b3d146df01a3  gcc/testsuite/gcc.target/powerpc/pr67071-3.c
  c738b7e719c6088a5ef4aca1a80910de  gcc/testsuite/gcc.target/powerpc/pr67789.c
  ae3029e81960085577585e91a8b8aa94  gcc/testsuite/gcc.target/powerpc/pr67808.c
! 1b8d2d7106382393e997e79f710724e4  gcc/testsuite/gcc.target/powerpc/pr68163.c
  68a605fe9f861af7c52bc6cb9f79c12d  gcc/testsuite/gcc.target/powerpc/pr68805.c
  9711ebbd75b4e3d771426d8e6948ccd7  gcc/testsuite/gcc.target/powerpc/pr68872.c
  faf2ed46677346059dd2b7fd42254985  gcc/testsuite/gcc.target/powerpc/pr69252.c
  2dafa1128afc74d49fa120837106d572  gcc/testsuite/gcc.target/powerpc/pr69461.c
! 10f1493f63e70f52ad8347f840e8b582  gcc/testsuite/gcc.target/powerpc/pr69548.c
  c12c18f334b92db27768fc61c21a1b4a  gcc/testsuite/gcc.target/powerpc/pr69946.c
  8de5ffb2d5ac3eef7a5e25cc4282770a  gcc/testsuite/gcc.target/powerpc/pr69969.c
  325a069d871f180ee18e5ae4b3e8fadf  gcc/testsuite/gcc.target/powerpc/pr70010-1.c
--- 80741,80760 ----
  564b9b7942b8363816b2ed8864ac1b7a  gcc/testsuite/gcc.target/powerpc/pr65058.c
  07ae256a310975ba7230e33196da928e  gcc/testsuite/gcc.target/powerpc/pr65456.c
  3db2f60754130dda04d75b82cad74f3a  gcc/testsuite/gcc.target/powerpc/pr65787.c
! 33a48518596bd94e524cbd05ea759c12  gcc/testsuite/gcc.target/powerpc/pr66144-1.c
! 5628009af02bfe9adc6417a621266129  gcc/testsuite/gcc.target/powerpc/pr66144-2.c
! 50552c5b3004d7fb0ada628172ba83af  gcc/testsuite/gcc.target/powerpc/pr66144-3.c
  a7b8f91239a6849190c33d6dc7fca2f1  gcc/testsuite/gcc.target/powerpc/pr67071-1.c
  e038631511e1b99595d6a8397a4ef5e9  gcc/testsuite/gcc.target/powerpc/pr67071-2.c
  5c67dc7bd814ce966307b3d146df01a3  gcc/testsuite/gcc.target/powerpc/pr67071-3.c
  c738b7e719c6088a5ef4aca1a80910de  gcc/testsuite/gcc.target/powerpc/pr67789.c
  ae3029e81960085577585e91a8b8aa94  gcc/testsuite/gcc.target/powerpc/pr67808.c
! cb546ce884a7d9b40290e7180cde2930  gcc/testsuite/gcc.target/powerpc/pr68163.c
  68a605fe9f861af7c52bc6cb9f79c12d  gcc/testsuite/gcc.target/powerpc/pr68805.c
  9711ebbd75b4e3d771426d8e6948ccd7  gcc/testsuite/gcc.target/powerpc/pr68872.c
  faf2ed46677346059dd2b7fd42254985  gcc/testsuite/gcc.target/powerpc/pr69252.c
  2dafa1128afc74d49fa120837106d572  gcc/testsuite/gcc.target/powerpc/pr69461.c
! f9299e3b12f02dea684fb5fb86811cc7  gcc/testsuite/gcc.target/powerpc/pr69548.c
  c12c18f334b92db27768fc61c21a1b4a  gcc/testsuite/gcc.target/powerpc/pr69946.c
  8de5ffb2d5ac3eef7a5e25cc4282770a  gcc/testsuite/gcc.target/powerpc/pr69969.c
  325a069d871f180ee18e5ae4b3e8fadf  gcc/testsuite/gcc.target/powerpc/pr70010-1.c
*************** f04c5add43326054cacbb6544404890d  gcc/te
*** 75182,75304 ****
  30bf5235bdce0bbd05169c7ec78fb273  gcc/testsuite/gcc.target/powerpc/pr70117.c
  fa25257d80acb26f0f70a5da209dbad5  gcc/testsuite/gcc.target/powerpc/pr70243.c
  9f0a82f7f84690a18cb82bed87617073  gcc/testsuite/gcc.target/powerpc/pr70640.c
! 9f7996dd7c38f201960362b08e509c7d  gcc/testsuite/gcc.target/powerpc/pr70669.c
  bb6ec828efc211131c5a036203ac7c94  gcc/testsuite/gcc.target/powerpc/pr70866.c
  80e7937b9b3e36188653d2cd8217ff77  gcc/testsuite/gcc.target/powerpc/pr70963.c
! 50b4ac7ce9c6314c3869b381a1b747f9  gcc/testsuite/gcc.target/powerpc/pr71186.c
  ab54a4817911d7d3bbe757072d7001e4  gcc/testsuite/gcc.target/powerpc/pr71297.c
! d5f7ec75b912df0bc5809db72469c811  gcc/testsuite/gcc.target/powerpc/pr71309.c
  f417c588db95ee3f7fbced361af8dbfa  gcc/testsuite/gcc.target/powerpc/pr71310.c
  18f516c22671e1293affe8823881c35c  gcc/testsuite/gcc.target/powerpc/pr71493-1.c
  7d83053012a7579379ae3f803b73b2ec  gcc/testsuite/gcc.target/powerpc/pr71493-2.c
! c9b0e6a1691a38bdd6d5045a4df02574  gcc/testsuite/gcc.target/powerpc/pr71656-1.c
! 3bf4976128e14b1bebc878e38dbe0723  gcc/testsuite/gcc.target/powerpc/pr71656-2.c
! ad8883ce93cd04d9815402552408fad8  gcc/testsuite/gcc.target/powerpc/pr71670.c
  ba1b12b42ef5b65dd907b1cede8a6f35  gcc/testsuite/gcc.target/powerpc/pr71680.c
! fadd5af5f8c42b4165184bc52b97849a  gcc/testsuite/gcc.target/powerpc/pr71698.c
! c8ad35d730145210d55a41ad470d45de  gcc/testsuite/gcc.target/powerpc/pr71720.c
  c648368431c3b3e1cecfc144e7ce4260  gcc/testsuite/gcc.target/powerpc/pr71763.c
  1a2ab1b5ac9370a9c043f60e7d47c0b8  gcc/testsuite/gcc.target/powerpc/pr71785.c
  1b89918520ab534b2dee02684491f2c7  gcc/testsuite/gcc.target/powerpc/pr71805.c
! ce78835a227344b0ee808a7cd36b8ab3  gcc/testsuite/gcc.target/powerpc/pr71977-1.c
! c829cbeaf198a3914867f862ff322c1f  gcc/testsuite/gcc.target/powerpc/pr71977-2.c
! f480178203318f682e3a2aa7cf83b28e  gcc/testsuite/gcc.target/powerpc/pr72717.c
  3763ddb4df699d0b1ba656bbe0eb4e59  gcc/testsuite/gcc.target/powerpc/pr72804.c
! b88472e4cc9299cb4219b90f5b344f69  gcc/testsuite/gcc.target/powerpc/pr72853.c
  f89f50620562c6f4abc51387af2bb088  gcc/testsuite/gcc.target/powerpc/pr72863.c
  e3aae05283ea4b10932c86272339b737  gcc/testsuite/gcc.target/powerpc/pr77289.c
  4aaf1bd3e51d911691410fb1560112f1  gcc/testsuite/gcc.target/powerpc/pr77416.c
  ad6a1f1ff4c5f5f604858aaf552068c2  gcc/testsuite/gcc.target/powerpc/pr77687.c
! a12535071d8f2b5ef1cd956e93153047  gcc/testsuite/gcc.target/powerpc/pr78056-1.c
! 32487e96c4039af4433d0c78d4248465  gcc/testsuite/gcc.target/powerpc/pr78056-2.c
! 25ebcc40bac32f6481c820114abb8e75  gcc/testsuite/gcc.target/powerpc/pr78056-3.c
! 543762d5b3d14a6d9e5fa30908000260  gcc/testsuite/gcc.target/powerpc/pr78056-4.c
  6c92ebd0815729233bf7f336cbc77669  gcc/testsuite/gcc.target/powerpc/pr78056-5.c
  c8e4d5ccb2226fba0ad28aadabb79509  gcc/testsuite/gcc.target/powerpc/pr78056-6.c
  7269e93e0c9a9d55e127430a45880a33  gcc/testsuite/gcc.target/powerpc/pr78056-7.c
! 8147b78599f11589ae3053b11931b862  gcc/testsuite/gcc.target/powerpc/pr78102.c
! 19e74ae8a63b24ab76c67fac9391c56f  gcc/testsuite/gcc.target/powerpc/pr78543.c
! e78c90376e0d5873048a39c2c2261d37  gcc/testsuite/gcc.target/powerpc/pr78604.c
! 1234f158984bdca5449a39cefc26a2dd  gcc/testsuite/gcc.target/powerpc/pr78658.c
  e77f24f1b3f26aacf550086da8e1c63b  gcc/testsuite/gcc.target/powerpc/pr78691-ppc.c
! 17f56c3879a1aceb32e5e65c4dd06c6c  gcc/testsuite/gcc.target/powerpc/pr78953.c
! 3cd4ffbc21918e288a96543c7c93d2b1  gcc/testsuite/gcc.target/powerpc/pr79004.c
! 527dc1887256441ed59c6940d1a290a4  gcc/testsuite/gcc.target/powerpc/pr79038-1.c
  fb131f3896466dcc86b6cb615cf76c79  gcc/testsuite/gcc.target/powerpc/pr79066.c
! 8da230c320f15c500acdd92bbf79cd69  gcc/testsuite/gcc.target/powerpc/pr79179.c
  fb524be9fd12ca8094bde96a06f3bdd5  gcc/testsuite/gcc.target/powerpc/pr79197.c
  06614db7b0eda23af016ac8f01f92586  gcc/testsuite/gcc.target/powerpc/pr79251-run.p7.c
  d196e5fb12502e953299ec47df85f91b  gcc/testsuite/gcc.target/powerpc/pr79251-run.p8.c
  739792749365d658ad924456e1bfe4da  gcc/testsuite/gcc.target/powerpc/pr79251-run.p9.c
  334bc6971aae3f5b06b6d18554b8a198  gcc/testsuite/gcc.target/powerpc/pr79251.h
  53523b8f6029f1e731e5096f1c07e251  gcc/testsuite/gcc.target/powerpc/pr79251.p7.c
! 44ed924650e7d66ba24dbc124d4cf2c9  gcc/testsuite/gcc.target/powerpc/pr79251.p8.c
! 9434bdc580a62e4893b53e1e86e40fef  gcc/testsuite/gcc.target/powerpc/pr79251.p9.c
  13b9dd20539375055df7846adb6bdc98  gcc/testsuite/gcc.target/powerpc/pr79268.c
! cad693783acb9426bf8dcf12e2bd1813  gcc/testsuite/gcc.target/powerpc/pr79354.c
  488484e8a985fe9f1c5c93cbe3cccb03  gcc/testsuite/gcc.target/powerpc/pr79439-1.c
  e630f5d0f9e7ee9aedda99101ae4de1b  gcc/testsuite/gcc.target/powerpc/pr79439-2.c
  e91006f9d28ed78f637d335550563fe0  gcc/testsuite/gcc.target/powerpc/pr79439-3.c
! 5829d0a7a68783c89ec71703d975fd2e  gcc/testsuite/gcc.target/powerpc/pr79544.c
! 11c4a5fd3c1ec7e01cc6d0285a790223  gcc/testsuite/gcc.target/powerpc/pr79799-1.c
! 65e4e6c064ed5137777f863fd27f1421  gcc/testsuite/gcc.target/powerpc/pr79799-2.c
! 4bdf6853ef33e03b020f6edbcb70c1ed  gcc/testsuite/gcc.target/powerpc/pr79799-3.c
  2cda0e5d4de03c3510058352b171ff87  gcc/testsuite/gcc.target/powerpc/pr79799-4.c
! f5e4ca42eb90a3f7b58c7df86e5df4e6  gcc/testsuite/gcc.target/powerpc/pr79799-5.c
! ea547e9b11c5b4703fd81ab3804e2498  gcc/testsuite/gcc.target/powerpc/pr79907.c
  839e8b59fffd1864e14e5cdcca752621  gcc/testsuite/gcc.target/powerpc/pr79909.c
  d95c7f854b8c7b0cf8a1e4eec78d534c  gcc/testsuite/gcc.target/powerpc/pr79916.c
  c4116b75f2059a7e1bab2e403b724598  gcc/testsuite/gcc.target/powerpc/pr79947.c
! 4cff93e2c95a57c6100acf907354c378  gcc/testsuite/gcc.target/powerpc/pr79951.c
! cf90213699229499f618ed323f0e13bc  gcc/testsuite/gcc.target/powerpc/pr80098-1.c
! 23b8aabd7939d831d56d09ecde9185f7  gcc/testsuite/gcc.target/powerpc/pr80098-2.c
  7bc4c86c7d2fb44d1c0bf5b2495215a5  gcc/testsuite/gcc.target/powerpc/pr80098-3.c
  31e10fa4f3edb14ec1b460a829e97a82  gcc/testsuite/gcc.target/powerpc/pr80101-1.c
  d898a03a0134d7a17ff89a9859557dc9  gcc/testsuite/gcc.target/powerpc/pr80125.c
  0c08f4c83d90538f2c1ff74965ce6a2b  gcc/testsuite/gcc.target/powerpc/pr80210-2.c
  32dc6ec7c4a1a3cefe2efbb3b602ef2c  gcc/testsuite/gcc.target/powerpc/pr80210.c
  c74100b0e24e645cbd51ff8d93f11730  gcc/testsuite/gcc.target/powerpc/pr80246.c
! b771808822184e96a1bfb5dd4b9982af  gcc/testsuite/gcc.target/powerpc/pr80315-1.c
! 45508630494f6952aac592225e4407a7  gcc/testsuite/gcc.target/powerpc/pr80315-2.c
! 68ef3456baf2ca91e7c82e55c2979a7e  gcc/testsuite/gcc.target/powerpc/pr80315-3.c
! 7cb95357fd758bb98f3da5781874ec5d  gcc/testsuite/gcc.target/powerpc/pr80315-4.c
  8af068f1ab09bfab1dc3d577a5323267  gcc/testsuite/gcc.target/powerpc/pr80510-1.c
! c76b6bf234b284bf433764fb13f37abf  gcc/testsuite/gcc.target/powerpc/pr80510-2.c
! 40f60f56a44835bd8e62164e2ee5bae4  gcc/testsuite/gcc.target/powerpc/pr80695-p8.c
! 94d63c15e6f0356b816561223154e670  gcc/testsuite/gcc.target/powerpc/pr80695-p9.c
! 108087220b9696e57538163c0611f2d8  gcc/testsuite/gcc.target/powerpc/pr80718.c
! f0952455794485b73110cb5874bdf986  gcc/testsuite/gcc.target/powerpc/pr81348.c
  4f35be6c6a527cf028ceb7ba54273110  gcc/testsuite/gcc.target/powerpc/pr81572.c
! e44c3a66383281e8a9de6b32aa8b5e0f  gcc/testsuite/gcc.target/powerpc/pr81622.c
  601307dac2aee8083d3f97edae2588d1  gcc/testsuite/gcc.target/powerpc/pr81833-1.c
  9288b1f38b6b8a17630ca31fada51991  gcc/testsuite/gcc.target/powerpc/pr81833-2.c
! 8594eb52b8a7ff0cff5ca6a853090510  gcc/testsuite/gcc.target/powerpc/pr81959.c
  dd8032eeec85ca5024c17f5972f4e567  gcc/testsuite/gcc.target/powerpc/pr82015.c
  118dd26456facc5560611716506ec4a3  gcc/testsuite/gcc.target/powerpc/pr82112.c
  9d01972355938afb2a4de9ba1d316dc0  gcc/testsuite/gcc.target/powerpc/pr82333.c
! ea50ad0d71f532e863446139cc360b18  gcc/testsuite/gcc.target/powerpc/pr82748-1.c
! d00f702a3eabc4c4562d778ce7c43884  gcc/testsuite/gcc.target/powerpc/pr82748-2.c
  94063e07a1d46fd61e894aa64b40ebaf  gcc/testsuite/gcc.target/powerpc/pr82848.c
  ea551d3ae1683b94dcf15935e3841a31  gcc/testsuite/gcc.target/powerpc/pr83399.c
  15f19b48d6d84c3685af80447edafc48  gcc/testsuite/gcc.target/powerpc/pr83629.c
  95f3057a6b14afee4d6303b80c7f0657  gcc/testsuite/gcc.target/powerpc/pr83677.c
! 649c25d197e82583d1f58ca7dc0e0b9b  gcc/testsuite/gcc.target/powerpc/pr83862.c
  73347c1481c6d9c50f16f425d409c708  gcc/testsuite/gcc.target/powerpc/pr83926.c
  88f706eef23e0ac23ef58bea3e3cf28a  gcc/testsuite/gcc.target/powerpc/pr83969.c
  864d120dc10ef939e30dca2faf8c357f  gcc/testsuite/gcc.target/powerpc/pr84014.c
  30a1a896107d295e2f08283d07a0ede8  gcc/testsuite/gcc.target/powerpc/pr84112.c
! f933cd0da11eebb48da12afacd0c1f1b  gcc/testsuite/gcc.target/powerpc/pr84154-1.c
! e4452d4000566fd56f010809beb8f4ee  gcc/testsuite/gcc.target/powerpc/pr84154-2.c
! 63657f662b0fb35a7fbf970b1c35f0e5  gcc/testsuite/gcc.target/powerpc/pr84154-3.c
  332b33a6c444a0e7215458dfbe7ecd98  gcc/testsuite/gcc.target/powerpc/pr84220-sld.c
! a7864c94ff253ae4bd05b0b0881dd53d  gcc/testsuite/gcc.target/powerpc/pr84220-sld2.c
  af7dc861a4500601b67924732c8cc38f  gcc/testsuite/gcc.target/powerpc/pr84220-sldw.c
  ef31dac4dd4a4633f786cc30b8ab9090  gcc/testsuite/gcc.target/powerpc/pr84220-xxperm.c
  c43c9d0cb784a0045b3de2aa6d554160  gcc/testsuite/gcc.target/powerpc/pr84220-xxsld.c
! 1760a327fffca563d72a1725596acc0f  gcc/testsuite/gcc.target/powerpc/pr84226.c
  051202397c19754b2a90622d9c2bc23f  gcc/testsuite/gcc.target/powerpc/pr84700.c
  874e5579ccc7cea1bb0bdaa8eabfdcb3  gcc/testsuite/gcc.target/powerpc/pr84878.c
! bfc1b0955022631a9b6372a5e60c0ae7  gcc/testsuite/gcc.target/powerpc/pr85456.c
  d6eedb678b78d75b5a8cccf7cb882281  gcc/testsuite/gcc.target/powerpc/pr85657-1.c
  29cc596e197013c8169e6c028e902254  gcc/testsuite/gcc.target/powerpc/pr85657-2.c
  4cd1a055844a1c424f39acca434a4da3  gcc/testsuite/gcc.target/powerpc/pr85657-3.c
--- 80765,80887 ----
  30bf5235bdce0bbd05169c7ec78fb273  gcc/testsuite/gcc.target/powerpc/pr70117.c
  fa25257d80acb26f0f70a5da209dbad5  gcc/testsuite/gcc.target/powerpc/pr70243.c
  9f0a82f7f84690a18cb82bed87617073  gcc/testsuite/gcc.target/powerpc/pr70640.c
! dce310f9430a713b3a123e02d026fae3  gcc/testsuite/gcc.target/powerpc/pr70669.c
  bb6ec828efc211131c5a036203ac7c94  gcc/testsuite/gcc.target/powerpc/pr70866.c
  80e7937b9b3e36188653d2cd8217ff77  gcc/testsuite/gcc.target/powerpc/pr70963.c
! 4db00c6f6c8915a442bc8efdaa93e510  gcc/testsuite/gcc.target/powerpc/pr71186.c
  ab54a4817911d7d3bbe757072d7001e4  gcc/testsuite/gcc.target/powerpc/pr71297.c
! 2f8b22238ee533e177248eb5e98e33f2  gcc/testsuite/gcc.target/powerpc/pr71309.c
  f417c588db95ee3f7fbced361af8dbfa  gcc/testsuite/gcc.target/powerpc/pr71310.c
  18f516c22671e1293affe8823881c35c  gcc/testsuite/gcc.target/powerpc/pr71493-1.c
  7d83053012a7579379ae3f803b73b2ec  gcc/testsuite/gcc.target/powerpc/pr71493-2.c
! 80545881911f40f3a74b647d13810811  gcc/testsuite/gcc.target/powerpc/pr71656-1.c
! f0009d3f57e4731b941a3c3693a56708  gcc/testsuite/gcc.target/powerpc/pr71656-2.c
! d4e6e543960cf94198bb05e471885676  gcc/testsuite/gcc.target/powerpc/pr71670.c
  ba1b12b42ef5b65dd907b1cede8a6f35  gcc/testsuite/gcc.target/powerpc/pr71680.c
! b5427be19e901c0fad31388d0eb857cd  gcc/testsuite/gcc.target/powerpc/pr71698.c
! 45ff870e125c61947bd84e67f39e4b01  gcc/testsuite/gcc.target/powerpc/pr71720.c
  c648368431c3b3e1cecfc144e7ce4260  gcc/testsuite/gcc.target/powerpc/pr71763.c
  1a2ab1b5ac9370a9c043f60e7d47c0b8  gcc/testsuite/gcc.target/powerpc/pr71785.c
  1b89918520ab534b2dee02684491f2c7  gcc/testsuite/gcc.target/powerpc/pr71805.c
! fb68fcd3b628554470660547a8698751  gcc/testsuite/gcc.target/powerpc/pr71977-1.c
! 95756c1348ba07cb5e171fd7ad79ad87  gcc/testsuite/gcc.target/powerpc/pr71977-2.c
! 74e9ceab9854882049ba026b242fb571  gcc/testsuite/gcc.target/powerpc/pr72717.c
  3763ddb4df699d0b1ba656bbe0eb4e59  gcc/testsuite/gcc.target/powerpc/pr72804.c
! 6dde6100c02b305e7e1f6c79012db98b  gcc/testsuite/gcc.target/powerpc/pr72853.c
  f89f50620562c6f4abc51387af2bb088  gcc/testsuite/gcc.target/powerpc/pr72863.c
  e3aae05283ea4b10932c86272339b737  gcc/testsuite/gcc.target/powerpc/pr77289.c
  4aaf1bd3e51d911691410fb1560112f1  gcc/testsuite/gcc.target/powerpc/pr77416.c
  ad6a1f1ff4c5f5f604858aaf552068c2  gcc/testsuite/gcc.target/powerpc/pr77687.c
! cf000c9a84657074ee61530929ecfd64  gcc/testsuite/gcc.target/powerpc/pr78056-1.c
! 13928e6382dcd624e48e3941f5ad0a0c  gcc/testsuite/gcc.target/powerpc/pr78056-2.c
! 4f72324fcec45a2e2b03ccc4d7586956  gcc/testsuite/gcc.target/powerpc/pr78056-3.c
! 9baa2e549b6676f967bed83a60aa4955  gcc/testsuite/gcc.target/powerpc/pr78056-4.c
  6c92ebd0815729233bf7f336cbc77669  gcc/testsuite/gcc.target/powerpc/pr78056-5.c
  c8e4d5ccb2226fba0ad28aadabb79509  gcc/testsuite/gcc.target/powerpc/pr78056-6.c
  7269e93e0c9a9d55e127430a45880a33  gcc/testsuite/gcc.target/powerpc/pr78056-7.c
! 15fed3e125923c457162c406128c543a  gcc/testsuite/gcc.target/powerpc/pr78102.c
! 8e3a87fc28695d0c1e92df629d4fd575  gcc/testsuite/gcc.target/powerpc/pr78543.c
! 7d4f2868fec786e2473cd97e1458ceff  gcc/testsuite/gcc.target/powerpc/pr78604.c
! 316c86f5c4e29d54bce9bc97eb09d542  gcc/testsuite/gcc.target/powerpc/pr78658.c
  e77f24f1b3f26aacf550086da8e1c63b  gcc/testsuite/gcc.target/powerpc/pr78691-ppc.c
! 91fc496d77927eef6dfa095250f44141  gcc/testsuite/gcc.target/powerpc/pr78953.c
! 8b66809bb1531574879bbfc38ce4f1b9  gcc/testsuite/gcc.target/powerpc/pr79004.c
! cd1ff1dfab78ef6eaedb37c96d3acff7  gcc/testsuite/gcc.target/powerpc/pr79038-1.c
  fb131f3896466dcc86b6cb615cf76c79  gcc/testsuite/gcc.target/powerpc/pr79066.c
! a47e5ac04178fef094a40c91b32b80c8  gcc/testsuite/gcc.target/powerpc/pr79179.c
  fb524be9fd12ca8094bde96a06f3bdd5  gcc/testsuite/gcc.target/powerpc/pr79197.c
  06614db7b0eda23af016ac8f01f92586  gcc/testsuite/gcc.target/powerpc/pr79251-run.p7.c
  d196e5fb12502e953299ec47df85f91b  gcc/testsuite/gcc.target/powerpc/pr79251-run.p8.c
  739792749365d658ad924456e1bfe4da  gcc/testsuite/gcc.target/powerpc/pr79251-run.p9.c
  334bc6971aae3f5b06b6d18554b8a198  gcc/testsuite/gcc.target/powerpc/pr79251.h
  53523b8f6029f1e731e5096f1c07e251  gcc/testsuite/gcc.target/powerpc/pr79251.p7.c
! e8d078f5d22ffd50f436b5c52dbd767e  gcc/testsuite/gcc.target/powerpc/pr79251.p8.c
! 714ed9364c01a1173025ad944a7ee42b  gcc/testsuite/gcc.target/powerpc/pr79251.p9.c
  13b9dd20539375055df7846adb6bdc98  gcc/testsuite/gcc.target/powerpc/pr79268.c
! df18aed42f008e28f13f073f7ef24a74  gcc/testsuite/gcc.target/powerpc/pr79354.c
  488484e8a985fe9f1c5c93cbe3cccb03  gcc/testsuite/gcc.target/powerpc/pr79439-1.c
  e630f5d0f9e7ee9aedda99101ae4de1b  gcc/testsuite/gcc.target/powerpc/pr79439-2.c
  e91006f9d28ed78f637d335550563fe0  gcc/testsuite/gcc.target/powerpc/pr79439-3.c
! 2106184575524ec757451d0cb40c9de9  gcc/testsuite/gcc.target/powerpc/pr79544.c
! cc7c5371e342577d2e93fd3ec82bf628  gcc/testsuite/gcc.target/powerpc/pr79799-1.c
! a7a91a3697e2dae31730147d95136270  gcc/testsuite/gcc.target/powerpc/pr79799-2.c
! a938baff69009db6da80db6487872634  gcc/testsuite/gcc.target/powerpc/pr79799-3.c
  2cda0e5d4de03c3510058352b171ff87  gcc/testsuite/gcc.target/powerpc/pr79799-4.c
! 2e92d4227484a371ab142466b49ae4c4  gcc/testsuite/gcc.target/powerpc/pr79799-5.c
! 1e5dddfa7a9de786a45a143632b98c07  gcc/testsuite/gcc.target/powerpc/pr79907.c
  839e8b59fffd1864e14e5cdcca752621  gcc/testsuite/gcc.target/powerpc/pr79909.c
  d95c7f854b8c7b0cf8a1e4eec78d534c  gcc/testsuite/gcc.target/powerpc/pr79916.c
  c4116b75f2059a7e1bab2e403b724598  gcc/testsuite/gcc.target/powerpc/pr79947.c
! c45b955c70633ef3e76e76dd5cca7c61  gcc/testsuite/gcc.target/powerpc/pr79951.c
! 6af8f1dbe17f4427af2973b8961d8239  gcc/testsuite/gcc.target/powerpc/pr80098-1.c
! 8af6ab03ec03332430f993337abc521f  gcc/testsuite/gcc.target/powerpc/pr80098-2.c
  7bc4c86c7d2fb44d1c0bf5b2495215a5  gcc/testsuite/gcc.target/powerpc/pr80098-3.c
  31e10fa4f3edb14ec1b460a829e97a82  gcc/testsuite/gcc.target/powerpc/pr80101-1.c
  d898a03a0134d7a17ff89a9859557dc9  gcc/testsuite/gcc.target/powerpc/pr80125.c
  0c08f4c83d90538f2c1ff74965ce6a2b  gcc/testsuite/gcc.target/powerpc/pr80210-2.c
  32dc6ec7c4a1a3cefe2efbb3b602ef2c  gcc/testsuite/gcc.target/powerpc/pr80210.c
  c74100b0e24e645cbd51ff8d93f11730  gcc/testsuite/gcc.target/powerpc/pr80246.c
! ab44a0bea59dd79d02d62c50669540e6  gcc/testsuite/gcc.target/powerpc/pr80315-1.c
! 6642284b20fa3dd9612f5b412927cf78  gcc/testsuite/gcc.target/powerpc/pr80315-2.c
! f4808970595a00aaa5842b78a574af96  gcc/testsuite/gcc.target/powerpc/pr80315-3.c
! 2e696bd9887fbfb4c575162481590a05  gcc/testsuite/gcc.target/powerpc/pr80315-4.c
  8af068f1ab09bfab1dc3d577a5323267  gcc/testsuite/gcc.target/powerpc/pr80510-1.c
! 89efeccb15eb17cf32bed7f2a437df79  gcc/testsuite/gcc.target/powerpc/pr80510-2.c
! ad8b1729ae6a728fcc02e872b8390457  gcc/testsuite/gcc.target/powerpc/pr80695-p8.c
! 7ee079bc5c6e9d09781af8968426bcd5  gcc/testsuite/gcc.target/powerpc/pr80695-p9.c
! bbef64b32ac0776f3a5dca8e5bf1d20a  gcc/testsuite/gcc.target/powerpc/pr80718.c
! 80449bba8315e6fce14e92147571610e  gcc/testsuite/gcc.target/powerpc/pr81348.c
  4f35be6c6a527cf028ceb7ba54273110  gcc/testsuite/gcc.target/powerpc/pr81572.c
! 842261a38121fdeca108ec84a5393cb3  gcc/testsuite/gcc.target/powerpc/pr81622.c
  601307dac2aee8083d3f97edae2588d1  gcc/testsuite/gcc.target/powerpc/pr81833-1.c
  9288b1f38b6b8a17630ca31fada51991  gcc/testsuite/gcc.target/powerpc/pr81833-2.c
! 79ccf2f94557b2674faaa855391a9ef3  gcc/testsuite/gcc.target/powerpc/pr81959.c
  dd8032eeec85ca5024c17f5972f4e567  gcc/testsuite/gcc.target/powerpc/pr82015.c
  118dd26456facc5560611716506ec4a3  gcc/testsuite/gcc.target/powerpc/pr82112.c
  9d01972355938afb2a4de9ba1d316dc0  gcc/testsuite/gcc.target/powerpc/pr82333.c
! a3088bc5ab705b7a63e1dc6c9072eb6e  gcc/testsuite/gcc.target/powerpc/pr82748-1.c
! 7856e63a7e2636a31ad86aec6f6b3792  gcc/testsuite/gcc.target/powerpc/pr82748-2.c
  94063e07a1d46fd61e894aa64b40ebaf  gcc/testsuite/gcc.target/powerpc/pr82848.c
  ea551d3ae1683b94dcf15935e3841a31  gcc/testsuite/gcc.target/powerpc/pr83399.c
  15f19b48d6d84c3685af80447edafc48  gcc/testsuite/gcc.target/powerpc/pr83629.c
  95f3057a6b14afee4d6303b80c7f0657  gcc/testsuite/gcc.target/powerpc/pr83677.c
! 2ec91f85cddb4ab758b4d4beca92e953  gcc/testsuite/gcc.target/powerpc/pr83862.c
  73347c1481c6d9c50f16f425d409c708  gcc/testsuite/gcc.target/powerpc/pr83926.c
  88f706eef23e0ac23ef58bea3e3cf28a  gcc/testsuite/gcc.target/powerpc/pr83969.c
  864d120dc10ef939e30dca2faf8c357f  gcc/testsuite/gcc.target/powerpc/pr84014.c
  30a1a896107d295e2f08283d07a0ede8  gcc/testsuite/gcc.target/powerpc/pr84112.c
! adb589ab7a43f791607772d30fc18c39  gcc/testsuite/gcc.target/powerpc/pr84154-1.c
! 97151674ba0e38932201e38cb963960f  gcc/testsuite/gcc.target/powerpc/pr84154-2.c
! de2f02f20a2d8f6af530f0069f660e7b  gcc/testsuite/gcc.target/powerpc/pr84154-3.c
  332b33a6c444a0e7215458dfbe7ecd98  gcc/testsuite/gcc.target/powerpc/pr84220-sld.c
! 5f8c97300aee6f102975a769426d4064  gcc/testsuite/gcc.target/powerpc/pr84220-sld2.c
  af7dc861a4500601b67924732c8cc38f  gcc/testsuite/gcc.target/powerpc/pr84220-sldw.c
  ef31dac4dd4a4633f786cc30b8ab9090  gcc/testsuite/gcc.target/powerpc/pr84220-xxperm.c
  c43c9d0cb784a0045b3de2aa6d554160  gcc/testsuite/gcc.target/powerpc/pr84220-xxsld.c
! 15479627ed5daa27a0a85910a6ab9ee2  gcc/testsuite/gcc.target/powerpc/pr84226.c
  051202397c19754b2a90622d9c2bc23f  gcc/testsuite/gcc.target/powerpc/pr84700.c
  874e5579ccc7cea1bb0bdaa8eabfdcb3  gcc/testsuite/gcc.target/powerpc/pr84878.c
! 1802bcbdc435551af4f2cc413de60fdd  gcc/testsuite/gcc.target/powerpc/pr85456.c
  d6eedb678b78d75b5a8cccf7cb882281  gcc/testsuite/gcc.target/powerpc/pr85657-1.c
  29cc596e197013c8169e6c028e902254  gcc/testsuite/gcc.target/powerpc/pr85657-2.c
  4cd1a055844a1c424f39acca434a4da3  gcc/testsuite/gcc.target/powerpc/pr85657-3.c
*************** a366faf9f4600279f7a65c67c3d0fbae  gcc/te
*** 75306,75314 ****
  a350423ed93def71f8b093f25456d889  gcc/testsuite/gcc.target/powerpc/pr85755.c
  df4e314e536a2cc293edaee73e90fc21  gcc/testsuite/gcc.target/powerpc/pr86324-1.c
  b393d3f2f044e6fd8f631b7ab2551943  gcc/testsuite/gcc.target/powerpc/pr86324-2.c
! e35e948d61d2e46fd9c5cf9e9908ccb4  gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
  363dc03cd34e833cf82185607e641246  gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv.c
! 68ee1d2248cb68728290b40312abd26d  gcc/testsuite/gcc.target/powerpc/pr86731-longlong.c
  8a2b25fb431e8663e2eac4a3ef707bc5  gcc/testsuite/gcc.target/powerpc/pr86731.c
  2e4d98e3c1f5582512e2e93c6f08edc4  gcc/testsuite/gcc.target/powerpc/pr86939.c
  d86d5375cd27e7c265ce5093d761b62e  gcc/testsuite/gcc.target/powerpc/pr87033.c
--- 80889,80897 ----
  a350423ed93def71f8b093f25456d889  gcc/testsuite/gcc.target/powerpc/pr85755.c
  df4e314e536a2cc293edaee73e90fc21  gcc/testsuite/gcc.target/powerpc/pr86324-1.c
  b393d3f2f044e6fd8f631b7ab2551943  gcc/testsuite/gcc.target/powerpc/pr86324-2.c
! ad74b3b1ed8e866bfdc6a78595bad3fc  gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
  363dc03cd34e833cf82185607e641246  gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv.c
! 8374e8e1343ae8edc5ad34015448f248  gcc/testsuite/gcc.target/powerpc/pr86731-longlong.c
  8a2b25fb431e8663e2eac4a3ef707bc5  gcc/testsuite/gcc.target/powerpc/pr86731.c
  2e4d98e3c1f5582512e2e93c6f08edc4  gcc/testsuite/gcc.target/powerpc/pr86939.c
  d86d5375cd27e7c265ce5093d761b62e  gcc/testsuite/gcc.target/powerpc/pr87033.c
*************** a3fcebbcc49f4e8e80184966262e4f7c  gcc/te
*** 75324,75339 ****
  96eb5b3fd3f2812a018f01fd63b67f9b  gcc/testsuite/gcc.target/powerpc/pr88188-2.c
  9489612e4380ce85494a409bef20f69a  gcc/testsuite/gcc.target/powerpc/pr88188.c
  c75be0752698828e9a2843ce4464f296  gcc/testsuite/gcc.target/powerpc/pr88233.c
  21d3c2767889f61719f3852cb79cdc5a  gcc/testsuite/gcc.target/powerpc/pr88457.c
! edfc72e0b8e112e31e108fe03527f11f  gcc/testsuite/gcc.target/powerpc/pr88845.c
  dd95a2250e2db6dba5532882d6c626fd  gcc/testsuite/gcc.target/powerpc/pr88965.c
  185daccfe9cd0171b973121afbc70613  gcc/testsuite/gcc.target/powerpc/pr89225.c
  75c813324a3a167a863f7ea21db6b4b8  gcc/testsuite/gcc.target/powerpc/pr89310.c
  c37f43ea14b9c2771195287a84b61d7f  gcc/testsuite/gcc.target/powerpc/pr89424-0.c
  641d52f8caa1635a7b47a9370f9b19ed  gcc/testsuite/gcc.target/powerpc/pr89765-mc.c
! 039b3daec7a36e9b0099349f1b5d95a6  gcc/testsuite/gcc.target/powerpc/pr90763.c
  1b66fd7b65ff295e707f90152d028d43  gcc/testsuite/gcc.target/powerpc/pr91275.c
! 2502ecccde580c13fb2950c76a613327  gcc/testsuite/gcc.target/powerpc/pr91903.c
  146b79d794c5eb5a94bc0cd961b416b6  gcc/testsuite/gcc.target/powerpc/pr92090-2.c
  b3e3f8dd7576caaad7cff1f382fd583d  gcc/testsuite/gcc.target/powerpc/pr92090.c
  abf60b23a4b3272b1199e405e7527ff8  gcc/testsuite/gcc.target/powerpc/pr92132-fp-1.c
--- 80907,80926 ----
  96eb5b3fd3f2812a018f01fd63b67f9b  gcc/testsuite/gcc.target/powerpc/pr88188-2.c
  9489612e4380ce85494a409bef20f69a  gcc/testsuite/gcc.target/powerpc/pr88188.c
  c75be0752698828e9a2843ce4464f296  gcc/testsuite/gcc.target/powerpc/pr88233.c
+ d2a99b9ff1da1e8d8120a3524731b2a5  gcc/testsuite/gcc.target/powerpc/pr88309.c
  21d3c2767889f61719f3852cb79cdc5a  gcc/testsuite/gcc.target/powerpc/pr88457.c
! 1a8eee716574cb3016dde3c5428aeda4  gcc/testsuite/gcc.target/powerpc/pr88558-p7.c
! 35c9648de277d9fb045a3b5688c7ae2b  gcc/testsuite/gcc.target/powerpc/pr88558-p8.c
! a7949a2cf440d67c73ff37d2e8e5536b  gcc/testsuite/gcc.target/powerpc/pr88558.h
! 1824a1e1290890473863e982d1c7a0cc  gcc/testsuite/gcc.target/powerpc/pr88845.c
  dd95a2250e2db6dba5532882d6c626fd  gcc/testsuite/gcc.target/powerpc/pr88965.c
  185daccfe9cd0171b973121afbc70613  gcc/testsuite/gcc.target/powerpc/pr89225.c
  75c813324a3a167a863f7ea21db6b4b8  gcc/testsuite/gcc.target/powerpc/pr89310.c
  c37f43ea14b9c2771195287a84b61d7f  gcc/testsuite/gcc.target/powerpc/pr89424-0.c
  641d52f8caa1635a7b47a9370f9b19ed  gcc/testsuite/gcc.target/powerpc/pr89765-mc.c
! fe2a3285b8378f288968ff4e6a04fa07  gcc/testsuite/gcc.target/powerpc/pr90763.c
  1b66fd7b65ff295e707f90152d028d43  gcc/testsuite/gcc.target/powerpc/pr91275.c
! 09d734f2ff09c5fbcb8c1e0207c755b4  gcc/testsuite/gcc.target/powerpc/pr91903.c
  146b79d794c5eb5a94bc0cd961b416b6  gcc/testsuite/gcc.target/powerpc/pr92090-2.c
  b3e3f8dd7576caaad7cff1f382fd583d  gcc/testsuite/gcc.target/powerpc/pr92090.c
  abf60b23a4b3272b1199e405e7527ff8  gcc/testsuite/gcc.target/powerpc/pr92132-fp-1.c
*************** d7084bb2ee01735299dddbb33cae2878  gcc/te
*** 75348,75357 ****
  378b75a654f2598d9c8ac7ee303abaca  gcc/testsuite/gcc.target/powerpc/pr92661.c
  4003334bbe44d29365a1b5cc86183279  gcc/testsuite/gcc.target/powerpc/pr92796.c
  aa28fe223a505772938b9d731a62130c  gcc/testsuite/gcc.target/powerpc/pr92923-1.c
! c187e0f1af6407257235b1bb9a2fb7ac  gcc/testsuite/gcc.target/powerpc/pr92923-2.c
  bf5eef64bd13d358ccd4ecc20fc71dea  gcc/testsuite/gcc.target/powerpc/pr93012.c
  6ed2bd11c87cb97b53a02a6da437dd68  gcc/testsuite/gcc.target/powerpc/pr93073.c
  ffc3e49b879237e4c50decbfa7827c62  gcc/testsuite/gcc.target/powerpc/pr93122.c
  2810ebba4a3d8c51ff7ff5cef80a9591  gcc/testsuite/gcc.target/powerpc/pr93453-1.c
  38f0ad1fa74b57574f2b77b7354f16fe  gcc/testsuite/gcc.target/powerpc/pr93658.c
  7ec2211c1708cebde5e1bb5e3087dd76  gcc/testsuite/gcc.target/powerpc/pr93800.c
--- 80935,80945 ----
  378b75a654f2598d9c8ac7ee303abaca  gcc/testsuite/gcc.target/powerpc/pr92661.c
  4003334bbe44d29365a1b5cc86183279  gcc/testsuite/gcc.target/powerpc/pr92796.c
  aa28fe223a505772938b9d731a62130c  gcc/testsuite/gcc.target/powerpc/pr92923-1.c
! 4948051bf3cb205b3523aa4e22d40969  gcc/testsuite/gcc.target/powerpc/pr92923-2.c
  bf5eef64bd13d358ccd4ecc20fc71dea  gcc/testsuite/gcc.target/powerpc/pr93012.c
  6ed2bd11c87cb97b53a02a6da437dd68  gcc/testsuite/gcc.target/powerpc/pr93073.c
  ffc3e49b879237e4c50decbfa7827c62  gcc/testsuite/gcc.target/powerpc/pr93122.c
+ c933554cb0415edb672b7e95544f6a8f  gcc/testsuite/gcc.target/powerpc/pr93448.c
  2810ebba4a3d8c51ff7ff5cef80a9591  gcc/testsuite/gcc.target/powerpc/pr93453-1.c
  38f0ad1fa74b57574f2b77b7354f16fe  gcc/testsuite/gcc.target/powerpc/pr93658.c
  7ec2211c1708cebde5e1bb5e3087dd76  gcc/testsuite/gcc.target/powerpc/pr93800.c
*************** a07b15408dfcb7108da14ce215101920  gcc/te
*** 75372,75393 ****
  f296eca9a733cf4bb4e198a3539e8cec  gcc/testsuite/gcc.target/powerpc/pr96506-1.c
  4057c480103b8c0cc29c131c3ab7cc50  gcc/testsuite/gcc.target/powerpc/pr96506-2.c
  713c433c1e5c80361a865ab817cd27b1  gcc/testsuite/gcc.target/powerpc/pr96530.c
  7586cf00c4e30dcc232464c012e42760  gcc/testsuite/gcc.target/powerpc/pr96787-1.c
  6ea7fa7b0623f6ebd9652c5acea96884  gcc/testsuite/gcc.target/powerpc/pr96787-2.c
  54d85fa08f775bccdcae07e834cb4364  gcc/testsuite/gcc.target/powerpc/pr96808.c
! 53b5f3e1f11a40262b1977c28a603b1c  gcc/testsuite/gcc.target/powerpc/pr96933-1.c
! a585de66ac1500bfd616065fa8b38782  gcc/testsuite/gcc.target/powerpc/pr96933-2.c
  0f16cd30e6ae3becaf7d8afe013843b7  gcc/testsuite/gcc.target/powerpc/pr96933-3.c
  32b43ec9035357886fe24d84ea5a564e  gcc/testsuite/gcc.target/powerpc/pr96933-4.c
  a4b65c03b235e179c2c54ae705ca1314  gcc/testsuite/gcc.target/powerpc/pr96933-run.h
  3e3d83500b4f3407ec706aed288837c0  gcc/testsuite/gcc.target/powerpc/pr96933.h
! c8159472599bdbc1920f30b21821761f  gcc/testsuite/gcc.target/powerpc/pr97019.c
  3cbcbf709dba0c7d2f3ee1bb86a4c1ab  gcc/testsuite/gcc.target/powerpc/pr97142.c
  18aa6c13663fc57c77c9258b01d06c8b  gcc/testsuite/gcc.target/powerpc/pr97267.c
  213beaa984952c5e9c8741ff42bef29f  gcc/testsuite/gcc.target/powerpc/pr97360.c
  be1d7456a640bf70727b92bfa00019b7  gcc/testsuite/gcc.target/powerpc/pr98092.c
  adff3606ba35a019752b04f06365d9ae  gcc/testsuite/gcc.target/powerpc/pr98872.c
! 16ccc7fd43a210703f804ed86b1bbe88  gcc/testsuite/gcc.target/powerpc/pr98914.c
  e2ddd4e82dd7a142609183f7be1ecb7d  gcc/testsuite/gcc.target/powerpc/pr98952.c
  f900d3f1e79811e92ae2e91267891d4a  gcc/testsuite/gcc.target/powerpc/pr98959.c
  4fdfbed97b91165f1a9bb87f1e8aa815  gcc/testsuite/gcc.target/powerpc/pr99492.c
--- 80960,80982 ----
  f296eca9a733cf4bb4e198a3539e8cec  gcc/testsuite/gcc.target/powerpc/pr96506-1.c
  4057c480103b8c0cc29c131c3ab7cc50  gcc/testsuite/gcc.target/powerpc/pr96506-2.c
  713c433c1e5c80361a865ab817cd27b1  gcc/testsuite/gcc.target/powerpc/pr96530.c
+ 3af685337838b80c79ee574f658c90cc  gcc/testsuite/gcc.target/powerpc/pr96762.c
  7586cf00c4e30dcc232464c012e42760  gcc/testsuite/gcc.target/powerpc/pr96787-1.c
  6ea7fa7b0623f6ebd9652c5acea96884  gcc/testsuite/gcc.target/powerpc/pr96787-2.c
  54d85fa08f775bccdcae07e834cb4364  gcc/testsuite/gcc.target/powerpc/pr96808.c
! a3caa04b752621d31ad0e2819607e8e7  gcc/testsuite/gcc.target/powerpc/pr96933-1.c
! 2cb4f44690d3b775a6fa76aeb7b48b73  gcc/testsuite/gcc.target/powerpc/pr96933-2.c
  0f16cd30e6ae3becaf7d8afe013843b7  gcc/testsuite/gcc.target/powerpc/pr96933-3.c
  32b43ec9035357886fe24d84ea5a564e  gcc/testsuite/gcc.target/powerpc/pr96933-4.c
  a4b65c03b235e179c2c54ae705ca1314  gcc/testsuite/gcc.target/powerpc/pr96933-run.h
  3e3d83500b4f3407ec706aed288837c0  gcc/testsuite/gcc.target/powerpc/pr96933.h
! 2450f5a8117c84ea9e09cceb79d32484  gcc/testsuite/gcc.target/powerpc/pr97019.c
  3cbcbf709dba0c7d2f3ee1bb86a4c1ab  gcc/testsuite/gcc.target/powerpc/pr97142.c
  18aa6c13663fc57c77c9258b01d06c8b  gcc/testsuite/gcc.target/powerpc/pr97267.c
  213beaa984952c5e9c8741ff42bef29f  gcc/testsuite/gcc.target/powerpc/pr97360.c
  be1d7456a640bf70727b92bfa00019b7  gcc/testsuite/gcc.target/powerpc/pr98092.c
  adff3606ba35a019752b04f06365d9ae  gcc/testsuite/gcc.target/powerpc/pr98872.c
! 25cf76ba144446b05e0a0c9afdd6fc7e  gcc/testsuite/gcc.target/powerpc/pr98914.c
  e2ddd4e82dd7a142609183f7be1ecb7d  gcc/testsuite/gcc.target/powerpc/pr98952.c
  f900d3f1e79811e92ae2e91267891d4a  gcc/testsuite/gcc.target/powerpc/pr98959.c
  4fdfbed97b91165f1a9bb87f1e8aa815  gcc/testsuite/gcc.target/powerpc/pr99492.c
*************** fa923522ac8da3ab05e770db45f788b6  gcc/te
*** 75402,75415 ****
  b72fce1882c977cbd736b3f9e0051945  gcc/testsuite/gcc.target/powerpc/pr99888-5.c
  452e2984829526b868a44034bc62f383  gcc/testsuite/gcc.target/powerpc/pr99888-6.c
  74f4f475f7fbab34a0ec83f7fd8e551b  gcc/testsuite/gcc.target/powerpc/pragma-optimize.c
! e02c101f5cebe3d8dfa298413197b1a7  gcc/testsuite/gcc.target/powerpc/pragma_misc9.c
  98c02b2c2946f882d2b5e41da4b7d78b  gcc/testsuite/gcc.target/powerpc/pragma_power6.c
  9fc46dc795793c68c68bcda62ba3bb06  gcc/testsuite/gcc.target/powerpc/pragma_power7.c
! 45affca437d2aa50cc215daff62e39c1  gcc/testsuite/gcc.target/powerpc/pragma_power8.c
  62a405efa072f55c32f9a0806d8b7864  gcc/testsuite/gcc.target/powerpc/pragma_power9.c
  3d5b95888852df8700894887dd8bfb69  gcc/testsuite/gcc.target/powerpc/prefix-add.c
  22fb944e0690c3907fb29d60c970351a  gcc/testsuite/gcc.target/powerpc/prefix-di-constant.c
! 8db875e0cffec64424eec6fa93ff403b  gcc/testsuite/gcc.target/powerpc/prefix-ds-dq.c
  c0a28739bbe5f92a195f24eb56917468  gcc/testsuite/gcc.target/powerpc/prefix-large-dd.c
  fb88c96438da7de8f3ff72020e551ffc  gcc/testsuite/gcc.target/powerpc/prefix-large-df.c
  a6e55eaf6c0e1bf0dc9084e8336fc15b  gcc/testsuite/gcc.target/powerpc/prefix-large-di.c
--- 80991,81010 ----
  b72fce1882c977cbd736b3f9e0051945  gcc/testsuite/gcc.target/powerpc/pr99888-5.c
  452e2984829526b868a44034bc62f383  gcc/testsuite/gcc.target/powerpc/pr99888-6.c
  74f4f475f7fbab34a0ec83f7fd8e551b  gcc/testsuite/gcc.target/powerpc/pragma-optimize.c
! 58867de88ba5675916c40b6ad149f90c  gcc/testsuite/gcc.target/powerpc/pragma_misc9.c
  98c02b2c2946f882d2b5e41da4b7d78b  gcc/testsuite/gcc.target/powerpc/pragma_power6.c
  9fc46dc795793c68c68bcda62ba3bb06  gcc/testsuite/gcc.target/powerpc/pragma_power7.c
! 585a352c6dfca32d19974b54ca71fd7e  gcc/testsuite/gcc.target/powerpc/pragma_power8.c
  62a405efa072f55c32f9a0806d8b7864  gcc/testsuite/gcc.target/powerpc/pragma_power9.c
+ dd58427154af8c0e48b89c68e7b990b6  gcc/testsuite/gcc.target/powerpc/predefine-p7-novsx.c
+ c99f3d7c3678eb974f17a9b2be94967f  gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec-novsx.c
+ 17bbe3e953d2757e7a9bd15587a8e0df  gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec.c
+ fb4cb3b55f779a8de1bb7d7d81b8e375  gcc/testsuite/gcc.target/powerpc/predefine-p8-novsx.c
+ 1c332ef8081d846326294ca260db1f44  gcc/testsuite/gcc.target/powerpc/predefine-p8-pragma-vsx.c
+ fd92078433cbb9d31fe530ccf8b4d53d  gcc/testsuite/gcc.target/powerpc/predefine-p9-novsx.c
  3d5b95888852df8700894887dd8bfb69  gcc/testsuite/gcc.target/powerpc/prefix-add.c
  22fb944e0690c3907fb29d60c970351a  gcc/testsuite/gcc.target/powerpc/prefix-di-constant.c
! c39c138ef5de8487899379818e234541  gcc/testsuite/gcc.target/powerpc/prefix-ds-dq.c
  c0a28739bbe5f92a195f24eb56917468  gcc/testsuite/gcc.target/powerpc/prefix-large-dd.c
  fb88c96438da7de8f3ff72020e551ffc  gcc/testsuite/gcc.target/powerpc/prefix-large-df.c
  a6e55eaf6c0e1bf0dc9084e8336fc15b  gcc/testsuite/gcc.target/powerpc/prefix-large-di.c
*************** bbd1992756a4c4fe9d76f64a98906a99  gcc/te
*** 75475,75481 ****
  2e2e5c64753a3b7795f80767d6dcafa7  gcc/testsuite/gcc.target/powerpc/rlwimi-1.c
  0c3e4164fb0b167d67ef2c5b562a311e  gcc/testsuite/gcc.target/powerpc/rlwimi-2.c
  070c5b1cc8767dba79b14177a49b6c62  gcc/testsuite/gcc.target/powerpc/rlwimi.h
! f8cb0891b50b222ce78c7e8466568d64  gcc/testsuite/gcc.target/powerpc/rlwinm-0.c
  bbfaa45598e85e85311c592cd3685c70  gcc/testsuite/gcc.target/powerpc/rlwinm-1.c
  83056e2e295a7176894a802ffd2ecf3f  gcc/testsuite/gcc.target/powerpc/rlwinm-2.c
  459aed634f003f5fbe61d2f6d47cdd40  gcc/testsuite/gcc.target/powerpc/rlwinm.h
--- 81070,81076 ----
  2e2e5c64753a3b7795f80767d6dcafa7  gcc/testsuite/gcc.target/powerpc/rlwimi-1.c
  0c3e4164fb0b167d67ef2c5b562a311e  gcc/testsuite/gcc.target/powerpc/rlwimi-2.c
  070c5b1cc8767dba79b14177a49b6c62  gcc/testsuite/gcc.target/powerpc/rlwimi.h
! cb9311ea78ac15dc0539eca763a2e985  gcc/testsuite/gcc.target/powerpc/rlwinm-0.c
  bbfaa45598e85e85311c592cd3685c70  gcc/testsuite/gcc.target/powerpc/rlwinm-1.c
  83056e2e295a7176894a802ffd2ecf3f  gcc/testsuite/gcc.target/powerpc/rlwinm-2.c
  459aed634f003f5fbe61d2f6d47cdd40  gcc/testsuite/gcc.target/powerpc/rlwinm.h
*************** dab8719ebff53e1817e27082b99698a5  gcc/te
*** 75487,75498 ****
  884e97f433f667176d11130d3b031c3c  gcc/testsuite/gcc.target/powerpc/rotate.c
  c5641841c2cbc2fb677d020f2a6d5bc1  gcc/testsuite/gcc.target/powerpc/rotmask.c
  bf385d7310a8dab90ee44f86832aa03b  gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c
! 9d573583f65f14f71c9c7e9e2b9a3264  gcc/testsuite/gcc.target/powerpc/rs6000-fpint.c
  afd35ba530c1198a75e9e1a79650add6  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c
  7aacc521251d44cf2fa3a75a564c4270  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c
  b21c33d525f0c97602d4a2348994de36  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c
! e31cb95afebe5e70f99ed992e5b367f4  gcc/testsuite/gcc.target/powerpc/sad-vectorize-1.c
! 122a3065b082a033baf2ecbb9e4cbc23  gcc/testsuite/gcc.target/powerpc/sad-vectorize-2.c
  a16dee197d86c4a28cb384257269819b  gcc/testsuite/gcc.target/powerpc/sad-vectorize-3.c
  a51b0a09d3bfe8d718a78021e4bbeecf  gcc/testsuite/gcc.target/powerpc/sad-vectorize-4.c
  117d3bda48a47bac18d3fc69aafa9bc5  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
--- 81082,81093 ----
  884e97f433f667176d11130d3b031c3c  gcc/testsuite/gcc.target/powerpc/rotate.c
  c5641841c2cbc2fb677d020f2a6d5bc1  gcc/testsuite/gcc.target/powerpc/rotmask.c
  bf385d7310a8dab90ee44f86832aa03b  gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c
! 4c335d772e934c08fb4ce6f056df6f02  gcc/testsuite/gcc.target/powerpc/rs6000-fpint.c
  afd35ba530c1198a75e9e1a79650add6  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c
  7aacc521251d44cf2fa3a75a564c4270  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c
  b21c33d525f0c97602d4a2348994de36  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c
! 82afa3518077faa5bf81d26a960c2066  gcc/testsuite/gcc.target/powerpc/sad-vectorize-1.c
! 9124d1d840d205ec6d88b2b9697a4c2e  gcc/testsuite/gcc.target/powerpc/sad-vectorize-2.c
  a16dee197d86c4a28cb384257269819b  gcc/testsuite/gcc.target/powerpc/sad-vectorize-3.c
  a51b0a09d3bfe8d718a78021e4bbeecf  gcc/testsuite/gcc.target/powerpc/sad-vectorize-4.c
  117d3bda48a47bac18d3fc69aafa9bc5  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
*************** c742917812fbfbc904c5958044e88ac1  gcc/te
*** 75524,75771 ****
  862ac833b3d2f974e0f5cecc6abee95b  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-0.c
  63c119f5703b1b66e32b794c15f04320  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-1.c
  3bcc1a1cf615d22cd19fd8328f1017c8  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-2.c
! 64a3284223a7202270812d08acee7054  gcc/testsuite/gcc.target/powerpc/signbit-1.c
! f00bcdb3de69aeb5753c3b28732dfcd8  gcc/testsuite/gcc.target/powerpc/signbit-2.c
  78b111d5c85fb4c63a40bf4f61fd37ee  gcc/testsuite/gcc.target/powerpc/signbit-3.c
  a1178b69259e8f197b55b01f225b59f7  gcc/testsuite/gcc.target/powerpc/sldoi_to_mov.c
  b53c831b7a989947bc45e26ce4a15c9b  gcc/testsuite/gcc.target/powerpc/small-loop-unroll.c
  c0e75f8fc195cc2cbbf74bc89b5ca78f  gcc/testsuite/gcc.target/powerpc/spec-barr-1.c
! 3ba3683c2c50a036a86876ffe40938d1  gcc/testsuite/gcc.target/powerpc/sse-addps-1.c
! 0cf91665719ed287f338142e01af3b8d  gcc/testsuite/gcc.target/powerpc/sse-addss-1.c
! 22e395766ad6742abcfda94bc73cbb8b  gcc/testsuite/gcc.target/powerpc/sse-andnps-1.c
! 40c4c2fe3235641489cd8a783756beff  gcc/testsuite/gcc.target/powerpc/sse-andps-1.c
  3c1ba9088f509857b60a39f4faa46bfd  gcc/testsuite/gcc.target/powerpc/sse-check.h
! 1c29bfafd11ccab48bfcc5f2ee3c0424  gcc/testsuite/gcc.target/powerpc/sse-cmpss-1.c
! f45513bf33788c54e467b7a0cfdc0b33  gcc/testsuite/gcc.target/powerpc/sse-cvtpi16ps-1.c
! b7a9702199256c72fdca14e3717223ed  gcc/testsuite/gcc.target/powerpc/sse-cvtpi32ps-1.c
! 7d458b4565990d6477cccbed74600974  gcc/testsuite/gcc.target/powerpc/sse-cvtpi32x2ps-1.c
! 31fcd452ef773c9dc1be2fa1eff2242e  gcc/testsuite/gcc.target/powerpc/sse-cvtpi8ps-1.c
! a5a911e4154ddc1929a6752736920d4f  gcc/testsuite/gcc.target/powerpc/sse-cvtpspi16-1.c
! 1262f8746a0ec50627fb8faf7b71ae9d  gcc/testsuite/gcc.target/powerpc/sse-cvtpspi8-1.c
! 8d84eaa0251951356dc4d79f678e1279  gcc/testsuite/gcc.target/powerpc/sse-cvtpu16ps-1.c
! 57e9a06352e91a7c6236398e0495c2ff  gcc/testsuite/gcc.target/powerpc/sse-cvtpu8ps-1.c
! 3b30326b7d333e514486b7a8724e1339  gcc/testsuite/gcc.target/powerpc/sse-cvtsi2ss-1.c
! 148d98ef6af03a3de042e20f6feb272e  gcc/testsuite/gcc.target/powerpc/sse-cvtsi2ss-2.c
! 0acb4d0baeeec1fa21f18a750d0d239c  gcc/testsuite/gcc.target/powerpc/sse-cvtss2si-1.c
! a1fafeea6328c239dffb3a82e1b977df  gcc/testsuite/gcc.target/powerpc/sse-cvtss2si-2.c
! a2576d171526fecc833f2215178cb32f  gcc/testsuite/gcc.target/powerpc/sse-cvttss2si-1.c
! 6f44a5ff96f9c3c3b44713933958c538  gcc/testsuite/gcc.target/powerpc/sse-cvttss2si-2.c
! 3d3841a66eba5559b73277a19ca541a7  gcc/testsuite/gcc.target/powerpc/sse-divps-1.c
! 8d833ec9193618649ff83f267695c71b  gcc/testsuite/gcc.target/powerpc/sse-divss-1.c
! 080b1907933e1ba4fa2a770933868be1  gcc/testsuite/gcc.target/powerpc/sse-maxps-1.c
! 5f5c56e8a8554efb511d5381107b7055  gcc/testsuite/gcc.target/powerpc/sse-maxps-2.c
! dfe0984ebba53f7ce80a6717e5a38a2e  gcc/testsuite/gcc.target/powerpc/sse-maxss-1.c
! 96a05d8995b5ec96fedc3d15a3be3ad1  gcc/testsuite/gcc.target/powerpc/sse-minps-1.c
! 35265e74db8703fbd80fd0b903dcd7da  gcc/testsuite/gcc.target/powerpc/sse-minps-2.c
! 024f40f622695a4c613e82b6ce9c2694  gcc/testsuite/gcc.target/powerpc/sse-minss-1.c
! b603b86253a36b22728aca6ec7d9956e  gcc/testsuite/gcc.target/powerpc/sse-movaps-1.c
! 6f4ba0fb994461a9b0ad86a48fec6457  gcc/testsuite/gcc.target/powerpc/sse-movaps-2.c
! 00e97c06bf3f48bd3ec804d7fd3c11d7  gcc/testsuite/gcc.target/powerpc/sse-movhlps-1.c
! 7d43b221713bf9833d0ea095499ca710  gcc/testsuite/gcc.target/powerpc/sse-movhps-1.c
! bd12598f1322ccfde4e449ead26d9663  gcc/testsuite/gcc.target/powerpc/sse-movhps-2.c
! 1b5f94bed3a61854a5a0734be97db81a  gcc/testsuite/gcc.target/powerpc/sse-movlhps-1.c
! f642bb84c34931e1a8a3495b31373868  gcc/testsuite/gcc.target/powerpc/sse-movlps-1.c
! 2dff57cdc7d6a80ec8f0fcca0a52c9f9  gcc/testsuite/gcc.target/powerpc/sse-movlps-2.c
! 929a5abc13b9a3fb72f7b7ce54604208  gcc/testsuite/gcc.target/powerpc/sse-movmskb-1.c
! 0bb4c4d78e7f046897aad8b89bbb0fd4  gcc/testsuite/gcc.target/powerpc/sse-movmskps-1.c
! c3248c99164271ee0e4908a07c5d98ba  gcc/testsuite/gcc.target/powerpc/sse-movss-1.c
! e2bf67c337009f709917cf711eda199a  gcc/testsuite/gcc.target/powerpc/sse-movss-2.c
! eb22ba6b2bf595cd29fe88b4c37190ee  gcc/testsuite/gcc.target/powerpc/sse-movss-3.c
! a09ad20617b7817aa5ab3328c1f4dc21  gcc/testsuite/gcc.target/powerpc/sse-mulps-1.c
! 2aa8083ec381250d44f88aede6ccd54b  gcc/testsuite/gcc.target/powerpc/sse-mulss-1.c
! 6f11a3024a4f375209a6b03d69915768  gcc/testsuite/gcc.target/powerpc/sse-orps-1.c
! f34fef0113a1c4e95ad0d2f817b0b3e4  gcc/testsuite/gcc.target/powerpc/sse-pavgw-1.c
! b98d4660cdbd596900f2affc03dc228e  gcc/testsuite/gcc.target/powerpc/sse-pmaxsw-1.c
! e403cd8c73e31aeb1fc52b8f6e24835a  gcc/testsuite/gcc.target/powerpc/sse-pmaxub-1.c
! e27c0649e2984fe3f0bf45719030655c  gcc/testsuite/gcc.target/powerpc/sse-pminsw-1.c
! 6e306b18c3561f54f044546b6b5ce605  gcc/testsuite/gcc.target/powerpc/sse-pminub-1.c
! 207fe211bbe756b1944046ef7520449c  gcc/testsuite/gcc.target/powerpc/sse-pmulhuw-1.c
! 56d58dc9f977177e6091b12d102ed6dc  gcc/testsuite/gcc.target/powerpc/sse-psadbw-1.c
! a49abf0659d5a9efb195e5ee40f7f301  gcc/testsuite/gcc.target/powerpc/sse-rcpps-1.c
! 6713f9bcecd6110a6365d11bb6cc7efd  gcc/testsuite/gcc.target/powerpc/sse-rsqrtps-1.c
! 6fc31139c4ebac98b88faba52c3ad8c3  gcc/testsuite/gcc.target/powerpc/sse-shufps-1.c
! 7f62f0fd6d01b23180fad67c8ceac660  gcc/testsuite/gcc.target/powerpc/sse-sqrtps-1.c
! e0d0044b1a99c566b4a69bcbcbda81f7  gcc/testsuite/gcc.target/powerpc/sse-subps-1.c
! 841586fcc1c5317db951db9a5600e372  gcc/testsuite/gcc.target/powerpc/sse-subss-1.c
! 0ddc8f043348b5b630db5eb55da8a51f  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-1.c
! 69719e91f4242f34748b4fd372bed9e6  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-2.c
! 5a054d1174bd4b6f5f22350aa4bddf6d  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-3.c
! b10125cf930b67468c2da7e8ba82dd74  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-4.c
! 03f8fce3901e6f20b4532adbc7497904  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-5.c
! 0648217deab6dde3451322a29814f9d7  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-6.c
! eb5fa02c0df20ad6d693059e3d3cd099  gcc/testsuite/gcc.target/powerpc/sse-unpckhps-1.c
! eed8bb48c4f8e1ff9caebf70da3cd82f  gcc/testsuite/gcc.target/powerpc/sse-unpcklps-1.c
! 1fec1904e849adfa43d8111329f7fbcd  gcc/testsuite/gcc.target/powerpc/sse-xorps-1.c
! 059c6b5d6eb62a16e96b7d4e58e97ccf  gcc/testsuite/gcc.target/powerpc/sse2-addpd-1.c
! f0e4f5ce98a66e614190ef5a4a9b66d2  gcc/testsuite/gcc.target/powerpc/sse2-addsd-1.c
! c79ddf4a274707cf724f6f651f9c0832  gcc/testsuite/gcc.target/powerpc/sse2-andnpd-1.c
! e4859fb240d1c27e95089c8897c3795f  gcc/testsuite/gcc.target/powerpc/sse2-andpd-1.c
  cbf8a9023b4d10c3f91a64f01773a6c0  gcc/testsuite/gcc.target/powerpc/sse2-check.h
! f332f8a6a6601c0270acaa6a33426940  gcc/testsuite/gcc.target/powerpc/sse2-cmppd-1.c
! f1638e2298dba1fa58c80cc56b4f91a8  gcc/testsuite/gcc.target/powerpc/sse2-cmpsd-1.c
! fc5d17639ced5cebe8f9b0f0df8023c6  gcc/testsuite/gcc.target/powerpc/sse2-comisd-1.c
! a70983e5fc39b77a4d539595474b8aea  gcc/testsuite/gcc.target/powerpc/sse2-comisd-2.c
! b9bfab1d2c3c7048fa06236a179b1d5e  gcc/testsuite/gcc.target/powerpc/sse2-comisd-3.c
! 40767724c51df22b1405715f752e0979  gcc/testsuite/gcc.target/powerpc/sse2-comisd-4.c
! 1d3f9a7b58452dda2e4ae5a118dd6e74  gcc/testsuite/gcc.target/powerpc/sse2-comisd-5.c
! 277ac6a73a26c18caddbe6459ff4f998  gcc/testsuite/gcc.target/powerpc/sse2-comisd-6.c
! d36dd9149392a115038a6c0da49755b6  gcc/testsuite/gcc.target/powerpc/sse2-cvtdq2pd-1.c
! 4185edd6a36a8aff9a3baa6a2c233a24  gcc/testsuite/gcc.target/powerpc/sse2-cvtdq2ps-1.c
! 272937b225bc65befc5283212ef8b9d1  gcc/testsuite/gcc.target/powerpc/sse2-cvtpd2dq-1.c
! c8ce215723c790b16b75467461f9089b  gcc/testsuite/gcc.target/powerpc/sse2-cvtpd2ps-1.c
! 5455fbe86921ec2f3f9f5d4b7112396b  gcc/testsuite/gcc.target/powerpc/sse2-cvtps2dq-1.c
! 39f6d145f4ec9fbaac83fa1dbea7f002  gcc/testsuite/gcc.target/powerpc/sse2-cvtps2pd-1.c
! ec3b160197eadf448d8ebf5ad2065bcf  gcc/testsuite/gcc.target/powerpc/sse2-cvtsd2si-1.c
! e6907573ce1ff9a05586f7a766636c79  gcc/testsuite/gcc.target/powerpc/sse2-cvtsd2si-2.c
! c6a4f66eadb3fb72adcb5d497ba87fa2  gcc/testsuite/gcc.target/powerpc/sse2-cvtsd2ss-1.c
! 9e084b8b7db8d992c7a56e75d526d18a  gcc/testsuite/gcc.target/powerpc/sse2-cvtsi2sd-1.c
! 622a437413f60d731a40ebd24599664e  gcc/testsuite/gcc.target/powerpc/sse2-cvtsi2sd-2.c
! 54e1c6bc49245e0387356988890c720e  gcc/testsuite/gcc.target/powerpc/sse2-cvtss2sd-1.c
! a0aef9f56742a4bfd4aa631123a09b2b  gcc/testsuite/gcc.target/powerpc/sse2-cvttpd2dq-1.c
! 552a2c0713dcd937706a6994bafd40b4  gcc/testsuite/gcc.target/powerpc/sse2-cvttps2dq-1.c
! f4f6df5055649f2b9deef9cea9a26db8  gcc/testsuite/gcc.target/powerpc/sse2-cvttsd2si-1.c
! 58c89a33739ee30368a7822c982c86f3  gcc/testsuite/gcc.target/powerpc/sse2-cvttsd2si-2.c
! 8e4ee15b284518c4e5bbaa38a012d7ef  gcc/testsuite/gcc.target/powerpc/sse2-divpd-1.c
! d1859e760b21ef69a2c7f6fb0bf9d7f3  gcc/testsuite/gcc.target/powerpc/sse2-divsd-1.c
! 1a699e1a2862bc0eeaca4eab881c77e5  gcc/testsuite/gcc.target/powerpc/sse2-maxpd-1.c
! ab58723879d7a3bd93465cd4014543d7  gcc/testsuite/gcc.target/powerpc/sse2-maxsd-1.c
! 0c5f74cfd17a008e922bcc8360d5fa7d  gcc/testsuite/gcc.target/powerpc/sse2-minpd-1.c
! 78c8e63819bbb8b448a09ac2333de763  gcc/testsuite/gcc.target/powerpc/sse2-minsd-1.c
! dc1d851060b60c6f37773a2915cd36df  gcc/testsuite/gcc.target/powerpc/sse2-mmx.c
! 3b497a78040d74eb1d61c7ceb009ee0b  gcc/testsuite/gcc.target/powerpc/sse2-movhpd-1.c
! 9894bb0b768d2f70fd82c6eceff61307  gcc/testsuite/gcc.target/powerpc/sse2-movhpd-2.c
! eb13cba1b0891b6c2d151b1bfb1976cf  gcc/testsuite/gcc.target/powerpc/sse2-movlpd-1.c
! 2ba585202b88ee5d9ddd30b3b81f956e  gcc/testsuite/gcc.target/powerpc/sse2-movlpd-2.c
! f8a13a51b16434cc48b424a937af5f61  gcc/testsuite/gcc.target/powerpc/sse2-movmskpd-1.c
! 85b366a469271f938f5dfe70e9c31215  gcc/testsuite/gcc.target/powerpc/sse2-movq-1.c
! 3ee0034b3205ea5e36e4ea38b370ec34  gcc/testsuite/gcc.target/powerpc/sse2-movq-2.c
! d610db3d581930511a8cc6aa60b0f409  gcc/testsuite/gcc.target/powerpc/sse2-movq-3.c
! f2631eff9fe91cd56bd86b8d0019cec0  gcc/testsuite/gcc.target/powerpc/sse2-movsd-1.c
! 2ed2e24fab5d997bd09cfe275fad9962  gcc/testsuite/gcc.target/powerpc/sse2-movsd-2.c
! b6c5109edfa6e96dd28c44add9ee87a9  gcc/testsuite/gcc.target/powerpc/sse2-movsd-3.c
! 7d3655f1892b7b4d0d93d9df1ddf0bb6  gcc/testsuite/gcc.target/powerpc/sse2-mulpd-1.c
! 7826d8e465790cf476a8a75ecb8ca2ac  gcc/testsuite/gcc.target/powerpc/sse2-mulsd-1.c
! 9514a49af28420e9d60be940f222c2a5  gcc/testsuite/gcc.target/powerpc/sse2-orpd-1.c
! 550a9c64e32dce02998bdbeff19a0ec4  gcc/testsuite/gcc.target/powerpc/sse2-packssdw-1.c
! 271ebedbded80021fb77b7b62428048b  gcc/testsuite/gcc.target/powerpc/sse2-packsswb-1.c
! 013d746c76e983def0793a5c4640efd4  gcc/testsuite/gcc.target/powerpc/sse2-packuswb-1.c
! 2bc7f178cb70d4ead0ee17a310c73d64  gcc/testsuite/gcc.target/powerpc/sse2-paddb-1.c
! 2d0a01ad43e7c78ae9436699b6895faf  gcc/testsuite/gcc.target/powerpc/sse2-paddd-1.c
! 7e1da008fe244f0b439346dbe3398b60  gcc/testsuite/gcc.target/powerpc/sse2-paddq-1.c
! 9c1810d0a107e740296826851f9d305f  gcc/testsuite/gcc.target/powerpc/sse2-paddsb-1.c
! 307786ba95e4af05638b1933dd487648  gcc/testsuite/gcc.target/powerpc/sse2-paddsw-1.c
! 251e99c6f2c2a7c076bfbe1bf5ad92e9  gcc/testsuite/gcc.target/powerpc/sse2-paddusb-1.c
! 3e621a8ccc8ebcd2d71435206916fd89  gcc/testsuite/gcc.target/powerpc/sse2-paddusw-1.c
! e9db99f2fb61daa56b3d941a82135a7d  gcc/testsuite/gcc.target/powerpc/sse2-paddw-1.c
! 72ca0b9b469d5f5802879cc9c1fcd347  gcc/testsuite/gcc.target/powerpc/sse2-pand-1.c
! 91a02830e1f9ba4937ab33f19025ab80  gcc/testsuite/gcc.target/powerpc/sse2-pandn-1.c
! 6f5663ab916c8ff2e54d57816c84b3ff  gcc/testsuite/gcc.target/powerpc/sse2-pavgb-1.c
! 2c9a855e51d79ee3002bd5c4512b4f62  gcc/testsuite/gcc.target/powerpc/sse2-pavgw-1.c
! 89a1ce32ab4b551eebd769e458383fcc  gcc/testsuite/gcc.target/powerpc/sse2-pcmpeqb-1.c
! 8e3689ecb9305588bc0905356230af5b  gcc/testsuite/gcc.target/powerpc/sse2-pcmpeqd-1.c
! 64920f12a4fc670911608903d2e73d9d  gcc/testsuite/gcc.target/powerpc/sse2-pcmpeqw-1.c
! d8dce18754958e54af20ac6ed3608850  gcc/testsuite/gcc.target/powerpc/sse2-pcmpgtb-1.c
! 1da1b35dada1eafc1de93b3d0f36819f  gcc/testsuite/gcc.target/powerpc/sse2-pcmpgtd-1.c
! 8068e85bcfe7e65cd12bddb62a3b4ed1  gcc/testsuite/gcc.target/powerpc/sse2-pcmpgtw-1.c
! 6192e2cd36735db14724abe4b4fc8a1f  gcc/testsuite/gcc.target/powerpc/sse2-pextrw.c
! 3b5eab4396b73d1ab9d55741c2e70eb7  gcc/testsuite/gcc.target/powerpc/sse2-pinsrw.c
! db7e22374b0b5006e0b6e5a899e1c241  gcc/testsuite/gcc.target/powerpc/sse2-pmaddwd-1.c
! 7cbd664965f15fd12457a3adfa9c9bbf  gcc/testsuite/gcc.target/powerpc/sse2-pmaxsw-1.c
! cafcb6cd5c23554dbcdf198eb1a5d01e  gcc/testsuite/gcc.target/powerpc/sse2-pmaxub-1.c
! b430d9f0478a5c49763622d0d2bfafff  gcc/testsuite/gcc.target/powerpc/sse2-pminsw-1.c
! c81ec42f1bd87f540d2cbed207ddef15  gcc/testsuite/gcc.target/powerpc/sse2-pminub-1.c
! 8a38cf1f72225c8aab59a410eb2f1f4a  gcc/testsuite/gcc.target/powerpc/sse2-pmovmskb-1.c
! 6e56656c2ba520aa0af491126fe776e3  gcc/testsuite/gcc.target/powerpc/sse2-pmulhuw-1.c
! e39854a5c818e1e0f310e03dcf6f7084  gcc/testsuite/gcc.target/powerpc/sse2-pmulhw-1.c
! e7bc4982fb4d01fef45e7d47edf221d9  gcc/testsuite/gcc.target/powerpc/sse2-pmullw-1.c
! 427668f62d6e94f35c384da30d277cc4  gcc/testsuite/gcc.target/powerpc/sse2-pmuludq-1.c
! c80e0d64157647b822fd65a20a4ec2d7  gcc/testsuite/gcc.target/powerpc/sse2-por-1.c
! f302af4b5b048839c2f4f43cdc12b423  gcc/testsuite/gcc.target/powerpc/sse2-psadbw-1.c
! 7c39e9bfc36d34d73d1e4b0d6d63cc93  gcc/testsuite/gcc.target/powerpc/sse2-pshufd-1.c
! 0a8a6897232380e420eb02ed2769c232  gcc/testsuite/gcc.target/powerpc/sse2-pshufhw-1.c
! 848a3b9b4e3091db0e4bb8899bc361b1  gcc/testsuite/gcc.target/powerpc/sse2-pshuflw-1.c
! 8097f7165d343d6de23e7ea48548f3fb  gcc/testsuite/gcc.target/powerpc/sse2-pslld-1.c
! 8da67fcb05f37bd3671ddfce8ae13e9c  gcc/testsuite/gcc.target/powerpc/sse2-pslld-2.c
! 107bef9b681ef2b912aecc60cc899a04  gcc/testsuite/gcc.target/powerpc/sse2-pslldq-1.c
! eed8b340ccf1b87286cdf05a6fa25328  gcc/testsuite/gcc.target/powerpc/sse2-psllq-1.c
! b1637539a787f6cbd2ed0de59d89f0cf  gcc/testsuite/gcc.target/powerpc/sse2-psllq-2.c
! c813df4fde1a0f1c423f91d33e09cc69  gcc/testsuite/gcc.target/powerpc/sse2-psllw-1.c
! 2394aff1284f4ee640e6454070fd52d9  gcc/testsuite/gcc.target/powerpc/sse2-psllw-2.c
! 1225cb1e61b8a540932715eed89c493e  gcc/testsuite/gcc.target/powerpc/sse2-psrad-1.c
! dcb6fac5e12d492dbe2e12bf289b7c95  gcc/testsuite/gcc.target/powerpc/sse2-psrad-2.c
! 4e3c21cd10406def158b5e27b2117300  gcc/testsuite/gcc.target/powerpc/sse2-psraw-1.c
! e0aa12d2605adc16611b23c116d4e651  gcc/testsuite/gcc.target/powerpc/sse2-psraw-2.c
! cbde5f94a6f54e659b1bf875a54f7438  gcc/testsuite/gcc.target/powerpc/sse2-psrld-1.c
! bae9f0a83b3bc152f63bbd8189381aa8  gcc/testsuite/gcc.target/powerpc/sse2-psrld-2.c
! 57398472582cdedd51c6fb49d0a696c8  gcc/testsuite/gcc.target/powerpc/sse2-psrldq-1.c
! e26556a1b78b4eb25ce1c6401c3c2cd9  gcc/testsuite/gcc.target/powerpc/sse2-psrlq-1.c
! 0a51832cb61a0d53799d2b671fb3ee29  gcc/testsuite/gcc.target/powerpc/sse2-psrlq-2.c
! 394cbd71ae4f77d22f997a96c2b41f74  gcc/testsuite/gcc.target/powerpc/sse2-psrlw-1.c
! 731fe2106d889acccbc26d80b1951357  gcc/testsuite/gcc.target/powerpc/sse2-psrlw-2.c
! ca301b2bbc84b45c512625ce14e2a039  gcc/testsuite/gcc.target/powerpc/sse2-psubb-1.c
! 21be2a6cf79bad783c7b2ff143997a70  gcc/testsuite/gcc.target/powerpc/sse2-psubd-1.c
! 11eabe3bc2c547294e5f1a64de406cde  gcc/testsuite/gcc.target/powerpc/sse2-psubq-1.c
! a3e28c743565697aa9852aec2e21a815  gcc/testsuite/gcc.target/powerpc/sse2-psubsb-1.c
! 67797d62ce8859d3ec88e836d28e94a6  gcc/testsuite/gcc.target/powerpc/sse2-psubsw-1.c
! 02ba209b57f24c6e190dd9081184db4f  gcc/testsuite/gcc.target/powerpc/sse2-psubusb-1.c
! 3902d479822100fb5e1482292bf262a7  gcc/testsuite/gcc.target/powerpc/sse2-psubusw-1.c
! b081bd8f4ca210a2830ba6b95ece706d  gcc/testsuite/gcc.target/powerpc/sse2-psubw-1.c
! 16553445b8a5f0ebd5ae2059e4ae601d  gcc/testsuite/gcc.target/powerpc/sse2-punpckhbw-1.c
! fa353795a7e97e944e15c8e1bf4db267  gcc/testsuite/gcc.target/powerpc/sse2-punpckhdq-1.c
! 335c70e76ccf064328ba988b02ca295e  gcc/testsuite/gcc.target/powerpc/sse2-punpckhqdq-1.c
! 914a194db123b6d890495d81258fcae1  gcc/testsuite/gcc.target/powerpc/sse2-punpckhwd-1.c
! 6f0fc01a01f38daf116244a8b55adf60  gcc/testsuite/gcc.target/powerpc/sse2-punpcklbw-1.c
! 035ab172de055dcc10495db989b891f6  gcc/testsuite/gcc.target/powerpc/sse2-punpckldq-1.c
! 4c6be9279159f6201c01913d520037f1  gcc/testsuite/gcc.target/powerpc/sse2-punpcklqdq-1.c
! 8d1d6dea7e241f2e4905dcbbbc7ad381  gcc/testsuite/gcc.target/powerpc/sse2-punpcklwd-1.c
! efa2e40917ee73021cda8e702083f3c7  gcc/testsuite/gcc.target/powerpc/sse2-pxor-1.c
! d5f4c48c90a9f71f59db80f7e0dce379  gcc/testsuite/gcc.target/powerpc/sse2-shufpd-1.c
! ad30162494abbfa46307ba0e7f8faf5e  gcc/testsuite/gcc.target/powerpc/sse2-sqrtpd-1.c
! e53f28938e6f3c79118e67fe12b0e0b6  gcc/testsuite/gcc.target/powerpc/sse2-subpd-1.c
! b9dd5713def6458b7c2e26dafc522a50  gcc/testsuite/gcc.target/powerpc/sse2-subsd-1.c
! 79012e57eda7a5a1d1426a02cbdbc76a  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-1.c
! cd53ffdaac479504eca14b67a6aa57cc  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-2.c
! 34388f6242099a73f353b15648b9f976  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-3.c
! dc440598206ac25fa739de35d01a257f  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-4.c
! 9325a0065656e23d0c07bb27818394ed  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-5.c
! 868446e23243678c81e64dd77c01093a  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-6.c
! 5cd8de8ea05d49ab921967f2ce8b9aee  gcc/testsuite/gcc.target/powerpc/sse2-unpckhpd-1.c
! d8c16c05d3d2ed325ccd9f9682bfcc2b  gcc/testsuite/gcc.target/powerpc/sse2-unpcklpd-1.c
! c49a35933bccfb78def00e1bb80447ae  gcc/testsuite/gcc.target/powerpc/sse2-xorpd-1.c
! 3bb561acb3360f326d67b868121a9969  gcc/testsuite/gcc.target/powerpc/sse3-addsubpd.c
! 8bccde12789cae824b8925b6c51e8106  gcc/testsuite/gcc.target/powerpc/sse3-addsubps.c
  a962b69d7697aaa2cc9c231cf59ef133  gcc/testsuite/gcc.target/powerpc/sse3-check.h
! e88aa4dab05fd50dc017068268d2310c  gcc/testsuite/gcc.target/powerpc/sse3-haddpd.c
! 92de2befa99b062979d7020e2cf18954  gcc/testsuite/gcc.target/powerpc/sse3-haddps.c
! 73ffeadf0c63d6eeeb7fd07d548e59ed  gcc/testsuite/gcc.target/powerpc/sse3-hsubpd.c
! bc5583d382f38e7c793f7f8613a24bd6  gcc/testsuite/gcc.target/powerpc/sse3-hsubps.c
! 1404cc178f201089b2e633d0d25d9eff  gcc/testsuite/gcc.target/powerpc/sse3-lddqu.c
! 10504e118ffc13c9ad572e30d5ec6fe2  gcc/testsuite/gcc.target/powerpc/sse3-movddup.c
! f35dc4317411be0a425d926d2e6b2ee2  gcc/testsuite/gcc.target/powerpc/sse3-movshdup.c
! 99b9774ed3323e9ed4feec3cf2b4ccea  gcc/testsuite/gcc.target/powerpc/sse3-movsldup.c
! 42ab46ca2f116812ef1cda82d781cd0f  gcc/testsuite/gcc.target/powerpc/sse4_1-blendpd.c
! b3cd9f14f3470222751609d754be1afb  gcc/testsuite/gcc.target/powerpc/sse4_1-blendps-2.c
! 7f97da2433cd2a6eca4f0c57e27b3880  gcc/testsuite/gcc.target/powerpc/sse4_1-blendps.c
! ba5fde85e3d99466d633c618abe08694  gcc/testsuite/gcc.target/powerpc/sse4_1-blendvpd.c
! 9b9a8e4ee39f5d4b8fdf5df41350ed9a  gcc/testsuite/gcc.target/powerpc/sse4_1-blendvps.c
! d319b92f51dcc4a1396165ab57dfff2b  gcc/testsuite/gcc.target/powerpc/sse4_1-ceilpd.c
! b07b71ca680ff5cb710a10384c1819e7  gcc/testsuite/gcc.target/powerpc/sse4_1-ceilps.c
! 9b152a57f1296798d552abaf6d98d9d5  gcc/testsuite/gcc.target/powerpc/sse4_1-ceilsd.c
! 0fa10111cf940f2191c14225332c0c2b  gcc/testsuite/gcc.target/powerpc/sse4_1-ceilss.c
  2f1780930dd01df89e0353878572f66e  gcc/testsuite/gcc.target/powerpc/sse4_1-check.h
! 0ee1524487a537dd6f42a4fdb096a3b4  gcc/testsuite/gcc.target/powerpc/sse4_1-floorpd.c
! 54ede12c9fe853a5daa48c1dd0f8de06  gcc/testsuite/gcc.target/powerpc/sse4_1-floorps.c
! 75913a58d70bacaa9094e4a4ed055def  gcc/testsuite/gcc.target/powerpc/sse4_1-floorsd.c
! 76aa24d26c046629db7e6889a1886a73  gcc/testsuite/gcc.target/powerpc/sse4_1-floorss.c
  a09d6a572b90c5e03c7b0e9dbd96107f  gcc/testsuite/gcc.target/powerpc/sse4_1-packusdw.c
! 60866f75a3d5489501b63ea643fe17f7  gcc/testsuite/gcc.target/powerpc/sse4_1-pblendvb.c
! 631da19ee34cd145c0c24ad6bead9d9f  gcc/testsuite/gcc.target/powerpc/sse4_1-pblendw-2.c
! a8878b7112ae27592ce52739d0a0c122  gcc/testsuite/gcc.target/powerpc/sse4_1-pblendw.c
! e43f1270096fe4f21794f3530c3b58a1  gcc/testsuite/gcc.target/powerpc/sse4_1-pcmpeqq.c
  45ebf481bbef406bb85e0d9dba51f78b  gcc/testsuite/gcc.target/powerpc/sse4_1-phminposuw.c
! 996f5a62ba850e3561ab1ed3524584c1  gcc/testsuite/gcc.target/powerpc/sse4_1-pinsrb.c
! d7b463494c064b5a6aec28aff08d842c  gcc/testsuite/gcc.target/powerpc/sse4_1-pinsrd.c
! 99f9b3599d8588d4e26725d9ff28c823  gcc/testsuite/gcc.target/powerpc/sse4_1-pinsrq.c
  bcd3ad7eefe37f598682acc80987e72b  gcc/testsuite/gcc.target/powerpc/sse4_1-pmaxsb.c
  184e3c38cda0ead8fe705a57ae28e5dd  gcc/testsuite/gcc.target/powerpc/sse4_1-pmaxsd.c
  4f16786fa1eac449376578c721b01e6a  gcc/testsuite/gcc.target/powerpc/sse4_1-pmaxud.c
--- 81119,81366 ----
  862ac833b3d2f974e0f5cecc6abee95b  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-0.c
  63c119f5703b1b66e32b794c15f04320  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-1.c
  3bcc1a1cf615d22cd19fd8328f1017c8  gcc/testsuite/gcc.target/powerpc/shrink-wrap-separate-2.c
! b9e65257dfecac5737e332441c5ef411  gcc/testsuite/gcc.target/powerpc/signbit-1.c
! 4877dcdc18f7101589e6598d35eaeef5  gcc/testsuite/gcc.target/powerpc/signbit-2.c
  78b111d5c85fb4c63a40bf4f61fd37ee  gcc/testsuite/gcc.target/powerpc/signbit-3.c
  a1178b69259e8f197b55b01f225b59f7  gcc/testsuite/gcc.target/powerpc/sldoi_to_mov.c
  b53c831b7a989947bc45e26ce4a15c9b  gcc/testsuite/gcc.target/powerpc/small-loop-unroll.c
  c0e75f8fc195cc2cbbf74bc89b5ca78f  gcc/testsuite/gcc.target/powerpc/spec-barr-1.c
! 57c1b3e4790a39e783c8f5b4401ecfa5  gcc/testsuite/gcc.target/powerpc/sse-addps-1.c
! 93540d8eea311682432ea4b38680b469  gcc/testsuite/gcc.target/powerpc/sse-addss-1.c
! b99c84d153697845376c257c5b85b0d6  gcc/testsuite/gcc.target/powerpc/sse-andnps-1.c
! 92e584a32b078cadc0e4c7683cf8cadb  gcc/testsuite/gcc.target/powerpc/sse-andps-1.c
  3c1ba9088f509857b60a39f4faa46bfd  gcc/testsuite/gcc.target/powerpc/sse-check.h
! 9e9d02398d1d28542631b6c82b71f66e  gcc/testsuite/gcc.target/powerpc/sse-cmpss-1.c
! 998f4b5d3487a5638b1b96f3d30a8629  gcc/testsuite/gcc.target/powerpc/sse-cvtpi16ps-1.c
! 8e603f5423cba3580b5f6769e3587778  gcc/testsuite/gcc.target/powerpc/sse-cvtpi32ps-1.c
! d1ae5e2da10802fe9775c676ae1ceb53  gcc/testsuite/gcc.target/powerpc/sse-cvtpi32x2ps-1.c
! 54b87644e94aea5c8b722acae9ee1e89  gcc/testsuite/gcc.target/powerpc/sse-cvtpi8ps-1.c
! 2e5bb5e910b70fde8e02fab19cd2b867  gcc/testsuite/gcc.target/powerpc/sse-cvtpspi16-1.c
! 47cba066093b62dd29485cdee1b04fa4  gcc/testsuite/gcc.target/powerpc/sse-cvtpspi8-1.c
! 8ecf52434b274f09968a3b834c220129  gcc/testsuite/gcc.target/powerpc/sse-cvtpu16ps-1.c
! 727b596707d2e65059e004de2c92d721  gcc/testsuite/gcc.target/powerpc/sse-cvtpu8ps-1.c
! cd0d3946f30a0116f97faed41e92dd03  gcc/testsuite/gcc.target/powerpc/sse-cvtsi2ss-1.c
! d71c5e99c2d6f03fea706d4b696108d5  gcc/testsuite/gcc.target/powerpc/sse-cvtsi2ss-2.c
! 35373a3c9e4de726357d4c60f8d7bd30  gcc/testsuite/gcc.target/powerpc/sse-cvtss2si-1.c
! b155c50af519162d68ba82d93951d4ff  gcc/testsuite/gcc.target/powerpc/sse-cvtss2si-2.c
! f42ab8e3feb86046101bf292cde3168d  gcc/testsuite/gcc.target/powerpc/sse-cvttss2si-1.c
! d22602cf5e4d1c3d7e89de5247ffa035  gcc/testsuite/gcc.target/powerpc/sse-cvttss2si-2.c
! 391b58bbe6d774837e74732a0c597b17  gcc/testsuite/gcc.target/powerpc/sse-divps-1.c
! 2eba6dd77238f060672b7973f651d074  gcc/testsuite/gcc.target/powerpc/sse-divss-1.c
! ac7b47d4b6c3dea17564fb4de1623afb  gcc/testsuite/gcc.target/powerpc/sse-maxps-1.c
! f8b53d93cd1220a835111aa019847d4e  gcc/testsuite/gcc.target/powerpc/sse-maxps-2.c
! 1ce445db83a95ae9e1e3b3cf3f6bf17d  gcc/testsuite/gcc.target/powerpc/sse-maxss-1.c
! e0fb5bb4902058760469ea2fc1dc5114  gcc/testsuite/gcc.target/powerpc/sse-minps-1.c
! 2811cccfdc259b5289af7bd0310e2324  gcc/testsuite/gcc.target/powerpc/sse-minps-2.c
! 105edcbc353cfb2b6b761f70082cd461  gcc/testsuite/gcc.target/powerpc/sse-minss-1.c
! a93932d5d4c83669802320c40c5feab3  gcc/testsuite/gcc.target/powerpc/sse-movaps-1.c
! 32e297fae28d30e8e498c9222fa763da  gcc/testsuite/gcc.target/powerpc/sse-movaps-2.c
! 28b78761f44be06e4fcc44082b9e4865  gcc/testsuite/gcc.target/powerpc/sse-movhlps-1.c
! 898176eda201a864cf86b876c7f752ed  gcc/testsuite/gcc.target/powerpc/sse-movhps-1.c
! e618d1c0e32355aa6d080e39b7fb21c0  gcc/testsuite/gcc.target/powerpc/sse-movhps-2.c
! fb3e1aa0a68f6a048c743da3d0b2b04e  gcc/testsuite/gcc.target/powerpc/sse-movlhps-1.c
! 0343d1e154d957bfeee25f2b9253c1c6  gcc/testsuite/gcc.target/powerpc/sse-movlps-1.c
! b911eea4f068fa40a78e8227d26ccdb4  gcc/testsuite/gcc.target/powerpc/sse-movlps-2.c
! 6d4a6badebdc5033a86e005361fa61c0  gcc/testsuite/gcc.target/powerpc/sse-movmskb-1.c
! e960995ccd530680b84bd93350629880  gcc/testsuite/gcc.target/powerpc/sse-movmskps-1.c
! 76d19491bb9e3483047dfd65c7b303b0  gcc/testsuite/gcc.target/powerpc/sse-movss-1.c
! 4c37b3177bfe0458b4f6fac244a48822  gcc/testsuite/gcc.target/powerpc/sse-movss-2.c
! 66e2a85c7da60d4b3222c830afb3170a  gcc/testsuite/gcc.target/powerpc/sse-movss-3.c
! e6d93ea3eb56d2cf265d54dd7b13fdfe  gcc/testsuite/gcc.target/powerpc/sse-mulps-1.c
! 029808b9834d6368e9eec6efc90cab0f  gcc/testsuite/gcc.target/powerpc/sse-mulss-1.c
! 3b924a21be55a02c2b9f452802fe8c9a  gcc/testsuite/gcc.target/powerpc/sse-orps-1.c
! a41b4b792b49e3137a8cda4cf2a69d57  gcc/testsuite/gcc.target/powerpc/sse-pavgw-1.c
! 68315965b028c81ae79e66d8888fc2ed  gcc/testsuite/gcc.target/powerpc/sse-pmaxsw-1.c
! cc13e3f72411aad4a59ca1333e7b5e6a  gcc/testsuite/gcc.target/powerpc/sse-pmaxub-1.c
! b3a851f1660b49c5f89266823a6ca283  gcc/testsuite/gcc.target/powerpc/sse-pminsw-1.c
! 8ad84f3a5a370ef7d08c5d354dbdb29f  gcc/testsuite/gcc.target/powerpc/sse-pminub-1.c
! 23f1d314f116609b39ebea669800223f  gcc/testsuite/gcc.target/powerpc/sse-pmulhuw-1.c
! fd24e720561c0d3619bbaeaf181bc76f  gcc/testsuite/gcc.target/powerpc/sse-psadbw-1.c
! 6b765cf624cb60d1aecb42c2a73a2b1f  gcc/testsuite/gcc.target/powerpc/sse-rcpps-1.c
! 851e376ec718d09521f2e92beeee5b3a  gcc/testsuite/gcc.target/powerpc/sse-rsqrtps-1.c
! b08b019102fd33345af6724807ec56a3  gcc/testsuite/gcc.target/powerpc/sse-shufps-1.c
! 38206b5ddf025da3dd1d55e2eded47f6  gcc/testsuite/gcc.target/powerpc/sse-sqrtps-1.c
! 848fe989018838418cec92e5997b0489  gcc/testsuite/gcc.target/powerpc/sse-subps-1.c
! 5e4444af2f4833928ea997c5aac38cca  gcc/testsuite/gcc.target/powerpc/sse-subss-1.c
! d2c7352395202e220d98056cf0c569b2  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-1.c
! bbd9308187d5bd7a46881e54251f4bb3  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-2.c
! 2a2822826f3f8a61abc6ef0ecd89106e  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-3.c
! bc8f0b0c30517bf141bf19e542b7cf69  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-4.c
! bbe1ab8c2e3b91a1d7e52eb026e83952  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-5.c
! 967e8fc1aed2b877d69422e41605343e  gcc/testsuite/gcc.target/powerpc/sse-ucomiss-6.c
! 8eb26aeafea772aa540905c9e2d91937  gcc/testsuite/gcc.target/powerpc/sse-unpckhps-1.c
! ac340f20848819c4efb3e56d7d32e81c  gcc/testsuite/gcc.target/powerpc/sse-unpcklps-1.c
! 7d2c80aeff2f68e6af4c23a8079af1c4  gcc/testsuite/gcc.target/powerpc/sse-xorps-1.c
! cdbc0b154a55e97994bffc6ceef83193  gcc/testsuite/gcc.target/powerpc/sse2-addpd-1.c
! f5a801c4b3304867401ec7e715a72602  gcc/testsuite/gcc.target/powerpc/sse2-addsd-1.c
! c4c684a1e0d8e369e31911af7a900ebe  gcc/testsuite/gcc.target/powerpc/sse2-andnpd-1.c
! 2651306158752ae75021451247eaa520  gcc/testsuite/gcc.target/powerpc/sse2-andpd-1.c
  cbf8a9023b4d10c3f91a64f01773a6c0  gcc/testsuite/gcc.target/powerpc/sse2-check.h
! e86355c083b9ab7c7d0cdf5eddbc2856  gcc/testsuite/gcc.target/powerpc/sse2-cmppd-1.c
! e2f738e0263af43b890dba2a4eba7acf  gcc/testsuite/gcc.target/powerpc/sse2-cmpsd-1.c
! 11f3ff6959f1a8255e57c807042a8ee4  gcc/testsuite/gcc.target/powerpc/sse2-comisd-1.c
! 019e34b73ead9e7c9e537ac3586bbb61  gcc/testsuite/gcc.target/powerpc/sse2-comisd-2.c
! 8225a954e050769fe97ee82b7aa69829  gcc/testsuite/gcc.target/powerpc/sse2-comisd-3.c
! 9ca0c2686092004cdef9b4aa889c55bc  gcc/testsuite/gcc.target/powerpc/sse2-comisd-4.c
! e695e3620968e21b33abefd4d5ef5385  gcc/testsuite/gcc.target/powerpc/sse2-comisd-5.c
! 0ac3b283e6b42203010b481861698c1a  gcc/testsuite/gcc.target/powerpc/sse2-comisd-6.c
! 05db41a267e6f8d393064a93d077a697  gcc/testsuite/gcc.target/powerpc/sse2-cvtdq2pd-1.c
! 797e1d394f24cadbb25bedea282fe13d  gcc/testsuite/gcc.target/powerpc/sse2-cvtdq2ps-1.c
! 5b16368d2f24754d6f0ba0abb6608107  gcc/testsuite/gcc.target/powerpc/sse2-cvtpd2dq-1.c
! 504a059102efe342574a370aa06baea7  gcc/testsuite/gcc.target/powerpc/sse2-cvtpd2ps-1.c
! 32c36b1a262319c9dd6b0dd511af82d9  gcc/testsuite/gcc.target/powerpc/sse2-cvtps2dq-1.c
! b378e05a365ba5be3aee5b77e3adc159  gcc/testsuite/gcc.target/powerpc/sse2-cvtps2pd-1.c
! 4ed5ee215c9404fb65f815bb22c03e17  gcc/testsuite/gcc.target/powerpc/sse2-cvtsd2si-1.c
! ea1ee658bcbbb0d2fe1bd99ce5156b27  gcc/testsuite/gcc.target/powerpc/sse2-cvtsd2si-2.c
! f361b761cf55696cfd9763b536f6b7b2  gcc/testsuite/gcc.target/powerpc/sse2-cvtsd2ss-1.c
! fc9440bcf430aa0cea06050adcc8fd61  gcc/testsuite/gcc.target/powerpc/sse2-cvtsi2sd-1.c
! 05238020df1a2db8906a0b6cad75d36d  gcc/testsuite/gcc.target/powerpc/sse2-cvtsi2sd-2.c
! e45866fa4dd4c58610011984ff98328a  gcc/testsuite/gcc.target/powerpc/sse2-cvtss2sd-1.c
! 16b9ff77e2a33b68bc7c0ca9a57e1e5e  gcc/testsuite/gcc.target/powerpc/sse2-cvttpd2dq-1.c
! 14f3b491b04c6ec252fe42f5835573a6  gcc/testsuite/gcc.target/powerpc/sse2-cvttps2dq-1.c
! 0a7328d3ef8dcc78ceea8d2d28a3bf33  gcc/testsuite/gcc.target/powerpc/sse2-cvttsd2si-1.c
! 310b3e4e3c49f797f6129503c9afa605  gcc/testsuite/gcc.target/powerpc/sse2-cvttsd2si-2.c
! 7823813a616a8d649f160360c1f20e25  gcc/testsuite/gcc.target/powerpc/sse2-divpd-1.c
! 697762f57437f5feb8a0bced38605023  gcc/testsuite/gcc.target/powerpc/sse2-divsd-1.c
! cfa0b4db3a10afbbeabef36487f440c3  gcc/testsuite/gcc.target/powerpc/sse2-maxpd-1.c
! 3c8f23067fed4a414aa2e4b1c7d02829  gcc/testsuite/gcc.target/powerpc/sse2-maxsd-1.c
! 8f983019c7b29cc85c63c9867c3e5326  gcc/testsuite/gcc.target/powerpc/sse2-minpd-1.c
! 6bcd9aaf06c96f6acebc9f45cc5fbebc  gcc/testsuite/gcc.target/powerpc/sse2-minsd-1.c
! 79981422bd772264ad9ac4c2ca8f061c  gcc/testsuite/gcc.target/powerpc/sse2-mmx.c
! d7cc06a2ecf0f0ee209628366a2b8226  gcc/testsuite/gcc.target/powerpc/sse2-movhpd-1.c
! 030c9f6217d3bd4520d2f5f74aa1495f  gcc/testsuite/gcc.target/powerpc/sse2-movhpd-2.c
! 55d45a0cec7e379ff6a3d882398a5daa  gcc/testsuite/gcc.target/powerpc/sse2-movlpd-1.c
! 18cee8b9c0a9e18cd8fab07c728c1839  gcc/testsuite/gcc.target/powerpc/sse2-movlpd-2.c
! d8fc06c78096d9eb45a2a63d01f03503  gcc/testsuite/gcc.target/powerpc/sse2-movmskpd-1.c
! 740435779628390e7e7792c0bce85c73  gcc/testsuite/gcc.target/powerpc/sse2-movq-1.c
! e4976776f7cdd32ef8d832235d252b76  gcc/testsuite/gcc.target/powerpc/sse2-movq-2.c
! 34a2a552ec00c7d38148ccf0d4ef768f  gcc/testsuite/gcc.target/powerpc/sse2-movq-3.c
! 6e174e3f90bec6df5700eea0fc4bae05  gcc/testsuite/gcc.target/powerpc/sse2-movsd-1.c
! 5fed987dc2cb22e396b5cd5980f2e81f  gcc/testsuite/gcc.target/powerpc/sse2-movsd-2.c
! c3f952cef26ce89b0a3032ec6783a993  gcc/testsuite/gcc.target/powerpc/sse2-movsd-3.c
! 603f49b997c46fd32c8fde761cc5fae6  gcc/testsuite/gcc.target/powerpc/sse2-mulpd-1.c
! addb20fb2a2ec6286d5dcbb45a69079a  gcc/testsuite/gcc.target/powerpc/sse2-mulsd-1.c
! 5cba98e6b29d79c7cf5a739f1e80659c  gcc/testsuite/gcc.target/powerpc/sse2-orpd-1.c
! 1d6bbca1b2621d30aea26f84af20b3d0  gcc/testsuite/gcc.target/powerpc/sse2-packssdw-1.c
! 23d9f49128e79a6c198f4239ce503466  gcc/testsuite/gcc.target/powerpc/sse2-packsswb-1.c
! 265f71d81e692f51477948452a6d833a  gcc/testsuite/gcc.target/powerpc/sse2-packuswb-1.c
! a74da693a1155e1964755db07bc15c60  gcc/testsuite/gcc.target/powerpc/sse2-paddb-1.c
! 2bddb7ab865b82480e2d2d8e37d75988  gcc/testsuite/gcc.target/powerpc/sse2-paddd-1.c
! 4376168215c521673118356992094d59  gcc/testsuite/gcc.target/powerpc/sse2-paddq-1.c
! 9fa47bc18e10f696e63db7171474f943  gcc/testsuite/gcc.target/powerpc/sse2-paddsb-1.c
! f907154235fbe406dc25d14ebea26faf  gcc/testsuite/gcc.target/powerpc/sse2-paddsw-1.c
! 23108b0c5bfa90879264bb2eb9fc6a92  gcc/testsuite/gcc.target/powerpc/sse2-paddusb-1.c
! 8a1836d54aa32a7b989e1250bfd90eda  gcc/testsuite/gcc.target/powerpc/sse2-paddusw-1.c
! 034805a36c4ec7640f0b732d4e1aea49  gcc/testsuite/gcc.target/powerpc/sse2-paddw-1.c
! 31979e4fe3f7fd24b396715125fe13e7  gcc/testsuite/gcc.target/powerpc/sse2-pand-1.c
! a13eb0e24c308c5d81cb362bd8e35a33  gcc/testsuite/gcc.target/powerpc/sse2-pandn-1.c
! 6969623a4e796a71a4e56d4a34ccf7e2  gcc/testsuite/gcc.target/powerpc/sse2-pavgb-1.c
! c468595138a35bccc6700cb4e4e4b013  gcc/testsuite/gcc.target/powerpc/sse2-pavgw-1.c
! 24198e0b8c4a98df814617bdc894d577  gcc/testsuite/gcc.target/powerpc/sse2-pcmpeqb-1.c
! e40275cdf771ef218bda818405910f9e  gcc/testsuite/gcc.target/powerpc/sse2-pcmpeqd-1.c
! 2f4a88d35aa1b4f94cc948c9013aef2e  gcc/testsuite/gcc.target/powerpc/sse2-pcmpeqw-1.c
! 5231b2d63067ad5ec106a684e7da2a69  gcc/testsuite/gcc.target/powerpc/sse2-pcmpgtb-1.c
! d07ec5310979f6f6adbcb7872af00cd8  gcc/testsuite/gcc.target/powerpc/sse2-pcmpgtd-1.c
! 0aba697c0761bb9856ada3966c246810  gcc/testsuite/gcc.target/powerpc/sse2-pcmpgtw-1.c
! 3a32c9d81164df65f2162e219201b108  gcc/testsuite/gcc.target/powerpc/sse2-pextrw.c
! c372c84117474efbf0d27d93cb99bb24  gcc/testsuite/gcc.target/powerpc/sse2-pinsrw.c
! c80b8b6e2ac378ee974047434e10ed84  gcc/testsuite/gcc.target/powerpc/sse2-pmaddwd-1.c
! 0d4feea918721d69b52c273c3a6393f3  gcc/testsuite/gcc.target/powerpc/sse2-pmaxsw-1.c
! f4d147808b480e31b22a18a794e2e4df  gcc/testsuite/gcc.target/powerpc/sse2-pmaxub-1.c
! a23cbcbfe7ff5f0f9df46fb8707ff2de  gcc/testsuite/gcc.target/powerpc/sse2-pminsw-1.c
! ac9897aea1d2912cae82a95491fc0d06  gcc/testsuite/gcc.target/powerpc/sse2-pminub-1.c
! c0ff83717a479ce49b302e7dd09900b1  gcc/testsuite/gcc.target/powerpc/sse2-pmovmskb-1.c
! 6438db6e5d1197981d6a258b578ae488  gcc/testsuite/gcc.target/powerpc/sse2-pmulhuw-1.c
! 0663573a7f53cbfb9460ba88bfa5374e  gcc/testsuite/gcc.target/powerpc/sse2-pmulhw-1.c
! 412f932e4d6c494ebb9e008b5f3d2939  gcc/testsuite/gcc.target/powerpc/sse2-pmullw-1.c
! 3d93562b7fa40f373d2be611ab15f813  gcc/testsuite/gcc.target/powerpc/sse2-pmuludq-1.c
! 752cf45e655c8226d9705328d4dd8f8f  gcc/testsuite/gcc.target/powerpc/sse2-por-1.c
! d56b65081f9d6d09f1939f618abae6bb  gcc/testsuite/gcc.target/powerpc/sse2-psadbw-1.c
! 47fb5f99a6eadf00205d297ea7a79a42  gcc/testsuite/gcc.target/powerpc/sse2-pshufd-1.c
! 516f000d74886f2962f65214805926c6  gcc/testsuite/gcc.target/powerpc/sse2-pshufhw-1.c
! 3d3a11094326e8ec4648a874cee9299e  gcc/testsuite/gcc.target/powerpc/sse2-pshuflw-1.c
! 3d09f867d4416c6aeae6562c5c548d60  gcc/testsuite/gcc.target/powerpc/sse2-pslld-1.c
! a957b2cfbd8fcaaeb820257dafd3ea17  gcc/testsuite/gcc.target/powerpc/sse2-pslld-2.c
! c01302c4ca6a76ade08402644b80d960  gcc/testsuite/gcc.target/powerpc/sse2-pslldq-1.c
! 5aa12f30fa56382c665c9de55cf53385  gcc/testsuite/gcc.target/powerpc/sse2-psllq-1.c
! ec5e29cee97e53138042394a0358757e  gcc/testsuite/gcc.target/powerpc/sse2-psllq-2.c
! ad2e5c84288cd0ff4483114ce1dc4671  gcc/testsuite/gcc.target/powerpc/sse2-psllw-1.c
! 83d4e5cc15a95d38494a40b6f5f7f88a  gcc/testsuite/gcc.target/powerpc/sse2-psllw-2.c
! 1c7f2a5210daeb1f5b21cb06c3d0b561  gcc/testsuite/gcc.target/powerpc/sse2-psrad-1.c
! 4eea68395ae78ddef2572e7bc40f9fa0  gcc/testsuite/gcc.target/powerpc/sse2-psrad-2.c
! 63a0b16f02f0cb4115b2f17f60769392  gcc/testsuite/gcc.target/powerpc/sse2-psraw-1.c
! 9aa970acea4e4d9252d7fed902a16717  gcc/testsuite/gcc.target/powerpc/sse2-psraw-2.c
! 170fbd19cedad8d0cbc2b57c7f5a3b4d  gcc/testsuite/gcc.target/powerpc/sse2-psrld-1.c
! 7b3a3b27d0c6864eed8f3b7aa777cb7b  gcc/testsuite/gcc.target/powerpc/sse2-psrld-2.c
! d71edd523b96f7f1df9d986ddafd0101  gcc/testsuite/gcc.target/powerpc/sse2-psrldq-1.c
! aa6201d8da5cc16bf574fbfa007b1882  gcc/testsuite/gcc.target/powerpc/sse2-psrlq-1.c
! 6ad9e3154a0fc9bdb3eaff169d1508bd  gcc/testsuite/gcc.target/powerpc/sse2-psrlq-2.c
! 3b153a07ace7126391fdbb1ae4ccb7b9  gcc/testsuite/gcc.target/powerpc/sse2-psrlw-1.c
! b7fcfe2fe9d62ed2f0e61b7458fe4195  gcc/testsuite/gcc.target/powerpc/sse2-psrlw-2.c
! bdd51d3faa2a3d760566dece8ac13fa8  gcc/testsuite/gcc.target/powerpc/sse2-psubb-1.c
! c72760b7f23468637d1f258a99e0ab7d  gcc/testsuite/gcc.target/powerpc/sse2-psubd-1.c
! b055c0bbd27099531cb3b695b7d34f23  gcc/testsuite/gcc.target/powerpc/sse2-psubq-1.c
! 06e2f7ccd22c62c676a443d630439d9a  gcc/testsuite/gcc.target/powerpc/sse2-psubsb-1.c
! ea9b0286f7c90698157085552c52d3b7  gcc/testsuite/gcc.target/powerpc/sse2-psubsw-1.c
! 7327b737e49dc17dd16639267f86a201  gcc/testsuite/gcc.target/powerpc/sse2-psubusb-1.c
! d8051d83b85a3c12c2bb72bbfbccfea3  gcc/testsuite/gcc.target/powerpc/sse2-psubusw-1.c
! e9ac82a2fd91df0df9f6b63bc2c89d47  gcc/testsuite/gcc.target/powerpc/sse2-psubw-1.c
! 8f76e5930196aa117f745adcaa25a8d0  gcc/testsuite/gcc.target/powerpc/sse2-punpckhbw-1.c
! a02244b950d3900cea73deb1805e5831  gcc/testsuite/gcc.target/powerpc/sse2-punpckhdq-1.c
! cb806f995d61355cbc46efe5c0594a8a  gcc/testsuite/gcc.target/powerpc/sse2-punpckhqdq-1.c
! 24d29fd970fd895f750f8af02496e163  gcc/testsuite/gcc.target/powerpc/sse2-punpckhwd-1.c
! 734fb49fec0a5debccf77e3a11d2386b  gcc/testsuite/gcc.target/powerpc/sse2-punpcklbw-1.c
! d125db3821ec0660e3dfb55aa0cfafe4  gcc/testsuite/gcc.target/powerpc/sse2-punpckldq-1.c
! d1282794faee5e301e1a1691c0890f1f  gcc/testsuite/gcc.target/powerpc/sse2-punpcklqdq-1.c
! 6d5adc9d9d84eb5ce449a96d8cc8016c  gcc/testsuite/gcc.target/powerpc/sse2-punpcklwd-1.c
! 79e6ea0df0411590117539047018a1d7  gcc/testsuite/gcc.target/powerpc/sse2-pxor-1.c
! e5032c31c52fe6a5604cb514407c09cd  gcc/testsuite/gcc.target/powerpc/sse2-shufpd-1.c
! 7d8f08a20f1f67237f1f106fc336c32e  gcc/testsuite/gcc.target/powerpc/sse2-sqrtpd-1.c
! d9cf3e54e67d2bef8241506c2b3f9af1  gcc/testsuite/gcc.target/powerpc/sse2-subpd-1.c
! dd758ef4d3f700c451c51c0f9514cf2a  gcc/testsuite/gcc.target/powerpc/sse2-subsd-1.c
! 6f530ae10cdb58ec8aa0cf4dcb00147d  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-1.c
! 0fbfb50d393d2ed4497786660932bb0d  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-2.c
! ef818465150184ed8e7e3032bdd6268b  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-3.c
! 474548fc4ce96380eaaa674f4853c4d8  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-4.c
! fe137256c459b7317934b8e3e809e4e7  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-5.c
! c2e50d4c4710390803a3861201c68932  gcc/testsuite/gcc.target/powerpc/sse2-ucomisd-6.c
! 1f1514d92c461ee85bd7027cb031fc20  gcc/testsuite/gcc.target/powerpc/sse2-unpckhpd-1.c
! 24bcb12907c1debe5fb5e5b18e37fb98  gcc/testsuite/gcc.target/powerpc/sse2-unpcklpd-1.c
! a9a6ba519f5ee0aa191a26fbd5b7c266  gcc/testsuite/gcc.target/powerpc/sse2-xorpd-1.c
! 8f7a011b9eba301880d42f08c6341cb9  gcc/testsuite/gcc.target/powerpc/sse3-addsubpd.c
! a9378b2e875d5133f6e89deed3d5c409  gcc/testsuite/gcc.target/powerpc/sse3-addsubps.c
  a962b69d7697aaa2cc9c231cf59ef133  gcc/testsuite/gcc.target/powerpc/sse3-check.h
! 5f8c26e13dbe09ffb7d29fbdcf76aee1  gcc/testsuite/gcc.target/powerpc/sse3-haddpd.c
! f0d86b2dabf901da7a9185a6e9bcccb1  gcc/testsuite/gcc.target/powerpc/sse3-haddps.c
! d81cbc6a08c57b0773071989795fa95c  gcc/testsuite/gcc.target/powerpc/sse3-hsubpd.c
! e242ebc25414c861042ffc3e08c929fb  gcc/testsuite/gcc.target/powerpc/sse3-hsubps.c
! 02047921897b3db24be02e914e2e7abd  gcc/testsuite/gcc.target/powerpc/sse3-lddqu.c
! 40614d1152fd45de3f570100b4b724f1  gcc/testsuite/gcc.target/powerpc/sse3-movddup.c
! f9818e19b52dfa52d7b40b0f5cd74791  gcc/testsuite/gcc.target/powerpc/sse3-movshdup.c
! c69209f26ebfe8271037b0c07c3751b1  gcc/testsuite/gcc.target/powerpc/sse3-movsldup.c
! c59adadf68d0f37c9538b006cfcc2619  gcc/testsuite/gcc.target/powerpc/sse4_1-blendpd.c
! 9e5b12302130e4a4f60c6368434f8395  gcc/testsuite/gcc.target/powerpc/sse4_1-blendps-2.c
! efa62b26f0baec47f565a148d97ac301  gcc/testsuite/gcc.target/powerpc/sse4_1-blendps.c
! 1f4e99a1cd4f74ad764051ec22e654de  gcc/testsuite/gcc.target/powerpc/sse4_1-blendvpd.c
! dda7561fba787e537acb9049ca99c579  gcc/testsuite/gcc.target/powerpc/sse4_1-blendvps.c
! 33821473f93731e16ee7401dd6a766e9  gcc/testsuite/gcc.target/powerpc/sse4_1-ceilpd.c
! 79739f04f6faf084b7d6b97c1227fc0e  gcc/testsuite/gcc.target/powerpc/sse4_1-ceilps.c
! 9483933b066850484213201c9b3302c2  gcc/testsuite/gcc.target/powerpc/sse4_1-ceilsd.c
! f3730eabe16ae527f69ca57907b9690e  gcc/testsuite/gcc.target/powerpc/sse4_1-ceilss.c
  2f1780930dd01df89e0353878572f66e  gcc/testsuite/gcc.target/powerpc/sse4_1-check.h
! 54930d639fa65ccfb794542a201a07b6  gcc/testsuite/gcc.target/powerpc/sse4_1-floorpd.c
! d36e7b63b29ab9ad30f4ea3b30bf4815  gcc/testsuite/gcc.target/powerpc/sse4_1-floorps.c
! c77637205a5fcf7837079ad9cd02b2b0  gcc/testsuite/gcc.target/powerpc/sse4_1-floorsd.c
! 6dad1af625d536ed05426e71795df355  gcc/testsuite/gcc.target/powerpc/sse4_1-floorss.c
  a09d6a572b90c5e03c7b0e9dbd96107f  gcc/testsuite/gcc.target/powerpc/sse4_1-packusdw.c
! 1eb7ee1d0ab3d02d652807f0ef293dce  gcc/testsuite/gcc.target/powerpc/sse4_1-pblendvb.c
! 94a84bbd961c4c03f7b0eb9a15242c54  gcc/testsuite/gcc.target/powerpc/sse4_1-pblendw-2.c
! c084ebf21f2f9f29eedb10d84f2aa487  gcc/testsuite/gcc.target/powerpc/sse4_1-pblendw.c
! eb1fd39b4a6a4e64a0ab2692d4415881  gcc/testsuite/gcc.target/powerpc/sse4_1-pcmpeqq.c
  45ebf481bbef406bb85e0d9dba51f78b  gcc/testsuite/gcc.target/powerpc/sse4_1-phminposuw.c
! ce110f47ff426169e86b3322d09ec583  gcc/testsuite/gcc.target/powerpc/sse4_1-pinsrb.c
! da436991daaa3b82bae778072420bebe  gcc/testsuite/gcc.target/powerpc/sse4_1-pinsrd.c
! 829d3508ea764920e6b244c5aaeb2b3c  gcc/testsuite/gcc.target/powerpc/sse4_1-pinsrq.c
  bcd3ad7eefe37f598682acc80987e72b  gcc/testsuite/gcc.target/powerpc/sse4_1-pmaxsb.c
  184e3c38cda0ead8fe705a57ae28e5dd  gcc/testsuite/gcc.target/powerpc/sse4_1-pmaxsd.c
  4f16786fa1eac449376578c721b01e6a  gcc/testsuite/gcc.target/powerpc/sse4_1-pmaxud.c
*************** bcd3ad7eefe37f598682acc80987e72b  gcc/te
*** 75775,75869 ****
  3ac1c1a737b257f70954a45655741107  gcc/testsuite/gcc.target/powerpc/sse4_1-pminud.c
  d260dc8d84fe6b98d7dc8c3cc451dc7d  gcc/testsuite/gcc.target/powerpc/sse4_1-pminuw.c
  d1c101b05a662de8d4d993862dac1a7f  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxbd.c
! 6f3c56c980214d88b89dd0b50ab9c249  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxbq.c
  6ae5dffb215852a6152376348750af66  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxbw.c
! ba598d837d240166b34516c5937c7cee  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxdq.c
  f54b9c13cbc168410fe625f56d1b765d  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxwd.c
! 7a6366563d08e2f9dfa9118e93a8face  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxwq.c
  65255eeeaa58220ae9c30dd5274a338f  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxbd.c
  1da14c122956756cdb352cf44f60a863  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxbq.c
  cc43b447a57ba66e3191c421ceae5839  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxbw.c
  1afebd08d31a3676711bd5da64687030  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxdq.c
  495323d061b312b83c96defb1d9e6f44  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxwd.c
  5ca69efe7e63fe6d35deb342e1bd262a  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxwq.c
! 4d77bdf0cbdf80f49a43fb06b4dad6a3  gcc/testsuite/gcc.target/powerpc/sse4_1-pmuldq.c
  43edf8357b30130c467867e020286aaa  gcc/testsuite/gcc.target/powerpc/sse4_1-pmulld.c
! 9a6a1ef26810b96d7896c95fd6563eb2  gcc/testsuite/gcc.target/powerpc/sse4_1-ptest-1.c
  93ef87e0af1caf032f386af40d6fde5b  gcc/testsuite/gcc.target/powerpc/sse4_1-round-data.h
  1334c48972d1de2311e4aee1e16a52ca  gcc/testsuite/gcc.target/powerpc/sse4_1-round.h
  925f4bca28e62f12fcb2dabe086d529e  gcc/testsuite/gcc.target/powerpc/sse4_1-round2.h
  dc1193b2ebb05005605b991959e228b4  gcc/testsuite/gcc.target/powerpc/sse4_1-round3.h
! 3d4cd49ba4a6eb0f194cdaa5552d452c  gcc/testsuite/gcc.target/powerpc/sse4_1-roundpd-2.c
! f5d26088a5c347cf337f86d8ea24a928  gcc/testsuite/gcc.target/powerpc/sse4_1-roundpd-3.c
  12ac3d1e138fd707b4cbabee6dbbf877  gcc/testsuite/gcc.target/powerpc/sse4_1-roundpd.c
  74445d296243bc2ae2e48e69fea89439  gcc/testsuite/gcc.target/powerpc/sse4_1-roundps.c
  7cf1cfac2e7f5cb6f79340e7e338ab7c  gcc/testsuite/gcc.target/powerpc/sse4_1-roundsd.c
  459ec4521ad99dbcac6a628e023aa250  gcc/testsuite/gcc.target/powerpc/sse4_1-roundss.c
  6fa2cb5c80587673b8fe7689a8f8d089  gcc/testsuite/gcc.target/powerpc/sse4_2-check.h
! 3939f983b5258bde666d76b9935d7ea6  gcc/testsuite/gcc.target/powerpc/sse4_2-pcmpgtq.c
  c4da621e2f792bd21112c40ff73a206d  gcc/testsuite/gcc.target/powerpc/ssp-1.c
  28df2b90767c1ab9ffd06127b47b30f9  gcc/testsuite/gcc.target/powerpc/ssp-2.c
  16888841126e94e3ccf56cbb553f5490  gcc/testsuite/gcc.target/powerpc/ssse3-check.h
! daea7e81cc714c37c8392c695e075287  gcc/testsuite/gcc.target/powerpc/ssse3-pabsb.c
! ccd1c4e15dfef58f853b3d235bd5cb48  gcc/testsuite/gcc.target/powerpc/ssse3-pabsd.c
! 443c178a58c6bf10b2b80d2b180ebec1  gcc/testsuite/gcc.target/powerpc/ssse3-pabsw.c
! 9ec585fbd699221be4a9feb7c29e80a0  gcc/testsuite/gcc.target/powerpc/ssse3-palignr.c
! 743913bf1d81345b32bb5fe1f02ca4ed  gcc/testsuite/gcc.target/powerpc/ssse3-phaddd.c
! 596acda7c5e53a7029fe083900c9cbf1  gcc/testsuite/gcc.target/powerpc/ssse3-phaddsw.c
! 535cb59e3d1208904a8a0a40d48e95e2  gcc/testsuite/gcc.target/powerpc/ssse3-phaddw.c
! dde85b9c8eb0f0a63df56c0ef268a099  gcc/testsuite/gcc.target/powerpc/ssse3-phsubd.c
! 2e05bc657617bcdd2ad4bfbc49088520  gcc/testsuite/gcc.target/powerpc/ssse3-phsubsw.c
! bb4e762eea5246926a8994d5328bf1b6  gcc/testsuite/gcc.target/powerpc/ssse3-phsubw.c
! e8c7fdb479f8533aa31efca23aa49bb5  gcc/testsuite/gcc.target/powerpc/ssse3-pmaddubsw.c
! caa4db29432fb9a75d1d9d729711d8ca  gcc/testsuite/gcc.target/powerpc/ssse3-pmulhrsw.c
! 06756fd18ee69022664374402c21db72  gcc/testsuite/gcc.target/powerpc/ssse3-pshufb.c
! 4b1f8e3d618a4a39fa5a8f28cb13305e  gcc/testsuite/gcc.target/powerpc/ssse3-psignb.c
! e97a2a7881c0d1aa7fddb88c11f02b9d  gcc/testsuite/gcc.target/powerpc/ssse3-psignd.c
! b95952c2cb2c3da6f2ec763d074b958d  gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c
  f3459c279e70e34d7f608b7b9cd9fe46  gcc/testsuite/gcc.target/powerpc/ssse3-vals.h
  ab241355ba77c8e163b05eb81f33d1c5  gcc/testsuite/gcc.target/powerpc/stack-limit.c
! ba8561d330e1ff11cde165a34f6b95e9  gcc/testsuite/gcc.target/powerpc/swaps-p8-1.c
  1251a69a170efd2dccca47828de63a2a  gcc/testsuite/gcc.target/powerpc/swaps-p8-10.c
  2fe56a13672fc03a89c00df88dae3169  gcc/testsuite/gcc.target/powerpc/swaps-p8-11.c
! 5a5d9488d06466037a2db91b9d58ebbf  gcc/testsuite/gcc.target/powerpc/swaps-p8-12.c
  19921ba7b5912092455d2557f2076a71  gcc/testsuite/gcc.target/powerpc/swaps-p8-13.c
! 2c34c6cf4b62c47a455f584cbb842f7d  gcc/testsuite/gcc.target/powerpc/swaps-p8-14.c
! d06946b35c28e81c1e5de341efa2152c  gcc/testsuite/gcc.target/powerpc/swaps-p8-15.c
! 9026eaa348023976fa25f8ea5f1f71a5  gcc/testsuite/gcc.target/powerpc/swaps-p8-16.c
! fe63d0859afd56c7502d74e139abe335  gcc/testsuite/gcc.target/powerpc/swaps-p8-17.c
! be804356a86d670131ac56a46ce91868  gcc/testsuite/gcc.target/powerpc/swaps-p8-18.c
! e87ef9c03a6e7f41774565bd37308592  gcc/testsuite/gcc.target/powerpc/swaps-p8-19.c
! 6ffe617fbfc820fbd2ebe1edb2400c85  gcc/testsuite/gcc.target/powerpc/swaps-p8-2.c
  28ddcc589e6736bb17af233241f835d1  gcc/testsuite/gcc.target/powerpc/swaps-p8-20.c
  c110a35fda6b3a0063778a5792970e84  gcc/testsuite/gcc.target/powerpc/swaps-p8-21.c
! 29350968be6bbf446062e444bef3c182  gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
! a5032fb1fa221d5d137ebdb706a62a99  gcc/testsuite/gcc.target/powerpc/swaps-p8-23.c
! 82f0759c9343b9d8a3e78d5031ab88f5  gcc/testsuite/gcc.target/powerpc/swaps-p8-24.c
! e95bf3e54b8ee34e2f57355000c6fde2  gcc/testsuite/gcc.target/powerpc/swaps-p8-25.c
! 3f9a0605d0c0d7ea0d14f938ad537d0d  gcc/testsuite/gcc.target/powerpc/swaps-p8-26.c
! 9c5175d18a76fdb0f9767707798c872a  gcc/testsuite/gcc.target/powerpc/swaps-p8-27.c
  99533025bbda92f8c5624aa0a977f0cf  gcc/testsuite/gcc.target/powerpc/swaps-p8-28.c
  365ab3147ef37189d8c8b56d21dfa9ca  gcc/testsuite/gcc.target/powerpc/swaps-p8-29.c
! eecdbf6b0b6e5b4c390de892fb9413a0  gcc/testsuite/gcc.target/powerpc/swaps-p8-3.c
! 830a72c599380d1462d75f62a9381b34  gcc/testsuite/gcc.target/powerpc/swaps-p8-30.c
  54a51960cc691ea90b07070de9d9402f  gcc/testsuite/gcc.target/powerpc/swaps-p8-31.c
  98854fa6c9b039e76e789a6afba83490  gcc/testsuite/gcc.target/powerpc/swaps-p8-32.c
! fd68a2dadfb6c21bb6df941ed4187fc3  gcc/testsuite/gcc.target/powerpc/swaps-p8-33.c
  f1c3ccafa9311c56c8816bf66a6a49d6  gcc/testsuite/gcc.target/powerpc/swaps-p8-34.c
  63178d18a0ea7b28ec993b3a6eec620b  gcc/testsuite/gcc.target/powerpc/swaps-p8-35.c
! d97246cde32621df5623dd1401141cfa  gcc/testsuite/gcc.target/powerpc/swaps-p8-36.c
  4fcbf88b2876a4d0bb0828524a2a0111  gcc/testsuite/gcc.target/powerpc/swaps-p8-37.c
  d01a25b2916153a8a4d5d5a6cad4c91f  gcc/testsuite/gcc.target/powerpc/swaps-p8-38.c
! d542684b121329015e4b3b6c07b57e43  gcc/testsuite/gcc.target/powerpc/swaps-p8-39.c
! 9972776f3676ebc2bc9c13b5f2e244c0  gcc/testsuite/gcc.target/powerpc/swaps-p8-4.c
  f2c22550c93f1f7a07b911e96a15b4df  gcc/testsuite/gcc.target/powerpc/swaps-p8-40.c
  560760aaafa6d3554175bdb61f2d211e  gcc/testsuite/gcc.target/powerpc/swaps-p8-41.c
! 0b89eb97687fef36bff2976190723ee2  gcc/testsuite/gcc.target/powerpc/swaps-p8-42.c
  c9e443ddbdf5ba28ff765c6410ce7ca1  gcc/testsuite/gcc.target/powerpc/swaps-p8-43.c
  cf71f7501170f714928ab237adfa9d1d  gcc/testsuite/gcc.target/powerpc/swaps-p8-44.c
! 19f28f4fea300ff443f3d7c5c1010397  gcc/testsuite/gcc.target/powerpc/swaps-p8-45.c
! 09461d0d193ca6981f0ae26e2fe314ff  gcc/testsuite/gcc.target/powerpc/swaps-p8-46.c
! d6244d32b4c5065f3874fa38517d64be  gcc/testsuite/gcc.target/powerpc/swaps-p8-5.c
  0f5c5efa2e329bc2060265058a2ff722  gcc/testsuite/gcc.target/powerpc/swaps-p8-6.c
  b3ee99ff13dd64c0a7e4d3727bd516f8  gcc/testsuite/gcc.target/powerpc/swaps-p8-7.c
  6d778b9a74a6c63385c58c1fbd60137f  gcc/testsuite/gcc.target/powerpc/swaps-p8-8.c
--- 81370,81464 ----
  3ac1c1a737b257f70954a45655741107  gcc/testsuite/gcc.target/powerpc/sse4_1-pminud.c
  d260dc8d84fe6b98d7dc8c3cc451dc7d  gcc/testsuite/gcc.target/powerpc/sse4_1-pminuw.c
  d1c101b05a662de8d4d993862dac1a7f  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxbd.c
! 415f15028a0197f5fb1a290b02eb1fd5  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxbq.c
  6ae5dffb215852a6152376348750af66  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxbw.c
! f45d9e33c32202fd90de2783ca6c240c  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxdq.c
  f54b9c13cbc168410fe625f56d1b765d  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxwd.c
! 09450fc068f145b2a1684b5017741d30  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovsxwq.c
  65255eeeaa58220ae9c30dd5274a338f  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxbd.c
  1da14c122956756cdb352cf44f60a863  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxbq.c
  cc43b447a57ba66e3191c421ceae5839  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxbw.c
  1afebd08d31a3676711bd5da64687030  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxdq.c
  495323d061b312b83c96defb1d9e6f44  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxwd.c
  5ca69efe7e63fe6d35deb342e1bd262a  gcc/testsuite/gcc.target/powerpc/sse4_1-pmovzxwq.c
! 30746a111f5f38d78edff7de67d7bd0a  gcc/testsuite/gcc.target/powerpc/sse4_1-pmuldq.c
  43edf8357b30130c467867e020286aaa  gcc/testsuite/gcc.target/powerpc/sse4_1-pmulld.c
! 5fe94dbee5b9c6af737cc15725c59c98  gcc/testsuite/gcc.target/powerpc/sse4_1-ptest-1.c
  93ef87e0af1caf032f386af40d6fde5b  gcc/testsuite/gcc.target/powerpc/sse4_1-round-data.h
  1334c48972d1de2311e4aee1e16a52ca  gcc/testsuite/gcc.target/powerpc/sse4_1-round.h
  925f4bca28e62f12fcb2dabe086d529e  gcc/testsuite/gcc.target/powerpc/sse4_1-round2.h
  dc1193b2ebb05005605b991959e228b4  gcc/testsuite/gcc.target/powerpc/sse4_1-round3.h
! 237305fd64569749090473a090f9667a  gcc/testsuite/gcc.target/powerpc/sse4_1-roundpd-2.c
! 51c36c46c523134a478ded25ec86b45c  gcc/testsuite/gcc.target/powerpc/sse4_1-roundpd-3.c
  12ac3d1e138fd707b4cbabee6dbbf877  gcc/testsuite/gcc.target/powerpc/sse4_1-roundpd.c
  74445d296243bc2ae2e48e69fea89439  gcc/testsuite/gcc.target/powerpc/sse4_1-roundps.c
  7cf1cfac2e7f5cb6f79340e7e338ab7c  gcc/testsuite/gcc.target/powerpc/sse4_1-roundsd.c
  459ec4521ad99dbcac6a628e023aa250  gcc/testsuite/gcc.target/powerpc/sse4_1-roundss.c
  6fa2cb5c80587673b8fe7689a8f8d089  gcc/testsuite/gcc.target/powerpc/sse4_2-check.h
! bcf5c1b634b590f80f6807a62f1f8134  gcc/testsuite/gcc.target/powerpc/sse4_2-pcmpgtq.c
  c4da621e2f792bd21112c40ff73a206d  gcc/testsuite/gcc.target/powerpc/ssp-1.c
  28df2b90767c1ab9ffd06127b47b30f9  gcc/testsuite/gcc.target/powerpc/ssp-2.c
  16888841126e94e3ccf56cbb553f5490  gcc/testsuite/gcc.target/powerpc/ssse3-check.h
! d9c6a9814224b74349e9d758fa0014a9  gcc/testsuite/gcc.target/powerpc/ssse3-pabsb.c
! 213c027ace6253244d79c52191f24cd9  gcc/testsuite/gcc.target/powerpc/ssse3-pabsd.c
! 6678958ce8efe49cc222fd08429d24dd  gcc/testsuite/gcc.target/powerpc/ssse3-pabsw.c
! 9e19ee9d8bb9a19aac4e41ea8c71a638  gcc/testsuite/gcc.target/powerpc/ssse3-palignr.c
! 82969b2fb7e9933e25763cf4ec4d9169  gcc/testsuite/gcc.target/powerpc/ssse3-phaddd.c
! 6584815b46c20c5c99064484ceac38d2  gcc/testsuite/gcc.target/powerpc/ssse3-phaddsw.c
! f0fded85cc8632bdad72284035b2d57c  gcc/testsuite/gcc.target/powerpc/ssse3-phaddw.c
! 0fca4ca921bb9cbe77def61550f03c73  gcc/testsuite/gcc.target/powerpc/ssse3-phsubd.c
! f340cf44ffa01e467cc768230bcc9eb2  gcc/testsuite/gcc.target/powerpc/ssse3-phsubsw.c
! 307d067e6139a7211af3861770d7d3e1  gcc/testsuite/gcc.target/powerpc/ssse3-phsubw.c
! 19682aa3f250e4ed6fdd391a3755a46c  gcc/testsuite/gcc.target/powerpc/ssse3-pmaddubsw.c
! bb4909e05e89476a84c2d5a855be279d  gcc/testsuite/gcc.target/powerpc/ssse3-pmulhrsw.c
! db018cb1165ab0750b404fba10771f7d  gcc/testsuite/gcc.target/powerpc/ssse3-pshufb.c
! c36d5e9b1843432bae24b846fbfa2419  gcc/testsuite/gcc.target/powerpc/ssse3-psignb.c
! 94e45519c03b7bbfac3d6df0b77b09ba  gcc/testsuite/gcc.target/powerpc/ssse3-psignd.c
! 735969d9135e5cf034fa25a2fcc1df1a  gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c
  f3459c279e70e34d7f608b7b9cd9fe46  gcc/testsuite/gcc.target/powerpc/ssse3-vals.h
  ab241355ba77c8e163b05eb81f33d1c5  gcc/testsuite/gcc.target/powerpc/stack-limit.c
! c144c8783088ad884939b90f78df7751  gcc/testsuite/gcc.target/powerpc/swaps-p8-1.c
  1251a69a170efd2dccca47828de63a2a  gcc/testsuite/gcc.target/powerpc/swaps-p8-10.c
  2fe56a13672fc03a89c00df88dae3169  gcc/testsuite/gcc.target/powerpc/swaps-p8-11.c
! cd88f97c5f3a9fc02418cacd6b02eeee  gcc/testsuite/gcc.target/powerpc/swaps-p8-12.c
  19921ba7b5912092455d2557f2076a71  gcc/testsuite/gcc.target/powerpc/swaps-p8-13.c
! 814cb4ce295d232b196751d0cd38a33f  gcc/testsuite/gcc.target/powerpc/swaps-p8-14.c
! 6702e7457aae92586dbcf70a3cf7a699  gcc/testsuite/gcc.target/powerpc/swaps-p8-15.c
! b72e8603d2ec3d5c12294d849ec1b297  gcc/testsuite/gcc.target/powerpc/swaps-p8-16.c
! 835e1b8dfadc60fc8d2a24a290f93983  gcc/testsuite/gcc.target/powerpc/swaps-p8-17.c
! a396c873508f4725411f2de09164226b  gcc/testsuite/gcc.target/powerpc/swaps-p8-18.c
! 7de68c863f0c7aaf374b3fbbfbb9d81e  gcc/testsuite/gcc.target/powerpc/swaps-p8-19.c
! b8e402ece5da1120129aedd5196e9069  gcc/testsuite/gcc.target/powerpc/swaps-p8-2.c
  28ddcc589e6736bb17af233241f835d1  gcc/testsuite/gcc.target/powerpc/swaps-p8-20.c
  c110a35fda6b3a0063778a5792970e84  gcc/testsuite/gcc.target/powerpc/swaps-p8-21.c
! dce78389cc02300c181927c47fa8082a  gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
! cff7db4242bfad5f889ffcb90e60a350  gcc/testsuite/gcc.target/powerpc/swaps-p8-23.c
! 99afab521812cc680d8d4a998536fb48  gcc/testsuite/gcc.target/powerpc/swaps-p8-24.c
! 027805ab06f5085cc6123bceaab5cd0f  gcc/testsuite/gcc.target/powerpc/swaps-p8-25.c
! ceddc7632f8b6f7864cadb0a791557e8  gcc/testsuite/gcc.target/powerpc/swaps-p8-26.c
! 4fa64cb6835e3de62804df29a9eca1bc  gcc/testsuite/gcc.target/powerpc/swaps-p8-27.c
  99533025bbda92f8c5624aa0a977f0cf  gcc/testsuite/gcc.target/powerpc/swaps-p8-28.c
  365ab3147ef37189d8c8b56d21dfa9ca  gcc/testsuite/gcc.target/powerpc/swaps-p8-29.c
! b59d551158ff182fb814a2c58cd8c102  gcc/testsuite/gcc.target/powerpc/swaps-p8-3.c
! f60eff593a85d5bd880ee15614b642b7  gcc/testsuite/gcc.target/powerpc/swaps-p8-30.c
  54a51960cc691ea90b07070de9d9402f  gcc/testsuite/gcc.target/powerpc/swaps-p8-31.c
  98854fa6c9b039e76e789a6afba83490  gcc/testsuite/gcc.target/powerpc/swaps-p8-32.c
! 46e53831b2ba3bece5482e0543e17515  gcc/testsuite/gcc.target/powerpc/swaps-p8-33.c
  f1c3ccafa9311c56c8816bf66a6a49d6  gcc/testsuite/gcc.target/powerpc/swaps-p8-34.c
  63178d18a0ea7b28ec993b3a6eec620b  gcc/testsuite/gcc.target/powerpc/swaps-p8-35.c
! 83001b88b1cb02580054c576d08fce04  gcc/testsuite/gcc.target/powerpc/swaps-p8-36.c
  4fcbf88b2876a4d0bb0828524a2a0111  gcc/testsuite/gcc.target/powerpc/swaps-p8-37.c
  d01a25b2916153a8a4d5d5a6cad4c91f  gcc/testsuite/gcc.target/powerpc/swaps-p8-38.c
! 07d50fdd94611a0f768e88496a2fc7ec  gcc/testsuite/gcc.target/powerpc/swaps-p8-39.c
! 0b223f8be46bdfdd2a682464b975d54e  gcc/testsuite/gcc.target/powerpc/swaps-p8-4.c
  f2c22550c93f1f7a07b911e96a15b4df  gcc/testsuite/gcc.target/powerpc/swaps-p8-40.c
  560760aaafa6d3554175bdb61f2d211e  gcc/testsuite/gcc.target/powerpc/swaps-p8-41.c
! 5228bc7b4657fb7d4dccd4e5f7257913  gcc/testsuite/gcc.target/powerpc/swaps-p8-42.c
  c9e443ddbdf5ba28ff765c6410ce7ca1  gcc/testsuite/gcc.target/powerpc/swaps-p8-43.c
  cf71f7501170f714928ab237adfa9d1d  gcc/testsuite/gcc.target/powerpc/swaps-p8-44.c
! dd5b4640c5745628d852d430b90acad0  gcc/testsuite/gcc.target/powerpc/swaps-p8-45.c
! 2ffba6f8313c6e06eafd1fdf123c7afe  gcc/testsuite/gcc.target/powerpc/swaps-p8-46.c
! b86d44bd57b842bbd7ab8d11e05e96f8  gcc/testsuite/gcc.target/powerpc/swaps-p8-5.c
  0f5c5efa2e329bc2060265058a2ff722  gcc/testsuite/gcc.target/powerpc/swaps-p8-6.c
  b3ee99ff13dd64c0a7e4d3727bd516f8  gcc/testsuite/gcc.target/powerpc/swaps-p8-7.c
  6d778b9a74a6c63385c58c1fbd60137f  gcc/testsuite/gcc.target/powerpc/swaps-p8-8.c
*************** b3ee99ff13dd64c0a7e4d3727bd516f8  gcc/te
*** 75871,75889 ****
  f138cfa6e387e1bc85747da2fc38e305  gcc/testsuite/gcc.target/powerpc/swaps-stack-protector.c
  2a52ad9e020f4876e1759e2137dd146c  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin.c
  2852dd6476acf51799a5be9f79d9a721  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c
! 90cde76e00eb6bd925434f9fb8de59f7  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin.c
  2b302f540128e4bac16f357999890018  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c
  8160640f23530f3c0b53296707f0cf0e  gcc/testsuite/gcc.target/powerpc/test_mffsl.c
  e28cc14ddafc82b0f212f1b4ebbcf50a  gcc/testsuite/gcc.target/powerpc/tfmode_off.c
  c2edbb1afba546ea3ac8a5efcaca9c38  gcc/testsuite/gcc.target/powerpc/ti_math1.c
  c3d0d51284479d220a6166a0f362536c  gcc/testsuite/gcc.target/powerpc/ti_math2.c
  b66bd2797d99df9316755addd3664809  gcc/testsuite/gcc.target/powerpc/timode_off.c
  242e558eb05c36c662d06489c5746038  gcc/testsuite/gcc.target/powerpc/undef-bool-2.c
  b3e201f4f90c212bf9516e4643c7982c  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-1.c
  e4003dd438f5fd9c07f4b70a77174f74  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-1.h
  754d73f8ad30fcd82001c939a95b0690  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-2.c
  f524af96c3e4ca661c5ae6f83ba1a0f2  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-2.h
! cd9dc335a7a6fb4d72916ee4ffebf48f  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-3.c
  16a4f4819c46251cf7d40d2cbdd2f73f  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-3.h
  ce613ac6616063280f72d2b83eac70c4  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-1.c
  afa67f434007352fa186b3cd5ceaa933  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-2.c
--- 81466,81486 ----
  f138cfa6e387e1bc85747da2fc38e305  gcc/testsuite/gcc.target/powerpc/swaps-stack-protector.c
  2a52ad9e020f4876e1759e2137dd146c  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin.c
  2852dd6476acf51799a5be9f79d9a721  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c
! 7f4ffebc19a55aadd19b76eeb7186379  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_1.c
! 19c35c5d61f7d2f84b0bf03c6fc160db  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_2.c
  2b302f540128e4bac16f357999890018  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c
  8160640f23530f3c0b53296707f0cf0e  gcc/testsuite/gcc.target/powerpc/test_mffsl.c
  e28cc14ddafc82b0f212f1b4ebbcf50a  gcc/testsuite/gcc.target/powerpc/tfmode_off.c
  c2edbb1afba546ea3ac8a5efcaca9c38  gcc/testsuite/gcc.target/powerpc/ti_math1.c
  c3d0d51284479d220a6166a0f362536c  gcc/testsuite/gcc.target/powerpc/ti_math2.c
  b66bd2797d99df9316755addd3664809  gcc/testsuite/gcc.target/powerpc/timode_off.c
+ 2a172d78b196f247523e66a479659c0a  gcc/testsuite/gcc.target/powerpc/try_const_anchors_ice.c
  242e558eb05c36c662d06489c5746038  gcc/testsuite/gcc.target/powerpc/undef-bool-2.c
  b3e201f4f90c212bf9516e4643c7982c  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-1.c
  e4003dd438f5fd9c07f4b70a77174f74  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-1.h
  754d73f8ad30fcd82001c939a95b0690  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-2.c
  f524af96c3e4ca661c5ae6f83ba1a0f2  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-2.h
! eac653297774c936815da618a2899016  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-3.c
  16a4f4819c46251cf7d40d2cbdd2f73f  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-3.h
  ce613ac6616063280f72d2b83eac70c4  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-1.c
  afa67f434007352fa186b3cd5ceaa933  gcc/testsuite/gcc.target/powerpc/unpack-vectorize-run-2.c
*************** afa67f434007352fa186b3cd5ceaa933  gcc/te
*** 75891,75909 ****
  49a9b7083933f071e406a6002545a2b1  gcc/testsuite/gcc.target/powerpc/unpack-vectorize.h
  8299025d4b58de8ad2587e97256df932  gcc/testsuite/gcc.target/powerpc/unwind-backchain.c
  f7b335e2ebdedcf6b3ad355f4564a8db  gcc/testsuite/gcc.target/powerpc/upper-regs-df.c
! 7c0fa4851021413c8d75f57a04adabe1  gcc/testsuite/gcc.target/powerpc/upper-regs-sf.c
! 7fcc63e7c64945b04fc127d640b7b1a2  gcc/testsuite/gcc.target/powerpc/vadsdu-0.c
! 24691da27a181bc4c4bcca42bc7df1a5  gcc/testsuite/gcc.target/powerpc/vadsdu-1.c
! 0c2d917c7a72b2d6f756867be5ca7e35  gcc/testsuite/gcc.target/powerpc/vadsdu-2.c
! 2b942527e2255c9b687659ebccdd5e67  gcc/testsuite/gcc.target/powerpc/vadsdu-3.c
! 33dd04686b7a6076332b264197f0888c  gcc/testsuite/gcc.target/powerpc/vadsdu-4.c
! d6aa948f69afd3f90781356ef35ebd49  gcc/testsuite/gcc.target/powerpc/vadsdu-5.c
! 0bd4cba3d6e235b03189e89c3ef576a6  gcc/testsuite/gcc.target/powerpc/vadsdub-1.c
! 5b5eeec17cf4cfa073d668089ab0ea24  gcc/testsuite/gcc.target/powerpc/vadsdub-2.c
! 0e2e896bdb06e6206c619ae9e514c9c4  gcc/testsuite/gcc.target/powerpc/vadsduh-1.c
! e730b5f685b68ea8e7c8c11595187596  gcc/testsuite/gcc.target/powerpc/vadsduh-2.c
! c8df9b420107b3f94c54330fc8e6fe42  gcc/testsuite/gcc.target/powerpc/vadsduw-1.c
! 2f14e4bacf90ea7c4f313336504370aa  gcc/testsuite/gcc.target/powerpc/vadsduw-2.c
  2969bf0540680b6822487ad8c77db63b  gcc/testsuite/gcc.target/powerpc/vec-adde-int128.c
  5e08e5eb8b4158f2e3eb44cec7f5fce8  gcc/testsuite/gcc.target/powerpc/vec-adde.c
  8edcbb6b83c68636e07236ae38275785  gcc/testsuite/gcc.target/powerpc/vec-addec-int128.c
--- 81488,81506 ----
  49a9b7083933f071e406a6002545a2b1  gcc/testsuite/gcc.target/powerpc/unpack-vectorize.h
  8299025d4b58de8ad2587e97256df932  gcc/testsuite/gcc.target/powerpc/unwind-backchain.c
  f7b335e2ebdedcf6b3ad355f4564a8db  gcc/testsuite/gcc.target/powerpc/upper-regs-df.c
! b7011a93581fc4fce59012866a078220  gcc/testsuite/gcc.target/powerpc/upper-regs-sf.c
! a106720aef11f39970e30fe5612af5fc  gcc/testsuite/gcc.target/powerpc/vadsdu-0.c
! 6c5f22cfca47ee30d77675efa20a43fa  gcc/testsuite/gcc.target/powerpc/vadsdu-1.c
! 0e2ea6df2f52ca89550dd11d73514fe2  gcc/testsuite/gcc.target/powerpc/vadsdu-2.c
! 908754a2bcf7917ac7d6159bed3aace0  gcc/testsuite/gcc.target/powerpc/vadsdu-3.c
! ca87ce9a80b36be8799d4bf51b489926  gcc/testsuite/gcc.target/powerpc/vadsdu-4.c
! 77ab252eece39e1c35a75764220265e7  gcc/testsuite/gcc.target/powerpc/vadsdu-5.c
! b66b9128f7739afc0ea98ec07509f346  gcc/testsuite/gcc.target/powerpc/vadsdub-1.c
! 39ffb81d41cf76d4265d7d2c6ed73e53  gcc/testsuite/gcc.target/powerpc/vadsdub-2.c
! 9a43e5e713eac4e419bd93473b189cde  gcc/testsuite/gcc.target/powerpc/vadsduh-1.c
! ca7e8e576131a2db9f81b6b02267230d  gcc/testsuite/gcc.target/powerpc/vadsduh-2.c
! cb0a51976dde5ffb88a8f63124f1ffb5  gcc/testsuite/gcc.target/powerpc/vadsduw-1.c
! d1cc156f5b2682317e6d797b04e97958  gcc/testsuite/gcc.target/powerpc/vadsduw-2.c
  2969bf0540680b6822487ad8c77db63b  gcc/testsuite/gcc.target/powerpc/vec-adde-int128.c
  5e08e5eb8b4158f2e3eb44cec7f5fce8  gcc/testsuite/gcc.target/powerpc/vec-adde.c
  8edcbb6b83c68636e07236ae38275785  gcc/testsuite/gcc.target/powerpc/vec-addec-int128.c
*************** e8124c8804176fafe418e16282789f0d  gcc/te
*** 75920,75943 ****
  4c7ea20237ce5f1df2fe578ba474a976  gcc/testsuite/gcc.target/powerpc/vec-clrr-1.c
  73c7e7113c20bb5c81cc0ed309a96a3c  gcc/testsuite/gcc.target/powerpc/vec-clrr-2.c
  3c4fb592a3f2fad538441aae547c776e  gcc/testsuite/gcc.target/powerpc/vec-clrr-3.c
! adcc53f70ca7a7b520048b1d3d9ac8d7  gcc/testsuite/gcc.target/powerpc/vec-cmp-sel.c
! 7363586e0c8d520e106bdadc51dffbde  gcc/testsuite/gcc.target/powerpc/vec-cmp.c
! 73dc938d4281285e048c364198f723d6  gcc/testsuite/gcc.target/powerpc/vec-cmpne-long.c
! 5f73024bbfd5baeab66122ec43f7bdd1  gcc/testsuite/gcc.target/powerpc/vec-cmpne.c
  1c372d09f791df242c811475d366dcc3  gcc/testsuite/gcc.target/powerpc/vec-cntlzm-0.c
  fca8a6f77d207e7f7f219ea93f288693  gcc/testsuite/gcc.target/powerpc/vec-cntlzm-1.c
  ff9cd4dae68216fd4b9b370b76a709e4  gcc/testsuite/gcc.target/powerpc/vec-cnttzm-0.c
  08abc984011e8c1da755e7e2c0b91c96  gcc/testsuite/gcc.target/powerpc/vec-cnttzm-1.c
  f60cfb65abc87ba5727c12a22c87de01  gcc/testsuite/gcc.target/powerpc/vec-constvolatile.c
! 6e20fe0f6c74ba93cc184258ec122e34  gcc/testsuite/gcc.target/powerpc/vec-extract-1.c
  3ba5a8b2f265a56bfead096ead537f00  gcc/testsuite/gcc.target/powerpc/vec-extract-2.c
! 221296c5829885e1fccc594aa782fffd  gcc/testsuite/gcc.target/powerpc/vec-extract-3.c
! 367ec1869984f8063f8b89818c0e76ff  gcc/testsuite/gcc.target/powerpc/vec-extract-4.c
! f049e46df3b4150fdb7fad6f1f5322ee  gcc/testsuite/gcc.target/powerpc/vec-extract-5.c
! f0efb3b40115c3bf17959c8446e85f7f  gcc/testsuite/gcc.target/powerpc/vec-extract-6.c
! 5462afc45aa523c00c7f88dcb967d75d  gcc/testsuite/gcc.target/powerpc/vec-extract-7.c
! 46eadc146ae88b656e5af0bc8dce4264  gcc/testsuite/gcc.target/powerpc/vec-extract-8.c
! abf1cddf5d3822f753d9a6fcc0b8dea3  gcc/testsuite/gcc.target/powerpc/vec-extract-9.c
  2f16e72d61b7a78b57f3a8442e5652a5  gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c
  9ebb418c6d865149676dd097797e4b99  gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c
  d0deb437dc01b1a231de274d98973b6f  gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c
--- 81517,81542 ----
  4c7ea20237ce5f1df2fe578ba474a976  gcc/testsuite/gcc.target/powerpc/vec-clrr-1.c
  73c7e7113c20bb5c81cc0ed309a96a3c  gcc/testsuite/gcc.target/powerpc/vec-clrr-2.c
  3c4fb592a3f2fad538441aae547c776e  gcc/testsuite/gcc.target/powerpc/vec-clrr-3.c
! d34d7f5023facc4fff118b6fc7b90733  gcc/testsuite/gcc.target/powerpc/vec-cmp-sel.c
! 4c4fe25c6ca6a3eeb18e508e00443a32  gcc/testsuite/gcc.target/powerpc/vec-cmp.c
! 62e7de5f0be7b8ec7419f43dbb639a0d  gcc/testsuite/gcc.target/powerpc/vec-cmpne-long.c
! c38a602ff3e57fa169c76a52e8185d30  gcc/testsuite/gcc.target/powerpc/vec-cmpne-runnable.c
! 19b73d09d0d451e9dfb1653dc0150ad7  gcc/testsuite/gcc.target/powerpc/vec-cmpne.c
! 5b8a66a2134e0d51a9c2fd795fa92388  gcc/testsuite/gcc.target/powerpc/vec-cmpne.h
  1c372d09f791df242c811475d366dcc3  gcc/testsuite/gcc.target/powerpc/vec-cntlzm-0.c
  fca8a6f77d207e7f7f219ea93f288693  gcc/testsuite/gcc.target/powerpc/vec-cntlzm-1.c
  ff9cd4dae68216fd4b9b370b76a709e4  gcc/testsuite/gcc.target/powerpc/vec-cnttzm-0.c
  08abc984011e8c1da755e7e2c0b91c96  gcc/testsuite/gcc.target/powerpc/vec-cnttzm-1.c
  f60cfb65abc87ba5727c12a22c87de01  gcc/testsuite/gcc.target/powerpc/vec-constvolatile.c
! 0f24b98f1ebacdecb711360acba37328  gcc/testsuite/gcc.target/powerpc/vec-extract-1.c
  3ba5a8b2f265a56bfead096ead537f00  gcc/testsuite/gcc.target/powerpc/vec-extract-2.c
! ec640db852073aab72d539c378fdd06e  gcc/testsuite/gcc.target/powerpc/vec-extract-3.c
! 8dec8e3fce5ab6bb1bea75fd0af373b8  gcc/testsuite/gcc.target/powerpc/vec-extract-4.c
! 36fca290d3cc2de8fc158e18d54ea5ab  gcc/testsuite/gcc.target/powerpc/vec-extract-5.c
! b1974a37bb1eaf157265615ed80b22ad  gcc/testsuite/gcc.target/powerpc/vec-extract-6.c
! 271bd54568d33c32fb14cacb04e14ad3  gcc/testsuite/gcc.target/powerpc/vec-extract-7.c
! bae8e897e48f634bad6fa326bf2427a0  gcc/testsuite/gcc.target/powerpc/vec-extract-8.c
! 3830fc9ecb1cd5283be9991759ba02f7  gcc/testsuite/gcc.target/powerpc/vec-extract-9.c
  2f16e72d61b7a78b57f3a8442e5652a5  gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c
  9ebb418c6d865149676dd097797e4b99  gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c
  d0deb437dc01b1a231de274d98973b6f  gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c
*************** cf6daa0d113189191cc577954428500d  gcc/te
*** 75995,76013 ****
  019b2f91f62e2141785040a81fc8f7b6  gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c
  6e764d729687fcea81352b14641f365a  gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c
  1c064f63a5e242fb0e35f918fa7a9385  gcc/testsuite/gcc.target/powerpc/vec-init-1.c
! 8865f952c76be05490cdb5a3dff0a4d1  gcc/testsuite/gcc.target/powerpc/vec-init-10.c
  726fca01c06667a59e517b04466b670f  gcc/testsuite/gcc.target/powerpc/vec-init-2.c
! 448d3f1cd6f0d523abde8a79d5add1ea  gcc/testsuite/gcc.target/powerpc/vec-init-3.c
  5069ccdccd854292f597665630051276  gcc/testsuite/gcc.target/powerpc/vec-init-4.c
  ed3032821da8f22487ae8925af91831d  gcc/testsuite/gcc.target/powerpc/vec-init-5.c
! 094d58b2f742261e0c4277857c1300cc  gcc/testsuite/gcc.target/powerpc/vec-init-6.c
! bbbdccba096f666b19ffccd518339311  gcc/testsuite/gcc.target/powerpc/vec-init-7.c
  4b6bfddfce3c4b5408eb80a45dd2849e  gcc/testsuite/gcc.target/powerpc/vec-init-8.c
  1c25ca7359ac947620882234381d0e4f  gcc/testsuite/gcc.target/powerpc/vec-init-9.c
  bb9f6d3ab6165cbd94638731b6fc4d79  gcc/testsuite/gcc.target/powerpc/vec-insert-word-runnable.c
  e95008bad5edfab2ab0eb99d3fba6505  gcc/testsuite/gcc.target/powerpc/vec-ldl-1.c
! 76416d75baf059f3c4da9ab796655820  gcc/testsuite/gcc.target/powerpc/vec-minmax-1.c
! c5e8f49d6ebd6bb2d22dd881ca921fad  gcc/testsuite/gcc.target/powerpc/vec-minmax-2.c
  173de9f14de1f3984b7ea34aa63e1e32  gcc/testsuite/gcc.target/powerpc/vec-msumc.c
  d23be9cbb5a316007e6c09a2cb15f73f  gcc/testsuite/gcc.target/powerpc/vec-mul.c
  8a3d5e23a1722a45edbaa43f5b3a54b5  gcc/testsuite/gcc.target/powerpc/vec-mult-char-1.c
--- 81594,81612 ----
  019b2f91f62e2141785040a81fc8f7b6  gcc/testsuite/gcc.target/powerpc/vec-gnb-1.c
  6e764d729687fcea81352b14641f365a  gcc/testsuite/gcc.target/powerpc/vec-gnb-2.c
  1c064f63a5e242fb0e35f918fa7a9385  gcc/testsuite/gcc.target/powerpc/vec-init-1.c
! 3ca206a0a1b361d3428767696ff894cb  gcc/testsuite/gcc.target/powerpc/vec-init-10.c
  726fca01c06667a59e517b04466b670f  gcc/testsuite/gcc.target/powerpc/vec-init-2.c
! b46d5dbf1002ce05939d9ab00dbad4d8  gcc/testsuite/gcc.target/powerpc/vec-init-3.c
  5069ccdccd854292f597665630051276  gcc/testsuite/gcc.target/powerpc/vec-init-4.c
  ed3032821da8f22487ae8925af91831d  gcc/testsuite/gcc.target/powerpc/vec-init-5.c
! 1f4532f924a7472a19e88a2126141647  gcc/testsuite/gcc.target/powerpc/vec-init-6.c
! ffb557a0b103332aafdd2011b48cf9be  gcc/testsuite/gcc.target/powerpc/vec-init-7.c
  4b6bfddfce3c4b5408eb80a45dd2849e  gcc/testsuite/gcc.target/powerpc/vec-init-8.c
  1c25ca7359ac947620882234381d0e4f  gcc/testsuite/gcc.target/powerpc/vec-init-9.c
  bb9f6d3ab6165cbd94638731b6fc4d79  gcc/testsuite/gcc.target/powerpc/vec-insert-word-runnable.c
  e95008bad5edfab2ab0eb99d3fba6505  gcc/testsuite/gcc.target/powerpc/vec-ldl-1.c
! 1d59c3796624fc6332ca8ae27dda34a2  gcc/testsuite/gcc.target/powerpc/vec-minmax-1.c
! 56b6a60a22b8fc15c0655fbdd6af58c4  gcc/testsuite/gcc.target/powerpc/vec-minmax-2.c
  173de9f14de1f3984b7ea34aa63e1e32  gcc/testsuite/gcc.target/powerpc/vec-msumc.c
  d23be9cbb5a316007e6c09a2cb15f73f  gcc/testsuite/gcc.target/powerpc/vec-mul.c
  8a3d5e23a1722a45edbaa43f5b3a54b5  gcc/testsuite/gcc.target/powerpc/vec-mult-char-1.c
*************** e42d7308eff347a7f9302ce99c54ea47  gcc/te
*** 76020,76041 ****
  098e99c9220bf1bbda47aa99d3ec7356  gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c
  b5892a28bbaf2d60143417a2daef76de  gcc/testsuite/gcc.target/powerpc/vec-pext-0.c
  d24a8e6f3ef84d24e9f70f0c4936462d  gcc/testsuite/gcc.target/powerpc/vec-pext-1.c
! 22ce4f0f88ee61cb9b5651bd25977544  gcc/testsuite/gcc.target/powerpc/vec-replace-word-runnable.c
  de78dd24e2bc664997a08817596f7ac2  gcc/testsuite/gcc.target/powerpc/vec-rlmi-rlnm.c
  f9f609a740dac9270f63ed47cf131e3e  gcc/testsuite/gcc.target/powerpc/vec-rotate-1.c
  137d89e04c5e0edc9f6d5402c1414d37  gcc/testsuite/gcc.target/powerpc/vec-rotate-2.c
  96441926bf999692270027b1092cac57  gcc/testsuite/gcc.target/powerpc/vec-rotate-3.c
  0368d3c407ffd6a05b2ea100ff07f88c  gcc/testsuite/gcc.target/powerpc/vec-rotate-4.c
! b8868b9729698b7996b4d9124535989c  gcc/testsuite/gcc.target/powerpc/vec-set-char.c
! 67f6a5a1483de031a4f37ae393461950  gcc/testsuite/gcc.target/powerpc/vec-set-int.c
! bc4bf9cced071d4b0138eb94da9accee  gcc/testsuite/gcc.target/powerpc/vec-set-short.c
  a187918b30c9c8030bc9bbaf9599bb34  gcc/testsuite/gcc.target/powerpc/vec-setup-double.c
  096cb7255750f7796c5f3ef33baf3cf7  gcc/testsuite/gcc.target/powerpc/vec-setup-long.c
  30f50ac003dbd1454426619dc4d0b988  gcc/testsuite/gcc.target/powerpc/vec-setup.h
  691a3be6e68281ca694f9a68b84bc0ed  gcc/testsuite/gcc.target/powerpc/vec-shift-double-runnable.c
  b558fe15786948ecde81acc46fdba7e6  gcc/testsuite/gcc.target/powerpc/vec-shift.c
  8ee50015e788404267646adf1ac95972  gcc/testsuite/gcc.target/powerpc/vec-shr.c
! 127d2d7f255399904a77777bca197fec  gcc/testsuite/gcc.target/powerpc/vec-sld-modulo.c
  458c7d2af4bd8293e8a58a447dcbde05  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-df.c
  b1b790c7e46680d89f8eed177c4f2eff  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-sf.c
  8cb6662af85c7556e8272a952ff7a549  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-v16qi.c
--- 81619,81641 ----
  098e99c9220bf1bbda47aa99d3ec7356  gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c
  b5892a28bbaf2d60143417a2daef76de  gcc/testsuite/gcc.target/powerpc/vec-pext-0.c
  d24a8e6f3ef84d24e9f70f0c4936462d  gcc/testsuite/gcc.target/powerpc/vec-pext-1.c
! b2229ebf3206f1ef019ce1cd11b5aa2e  gcc/testsuite/gcc.target/powerpc/vec-replace-word-runnable_1.c
! 0c073598fb7b9377aaa4fe9824999b2f  gcc/testsuite/gcc.target/powerpc/vec-replace-word-runnable_2.c
  de78dd24e2bc664997a08817596f7ac2  gcc/testsuite/gcc.target/powerpc/vec-rlmi-rlnm.c
  f9f609a740dac9270f63ed47cf131e3e  gcc/testsuite/gcc.target/powerpc/vec-rotate-1.c
  137d89e04c5e0edc9f6d5402c1414d37  gcc/testsuite/gcc.target/powerpc/vec-rotate-2.c
  96441926bf999692270027b1092cac57  gcc/testsuite/gcc.target/powerpc/vec-rotate-3.c
  0368d3c407ffd6a05b2ea100ff07f88c  gcc/testsuite/gcc.target/powerpc/vec-rotate-4.c
! 8f0cc2b84116b8f1fabe1c5074042508  gcc/testsuite/gcc.target/powerpc/vec-set-char.c
! 39273172814635e6e6f1d45129520e55  gcc/testsuite/gcc.target/powerpc/vec-set-int.c
! fde415f0dd5ab44786b365fe5042bba0  gcc/testsuite/gcc.target/powerpc/vec-set-short.c
  a187918b30c9c8030bc9bbaf9599bb34  gcc/testsuite/gcc.target/powerpc/vec-setup-double.c
  096cb7255750f7796c5f3ef33baf3cf7  gcc/testsuite/gcc.target/powerpc/vec-setup-long.c
  30f50ac003dbd1454426619dc4d0b988  gcc/testsuite/gcc.target/powerpc/vec-setup.h
  691a3be6e68281ca694f9a68b84bc0ed  gcc/testsuite/gcc.target/powerpc/vec-shift-double-runnable.c
  b558fe15786948ecde81acc46fdba7e6  gcc/testsuite/gcc.target/powerpc/vec-shift.c
  8ee50015e788404267646adf1ac95972  gcc/testsuite/gcc.target/powerpc/vec-shr.c
! ab8b9b4e935734d95c41f6c80e208475  gcc/testsuite/gcc.target/powerpc/vec-sld-modulo.c
  458c7d2af4bd8293e8a58a447dcbde05  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-df.c
  b1b790c7e46680d89f8eed177c4f2eff  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-sf.c
  8cb6662af85c7556e8272a952ff7a549  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-v16qi.c
*************** a847d035e19f6b86bf079969c4e43785  gcc/te
*** 76045,76052 ****
  91f5711b1b62b0eb9ccf204f9101d939  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-v4si.c
  32f8cfeee01235747608f4f764400d56  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-v8hi.c
  ce9e228e25d01ece05d8ae4ba822ce91  gcc/testsuite/gcc.target/powerpc/vec-splati-runnable.c
! 6dac3c4c0900e12a20b36757d815f46d  gcc/testsuite/gcc.target/powerpc/vec-srad-modulo.c
! 2a0707e5093ef9facb6ce5e359ee4720  gcc/testsuite/gcc.target/powerpc/vec-srd-modulo.c
  fc49ae9181fd7d2ce969687524825c19  gcc/testsuite/gcc.target/powerpc/vec-stril-0.c
  d9583a8abd7559334a0da9843efe8feb  gcc/testsuite/gcc.target/powerpc/vec-stril-1.c
  486975a1a504b07dd3417e17cabfa0ff  gcc/testsuite/gcc.target/powerpc/vec-stril-10.c
--- 81645,81652 ----
  91f5711b1b62b0eb9ccf204f9101d939  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-v4si.c
  32f8cfeee01235747608f4f764400d56  gcc/testsuite/gcc.target/powerpc/vec-splat-constant-v8hi.c
  ce9e228e25d01ece05d8ae4ba822ce91  gcc/testsuite/gcc.target/powerpc/vec-splati-runnable.c
! 4bc6ce4a3fbe6116a7776e681bda9295  gcc/testsuite/gcc.target/powerpc/vec-srad-modulo.c
! 7d7f26dc5de1eced53b09518f6be30a0  gcc/testsuite/gcc.target/powerpc/vec-srd-modulo.c
  fc49ae9181fd7d2ce969687524825c19  gcc/testsuite/gcc.target/powerpc/vec-stril-0.c
  d9583a8abd7559334a0da9843efe8feb  gcc/testsuite/gcc.target/powerpc/vec-stril-1.c
  486975a1a504b07dd3417e17cabfa0ff  gcc/testsuite/gcc.target/powerpc/vec-stril-10.c
*************** ea57c6cb3b3a40e54841a77cfe7d28c4  gcc/te
*** 76132,76261 ****
  545806e3e432c4a4932c83192c3050a6  gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-9.c
  ad5fc586c0421d4792f2c22570c2eb18  gcc/testsuite/gcc.target/powerpc/vec-xxpermdi.c
  2a53c3abc347b940a6be95414b5ec5a9  gcc/testsuite/gcc.target/powerpc/vec_reve_1.c
! 60ee05f0bf29bba199a78c878e0bd92d  gcc/testsuite/gcc.target/powerpc/vec_reve_2.c
  88f80d7687637bc7046a2526353a55aa  gcc/testsuite/gcc.target/powerpc/vect-gather-1.c
! a459e155035fcdf829cd3a8c89cd9b77  gcc/testsuite/gcc.target/powerpc/vector_float.c
! cfe95399d48da5db32fbce7f0c697a3c  gcc/testsuite/gcc.target/powerpc/versioned-copy-loop.c
  d0f4244d0c95771117041974544ba517  gcc/testsuite/gcc.target/powerpc/volatile-mem.c
! af195737a9564a5ee831769e506082de  gcc/testsuite/gcc.target/powerpc/vslv-0.c
! d66cc31f6c69cfa141b35074e6ec706b  gcc/testsuite/gcc.target/powerpc/vslv-1.c
! 74bfd9ce1c69c20b5cc77e8bcd1c38a1  gcc/testsuite/gcc.target/powerpc/vsrv-0.c
! 57be6de542f9b108fe0546fc031b4731  gcc/testsuite/gcc.target/powerpc/vsrv-1.c
! e4e3fc4ecdb73e4c04d99e6785009a5e  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-0.c
! f2d01578c267545b26e43e182413ef9f  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-1.c
! 9e05a1d6aac5ca0149f3937c4c276520  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-10.c
! 7541856cd226c59eb566b3b4626873b8  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-11.c
! 1948cb343c14673f3b6b278633665cd5  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-12.c
! a67faf4e133c8b46791217d96b3e8165  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-13.c
! 8a458bcb56ab67ab708a47d034c162a1  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-14.c
! a93cdc49d13a5c30823694565b02a39d  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-2.c
! 2a34a7bc03c4dbaef0b48fac9f18b44a  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-3.c
! b1d6a1caeca9bcc4a81e94b280a6cde4  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-4.c
! 9f9248ccedf942da7a22e28469e6d8de  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-5.c
! d165f07d4c8cd999a41c3fb512e32c66  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-6.c
! 190627e82d30f9bcc9883c8bc9b2f369  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-7.c
! f8cedc763ede8c814fc95c63d5ff9228  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-8.c
! 76673a3832778b1e27463d1377fa8143  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-9.c
! d4ac3c389df5e307dc92138f7740f465  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-1.c
! 20ecdde586bb99eaacd2bba495ac2dac  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-2.c
! 73d69f3e80709b8238f53dfe0351a549  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-3.c
! b24604137e8856e26b206a773d7b69b5  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-4.c
! 43947d5da45c128928c237ccd8f1901a  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-5.c
! cc531d59c2d5ece2b3bfec962a419087  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-6.c
! 663ac4fb9e55d112d6d2a951d7449c84  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-7.c
! 55ffbc05dc0d6afeb4d0b2cd7f532ad8  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-0.c
! 08e69f9b78aece07c8e72d911097294e  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-1.c
! 7b71a58bb53586822027aef188989a92  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-10.c
! 102629dd92315df12344af795583300a  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-11.c
! 91133c1ca533ba75c1254f7cc26b7fa3  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-12.c
! c43423fecb16764efad406febd91c076  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-13.c
! 3cfe5a785746ec914b2c12e5265b3f50  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-14.c
! a373981be1e6eede5f7854f1bfc67747  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-2.c
! 0777b6a79299b95f2f478963e5cadce9  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-3.c
! 8465b305a92a6662ff4b906ed7e26d21  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-4.c
! db4320eaa045cdcc1c465b80ea3a66d3  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-5.c
! 491cad36ff8b78257e5e242a7f1c1fe6  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-6.c
! da6dd7bfbff773cae4ad1a49b3cd4f5b  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-7.c
! 11fae8109f4baf86bbe87de6c07759c4  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-8.c
! 2f9ce36396760814c6388b4b25507984  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-9.c
! ec74387f2f5f4f16c2829f18d8e63fd5  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-1.c
! d77386d77e9810af9a447e4260569237  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-2.c
! ba4a8aabd92b7a2570f92e9d2778fc26  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-3.c
! 40531b8124885a862863c9ed5100a0a3  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-4.c
! 6c0b7e091933dfb88ffe4d637b3b4426  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-5.c
! 899fd46e4ec4bf99b3100b4632f83fd2  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-6.c
! e393459cd8b50a4910615320416dcec9  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-7.c
! 0f8236ffded3681c9b2b74f081e679f9  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-0.c
! 4871dff7410e32654c27bb3451928100  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-1.c
! 838fa113d098c69195b431b5eab0e620  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-2.c
! 2457242ade3399434ff49d098a1a445b  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-3.c
! 85e08436cdd3106edec0055d2b6ac9d9  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-4.c
! 33491ad08695e628a59147d5dfeff219  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-5.c
! caf99dd746173cfeb2a28ab6a0c94270  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-6.c
! ce9dc68a17cfdbcbd362d3b52f3169c0  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-8.c
! ec7300100116ae2621f347d0c05752c5  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-9.c
! 501d9ca58b672176519747d202610873  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-1.c
! be7b9ce170ac6f6012073f6c2fee2bb9  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-2.c
! 52485bfe60766951f0452b46cde75ba1  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-3.c
! 7ed1182fd451c9ecc54430b69812d861  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-4.c
! e34c1830fa0a1ca44da6a0b78600066a  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-5.c
! cce2f64df349ef8bb54aa205d313a1ba  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-6.c
! f564c75bcfc1dc9cc95d3c0678b055b0  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-7.c
! afa607bbe48effd31adecab1c01b3806  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-0.c
! de5b3c378e25f2f50e8086b57d1c127e  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-1.c
! de2cf915fd18ad2019febd99749e2381  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c
! 20001116d48323344a97968f5e38a99a  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-3.c
! a70e1b582d81c6fa14c17190fa825a56  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-4.c
! 001307b3e9317a748c3896e600db58cd  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-0.c
! 05d61c76b35aefa6204c4970468b3606  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-1.c
! f7531fbd363ff8c81c71d1be8b50bd67  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c
! 9ba72560c11b3a3dc6a6670e5030e022  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-3.c
! 9176aa0c4df611b8fc45aee2eb8beeaa  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-4.c
! 75dfe5f86694d1036b557587b88673f1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-0.c
! b17fd98b31ca58c51530fbafbe560707  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-1.c
! 1138a8ec54eee8975e2026cde9a19c04  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-10.c
! 109ed573811b4dca4241e3a7f1d7c406  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-11.c
! 5eaebdc70cac2cd4c4e824994a76c04b  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-12.c
! a42ff6bc84e5b1fec49eaad61fc25b07  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-13.c
! ac275faec7356fae47e3466a4d5b2b6e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-2.c
! 8cae182ce068933d26bb0c484991c528  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-3.c
! c41e3f281b6a46d1a15541031617c550  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-4.c
! 110421d47dadf9f79f9dc729f9fe2fb0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-5.c
! 1e892911ae219804622959d60bb2a4e1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-6.c
! dbe9f75fbad8a2b2e46d3709a71ef7a4  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-7.c
! 3355079159d8293437969508c8a6135d  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-8.c
! 9a5ab3c781a6ae27a6669fc271e99ac2  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-9.c
! 3887c80c9b4e04ca71382bbde0d2d36a  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-0.c
! 33e3c0e36d85aa0a990233ff4defa799  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-1.c
! 989ef526d5d13b6611821905579de958  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-2.c
! 91e503f766c6c5bf7b525ff3cc782bdc  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-3.c
! 7cd4b47120a727b39023205a1c2c17c4  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-4.c
! 26869bd45ab4ba20e715aa931a4760f6  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-5.c
! 24aa725dbcdfc6cc61bc2c59082edff4  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-6.c
! b44474350d5075edcdcc3aaa04ace977  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-7.c
! 90d767b0e188cc1f88aa12e85bbb1dc6  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-0.c
! e0925f850adae30f1ee67890460b460f  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-1.c
! 90d4e2a571c3144bb37874d6d94ef7df  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-2.c
! fa85a7d8f3325f5e7ebfcf737aee9c6f  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-3.c
! bc5f06f34ef03c8f2cc9fafaa7406097  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-4.c
! 4d23907f95a523038c4dac7e6ff03574  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-5.c
! 89ffd258cc64d140302b3513c15173d0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-6.c
! 98601015ba4e89c6528bf58593aaa8af  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-7.c
! c45c9210b08143ef04c1c483c2a39ddf  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-0.c
! 3020f53b7ccbf682a2fe07d89bbf56d9  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-1.c
! ab0ac7bcf93fba758129b7007d4686fb  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-10.c
! 61db237171190360cd974931ae60b9c1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-11.c
! a5ef227f55b49de0d8f68579b86cd8f9  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-12.c
! 48b75687f616632f223a4303a9ee6497  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-13.c
! 16d2126b5dcb8ea732d896d9520714bb  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-2.c
! 48cc4626bb81f421adb5de3c19c74ee9  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-3.c
! abc554720b49fd4fc2e156fa97094443  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-4.c
! 511229c39ecaef48ab0f71a2784711e9  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-5.c
! b88613b767bb0807b1762e8eb526a343  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-6.c
! 47a01322cf4b1487712207de43d7799d  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-7.c
! b0a697b054abbb240f1d84da6b8b6e3d  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-8.c
! 4c31abd6b29ad29d6e3781f73129efd7  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-9.c
! 845ca02d5d6ccde8d6a67ac7cda157a8  gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp
  aaeb960a2e271bc474363e9917aecb51  gcc/testsuite/gcc.target/powerpc/vsx-13.c
  2d2324d8274dfc9b008525e52c7c7bd6  gcc/testsuite/gcc.target/powerpc/vsx-7.c
  52f42f9be22f511e882b624f99d63a7d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-1.c
--- 81732,81861 ----
  545806e3e432c4a4932c83192c3050a6  gcc/testsuite/gcc.target/powerpc/vec-ternarylogic-9.c
  ad5fc586c0421d4792f2c22570c2eb18  gcc/testsuite/gcc.target/powerpc/vec-xxpermdi.c
  2a53c3abc347b940a6be95414b5ec5a9  gcc/testsuite/gcc.target/powerpc/vec_reve_1.c
! 0139d64af18af0b6233bcdaf97269cf4  gcc/testsuite/gcc.target/powerpc/vec_reve_2.c
  88f80d7687637bc7046a2526353a55aa  gcc/testsuite/gcc.target/powerpc/vect-gather-1.c
! 01bc123e6443b78cecb8bb7a5fa30af4  gcc/testsuite/gcc.target/powerpc/vector_float.c
! 9626362813724c41ddb325903bcb4c99  gcc/testsuite/gcc.target/powerpc/versioned-copy-loop.c
  d0f4244d0c95771117041974544ba517  gcc/testsuite/gcc.target/powerpc/volatile-mem.c
! 14c8271b97a6b32e63c7436f81744c86  gcc/testsuite/gcc.target/powerpc/vslv-0.c
! 63776f50e0b8fdaf73cd26a70504590f  gcc/testsuite/gcc.target/powerpc/vslv-1.c
! 38ea984f9cdfb69d043cf4a96c3a5682  gcc/testsuite/gcc.target/powerpc/vsrv-0.c
! 1b422ead72870b49976b80c96b7cc1a9  gcc/testsuite/gcc.target/powerpc/vsrv-1.c
! a05a3136d26a6d2dbbc1ec3a5b525769  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-0.c
! 09140f00024b0fbaf7f417501372cd1b  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-1.c
! 5310b8d785a9888686e2ec04eab32640  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-10.c
! 531a0880fb5ffc0e6768dc08d14dc779  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-11.c
! 3cf62ced32a6442bc258a070a0f88201  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-12.c
! 40e52ad2e0ac97dfb3e7977f84b02748  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-13.c
! 8146102a19734a64d7ab51cf02e21e8b  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-14.c
! 781419b5a9a46c6ce8f02217c8f3f76a  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-2.c
! 64ff76d8d14c5137950ce013f365f774  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-3.c
! 14bd0862c72316e51cf9654f75163dc5  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-4.c
! cb1623ab6889bd2f6af905770347c187  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-5.c
! 059d88955db8083b410113b1a4a4954d  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-6.c
! 9b3a7f551e7eff4b4af898098c5716ef  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-7.c
! 919133dc97df19d96fc86f392f962f9e  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-8.c
! 42199776f4be89563dcfab9adab32938  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-ne-9.c
! 13006fd79bf6cdeadda7a8f7ba128703  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-1.c
! d2a1105a7bcca987f908752a63f2e2a7  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-2.c
! 41a45c6f99ef3f94b866b0f1bca66358  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-3.c
! b064e6099144f06b0bb3deb97d0acd21  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-4.c
! 7d60d1e83952b7b61f67ccfd5e6b1490  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-5.c
! eec775a2af849b41f6add1b6bf793dc8  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-6.c
! 63eb10770fdc8df022641cdd795e9041  gcc/testsuite/gcc.target/powerpc/vsu/vec-all-nez-7.c
! c0ed8f0eb9b7b74de0982e9936e9b30b  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-0.c
! cf6b85a56c380392a33a81d44d509756  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-1.c
! 62c9e68de434bf3b071d2b2838873575  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-10.c
! 97888db7adfacce247174978e24ffd92  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-11.c
! 183d6b446c41a38cf8eec28a1ad00e6d  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-12.c
! cd938c9fb832ee60884d2316431bb35b  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-13.c
! b74e39126af0ebf46588fa61dea5fdde  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-14.c
! 38374544ccaeb1604657fe735aa87291  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-2.c
! 13635753561ddc04df20418e30f7c4a9  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-3.c
! 7c700b17c64b13b7db877b3bea4a8a19  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-4.c
! 3efcdd873e9ed086dcdce96d3ec0d2a5  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-5.c
! 1468b1c0449fc1e00a9d449de4b30561  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-6.c
! fa3c25cbb3bcfb40ad4b84c37185045e  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-7.c
! 3e8fa9104ce741229bdfd6a8d44e28a7  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-8.c
! 509c098433a3547d3cc8df2fa5cbec3f  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eq-9.c
! 02f9a5bb27de9e7f2509e80cb0aceea3  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-1.c
! c0998ba281e6353513e5379f2e4bfa71  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-2.c
! aa3a538d577fe47cd8ab96ef9181fd67  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-3.c
! ad822aa324420a1c7300539f7b2e37e9  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-4.c
! 2b5a19755ee962aa4763a3a26e36f3bc  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-5.c
! adec814ca1999116f01c7eb0bb4684cf  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-6.c
! e49371acf586290dbcdf0cf23006292d  gcc/testsuite/gcc.target/powerpc/vsu/vec-any-eqz-7.c
! 55d35bf3969ba0f613652d516cf9ffb5  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-0.c
! 9bd00bdfd92957a4846a3bafe8222356  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-1.c
! 0b9e34d61095c5c03225708f0c8c465e  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-2.c
! e487b0436e9903902c2c833011b79da6  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-3.c
! 88e2492b0b95ba90e298e50b5f7aa34e  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-4.c
! ff634111e27355cc10ad79259a9e8907  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-5.c
! 3c7182cdf4584d8050b7dd80348cd29b  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-6.c
! 65f588e23fdffa02a6cae17fb92f93fd  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-8.c
! 0c78a814be23e1881e7271836b3504a5  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpne-9.c
! 6ff96b6407ef4cf5e460ba99b5cae733  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-1.c
! 8eeb66fb81838fa227765da895b1b339  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-2.c
! 80d2d80805d11ae3b1ae322d92297303  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-3.c
! 303005f4a644d5ae0b19bac535a9d8a3  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-4.c
! 45807a10bc4a82b2aefae5d4aecbb1d7  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-5.c
! 13285f4d673008432bad67443c4cbc48  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-6.c
! 644e2d443f88cfb4c66411d81b62fa81  gcc/testsuite/gcc.target/powerpc/vsu/vec-cmpnez-7.c
! e4ba42b724151acea95d5dcb2dcc8f1c  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-0.c
! adf2e802bbbb8fa2164c9b40d89094db  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-1.c
! d7fe36f55454f071321af1d90a3f883f  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c
! 3e9b78598bc504dc823305d573dff931  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-3.c
! 526349e981ec03e8b3ca3c820795b4b4  gcc/testsuite/gcc.target/powerpc/vsu/vec-cntlz-lsbb-4.c
! 0faf5a8410c46b24b5b5a2adebee7061  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-0.c
! b824b198526ef76b1029f4ab35cf88a2  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-1.c
! ec122e0afba267c856957c474d208c5f  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c
! 9dd4087c016cb8481e7e52beb2151ad3  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-3.c
! 504da5c1d73e9cf90e11052eaed3ba62  gcc/testsuite/gcc.target/powerpc/vsu/vec-cnttz-lsbb-4.c
! b19146dc0c223de9bf3ddfec0f379d03  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-0.c
! d55d15019ab0e8a11c66b84c695f2bdd  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-1.c
! a468e2fcc4d1af66a61f599c274dde4d  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-10.c
! 4624af86558cd19d53933f5018fbf622  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-11.c
! f9402e00609f290c53116c4f1c60dd63  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-12.c
! e4a27789deb9a49d3de37eaebc8c8973  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-13.c
! d8d5c9db21f8f7c043efb9cd936e3e13  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-2.c
! 589e80dbdfb338bf35221d241f72be4e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-3.c
! 05cd4053e9d602dc63f59834be70d6ef  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-4.c
! f878d8e30caa802e946683ee83115d68  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-5.c
! 72f330b0bafc2bae5a8cf80cb125840f  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-6.c
! e77ce42b4d0d884cb8c1c1aac7e81df7  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-7.c
! 92249435d06ec86eb87660a26ec3b7f6  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-8.c
! f4cc644affbcf33e2dce36b7e709ce18  gcc/testsuite/gcc.target/powerpc/vsu/vec-xl-len-9.c
! 30fc9f82126279ece73f9fefd3f1cc5e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-0.c
! 284ebff872b86117f374b7e75cc17f9c  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-1.c
! b44d94c69a42ab452d32243b46d5636b  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-2.c
! 0e4b35556e15218e1acf879404c882a1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-3.c
! 32ea340ae2208d0e95289eb5ab7098de  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-4.c
! 160ccd2dd598caaa1432feaa32882a6e  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-5.c
! f66c045dc24d3a32119dfc2b75a5b2be  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-6.c
! 6cec48708710fb62255a777d1279c828  gcc/testsuite/gcc.target/powerpc/vsu/vec-xlx-7.c
! a60538a4671f2bca9dfa851e7607083a  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-0.c
! 5f6525ce0582dd80865b2f05d1dacf86  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-1.c
! 59e4b7cdfe368555e91b758cecb0e340  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-2.c
! b6c8c3e426208b9dfb638c77f74b2fa1  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-3.c
! c9c5ec6f5a1d621008a7b6cc98239280  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-4.c
! 9e46298711cabdec8970811705d00c9c  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-5.c
! 4e5ec62a455cbc6dcf619bb996a829f0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-6.c
! c60e78b4e3ee322491728d528bc7d3fe  gcc/testsuite/gcc.target/powerpc/vsu/vec-xrx-7.c
! 6eb79e4d0d708d41bf85822f516fc4e0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-0.c
! 3904cbe8a6ba4f275197da8e73b9912a  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-1.c
! 2199ef84e3dce063354b1d0686db5aa9  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-10.c
! e81b41c469ddcc6ce8247ce127c2de98  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-11.c
! 6863f056083cb30724d24a88cd13f5c3  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-12.c
! f9ea56924b66969a7d834592ebf97510  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-13.c
! 5921ce54d93e55e41651d824792ba270  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-2.c
! c21c5f88314d3081c9e38e312542fb40  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-3.c
! d80c56b0089818f3406517d90674ca7a  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-4.c
! 949171e70c5214a12037704dac90bb06  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-5.c
! 6a7cf72fe5b74627aaeb62c3fca9ce90  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-6.c
! 330032945384180ca80bb64e347b60d0  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-7.c
! 0c833734e45aa080367736f2ee7440ef  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-8.c
! 842f34b9e6ca0905a751264f169e8c47  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-9.c
! c8a6242ecbced4365ad4bdde33a9f656  gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp
  aaeb960a2e271bc474363e9917aecb51  gcc/testsuite/gcc.target/powerpc/vsx-13.c
  2d2324d8274dfc9b008525e52c7c7bd6  gcc/testsuite/gcc.target/powerpc/vsx-7.c
  52f42f9be22f511e882b624f99d63a7d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-1.c
*************** b85a4370874d0558ca845f7c6e5f0a6d  gcc/te
*** 76314,76343 ****
  2e9c4b2355be46611bfe42e4a9f8d1f3  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c
  1e35ead3525b068deff65ea3783111ee  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c
  2d6ebc881e5a0f8f968a2999b0706911  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c
! 6703b8b0c2c6390e3febd64e1cbe1556  gcc/testsuite/gcc.target/powerpc/vsx-builtin-msum.c
  4d6dbd4335898e06bfb3368b9da0f54b  gcc/testsuite/gcc.target/powerpc/vsx-extract-1.c
  b190b124ff5594ff601a895fbc280fa9  gcc/testsuite/gcc.target/powerpc/vsx-extract-2.c
! 36aa5fcdb64f095e6127737b2d3cecfc  gcc/testsuite/gcc.target/powerpc/vsx-extract-3.c
! 555c7563f7d686ea30a322c30a57f881  gcc/testsuite/gcc.target/powerpc/vsx-extract-4.c
! 718612f7dd1ed6754e5da0fd76468e20  gcc/testsuite/gcc.target/powerpc/vsx-extract-5.c
  d7469557e85d85a69ef07fd54698e9ab  gcc/testsuite/gcc.target/powerpc/vsx-extract-6.c
  41e7ca8976b463f66edc46b546b64718  gcc/testsuite/gcc.target/powerpc/vsx-extract-7.c
  b540a9d400f1cfa3079702b726dafdd4  gcc/testsuite/gcc.target/powerpc/vsx-float0.c
! 74877cc935345acfd4090545a5799ecc  gcc/testsuite/gcc.target/powerpc/vsx-himode.c
! a0f1e084731b560ca0571b11d1e6dadb  gcc/testsuite/gcc.target/powerpc/vsx-himode2.c
! 1096193abe573da23217852fb04f04d8  gcc/testsuite/gcc.target/powerpc/vsx-himode3.c
  13fa16e1cab2f774aa32ca198815a51d  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-char.c
  2d0f31a1f78ac44542808e61ff9538b5  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-int.c
  69a42ea4d784cbbc9f09885bbe23ecbb  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-longlong.c
  2433fb788bd5615867192fdd254f8b82  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-short.c
  b1687eae08b09f4e44f0141b3d00f838  gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c
! e105a32e783f347017935f1aced67f43  gcc/testsuite/gcc.target/powerpc/vsx-qimode.c
! 963bd306546f09e9aaede8b986bf0198  gcc/testsuite/gcc.target/powerpc/vsx-qimode2.c
! 89fb1462a8fdaca7f99760b435549f83  gcc/testsuite/gcc.target/powerpc/vsx-qimode3.c
  6b4b08a1cd6bbec8a1a274fbfa94daa6  gcc/testsuite/gcc.target/powerpc/vsx-sfminmax.c
! 29940786f43c36f40d10f95dbd60b747  gcc/testsuite/gcc.target/powerpc/vsx-simode.c
! b00b00f526c9d44c75f1dbfe2e9eb30e  gcc/testsuite/gcc.target/powerpc/vsx-simode2.c
! e889263e2ee39a10680e0a6dc47a0f28  gcc/testsuite/gcc.target/powerpc/vsx-simode3.c
  c75487042d6fbca84e1dba3b5e8f92d0  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-char.c
  0e29ef45d3fe2b25f87c199b6cae9aea  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-int.c
  f9d9f0d7d97798cc627e28956304605e  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-longlong.c
--- 81914,81943 ----
  2e9c4b2355be46611bfe42e4a9f8d1f3  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c
  1e35ead3525b068deff65ea3783111ee  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c
  2d6ebc881e5a0f8f968a2999b0706911  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c
! b9a24fab58700393f8c54e6f54d64805  gcc/testsuite/gcc.target/powerpc/vsx-builtin-msum.c
  4d6dbd4335898e06bfb3368b9da0f54b  gcc/testsuite/gcc.target/powerpc/vsx-extract-1.c
  b190b124ff5594ff601a895fbc280fa9  gcc/testsuite/gcc.target/powerpc/vsx-extract-2.c
! 2d0944e9417291ffc4e99e9bf3dff64c  gcc/testsuite/gcc.target/powerpc/vsx-extract-3.c
! d11f3eb241cd352682e1cdb6e08db001  gcc/testsuite/gcc.target/powerpc/vsx-extract-4.c
! d730adea9a1befc2b563853af6890b7c  gcc/testsuite/gcc.target/powerpc/vsx-extract-5.c
  d7469557e85d85a69ef07fd54698e9ab  gcc/testsuite/gcc.target/powerpc/vsx-extract-6.c
  41e7ca8976b463f66edc46b546b64718  gcc/testsuite/gcc.target/powerpc/vsx-extract-7.c
  b540a9d400f1cfa3079702b726dafdd4  gcc/testsuite/gcc.target/powerpc/vsx-float0.c
! 1a896e87bc352c3ee42a7806b830bb88  gcc/testsuite/gcc.target/powerpc/vsx-himode.c
! fc2913a90b78e173f412b5e4adbc7520  gcc/testsuite/gcc.target/powerpc/vsx-himode2.c
! b7bbe276ff3964308c55ad8518405a19  gcc/testsuite/gcc.target/powerpc/vsx-himode3.c
  13fa16e1cab2f774aa32ca198815a51d  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-char.c
  2d0f31a1f78ac44542808e61ff9538b5  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-int.c
  69a42ea4d784cbbc9f09885bbe23ecbb  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-longlong.c
  2433fb788bd5615867192fdd254f8b82  gcc/testsuite/gcc.target/powerpc/vsx-load-element-extend-short.c
  b1687eae08b09f4e44f0141b3d00f838  gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c
! 10a1eb9d3a2603409607c85bd3bafc25  gcc/testsuite/gcc.target/powerpc/vsx-qimode.c
! 178891c2e7972da4c325c999102dc14a  gcc/testsuite/gcc.target/powerpc/vsx-qimode2.c
! 876ef34a9058f081ba2703df192f5c4c  gcc/testsuite/gcc.target/powerpc/vsx-qimode3.c
  6b4b08a1cd6bbec8a1a274fbfa94daa6  gcc/testsuite/gcc.target/powerpc/vsx-sfminmax.c
! 8870aad41b07b900fc6700223b48035f  gcc/testsuite/gcc.target/powerpc/vsx-simode.c
! aacc08cd912165ef4b2cc0915e378888  gcc/testsuite/gcc.target/powerpc/vsx-simode2.c
! 97baef922341806f0b84928ad204d953  gcc/testsuite/gcc.target/powerpc/vsx-simode3.c
  c75487042d6fbca84e1dba3b5e8f92d0  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-char.c
  0e29ef45d3fe2b25f87c199b6cae9aea  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-int.c
  f9d9f0d7d97798cc627e28956304605e  gcc/testsuite/gcc.target/powerpc/vsx-store-element-truncate-longlong.c
*************** d621f7ff07170c2eaeac5f10543455f6  gcc/te
*** 76347,76357 ****
  6d2ba2b96d639efe3d39ed37123938f9  gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c
  1344016e05ee9e70c20e55610ab6587f  gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c
  3e82ab5431559b909d22a22327671450  gcc/testsuite/gcc.target/powerpc/vsx-vector-5.c
! dfecd833b7f3665c63e2853fcc3b0201  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.h
! fed52b2cbe7b6b8a10eccd3219ad9598  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c
! d8cb2c01011fd067b893a6a06b16aa6e  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p8.c
! 43056c312ed673fb7ffa6728311a212d  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p9.c
! a47d2b2aa16e29fea0595606b20b538e  gcc/testsuite/gcc.target/powerpc/vsx-vector-7.c
  ebd3e2644f3e43135e2172b26fafd1bf  gcc/testsuite/gcc.target/powerpc/vsx-vector-abss.c
  35d7bcc6cf69574c463501a1e76e510d  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-1.c
  84cfc07d80810cb3573b9b1f672ac915  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
--- 81947,81971 ----
  6d2ba2b96d639efe3d39ed37123938f9  gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c
  1344016e05ee9e70c20e55610ab6587f  gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c
  3e82ab5431559b909d22a22327671450  gcc/testsuite/gcc.target/powerpc/vsx-vector-5.c
! 370f5d2c8ea50aeaf30b20580d17b366  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op-run.c
! 1b188b0aaec22aebfeb593e0d512d832  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op.c
! 05d5259d03161f9805affec309d40d43  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-1op.h
! 0b646f9ba667014abe08f021701fdf7d  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop-run.c
! 493442e167c1d88e5c00603cd0350def  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop.c
! b60f0b61b8811cdc466219d7eb583903  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2lop.h
! 0ed15e0d7c7494b95931b823c7d3b06d  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op-run.c
! 157a3086a7b74e45548c8b2d4c702fae  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op.c
! b7a1a3fc4b4d3106b18fbdc2296ed82e  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-2op.h
! a82b7fa4f47d8919156e69efbf03f86a  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op-run.c
! 9b121a1c633677023e4a6a6e30766e78  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op.c
! 10d691bbc659ca6e2e026990e86cb1c6  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-3op.h
! 782ea0eeefb030ae1f87ee153f8c6ae3  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all-run.c
! b6900f08093f6e8006fe1364b211ff4b  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all.c
! eac1daf20200582d78f7b10b7024f1e1  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-all.h
! 4c3320c6acf9519dcdcf650441ce4ccc  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp-run.c
! d4ffaed09552423ead8859494c462c3b  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp.c
! a8776213e94c56a3260e8eeeb1d3a2ff  gcc/testsuite/gcc.target/powerpc/vsx-vector-6-func-cmp.h
! 3ebe8f0d460649b370313955c9827479  gcc/testsuite/gcc.target/powerpc/vsx-vector-7.c
  ebd3e2644f3e43135e2172b26fafd1bf  gcc/testsuite/gcc.target/powerpc/vsx-vector-abss.c
  35d7bcc6cf69574c463501a1e76e510d  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-1.c
  84cfc07d80810cb3573b9b1f672ac915  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
*************** b76541e78d6c0a4a83f038a91722260c  gcc/te
*** 76407,76422 ****
  a5d8400fbc1e042d4b59d52b3b6e800b  gcc/testsuite/gcc.target/pru/mabi-ti-7.c
  b1afab226bd7930d036687abb97385f0  gcc/testsuite/gcc.target/pru/mov-m1.c
  42f66870bc5a7dedea2cd9fefcd1ece9  gcc/testsuite/gcc.target/pru/pr106562-1.c
  e8716e779432b45406cc534631aec9a8  gcc/testsuite/gcc.target/pru/pr106562-2.c
  f27e7d60b31e775397f87c3627ceda57  gcc/testsuite/gcc.target/pru/pr106562-3.c
  6f92d2681d767e323adb9027957cce53  gcc/testsuite/gcc.target/pru/pr106562-4.c
  7199f5b409c6a58c4ef1d4a5d431079b  gcc/testsuite/gcc.target/pru/pr106564-1.c
  851451c629fe33409b83f202bfc1068e  gcc/testsuite/gcc.target/pru/pr106564-2.c
  a919202ce244d49003df5ad24d6682bd  gcc/testsuite/gcc.target/pru/pr106564-3.c
  cf8d82ddb80b76405af0214285246746  gcc/testsuite/gcc.target/pru/pr106564-4.c
  d754f6db5a9f4cb648931c1a300fe5e6  gcc/testsuite/gcc.target/pru/pr64366.c
  aa63cbae8ab220e484f3dfce0053edb2  gcc/testsuite/gcc.target/pru/pragma-ctable_entry.c
! fbfa024651716a654e057345b0570d07  gcc/testsuite/gcc.target/pru/pru.exp
  7a1298d80f26753aedd3f2268299e382  gcc/testsuite/gcc.target/pru/pru_irq_map.c
  7b1dfd818b26fc3abda3150a2a5dccb4  gcc/testsuite/gcc.target/pru/qbbc-1.c
  d022a63c4f1bad92f86058d5cc8188d1  gcc/testsuite/gcc.target/pru/qbbc-2.c
--- 82021,82043 ----
  a5d8400fbc1e042d4b59d52b3b6e800b  gcc/testsuite/gcc.target/pru/mabi-ti-7.c
  b1afab226bd7930d036687abb97385f0  gcc/testsuite/gcc.target/pru/mov-m1.c
  42f66870bc5a7dedea2cd9fefcd1ece9  gcc/testsuite/gcc.target/pru/pr106562-1.c
+ f05ca3bbb68370bd1a7682eaa1ccc256  gcc/testsuite/gcc.target/pru/pr106562-10.c
+ aaca8b31815d0a71c4258ccbb1f704cf  gcc/testsuite/gcc.target/pru/pr106562-11.c
  e8716e779432b45406cc534631aec9a8  gcc/testsuite/gcc.target/pru/pr106562-2.c
  f27e7d60b31e775397f87c3627ceda57  gcc/testsuite/gcc.target/pru/pr106562-3.c
  6f92d2681d767e323adb9027957cce53  gcc/testsuite/gcc.target/pru/pr106562-4.c
+ f868f1a7b41a1a51df6fcf40b3e3315e  gcc/testsuite/gcc.target/pru/pr106562-5.c
+ 261ca0ba0b5c19b5c17468bc6775c762  gcc/testsuite/gcc.target/pru/pr106562-6.c
+ f5a1fa95c5d8ab0e3db8b0a1b9921933  gcc/testsuite/gcc.target/pru/pr106562-7.c
+ b8b52424b352c9c8f70592d6f03b5a86  gcc/testsuite/gcc.target/pru/pr106562-8.c
+ 1388b961bace4af550a0ee6bc5381cee  gcc/testsuite/gcc.target/pru/pr106562-9.c
  7199f5b409c6a58c4ef1d4a5d431079b  gcc/testsuite/gcc.target/pru/pr106564-1.c
  851451c629fe33409b83f202bfc1068e  gcc/testsuite/gcc.target/pru/pr106564-2.c
  a919202ce244d49003df5ad24d6682bd  gcc/testsuite/gcc.target/pru/pr106564-3.c
  cf8d82ddb80b76405af0214285246746  gcc/testsuite/gcc.target/pru/pr106564-4.c
  d754f6db5a9f4cb648931c1a300fe5e6  gcc/testsuite/gcc.target/pru/pr64366.c
  aa63cbae8ab220e484f3dfce0053edb2  gcc/testsuite/gcc.target/pru/pragma-ctable_entry.c
! 44ed46c7babcae2cd2177118945e2ea0  gcc/testsuite/gcc.target/pru/pru.exp
  7a1298d80f26753aedd3f2268299e382  gcc/testsuite/gcc.target/pru/pru_irq_map.c
  7b1dfd818b26fc3abda3150a2a5dccb4  gcc/testsuite/gcc.target/pru/qbbc-1.c
  d022a63c4f1bad92f86058d5cc8188d1  gcc/testsuite/gcc.target/pru/qbbc-2.c
*************** e4648ec15f2bbd0d4d9b5bb8d05ba657  gcc/te
*** 76441,76463 ****
  2225a6f7684a41fdc3c9fedebe226c82  gcc/testsuite/gcc.target/pru/zero_extend-hisi.c
  57debb1068324d1b650c42700abacf74  gcc/testsuite/gcc.target/pru/zero_extend-qihi.c
  09a429ba90db19830e7f9b51abc8f22f  gcc/testsuite/gcc.target/pru/zero_extend-qisi.c
! 5fa2c90fcc7d61bb2c7527e6d4d62986  gcc/testsuite/gcc.target/riscv/_Float16-soft-1.c
! 6fefea39a200b87c25e6a7e8be89f966  gcc/testsuite/gcc.target/riscv/_Float16-soft-2.c
! a67b312e0319d2c6117475bf6055b46c  gcc/testsuite/gcc.target/riscv/_Float16-soft-3.c
  f7e3e02cfa055769e5c83fac9a4ab314  gcc/testsuite/gcc.target/riscv/_Float16-soft-4.c
! 07ae967dd2053379ff0a88c29e437d8b  gcc/testsuite/gcc.target/riscv/_Float16-zfh-1.c
! e1e5f006bf0244326198eeaaa65a143e  gcc/testsuite/gcc.target/riscv/_Float16-zfh-2.c
! 53acf6f325e821e27f6e732be12f04ee  gcc/testsuite/gcc.target/riscv/_Float16-zfh-3.c
! e23d33e7e3cf5c1e0e92f5b1f3332ad6  gcc/testsuite/gcc.target/riscv/_Float16-zfhmin-1.c
! 598695fcc06e4ef6e2194437874ec2c1  gcc/testsuite/gcc.target/riscv/_Float16-zfhmin-2.c
! 39dee2ee1013e6bf0838f4e77f04f872  gcc/testsuite/gcc.target/riscv/_Float16-zfhmin-3.c
! ab1d534554fc495482d1949c9d897b88  gcc/testsuite/gcc.target/riscv/_Float16-zhinx-1.c
  7df18ee48aa1e757de0108f77dec4e5c  gcc/testsuite/gcc.target/riscv/_Float16-zhinx-2.c
  cd709a10461254ddf2db66c3d68f0ea1  gcc/testsuite/gcc.target/riscv/_Float16-zhinx-3.c
! dad38917ecea549937413c9cd3a59371  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-1.c
! 4ad91f5205e504cc55e820e0db68a469  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-2.c
! db63dce5cb81a9322d507198be4afe2b  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-3.c
  3ff3e986a97f4269e8ce353c4d141360  gcc/testsuite/gcc.target/riscv/_Float16.c
  d0db5e2267389a1185e58b9406371ee4  gcc/testsuite/gcc.target/riscv/arch-1.c
  3b7707b06c4df57de1fbf8812c8df071  gcc/testsuite/gcc.target/riscv/arch-10.c
  ec7f5ab1f99ea69345d1e5ac8e166932  gcc/testsuite/gcc.target/riscv/arch-11.c
--- 82062,82209 ----
  2225a6f7684a41fdc3c9fedebe226c82  gcc/testsuite/gcc.target/pru/zero_extend-hisi.c
  57debb1068324d1b650c42700abacf74  gcc/testsuite/gcc.target/pru/zero_extend-qihi.c
  09a429ba90db19830e7f9b51abc8f22f  gcc/testsuite/gcc.target/pru/zero_extend-qisi.c
! c67a7c76bebe61ac560f755811bcdc59  gcc/testsuite/gcc.target/riscv/_Float16-nanboxing.c
! d5f961ab4c3f065a339428cc1c7c7955  gcc/testsuite/gcc.target/riscv/_Float16-soft-1.c
! c5ceb8b3608a18adcdad47c0d1d02c32  gcc/testsuite/gcc.target/riscv/_Float16-soft-2.c
! 906762372f0006c37ff57c769448fc53  gcc/testsuite/gcc.target/riscv/_Float16-soft-3.c
  f7e3e02cfa055769e5c83fac9a4ab314  gcc/testsuite/gcc.target/riscv/_Float16-soft-4.c
! 9b6f7effa608d92a6fd3e1842c832937  gcc/testsuite/gcc.target/riscv/_Float16-zfh-1.c
! 1218f97797b88a38badd883d57389f68  gcc/testsuite/gcc.target/riscv/_Float16-zfh-2.c
! 5fd3197e5fe0a13b1b1a31a107b6ceb9  gcc/testsuite/gcc.target/riscv/_Float16-zfh-3.c
! 4dd50b3964b4ec3e610f4631f0c49bc2  gcc/testsuite/gcc.target/riscv/_Float16-zfhmin-1.c
! e83c07692ced4285b0bc0e2424568e43  gcc/testsuite/gcc.target/riscv/_Float16-zfhmin-2.c
! 2097ee4a6e0c81ea64e1a8b6ac2dad8d  gcc/testsuite/gcc.target/riscv/_Float16-zfhmin-3.c
! 37421cc9faf9c60a0b1eefc648e95f68  gcc/testsuite/gcc.target/riscv/_Float16-zfhmin-4.c
! b740b155a4298fc2a771d42b3de53737  gcc/testsuite/gcc.target/riscv/_Float16-zhinx-1.c
  7df18ee48aa1e757de0108f77dec4e5c  gcc/testsuite/gcc.target/riscv/_Float16-zhinx-2.c
  cd709a10461254ddf2db66c3d68f0ea1  gcc/testsuite/gcc.target/riscv/_Float16-zhinx-3.c
! 6444a59148bcfefc04ac6e1bda76f6bc  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-1.c
! 702be53501e5b2e1c0a1bae868581058  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-2.c
! 7a1f132554dc97174e57d3f6e86f1649  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-3.c
! 2fd1f87bd278901534285a57812f87d2  gcc/testsuite/gcc.target/riscv/_Float16-zhinxmin-4.c
  3ff3e986a97f4269e8ce353c4d141360  gcc/testsuite/gcc.target/riscv/_Float16.c
+ bba405b002d0f85badf490d1a62c2d6c  gcc/testsuite/gcc.target/riscv/adddibeq.c
+ deeb1a41f4702831cc9221544b3e612e  gcc/testsuite/gcc.target/riscv/adddibfeq.c
+ 433c530e060084563d9a666fba4e1622  gcc/testsuite/gcc.target/riscv/adddibfge.c
+ 1d5dd0ff0cd5ac853355c4ca2b54bc34  gcc/testsuite/gcc.target/riscv/adddibfgt.c
+ d3a30f1a694ebed5854d570ffe88ddba  gcc/testsuite/gcc.target/riscv/adddibfle.c
+ d211287ebbff854386503e76f2f44b74  gcc/testsuite/gcc.target/riscv/adddibflt.c
+ f265a95e85ef418690ca5fd27f44b773  gcc/testsuite/gcc.target/riscv/adddibfne.c
+ 9e4d43edeb73123095b3596619d6cea2  gcc/testsuite/gcc.target/riscv/adddibge.c
+ 08b759c693feefe86029352d538c9619  gcc/testsuite/gcc.target/riscv/adddibgeu.c
+ ac13617f75ac43b9ba6accd2e01e07a8  gcc/testsuite/gcc.target/riscv/adddibgt.c
+ 2b020905704c7958828f9b9afb94772a  gcc/testsuite/gcc.target/riscv/adddibgtu.c
+ 0d52cbcc21191a8bb83f3a4dfc888a44  gcc/testsuite/gcc.target/riscv/adddible.c
+ 9d8affa68a82bf5e8c7c14c936674688  gcc/testsuite/gcc.target/riscv/adddibleu.c
+ 41874aa0602c9c994aa443ccc6f1a727  gcc/testsuite/gcc.target/riscv/adddiblt.c
+ 78966ca8cba8b7f449c532a445009f04  gcc/testsuite/gcc.target/riscv/adddibltu.c
+ f9f9b5baf3887ee810898b02eec7f9bf  gcc/testsuite/gcc.target/riscv/adddibne.c
+ e491558085c6babb13213c96aa9c1b8c  gcc/testsuite/gcc.target/riscv/adddieq.c
+ 15d147db40fcee66417a08e3248ce1ea  gcc/testsuite/gcc.target/riscv/adddifeq.c
+ e719eff68da7dfb4fd959d5c7cbc13cf  gcc/testsuite/gcc.target/riscv/adddifge.c
+ 0eebe2fa55ebf1d793ee5b89a1c6d8ac  gcc/testsuite/gcc.target/riscv/adddifgt.c
+ 84ec137df88404abd6bbad8463573d0b  gcc/testsuite/gcc.target/riscv/adddifle.c
+ c97fb4938d4ba3791a9b20f0466a1472  gcc/testsuite/gcc.target/riscv/adddiflt.c
+ edd2a06b0202ab51ecb2245fcec62a3e  gcc/testsuite/gcc.target/riscv/adddifne.c
+ 72ad25d975b46e496084227dd8ed4cf7  gcc/testsuite/gcc.target/riscv/adddige.c
+ 38a3033166ba1e9922c97bee59b8cd6c  gcc/testsuite/gcc.target/riscv/adddigeu.c
+ 194526b91f04fcfeb21ad8e821cf1dfb  gcc/testsuite/gcc.target/riscv/adddigt.c
+ 3f2f7a5b35f86e0c5dd30d6e7940d233  gcc/testsuite/gcc.target/riscv/adddigtu.c
+ 19db7bf9cace42541f48ac432ba2e38c  gcc/testsuite/gcc.target/riscv/adddile.c
+ 121fba6794a96d61da627be8e29af71e  gcc/testsuite/gcc.target/riscv/adddileu.c
+ eaa8a2be49b1fce809050fec049b431c  gcc/testsuite/gcc.target/riscv/adddilt.c
+ 50fc5c698f61fe7e11be1e5e3f4bcc1b  gcc/testsuite/gcc.target/riscv/adddiltu.c
+ dc75679650c0ae9036ffdbc73ab7ea80  gcc/testsuite/gcc.target/riscv/adddine.c
+ e47a2c6425b52fdf9412cb7805c524a0  gcc/testsuite/gcc.target/riscv/addsibeq.c
+ 1eeeaa0296f1dcbe3c4c3ee747d52db2  gcc/testsuite/gcc.target/riscv/addsibfeq.c
+ f2de41a0c568819863cdb7e683292967  gcc/testsuite/gcc.target/riscv/addsibfge.c
+ 0c1d107dd0b858deed3a029196f73462  gcc/testsuite/gcc.target/riscv/addsibfgt.c
+ 75610f81f555076b0689990c65d2e4f4  gcc/testsuite/gcc.target/riscv/addsibfle.c
+ bdfc8d8bb01223adda8747ea09a01d56  gcc/testsuite/gcc.target/riscv/addsibflt.c
+ f2c81b7f0a70f3dbbe266b34a3531fef  gcc/testsuite/gcc.target/riscv/addsibfne.c
+ 0bc3d147c9ccec17a2175d4ec42ac825  gcc/testsuite/gcc.target/riscv/addsibge.c
+ 540a6869349c83ebd2efa2d8ee700996  gcc/testsuite/gcc.target/riscv/addsibgeu.c
+ 1d6e2feac62edb2438ac6e78130f3c5e  gcc/testsuite/gcc.target/riscv/addsibgt.c
+ b60ac131a1a13bde53f0d9a48558c20e  gcc/testsuite/gcc.target/riscv/addsibgtu.c
+ c5c387338f54b708d1d40a894ac806c2  gcc/testsuite/gcc.target/riscv/addsible.c
+ 57ca919286c5f26bec98b1ea4533f053  gcc/testsuite/gcc.target/riscv/addsibleu.c
+ c7d96867c3c1e4e2e0e43d5efb0f055f  gcc/testsuite/gcc.target/riscv/addsiblt.c
+ 1fb2f416efa44c5e18d278529e3db60e  gcc/testsuite/gcc.target/riscv/addsibltu.c
+ 33a4fcf4bff86858e252e006ef1a1c8d  gcc/testsuite/gcc.target/riscv/addsibne.c
+ e0c5f64ae3924a4a82575d493604cba0  gcc/testsuite/gcc.target/riscv/addsieq.c
+ 57cd6a3d6d9a7f548dddab50c23ab384  gcc/testsuite/gcc.target/riscv/addsifeq.c
+ ca811863940564d675ca1b328f9c2654  gcc/testsuite/gcc.target/riscv/addsifge.c
+ 1dd40cb5f49c0701b88ad300be9a0c4d  gcc/testsuite/gcc.target/riscv/addsifgt.c
+ a4ee820b5d3f412dc81553fb79af837e  gcc/testsuite/gcc.target/riscv/addsifle.c
+ 3a67200ce6d7006139677caa850317d9  gcc/testsuite/gcc.target/riscv/addsiflt.c
+ 01897bb902a5a4f90a7d4c28205bcb1c  gcc/testsuite/gcc.target/riscv/addsifne.c
+ b0e5209d5f999b06ad83b7f8c0e37ce4  gcc/testsuite/gcc.target/riscv/addsige.c
+ fe2fb4bb520fe6d7ecee03b0c15c8aba  gcc/testsuite/gcc.target/riscv/addsigeu.c
+ 7ab68bcb6185b5a45097ecc968e591c1  gcc/testsuite/gcc.target/riscv/addsigt.c
+ b6f92528f88d14623d75ec6e78ec600b  gcc/testsuite/gcc.target/riscv/addsigtu.c
+ 1bb3878cb57d7e1cf588c7a5482ac612  gcc/testsuite/gcc.target/riscv/addsile.c
+ 8070dded3e411c19f49cdee0d989f3d1  gcc/testsuite/gcc.target/riscv/addsileu.c
+ 00faa7503653b71c17df01183b341cc1  gcc/testsuite/gcc.target/riscv/addsilt.c
+ 76a940a3d5307bc189eba251b04646a4  gcc/testsuite/gcc.target/riscv/addsiltu.c
+ 86a2ca798a76139f89cb8f5e596bbf81  gcc/testsuite/gcc.target/riscv/addsine.c
+ 6ba4ee1ec2a94e64a06d962b77a06d14  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-1.c
+ 894c4c0ec10a0d215dfbef9c5c7cda12  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-2.c
+ 9045822b826b974ffa0c84ded43892b3  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-3.c
+ dcbfbef9028e71d8c5b436b90211c9be  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-4.c
+ 324e1b1abb38bdfd491a0f870f59a5a7  gcc/testsuite/gcc.target/riscv/amo-table-a-6-amo-add-5.c
+ 90ce379c91745574abd64b03224ccf3f  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-1.c
+ 109ff9d7586c3accaa87209d73ce0ac1  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-2.c
+ b28527882210276d6749b1d3bf533817  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-3.c
+ da1ec5f7592dd3b1d5bf1f612bb81526  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-4.c
+ 3eb12593384b4df7d60a1a934fdb73ae  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-5.c
+ 7984e0dbd3a39f2000c6bf6760fdd020  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-6.c
+ 063086f8f63e722c6c223e2ddd9b5770  gcc/testsuite/gcc.target/riscv/amo-table-a-6-compare-exchange-7.c
+ f25d927dce4cde94a5289aad8b6b047a  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-1.c
+ 53da7d77a0adaf4f0d1a5d7c4136769a  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-2.c
+ 0e86e9ea5504f7a54357083c389e26fe  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-3.c
+ 4303c6cf102ec47c1e8aecfc356b6220  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-4.c
+ 679dc69db0dd80c41a22f3b30e87e75d  gcc/testsuite/gcc.target/riscv/amo-table-a-6-fence-5.c
+ 126b2edcbd0a7bab16944dc3b8d4df68  gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-1.c
+ 1f2f0af2d1d1a6c6d8a28068665aa518  gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-2.c
+ 9bb3c708ebe6b0227625d12d6df74b5e  gcc/testsuite/gcc.target/riscv/amo-table-a-6-load-3.c
+ b8b11fc19be4c9f16bb6d02570ad339c  gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-1.c
+ 64ab66e58baf9a9a71d68751d9bf495e  gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-2.c
+ e34265623dff1b098c30c6811c401145  gcc/testsuite/gcc.target/riscv/amo-table-a-6-store-compat-3.c
+ a76ab066d9e790858c6acf9e300337cc  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-1.c
+ 629c4fa227be92fcf2ca313e3a080330  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-2.c
+ 9212ff5b3b1826a78f42f52a7507b89b  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-3.c
+ d37061f4d07683a18b49e3aa9aa248bf  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-4.c
+ c13f2f63cb426d5ebe6d6b7318562e24  gcc/testsuite/gcc.target/riscv/amo-table-a-6-subword-amo-add-5.c
+ ae4c51e766095c8b9d5b17af17662810  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-1.c
+ 7f6487082580025af7734624cbb2b636  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-2.c
+ 1b29383267e3cf212161afcb9d373e88  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-3.c
+ ff6f677bf2aaaa2bdf7f8b445e08c3dd  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-4.c
+ 3189c792ef03d2ded1b70903feb7fc30  gcc/testsuite/gcc.target/riscv/amo-table-ztso-amo-add-5.c
+ f5f7181bc9753be9dd489c63d28f3d1e  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-1.c
+ 608802edcee884c5bd5c0a7986bed4fd  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-2.c
+ a180719aa3b739dfec0e5213aca6ef3a  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-3.c
+ 23a83b6fd3472a6f0f01fd1c9a353168  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-4.c
+ 354cfd79ac7442ea18df7563da5b2659  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-5.c
+ 0ff836d24f9790a760478b5b56dce66d  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-6.c
+ f99a9c9483e266f0cc3ad13953786b63  gcc/testsuite/gcc.target/riscv/amo-table-ztso-compare-exchange-7.c
+ 4f1178bbcdef696a8750f1ad90f8df7c  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-1.c
+ c9cee2ed2ccbce0abcb53b6603dd0747  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-2.c
+ 9ea99e8634e068ee7e4281e04271eed1  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-3.c
+ 621f14bfaeb598a0899ebdde39da07c8  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-4.c
+ 1de41097468453345775ee456a16d44a  gcc/testsuite/gcc.target/riscv/amo-table-ztso-fence-5.c
+ 90c742ca2b75c522e0eeea093ea59fe9  gcc/testsuite/gcc.target/riscv/amo-table-ztso-load-1.c
+ 6b3e0bd7dd618c092037bd59ce578f29  gcc/testsuite/gcc.target/riscv/amo-table-ztso-load-2.c
+ 210e27a93278e10dad3a4a44c5be6270  gcc/testsuite/gcc.target/riscv/amo-table-ztso-load-3.c
+ 1b57c600efebdd891842bc28a90c60d8  gcc/testsuite/gcc.target/riscv/amo-table-ztso-store-1.c
+ 801d165452fc7d55d5f28e7981a63497  gcc/testsuite/gcc.target/riscv/amo-table-ztso-store-2.c
+ a4a9eb30b8a90b50e194f6d66b721e0a  gcc/testsuite/gcc.target/riscv/amo-table-ztso-store-3.c
+ 30ee0532b3ff0ac06ecdfd4fc64e2300  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-1.c
+ 2669aea89114aa1b00b4562854f3b92b  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-2.c
+ f5dba2ed6610e0d14829c0c8b13ec36d  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-3.c
+ 0fa647984504a37608cb9f55b01e3e71  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-4.c
+ 7e79003b6d6f5240e60752598f427b71  gcc/testsuite/gcc.target/riscv/amo-table-ztso-subword-amo-add-5.c
+ f2824bba3f317208bc724728332991c3  gcc/testsuite/gcc.target/riscv/and-extend-1.c
+ adc74d0f17f6765898acaf25e4b80da2  gcc/testsuite/gcc.target/riscv/and-extend-2.c
  d0db5e2267389a1185e58b9406371ee4  gcc/testsuite/gcc.target/riscv/arch-1.c
  3b7707b06c4df57de1fbf8812c8df071  gcc/testsuite/gcc.target/riscv/arch-10.c
  ec7f5ab1f99ea69345d1e5ac8e166932  gcc/testsuite/gcc.target/riscv/arch-11.c
*************** b353e25bf8c050c9bb23e150b537ad4a  gcc/te
*** 76468,76484 ****
  8c74fded78ad83fce8b9cc3868c85702  gcc/testsuite/gcc.target/riscv/arch-16.c
  6f8090b93cd463d74214942e95716715  gcc/testsuite/gcc.target/riscv/arch-17.c
  e8df073c7b4dc1500bc1b56aebb64125  gcc/testsuite/gcc.target/riscv/arch-18.c
! bdf6e671a35ce62da3862697db65e753  gcc/testsuite/gcc.target/riscv/arch-19.c
! 07c54de88d120fb9d5f2cb208bd8ebcf  gcc/testsuite/gcc.target/riscv/arch-2.c
! acb7dcb6bf251bf541bd328345825a0f  gcc/testsuite/gcc.target/riscv/arch-3.c
  a7fd98a8530a5994fa6594c79ed33fc5  gcc/testsuite/gcc.target/riscv/arch-4.c
! afb7b4bff405a0007c8799e7ceb50159  gcc/testsuite/gcc.target/riscv/arch-5.c
  2cd6ade559b1ab254703146aa7008e18  gcc/testsuite/gcc.target/riscv/arch-6.c
  81519955d6644acb55c78120405494a5  gcc/testsuite/gcc.target/riscv/arch-7.c
! ec0990d4345bd503d7a090432b5eb8c0  gcc/testsuite/gcc.target/riscv/arch-8.c
  618e0be396e7e79ffa293a23f42b305d  gcc/testsuite/gcc.target/riscv/arch-9.c
! 021cf69585e7f17c1b8b4d4324845510  gcc/testsuite/gcc.target/riscv/attribute-1.c
! 54c5f52de6a202ed77a056980953dfba  gcc/testsuite/gcc.target/riscv/attribute-10.c
  f0d20f8a7e02207b95f7a8b4f3066027  gcc/testsuite/gcc.target/riscv/attribute-11.c
  2be23f1c0480d289b430a7da2bee15a7  gcc/testsuite/gcc.target/riscv/attribute-12.c
  57fe31e4d8f18b4d72e65e6cc02ab7ee  gcc/testsuite/gcc.target/riscv/attribute-13.c
--- 82214,82247 ----
  8c74fded78ad83fce8b9cc3868c85702  gcc/testsuite/gcc.target/riscv/arch-16.c
  6f8090b93cd463d74214942e95716715  gcc/testsuite/gcc.target/riscv/arch-17.c
  e8df073c7b4dc1500bc1b56aebb64125  gcc/testsuite/gcc.target/riscv/arch-18.c
! 3cb693da5f0ad251087876b29cc0a617  gcc/testsuite/gcc.target/riscv/arch-19.c
! 7c57184e403083129b845401fdbeb93b  gcc/testsuite/gcc.target/riscv/arch-2.c
! bb6e92fcef0d63df479cbfba30f5f8c4  gcc/testsuite/gcc.target/riscv/arch-20.c
! 6dcad530682163976b3c2aaf119d8993  gcc/testsuite/gcc.target/riscv/arch-21.c
! e576291427abca3f72d30a431447959b  gcc/testsuite/gcc.target/riscv/arch-22.c
! 1a1b708bbda0ed6bf621da9fed1ab33d  gcc/testsuite/gcc.target/riscv/arch-22.cc
! 62a149fb3cda7f5ee93bf5f7f6075888  gcc/testsuite/gcc.target/riscv/arch-23.c
! b75c106ec27cc7342a78fa97b18b9780  gcc/testsuite/gcc.target/riscv/arch-24.c
! 83ec5e0597bd6f95add3938e95dfdb21  gcc/testsuite/gcc.target/riscv/arch-25.c
! 47c92173c555b7e9676906e4937da88a  gcc/testsuite/gcc.target/riscv/arch-26.c
! 6fb005412f8c5d07a35f36ea4f160eff  gcc/testsuite/gcc.target/riscv/arch-27.c
! 904d29c140d0ab6500fe45798bf9bc06  gcc/testsuite/gcc.target/riscv/arch-28.c
! 71ae08e7e20eb1853edc05df4cccfade  gcc/testsuite/gcc.target/riscv/arch-29.c
! 965be927378e101904fdca9d29570b49  gcc/testsuite/gcc.target/riscv/arch-3.c
! 8e229b99f415b1a181cefd1acd8e4d54  gcc/testsuite/gcc.target/riscv/arch-30.c
! 4b681af126e1a1766c08d0fc931dc61e  gcc/testsuite/gcc.target/riscv/arch-31.c
! e0ba12631bfd543ac7e92c5ef49f9856  gcc/testsuite/gcc.target/riscv/arch-32.c
! 4ac210302affe45191976aef1edaae36  gcc/testsuite/gcc.target/riscv/arch-33.c
! cd4048a1db70f3763fdb62c133abd899  gcc/testsuite/gcc.target/riscv/arch-34.c
  a7fd98a8530a5994fa6594c79ed33fc5  gcc/testsuite/gcc.target/riscv/arch-4.c
! c94d482c7ef976b5a86a9679daf9ddc1  gcc/testsuite/gcc.target/riscv/arch-5.c
  2cd6ade559b1ab254703146aa7008e18  gcc/testsuite/gcc.target/riscv/arch-6.c
  81519955d6644acb55c78120405494a5  gcc/testsuite/gcc.target/riscv/arch-7.c
! def4ef484e9166f9a01c65a411a9d916  gcc/testsuite/gcc.target/riscv/arch-8.c
  618e0be396e7e79ffa293a23f42b305d  gcc/testsuite/gcc.target/riscv/arch-9.c
! 6be92dc237b576e8f4ddb6f36b3e74d2  gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c
! f7c93a7f1ac8c63ea33743634bd47e7d  gcc/testsuite/gcc.target/riscv/attribute-1.c
! 84dfe009e450695f476bc4133d7a8351  gcc/testsuite/gcc.target/riscv/attribute-10.c
  f0d20f8a7e02207b95f7a8b4f3066027  gcc/testsuite/gcc.target/riscv/attribute-11.c
  2be23f1c0480d289b430a7da2bee15a7  gcc/testsuite/gcc.target/riscv/attribute-12.c
  57fe31e4d8f18b4d72e65e6cc02ab7ee  gcc/testsuite/gcc.target/riscv/attribute-13.c
*************** f0d20f8a7e02207b95f7a8b4f3066027  gcc/te
*** 76486,76521 ****
  39e4f92d19a2c273893cddd2c316ee29  gcc/testsuite/gcc.target/riscv/attribute-15.c
  8e7af04c08686a53777ea22cd76ab589  gcc/testsuite/gcc.target/riscv/attribute-16.c
  d013ee2ea07d94e3a094d8f29220ed89  gcc/testsuite/gcc.target/riscv/attribute-17.c
! 6d8ec8aa684c81e0984dcf68696e7f9c  gcc/testsuite/gcc.target/riscv/attribute-18.c
! 0fc4c1497c70fd6543e830c02559ab3a  gcc/testsuite/gcc.target/riscv/attribute-19.c
  4a321b1fc86bbe78c3f53248aba72a2b  gcc/testsuite/gcc.target/riscv/attribute-2.c
  85d31390103bd01472a22653b86f9bbc  gcc/testsuite/gcc.target/riscv/attribute-3.c
! dad325a459f19676dfee86731f315a34  gcc/testsuite/gcc.target/riscv/attribute-4.c
! 77eef0bbefcd27f3e5ecf9e0e4a809da  gcc/testsuite/gcc.target/riscv/attribute-5.c
  e21ab49d7189048e7846cf34bb083a0c  gcc/testsuite/gcc.target/riscv/attribute-7.c
! 3a94bc06ffd8655006bf4f73ce32c6d0  gcc/testsuite/gcc.target/riscv/attribute-8.c
! c168d11fce6257194b04ca108933932b  gcc/testsuite/gcc.target/riscv/attribute-9.c
  b4171b78d48ceb8a0a4b920a87338e9e  gcc/testsuite/gcc.target/riscv/branch-1.c
! 85f87265a7ef9502222a090b17d5c066  gcc/testsuite/gcc.target/riscv/builtin_pause.c
  4871954678f8c088ea61e950d306fe2b  gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c
  403382dd3d4f610c46c33100f96050bb  gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c
  28f0db450de2e11dbbf7a6138c7234f6  gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c
  7fd5d2309bafcb8b08d55ab159f89935  gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c
  a093c104ed149894b0297471de52af9a  gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c
  7fc52bdd7484a11d12e5fb04ed6063fe  gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c
  ac22a668a6627141957bbd3d791e4b02  gcc/testsuite/gcc.target/riscv/flattened-struct-abi-1.c
  62823213389acb5bfc34bf2e10ae7aa7  gcc/testsuite/gcc.target/riscv/flattened-struct-abi-2.c
! f98d42d2c328f9e906c604650a395fb8  gcc/testsuite/gcc.target/riscv/fle-ieee.c
! 6d26dadff91cdea799a17c88fd15d942  gcc/testsuite/gcc.target/riscv/fle-snan.c
! 0233371a1c80858646a0303ebd2aa8a5  gcc/testsuite/gcc.target/riscv/fle.c
! b3403cb590e0a552922063b2cfbb8e06  gcc/testsuite/gcc.target/riscv/flef-ieee.c
! 5fdab8f78d3c1c8d7140983e3c9a287a  gcc/testsuite/gcc.target/riscv/flef-snan.c
! 172fc3c2cef4e6b03b03cfb26090f181  gcc/testsuite/gcc.target/riscv/flef.c
! 6ff65bcf7da63eaf17f4d8d1e73e857f  gcc/testsuite/gcc.target/riscv/flt-ieee.c
! 915f7df0942c7ac225efb2b97b7c626e  gcc/testsuite/gcc.target/riscv/flt-snan.c
  3c1632c9fd62717ee28fb27a41b0d7b9  gcc/testsuite/gcc.target/riscv/flt.c
! caf8aff9a7069a38583bc4c25dcce2bc  gcc/testsuite/gcc.target/riscv/fltf-ieee.c
! 377fe5600636595503854f22c64c4ae7  gcc/testsuite/gcc.target/riscv/fltf-snan.c
  c32704622e2680b1192e0934e1fe06a6  gcc/testsuite/gcc.target/riscv/fltf.c
  cce0f100408ab68657416ee6dff78afa  gcc/testsuite/gcc.target/riscv/fmax-snan.c
  c5fce1891bf87ad67a6990a0df33c336  gcc/testsuite/gcc.target/riscv/fmax.c
--- 82249,82501 ----
  39e4f92d19a2c273893cddd2c316ee29  gcc/testsuite/gcc.target/riscv/attribute-15.c
  8e7af04c08686a53777ea22cd76ab589  gcc/testsuite/gcc.target/riscv/attribute-16.c
  d013ee2ea07d94e3a094d8f29220ed89  gcc/testsuite/gcc.target/riscv/attribute-17.c
! be3bff0ab797c8843a0a2a38ba6b8a70  gcc/testsuite/gcc.target/riscv/attribute-18.c
! 9aa2bcbf73c12fb3ecdbf60f4ba0d2ed  gcc/testsuite/gcc.target/riscv/attribute-19.c
  4a321b1fc86bbe78c3f53248aba72a2b  gcc/testsuite/gcc.target/riscv/attribute-2.c
+ df6bb22f015faf57e6409f769b75db07  gcc/testsuite/gcc.target/riscv/attribute-20.c
+ 6e450562d1327a66235c224c28374085  gcc/testsuite/gcc.target/riscv/attribute-21.c
  85d31390103bd01472a22653b86f9bbc  gcc/testsuite/gcc.target/riscv/attribute-3.c
! 6a6605a9fa64419462a798578dfc6810  gcc/testsuite/gcc.target/riscv/attribute-4.c
! 5375c0ec644f71c8ecb9fe349da0271f  gcc/testsuite/gcc.target/riscv/attribute-5.c
  e21ab49d7189048e7846cf34bb083a0c  gcc/testsuite/gcc.target/riscv/attribute-7.c
! cabf88be4bf05d41b4011144e5ecc054  gcc/testsuite/gcc.target/riscv/attribute-8.c
! 0a9b3f3b9429d00e3594aed203aa8f9e  gcc/testsuite/gcc.target/riscv/attribute-9.c
  b4171b78d48ceb8a0a4b920a87338e9e  gcc/testsuite/gcc.target/riscv/branch-1.c
! dfc845bf36ac50a02d3791afb2013ee4  gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c
  4871954678f8c088ea61e950d306fe2b  gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c
  403382dd3d4f610c46c33100f96050bb  gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c
  28f0db450de2e11dbbf7a6138c7234f6  gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c
  7fd5d2309bafcb8b08d55ab159f89935  gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c
  a093c104ed149894b0297471de52af9a  gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c
  7fc52bdd7484a11d12e5fb04ed6063fe  gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c
+ 52475c5c39a4463925093beba4f9c000  gcc/testsuite/gcc.target/riscv/compare-debug-1.c
+ e29174f77074a234bd649d4de0f4e274  gcc/testsuite/gcc.target/riscv/compare-debug-2.c
+ cbbda21f5493f463dcd1c5ef76289bff  gcc/testsuite/gcc.target/riscv/cset-sext-rtl.c
+ 5c9e12dcb140f227203d9a5fea37bb6d  gcc/testsuite/gcc.target/riscv/cset-sext-rtl32.c
+ 937f9733cfbe2a9845726b58a0219bd0  gcc/testsuite/gcc.target/riscv/cset-sext-sfb-rtl.c
+ 06d775ffe03d274bf5403beb5b6ba11a  gcc/testsuite/gcc.target/riscv/cset-sext-sfb-rtl32.c
+ f31cbce9a148079081db0e1242a852eb  gcc/testsuite/gcc.target/riscv/cset-sext-sfb.c
+ e2c81e1e000e1bc7d6cb53f8f1250494  gcc/testsuite/gcc.target/riscv/cset-sext-thead-rtl.c
+ 9989a073fc2c17a2521d848c72e0fb09  gcc/testsuite/gcc.target/riscv/cset-sext-thead.c
+ d8ad1fa9d711b837a15af69a5c62138a  gcc/testsuite/gcc.target/riscv/cset-sext-ventana-rtl.c
+ 761fc0d8d158e17971638f18d392ccc6  gcc/testsuite/gcc.target/riscv/cset-sext-ventana.c
+ b411b4c64d3aef0593c452f208562527  gcc/testsuite/gcc.target/riscv/cset-sext-zicond-rtl.c
+ de8cd629c81743c294abaf9bb02dffb8  gcc/testsuite/gcc.target/riscv/cset-sext-zicond-rtl32.c
+ 96dfa248b9549ad0ba28348bafc076d7  gcc/testsuite/gcc.target/riscv/cset-sext-zicond.c
+ 7129d060e5a94dbed8e5afec6c5742eb  gcc/testsuite/gcc.target/riscv/cset-sext.c
+ 2c9f248e5e5d33f80dcec011330c69ee  gcc/testsuite/gcc.target/riscv/cv-alu-compile.c
+ 41d0197364bbbc01251c326b37ef1b14  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-addn.c
+ 1a6837bc60969111b75a76583f8c2f92  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-addrn.c
+ 5e90d2442e6f485c1916b7dc2b1dfddb  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-addun.c
+ 6f13119ba7cd06647f8a03c4b23c34d1  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-addurn.c
+ 557288da1d3cd6e3778406e529717d8c  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-clip.c
+ 8915047f91f7c659950892c8e03e324b  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-clipu.c
+ 13490c054f9343a22ed2c09b9663fec7  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-subn.c
+ 695270a5a120a1ee5f652fd4d5939e0e  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-subrn.c
+ d2ee0e952a9bca0887ea0d77cb5e208b  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-subun.c
+ a9a8f0343c88b68f2f333602ed835d12  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile-suburn.c
+ 56667d6da7016aad6f55387e6bb8cf8e  gcc/testsuite/gcc.target/riscv/cv-alu-fail-compile.c
+ 51f55764c649a83a4fc7578f711a771e  gcc/testsuite/gcc.target/riscv/cv-bi-beqimm-compile-1.c
+ cd9c5456598a263770a0bdfdaf3cf424  gcc/testsuite/gcc.target/riscv/cv-bi-beqimm-compile-2.c
+ 1165b472be764c68aaf3f1c883c33375  gcc/testsuite/gcc.target/riscv/cv-bi-bneimm-compile-1.c
+ 9d50d2491555dd76423e504b576fb832  gcc/testsuite/gcc.target/riscv/cv-bi-bneimm-compile-2.c
+ 338b0da0e3edc9cc43ad75db3b2ce5e1  gcc/testsuite/gcc.target/riscv/cv-elw-elw-compile-1.c
+ de0498dfdcc41eac1232c216b5c3b41d  gcc/testsuite/gcc.target/riscv/cv-mac-compile.c
+ 6c3dbfaa2c502be5d0af3a47b4bbbc1e  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mac.c
+ 4c79e6d9bbd33123d616fb8926da127a  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-machhsn.c
+ f2c42b9570a8e27f8381f476cbe0e889  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-machhsrn.c
+ 5f1e84efece861cad4839f3946bdd209  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-machhun.c
+ 8768f0f1263cad405e0e6d7cd9db6707  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-machhurn.c
+ 30878f90ccbda701c911893bc9ea2310  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-macsn.c
+ b18ef059d269275be4d1d5ae62ec3fe6  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-macsrn.c
+ dc7ad9076a1616eb09ea23faf4efddea  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-macun.c
+ ec92fa3fa79196c3a512c67b4f390221  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-macurn.c
+ 3c7dc7f306e4f0f31ebacac5163da1dc  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-msu.c
+ 4177d17b4e001d94dcde466c1523a278  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mulhhsn.c
+ d58bdcf73dd4302f50acaebc9fbb74fb  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mulhhsrn.c
+ 76cb0042414737bd547fa5732794a5a9  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mulhhun.c
+ 0e64af268bed99ffa86a9c95ea401b2f  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mulhhurn.c
+ df137bb47f190231b00ae0ca65ab2c62  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mulsn.c
+ ba92609f62affa198460179fe117e53f  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mulsrn.c
+ 2b46bf60f9aed1baae65201c12bfc387  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mulun.c
+ 647f39f5b33cdebe17089237233f8367  gcc/testsuite/gcc.target/riscv/cv-mac-fail-compile-mulurn.c
+ d2fa30eaf314203effd3cbff08335c23  gcc/testsuite/gcc.target/riscv/cv-mac-test-autogeneration.c
+ d2609c5d0759f2353203bd52066e9dd7  gcc/testsuite/gcc.target/riscv/cv-simd-abs-b-compile-1.c
+ f7a78932f62640ac86e9f2a8eeb3fefb  gcc/testsuite/gcc.target/riscv/cv-simd-abs-h-compile-1.c
+ ce352c09d1b3a219cd66d8034710c436  gcc/testsuite/gcc.target/riscv/cv-simd-add-b-compile-1.c
+ 852f3c3d778190cac0eadc842bdb6b1d  gcc/testsuite/gcc.target/riscv/cv-simd-add-div2-compile-1.c
+ 352d55d6ea3680be6297d66c2aa57c8a  gcc/testsuite/gcc.target/riscv/cv-simd-add-div4-compile-1.c
+ 55078da6f92d3a05abbc19192460ec54  gcc/testsuite/gcc.target/riscv/cv-simd-add-div8-compile-1.c
+ bc99eabdc68480ee34a700b4761693a2  gcc/testsuite/gcc.target/riscv/cv-simd-add-h-compile-1.c
+ 52a8f06fb0f1385771b91e5683f83e6f  gcc/testsuite/gcc.target/riscv/cv-simd-add-sc-b-compile-1.c
+ 537b2ddb35c9f2d273620f3fc79a1d43  gcc/testsuite/gcc.target/riscv/cv-simd-add-sc-h-compile-1.c
+ a95e41c68f29179d01ba0f517cd87091  gcc/testsuite/gcc.target/riscv/cv-simd-and-b-compile-1.c
+ 22ac76c745c92df9889ccf9cb0803d1e  gcc/testsuite/gcc.target/riscv/cv-simd-and-h-compile-1.c
+ 8d0e120785b3efcc576e013c9605821d  gcc/testsuite/gcc.target/riscv/cv-simd-and-sc-b-compile-1.c
+ 7068939c3a4518a3ec5933f94eeaf6de  gcc/testsuite/gcc.target/riscv/cv-simd-and-sc-h-compile-1.c
+ a6a410cb16cd1f77d6874aee72c83d9f  gcc/testsuite/gcc.target/riscv/cv-simd-avg-b-compile-1.c
+ 8b8035abae7c4869a924e88bcb013562  gcc/testsuite/gcc.target/riscv/cv-simd-avg-h-compile-1.c
+ 034058f2e1d38a503f53f4a1e77bc304  gcc/testsuite/gcc.target/riscv/cv-simd-avg-sc-b-compile-1.c
+ a0280656a8622366c805bebb82b1bd96  gcc/testsuite/gcc.target/riscv/cv-simd-avg-sc-h-compile-1.c
+ 1fbdd55caa8db7314893257bde07913c  gcc/testsuite/gcc.target/riscv/cv-simd-avgu-b-compile-1.c
+ e6b52f42b336b52fa8787fe87502767a  gcc/testsuite/gcc.target/riscv/cv-simd-avgu-h-compile-1.c
+ ac71d673dce756fa55c65c0144a74aed  gcc/testsuite/gcc.target/riscv/cv-simd-avgu-sc-b-compile-1.c
+ 188bcbdc696a2dc4c75bfdcc082026f7  gcc/testsuite/gcc.target/riscv/cv-simd-avgu-sc-h-compile-1.c
+ e6b83aea39c4dd60281bd671f8a29b01  gcc/testsuite/gcc.target/riscv/cv-simd-cmpeq-b-compile-1.c
+ e13afb2a9322f11cd56beadf6dfc2b80  gcc/testsuite/gcc.target/riscv/cv-simd-cmpeq-h-compile-1.c
+ e91d27e0c85f2e04726856f93f28fe18  gcc/testsuite/gcc.target/riscv/cv-simd-cmpeq-sc-b-compile-1.c
+ 1af110a9e0880beb204480e546117753  gcc/testsuite/gcc.target/riscv/cv-simd-cmpeq-sc-h-compile-1.c
+ 80bf5ff34571ece713898dc2e2cfc3d1  gcc/testsuite/gcc.target/riscv/cv-simd-cmpge-b-compile-1.c
+ 5f37b77d3096727774fd2cd9e75f59a9  gcc/testsuite/gcc.target/riscv/cv-simd-cmpge-h-compile-1.c
+ 386d91a42737cffe51fb4fe6ac38a88d  gcc/testsuite/gcc.target/riscv/cv-simd-cmpge-sc-b-compile-1.c
+ dda1787129df42d23d681998f16510b2  gcc/testsuite/gcc.target/riscv/cv-simd-cmpge-sc-h-compile-1.c
+ 08ab1e464a668f3d15a891b94bdd7b57  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgeu-b-compile-1.c
+ 32d48b2ca5a877aa17be2e10872406ce  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgeu-h-compile-1.c
+ e52de4b81294464915890ff83de8c58b  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgeu-sc-b-compile-1.c
+ 9998165a34c0e4efe2a1b6412e69edd8  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgeu-sc-h-compile-1.c
+ 69fb76ede0779a1a117269d95efb5b98  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgt-b-compile-1.c
+ 619722351b541782c7d54543c5d54bf2  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgt-h-compile-1.c
+ 86ed25777173dcf0bfaa31725ef183c8  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgt-sc-b-compile-1.c
+ d8ade2257234bfb95fbe1f8cc361f9eb  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgt-sc-h-compile-1.c
+ 38c1919e610262bab3461b53cdc2d47a  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgtu-b-compile-1.c
+ 4e7cc9acf17b8538d3224e4ae5abfe65  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgtu-h-compile-1.c
+ 3bbe5c8bb2dfaeccd80ebd96499f2425  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgtu-sc-b-compile-1.c
+ 6f700955d4f01ae1cb5b8ebfbee709ff  gcc/testsuite/gcc.target/riscv/cv-simd-cmpgtu-sc-h-compile-1.c
+ ca1ae23073b8a1582fd3b8e76b11a4d0  gcc/testsuite/gcc.target/riscv/cv-simd-cmple-b-compile-1.c
+ 1d6965d8c82db44c2ba18a73f2f6c4d8  gcc/testsuite/gcc.target/riscv/cv-simd-cmple-h-compile-1.c
+ 725526d3838eb602aa92c5242d4ae675  gcc/testsuite/gcc.target/riscv/cv-simd-cmple-sc-b-compile-1.c
+ a69b2f4c39a091696f5fb69b52591178  gcc/testsuite/gcc.target/riscv/cv-simd-cmple-sc-h-compile-1.c
+ bf686dc42050099a2ff3bd0c6600c609  gcc/testsuite/gcc.target/riscv/cv-simd-cmpleu-b-compile-1.c
+ a90923ae0f3e41546ed6881c94e1f041  gcc/testsuite/gcc.target/riscv/cv-simd-cmpleu-h-compile-1.c
+ 2911155fb690ba148d5777c415dd03e4  gcc/testsuite/gcc.target/riscv/cv-simd-cmpleu-sc-b-compile-1.c
+ 0e565f60cb55cedd65de48753d011b70  gcc/testsuite/gcc.target/riscv/cv-simd-cmpleu-sc-h-compile-1.c
+ 30e51fad8bcdc5f72ecbe12b8615cfca  gcc/testsuite/gcc.target/riscv/cv-simd-cmplt-b-compile-1.c
+ d033d4d7a2889a237fa7483e5ac595ea  gcc/testsuite/gcc.target/riscv/cv-simd-cmplt-h-compile-1.c
+ c05e7b6a5e681aef952b598c7bbc0432  gcc/testsuite/gcc.target/riscv/cv-simd-cmplt-sc-b-compile-1.c
+ 2a34e4baacdd5aa87946a7517b4ea13a  gcc/testsuite/gcc.target/riscv/cv-simd-cmplt-sc-h-compile-1.c
+ 052a38e523aeaf297e8acd8baf878542  gcc/testsuite/gcc.target/riscv/cv-simd-cmpltu-b-compile-1.c
+ 7fd00c8ebc8947af6ef2f78866e57a94  gcc/testsuite/gcc.target/riscv/cv-simd-cmpltu-h-compile-1.c
+ 6e8a63817374cfe3e1203de73b219927  gcc/testsuite/gcc.target/riscv/cv-simd-cmpltu-sc-b-compile-1.c
+ a3e571007b7d5c33e9235b6fa3f1fad7  gcc/testsuite/gcc.target/riscv/cv-simd-cmpltu-sc-h-compile-1.c
+ bed082ccd4cb2ebb4f8a521216bd8d8a  gcc/testsuite/gcc.target/riscv/cv-simd-cmpne-b-compile-1.c
+ 76572dfce9d9a9d0cc988eaec2d64904  gcc/testsuite/gcc.target/riscv/cv-simd-cmpne-h-compile-1.c
+ 0831324d9a4ce5ccbfe5dad4b95349d5  gcc/testsuite/gcc.target/riscv/cv-simd-cmpne-sc-b-compile-1.c
+ 11e06d62f05fbba1223ac3af1b281977  gcc/testsuite/gcc.target/riscv/cv-simd-cmpne-sc-h-compile-1.c
+ 1aa19d33b72906e57df3875f5f06c843  gcc/testsuite/gcc.target/riscv/cv-simd-cplxconj-compile-1.c
+ 7fd1efdd521faa1bd32df2c0cb85dcc6  gcc/testsuite/gcc.target/riscv/cv-simd-cplxmul-i-compile-1.c
+ 864c6ba3c9a802e08090a153d549d4eb  gcc/testsuite/gcc.target/riscv/cv-simd-cplxmul-i-div2-compile-1.c
+ b4fbafc3952c225dc423f68ca94812ba  gcc/testsuite/gcc.target/riscv/cv-simd-cplxmul-i-div4-compile-1.c
+ 693eb22082f6753c1d185a0f0b7c3c54  gcc/testsuite/gcc.target/riscv/cv-simd-cplxmul-i-div8-compile-1.c
+ 1317a5991f949b3490634507a6f9b5d7  gcc/testsuite/gcc.target/riscv/cv-simd-cplxmul-r-compile-1.c
+ 37cdf65933de02ebdbb8f1abdb583a20  gcc/testsuite/gcc.target/riscv/cv-simd-cplxmul-r-div2-compile-1.c
+ 2433a7a92364b84e259d62e0a4c3d3c1  gcc/testsuite/gcc.target/riscv/cv-simd-cplxmul-r-div4-compile-1.c
+ ee2c034ca963d432d670b6a4670fe998  gcc/testsuite/gcc.target/riscv/cv-simd-cplxmul-r-div8-compile-1.c
+ f614347946470628fdca72e4c75ef461  gcc/testsuite/gcc.target/riscv/cv-simd-dotsp-b-compile-1.c
+ da174793dda799cb586b67d323be442f  gcc/testsuite/gcc.target/riscv/cv-simd-dotsp-h-compile-1.c
+ 110738b4e9f5520453201f13aacc7d6b  gcc/testsuite/gcc.target/riscv/cv-simd-dotsp-sc-b-compile-1.c
+ 49f873ed95dea0908499745d15102b2a  gcc/testsuite/gcc.target/riscv/cv-simd-dotsp-sc-h-compile-1.c
+ dec36c2e6511dd917cc7835e720eff71  gcc/testsuite/gcc.target/riscv/cv-simd-dotup-b-compile-1.c
+ 110dd917d812a85d67023fcef1bbbcfa  gcc/testsuite/gcc.target/riscv/cv-simd-dotup-h-compile-1.c
+ 4b01b64cc47dcb421a8f653f9f4a4d17  gcc/testsuite/gcc.target/riscv/cv-simd-dotup-sc-b-compile-1.c
+ 9b9b2e45b3c58c6ddafffb19d1f9259a  gcc/testsuite/gcc.target/riscv/cv-simd-dotup-sc-h-compile-1.c
+ fb8f655ac349e188dc0d57a9c3715c7d  gcc/testsuite/gcc.target/riscv/cv-simd-dotusp-b-compile-1.c
+ 450383ba07b3877de0e4914648d2235c  gcc/testsuite/gcc.target/riscv/cv-simd-dotusp-h-compile-1.c
+ 9e998b7be37de54432138c7d1036d523  gcc/testsuite/gcc.target/riscv/cv-simd-dotusp-sc-b-compile-1.c
+ 728d367fed04e4b62ab4c7a6baf273e2  gcc/testsuite/gcc.target/riscv/cv-simd-dotusp-sc-h-compile-1.c
+ c9d7ce4767e71a7589769afd91cbf731  gcc/testsuite/gcc.target/riscv/cv-simd-extract-b-compile-1.c
+ d309ddada4dbd4518cebfc367d6b5b69  gcc/testsuite/gcc.target/riscv/cv-simd-extract-h-compile-1.c
+ e01d649a34665af2d42c0f313be0c826  gcc/testsuite/gcc.target/riscv/cv-simd-extractu-b-compile-1.c
+ 3ba5e45f904d747692e0ab56928f773f  gcc/testsuite/gcc.target/riscv/cv-simd-extractu-h-compile-1.c
+ faf8fba0c45f49fee85ac7c312a3bf27  gcc/testsuite/gcc.target/riscv/cv-simd-insert-b-compile-1.c
+ 1b09445539b3ab21028fc12b072f8a2a  gcc/testsuite/gcc.target/riscv/cv-simd-insert-h-compile-1.c
+ cb20152ae9b95ba82e5be906f6ddadeb  gcc/testsuite/gcc.target/riscv/cv-simd-march-compile-1.c
+ 52ce3230f73742e4fb588dff8517b002  gcc/testsuite/gcc.target/riscv/cv-simd-max-b-compile-1.c
+ 5489fde983be3e0061a1b48e113f2bd9  gcc/testsuite/gcc.target/riscv/cv-simd-max-h-compile-1.c
+ 39768ac55997d5692dd63466b8ed65e3  gcc/testsuite/gcc.target/riscv/cv-simd-max-sc-b-compile-1.c
+ eaaee5bca010262215646c3379cbae7c  gcc/testsuite/gcc.target/riscv/cv-simd-max-sc-h-compile-1.c
+ 53ce838a715ffb3269c51b5da6a0de9e  gcc/testsuite/gcc.target/riscv/cv-simd-maxu-b-compile-1.c
+ 6d96a6a83a97334951334d29cf76e02b  gcc/testsuite/gcc.target/riscv/cv-simd-maxu-h-compile-1.c
+ 2d0d8082d24b646b2dfedb6981595c56  gcc/testsuite/gcc.target/riscv/cv-simd-maxu-sc-b-compile-1.c
+ d215b6b0994595460f94da959e91eb20  gcc/testsuite/gcc.target/riscv/cv-simd-maxu-sc-h-compile-1.c
+ 333c301be98caf8910ca7228d8c787ac  gcc/testsuite/gcc.target/riscv/cv-simd-min-b-compile-1.c
+ 93e688c781e1fe1abbd6bd146fedf74f  gcc/testsuite/gcc.target/riscv/cv-simd-min-h-compile-1.c
+ 70e357dfa4d4c08ac92894f2c2896d45  gcc/testsuite/gcc.target/riscv/cv-simd-min-sc-b-compile-1.c
+ d4eedd55fb1e542eb18db7a8b3a7fd77  gcc/testsuite/gcc.target/riscv/cv-simd-min-sc-h-compile-1.c
+ beee63e810a8263793a1cb7e33a75643  gcc/testsuite/gcc.target/riscv/cv-simd-minu-b-compile-1.c
+ 26249564aedd370bc69cd03a8fe3c4fe  gcc/testsuite/gcc.target/riscv/cv-simd-minu-h-compile-1.c
+ 683f41134e5381d27bbe468c94b17ace  gcc/testsuite/gcc.target/riscv/cv-simd-minu-sc-b-compile-1.c
+ 24edf4258ab2661cca9c23870d071b4e  gcc/testsuite/gcc.target/riscv/cv-simd-minu-sc-h-compile-1.c
+ e2a93cfc8f9f2b4729d31ed5f50f7e70  gcc/testsuite/gcc.target/riscv/cv-simd-neg-b-compile-1.c
+ 7dedf3087306731765df324c5fdaa24f  gcc/testsuite/gcc.target/riscv/cv-simd-neg-h-compile-1.c
+ d67506e7c26f874fd506bdce3b8e80f6  gcc/testsuite/gcc.target/riscv/cv-simd-or-b-compile-1.c
+ 99ad278ff0b25ca4cc07a86b9f1f47d2  gcc/testsuite/gcc.target/riscv/cv-simd-or-h-compile-1.c
+ 6b9fdff8a8f365b9ec04260ebddfc3a3  gcc/testsuite/gcc.target/riscv/cv-simd-or-sc-b-compile-1.c
+ 4ee6563db4383775b0963b74199c1e83  gcc/testsuite/gcc.target/riscv/cv-simd-or-sc-h-compile-1.c
+ abeab5aaee82008a76189a1b4f4b8c77  gcc/testsuite/gcc.target/riscv/cv-simd-pack-compile-1.c
+ 6f838b5ab89112bb2b9eab56f7a6c2e9  gcc/testsuite/gcc.target/riscv/cv-simd-pack-h-compile-1.c
+ b3fad76fcf5c29bf1652788194ff4cb9  gcc/testsuite/gcc.target/riscv/cv-simd-packhi-b-compile-1.c
+ a5523c10b62947b864aab0ff13247d76  gcc/testsuite/gcc.target/riscv/cv-simd-packlo-b-compile-1.c
+ c0f9815a22b58c371f1b61a1282ee231  gcc/testsuite/gcc.target/riscv/cv-simd-sdotsp-b-compile-1.c
+ c264fda3bc20bcf38cc87c5880086123  gcc/testsuite/gcc.target/riscv/cv-simd-sdotsp-h-compile-1.c
+ 00a392366da92263fd87ce13af4143de  gcc/testsuite/gcc.target/riscv/cv-simd-sdotsp-sc-b-compile-1.c
+ b8ce5d4bb413e7edf1f7b8861c7e4af7  gcc/testsuite/gcc.target/riscv/cv-simd-sdotsp-sc-h-compile-1.c
+ bf316116e2dd8f5e4b8b7921ee7960cb  gcc/testsuite/gcc.target/riscv/cv-simd-sdotup-b-compile-1.c
+ 8ef7431f6f1f25b160daa4288487e51e  gcc/testsuite/gcc.target/riscv/cv-simd-sdotup-h-compile-1.c
+ 43a991440615fa3b7a600680264c1ba9  gcc/testsuite/gcc.target/riscv/cv-simd-sdotup-sc-b-compile-1.c
+ 295fc2a33a7f3c95d7b8267515720159  gcc/testsuite/gcc.target/riscv/cv-simd-sdotup-sc-h-compile-1.c
+ 334879ca9f6f4f6c2bbe023ee20c2351  gcc/testsuite/gcc.target/riscv/cv-simd-sdotusp-b-compile-1.c
+ 8400f0a20123c89457133b9751e8993e  gcc/testsuite/gcc.target/riscv/cv-simd-sdotusp-h-compile-1.c
+ 53a9d4b5c2bd19ae7ed05683e2ad6f3c  gcc/testsuite/gcc.target/riscv/cv-simd-sdotusp-sc-b-compile-1.c
+ db554597c04a9f499a11611f2f36d700  gcc/testsuite/gcc.target/riscv/cv-simd-sdotusp-sc-h-compile-1.c
+ 2954ad5fbb79fdf6a0a18cc58933fec2  gcc/testsuite/gcc.target/riscv/cv-simd-shuffle-sci-h-compile-1.c
+ 423fdeb68d2242fa8f6f7c06fe1ab5e4  gcc/testsuite/gcc.target/riscv/cv-simd-shuffle2-b-compile-1.c
+ 0daeaa8f9bd987aeeeaa288ed0926f0f  gcc/testsuite/gcc.target/riscv/cv-simd-shuffle2-h-compile-1.c
+ bff0bfbd2b36c5e4ba563c49c0cd3bb6  gcc/testsuite/gcc.target/riscv/cv-simd-shufflei0-sci-b-compile-1.c
+ 2ea8f48f835345b187dac0471cd25bde  gcc/testsuite/gcc.target/riscv/cv-simd-shufflei1-sci-b-compile-1.c
+ 90f365ceca88cddb3dcb50c2f780abdb  gcc/testsuite/gcc.target/riscv/cv-simd-shufflei2-sci-b-compile-1.c
+ b14109d42f8a2fbc97a84cce22157e85  gcc/testsuite/gcc.target/riscv/cv-simd-shufflei3-sci-b-compile-1.c
+ 5ad122a5a2cc0b449f4ea71ba4901312  gcc/testsuite/gcc.target/riscv/cv-simd-sll-b-compile-1.c
+ 358ef0f41bc26377530a22ce883070e6  gcc/testsuite/gcc.target/riscv/cv-simd-sll-h-compile-1.c
+ 91db2cfad0b407978dee7ec495f5f607  gcc/testsuite/gcc.target/riscv/cv-simd-sll-sc-b-compile-1.c
+ 767dddeeb16a94406f2830d90add2be9  gcc/testsuite/gcc.target/riscv/cv-simd-sll-sc-h-compile-1.c
+ 6e125fa365feac4771c22e462e5f469e  gcc/testsuite/gcc.target/riscv/cv-simd-sra-b-compile-1.c
+ 25bb1cc8bf96a01634cb4b082de7e1b2  gcc/testsuite/gcc.target/riscv/cv-simd-sra-h-compile-1.c
+ 389a647a86e4bdebf2f4daab517b9f6a  gcc/testsuite/gcc.target/riscv/cv-simd-sra-sc-b-compile-1.c
+ 0b0c5b90ed822c6721d93ddcd6558a87  gcc/testsuite/gcc.target/riscv/cv-simd-sra-sc-h-compile-1.c
+ 4f2a12c4b2f40faeece175be054005df  gcc/testsuite/gcc.target/riscv/cv-simd-srl-b-compile-1.c
+ 8df62bf265d7eaa72d5e7e6a865c4606  gcc/testsuite/gcc.target/riscv/cv-simd-srl-h-compile-1.c
+ ad2a2de6852d0ca8b0d6e8e5339e6887  gcc/testsuite/gcc.target/riscv/cv-simd-srl-sc-b-compile-1.c
+ 6a0c303696c350fb8449caa90e8d9fa7  gcc/testsuite/gcc.target/riscv/cv-simd-srl-sc-h-compile-1.c
+ dc72466de2c729da211180af53dbee67  gcc/testsuite/gcc.target/riscv/cv-simd-sub-b-compile-1.c
+ 591762f145e9414f50280bca7c31f866  gcc/testsuite/gcc.target/riscv/cv-simd-sub-div2-compile-1.c
+ 4234e4b130d305d81e774f07cc7eadb3  gcc/testsuite/gcc.target/riscv/cv-simd-sub-div4-compile-1.c
+ c886bb43f670c7d6767001c5cc9c325e  gcc/testsuite/gcc.target/riscv/cv-simd-sub-div8-compile-1.c
+ b1d0ead3814a2341e550dd95278f799e  gcc/testsuite/gcc.target/riscv/cv-simd-sub-h-compile-1.c
+ f07c1057fca04b71ca2ef5fbfc80f7c2  gcc/testsuite/gcc.target/riscv/cv-simd-sub-sc-b-compile-1.c
+ fe7b0d6a20bcf36ecad16f21e83f9bd1  gcc/testsuite/gcc.target/riscv/cv-simd-sub-sc-h-compile-1.c
+ 094c5c61bfd7e93eb1bd69bbaba7ccc6  gcc/testsuite/gcc.target/riscv/cv-simd-subrotmj-compile-1.c
+ 5a99cd95211c5a7d7b136761d7e3c777  gcc/testsuite/gcc.target/riscv/cv-simd-subrotmj-div2-compile-1.c
+ 6685142854fa6c7fc3deb0d13bfcef06  gcc/testsuite/gcc.target/riscv/cv-simd-subrotmj-div4-compile-1.c
+ 7f9cc06c5e9ca59022918699b8d169ed  gcc/testsuite/gcc.target/riscv/cv-simd-subrotmj-div8-compile-1.c
+ 3b44bb7d12c6515ae888f8db3c10fd5d  gcc/testsuite/gcc.target/riscv/cv-simd-xor-b-compile-1.c
+ ecd6e84eb56477df4903f802ee263ba9  gcc/testsuite/gcc.target/riscv/cv-simd-xor-h-compile-1.c
+ a4c468f0dabef5849f00b0ea4f2d7f34  gcc/testsuite/gcc.target/riscv/cv-simd-xor-sc-b-compile-1.c
+ 17b7c1576f018ab4efdccb6753514ad2  gcc/testsuite/gcc.target/riscv/cv-simd-xor-sc-h-compile-1.c
+ 32eaba242b02f0d41f419865f53ea9a3  gcc/testsuite/gcc.target/riscv/divmod-1.c
+ 563117792f9d6ea0cadd47fbafeed890  gcc/testsuite/gcc.target/riscv/divmod-2.c
  ac22a668a6627141957bbd3d791e4b02  gcc/testsuite/gcc.target/riscv/flattened-struct-abi-1.c
  62823213389acb5bfc34bf2e10ae7aa7  gcc/testsuite/gcc.target/riscv/flattened-struct-abi-2.c
! f18c900ab5f425fb7fc486d64b3648a7  gcc/testsuite/gcc.target/riscv/fle-ieee.c
! 1770a89c879c74b33660bd9f3c75e01b  gcc/testsuite/gcc.target/riscv/fle-snan.c
! bc0edb300cc2627d9e4c65db3c9e27b8  gcc/testsuite/gcc.target/riscv/fle.c
! 6a9a743b5028f6f201c3e9e9257463da  gcc/testsuite/gcc.target/riscv/flef-ieee.c
! c7c32cfde973c30526de62d0a6ccf4cf  gcc/testsuite/gcc.target/riscv/flef-snan.c
! 807636ce002524a616cf8c804eff6c5f  gcc/testsuite/gcc.target/riscv/flef.c
! 0f36041fe692d4fa9d3d0ebcdf18995f  gcc/testsuite/gcc.target/riscv/flt-ieee.c
! 70265956d46ef44060ce0d2e06b4042a  gcc/testsuite/gcc.target/riscv/flt-snan.c
  3c1632c9fd62717ee28fb27a41b0d7b9  gcc/testsuite/gcc.target/riscv/flt.c
! 3612ecd1ad6d7a0964b275658e15c897  gcc/testsuite/gcc.target/riscv/fltf-ieee.c
! 37ce8ab05e85b7a25ffe937e1abd4917  gcc/testsuite/gcc.target/riscv/fltf-snan.c
  c32704622e2680b1192e0934e1fe06a6  gcc/testsuite/gcc.target/riscv/fltf.c
  cce0f100408ab68657416ee6dff78afa  gcc/testsuite/gcc.target/riscv/fmax-snan.c
  c5fce1891bf87ad67a6990a0df33c336  gcc/testsuite/gcc.target/riscv/fmax.c
*************** bb144c34f5eab3757e03ae48e9aa39ed  gcc/te
*** 76525,76548 ****
  8f19287280703d530bf8cd8235403683  gcc/testsuite/gcc.target/riscv/fmin.c
  39c94afa2c5f88eda89da27eafffaab8  gcc/testsuite/gcc.target/riscv/fminf-snan.c
  9e42b582cd65d706a3bddf995fc48aa1  gcc/testsuite/gcc.target/riscv/fminf.c
  73183a94e6f0ef1913c6c0fc92c4e4b8  gcc/testsuite/gcc.target/riscv/inline-atomics-1.c
! 3f6a78f3f2ad61908b8c496b7e372967  gcc/testsuite/gcc.target/riscv/inline-atomics-2.c
! 6de28b3ad4828e0021e48de2e0771ed6  gcc/testsuite/gcc.target/riscv/inline-atomics-3.c
! e3767d2ba4d03c42dd7052b0e904d156  gcc/testsuite/gcc.target/riscv/inline-atomics-4.c
! 2745ef4212451048ad05fcafecab3913  gcc/testsuite/gcc.target/riscv/inline-atomics-5.c
! dd0bd8d15c211fdf58a84703be1ffbdb  gcc/testsuite/gcc.target/riscv/inline-atomics-6.c
! 716fdffb74ca1b615963188d156161dc  gcc/testsuite/gcc.target/riscv/inline-atomics-7.c
! 428f58197946d040c36457ebfdd0772a  gcc/testsuite/gcc.target/riscv/inline-atomics-8.c
! ebafbcb889d217f529a4a6f6ca558444  gcc/testsuite/gcc.target/riscv/interrupt-1.c
  9403cf8e7b3af27ece005e85c732a485  gcc/testsuite/gcc.target/riscv/interrupt-2.c
  2c4e63df0ea453e7839094f9d7beb67b  gcc/testsuite/gcc.target/riscv/interrupt-3.c
  8f051d0b3bea4d4fffe124ffc69cc499  gcc/testsuite/gcc.target/riscv/interrupt-4.c
  9123fc821c454516a841bd5d016f9f25  gcc/testsuite/gcc.target/riscv/interrupt-5.c
  9505a89fb61ad2da955a88ba280be95d  gcc/testsuite/gcc.target/riscv/interrupt-conflict-mode.c
  adbaeb88f854d032ccb024f677c39231  gcc/testsuite/gcc.target/riscv/interrupt-debug.c
! 2bf5aaa11450917f6c66b813b88df056  gcc/testsuite/gcc.target/riscv/interrupt-mmode.c
! e7e93d441684b5aaccb4b78191215f6d  gcc/testsuite/gcc.target/riscv/interrupt-smode.c
! 6a8b7e20145cdf60f298a2c4078d2a20  gcc/testsuite/gcc.target/riscv/interrupt-umode.c
  9ae56141fab814505fcf7366ef12db85  gcc/testsuite/gcc.target/riscv/li.c
  6308e09d3e5133433b97e26dcb02daba  gcc/testsuite/gcc.target/riscv/load-immediate.c
  7530069d23aa7990ff78ecce4ac40cae  gcc/testsuite/gcc.target/riscv/losum-overflow.c
--- 82505,82538 ----
  8f19287280703d530bf8cd8235403683  gcc/testsuite/gcc.target/riscv/fmin.c
  39c94afa2c5f88eda89da27eafffaab8  gcc/testsuite/gcc.target/riscv/fminf-snan.c
  9e42b582cd65d706a3bddf995fc48aa1  gcc/testsuite/gcc.target/riscv/fminf.c
+ 2d216f926f95d1287381cc3a356efca6  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-1.c
+ 9e174a10020bacb8dfe12a3a74abbbf6  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-2.c
+ 283a36ea2b27d4b3d5c343ac1a6c9a56  gcc/testsuite/gcc.target/riscv/fold-mem-offsets-3.c
+ cedad2f9b384500f9e940017126bf4b1  gcc/testsuite/gcc.target/riscv/fsflags.c
+ eaf46dc2abfb9500969790b031ffa83b  gcc/testsuite/gcc.target/riscv/gcse-const.c
  73183a94e6f0ef1913c6c0fc92c4e4b8  gcc/testsuite/gcc.target/riscv/inline-atomics-1.c
! 6b69f20f6fbdbf78681255b2dcac3932  gcc/testsuite/gcc.target/riscv/inline-atomics-2.c
! aeea4287f00bf622bcedbf5a392818f6  gcc/testsuite/gcc.target/riscv/inline-atomics-3.c
! 18c21c7138c5ae4039d879e65e53c652  gcc/testsuite/gcc.target/riscv/inline-atomics-4.c
! 2a60ec71c987cf76d815233349cc4a2c  gcc/testsuite/gcc.target/riscv/inline-atomics-5.c
! 25e6e132b3843134b9cd380cd75c716f  gcc/testsuite/gcc.target/riscv/inline-atomics-6.c
! 13d27f37fd62485841061fa41f07a4f5  gcc/testsuite/gcc.target/riscv/inline-atomics-7.c
! 3bb425093bebf813ad6d29d1cb26ae98  gcc/testsuite/gcc.target/riscv/inline-atomics-8.c
! 9457128494b7b1a8b8813db1a4b3562a  gcc/testsuite/gcc.target/riscv/interrupt-1.c
  9403cf8e7b3af27ece005e85c732a485  gcc/testsuite/gcc.target/riscv/interrupt-2.c
  2c4e63df0ea453e7839094f9d7beb67b  gcc/testsuite/gcc.target/riscv/interrupt-3.c
  8f051d0b3bea4d4fffe124ffc69cc499  gcc/testsuite/gcc.target/riscv/interrupt-4.c
  9123fc821c454516a841bd5d016f9f25  gcc/testsuite/gcc.target/riscv/interrupt-5.c
  9505a89fb61ad2da955a88ba280be95d  gcc/testsuite/gcc.target/riscv/interrupt-conflict-mode.c
  adbaeb88f854d032ccb024f677c39231  gcc/testsuite/gcc.target/riscv/interrupt-debug.c
! c7ca14eb060960c19c3fd942f85d5fe3  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-1.c
! c36c6439efa266a1451a2f487ec7e09b  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-2.c
! 57f649a10ed040fea307c1dff4e5f1c7  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-3.c
! 42c5fbcc94e57b4d8cc1470bc42dc082  gcc/testsuite/gcc.target/riscv/interrupt-misaligned.c
! a0ec9e9b1278bec59b5f6fb4473ae0be  gcc/testsuite/gcc.target/riscv/interrupt-mmode.c
! 756572791a9293ef57d0855c156c1c04  gcc/testsuite/gcc.target/riscv/interrupt-smode.c
! 1cc7f11cb8b3790c544cfd62150e6d44  gcc/testsuite/gcc.target/riscv/interrupt-umode.c
! 5a952795f5acc3358e23e73cd8510434  gcc/testsuite/gcc.target/riscv/large-model.c
  9ae56141fab814505fcf7366ef12db85  gcc/testsuite/gcc.target/riscv/li.c
  6308e09d3e5133433b97e26dcb02daba  gcc/testsuite/gcc.target/riscv/load-immediate.c
  7530069d23aa7990ff78ecce4ac40cae  gcc/testsuite/gcc.target/riscv/losum-overflow.c
*************** e7e93d441684b5aaccb4b78191215f6d  gcc/te
*** 76553,76572 ****
  efcb2d5344bde460bcbee76b9e33c09d  gcc/testsuite/gcc.target/riscv/mcpu-5.c
  e20585893ea69038755bd9bf2baa0622  gcc/testsuite/gcc.target/riscv/mcpu-6.c
  5a433cb606f15a057de6b4d95a40169d  gcc/testsuite/gcc.target/riscv/mcpu-7.c
  d66b77cd3223498c6e933305c7a7ca13  gcc/testsuite/gcc.target/riscv/mcpu-thead-c906.c
! 9188465f5f69f5d38067c08a962f52f2  gcc/testsuite/gcc.target/riscv/pr102957.c
  c70df77dca2d9d059e9b22e279613d45  gcc/testsuite/gcc.target/riscv/pr103302.c
  78659ffafd452ac6a43859083b99d8ae  gcc/testsuite/gcc.target/riscv/pr104140.c
! 62fc13de2a3248454aa1c822e4421155  gcc/testsuite/gcc.target/riscv/pr105314.c
  488d01f6a52c713a85a02ef3f9147fe8  gcc/testsuite/gcc.target/riscv/pr105666.c
  e2d715acc45ff1c4de4202ff85ed13eb  gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c
  a4140e65ee8a24c14a0a9a63e5f92a62  gcc/testsuite/gcc.target/riscv/pr106602-rv64i.c
  fd454cbbc31e7c4bb8e24d07543b8255  gcc/testsuite/gcc.target/riscv/pr106602-rv64i_zba.c
  ec6ec43c9e76076efb0caf7fd6975bd5  gcc/testsuite/gcc.target/riscv/pr107786-2.c
  5201d6361bb5315fd35a51ff807d7115  gcc/testsuite/gcc.target/riscv/pr107786.c
! d84dbc7cecc66316cc6e095e4da62b30  gcc/testsuite/gcc.target/riscv/pr108987.c
  2dff48c2cbadd1b5f5afb4808e4eadff  gcc/testsuite/gcc.target/riscv/pr109508.c
  10400130cc47973d43925669f3c795ed  gcc/testsuite/gcc.target/riscv/pr84660.c
  287e116d84e5eca39a410aca336f89b1  gcc/testsuite/gcc.target/riscv/pr93202.c
  01c8227bf1b5efa52e434a407c33930d  gcc/testsuite/gcc.target/riscv/pr93304.c
  f95453a04d25316c015010a3d66699b8  gcc/testsuite/gcc.target/riscv/pr95252.c
--- 82543,82864 ----
  efcb2d5344bde460bcbee76b9e33c09d  gcc/testsuite/gcc.target/riscv/mcpu-5.c
  e20585893ea69038755bd9bf2baa0622  gcc/testsuite/gcc.target/riscv/mcpu-6.c
  5a433cb606f15a057de6b4d95a40169d  gcc/testsuite/gcc.target/riscv/mcpu-7.c
+ 5159d9e2aee2c7fa385187b01c43e187  gcc/testsuite/gcc.target/riscv/mcpu-sifive-p450.c
+ 11dd7483f027ab8263d3f7bf312bc40f  gcc/testsuite/gcc.target/riscv/mcpu-sifive-p670.c
+ 0f7ebc2d65ebdb64c7b00775db650cdd  gcc/testsuite/gcc.target/riscv/mcpu-sifive-x280.c
  d66b77cd3223498c6e933305c7a7ca13  gcc/testsuite/gcc.target/riscv/mcpu-thead-c906.c
! 3192b05c9bd8ba1ec8d20df30782404f  gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-nanhu.c
! ec03a01a1787f67f3d9feb5acba7fd89  gcc/testsuite/gcc.target/riscv/mode-switch-ice-1.c
! 6f0bbad46acffcf1c9d4ae4c73e902be  gcc/testsuite/gcc.target/riscv/movdibeq-thead.c
! df961ad8448df24ab19affcee78c7355  gcc/testsuite/gcc.target/riscv/movdibeq-ventana.c
! 16d9f58bbb7b8b87f35d08acaaa57015  gcc/testsuite/gcc.target/riscv/movdibeq-zicond.c
! 81fd8438f3ecb24aa912bb12d46a160b  gcc/testsuite/gcc.target/riscv/movdibeq.c
! 3580d99d7bbffe3f4a5782979f04c866  gcc/testsuite/gcc.target/riscv/movdibfeq-ventana.c
! 479140fc1968055342e9cb992348cb41  gcc/testsuite/gcc.target/riscv/movdibfeq-zicond.c
! 0cbde95300456c6430a092c26c6ef9f1  gcc/testsuite/gcc.target/riscv/movdibfeq.c
! dd5df9f80af14e711e61bc48fd0c7fb4  gcc/testsuite/gcc.target/riscv/movdibfge-ventana.c
! 0ecff1e694d3ecbe3cac347e39915c45  gcc/testsuite/gcc.target/riscv/movdibfge-zicond.c
! 1210520e4d696350d754580c68ea7f8b  gcc/testsuite/gcc.target/riscv/movdibfge.c
! 6aac11ce8b2fa4e8991d56ad21c41fd8  gcc/testsuite/gcc.target/riscv/movdibfgt-ventana.c
! 841254cc91361f11fc9a9c1bedc7d28e  gcc/testsuite/gcc.target/riscv/movdibfgt-zicond.c
! 93c020783978c3fc9b22b2000621d6f8  gcc/testsuite/gcc.target/riscv/movdibfgt.c
! 2a91ec52fc514d40618cd633a5c44cfc  gcc/testsuite/gcc.target/riscv/movdibfle-ventana.c
! 9c64ecc8786586b8bccce3d986ea5232  gcc/testsuite/gcc.target/riscv/movdibfle-zicond.c
! ddc192e2191b7111b586ffadc45787db  gcc/testsuite/gcc.target/riscv/movdibfle.c
! 585d9117a7ab780979ff00e8da92f2f7  gcc/testsuite/gcc.target/riscv/movdibflt-ventana.c
! 55b789128a46d28c689d49fb59303b2a  gcc/testsuite/gcc.target/riscv/movdibflt-zicond.c
! a02bf0f67b726cf4586317fbb8d715b4  gcc/testsuite/gcc.target/riscv/movdibflt.c
! 0b5881a817ad27d2979b4654061142a7  gcc/testsuite/gcc.target/riscv/movdibfne-ventana.c
! 97b3a75339177136372b69527ad96307  gcc/testsuite/gcc.target/riscv/movdibfne-zicond.c
! dbb46db683e31795ae35700777b7b287  gcc/testsuite/gcc.target/riscv/movdibfne.c
! b920028c766cc0a8bf3b1b21b0fa7e31  gcc/testsuite/gcc.target/riscv/movdibge-thead.c
! 20cdfc196bd5873fcdb3e16069f54c27  gcc/testsuite/gcc.target/riscv/movdibge-ventana.c
! 3f3560beed32b3cecc330c5c798ab0fd  gcc/testsuite/gcc.target/riscv/movdibge-zicond.c
! 7619b8939c75205bcb30f5e4ee2e0ea3  gcc/testsuite/gcc.target/riscv/movdibge.c
! 62d112dd4903e82fd48ab0d1b3168e2b  gcc/testsuite/gcc.target/riscv/movdibgeu-thead.c
! 8b8c4c821363fad9dfd3c1cab4acba01  gcc/testsuite/gcc.target/riscv/movdibgeu-ventana.c
! e0a81d7fcda8948801b39723e3bf74e1  gcc/testsuite/gcc.target/riscv/movdibgeu-zicond.c
! 272b2588ae8ed644e6d74b0b61f6cc75  gcc/testsuite/gcc.target/riscv/movdibgeu.c
! 27a5cd318162557666dda8f002210a2a  gcc/testsuite/gcc.target/riscv/movdibgt-thead.c
! 1a4009286d638c03d691f25b6bacaccf  gcc/testsuite/gcc.target/riscv/movdibgt-ventana.c
! f0c5033a0d543f3e66ae1210e745fbaf  gcc/testsuite/gcc.target/riscv/movdibgt-zicond.c
! 4ea25ab3d61e0fe1b6f1745b5bf4dccd  gcc/testsuite/gcc.target/riscv/movdibgt.c
! d0a39392d45bd2ac94f52be52dd84aa6  gcc/testsuite/gcc.target/riscv/movdibgtu-thead.c
! 34efdc1bc04918b742c3c800ef75cad2  gcc/testsuite/gcc.target/riscv/movdibgtu-ventana.c
! 0a250acade51476a8136db7a65486a26  gcc/testsuite/gcc.target/riscv/movdibgtu-zicond.c
! d242284a10e5b8131ed6f78d4ec9aaba  gcc/testsuite/gcc.target/riscv/movdibgtu.c
! a8ef2a8b7a209c914b28b87b444dfec6  gcc/testsuite/gcc.target/riscv/movdible-thead.c
! 7168a3a87132629b42f059dc17cda5ae  gcc/testsuite/gcc.target/riscv/movdible-ventana.c
! 61c2fcf678ad89a877b473e58d6690ca  gcc/testsuite/gcc.target/riscv/movdible-zicond.c
! eea20e8b5cf1720fc7942f3899f48dbf  gcc/testsuite/gcc.target/riscv/movdible.c
! 8788a8fba3937aa99426763c5c89af3c  gcc/testsuite/gcc.target/riscv/movdibleu-thead.c
! b2f5a505f847b8a4cd0506999e5226e2  gcc/testsuite/gcc.target/riscv/movdibleu-ventana.c
! fee6577bfcc13f195b42772b477dfd22  gcc/testsuite/gcc.target/riscv/movdibleu-zicond.c
! aada56ce11edf88feec6c796c2037ead  gcc/testsuite/gcc.target/riscv/movdibleu.c
! c2393650d4bc1552dcdbcf7dc2d6a41f  gcc/testsuite/gcc.target/riscv/movdiblt-thead.c
! 901ee4d7b01da738d30f687ec6e1252a  gcc/testsuite/gcc.target/riscv/movdiblt-ventana.c
! 59a714df13dfa93c30f0d323faa72d1f  gcc/testsuite/gcc.target/riscv/movdiblt-zicond.c
! 0d7984ab0540d499b22fff85b101520b  gcc/testsuite/gcc.target/riscv/movdiblt.c
! 198aa2e6fd751f6550f0a84370d98d6f  gcc/testsuite/gcc.target/riscv/movdibltu-thead.c
! cc390251c028abae797df3a5a71877b1  gcc/testsuite/gcc.target/riscv/movdibltu-ventana.c
! 016a917111a838a58d7ccead9fa7567e  gcc/testsuite/gcc.target/riscv/movdibltu-zicond.c
! 5d2ec331e7d734f9cc56bdb528acf270  gcc/testsuite/gcc.target/riscv/movdibltu.c
! 2c35bf6e106d1c8f9c8362ae8c1b2f0e  gcc/testsuite/gcc.target/riscv/movdibne-thead.c
! 28f8e12e63f62a4ad63975a25c65e1a9  gcc/testsuite/gcc.target/riscv/movdibne-ventana.c
! 3a39506bd5d62932c5e31ec54ad455ac  gcc/testsuite/gcc.target/riscv/movdibne-zicond.c
! 43f16d96ec185bdfa2fb010111e77906  gcc/testsuite/gcc.target/riscv/movdibne.c
! 03b4b2cedd395b8e8261648c5d9f1d3a  gcc/testsuite/gcc.target/riscv/movdieq-sfb.c
! beec45f5d2f569d5a864b4b76debfe3d  gcc/testsuite/gcc.target/riscv/movdieq-thead.c
! 271cbd94051996280aca9665557f0d75  gcc/testsuite/gcc.target/riscv/movdieq-ventana.c
! 30a3debeab389f45b68934fd72555019  gcc/testsuite/gcc.target/riscv/movdieq-zicond.c
! 27f7e760e78fb68b37f09ce3511e9d89  gcc/testsuite/gcc.target/riscv/movdieq.c
! 00761dfef47970a0deb9b814d0642779  gcc/testsuite/gcc.target/riscv/movdifeq-sfb.c
! 7426c5919958c049aa976bed4d536e0a  gcc/testsuite/gcc.target/riscv/movdifeq-thead.c
! 60c38ea4b2b0f8f8d2d22e0c666b6b06  gcc/testsuite/gcc.target/riscv/movdifeq-ventana.c
! d6e5d23428d95a09a587bdf5c957460d  gcc/testsuite/gcc.target/riscv/movdifeq-zicond.c
! 01549f603f0c0e18feec62d5b8a36eb6  gcc/testsuite/gcc.target/riscv/movdifeq.c
! 906ad13a43646ef3ec82dfd8351b8c83  gcc/testsuite/gcc.target/riscv/movdifge-sfb.c
! ba8c8703590a212f65a6d8b6962a1ef7  gcc/testsuite/gcc.target/riscv/movdifge-thead.c
! b8e5ee5c7c8bdf09cc7f94ec826eaf36  gcc/testsuite/gcc.target/riscv/movdifge-ventana.c
! 76c3d1304c477e30275de39677034945  gcc/testsuite/gcc.target/riscv/movdifge-zicond.c
! 5bcf9bbb954830289d0e4635500697aa  gcc/testsuite/gcc.target/riscv/movdifge.c
! 93f9cf86764f92897729f4a442b27df5  gcc/testsuite/gcc.target/riscv/movdifgt-sfb.c
! 116e34be0ea0b761299327a14d73ebfc  gcc/testsuite/gcc.target/riscv/movdifgt-thead.c
! fe9d6079644b05d8d0bfd1cd576fe160  gcc/testsuite/gcc.target/riscv/movdifgt-ventana.c
! 2ab79754dac00488a99730de25696468  gcc/testsuite/gcc.target/riscv/movdifgt-zicond.c
! 147353a551f255ff3c7aee2268f1bf1b  gcc/testsuite/gcc.target/riscv/movdifgt.c
! 66e1e5e57659b24bee840f276f4d0eff  gcc/testsuite/gcc.target/riscv/movdifle-sfb.c
! bec6f793b00105276cb457021b1568d7  gcc/testsuite/gcc.target/riscv/movdifle-thead.c
! f6274ef0865c1c9abf7daac8870d242c  gcc/testsuite/gcc.target/riscv/movdifle-ventana.c
! 45e78ac6f9062135935ffd03cd4b5b72  gcc/testsuite/gcc.target/riscv/movdifle-zicond.c
! f782d4e6324a449c10ab09447af52c26  gcc/testsuite/gcc.target/riscv/movdifle.c
! 19200da86ca1e85c223e36729ca33c3a  gcc/testsuite/gcc.target/riscv/movdiflt-sfb.c
! 3fc5e5bfae13b6b9f83bd670e53b7011  gcc/testsuite/gcc.target/riscv/movdiflt-thead.c
! 5fbf4cc13f3f54c4c9bd112b6343bd3d  gcc/testsuite/gcc.target/riscv/movdiflt-ventana.c
! 05ea62543cbd9a1b6c8ac53f4a719f15  gcc/testsuite/gcc.target/riscv/movdiflt-zicond.c
! 17082863608e8dad3be7d793d6ced607  gcc/testsuite/gcc.target/riscv/movdiflt.c
! cdc1e9f27dbc43370defab5c50b5a5c4  gcc/testsuite/gcc.target/riscv/movdifne-sfb.c
! ddf429b61f10ff3f38d88477b10e0093  gcc/testsuite/gcc.target/riscv/movdifne-thead.c
! 84720e645eb306d160e8554f4375fa23  gcc/testsuite/gcc.target/riscv/movdifne-ventana.c
! 48c862932ba9e954ac72c33d98314a3d  gcc/testsuite/gcc.target/riscv/movdifne-zicond.c
! 23031dd7643f7351a73a981e0272dcbf  gcc/testsuite/gcc.target/riscv/movdifne.c
! 3b9e874ed2d5b1d34fe46c3de43e4538  gcc/testsuite/gcc.target/riscv/movdige-sfb.c
! 9513e183213785029c9b10ecd608e833  gcc/testsuite/gcc.target/riscv/movdige-thead.c
! 4b5381258175233f516e4f0c9dee0c4e  gcc/testsuite/gcc.target/riscv/movdige-ventana.c
! 1974c383f5f700c136a4ca0341dbdd0e  gcc/testsuite/gcc.target/riscv/movdige-zicond.c
! 2d5e72a7b29ccbc9d6bb0d6bc1dd6e49  gcc/testsuite/gcc.target/riscv/movdige.c
! a22d2ce4aa372e53573384fb9b04a01a  gcc/testsuite/gcc.target/riscv/movdigeu-sfb.c
! 1bb90ed015a986acb92c1808152fb0f7  gcc/testsuite/gcc.target/riscv/movdigeu-thead.c
! ed8658b78aa2918bfaffaf0126186a45  gcc/testsuite/gcc.target/riscv/movdigeu-ventana.c
! 6259fba3c40b74a75163ea2fc3a2f208  gcc/testsuite/gcc.target/riscv/movdigeu-zicond.c
! 51a4e1b52b6733b40033594b5d8bf974  gcc/testsuite/gcc.target/riscv/movdigeu.c
! f32e3b15dcbb04852b50e7acd9b453e4  gcc/testsuite/gcc.target/riscv/movdigt-sfb.c
! 3b44ca54e6f3793aab56bc1920021b7c  gcc/testsuite/gcc.target/riscv/movdigt-thead.c
! a103904ae79a0500453df4bb85c143ed  gcc/testsuite/gcc.target/riscv/movdigt-ventana.c
! 312a9de5c35606c31b32a2353830aa72  gcc/testsuite/gcc.target/riscv/movdigt-zicond.c
! 5af12e219af44a706475194bd2fc2210  gcc/testsuite/gcc.target/riscv/movdigt.c
! 23646a5d7fad8efc04c59835771821b2  gcc/testsuite/gcc.target/riscv/movdigtu-sfb.c
! ea72d2e0b2bff6b93200b10174f75c97  gcc/testsuite/gcc.target/riscv/movdigtu-thead.c
! 32d428989efa80ca816c3d3534e8e43f  gcc/testsuite/gcc.target/riscv/movdigtu-ventana.c
! a1700a58697655bede9646ea5dab29a7  gcc/testsuite/gcc.target/riscv/movdigtu-zicond.c
! 549bfd645bbe1aa6e16c8376391995f1  gcc/testsuite/gcc.target/riscv/movdigtu.c
! a57d4908be4cfa9e546c6177d5895e58  gcc/testsuite/gcc.target/riscv/movdile-sfb.c
! 2cbe8e2c8f9c13a5501a66bb59f89ba6  gcc/testsuite/gcc.target/riscv/movdile-thead.c
! a29f4817c34faa34af75516ac21e41d6  gcc/testsuite/gcc.target/riscv/movdile-ventana.c
! 1ec002e9036f2bfede6d9597d14c84cd  gcc/testsuite/gcc.target/riscv/movdile-zicond.c
! 310834405d4344b813eb5104008fdb37  gcc/testsuite/gcc.target/riscv/movdile.c
! fb9b7e7c64a6c9459c96496b1710023c  gcc/testsuite/gcc.target/riscv/movdileu-sfb.c
! cded6abdb8f0d07fffb46dbe4ceeae02  gcc/testsuite/gcc.target/riscv/movdileu-thead.c
! 63577849938470e43cc06d9876a442ad  gcc/testsuite/gcc.target/riscv/movdileu-ventana.c
! c6c834c9ccaf4b94d6fe4d054e5f4c7e  gcc/testsuite/gcc.target/riscv/movdileu-zicond.c
! aff91dced2982f2a63152f14618ba0c0  gcc/testsuite/gcc.target/riscv/movdileu.c
! b5b205ccdf7dc896861fbf062e7a365f  gcc/testsuite/gcc.target/riscv/movdilt-sfb.c
! 3ba68e8c227cab686a205564d66bb63e  gcc/testsuite/gcc.target/riscv/movdilt-thead.c
! e578bc8487439b218f3e08b5e45a1fd6  gcc/testsuite/gcc.target/riscv/movdilt-ventana.c
! c7052710c1b3b6050508182cc0aa77d9  gcc/testsuite/gcc.target/riscv/movdilt-zicond.c
! abc376851650ccf4a457e534b0ebdb18  gcc/testsuite/gcc.target/riscv/movdilt.c
! f1f0f5a32aed441dbb23dfed2bf47a90  gcc/testsuite/gcc.target/riscv/movdiltu-sfb.c
! 5740514990d7d998eabbe689fe1db6d5  gcc/testsuite/gcc.target/riscv/movdiltu-thead.c
! 8a5d731e4b45f40f5ab5f552371a8118  gcc/testsuite/gcc.target/riscv/movdiltu-ventana.c
! ebe568208aee643339fd6d2ddcb42bac  gcc/testsuite/gcc.target/riscv/movdiltu-zicond.c
! de07f3e99517c7dc53743301932992e7  gcc/testsuite/gcc.target/riscv/movdiltu.c
! 5cf9d2f8c4703cb8df9af88305f1a212  gcc/testsuite/gcc.target/riscv/movdine-sfb.c
! 53015db5b86bdeb00bd4f252d15ece8b  gcc/testsuite/gcc.target/riscv/movdine-thead.c
! d6f81ef9e309e0c036cd5de8ec615f33  gcc/testsuite/gcc.target/riscv/movdine-ventana.c
! fd5611be542b52e9175b471f2cf9a695  gcc/testsuite/gcc.target/riscv/movdine-zicond.c
! e81b9e401f34e4b0d48235c18dda6e4f  gcc/testsuite/gcc.target/riscv/movdine.c
! 2ba3f3717af31692133d603c40b102b5  gcc/testsuite/gcc.target/riscv/movsibeq-thead.c
! aae43785991bbcf2e24cc57220721313  gcc/testsuite/gcc.target/riscv/movsibeq-ventana.c
! d521221db41ee8dae67e8696c2870733  gcc/testsuite/gcc.target/riscv/movsibeq-zicond.c
! 3ff6347d468da3a9de20bbb54475735d  gcc/testsuite/gcc.target/riscv/movsibeq.c
! c1120e577fde375569db2ebadc9469d6  gcc/testsuite/gcc.target/riscv/movsibfeq-ventana.c
! 072b07643c970d1ba2f6ab35f619b808  gcc/testsuite/gcc.target/riscv/movsibfeq-zicond.c
! d56dc8849c55cc471e0e77279c9ee8f2  gcc/testsuite/gcc.target/riscv/movsibfeq.c
! 28dfb90a348e1e8ccb3207c61fcdf11f  gcc/testsuite/gcc.target/riscv/movsibfge-ventana.c
! 7d6f604bea5da043bfa5f63aa5d645fd  gcc/testsuite/gcc.target/riscv/movsibfge-zicond.c
! 550fc9fb4d08adadff2bf614cabee4cc  gcc/testsuite/gcc.target/riscv/movsibfge.c
! 5e66d9be04f18c68d3c386e96b948ecf  gcc/testsuite/gcc.target/riscv/movsibfgt-ventana.c
! c8bb575755057cff36703ddfaf611f21  gcc/testsuite/gcc.target/riscv/movsibfgt-zicond.c
! a26271c2b14acd121e6d91f4db1283f7  gcc/testsuite/gcc.target/riscv/movsibfgt.c
! 05d15aa11f384d876296ad98b03330eb  gcc/testsuite/gcc.target/riscv/movsibfle-ventana.c
! 5f819c84f823bfc9742d51b209eff681  gcc/testsuite/gcc.target/riscv/movsibfle-zicond.c
! ed2355c3a0c8c07bf804d14c60b04a97  gcc/testsuite/gcc.target/riscv/movsibfle.c
! a9aa69b580d75dc23eaf6556b1e33dd4  gcc/testsuite/gcc.target/riscv/movsibflt-ventana.c
! 188d4aebc4aa72ad83aed4dded51ce7e  gcc/testsuite/gcc.target/riscv/movsibflt-zicond.c
! 04966f1e55f8bc5c2e090167f1d087b8  gcc/testsuite/gcc.target/riscv/movsibflt.c
! a1bdb908bfa0b7e57fd9e65a772945cb  gcc/testsuite/gcc.target/riscv/movsibfne-ventana.c
! d957f544716acc0acc26bacc55c1d40e  gcc/testsuite/gcc.target/riscv/movsibfne-zicond.c
! a0c8462d4751cee99a5b092b32afc75f  gcc/testsuite/gcc.target/riscv/movsibfne.c
! d064d89f4ee334399c8df311b6048b61  gcc/testsuite/gcc.target/riscv/movsibge-thead.c
! a111a09e35cead3964ee9f61f7d1e445  gcc/testsuite/gcc.target/riscv/movsibge-ventana.c
! 201c48d30fe3c5b79f151dcc0a3d42f0  gcc/testsuite/gcc.target/riscv/movsibge-zicond.c
! 78e80be356c8d2da3750f02caf1648a9  gcc/testsuite/gcc.target/riscv/movsibge.c
! 6762c4106f02f100f930ee3b791792aa  gcc/testsuite/gcc.target/riscv/movsibgeu-thead.c
! 201fb8c58447d71c874213c9c07a8f56  gcc/testsuite/gcc.target/riscv/movsibgeu-ventana.c
! 57d248e01f8c4bb28cb5c956229c55c8  gcc/testsuite/gcc.target/riscv/movsibgeu-zicond.c
! 9f6e44827c376769c25c69d66e4d095f  gcc/testsuite/gcc.target/riscv/movsibgeu.c
! 650e971849e47f20bf1ffaf9f215e35d  gcc/testsuite/gcc.target/riscv/movsibgt-thead.c
! 05d0ec5b907a6a4cfd7dc648537c115d  gcc/testsuite/gcc.target/riscv/movsibgt-ventana.c
! 091ac4153679ec6dd143673b341dcdb3  gcc/testsuite/gcc.target/riscv/movsibgt-zicond.c
! ea71f0de536460db7399741032c53f90  gcc/testsuite/gcc.target/riscv/movsibgt.c
! bb56cd50d0fb4506a617f1b53f0d0ab1  gcc/testsuite/gcc.target/riscv/movsibgtu-thead.c
! 8a9b80897ca03c6810d92c9848f528e8  gcc/testsuite/gcc.target/riscv/movsibgtu-ventana.c
! b6607ee42c786c82b43b38141aea6992  gcc/testsuite/gcc.target/riscv/movsibgtu-zicond.c
! 8e6a099073498b9821355aa7f193338a  gcc/testsuite/gcc.target/riscv/movsibgtu.c
! 43c65b7ef6646af6ca00af3eaa64b011  gcc/testsuite/gcc.target/riscv/movsible-thead.c
! 0484d28cdc10246aee93cd9d1c7b6921  gcc/testsuite/gcc.target/riscv/movsible-ventana.c
! a0f705dcb1a7c1d9fe569a452cb22085  gcc/testsuite/gcc.target/riscv/movsible-zicond.c
! 37a64b69ac9e03381c77efc90355efbb  gcc/testsuite/gcc.target/riscv/movsible.c
! 197f036e65ee594b25ea9d147b438114  gcc/testsuite/gcc.target/riscv/movsibleu-thead.c
! a561a734459f506e939b35367baa2959  gcc/testsuite/gcc.target/riscv/movsibleu-ventana.c
! 4e323bcfcb5894f0fdd8bc021a57c72f  gcc/testsuite/gcc.target/riscv/movsibleu-zicond.c
! d91211b3bd4517b699b41aa5638d33f1  gcc/testsuite/gcc.target/riscv/movsibleu.c
! a627b44d9999b74dec52da8abc9f3df9  gcc/testsuite/gcc.target/riscv/movsiblt-thead.c
! 5a4c6c5c5d7b084a3b3c734e6c3b1c16  gcc/testsuite/gcc.target/riscv/movsiblt-ventana.c
! c46dccb5b794724525d7a28974ddf84a  gcc/testsuite/gcc.target/riscv/movsiblt-zicond.c
! 45ec535d11374df228a07e9d49641f86  gcc/testsuite/gcc.target/riscv/movsiblt.c
! 35e40ffae8d7d79aea46975fe3776a38  gcc/testsuite/gcc.target/riscv/movsibltu-thead.c
! 663a6c5de20c1bd7cc36569d13430127  gcc/testsuite/gcc.target/riscv/movsibltu-ventana.c
! fec2e41c69146afb9931e9e4790815ac  gcc/testsuite/gcc.target/riscv/movsibltu-zicond.c
! dca530a29e0019cf2e455818473a8a96  gcc/testsuite/gcc.target/riscv/movsibltu.c
! 0e3abe70f25d1425e6f535c5bbe96a1b  gcc/testsuite/gcc.target/riscv/movsibne-thead.c
! 52a0fc03d32b67e6061f2e6481190f25  gcc/testsuite/gcc.target/riscv/movsibne-ventana.c
! c3d7327ff099a4cbafbdd629dc33e088  gcc/testsuite/gcc.target/riscv/movsibne-zicond.c
! 743197e59cc7b101e74e1b05150abada  gcc/testsuite/gcc.target/riscv/movsibne.c
! c6b123aa70c31062c6e85b5455e1bf50  gcc/testsuite/gcc.target/riscv/movsieq-sfb.c
! cb3aac08634049421bc28cd170648cf0  gcc/testsuite/gcc.target/riscv/movsieq-thead.c
! d7b26354c5599ab778fdddb304a9ec97  gcc/testsuite/gcc.target/riscv/movsieq-ventana.c
! c05de17cd35ca846eff65ace7b445213  gcc/testsuite/gcc.target/riscv/movsieq-zicond.c
! 306de19e06fea81c8614fbd3668a279c  gcc/testsuite/gcc.target/riscv/movsieq.c
! 826f54239cf064dc189d40a380abf824  gcc/testsuite/gcc.target/riscv/movsifeq-sfb.c
! 4a27b027877ced7d9fb544489802fd7b  gcc/testsuite/gcc.target/riscv/movsifeq-thead.c
! 0a54500fdbb3b3aeda9a79699872b366  gcc/testsuite/gcc.target/riscv/movsifeq-ventana.c
! f267c4894f6a51dc6ba17c30c6d5dc75  gcc/testsuite/gcc.target/riscv/movsifeq-zicond.c
! 8f40aeebd1708e04cec70a88c1d32a6c  gcc/testsuite/gcc.target/riscv/movsifeq.c
! 0aa262bb109660853c9a5930c3630905  gcc/testsuite/gcc.target/riscv/movsifge-sfb.c
! 9f994e1dd2a88570d3a2541897fd350c  gcc/testsuite/gcc.target/riscv/movsifge-thead.c
! 55324731211e9ef084bb366783edbd9e  gcc/testsuite/gcc.target/riscv/movsifge-ventana.c
! 726e93b923598b2d1171953ec56522a9  gcc/testsuite/gcc.target/riscv/movsifge-zicond.c
! a960a34bb52e8b601a5a2cdbd13f4cbe  gcc/testsuite/gcc.target/riscv/movsifge.c
! f3d6890cd7694e4ea38a6683e6102a95  gcc/testsuite/gcc.target/riscv/movsifgt-sfb.c
! 6487c6939fe5f09a71a489e98fa6fb90  gcc/testsuite/gcc.target/riscv/movsifgt-thead.c
! 574369a1677e84c1cdaf3f5777c09f7a  gcc/testsuite/gcc.target/riscv/movsifgt-ventana.c
! 06aeb1e50844a16b4ce6fe19ea34664f  gcc/testsuite/gcc.target/riscv/movsifgt-zicond.c
! 9af4426643cc353936a6a332b402e085  gcc/testsuite/gcc.target/riscv/movsifgt.c
! 7ea6989e5bdbe8d4ece0c2f1049b6733  gcc/testsuite/gcc.target/riscv/movsifle-sfb.c
! 4fbfee7373af0031ea05cbcd57c9fff6  gcc/testsuite/gcc.target/riscv/movsifle-thead.c
! 43fabdddc5aeb7e9595c1032b48f8147  gcc/testsuite/gcc.target/riscv/movsifle-ventana.c
! cb8a964028ab09d8afac76d67b0e8e8b  gcc/testsuite/gcc.target/riscv/movsifle-zicond.c
! 48364bc2a318da4acf4eeffe4625a834  gcc/testsuite/gcc.target/riscv/movsifle.c
! 42000026cde28443d007a4e5ac55b98b  gcc/testsuite/gcc.target/riscv/movsiflt-sfb.c
! 4640c5f23cc13c03516932739c11f456  gcc/testsuite/gcc.target/riscv/movsiflt-thead.c
! df88c8e2960ddcf54a43282e84deaf39  gcc/testsuite/gcc.target/riscv/movsiflt-ventana.c
! c415436701988065803a0b64cc895ab9  gcc/testsuite/gcc.target/riscv/movsiflt-zicond.c
! edc338197b361fe9593a12dcec661589  gcc/testsuite/gcc.target/riscv/movsiflt.c
! b83795d094ce4f5a88af6109122f1c83  gcc/testsuite/gcc.target/riscv/movsifne-sfb.c
! a0d00e53d4d43420543b1e7b82141e42  gcc/testsuite/gcc.target/riscv/movsifne-thead.c
! 7a46337050af6855a26c1b425ec91379  gcc/testsuite/gcc.target/riscv/movsifne-ventana.c
! b5d8160c4ef9b8dd0caf535446e8b9ef  gcc/testsuite/gcc.target/riscv/movsifne-zicond.c
! b52940e727c905cf713fdf559871c6d9  gcc/testsuite/gcc.target/riscv/movsifne.c
! 6a0525837e017777ede55bfa4b00fb2e  gcc/testsuite/gcc.target/riscv/movsige-sfb.c
! 486500b42a2c23741291d04f02a74527  gcc/testsuite/gcc.target/riscv/movsige-thead.c
! 5540d73a7ff68024614e6d3a5ce87725  gcc/testsuite/gcc.target/riscv/movsige-ventana.c
! cf7e06facbf1878d84ef96e43955f2dd  gcc/testsuite/gcc.target/riscv/movsige-zicond.c
! a34681012d9d778acc6f0ae5022061f1  gcc/testsuite/gcc.target/riscv/movsige.c
! 478a1f4f88cfef62b27f2f2da11b48a2  gcc/testsuite/gcc.target/riscv/movsigeu-sfb.c
! 1df34f6c44267afab61f3b000009e7c0  gcc/testsuite/gcc.target/riscv/movsigeu-thead.c
! a71c975aefff9e25c1c734fe8e107e5a  gcc/testsuite/gcc.target/riscv/movsigeu-ventana.c
! 2161808adcf32936789519a5cfb537c5  gcc/testsuite/gcc.target/riscv/movsigeu-zicond.c
! 0d59499365f5ed80493e3077f0fc3c0b  gcc/testsuite/gcc.target/riscv/movsigeu.c
! 0a3af69beadab56957b6bca5f8aba7c6  gcc/testsuite/gcc.target/riscv/movsigt-sfb.c
! 665da85a4f4929c4117c8e19178b9c61  gcc/testsuite/gcc.target/riscv/movsigt-thead.c
! ed1b07a285aaede384b2801f622da763  gcc/testsuite/gcc.target/riscv/movsigt-ventana.c
! 2e2603b74fdf030e79edce1d7831174f  gcc/testsuite/gcc.target/riscv/movsigt-zicond.c
! 421bc1a0814350a8e06c2635b0a776d8  gcc/testsuite/gcc.target/riscv/movsigt.c
! b27eec54c4e1310bd3122144a64b16e7  gcc/testsuite/gcc.target/riscv/movsigtu-sfb.c
! 8f2806ea62b7f85e1679d9c6c7efcb1b  gcc/testsuite/gcc.target/riscv/movsigtu-thead.c
! 5e69a2677d15890b7dd5dace9e1ad433  gcc/testsuite/gcc.target/riscv/movsigtu-ventana.c
! b41dabd945c21362d05cfda95624d742  gcc/testsuite/gcc.target/riscv/movsigtu-zicond.c
! 98c9a7278f13fdbc8cedcf9fbf21f44e  gcc/testsuite/gcc.target/riscv/movsigtu.c
! ef7fecfc17af2178627f142209f1c982  gcc/testsuite/gcc.target/riscv/movsile-sfb.c
! bbb3d2e838d9aafb314de31769263f2c  gcc/testsuite/gcc.target/riscv/movsile-thead.c
! 4d315f05895502c6b21fe9af51a9aacf  gcc/testsuite/gcc.target/riscv/movsile-ventana.c
! fa326c0ff3c7bf7a579e5b61ac9ab1bd  gcc/testsuite/gcc.target/riscv/movsile-zicond.c
! a740b33df536a1d246f7c6bea9f775fd  gcc/testsuite/gcc.target/riscv/movsile.c
! 8eade0e7a10a5d078143c306369e5163  gcc/testsuite/gcc.target/riscv/movsileu-sfb.c
! 3ec7a51ee316a6f531fc56e97d7a03f1  gcc/testsuite/gcc.target/riscv/movsileu-thead.c
! b5ef0d03c4870e72f436aa59a3751da7  gcc/testsuite/gcc.target/riscv/movsileu-ventana.c
! 630f8e8b12c39573af1a0b4c413e160b  gcc/testsuite/gcc.target/riscv/movsileu-zicond.c
! d96ebe63f2d292e39051e88b05279531  gcc/testsuite/gcc.target/riscv/movsileu.c
! d2ccf04c3c498e7181b070f27bf7f6a0  gcc/testsuite/gcc.target/riscv/movsilt-sfb.c
! df399fbf0939a9614e990940cf59d191  gcc/testsuite/gcc.target/riscv/movsilt-thead.c
! 9e18bba886fcac2f4926cc2fa54fbef6  gcc/testsuite/gcc.target/riscv/movsilt-ventana.c
! a470527192bcbdc14d947dcee63857fb  gcc/testsuite/gcc.target/riscv/movsilt-zicond.c
! 4388f437602ae503bce8f3552a5bd141  gcc/testsuite/gcc.target/riscv/movsilt.c
! b7f9af4c0f42998a52b207cf7cfc08b6  gcc/testsuite/gcc.target/riscv/movsiltu-sfb.c
! 38ba9d161a6b618a40e59c81d41aa412  gcc/testsuite/gcc.target/riscv/movsiltu-thead.c
! fd3856fba038d4964191d25348c5467e  gcc/testsuite/gcc.target/riscv/movsiltu-ventana.c
! 9e41ba7de47885e549ac33f957fc6b15  gcc/testsuite/gcc.target/riscv/movsiltu-zicond.c
! 4f5b4933405db5c6e3c544e0ec91cd22  gcc/testsuite/gcc.target/riscv/movsiltu.c
! 47b58cafdaf2952a775f957de8af697b  gcc/testsuite/gcc.target/riscv/movsine-sfb.c
! 588e96293a911ba70f95468ee47dd0a4  gcc/testsuite/gcc.target/riscv/movsine-thead.c
! 90c60169a813bc3db939fec2afb948ac  gcc/testsuite/gcc.target/riscv/movsine-ventana.c
! 73ac086a6350a2e7865bdbc352405e64  gcc/testsuite/gcc.target/riscv/movsine-zicond.c
! 97f9561be11e1f721604f8840fb7f704  gcc/testsuite/gcc.target/riscv/movsine.c
! 91df64335c75c89ed2e21716fe77a561  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-1.c
! b31f65298e8fa9f53bbc717e292604ee  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-2.c
! 6d72ece3cc973413992f5f3e461dcc16  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-3.c
! 0e192329c5363879dee5cc5b45ffb179  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-4.c
! da347ad3915925dff635c7bebc36013c  gcc/testsuite/gcc.target/riscv/omit-frame-pointer-test.c
! 1be860f202994bc8fe2857bdb115b447  gcc/testsuite/gcc.target/riscv/pr102957-2.c
! c2ea2036045469f1056fc7689ee62c7f  gcc/testsuite/gcc.target/riscv/pr102957.c
  c70df77dca2d9d059e9b22e279613d45  gcc/testsuite/gcc.target/riscv/pr103302.c
  78659ffafd452ac6a43859083b99d8ae  gcc/testsuite/gcc.target/riscv/pr104140.c
! 72b5da991f349fba3cb365ca26cc4475  gcc/testsuite/gcc.target/riscv/pr105314-rtl.c
! 9edc4853890d0ce6b91740b72c8b5504  gcc/testsuite/gcc.target/riscv/pr105314-rtl32.c
! 8ea2755ae5b8a9d887c149fa0cde645c  gcc/testsuite/gcc.target/riscv/pr105314.c
  488d01f6a52c713a85a02ef3f9147fe8  gcc/testsuite/gcc.target/riscv/pr105666.c
  e2d715acc45ff1c4de4202ff85ed13eb  gcc/testsuite/gcc.target/riscv/pr106602-rv32i.c
  a4140e65ee8a24c14a0a9a63e5f92a62  gcc/testsuite/gcc.target/riscv/pr106602-rv64i.c
  fd454cbbc31e7c4bb8e24d07543b8255  gcc/testsuite/gcc.target/riscv/pr106602-rv64i_zba.c
+ ab2cb1a5b51bf68796e53fde679618cc  gcc/testsuite/gcc.target/riscv/pr106888.c
  ec6ec43c9e76076efb0caf7fd6975bd5  gcc/testsuite/gcc.target/riscv/pr107786-2.c
  5201d6361bb5315fd35a51ff807d7115  gcc/testsuite/gcc.target/riscv/pr107786.c
! 51045cfa092b03d9038e7cab9be1693f  gcc/testsuite/gcc.target/riscv/pr108987.c
  2dff48c2cbadd1b5f5afb4808e4eadff  gcc/testsuite/gcc.target/riscv/pr109508.c
+ 85bb086e76a60b454232f2f03f8d0410  gcc/testsuite/gcc.target/riscv/pr110696.c
+ d771b9d4c4a59ff2544a46afb1a11b23  gcc/testsuite/gcc.target/riscv/pr110748-1.c
+ d43a8e3428c1b09d9777c42aad2d8f48  gcc/testsuite/gcc.target/riscv/pr111466.c
+ 3d20448ba5b8832a124255aa2e84a97f  gcc/testsuite/gcc.target/riscv/pr112478.c
+ 15f456db6fb5e46494c853d4c141ca96  gcc/testsuite/gcc.target/riscv/pr113095.c
+ 9bb9353191b107cdeaf920a4e0796e31  gcc/testsuite/gcc.target/riscv/pr113742.c
+ 6baf707cfad842b6b5ac2a6e7339e8ae  gcc/testsuite/gcc.target/riscv/pr114130.c
+ ac7457bb5fc81b14b0c132cfa32ee677  gcc/testsuite/gcc.target/riscv/pr114639-1.c
+ 8ff44c408c80d6686eacf2c8c9416fb4  gcc/testsuite/gcc.target/riscv/pr114639-2.c
+ d23feb07adfb6b3ced3305b407aec532  gcc/testsuite/gcc.target/riscv/pr114639-3.c
+ f46adfcb0ab8e2f3319ce8af66b9e8af  gcc/testsuite/gcc.target/riscv/pr114639-4.c
  10400130cc47973d43925669f3c795ed  gcc/testsuite/gcc.target/riscv/pr84660.c
+ 45701f43caab393ac02416313089852f  gcc/testsuite/gcc.target/riscv/pr89835.c
  287e116d84e5eca39a410aca336f89b1  gcc/testsuite/gcc.target/riscv/pr93202.c
  01c8227bf1b5efa52e434a407c33930d  gcc/testsuite/gcc.target/riscv/pr93304.c
  f95453a04d25316c015010a3d66699b8  gcc/testsuite/gcc.target/riscv/pr95252.c
*************** f95453a04d25316c015010a3d66699b8  gcc/te
*** 76575,76670 ****
  4a09604ef4cdb81da6aaf6179b4347d1  gcc/testsuite/gcc.target/riscv/pr96759.c
  06f027ca6a8c58be75a7b860dc39bf86  gcc/testsuite/gcc.target/riscv/pr98777.c
  576ffdec066d69c35af0753463b174ae  gcc/testsuite/gcc.target/riscv/pr99702.c
! bdd391da1a021d60dd06443a2c462e61  gcc/testsuite/gcc.target/riscv/predef-1.c
  631c168c77a9af0c773050bef4b8943f  gcc/testsuite/gcc.target/riscv/predef-10.c
  318dab274ae6db996cba3a94694e749d  gcc/testsuite/gcc.target/riscv/predef-11.c
  a2c9fa03a9dd9f49ac1497ec91ae9cca  gcc/testsuite/gcc.target/riscv/predef-12.c
! 4310ac93b7a0393d447e4efec713c181  gcc/testsuite/gcc.target/riscv/predef-13.c
  67f7abc735dbed9d29b85072fde9a24f  gcc/testsuite/gcc.target/riscv/predef-14.c
  9088f8403241134b8270db2df6d9b679  gcc/testsuite/gcc.target/riscv/predef-15.c
  57227b90a217d586094bff4595f9815d  gcc/testsuite/gcc.target/riscv/predef-16.c
  981b22f8d0822eb392cc684aea295a02  gcc/testsuite/gcc.target/riscv/predef-17.c
  a335b5e1909d390294a0a65a294b3327  gcc/testsuite/gcc.target/riscv/predef-18.c
  7467c900a7a5a13d2990492333310a6c  gcc/testsuite/gcc.target/riscv/predef-19.c
! f4cd285d40f82500ac94b38d69ddff10  gcc/testsuite/gcc.target/riscv/predef-2.c
  1dae05fb7ee217e838eabf1f45e7114e  gcc/testsuite/gcc.target/riscv/predef-20.c
  42182dd604c357b7c179981ed12114de  gcc/testsuite/gcc.target/riscv/predef-21.c
  28318e1b19daee48e9bdd57c91a3e6a0  gcc/testsuite/gcc.target/riscv/predef-22.c
  5fabe8eb53d7c19a3bd3d2d6b7771dbd  gcc/testsuite/gcc.target/riscv/predef-23.c
  c87a4d55d7a66b9a0c9aa423e4c92bb8  gcc/testsuite/gcc.target/riscv/predef-24.c
  36f5d30af2f6b2e1e7584ac498bf4d1f  gcc/testsuite/gcc.target/riscv/predef-25.c
! aef18d51cf991660d6d516782f8ad7f5  gcc/testsuite/gcc.target/riscv/predef-3.c
! f3c66996e322e8ef05092aac3fe78678  gcc/testsuite/gcc.target/riscv/predef-4.c
! 9f840617445a041a9135dd3a68171540  gcc/testsuite/gcc.target/riscv/predef-5.c
! d03b56de8a4e3ed49030054695c76f93  gcc/testsuite/gcc.target/riscv/predef-6.c
! 245c7a576493b3a0cba7029e8ce8cf68  gcc/testsuite/gcc.target/riscv/predef-7.c
! b7fff0dcab7fdef2f655cc4a09e22a67  gcc/testsuite/gcc.target/riscv/predef-8.c
! 82f69e74b37ada0716cd433335e84733  gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c
  9ac2b9b8f51654fa48e8cb3aa6343a32  gcc/testsuite/gcc.target/riscv/promote-type-for-libcall.c
! 65ce2c3872664bd9ee6b621cf3ea090d  gcc/testsuite/gcc.target/riscv/read-thread-pointer.c
! fab4d2fa332615f40a97719626ec05ac  gcc/testsuite/gcc.target/riscv/ret-1.c
! 1bdaef92e9c1a523c9f2808c30b27034  gcc/testsuite/gcc.target/riscv/riscv.exp
  6c06251f46956faed6e5b540e9ab010f  gcc/testsuite/gcc.target/riscv/rv32-load-64bit-constant.c
! f3772720103b7015f51fee95e5d294ea  gcc/testsuite/gcc.target/riscv/rvv/base/abi-1.c
  6ba19fed5c959266c0b391b99f5c338e  gcc/testsuite/gcc.target/riscv/rvv/base/abi-2.c
  79df4b147a8c962b142cfd7748451769  gcc/testsuite/gcc.target/riscv/rvv/base/abi-3.c
  fc5296dd345c8e6a8c7d02399b6fdd35  gcc/testsuite/gcc.target/riscv/rvv/base/abi-4.c
  16adc2d9f3e67080575c660cf54cc868  gcc/testsuite/gcc.target/riscv/rvv/base/abi-5.c
  75b9b893ae637c5b5a469edd52dd56b1  gcc/testsuite/gcc.target/riscv/rvv/base/abi-6.c
  0fab0069f7636e81c56ceedc25520fff  gcc/testsuite/gcc.target/riscv/rvv/base/abi-7.c
! c89a8a88dd389f2e4ca39fd4bc200153  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-1.c
  929bc9dd479fcb10564c5d95d7e20a94  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-2.c
  7f68e4a9f7c2b4f939d60564f0e450a0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-3.c
! f8aed0b6876ddd3a75e7744b827af0db  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-4.c
  ff323861ce892f5a6c41c2624e599f88  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-5.c
  361457316869b36ee3ecc99db50d1ca6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-6.c
  c5b31100603ffe499e25fff3404b7c8f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-7.c
! a6a99edf1593248d76939dfc683d4faa  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-1.c
! 5d7a7dcebdcaabe82fdb11b244a0cd3d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-10.c
  fb7fbad162632975f3ef0f58ae2427ee  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-100.c
  8c099a5bf727ab4d6f26179f65b66cf1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-101.c
! 6dbf9f9efababf19dcc9f9b75691fc1b  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-102.c
  489dbc69b3e60bd568ffb04cda85eb4a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-103.c
  d2d82dfbd5efe9f779f950b18b7094b2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-104.c
  62589986c5a1a8d84d42df46ee14e324  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-105.c
  f1b82bbd761a47e386617f097f29e9c9  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-106.c
  63f2b995aac3fb02389a262c3cf3e126  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-107.c
! 49c8578b269aab13b00768184929a756  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-108.c
  c188a057d6180bb4d813332f56768913  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-109.c
! c4bc50985eb5bc7251827d44133b476b  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-11.c
  8635d8912d76f40410ec807bf13e49d1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-110.c
  6e5cfa134629d5e97918d505276fbb6d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-111.c
  c657afe50ed7c2fd6dd8b66cc6d52698  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-112.c
  b476b0738e47748f9c46202cabd90751  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-113.c
! 29540ecd790ef3ca5e8d9b7613340946  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-114.c
  359ac2a3a13d6bde8610a04085f4bf4b  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-115.c
  f9e704a0d07b901c06b5c1e08e5b6f86  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-116.c
  9e43ce3a09913c4de485b09a857db8b0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-117.c
  faa1e08026e7542a327cb3c1682f7fa1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-118.c
! 09bc4e82b7cc52b9ff891103e9e4e7b0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-119.c
! dde234a92bdcd5614e30f0fbeb8d990f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-12.c
  47a380f5980f1c018dc746b592bff29e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-120.c
  629e6f1981a307c1da9e872eda7195b6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-121.c
! 73c0d3c8a3407bf46bd1b10b8900f257  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-122.c
  2810b54b38e27c6d29407c420e1f4dbf  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-123.c
  10f669084169154d3b6452a59215d82e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-124.c
  4b673c77bfd668e719c5aee96962de08  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-125.c
  bb5b2cb59d4d8a5e05257fa151afb63e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-126.c
  e014944a405eb10c1f269542a44b8cc6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-127.c
  04cbcda663315873a29aeb1df741bf38  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-128.c
! e565d0b4cf19a391e52da423dd4ee4c2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-129.c
! 75d9b0b9e4daaa0c77f9e8a181d2e3d1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-13.c
! d2e95275c012f5d96fd998dc921e1174  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-130.c
! aaf6e6b6b6dd68533a8a6ef24113b927  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-131.c
  f10d03e4108cb760eda1309c691ea214  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-132.c
! de6ad002049742592a84ffdf151674a1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-133.c
! 41676947052204b8f5bda1d3e93c1312  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-134.c
! 30280ff5362d5ef0dceabaad686381df  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-135.c
  b623763080675c2dee483ed4a8a8f9e8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-136.c
  0299840c540fc99fd075b65c3b7d7d60  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-137.c
  55383e290f8c43513d3e8ad97d5260a4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-138.c
  83e261f0356bb63fd6107f076971f106  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-139.c
! 4d46dc9e070c74f335de9adedf52b42a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-14.c
  9697d9c5a59bee80c7faeecb0728a6bd  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-140.c
  8f4b739717bf2562ba86b0fbf6445d6c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-141.c
  77baa83b524fc50296c78ab1c0b75421  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-142.c
--- 82867,84697 ----
  4a09604ef4cdb81da6aaf6179b4347d1  gcc/testsuite/gcc.target/riscv/pr96759.c
  06f027ca6a8c58be75a7b860dc39bf86  gcc/testsuite/gcc.target/riscv/pr98777.c
  576ffdec066d69c35af0753463b174ae  gcc/testsuite/gcc.target/riscv/pr99702.c
! 852b79684636e59b5256a91f2a529ba2  gcc/testsuite/gcc.target/riscv/predef-1.c
  631c168c77a9af0c773050bef4b8943f  gcc/testsuite/gcc.target/riscv/predef-10.c
  318dab274ae6db996cba3a94694e749d  gcc/testsuite/gcc.target/riscv/predef-11.c
  a2c9fa03a9dd9f49ac1497ec91ae9cca  gcc/testsuite/gcc.target/riscv/predef-12.c
! 2af91f6e2a8bb287637fa5e65bc7f6a5  gcc/testsuite/gcc.target/riscv/predef-13.c
  67f7abc735dbed9d29b85072fde9a24f  gcc/testsuite/gcc.target/riscv/predef-14.c
  9088f8403241134b8270db2df6d9b679  gcc/testsuite/gcc.target/riscv/predef-15.c
  57227b90a217d586094bff4595f9815d  gcc/testsuite/gcc.target/riscv/predef-16.c
  981b22f8d0822eb392cc684aea295a02  gcc/testsuite/gcc.target/riscv/predef-17.c
  a335b5e1909d390294a0a65a294b3327  gcc/testsuite/gcc.target/riscv/predef-18.c
  7467c900a7a5a13d2990492333310a6c  gcc/testsuite/gcc.target/riscv/predef-19.c
! 10ce20b4a3c09fe45ad7f7591166acdd  gcc/testsuite/gcc.target/riscv/predef-2.c
  1dae05fb7ee217e838eabf1f45e7114e  gcc/testsuite/gcc.target/riscv/predef-20.c
  42182dd604c357b7c179981ed12114de  gcc/testsuite/gcc.target/riscv/predef-21.c
  28318e1b19daee48e9bdd57c91a3e6a0  gcc/testsuite/gcc.target/riscv/predef-22.c
  5fabe8eb53d7c19a3bd3d2d6b7771dbd  gcc/testsuite/gcc.target/riscv/predef-23.c
  c87a4d55d7a66b9a0c9aa423e4c92bb8  gcc/testsuite/gcc.target/riscv/predef-24.c
  36f5d30af2f6b2e1e7584ac498bf4d1f  gcc/testsuite/gcc.target/riscv/predef-25.c
! 1283999d6e89842eda74dd159007cabc  gcc/testsuite/gcc.target/riscv/predef-26.c
! d029d46a2b563890434e63f063736c83  gcc/testsuite/gcc.target/riscv/predef-27.c
! 3d7d03531ad5e8293140f2f208de8a86  gcc/testsuite/gcc.target/riscv/predef-28.c
! 018b1247162af1256922347e0c4994de  gcc/testsuite/gcc.target/riscv/predef-29.c
! 1aa9c871253b6c33bc9190949155cb98  gcc/testsuite/gcc.target/riscv/predef-3.c
! 451bd51baed2e16285d7bf9979a42a69  gcc/testsuite/gcc.target/riscv/predef-30.c
! 38e510bb6dad0bc941fb5077873eb01b  gcc/testsuite/gcc.target/riscv/predef-31.c
! 4bce428187ebd23e403a45e87fc55641  gcc/testsuite/gcc.target/riscv/predef-32.c
! 25e50fead59bdbbdbd0737ab43e38f0c  gcc/testsuite/gcc.target/riscv/predef-33.c
! 8adfefc72b56af93c850ecc6a7d232dd  gcc/testsuite/gcc.target/riscv/predef-4.c
! d845c011b828d7cfe7dc2bb1e2b63dc3  gcc/testsuite/gcc.target/riscv/predef-5.c
! b4359fa5c3f301633a0bd37607d98d85  gcc/testsuite/gcc.target/riscv/predef-6.c
! ddcca974f57fbb3cefec3c41d6849e9e  gcc/testsuite/gcc.target/riscv/predef-7.c
! f2da01e635d21171f312277a98424056  gcc/testsuite/gcc.target/riscv/predef-8.c
! 83716494bcac8bc71ad86841353698b7  gcc/testsuite/gcc.target/riscv/predef-9.c
! 2463a6bf35023b3a0093d9b5fd3decdc  gcc/testsuite/gcc.target/riscv/predef-__riscv_th_v_intrinsic.c
! ed1461a4364185f7eb27514956acc7cd  gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c
! 0ad9d47ed1cfbbcb7c2d5c6ab62f84a0  gcc/testsuite/gcc.target/riscv/predef-align-1.c
! 97165fe4d2fc842c6cfa418fba4d7c14  gcc/testsuite/gcc.target/riscv/predef-align-2.c
! 9f0a4d7fa71879a2a32cb548b90e48d7  gcc/testsuite/gcc.target/riscv/predef-align-3.c
! e423ed25d25493f4ab719979d182b85e  gcc/testsuite/gcc.target/riscv/predef-align-4.c
! 8db6ad5a32847bf6ae72671288e0448f  gcc/testsuite/gcc.target/riscv/predef-align-5.c
! 84b88ad750d94c31f78f057be6f174da  gcc/testsuite/gcc.target/riscv/predef-align-6.c
  9ac2b9b8f51654fa48e8cb3aa6343a32  gcc/testsuite/gcc.target/riscv/promote-type-for-libcall.c
! 07f95c94b964f5ad591cbabbbe598dfb  gcc/testsuite/gcc.target/riscv/read-thread-pointer.c
! a2d5d7a1cddfa9abb36a3ef01ec2f65a  gcc/testsuite/gcc.target/riscv/reg_subreg_costs.c
! e8ebc752cb2e6780fd9c69554a100b3e  gcc/testsuite/gcc.target/riscv/ret-1.c
! cbb5e695761caf662a0f5a3a6d512668  gcc/testsuite/gcc.target/riscv/riscv.exp
  6c06251f46956faed6e5b540e9ab010f  gcc/testsuite/gcc.target/riscv/rv32-load-64bit-constant.c
! 43463121f29f72a0eaebae4c5789b812  gcc/testsuite/gcc.target/riscv/rv32e_stack.c
! 48861a0634472561c5dddf0034d8f5e4  gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
! 0126c7f32148eddb27e7c8eec97654b6  gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
! 3e4bfa9ed1e14f800d0563ed26507250  gcc/testsuite/gcc.target/riscv/rvv/autovec/align-1.c
! 1331d22c6b347ed0f6bbf2533892ae7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/align-2.c
! 703460f530006a4fc7115645853f1a43  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-run.c
! cbdfece595adf310fc82fb6d6a77a7e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-rv32gcv.c
! fb13eb42f5f3a0b2a5afb3a09d77ff4e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-rv64gcv.c
! ff83e7dbcc7228a3905b2099b6135bd8  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-template.h
! f1adabe947c7b11ba5b0586f8f0d6de5  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-zvfh-run.c
! 767ecec84656ce685747ead2f805a67b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/fmax-1.c
! d8db3d07ac1850ae35ca995dff70d20f  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/fmax_run-1.c
! fc2eae14f688a45e3b36f9bd0b6f472d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/fmax_zvfh-1.c
! 96e45beeb71ca86eb597e7b3fa326674  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/fmax_zvfh_run-1.c
! 05488ea0db3eac5e0a54ab26244ec2d8  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/fmin-1.c
! a7a45d8cfcc406af9703c5d246f8bc4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/fmin_run-1.c
! 159575ea1e0cbd09f5be85f694105a4e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/fmin_zvfh-1.c
! e6791898a88d61623dd9c537a0fad5af  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/fmin_zvfh_run-1.c
! 05650cad064a74bf65baf20e15b42115  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/mulh-1.c
! 286856f7ab1940d7338b42fdaffe6cd0  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/mulh-2.c
! 55ee67178b127ae9f6e62b2b9240d887  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/mulh_run-1.c
! 04b28845321cfe12bc5444e9ad43545c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/mulh_run-2.c
! 793f7a7774c83ae49d0dbbaa87c59acb  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/narrow-1.c
! 4196a5ea84d4e2484e6d09574f5bf1be  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/narrow-2.c
! 911aba32d63afa7cf5ba99990a97ab0b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/narrow-3.c
! dd0530f910f190eb0a687ae431d2b4bd  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/narrow_run-1.c
! aacf8adb6f703df917049e0547f5f5c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/narrow_run-2.c
! be77d3185931cb7f272d4cd928264c9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/narrow_run-3.c
! 679b8aa30c2f2114859e4f2ed01a690c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-immediate.c
! 2729c0ea746e4a91096b22feb375a8bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-run.c
! c852924e47d05b5acf107a0a0690b479  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-rv32gcv.c
! 189d7668dc2201acd45364f276c262b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-rv64gcv.c
! 4565e9745ca687c2dbad7daedc6dbea8  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-scalar-run.c
! 688c317d2622bdf99b5936a82d9f4d02  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-scalar-rv32gcv.c
! 0857a33733195d65e0caddf895634df3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-scalar-rv64gcv.c
! de2cab5a8e2da69a8db8d226339e52a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-scalar-template.h
! 22ac7a0e40ee0d73ee3acf39c4790345  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/shift-template.h
! f7bcb68e3023c1e5612ce4e7cb17f707  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-run-nofm.c
! 5a96ce3f4fa167a0c456da1d5f773730  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-run.c
! 9d9ba094400c69d653952a05304d4648  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv-nofm.c
! fa28d1b860b1fc6524ba539f3efa0e8b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv.c
! b901a4dad12f9c822789480b900928a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv64gcv-nofm.c
! 7cc257aa83a272fbc0eb2b67af1a72ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv64gcv.c
! 93a18051bf5b024c977fe02509c4f2b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-template.h
! 83b9da5b3175cdf12887b104bf702389  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-zvfh-run.c
! e14b474897c31bd2c69f2ca5864e795d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-run.c
! f9e8fd2a4595c4092b6d8abaf9dd36fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-rv32gcv.c
! 88165226f582f0ab2a96649bd2e9c429  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-rv64gcv.c
! 61f4dd59fb4dc246a60c6a7f9f2525b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vand-template.h
! 2203370651d4d5ce9d6e9c65d29520d7  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vcompress-avlprop-1.c
! 1716c77c5018dfddc66454c42cce12a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run-nofm.c
! 07efe4f36f94537a9ab61f369fb40c64  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-run.c
! 2f45b31b53d24c9c6550bd5af1a525c2  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c
! 7f70cf88598d9d86997cb82a9818269e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c
! 7febc551e94c74f6834829ed5cb55af3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c
! 0c2dbc392af949e04b0e76b25a9f3cd6  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c
! dbebd0845ac2d7cc9740dbc387d7a75a  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-template.h
! 6872582bd5a1f2060a6b415ddb770818  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-zvfh-run.c
! 54a1df2da3aa6bbb1e252eb686ecc85d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-run.c
! f43dc71c51af764b526c8ea972c39790  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-rv32gcv.c
! 817431a51a3ceb004fb7efd763d1ec1d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-rv64gcv.c
! 6a32c9b27b95871fca5033a0e56da9b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-template.h
! 9b62b4fe027b22e2f4b1d7f9199e945e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmax-zvfh-run.c
! b154a0645697f676b9a8e4ae9ae0a23b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmin-run.c
! 5c59ff3cf5fb8f5bf6d10688c516a13e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmin-rv32gcv.c
! 5e157108f4c99af493e30704e5ca302c  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmin-rv64gcv.c
! 058688c2412edda32be1ed1f5dbfba4a  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmin-template.h
! 897286d17cb0342037f5c3a24c10c029  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmin-zvfh-run.c
! 1d015b45cb1c88789950a46b4a2a0209  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-run-nofm.c
! 5f97d13bceed4271986e29e19ee27686  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-run.c
! 658d681cc3a7f4ce4ddcac1e3591cff1  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv-nofm.c
! 0e268df12613f677b5a90ca5e0fabb79  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv.c
! c3cd827a79776571e6ee5e4d3aa6a52e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv64gcv-nofm.c
! 8c943ffee0dd555962e3562a69dcbe98  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv64gcv.c
! ed0200e956dfdaf1f1903b6928136e94  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-template.h
! 4bab4b670417f6d5f5dec2f9d55f28f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-zvfh-run.c
! a955d09fcf28e4af30d984061f4d163d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vor-run.c
! b2d1c897502250789aa80edeceacdda7  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vor-rv32gcv.c
! 1b5ab23c497ddf3f94eee292a58b1e5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vor-rv64gcv.c
! f129e667bedfd57659a8bdd6d0f658d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vor-template.h
! 2adfa8f1454cb7f892efb4ab6ec0e74b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-run.c
! fdf8844458cd0eda0f90deaa96ce2cd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-rv32gcv.c
! 8052f7788c3b678934f022a83387086b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-rv64gcv.c
! 4e67662be6c87ee016efa0799d727755  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-template.h
! 8b5ad895beab4f44d6c437c5e895a3ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-run-nofm.c
! 399b2f2863e8796c55f743e8c3ff0927  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-run.c
! 91d46bfd6fd5fa190211eb147145e430  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv-nofm.c
! a8fa812d905b55ae57ce821d94f1ffb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv.c
! 3ad4694397d072ed0f198ff8407df877  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv64gcv-nofm.c
! ab2de916b7b2498d0032349388d147eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv64gcv.c
! 3bf21f1fa4bc8a29aba5f4776b4e0db3  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-template.h
! 9c0ccbf675e6663254fb7e4b50d269c5  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-zvfh-run.c
! 07d15102346c584ccd01680ceaa98d36  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-run.c
! 94ed616f5a3c0fe09fe1f577114a7f32  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-rv32gcv.c
! f9ae179d5dd3e09d82fde9d15aab3ade  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-rv64gcv.c
! 1486eccef90fee0e3ab0675cf8f88a10  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vxor-template.h
! 61abba01f6ae91593ba7705d6d8445c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-1.c
! c310dc52e5832d1d153b40b045b49220  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-2.c
! 0320d1bcd820ff6329785fb795f56409  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-3.c
! 2a7fc9f39222bcceb856efe167362892  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-4.c
! ce8ba61eb8ad2e8581e8c277baeb7866  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-5.c
! 787d022135b121c639ad6f918c124190  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-6.c
! 1a9902c69b9249f167772fd74a225a51  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-7.c
! 834b29a92477a915a7c522cd7766a273  gcc/testsuite/gcc.target/riscv/rvv/autovec/bug-8.c
! eda4b91f5007d45bf8858f25c6461e0d  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/rawmemchr-1.c
! ae3080a296a2575cef03a83727439ae3  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strcmp-run.c
! 98d80571e5c17fd533f0d1e8c194dcec  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strcmp.c
! 56678911e768b4172a2235342788f4ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strlen-run.c
! a883ca450d1a13abaadd1f912c4b98f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strlen.c
! db7eab788ad11a336aa4e9abec3ed425  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strncmp-run.c
! bf1a1b72638e71adf594e244fc144b1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strncmp.c
! b857b708bb6c618c3ba62342885523df  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-1.c
! 7eb22b5df2e3c13b19af8e4282041c98  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-2.c
! e9da455773b21909c284bb5614bee24e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-3.c
! b84e35b4ae56a182ee4b0961af33bf94  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-4.c
! c32c68c5cfc5b5515fddc3c208d53104  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-5.c
! 73119f6d0637a5f083bd93cd78dcbb88  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-6.c
! 6c6cc77dc886bee349969a176f374716  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-7.c
! 2b1fbc01bda38d04f2a9df46c3895dd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-8.c
! 3e5ef017b2989121fe25e33693deb360  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/cmp_vi-9.c
! ce60dbf8222d1dffa9fcb865162e9b9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/macro.h
! 8e4f6ed9ecc4690fe2278ac80f8545ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond-1.c
! 338b40d1f16bd7c11d11825d42cb1731  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond-2.c
! 9a6b6a53f7c28223e172bc93fafdc54b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond-3.c
! a670fa3bf8e695811476c3ddbd9d3b63  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond-4.c
! 756db6c80b3bf5f5c39bd5214d112d1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond_run-1.c
! 83131b836e13985fca48895c610ab6e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond_run-2.c
! fc3dc05d9f2c59cdc53a683aa80437b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond_run-3.c
! f3637af9f429d626781ea52c4ea6ae25  gcc/testsuite/gcc.target/riscv/rvv/autovec/cmp/vcond_run-4.c
! 56ff30f551fecd90954453dc495fcbd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-1.c
! bb1de2e5fd391639306b8b69b7d8c68a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-10.c
! dfc26239a7dca6279551e213119484cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-11.c
! dfc26239a7dca6279551e213119484cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-2.c
! 58e7cd5d00071db2bcf4a75b4677d4c3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-3.c
! 4f8109b70a8737bcf4f32a063362cfc0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-4.c
! b1521c18db7c0da470a2cc560716541e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-5.c
! f07388860097053b3c6bab93ad1a78f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-6.c
! df46f1c471f3fac79fdbc943dd6038f5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-7.c
! d8981aab5889cbad5002286b9168d09c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-8.c
! 0ccc0fed513ef45724fda5a632c01291  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-9.c
! e831a17cc96494b084aa0f00eafe9aa6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-1.c
! 2f7b894f59713e0bb9e45668c5e28645  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-10.c
! 33c86979c7335863539a2c99b65b32bb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-11.c
! 677e944fa59a44219f9f813fe75f1a63  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-2.c
! 2d1f689a516942dd718d4d138f7c4e37  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-3.c
! 418a01e6e9780de9dd29471b6791ca62  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-4.c
! 6a78cb7590e10446dd2b929e06e6d644  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-5.c
! ae8c47a4edb939ffc5588c13953d4faa  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-6.c
! 5dc2855e00a557ded7e5ea7350ce8177  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-7.c
! 99f4e820d32fb8eff410cd794437a9c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-8.c
! 2bd68600b9b7afa6ea832f1ba219ffb7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith_run-9.c
! 5cbfe7a9b34335bfd6f1f0a02e327071  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-1.h
! 6d4a325a5f7568274352392ab85cbd7b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-2.h
! b5fa534090291015d4109f1649842b6e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv32-1.c
! b177ea7606768265e921a8051ac3ae9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv32-2.c
! c596f81823ad12f4add352ca8b12dade  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv64-1.c
! 2cebebb2053aca932c946a2bedcf982d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv64-2.c
! b62692a770b3363bb34885d42c97920a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float_run-1.c
! 44cc2911fdd845ef775c4b7c920ccf36  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float_run-2.c
! 96ecd95999c32885fd5798719edc2279  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-1.h
! f7a4765af7bc4c96d87075d02d696161  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-2.h
! 04bcc7e1338d86b0c8ab98af4d2c6dbe  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv32-1.c
! 1ce7415a126cc64fdca3dd9bbe6b9274  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv32-2.c
! 5cf523cdf3f0724bdaff124925eadfe9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv64-1.c
! c933495420d3159796a482edd0a0a09c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv64-2.c
! 660d38869a38c4cb28292f106fdb991e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_run-1.c
! 83befaa448578965d29da98e04492f4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_run-2.c
! 06db6cf975879d79db80d4d3820e1351  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-1.h
! 4b9e189d6289e04b3d1ba0879efe7def  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-2.h
! 3b1712446e4978009b4ed79bf68e7a70  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-rv32-1.c
! c8d6c3cc7eaca3cc40ec6af36359ae6e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-rv32-2.c
! bbebf8c7c9319c53c85700022fe650b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-rv64-1.c
! 256f08798c7736f8e617b47693eafc34  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-rv64-2.c
! b0cf625b75b01d3a82ba5fe755d772cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh_run-1.c
! 7c4a9329600169a9e611a3578c5ef61a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh_run-2.c
! 53d5b0d2157a50d916fc398555a6093d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-1.h
! 91ca5f6de0db26eea920c1e65fa06233  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-2.h
! 84c515b9f138edea82dfb0b3cc668d6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv32-1.c
! 84c515b9f138edea82dfb0b3cc668d6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv32-2.c
! fa950369486f80aefefc58984f91b1d8  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv64-1.c
! 22264f4b762b0ab2a7cdd0bdb9f7cbb7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv64-2.c
! a0fed6120d7d5cf2c3b2736ca24d38c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float_run-1.c
! 43939fc0603d3f215624bda836dc92f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float_run-2.c
! 2b7778f504e6809556a28cd69cbf26c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-1.h
! 4351092867bb48e819ca570c3ffe8cd9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-2.h
! ade6df148bcc41fd3973bbd22d03dd87  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-1.c
! 4480f0bc5ae39acd71fda31253ee1bc7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-2.c
! d2bbfb61904ead883540225329815a7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-1.c
! 762efdcd682c499b015ba26a1cdd33f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-2.c
! 0678c44f43ae11bf4790150b099a3f99  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-1.c
! 0575ce849d0959ca0fccdf52c26fe32c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-2.c
! 82a3288b915ecb0a918f35b4c0a8e9db  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c
! 24ae67ec8a193bb1fe43345ae01e787c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c
! 9ba89e83e206c5b7a1f6e5f8e492057a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c
! b47b05ed81e4346fba381232bb8baf51  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-template.h
! f9b7f75826663eff6236dbbaca304f9f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c
! 9e08c37668aacd396c1e30ced0fa3525  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-1.c
! 0d3403e2c18335900ad9aefc40693fbd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-2.c
! 38201caed662313d23744c948acf5217  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-3.c
! 59a086ec3609c7a545fbb7954e63006d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-4.c
! 7176d0c4bb63022cbff74c90a7175e81  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-1.c
! c7d8af130a26ace7fce495e2fe029fd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-2.c
! 0034f9e50acd7d464713a241b3b1f9c3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-3.c
! 27205e14b045e5a1cd3dad3af4f84fbb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-4.c
! 1ece34943107fe8d65987a229de7c596  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-1.c
! 5520c0053c7f4624f44d765cab4ac147  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-2.c
! 8406385d81f63e3fe1569952b33d4ff7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-3.c
! 931a67ada521b53b7748f3d66208c9f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-4.c
! e47bf1daa9d5592a6749913da2dcfefd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-5.c
! b2ee716a5257fa918cb7f7e8f4701425  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-6.c
! 734bb0e2419025e6406f161f5b63f36f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-7.c
! 424bddd689ddb84b78542044e8c4675d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-8.c
! 094eb1680fe9bd4c3c4f41e030b82041  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-1.c
! 72a3a2f893754ec11534877eaba8c25c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-2.c
! fb9cf4c59a83ba4d13344c5631496ca1  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-3.c
! 7c78d27b02abda60394744830077c75a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-4.c
! 94a320712519b99e56138f9296a551e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-5.c
! 02472b642a665a9c396f778736c484d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-6.c
! c44d47b62ebc0be086dab3e978f294a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-7.c
! d83e0f5e726f77c0fa5dcc062f31d437  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-8.c
! ce5a8d237e0a624fc8d30f541d73d227  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-1.c
! 44f29aa9c26fc59f6de3f2bca6dd0004  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-2.c
! 772582874c742e8de013b4a05d2d1c86  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-3.c
! 25fba3b96a6d720ec1c7cc4670a845eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-4.c
! e4ae09875b6e2c3b1bdb46ae51bc10bb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-1.c
! ed66f5b63d8ae3a3c9e25c02275e39e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-2.c
! 17695f1fcf635f40bdc7a526fc1a1da9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-3.c
! 0142451b234efb1f81cdaa9cc91864fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-4.c
! 56b1b0b64956a822480f6c06ae66b0fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-1.c
! 3c73364dcbc52816aa4d085005186f0d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-2.c
! 9987e391c89054583c2a623976013e93  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-3.c
! 1d8ef4fc5e236f17b1f0968f68e6ad72  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-4.c
! 73ad31c0595092abca944ded9a0901ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-1.c
! d6594a98f98d27f302ef865486cc2ee7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-2.c
! f1ca548358a8258700667b8b9ccf6052  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-3.c
! 3108c9b630bb6ee9486a9bfc88daf623  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-4.c
! 34ab9ad860db523b37119284ef73cc59  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-1.c
! 98c363e92ac46f13d26ee70040c03c51  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-2.c
! fb538696ea96ce8904e221b5afcf78ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-3.c
! 85446fefa661e3860a1347cf57395f12  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-4.c
! 54dd8a91dba29507baece55bb032d693  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-1.c
! 2488d8726ebf49fef14945321b652f3a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-2.c
! df5a900925053561f58ace5942d7149b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-3.c
! 8bb047818804052e36808dc047920ee7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-4.c
! febbbc06366de0656f0e865787129b8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-1.c
! fcd58b35efa0d26b33210ce3029460d2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-2.c
! 021f504db503b141abab240060ef2fa5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-3.c
! 641a3162a712aeea8667f3b8dd542143  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-4.c
! c91853330f263a923eb9e681c5f85ca0  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-1.c
! 1543f51000334291d40852a9eec39bfd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-2.c
! 9588dac0214b7963e056b75cc2ada4b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-3.c
! 3721281dd72bd4902757e753a68e3803  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-4.c
! 635b2d20c4d3085edf4ae31fc57469bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-1.c
! 9286bdb405df5197072e688d6b55bc89  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-2.c
! 733b6ddee07ab2ef28602aba27ac42ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-3.c
! ae4bd8b733f61060c0550da9bc843c55  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-4.c
! ae4bd8b733f61060c0550da9bc843c55  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-5.c
! bf4392a88e6cfb9a548e5d9351a752e4  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-6.c
! cbcfed695023340851c920b1299d2420  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-1.c
! f2967c5311295ad167a80d35468c396c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-2.c
! a12536e87240c070a654b4385265e35d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-3.c
! cefdf0ec6bbfd67b41d7a1be81d6c85a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-4.c
! 2efde02408119a9ac9471fe5120e69cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-5.c
! afae7fafbd15beef6b7342351054182d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-6.c
! 2bf7dd82d08d1ee85acb35cda0628827  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-1.c
! 93b35371a729de3cd56a639d92b8842d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-2.c
! 859c57d75f41ae3a325a144c242c8aaa  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-3.c
! 51934093c79266ce8492799f21a267cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-4.c
! 27c346882e06cc07f051fd6833191329  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-5.c
! 9c783eb9425f96054373647576ecba59  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-1.c
! eceff7530ba56a4f5e341a76fd464ed7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-2.c
! bf5ed29505bad4dc67594e77c7c615b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-3.c
! a5e92b2e8ba73689b83c3094f471f212  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-4.c
! d67474b310ede59cb243f02385bbf796  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-5.c
! abea4ceb0e2c07279396cefcf3969ce7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-1.c
! 442ec8ec759eb52f23aed55c363b9387  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-2.c
! 18f6abadef8fddb0436366d8b5bb23d8  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-3.c
! c0b2b1af901173a8de57650f6c80807f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-4.c
! 196be52d8376f6b614e0bd27e39e32b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-5.c
! 89cb71ac619c8779d05abb41c3ab4321  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-1.c
! 5cae14b221ea4f6a0517713267ee06d2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-2.c
! f559d3ff24ad16ab3d3e5e73d55dd38b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-3.c
! 33914b05207246f451c9eeb71dddd20b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-4.c
! aca1ac880eb31cc5d05236c56d4517ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-5.c
! 46dd6cb6891970163e561301da95b4c6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-1.c
! 326c8fc94fc89f4c6ec43be8d51e5dba  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-2.c
! 9afcb8fc40153ebc9d19239b155915ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-1.c
! 846a5d42e421c455f6f7b3ba090c332b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-2.c
! c4b9354b94a5c4e8b261459a88fa2453  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-1.c
! 47a2ea9cf9e0e32b29b1edb81fb39bb3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-2.c
! 90ee8cc047e5fbd7bd9315172e1343fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-3.c
! c08c42321637e4b6303c7930b23958c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-1.c
! ac041824681fc3e0b002203889bbe34b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-2.c
! 5d80d00db52b3372d0073065d669380e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-3.c
! 3a3c6c26b4772a9f17c3a6e014fb0d3f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_reduc-1.c
! de64d9a6c115e24b3e6de8ae1bd40490  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-1.c
! a11b1e18be5623dc6cebd97785db3e45  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-2.c
! b3012176c1a0e634b9e020f925edafff  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-3.c
! 29206f1fbeb69efdd12f35c4daacd105  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-4.c
! acbe5db38fdd1e86e5d3833dc79307b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-5.c
! 2ca9dc316e4dbb164daa7d3946ec0ff8  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-6.c
! 36f022480cc9ffcb09ad431ca7e49dd1  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-7.c
! 040b84b1cab9901da12a05e02b4df7ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-8.c
! 12522b4ce5887673de3af7d31edb05fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift-9.c
! e50d2a79099f3db1bc04d3acaf74d7c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-1.c
! 30cf38b702df295268bd2dea0fd7366d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-2.c
! 399a7cc00231c37d92db26ff4b46042d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-3.c
! a9eba5a8ad3dcadf63b32756bc7f4c4c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-4.c
! 7ddc05d9c3c9c35e4873bea5cc8e01dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-5.c
! 003c93ee90a7b96a429a6528cad68207  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-6.c
! 2afc0d0a7eabb9ca9ac5f9c400fb1058  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-7.c
! 6ece06fb6def8566cca66b01340bf98d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-8.c
! 19d3bfb53e6db2f60a30b8e92e08f8cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_shift_run-9.c
! 62a9008d918d582aa7f0d9701697937f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt-1.c
! 0c682595ad87ab3827f443f80d370250  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt-2.c
! 91ba767dc3086423f057556de1d6b1e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt-zvfh-1.c
! fda8aee04e08c0b36ee5c2a6d88a82c2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt-zvfh-2.c
! 9086e944105fcb6cb3b4d24b2a750a09  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-1.c
! 6bc52829768928d0d373feddee75acdd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-2.c
! 43a877f883a8e95c7a7cadb2e5806d5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-zvfh-1.c
! 9dd51904a538a5be11032620b3a43f37  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-zvfh-2.c
! a2212320a84775db3572fae6e9dfc87d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-1.c
! fe48141aabcf11843614e94b102becd6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-2.c
! e865aa540c81c8f07112ba2f49aa965c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-3.c
! b14b91557034336bb75b1f7326da88ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-4.c
! 710c42e4b4c15d33f9e9c9520c4671a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-5.c
! 05d62c964822c856a27268ac32f0ec9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-6.c
! 587b560c81c80bb4326e10616dee0f02  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-7.c
! 76aca57bcd5d061717b4926ca8556a8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary-8.c
! 090809032260a32a507a6a9130d1d0eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-1.c
! 5b408a1ddd227ae7581adc11a4caf199  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-2.c
! 5883ab2e26f8957e2ec62a9486f1fa7d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-3.c
! 8ee7565626d6d015657b0c7130a6d3a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-4.c
! d8fe971eeeff993b9a88aa0a510bfbde  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-5.c
! 170d98097c198aed06e49d0cd72f97f9  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-6.c
! 3622c910c9fab96d30f7cedf66a1e2dd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-7.c
! b723428f1a075dcc0dd129f1ccd6620d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_unary_run-8.c
! 198b9a8ea5f89c24db4df3d4a1c2fe4d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-1.c
! 1524152380cc0076b0bcca92bf2a10e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-2.c
! d1bee5f545d0e719c39acfcb947ce36a  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-3.c
! c0a9870c71a3fbd5d96f09e31f9f3c10  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-4.c
! ef05def778c1f62a5222c6fcd0cc8ffb  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-5.c
! f0eff27c7fe5f8e9fdf955e662845295  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-6.c
! 8bdfcf3447ddace161ed6375bddfb15b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-7.c
! afefa1d0b6ab331302da6cf46bc04288  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-8.c
! 56bbd6b292f2cc803bf31aa69dfb35e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-9.c
! a35ab89b4f1328862d2d5893af40272b  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_reduc-1.c
! 8fc4fce49e4bc4f733c7b70ba7788d9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_reduc-2.c
! 6993e6d563f91e3de62f0af1ca47f6c6  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_reduc_run-1.c
! 8faf667c33a8e128d5c1a45fe033a51e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_reduc_run-2.c
! 7afaa6ea87c32da0c534799e46003c95  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/pr111401.c
! a80a327ad7994dcee7af0ba4ecf079ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/pr111594.c
! 1a9f3306db4324b51d4e6cce402cc766  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vec-narrow-int64-float16.c
! 184b7484bbed8a4ab66b558698fe3aca  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vec-widen-float16-int64.c
! 2d8ad493ad96dc1c3f339e47e06524f9  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-run.c
! 2e1607b1db81fa27a9e5ab26b241f526  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-rv32gcv.c
! 3ec590eb3e02b93d2dea4c3e41e85824  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-rv64gcv.c
! 0d0ae53bf57aaff388df784d7713f493  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-template.h
! 09c35a8ec88ce3730ba5150834461de5  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-zvfh-run.c
! bbcbc84e2d73fa773f65dd5eb6c7ae88  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-run.c
! dcd3ed313a57e3a5f80eeb24b0c28ee2  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-rv32gcv.c
! 9af58b9d9c45b84487f86992fb9de63e  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-rv64gcv.c
! e2a2b4c0faa01e9962474d2f11212f53  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-template.h
! edf55901e721486372d31334df3c6f4e  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-zvfh-run.c
! 65abc50c38cff933aa06bae325c01f61  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-run.c
! 5ee97988485ca289c60994bb6d07548c  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-rv32gcv.c
! e101b427645f0a6de79eb22d3b253eb5  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-rv64gcv.c
! 8738d7635c662bdc5223af7638067cd5  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-template.h
! 1325d5a5937c4fcc7570822683cfcb3a  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-zvfh-run.c
! 7c26a74cfacdb81861184580fc6ef921  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-run.c
! 6ead744d43a702c8264caf888918b4e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-rv32gcv.c
! 0f75ba57c919c6c5468dfeeb0e205aa3  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-rv64gcv.c
! 82885d571f2d6fff5c44c8863d016629  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-template.h
! 867162f6b5ce94fcd36a857b84aca68a  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-zvfh-run.c
! 74dc53c1a2687799d1746c26b3e809c3  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-run.c
! 7fa769b250e52078bcfa48ee3d52ab5a  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-rv32gcv.c
! 5d4107198ff7f3dd354c17720af4686b  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-rv64gcv.c
! 025cdd42caefaf00a46184d12dd910a4  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-template.h
! f29c32ef5d966d314e02a97f073bf5ef  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfncvt-zvfh-run.c
! b635f726b80ec443e3036ad9a91d6855  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-run.c
! 36bede645dde9461c959d7eeccfdcf48  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-rv32gcv.c
! 50bc010895b55648f16a3d261defe8ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-rv64gcv.c
! 38afce904f3e8fd14b0b5c3aa18df3b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-template.h
! 7a76c05a2315f3b87f393b64def6b69d  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-zvfh-run.c
! 11969564e95083d2ec359e22e856ba05  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-run.c
! 8053bd779722801fa99cb649cbf70bb7  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-rv32gcv.c
! b9b6e37e76e150d6b10535579f6b5bba  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-rv64gcv.c
! 2359527a0fcf6b405f8410d11025cc38  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-template.h
! 956c5c9236495be612dc1e5d144ec2ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-zvfh-run.c
! 22e83e51cbe4cca41d578d7ebc9dd0fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-run.c
! 3b3a177269fa77f4fc490169ac5962fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-rv32gcv.c
! 8b8f8869c5cc0a6c700840d0fccd38b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-rv64gcv.c
! fb0c2d9a4017a05a5f6b3dbfdffb42c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-template.h
! 8537a285da7dcece0227935733e8ad6f  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vfwcvt-zvfh-run.c
! 18c76174a3ea57a07cdb9417d00e9468  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-run.c
! 1c51695d9ba51d0e3123595bbea3767f  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-rv32gcv.c
! 49965bb2907c568bcf9147da439656fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-rv64gcv.c
! 7fc6c0311eb6cb94b100ef41f92da76e  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vncvt-template.h
! f7158744c12eaa00c075adbdeed6d771  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vsext-run.c
! fa32ddd8f6f6f0c6996fc29f197cd96c  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vsext-rv32gcv.c
! ade16f059b010bf66d77fcf2968ef4e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vsext-rv64gcv.c
! 28fc8cb06a4839eb8b99b277fa9fafc9  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vsext-template.h
! 74c9fd2859084e7be97f1d572f06b6dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vzext-run.c
! 6f9350a646cebff7eff9226d3220b3da  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vzext-rv32gcv.c
! 6bcb6446657b62391ad60c34d4e9b3f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vzext-rv64gcv.c
! 79de851b19bf562fd7b650f742485afa  gcc/testsuite/gcc.target/riscv/rvv/autovec/conversions/vzext-template.h
! 5a12daa267ef1b36fd2b14c30b0c65fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/fixed-vlmax-1.c
! dd2861db83bd4db623b682d60209ffd7  gcc/testsuite/gcc.target/riscv/rvv/autovec/fold-min-poly.c
! b60c9f046ba24d1346603ea33fa46de1  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-1.c
! 229b3cff7eb3b8790c260cf019251aca  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-10.c
! e2afb8eb0612e82a1de88c053f14988a  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-11.c
! ffba3451ff5bc5ddaa3d4bf5d265fb61  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-12.c
! ab6bb96e38c93138143da7dc9db57338  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-2.c
! e05147ac3f8e9e7e994aab71a1f2c8f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-3.c
! 2fad74f3691e1fe8c67edc50f1184d91  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-4.c
! 8738afdc8d8a8a27d0d801b0e85f97b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-5.c
! 3da73cf2962e142ce1869e374977887e  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-6.c
! 07e6931159d5a7dfcbc8e52c2986a5d5  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-7.c
! 1cdb04c29c8f820d0262012555cf7067  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-8.c
! f7de7a80096cd287bf006e673733936e  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-9.c
! 2d57c13f9548685c12d49a8df61ece67  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-1.c
! c568a8cbb433e87e31b342e7db6db088  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-10.c
! f7458cad703374ffc1a3c52e45a8e5c7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-11.c
! ff889f2ffb41bcbc38a4139b44359dac  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-12.c
! fed285f165a2546a7c67b97169a2ff26  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-2.c
! 5327867a4940309d5e39ce0fa7db8074  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-3.c
! 2e1c67f38b814d45172ad7274e53ae26  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-4.c
! 431e74da439d8920736fcbefa46de76b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-5.c
! 4ae042f05d834bfecc0bc369c00fbe84  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-6.c
! acc25b788297deec6adb883407c25003  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-7.c
! 1506af8a544d68f1872b38e4aef7bcb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-8.c
! 5e081fc6da08e09aa3a5865365dffdcb  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-9.c
! 8533c4d7c0e0dae56a3b9b323df5bbce  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-1.c
! 14e180a33f3e1fb9b5ad947d85d898a5  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-10.c
! b864063385f1b9c99b6886ec9001d8d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-11.c
! d941ded58d2724175446af0a006a8ddf  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-12.c
! 10513de38c038b4ec74c0833192ede66  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-2.c
! 061938ba87270d981abdacedb116db05  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-3.c
! 9d4afd73c9693a104f5db3f6677af34c  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-4.c
! 4a5df0af865e9a087807a697ec82d226  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-5.c
! 658b9b310982b49f93bafd0f40729cc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-6.c
! 7a03a77078093c19bd9bb614a1fa0701  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-7.c
! 61a583defe44b3a191d28fb84b40b12c  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-8.c
! d961b42f9ee0851ce8a0e76a47b8e030  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_run-9.c
! 3d4f2a33831ff88905bed1eeb3fe0067  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-1.c
! def74f9d0756642c388d682423647912  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-10.c
! d69d6ac5d908db9517a7fae596c933d2  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-11.c
! 6740a33826f3b29bfaa218dc4dca0f6f  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-2.c
! e5635a8fc1ae066bb25c6d3cb11f3177  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-3.c
! ed33a93708d85452396460cfb798c144  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-4.c
! e97511fc22f8c9858aa14d638118382f  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-5.c
! ce7d9c44c164fd7dbcd1c88204cf0f11  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-6.c
! 109fca193a62368b3587b74a9cd954ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-7.c
! edc5e888a0677f302414bba8c823a967  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-8.c
! ae06bf6b40f1b86d084fdab068254c26  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-9.c
! 2b5545bcbfd658a144a5cb6ea891e8f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-1.c
! a4d20a34251059c36cc78b42211cf245  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-10.c
! ef9e2f708a55767a93ce92885bdf6601  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-11.c
! a58febe1c9b1dc9872ebf575a49eed1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-2.c
! d92ff5b10a899c4e12f7158c85ea1d62  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-3.c
! da2163270ec2078fdd41db1cef04b210  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-4.c
! bb563a7a64b02a6a251aad11fbfe38ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-5.c
! f002ed2c179079bd4ec5809129c83e07  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-6.c
! cffdfe8793444aca1e0d2f43d03f0d92  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-7.c
! 9526ea83440c5c304abd7cbdc91aed34  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-8.c
! 628b2306e235b8c13fbb812431884830  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_64-9.c
! 4b76400c9458f9e8e8f3ccbe91e0be7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-1.c
! 6dd24a27c2674bbd10d59c96d65fd8cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-10.c
! f9b6cb277d398f7f442aed42062f9b59  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-11.c
! 534123caf6d86aff41b8549fcc44578b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-2.c
! 5d91b933948d93a44a6acba5fe0c7b56  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-3.c
! ebbd58df04b9c7d592a9d68f5b2556e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-4.c
! bf04b9b3ef9c27c3eb59bdbf6e387e7d  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-5.c
! b31d3ca1295a857167df82bc18b78c37  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-6.c
! 90737e889392760124ee570c1ad14e92  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-7.c
! f10008ed13651ae7555e0dae264c51b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-8.c
! 2901ea0b8817a390eb68007de6d1c477  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_run-9.c
! ecf54e32e2dad5fb0e5f084cc7b5aa06  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-1.c
! 95f49a27de41ceffc97810f790995d0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-10.c
! 0265e72135b6b95ff6d4420d2d3debd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-2.c
! 5b228e1bd004e057c9764875d4a8f00e  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-3.c
! 8d4d43880862ee258b0a2340d7b5f96a  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-4.c
! efb08490fd7dc0edfbe7c3f5354bb260  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-5.c
! 4ed66cb7971e17aab07feeada2d7162a  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-6.c
! cf8d78b365891ab80a7e5084e86d3fb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-7.c
! a579b99fb07371a6f1360eb28fdec165  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-8.c
! 19389ac0e4895fe4e2398ce7fbe24f56  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-9.c
! 1669acac573bb12b13905945e972905d  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-1.c
! fe3b9f700b51af31c5a82b016898da42  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-10.c
! f1fa5465fbb4fbccf74ae14353679cc7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-2.c
! 120309da81174823daf73652c1d8a763  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-3.c
! 5933b7d7d6f7474d0d720ebed84eac2d  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-4.c
! 2ee7e5a9e96e785680149e67c571c1d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-5.c
! 137b5108eb74025b43cc1133b04a276d  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-6.c
! ee450f2fe4f9e91ef778311a87646bb5  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-7.c
! 1b87ac8e5599f220bc1d4512b602b5ce  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-8.c
! fa4308e06f34b98b392e534b7cd87a01  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-9.c
! 8150f2fb490ee15c4402b0a7be8a4093  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-1.c
! 971602886adbe9058c9f7d3b9e4af1c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-10.c
! 3d53deb7c91526e15f02bd69aeb05ab9  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-2.c
! c8ac91fd6375bed0e4bd96b1c5a66616  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-3.c
! 6618f08c4baf29ba2c3234f0542d2ab7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-4.c
! 80822bc5dc91bd0366df54339704ebd8  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-5.c
! 630adfbd3fa8c849023ea504f16d5e36  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-6.c
! ec593c097662c95637acd48d84a46d06  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-7.c
! ddc7cb4821762828b6f4482dfa611233  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-8.c
! ce82a1859e36fc9aaf9f84da1051c227  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_run-9.c
! 67eecfbaab4ce693a2214d063e2e9918  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/offset_extend-1.c
! 6464697aa50fa90a3316c80790495982  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-1.c
! 502eb28a3e9995b943b089bc5c26e14b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-10.c
! e9ebb52a171340cec0c957b1adde5c8f  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-2.c
! 32c89e72e90127c11a5ae1269085c5c8  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-4.c
! 78875bc49d2e4c46366d4dbff5001cf1  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-5.c
! 89b7ccd7ed2f606e989f01ca32221136  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-6.c
! f41354233dcbe998fc10e96ceef84bba  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-7.c
! 83689536e29f9e091d9483d49919b63e  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-8.c
! c47954c3a458620a191d54656e1ae7ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-9.c
! d54d5862b8bb5f9099dee12b7a4014ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-1.c
! f05a7907000a9e8043e3faa2ec1ecec5  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-10.c
! e613035127666426bc71e460a0b2c90d  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-2.c
! 93fc602e48d37bf5c3d5ddf373548929  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-3.c
! 623a1df6cbb9da3abd7835620da30e2a  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-4.c
! f0422c834ac0acf917ca6cffce0cbe9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-5.c
! ab08363adbf56702f455c7a032de59e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-6.c
! f66c5685395e3e7c7b541580d0528f43  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-7.c
! adfaabac7aed62413d99a0fe30e43d9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-8.c
! cc9315e2edf7841ba3c5e1482ce93ad8  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-9.c
! e52b15dcea985961bc166bd4cd9865ec  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-1.c
! 154874dd2c970930f100c3588f3373b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-10.c
! 61ea0834353a5e0a1eac3ea249a2c204  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-2.c
! fcacf3eb2c9e2eb5f47de30306410268  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-3.c
! e3ba8f88ebf1804af6b674419b815cea  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-4.c
! 711315073e4e468f76cd7f9a3585267f  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-5.c
! d2cc6182588f1fb6df23033651d85940  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-6.c
! 183cb3dc5b7db904b8d29ec2c3487ace  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-7.c
! ec8649f26fbf25b01aa8267cf8fc3e9a  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-8.c
! 5081985c098296177388e26383446524  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_run-9.c
! 1886547c3576de2fe28fc0e6b1e83135  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-1.c
! e6810193f6b275e03eb1dacdc993f154  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-2.c
! 71f36e6090396f7da8cd0a7e211aa985  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load_run-1.c
! 123e1e676e90cec58a1e110a14431406  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_load_run-2.c
! fea034cbd83294ae36c526c9650d89b9  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-1.c
! 911ff15dbb1d693aa4e568b3de92c643  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-2.c
! 107743a69f58f28cf14e8a598bd333e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-1.c
! c1274e3ee15699a124ca1ff4e24fd55b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-2.c
! b19320b97462f9bf492cb0314d69011e  gcc/testsuite/gcc.target/riscv/rvv/autovec/madd-split2-1.c
! 7da5b354874f99fde1d14c20b0fa76e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c
! 78f17ccf2c8434fe0739b9fd95e2aa43  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-1.c
! cc143b9c26bd55a3825fe0f7577a91fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live-2.c
! 623d0c5a3664cd33a7f93ffdf4a25790  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live_run-1.c
! d69ceeab19f492e3935a34e42beed5b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/live_run-2.c
! d385416f471da3d9e454bc6974e6bba1  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-1.c
! 9d44bd74bae5bdfe7d14725c48a41e10  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-1.h
! de151ceb6c7ca1a700c320c5e91e6ee0  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.c
! 54ae6bbdb7945be021b799bbb383a494  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.h
! 55c5c91a2631ab15f404009e3da4a541  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-3.c
! aeca3a0b08831d9e50e8387d54e39651  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-4.c
! 32bf67c3d588148260c8e457ea547100  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-1.c
! 8042e1365da189c41bc97da7e526261b  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-2.c
! cdcb3f79dcdc39964352b1cfd0a498a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-3.c
! 5236f16d76b27de76aeacd4c49d1ca98  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-4.c
! b9c42c17c188c8d20ae36a1663e7703f  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_zbb.c
! 14ee564a315509685f622f7c538f6323  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/pr112773.c
! 7d8e539f2d8f971aa17162bf1af6be22  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/select_vl-1.c
! 93d71f92f52cb23033f828501713f071  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/select_vl-2.c
! 8296af47d5dbbf6472d921747ddab15d  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.c
! ad63bb25169ac08133a112caeb9cd138  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.h
! 7d205209316fb0bf3e4ccf0b60b1fdf4  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-2.c
! c54447487e035534993993989e6b4a30  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-2.h
! 1f5b0797c93ff4d48fb2885dcce4477b  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-3.c
! cba68ba41aa8f6bab0ce31abcac07aeb  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-3.h
! 2b606e3f20fc0d09ecbe7324efac5c4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup_run-1.c
! d00b5daf32b6bcdf2c61a04c0ff86157  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup_run-2.c
! 0973f66a27a0deaba4c61e76fa7c2318  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup_run-3.c
! d53106a7828a6b6371e84f4e77860311  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-1.c
! 3bcd4ba71f99fdbda3dceb4445aa3d35  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-10.c
! ab63310be0ba206d0f928a21ccf9b95a  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-11.c
! e89716c1c2b6e0975a892021487cb55f  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-12.c
! 69e2bb799f70d64b76db2a34a3b64ee0  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-13.c
! 477d5957ae8c9a147eb86c6f0f8dafa0  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-14.c
! c9339cf2f1c3e532aa52d320d3b170f4  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-15.c
! 0aa7cbddfd71209708b5f731abe0fbfa  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-16.c
! c09791891d4d4c217e7120b969fc7ac9  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-17.c
! 804f12e27b801fc0e767f2fb433f481d  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-18.c
! 283b049cad799e8df06991c29c87bfa7  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-19.c
! d2f0aabd340e9fc16b5ddbe9983bb1c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-2.c
! 669642fd61cea949bc3c0d3d673e662e  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-3.c
! a875eb8e50be206393236d67c1c4a476  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-4.c
! 9413703b7bd6e43cc20fce6de314e4d6  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-5.c
! 9fcf382650968aab13fc377e0908e3f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-6.c
! 18fe26733be31844f2d0443932c7e7ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-7.c
! f80c1b506d750e2700596c21d70a13cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-8.c
! f70b07a9ef36162dd4344727c29e6422  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-9.c
! 783fdc827152947aaaf814c150e26b83  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-1.c
! 8cd575cf94ee0a9f2f9dcbdb116b9d8c  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-10.c
! 79543dc45c0daecac5b1106b13a266c5  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-11.c
! 2cc43e4ad9384137fee18c66c349c457  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-12.c
! b87fd577a47fa4c70563e476c711bd1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-13.c
! ae787946bafc9bee155b315ab328579e  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-14.c
! 3835006879b917cd660d9756967c876d  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-15.c
! 37a4f81c2aaa71a04fb2f50e8b52567e  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-16.c
! 99a4c0b98fddb2cbce9bd3f8d331ead7  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-17.c
! 668537c2838601e718b8056f2e415795  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-18.c
! 990be94aa036e06eae797c11b93cf522  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-19.c
! 47dfb4279beec9757413b3b93be1e310  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-2.c
! 9ab8108419e79da754000a3284dfe5a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-3.c
! 2a27d2e168f3e5c119cde6ae35c6dc96  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-4.c
! 40923484f529c7536670d8b8dabaf59b  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-5.c
! 3736e5d73b9ba1229981c41f23d4412d  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-6.c
! d6a7f5c0d14923348b7069b4ce21b1c0  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-7.c
! 89fd4d39b6ed0260260d0ca08f20f04a  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-8.c
! 3779797933024054fe7d686d2e5e5bfc  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp_run-9.c
! 975d5c8102bc64c5a527df12650a76e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/post-ra-avl.c
! 8d1a73b746967b6ee561cb1e31604c6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr110950.c
! 8ca531a51cf3b632565c523fad511181  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr110964.c
! 13d66db1103ff4166ea30c174b389e4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr110989.c
! e86a76422af4f376be5454b8a7a1a2b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111232.c
! b3a6b5754323ff046d0acf52bece9724  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111295.c
! 544c93334e9505407b1533999361a83c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
! 20919065c4bce35bbdddfe89476925b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111318.c
! 87161c3d5beb59510c97a633ca83a3cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c
! 0f9391655cf778fa38dcdc8231ee6bf7  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
! 985f19fcf995405a15c6c92f7ee653e8  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111486.c
! 77a9a13f8e8e8a260a2b8c48ff1729e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111548.c
! 200c284a34655274d55a300b2d41b4b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111751.c
! 903026ca308ec47dc91a6d1854bec473  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111888.c
! 48f4432dea058c64ee1ac21ec3131796  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112326.c
! 195b01e2c9c5f20a43f8ea2a247c028d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112399.c
! 2e9d988149c4714c87ea7521ebc651bb  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112438.c
! 8fa663a0bc0997f26aed779402be388b  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112450.c
! 61376420e242150ba16475077d458fc6  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112469.c
! 77ecc430ac365693598a7d76e5c7f33f  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112535.c
! 62c2fbef6a00d08d0ebbae157e45789d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112552.c
! 7cf47cbfa6e0ecbc48629ecb4df4d779  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112554.c
! a8186d7f21c9af363cf051014a0cc319  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112561.c
! 46ab0cfc8813b58161a933ab88d4ff86  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112597-1.c
! 0320bd61acf0f7dc7b40fe3d463d6363  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112598-1.c
! dbca23bb4cc083a0b5b235596988c922  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112598-2.c
! 03ee9ee091028e9ea963b3e62b05112d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112598-3.c
! 33db6015bdaf9ee7382fc8555583ce80  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-1.c
! 76881d6320b3342e712827a2a23e9e22  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-2.c
! e26431de34589c1f55f50c07e6cf4838  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112599-3.c
! f97626b80bcd6f6c0efc2072abd5e327  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112694-1.c
! 5f8d1723bfd6f11f48e6972362bd36cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112694-2.c
! 637505b89b7e97deb2a7e2dc5be52a1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112694-3.c
! d77c86deed962a48246f79349b85e40c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112801.c
! e70a8df71157ce21f15f0a7c0285e582  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112851.c
! 315729f2938b87c46fbb4d709247287c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112852.c
! 9e6f53d263450961ce57676a83805342  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112854.c
! 1bbb3e14a133140afc0428a72ff7d17f  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112855.c
! 6bbb7af1ac0ea8bfdf9b1e0817bec012  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112872.c
! 3cdbcb5aaa3e3e016a8e11a3f90f5cca  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112932.c
! ea1a52d4d4520c9759f08c40d864ed64  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112971.c
! 54b9fd1958ad7501fd74fa0c09213498  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr112999.c
! f30693b200f336b7d96f5c6c869848ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113087-1.c
! c2d70a58e506274256f65d7f6cb17f6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113087-2.c
! 60a05c0c62f04304b06b03b25255c699  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113206-1.c
! d470a907a5c049c5c7ff489b6cd66e5c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113206-2.c
! 2c4e25a7be198b668bc9e0c734d22df6  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113209.c
! 690d60fb5e8422e5e4384fa519eafe88  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-1.c
! d805ab13b2bc9ddb0fbb9155fc11d33e  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-2.c
! 1d147cf7c8af4f8e9594cef6f2fe3946  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113393-3.c
! dcbc4698adb01f709cca553cd193af15  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113469.c
! d6c10821c25c768b36d8e67bb81727ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113607-run.c
! bc6b132c9cf59831631a5c52bb926867  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113607.c
! 7228c5d856cced6b1c5d2a14d990b3cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113697.c
! 20cae9048158b587494216b27ecc097f  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114028.c
! 6dfcd150eb25551292db389de26caff3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114196.c
! a416d6914c1fa1c63fb0ecfdc563031d  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114200.c
! aa7a899cbf47b134ff11f8a14258f5b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114202.c
! ffef069d9bd050c4b8acaedcaa19bfbe  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114668.c
! 5e75fc6ae813fde66888597b1fe4999c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114734.c
! ee8bcba5f6876f2027f0f263f81465aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-1.c
! 7ff884bfa2e6cf9bc4c6172466538515  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-10.c
! b2792e9264dcd6fa2e88f495d51677e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-11.c
! 322e716110854fbb568bfc8c7e9f0716  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-12.c
! 7737e9b0da7a6482f4551eaa4c447355  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-13.c
! 255d043a88d146e7f78f9bf3a7ebaf5e  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-14.c
! 4e3be49940a0c0d3558688588e2d5437  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-2.c
! b6356d58747d98d9fa86a47a963eb712  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-3.c
! 4be182dc326ee07add7d4ab5f0304d1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-4.c
! 8268ef5a8be096e3804d18bb1979cd67  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-5.c
! 1d9b66b1c84dc799346e9914e161df30  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-6.c
! 2692e9af0db04970b0ccaf2dc942ccb6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-7.c
! 1cc9af57ebd55727243f827240d741f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-8.c
! c9dc90c6196ae7068ae2dabd231dbbc1  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-9.c
! 44378062fac4c34ffea48e68411cda0f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-1.c
! 85fac3e4a3ddf0fb8ee0c81914d25471  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-10.c
! af28e2fd13d9498b07744d5d95888175  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-11.c
! 17b9d3fae833af3c3007c8d4723cd5d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-12.c
! 68bd20e0ba51aeb6f5ebf5d297215cc5  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-13.c
! d58483bea5306242a79e880f510506de  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-14.c
! 6a24ea4b65bb7585ff4bf167664011fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-2.c
! 52cb690e89ec6209c5dbdd988ccbd8a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-3.c
! c45fc8b957d3795551007dc8778f0905  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-4.c
! 3029a24662fa73e3340920ba92b635f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-5.c
! 62d9fac5013c36b464444825e0ce2ae6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-6.c
! 806b456b7c04a495d9c07f1c78339fd5  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-7.c
! dcd95e6b0ffbcd67134508285cf0dd7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-8.c
! 079315192f9f57442a4c0d1132f7ec72  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-9.c
! 32208ad008f41245be33936306a955c8  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-1.c
! e1f86fc6350b92e9f73b5a34874e1310  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-10.c
! 2166358447adcc350e54279c2a70a7b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-2.c
! 749582255f0543adb43770a2fb782a4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-3.c
! d52f616fd3b07a4d65fc4fa9119dcfda  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-4.c
! fa602ac5a67a9bd2f41190760f8ee254  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-5.c
! 9b3b6c980f900d0e5e31449c80ba1989  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-6.c
! f830bc7889b5d1360c2788743d753f7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-7.c
! a4bd382a3c72c6bf11ea7815e9926999  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c
! 51d6378574aba677cad911a5f025636e  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-9.c
! f43dfb7397c7a585e908a5efd48027ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-1.c
! 8215a8ab8bf66854039bf4418480c6bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-2.c
! 8ec94a8edb2e1640af133cf4c2af742f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-3.c
! 011a508699f5481cede3f4514abf2623  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-4.c
! 198b028d2c0efd648b89a97f889fa23d  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-5.c
! 050d50bbb7659d4cea78f0594a75b64f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-1.c
! cb2fc776d7a44feb79d5ad461da3347a  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-10.c
! 25722d615b6c6b3dcaa7e9c50df476fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-2.c
! 137928b496990ff7d087cfabbcf1638e  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-3.c
! 10b8820ce24edf19bd660325241107ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-4.c
! 3bf1e78b3cf5337eb57314952080d067  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-5.c
! 2846c31c334f031cbca38f98b624956a  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-6.c
! 2aba82e44cd8e7cceb5444b4ee3c3808  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-7.c
! 83e054758796345a2d90d1d3f20df090  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-8.c
! fe1df2119ea437b281f0934e98751af0  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_run-9.c
! d25f7cf3f725a4f3b912251172635dde  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict-1.c
! 13f41f6a282e9b9cec3f18f3b5bb2770  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict-2.c
! c29a34c36863947b0a9dbf97871172d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict-3.c
! b9d5cb6b0a52f9fefc366a7a46c7adc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict-4.c
! 356a0c80ae1d17382c4d0ceb959d4d50  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict-5.c
! b2f105b27e4b5f931e5c66debbe379b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict-6.c
! 9915ed53a3803fc021f293b977a84e5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict-7.c
! a98d30dc75773026799b3df3f3f8381a  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict_run-1.c
! 712b8eb009357e304ae65695c9185227  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_strict_run-2.c
! 292b148e5a0b3d14f5ebac3fad116664  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_zvfh-10.c
! a0d3c0787f790a47ce268b55b81d62dd  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_zvfh_run-10.c
! 979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/autovec/riscv_vector.h
! 0740ed4b0bccf8a95f3268d85feb4109  gcc/testsuite/gcc.target/riscv/rvv/autovec/scalable-1.c
! f00c659d5e0b9bcb12ef31391dd22cdc  gcc/testsuite/gcc.target/riscv/rvv/autovec/series-1.c
! d64c9f6fe7344abd3299437c1ef4dfb7  gcc/testsuite/gcc.target/riscv/rvv/autovec/series_run-1.c
! 8e40a987eb306df9e33adf3d96c885ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-1.c
! e361b814d6c1a2db0378e33bb0f45a2d  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-2.c
! 3576af7e98c5aa20081a56bb4b37c74d  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-3.c
! 3d8ed1d2f663f89bdf3b5d3e429f27f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-4.c
! a0280909abc5f9c752512011a8bb99d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-mask-1.c
! 7b06d48b2780f8f240246b297efe511f  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-mask-run-1.c
! 9896a5960780d24f47d224a15bc03539  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-1.c
! 28bd0dac8a65582f929b1b2c1a62aeda  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-2.c
! ec4079820484ab19353528ca2b00b5a2  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-3.c
! 84684cd97f514be845c603e7a13e790c  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-4.c
! 20fe2f7800b885120e534801579cad35  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-5.c
! 679d261809315603b9f032b20e1f3850  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-6.c
! 9b834ca822893dc61d81b9ef055a6178  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load-7.c
! 302be49e99b6bd8ae6022fece25b9166  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-1.c
! f54c5bd8c0ea5cb8801283d906bf3b77  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-2.c
! d8ca68facc317cf9c8f3963e0c33ae27  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-3.c
! 5a4d16e4d14a539c8f66571b1f9612cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-4.c
! 4350c93d0f1448009a818181ac7a1575  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-5.c
! 43b45215047f9c022f5649aa2c1a9603  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-6.c
! 6e104c6692953387745ecea527f842e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-7.c
! 0712a9f974fd18b7993111bb09e42993  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-1.c
! 4e78db881d2d7a3b9e8c57fe204acdfb  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-2.c
! edde07ddbd262a64d56d637d29bff0af  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-3.c
! 0933851d00310c01da5a8f47af03a691  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-4.c
! 67a5a328d165c9db1535262c0d5f498e  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-5.c
! ae23c66ccb9e8a5d5b495840a26a785f  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-6.c
! 2b3552d76566e95a8df2c62f875b1d11  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store-7.c
! 2d53f8b3c679c9ed02a9c06141195501  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-1.c
! 6ae78d0d4f53e9974685bb1747a08e25  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-2.c
! b831ffc758237358ac0b4f5907d39073  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-3.c
! bd5a0aedd98421aeb2d22a54087d9c42  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-4.c
! ad874e02c91f2d051963dc66f2d0db0e  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-5.c
! 19e03b62e1b2783be397854d72badc33  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-6.c
! 01fa170f80b9b77a54ff2851bcc279af  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-7.c
! 83bbe5ea70bf301a2f87f6c44d9cd2d6  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-1.c
! 910a95ac122bc28f0e7222d725fdb804  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-10.c
! cfe21ce05f9af565fbcdecdd959f094b  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-11.c
! c73bdbed48aeeeef5341f1ccc99ee7f5  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-12.c
! ade95a4eb7aa31783e0d2a697fe3b363  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-13.c
! c114fbe8ec5c132b96c091ba41ffab92  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-14.c
! a4e8b38751ba0f8837b13eed7a75ee56  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-15.c
! 1ecc0f86c599f3ce587b8eb20ffb5aca  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-16.c
! 83e6dfbc506d55f5c1e923e32da71206  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-17.c
! 7673fe4018488baff964f449e756d007  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-18.c
! 20aba59c1b6e85c01586df85e2d73cfd  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-2.c
! 51836f83323b7d7ceb4fc2cb91bbe3ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-3.c
! 64c6f3e89c0a5c88ddca73404067ecde  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-4.c
! 660bd34f1fa24a6d48709a46f38870ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-5.c
! 33d54c4e13b86313e44359a1e437f245  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-6.c
! 8d7219df7983a4ccb72e78f3726f1eef  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-7.c
! 6a2cf14ac860c77a5722a3fe9c78f245  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-8.c
! ab7e2224ea59aca4f15f53504420f1f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect-9.c
! 5580276c12c79df47a3d87e215863c10  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-1.c
! 1b297dba8b12fa7dfa8b506ce18f3eec  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-10.c
! cfab45f400c4741c6c043cde84ad2a37  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-11.c
! 363b0f26ab8bc694cb68cdd4cb30cbf7  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-12.c
! eeac6592dda90b7fd21ea4bb7bb6597a  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-13.c
! b109ab25f41564c4fb5bc770478a3728  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-14.c
! 9933916f0bde971fa5f5edb2d01edc64  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-15.c
! c53b824e8dabc983bc1c57693bd07d26  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-16.c
! c951d5d78a6695807bcb898a4f986f3e  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-17.c
! 946f1e5a97d2b81370c4f5365bc213d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-18.c
! 0ad177e8674fb1dd5972308450f4f038  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-2.c
! cdc863d934483f5ae5b3f53b2f8ec349  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-3.c
! d8241576d66f2991dff01fd6aeda9c09  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-4.c
! 60fd13ea7657746352b9f630cc87c97b  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-5.c
! a9e43e12d05f5060efb91812c5538d27  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-6.c
! 9ad0b4eb2ccb28e0fd1adef5c8454588  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-7.c
! 324b3f01b2d22096ed23e1c7b389fd80  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-8.c
! 5690b06a34bd472837c2573a580ce080  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-9.c
! 3ec4558b8a9b8151a6ec061952ce0d1e  gcc/testsuite/gcc.target/riscv/rvv/autovec/template-1.h
! 68af9e429e1d21a9b0a022aaea868104  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-1.c
! 462e8176f898c1c5eb2f95c5289e157e  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-10.c
! 831267156e46d4108fc3da694c4ea89c  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-11.c
! aa06ec7523a8c2da8c74577c9a3363f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-12.c
! 0ba6b75085ceb560e54b5edcdf242763  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-2.c
! 9c9f009cebb0310f4cac4de0a318d4b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-3.c
! 5977ff2bfbc6b7648a6208aff2e5d0aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-4.c
! 671cb05019a74da99ddf78651725334a  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-5.c
! 1058b2f30d24437488a21e4bcc91e738  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-6.c
! 7002a274ffc74d7c6fb5a8cca428c8fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-7.c
! f1dadbf8f28be1c1b4bd79d22024a073  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-8.c
! e1174c66526f81d51a1a65d0b82d21a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-9.c
! caf3f8676f1505e9469c006b959d08e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-1.c
! c218f65bd26c23528ce4337ec7d7e635  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-10.c
! c9f4ed7b503493c4c1e3f992257c590c  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-11.c
! b9ef2fd5c027fa543a0382ba1cd5d137  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-12.c
! b2487ed7ef9df087df3abab9a2e268b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-2.c
! 50a96d1d1586ac5f144ae26c9c156c71  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-3.c
! 77b2fc4357e17e309f307bd01a32cea3  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-4.c
! 1f3734db0ec4a3643672a763bfd984df  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-5.c
! d4c02858dba56d46ad1f9b1dc50d1dbd  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-6.c
! e41a32aecee28893f50e9e763b8089c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-7.c
! 4ea625c0078275b4e14afae13ed0a657  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-8.c
! a39c5c7db41839be70bfb9cb8116baeb  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-9.c
! af4303f4347be0c037b4129122abedb7  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-1.c
! ca5254bf381a74e15eef1584bbffcfdc  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-10.c
! 7765df9cef461ecb434d5847a20e6f22  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-11.c
! 06cd298b0182b0dadf548eb31e421e18  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-12.c
! 921082f9a457cecdd129e9f0bea16cc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-2.c
! 913515acd52381e4bf4573ecd036ea3d  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-3.c
! ade16a7389b5bad31b81c892fb727b18  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-4.c
! ae86d5d28be0ae825fa074927d8effdb  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-5.c
! 324794c30fae13026f0d20368fb446ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-6.c
! f8492da7c1fa786894fd3644c884b4ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-7.c
! a05c88b4d7293c55bc17892469c88b3c  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-8.c
! d7caf1080867e87893ab4661396041ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-9.c
! 7863f5184ca1d8eddf4dec113cebe646  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-1.c
! 7b10820f6ded905b1a226f914120e132  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-10.c
! 635801901847178070d9a20820bd5ec1  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-11.c
! 33b620d8d198e162953cad8f4bb4aa26  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-12.c
! 10236468a5653c0e123c60c085f2e960  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-2.c
! ca5de4492337c244e2b84383046fb5b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-3.c
! 690e1ecaa081290af7a1fa65b07c3faa  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-4.c
! 1545944622d783f16d99634b30879419  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-5.c
! 0ddb016ca9894eae9cfba32f3b44733d  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-6.c
! 486041b3d297c18ffdf72b1a2fe7d68c  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-7.c
! f9403f6b3e4cbab23b23a7915dd711ef  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-8.c
! 0725f562c49132b16ca76c52095d4af7  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run-9.c
! 59117e572525b4c2c7dc822703a91a10  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-1.c
! 97cc078da250ea6bb737b1be02676fc2  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-10.c
! 9dcd3566ac19203320cfe9660cb291e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-11.c
! c4a807ddba7d04b059c5917701e8e963  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-12.c
! b2a9bfda6f5e37118fd86978d50d95c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-2.c
! a7ba2b680e7725d8a2e11dfba5b2f521  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-3.c
! f9ec2461bb9d9f1b52e6099cb95dfc73  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-4.c
! cdf200eff327ea23c1a2fb17cca6e95a  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-5.c
! 947135046e67cc0ae0090f936552efdf  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-6.c
! 21038f0307e8ae47b9e1c0b78c957428  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-7.c
! f9fd9f558cc31622f8ce317452a143de  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-8.c
! 12b357a36378fe625c739110b89f6ea2  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-9.c
! debba095ca3bb203781428195bc1f151  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-run.c
! f9ee376f7fd20f08d924578cb1847f52  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-rv32gcv.c
! 45c4c85d4f4b8a7198d32ba25bfc5cdf  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-rv64gcv.c
! e2b9f2a0c739cdde5c26fce8fb22a108  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-template.h
! c7fce1b796440fb0a1acec96737a9368  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/abs-zvfh-run.c
! 6a28b5443269c08e3fc97d7a410709d6  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/bswap16-0.c
! 872efb89adbbee0d6309d2ab98fdfe07  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/bswap16-run-0.c
! f14958485b40fdc1d88ba0c4aea5d02d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/cvt-0.c
! 9d417e0d3ee3870bc700689d7b9e7c1e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/cvt-1.c
! bb95b119cced47d518e8822aadd4eefa  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-0.c
! da05719ff4ae4d1b714c1dce7cb0e613  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-1.c
! a49eb7ffbe1bfaa3637f58fa87b1a848  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-2.c
! 1be603948566bd350933960812e731d7  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-3.c
! cc06f525a01de2b402199a785c141eec  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-1.c
! d1d733efc8979af8ad6008a9fc5a069b  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ceil-run-2.c
! 568f1ebc80d30f93afaf52ec402545ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-0.c
! 57d261414183e6d74448403ea5be0d45  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-1.c
! 19362ba9259b31abcf9c4d43d47112a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-2.c
! b8c163ab1a67cfae89be02daf03813f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-3.c
! 003e55be0f374698da2aadb130f4844d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-1.c
! cda09eedade71370d8b9c6febbe360d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-floor-run-2.c
! 342ebaa47421cdbb8e5575850233f78e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-iceil-0.c
! 0057e5e8d8c090adba83627d65b1366c  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-iceil-1.c
! 4fb9860a7256dffc3600de9b2be02355  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-iceil-run-0.c
! 4896502d75d0f0c1d77da35752a1a851  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-iceil-run-1.c
! 32e2a8c894b6dd32228528cea8126a4e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ifloor-0.c
! 413f055d0156c369e3e9950012b57e01  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ifloor-1.c
! e504602d387c3a87c8ea936436dd73ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ifloor-run-0.c
! 7c053492df890162b617c1ef43dcec9f  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-ifloor-run-1.c
! f4e477df592c776934ac8dc5e58c5e1e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-irint-0.c
! d1ee01b42015fcc3a8e82ba45b2587e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-irint-1.c
! 207363fb31e0e65038dfa4ff649c9f34  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-irint-run-0.c
! 3c088dd4f22fd4bb8c5030af96fbbda5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-irintf-run-0.c
! b22c121e7ec71832655b491e0aff6ccb  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-iround-0.c
! 4f51097807a1df83f00e1bea57dd325c  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-iround-1.c
! dc265a80e68ce5037b8a5b859f96622e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-iround-run-0.c
! 502167e5ba2ba2ce49648e42c0e657b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-iround-run-1.c
! 574b20688e4477c25460906a49658860  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lceil-0.c
! fbc0f99eada62babdf82e901acbd5cc2  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lceil-1.c
! 7072db55d65aa1c5ed61ae95c5f3210b  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lceil-run-0.c
! 2be469d3f59c8a34db27853e36b1b847  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lceil-run-1.c
! 0841b6b57f31c5a55c53c85e0c41731e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lceil-rv32-0.c
! d6802f2205ded72487103340c14f776d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lceil-rv32-run-0.c
! bbf7c5c578e30aa547e689a86013cf4d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lceilf-rv64-0.c
! bbb62a79717e242e179baebfd4bfe283  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lceilf-rv64-run-0.c
! 0d4b3085ace6333688872df90165f4bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lfloor-0.c
! f4ded2f98d90be1285b49d176dbc6ad2  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lfloor-1.c
! 7c256900d0f011c33e27cf1e1347ba1d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lfloor-run-0.c
! e2046b4bf81ce0c989aedb13d782376c  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lfloor-run-1.c
! 50765289f4b0199dbc20bc4f511d38d2  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lfloor-rv32-0.c
! 5cfda95c7fe3c0b2885ba4872fd32b97  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lfloor-rv32-run-0.c
! fa589607e83441059f992665b91b00fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lfloorf-rv64-0.c
! 27e1bd99aad16a52e67454141c5bdc6f  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lfloorf-rv64-run-0.c
! 6d111b6c9af69fe8ef7110ba057edb0a  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llceil-0.c
! f2747e381c18b35dcc9a0d2888c41489  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llceil-run-0.c
! 5b2bab30e11b9da54c86bbb76effcbf6  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llceilf-0.c
! 317b887d3eed6667cba5ef0600c1e578  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llceilf-run-0.c
! d28b39178d78bd9ae06a85d34e25ea33  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llfloor-0.c
! fc5f702f3daec18de9d4c8c6ca540122  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llfloor-run-0.c
! c02d1534545e214ec4a64f7c019bea59  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llfloorf-0.c
! 96e5577e4f12b5cf8758e17cbc5e4637  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llfloorf-run-0.c
! 17dc4d3b6940192d65e54804b368edd6  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llrint-0.c
! 30db732978b6bae27a132095d979909f  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llrint-run-0.c
! bc9e7d50dac9420c8a1b2a76903c77ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llrintf-0.c
! 21c64e6f0dcaf74e4eae57bee4bf8c3f  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llrintf-run-0.c
! 0bf830aa0847d113ee3c68a2d50f1418  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llrintf16-0.c
! b24af49b7cf2b7863c5dc610633ec9aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llround-0.c
! 767a566bda7caac012e117b47de45f6a  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llround-run-0.c
! 192bc3d425bc10ef9d2ca3c8136a3e09  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llroundf-0.c
! e22ef2fbbad12aee2e1608b8bb9ef2ec  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llroundf-run-0.c
! a5bcb43d8225805c1b756b381eec3d0a  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-llroundf16-0.c
! 0caa4a979a838bfab856015f961e2e68  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrint-0.c
! 3876fdfcf3ef915d6b6dd29e49a420b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrint-1.c
! f3c9eb96bfa7af6f0c16d7c93f091a8a  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrint-run-0.c
! c5413cc4ae2342e33b30ad309f156e17  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrint-run-1.c
! e9d5805d54a07ff1f0eb70c31250ef9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrint-rv32-0.c
! bda3680414ae822cbb3ef7b50c17e434  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrint-rv32-run-0.c
! e5246a24c5ea29bfe8b14d1e73ee13fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrintf-rv64-0.c
! 899b48f060f3dc82dd274b5149417d7a  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrintf-rv64-run-0.c
! 4d658b902e0589a41cb645aba96a370d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrintf16-rv32-0.c
! db1fa3f9c3f0d2602c6c9f5569e6b687  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lrintf16-rv64-0.c
! 4425f2cccf46486c1d326c5d3565f43b  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lround-0.c
! cdba096d561ecc7a76a597b3eed140ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lround-1.c
! ce6a20a3ac74519be6c317ded76a1098  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lround-run-0.c
! ad8877efa57a4105f9f57cb62018d818  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lround-run-1.c
! b84fcbb0d9d29fbb3f17f28357c34aeb  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lround-rv32-0.c
! ef9d88ddc5f88fc5357cd99e400658aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lround-rv32-run-0.c
! 21e1fa0018dd91cad5ac8cd113b5b29d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lroundf-rv64-0.c
! 7e1b08d1a035796c30d1accb01347c51  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lroundf-rv64-run-0.c
! f8f02afa0e63dc72766d22598cfbffa5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lroundf16-rv32-0.c
! 98b3b5a27c7bfa7b999d0a2f866fe588  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lroundf16-rv64-0.c
! e85a3c10b502ad623811c9be83945973  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-lroundf16-rv64-ice-1.c
! f7771c0afab8e37449c61713813c0d7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-0.c
! d435e3d4140bfd179cd4938547ff48fb  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-1.c
! 3e3b6320ac54bcc532b2ecd80daacf53  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-2.c
! f1a1eb60fbe8c66e6178ce44d131a193  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-3.c
! f2f1cc345284bc383e7e66e64873fdf7  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-1.c
! a607447d9ca3cde692a90db2ac764068  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-nearbyint-run-2.c
! 987070b6736d8926058364cfb8353b37  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-0.c
! a18759c85694e542cdcc6ee593b6fbe6  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-1.c
! a09f0ff6eb73370de5ac3f564c6910ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-2.c
! 0fd11ca797ee37b442c9899f5a1f2923  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-3.c
! fbd267e2746a97ca87badfeb7a58d262  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-1.c
! 9c4fc0076f02053a959aa43038b3fabf  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-rint-run-2.c
! 625e0e38ada88dd6ea66362a2e82afa4  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-0.c
! 4b0656e678e7aeb7a3ed2ac0d57c773f  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-1.c
! 7f0e458ee8954161bbda0066d6e2a7de  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-2.c
! 2d3d421245176da11305b72cd2359dd0  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-3.c
! ea6221fef974d13b9b97125721aa9849  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-1.c
! 454476b7267133bac93d6e5db0fcb61e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-round-run-2.c
! bea3bc52978449669683083162aa78fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-roundeven-0.c
! 2968a73fee4d681bbfdf32aa55b8a602  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-roundeven-1.c
! 641b81fbe1ab15a353e7edb5bded2cec  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-roundeven-2.c
! 0012402829832d14e143540788e202c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-roundeven-3.c
! b6d3fd4362cb2470b121fbd347f20440  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-0.c
! 529ff6ca838ce4731629e3d86006fe6e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-1.c
! 70e3359b5a9b079b69b5c5b6d34fb068  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-2.c
! 4d67c5609262ea278d87e88622ba8c20  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-3.c
! 4416a4fb6b6a30b882209d3d52d5d057  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-1.c
! df3ed51f2073fa50d5afcc7fb98508f5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/math-trunc-run-2.c
! cc8e967322dfbe36b0d3204987620d20  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-1.c
! aca0e7d6649da316d11c1436c54cf73d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-2.c
! f495cbba33e4b3fd309876106ed6836e  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-run-1.c
! df795d131502aaec605789931ec51b51  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount.c
! bc7acf665622cc57ac6ce84d1298bbb5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/sew64-rv32.c
! b119dfce65ab227f9ef533e73d85f2ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/test-math.h
! f23024ae0391a5b810760aae05f625c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-run.c
! aabca5a36178c0d6eeafb8f05bc69683  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-rv32gcv.c
! a3576e5ebd46f9fd3948a2fb5a7edef5  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-rv64gcv.c
! c732f4bd78dc8a44223cd243b8abb3ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-template.h
! 15044a08217a72804017151631a57d68  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vfsqrt-zvfh-run.c
! 83010512697fcc67039fa1f74f31a394  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-run.c
! 027d5bcedfab5c0b90a75084d8fcf593  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-rv32gcv.c
! 3a4fba9624dcddd37befa246c089235f  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-rv64gcv.c
! 5b32ff62b119f25b151c538d5b235587  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-template.h
! a8bb9acf1cad50dcdec32dd38e141d9d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vneg-zvfh-run.c
! a1d901e6ae32b515cd1c54e7914c4740  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vnot-run.c
! 361fcf6bf7109c83f5ed61433b036b5a  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vnot-rv32gcv.c
! 40356b419750ae350f84a729165a105d  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vnot-rv64gcv.c
! d2790e073b6580c0156735b8fece8158  gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/vnot-template.h
! c7f837cb31f6d5092bc15052dd254a04  gcc/testsuite/gcc.target/riscv/rvv/autovec/v-1.c
! 6554520aabf10fabd6ef3388a6865c47  gcc/testsuite/gcc.target/riscv/rvv/autovec/v-2.c
! 031db5ecefe83133f2c87e10baaf2877  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-1.c
! 563b125d5895b66d2fe3cf9fd3f8a6b9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-10.c
! a8e3a63bbdedaef9c685162d8d24ca0b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-11.c
! ded7a9808c1938097f430ab292f40d0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-12.c
! 86ef280491b00740c4c0f899ba3afcf8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-13.c
! f42644d108176a780bbd8dbc62e553a2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-14.c
! 8a343b2978bcf70fd2ddd79e2841e320  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-2.c
! 4d8f0e4d5b5376cefd6641cc1f90a213  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-3.c
! 23988498d08a868f4dabc2e6a43e65df  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-4.c
! 7e8f702302a650a5dc35e94fe0d7e184  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-5.c
! ba981dbfc5c220a72015ff6439a8210a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-6.c
! 0ee2098583baff067a3fe39173b50c9f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-7.c
! b4f7839be3b6b12d4908037cb03a6b6a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-8.c
! 49d20dad86a9ab73e3d28f4e567472e4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-9.c
! 3fd79d837c483368918f764e1578f8b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/combine-1.c
! 1e6c2a8d93296a8896023d534f2f3457  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge-1.c
! 128efe86ffd51e33cbbaa5597478947e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge-2.c
! 69bc7b623c752fb43dfd0b6d88c9161d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge_run-1.c
! 6cfd4dcaf38ef01bc23df973fcb9ffa3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge_run-2.c
! 487066ca93c702c1757450a99275882d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress-1.c
! b214afd46c66d6609b4d7abedeab009c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress-2.c
! c47ea75a7b9c56e2b548ac30b42f7278  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress-3.c
! 35096833b6337c47531c5f97841f8737  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress-4.c
! 6545bafb43a22ca7ebf1f7083dcc942a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress-5.c
! d61dbc3604e865c815546036a018c671  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress-6.c
! 9123a4a355993ee8f4ba5d7f3f2768d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-1.c
! 03aa7b3270a0a6239121e895bf4d4b25  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-2.c
! 6f4add388089cff3eb2b5603a1c7d829  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-3.c
! 185c298c354a8e26c8bb1255be669c12  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-4.c
! c9839227f838a21c2e7110168e468e64  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-5.c
! de6f10cd541e01c386c96ae96a93a527  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-6.c
! 62c1be19e64563805e47f0064c22798b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive-1.c
! 5ee4d6cc8438a632cbd0afc8dc417dc8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive-2.c
! fca60a8044ed2017776087011bacdabc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive_run-1.c
! fb94bd1a75966c8f0229bfde1c9af0a7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive_run-2.c
! 838e4ebd26b42d5d6e77104785c26e92  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c
! c04fdc8db07b7f49d9452e4b5e5aed80  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-1.c
! e96a69c629924223073642b337d8a4fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-10.c
! f330f2bdcc0d44fbf1e65cab6c8ac400  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-11.c
! ad42b3cafeb4f920f011d1b68432f5c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-12.c
! cee6580aff4c99b4f430eee07e5f22b9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-13.c
! f897ddd6b3277b34d7407df1cc86e999  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-14.c
! c2ac417c7e4f6445868fd10a14495d9d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-15.c
! d8abd42e940ad0145054379491ffe118  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-2.c
! 21438ee20e09abd37d35bc55ea9e4bb4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-3.c
! 1f87234430e8f75f5fc86e673f394ba3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-4.c
! 51c3d51d69d78b7fc1c41ba9018c4065  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-5.c
! 1bfcf91e6473a7757005dc6140c54583  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-6.c
! 7da42fca814534cf34366ea9e73d3985  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-7.c
! cc465f58a9f3283838ab7c0b121e5743  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-8.c
! 4b58c0e0dee4f8748356b5d69db05885  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-9.c
! c5b522690394e10148fec2aa61de850a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-run-1.c
! 028b2baa397cc6a46a818640b9eaa59d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-run-2.c
! bc58593917fe2b8ff94afb870794695d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-run-3.c
! f38cacdde39da328e09317ed734e272e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/insert-1.c
! 7b3072518c84ac551525b1a24a73a19a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/insert-2.c
! 32abf8b667cea8e41d9b18ba9004ae06  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/insert-3.c
! 3b6ab866525c4ca57c595f4c3ce51200  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/insert_run-1.c
! 99ae5379156a6d02779eca6cd57dd3d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/insert_run-2.c
! 92a39846743d031d9e75d2e9fc81f8e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-1.c
! d5602a9bdbf834d87f1abd64be9b12a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-2.c
! 66cfa909388ba932ef53b448a89b3ae0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-3.c
! 70e2dceb5acf8e14642dc0daf2394bea  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-4.c
! 1348e762bd2ca89ef7c185aa8f22bd78  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-5.c
! 3e927e1eabd6c7033c014dd258243eec  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-6.c
! 6bd9a9d7315aae2d7f4f328d47e0cffb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge-7.c
! d7115d17155b567d4a39df2f02adbdd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-1.c
! e2df5acf4c305c714a3148da6b39c8ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-2.c
! d4d06c1a06152d4d7602075887e39635  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-3.c
! 9895d5ede2349578c7970db2aec3b36f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-4.c
! c52d17a18e0b4f92e719ba05d0024229  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-5.c
! 21a1dec270f7f45109f232d2b4c8b532  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-6.c
! dea1973318ae552f42c0fc84db1f435d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-7.c
! 796a8228293bf4d9bd7ee713b64926b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm-1.c
! 31828c610695273a01759cde12824321  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm-2.c
! 813ce95b96b328ce897b58fb40fad642  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm-3.c
! 969010da423c25def96ae99348b8ea98  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm-4.c
! d9ce9338879f31ac3cc83dc141b4db76  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm-5.c
! ecf9fb33267ed2bde84a50001af0569e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm-6.c
! 9f84e1e8d9785a060f6aac82253e5352  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm-7.c
! 1412bb5c7779c879300735f3da2480c8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm.h
! 528c948b6e5e85725151eb64f5dc588a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-1.c
! 48d76bdb14043756a027b03d9380681e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-2.c
! 48e463bd41781c70ec8b5046d69782d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-3.c
! aa7f045d4f99491751854740a81f0525  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-4.c
! 86647a83b9afe00b40c01bda1ecf1cd9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-5.c
! 754efcba560c2e15e2f57b379d319236  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-6.c
! 469c56c042dff5443ea449004fb8a4ce  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-7.c
! 3fcab193373453fd9d12555b734e2a70  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/pr110985.c
! 45bc6ddd37f5ad4d29eac652fc84abae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/pr111857-0.c
! b24505c0915bf1f2b2e38090b5eeb4a4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/pr111857-1.c
! 255a09ed69d1aa63b59c01b8a9e57395  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/pr111857-2.c
! 8c80177485bd7f7e9b1391b193648b79  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/pr111857-3.c
! 8eefd8014664b0e035a6daa961ec0b18  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/pr111857-4.c
! 6864777cf2dd9dda89b97f26bc629ce6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/pr111857-5.c
! 5c5aa6fdc66603381e1f56b7ab59bbc1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/pr111857-6.c
! 2905e5822292b5bf33ac1cde4f23f9fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-1.c
! d700db1f930733fdbd313bf89720f0b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-2.c
! 83e6dc1995a15780ac580d7539d56e36  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-3.c
! 4392cb67d79b614fe40eafbab14483b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-4.c
! 3bf9e5664d3defdbbf5c2a9b1fbce4e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-5.c
! d15d43b7a75ff677b061c9e55b720363  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-6.c
! 2e16238a38c4e7a5d0a702db0dee4797  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-1.c
! 74635431f43d2f1a6933b055dd25692b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-2.c
! b3bcd506c350c34cc4adaa0a66028adb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-3.c
! a57153c5795f4e1a6d4cfb4702343803  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-4.c
! 87dfb99926faedaf5f644586c45b7b82  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-5.c
! 41db540b27406c991d3b6399f526336c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-6.c
! 1da39a509d6843259bd55783b0519c84  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-1.c
! 63dcd9ceec900f6d93d602a46219484d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-2.c
! d872d21ec4d4f80b7cd59a9ff702bc0a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-1.c
! 0381910f2661633b53cd8ec84f13d3aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-2.c
! 7dddb5a0a454afa6321ade0f61112089  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-1.c
! 0ddbcdc06b7ec6a47e66bfb0b1387de6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-1u.c
! 493247e7a7cb8d31e228f9f42cb0db30  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-2.c
! eb3a0fce5ff21d2b729d86ea9ef07b32  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-2u.c
! 1f29e8d0f46e5ba1c0562616781cba6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-3.c
! 4461f43d74ee2529f304ba16c291d5d7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-3u.c
! 1b6cf92fcda9350a8816733c44cdadeb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-4.c
! 52cd30e8985cc51af53d9e88840978a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-4u.c
! a4570acb76500092b07210f7cd534012  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-run.c
! d8985ae8f91dc93abd516c587cb91a5e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-runu.c
! cd3df122f8339aa8061347402dfcfafe  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_extract-zvfh-run.c
! ee190c9116da65ca57e481bb63d8df71  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-1.c
! 0ffe2bdf37c97a4414ff19651346956f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-2.c
! 6eee5d1d73bb712a0e57aac9e8ccc853  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-3.c
! 6fb5313c28c1460895521e5a95ba2788  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-4.c
! 054d70d79d99c0a2790741e08d57fad2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-run.c
! ecef52e7fa94de8caeee7a3c4f7a9569  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/vec_set-zvfh-run.c
! a79dd8e0f15921de3bc7a97a50902d67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-1.c
! 48b002c483af2af80bea92412fcf4e7a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/abs-2.c
! cd375212683d2e89715f19dd60b794dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-1.c
! 88e56d281c9e6014e958274256c0072e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-2.c
! 52d7d158c0478eb8f538175017d6dc33  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/and-3.c
! 99dc5cd621fd744af09d3cc4cc07d7b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-1.c
! 54a6cc53a3947a533272cb86d096e7ea  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-2.c
! 6a77ddcde9aec47bfb46cb76cbeb970a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-3.c
! c4f1e57a8dcde0d7416e239ed9cb99f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-4.c
! 33ee4112b159ea44d94bb25dc469847d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-5.c
! a85f7942d45e11d731824fcce04022da  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-6.c
! c921c5085b27858499e470f23a40d71c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/bswap16-0.c
! f76bb76458e20d0dc4862b7e85ff2ba5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-1.c
! a4cf378028e723371c5f17d244a90e7c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-10.c
! 60fc7fbe428ac7aa27d4f100f9e62c67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-2.c
! 9eec1cb7daab69705d95e25b30852436  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-3.c
! 694db0e091b1cf163444fccc20f80137  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-4.c
! 05c8d3d0f9160103710ee86ab7340b4e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-5.c
! 1288017567dfc303e87871d8514ecf31  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-6.c
! 58786c6976c9c7674b46be54a30f85e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-7.c
! 81082a96f41628c763f35ef172e77815  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-8.c
! f40503114afea5268bbab44e4a6cc185  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-9.c
! 18bb84cafeb71b2fbe2da4a97b8a72d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-run-1.c
! 8c32cf58805f94f2fe2885ebd94f3d64  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-run-2.c
! 5628f9842fce13e5ea57817eae607d66  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-run-3.c
! 66419121f8854f82b565630cda887e03  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-run-4.c
! e1ba93218d3c2d5eee000d41802afa2c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-run-5.c
! 972fe7cb876f2e0a60239701b093ebfe  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/calling-convention-run-6.c
! e0d655af73406e444917b2596162a569  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-1.c
! 91d16debc837264491eac06ad03ddc06  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-2.c
! ef7fa10c8b1fbe4c94dfbebeb3e79703  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-3.c
! b5d205a2e05054f4b107ff4d02d7c17b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-4.c
! 1b43ff7c3182c3d72a8e0e7cb83c61cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-5.c
! 2d08035ad1038b7c1a0cbc8929fd183d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-6.c
! b616dc724e1eb1a60af9aa1be3001983  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-1.c
! 7875fc1409dac48f0d6475986ee3126b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-2.c
! de3bcde2afbed0a0a005c7d8d79e2b9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-3.c
! 289585a0d0a0106fe8aea64c37467be7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-4.c
! c69b2207ac414127d5008c14ba29f695  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-5.c
! f4bcaa1a53386f317369d4b832f79090  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-6.c
! 5f949d9ea30045f23026b5e1c6be9a6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-7.c
! 9c7b895a81547bdea90434ae595006d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-1.c
! a4b2acdb55601817f69e4b42f51837e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-10.c
! bdd4067fbf14ecdbc2d62d0a0ae2e0ef  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-11.c
! 6739e105fbb96e0adafaa6dde5cb5ae3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-12.c
! 9f15eeccbb1816cc0570bc4a5dc51e7b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-13.c
! 7dde3b527318265bb4762b036e89997b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-14.c
! 4c1d57a8c72bdff29554a5e9086a96cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-2.c
! 7e6750a60def559ad5b2650ff38d921d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-3.c
! 0aecd473edb512ed5df6ffc8d636401a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-4.c
! a02a704c1467225f27f3d74077e869cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-5.c
! 9fb11a12fe0c48ddcf1424ed92f907a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-6.c
! 333e50467696444ca585180c0fcf0d60  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-7.c
! 1baf54390848b3e25fed2bb6cb61729c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-8.c
! f636d740aedc616adeac8386744c561e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/combine-merge-9.c
! 9b75532557b5b18813c710361a6e958a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/compress-1.c
! 3f4afc0ce1b95a51c5d6950f4a7cdd25  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/compress-2.c
! 82799adf2de4113d5e258791eb8787ea  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/compress-3.c
! 7891834ddac861afc1afea30e90517ef  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/compress-4.c
! 2a8c682c76ee7e861a468f2d6651506b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/compress-5.c
! d9595623972ff09d8f6b6e5eb510947f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/compress-6.c
! f298fff070680bd96851af14a02ee046  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_abs-1.c
! 6a568cf117d6a79fc6219c3633ef30f5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_add-1.c
! 5c6f448b08d7f0109585cd78187d2e3c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_add-2.c
! 5ac0768346789c39fec348ae85a0affb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_and-1.c
! 781410d0b614316f73038f8ed9e35766  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-1.c
! 6c77570f3281fe9fe2e083b74d590321  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-10.c
! c8318b2b35865be02faee7dab5a41204  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-11.c
! 044955868d62486ad0bd1d00e249f915  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-12.c
! 3246ea570ae40f6c5591d54e6980fdad  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-2.c
! 52e669e52b0a3f06af0fe4055182d360  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-3.c
! 2c3cc4b3e858e0560c5a5dcbd507820f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-4.c
! 5d6f024cd087e893e935fdc210494e49  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-5.c
! 5cd62d6093916d7d13ac6cde570e8826  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-6.c
! 14bdc720ea3e7b34fe7d34802d9e1109  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-7.c
! 9c414b95b561c47b93e9877a8179e880  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-8.c
! 6662e1ad76143a5cc0146073abf74d54  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_convert-9.c
! 57bebb4700c6bf34e6681adefb3d4034  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_copysign-1.c
! e50c8dbc78c88d53819b2743100a8cbf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_div-1.c
! a24b55c53a0cdd393c09e7e24660c386  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_div-2.c
! ca0154478a890e4e1a8f5e33c446be78  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_ext-1.c
! f2761d2354d007a2781910b313792cf9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_ext-2.c
! 41e30b2e8ac18936d4a48eb12a33f5b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_ext-3.c
! e3ecfb29bd6a695c96da40faf4fde881  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_ext-4.c
! 81835a8e2d46d27e813978eaa709c9f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_ext-5.c
! dd76d0b5ae632987dfa46a659c0e25cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_fma-1.c
! 7eb6b80195e54bd35095cb3af5b9be01  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_fma-2.c
! 29756a85334aabeea8e896395a2a008f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_fms-1.c
! 39579360e8e9ba6df72a6020476b1fc5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_fnma-1.c
! 261b4a67fb302b640028fd2882a37b46  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_fnma-2.c
! de5ebe93f89052bc120702e28b21a9ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_fnms-1.c
! 3ffd597d29ad6f335249455e46b4b6c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_ior-1.c
! 0fe0d3fc69ea765faefb93eec492a186  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_max-1.c
! f170f3999907521f8adfac6bd2bbf46b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_max-2.c
! 8a9c92d3d9240818f2761ff3bd8a3f4a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_min-1.c
! ffb3feb984d334289c31fd5b7f4d922d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_min-2.c
! 54cbfb2802a2b4782c608346336d6b0d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_mod-1.c
! 71650cc8c47eecb5317ffeed88b86dd3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_mul-1.c
! e85bde8b74def20fbf0f71177e40251e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_mul-2.c
! 2db480ce350aac66d3253e885a8d2763  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_mulh-1.c
! d2c55412a9f0c673c9293660fb0c615d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_narrow-1.c
! c56ced7463b3447d3c140dc82a3396e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_narrow-2.c
! 46e71d82e1427cec6b8d903a7ec78c20  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_neg-1.c
! 83b03e84a35b728b8329af4ee1ecf3d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_neg-2.c
! c8f8e533408dd14820188fe25238531d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_not-1.c
! 936174ebf3cc0a003dbfa01110a2967a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_shift-1.c
! 9b3cfbe110c7587916f6ac341436c8fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_shift-2.c
! bfbd8e6e9c50c6aae8d969cad417a0dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sqrt-1.c
! 0520ce8d1526daff0708f5cbb40c45ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sub-1.c
! bbcb4899b5dae312ea516bebf5849700  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_sub-2.c
! 16dd6bf50c014e967ac01515d588f698  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-1.c
! b99774ab00f25eba527c4bbef82f4082  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-2.c
! 0f10b58c46dbacfff09453c45df2aaa0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-3.c
! 8775ad53390c8b893aa9b78f210152d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-4.c
! e3ccbdbeb912badfa7c7df752ad248d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_trunc-5.c
! 9250cd42f2226021f017629f95fce07b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wadd-1.c
! ffc1952ddbf0874ac29049120c90519e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wadd-2.c
! c886f591fc3cdf83cf7243f4627a7450  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wadd-3.c
! 4bba2969bb8790411f59e91909896f37  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wadd-4.c
! 4c7bb559e3195e2f9f661398d7ff9ddb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wfma-1.c
! 48c98e246c77ad6fee1444f29a51490c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wfma-2.c
! 011093c69ca26dd27f335c25f8681553  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wfms-1.c
! ab492ef75b78a992b61c47eca79de985  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wfnma-1.c
! 55f01d3ed814c7aed9cf2be358100698  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wmul-1.c
! b6903b738ae1b8f8327a1299dec19225  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wmul-2.c
! 38041f4a184943e3a126170863b9a8f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wmul-3.c
! a0abaf27404b172bae4d4b3d041fd400  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wsub-1.c
! ffee727e2b7cfaa045537f3b6a339f45  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wsub-2.c
! 1dfd7318beba37a81bc6a55a8af66e87  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wsub-3.c
! 7a021be000837e2c84c7684cbeeab28e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_wsub-4.c
! cab5822dcc7f48d4ca465d4ed259f69d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cond_xor-1.c
! b219e32d6de3f225368aea7b14beef01  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/consecutive-1.c
! 9fca1fdf3633d667528ac32775be1c89  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/consecutive-2.c
! 0683c6cea37c9ee94a3d0bc3f50f3a45  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/consecutive-3.c
! d4113209103fa482a856643b664ae196  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/const-1.c
! 800df90b0a23bf8fc88c726372dec66f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/const-2.c
! 1a55b12843b33c04c855f5d60b89f7f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/const-3.c
! 4be8d81b5bee9e09cbba9eac14c0043d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/const-4.c
! 97ea92a2dad464fe178075399efce195  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/const-5.c
! 5e024ec2225cceea207ac5da20a6cb99  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-1.c
! 3cf95425e70f5570aaa19bf17037491b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-10.c
! b2651e0b3c9984e506f26c4a3ce4ad18  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-11.c
! 0597494f0a140977759dcf56bac2ecca  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-12.c
! 1a3e5d53baa858b973b152c123b7703a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-2.c
! aabff7f6b7dcf62be52680b0d6aa9c97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-3.c
! 5d3fd6dcdb855b98ffe636aab755c0aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-4.c
! f4e709487b0f389df29e1d0359f94c31  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-5.c
! 3cdb6a2375623ae7db8968ef96bb424a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-6.c
! 5cc5ce71adaa578be126544c6b7ab27d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-7.c
! bb6d1600c61d3ce4e464160616679955  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-8.c
! 5756ae6bf68135ffa268d783ebafd916  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-9.c
! 6d558a6535dea2163aa6cd84d590343c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cvt-0.c
! f3db49e1e28567bd3ec11a431d4315f9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h
! 3b01eaa146d0f21fefa6788329fd6226  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/div-1.c
! 95410178cf206ca564e75fb9dbf24a95  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/dup-1.c
! 8c1623cb148f15e496fec220bd5c2d15  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/dup-2.c
! 127ff186191d16a5804c957c1f404636  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/dup-3.c
! 22e70e7ddfeddc65fec1414fbf9f8f39  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/dup-4.c
! 86c529b7f29760ff5a90ca5364f88b04  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/dup-5.c
! 8858cdb2e33b9dbdc9e917bb8d8801a6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/dup-6.c
! 508cd6c48055142708c20ca98886d935  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/dup-7.c
! 54d13e4d03b7df293657c9316bd79205  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/ext-1.c
! 2efc762e3764ae726b1695cf05b571ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/ext-2.c
! 28dbe18934ad1273d4a162e08db2c80c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/ext-3.c
! 55cc599fc9c8fa82964c257f3941b0a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/ext-4.c
! a683300743c56e236d288fa13ea11c3c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/ext-5.c
! 3f2ffb43c12de26613083945580971b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-1.c
! 6fe03985d98850ddcda9f0d5d1c6840e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-2.c
! aab11716eafff284c09fcb265c92b7d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-1.c
! 1e922b47bcf6f04f2301fbb55b813a0f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-2.c
! ca5f40ae383d5a40b39d9d039bbede0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-3.c
! 958d5ec738e78b1fae00ae61aa5624ec  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-1.c
! 9a353e32cb9d5cf6c7af5e87b0dfc56b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-2.c
! ff57240ac36b402917240469534083e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-3.c
! 0972ed15b2e9133996a7f4a98b2f015e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-1.c
! 8407bfe3aec7265bf4cbb4231b339a48  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-2.c
! c80c0e73d4a722ffbd131b5923b0fd4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-3.c
! d5b4cb0e9c27371faf4d923898285946  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-4.c
! 66d599d0f18818b6ce81fc69d7dd339d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-5.c
! 953f23db04f3533860c00f11b5138a22  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-1.c
! 0ec8b38055f6791877784297c3990a5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-2.c
! 3c95d542c38d48a74942a54dcfe5d1d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-3.c
! 61572b7474ea759dd3f02eed4ce4e8fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-4.c
! 0b12df402b882c7a78f3fbfb6061435a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-5.c
! 8ab0ce2e3db3521d31c4f619d0736c55  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-1.c
! 53659cc4151769dfbf205087b7ac6849  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-2.c
! 9b77f21164063d92fa8cd90e6adf9df7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-3.c
! 5f90d4fc9d91914db44c364d1d41faa6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnj-1.c
! ff5670e76438ca5c0014a46dd2388e8b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnj-2.c
! 716cb9a267638ed0eb1a14cb65ff8021  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-1.c
! 229001d194302d1195788b71e5d80f31  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-2.c
! eb18a26d357fa5c90fbcac9da3b08316  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-1.c
! 505f015adea5779746d2b66c6d22f2b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-2.c
! 6027dcd685624654da95d438dc7a2b9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-3.c
! f0afd593f55cfc1c47f0ccf8b11aa7ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-1.c
! b29b047741809e570aad0086779fb0b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-2.c
! b7aa88f7d555a716d28f50d341b6f9d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-3.c
! 2fdff23b419842b95dade47ab43349c6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-4.c
! 245744b4242cebeb6e41558677962612  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-5.c
! 23127d491d96332c5888670e2565a5bb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-6.c
! 743520cd3a035f303e68a3d543a81f36  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-7.c
! 2d625555fa53a520e352a5199abc2910  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fms-1.c
! b5c680d07ef79dcf1c507e256c3f0184  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fms-2.c
! e2c495bf90e0ff7523fcb58b92fa2064  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fms-3.c
! 4fc48335eab8211eadf72b4995da4707  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnma-1.c
! 9b5168b7661b913de7daf106ce1252de  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnma-2.c
! 346098fed6694746d47311e6e7e207dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnma-3.c
! ef6dc392e653397ceb504aecb900e869  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnma-4.c
! 214757e1a21ff7abe2cbc7302940d641  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnma-5.c
! f17dc528c5c92986a20b661bff0b691d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnma-6.c
! d7142e25790745acb06a63de7e0a125c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnma-7.c
! 71024456803244851ae2cf072a9a8021  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnms-1.c
! cbc1f85a353c8a9361cfcbc1bf8cdd67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnms-2.c
! 265cd5527ec212ecfd1307fb3bde6653  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fnms-3.c
! d5e5333426bb769167aaf52259fb6336  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c
! 316095bae45d90e7c200847aa63ead97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c
! ada0eeef12fb1cd2699152590a4bfc68  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c
! b8a373894c7d98de3b6ddc916421a61e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c
! d76347c15fc3c4da9da9536670bf2004  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c
! a6dbe44aba59bf7a52034b99b9d1c418  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c
! 3e881d28d9a44033f3b17b9f8a8feccb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c
! a0701ec1b0c90d0f2fb69dec389939d5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-0.c
! 13d49c86008c3e8dca797d41cba21517  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-1.c
! 2513211de58b4ad2759aa9f70f372450  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-2.c
! 124b29ea00a49892545406f9b99b9b56  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-3.c
! b048da4b32bfffaca2c91fd998c9aa91  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-4.c
! cb03811b4bbd3cb973f5c8639bc9833f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-5.c
! 0f33d019183b1b057cb77a9a412456bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-6.c
! 450ca3d1f5a3f1b182d60045501f10fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-7.c
! f258e7f6093f7a46b27e12a26df82edd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-repeat-sequence-8.c
! 161358478964bbb66ab73a033a99c3f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/ior-1.c
! 4c70f56e18f6a41b4b5329d711a32679  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/ior-2.c
! c2490c6262459f50fc05922a51eacbf9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/ior-3.c
! 9e9ef404789f4b9256bce3ee254ee069  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-1.c
! b1817fc15a3b2503b647dc674043bd01  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-2.c
! aa20890ffa268ae9dd2efc9843b433f4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-3.c
! 218471ecffe5f993f0f85a0ae00508af  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-ceil-1.c
! 68264fe8f9b306e23d1e77af7c73ab48  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-floor-1.c
! 4f7ebeefcc149321b506dac5653cf904  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-iceil-0.c
! d5cf1acc0ba3b61612d661360f020ef4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-iceil-1.c
! 861b72f161fe57cd0ec17118a0c0b3c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-ifloor-0.c
! 9c5ffb26efd599afa989389481d048dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-ifloor-1.c
! d08c79c4c3a8f5567fa88e4811cdc682  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-irint-0.c
! 77c6379cf7175319cd232ab5e1a70764  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-irint-1.c
! b83ad144b356e9339a0db2109fd1c08e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-iround-0.c
! 8728532c6404b6bde530a0751a681ebd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-iround-1.c
! 23c0ffb5d75ff252c9bbc9078f1c0378  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lceil-0.c
! 78ffe682d884c97aade27e5e9dfa4bff  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lceil-1.c
! 91de8ef43f50663c53519b3c5b4d6404  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lceil-rv32-0.c
! 09af0c5b95acd94e35253c929d70379a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lceilf-rv64-0.c
! 876ac7bf010ea9e9bebef4020a0e79a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lfloor-0.c
! 5aa8315dd6b4920feef496f91da769db  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lfloor-1.c
! bf9a52da3b5ed3e601f3d15e73f1bee3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lfloor-rv32-0.c
! 4ad2316fd7627baab2a72a040b32f120  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lfloorf-rv64-0.c
! 49eef2876b63f8dd3f69bafae97deaae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llceil-0.c
! 5f6fa3f134644661a6380756b15a308f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llceilf-0.c
! e4b53cf2ed81f368e6722d045d6ad3f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llfloor-0.c
! 5a3114346b73a7acb9874e0c784d0674  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llfloorf-0.c
! 1d0681ce2e34d3c2cb5f046cdaa77601  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llrint-0.c
! a7a6d18228d5bbc2dc54924aee8ec798  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llrintf-0.c
! 03825916e2203c24fd67f35bc55dda1c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llrintf16-0.c
! 729067a39a5856203f26975205bd9720  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llround-0.c
! ef0d4cb302cff2b6d2bd7e9021aad6d8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llroundf-0.c
! e13f79505e4d56379ecc25ba0ad3a9c3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-llroundf16-0.c
! 51786d4b4fd80693d6239dad1e6cc35a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lrint-0.c
! 5677e6ef69f69caa7430769c636ea227  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lrint-1.c
! 96de0620b39635d18175797d453255d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lrint-rv32-0.c
! 86d85c39205a12b379c1236c6c1baf2a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lrintf-rv64-0.c
! 20edf3ac7717f0da5facea60ac9569bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lrintf16-rv32-0.c
! 1f4d33becc363f057aae41721407fc1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lrintf16-rv64-0.c
! c6f64767aa5c25a649dd1df61e9fbd20  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lround-0.c
! 7bd253ec21d9119b6b8c50c6f5a16385  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lround-1.c
! 36e82b18fd3195de825737c60512372f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lround-rv32-0.c
! 7b41d73a7fa1a6ea67324e89d891ad6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf-rv64-0.c
! 4287dc5c36f4d1b3c13f219eefb32c24  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf16-rv32-0.c
! 4d4f4d23d65ae7086f33dd4f707b576a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf16-rv64-0.c
! 24204560d83a37251377881828d1d2f4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c
! 0c0067f26f158144c99392a59c569a4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-rint-1.c
! 23aa9bd915d3c2ecfc4cc23d55c43293  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-round-1.c
! 7a8c7a3a6a847f170c9d6e043d4fbbd1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-roundeven-1.c
! 918652494e4e529a1b7960c15234794e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-trunc-1.c
! 7bf68e600f98ff1bb6a4d189ebea7f93  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/max-1.c
! d8dba6fdf40a65df1736649e203567e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-1.c
! c3c1f8dfa1264a8603843b5fdc658f47  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-2.c
! 20a5ecc695bbec38dc27ef7e4a9f3610  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-3.c
! c7af734e7433c97568124f799f8d43b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-4.c
! 4ead08dfe45752cd0707c182f32a3a3b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-5.c
! a0fa9037f39681294a005d7603cbf4f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-6.c
! cd721989136cb62e6743cd63f5bbc4be  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/merge-7.c
! 11bfa3270930c86728f390934698b81c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/min-1.c
! 3be0831deab1f86e50b805e6b7601a3f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-1.c
! b2b7d74271b820f7bcacdf3a971c2092  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-2.c
! dd0fd57ad94068bab7221239495bfd5d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/minus-3.c
! 409ccb62f7821999010bde010bda7ad9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/misalign-1.c
! aacf1f98348d7e71d61ebb1000508ed5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mod-1.c
! 1564b7bc38b7a707fdb6b0f772604222  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-1.c
! 795eaf0e1c0a4dd986763c8a40355609  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-10.c
! cc8ec0c217705c5222c02cf90562e8f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-11.c
! a07df926190fbadef311e4c39a491bb6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-12.c
! 97f2caeff519b0edb88cd9e59f3c3c31  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-13.c
! 113de636cb75a497207e26597600d00b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-14.c
! 2b58e1d3a82b06b689315f3d8e455afb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-15.c
! e97a96c5cb5e5936228dc84f9bcc16de  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-16.c
! 76d771c7065641776a7aa82f01645401  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-17.c
! 5b017b013add6ce76699e2143cdbbf05  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-3.c
! af4cd89d3260b44f22663c5816d33649  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-5.c
! c35c8764eaf931a7db90c3dae6a003f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-7.c
! 808d630d196aaee1cae45485a4553b54  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-8.c
! ff0fe716aba9845fe97fc68542cab2cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mov-9.c
! 6a35be7ad02bd42c712d37ad7c1f4510  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mulh-1.c
! 606eae08bc12c3bd0a6c80191dc1f939  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mult-1.c
! 4eb104851adad3859fd2705794e13d97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-1.c
! c4ba441579b0690119e1ccc92640db05  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-2.c
! 541d90a11f29b4f4b57bbbb8b1f9c012  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/narrow-3.c
! c83deecba54cde53e5a3f911f2eda37d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/neg-1.c
! d486fd40b6f4f56eec1d628586b366a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/neg-2.c
! 428aaeae4d0c0455994205731dfa90cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/not-1.c
! 9f5d3a08bb32320a77ea5bfbf8922ada  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-1.c
! c0d444c0802af75b66f5e7201b5a08b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-2.c
! 9cbf5a8118eb3e525812b0f3e323c7d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-3.c
! adfbaedf3ed8e62f361d6607b5375f1c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-4.c
! f435f0c202338a1122a54776040c0789  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-5.c
! 3dc34b02f852227bc2f1f18b2f76b66a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-6.c
! 412b46f5059b9536cd31e1994bb083ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/perm-7.c
! 964ef64249917068b695a910aad1cb2c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/plus-1.c
! b29ba9a6de4ab6efed79ba194927bfe7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/plus-2.c
! e443430f63d65520ff65f4616b10c865  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/plus-3.c
! 337a60b20277a01764c950723dc4db8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/pr110994.c
! de04943ea1ad4d65f2f2b1bdd826d6b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-1.c
! 284830b2a4965701c0b67ca6f9be28aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-10.c
! d3d560f98820816da1ebda81f36a3e6f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-11.c
! d2222030c01217f8068ec4a563d5bc18  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-12.c
! 662e8248a1c14522b00cae9e28ffcead  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-13.c
! 87078b63ca7b49e90cac33f468ac822f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-14.c
! 9f214de5e0ab6b8c23b43416875f935d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-15.c
! 402ce5fce97f2b0732d2941db33bdc14  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-16.c
! eb55f2c3ddbf10c180aac54990e9c2f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-17.c
! 26e1c04eaabf0b65d6bc6dfe6d2ac5b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-18.c
! b65aba01e8bf32e2bfd8e7ae11930fa0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-19.c
! 1481137426b14ee87b88bbc9678b9696  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-2.c
! 91b14db576a4f42aa14688938d1ea062  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-20.c
! d845b6075f8e9b17ef225e13c126157e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-21.c
! 4081c79d5c2563ec6c1a44a623bae0ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-3.c
! 6d456c6824280daea7666a2b39e6a9e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-4.c
! 9ab9cb5cb53a8215b614d8d8d298fdde  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-5.c
! a4c9b466d5c1e1ae97785c0ffd56363d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-6.c
! d838242cab4f8d0946a2db2deadd1b6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-7.c
! 2b84d521453413914daaf6e4697503c2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-8.c
! 497432af909f9b3ef82992e0a355a034  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-9.c
! 7b7c4d5176072068bbc28b5e65dd8845  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c
! b9fcf5e33911578b81321badd20b2384  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c
! efb6b1608508c3b24218956141e35b1c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c
! 2c3513ad21a712ba45d5b63beb1ae57a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c
! 7babcaaac1defb1a9cb041dbe4d0a30c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c
! b816f8c21942fb2a9c884f87238a1ece  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c
! ea61f3cb2cbfaede4db1197888314b53  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c
! b180f39e6bba33b2f87256e7ec7484b9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c
! 79f39eb08835c5042e59a5d723f70fe7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c
! 3048d048526b420d5d76c49994d49338  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/series-1.c
! 7a3f331460517cd67624ecd67fd11038  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/series-2.c
! bdf23a550d3318d795fe590bc48c4274  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/series-3.c
! 8421f2374551be2dfe1e70619557e6fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/series-4.c
! 961cfa84a5e343f1e46b4446f3fcd54e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-1.c
! 0c04939e460abe21510a72dcca443a70  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-2.c
! a8db3ef4865fc1e3c8d5082c09b9c136  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-3.c
! b99fad53dac5f08921e1b174026099b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-4.c
! 638323af7e63fddb8abefaeb45af8aa4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-5.c
! 20ff3b4807a486d80746d813d22fe447  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-6.c
! ae980971eea44e47663031cb5f24b1b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-1.c
! 66715298c4f98e8c662270327a444231  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-2.c
! 2921d82f4af158d70e608282887c57b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-3.c
! 897bfdf80a65b6a9083db17c592685f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-4.c
! adf419b74cf26b6ab9b0aa2d7c40756c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-5.c
! 780ee46c0c3e239861ca615d96e9c350  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-6.c
! 3b2c3360bbf6a0f466504f665121ab98  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-7.c
! 96659b498171be93d3ea0a6e936d71a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/sqrt-1.c
! e30a3088fbf01ffb47904e882ee60256  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-1.c
! 89e67810ac9ec39a5f88f17184408e2b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-2.c
! b13417ab5cdfb5defb5ce4a04d3ce455  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-3.c
! 1d5e6efc4542154b732edf3f01fe7e46  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-4.c
! 38d6f4070e37bb2e01290ef4c172bc6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-5.c
! 4bd419beb185370d81bcb1328f21fb62  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-6.c
! 701dc9868df28c1537988d4295a52825  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trailing-7.c
! 2c6857f1e31aff8a696fc4cfb24e703f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-1.c
! 5c2b04541b4a01b071bc935b641b609c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-2.c
! 00be0b1abddc839325e03afe1a5d881d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-3.c
! fe79e91eb69a235ed00179e1cbb25b25  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-4.c
! 2c7e43af1c2f3efc47287310ac2358cb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/trunc-5.c
! 1647a3cf986dd810e5f2903426a7e7f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-1.c
! 22cb71dd4362fa564dc1789028cd316a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-10.c
! 0d54c0475f7a9577cb8bc2f1d87c0271  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-11.c
! 811c227f47250973d1475b2e795e4e69  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-12.c
! 0d44034c1899f01fc1c9adb0814b63e8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-13.c
! ce6a98d045d5206026986dc2afeba5e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-14.c
! 70aca0a47675480b5b42f711d5905686  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-15.c
! deebdc545381538a4137fc399926df22  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-16.c
! 426d95eeb2d423e7ceb059f9fdb5bc72  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-17.c
! 0d50d4547978c7adb637c6d11fde24b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-18.c
! 5d05d49aeecda447bbe83fb0f3d38826  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-19.c
! 024d0c2955a64e6633e77b726d078ab5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-2.c
! fa755d13a934340a80208945b1c56010  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-20.c
! 987f140243c471cc1d5fb99b84653cb5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-21.c
! 2978d1fa63e79208029def8de754fe5d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-22.c
! e23970e09aa7d8f160d4b6d96cccdec9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-3.c
! cb74d009010be9301dd9ac66cc9caa7d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-4.c
! 2e8a70cc9355b51dc403de1fb6fdbcd0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-5.c
! 4e3149799ab29354f0fe430fcb459c1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-6.c
! ded452aa83bebb4c49581872b4387443  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-7.c
! 5de2f51abd56cdf9651f4685d4758648  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-8.c
! 765aecff2df06fa5a72e96b7687d7b08  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/vec-set-9.c
! 1acee00c31bfbc542392a5ba48f1453f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wadd-1.c
! 6d17e7d0a65475dd32b332ad8622bbf3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wadd-2.c
! e069ebedb7a0fb65480ce2a37a671496  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wadd-3.c
! 95fb0a1a394b82b0a8e2f93159acf2c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wadd-4.c
! cda7e9e862749dd8cf762cc1f49b7cda  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wfma-1.c
! 219e2eb1fae0a5b1d6987386a2c9f7d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wfma-2.c
! 94d97c2d154e2a281d4d17a15d32c637  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wfma-3.c
! 8f3bfd11affe270e51233a3e339f8f6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wfms-1.c
! 23a626cf6ecbbe09e7cf3e79aab512e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wfnma-1.c
! 8e62f513304c4551592fac660967fc41  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wfnms-1.c
! 9a0eaeec39ff557a1dd4bc689139cf51  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wmul-1.c
! 46206f4450cb727345e5a431d1a7696f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wmul-2.c
! ca4b6d27bd895f74c1271c4e1f574e94  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wmul-3.c
! 96a518f01c4f6d965a6d9cc6b6bf1840  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wred-1.c
! 66cfafbf6ff4e26db2090f88e587a1a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wred-2.c
! 2399a90713056a6eece929c0dee1a270  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wred-3.c
! 4b8d6002f3edfa64401923386b165903  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wsub-1.c
! 9026964ee15efb37908a3e512297a41b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wsub-2.c
! 2d43c1a385403a3909ef94fa3151830e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wsub-3.c
! cfa589a62b8131eca402868e9820b0b8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/wsub-4.c
! 8f2ab32e2e33705119173087982c842f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-fixed-rv32.c
! affe6a5c23f3410fb734fee98f116a3c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-fixed-rv64.c
! f95d4e0ecca41e722099be6b52b3efe7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-run.c
! 0a08766ec8e664b50a23b886cf0cb054  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-rv32.c
! 35044d6a949091b4c23addf451f035ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c
! 0026b1e2310b7242895d290cff3f1e9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-template.h
! 2d052315288cbb1a315add9fb76abbc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vreinterpet-fixed.c
! 836cc87f131d9d080542fe18ca8f7841  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-run.c
! f1082aad0502554eeebed17813742243  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv32gcv.c
! c63c1dda7e0edaae3a19ada81d8d2297  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv64gcv.c
! b3a10f963daabd4c0545bcbe870d8b78  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-template.h
! 37f00fa125caf733543d0cf3aa59e817  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-1.c
! b352fdfb9e52a7c01a1b2bedc6b37b32  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-10.c
! a9da135ec6d0702f0653e7f5f337009a  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-11.c
! 06b5f1f9b3b124e31935cb2791459647  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-12.c
! a2308d1cabebcb4877a78100c0b4952a  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-2.c
! 994cb2c00434385cab0a9630ccaa9684  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-3.c
! 0bb60e7e50cd7e1d45946d4e47382516  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-4.c
! 0449bc798714ea1aa3add56c9df0075a  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-5.c
! 735c7de952aafad74896d6652f4fe174  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-6.c
! a8c19410d7eb4e9ccb846ff5c2109367  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-7.c
! 3e8a88ccb7e381fe1288d4f5bf93385f  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-8.c
! 3ce80a78bf10c79b151308e24e19dfc6  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-9.c
! 9f59291534af05995082f94d9ad9fc9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-1.c
! 5bd6ca7fc857b351e78b546d12eb68c8  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-2.c
! 379685ff47b880c71ab831ad16d9554c  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-3.c
! 02c25a301115168d38c2e5f188a335cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-4.c
! 633d4f1139e0a2f7e5d9d62c9fa29f37  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-5.c
! 511781117cf332abeae6f2db5bfcc575  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-6.c
! 4c0f0c1c5ddc7e69bb5a8711d4302460  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-7.c
! d228b8d44cf64354adc818ccc70cd6e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-8.c
! 6968a8b263dc7f35b9921fe59c136987  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-complicate-9.c
! de5a5883350052da94546c4525857edc  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc-1.c
! d28639fa65153fefb830f313c6e15910  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-1.c
! 84853ee0826ac22e4d5b4a85781e3e9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-2.c
! 053a6e5cb1c74ac243d682c645f1f56e  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-1.c
! f31a20672738c76b1f9172c000b4fb3d  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-2.c
! 6a6a5ab14de9c99377273323e91af9ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_run-1.c
! ff8bdd4e04a769fc860a18692c1fc1fb  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-1.c
! fcb44d023700147b7653d1f3ee8a3476  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-10.c
! 417116c6cdbdd562209ff60d00b198a6  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-11.c
! 7a86613da800ebaff3c90651648172f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-12.c
! 045e8570031d7fa286796ca0a1874434  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-2.c
! 6c1cc43597373dc0c1ca187066fcf129  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-3.c
! 507793e3d954d6c7d0cbe6dded28b90c  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-4.c
! efc9d67ba5a5cf08bcc06222a91768e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-5.c
! 5a7847919f9e43c1798fba468f9aa7c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-6.c
! 482595292346002a011f8ac2ae821a17  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-7.c
! dfe06e82ea7d94f33752553ff8af2798  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-8.c
! b9f417beb0179e51429239ea40daa724  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run-9.c
! a8b154f3ebc705a72dd58140a6419d33  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-1.c
! 2c5faab7355627d0aa0a356fa58dd12b  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-10.c
! 6ed582bb42748f5c8f1d7e37a01426a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-11.c
! 8dcc2fa254495f31ba3cc94a052fb662  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-12.c
! 3771ef58f3725b00fb2f61515b821fe7  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-2.c
! 4be1b53ae5958753c1a3c6629ee91079  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-3.c
! 5dc2a8d04ae4ede571219417fc1c5bc6  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-5.c
! c4ce5811a887d193e1ff4f3353c39632  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-6.c
! 8187bff72b496df98c214a34eb4957eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-7.c
! c3a6ba3dd89b27bf15bc5242257c3228  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-8.c
! 406ced79391c090487c50169c76abfa6  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-1.c
! 526e5a62cb0908c681251c17247e28e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-2.c
! 9e8ce3e7531b579d60705be38d675d10  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-3.c
! 5bc7e93977e41e71ef2b5104d50d3ad5  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl1024b-1.c
! bb696bb70ba5d6a5cf32c3bc353b2245  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-1.c
! 77a0049927e216f53855d1654e96bf1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-2.c
! 4977551e9b49addfd8e8e4be79842ad2  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl2048b-1.c
! 005422d27b46987f97b39f2283c2de34  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl256b-1.c
! 9c95fed71effdbc2f37f97fae11282b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl4096b-1.c
! 6671a333c7d6186112a5915ed44213b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl512b-1.c
! c154a520867dfdc08eea575ce160e4a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-1.c
! cc3fd8c9d591ed2019a068870adb58eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-2.c
! 21f3ff1d03a27898ac4f7192b33cf1db  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-3.c
! d5db82e84e090e7af1a8e302f7933759  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl1024b-1.c
! 5788bfee296b1ead3262a21866b49a8f  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-1.c
! 64040c24c8d11cbac79e8ee90c1a8555  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-2.c
! 85d4ff61aa53dcdb909003374b62aa1d  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl2048b-1.c
! 1f10ce1b92f30dcaad1fab75e9adee08  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl256b-1.c
! abd8a3184e218e70a4a64ddd64e8be65  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl4096b-1.c
! 7591e6439b1ce8bf6516a32d504618a5  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl512b-1.c
! 5e6f7d6b6f640248df93a502d81ed96f  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-1.c
! b127736d78362b7857b7b2c0aa215df9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-2.c
! 06a773055bb47a1a9d0026cb5a239ae1  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-3.c
! 82c5727175f76a8933af14d4f269bdc4  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl1024b-1.c
! 415ef5a332b30c3ed64e482237671c83  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl128b-1.c
! f4b66618991adc6ed1836af6b7ab1696  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl128b-2.c
! 6bf766c07817f463cf65530e92d45b5d  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl2048b-1.c
! 36da0e50a1f4295e4a69e2d8dacbffba  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl256b-1.c
! 6c64ac6da33d722229c95d58e2aa6a3e  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl4096b-1.c
! f674e95fd20c15bbb4b89561a30bce95  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl512b-1.c
! 96d7bd659933c8f23a8d6059fc78274d  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-1.c
! ab3b34c3c66af1b657d522e1caceae51  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-2.c
! e775fc2017ad37c7d2c4cfe4ae5b0515  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-3.c
! 5914484ae94b4c3fa439068a6ee9593c  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl1024b-1.c
! ff8065974aff8a724798386273bce2a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl128b-1.c
! e8cc119e7689e2dfecce132e46f7b358  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl128b-2.c
! b82bdf2e2d947210e17f29a5b8d172e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl2048b-1.c
! 356c9bbb7de636ae48482320e8278218  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl256b-1.c
! b82bdf2e2d947210e17f29a5b8d172e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl4096b-1.c
! 1f91f062b1d768d494da3aa54f3e3dcd  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl512b-1.c
! c664b969466a7c0c95bba53b50bc972e  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-1.c
! 5575e26481963bb2954f0c432ab925b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-2.c
! 484a5a9bf82325f69cea9b8664d79765  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-3.c
! a23be9d7f17619ddc25134842fe2765b  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl1024b-1.c
! 7d065acd01bd5de17d4ae7fadbf0e8b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl128b-1.c
! 8e259e61beeb6df10ec61a2712d31439  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl128b-2.c
! d618a44876d24ec10ca33790889c15bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl2048b-1.c
! 17489380baa938c523e09e9eeefeb6fb  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl256b-1.c
! 78d0cb965274af6e8246413d215a4388  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl4096b-1.c
! 5e31f1220f11875c67d5d4374022f620  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl512b-1.c
! 90b97f7e14ba0ba2f89b47f90eab59e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/zvfhmin-1.c
! 830f2e704dfbf371996965db989e2e88  gcc/testsuite/gcc.target/riscv/rvv/base/abi-1.c
! c6446f5ac2e409d6340ff3ea9371ae02  gcc/testsuite/gcc.target/riscv/rvv/base/abi-10.c
! ca2c0fd0f7b37d80b8686a6204467d5d  gcc/testsuite/gcc.target/riscv/rvv/base/abi-11.c
! b18eca0acd69ad2c1b93b7df150a17cf  gcc/testsuite/gcc.target/riscv/rvv/base/abi-12.c
! f2dfeab6d170d3094db5271699fbe660  gcc/testsuite/gcc.target/riscv/rvv/base/abi-13.c
! 147a46bb6c45cf53403aebd16c8ea9a0  gcc/testsuite/gcc.target/riscv/rvv/base/abi-14.c
! 5d06825ca73c64458f156b792d9d7ba7  gcc/testsuite/gcc.target/riscv/rvv/base/abi-15.c
! 5b047347a2e41bacaa4c2ecb031005e2  gcc/testsuite/gcc.target/riscv/rvv/base/abi-16.c
! 60f4b2cc5b1ad844ab52312b27512fb0  gcc/testsuite/gcc.target/riscv/rvv/base/abi-17.c
! a1af5db1b3747d799b1b59e0feb9298b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-18.c
  6ba19fed5c959266c0b391b99f5c338e  gcc/testsuite/gcc.target/riscv/rvv/base/abi-2.c
  79df4b147a8c962b142cfd7748451769  gcc/testsuite/gcc.target/riscv/rvv/base/abi-3.c
  fc5296dd345c8e6a8c7d02399b6fdd35  gcc/testsuite/gcc.target/riscv/rvv/base/abi-4.c
  16adc2d9f3e67080575c660cf54cc868  gcc/testsuite/gcc.target/riscv/rvv/base/abi-5.c
  75b9b893ae637c5b5a469edd52dd56b1  gcc/testsuite/gcc.target/riscv/rvv/base/abi-6.c
  0fab0069f7636e81c56ceedc25520fff  gcc/testsuite/gcc.target/riscv/rvv/base/abi-7.c
! 01ca987c401ed954e3c853d9a5810264  gcc/testsuite/gcc.target/riscv/rvv/base/abi-8.c
! 7bb1b921960729fc7cf307ead68ca236  gcc/testsuite/gcc.target/riscv/rvv/base/abi-9.c
! 05cc5d35d2c0a09cfc515bb3fbac885d  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-1-run.c
! 8a2f84ec55c5338bfe4d68690dace9f9  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-1.c
! a80e25331725ae6098c3261099a7ef2b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-2-run.c
! 3ef8ef313236b62f73de0759b6377f79  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-2.c
! 0829b4a0412a5ffbff5b6b89cfe460f1  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-3-run.c
! 8087e05bae4feec63c68f40dfb568664  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-3.c
! 70ad37d73814213b5a6ddba022570299  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-4-run.c
! bfceb28778fa75789b3ba55098a61009  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-args-4.c
! 725fc9ba2f63002a2e6b4b64b7887ec4  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-error-1.c
! 7b78a7b679dd491d6c61de416b1fb27b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-return-run.c
! ad97e8e89410a2adffa7e22838b725f1  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-return.c
! f2945320582c6482ea04eaf56821d81c  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-variant_cc.c
! 285213aa483cd0b095b5fa8dac08cb16  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c
! dc0882c338358464acd53a3297455736  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c
! b11f9bb5b53c88022b156a06d0498596  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c
! 48de7a1b5ea7aceb74ae1bd3eb6161d8  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c
! dd9c5f5185614016e6d805ede5643f71  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-1.c
! 1b3f631a1fb838e57e902db219c3beda  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
! dec77171afa4a63d66f6da7bda934f7c  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
! 3ac7ebb006ce2c6e585686c214b65c51  gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c
! 629c187a7a0bd87e433fabf0245c0c3e  gcc/testsuite/gcc.target/riscv/rvv/base/attribute-riscv_vector_cc-callee-saved.c
! 2c2a72a978d9bc43ffa9b9b6cc19fc1d  gcc/testsuite/gcc.target/riscv/rvv/base/attribute-riscv_vector_cc-error.c
! 2f86e7270fe43bd8b0be7f32b66d51c1  gcc/testsuite/gcc.target/riscv/rvv/base/big_endian-1.c
! 3c15eb84f35d03f86cb66060795afc00  gcc/testsuite/gcc.target/riscv/rvv/base/big_endian-2.c
! b0041f2833bbec64d595819860e661be  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-1.c
  929bc9dd479fcb10564c5d95d7e20a94  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-2.c
  7f68e4a9f7c2b4f939d60564f0e450a0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-3.c
! 37571c04e65f9ee95937e9144407c3e5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-4.c
  ff323861ce892f5a6c41c2624e599f88  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-5.c
  361457316869b36ee3ecc99db50d1ca6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-6.c
  c5b31100603ffe499e25fff3404b7c8f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-7.c
! 6748ca1bbb2778a922be8bfa73904e12  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-1.c
! fbf1995835abae891db28fcab53d240f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-10.c
  fb7fbad162632975f3ef0f58ae2427ee  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-100.c
  8c099a5bf727ab4d6f26179f65b66cf1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-101.c
! e8453828f1fa71017ed25a54f3e6e2a6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-102.c
  489dbc69b3e60bd568ffb04cda85eb4a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-103.c
  d2d82dfbd5efe9f779f950b18b7094b2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-104.c
  62589986c5a1a8d84d42df46ee14e324  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-105.c
  f1b82bbd761a47e386617f097f29e9c9  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-106.c
  63f2b995aac3fb02389a262c3cf3e126  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-107.c
! 8281a4f4d304293c961bef2b2b36aa38  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-108.c
  c188a057d6180bb4d813332f56768913  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-109.c
! f6cd7733ed2488f733e3817657ffc084  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-11.c
  8635d8912d76f40410ec807bf13e49d1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-110.c
  6e5cfa134629d5e97918d505276fbb6d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-111.c
  c657afe50ed7c2fd6dd8b66cc6d52698  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-112.c
  b476b0738e47748f9c46202cabd90751  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-113.c
! 9ce34c093c481e9ebd73209a11ede430  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-114.c
  359ac2a3a13d6bde8610a04085f4bf4b  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-115.c
  f9e704a0d07b901c06b5c1e08e5b6f86  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-116.c
  9e43ce3a09913c4de485b09a857db8b0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-117.c
  faa1e08026e7542a327cb3c1682f7fa1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-118.c
! 7d50fcc31edaadf42a7cb3636e8d9ce0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-119.c
! 486f67092620bca416edbccd3d011a86  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-12.c
  47a380f5980f1c018dc746b592bff29e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-120.c
  629e6f1981a307c1da9e872eda7195b6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-121.c
! f0b113d4262e752c5d90c374b56da6f6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-122.c
  2810b54b38e27c6d29407c420e1f4dbf  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-123.c
  10f669084169154d3b6452a59215d82e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-124.c
  4b673c77bfd668e719c5aee96962de08  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-125.c
  bb5b2cb59d4d8a5e05257fa151afb63e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-126.c
  e014944a405eb10c1f269542a44b8cc6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-127.c
  04cbcda663315873a29aeb1df741bf38  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-128.c
! 536fbee3046967b9ba93203bb9b1f227  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-129.c
! 9759daadbb6503c2f8aab4f31c26dc5a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-13.c
! ec8a811992b51f1a09b38d0824e6532b  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-130.c
! 81ecf10d17e84c42e916d04b4db98882  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-131.c
  f10d03e4108cb760eda1309c691ea214  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-132.c
! 2fda95e315a521af1b9993fd0184eddb  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-133.c
! ad9e2e2c0f63b97526b8cabf1d0e9bc5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-134.c
! d52bfbbba5dfcaf852edfec82e9a62bf  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-135.c
  b623763080675c2dee483ed4a8a8f9e8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-136.c
  0299840c540fc99fd075b65c3b7d7d60  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-137.c
  55383e290f8c43513d3e8ad97d5260a4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-138.c
  83e261f0356bb63fd6107f076971f106  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-139.c
! 60bc0f188eec1dbcdae40bcab3dbea92  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-14.c
  9697d9c5a59bee80c7faeecb0728a6bd  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-140.c
  8f4b739717bf2562ba86b0fbf6445d6c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-141.c
  77baa83b524fc50296c78ab1c0b75421  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-142.c
*************** ae70352ef11c235a2ce6e31d3119a637  gcc/te
*** 76675,76692 ****
  70d3f3241a852c9dcb6654dfc5ad3242  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-147.c
  9110181beffc31f3a71a7e12efe71a3d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-148.c
  df14863c2566c81219c627379772873e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-149.c
! ce784ab98ffb2e3fa2b906671512d44f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-15.c
! d34c53b995bd9162718dc1b9a79a4f9d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-150.c
  26b488251fed1489045833ce6ade2ac0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-151.c
  9cedd5819dbff27c274ce7435ba66983  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-152.c
! a42c0c503c185563e2d7df8d0923f541  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-153.c
! 968ba014ef2a46bb86a1d8d704e4e668  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-154.c
! e502356361d433d7ccaed635ba2aa371  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-155.c
  12e2e8de05acde60ac92616aae10a6b3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-156.c
  1fdd8de858fd9549e7883b2b64443711  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-157.c
! e502356361d433d7ccaed635ba2aa371  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-158.c
  12e2e8de05acde60ac92616aae10a6b3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-159.c
! 5723110f2e95deabb6bc1668a8d2d109  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-16.c
  1fdd8de858fd9549e7883b2b64443711  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-160.c
  2bf87ad1a4fbabf13cbe65737243f476  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-161.c
  e27303612d2456705ce7357998c48ab1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-162.c
--- 84702,84719 ----
  70d3f3241a852c9dcb6654dfc5ad3242  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-147.c
  9110181beffc31f3a71a7e12efe71a3d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-148.c
  df14863c2566c81219c627379772873e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-149.c
! 8bd0cab0fdfbf09217ad819296c7502b  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-15.c
! 3ff150cd49dca1e73752107b12b2355e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-150.c
  26b488251fed1489045833ce6ade2ac0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-151.c
  9cedd5819dbff27c274ce7435ba66983  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-152.c
! 8e7ba6c86ebd1ab13e376df995ab0084  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-153.c
! 0abfb60c1b355c3071663aedea5f1659  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-154.c
! 4e15cd87f479870d6ef834ecdf1c874a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-155.c
  12e2e8de05acde60ac92616aae10a6b3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-156.c
  1fdd8de858fd9549e7883b2b64443711  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-157.c
! 4e15cd87f479870d6ef834ecdf1c874a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-158.c
  12e2e8de05acde60ac92616aae10a6b3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-159.c
! 02ef0f334d10034e2200298abe011493  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-16.c
  1fdd8de858fd9549e7883b2b64443711  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-160.c
  2bf87ad1a4fbabf13cbe65737243f476  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-161.c
  e27303612d2456705ce7357998c48ab1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-162.c
*************** dfdfd0484b7d9bece18ad92e58520499  gcc/te
*** 76697,76816 ****
  2f18f98f714dd8101def6cc0b24f05ea  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-167.c
  1bc84777447b3ba804e04edb06c389bb  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-168.c
  b80b68669a81c674d92450b020260ec3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-169.c
! c340756f5c5bde3082cff8d37203006e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-17.c
  541d858a9962cae132546a7831768780  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-170.c
! 58352e7dfc4836454b0c1671dd41688d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-171.c
! de65beace2e64c3c179e181296a26f58  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-172.c
! 176698b16c6275cc165120f66bbab9b9  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-173.c
! 6258e86f8d4b87b6dbd77b8cdf1fe2e2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-174.c
! 97d7f9aa5b51a378c8a6c459d1501830  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-18.c
! bb7aa98adaa5d5715c5bce07d626a356  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-19.c
! 384c810beb44c9ac5e68f9975926fc34  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-2.c
! 87425db5aa30f69fdc39a4305ba7724e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-20.c
! d440d442a5fdca5f6eade9a4efaff64b  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-21.c
! 7338220e6d9689aa5212232d2d315663  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-22.c
! 66d300fa30f69a9511c21956d0ed63b8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-23.c
! ddffcd2c9770f262043268004ac3e833  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-24.c
! 9859e7725f219b3bb2b4f61d26e5f665  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-25.c
! 0a9b83361b80679f9ac96d5993855215  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-26.c
! 7063b2f405684caf12cd5e9c35685c62  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-27.c
! c0770ba2278cb07cbd0481afeb302c9a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-28.c
! 3d363a70fc88ad4d0855c12c857a5d80  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-29.c
! 8f95e679fb4a949790bf49a757a966e4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-3.c
! b34586c7f53c4912d02d6da5c99e5afc  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-30.c
! 3d363a70fc88ad4d0855c12c857a5d80  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-31.c
! b34586c7f53c4912d02d6da5c99e5afc  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-32.c
! adfda761ee183aa810cc5a99e7d8e0cc  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-33.c
! 5a9d8428b57b3706fa84dae6ddcc94ae  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-34.c
! adfda761ee183aa810cc5a99e7d8e0cc  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-35.c
! 5a9d8428b57b3706fa84dae6ddcc94ae  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-36.c
! 65850c1c23608a54d39aa77aaf485e41  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-37.c
! fc6b38eb38d07095f32fae8758724bc7  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-38.c
! e4a4d82300dc74b1728fc0aca30d53c4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-39.c
! df4ad62b9676610c4cd86a53a5702092  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-4.c
! 6c93ca4f7951e39d7573b41bc222103d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-40.c
! 211b98d1cd3661c6dd74de0ae71c4ba3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-41.c
! eebd31f2105195510d9688c9a178f381  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-42.c
! e0508e9b1a40c224a17019214eb7d3f7  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-43.c
! 2af8999d2fd0803dfefa4eaa185519df  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-44.c
  eb19cf1915f8ebb8ee8083bdffbbdc63  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-45.c
  8e93de8025742d1d6a9b23b53d5dca83  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-46.c
  31c3438c5c6e437440084d9608e25a03  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-47.c
  c6b49938097a6f85a67ff8707669934f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-48.c
  c49652c0898941b148fa62cc203938e0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-49.c
! fd11334a63d9e9e16fe301b1c197038a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-5.c
! ec43c637f582d82e2452b33449504045  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-50.c
  547d051d5071cd6fd49d4eb984812069  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-51.c
  cad299bb4a8727e77737f6ae9fb9e4c8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-52.c
  06a5ada101900e71afd0d40e242e6c74  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-53.c
  69085d7c02f31acecd43600254c3f6ec  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-54.c
  6318973f8dadd6fd566a0f9782de5987  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-55.c
! 2d5fa333412725d80215939cda6fa767  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-56.c
  19ded9124fbeb7d7a3d743a49848eeb2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-57.c
  5b7eebba13195dba9dfb745dad0902f3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-58.c
  cacb9f3083315ff85f56d0bc76e95d42  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-59.c
! 7347f3a00c4aaa124a4d028d8bcaefcf  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-6.c
  38552b12f058c60376e3c9f2a671ad3d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-60.c
  7e83d2d6f2eacb595bed50951df6b8d0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-61.c
! 5712f0134f89ca316546df71b0ba802a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-62.c
  7fafbad1e10469266fa11145ddac46f1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-63.c
  3d7af9e3cb0929fc6e979da9e5fe93d5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-64.c
  fa0cb24c579bbb260920831a70b8fbc8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-65.c
  31040a88669705acc9c667f7ff361544  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-66.c
  c7a499e6ee9fbf526a750b8a55e77bf6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-67.c
! 215f361055e1faf17616d89ed04fc422  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-68.c
  808b605a6060bf56399bde43240389de  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-69.c
! ac97c0d9a7a2f1bc3ba6ee48e92dc68c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-7.c
  8bdf6b6f33848504963670cf820472e2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-70.c
  a9611111b7ea9eaf4a1e48083a77b052  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-71.c
  5b282b1260dbed731a43389e9e729a79  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-72.c
  1bd935df1f597cbefc6d7525a818cb67  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-73.c
! bbefcb9b5c50f3f3313d72a34ea9f6be  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-74.c
  7b8a1e61f32ddedac67bed6b697c4c26  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-75.c
  774dd700e5f85af962fd62adddcdef27  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-76.c
  5159a8991593472a2bbed3368a12be7f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-77.c
  24bd3d035ae3691db5837dbdc691aee4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-78.c
! aab51db0dc5f9518241b13786724d98d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-79.c
! 32e11b51297bdcde2056d54dea1724d8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-8.c
  6a5390e99fa496571d7e9a2f5f40aae5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-80.c
  6c2163532b5ad681e169cd3f0e4ddf65  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-81.c
  1efda29709856d41fe1cb9460fa04b4c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-82.c
  0e6ee4597f1b39507defe7e4589f2b51  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-83.c
! fede3e50e8b10c99d3d79cab9e88e0ea  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-84.c
  12a5171e1e7bf1c7bd7abd4e4b8cd3a4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-85.c
  a26b847ff8da36491bbde8efd8e03fe8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-86.c
  d886121d15819c36df11f778ca95d5a5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-87.c
  a44637434a0d05330aef0578f9d15d70  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-88.c
  23cdaff96ff2f223a4c670376b606646  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-89.c
! 7264eeb00a4ae9deedafed021e022a1a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-9.c
! 96cc9c1dbdc81534cbd63ccceb22f047  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-90.c
  51100f8affeefaefb78ebc5b4ad45810  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-91.c
  c6d0ff4cf763c04065289f227183ae7e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-92.c
  cc810a9616e3438c79ba4198af28b8fa  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-93.c
  2019e76eedd5e5d086c11de523460684  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-94.c
  744d58e8f6d127d4444c67c8c0f5fd61  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-95.c
! 5f7693bb4cb84cb63a8e61bf44501912  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-96.c
  750bb2e50345cf96fef0a97dd00fb8a7  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-97.c
  d0b909d869e818b5b2abd0395ab17271  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-98.c
  31c3438c5c6e437440084d9608e25a03  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-99.c
  13c1c20db59e9d99461ec9170fed983c  gcc/testsuite/gcc.target/riscv/rvv/base/bug-1.c
  68884bc5d70a58c7055df54c35b12065  gcc/testsuite/gcc.target/riscv/rvv/base/bug-2.c
! eb6bb8bdd26bcfdf5626086dbc40cc38  gcc/testsuite/gcc.target/riscv/rvv/base/bug-3.c
! b2f786cbc556d613901e2fd0b0efe097  gcc/testsuite/gcc.target/riscv/rvv/base/bug-4.c
! b27b361023d6a5eb05374d0d8ac98cf5  gcc/testsuite/gcc.target/riscv/rvv/base/bug-5.c
  f8d68eda8e75610f3abd8282856cc66e  gcc/testsuite/gcc.target/riscv/rvv/base/dup-1.c
  4b95c2c6a750dec788a04b8733aedbfa  gcc/testsuite/gcc.target/riscv/rvv/base/dup-2.c
  1dba3b8cd001408fa92c132ad3f9c111  gcc/testsuite/gcc.target/riscv/rvv/base/macro.h
! 4b88a0cb8f595383e6b82bc791a32290  gcc/testsuite/gcc.target/riscv/rvv/base/mask_insn_shortcut.c
! d2e53bf1c848b7ec74d87d83f39ca89f  gcc/testsuite/gcc.target/riscv/rvv/base/merge_constraint-1.c
  e634b25f20b14ea882e5d7efbd631386  gcc/testsuite/gcc.target/riscv/rvv/base/merge_constraint-2.c
  6fb683811c27252f6f814cf1bf34089d  gcc/testsuite/gcc.target/riscv/rvv/base/merge_constraint-3.c
  40491e4b82c978c3023451d1872ea027  gcc/testsuite/gcc.target/riscv/rvv/base/merge_constraint-4.c
  46e353fdcd33bf3775d57d45c0feb385  gcc/testsuite/gcc.target/riscv/rvv/base/mov-1.c
  5072b35f85f1361d531d202c10a98b29  gcc/testsuite/gcc.target/riscv/rvv/base/mov-10.c
  af42c934a70128e1fd226529cb8004fd  gcc/testsuite/gcc.target/riscv/rvv/base/mov-11.c
  197d894467f80454e98544f42a091ec2  gcc/testsuite/gcc.target/riscv/rvv/base/mov-12.c
  8761d8404e2f9dcc70963d5d0ba33243  gcc/testsuite/gcc.target/riscv/rvv/base/mov-13.c
  082c24e03fbb7193bfa686402af24bc6  gcc/testsuite/gcc.target/riscv/rvv/base/mov-2.c
  66d76bee53bfd37765034b8d0489f6dc  gcc/testsuite/gcc.target/riscv/rvv/base/mov-3.c
  d3d7f4057c2768a6817d56fb9da6c525  gcc/testsuite/gcc.target/riscv/rvv/base/mov-4.c
--- 84724,85000 ----
  2f18f98f714dd8101def6cc0b24f05ea  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-167.c
  1bc84777447b3ba804e04edb06c389bb  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-168.c
  b80b68669a81c674d92450b020260ec3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-169.c
! a2c91a329f50319b2467c34d3f991c36  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-17.c
  541d858a9962cae132546a7831768780  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-170.c
! 857e151d16e39e1ba073aec6515b97ec  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-171.c
! 2138b2c437cc08a294bf713b5a8fe44c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-172.c
! a58af20355e20b7606329b099e663fc6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-173.c
! 0ad7b813795d01b576435d2e89063ba8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-174.c
! 427723f7ff6f62e53e843c3f31a1d8f1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-18.c
! b0aa5d595895cd6bedc41b20273796cb  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-19.c
! 9209e78a1fefeca9f1f01b77084fb3a1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-2.c
! 960759725e6512a7561952cf61e0f8b2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-20.c
! adc1dff33cf3626a64ef34a699bbab25  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-21.c
! 8687f7abe588e77caef50a9f083c5ac2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-22.c
! 315d977411b48905da54c92bde6d46ff  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-23.c
! 61d0a7ae84c901fe67f8651eca0fffac  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-24.c
! d6585302e27aa23684e78f0680963fea  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-25.c
! 2959fc1f6f94ba66c7e7349af54d7c51  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-26.c
! 98665e90b90db674821912edd26ee0fe  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-27.c
! 69185c89372ab61946d947db0087677a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-28.c
! b4cc707d78a2fc6cb2e4284f83bc1a75  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-29.c
! 6f90f9f64cfee2dcf35709f530aee56a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-3.c
! f63222edcb3b599da98d8f9b734ff3ae  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-30.c
! b4cc707d78a2fc6cb2e4284f83bc1a75  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-31.c
! f63222edcb3b599da98d8f9b734ff3ae  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-32.c
! da322b228f35422b19e8af4bb538bd3c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-33.c
! ee4594104d07db07efa06ca057a76fc1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-34.c
! da322b228f35422b19e8af4bb538bd3c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-35.c
! ee4594104d07db07efa06ca057a76fc1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-36.c
! 43aa055a6e2d01d75f3a94ea00e6bd26  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-37.c
! 982e5e54f02b11c9c9f00cbcb9a1987b  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-38.c
! e2cd6d4a1147d0de41061bf639962e61  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-39.c
! 748880d36697176b626aaa14fdc05504  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-4.c
! f78bd41017ac345f5a609d3515bda6ff  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-40.c
! e85b856469595507f8ee65cf4c914b02  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-41.c
! c6f13a3fc73d69f83e6c27e4ffec0cbb  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-42.c
! 526e82af8c0e59fed9255eefe03fc55f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-43.c
! efb1e7436d17aa67d7977e45686e97dc  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-44.c
  eb19cf1915f8ebb8ee8083bdffbbdc63  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-45.c
  8e93de8025742d1d6a9b23b53d5dca83  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-46.c
  31c3438c5c6e437440084d9608e25a03  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-47.c
  c6b49938097a6f85a67ff8707669934f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-48.c
  c49652c0898941b148fa62cc203938e0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-49.c
! 736da577367b8bf8158b713e2db369f4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-5.c
! 0ed36b5f2edc736db8646b0fea1b8927  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-50.c
  547d051d5071cd6fd49d4eb984812069  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-51.c
  cad299bb4a8727e77737f6ae9fb9e4c8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-52.c
  06a5ada101900e71afd0d40e242e6c74  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-53.c
  69085d7c02f31acecd43600254c3f6ec  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-54.c
  6318973f8dadd6fd566a0f9782de5987  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-55.c
! 493d6f7f2c7885ec12148e62aec81700  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-56.c
  19ded9124fbeb7d7a3d743a49848eeb2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-57.c
  5b7eebba13195dba9dfb745dad0902f3  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-58.c
  cacb9f3083315ff85f56d0bc76e95d42  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-59.c
! 2b1d7e8202f530def1baf93d8b19329c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-6.c
  38552b12f058c60376e3c9f2a671ad3d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-60.c
  7e83d2d6f2eacb595bed50951df6b8d0  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-61.c
! 4c71788ce0881b0ee9b1f88f820c899e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-62.c
  7fafbad1e10469266fa11145ddac46f1  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-63.c
  3d7af9e3cb0929fc6e979da9e5fe93d5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-64.c
  fa0cb24c579bbb260920831a70b8fbc8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-65.c
  31040a88669705acc9c667f7ff361544  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-66.c
  c7a499e6ee9fbf526a750b8a55e77bf6  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-67.c
! 11f2ac64a02ba70d28553365f0d43a96  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-68.c
  808b605a6060bf56399bde43240389de  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-69.c
! c094ea3479e6e38e96eb48e914c43b4a  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-7.c
  8bdf6b6f33848504963670cf820472e2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-70.c
  a9611111b7ea9eaf4a1e48083a77b052  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-71.c
  5b282b1260dbed731a43389e9e729a79  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-72.c
  1bd935df1f597cbefc6d7525a818cb67  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-73.c
! 91c56c286eafdfd875189ecc9396eaff  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-74.c
  7b8a1e61f32ddedac67bed6b697c4c26  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-75.c
  774dd700e5f85af962fd62adddcdef27  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-76.c
  5159a8991593472a2bbed3368a12be7f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-77.c
  24bd3d035ae3691db5837dbdc691aee4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-78.c
! aca939f769840ec61cde33009fbda50d  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-79.c
! a8a666793e3654cf49c507ff2b6052d2  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-8.c
  6a5390e99fa496571d7e9a2f5f40aae5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-80.c
  6c2163532b5ad681e169cd3f0e4ddf65  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-81.c
  1efda29709856d41fe1cb9460fa04b4c  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-82.c
  0e6ee4597f1b39507defe7e4589f2b51  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-83.c
! 8f1a2922351b73001e401864b5ba7942  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-84.c
  12a5171e1e7bf1c7bd7abd4e4b8cd3a4  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-85.c
  a26b847ff8da36491bbde8efd8e03fe8  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-86.c
  d886121d15819c36df11f778ca95d5a5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-87.c
  a44637434a0d05330aef0578f9d15d70  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-88.c
  23cdaff96ff2f223a4c670376b606646  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-89.c
! 9c28770977b0d3bfeb3ad6eea7fdd00f  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-9.c
! d5608b3932d7930d13457235fb6b94b5  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-90.c
  51100f8affeefaefb78ebc5b4ad45810  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-91.c
  c6d0ff4cf763c04065289f227183ae7e  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-92.c
  cc810a9616e3438c79ba4198af28b8fa  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-93.c
  2019e76eedd5e5d086c11de523460684  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-94.c
  744d58e8f6d127d4444c67c8c0f5fd61  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-95.c
! bc09f70431f89cbe0781473918a20fb7  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-96.c
  750bb2e50345cf96fef0a97dd00fb8a7  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-97.c
  d0b909d869e818b5b2abd0395ab17271  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-98.c
  31c3438c5c6e437440084d9608e25a03  gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-99.c
  13c1c20db59e9d99461ec9170fed983c  gcc/testsuite/gcc.target/riscv/rvv/base/bug-1.c
  68884bc5d70a58c7055df54c35b12065  gcc/testsuite/gcc.target/riscv/rvv/base/bug-2.c
! 121e06a5dd20d140f160d5c0fcb057b6  gcc/testsuite/gcc.target/riscv/rvv/base/bug-3.c
! 8c5f12e7d8382592aebacb0ea5057b41  gcc/testsuite/gcc.target/riscv/rvv/base/bug-4.c
! 98e95e62c4d0b0cb1ddcbce4b54a6a6e  gcc/testsuite/gcc.target/riscv/rvv/base/bug-5.c
! bb00467bf137910c133163c0e59ee5b4  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c
! d0518f38fd0f70ecee9e4e54fb74b51e  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-2.c
! 1d3ea8a2d452df16e19bd8b4da8d50f8  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-1.c
! 37fdd933bd2eeed1ad3ac3d804137e50  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-2.c
! 7fc70f3cc108dbfb3f559bcf7fec46a7  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-3.c
! b06ed08bf3da5416e1d78a9dabf45320  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-4.c
! 815e6f8ac54e92d2fc4ae4690f90efd0  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-5.c
! a6a0efbccb5c7ec4343d758307d8a44a  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy.h
  f8d68eda8e75610f3abd8282856cc66e  gcc/testsuite/gcc.target/riscv/rvv/base/dup-1.c
  4b95c2c6a750dec788a04b8733aedbfa  gcc/testsuite/gcc.target/riscv/rvv/base/dup-2.c
+ acb83c56941b40cd27490db738df6ef7  gcc/testsuite/gcc.target/riscv/rvv/base/fixed-point-vxrm-error.c
+ cf53a9b2eaefe23a823c5ce97b46657c  gcc/testsuite/gcc.target/riscv/rvv/base/fixed-point-vxrm.c
+ 9fbf50a6082336831995df0ec679aa31  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-cvt-f.c
+ 49d0f4ca1bac31d2c3d11181b7e1e406  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-cvt-x.c
+ 3cb6f7d5cb779a9b9582af157b48729a  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-cvt-xu.c
+ e5da2028fd8ae06cb16a4e7a71b6bff1  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-1.c
+ 84d5375840b31f4448cc2f0a0fba4bc2  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-10.c
+ f93c8b2d1c60cfefa252a5e0d57d20e6  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-11.c
+ e43dc356931827f1fb219777007defdf  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-12.c
+ 3257eac7b6843bb198b5a1cfd309da16  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-13.c
+ 0c2162997dabbd4581c3b44cfbbad88e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-14.c
+ 34e4d13d80eb58cb509af76075e8968d  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-15.c
+ 41b9cabcddc1251091508afd338e1724  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-16.c
+ 376bbb35a803b2ff85668065b38f5a62  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-17.c
+ 470f2a01c24e91b4dcb00f8eb444adab  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-18.c
+ a0b89791eac7771cba097ac0053a57a6  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-19.c
+ 31df742a2ff4db033b1601b9af37a5ec  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-2.c
+ 520c0f296fc462a9c9f3db8700af813f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-20.c
+ 18670eb7f3b1f85e6baef31a612383ec  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-21.c
+ 6a8ea9b6e45c633df8687248c75700ce  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-22.c
+ 531be58d5cb2cb6f55a9740b4b79e8cc  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-23.c
+ fba279b470067433ad612d0990be5c18  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-24.c
+ 3dc3f29b9fe9a14c7f8266c9c7d3cfcc  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-25.c
+ 408fca6bd1b4dd8550f2fe1894456d93  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-26.c
+ fa6e5b66ad7b7afd188772013046ea67  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-27.c
+ c6523387a35e4477a7e5553122e4a33f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-28.c
+ 2379449d389ac9d611d4ce394c57a3e0  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-29.c
+ 8180feae844b2ab7b9bf4167809b667e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-3.c
+ 16beed4268b89e23f1bb7a81a847025e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-30.c
+ 4931997ea4514ba27cde19ffb2bf965c  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-31.c
+ 167128a82b678ece5cb099ad6478062e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-32.c
+ 828706ced3005ecbb8a023e068977131  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-33.c
+ d22f34b562ba8b678f63255e921216cc  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-34.c
+ e971a88ccb711afd1d7b3690f3c24f69  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-35.c
+ 1853361239475570bec4de9959fc0d85  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-36.c
+ c4377924db17218fd1a9f71272a97de8  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-37.c
+ 62eee2dc9191998cb770ab96128a91f3  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-38.c
+ da23ca4308a4af40cde7b83f3875ba6b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-39.c
+ 8fe9441bc15fe69c61afe696cb787bd4  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-4.c
+ fcd85807d47d1aa732644c6bd29bc460  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-40.c
+ 583aff41be73e2cf036aa17ac783e6c3  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-41.c
+ 05de4238dd27e8f7bd06215b541ed103  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-42.c
+ 0697ea0a928a990c62e53730b2d74cd8  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-43.c
+ 64d75ebb58e002a30e5ef9b349cfaca7  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-44.c
+ 032e2a876c35f78ae998855a01574e6d  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-45.c
+ b36ecfab5f19f93cd5be02a5babd866a  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-46.c
+ fab92414b9a7c56752b0ea31adced714  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-47.c
+ a55c02c67f3b358d7e6da6a7550ef5f6  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-48.c
+ eed554b49a3c8232bc7bd92ff5ac0eb0  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-49.c
+ 896f1d3dbe5b5af8ebd6303a1de7c12c  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-5.c
+ 4f6996eef065476942ef23dfbebf269e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-50.c
+ 02f331cbc7b14fa4be5724465d6b0457  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-51.c
+ 4aad4c2238cb796585547629087bf63e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-52.c
+ 93ab4f336e951a11c1ab696d53615540  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-53.c
+ 92a06e1471b270521b5e87369cb8aae6  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-54.c
+ 44da02ffc9cab20c646b37a4dc7cfe41  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-55.c
+ 698c0cbd75f042c85692d9e57436faa3  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-56.c
+ c3ce5c47b9a65de2e82818405fb45249  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-57.c
+ d5374e91aa2e026dcb667eb34d3d43b9  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-58.c
+ 49ed6c4e07a46be7b352ae9cf4b8f9c4  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-59.c
+ 5be2a4b06a41199015dda601b4768215  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-6.c
+ b66e0edb92973d821bf2a808979b69b8  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-60.c
+ 3393718e312d72abd03c6e486220d4a4  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-61.c
+ 536fc3c1afb9a0e29862775b614ec480  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-62.c
+ 72e215fd2989adc8887ec5edd221dd0b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-63.c
+ e507503d9903b3d6f161862524f7a43f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-64.c
+ 7294760216816d388cea4c8c8142a958  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-65.c
+ 5a2664b3cf5a43e1226b86a318feeb4b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-66.c
+ 743ef036d8df04c6b13343c19cca5609  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-67.c
+ fb633d8f4ef046fc5227cb88e9c47e23  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-68.c
+ a1b3434fd11a0481b121c48ed2900eaa  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-69.c
+ 4da9108de22e727b36a90c39f768cccf  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-7.c
+ 53298291a579ed930c786d44ffc5be19  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-70.c
+ 8c91437fa7b567afad5bfbc8bdc85f90  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-71.c
+ 07ed1e2a91dfeb3efc3559a2d1cda889  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-72.c
+ 1923a5b6a5f592a57920be56f0f46f37  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-73.c
+ 16ff834f10fe54188b5e6c19c61fc08b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c
+ aef9064e046dcc8ead4d17055fcf7504  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c
+ ce84e742fbfec32a98cefdb30a7de997  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-76.c
+ 9e0506a9831857769313ef1dfd4a357f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-77.c
+ efcfd0a5b252d8eb20e72455c8c11751  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-8.c
+ 8e870e3f8c99b0c7a1403a8d79ce4937  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-9.c
+ 2d9535a42ea9c6e2aadfcfe8a21bf39c  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-autovec-1.c
+ 1f237df462bcd8aed648b5cc01eb6233  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-autovec-2.c
+ 51c2aaab7e5e6e1357dd43a2f28963ce  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-autovec-3.c
+ 59e68ec9f26ceb99d3b8226640b3c89a  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-autovec-4.c
+ d09d02ca261bd37ac82f659e747f39c8  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-error.c
+ c87529df3798efdb96df88cb00280be2  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-1.c
+ b67ca5e39bbd8dd9eac473b210aa40a5  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-10.c
+ c618f387f6415254cd607cf609660cb7  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-2.c
+ afd460908a0b7401ce9f6e4ead6a3c28  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-3.c
+ 785b47edc03bb493904167e2efec96dd  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-4.c
+ f02442531968c4cb1f107061e23a9475  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-5.c
+ a11b2d48f45e0532bda6343f2dbf1969  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-7.c
+ 5f1974423a4eb40c08c5f87a3d5df989  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-8.c
+ f7ecc35a59544c495fa9a69e895ba453  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-insert-9.c
+ f116042d5c7a85aa363c6d59c709d246  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-run-1.c
+ aafe22584bf34860d16684eeb25fbd93  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-run-2.c
+ b46408621d928e7ddbdcec62ad381bb3  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-run-3.c
+ 3f929c8214ee72b579eaf11ac6e38cc5  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-run-4.c
+ 028f68a4a2b0888f98231019d7d24a8e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-run-5.c
+ 2e3286be2aabcd40aace2fca41adfada  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm-run.h
+ 52197522cf63693fc2f37894ff755dfb  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-frm.c
+ d2d4b724f694a55e3e05b9837e03ff61  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-fwmacc.c
+ 4e72c0fb5dc86bd9eeb2708d6a91c230  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-macc.c
+ 538d78d287d2c27ebc68e29309ffbb0e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-madd.c
+ 60b91369fb9c448ba6fe5c0a8310d54b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-msac.c
+ 83a50ddc406cabbec47443226356bb05  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-msub.c
+ 58eb91cff7af64d6a93770d4bfaa8864  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-ncvt-f.c
+ 186de41735fe30311bc8297a76c44e45  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-ncvt-x.c
+ f9f4daec976fba955253581a934de0d7  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-ncvt-xu.c
+ f294f8f525dae1bf40c0224b40b0ffe4  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-nmacc.c
+ 1602f9b60ea04c9dcf3525bd0f88bafc  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-nmadd.c
+ 7b49d0d154cf33d4f3945b3bfe263414  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-nmsac.c
+ fe90eaf85b34e81ba7d7fd632139e76e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-nmsub.c
+ cb4901ff79e8eb4e2d578e38778e2416  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-rec7.c
+ f326b92e3c80a1bbb8e2912cd2798e67  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-redosum.c
+ 64af13ed37e2c791e2bae615a8ea7b1f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-redusum.c
+ 0cb00abe20614f59a2818b93ed624b6b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-single-div.c
+ 9e31dc8b6b2407661e7db6d3ea544d60  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-single-mul.c
+ 1128d99560f6cc52a12da60274135f57  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-single-rdiv.c
+ 47fff23cdacef666c5a75680c4287d02  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-single-rsub.c
+ 2c33b21c1ec715a6246840cf0dbca681  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-single-sub.c
+ 5b3f0160a8c6a085b15daab8869c1932  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-sqrt.c
+ 4f8eef09572c3524d50f61b12af5b19c  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wcvt-x.c
+ e2bbd0d66ea5bc2f51f8b693b16a4b95  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wcvt-xu.c
+ f80ec5a52861f1e3b73fa2cb6ee89450  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-widening-add.c
+ f1a514e76b96ae0a6647ef1d5e8d212d  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-widening-mul.c
+ fccb1a06ca62fead6e68965e0d2ca933  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-widening-sub.c
+ d5050960d1f46bf0f8e43c795935946f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wmsac.c
+ 291cf0ccd014e0915d4903fdd80a1e93  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wnmacc.c
+ 737d56f72c7cdc3d58a2c48f96b22d98  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wnmsac.c
+ ef4245fd73f1de259b051142efa963ad  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wredosum.c
+ 843a8c5fa0dc081f888dc2d0b627d0a3  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-wredusum.c
+ 08054e5f470b078b510e4a3e83f162d6  gcc/testsuite/gcc.target/riscv/rvv/base/frm-1.c
+ 49f1b4782476ece5ef4b7d47553b9e13  gcc/testsuite/gcc.target/riscv/rvv/base/integer_compare_insn_shortcut.c
+ ad3f94be809a85189ad1c49198c4c3ad  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-1.c
+ c6b052e57c2390fdf919c33521b5abdc  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-10.c
+ a1c36473cff92034ab6df5d98269988d  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-2.c
+ 63871e7a0f3542c85b0aaf1faf03726d  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-3.c
+ c7291be7311c122c417126f4a6dcb51a  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-4.c
+ c7d1b6a016d46f79909a153375ffb94a  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-5.c
+ 2c6255cdd5a1a6a55f48539e00a6a386  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-6.c
+ 6e44a51a9b457464f14d700014dee9ca  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-7.c
+ 7abc96febaf4a0e3863840ca121a4f45  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-8.c
+ d26e7adb6676717e1cd39b7fe970c4a7  gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic_required_ext-9.c
+ 4d0a260f4779bce34aacf859f7fb7c0b  gcc/testsuite/gcc.target/riscv/rvv/base/intrisinc-vrgatherei16.c
  1dba3b8cd001408fa92c132ad3f9c111  gcc/testsuite/gcc.target/riscv/rvv/base/macro.h
! 044598b30c08b45d17946c23a0b9c31f  gcc/testsuite/gcc.target/riscv/rvv/base/mask_insn_shortcut.c
! 55b027183576cee4ad2c564476a377c8  gcc/testsuite/gcc.target/riscv/rvv/base/merge_constraint-1.c
  e634b25f20b14ea882e5d7efbd631386  gcc/testsuite/gcc.target/riscv/rvv/base/merge_constraint-2.c
  6fb683811c27252f6f814cf1bf34089d  gcc/testsuite/gcc.target/riscv/rvv/base/merge_constraint-3.c
  40491e4b82c978c3023451d1872ea027  gcc/testsuite/gcc.target/riscv/rvv/base/merge_constraint-4.c
+ 429c3449e36729a4ff10219fba5ed6b6  gcc/testsuite/gcc.target/riscv/rvv/base/misc_vreinterpret_vbool_vint.c
  46e353fdcd33bf3775d57d45c0feb385  gcc/testsuite/gcc.target/riscv/rvv/base/mov-1.c
  5072b35f85f1361d531d202c10a98b29  gcc/testsuite/gcc.target/riscv/rvv/base/mov-10.c
  af42c934a70128e1fd226529cb8004fd  gcc/testsuite/gcc.target/riscv/rvv/base/mov-11.c
  197d894467f80454e98544f42a091ec2  gcc/testsuite/gcc.target/riscv/rvv/base/mov-12.c
  8761d8404e2f9dcc70963d5d0ba33243  gcc/testsuite/gcc.target/riscv/rvv/base/mov-13.c
+ 367f78f96faf37ceddb0bdd24593c891  gcc/testsuite/gcc.target/riscv/rvv/base/mov-14.c
  082c24e03fbb7193bfa686402af24bc6  gcc/testsuite/gcc.target/riscv/rvv/base/mov-2.c
  66d76bee53bfd37765034b8d0489f6dc  gcc/testsuite/gcc.target/riscv/rvv/base/mov-3.c
  d3d7f4057c2768a6817d56fb9da6c525  gcc/testsuite/gcc.target/riscv/rvv/base/mov-4.c
*************** eee07e7f02ac91f8adf778c10661c2a1  gcc/te
*** 76819,77298 ****
  b6bd0811c82a6af5d3f5b16c8c8a8af7  gcc/testsuite/gcc.target/riscv/rvv/base/mov-7.c
  83a3ad5e108ad86593a9b18046a8e987  gcc/testsuite/gcc.target/riscv/rvv/base/mov-8.c
  77f72f25d47d86afb72813e3d058656b  gcc/testsuite/gcc.target/riscv/rvv/base/mov-9.c
! 5fd11780198a40bfebdfe809dcb842b9  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-1.c
  bc908c8e86335a1e2679eb72213fcc84  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-10.c
  428997b4f2b90fe6d460ddd9b52be1eb  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-11.c
  ad8a60301f84873d38ab21107e52c63a  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-2.c
  0a6e7a6d5b9e3acfce79c504a21656dc  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-3.c
! d59f2887972f0489455a60ded3eafcd8  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-4.c
! a71b10ee39910b10aecc2a39055d6ab7  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-5.c
! 4961cdf342d7aee4336acb4b6175898f  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-6.c
! 103794ecacca2192502e77aabefe57ad  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-7.c
! bd2f1480d1fc8a5ba74df6103403fe12  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-8.c
! 328642521916570cb75ca3fe613dc0e5  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-9.c
! 7b472b6a17c8b87f2504d71181026f02  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-1.c
! 98ec3916fc6b6402d868531ab0b9fdf3  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-2.c
! f6e9c9cdd464e975b70db6a4d939dbc0  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-3.c
! 6ae088e8e110a86b22e55fbe8670ef5e  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-4.c
! 0964611f59434b33df4b5b5b54d8a040  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-5.c
! 13a4156935999c44e657643f7e856188  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-6.c
! 525ff428edeca511c86e5fb675326eb0  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-7.c
  d71c3f56021d3797031c6ad70669ca47  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-8.c
! 1e2dfa1b1e54e4036c3983c1a4331ca8  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-1.c
! f181bbabda2838bf06773fa6a4994ed2  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-2.c
! 0f8329bd667c5b1cc6b91c900670b11d  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-3.c
! 3b73d23e1d746ed57e6185e904f1a8e0  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-4.c
! d83d871fd46ba7b8f2aab7967f5ba049  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-5.c
! ee09eca4cd8eb6ecb824b7eacc075068  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-6.c
  185f7c3e9c87c3e119932441e4f92b9f  gcc/testsuite/gcc.target/riscv/rvv/base/pr109535.c
! c804a0fabb820aad63370b0a038cf47a  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-1.c
! 101f4c473acff10d55020431a73f7ca9  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-2.c
! f2a7c0ac32100a9bfa19647d4c2134f8  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-3.c
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_vector.h
! d2d2e9fe0f87d34014cb558f4e5f1add  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-1.c
  f0ef727ad421676bfc8524d445606492  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-2.c
  6c7cdecd10fb8854fb71be95c2dd58c6  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-3.c
  8c21b304dcf8bfcea2ca1180cbeec2d2  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-4.c
! 97bf6f27ba796847a1f8f2175edd9e5c  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-5.c
! c9fa7c9f1f73b0caee80fd11f8cc7998  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-6.c
  1e71d7a2e9286dd5dec229229abd75f6  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-7.c
  29be05d6e6dbf5bf5053d5be53ce4c65  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-8.c
  3e207f073e047580eb29a2b880bb0544  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-9.c
! 30e35e1581d9bfb1fe1e73fb62303125  gcc/testsuite/gcc.target/riscv/rvv/base/shift_vx_constraint-1.c
! ad8d99fd677b8833ccecc44863fd49dc  gcc/testsuite/gcc.target/riscv/rvv/base/spill-1.c
! 544a29246ceaf329107d7f09a4991998  gcc/testsuite/gcc.target/riscv/rvv/base/spill-10.c
! 4a2780d3aa95a9209605a3562c5f2989  gcc/testsuite/gcc.target/riscv/rvv/base/spill-11.c
! 3a1c59ed1dc29a0fe1c35eeb4be76d36  gcc/testsuite/gcc.target/riscv/rvv/base/spill-12.c
! bf90952d994b84336a102ecec076a8d6  gcc/testsuite/gcc.target/riscv/rvv/base/spill-2.c
! 7e16c487634ab16b38c7199173d45066  gcc/testsuite/gcc.target/riscv/rvv/base/spill-3.c
! 98aa00d975b60597d71a78892fc2784f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-4.c
! 7cb3c81fca63ecef02c6ba995f504876  gcc/testsuite/gcc.target/riscv/rvv/base/spill-5.c
! b3bfba70a86dfd7e0b66e2e9b165995e  gcc/testsuite/gcc.target/riscv/rvv/base/spill-6.c
  ab9e940eefba814d9fffb8ace2d7e17f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-7.c
  31b945f30d695b40cfab5ae856e4e38f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-8.c
! 2da89379bb8043d0da250640779e832d  gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c
  7de53eea40a2d3d1318fd361b276a775  gcc/testsuite/gcc.target/riscv/rvv/base/spill-sp-adjust.c
! 95d2198a5e1bf0270cc00e3a6e611d52  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-1.c
! 9fc9c95f4527fddbd13a205758082a2b  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-2.c
! dd40bde9ba837a418f04cda7f7f026cc  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-3.c
! 5be143677447d5b837ca24245acabb30  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-4.c
! c983cb480fc571810a8c0e747a10dccb  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-5.c
! 01b77feccdb713d37ce1a91b1bcfae05  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-6.c
! 019df586c7f75eed7bf7d9d5ac3a3215  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-1.c
  cdfde402a9bc2f52349e1fad712771b1  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-2.c
  473b0f8fae29f8c2c8a195451b389eb8  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-3.c
  a21794bc1d8dfea5ab729f01cfc95a7b  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-4.c
  bcb77a370a0025f6080cf4a17567a755  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-5.c
  3dcf42346b0a4d9654845af0a52664c9  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-6.c
  1c9cc972f5f13366c45b35203453c787  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-7.c
! cf9e743209e4a7015eb91411dc0ce11f  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-8.c
! f39a463509ab1138806f1f5cf6f1cb63  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-9.c
! 31a1bc157dec48b928dc74208940364c  gcc/testsuite/gcc.target/riscv/rvv/base/unop_v_constraint-1.c
! c8e4123dbf789d6736cdfc3b869b8cff  gcc/testsuite/gcc.target/riscv/rvv/base/unop_v_constraint-2.c
  788aaa7d69ba3f329a0fd22e3aa677bd  gcc/testsuite/gcc.target/riscv/rvv/base/user-1.c
! 52dcbac3168a911ed23eef9924e73cb8  gcc/testsuite/gcc.target/riscv/rvv/base/user-2.c
! 176f8e8720fae138bf55d82d12af56be  gcc/testsuite/gcc.target/riscv/rvv/base/user-3.c
  cbc1ef68a39770e18309f1b2c9ab7db7  gcc/testsuite/gcc.target/riscv/rvv/base/user-4.c
! 02e7d50b5fb12f944b9afc426178af51  gcc/testsuite/gcc.target/riscv/rvv/base/user-5.c
! 1f02e86934525ff05992c9fcc88fd48a  gcc/testsuite/gcc.target/riscv/rvv/base/user-6.c
  5d33efd776de379270a693a7f842dde5  gcc/testsuite/gcc.target/riscv/rvv/base/vlenb-1.c
! ca5aa1738c25fb0d043d454c19d9c97c  gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
! 285305cd7953cf2cabe0a4cc1b898121  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-1.c
! 4b5b4534e3089791a73b9a8cf87c3ff6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-10.c
! 93c14d545ddc0d0759bae07d34b126d8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-11.c
! 6101d69baae5820a42e4d53bbb779531  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-12.c
! 7034b11620fa51c2c8bcf6ca3c426082  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-13.c
! 4978e8812929c7de66f65c5b203bc524  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-14.c
! 9812cab027f8fc9bf958e86d64d02f4e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-15.c
! 80c3d58f42239a8e80c0e2726bccd437  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-16.c
! c58842ed184e9e30ffe032a9f067baf8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-2.c
! cb44d50c7c6381a1c58e44d749487b7f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-3.c
! d09934658960089e4e30dacfc7c514c9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-4.c
! 422fbc6b5e47f0d5b8f2b088cb7f2c92  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-5.c
! f0197a1b27380ad0863200ddaf18dae5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-6.c
! d1239cd040c102570c007840b38638f4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-7.c
! f87148ca25d5f12f8a021230072b4fb9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-8.c
! 57ff965153e1455080c0d2e746f72773  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-9.c
! e98a02d76b3d9ea532704c72de3890dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-1.c
! 7cbe49eb0826a7dcfc214c74e19bbe73  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-10.c
! 3c33722bf850cf125db7abe5d0a0eb9d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-100.c
! 867b1c926ccb79ec41ad66fb445d0817  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-101.c
! 1e11e8b6b6b327f862510ac7bdc15aaa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-11.c
! 1f6caa47509ef30a9b15ab8ee6bd8408  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-12.c
! 137988f8aa0e831a58ef1477705797a4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-13.c
! 1182d51bee490e60e029cb2af2b7010f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-14.c
! 05f6a971e167549bcc57b483c934fdc2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-15.c
! faccf2461f7957a8e2e82d1f7dff8153  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-16.c
! 3274950f100a604c587a881fbaa54937  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-17.c
! 238ac86bfc798c43bfadf8ba0a504887  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-18.c
! 98d684702bb40b40500f15a99446be4b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-19.c
! 6b19bea22a5209734ec4213df359d4ee  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-2.c
! 8062cf1c21c0df1b59b978ff5a7c5684  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-20.c
! dd2f1bccf90dbb6ca6a9f33d80fdbe35  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c
! efaddf26a392709e3e10978799892eb8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-22.c
! 8fb382763255e7e747964b9213994fa8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-23.c
! 718367b33189f21a7d3249af59729610  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-24.c
! 2227b551ba1cb9451b32d3c85aad43c4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-25.c
! 05d17ade8678e14808d32a67fe9c2c0c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c
! 1d30261556f46a8be470c56a4f0b4dd0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-27.c
! c79c19173749fedb189084b047ee4eb5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-28.c
! efebee13b791a2312964a22d62967111  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-29.c
! dc5f01dbf92b8528565a165fe18d4493  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-3.c
! e92fdaf82db1130152a598343d0f7ec4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-30.c
! 43f81ee2b3c33aed8274f7b5aa12f444  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-31.c
! 3c8d76a5952f8038432341da1779f5c2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-32.c
! 34f1f470e197e8cfe1dcb9fab4f873c0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-33.c
! beb497f713eaa0a861bd99d693973ea0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-34.c
! 61192dec477df2f809b10a6fbbfb6673  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-35.c
! ad275129939c930f18bf09d8cee4bc33  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-36.c
! 23a3656e6144026f774fac0d4133833d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-37.c
! dd905382a95abff1666cafbeb711302c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-38.c
! 0a0d225f1f9486023b4164df4e61214b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c
! 53b83620f80180a7474eefe90af7384c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-4.c
! 95c87201b27b3b538ade1cb3062e64ac  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-40.c
! 1d571b5f72c7b472a28ba8d9f9170e62  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c
! 346c7fe1e9dfa7a7ffe048fafbb5e9ca  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-42.c
! 9e29b6e305147af0d5c736faf6558bdd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-43.c
! 7efe1e62bdd4b3382c4e69f82a7a879d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-44.c
! f21f70cd870335eacf94ee332c5fc5aa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-45.c
! 95d34162881703116af763aed6441c3d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-46.c
! 446bba7f67faee9299c0f02a0676a349  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-47.c
! e671a18113a4182686309a806c0b5236  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-48.c
! 5ed50ef0c673a1c717ab7e95c1bd454b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-49.c
! 8d2f88447fbf976d6a92e0573768abb9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-5.c
! 14bd53b31429f9a554bebc38a35944c1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-50.c
! 42ea21b1a833bbcfe76331d012598e8c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-51.c
! 0b756a077b185e70ad0d115251962d68  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-52.c
! abb85ffd093b063ffa8139c736a5fb44  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-53.c
! 95e7402585030bde7a4be42d6543d4e3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-54.c
! ed147e958fe4914026ab5a7c548a8ff8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-55.c
! 6807c92a08a4f005d1d61f66db107648  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-56.c
! fee58417f2f63671aae97cfa0d391324  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-57.c
! fe134155ed8078ed964255fdf3528fd8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-58.c
! f1f7ed810a505b4126d4fcde7c69bd05  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-59.c
! 255204fdb4d96049fbf841fac54575a5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-6.c
! befdb4faf1ad27ad166767e43371b321  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-60.c
! 0fee4d04d855d5512ffbbc7f6ee679db  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-61.c
! d430a3d044707d24f4edc54633321a84  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-62.c
! a7bd83f6a4ebb91cbd17296d49b24357  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-63.c
! 44b37fe03be9d188ba53f378fe1e3c5f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-64.c
! ff47a98cc85c86f8eb44f4a8441e2732  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-65.c
! 7076ae4058d6690d13c8a31886ef8f2f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-66.c
! c231de6eb15f919c47e99b7effb1bb61  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-67.c
! 2e5ef894c52561083407a932a03e1a0e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-68.c
! ab532acd1b684eacf707d6ac9121dbac  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-69.c
! c5560f1f8999bfa18ab4f2f0d119bb16  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-7.c
! 617e21fb3269424a3178fc50974d5199  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-70.c
! 45157a6245d074b98cc86264841eb885  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-71.c
! 32dbd2f4bd86fceb33f805a344cd1d3c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-72.c
! 188ae2c763afafaf041e6f94dccb7c12  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-73.c
! 505ab663a4d317c34f13b21ca46549cd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-74.c
! 7dd47bd303c40833aff4811d2cd226ee  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-75.c
! 796463a847c77ef839f0684a68e61b9f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-76.c
! 917f71c31d8bf2d5bfc3d0fb98633c91  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-77.c
! 5e1ae57316930c51af9784e9bd1387b1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-78.c
! 2090de7d209018eada15a2c7dae527aa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-79.c
! 2f262f8972c41f77ec4a3c6c6ee3cd3e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-8.c
! fba78836e09fcc2af635ce2c308a16bb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-80.c
! 8f56909fce07b0d9c12d5d433613dcbc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-81.c
! 87748ecbb0fe8632692bd5db27b00751  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-82.c
! b2486458349848c4bca58876982aefe2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-83.c
! 5abf8be4718ed0c17c82545b39218833  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-84.c
! 81b52d356bb3432353c45ec0c41c1ca7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-85.c
! 431a8b5c9077f5e1096664b384890d6c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-86.c
! ca7e8d156d0bb86c68c251dedb789c68  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-87.c
! 95b5e50659a5d252ff02dfd10d6af0c7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-88.c
! 19629779e23c6de9f7f1c9747648a059  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-89.c
! e7c82b20323459f6b2210aadce4e879d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-9.c
! 718f15b60b9a5620f911fbc321849dc2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-90.c
! 330e45620d4a1dc62bc889947c13f8a9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-91.c
! 6068a669c5c1ae7adc6a2d378cf58070  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-92.c
! 4f6f036b9ca8580af618b960abc2adb8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-93.c
! 15a65acea3c89716668aebba7069d977  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-94.c
! c64f9765ffd3607a253558fad673cc6c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-95.c
! 353057b922f02ace6ae8f6bac03b5c82  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-96.c
! 0335a38e1953dfc75c91c9d2f1d31240  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-97.c
! ee95b6fbc4b73b58c5296620ed2e1470  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-98.c
! 70fe0d011080572a8a2085facf706bb4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-99.c
! 419c154c9ff99d3f84872152496454e6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/dump-1.c
! 52ff1117b7b3362b9ec0dd9a4204e629  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-1.c
! da7e15139e8df3eaf51decff3f3514ec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-10.c
! 061940d0c91bb7a6a48fa9745857d651  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-11.c
! 0067c7ba8083aed6d55f18b077556f8f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-12.c
! 05f290f3a0f58b0a967cd534f0063b04  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-13.c
! 20e0f7882236647937671e07641f2356  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-2.c
! 86bdc4571b1fed46419ac35f3aa96cf5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-3.c
! 2e21e828509c37cd5618c633771c2679  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-4.c
! a3ed5354fad15414dd4a54d23cd4c81a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-5.c
! 2f59af6cc031580ada5a8c8ee471e718  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-6.c
! 763175cd50111ef58a551ef2fc48d981  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-7.c
! 2e4456648c796dcbeaf20707c01cac83  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-8.c
! 5f2a4a29de214b4cd80a9946eac0fa5d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-9.c
! 8cff2b17f110838f324d52eb926fa9a3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-1.c
! ad1bdf831212e7409718cfcd0b75e284  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-2.c
! ef54049f310ddc286dcfbd02d7a3e046  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-3.c
! 7d584d5f397cc70238726066293cafad  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-4.c
! 7befc4d554b446d4a94a80a896d9eaab  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-5.c
! d034aedd40c7fec171fd035cbff1cca1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-1.c
! 7678418a4761db5ed524310935ddfd1e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-10.c
! 2e2e361da7f6f9467c24bea2e4e27876  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-11.c
! c3ff12b78ec33e1be39b3f98782b41be  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-12.c
! 2c7f66a806ca0a696357a893ea94d45a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-13.c
! 83717170b9196357130f49c69873085e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-14.c
! 0afe7a2b93c94e24b262c160eeebc861  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-15.c
! cbbe3f31133a34c27e6b5630d60a25a3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-16.c
! 8a2ac134f2e32664811fdf3f4b9d3402  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-17.c
! 6a0fe0f9aefef658d4f057793838071c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-2.c
! 089b67c27c6d0e64a9d1c4162bb82f56  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-3.c
! 7b118cf8f79acebcfca21d825dc489a0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-4.c
! 96bc4e638d529d6a47d197939ec68997  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-5.c
! 0a780cb53a265db12854f749773a79bc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-6.c
! 6f44cae827c37152902d6345d133ea07  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-7.c
! d489de137924fb25024f70ab2e19a5e3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-8.c
! 4daed8de1251e3218233fed9a8045726  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-9.c
! d5e9f92099fe94c13f1c89cbaab55c86  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-1.c
! 7dba2fc93fb742d123c15ee9a14e816b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-2.c
! 6e3af1b927927be73e419023318a9a1e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-3.c
! 8c558f3011721ea2c1b608ee723175ab  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-4.c
! 99814442ef44bd473febd316b2ccbede  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-5.c
! 68e6807285a1836c8f600505c20b7018  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c
! 1b2a3d7aa13ceac7a752d32be764d9d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c
! fc42786a48f30a95b0aa2552f60845f0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-8.c
! 705bfb13f27b4cec2aa9023c2b083749  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-9.c
! 048cf6bf1d5733af6537f6eccfb61549  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109399.c
! a1e7dbb39ebd6128145b6f15ed8c1dd2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109547.c
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/riscv_vector.h
! 43222f020a3d499731c953a12e53eacd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-1.c
! e784089ee6a1f060eacee1982ed1f7db  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-10.c
! ebaf1c67b650c4f5ab06ad92657d7b9b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-11.c
! 4f2a6e9a0f005f8a989a9e6e0923e66a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-12.c
! 042d8fe5f97f3c67c978b761c1122356  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-13.c
! 8d208959c87d81ff07dffebc8bd1eac0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-14.c
! 60825b83fe08bcfc57b7d86eb772485f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-15.c
! b858428a388301741cd16fcf44e14b3d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-16.c
! 052163e13c11a989da19f69c5483bc69  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-17.c
! d3f8bfd09ff66883f9f5b2ea5abddd34  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-18.c
! 79eeb1b5ac993a7dc7555c7ebbb4a62a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-19.c
! 784cfa9ea057f94f6ade470d423b41b8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-2.c
! 052163e13c11a989da19f69c5483bc69  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-20.c
! 50db33f3c6f67e1e76ac882e3fe88fdb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-21.c
! bd6b4166776589d38578534fdb462c5e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-22.c
! 3535b26e3a1b52b5d0c62d828e073357  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-23.c
! fb813efb57521219581dc15b334e166a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-24.c
! a3e7c66f828a15a0d1bff652a646f332  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-25.c
! cf3bbc56dee842efb700c82de6f445cc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-26.c
! a60e9c0abdff4a2b670038c01dad001c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-27.c
! c3e8c12157effde2c0828aae10c8ded9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-28.c
! 0f03896425e96f2a731c273a9e789819  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-29.c
! 699bd2000c8931689d2a39f270ea02d8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-3.c
! 444c847247181076f570df33b89b775e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-30.c
! 59d824b59f6f977e82ff9fec944724aa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-31.c
! fd7a489b379cbc355b9c0517415bc76b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-32.c
! 4e40c93c4a4ba66ad97b6d904155d48f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-33.c
! 22f5234a47ff16ec46cf68cc6d1263ee  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-34.c
! b3088ae1d08a56007f0a3b4025a0bfe3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-35.c
! 107071f1f23f9b2bfeebff2f2aef136e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-36.c
! fe69a1f13ed56c9319b19189d2c5d03c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-37.c
! 4cbde9c696f4f47e2e112b46834d445d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-38.c
! 4a216119bd78633d62ca26d65072e411  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-39.c
! f6dc998862f42d8d36b9f67a201b6749  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-4.c
! bbbdb5eef3d195df54834ded7a7480b0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-40.c
! a8d69c2863bc49303123e0c9281a3854  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-41.c
! b9629a9c4e5728ec35d8896fae770417  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-42.c
! e53803b10efca4af17a60d11a5ac491e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-43.c
! 47b942eeedb18844b11df302aa573db7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-44.c
! 29b7f16a1ef70e91a482e5c1a283d633  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-45.c
! d08adc410f3ea6cf186525f82ad329b8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-46.c
! 2b42b89e2ff91d7f3664e77cc09541dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-5.c
! 08da37b9fe3e4b437a50617ba0c286b3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-6.c
! aa72330a6164cc8416d37a4c6e5c2b1b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-7.c
! f99715701628fcc7d8d61d9cd2f6ef9c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-8.c
! 57d9010ec97346e146926ea86dcc6234  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-9.c
! 32d970812660350d87cbf0f9368d6ee5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-1.c
! 53270075e6aaed5501521fd71e5344ff  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-10.c
! 4d71b197dd20496f8c0796d0050e3cf6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-11.c
! 0451c5cd907187bf4b8d368c9953bd2c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-12.c
! 14ff0f433c99fa34055406ce86cf745a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-13.c
! afce6435d9fd03ab10205291fc1c5227  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-14.c
! 6fb89817096fa5843bd7b20ea0b3a7e2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-15.c
! e200711715f46ebb4c7f59d3012929ff  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-16.c
! 3468dced43fd50e6cf55a9a50da4aa2d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c
! 5f34391158ed5b723a37d8de4de68481  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c
! 6bd412dac2ad6705198bcc24b462b9f0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c
! 41aa2eab26363c6c749b890a1812ef8d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-2.c
! 1dc957feef8d587a96a92f042000bd40  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c
! 8a195947fe55576950c7960e3368c2ea  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-21.c
! b9af42677b767d4ce8ce0b242d9391ad  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-22.c
! d6f0ada281870b141a9866f34a033645  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-23.c
! 50d2932620ec7073d8e8eaabbf161f59  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-24.c
! a3421615ff035969098aba182fb233ae  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-25.c
! e9f1a0ea07b687995a15e50ada18b807  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-26.c
! 049ef31685a280437f720e1c7c8f83c1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-27.c
! 3cfa3ad2022cf939afc83693637bb5f9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-28.c
! 70fc56672636184e83ac29185424538c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-3.c
! 29630f0efbe15e2cfea439f32767e2a8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-4.c
! 4c2038539c45f379f3d4e7281e0d5781  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-5.c
! 2f96910264d6ca25433942b6068c25d2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-6.c
! 6f2aded801d9b882a960fd21b9b11aa0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-7.c
! 5fb74d9ca79ffb8ef730ec81f59fbb4a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-8.c
! 699493d249ec314f35ee0ed73b66ded1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-9.c
! 5cc202e1a5b4a9b305eb1de1c98943e9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_call-1.c
! a65958fefcf76dfa3549e8f330e3dc42  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_call-2.c
! 6332d3b2ef1d04c8498782f02ee9a68e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_call-3.c
! 16fa8cebf603286e6064f33c6332f387  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_call-4.c
! 9d2016970d45d5a88e9763b671cd201b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_complex_loop-1.c
! 8c5dba38548a5e45ef7a0388d596f877  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_complex_loop-2.c
! d44bbfde36c6e719b0a5aaf6d1b3bdc9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-1.c
! b449d756979b953c5dec600b862ba7fa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-10.c
! 41b036ff123acf931d148fd577345aa9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-11.c
! 7cdb3c76b57de18ce592931091585c12  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c
! 72439e2129f922eebe4779e66779391f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-2.c
! ba8f559a7cb7a1cbb00e7a9065b775d9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c
! 5afb418823759cc30edb6345e149f935  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-4.c
! 6eadbc3f970862a48b93b52a27dc87a0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-5.c
! 9fc5619b5620271a844b688027b73d26  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-6.c
! 3c7ea45503d41e8482783e8b1997e6e2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-7.c
! 1b3592e301087861b43413e8d32e97fe  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-8.c
! 46d9ccf190a37af9fc1ed98eadd21e46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-9.c
! f78bd912542139439bb9e24d6adea4c2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-1.c
! 23e99d9b1e6b47cbc0012896e02e238b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-10.c
! f59700762e870033ce466a0724dc4141  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-11.c
! 66ba57265165c282a44b9b81a4b4ad10  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-12.c
! 7f62e352004ce8061dca995a19b9125f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-13.c
! e117dde564ac3f30ad57d13b5daee14a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-14.c
! ac05202d149ff33f2ba60edda3fe573c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-15.c
! 1424b0a396f5409f2ab7b21006dd2704  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-16.c
! d1ef0179b7f39b3973ee7adf0aa2dfc1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-17.c
! b164f37b05cc15fa39727f2d993c4a13  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-18.c
! dfb61ee7f0906348d6c507262c979008  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-19.c
! ed90d2b46de417f2dc7f288673b3b51e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-2.c
! e90765657fa8c10901271bfb2edf20ee  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-20.c
! 1ef491ff1f4ebb2e6af432fc63f8f942  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-21.c
! 15971fceae15efd7622688f214098f13  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-22.c
! 3c3a0c065837dfa0382faaa378939d78  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-23.c
! 63ce4271abdf181b29b537cd5bbddeea  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-24.c
! 37ea225940848dbf835eaf2f3009da73  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-25.c
! c8fbc002dfef7a21a2dc26d376c7fac5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-26.c
! 8e3b06124d0106ac7949d1603d3e8a7e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-27.c
! 249ea335a3ac1a873d5aea68799673ed  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-28.c
! 3d4c10191ede95bb0c98f555fa07ee52  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-3.c
! 44769c94703b1dd2edcda246e6ecfcfd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-4.c
! 212f7f50595cb63c0919ecc4fb86548c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-5.c
! 0b92627084046d669ca5eb64689219a9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-6.c
! cc043a022454ce87c9549cd50bd0334d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-7.c
! 29b85241523b8b81092e4ff644074764  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-8.c
! 7f5f96c55c3c22161ecc6669648952f4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-9.c
! 60e6218a82ea5142d1ff079fc76129e1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c
! 766e5bc7d8691ed8dfb49631668a643a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c
! 81b0bed149aee0afd27a0663697bd3d0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c
! cf90063e564c2b0a5e9f46fb0026bceb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c
! 971f81f064434956f6a9f0fe75326989  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c
! 563e37f01d8d5aee827504b257951aa1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c
! 459646711166306114e88f0717f43648  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c
! 8a55194fde4dc59d241d1eaf951f9658  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c
! 160cc154213745467c7c79323c87aa5a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c
! 72cdc2a7ee6dc8236fbd31abee7006ff  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c
! 3223d3cf5c461b59ce813708215f9826  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c
! cdfe07df0d0c3474f80d8fdce3e385ed  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c
! 2a795d42ef3cb0b4133d9f409e2e8aa9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c
! e6492c97c6166c28cfe4cf6456b6dd93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c
! 2c1dfe1d72236c533fad138b8338899e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c
! 985ce9a1c1eed62103cfc2a063760e2d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c
! c8216bbbc91ca41e9c21ae7b70955aa6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c
! 9c3aefa1ae84dd887cd05a2e0d10db5a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c
! 2ff09e6124bc748166decbe1745d0bb6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c
! 34e8b07b04f46d7d615e0d3c51d95988  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c
! 840188e9ab79bdf08082c103d725d8bc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c
! 3a556e4e123480d5798f7f479a51e32a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c
! d584deac4a95061cab6fded33354ebbe  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c
! a97de7171f92727c46c1c9c9023ff4c9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c
! 91a35cc7812bc31a4d7709f66436bc25  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c
! adf8f6df9d317a04a647ffaf041902ec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c
! f4e883ce284b712207ec47d2b1e8a38a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c
! 7c76b9dd766796a1560564601209d0f1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c
! 8c92afd2f3d0dbafd1db07b8e5f8a899  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-1.c
! 58185326ab54f7d13167328702bc5956  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-10.c
! 3e774c1f98b33e1eda2b6f6296e8eff9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-11.c
! ac043e42f598b86d17513c00fb064dc0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-12.c
! 634512930e4b8673448ebd057c52e0b7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-13.c
! 73c51a5e09892a0121bdb373614c8fd6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-14.c
! 728225c66c25b07224cff304aafaf0cc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-15.c
! 2f6d619c2abd649a50171611b480d909  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-16.c
! 2373bc80ae131cc5a490e75078c78cba  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-17.c
! e0209b44ca29b4e4ff39e1862e684bd9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-18.c
! 405a0f325ae18704a767b4decdbb0526  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-19.c
! 69e9305a9c663dac50cb2ac7a8aec424  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-2.c
! c3b5e289b24000bb8f0c7c4469121de9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-3.c
! 4e8cbcd30720b9d86550b11e7d71a872  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-4.c
! 58d79e61b152fee4e4b5cadf1c5652ba  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-5.c
! f852fb0b7e1e2d40822dd0246aca2744  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-6.c
! 8863c7b758e5897a3583bed8b041da96  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-7.c
! 0ecd92f64846284c1a580255daad0973  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-8.c
! 5749c2cdbc1fea4dc75057c7370aca22  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-9.c
! 6ec110f0f3b835cf95d6087ba4c644af  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-1.c
! 5e9c535e74d910e2ab23b533720ab3a1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-2.c
! 13f627d0676c308aec09bfda670db0f8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-3.c
! f2f2e11130ba0fe28b21838c88178c45  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-4.c
! 2ff423ab1800917ecb8afdbe81a0f4fe  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-5.c
! 3b50c912c07abd3b4c445745eafdf436  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-6.c
! b26000e9c0a5bb541868bbef1474f436  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-7.c
! 8c88e1985650733d1d4dbeee25d1c161  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-8.c
! 9d0fb17ce60b9fcd224dcd8b2013e1d9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-1.c
! 2578d0a153a4140d44d7d11482178d62  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-10.c
! 5c5fb8c6cc3dd7fe6ed1ed9c07afa635  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-11.c
! e28b3ffa46225b818e1a02acc5fdb8b7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-12.c
! 52459ca489398dc10434def9c200a56a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-13.c
! 2d66afd9c448f735c7677ec46172bd6b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-14.c
! 614fc2d7a8da25c8d56c5e81c331677c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-15.c
! 5e205a0bb7eebd9477ad944ab5f580ec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-16.c
! 672232e2a88ca96b6865a7cef6e30a9a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-2.c
! 70ef5c4f8b5ef06345cd1d6648ed1b5b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-3.c
! c595191ca3cf0334e24eb76663819cf6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-4.c
! c595191ca3cf0334e24eb76663819cf6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-5.c
! db6df5dcb43e00a72a21a975269f78dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-6.c
! 4d8f7e4e2d1982d7a261d11693713291  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-7.c
! e0642f45de21c682c835326574f4af73  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-8.c
! e0642f45de21c682c835326574f4af73  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-9.c
! b58923db12984b032da500569f3e9608  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-1.c
! 8dbce6c07ab27566e362127d76f4ec3b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-10.c
! fc9ffbceb45276433055433ab5cccde8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-11.c
! fb343d69256d9274eb511b85996546af  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-12.c
! 64d1caf7783d2723279ff0b447e164a8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-13.c
! ccb05320657ad1b5e3ab01e083b8c4a0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-14.c
! 9a338213e599cd912b8f8651dd0d5a5d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c
! 68ac7bcac2a0fe0258e44bfdf7d7744d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-16.c
! 81dcf2af8c24d9e5357e80e998b56cba  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-17.c
! d35453338039c171b25f8fbac411f023  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-18.c
! 95016986740f6105b4170ba180de3f5e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-19.c
! 1bec3794c657d6e37a19e6916a0cc453  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-2.c
! 907ee14805809864e49ba4e89fdff507  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-20.c
! 7ea20a959dae59f4ea42c25acfe09c7b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-3.c
! 86a36c3856d47f9bc8d6faa45301210c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-4.c
! b3a8d3baaacfd44c7be817dce26936fc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-5.c
! 18a55800c38a323938308baad4dcb2c1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-6.c
! 053f99474f5703428adbe8504fef4d98  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-7.c
! 4d0028da0a021add7d87a6b11853fd79  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-8.c
! c6c2a079ad0777dfb406f3bc0ddfc0bc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-9.c
! aa81391fc854ad47770a38a28d058507  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-1.c
! d1e3c702d09d49be6ad72763837f11e2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-10.c
! 533e34a62a9e27447702177df5f1bb93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-11.c
! 9a8bac58c40685805a29881f29521bbd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-12.c
! 25e2a0e1e539ee146a4a79ccfa0994ca  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-13.c
! 8b3c7ee37e5529b7ac73dfffafdd763e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-14.c
! aceea3b8111b8a3217df3cc3b361af30  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-15.c
! 83ccb19e7d37ab2cc6d311bfca3242f2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-16.c
! 75a834de6cdf18b939b4be0dffff9fe4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-17.c
! b03b6b1a414d3cfd938a9571d381faee  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-18.c
! 451ac88183eb65e5a95f5acbef6ed959  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-19.c
! e19ce86bf9d3ed75b1dfbe415ab052bc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-2.c
! 7ba004379b11477bd041d22935c65ff9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-20.c
! 3172223a8bccaf65edbbcfce4ed6115f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-3.c
! 32684c2ed3248afb813730a093cd2ca6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-4.c
! 0e31fa4843c79c3ccbd113e156fad449  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-5.c
! 0b94170e938a6626be3f3d497d25f3f5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-6.c
! 29b336d6fc945bdebe4205750de2dbd4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-7.c
! 97deb36eb30d9bceee953355d45ec06d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-8.c
! d1e3c702d09d49be6ad72763837f11e2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-9.c
  e21250cdea6ea09da525f0119c38ea38  gcc/testsuite/gcc.target/riscv/save-restore-1.c
  d9f3969fcf83beaed59186cbaaa465bf  gcc/testsuite/gcc.target/riscv/save-restore-2.c
  f77ea662d9f85837dacf2e485dc91143  gcc/testsuite/gcc.target/riscv/save-restore-3.c
--- 85003,85860 ----
  b6bd0811c82a6af5d3f5b16c8c8a8af7  gcc/testsuite/gcc.target/riscv/rvv/base/mov-7.c
  83a3ad5e108ad86593a9b18046a8e987  gcc/testsuite/gcc.target/riscv/rvv/base/mov-8.c
  77f72f25d47d86afb72813e3d058656b  gcc/testsuite/gcc.target/riscv/rvv/base/mov-9.c
! b3d7c0ed64814842278ee85316f4d9f9  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-1.c
  bc908c8e86335a1e2679eb72213fcc84  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-10.c
  428997b4f2b90fe6d460ddd9b52be1eb  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-11.c
+ 9cc5913274824fecf8903ff754ee225f  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-12.c
+ 0ee8d1e543f99edba5f86a9d2c56cb5a  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-13.c
+ 267a6ce55efc31f2f6f4bd2ebb719b54  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-14.c
+ 627f23448881113c3230735383b416cb  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-15.c
+ ce977e9c06ebae193acee02a2dec97f8  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-16.c
+ bbdbd021308d80d5e82c8ac744490871  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-17.c
+ 212ea9ed332669bf067aae46ffdbe1d7  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-18.c
+ b9138307d61ccefe52aab46840220e10  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-19.c
  ad8a60301f84873d38ab21107e52c63a  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-2.c
+ ddf381c6f37d192fe8b6b65f2dbf0859  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-20.c
+ b208d5ae40377a35c2a8f0b35196631d  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-21.c
+ d6f5a91ebab11961ac3cc70d9e5f91b1  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-22.c
+ 9933b2366dbd3dd891faafe51ddbef64  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-23.c
+ 4bb1b396bdb0c1340876d77d4279ae74  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-24.c
+ 233fa3aa756c01e861e7f15dcf3e5680  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-25.c
+ d9e94e2dcd170e433d7909fa8a445996  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-26.c
+ 516c2c3e6c3cc364135b18036248f0cd  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-27.c
+ 829b97b179396c1f8cd9c77eb62482ca  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-28.c
+ 410ec599d7d6c82c20af1c0cfbf6f0ec  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-29.c
  0a6e7a6d5b9e3acfce79c504a21656dc  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-3.c
! 2110cf69dad9615c94493ac09383788e  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-30.c
! 5304ad981d5e7ec7410a88a8ecee4b92  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-31.c
! e45b502abe5e1c2f294a60c81cecf97d  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-4.c
! 1b373a76d5086a7162eaa4ed8a61933c  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-5.c
! 6a6eafd32efe783e2de7b12a2b164803  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-6.c
! 6d11f8c8860a455537716fa561d37c4f  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-7.c
! 5115b1dec1af73c8e693d1ed16463268  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-8.c
! f7ecde847485ec2bfb3130a5d11f24bf  gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-9.c
! a7ba8196d8ede3f7743a7b5bec4b23e2  gcc/testsuite/gcc.target/riscv/rvv/base/no-honor-frm-1.c
! 4b2cb986d899a5dfaf7e3e831d4bf826  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv32_vadd.c
! 11e94441b59e464d0fdf626cb0d10ff6  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv32_vfadd.c
! b9d5069480ea9f9e07ace3f73293803d  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv32_vget_vset.c
! d200947fcbe81bcb610a97c49842b9b3  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv32_vloxseg2ei16.c
! be4cf98545971ab8fba848162b48907d  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv32_vmv.c
! 756142ae5580d6bdb4ca867b9522c3e9  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv32_vreinterpret.c
! 65e6d333bc08ae8e23812ea01b9f313a  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv64_vadd.c
! 0cdf28d0380649c44869d840771ab6af  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv64_vfadd.c
! aae88188bcd3b016cc6d0fe55f7fd6c5  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv64_vget_vset.c
! c410ed5efd156fe35b0f851d41c73b89  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv64_vloxseg2ei16.c
! 26ed9eb66047e06dabc299dc7faa4084  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv64_vmv.c
! 6fae2ff05d82d5e6984b3146f69eb5e7  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_rv64_vreinterpret.c
! 2d90e27ccb902ace23d304e3ec89e00c  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_vadd.h
! 7b8dbafc878d33b129a851d4a2366b92  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_vfadd.h
! 0101ad69d26fef520d9f1a97cdca6ccd  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_vget_vset.h
! 4cf492e1bb45c8c66b6fc8affc9baaa9  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_vloxseg2ei16.h
! b2c20cb1d1336baa5a87e59fce0676f0  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_vmv.h
! 9e0d40abd910654960d8824f0a6bdb54  gcc/testsuite/gcc.target/riscv/rvv/base/overloaded_vreinterpret.h
! 15ba9fcd04c34d353280c9b3b864b270  gcc/testsuite/gcc.target/riscv/rvv/base/poly-selftest-1.c
! fda849823cd3efda066256322d3a5a81  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-1.c
! 68c927be6ec52535fbff4f99abf79d0e  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-2.c
! 1ad1b5e12499920cd33bbce855494891  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-3.c
! 65b79e2678056e5a91847def223aa81d  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-4.c
! 9302f19a3b12413f0228a31104b72f41  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-5.c
! d919ce16af358091f0f7e4f6e6f8b0c2  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-6.c
! dc4da3e6eb07a06b06f8977e9363e509  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-7.c
  d71c3f56021d3797031c6ad70669ca47  gcc/testsuite/gcc.target/riscv/rvv/base/pr108185-8.c
! 51e573e1ebaadffb3b556adb4c2d5957  gcc/testsuite/gcc.target/riscv/rvv/base/pr109092.c
! 3c78b62e639fb6ae8af4bcc7c4380897  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-1.c
! fb361115ef4477316ae6585568b84fbe  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-2.c
! b6bf6696a10e6b5dc0ed872ffed4553e  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-3.c
! 4ec00b7662b181fb365c29631042cb7b  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-4.c
! 19a1fe06f9296a747c29a8903d607b05  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-5.c
! 753309ee8d1c616924df1c3118fc25ae  gcc/testsuite/gcc.target/riscv/rvv/base/pr109479-6.c
  185f7c3e9c87c3e119932441e4f92b9f  gcc/testsuite/gcc.target/riscv/rvv/base/pr109535.c
! 9107d970013e6351488bc2051bc1e3f4  gcc/testsuite/gcc.target/riscv/rvv/base/pr110109-1.c
! 0f7fc8dc39b53aa9b587876a6867a56e  gcc/testsuite/gcc.target/riscv/rvv/base/pr110109-2.c
! 068383dddb9285a455869fb3c069a043  gcc/testsuite/gcc.target/riscv/rvv/base/pr110119-1.c
! 49e3ed1c911fc1ec9571231db1034121  gcc/testsuite/gcc.target/riscv/rvv/base/pr110119-2.c
! 8ff9918f362d049ec7468fb33e2cb3e9  gcc/testsuite/gcc.target/riscv/rvv/base/pr110265-1.c
! 475d4ca18bdede49011b211f3cf4840d  gcc/testsuite/gcc.target/riscv/rvv/base/pr110265-1.h
! 6ea048426f2b1f204fdde394e344dd0c  gcc/testsuite/gcc.target/riscv/rvv/base/pr110265-2.c
! 67890ab9885f91a0be0af21dac595283  gcc/testsuite/gcc.target/riscv/rvv/base/pr110265-2.h
! db765b03da97078e375916baafc5ae89  gcc/testsuite/gcc.target/riscv/rvv/base/pr110265-3.c
! 8cd21513c092560f97333ee5f14f88bc  gcc/testsuite/gcc.target/riscv/rvv/base/pr110277-1.c
! 2e615e930d6e870abe48311c4ec233a5  gcc/testsuite/gcc.target/riscv/rvv/base/pr110277-1.h
! df3a2c9e32b399ac9b591a6ed323d719  gcc/testsuite/gcc.target/riscv/rvv/base/pr110277-2.c
! 5e2153bf226afc2d0b6e19de01aab646  gcc/testsuite/gcc.target/riscv/rvv/base/pr110277-2.h
! 43c5cfcd369ea9c16b02f5d3276f74e5  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-1.c
! d688ececb3323867155ffc2bde0394ae  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-1.h
! 03c7e07b2f60f8c984230612fcb7d4cf  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-2.c
! 54eb9e731485530e9ae6855a4f8283f9  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-2.h
! a2db87a14fdc943366ea47b48f14e334  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-3.c
! fb0df6bc32bb427d5d578ad8009e76dd  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-3.h
! 8a3786e62cbc807194a34f6dd183bf5f  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-4.c
! f4f7bd68cf61f3021a4392c859bb5a4d  gcc/testsuite/gcc.target/riscv/rvv/base/pr110299-4.h
! 14e88e120b2075d0a4bad2d387d528aa  gcc/testsuite/gcc.target/riscv/rvv/base/pr110943.c
! 7c67868d26d5c57f5b7f7b2cdb4726b4  gcc/testsuite/gcc.target/riscv/rvv/base/pr111450.c
! 5a00c3b4c0865c8f59a10eedd589237a  gcc/testsuite/gcc.target/riscv/rvv/base/pr111533-1.c
! 7bf3e61c76d990976a4362ce406f7133  gcc/testsuite/gcc.target/riscv/rvv/base/pr111533-2.c
! b16afe5efc362cf6144a1c4db6258075  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-0.c
! 29a079ca09998a4deefdc102f7b453ff  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-1.c
! 5a29e164aee32eb6aae0edd8f80a7053  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-10.c
! 0d967e7f58fb5a78fd711f3133a0716e  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-2.c
! 40d026d4a94d86299a91cc407c131e37  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-3.c
! bf385c289a58c17b92d7f1db40cdc24a  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-4.c
! adf5b0cdaa26690bb6540db1eaecbc18  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-5.c
! a90d246f19d6f1642dc48d31dcb948f5  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-6.c
! 8c588779e36db6d75e90063b431f4554  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-7.c
! 8ca60421d384527b1e977bc4322b0b1c  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-8.c
! ec84bb12bfa020b219a147adcf1471d0  gcc/testsuite/gcc.target/riscv/rvv/base/pr111720-9.c
! f443d44b7b74c36b4c9f956343852098  gcc/testsuite/gcc.target/riscv/rvv/base/pr111935.c
! 03af6f8fb1424ac4e0ff7abae66b9d8b  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-1.c
! fad2da62a00d5292561ff53cea4b55c6  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-2.c
! eed1ac048d42e17bb22d3bf8230126bf  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c
! e9a2249f2da2ba761570f0f8525e02e1  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-10.c
! f67e6e7fca55e95fb20519f57c78ef2f  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-11.c
! c732619185ed7d06a226a8b77b3bf69c  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-12.c
! a8a4d03be327fb2c9f5b75bd853a5c21  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c
! cceb6dda294173f54299477fb726ce86  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-14.c
! 554e3c1dffb02461769b5b636e984057  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-15.c
! 4158f0a85b78efa028eac16b5958a4bc  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-16.c
! cfeb2916d3c635fdc870fa4dd68db703  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-17.c
! 45f0ef4b9e6482ffad4ed07b3848d1e5  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c
! 7e4acf8a36d5832d7d5e91c74df1e724  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-19.c
! 3e2ec7778c99a6a0261ab2f4a6450f3e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c
! 1a7558800b040b8dda24bcc3d94f5729  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-20.c
! 2b5182a88c338a844fd11df56198c63d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-21.c
! ddfc52ce3e11b16f5826a17400d5173d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c
! 01113869871bb1fbcb103fb4d9b60577  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c
! dfb14b9db17d26fe2fff40418d1cf459  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c
! 3e6c34e695fb3ef4e9cc700bb4ea321e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-25.c
! 2d98f142716429721a11ef36b65d7de7  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-26.c
! ab1c2cc74c4984acd4b0ec4d31680345  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-27.c
! 9997c1ac80863665727a4dfe113fce94  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-28.c
! a69ac1e559dc378618dca7daeec57b88  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-29.c
! 09e3888193a8ff1dfc40910fa62d839d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c
! 59f203a9d29ead522c7f2c6623574ef8  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-30.c
! e3b53b28af2e36aba14282872c2d1cdf  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-31.c
! 10ae79305c8c4b2f96ebd4f202becdeb  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-32.c
! 5f85f3dec2424394b0f3d711f5857051  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-33.c
! c3c15580c5ccacab520fc93c79c906b7  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-34.c
! ea45ee6af1e6984cfcd95c0a1d5fe683  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-35.c
! b654b48048b78f1643d89a32b5255958  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-36.c
! 922b072fea9e0e74a7ca4d026a66b03f  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c
! 938c1b23ec2452ceb884b274c204a527  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c
! 9db6e8e6c4bed9dc2334cb79722fd898  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c
! bcaa86c863eaa9a2cf63dcfda8ae64aa  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-4.c
! 9762bc352c6862583e6e51c38b351fc0  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c
! 95d8a8d0475bc3c9ef6bb8e7e264136f  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c
! 4a495ccab8bdb2c1283e197a403f58dc  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-42.c
! 49a8103996ad5193328c5a30f11e5839  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-5.c
! 3ce7581c2097dbf9e5cd98228bd0aeb1  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-6.c
! aa04716996d51f5f16f16e2f489f9b92  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-7.c
! 227105ef0aa53b1b545e7d275f5fdfd9  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-8.c
! 161ce0bd04d197bdc14d75f100edbeef  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-9.c
! f10c8a28c2ba2edec9fa062fd123d3b4  gcc/testsuite/gcc.target/riscv/rvv/base/pr112743-1.c
! 8a2027e07eb7430d366baa6fba6f7079  gcc/testsuite/gcc.target/riscv/rvv/base/pr112743-2.c
! 0c46defe129bdb46798119637cb7a2e1  gcc/testsuite/gcc.target/riscv/rvv/base/pr113420-1.c
! e07baf5d5588ed4ad8db81844c63e8ef  gcc/testsuite/gcc.target/riscv/rvv/base/pr113420-2.c
! 7d23412f70ebee5a6d681dd440b5cef3  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-1.c
! cbd199ed19343af92aeb0c35b408be53  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-2.c
! 8d4aee18e9586419a1d4815babb2013a  gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c
! 4f118ff8b8d46e2f259e09044750e87c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114195-1.c
! eed22594c494f6d5a01da94f82f87ebf  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-1.c
! ddbf78c23d7663691fc4ccf12518597c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-2.c
! dfbf415b8d54920f7230b6ee601ac48b  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c
! e0198d708b72e5e0f83eb43bcf1d9ed5  gcc/testsuite/gcc.target/riscv/rvv/base/pr114639-1.c
! c05efbdfaafc64ad34b3d1c4b60a38eb  gcc/testsuite/gcc.target/riscv/rvv/base/pr90263.c
! be75fd39ea9b3d01e3e22294359fb482  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-2.c
! 20a3b581af8087da2c1170d56ff52971  gcc/testsuite/gcc.target/riscv/rvv/base/pragma-3.c
! 86c44b60c63c607bd05bceb103ef463e  gcc/testsuite/gcc.target/riscv/rvv/base/reg_order-1.c
! a93ad9a03d35d2909cca41cafc2c280f  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-1.c
! 81f5742c5f97bf91ea3d9ddf2d291853  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-10.c
! 57157748d34be1c076c12e9f7f23b3da  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-11.c
! 7bb31fd3af2ef044a4aaa5894d97002d  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-12.c
! 5321e86a3e3e6fd71c760a477d34f590  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-13.c
! 29e3612c14cd0d370c3a15f16cc954a4  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-14.c
! eb26f4e598b29680ae6c4abe4c7d06fb  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-15.c
! e2fdf898a31d3864f34dee78eccfe894  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-16.c
! d9c62c19a9c13aeca4c76fa0f280cc41  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-17.c
! 2816b03b8bc06f127fe0e29ef40d5520  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-18.c
! a43bbfaf2b0ff0e56de7591a6da6e090  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-2.c
! c70e7eb6ccd42bdda6c78a758fce3789  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-3.c
! 700cee04e5e7e34a8cee3683b7f630a9  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-4.c
! 3be15312dd757d9d4b05cf4993646fc8  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-5.c
! a35ef96c1fe6df23dc1ce0b632e26203  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-6.c
! f209d28728f1dd0729a7823428e2eafe  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-7.c
! 180977223b56ea8ae09ae13d689cf64c  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-8.c
! 36b45b74c9f08f50bbd25755de9894c4  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits-9.c
! 207f0d6bb8d7fed986fdb1fda5baf1eb  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_rvv_vector_bits.h
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/base/riscv_vector.h
! 2c7bf16d6a9a1be333a94e00c14721b1  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-1.c
! 3f697c631e858da3b55ac0d8308f04a9  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-2.c
! 670f075a386accc613c92bc3a31d43cf  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-3.c
! f41a9dfb44c25d5d794d4b08f7a6e063  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-4.c
! 556dd0ee103265779ff255b94b089e6e  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-5.c
! 290b66ede6149a58fecbbc75d65caef4  gcc/testsuite/gcc.target/riscv/rvv/base/rvv-vector-bits-6.c
! dfab2d120358e9347328896588f09d7f  gcc/testsuite/gcc.target/riscv/rvv/base/scalar-move-merged-run-1.c
! 3a07d5d9c3b65e22a9cc203b88d0d7e8  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-1.c
! 8aa545f9295be5af5cb79ed082a48e21  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-10.c
! 3b3515c3019248bd47a7c7458e48a018  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-11.c
  f0ef727ad421676bfc8524d445606492  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-2.c
  6c7cdecd10fb8854fb71be95c2dd58c6  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-3.c
  8c21b304dcf8bfcea2ca1180cbeec2d2  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-4.c
! 4afb6c6aa0636dfe1fd4cf2279947f89  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-5.c
! 94040accdf7584570204ba732196ec02  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-6.c
  1e71d7a2e9286dd5dec229229abd75f6  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-7.c
  29be05d6e6dbf5bf5053d5be53ce4c65  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-8.c
  3e207f073e047580eb29a2b880bb0544  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-9.c
! 9d20ec19a81591b4273ec5dc6d68c4ce  gcc/testsuite/gcc.target/riscv/rvv/base/shift_vx_constraint-1.c
! fda420ccffae7d728e2ac94a060d2e86  gcc/testsuite/gcc.target/riscv/rvv/base/simplify-vdiv.c
! 0beee1dd080ce6562b9f1784fcdddecd  gcc/testsuite/gcc.target/riscv/rvv/base/simplify-vrsub.c
! 5573d15ac1e45d7182e2c94949f03b0b  gcc/testsuite/gcc.target/riscv/rvv/base/spill-1.c
! 3dc45f55b6b22fe5bcbfcb754d4d19c3  gcc/testsuite/gcc.target/riscv/rvv/base/spill-10.c
! a85c20b09341fb9b656cbb4e2cc40cc5  gcc/testsuite/gcc.target/riscv/rvv/base/spill-11.c
! d67966f60af6ffd06d6dfd62500deefd  gcc/testsuite/gcc.target/riscv/rvv/base/spill-12.c
! 8f5c57aeb751465e3f56bc4345add388  gcc/testsuite/gcc.target/riscv/rvv/base/spill-13.c
! cf8b6dc4083b1e4bd545fbaf5e9c384f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-2.c
! 96ab399af80c81b130ecd4fd1539c3c6  gcc/testsuite/gcc.target/riscv/rvv/base/spill-3.c
! a9ae98c3cb85eb97221a7f243a49c2d5  gcc/testsuite/gcc.target/riscv/rvv/base/spill-4.c
! 4b8d7ede136e8fba098bc6aa2b0ed72c  gcc/testsuite/gcc.target/riscv/rvv/base/spill-5.c
! 16f52ee6d07f414a5237d68e8a0bff49  gcc/testsuite/gcc.target/riscv/rvv/base/spill-6.c
  ab9e940eefba814d9fffb8ace2d7e17f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-7.c
  31b945f30d695b40cfab5ae856e4e38f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-8.c
! 483121297aafcf65131b5ef3faa6c891  gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c
  7de53eea40a2d3d1318fd361b276a775  gcc/testsuite/gcc.target/riscv/rvv/base/spill-sp-adjust.c
! 20a684fa5f054c192dbda28d90be1465  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-1.c
! b7e97c7f4fb848841316b6d34e7ace8e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-10.c
! 40ee7442791d5a104fc91714d56b1781  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-11.c
! 73f290e128b6dcedc5f56e142b4f9671  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-12.c
! cc55280727594b33173b958adc0fa4ca  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-13.c
! 33318ceb17d16d43959ecd789feaf179  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-14.c
! cb584bb4e7285d714e4238a5132e2e16  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-15.c
! f0f6c1a479c39a784b83cea81e7c6177  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-16.c
! 24783a1d4e2f29a232ef01feb9cd1cbe  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-17.c
! f060a0b10b8fd4ad62380550be25ae16  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-18.c
! 7bf3ce5663dee3ebbd1366accae99a85  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-19.c
! 69176b21291b662a9698c7195dfd31f6  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-2.c
! b295ed1720d36caebda772019b493a1d  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-20.c
! 754d76c66f80620d1f41137efdbfb815  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-21.c
! 7e681a2715f4c63cfeeb6548f4dee44c  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-22.c
! a1c11a4026dd62b266318d3390d18f0d  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-23.c
! 5227fa469ff79f69e26e6b58ea7c4d78  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-24.c
! baffc034f75c09833d3c4d63a808c0f0  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-25.c
! eaaf326934fba0231dc704ef9c6d476a  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-26.c
! 66f2871fb4628c2e51472f058556e380  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-27.c
! 37be75faf5e2abba2caab3e27f4fe5c3  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-28.c
! bc7676a2e448faa36ea09961a33f9843  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-29.c
! 7e3d81ee1019e460b00ca088f0390dfb  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-3.c
! dffa6f4993ad5885a4b895e794ca516e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-30.c
! 1e463422377c9a82989fd5140de87458  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-31.c
! 65fe783dee53eefd0003645e3198a52a  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-32.c
! 8de05e0aefa1aeb75fdf76c04acdc41a  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-33.c
! 451aeb4d3cede644e0333fcbb18d4e1b  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-34.c
! e78645ee851c50634617d30ce44e244d  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-35.c
! f2e07f8e27e88e189cd8bc9bc610399f  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-36.c
! 68c1ded72db1046e1c6aed07aa4f9f8f  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-37.c
! 1a58362b1ddc6ae4c21a8de1ac57af2b  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-38.c
! cd494f0c9ade473df91d3f1ca6f4f6d6  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-39.c
! 087b323f4da2a7ddd2f0f909a88a3f59  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-4.c
! bccc1ecfe520ff89e594faac79c4627b  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-40.c
! 803f25bd2cf680198e6809ea7f8cb1f0  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-41.c
! eb13ae6bf48baca261f5897a1b9aafff  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-42.c
! 1367edf58fa8b3a3587b6b2b2ec8f8d1  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-43.c
! 1901278a6926925f42256794c22d2360  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-44.c
! 18ba4edee7c990b88eafb6a3d38ff09c  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-45.c
! 06312170c9a9aabb410e2ea175de2d70  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-46.c
! 0514923a29c0e248b94d44d5d634c8e2  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-47.c
! f610d2d7c94053bf7cb72f9e5aafb63c  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-48.c
! b1b3fab6a6101f9a11cc9e5bed48df78  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-49.c
! 891dec19611f80e00077cba4c352840e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-5.c
! 18e3fbe54f3b8b575598d533342f01ce  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-50.c
! b774b96229fbe5e0006a29c3547fe54c  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-51.c
! bd71c55b8b4c96e6524369c22fc36186  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-52.c
! 698004d9949acf222b95c58ac76caa9b  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-53.c
! 7b58e0baedba2a4e2bc84a20ae4f056e  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-6.c
! 27bf4bec196e7c2e8c8121f08742359f  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-7.c
! 6a2d5b9de0db09fad09ad958695d282b  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-8.c
! c01f981c7b4274c6c6a3140714ce18eb  gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-9.c
! 90ba7bebb7472b49e58aea6f79da015b  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-1.c
! 600804d6b285a7c8756fc8e48d32af86  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-2.c
! 003965ac7118dc6cec4d570028e4129d  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-3.c
! 8d9b567cd84a4e5c4f07331847eb694a  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-4.c
! 132a103de23ff793b58d23d761869381  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-5.c
! 0a898bca4a4744b776d643c2ee1868fe  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vv_constraint-6.c
! d8997bad9e9767494ece0ce044164433  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-1.c
  cdfde402a9bc2f52349e1fad712771b1  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-2.c
  473b0f8fae29f8c2c8a195451b389eb8  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-3.c
  a21794bc1d8dfea5ab729f01cfc95a7b  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-4.c
  bcb77a370a0025f6080cf4a17567a755  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-5.c
  3dcf42346b0a4d9654845af0a52664c9  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-6.c
  1c9cc972f5f13366c45b35203453c787  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-7.c
! 1ced5ad4ef94c32efc77aead3e318c68  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-8.c
! 96cc152568a173a2499a1d06ed9eb4fb  gcc/testsuite/gcc.target/riscv/rvv/base/ternop_vx_constraint-9.c
! 934b39e87282cc630a39a28c8b8fa181  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-1.c
! 44b4258fca38770b33e2076be4523928  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-10.c
! f18554999af14e84be752174733fcff6  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-11.c
! c59b0d926b96126c45f9b2f0031fefb1  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-12.c
! 1a2b50b992c33c7cd1e912a787694a97  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-13.c
! 4b7bf8c0254ee83e8d11185f0e7544b5  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-14.c
! dd9751efa8860069385cadc6ed493082  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-15.c
! 344ba80840f28cca329098ea32da95ed  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-16.c
! 7c586909878dbce9835d1df1eff5ac4a  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-17.c
! 17719526457cb3f497229a56ac11fc2c  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-18.c
! 9a32fb58e85c5a8fc60b4ba771713512  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-19.c
! 6bda822f546199c86e515ec767025832  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-2.c
! cff7a4d6dc097d3e2a030ae06ddcf7e2  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-20.c
! cf7b5b28e40c4609c46f37424e781abb  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-21.c
! d87b4f04f6f3d8b01712501a86e1aa79  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-22.c
! fc35002de6aadeaaef9c75c0b0030623  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-23.c
! 22ff773a71ef9e4b76c22843722ccce1  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-24.c
! 34a922dbe33076bb3d563bb91f63e62f  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-25.c
! 096392ac32f784145ead29530496088d  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-26.c
! 1da96b013bce7b2bba30d2a633b53a71  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-27.c
! 330b5d7835e869458d237bab64559a98  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-28.c
! dad94b654000ac8273d246c404a7b215  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-29.c
! 52a2f5a77294a4d30a6b93141a1f8ce2  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-3.c
! b8840390eacaf849f46860d349382d7f  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-30.c
! cb1f5abf8e26d8b31f9131ea5833b945  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-31.c
! 28348ff9589cd1eaede0b926a3ae6af5  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-32.c
! 1bbcc366862a8ae2ab425364780ad760  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-4.c
! acda120e99e0a1e7b61dc9d767e135a8  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-5.c
! 7ceaa1fbea4b21b307178ba779ba5a29  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-6.c
! 033f2544497c8260f8a2c7bb27e7d5ec  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-7.c
! 2c0d62587fe903601a525fab1dd92cd2  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-8.c
! 5f6f1b1a9d9cacc6dcef49d370a95cec  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-9.c
! 7de331ca095982ff7e4fd26bd0dac1fd  gcc/testsuite/gcc.target/riscv/rvv/base/tuple-intrinsic.c
! 82dbd9d01f73a6455095d8d062538caf  gcc/testsuite/gcc.target/riscv/rvv/base/tuple_vundefined.c
! 505485bc368b65a71f0a8cb6e9557789  gcc/testsuite/gcc.target/riscv/rvv/base/unop_v_constraint-1.c
! 10b3433fa1fa8951cb025b8167292a4d  gcc/testsuite/gcc.target/riscv/rvv/base/unop_v_constraint-2.c
  788aaa7d69ba3f329a0fd22e3aa677bd  gcc/testsuite/gcc.target/riscv/rvv/base/user-1.c
! e67cfd4699ba8d957ff4d7e7fa93adf3  gcc/testsuite/gcc.target/riscv/rvv/base/user-10.c
! 86ac117cc63b6d429f08520e3d5208d4  gcc/testsuite/gcc.target/riscv/rvv/base/user-11.c
! 72be41a674cc77682280d202737355dc  gcc/testsuite/gcc.target/riscv/rvv/base/user-12.c
! 6569940935fdc56f47d072571e4f631b  gcc/testsuite/gcc.target/riscv/rvv/base/user-13.c
! 41716fed8c45960a2a9919a4df1b56f4  gcc/testsuite/gcc.target/riscv/rvv/base/user-14.c
! 55a12408d465e5e9981536873d37f7c4  gcc/testsuite/gcc.target/riscv/rvv/base/user-15.c
! 76fb994da18a35873b0eb15dd2aa7f95  gcc/testsuite/gcc.target/riscv/rvv/base/user-2.c
! a7fc96bc8598b06f64bf6d08b170ae63  gcc/testsuite/gcc.target/riscv/rvv/base/user-3.c
  cbc1ef68a39770e18309f1b2c9ab7db7  gcc/testsuite/gcc.target/riscv/rvv/base/user-4.c
! cf56a3b9b7c158942f5fac22aac4cf8c  gcc/testsuite/gcc.target/riscv/rvv/base/user-5.c
! 3f9d4021d5e69afbc223239103706f36  gcc/testsuite/gcc.target/riscv/rvv/base/user-6.c
! 8abca1537e235866e50a32e58beec02f  gcc/testsuite/gcc.target/riscv/rvv/base/user-7.c
! 337260afff71294c30b7c86a09b705f8  gcc/testsuite/gcc.target/riscv/rvv/base/user-8.c
! 1eeab04886747f9e270764c0b3d8d290  gcc/testsuite/gcc.target/riscv/rvv/base/user-9.c
! d4210741ab958f9927be363d2ba3fb5c  gcc/testsuite/gcc.target/riscv/rvv/base/vcreate.c
! d00f885fc7b441370e5ad192e397ed74  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-1.c
! e6cc517e272187e5f7690fb2c2f902f1  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-2.c
! c92d74d80b645e2a2501f1ce459dec84  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-3.c
! 59e7e5c88e66a9b752cbe5599180ae22  gcc/testsuite/gcc.target/riscv/rvv/base/vf_avl-4.c
! a371b915b58a17d543eb5b719fa5cd84  gcc/testsuite/gcc.target/riscv/rvv/base/vl-use-ice.c
  5d33efd776de379270a693a7f842dde5  gcc/testsuite/gcc.target/riscv/rvv/base/vlenb-1.c
! 04ccb5008920cc20eeda437cd95078a1  gcc/testsuite/gcc.target/riscv/rvv/base/vlmul_ext-1.c
! 8e86f390abcb2151beef0a1a2c477cfe  gcc/testsuite/gcc.target/riscv/rvv/base/vlmul_ext-2.c
! 8de865349a060a5e80d0d0d719072aaf  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-1.c
! 8b55a9688e8691e0110b327feb063962  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-2.c
! edd4b8bcb1a19623aa4ce3536faca5f3  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1down-3.c
! 905e095f42dc930dde36dfec28bad001  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-1.c
! 71a550e40436e1d1ea6215fde3444aa5  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-2.c
! 87045e4f08ac44364b834bfacdea6c34  gcc/testsuite/gcc.target/riscv/rvv/base/vslide1up-3.c
! 9031404c3b18cc30d16acd7145002cf8  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-1.c
! 2562b37a9bac7879f2b354b626e6f688  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-10.c
! 22d2eaeec1e80ef99fb44a1a0fc6f92e  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-11.c
! 74bb4e0abac8016d85481218fb93389a  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-12.c
! da5af727b4ebb08a6bfbc09168383cf0  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-2.c
! 0b3f637234f928b8c55209806553fbdd  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-3.c
! bd895a288090bc98d2c34c5d03c6e9dd  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-4.c
! 14a615f9ad7e4501c050a4a025936ab3  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-5.c
! a940c896bd0332a56f70d93a10f191e5  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-6.c
! 74a08bcba2529eb40c9348b0c10aa04a  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-7.c
! d4b845b37c1db36e564e49baf5cd8e49  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-8.c
! 2d52719c034a5801989d67be7c33f0af  gcc/testsuite/gcc.target/riscv/rvv/base/vxrm-9.c
! 2de15487c12126f324038bdb2050abfa  gcc/testsuite/gcc.target/riscv/rvv/base/zero_base_load_store_optimization.c
! 30bd95b0d8fa20d5e5ec5567c4ed306a  gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c
! b8b40b2b717de4ba1ef09f41f93b4daf  gcc/testsuite/gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c
! d7fd06e3af3dd81cf77886dd8ab671d7  gcc/testsuite/gcc.target/riscv/rvv/base/zvbc-intrinsic.c
! 4b3401a0c0238f475ed98d0934b381f0  gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c
! ee85407f9dba1640640a3899f4769036  gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c
! bd5fe2ac8c7ea125bd674e1aa8150399  gcc/testsuite/gcc.target/riscv/rvv/base/zvfh-intrinsic.c
! 13a36cf2a5d58c14616db5e25bdfd498  gcc/testsuite/gcc.target/riscv/rvv/base/zvfh-over-zvfhmin.c
! 159fb4f31c4451273024055ea7dca53b  gcc/testsuite/gcc.target/riscv/rvv/base/zvfhmin-intrinsic.c
! 6692ed8788b63d810b6778056fa8af17  gcc/testsuite/gcc.target/riscv/rvv/base/zvkg-intrinsic.c
! 6e4376d3f00e6567d1f1ced75680c98a  gcc/testsuite/gcc.target/riscv/rvv/base/zvkned-intrinsic.c
! 6c17f33696b10c3c20a85553d0ac4a19  gcc/testsuite/gcc.target/riscv/rvv/base/zvknha-intrinsic.c
! 5c08b35ac4c35255f9433289cfcd7573  gcc/testsuite/gcc.target/riscv/rvv/base/zvknhb-intrinsic.c
! 12a6a96df8bc74d69d7b95ec6e7d43bb  gcc/testsuite/gcc.target/riscv/rvv/base/zvksed-intrinsic.c
! 8b2c7404cd85cf68ef9f9b68577ae5cc  gcc/testsuite/gcc.target/riscv/rvv/base/zvksh-intrinsic.c
! c408b1a7f84e4b815e85476963221ae9  gcc/testsuite/gcc.target/riscv/rvv/base/zvl-unimplemented-1.c
! 527003a16d82851a0dd57a93c29bcab7  gcc/testsuite/gcc.target/riscv/rvv/base/zvl-unimplemented-2.c
! ae00a4e2372b755ec611b96aaff6a49b  gcc/testsuite/gcc.target/riscv/rvv/fortran/pr111395.f90
! 284fdebd0dafabcd770080ec38c8109a  gcc/testsuite/gcc.target/riscv/rvv/fortran/pr111566.f90
! d1d0479719e66a55d7118f86d67bbb07  gcc/testsuite/gcc.target/riscv/rvv/rvv-fortran.exp
! ea69f7a69e5c459eb9bd7488ddc5bc34  gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
! ecf4c4ab418350831d4471534a47d02a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-1.c
! 0886d2586a892610401ae61b27c200f1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-2.c
! 72b9d84e2f500b6b64e40b19b6e2f66b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/attribute-3.c
! 96b9ab923ece76440035119e48991ab5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-1.c
! 5994bf73767ca79be79cfc0f27214312  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-10.c
! 57a99837d3c1a73bde39c74a912f6ce9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-11.c
! cd0f1a5b67b08f0e9954e4db7ce9cce6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-12.c
! 9f683644786e0ae473421ff97250e1f0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-13.c
! 847f64819a79ccbd0825d342c18f02d1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-14.c
! 36022a6c2f044e3a2e3837d12eb88046  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-15.c
! d9bead3269296af775ead9cb975dd377  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-16.c
! cfa0226e610713a63f7449fe07f1cca6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-2.c
! ca6cf9eea9a25f0d1a90a7170f738078  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-3.c
! 917232cfbf36ec4e19c9de207333c3d3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-4.c
! da3f39255f0a045ad328d2f04a7b01d2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-5.c
! d8acc1034261ddf1a5e7c1c2ecee2fc1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-6.c
! dbc89bb08710266274685a2ea0fe4d5d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-7.c
! ab3b8443aea57898f501cd068e0f5063  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-8.c
! bab90db9fb8fd3ceef9dea34aa216096  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_multiple-9.c
! ebac3468a4537d39e6e39207bb15f19c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_prop-1.c
! 8cf229d920f00f9ebde49c653e12de81  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_prop-2.c
! 03eefaf2721a633344ec8c04abe3dc0b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-1.c
! 6b779dd6c4c77db46646f5d8b6f2e215  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-10.c
! 3f648bede26319c7e3a73050a7bfd946  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-100.c
! a328e48a60681a7ddbfddb87cbe5b915  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-101.c
! 604235cf67d1362be199063a8be45cc9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-102.c
! 56f23e8776f934c0a1fbe37271cf324e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-103.c
! 797a461b4ef52e3469cc50f6f78491af  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-104.c
! b5270480443d42d325dfa2b7fa95f564  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-105.c
! 8422d54a9d45a3bcfbde701a857ef098  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-106.c
! 477a24fd9b2b07889c389adebc77a1dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-107.c
! 238c9095ff540e63167a09d2e00e631e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-108.c
! aeab46d76a27a3179c5c2ace840f2164  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-109.c
! 52b8973de8720fe71236e500aa892b7b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-11.c
! 1cbe4459fdd7857bd0b048b7ec09d5ee  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-12.c
! 9e23fa70b06a04250468fa20dceeaacd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-13.c
! b5000218f4f705bbbb79d06fc1f36fd1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-14.c
! 117ad75a3da4f10914fe2109dd23f225  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-15.c
! ddd1d9abea631f3e020388dafc07d465  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-16.c
! 39ab7d60aa841148d21f4cdd7941cddf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-17.c
! 5acfdde55aad82d7497633114efc2608  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-18.c
! b24cc019652df35507375fa00adc3788  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-19.c
! 47b5f867ac8b47962d877f8ed6592b98  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-2.c
! f94586f8a444e654ba0f0cada142b1b5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-20.c
! e9790061a65ac76dacf9f734bd855739  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c
! 256d22070cd91b8806a778e254692355  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-22.c
! ed416055de6cdce7b0aeccd46bb98e00  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-23.c
! 7a9b2413a6e8a3a78e885676ba970267  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-24.c
! be1cc3999aa851cf17480e41a214079a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-25.c
! d74cd41f6d59beacc916eb88d39e50d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c
! 987339bf0d8453df97965a5ec9631729  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-27.c
! 854162a9a442f47706303e0ae14e994b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-28.c
! 9ed206cad21ff52eb51d3a22b9f57b5b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-29.c
! 6340b821097ece23a1514ec708bd203a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-3.c
! cdedee2e8cdf5929c57dabd7939f6d31  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-30.c
! cb2167e096c8381b0cdad25496ab8e72  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-31.c
! 7f34b03f454a8ad5185df18cb37e15ed  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-32.c
! f93d01a4769012de04e02ac44e05cd46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-33.c
! e4457fcb3c7eb7d9b0612ce8e58acd93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-34.c
! 4b3f57506f7bb41746d7ebfed21be19d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-35.c
! ee08e471795cc953a8159c8367235ec2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-36.c
! dd6de1b486b2dafa5919c7d69c11ccf5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-37.c
! fc113c8d95b51954d7f9871c93446b9f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-38.c
! a257665e3d63cec5cac3c4516dc204c9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c
! 17d98ea8a8a651bc5ea1c12a8a76e844  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-4.c
! e982f410da548fc73557e74cb4ca7db4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-40.c
! f70ac786c994b15fc8f8329c3cb2482d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c
! 5536be35d117b4e0304189c057e3c4ea  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-42.c
! 2c1fdce0036da496dd235afc113768d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-43.c
! 2497d83b565b03f282e5bbb58bb7a7bc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-44.c
! ac06a440309a5de55a10bfec0a06fe8d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-45.c
! 1c9739d32cb95f1c13339633db84bbf2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-46.c
! 702f0411ed8edcdf78a7770fa335ef78  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-47.c
! 56f144ce638cc78d7da7cbc0db27d3b8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-48.c
! 7f05dff16f2d5476e6bea3f10354a9e0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-49.c
! a0413f9e29b8677e40fbfa6a9abc7a7c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-5.c
! 39c2f75304755dfa450329742d1ba80b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-50.c
! 6614920cdc585b2ce54e169368a53bf3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-51.c
! 23f67b6d73a8a3b1277ecb8640b7af4d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-52.c
! a3af7d1671248b55b14f0bdda3176c98  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-53.c
! 2d4eba1dec03d899b4483542293ee04d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-54.c
! 785bb8526efb4ae22435bc2f02a20198  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-55.c
! 46ef4b470e694b029a73d83e4440b8a4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-56.c
! 1cbb4c610a13c59e8ebee85065cff5a2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-57.c
! 67fd570a5f5d1e175ddb907dab2a621e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-58.c
! 899e3eee3656e0aebb614699b6492ed6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-59.c
! c1eb81181d61acf40c1a8db9df167633  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-6.c
! 2e1015b5d3b0bb6986ff9015e7efbaa7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-60.c
! ef6e4b4d36d909db18c72729eae41856  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-61.c
! 4208cb77eb4cff856816f25aaddd653a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-62.c
! ba056af537a5d0b759601127a968797b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-63.c
! 49e30c5d97c3b098b983fd0fd16cc7d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-64.c
! aeef26bc58e2d29602800ba19c113617  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-65.c
! 5122b26281c049bf3715ab32bb1b34fd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-66.c
! 8ed95034d9d4e11d99b97ae7d44a7cf1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-67.c
! 7aa3311624e9fe6ea41b991794814b64  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-68.c
! 86947ef0aec9e92b82058a6f3b232093  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-69.c
! 239a71991054d87165b9b4fb41022244  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-7.c
! 1afe708eca9c2f4be668b997c0b9b546  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-70.c
! c8745a34391dc3ce6cdf2b040e087d27  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-71.c
! f2f91c15600a97d75086ee5b84bb3615  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-72.c
! 716bad4db4144e599582db84f4aa2d03  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-73.c
! c7d1ca1bf7b1a51e76ee195a511b4761  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-74.c
! 6e7ae1738848f77098ddb5e2dc3b9139  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-75.c
! 40325a798e02826c9c2cccf0372d6619  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-76.c
! ca4905d4ff10585c65b5cebb7450a48f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-77.c
! 39dc214a0a33df30ab04dd526d8f3037  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-78.c
! c9c27e542c1722070055b504122f117f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-79.c
! 2b37c0e09932e124e81f2afe4f279318  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-8.c
! f296a89496bf510144a460b5df0246b9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-80.c
! 2f31129addbcedb4057494d9ce82cd79  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-81.c
! 70a229f0caa9ce2adf411b02fa73f6f8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-82.c
! f8dd61194199abc317a274864ea08e67  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-83.c
! 93daed2cdb4b181712536e3f5c442f0d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-84.c
! f98ff072caae615a66b05d681193af17  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-85.c
! 373607859c4a0c568b832f65cb041ad3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-86.c
! c6154396007561774606449f36cdc696  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-87.c
! 8f835fe6a02dcad47651cc1782477794  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-88.c
! c16af70ab73be09d5ac4d08bf5842c3b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-89.c
! e4a4323f6f2eb45b6270db189206177b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-9.c
! e5d4bd800c759ed51af893f4dbd6a2e4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-90.c
! 26c7831a84ff85873e654243f9a3e434  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-91.c
! 6da668d11e95e6e72127896b56267ab7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-92.c
! f8f5af301faa1e571743e3d8d477d36f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-93.c
! 52fda067d36d7c8268502dfdd9b0bef9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-94.c
! 07cf93ea3fadb1d93f0bdeed466c6bcf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-95.c
! f0354bc4ca972ea2a9b42cf044bf7133  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-96.c
! 5f5298fa36b69d0bad3eeaa38cd7aa2f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-97.c
! 7965a8db5441a788543ffe4a634d0193  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-98.c
! e5381974a3b2ccf0d38f73344c8a9078  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-99.c
! 1b25858552b8cb437258bf278146d5d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/dump-1.c
! 9d2e430896393111a9b4c22466c8a590  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-1.c
! c7b01ead74b1c2140b6970629d7e0580  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-2.c
! 315f0ba2615efa932566161e1a556ac9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-3.c
! 7aceacf5477c84c7acc88af610e405c8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-5.c
! 6692ec4f04940cef34ff878f4ce2afe6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-6.c
! a011894c73696ec886b4c6812c8c84cb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-7.c
! 87c6be4e89c23735e1c7ca99a635efb5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-1.c
! 17dea8d3987394320d563a460a7cee87  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-10.c
! 9d5659b48caf2a0d0b92828ae8f08b4e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-11.c
! 9057542aa413ee6cec91b96fa88a8948  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-12.c
! bf753de71a6b83698d9ac979051c1e4a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-13.c
! 29c9ab49ab7b09cbf40fb4020ee156e7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-2.c
! 3ba36946e3b0c9be3df994cbd479c16c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-3.c
! 5930cb05ecc109a00a46d2bc914b16f3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-4.c
! b3ed5a7aadc1797835e5db89518df5bb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-5.c
! da0887cb7c84bffaebf617d56dd09379  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-6.c
! 8b45ac41838d4b9041d6d2498e39c9b8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-7.c
! a36a8b43148ba2fe56ca4a407cd0d515  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-8.c
! 0296c8ea990894f8208177c91d3a3bd0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_bb_prop-9.c
! 890a6151c0e12f32e1915be941542a6a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-1.c
! 9202c8394a9539fee67bd5ba38b16302  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-2.c
! 508423e9f3cd4102b079bd46d3adf20f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-3.c
! be851da0cb125d662452ecefeb694ebd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-4.c
! 6c92bf40eabf2429e13fe0befa3c5bae  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_conflict-5.c
! f56f295e1fde3d3a20d08762bbe6cb15  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-1.c
! fcb9c7ec10e39bcf039c98dc6fd1f2b3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-10.c
! 8d167ce4c9cbad2ded0e0b19ddcc7931  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-11.c
! 1bf6b16b86fbbb7d966640fc7631409e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-12.c
! b878b51cd7e698f1a9518ff3e7d8f8f4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-13.c
! 793d433dfdd744080944c4f8cadbe6b8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-14.c
! c281d334daa2447697b22827467297a3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-15.c
! 10bf6808976492ea6313f533d103d7dc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-16.c
! 5abfbd893f87208627797d250b01d7c2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-17.c
! aa07819241c5fa7ac467301b5935ff14  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-2.c
! 6b75a049e8d730d7baf1705aeb4e1129  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-3.c
! e18b3030a29256515d88ae41f312123b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-4.c
! 1a49f9d40e046c0fc70eb48654cea047  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-5.c
! c7f8df98090c973f0f3dbd24cd2030e2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-6.c
! 6d8c72edc562a5039dc7ac041f6b7376  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-7.c
! f71e4919d3b3079c119386218c1071af  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-8.c
! 562bf3d719a2d1ffa435ad220f892b4a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-9.c
! abd694235777f7b62db96e3787996c15  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-1.c
! 63859dc31b5693e020242bb1ba226197  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-2.c
! e91b00c5f2ae57cbcc2481ba24b57f0d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-3.c
! 23a2401e8a0d3a8966d904a613e17daa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-4.c
! 38036ffecdbfd641cd09bf4d96837f77  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-5.c
! 0086f55b1860acb897467cdb85e62b2a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c
! f008cdc108039e8acfec80c66a29deb7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c
! c70d0b9cdaf8882f26b7606e319bc3c3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-8.c
! 8bb23274aa1549837c9839211712d1f3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-9.c
! 6d8ff049c03f5447bc7a341925c0ad05  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr108270.c
! ab73472e7e5362e2bbb2bfe569ccd935  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109399.c
! 8a76715f8addf371ffc18392ee33aa74  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109547.c
! ddadadb5321fe35c6569527ce7955957  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109615.c
! 3ecac58f5d30f21373a2bc05165b66a0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109743-1.c
! f875b8f673a678c4ac865f85f1438423  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109743-2.c
! 6281ceba739298c138500e6a18220c4f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109743-3.c
! 8b198996b418f69db17b9ad915557833  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109743-4.c
! bb3ce8a10b4ccd999a29306694940662  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109748.c
! 0d2c1eb715d12f9f8cdc2e2cef6b2121  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109773-1.c
! 2d1a6ed55cf0bf3a8fdef6337e91e6c2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109773-2.c
! f7bb9440137e4f574f9857865f6c6b85  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr109974.c
! 925adccb9e39faea2c76e8ae1bcc49eb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-1.c
! aa3e92c7340cd3485c6598b9e132677f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-2.c
! 88faf0ceb114638ae22b50efefe9ae09  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-3.c
! eda3b4a21e2ba426a62611455401de48  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111037-4.c
! 7105d7058f90d1dfff14cc024dd842da  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111234.c
! 21d0ef938cb46d03c8a121c2becb80ea  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111255.c
! 887ea885b64d4a5071b9c9a947e6051f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111927.c
! 06f8b37d86ba28cf0906a223c73bd1c6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111947.c
! 392d88da89b37e54b44d09ed8a956ed2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112092-1.c
! 177212dbc629b449063c1b1b379f91e3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112092-2.c
! 3c3686d965eb96739db65a67b78235ee  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112713-1.c
! 85bd7967d13eb2e66618f260619015ab  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112713-2.c
! 825cebaeb6421d3bddf6eb526089fcbb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112776.c
! 2b9e8f37a59d4d5097c836419f577bcc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112813-1.c
! 9ecaf30d7ef9bcfbfb9a58fbedb786f5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112929-1.c
! 0ca5195ca0b13630a73cab3d7bfdd77c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112929-2.c
! 907bf844f5a5d6d0461e0899fda288f2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112988-1.c
! 1f59839cf415d948822ef4462b427dec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr112988-2.c
! c0713b9aa6ed439fab330ab7223032dc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113248.c
! 14e4ce1dbfe4c1978792e21458b54f60  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113429.c
! 231f16f9d08fd8f85a1f7dac951a33d9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr113696.c
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/riscv_vector.h
! e08588cfa23221a10eaf714a16aa7ea1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-1.c
! 162e11cf9edc569ca4a0cc195e7265bb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-10.c
! 5f3b8ca1c3fc687d5eba2c13ea3fa7a9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-11.c
! dfe616cc3424529fcb1b4f29efe74279  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-12.c
! 5ffb34cd5f5096dadbecd4148e1118e2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-13.c
! 0c9bb152d57345363b715221ef1cf628  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-14.c
! a291a75f362a1d9612f424ed15308ac9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-15.c
! cbedd2ab19c43402f6ebc60a97090fd7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-16.c
! fbd74ed87c3c3be2e6db21a54024e697  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-17.c
! 4923e42f1f15e86c027585b5ec203232  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-18.c
! aafa85da7bf3c2d63cf97c3f3f163083  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-19.c
! fb62294d3a2bb010cba54883210ab826  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-2.c
! fbd74ed87c3c3be2e6db21a54024e697  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-20.c
! df54ad883c077c5451c0f22c36dd15ef  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-21.c
! 6820cfa20d531d810edba6d0501e00dc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-22.c
! 9c61363c3dd816e4b584b847ac1283a8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-23.c
! 97efb86837d92aa3c95d2a215b78972f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-24.c
! 6f99eab73223621bb8ce4e75786377b1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-25.c
! 92fba188ee05e339e73ae974f3c86eab  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-26.c
! 541b1d2517f9375555b758354e07e902  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-27.c
! 7b72487e8213232895b139d700e66fe3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-28.c
! d9d97c6f9a34c864b30be56e4015ea8a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-29.c
! 3bb3d30614fb36adf0789a759aff0fa7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-3.c
! 7104919f7818fbddde3578070b37714a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-30.c
! 9ba2386c1751be6914c8d70e906da175  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-31.c
! 64e41d7c7ece1b1d030abd2cfa63e74f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-32.c
! d64e66d94cbdd12b340dbf4a224f19e9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-33.c
! 48d9349f8c0c8af7f20bc9ffab411625  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-34.c
! 90f5c3d830c10098a5344e2de3079c1b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-35.c
! 9a448d4392699ef2b3082ce2dbb7cacf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-36.c
! d3fd07f02eea87eaea01b62a4de700bb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-37.c
! 07badc323281331a3a04c4de6815be63  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-38.c
! d155ea0f0b50305c82378ab87c0dc321  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-39.c
! 90f4672e8fa886fa4cfbb22f81a4990e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-4.c
! f700060f4b8116569c23ba8a116a158f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-40.c
! 419dff49996f0dd50432920c2b7b75df  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-41.c
! 4ef4776d4b492100fcfaf48c26749f3e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-42.c
! 1111684a17c1e3931a3fcf8134338ce4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-43.c
! ada46d03bf6ce69c87973b07abdb9a35  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-44.c
! c42380201d075b3dc00d854091144ef3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-45.c
! 6f44a86257c7958a7826d7bd4c6bcf56  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-46.c
! 30f6d6ccd44b52eb344072edf0137d7c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-5.c
! 02d0ae53ee03e94f3bba682e09fce208  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-6.c
! e0475a3754322c28cdf3d3f577af2bf8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-7.c
! 7e98ad8aa051c55f994f3039c5dfb893  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-8.c
! 6429a2c1e9fa06a5b58be536b336be92  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-9.c
! 11dbe76bf4eabe78dce6ec42f072b46b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-1.c
! c1e6a37e8ff25986110ad6ef9ef4de0f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-10.c
! aa4ddbbbf67691c72071a00529ecc48a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-11.c
! 991f106f564b4537bef1d6999d0c23b4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-12.c
! 1ec8656d6db57852e7c77c5f58c08d12  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-13.c
! 8c51a7469b86f6d410266ba0c13c4f6b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-14.c
! ea2b33efc025442329a336a059925ff7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-15.c
! 3f07a9149e9ac4032c6fd871d0371a4c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-16.c
! f2f84382347e414758c259f0dfead3dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c
! 8d5d22a52619a43923c5730f8975d232  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c
! 70b874dbbfe0f7b62ec5990a886cc963  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c
! 02ec03ccfb668b351de40962b4525774  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-2.c
! 00eb1c6edc60407a4a44d70cee21366b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c
! cde86dd4e44b53be452f5c6b6d1c01da  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-21.c
! 2242fb56ee1673059d261659fbcaae30  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-22.c
! b0e5119c93d15f64cec2ddf78c015be6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-23.c
! af13d85faceb1cdedbf05f50cf428e8d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-24.c
! 0be16130988a9500af2c01079625b411  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-25.c
! 776efb9edac8d88ebbb609c0e3a7c43c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-26.c
! b945e626a8eb6949b54b1a3d221d472f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-27.c
! 73fa202a32cd547164e13f990d11c54e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-28.c
! 77f73921da1efba4949e1a17be0becb5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-3.c
! 5ad57b8d0679be0e5e94f195278445b9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-4.c
! 1d5a9571c7dd5151d1cdf8d474968ba0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-5.c
! aecae3a17bd2987c49932b142d116a74  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-6.c
! 7b8d4a88165ba347207984798c4436ba  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-7.c
! 0993970f87c80e0f2af41155f99ba2eb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-8.c
! 2415203f5d394b4174167caf40642a5a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-9.c
! 8fd551d818e91540fd1d60190d067ea6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_call-1.c
! f22d7b7dd0ac13e7be7c691d7016cacf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_call-2.c
! 4e97bfbff456defb0b3b091a58418069  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_call-3.c
! ff0da16730eed18779024ef04592b1bd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_call-4.c
! cd948c64a2684bb7995fa9d7b296ba40  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_complex_loop-1.c
! aedb7500eb87a112f80fb4609b472748  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_complex_loop-2.c
! a6e85f1bf3d68b905f55eb7a3c5ea388  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-1.c
! c0a5c2206ccb5cf2a7d4252a7f171aed  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-10.c
! aa76ec6fcec01d05d6b7e67b164ae65d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-11.c
! a0ccabaa56f4de23db0cc078e751382e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c
! 835d7f9ee00940eb208115ef87f2b36f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-13.c
! 4aa61bc76d29783352fc122155853cb1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-2.c
! 79ab5a358745a4c9625c4a93480c5abf  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c
! 6dad560e0fe6f25d552e9d7564fcc323  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-4.c
! e64d9dead1e3f09caff223e861cbf8b5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-5.c
! 3276cb746e6a5dbff84541fcbda21147  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-6.c
! 9f502b3eb54c5a17480bd54606360e8a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-7.c
! 7a4b40f2c743513ef7e7d01ffb7a1a10  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-8.c
! 284c59667f440485eec97a60385a5f06  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-9.c
! d06cd80c6b148114f1a554ab159d22db  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-1.c
! 8c37a4694877c625bf33cfa1462fa499  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-10.c
! d6699d89348fa5e12892cbc612cf0521  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-11.c
! 47e21f7be5c61348992447e7e9b94dc5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-12.c
! 0cbe3fc4ba79a05af70030c3ba1a49a8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-13.c
! 30b4e51728b5e923b0399175d1d577dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-14.c
! 93ced0c0d6609611c9bcbf619058d680  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-15.c
! 27d413d0c410beb620dac7c784879535  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-16.c
! f8f11588717227eeefa4fc8ef7b07a31  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-17.c
! 56abe3f45762fe992fd427289dfea71a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-18.c
! 5893021dc647d342317c3da062892f8c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-19.c
! 3004f7dff36c14a95d1af1ba0b66861d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-2.c
! 7d18e1f9162e20e04c9935941334f9ed  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-20.c
! eedfd41bb0e1a0bb39ad73020fe45bd5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-21.c
! 70f90e575ab3406de5011e744ff5cc22  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-22.c
! 067a2f4849a2c6a3dea0eb9c2c9b2e52  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-23.c
! dfd2a431ae50dbbe9d39e81faa38595e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-24.c
! c99d5c2d66172fb54ac8c485bec6fa61  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-25.c
! 97519c9389d3a4f71553ab9f847d0a1b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-26.c
! c6b7a52f46f53f19d67a50d566a00715  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-27.c
! cfd8b89ea3aef49d210f46603314731c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-28.c
! ff64f6ad9b2fa825fafc09da8f019ab6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-3.c
! 9010e57dc91cc143f5fc0e131232ae8e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-4.c
! 64ff96f62b151d0f4db838c6042a4285  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-5.c
! d0dea6c8a28aa1c26e005ab315fca9d2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-6.c
! 3d02a71fa34038921ccb98e0c537ccec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-7.c
! 8c1390fd8c9921d4aad502d083521554  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-8.c
! eff1c636b7f4ff36ff201478217ffe22  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-9.c
! a5e9bd1d34550efab0a0cde227466e33  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c
! 3489bc352c2377763790f9b04d1693b5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c
! 220700d69fce99f96ade0c3cb45bc2d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c
! d185ed08a8bf01d91d8039964f9d5f7f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c
! db2aa9990b0ba91c492b400b060cb49c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c
! 5494ef93aa3c31dce8f8673ec7f9993b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c
! 28a1983dc07c40909d30fd6a9d84d43e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c
! 79076be85780892917a9ab177c2a2935  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c
! 960f006023126b13afdf938105ab7986  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c
! 0b0eae7e8f8218c1e55b62140fb28586  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c
! e1c87d34b8bd73b511b2d3868775fbeb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c
! b87fa7c9f39de26ce15ec301b4a958ce  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c
! bab6ccb139d6c7228ae725b02c3d3325  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c
! 83246851f9501d24de397d44731b7f66  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c
! f7af20d2e884a20337c389c826799a93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c
! 342d38c7151163a98c4db6e30f1c10dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c
! cb113c7b54a6a60c7044faa20eaa7f5a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c
! 269d9785f3907865a6d920ab25b4a211  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c
! 2c5fad4764d8686b9db957a6057e98cb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c
! 056afccfe0378f095d689712a8fd52c0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c
! c679601e707e809a64b2eb05a12c2d70  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c
! 52c245616a6c42e3ce432b260a4e4dd8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c
! 4c50eeb81015f398ff357cf9089a0988  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c
! a0348ea66b4f187c97cc979fbb9ca107  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c
! 44b68fa28e2cace1095ae14560f04140  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c
! 3972ca87425b7d5352c64cb3dde228b1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c
! e1a7473c20e7d6a781346a53e1cf152f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c
! 801bce09593a22e256997b0ba958b3df  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c
! c5d930996fd2346c7d36b4092b881546  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-1.c
! c94cb0330d8863795da4992df2f5a5a8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-10.c
! e129fdd9dd41d20ad1e909b64b9a7600  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-11.c
! 2d87a7c5131bedcc0c2876ac5f4f0e9b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-12.c
! d4ac14c84503dd9a8e29ab50c6beef2c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-13.c
! ff86537c7f0f0760181dc83291aa58f3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-14.c
! e6ffb1cfb942f98857c3d34dae10a1cd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-15.c
! a4cc18df23c6c162a3c3814332c8c08b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-16.c
! 8a6064e4bf4bcfd63bbb1e5e9237515d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-17.c
! 9359b8c58315237b99a2f60b231fd3f6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-18.c
! a44a975096d944646cd0a8860e46dc9d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-19.c
! 88f6d83b4bee3e7156ce39a43dcbb9d0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-2.c
! 38c4595a06592bcf38877e9152f2099b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-3.c
! 9e80188da820e7b0b33022791bf4e6d0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-4.c
! 0d728ec23bdb78632d18f30ac56d1e5d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-5.c
! a297d94d9b53b69695049f25124e12af  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-6.c
! b004054c9e088dba40a572f4b53dffaa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-7.c
! 5ec0edf30d81f8d775f23c8c59dc6998  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-8.c
! 1b29610642e15f9dec849be26ec4cdae  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-9.c
! ecf85480997e47e4ff4fb553d8021f5d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-1.c
! 1036a56588793a0f5b5467e62fce8979  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-2.c
! cb9484702d5d1875b8e1593a4b60f6d5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-3.c
! 2a16a8491c93554c8761e18ae087988d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-4.c
! ad8c9db77e7c9613e44dda49fe473d0f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-5.c
! 29d8d2390117a52ad906bfb5d0c2fea2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-6.c
! 04e99cb99f96b2b8c472e494b32135f9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-7.c
! 0431d01db3243bcc2080b7c3f5df7bf6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-8.c
! f272a5f941dae54178996abf83a2d35f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-1.c
! 8f330203b47b99b85cfb134a96bf0573  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-10.c
! 861b8565e70a72c65cbabbbab3a2c957  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-11.c
! 74641d520de3f75906323a1cc88bbe61  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-12.c
! d7fbcf64fbb0d5c5eafc00eaf59b4014  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-13.c
! 9dc6123188ed1e38859900dc0cd6449e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-14.c
! cb5abdeef334d7ca5ff5a5c51147f5f4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-15.c
! fbf55e3959f112f1befd5c5423abd915  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-16.c
! db3716ab98e490696d91b43f563138a4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-2.c
! d114f36b403e4209efa0e7ef95c150ba  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-3.c
! a56a90a0f7ffe624f8f5d652f5794539  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-4.c
! a56a90a0f7ffe624f8f5d652f5794539  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-5.c
! f9100a4b0050335bd91960a648b24f03  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-6.c
! c4271426c82005f277417d6fed6c6e07  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-7.c
! 166f44dcc9a2e921eb6ffcaa271f36e7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-8.c
! 166f44dcc9a2e921eb6ffcaa271f36e7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-9.c
! 84f6becf9e95cd3f2c6c665414ced63f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-1.c
! 88bf598161c1e947dadafd1b8f79af43  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-10.c
! 041d7e1270e6e25fd6e643aba9895ced  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-11.c
! ea0cf0b8514fc5f31482a6791295dcdd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-12.c
! 3091b17176a21128d513f9bd2627d46c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-13.c
! 7a39209f4400e08a123ebbac1603e0a7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-14.c
! 5decb56ed01c889cba56bc142653c36e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c
! b89d5d905c4955ed5ee8cb130799d717  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-16.c
! 4f5f521bc7321c9d8d182eb6bbbf87c5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-17.c
! 6045e021342595ef012050bea17d8e46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-18.c
! f36bd3acc515a31959dd9e5b03716209  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-19.c
! 42371f3cec1f548824c992973fa73962  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-2.c
! a2b89786800f8429d801237a3b473a0e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-20.c
! c621e73f024d332f72690f6f94c043ad  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-21.c
! 85bcdbbc17d5c013303d2e8c77393bdc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-22.c
! 3c84cff56b0818c6d06fb89a91dfcc08  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-23.c
! 20ef5f21dc037ec616bc392e59583d97  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-24.c
! 188c49b218b64f54ee64bd0ee2ade48f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-3.c
! 6a105fdcfe8d5ddcf584810eeeba2a5e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-4.c
! 054cb34b2eef7b771e56db6700865d57  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-5.c
! 774c31ef2e566abc52a1453883e19bbd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-6.c
! c41eb5efb510f2a4691fc8a10ae4eef9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-7.c
! 3e4aa997690eefd0f19df7c4a010f8cd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-8.c
! d8ef71e0ec94874c30dd3fc5c4487906  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-9.c
! 5a04c0520f848ca5d75b239289ed01d8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_bug-1.c
! c29263770485c7b02b90841494120802  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_bug-2.c
! a73aedff02f6b3acb235257ff4682598  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_int.c
! d6285e8756e63d128df5145a90b2475e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl_pre-1.c
! fff2976108519ec62768f18b012c9590  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-1.c
! 609e1d2aef82a23de55a584b6e847de3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-10.c
! 07a7f25ff705749961df0c7be4f89247  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-11.c
! 949f235392597ff9b824f9430107ab0e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-12.c
! e827f0ca0f57ceeee3bfb3ebf59daa93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-13.c
! 22dbf2d3870aedbdac2461ccd96f7e6a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-14.c
! 6d5d426c0976b78985fb6472b9f31c41  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-15.c
! 152d71e37b937c99de6c3186ebc09167  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-16.c
! b767f73987768bb7d7766b74f2414566  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-17.c
! 764110eeea245506020fffc7c97b96fd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-18.c
! 27b3163c7cc3ddd01b9ada46db53df1a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-19.c
! 164b8945ed6553400e691e2b94b9eb83  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-2.c
! ad64c08f922f72ad597d7b6f3fe69035  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-20.c
! f353ff22b3d33ab76e2d0ef9b8df7a38  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-3.c
! ed887cfb0c3d7c35703bd016f17dafc4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-4.c
! d5f9bb03f6b98e53fb108d8fd014f713  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-5.c
! 055bfb9c23b3e7eb33041e6f2cc311f6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-6.c
! b3330bdc7e59d45053b22dc4e53f3689  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-7.c
! 6a22e60d3918a423ec81d82018d74f9e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-8.c
! 609e1d2aef82a23de55a584b6e847de3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-9.c
! 9c2f522a14fc0f4d937d128fb08e4647  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c
! 38f2d2ac7bb0e72885563562d91cb479  gcc/testsuite/gcc.target/riscv/rvv/vtype-call-clobbered.c
! 420d379bf3e421f1f422df71a0695192  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector.c
! d1bae37559008f0b51be445a88dcbf11  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr114194.c
! 287b2b8d083d52594a337f3d18d11255  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/prefix.c
! 64aff6badb0277fa176cd0a77f7c5973  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlb-vsb.c
! 9cc8c7275fed5ad8c33a87d01dfce46d  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlbu-vsb.c
! 28e0acb488faa23626c5d3373f3e9e54  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlh-vsh.c
! 47f9b14562d906d2bffd6f0e24e08125  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlhu-vsh.c
! 545b9ae0d71a7ff5c0e9f8d80c0c0921  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlw-vsw.c
! 8791377d57c87c7745a959741ea6bd5b  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlwu-vsw.c
  e21250cdea6ea09da525f0119c38ea38  gcc/testsuite/gcc.target/riscv/save-restore-1.c
  d9f3969fcf83beaed59186cbaaa465bf  gcc/testsuite/gcc.target/riscv/save-restore-2.c
  f77ea662d9f85837dacf2e485dc91143  gcc/testsuite/gcc.target/riscv/save-restore-3.c
*************** c08993fb3b1eec219ac8ae53cc03597e  gcc/te
*** 77302,77438 ****
  e235c279f7ce15f9087254bf97918762  gcc/testsuite/gcc.target/riscv/save-restore-7.c
  88dbe500ee71e24bf3a5827524daa6a6  gcc/testsuite/gcc.target/riscv/save-restore-8.c
  ca1e563124a7035c98d86fadbdd1371d  gcc/testsuite/gcc.target/riscv/save-restore-9.c
  5fcf0b559c722cc3ed68b1ddfc2e1622  gcc/testsuite/gcc.target/riscv/sge.c
  af2cd5ac59fa1b5f6b8381db83629b16  gcc/testsuite/gcc.target/riscv/sgeu.c
! 763d05548f04a56e951795e6503a810c  gcc/testsuite/gcc.target/riscv/shift-and-1.c
! 84c8ae748549dd620b75bf4c20c8571a  gcc/testsuite/gcc.target/riscv/shift-and-2.c
! 53aed487d057c50e553501f96767a8e7  gcc/testsuite/gcc.target/riscv/shift-shift-1.c
! adeab39fcb6c1ec904288ee86a3fe990  gcc/testsuite/gcc.target/riscv/shift-shift-2.c
! c362166b82cfd15aece996eccbc64f3b  gcc/testsuite/gcc.target/riscv/shift-shift-3.c
! 3fea76f17e317b5f62c76206c3db714b  gcc/testsuite/gcc.target/riscv/shift-shift-4.c
! 26ae4f6d79a8e8f5c115859a5a225a5d  gcc/testsuite/gcc.target/riscv/shift-shift-5.c
  d42b5158196a609204cd9c4e3de58825  gcc/testsuite/gcc.target/riscv/shorten-memrefs-1.c
  94457781ee5b39939d4c674c305c370b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-2.c
  1b41375720582a9c2434a6eee6651b62  gcc/testsuite/gcc.target/riscv/shorten-memrefs-3.c
  0158a4e90058684623a3d0a25d50f0ef  gcc/testsuite/gcc.target/riscv/shorten-memrefs-4.c
  8a88c2df3cfb9db345c5470a49f81e6d  gcc/testsuite/gcc.target/riscv/shorten-memrefs-5.c
  98c83ba3b448e8be3a69620427e8a37b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-6.c
! 0f1d841ce46c53b8978fe44320b0b635  gcc/testsuite/gcc.target/riscv/shorten-memrefs-7.c
  526aa694599c53f8e5558561bb574f68  gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c
  6727bdb2e2678b27aa57ae036e6b5fc1  gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
  0b526a98245be580ee7d193c02518cef  gcc/testsuite/gcc.target/riscv/sle.c
  e7323b2b75e72558319fae931cfdda03  gcc/testsuite/gcc.target/riscv/sleu.c
! d608fda58ecfa5f38d79844092b2d72b  gcc/testsuite/gcc.target/riscv/smax-ieee.c
  86c31544a16504a7d32260ca07621420  gcc/testsuite/gcc.target/riscv/smax.c
! 37b5905987c616f527ac3903de4087d2  gcc/testsuite/gcc.target/riscv/smaxf-ieee.c
  cdb04f31d6f1fa2cacb8ccae467880f3  gcc/testsuite/gcc.target/riscv/smaxf.c
! 6491227f708566c72ff2e98b3e93fbe1  gcc/testsuite/gcc.target/riscv/smin-ieee.c
  55464a1a60268f3df9e4c34893965e56  gcc/testsuite/gcc.target/riscv/smin.c
! bf516e9bbbbdc21ceb500364ab88aad0  gcc/testsuite/gcc.target/riscv/sminf-ieee.c
  ff5bbc31f569f4e1b8286fe3e8f4153b  gcc/testsuite/gcc.target/riscv/sminf.c
  303e1468981b64cf07461158b0ab0649  gcc/testsuite/gcc.target/riscv/stack_frame.c
! 3972750143cd7dd650cdab45b716366c  gcc/testsuite/gcc.target/riscv/switch-qi.c
! 55b7a5fbbc21abad8b24fc94d7adf9c6  gcc/testsuite/gcc.target/riscv/switch-si.c
  76005de0a7c1ca66b1b06de3c53ad1c2  gcc/testsuite/gcc.target/riscv/weak-1.c
  2d691bec54eef9c713895ac9abe32620  gcc/testsuite/gcc.target/riscv/xtheadba-addsl.c
! 54b82844aaf37fd430066617d6750fd9  gcc/testsuite/gcc.target/riscv/xtheadba.c
! d6824daffe31d00a07a7cb3cb5b257c2  gcc/testsuite/gcc.target/riscv/xtheadbb-ext.c
  9d2923e1d7956aeb5deea4e6098068f9  gcc/testsuite/gcc.target/riscv/xtheadbb-extu-2.c
! 18bf00eaf91110854f5b47075e205cbb  gcc/testsuite/gcc.target/riscv/xtheadbb-extu.c
  262700746898b570786f228c90322509  gcc/testsuite/gcc.target/riscv/xtheadbb-ff1.c
  169a6e9cb637657f3fc29f50fb2a13bc  gcc/testsuite/gcc.target/riscv/xtheadbb-rev.c
  48788b4cde5085faf12957bf7364a13e  gcc/testsuite/gcc.target/riscv/xtheadbb-srri.c
! 30b6b86c72b50b5009c84b75a6ab69a3  gcc/testsuite/gcc.target/riscv/xtheadbb.c
! 65e3e8aa7a88041b453481c31ffed53c  gcc/testsuite/gcc.target/riscv/xtheadbs-tst.c
! 102389a933d684c925ecec62569a69c2  gcc/testsuite/gcc.target/riscv/xtheadbs.c
! 50ebd93dcdfb49f0931558b1c9d21ddd  gcc/testsuite/gcc.target/riscv/xtheadcmo.c
! 77ef52d87137d9e77d956c9205dd2126  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-imm-eqz.c
! 7d8be1ecc98c674514075384be18b540  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-imm-not.c
! 1a46fb815d1b5dcb5e09d8719edeb276  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-reg-eqz.c
! 824e5a3fa36d95af3832cf3c7d7e9e87  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-reg-not.c
! 36eb2d0e1878afaf61c196dab07bdf56  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-imm-cond.c
! a314bc7b47a1eda9b35dd5c0d361a377  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-imm-nez.c
! 6ee04229c4e2692cb11afba0245d03c1  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-reg-cond.c
! f17f6a9f3a28a01ec315225c18fb6696  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-reg-nez.c
! f2c416b6cefa9ac63f5d481183500a2c  gcc/testsuite/gcc.target/riscv/xtheadcondmov.c
! 03839d5e6793550acc5cddbced7a893b  gcc/testsuite/gcc.target/riscv/xtheadfmemidx.c
! 292e0d19747c08f0a9c14ce0cc86b3e0  gcc/testsuite/gcc.target/riscv/xtheadfmv-fmv.c
! f91daca70f2be1f59ba90d0c6916cbea  gcc/testsuite/gcc.target/riscv/xtheadfmv.c
! e0136fcfa899b2967ab2825bdd9bebd3  gcc/testsuite/gcc.target/riscv/xtheadint.c
  2d63440eb714b01d9365d08a0670b2a0  gcc/testsuite/gcc.target/riscv/xtheadmac-mula-muls.c
! 12da50bd6059b158d45821fea71d8e3e  gcc/testsuite/gcc.target/riscv/xtheadmac.c
! 4017c3d0a9aaad74e9729cf9022d8314  gcc/testsuite/gcc.target/riscv/xtheadmemidx.c
  73d7049a35fb8a305c5e87efe1790c7a  gcc/testsuite/gcc.target/riscv/xtheadmempair-1.c
  b2ee48debb8260ca43eae7a7599d100f  gcc/testsuite/gcc.target/riscv/xtheadmempair-2.c
  68468a87437dcca3d624d91ab036dbfb  gcc/testsuite/gcc.target/riscv/xtheadmempair-3.c
! df429bd7726fa8df9524022ce272a6b9  gcc/testsuite/gcc.target/riscv/xtheadmempair.c
! ac71bb928660a9e6d22ba4f78a7ad0b8  gcc/testsuite/gcc.target/riscv/xtheadsync.c
! 0b05ec64bbcb660023a075a936d4ece6  gcc/testsuite/gcc.target/riscv/zawrs.c
! 19ac4192707a6577469d125431cdefc9  gcc/testsuite/gcc.target/riscv/zba-adduw.c
! 439000b8b977f80aaf4001f0df2a2708  gcc/testsuite/gcc.target/riscv/zba-shNadd-01.c
! 91eb944f291436f0dbc28f8582caf85f  gcc/testsuite/gcc.target/riscv/zba-shNadd-02.c
  80c06090d5b9372e4d3b24414a3ac481  gcc/testsuite/gcc.target/riscv/zba-shNadd-03.c
! 3c9d94ddfcfae97abd4d5ffece4e122d  gcc/testsuite/gcc.target/riscv/zba-shNadd-04.c
  1456e0b644560b4d55a604c8032c331b  gcc/testsuite/gcc.target/riscv/zba-shNadd-05.c
! f73a8a79af831fbaafde15c511033527  gcc/testsuite/gcc.target/riscv/zba-shNadd-07.c
! da20df00924c672e61656946641d3cf9  gcc/testsuite/gcc.target/riscv/zba-shadd.c
! 1b8636944ff925cb64365451c0156358  gcc/testsuite/gcc.target/riscv/zba-slliuw.c
! fc7c6281b4cedac153ced742d0cc8c5b  gcc/testsuite/gcc.target/riscv/zba-zextw.c
! 0ee4c750d9a61f375588a40c48b04e98  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-xnor-01.c
! d5b3992f3e13d5bd291fe4479a1fadb6  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-xnor-02.c
! 35227b696f49eef2ddac0862665d9ab2  gcc/testsuite/gcc.target/riscv/zbb-li-rotr.c
! 45885c6ba1a9f22cb19561f56454a0d2  gcc/testsuite/gcc.target/riscv/zbb-min-max-02.c
! b84bccfa6cff888d65dad4e7ae75c175  gcc/testsuite/gcc.target/riscv/zbb-min-max-03.c
! 3471a95bcdebb938d770978eb8d08add  gcc/testsuite/gcc.target/riscv/zbb-min-max.c
! dbd02e997494852a8425da306f93f58d  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-01.c
! c0698d5adec3f1300d17232a8da78e04  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-02.c
! e90eca75db4a4b2cfc5144938f3e1327  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-03.c
  53a2faccaffa79bae9f2f156bcae935f  gcc/testsuite/gcc.target/riscv/zbb-srai-andn.c
! 7756d0af1a1119b1fa9aa8faec4da8b9  gcc/testsuite/gcc.target/riscv/zbb_32_bswap-1.c
! 39ef554d034a8e6aba860abc725b9d58  gcc/testsuite/gcc.target/riscv/zbb_32_bswap-2.c
! 63b09ea6f8bf81eb8e856c702c2e9ca0  gcc/testsuite/gcc.target/riscv/zbb_bswap-1.c
! d33ea9cc2e114af44aae6652d2210bfc  gcc/testsuite/gcc.target/riscv/zbb_bswap-2.c
! 7d738998e5e4d1a51d6b8f5227d896ef  gcc/testsuite/gcc.target/riscv/zbbw.c
! 0c868e3bd75a58cf8f904a75eb1345b6  gcc/testsuite/gcc.target/riscv/zbkb32.c
! ebef3725a72134d3514be45679ea336c  gcc/testsuite/gcc.target/riscv/zbkb64.c
! b2f59ea1f7b933f41117edb155b8c605  gcc/testsuite/gcc.target/riscv/zbkc32.c
! 74a98e8a064641ef49a64a422f9f20e9  gcc/testsuite/gcc.target/riscv/zbkc64.c
! 78533d8f1d7b64f8ed743d3357ff2612  gcc/testsuite/gcc.target/riscv/zbkx32.c
! 4d15fd60246f69fc0dbbbdf91aebb2d5  gcc/testsuite/gcc.target/riscv/zbkx64.c
! c271e5b072a3646600a1899a96adda89  gcc/testsuite/gcc.target/riscv/zbs-bclr.c
  e2542c8640613e3201b12054d45b3722  gcc/testsuite/gcc.target/riscv/zbs-bclri-01.c
  e4f42bd193de17a97d6ba4d7cf10116f  gcc/testsuite/gcc.target/riscv/zbs-bclri-02.c
! 3028537c946eb01b7931710cc79fbc17  gcc/testsuite/gcc.target/riscv/zbs-bext.c
  654584dc55d2bdd02192a295a812c13a  gcc/testsuite/gcc.target/riscv/zbs-bexti.c
! f0758d2a3ccffebc00b0ad5385022ac8  gcc/testsuite/gcc.target/riscv/zbs-binv.c
  87813769727061c534ee40846fe5d329  gcc/testsuite/gcc.target/riscv/zbs-binvi.c
! e09110fde228f69b253ac5e753d43601  gcc/testsuite/gcc.target/riscv/zbs-bset.c
  71ca7967e6cbba3fc34380193ec89519  gcc/testsuite/gcc.target/riscv/zbs-bseti-02.c
  c237dae5bf595d65ee7877fe44bac195  gcc/testsuite/gcc.target/riscv/zbs-bseti.c
  3fac61bb61fec1ea6a5b2dc959359036  gcc/testsuite/gcc.target/riscv/zbs-extra-bit-or-twobits.c
  19debc3a04e1393764efad7ab43274c1  gcc/testsuite/gcc.target/riscv/zbs-if_then_else-01.c
! cedf31a83e340f11dc6b347811079ad3  gcc/testsuite/gcc.target/riscv/zero-extend-1.c
! 3ae98dfd4e99f1110956db75e0a6b5b2  gcc/testsuite/gcc.target/riscv/zero-extend-2.c
! f6a8c03b002394bdd304c26e43d03f83  gcc/testsuite/gcc.target/riscv/zero-extend-3.c
! a160364612bb7f4e7091db81877266a6  gcc/testsuite/gcc.target/riscv/zero-extend-4.c
! 1c7cc4d79a825451f95eba8f7d7c7979  gcc/testsuite/gcc.target/riscv/zero-extend-5.c
  649eab595a8e0cf00b90212069e14aec  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-1.c
! 54271b2260f78e9b7d17ee70595a38bc  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-2.c
  80fcf7a7c999249b3576e7615985ca93  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-3.c
! 36eb8a9a469819efe7c919a69161508a  gcc/testsuite/gcc.target/riscv/zknd32.c
! 51ee2ea7f509fbe1ebfcc5f8a0255bdf  gcc/testsuite/gcc.target/riscv/zknd64.c
! ef5afe3a5291c258bd59a8c19717e8b4  gcc/testsuite/gcc.target/riscv/zkne32.c
! 12368bf4cf5f47116e09a96903450d88  gcc/testsuite/gcc.target/riscv/zkne64.c
! db0207e6dd0e5c5a2221af371eb34452  gcc/testsuite/gcc.target/riscv/zknh-sha256.c
! 90d0ab53a787702b98e89c4def82c006  gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
! 4ed8eef1debded2cb3c914f4ac9d9cde  gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
! 8357876cd3bbb3c59ae634a32d27a40c  gcc/testsuite/gcc.target/riscv/zksed32.c
! daaba3894d8efe5a457dd2aacc88f30a  gcc/testsuite/gcc.target/riscv/zksed64.c
! 11d2e37d299f0dc904a80fb602abc72a  gcc/testsuite/gcc.target/riscv/zksh32.c
! 7ea067c2a7e725042b169677b6faab8e  gcc/testsuite/gcc.target/riscv/zksh64.c
  14c4df6783e1a9e600cb33add7f5b299  gcc/testsuite/gcc.target/riscv/zmmul-1.c
  9259888aac8963bae4c1bf39b62b9034  gcc/testsuite/gcc.target/riscv/zmmul-2.c
! bb600d438f516c03c1d3afac705ee50f  gcc/testsuite/gcc.target/rl78/rl78.exp
  08a6a665d3a592b70dd51e3b59945801  gcc/testsuite/gcc.target/rl78/test_addm3.c
  f0737b5115c4a94dc1b2f670de5d83a4  gcc/testsuite/gcc.target/rl78/test_addsi3_internal.c
  77b20d827a48683a5d34b36224891ead  gcc/testsuite/gcc.target/rl78/test_auto_vector.c
--- 85864,86146 ----
  e235c279f7ce15f9087254bf97918762  gcc/testsuite/gcc.target/riscv/save-restore-7.c
  88dbe500ee71e24bf3a5827524daa6a6  gcc/testsuite/gcc.target/riscv/save-restore-8.c
  ca1e563124a7035c98d86fadbdd1371d  gcc/testsuite/gcc.target/riscv/save-restore-9.c
+ 7da6d66a53ccd636e543f8018347d057  gcc/testsuite/gcc.target/riscv/save-restore-cfi-2.c
+ 01eaf37800a68468ef47b20ff1881af4  gcc/testsuite/gcc.target/riscv/save-restore-cfi.c
+ 2a8ac42ddf2e78abef108bf169ba5c06  gcc/testsuite/gcc.target/riscv/scalar_bitmanip_intrinsic-32.c
+ 5d76e4c7052e08abbf4abfe2242a732d  gcc/testsuite/gcc.target/riscv/scalar_bitmanip_intrinsic-64-emulated.c
+ ee2757b391540c175f52ee5d03556041  gcc/testsuite/gcc.target/riscv/scalar_bitmanip_intrinsic-64.c
+ 570945b709910dee3c765e850dcb7adb  gcc/testsuite/gcc.target/riscv/scalar_crypto_intrinsic-32.c
+ f7facd71806c51b88c2fe7f7c7ef8af2  gcc/testsuite/gcc.target/riscv/scalar_crypto_intrinsic-64.c
+ 4dcd496e7b91e399f9727124426c49df  gcc/testsuite/gcc.target/riscv/sfb.c
  5fcf0b559c722cc3ed68b1ddfc2e1622  gcc/testsuite/gcc.target/riscv/sge.c
  af2cd5ac59fa1b5f6b8381db83629b16  gcc/testsuite/gcc.target/riscv/sgeu.c
! a8e995091792ed403cc21c3cecf1d9e5  gcc/testsuite/gcc.target/riscv/shift-and-1.c
! f6f88d093025e4e08279af1a0dc99807  gcc/testsuite/gcc.target/riscv/shift-and-2.c
! 9f6027d52dbf06dd3c679c6e0d51aea4  gcc/testsuite/gcc.target/riscv/shift-shift-1.c
! 357f742e6a2973747f92b67bbeab65d4  gcc/testsuite/gcc.target/riscv/shift-shift-2.c
! 6742e9c429211c6f6e2ad530e2068baf  gcc/testsuite/gcc.target/riscv/shift-shift-3.c
! 6ac6cb7156c6792c36eb8bf50d36e6c3  gcc/testsuite/gcc.target/riscv/shift-shift-4.c
! f75203940c40557e5e51741f83c5a2de  gcc/testsuite/gcc.target/riscv/shift-shift-5.c
  d42b5158196a609204cd9c4e3de58825  gcc/testsuite/gcc.target/riscv/shorten-memrefs-1.c
  94457781ee5b39939d4c674c305c370b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-2.c
  1b41375720582a9c2434a6eee6651b62  gcc/testsuite/gcc.target/riscv/shorten-memrefs-3.c
  0158a4e90058684623a3d0a25d50f0ef  gcc/testsuite/gcc.target/riscv/shorten-memrefs-4.c
  8a88c2df3cfb9db345c5470a49f81e6d  gcc/testsuite/gcc.target/riscv/shorten-memrefs-5.c
  98c83ba3b448e8be3a69620427e8a37b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-6.c
! 845c8003a4bc1f3d9e3c4f80225ff542  gcc/testsuite/gcc.target/riscv/shorten-memrefs-7.c
  526aa694599c53f8e5558561bb574f68  gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c
  6727bdb2e2678b27aa57ae036e6b5fc1  gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
+ b2d190bbc93bb8aca63abd0ddf20aefc  gcc/testsuite/gcc.target/riscv/sign-extend.c
+ 3f47aa8acdf98bd432971c2997721537  gcc/testsuite/gcc.target/riscv/simplify_ior_optimization.c
  0b526a98245be580ee7d193c02518cef  gcc/testsuite/gcc.target/riscv/sle.c
  e7323b2b75e72558319fae931cfdda03  gcc/testsuite/gcc.target/riscv/sleu.c
! a2a3683590a6c12a010cfd0b3f03b095  gcc/testsuite/gcc.target/riscv/smax-ieee.c
  86c31544a16504a7d32260ca07621420  gcc/testsuite/gcc.target/riscv/smax.c
! 0215096559d8744c32da1dc65d488b7c  gcc/testsuite/gcc.target/riscv/smaxf-ieee.c
  cdb04f31d6f1fa2cacb8ccae467880f3  gcc/testsuite/gcc.target/riscv/smaxf.c
! b094c95e67c7236f65fdb03707497d4f  gcc/testsuite/gcc.target/riscv/smin-ieee.c
  55464a1a60268f3df9e4c34893965e56  gcc/testsuite/gcc.target/riscv/smin.c
! 6bdd3e0dc6b0f53ca23248ab17fdebaa  gcc/testsuite/gcc.target/riscv/sminf-ieee.c
  ff5bbc31f569f4e1b8286fe3e8f4153b  gcc/testsuite/gcc.target/riscv/sminf.c
  303e1468981b64cf07461158b0ab0649  gcc/testsuite/gcc.target/riscv/stack_frame.c
! 93ee02d933459c5750beb83b19ec23ea  gcc/testsuite/gcc.target/riscv/stack_save_restore_1.c
! ae71d45b6da475660eae8acefede8824  gcc/testsuite/gcc.target/riscv/stack_save_restore_2.c
! e95dcee6d2cd4bf984685e71d71ae504  gcc/testsuite/gcc.target/riscv/switch-qi.c
! c487685abb9e3ab6bef4f12eae646e50  gcc/testsuite/gcc.target/riscv/switch-si.c
! 0740ed596a58a9a615ee2f0aaba6302c  gcc/testsuite/gcc.target/riscv/target-attr-01.c
! c20954867392c788b9da4e9b89269296  gcc/testsuite/gcc.target/riscv/target-attr-02.c
! 4ff48d18b356b65a818e6c96bf122c60  gcc/testsuite/gcc.target/riscv/target-attr-03.c
! 232a31f3c3422efc7612e9c63b97615e  gcc/testsuite/gcc.target/riscv/target-attr-04.c
! 5243381d5d58afc8f830b3a7e64071e2  gcc/testsuite/gcc.target/riscv/target-attr-05.c
! a0d5f8466d1cded6418c0bf0fa3c65b0  gcc/testsuite/gcc.target/riscv/target-attr-06.c
! 38478adb7f693a484680528727ce4981  gcc/testsuite/gcc.target/riscv/target-attr-07.c
! 5bd51f330544ab51a856c447b8438a33  gcc/testsuite/gcc.target/riscv/target-attr-bad-01.c
! c21782d4ade46bad688b869cc80ec197  gcc/testsuite/gcc.target/riscv/target-attr-bad-02.c
! 1a4063b034dcc1c1fdb69e563e19d520  gcc/testsuite/gcc.target/riscv/target-attr-bad-03.c
! 2ecc141339d3f99f8cce0bff1910d94e  gcc/testsuite/gcc.target/riscv/target-attr-bad-04.c
! cce854d38955c8a73b2025f74af8ea3a  gcc/testsuite/gcc.target/riscv/target-attr-bad-05.c
! e797fa7075cca44d33a9bc6dbeec14ae  gcc/testsuite/gcc.target/riscv/target-attr-bad-06.c
! d833abff4bdcf592890061ee4100e16e  gcc/testsuite/gcc.target/riscv/target-attr-bad-07.c
! 24bd78e7e1c7c54f06737a1641c246dc  gcc/testsuite/gcc.target/riscv/target-attr-bad-08.c
! e1f49772ae08e8fe3ef01446cf76d2b5  gcc/testsuite/gcc.target/riscv/target-attr-bad-09.c
! 4972eb4c779e0e3236d1f708cd80bf87  gcc/testsuite/gcc.target/riscv/target-attr-bad-10.c
! eba52e984a37427da6fa1233257ff6a9  gcc/testsuite/gcc.target/riscv/tls_1.x
! dbe67905fc0f65b7be7d2f96a6c490e6  gcc/testsuite/gcc.target/riscv/tlsdesc.c
  76005de0a7c1ca66b1b06de3c53ad1c2  gcc/testsuite/gcc.target/riscv/weak-1.c
  2d691bec54eef9c713895ac9abe32620  gcc/testsuite/gcc.target/riscv/xtheadba-addsl.c
! 32a5c7fa93d0bedb23312a568db82084  gcc/testsuite/gcc.target/riscv/xtheadba.c
! 3d73d12f5806ab636d98d3960443a2c7  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-1.c
! 5432a65ff86086c3de7e7f6c2ef02f8b  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-2.c
! f9fd364aea7901b098788d43d05d6b99  gcc/testsuite/gcc.target/riscv/xtheadbb-ext-3.c
! cba12d46ded4c9403bb902defb379eac  gcc/testsuite/gcc.target/riscv/xtheadbb-ext.c
! 1637ee9a60d6d937103e250dc014f767  gcc/testsuite/gcc.target/riscv/xtheadbb-extu-1.c
  9d2923e1d7956aeb5deea4e6098068f9  gcc/testsuite/gcc.target/riscv/xtheadbb-extu-2.c
! d16afa6f617da6dd6a1fd7af00c2d80b  gcc/testsuite/gcc.target/riscv/xtheadbb-extu.c
  262700746898b570786f228c90322509  gcc/testsuite/gcc.target/riscv/xtheadbb-ff1.c
+ b062b13d157a10dc03540d51fee90017  gcc/testsuite/gcc.target/riscv/xtheadbb-li-rotr.c
  169a6e9cb637657f3fc29f50fb2a13bc  gcc/testsuite/gcc.target/riscv/xtheadbb-rev.c
  48788b4cde5085faf12957bf7364a13e  gcc/testsuite/gcc.target/riscv/xtheadbb-srri.c
! 19524b4c1808563e86b3c484c1627b60  gcc/testsuite/gcc.target/riscv/xtheadbb-strcmp.c
! 2da04aa2919e9c04fd928d0ef7270a64  gcc/testsuite/gcc.target/riscv/xtheadbb-strlen-unaligned.c
! 718d849dd80c84a9a132dd289e32ed9b  gcc/testsuite/gcc.target/riscv/xtheadbb-strlen.c
! 9d68e722bf6fb4119eeff9161acf1e7d  gcc/testsuite/gcc.target/riscv/xtheadbb.c
! 8098147db7f3075c80ec4e8eb8e5e153  gcc/testsuite/gcc.target/riscv/xtheadbs-tst.c
! 4c4408a6a4dd0951e85e08b3aad394a3  gcc/testsuite/gcc.target/riscv/xtheadbs.c
! 7c49322dfb115eb57a3da6f7679e81a0  gcc/testsuite/gcc.target/riscv/xtheadcmo.c
! be339e80c27a0f7acbe2053b43b1da88  gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect.c
! 80807286ef604ac064814c41ff1caf25  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-imm-eqz.c
! dd2e562ea2077be60e5c28445aed14f9  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-imm-not.c
! 852576fdf638609116144efc137b423f  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-reg-eqz.c
! ac5a66ad9852a11dd163242bbbf87a27  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mveqz-reg-not.c
! 2f39df4aa33cb3cedd7d6fc4c6291fb8  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-imm-cond.c
! 491ffeaf4d4389932c61399c8513b380  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-imm-nez.c
! 0cad8fc044fa4ba6de1056ad38c987d6  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-reg-cond.c
! 79a94502ae91e4377deae3018b5e7867  gcc/testsuite/gcc.target/riscv/xtheadcondmov-mvnez-reg-nez.c
! b78310876ebca152cb8df0f7025a391b  gcc/testsuite/gcc.target/riscv/xtheadcondmov.c
! cf842cc60a9adca95f38cf0d4f16fe54  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-update.c
! d1cbe536eae2db873177ca9010a38ec0  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-xtheadbb-update.c
! 4656a5277fdfd762afc3902e1c0e32a7  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index-xtheadbb.c
! 03d844adccbd6199b451024de91ade9a  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-index.c
! ba654d79fdb7809bdc33463d8e489adf  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-medany.c
! 7c72cc4abba2ad4f1c5e292869dacd30  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-update.c
! 5472637e9336a9f6b84cb71f181fc6f0  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-xtheadbb-update.c
! 2025235033d5380b6fc3f159196f1a7d  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-xtheadbb.c
! c64984d0e7397bc5e90a2642f8cd73df  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex-zbb.c
! 7e52d22cb25fb806400bde669af7ab98  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-uindex.c
! 1267d473ccc33ecf7a2578b9e699f4ff  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-without-xtheadmemidx.c
! d3e8387417acfd697084f87e89cad9ec  gcc/testsuite/gcc.target/riscv/xtheadfmemidx.c
! 1fa1c70b0d4ca2c6def4cee8205387aa  gcc/testsuite/gcc.target/riscv/xtheadfmv-fmv.c
! b821f0ad2eeac1930722af7894c79cd4  gcc/testsuite/gcc.target/riscv/xtheadfmv.c
! cce657947a64d5d651a839020ddfc479  gcc/testsuite/gcc.target/riscv/xtheadint-push-pop.c
! 6d0f42b24f31980c5b6817953ef495e5  gcc/testsuite/gcc.target/riscv/xtheadint.c
  2d63440eb714b01d9365d08a0670b2a0  gcc/testsuite/gcc.target/riscv/xtheadmac-mula-muls.c
! 9a7c12c542184d2dd5e4263623386f13  gcc/testsuite/gcc.target/riscv/xtheadmac.c
! d55c08275d7fa0cffa570ef87d1816c1  gcc/testsuite/gcc.target/riscv/xtheadmemidx-helpers.h
! 147e02fe5434acc6307e25c0668249a6  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-update.c
! ff90888d1d7cd88a08722b0d3657d9d8  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-xtheadbb-update.c
! d5b3ff3f41555ec6c3eb8cbe0f93ec66  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index-xtheadbb.c
! da564bb65d198c5852c9de018946be36  gcc/testsuite/gcc.target/riscv/xtheadmemidx-index.c
! 39a03592c3d394bb5962e7054fd8e44b  gcc/testsuite/gcc.target/riscv/xtheadmemidx-inline-asm-1.c
! ceb199a908cf06d455375e1ce2a34e0d  gcc/testsuite/gcc.target/riscv/xtheadmemidx-modify-xtheadbb.c
! 563f80050d97e60d87c252f0fc25252c  gcc/testsuite/gcc.target/riscv/xtheadmemidx-modify.c
! 6e1f0549461388aef49f443459023ab2  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-update.c
! 631ef21d96a8656d5f8e094909570ec6  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-xtheadbb-update.c
! 1029288cb156c86c4e2752bc8b5df9ef  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex-xtheadbb.c
! c237e32478681cca80da1df54e0cd3b8  gcc/testsuite/gcc.target/riscv/xtheadmemidx-uindex.c
! 64106454d45ba17f54ebb4a515c2fbe3  gcc/testsuite/gcc.target/riscv/xtheadmemidx.c
  73d7049a35fb8a305c5e87efe1790c7a  gcc/testsuite/gcc.target/riscv/xtheadmempair-1.c
  b2ee48debb8260ca43eae7a7599d100f  gcc/testsuite/gcc.target/riscv/xtheadmempair-2.c
  68468a87437dcca3d624d91ab036dbfb  gcc/testsuite/gcc.target/riscv/xtheadmempair-3.c
! 1f258a51954c2e4e80f80071ddb48bf9  gcc/testsuite/gcc.target/riscv/xtheadmempair-4.c
! 889791c6de65a76fa5ccc1fde95909c3  gcc/testsuite/gcc.target/riscv/xtheadmempair-interrupt-fcsr.c
! ee08c2f571ce64ba17d57e7f84b4175b  gcc/testsuite/gcc.target/riscv/xtheadmempair.c
! 7bf50312c25a0e57176a93fb1341f30f  gcc/testsuite/gcc.target/riscv/xtheadsync.c
! ada8ab5ecb79eb9a7c676ead41d16895  gcc/testsuite/gcc.target/riscv/xventanacondops-primitiveSemantics-rv32.c
! 645b786f57cf22130bf9547def0c9cd1  gcc/testsuite/gcc.target/riscv/xventanacondops-primitiveSemantics.c
! f686a2e0acc6e52363dfe4de36049ac3  gcc/testsuite/gcc.target/riscv/xventanacondops-xor-01.c
! 03196220920ebbe0453ed99ca42cc633  gcc/testsuite/gcc.target/riscv/za-ext.c
! 50d3b03bdbb051629972056d02a6913f  gcc/testsuite/gcc.target/riscv/zawrs.c
! c365e36104fa71b9d21ff3749043ed59  gcc/testsuite/gcc.target/riscv/zba-adduw.c
! 8ebdc283aea5f958d8df81217669c6cc  gcc/testsuite/gcc.target/riscv/zba-shNadd-01.c
! bd5709f7ce727c9b20e5978f22237e84  gcc/testsuite/gcc.target/riscv/zba-shNadd-02.c
  80c06090d5b9372e4d3b24414a3ac481  gcc/testsuite/gcc.target/riscv/zba-shNadd-03.c
! cf1c8476f01377285a0b1c08de6df67b  gcc/testsuite/gcc.target/riscv/zba-shNadd-04.c
  1456e0b644560b4d55a604c8032c331b  gcc/testsuite/gcc.target/riscv/zba-shNadd-05.c
! b783b3106f46216a8103473a59dd8ea9  gcc/testsuite/gcc.target/riscv/zba-shNadd-07.c
! 7e4c1ee6b9f144dc08101a83a623bb94  gcc/testsuite/gcc.target/riscv/zba-shadd.c
! 0daa57867b25115982a5152975ad2886  gcc/testsuite/gcc.target/riscv/zba-slliuw.c
! 7897a2dc924c5d59e2471445e59414f7  gcc/testsuite/gcc.target/riscv/zba-zextw.c
! e5b7fbdf358cbf214660b7e3b239e748  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-01.c
! e9490e711fc56b6a96c339184a7a19a5  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-02.c
! 1631a0846b45d351dfd85d51d24d1e0a  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-xnor-01.c
! 5dbae90a34a2a69760f83a81cd1339e7  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-xnor-02.c
! 631834ee0d029b2cdbfa2459fe9543fc  gcc/testsuite/gcc.target/riscv/zbb-li-rotr.c
! 3aa6b271c776af41bb52f19f6d2be52b  gcc/testsuite/gcc.target/riscv/zbb-min-max-02.c
! cc6086a551f06fe43ba1143dd3b45a0f  gcc/testsuite/gcc.target/riscv/zbb-min-max-03.c
! 034755623c7d07978a584f1f4a9fca31  gcc/testsuite/gcc.target/riscv/zbb-min-max.c
! 3ef81d36e50eb61cd5acb30a75c2df00  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-01.c
! ae2eedb5d93df4bf4c2298ef65fc68d4  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-02.c
! bffe7cc5c1dc9a4f97053f435e503a6a  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-03.c
! 4829950b97f250012f65e16ec2199802  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-04.c
! 3978332d5a5c28045909f3f9db508676  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-05.c
! 6dac930d7e7bf400b62b72e5a5f3ce97  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-06.c
! be66a8efee5bb47f0acf0cf85631b83b  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-07.c
! 0e4a1c8f198cfbbe115811d47ff89b53  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-08.c
! 62d6d877c54e64570ced9f64a7f2bd50  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-09.c
  53a2faccaffa79bae9f2f156bcae935f  gcc/testsuite/gcc.target/riscv/zbb-srai-andn.c
! 770a29cc025f2d96d9601fc472199cac  gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled-2.c
! 5f57548d10267a3438d1bfd19a00b879  gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled.c
! 39cd0d2fff2cd871b1bd261e7f01daae  gcc/testsuite/gcc.target/riscv/zbb-strcmp-limit.c
! 1350ef111dcde257b735efba57ef8282  gcc/testsuite/gcc.target/riscv/zbb-strcmp-unaligned.c
! 315f8d4c18d81985002703cbd6754682  gcc/testsuite/gcc.target/riscv/zbb-strcmp.c
! 8b7f22d554357b097dcae79bcaa775ec  gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c
! 1088ce5f7228d46e33660268cc8ade55  gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled.c
! 8e8edca342558761cc5e7bd3e83414e3  gcc/testsuite/gcc.target/riscv/zbb-strlen-unaligned.c
! 4d664b3ca953a2d8e9bec646e971f97d  gcc/testsuite/gcc.target/riscv/zbb-strlen.c
! 26d6aedcf36f27ea63ea68fc1d4bb4c0  gcc/testsuite/gcc.target/riscv/zbb_bswap16.c
! d5c7a9b1d5f190302b20c6370674a4b4  gcc/testsuite/gcc.target/riscv/zbkb32.c
! 636ed37a58a0481f433b9198758387cd  gcc/testsuite/gcc.target/riscv/zbkb64.c
! 50ea5319599edb6492278400de823425  gcc/testsuite/gcc.target/riscv/zbs-bclr.c
  e2542c8640613e3201b12054d45b3722  gcc/testsuite/gcc.target/riscv/zbs-bclri-01.c
  e4f42bd193de17a97d6ba4d7cf10116f  gcc/testsuite/gcc.target/riscv/zbs-bclri-02.c
! e0a334990e8f9864fda8dfc4ee86b7b4  gcc/testsuite/gcc.target/riscv/zbs-bclri-nottwobits.c
! 5f20b31a10b4b169d9c9f7bc7afe1d28  gcc/testsuite/gcc.target/riscv/zbs-bext-02.c
! 0089ce94d4ea9deb946d7fa5012b51b7  gcc/testsuite/gcc.target/riscv/zbs-bext.c
  654584dc55d2bdd02192a295a812c13a  gcc/testsuite/gcc.target/riscv/zbs-bexti.c
! ff7d0d3eccd74dfd77d21a8e92e4f028  gcc/testsuite/gcc.target/riscv/zbs-binv.c
  87813769727061c534ee40846fe5d329  gcc/testsuite/gcc.target/riscv/zbs-binvi.c
! 6f65a8d5cedf7c7e78f510c47be32ff9  gcc/testsuite/gcc.target/riscv/zbs-bset.c
  71ca7967e6cbba3fc34380193ec89519  gcc/testsuite/gcc.target/riscv/zbs-bseti-02.c
  c237dae5bf595d65ee7877fe44bac195  gcc/testsuite/gcc.target/riscv/zbs-bseti.c
  3fac61bb61fec1ea6a5b2dc959359036  gcc/testsuite/gcc.target/riscv/zbs-extra-bit-or-twobits.c
  19debc3a04e1393764efad7ab43274c1  gcc/testsuite/gcc.target/riscv/zbs-if_then_else-01.c
! 8fb8cdfdbce79f56e1e73dab457a9db0  gcc/testsuite/gcc.target/riscv/zcmp_push_fpr.c
! 25806d4ad1e3f8088607b230b1652906  gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c
! c44879b540c64dbf6a2e05473063ddca  gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c
! 829633a5f9f6258c60e864d0fe60c378  gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
! 53b5d180c32d0d22d9c56e8bf3531b09  gcc/testsuite/gcc.target/riscv/zero-extend-1.c
! c7f0b0bc511e6e07f7676a7a517b2598  gcc/testsuite/gcc.target/riscv/zero-extend-2.c
! 768d39e82706093e6782b9b6ca0839a5  gcc/testsuite/gcc.target/riscv/zero-extend-3.c
! 9c73d42ba18c59dfba319e31fcf747b5  gcc/testsuite/gcc.target/riscv/zero-extend-4.c
! e2b56564e3774392125177bbc3260fd5  gcc/testsuite/gcc.target/riscv/zero-extend-5.c
  649eab595a8e0cf00b90212069e14aec  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-1.c
! 9012e38894123d1c0cfaefedcf9cfe25  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-2.c
  80fcf7a7c999249b3576e7615985ca93  gcc/testsuite/gcc.target/riscv/zero-scratch-regs-3.c
! 5073ccb25cbfcd6bf12463080dec1451  gcc/testsuite/gcc.target/riscv/zfa-fleq-fltq.c
! 8c897aa4343f8664c09ea0c971390a8e  gcc/testsuite/gcc.target/riscv/zfa-fli-1.c
! f18e7be396fc6c9759c7c51626f68ffb  gcc/testsuite/gcc.target/riscv/zfa-fli-2.c
! d763e196ff3472123c16d333cd899cea  gcc/testsuite/gcc.target/riscv/zfa-fli-3.c
! 3775cac166d79e1247c09c238dc7e9be  gcc/testsuite/gcc.target/riscv/zfa-fli-4.c
! 6a850242aa0e1e9a86879276859df859  gcc/testsuite/gcc.target/riscv/zfa-fli-5.c
! e43e4864a2244fb3b00e929c76690b09  gcc/testsuite/gcc.target/riscv/zfa-fli-6.c
! cdd5d20e1fc21775c962e4ca3af5fc14  gcc/testsuite/gcc.target/riscv/zfa-fli-7.c
! ea829f72cd66a60c972658322a071ce9  gcc/testsuite/gcc.target/riscv/zfa-fli-8.c
! 354abe6f9310cffb1533f21ef4ae0a2b  gcc/testsuite/gcc.target/riscv/zfa-fli-zfh.c
! e82be37f0436ad00489f18e83c73ee62  gcc/testsuite/gcc.target/riscv/zfa-fli.c
! 045dfdb12b4040178f7f664344faf931  gcc/testsuite/gcc.target/riscv/zfa-fmovh-fmovp.c
! a6eb678b1fb0b284ec5d3420187c33ee  gcc/testsuite/gcc.target/riscv/zfa-fround.c
! 9c1e9cf4c25c9ff6edc4eaa677baadf9  gcc/testsuite/gcc.target/riscv/zi-ext.c
! 9e2b7d51508e711792db8a77e0ce0579  gcc/testsuite/gcc.target/riscv/zicond-ice-1.c
! f8f761b2e6d372567e0ea4eb9ae20fb4  gcc/testsuite/gcc.target/riscv/zicond-ice-2.c
! dacfab42ea97fed33fb7af740c4b47e4  gcc/testsuite/gcc.target/riscv/zicond-ice-3.c
! 94a91a5cc4aad6f224fce4f22f429a8c  gcc/testsuite/gcc.target/riscv/zicond-ice-4.c
! 153ab3ba6813f61c0be0789149c07290  gcc/testsuite/gcc.target/riscv/zicond-prefer-add-to-or.c
! 27f58e9e7bf976f6c0afc4e9b1f132c7  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics.c
! ba47b75208cc6c431c72274b32d7fd1d  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_imm.c
! 37fe7e7cc4621471898d44e3f2343f36  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_imm_return_0_imm.c
! 93a43db4f8e43c30a363a6e067a4a37e  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_imm_return_imm_imm.c
! b8f6723972246fcf0c403bc0a4fff8b8  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_imm_return_imm_reg.c
! e92eba08f2739947db68fef062bd932f  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_imm_return_reg_reg.c
! c5e49a277aa6f0a5b9a5eca8c469a469  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg.c
! c0e16418fcba4200f353fc05cb0cb2cd  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg_return_0_imm.c
! 08ba82f98c56bbe8ad4ab57c378fadb7  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg_return_imm_imm.c
! 871a65c271bbf0b6d94aeedf867cb4c3  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg_return_imm_reg.c
! 07b53b223f57d03842d5eabff43c788c  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg_return_reg_reg.c
! e1529a0ad7554cca8abf99b95845847f  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_return_0_imm.c
! 5b469b1340caae43de10cabbdd05f468  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_return_imm_imm.c
! 3f707b6195b0218c912f795070701a76  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_return_imm_reg.c
! f741e193bb3f2f4fbea1bd529b1140b6  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_return_reg_reg.c
! 6ab36e0533ed582948d75c21b09cbf78  gcc/testsuite/gcc.target/riscv/zicond-sfb-primitiveSemantics.c
! a009fbb003840ecc4d7a50c463fa72da  gcc/testsuite/gcc.target/riscv/zicond-xor-01.c
! 7e2d2d4e63580844a236c47de8a815cb  gcc/testsuite/gcc.target/riscv/zicond_ifcvt_opt.c
! bb2b3e0ab01f1ec16e989024621b390a  gcc/testsuite/gcc.target/riscv/zihintpause-1.c
! 2b3fb44b9845e2008eee1f6ba7b44bc4  gcc/testsuite/gcc.target/riscv/zihintpause-2.c
! b93bb61a6adb25211cec61b639273181  gcc/testsuite/gcc.target/riscv/zihintpause-noarch.c
! d96c5cb0ac69fd365634d1203364b2db  gcc/testsuite/gcc.target/riscv/zknd32.c
! 6e2cf258e5cd8bad0c1d9153cdb923ad  gcc/testsuite/gcc.target/riscv/zknd64.c
! 90d1bacbe4e275bfd699a8d6170e616c  gcc/testsuite/gcc.target/riscv/zkne32.c
! 34cfc5ff63e34771c2159195554dd7b0  gcc/testsuite/gcc.target/riscv/zkne64.c
! 52904f2800e86bc22111ab939fd9c7c2  gcc/testsuite/gcc.target/riscv/zksed32.c
! 902c8fbd69ed15c1cec0e54301897602  gcc/testsuite/gcc.target/riscv/zksed64.c
  14c4df6783e1a9e600cb33add7f5b299  gcc/testsuite/gcc.target/riscv/zmmul-1.c
  9259888aac8963bae4c1bf39b62b9034  gcc/testsuite/gcc.target/riscv/zmmul-2.c
! e18c3d4ec96578975ad3829c9fc55f95  gcc/testsuite/gcc.target/riscv/zvbb.c
! a086795acadedf2036189a8d3fba9fbe  gcc/testsuite/gcc.target/riscv/zvbc.c
! 849d817040d200187bf8932657d3bae0  gcc/testsuite/gcc.target/riscv/zvkb.c
! 256b960766e840fd93b3281397be70ba  gcc/testsuite/gcc.target/riscv/zvkg.c
! 696083c83c55b67229990a35164485e5  gcc/testsuite/gcc.target/riscv/zvkn-1.c
! f7dd5829a6ab1f74be9c0262c5d0b109  gcc/testsuite/gcc.target/riscv/zvkn.c
! 884f20b1e3dc687461a9dff8ca7a8ab9  gcc/testsuite/gcc.target/riscv/zvknc-1.c
! 1e0ee2e606bb5f6345c3b73beab06e83  gcc/testsuite/gcc.target/riscv/zvknc-2.c
! 06478f2a1fa8e181d39bf333bef2a85e  gcc/testsuite/gcc.target/riscv/zvknc.c
! 6fde0b1ff2afe49311cdb95b4ae857b3  gcc/testsuite/gcc.target/riscv/zvkned.c
! e829fd4fd00d4c53681ae817037b0a77  gcc/testsuite/gcc.target/riscv/zvkng-1.c
! 52f76326db29f01e365bd6cafde905f6  gcc/testsuite/gcc.target/riscv/zvkng-2.c
! 93a68983886433bfacba731a7a43e69a  gcc/testsuite/gcc.target/riscv/zvkng.c
! 8f29dc0c23e103d48563f65cd7c54cb1  gcc/testsuite/gcc.target/riscv/zvknha.c
! 1ae2b8dc12bc2f2e61a381b8d0104aae  gcc/testsuite/gcc.target/riscv/zvknhb.c
! b2e30be4980db62dce2384f778cae9a4  gcc/testsuite/gcc.target/riscv/zvks-1.c
! 0ba6bf35bde4fa5cc1ce2b167d96ce9b  gcc/testsuite/gcc.target/riscv/zvks.c
! a127c0bdaa56dbbd26223e357a7ba96f  gcc/testsuite/gcc.target/riscv/zvksc-1.c
! 921b73ae8ae8b9437ef5dbccc63fe319  gcc/testsuite/gcc.target/riscv/zvksc-2.c
! 739e984b2a0a7c98e073894aa6aea540  gcc/testsuite/gcc.target/riscv/zvksc.c
! b5674a04914d9a218b9ae7d242ed8c82  gcc/testsuite/gcc.target/riscv/zvksed.c
! 2b420b41068a71e5f4a0f22bba8db3d5  gcc/testsuite/gcc.target/riscv/zvksg-1.c
! 1e90c1d7100354443dbfe494f0746e2f  gcc/testsuite/gcc.target/riscv/zvksg-2.c
! abf3e2e794957159bd0765d2a3fa497e  gcc/testsuite/gcc.target/riscv/zvksg.c
! 119d64b616837a31ef7aab242e3f1bf7  gcc/testsuite/gcc.target/riscv/zvksh.c
! 095108b621068320dfe665f4a12e3187  gcc/testsuite/gcc.target/riscv/zvkt.c
! e7bde96e990ab94c83f6ab683d8d1e07  gcc/testsuite/gcc.target/rl78/rl78.exp
  08a6a665d3a592b70dd51e3b59945801  gcc/testsuite/gcc.target/rl78/test_addm3.c
  f0737b5115c4a94dc1b2f670de5d83a4  gcc/testsuite/gcc.target/rl78/test_addsi3_internal.c
  77b20d827a48683a5d34b36224891ead  gcc/testsuite/gcc.target/rl78/test_auto_vector.c
*************** f0737b5115c4a94dc1b2f670de5d83a4  gcc/te
*** 77440,77451 ****
  327e909c4263a2282a27e2e41d1835af  gcc/testsuite/gcc.target/rx/i272091.c
  150c9e23ee6b580f3ffde8cd62afd908  gcc/testsuite/gcc.target/rx/interrupts.c
  8f38df60724105f3da901d3c1dfa4d9c  gcc/testsuite/gcc.target/rx/mjsr.c
! 121e65ca68c77d3b608bf89704588b04  gcc/testsuite/gcc.target/rx/movsicc.c
  2400785c359089b68fb8051944b2b03f  gcc/testsuite/gcc.target/rx/pack.c
  1854cae6bc69cd8d1d547a850a4e43f0  gcc/testsuite/gcc.target/rx/packed-struct.c
  c141239c428d6f6e368356cbbd1dcdb7  gcc/testsuite/gcc.target/rx/pr83831.c
  853c27a897cefbe98ebdbb934bbedef0  gcc/testsuite/gcc.target/rx/rx-abi-function-tests.c
! 76f826b2ad9567299a4d7d92f48bed81  gcc/testsuite/gcc.target/rx/rx.exp
  e718c4f5bac79651adb4d0396b231953  gcc/testsuite/gcc.target/rx/zero-width-bitfield.c
  2326486bbdc13fa6e49aadd508a1be61  gcc/testsuite/gcc.target/s390/20020926-1.c
  5f66a42e5c40df26aab6aad04c3794e3  gcc/testsuite/gcc.target/s390/20030123-1.c
--- 86148,86166 ----
  327e909c4263a2282a27e2e41d1835af  gcc/testsuite/gcc.target/rx/i272091.c
  150c9e23ee6b580f3ffde8cd62afd908  gcc/testsuite/gcc.target/rx/interrupts.c
  8f38df60724105f3da901d3c1dfa4d9c  gcc/testsuite/gcc.target/rx/mjsr.c
! 8a786437804916b4d90696aa9a48b0f8  gcc/testsuite/gcc.target/rx/movsicc-1.c
! 2cd5e1cae67cb9c0bd9bf944a1ee03cf  gcc/testsuite/gcc.target/rx/movsicc-2.c
! e2f6312cad661f0c804af1141e08f1c2  gcc/testsuite/gcc.target/rx/movsicc-3.c
! 5d2ab128188fbba9e90b2cbea32de864  gcc/testsuite/gcc.target/rx/movsicc-4.c
! ba3b6a8d0fc885a82f22001a150e068d  gcc/testsuite/gcc.target/rx/movsicc-5.c
! 2de2cac73124db3ed0e24a7c805269d7  gcc/testsuite/gcc.target/rx/movsicc-6.c
! 112a892d8633ffafb790c8f5d28eaa4e  gcc/testsuite/gcc.target/rx/movsicc-7.c
! f4dd7a9883421e8a6f9bd88c80d953f3  gcc/testsuite/gcc.target/rx/movsicc-8.c
  2400785c359089b68fb8051944b2b03f  gcc/testsuite/gcc.target/rx/pack.c
  1854cae6bc69cd8d1d547a850a4e43f0  gcc/testsuite/gcc.target/rx/packed-struct.c
  c141239c428d6f6e368356cbbd1dcdb7  gcc/testsuite/gcc.target/rx/pr83831.c
  853c27a897cefbe98ebdbb934bbedef0  gcc/testsuite/gcc.target/rx/rx-abi-function-tests.c
! cb4924f992ea411dc7ee63107ed9b55c  gcc/testsuite/gcc.target/rx/rx.exp
  e718c4f5bac79651adb4d0396b231953  gcc/testsuite/gcc.target/rx/zero-width-bitfield.c
  2326486bbdc13fa6e49aadd508a1be61  gcc/testsuite/gcc.target/s390/20020926-1.c
  5f66a42e5c40df26aab6aad04c3794e3  gcc/testsuite/gcc.target/s390/20030123-1.c
*************** f27f299747d9862a0ca9a3ab3770f1c4  gcc/te
*** 77467,77472 ****
--- 86182,86188 ----
  d69a98eeb9d370fcef146a6f7778c59d  gcc/testsuite/gcc.target/s390/addr-constraints-1.c
  4bbde949a856a0b7fa4b437f375ac7e9  gcc/testsuite/gcc.target/s390/addsub-signed-overflow-1.c
  91db25b7e50eea2c23caebfa790a61fd  gcc/testsuite/gcc.target/s390/addsub-signed-overflow-2.c
+ 9f272b5243eacbb553813a4fb9ed4d5b  gcc/testsuite/gcc.target/s390/aligned-1.c
  3c11c87fade11ee593bffc9c1c6a2755  gcc/testsuite/gcc.target/s390/arch12/aghsghmgh-1.c
  3b48636a43d4d32a34e8f3f193401098  gcc/testsuite/gcc.target/s390/arch12/mul-1.c
  f41fae493f713bf85491d412efd9cebd  gcc/testsuite/gcc.target/s390/arch12/mul-2.c
*************** bf08d8ae3952e5a9f6d75de6c60a3a5f  gcc/te
*** 77481,77486 ****
--- 86197,86204 ----
  062c9cbdb4b33e5a9c45bd579c02df3b  gcc/testsuite/gcc.target/s390/asm-machine-2.c
  46b0c503c4e6198758f37694ae9566d1  gcc/testsuite/gcc.target/s390/asm-machine-3.c
  4ac155357942947a9caec612263831f1  gcc/testsuite/gcc.target/s390/asm-machine-4.c
+ 705a9e97aaf2d837c67542509852ce62  gcc/testsuite/gcc.target/s390/atomic-align-1.c
+ acb0386d8fc9ec46feddca150e92bbeb  gcc/testsuite/gcc.target/s390/atomic-align-2.c
  381808a4590567090c1e800f04ae55f5  gcc/testsuite/gcc.target/s390/bswap-1.c
  2750052bc05f059828b76c05a2a7da2e  gcc/testsuite/gcc.target/s390/bswaphi-1.c
  6837d1a6d1d448c21031e10330351313  gcc/testsuite/gcc.target/s390/builtin-constant-p-threading.c
*************** dadd4dee9243a95c083fd42cf4d1922a  gcc/te
*** 77491,77496 ****
--- 86209,86216 ----
  b72cf28ba3fa5c5fadef0677ef4b7079  gcc/testsuite/gcc.target/s390/call-z9-pic.c
  614a6da85058067be5ae701a10d177ae  gcc/testsuite/gcc.target/s390/call-z9.c
  46b537032825fcf59c9ec689bc2e887b  gcc/testsuite/gcc.target/s390/call.h
+ 7fa7ff4cb4ed845ceff242ecd7754964  gcc/testsuite/gcc.target/s390/ccor.c
+ 5cff53cf309723a01596ee22efde8723  gcc/testsuite/gcc.target/s390/cmp-mem-const-1.c
  34714a3aeb17aaa92176e5d909a9927a  gcc/testsuite/gcc.target/s390/combine-rotate-modulo.c
  bd36d7368fda184d34631ae156b531dc  gcc/testsuite/gcc.target/s390/combine-shift-rotate-add-mod.c
  c5136e0bb58277988b6c8fb48db7921f  gcc/testsuite/gcc.target/s390/dfp-1.c
*************** a839d5b4dfdc130d7192dbbb8c94b959  gcc/te
*** 77560,77567 ****
  8b06781c4e7928abaa22b1af0ecaa1ce  gcc/testsuite/gcc.target/s390/hotpatch-compile-7.c
  26eb8960a9a9a65bcffca89abd64dc02  gcc/testsuite/gcc.target/s390/hotpatch-compile-8.c
  22f3ebd2dbdf464aa5d6c05464ccbff8  gcc/testsuite/gcc.target/s390/hotpatch-compile-9.c
! ac7ad6d9f91b32a565e8783a2ab45f5e  gcc/testsuite/gcc.target/s390/htm-builtins-1.c
! 89990c37e4ebfd77fb40b00d9c5a4d9e  gcc/testsuite/gcc.target/s390/htm-builtins-2.c
  4178b3de1bcb9044aedd4c8ae7af272c  gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c
  c767047b57d5964d4b69c91432d25576  gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c
  ab0f83b02eabb2022df1ceee50ef4733  gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c
--- 86280,86287 ----
  8b06781c4e7928abaa22b1af0ecaa1ce  gcc/testsuite/gcc.target/s390/hotpatch-compile-7.c
  26eb8960a9a9a65bcffca89abd64dc02  gcc/testsuite/gcc.target/s390/hotpatch-compile-8.c
  22f3ebd2dbdf464aa5d6c05464ccbff8  gcc/testsuite/gcc.target/s390/hotpatch-compile-9.c
! 5640c7099ca3d92b253be0f5818b55d8  gcc/testsuite/gcc.target/s390/htm-builtins-1.c
! 2505850d92d099e9f055a497b98e392d  gcc/testsuite/gcc.target/s390/htm-builtins-2.c
  4178b3de1bcb9044aedd4c8ae7af272c  gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c
  c767047b57d5964d4b69c91432d25576  gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c
  ab0f83b02eabb2022df1ceee50ef4733  gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c
*************** d94841af420f4745c433040de2753088  gcc/te
*** 77577,77583 ****
--- 86297,86305 ----
  404116fb6b10d4fe3544c0e8e39a1204  gcc/testsuite/gcc.target/s390/insv-1.c
  7361c2c610e646df57c6d91b57e4689e  gcc/testsuite/gcc.target/s390/insv-2.c
  baa6d1c3d77baf7c1324df7bb6f4f40c  gcc/testsuite/gcc.target/s390/insv-3.c
+ c3e13b2ac420e231a16f2a177383585a  gcc/testsuite/gcc.target/s390/int128load.c
  5ec66e2212ebc6c860d123f507d0b6bc  gcc/testsuite/gcc.target/s390/jump-label.c
+ e24d2c019a37c569a797e81173782052  gcc/testsuite/gcc.target/s390/larl-1.c
  86858e91f5b4dabc479f75228a16d550  gcc/testsuite/gcc.target/s390/leaf-profile.c
  f13fa958f52666320ebd966fc9530e05  gcc/testsuite/gcc.target/s390/litpool-int.c
  25399ee14c48d99597fc401591d68286  gcc/testsuite/gcc.target/s390/litpool-r3-1.c
*************** ebd38103c33d9be1fe39714752582711  gcc/te
*** 77597,77607 ****
  10c6b7fde71de9dd63f0385af3e8bf9a  gcc/testsuite/gcc.target/s390/md/atomic_compare_exchange-1.inc
  48899608a96c6cef698fb830e8be0679  gcc/testsuite/gcc.target/s390/md/atomic_exchange-1.c
  80c910b12aea74c278268b0c8ba833a4  gcc/testsuite/gcc.target/s390/md/movstr-1.c
! 2b57502a789ea6edc3939a3de7e4c926  gcc/testsuite/gcc.target/s390/md/rXsbg_mode_sXl.c
  6e95296e3366c3932f1913e37dcc3607  gcc/testsuite/gcc.target/s390/md/setmem_long-1.c
  adbd0d014149216279bbf1880740592a  gcc/testsuite/gcc.target/s390/memcpy-1.c
  bb08fa1f6627522f43f5fe89dadd04a3  gcc/testsuite/gcc.target/s390/memcpy-2.c
! 94c8e6b5aae7ae391974bc5a7e1a6f4c  gcc/testsuite/gcc.target/s390/memset-1.c
  a57f54483446dc5f464df08f79495bf7  gcc/testsuite/gcc.target/s390/memset-2.c
  f1f16081b0ad5b5a36f15cad87905e5a  gcc/testsuite/gcc.target/s390/mfentry-m64-pic.c
  c754a4515598fececb1e5306e99940eb  gcc/testsuite/gcc.target/s390/mfentry-m64.c
--- 86319,86329 ----
  10c6b7fde71de9dd63f0385af3e8bf9a  gcc/testsuite/gcc.target/s390/md/atomic_compare_exchange-1.inc
  48899608a96c6cef698fb830e8be0679  gcc/testsuite/gcc.target/s390/md/atomic_exchange-1.c
  80c910b12aea74c278268b0c8ba833a4  gcc/testsuite/gcc.target/s390/md/movstr-1.c
! fd6dbe244d7d1dd37934c72fe543d094  gcc/testsuite/gcc.target/s390/md/rXsbg_mode_sXl.c
  6e95296e3366c3932f1913e37dcc3607  gcc/testsuite/gcc.target/s390/md/setmem_long-1.c
  adbd0d014149216279bbf1880740592a  gcc/testsuite/gcc.target/s390/memcpy-1.c
  bb08fa1f6627522f43f5fe89dadd04a3  gcc/testsuite/gcc.target/s390/memcpy-2.c
! 84d314e67d3028d76f4ee121cbfb0fc8  gcc/testsuite/gcc.target/s390/memset-1.c
  a57f54483446dc5f464df08f79495bf7  gcc/testsuite/gcc.target/s390/memset-2.c
  f1f16081b0ad5b5a36f15cad87905e5a  gcc/testsuite/gcc.target/s390/mfentry-m64-pic.c
  c754a4515598fececb1e5306e99940eb  gcc/testsuite/gcc.target/s390/mfentry-m64.c
*************** b65b6b60679fe5fe589b83fa813950ac  gcc/te
*** 77655,77660 ****
--- 86377,86383 ----
  7768189c94023d287d68251021ad2dee  gcc/testsuite/gcc.target/s390/pr106355-2.c
  a69e5256407f09ac05e2e19ea14c9e15  gcc/testsuite/gcc.target/s390/pr106355-3.c
  5680e7515cb52b85f38e10b48d5e6a75  gcc/testsuite/gcc.target/s390/pr106355.h
+ 3037fa7dfb434ad8be9522e919ab6d65  gcc/testsuite/gcc.target/s390/pr112753.c
  765307a040de72f2f4376b7068d68018  gcc/testsuite/gcc.target/s390/pr20927.c
  85f31fb9b4b15529205376d3f6fa385c  gcc/testsuite/gcc.target/s390/pr24624.c
  7adacbd67601dc0845e556e5632cd718  gcc/testsuite/gcc.target/s390/pr27661.c
*************** b379cd03e188ebd20fb6bfd9e811a8f6  gcc/te
*** 77692,77698 ****
  a03e4e232422d0ea849b2eedc43f53bf  gcc/testsuite/gcc.target/s390/pr92176.c
  237f9f610e9777421f3c0dff930eec8b  gcc/testsuite/gcc.target/s390/pr93533.c
  f4792ece0a0aff8add8968cae67374ad  gcc/testsuite/gcc.target/s390/pr93908.c
! 53835a03139e2bcd11999485760c0936  gcc/testsuite/gcc.target/s390/pr96127.c
  f1116dd01874e965a113345275e6310a  gcc/testsuite/gcc.target/s390/pr96456.c
  26a9015200103b2f0617d5672b91a902  gcc/testsuite/gcc.target/s390/pr97497.c
  45d0019f5b3d0e18a69edbc1595f0798  gcc/testsuite/gcc.target/s390/pr99663.c
--- 86415,86421 ----
  a03e4e232422d0ea849b2eedc43f53bf  gcc/testsuite/gcc.target/s390/pr92176.c
  237f9f610e9777421f3c0dff930eec8b  gcc/testsuite/gcc.target/s390/pr93533.c
  f4792ece0a0aff8add8968cae67374ad  gcc/testsuite/gcc.target/s390/pr93908.c
! 3f8f04ec1c0947d2910f109714d37d98  gcc/testsuite/gcc.target/s390/pr96127.c
  f1116dd01874e965a113345275e6310a  gcc/testsuite/gcc.target/s390/pr96456.c
  26a9015200103b2f0617d5672b91a902  gcc/testsuite/gcc.target/s390/pr97497.c
  45d0019f5b3d0e18a69edbc1595f0798  gcc/testsuite/gcc.target/s390/pr99663.c
*************** c638a86bd5bf24acab1490492cbfb557  gcc/te
*** 77706,77712 ****
  532ff931ad8bf62f60b08b1f9261827a  gcc/testsuite/gcc.target/s390/risbg-ll-2.c
  abd82e72aa14d30ef649fb88b2856d0d  gcc/testsuite/gcc.target/s390/risbg-ll-3.c
  6c330cfc80a0f60d042947448413d011  gcc/testsuite/gcc.target/s390/rotate-truncation-mask.c
! e00763e8b5d7461b62c7efb571facc37  gcc/testsuite/gcc.target/s390/s390.exp
  970ac972bfd816dae5f8b5705abd8ab6  gcc/testsuite/gcc.target/s390/section-anchors.c
  2e57c7c23cac49a65eb61077317a2f1b  gcc/testsuite/gcc.target/s390/section-anchors2.c
  78c4d933475e58d55d22ab5b46b27884  gcc/testsuite/gcc.target/s390/section-anchors3.c
--- 86429,86435 ----
  532ff931ad8bf62f60b08b1f9261827a  gcc/testsuite/gcc.target/s390/risbg-ll-2.c
  abd82e72aa14d30ef649fb88b2856d0d  gcc/testsuite/gcc.target/s390/risbg-ll-3.c
  6c330cfc80a0f60d042947448413d011  gcc/testsuite/gcc.target/s390/rotate-truncation-mask.c
! 98c3b60701e00a14700f8953eabba261  gcc/testsuite/gcc.target/s390/s390.exp
  970ac972bfd816dae5f8b5705abd8ab6  gcc/testsuite/gcc.target/s390/section-anchors.c
  2e57c7c23cac49a65eb61077317a2f1b  gcc/testsuite/gcc.target/s390/section-anchors2.c
  78c4d933475e58d55d22ab5b46b27884  gcc/testsuite/gcc.target/s390/section-anchors3.c
*************** c5750a32146f25558a5ce74ab9b1e358  gcc/te
*** 77729,77734 ****
--- 86452,86458 ----
  c41a415d34916c316aaec966296bc30f  gcc/testsuite/gcc.target/s390/target-attribute/tattr-16.c
  ab41e62f799930f1b6f0e834307da9de  gcc/testsuite/gcc.target/s390/target-attribute/tattr-17.c
  e656fe83d6974c0e9d138c775968b72a  gcc/testsuite/gcc.target/s390/target-attribute/tattr-2.c
+ aebe0fa5afd715c46dcc5e8ecf5d787a  gcc/testsuite/gcc.target/s390/target-attribute/tattr-2b.c
  5a5b80485488402f441e3b7be02b29cf  gcc/testsuite/gcc.target/s390/target-attribute/tattr-3.c
  5ef21678d2edcc23ae3d8d50c9da8e57  gcc/testsuite/gcc.target/s390/target-attribute/tattr-4.c
  f12dc7eaae3dadecaee7047d76730207  gcc/testsuite/gcc.target/s390/target-attribute/tattr-5.c
*************** b5c026b313e7e579c58d749f8ff8ab28  gcc/te
*** 77810,77815 ****
--- 86534,86540 ----
  69c2f8e3f1d02b9f005713af50f678a4  gcc/testsuite/gcc.target/s390/tls.c
  d0f7e6beee3ecb181246a2372324af7e  gcc/testsuite/gcc.target/s390/tls.h
  e018d4fe07e1701b88d0469006781862  gcc/testsuite/gcc.target/s390/umul-wide.c
+ 3095d4efb3461cf2dfc79a3037839336  gcc/testsuite/gcc.target/s390/unaligned-1.c
  daf32d359b4f5080aef58859b29870b9  gcc/testsuite/gcc.target/s390/vector/align-1.c
  6bf626314f1db50adc71184824f22bba  gcc/testsuite/gcc.target/s390/vector/align-2.c
  37d2afe5f257fe6c269b2baa787ffe41  gcc/testsuite/gcc.target/s390/vector/combine-shift-vec.c
*************** ca2326bfc2b9007e3b63b0bea8890a00  gcc/te
*** 77920,77925 ****
--- 86645,86657 ----
  e75326d3bdf5a961413690c8fac7722a  gcc/testsuite/gcc.target/s390/vector/perm-vpdi.c
  c9919c66d15a72dcfc7be8b1d30e4de1  gcc/testsuite/gcc.target/s390/vector/pr92950.c
  f37bb3697d3b5ebfcad463b8e97a87bb  gcc/testsuite/gcc.target/s390/vector/pr96128.c
+ d8d373b959e09f57e68f224d8b198e24  gcc/testsuite/gcc.target/s390/vector/reverse-elements-1.c
+ 5d70399b0d77bec3a0ceab2dba10b503  gcc/testsuite/gcc.target/s390/vector/reverse-elements-2.c
+ 7c42e90b66cabcd388552991dbf63786  gcc/testsuite/gcc.target/s390/vector/reverse-elements-3.c
+ c40aabedd52e7c4b3c11eb7052093bc1  gcc/testsuite/gcc.target/s390/vector/reverse-elements-4.c
+ ea3b57216ea033ce23740807f2bca685  gcc/testsuite/gcc.target/s390/vector/reverse-elements-5.c
+ 02cc60ea851f14013bd87b0930013b01  gcc/testsuite/gcc.target/s390/vector/reverse-elements-6.c
+ 3894aa4ff09df918e5faf257ac5be6f5  gcc/testsuite/gcc.target/s390/vector/reverse-elements-7.c
  f8ddf98d23fed8fdb81fc0b6b8a34fa4  gcc/testsuite/gcc.target/s390/vector/stpcpy-1.c
  79d159920f787c25a63fedb37633653d  gcc/testsuite/gcc.target/s390/vector/vcond-mixed-double.c
  b2c713823b2df17078c09edbeb492644  gcc/testsuite/gcc.target/s390/vector/vcond-mixed-float.c
*************** dd0d54001d5c0c89de9ecbfeca7d9163  gcc/te
*** 77943,77957 ****
--- 86675,86692 ----
  18a30b21905501cfe3b583c13b3c756a  gcc/testsuite/gcc.target/s390/vector/vec-clobber-1.c
  f4f003702feb568dbc88ed411b2783e9  gcc/testsuite/gcc.target/s390/vector/vec-cmp-1.c
  6ad5106106095fa0defa7e045850f1a6  gcc/testsuite/gcc.target/s390/vector/vec-cmp-2.c
+ 3dea3f0d6272507210edfbf3ebbcbaee  gcc/testsuite/gcc.target/s390/vector/vec-cmpge.c
  836ebd984394712bf83085d3675ab39b  gcc/testsuite/gcc.target/s390/vector/vec-copysign-execute.c
  b2d0a0fe9bc2bcd1f0cf523b66f2c66f  gcc/testsuite/gcc.target/s390/vector/vec-copysign.c
  9c5a93306d2612b0adf7c1ca5650d94d  gcc/testsuite/gcc.target/s390/vector/vec-dbl-math-compile-1.c
+ 2dc59b8a133b416b4b70cb7e1ceff54c  gcc/testsuite/gcc.target/s390/vector/vec-expand-replicate.c
  b015126e7fb7ce82a8d5140428c4e192  gcc/testsuite/gcc.target/s390/vector/vec-genbytemask-1.c
  56c4b1af3959c56145108f2f9535cc8f  gcc/testsuite/gcc.target/s390/vector/vec-genbytemask-2.c
  f6942a3fba9c800bffade3bb79196479  gcc/testsuite/gcc.target/s390/vector/vec-genmask-1.c
  283b6978739165f436839fd30df4e9a4  gcc/testsuite/gcc.target/s390/vector/vec-genmask-2.c
  1afa4a6190a988fb5a4fad356fbdd30d  gcc/testsuite/gcc.target/s390/vector/vec-init-1.c
  2c26f350a22588870ab9a7eca3102f56  gcc/testsuite/gcc.target/s390/vector/vec-init-2.c
+ 7d8a2a5d26b13c07f6024709aedd0742  gcc/testsuite/gcc.target/s390/vector/vec-init-3.c
  03cc140b84b037d2fe9c9c0be079e135  gcc/testsuite/gcc.target/s390/vector/vec-int-math-compile-1.c
  3f0e273f04c5175b1fdb100976e981c6  gcc/testsuite/gcc.target/s390/vector/vec-nopeel-1.c
  36edbd8af8f3368a9b83ac5c88068cfc  gcc/testsuite/gcc.target/s390/vector/vec-nopeel-2.c
*************** b285e00f64be083356e248425ad42f69  gcc/te
*** 77967,77974 ****
  6a26b9ab98b26ffa11b6e80dd969b1d9  gcc/testsuite/gcc.target/s390/vector/vperm-rev-z15.c
  9fc90b732df663117f1ed481b91525c3  gcc/testsuite/gcc.target/s390/vxe/bitops-1.c
  81fd996600cd4355d2efb4f18bd9a019  gcc/testsuite/gcc.target/s390/vxe/negfma-1.c
! d9c7cdb9278996c3e1dfb12b0fea17bd  gcc/testsuite/gcc.target/s390/vxe/popcount-1.c
  9fac5c4be550f2336dbb8ee22a9db221  gcc/testsuite/gcc.target/s390/vxe/vllezlf-1.c
  dc95f2902df894907c8cd4f00960f509  gcc/testsuite/gcc.target/s390/warn-dynamicstack-1.c
  2bdca9d8b8f8e9f0aa4cc4029ce548d1  gcc/testsuite/gcc.target/s390/zero-scratch-regs-1.c
  7c087406872c6516a684c368993dcfea  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-eq.c
--- 86702,86712 ----
  6a26b9ab98b26ffa11b6e80dd969b1d9  gcc/testsuite/gcc.target/s390/vector/vperm-rev-z15.c
  9fc90b732df663117f1ed481b91525c3  gcc/testsuite/gcc.target/s390/vxe/bitops-1.c
  81fd996600cd4355d2efb4f18bd9a019  gcc/testsuite/gcc.target/s390/vxe/negfma-1.c
! 85b5b9401d5ec3648501e2964032b8eb  gcc/testsuite/gcc.target/s390/vxe/popcount-1.c
  9fac5c4be550f2336dbb8ee22a9db221  gcc/testsuite/gcc.target/s390/vxe/vllezlf-1.c
+ 033a2c21a5b436ea0be85925b64ad636  gcc/testsuite/gcc.target/s390/vxe2/vlbr-1.c
+ 4867ef0206fcafa68e9f50126f9f6acc  gcc/testsuite/gcc.target/s390/vxe2/vstbr-1.c
+ e9c716b3b95aa7f755d2ffbc70fef96d  gcc/testsuite/gcc.target/s390/vxe2/vstbr-2.c
  dc95f2902df894907c8cd4f00960f509  gcc/testsuite/gcc.target/s390/warn-dynamicstack-1.c
  2bdca9d8b8f8e9f0aa4cc4029ce548d1  gcc/testsuite/gcc.target/s390/zero-scratch-regs-1.c
  7c087406872c6516a684c368993dcfea  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-eq.c
*************** cff015e0826212242aca87d52202da4b  gcc/te
*** 77981,77987 ****
  bf463ecf5d2c2f224b5d2b86f9a93497  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-unordered.c
  b8420772bf28568b3da111bdba2a4f48  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq-z13-finite.c
  5bbb01fa22ec78e47839a2ad680a77f7  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq-z13.c
! c0c46d14226c058b888766e3cd3ff439  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c
  7fc4f6a1e3be890cf53a0b021c848228  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge-z13-finite.c
  42cf60f684f6ea0a28f435b783b0aba8  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge-z13.c
  e92f463f13af77ed117cce7d01e42120  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge.c
--- 86719,86725 ----
  bf463ecf5d2c2f224b5d2b86f9a93497  gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-unordered.c
  b8420772bf28568b3da111bdba2a4f48  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq-z13-finite.c
  5bbb01fa22ec78e47839a2ad680a77f7  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq-z13.c
! c476c802be2369c60be9a00406810ba0  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-eq.c
  7fc4f6a1e3be890cf53a0b021c848228  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge-z13-finite.c
  42cf60f684f6ea0a28f435b783b0aba8  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge-z13.c
  e92f463f13af77ed117cce7d01e42120  gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ge.c
*************** dfdee22bbb3d3831391e4ca7b47d8e38  gcc/te
*** 78009,78015 ****
  f902cd7f9c25180b19317cc4af17108d  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-ordered.c
  b1f026c618513126d1fae644fa441dac  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-uneq.c
  31fec9af8c96f88d045d2b2a32617a08  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-unordered.c
! 63f178895412f3d494e5444d38221203  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c
  69b3c3664eb5ceccdfb73e846e55eb99  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-ge.c
  92a75f2ec1fa3a4cdee2c400db21e2f1  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-gt.c
  b7d0c4fabbe822201ba834f5ab319e26  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-le.c
--- 86747,86753 ----
  f902cd7f9c25180b19317cc4af17108d  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-ordered.c
  b1f026c618513126d1fae644fa441dac  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-uneq.c
  31fec9af8c96f88d045d2b2a32617a08  gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-unordered.c
! 6f57ec063264fec8decb03c1a5b79da6  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-eq.c
  69b3c3664eb5ceccdfb73e846e55eb99  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-ge.c
  92a75f2ec1fa3a4cdee2c400db21e2f1  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-gt.c
  b7d0c4fabbe822201ba834f5ab319e26  gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-le.c
*************** c388e8e709c00e2cb14b83a7bcb1db96  gcc/te
*** 78027,78032 ****
--- 86765,86771 ----
  35e87e60957f9b00691107426abfa992  gcc/testsuite/gcc.target/s390/zvector/get-element-bswap-3.c
  4abdf0afcb959d37baa8b81d5308c265  gcc/testsuite/gcc.target/s390/zvector/get-element-bswap-4.c
  13199189797f1cfdb8952aba604e6159  gcc/testsuite/gcc.target/s390/zvector/imm-range-error-1.c
+ d1469ef79e7de046a5a0d7120bc3edf4  gcc/testsuite/gcc.target/s390/zvector/pr114676.c
  7d0eb00954092ab19d710323c872dd2a  gcc/testsuite/gcc.target/s390/zvector/pr79893.c
  8bc7e55288af53eddbd5437d08f5f9a1  gcc/testsuite/gcc.target/s390/zvector/pr82317.c
  c5f2f4df3f7c11977663ad182d69c2a7  gcc/testsuite/gcc.target/s390/zvector/pr82322.c
*************** a7f2bd9fee8c03add8265ce21e47cb8f  gcc/te
*** 78054,78061 ****
  f0adb63cec7e7cc8928e697e9eb9fc6c  gcc/testsuite/gcc.target/s390/zvector/vec-genmask-1.c
  9623479451ea4dfc950b385aedacab2e  gcc/testsuite/gcc.target/s390/zvector/vec-lcbb-1.c
  f4cb204998e87c077c80c605602192e6  gcc/testsuite/gcc.target/s390/zvector/vec-load_bndry-1.c
! a750da63777ec07e0c7f4757360530e7  gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c
! 70d4f044574c07888ead605011290e1c  gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c
  e2f2ea830e74b4c8c94ca5bab8f72248  gcc/testsuite/gcc.target/s390/zvector/vec-overloading-1.c
  cf17f23d62e2e5c79ef622e98e08a8f2  gcc/testsuite/gcc.target/s390/zvector/vec-overloading-2.c
  3301b86cb9834aa02c533b9ea8925330  gcc/testsuite/gcc.target/s390/zvector/vec-overloading-3.c
--- 86793,86800 ----
  f0adb63cec7e7cc8928e697e9eb9fc6c  gcc/testsuite/gcc.target/s390/zvector/vec-genmask-1.c
  9623479451ea4dfc950b385aedacab2e  gcc/testsuite/gcc.target/s390/zvector/vec-lcbb-1.c
  f4cb204998e87c077c80c605602192e6  gcc/testsuite/gcc.target/s390/zvector/vec-load_bndry-1.c
! b8c82bd9c3e4fcce2e4a5f465a78b6be  gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c
! a01dcd763c4ce4debb0f144294fb26db  gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c
  e2f2ea830e74b4c8c94ca5bab8f72248  gcc/testsuite/gcc.target/s390/zvector/vec-overloading-1.c
  cf17f23d62e2e5c79ef622e98e08a8f2  gcc/testsuite/gcc.target/s390/zvector/vec-overloading-2.c
  3301b86cb9834aa02c533b9ea8925330  gcc/testsuite/gcc.target/s390/zvector/vec-overloading-3.c
*************** e5b6f6b47da7c1724c74cbc511588e69  gcc/te
*** 78067,78074 ****
  3ff4520f82a1a67ee26a8e30a7f5155e  gcc/testsuite/gcc.target/s390/zvector/vec-reve-int-long.c
  9d5b0bc6ab229b03ed70b1e551d88310  gcc/testsuite/gcc.target/s390/zvector/vec-reve-load-byte-z14.c
  a6d8e1ac749bd175b644a04f66ec89f2  gcc/testsuite/gcc.target/s390/zvector/vec-reve-load-byte.c
! ff51731fc9b3fa6372a6d6eaaaef2a63  gcc/testsuite/gcc.target/s390/zvector/vec-reve-load-halfword-z14.c
! bbfd12d94a6ec1d60c1cafa0ff1f2823  gcc/testsuite/gcc.target/s390/zvector/vec-reve-load-halfword.c
  c45c3b740eeb61e0c5f07c87f891fd13  gcc/testsuite/gcc.target/s390/zvector/vec-reve-store-byte-z14.c
  c0469f7e53dc343cc6621e4f03217d37  gcc/testsuite/gcc.target/s390/zvector/vec-reve-store-byte.c
  34bb8f4f396fce6fd98e6cb7806be80e  gcc/testsuite/gcc.target/s390/zvector/vec-search-string-cc-1.c
--- 86806,86813 ----
  3ff4520f82a1a67ee26a8e30a7f5155e  gcc/testsuite/gcc.target/s390/zvector/vec-reve-int-long.c
  9d5b0bc6ab229b03ed70b1e551d88310  gcc/testsuite/gcc.target/s390/zvector/vec-reve-load-byte-z14.c
  a6d8e1ac749bd175b644a04f66ec89f2  gcc/testsuite/gcc.target/s390/zvector/vec-reve-load-byte.c
! 1bb9f5a6b4197253523bc4ff4d67b002  gcc/testsuite/gcc.target/s390/zvector/vec-reve-load-halfword-z14.c
! cbbbe509fa694d8dc44571989824ef2b  gcc/testsuite/gcc.target/s390/zvector/vec-reve-load-halfword.c
  c45c3b740eeb61e0c5f07c87f891fd13  gcc/testsuite/gcc.target/s390/zvector/vec-reve-store-byte-z14.c
  c0469f7e53dc343cc6621e4f03217d37  gcc/testsuite/gcc.target/s390/zvector/vec-reve-store-byte.c
  34bb8f4f396fce6fd98e6cb7806be80e  gcc/testsuite/gcc.target/s390/zvector/vec-search-string-cc-1.c
*************** fca18383b3db4c77fba6885b30964e40  gcc/te
*** 78084,78098 ****
  f9fc274321010fadf7fa7d7821f483f8  gcc/testsuite/gcc.target/s390/zvector/vec-test-mask-1.c
  e0da366fde5ff03e522992859eec8edf  gcc/testsuite/gcc.target/s390/zvector/vec-types.h
  e06b075af962a2fe7d1a02398d455fc2  gcc/testsuite/gcc.target/s390/zvector/vec-unsigned-compile.c
! b9c6bcee82fb4ed0a2118354fedcd0c6  gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c
! ebd35d756a4e23707b277693c56c4a19  gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c
! 2d31aa34eca68bbda85823c8736053af  gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c
! f1c2e8dded3f10ca36b5f0c5430e9653  gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c
  2d9e9f903e81aed0180760d894c8745d  gcc/testsuite/gcc.target/s390/zvector/vec_load_len_r.c
  74fb02612e4d4afb1f16866f9eb48296  gcc/testsuite/gcc.target/s390/zvector/vec_merge.c
  69eb84e54221a1d1fc9845617f6a3dec  gcc/testsuite/gcc.target/s390/zvector/vec_msum_u128-1.c
  2dfb832caec16354a7b46808b92c4ea4  gcc/testsuite/gcc.target/s390/zvector/vec_permi.c
! 389b010c6f698ce8502e96a6651816cd  gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c
  102cee60e67c5b5fab8868fd4d4ac10e  gcc/testsuite/gcc.target/s390/zvector/vec_sel-1.c
  01f95199a25e26b73f9c541731732079  gcc/testsuite/gcc.target/s390/zvector/vec_store_len_r.c
  c9c377c12e8e370ccdc50badddb742a9  gcc/testsuite/gcc.target/s390/zvector/xl-xst-align-1.c
--- 86823,86837 ----
  f9fc274321010fadf7fa7d7821f483f8  gcc/testsuite/gcc.target/s390/zvector/vec-test-mask-1.c
  e0da366fde5ff03e522992859eec8edf  gcc/testsuite/gcc.target/s390/zvector/vec-types.h
  e06b075af962a2fe7d1a02398d455fc2  gcc/testsuite/gcc.target/s390/zvector/vec-unsigned-compile.c
! 271e1690cb42f88d72be825e0a68ac90  gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c
! beaac8cfdf2fc1e60d1e3f5f639f5766  gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c
! 5be30538ebf9aa48941e001eca8d8203  gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c
! 8e5869ce2391428521c425758a2703d1  gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c
  2d9e9f903e81aed0180760d894c8745d  gcc/testsuite/gcc.target/s390/zvector/vec_load_len_r.c
  74fb02612e4d4afb1f16866f9eb48296  gcc/testsuite/gcc.target/s390/zvector/vec_merge.c
  69eb84e54221a1d1fc9845617f6a3dec  gcc/testsuite/gcc.target/s390/zvector/vec_msum_u128-1.c
  2dfb832caec16354a7b46808b92c4ea4  gcc/testsuite/gcc.target/s390/zvector/vec_permi.c
! e1654f243eda0506dca87c86d5a0dc65  gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c
  102cee60e67c5b5fab8868fd4d4ac10e  gcc/testsuite/gcc.target/s390/zvector/vec_sel-1.c
  01f95199a25e26b73f9c541731732079  gcc/testsuite/gcc.target/s390/zvector/vec_store_len_r.c
  c9c377c12e8e370ccdc50badddb742a9  gcc/testsuite/gcc.target/s390/zvector/xl-xst-align-1.c
*************** db7a02bef0ea1d74a99297c9ee53c525  gcc/te
*** 78273,78279 ****
  b5f624677b85b090003118209ef93244  gcc/testsuite/gcc.target/sh/rte-delay-slot.c
  dadf2783f39a6e7573222cafcc2dee03  gcc/testsuite/gcc.target/sh/sh-relax-vxworks.c
  e21f6ad0f71c5acbd58d0b5dc9016512  gcc/testsuite/gcc.target/sh/sh-relax.c
! 65a9e687096eadf21628b6f6e36f1e8d  gcc/testsuite/gcc.target/sh/sh.exp
  76c4b37de6ed467c955dc2c4e605bd74  gcc/testsuite/gcc.target/sh/sh2a-band.c
  6ca867fd045b678140e16f1d2034e672  gcc/testsuite/gcc.target/sh/sh2a-bclr.c
  65b6c86dd5734b5e9047d04326b96065  gcc/testsuite/gcc.target/sh/sh2a-bclrmem.c
--- 87012,87018 ----
  b5f624677b85b090003118209ef93244  gcc/testsuite/gcc.target/sh/rte-delay-slot.c
  dadf2783f39a6e7573222cafcc2dee03  gcc/testsuite/gcc.target/sh/sh-relax-vxworks.c
  e21f6ad0f71c5acbd58d0b5dc9016512  gcc/testsuite/gcc.target/sh/sh-relax.c
! 6680d38cac8cf5ca5100ffcb5ff26a49  gcc/testsuite/gcc.target/sh/sh.exp
  76c4b37de6ed467c955dc2c4e605bd74  gcc/testsuite/gcc.target/sh/sh2a-band.c
  6ca867fd045b678140e16f1d2034e672  gcc/testsuite/gcc.target/sh/sh2a-bclr.c
  65b6c86dd5734b5e9047d04326b96065  gcc/testsuite/gcc.target/sh/sh2a-bclrmem.c
*************** a2644837d5da1aa36c1bcfeab14bd34b  gcc/te
*** 78312,78318 ****
  b238f0c893c816effc7e00714687e793  gcc/testsuite/gcc.target/sh/torture/pr70416.c
  f2da248599c9251df57c4afab66c5b3d  gcc/testsuite/gcc.target/sh/torture/pragma-isr.c
  e59de62c79e4620b848baee27d159b9c  gcc/testsuite/gcc.target/sh/torture/pragma-isr2.c
! 9f931cdc0eefb8fb14994f8e0081501f  gcc/testsuite/gcc.target/sh/torture/sh-torture.exp
  7fafc38036a01faa4f72f34d7eaaad89  gcc/testsuite/gcc.target/sh/torture/strncmp.c
  d8726234ff72b0fa25ab40cc3fe6d24b  gcc/testsuite/gcc.target/sparc/20001013-1.c
  d0d646cfe216eb6e3c43fb56cb548ea0  gcc/testsuite/gcc.target/sparc/20001101-1.c
--- 87051,87057 ----
  b238f0c893c816effc7e00714687e793  gcc/testsuite/gcc.target/sh/torture/pr70416.c
  f2da248599c9251df57c4afab66c5b3d  gcc/testsuite/gcc.target/sh/torture/pragma-isr.c
  e59de62c79e4620b848baee27d159b9c  gcc/testsuite/gcc.target/sh/torture/pragma-isr2.c
! af85dfe7bc8195b5b1ed075028b23ba5  gcc/testsuite/gcc.target/sh/torture/sh-torture.exp
  7fafc38036a01faa4f72f34d7eaaad89  gcc/testsuite/gcc.target/sh/torture/strncmp.c
  d8726234ff72b0fa25ab40cc3fe6d24b  gcc/testsuite/gcc.target/sparc/20001013-1.c
  d0d646cfe216eb6e3c43fb56cb548ea0  gcc/testsuite/gcc.target/sparc/20001101-1.c
*************** bf95d536cbad4db92f264aa740abbbbc  gcc/te
*** 78335,78340 ****
--- 87074,87081 ----
  c2f3fa5b3477e7057e2c90dc5425c4c9  gcc/testsuite/gcc.target/sparc/20230328-2.c
  49b5e11c8a86f6c891f68583037323b4  gcc/testsuite/gcc.target/sparc/20230328-3.c
  6a7256be670eb611556c4ac0a711fa1b  gcc/testsuite/gcc.target/sparc/20230328-4.c
+ beb5f32bbfe67092637981daab63c0e9  gcc/testsuite/gcc.target/sparc/20230425-1.c
+ 1873266d62e690e552ba3673802f1527  gcc/testsuite/gcc.target/sparc/20230607-1.c
  44373c57181608413fc07f3ec0e2ad6e  gcc/testsuite/gcc.target/sparc/align.c
  667a877a2fb02d919c4eaaea6fbccbad  gcc/testsuite/gcc.target/sparc/array.c
  941bd8aa096c3c20415035d9d17cca6e  gcc/testsuite/gcc.target/sparc/attr-aligned.c
*************** d0fc65bbbe891276a96818aa810ee61a  gcc/te
*** 78417,78423 ****
  115b647bf08ed17e4f28d76c34f417bb  gcc/testsuite/gcc.target/sparc/pdistn.c
  7eb4e93dbabd079b5259cf98c5fb4204  gcc/testsuite/gcc.target/sparc/popc-1.c
  e748c6edab5b1a7e97c92b57040f0ecd  gcc/testsuite/gcc.target/sparc/popc-2.c
- ee8bafaf89e1dcb977b15feaf7dfe2cb  gcc/testsuite/gcc.target/sparc/pr109541.c
  964da12c74afacebb3dee347712053d5  gcc/testsuite/gcc.target/sparc/rdgsr.c
  91c110264bcd29879216c151973503aa  gcc/testsuite/gcc.target/sparc/setcc-1.c
  7ab7d3127e0b418280e16e393fd2f160  gcc/testsuite/gcc.target/sparc/setcc-2.c
--- 87158,87163 ----
*************** e5c267912e5c8f2e18ebb9ce814789ba  gcc/te
*** 78430,78435 ****
--- 87170,87176 ----
  c51a16c76fd1df5c182c5e6b77d1acfa  gcc/testsuite/gcc.target/sparc/setcc-9.c
  03c5ea18421389015716cf5cd2845cf3  gcc/testsuite/gcc.target/sparc/setjmp-1.c
  438ea8b2cc3dd028f6b33b12541b2b7f  gcc/testsuite/gcc.target/sparc/sibcall-dslot.c
+ b7889b31cd2ce76e65842ca26b253777  gcc/testsuite/gcc.target/sparc/small-struct-1.c
  9ffd7b94418f62e4bc1700c00a93b9ff  gcc/testsuite/gcc.target/sparc/sparc-align-1.c
  0fdc378e88ad378a181a8f7ba247889f  gcc/testsuite/gcc.target/sparc/sparc-constant-1.c
  eb9fea9eb3ccdd5fb4d85ac011c10dc5  gcc/testsuite/gcc.target/sparc/sparc-dwarf2.c
*************** eb9fea9eb3ccdd5fb4d85ac011c10dc5  gcc/te
*** 78441,78447 ****
  111c6ff31ffc23f4b402354941b88338  gcc/testsuite/gcc.target/sparc/sparc-ret-2.c
  eab3dd9c7afd97e9615ef7573877aeeb  gcc/testsuite/gcc.target/sparc/sparc-ret-3.c
  1943f3e1f1253e644f6fe445637c2dec  gcc/testsuite/gcc.target/sparc/sparc-trap-1.c
! 70e722e158938beb5413da238338c12f  gcc/testsuite/gcc.target/sparc/sparc.exp
  36ce6bf50327f9b2f6c9980aea9830d2  gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c
  8e13d07524eb18b1e933aa690c21a993  gcc/testsuite/gcc.target/sparc/struct-ret-check-2.c
  29c9104d23f7983b691da600e79c9cf0  gcc/testsuite/gcc.target/sparc/tls-ld-int16.c
--- 87182,87188 ----
  111c6ff31ffc23f4b402354941b88338  gcc/testsuite/gcc.target/sparc/sparc-ret-2.c
  eab3dd9c7afd97e9615ef7573877aeeb  gcc/testsuite/gcc.target/sparc/sparc-ret-3.c
  1943f3e1f1253e644f6fe445637c2dec  gcc/testsuite/gcc.target/sparc/sparc-trap-1.c
! 6bffbbdab354d4313057ebd1f91559cb  gcc/testsuite/gcc.target/sparc/sparc.exp
  36ce6bf50327f9b2f6c9980aea9830d2  gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c
  8e13d07524eb18b1e933aa690c21a993  gcc/testsuite/gcc.target/sparc/struct-ret-check-2.c
  29c9104d23f7983b691da600e79c9cf0  gcc/testsuite/gcc.target/sparc/tls-ld-int16.c
*************** c6e8cea536062af6f23168b438e096e3  gcc/te
*** 78487,78493 ****
  cb59fa93f6ec7ffdc7c45b9ffe016270  gcc/testsuite/gcc.target/tic6x/bswapl.c
  880ba4c7bbafa50a3cc6634a50dc02b5  gcc/testsuite/gcc.target/tic6x/builtin-math-7.c
  6189f555f502d05c8cf8f4c22546bdee  gcc/testsuite/gcc.target/tic6x/builtins/arith24.c
! d595e1edfba0b69ff2a562ae00b8ce86  gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp
  d44d40be94d3b2c409ccde008c52fd47  gcc/testsuite/gcc.target/tic6x/builtins/extclr.c
  199fddda4489c9408a194900b3af00cc  gcc/testsuite/gcc.target/tic6x/builtins/sarith1.c
  2a93c542861f1f7e0f2350f76094d837  gcc/testsuite/gcc.target/tic6x/builtins/smpy.c
--- 87228,87234 ----
  cb59fa93f6ec7ffdc7c45b9ffe016270  gcc/testsuite/gcc.target/tic6x/bswapl.c
  880ba4c7bbafa50a3cc6634a50dc02b5  gcc/testsuite/gcc.target/tic6x/builtin-math-7.c
  6189f555f502d05c8cf8f4c22546bdee  gcc/testsuite/gcc.target/tic6x/builtins/arith24.c
! 5af289a47d34ff9b8e492caba23a45ec  gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp
  d44d40be94d3b2c409ccde008c52fd47  gcc/testsuite/gcc.target/tic6x/builtins/extclr.c
  199fddda4489c9408a194900b3af00cc  gcc/testsuite/gcc.target/tic6x/builtins/sarith1.c
  2a93c542861f1f7e0f2350f76094d837  gcc/testsuite/gcc.target/tic6x/builtins/smpy.c
*************** f914e8e604fad0a96e99fb396ea883ad  gcc/te
*** 78503,78512 ****
  baa04394e3ff6b7cba6819b89fb4e822  gcc/testsuite/gcc.target/tic6x/longcalls.c
  a25cc2d7288ac685c9d35e9c43f1cf21  gcc/testsuite/gcc.target/tic6x/rotdi16-scan.c
  9373dfa296a424e3396f81925fbd59bc  gcc/testsuite/gcc.target/tic6x/rotdi16.c
! 2a8460924b8df309e1a9fc7afa406fab  gcc/testsuite/gcc.target/tic6x/tic6x.exp
  670857f86bef69c76dcf7d725b01b954  gcc/testsuite/gcc.target/tic6x/weak-call.c
  1842497af5066e493839b7a75e67e2a7  gcc/testsuite/gcc.target/v850/pr104400.c
! df9dd575459d823328eff0584c705390  gcc/testsuite/gcc.target/v850/v850.exp
  f266f148c43d4b9593895e66efc3fa97  gcc/testsuite/gcc.target/vax/bbcci.c
  c64b50c02089a9c71ddbf71d118c42b8  gcc/testsuite/gcc.target/vax/bbssi.c
  44ba73b98dea9a0454806dbe98941328  gcc/testsuite/gcc.target/vax/bswapdi-1.c
--- 87244,87253 ----
  baa04394e3ff6b7cba6819b89fb4e822  gcc/testsuite/gcc.target/tic6x/longcalls.c
  a25cc2d7288ac685c9d35e9c43f1cf21  gcc/testsuite/gcc.target/tic6x/rotdi16-scan.c
  9373dfa296a424e3396f81925fbd59bc  gcc/testsuite/gcc.target/tic6x/rotdi16.c
! cb7a6a113cb4ef11b159e4e8a8b307d2  gcc/testsuite/gcc.target/tic6x/tic6x.exp
  670857f86bef69c76dcf7d725b01b954  gcc/testsuite/gcc.target/tic6x/weak-call.c
  1842497af5066e493839b7a75e67e2a7  gcc/testsuite/gcc.target/v850/pr104400.c
! 5293353fe00a527902cf6904e26ce3fd  gcc/testsuite/gcc.target/v850/v850.exp
  f266f148c43d4b9593895e66efc3fa97  gcc/testsuite/gcc.target/vax/bbcci.c
  c64b50c02089a9c71ddbf71d118c42b8  gcc/testsuite/gcc.target/vax/bbssi.c
  44ba73b98dea9a0454806dbe98941328  gcc/testsuite/gcc.target/vax/bswapdi-1.c
*************** ce472e70039700885bcf173911ef24dc  gcc/te
*** 78726,78732 ****
  86b2c92ff217edc7b11b2d6f5cba77c6  gcc/testsuite/gcc.target/vax/pr56875.c
  22629a1b386f420f06d6c23ff8e35b7f  gcc/testsuite/gcc.target/vax/push.c
  aa49cef95004b6430e3fd36b1edc76bc  gcc/testsuite/gcc.target/vax/setmem.c
! bbaf705133ad08e4a14f512e84c58362  gcc/testsuite/gcc.target/vax/vax.exp
  80427f37ed9a9b5949e9525f9049ac5d  gcc/testsuite/gcc.target/visium/bit_shift.c
  8b6e9241f591f13a4ae6f06419b206b4  gcc/testsuite/gcc.target/visium/bit_test.c
  38dfc40b21838f07e0e01202beadfa5c  gcc/testsuite/gcc.target/visium/block_move.c
--- 87467,87473 ----
  86b2c92ff217edc7b11b2d6f5cba77c6  gcc/testsuite/gcc.target/vax/pr56875.c
  22629a1b386f420f06d6c23ff8e35b7f  gcc/testsuite/gcc.target/vax/push.c
  aa49cef95004b6430e3fd36b1edc76bc  gcc/testsuite/gcc.target/vax/setmem.c
! 4ffc9b30372fad29d4288b7f68704084  gcc/testsuite/gcc.target/vax/vax.exp
  80427f37ed9a9b5949e9525f9049ac5d  gcc/testsuite/gcc.target/visium/bit_shift.c
  8b6e9241f591f13a4ae6f06419b206b4  gcc/testsuite/gcc.target/visium/bit_test.c
  38dfc40b21838f07e0e01202beadfa5c  gcc/testsuite/gcc.target/visium/block_move.c
*************** da335bd5b7d24260be92152ec43c9c69  gcc/te
*** 78738,78790 ****
  22e4f821af1c93516061d0c9e939e1d1  gcc/testsuite/gcc.target/visium/overflow16.c
  ed48eae7631e0c3fec552abc3abf6370  gcc/testsuite/gcc.target/visium/overflow32.c
  9038dededd39b0c0f41798e290669394  gcc/testsuite/gcc.target/visium/overflow8.c
! 19c6182ad2ab873424d5daab9786e6dd  gcc/testsuite/gcc.target/visium/visium.exp
! 6dbee4048187b0e905dd67100b87b6b0  gcc/testsuite/gcc.target/x86_64/abi/README.gcc
! 2d1180feda3f1712226074c04417b215  gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp
  4599244d74ba4aabbd69240d86d2fe79  gcc/testsuite/gcc.target/x86_64/abi/args.h
  2a169afd0fa371ba877780d1e8074c08  gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s
  867f79bc8cc32bb226b0c476fa9fa125  gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
! c3d5e224260aaee375fd3d56ab5bb0d8  gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp
  f559d61e72669fec3c7c3bb1345a001f  gcc/testsuite/gcc.target/x86_64/abi/avx/args.h
  6e43bc6b3d6feb70612d399a677d1c7d  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
! 4061363418adffdceb4cff80966eaf32  gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h
  d3c71d269c1b4265e86c5ace1089e848  gcc/testsuite/gcc.target/x86_64/abi/avx/test_m256_returning.c
! b43e5e8d171dcdbec5cac42b0b9a298c  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c
  ff732b27c9bb0c5b99ccccb31d12d3ea  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c
  d02989c16f0d1cd0951fe435483c550e  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
  2712f2843274c5262e020aca5e18fc41  gcc/testsuite/gcc.target/x86_64/abi/avx/test_varargs-m256.c
! 9c5b1fc42076a8b8ca66b495c13589eb  gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp
  2cf03d73572ce81dab43dcceeeacf5c4  gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h
  c79ac297933c3dae25e3f797420d1814  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S
! 1c4dc628c680a1d3ad4767c3a1455499  gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h
  75a0b911edb2a39978caadbf2c750015  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_m512_returning.c
! 9c2b013a549bbd28ac8dbd2c2d9cd181  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_m512.c
  24464384d6d7542bbd2ae638f390e7a6  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_structs.c
  fe0e9b140dbc68ca140fc7100c1ade24  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_unions.c
  ea57c03627834ae6586c0f2b69bf32bc  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_varargs-m512.c
! 2849aa62483f0cf828a7b797ed3f3956  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/abi-avx512fp16-xmm.exp
  2b129c5d89f4fa1b005adf23508c4fec  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/args.h
  8ec66f49f4364320ac024e42b69a851c  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/asm-support.S
  bcfa5ef4f1f22fe71409ef362478b98a  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/avx512fp16-check.h
  a5cb603e3325d1483156a1bafca70853  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/avx512fp16-xmm-check.h
  59a59553dc3e012851df850ebc07de5e  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/defines.h
! 2f3c4f45b972ad15d5a60179847723a8  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/abi-avx512fp16-ymm.exp
  d09bd80049e83e4efed5897afee5c4ff  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/args.h
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/asm-support.S
  88d9834938333121b41948df32c869b2  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/avx512fp16-ymm-check.h
  52af4c3287d54080390845de96e709f5  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_m256_returning.c
! a437b16e934be9ca096a7c1741e8085f  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_m256.c
  992138c3f98a569ecd2ffa2b73fad6a7  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_structs.c
  17d74e6230fbbecaf9cc223807c58341  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_unions.c
  b9e013481b466db18703e47f37a22408  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_varargs-m256.c
! 2849aa62483f0cf828a7b797ed3f3956  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/abi-avx512fp16-zmm.exp
  176cf0e188d1f0e52307d89b8d784fdd  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/args.h
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/asm-support.S
  ba52323e4ee4308b6b4e8989ddb5f3f4  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/avx512fp16-zmm-check.h
  5178a56841749491d04bd67bf6b14c8c  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_m512_returning.c
! 362613f1a8c51415cad5ce49e63c764a  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_m512.c
  7c0bc408af458a57f7e59bc1fd00b141  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_structs.c
  ce71d86e8aaf11dd274a771057dc66bc  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_unions.c
  f4f6e7da9799b70f0cfeb38a966c7f2d  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_varargs-m512.c
--- 87479,87531 ----
  22e4f821af1c93516061d0c9e939e1d1  gcc/testsuite/gcc.target/visium/overflow16.c
  ed48eae7631e0c3fec552abc3abf6370  gcc/testsuite/gcc.target/visium/overflow32.c
  9038dededd39b0c0f41798e290669394  gcc/testsuite/gcc.target/visium/overflow8.c
! a2eddeaee93b098d4d3706ce85b605a7  gcc/testsuite/gcc.target/visium/visium.exp
! 02fe7439c6091763f3f94b291f0da799  gcc/testsuite/gcc.target/x86_64/abi/README.gcc
! 091e5b236387281fc20e489d49bf812c  gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp
  4599244d74ba4aabbd69240d86d2fe79  gcc/testsuite/gcc.target/x86_64/abi/args.h
  2a169afd0fa371ba877780d1e8074c08  gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s
  867f79bc8cc32bb226b0c476fa9fa125  gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
! f9a96b22ca59458a848a6b9d1da9fcc0  gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp
  f559d61e72669fec3c7c3bb1345a001f  gcc/testsuite/gcc.target/x86_64/abi/avx/args.h
  6e43bc6b3d6feb70612d399a677d1c7d  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
! d2b1872e282314aec047774aa8e8f56e  gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h
  d3c71d269c1b4265e86c5ace1089e848  gcc/testsuite/gcc.target/x86_64/abi/avx/test_m256_returning.c
! 246e4df33bdba715ae40979ae1d5166d  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c
  ff732b27c9bb0c5b99ccccb31d12d3ea  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c
  d02989c16f0d1cd0951fe435483c550e  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
  2712f2843274c5262e020aca5e18fc41  gcc/testsuite/gcc.target/x86_64/abi/avx/test_varargs-m256.c
! 3eb754f8fab50c184b4d2f10e523804a  gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp
  2cf03d73572ce81dab43dcceeeacf5c4  gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h
  c79ac297933c3dae25e3f797420d1814  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S
! e0ffbc2e8472b0c0f22b1f0ca653665e  gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h
  75a0b911edb2a39978caadbf2c750015  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_m512_returning.c
! 14fd9a78209f434a117a3dae532c58ea  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_m512.c
  24464384d6d7542bbd2ae638f390e7a6  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_structs.c
  fe0e9b140dbc68ca140fc7100c1ade24  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_unions.c
  ea57c03627834ae6586c0f2b69bf32bc  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_varargs-m512.c
! 8879cf19b4c4b821692cf7afd2e55b43  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/abi-avx512fp16-xmm.exp
  2b129c5d89f4fa1b005adf23508c4fec  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/args.h
  8ec66f49f4364320ac024e42b69a851c  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/asm-support.S
  bcfa5ef4f1f22fe71409ef362478b98a  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/avx512fp16-check.h
  a5cb603e3325d1483156a1bafca70853  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/avx512fp16-xmm-check.h
  59a59553dc3e012851df850ebc07de5e  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/defines.h
! 68e4fce0b89717f277c5c387f2caa1a8  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/abi-avx512fp16-ymm.exp
  d09bd80049e83e4efed5897afee5c4ff  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/args.h
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/asm-support.S
  88d9834938333121b41948df32c869b2  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/avx512fp16-ymm-check.h
  52af4c3287d54080390845de96e709f5  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_m256_returning.c
! 10b4396a5fed6bc6646af314b0196e83  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_m256.c
  992138c3f98a569ecd2ffa2b73fad6a7  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_structs.c
  17d74e6230fbbecaf9cc223807c58341  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_unions.c
  b9e013481b466db18703e47f37a22408  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/test_varargs-m256.c
! 8879cf19b4c4b821692cf7afd2e55b43  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/abi-avx512fp16-zmm.exp
  176cf0e188d1f0e52307d89b8d784fdd  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/args.h
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/asm-support.S
  ba52323e4ee4308b6b4e8989ddb5f3f4  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/avx512fp16-zmm-check.h
  5178a56841749491d04bd67bf6b14c8c  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_m512_returning.c
! 3e66cc4f3324bbef3133d6fefcceefac  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_m512.c
  7c0bc408af458a57f7e59bc1fd00b141  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_structs.c
  ce71d86e8aaf11dd274a771057dc66bc  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_unions.c
  f4f6e7da9799b70f0cfeb38a966c7f2d  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/test_varargs-m512.c
*************** e22c619a2f431de8e65d3afabf108e1c  gcc/te
*** 78804,78833 ****
  b42af2b2d27084488f2cbff57c084c7e  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_passing_unions.c
  7708c68d41b7c3c416bc62d837c31b4d  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c
  4e635600e6c770510213147a02f03d44  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_varargs-m128.c
! 6890be116974c66554ba5b81d21aba31  gcc/testsuite/gcc.target/x86_64/abi/bf16/abi-bf16.exp
  267075a616caa20baf1cdb6d59273da7  gcc/testsuite/gcc.target/x86_64/abi/bf16/args.h
  f2f6be87af6fdd2b9038a0493b9f4e5f  gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support-darwin.S
  983102b5da86835530b5d6c5a2e184fe  gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support.S
! 363a58e295ec3d94386622bac19f0fdc  gcc/testsuite/gcc.target/x86_64/abi/bf16/bf16-check.h
  ef001e25461cad1a905cc3940b8a59a1  gcc/testsuite/gcc.target/x86_64/abi/bf16/bf16-helper.h
  3d83e5be06c53befcde7bb6589de52e1  gcc/testsuite/gcc.target/x86_64/abi/bf16/defines.h
! f61d71fee54e2ac824d85de220695e89  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/abi-bf16-ymm.exp
  afef53759167fe4e911437d754f38005  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/args.h
  1d8f51b67e980af0a3d27bc1aa71cc22  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support-darwin.S
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S
! ad5c327915d65a21a4e9ba2b345a4121  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/bf16-ymm-check.h
  06ecc8312477b9c6c62c0b36173c64ad  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_m256_returning.c
! acba9f3b81ebc1546fdfdbe4b6aa7f4c  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_m256.c
  73bd600b3da626bbd4377e964af2f489  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_structs.c
  fb110ce41e65d5c5a34b6dfd9aae97b9  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_unions.c
  037befa2c6f87c1831afb1b0c9a799c2  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_varargs-m256.c
! 87d19d3aadd120838eaf366716612cbe  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/abi-bf16-zmm.exp
  67297c5c4ab3b318022029a58e7fd404  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/args.h
  206a66ec7c31d9ba7a8d13d86038cc45  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support-darwin.S
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S
! 5f9c76b12512b491dcb66818e9039984  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/bf16-zmm-check.h
  981d8962768ef823936f26c746f096d1  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_m512_returning.c
! 3858936c5bc6908a956192ace2ed196d  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_passing_m512.c
  767fd0d6494015abcbb421070c0d6dbd  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_passing_structs.c
  3af75ee4a6fbfe618fc7a4730aebdfc7  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_passing_unions.c
  4d5930ddd881514c8657308eb16fc55a  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_varargs-m512.c
--- 87545,87574 ----
  b42af2b2d27084488f2cbff57c084c7e  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_passing_unions.c
  7708c68d41b7c3c416bc62d837c31b4d  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c
  4e635600e6c770510213147a02f03d44  gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_varargs-m128.c
! 1dfa9893f72923391a2a0dd36e336331  gcc/testsuite/gcc.target/x86_64/abi/bf16/abi-bf16.exp
  267075a616caa20baf1cdb6d59273da7  gcc/testsuite/gcc.target/x86_64/abi/bf16/args.h
  f2f6be87af6fdd2b9038a0493b9f4e5f  gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support-darwin.S
  983102b5da86835530b5d6c5a2e184fe  gcc/testsuite/gcc.target/x86_64/abi/bf16/asm-support.S
! 5821aa92b981a719ab14bb15863fa6fd  gcc/testsuite/gcc.target/x86_64/abi/bf16/bf16-check.h
  ef001e25461cad1a905cc3940b8a59a1  gcc/testsuite/gcc.target/x86_64/abi/bf16/bf16-helper.h
  3d83e5be06c53befcde7bb6589de52e1  gcc/testsuite/gcc.target/x86_64/abi/bf16/defines.h
! dbbf8f99b0f75e99f3967b3840a5836b  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/abi-bf16-ymm.exp
  afef53759167fe4e911437d754f38005  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/args.h
  1d8f51b67e980af0a3d27bc1aa71cc22  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support-darwin.S
  337ee5fd14ee235d1a474731bfdb21b6  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/asm-support.S
! 2244a7da3e647314ef2ae5a74eea7897  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/bf16-ymm-check.h
  06ecc8312477b9c6c62c0b36173c64ad  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_m256_returning.c
! d9c8acba14bcae1fc878fc00f09c6a13  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_m256.c
  73bd600b3da626bbd4377e964af2f489  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_structs.c
  fb110ce41e65d5c5a34b6dfd9aae97b9  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_passing_unions.c
  037befa2c6f87c1831afb1b0c9a799c2  gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/test_varargs-m256.c
! 2a20bb7fe94445fed3691f7ec4a4f9c9  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/abi-bf16-zmm.exp
  67297c5c4ab3b318022029a58e7fd404  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/args.h
  206a66ec7c31d9ba7a8d13d86038cc45  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support-darwin.S
  212a18bd874fbfbbc83f778fb334af73  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/asm-support.S
! 37ab611f240ff7050a80abe8b0e9616e  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/bf16-zmm-check.h
  981d8962768ef823936f26c746f096d1  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_m512_returning.c
! c16f9db8de0b9cdf69a367cd2cccb808  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_passing_m512.c
  767fd0d6494015abcbb421070c0d6dbd  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_passing_structs.c
  3af75ee4a6fbfe618fc7a4730aebdfc7  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_passing_unions.c
  4d5930ddd881514c8657308eb16fc55a  gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/test_varargs-m512.c
*************** af318c8616cebdebba4e185177c8ed0d  gcc/te
*** 78846,78852 ****
  5fdd234cc9ad7df783a95400b9bbd62f  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_passing_unions.c
  419e101bf2cea096ae41adea141df03f  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_struct_returning.c
  017621a52995d96231c7e32023a4b6b6  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_varargs-m128.c
! f3dc3b9e079c2737fe2cd850d2c734b6  gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp
  b52212e25b4fe43a1bda56b50d2cc914  gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.h
  bd08629b87a61bb1d8bfca958f60b18f  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c
  17951c08530e05273568b3b636fb8a4e  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c
--- 87587,87593 ----
  5fdd234cc9ad7df783a95400b9bbd62f  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_passing_unions.c
  419e101bf2cea096ae41adea141df03f  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_struct_returning.c
  017621a52995d96231c7e32023a4b6b6  gcc/testsuite/gcc.target/x86_64/abi/bf16/test_varargs-m128.c
! 4ce617055d9b4b1e8a4af04cd7c6e1a6  gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp
  b52212e25b4fe43a1bda56b50d2cc914  gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.h
  bd08629b87a61bb1d8bfca958f60b18f  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c
  17951c08530e05273568b3b636fb8a4e  gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c
*************** d02a2912e872fd8b7b39b69b74482091  gcc/te
*** 78867,78876 ****
  dfc167e3c82be6261ef045c50a409cf9  gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-6.c
  002286d968abb2e5012ebb83dd44784d  gcc/testsuite/gcc.target/x86_64/abi/defines.h
  ced3e7fc25757fe027f4eacc904e6881  gcc/testsuite/gcc.target/x86_64/abi/macros.h
! 06700177fba933d7f6400c8f7c454244  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
  cf207cd32f48bf81f1c2ea9397f53856  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/gen.cc
  b14bf90b9e86d7c81b95cad9c4d55dae  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c
! 2e9bcfc89d80443a3dbd43f550c950e3  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp
  df350cc8fc42fcbfb44edc088765d60a  gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c
  54a02258e782aaa35101b4f6cddbe300  gcc/testsuite/gcc.target/x86_64/abi/test_basic_alignment.c
  21f9b335d755c74bdef8998aeac98585  gcc/testsuite/gcc.target/x86_64/abi/test_basic_array_size_and_align.c
--- 87608,87617 ----
  dfc167e3c82be6261ef045c50a409cf9  gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-6.c
  002286d968abb2e5012ebb83dd44784d  gcc/testsuite/gcc.target/x86_64/abi/defines.h
  ced3e7fc25757fe027f4eacc904e6881  gcc/testsuite/gcc.target/x86_64/abi/macros.h
! 6c4b95bdb1fe69449af669b2ab57052c  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
  cf207cd32f48bf81f1c2ea9397f53856  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/gen.cc
  b14bf90b9e86d7c81b95cad9c4d55dae  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c
! bdac618e9d520ef63bb5ad87708a984b  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp
  df350cc8fc42fcbfb44edc088765d60a  gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c
  54a02258e782aaa35101b4f6cddbe300  gcc/testsuite/gcc.target/x86_64/abi/test_basic_alignment.c
  21f9b335d755c74bdef8998aeac98585  gcc/testsuite/gcc.target/x86_64/abi/test_basic_array_size_and_align.c
*************** ff52f42b5dcbfea14a960c6dc0a868fd  gcc/te
*** 78960,78965 ****
--- 87701,87708 ----
  c0becd091fe74865dfd37e9f3faf2c1b  gcc/testsuite/gcc.target/xstormy16/bss_below100/27_if0_b100w_bitfield_8.c
  95d4de4c7f877cfc019bc1c088dd52aa  gcc/testsuite/gcc.target/xstormy16/bss_below100/27_if0_b100w_bitfield_b.c
  1cbfb27e7069425b35246f3b44090d5b  gcc/testsuite/gcc.target/xstormy16/bss_below100/27_if0_b100w_bitfield_f.c
+ d3d7b77ab4697d7820294abbb69e1276  gcc/testsuite/gcc.target/xstormy16/bswap16.c
+ 63c8ed0b409c838486aa76db6da2c005  gcc/testsuite/gcc.target/xstormy16/bswap32.c
  d4019f50c4d7ff8e5d1ac3bddd62b77b  gcc/testsuite/gcc.target/xstormy16/data_below100/01_const_to_b100b.c
  1d59763e8e36d2a0d9c94a7ea2c56230  gcc/testsuite/gcc.target/xstormy16/data_below100/02_const_to_b100w.c
  f8d55409a638689e036f58cb5d763b65  gcc/testsuite/gcc.target/xstormy16/data_below100/03_var_to_b100b.c
*************** d04315a501207309df7a1040fa2ad44e  gcc/te
*** 79026,79031 ****
--- 87769,87778 ----
  674c7fe9959849c418daa97596a29961  gcc/testsuite/gcc.target/xstormy16/data_below100/27_if0_b100w_bitfield_8.c
  84d3c7a0bf32d4dee5814ee5817a9b41  gcc/testsuite/gcc.target/xstormy16/data_below100/27_if0_b100w_bitfield_b.c
  cca8438331c1dbd3622e6daf22ed8b80  gcc/testsuite/gcc.target/xstormy16/data_below100/27_if0_b100w_bitfield_f.c
+ 64e295712ba529fdd2946db085c3daa2  gcc/testsuite/gcc.target/xstormy16/extendhisi2.c
+ bbb7c5b98d9519c006ff558814a151b3  gcc/testsuite/gcc.target/xstormy16/mulhi.c
+ 4a0719312b17c05f941d354fa5c2ce77  gcc/testsuite/gcc.target/xstormy16/neghi2.c
+ 7d65d15259c94137a10663d2aeeb1c8a  gcc/testsuite/gcc.target/xstormy16/rotatehi-1.c
  39555eb5da0832d8df88935b6e9d9974  gcc/testsuite/gcc.target/xstormy16/sfr/01_const_to_sfrb.c
  b5a738a34194b338b92901ea41e83d81  gcc/testsuite/gcc.target/xstormy16/sfr/02_const_to_sfrw.c
  4f5e0e24d96e923c531e4a3e9f625abc  gcc/testsuite/gcc.target/xstormy16/sfr/03_var_to_sfrb.c
*************** de974d8f497b1ad76694e8f9333fcd26  gcc/te
*** 79096,79102 ****
  92244b620516764d25382b815309419b  gcc/testsuite/gcc.target/xstormy16/sfr/27_if0_sfrw_bitfield_8.c
  292d09294f8beccfa611eb5d5ace3e5d  gcc/testsuite/gcc.target/xstormy16/sfr/27_if0_sfrw_bitfield_b.c
  399545481a5e90f464e00d2cdb3b624f  gcc/testsuite/gcc.target/xstormy16/sfr/27_if0_sfrw_bitfield_f.c
! 9de01c055e169c9af7e2e6310bac2641  gcc/testsuite/gcc.target/xstormy16/xstormy16.exp
  eacc096a7f94a630ed769a6bed50453d  gcc/testsuite/gcc.target/xtensa/BALL-BNALL.c
  2c169e3ed7b7968f235d883ab0a5457a  gcc/testsuite/gcc.target/xtensa/bswap-O1.c
  1a07128767cc4b46376ceb321c59f191  gcc/testsuite/gcc.target/xtensa/bswap-O2.c
--- 87843,87858 ----
  92244b620516764d25382b815309419b  gcc/testsuite/gcc.target/xstormy16/sfr/27_if0_sfrw_bitfield_8.c
  292d09294f8beccfa611eb5d5ace3e5d  gcc/testsuite/gcc.target/xstormy16/sfr/27_if0_sfrw_bitfield_b.c
  399545481a5e90f464e00d2cdb3b624f  gcc/testsuite/gcc.target/xstormy16/sfr/27_if0_sfrw_bitfield_f.c
! d4862ab9e721eb1ea0079790a2f4abea  gcc/testsuite/gcc.target/xstormy16/shiftsi.c
! a59d8540caf1d52d46e1879c433e534c  gcc/testsuite/gcc.target/xstormy16/swpb.c
! 71b754f497fcb0c0156e8598873890c8  gcc/testsuite/gcc.target/xstormy16/swpn-1.c
! 955fc10b20c28d0a583a244510213cca  gcc/testsuite/gcc.target/xstormy16/swpn-2.c
! 0b320609f1b0a241081224893bdbd445  gcc/testsuite/gcc.target/xstormy16/swpn-3.c
! 00cba965e28c0af7b5ea1dcfb070f8d5  gcc/testsuite/gcc.target/xstormy16/swpn-4.c
! f99adeb61ede5633fe73ecc1efa34727  gcc/testsuite/gcc.target/xstormy16/swpw-1.c
! 752764c197b4ee448d133a05bccd6d3c  gcc/testsuite/gcc.target/xstormy16/swpw-2.c
! 251ae8df3867bd24ba3278948bcbcc39  gcc/testsuite/gcc.target/xstormy16/xstormy16.exp
! 595309c78fd38c2a937734586cd28ee1  gcc/testsuite/gcc.target/xstormy16/zextendhisi2.c
  eacc096a7f94a630ed769a6bed50453d  gcc/testsuite/gcc.target/xtensa/BALL-BNALL.c
  2c169e3ed7b7968f235d883ab0a5457a  gcc/testsuite/gcc.target/xtensa/bswap-O1.c
  1a07128767cc4b46376ceb321c59f191  gcc/testsuite/gcc.target/xtensa/bswap-O2.c
*************** acfb44b971ca766549ce4e3d2974f084  gcc/te
*** 79118,79125 ****
  ef29d88bcc9a62033efa0a6e41a3e7d8  gcc/testsuite/gcc.target/xtensa/pr98285.c
  a948656f4ea504ef065dc8d743d6ae01  gcc/testsuite/gcc.target/xtensa/shifts.c
  9c340cc6ce0b118b23559c6dff251397  gcc/testsuite/gcc.target/xtensa/sibcalls.c
! 99223b8c90ad404e46f69b18b7507a25  gcc/testsuite/gcc.target/xtensa/xtensa.exp
! b37cebdc6aa25471a2b1263d787ec0b6  gcc/testsuite/gcc.test-framework/README
  096a37c4b1e488bdb060872ca7b99862  gcc/testsuite/gcc.test-framework/dg-bogus-exp-P.c
  9f91f73374d446d6b0085730a8104942  gcc/testsuite/gcc.test-framework/dg-bogus-exp-XF.c
  570821aa898995690ac6f67de0840c1a  gcc/testsuite/gcc.test-framework/dg-do-assemble-exp-P.c
--- 87874,87881 ----
  ef29d88bcc9a62033efa0a6e41a3e7d8  gcc/testsuite/gcc.target/xtensa/pr98285.c
  a948656f4ea504ef065dc8d743d6ae01  gcc/testsuite/gcc.target/xtensa/shifts.c
  9c340cc6ce0b118b23559c6dff251397  gcc/testsuite/gcc.target/xtensa/sibcalls.c
! febb103b40707dc8120c6e58c7798790  gcc/testsuite/gcc.target/xtensa/xtensa.exp
! 5dac178f38cd576deab3ad2e32c3a91c  gcc/testsuite/gcc.test-framework/README
  096a37c4b1e488bdb060872ca7b99862  gcc/testsuite/gcc.test-framework/dg-bogus-exp-P.c
  9f91f73374d446d6b0085730a8104942  gcc/testsuite/gcc.test-framework/dg-bogus-exp-XF.c
  570821aa898995690ac6f67de0840c1a  gcc/testsuite/gcc.test-framework/dg-do-assemble-exp-P.c
*************** d76821513655f47d266e00386180369f  gcc/te
*** 79175,79183 ****
  7741b86259484f4bb14a28d48d2a3723  gcc/testsuite/gcc.test-framework/dg-warning-exp-F.c
  a5fed7916fa20d3c35ba9b6ca7d18593  gcc/testsuite/gcc.test-framework/dg-warning-exp-P.c
  b09307dc50aad69d9ba101705dce41f4  gcc/testsuite/gcc.test-framework/dg-warning-nocache-exp-P.c
! e8b10d44cf0ce7660fb590fc7033e2e1  gcc/testsuite/gcc.test-framework/gen_directive_tests
! cf6b826f4e7228338ca934f4b8ee96b6  gcc/testsuite/gcc.test-framework/test-framework.awk
! 43208400ba6b1eb913162f9962d741e8  gcc/testsuite/gcc.test-framework/test-framework.exp
  502192866584cff5028f4aa00858d119  gcc/testsuite/gdc.dg/Waddress.d
  8c1b4247bd6d7e5b761c57e5000129ce  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch1.d
  926d037532f6b941c001b71173742beb  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch2.d
--- 87931,87939 ----
  7741b86259484f4bb14a28d48d2a3723  gcc/testsuite/gcc.test-framework/dg-warning-exp-F.c
  a5fed7916fa20d3c35ba9b6ca7d18593  gcc/testsuite/gcc.test-framework/dg-warning-exp-P.c
  b09307dc50aad69d9ba101705dce41f4  gcc/testsuite/gcc.test-framework/dg-warning-nocache-exp-P.c
! f014f0c191dc77105b528c531428dde6  gcc/testsuite/gcc.test-framework/gen_directive_tests
! 90e0907fc2d9b53f6750a54fdcd05464  gcc/testsuite/gcc.test-framework/test-framework.awk
! 2596ecf01f626a8decfc91e8a76b0629  gcc/testsuite/gcc.test-framework/test-framework.exp
  502192866584cff5028f4aa00858d119  gcc/testsuite/gdc.dg/Waddress.d
  8c1b4247bd6d7e5b761c57e5000129ce  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch1.d
  926d037532f6b941c001b71173742beb  gcc/testsuite/gdc.dg/Wbuiltin_declaration_mismatch2.d
*************** cf6b826f4e7228338ca934f4b8ee96b6  gcc/te
*** 79185,79198 ****
  44e39786a0fd5bf9bfdb4d4356edd009  gcc/testsuite/gdc.dg/Wcastresult2.d
  42d3851d5f369d7a3feb436c0b56019c  gcc/testsuite/gdc.dg/Wmismatched_enum.d
  ba3ec121536606fdf9d34aff37b9da35  gcc/testsuite/gdc.dg/Wpadded.d
  684da8abc6d44a02e6b361d163e350c1  gcc/testsuite/gdc.dg/array1.d
! e8f3d928a72b02cbf256c0bb36f89756  gcc/testsuite/gdc.dg/asan/asan.exp
  b128e4398f4a7480b25915e786aa46ef  gcc/testsuite/gdc.dg/asan/attr_no_sanitize1.d
  10180752a9d53fac31ca576e678cdd06  gcc/testsuite/gdc.dg/asan/gdc272.d
! de1309b7ef02b8dd0a89139091b615b3  gcc/testsuite/gdc.dg/asm1.d
  fe26b7411075062b4f74f94131f6ff12  gcc/testsuite/gdc.dg/asm2.d
  926ed4a40911d18017b4da46ddf2753b  gcc/testsuite/gdc.dg/asm3.d
! 744340225f4ee9da7bfe66ad4a54b2c8  gcc/testsuite/gdc.dg/asm4.d
  81924dd147fbe2024048ac4b5b397435  gcc/testsuite/gdc.dg/asm5.d
  31a8b77972532af3d4c1e4b565ffd968  gcc/testsuite/gdc.dg/attr_allocsize1.d
  f270d380aa68ee40ee568c5490d0f454  gcc/testsuite/gdc.dg/attr_allocsize2.d
--- 87941,87957 ----
  44e39786a0fd5bf9bfdb4d4356edd009  gcc/testsuite/gdc.dg/Wcastresult2.d
  42d3851d5f369d7a3feb436c0b56019c  gcc/testsuite/gdc.dg/Wmismatched_enum.d
  ba3ec121536606fdf9d34aff37b9da35  gcc/testsuite/gdc.dg/Wpadded.d
+ 9bc103c321c35752bcd99c0bd239f20b  gcc/testsuite/gdc.dg/Wunused_value.d
+ db92ee5710315792ba9363816423260e  gcc/testsuite/gdc.dg/analyzer/analyzer.exp
+ 63318cc46d15d60fe163e071e030c6d8  gcc/testsuite/gdc.dg/analyzer/pr111537.d
  684da8abc6d44a02e6b361d163e350c1  gcc/testsuite/gdc.dg/array1.d
! d4d32d4f1d075ee8a78ed28fcbacedbb  gcc/testsuite/gdc.dg/asan/asan.exp
  b128e4398f4a7480b25915e786aa46ef  gcc/testsuite/gdc.dg/asan/attr_no_sanitize1.d
  10180752a9d53fac31ca576e678cdd06  gcc/testsuite/gdc.dg/asan/gdc272.d
! 16e7d438ab084a84acb9128057384ba3  gcc/testsuite/gdc.dg/asm1.d
  fe26b7411075062b4f74f94131f6ff12  gcc/testsuite/gdc.dg/asm2.d
  926ed4a40911d18017b4da46ddf2753b  gcc/testsuite/gdc.dg/asm3.d
! e39f454e2c507490f50066c0f92ffc2b  gcc/testsuite/gdc.dg/asm4.d
  81924dd147fbe2024048ac4b5b397435  gcc/testsuite/gdc.dg/asm5.d
  31a8b77972532af3d4c1e4b565ffd968  gcc/testsuite/gdc.dg/attr_allocsize1.d
  f270d380aa68ee40ee568c5490d0f454  gcc/testsuite/gdc.dg/attr_allocsize2.d
*************** a7aa471b806a0dc9aa5c6bb1b37b42ad  gcc/te
*** 79227,79247 ****
  b96246fe2fd61f131bffcb73cf6c3661  gcc/testsuite/gdc.dg/attr_visibility2.d
  68d5fbec2923867523a72d9b95de39e1  gcc/testsuite/gdc.dg/attr_visibility3.d
  9572ed86d7a73e283f1add9802b99b1a  gcc/testsuite/gdc.dg/attr_weak1.d
  51f05240bc073e45dfb7cd2af384c423  gcc/testsuite/gdc.dg/builtins.d
  0aaff757c8c0406ea7a86643ad642fb3  gcc/testsuite/gdc.dg/cast1.d
  191c7332d72a7ccafbe3cfaa328fd410  gcc/testsuite/gdc.dg/ctfeintrinsics.d
! e050fd9a26438159421caec59183ebf7  gcc/testsuite/gdc.dg/debug/debug.exp
! 65038c6079b658648c6ddaaab6f3b8f9  gcc/testsuite/gdc.dg/debug/dwarf2/dwarf2.exp
  f57bfa4edc494fecd4284a542f695d0f  gcc/testsuite/gdc.dg/debug/dwarf2/imports/pr98067.d
  37e2ca0f4e06cb14e92a710579518a60  gcc/testsuite/gdc.dg/debug/dwarf2/langdw2.d
  db93819c7b52f4f6ea4f42fed3e0a48a  gcc/testsuite/gdc.dg/debug/dwarf2/langdw3.d
  8527933fbf2d9fb7c82fd63435063168  gcc/testsuite/gdc.dg/debug/dwarf2/pr98067.d
  0121ae6408f107a6bf6f915c24102bd3  gcc/testsuite/gdc.dg/debug/trivial.d
! 221872e623e7561cf7ee01e02bd48936  gcc/testsuite/gdc.dg/dg.exp
! e13b61cf77c000f61413c39e9ed0fa64  gcc/testsuite/gdc.dg/extern-c++/extern-c++.exp
  61180002f0f17ca7ed75def599d123f0  gcc/testsuite/gdc.dg/extern-c++/pr101664.d
  68936fbe708c1d13dcaca6e4a4a06f77  gcc/testsuite/gdc.dg/extern-c++/pr101664_1.cc
  a1a48cc59d8f09de15d5d5519e240770  gcc/testsuite/gdc.dg/fileimports/pr93038.txt
  0da416e7dcac2139d3182637a81efbfe  gcc/testsuite/gdc.dg/gdc108.d
  5761ceeebbd93d112778a153a688475a  gcc/testsuite/gdc.dg/gdc121.d
  9d0b9084661f19d1dc4522e26fa4c876  gcc/testsuite/gdc.dg/gdc122.d
--- 87986,88021 ----
  b96246fe2fd61f131bffcb73cf6c3661  gcc/testsuite/gdc.dg/attr_visibility2.d
  68d5fbec2923867523a72d9b95de39e1  gcc/testsuite/gdc.dg/attr_visibility3.d
  9572ed86d7a73e283f1add9802b99b1a  gcc/testsuite/gdc.dg/attr_weak1.d
+ 45f664b7f74dcb7fcf9dea52e196028c  gcc/testsuite/gdc.dg/bom_UTF16BE.d
+ 9552ec8095b5d8de6bacb4f8b9fc3411  gcc/testsuite/gdc.dg/bom_UTF16LE.d
+ e2014e341cb6cdbbe3e3d386abca4295  gcc/testsuite/gdc.dg/bom_UTF32BE.d
+ 59b4a48506aac36ccf8d3a3fdb88a84f  gcc/testsuite/gdc.dg/bom_UTF32LE.d
+ 9417a38f39ba8e8de24c406f77d7b6ce  gcc/testsuite/gdc.dg/bom_UTF8.d
+ b47a6bd68504c63165e1edc61f861583  gcc/testsuite/gdc.dg/bom_characters.d
+ 305291fc3f74dc9b4613e185f14c988e  gcc/testsuite/gdc.dg/bom_error_UTF8.d
+ 4dd4762ce05a2a332b584018959e431d  gcc/testsuite/gdc.dg/bom_infer_UTF16BE.d
+ 8122db5746453777086edde35b88e430  gcc/testsuite/gdc.dg/bom_infer_UTF16LE.d
+ 9cc0f2f9492fbf891b73f62af0cd6ee3  gcc/testsuite/gdc.dg/bom_infer_UTF32BE.d
+ 0a13114794b603f41e3d4741238bdb97  gcc/testsuite/gdc.dg/bom_infer_UTF32LE.d
+ 27608c1ccc2f709bfad1039a1d14c11e  gcc/testsuite/gdc.dg/bom_infer_UTF8.d
  51f05240bc073e45dfb7cd2af384c423  gcc/testsuite/gdc.dg/builtins.d
+ 571055575a2be3c9428db4386a7a290e  gcc/testsuite/gdc.dg/builtins_reject.d
  0aaff757c8c0406ea7a86643ad642fb3  gcc/testsuite/gdc.dg/cast1.d
  191c7332d72a7ccafbe3cfaa328fd410  gcc/testsuite/gdc.dg/ctfeintrinsics.d
! 1bfcb4a89b3d2992f2f965ece88381d8  gcc/testsuite/gdc.dg/debug/debug.exp
! b0dbd2e2156d0a848110a28a15538d0f  gcc/testsuite/gdc.dg/debug/dwarf2/dwarf2.exp
  f57bfa4edc494fecd4284a542f695d0f  gcc/testsuite/gdc.dg/debug/dwarf2/imports/pr98067.d
  37e2ca0f4e06cb14e92a710579518a60  gcc/testsuite/gdc.dg/debug/dwarf2/langdw2.d
  db93819c7b52f4f6ea4f42fed3e0a48a  gcc/testsuite/gdc.dg/debug/dwarf2/langdw3.d
  8527933fbf2d9fb7c82fd63435063168  gcc/testsuite/gdc.dg/debug/dwarf2/pr98067.d
  0121ae6408f107a6bf6f915c24102bd3  gcc/testsuite/gdc.dg/debug/trivial.d
! 1de9230a55fd28a909c2928d5b9e227d  gcc/testsuite/gdc.dg/dg.exp
! d3b168d9c2ed0fe5ba9b297bd8b4a1a3  gcc/testsuite/gdc.dg/extern-c++/extern-c++.exp
  61180002f0f17ca7ed75def599d123f0  gcc/testsuite/gdc.dg/extern-c++/pr101664.d
  68936fbe708c1d13dcaca6e4a4a06f77  gcc/testsuite/gdc.dg/extern-c++/pr101664_1.cc
  a1a48cc59d8f09de15d5d5519e240770  gcc/testsuite/gdc.dg/fileimports/pr93038.txt
+ 6b1e42867ec171f5fbad5fc11d0f2a9a  gcc/testsuite/gdc.dg/gcov.exp
+ 416c982f404cd1b55a14b579f5638663  gcc/testsuite/gdc.dg/gcov1.d
  0da416e7dcac2139d3182637a81efbfe  gcc/testsuite/gdc.dg/gdc108.d
  5761ceeebbd93d112778a153a688475a  gcc/testsuite/gdc.dg/gdc121.d
  9d0b9084661f19d1dc4522e26fa4c876  gcc/testsuite/gdc.dg/gdc122.d
*************** d509ef7215df7a85f46d6cbdc8018e22  gcc/te
*** 79304,79315 ****
  753f5121640aa2d9e67d4f235bed8d2b  gcc/testsuite/gdc.dg/imports/pr108050/mod2.d
  b0fb7628aa04803e7405378e8ff66d8c  gcc/testsuite/gdc.dg/imports/pr108050/package.d
  c1371b9d51218c700b58595265d42b2d  gcc/testsuite/gdc.dg/imports/pr108877a.d
  7ae8eee97923fab094ae5ca5a1eca902  gcc/testsuite/gdc.dg/imports/pr92216.d
  8120e5c267785a8c8b8eb099660e9a14  gcc/testsuite/gdc.dg/intrinsics.d
! 242a471b046e60438681d9b34060435b  gcc/testsuite/gdc.dg/lto/lto.exp
  73f4e0e4c2d7cacc12e6ae72ff1a988e  gcc/testsuite/gdc.dg/lto/ltotests_0.d
  bcf14abbb66e47644086ee0018354420  gcc/testsuite/gdc.dg/lto/ltotests_1.d
  67f3da95e0d4f9e0695facaa788ce93f  gcc/testsuite/gdc.dg/lto/pr102094_0.d
  72df2b7de363980279c39b35784dcf57  gcc/testsuite/gdc.dg/nrvo1.d
  7d27bb4ae013be8b6cb21a42a730353d  gcc/testsuite/gdc.dg/pr100882a.d
  167004b1d3ea4a1c36668f029fbe4290  gcc/testsuite/gdc.dg/pr100882b.d
--- 88078,88092 ----
  753f5121640aa2d9e67d4f235bed8d2b  gcc/testsuite/gdc.dg/imports/pr108050/mod2.d
  b0fb7628aa04803e7405378e8ff66d8c  gcc/testsuite/gdc.dg/imports/pr108050/package.d
  c1371b9d51218c700b58595265d42b2d  gcc/testsuite/gdc.dg/imports/pr108877a.d
+ 9485d0785daa621b682e2b2f40ada8b1  gcc/testsuite/gdc.dg/imports/pr113125.d
  7ae8eee97923fab094ae5ca5a1eca902  gcc/testsuite/gdc.dg/imports/pr92216.d
  8120e5c267785a8c8b8eb099660e9a14  gcc/testsuite/gdc.dg/intrinsics.d
! 6548f02fc0c4042868151b5d244e80ad  gcc/testsuite/gdc.dg/intrinsics_reject.d
! 826efeb058d9b756b1d0da1be1487998  gcc/testsuite/gdc.dg/lto/lto.exp
  73f4e0e4c2d7cacc12e6ae72ff1a988e  gcc/testsuite/gdc.dg/lto/ltotests_0.d
  bcf14abbb66e47644086ee0018354420  gcc/testsuite/gdc.dg/lto/ltotests_1.d
  67f3da95e0d4f9e0695facaa788ce93f  gcc/testsuite/gdc.dg/lto/pr102094_0.d
+ 6754dca2db4020cceebad647ec257399  gcc/testsuite/gdc.dg/nogc1.d
  72df2b7de363980279c39b35784dcf57  gcc/testsuite/gdc.dg/nrvo1.d
  7d27bb4ae013be8b6cb21a42a730353d  gcc/testsuite/gdc.dg/pr100882a.d
  167004b1d3ea4a1c36668f029fbe4290  gcc/testsuite/gdc.dg/pr100882b.d
*************** a9a8e149ae5d411f067a1e0312491f4d  gcc/te
*** 79344,79349 ****
--- 88121,88133 ----
  f0bb47c02bfbb905cf063586cccf248d  gcc/testsuite/gdc.dg/pr110514b.d
  5c59d3e98036f128b405b1247659bb7f  gcc/testsuite/gdc.dg/pr110514c.d
  7124a74c780cc3de82649fa56120e037  gcc/testsuite/gdc.dg/pr110514d.d
+ 65d0d00a4d68ddc7476ea00fc7bcf91a  gcc/testsuite/gdc.dg/pr110712.d
+ a5d08c3adb631046916a34188c9fa67d  gcc/testsuite/gdc.dg/pr110959.d
+ ddd530df4f1d7e7128b4953096cd25ce  gcc/testsuite/gdc.dg/pr111650.d
+ 5bf4c18033711e862e1b35b2017684a3  gcc/testsuite/gdc.dg/pr112270.d
+ a2d402e0596a4abb1dc6e25b11e9aa9c  gcc/testsuite/gdc.dg/pr112285.d
+ 83f6a6a53d8587bd4243109d22d0b9f5  gcc/testsuite/gdc.dg/pr112290.d
+ 9b63f428c6cdc3f7abd69df6a3077880  gcc/testsuite/gdc.dg/pr113125.d
  d32aa8ed5ea10931be4ddb5bb9e863d8  gcc/testsuite/gdc.dg/pr89017.d
  53fa8db94d4ca3fc9ba83769733dc0e7  gcc/testsuite/gdc.dg/pr89041.d
  6c316b13f71ea31fcada56b58a41ebd1  gcc/testsuite/gdc.dg/pr89042a.d
*************** dc97b4112b134cae3d15aab92424d97a  gcc/te
*** 79382,79388 ****
  a55903f9c72658c02ea18841f80bff0c  gcc/testsuite/gdc.dg/pr98427.d
  2ff2dd55acd20dffe2b5e58febe66c8b  gcc/testsuite/gdc.dg/pr98457.d
  3b746393a80b865ba51671750bc32bb9  gcc/testsuite/gdc.dg/pr99914.d
! 1fd119d355e67b10984524dba69548c1  gcc/testsuite/gdc.dg/rtti1.d
  2586587f34ed7ef788014cd87436908f  gcc/testsuite/gdc.dg/simd1.d
  a182c1f547b3b5d1ac97048fc88292b8  gcc/testsuite/gdc.dg/simd10447.d
  391b914cb5a7ad86f4f5b923fd3ef898  gcc/testsuite/gdc.dg/simd12776.d
--- 88166,88172 ----
  a55903f9c72658c02ea18841f80bff0c  gcc/testsuite/gdc.dg/pr98427.d
  2ff2dd55acd20dffe2b5e58febe66c8b  gcc/testsuite/gdc.dg/pr98457.d
  3b746393a80b865ba51671750bc32bb9  gcc/testsuite/gdc.dg/pr99914.d
! a236812cd6f3973a12c60a0d7ee4701c  gcc/testsuite/gdc.dg/rtti1.d
  2586587f34ed7ef788014cd87436908f  gcc/testsuite/gdc.dg/simd1.d
  a182c1f547b3b5d1ac97048fc88292b8  gcc/testsuite/gdc.dg/simd10447.d
  391b914cb5a7ad86f4f5b923fd3ef898  gcc/testsuite/gdc.dg/simd12776.d
*************** ff744a0a8c5876d35d04359a49ff0f84  gcc/te
*** 79471,79476 ****
--- 88255,88262 ----
  1a8b304f6e334e6a55c02413ae1ffbff  gcc/testsuite/gdc.dg/torture/pr110406.d
  827ebe506781bb2fabf9411464081efe  gcc/testsuite/gdc.dg/torture/pr110516a.d
  de9193ce38f7ef3ee1cc3a94fc8a92dc  gcc/testsuite/gdc.dg/torture/pr110516b.d
+ ad67c2aef0ecf01677e58695b0cc5d36  gcc/testsuite/gdc.dg/torture/pr113758.d
+ c3a3fcac804266bf984aad50e1f84157  gcc/testsuite/gdc.dg/torture/pr114171.d
  580aadb24b666799e25f1f02ef3b7bbb  gcc/testsuite/gdc.dg/torture/pr92309.d
  d5626e21f8cdc22799175cb6adfddfd6  gcc/testsuite/gdc.dg/torture/pr94424.d
  ae5b279461655f243d767b80a6d0bc1b  gcc/testsuite/gdc.dg/torture/pr94777b.d
*************** d21b6150a8d726bb469bed3f4c7015d8  gcc/te
*** 79522,79540 ****
  0f6b11142f7729df8824f53d8910fbe7  gcc/testsuite/gdc.dg/torture/simd_shuffle.d
  174db156eca98308869e4cd982bc2123  gcc/testsuite/gdc.dg/torture/simd_shufflevector.d
  5715a07d9f806d53b0dc575b1c5f92cc  gcc/testsuite/gdc.dg/torture/simd_store.d
! d2b0854f39aed250c98010934317a0af  gcc/testsuite/gdc.dg/torture/torture.exp
  35b85b5b7759f88eacfa2a4d51303dae  gcc/testsuite/gdc.dg/ubsan/attr_no_sanitize2.d
  c7ab3cec87c4498faece019276ff666c  gcc/testsuite/gdc.dg/ubsan/pr88957.d
! 907a6d9761ab8faff8742c9cbdcae84f  gcc/testsuite/gdc.dg/ubsan/ubsan.exp
  310f79be9999b0b9e22f7cfbfe79f71d  gcc/testsuite/gdc.test/README.gcc
  39d4bcd12f778b37cbfbe3b82aa1da94  gcc/testsuite/gdc.test/compilable/99bottles.d
  93a145e4de3beb6c8a655fcdc4d097ee  gcc/testsuite/gdc.test/compilable/Test16206.d
  d0da0bd439ac994effa1536916a8cb97  gcc/testsuite/gdc.test/compilable/a3682.d
  695153e68a4a8b3579aeca75fd920e75  gcc/testsuite/gdc.test/compilable/aggr_alignment.d
  9e6586be83fe48d4f429380e3b4729f4  gcc/testsuite/gdc.test/compilable/aliasassign.d
! e94dbc21b72d0458fe61f1f27467da09  gcc/testsuite/gdc.test/compilable/aliasdecl.d
  c830eb21b0dd96c9b8d314d8bbdf13b3  gcc/testsuite/gdc.test/compilable/alignment.d
  07983dc221a81489d42ae7308d4bb3b1  gcc/testsuite/gdc.test/compilable/art4769.d
  42ddfcff51dacb470df4e5adfdbfd451  gcc/testsuite/gdc.test/compilable/b11118.d
  abab396c9a34d7ffac07eefc356bf0dd  gcc/testsuite/gdc.test/compilable/b12001.d
  306b045142ce891e1de322f68319170a  gcc/testsuite/gdc.test/compilable/b1215.d
--- 88308,88327 ----
  0f6b11142f7729df8824f53d8910fbe7  gcc/testsuite/gdc.dg/torture/simd_shuffle.d
  174db156eca98308869e4cd982bc2123  gcc/testsuite/gdc.dg/torture/simd_shufflevector.d
  5715a07d9f806d53b0dc575b1c5f92cc  gcc/testsuite/gdc.dg/torture/simd_store.d
! 0c353e702fd1caca92a86c04ae6f0dec  gcc/testsuite/gdc.dg/torture/torture.exp
  35b85b5b7759f88eacfa2a4d51303dae  gcc/testsuite/gdc.dg/ubsan/attr_no_sanitize2.d
  c7ab3cec87c4498faece019276ff666c  gcc/testsuite/gdc.dg/ubsan/pr88957.d
! 7bb5853c695c42c240698058271e5a44  gcc/testsuite/gdc.dg/ubsan/ubsan.exp
  310f79be9999b0b9e22f7cfbfe79f71d  gcc/testsuite/gdc.test/README.gcc
  39d4bcd12f778b37cbfbe3b82aa1da94  gcc/testsuite/gdc.test/compilable/99bottles.d
  93a145e4de3beb6c8a655fcdc4d097ee  gcc/testsuite/gdc.test/compilable/Test16206.d
  d0da0bd439ac994effa1536916a8cb97  gcc/testsuite/gdc.test/compilable/a3682.d
  695153e68a4a8b3579aeca75fd920e75  gcc/testsuite/gdc.test/compilable/aggr_alignment.d
  9e6586be83fe48d4f429380e3b4729f4  gcc/testsuite/gdc.test/compilable/aliasassign.d
! b714c44bedbeb93cfe4856069f8c8f71  gcc/testsuite/gdc.test/compilable/aliasdecl.d
  c830eb21b0dd96c9b8d314d8bbdf13b3  gcc/testsuite/gdc.test/compilable/alignment.d
  07983dc221a81489d42ae7308d4bb3b1  gcc/testsuite/gdc.test/compilable/art4769.d
+ bbfc30d42832fa1c0af3d1b895e7c5ca  gcc/testsuite/gdc.test/compilable/atomic_store_2_shared_classes.d
  42ddfcff51dacb470df4e5adfdbfd451  gcc/testsuite/gdc.test/compilable/b11118.d
  abab396c9a34d7ffac07eefc356bf0dd  gcc/testsuite/gdc.test/compilable/b12001.d
  306b045142ce891e1de322f68319170a  gcc/testsuite/gdc.test/compilable/b1215.d
*************** cb34f88e2d54dcbd9dee1e5b8dc5cc19  gcc/te
*** 79552,79558 ****
  43982378a0cd130db0fb9fa325c9e389  gcc/testsuite/gdc.test/compilable/b17111.d
  4e5226e13d233c83482f3a1c2b3c3511  gcc/testsuite/gdc.test/compilable/b17651.d
  f8c4f4c155900ffad759b3e9eac0e7cb  gcc/testsuite/gdc.test/compilable/b18197.d
! 6631d7340757fc80a204f4fa9b8cf8d5  gcc/testsuite/gdc.test/compilable/b18242.d
  985cbf872a2f9249c9e9c78338b0f501  gcc/testsuite/gdc.test/compilable/b19002.d
  64b55e148ca1fedc377a4d2f62206e24  gcc/testsuite/gdc.test/compilable/b19294.d
  cfe2c11af9d436d0e5614fb622d36cb9  gcc/testsuite/gdc.test/compilable/b19432.d
--- 88339,88345 ----
  43982378a0cd130db0fb9fa325c9e389  gcc/testsuite/gdc.test/compilable/b17111.d
  4e5226e13d233c83482f3a1c2b3c3511  gcc/testsuite/gdc.test/compilable/b17651.d
  f8c4f4c155900ffad759b3e9eac0e7cb  gcc/testsuite/gdc.test/compilable/b18197.d
! 6e8dfc8dc2ca10a3f2173890668b637e  gcc/testsuite/gdc.test/compilable/b18242.d
  985cbf872a2f9249c9e9c78338b0f501  gcc/testsuite/gdc.test/compilable/b19002.d
  64b55e148ca1fedc377a4d2f62206e24  gcc/testsuite/gdc.test/compilable/b19294.d
  cfe2c11af9d436d0e5614fb622d36cb9  gcc/testsuite/gdc.test/compilable/b19432.d
*************** b3ad87aeda84eecb8d251cc9087366b9  gcc/te
*** 79565,79571 ****
  75ad796573cbc828f8ed133dd322a6c7  gcc/testsuite/gdc.test/compilable/b20780.d
  aa31ae3115526255bd9b4fcc578a6909  gcc/testsuite/gdc.test/compilable/b20833.d
  f6cf3a07bcc035e041f5145a73b0acab  gcc/testsuite/gdc.test/compilable/b20885.d
! 6f806c291d4b0243cc9a3506f96d901f  gcc/testsuite/gdc.test/compilable/b20938.d
  37f3586142dde8e3fee6cab474108bd5  gcc/testsuite/gdc.test/compilable/b21285.d
  b70235cd02c0e382e8c76e4d9c446157  gcc/testsuite/gdc.test/compilable/b23620.d
  dd6b060571b0749203963259463139ec  gcc/testsuite/gdc.test/compilable/b33.d
--- 88352,88358 ----
  75ad796573cbc828f8ed133dd322a6c7  gcc/testsuite/gdc.test/compilable/b20780.d
  aa31ae3115526255bd9b4fcc578a6909  gcc/testsuite/gdc.test/compilable/b20833.d
  f6cf3a07bcc035e041f5145a73b0acab  gcc/testsuite/gdc.test/compilable/b20885.d
! cec711bed1c49ba59841e33c2c93cd2b  gcc/testsuite/gdc.test/compilable/b20938.d
  37f3586142dde8e3fee6cab474108bd5  gcc/testsuite/gdc.test/compilable/b21285.d
  b70235cd02c0e382e8c76e4d9c446157  gcc/testsuite/gdc.test/compilable/b23620.d
  dd6b060571b0749203963259463139ec  gcc/testsuite/gdc.test/compilable/b33.d
*************** fbecccee350c9b5a8815a306c8c7a540  gcc/te
*** 79586,79603 ****
  a8b6758c3ba22d9d2f071a8dc18ecab5  gcc/testsuite/gdc.test/compilable/cdcmp.d
  2195ce4127b8a9f492fa85a2796e69c1  gcc/testsuite/gdc.test/compilable/checkimports3.d
  2dc395b33298bfa04c55987e2421b833  gcc/testsuite/gdc.test/compilable/chkformat.d
! 641f46c4748210b1af1c18e0ff967755  gcc/testsuite/gdc.test/compilable/commontype.d
! bd24ce7f1333e895e549e1f53f945d4b  gcc/testsuite/gdc.test/compilable/compilable.exp
  c96c3e8b2321d73e0973e2c2fd8bbf35  gcc/testsuite/gdc.test/compilable/compile1.d
  f99c18d556cf5938ebbb7d3b40c97dd7  gcc/testsuite/gdc.test/compilable/const.d
  cb099446f4c201cc98f8b7b70599433f  gcc/testsuite/gdc.test/compilable/covariant_override.d
  147666b156671e03a85243ba4426d716  gcc/testsuite/gdc.test/compilable/cpp_abi_tag_unused.d
! 6c4f47042f052830f88aadcf29ab9003  gcc/testsuite/gdc.test/compilable/cppmangle.d
  b69be4810e3ae0bc0ca5518561733f11  gcc/testsuite/gdc.test/compilable/cppmangle2.d
  0ebbf5c23d04675fd1e7685aabd2aa8b  gcc/testsuite/gdc.test/compilable/cppmangle3.d
  dcb6459009e7567342912938e6f5aabf  gcc/testsuite/gdc.test/compilable/cppmangle_abitag.d
  f14da5eed6d94462ca44fdb445eeae9f  gcc/testsuite/gdc.test/compilable/ctfe_math.d
! 3507b2b18c7e1d1dcb294c2b8f586a05  gcc/testsuite/gdc.test/compilable/dbitfield.d
  857dd7cb6020badfa814837f2ed143e0  gcc/testsuite/gdc.test/compilable/ddoc1.d
  a9609bf56f52db363bdf76f9156a2456  gcc/testsuite/gdc.test/compilable/ddoc10.d
  74990bf8bc55d39b1555ac59d55801bf  gcc/testsuite/gdc.test/compilable/ddoc10236.d
--- 88373,88390 ----
  a8b6758c3ba22d9d2f071a8dc18ecab5  gcc/testsuite/gdc.test/compilable/cdcmp.d
  2195ce4127b8a9f492fa85a2796e69c1  gcc/testsuite/gdc.test/compilable/checkimports3.d
  2dc395b33298bfa04c55987e2421b833  gcc/testsuite/gdc.test/compilable/chkformat.d
! 3f35daa0fd4ae106ce4b0b87093d646d  gcc/testsuite/gdc.test/compilable/commontype.d
! e56bc43893d3a8b8db48bb3aa37bb981  gcc/testsuite/gdc.test/compilable/compilable.exp
  c96c3e8b2321d73e0973e2c2fd8bbf35  gcc/testsuite/gdc.test/compilable/compile1.d
  f99c18d556cf5938ebbb7d3b40c97dd7  gcc/testsuite/gdc.test/compilable/const.d
  cb099446f4c201cc98f8b7b70599433f  gcc/testsuite/gdc.test/compilable/covariant_override.d
  147666b156671e03a85243ba4426d716  gcc/testsuite/gdc.test/compilable/cpp_abi_tag_unused.d
! 09a474e5de55e4009e1ca5e0a78c216f  gcc/testsuite/gdc.test/compilable/cppmangle.d
  b69be4810e3ae0bc0ca5518561733f11  gcc/testsuite/gdc.test/compilable/cppmangle2.d
  0ebbf5c23d04675fd1e7685aabd2aa8b  gcc/testsuite/gdc.test/compilable/cppmangle3.d
  dcb6459009e7567342912938e6f5aabf  gcc/testsuite/gdc.test/compilable/cppmangle_abitag.d
  f14da5eed6d94462ca44fdb445eeae9f  gcc/testsuite/gdc.test/compilable/ctfe_math.d
! 7293dc73855a72c298049a2fa501bc17  gcc/testsuite/gdc.test/compilable/dbitfield.d
  857dd7cb6020badfa814837f2ed143e0  gcc/testsuite/gdc.test/compilable/ddoc1.d
  a9609bf56f52db363bdf76f9156a2456  gcc/testsuite/gdc.test/compilable/ddoc10.d
  74990bf8bc55d39b1555ac59d55801bf  gcc/testsuite/gdc.test/compilable/ddoc10236.d
*************** ff0234cdc2b702188c8e7cbb0a918dee  gcc/te
*** 79612,79618 ****
  2e5534001a63872d1e43fd07b839a33d  gcc/testsuite/gdc.test/compilable/ddoc11479.d
  d6194ace0943acfde033b35b6c62b7d8  gcc/testsuite/gdc.test/compilable/ddoc11511.d
  05e290a08d605e03d6378946f108c05a  gcc/testsuite/gdc.test/compilable/ddoc11823.d
- 0adff778024e4af5dce8b2a204beb120  gcc/testsuite/gdc.test/compilable/ddoc12.d
  62381e0d58c40474e6c694aaf1eb1fe3  gcc/testsuite/gdc.test/compilable/ddoc12706.d
  94c2acc5fc0f3b5d659728dfa5b3facc  gcc/testsuite/gdc.test/compilable/ddoc12745.d
  96b97e70616af0ff79a07235d90228eb  gcc/testsuite/gdc.test/compilable/ddoc13.d
--- 88399,88404 ----
*************** df1fb7745929070aaca39d801ca1acf9  gcc/te
*** 79633,79642 ****
  9ebc86b1fec1f51ad58590953f0f190b  gcc/testsuite/gdc.test/compilable/ddoc2273.d
  3f53126b5730baeab280edc60558726f  gcc/testsuite/gdc.test/compilable/ddoc3.d
  9de7e1102d1842224315b0a46ad28527  gcc/testsuite/gdc.test/compilable/ddoc4.d
! 0d402660d10b60ed7b5449f0db4e7b3c  gcc/testsuite/gdc.test/compilable/ddoc4162.d
  d74ed8ce2acdd0978f0bf5c924d667f9  gcc/testsuite/gdc.test/compilable/ddoc4899.d
  65268cff98793958d2f68941412e493e  gcc/testsuite/gdc.test/compilable/ddoc5.d
! 4d4a10ba50e283c5bec1c9032b205816  gcc/testsuite/gdc.test/compilable/ddoc5446.d
  b2fd39ab2f11010247824c55463852ac  gcc/testsuite/gdc.test/compilable/ddoc5446a.d
  1b40f20bffe68e4bff81197aff890255  gcc/testsuite/gdc.test/compilable/ddoc5446b.d
  eac4ebf1c1021a0904f3a1fd38b5a82e  gcc/testsuite/gdc.test/compilable/ddoc6.d
--- 88419,88428 ----
  9ebc86b1fec1f51ad58590953f0f190b  gcc/testsuite/gdc.test/compilable/ddoc2273.d
  3f53126b5730baeab280edc60558726f  gcc/testsuite/gdc.test/compilable/ddoc3.d
  9de7e1102d1842224315b0a46ad28527  gcc/testsuite/gdc.test/compilable/ddoc4.d
! b471b8ce9f27541e9cb779431f65a346  gcc/testsuite/gdc.test/compilable/ddoc4162.d
  d74ed8ce2acdd0978f0bf5c924d667f9  gcc/testsuite/gdc.test/compilable/ddoc4899.d
  65268cff98793958d2f68941412e493e  gcc/testsuite/gdc.test/compilable/ddoc5.d
! c20c2f516866ebddea1e242087e3ea71  gcc/testsuite/gdc.test/compilable/ddoc5446.d
  b2fd39ab2f11010247824c55463852ac  gcc/testsuite/gdc.test/compilable/ddoc5446a.d
  1b40f20bffe68e4bff81197aff890255  gcc/testsuite/gdc.test/compilable/ddoc5446b.d
  eac4ebf1c1021a0904f3a1fd38b5a82e  gcc/testsuite/gdc.test/compilable/ddoc6.d
*************** c3bf3a6f0e05596fa2dab95000455a6a  gcc/te
*** 79646,79652 ****
  79490ec27e58c2c151173c9deb3ebc62  gcc/testsuite/gdc.test/compilable/ddoc7555.d
  1029cbb05efde2dc48a73d30e3b5924e  gcc/testsuite/gdc.test/compilable/ddoc7656.d
  0506ce86a30a88d8346bbef805ad0e83  gcc/testsuite/gdc.test/compilable/ddoc7715.d
! 0749c8f6a0b7a66a9dc2c440e9de4004  gcc/testsuite/gdc.test/compilable/ddoc7795.d
  c247222ca4edaba935393b877193a8fa  gcc/testsuite/gdc.test/compilable/ddoc8.d
  a5ab479043947418bb4cccfe65b9fdb6  gcc/testsuite/gdc.test/compilable/ddoc8271.d
  f80e0976785cbed66e4f34b97f1d25c0  gcc/testsuite/gdc.test/compilable/ddoc8739.d
--- 88432,88438 ----
  79490ec27e58c2c151173c9deb3ebc62  gcc/testsuite/gdc.test/compilable/ddoc7555.d
  1029cbb05efde2dc48a73d30e3b5924e  gcc/testsuite/gdc.test/compilable/ddoc7656.d
  0506ce86a30a88d8346bbef805ad0e83  gcc/testsuite/gdc.test/compilable/ddoc7715.d
! 579d74ed47390081efba1d0948f5f0a9  gcc/testsuite/gdc.test/compilable/ddoc7795.d
  c247222ca4edaba935393b877193a8fa  gcc/testsuite/gdc.test/compilable/ddoc8.d
  a5ab479043947418bb4cccfe65b9fdb6  gcc/testsuite/gdc.test/compilable/ddoc8271.d
  f80e0976785cbed66e4f34b97f1d25c0  gcc/testsuite/gdc.test/compilable/ddoc8739.d
*************** c6785f2eb3b3f22876ffcd5adb44f540  gcc/te
*** 79666,79671 ****
--- 88452,88458 ----
  e3a824c13d575010feaa8a04a40f8185  gcc/testsuite/gdc.test/compilable/ddoc9789.d
  9d089db222c5dfdc412960134dbdd5d5  gcc/testsuite/gdc.test/compilable/ddoc9903.d
  7e94f06d537f408b81e58b54144950de  gcc/testsuite/gdc.test/compilable/ddocYear.d
+ 0adff778024e4af5dce8b2a204beb120  gcc/testsuite/gdc.test/compilable/ddoc_bom_UTF8.d
  95bc433ac69cd87aba7a438c4e0c89ab  gcc/testsuite/gdc.test/compilable/ddoc_markdown_breaks.d
  7cdb906708020dc86b5dae3c36d69bfa  gcc/testsuite/gdc.test/compilable/ddoc_markdown_code.d
  d5212bf8222d1c6c407aaefc446ad536  gcc/testsuite/gdc.test/compilable/ddoc_markdown_emphasis.d
*************** ece3fcebff1c5a8167a5e21587d73d44  gcc/te
*** 79696,79705 ****
  9c17173fd900ef5ec5e576a13c2035d4  gcc/testsuite/gdc.test/compilable/dtoh_AliasDeclaration.d
  585e4afbf498433076a80d7cf8345421  gcc/testsuite/gdc.test/compilable/dtoh_AliasDeclaration_98.d
  1d99d2bc4c20a959c63d21832240a02c  gcc/testsuite/gdc.test/compilable/dtoh_AnonDeclaration.d
! 671b8ea785bcb79cc8d4f1a912a22d51  gcc/testsuite/gdc.test/compilable/dtoh_CPPNamespaceDeclaration.d
  840d69c226a21ac8c3a3c1b4cfd6834e  gcc/testsuite/gdc.test/compilable/dtoh_ClassDeclaration.d
! 9c26d9bf141272a2c2a869d25aed075a  gcc/testsuite/gdc.test/compilable/dtoh_StructDeclaration.d
! 5ce0ebb85cbb3d412143c38b91aac424  gcc/testsuite/gdc.test/compilable/dtoh_TemplateDeclaration.d
  a67a923fff901849c12defffb276680b  gcc/testsuite/gdc.test/compilable/dtoh_UnionDeclaration.d
  7d955c40525206951fce203f46fd30b4  gcc/testsuite/gdc.test/compilable/dtoh_VarDeclaration.d
  8bb39e8cee1ae6d61d691e78989b728b  gcc/testsuite/gdc.test/compilable/dtoh_cpp98_compat.d
--- 88483,88492 ----
  9c17173fd900ef5ec5e576a13c2035d4  gcc/testsuite/gdc.test/compilable/dtoh_AliasDeclaration.d
  585e4afbf498433076a80d7cf8345421  gcc/testsuite/gdc.test/compilable/dtoh_AliasDeclaration_98.d
  1d99d2bc4c20a959c63d21832240a02c  gcc/testsuite/gdc.test/compilable/dtoh_AnonDeclaration.d
! 8c813fab8d377cb0b1024b71b1341f7e  gcc/testsuite/gdc.test/compilable/dtoh_CPPNamespaceDeclaration.d
  840d69c226a21ac8c3a3c1b4cfd6834e  gcc/testsuite/gdc.test/compilable/dtoh_ClassDeclaration.d
! c4bc92df8eaebe56b02521ae9eb5cba7  gcc/testsuite/gdc.test/compilable/dtoh_StructDeclaration.d
! cedf5f22e05f00d6b02cb076fec0ff71  gcc/testsuite/gdc.test/compilable/dtoh_TemplateDeclaration.d
  a67a923fff901849c12defffb276680b  gcc/testsuite/gdc.test/compilable/dtoh_UnionDeclaration.d
  7d955c40525206951fce203f46fd30b4  gcc/testsuite/gdc.test/compilable/dtoh_VarDeclaration.d
  8bb39e8cee1ae6d61d691e78989b728b  gcc/testsuite/gdc.test/compilable/dtoh_cpp98_compat.d
*************** a67a923fff901849c12defffb276680b  gcc/te
*** 79708,79727 ****
  e2f2027570a3c5dde17c9a8d1f26ecf7  gcc/testsuite/gdc.test/compilable/dtoh_expressions.d
  aea612b99d0330abf7b5b676425c924e  gcc/testsuite/gdc.test/compilable/dtoh_extern_type.d
  1af7ca106c9c623f4c3a9b716291a8d6  gcc/testsuite/gdc.test/compilable/dtoh_forwarding.d
! dfdca8cfc5d153846f60c43d1a12d9cd  gcc/testsuite/gdc.test/compilable/dtoh_functions.d
  68281bd52968b56df91bf4775ce2baee  gcc/testsuite/gdc.test/compilable/dtoh_ignored.d
! 1705cb5dbd4492b0030aae933d4ba277  gcc/testsuite/gdc.test/compilable/dtoh_invalid_identifiers.d
  19182c4d4982a7c9759a2656b1e38e15  gcc/testsuite/gdc.test/compilable/dtoh_mangling.d
  8b616820b6c5194c08d2d32f7304979a  gcc/testsuite/gdc.test/compilable/dtoh_names.d
  abcb9343fd057dba5404300afbdc0d3a  gcc/testsuite/gdc.test/compilable/dtoh_protection.d
  49f593d7e38ca4c8e39239f5d90796a1  gcc/testsuite/gdc.test/compilable/dtoh_required_symbols.d
! a54d34baf37716d1847e42e2e8fa36ed  gcc/testsuite/gdc.test/compilable/dtoh_special_enum.d
  36b0a170930a352298a7440d65b0e0a7  gcc/testsuite/gdc.test/compilable/dtoh_unittest_block.d
  8f1c422b1b051604f6b7d368b5c266d9  gcc/testsuite/gdc.test/compilable/dtoh_verbose.d
  8fe1999b7dc753be465ad414e5ced86b  gcc/testsuite/gdc.test/compilable/dtorfields.d
  9f24034cca71b2232520662f552a99ab  gcc/testsuite/gdc.test/compilable/dtorfields_deprecation.d
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gdc.test/compilable/empty_file.d
  7013b630e9767ffb53b9375f518abaee  gcc/testsuite/gdc.test/compilable/emptygenmain.d
  90f6d815cae8c116f4d22a25f5cc61b4  gcc/testsuite/gdc.test/compilable/enumbasearithmetic.d
  7f97d3263822f7811155ec0ef0ba7d2b  gcc/testsuite/gdc.test/compilable/exception.d
  df4ecb9ef4fdeba279c36a5f795fa64c  gcc/testsuite/gdc.test/compilable/extra-files/build23499.d
--- 88495,88515 ----
  e2f2027570a3c5dde17c9a8d1f26ecf7  gcc/testsuite/gdc.test/compilable/dtoh_expressions.d
  aea612b99d0330abf7b5b676425c924e  gcc/testsuite/gdc.test/compilable/dtoh_extern_type.d
  1af7ca106c9c623f4c3a9b716291a8d6  gcc/testsuite/gdc.test/compilable/dtoh_forwarding.d
! 56a33be35f052ee28e31557d3fc52305  gcc/testsuite/gdc.test/compilable/dtoh_functions.d
  68281bd52968b56df91bf4775ce2baee  gcc/testsuite/gdc.test/compilable/dtoh_ignored.d
! b00969b621a1fdbe21d5a83551163896  gcc/testsuite/gdc.test/compilable/dtoh_invalid_identifiers.d
  19182c4d4982a7c9759a2656b1e38e15  gcc/testsuite/gdc.test/compilable/dtoh_mangling.d
  8b616820b6c5194c08d2d32f7304979a  gcc/testsuite/gdc.test/compilable/dtoh_names.d
  abcb9343fd057dba5404300afbdc0d3a  gcc/testsuite/gdc.test/compilable/dtoh_protection.d
  49f593d7e38ca4c8e39239f5d90796a1  gcc/testsuite/gdc.test/compilable/dtoh_required_symbols.d
! 1f62f9dd286605a1660cc5e0e29a4e79  gcc/testsuite/gdc.test/compilable/dtoh_special_enum.d
  36b0a170930a352298a7440d65b0e0a7  gcc/testsuite/gdc.test/compilable/dtoh_unittest_block.d
  8f1c422b1b051604f6b7d368b5c266d9  gcc/testsuite/gdc.test/compilable/dtoh_verbose.d
  8fe1999b7dc753be465ad414e5ced86b  gcc/testsuite/gdc.test/compilable/dtorfields.d
  9f24034cca71b2232520662f552a99ab  gcc/testsuite/gdc.test/compilable/dtorfields_deprecation.d
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gdc.test/compilable/empty_file.d
  7013b630e9767ffb53b9375f518abaee  gcc/testsuite/gdc.test/compilable/emptygenmain.d
+ bc964ec877c17f5edc90da339dc478ac  gcc/testsuite/gdc.test/compilable/emptystatement.d
  90f6d815cae8c116f4d22a25f5cc61b4  gcc/testsuite/gdc.test/compilable/enumbasearithmetic.d
  7f97d3263822f7811155ec0ef0ba7d2b  gcc/testsuite/gdc.test/compilable/exception.d
  df4ecb9ef4fdeba279c36a5f795fa64c  gcc/testsuite/gdc.test/compilable/extra-files/build23499.d
*************** ea681c6688dc33dd7d69823e2ae6b7d4  gcc/te
*** 79851,79856 ****
--- 88639,88645 ----
  39f83af43050289964fb863bb5514c99  gcc/testsuite/gdc.test/compilable/imports/b33a.d
  f4c5d55f8da0c997fd0729835ad08f7e  gcc/testsuite/gdc.test/compilable/imports/b3682.d
  fb74ec9731e081481c9cb9f98f6dcdc8  gcc/testsuite/gdc.test/compilable/imports/bug8922.d
+ f389cc177ab1b71b1fcae080f41f7d5c  gcc/testsuite/gdc.test/compilable/imports/c23789.i
  9948a034269cc602a8027767cdfd2ad7  gcc/testsuite/gdc.test/compilable/imports/c314.d
  e549fb3fb27aef58c9fb0e637020f69b  gcc/testsuite/gdc.test/compilable/imports/checkimports3a.d
  f6dc0b6e038af5071ee1975e134b72f2  gcc/testsuite/gdc.test/compilable/imports/checkimports3b.d
*************** f42b040cc735f147de9e381788dcc63b  gcc/te
*** 79862,79868 ****
  d6c15f746a2feba66db905f13d4368c5  gcc/testsuite/gdc.test/compilable/imports/defab.d
  51c4cc09ad07993ac2f4044028515968  gcc/testsuite/gdc.test/compilable/imports/defac.d
  57669e79302b6a7341ca254736da39ed  gcc/testsuite/gdc.test/compilable/imports/defad.d
! 25f28597e62ebab0394fa4e6b6cc4873  gcc/testsuite/gdc.test/compilable/imports/defines.c
  ad665c5d6e56c4f3b4f2ebee84c46319  gcc/testsuite/gdc.test/compilable/imports/diag12598a.d
  abe63f7624cf794cd7b3698661f93ee6  gcc/testsuite/gdc.test/compilable/imports/dip22.d
  8b2f94f2c9591cd94d8c008b51ef253e  gcc/testsuite/gdc.test/compilable/imports/dip22d.d
--- 88651,88657 ----
  d6c15f746a2feba66db905f13d4368c5  gcc/testsuite/gdc.test/compilable/imports/defab.d
  51c4cc09ad07993ac2f4044028515968  gcc/testsuite/gdc.test/compilable/imports/defac.d
  57669e79302b6a7341ca254736da39ed  gcc/testsuite/gdc.test/compilable/imports/defad.d
! c80bb8afbed769e29fefdefec8ab149e  gcc/testsuite/gdc.test/compilable/imports/defines.c
  ad665c5d6e56c4f3b4f2ebee84c46319  gcc/testsuite/gdc.test/compilable/imports/diag12598a.d
  abe63f7624cf794cd7b3698661f93ee6  gcc/testsuite/gdc.test/compilable/imports/dip22.d
  8b2f94f2c9591cd94d8c008b51ef253e  gcc/testsuite/gdc.test/compilable/imports/dip22d.d
*************** a667727c02ccc971d7c05c508de4ada9  gcc/te
*** 79905,79920 ****
--- 88694,88715 ----
  9883398346a2178c5e7cbe0f1bd31a0c  gcc/testsuite/gdc.test/compilable/imports/imp22665.c
  91bc6c76a8e99bc3e0bcdb80a716c03d  gcc/testsuite/gdc.test/compilable/imports/imp22734.c
  ff06a5fcaab395e1905535b4dc53d53a  gcc/testsuite/gdc.test/compilable/imports/imp23662.c
+ da2010c9d87d8db4429882769a102bd4  gcc/testsuite/gdc.test/compilable/imports/imp24022.c
  ffb02a7ce616b7c2fdd649a67dc4b02d  gcc/testsuite/gdc.test/compilable/imports/impfieldwise.d
  3d9aac3b6cd1bdc497ccaa9fbed2a264  gcc/testsuite/gdc.test/compilable/imports/issue21614a.d
  80335f846a510030cde94b5996d091ba  gcc/testsuite/gdc.test/compilable/imports/jsonimport1.d
  51b97508db426b4d26e878c441fa32e5  gcc/testsuite/gdc.test/compilable/imports/jsonimport2.d
  7eaf88579e1e5647bd4359a7cd817d97  gcc/testsuite/gdc.test/compilable/imports/jsonimport3.d
  f3a1a3ccef2dfb9805ab0a3f9233b0a1  gcc/testsuite/gdc.test/compilable/imports/jsonimport4.d
+ 45ebb5a815c10087e9a2cd646b68a3fb  gcc/testsuite/gdc.test/compilable/imports/library.c
  e66844cdd008e5c3984e6b678fe37371  gcc/testsuite/gdc.test/compilable/imports/pkg11847/mod11847.d
  52bc9c2edbeea564280b3f6f3547285b  gcc/testsuite/gdc.test/compilable/imports/pkg11847/package.d
  b56c3e652d5f4ccf730dd3dd9bc3afa8  gcc/testsuite/gdc.test/compilable/imports/pkg16044/package.d
  a6bf37840e2367e81572f030740a8b42  gcc/testsuite/gdc.test/compilable/imports/pkg16044/sub/package.d
+ 0bfc35a3619b924a0e4e011d92b0b460  gcc/testsuite/gdc.test/compilable/imports/pkg20008/package.d
+ 1c5e1d7a046ec7281272ab41e9dcf9de  gcc/testsuite/gdc.test/compilable/imports/pkg20008/submod.d
+ b21f752d40c303e3ba2cfe97b5116d7e  gcc/testsuite/gdc.test/compilable/imports/pkg20008/subpkg/package.d
+ 1a79db8ab428ccd68f4037ce0dade5e4  gcc/testsuite/gdc.test/compilable/imports/pkg20008/subpkg/subsubmod.d
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gdc.test/compilable/imports/pkg20537/package.d
  44563428b833c5250f9c2d2dc28be2ea  gcc/testsuite/gdc.test/compilable/imports/pkg22952/package.d
  cf35fae634540a741b269f55e769278f  gcc/testsuite/gdc.test/compilable/imports/pkg313/c313.d
*************** e00a356527fd9de68672afcd288ed7d8  gcc/te
*** 80014,80019 ****
--- 88809,88816 ----
  b605f77d98fb574cd83369e7ab76edd4  gcc/testsuite/gdc.test/compilable/imports/test23490frop.d
  37c21a3320b2ca4d7ce8d549bbe5795b  gcc/testsuite/gdc.test/compilable/imports/test23490pop.d
  4d51d2d004ad1f397490eef55d25cc2f  gcc/testsuite/gdc.test/compilable/imports/test23490zoo.d
+ 395ef5217a5806c1ea067d3d5529e485  gcc/testsuite/gdc.test/compilable/imports/test24390a.d
+ bd5f220463837b1192b826cdab6baa95  gcc/testsuite/gdc.test/compilable/imports/test24390b.d
  e6b06846e47d7e657b4b6da3e34a6954  gcc/testsuite/gdc.test/compilable/imports/test25a.d
  dcecd311a16774881975a1c3b62d5e02  gcc/testsuite/gdc.test/compilable/imports/test25b.d
  dd423bc6d69cba269b09946e729dbf08  gcc/testsuite/gdc.test/compilable/imports/test2991.d
*************** fe75a5bf23b1eb33765d011977079b0b  gcc/te
*** 80050,80056 ****
  6c55be84651c6540f4b989e9dcb5c109  gcc/testsuite/gdc.test/compilable/imports/test9436node.d
  cadd014d7255e7f6db535c7471a483ff  gcc/testsuite/gdc.test/compilable/imports/test9436type.d
  01ed06d7de607a345a56d7bc9c5c282e  gcc/testsuite/gdc.test/compilable/imports/test9672a.d
! 39306213b848b2be4bf9a99daebdc530  gcc/testsuite/gdc.test/compilable/imports/test9692b.d
  c07829f5ac3a3d882b91ac9c6782749b  gcc/testsuite/gdc.test/compilable/imports/test9919a.d
  32a52e0bd54401a1eeeb23fb0bf1bd50  gcc/testsuite/gdc.test/compilable/imports/test9919b.d
  1f52a2cd7c5856d40960ac1929041ec8  gcc/testsuite/gdc.test/compilable/imports/test9919c.d
--- 88847,88853 ----
  6c55be84651c6540f4b989e9dcb5c109  gcc/testsuite/gdc.test/compilable/imports/test9436node.d
  cadd014d7255e7f6db535c7471a483ff  gcc/testsuite/gdc.test/compilable/imports/test9436type.d
  01ed06d7de607a345a56d7bc9c5c282e  gcc/testsuite/gdc.test/compilable/imports/test9672a.d
! da9b02aebbb87dc2cc04e6810472f67f  gcc/testsuite/gdc.test/compilable/imports/test9692b.d
  c07829f5ac3a3d882b91ac9c6782749b  gcc/testsuite/gdc.test/compilable/imports/test9919a.d
  32a52e0bd54401a1eeeb23fb0bf1bd50  gcc/testsuite/gdc.test/compilable/imports/test9919b.d
  1f52a2cd7c5856d40960ac1929041ec8  gcc/testsuite/gdc.test/compilable/imports/test9919c.d
*************** e1b2201bb7bef13edd5b1dd62a016069  gcc/te
*** 80066,80072 ****
  1fe81c33c6da1cbc003e0ab00f5e163c  gcc/testsuite/gdc.test/compilable/infer_stc.d
  13a308ac0197720d622c5e96c15af2f1  gcc/testsuite/gdc.test/compilable/inliner.d
  a2c2b21595b3ee690554e1ff236b06d9  gcc/testsuite/gdc.test/compilable/inliner2.d
! ef6621356266511f2cc350934f6c915d  gcc/testsuite/gdc.test/compilable/interpret3.d
  4e6e008425b8e270dc3a1df0495d9ce3  gcc/testsuite/gdc.test/compilable/interpret4.d
  06030303622e394ed8c4697f73259c9e  gcc/testsuite/gdc.test/compilable/interpret5.d
  450fffaacdb4952032aa47dc230ed71d  gcc/testsuite/gdc.test/compilable/isZeroInit.d
--- 88863,88869 ----
  1fe81c33c6da1cbc003e0ab00f5e163c  gcc/testsuite/gdc.test/compilable/infer_stc.d
  13a308ac0197720d622c5e96c15af2f1  gcc/testsuite/gdc.test/compilable/inliner.d
  a2c2b21595b3ee690554e1ff236b06d9  gcc/testsuite/gdc.test/compilable/inliner2.d
! e9fea20bddb4cf7f004d1b3439b6eb80  gcc/testsuite/gdc.test/compilable/interpret3.d
  4e6e008425b8e270dc3a1df0495d9ce3  gcc/testsuite/gdc.test/compilable/interpret4.d
  06030303622e394ed8c4697f73259c9e  gcc/testsuite/gdc.test/compilable/interpret5.d
  450fffaacdb4952032aa47dc230ed71d  gcc/testsuite/gdc.test/compilable/isZeroInit.d
*************** ef6621356266511f2cc350934f6c915d  gcc/te
*** 80076,80086 ****
  cb0a083c308a114ae069864cdecbf5db  gcc/testsuite/gdc.test/compilable/issue15478.d
  81c69273877811b825825151ec9fb164  gcc/testsuite/gdc.test/compilable/issue15795.d
  91ea4801e9a6d5f152b6fde693143ab3  gcc/testsuite/gdc.test/compilable/issue15818.d
! bd06f86cfa7b2ed9fb29a58c57efdcfc  gcc/testsuite/gdc.test/compilable/issue16020.d
  c0f06c2e74f038183aab3cc3cf221b3e  gcc/testsuite/gdc.test/compilable/issue16044.d
  b910b30d7854e09339dcc3d2fb33a7f1  gcc/testsuite/gdc.test/compilable/issue16472.d
  7bcbdbaec218cd3d09ad98dd4abbe588  gcc/testsuite/gdc.test/compilable/issue18097.d
  9233bd62bb2a9f406c9aca87b21e05fc  gcc/testsuite/gdc.test/compilable/issue19925.d
  daa2c8dffcb01b4cb7fedae1b33794fa  gcc/testsuite/gdc.test/compilable/issue20362.d
  922d1f80ce8888fbd0679ee853c38414  gcc/testsuite/gdc.test/compilable/issue20599.d
  e389a95af444bdb58242457866e64837  gcc/testsuite/gdc.test/compilable/issue20618.d
--- 88873,88884 ----
  cb0a083c308a114ae069864cdecbf5db  gcc/testsuite/gdc.test/compilable/issue15478.d
  81c69273877811b825825151ec9fb164  gcc/testsuite/gdc.test/compilable/issue15795.d
  91ea4801e9a6d5f152b6fde693143ab3  gcc/testsuite/gdc.test/compilable/issue15818.d
! ae88d21e8bfd01b05f4afba75f1e9a03  gcc/testsuite/gdc.test/compilable/issue16020.d
  c0f06c2e74f038183aab3cc3cf221b3e  gcc/testsuite/gdc.test/compilable/issue16044.d
  b910b30d7854e09339dcc3d2fb33a7f1  gcc/testsuite/gdc.test/compilable/issue16472.d
  7bcbdbaec218cd3d09ad98dd4abbe588  gcc/testsuite/gdc.test/compilable/issue18097.d
  9233bd62bb2a9f406c9aca87b21e05fc  gcc/testsuite/gdc.test/compilable/issue19925.d
+ 84569a59fa72cede17db7adb47fece04  gcc/testsuite/gdc.test/compilable/issue20339.d
  daa2c8dffcb01b4cb7fedae1b33794fa  gcc/testsuite/gdc.test/compilable/issue20362.d
  922d1f80ce8888fbd0679ee853c38414  gcc/testsuite/gdc.test/compilable/issue20599.d
  e389a95af444bdb58242457866e64837  gcc/testsuite/gdc.test/compilable/issue20618.d
*************** d44936b3c2d3be5638fdb042d88ff414  gcc/te
*** 80103,80112 ****
--- 88901,88916 ----
  24aa1bef43803bf7945269f6dbb963db  gcc/testsuite/gdc.test/compilable/issue21905.d
  4803db4022ac5a18c1ba3362a8d75239  gcc/testsuite/gdc.test/compilable/issue22130.d
  f725ac9468f8266d38b3b800c3de49d5  gcc/testsuite/gdc.test/compilable/issue22646.d
+ d709501e56b18dfceb4ac84745302890  gcc/testsuite/gdc.test/compilable/issue22682.d
  87ad8472814b8ec81a7279eb5624af7d  gcc/testsuite/gdc.test/compilable/issue22854.d
  07e9955d34050593bd26a0af011eeae2  gcc/testsuite/gdc.test/compilable/issue22975.d
  6febadbbf0173c101fca008948c0ffeb  gcc/testsuite/gdc.test/compilable/issue23391.d
  dc47adc5a0fe42d1ac2f11ac1bd2ae2c  gcc/testsuite/gdc.test/compilable/issue23567.d
+ 5999cba65d0557372534937c890c4acd  gcc/testsuite/gdc.test/compilable/issue24018.d
+ d05ce7580ffae2181f8788e995b639ff  gcc/testsuite/gdc.test/compilable/issue24174.d
+ a1835589ec84228a256f63b55f4f0cc8  gcc/testsuite/gdc.test/compilable/issue24316.d
+ 26ca0ccaba02bab515a908d10593de55  gcc/testsuite/gdc.test/compilable/issue24399.d
+ e48bb3f9b4ce7ea2fd0e40439d3ed734  gcc/testsuite/gdc.test/compilable/issue24409.d
  2fc93ec0ef318092df8f037cadf05a7f  gcc/testsuite/gdc.test/compilable/issue9884.d
  e91a92c9c06d7b2d9d69ab65e6d5d8b4  gcc/testsuite/gdc.test/compilable/json.d
  0dbed47c0a9e6379e5441611de2fdd43  gcc/testsuite/gdc.test/compilable/json20742.d
*************** b6a5dd6f5f5e40ec69f5d95cff610577  gcc/te
*** 80127,80144 ****
  5893fd27bc8dcbbf4b557999d7e6fcc4  gcc/testsuite/gdc.test/compilable/must_use_opunary.d
  5c3027247e211bc17095d2a5331d6415  gcc/testsuite/gdc.test/compilable/must_use_suppress.d
  75b9095619579ca716487eac5af96f4d  gcc/testsuite/gdc.test/compilable/named_argumens_struct.d
! 638349cac53a6d95ee7c6f5fe1ab699a  gcc/testsuite/gdc.test/compilable/named_arguments.d
  234250ba55c9db35a7a38bbdebebc0ac  gcc/testsuite/gdc.test/compilable/nestedtempl0.d
  0692185f429a12ae9a98b28baf6bc8e1  gcc/testsuite/gdc.test/compilable/nestedtempl1.d
  a3c24afe0733ea3b2f5afb6b064e3a71  gcc/testsuite/gdc.test/compilable/noderef.d
! 5464e3a346156d21915d55cfd61ac35c  gcc/testsuite/gdc.test/compilable/nogc.d
  1f7f9bc6578b1c3d98bf1759364334df  gcc/testsuite/gdc.test/compilable/noreturn1.d
! daabe595b61af45fef53af1e4537fb53  gcc/testsuite/gdc.test/compilable/noreturn3.d
  5fbaecaa28f6007b4b1d3347e88d130d  gcc/testsuite/gdc.test/compilable/ob1.d
  97cf4856aa8990a0fe28a6aabadd9a23  gcc/testsuite/gdc.test/compilable/pr9374.d
  7d64317f6d15dac75cff6ccb494e7ef9  gcc/testsuite/gdc.test/compilable/pr9383.d
  c87c15c1a87df8b9292800c22fb9d727  gcc/testsuite/gdc.test/compilable/pr9471.d
! 94597a8ad6d65c7f6a4f6e4b87c1e96d  gcc/testsuite/gdc.test/compilable/previewin.d
  600189166a802a0fdc956497de7efadd  gcc/testsuite/gdc.test/compilable/protattr.d
  20b93d64c0f1a131967d443511e7bb0c  gcc/testsuite/gdc.test/compilable/protection.d
  cb143d7698f10438d8c8cf1f61f40f48  gcc/testsuite/gdc.test/compilable/protection/aggregate/mod14275.d
--- 88931,88952 ----
  5893fd27bc8dcbbf4b557999d7e6fcc4  gcc/testsuite/gdc.test/compilable/must_use_opunary.d
  5c3027247e211bc17095d2a5331d6415  gcc/testsuite/gdc.test/compilable/must_use_suppress.d
  75b9095619579ca716487eac5af96f4d  gcc/testsuite/gdc.test/compilable/named_argumens_struct.d
! 0e792ccbc7430d88e73c70047472bc35  gcc/testsuite/gdc.test/compilable/named_arguments.d
! 32ff8c7db378ebb998d60e0d78d0d0ea  gcc/testsuite/gdc.test/compilable/named_arguments_auto_ref.d
! 3f429b7fd1182c86a4ee7ddda577063d  gcc/testsuite/gdc.test/compilable/named_arguments_ifti.d
  234250ba55c9db35a7a38bbdebebc0ac  gcc/testsuite/gdc.test/compilable/nestedtempl0.d
  0692185f429a12ae9a98b28baf6bc8e1  gcc/testsuite/gdc.test/compilable/nestedtempl1.d
  a3c24afe0733ea3b2f5afb6b064e3a71  gcc/testsuite/gdc.test/compilable/noderef.d
! a0d0d551dad8b86a881174dce4a8dd31  gcc/testsuite/gdc.test/compilable/nogc.d
  1f7f9bc6578b1c3d98bf1759364334df  gcc/testsuite/gdc.test/compilable/noreturn1.d
! cc7133e68a96f54337a9fe590fa46c69  gcc/testsuite/gdc.test/compilable/noreturn3.d
  5fbaecaa28f6007b4b1d3347e88d130d  gcc/testsuite/gdc.test/compilable/ob1.d
+ 9e18a48ff3fe0c40c6e17b74f7beffed  gcc/testsuite/gdc.test/compilable/obsolete_body.d
+ 726b3282c1790708cda23e2c6b1664d7  gcc/testsuite/gdc.test/compilable/parens_inc.d
  97cf4856aa8990a0fe28a6aabadd9a23  gcc/testsuite/gdc.test/compilable/pr9374.d
  7d64317f6d15dac75cff6ccb494e7ef9  gcc/testsuite/gdc.test/compilable/pr9383.d
  c87c15c1a87df8b9292800c22fb9d727  gcc/testsuite/gdc.test/compilable/pr9471.d
! 2026505b4c5299ff0ad966add4ef2d4e  gcc/testsuite/gdc.test/compilable/previewin.d
  600189166a802a0fdc956497de7efadd  gcc/testsuite/gdc.test/compilable/protattr.d
  20b93d64c0f1a131967d443511e7bb0c  gcc/testsuite/gdc.test/compilable/protection.d
  cb143d7698f10438d8c8cf1f61f40f48  gcc/testsuite/gdc.test/compilable/protection/aggregate/mod14275.d
*************** b58883b15934c7e71a25e7843fcbd199  gcc/te
*** 80167,80177 ****
  f4f4b337f02ca72024ce34c690f70386  gcc/testsuite/gdc.test/compilable/shared.d
  fd1eeff8f6c846eeb29e20921f5da298  gcc/testsuite/gdc.test/compilable/shared_destructor.d
  badf98b7c4bd98928b7900f50021dd58  gcc/testsuite/gdc.test/compilable/sharedopt.d
! aa1c2759adc66322e20338c7e67467f7  gcc/testsuite/gdc.test/compilable/shortened_methods.d
  7c98dcd3fa3508059372d1492d038c01  gcc/testsuite/gdc.test/compilable/sroa.d
  764dda5c691e23f6bb7b7df9165d7e14  gcc/testsuite/gdc.test/compilable/staticforeach.d
  0e24586f4018f7e6eceb24795ff0b303  gcc/testsuite/gdc.test/compilable/statictemplatethis.d
! fd05920d5061cba0cd9dc221a4b63e50  gcc/testsuite/gdc.test/compilable/stc_traits.d
  668745ffa1278262e74c6cd37e4c954d  gcc/testsuite/gdc.test/compilable/sw_transition_complex.d
  6d4d15a31cd7806cabe1af5f4e06bb12  gcc/testsuite/gdc.test/compilable/sw_transition_field.d
  c60091d42dbb1891b0147676ae3bc853  gcc/testsuite/gdc.test/compilable/sw_transition_tls.d
--- 88975,88985 ----
  f4f4b337f02ca72024ce34c690f70386  gcc/testsuite/gdc.test/compilable/shared.d
  fd1eeff8f6c846eeb29e20921f5da298  gcc/testsuite/gdc.test/compilable/shared_destructor.d
  badf98b7c4bd98928b7900f50021dd58  gcc/testsuite/gdc.test/compilable/sharedopt.d
! f6fa0a1825b1850ee6e5b4cd0bc83a94  gcc/testsuite/gdc.test/compilable/shortened_methods.d
  7c98dcd3fa3508059372d1492d038c01  gcc/testsuite/gdc.test/compilable/sroa.d
  764dda5c691e23f6bb7b7df9165d7e14  gcc/testsuite/gdc.test/compilable/staticforeach.d
  0e24586f4018f7e6eceb24795ff0b303  gcc/testsuite/gdc.test/compilable/statictemplatethis.d
! f94a81ac702da4aa0138c85e1cb2e133  gcc/testsuite/gdc.test/compilable/stc_traits.d
  668745ffa1278262e74c6cd37e4c954d  gcc/testsuite/gdc.test/compilable/sw_transition_complex.d
  6d4d15a31cd7806cabe1af5f4e06bb12  gcc/testsuite/gdc.test/compilable/sw_transition_field.d
  c60091d42dbb1891b0147676ae3bc853  gcc/testsuite/gdc.test/compilable/sw_transition_tls.d
*************** d8a24ba15faf351dc5548d5c73aa838f  gcc/te
*** 80225,80237 ****
  37e19582ba6f9dfed8393fa878569186  gcc/testsuite/gdc.test/compilable/test13194.d
  d99efc4fc656e4cfd02fce96060ab892  gcc/testsuite/gdc.test/compilable/test13226.d
  30bec388370902ee7576c438aaea3180  gcc/testsuite/gdc.test/compilable/test13242.d
! 118adf7a3992e0e4f6484c0a68c002f8  gcc/testsuite/gdc.test/compilable/test13281.d
  073e23965e6e119780290260c78b1d1c  gcc/testsuite/gdc.test/compilable/test13512.d
  4f167980b011587dd72df5d574e9adfd  gcc/testsuite/gdc.test/compilable/test1353.d
  ca003b046c460c417bb69463a7752558  gcc/testsuite/gdc.test/compilable/test13582a.d
  45900ad93d756b22b06abef3ca133104  gcc/testsuite/gdc.test/compilable/test13582b.d
  a073e3befbf9194c72fc2238e2264875  gcc/testsuite/gdc.test/compilable/test13600.d
! 415c125f68e40729baadc65dd6a58d0e  gcc/testsuite/gdc.test/compilable/test13668.d
  b5884b337518e0a21911e7554a3cca60  gcc/testsuite/gdc.test/compilable/test13858.d
  1be21fd49f3ca4b5339bb36a5ac8ad36  gcc/testsuite/gdc.test/compilable/test13902.d
  3d4cdd61ab4c855f782f29556d7acb3a  gcc/testsuite/gdc.test/compilable/test13953.d
--- 89033,89045 ----
  37e19582ba6f9dfed8393fa878569186  gcc/testsuite/gdc.test/compilable/test13194.d
  d99efc4fc656e4cfd02fce96060ab892  gcc/testsuite/gdc.test/compilable/test13226.d
  30bec388370902ee7576c438aaea3180  gcc/testsuite/gdc.test/compilable/test13242.d
! feb8da700db8f5406eb178bdd60da630  gcc/testsuite/gdc.test/compilable/test13281.d
  073e23965e6e119780290260c78b1d1c  gcc/testsuite/gdc.test/compilable/test13512.d
  4f167980b011587dd72df5d574e9adfd  gcc/testsuite/gdc.test/compilable/test1353.d
  ca003b046c460c417bb69463a7752558  gcc/testsuite/gdc.test/compilable/test13582a.d
  45900ad93d756b22b06abef3ca133104  gcc/testsuite/gdc.test/compilable/test13582b.d
  a073e3befbf9194c72fc2238e2264875  gcc/testsuite/gdc.test/compilable/test13600.d
! 634bdaf776c3c5e3172582e17534e363  gcc/testsuite/gdc.test/compilable/test13668.d
  b5884b337518e0a21911e7554a3cca60  gcc/testsuite/gdc.test/compilable/test13858.d
  1be21fd49f3ca4b5339bb36a5ac8ad36  gcc/testsuite/gdc.test/compilable/test13902.d
  3d4cdd61ab4c855f782f29556d7acb3a  gcc/testsuite/gdc.test/compilable/test13953.d
*************** a4f9e5e07caf5b52d346ebffe86d8357  gcc/te
*** 80312,80318 ****
  4001e30ad421ab92b3c1ce65037be22e  gcc/testsuite/gdc.test/compilable/test16607.d
  4828e461ad0c3514f8360db7c32fd848  gcc/testsuite/gdc.test/compilable/test16621.d
  4befd6db467dc07436d4eb3d601e748c  gcc/testsuite/gdc.test/compilable/test16627.d
! 477e5d4be5ef603b86dc72d4947ec326  gcc/testsuite/gdc.test/compilable/test16635.d
  b4c6001d01a89443d7733322b3c2bac0  gcc/testsuite/gdc.test/compilable/test16657.d
  1234167bd235ea06fc23efa44cbefc14  gcc/testsuite/gdc.test/compilable/test16685.d
  31d427942421f06a7a3446f070a88f8d  gcc/testsuite/gdc.test/compilable/test16709.d
--- 89120,89126 ----
  4001e30ad421ab92b3c1ce65037be22e  gcc/testsuite/gdc.test/compilable/test16607.d
  4828e461ad0c3514f8360db7c32fd848  gcc/testsuite/gdc.test/compilable/test16621.d
  4befd6db467dc07436d4eb3d601e748c  gcc/testsuite/gdc.test/compilable/test16627.d
! 2edb580012eacfab1fbe4dcba5c23857  gcc/testsuite/gdc.test/compilable/test16635.d
  b4c6001d01a89443d7733322b3c2bac0  gcc/testsuite/gdc.test/compilable/test16657.d
  1234167bd235ea06fc23efa44cbefc14  gcc/testsuite/gdc.test/compilable/test16685.d
  31d427942421f06a7a3446f070a88f8d  gcc/testsuite/gdc.test/compilable/test16709.d
*************** f939195a756583414ca62eca1c507ae4  gcc/te
*** 80322,80328 ****
  7a7e039a42222aa3f01be22b0ff05128  gcc/testsuite/gdc.test/compilable/test17057.d
  b7bee84af0ad6009095814d5a080d445  gcc/testsuite/gdc.test/compilable/test17059.d
  e87f48da66ddb31559c11628da10640e  gcc/testsuite/gdc.test/compilable/test17130.d
! 8bbb31fae1b41935aa026de6c6e2fc0d  gcc/testsuite/gdc.test/compilable/test17143.d
  463575820b4e2a41b812f728846774a7  gcc/testsuite/gdc.test/compilable/test17146.d
  603435cff972cf545cbfd4cbaf7675c6  gcc/testsuite/gdc.test/compilable/test17168.d
  9f322d85f59db5aacfceee570828f699  gcc/testsuite/gdc.test/compilable/test17215.d
--- 89130,89136 ----
  7a7e039a42222aa3f01be22b0ff05128  gcc/testsuite/gdc.test/compilable/test17057.d
  b7bee84af0ad6009095814d5a080d445  gcc/testsuite/gdc.test/compilable/test17059.d
  e87f48da66ddb31559c11628da10640e  gcc/testsuite/gdc.test/compilable/test17130.d
! 16dce14bbec02c568631b0ba49045080  gcc/testsuite/gdc.test/compilable/test17143.d
  463575820b4e2a41b812f728846774a7  gcc/testsuite/gdc.test/compilable/test17146.d
  603435cff972cf545cbfd4cbaf7675c6  gcc/testsuite/gdc.test/compilable/test17168.d
  9f322d85f59db5aacfceee570828f699  gcc/testsuite/gdc.test/compilable/test17215.d
*************** e87f48da66ddb31559c11628da10640e  gcc/te
*** 80330,80336 ****
  21c9a8cfce4024f66cda8de89ebf5fcf  gcc/testsuite/gdc.test/compilable/test17349.d
  5034b3a003d321cd0aea64ddbc0c5390  gcc/testsuite/gdc.test/compilable/test17351.d
  68e1dbe483cf3a2ae1a41c5106689102  gcc/testsuite/gdc.test/compilable/test17352.d
! b5a0838019af7196a13c25a852653409  gcc/testsuite/gdc.test/compilable/test17373.d
  2c4fd5be03468f47c86571d4effcafb0  gcc/testsuite/gdc.test/compilable/test17399.d
  98fb60ee1410735f9225e33d3e6d4c2f  gcc/testsuite/gdc.test/compilable/test17419.d
  8242f1f53e48e7c2cf9d8dafbacf061e  gcc/testsuite/gdc.test/compilable/test17421.d
--- 89138,89144 ----
  21c9a8cfce4024f66cda8de89ebf5fcf  gcc/testsuite/gdc.test/compilable/test17349.d
  5034b3a003d321cd0aea64ddbc0c5390  gcc/testsuite/gdc.test/compilable/test17351.d
  68e1dbe483cf3a2ae1a41c5106689102  gcc/testsuite/gdc.test/compilable/test17352.d
! f530c6aaacf1a9aa7c8160308cd63a30  gcc/testsuite/gdc.test/compilable/test17373.d
  2c4fd5be03468f47c86571d4effcafb0  gcc/testsuite/gdc.test/compilable/test17399.d
  98fb60ee1410735f9225e33d3e6d4c2f  gcc/testsuite/gdc.test/compilable/test17419.d
  8242f1f53e48e7c2cf9d8dafbacf061e  gcc/testsuite/gdc.test/compilable/test17421.d
*************** b5a0838019af7196a13c25a852653409  gcc/te
*** 80341,80347 ****
  9a0274aeb8c60681dbf660e751fd4923  gcc/testsuite/gdc.test/compilable/test17512.d
  6321e64875b2c744d4735a6bf1d820e9  gcc/testsuite/gdc.test/compilable/test1754.d
  a443d47e876b2d53af86e27079438afd  gcc/testsuite/gdc.test/compilable/test17541.d
! 899dd61785dc3d9b6aae33b45cac74bf  gcc/testsuite/gdc.test/compilable/test17545.d
  137e383b156d559f4bbc5a572cc18bf7  gcc/testsuite/gdc.test/compilable/test17548.d
  cff229af99454f877a93bf29957fddcc  gcc/testsuite/gdc.test/compilable/test17590.d
  8bd938e7e29a0097af2e364a3a27bc2b  gcc/testsuite/gdc.test/compilable/test17752.d
--- 89149,89155 ----
  9a0274aeb8c60681dbf660e751fd4923  gcc/testsuite/gdc.test/compilable/test17512.d
  6321e64875b2c744d4735a6bf1d820e9  gcc/testsuite/gdc.test/compilable/test1754.d
  a443d47e876b2d53af86e27079438afd  gcc/testsuite/gdc.test/compilable/test17541.d
! 796e650f19ee395b560a33adbd7ac037  gcc/testsuite/gdc.test/compilable/test17545.d
  137e383b156d559f4bbc5a572cc18bf7  gcc/testsuite/gdc.test/compilable/test17548.d
  cff229af99454f877a93bf29957fddcc  gcc/testsuite/gdc.test/compilable/test17590.d
  8bd938e7e29a0097af2e364a3a27bc2b  gcc/testsuite/gdc.test/compilable/test17752.d
*************** ef2ed248a84e6cc602afeafacee55114  gcc/te
*** 80369,80374 ****
--- 89177,89183 ----
  39178fc3938ac061f4e913efa848a73e  gcc/testsuite/gdc.test/compilable/test18430.d
  851c07043bbbf61cfea8e59f57eb4e18  gcc/testsuite/gdc.test/compilable/test18468.d
  90e9e1f722ca0a9795f9ece163c8d601  gcc/testsuite/gdc.test/compilable/test18474.d
+ 4b7a44419908f3d179510ca8f93defde  gcc/testsuite/gdc.test/compilable/test18493.d
  7ceadb35f4d84cd82cfced6aad5d9e3b  gcc/testsuite/gdc.test/compilable/test18572.d
  5357a097ada9e24236a5df57012182d2  gcc/testsuite/gdc.test/compilable/test18578.d
  d47061152b471a5cf32271626e2a43c1  gcc/testsuite/gdc.test/compilable/test18584.d
*************** baa145adb23a15d036c01e709c9885c5  gcc/te
*** 80417,80424 ****
  9442fde4cb34738935d24c3560a4c98d  gcc/testsuite/gdc.test/compilable/test19652.d
  89ac62d651f368c69996bd0799fe3219  gcc/testsuite/gdc.test/compilable/test19656.d
  8514da9ffaa0fe186ce0d01a286a0fd7  gcc/testsuite/gdc.test/compilable/test19657a.d
  de59a2cce71d726c19369183614329a0  gcc/testsuite/gdc.test/compilable/test19713.d
! 0f7c8f4f1012071d3d434ee2cb274529  gcc/testsuite/gdc.test/compilable/test19728.d
  b46dac1e08a7b4995f63aa38ccf170ca  gcc/testsuite/gdc.test/compilable/test19731.d
  529b25789af193f11905362e14a58925  gcc/testsuite/gdc.test/compilable/test19746.d
  2aed4ae2ef56d5de63064280b3f0b0a7  gcc/testsuite/gdc.test/compilable/test19750.d
--- 89226,89234 ----
  9442fde4cb34738935d24c3560a4c98d  gcc/testsuite/gdc.test/compilable/test19652.d
  89ac62d651f368c69996bd0799fe3219  gcc/testsuite/gdc.test/compilable/test19656.d
  8514da9ffaa0fe186ce0d01a286a0fd7  gcc/testsuite/gdc.test/compilable/test19657a.d
+ a4795a316a2baa0e71798b469d5c6930  gcc/testsuite/gdc.test/compilable/test19688.d
  de59a2cce71d726c19369183614329a0  gcc/testsuite/gdc.test/compilable/test19713.d
! 756c629ea150777abeffc90123f4bfa0  gcc/testsuite/gdc.test/compilable/test19728.d
  b46dac1e08a7b4995f63aa38ccf170ca  gcc/testsuite/gdc.test/compilable/test19731.d
  529b25789af193f11905362e14a58925  gcc/testsuite/gdc.test/compilable/test19746.d
  2aed4ae2ef56d5de63064280b3f0b0a7  gcc/testsuite/gdc.test/compilable/test19750.d
*************** bd3b792f2e9fae4293f32a0195335936  gcc/te
*** 80436,80443 ****
  a53e48f77426b6bcfc1b648b1749ad8f  gcc/testsuite/gdc.test/compilable/test19954.d
  135bd530993d6b24b533946f4a0cdf36  gcc/testsuite/gdc.test/compilable/test19970.d
  74bdbfe49e5b5868cea9cbf62decf527  gcc/testsuite/gdc.test/compilable/test20000.d
  cf29d6236afe9b9f4de2703982b9cd04  gcc/testsuite/gdc.test/compilable/test20021.d
! 58970205aa66e68c0dfd43d3989d8d59  gcc/testsuite/gdc.test/compilable/test20039.d
  6345092bc04eb33a1b3873e1b6c0b770  gcc/testsuite/gdc.test/compilable/test20051.d
  b41606c2bc70ec2ddd69b8a97364d10e  gcc/testsuite/gdc.test/compilable/test20065.d
  195ec41a9aadb6a762eeffa3fa1af74c  gcc/testsuite/gdc.test/compilable/test20100.d
--- 89246,89254 ----
  a53e48f77426b6bcfc1b648b1749ad8f  gcc/testsuite/gdc.test/compilable/test19954.d
  135bd530993d6b24b533946f4a0cdf36  gcc/testsuite/gdc.test/compilable/test19970.d
  74bdbfe49e5b5868cea9cbf62decf527  gcc/testsuite/gdc.test/compilable/test20000.d
+ 7bbee49cf9eae46d96bcc51548db2516  gcc/testsuite/gdc.test/compilable/test20008.d
  cf29d6236afe9b9f4de2703982b9cd04  gcc/testsuite/gdc.test/compilable/test20021.d
! f057bd33146438b011d455ce44cb5173  gcc/testsuite/gdc.test/compilable/test20039.d
  6345092bc04eb33a1b3873e1b6c0b770  gcc/testsuite/gdc.test/compilable/test20051.d
  b41606c2bc70ec2ddd69b8a97364d10e  gcc/testsuite/gdc.test/compilable/test20065.d
  195ec41a9aadb6a762eeffa3fa1af74c  gcc/testsuite/gdc.test/compilable/test20100.d
*************** aef1d94d1e219fd82c826644f5cacdb6  gcc/te
*** 80492,80503 ****
  0077aff09fa55a7dc6893618897f6466  gcc/testsuite/gdc.test/compilable/test21227.d
  2b1e1c6a1fd62681b20ab1056124d729  gcc/testsuite/gdc.test/compilable/test21243.d
  bbfea94fb62e11c065d4b01364310a6a  gcc/testsuite/gdc.test/compilable/test21255.d
! d971aaecc34ddbe6181a2ac08ab2b066  gcc/testsuite/gdc.test/compilable/test21282.d
  0ba90edd374f89515b149c9045f12ad4  gcc/testsuite/gdc.test/compilable/test21299a.d
  0ee42ed10154a17167c5ff263b2f4b76  gcc/testsuite/gdc.test/compilable/test21299b.d
  f7ebbab88f0a4f86e71b06e130f593ee  gcc/testsuite/gdc.test/compilable/test21299c.d
  effd503ab143f07a377f69a6abd2e2ab  gcc/testsuite/gdc.test/compilable/test21299d.d
! 23473f0532b4fcf0539568286a7abb33  gcc/testsuite/gdc.test/compilable/test21330.d
  1798a08bb6bc5d4d9cfb0e43f52c0214  gcc/testsuite/gdc.test/compilable/test21372.d
  98a7dd18d329068251146d297fab72d7  gcc/testsuite/gdc.test/compilable/test21398.d
  c6744c3207244c878cf6f0574302e3f2  gcc/testsuite/gdc.test/compilable/test21414.d
--- 89303,89314 ----
  0077aff09fa55a7dc6893618897f6466  gcc/testsuite/gdc.test/compilable/test21227.d
  2b1e1c6a1fd62681b20ab1056124d729  gcc/testsuite/gdc.test/compilable/test21243.d
  bbfea94fb62e11c065d4b01364310a6a  gcc/testsuite/gdc.test/compilable/test21255.d
! c2783ee4a416f517c72d376739cda631  gcc/testsuite/gdc.test/compilable/test21282.d
  0ba90edd374f89515b149c9045f12ad4  gcc/testsuite/gdc.test/compilable/test21299a.d
  0ee42ed10154a17167c5ff263b2f4b76  gcc/testsuite/gdc.test/compilable/test21299b.d
  f7ebbab88f0a4f86e71b06e130f593ee  gcc/testsuite/gdc.test/compilable/test21299c.d
  effd503ab143f07a377f69a6abd2e2ab  gcc/testsuite/gdc.test/compilable/test21299d.d
! 35ca710712a0eaa3d821e4f0342671d7  gcc/testsuite/gdc.test/compilable/test21330.d
  1798a08bb6bc5d4d9cfb0e43f52c0214  gcc/testsuite/gdc.test/compilable/test21372.d
  98a7dd18d329068251146d297fab72d7  gcc/testsuite/gdc.test/compilable/test21398.d
  c6744c3207244c878cf6f0574302e3f2  gcc/testsuite/gdc.test/compilable/test21414.d
*************** ba9fd4b88ca0267441472f1febace9ae  gcc/te
*** 80509,80514 ****
--- 89320,89326 ----
  9c28314750a684e306e8009cc05f2c6d  gcc/testsuite/gdc.test/compilable/test21591.d
  4b14068114e43c728903370792cda6d8  gcc/testsuite/gdc.test/compilable/test21659.d
  f308f3be6a8928891a3703e099815b37  gcc/testsuite/gdc.test/compilable/test21661.d
+ 0764ce96c9ce4f3d70b3836da9d6630d  gcc/testsuite/gdc.test/compilable/test21667.d
  87f44e1d5fff91756fb573a11f351e2b  gcc/testsuite/gdc.test/compilable/test21668.d
  4a9ef9534274a7261d8cf88a58baebab  gcc/testsuite/gdc.test/compilable/test21680.d
  bfa238fa3d3abfcad805ef346ae86472  gcc/testsuite/gdc.test/compilable/test21719.d
*************** d2f5f11274cb1bc2aceb1062858500d5  gcc/te
*** 80560,80565 ****
--- 89372,89378 ----
  7591114e0810d21b5f28a3159a1703bf  gcc/testsuite/gdc.test/compilable/test22714.d
  f574ca50ea8bff40d0be73e922b0c00a  gcc/testsuite/gdc.test/compilable/test22734.d
  f6f4d810653cc85742e61925d50a5476  gcc/testsuite/gdc.test/compilable/test22739.d
+ 72961d372efc32661c19b5d72c1194c5  gcc/testsuite/gdc.test/compilable/test22760.d
  aa87689770ed32b270abbc0c18e24e50  gcc/testsuite/gdc.test/compilable/test22784.d
  a13568e3baba05e9f1d3fdf1dd09aeb6  gcc/testsuite/gdc.test/compilable/test22813.d
  b6fa7fb8b6be39ac614122daf3b72230  gcc/testsuite/gdc.test/compilable/test22825.d
*************** ebf5b789d4a31be2e939321d6490d585  gcc/te
*** 80579,80585 ****
  91dbefd06049014b48ccf6dea94f05f3  gcc/testsuite/gdc.test/compilable/test23097.d
  18b466bef2e0124dd12a1499a86f00e9  gcc/testsuite/gdc.test/compilable/test23105.d
  19ed0ff13bf6375ae12f6893cc145763  gcc/testsuite/gdc.test/compilable/test23142.d
! 1f873367a8e199a2eac66fd4ad356daa  gcc/testsuite/gdc.test/compilable/test23145.d
  f8b8b1e13145441d1c69d68cde48b4c4  gcc/testsuite/gdc.test/compilable/test23166.d
  4f765e28fd4c1a48432ad744c956c3f9  gcc/testsuite/gdc.test/compilable/test23168.d
  4fa99fe8979b3c75eac8f3e18f9f4ae4  gcc/testsuite/gdc.test/compilable/test23169.d
--- 89392,89398 ----
  91dbefd06049014b48ccf6dea94f05f3  gcc/testsuite/gdc.test/compilable/test23097.d
  18b466bef2e0124dd12a1499a86f00e9  gcc/testsuite/gdc.test/compilable/test23105.d
  19ed0ff13bf6375ae12f6893cc145763  gcc/testsuite/gdc.test/compilable/test23142.d
! ef94e36ea4b149caeaa44951f0d8aa68  gcc/testsuite/gdc.test/compilable/test23145.d
  f8b8b1e13145441d1c69d68cde48b4c4  gcc/testsuite/gdc.test/compilable/test23166.d
  4f765e28fd4c1a48432ad744c956c3f9  gcc/testsuite/gdc.test/compilable/test23168.d
  4fa99fe8979b3c75eac8f3e18f9f4ae4  gcc/testsuite/gdc.test/compilable/test23169.d
*************** febede3404663f63f5ea9266f6683a53  gcc/te
*** 80618,80625 ****
--- 89431,89459 ----
  d6adb0700c796d7765e510c8288ad2f1  gcc/testsuite/gdc.test/compilable/test23662.d
  1aaa8d1ddb656566f866cbcbcdad8dcd  gcc/testsuite/gdc.test/compilable/test23676.d
  0c69a4cce2743fa0d1d1d5504034811e  gcc/testsuite/gdc.test/compilable/test23679.d
+ bdd0c06634db6f2e18e57ba56c34f729  gcc/testsuite/gdc.test/compilable/test23789.d
  4cd1791956fa3c3a1364cada8370a6bf  gcc/testsuite/gdc.test/compilable/test23799.d
+ 1892fc05c3e4519ca55fbacb971dfb17  gcc/testsuite/gdc.test/compilable/test23862.d
+ a6312f2826e0df0ccce93479f0a93b6a  gcc/testsuite/gdc.test/compilable/test23863.d
+ d54a66e331db17137d651ed7b4166db4  gcc/testsuite/gdc.test/compilable/test23874.d
+ ed210df0d619942890063f67559e60c7  gcc/testsuite/gdc.test/compilable/test23912.d
+ c57b5316928a48864f5acf1b0c599d66  gcc/testsuite/gdc.test/compilable/test23913.d
+ 4aa067ed0b4554148b54e999ddb1679a  gcc/testsuite/gdc.test/compilable/test23948.d
+ 8180aa6d1c2a5cc8a5ce9478ce1c58de  gcc/testsuite/gdc.test/compilable/test23951.d
+ 60aeb72db882143e5d6bf125ded1399f  gcc/testsuite/gdc.test/compilable/test23965.d
+ b731db61c54ebfa41f83927a650cbc86  gcc/testsuite/gdc.test/compilable/test23966.d
  fbd9917fb4ab47ea6bf89d5efae012f6  gcc/testsuite/gdc.test/compilable/test23978.d
+ e0817cf6d028348d1ceb1d42fe85c006  gcc/testsuite/gdc.test/compilable/test23979.d
+ 256ff7120fd910fd94d381724ea3c32f  gcc/testsuite/gdc.test/compilable/test23986.d
+ 675cd4f907ba41f1837587f403a62dc7  gcc/testsuite/gdc.test/compilable/test24013.d
+ a745d06f3cfeb68e5ac28b752e56fb04  gcc/testsuite/gdc.test/compilable/test24017.d
+ c94cae03cc6914ae6e20e7c016f9c9d4  gcc/testsuite/gdc.test/compilable/test24022.d
+ 93b58cbc2f5adb0a6e051f0aec8d3820  gcc/testsuite/gdc.test/compilable/test24066.d
+ f8b0ae6368c0ee13f2e4e71e66c90b9a  gcc/testsuite/gdc.test/compilable/test24107.d
+ 78f11046276a3c73962225fe4ac14752  gcc/testsuite/gdc.test/compilable/test24109.d
+ 6a6f6d4823aa43554b04350d5539c64f  gcc/testsuite/gdc.test/compilable/test24118.d
+ 1360877e52bb7767281e5b8fef970507  gcc/testsuite/gdc.test/compilable/test24338.d
+ 52e72c9cc637bc3df50e83bc26fedf45  gcc/testsuite/gdc.test/compilable/test24390.d
  330c2acf4539ef672ad9c8cf0faa0c5e  gcc/testsuite/gdc.test/compilable/test25.d
  912661e1615a2dd8fe14dbd20528f7ba  gcc/testsuite/gdc.test/compilable/test2991.d
  b0234808764370745e6dbf7744465cff  gcc/testsuite/gdc.test/compilable/test3004.d
*************** ca75423ded28d744d26785135d5ceb2d  gcc/te
*** 80632,80637 ****
--- 89466,89472 ----
  18a639065dce553a6f7721bff7f2ea5f  gcc/testsuite/gdc.test/compilable/test313g.d
  cb8dc4a832a65fc7e4549b14a3dc02c4  gcc/testsuite/gdc.test/compilable/test314.d
  d2140d1c3d6e75f65b8b91c61c2fd9ae  gcc/testsuite/gdc.test/compilable/test318.d
+ 629eaadbb481160620a923cc674e6e14  gcc/testsuite/gdc.test/compilable/test3543.d
  03cb2305c43115a0052540b366172beb  gcc/testsuite/gdc.test/compilable/test3673.d
  6ccd39b1acf515b73d9496c9d6530e82  gcc/testsuite/gdc.test/compilable/test3775.d
  113f708c9494acbd5e6b907d30855919  gcc/testsuite/gdc.test/compilable/test4003.d
*************** ae68fa3295e63c9b13e9139b6948f21f  gcc/te
*** 80664,80670 ****
  32676746dd5fd895bba5cbbfab26ed71  gcc/testsuite/gdc.test/compilable/test70.d
  57edff88840a591f06f485aa844e495d  gcc/testsuite/gdc.test/compilable/test7065.d
  34d929e7af3e09bd3bae5c33a072af2a  gcc/testsuite/gdc.test/compilable/test71.d
! c4f43c9f92845641f8f1891591a8b16d  gcc/testsuite/gdc.test/compilable/test7172.d
  dda273a2ef110ab5809c44c288a41727  gcc/testsuite/gdc.test/compilable/test7190.d
  80b2961614a2f1f975941f6ecfa2f3a7  gcc/testsuite/gdc.test/compilable/test72.d
  06de3dbdb86544d9b0b277d86d3ad57f  gcc/testsuite/gdc.test/compilable/test7252.d
--- 89499,89505 ----
  32676746dd5fd895bba5cbbfab26ed71  gcc/testsuite/gdc.test/compilable/test70.d
  57edff88840a591f06f485aa844e495d  gcc/testsuite/gdc.test/compilable/test7065.d
  34d929e7af3e09bd3bae5c33a072af2a  gcc/testsuite/gdc.test/compilable/test71.d
! 3daaad7df1adfd8dc6592eb0479cb662  gcc/testsuite/gdc.test/compilable/test7172.d
  dda273a2ef110ab5809c44c288a41727  gcc/testsuite/gdc.test/compilable/test7190.d
  80b2961614a2f1f975941f6ecfa2f3a7  gcc/testsuite/gdc.test/compilable/test72.d
  06de3dbdb86544d9b0b277d86d3ad57f  gcc/testsuite/gdc.test/compilable/test7252.d
*************** f2784ce08eda5f3393130054f5c58e71  gcc/te
*** 80709,80720 ****
  cb22ffc739f8c5974f6ea959deba7a91  gcc/testsuite/gdc.test/compilable/test9436.d
  32887f6006186e5c1563e74ecca07c3c  gcc/testsuite/gdc.test/compilable/test9526.d
  14eba8cb0439fb4587fd4aa667c307e1  gcc/testsuite/gdc.test/compilable/test9554.d
- 3527ab00198f9edaaf12cd056769e7f1  gcc/testsuite/gdc.test/compilable/test9565.d
  0485e20adfd94e487f38d7332b48507d  gcc/testsuite/gdc.test/compilable/test9570.d
  651fcadd1bd707987d6c4e0f43835bd5  gcc/testsuite/gdc.test/compilable/test9613.d
  3ff4d56cc46fe9c375e27a925753cb21  gcc/testsuite/gdc.test/compilable/test9639.d
  04a1d813881cd51192cda468efbf0030  gcc/testsuite/gdc.test/compilable/test9672.d
! 17e599ed5bccb334afc626262f2d154d  gcc/testsuite/gdc.test/compilable/test9692.d
  4e8c514f4c47e8cc668194d301fadc34  gcc/testsuite/gdc.test/compilable/test9692a.d
  d5e43ab1e4c033bfee33c30947a66f67  gcc/testsuite/gdc.test/compilable/test9701.d
  b62c4783060c00406ce9b1b3c7bf4458  gcc/testsuite/gdc.test/compilable/test9766.d
--- 89544,89554 ----
  cb22ffc739f8c5974f6ea959deba7a91  gcc/testsuite/gdc.test/compilable/test9436.d
  32887f6006186e5c1563e74ecca07c3c  gcc/testsuite/gdc.test/compilable/test9526.d
  14eba8cb0439fb4587fd4aa667c307e1  gcc/testsuite/gdc.test/compilable/test9554.d
  0485e20adfd94e487f38d7332b48507d  gcc/testsuite/gdc.test/compilable/test9570.d
  651fcadd1bd707987d6c4e0f43835bd5  gcc/testsuite/gdc.test/compilable/test9613.d
  3ff4d56cc46fe9c375e27a925753cb21  gcc/testsuite/gdc.test/compilable/test9639.d
  04a1d813881cd51192cda468efbf0030  gcc/testsuite/gdc.test/compilable/test9672.d
! 97ad594fc0c94302d7abeff0abdca1fd  gcc/testsuite/gdc.test/compilable/test9692.d
  4e8c514f4c47e8cc668194d301fadc34  gcc/testsuite/gdc.test/compilable/test9692a.d
  d5e43ab1e4c033bfee33c30947a66f67  gcc/testsuite/gdc.test/compilable/test9701.d
  b62c4783060c00406ce9b1b3c7bf4458  gcc/testsuite/gdc.test/compilable/test9766.d
*************** cd9664381d4f2ad5fbc9a66fe9181ece  gcc/te
*** 80728,80740 ****
  e420705f48ae28346e1d049a442dc609  gcc/testsuite/gdc.test/compilable/testDIP37_10421.d
  a8aff1c75bc0695071a90cb5aa15971e  gcc/testsuite/gdc.test/compilable/testDIP37a.d
  0ad27aebcba2369d32c2ab7918cf7ee0  gcc/testsuite/gdc.test/compilable/testDIP42.d
! 40c1a12165f6431180cc70b0eac25ccf  gcc/testsuite/gdc.test/compilable/testInference.d
  85a5ba423ac12043f320f0ff47d0b161  gcc/testsuite/gdc.test/compilable/testVRP.d
  4f38613138feda91b158dbc10e9dcaf8  gcc/testsuite/gdc.test/compilable/testcheckimports.d
  dbddcfe494cc3c61d9b82e969af2c8ea  gcc/testsuite/gdc.test/compilable/testcontracts.d
  e4998c6896a3ce1b4036155ac0ec1abc  gcc/testsuite/gdc.test/compilable/testcorrectthis.d
  939371c9d34a5af76ab78baebe16d363  gcc/testsuite/gdc.test/compilable/testcstuff3.d
! f3865dda0bc7fc025ee349a831e415e7  gcc/testsuite/gdc.test/compilable/testdefines.d
  035c837c9828677c99e64cf928df76e6  gcc/testsuite/gdc.test/compilable/testdip1008.d
  a45fff07259b904bd2e0780eb2b4b920  gcc/testsuite/gdc.test/compilable/testexpression.d
  165adaaca3d4cb680db8e8f7bef830af  gcc/testsuite/gdc.test/compilable/testfptr.d
--- 89562,89574 ----
  e420705f48ae28346e1d049a442dc609  gcc/testsuite/gdc.test/compilable/testDIP37_10421.d
  a8aff1c75bc0695071a90cb5aa15971e  gcc/testsuite/gdc.test/compilable/testDIP37a.d
  0ad27aebcba2369d32c2ab7918cf7ee0  gcc/testsuite/gdc.test/compilable/testDIP42.d
! 66cc077fc806bfa02d82e90972a4f5b2  gcc/testsuite/gdc.test/compilable/testInference.d
  85a5ba423ac12043f320f0ff47d0b161  gcc/testsuite/gdc.test/compilable/testVRP.d
  4f38613138feda91b158dbc10e9dcaf8  gcc/testsuite/gdc.test/compilable/testcheckimports.d
  dbddcfe494cc3c61d9b82e969af2c8ea  gcc/testsuite/gdc.test/compilable/testcontracts.d
  e4998c6896a3ce1b4036155ac0ec1abc  gcc/testsuite/gdc.test/compilable/testcorrectthis.d
  939371c9d34a5af76ab78baebe16d363  gcc/testsuite/gdc.test/compilable/testcstuff3.d
! ab5870d873e43f08ce4ab862b69be273  gcc/testsuite/gdc.test/compilable/testdefines.d
  035c837c9828677c99e64cf928df76e6  gcc/testsuite/gdc.test/compilable/testdip1008.d
  a45fff07259b904bd2e0780eb2b4b920  gcc/testsuite/gdc.test/compilable/testexpression.d
  165adaaca3d4cb680db8e8f7bef830af  gcc/testsuite/gdc.test/compilable/testfptr.d
*************** c5edf683ca0bd30ac0d1d5b44a632f2d  gcc/te
*** 80755,80770 ****
  31b9ff8b1f91c0c0d46f167c6d69a750  gcc/testsuite/gdc.test/compilable/testparse.d
  04f186437495743a1bb1ca150d9b1c9c  gcc/testsuite/gdc.test/compilable/testpostblit.d
  b4b221ef317b956132f4d2d2b4addb1d  gcc/testsuite/gdc.test/compilable/testprofile.d
  06d53bd527300beec01412a18aacbb8b  gcc/testsuite/gdc.test/compilable/testsctreturn.d
  2b0d22bb4f0da744c1a7d324b1673eb7  gcc/testsuite/gdc.test/compilable/testtempl2.d
! e21ca3f9cac637625ae52b172d03bcfd  gcc/testsuite/gdc.test/compilable/traits.d
! 8e5ed37369ec09b09468ccf443c443fc  gcc/testsuite/gdc.test/compilable/traits_getFunctionAttributes.d
  0da951db343407cecaa9f85317fb649d  gcc/testsuite/gdc.test/compilable/transition_in.d
  2a5c3303f2fc00fbaf51ab7e1a392eee  gcc/testsuite/gdc.test/compilable/typeid_name.d
  ac9e751e20c95911b8e0c1bc570c6124  gcc/testsuite/gdc.test/compilable/uda.d
  b215346ff6994a9f80fd4b4a3300e489  gcc/testsuite/gdc.test/compilable/udamodule1.d
  fddab229d4f220f7768aa32bff4eb235  gcc/testsuite/gdc.test/compilable/udamodule2.d
  05d2b62ab46fd89af248af1c2e5be2c1  gcc/testsuite/gdc.test/compilable/union_initialization.d
  b13edd5ae1b061369112622cadbdc3da  gcc/testsuite/gdc.test/compilable/vararg.d
  a628926ce76a489cff5ca423a30f04db  gcc/testsuite/gdc.test/compilable/vcg-ast.d
  e39d851e2d6df0fb0a228237d9973bdc  gcc/testsuite/gdc.test/compilable/verrors_spec.d
--- 89589,89606 ----
  31b9ff8b1f91c0c0d46f167c6d69a750  gcc/testsuite/gdc.test/compilable/testparse.d
  04f186437495743a1bb1ca150d9b1c9c  gcc/testsuite/gdc.test/compilable/testpostblit.d
  b4b221ef317b956132f4d2d2b4addb1d  gcc/testsuite/gdc.test/compilable/testprofile.d
+ 96e4dccded26d5a2f5c94a77a811bf2a  gcc/testsuite/gdc.test/compilable/testpull1810.d
  06d53bd527300beec01412a18aacbb8b  gcc/testsuite/gdc.test/compilable/testsctreturn.d
  2b0d22bb4f0da744c1a7d324b1673eb7  gcc/testsuite/gdc.test/compilable/testtempl2.d
! 989373efd9e6faf499f8339b0d54b0c1  gcc/testsuite/gdc.test/compilable/traits.d
! 850c921b1056bbd4c8ac2b72d8f27871  gcc/testsuite/gdc.test/compilable/traits_getFunctionAttributes.d
  0da951db343407cecaa9f85317fb649d  gcc/testsuite/gdc.test/compilable/transition_in.d
  2a5c3303f2fc00fbaf51ab7e1a392eee  gcc/testsuite/gdc.test/compilable/typeid_name.d
  ac9e751e20c95911b8e0c1bc570c6124  gcc/testsuite/gdc.test/compilable/uda.d
  b215346ff6994a9f80fd4b4a3300e489  gcc/testsuite/gdc.test/compilable/udamodule1.d
  fddab229d4f220f7768aa32bff4eb235  gcc/testsuite/gdc.test/compilable/udamodule2.d
  05d2b62ab46fd89af248af1c2e5be2c1  gcc/testsuite/gdc.test/compilable/union_initialization.d
+ 1753f2fe39db70816ce04ce3434fe21e  gcc/testsuite/gdc.test/compilable/user_defined_attributes.d
  b13edd5ae1b061369112622cadbdc3da  gcc/testsuite/gdc.test/compilable/vararg.d
  a628926ce76a489cff5ca423a30f04db  gcc/testsuite/gdc.test/compilable/vcg-ast.d
  e39d851e2d6df0fb0a228237d9973bdc  gcc/testsuite/gdc.test/compilable/verrors_spec.d
*************** e39d851e2d6df0fb0a228237d9973bdc  gcc/te
*** 80774,80787 ****
  1f313881c51241b6e69f1c399d78ade7  gcc/testsuite/gdc.test/compilable/vgc3.d
  1f7b74cc98b46eee4066e8614f446c78  gcc/testsuite/gdc.test/compilable/vtemplates.d
  fe3fe69f3ba0159a4ec76976ea3bf053  gcc/testsuite/gdc.test/compilable/vtemplates_list.d
! b5b14c87f99689b64af89383a7600110  gcc/testsuite/gdc.test/compilable/warn3882.d
  8909f89f0f6816bf7c640ff8baa3280f  gcc/testsuite/gdc.test/compilable/zerosize.d
  18907c6d791bf506f12bb09b49c6a960  gcc/testsuite/gdc.test/fail_compilation/aacmp10381.d
  e0066ba6846a84c27c5813f1eae1f740  gcc/testsuite/gdc.test/fail_compilation/aliasassign.d
  724063393d084db2d74d55a0653dbf2f  gcc/testsuite/gdc.test/fail_compilation/aliasassign1.d
  44e432d8553e9d7349664fe96270cd70  gcc/testsuite/gdc.test/fail_compilation/aliasassign2.d
  29ac4b31cfdfb34ac1753068addb9296  gcc/testsuite/gdc.test/fail_compilation/already_defined.d
! e2827d0ebb099e38eb6125c844d64250  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic.d
  e309e5ed61e9e05b734a04331138794f  gcc/testsuite/gdc.test/fail_compilation/b12504.d
  781af0061ee627ed6ea3f18dd0f84c5b  gcc/testsuite/gdc.test/fail_compilation/b15069.d
  6830b0c11beb2de9c49b65c98e786c9b  gcc/testsuite/gdc.test/fail_compilation/b15875.d
--- 89610,89629 ----
  1f313881c51241b6e69f1c399d78ade7  gcc/testsuite/gdc.test/compilable/vgc3.d
  1f7b74cc98b46eee4066e8614f446c78  gcc/testsuite/gdc.test/compilable/vtemplates.d
  fe3fe69f3ba0159a4ec76976ea3bf053  gcc/testsuite/gdc.test/compilable/vtemplates_list.d
! 6abb1560fbe9e7a13c92048cd6f7cc17  gcc/testsuite/gdc.test/compilable/warn12809.d
! 3f10c16cee535253ce680482a86cefd8  gcc/testsuite/gdc.test/compilable/warn3882.d
  8909f89f0f6816bf7c640ff8baa3280f  gcc/testsuite/gdc.test/compilable/zerosize.d
+ 0c74ef80707c77da3fffdc3a03c5ab16  gcc/testsuite/gdc.test/fail_compilation/aa_init.d
  18907c6d791bf506f12bb09b49c6a960  gcc/testsuite/gdc.test/fail_compilation/aacmp10381.d
  e0066ba6846a84c27c5813f1eae1f740  gcc/testsuite/gdc.test/fail_compilation/aliasassign.d
  724063393d084db2d74d55a0653dbf2f  gcc/testsuite/gdc.test/fail_compilation/aliasassign1.d
  44e432d8553e9d7349664fe96270cd70  gcc/testsuite/gdc.test/fail_compilation/aliasassign2.d
  29ac4b31cfdfb34ac1753068addb9296  gcc/testsuite/gdc.test/fail_compilation/already_defined.d
! f1494240b1a0246715331bbcc6d7e5fb  gcc/testsuite/gdc.test/fail_compilation/array_bool.d
! 63afb01a0b6fff9b6467081d4395761b  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic.d
! 3cb5e169f62e47f0dc76baf96ea40be8  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_nogc.d
! a678b4f7455b5d95076cb5e9e354728f  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_nothrow.d
! ff71b40642b027a985329b87ab14753b  gcc/testsuite/gdc.test/fail_compilation/attributediagnostic_pure.d
  e309e5ed61e9e05b734a04331138794f  gcc/testsuite/gdc.test/fail_compilation/b12504.d
  781af0061ee627ed6ea3f18dd0f84c5b  gcc/testsuite/gdc.test/fail_compilation/b15069.d
  6830b0c11beb2de9c49b65c98e786c9b  gcc/testsuite/gdc.test/fail_compilation/b15875.d
*************** b6332dec945b97029df39816a3557bdb  gcc/te
*** 80789,80813 ****
  8fed1f888ca3069bb93b8814d57f8781  gcc/testsuite/gdc.test/fail_compilation/b16967.d
  7ea1134efd7ddebf95db3eff5f8333d7  gcc/testsuite/gdc.test/fail_compilation/b17285.d
  b25a7e2f51b717b255276caf9def0edb  gcc/testsuite/gdc.test/fail_compilation/b17918.d
! 072214819fd374a1c1933bb9191ded37  gcc/testsuite/gdc.test/fail_compilation/b19523.d
  70f44a69e3432b832cb6995838232f3a  gcc/testsuite/gdc.test/fail_compilation/b19685.d
  18f820ae64f4314467fa918450b9ca03  gcc/testsuite/gdc.test/fail_compilation/b19691.d
  beac1dce62bb696484c206c8fd65a0b8  gcc/testsuite/gdc.test/fail_compilation/b19691e.d
  b53cb85b8cc301a3c81e4d559b329709  gcc/testsuite/gdc.test/fail_compilation/b19717.d
  9b6b50ff4270a1559091032b53afdabe  gcc/testsuite/gdc.test/fail_compilation/b19717a.d
  b19c540895e68030d7f79aea6ba21213  gcc/testsuite/gdc.test/fail_compilation/b19730.d
! 41a30687e12c4ec4053c5aef9221aa2a  gcc/testsuite/gdc.test/fail_compilation/b20011.d
  365ab715a73fe9c494170233e038c30b  gcc/testsuite/gdc.test/fail_compilation/b20780.d
  82cdbb62978f6d1599220b6ee9f9a92b  gcc/testsuite/gdc.test/fail_compilation/b20875.d
  47c41c40dd4bf706c7dd71dc9350a9c1  gcc/testsuite/gdc.test/fail_compilation/b3841.d
  4f14c24ff5b09173d0eaac42b8afff9e  gcc/testsuite/gdc.test/fail_compilation/b6227.d
  1803dad8fd943fe1b5364f410f4667b8  gcc/testsuite/gdc.test/fail_compilation/betterc.d
  d48231d61948a296c522365cd0c81005  gcc/testsuite/gdc.test/fail_compilation/biterrors.d
  f745eda1a6614a93d1b62cc2fd57698e  gcc/testsuite/gdc.test/fail_compilation/biterrors2.d
! bcdfe503564b5d03743b739bfffe8009  gcc/testsuite/gdc.test/fail_compilation/biterrors3.d
  bff631f408d6b1d6f1c1b401e3b1fade  gcc/testsuite/gdc.test/fail_compilation/biterrors4.d
! 6c4e325d72a973cc17e40fd597c6ca8b  gcc/testsuite/gdc.test/fail_compilation/bug15613.d
! e4bc96ee8e6ef17e2d638e85e45c7913  gcc/testsuite/gdc.test/fail_compilation/bug16165.d
  6fdc01527eb87db969507dc657c75baa  gcc/testsuite/gdc.test/fail_compilation/bug18743.d
  6936db788778436ad32bd68aca166348  gcc/testsuite/gdc.test/fail_compilation/bug19569.d
  39ffa560217f81dec6d2733547b17845  gcc/testsuite/gdc.test/fail_compilation/bug4283.d
--- 89631,89656 ----
  8fed1f888ca3069bb93b8814d57f8781  gcc/testsuite/gdc.test/fail_compilation/b16967.d
  7ea1134efd7ddebf95db3eff5f8333d7  gcc/testsuite/gdc.test/fail_compilation/b17285.d
  b25a7e2f51b717b255276caf9def0edb  gcc/testsuite/gdc.test/fail_compilation/b17918.d
! 635dccd0556a1bf5b93a7dbef2493c3d  gcc/testsuite/gdc.test/fail_compilation/b19523.d
  70f44a69e3432b832cb6995838232f3a  gcc/testsuite/gdc.test/fail_compilation/b19685.d
  18f820ae64f4314467fa918450b9ca03  gcc/testsuite/gdc.test/fail_compilation/b19691.d
  beac1dce62bb696484c206c8fd65a0b8  gcc/testsuite/gdc.test/fail_compilation/b19691e.d
  b53cb85b8cc301a3c81e4d559b329709  gcc/testsuite/gdc.test/fail_compilation/b19717.d
  9b6b50ff4270a1559091032b53afdabe  gcc/testsuite/gdc.test/fail_compilation/b19717a.d
  b19c540895e68030d7f79aea6ba21213  gcc/testsuite/gdc.test/fail_compilation/b19730.d
! 9f5fddb69316e96061459681be8eacf1  gcc/testsuite/gdc.test/fail_compilation/b20011.d
  365ab715a73fe9c494170233e038c30b  gcc/testsuite/gdc.test/fail_compilation/b20780.d
  82cdbb62978f6d1599220b6ee9f9a92b  gcc/testsuite/gdc.test/fail_compilation/b20875.d
+ a146d0446299030be7023391776dc61c  gcc/testsuite/gdc.test/fail_compilation/b23686.d
  47c41c40dd4bf706c7dd71dc9350a9c1  gcc/testsuite/gdc.test/fail_compilation/b3841.d
  4f14c24ff5b09173d0eaac42b8afff9e  gcc/testsuite/gdc.test/fail_compilation/b6227.d
  1803dad8fd943fe1b5364f410f4667b8  gcc/testsuite/gdc.test/fail_compilation/betterc.d
  d48231d61948a296c522365cd0c81005  gcc/testsuite/gdc.test/fail_compilation/biterrors.d
  f745eda1a6614a93d1b62cc2fd57698e  gcc/testsuite/gdc.test/fail_compilation/biterrors2.d
! 1afbd403b0cee5367ebd00dd6c1ae937  gcc/testsuite/gdc.test/fail_compilation/biterrors3.d
  bff631f408d6b1d6f1c1b401e3b1fade  gcc/testsuite/gdc.test/fail_compilation/biterrors4.d
! 27e3b2b10b6a02aca843ef22bde6fff0  gcc/testsuite/gdc.test/fail_compilation/bug15613.d
! 340f5391f34df0ae26180bb672129391  gcc/testsuite/gdc.test/fail_compilation/bug16165.d
  6fdc01527eb87db969507dc657c75baa  gcc/testsuite/gdc.test/fail_compilation/bug18743.d
  6936db788778436ad32bd68aca166348  gcc/testsuite/gdc.test/fail_compilation/bug19569.d
  39ffa560217f81dec6d2733547b17845  gcc/testsuite/gdc.test/fail_compilation/bug4283.d
*************** e10319cae3a1fe5d89a6e7220f4d3617  gcc/te
*** 80816,80846 ****
  dfcfc941a23106dfb4aa633010d25044  gcc/testsuite/gdc.test/fail_compilation/bug5b.d
  6f8846856815fb29b1378e1e5f6d1130  gcc/testsuite/gdc.test/fail_compilation/bug8150a.d
  e40db6207cc66055571f5552ba4dd74e  gcc/testsuite/gdc.test/fail_compilation/bug8150b.d
! e483d431bf6e45ed82ce3539c2baab76  gcc/testsuite/gdc.test/fail_compilation/bug8891.d
! 0954cb1e9c1d7b33d55fd83ffbd54072  gcc/testsuite/gdc.test/fail_compilation/bug9631.d
  841e7b9289bdecfa32b91f46d4d274ba  gcc/testsuite/gdc.test/fail_compilation/call_function_type.d
! ec3bf4a66065f2860f602b88e0da3655  gcc/testsuite/gdc.test/fail_compilation/casttuple.d
! ce21d4a4c779579022965a535cbcb1a6  gcc/testsuite/gdc.test/fail_compilation/ccast.d
  c6f4e1c23c3f30e355ae3bf161924cdc  gcc/testsuite/gdc.test/fail_compilation/cerrors.d
  4e83f64920318dc56ac80f35d4b3915f  gcc/testsuite/gdc.test/fail_compilation/checkimports2.d
! 3bf379199a220b56736062172e226468  gcc/testsuite/gdc.test/fail_compilation/chkformat.d
  9797e02f098d52d0de89e8253f84b6c3  gcc/testsuite/gdc.test/fail_compilation/circ10280.d
  6a293d0ed6519f3f6657000a879d53c2  gcc/testsuite/gdc.test/fail_compilation/class1.d
  ac55f5cfdfaa7cf8d01f1887d25ab07a  gcc/testsuite/gdc.test/fail_compilation/class2.d
  77f88d47e1f26f0dd36c1835e6194ba5  gcc/testsuite/gdc.test/fail_compilation/commaexp.d
! b4bfce7761bc12b212dab71a7e6279f7  gcc/testsuite/gdc.test/fail_compilation/constraints_aggr.d
  abef410d735fbbafd1e6c203893dd1b8  gcc/testsuite/gdc.test/fail_compilation/constraints_defs.d
! b5562043c169c9776456060c54e3ad09  gcc/testsuite/gdc.test/fail_compilation/constraints_func1.d
! ad9b89217737c77bd4ba839a74248ead  gcc/testsuite/gdc.test/fail_compilation/constraints_func2.d
! d0b3d1a13a6fd1e58c6bcc0d468dfc54  gcc/testsuite/gdc.test/fail_compilation/constraints_func3.d
! c2c35be95aa77c8db614a6785937b886  gcc/testsuite/gdc.test/fail_compilation/constraints_func4.d
  76205a8a72dc711a48874ed6a3cb3c69  gcc/testsuite/gdc.test/fail_compilation/constraints_tmpl.d
  dfd223ee8e19d86aeb106dce298f3061  gcc/testsuite/gdc.test/fail_compilation/covariant_override.d
  9dc9a69704d40f4f8a848aba9d5118b0  gcc/testsuite/gdc.test/fail_compilation/cpp_abi_tag.d
  65d75f72a7879909e72b5a22c1949602  gcc/testsuite/gdc.test/fail_compilation/cpp_abi_tag2.d
  595e629b0d62851c4d4bc6da123a5195  gcc/testsuite/gdc.test/fail_compilation/cppeh1.d
  928d45bd54111a5e63e6cbd42dc55481  gcc/testsuite/gdc.test/fail_compilation/cppeh2.d
! 1c6ea8e8eec8928220d748a1a5eda623  gcc/testsuite/gdc.test/fail_compilation/cppmangle.d
  32bd77efb94a7a1a8369659d1697ac55  gcc/testsuite/gdc.test/fail_compilation/cppmangle2.d
  d10ef51e2ba236346c33f305347a1b3a  gcc/testsuite/gdc.test/fail_compilation/cppvar.d
  1ba05446e4c373c3fdbe16b248b90c1c  gcc/testsuite/gdc.test/fail_compilation/ctfe10989.d
--- 89659,89691 ----
  dfcfc941a23106dfb4aa633010d25044  gcc/testsuite/gdc.test/fail_compilation/bug5b.d
  6f8846856815fb29b1378e1e5f6d1130  gcc/testsuite/gdc.test/fail_compilation/bug8150a.d
  e40db6207cc66055571f5552ba4dd74e  gcc/testsuite/gdc.test/fail_compilation/bug8150b.d
! a8e4c2d5f03d9351f5d421a208161492  gcc/testsuite/gdc.test/fail_compilation/bug8891.d
! fe1412ae85499e2c5ad56c491ecf3f7d  gcc/testsuite/gdc.test/fail_compilation/bug9631.d
  841e7b9289bdecfa32b91f46d4d274ba  gcc/testsuite/gdc.test/fail_compilation/call_function_type.d
! 147cb65542700f79b0a631920f0323af  gcc/testsuite/gdc.test/fail_compilation/callconst.d
! 67ff13286b3d3bb060099d604721b4db  gcc/testsuite/gdc.test/fail_compilation/casttuple.d
! 26e889aceafb8429694f3505035b149e  gcc/testsuite/gdc.test/fail_compilation/ccast.d
  c6f4e1c23c3f30e355ae3bf161924cdc  gcc/testsuite/gdc.test/fail_compilation/cerrors.d
  4e83f64920318dc56ac80f35d4b3915f  gcc/testsuite/gdc.test/fail_compilation/checkimports2.d
! 8a6171185d2dd87f03987ee20a936db9  gcc/testsuite/gdc.test/fail_compilation/chkformat.d
  9797e02f098d52d0de89e8253f84b6c3  gcc/testsuite/gdc.test/fail_compilation/circ10280.d
  6a293d0ed6519f3f6657000a879d53c2  gcc/testsuite/gdc.test/fail_compilation/class1.d
  ac55f5cfdfaa7cf8d01f1887d25ab07a  gcc/testsuite/gdc.test/fail_compilation/class2.d
  77f88d47e1f26f0dd36c1835e6194ba5  gcc/testsuite/gdc.test/fail_compilation/commaexp.d
! e4dae440b5ccb1a673036de2047ca80d  gcc/testsuite/gdc.test/fail_compilation/const_ctor.d
! 7ad6096ded5af41d100b5ba0af9ba799  gcc/testsuite/gdc.test/fail_compilation/constraints_aggr.d
  abef410d735fbbafd1e6c203893dd1b8  gcc/testsuite/gdc.test/fail_compilation/constraints_defs.d
! 56f47bac41d49c9fa5eb7a9339fe1462  gcc/testsuite/gdc.test/fail_compilation/constraints_func1.d
! 5db233bea9c74af73a58faa9ce0f7d3b  gcc/testsuite/gdc.test/fail_compilation/constraints_func2.d
! f1dd188bca733f64851dc2fc4f14ac66  gcc/testsuite/gdc.test/fail_compilation/constraints_func3.d
! 29512842d0ee6079821c028b433e10e8  gcc/testsuite/gdc.test/fail_compilation/constraints_func4.d
  76205a8a72dc711a48874ed6a3cb3c69  gcc/testsuite/gdc.test/fail_compilation/constraints_tmpl.d
  dfd223ee8e19d86aeb106dce298f3061  gcc/testsuite/gdc.test/fail_compilation/covariant_override.d
  9dc9a69704d40f4f8a848aba9d5118b0  gcc/testsuite/gdc.test/fail_compilation/cpp_abi_tag.d
  65d75f72a7879909e72b5a22c1949602  gcc/testsuite/gdc.test/fail_compilation/cpp_abi_tag2.d
  595e629b0d62851c4d4bc6da123a5195  gcc/testsuite/gdc.test/fail_compilation/cppeh1.d
  928d45bd54111a5e63e6cbd42dc55481  gcc/testsuite/gdc.test/fail_compilation/cppeh2.d
! b67e497200c8eaa83d7d2ee91e352f76  gcc/testsuite/gdc.test/fail_compilation/cppmangle.d
  32bd77efb94a7a1a8369659d1697ac55  gcc/testsuite/gdc.test/fail_compilation/cppmangle2.d
  d10ef51e2ba236346c33f305347a1b3a  gcc/testsuite/gdc.test/fail_compilation/cppvar.d
  1ba05446e4c373c3fdbe16b248b90c1c  gcc/testsuite/gdc.test/fail_compilation/ctfe10989.d
*************** d10ef51e2ba236346c33f305347a1b3a  gcc/te
*** 80850,80864 ****
  7af06ff2514f3b06289ab78993fbf62a  gcc/testsuite/gdc.test/fail_compilation/ctfe14207.d
  e875c4bc47d169566d81fc9e3cd91921  gcc/testsuite/gdc.test/fail_compilation/ctfe14465.d
  de17b2a15306feb4124dbd44c07f1477  gcc/testsuite/gdc.test/fail_compilation/ctfe14731.d
! 4ecb3dd4cf9077fc0b6756ab36174ed9  gcc/testsuite/gdc.test/fail_compilation/ctfeblock.d
  b0b58282b0fe3f3fe68b280aefebbf28  gcc/testsuite/gdc.test/fail_compilation/ctypes.d
  2cf4b4d38bcfec6baeb522b946354879  gcc/testsuite/gdc.test/fail_compilation/cwords.d
! 648e4f1d8563d8a65d3947f9f5d0a995  gcc/testsuite/gdc.test/fail_compilation/dassert.d
  bc1d8807cf854326de1b4c43a31e885b  gcc/testsuite/gdc.test/fail_compilation/dbitfields.d
  dcca7e17c023779b24f628b1c9e3d282  gcc/testsuite/gdc.test/fail_compilation/ddoc_18083.d
  4d924d33cec417a66c755fe3d7769105  gcc/testsuite/gdc.test/fail_compilation/debugCaseDeclaration.d
  048678d1d099844514ca11b5d5ab5cb2  gcc/testsuite/gdc.test/fail_compilation/dep_d1_ops.d
- 21429650d50a80aa3152c57cbfc13bb7  gcc/testsuite/gdc.test/fail_compilation/dephexstrings.d
  e41028796693073cf78596bf89f2fe18  gcc/testsuite/gdc.test/fail_compilation/depmsg.d
  ac11c760472b9b30ec93e1c3f589dd6a  gcc/testsuite/gdc.test/fail_compilation/depmsg15814.d
  8e33583582257f8d70a4992ecd2674c7  gcc/testsuite/gdc.test/fail_compilation/depmsg15815.d
--- 89695,89709 ----
  7af06ff2514f3b06289ab78993fbf62a  gcc/testsuite/gdc.test/fail_compilation/ctfe14207.d
  e875c4bc47d169566d81fc9e3cd91921  gcc/testsuite/gdc.test/fail_compilation/ctfe14465.d
  de17b2a15306feb4124dbd44c07f1477  gcc/testsuite/gdc.test/fail_compilation/ctfe14731.d
! 3936599680b8d9b0202e0c9ec9a6221d  gcc/testsuite/gdc.test/fail_compilation/ctfeblock.d
! b8ce66389b00a84b7a0430c007ba2af6  gcc/testsuite/gdc.test/fail_compilation/ctor_attr.d
  b0b58282b0fe3f3fe68b280aefebbf28  gcc/testsuite/gdc.test/fail_compilation/ctypes.d
  2cf4b4d38bcfec6baeb522b946354879  gcc/testsuite/gdc.test/fail_compilation/cwords.d
! 5efd0a6cfa12666675ce8951076ece70  gcc/testsuite/gdc.test/fail_compilation/dassert.d
  bc1d8807cf854326de1b4c43a31e885b  gcc/testsuite/gdc.test/fail_compilation/dbitfields.d
  dcca7e17c023779b24f628b1c9e3d282  gcc/testsuite/gdc.test/fail_compilation/ddoc_18083.d
  4d924d33cec417a66c755fe3d7769105  gcc/testsuite/gdc.test/fail_compilation/debugCaseDeclaration.d
  048678d1d099844514ca11b5d5ab5cb2  gcc/testsuite/gdc.test/fail_compilation/dep_d1_ops.d
  e41028796693073cf78596bf89f2fe18  gcc/testsuite/gdc.test/fail_compilation/depmsg.d
  ac11c760472b9b30ec93e1c3f589dd6a  gcc/testsuite/gdc.test/fail_compilation/depmsg15814.d
  8e33583582257f8d70a4992ecd2674c7  gcc/testsuite/gdc.test/fail_compilation/depmsg15815.d
*************** e3cb450a222f6e7769f2f80109b5669c  gcc/te
*** 80869,80906 ****
  f2c7e463732bac008be36eef40f1f794  gcc/testsuite/gdc.test/fail_compilation/deprecatedTemplates.d
  58bd989a6c4cef0ef2f7111fcc8f2fa0  gcc/testsuite/gdc.test/fail_compilation/deprecateopdot.d
  f6f3553d7b2001f0c682efff6764aa19  gcc/testsuite/gdc.test/fail_compilation/deprecations.d
  89725246f834be49561fa26ca1a81abe  gcc/testsuite/gdc.test/fail_compilation/diag10089.d
  55324cf5a63fdb7f5f16fb3f858ec68a  gcc/testsuite/gdc.test/fail_compilation/diag10099.d
  da8bedca9f07c5500e3fd0c0d624138f  gcc/testsuite/gdc.test/fail_compilation/diag10141.d
! 4b984c6d8ff67f57be6b538bfa4e1248  gcc/testsuite/gdc.test/fail_compilation/diag10169.d
  c8b81e8d799716ffe482b951a7a5784c  gcc/testsuite/gdc.test/fail_compilation/diag10221.d
  95a3eab7c2b730bb39cc59728912d49b  gcc/testsuite/gdc.test/fail_compilation/diag10221a.d
! c22a3b107c73f4b6e75350253158c2b9  gcc/testsuite/gdc.test/fail_compilation/diag10319.d
  3ac9c2c67c7cc5aacc8d31f1d8cad8de  gcc/testsuite/gdc.test/fail_compilation/diag10327.d
  8c5aee5c8821623c5fa500cc7b794ab5  gcc/testsuite/gdc.test/fail_compilation/diag10359.d
  97f43a15ee0e3ae55ecb8ee2d5a4ef88  gcc/testsuite/gdc.test/fail_compilation/diag10405.d
! 11a17667a41ad9d2157464f474efd825  gcc/testsuite/gdc.test/fail_compilation/diag10415.d
  1b5e8da546ae6c6b10920988d411edb2  gcc/testsuite/gdc.test/fail_compilation/diag10688.d
  3325c9050495bdf5823b3250f244d278  gcc/testsuite/gdc.test/fail_compilation/diag10768.d
! f2a37e66ac1078eafe899bdbf93154a6  gcc/testsuite/gdc.test/fail_compilation/diag10783.d
  9435511e2251f51140243460475ba28b  gcc/testsuite/gdc.test/fail_compilation/diag10792.d
  29ca6c80d3d81d3547800e40caef32f1  gcc/testsuite/gdc.test/fail_compilation/diag10805.d
! 2a21f82c5f68e9f3886ba881004fa394  gcc/testsuite/gdc.test/fail_compilation/diag10862.d
! 0f8fa1a117d96e72fecd6da544cc30de  gcc/testsuite/gdc.test/fail_compilation/diag10926.d
  8f5344172ec0e3c06210b931eb8b2289  gcc/testsuite/gdc.test/fail_compilation/diag10984.d
  29a03f85bb4ab7f29f1c7276976fe7c2  gcc/testsuite/gdc.test/fail_compilation/diag11078.d
  56b76f8f79c22f37c4a483d94cc992c5  gcc/testsuite/gdc.test/fail_compilation/diag11132.d
  5609c196ea47f6f0d67f688b3ef7eb4e  gcc/testsuite/gdc.test/fail_compilation/diag11198.d
  085c1cdc700e65be81dd4c7bf52294cb  gcc/testsuite/gdc.test/fail_compilation/diag11423.d
! 1066a5949691f5ee2814964ad44866dc  gcc/testsuite/gdc.test/fail_compilation/diag11425.d
  1595d3eede6d84963a630a22f6874c62  gcc/testsuite/gdc.test/fail_compilation/diag11727.d
  813d95fb60066d2ba3e9ce43033f08a1  gcc/testsuite/gdc.test/fail_compilation/diag11756.d
  9b296e312459378057729151fc0b586b  gcc/testsuite/gdc.test/fail_compilation/diag11759.d
! 44e85d5c7a3f7df6f9aecb496d6f2cd4  gcc/testsuite/gdc.test/fail_compilation/diag11769.d
  cd21f58b757a4597aecb16109e045703  gcc/testsuite/gdc.test/fail_compilation/diag11819a.d
  1690644d73076f8481fb08551620418d  gcc/testsuite/gdc.test/fail_compilation/diag11819b.d
  252b37d75156f0fead6921ecc03b669c  gcc/testsuite/gdc.test/fail_compilation/diag11840.d
! 052f50c16bbe7e7daa684e7d68044f6a  gcc/testsuite/gdc.test/fail_compilation/diag12063.d
  36eaacf4aa9b526badb51a1b2a781cff  gcc/testsuite/gdc.test/fail_compilation/diag12124.d
  42592ce737085699a7e4f2328a040c3d  gcc/testsuite/gdc.test/fail_compilation/diag12280.d
  cce35e6668151aa556db94f1c688fa72  gcc/testsuite/gdc.test/fail_compilation/diag12312.d
--- 89714,89752 ----
  f2c7e463732bac008be36eef40f1f794  gcc/testsuite/gdc.test/fail_compilation/deprecatedTemplates.d
  58bd989a6c4cef0ef2f7111fcc8f2fa0  gcc/testsuite/gdc.test/fail_compilation/deprecateopdot.d
  f6f3553d7b2001f0c682efff6764aa19  gcc/testsuite/gdc.test/fail_compilation/deprecations.d
+ c377cc199d79dfeec8e1bca9d50b59f6  gcc/testsuite/gdc.test/fail_compilation/deprecations_preview_in.d
  89725246f834be49561fa26ca1a81abe  gcc/testsuite/gdc.test/fail_compilation/diag10089.d
  55324cf5a63fdb7f5f16fb3f858ec68a  gcc/testsuite/gdc.test/fail_compilation/diag10099.d
  da8bedca9f07c5500e3fd0c0d624138f  gcc/testsuite/gdc.test/fail_compilation/diag10141.d
! a1d019b8bb7c01f28160ed22a7e731c2  gcc/testsuite/gdc.test/fail_compilation/diag10169.d
  c8b81e8d799716ffe482b951a7a5784c  gcc/testsuite/gdc.test/fail_compilation/diag10221.d
  95a3eab7c2b730bb39cc59728912d49b  gcc/testsuite/gdc.test/fail_compilation/diag10221a.d
! 37c465e8fe286f976c0d8a2f4c1ed0ac  gcc/testsuite/gdc.test/fail_compilation/diag10319.d
  3ac9c2c67c7cc5aacc8d31f1d8cad8de  gcc/testsuite/gdc.test/fail_compilation/diag10327.d
  8c5aee5c8821623c5fa500cc7b794ab5  gcc/testsuite/gdc.test/fail_compilation/diag10359.d
  97f43a15ee0e3ae55ecb8ee2d5a4ef88  gcc/testsuite/gdc.test/fail_compilation/diag10405.d
! dd45182458a38798c019f84bfd252373  gcc/testsuite/gdc.test/fail_compilation/diag10415.d
  1b5e8da546ae6c6b10920988d411edb2  gcc/testsuite/gdc.test/fail_compilation/diag10688.d
  3325c9050495bdf5823b3250f244d278  gcc/testsuite/gdc.test/fail_compilation/diag10768.d
! 385a50670d70680f814de8492f6c3440  gcc/testsuite/gdc.test/fail_compilation/diag10783.d
  9435511e2251f51140243460475ba28b  gcc/testsuite/gdc.test/fail_compilation/diag10792.d
  29ca6c80d3d81d3547800e40caef32f1  gcc/testsuite/gdc.test/fail_compilation/diag10805.d
! af1ef4e6b4bea31048da901e6e7ef3ec  gcc/testsuite/gdc.test/fail_compilation/diag10862.d
! 492e97a3b922351b622e2735c7d4238b  gcc/testsuite/gdc.test/fail_compilation/diag10926.d
  8f5344172ec0e3c06210b931eb8b2289  gcc/testsuite/gdc.test/fail_compilation/diag10984.d
  29a03f85bb4ab7f29f1c7276976fe7c2  gcc/testsuite/gdc.test/fail_compilation/diag11078.d
  56b76f8f79c22f37c4a483d94cc992c5  gcc/testsuite/gdc.test/fail_compilation/diag11132.d
  5609c196ea47f6f0d67f688b3ef7eb4e  gcc/testsuite/gdc.test/fail_compilation/diag11198.d
  085c1cdc700e65be81dd4c7bf52294cb  gcc/testsuite/gdc.test/fail_compilation/diag11423.d
! 1c68c5aacc3641651532fa5f792fd7e8  gcc/testsuite/gdc.test/fail_compilation/diag11425.d
  1595d3eede6d84963a630a22f6874c62  gcc/testsuite/gdc.test/fail_compilation/diag11727.d
  813d95fb60066d2ba3e9ce43033f08a1  gcc/testsuite/gdc.test/fail_compilation/diag11756.d
  9b296e312459378057729151fc0b586b  gcc/testsuite/gdc.test/fail_compilation/diag11759.d
! 5a76943d6ca324d2f66f6e758191b212  gcc/testsuite/gdc.test/fail_compilation/diag11769.d
  cd21f58b757a4597aecb16109e045703  gcc/testsuite/gdc.test/fail_compilation/diag11819a.d
  1690644d73076f8481fb08551620418d  gcc/testsuite/gdc.test/fail_compilation/diag11819b.d
  252b37d75156f0fead6921ecc03b669c  gcc/testsuite/gdc.test/fail_compilation/diag11840.d
! 2e2f958d9551ec74a3cc9136a8412daf  gcc/testsuite/gdc.test/fail_compilation/diag12063.d
  36eaacf4aa9b526badb51a1b2a781cff  gcc/testsuite/gdc.test/fail_compilation/diag12124.d
  42592ce737085699a7e4f2328a040c3d  gcc/testsuite/gdc.test/fail_compilation/diag12280.d
  cce35e6668151aa556db94f1c688fa72  gcc/testsuite/gdc.test/fail_compilation/diag12312.d
*************** ec941f3b9443e4300eb4f2b5c013b752  gcc/te
*** 80911,80917 ****
  4aa0e121f0b2bab5aa266044e6c5265b  gcc/testsuite/gdc.test/fail_compilation/diag12640.d
  7e901d0a60622bbf5d21e068b85dae87  gcc/testsuite/gdc.test/fail_compilation/diag12678.d
  e5a44aa59f0a8c539df417253dfc757d  gcc/testsuite/gdc.test/fail_compilation/diag12777.d
! f0a3873b3c6792dd7db6cca830f4f476  gcc/testsuite/gdc.test/fail_compilation/diag12829.d
  12ad99f038ff9d4b130534d896ba7e3e  gcc/testsuite/gdc.test/fail_compilation/diag13028.d
  26a273e7e974918905dcd941ce0a6b28  gcc/testsuite/gdc.test/fail_compilation/diag13082.d
  d4bdce5da010bdb608d7a34a8a7f5740  gcc/testsuite/gdc.test/fail_compilation/diag13142.d
--- 89757,89763 ----
  4aa0e121f0b2bab5aa266044e6c5265b  gcc/testsuite/gdc.test/fail_compilation/diag12640.d
  7e901d0a60622bbf5d21e068b85dae87  gcc/testsuite/gdc.test/fail_compilation/diag12678.d
  e5a44aa59f0a8c539df417253dfc757d  gcc/testsuite/gdc.test/fail_compilation/diag12777.d
! 613876036a2ae72ac0bc6a3d2af033b8  gcc/testsuite/gdc.test/fail_compilation/diag12829.d
  12ad99f038ff9d4b130534d896ba7e3e  gcc/testsuite/gdc.test/fail_compilation/diag13028.d
  26a273e7e974918905dcd941ce0a6b28  gcc/testsuite/gdc.test/fail_compilation/diag13082.d
  d4bdce5da010bdb608d7a34a8a7f5740  gcc/testsuite/gdc.test/fail_compilation/diag13142.d
*************** d4bdce5da010bdb608d7a34a8a7f5740  gcc/te
*** 80920,80950 ****
  97d3e50e19ff8502b51f9204e824c38f  gcc/testsuite/gdc.test/fail_compilation/diag13320.d
  dd421ed0f9abe1a714c279007e2a5592  gcc/testsuite/gdc.test/fail_compilation/diag13333.d
  dab78f06d70c642d12537815a7c1109a  gcc/testsuite/gdc.test/fail_compilation/diag13528.d
! 31eaec2f7799d785b3d295c2f8f8fdc7  gcc/testsuite/gdc.test/fail_compilation/diag13609a.d
  9688de813cdbe563a300541d45c3bede  gcc/testsuite/gdc.test/fail_compilation/diag13609b.d
  323639abc3ebdd34ce32293a912c31fc  gcc/testsuite/gdc.test/fail_compilation/diag13787.d
! 29a96c80e52a33d2abd697465057cdaf  gcc/testsuite/gdc.test/fail_compilation/diag13884.d
! faff105f32e9ad1bee6d733b11ef0440  gcc/testsuite/gdc.test/fail_compilation/diag13942.d
! b135de15f64cd4196a902ddf0bc6bca5  gcc/testsuite/gdc.test/fail_compilation/diag14102.d
! 01fd3ec5af6304a8ba774953d807c55c  gcc/testsuite/gdc.test/fail_compilation/diag14145.d
  470f9e960030641e13352fc666d6c8fe  gcc/testsuite/gdc.test/fail_compilation/diag14163.d
  1a2929addc83dac2ec8bfe022f2d3a36  gcc/testsuite/gdc.test/fail_compilation/diag14235.d
! 4e2b3a2f190850c011d184f5a2067132  gcc/testsuite/gdc.test/fail_compilation/diag14818.d
  3808501546013484e5ead4ac99b5e9ee  gcc/testsuite/gdc.test/fail_compilation/diag14875.d
! 3721c00c1cf5f5573935d4961c7f9f52  gcc/testsuite/gdc.test/fail_compilation/diag14876.d
  5c4ad04d22fbe55f5b07497287ced691  gcc/testsuite/gdc.test/fail_compilation/diag15001.d
  953302c17eef47eba4fc4c5c3ee18f2b  gcc/testsuite/gdc.test/fail_compilation/diag15186.d
! 3749151134e6b93d534f99b61203be0b  gcc/testsuite/gdc.test/fail_compilation/diag15209.d
  00c5d18cc76c3f36c5504cb23eee10ce  gcc/testsuite/gdc.test/fail_compilation/diag15340.d
  b2c274e49ec1f078f27e11c2c3c1480f  gcc/testsuite/gdc.test/fail_compilation/diag15411.d
  f28f753c50d24ae45fd4aacf60d88ef4  gcc/testsuite/gdc.test/fail_compilation/diag1566.d
  079ea590e7e1ad4e2aa15133ada08c5a  gcc/testsuite/gdc.test/fail_compilation/diag15669.d
! dc5b7fb35b3c8566acbced7e66b9287f  gcc/testsuite/gdc.test/fail_compilation/diag15713.d
  88da152ad7463583e00c228e6531a782  gcc/testsuite/gdc.test/fail_compilation/diag15974.d
  53f97b18fcd9150362cfa32203d1ce90  gcc/testsuite/gdc.test/fail_compilation/diag16271.d
  79eeb3e32b34783ae3c4ccea6caf4721  gcc/testsuite/gdc.test/fail_compilation/diag16499.d
  ca21748c3c8002f58049b5f03aa8eb8b  gcc/testsuite/gdc.test/fail_compilation/diag16976.d
! 5f89cbc8576f379f075688c3298d74f7  gcc/testsuite/gdc.test/fail_compilation/diag16977.d
  74b4ddb2d570b5b689c757647aca8d12  gcc/testsuite/gdc.test/fail_compilation/diag1730.d
  2f18d41b0a3ab8f0ee83bcce80a39e84  gcc/testsuite/gdc.test/fail_compilation/diag18460.d
  e5adf342a518a65c134912a7b1fa7b4d  gcc/testsuite/gdc.test/fail_compilation/diag18574.d
--- 89766,89796 ----
  97d3e50e19ff8502b51f9204e824c38f  gcc/testsuite/gdc.test/fail_compilation/diag13320.d
  dd421ed0f9abe1a714c279007e2a5592  gcc/testsuite/gdc.test/fail_compilation/diag13333.d
  dab78f06d70c642d12537815a7c1109a  gcc/testsuite/gdc.test/fail_compilation/diag13528.d
! 6b9b5faf045c28f8636a0b372a3ab241  gcc/testsuite/gdc.test/fail_compilation/diag13609a.d
  9688de813cdbe563a300541d45c3bede  gcc/testsuite/gdc.test/fail_compilation/diag13609b.d
  323639abc3ebdd34ce32293a912c31fc  gcc/testsuite/gdc.test/fail_compilation/diag13787.d
! 26daf2172eb46379fbb269b93308bd84  gcc/testsuite/gdc.test/fail_compilation/diag13884.d
! 732c9b90ba07e677abf04637b57a8357  gcc/testsuite/gdc.test/fail_compilation/diag13942.d
! 5f54e2c232ee92552062d43046efc900  gcc/testsuite/gdc.test/fail_compilation/diag14102.d
! ad83cb0ebb490d012a82a8fc7a478220  gcc/testsuite/gdc.test/fail_compilation/diag14145.d
  470f9e960030641e13352fc666d6c8fe  gcc/testsuite/gdc.test/fail_compilation/diag14163.d
  1a2929addc83dac2ec8bfe022f2d3a36  gcc/testsuite/gdc.test/fail_compilation/diag14235.d
! a9ab100aae0780694501ba90b3941bf1  gcc/testsuite/gdc.test/fail_compilation/diag14818.d
  3808501546013484e5ead4ac99b5e9ee  gcc/testsuite/gdc.test/fail_compilation/diag14875.d
! 0848129f9b98ce7abe14b2dee27a777d  gcc/testsuite/gdc.test/fail_compilation/diag14876.d
  5c4ad04d22fbe55f5b07497287ced691  gcc/testsuite/gdc.test/fail_compilation/diag15001.d
  953302c17eef47eba4fc4c5c3ee18f2b  gcc/testsuite/gdc.test/fail_compilation/diag15186.d
! 3cab5d2691dfff48d4950d494d943e02  gcc/testsuite/gdc.test/fail_compilation/diag15209.d
  00c5d18cc76c3f36c5504cb23eee10ce  gcc/testsuite/gdc.test/fail_compilation/diag15340.d
  b2c274e49ec1f078f27e11c2c3c1480f  gcc/testsuite/gdc.test/fail_compilation/diag15411.d
  f28f753c50d24ae45fd4aacf60d88ef4  gcc/testsuite/gdc.test/fail_compilation/diag1566.d
  079ea590e7e1ad4e2aa15133ada08c5a  gcc/testsuite/gdc.test/fail_compilation/diag15669.d
! 89890e8ceb2db133ec22d2c40ab958a4  gcc/testsuite/gdc.test/fail_compilation/diag15713.d
  88da152ad7463583e00c228e6531a782  gcc/testsuite/gdc.test/fail_compilation/diag15974.d
  53f97b18fcd9150362cfa32203d1ce90  gcc/testsuite/gdc.test/fail_compilation/diag16271.d
  79eeb3e32b34783ae3c4ccea6caf4721  gcc/testsuite/gdc.test/fail_compilation/diag16499.d
  ca21748c3c8002f58049b5f03aa8eb8b  gcc/testsuite/gdc.test/fail_compilation/diag16976.d
! 92d3bc16f328d2eb63d1979063743fc2  gcc/testsuite/gdc.test/fail_compilation/diag16977.d
  74b4ddb2d570b5b689c757647aca8d12  gcc/testsuite/gdc.test/fail_compilation/diag1730.d
  2f18d41b0a3ab8f0ee83bcce80a39e84  gcc/testsuite/gdc.test/fail_compilation/diag18460.d
  e5adf342a518a65c134912a7b1fa7b4d  gcc/testsuite/gdc.test/fail_compilation/diag18574.d
*************** ec86243ec70481877d5034309610fe9b  gcc/te
*** 80952,80961 ****
  ef13cff5613132d38394dfcda321198a  gcc/testsuite/gdc.test/fail_compilation/diag19196.d
  41495e7d17eb1bd93beea0ff106e0f2e  gcc/testsuite/gdc.test/fail_compilation/diag19225.d
  e382e1fe742ff323d95980a7b3337beb  gcc/testsuite/gdc.test/fail_compilation/diag20059.d
  c3638a460a108e562e095fa04d0d60be  gcc/testsuite/gdc.test/fail_compilation/diag20518.d
  b233b20e604b69dca9939988d5ecf22f  gcc/testsuite/gdc.test/fail_compilation/diag21883.d
  5c89600971dd19099525abe20ce5f158  gcc/testsuite/gdc.test/fail_compilation/diag23295.d
! c13e43cabcb95659a33f835e356f750f  gcc/testsuite/gdc.test/fail_compilation/diag23355.d
  224a2021912a4ad8ba087865fa352232  gcc/testsuite/gdc.test/fail_compilation/diag23384.d
  9b6cfcbc4b79fcd4610ac7bcb72ffb67  gcc/testsuite/gdc.test/fail_compilation/diag2452.d
  6f951b34310a15382960e9f406c8484e  gcc/testsuite/gdc.test/fail_compilation/diag3013.d
--- 89798,89808 ----
  ef13cff5613132d38394dfcda321198a  gcc/testsuite/gdc.test/fail_compilation/diag19196.d
  41495e7d17eb1bd93beea0ff106e0f2e  gcc/testsuite/gdc.test/fail_compilation/diag19225.d
  e382e1fe742ff323d95980a7b3337beb  gcc/testsuite/gdc.test/fail_compilation/diag20059.d
+ 654b563b2a45dc23d6a82ee001d82117  gcc/testsuite/gdc.test/fail_compilation/diag20268.d
  c3638a460a108e562e095fa04d0d60be  gcc/testsuite/gdc.test/fail_compilation/diag20518.d
  b233b20e604b69dca9939988d5ecf22f  gcc/testsuite/gdc.test/fail_compilation/diag21883.d
  5c89600971dd19099525abe20ce5f158  gcc/testsuite/gdc.test/fail_compilation/diag23295.d
! f66e20c29e1a7326b2bb6f3603ba6ec5  gcc/testsuite/gdc.test/fail_compilation/diag23355.d
  224a2021912a4ad8ba087865fa352232  gcc/testsuite/gdc.test/fail_compilation/diag23384.d
  9b6cfcbc4b79fcd4610ac7bcb72ffb67  gcc/testsuite/gdc.test/fail_compilation/diag2452.d
  6f951b34310a15382960e9f406c8484e  gcc/testsuite/gdc.test/fail_compilation/diag3013.d
*************** e771c3d0b572b4c3cad86d219b8ae6bc  gcc/te
*** 80964,80975 ****
  3310352e022602a5aade42284297bffb  gcc/testsuite/gdc.test/fail_compilation/diag3672a.d
  2f37bbfbcaf32e6965aa587cda1caa6f  gcc/testsuite/gdc.test/fail_compilation/diag3673.d
  9d3481b76d9d58e6dd111e80187da624  gcc/testsuite/gdc.test/fail_compilation/diag3869.d
! 904484bad801cff707bd09bd49cbb79d  gcc/testsuite/gdc.test/fail_compilation/diag3913.d
  62e1bc5dc53050d038c8d96370b9f681  gcc/testsuite/gdc.test/fail_compilation/diag4479.d
  ef52e7f7308cf261840cf0bd1dc91197  gcc/testsuite/gdc.test/fail_compilation/diag4528.d
  8f15df10bf4dd96d8df274ea196b7a8d  gcc/testsuite/gdc.test/fail_compilation/diag4540.d
! 46f6b5e86b2f12c877979dd09275872c  gcc/testsuite/gdc.test/fail_compilation/diag4596.d
! 55d4e791b220c766b15c5fc1793383d5  gcc/testsuite/gdc.test/fail_compilation/diag5385.d
  2d17bc2bbec8066ae00bf5f6af5c0e0c  gcc/testsuite/gdc.test/fail_compilation/diag5450.d
  be04821c384c2151a5ad2c4eb62e3dcf  gcc/testsuite/gdc.test/fail_compilation/diag6373.d
  62c07c401f7ed0f115c0756e8a1ee64f  gcc/testsuite/gdc.test/fail_compilation/diag6539.d
--- 89811,89822 ----
  3310352e022602a5aade42284297bffb  gcc/testsuite/gdc.test/fail_compilation/diag3672a.d
  2f37bbfbcaf32e6965aa587cda1caa6f  gcc/testsuite/gdc.test/fail_compilation/diag3673.d
  9d3481b76d9d58e6dd111e80187da624  gcc/testsuite/gdc.test/fail_compilation/diag3869.d
! aa8399e44922530f5d98869256555a5e  gcc/testsuite/gdc.test/fail_compilation/diag3913.d
  62e1bc5dc53050d038c8d96370b9f681  gcc/testsuite/gdc.test/fail_compilation/diag4479.d
  ef52e7f7308cf261840cf0bd1dc91197  gcc/testsuite/gdc.test/fail_compilation/diag4528.d
  8f15df10bf4dd96d8df274ea196b7a8d  gcc/testsuite/gdc.test/fail_compilation/diag4540.d
! 23731264a242c4f6666935ba63315983  gcc/testsuite/gdc.test/fail_compilation/diag4596.d
! 71924b037b03742374e9fefa61263f91  gcc/testsuite/gdc.test/fail_compilation/diag5385.d
  2d17bc2bbec8066ae00bf5f6af5c0e0c  gcc/testsuite/gdc.test/fail_compilation/diag5450.d
  be04821c384c2151a5ad2c4eb62e3dcf  gcc/testsuite/gdc.test/fail_compilation/diag6373.d
  62c07c401f7ed0f115c0756e8a1ee64f  gcc/testsuite/gdc.test/fail_compilation/diag6539.d
*************** df337ef4561ea1d5044bc4478536d6e3  gcc/te
*** 80981,81026 ****
  07ff7f8f2a13bf0921970d7c3d1c2e01  gcc/testsuite/gdc.test/fail_compilation/diag7050b.d
  3a23c3ed3923fa49618d35afdd940b4b  gcc/testsuite/gdc.test/fail_compilation/diag7050c.d
  7c885eec1871684720d3024f0856053f  gcc/testsuite/gdc.test/fail_compilation/diag7420.d
! 930cbd5dd5fdb025f2ab6e5983203be6  gcc/testsuite/gdc.test/fail_compilation/diag7477.d
  b0bb0a7eed29aa54814135d9d2b2a25a  gcc/testsuite/gdc.test/fail_compilation/diag7747.d
  c054c437713978aaa4afae9d1d969336  gcc/testsuite/gdc.test/fail_compilation/diag7998.d
  c3f1286978539eb8fb344f622234e66f  gcc/testsuite/gdc.test/fail_compilation/diag8044.d
! 63d9012b1964ee226e2c686bda02edaa  gcc/testsuite/gdc.test/fail_compilation/diag8101.d
! 23e1ead2a04cd7bb7f19949550db3bd3  gcc/testsuite/gdc.test/fail_compilation/diag8101b.d
  286c2b3cf8b5667b030e56dc6f4b2389  gcc/testsuite/gdc.test/fail_compilation/diag8178.d
  03f28c9b644096a7e8a4b8ce284a059b  gcc/testsuite/gdc.test/fail_compilation/diag8318.d
  2b1cc31cacec55cd31c6dbcb01ac9576  gcc/testsuite/gdc.test/fail_compilation/diag8425.d
  20b5bb194fd7d3b0ebf42bf0151ad86a  gcc/testsuite/gdc.test/fail_compilation/diag8510.d
  b72d2b6c59107b1a90708d7ff0dfc4ca  gcc/testsuite/gdc.test/fail_compilation/diag8559.d
! aa1ccdd3e20ffd39ef59ab1c4e67b555  gcc/testsuite/gdc.test/fail_compilation/diag8648.d
  ec634dbbf8f3a96a5d79c7d8f3efccf8  gcc/testsuite/gdc.test/fail_compilation/diag8684.d
! 56e2ca9250c8faa561590bfd71d402b6  gcc/testsuite/gdc.test/fail_compilation/diag8697.d
  6da190e26800e4b396e0346faf0552e3  gcc/testsuite/gdc.test/fail_compilation/diag8714.d
  8be7e4f3ba174f8a92c2aecbfc9b5419  gcc/testsuite/gdc.test/fail_compilation/diag8777.d
  42812d0c83ffaf8e781baa00443ebbac  gcc/testsuite/gdc.test/fail_compilation/diag8787.d
  ff3b86a24c6b08b8abda906070e72c91  gcc/testsuite/gdc.test/fail_compilation/diag8825.d
  2f7ecdc871c982df25cc4452eb37393d  gcc/testsuite/gdc.test/fail_compilation/diag8892.d
! db41553f8280f3382fe6298ab3972393  gcc/testsuite/gdc.test/fail_compilation/diag8894.d
  883b3aa087c353de52e9d7ef2f1e11d3  gcc/testsuite/gdc.test/fail_compilation/diag8928.d
! 16bc7fb774cb7a9fb57bdfdc8899dc53  gcc/testsuite/gdc.test/fail_compilation/diag9004.d
  1ca0cbaa5486bbb1fca649821e5fd454  gcc/testsuite/gdc.test/fail_compilation/diag9148.d
  bcf18ce030ed62b36660197352b4407b  gcc/testsuite/gdc.test/fail_compilation/diag9191.d
  e9a684b92a19f3209b93cfa703068084  gcc/testsuite/gdc.test/fail_compilation/diag9210a.d
  8460a9ca71067e6480f1127357582fac  gcc/testsuite/gdc.test/fail_compilation/diag9247.d
  87826ac2f6bbb76e4f3765ad1364c54d  gcc/testsuite/gdc.test/fail_compilation/diag9250.d
! 32fc269de8dcfbab6b85ba14bdb63ee7  gcc/testsuite/gdc.test/fail_compilation/diag9312.d
  b28a3eecd7c36ded5aca587073cebd78  gcc/testsuite/gdc.test/fail_compilation/diag9357.d
  e79225b5e67e900ce187e333f87cf6dd  gcc/testsuite/gdc.test/fail_compilation/diag9358.d
  b7b293d85267d1066cc299d96cd9f665  gcc/testsuite/gdc.test/fail_compilation/diag9398.d
  6eb53adfe26eb5bbba0a5c917ad178cb  gcc/testsuite/gdc.test/fail_compilation/diag9420.d
! 31497bedce46e25b7ba95e54bc77fbbf  gcc/testsuite/gdc.test/fail_compilation/diag9451.d
  c71eae763fc17f4bb9c9edc5c73097ab  gcc/testsuite/gdc.test/fail_compilation/diag9479.d
! 54b1b2af358aa461b393edfb0bf136e8  gcc/testsuite/gdc.test/fail_compilation/diag9574.d
! 76fe93a42e4458fcc121c868576a07e0  gcc/testsuite/gdc.test/fail_compilation/diag9620.d
! 40a26cdfdc76ded75627d866bd791a6e  gcc/testsuite/gdc.test/fail_compilation/diag9635.d
  5876acaf72ec719af891cafb7f2f6c01  gcc/testsuite/gdc.test/fail_compilation/diag9679.d
  e6846c6e7f24e0dbf859ddb4ee3797da  gcc/testsuite/gdc.test/fail_compilation/diag9765.d
! bb487b4659793bcee21e209fc10b6dd2  gcc/testsuite/gdc.test/fail_compilation/diag9831.d
  0a1ea1d064f1b004feea83c95bdd98d3  gcc/testsuite/gdc.test/fail_compilation/diag9861.d
  31e92e3db25af5b2294a1f6fee342253  gcc/testsuite/gdc.test/fail_compilation/diag9880.d
  18dc0edc9cf3c2e217b033ad72134100  gcc/testsuite/gdc.test/fail_compilation/diag9961.d
--- 89828,89872 ----
  07ff7f8f2a13bf0921970d7c3d1c2e01  gcc/testsuite/gdc.test/fail_compilation/diag7050b.d
  3a23c3ed3923fa49618d35afdd940b4b  gcc/testsuite/gdc.test/fail_compilation/diag7050c.d
  7c885eec1871684720d3024f0856053f  gcc/testsuite/gdc.test/fail_compilation/diag7420.d
! 252a223cd20470f5209e7ee4bcf254ac  gcc/testsuite/gdc.test/fail_compilation/diag7477.d
  b0bb0a7eed29aa54814135d9d2b2a25a  gcc/testsuite/gdc.test/fail_compilation/diag7747.d
  c054c437713978aaa4afae9d1d969336  gcc/testsuite/gdc.test/fail_compilation/diag7998.d
  c3f1286978539eb8fb344f622234e66f  gcc/testsuite/gdc.test/fail_compilation/diag8044.d
! a2a5cf6080cfa5294e35c1b4d51aa562  gcc/testsuite/gdc.test/fail_compilation/diag8101.d
! 3822b64303f960f45d5aa342f61a2a2b  gcc/testsuite/gdc.test/fail_compilation/diag8101b.d
  286c2b3cf8b5667b030e56dc6f4b2389  gcc/testsuite/gdc.test/fail_compilation/diag8178.d
  03f28c9b644096a7e8a4b8ce284a059b  gcc/testsuite/gdc.test/fail_compilation/diag8318.d
  2b1cc31cacec55cd31c6dbcb01ac9576  gcc/testsuite/gdc.test/fail_compilation/diag8425.d
  20b5bb194fd7d3b0ebf42bf0151ad86a  gcc/testsuite/gdc.test/fail_compilation/diag8510.d
  b72d2b6c59107b1a90708d7ff0dfc4ca  gcc/testsuite/gdc.test/fail_compilation/diag8559.d
! e61cc1c974dfd6949cc95a09e6c58e20  gcc/testsuite/gdc.test/fail_compilation/diag8648.d
  ec634dbbf8f3a96a5d79c7d8f3efccf8  gcc/testsuite/gdc.test/fail_compilation/diag8684.d
! 5cd652980c7140f819d1182d9fed102f  gcc/testsuite/gdc.test/fail_compilation/diag8697.d
  6da190e26800e4b396e0346faf0552e3  gcc/testsuite/gdc.test/fail_compilation/diag8714.d
  8be7e4f3ba174f8a92c2aecbfc9b5419  gcc/testsuite/gdc.test/fail_compilation/diag8777.d
  42812d0c83ffaf8e781baa00443ebbac  gcc/testsuite/gdc.test/fail_compilation/diag8787.d
  ff3b86a24c6b08b8abda906070e72c91  gcc/testsuite/gdc.test/fail_compilation/diag8825.d
  2f7ecdc871c982df25cc4452eb37393d  gcc/testsuite/gdc.test/fail_compilation/diag8892.d
! 636cdb4c1ba86e7243c9456463bf3b88  gcc/testsuite/gdc.test/fail_compilation/diag8894.d
  883b3aa087c353de52e9d7ef2f1e11d3  gcc/testsuite/gdc.test/fail_compilation/diag8928.d
! af1cb4b4feff9afa7b9413ce3435a35b  gcc/testsuite/gdc.test/fail_compilation/diag9004.d
  1ca0cbaa5486bbb1fca649821e5fd454  gcc/testsuite/gdc.test/fail_compilation/diag9148.d
  bcf18ce030ed62b36660197352b4407b  gcc/testsuite/gdc.test/fail_compilation/diag9191.d
  e9a684b92a19f3209b93cfa703068084  gcc/testsuite/gdc.test/fail_compilation/diag9210a.d
  8460a9ca71067e6480f1127357582fac  gcc/testsuite/gdc.test/fail_compilation/diag9247.d
  87826ac2f6bbb76e4f3765ad1364c54d  gcc/testsuite/gdc.test/fail_compilation/diag9250.d
! e5728c06dedf56eb3929dbbabbe45550  gcc/testsuite/gdc.test/fail_compilation/diag9312.d
  b28a3eecd7c36ded5aca587073cebd78  gcc/testsuite/gdc.test/fail_compilation/diag9357.d
  e79225b5e67e900ce187e333f87cf6dd  gcc/testsuite/gdc.test/fail_compilation/diag9358.d
  b7b293d85267d1066cc299d96cd9f665  gcc/testsuite/gdc.test/fail_compilation/diag9398.d
  6eb53adfe26eb5bbba0a5c917ad178cb  gcc/testsuite/gdc.test/fail_compilation/diag9420.d
! f4fc4015b440555b99731b7d356b9507  gcc/testsuite/gdc.test/fail_compilation/diag9451.d
  c71eae763fc17f4bb9c9edc5c73097ab  gcc/testsuite/gdc.test/fail_compilation/diag9479.d
! 3045cdd4362ba0290203c125bb24d788  gcc/testsuite/gdc.test/fail_compilation/diag9620.d
! 246e59218a53b00f8b5f145a8a108ecb  gcc/testsuite/gdc.test/fail_compilation/diag9635.d
  5876acaf72ec719af891cafb7f2f6c01  gcc/testsuite/gdc.test/fail_compilation/diag9679.d
  e6846c6e7f24e0dbf859ddb4ee3797da  gcc/testsuite/gdc.test/fail_compilation/diag9765.d
! 3a3d4d83fc2d33544b2ecbe25a5416ed  gcc/testsuite/gdc.test/fail_compilation/diag9831.d
  0a1ea1d064f1b004feea83c95bdd98d3  gcc/testsuite/gdc.test/fail_compilation/diag9861.d
  31e92e3db25af5b2294a1f6fee342253  gcc/testsuite/gdc.test/fail_compilation/diag9880.d
  18dc0edc9cf3c2e217b033ad72134100  gcc/testsuite/gdc.test/fail_compilation/diag9961.d
*************** ac1ecc983943befbdb99b4963b9bbd6a  gcc/te
*** 81030,81059 ****
  a80d9b7356faf786d0cfbbc683dd384b  gcc/testsuite/gdc.test/fail_compilation/diag_err1.d
  e9d41a39faeccdf482bf48c2e0d9bb71  gcc/testsuite/gdc.test/fail_compilation/diag_funclit.d
  6dcb531b3e3bdd493826c6b9e087ce54  gcc/testsuite/gdc.test/fail_compilation/diag_in_array.d
! c1261c2895e88b735569f4206cc6ac70  gcc/testsuite/gdc.test/fail_compilation/diag_template_alias.d
! 1248ebe003fb4c529ab1a5c34e8dc488  gcc/testsuite/gdc.test/fail_compilation/diag_template_this.d
! b4473c3742d815261ff5b4cd61e8f360  gcc/testsuite/gdc.test/fail_compilation/diagin.d
  bca78167ff7a3c97e08c33b9bba2a2eb  gcc/testsuite/gdc.test/fail_compilation/diaginref.d
! aa5f996b3c96d756dc60f208811409cb  gcc/testsuite/gdc.test/fail_compilation/dip1000_deprecation.d
! 89ffd8e3577a113d589fe05b6c1a53cb  gcc/testsuite/gdc.test/fail_compilation/dip22a.d
  9f256dbd3ec217ad95c9e492a2137864  gcc/testsuite/gdc.test/fail_compilation/dip22b.d
  0e99be6b01ea3e8a145b5f587ed83d23  gcc/testsuite/gdc.test/fail_compilation/dip22e.d
  1b912760cdec43dea02cb1e1a09bd642  gcc/testsuite/gdc.test/fail_compilation/dip25.d
  9feee5abd1332de813bbab90f35c3bf2  gcc/testsuite/gdc.test/fail_compilation/dip25flag.d
  342f6526dab7f6966b6f04965f84d2cc  gcc/testsuite/gdc.test/fail_compilation/disable.d
  3c2f76ba05acd80893f8b5c379e55865  gcc/testsuite/gdc.test/fail_compilation/disable_new.d
! 9ffe32970c06ad3547a304130c4423d5  gcc/testsuite/gdc.test/fail_compilation/dtor_attributes.d
! 097c0612462a3ae00990bc68a9ccabb3  gcc/testsuite/gdc.test/fail_compilation/dtorfields_attributes.d
! dab46e2bce697fc40ad6ad9d3fa35801  gcc/testsuite/gdc.test/fail_compilation/e15876_1.d
! 2500d02c26d2ef0e7fc6ee2769ed9103  gcc/testsuite/gdc.test/fail_compilation/e15876_2.d
! 965f16e6a62131bcbf3d0a30704f7b15  gcc/testsuite/gdc.test/fail_compilation/e15876_3.d
! c6a3e631bdb258e10a20bc0db6055b61  gcc/testsuite/gdc.test/fail_compilation/e15876_4.d
! ab1cadaffa89b61eb7dff4af5221d0b2  gcc/testsuite/gdc.test/fail_compilation/e15876_5.d
! 59a847b524ea2e40b5db154080acbb1c  gcc/testsuite/gdc.test/fail_compilation/e15876_6.d
  9c85e4911f1d459b180bb94b53ede6aa  gcc/testsuite/gdc.test/fail_compilation/e7804_1.d
  ebd624415ce51467f6282d2f66d82e6b  gcc/testsuite/gdc.test/fail_compilation/e7804_2.d
  bec96d18023efd76c6a9a3f99ff127b5  gcc/testsuite/gdc.test/fail_compilation/enum9921.d
! 5746e670b1e0969f5a165a27c3b77724  gcc/testsuite/gdc.test/fail_compilation/enum_init.d
  f76cf9db0833afa5687645d4c74a9897  gcc/testsuite/gdc.test/fail_compilation/extra-files/bar11453.d
  99acc5a7305edac00837d2641c2f1bb9  gcc/testsuite/gdc.test/fail_compilation/extra-files/foo11453.d
  84bebd871a01f556191f22e1fa9eace9  gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d
--- 89876,89906 ----
  a80d9b7356faf786d0cfbbc683dd384b  gcc/testsuite/gdc.test/fail_compilation/diag_err1.d
  e9d41a39faeccdf482bf48c2e0d9bb71  gcc/testsuite/gdc.test/fail_compilation/diag_funclit.d
  6dcb531b3e3bdd493826c6b9e087ce54  gcc/testsuite/gdc.test/fail_compilation/diag_in_array.d
! bd8c1d2e38ba383e6edf626fe29805cd  gcc/testsuite/gdc.test/fail_compilation/diag_template_alias.d
! 0bc93ed77e9a47eca661baedbb627af6  gcc/testsuite/gdc.test/fail_compilation/diag_template_this.d
! 93111526c56d63a0584e54a0e3b61351  gcc/testsuite/gdc.test/fail_compilation/diagin.d
  bca78167ff7a3c97e08c33b9bba2a2eb  gcc/testsuite/gdc.test/fail_compilation/diaginref.d
! b86857b761dfaeeb90223b1f57829a20  gcc/testsuite/gdc.test/fail_compilation/dip22a.d
  9f256dbd3ec217ad95c9e492a2137864  gcc/testsuite/gdc.test/fail_compilation/dip22b.d
  0e99be6b01ea3e8a145b5f587ed83d23  gcc/testsuite/gdc.test/fail_compilation/dip22e.d
  1b912760cdec43dea02cb1e1a09bd642  gcc/testsuite/gdc.test/fail_compilation/dip25.d
  9feee5abd1332de813bbab90f35c3bf2  gcc/testsuite/gdc.test/fail_compilation/dip25flag.d
  342f6526dab7f6966b6f04965f84d2cc  gcc/testsuite/gdc.test/fail_compilation/disable.d
  3c2f76ba05acd80893f8b5c379e55865  gcc/testsuite/gdc.test/fail_compilation/disable_new.d
! bf2e3014e67e7bf4960b6bdb913f9523  gcc/testsuite/gdc.test/fail_compilation/discard_value.d
! 478da6239f3c9f3d950a69101379fd84  gcc/testsuite/gdc.test/fail_compilation/dtor_attributes.d
! c6868dc189d18c29ad586141986dc0aa  gcc/testsuite/gdc.test/fail_compilation/dtorfields_attributes.d
! f051de03a6d83a637bf7dc991cc8b793  gcc/testsuite/gdc.test/fail_compilation/e15876_1.d
! 6211acf057597ef0e99b4f8f264d8dab  gcc/testsuite/gdc.test/fail_compilation/e15876_2.d
! 04cd8b46efe829be77a4be61c1cac880  gcc/testsuite/gdc.test/fail_compilation/e15876_3.d
! 785fd34d42dc72ff8b10e9286489fe47  gcc/testsuite/gdc.test/fail_compilation/e15876_4.d
! bcd4ac065abd9ef5c2a90404d3c2ec71  gcc/testsuite/gdc.test/fail_compilation/e15876_5.d
! 4f130fa0b34093205fd971c815202639  gcc/testsuite/gdc.test/fail_compilation/e15876_6.d
  9c85e4911f1d459b180bb94b53ede6aa  gcc/testsuite/gdc.test/fail_compilation/e7804_1.d
  ebd624415ce51467f6282d2f66d82e6b  gcc/testsuite/gdc.test/fail_compilation/e7804_2.d
  bec96d18023efd76c6a9a3f99ff127b5  gcc/testsuite/gdc.test/fail_compilation/enum9921.d
! 7a7a1aaeb4fc6b303510c71e5a9a9dd1  gcc/testsuite/gdc.test/fail_compilation/enum_function.d
! 0b0991fe537454dbe30a83326f834f7a  gcc/testsuite/gdc.test/fail_compilation/enum_init.d
  f76cf9db0833afa5687645d4c74a9897  gcc/testsuite/gdc.test/fail_compilation/extra-files/bar11453.d
  99acc5a7305edac00837d2641c2f1bb9  gcc/testsuite/gdc.test/fail_compilation/extra-files/foo11453.d
  84bebd871a01f556191f22e1fa9eace9  gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d
*************** f76cf9db0833afa5687645d4c74a9897  gcc/te
*** 81067,81091 ****
  a883dee9cdfef4dfaf5f5fb50b0e3916  gcc/testsuite/gdc.test/fail_compilation/fail10207.d
  dc0b2c8b06a051c610f3f48d202814c8  gcc/testsuite/gdc.test/fail_compilation/fail10254.d
  2bba564e38b0328fdce880e6be9cc3df  gcc/testsuite/gdc.test/fail_compilation/fail10277.d
! 479830a391e47ca5d5fde21edae925e0  gcc/testsuite/gdc.test/fail_compilation/fail10285.d
! 858929cd54995def4a10401b5254130b  gcc/testsuite/gdc.test/fail_compilation/fail10299.d
  dd17a2837ac6f2f2d6b2c8561c63a3b6  gcc/testsuite/gdc.test/fail_compilation/fail10346.d
  291fbc1ab7699e833918b8d8b769a6df  gcc/testsuite/gdc.test/fail_compilation/fail104.d
  b726e7e5862cef761fbffe4798462131  gcc/testsuite/gdc.test/fail_compilation/fail10481.d
  72c8b8ebc6cf14d229679ffa91df4069  gcc/testsuite/gdc.test/fail_compilation/fail105.d
! 4baf68a70ac4dcded8157a06acfd6922  gcc/testsuite/gdc.test/fail_compilation/fail10528.d
! 662b3a10601db386a111d5b760db289b  gcc/testsuite/gdc.test/fail_compilation/fail10534.d
  78a14815b99eb16bff945b3d3f5972aa  gcc/testsuite/gdc.test/fail_compilation/fail106.d
  71288e2e511948061477a0747fecb40e  gcc/testsuite/gdc.test/fail_compilation/fail10630.d
  cb53acf48a2b67325d7f8241e9c9ab8b  gcc/testsuite/gdc.test/fail_compilation/fail10666.d
  132cc39e1c28cccfc1029171f7c406d8  gcc/testsuite/gdc.test/fail_compilation/fail10806.d
! 71407111459a99cf21bd6af959bb9282  gcc/testsuite/gdc.test/fail_compilation/fail109.d
  84cb1acfd9c573c41c1b83dac83a9c8f  gcc/testsuite/gdc.test/fail_compilation/fail10947.d
  67f504c001f946a3a9205c3a5d585f49  gcc/testsuite/gdc.test/fail_compilation/fail10964.d
! b53585084cacb66ecf8806f4af7bff5e  gcc/testsuite/gdc.test/fail_compilation/fail10968.d
  fa66b0e920971c09a8f7f0ae71cc7e78  gcc/testsuite/gdc.test/fail_compilation/fail10980.d
  7461aa4bd527e973ee745038e7e175a7  gcc/testsuite/gdc.test/fail_compilation/fail11.d
! 7249231e0229e12b12abb71155f5b603  gcc/testsuite/gdc.test/fail_compilation/fail110.d
  3e6a7f8205ea96359effae2162844504  gcc/testsuite/gdc.test/fail_compilation/fail11038.d
  10f619ddec93bf8424836e0ce9b45879  gcc/testsuite/gdc.test/fail_compilation/fail11042.d
  43e247410a0595e0e0a8237f56b77bbc  gcc/testsuite/gdc.test/fail_compilation/fail111.d
--- 89914,89938 ----
  a883dee9cdfef4dfaf5f5fb50b0e3916  gcc/testsuite/gdc.test/fail_compilation/fail10207.d
  dc0b2c8b06a051c610f3f48d202814c8  gcc/testsuite/gdc.test/fail_compilation/fail10254.d
  2bba564e38b0328fdce880e6be9cc3df  gcc/testsuite/gdc.test/fail_compilation/fail10277.d
! 6df609783ae062ea542e4fb52b78e659  gcc/testsuite/gdc.test/fail_compilation/fail10285.d
! c73e4177c4650bda502fd9b748af1a4f  gcc/testsuite/gdc.test/fail_compilation/fail10299.d
  dd17a2837ac6f2f2d6b2c8561c63a3b6  gcc/testsuite/gdc.test/fail_compilation/fail10346.d
  291fbc1ab7699e833918b8d8b769a6df  gcc/testsuite/gdc.test/fail_compilation/fail104.d
  b726e7e5862cef761fbffe4798462131  gcc/testsuite/gdc.test/fail_compilation/fail10481.d
  72c8b8ebc6cf14d229679ffa91df4069  gcc/testsuite/gdc.test/fail_compilation/fail105.d
! d847ec9b26b5bec6dbd9d1e1d981d2e5  gcc/testsuite/gdc.test/fail_compilation/fail10528.d
! 10517a9dd8f56e7cb38fc212a4dae607  gcc/testsuite/gdc.test/fail_compilation/fail10534.d
  78a14815b99eb16bff945b3d3f5972aa  gcc/testsuite/gdc.test/fail_compilation/fail106.d
  71288e2e511948061477a0747fecb40e  gcc/testsuite/gdc.test/fail_compilation/fail10630.d
  cb53acf48a2b67325d7f8241e9c9ab8b  gcc/testsuite/gdc.test/fail_compilation/fail10666.d
  132cc39e1c28cccfc1029171f7c406d8  gcc/testsuite/gdc.test/fail_compilation/fail10806.d
! c52e5f9b1281cd06b68144e27329f0a5  gcc/testsuite/gdc.test/fail_compilation/fail109.d
  84cb1acfd9c573c41c1b83dac83a9c8f  gcc/testsuite/gdc.test/fail_compilation/fail10947.d
  67f504c001f946a3a9205c3a5d585f49  gcc/testsuite/gdc.test/fail_compilation/fail10964.d
! eaf58f1f45f7100d872e009ffbf28fac  gcc/testsuite/gdc.test/fail_compilation/fail10968.d
  fa66b0e920971c09a8f7f0ae71cc7e78  gcc/testsuite/gdc.test/fail_compilation/fail10980.d
  7461aa4bd527e973ee745038e7e175a7  gcc/testsuite/gdc.test/fail_compilation/fail11.d
! 8318b31be4a1874c7144bf6efd7e4490  gcc/testsuite/gdc.test/fail_compilation/fail110.d
  3e6a7f8205ea96359effae2162844504  gcc/testsuite/gdc.test/fail_compilation/fail11038.d
  10f619ddec93bf8424836e0ce9b45879  gcc/testsuite/gdc.test/fail_compilation/fail11042.d
  43e247410a0595e0e0a8237f56b77bbc  gcc/testsuite/gdc.test/fail_compilation/fail111.d
*************** cacc0256e3d69d9b93d6cd19840fdfbc  gcc/te
*** 81094,81100 ****
  c7d4d841662e23af430664ea89b8a6d4  gcc/testsuite/gdc.test/fail_compilation/fail11163.d
  3233d140865314693e3f867337f604e7  gcc/testsuite/gdc.test/fail_compilation/fail113.d
  cfb5bd1649cb6dd3521e82fc2bcc4d8b  gcc/testsuite/gdc.test/fail_compilation/fail11355.d
! f859bdcc55e1ef70022e37f8196ff956  gcc/testsuite/gdc.test/fail_compilation/fail11375.d
  f3336ce6edbe3fe2abae60968f743564  gcc/testsuite/gdc.test/fail_compilation/fail114.d
  9e4a2ee34878d003dc19b1519c00de09  gcc/testsuite/gdc.test/fail_compilation/fail11426.d
  a338ac1c468d5ff67cb258c1994bac86  gcc/testsuite/gdc.test/fail_compilation/fail11445.d
--- 89941,89947 ----
  c7d4d841662e23af430664ea89b8a6d4  gcc/testsuite/gdc.test/fail_compilation/fail11163.d
  3233d140865314693e3f867337f604e7  gcc/testsuite/gdc.test/fail_compilation/fail113.d
  cfb5bd1649cb6dd3521e82fc2bcc4d8b  gcc/testsuite/gdc.test/fail_compilation/fail11355.d
! 963235178e76f1407e4833b8142082a2  gcc/testsuite/gdc.test/fail_compilation/fail11375.d
  f3336ce6edbe3fe2abae60968f743564  gcc/testsuite/gdc.test/fail_compilation/fail114.d
  9e4a2ee34878d003dc19b1519c00de09  gcc/testsuite/gdc.test/fail_compilation/fail11426.d
  a338ac1c468d5ff67cb258c1994bac86  gcc/testsuite/gdc.test/fail_compilation/fail11445.d
*************** c1386db4542ab9f25b137aea8592fd47  gcc/te
*** 81108,81114 ****
  a995b66302a078b5444ec640a5ad59c7  gcc/testsuite/gdc.test/fail_compilation/fail11510.d
  03acb9aa13a05674a2b716bec4395ad3  gcc/testsuite/gdc.test/fail_compilation/fail11532.d
  d799a1133926a241ccb8b73a42657c26  gcc/testsuite/gdc.test/fail_compilation/fail11542.d
! 7b15af95340c130f3f14cb053e53d084  gcc/testsuite/gdc.test/fail_compilation/fail11545.d
  692e28aa53da608e9850e323b253629f  gcc/testsuite/gdc.test/fail_compilation/fail11552.d
  9236795eb54a91a3a395618357f24dff  gcc/testsuite/gdc.test/fail_compilation/fail11562.d
  252497168a7f32d033de55209895b869  gcc/testsuite/gdc.test/fail_compilation/fail11591b.d
--- 89955,89961 ----
  a995b66302a078b5444ec640a5ad59c7  gcc/testsuite/gdc.test/fail_compilation/fail11510.d
  03acb9aa13a05674a2b716bec4395ad3  gcc/testsuite/gdc.test/fail_compilation/fail11532.d
  d799a1133926a241ccb8b73a42657c26  gcc/testsuite/gdc.test/fail_compilation/fail11542.d
! c940487a344f7c48e40c0e52ecfc7865  gcc/testsuite/gdc.test/fail_compilation/fail11545.d
  692e28aa53da608e9850e323b253629f  gcc/testsuite/gdc.test/fail_compilation/fail11552.d
  9236795eb54a91a3a395618357f24dff  gcc/testsuite/gdc.test/fail_compilation/fail11562.d
  252497168a7f32d033de55209895b869  gcc/testsuite/gdc.test/fail_compilation/fail11591b.d
*************** e40c97caf3db9f4880aff09011b1daf4  gcc/te
*** 81121,81144 ****
  c0c579cb086b8a2a634c0ab754c26a07  gcc/testsuite/gdc.test/fail_compilation/fail11751.d
  25e439b474b4e4e754f9f61209593fb8  gcc/testsuite/gdc.test/fail_compilation/fail118.d
  c7101fcb0aa4d9b28f3f5c0edfb7a900  gcc/testsuite/gdc.test/fail_compilation/fail12.d
! 8d49b3e03628cd7c6cd8a538148ad725  gcc/testsuite/gdc.test/fail_compilation/fail120.d
  7bf72c637818e7f1de6be900e0fe70e8  gcc/testsuite/gdc.test/fail_compilation/fail12047.d
! 1af19ec4022d99eea157fa25b8d69cae  gcc/testsuite/gdc.test/fail_compilation/fail121.d
  7e087119e9127154573ca4d0a46ced6a  gcc/testsuite/gdc.test/fail_compilation/fail122.d
! 2579250e407c32fa652443bf68e8fd70  gcc/testsuite/gdc.test/fail_compilation/fail12236.d
  8dfe0e2c61aa226bf5b0ea82ca94398c  gcc/testsuite/gdc.test/fail_compilation/fail12255.d
  c6a9045d059f3176aa12fb81d590f0d2  gcc/testsuite/gdc.test/fail_compilation/fail123.d
  f8f10e131c15bd3239affaf48aebff8c  gcc/testsuite/gdc.test/fail_compilation/fail12378.d
- 68e29081956558b41e843ec07ce567ca  gcc/testsuite/gdc.test/fail_compilation/fail12390.d
  bfb7ab7957a4356a4b9665e88b61f34f  gcc/testsuite/gdc.test/fail_compilation/fail124.d
! 93e33f45e68e44a918a98a2107552d3e  gcc/testsuite/gdc.test/fail_compilation/fail12436.d
  42eb030c62dea6bce5bfa6734f12a9df  gcc/testsuite/gdc.test/fail_compilation/fail125.d
  36f58d54ca0d499db6d8ccf5dab569e6  gcc/testsuite/gdc.test/fail_compilation/fail126.d
  98c32b08b881fd0be4a23c7030099caf  gcc/testsuite/gdc.test/fail_compilation/fail12604.d
  b08a2513fb698aee7f0d4ba3e6a99ef3  gcc/testsuite/gdc.test/fail_compilation/fail12622.d
  bb43812fff9cbc2f8b34e98a44d644c3  gcc/testsuite/gdc.test/fail_compilation/fail12636.d
  b9c52248a49bfdf7883e6e159b0449a9  gcc/testsuite/gdc.test/fail_compilation/fail127.d
! 076d94f40972de48269b14489c3ac180  gcc/testsuite/gdc.test/fail_compilation/fail12744.d
  131cc788cd47ef93845283bf95ee4f97  gcc/testsuite/gdc.test/fail_compilation/fail12749.d
  b93dc74048b99ba0c82a6709839b2ef1  gcc/testsuite/gdc.test/fail_compilation/fail12764.d
  6ff46a21ae637dd20e81ee2ce124ec81  gcc/testsuite/gdc.test/fail_compilation/fail12809.d
--- 89968,89990 ----
  c0c579cb086b8a2a634c0ab754c26a07  gcc/testsuite/gdc.test/fail_compilation/fail11751.d
  25e439b474b4e4e754f9f61209593fb8  gcc/testsuite/gdc.test/fail_compilation/fail118.d
  c7101fcb0aa4d9b28f3f5c0edfb7a900  gcc/testsuite/gdc.test/fail_compilation/fail12.d
! 462a6158d85515233e180b7369bcd650  gcc/testsuite/gdc.test/fail_compilation/fail120.d
  7bf72c637818e7f1de6be900e0fe70e8  gcc/testsuite/gdc.test/fail_compilation/fail12047.d
! f7da4e61b639a236ace2e05f2d112794  gcc/testsuite/gdc.test/fail_compilation/fail121.d
  7e087119e9127154573ca4d0a46ced6a  gcc/testsuite/gdc.test/fail_compilation/fail122.d
! ec1cbb059998c2bb293ba4cd5a7dcf02  gcc/testsuite/gdc.test/fail_compilation/fail12236.d
  8dfe0e2c61aa226bf5b0ea82ca94398c  gcc/testsuite/gdc.test/fail_compilation/fail12255.d
  c6a9045d059f3176aa12fb81d590f0d2  gcc/testsuite/gdc.test/fail_compilation/fail123.d
  f8f10e131c15bd3239affaf48aebff8c  gcc/testsuite/gdc.test/fail_compilation/fail12378.d
  bfb7ab7957a4356a4b9665e88b61f34f  gcc/testsuite/gdc.test/fail_compilation/fail124.d
! 50a6f11ce9ee104192d307a7ed1a84fb  gcc/testsuite/gdc.test/fail_compilation/fail12436.d
  42eb030c62dea6bce5bfa6734f12a9df  gcc/testsuite/gdc.test/fail_compilation/fail125.d
  36f58d54ca0d499db6d8ccf5dab569e6  gcc/testsuite/gdc.test/fail_compilation/fail126.d
  98c32b08b881fd0be4a23c7030099caf  gcc/testsuite/gdc.test/fail_compilation/fail12604.d
  b08a2513fb698aee7f0d4ba3e6a99ef3  gcc/testsuite/gdc.test/fail_compilation/fail12622.d
  bb43812fff9cbc2f8b34e98a44d644c3  gcc/testsuite/gdc.test/fail_compilation/fail12636.d
  b9c52248a49bfdf7883e6e159b0449a9  gcc/testsuite/gdc.test/fail_compilation/fail127.d
! ec1235e210fe787ad9f07dbed709c281  gcc/testsuite/gdc.test/fail_compilation/fail12744.d
  131cc788cd47ef93845283bf95ee4f97  gcc/testsuite/gdc.test/fail_compilation/fail12749.d
  b93dc74048b99ba0c82a6709839b2ef1  gcc/testsuite/gdc.test/fail_compilation/fail12764.d
  6ff46a21ae637dd20e81ee2ce124ec81  gcc/testsuite/gdc.test/fail_compilation/fail12809.d
*************** daeb45c533d077c1a72f2182996edc39  gcc/te
*** 81148,81162 ****
  a106312f5d33fcc3d40697c5e8621fb9  gcc/testsuite/gdc.test/fail_compilation/fail12932.d
  a1674e1394b35a5df1b3c4aac66f998f  gcc/testsuite/gdc.test/fail_compilation/fail13064.d
  2180f72e2e570d452ff43f600b437482  gcc/testsuite/gdc.test/fail_compilation/fail131.d
! 8642bc95c48767755ad4274b2b4cdb1a  gcc/testsuite/gdc.test/fail_compilation/fail13116.d
! 94a595c0a8513c40bbd51052c275c3dc  gcc/testsuite/gdc.test/fail_compilation/fail13120.d
  7ed4197cc2f78cb780c882a6e8b16131  gcc/testsuite/gdc.test/fail_compilation/fail13123.d
  b03b5e0032abc66adcb709edbb941cc4  gcc/testsuite/gdc.test/fail_compilation/fail13187.d
  b11884cf1566b08a9902a268a0b5cbb5  gcc/testsuite/gdc.test/fail_compilation/fail132.d
  8000033f214284cf259489cb70780afd  gcc/testsuite/gdc.test/fail_compilation/fail13203.d
  bb5c6126c9a6a59d7d101f5d4c86353b  gcc/testsuite/gdc.test/fail_compilation/fail133.d
! f208a8f35369a7465708c01248aa6faf  gcc/testsuite/gdc.test/fail_compilation/fail13336a.d
! a2a42c8a3663fb312456cbda557e9fcd  gcc/testsuite/gdc.test/fail_compilation/fail13336b.d
  6d0ad61dad2187efcb0c1405ec282317  gcc/testsuite/gdc.test/fail_compilation/fail134.d
  81520f830e60b59b078916269563a772  gcc/testsuite/gdc.test/fail_compilation/fail13424.d
  6766e3fc0db269522156cb03e57090a4  gcc/testsuite/gdc.test/fail_compilation/fail13434_m32.d
--- 89994,90008 ----
  a106312f5d33fcc3d40697c5e8621fb9  gcc/testsuite/gdc.test/fail_compilation/fail12932.d
  a1674e1394b35a5df1b3c4aac66f998f  gcc/testsuite/gdc.test/fail_compilation/fail13064.d
  2180f72e2e570d452ff43f600b437482  gcc/testsuite/gdc.test/fail_compilation/fail131.d
! ecd26fd450b66fe4487f711b0a5dd325  gcc/testsuite/gdc.test/fail_compilation/fail13116.d
! 1d28ccede77160e0b38a249a3f83d0fd  gcc/testsuite/gdc.test/fail_compilation/fail13120.d
  7ed4197cc2f78cb780c882a6e8b16131  gcc/testsuite/gdc.test/fail_compilation/fail13123.d
  b03b5e0032abc66adcb709edbb941cc4  gcc/testsuite/gdc.test/fail_compilation/fail13187.d
  b11884cf1566b08a9902a268a0b5cbb5  gcc/testsuite/gdc.test/fail_compilation/fail132.d
  8000033f214284cf259489cb70780afd  gcc/testsuite/gdc.test/fail_compilation/fail13203.d
  bb5c6126c9a6a59d7d101f5d4c86353b  gcc/testsuite/gdc.test/fail_compilation/fail133.d
! 75ca74b83ea50313f3dad1dbb2e37582  gcc/testsuite/gdc.test/fail_compilation/fail13336a.d
! a8d7867a148f15ddcee565f5f6e59fd6  gcc/testsuite/gdc.test/fail_compilation/fail13336b.d
  6d0ad61dad2187efcb0c1405ec282317  gcc/testsuite/gdc.test/fail_compilation/fail134.d
  81520f830e60b59b078916269563a772  gcc/testsuite/gdc.test/fail_compilation/fail13424.d
  6766e3fc0db269522156cb03e57090a4  gcc/testsuite/gdc.test/fail_compilation/fail13434_m32.d
*************** a2a42c8a3663fb312456cbda557e9fcd  gcc/te
*** 81164,81170 ****
  50a341748c4c2d3597f3e50985a71f7e  gcc/testsuite/gdc.test/fail_compilation/fail13435.d
  f7c162250484aa2c830b621f48a4cbf7  gcc/testsuite/gdc.test/fail_compilation/fail13498.d
  2a7a5b24d34d65d9a4c928e6d02d03f1  gcc/testsuite/gdc.test/fail_compilation/fail13574.d
! 76ebf2b6a9997c0abdc516f502299cb6  gcc/testsuite/gdc.test/fail_compilation/fail136.d
  563c333787d513efd8f8c3af9c634b0d  gcc/testsuite/gdc.test/fail_compilation/fail13601.d
  62bc66bcec853e01a1d64e03dbf1f731  gcc/testsuite/gdc.test/fail_compilation/fail13701.d
  ffcc92538fea18e1edc848b035d2da56  gcc/testsuite/gdc.test/fail_compilation/fail13756.d
--- 90010,90017 ----
  50a341748c4c2d3597f3e50985a71f7e  gcc/testsuite/gdc.test/fail_compilation/fail13435.d
  f7c162250484aa2c830b621f48a4cbf7  gcc/testsuite/gdc.test/fail_compilation/fail13498.d
  2a7a5b24d34d65d9a4c928e6d02d03f1  gcc/testsuite/gdc.test/fail_compilation/fail13574.d
! b1d605436560eaf4e5789e019809bd94  gcc/testsuite/gdc.test/fail_compilation/fail13577.d
! d2025e9f82b3b83cd9dcd335567c795c  gcc/testsuite/gdc.test/fail_compilation/fail136.d
  563c333787d513efd8f8c3af9c634b0d  gcc/testsuite/gdc.test/fail_compilation/fail13601.d
  62bc66bcec853e01a1d64e03dbf1f731  gcc/testsuite/gdc.test/fail_compilation/fail13701.d
  ffcc92538fea18e1edc848b035d2da56  gcc/testsuite/gdc.test/fail_compilation/fail13756.d
*************** a580d1b37336e7005f2011c16123a2f8  gcc/te
*** 81173,81190 ****
  06be4f4e09fb76ee2bae43a5a4667446  gcc/testsuite/gdc.test/fail_compilation/fail13902.d
  10554ee69c68fa02536edb00437cd248  gcc/testsuite/gdc.test/fail_compilation/fail14.d
  88b0dedb5114a417e9a013dc320646cb  gcc/testsuite/gdc.test/fail_compilation/fail14089.d
! c452b6c39ca422156c80d164ccd00d3e  gcc/testsuite/gdc.test/fail_compilation/fail142.d
  c753f5a08f745f6326cda953e7a42e47  gcc/testsuite/gdc.test/fail_compilation/fail14249.d
  65477946b0a7989dc9265b12658a59e2  gcc/testsuite/gdc.test/fail_compilation/fail14277.d
! b9b54d3d4e18a399b604955806258516  gcc/testsuite/gdc.test/fail_compilation/fail143.d
  8dc5066aab0e47bc083a69e67f10066e  gcc/testsuite/gdc.test/fail_compilation/fail14304.d
! fe661808ca5ccd87b92c6817b80182d3  gcc/testsuite/gdc.test/fail_compilation/fail144.d
  dc36dc401919af534824ea7139f384f0  gcc/testsuite/gdc.test/fail_compilation/fail14406.d
  60ac8535b218629f6e302cf38a0e4d64  gcc/testsuite/gdc.test/fail_compilation/fail14416.d
  6b7e660a67bdd0b25bbc892cd220f071  gcc/testsuite/gdc.test/fail_compilation/fail14486.d
! d6f267f324a0bb2be0329e69f05316d2  gcc/testsuite/gdc.test/fail_compilation/fail145.d
  21b27f5810d8bbd5e53d1a85f251389f  gcc/testsuite/gdc.test/fail_compilation/fail14554.d
! 985183b55e2f14fc2861ffc407c715b7  gcc/testsuite/gdc.test/fail_compilation/fail14669.d
  2eb0f0a3a630d5305cedcfc6ba947caa  gcc/testsuite/gdc.test/fail_compilation/fail14965.d
  351f0dc3289118d6f73f00d620e4cf37  gcc/testsuite/gdc.test/fail_compilation/fail14997.d
  a70e7b47122c2a876b23154fde937dc2  gcc/testsuite/gdc.test/fail_compilation/fail15.d
--- 90020,90037 ----
  06be4f4e09fb76ee2bae43a5a4667446  gcc/testsuite/gdc.test/fail_compilation/fail13902.d
  10554ee69c68fa02536edb00437cd248  gcc/testsuite/gdc.test/fail_compilation/fail14.d
  88b0dedb5114a417e9a013dc320646cb  gcc/testsuite/gdc.test/fail_compilation/fail14089.d
! 0db74b32e37acbcdccf5221c620f4664  gcc/testsuite/gdc.test/fail_compilation/fail142.d
  c753f5a08f745f6326cda953e7a42e47  gcc/testsuite/gdc.test/fail_compilation/fail14249.d
  65477946b0a7989dc9265b12658a59e2  gcc/testsuite/gdc.test/fail_compilation/fail14277.d
! 5fc5d16e966045b7104cc3f92bf3b8e0  gcc/testsuite/gdc.test/fail_compilation/fail143.d
  8dc5066aab0e47bc083a69e67f10066e  gcc/testsuite/gdc.test/fail_compilation/fail14304.d
! 9adcaeda3d5a4db829fdac897bafdd9a  gcc/testsuite/gdc.test/fail_compilation/fail144.d
  dc36dc401919af534824ea7139f384f0  gcc/testsuite/gdc.test/fail_compilation/fail14406.d
  60ac8535b218629f6e302cf38a0e4d64  gcc/testsuite/gdc.test/fail_compilation/fail14416.d
  6b7e660a67bdd0b25bbc892cd220f071  gcc/testsuite/gdc.test/fail_compilation/fail14486.d
! 2f944bf10c0fc89a6c662d0c4ed7b936  gcc/testsuite/gdc.test/fail_compilation/fail145.d
  21b27f5810d8bbd5e53d1a85f251389f  gcc/testsuite/gdc.test/fail_compilation/fail14554.d
! d0e80830c8e8ebd1163d9d4dc3bb2560  gcc/testsuite/gdc.test/fail_compilation/fail14669.d
  2eb0f0a3a630d5305cedcfc6ba947caa  gcc/testsuite/gdc.test/fail_compilation/fail14965.d
  351f0dc3289118d6f73f00d620e4cf37  gcc/testsuite/gdc.test/fail_compilation/fail14997.d
  a70e7b47122c2a876b23154fde937dc2  gcc/testsuite/gdc.test/fail_compilation/fail15.d
*************** e3e5a1338c4fb6fa1b922916d383f3ea  gcc/te
*** 81195,81201 ****
  855ab11f0bd62621b99dfea1cb130c26  gcc/testsuite/gdc.test/fail_compilation/fail153.d
  8ffd2e63fb125b33d3573d667ed80e1f  gcc/testsuite/gdc.test/fail_compilation/fail15361.d
  9d037c59d1e7a468338f3f3f381d91c4  gcc/testsuite/gdc.test/fail_compilation/fail154.d
! a73b77746c950296c0b93d498dcd63c5  gcc/testsuite/gdc.test/fail_compilation/fail15414.d
  05f7a47faed85447c3c860dd46f9ce69  gcc/testsuite/gdc.test/fail_compilation/fail155.d
  b8e5e7c3a81b656da38456cb46d2e9b4  gcc/testsuite/gdc.test/fail_compilation/fail15535.d
  8d6777061a04969663e28b186960951b  gcc/testsuite/gdc.test/fail_compilation/fail15550.d
--- 90042,90048 ----
  855ab11f0bd62621b99dfea1cb130c26  gcc/testsuite/gdc.test/fail_compilation/fail153.d
  8ffd2e63fb125b33d3573d667ed80e1f  gcc/testsuite/gdc.test/fail_compilation/fail15361.d
  9d037c59d1e7a468338f3f3f381d91c4  gcc/testsuite/gdc.test/fail_compilation/fail154.d
! fa3efd5f1dac35e6525caf67700e7ec2  gcc/testsuite/gdc.test/fail_compilation/fail15414.d
  05f7a47faed85447c3c860dd46f9ce69  gcc/testsuite/gdc.test/fail_compilation/fail155.d
  b8e5e7c3a81b656da38456cb46d2e9b4  gcc/testsuite/gdc.test/fail_compilation/fail15535.d
  8d6777061a04969663e28b186960951b  gcc/testsuite/gdc.test/fail_compilation/fail15550.d
*************** eb25ca31055afa86912f9701e7994607  gcc/te
*** 81207,81228 ****
  3be4ce307a92d11b64cfa9d4f03f4445  gcc/testsuite/gdc.test/fail_compilation/fail15626.d
  d068b087cdb3131ab554be42180adbce  gcc/testsuite/gdc.test/fail_compilation/fail15667.d
  c684ab29bcabeefed5b53fffe9d3f70e  gcc/testsuite/gdc.test/fail_compilation/fail15691.d
! 8be5f3fd1abbb065f32f3eca5b858dee  gcc/testsuite/gdc.test/fail_compilation/fail15755.d
  2b6be87bab9c944e4449b89cccc18e26  gcc/testsuite/gdc.test/fail_compilation/fail158.d
! 7dffcb12548594529e08c394a72f593e  gcc/testsuite/gdc.test/fail_compilation/fail15896.d
  0e7efcd6e123a7faef05ce3ae6f59ce9  gcc/testsuite/gdc.test/fail_compilation/fail159.d
  d612a27ea5535404d84d598bae901e32  gcc/testsuite/gdc.test/fail_compilation/fail16.d
  b1a3c7961f99b91306dbd64d284c746a  gcc/testsuite/gdc.test/fail_compilation/fail160.d
  45aa62a7c4b2fe3afda147252be922f8  gcc/testsuite/gdc.test/fail_compilation/fail16001.d
  1c72cecc096b7d2d4e31dd6f47fb8895  gcc/testsuite/gdc.test/fail_compilation/fail161.d
! cf3a56d2bcb984e62fa150555c016513  gcc/testsuite/gdc.test/fail_compilation/fail162.d
  99c094fe5a883a7d9a9adcbd82f194c1  gcc/testsuite/gdc.test/fail_compilation/fail16206a.d
  7e34a6b4dd39ae5c562fa3e43ae5b267  gcc/testsuite/gdc.test/fail_compilation/fail16206b.d
  65570fad8408c994cb62f7bb4e38bc7f  gcc/testsuite/gdc.test/fail_compilation/fail163.d
  e45c2789377eab835bc467180048df0f  gcc/testsuite/gdc.test/fail_compilation/fail16575.d
! 816639db88c51c1b5a596d40ade2c3ce  gcc/testsuite/gdc.test/fail_compilation/fail16600.d
  8b4b096412e0264029af463d8d17a67b  gcc/testsuite/gdc.test/fail_compilation/fail16689.d
! 44eba52d5df5e4a393aed81e20319a7e  gcc/testsuite/gdc.test/fail_compilation/fail16772.d
  623bcd19ed4331349d750dd7e0ccec0f  gcc/testsuite/gdc.test/fail_compilation/fail169.d
  aa393179c2ca7bc3a60b6d8c4f96cbc7  gcc/testsuite/gdc.test/fail_compilation/fail16997.d
  34a18b39e76e5dc61eed79b9f5f81866  gcc/testsuite/gdc.test/fail_compilation/fail17.d
--- 90054,90075 ----
  3be4ce307a92d11b64cfa9d4f03f4445  gcc/testsuite/gdc.test/fail_compilation/fail15626.d
  d068b087cdb3131ab554be42180adbce  gcc/testsuite/gdc.test/fail_compilation/fail15667.d
  c684ab29bcabeefed5b53fffe9d3f70e  gcc/testsuite/gdc.test/fail_compilation/fail15691.d
! 48e7d0a9d1d8d44c502b140ea1790f10  gcc/testsuite/gdc.test/fail_compilation/fail15755.d
  2b6be87bab9c944e4449b89cccc18e26  gcc/testsuite/gdc.test/fail_compilation/fail158.d
! 4456fcb05c32e734192f28b051d44ade  gcc/testsuite/gdc.test/fail_compilation/fail15896.d
  0e7efcd6e123a7faef05ce3ae6f59ce9  gcc/testsuite/gdc.test/fail_compilation/fail159.d
  d612a27ea5535404d84d598bae901e32  gcc/testsuite/gdc.test/fail_compilation/fail16.d
  b1a3c7961f99b91306dbd64d284c746a  gcc/testsuite/gdc.test/fail_compilation/fail160.d
  45aa62a7c4b2fe3afda147252be922f8  gcc/testsuite/gdc.test/fail_compilation/fail16001.d
  1c72cecc096b7d2d4e31dd6f47fb8895  gcc/testsuite/gdc.test/fail_compilation/fail161.d
! 2694b11905d32c2ad0acc36f3e854623  gcc/testsuite/gdc.test/fail_compilation/fail162.d
  99c094fe5a883a7d9a9adcbd82f194c1  gcc/testsuite/gdc.test/fail_compilation/fail16206a.d
  7e34a6b4dd39ae5c562fa3e43ae5b267  gcc/testsuite/gdc.test/fail_compilation/fail16206b.d
  65570fad8408c994cb62f7bb4e38bc7f  gcc/testsuite/gdc.test/fail_compilation/fail163.d
  e45c2789377eab835bc467180048df0f  gcc/testsuite/gdc.test/fail_compilation/fail16575.d
! 7d11963aefcf779a2a7ba7c7c74d7852  gcc/testsuite/gdc.test/fail_compilation/fail16600.d
  8b4b096412e0264029af463d8d17a67b  gcc/testsuite/gdc.test/fail_compilation/fail16689.d
! f17a44ee2616b77e9e20cae89930d8fd  gcc/testsuite/gdc.test/fail_compilation/fail16772.d
  623bcd19ed4331349d750dd7e0ccec0f  gcc/testsuite/gdc.test/fail_compilation/fail169.d
  aa393179c2ca7bc3a60b6d8c4f96cbc7  gcc/testsuite/gdc.test/fail_compilation/fail16997.d
  34a18b39e76e5dc61eed79b9f5f81866  gcc/testsuite/gdc.test/fail_compilation/fail17.d
*************** b0e6a5048904624e7e6b67312725b274  gcc/te
*** 81232,81242 ****
  adfd0b4226bffd793f04ad6845f6f4a3  gcc/testsuite/gdc.test/fail_compilation/fail17354.d
  03ccca8143902029943d28e1485d2172  gcc/testsuite/gdc.test/fail_compilation/fail17419.d
  9fd8b3c48f9082bd2d3ae03821de9394  gcc/testsuite/gdc.test/fail_compilation/fail17421.d
! 465392dc3f7c8be68ed4b9ae0673c2ec  gcc/testsuite/gdc.test/fail_compilation/fail17491.d
  be4d28819745b832fc91295c6c8505c7  gcc/testsuite/gdc.test/fail_compilation/fail17492.d
  47604c011e3dab7c5e67cbbfcc24607b  gcc/testsuite/gdc.test/fail_compilation/fail17502.d
! cd45f7a0bafa949ecce8b80876a72151  gcc/testsuite/gdc.test/fail_compilation/fail17518.d
! 60241a7e4962f3e9669273068046d564  gcc/testsuite/gdc.test/fail_compilation/fail17570.d
  ff11fd7d8d4fa1c4c8fbcd4a30a83de0  gcc/testsuite/gdc.test/fail_compilation/fail176.d
  ef2759042bec4471458a397b3895857f  gcc/testsuite/gdc.test/fail_compilation/fail17602.d
  5293b18b7813b4fc05083160ebf03448  gcc/testsuite/gdc.test/fail_compilation/fail17612.d
--- 90079,90089 ----
  adfd0b4226bffd793f04ad6845f6f4a3  gcc/testsuite/gdc.test/fail_compilation/fail17354.d
  03ccca8143902029943d28e1485d2172  gcc/testsuite/gdc.test/fail_compilation/fail17419.d
  9fd8b3c48f9082bd2d3ae03821de9394  gcc/testsuite/gdc.test/fail_compilation/fail17421.d
! b1889ab243926d661f5779e1e0400f34  gcc/testsuite/gdc.test/fail_compilation/fail17491.d
  be4d28819745b832fc91295c6c8505c7  gcc/testsuite/gdc.test/fail_compilation/fail17492.d
  47604c011e3dab7c5e67cbbfcc24607b  gcc/testsuite/gdc.test/fail_compilation/fail17502.d
! 3df5283fb8e84e59d150ef78a66a1027  gcc/testsuite/gdc.test/fail_compilation/fail17518.d
! 93d1b0a7cd602a66db7a6b08b8d7d066  gcc/testsuite/gdc.test/fail_compilation/fail17570.d
  ff11fd7d8d4fa1c4c8fbcd4a30a83de0  gcc/testsuite/gdc.test/fail_compilation/fail176.d
  ef2759042bec4471458a397b3895857f  gcc/testsuite/gdc.test/fail_compilation/fail17602.d
  5293b18b7813b4fc05083160ebf03448  gcc/testsuite/gdc.test/fail_compilation/fail17612.d
*************** ab8c22cf2be47d14e82979e49ec3083e  gcc/te
*** 81251,81258 ****
  6f7188c359b760528830357bc2727f64  gcc/testsuite/gdc.test/fail_compilation/fail179.d
  c72f18ab36254636b191d78e0549b0a3  gcc/testsuite/gdc.test/fail_compilation/fail17906.d
  0494fe970355cc4c502b74174e2e9d9a  gcc/testsuite/gdc.test/fail_compilation/fail17927.d
! 907610b21e5fae4ed9491ae41b20a788  gcc/testsuite/gdc.test/fail_compilation/fail17955.d
! b99b1841325cc0c06e5d27ca0e8c99a4  gcc/testsuite/gdc.test/fail_compilation/fail17969.d
  b3fde2514586c4a3e2046b5c0a6ed176  gcc/testsuite/gdc.test/fail_compilation/fail17976.d
  f8d46bb7603384631c0a6f26126398b0  gcc/testsuite/gdc.test/fail_compilation/fail18.d
  0454c9a1ef7ddc14630b0cf99dda8803  gcc/testsuite/gdc.test/fail_compilation/fail180.d
--- 90098,90105 ----
  6f7188c359b760528830357bc2727f64  gcc/testsuite/gdc.test/fail_compilation/fail179.d
  c72f18ab36254636b191d78e0549b0a3  gcc/testsuite/gdc.test/fail_compilation/fail17906.d
  0494fe970355cc4c502b74174e2e9d9a  gcc/testsuite/gdc.test/fail_compilation/fail17927.d
! 775cc1b2227dffb477cf862606075981  gcc/testsuite/gdc.test/fail_compilation/fail17955.d
! ba07e0e28c4fcc780df9ca751fd6ba17  gcc/testsuite/gdc.test/fail_compilation/fail17969.d
  b3fde2514586c4a3e2046b5c0a6ed176  gcc/testsuite/gdc.test/fail_compilation/fail17976.d
  f8d46bb7603384631c0a6f26126398b0  gcc/testsuite/gdc.test/fail_compilation/fail18.d
  0454c9a1ef7ddc14630b0cf99dda8803  gcc/testsuite/gdc.test/fail_compilation/fail180.d
*************** f8d46bb7603384631c0a6f26126398b0  gcc/te
*** 81260,81266 ****
  e3408518b8b4c811d02328352ef87de6  gcc/testsuite/gdc.test/fail_compilation/fail18057b.d
  1bdea03690c85119a465149cfbe90431  gcc/testsuite/gdc.test/fail_compilation/fail18093.d
  f29a2cafb832f5d530d6602319bfce06  gcc/testsuite/gdc.test/fail_compilation/fail18143.d
! 0c902b93c7433a24ef0a1f1b2c046c5c  gcc/testsuite/gdc.test/fail_compilation/fail18219.d
  b85a8861594c77116c2c1d80342d314b  gcc/testsuite/gdc.test/fail_compilation/fail18228.d
  b33052116ca6853320ab7e38f77facc9  gcc/testsuite/gdc.test/fail_compilation/fail18236.d
  740e94e87c4d92de38eefa38ae3b334a  gcc/testsuite/gdc.test/fail_compilation/fail18243.d
--- 90107,90113 ----
  e3408518b8b4c811d02328352ef87de6  gcc/testsuite/gdc.test/fail_compilation/fail18057b.d
  1bdea03690c85119a465149cfbe90431  gcc/testsuite/gdc.test/fail_compilation/fail18093.d
  f29a2cafb832f5d530d6602319bfce06  gcc/testsuite/gdc.test/fail_compilation/fail18143.d
! a31bbdcf7ab236e30a584d27c2714862  gcc/testsuite/gdc.test/fail_compilation/fail18219.d
  b85a8861594c77116c2c1d80342d314b  gcc/testsuite/gdc.test/fail_compilation/fail18228.d
  b33052116ca6853320ab7e38f77facc9  gcc/testsuite/gdc.test/fail_compilation/fail18236.d
  740e94e87c4d92de38eefa38ae3b334a  gcc/testsuite/gdc.test/fail_compilation/fail18243.d
*************** f1ffdb661067e628c5a18fa4aa3d425f  gcc/te
*** 81272,81296 ****
  3842518a33f76de89f147a54b5759486  gcc/testsuite/gdc.test/fail_compilation/fail187.d
  76fd6b7643f779174c686a27d0de7ed2  gcc/testsuite/gdc.test/fail_compilation/fail18719.d
  05c618d08631552b989a390b13365945  gcc/testsuite/gdc.test/fail_compilation/fail188.d
! 97f1d73a379e0ef97109a8dfecce0fd9  gcc/testsuite/gdc.test/fail_compilation/fail18892.d
  39344b97e72e7a51418d2304bfe71bac  gcc/testsuite/gdc.test/fail_compilation/fail189.d
  1855d7a7607707b089d145fc3dbf9c4a  gcc/testsuite/gdc.test/fail_compilation/fail18938.d
! 409a2e8b85e1b3db20f6ae92dc839a08  gcc/testsuite/gdc.test/fail_compilation/fail18970.d
! 7b4b24ab82d93b0046c38feca996485e  gcc/testsuite/gdc.test/fail_compilation/fail18979.d
  f205ca554aa3912ed64d43f95458cc81  gcc/testsuite/gdc.test/fail_compilation/fail18985.d
  c3e9bf6ab82266989bda68580c167325  gcc/testsuite/gdc.test/fail_compilation/fail18994.d
  b29394abf29591d84b9d8789bb4565cb  gcc/testsuite/gdc.test/fail_compilation/fail190.d
! cc191c6524b8af6850f19da385da4faf  gcc/testsuite/gdc.test/fail_compilation/fail1900.d
  121d905fcabf558bac6f01c9c857d68d  gcc/testsuite/gdc.test/fail_compilation/fail19038.d
! 2ee890f54a8cb317357045b95c420a17  gcc/testsuite/gdc.test/fail_compilation/fail19076.d
  8265e9a9f4a973f41fa5ceaf867da9f3  gcc/testsuite/gdc.test/fail_compilation/fail19098.d
  38e2cba6bcb50a692990ffe7b96fb049  gcc/testsuite/gdc.test/fail_compilation/fail19099.d
! 02f8c86e3bb10ab0ada5fc46552df7e7  gcc/testsuite/gdc.test/fail_compilation/fail19103.d
  90c7cdd15ee714303e1566bc4af7044c  gcc/testsuite/gdc.test/fail_compilation/fail19181.d
  2658559b7e065a4d9a88423a76b0a1f8  gcc/testsuite/gdc.test/fail_compilation/fail19182.d
  8c7b72f8d54d7f8f256985e65bb7a17b  gcc/testsuite/gdc.test/fail_compilation/fail192.d
  cb45a8d0aca2fe6efbfa04a0cb5363f7  gcc/testsuite/gdc.test/fail_compilation/fail19202.d
! e1731a230aaee95c968d09e488c4f32b  gcc/testsuite/gdc.test/fail_compilation/fail19209.d
  1a63c8e4c4907e65fbcabdddb90c28a6  gcc/testsuite/gdc.test/fail_compilation/fail193.d
  49b0951b6bd9018b435dc2653ada2216  gcc/testsuite/gdc.test/fail_compilation/fail19319a.d
  2517548e96ec73168aa58048b6ff5c08  gcc/testsuite/gdc.test/fail_compilation/fail19319b.d
--- 90119,90143 ----
  3842518a33f76de89f147a54b5759486  gcc/testsuite/gdc.test/fail_compilation/fail187.d
  76fd6b7643f779174c686a27d0de7ed2  gcc/testsuite/gdc.test/fail_compilation/fail18719.d
  05c618d08631552b989a390b13365945  gcc/testsuite/gdc.test/fail_compilation/fail188.d
! 430bd89e10860972d40cfae760c96ea2  gcc/testsuite/gdc.test/fail_compilation/fail18892.d
  39344b97e72e7a51418d2304bfe71bac  gcc/testsuite/gdc.test/fail_compilation/fail189.d
  1855d7a7607707b089d145fc3dbf9c4a  gcc/testsuite/gdc.test/fail_compilation/fail18938.d
! 70b8c47b00ec080b3fc507a40bd75414  gcc/testsuite/gdc.test/fail_compilation/fail18970.d
! d084978e9efdbd8321073ef356c8b20a  gcc/testsuite/gdc.test/fail_compilation/fail18979.d
  f205ca554aa3912ed64d43f95458cc81  gcc/testsuite/gdc.test/fail_compilation/fail18985.d
  c3e9bf6ab82266989bda68580c167325  gcc/testsuite/gdc.test/fail_compilation/fail18994.d
  b29394abf29591d84b9d8789bb4565cb  gcc/testsuite/gdc.test/fail_compilation/fail190.d
! c6069fa300de28f36ced064a9fb2c11c  gcc/testsuite/gdc.test/fail_compilation/fail1900.d
  121d905fcabf558bac6f01c9c857d68d  gcc/testsuite/gdc.test/fail_compilation/fail19038.d
! 2fdc35b53dda4e331869a58020543b2d  gcc/testsuite/gdc.test/fail_compilation/fail19076.d
  8265e9a9f4a973f41fa5ceaf867da9f3  gcc/testsuite/gdc.test/fail_compilation/fail19098.d
  38e2cba6bcb50a692990ffe7b96fb049  gcc/testsuite/gdc.test/fail_compilation/fail19099.d
! 4b7c2eb3deabee996dfef13d144e38b1  gcc/testsuite/gdc.test/fail_compilation/fail19103.d
  90c7cdd15ee714303e1566bc4af7044c  gcc/testsuite/gdc.test/fail_compilation/fail19181.d
  2658559b7e065a4d9a88423a76b0a1f8  gcc/testsuite/gdc.test/fail_compilation/fail19182.d
  8c7b72f8d54d7f8f256985e65bb7a17b  gcc/testsuite/gdc.test/fail_compilation/fail192.d
  cb45a8d0aca2fe6efbfa04a0cb5363f7  gcc/testsuite/gdc.test/fail_compilation/fail19202.d
! a96c3ad1d04fa66b706308dc41b66044  gcc/testsuite/gdc.test/fail_compilation/fail19209.d
  1a63c8e4c4907e65fbcabdddb90c28a6  gcc/testsuite/gdc.test/fail_compilation/fail193.d
  49b0951b6bd9018b435dc2653ada2216  gcc/testsuite/gdc.test/fail_compilation/fail19319a.d
  2517548e96ec73168aa58048b6ff5c08  gcc/testsuite/gdc.test/fail_compilation/fail19319b.d
*************** e1731a230aaee95c968d09e488c4f32b  gcc/te
*** 81300,81306 ****
  255cbdd802a2bc528e235738c17ed595  gcc/testsuite/gdc.test/fail_compilation/fail19447.d
  7594dbc07383fa13599d213acea6e03a  gcc/testsuite/gdc.test/fail_compilation/fail195.d
  676dfacf37090247608e1eabe58d4327  gcc/testsuite/gdc.test/fail_compilation/fail19520.d
! 3e6e69eb968edf7bb5a0d6e610e5bbde  gcc/testsuite/gdc.test/fail_compilation/fail196.d
  a09e1208955504bd9a765b08ef650b11  gcc/testsuite/gdc.test/fail_compilation/fail19609.d
  3f5bd68363cca36c32206c67b500f342  gcc/testsuite/gdc.test/fail_compilation/fail19687.d
  4748cb1d7ac90ff780c0f16b4a407af1  gcc/testsuite/gdc.test/fail_compilation/fail19729.d
--- 90147,90153 ----
  255cbdd802a2bc528e235738c17ed595  gcc/testsuite/gdc.test/fail_compilation/fail19447.d
  7594dbc07383fa13599d213acea6e03a  gcc/testsuite/gdc.test/fail_compilation/fail195.d
  676dfacf37090247608e1eabe58d4327  gcc/testsuite/gdc.test/fail_compilation/fail19520.d
! 584438be3278ad1da4a689a8a9ff564b  gcc/testsuite/gdc.test/fail_compilation/fail196.d
  a09e1208955504bd9a765b08ef650b11  gcc/testsuite/gdc.test/fail_compilation/fail19609.d
  3f5bd68363cca36c32206c67b500f342  gcc/testsuite/gdc.test/fail_compilation/fail19687.d
  4748cb1d7ac90ff780c0f16b4a407af1  gcc/testsuite/gdc.test/fail_compilation/fail19729.d
*************** f48f0703c5e7d1124e8dafcfac05bf26  gcc/te
*** 81311,81318 ****
  b4fc56015b91bcdd15ed815be30ee12c  gcc/testsuite/gdc.test/fail_compilation/fail198.d
  1331488e808fb89535bd56551e1b503c  gcc/testsuite/gdc.test/fail_compilation/fail19871.d
  d7aaba99f3b1217cae97ee836f479155  gcc/testsuite/gdc.test/fail_compilation/fail19881.d
! b3070a0c09fb126898447ec5bb74392b  gcc/testsuite/gdc.test/fail_compilation/fail19890a.d
! 0dd563f23672b90a723ba3a9db77eaf0  gcc/testsuite/gdc.test/fail_compilation/fail19890b.d
  803923bf31c7fc9bfe54c9f63a09fd67  gcc/testsuite/gdc.test/fail_compilation/fail19897.d
  780f3b6248e47c31d92b599b12301358  gcc/testsuite/gdc.test/fail_compilation/fail19898a.d
  261252defe5c1323d54bb76d7faa286d  gcc/testsuite/gdc.test/fail_compilation/fail19898b.d
--- 90158,90165 ----
  b4fc56015b91bcdd15ed815be30ee12c  gcc/testsuite/gdc.test/fail_compilation/fail198.d
  1331488e808fb89535bd56551e1b503c  gcc/testsuite/gdc.test/fail_compilation/fail19871.d
  d7aaba99f3b1217cae97ee836f479155  gcc/testsuite/gdc.test/fail_compilation/fail19881.d
! 3c864b303a63dd308081c858565ab08f  gcc/testsuite/gdc.test/fail_compilation/fail19890a.d
! 3d9b105be0050f3b35a63c9fb3b4d4ff  gcc/testsuite/gdc.test/fail_compilation/fail19890b.d
  803923bf31c7fc9bfe54c9f63a09fd67  gcc/testsuite/gdc.test/fail_compilation/fail19897.d
  780f3b6248e47c31d92b599b12301358  gcc/testsuite/gdc.test/fail_compilation/fail19898a.d
  261252defe5c1323d54bb76d7faa286d  gcc/testsuite/gdc.test/fail_compilation/fail19898b.d
*************** aa9c562b805cdde30e5a0afd83499523  gcc/te
*** 81334,81340 ****
  becdd446e8d1be604695109a29f49407  gcc/testsuite/gdc.test/fail_compilation/fail19923.d
  97451b74145eff6747dd33669889ff8b  gcc/testsuite/gdc.test/fail_compilation/fail19931.d
  3efe7c451c4866665928b1d60a91285d  gcc/testsuite/gdc.test/fail_compilation/fail19941.d
! 30933995409d0fdd22eb3a3218db0def  gcc/testsuite/gdc.test/fail_compilation/fail19948.d
  6be9d44d2f5896a92b58a34acd7af126  gcc/testsuite/gdc.test/fail_compilation/fail1995.d
  851eb457213dfe384a320df00425f33c  gcc/testsuite/gdc.test/fail_compilation/fail19955.d
  b7eb9679682db5f67b048d93497fa4b1  gcc/testsuite/gdc.test/fail_compilation/fail19965.d
--- 90181,90187 ----
  becdd446e8d1be604695109a29f49407  gcc/testsuite/gdc.test/fail_compilation/fail19923.d
  97451b74145eff6747dd33669889ff8b  gcc/testsuite/gdc.test/fail_compilation/fail19931.d
  3efe7c451c4866665928b1d60a91285d  gcc/testsuite/gdc.test/fail_compilation/fail19941.d
! 82bec6982224715463a3ad87a3548d5e  gcc/testsuite/gdc.test/fail_compilation/fail19948.d
  6be9d44d2f5896a92b58a34acd7af126  gcc/testsuite/gdc.test/fail_compilation/fail1995.d
  851eb457213dfe384a320df00425f33c  gcc/testsuite/gdc.test/fail_compilation/fail19955.d
  b7eb9679682db5f67b048d93497fa4b1  gcc/testsuite/gdc.test/fail_compilation/fail19965.d
*************** f228d34ca53f073a5e0c086254b1bd68  gcc/te
*** 81349,81355 ****
  79a43fc730ebadec062a0f18a6776a07  gcc/testsuite/gdc.test/fail_compilation/fail20108.d
  04bd61e549b8047b02bf8f713226b5ce  gcc/testsuite/gdc.test/fail_compilation/fail20163.d
  491d5c7988c3b5e24cd424510b5ca61b  gcc/testsuite/gdc.test/fail_compilation/fail20164.d
! 13b0863241487805492f27976c43584e  gcc/testsuite/gdc.test/fail_compilation/fail20183.d
  c5e98fdfa8a88945c29e0e5d6f31af2f  gcc/testsuite/gdc.test/fail_compilation/fail202.d
  d60ada634a46d2b65a2dacb147c221df  gcc/testsuite/gdc.test/fail_compilation/fail203.d
  fc7b8d7ee7a9ef28f4089d85def249f9  gcc/testsuite/gdc.test/fail_compilation/fail20376.d
--- 90196,90202 ----
  79a43fc730ebadec062a0f18a6776a07  gcc/testsuite/gdc.test/fail_compilation/fail20108.d
  04bd61e549b8047b02bf8f713226b5ce  gcc/testsuite/gdc.test/fail_compilation/fail20163.d
  491d5c7988c3b5e24cd424510b5ca61b  gcc/testsuite/gdc.test/fail_compilation/fail20164.d
! 39bf675ca7358969f1193c646f6bd132  gcc/testsuite/gdc.test/fail_compilation/fail20183.d
  c5e98fdfa8a88945c29e0e5d6f31af2f  gcc/testsuite/gdc.test/fail_compilation/fail202.d
  d60ada634a46d2b65a2dacb147c221df  gcc/testsuite/gdc.test/fail_compilation/fail203.d
  fc7b8d7ee7a9ef28f4089d85def249f9  gcc/testsuite/gdc.test/fail_compilation/fail20376.d
*************** fc7b8d7ee7a9ef28f4089d85def249f9  gcc/te
*** 81357,81391 ****
  030997d8da65b77e58c45f817936e5ef  gcc/testsuite/gdc.test/fail_compilation/fail20448.d
  d6a41113ab2e7b3eff417c5021e83c2b  gcc/testsuite/gdc.test/fail_compilation/fail20461.d
  b94aaa7ed8ca494a3810cf65f8b1018e  gcc/testsuite/gdc.test/fail_compilation/fail205.d
! 26395e360ca164a475e789a3b0cc920f  gcc/testsuite/gdc.test/fail_compilation/fail20538.d
  edea67fe10d58bfa25d0000dfad5ade1  gcc/testsuite/gdc.test/fail_compilation/fail20551.d
  9735bea81fe7d24038b3778d5eea4c99  gcc/testsuite/gdc.test/fail_compilation/fail206.d
! 5497ff6488537ddce762defd5395054f  gcc/testsuite/gdc.test/fail_compilation/fail20609.d
  20926315a08d0112cb394e537432519b  gcc/testsuite/gdc.test/fail_compilation/fail20616.d
! a198818657a3dee89836f60de09f2cfe  gcc/testsuite/gdc.test/fail_compilation/fail20637.d
  b145b7208e64060148d44c7e840bbef3  gcc/testsuite/gdc.test/fail_compilation/fail20638.d
  bfba6f06e64694108fdda60cbbb3a965  gcc/testsuite/gdc.test/fail_compilation/fail20658.d
  26957e83232a8cc037985d5d1ec2e7be  gcc/testsuite/gdc.test/fail_compilation/fail20691.d
  e11dbf32a7deac2ceef48948ddce0cbe  gcc/testsuite/gdc.test/fail_compilation/fail207.d
  d8cbbb687b97f541fa3366579b9eb603  gcc/testsuite/gdc.test/fail_compilation/fail20714.d
  f4b7a202b00d93825722c995891faef8  gcc/testsuite/gdc.test/fail_compilation/fail20730a.d
! ec67eaf49d22e04c4a712f964f086f6d  gcc/testsuite/gdc.test/fail_compilation/fail20730b.d
  e305b25b7c6407e8d98bc95e1cb38684  gcc/testsuite/gdc.test/fail_compilation/fail20771.d
  b3f6ded43de55958b285287639b44db2  gcc/testsuite/gdc.test/fail_compilation/fail20772.d
  9c97feacbde5a60eb7e32173e35e7bd8  gcc/testsuite/gdc.test/fail_compilation/fail20775.d
  2df401d99a377d325d0b1760271c0430  gcc/testsuite/gdc.test/fail_compilation/fail20779.d
  e25875742d38b2256849c5f96a657b4e  gcc/testsuite/gdc.test/fail_compilation/fail208.d
! a37565aeddb2a3a2039d2086fa11e8f7  gcc/testsuite/gdc.test/fail_compilation/fail20800.d
  1d857f10e8666b47c8a9ce6c4fd44aaa  gcc/testsuite/gdc.test/fail_compilation/fail209.d
  e86a43746a06c328b7e7e0ba7df00372  gcc/testsuite/gdc.test/fail_compilation/fail20965.d
  a73d3317381cd1a7dad4b419b99a70c1  gcc/testsuite/gdc.test/fail_compilation/fail21001.d
  15efbee5d7d12e140b24d2a045c8770e  gcc/testsuite/gdc.test/fail_compilation/fail21091a.d
  94ce42e8c54b06d1ce0618c9091c5b20  gcc/testsuite/gdc.test/fail_compilation/fail21091b.d
  3bd1b362fe8b8a478ba7c64e32e891da  gcc/testsuite/gdc.test/fail_compilation/fail21092.d
! 53a6efb64314ca922163fd4aacf0597e  gcc/testsuite/gdc.test/fail_compilation/fail212.d
! ff7d0d6d18158ece6dacbd261f021eb6  gcc/testsuite/gdc.test/fail_compilation/fail21206.d
! 3846fcb1f6804aa0e4e3aca57f48afec  gcc/testsuite/gdc.test/fail_compilation/fail21243.d
! 7cd295d2f41e7a53beba06911a674d6f  gcc/testsuite/gdc.test/fail_compilation/fail21275.d
  2d9df3ff3291444912ae26c1928ab756  gcc/testsuite/gdc.test/fail_compilation/fail213.d
  11c327ae74ea5071c0ad376800875d7b  gcc/testsuite/gdc.test/fail_compilation/fail21314.d
  13ad9b137c1b6f7e351e545d9935bdd4  gcc/testsuite/gdc.test/fail_compilation/fail215.d
--- 90204,90238 ----
  030997d8da65b77e58c45f817936e5ef  gcc/testsuite/gdc.test/fail_compilation/fail20448.d
  d6a41113ab2e7b3eff417c5021e83c2b  gcc/testsuite/gdc.test/fail_compilation/fail20461.d
  b94aaa7ed8ca494a3810cf65f8b1018e  gcc/testsuite/gdc.test/fail_compilation/fail205.d
! 255f626f10854a2535bec00054ce64a8  gcc/testsuite/gdc.test/fail_compilation/fail20538.d
  edea67fe10d58bfa25d0000dfad5ade1  gcc/testsuite/gdc.test/fail_compilation/fail20551.d
  9735bea81fe7d24038b3778d5eea4c99  gcc/testsuite/gdc.test/fail_compilation/fail206.d
! a697bc2fcb47f60ca27489a3e03f29bf  gcc/testsuite/gdc.test/fail_compilation/fail20609.d
  20926315a08d0112cb394e537432519b  gcc/testsuite/gdc.test/fail_compilation/fail20616.d
! 308658c6548e45f055152d825afd11d4  gcc/testsuite/gdc.test/fail_compilation/fail20637.d
  b145b7208e64060148d44c7e840bbef3  gcc/testsuite/gdc.test/fail_compilation/fail20638.d
  bfba6f06e64694108fdda60cbbb3a965  gcc/testsuite/gdc.test/fail_compilation/fail20658.d
  26957e83232a8cc037985d5d1ec2e7be  gcc/testsuite/gdc.test/fail_compilation/fail20691.d
  e11dbf32a7deac2ceef48948ddce0cbe  gcc/testsuite/gdc.test/fail_compilation/fail207.d
  d8cbbb687b97f541fa3366579b9eb603  gcc/testsuite/gdc.test/fail_compilation/fail20714.d
  f4b7a202b00d93825722c995891faef8  gcc/testsuite/gdc.test/fail_compilation/fail20730a.d
! 269122fb73f8980ad06fa6dda70d68bf  gcc/testsuite/gdc.test/fail_compilation/fail20730b.d
  e305b25b7c6407e8d98bc95e1cb38684  gcc/testsuite/gdc.test/fail_compilation/fail20771.d
  b3f6ded43de55958b285287639b44db2  gcc/testsuite/gdc.test/fail_compilation/fail20772.d
  9c97feacbde5a60eb7e32173e35e7bd8  gcc/testsuite/gdc.test/fail_compilation/fail20775.d
  2df401d99a377d325d0b1760271c0430  gcc/testsuite/gdc.test/fail_compilation/fail20779.d
  e25875742d38b2256849c5f96a657b4e  gcc/testsuite/gdc.test/fail_compilation/fail208.d
! 1914c2dc5143c9ef94e5b825286dc3f7  gcc/testsuite/gdc.test/fail_compilation/fail20800.d
  1d857f10e8666b47c8a9ce6c4fd44aaa  gcc/testsuite/gdc.test/fail_compilation/fail209.d
  e86a43746a06c328b7e7e0ba7df00372  gcc/testsuite/gdc.test/fail_compilation/fail20965.d
  a73d3317381cd1a7dad4b419b99a70c1  gcc/testsuite/gdc.test/fail_compilation/fail21001.d
  15efbee5d7d12e140b24d2a045c8770e  gcc/testsuite/gdc.test/fail_compilation/fail21091a.d
  94ce42e8c54b06d1ce0618c9091c5b20  gcc/testsuite/gdc.test/fail_compilation/fail21091b.d
  3bd1b362fe8b8a478ba7c64e32e891da  gcc/testsuite/gdc.test/fail_compilation/fail21092.d
! 86605b638db20f4ab75d9eb661ed1bef  gcc/testsuite/gdc.test/fail_compilation/fail212.d
! 392171473a721889badf102ac0b8b020  gcc/testsuite/gdc.test/fail_compilation/fail21206.d
! b0b9a19ac01ca365168a5af1f8cd3c34  gcc/testsuite/gdc.test/fail_compilation/fail21243.d
! a09e8da91153ed93d9aaeab41ad454e5  gcc/testsuite/gdc.test/fail_compilation/fail21275.d
  2d9df3ff3291444912ae26c1928ab756  gcc/testsuite/gdc.test/fail_compilation/fail213.d
  11c327ae74ea5071c0ad376800875d7b  gcc/testsuite/gdc.test/fail_compilation/fail21314.d
  13ad9b137c1b6f7e351e545d9935bdd4  gcc/testsuite/gdc.test/fail_compilation/fail215.d
*************** ff7d0d6d18158ece6dacbd261f021eb6  gcc/te
*** 81393,81399 ****
  fa51ba78aed7e51b5bea920cbb76cf2c  gcc/testsuite/gdc.test/fail_compilation/fail21508_2.d
  b609044adbbd843d6cf44718cec2033d  gcc/testsuite/gdc.test/fail_compilation/fail21547.d
  a83d55be79bbfec18976ece3917ef4c3  gcc/testsuite/gdc.test/fail_compilation/fail216.d
! 3663a9e84116ccecff19dff8a343af8c  gcc/testsuite/gdc.test/fail_compilation/fail217.d
  850fcf15e46bcdbe4eb0284e6f555af5  gcc/testsuite/gdc.test/fail_compilation/fail218.d
  7025d32dc6c65dc11dae3b5ef7be57d5  gcc/testsuite/gdc.test/fail_compilation/fail21830.d
  f53cd799f73a88b39e37762ab5f0d895  gcc/testsuite/gdc.test/fail_compilation/fail21831.d
--- 90240,90246 ----
  fa51ba78aed7e51b5bea920cbb76cf2c  gcc/testsuite/gdc.test/fail_compilation/fail21508_2.d
  b609044adbbd843d6cf44718cec2033d  gcc/testsuite/gdc.test/fail_compilation/fail21547.d
  a83d55be79bbfec18976ece3917ef4c3  gcc/testsuite/gdc.test/fail_compilation/fail216.d
! 44dfb54c7dfa91e3e045066a94d75e10  gcc/testsuite/gdc.test/fail_compilation/fail217.d
  850fcf15e46bcdbe4eb0284e6f555af5  gcc/testsuite/gdc.test/fail_compilation/fail218.d
  7025d32dc6c65dc11dae3b5ef7be57d5  gcc/testsuite/gdc.test/fail_compilation/fail21830.d
  f53cd799f73a88b39e37762ab5f0d895  gcc/testsuite/gdc.test/fail_compilation/fail21831.d
*************** cde47018767be52b59c3714b8b3b7c23  gcc/te
*** 81403,81415 ****
  d3e754f69fda705025724136d5ffd640  gcc/testsuite/gdc.test/fail_compilation/fail21885.d
  3cc974f3f05c55db8eea1f915e9881e5  gcc/testsuite/gdc.test/fail_compilation/fail21928.d
  01cfc5ae8f798a3a9b4cc8df405dd2cd  gcc/testsuite/gdc.test/fail_compilation/fail21928b.d
! 8f52d3b54abe14ad758f78cd88a93931  gcc/testsuite/gdc.test/fail_compilation/fail2195.d
  25aa1006320654cdd4ef271b53a76a69  gcc/testsuite/gdc.test/fail_compilation/fail22.d
  6274ef7e8105ea803309557412cf83af  gcc/testsuite/gdc.test/fail_compilation/fail220.d
  24f4c3c3fa945ca54c802bc7b4fc9976  gcc/testsuite/gdc.test/fail_compilation/fail22006.d
  a4ee47c4449f07f5d351b6c05aeb5fc1  gcc/testsuite/gdc.test/fail_compilation/fail22035.d
  933d0bade21ca7413250a580843fd5b2  gcc/testsuite/gdc.test/fail_compilation/fail22039.d
! a7a360e9ac568b736b869e81fbb1eda7  gcc/testsuite/gdc.test/fail_compilation/fail22054.d
  32e9a53915db9581977b4869f165b323  gcc/testsuite/gdc.test/fail_compilation/fail22075.d
  bdb29ac495380b23d0398faa494dcb3b  gcc/testsuite/gdc.test/fail_compilation/fail22084.d
  36b4706d6d321e5e4dad94aafbae1237  gcc/testsuite/gdc.test/fail_compilation/fail221.d
--- 90250,90262 ----
  d3e754f69fda705025724136d5ffd640  gcc/testsuite/gdc.test/fail_compilation/fail21885.d
  3cc974f3f05c55db8eea1f915e9881e5  gcc/testsuite/gdc.test/fail_compilation/fail21928.d
  01cfc5ae8f798a3a9b4cc8df405dd2cd  gcc/testsuite/gdc.test/fail_compilation/fail21928b.d
! 3b75d60d3bc093501e830b9e6f9f56b0  gcc/testsuite/gdc.test/fail_compilation/fail2195.d
  25aa1006320654cdd4ef271b53a76a69  gcc/testsuite/gdc.test/fail_compilation/fail22.d
  6274ef7e8105ea803309557412cf83af  gcc/testsuite/gdc.test/fail_compilation/fail220.d
  24f4c3c3fa945ca54c802bc7b4fc9976  gcc/testsuite/gdc.test/fail_compilation/fail22006.d
  a4ee47c4449f07f5d351b6c05aeb5fc1  gcc/testsuite/gdc.test/fail_compilation/fail22035.d
  933d0bade21ca7413250a580843fd5b2  gcc/testsuite/gdc.test/fail_compilation/fail22039.d
! fddf17df9e2c66cc18dba533f3451fc1  gcc/testsuite/gdc.test/fail_compilation/fail22054.d
  32e9a53915db9581977b4869f165b323  gcc/testsuite/gdc.test/fail_compilation/fail22075.d
  bdb29ac495380b23d0398faa494dcb3b  gcc/testsuite/gdc.test/fail_compilation/fail22084.d
  36b4706d6d321e5e4dad94aafbae1237  gcc/testsuite/gdc.test/fail_compilation/fail221.d
*************** b70b339a1dbd5b5807d24c2f37fb9ac3  gcc/te
*** 81423,81439 ****
  9b88e4363da5c8d1e01b4b215b2046e0  gcc/testsuite/gdc.test/fail_compilation/fail22144.d
  8e495eb6f782921db4fc6fc559c36d67  gcc/testsuite/gdc.test/fail_compilation/fail22151.d
  4a6f2d70ec3a911633808b3b75c9b41e  gcc/testsuite/gdc.test/fail_compilation/fail22157.d
! 1dfa55bc17ffdec8baf3883cb1a4752e  gcc/testsuite/gdc.test/fail_compilation/fail222.d
! 93bd8250bf0139126e20c0b0e7e5ac81  gcc/testsuite/gdc.test/fail_compilation/fail22202.d
  928492c14b5c84fee4c14ddcc7dd2654  gcc/testsuite/gdc.test/fail_compilation/fail223.d
  17a695cee90e738df660838758034a05  gcc/testsuite/gdc.test/fail_compilation/fail22351.d
  5f5a322da95758dcc7838f717387eb01  gcc/testsuite/gdc.test/fail_compilation/fail22366.d
  3f3c3c715b9b751e293418c6f11a698d  gcc/testsuite/gdc.test/fail_compilation/fail224.d
! 8f21001702995c4e796c601f972acd8d  gcc/testsuite/gdc.test/fail_compilation/fail22529.d
  656e03bd856eb6e5af678c49d60888ad  gcc/testsuite/gdc.test/fail_compilation/fail22570.d
  31fb74dd9708f5d3461a97b5c69b8b7b  gcc/testsuite/gdc.test/fail_compilation/fail22634.d
  524d3aa06d43f7dc07b54abd5885156c  gcc/testsuite/gdc.test/fail_compilation/fail22749.d
! 509e6c0eaf43ea955a41140f2c8d1eee  gcc/testsuite/gdc.test/fail_compilation/fail22780.d
  c24efc95b4a07d93082131c006e2dd80  gcc/testsuite/gdc.test/fail_compilation/fail228.d
  a3b880eeeee3718d39ad9eea41a126bd  gcc/testsuite/gdc.test/fail_compilation/fail22825a.d
  78579f7cd4dda0a3ca8137aa1b3fe7a5  gcc/testsuite/gdc.test/fail_compilation/fail22825b.d
--- 90270,90287 ----
  9b88e4363da5c8d1e01b4b215b2046e0  gcc/testsuite/gdc.test/fail_compilation/fail22144.d
  8e495eb6f782921db4fc6fc559c36d67  gcc/testsuite/gdc.test/fail_compilation/fail22151.d
  4a6f2d70ec3a911633808b3b75c9b41e  gcc/testsuite/gdc.test/fail_compilation/fail22157.d
! a7b0c110feebc80ad33b22cf2532304c  gcc/testsuite/gdc.test/fail_compilation/fail222.d
! 00bcf188d7c5b68cf64d99bdb6009bd7  gcc/testsuite/gdc.test/fail_compilation/fail22202.d
  928492c14b5c84fee4c14ddcc7dd2654  gcc/testsuite/gdc.test/fail_compilation/fail223.d
  17a695cee90e738df660838758034a05  gcc/testsuite/gdc.test/fail_compilation/fail22351.d
  5f5a322da95758dcc7838f717387eb01  gcc/testsuite/gdc.test/fail_compilation/fail22366.d
  3f3c3c715b9b751e293418c6f11a698d  gcc/testsuite/gdc.test/fail_compilation/fail224.d
! c70d7463bfe55bd7cd11bbab0f8523bd  gcc/testsuite/gdc.test/fail_compilation/fail22529.d
  656e03bd856eb6e5af678c49d60888ad  gcc/testsuite/gdc.test/fail_compilation/fail22570.d
  31fb74dd9708f5d3461a97b5c69b8b7b  gcc/testsuite/gdc.test/fail_compilation/fail22634.d
+ dfc179a746f3347228c84002d6454d7f  gcc/testsuite/gdc.test/fail_compilation/fail22729.d
  524d3aa06d43f7dc07b54abd5885156c  gcc/testsuite/gdc.test/fail_compilation/fail22749.d
! 1ea5d3c5ce687f6d852e58c95382d8e4  gcc/testsuite/gdc.test/fail_compilation/fail22780.d
  c24efc95b4a07d93082131c006e2dd80  gcc/testsuite/gdc.test/fail_compilation/fail228.d
  a3b880eeeee3718d39ad9eea41a126bd  gcc/testsuite/gdc.test/fail_compilation/fail22825a.d
  78579f7cd4dda0a3ca8137aa1b3fe7a5  gcc/testsuite/gdc.test/fail_compilation/fail22825b.d
*************** b870fb01a2c3232f3cff62cc0b90ac88  gcc/te
*** 81446,81485 ****
  048e20a40216cbded5b201acc227180b  gcc/testsuite/gdc.test/fail_compilation/fail231.d
  3ee0844b26847d9399784b8860d279d8  gcc/testsuite/gdc.test/fail_compilation/fail23108a.d
  c17288c946e2e756c11f41221c460dfb  gcc/testsuite/gdc.test/fail_compilation/fail23108b.d
! 22626a4f7b86563bcd1d05b076b31a1e  gcc/testsuite/gdc.test/fail_compilation/fail23109.d
  4bfaf1caa47ec51e3f310cd848ed8737  gcc/testsuite/gdc.test/fail_compilation/fail23135.d
  ed8c100dddbce2063a566b89b2a95a90  gcc/testsuite/gdc.test/fail_compilation/fail23151.d
  e670a6f21877da59644ba71444695a18  gcc/testsuite/gdc.test/fail_compilation/fail23181.d
  2549171f6c1309bbbd88a2c8d62fdd92  gcc/testsuite/gdc.test/fail_compilation/fail232.d
  75e8bd002cad820145fda155dc230d5e  gcc/testsuite/gdc.test/fail_compilation/fail23406.d
  25ca171756a24d6a546fee80980ae236  gcc/testsuite/gdc.test/fail_compilation/fail23439.d
! c4bd4d001cbafb82e00b9421cd9995f2  gcc/testsuite/gdc.test/fail_compilation/fail235.d
  bce999b9720203f9099ef1b72855dfcc  gcc/testsuite/gdc.test/fail_compilation/fail23574.d
  32e3bda98a0a6039d7cd102fc87c52fa  gcc/testsuite/gdc.test/fail_compilation/fail23591.d
! a84e81839fc598f6bee18e8ba2811238  gcc/testsuite/gdc.test/fail_compilation/fail236.d
  f1eeba6eda398cae717fff38b79838b8  gcc/testsuite/gdc.test/fail_compilation/fail2361.d
! c284e350d911c60d79f2a05b7a8f313a  gcc/testsuite/gdc.test/fail_compilation/fail23626a.d
  c6fa7fa5de41cb8c47b38b08a5b1140b  gcc/testsuite/gdc.test/fail_compilation/fail23626b.d
  4a24025117f87834cb3038ffa2a63642  gcc/testsuite/gdc.test/fail_compilation/fail237.d
! 670123e21d4fc050f0062448b5263f12  gcc/testsuite/gdc.test/fail_compilation/fail23745.d
  2a244612779b0550d045b21c333c9491  gcc/testsuite/gdc.test/fail_compilation/fail23760.d
  4a8fd0d0aa5a78d5e2cc385d4dde86d1  gcc/testsuite/gdc.test/fail_compilation/fail23816.d
  ae65504ee5368439f87cba230c2fbb6c  gcc/testsuite/gdc.test/fail_compilation/fail238_m32.d
  faf12ba22575387527878d9b8beb717a  gcc/testsuite/gdc.test/fail_compilation/fail238_m64.d
  115789041b2ab94dc286976883caa1a5  gcc/testsuite/gdc.test/fail_compilation/fail239.d
  005abf61f1ff8fb547e29dbf781b21b2  gcc/testsuite/gdc.test/fail_compilation/fail24.d
  9d576be84ed81b8a31b6a539bfd3cf7e  gcc/testsuite/gdc.test/fail_compilation/fail240.d
  9415ecf21a39f177b782dad2e58b04bf  gcc/testsuite/gdc.test/fail_compilation/fail241.d
  3380997ecc3199cdf4486442df9089b0  gcc/testsuite/gdc.test/fail_compilation/fail243.d
  bc473ab268cb5e0707cc9686d0c00c23  gcc/testsuite/gdc.test/fail_compilation/fail244.d
  4545d906740581bb348ff03962ffdc9c  gcc/testsuite/gdc.test/fail_compilation/fail245.d
  f7cc635e5a343f0dbb5095847595c2be  gcc/testsuite/gdc.test/fail_compilation/fail2450.d
! d68332598e67d02d9c296a3e8ca7236b  gcc/testsuite/gdc.test/fail_compilation/fail2456.d
  ce3d4db7da44d83520245251d1c52b86  gcc/testsuite/gdc.test/fail_compilation/fail246.d
  958904cb5cb1e8986e403a18801ebdc8  gcc/testsuite/gdc.test/fail_compilation/fail247.d
  32fcbff00baf822bf2ce671f0392cd07  gcc/testsuite/gdc.test/fail_compilation/fail248.d
  1432abd10178e496542c8711a387ca7e  gcc/testsuite/gdc.test/fail_compilation/fail249.d
! 7fed86f09c9b2c2aa586da418c06bfd0  gcc/testsuite/gdc.test/fail_compilation/fail25.d
  2bf4699d3c946b16a0dc3115c28b16ec  gcc/testsuite/gdc.test/fail_compilation/fail250.d
  7f7109317bf0325c418014276e13cfe2  gcc/testsuite/gdc.test/fail_compilation/fail251.d
  c908fc323909d68ae82ac5769ced2b4e  gcc/testsuite/gdc.test/fail_compilation/fail252.d
--- 90294,90342 ----
  048e20a40216cbded5b201acc227180b  gcc/testsuite/gdc.test/fail_compilation/fail231.d
  3ee0844b26847d9399784b8860d279d8  gcc/testsuite/gdc.test/fail_compilation/fail23108a.d
  c17288c946e2e756c11f41221c460dfb  gcc/testsuite/gdc.test/fail_compilation/fail23108b.d
! 5e7634d81ed21556ff8ebd21d353f96d  gcc/testsuite/gdc.test/fail_compilation/fail23109.d
  4bfaf1caa47ec51e3f310cd848ed8737  gcc/testsuite/gdc.test/fail_compilation/fail23135.d
  ed8c100dddbce2063a566b89b2a95a90  gcc/testsuite/gdc.test/fail_compilation/fail23151.d
  e670a6f21877da59644ba71444695a18  gcc/testsuite/gdc.test/fail_compilation/fail23181.d
  2549171f6c1309bbbd88a2c8d62fdd92  gcc/testsuite/gdc.test/fail_compilation/fail232.d
  75e8bd002cad820145fda155dc230d5e  gcc/testsuite/gdc.test/fail_compilation/fail23406.d
  25ca171756a24d6a546fee80980ae236  gcc/testsuite/gdc.test/fail_compilation/fail23439.d
! 7ee3ebb5d13dbddf32d93e977302a4b1  gcc/testsuite/gdc.test/fail_compilation/fail235.d
  bce999b9720203f9099ef1b72855dfcc  gcc/testsuite/gdc.test/fail_compilation/fail23574.d
  32e3bda98a0a6039d7cd102fc87c52fa  gcc/testsuite/gdc.test/fail_compilation/fail23591.d
! 2a02191ef30d6def891809e1b63a7e39  gcc/testsuite/gdc.test/fail_compilation/fail236.d
  f1eeba6eda398cae717fff38b79838b8  gcc/testsuite/gdc.test/fail_compilation/fail2361.d
! 045d30ea698dea0792154471c38b67ea  gcc/testsuite/gdc.test/fail_compilation/fail23626a.d
  c6fa7fa5de41cb8c47b38b08a5b1140b  gcc/testsuite/gdc.test/fail_compilation/fail23626b.d
  4a24025117f87834cb3038ffa2a63642  gcc/testsuite/gdc.test/fail_compilation/fail237.d
! bddcd4dcfd80181fc5ee0c70064b2f44  gcc/testsuite/gdc.test/fail_compilation/fail23745.d
  2a244612779b0550d045b21c333c9491  gcc/testsuite/gdc.test/fail_compilation/fail23760.d
+ 2338811f64a5d62e8626f9140f17f512  gcc/testsuite/gdc.test/fail_compilation/fail23773.d
  4a8fd0d0aa5a78d5e2cc385d4dde86d1  gcc/testsuite/gdc.test/fail_compilation/fail23816.d
+ 63c4cb1482071a3225629a97d589ced9  gcc/testsuite/gdc.test/fail_compilation/fail23822.d
+ 2bbbc973211c19852af426b9791805d3  gcc/testsuite/gdc.test/fail_compilation/fail23826.d
+ 91dc5d6862a8e8b61474ae34d4f35df4  gcc/testsuite/gdc.test/fail_compilation/fail23861.d
  ae65504ee5368439f87cba230c2fbb6c  gcc/testsuite/gdc.test/fail_compilation/fail238_m32.d
  faf12ba22575387527878d9b8beb717a  gcc/testsuite/gdc.test/fail_compilation/fail238_m64.d
  115789041b2ab94dc286976883caa1a5  gcc/testsuite/gdc.test/fail_compilation/fail239.d
  005abf61f1ff8fb547e29dbf781b21b2  gcc/testsuite/gdc.test/fail_compilation/fail24.d
  9d576be84ed81b8a31b6a539bfd3cf7e  gcc/testsuite/gdc.test/fail_compilation/fail240.d
  9415ecf21a39f177b782dad2e58b04bf  gcc/testsuite/gdc.test/fail_compilation/fail241.d
+ f125d88d58a42ee809b3da224d025e4e  gcc/testsuite/gdc.test/fail_compilation/fail24208.d
+ 5ce8393c26b46150b04000700d36725a  gcc/testsuite/gdc.test/fail_compilation/fail24212.d
+ 4b75cf85ba2c20e5887e89bdd702e846  gcc/testsuite/gdc.test/fail_compilation/fail24213.d
+ 7cef6791f8b6fb10fd4acaf05288fcec  gcc/testsuite/gdc.test/fail_compilation/fail24224.d
  3380997ecc3199cdf4486442df9089b0  gcc/testsuite/gdc.test/fail_compilation/fail243.d
+ d70d131a4da1f17234e2be04471f3b3f  gcc/testsuite/gdc.test/fail_compilation/fail24301.d
  bc473ab268cb5e0707cc9686d0c00c23  gcc/testsuite/gdc.test/fail_compilation/fail244.d
  4545d906740581bb348ff03962ffdc9c  gcc/testsuite/gdc.test/fail_compilation/fail245.d
  f7cc635e5a343f0dbb5095847595c2be  gcc/testsuite/gdc.test/fail_compilation/fail2450.d
! 69ffc2366f4a0508e28232db9d0db704  gcc/testsuite/gdc.test/fail_compilation/fail2456.d
  ce3d4db7da44d83520245251d1c52b86  gcc/testsuite/gdc.test/fail_compilation/fail246.d
  958904cb5cb1e8986e403a18801ebdc8  gcc/testsuite/gdc.test/fail_compilation/fail247.d
  32fcbff00baf822bf2ce671f0392cd07  gcc/testsuite/gdc.test/fail_compilation/fail248.d
  1432abd10178e496542c8711a387ca7e  gcc/testsuite/gdc.test/fail_compilation/fail249.d
! a61099d6ea89cf99a5a5bff51a17d7d2  gcc/testsuite/gdc.test/fail_compilation/fail25.d
  2bf4699d3c946b16a0dc3115c28b16ec  gcc/testsuite/gdc.test/fail_compilation/fail250.d
  7f7109317bf0325c418014276e13cfe2  gcc/testsuite/gdc.test/fail_compilation/fail251.d
  c908fc323909d68ae82ac5769ced2b4e  gcc/testsuite/gdc.test/fail_compilation/fail252.d
*************** f53e57a9e89cd741a5c46961166a1f5a  gcc/te
*** 81491,81497 ****
  d138575c329ecfa57cf9cdef90d6a04a  gcc/testsuite/gdc.test/fail_compilation/fail259.d
  8bdf284f0442d1e350010cdeee56fe59  gcc/testsuite/gdc.test/fail_compilation/fail261.d
  ab516084e0ebe83389b0d25ed5ba9c2c  gcc/testsuite/gdc.test/fail_compilation/fail262.d
! 285eb27e068cf4f9a4d13c7dcf47d379  gcc/testsuite/gdc.test/fail_compilation/fail263.d
  e3aaf70f1ee3ab9d4bdf647065681c97  gcc/testsuite/gdc.test/fail_compilation/fail264.d
  39db887c3d88309df3aa3250bad00373  gcc/testsuite/gdc.test/fail_compilation/fail265.d
  66755deef86b85fc3267384c4ddaf5f5  gcc/testsuite/gdc.test/fail_compilation/fail2656.d
--- 90348,90354 ----
  d138575c329ecfa57cf9cdef90d6a04a  gcc/testsuite/gdc.test/fail_compilation/fail259.d
  8bdf284f0442d1e350010cdeee56fe59  gcc/testsuite/gdc.test/fail_compilation/fail261.d
  ab516084e0ebe83389b0d25ed5ba9c2c  gcc/testsuite/gdc.test/fail_compilation/fail262.d
! c51491aa0af86210cebf6d968db16751  gcc/testsuite/gdc.test/fail_compilation/fail263.d
  e3aaf70f1ee3ab9d4bdf647065681c97  gcc/testsuite/gdc.test/fail_compilation/fail264.d
  39db887c3d88309df3aa3250bad00373  gcc/testsuite/gdc.test/fail_compilation/fail265.d
  66755deef86b85fc3267384c4ddaf5f5  gcc/testsuite/gdc.test/fail_compilation/fail2656.d
*************** bb11ca5afe50a6ff0b811ffb67929868  gcc/te
*** 81504,81510 ****
  527f5c312fbd6548ca45d45282759d4d  gcc/testsuite/gdc.test/fail_compilation/fail275.d
  0426d0327787dbe721eca407b882af55  gcc/testsuite/gdc.test/fail_compilation/fail276.d
  c48ddb49b80ea5c2b4718f13412aad33  gcc/testsuite/gdc.test/fail_compilation/fail278.d
! f537f15c4a9881c1b11773a8a57c025b  gcc/testsuite/gdc.test/fail_compilation/fail2789.d
  9a2085e9967a0198be547e1bf8a861c9  gcc/testsuite/gdc.test/fail_compilation/fail279.d
  8c71905ddb013310c3f99f67c1516e49  gcc/testsuite/gdc.test/fail_compilation/fail280.d
  05c686b7d945e42c55c0f68020beafbc  gcc/testsuite/gdc.test/fail_compilation/fail281.d
--- 90361,90367 ----
  527f5c312fbd6548ca45d45282759d4d  gcc/testsuite/gdc.test/fail_compilation/fail275.d
  0426d0327787dbe721eca407b882af55  gcc/testsuite/gdc.test/fail_compilation/fail276.d
  c48ddb49b80ea5c2b4718f13412aad33  gcc/testsuite/gdc.test/fail_compilation/fail278.d
! d2f4d2caf3e3101d48bdc73c7318042a  gcc/testsuite/gdc.test/fail_compilation/fail2789.d
  9a2085e9967a0198be547e1bf8a861c9  gcc/testsuite/gdc.test/fail_compilation/fail279.d
  8c71905ddb013310c3f99f67c1516e49  gcc/testsuite/gdc.test/fail_compilation/fail280.d
  05c686b7d945e42c55c0f68020beafbc  gcc/testsuite/gdc.test/fail_compilation/fail281.d
*************** c0167ff7cfda345c489ee36ed532f9a5  gcc/te
*** 81522,81528 ****
  39598ace8538fb86a4a31cd07f3b73e6  gcc/testsuite/gdc.test/fail_compilation/fail298.d
  b206f94fcd91613bf06fad61e79f3c3d  gcc/testsuite/gdc.test/fail_compilation/fail299.d
  0ed23be0c271e03f9f016cdd30ade45c  gcc/testsuite/gdc.test/fail_compilation/fail3.d
! 92801dfbbc854e405224e747388284e4  gcc/testsuite/gdc.test/fail_compilation/fail301.d
  ccf07a8d9da2e18e2df9789595f228b8  gcc/testsuite/gdc.test/fail_compilation/fail302.d
  83cbeb4a4f4e877683998a5dc8350383  gcc/testsuite/gdc.test/fail_compilation/fail303.d
  55c689bdd0e95596a127ae06b8d223da  gcc/testsuite/gdc.test/fail_compilation/fail304.d
--- 90379,90385 ----
  39598ace8538fb86a4a31cd07f3b73e6  gcc/testsuite/gdc.test/fail_compilation/fail298.d
  b206f94fcd91613bf06fad61e79f3c3d  gcc/testsuite/gdc.test/fail_compilation/fail299.d
  0ed23be0c271e03f9f016cdd30ade45c  gcc/testsuite/gdc.test/fail_compilation/fail3.d
! 84b619eaab20a20b472d9345245c8ba8  gcc/testsuite/gdc.test/fail_compilation/fail301.d
  ccf07a8d9da2e18e2df9789595f228b8  gcc/testsuite/gdc.test/fail_compilation/fail302.d
  83cbeb4a4f4e877683998a5dc8350383  gcc/testsuite/gdc.test/fail_compilation/fail303.d
  55c689bdd0e95596a127ae06b8d223da  gcc/testsuite/gdc.test/fail_compilation/fail304.d
*************** fcac9ad4babc1ce01a89dae4b91d6e7d  gcc/te
*** 81536,81556 ****
  a5658fc11010dc8dcb719ff7cb29fcc0  gcc/testsuite/gdc.test/fail_compilation/fail312.d
  cd2c8e6993f43772807b794218558825  gcc/testsuite/gdc.test/fail_compilation/fail313.d
  cb0237e698db7dc3c18b1e250c33add1  gcc/testsuite/gdc.test/fail_compilation/fail3144.d
! 8b6a664003fd12e831f4b9bbe7a956c7  gcc/testsuite/gdc.test/fail_compilation/fail315.d
  717b50b0fa7011cc5fcc517fd321a8db  gcc/testsuite/gdc.test/fail_compilation/fail3150.d
  c15e5757d1100c2530af5033ae938db6  gcc/testsuite/gdc.test/fail_compilation/fail316.d
  fa456fd33d0fb0d3aaa1cc87dd39be56  gcc/testsuite/gdc.test/fail_compilation/fail317.d
  27d4f79b4e38c969c16da4d302e16b4f  gcc/testsuite/gdc.test/fail_compilation/fail318_b.d
  7c31afe36ce80937dd4227f3230c1703  gcc/testsuite/gdc.test/fail_compilation/fail319.d
  2ded6b24e430b4b3b1ab8d0e84718c53  gcc/testsuite/gdc.test/fail_compilation/fail320.d
! 268122abaab8e4180bc6e53ec75faf41  gcc/testsuite/gdc.test/fail_compilation/fail322.d
  79aa76311e496353aac9cd418beef1b0  gcc/testsuite/gdc.test/fail_compilation/fail325.d
  8a7c5b78049815ea1cfd798976afe397  gcc/testsuite/gdc.test/fail_compilation/fail328.d
  c308f75b6759c912d37cf98cd774e1e2  gcc/testsuite/gdc.test/fail_compilation/fail329.d
  c3ff91e9e22d93e3f725978a285cf148  gcc/testsuite/gdc.test/fail_compilation/fail3290.d
  db25d22f16a253b8379657cc5e4d9fc8  gcc/testsuite/gdc.test/fail_compilation/fail330.d
  0c96a3cd4bda0fa42d0822a73e39e9d1  gcc/testsuite/gdc.test/fail_compilation/fail331.d
! 55a884c2cb0d85e25dfac7b325378fd8  gcc/testsuite/gdc.test/fail_compilation/fail332.d
  78b83d0a6dd2d5ee5974ca3a4f7224d4  gcc/testsuite/gdc.test/fail_compilation/fail333.d
  4404e9f66c6ddceb6eebdb6fedd1978a  gcc/testsuite/gdc.test/fail_compilation/fail334.d
  efff0f2ea1051cc3f03bca692e4cdd58  gcc/testsuite/gdc.test/fail_compilation/fail335.d
--- 90393,90413 ----
  a5658fc11010dc8dcb719ff7cb29fcc0  gcc/testsuite/gdc.test/fail_compilation/fail312.d
  cd2c8e6993f43772807b794218558825  gcc/testsuite/gdc.test/fail_compilation/fail313.d
  cb0237e698db7dc3c18b1e250c33add1  gcc/testsuite/gdc.test/fail_compilation/fail3144.d
! 7d05a1c891c136567433fcd982d170c3  gcc/testsuite/gdc.test/fail_compilation/fail315.d
  717b50b0fa7011cc5fcc517fd321a8db  gcc/testsuite/gdc.test/fail_compilation/fail3150.d
  c15e5757d1100c2530af5033ae938db6  gcc/testsuite/gdc.test/fail_compilation/fail316.d
  fa456fd33d0fb0d3aaa1cc87dd39be56  gcc/testsuite/gdc.test/fail_compilation/fail317.d
  27d4f79b4e38c969c16da4d302e16b4f  gcc/testsuite/gdc.test/fail_compilation/fail318_b.d
  7c31afe36ce80937dd4227f3230c1703  gcc/testsuite/gdc.test/fail_compilation/fail319.d
  2ded6b24e430b4b3b1ab8d0e84718c53  gcc/testsuite/gdc.test/fail_compilation/fail320.d
! d9459367d63a7921c9741d98e22d911b  gcc/testsuite/gdc.test/fail_compilation/fail322.d
  79aa76311e496353aac9cd418beef1b0  gcc/testsuite/gdc.test/fail_compilation/fail325.d
  8a7c5b78049815ea1cfd798976afe397  gcc/testsuite/gdc.test/fail_compilation/fail328.d
  c308f75b6759c912d37cf98cd774e1e2  gcc/testsuite/gdc.test/fail_compilation/fail329.d
  c3ff91e9e22d93e3f725978a285cf148  gcc/testsuite/gdc.test/fail_compilation/fail3290.d
  db25d22f16a253b8379657cc5e4d9fc8  gcc/testsuite/gdc.test/fail_compilation/fail330.d
  0c96a3cd4bda0fa42d0822a73e39e9d1  gcc/testsuite/gdc.test/fail_compilation/fail331.d
! 018fc2de659b94d8e116780058fc0c86  gcc/testsuite/gdc.test/fail_compilation/fail332.d
  78b83d0a6dd2d5ee5974ca3a4f7224d4  gcc/testsuite/gdc.test/fail_compilation/fail333.d
  4404e9f66c6ddceb6eebdb6fedd1978a  gcc/testsuite/gdc.test/fail_compilation/fail334.d
  efff0f2ea1051cc3f03bca692e4cdd58  gcc/testsuite/gdc.test/fail_compilation/fail335.d
*************** b199f60d67e76de7b69aae541852e953  gcc/te
*** 81584,81590 ****
  7a59c8a96800f36befec89a5a96dd3b4  gcc/testsuite/gdc.test/fail_compilation/fail37_m32.d
  7d8ed81898983666aaed80acce32393c  gcc/testsuite/gdc.test/fail_compilation/fail37_m64.d
  79b07ae2d52fa5bdbb5f923388c4f3ec  gcc/testsuite/gdc.test/fail_compilation/fail38.d
! 129835052a7a137ed460464d704cd3d2  gcc/testsuite/gdc.test/fail_compilation/fail3882.d
  2215430973b1bd295b4a070c2e018978  gcc/testsuite/gdc.test/fail_compilation/fail3895.d
  dbab9ede0148d630ce5457fe3852652b  gcc/testsuite/gdc.test/fail_compilation/fail39.d
  a3c52c49abd68bb9774eff98e08689bb  gcc/testsuite/gdc.test/fail_compilation/fail3990.d
--- 90441,90447 ----
  7a59c8a96800f36befec89a5a96dd3b4  gcc/testsuite/gdc.test/fail_compilation/fail37_m32.d
  7d8ed81898983666aaed80acce32393c  gcc/testsuite/gdc.test/fail_compilation/fail37_m64.d
  79b07ae2d52fa5bdbb5f923388c4f3ec  gcc/testsuite/gdc.test/fail_compilation/fail38.d
! 04e5bfa11eb70ec3b6f83c6a11d2433d  gcc/testsuite/gdc.test/fail_compilation/fail3882.d
  2215430973b1bd295b4a070c2e018978  gcc/testsuite/gdc.test/fail_compilation/fail3895.d
  dbab9ede0148d630ce5457fe3852652b  gcc/testsuite/gdc.test/fail_compilation/fail39.d
  a3c52c49abd68bb9774eff98e08689bb  gcc/testsuite/gdc.test/fail_compilation/fail3990.d
*************** defcf63f8997b8f976d6fdd2e58e68e9  gcc/te
*** 81616,81622 ****
  28cd530b45b084ce3af90d9840c7d9c2  gcc/testsuite/gdc.test/fail_compilation/fail4375m.d
  de747fd099a46f18978e2343e72c77ac  gcc/testsuite/gdc.test/fail_compilation/fail4375o.d
  b2f712af514c9d243b3b3395aca19ac6  gcc/testsuite/gdc.test/fail_compilation/fail4375p.d
! 251fe9d09686e03c8a6ea54381b70e60  gcc/testsuite/gdc.test/fail_compilation/fail4375q.d
  e7c20eb9a3f83f9b20154ea2c720d7e1  gcc/testsuite/gdc.test/fail_compilation/fail4375r.d
  59a945b86d2b000d7ee7eabeb48a415d  gcc/testsuite/gdc.test/fail_compilation/fail4375s.d
  82a7d1b9f2c635ca9f2e22846c670925  gcc/testsuite/gdc.test/fail_compilation/fail4375t.d
--- 90473,90479 ----
  28cd530b45b084ce3af90d9840c7d9c2  gcc/testsuite/gdc.test/fail_compilation/fail4375m.d
  de747fd099a46f18978e2343e72c77ac  gcc/testsuite/gdc.test/fail_compilation/fail4375o.d
  b2f712af514c9d243b3b3395aca19ac6  gcc/testsuite/gdc.test/fail_compilation/fail4375p.d
! 3fb118810cd7e91a6285517619dc8a72  gcc/testsuite/gdc.test/fail_compilation/fail4375q.d
  e7c20eb9a3f83f9b20154ea2c720d7e1  gcc/testsuite/gdc.test/fail_compilation/fail4375r.d
  59a945b86d2b000d7ee7eabeb48a415d  gcc/testsuite/gdc.test/fail_compilation/fail4375s.d
  82a7d1b9f2c635ca9f2e22846c670925  gcc/testsuite/gdc.test/fail_compilation/fail4375t.d
*************** df7ebe1c9154e532f0eb25a288826ccb  gcc/te
*** 81632,81644 ****
  372cc7df83288c26deec10920b7ff241  gcc/testsuite/gdc.test/fail_compilation/fail4510.d
  a1c72712e50cfccb9828a18700353ddb  gcc/testsuite/gdc.test/fail_compilation/fail4511.d
  6a513bc554e388d7c06336c242687244  gcc/testsuite/gdc.test/fail_compilation/fail4544.d
! 77aeaa5915f3b3f7e866d92b911046f2  gcc/testsuite/gdc.test/fail_compilation/fail4559.d
! c7c67300b79a9e785e6ce2664f7174dc  gcc/testsuite/gdc.test/fail_compilation/fail46.d
! 82e4414cc0e0cba8789a05f992839390  gcc/testsuite/gdc.test/fail_compilation/fail4611.d
  02f3db206ee272f70f6c94b5621f1724  gcc/testsuite/gdc.test/fail_compilation/fail47.d
! 4314b816d06af2eacfaa6f4b18e060ed  gcc/testsuite/gdc.test/fail_compilation/fail4923.d
  56535cbb92d2cfd2a7cefcad0cb06450  gcc/testsuite/gdc.test/fail_compilation/fail4958.d
! cf42739e9846b83be93d1739561dcacd  gcc/testsuite/gdc.test/fail_compilation/fail50.d
  533a1731cf53e4f1f14412b77b064ebe  gcc/testsuite/gdc.test/fail_compilation/fail51.d
  e886866695de1f510d706d9a43753164  gcc/testsuite/gdc.test/fail_compilation/fail5153.d
  14fd3593221a20b67cff3c4048c0a10a  gcc/testsuite/gdc.test/fail_compilation/fail52.d
--- 90489,90500 ----
  372cc7df83288c26deec10920b7ff241  gcc/testsuite/gdc.test/fail_compilation/fail4510.d
  a1c72712e50cfccb9828a18700353ddb  gcc/testsuite/gdc.test/fail_compilation/fail4511.d
  6a513bc554e388d7c06336c242687244  gcc/testsuite/gdc.test/fail_compilation/fail4544.d
! b8da7345fe67d860f5a861a258ed75be  gcc/testsuite/gdc.test/fail_compilation/fail46.d
! 12ed1d3ea012b75c6d4c8a938d10aa6b  gcc/testsuite/gdc.test/fail_compilation/fail4611.d
  02f3db206ee272f70f6c94b5621f1724  gcc/testsuite/gdc.test/fail_compilation/fail47.d
! 029768f51289e2430d70ddb60913a531  gcc/testsuite/gdc.test/fail_compilation/fail4923.d
  56535cbb92d2cfd2a7cefcad0cb06450  gcc/testsuite/gdc.test/fail_compilation/fail4958.d
! 7cadc743ec6ea6990f3fc43299232b1e  gcc/testsuite/gdc.test/fail_compilation/fail50.d
  533a1731cf53e4f1f14412b77b064ebe  gcc/testsuite/gdc.test/fail_compilation/fail51.d
  e886866695de1f510d706d9a43753164  gcc/testsuite/gdc.test/fail_compilation/fail5153.d
  14fd3593221a20b67cff3c4048c0a10a  gcc/testsuite/gdc.test/fail_compilation/fail52.d
*************** ce0de773e6a50fd2386921c98d18d030  gcc/te
*** 81650,81656 ****
  cd3307a3394091a0065c50345d1d27c8  gcc/testsuite/gdc.test/fail_compilation/fail5634.d
  12f19bd2092f28fd800b72dfcccc6cd1  gcc/testsuite/gdc.test/fail_compilation/fail57.d
  240a3c909830bbc7f5edbb0a6ccb216c  gcc/testsuite/gdc.test/fail_compilation/fail5733.d
! f5f9c152d31bc729e5d003ca9c312a4c  gcc/testsuite/gdc.test/fail_compilation/fail58.d
  45b24679cc558f5c53c822e8b63c94db  gcc/testsuite/gdc.test/fail_compilation/fail59.d
  0fa8371b53286c121ee2f9322b175961  gcc/testsuite/gdc.test/fail_compilation/fail5953a1.d
  496d05e780a77d4ce554c8f3df532f36  gcc/testsuite/gdc.test/fail_compilation/fail5953a2.d
--- 90506,90512 ----
  cd3307a3394091a0065c50345d1d27c8  gcc/testsuite/gdc.test/fail_compilation/fail5634.d
  12f19bd2092f28fd800b72dfcccc6cd1  gcc/testsuite/gdc.test/fail_compilation/fail57.d
  240a3c909830bbc7f5edbb0a6ccb216c  gcc/testsuite/gdc.test/fail_compilation/fail5733.d
! f1ac319343e4b0d8ed18c047531d98e6  gcc/testsuite/gdc.test/fail_compilation/fail58.d
  45b24679cc558f5c53c822e8b63c94db  gcc/testsuite/gdc.test/fail_compilation/fail59.d
  0fa8371b53286c121ee2f9322b175961  gcc/testsuite/gdc.test/fail_compilation/fail5953a1.d
  496d05e780a77d4ce554c8f3df532f36  gcc/testsuite/gdc.test/fail_compilation/fail5953a2.d
*************** f3669e435f1e14c84bb61ff5c428cb46  gcc/te
*** 81658,81664 ****
  dc1ca007f2c683eced50df7662e43e67  gcc/testsuite/gdc.test/fail_compilation/fail5953s2.d
  63963f11ac05d624f54576e265b04620  gcc/testsuite/gdc.test/fail_compilation/fail60.d
  42a1255944d9bddb16e627a61865d1bc  gcc/testsuite/gdc.test/fail_compilation/fail6029.d
! e37bcb66716d2bb34ac748eec5d33ad5  gcc/testsuite/gdc.test/fail_compilation/fail61.d
  41e84d5491b9cd6499320b1f3de36186  gcc/testsuite/gdc.test/fail_compilation/fail6107.d
  0339b3d2f0c30e5e8b0165010f55c9da  gcc/testsuite/gdc.test/fail_compilation/fail62.d
  d49de1c497e66b2393f19e7ab4164fa3  gcc/testsuite/gdc.test/fail_compilation/fail6242.d
--- 90514,90520 ----
  dc1ca007f2c683eced50df7662e43e67  gcc/testsuite/gdc.test/fail_compilation/fail5953s2.d
  63963f11ac05d624f54576e265b04620  gcc/testsuite/gdc.test/fail_compilation/fail60.d
  42a1255944d9bddb16e627a61865d1bc  gcc/testsuite/gdc.test/fail_compilation/fail6029.d
! 7a1842be550d05be12798865e88a4365  gcc/testsuite/gdc.test/fail_compilation/fail61.d
  41e84d5491b9cd6499320b1f3de36186  gcc/testsuite/gdc.test/fail_compilation/fail6107.d
  0339b3d2f0c30e5e8b0165010f55c9da  gcc/testsuite/gdc.test/fail_compilation/fail62.d
  d49de1c497e66b2393f19e7ab4164fa3  gcc/testsuite/gdc.test/fail_compilation/fail6242.d
*************** c04bb3b9d9f2c77e67d846ea284d05c6  gcc/te
*** 81668,81678 ****
  f6ad81f6c854268ec6aa1653a1d0a713  gcc/testsuite/gdc.test/fail_compilation/fail6458.d
  939f57e656ee0ebf701e70ea08291c32  gcc/testsuite/gdc.test/fail_compilation/fail6497.d
  611d6b962d4185ffdab95c02bc8df4e4  gcc/testsuite/gdc.test/fail_compilation/fail6561.d
! db8e1deb916765b7f6a293a025a23427  gcc/testsuite/gdc.test/fail_compilation/fail66.d
  9e7996a6ce93324b738d224ae2c4c197  gcc/testsuite/gdc.test/fail_compilation/fail6611.d
  df0020fd18ec31bed68de41c63d76fe2  gcc/testsuite/gdc.test/fail_compilation/fail6652.d
  ccfea15dc14dfc824be1ec62b8a31852  gcc/testsuite/gdc.test/fail_compilation/fail6781.d
! b7d0aeef2b4def24a504b53b66cf8fb3  gcc/testsuite/gdc.test/fail_compilation/fail6795.d
  91f52bce26014ee21eba507bba017f17  gcc/testsuite/gdc.test/fail_compilation/fail6889.d
  5ec830d5c53fc5f8a83fb99cea8c3c5a  gcc/testsuite/gdc.test/fail_compilation/fail6968.d
  4f5e9643c98ab73f981a090b5ede3c6b  gcc/testsuite/gdc.test/fail_compilation/fail7077.d
--- 90524,90534 ----
  f6ad81f6c854268ec6aa1653a1d0a713  gcc/testsuite/gdc.test/fail_compilation/fail6458.d
  939f57e656ee0ebf701e70ea08291c32  gcc/testsuite/gdc.test/fail_compilation/fail6497.d
  611d6b962d4185ffdab95c02bc8df4e4  gcc/testsuite/gdc.test/fail_compilation/fail6561.d
! e572a3337ac147afe10e7c1be4ef0061  gcc/testsuite/gdc.test/fail_compilation/fail66.d
  9e7996a6ce93324b738d224ae2c4c197  gcc/testsuite/gdc.test/fail_compilation/fail6611.d
  df0020fd18ec31bed68de41c63d76fe2  gcc/testsuite/gdc.test/fail_compilation/fail6652.d
  ccfea15dc14dfc824be1ec62b8a31852  gcc/testsuite/gdc.test/fail_compilation/fail6781.d
! 5a06410067ec27b82d92e85cfbee4732  gcc/testsuite/gdc.test/fail_compilation/fail6795.d
  91f52bce26014ee21eba507bba017f17  gcc/testsuite/gdc.test/fail_compilation/fail6889.d
  5ec830d5c53fc5f8a83fb99cea8c3c5a  gcc/testsuite/gdc.test/fail_compilation/fail6968.d
  4f5e9643c98ab73f981a090b5ede3c6b  gcc/testsuite/gdc.test/fail_compilation/fail7077.d
*************** e410b8e25ef1e7165b073d41d98e072a  gcc/te
*** 81687,81718 ****
  52f5ec52b1e7fed2889865f2f7f2e139  gcc/testsuite/gdc.test/fail_compilation/fail74.d
  a0982e24c691ef64752d4fc792f9a78b  gcc/testsuite/gdc.test/fail_compilation/fail7424b.d
  fe900fa07ca9a4a67e4995ba24a45f39  gcc/testsuite/gdc.test/fail_compilation/fail7424c.d
! eb3b3d957aecdd38f9554a693c145f0f  gcc/testsuite/gdc.test/fail_compilation/fail7424d.d
! d098372e3198374e54d19802e2f08962  gcc/testsuite/gdc.test/fail_compilation/fail7424e.d
! 05e7169a9aebfd0f45e309d44054d236  gcc/testsuite/gdc.test/fail_compilation/fail7424f.d
  ba54fcc4b582fdcb4385921979cf44bf  gcc/testsuite/gdc.test/fail_compilation/fail7424g.d
  debd08196efd6b5f28e627382b340b6e  gcc/testsuite/gdc.test/fail_compilation/fail7424h.d
! 5ac76c884d82512b653c6597a35c3ce0  gcc/testsuite/gdc.test/fail_compilation/fail7424i.d
  5f0e99e2a7ce8c9c17a743398d9efb2f  gcc/testsuite/gdc.test/fail_compilation/fail7443.d
  e54523936108dbc7bed810761286a9a8  gcc/testsuite/gdc.test/fail_compilation/fail75.d
  a8e5dff574f1a2d717bd4f0e25f1dc35  gcc/testsuite/gdc.test/fail_compilation/fail7524a.d
  2a506fe4d8dda5dd7ba04bda02aaab03  gcc/testsuite/gdc.test/fail_compilation/fail7524b.d
  3e05a34bc8da442c20d1ae682baafbbc  gcc/testsuite/gdc.test/fail_compilation/fail76.d
! 055cb020f686d2fa14c6db48814df79b  gcc/testsuite/gdc.test/fail_compilation/fail7603a.d
! a23fcafa535557168685c997e19265cf  gcc/testsuite/gdc.test/fail_compilation/fail7603b.d
! 7426ea1df42c77958814d7f2d917edb5  gcc/testsuite/gdc.test/fail_compilation/fail7603c.d
  0173bdcdaf43fc85db8978398d610fa1  gcc/testsuite/gdc.test/fail_compilation/fail77.d
  92aa8a8003bb898a5b6414473a0b488d  gcc/testsuite/gdc.test/fail_compilation/fail7702.d
  1ab023e309a57b9924db04ee18437f87  gcc/testsuite/gdc.test/fail_compilation/fail7751.d
  bc85c10bfd2a5ec0ee7c065a2d103ecd  gcc/testsuite/gdc.test/fail_compilation/fail78.d
  145b860784fb906109f230d570415c71  gcc/testsuite/gdc.test/fail_compilation/fail7848.d
! a118dd4539f67ddeb759d0e51e6d80e1  gcc/testsuite/gdc.test/fail_compilation/fail7851.d
  401d56f13cc4bd550382136545d4e8a3  gcc/testsuite/gdc.test/fail_compilation/fail7859.d
! 68533c82be3414dafe652e423d7e6e66  gcc/testsuite/gdc.test/fail_compilation/fail7861.d
  b07f34ea7ce4ac46ed0a9a3f9c217823  gcc/testsuite/gdc.test/fail_compilation/fail7862.d
  a8a6cfab5308f0a25fe9bb1a47dcbe7c  gcc/testsuite/gdc.test/fail_compilation/fail79.d
  d22b1fe429694b237a5a2ad81c2d1000  gcc/testsuite/gdc.test/fail_compilation/fail7903.d
! 1accd87ae73f56ec54fc85ddf219623f  gcc/testsuite/gdc.test/fail_compilation/fail8009.d
  fa695cea8079d9e1b1814862fc6d3bf5  gcc/testsuite/gdc.test/fail_compilation/fail8032.d
  f7e1bc01ea39b39faf431443b7b05fdb  gcc/testsuite/gdc.test/fail_compilation/fail80_m32.d
  fed4ca464ca0ae6580a0b5b2a2ce9520  gcc/testsuite/gdc.test/fail_compilation/fail80_m64.d
--- 90543,90574 ----
  52f5ec52b1e7fed2889865f2f7f2e139  gcc/testsuite/gdc.test/fail_compilation/fail74.d
  a0982e24c691ef64752d4fc792f9a78b  gcc/testsuite/gdc.test/fail_compilation/fail7424b.d
  fe900fa07ca9a4a67e4995ba24a45f39  gcc/testsuite/gdc.test/fail_compilation/fail7424c.d
! c11485930c07f9e2d6f046b54bac5975  gcc/testsuite/gdc.test/fail_compilation/fail7424d.d
! b48604f6bdc28e46eb39ff6d7ee6b5a0  gcc/testsuite/gdc.test/fail_compilation/fail7424e.d
! 4de1d66cadd690a867f0d55d404ef6d7  gcc/testsuite/gdc.test/fail_compilation/fail7424f.d
  ba54fcc4b582fdcb4385921979cf44bf  gcc/testsuite/gdc.test/fail_compilation/fail7424g.d
  debd08196efd6b5f28e627382b340b6e  gcc/testsuite/gdc.test/fail_compilation/fail7424h.d
! dd99c412603447226fa36b02b0599dea  gcc/testsuite/gdc.test/fail_compilation/fail7424i.d
  5f0e99e2a7ce8c9c17a743398d9efb2f  gcc/testsuite/gdc.test/fail_compilation/fail7443.d
  e54523936108dbc7bed810761286a9a8  gcc/testsuite/gdc.test/fail_compilation/fail75.d
  a8e5dff574f1a2d717bd4f0e25f1dc35  gcc/testsuite/gdc.test/fail_compilation/fail7524a.d
  2a506fe4d8dda5dd7ba04bda02aaab03  gcc/testsuite/gdc.test/fail_compilation/fail7524b.d
  3e05a34bc8da442c20d1ae682baafbbc  gcc/testsuite/gdc.test/fail_compilation/fail76.d
! d1bc63ee1e498ae501a8c9dea5f6406c  gcc/testsuite/gdc.test/fail_compilation/fail7603a.d
! fe1702f14fb41a774f8c66a441964f36  gcc/testsuite/gdc.test/fail_compilation/fail7603b.d
! 77e405b67a9e29a30a697e3527864948  gcc/testsuite/gdc.test/fail_compilation/fail7603c.d
  0173bdcdaf43fc85db8978398d610fa1  gcc/testsuite/gdc.test/fail_compilation/fail77.d
  92aa8a8003bb898a5b6414473a0b488d  gcc/testsuite/gdc.test/fail_compilation/fail7702.d
  1ab023e309a57b9924db04ee18437f87  gcc/testsuite/gdc.test/fail_compilation/fail7751.d
  bc85c10bfd2a5ec0ee7c065a2d103ecd  gcc/testsuite/gdc.test/fail_compilation/fail78.d
  145b860784fb906109f230d570415c71  gcc/testsuite/gdc.test/fail_compilation/fail7848.d
! 449e0f52c71ce5b906197afda2f60f69  gcc/testsuite/gdc.test/fail_compilation/fail7851.d
  401d56f13cc4bd550382136545d4e8a3  gcc/testsuite/gdc.test/fail_compilation/fail7859.d
! dd3a0287946a586f2a74c99e86dfb5d2  gcc/testsuite/gdc.test/fail_compilation/fail7861.d
  b07f34ea7ce4ac46ed0a9a3f9c217823  gcc/testsuite/gdc.test/fail_compilation/fail7862.d
  a8a6cfab5308f0a25fe9bb1a47dcbe7c  gcc/testsuite/gdc.test/fail_compilation/fail79.d
  d22b1fe429694b237a5a2ad81c2d1000  gcc/testsuite/gdc.test/fail_compilation/fail7903.d
! 0f26fd8210996e5992aec96957797492  gcc/testsuite/gdc.test/fail_compilation/fail8009.d
  fa695cea8079d9e1b1814862fc6d3bf5  gcc/testsuite/gdc.test/fail_compilation/fail8032.d
  f7e1bc01ea39b39faf431443b7b05fdb  gcc/testsuite/gdc.test/fail_compilation/fail80_m32.d
  fed4ca464ca0ae6580a0b5b2a2ce9520  gcc/testsuite/gdc.test/fail_compilation/fail80_m64.d
*************** ccbf7fe819cf48b189d76874040439fa  gcc/te
*** 81725,81731 ****
  6d84ac30cad31ec993f23d912f973326  gcc/testsuite/gdc.test/fail_compilation/fail8631.d
  45ecc1b0f407c1be0cd016bb6d98e64c  gcc/testsuite/gdc.test/fail_compilation/fail8691.d
  8ce73b67eb8c02689f6c74f0c6c4193a  gcc/testsuite/gdc.test/fail_compilation/fail8724.d
! 46287040eed55391cf540979b443b9d0  gcc/testsuite/gdc.test/fail_compilation/fail9.d
  de5e3db7840518024a9cc35ee16543aa  gcc/testsuite/gdc.test/fail_compilation/fail9063.d
  92744484a0908c418aa484eb314f0c79  gcc/testsuite/gdc.test/fail_compilation/fail9081.d
  ac6bf8d1042e8231807ad80f7bcef2bb  gcc/testsuite/gdc.test/fail_compilation/fail91.d
--- 90581,90587 ----
  6d84ac30cad31ec993f23d912f973326  gcc/testsuite/gdc.test/fail_compilation/fail8631.d
  45ecc1b0f407c1be0cd016bb6d98e64c  gcc/testsuite/gdc.test/fail_compilation/fail8691.d
  8ce73b67eb8c02689f6c74f0c6c4193a  gcc/testsuite/gdc.test/fail_compilation/fail8724.d
! 6324239509ea9f6553dfade72674d6d3  gcc/testsuite/gdc.test/fail_compilation/fail9.d
  de5e3db7840518024a9cc35ee16543aa  gcc/testsuite/gdc.test/fail_compilation/fail9063.d
  92744484a0908c418aa484eb314f0c79  gcc/testsuite/gdc.test/fail_compilation/fail9081.d
  ac6bf8d1042e8231807ad80f7bcef2bb  gcc/testsuite/gdc.test/fail_compilation/fail91.d
*************** ffead9e59e51a3ad54f5965eb4b15388  gcc/te
*** 81733,81739 ****
  592a25b2fb45b91631d7e835040cfa29  gcc/testsuite/gdc.test/fail_compilation/fail92.d
  464df40ce91526b0d13136269cd06d56  gcc/testsuite/gdc.test/fail_compilation/fail9279.d
  5c37289133b3a824aa5c0071cb484e21  gcc/testsuite/gdc.test/fail_compilation/fail9290.d
! c4f29956f75a2b6a260f92ffc641b208  gcc/testsuite/gdc.test/fail_compilation/fail93.d
  86e6c37236e5281ae6e85b20c93617ec  gcc/testsuite/gdc.test/fail_compilation/fail9301.d
  6442c2abcb8b4d33688d3a179b86436f  gcc/testsuite/gdc.test/fail_compilation/fail9346.d
  d30fb0a2283550bd74e92558b8b4d4ad  gcc/testsuite/gdc.test/fail_compilation/fail94.d
--- 90589,90595 ----
  592a25b2fb45b91631d7e835040cfa29  gcc/testsuite/gdc.test/fail_compilation/fail92.d
  464df40ce91526b0d13136269cd06d56  gcc/testsuite/gdc.test/fail_compilation/fail9279.d
  5c37289133b3a824aa5c0071cb484e21  gcc/testsuite/gdc.test/fail_compilation/fail9290.d
! e678cafd16d82d8b00fba6c08f137c70  gcc/testsuite/gdc.test/fail_compilation/fail93.d
  86e6c37236e5281ae6e85b20c93617ec  gcc/testsuite/gdc.test/fail_compilation/fail9301.d
  6442c2abcb8b4d33688d3a179b86436f  gcc/testsuite/gdc.test/fail_compilation/fail9346.d
  d30fb0a2283550bd74e92558b8b4d4ad  gcc/testsuite/gdc.test/fail_compilation/fail94.d
*************** ee9da9cdc7bc8825f9b9f6f386521bb2  gcc/te
*** 81742,81763 ****
  85516b47ad47cb2d0dc8a624cd01bac0  gcc/testsuite/gdc.test/fail_compilation/fail9414b.d
  b809b0d3e1e2c21fe5e8c345f65ad761  gcc/testsuite/gdc.test/fail_compilation/fail9414c.d
  097c17067b3d1c20f26bce2bfe022770  gcc/testsuite/gdc.test/fail_compilation/fail9414d.d
! ef3d1b682bb51bf07553160bea316758  gcc/testsuite/gdc.test/fail_compilation/fail95.d
! 64f1abdc294689b7522d3d592bdcae40  gcc/testsuite/gdc.test/fail_compilation/fail9537.d
  e086d9909c9caadc06b38ba910881e91  gcc/testsuite/gdc.test/fail_compilation/fail9562.d
  9c2c95527f1091d7b4fb961d8dc5b771  gcc/testsuite/gdc.test/fail_compilation/fail9572.d
  079c31b17a1ed35362c5e667b5eb2cd4  gcc/testsuite/gdc.test/fail_compilation/fail96.d
! 67dbc31b3c43a5e0b8ce4b1657923974  gcc/testsuite/gdc.test/fail_compilation/fail9613.d
  a421bcf258b8245ac99ef2c6cbee30ca  gcc/testsuite/gdc.test/fail_compilation/fail9665a.d
  8d6b48da97b1a7a018bd24f843cf4fc4  gcc/testsuite/gdc.test/fail_compilation/fail9665b.d
  e0d56d8e254f195a48abf32e39cc51aa  gcc/testsuite/gdc.test/fail_compilation/fail97.d
  a8fe53493be780e3cc67f316ab517f81  gcc/testsuite/gdc.test/fail_compilation/fail9710.d
  6ccce2d9342732663424e4687f541215  gcc/testsuite/gdc.test/fail_compilation/fail9735.d
  d7723e17b36d09ef6c3adb1b595d1521  gcc/testsuite/gdc.test/fail_compilation/fail9766.d
! 89a9905f428bf036206e8abd897f2ec1  gcc/testsuite/gdc.test/fail_compilation/fail9773.d
  007549037b1dc58b235123d494310c31  gcc/testsuite/gdc.test/fail_compilation/fail9790.d
  4cc716e7729c65300b3c37f4297755e9  gcc/testsuite/gdc.test/fail_compilation/fail98.d
! 18c814b6fb7b3ffc61e4f6b4977895c7  gcc/testsuite/gdc.test/fail_compilation/fail9891.d
  5f89108928a4b83bf03ae31c848575f0  gcc/testsuite/gdc.test/fail_compilation/fail9892.d
  05b54ab0227249cc954dbf6f7cfda253  gcc/testsuite/gdc.test/fail_compilation/fail99.d
  980a7ec30f9685063c0705dc226922a9  gcc/testsuite/gdc.test/fail_compilation/fail9936.d
--- 90598,90619 ----
  85516b47ad47cb2d0dc8a624cd01bac0  gcc/testsuite/gdc.test/fail_compilation/fail9414b.d
  b809b0d3e1e2c21fe5e8c345f65ad761  gcc/testsuite/gdc.test/fail_compilation/fail9414c.d
  097c17067b3d1c20f26bce2bfe022770  gcc/testsuite/gdc.test/fail_compilation/fail9414d.d
! 53599cd188a9ca2971f962f221e50548  gcc/testsuite/gdc.test/fail_compilation/fail95.d
! 79278b408ec3ef22c5e6ff4d4a201f68  gcc/testsuite/gdc.test/fail_compilation/fail9537.d
  e086d9909c9caadc06b38ba910881e91  gcc/testsuite/gdc.test/fail_compilation/fail9562.d
  9c2c95527f1091d7b4fb961d8dc5b771  gcc/testsuite/gdc.test/fail_compilation/fail9572.d
  079c31b17a1ed35362c5e667b5eb2cd4  gcc/testsuite/gdc.test/fail_compilation/fail96.d
! 10b7185bdc09d508f641a843c68866c6  gcc/testsuite/gdc.test/fail_compilation/fail9613.d
  a421bcf258b8245ac99ef2c6cbee30ca  gcc/testsuite/gdc.test/fail_compilation/fail9665a.d
  8d6b48da97b1a7a018bd24f843cf4fc4  gcc/testsuite/gdc.test/fail_compilation/fail9665b.d
  e0d56d8e254f195a48abf32e39cc51aa  gcc/testsuite/gdc.test/fail_compilation/fail97.d
  a8fe53493be780e3cc67f316ab517f81  gcc/testsuite/gdc.test/fail_compilation/fail9710.d
  6ccce2d9342732663424e4687f541215  gcc/testsuite/gdc.test/fail_compilation/fail9735.d
  d7723e17b36d09ef6c3adb1b595d1521  gcc/testsuite/gdc.test/fail_compilation/fail9766.d
! 9544d69dd512570f57eb0e3f1c5d6b94  gcc/testsuite/gdc.test/fail_compilation/fail9773.d
  007549037b1dc58b235123d494310c31  gcc/testsuite/gdc.test/fail_compilation/fail9790.d
  4cc716e7729c65300b3c37f4297755e9  gcc/testsuite/gdc.test/fail_compilation/fail98.d
! 1eb7d70c5bc3244e5e4ea3b6f5d798bd  gcc/testsuite/gdc.test/fail_compilation/fail9891.d
  5f89108928a4b83bf03ae31c848575f0  gcc/testsuite/gdc.test/fail_compilation/fail9892.d
  05b54ab0227249cc954dbf6f7cfda253  gcc/testsuite/gdc.test/fail_compilation/fail99.d
  980a7ec30f9685063c0705dc226922a9  gcc/testsuite/gdc.test/fail_compilation/fail9936.d
*************** d7723e17b36d09ef6c3adb1b595d1521  gcc/te
*** 81765,81771 ****
  c031c67712e76b12a4c85d293bcf3ffe  gcc/testsuite/gdc.test/fail_compilation/failCopyCtor2.d
  f4d497ea71041ea968e6cfffda0c12bb  gcc/testsuite/gdc.test/fail_compilation/fail_arrayexp.d
  ac90f256ed942b9c651f7c098cb27bb5  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop1.d
! 18657d3d1f22381fa1d130d04565cb88  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop2.d
  5392bd6d5086465088d720bec4e643b5  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3a.d
  37929ba711bedc6a10601f65fc2ef9dc  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3b.d
  76dc6e141fcacc42604f0bdf73497160  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3c.d
--- 90621,90627 ----
  c031c67712e76b12a4c85d293bcf3ffe  gcc/testsuite/gdc.test/fail_compilation/failCopyCtor2.d
  f4d497ea71041ea968e6cfffda0c12bb  gcc/testsuite/gdc.test/fail_compilation/fail_arrayexp.d
  ac90f256ed942b9c651f7c098cb27bb5  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop1.d
! e803ef51ecf2c3f32c5ea50cbbab6b16  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop2.d
  5392bd6d5086465088d720bec4e643b5  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3a.d
  37929ba711bedc6a10601f65fc2ef9dc  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3b.d
  76dc6e141fcacc42604f0bdf73497160  gcc/testsuite/gdc.test/fail_compilation/fail_arrayop3c.d
*************** d1920a0ad9ef7df56e67e67aed392ab6  gcc/te
*** 81774,81780 ****
  5c15379ab3a21c0db67afc5a0536520a  gcc/testsuite/gdc.test/fail_compilation/fail_casting2.d
  dafeada2c936583ac2c626e7223f0e51  gcc/testsuite/gdc.test/fail_compilation/fail_circular.d
  91ebca05271a9228a53b7e9db4999337  gcc/testsuite/gdc.test/fail_compilation/fail_circular2.d
! ee280540f5bf78152055fd5162141920  gcc/testsuite/gdc.test/fail_compilation/fail_compilation.exp
  39d9ce96eb95361623099463c49b4659  gcc/testsuite/gdc.test/fail_compilation/fail_contracts1.d
  f0f98a24874397d29f4f6e59def95d45  gcc/testsuite/gdc.test/fail_compilation/fail_contracts2.d
  2681d65bc25b4e9924747b1bcb620627  gcc/testsuite/gdc.test/fail_compilation/fail_contracts3.d
--- 90630,90636 ----
  5c15379ab3a21c0db67afc5a0536520a  gcc/testsuite/gdc.test/fail_compilation/fail_casting2.d
  dafeada2c936583ac2c626e7223f0e51  gcc/testsuite/gdc.test/fail_compilation/fail_circular.d
  91ebca05271a9228a53b7e9db4999337  gcc/testsuite/gdc.test/fail_compilation/fail_circular2.d
! 59012ab33a613aaff098d9fedf45aca3  gcc/testsuite/gdc.test/fail_compilation/fail_compilation.exp
  39d9ce96eb95361623099463c49b4659  gcc/testsuite/gdc.test/fail_compilation/fail_contracts1.d
  f0f98a24874397d29f4f6e59def95d45  gcc/testsuite/gdc.test/fail_compilation/fail_contracts2.d
  2681d65bc25b4e9924747b1bcb620627  gcc/testsuite/gdc.test/fail_compilation/fail_contracts3.d
*************** f0f98a24874397d29f4f6e59def95d45  gcc/te
*** 81782,81793 ****
  695faa3012289c1132b755b3a4e17c6b  gcc/testsuite/gdc.test/fail_compilation/fail_isZeroInit.d
  5755182d428b39c519f6bab44078de81  gcc/testsuite/gdc.test/fail_compilation/fail_opover.d
  3abab4820b27a2c6f25c216bae9621ee  gcc/testsuite/gdc.test/fail_compilation/fail_pretty_errors.d
! fd4d485ec46afb2c29fb2bc7fbef2990  gcc/testsuite/gdc.test/fail_compilation/fail_scope.d
! 6ab7e192a48919708488d70f02e8f28d  gcc/testsuite/gdc.test/fail_compilation/fail_typeof.d
  1c155fc73fa20eef8b42028af054656e  gcc/testsuite/gdc.test/fail_compilation/failattr.d
! b61f6ad629dba45d1085c76d3217f055  gcc/testsuite/gdc.test/fail_compilation/failcontracts.d
  350c72bc28ff713ca0e58d7af842d96d  gcc/testsuite/gdc.test/fail_compilation/faildeleteaa.d
! b78ac40d6d61a403bcaef01e4a2670cf  gcc/testsuite/gdc.test/fail_compilation/faildottypeinfo.d
  acd4dc01e2f625f440ffb85c36b0bdd8  gcc/testsuite/gdc.test/fail_compilation/failescape.d
  572be48d5a0a5235990cd885758cfa21  gcc/testsuite/gdc.test/fail_compilation/failinout1.d
  d10e2cbb7d05c7fc6b72017ac15d0380  gcc/testsuite/gdc.test/fail_compilation/failinout2.d
--- 90638,90649 ----
  695faa3012289c1132b755b3a4e17c6b  gcc/testsuite/gdc.test/fail_compilation/fail_isZeroInit.d
  5755182d428b39c519f6bab44078de81  gcc/testsuite/gdc.test/fail_compilation/fail_opover.d
  3abab4820b27a2c6f25c216bae9621ee  gcc/testsuite/gdc.test/fail_compilation/fail_pretty_errors.d
! 9fc9df84c6a9b4eaf58d59180fcfb94d  gcc/testsuite/gdc.test/fail_compilation/fail_scope.d
! 60c11097cde97ed1a0d56db913d545cd  gcc/testsuite/gdc.test/fail_compilation/fail_typeof.d
  1c155fc73fa20eef8b42028af054656e  gcc/testsuite/gdc.test/fail_compilation/failattr.d
! 29bc4c70cdc0939d0bbf342f68018543  gcc/testsuite/gdc.test/fail_compilation/failcontracts.d
  350c72bc28ff713ca0e58d7af842d96d  gcc/testsuite/gdc.test/fail_compilation/faildeleteaa.d
! ed790d31dcec49050e526f717b7525f2  gcc/testsuite/gdc.test/fail_compilation/faildottypeinfo.d
  acd4dc01e2f625f440ffb85c36b0bdd8  gcc/testsuite/gdc.test/fail_compilation/failescape.d
  572be48d5a0a5235990cd885758cfa21  gcc/testsuite/gdc.test/fail_compilation/failinout1.d
  d10e2cbb7d05c7fc6b72017ac15d0380  gcc/testsuite/gdc.test/fail_compilation/failinout2.d
*************** b7bce6203e2b735958ce506967d38f32  gcc/te
*** 81808,81829 ****
  93690a25ed6e19eb304f316a96d26179  gcc/testsuite/gdc.test/fail_compilation/fix350a.d
  d70aafa6b9062aa0a03de1dadb2afa0e  gcc/testsuite/gdc.test/fail_compilation/fix350b.d
  61222240dcc7ff94aa66a70ee70a2267  gcc/testsuite/gdc.test/fail_compilation/fix5212.d
! b9d25113c42d56581ae776a9baea96b2  gcc/testsuite/gdc.test/fail_compilation/fnconstraint.d
  632cc2a388729fd7b375cab66f081eec  gcc/testsuite/gdc.test/fail_compilation/fob1.d
  040176ff17f89531c80db27571dd516c  gcc/testsuite/gdc.test/fail_compilation/fob2.d
  3b6b4690c46663771a12fac16287d948  gcc/testsuite/gdc.test/fail_compilation/foreach.d
  0f17ffd1ebe50b304fd0960b12313bb2  gcc/testsuite/gdc.test/fail_compilation/foreach2.d
! 6564ec7f617e45a8fbc2200fe0aeda2f  gcc/testsuite/gdc.test/fail_compilation/format.d
! 3f0593f45a26cf2f750af2587d67a6ba  gcc/testsuite/gdc.test/fail_compilation/gag4269a.d
! f56ebc2eca71902974fca5bb8a136c4e  gcc/testsuite/gdc.test/fail_compilation/gag4269b.d
! f68d4c65c480dd21796992cb08232816  gcc/testsuite/gdc.test/fail_compilation/gag4269c.d
! 749dbc75bce825328eabbeb85df3b8ca  gcc/testsuite/gdc.test/fail_compilation/gag4269d.d
! 87a6211fb542430ff7af21389d799fda  gcc/testsuite/gdc.test/fail_compilation/gag4269e.d
! 4008dbec0759997c5036536131c28c6a  gcc/testsuite/gdc.test/fail_compilation/gag4269f.d
! 9cf3422f5ffafd5938cb92091c05e380  gcc/testsuite/gdc.test/fail_compilation/gag4269g.d
  9ce1ef30ce0032c5863af2b5db1a1096  gcc/testsuite/gdc.test/fail_compilation/goto1.d
  77e722036429f4fc42ec0ff061e860b0  gcc/testsuite/gdc.test/fail_compilation/goto2.d
  cd533a563214ceee8ca1768f9838d59d  gcc/testsuite/gdc.test/fail_compilation/goto3.d
  99c89b8c0a428df9da4c26b6f3529275  gcc/testsuite/gdc.test/fail_compilation/ice10016.d
  025fc1e9a5dc79cd22aa2bf5b5dc7daf  gcc/testsuite/gdc.test/fail_compilation/ice10076.d
  b79d3bf3f306725e17ff9746eeef5b56  gcc/testsuite/gdc.test/fail_compilation/ice10212.d
--- 90664,90688 ----
  93690a25ed6e19eb304f316a96d26179  gcc/testsuite/gdc.test/fail_compilation/fix350a.d
  d70aafa6b9062aa0a03de1dadb2afa0e  gcc/testsuite/gdc.test/fail_compilation/fix350b.d
  61222240dcc7ff94aa66a70ee70a2267  gcc/testsuite/gdc.test/fail_compilation/fix5212.d
! 56dca5f4e1790c3e3a915759e3716f3d  gcc/testsuite/gdc.test/fail_compilation/fnconstraint.d
  632cc2a388729fd7b375cab66f081eec  gcc/testsuite/gdc.test/fail_compilation/fob1.d
  040176ff17f89531c80db27571dd516c  gcc/testsuite/gdc.test/fail_compilation/fob2.d
  3b6b4690c46663771a12fac16287d948  gcc/testsuite/gdc.test/fail_compilation/foreach.d
  0f17ffd1ebe50b304fd0960b12313bb2  gcc/testsuite/gdc.test/fail_compilation/foreach2.d
! bccf894411d541cd221e4207649b4c46  gcc/testsuite/gdc.test/fail_compilation/format.d
! 15e1ee41289e7d1ef8a596511f5652b2  gcc/testsuite/gdc.test/fail_compilation/funcpostattr.d
! b94cf7c5d997c21f8f03c57183a54d79  gcc/testsuite/gdc.test/fail_compilation/gag4269a.d
! 624e6859a5c15acb4afea21991aa22e8  gcc/testsuite/gdc.test/fail_compilation/gag4269b.d
! 0ca82744a3a21788c5595684d2158db0  gcc/testsuite/gdc.test/fail_compilation/gag4269c.d
! 647a612fbc99d9f2c98f05904674d935  gcc/testsuite/gdc.test/fail_compilation/gag4269d.d
! de5626af47ff3ba9b6515b76feb685f5  gcc/testsuite/gdc.test/fail_compilation/gag4269e.d
! 1c5dbec32aacf828ebfcf458f4f95c23  gcc/testsuite/gdc.test/fail_compilation/gag4269f.d
! 50bdb8c3ca2c1f21870986f7ffcb432b  gcc/testsuite/gdc.test/fail_compilation/gag4269g.d
  9ce1ef30ce0032c5863af2b5db1a1096  gcc/testsuite/gdc.test/fail_compilation/goto1.d
  77e722036429f4fc42ec0ff061e860b0  gcc/testsuite/gdc.test/fail_compilation/goto2.d
  cd533a563214ceee8ca1768f9838d59d  gcc/testsuite/gdc.test/fail_compilation/goto3.d
+ 70816e7050681b8d76afd0b57b732505  gcc/testsuite/gdc.test/fail_compilation/goto_skip.d
+ 30b8463089569fbdf66c1ad80c688c9d  gcc/testsuite/gdc.test/fail_compilation/hexstring.d
  99c89b8c0a428df9da4c26b6f3529275  gcc/testsuite/gdc.test/fail_compilation/ice10016.d
  025fc1e9a5dc79cd22aa2bf5b5dc7daf  gcc/testsuite/gdc.test/fail_compilation/ice10076.d
  b79d3bf3f306725e17ff9746eeef5b56  gcc/testsuite/gdc.test/fail_compilation/ice10212.d
*************** d5388b9b8af91183c0f15639c00276ad  gcc/te
*** 81832,81849 ****
  6ea95042bce54d6ecc7671ba800aea08  gcc/testsuite/gdc.test/fail_compilation/ice10283.d
  d51e529940bc437f64bbaa0bd190205a  gcc/testsuite/gdc.test/fail_compilation/ice10341.d
  70bc10d3ccd01357e26413166df5bcc5  gcc/testsuite/gdc.test/fail_compilation/ice10382.d
! c5ac771d91f47e9650161cae0194dea0  gcc/testsuite/gdc.test/fail_compilation/ice10419.d
  c56acd6f4c74ed39f0536444293d098c  gcc/testsuite/gdc.test/fail_compilation/ice10598.d
! 53e85d82f583a68093ca5af572f9c19c  gcc/testsuite/gdc.test/fail_compilation/ice10599.d
  eaa8d3fd53fa02a7d63c35073fc43afd  gcc/testsuite/gdc.test/fail_compilation/ice10600.d
  9df2af66260b9fb0b61d20afe7c1185b  gcc/testsuite/gdc.test/fail_compilation/ice10616.d
  ec78599028c7b060201a8be7166419e0  gcc/testsuite/gdc.test/fail_compilation/ice10624.d
! 004f9ce0dea56bf66923d0989edb32a0  gcc/testsuite/gdc.test/fail_compilation/ice10651.d
! d6a1e1a4369bae1d4acb191b3cbf51ec  gcc/testsuite/gdc.test/fail_compilation/ice10713.d
! 18ba13b8377cd5cd39ea2a7487e0f1a1  gcc/testsuite/gdc.test/fail_compilation/ice10727a.d
! 0d0b86f60aaa3a19af66b2141f3af10f  gcc/testsuite/gdc.test/fail_compilation/ice10727b.d
! c3d9a83a929c0efebe7f491b8f28ba9a  gcc/testsuite/gdc.test/fail_compilation/ice10922.d
! aa7e89365b0c870acebf83f4506f4939  gcc/testsuite/gdc.test/fail_compilation/ice10938.d
  1461e66fd88ac9dc85648dc49a551864  gcc/testsuite/gdc.test/fail_compilation/ice10949.d
  34d3870c0caaf04c607e50cf1a928eec  gcc/testsuite/gdc.test/fail_compilation/ice11086.d
  648c23d8d77c00d2e35dccf65fe72418  gcc/testsuite/gdc.test/fail_compilation/ice11136.d
--- 90691,90708 ----
  6ea95042bce54d6ecc7671ba800aea08  gcc/testsuite/gdc.test/fail_compilation/ice10283.d
  d51e529940bc437f64bbaa0bd190205a  gcc/testsuite/gdc.test/fail_compilation/ice10341.d
  70bc10d3ccd01357e26413166df5bcc5  gcc/testsuite/gdc.test/fail_compilation/ice10382.d
! 48af2ef2cbe70a796acab9d2d9869a74  gcc/testsuite/gdc.test/fail_compilation/ice10419.d
  c56acd6f4c74ed39f0536444293d098c  gcc/testsuite/gdc.test/fail_compilation/ice10598.d
! f8fcf0229e2b527566c925c84d446ef1  gcc/testsuite/gdc.test/fail_compilation/ice10599.d
  eaa8d3fd53fa02a7d63c35073fc43afd  gcc/testsuite/gdc.test/fail_compilation/ice10600.d
  9df2af66260b9fb0b61d20afe7c1185b  gcc/testsuite/gdc.test/fail_compilation/ice10616.d
  ec78599028c7b060201a8be7166419e0  gcc/testsuite/gdc.test/fail_compilation/ice10624.d
! e62ed8964d5af64c7355c7ae27059665  gcc/testsuite/gdc.test/fail_compilation/ice10651.d
! 95d8dbaa997385cf863a69a39b3c7804  gcc/testsuite/gdc.test/fail_compilation/ice10713.d
! fc16fdde5984845cc69e52c7635d131e  gcc/testsuite/gdc.test/fail_compilation/ice10727a.d
! c1586096d1dcd6449a85c6c28ab95b55  gcc/testsuite/gdc.test/fail_compilation/ice10727b.d
! 3f3f12425efc014386cb779925ef7160  gcc/testsuite/gdc.test/fail_compilation/ice10922.d
! ec922bc76bfc1d05fcaa9505a735c59b  gcc/testsuite/gdc.test/fail_compilation/ice10938.d
  1461e66fd88ac9dc85648dc49a551864  gcc/testsuite/gdc.test/fail_compilation/ice10949.d
  34d3870c0caaf04c607e50cf1a928eec  gcc/testsuite/gdc.test/fail_compilation/ice11086.d
  648c23d8d77c00d2e35dccf65fe72418  gcc/testsuite/gdc.test/fail_compilation/ice11136.d
*************** aa7e89365b0c870acebf83f4506f4939  gcc/te
*** 81853,81881 ****
  99dfb4f4adee9d67ecacda92dc77d8f9  gcc/testsuite/gdc.test/fail_compilation/ice11472.d
  b01f1e5097e328574434a03ef20c82a1  gcc/testsuite/gdc.test/fail_compilation/ice11513a.d
  297f720e062086b8dc908429e0a610a3  gcc/testsuite/gdc.test/fail_compilation/ice11513b.d
! 368f097e80f9e3314f8ada824bc2bcb1  gcc/testsuite/gdc.test/fail_compilation/ice11518.d
  00cdd8dd70555e44311ab986c9035d5e  gcc/testsuite/gdc.test/fail_compilation/ice11552.d
  6c48d3d86d43c755947eb4bb6ecc570b  gcc/testsuite/gdc.test/fail_compilation/ice11553.d
! 74a4ba5f3fefa42fbbfd071076e14869  gcc/testsuite/gdc.test/fail_compilation/ice11626.d
  4da5ee3a1d67873962af14a594e3465e  gcc/testsuite/gdc.test/fail_compilation/ice11726.d
  c3c4f85c56281537ca3ee9c4cf8b6a91  gcc/testsuite/gdc.test/fail_compilation/ice11793.d
  7d2b1a059c8c93ae667a4f3a48567aa6  gcc/testsuite/gdc.test/fail_compilation/ice11822.d
  7026d9811c4f8d0be77cedf33a89c5df  gcc/testsuite/gdc.test/fail_compilation/ice11849b.d
  56c7c64caed7981c7f9103c734734e0a  gcc/testsuite/gdc.test/fail_compilation/ice11850.d
  153e61db46622a2e4f240d23d23b7266  gcc/testsuite/gdc.test/fail_compilation/ice11856_0.d
! 6dd22204e33f32d3019d0f8b69f8195a  gcc/testsuite/gdc.test/fail_compilation/ice11856_1.d
  72832de41c6779e3f783a305e081fe30  gcc/testsuite/gdc.test/fail_compilation/ice11919.d
  861874f2b059070cff718bf324774753  gcc/testsuite/gdc.test/fail_compilation/ice11922.d
  c0767fee9a9a4f4f482ae2a5bc0348ab  gcc/testsuite/gdc.test/fail_compilation/ice11925.d
  b770417113d0cfab995e016c1a96463c  gcc/testsuite/gdc.test/fail_compilation/ice11926.d
  37cd844480cad08328bd663f58b02961  gcc/testsuite/gdc.test/fail_compilation/ice11944.d
  3581ee928172d5e956124a025111f8e2  gcc/testsuite/gdc.test/fail_compilation/ice11963.d
! 34eeab6b424aabc0833e5a87447b6f8e  gcc/testsuite/gdc.test/fail_compilation/ice11965.d
  7a3bc872fc720b7fe6b26109acfc6ba1  gcc/testsuite/gdc.test/fail_compilation/ice11967.d
  9c15df3bc58c0633f4f0a555748df34d  gcc/testsuite/gdc.test/fail_compilation/ice11968.d
  62edb8803f123fb16f5e40f647c48a0d  gcc/testsuite/gdc.test/fail_compilation/ice11969.d
  5c4e51a872cc510224e82db0a4d3bef5  gcc/testsuite/gdc.test/fail_compilation/ice11974.d
! 52a2c69cb2543e948028d7a380bb12b3  gcc/testsuite/gdc.test/fail_compilation/ice11982.d
  739ae8c1e53ba0243c4cf2e783760a68  gcc/testsuite/gdc.test/fail_compilation/ice12040.d
  fdadb7e02cce30df2e604ba0c426de70  gcc/testsuite/gdc.test/fail_compilation/ice12158.d
  977f7630f3a5789c9d3c4dea7202596e  gcc/testsuite/gdc.test/fail_compilation/ice12174.d
--- 90712,90740 ----
  99dfb4f4adee9d67ecacda92dc77d8f9  gcc/testsuite/gdc.test/fail_compilation/ice11472.d
  b01f1e5097e328574434a03ef20c82a1  gcc/testsuite/gdc.test/fail_compilation/ice11513a.d
  297f720e062086b8dc908429e0a610a3  gcc/testsuite/gdc.test/fail_compilation/ice11513b.d
! d5c2e331a344c3676cf8c4d9d08d5ee3  gcc/testsuite/gdc.test/fail_compilation/ice11518.d
  00cdd8dd70555e44311ab986c9035d5e  gcc/testsuite/gdc.test/fail_compilation/ice11552.d
  6c48d3d86d43c755947eb4bb6ecc570b  gcc/testsuite/gdc.test/fail_compilation/ice11553.d
! fc0fa22f207e733747daa85d25bf95c3  gcc/testsuite/gdc.test/fail_compilation/ice11626.d
  4da5ee3a1d67873962af14a594e3465e  gcc/testsuite/gdc.test/fail_compilation/ice11726.d
  c3c4f85c56281537ca3ee9c4cf8b6a91  gcc/testsuite/gdc.test/fail_compilation/ice11793.d
  7d2b1a059c8c93ae667a4f3a48567aa6  gcc/testsuite/gdc.test/fail_compilation/ice11822.d
  7026d9811c4f8d0be77cedf33a89c5df  gcc/testsuite/gdc.test/fail_compilation/ice11849b.d
  56c7c64caed7981c7f9103c734734e0a  gcc/testsuite/gdc.test/fail_compilation/ice11850.d
  153e61db46622a2e4f240d23d23b7266  gcc/testsuite/gdc.test/fail_compilation/ice11856_0.d
! d80c0d6e8e095465dde5bf92715cffb4  gcc/testsuite/gdc.test/fail_compilation/ice11856_1.d
  72832de41c6779e3f783a305e081fe30  gcc/testsuite/gdc.test/fail_compilation/ice11919.d
  861874f2b059070cff718bf324774753  gcc/testsuite/gdc.test/fail_compilation/ice11922.d
  c0767fee9a9a4f4f482ae2a5bc0348ab  gcc/testsuite/gdc.test/fail_compilation/ice11925.d
  b770417113d0cfab995e016c1a96463c  gcc/testsuite/gdc.test/fail_compilation/ice11926.d
  37cd844480cad08328bd663f58b02961  gcc/testsuite/gdc.test/fail_compilation/ice11944.d
  3581ee928172d5e956124a025111f8e2  gcc/testsuite/gdc.test/fail_compilation/ice11963.d
! 9289bde4281c0a1667cd4cd20f1970a3  gcc/testsuite/gdc.test/fail_compilation/ice11965.d
  7a3bc872fc720b7fe6b26109acfc6ba1  gcc/testsuite/gdc.test/fail_compilation/ice11967.d
  9c15df3bc58c0633f4f0a555748df34d  gcc/testsuite/gdc.test/fail_compilation/ice11968.d
  62edb8803f123fb16f5e40f647c48a0d  gcc/testsuite/gdc.test/fail_compilation/ice11969.d
  5c4e51a872cc510224e82db0a4d3bef5  gcc/testsuite/gdc.test/fail_compilation/ice11974.d
! b0589bffc90361bd681556366e195dfe  gcc/testsuite/gdc.test/fail_compilation/ice11982.d
  739ae8c1e53ba0243c4cf2e783760a68  gcc/testsuite/gdc.test/fail_compilation/ice12040.d
  fdadb7e02cce30df2e604ba0c426de70  gcc/testsuite/gdc.test/fail_compilation/ice12158.d
  977f7630f3a5789c9d3c4dea7202596e  gcc/testsuite/gdc.test/fail_compilation/ice12174.d
*************** fdadb7e02cce30df2e604ba0c426de70  gcc/te
*** 81883,81899 ****
  cd150c87ac92e61e8b5e7090ae58da2f  gcc/testsuite/gdc.test/fail_compilation/ice12350.d
  f4ef2195ff7d779b59f1b6dee9571fbb  gcc/testsuite/gdc.test/fail_compilation/ice12362.d
  3bc21becfe6e22cc50bb89839b877fc6  gcc/testsuite/gdc.test/fail_compilation/ice12397.d
! 7cb92086b9ee1495589129f725e2a3c1  gcc/testsuite/gdc.test/fail_compilation/ice12501.d
  b715ba0a6a8a0570d030ad23cf911c9b  gcc/testsuite/gdc.test/fail_compilation/ice12534.d
  9faa539294380abc5984c23496c207b6  gcc/testsuite/gdc.test/fail_compilation/ice12539.d
! 19d7266177b0e4818618703afff0ba3d  gcc/testsuite/gdc.test/fail_compilation/ice12574.d
  c5d83c46b1283b0dd2faab15724477e0  gcc/testsuite/gdc.test/fail_compilation/ice12581.d
  94cfd39ff841db3c06aa46f974ec9920  gcc/testsuite/gdc.test/fail_compilation/ice12673.d
  d0a727d83cace9f1fc1ffec7c8ca7b84  gcc/testsuite/gdc.test/fail_compilation/ice12727.d
  c36f3395f426470d991985d5dca3f939  gcc/testsuite/gdc.test/fail_compilation/ice12827.d
  a7ad99af969fb1ecb4ad94aca9468df7  gcc/testsuite/gdc.test/fail_compilation/ice12836.d
  3338ec526a2d9e2ab88908856caff232  gcc/testsuite/gdc.test/fail_compilation/ice12838.d
! 7848b00ddd3abd0a003fe99c46bd17a8  gcc/testsuite/gdc.test/fail_compilation/ice12841.d
  a5897d2681c15118416b4f821cc74062  gcc/testsuite/gdc.test/fail_compilation/ice12850.d
  08077572667654b2d42a65e6b00570b4  gcc/testsuite/gdc.test/fail_compilation/ice12902.d
  9e9a8eac1a9f49f5c052a39cf734e59c  gcc/testsuite/gdc.test/fail_compilation/ice12907.d
--- 90742,90758 ----
  cd150c87ac92e61e8b5e7090ae58da2f  gcc/testsuite/gdc.test/fail_compilation/ice12350.d
  f4ef2195ff7d779b59f1b6dee9571fbb  gcc/testsuite/gdc.test/fail_compilation/ice12362.d
  3bc21becfe6e22cc50bb89839b877fc6  gcc/testsuite/gdc.test/fail_compilation/ice12397.d
! 4b03fd4748c8e23f754a74fead8746ff  gcc/testsuite/gdc.test/fail_compilation/ice12501.d
  b715ba0a6a8a0570d030ad23cf911c9b  gcc/testsuite/gdc.test/fail_compilation/ice12534.d
  9faa539294380abc5984c23496c207b6  gcc/testsuite/gdc.test/fail_compilation/ice12539.d
! c623afb003203d84289e748b2726e1bc  gcc/testsuite/gdc.test/fail_compilation/ice12574.d
  c5d83c46b1283b0dd2faab15724477e0  gcc/testsuite/gdc.test/fail_compilation/ice12581.d
  94cfd39ff841db3c06aa46f974ec9920  gcc/testsuite/gdc.test/fail_compilation/ice12673.d
  d0a727d83cace9f1fc1ffec7c8ca7b84  gcc/testsuite/gdc.test/fail_compilation/ice12727.d
  c36f3395f426470d991985d5dca3f939  gcc/testsuite/gdc.test/fail_compilation/ice12827.d
  a7ad99af969fb1ecb4ad94aca9468df7  gcc/testsuite/gdc.test/fail_compilation/ice12836.d
  3338ec526a2d9e2ab88908856caff232  gcc/testsuite/gdc.test/fail_compilation/ice12838.d
! 07a23b4eb634212adb32deab6de6806b  gcc/testsuite/gdc.test/fail_compilation/ice12841.d
  a5897d2681c15118416b4f821cc74062  gcc/testsuite/gdc.test/fail_compilation/ice12850.d
  08077572667654b2d42a65e6b00570b4  gcc/testsuite/gdc.test/fail_compilation/ice12902.d
  9e9a8eac1a9f49f5c052a39cf734e59c  gcc/testsuite/gdc.test/fail_compilation/ice12907.d
*************** a5897d2681c15118416b4f821cc74062  gcc/te
*** 81902,81913 ****
  7504c353f2132b60c68b7679aeda65b4  gcc/testsuite/gdc.test/fail_compilation/ice13131.d
  c1cd5c3fda15a812481eeb4a54119f47  gcc/testsuite/gdc.test/fail_compilation/ice13220.d
  19a64f1c894e25fedf92ef98d00f890f  gcc/testsuite/gdc.test/fail_compilation/ice13221.d
! 40c5d35d23975bac370ddc6f0090e7f6  gcc/testsuite/gdc.test/fail_compilation/ice13225.d
  200733a2f0152abe94c711e58f9d1520  gcc/testsuite/gdc.test/fail_compilation/ice13311.d
  898cdb488015b425bb183d44306c64a6  gcc/testsuite/gdc.test/fail_compilation/ice13356.d
  664f9a91f4eeca7d9e63d50ac7044f09  gcc/testsuite/gdc.test/fail_compilation/ice13382.d
  1a4bbc169fd865e415f5735e2d02011f  gcc/testsuite/gdc.test/fail_compilation/ice13385.d
! f6d8395e0a934fa46f874eef4c21d51a  gcc/testsuite/gdc.test/fail_compilation/ice13459.d
  7eb7d91873c6e88ec6fdb603c21e6fd5  gcc/testsuite/gdc.test/fail_compilation/ice13465a.d
  f4410cf62c66bd36b26cfd923568793c  gcc/testsuite/gdc.test/fail_compilation/ice13465b.d
  2758dd2a496a5538d3b0f220c968d7c2  gcc/testsuite/gdc.test/fail_compilation/ice13563.d
--- 90761,90772 ----
  7504c353f2132b60c68b7679aeda65b4  gcc/testsuite/gdc.test/fail_compilation/ice13131.d
  c1cd5c3fda15a812481eeb4a54119f47  gcc/testsuite/gdc.test/fail_compilation/ice13220.d
  19a64f1c894e25fedf92ef98d00f890f  gcc/testsuite/gdc.test/fail_compilation/ice13221.d
! 812987f6be559a5a4951de2aac1905a0  gcc/testsuite/gdc.test/fail_compilation/ice13225.d
  200733a2f0152abe94c711e58f9d1520  gcc/testsuite/gdc.test/fail_compilation/ice13311.d
  898cdb488015b425bb183d44306c64a6  gcc/testsuite/gdc.test/fail_compilation/ice13356.d
  664f9a91f4eeca7d9e63d50ac7044f09  gcc/testsuite/gdc.test/fail_compilation/ice13382.d
  1a4bbc169fd865e415f5735e2d02011f  gcc/testsuite/gdc.test/fail_compilation/ice13385.d
! 31f4b5c5d496e4d1164edd74e7d41db2  gcc/testsuite/gdc.test/fail_compilation/ice13459.d
  7eb7d91873c6e88ec6fdb603c21e6fd5  gcc/testsuite/gdc.test/fail_compilation/ice13465a.d
  f4410cf62c66bd36b26cfd923568793c  gcc/testsuite/gdc.test/fail_compilation/ice13465b.d
  2758dd2a496a5538d3b0f220c968d7c2  gcc/testsuite/gdc.test/fail_compilation/ice13563.d
*************** a2859dc4361a77e0eb5ace8ca45bc965  gcc/te
*** 81921,81949 ****
  96f71bde638b7d5dc18e97f97371527d  gcc/testsuite/gdc.test/fail_compilation/ice14055.d
  8ccac1809b79a556a5695da6538a2fdb  gcc/testsuite/gdc.test/fail_compilation/ice14096.d
  128fd09fc874041619ce918a3a2a42cf  gcc/testsuite/gdc.test/fail_compilation/ice14116.d
! de954f2f81aeb3383b663ceab6e3e919  gcc/testsuite/gdc.test/fail_compilation/ice14130.d
  1f92d0a5c92c9c27f3b8c62489742dd8  gcc/testsuite/gdc.test/fail_compilation/ice14146.d
  a3030493e844e6a48d6f641d6e35db75  gcc/testsuite/gdc.test/fail_compilation/ice14177.d
  3ffe323bf5cac54cd8f129bd4d24b624  gcc/testsuite/gdc.test/fail_compilation/ice14185.d
  bea2ed593bafd20204dbbceeef5c98c7  gcc/testsuite/gdc.test/fail_compilation/ice14272.d
! e9fc246503f24b01d7b54bf0e06fe251  gcc/testsuite/gdc.test/fail_compilation/ice14424.d
  a2a949ac7909f7551aaf96e706213eed  gcc/testsuite/gdc.test/fail_compilation/ice14621.d
  2bc303c1fcbcde60c2862ed14d39f7ce  gcc/testsuite/gdc.test/fail_compilation/ice14642.d
  767e6d9d9798cb7c34afdc00fb232661  gcc/testsuite/gdc.test/fail_compilation/ice14844.d
! 0b09db7aaa0a981639042be21669e8fc  gcc/testsuite/gdc.test/fail_compilation/ice14907.d
! 61206c0be6afd5ad30b658069fbd81b2  gcc/testsuite/gdc.test/fail_compilation/ice14923.d
  0144be1b1ccbd02aa3727042eb326ea2  gcc/testsuite/gdc.test/fail_compilation/ice15002.d
  1373784bc7d688cf332b9a2fe5eb0c49  gcc/testsuite/gdc.test/fail_compilation/ice15092.d
  116ac487061a001659e6c5349c18d655  gcc/testsuite/gdc.test/fail_compilation/ice15127.d
  4c15c3f93c9fa16127576c410a26125b  gcc/testsuite/gdc.test/fail_compilation/ice15172.d
  f22d97a4996c80fd574970a5f939405d  gcc/testsuite/gdc.test/fail_compilation/ice15317.d
! 033d5e7c51fc824dd298edfb6d5fdb74  gcc/testsuite/gdc.test/fail_compilation/ice15332.d
  22020a4a026c7933e054de2defcae4a8  gcc/testsuite/gdc.test/fail_compilation/ice15441.d
  c4808cceecd3aededb2f1143169919bd  gcc/testsuite/gdc.test/fail_compilation/ice15688.d
  5df2b52f25277c7c025698c08ecaf1ae  gcc/testsuite/gdc.test/fail_compilation/ice15788.d
  8a4b1bf6f02264c4208dec120d4ba224  gcc/testsuite/gdc.test/fail_compilation/ice15816.d
! aefdaf620724a6995807607fe3eb828e  gcc/testsuite/gdc.test/fail_compilation/ice15855.d
! befd3225b64946485fb6114607b43b58  gcc/testsuite/gdc.test/fail_compilation/ice15922.d
  ae44bcfb44569651c4d9376e3191212a  gcc/testsuite/gdc.test/fail_compilation/ice16035.d
  0b4d444d80046b62ecd47f19968067a7  gcc/testsuite/gdc.test/fail_compilation/ice16657.d
  9c348b961889ec283b968746616b4dd5  gcc/testsuite/gdc.test/fail_compilation/ice17074.d
--- 90780,90808 ----
  96f71bde638b7d5dc18e97f97371527d  gcc/testsuite/gdc.test/fail_compilation/ice14055.d
  8ccac1809b79a556a5695da6538a2fdb  gcc/testsuite/gdc.test/fail_compilation/ice14096.d
  128fd09fc874041619ce918a3a2a42cf  gcc/testsuite/gdc.test/fail_compilation/ice14116.d
! 6658021337377abd06b91b4908e8a36b  gcc/testsuite/gdc.test/fail_compilation/ice14130.d
  1f92d0a5c92c9c27f3b8c62489742dd8  gcc/testsuite/gdc.test/fail_compilation/ice14146.d
  a3030493e844e6a48d6f641d6e35db75  gcc/testsuite/gdc.test/fail_compilation/ice14177.d
  3ffe323bf5cac54cd8f129bd4d24b624  gcc/testsuite/gdc.test/fail_compilation/ice14185.d
  bea2ed593bafd20204dbbceeef5c98c7  gcc/testsuite/gdc.test/fail_compilation/ice14272.d
! 5aa387a2b39d79912d3be0b53ca740c8  gcc/testsuite/gdc.test/fail_compilation/ice14424.d
  a2a949ac7909f7551aaf96e706213eed  gcc/testsuite/gdc.test/fail_compilation/ice14621.d
  2bc303c1fcbcde60c2862ed14d39f7ce  gcc/testsuite/gdc.test/fail_compilation/ice14642.d
  767e6d9d9798cb7c34afdc00fb232661  gcc/testsuite/gdc.test/fail_compilation/ice14844.d
! ac1dd1960bc0e15ee56f6b9a621fcd7d  gcc/testsuite/gdc.test/fail_compilation/ice14907.d
! 72005c00466b4b213bd5aa03eac9a253  gcc/testsuite/gdc.test/fail_compilation/ice14923.d
  0144be1b1ccbd02aa3727042eb326ea2  gcc/testsuite/gdc.test/fail_compilation/ice15002.d
  1373784bc7d688cf332b9a2fe5eb0c49  gcc/testsuite/gdc.test/fail_compilation/ice15092.d
  116ac487061a001659e6c5349c18d655  gcc/testsuite/gdc.test/fail_compilation/ice15127.d
  4c15c3f93c9fa16127576c410a26125b  gcc/testsuite/gdc.test/fail_compilation/ice15172.d
  f22d97a4996c80fd574970a5f939405d  gcc/testsuite/gdc.test/fail_compilation/ice15317.d
! c50197f99fd27eeafa4f92d593ff70f2  gcc/testsuite/gdc.test/fail_compilation/ice15332.d
  22020a4a026c7933e054de2defcae4a8  gcc/testsuite/gdc.test/fail_compilation/ice15441.d
  c4808cceecd3aededb2f1143169919bd  gcc/testsuite/gdc.test/fail_compilation/ice15688.d
  5df2b52f25277c7c025698c08ecaf1ae  gcc/testsuite/gdc.test/fail_compilation/ice15788.d
  8a4b1bf6f02264c4208dec120d4ba224  gcc/testsuite/gdc.test/fail_compilation/ice15816.d
! 89f55d44d2e12d9048d81b7caec7a57b  gcc/testsuite/gdc.test/fail_compilation/ice15855.d
! d474237401c372d41491116b0c9b9bff  gcc/testsuite/gdc.test/fail_compilation/ice15922.d
  ae44bcfb44569651c4d9376e3191212a  gcc/testsuite/gdc.test/fail_compilation/ice16035.d
  0b4d444d80046b62ecd47f19968067a7  gcc/testsuite/gdc.test/fail_compilation/ice16657.d
  9c348b961889ec283b968746616b4dd5  gcc/testsuite/gdc.test/fail_compilation/ice17074.d
*************** a4b0b8ec30a45276b6adabbc1fdef687  gcc/te
*** 81958,81984 ****
  71aea9f843fbfe456c9a87e3a042ac0d  gcc/testsuite/gdc.test/fail_compilation/ice19887.d
  6bf925a0b5b868454c89afbac8b00888  gcc/testsuite/gdc.test/fail_compilation/ice19950.d
  aa186ea08e0631c13ea1c253fea2a6a2  gcc/testsuite/gdc.test/fail_compilation/ice20042.d
! f760b9b1fddbd5ec8c882280251d89e1  gcc/testsuite/gdc.test/fail_compilation/ice20056.d
  2ddde1a9a9bf8255b405b821c0568581  gcc/testsuite/gdc.test/fail_compilation/ice20057.d
! b976eedb61aadb4465ca084f17ddd25d  gcc/testsuite/gdc.test/fail_compilation/ice20264.d
  ebda3059f679d68e2bdd1d9fe3e11b64  gcc/testsuite/gdc.test/fail_compilation/ice20545.d
  dae5b57cc66ee7160f7c95b7b14c4e59  gcc/testsuite/gdc.test/fail_compilation/ice20709.d
  1ee2df9e731e72df6ec1774356fb21e5  gcc/testsuite/gdc.test/fail_compilation/ice21060.d
  40cfc62ac063a12983ebf0b7179dc795  gcc/testsuite/gdc.test/fail_compilation/ice21095.d
  1c889102f6cb03a5abd14a55477bd9e0  gcc/testsuite/gdc.test/fail_compilation/ice22377.d
  53849f1b76fa5b798b4ea5844160c304  gcc/testsuite/gdc.test/fail_compilation/ice22516.d
! a95b4b0d95ad129bddbc03bfc46ac807  gcc/testsuite/gdc.test/fail_compilation/ice23097.d
  ffd2b73db2375f964698b9462b32fd71  gcc/testsuite/gdc.test/fail_compilation/ice23564.d
  3a0467bdf1e7de5d4265ef4ec4e885e0  gcc/testsuite/gdc.test/fail_compilation/ice23569.d
  f76434ad232d6834574476947c58a5a5  gcc/testsuite/gdc.test/fail_compilation/ice23781.d
  6d3a822b9364a2575ac0b8aaf63c1e2a  gcc/testsuite/gdc.test/fail_compilation/ice2843.d
  e18518a6aec5268830a299e55c6f25cf  gcc/testsuite/gdc.test/fail_compilation/ice4094.d
  b39d129bd0b8de50d086197b89a483fb  gcc/testsuite/gdc.test/fail_compilation/ice4983.d
  ebfa02fece677d43edcbb1d96bb283d6  gcc/testsuite/gdc.test/fail_compilation/ice5996.d
! b34095b40adae61dc1eb07b5bac9c444  gcc/testsuite/gdc.test/fail_compilation/ice6538.d
! ab285c0cd0c9fdaf0e2984831395c561  gcc/testsuite/gdc.test/fail_compilation/ice7645.d
  8a8461284a6748b9cb2d36caae3e077b  gcc/testsuite/gdc.test/fail_compilation/ice7782.d
! e8ffb50f7fb876dd3a110f162a2fadb2  gcc/testsuite/gdc.test/fail_compilation/ice8100.d
  b40addef2fa6f0dc9179e06cc7dfc4c6  gcc/testsuite/gdc.test/fail_compilation/ice8309.d
  f1d18a3fe42974d8d7e5230df6193002  gcc/testsuite/gdc.test/fail_compilation/ice8499.d
  853540ed15c640e1f07a123857bdd5e3  gcc/testsuite/gdc.test/fail_compilation/ice8604.d
--- 90817,90846 ----
  71aea9f843fbfe456c9a87e3a042ac0d  gcc/testsuite/gdc.test/fail_compilation/ice19887.d
  6bf925a0b5b868454c89afbac8b00888  gcc/testsuite/gdc.test/fail_compilation/ice19950.d
  aa186ea08e0631c13ea1c253fea2a6a2  gcc/testsuite/gdc.test/fail_compilation/ice20042.d
! aa500e0e7b0fa37a89bee6f9ba005205  gcc/testsuite/gdc.test/fail_compilation/ice20056.d
  2ddde1a9a9bf8255b405b821c0568581  gcc/testsuite/gdc.test/fail_compilation/ice20057.d
! 7a45e6dd98ac8cb51de6376150ef785f  gcc/testsuite/gdc.test/fail_compilation/ice20264.d
  ebda3059f679d68e2bdd1d9fe3e11b64  gcc/testsuite/gdc.test/fail_compilation/ice20545.d
  dae5b57cc66ee7160f7c95b7b14c4e59  gcc/testsuite/gdc.test/fail_compilation/ice20709.d
  1ee2df9e731e72df6ec1774356fb21e5  gcc/testsuite/gdc.test/fail_compilation/ice21060.d
  40cfc62ac063a12983ebf0b7179dc795  gcc/testsuite/gdc.test/fail_compilation/ice21095.d
  1c889102f6cb03a5abd14a55477bd9e0  gcc/testsuite/gdc.test/fail_compilation/ice22377.d
  53849f1b76fa5b798b4ea5844160c304  gcc/testsuite/gdc.test/fail_compilation/ice22516.d
! 1e48f4276f0b7c78ec2ef90c9a2a6409  gcc/testsuite/gdc.test/fail_compilation/ice23097.d
  ffd2b73db2375f964698b9462b32fd71  gcc/testsuite/gdc.test/fail_compilation/ice23564.d
  3a0467bdf1e7de5d4265ef4ec4e885e0  gcc/testsuite/gdc.test/fail_compilation/ice23569.d
  f76434ad232d6834574476947c58a5a5  gcc/testsuite/gdc.test/fail_compilation/ice23781.d
+ 72f38d9d24626c0e08c35abef933532c  gcc/testsuite/gdc.test/fail_compilation/ice23865.d
+ 71b994da1d3847eeca6d07bd32e40717  gcc/testsuite/gdc.test/fail_compilation/ice24188.d
+ d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gdc.test/fail_compilation/ice24188_a/ice24188_c.d
  6d3a822b9364a2575ac0b8aaf63c1e2a  gcc/testsuite/gdc.test/fail_compilation/ice2843.d
  e18518a6aec5268830a299e55c6f25cf  gcc/testsuite/gdc.test/fail_compilation/ice4094.d
  b39d129bd0b8de50d086197b89a483fb  gcc/testsuite/gdc.test/fail_compilation/ice4983.d
  ebfa02fece677d43edcbb1d96bb283d6  gcc/testsuite/gdc.test/fail_compilation/ice5996.d
! 018bf82489225c33730f41d447d7b42e  gcc/testsuite/gdc.test/fail_compilation/ice6538.d
! c7660e81ab366edd1f8ac5f08676a47e  gcc/testsuite/gdc.test/fail_compilation/ice7645.d
  8a8461284a6748b9cb2d36caae3e077b  gcc/testsuite/gdc.test/fail_compilation/ice7782.d
! e455b387fb24472fe5ad1d2ca849c836  gcc/testsuite/gdc.test/fail_compilation/ice8100.d
  b40addef2fa6f0dc9179e06cc7dfc4c6  gcc/testsuite/gdc.test/fail_compilation/ice8309.d
  f1d18a3fe42974d8d7e5230df6193002  gcc/testsuite/gdc.test/fail_compilation/ice8499.d
  853540ed15c640e1f07a123857bdd5e3  gcc/testsuite/gdc.test/fail_compilation/ice8604.d
*************** d4e8397015cc5d6f1e004c0dbd64cd2a  gcc/te
*** 81993,82009 ****
  223503f61ab56f07a89ea8848b5381e8  gcc/testsuite/gdc.test/fail_compilation/ice9254c.d
  c0168cedd088e2e9a5a07f337acc63c3  gcc/testsuite/gdc.test/fail_compilation/ice9273a.d
  c0748d027ca80dcd3c1826ef09692f1e  gcc/testsuite/gdc.test/fail_compilation/ice9273b.d
! 4ab4207341136f2c66f91d255c047732  gcc/testsuite/gdc.test/fail_compilation/ice9284.d
  5c1b7a696de91f0fac6d8de5c8e96d1d  gcc/testsuite/gdc.test/fail_compilation/ice9291.d
  8ee1a73207f2a559dc4eb4319ced5fd5  gcc/testsuite/gdc.test/fail_compilation/ice9338.d
  af5221c169864139df80561cf6490347  gcc/testsuite/gdc.test/fail_compilation/ice9406.d
! ef88160070a6b49812fd6ef7a6061ed4  gcc/testsuite/gdc.test/fail_compilation/ice9439.d
  cdacde04da8f4e538ea5d87654ac8751  gcc/testsuite/gdc.test/fail_compilation/ice9494.d
! c65d13e97ef5cb53a53c31ae51abf7d9  gcc/testsuite/gdc.test/fail_compilation/ice9540.d
  e0d2808adb4bd406595bf16363d64560  gcc/testsuite/gdc.test/fail_compilation/ice9545.d
  a80826c048e9b023fb1e48c619781ee4  gcc/testsuite/gdc.test/fail_compilation/ice9759.d
  73cecf4fc16cfdf696ea6d651d1b445b  gcc/testsuite/gdc.test/fail_compilation/ice9806.d
  f76870122b85e99de4bdd8e6c2b3965e  gcc/testsuite/gdc.test/fail_compilation/ice9865.d
  6231a0ba3e664b8c25737f56d6da08ba  gcc/testsuite/gdc.test/fail_compilation/impconv.d
  0f09c45f294269d31c1afbd83827baf9  gcc/testsuite/gdc.test/fail_compilation/imphint.d
  e7ee3e2640892a91d6abcd48d4ca140c  gcc/testsuite/gdc.test/fail_compilation/imports/a10169.d
--- 90855,90873 ----
  223503f61ab56f07a89ea8848b5381e8  gcc/testsuite/gdc.test/fail_compilation/ice9254c.d
  c0168cedd088e2e9a5a07f337acc63c3  gcc/testsuite/gdc.test/fail_compilation/ice9273a.d
  c0748d027ca80dcd3c1826ef09692f1e  gcc/testsuite/gdc.test/fail_compilation/ice9273b.d
! 2b7f916901da05be763c61b948b713fc  gcc/testsuite/gdc.test/fail_compilation/ice9284.d
  5c1b7a696de91f0fac6d8de5c8e96d1d  gcc/testsuite/gdc.test/fail_compilation/ice9291.d
  8ee1a73207f2a559dc4eb4319ced5fd5  gcc/testsuite/gdc.test/fail_compilation/ice9338.d
  af5221c169864139df80561cf6490347  gcc/testsuite/gdc.test/fail_compilation/ice9406.d
! 3a5c458176895616b71ceb8780fc4150  gcc/testsuite/gdc.test/fail_compilation/ice9439.d
  cdacde04da8f4e538ea5d87654ac8751  gcc/testsuite/gdc.test/fail_compilation/ice9494.d
! d96e53806eb2d646e4403f11241ee13a  gcc/testsuite/gdc.test/fail_compilation/ice9540.d
  e0d2808adb4bd406595bf16363d64560  gcc/testsuite/gdc.test/fail_compilation/ice9545.d
  a80826c048e9b023fb1e48c619781ee4  gcc/testsuite/gdc.test/fail_compilation/ice9759.d
  73cecf4fc16cfdf696ea6d651d1b445b  gcc/testsuite/gdc.test/fail_compilation/ice9806.d
  f76870122b85e99de4bdd8e6c2b3965e  gcc/testsuite/gdc.test/fail_compilation/ice9865.d
+ a19d88e5ae49ee8f10c2b82891ef1f44  gcc/testsuite/gdc.test/fail_compilation/iconv_interface_array.d
+ ea7fd4bb2c23435da6aeae0c60b402a1  gcc/testsuite/gdc.test/fail_compilation/immutable_ctor.d
  6231a0ba3e664b8c25737f56d6da08ba  gcc/testsuite/gdc.test/fail_compilation/impconv.d
  0f09c45f294269d31c1afbd83827baf9  gcc/testsuite/gdc.test/fail_compilation/imphint.d
  e7ee3e2640892a91d6abcd48d4ca140c  gcc/testsuite/gdc.test/fail_compilation/imports/a10169.d
*************** c1d1d74046f5a2e29b3546ad753f2ff9  gcc/te
*** 82108,82120 ****
  4af51f1564b143cbbefcdd992ae0134d  gcc/testsuite/gdc.test/fail_compilation/imports/import15525.d
  e088c9d3f927d47f3540962f20d13d70  gcc/testsuite/gdc.test/fail_compilation/imports/import21508.d
  a2d38efc9b4989e7d9e5aae5a97436e5  gcc/testsuite/gdc.test/fail_compilation/imports/import22857.d
  6f7cfcaba1d8e75474105c4a6e6ef15f  gcc/testsuite/gdc.test/fail_compilation/imports/issue21295ast_node.d
  6c539ca4211f778c4ce881979c32423e  gcc/testsuite/gdc.test/fail_compilation/imports/issue21295astcodegen.d
  a8f0eca5771864b89f31585409956b5a  gcc/testsuite/gdc.test/fail_compilation/imports/issue21295dtemplate.d
  fc301f5f44c3206c0edd89703fd42567  gcc/testsuite/gdc.test/fail_compilation/imports/issue21295visitor.d
! 0fce607bcf838415407dc51f8091ca16  gcc/testsuite/gdc.test/fail_compilation/imports/issue21685.d
  7050a922a432b70a40c214ea289bef81  gcc/testsuite/gdc.test/fail_compilation/imports/pkg313/package.d
  e6eed1d80ee42502c1ad48f433da3aab  gcc/testsuite/gdc.test/fail_compilation/imports/range15788.d
  26ce3a7e280029ded8d832234c97a02f  gcc/testsuite/gdc.test/fail_compilation/imports/spell9644a.d
  d92cbd0e2ba655eba6bd723bdc42176e  gcc/testsuite/gdc.test/fail_compilation/imports/spell9644b.d
  4dc85800ddcc767a21a67c5d0ee021b4  gcc/testsuite/gdc.test/fail_compilation/imports/stdtraits10727.d
--- 90972,90988 ----
  4af51f1564b143cbbefcdd992ae0134d  gcc/testsuite/gdc.test/fail_compilation/imports/import15525.d
  e088c9d3f927d47f3540962f20d13d70  gcc/testsuite/gdc.test/fail_compilation/imports/import21508.d
  a2d38efc9b4989e7d9e5aae5a97436e5  gcc/testsuite/gdc.test/fail_compilation/imports/import22857.d
+ bf4f0df73d4216b68cf1cc35a35d62ce  gcc/testsuite/gdc.test/fail_compilation/imports/import23873.d
  6f7cfcaba1d8e75474105c4a6e6ef15f  gcc/testsuite/gdc.test/fail_compilation/imports/issue21295ast_node.d
  6c539ca4211f778c4ce881979c32423e  gcc/testsuite/gdc.test/fail_compilation/imports/issue21295astcodegen.d
  a8f0eca5771864b89f31585409956b5a  gcc/testsuite/gdc.test/fail_compilation/imports/issue21295dtemplate.d
  fc301f5f44c3206c0edd89703fd42567  gcc/testsuite/gdc.test/fail_compilation/imports/issue21295visitor.d
! fb4734e5718067fcda8bad86723592c8  gcc/testsuite/gdc.test/fail_compilation/imports/issue21685.d
! d479de616f2bdbfd0005e49ca4e3fcd2  gcc/testsuite/gdc.test/fail_compilation/imports/issue23947a.d
  7050a922a432b70a40c214ea289bef81  gcc/testsuite/gdc.test/fail_compilation/imports/pkg313/package.d
  e6eed1d80ee42502c1ad48f433da3aab  gcc/testsuite/gdc.test/fail_compilation/imports/range15788.d
+ bba6c04f01f1cdc512598bd99fb32e71  gcc/testsuite/gdc.test/fail_compilation/imports/spell23908a.d
+ 91974b90575e2bb609bc3987f3f317d2  gcc/testsuite/gdc.test/fail_compilation/imports/spell23908b.d
  26ce3a7e280029ded8d832234c97a02f  gcc/testsuite/gdc.test/fail_compilation/imports/spell9644a.d
  d92cbd0e2ba655eba6bd723bdc42176e  gcc/testsuite/gdc.test/fail_compilation/imports/spell9644b.d
  4dc85800ddcc767a21a67c5d0ee021b4  gcc/testsuite/gdc.test/fail_compilation/imports/stdtraits10727.d
*************** d686a1411e6b3d60b882d4b00df74722  gcc/te
*** 82170,82204 ****
  f23cb0fd3d8eec3ebf2e0c1922bc5dca  gcc/testsuite/gdc.test/fail_compilation/imports/test5412a.d
  e204ad88ee968daaed8e8d39426a553d  gcc/testsuite/gdc.test/fail_compilation/imports/test5412b.d
  4723b74a84cbce02c7ab73c3649dde70  gcc/testsuite/gdc.test/fail_compilation/imports/test64a.d
  6fa3d032ace51698c299d55e536e12df  gcc/testsuite/gdc.test/fail_compilation/isreturnonstack.d
! 9242f94170262e7e055178f7946b2457  gcc/testsuite/gdc.test/fail_compilation/issue12652.d
  fce681bb0ca8dad5487bd5cf765fcdf5  gcc/testsuite/gdc.test/fail_compilation/issue15103.d
! c003026342dc2c4da0594ccb51341bd2  gcc/testsuite/gdc.test/fail_compilation/issue16020.d
! 2f9bc5d5c09e9359050941a93279ef33  gcc/testsuite/gdc.test/fail_compilation/issue20422.d
  c8588a8b31371e3131bc1cc2a02c19cd  gcc/testsuite/gdc.test/fail_compilation/issue20627.d
! a48495a89ed7124cc0f6e4236d722d04  gcc/testsuite/gdc.test/fail_compilation/issue20704.d
  228c0e856fef257f01690c217369e065  gcc/testsuite/gdc.test/fail_compilation/issue21203.d
  e5a789aee346b0176c7893f97233f1f3  gcc/testsuite/gdc.test/fail_compilation/issue21295.d
  aaacbe0abd96d4ce739e14a25d356bbd  gcc/testsuite/gdc.test/fail_compilation/issue21378.d
! 0acc4638d072c88a35d969c43eb7816a  gcc/testsuite/gdc.test/fail_compilation/issue21685_main.d
  05250fe726a80770dd7390818c7b0e6d  gcc/testsuite/gdc.test/fail_compilation/issue22820.d
  7361ba00652a7bb222f77b6d44a96921  gcc/testsuite/gdc.test/fail_compilation/issue22826.d
  04d180b470676e31d8579754e2e55b77  gcc/testsuite/gdc.test/fail_compilation/issue3827.d
! e063db9dd78e2b2cc9abf4e797399c2c  gcc/testsuite/gdc.test/fail_compilation/lexer1.d
! 4d4c303b3d4d2ad597f6da1321158dcb  gcc/testsuite/gdc.test/fail_compilation/lexer2.d
  4983c84ec37388c5dc781b0f173ac8c5  gcc/testsuite/gdc.test/fail_compilation/lexer23465.d
  1b0ba9e5ad50d6b299ef210908b26e3e  gcc/testsuite/gdc.test/fail_compilation/lexer3.d
! 2db3bcb168136bf3c248709150bf76f5  gcc/testsuite/gdc.test/fail_compilation/lexer4.d
  33f5d6db48c660b840a5a69a56079500  gcc/testsuite/gdc.test/fail_compilation/lookup.d
  338c9d9e082bb433d33a8ce50efb3e33  gcc/testsuite/gdc.test/fail_compilation/mangle1.d
  be5e933601ad80e3e77222d915fcb11b  gcc/testsuite/gdc.test/fail_compilation/mangle2.d
  5737030620413877d8b752cc8b00b537  gcc/testsuite/gdc.test/fail_compilation/misc1.d
! 4310dda0761465b6769607f814c960c5  gcc/testsuite/gdc.test/fail_compilation/misc_parser_err_cov1.d
  ecd7a73e2fa554a62e68917642aafebd  gcc/testsuite/gdc.test/fail_compilation/mixin.d
  f96c464b4446946a260985b08542d13f  gcc/testsuite/gdc.test/fail_compilation/mixin_gc.d
  e989bc20ccc902b7b13e1fb834ef6d37  gcc/testsuite/gdc.test/fail_compilation/mixin_template.d
  d50551164659b796b1cc9810a3144d7b  gcc/testsuite/gdc.test/fail_compilation/mixinprop.d
! 9a9e855b3c4e43d0edad873da941ffd5  gcc/testsuite/gdc.test/fail_compilation/mixintype2.d
  fe4d6368a23906f4ace80748ad73d9aa  gcc/testsuite/gdc.test/fail_compilation/moduleundefuda.d
  4d0c974f54ebb51dd423d89afef1d40d  gcc/testsuite/gdc.test/fail_compilation/must_use.d
  73a13c42127f4d58e29376b49e9d9699  gcc/testsuite/gdc.test/fail_compilation/must_use_comma.d
--- 91038,91079 ----
  f23cb0fd3d8eec3ebf2e0c1922bc5dca  gcc/testsuite/gdc.test/fail_compilation/imports/test5412a.d
  e204ad88ee968daaed8e8d39426a553d  gcc/testsuite/gdc.test/fail_compilation/imports/test5412b.d
  4723b74a84cbce02c7ab73c3649dde70  gcc/testsuite/gdc.test/fail_compilation/imports/test64a.d
+ b24a909c06c4775e002b081c0a96f9c7  gcc/testsuite/gdc.test/fail_compilation/interpolatedexpressionsequence_postfix.d
  6fa3d032ace51698c299d55e536e12df  gcc/testsuite/gdc.test/fail_compilation/isreturnonstack.d
! 2ee2ebefb1d14e9d43403c6c860359d8  gcc/testsuite/gdc.test/fail_compilation/issue11070.d
  fce681bb0ca8dad5487bd5cf765fcdf5  gcc/testsuite/gdc.test/fail_compilation/issue15103.d
! 8f86e741ed269d2719fa9d602321d762  gcc/testsuite/gdc.test/fail_compilation/issue16020.d
! 07bc74400179127a583ed61d954e6d7e  gcc/testsuite/gdc.test/fail_compilation/issue20422.d
  c8588a8b31371e3131bc1cc2a02c19cd  gcc/testsuite/gdc.test/fail_compilation/issue20627.d
! d2875d10c258a543f59d109b93dab083  gcc/testsuite/gdc.test/fail_compilation/issue20704.d
  228c0e856fef257f01690c217369e065  gcc/testsuite/gdc.test/fail_compilation/issue21203.d
  e5a789aee346b0176c7893f97233f1f3  gcc/testsuite/gdc.test/fail_compilation/issue21295.d
  aaacbe0abd96d4ce739e14a25d356bbd  gcc/testsuite/gdc.test/fail_compilation/issue21378.d
! 5e735bf467996700e9f93b3e9a3cc62a  gcc/testsuite/gdc.test/fail_compilation/issue21685_main.d
! d49468106948994ead5dcae315f26258  gcc/testsuite/gdc.test/fail_compilation/issue22682.d
  05250fe726a80770dd7390818c7b0e6d  gcc/testsuite/gdc.test/fail_compilation/issue22820.d
  7361ba00652a7bb222f77b6d44a96921  gcc/testsuite/gdc.test/fail_compilation/issue22826.d
+ ef6df1f550d6df9e01d4ed57c279827c  gcc/testsuite/gdc.test/fail_compilation/issue23947.d
+ 97dee56f1a0001f117797fa1402eea1c  gcc/testsuite/gdc.test/fail_compilation/issue3396.d
  04d180b470676e31d8579754e2e55b77  gcc/testsuite/gdc.test/fail_compilation/issue3827.d
! 77a67d4481f814edc69c8149321382ab  gcc/testsuite/gdc.test/fail_compilation/lexer1.d
! a75e40834d3b5aa675ddd5a60e5cd8dc  gcc/testsuite/gdc.test/fail_compilation/lexer2.d
  4983c84ec37388c5dc781b0f173ac8c5  gcc/testsuite/gdc.test/fail_compilation/lexer23465.d
  1b0ba9e5ad50d6b299ef210908b26e3e  gcc/testsuite/gdc.test/fail_compilation/lexer3.d
! 557d677b95a4a0b4e3e7b77d346fa2ff  gcc/testsuite/gdc.test/fail_compilation/lexer4.d
  33f5d6db48c660b840a5a69a56079500  gcc/testsuite/gdc.test/fail_compilation/lookup.d
+ 7ea7a0f4d8242cca72bdd431719ef39c  gcc/testsuite/gdc.test/fail_compilation/main.d
  338c9d9e082bb433d33a8ce50efb3e33  gcc/testsuite/gdc.test/fail_compilation/mangle1.d
  be5e933601ad80e3e77222d915fcb11b  gcc/testsuite/gdc.test/fail_compilation/mangle2.d
+ aa7959bf4f9e4608cf4df558e66bdc0c  gcc/testsuite/gdc.test/fail_compilation/match_func_ptr.d
  5737030620413877d8b752cc8b00b537  gcc/testsuite/gdc.test/fail_compilation/misc1.d
! ccccd32ed2e8accd9fcc4a2ef7f13362  gcc/testsuite/gdc.test/fail_compilation/misc_parser_err_cov1.d
! d64010f18f6634e656c6c13ff79b90bb  gcc/testsuite/gdc.test/fail_compilation/missingbrace.d
  ecd7a73e2fa554a62e68917642aafebd  gcc/testsuite/gdc.test/fail_compilation/mixin.d
  f96c464b4446946a260985b08542d13f  gcc/testsuite/gdc.test/fail_compilation/mixin_gc.d
  e989bc20ccc902b7b13e1fb834ef6d37  gcc/testsuite/gdc.test/fail_compilation/mixin_template.d
  d50551164659b796b1cc9810a3144d7b  gcc/testsuite/gdc.test/fail_compilation/mixinprop.d
! 87fa674a666ec47bd44c4cf89c1dbe9a  gcc/testsuite/gdc.test/fail_compilation/mixintype2.d
  fe4d6368a23906f4ace80748ad73d9aa  gcc/testsuite/gdc.test/fail_compilation/moduleundefuda.d
  4d0c974f54ebb51dd423d89afef1d40d  gcc/testsuite/gdc.test/fail_compilation/must_use.d
  73a13c42127f4d58e29376b49e9d9699  gcc/testsuite/gdc.test/fail_compilation/must_use_comma.d
*************** fe4d6368a23906f4ace80748ad73d9aa  gcc/te
*** 82206,82214 ****
  15d90fcac6117dd6570d4a46b94403c8  gcc/testsuite/gdc.test/fail_compilation/must_use_reserved.d
  3b5523de4749c7d852011ec85e276c84  gcc/testsuite/gdc.test/fail_compilation/must_use_template.d
  58c5aee0e2a980b40b64d7c83f667cb6  gcc/testsuite/gdc.test/fail_compilation/must_use_union.d
! 53319f6bde8a56f7038ece78519f18ed  gcc/testsuite/gdc.test/fail_compilation/named_arguments_error.d
  43f2f6f1138b146d2f2aaa419c6bdf82  gcc/testsuite/gdc.test/fail_compilation/named_arguments_overload.d
! 93a5883fd2e1d9f06ecc5d9ec212b59b  gcc/testsuite/gdc.test/fail_compilation/named_arguments_parse.d
  b47a909efceefac8899d962744b5b318  gcc/testsuite/gdc.test/fail_compilation/nestedtempl0.d
  00d364e25fcaf6b250d8958d34c226a5  gcc/testsuite/gdc.test/fail_compilation/nestedtempl1.d
  009ce5939a45dfaebc026fc5256f08fc  gcc/testsuite/gdc.test/fail_compilation/nestedtempl2.d
--- 91081,91090 ----
  15d90fcac6117dd6570d4a46b94403c8  gcc/testsuite/gdc.test/fail_compilation/must_use_reserved.d
  3b5523de4749c7d852011ec85e276c84  gcc/testsuite/gdc.test/fail_compilation/must_use_template.d
  58c5aee0e2a980b40b64d7c83f667cb6  gcc/testsuite/gdc.test/fail_compilation/must_use_union.d
! bf04ef87b8027acb8f50581fb4915490  gcc/testsuite/gdc.test/fail_compilation/named_arguments_error.d
! c1997d7252348d935e028a0dc482eb28  gcc/testsuite/gdc.test/fail_compilation/named_arguments_ifti_error.d
  43f2f6f1138b146d2f2aaa419c6bdf82  gcc/testsuite/gdc.test/fail_compilation/named_arguments_overload.d
! baaed2045919c182fcb97270c6e46028  gcc/testsuite/gdc.test/fail_compilation/named_arguments_parse.d
  b47a909efceefac8899d962744b5b318  gcc/testsuite/gdc.test/fail_compilation/nestedtempl0.d
  00d364e25fcaf6b250d8958d34c226a5  gcc/testsuite/gdc.test/fail_compilation/nestedtempl1.d
  009ce5939a45dfaebc026fc5256f08fc  gcc/testsuite/gdc.test/fail_compilation/nestedtempl2.d
*************** ab6d443dc3b56b7483fbf6f157f18a25  gcc/te
*** 82218,82231 ****
  03d3eb72cf3b9da1f6f78b59f1503820  gcc/testsuite/gdc.test/fail_compilation/no_TypeInfo.d
  574b4fb906e7841e0b58f09b1448996b  gcc/testsuite/gdc.test/fail_compilation/nogc1.d
  67a29f7c0b0b41a44304a83df22fe69a  gcc/testsuite/gdc.test/fail_compilation/nogc2.d
! 6be4bf22c1f2071c9514459ea9e11180  gcc/testsuite/gdc.test/fail_compilation/nogc3.d
! 355b1c8dd53687b2e1a8eda4bf5839da  gcc/testsuite/gdc.test/fail_compilation/noreturn.d
! d8140f365a7b17fa364fd93df13595ea  gcc/testsuite/gdc.test/fail_compilation/noreturn2.d
  5f0e133c486a33c48c252858bcdd4604  gcc/testsuite/gdc.test/fail_compilation/notype.d
  066d50ff15946cfb273bb4728251cc04  gcc/testsuite/gdc.test/fail_compilation/objc_class2.d
  0bef92b0916af83c7510416cb0b3ecfe  gcc/testsuite/gdc.test/fail_compilation/objc_class3.d
  54c3e40c2f577452e4ffde1fb0db393b  gcc/testsuite/gdc.test/fail_compilation/objc_non_objc_base.d
  f29ce228ce319e1b2b02ce70cc28cb94  gcc/testsuite/gdc.test/fail_compilation/opapplyscope.d
  ac62ca9815f00728734800e1420ea208  gcc/testsuite/gdc.test/fail_compilation/parse12924.d
  3451ecc3952a6be2ac17603d2886c549  gcc/testsuite/gdc.test/fail_compilation/parse12967a.d
  1397d7f706fba402260d692924cfe9e2  gcc/testsuite/gdc.test/fail_compilation/parse12967b.d
--- 91094,91110 ----
  03d3eb72cf3b9da1f6f78b59f1503820  gcc/testsuite/gdc.test/fail_compilation/no_TypeInfo.d
  574b4fb906e7841e0b58f09b1448996b  gcc/testsuite/gdc.test/fail_compilation/nogc1.d
  67a29f7c0b0b41a44304a83df22fe69a  gcc/testsuite/gdc.test/fail_compilation/nogc2.d
! 55b23862afd146ea24bc35b442a23023  gcc/testsuite/gdc.test/fail_compilation/nogc3.d
! c8b4217102e777fe4800029d365d5c18  gcc/testsuite/gdc.test/fail_compilation/noreturn.d
! 7f53fbd7a69df04b73d7c079cf120c6b  gcc/testsuite/gdc.test/fail_compilation/noreturn2.d
! 238e54042ec784d3fd84e6fffecd6916  gcc/testsuite/gdc.test/fail_compilation/noreturn_expr.d
! e6f22eab255ad6a3bc7b96076d62384d  gcc/testsuite/gdc.test/fail_compilation/noreturn_expr2.d
  5f0e133c486a33c48c252858bcdd4604  gcc/testsuite/gdc.test/fail_compilation/notype.d
  066d50ff15946cfb273bb4728251cc04  gcc/testsuite/gdc.test/fail_compilation/objc_class2.d
  0bef92b0916af83c7510416cb0b3ecfe  gcc/testsuite/gdc.test/fail_compilation/objc_class3.d
  54c3e40c2f577452e4ffde1fb0db393b  gcc/testsuite/gdc.test/fail_compilation/objc_non_objc_base.d
  f29ce228ce319e1b2b02ce70cc28cb94  gcc/testsuite/gdc.test/fail_compilation/opapplyscope.d
+ aea4808a62e9273ad201fde0f78939c0  gcc/testsuite/gdc.test/fail_compilation/operator_undefined.d
  ac62ca9815f00728734800e1420ea208  gcc/testsuite/gdc.test/fail_compilation/parse12924.d
  3451ecc3952a6be2ac17603d2886c549  gcc/testsuite/gdc.test/fail_compilation/parse12967a.d
  1397d7f706fba402260d692924cfe9e2  gcc/testsuite/gdc.test/fail_compilation/parse12967b.d
*************** ac62ca9815f00728734800e1420ea208  gcc/te
*** 82233,82246 ****
  50aeae3453219bbff0252ad5b2d61c2d  gcc/testsuite/gdc.test/fail_compilation/parse14285.d
  7344b3e3e6a615822b07b1de18d81899  gcc/testsuite/gdc.test/fail_compilation/parse14745.d
  33ce7ca32a3112a12d1a515a5f9b1958  gcc/testsuite/gdc.test/fail_compilation/parse19277.d
! 94825597661a237c7a89e9ef87a07b21  gcc/testsuite/gdc.test/fail_compilation/parseStc.d
  b776e292ca10ada1f22be845f91295f1  gcc/testsuite/gdc.test/fail_compilation/parseStc2.d
  a24e5adcec9c683ee389ab4bc66da146  gcc/testsuite/gdc.test/fail_compilation/parseStc3.d
  4585f217a5b7f8b8a09b84af0dbe2331  gcc/testsuite/gdc.test/fail_compilation/parseStc4.d
  d5b5218a5830b17dea35dac53b8ca8eb  gcc/testsuite/gdc.test/fail_compilation/parseStc5.d
  43ab37c4d5efd97e06d285a38b720f23  gcc/testsuite/gdc.test/fail_compilation/pragmainline.d
! e49bfec7810167930a92f6d650f222f0  gcc/testsuite/gdc.test/fail_compilation/pragmas.d
! aa094233f53136c8619a243d78d56b1a  gcc/testsuite/gdc.test/fail_compilation/previewin.d
  e9591afbb23d08ca6fcc7528a818e61e  gcc/testsuite/gdc.test/fail_compilation/previewin2.d
  93e29273b61b90ecaf1f9b852538f7ca  gcc/testsuite/gdc.test/fail_compilation/protattr1.d
  39580b47e16e03fa696b3ed195381f0f  gcc/testsuite/gdc.test/fail_compilation/protattr2.d
--- 91112,91125 ----
  50aeae3453219bbff0252ad5b2d61c2d  gcc/testsuite/gdc.test/fail_compilation/parse14285.d
  7344b3e3e6a615822b07b1de18d81899  gcc/testsuite/gdc.test/fail_compilation/parse14745.d
  33ce7ca32a3112a12d1a515a5f9b1958  gcc/testsuite/gdc.test/fail_compilation/parse19277.d
! b236a4b2b3a45112d3bf65c16880b0d1  gcc/testsuite/gdc.test/fail_compilation/parseStc.d
  b776e292ca10ada1f22be845f91295f1  gcc/testsuite/gdc.test/fail_compilation/parseStc2.d
  a24e5adcec9c683ee389ab4bc66da146  gcc/testsuite/gdc.test/fail_compilation/parseStc3.d
  4585f217a5b7f8b8a09b84af0dbe2331  gcc/testsuite/gdc.test/fail_compilation/parseStc4.d
  d5b5218a5830b17dea35dac53b8ca8eb  gcc/testsuite/gdc.test/fail_compilation/parseStc5.d
  43ab37c4d5efd97e06d285a38b720f23  gcc/testsuite/gdc.test/fail_compilation/pragmainline.d
! 09d77fef387a40a2dc7be60ba6549cd4  gcc/testsuite/gdc.test/fail_compilation/pragmas.d
! b859674d06f2f4abedc05ac5d5cf7824  gcc/testsuite/gdc.test/fail_compilation/previewin.d
  e9591afbb23d08ca6fcc7528a818e61e  gcc/testsuite/gdc.test/fail_compilation/previewin2.d
  93e29273b61b90ecaf1f9b852538f7ca  gcc/testsuite/gdc.test/fail_compilation/protattr1.d
  39580b47e16e03fa696b3ed195381f0f  gcc/testsuite/gdc.test/fail_compilation/protattr2.d
*************** e9591afbb23d08ca6fcc7528a818e61e  gcc/te
*** 82248,82281 ****
  f94f5f9027598b10a0c7aa36cd12574d  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test1.d
  0bf06d541fe7a39c966d076eb92cda03  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test2.d
  9d01f4975a479fc715251f6173ce5c4c  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test3.d
! aaf16b2b47d55960cd3ce0a1218b3ac3  gcc/testsuite/gdc.test/fail_compilation/pull12941.d
  3fd870b41855f158c759eee9a2348829  gcc/testsuite/gdc.test/fail_compilation/reg6769.d
! 4b46ee75ca4833c72c162b610a0f18cf  gcc/testsuite/gdc.test/fail_compilation/reserved_version.d
! dab8e6c05b2b1f7cf975a2624fadcc84  gcc/testsuite/gdc.test/fail_compilation/reserved_version_switch.d
  79d64fe25139665f2fbbbde225eef007  gcc/testsuite/gdc.test/fail_compilation/retref2.d
! f0ac4c4fe2c7a4a2b0279df278e8b6f5  gcc/testsuite/gdc.test/fail_compilation/retscope.d
! aef068d72f497a6bbacc7517c6a621ae  gcc/testsuite/gdc.test/fail_compilation/retscope2.d
  a2f171ad836e22fad2ea633dbe12b634  gcc/testsuite/gdc.test/fail_compilation/retscope3.d
  c6c07f896e1602e3555f770e5cb6de5e  gcc/testsuite/gdc.test/fail_compilation/retscope4.d
  e024cf081dccb576f3cc704719ad8a79  gcc/testsuite/gdc.test/fail_compilation/retscope5.d
! f8f6a29733e9e9bfe8bd9ca3c703af18  gcc/testsuite/gdc.test/fail_compilation/retscope6.d
  4e079009624a3abec9e2109e4a5fd577  gcc/testsuite/gdc.test/fail_compilation/safe_gshared.d
  c9b733d0c8306e7d3e07eddfcfc9d5bd  gcc/testsuite/gdc.test/fail_compilation/safe_pointer_index.d
! 04ebc00459c94492ff1769f6fa7b05f7  gcc/testsuite/gdc.test/fail_compilation/scope_class.d
! 7844f07f212a32fbdcd7af5fc71a02e9  gcc/testsuite/gdc.test/fail_compilation/scope_type.d
  1b3bcc3cf24550c5c5e0087208c3a35f  gcc/testsuite/gdc.test/fail_compilation/shared.d
! 1f8678bdbd19a9e3e714df9f783053ce  gcc/testsuite/gdc.test/fail_compilation/skip.d
  b0deda56d15b9fb7160c198b0d3ea6d3  gcc/testsuite/gdc.test/fail_compilation/spell9644.d
! 0ffae6cead9563b1a55aed6c6d6707cd  gcc/testsuite/gdc.test/fail_compilation/staticarrayoverflow.d
  90ac7d4678db81f3059a28545e140e33  gcc/testsuite/gdc.test/fail_compilation/staticassertargs.d
  a5194f219d03f8a765cded6944640601  gcc/testsuite/gdc.test/fail_compilation/staticassertargsfail.d
  1fcc8aaa8f4d74a4f1abe57e47cfd353  gcc/testsuite/gdc.test/fail_compilation/staticforeach1.d
  69da8fec6e17cf06c0720278a97abb96  gcc/testsuite/gdc.test/fail_compilation/staticforeach2.d
  bb6598a0d52b49923b14222dee510692  gcc/testsuite/gdc.test/fail_compilation/staticforeach3.d
  5fc86afe292de65847c2d5b768bc361e  gcc/testsuite/gdc.test/fail_compilation/staticforeach4.d
! 7cfd30303d9dda9af3a3d9738a04688d  gcc/testsuite/gdc.test/fail_compilation/switches.d
! f90f5e987f56787a67ef43659503d463  gcc/testsuite/gdc.test/fail_compilation/systemvariables.d
! 350798e3ce1bc508839f10ef59043167  gcc/testsuite/gdc.test/fail_compilation/systemvariables_deprecation.d
  665e393a379cb60efcf1c4fcbe37c287  gcc/testsuite/gdc.test/fail_compilation/systemvariables_struct.d
  ce0a4f34849b64ff6cb0dd2b094de168  gcc/testsuite/gdc.test/fail_compilation/systemvariables_void_init.d
  b7a63757f57fa7204f4b4be7f1ba3ee1  gcc/testsuite/gdc.test/fail_compilation/template_decl.d
--- 91127,91163 ----
  f94f5f9027598b10a0c7aa36cd12574d  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test1.d
  0bf06d541fe7a39c966d076eb92cda03  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test2.d
  9d01f4975a479fc715251f6173ce5c4c  gcc/testsuite/gdc.test/fail_compilation/protection/subpkg/test3.d
! 1212d725a2750e94bc3024fd678a8831  gcc/testsuite/gdc.test/fail_compilation/pull12941.d
  3fd870b41855f158c759eee9a2348829  gcc/testsuite/gdc.test/fail_compilation/reg6769.d
! 736521678ca678e183c926e923eafcfd  gcc/testsuite/gdc.test/fail_compilation/reserved_version.d
! e108eb65aeeaa94bc8a300f2a08aaff4  gcc/testsuite/gdc.test/fail_compilation/reserved_version_switch.d
  79d64fe25139665f2fbbbde225eef007  gcc/testsuite/gdc.test/fail_compilation/retref2.d
! e99f2b1a88a86e12263cfc8a7f23d349  gcc/testsuite/gdc.test/fail_compilation/retscope.d
! fe5c8bb041755eb1e39853fde78f033b  gcc/testsuite/gdc.test/fail_compilation/retscope2.d
  a2f171ad836e22fad2ea633dbe12b634  gcc/testsuite/gdc.test/fail_compilation/retscope3.d
  c6c07f896e1602e3555f770e5cb6de5e  gcc/testsuite/gdc.test/fail_compilation/retscope4.d
  e024cf081dccb576f3cc704719ad8a79  gcc/testsuite/gdc.test/fail_compilation/retscope5.d
! 5a42e61ddb93d494ba678583d9ed8681  gcc/testsuite/gdc.test/fail_compilation/retscope6.d
  4e079009624a3abec9e2109e4a5fd577  gcc/testsuite/gdc.test/fail_compilation/safe_gshared.d
  c9b733d0c8306e7d3e07eddfcfc9d5bd  gcc/testsuite/gdc.test/fail_compilation/safe_pointer_index.d
! b1afbd31bbf1526499dfe85a03975c14  gcc/testsuite/gdc.test/fail_compilation/scope_class.d
  1b3bcc3cf24550c5c5e0087208c3a35f  gcc/testsuite/gdc.test/fail_compilation/shared.d
! 2fb8cf150b59639669fb11f7cf10f8d6  gcc/testsuite/gdc.test/fail_compilation/skip.d
! 36bf4eec7f81985125965343eaf2ecfb  gcc/testsuite/gdc.test/fail_compilation/spell23908.d
  b0deda56d15b9fb7160c198b0d3ea6d3  gcc/testsuite/gdc.test/fail_compilation/spell9644.d
! 45b7a1ba17937ba4218ee6ce5c82ca8e  gcc/testsuite/gdc.test/fail_compilation/standalone_modctor.d
! ee8f9109e4f16647564a5f23966887c9  gcc/testsuite/gdc.test/fail_compilation/static_import.d
! f1c05d19b803c02f093c899d5610d06f  gcc/testsuite/gdc.test/fail_compilation/staticarrayoverflow.d
  90ac7d4678db81f3059a28545e140e33  gcc/testsuite/gdc.test/fail_compilation/staticassertargs.d
  a5194f219d03f8a765cded6944640601  gcc/testsuite/gdc.test/fail_compilation/staticassertargsfail.d
  1fcc8aaa8f4d74a4f1abe57e47cfd353  gcc/testsuite/gdc.test/fail_compilation/staticforeach1.d
  69da8fec6e17cf06c0720278a97abb96  gcc/testsuite/gdc.test/fail_compilation/staticforeach2.d
  bb6598a0d52b49923b14222dee510692  gcc/testsuite/gdc.test/fail_compilation/staticforeach3.d
  5fc86afe292de65847c2d5b768bc361e  gcc/testsuite/gdc.test/fail_compilation/staticforeach4.d
! 1bd98512e42c6ce1fba6bd2df688ecd9  gcc/testsuite/gdc.test/fail_compilation/switch_skip.d
! 67a38caf5636ad2575e7fc1fd49e5563  gcc/testsuite/gdc.test/fail_compilation/switches.d
! bd48983ecc5f0fc80efc93c85fd2678b  gcc/testsuite/gdc.test/fail_compilation/systemvariables.d
! 6e108eaeaf832143f1647f5f2ebb33b3  gcc/testsuite/gdc.test/fail_compilation/systemvariables_deprecation.d
  665e393a379cb60efcf1c4fcbe37c287  gcc/testsuite/gdc.test/fail_compilation/systemvariables_struct.d
  ce0a4f34849b64ff6cb0dd2b094de168  gcc/testsuite/gdc.test/fail_compilation/systemvariables_void_init.d
  b7a63757f57fa7204f4b4be7f1ba3ee1  gcc/testsuite/gdc.test/fail_compilation/template_decl.d
*************** f0088c8e1a917d9db5a48111639380ae  gcc/te
*** 82292,82298 ****
  01470bdf2abf34f431e989d0f125bcad  gcc/testsuite/gdc.test/fail_compilation/test12558.d
  d3a376056eec3d995dfadab9d07349eb  gcc/testsuite/gdc.test/fail_compilation/test12822.d
  65bf6828b6933ad9338fde788fa23308  gcc/testsuite/gdc.test/fail_compilation/test13152.d
! 1e5bd96f458853c5418b9855dd0f86f4  gcc/testsuite/gdc.test/fail_compilation/test13536.d
  6e5df77b9bbcf8f3f6aba086066048b2  gcc/testsuite/gdc.test/fail_compilation/test13537.d
  eb86a3dc5c2a6e231593c5b6568bbc49  gcc/testsuite/gdc.test/fail_compilation/test13667.d
  e303808b44a49a4ba15b549be2fce8a2  gcc/testsuite/gdc.test/fail_compilation/test13786.d
--- 91174,91180 ----
  01470bdf2abf34f431e989d0f125bcad  gcc/testsuite/gdc.test/fail_compilation/test12558.d
  d3a376056eec3d995dfadab9d07349eb  gcc/testsuite/gdc.test/fail_compilation/test12822.d
  65bf6828b6933ad9338fde788fa23308  gcc/testsuite/gdc.test/fail_compilation/test13152.d
! 40307b9fc1433323a2a1a696f7e63dbf  gcc/testsuite/gdc.test/fail_compilation/test13536.d
  6e5df77b9bbcf8f3f6aba086066048b2  gcc/testsuite/gdc.test/fail_compilation/test13537.d
  eb86a3dc5c2a6e231593c5b6568bbc49  gcc/testsuite/gdc.test/fail_compilation/test13667.d
  e303808b44a49a4ba15b549be2fce8a2  gcc/testsuite/gdc.test/fail_compilation/test13786.d
*************** ae21ef4b026c9303f3b6b7c5bb52701b  gcc/te
*** 82314,82333 ****
  94b6b52023f65f4ac04f78a28068dd29  gcc/testsuite/gdc.test/fail_compilation/test15672.d
  f2e9c5245c8a38d42dd78e38f8a5e42f  gcc/testsuite/gdc.test/fail_compilation/test15703.d
  977db354a89e574f7316667596a484dd  gcc/testsuite/gdc.test/fail_compilation/test15704.d
! e7cfaeae87373af4dc789c7dd690b6ff  gcc/testsuite/gdc.test/fail_compilation/test15785.d
  d1333de570b9babff543dfaf034537b6  gcc/testsuite/gdc.test/fail_compilation/test15785b.d
! 467f5a3369764765b585ebf7edcc64b0  gcc/testsuite/gdc.test/fail_compilation/test15897.d
  9abfc5bd4dee2b4e29f7125683c4cc06  gcc/testsuite/gdc.test/fail_compilation/test15925.d
  34f69908ea5a0909d9fb282d88f4e272  gcc/testsuite/gdc.test/fail_compilation/test15989.d
  d1adfc9174aa950f68215afdfe2e8b10  gcc/testsuite/gdc.test/fail_compilation/test16095.d
  66fc24a8ca5e79401240720959999b8a  gcc/testsuite/gdc.test/fail_compilation/test16116.d
! 8369916ba0127a10bc2f3b91ae78bbc3  gcc/testsuite/gdc.test/fail_compilation/test16188.d
! 6b54960b90a6482cb2d48c1367e3a759  gcc/testsuite/gdc.test/fail_compilation/test16193.d
  7e69c14bf5d6715448a1e70e55ff1e92  gcc/testsuite/gdc.test/fail_compilation/test16195.d
  e5b046140d8851a5d422294abc065485  gcc/testsuite/gdc.test/fail_compilation/test16228.d
  03f0d7df123861dc23fb282e1a4a844f  gcc/testsuite/gdc.test/fail_compilation/test16284.d
! 0fa170a8db5f3a0889e86eecc9b19663  gcc/testsuite/gdc.test/fail_compilation/test16365.d
! 33933620d92be6e81861940d59ca3585  gcc/testsuite/gdc.test/fail_compilation/test16381.d
  1261efe556507f5455a6eb5481b36ef9  gcc/testsuite/gdc.test/fail_compilation/test16495.d
  e0a809992bf27ecb5271695352b3ac48  gcc/testsuite/gdc.test/fail_compilation/test16523.d
  2377981f9d46da4831624a8caf1db7d8  gcc/testsuite/gdc.test/fail_compilation/test16589.d
--- 91196,91215 ----
  94b6b52023f65f4ac04f78a28068dd29  gcc/testsuite/gdc.test/fail_compilation/test15672.d
  f2e9c5245c8a38d42dd78e38f8a5e42f  gcc/testsuite/gdc.test/fail_compilation/test15703.d
  977db354a89e574f7316667596a484dd  gcc/testsuite/gdc.test/fail_compilation/test15704.d
! 2a49e51e373b65eaa0cf8fcd840dd95c  gcc/testsuite/gdc.test/fail_compilation/test15785.d
  d1333de570b9babff543dfaf034537b6  gcc/testsuite/gdc.test/fail_compilation/test15785b.d
! 6361ba506061bf5fe0b331e317df312a  gcc/testsuite/gdc.test/fail_compilation/test15897.d
  9abfc5bd4dee2b4e29f7125683c4cc06  gcc/testsuite/gdc.test/fail_compilation/test15925.d
  34f69908ea5a0909d9fb282d88f4e272  gcc/testsuite/gdc.test/fail_compilation/test15989.d
  d1adfc9174aa950f68215afdfe2e8b10  gcc/testsuite/gdc.test/fail_compilation/test16095.d
  66fc24a8ca5e79401240720959999b8a  gcc/testsuite/gdc.test/fail_compilation/test16116.d
! cb0086a974d8787620600617b26fb1da  gcc/testsuite/gdc.test/fail_compilation/test16188.d
! 3f35de226b3c2c3b6bc6fb5057cca9f0  gcc/testsuite/gdc.test/fail_compilation/test16193.d
  7e69c14bf5d6715448a1e70e55ff1e92  gcc/testsuite/gdc.test/fail_compilation/test16195.d
  e5b046140d8851a5d422294abc065485  gcc/testsuite/gdc.test/fail_compilation/test16228.d
  03f0d7df123861dc23fb282e1a4a844f  gcc/testsuite/gdc.test/fail_compilation/test16284.d
! 9aba14841cc9e0fb2e0857f0bdeaf824  gcc/testsuite/gdc.test/fail_compilation/test16365.d
! de2dfb2d7e110df35a87d33a8ce28669  gcc/testsuite/gdc.test/fail_compilation/test16381.d
  1261efe556507f5455a6eb5481b36ef9  gcc/testsuite/gdc.test/fail_compilation/test16495.d
  e0a809992bf27ecb5271695352b3ac48  gcc/testsuite/gdc.test/fail_compilation/test16523.d
  2377981f9d46da4831624a8caf1db7d8  gcc/testsuite/gdc.test/fail_compilation/test16589.d
*************** e0a809992bf27ecb5271695352b3ac48  gcc/te
*** 82336,82342 ****
  e569dc531cdd60d593b14da3e13af16f  gcc/testsuite/gdc.test/fail_compilation/test17284.d
  5a27a426fc0054795467c4c6257ec60a  gcc/testsuite/gdc.test/fail_compilation/test17307.d
  3b214d273aa841f50cc8a1e86597be18  gcc/testsuite/gdc.test/fail_compilation/test17380.d
! efd0843b440873ba004a989cf895071f  gcc/testsuite/gdc.test/fail_compilation/test17380spec.d
  f61bc9deb751473044d9409319fb74bb  gcc/testsuite/gdc.test/fail_compilation/test17422.d
  d5d139381f270b1126ac7b1aacf81233  gcc/testsuite/gdc.test/fail_compilation/test17423.d
  c0d67198dbf86e2d1c77c70a61959cda  gcc/testsuite/gdc.test/fail_compilation/test17425.d
--- 91218,91224 ----
  e569dc531cdd60d593b14da3e13af16f  gcc/testsuite/gdc.test/fail_compilation/test17284.d
  5a27a426fc0054795467c4c6257ec60a  gcc/testsuite/gdc.test/fail_compilation/test17307.d
  3b214d273aa841f50cc8a1e86597be18  gcc/testsuite/gdc.test/fail_compilation/test17380.d
! 0822e934d4c677c1a8e2509f54c3dbf0  gcc/testsuite/gdc.test/fail_compilation/test17380spec.d
  f61bc9deb751473044d9409319fb74bb  gcc/testsuite/gdc.test/fail_compilation/test17422.d
  d5d139381f270b1126ac7b1aacf81233  gcc/testsuite/gdc.test/fail_compilation/test17423.d
  c0d67198dbf86e2d1c77c70a61959cda  gcc/testsuite/gdc.test/fail_compilation/test17425.d
*************** f79ff08f6a4f8c6756261d3e8abd2c0b  gcc/te
*** 82354,82362 ****
  3dedce972ccebf636e59731359e082a2  gcc/testsuite/gdc.test/fail_compilation/test18130.d
  998848aa62cf82501ad1f7bd28c9e67b  gcc/testsuite/gdc.test/fail_compilation/test18282.d
  a7a660644aa3a898b18641bb0128e405  gcc/testsuite/gdc.test/fail_compilation/test18312.d
! 4d26a540c7d1043abe4bb6052d32b221  gcc/testsuite/gdc.test/fail_compilation/test18385.d
  b1e87e5ca0e90a2ae9b8cded872c77b0  gcc/testsuite/gdc.test/fail_compilation/test18385b.d
! eb13c0e63193ee8c64f5e8544473c951  gcc/testsuite/gdc.test/fail_compilation/test18480.d
  a320c4c03bb5aad9729c7905a574a8a2  gcc/testsuite/gdc.test/fail_compilation/test18484.d
  48c8c1dc147dd27ac280e47d2b545b6a  gcc/testsuite/gdc.test/fail_compilation/test18597.d
  37d894d9ec4b42c2dbf3166de0530bb3  gcc/testsuite/gdc.test/fail_compilation/test18607.d
--- 91236,91244 ----
  3dedce972ccebf636e59731359e082a2  gcc/testsuite/gdc.test/fail_compilation/test18130.d
  998848aa62cf82501ad1f7bd28c9e67b  gcc/testsuite/gdc.test/fail_compilation/test18282.d
  a7a660644aa3a898b18641bb0128e405  gcc/testsuite/gdc.test/fail_compilation/test18312.d
! 3f884432d6887eb6dd7b14e20d0d58a1  gcc/testsuite/gdc.test/fail_compilation/test18385.d
  b1e87e5ca0e90a2ae9b8cded872c77b0  gcc/testsuite/gdc.test/fail_compilation/test18385b.d
! 0172619f1fcb2db65f7f71e1c1c44374  gcc/testsuite/gdc.test/fail_compilation/test18480.d
  a320c4c03bb5aad9729c7905a574a8a2  gcc/testsuite/gdc.test/fail_compilation/test18484.d
  48c8c1dc147dd27ac280e47d2b545b6a  gcc/testsuite/gdc.test/fail_compilation/test18597.d
  37d894d9ec4b42c2dbf3166de0530bb3  gcc/testsuite/gdc.test/fail_compilation/test18607.d
*************** a320c4c03bb5aad9729c7905a574a8a2  gcc/te
*** 82364,82370 ****
  b082b2bf9129db74cd10287209671a96  gcc/testsuite/gdc.test/fail_compilation/test18708.d
  984b16fc115a2ec34207e0d4e75e25df  gcc/testsuite/gdc.test/fail_compilation/test18736.d
  c36393b838073c3c64f3025c22b45aea  gcc/testsuite/gdc.test/fail_compilation/test19097.d
! 70ca9d9c0e3946790cc48e57d110a810  gcc/testsuite/gdc.test/fail_compilation/test19107.d
  966a5125951332c08a39ca7ebbd05c02  gcc/testsuite/gdc.test/fail_compilation/test19112.d
  8fe10b91500fba0e91b654fe48dd3d51  gcc/testsuite/gdc.test/fail_compilation/test19176.d
  f97e2d15a019a647e1e8ce539445f818  gcc/testsuite/gdc.test/fail_compilation/test19193.d
--- 91246,91252 ----
  b082b2bf9129db74cd10287209671a96  gcc/testsuite/gdc.test/fail_compilation/test18708.d
  984b16fc115a2ec34207e0d4e75e25df  gcc/testsuite/gdc.test/fail_compilation/test18736.d
  c36393b838073c3c64f3025c22b45aea  gcc/testsuite/gdc.test/fail_compilation/test19097.d
! 8f4db2f73a1402a4fd745123a5b70657  gcc/testsuite/gdc.test/fail_compilation/test19107.d
  966a5125951332c08a39ca7ebbd05c02  gcc/testsuite/gdc.test/fail_compilation/test19112.d
  8fe10b91500fba0e91b654fe48dd3d51  gcc/testsuite/gdc.test/fail_compilation/test19176.d
  f97e2d15a019a647e1e8ce539445f818  gcc/testsuite/gdc.test/fail_compilation/test19193.d
*************** b10055535f91e5f4101a27318f808c5e  gcc/te
*** 82372,82398 ****
  67abd3b15509154f2ad168138e069892  gcc/testsuite/gdc.test/fail_compilation/test19608.d
  873afea393d5e93c44a340dc0235e641  gcc/testsuite/gdc.test/fail_compilation/test19646.d
  606379c092762843ab10257254f91d9b  gcc/testsuite/gdc.test/fail_compilation/test19661.d
! 34e81e64d83e9bfdbbdf48642119d09a  gcc/testsuite/gdc.test/fail_compilation/test19971.d
  38ecb4a91c2ce2571d77866385a588c9  gcc/testsuite/gdc.test/fail_compilation/test20023.d
  bdc93bd17024fd4d46de7909ff405a11  gcc/testsuite/gdc.test/fail_compilation/test20096.d
  989f382db1d361c966fe47d4b8205d23  gcc/testsuite/gdc.test/fail_compilation/test20149.d
! c8528ec9e54c9996c5cd8c8a2de81905  gcc/testsuite/gdc.test/fail_compilation/test20245.d
  710c352c31a4baca536f7bfad2a41d05  gcc/testsuite/gdc.test/fail_compilation/test20267.d
  d5c3623a103182544da82c93b4634f62  gcc/testsuite/gdc.test/fail_compilation/test20324.d
  67055ecd3df8ca389c004a12d2eb7d68  gcc/testsuite/gdc.test/fail_compilation/test20383.d
  384652f7c502f0235624ad7b7ea50a47  gcc/testsuite/gdc.test/fail_compilation/test20515.d
  48bcc8fd7476f9cac9ceb53d9556bc32  gcc/testsuite/gdc.test/fail_compilation/test20549.d
  c20d2e44234601fb7a1e6695ac301613  gcc/testsuite/gdc.test/fail_compilation/test20565.d
  5238f996ed59dccb8410825f4ead764e  gcc/testsuite/gdc.test/fail_compilation/test20569.d
  4eafc9affda83afce6c0cc4694dd75d6  gcc/testsuite/gdc.test/fail_compilation/test20610.d
  4b52d7823af93d96b42262173304ca1a  gcc/testsuite/gdc.test/fail_compilation/test20626.d
  e39aff32106ef1915eaef833c26044c1  gcc/testsuite/gdc.test/fail_compilation/test20696.d
  96dfa1442895d72adea2b502247d7cd7  gcc/testsuite/gdc.test/fail_compilation/test20719.d
  691a5f683d3bf7ab67ca4fe2fd073b34  gcc/testsuite/gdc.test/fail_compilation/test20809.d
  5f15336de0fc91767e8b405dade1fc2a  gcc/testsuite/gdc.test/fail_compilation/test20881.d
  b63d81d149ced101cc0047fccfbfbff2  gcc/testsuite/gdc.test/fail_compilation/test20919.d
  0c8c75b5c031c7465027a71326076749  gcc/testsuite/gdc.test/fail_compilation/test20998.d
! 039a3a02f4d0f9e829989467c543961d  gcc/testsuite/gdc.test/fail_compilation/test21008.d
  ac25466748e602667eee66983bb3fcb5  gcc/testsuite/gdc.test/fail_compilation/test21062.d
  4aaee6ae450926eaa1c6fa5de9532424  gcc/testsuite/gdc.test/fail_compilation/test21093.d
  d8c21eba428e3edf7da0a7b88431229b  gcc/testsuite/gdc.test/fail_compilation/test21096.d
--- 91254,91283 ----
  67abd3b15509154f2ad168138e069892  gcc/testsuite/gdc.test/fail_compilation/test19608.d
  873afea393d5e93c44a340dc0235e641  gcc/testsuite/gdc.test/fail_compilation/test19646.d
  606379c092762843ab10257254f91d9b  gcc/testsuite/gdc.test/fail_compilation/test19661.d
! 25040339d078cd0bf092f7f3e51cecc7  gcc/testsuite/gdc.test/fail_compilation/test19971.d
  38ecb4a91c2ce2571d77866385a588c9  gcc/testsuite/gdc.test/fail_compilation/test20023.d
  bdc93bd17024fd4d46de7909ff405a11  gcc/testsuite/gdc.test/fail_compilation/test20096.d
  989f382db1d361c966fe47d4b8205d23  gcc/testsuite/gdc.test/fail_compilation/test20149.d
! 9f0a1d2fba0fbadc60708e9351872c1c  gcc/testsuite/gdc.test/fail_compilation/test20245.d
  710c352c31a4baca536f7bfad2a41d05  gcc/testsuite/gdc.test/fail_compilation/test20267.d
  d5c3623a103182544da82c93b4634f62  gcc/testsuite/gdc.test/fail_compilation/test20324.d
  67055ecd3df8ca389c004a12d2eb7d68  gcc/testsuite/gdc.test/fail_compilation/test20383.d
  384652f7c502f0235624ad7b7ea50a47  gcc/testsuite/gdc.test/fail_compilation/test20515.d
+ 1a3b469b9f542cf3d9173ca77bd3777a  gcc/testsuite/gdc.test/fail_compilation/test20522.d
  48bcc8fd7476f9cac9ceb53d9556bc32  gcc/testsuite/gdc.test/fail_compilation/test20549.d
  c20d2e44234601fb7a1e6695ac301613  gcc/testsuite/gdc.test/fail_compilation/test20565.d
  5238f996ed59dccb8410825f4ead764e  gcc/testsuite/gdc.test/fail_compilation/test20569.d
  4eafc9affda83afce6c0cc4694dd75d6  gcc/testsuite/gdc.test/fail_compilation/test20610.d
  4b52d7823af93d96b42262173304ca1a  gcc/testsuite/gdc.test/fail_compilation/test20626.d
+ e07b24bbcec05454221d6ddbf7e0883c  gcc/testsuite/gdc.test/fail_compilation/test20655.d
  e39aff32106ef1915eaef833c26044c1  gcc/testsuite/gdc.test/fail_compilation/test20696.d
  96dfa1442895d72adea2b502247d7cd7  gcc/testsuite/gdc.test/fail_compilation/test20719.d
  691a5f683d3bf7ab67ca4fe2fd073b34  gcc/testsuite/gdc.test/fail_compilation/test20809.d
  5f15336de0fc91767e8b405dade1fc2a  gcc/testsuite/gdc.test/fail_compilation/test20881.d
  b63d81d149ced101cc0047fccfbfbff2  gcc/testsuite/gdc.test/fail_compilation/test20919.d
  0c8c75b5c031c7465027a71326076749  gcc/testsuite/gdc.test/fail_compilation/test20998.d
! a90917d34352a06426f399bae530c5b1  gcc/testsuite/gdc.test/fail_compilation/test21008.d
! 2633a9ffa9ab4b316936098df4b94a62  gcc/testsuite/gdc.test/fail_compilation/test21025.d
  ac25466748e602667eee66983bb3fcb5  gcc/testsuite/gdc.test/fail_compilation/test21062.d
  4aaee6ae450926eaa1c6fa5de9532424  gcc/testsuite/gdc.test/fail_compilation/test21093.d
  d8c21eba428e3edf7da0a7b88431229b  gcc/testsuite/gdc.test/fail_compilation/test21096.d
*************** d8c21eba428e3edf7da0a7b88431229b  gcc/te
*** 82402,82408 ****
  f0d66ee58e1deca85dd1a5c6be72e0fe  gcc/testsuite/gdc.test/fail_compilation/test21246.d
  2fce247ddc6adc1e84f449d7761cc302  gcc/testsuite/gdc.test/fail_compilation/test21259.d
  0eab8d2a17e3211f93dc6c87bf3f5d8c  gcc/testsuite/gdc.test/fail_compilation/test21319.d
! 51deaefc23e5419bce319caa9f692ca8  gcc/testsuite/gdc.test/fail_compilation/test21353.d
  a3522f54348a3c5f14028c34c44f5884  gcc/testsuite/gdc.test/fail_compilation/test21380.d
  ec3a327e60b99c4b5c8c64c7ec034e09  gcc/testsuite/gdc.test/fail_compilation/test21443.d
  6dabe8de5e4bd17a89063b4c1c944ca1  gcc/testsuite/gdc.test/fail_compilation/test21477.d
--- 91287,91293 ----
  f0d66ee58e1deca85dd1a5c6be72e0fe  gcc/testsuite/gdc.test/fail_compilation/test21246.d
  2fce247ddc6adc1e84f449d7761cc302  gcc/testsuite/gdc.test/fail_compilation/test21259.d
  0eab8d2a17e3211f93dc6c87bf3f5d8c  gcc/testsuite/gdc.test/fail_compilation/test21319.d
! ad28f1ade07eee78214d73c592d30316  gcc/testsuite/gdc.test/fail_compilation/test21353.d
  a3522f54348a3c5f14028c34c44f5884  gcc/testsuite/gdc.test/fail_compilation/test21380.d
  ec3a327e60b99c4b5c8c64c7ec034e09  gcc/testsuite/gdc.test/fail_compilation/test21443.d
  6dabe8de5e4bd17a89063b4c1c944ca1  gcc/testsuite/gdc.test/fail_compilation/test21477.d
*************** d89c86b00de50c0eff1176ba2eac046a  gcc/te
*** 82410,82426 ****
  32963db1864d8e88864b2bc3b4a00399  gcc/testsuite/gdc.test/fail_compilation/test21546.d
  71e1aa25aaa777c4eef2e9d4c47f72c0  gcc/testsuite/gdc.test/fail_compilation/test21651.d
  967e6942f456ba08f47523edd20fff22  gcc/testsuite/gdc.test/fail_compilation/test21665.d
! 135b6f0d46b59693d5057115b41c7d0b  gcc/testsuite/gdc.test/fail_compilation/test21807.d
! e67685204074d91d1f6039910f11db87  gcc/testsuite/gdc.test/fail_compilation/test21912.d
  3d30a4f2bab190433f516628a982fbf6  gcc/testsuite/gdc.test/fail_compilation/test21927.d
  00c0a23be93838d8f2a86c097d340a13  gcc/testsuite/gdc.test/fail_compilation/test21930.d
  2545aae5fda6db5d0b2a471741205137  gcc/testsuite/gdc.test/fail_compilation/test21939.d
  7737d71c94d6416d1a8f6f5b58d44304  gcc/testsuite/gdc.test/fail_compilation/test22023.d
! 7caa8b8c863029f2390235af67a58b67  gcc/testsuite/gdc.test/fail_compilation/test22048.d
  c3299f61c19c19fa7d2fa91058e498c6  gcc/testsuite/gdc.test/fail_compilation/test22145.d
  b26bef555817a24ae4467d7dc0636c50  gcc/testsuite/gdc.test/fail_compilation/test22227.d
  72542ae3b6eec0b354faccf5f89e9e9b  gcc/testsuite/gdc.test/fail_compilation/test22298.d
! 24d0c61c3bfc25b9e3354787b83bee35  gcc/testsuite/gdc.test/fail_compilation/test22329.d
  acdee90e75d19aa3146056d4a0ea124a  gcc/testsuite/gdc.test/fail_compilation/test22361.d
  7171ffb25dfbfb58138adc21ba50dc84  gcc/testsuite/gdc.test/fail_compilation/test22541.d
  cf139945245bb017eb805da3ff7c09a1  gcc/testsuite/gdc.test/fail_compilation/test22574.d
--- 91295,91311 ----
  32963db1864d8e88864b2bc3b4a00399  gcc/testsuite/gdc.test/fail_compilation/test21546.d
  71e1aa25aaa777c4eef2e9d4c47f72c0  gcc/testsuite/gdc.test/fail_compilation/test21651.d
  967e6942f456ba08f47523edd20fff22  gcc/testsuite/gdc.test/fail_compilation/test21665.d
! 134c62157e30891fb9a43a58e55cf004  gcc/testsuite/gdc.test/fail_compilation/test21807.d
! 7874833aeeddda7bc57e505ee34c5015  gcc/testsuite/gdc.test/fail_compilation/test21912.d
  3d30a4f2bab190433f516628a982fbf6  gcc/testsuite/gdc.test/fail_compilation/test21927.d
  00c0a23be93838d8f2a86c097d340a13  gcc/testsuite/gdc.test/fail_compilation/test21930.d
  2545aae5fda6db5d0b2a471741205137  gcc/testsuite/gdc.test/fail_compilation/test21939.d
  7737d71c94d6416d1a8f6f5b58d44304  gcc/testsuite/gdc.test/fail_compilation/test22023.d
! 5366496a6a0fd2d561086698bcd1e630  gcc/testsuite/gdc.test/fail_compilation/test22048.d
  c3299f61c19c19fa7d2fa91058e498c6  gcc/testsuite/gdc.test/fail_compilation/test22145.d
  b26bef555817a24ae4467d7dc0636c50  gcc/testsuite/gdc.test/fail_compilation/test22227.d
  72542ae3b6eec0b354faccf5f89e9e9b  gcc/testsuite/gdc.test/fail_compilation/test22298.d
! 1e0bd71c5a739a3c07930432279a845f  gcc/testsuite/gdc.test/fail_compilation/test22329.d
  acdee90e75d19aa3146056d4a0ea124a  gcc/testsuite/gdc.test/fail_compilation/test22361.d
  7171ffb25dfbfb58138adc21ba50dc84  gcc/testsuite/gdc.test/fail_compilation/test22541.d
  cf139945245bb017eb805da3ff7c09a1  gcc/testsuite/gdc.test/fail_compilation/test22574.d
*************** ae0cd305d2c663e0e5f1c5a00774996d  gcc/te
*** 82434,82449 ****
  f913115e93868e9a78c9fa781674f313  gcc/testsuite/gdc.test/fail_compilation/test23017.d
  cc99e7ac187b614a799fc18a4f093fc5  gcc/testsuite/gdc.test/fail_compilation/test23022.d
  1a168a9cd9ae39f96117efa1c9774379  gcc/testsuite/gdc.test/fail_compilation/test23073.d
! f7839bb32e158ead5541159187e80c62  gcc/testsuite/gdc.test/fail_compilation/test23112.d
  0ec75b327b00e3e5424c6dd33ada45ad  gcc/testsuite/gdc.test/fail_compilation/test23159.d
  085297059a3feacd1fe0e893b7abf682  gcc/testsuite/gdc.test/fail_compilation/test23170.d
  d58332efc531ae33e2a3c63d48550216  gcc/testsuite/gdc.test/fail_compilation/test23216.d
  c310fec3ac59c001bba83a0b01d7dab7  gcc/testsuite/gdc.test/fail_compilation/test23491.d
  e010725215b2db70af4d945e37f73a50  gcc/testsuite/gdc.test/fail_compilation/test23536.d
  7fca868961c1d88268606a371d908245  gcc/testsuite/gdc.test/fail_compilation/test23552.d
  804d31f68030f5ac99db7e8484050952  gcc/testsuite/gdc.test/fail_compilation/test23607.d
  ca88c6d83d577719b18fb9894af05c0a  gcc/testsuite/gdc.test/fail_compilation/test23674.d
  e894966fad5273a970aa51420ce2b993  gcc/testsuite/gdc.test/fail_compilation/test23710.d
  2dddb119548b8d219ecb2aed67590d4b  gcc/testsuite/gdc.test/fail_compilation/test314.d
  4917bf7731fa8cfa0e714e8761b5e241  gcc/testsuite/gdc.test/fail_compilation/test3818.d
  465b130426028cac7c9bb32cf2f4fdee  gcc/testsuite/gdc.test/fail_compilation/test4682.d
--- 91319,91350 ----
  f913115e93868e9a78c9fa781674f313  gcc/testsuite/gdc.test/fail_compilation/test23017.d
  cc99e7ac187b614a799fc18a4f093fc5  gcc/testsuite/gdc.test/fail_compilation/test23022.d
  1a168a9cd9ae39f96117efa1c9774379  gcc/testsuite/gdc.test/fail_compilation/test23073.d
! dbbf6bbfe1cf0dc3531815f0d13b207e  gcc/testsuite/gdc.test/fail_compilation/test23112.d
  0ec75b327b00e3e5424c6dd33ada45ad  gcc/testsuite/gdc.test/fail_compilation/test23159.d
  085297059a3feacd1fe0e893b7abf682  gcc/testsuite/gdc.test/fail_compilation/test23170.d
  d58332efc531ae33e2a3c63d48550216  gcc/testsuite/gdc.test/fail_compilation/test23216.d
+ 82b9d1efc70e38367a42d7ba6e74b60c  gcc/testsuite/gdc.test/fail_compilation/test23279.d
  c310fec3ac59c001bba83a0b01d7dab7  gcc/testsuite/gdc.test/fail_compilation/test23491.d
  e010725215b2db70af4d945e37f73a50  gcc/testsuite/gdc.test/fail_compilation/test23536.d
  7fca868961c1d88268606a371d908245  gcc/testsuite/gdc.test/fail_compilation/test23552.d
  804d31f68030f5ac99db7e8484050952  gcc/testsuite/gdc.test/fail_compilation/test23607.d
  ca88c6d83d577719b18fb9894af05c0a  gcc/testsuite/gdc.test/fail_compilation/test23674.d
  e894966fad5273a970aa51420ce2b993  gcc/testsuite/gdc.test/fail_compilation/test23710.d
+ f4e89a6307cbf7326a8ff6901235b1ec  gcc/testsuite/gdc.test/fail_compilation/test23786.d
+ 5209c87c1d5584455c44d956b50d3e45  gcc/testsuite/gdc.test/fail_compilation/test23873.d
+ 38e2108be478c073ae00746d9a169568  gcc/testsuite/gdc.test/fail_compilation/test23882.d
+ 1a38affdee4084ec23e995b911bb16a8  gcc/testsuite/gdc.test/fail_compilation/test23905.d
+ 69b315a59fa922c94a64c3b2186a7d95  gcc/testsuite/gdc.test/fail_compilation/test23968.d
+ ecb5e02ba234cd1c4085e833c6919251  gcc/testsuite/gdc.test/fail_compilation/test23982.d
+ 15f0fa56c08c009ca68aad3fa5dc7532  gcc/testsuite/gdc.test/fail_compilation/test24015.d
+ 6dc0b1e72b105775cba05b5a365fa6c2  gcc/testsuite/gdc.test/fail_compilation/test24036.d
+ 4c5b4a85d7b46a69b59e62899aa5add0  gcc/testsuite/gdc.test/fail_compilation/test24065.d
+ 705cd9a65a73c5af60239830b92fea91  gcc/testsuite/gdc.test/fail_compilation/test24084.d
+ cc41e8d4f1cad67ff1bf2aec36d096da  gcc/testsuite/gdc.test/fail_compilation/test24110.d
+ 14870badd278a51ab882abb61fdb2fcb  gcc/testsuite/gdc.test/fail_compilation/test24157.d
+ 6f1c6290717f99af3bff7bd3c0ff19e5  gcc/testsuite/gdc.test/fail_compilation/test24159.d
+ 66a8d328c153120399b34b9d865012ae  gcc/testsuite/gdc.test/fail_compilation/test24295.d
+ a3ffce63da1daba89c1a287fa30bd6c5  gcc/testsuite/gdc.test/fail_compilation/test24365.d
  2dddb119548b8d219ecb2aed67590d4b  gcc/testsuite/gdc.test/fail_compilation/test314.d
  4917bf7731fa8cfa0e714e8761b5e241  gcc/testsuite/gdc.test/fail_compilation/test3818.d
  465b130426028cac7c9bb32cf2f4fdee  gcc/testsuite/gdc.test/fail_compilation/test4682.d
*************** e5c1326640ea3425f6b79d83f241800c  gcc/te
*** 82461,82477 ****
  ec4dab98798d55fe2c57ec7dd6dca969  gcc/testsuite/gdc.test/fail_compilation/test8751.d
  9987979df64ce091d9dfc23c6d91f4c9  gcc/testsuite/gdc.test/fail_compilation/test9150.d
  34ae587b738bae66fe38677dce368618  gcc/testsuite/gdc.test/fail_compilation/test9176.d
! a09457a5389a6b79f583244a35add7aa  gcc/testsuite/gdc.test/fail_compilation/test9701.d
  0c45d5260200ba8418599d073e757dc5  gcc/testsuite/gdc.test/fail_compilation/test9701b.d
  72dfa3f018a5d4d774824c2ba1113dbc  gcc/testsuite/gdc.test/fail_compilation/testCols.d
! ffa6d1bb5e4d903cd4438a013f4d9c56  gcc/testsuite/gdc.test/fail_compilation/testInference.d
! fd0ecef833524850930d84c7d0e51cc1  gcc/testsuite/gdc.test/fail_compilation/testOpApply.d
  585cd3369b1d02b241f3a50fd0738734  gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d
! aa7f041aa8deebe034402316bdd46ac3  gcc/testsuite/gdc.test/fail_compilation/testpull1810.d
! b4457e15210c604c830617156b0edeb9  gcc/testsuite/gdc.test/fail_compilation/testrvaluecpctor.d
  9f45e8c9c9f3a0129841f68bfdab000d  gcc/testsuite/gdc.test/fail_compilation/testscopestatic.d
! 97ca7691202e4166c01b464dff82d800  gcc/testsuite/gdc.test/fail_compilation/testsemi.d
  816faf898559acd08b5d122dfc17dd89  gcc/testsuite/gdc.test/fail_compilation/throwexp.d
  57c72c41fa070966229a8558b833873a  gcc/testsuite/gdc.test/fail_compilation/trait_loc_err.d
  3cd67c281e7569394eb1c1c3ebd7f1f9  gcc/testsuite/gdc.test/fail_compilation/trait_loc_ov_err.d
  67aacd5eca9640d19610c73418a109e1  gcc/testsuite/gdc.test/fail_compilation/traits.d
--- 91362,91378 ----
  ec4dab98798d55fe2c57ec7dd6dca969  gcc/testsuite/gdc.test/fail_compilation/test8751.d
  9987979df64ce091d9dfc23c6d91f4c9  gcc/testsuite/gdc.test/fail_compilation/test9150.d
  34ae587b738bae66fe38677dce368618  gcc/testsuite/gdc.test/fail_compilation/test9176.d
! 52d9b83392589d6bdf1fd43ad1236fe0  gcc/testsuite/gdc.test/fail_compilation/test9701.d
  0c45d5260200ba8418599d073e757dc5  gcc/testsuite/gdc.test/fail_compilation/test9701b.d
  72dfa3f018a5d4d774824c2ba1113dbc  gcc/testsuite/gdc.test/fail_compilation/testCols.d
! 1d721c997178957250390d679f9aa054  gcc/testsuite/gdc.test/fail_compilation/testInference.d
! 728f0e80a21aa21af1ca35ac0dd223c9  gcc/testsuite/gdc.test/fail_compilation/testOpApply.d
  585cd3369b1d02b241f3a50fd0738734  gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d
! e3a49e0f83829ecf8f9f7d5da876f8fe  gcc/testsuite/gdc.test/fail_compilation/testrvaluecpctor.d
  9f45e8c9c9f3a0129841f68bfdab000d  gcc/testsuite/gdc.test/fail_compilation/testscopestatic.d
! 2052cfad5c440607a61fb5672625c7f8  gcc/testsuite/gdc.test/fail_compilation/testsemi.d
  816faf898559acd08b5d122dfc17dd89  gcc/testsuite/gdc.test/fail_compilation/throwexp.d
+ 04d5dfb2f3b9742e94a950ba94b0018f  gcc/testsuite/gdc.test/fail_compilation/tolvalue.d
  57c72c41fa070966229a8558b833873a  gcc/testsuite/gdc.test/fail_compilation/trait_loc_err.d
  3cd67c281e7569394eb1c1c3ebd7f1f9  gcc/testsuite/gdc.test/fail_compilation/trait_loc_ov_err.d
  67aacd5eca9640d19610c73418a109e1  gcc/testsuite/gdc.test/fail_compilation/traits.d
*************** b4457e15210c604c830617156b0edeb9  gcc/te
*** 82479,82495 ****
  48edd3c9ac39fcd89bdb6d21b1e2ae3a  gcc/testsuite/gdc.test/fail_compilation/traits_child.d
  f4314476b27b3e9b55a576b20be59974  gcc/testsuite/gdc.test/fail_compilation/traits_initSymbol.d
  1c9eecd3fd98dda6bd34752b508a13f9  gcc/testsuite/gdc.test/fail_compilation/traits_parameters.d
! 4b7156e088cb5a3776ae1a45428b8388  gcc/testsuite/gdc.test/fail_compilation/typeerrors.d
! eabad4acc06c0b1eac63c93dc14af02a  gcc/testsuite/gdc.test/fail_compilation/udaparams.d
  de7caecb66362ee03a66fee21b75bcb7  gcc/testsuite/gdc.test/fail_compilation/udatypes.d
  67eb83542917456871c84000d16d3890  gcc/testsuite/gdc.test/fail_compilation/union_initialization.d
! 5c3640f56239722f872b3e454d87b4a1  gcc/testsuite/gdc.test/fail_compilation/vararg2.d
  a5e1eb3ac7aaf3012f9d0340e4173761  gcc/testsuite/gdc.test/fail_compilation/varargsstc.d
  d073fa782699e4eb73e51cbd5828d23f  gcc/testsuite/gdc.test/fail_compilation/verifyhookexist.d
  e9b76ed9d6ac70bc2a0374b247c4d24b  gcc/testsuite/gdc.test/fail_compilation/verrors0.d
  0f994645f171fee35d3e36e19e9214b2  gcc/testsuite/gdc.test/fail_compilation/verrors5.d
! c01b8ab1ddcc5ec29c1654508ee12618  gcc/testsuite/gdc.test/fail_compilation/warn12809.d
! 2f5bd0e5051d939990f8abf297455f0a  gcc/testsuite/gdc.test/fail_compilation/warn13679.d
  a33a1bbd8f6bddfcc1f780250c789cc7  gcc/testsuite/gdc.test/fail_compilation/warn7444.d
  ba48bb410e12885cc62cfe4376b90e24  gcc/testsuite/gdc.test/fail_compilation/widechars.d
  841112e1863eea2302fe0d1e8203cccd  gcc/testsuite/gdc.test/fail_compilation/xmmslice.d
--- 91380,91399 ----
  48edd3c9ac39fcd89bdb6d21b1e2ae3a  gcc/testsuite/gdc.test/fail_compilation/traits_child.d
  f4314476b27b3e9b55a576b20be59974  gcc/testsuite/gdc.test/fail_compilation/traits_initSymbol.d
  1c9eecd3fd98dda6bd34752b508a13f9  gcc/testsuite/gdc.test/fail_compilation/traits_parameters.d
! 9324e77b6289c00afbb52764b60f2660  gcc/testsuite/gdc.test/fail_compilation/typeerrors.d
! d247e752a5282607d5426300a1cc05d8  gcc/testsuite/gdc.test/fail_compilation/udaparams.d
  de7caecb66362ee03a66fee21b75bcb7  gcc/testsuite/gdc.test/fail_compilation/udatypes.d
+ f7c813085706d01a946e9765e51e6d5a  gcc/testsuite/gdc.test/fail_compilation/ufcs.d
  67eb83542917456871c84000d16d3890  gcc/testsuite/gdc.test/fail_compilation/union_initialization.d
! 8c86803da224d87ddaa0fa1a75bf5bcc  gcc/testsuite/gdc.test/fail_compilation/unmatchedbrace.d
! 574a477f29f8cfcd1a37ae2692b4b1d9  gcc/testsuite/gdc.test/fail_compilation/var_func_attr.d
! a2fa270bd63d37be3604092ee063abdb  gcc/testsuite/gdc.test/fail_compilation/vararg2.d
  a5e1eb3ac7aaf3012f9d0340e4173761  gcc/testsuite/gdc.test/fail_compilation/varargsstc.d
+ 8437920cfdf5995ccf08a1ad910b2bc8  gcc/testsuite/gdc.test/fail_compilation/vector_cast.d
  d073fa782699e4eb73e51cbd5828d23f  gcc/testsuite/gdc.test/fail_compilation/verifyhookexist.d
  e9b76ed9d6ac70bc2a0374b247c4d24b  gcc/testsuite/gdc.test/fail_compilation/verrors0.d
  0f994645f171fee35d3e36e19e9214b2  gcc/testsuite/gdc.test/fail_compilation/verrors5.d
! d3ae78de4bb864f85b1110bd31085d76  gcc/testsuite/gdc.test/fail_compilation/warn13679.d
  a33a1bbd8f6bddfcc1f780250c789cc7  gcc/testsuite/gdc.test/fail_compilation/warn7444.d
  ba48bb410e12885cc62cfe4376b90e24  gcc/testsuite/gdc.test/fail_compilation/widechars.d
  841112e1863eea2302fe0d1e8203cccd  gcc/testsuite/gdc.test/fail_compilation/xmmslice.d
*************** f6631e1e1a3e934a040544d898e79e18  gcc/te
*** 82500,82506 ****
  7ab5a8b174d6dfc11178bbe5b91fc453  gcc/testsuite/gdc.test/runnable/a19.d
  134d96ee56c5082feabf729df7cd964e  gcc/testsuite/gdc.test/runnable/a21.d
  e615ecc1d7b37de2af54470f3338598c  gcc/testsuite/gdc.test/runnable/aliasassign.d
! b00c6194395918097c4cb3c6a440d5ef  gcc/testsuite/gdc.test/runnable/aliasthis.d
  f3a2bbb7a464d93f63ab0326b83fa7ab  gcc/testsuite/gdc.test/runnable/arrayop.d
  4fcc9ce7ecc0df34147cd85b65cb05da  gcc/testsuite/gdc.test/runnable/auto1.d
  3de44536ba2ca82e220dcd6a0a086dce  gcc/testsuite/gdc.test/runnable/b10562.d
--- 91404,91410 ----
  7ab5a8b174d6dfc11178bbe5b91fc453  gcc/testsuite/gdc.test/runnable/a19.d
  134d96ee56c5082feabf729df7cd964e  gcc/testsuite/gdc.test/runnable/a21.d
  e615ecc1d7b37de2af54470f3338598c  gcc/testsuite/gdc.test/runnable/aliasassign.d
! bdd33dd9645eddf6b5b83f304fcff332  gcc/testsuite/gdc.test/runnable/aliasthis.d
  f3a2bbb7a464d93f63ab0326b83fa7ab  gcc/testsuite/gdc.test/runnable/arrayop.d
  4fcc9ce7ecc0df34147cd85b65cb05da  gcc/testsuite/gdc.test/runnable/auto1.d
  3de44536ba2ca82e220dcd6a0a086dce  gcc/testsuite/gdc.test/runnable/b10562.d
*************** a420878da7fa335abc9583e4499d0666  gcc/te
*** 82515,82521 ****
  700974143aafca54065d707b348b8b12  gcc/testsuite/gdc.test/runnable/b26.d
  58d10d4fb6d5a4cb665b54f848a3df89  gcc/testsuite/gdc.test/runnable/b6400.d
  81eae29e5dcdce2710e97b024a39e9d5  gcc/testsuite/gdc.test/runnable/bench1.d
! fa1c08e7e7df11457ef289fb42989329  gcc/testsuite/gdc.test/runnable/betterc.d
  3d3cfce1b32d3c3367406afbb4f3a671  gcc/testsuite/gdc.test/runnable/bettercUnittest.d
  46a1099e38da8d7d5c8b44bda27616c8  gcc/testsuite/gdc.test/runnable/bit.d
  370e709a442934770ca5c055271aba94  gcc/testsuite/gdc.test/runnable/bitops.d
--- 91419,91425 ----
  700974143aafca54065d707b348b8b12  gcc/testsuite/gdc.test/runnable/b26.d
  58d10d4fb6d5a4cb665b54f848a3df89  gcc/testsuite/gdc.test/runnable/b6400.d
  81eae29e5dcdce2710e97b024a39e9d5  gcc/testsuite/gdc.test/runnable/bench1.d
! c619f23869eb2baf6ff686c8cf48f2d4  gcc/testsuite/gdc.test/runnable/betterc.d
  3d3cfce1b32d3c3367406afbb4f3a671  gcc/testsuite/gdc.test/runnable/bettercUnittest.d
  46a1099e38da8d7d5c8b44bda27616c8  gcc/testsuite/gdc.test/runnable/bit.d
  370e709a442934770ca5c055271aba94  gcc/testsuite/gdc.test/runnable/bitops.d
*************** af2f95c5ef65b51539eef86ea15fa531  gcc/te
*** 82532,82548 ****
  758ec98959b2e2a7360601dbda5e44bb  gcc/testsuite/gdc.test/runnable/cdcmp.d
  1a404880fefc71429b66061fd57938df  gcc/testsuite/gdc.test/runnable/class_opCmp.d
  e8ff6f3ea6dc635e21038617aaa22d6c  gcc/testsuite/gdc.test/runnable/closure.d
! 9ea48cae757dd16042cd7434aff94459  gcc/testsuite/gdc.test/runnable/complex.d
  6b5e44de6530379279b7cc0d9eaee155  gcc/testsuite/gdc.test/runnable/complex3.d
  ce7051ac19199f716966b7818a002c9b  gcc/testsuite/gdc.test/runnable/constfold.d
  a080e4860261d16428bca6fb30d66159  gcc/testsuite/gdc.test/runnable/cppdtor.d
  2b92f65e8a84b3091a6b268e98f92815  gcc/testsuite/gdc.test/runnable/ctorpowtests.d
! 93d715fb0b899985790233ea9bac5299  gcc/testsuite/gdc.test/runnable/dbitfields.d
  02fa83518542867ea2e7418da0b1937a  gcc/testsuite/gdc.test/runnable/declaration.d
  d0a93167ec0c4b07094d766e9e071292  gcc/testsuite/gdc.test/runnable/delegate.d
  b236e2967e62b1d2e91de78f8c967b0d  gcc/testsuite/gdc.test/runnable/e7804.d
  53f608a3800e7a114ef0c11e5c66686a  gcc/testsuite/gdc.test/runnable/eh.d
! 5722a1733c880e8a632c938c12f40b9f  gcc/testsuite/gdc.test/runnable/eh2.d
  b26c0b2a01e9fdb64c30f43232af99e2  gcc/testsuite/gdc.test/runnable/entity1.d
  32bee199c6b6671945aa340849742038  gcc/testsuite/gdc.test/runnable/evalorder.d
  9ec0fa6475c0d6037fb02844653dfe3b  gcc/testsuite/gdc.test/runnable/extern1.d
--- 91436,91452 ----
  758ec98959b2e2a7360601dbda5e44bb  gcc/testsuite/gdc.test/runnable/cdcmp.d
  1a404880fefc71429b66061fd57938df  gcc/testsuite/gdc.test/runnable/class_opCmp.d
  e8ff6f3ea6dc635e21038617aaa22d6c  gcc/testsuite/gdc.test/runnable/closure.d
! 9856034684b8c1120eedb0ec55938558  gcc/testsuite/gdc.test/runnable/complex.d
  6b5e44de6530379279b7cc0d9eaee155  gcc/testsuite/gdc.test/runnable/complex3.d
  ce7051ac19199f716966b7818a002c9b  gcc/testsuite/gdc.test/runnable/constfold.d
  a080e4860261d16428bca6fb30d66159  gcc/testsuite/gdc.test/runnable/cppdtor.d
  2b92f65e8a84b3091a6b268e98f92815  gcc/testsuite/gdc.test/runnable/ctorpowtests.d
! a522e5527885eb8bdc0f385d8a49384c  gcc/testsuite/gdc.test/runnable/dbitfields.d
  02fa83518542867ea2e7418da0b1937a  gcc/testsuite/gdc.test/runnable/declaration.d
  d0a93167ec0c4b07094d766e9e071292  gcc/testsuite/gdc.test/runnable/delegate.d
  b236e2967e62b1d2e91de78f8c967b0d  gcc/testsuite/gdc.test/runnable/e7804.d
  53f608a3800e7a114ef0c11e5c66686a  gcc/testsuite/gdc.test/runnable/eh.d
! c26312f175bcb4929cac8125c546fa05  gcc/testsuite/gdc.test/runnable/eh2.d
  b26c0b2a01e9fdb64c30f43232af99e2  gcc/testsuite/gdc.test/runnable/entity1.d
  32bee199c6b6671945aa340849742038  gcc/testsuite/gdc.test/runnable/evalorder.d
  9ec0fa6475c0d6037fb02844653dfe3b  gcc/testsuite/gdc.test/runnable/extern1.d
*************** d8fb229e4130b79d115c02f142b30900  gcc/te
*** 82569,82579 ****
  040e4fa767a7fc2e188c99cbc64f3de7  gcc/testsuite/gdc.test/runnable/foreach3.d
  2b8527464d5784704510e2c0b53be4e1  gcc/testsuite/gdc.test/runnable/foreach4.d
  2eb363b5efaefe90b9b38cb9c89c7b03  gcc/testsuite/gdc.test/runnable/foreach5.d
! 7c708aaa3bf82fc8c23ae2835adb9acc  gcc/testsuite/gdc.test/runnable/funclit.d
! cc186d98b5221c7e2645debf5c0b95ec  gcc/testsuite/gdc.test/runnable/functype.d
  976a8be8b48b1d50d5b38d829a14e5c5  gcc/testsuite/gdc.test/runnable/future.d
  8ba368ec10a84a41af028179c76c4879  gcc/testsuite/gdc.test/runnable/hello.d
- a83062fb959aeeb5cf87796be147fa84  gcc/testsuite/gdc.test/runnable/helloUTF8.d
  92368d5b6d3c89f59b0e43d8dd40c626  gcc/testsuite/gdc.test/runnable/ice10086a.d
  c61bc71df8d1cdfb8e78e010b24dd96f  gcc/testsuite/gdc.test/runnable/ice10086b.d
  e2c68cb85bc6e5c362db337fa60853dc  gcc/testsuite/gdc.test/runnable/ice10857.d
--- 91473,91482 ----
  040e4fa767a7fc2e188c99cbc64f3de7  gcc/testsuite/gdc.test/runnable/foreach3.d
  2b8527464d5784704510e2c0b53be4e1  gcc/testsuite/gdc.test/runnable/foreach4.d
  2eb363b5efaefe90b9b38cb9c89c7b03  gcc/testsuite/gdc.test/runnable/foreach5.d
! 4073876fb9093031234d620dec187fa9  gcc/testsuite/gdc.test/runnable/funclit.d
! cd3460f4f8ea6492872be4c43912f1fd  gcc/testsuite/gdc.test/runnable/functype.d
  976a8be8b48b1d50d5b38d829a14e5c5  gcc/testsuite/gdc.test/runnable/future.d
  8ba368ec10a84a41af028179c76c4879  gcc/testsuite/gdc.test/runnable/hello.d
  92368d5b6d3c89f59b0e43d8dd40c626  gcc/testsuite/gdc.test/runnable/ice10086a.d
  c61bc71df8d1cdfb8e78e010b24dd96f  gcc/testsuite/gdc.test/runnable/ice10086b.d
  e2c68cb85bc6e5c362db337fa60853dc  gcc/testsuite/gdc.test/runnable/ice10857.d
*************** a688286886ef47916b6432c5bbf64c47  gcc/te
*** 82629,82645 ****
  0bc885dd3769b66c2f64fd38a06959e0  gcc/testsuite/gdc.test/runnable/imports/ice4481b.d
  74242c5fe048c276a07b28120f26bbaa  gcc/testsuite/gdc.test/runnable/imports/imp22624.c
  35ebabf1e65977d51fc57b3029c82a54  gcc/testsuite/gdc.test/runnable/imports/inc11239.d
  55b146ef5f7d3816eddddae776ea1e88  gcc/testsuite/gdc.test/runnable/imports/link10920a.d
  f65fa81a7d44f704110fe3fb64b12464  gcc/testsuite/gdc.test/runnable/imports/link11069x.d
  685c44d078204f0b0f58b413e74bdaa2  gcc/testsuite/gdc.test/runnable/imports/link11069y.d
! 77ba31376d0ba97fb5dc607e3c148034  gcc/testsuite/gdc.test/runnable/imports/link11069z.d
  ca7ef620c436dc1d4c0b43d1883730c3  gcc/testsuite/gdc.test/runnable/imports/link11127a.d
  9cb132713733804c0bb1737722ec7853  gcc/testsuite/gdc.test/runnable/imports/link11395a.d
  34f96390a422eb7ca3765572f53ae978  gcc/testsuite/gdc.test/runnable/imports/link12144a.d
  cc2ea3b155d5eb748182dedb676f4609  gcc/testsuite/gdc.test/runnable/imports/link13043a.d
  3e484b9d742ea151c6326908c7ac0ae2  gcc/testsuite/gdc.test/runnable/imports/link13394a.d
  90c1234bf580c1684645eadeb7faa9de  gcc/testsuite/gdc.test/runnable/imports/link13400a.d
! 516eb93c687ab6982654ffb9a7537a16  gcc/testsuite/gdc.test/runnable/imports/link13415a.d
  0470e5c338c69274783986df34ad8ec2  gcc/testsuite/gdc.test/runnable/imports/link14074x.d
  671949445c43999a5e96af18a196d557  gcc/testsuite/gdc.test/runnable/imports/link14074y.d
  8cd26d819790b754c2657e3cec9c6683  gcc/testsuite/gdc.test/runnable/imports/link14074z.d
--- 91532,91549 ----
  0bc885dd3769b66c2f64fd38a06959e0  gcc/testsuite/gdc.test/runnable/imports/ice4481b.d
  74242c5fe048c276a07b28120f26bbaa  gcc/testsuite/gdc.test/runnable/imports/imp22624.c
  35ebabf1e65977d51fc57b3029c82a54  gcc/testsuite/gdc.test/runnable/imports/inc11239.d
+ 4b060a238d618674eb7ab3b1300dc598  gcc/testsuite/gdc.test/runnable/imports/issue18919b.d
  55b146ef5f7d3816eddddae776ea1e88  gcc/testsuite/gdc.test/runnable/imports/link10920a.d
  f65fa81a7d44f704110fe3fb64b12464  gcc/testsuite/gdc.test/runnable/imports/link11069x.d
  685c44d078204f0b0f58b413e74bdaa2  gcc/testsuite/gdc.test/runnable/imports/link11069y.d
! e750ef39ed179dfc92268c1b9d376058  gcc/testsuite/gdc.test/runnable/imports/link11069z.d
  ca7ef620c436dc1d4c0b43d1883730c3  gcc/testsuite/gdc.test/runnable/imports/link11127a.d
  9cb132713733804c0bb1737722ec7853  gcc/testsuite/gdc.test/runnable/imports/link11395a.d
  34f96390a422eb7ca3765572f53ae978  gcc/testsuite/gdc.test/runnable/imports/link12144a.d
  cc2ea3b155d5eb748182dedb676f4609  gcc/testsuite/gdc.test/runnable/imports/link13043a.d
  3e484b9d742ea151c6326908c7ac0ae2  gcc/testsuite/gdc.test/runnable/imports/link13394a.d
  90c1234bf580c1684645eadeb7faa9de  gcc/testsuite/gdc.test/runnable/imports/link13400a.d
! f5e2276ffbc29d54565e17b70c772046  gcc/testsuite/gdc.test/runnable/imports/link13415a.d
  0470e5c338c69274783986df34ad8ec2  gcc/testsuite/gdc.test/runnable/imports/link14074x.d
  671949445c43999a5e96af18a196d557  gcc/testsuite/gdc.test/runnable/imports/link14074y.d
  8cd26d819790b754c2657e3cec9c6683  gcc/testsuite/gdc.test/runnable/imports/link14074z.d
*************** a9247d1c5ca1b8d76074cd64355b5804  gcc/te
*** 82661,82666 ****
--- 91565,91571 ----
  8708dbc2b62604591d2a6b42d0b44c51  gcc/testsuite/gdc.test/runnable/imports/m8668a.d
  8d88ddacf7255a87a42006fe3e430681  gcc/testsuite/gdc.test/runnable/imports/m8668b.d
  f9f5331f0cb4ef2237a257cc19972bce  gcc/testsuite/gdc.test/runnable/imports/m8668c.d
+ 27460efe86496969b2fd598001fba9f2  gcc/testsuite/gdc.test/runnable/imports/mainx23837.c
  1df1b0c046872f51daa34efbc94a78f6  gcc/testsuite/gdc.test/runnable/imports/maker.i
  01c0ae2d3d5a60cef03ad7ccb99b68d1  gcc/testsuite/gdc.test/runnable/imports/mangle10077.d
  cb452631c311ff185975ed99bde00241  gcc/testsuite/gdc.test/runnable/imports/mod2.d
*************** cb452631c311ff185975ed99bde00241  gcc/te
*** 82668,82673 ****
--- 91573,91579 ----
  833bf7270986a5b44ab97cb3ff91e5a6  gcc/testsuite/gdc.test/runnable/imports/ovs1528a.d
  7e3d3940b6985eaf7173938ae0aa86ff  gcc/testsuite/gdc.test/runnable/imports/ovs1528b.d
  5c314ae1e95f9a1f188468e78aafb5c6  gcc/testsuite/gdc.test/runnable/imports/pubprivtmpla.d
+ 0e5997fe41346867cb8799fa64b9ae10  gcc/testsuite/gdc.test/runnable/imports/standalone_b.d
  61da9b8c6eb2a3e3db927c8bb97c019f  gcc/testsuite/gdc.test/runnable/imports/std11069array.d
  53353eeae42ec307f3b4790b81e82922  gcc/testsuite/gdc.test/runnable/imports/std11069container.d
  68ef023d5d44861c83134b3c05db260a  gcc/testsuite/gdc.test/runnable/imports/std11069range.d
*************** d64b5e3f0b00940814668d067bf9aaea  gcc/te
*** 82772,82787 ****
  983143edb6966dadb405abd8072847f2  gcc/testsuite/gdc.test/runnable/inner.d
  48cfd849752443e6d9839e935e8143b7  gcc/testsuite/gdc.test/runnable/interface.d
  ca24fa67843e9b5f04f6e36b4156cd09  gcc/testsuite/gdc.test/runnable/interface1.d
! 6484a385c41eddbf0257b15c48e86258  gcc/testsuite/gdc.test/runnable/interface2.d
  838e42ff2802438b38233da4a0551d36  gcc/testsuite/gdc.test/runnable/interface3.d
! 2f60ceff797bbe39d9257b3ed1dd1a2c  gcc/testsuite/gdc.test/runnable/interpret.d
  30066aead22b067c75e067db19484762  gcc/testsuite/gdc.test/runnable/interpret2.d
  34bbbe816cec89b7cf9ad1cf88a3c866  gcc/testsuite/gdc.test/runnable/issue16995.d
  22cd3fa4fa361ef6a17f82ff75cfbf34  gcc/testsuite/gdc.test/runnable/issue22854.d
  e1eb800c5f1d023be3e43f4f5e34d2e2  gcc/testsuite/gdc.test/runnable/lazy.d
  39e7e24e679fa283298fb63c41528a27  gcc/testsuite/gdc.test/runnable/ldc_github_1677.d
  f0cf9a68c1903b04bf5aadb7a1411722  gcc/testsuite/gdc.test/runnable/lexer.d
! 6f5cb20cd7be0b4736b08048125893ca  gcc/testsuite/gdc.test/runnable/link10425.d
  6f384d861e8f7b136caa11a726124bb8  gcc/testsuite/gdc.test/runnable/link10920.d
  94f5a6371aec5241226bf8b2eeb5748c  gcc/testsuite/gdc.test/runnable/link11069a.d
  ab4716e92b354e5a13e2b7bd51337467  gcc/testsuite/gdc.test/runnable/link11069b.d
--- 91678,91698 ----
  983143edb6966dadb405abd8072847f2  gcc/testsuite/gdc.test/runnable/inner.d
  48cfd849752443e6d9839e935e8143b7  gcc/testsuite/gdc.test/runnable/interface.d
  ca24fa67843e9b5f04f6e36b4156cd09  gcc/testsuite/gdc.test/runnable/interface1.d
! 330304a344246380323a278d213a17dc  gcc/testsuite/gdc.test/runnable/interface2.d
  838e42ff2802438b38233da4a0551d36  gcc/testsuite/gdc.test/runnable/interface3.d
! 65846b67cf8db6278c62cef631d011dc  gcc/testsuite/gdc.test/runnable/interpolatedexpressionsequence.d
! 8485a4bc6459dbeae0318e54f84f85cc  gcc/testsuite/gdc.test/runnable/interpret.d
  30066aead22b067c75e067db19484762  gcc/testsuite/gdc.test/runnable/interpret2.d
+ 8e5a2ed2af9dfcc61cdfcfe2e2c82869  gcc/testsuite/gdc.test/runnable/issue11070.d
  34bbbe816cec89b7cf9ad1cf88a3c866  gcc/testsuite/gdc.test/runnable/issue16995.d
+ f0478da89fdf8934e56b435447413685  gcc/testsuite/gdc.test/runnable/issue18919.d
  22cd3fa4fa361ef6a17f82ff75cfbf34  gcc/testsuite/gdc.test/runnable/issue22854.d
+ 39d18e20e5c1d7b9153e30efdfadb6c4  gcc/testsuite/gdc.test/runnable/issue24168.d
+ 2afa6e0cfd5b3f47cf1ee026309b0a30  gcc/testsuite/gdc.test/runnable/issue24401.d
  e1eb800c5f1d023be3e43f4f5e34d2e2  gcc/testsuite/gdc.test/runnable/lazy.d
  39e7e24e679fa283298fb63c41528a27  gcc/testsuite/gdc.test/runnable/ldc_github_1677.d
  f0cf9a68c1903b04bf5aadb7a1411722  gcc/testsuite/gdc.test/runnable/lexer.d
! c6a55d78b59d8b3a56af4a85a78a40f3  gcc/testsuite/gdc.test/runnable/link10425.d
  6f384d861e8f7b136caa11a726124bb8  gcc/testsuite/gdc.test/runnable/link10920.d
  94f5a6371aec5241226bf8b2eeb5748c  gcc/testsuite/gdc.test/runnable/link11069a.d
  ab4716e92b354e5a13e2b7bd51337467  gcc/testsuite/gdc.test/runnable/link11069b.d
*************** c9c45c2cb9b491b777ee1bfa7f803666  gcc/te
*** 82805,82811 ****
  d307944832bd5e9f0e904a82fcfc70ef  gcc/testsuite/gdc.test/runnable/link14814.d
  588f278070e1d42d9accf982e69e1c24  gcc/testsuite/gdc.test/runnable/link14992.d
  d79ca5d68f5d2b1d4166ebf252ce577b  gcc/testsuite/gdc.test/runnable/link15017.d
! 8a0529dcc27e277c63f3cc54efb7ba1f  gcc/testsuite/gdc.test/runnable/link15021.d
  c1ccbb77e86bce621b967e7caacfe287  gcc/testsuite/gdc.test/runnable/link15149.d
  3debfb842852beb2042204839cf34b6d  gcc/testsuite/gdc.test/runnable/link2500.d
  337a4a44ed2a8e23873930099d24e3f4  gcc/testsuite/gdc.test/runnable/link2644.d
--- 91716,91722 ----
  d307944832bd5e9f0e904a82fcfc70ef  gcc/testsuite/gdc.test/runnable/link14814.d
  588f278070e1d42d9accf982e69e1c24  gcc/testsuite/gdc.test/runnable/link14992.d
  d79ca5d68f5d2b1d4166ebf252ce577b  gcc/testsuite/gdc.test/runnable/link15017.d
! dc39e6624f88aa76a01759b7e2dc3605  gcc/testsuite/gdc.test/runnable/link15021.d
  c1ccbb77e86bce621b967e7caacfe287  gcc/testsuite/gdc.test/runnable/link15149.d
  3debfb842852beb2042204839cf34b6d  gcc/testsuite/gdc.test/runnable/link2500.d
  337a4a44ed2a8e23873930099d24e3f4  gcc/testsuite/gdc.test/runnable/link2644.d
*************** de49afc81619132c42da7397f97d9a60  gcc/te
*** 82815,82826 ****
  0a37bc73952dd77becd57ac13c3f6ecc  gcc/testsuite/gdc.test/runnable/link8023.d
  9839759f567581a590e6b00f9c3ad9f5  gcc/testsuite/gdc.test/runnable/link9571.d
  036745f647d305676a64fb35f0c2b069  gcc/testsuite/gdc.test/runnable/linktypeinfo.d
! 61f00830183d4742b5dce22e7f00d798  gcc/testsuite/gdc.test/runnable/literal.d
  2893d202561d15a06d968f2ccb049544  gcc/testsuite/gdc.test/runnable/loopunroll.d
  f937e0b38b1fcd4d891537f30945028b  gcc/testsuite/gdc.test/runnable/m1.d
  e9f9b0b614372eb03b080d1810c3f513  gcc/testsuite/gdc.test/runnable/manboy.d
! 9d919fd56825c1ec7a780e06065e58b4  gcc/testsuite/gdc.test/runnable/mangle.d
! 4272be240b442708c014795acd72fa89  gcc/testsuite/gdc.test/runnable/mars1.d
  f5a8b23b5d0c5c59024767c78dcf9071  gcc/testsuite/gdc.test/runnable/minimal.d
  c00ebdf5e3409a5e0d41bc91f1bc7c13  gcc/testsuite/gdc.test/runnable/minimal2.d
  b8644719888d00737d3b529d8b3ebe1c  gcc/testsuite/gdc.test/runnable/mixin1.d
--- 91726,91737 ----
  0a37bc73952dd77becd57ac13c3f6ecc  gcc/testsuite/gdc.test/runnable/link8023.d
  9839759f567581a590e6b00f9c3ad9f5  gcc/testsuite/gdc.test/runnable/link9571.d
  036745f647d305676a64fb35f0c2b069  gcc/testsuite/gdc.test/runnable/linktypeinfo.d
! b9d8959dd100c0cd424819482909edca  gcc/testsuite/gdc.test/runnable/literal.d
  2893d202561d15a06d968f2ccb049544  gcc/testsuite/gdc.test/runnable/loopunroll.d
  f937e0b38b1fcd4d891537f30945028b  gcc/testsuite/gdc.test/runnable/m1.d
  e9f9b0b614372eb03b080d1810c3f513  gcc/testsuite/gdc.test/runnable/manboy.d
! cec29702d96c7c293286fd384283d519  gcc/testsuite/gdc.test/runnable/mangle.d
! 424ea9650bdc5fbd113698c7d97c8c06  gcc/testsuite/gdc.test/runnable/mars1.d
  f5a8b23b5d0c5c59024767c78dcf9071  gcc/testsuite/gdc.test/runnable/minimal.d
  c00ebdf5e3409a5e0d41bc91f1bc7c13  gcc/testsuite/gdc.test/runnable/minimal2.d
  b8644719888d00737d3b529d8b3ebe1c  gcc/testsuite/gdc.test/runnable/mixin1.d
*************** ba398cb335fae279b907d3b8a8b2dcb8  gcc/te
*** 82842,82857 ****
  3f595d4c7a383a431b3773fec062cab9  gcc/testsuite/gdc.test/runnable/overload.d
  c4e996cd3850a6ed5cd0b4537df85ad3  gcc/testsuite/gdc.test/runnable/pi.d
  671e921d7ba20a1141f56c07be62b586  gcc/testsuite/gdc.test/runnable/polysemous.d
! b1c9da60b8d40e3561a14b696c662aaa  gcc/testsuite/gdc.test/runnable/previewin.d
  e43ef772308df8da7da44ca398d5ec99  gcc/testsuite/gdc.test/runnable/printargs.d
  0b3b6c33585693f7d9ec1f1c160c5eee  gcc/testsuite/gdc.test/runnable/property.d
  31fe12e44df9411731e4ef3d72fb4ba7  gcc/testsuite/gdc.test/runnable/property2.d
  4ad36392d16823994c6a7ca8d3899c50  gcc/testsuite/gdc.test/runnable/pubprivtmpl.d
! d4ce9b5e856c6bddc25628fd1138d4c1  gcc/testsuite/gdc.test/runnable/runnable.exp
  8323b83c1399a259f3d262fb199b2205  gcc/testsuite/gdc.test/runnable/s2ir.d
  96d633524d2f75b8d82fcd0a5331a249  gcc/testsuite/gdc.test/runnable/sctor.d
! 05ce59877a082d3e22aff0132bfbe58a  gcc/testsuite/gdc.test/runnable/sctor2.d
! 236c43311185d3651a6d025013b2f040  gcc/testsuite/gdc.test/runnable/sdtor.d
  75cf9f0bc1b0762705a8a2b6eb89811e  gcc/testsuite/gdc.test/runnable/staticforeach.d
  f73d5e95eed9a6db4b396ed99ff5b347  gcc/testsuite/gdc.test/runnable/statictor.d
  3b4fa0c8027d36ae9ebdc2e436b4ff04  gcc/testsuite/gdc.test/runnable/stress.d
--- 91753,91770 ----
  3f595d4c7a383a431b3773fec062cab9  gcc/testsuite/gdc.test/runnable/overload.d
  c4e996cd3850a6ed5cd0b4537df85ad3  gcc/testsuite/gdc.test/runnable/pi.d
  671e921d7ba20a1141f56c07be62b586  gcc/testsuite/gdc.test/runnable/polysemous.d
! 6bc5534b2826fefdc2676bb4a74dbef9  gcc/testsuite/gdc.test/runnable/previewin.d
  e43ef772308df8da7da44ca398d5ec99  gcc/testsuite/gdc.test/runnable/printargs.d
  0b3b6c33585693f7d9ec1f1c160c5eee  gcc/testsuite/gdc.test/runnable/property.d
  31fe12e44df9411731e4ef3d72fb4ba7  gcc/testsuite/gdc.test/runnable/property2.d
  4ad36392d16823994c6a7ca8d3899c50  gcc/testsuite/gdc.test/runnable/pubprivtmpl.d
! 33a912b1c165a4a7f5acaa3ff08d2194  gcc/testsuite/gdc.test/runnable/runnable.exp
  8323b83c1399a259f3d262fb199b2205  gcc/testsuite/gdc.test/runnable/s2ir.d
  96d633524d2f75b8d82fcd0a5331a249  gcc/testsuite/gdc.test/runnable/sctor.d
! 89fdd86c8139312e4c554792b0cf02be  gcc/testsuite/gdc.test/runnable/sctor2.d
! 8031505cb94112cdf2caa90e81eeff2e  gcc/testsuite/gdc.test/runnable/sdtor.d
! 493987b1f414fd9708186d61ca59520a  gcc/testsuite/gdc.test/runnable/standalone_modctor.d
! 4cafcd7ae7010023a2b3f21b1b87d143  gcc/testsuite/gdc.test/runnable/staticaa.d
  75cf9f0bc1b0762705a8a2b6eb89811e  gcc/testsuite/gdc.test/runnable/staticforeach.d
  f73d5e95eed9a6db4b396ed99ff5b347  gcc/testsuite/gdc.test/runnable/statictor.d
  3b4fa0c8027d36ae9ebdc2e436b4ff04  gcc/testsuite/gdc.test/runnable/stress.d
*************** c67680cbb0418c1b03462bc82e84c512  gcc/te
*** 82863,82869 ****
  281244ea9f67146dc16caf6a24dd1e9e  gcc/testsuite/gdc.test/runnable/template3.d
  b264e56ec823b77824223c7435498b7d  gcc/testsuite/gdc.test/runnable/template4.d
  a2b15bcca5ded36d826ccac559bfe9fc  gcc/testsuite/gdc.test/runnable/template8.d
! 14b644398bf16cd3d743ec30aa61b303  gcc/testsuite/gdc.test/runnable/template9.d
  05cefcbd270114fadcde3e36e557c635  gcc/testsuite/gdc.test/runnable/test10.d
  11b39f38ddea4db0c346c184ae043158  gcc/testsuite/gdc.test/runnable/test10378.d
  b3fd0ebdae332c633f7c121f913b9c27  gcc/testsuite/gdc.test/runnable/test10441.d
--- 91776,91782 ----
  281244ea9f67146dc16caf6a24dd1e9e  gcc/testsuite/gdc.test/runnable/template3.d
  b264e56ec823b77824223c7435498b7d  gcc/testsuite/gdc.test/runnable/template4.d
  a2b15bcca5ded36d826ccac559bfe9fc  gcc/testsuite/gdc.test/runnable/template8.d
! 3206488f6d7f5436e3da2cac2222d366  gcc/testsuite/gdc.test/runnable/template9.d
  05cefcbd270114fadcde3e36e557c635  gcc/testsuite/gdc.test/runnable/test10.d
  11b39f38ddea4db0c346c184ae043158  gcc/testsuite/gdc.test/runnable/test10378.d
  b3fd0ebdae332c633f7c121f913b9c27  gcc/testsuite/gdc.test/runnable/test10441.d
*************** d6e1e5269dea90ebb80516ea92c9e793  gcc/te
*** 82917,82923 ****
  72abd9516be307601fc1f3e37554bd23  gcc/testsuite/gdc.test/runnable/test17337.d
  34fed78576a745da3357f20271550f18  gcc/testsuite/gdc.test/runnable/test17338.d
  e50e78709b67b0c2eaa1360860475c53  gcc/testsuite/gdc.test/runnable/test17559.d
! 592712ab492f074084b7e17829b072ec  gcc/testsuite/gdc.test/runnable/test17684.d
  9c25e2ca51aa326febdf0d4f36e1c245  gcc/testsuite/gdc.test/runnable/test17868.d
  61809efb0fcc1a93b897576650b9c5c1  gcc/testsuite/gdc.test/runnable/test17868b.d
  0e6077e1a2a30938d0b500ff8cc5b36b  gcc/testsuite/gdc.test/runnable/test17878.d
--- 91830,91836 ----
  72abd9516be307601fc1f3e37554bd23  gcc/testsuite/gdc.test/runnable/test17337.d
  34fed78576a745da3357f20271550f18  gcc/testsuite/gdc.test/runnable/test17338.d
  e50e78709b67b0c2eaa1360860475c53  gcc/testsuite/gdc.test/runnable/test17559.d
! e5d2a1faae0312068b5e33dbb985b301  gcc/testsuite/gdc.test/runnable/test17684.d
  9c25e2ca51aa326febdf0d4f36e1c245  gcc/testsuite/gdc.test/runnable/test17868.d
  61809efb0fcc1a93b897576650b9c5c1  gcc/testsuite/gdc.test/runnable/test17868b.d
  0e6077e1a2a30938d0b500ff8cc5b36b  gcc/testsuite/gdc.test/runnable/test17878.d
*************** cf6bb3e9f1c9c86ad42b1fcd4a9e6aa2  gcc/te
*** 82937,82943 ****
  a767b6f5b2f11844ad3eefab8ef4ec75  gcc/testsuite/gdc.test/runnable/test18868_2.d
  6b9fd9120b926078b877b6819fbe42b4  gcc/testsuite/gdc.test/runnable/test18868_3.d
  777a71347d6977e510af62882ae5bf82  gcc/testsuite/gdc.test/runnable/test18880.d
! 7b4286c4769f36ee7f44bba2ce4cf8d6  gcc/testsuite/gdc.test/runnable/test18916.d
  be9480664230fce009c57f0ac063312c  gcc/testsuite/gdc.test/runnable/test18973.d
  4ad192e8a7827586e9204fcaea15cd8a  gcc/testsuite/gdc.test/runnable/test19.d
  59dd98fa3a3a4e31603f6febee3ceca6  gcc/testsuite/gdc.test/runnable/test19086.d
--- 91850,91856 ----
  a767b6f5b2f11844ad3eefab8ef4ec75  gcc/testsuite/gdc.test/runnable/test18868_2.d
  6b9fd9120b926078b877b6819fbe42b4  gcc/testsuite/gdc.test/runnable/test18868_3.d
  777a71347d6977e510af62882ae5bf82  gcc/testsuite/gdc.test/runnable/test18880.d
! e10e47c461aeef23024b38c1fb47af93  gcc/testsuite/gdc.test/runnable/test18916.d
  be9480664230fce009c57f0ac063312c  gcc/testsuite/gdc.test/runnable/test18973.d
  4ad192e8a7827586e9204fcaea15cd8a  gcc/testsuite/gdc.test/runnable/test19.d
  59dd98fa3a3a4e31603f6febee3ceca6  gcc/testsuite/gdc.test/runnable/test19086.d
*************** debd41700e67c28aa7f45389c42fbce0  gcc/te
*** 82955,82971 ****
  9d51c1220da82889451c2310d952128b  gcc/testsuite/gdc.test/runnable/test19655a.d
  3031524867197f0e1394a16410f2e97d  gcc/testsuite/gdc.test/runnable/test19672.d
  a1ec3faf3686520b0f3abe6f701f9607  gcc/testsuite/gdc.test/runnable/test19679.d
- a4795a316a2baa0e71798b469d5c6930  gcc/testsuite/gdc.test/runnable/test19688.d
  540e7f8ebaef8fd9b8f04bbf29c98b2f  gcc/testsuite/gdc.test/runnable/test19729.d
  fcece22eca621fed0d8ba8a8f0a26b8c  gcc/testsuite/gdc.test/runnable/test19734.d
  d26b50fb85490a3cc4e2354e4f36ef67  gcc/testsuite/gdc.test/runnable/test19735.d
  9a70f093e61871491ceafa021b105249  gcc/testsuite/gdc.test/runnable/test19774.d
! 1c2ad6e4e2e2f57310f37b6daeb87f9e  gcc/testsuite/gdc.test/runnable/test19782.d
  183dd227c7d6d7b7bf544af3d6a5d802  gcc/testsuite/gdc.test/runnable/test19822.d
  a36968e264e2797808c37d2e955080ef  gcc/testsuite/gdc.test/runnable/test19825.d
  cff02d44bbc8c8bfe6c49cafa1a3e6d4  gcc/testsuite/gdc.test/runnable/test19891.d
  844d2a9446cd98243665a4dd8fecaec2  gcc/testsuite/gdc.test/runnable/test19946.d
! ba91a67739ef1d7c075257c209545bc2  gcc/testsuite/gdc.test/runnable/test20.d
  f8d0b21a1212e2dd2a2291217b19a6d4  gcc/testsuite/gdc.test/runnable/test20025.d
  afafe1c6791104a920ce60c8d9b7a1d7  gcc/testsuite/gdc.test/runnable/test20036.d
  00bcf9ef4601142dccb9c6258ec13a68  gcc/testsuite/gdc.test/runnable/test20130.d
--- 91868,91883 ----
  9d51c1220da82889451c2310d952128b  gcc/testsuite/gdc.test/runnable/test19655a.d
  3031524867197f0e1394a16410f2e97d  gcc/testsuite/gdc.test/runnable/test19672.d
  a1ec3faf3686520b0f3abe6f701f9607  gcc/testsuite/gdc.test/runnable/test19679.d
  540e7f8ebaef8fd9b8f04bbf29c98b2f  gcc/testsuite/gdc.test/runnable/test19729.d
  fcece22eca621fed0d8ba8a8f0a26b8c  gcc/testsuite/gdc.test/runnable/test19734.d
  d26b50fb85490a3cc4e2354e4f36ef67  gcc/testsuite/gdc.test/runnable/test19735.d
  9a70f093e61871491ceafa021b105249  gcc/testsuite/gdc.test/runnable/test19774.d
! f3d292c79f2f80b8f4c3d3800f49eaa8  gcc/testsuite/gdc.test/runnable/test19782.d
  183dd227c7d6d7b7bf544af3d6a5d802  gcc/testsuite/gdc.test/runnable/test19822.d
  a36968e264e2797808c37d2e955080ef  gcc/testsuite/gdc.test/runnable/test19825.d
  cff02d44bbc8c8bfe6c49cafa1a3e6d4  gcc/testsuite/gdc.test/runnable/test19891.d
  844d2a9446cd98243665a4dd8fecaec2  gcc/testsuite/gdc.test/runnable/test19946.d
! 836b2c1254bde4bb87f4e6c8382d76b1  gcc/testsuite/gdc.test/runnable/test20.d
  f8d0b21a1212e2dd2a2291217b19a6d4  gcc/testsuite/gdc.test/runnable/test20025.d
  afafe1c6791104a920ce60c8d9b7a1d7  gcc/testsuite/gdc.test/runnable/test20036.d
  00bcf9ef4601142dccb9c6258ec13a68  gcc/testsuite/gdc.test/runnable/test20130.d
*************** a48fbfbafa74fe1264728e81e04e18c5  gcc/te
*** 82975,82987 ****
  c018162c45215d0fab46be18b8757454  gcc/testsuite/gdc.test/runnable/test20565.d
  c34a3bb33a8160038fa96df171e91f03  gcc/testsuite/gdc.test/runnable/test20603.d
  d4e305280749d6533574a6153288fa7c  gcc/testsuite/gdc.test/runnable/test20649.d
  0399ed9a88f43f412bb837122ec70685  gcc/testsuite/gdc.test/runnable/test20734.d
  8c58a026ffe6663e0430a33ae429a2cb  gcc/testsuite/gdc.test/runnable/test20809.d
  e6dc6eaf864a06c95c44147f94d7b6e8  gcc/testsuite/gdc.test/runnable/test20811.d
  a1baf96919b413733cceceba4d005ad7  gcc/testsuite/gdc.test/runnable/test20855.d
  df5295a7feb17c4c53da844e70aa21e3  gcc/testsuite/gdc.test/runnable/test20893.d
  4b3d63ce3f716d2619996a6ed10a0346  gcc/testsuite/gdc.test/runnable/test21.d
! 8bdb09b21ee400f787fd7ea036c67aba  gcc/testsuite/gdc.test/runnable/test21039.d
  93b706863e29cf772712909183dbfede  gcc/testsuite/gdc.test/runnable/test21040.d
  64d7b02bd6dc7a0cd12b0af9e8070e9c  gcc/testsuite/gdc.test/runnable/test21120.d
  5b20d95ff645f7b662c082aa57b8c5e5  gcc/testsuite/gdc.test/runnable/test21301.d
--- 91887,91900 ----
  c018162c45215d0fab46be18b8757454  gcc/testsuite/gdc.test/runnable/test20565.d
  c34a3bb33a8160038fa96df171e91f03  gcc/testsuite/gdc.test/runnable/test20603.d
  d4e305280749d6533574a6153288fa7c  gcc/testsuite/gdc.test/runnable/test20649.d
+ d905eb557932b73173a99823a32be850  gcc/testsuite/gdc.test/runnable/test20687.d
  0399ed9a88f43f412bb837122ec70685  gcc/testsuite/gdc.test/runnable/test20734.d
  8c58a026ffe6663e0430a33ae429a2cb  gcc/testsuite/gdc.test/runnable/test20809.d
  e6dc6eaf864a06c95c44147f94d7b6e8  gcc/testsuite/gdc.test/runnable/test20811.d
  a1baf96919b413733cceceba4d005ad7  gcc/testsuite/gdc.test/runnable/test20855.d
  df5295a7feb17c4c53da844e70aa21e3  gcc/testsuite/gdc.test/runnable/test20893.d
  4b3d63ce3f716d2619996a6ed10a0346  gcc/testsuite/gdc.test/runnable/test21.d
! 7b3442f146687dcc372c3394881b4702  gcc/testsuite/gdc.test/runnable/test21039.d
  93b706863e29cf772712909183dbfede  gcc/testsuite/gdc.test/runnable/test21040.d
  64d7b02bd6dc7a0cd12b0af9e8070e9c  gcc/testsuite/gdc.test/runnable/test21120.d
  5b20d95ff645f7b662c082aa57b8c5e5  gcc/testsuite/gdc.test/runnable/test21301.d
*************** a4f94c1d976d5924615a341b59c02cff  gcc/te
*** 83011,83017 ****
  a63f3b63c344065bc882c726d79ee3f1  gcc/testsuite/gdc.test/runnable/test23010.d
  b760c0e7d084ffeb0648627187c08bb7  gcc/testsuite/gdc.test/runnable/test23083.d
  138e2256ce1c1f5109950477b38499c7  gcc/testsuite/gdc.test/runnable/test23181.d
! f7b1337e9399c96a2dfc557835b34a33  gcc/testsuite/gdc.test/runnable/test23234.d
  fcd2732565e41785f8dcf891e9376197  gcc/testsuite/gdc.test/runnable/test23307.d
  ac0de3cd831fa9321b2ebae86fec2b7a  gcc/testsuite/gdc.test/runnable/test23337.d
  725fa25201e68aa6b98b05a137d7b938  gcc/testsuite/gdc.test/runnable/test23387.d
--- 91924,91930 ----
  a63f3b63c344065bc882c726d79ee3f1  gcc/testsuite/gdc.test/runnable/test23010.d
  b760c0e7d084ffeb0648627187c08bb7  gcc/testsuite/gdc.test/runnable/test23083.d
  138e2256ce1c1f5109950477b38499c7  gcc/testsuite/gdc.test/runnable/test23181.d
! ed4925b273407fe3c1b1f148d9bb1dac  gcc/testsuite/gdc.test/runnable/test23234.d
  fcd2732565e41785f8dcf891e9376197  gcc/testsuite/gdc.test/runnable/test23307.d
  ac0de3cd831fa9321b2ebae86fec2b7a  gcc/testsuite/gdc.test/runnable/test23337.d
  725fa25201e68aa6b98b05a137d7b938  gcc/testsuite/gdc.test/runnable/test23387.d
*************** ac0de3cd831fa9321b2ebae86fec2b7a  gcc/te
*** 83019,83025 ****
--- 91932,91945 ----
  df806f23213b2694036b38addf890cbb  gcc/testsuite/gdc.test/runnable/test23618.d
  b3ebc400243b9885ee707960762bbfb8  gcc/testsuite/gdc.test/runnable/test23650.d
  597d86763224d5b7f6426c4144960da6  gcc/testsuite/gdc.test/runnable/test23710.d
+ 7f93e42150b5bd509dc8c3d45bb5a04c  gcc/testsuite/gdc.test/runnable/test23837.d
+ 499c510da59fda55284f050089a11815  gcc/testsuite/gdc.test/runnable/test23959.d
  3d69f9a9a0381cb5e164fd3a019c94ae  gcc/testsuite/gdc.test/runnable/test24.d
+ 6fb33975280052ec02aa3c28a17b1933  gcc/testsuite/gdc.test/runnable/test24029.c
+ f04e3db1a091988361115611006146e0  gcc/testsuite/gdc.test/runnable/test24078.d
+ 8d05c8b1ad205068209b94c4a513870e  gcc/testsuite/gdc.test/runnable/test24139.d
+ 8032e2df699448521296d10a3405072c  gcc/testsuite/gdc.test/runnable/test24184.d
+ 9426b90cab4ea9a6f2a4ec046dd8a62a  gcc/testsuite/gdc.test/runnable/test24371.d
  19afe194dcce9c253540c7831e8f23a2  gcc/testsuite/gdc.test/runnable/test27.d
  907370082d6caa9ac241999ae9143c37  gcc/testsuite/gdc.test/runnable/test28.d
  29e2b1f92dca63b5a1e49cedf1c77026  gcc/testsuite/gdc.test/runnable/test29.d
*************** ffaf83ea8a632fb76a8460f34eb92204  gcc/te
*** 83028,83034 ****
  00d20fc4e946bb7fa0f42c3ad4028c55  gcc/testsuite/gdc.test/runnable/test31.d
  288de9e9a7405648b1c7c3d436028db9  gcc/testsuite/gdc.test/runnable/test32.d
  04e84b73f78ee9e6229632edab5a2795  gcc/testsuite/gdc.test/runnable/test34.d
! e89c8cd03d6486c95b6cf6c64be0e9e6  gcc/testsuite/gdc.test/runnable/test3449.d
  a562b2b0fe364138042b10aa9fe7bc2e  gcc/testsuite/gdc.test/runnable/test3574a.d
  29dbee4ad9eef2e8530d3b79a8a703df  gcc/testsuite/gdc.test/runnable/test3574b.d
  653e07900f4a2ceb0d83477f25fe70bf  gcc/testsuite/gdc.test/runnable/test3574c.d
--- 91948,91954 ----
  00d20fc4e946bb7fa0f42c3ad4028c55  gcc/testsuite/gdc.test/runnable/test31.d
  288de9e9a7405648b1c7c3d436028db9  gcc/testsuite/gdc.test/runnable/test32.d
  04e84b73f78ee9e6229632edab5a2795  gcc/testsuite/gdc.test/runnable/test34.d
! 86fc998c3c50cab89537bf02cb1afc69  gcc/testsuite/gdc.test/runnable/test3449.d
  a562b2b0fe364138042b10aa9fe7bc2e  gcc/testsuite/gdc.test/runnable/test3574a.d
  29dbee4ad9eef2e8530d3b79a8a703df  gcc/testsuite/gdc.test/runnable/test3574b.d
  653e07900f4a2ceb0d83477f25fe70bf  gcc/testsuite/gdc.test/runnable/test3574c.d
*************** fa0fb7940f5997754ddc62b33c7baebd  gcc/te
*** 83038,83044 ****
  dbb7cf02e89580245e392f454e17f2d8  gcc/testsuite/gdc.test/runnable/test4.d
  d445cf99d6bb9f33a8aaaf381e971853  gcc/testsuite/gdc.test/runnable/test40.d
  d506eb18768952fea6d63fd1d70743ce  gcc/testsuite/gdc.test/runnable/test41.d
! 700d55e944cf15a5962369f633e8e8c0  gcc/testsuite/gdc.test/runnable/test42.d
  9b2bf264f7de133b083d60a2a96dc8e2  gcc/testsuite/gdc.test/runnable/test42a.d
  b67bb973e1e91f489cd97933211256b9  gcc/testsuite/gdc.test/runnable/test435.d
  851d793586ab17a91e80426908e8a089  gcc/testsuite/gdc.test/runnable/test45.d
--- 91958,91964 ----
  dbb7cf02e89580245e392f454e17f2d8  gcc/testsuite/gdc.test/runnable/test4.d
  d445cf99d6bb9f33a8aaaf381e971853  gcc/testsuite/gdc.test/runnable/test40.d
  d506eb18768952fea6d63fd1d70743ce  gcc/testsuite/gdc.test/runnable/test41.d
! 1096ee4b07759d9f312624cc36819e23  gcc/testsuite/gdc.test/runnable/test42.d
  9b2bf264f7de133b083d60a2a96dc8e2  gcc/testsuite/gdc.test/runnable/test42a.d
  b67bb973e1e91f489cd97933211256b9  gcc/testsuite/gdc.test/runnable/test435.d
  851d793586ab17a91e80426908e8a089  gcc/testsuite/gdc.test/runnable/test45.d
*************** a36fae813a6f89e1190c485e88612051  gcc/te
*** 83079,83090 ****
  64823d97fc941d462f398d0b7bcbe896  gcc/testsuite/gdc.test/runnable/testaa.d
  892b49ea5dd4f0e53e0faadc8b0577fb  gcc/testsuite/gdc.test/runnable/testaa2.d
  ee3edf61584e85f05e7e74c7c7c5a8b3  gcc/testsuite/gdc.test/runnable/testaa3.d
! f2a86058bf293a0b9667ac032a150946  gcc/testsuite/gdc.test/runnable/testaliascast.d
  eeb45913ea76b2a0c6255a669d3edb7e  gcc/testsuite/gdc.test/runnable/testappend.d
  8d2dd2e88a1daa40f5a0fe6f0bac44a7  gcc/testsuite/gdc.test/runnable/testarray.d
  728bb57b12620d5afb89fc3a275536d7  gcc/testsuite/gdc.test/runnable/testassert.d
  5c93e14bd7b6c858ef32800173172b43  gcc/testsuite/gdc.test/runnable/testassert_debug.d
! 9f93564ac9fada565f6f43e0110998f6  gcc/testsuite/gdc.test/runnable/testassign.d
  b68337b7fabe389fc57cd2fd733b78a9  gcc/testsuite/gdc.test/runnable/testbounds.d
  29912bc8a59c79356e5423ea4b009c91  gcc/testsuite/gdc.test/runnable/testbounds_off.d
  b5d03efe728963696491f3c036bc8f5c  gcc/testsuite/gdc.test/runnable/testbounds_on.d
--- 91999,92010 ----
  64823d97fc941d462f398d0b7bcbe896  gcc/testsuite/gdc.test/runnable/testaa.d
  892b49ea5dd4f0e53e0faadc8b0577fb  gcc/testsuite/gdc.test/runnable/testaa2.d
  ee3edf61584e85f05e7e74c7c7c5a8b3  gcc/testsuite/gdc.test/runnable/testaa3.d
! 3f7c65678e5e6729e1c6bc9fe1965999  gcc/testsuite/gdc.test/runnable/testaliascast.d
  eeb45913ea76b2a0c6255a669d3edb7e  gcc/testsuite/gdc.test/runnable/testappend.d
  8d2dd2e88a1daa40f5a0fe6f0bac44a7  gcc/testsuite/gdc.test/runnable/testarray.d
  728bb57b12620d5afb89fc3a275536d7  gcc/testsuite/gdc.test/runnable/testassert.d
  5c93e14bd7b6c858ef32800173172b43  gcc/testsuite/gdc.test/runnable/testassert_debug.d
! 7496c9ee55b24b40fe9921c1dad615d3  gcc/testsuite/gdc.test/runnable/testassign.d
  b68337b7fabe389fc57cd2fd733b78a9  gcc/testsuite/gdc.test/runnable/testbounds.d
  29912bc8a59c79356e5423ea4b009c91  gcc/testsuite/gdc.test/runnable/testbounds_off.d
  b5d03efe728963696491f3c036bc8f5c  gcc/testsuite/gdc.test/runnable/testbounds_on.d
*************** b5d03efe728963696491f3c036bc8f5c  gcc/te
*** 83092,83100 ****
  0b41649fd2039059a2d124ed2090e407  gcc/testsuite/gdc.test/runnable/testbtst.d
  5740d6d8a37f8c8de92b0ae5dea79b24  gcc/testsuite/gdc.test/runnable/testcgelem.d
  f3a5c8190fa5a3106b4d549439f19057  gcc/testsuite/gdc.test/runnable/testclass.d
! 74b8d7cc9e56ff982ab03a4c063c6602  gcc/testsuite/gdc.test/runnable/testconst.d
  ca19a464a9598a2c7376e8812c2a1115  gcc/testsuite/gdc.test/runnable/testconstsection.d
! 63be0bf283a5343ab2a42e70360a029c  gcc/testsuite/gdc.test/runnable/testcontracts.d
  04177eb403d124b27e25923e062b4968  gcc/testsuite/gdc.test/runnable/testdefault_after_variadic.d
  6e21a05a6db0d18097b144b15f57a819  gcc/testsuite/gdc.test/runnable/testdstress.d
  188bce71e33ee82e4f8b06265b40fc29  gcc/testsuite/gdc.test/runnable/testdt.d
--- 92012,92020 ----
  0b41649fd2039059a2d124ed2090e407  gcc/testsuite/gdc.test/runnable/testbtst.d
  5740d6d8a37f8c8de92b0ae5dea79b24  gcc/testsuite/gdc.test/runnable/testcgelem.d
  f3a5c8190fa5a3106b4d549439f19057  gcc/testsuite/gdc.test/runnable/testclass.d
! accd74cefedab8045dc0d0e3ede1cdc1  gcc/testsuite/gdc.test/runnable/testconst.d
  ca19a464a9598a2c7376e8812c2a1115  gcc/testsuite/gdc.test/runnable/testconstsection.d
! 6993e1f19ad9f9572367f9d934f3ab1c  gcc/testsuite/gdc.test/runnable/testcontracts.d
  04177eb403d124b27e25923e062b4968  gcc/testsuite/gdc.test/runnable/testdefault_after_variadic.d
  6e21a05a6db0d18097b144b15f57a819  gcc/testsuite/gdc.test/runnable/testdstress.d
  188bce71e33ee82e4f8b06265b40fc29  gcc/testsuite/gdc.test/runnable/testdt.d
*************** dc17b590e0cb85107a4fde452455b4ec  gcc/te
*** 83102,83108 ****
  d4b8fc507dc0ddd3ca7b3066a52e32e1  gcc/testsuite/gdc.test/runnable/testfloat.d
  75351cd126af64a558dbdd6e40e6a87c  gcc/testsuite/gdc.test/runnable/testgc2.d
  7427aee7adf5bff99ac3a7bcf0cf8b2c  gcc/testsuite/gdc.test/runnable/testgc3.d
! e0c73db6333f43d93f8db9bdf2f68aa4  gcc/testsuite/gdc.test/runnable/testinvariant.d
  be284d3034b6fdd09b68f8beefd54ee2  gcc/testsuite/gdc.test/runnable/testkeyword.d
  8bb97c5ee53391cea0b3260d426b7dd8  gcc/testsuite/gdc.test/runnable/testline.d
  2072a38b7b38372b3243042a8e7d943d  gcc/testsuite/gdc.test/runnable/testmain.d
--- 92022,92028 ----
  d4b8fc507dc0ddd3ca7b3066a52e32e1  gcc/testsuite/gdc.test/runnable/testfloat.d
  75351cd126af64a558dbdd6e40e6a87c  gcc/testsuite/gdc.test/runnable/testgc2.d
  7427aee7adf5bff99ac3a7bcf0cf8b2c  gcc/testsuite/gdc.test/runnable/testgc3.d
! d227de13a72016a1e7c390e520da1fb2  gcc/testsuite/gdc.test/runnable/testinvariant.d
  be284d3034b6fdd09b68f8beefd54ee2  gcc/testsuite/gdc.test/runnable/testkeyword.d
  8bb97c5ee53391cea0b3260d426b7dd8  gcc/testsuite/gdc.test/runnable/testline.d
  2072a38b7b38372b3243042a8e7d943d  gcc/testsuite/gdc.test/runnable/testmain.d
*************** be284d3034b6fdd09b68f8beefd54ee2  gcc/te
*** 83110,83125 ****
  8346e0691106bf7ca52c0fb6c3296f7f  gcc/testsuite/gdc.test/runnable/testminit.d
  ed7a30b0ac0e1a59e6c85f35bca3d0e9  gcc/testsuite/gdc.test/runnable/testmod1.d
  99a9561dc3d23ad5c730236196d128da  gcc/testsuite/gdc.test/runnable/testmod2.d
! 9bd4c3eb4e419acdb7db441b62880c4f  gcc/testsuite/gdc.test/runnable/testmodule.d
  ea6b138a5a50c9283634631f6784ac67  gcc/testsuite/gdc.test/runnable/testpic.d
! daec94a9c09ac898c5fd6fe60eb8efb8  gcc/testsuite/gdc.test/runnable/testptrref.d
  43d4f7910f480d509db53dcc92b74963  gcc/testsuite/gdc.test/runnable/testptrref_gc.d
  00a451bc4c07b84a223df9f0665137e0  gcc/testsuite/gdc.test/runnable/testreturn.d
  ea09d28ca0f7a07d495d48a79486d5c2  gcc/testsuite/gdc.test/runnable/testrightthis.d
  bbcaf047e3d4dd255a5ce2c1ad881475  gcc/testsuite/gdc.test/runnable/testsafe.d
  d0dc7f6c1e3a712292d48eb9d40557d0  gcc/testsuite/gdc.test/runnable/testscope.d
  75e6e340a8e62745d532ce3ebba47749  gcc/testsuite/gdc.test/runnable/testscope2.d
! ea65101462f5417751a3a6ac833a9453  gcc/testsuite/gdc.test/runnable/testswitch.d
  549bee09a23ec1497b2a8bb0bef44010  gcc/testsuite/gdc.test/runnable/testthread.d
  1f5dcd73e7af1833e3689de50ad7fec7  gcc/testsuite/gdc.test/runnable/testthread2.d
  6c0892bc90adeacb0d627be71a900f36  gcc/testsuite/gdc.test/runnable/testtypeid.d
--- 92030,92045 ----
  8346e0691106bf7ca52c0fb6c3296f7f  gcc/testsuite/gdc.test/runnable/testminit.d
  ed7a30b0ac0e1a59e6c85f35bca3d0e9  gcc/testsuite/gdc.test/runnable/testmod1.d
  99a9561dc3d23ad5c730236196d128da  gcc/testsuite/gdc.test/runnable/testmod2.d
! 7b08f84332b4d969b71ba29cba12527e  gcc/testsuite/gdc.test/runnable/testmodule.d
  ea6b138a5a50c9283634631f6784ac67  gcc/testsuite/gdc.test/runnable/testpic.d
! 2242afbf445e8b21b73e6067efcbf911  gcc/testsuite/gdc.test/runnable/testptrref.d
  43d4f7910f480d509db53dcc92b74963  gcc/testsuite/gdc.test/runnable/testptrref_gc.d
  00a451bc4c07b84a223df9f0665137e0  gcc/testsuite/gdc.test/runnable/testreturn.d
  ea09d28ca0f7a07d495d48a79486d5c2  gcc/testsuite/gdc.test/runnable/testrightthis.d
  bbcaf047e3d4dd255a5ce2c1ad881475  gcc/testsuite/gdc.test/runnable/testsafe.d
  d0dc7f6c1e3a712292d48eb9d40557d0  gcc/testsuite/gdc.test/runnable/testscope.d
  75e6e340a8e62745d532ce3ebba47749  gcc/testsuite/gdc.test/runnable/testscope2.d
! d9873070c6dd3e7e2cd42fd2301c2f47  gcc/testsuite/gdc.test/runnable/testswitch.d
  549bee09a23ec1497b2a8bb0bef44010  gcc/testsuite/gdc.test/runnable/testthread.d
  1f5dcd73e7af1833e3689de50ad7fec7  gcc/testsuite/gdc.test/runnable/testthread2.d
  6c0892bc90adeacb0d627be71a900f36  gcc/testsuite/gdc.test/runnable/testtypeid.d
*************** a057534673f57c614b996fe87140df21  gcc/te
*** 83128,83143 ****
  49432260a0d57c2fe1811c568327d931  gcc/testsuite/gdc.test/runnable/tls_dup.d
  9fe0d61a2485062546fefc20ca20f72a  gcc/testsuite/gdc.test/runnable/traits.d
  1aa7c9fb4ab4ad34ebee88d73d835029  gcc/testsuite/gdc.test/runnable/traits_child.d
! 38f1b8f71336b87ceda6b477bb961904  gcc/testsuite/gdc.test/runnable/traits_getPointerBitmap.d
  7b5c0c588a5500319a2ccc41819e3b29  gcc/testsuite/gdc.test/runnable/traits_getUnitTests.d
  91642219e5787400e311db2dee1e8591  gcc/testsuite/gdc.test/runnable/traits_getVirtualIndex.d
  dea7fc25fd89a2df3918f62a896ba033  gcc/testsuite/gdc.test/runnable/traits_initSymbol.d
  f75e70758ecdcd92eb5f200d8337bb7e  gcc/testsuite/gdc.test/runnable/tuple_default_parameters.d
! 0f13d6c17147d9a319c5b4b76946c4be  gcc/testsuite/gdc.test/runnable/uda.d
! 0416b4f2e3686fd9379e0c2d320e3e1a  gcc/testsuite/gdc.test/runnable/ufcs.d
  fad5d6afc8ee199fc52c3d0115ff4dc9  gcc/testsuite/gdc.test/runnable/uniformctor.d
  797041b16b4063f65751920488ee39ef  gcc/testsuite/gdc.test/runnable/unique_typeinfo_names.d
! 7ed2f43979b0523e33aedd424104f7e9  gcc/testsuite/gdc.test/runnable/variadic.d
  dd6318894171d606a3a02985c9be449b  gcc/testsuite/gdc.test/runnable/version.d
  3e234d45b8940cdd1392e921db8b08f4  gcc/testsuite/gdc.test/runnable/warning1.d
  c5d22add9745e52907bb2497b9bd620f  gcc/testsuite/gdc.test/runnable/wc.d
--- 92048,92063 ----
  49432260a0d57c2fe1811c568327d931  gcc/testsuite/gdc.test/runnable/tls_dup.d
  9fe0d61a2485062546fefc20ca20f72a  gcc/testsuite/gdc.test/runnable/traits.d
  1aa7c9fb4ab4ad34ebee88d73d835029  gcc/testsuite/gdc.test/runnable/traits_child.d
! 9be15b72b386165ca16cdf973c293d24  gcc/testsuite/gdc.test/runnable/traits_getPointerBitmap.d
  7b5c0c588a5500319a2ccc41819e3b29  gcc/testsuite/gdc.test/runnable/traits_getUnitTests.d
  91642219e5787400e311db2dee1e8591  gcc/testsuite/gdc.test/runnable/traits_getVirtualIndex.d
  dea7fc25fd89a2df3918f62a896ba033  gcc/testsuite/gdc.test/runnable/traits_initSymbol.d
  f75e70758ecdcd92eb5f200d8337bb7e  gcc/testsuite/gdc.test/runnable/tuple_default_parameters.d
! 76488c99011e2857cfb40345b12f7a84  gcc/testsuite/gdc.test/runnable/uda.d
! ec04e4ea77bac2e91d90b587323bc296  gcc/testsuite/gdc.test/runnable/ufcs.d
  fad5d6afc8ee199fc52c3d0115ff4dc9  gcc/testsuite/gdc.test/runnable/uniformctor.d
  797041b16b4063f65751920488ee39ef  gcc/testsuite/gdc.test/runnable/unique_typeinfo_names.d
! 3ab6e06841097e73a8cfa9e414bd07b0  gcc/testsuite/gdc.test/runnable/variadic.d
  dd6318894171d606a3a02985c9be449b  gcc/testsuite/gdc.test/runnable/version.d
  3e234d45b8940cdd1392e921db8b08f4  gcc/testsuite/gdc.test/runnable/warning1.d
  c5d22add9745e52907bb2497b9bd620f  gcc/testsuite/gdc.test/runnable/wc.d
*************** c4ca938331c5dd4dfd6be89a399e767b  gcc/te
*** 83146,83156 ****
  f384c3fcd7c6ad7e5f4cfe528d33e3b1  gcc/testsuite/gdc.test/runnable/whetstone.d
  ec1a2733358dba834de7787de5e3abbc  gcc/testsuite/gdc.test/runnable/xdtor.d
  ac4d0456bb66403e420d8d538a3c7de5  gcc/testsuite/gdc.test/runnable/xpostblit.d
! 937bef91b63a99fec9980716f08f4107  gcc/testsuite/gdc.test/runnable/xtest46.d
! abc11a1dc1670ad91573318a25494650  gcc/testsuite/gdc.test/runnable/xtest46_gc.d
  bbea6b323197c3de8b8cdf62fd30dce6  gcc/testsuite/gdc.test/runnable/xtest47.d
  98579c4213cc9715e99b14cafe0236c5  gcc/testsuite/gdc.test/runnable/xtest55.d
! ec34b35e61134ea19d0acd6f4b952971  gcc/testsuite/gdc.test/runnable/xtestenum.d
  2caaa83870980d1acf5e5b9d4feab819  gcc/testsuite/gdc.test/runnable_cxx/abi_tags.d
  862550e1270f64e59387c6dca4c76318  gcc/testsuite/gdc.test/runnable_cxx/cabi1.d
  76cf7dafb9d89f93e706f474f20c8475  gcc/testsuite/gdc.test/runnable_cxx/cpp11.d
--- 92066,92076 ----
  f384c3fcd7c6ad7e5f4cfe528d33e3b1  gcc/testsuite/gdc.test/runnable/whetstone.d
  ec1a2733358dba834de7787de5e3abbc  gcc/testsuite/gdc.test/runnable/xdtor.d
  ac4d0456bb66403e420d8d538a3c7de5  gcc/testsuite/gdc.test/runnable/xpostblit.d
! ad73f33dcc5edd84ac0425e92f89ff96  gcc/testsuite/gdc.test/runnable/xtest46.d
! 618063ddef47bd96e8ba0bd68584721e  gcc/testsuite/gdc.test/runnable/xtest46_gc.d
  bbea6b323197c3de8b8cdf62fd30dce6  gcc/testsuite/gdc.test/runnable/xtest47.d
  98579c4213cc9715e99b14cafe0236c5  gcc/testsuite/gdc.test/runnable/xtest55.d
! 0fc22a3b3036ab8c194434def08773d3  gcc/testsuite/gdc.test/runnable/xtestenum.d
  2caaa83870980d1acf5e5b9d4feab819  gcc/testsuite/gdc.test/runnable_cxx/abi_tags.d
  862550e1270f64e59387c6dca4c76318  gcc/testsuite/gdc.test/runnable_cxx/cabi1.d
  76cf7dafb9d89f93e706f474f20c8475  gcc/testsuite/gdc.test/runnable_cxx/cpp11.d
*************** a114fddcb4038e1cc68206b0fc3d227e  gcc/te
*** 83178,83185 ****
  18cf40cb7d52f6fc2c839a80d18ff053  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test22351.cpp
  4c95c06408fd6606dc2cc8f9ffbc3da2  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test22898.cpp
  b87b34b2dab8f6f449a9d5ac854c90ec  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test23135.cpp
  19446c81468536fde60f727169a9064b  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test6716.cpp
! 76fdad5a789cceae58a00bc6ffe1dbce  gcc/testsuite/gdc.test/runnable_cxx/runnable_cxx.exp
  831a07bc65fb593b01e13ba6917f1048  gcc/testsuite/gdc.test/runnable_cxx/stdint.d
  5e106cb14f0975a6502a3684154bda9c  gcc/testsuite/gdc.test/runnable_cxx/test14203.d
  6cff696d69683c392657211d903629c7  gcc/testsuite/gdc.test/runnable_cxx/test19179.d
--- 92098,92106 ----
  18cf40cb7d52f6fc2c839a80d18ff053  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test22351.cpp
  4c95c06408fd6606dc2cc8f9ffbc3da2  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test22898.cpp
  b87b34b2dab8f6f449a9d5ac854c90ec  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test23135.cpp
+ 2d67da5a4aa7383f9fae708df911df9b  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test24292.cpp
  19446c81468536fde60f727169a9064b  gcc/testsuite/gdc.test/runnable_cxx/extra-files/test6716.cpp
! f35f1ad5de00da5c6154fe414079bf2a  gcc/testsuite/gdc.test/runnable_cxx/runnable_cxx.exp
  831a07bc65fb593b01e13ba6917f1048  gcc/testsuite/gdc.test/runnable_cxx/stdint.d
  5e106cb14f0975a6502a3684154bda9c  gcc/testsuite/gdc.test/runnable_cxx/test14203.d
  6cff696d69683c392657211d903629c7  gcc/testsuite/gdc.test/runnable_cxx/test19179.d
*************** e3ed77e1de9813e110f4b46db5b15790  gcc/te
*** 83189,83197 ****
  0815627985d71579c23ccb865c3cb8d4  gcc/testsuite/gdc.test/runnable_cxx/test22351.d
  a8defbbc0b10eb2d64bca782c9c208e4  gcc/testsuite/gdc.test/runnable_cxx/test22898.d
  a2ef28185ce553046b671626eab2248e  gcc/testsuite/gdc.test/runnable_cxx/test23135.d
  a8db2129ce64619adefe97016e2a537b  gcc/testsuite/gdc.test/runnable_cxx/test6716.d
! 52117134088f2520ffadd1a3d471741a  gcc/testsuite/gdc.test/runnable_cxx/test7925.d
  38343e39577a1d093c40818070ea1d7b  gcc/testsuite/gfortran.dg/20181025-1.f
  747722c12afa6e089d9e33c3d05257f7  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.c
  57077f084b8ec81f4f537428d13a6588  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.f90
  a0882a6b88250e8258ab4511465c89da  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_10.c
--- 92110,92121 ----
  0815627985d71579c23ccb865c3cb8d4  gcc/testsuite/gdc.test/runnable_cxx/test22351.d
  a8defbbc0b10eb2d64bca782c9c208e4  gcc/testsuite/gdc.test/runnable_cxx/test22898.d
  a2ef28185ce553046b671626eab2248e  gcc/testsuite/gdc.test/runnable_cxx/test23135.d
+ 0ce02be78915b2b86841f43c70a07145  gcc/testsuite/gdc.test/runnable_cxx/test24292.d
  a8db2129ce64619adefe97016e2a537b  gcc/testsuite/gdc.test/runnable_cxx/test6716.d
! 98a2789b3eedd2e04218b819687ade2d  gcc/testsuite/gdc.test/runnable_cxx/test7925.d
  38343e39577a1d093c40818070ea1d7b  gcc/testsuite/gfortran.dg/20181025-1.f
+ 4c764b41ba24a01014e53db159a15787  gcc/testsuite/gfortran.dg/20231103-1.f90
+ 69f7d2e39ae1d08b07a3d6e622ed82fb  gcc/testsuite/gfortran.dg/20231103-2.f90
  747722c12afa6e089d9e33c3d05257f7  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.c
  57077f084b8ec81f4f537428d13a6588  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.f90
  a0882a6b88250e8258ab4511465c89da  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_10.c
*************** dec037af65c7ffffad780f0faaa0445b  gcc/te
*** 83244,83249 ****
--- 92168,92175 ----
  368fc79060e80bf2d23ef3d0de9c0c8e  gcc/testsuite/gfortran.dg/PR100914.f90
  1f38ca1825a8f27a3875628f4e8e8a1a  gcc/testsuite/gfortran.dg/PR100915.c
  9b9e03c9455339de9f75dc20eb5d1277  gcc/testsuite/gfortran.dg/PR100915.f90
+ 11916021066381562b52aae402882f24  gcc/testsuite/gfortran.dg/PR105658.f90
+ 17a1c9942404bfc80912fe4e937bd2c3  gcc/testsuite/gfortran.dg/PR113061.f90
  36cd9c1e3875c80db22097b9c2ad49b3  gcc/testsuite/gfortran.dg/PR19754_1.f90
  e8f29c2ce9f345e588516849caa9db8f  gcc/testsuite/gfortran.dg/PR19754_2.f90
  7ea18cc404b53eee2348e3e57683bb56  gcc/testsuite/gfortran.dg/PR19872.f
*************** c59ad781dee7ec8e48a5f7ca04827100  gcc/te
*** 83397,83402 ****
--- 92323,92329 ----
  b44c3949481c974b2c6896675c16886c  gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90
  bf40ce1037630e11b4e57a82688e2f6b  gcc/testsuite/gfortran.dg/allocatable_function_1.f90
  1160767b791edf9bac41312fc92b112a  gcc/testsuite/gfortran.dg/allocatable_function_10.f90
+ 12cc7b1bfce5f24c29ac08f5fb522bb4  gcc/testsuite/gfortran.dg/allocatable_function_11.f90
  188ed4e66439989e93ff27a2bdcc86e5  gcc/testsuite/gfortran.dg/allocatable_function_2.f90
  92aecb9e6b0b8bf046c0afb4d76e55c6  gcc/testsuite/gfortran.dg/allocatable_function_3.f90
  395e73dc6644069f80ba22c2096b8078  gcc/testsuite/gfortran.dg/allocatable_function_4.f90
*************** a412f66041d99e3f1f3ee5dd93fb1ada  gcc/te
*** 83405,83410 ****
--- 92332,92339 ----
  d00145de5e69e4d964abaa0baebc8c0e  gcc/testsuite/gfortran.dg/allocatable_function_7.f90
  def8ea3836a599ae2a0d62d897cb9617  gcc/testsuite/gfortran.dg/allocatable_function_8.f90
  16255c1e6ab922bb040b8772e92bf5c2  gcc/testsuite/gfortran.dg/allocatable_function_9.f90
+ 9efb1e4a4c70aa7aba6a67dd3911c048  gcc/testsuite/gfortran.dg/allocatable_length.f90
+ e9e41fa5c57cedf0b0812d385d7c6e25  gcc/testsuite/gfortran.dg/allocatable_length_2.f90
  0eaf05114b7069214e95edca38338c8d  gcc/testsuite/gfortran.dg/allocatable_module_1.f90
  405f380e9ecba9b52cabf176e55381c9  gcc/testsuite/gfortran.dg/allocatable_scalar_1.f90
  50fa463fc31e07aec160d27e660bca34  gcc/testsuite/gfortran.dg/allocatable_scalar_10.f90
*************** bd4118fd768f3467307efc9602103e4c  gcc/te
*** 83485,83493 ****
  5bf2af08f2cfa8d41242dd6a637a7d09  gcc/testsuite/gfortran.dg/allocate_with_source_22.f03
  38cc9fdec67f82f032977fc8ad612b4c  gcc/testsuite/gfortran.dg/allocate_with_source_23.f03
  b1a373e9e419d53e737be3282523545d  gcc/testsuite/gfortran.dg/allocate_with_source_24.f90
! 31836f6ed153d10e8afd2831a52015e7  gcc/testsuite/gfortran.dg/allocate_with_source_25.f90
  f27e65cbaa74101ffeaa1c5d321f9f84  gcc/testsuite/gfortran.dg/allocate_with_source_26.f90
  8cd7bcf0efad3a6d0e1f5b5492a6cdf7  gcc/testsuite/gfortran.dg/allocate_with_source_3.f90
  6e6cc1fe5ed4f0f5c650bc8b6e0634b0  gcc/testsuite/gfortran.dg/allocate_with_source_4.f90
  6df025374b593e0339c7b746700d109e  gcc/testsuite/gfortran.dg/allocate_with_source_5.f90
  7f6a8b7d1a41fd76b5f7f49b5f8f978a  gcc/testsuite/gfortran.dg/allocate_with_source_6.f90
--- 92414,92427 ----
  5bf2af08f2cfa8d41242dd6a637a7d09  gcc/testsuite/gfortran.dg/allocate_with_source_22.f03
  38cc9fdec67f82f032977fc8ad612b4c  gcc/testsuite/gfortran.dg/allocate_with_source_23.f03
  b1a373e9e419d53e737be3282523545d  gcc/testsuite/gfortran.dg/allocate_with_source_24.f90
! f0618b11a21d03826df78d5c6b9cb863  gcc/testsuite/gfortran.dg/allocate_with_source_25.f90
  f27e65cbaa74101ffeaa1c5d321f9f84  gcc/testsuite/gfortran.dg/allocate_with_source_26.f90
+ 38e19991aabdffdc81e84c14648b7da3  gcc/testsuite/gfortran.dg/allocate_with_source_27.f90
+ bf834ed2e7b3a4fdc0884e37ef74f79c  gcc/testsuite/gfortran.dg/allocate_with_source_28.f90
+ e25b052c8bca1f8ce5fa8effeab8211f  gcc/testsuite/gfortran.dg/allocate_with_source_29.f90
  8cd7bcf0efad3a6d0e1f5b5492a6cdf7  gcc/testsuite/gfortran.dg/allocate_with_source_3.f90
+ 36143d6d452f37a71737c5fe5205c88d  gcc/testsuite/gfortran.dg/allocate_with_source_30.f90
+ e1f0d553d2add5275d3e131939bccf7c  gcc/testsuite/gfortran.dg/allocate_with_source_31.f90
  6e6cc1fe5ed4f0f5c650bc8b6e0634b0  gcc/testsuite/gfortran.dg/allocate_with_source_4.f90
  6df025374b593e0339c7b746700d109e  gcc/testsuite/gfortran.dg/allocate_with_source_5.f90
  7f6a8b7d1a41fd76b5f7f49b5f8f978a  gcc/testsuite/gfortran.dg/allocate_with_source_6.f90
*************** ce98de1957479e069ab10632545c5afa  gcc/te
*** 83507,83512 ****
--- 92441,92447 ----
  2aed41bf3197f0940198d4ddf8b5d161  gcc/testsuite/gfortran.dg/allocated_1.f90
  f6b88d144becd396845bef8ec9c702cf  gcc/testsuite/gfortran.dg/allocated_2.f90
  c48691ea63fd97e5aeaa840878e94e6f  gcc/testsuite/gfortran.dg/allocated_3.f90
+ e0bd0f22331aea24d8376dff830fdd68  gcc/testsuite/gfortran.dg/allocated_4.f90
  6a729cf1f6bf67aa0e2493345f68e5fc  gcc/testsuite/gfortran.dg/altreturn_1.f90
  7737f6be709e53725e0b337d535f3c27  gcc/testsuite/gfortran.dg/altreturn_10.f90
  1e118a52f3930c4325fb1d14c08da518  gcc/testsuite/gfortran.dg/altreturn_11.f90
*************** eae1c01e9cd07e06f5b2053c9c8e8d0c  gcc/te
*** 83523,83529 ****
  407349fe5dc0dd80df43de2e773a4cab  gcc/testsuite/gfortran.dg/ambiguous_reference_2.f90
  4a2d243fa69596ed5111843ecb20b347  gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90
  44a13c6b4d7ef49b6173c7e5be97aeba  gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90
! a571f9826c3751f6023a29733058e1c0  gcc/testsuite/gfortran.dg/analyzer/analyzer.exp
  2f368a8d04f58e4d6d300980282f68ea  gcc/testsuite/gfortran.dg/analyzer/deferred_character_25.f90
  d73a0bb9f41cc644e39e6ef9cb47095f  gcc/testsuite/gfortran.dg/analyzer/malloc-example.f90
  456395eb94ed204b99bab7e77b4c01de  gcc/testsuite/gfortran.dg/analyzer/malloc.f90
--- 92458,92464 ----
  407349fe5dc0dd80df43de2e773a4cab  gcc/testsuite/gfortran.dg/ambiguous_reference_2.f90
  4a2d243fa69596ed5111843ecb20b347  gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90
  44a13c6b4d7ef49b6173c7e5be97aeba  gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90
! 3a0d39da9189b08f411f09fe5fa2025c  gcc/testsuite/gfortran.dg/analyzer/analyzer.exp
  2f368a8d04f58e4d6d300980282f68ea  gcc/testsuite/gfortran.dg/analyzer/deferred_character_25.f90
  d73a0bb9f41cc644e39e6ef9cb47095f  gcc/testsuite/gfortran.dg/analyzer/malloc-example.f90
  456395eb94ed204b99bab7e77b4c01de  gcc/testsuite/gfortran.dg/analyzer/malloc.f90
*************** e1bf720c8b98d36e88fa0076e1648f6c  gcc/te
*** 83576,83581 ****
--- 92511,92518 ----
  3130a308b1d1471577ea44bf582c1bec  gcc/testsuite/gfortran.dg/arith_divide_no_check.f
  9f88f5ececa8e91571e1a769c9375575  gcc/testsuite/gfortran.dg/arithmetic_if.f90
  24b0244474414332a99316c4dd5ae1c4  gcc/testsuite/gfortran.dg/arithmetic_overflow_1.f90
+ 2f2e149faf63056b04ee297a55fc63eb  gcc/testsuite/gfortran.dg/arithmetic_overflow_2.f90
+ d8210c12388b205cb2b9135a95c054c0  gcc/testsuite/gfortran.dg/arithmetic_overflow_3.f90
  a9062c0997ab4b5ad27ce315aa0297b6  gcc/testsuite/gfortran.dg/array_1.f90
  273b15994d9555f1b73c7cfac1fe3512  gcc/testsuite/gfortran.dg/array_2.f90
  05a8e8fe320b8ec1d79b799c4d7a8693  gcc/testsuite/gfortran.dg/array_3.f90
*************** ca5ed9b7a4b086d732df1a505d87813b  gcc/te
*** 83717,83726 ****
  d6fad859ae9f254219fe0b62c52472a0  gcc/testsuite/gfortran.dg/arrayio_9.f90
  a7a4d71734bf9559e09017fe4616e065  gcc/testsuite/gfortran.dg/arrayio_derived_1.f90
  2b2c726e08ba1c26507c7392e63e1029  gcc/testsuite/gfortran.dg/arrayio_derived_2.f90
! b2e6281180a54adeebe04844e3233ce6  gcc/testsuite/gfortran.dg/asan/asan.exp
  3b8425a2f59699b47aac6da29c11aba9  gcc/testsuite/gfortran.dg/asan/associate_58.f90
  e9f58df1de071d2b106b16b3af8f6764  gcc/testsuite/gfortran.dg/asan/associate_59.f90
  66de6cb3bf07d14487491fac7d1ee72f  gcc/testsuite/gfortran.dg/asan/pointer_assign_16.f90
  28bbca8fc062ad301c676d4eb94d000d  gcc/testsuite/gfortran.dg/assign-debug.f90
  7ad5faf60f3a1cebebfbb2c9e52516d7  gcc/testsuite/gfortran.dg/assign.f90
  4fd44d78ecb3264e1dd3d6bbb0ca8ea6  gcc/testsuite/gfortran.dg/assign_1.f90
--- 92654,92665 ----
  d6fad859ae9f254219fe0b62c52472a0  gcc/testsuite/gfortran.dg/arrayio_9.f90
  a7a4d71734bf9559e09017fe4616e065  gcc/testsuite/gfortran.dg/arrayio_derived_1.f90
  2b2c726e08ba1c26507c7392e63e1029  gcc/testsuite/gfortran.dg/arrayio_derived_2.f90
! 1cef49dd7a1273223b3e64152f286f6c  gcc/testsuite/gfortran.dg/asan/asan.exp
  3b8425a2f59699b47aac6da29c11aba9  gcc/testsuite/gfortran.dg/asan/associate_58.f90
  e9f58df1de071d2b106b16b3af8f6764  gcc/testsuite/gfortran.dg/asan/associate_59.f90
  66de6cb3bf07d14487491fac7d1ee72f  gcc/testsuite/gfortran.dg/asan/pointer_assign_16.f90
+ 68c306b7235f43b669fee04a590362d9  gcc/testsuite/gfortran.dg/asan/pr110415-2.f90
+ 5ba36953a293a48947580de915906563  gcc/testsuite/gfortran.dg/asan/pr110415-3.f90
  28bbca8fc062ad301c676d4eb94d000d  gcc/testsuite/gfortran.dg/assign-debug.f90
  7ad5faf60f3a1cebebfbb2c9e52516d7  gcc/testsuite/gfortran.dg/assign.f90
  4fd44d78ecb3264e1dd3d6bbb0ca8ea6  gcc/testsuite/gfortran.dg/assign_1.f90
*************** bf4b33b033f4afc9c22972f4a83b0173  gcc/te
*** 83783,83801 ****
  87deb2aface215fdbc9c1bd641d49e46  gcc/testsuite/gfortran.dg/associate_47.f90
  7f0d491f64378402b0b0490c368b1523  gcc/testsuite/gfortran.dg/associate_48.f90
  c73b6100086b4db74c5f70aa2b7a9af6  gcc/testsuite/gfortran.dg/associate_49.f90
! 5dfaf5e9c3d8b8b8f835046ca42ccbf4  gcc/testsuite/gfortran.dg/associate_5.f03
  959ef371b303a2ac1ccc0114cb19ad3a  gcc/testsuite/gfortran.dg/associate_50.f90
  0203f4cea50a77f1e902a5cab76071cc  gcc/testsuite/gfortran.dg/associate_51.f90
  9227f9deb3946ff1f97accf4b6250ac7  gcc/testsuite/gfortran.dg/associate_52.f90
  c00a8dd4766b03f7af8034f983b17dae  gcc/testsuite/gfortran.dg/associate_53.f90
! 1ef13794d19d5e1db5cd12f4d0d15e2b  gcc/testsuite/gfortran.dg/associate_54.f90
! a33adc54f6651cbed7e49f420e779c05  gcc/testsuite/gfortran.dg/associate_55.f90
  e266ed6fc3d13470e97d022451deea4e  gcc/testsuite/gfortran.dg/associate_56.f90
  0dd4c19a8ee9b0815baed4922597d206  gcc/testsuite/gfortran.dg/associate_57.f90
  65dc8227452a184626d85e599ab1382d  gcc/testsuite/gfortran.dg/associate_58.f90
  825eaf5925a60c0372e9123d34b7b9cf  gcc/testsuite/gfortran.dg/associate_59.f90
  fe80c25bfc4d1e630472420bac3dc836  gcc/testsuite/gfortran.dg/associate_6.f03
  e9397925a65e83d2a17ebe43551198a1  gcc/testsuite/gfortran.dg/associate_60.f90
  ac2154aefe0a4ce981b3fa252235e2dd  gcc/testsuite/gfortran.dg/associate_7.f03
  3c2206420bb8717914aa447789b5f079  gcc/testsuite/gfortran.dg/associate_8.f03
  0406413659a92c10d44ed1f1576987b9  gcc/testsuite/gfortran.dg/associate_9.f03
--- 92722,92748 ----
  87deb2aface215fdbc9c1bd641d49e46  gcc/testsuite/gfortran.dg/associate_47.f90
  7f0d491f64378402b0b0490c368b1523  gcc/testsuite/gfortran.dg/associate_48.f90
  c73b6100086b4db74c5f70aa2b7a9af6  gcc/testsuite/gfortran.dg/associate_49.f90
! 633bdc9a7a7e720d64094bc4d2ce5196  gcc/testsuite/gfortran.dg/associate_5.f03
  959ef371b303a2ac1ccc0114cb19ad3a  gcc/testsuite/gfortran.dg/associate_50.f90
  0203f4cea50a77f1e902a5cab76071cc  gcc/testsuite/gfortran.dg/associate_51.f90
  9227f9deb3946ff1f97accf4b6250ac7  gcc/testsuite/gfortran.dg/associate_52.f90
  c00a8dd4766b03f7af8034f983b17dae  gcc/testsuite/gfortran.dg/associate_53.f90
! 0d8e2541ccff50f3ccdc418379d875b5  gcc/testsuite/gfortran.dg/associate_54.f90
! e7ae51b00d106d8ceb0ef926522a69b5  gcc/testsuite/gfortran.dg/associate_55.f90
  e266ed6fc3d13470e97d022451deea4e  gcc/testsuite/gfortran.dg/associate_56.f90
  0dd4c19a8ee9b0815baed4922597d206  gcc/testsuite/gfortran.dg/associate_57.f90
  65dc8227452a184626d85e599ab1382d  gcc/testsuite/gfortran.dg/associate_58.f90
  825eaf5925a60c0372e9123d34b7b9cf  gcc/testsuite/gfortran.dg/associate_59.f90
  fe80c25bfc4d1e630472420bac3dc836  gcc/testsuite/gfortran.dg/associate_6.f03
  e9397925a65e83d2a17ebe43551198a1  gcc/testsuite/gfortran.dg/associate_60.f90
+ 77bd515d1f4ba78a72eb362d7058cbe0  gcc/testsuite/gfortran.dg/associate_61.f90
+ 2381f00179da895cbcdcd70c1f3ab8e6  gcc/testsuite/gfortran.dg/associate_62.f90
+ cfa499af837d3b32fe00571e8815c469  gcc/testsuite/gfortran.dg/associate_63.f90
+ d55aaf53e0564c18418583355eae0c54  gcc/testsuite/gfortran.dg/associate_64.f90
+ 35f2c8a8cad8df881b7b87ad34b574b5  gcc/testsuite/gfortran.dg/associate_65.f90
+ 6985fcaf45c3fe072a3fe50dcc277574  gcc/testsuite/gfortran.dg/associate_66.f90
+ 6b3feeb45dccc6215d8a5a7a7f20e4d5  gcc/testsuite/gfortran.dg/associate_67.f90
+ 2f3835312210ac84efa12159dc226bf0  gcc/testsuite/gfortran.dg/associate_68.f90
  ac2154aefe0a4ce981b3fa252235e2dd  gcc/testsuite/gfortran.dg/associate_7.f03
  3c2206420bb8717914aa447789b5f079  gcc/testsuite/gfortran.dg/associate_8.f03
  0406413659a92c10d44ed1f1576987b9  gcc/testsuite/gfortran.dg/associate_9.f03
*************** bcbf9fad4afb806903e19c6e3defccbd  gcc/te
*** 83837,83843 ****
  c024a7d3605725f398283d3e6351a637  gcc/testsuite/gfortran.dg/assumed_len.f90
  4ea579a901f2ba867f7acca09b97b2d8  gcc/testsuite/gfortran.dg/assumed_present.f90
  553be15ef977f991d775c0fd75e2cf7d  gcc/testsuite/gfortran.dg/assumed_rank_1.f90
! 1b4b7864496f1def7c7b47799a0f5ad1  gcc/testsuite/gfortran.dg/assumed_rank_10.f90
  902ad8d66d78f508c5a7a8e21a177906  gcc/testsuite/gfortran.dg/assumed_rank_11.f90
  7b5ed633a8322cf6570abdcd1f341dad  gcc/testsuite/gfortran.dg/assumed_rank_12.f90
  93ff0ad792c55f57799a102080fa1412  gcc/testsuite/gfortran.dg/assumed_rank_13.f90
--- 92784,92790 ----
  c024a7d3605725f398283d3e6351a637  gcc/testsuite/gfortran.dg/assumed_len.f90
  4ea579a901f2ba867f7acca09b97b2d8  gcc/testsuite/gfortran.dg/assumed_present.f90
  553be15ef977f991d775c0fd75e2cf7d  gcc/testsuite/gfortran.dg/assumed_rank_1.f90
! 593ff93dc858f1b225edb727134ccc09  gcc/testsuite/gfortran.dg/assumed_rank_10.f90
  902ad8d66d78f508c5a7a8e21a177906  gcc/testsuite/gfortran.dg/assumed_rank_11.f90
  7b5ed633a8322cf6570abdcd1f341dad  gcc/testsuite/gfortran.dg/assumed_rank_12.f90
  93ff0ad792c55f57799a102080fa1412  gcc/testsuite/gfortran.dg/assumed_rank_13.f90
*************** a97591ca0f7ec68f4a27f9437d09cb92  gcc/te
*** 83860,83868 ****
  d3b33ae7c97fb128d15b3a49e16aa06e  gcc/testsuite/gfortran.dg/assumed_rank_5.f90
  99409441ba2b365b6496267b1c1ae7c6  gcc/testsuite/gfortran.dg/assumed_rank_6.f90
  82cb316b995fa88f4a4f25413f990b72  gcc/testsuite/gfortran.dg/assumed_rank_7.f90
! 9c427600c048a9ea99e32ddd2a6796c1  gcc/testsuite/gfortran.dg/assumed_rank_8.f90
  acebc3b5f82cb5b3adb2dfc611ab18a6  gcc/testsuite/gfortran.dg/assumed_rank_8_c.c
! d5695486fe6a7bb7d94e2599ecc5ec1a  gcc/testsuite/gfortran.dg/assumed_rank_9.f90
  9307e994084b547ff359d8f128f2c63b  gcc/testsuite/gfortran.dg/assumed_rank_bounds_1.f90
  a84a4ce73143d7e316b39e8a3f0d48c8  gcc/testsuite/gfortran.dg/assumed_rank_bounds_2.f90
  2397eab56d11f9cff183e45fba1aa162  gcc/testsuite/gfortran.dg/assumed_rank_bounds_3.f90
--- 92807,92815 ----
  d3b33ae7c97fb128d15b3a49e16aa06e  gcc/testsuite/gfortran.dg/assumed_rank_5.f90
  99409441ba2b365b6496267b1c1ae7c6  gcc/testsuite/gfortran.dg/assumed_rank_6.f90
  82cb316b995fa88f4a4f25413f990b72  gcc/testsuite/gfortran.dg/assumed_rank_7.f90
! effd3453cc8711ca9a0754df0fb3b697  gcc/testsuite/gfortran.dg/assumed_rank_8.f90
  acebc3b5f82cb5b3adb2dfc611ab18a6  gcc/testsuite/gfortran.dg/assumed_rank_8_c.c
! 233aea4642867e9f37e75fa9765f5a53  gcc/testsuite/gfortran.dg/assumed_rank_9.f90
  9307e994084b547ff359d8f128f2c63b  gcc/testsuite/gfortran.dg/assumed_rank_bounds_1.f90
  a84a4ce73143d7e316b39e8a3f0d48c8  gcc/testsuite/gfortran.dg/assumed_rank_bounds_2.f90
  2397eab56d11f9cff183e45fba1aa162  gcc/testsuite/gfortran.dg/assumed_rank_bounds_3.f90
*************** aaa14d6b1495ceba3d81c88a0d4874c5  gcc/te
*** 83884,83889 ****
--- 92831,92837 ----
  6196ee8a3a5f8e7bc5fb5032beb824b8  gcc/testsuite/gfortran.dg/assumed_type_14.f90
  1e502a6ae56ba9a10c513dd1bb955b6f  gcc/testsuite/gfortran.dg/assumed_type_16.f90
  05cb5d7dd6f73991a107f383f8378940  gcc/testsuite/gfortran.dg/assumed_type_17.f90
+ 07bbf825b4bd7ca5e597ea3fc27ecad4  gcc/testsuite/gfortran.dg/assumed_type_18.f90
  344877f098e4c4d5e54723572dcff5b8  gcc/testsuite/gfortran.dg/assumed_type_2.f90
  e7b3eba9964feebc5c27a78154c7b547  gcc/testsuite/gfortran.dg/assumed_type_2a.f90
  27b0b5ad82abb1d06990db9025f0c992  gcc/testsuite/gfortran.dg/assumed_type_3.f90
*************** feec967a6460656dffcd67e2440eb28d  gcc/te
*** 83971,83977 ****
  62e0dddc82e5528eb1851e887fcffbef  gcc/testsuite/gfortran.dg/bind-c-intent-out.f90
  1e97a2cc549ae76c480c160ef4a2470e  gcc/testsuite/gfortran.dg/bind_c_18.f90
  5057ed3328fade26b68ee446f3dbc8dc  gcc/testsuite/gfortran.dg/bind_c_array_params.f03
! 7dbf0c5abf809608d8b393d1a373d0c2  gcc/testsuite/gfortran.dg/bind_c_array_params_2.f90
  f6b29bf5e92ef393f02569bb463be585  gcc/testsuite/gfortran.dg/bind_c_array_params_3.f90
  d41af4b478a07609969794a1185527aa  gcc/testsuite/gfortran.dg/bind_c_array_params_3_aux.c
  64b1da6deddc65df427e780f5980935a  gcc/testsuite/gfortran.dg/bind_c_bool_1.f90
--- 92919,92925 ----
  62e0dddc82e5528eb1851e887fcffbef  gcc/testsuite/gfortran.dg/bind-c-intent-out.f90
  1e97a2cc549ae76c480c160ef4a2470e  gcc/testsuite/gfortran.dg/bind_c_18.f90
  5057ed3328fade26b68ee446f3dbc8dc  gcc/testsuite/gfortran.dg/bind_c_array_params.f03
! 12c5e061c2517af503188167717a424e  gcc/testsuite/gfortran.dg/bind_c_array_params_2.f90
  f6b29bf5e92ef393f02569bb463be585  gcc/testsuite/gfortran.dg/bind_c_array_params_3.f90
  d41af4b478a07609969794a1185527aa  gcc/testsuite/gfortran.dg/bind_c_array_params_3_aux.c
  64b1da6deddc65df427e780f5980935a  gcc/testsuite/gfortran.dg/bind_c_bool_1.f90
*************** ff3fa4734633ba59df679a8cddaf383e  gcc/te
*** 83984,83990 ****
  35e81ab598ef4857e8b943f797a45b86  gcc/testsuite/gfortran.dg/bind_c_char_7.f90
  7b574e4307059f3c15bfada86c579682  gcc/testsuite/gfortran.dg/bind_c_char_8.f90
  c3feb53bbd04b3e8d22fc6ad60e200af  gcc/testsuite/gfortran.dg/bind_c_char_9.f90
! 0be2d54dc75c98c5a88980df010d53b7  gcc/testsuite/gfortran.dg/bind_c_coms.f90
  4889c13f805870ea7ba977bf711c64c4  gcc/testsuite/gfortran.dg/bind_c_coms_driver.c
  0a1494edd75468c78d1a7384c1e5884c  gcc/testsuite/gfortran.dg/bind_c_contiguous.f90
  f0d7ecd83d8615f2d87f3c44e97b3d23  gcc/testsuite/gfortran.dg/bind_c_dts.f90
--- 92932,92938 ----
  35e81ab598ef4857e8b943f797a45b86  gcc/testsuite/gfortran.dg/bind_c_char_7.f90
  7b574e4307059f3c15bfada86c579682  gcc/testsuite/gfortran.dg/bind_c_char_8.f90
  c3feb53bbd04b3e8d22fc6ad60e200af  gcc/testsuite/gfortran.dg/bind_c_char_9.f90
! d521a83efe761d8e3c726cbe2a0ad20a  gcc/testsuite/gfortran.dg/bind_c_coms.f90
  4889c13f805870ea7ba977bf711c64c4  gcc/testsuite/gfortran.dg/bind_c_coms_driver.c
  0a1494edd75468c78d1a7384c1e5884c  gcc/testsuite/gfortran.dg/bind_c_contiguous.f90
  f0d7ecd83d8615f2d87f3c44e97b3d23  gcc/testsuite/gfortran.dg/bind_c_dts.f90
*************** be8936d928c2cd968e9d77975d4626be  gcc/te
*** 83997,84002 ****
--- 92945,92951 ----
  cb20c6d9ff58740bc410a0d861435a4d  gcc/testsuite/gfortran.dg/bind_c_implicit_vars.f03
  cb9ccf001da2d7d1cf77a7d2e9ebeed2  gcc/testsuite/gfortran.dg/bind_c_module.f90
  74a4370d67a610f90e4eed4db0901687  gcc/testsuite/gfortran.dg/bind_c_optional-1.f90
+ 65e0bb83cbf49d5a78d319d060fe4102  gcc/testsuite/gfortran.dg/bind_c_optional-2.f90
  fe8c5e542693077295c21e4aaab6c998  gcc/testsuite/gfortran.dg/bind_c_procs.f03
  55687585265263f1b2e68929e4c12de3  gcc/testsuite/gfortran.dg/bind_c_procs_2.f90
  67f38e9de2f12b98af2d4078c0fbac44  gcc/testsuite/gfortran.dg/bind_c_procs_3.f90
*************** fe8c5e542693077295c21e4aaab6c998  gcc/te
*** 84005,84011 ****
  a36b44815629dbcd75c464bc0fa19b07  gcc/testsuite/gfortran.dg/bind_c_usage_10_c.c
  8dafefdc5a4061f2510ef215d2b663ff  gcc/testsuite/gfortran.dg/bind_c_usage_11.f03
  c72b9de82bd36fb1a66cb73f1fc234be  gcc/testsuite/gfortran.dg/bind_c_usage_12.f03
! 5081cd93f685da759aa9346a1314df15  gcc/testsuite/gfortran.dg/bind_c_usage_13.f03
  653d36e16ddb0e9ae7b0ce688415e59c  gcc/testsuite/gfortran.dg/bind_c_usage_14.f03
  717658e3dda20a2456d24fb01548f751  gcc/testsuite/gfortran.dg/bind_c_usage_15.f90
  18e7d597ce3350fbb7aaf9bf978ac233  gcc/testsuite/gfortran.dg/bind_c_usage_16.f03
--- 92954,92960 ----
  a36b44815629dbcd75c464bc0fa19b07  gcc/testsuite/gfortran.dg/bind_c_usage_10_c.c
  8dafefdc5a4061f2510ef215d2b663ff  gcc/testsuite/gfortran.dg/bind_c_usage_11.f03
  c72b9de82bd36fb1a66cb73f1fc234be  gcc/testsuite/gfortran.dg/bind_c_usage_12.f03
! 30694fe25e805e1f5c68b2f308c84707  gcc/testsuite/gfortran.dg/bind_c_usage_13.f03
  653d36e16ddb0e9ae7b0ce688415e59c  gcc/testsuite/gfortran.dg/bind_c_usage_14.f03
  717658e3dda20a2456d24fb01548f751  gcc/testsuite/gfortran.dg/bind_c_usage_15.f90
  18e7d597ce3350fbb7aaf9bf978ac233  gcc/testsuite/gfortran.dg/bind_c_usage_16.f03
*************** d245d9e737fbf5c0213b3df7d060446c  gcc/te
*** 84038,84044 ****
  298c127c34080232f15365f9c6db6fc0  gcc/testsuite/gfortran.dg/bind_c_usage_7.f03
  df195f87abf669bdde944bcddc1b0ff8  gcc/testsuite/gfortran.dg/bind_c_usage_8.f03
  5be271a074f249c9f9a18bf854945cfe  gcc/testsuite/gfortran.dg/bind_c_usage_9.f03
! b4ca41d859dbd0ba1ef6ceb3740adf4d  gcc/testsuite/gfortran.dg/bind_c_vars.f90
  1045386fbecb818e51e4f827691c180a  gcc/testsuite/gfortran.dg/bind_c_vars_driver.c
  e3ed0a7ee1d06462d44eb459caf13083  gcc/testsuite/gfortran.dg/binding_c_table_15_1.f03
  94509e767501b7090ebb5ee664348878  gcc/testsuite/gfortran.dg/binding_label_tests.f03
--- 92987,92993 ----
  298c127c34080232f15365f9c6db6fc0  gcc/testsuite/gfortran.dg/bind_c_usage_7.f03
  df195f87abf669bdde944bcddc1b0ff8  gcc/testsuite/gfortran.dg/bind_c_usage_8.f03
  5be271a074f249c9f9a18bf854945cfe  gcc/testsuite/gfortran.dg/bind_c_usage_9.f03
! 4150a97b86a3d004c53f9f8f7495ba58  gcc/testsuite/gfortran.dg/bind_c_vars.f90
  1045386fbecb818e51e4f827691c180a  gcc/testsuite/gfortran.dg/bind_c_vars_driver.c
  e3ed0a7ee1d06462d44eb459caf13083  gcc/testsuite/gfortran.dg/binding_c_table_15_1.f03
  94509e767501b7090ebb5ee664348878  gcc/testsuite/gfortran.dg/binding_label_tests.f03
*************** f51770c9e128c7de21f5a23197bdf0c7  gcc/te
*** 84090,84095 ****
--- 93039,93045 ----
  c91185a3ccff03eaf3228522d82e998b  gcc/testsuite/gfortran.dg/block_14.f90
  90449ea3743d628deeed9105efb3d065  gcc/testsuite/gfortran.dg/block_15.f08
  32ce0fc033d0dabfb432fbabf6904563  gcc/testsuite/gfortran.dg/block_16.f08
+ 3c11755bcb25184e3524ac2842c42f70  gcc/testsuite/gfortran.dg/block_17.f90
  10f179cb673e09df610043e9f3876bb2  gcc/testsuite/gfortran.dg/block_2.f08
  c20765c7d7a394e2f5b7ef52556e7d8a  gcc/testsuite/gfortran.dg/block_3.f90
  e1627e8620425c4babefa34dcd289690  gcc/testsuite/gfortran.dg/block_4.f08
*************** a5a99907b8c623279a0b0d0db3958026  gcc/te
*** 84122,84127 ****
--- 93072,93079 ----
  8e06e8745650074e8cb2b65d5aab44a6  gcc/testsuite/gfortran.dg/bom_include.f90
  761d9eb1b46c67f846b7ea81652f2c9f  gcc/testsuite/gfortran.dg/bom_include.inc
  f5b6a54df6c2ecc49508d0a9f2caeee7  gcc/testsuite/gfortran.dg/bound_1.f90
+ a55e030873dd3ed21b29b10669bfe719  gcc/testsuite/gfortran.dg/bound_10.f90
+ 5b8dad0c0ec58dbd237acb8d502e7e6e  gcc/testsuite/gfortran.dg/bound_11.f90
  45001a1060a15e2bd6fb6fff362ce54c  gcc/testsuite/gfortran.dg/bound_2.f90
  4aea0814f3a1d876259efcc366c8a278  gcc/testsuite/gfortran.dg/bound_3.f90
  1f06cd6c63ba29e93e14f7eb5bf15cd0  gcc/testsuite/gfortran.dg/bound_4.f90
*************** c837dbfa3635dd41b5accfaadd35177e  gcc/te
*** 84146,84152 ****
  b16b14e80503f70d30cbefeb30a45109  gcc/testsuite/gfortran.dg/bounds_check_14.f90
  9c7c16884c10047b3f6f9d1f1fead983  gcc/testsuite/gfortran.dg/bounds_check_15.f90
  d35ce9760f77bd2d4bbbbd6554852080  gcc/testsuite/gfortran.dg/bounds_check_16.f90
! a0645f58d7ace0f67d18f1c73fdfe406  gcc/testsuite/gfortran.dg/bounds_check_17.f90
  0b4eefd6027e96ad691dd0deaa010ca4  gcc/testsuite/gfortran.dg/bounds_check_18.f90
  f77d86492e84d13e004ea59f1da3d69d  gcc/testsuite/gfortran.dg/bounds_check_19.f90
  b890668874e1bc07a00cd706581c6fd1  gcc/testsuite/gfortran.dg/bounds_check_2.f
--- 93098,93104 ----
  b16b14e80503f70d30cbefeb30a45109  gcc/testsuite/gfortran.dg/bounds_check_14.f90
  9c7c16884c10047b3f6f9d1f1fead983  gcc/testsuite/gfortran.dg/bounds_check_15.f90
  d35ce9760f77bd2d4bbbbd6554852080  gcc/testsuite/gfortran.dg/bounds_check_16.f90
! c1fcfb3c7888d8430eae908e54ff3d9d  gcc/testsuite/gfortran.dg/bounds_check_17.f90
  0b4eefd6027e96ad691dd0deaa010ca4  gcc/testsuite/gfortran.dg/bounds_check_18.f90
  f77d86492e84d13e004ea59f1da3d69d  gcc/testsuite/gfortran.dg/bounds_check_19.f90
  b890668874e1bc07a00cd706581c6fd1  gcc/testsuite/gfortran.dg/bounds_check_2.f
*************** b890668874e1bc07a00cd706581c6fd1  gcc/te
*** 84154,84159 ****
--- 93106,93112 ----
  7577ff710a256393f1fb5c102e69baa4  gcc/testsuite/gfortran.dg/bounds_check_21.f90
  e585af8e23493967fa5b80361d02ccd5  gcc/testsuite/gfortran.dg/bounds_check_22.f90
  c255cbccd21b3a2d3ab21d32d680086e  gcc/testsuite/gfortran.dg/bounds_check_23.f90
+ c3c402867cc595cbe2e51291eb207948  gcc/testsuite/gfortran.dg/bounds_check_24.f90
  1ff91e96da26ef6e7839e53e2b71499d  gcc/testsuite/gfortran.dg/bounds_check_3.f90
  a9119407c225c716d99c309178d77952  gcc/testsuite/gfortran.dg/bounds_check_4.f90
  167a95fa41d2abf20f66591e1389d059  gcc/testsuite/gfortran.dg/bounds_check_5.f90
*************** e06600cf8f1de183da16e99ce1747e70  gcc/te
*** 84173,84178 ****
--- 93126,93135 ----
  3eb71e71d36f8988db1e8934d157ec58  gcc/testsuite/gfortran.dg/bounds_check_fail_2.f90
  b94e6520bb4d9fc5a33c40c5e524d9c6  gcc/testsuite/gfortran.dg/bounds_check_fail_3.f90
  2caea0d3fcb22f340b61190a4263ca51  gcc/testsuite/gfortran.dg/bounds_check_fail_4.f90
+ fd12b344ae807883e9df8ae1c500b76e  gcc/testsuite/gfortran.dg/bounds_check_fail_5.f90
+ 1a8a0b0964d73da4dd5573c929d13b1a  gcc/testsuite/gfortran.dg/bounds_check_fail_6.f90
+ c131c4292f9caca331ac55659391274b  gcc/testsuite/gfortran.dg/bounds_check_fail_7.f90
+ 9eee4184e7f1acb5b6b4f8d733773d27  gcc/testsuite/gfortran.dg/bounds_check_fail_8.f90
  47cd7c4192bcfdf1b9792fc175c39955  gcc/testsuite/gfortran.dg/bounds_check_strlen_1.f90
  f33baaa73ebbc0a23938401a171f0b68  gcc/testsuite/gfortran.dg/bounds_check_strlen_2.f90
  f145202f2e2e4fd5f13808086de4de58  gcc/testsuite/gfortran.dg/bounds_check_strlen_3.f90
*************** fac1e0eef372f71d706c30f1311cf959  gcc/te
*** 84231,84237 ****
  47a7c8e0cbe96b57e059822a941e38ff  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-7.f90
  9a80266656ceb43a0a581916f7718edf  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-8.f90
  a4c3a5f902ab2517633f83862a2d36db  gcc/testsuite/gfortran.dg/c-interop/assumed-type-dummy.f90
! 73898eb457be0bc70ed0a1fce6646a40  gcc/testsuite/gfortran.dg/c-interop/c-interop.exp
  309302f256fed78b85c12bcd85ae1482  gcc/testsuite/gfortran.dg/c-interop/c1255-1.f90
  cd5b73b03b44373ae724b6b48dcfe263  gcc/testsuite/gfortran.dg/c-interop/c1255-2.f90
  b856ec2d6049479b49cfdb5d1ae43550  gcc/testsuite/gfortran.dg/c-interop/c1255a.f90
--- 93188,93194 ----
  47a7c8e0cbe96b57e059822a941e38ff  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-7.f90
  9a80266656ceb43a0a581916f7718edf  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-8.f90
  a4c3a5f902ab2517633f83862a2d36db  gcc/testsuite/gfortran.dg/c-interop/assumed-type-dummy.f90
! bba3b9b2743bc024ca809a8e542877ac  gcc/testsuite/gfortran.dg/c-interop/c-interop.exp
  309302f256fed78b85c12bcd85ae1482  gcc/testsuite/gfortran.dg/c-interop/c1255-1.f90
  cd5b73b03b44373ae724b6b48dcfe263  gcc/testsuite/gfortran.dg/c-interop/c1255-2.f90
  b856ec2d6049479b49cfdb5d1ae43550  gcc/testsuite/gfortran.dg/c-interop/c1255a.f90
*************** c346b2fefbaf50e43e1029f18ab9a9ef  gcc/te
*** 84445,84450 ****
--- 93402,93408 ----
  198e45e07722d7e2520bc4b280a49219  gcc/testsuite/gfortran.dg/c_f_pointer_tests_6.f90
  0b80eb392f4e3e83bc15612cb9208b4d  gcc/testsuite/gfortran.dg/c_f_pointer_tests_7.f90
  3ebb7270a1c7e8ff9b05aa304958ca0b  gcc/testsuite/gfortran.dg/c_f_pointer_tests_8.f90
+ f82e9b9c0fd2496c70490c91bc661d8b  gcc/testsuite/gfortran.dg/c_f_pointer_tests_9.f90
  d4987bd92136fbe1dc0dbed4d878bc35  gcc/testsuite/gfortran.dg/c_f_tests_driver.c
  6225c3ed3e9774c1780dabafdb403bbb  gcc/testsuite/gfortran.dg/c_funloc_tests.f03
  e3d7c198fc7009b223f98b2e4884b462  gcc/testsuite/gfortran.dg/c_funloc_tests_2.f03
*************** d55ff65ae64c08b6f8d2c09a69250e6e  gcc/te
*** 84515,84521 ****
  aa59a3baf7de5feb8be06ee05faaa11a  gcc/testsuite/gfortran.dg/c_sizeof_3.f90
  184fc7c04eaf8fc894c4849895ae47ef  gcc/testsuite/gfortran.dg/c_sizeof_4.f90
  10969643d8dd76f6ab66a3a0f7f3ad9c  gcc/testsuite/gfortran.dg/c_sizeof_5.f90
! 674fcb118703afdce719a2584839b8ed  gcc/testsuite/gfortran.dg/c_sizeof_6.f90
  ae61c2dcc3bff5189d5648a6564b3745  gcc/testsuite/gfortran.dg/change_symbol_attributes_1.f90
  bb5cfe93aa3c0d2700259294558753b1  gcc/testsuite/gfortran.dg/char4-subscript.f90
  d9c1c06d7cddb2c4bf6dfda8b7c61b5f  gcc/testsuite/gfortran.dg/char4_decl-2.f90
--- 93473,93481 ----
  aa59a3baf7de5feb8be06ee05faaa11a  gcc/testsuite/gfortran.dg/c_sizeof_3.f90
  184fc7c04eaf8fc894c4849895ae47ef  gcc/testsuite/gfortran.dg/c_sizeof_4.f90
  10969643d8dd76f6ab66a3a0f7f3ad9c  gcc/testsuite/gfortran.dg/c_sizeof_5.f90
! ee214ed12d039774c658fbaa998e3596  gcc/testsuite/gfortran.dg/c_sizeof_6.f90
! de233fa28b151c648d23e3afb7fd85cb  gcc/testsuite/gfortran.dg/c_sizeof_7.f90
! 9ba15a11f52248043ebfc1d96bb2912c  gcc/testsuite/gfortran.dg/c_sizeof_8.f90
  ae61c2dcc3bff5189d5648a6564b3745  gcc/testsuite/gfortran.dg/change_symbol_attributes_1.f90
  bb5cfe93aa3c0d2700259294558753b1  gcc/testsuite/gfortran.dg/char4-subscript.f90
  d9c1c06d7cddb2c4bf6dfda8b7c61b5f  gcc/testsuite/gfortran.dg/char4_decl-2.f90
*************** ceda0022b0324d13515320cbc5635d79  gcc/te
*** 84824,84835 ****
  72674e7da2e86dedff70420da3d45132  gcc/testsuite/gfortran.dg/coarray/alloc_comp_3.f90
  734994954589fd9c52a0f9f5e65df97a  gcc/testsuite/gfortran.dg/coarray/alloc_comp_4.f90
  5b5ec82dd29e86e4e8c1ffdcc8f1fff4  gcc/testsuite/gfortran.dg/coarray/alloc_comp_5.f90
  0383efb987613ad7ba5897bf853a7c3d  gcc/testsuite/gfortran.dg/coarray/allocate_errgmsg.f90
  51ba06c48080eb24ae44aa2f80ce06e7  gcc/testsuite/gfortran.dg/coarray/array_temporary-1.f90
  360f9437516a1e9e5cdfcc0773038d80  gcc/testsuite/gfortran.dg/coarray/array_temporary.f90
  21f18575fa619cf0b7fba877cb8db97f  gcc/testsuite/gfortran.dg/coarray/atomic_1.f90
  0268d93e6cda40e43a982efb5b3db96a  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! 966bbc92a60145bef8575c506f15e072  gcc/testsuite/gfortran.dg/coarray/caf.exp
  07112584e3674fe4fcd6065abdaec329  gcc/testsuite/gfortran.dg/coarray/coarray_allocated.f90
  a8535ad2a515ec0df0ef730df6f14831  gcc/testsuite/gfortran.dg/coarray/codimension.f90
  5458460c74c7764eb6fc6ca41f3520cb  gcc/testsuite/gfortran.dg/coarray/codimension_2.f90
--- 93784,93797 ----
  72674e7da2e86dedff70420da3d45132  gcc/testsuite/gfortran.dg/coarray/alloc_comp_3.f90
  734994954589fd9c52a0f9f5e65df97a  gcc/testsuite/gfortran.dg/coarray/alloc_comp_4.f90
  5b5ec82dd29e86e4e8c1ffdcc8f1fff4  gcc/testsuite/gfortran.dg/coarray/alloc_comp_5.f90
+ 8b5117dc7ef6ac2ef489d65c72c69eca  gcc/testsuite/gfortran.dg/coarray/alloc_comp_6.f90
+ c3ff223c334c03e16db45ce26e2eea4a  gcc/testsuite/gfortran.dg/coarray/alloc_comp_7.f90
  0383efb987613ad7ba5897bf853a7c3d  gcc/testsuite/gfortran.dg/coarray/allocate_errgmsg.f90
  51ba06c48080eb24ae44aa2f80ce06e7  gcc/testsuite/gfortran.dg/coarray/array_temporary-1.f90
  360f9437516a1e9e5cdfcc0773038d80  gcc/testsuite/gfortran.dg/coarray/array_temporary.f90
  21f18575fa619cf0b7fba877cb8db97f  gcc/testsuite/gfortran.dg/coarray/atomic_1.f90
  0268d93e6cda40e43a982efb5b3db96a  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! ab7568509313e64254b8f521311ddb3a  gcc/testsuite/gfortran.dg/coarray/caf.exp
  07112584e3674fe4fcd6065abdaec329  gcc/testsuite/gfortran.dg/coarray/coarray_allocated.f90
  a8535ad2a515ec0df0ef730df6f14831  gcc/testsuite/gfortran.dg/coarray/codimension.f90
  5458460c74c7764eb6fc6ca41f3520cb  gcc/testsuite/gfortran.dg/coarray/codimension_2.f90
*************** be78a9a8d107997dfb6a26a694e767f6  gcc/te
*** 85020,85028 ****
  7c19739bc10d458b120fb0ab4ca4dbf2  gcc/testsuite/gfortran.dg/coarray_poly_3.f90
  83e23744ec4b7e3e2b0115d1c8949dc6  gcc/testsuite/gfortran.dg/coarray_poly_4.f90
  c36ce428dcaec854709426fbefc380b0  gcc/testsuite/gfortran.dg/coarray_poly_5.f90
! ae191d945f94558bf67bd86a9035dc26  gcc/testsuite/gfortran.dg/coarray_poly_6.f90
! 5e2ee8605be13759d0fb3c20d655c64c  gcc/testsuite/gfortran.dg/coarray_poly_7.f90
! fc7ba8781070ef3c0da1ee4929b801e4  gcc/testsuite/gfortran.dg/coarray_poly_8.f90
  4a4a75de4af949451d8e1d1beaf8318c  gcc/testsuite/gfortran.dg/coarray_poly_9.f90
  ec4bb6022b07b7f8cb9cc0cbc6b36d3f  gcc/testsuite/gfortran.dg/coarray_ptr_comp_1.f08
  7653a4686829bd63b9b7a535c8b7c035  gcc/testsuite/gfortran.dg/coarray_ptr_comp_2.f08
--- 93982,93990 ----
  7c19739bc10d458b120fb0ab4ca4dbf2  gcc/testsuite/gfortran.dg/coarray_poly_3.f90
  83e23744ec4b7e3e2b0115d1c8949dc6  gcc/testsuite/gfortran.dg/coarray_poly_4.f90
  c36ce428dcaec854709426fbefc380b0  gcc/testsuite/gfortran.dg/coarray_poly_5.f90
! aeaa6630b4a7fdbf728d1ac6c3330841  gcc/testsuite/gfortran.dg/coarray_poly_6.f90
! d11ef8bb7536503099921eebfd2332b1  gcc/testsuite/gfortran.dg/coarray_poly_7.f90
! 35805debcf262207e1ddfcac6614145f  gcc/testsuite/gfortran.dg/coarray_poly_8.f90
  4a4a75de4af949451d8e1d1beaf8318c  gcc/testsuite/gfortran.dg/coarray_poly_9.f90
  ec4bb6022b07b7f8cb9cc0cbc6b36d3f  gcc/testsuite/gfortran.dg/coarray_ptr_comp_1.f08
  7653a4686829bd63b9b7a535c8b7c035  gcc/testsuite/gfortran.dg/coarray_ptr_comp_2.f08
*************** d3d62d1603bee1c8f8a03953e6eebba0  gcc/te
*** 85067,85072 ****
--- 94029,94035 ----
  d5539b20ee7c35bfc0fcb236052a68ea  gcc/testsuite/gfortran.dg/common_25.f90
  70a95b679d7df7dca534b69660b7f48b  gcc/testsuite/gfortran.dg/common_26.f90
  d92cf739756be07096c110006ed91771  gcc/testsuite/gfortran.dg/common_27.f90
+ 1ce86df2c2a8e3d119fe78ca581309a3  gcc/testsuite/gfortran.dg/common_28.f90
  75ce44e9a564ff39f5a9738947fd61f0  gcc/testsuite/gfortran.dg/common_3.f90
  d682a44a03643151e3f0046fc043a5f0  gcc/testsuite/gfortran.dg/common_4.f90
  d2308c0b53d688aae1dcd0e309cb63c2  gcc/testsuite/gfortran.dg/common_5.f
*************** b3bd24f0c174a1694bc02107df47994b  gcc/te
*** 85123,85128 ****
--- 94086,94094 ----
  d679116c9da43355228e413e4d728bf6  gcc/testsuite/gfortran.dg/contiguous_10.f90
  cb50185eaf87f5357dad5873642eec33  gcc/testsuite/gfortran.dg/contiguous_11.f90
  68eb9244ed2d584beb39fffd7e64f96d  gcc/testsuite/gfortran.dg/contiguous_12.f90
+ 5a8601e6c51ea544ca9179e464325eb0  gcc/testsuite/gfortran.dg/contiguous_13.f90
+ 52a454e4516aaff2011d2696c96ca5ab  gcc/testsuite/gfortran.dg/contiguous_14.f90
+ 8621637c284842966acb59cdbfe4e51a  gcc/testsuite/gfortran.dg/contiguous_15.f90
  9975df3f787a3eaea63dd5664ff235eb  gcc/testsuite/gfortran.dg/contiguous_2.f90
  a59d0430a52a3cf47c280856725dee23  gcc/testsuite/gfortran.dg/contiguous_3.f90
  b81d56e35fe81ed4c9f6f67cca8a0ab2  gcc/testsuite/gfortran.dg/contiguous_4.f90
*************** c328c2f39088b37a00d617231b1b4ba4  gcc/te
*** 85139,85144 ****
--- 94105,94113 ----
  6338b1bd0bab5dcc6fd438e06a3741cf  gcc/testsuite/gfortran.dg/continuation_14.f
  0bc57d8d644674307567cf8e56a49f4d  gcc/testsuite/gfortran.dg/continuation_15.f90
  2446b64e901d92fd4f806ad312a1c4c9  gcc/testsuite/gfortran.dg/continuation_16.f90
+ 37488f50f0e9ec8ca642d24b00636b8e  gcc/testsuite/gfortran.dg/continuation_17.f90
+ 6a25f6d0b886172d2388ab26f1082d61  gcc/testsuite/gfortran.dg/continuation_18.f90
+ d0fc55e214e4dbf7c07897373b9414f2  gcc/testsuite/gfortran.dg/continuation_19.f
  49739f5cf7585f44f02462b166a5f926  gcc/testsuite/gfortran.dg/continuation_2.f90
  a173a721e029bdc0b90a673b0904b8d6  gcc/testsuite/gfortran.dg/continuation_3.f90
  7ec20aeb68f3228eeccb78e6acbb62b7  gcc/testsuite/gfortran.dg/continuation_4.f90
*************** ad1671c9a89b0639af833c746c8e6caf  gcc/te
*** 85189,85200 ****
  ba80841da4b4a0e5982fbcf93b136bfc  gcc/testsuite/gfortran.dg/data_array_4.f90
  ad3a74b0315d8672366cd5981640cd34  gcc/testsuite/gfortran.dg/data_array_5.f90
  76386a9e40ac13aed9db89cefaa67ba5  gcc/testsuite/gfortran.dg/data_array_6.f
! c283a95e07da2c4668245b44f6b8815c  gcc/testsuite/gfortran.dg/data_bounds_1.f90
  1d8e5714f3956bc9d70cac8511d45667  gcc/testsuite/gfortran.dg/data_char_1.f90
  1f7b6464a7e2f21249dc7d689d91819f  gcc/testsuite/gfortran.dg/data_char_2.f90
  b7a24b5cb693244e2892fc1269ed73bc  gcc/testsuite/gfortran.dg/data_char_3.f90
! 2f20be0b1d9f979aff74a5ad51f01972  gcc/testsuite/gfortran.dg/data_char_4.f90
! aa27e65759a30b905af016051e81f6df  gcc/testsuite/gfortran.dg/data_char_5.f90
  43b77886b68f7c4f9a354c43d800dbcf  gcc/testsuite/gfortran.dg/data_components_1.f90
  5810d819d200905a36ae8cb98ed752bc  gcc/testsuite/gfortran.dg/data_constraints_1.f90
  3ece70a5bb9b24671d4c8179edf9b97a  gcc/testsuite/gfortran.dg/data_constraints_2.f90
--- 94158,94172 ----
  ba80841da4b4a0e5982fbcf93b136bfc  gcc/testsuite/gfortran.dg/data_array_4.f90
  ad3a74b0315d8672366cd5981640cd34  gcc/testsuite/gfortran.dg/data_array_5.f90
  76386a9e40ac13aed9db89cefaa67ba5  gcc/testsuite/gfortran.dg/data_array_6.f
! ed87e128dc7c1d173baa0f5e03cb7d8b  gcc/testsuite/gfortran.dg/data_array_7.f90
! 5efe20613e13e5e486fe1f6f5fdacd1e  gcc/testsuite/gfortran.dg/data_bounds_1.f90
! 2e2ee30aed9c3793630516ab06e057dd  gcc/testsuite/gfortran.dg/data_bounds_2.f90
  1d8e5714f3956bc9d70cac8511d45667  gcc/testsuite/gfortran.dg/data_char_1.f90
  1f7b6464a7e2f21249dc7d689d91819f  gcc/testsuite/gfortran.dg/data_char_2.f90
  b7a24b5cb693244e2892fc1269ed73bc  gcc/testsuite/gfortran.dg/data_char_3.f90
! 816efd0cc5abb568cc1235f6a2e3aa29  gcc/testsuite/gfortran.dg/data_char_4.f90
! 46d480333ac04857b5dbed188430d90f  gcc/testsuite/gfortran.dg/data_char_5.f90
! f94aea7a18a220e8d4f7d5b088f87a0e  gcc/testsuite/gfortran.dg/data_char_6.f90
  43b77886b68f7c4f9a354c43d800dbcf  gcc/testsuite/gfortran.dg/data_components_1.f90
  5810d819d200905a36ae8cb98ed752bc  gcc/testsuite/gfortran.dg/data_constraints_1.f90
  3ece70a5bb9b24671d4c8179edf9b97a  gcc/testsuite/gfortran.dg/data_constraints_2.f90
*************** b85f62a13d3cc36bdf0f22f1d532889f  gcc/te
*** 85205,85219 ****
--- 94177,94197 ----
  433440f2bc7400a428ec319b70a4c7c4  gcc/testsuite/gfortran.dg/data_initialized.f90
  f7e6506db3e2a2cf1acda6f7ed5bb367  gcc/testsuite/gfortran.dg/data_initialized_2.f90
  7c629d12ce2ea9831030b62a2361a453  gcc/testsuite/gfortran.dg/data_initialized_3.f90
+ f2645f1fb686b434b8e069203f77e6d5  gcc/testsuite/gfortran.dg/data_initialized_4.f90
  f46c4682d75c7544431499a708875e0d  gcc/testsuite/gfortran.dg/data_inquiry_ref.f90
  fec356f784a1836f74f3dfdcc2aef50a  gcc/testsuite/gfortran.dg/data_invalid.f90
  75c2602db09095225b6558bf5ee7a00d  gcc/testsuite/gfortran.dg/data_namelist_conflict.f90
  bca7e4fe42af4bdc8c5dce540cb962e5  gcc/testsuite/gfortran.dg/data_pointer_1.f90
  9d3ff2b5b9a7538d379089fe08ecb0b3  gcc/testsuite/gfortran.dg/data_pointer_2.f90
+ a2552f985f60c37bffc14327b45be315  gcc/testsuite/gfortran.dg/data_pointer_3.f90
  20f92cb056c2de7e78393cf1bd92793a  gcc/testsuite/gfortran.dg/data_stmt_pointer.f90
  ea42e7a04380338a9946ffc999ea6767  gcc/testsuite/gfortran.dg/data_substring.f90
  503918b2128c29daa249b849ffe01756  gcc/testsuite/gfortran.dg/data_value_1.f90
+ 09da2b92351d33434fa6ed244f192ff1  gcc/testsuite/gfortran.dg/data_vector_section.f90
  1c9c456997563767560c42bbc7a35f29  gcc/testsuite/gfortran.dg/date_and_time_1.f90
+ 770b7a0cb5a253c7ea81566e359f7e47  gcc/testsuite/gfortran.dg/date_and_time_2.f90
+ 5fe4112755b39321a3b3d7d8dc4ea70e  gcc/testsuite/gfortran.dg/date_and_time_3.f90
+ 6aec088bb2ee24aecee422aa6b6c7244  gcc/testsuite/gfortran.dg/date_and_time_4.f90
  14af14ea46e3fb85fe303f1c5942b0fa  gcc/testsuite/gfortran.dg/deallocate_alloc_opt_1.f90
  079ebbd99b715d218c0619d77fffa7f4  gcc/testsuite/gfortran.dg/deallocate_alloc_opt_2.f90
  3ddb3f58e99f728c3c7b34b22ec9e56b  gcc/testsuite/gfortran.dg/deallocate_alloc_opt_3.f90
*************** adf3e611b5d9dd41324a93faee4fe2c9  gcc/te
*** 85223,85229 ****
  88c4e7deca20be3e33e616092b99e017  gcc/testsuite/gfortran.dg/deallocate_error_4.f90
  70bd882ce015f7f82966397339ec0d16  gcc/testsuite/gfortran.dg/deallocate_stat.f90
  b2d4c30c54f17f05d0e6d3ae921a7be8  gcc/testsuite/gfortran.dg/deallocate_stat_2.f90
! 7a524962477066ff0fc186de8319d575  gcc/testsuite/gfortran.dg/debug/debug.exp
  c8fe955f02d446b949b45194c7d29caf  gcc/testsuite/gfortran.dg/debug/pr35154-dwarf2.f
  9afde2cd5a8b47b5c4a2b2438fcd4de6  gcc/testsuite/gfortran.dg/debug/pr37738.f
  788a70497a0a2ddba0abf97330a47c01  gcc/testsuite/gfortran.dg/debug/pr43166.f
--- 94201,94207 ----
  88c4e7deca20be3e33e616092b99e017  gcc/testsuite/gfortran.dg/deallocate_error_4.f90
  70bd882ce015f7f82966397339ec0d16  gcc/testsuite/gfortran.dg/deallocate_stat.f90
  b2d4c30c54f17f05d0e6d3ae921a7be8  gcc/testsuite/gfortran.dg/deallocate_stat_2.f90
! 301d6e3f859562018247d4034b3c4b44  gcc/testsuite/gfortran.dg/debug/debug.exp
  c8fe955f02d446b949b45194c7d29caf  gcc/testsuite/gfortran.dg/debug/pr35154-dwarf2.f
  9afde2cd5a8b47b5c4a2b2438fcd4de6  gcc/testsuite/gfortran.dg/debug/pr37738.f
  788a70497a0a2ddba0abf97330a47c01  gcc/testsuite/gfortran.dg/debug/pr43166.f
*************** ea87431a0369f9e7268297efe801335a  gcc/te
*** 85292,85298 ****
  762985a925b90674163cd0316a6f3ff0  gcc/testsuite/gfortran.dg/dec_logical_xor_1.f90
  519c3622603d8bdfcdd819606ab71a39  gcc/testsuite/gfortran.dg/dec_logical_xor_2.f90
  7634f260da3c6ee6123a7feaf3e1ab68  gcc/testsuite/gfortran.dg/dec_logical_xor_3.f03
! b9f5c4479004d5779cf508b8e9ab6bd5  gcc/testsuite/gfortran.dg/dec_math.f90
  11fbf6587979490cca68492521824101  gcc/testsuite/gfortran.dg/dec_math_2.f90
  f007474e5e62779dd82a956460020608  gcc/testsuite/gfortran.dg/dec_math_3.f90
  89e13391077c863487552207c651a1aa  gcc/testsuite/gfortran.dg/dec_math_4.f90
--- 94270,94276 ----
  762985a925b90674163cd0316a6f3ff0  gcc/testsuite/gfortran.dg/dec_logical_xor_1.f90
  519c3622603d8bdfcdd819606ab71a39  gcc/testsuite/gfortran.dg/dec_logical_xor_2.f90
  7634f260da3c6ee6123a7feaf3e1ab68  gcc/testsuite/gfortran.dg/dec_logical_xor_3.f03
! 8d3b7a76092171be38187b81f8a3ec85  gcc/testsuite/gfortran.dg/dec_math.f90
  11fbf6587979490cca68492521824101  gcc/testsuite/gfortran.dg/dec_math_2.f90
  f007474e5e62779dd82a956460020608  gcc/testsuite/gfortran.dg/dec_math_3.f90
  89e13391077c863487552207c651a1aa  gcc/testsuite/gfortran.dg/dec_math_4.f90
*************** a1e709d7c93853353c0797ba2949dca8  gcc/te
*** 85512,85518 ****
  e5f02b68e5aa2fee50c3ff70ad3d8f97  gcc/testsuite/gfortran.dg/derived_comp_array_ref_5.f90
  026bd8fa710214d25691eae8c1dbcdfd  gcc/testsuite/gfortran.dg/derived_comp_array_ref_6.f90
  0bee796fdb071ab50d5faf5c678fefa5  gcc/testsuite/gfortran.dg/derived_comp_array_ref_7.f90
! 3ac6e6c4ed41e85971024e19ad69e6a1  gcc/testsuite/gfortran.dg/derived_comp_array_ref_8.f90
  568b11dc7307172904079506d19d6593  gcc/testsuite/gfortran.dg/derived_constructor_char_1.f90
  36d65cd99e01688bd380279fd0c74558  gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90
  3c2f8f5e24883308b8a24313e9e5df89  gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
--- 94490,94496 ----
  e5f02b68e5aa2fee50c3ff70ad3d8f97  gcc/testsuite/gfortran.dg/derived_comp_array_ref_5.f90
  026bd8fa710214d25691eae8c1dbcdfd  gcc/testsuite/gfortran.dg/derived_comp_array_ref_6.f90
  0bee796fdb071ab50d5faf5c678fefa5  gcc/testsuite/gfortran.dg/derived_comp_array_ref_7.f90
! 9fbdd747401a2ec50f066475c79222bc  gcc/testsuite/gfortran.dg/derived_comp_array_ref_8.f90
  568b11dc7307172904079506d19d6593  gcc/testsuite/gfortran.dg/derived_constructor_char_1.f90
  36d65cd99e01688bd380279fd0c74558  gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90
  3c2f8f5e24883308b8a24313e9e5df89  gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
*************** b90644647498c9ab9c17c0d5ea8d1b82  gcc/te
*** 85524,85530 ****
  b2ca02520bfaffc03c538a5319e61893  gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
  a4520e3938bf347c0b9e1003348fd3b6  gcc/testsuite/gfortran.dg/derived_constructor_comps_7.f90
  cff987fa6f89201aa37245231d20c023  gcc/testsuite/gfortran.dg/derived_external_function_1.f90
! e08a65ae23ffa55d956b33c09e1c4cb8  gcc/testsuite/gfortran.dg/derived_function_interface_1.f90
  fdf6add00f0bd7ce436abe942eb65cf3  gcc/testsuite/gfortran.dg/derived_init_1.f90
  7f4a9d70ecb927e710c83b20b3a90df5  gcc/testsuite/gfortran.dg/derived_init_2.f90
  83f56ef2860b76c167321eddfa3089b3  gcc/testsuite/gfortran.dg/derived_init_3.f90
--- 94502,94508 ----
  b2ca02520bfaffc03c538a5319e61893  gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
  a4520e3938bf347c0b9e1003348fd3b6  gcc/testsuite/gfortran.dg/derived_constructor_comps_7.f90
  cff987fa6f89201aa37245231d20c023  gcc/testsuite/gfortran.dg/derived_external_function_1.f90
! 9ec4e99aea8dbcc56d952be32f63911c  gcc/testsuite/gfortran.dg/derived_function_interface_1.f90
  fdf6add00f0bd7ce436abe942eb65cf3  gcc/testsuite/gfortran.dg/derived_init_1.f90
  7f4a9d70ecb927e710c83b20b3a90df5  gcc/testsuite/gfortran.dg/derived_init_2.f90
  83f56ef2860b76c167321eddfa3089b3  gcc/testsuite/gfortran.dg/derived_init_3.f90
*************** cf5153f1f09bb80f5a964ce90c83a5dc  gcc/te
*** 85542,85551 ****
  b522fadd1464db48d2fe8165d2a66e70  gcc/testsuite/gfortran.dg/derived_sub.f90
  652fa12d630d17b29894c33b10c6b1b8  gcc/testsuite/gfortran.dg/dev_null.F90
  94ce3208dac145ea14fc3f821f662788  gcc/testsuite/gfortran.dg/dfloat_1.f90
! 0c61e8166e596db5a018055bead48481  gcc/testsuite/gfortran.dg/dg.exp
! d68e25016cad5b1f022cffbaa43b3e17  gcc/testsuite/gfortran.dg/diagnostic-format-json-1.F90
! c653b2b6ebfb0bd4f9c9a3135d0e3a6f  gcc/testsuite/gfortran.dg/diagnostic-format-json-2.F90
! 35a875c0fd48160d34cd136be6468f7f  gcc/testsuite/gfortran.dg/diagnostic-format-json-3.F90
  cf9206e8c02e17079f63e1e6860bdb3b  gcc/testsuite/gfortran.dg/dim_range_1.f90
  9233bdc80c05466b893a5980013b72e8  gcc/testsuite/gfortran.dg/dim_sum_1.f90
  a0eae83f56a58410e0887f2da41f7c3b  gcc/testsuite/gfortran.dg/dim_sum_2.f90
--- 94520,94529 ----
  b522fadd1464db48d2fe8165d2a66e70  gcc/testsuite/gfortran.dg/derived_sub.f90
  652fa12d630d17b29894c33b10c6b1b8  gcc/testsuite/gfortran.dg/dev_null.F90
  94ce3208dac145ea14fc3f821f662788  gcc/testsuite/gfortran.dg/dfloat_1.f90
! 0fdd059c6a91b123e81a009d07b6adc9  gcc/testsuite/gfortran.dg/dg.exp
! c10b7b4dc20a1533c7a2357a0f492845  gcc/testsuite/gfortran.dg/diagnostic-format-json-1.F90
! cfbcd3ddd9fc1232cdc9946102d27f45  gcc/testsuite/gfortran.dg/diagnostic-format-json-2.F90
! 9276873e2824938cb62a98e8c0f43024  gcc/testsuite/gfortran.dg/diagnostic-format-json-3.F90
  cf9206e8c02e17079f63e1e6860bdb3b  gcc/testsuite/gfortran.dg/dim_range_1.f90
  9233bdc80c05466b893a5980013b72e8  gcc/testsuite/gfortran.dg/dim_sum_1.f90
  a0eae83f56a58410e0887f2da41f7c3b  gcc/testsuite/gfortran.dg/dim_sum_2.f90
*************** cc944e9209313a0d97bd7bed7198665c  gcc/te
*** 85596,85601 ****
--- 94574,94580 ----
  8352f532d473468c61cc2391cb3b72ed  gcc/testsuite/gfortran.dg/do_concurrent_3.f90
  32e106b8f080a6a519f1a6031f8706cf  gcc/testsuite/gfortran.dg/do_concurrent_4.f90
  9d269b2625bbee464f27409d4076d552  gcc/testsuite/gfortran.dg/do_concurrent_6.f90
+ f6354f8fa287b0730eb59f30682a6180  gcc/testsuite/gfortran.dg/do_concurrent_7.f90
  1d93eba1af31ae1574ed4ae6686c8f10  gcc/testsuite/gfortran.dg/do_corner_warn.f90
  8a29329028fba5406c50b33634ee840c  gcc/testsuite/gfortran.dg/do_iterator.f90
  375a8a74b19d3cbe445b71aac53fed90  gcc/testsuite/gfortran.dg/do_iterator_2.f90
*************** eb787080d1b25dcd7c85df0cf60869bd  gcc/te
*** 85640,85646 ****
  3135c1f8094a7fd54090c6099d491b2a  gcc/testsuite/gfortran.dg/dtio_22.f90
  4be521506e4eeeef4204dc7184c8f719  gcc/testsuite/gfortran.dg/dtio_23.f90
  f10c4681bf625e46adae521a3de13a48  gcc/testsuite/gfortran.dg/dtio_24.f90
! 827cd017720b8fdbd993d27445c97ab8  gcc/testsuite/gfortran.dg/dtio_25.f90
  3c65210cfd6b0cb280ecfe12c8c6cffb  gcc/testsuite/gfortran.dg/dtio_26.f03
  351e22361863f45f993c69f71231e1c0  gcc/testsuite/gfortran.dg/dtio_27.f90
  8a8e9807b9e54dfdb05a6e8214e7ed3f  gcc/testsuite/gfortran.dg/dtio_28.f03
--- 94619,94625 ----
  3135c1f8094a7fd54090c6099d491b2a  gcc/testsuite/gfortran.dg/dtio_22.f90
  4be521506e4eeeef4204dc7184c8f719  gcc/testsuite/gfortran.dg/dtio_23.f90
  f10c4681bf625e46adae521a3de13a48  gcc/testsuite/gfortran.dg/dtio_24.f90
! d48243012f6a55569afe528c5626f666  gcc/testsuite/gfortran.dg/dtio_25.f90
  3c65210cfd6b0cb280ecfe12c8c6cffb  gcc/testsuite/gfortran.dg/dtio_26.f03
  351e22361863f45f993c69f71231e1c0  gcc/testsuite/gfortran.dg/dtio_27.f90
  8a8e9807b9e54dfdb05a6e8214e7ed3f  gcc/testsuite/gfortran.dg/dtio_28.f03
*************** e573acf63840bae4577c00f5bcaf0915  gcc/te
*** 85757,85762 ****
--- 94736,94742 ----
  39a811a723e63905d3a48473e277f874  gcc/testsuite/gfortran.dg/endfile_2.f90
  c78eea8dc991f1d155d3c51ceb146c23  gcc/testsuite/gfortran.dg/endfile_3.f90
  9c514fc18e9a5ecf3ff680c3bce4a7b6  gcc/testsuite/gfortran.dg/endfile_4.f90
+ d71d1f7e5fe0404062fcc2dd69b181f6  gcc/testsuite/gfortran.dg/endfile_5.f90
  090cd9c6c2f084a2272d43d7887186ae  gcc/testsuite/gfortran.dg/entry_1.f90
  eadc37555535deda17391663896984d8  gcc/testsuite/gfortran.dg/entry_10.f90
  18585d9300f842588210b22ceac413a9  gcc/testsuite/gfortran.dg/entry_11.f90
*************** d9520d95c876e1ae6b037f5ed029efce  gcc/te
*** 85962,85968 ****
  8a73305eb3c76b586a4aeaa5568c2141  gcc/testsuite/gfortran.dg/finalize_35.f90
  62a846c35f5cb5673b42af4d9466d4f3  gcc/testsuite/gfortran.dg/finalize_36.f90
  60b07a38d00e8fc7487b8796bb375fd8  gcc/testsuite/gfortran.dg/finalize_37.f90
! 96c4f734e3e19a9c3ff8cb8a66664274  gcc/testsuite/gfortran.dg/finalize_38.f90
  217213daad5b48c8e5866bfd9731f97e  gcc/testsuite/gfortran.dg/finalize_38a.f90
  2ab22bce3d134ad2987aa4b4bb7ef3d9  gcc/testsuite/gfortran.dg/finalize_39.f90
  92b4ca27645d88cb11543d720382b004  gcc/testsuite/gfortran.dg/finalize_4.f03
--- 94942,94948 ----
  8a73305eb3c76b586a4aeaa5568c2141  gcc/testsuite/gfortran.dg/finalize_35.f90
  62a846c35f5cb5673b42af4d9466d4f3  gcc/testsuite/gfortran.dg/finalize_36.f90
  60b07a38d00e8fc7487b8796bb375fd8  gcc/testsuite/gfortran.dg/finalize_37.f90
! c519dc3fa8065bbab5b9bff10c1e7c35  gcc/testsuite/gfortran.dg/finalize_38.f90
  217213daad5b48c8e5866bfd9731f97e  gcc/testsuite/gfortran.dg/finalize_38a.f90
  2ab22bce3d134ad2987aa4b4bb7ef3d9  gcc/testsuite/gfortran.dg/finalize_39.f90
  92b4ca27645d88cb11543d720382b004  gcc/testsuite/gfortran.dg/finalize_4.f03
*************** ce817f495edb0ac306d6ae1052014e67  gcc/te
*** 85980,85988 ****
  943565988d4c8c053eef9a3f493da851  gcc/testsuite/gfortran.dg/finalize_50.f90
  27c7e8db83d3d5fb88321d8d6a0376c8  gcc/testsuite/gfortran.dg/finalize_51.f90
  8c70f52870dfe9912aff6274fcff3e3d  gcc/testsuite/gfortran.dg/finalize_52.f90
  00394d3b18b9e094a6751225fef04a51  gcc/testsuite/gfortran.dg/finalize_6.f90
  520ae6cd723f43e02411aa72bb807bb5  gcc/testsuite/gfortran.dg/finalize_7.f03
! a1de3ecdc32a070009986504b0fcaf97  gcc/testsuite/gfortran.dg/finalize_8.f03
  2127f420195e5f6cdb58fe18800b4c33  gcc/testsuite/gfortran.dg/finalize_9.f90
  bf61238b3b7b6fc0fa0299fb54103da5  gcc/testsuite/gfortran.dg/findloc_1.f90
  a0e3df827bf32fe2c2f8909306f1c0d5  gcc/testsuite/gfortran.dg/findloc_10.f90
--- 94960,94972 ----
  943565988d4c8c053eef9a3f493da851  gcc/testsuite/gfortran.dg/finalize_50.f90
  27c7e8db83d3d5fb88321d8d6a0376c8  gcc/testsuite/gfortran.dg/finalize_51.f90
  8c70f52870dfe9912aff6274fcff3e3d  gcc/testsuite/gfortran.dg/finalize_52.f90
+ 9fa963e3cd697648d1d152eb2027cbb8  gcc/testsuite/gfortran.dg/finalize_53.f90
+ 1a5bc1047ebef5fd584a1a70750ddd9c  gcc/testsuite/gfortran.dg/finalize_54.f90
+ e3f8979302c39ffbf6c7c03d08fc1562  gcc/testsuite/gfortran.dg/finalize_55.f90
+ 4a82b3bd0b6fd8d978b3278deeaf8249  gcc/testsuite/gfortran.dg/finalize_56.f90
  00394d3b18b9e094a6751225fef04a51  gcc/testsuite/gfortran.dg/finalize_6.f90
  520ae6cd723f43e02411aa72bb807bb5  gcc/testsuite/gfortran.dg/finalize_7.f03
! 4f05943427a26d27e44b21078aec46fe  gcc/testsuite/gfortran.dg/finalize_8.f03
  2127f420195e5f6cdb58fe18800b4c33  gcc/testsuite/gfortran.dg/finalize_9.f90
  bf61238b3b7b6fc0fa0299fb54103da5  gcc/testsuite/gfortran.dg/findloc_1.f90
  a0e3df827bf32fe2c2f8909306f1c0d5  gcc/testsuite/gfortran.dg/findloc_10.f90
*************** ed0ed90517bd964cce5576312009f30d  gcc/te
*** 86003,86015 ****
  29846974333bc8858d019bbde62b18f8  gcc/testsuite/gfortran.dg/fmt_cache_3.f90
  cff02ee06837fc928051c3d36f6a221f  gcc/testsuite/gfortran.dg/fmt_colon.f90
  4be707447c62f15b76c9925814f75913  gcc/testsuite/gfortran.dg/fmt_e.f90
! ad113b663dcbe1c9a79e2203e68339e7  gcc/testsuite/gfortran.dg/fmt_en.f90
! 5311975b2b37a592c203da8c7afef325  gcc/testsuite/gfortran.dg/fmt_en_rd.f90
! 894aa5fa772bc18d10379788a21b93e5  gcc/testsuite/gfortran.dg/fmt_en_rn.f90
! b2ba93bac651f0f62538e07b87d7f60c  gcc/testsuite/gfortran.dg/fmt_en_ru.f90
! 8ac1bee54a149101a7b26f7eef88b1cf  gcc/testsuite/gfortran.dg/fmt_en_rz.f90
  51f4c68b5c689084070ee71c915fb347  gcc/testsuite/gfortran.dg/fmt_error.f90
! 03f1c9b164aab3720c1c3c08a8e496a4  gcc/testsuite/gfortran.dg/fmt_error_10.f
  4cc40888a17d146df1ece1cfbc9da885  gcc/testsuite/gfortran.dg/fmt_error_11.f03
  f0ca55042d3247d09d7bc304c059cc3a  gcc/testsuite/gfortran.dg/fmt_error_2.f90
  08714edf3b0ddedeaaa8832ea4399b48  gcc/testsuite/gfortran.dg/fmt_error_3.f90
--- 94987,94999 ----
  29846974333bc8858d019bbde62b18f8  gcc/testsuite/gfortran.dg/fmt_cache_3.f90
  cff02ee06837fc928051c3d36f6a221f  gcc/testsuite/gfortran.dg/fmt_colon.f90
  4be707447c62f15b76c9925814f75913  gcc/testsuite/gfortran.dg/fmt_e.f90
! 468dd8a9366353dd9d6b9709c16af43a  gcc/testsuite/gfortran.dg/fmt_en.f90
! 97b99495ba1b9a4f9dec06ba24313f95  gcc/testsuite/gfortran.dg/fmt_en_rd.f90
! 4e4ac2d0b6628b049e5492901d8cbb6c  gcc/testsuite/gfortran.dg/fmt_en_rn.f90
! 1aa0cb748fde34e4900b801c5153a308  gcc/testsuite/gfortran.dg/fmt_en_ru.f90
! dd95e364741a524c16a2ca767db39620  gcc/testsuite/gfortran.dg/fmt_en_rz.f90
  51f4c68b5c689084070ee71c915fb347  gcc/testsuite/gfortran.dg/fmt_error.f90
! b95d99d2316fd9982bd82df8f1886832  gcc/testsuite/gfortran.dg/fmt_error_10.f
  4cc40888a17d146df1ece1cfbc9da885  gcc/testsuite/gfortran.dg/fmt_error_11.f03
  f0ca55042d3247d09d7bc304c059cc3a  gcc/testsuite/gfortran.dg/fmt_error_2.f90
  08714edf3b0ddedeaaa8832ea4399b48  gcc/testsuite/gfortran.dg/fmt_error_3.f90
*************** b695330fcab05a9cc4afd7861a1199ca  gcc/te
*** 86026,86032 ****
  bf2de279dad52afa7b31dd6f72b1b0f7  gcc/testsuite/gfortran.dg/fmt_f_an_p.f
  74ff69fe804071087813f31aa9bcfa9d  gcc/testsuite/gfortran.dg/fmt_f_default_field_width_1.f90
  c0b20819d1420f8c64bddebc48864d91  gcc/testsuite/gfortran.dg/fmt_f_default_field_width_2.f90
! d60199ee28e9732fb5fe50cf03404738  gcc/testsuite/gfortran.dg/fmt_f_default_field_width_3.f90
  362abb422e7c2b15c9ba061d59902641  gcc/testsuite/gfortran.dg/fmt_float.f90
  f8ae667c3d38aaadda84633fe1ec2778  gcc/testsuite/gfortran.dg/fmt_fw_d.f90
  1beb844341a9398a931bf4ca7bb9f423  gcc/testsuite/gfortran.dg/fmt_g.f
--- 95010,95016 ----
  bf2de279dad52afa7b31dd6f72b1b0f7  gcc/testsuite/gfortran.dg/fmt_f_an_p.f
  74ff69fe804071087813f31aa9bcfa9d  gcc/testsuite/gfortran.dg/fmt_f_default_field_width_1.f90
  c0b20819d1420f8c64bddebc48864d91  gcc/testsuite/gfortran.dg/fmt_f_default_field_width_2.f90
! f8135ee27d2e0375569b17742d3d2372  gcc/testsuite/gfortran.dg/fmt_f_default_field_width_3.f90
  362abb422e7c2b15c9ba061d59902641  gcc/testsuite/gfortran.dg/fmt_float.f90
  f8ae667c3d38aaadda84633fe1ec2778  gcc/testsuite/gfortran.dg/fmt_fw_d.f90
  1beb844341a9398a931bf4ca7bb9f423  gcc/testsuite/gfortran.dg/fmt_g.f
*************** d216b76ed81c95ec2cbca83beb2a093d  gcc/te
*** 86040,86046 ****
  0d55e77e92e8eba68564b926759ea52f  gcc/testsuite/gfortran.dg/fmt_g_1.f90
  98d72af8670b9e2d31faff33ffb86f84  gcc/testsuite/gfortran.dg/fmt_g_default_field_width_1.f90
  8258c8a9aaec775a3c0080d8f7071081  gcc/testsuite/gfortran.dg/fmt_g_default_field_width_2.f90
! 1961edc0e654c258e9d9d82b744be572  gcc/testsuite/gfortran.dg/fmt_g_default_field_width_3.f90
  1614a240091165ed607a20fdcc4af923  gcc/testsuite/gfortran.dg/fmt_huge.f90
  97cf1190796fa4128642acb8cb7f77ae  gcc/testsuite/gfortran.dg/fmt_i_default_field_width_1.f90
  c30d2fe3452763608d57c87d6b4d843e  gcc/testsuite/gfortran.dg/fmt_i_default_field_width_2.f90
--- 95024,95030 ----
  0d55e77e92e8eba68564b926759ea52f  gcc/testsuite/gfortran.dg/fmt_g_1.f90
  98d72af8670b9e2d31faff33ffb86f84  gcc/testsuite/gfortran.dg/fmt_g_default_field_width_1.f90
  8258c8a9aaec775a3c0080d8f7071081  gcc/testsuite/gfortran.dg/fmt_g_default_field_width_2.f90
! c8169e8b799f185691a2ae48be820837  gcc/testsuite/gfortran.dg/fmt_g_default_field_width_3.f90
  1614a240091165ed607a20fdcc4af923  gcc/testsuite/gfortran.dg/fmt_huge.f90
  97cf1190796fa4128642acb8cb7f77ae  gcc/testsuite/gfortran.dg/fmt_i_default_field_width_1.f90
  c30d2fe3452763608d57c87d6b4d843e  gcc/testsuite/gfortran.dg/fmt_i_default_field_width_2.f90
*************** f87880c019d70b5c8e9649c7f81decb8  gcc/te
*** 86239,86245 ****
  5b8e4d3e937b6a6803378fc996daa1cc  gcc/testsuite/gfortran.dg/g77/980729-0.f
  2101f50ac159df80eeb505634cd4a578  gcc/testsuite/gfortran.dg/g77/981117-1.f
  6aa55ceeb1750d7c19158792b5f97400  gcc/testsuite/gfortran.dg/g77/990115-1.f
! d5a788921fafd90515fd4f8069e51b82  gcc/testsuite/gfortran.dg/g77/README
  4593fcff4c64feb2721eea31b88dfb95  gcc/testsuite/gfortran.dg/g77/alpha1.f
  76c5961f1cec6e4fad257f4d1f1fdf35  gcc/testsuite/gfortran.dg/g77/cabs.f
  bf9ae0c15a3a684d969e22501f10d69c  gcc/testsuite/gfortran.dg/g77/check0.f
--- 95223,95229 ----
  5b8e4d3e937b6a6803378fc996daa1cc  gcc/testsuite/gfortran.dg/g77/980729-0.f
  2101f50ac159df80eeb505634cd4a578  gcc/testsuite/gfortran.dg/g77/981117-1.f
  6aa55ceeb1750d7c19158792b5f97400  gcc/testsuite/gfortran.dg/g77/990115-1.f
! cc1414eb065049db8401e261eb80aaf5  gcc/testsuite/gfortran.dg/g77/README
  4593fcff4c64feb2721eea31b88dfb95  gcc/testsuite/gfortran.dg/g77/alpha1.f
  76c5961f1cec6e4fad257f4d1f1fdf35  gcc/testsuite/gfortran.dg/g77/cabs.f
  bf9ae0c15a3a684d969e22501f10d69c  gcc/testsuite/gfortran.dg/g77/check0.f
*************** a1927f72df8d7dff60593a75c817fd91  gcc/te
*** 86349,86355 ****
  0cae422b963e880d73cfa54e885c1010  gcc/testsuite/gfortran.dg/goacc-gomp/depobj.f90
  cdbe16382c20ff02d5be2370ef235ffd  gcc/testsuite/gfortran.dg/goacc-gomp/fixed-1.f
  1a47a5d775b89e7ea35bb88b047004a6  gcc/testsuite/gfortran.dg/goacc-gomp/free-1.f90
! f832ce037c43b2c41921faf0b2d7b93e  gcc/testsuite/gfortran.dg/goacc-gomp/goacc-gomp.exp
  66b451ac1ef6dc37e41acf5ef7d3a7f8  gcc/testsuite/gfortran.dg/goacc-gomp/mixed-1.f
  2f5688fd6d13ef335191539fb816b1e8  gcc/testsuite/gfortran.dg/goacc-gomp/pr102330-1.f90
  623dd259c1089424ad39ce48ecf7872f  gcc/testsuite/gfortran.dg/goacc/acc_on_device-1.f95
--- 95333,95339 ----
  0cae422b963e880d73cfa54e885c1010  gcc/testsuite/gfortran.dg/goacc-gomp/depobj.f90
  cdbe16382c20ff02d5be2370ef235ffd  gcc/testsuite/gfortran.dg/goacc-gomp/fixed-1.f
  1a47a5d775b89e7ea35bb88b047004a6  gcc/testsuite/gfortran.dg/goacc-gomp/free-1.f90
! 5ec98ddb086d335e16f9337b7b179eda  gcc/testsuite/gfortran.dg/goacc-gomp/goacc-gomp.exp
  66b451ac1ef6dc37e41acf5ef7d3a7f8  gcc/testsuite/gfortran.dg/goacc-gomp/mixed-1.f
  2f5688fd6d13ef335191539fb816b1e8  gcc/testsuite/gfortran.dg/goacc-gomp/pr102330-1.f90
  623dd259c1089424ad39ce48ecf7872f  gcc/testsuite/gfortran.dg/goacc/acc_on_device-1.f95
*************** f0281cd31a8c4b3fce41c6545e97b15a  gcc/te
*** 86404,86412 ****
  edae9111fe15e3f1b8c0607efbf0974a  gcc/testsuite/gfortran.dg/goacc/deep-copy-2.f90
  7afa26213bd0c94c0267d8a959f6f792  gcc/testsuite/gfortran.dg/goacc/default-1.f95
  ab0cfcf0e3a4578e25ee97747700eab6  gcc/testsuite/gfortran.dg/goacc/default-2.f
! 8a8869b692be6025b8d25893e126a5bd  gcc/testsuite/gfortran.dg/goacc/default-3.f95
! 9ddcab0bb86a09c3ba91367ebb63902c  gcc/testsuite/gfortran.dg/goacc/default-4.f
! 4c9397b6b905d9a862759562ff42d768  gcc/testsuite/gfortran.dg/goacc/default-5.f
  7a1a98a21be337079ded815d6a575f0d  gcc/testsuite/gfortran.dg/goacc/default_none.f95
  b618eb862f12de8a77d9c778c0fb676d  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-1.f90
  6377fb083eb2b0bc10f8c2b5f74b088f  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-2.f90
--- 95388,95396 ----
  edae9111fe15e3f1b8c0607efbf0974a  gcc/testsuite/gfortran.dg/goacc/deep-copy-2.f90
  7afa26213bd0c94c0267d8a959f6f792  gcc/testsuite/gfortran.dg/goacc/default-1.f95
  ab0cfcf0e3a4578e25ee97747700eab6  gcc/testsuite/gfortran.dg/goacc/default-2.f
! d6cbf7b727225237e69435d5be4dfd10  gcc/testsuite/gfortran.dg/goacc/default-3.f95
! ee8e5295979a30477f1941c26c2eedb9  gcc/testsuite/gfortran.dg/goacc/default-4.f
! 385e66a0c2644a72a1fb027efe197cd0  gcc/testsuite/gfortran.dg/goacc/default-5.f
  7a1a98a21be337079ded815d6a575f0d  gcc/testsuite/gfortran.dg/goacc/default_none.f95
  b618eb862f12de8a77d9c778c0fb676d  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-1.f90
  6377fb083eb2b0bc10f8c2b5f74b088f  gcc/testsuite/gfortran.dg/goacc/derived-chartypes-2.f90
*************** b618eb862f12de8a77d9c778c0fb676d  gcc/te
*** 86416,86423 ****
  ced9c4194559d4398fc3d0a662c16fa1  gcc/testsuite/gfortran.dg/goacc/derived-types-2.f90
  c36dcd790a85c0e24d8ce6b806d09109  gcc/testsuite/gfortran.dg/goacc/derived-types-3.f90
  88646cb96ab13da1ad7ed62a79c20a32  gcc/testsuite/gfortran.dg/goacc/derived-types.f90
  824ed8f018288696894ab29c8b69e8ca  gcc/testsuite/gfortran.dg/goacc/enter-exit-data.f95
! 606737d58346406f3785966859c2bcc4  gcc/testsuite/gfortran.dg/goacc/finalize-1.f
  5df16712bea807f97abc1370c1e9959a  gcc/testsuite/gfortran.dg/goacc/firstprivate-1.f95
  80979b6cc7e2aaefc5c01c5a5ec35f63  gcc/testsuite/gfortran.dg/goacc/fixed-1.f
  a2e2e82a9ba48ccb237461a95e525152  gcc/testsuite/gfortran.dg/goacc/fixed-2.f
--- 95400,95408 ----
  ced9c4194559d4398fc3d0a662c16fa1  gcc/testsuite/gfortran.dg/goacc/derived-types-2.f90
  c36dcd790a85c0e24d8ce6b806d09109  gcc/testsuite/gfortran.dg/goacc/derived-types-3.f90
  88646cb96ab13da1ad7ed62a79c20a32  gcc/testsuite/gfortran.dg/goacc/derived-types.f90
+ e879bbea380366046cc10bb8b72f159a  gcc/testsuite/gfortran.dg/goacc/enter-exit-data-2.f90
  824ed8f018288696894ab29c8b69e8ca  gcc/testsuite/gfortran.dg/goacc/enter-exit-data.f95
! ca65ecce1a50093e904baa73ba9945f2  gcc/testsuite/gfortran.dg/goacc/finalize-1.f
  5df16712bea807f97abc1370c1e9959a  gcc/testsuite/gfortran.dg/goacc/firstprivate-1.f95
  80979b6cc7e2aaefc5c01c5a5ec35f63  gcc/testsuite/gfortran.dg/goacc/fixed-1.f
  a2e2e82a9ba48ccb237461a95e525152  gcc/testsuite/gfortran.dg/goacc/fixed-2.f
*************** d4c2919d4f88b391fb32fcbe225f7214  gcc/te
*** 86425,86433 ****
  d6fc5ccccdf283b89871056a603002b0  gcc/testsuite/gfortran.dg/goacc/fixed-4.f
  848866b7618965ec43d4d0116c95112e  gcc/testsuite/gfortran.dg/goacc/fixed-5.f
  f47f079a6e8bea88ed65bfb0d0cdaa69  gcc/testsuite/gfortran.dg/goacc/gang-static.f95
! 35bcb2404a1e65d6163ec9f4d7dd0ae5  gcc/testsuite/gfortran.dg/goacc/goacc.exp
  3e7c2fad068860f11c7aa15ab3ac054f  gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
! 34983f0cd7cb82a92eb6540a1070a1c4  gcc/testsuite/gfortran.dg/goacc/if.f95
  601f00049a64dd37cde339f2f1f04f67  gcc/testsuite/gfortran.dg/goacc/kernels-alias-2.f95
  d5dc508fa5f0c7f41320b204b50e6bc2  gcc/testsuite/gfortran.dg/goacc/kernels-alias-3.f95
  32c29c5c89fa00146b3a2febdd2b0b26  gcc/testsuite/gfortran.dg/goacc/kernels-alias-4.f95
--- 95410,95419 ----
  d6fc5ccccdf283b89871056a603002b0  gcc/testsuite/gfortran.dg/goacc/fixed-4.f
  848866b7618965ec43d4d0116c95112e  gcc/testsuite/gfortran.dg/goacc/fixed-5.f
  f47f079a6e8bea88ed65bfb0d0cdaa69  gcc/testsuite/gfortran.dg/goacc/gang-static.f95
! 422637207338c0dca52e4b39b9cb51e7  gcc/testsuite/gfortran.dg/goacc/goacc.exp
! 3a271241180ad2214e538b69d9f9550f  gcc/testsuite/gfortran.dg/goacc/host_data-error.f90
  3e7c2fad068860f11c7aa15ab3ac054f  gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
! 70333d025373eca0baad74b5f1be7147  gcc/testsuite/gfortran.dg/goacc/if.f95
  601f00049a64dd37cde339f2f1f04f67  gcc/testsuite/gfortran.dg/goacc/kernels-alias-2.f95
  d5dc508fa5f0c7f41320b204b50e6bc2  gcc/testsuite/gfortran.dg/goacc/kernels-alias-3.f95
  32c29c5c89fa00146b3a2febdd2b0b26  gcc/testsuite/gfortran.dg/goacc/kernels-alias-4.f95
*************** ba83c4cabd9753c8e318fb705a075153  gcc/te
*** 86445,86451 ****
  2f933e04fc8c512eddd9dcea1dea6f29  gcc/testsuite/gfortran.dg/goacc/kernels-loop.f95
  12fccbb98b6c2bfc3ac90b38fc6e14af  gcc/testsuite/gfortran.dg/goacc/kernels-loops-adjacent.f95
  dab862eef9e9b080b5d7fc7f0a4b7105  gcc/testsuite/gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95
! 1e83a45fe1d566dad6e23e336f8cab3c  gcc/testsuite/gfortran.dg/goacc/kernels-tree.f95
  377578f4d9c4ca1cc67ca167393fbec3  gcc/testsuite/gfortran.dg/goacc/list.f95
  e107d4e382d98141b6dc6d451603f328  gcc/testsuite/gfortran.dg/goacc/literal.f95
  0a42f8c0072173fe974f96ab06f83512  gcc/testsuite/gfortran.dg/goacc/loop-1-2.f95
--- 95431,95437 ----
  2f933e04fc8c512eddd9dcea1dea6f29  gcc/testsuite/gfortran.dg/goacc/kernels-loop.f95
  12fccbb98b6c2bfc3ac90b38fc6e14af  gcc/testsuite/gfortran.dg/goacc/kernels-loops-adjacent.f95
  dab862eef9e9b080b5d7fc7f0a4b7105  gcc/testsuite/gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95
! ba057289ded3bec769f3d9ab4f0dd60a  gcc/testsuite/gfortran.dg/goacc/kernels-tree.f95
  377578f4d9c4ca1cc67ca167393fbec3  gcc/testsuite/gfortran.dg/goacc/list.f95
  e107d4e382d98141b6dc6d451603f328  gcc/testsuite/gfortran.dg/goacc/literal.f95
  0a42f8c0072173fe974f96ab06f83512  gcc/testsuite/gfortran.dg/goacc/loop-1-2.f95
*************** bb8ae92b32e3f26a7ac46460dcb0eaaa  gcc/te
*** 86486,86497 ****
  704a360494113e14e3e848a58a450103  gcc/testsuite/gfortran.dg/goacc/parallel-dims-2.f90
  28cb75f1f081f4155173c6d470dac768  gcc/testsuite/gfortran.dg/goacc/parallel-kernels-clauses.f95
  1ba4b22dac74c58581a0548cc088e27d  gcc/testsuite/gfortran.dg/goacc/parallel-kernels-regions.f95
! 8f0adabcaed1c08a5a8c4b77ca8e9838  gcc/testsuite/gfortran.dg/goacc/parallel-tree.f95
  fd7a6f50862314c373f5800561f028a5  gcc/testsuite/gfortran.dg/goacc/parameter.f95
  09ea63acb5c4c7a47cc2d19532460132  gcc/testsuite/gfortran.dg/goacc/pr104717.f90
  7e7fc3d088115060da170794a58be703  gcc/testsuite/gfortran.dg/goacc/pr109622-5.f90
  1455640e85064b6a149025dca753e059  gcc/testsuite/gfortran.dg/goacc/pr109622-6.f90
! b4f5bf838607d6206aae8d768d23c64e  gcc/testsuite/gfortran.dg/goacc/pr71704.f90
  2ff86b408ebb7a6e4fa041f1ea4a5204  gcc/testsuite/gfortran.dg/goacc/pr72715.f90
  dff0c4a3dcd2aac51063c6e05c6d4665  gcc/testsuite/gfortran.dg/goacc/pr72743.f90
  4f04968b558efbdc704552ba74ea807d  gcc/testsuite/gfortran.dg/goacc/pr77371-1.f90
--- 95472,95483 ----
  704a360494113e14e3e848a58a450103  gcc/testsuite/gfortran.dg/goacc/parallel-dims-2.f90
  28cb75f1f081f4155173c6d470dac768  gcc/testsuite/gfortran.dg/goacc/parallel-kernels-clauses.f95
  1ba4b22dac74c58581a0548cc088e27d  gcc/testsuite/gfortran.dg/goacc/parallel-kernels-regions.f95
! fd931b02506b83f0422f0faed5da5c1e  gcc/testsuite/gfortran.dg/goacc/parallel-tree.f95
  fd7a6f50862314c373f5800561f028a5  gcc/testsuite/gfortran.dg/goacc/parameter.f95
  09ea63acb5c4c7a47cc2d19532460132  gcc/testsuite/gfortran.dg/goacc/pr104717.f90
  7e7fc3d088115060da170794a58be703  gcc/testsuite/gfortran.dg/goacc/pr109622-5.f90
  1455640e85064b6a149025dca753e059  gcc/testsuite/gfortran.dg/goacc/pr109622-6.f90
! 67b49525675aca8145873031e39ee7ec  gcc/testsuite/gfortran.dg/goacc/pr71704.f90
  2ff86b408ebb7a6e4fa041f1ea4a5204  gcc/testsuite/gfortran.dg/goacc/pr72715.f90
  dff0c4a3dcd2aac51063c6e05c6d4665  gcc/testsuite/gfortran.dg/goacc/pr72743.f90
  4f04968b558efbdc704552ba74ea807d  gcc/testsuite/gfortran.dg/goacc/pr77371-1.f90
*************** d1424a6aff56f84b8594efe4797586c7  gcc/te
*** 86528,86533 ****
--- 95514,95520 ----
  0fdd4c53847a616925b1751ff204d898  gcc/testsuite/gfortran.dg/goacc/privatization-1-routine_gang.f90
  066700d763e7142e03d2c09ba0f79bde  gcc/testsuite/gfortran.dg/goacc/pure-elemental-procedures-2.f90
  62b5f5b00b9662a8b75727b0922b367d  gcc/testsuite/gfortran.dg/goacc/pure-elemental-procedures.f95
+ f85d6127bac477d11ee5f336d29750d8  gcc/testsuite/gfortran.dg/goacc/readonly-1.f90
  9b703807d8c979fc38c25732d2b58ed7  gcc/testsuite/gfortran.dg/goacc/reduction-2.f95
  d3ab76f25073383b9b4da99d0ae1d5da  gcc/testsuite/gfortran.dg/goacc/reduction-3.f95
  cb1043758b27579bfc73998c460f4449  gcc/testsuite/gfortran.dg/goacc/reduction-promotions.f90
*************** c38bb5b07b493e3672d50656f571fad2  gcc/te
*** 86552,86557 ****
--- 95539,95545 ----
  4cf65f895549f70e4b0908e3894ec6c4  gcc/testsuite/gfortran.dg/goacc/routine-multiple-directives-1.f90
  2cce5ac72927065c0bcdbbc236e285d8  gcc/testsuite/gfortran.dg/goacc/routine-multiple-directives-2.f90
  2d941c126fb24bca06e3184011650a7a  gcc/testsuite/gfortran.dg/goacc/routine-multiple-lop-clauses-1.f90
+ 57646fad104626fcfa31b987d00c2f0b  gcc/testsuite/gfortran.dg/goacc/self.f95
  e3a293acbc8474a1b6769ba9ca054121  gcc/testsuite/gfortran.dg/goacc/sentinel-free-form.f95
  49f1ae5c72a4a5a35c9fdb8f76588e28  gcc/testsuite/gfortran.dg/goacc/several-directives.f95
  2b860269b97c88e607615cb0d476fb53  gcc/testsuite/gfortran.dg/goacc/sie.f95
*************** e5de83f3c72df9c91e2516026a10fd5c  gcc/te
*** 86575,86581 ****
  5c6b557fbcefd15ad6ec6ef08ade9d19  gcc/testsuite/gfortran.dg/goacc/update.f95
  e9972505e1a87fdeda00b94d99cf711b  gcc/testsuite/gfortran.dg/goacc/vector_length.f90
  d09b6d0bd3c55d3b99ebe64fe2ee3d04  gcc/testsuite/gfortran.dg/goacc/wait.f90
! e8a02da7f34b2a2a9f386eefa3b51bb0  gcc/testsuite/gfortran.dg/goacc/warn_truncated.f90
  911e262e498830097ca8c02694f76c13  gcc/testsuite/gfortran.dg/gomp/affinity-1.f90
  aa2f129bf735477d206c1fc34f102b17  gcc/testsuite/gfortran.dg/gomp/affinity-clause-1.f90
  3242eb8cd0e2489c3dcfa485f3b75d28  gcc/testsuite/gfortran.dg/gomp/affinity-clause-2.f90
--- 95563,95569 ----
  5c6b557fbcefd15ad6ec6ef08ade9d19  gcc/testsuite/gfortran.dg/goacc/update.f95
  e9972505e1a87fdeda00b94d99cf711b  gcc/testsuite/gfortran.dg/goacc/vector_length.f90
  d09b6d0bd3c55d3b99ebe64fe2ee3d04  gcc/testsuite/gfortran.dg/goacc/wait.f90
! 4792d309290210831c4f3cd01453f237  gcc/testsuite/gfortran.dg/goacc/warn_truncated.f90
  911e262e498830097ca8c02694f76c13  gcc/testsuite/gfortran.dg/gomp/affinity-1.f90
  aa2f129bf735477d206c1fc34f102b17  gcc/testsuite/gfortran.dg/gomp/affinity-clause-1.f90
  3242eb8cd0e2489c3dcfa485f3b75d28  gcc/testsuite/gfortran.dg/gomp/affinity-clause-2.f90
*************** d1682241b0b1d37b06e65589cfa2336f  gcc/te
*** 86589,86596 ****
  794c06e7ccb0401f5586d816e30cad08  gcc/testsuite/gfortran.dg/gomp/all-memory-3.f90
  5633756a662441452bd869456e985808  gcc/testsuite/gfortran.dg/gomp/allocatable_components_1.f90
  d8f891883879b40925714053d72765b2  gcc/testsuite/gfortran.dg/gomp/allocate-1.f90
! b9fa7dddfdd19370c87587727ea3a52b  gcc/testsuite/gfortran.dg/gomp/allocate-2.f90
  16e9d68b7804e4ecd40f3bd6702cf3c5  gcc/testsuite/gfortran.dg/gomp/allocate-3.f90
  a2a78b9dfd24cc5b801a51ebf7713787  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.1.1.f90
  a939ad660a97fdd3a36058fbbed08e4e  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.1.f90
  be2dfd843076b56ef43acf3c66d28133  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.2.f90
--- 95577,95602 ----
  794c06e7ccb0401f5586d816e30cad08  gcc/testsuite/gfortran.dg/gomp/all-memory-3.f90
  5633756a662441452bd869456e985808  gcc/testsuite/gfortran.dg/gomp/allocatable_components_1.f90
  d8f891883879b40925714053d72765b2  gcc/testsuite/gfortran.dg/gomp/allocate-1.f90
! c20c9f1e0f2b7f6bc763a7e20b0857ef  gcc/testsuite/gfortran.dg/gomp/allocate-10.f90
! 764ec26a5a5268118b6c17514735371a  gcc/testsuite/gfortran.dg/gomp/allocate-11.f90
! 8594f381e1344c5f1587ee1f8c22ed77  gcc/testsuite/gfortran.dg/gomp/allocate-12.f90
! a0f40b3f2545e1ffe3ba1eb23a11fa60  gcc/testsuite/gfortran.dg/gomp/allocate-13.f90
! ff6d377128556e0e1848678ee32b2b30  gcc/testsuite/gfortran.dg/gomp/allocate-13a.f90
! 10282e85221bd35d162e700a820e710b  gcc/testsuite/gfortran.dg/gomp/allocate-14.f90
! 04ba1f71805aa8c91b5f51831ac61c5c  gcc/testsuite/gfortran.dg/gomp/allocate-15.f90
! 15deb2c55ce0d1fede6ac3896447cff5  gcc/testsuite/gfortran.dg/gomp/allocate-16.f90
! f599914502cce400a69c7df0fd407965  gcc/testsuite/gfortran.dg/gomp/allocate-2.f90
  16e9d68b7804e4ecd40f3bd6702cf3c5  gcc/testsuite/gfortran.dg/gomp/allocate-3.f90
+ 06f9e0388a6d74ff4633618bc7e3c061  gcc/testsuite/gfortran.dg/gomp/allocate-4.f90
+ 86b069fbddb056ff7978ad41d287817a  gcc/testsuite/gfortran.dg/gomp/allocate-5.f90
+ 97fc98e891d9e28cdfe34f750f9ad9bd  gcc/testsuite/gfortran.dg/gomp/allocate-6.f90
+ ee5ecf22fd829ec7b6ce72edf02ac2f8  gcc/testsuite/gfortran.dg/gomp/allocate-7.f90
+ db9a9c9e9be7de239493d5f606d71961  gcc/testsuite/gfortran.dg/gomp/allocate-8.f90
+ 77868d12d537788c591fbb0f45ff5bbd  gcc/testsuite/gfortran.dg/gomp/allocate-9.f90
+ fdba6887e6e07e9db7286a8aa1e260ed  gcc/testsuite/gfortran.dg/gomp/allocators-1.f90
+ de1aa465fd55a6b4c24514982405ff85  gcc/testsuite/gfortran.dg/gomp/allocators-2.f90
+ dc598e53285474c71e357ec100b2489b  gcc/testsuite/gfortran.dg/gomp/allocators-3.f90
+ ac6870964ba16f9c08fce6ee73023537  gcc/testsuite/gfortran.dg/gomp/allocators-4.f90
  a2a78b9dfd24cc5b801a51ebf7713787  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.1.1.f90
  a939ad660a97fdd3a36058fbbed08e4e  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.1.f90
  be2dfd843076b56ef43acf3c66d28133  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.2.f90
*************** ae9ace60f94abfcbfbd2a36299abbf0d  gcc/te
*** 86672,86677 ****
--- 95678,95685 ----
  2c61c6d91bbeab8332c3c329ee9f8d12  gcc/testsuite/gfortran.dg/gomp/atomic-28.f90
  2627f4c7f22f907c1019851b2ae1c79f  gcc/testsuite/gfortran.dg/gomp/atomic.f90
  bab96c8ce5beeb0e7d9e4dae2fd0ea5f  gcc/testsuite/gfortran.dg/gomp/block-1.f90
+ cdeec4fa3718656bb266e0931e5ea9fb  gcc/testsuite/gfortran.dg/gomp/c_ptr_tests_20.f90
+ c54c9f00f1ab04f0a3eca118ed8aded7  gcc/testsuite/gfortran.dg/gomp/c_ptr_tests_21.f90
  065c8d5b071a3096774849b90c0341dd  gcc/testsuite/gfortran.dg/gomp/cancel-1.f90
  6240d21497a94815867abd53e7fcfe68  gcc/testsuite/gfortran.dg/gomp/cancel-2.f90
  c2875e99b414fbced20c5c41d21b04c4  gcc/testsuite/gfortran.dg/gomp/cancel-3.f90
*************** c2875e99b414fbced20c5c41d21b04c4  gcc/te
*** 86683,86690 ****
  8dbac5414be8ed46decf2134d6ea91fc  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-3.f90
  a8f0294a171f1359d6f5abd04324e891  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-4.f90
  b04d01c8918c4b0e4cfbbca2ac07c3a9  gcc/testsuite/gfortran.dg/gomp/clauses-1.f90
! da32477bda3a79b60559a28c1c899a20  gcc/testsuite/gfortran.dg/gomp/collapse1.f90
! 0d28facbb96730c300fadf428745b605  gcc/testsuite/gfortran.dg/gomp/collapse2.f90
  36990c2a4b5e499e3cd93ef78508f038  gcc/testsuite/gfortran.dg/gomp/combined-if.f90
  ab16bdb71b7351b88eb2848c3dac063a  gcc/testsuite/gfortran.dg/gomp/copyprivate-1.f90
  384b77d140293cc0185bfcfbe6ea5dcc  gcc/testsuite/gfortran.dg/gomp/copyprivate-2.f90
--- 95691,95698 ----
  8dbac5414be8ed46decf2134d6ea91fc  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-3.f90
  a8f0294a171f1359d6f5abd04324e891  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-4.f90
  b04d01c8918c4b0e4cfbbca2ac07c3a9  gcc/testsuite/gfortran.dg/gomp/clauses-1.f90
! bd13412ef41ad9bb27fc856062b6ee6c  gcc/testsuite/gfortran.dg/gomp/collapse1.f90
! 17fe5ffccf79b4cae3361dc0b3b52283  gcc/testsuite/gfortran.dg/gomp/collapse2.f90
  36990c2a4b5e499e3cd93ef78508f038  gcc/testsuite/gfortran.dg/gomp/combined-if.f90
  ab16bdb71b7351b88eb2848c3dac063a  gcc/testsuite/gfortran.dg/gomp/copyprivate-1.f90
  384b77d140293cc0185bfcfbe6ea5dcc  gcc/testsuite/gfortran.dg/gomp/copyprivate-2.f90
*************** fa862d5202e8a9940ce10e5de251b964  gcc/te
*** 86694,86736 ****
  1c6644a88dc4bee98beb52bb4342fee9  gcc/testsuite/gfortran.dg/gomp/crayptr4.f90
  4a434ccf995f8c325ad483ae77b66d9f  gcc/testsuite/gfortran.dg/gomp/crayptr5.f90
  f771e918155eed02d90e026b9c163449  gcc/testsuite/gfortran.dg/gomp/declare-simd-1.f90
! 3db4bd90d0375549d4d03e0903825f7e  gcc/testsuite/gfortran.dg/gomp/declare-simd-2.f90
  2a1d11803d89a25e412300a0b880260f  gcc/testsuite/gfortran.dg/gomp/declare-simd-3.f90
  28aceea38e0468eae02d0b21b6326b34  gcc/testsuite/gfortran.dg/gomp/declare-simd-4.f90
  7ad1e2a95d3e303d0d364e2ebe69c5c9  gcc/testsuite/gfortran.dg/gomp/declare-simd-5.f90
  a10e905c3b5e37a46edf6f7918dd2815  gcc/testsuite/gfortran.dg/gomp/declare-simd-6.f90
! ea4104a68bdd94cb4c7afb9454a3e105  gcc/testsuite/gfortran.dg/gomp/declare-simd-coarray-lib.f90
  3efc7a1651bd3761d7b6f4bbc264313a  gcc/testsuite/gfortran.dg/gomp/declare-target-1.f90
  28034efd191b59bb1825f666172304ea  gcc/testsuite/gfortran.dg/gomp/declare-target-2.f90
! be455031a2f461d0dfe46a95d12ee320  gcc/testsuite/gfortran.dg/gomp/declare-target-4.f90
  cd36c1dc647fda3c47998959ae255f2e  gcc/testsuite/gfortran.dg/gomp/declare-target-5.f90
! ae9450408a560cd53a7d21f2f8cbad71  gcc/testsuite/gfortran.dg/gomp/declare-variant-1.f90
  d709549d9e901876f985f2254c7ab8f2  gcc/testsuite/gfortran.dg/gomp/declare-variant-10.f90
! 7240e94b3579c5d611f271ac24d0dd41  gcc/testsuite/gfortran.dg/gomp/declare-variant-11.f90
! 78a224bc1d7f83575a6f10d74750fa55  gcc/testsuite/gfortran.dg/gomp/declare-variant-12.f90
! 251bb4a50465105ccdbe67e3d804c0ec  gcc/testsuite/gfortran.dg/gomp/declare-variant-13.f90
! 922992fe63cdcd3599323fabb9f91496  gcc/testsuite/gfortran.dg/gomp/declare-variant-14.f90
  bcff008fda796aaaa4aa0c808a1cf8da  gcc/testsuite/gfortran.dg/gomp/declare-variant-15.f90
  12d0afb12d65bdd24eb02d1437cf671f  gcc/testsuite/gfortran.dg/gomp/declare-variant-16.f90
  7f0e276222c8af41d530e09021a3eded  gcc/testsuite/gfortran.dg/gomp/declare-variant-17.f90
  21e881b2155c903e6c0fe82aa43cc421  gcc/testsuite/gfortran.dg/gomp/declare-variant-18.f90
  580901d43ef2a15dfd465a1a022ae115  gcc/testsuite/gfortran.dg/gomp/declare-variant-19.f90
! 889f2ed1d636cde73b25530a8b9ea5db  gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90
! d2aee6f27d475cdedd6249f21b780ab2  gcc/testsuite/gfortran.dg/gomp/declare-variant-2a.f90
! 0b6f2d95929145b926b00eb276be1aff  gcc/testsuite/gfortran.dg/gomp/declare-variant-3.f90
! 80008565a19f1735de6edcc12665d124  gcc/testsuite/gfortran.dg/gomp/declare-variant-4.f90
  c8be345342a9412b0fcfce5b1ef75494  gcc/testsuite/gfortran.dg/gomp/declare-variant-5.f90
! 2a0ee9ee17a6019c2d56605900cb17b4  gcc/testsuite/gfortran.dg/gomp/declare-variant-6.f90
  313233de6d1e14ff4f3adbc5a9887e75  gcc/testsuite/gfortran.dg/gomp/declare-variant-7.f90
! 3fa71f93a9b748b52498969863069e5d  gcc/testsuite/gfortran.dg/gomp/declare-variant-8.f90
  82a82d0ef3a2b776a7b1db1d3592098a  gcc/testsuite/gfortran.dg/gomp/declare-variant-9.f90
! 8b017b80a8823fe935e58eac73673b61  gcc/testsuite/gfortran.dg/gomp/defaultmap-1.f90
  318f72b3af7c8052b99ae5eaf03d5eb9  gcc/testsuite/gfortran.dg/gomp/defaultmap-2.f90
  d638394ef6b5d3b81dd5d401e9384a8e  gcc/testsuite/gfortran.dg/gomp/defaultmap-3.f90
  a28c1aee8075487b7ef5213d6c13ccaf  gcc/testsuite/gfortran.dg/gomp/defaultmap-4.f90
  6299fd54a36cce77c6db4b9dc37a8e4d  gcc/testsuite/gfortran.dg/gomp/defaultmap-5.f90
  f79e65aa139717f2926fce5e5ae182c9  gcc/testsuite/gfortran.dg/gomp/defaultmap-6.f90
  470d844fb0d7cccca9d9f7020f4c38a9  gcc/testsuite/gfortran.dg/gomp/defaultmap-7.f90
  fa41d6dd0ec4bc45beb3cbce04bf821d  gcc/testsuite/gfortran.dg/gomp/depend-1.f90
  b925235365ea6a6930ecc74136916763  gcc/testsuite/gfortran.dg/gomp/depend-4.f90
  c8d298cef2970ce3ead77751bfa3b24b  gcc/testsuite/gfortran.dg/gomp/depend-5.f90
--- 95702,95751 ----
  1c6644a88dc4bee98beb52bb4342fee9  gcc/testsuite/gfortran.dg/gomp/crayptr4.f90
  4a434ccf995f8c325ad483ae77b66d9f  gcc/testsuite/gfortran.dg/gomp/crayptr5.f90
  f771e918155eed02d90e026b9c163449  gcc/testsuite/gfortran.dg/gomp/declare-simd-1.f90
! 10b7fa8c03c3dfc00eb7345f9e992ad6  gcc/testsuite/gfortran.dg/gomp/declare-simd-2.f90
  2a1d11803d89a25e412300a0b880260f  gcc/testsuite/gfortran.dg/gomp/declare-simd-3.f90
  28aceea38e0468eae02d0b21b6326b34  gcc/testsuite/gfortran.dg/gomp/declare-simd-4.f90
  7ad1e2a95d3e303d0d364e2ebe69c5c9  gcc/testsuite/gfortran.dg/gomp/declare-simd-5.f90
  a10e905c3b5e37a46edf6f7918dd2815  gcc/testsuite/gfortran.dg/gomp/declare-simd-6.f90
! cea31a6d0391b4b71427da07ff8d34f1  gcc/testsuite/gfortran.dg/gomp/declare-simd-coarray-lib.f90
  3efc7a1651bd3761d7b6f4bbc264313a  gcc/testsuite/gfortran.dg/gomp/declare-target-1.f90
  28034efd191b59bb1825f666172304ea  gcc/testsuite/gfortran.dg/gomp/declare-target-2.f90
! f707bc4b48b8007c8be68aaa46e1d1e1  gcc/testsuite/gfortran.dg/gomp/declare-target-4.f90
  cd36c1dc647fda3c47998959ae255f2e  gcc/testsuite/gfortran.dg/gomp/declare-target-5.f90
! 8c222b6e3da0201a7de8711e7767db6a  gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-1.f90
! ad1fddef2cffc4b7efbe6881ffc53910  gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-2.f90
! 80d23bb6d3ed681a8870b4b33017b4c4  gcc/testsuite/gfortran.dg/gomp/declare-variant-1.f90
  d709549d9e901876f985f2254c7ab8f2  gcc/testsuite/gfortran.dg/gomp/declare-variant-10.f90
! a8e2326b18924669735487037483af94  gcc/testsuite/gfortran.dg/gomp/declare-variant-11.f90
! 7a4d7639899cf04e8d8b79ab0d7b2445  gcc/testsuite/gfortran.dg/gomp/declare-variant-12.f90
! 3880cab62b83edd2238c094165e29140  gcc/testsuite/gfortran.dg/gomp/declare-variant-13.f90
! 6db64edf613544bdecc00bcc8e0dc732  gcc/testsuite/gfortran.dg/gomp/declare-variant-14.f90
  bcff008fda796aaaa4aa0c808a1cf8da  gcc/testsuite/gfortran.dg/gomp/declare-variant-15.f90
  12d0afb12d65bdd24eb02d1437cf671f  gcc/testsuite/gfortran.dg/gomp/declare-variant-16.f90
  7f0e276222c8af41d530e09021a3eded  gcc/testsuite/gfortran.dg/gomp/declare-variant-17.f90
  21e881b2155c903e6c0fe82aa43cc421  gcc/testsuite/gfortran.dg/gomp/declare-variant-18.f90
  580901d43ef2a15dfd465a1a022ae115  gcc/testsuite/gfortran.dg/gomp/declare-variant-19.f90
! e79a4123d4183297b7f2e13138f4a233  gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90
! df331bd4212e4a6cbc0e794b7eb5ac88  gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90
! 0c8a0993785896857c3c01c9eb136c8e  gcc/testsuite/gfortran.dg/gomp/declare-variant-2a.f90
! a8eeff347bce5af9ca02a378b00abdf2  gcc/testsuite/gfortran.dg/gomp/declare-variant-3.f90
! de62088b28e5d20862eda347ec06e79d  gcc/testsuite/gfortran.dg/gomp/declare-variant-4.f90
  c8be345342a9412b0fcfce5b1ef75494  gcc/testsuite/gfortran.dg/gomp/declare-variant-5.f90
! d0221c0a07a1622d8aebae5c15babc51  gcc/testsuite/gfortran.dg/gomp/declare-variant-6.f90
  313233de6d1e14ff4f3adbc5a9887e75  gcc/testsuite/gfortran.dg/gomp/declare-variant-7.f90
! 34cf21eeddaf7465f665d069cdaae46d  gcc/testsuite/gfortran.dg/gomp/declare-variant-8.f90
  82a82d0ef3a2b776a7b1db1d3592098a  gcc/testsuite/gfortran.dg/gomp/declare-variant-9.f90
! ab7e414047e163772b9c27f908863003  gcc/testsuite/gfortran.dg/gomp/declare-variant-no-score.f90
! fb5f1168fe1f12beb613ab193bba9156  gcc/testsuite/gfortran.dg/gomp/defaultmap-1.f90
! 7976bf38c01b2497616082fac8e85b81  gcc/testsuite/gfortran.dg/gomp/defaultmap-10.f90
  318f72b3af7c8052b99ae5eaf03d5eb9  gcc/testsuite/gfortran.dg/gomp/defaultmap-2.f90
  d638394ef6b5d3b81dd5d401e9384a8e  gcc/testsuite/gfortran.dg/gomp/defaultmap-3.f90
  a28c1aee8075487b7ef5213d6c13ccaf  gcc/testsuite/gfortran.dg/gomp/defaultmap-4.f90
  6299fd54a36cce77c6db4b9dc37a8e4d  gcc/testsuite/gfortran.dg/gomp/defaultmap-5.f90
  f79e65aa139717f2926fce5e5ae182c9  gcc/testsuite/gfortran.dg/gomp/defaultmap-6.f90
  470d844fb0d7cccca9d9f7020f4c38a9  gcc/testsuite/gfortran.dg/gomp/defaultmap-7.f90
+ 9de18ae7d79820ff1e00c6add4950fcb  gcc/testsuite/gfortran.dg/gomp/defaultmap-8.f90
+ f600dac31dd921af306f1b393a8d4bec  gcc/testsuite/gfortran.dg/gomp/defaultmap-9.f90
  fa41d6dd0ec4bc45beb3cbce04bf821d  gcc/testsuite/gfortran.dg/gomp/depend-1.f90
  b925235365ea6a6930ecc74136916763  gcc/testsuite/gfortran.dg/gomp/depend-4.f90
  c8d298cef2970ce3ead77751bfa3b24b  gcc/testsuite/gfortran.dg/gomp/depend-5.f90
*************** fcda5a12452ac185d1c306d0e8222556  gcc/te
*** 86740,86745 ****
--- 95755,95761 ----
  8559f178a456958c370535d4d838c9d7  gcc/testsuite/gfortran.dg/gomp/depend-iterator-3.f90
  1531f847e56d02d5d23beb0a2ff5cd9c  gcc/testsuite/gfortran.dg/gomp/depobj-1.f90
  1db04c92916620d84c79364d4cc275b9  gcc/testsuite/gfortran.dg/gomp/depobj-2.f90
+ ffe0d4412da05b62992d6541e7112fe8  gcc/testsuite/gfortran.dg/gomp/depobj-3.f90
  9757fd1aff0e97e5388764ec44be73fd  gcc/testsuite/gfortran.dg/gomp/do-1.f90
  9b09f560c0be75a5e05b926194bcc40a  gcc/testsuite/gfortran.dg/gomp/doacross-5.f90
  688b415eed42adc6cb70cd626354a0be  gcc/testsuite/gfortran.dg/gomp/doacross-6.f90
*************** d3b68a58adb3f5eb2533a30d870f100e  gcc/te
*** 86751,86758 ****
  afc521c98a39e0e1821f895f702c9cd1  gcc/testsuite/gfortran.dg/gomp/flush-2.f90
  14ab6dfa2149c533128a3f201531e525  gcc/testsuite/gfortran.dg/gomp/free-1.f90
  b7bb651884d39c2e5dce7d57d46f40a5  gcc/testsuite/gfortran.dg/gomp/free-2.f90
! 5588b0b76b2bb1e60203b59af37e1005  gcc/testsuite/gfortran.dg/gomp/gomp.exp
  c81f6e5f96d44ff4d4332116923c4ba7  gcc/testsuite/gfortran.dg/gomp/if-1.f90
  c20118617178c3c6359815c5134a798a  gcc/testsuite/gfortran.dg/gomp/implicit-save.f90
  336652c36c7d7ce2f34ced505acc64c9  gcc/testsuite/gfortran.dg/gomp/include_1.f
  1fe1ad5080374d9a506a842e10eb64cf  gcc/testsuite/gfortran.dg/gomp/include_1.inc
--- 95767,95781 ----
  afc521c98a39e0e1821f895f702c9cd1  gcc/testsuite/gfortran.dg/gomp/flush-2.f90
  14ab6dfa2149c533128a3f201531e525  gcc/testsuite/gfortran.dg/gomp/free-1.f90
  b7bb651884d39c2e5dce7d57d46f40a5  gcc/testsuite/gfortran.dg/gomp/free-2.f90
! b00c6a35c4f58b74c80bc3ed872a18d8  gcc/testsuite/gfortran.dg/gomp/gomp.exp
  c81f6e5f96d44ff4d4332116923c4ba7  gcc/testsuite/gfortran.dg/gomp/if-1.f90
+ d9e691abc51124a315a9fe8d1bd3a04e  gcc/testsuite/gfortran.dg/gomp/imperfect-gotos.f90
+ bab74adf4eb79eb22ea45dc4908e7686  gcc/testsuite/gfortran.dg/gomp/imperfect-invalid-scope.f90
+ 14b0b5d195a87893cfb4dcb15e322847  gcc/testsuite/gfortran.dg/gomp/imperfect1.f90
+ 2d51139dc571a09aa61218ec4a31e5bb  gcc/testsuite/gfortran.dg/gomp/imperfect2.f90
+ dd8eb14846f7f04270cbe1aa6c76b6d5  gcc/testsuite/gfortran.dg/gomp/imperfect3.f90
+ 2c3dad51a1302b32e7e17c9fa25832fd  gcc/testsuite/gfortran.dg/gomp/imperfect4.f90
+ 8412a3b549c1235c04041ce37c52246c  gcc/testsuite/gfortran.dg/gomp/imperfect5.f90
  c20118617178c3c6359815c5134a798a  gcc/testsuite/gfortran.dg/gomp/implicit-save.f90
  336652c36c7d7ce2f34ced505acc64c9  gcc/testsuite/gfortran.dg/gomp/include_1.f
  1fe1ad5080374d9a506a842e10eb64cf  gcc/testsuite/gfortran.dg/gomp/include_1.inc
*************** af04268cd1ba9085e47cbae173428261  gcc/te
*** 86767,86773 ****
  18ac4502ea33e5ec7eb9987e4f08464a  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-4.f90
  0324d1aeff2c9703006e512f071b9b0f  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-5.f90
  fcfec1b14709740892410ae1c647ba42  gcc/testsuite/gfortran.dg/gomp/linear-1.f90
! 2a43afdc32ad31fdec07eb9f18d21968  gcc/testsuite/gfortran.dg/gomp/linear-2.f90
  bfeddbad49017a5997209b1c1ce90c42  gcc/testsuite/gfortran.dg/gomp/linear-3.f90
  710df3527ce9a75d9c8e3893dc293417  gcc/testsuite/gfortran.dg/gomp/linear-4.f90
  7ac1c4413579cb25270f7dceaccbea46  gcc/testsuite/gfortran.dg/gomp/linear-5.f90
--- 95790,95796 ----
  18ac4502ea33e5ec7eb9987e4f08464a  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-4.f90
  0324d1aeff2c9703006e512f071b9b0f  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-5.f90
  fcfec1b14709740892410ae1c647ba42  gcc/testsuite/gfortran.dg/gomp/linear-1.f90
! 6371b71518c3bb790af2e59601569454  gcc/testsuite/gfortran.dg/gomp/linear-2.f90
  bfeddbad49017a5997209b1c1ce90c42  gcc/testsuite/gfortran.dg/gomp/linear-3.f90
  710df3527ce9a75d9c8e3893dc293417  gcc/testsuite/gfortran.dg/gomp/linear-4.f90
  7ac1c4413579cb25270f7dceaccbea46  gcc/testsuite/gfortran.dg/gomp/linear-5.f90
*************** f2a3c11754d246dbe83f8e48b00ea061  gcc/te
*** 86775,86795 ****
  a4e7ef5926daf8429df01accd234ddc2  gcc/testsuite/gfortran.dg/gomp/linear-7.f90
  8b81f69306667f7ab92ce3e8cd7a31cf  gcc/testsuite/gfortran.dg/gomp/linear-8.f90
  1bf1a25963d70f206f6b9615dd00b4a3  gcc/testsuite/gfortran.dg/gomp/loop-1.f90
! d9c821fc34d75b5a1aab6f11450398b8  gcc/testsuite/gfortran.dg/gomp/loop-2.f90
  9fc7632ae864eb649dcb18b7f8cab32c  gcc/testsuite/gfortran.dg/gomp/loop-3.f90
  d9fb1de547303f6296a47031238a2a91  gcc/testsuite/gfortran.dg/gomp/loop-4.f90
  f9ef443961a79bdf37522ed835fb9343  gcc/testsuite/gfortran.dg/gomp/loop-5.f90
  30f19939f66f9036dd94e47a44d71909  gcc/testsuite/gfortran.dg/gomp/loop-exit.f90
  dec560a080ae2757b0acb2325c3aafab  gcc/testsuite/gfortran.dg/gomp/map-1.f90
  43569bbc57024a10628df3c4be381f2a  gcc/testsuite/gfortran.dg/gomp/map-2.f90
  c2d8019d8ca18a09c79c939c0a1030f0  gcc/testsuite/gfortran.dg/gomp/map-3.f90
  cd9740173b89307e8f51dcf62b1f0874  gcc/testsuite/gfortran.dg/gomp/map-4.f90
  b76492fcf2fb1505fe0530d8302d7581  gcc/testsuite/gfortran.dg/gomp/map-5.f90
  d9692272c0b81e1742bb5a587d004640  gcc/testsuite/gfortran.dg/gomp/map-6.f90
! a15327fbebc52fb184d3971928dc264d  gcc/testsuite/gfortran.dg/gomp/map-7.f90
! 7716dfe585f082cdb3180040c8094a78  gcc/testsuite/gfortran.dg/gomp/map-8.f90
! da5739a175a99b959576ca5bd3277008  gcc/testsuite/gfortran.dg/gomp/map-9.f90
  dbafc5b94ae395cda5657628bc263b17  gcc/testsuite/gfortran.dg/gomp/map-alloc-comp-1.f90
  27a18505986bb3d15bf8fae66e56277d  gcc/testsuite/gfortran.dg/gomp/masked-1.f90
  3dcee7c8522ab62ae30bfb476d1ff838  gcc/testsuite/gfortran.dg/gomp/masked-2.f90
  030bb5759e59829f3b659878d4b71c83  gcc/testsuite/gfortran.dg/gomp/masked-3.f90
--- 95798,95823 ----
  a4e7ef5926daf8429df01accd234ddc2  gcc/testsuite/gfortran.dg/gomp/linear-7.f90
  8b81f69306667f7ab92ce3e8cd7a31cf  gcc/testsuite/gfortran.dg/gomp/linear-8.f90
  1bf1a25963d70f206f6b9615dd00b4a3  gcc/testsuite/gfortran.dg/gomp/loop-1.f90
! 5d73b1ef8bdead30a661e4167a05e72c  gcc/testsuite/gfortran.dg/gomp/loop-2.f90
  9fc7632ae864eb649dcb18b7f8cab32c  gcc/testsuite/gfortran.dg/gomp/loop-3.f90
  d9fb1de547303f6296a47031238a2a91  gcc/testsuite/gfortran.dg/gomp/loop-4.f90
  f9ef443961a79bdf37522ed835fb9343  gcc/testsuite/gfortran.dg/gomp/loop-5.f90
  30f19939f66f9036dd94e47a44d71909  gcc/testsuite/gfortran.dg/gomp/loop-exit.f90
  dec560a080ae2757b0acb2325c3aafab  gcc/testsuite/gfortran.dg/gomp/map-1.f90
+ 11c284b49207de0bcded24256310f939  gcc/testsuite/gfortran.dg/gomp/map-10.f90
+ 4fc3198a0e28b8286278dfad0e0e1315  gcc/testsuite/gfortran.dg/gomp/map-11.f90
+ 8d37da92969529c86d4aefed77de6d7a  gcc/testsuite/gfortran.dg/gomp/map-12.f90
  43569bbc57024a10628df3c4be381f2a  gcc/testsuite/gfortran.dg/gomp/map-2.f90
  c2d8019d8ca18a09c79c939c0a1030f0  gcc/testsuite/gfortran.dg/gomp/map-3.f90
  cd9740173b89307e8f51dcf62b1f0874  gcc/testsuite/gfortran.dg/gomp/map-4.f90
  b76492fcf2fb1505fe0530d8302d7581  gcc/testsuite/gfortran.dg/gomp/map-5.f90
  d9692272c0b81e1742bb5a587d004640  gcc/testsuite/gfortran.dg/gomp/map-6.f90
! 22cb7336223857b6a2075fbcf16640bc  gcc/testsuite/gfortran.dg/gomp/map-7.f90
! 7db1e7040e830b05cbfea84dfdadc88c  gcc/testsuite/gfortran.dg/gomp/map-8.f90
! e4611087ccbe2da89ff845309c4f0a28  gcc/testsuite/gfortran.dg/gomp/map-9.f90
  dbafc5b94ae395cda5657628bc263b17  gcc/testsuite/gfortran.dg/gomp/map-alloc-comp-1.f90
+ 45a30924a96af3f4dc17367d65b8aa30  gcc/testsuite/gfortran.dg/gomp/map-subarray-2.f90
+ 5550343861e8ec99bf1c92417a9a383f  gcc/testsuite/gfortran.dg/gomp/map-subarray.f90
  27a18505986bb3d15bf8fae66e56277d  gcc/testsuite/gfortran.dg/gomp/masked-1.f90
  3dcee7c8522ab62ae30bfb476d1ff838  gcc/testsuite/gfortran.dg/gomp/masked-2.f90
  030bb5759e59829f3b659878d4b71c83  gcc/testsuite/gfortran.dg/gomp/masked-3.f90
*************** eab54daacd3e5d6012cfbac3a0c1cb18  gcc/te
*** 86804,86810 ****
  5eb69ee32fb2e3a0ddb2b6d84e0e175c  gcc/testsuite/gfortran.dg/gomp/nontemporal-1.f90
  50c115c8124a5d89918f3466d7eab60a  gcc/testsuite/gfortran.dg/gomp/nontemporal-2.f90
  f9188ccb0e23b81607240441c3714df2  gcc/testsuite/gfortran.dg/gomp/nothing-1.f90
! 10acc2278da37244f753a40297cd1e3a  gcc/testsuite/gfortran.dg/gomp/nothing-2.f90
  3cc8ac1a4c71ccef2cd14409d43c0c2f  gcc/testsuite/gfortran.dg/gomp/nowait-1.f90
  cd03f8a0d20132fe216e0272244aea16  gcc/testsuite/gfortran.dg/gomp/nowait-2.f90
  490e293ad86c435fc0bcef164624d407  gcc/testsuite/gfortran.dg/gomp/nowait-3.f90
--- 95832,95838 ----
  5eb69ee32fb2e3a0ddb2b6d84e0e175c  gcc/testsuite/gfortran.dg/gomp/nontemporal-1.f90
  50c115c8124a5d89918f3466d7eab60a  gcc/testsuite/gfortran.dg/gomp/nontemporal-2.f90
  f9188ccb0e23b81607240441c3714df2  gcc/testsuite/gfortran.dg/gomp/nothing-1.f90
! 178861091b905131233646d13eaba131  gcc/testsuite/gfortran.dg/gomp/nothing-2.f90
  3cc8ac1a4c71ccef2cd14409d43c0c2f  gcc/testsuite/gfortran.dg/gomp/nowait-1.f90
  cd03f8a0d20132fe216e0272244aea16  gcc/testsuite/gfortran.dg/gomp/nowait-2.f90
  490e293ad86c435fc0bcef164624d407  gcc/testsuite/gfortran.dg/gomp/nowait-3.f90
*************** edeec1fe2488c7117f56e10734af03dc  gcc/te
*** 86862,86867 ****
--- 95890,95896 ----
  697c52a53eea166cade44a3f935b8caf  gcc/testsuite/gfortran.dg/gomp/pr107214-7.f90
  1474c5a5881d7047f1212bc8cfb8ef92  gcc/testsuite/gfortran.dg/gomp/pr107214-8.f90
  3beded12a494129bebcc732d85089896  gcc/testsuite/gfortran.dg/gomp/pr107214.f90
+ 616305573acc701769497c1eee637edc  gcc/testsuite/gfortran.dg/gomp/pr114825.f90
  9a6817790a272cd8153d4303d324c00f  gcc/testsuite/gfortran.dg/gomp/pr26224.f
  d2c74a71f2bea0005d853821e6f0142c  gcc/testsuite/gfortran.dg/gomp/pr27573.f90
  a65c4577a606ba1bdab50e690b269b04  gcc/testsuite/gfortran.dg/gomp/pr29759.f90
*************** bb35c5bd7245c0d5e4e5f3ed549e7fef  gcc/te
*** 86919,86938 ****
  e5f0ff2c94fb41e447563955917d04b7  gcc/testsuite/gfortran.dg/gomp/pr77666.f90
  8968b6642e6ba9ea7870f963ca23770a  gcc/testsuite/gfortran.dg/gomp/pr77973.f90
  3a11d068cb262058109de03c2147fc09  gcc/testsuite/gfortran.dg/gomp/pr78026.f03
! eb92b9390a9ddff80b32d74ddf94ee0c  gcc/testsuite/gfortran.dg/gomp/pr78260-2.f90
  82944b2dcb4533aa8669aa80570f7ac9  gcc/testsuite/gfortran.dg/gomp/pr78260-3.f90
  818814829feac80dc1d477b80fcec48f  gcc/testsuite/gfortran.dg/gomp/pr78260.f90
  597f76dd386ee781839ef6d3ac92cd38  gcc/testsuite/gfortran.dg/gomp/pr78298.f90
  7031f0539504d7051ea534bfda971893  gcc/testsuite/gfortran.dg/gomp/pr78299.f90
  c77cea4fe3e6db60cec6014217b3e898  gcc/testsuite/gfortran.dg/gomp/pr78866-1.f90
  7be086a304cd4d607913bd32ad2448ca  gcc/testsuite/gfortran.dg/gomp/pr78866-2.f90
! 70e129178ee7ba2c60822305774c66d7  gcc/testsuite/gfortran.dg/gomp/pr79154-1.f90
! 2caffe73180ead2c80b3f612aec525e4  gcc/testsuite/gfortran.dg/gomp/pr79154-2.f90
! e8dbf438b205977a06ec1f2c40727df0  gcc/testsuite/gfortran.dg/gomp/pr79154-simd.f90
  9b10d6e97e6ec036398bc75fe623a968  gcc/testsuite/gfortran.dg/gomp/pr80918.f90
  f5bcea31678114301e0da9c5d60bb564  gcc/testsuite/gfortran.dg/gomp/pr81887.f90
  92640e276a3deabcb0817b450e3c007f  gcc/testsuite/gfortran.dg/gomp/pr82568.f90
! abcf243d41ab312c5b8bd135bf736ce3  gcc/testsuite/gfortran.dg/gomp/pr83977.f90
  28b8381f9a6407f3fbdf2a45fe796f66  gcc/testsuite/gfortran.dg/gomp/pr84116.f90
  eaf9460f4ff975f6fc6dcd6a8c5f1500  gcc/testsuite/gfortran.dg/gomp/pr85313.f90
  793bc6a890f694516d4634a933a5cb43  gcc/testsuite/gfortran.dg/gomp/pr85703.f90
--- 95948,95967 ----
  e5f0ff2c94fb41e447563955917d04b7  gcc/testsuite/gfortran.dg/gomp/pr77666.f90
  8968b6642e6ba9ea7870f963ca23770a  gcc/testsuite/gfortran.dg/gomp/pr77973.f90
  3a11d068cb262058109de03c2147fc09  gcc/testsuite/gfortran.dg/gomp/pr78026.f03
! 30ccc07af8b92b2bff3f8e459336b7f5  gcc/testsuite/gfortran.dg/gomp/pr78260-2.f90
  82944b2dcb4533aa8669aa80570f7ac9  gcc/testsuite/gfortran.dg/gomp/pr78260-3.f90
  818814829feac80dc1d477b80fcec48f  gcc/testsuite/gfortran.dg/gomp/pr78260.f90
  597f76dd386ee781839ef6d3ac92cd38  gcc/testsuite/gfortran.dg/gomp/pr78298.f90
  7031f0539504d7051ea534bfda971893  gcc/testsuite/gfortran.dg/gomp/pr78299.f90
  c77cea4fe3e6db60cec6014217b3e898  gcc/testsuite/gfortran.dg/gomp/pr78866-1.f90
  7be086a304cd4d607913bd32ad2448ca  gcc/testsuite/gfortran.dg/gomp/pr78866-2.f90
! 46a4b7ec5374b626668fcbcfaffa545a  gcc/testsuite/gfortran.dg/gomp/pr79154-1.f90
! 81eb2d606f9a53dc4b21952494e2eb21  gcc/testsuite/gfortran.dg/gomp/pr79154-2.f90
! cfd3639436beee7a175e6d834a4c6834  gcc/testsuite/gfortran.dg/gomp/pr79154-simd.f90
  9b10d6e97e6ec036398bc75fe623a968  gcc/testsuite/gfortran.dg/gomp/pr80918.f90
  f5bcea31678114301e0da9c5d60bb564  gcc/testsuite/gfortran.dg/gomp/pr81887.f90
  92640e276a3deabcb0817b450e3c007f  gcc/testsuite/gfortran.dg/gomp/pr82568.f90
! 13b62b43e8c430a8a748b9782ee8d3d1  gcc/testsuite/gfortran.dg/gomp/pr83977.f90
  28b8381f9a6407f3fbdf2a45fe796f66  gcc/testsuite/gfortran.dg/gomp/pr84116.f90
  eaf9460f4ff975f6fc6dcd6a8c5f1500  gcc/testsuite/gfortran.dg/gomp/pr85313.f90
  793bc6a890f694516d4634a933a5cb43  gcc/testsuite/gfortran.dg/gomp/pr85703.f90
*************** c2c9b1a1db79eedb25331d3565231b66  gcc/te
*** 86947,86953 ****
  6db6e7072dccd0be789b6dc9bd2a586c  gcc/testsuite/gfortran.dg/gomp/pr93555.f90
  a921eeb5697bd066712d41d66d374930  gcc/testsuite/gfortran.dg/gomp/pr94672.f90
  8a04653b9aa2543e13a3136934e00444  gcc/testsuite/gfortran.dg/gomp/pr95869.f90
! 499f4d9c60bbb1a2be81d1888def444c  gcc/testsuite/gfortran.dg/gomp/pr99226.f90
  bcd0369b2e799c3808032efd4c583295  gcc/testsuite/gfortran.dg/gomp/pr99928-1.f90
  5a122e0df6f86c9b8f25e3ef0a8de595  gcc/testsuite/gfortran.dg/gomp/pr99928-11.f90
  10754ed15a5d6410e61e98492ddcc1a6  gcc/testsuite/gfortran.dg/gomp/pr99928-2.f90
--- 95976,95982 ----
  6db6e7072dccd0be789b6dc9bd2a586c  gcc/testsuite/gfortran.dg/gomp/pr93555.f90
  a921eeb5697bd066712d41d66d374930  gcc/testsuite/gfortran.dg/gomp/pr94672.f90
  8a04653b9aa2543e13a3136934e00444  gcc/testsuite/gfortran.dg/gomp/pr95869.f90
! f832e5b53ac5754d0490d912e4da9ec6  gcc/testsuite/gfortran.dg/gomp/pr99226.f90
  bcd0369b2e799c3808032efd4c583295  gcc/testsuite/gfortran.dg/gomp/pr99928-1.f90
  5a122e0df6f86c9b8f25e3ef0a8de595  gcc/testsuite/gfortran.dg/gomp/pr99928-11.f90
  10754ed15a5d6410e61e98492ddcc1a6  gcc/testsuite/gfortran.dg/gomp/pr99928-2.f90
*************** eccea57d37be5c510137e35d54db87b2  gcc/te
*** 86958,86963 ****
--- 95987,95996 ----
  453d5604d4da08b7868c762f71d254fc  gcc/testsuite/gfortran.dg/gomp/pr99928-8.f90
  b4be3f9de7631846875a711ae9b67293  gcc/testsuite/gfortran.dg/gomp/proc_ptr_1.f90
  87885556568e657ef4c936c53e1c7305  gcc/testsuite/gfortran.dg/gomp/proc_ptr_2.f90
+ 4edb8a2b8f952f795f9f57117721cbb7  gcc/testsuite/gfortran.dg/gomp/pure-1.f90
+ 028a819c77b9453f3311b6fc760c578f  gcc/testsuite/gfortran.dg/gomp/pure-2.f90
+ 5eef8930e22c6aaec5db14655ff40440  gcc/testsuite/gfortran.dg/gomp/pure-3.f90
+ ebdb3f699016b45eacec723166e0a536  gcc/testsuite/gfortran.dg/gomp/pure-4.f90
  fb0554238513491cab61f8c72f0fb5d5  gcc/testsuite/gfortran.dg/gomp/reduction-task-1.f90
  14ea0275f3cac52c76c9b2a736035336  gcc/testsuite/gfortran.dg/gomp/reduction-task-2.f90
  a68adcaed6526211be8ca88c99cd653f  gcc/testsuite/gfortran.dg/gomp/reduction-task-2a.f90
*************** a68adcaed6526211be8ca88c99cd653f  gcc/te
*** 86966,86991 ****
  02484261b0434dbaf2709c34db58cd4d  gcc/testsuite/gfortran.dg/gomp/reduction2.f90
  a2addf1a691db784ba87841fe1cf8f23  gcc/testsuite/gfortran.dg/gomp/reduction3.f90
  9c7956cb365de1302caa4e1e6ffdfdcc  gcc/testsuite/gfortran.dg/gomp/reduction4.f90
! 064bdb06408bc5a9f40c8c8d750ca08b  gcc/testsuite/gfortran.dg/gomp/reduction5.f90
! 8f041e818ba5c0f262e7497ab62c4291  gcc/testsuite/gfortran.dg/gomp/reduction6.f90
  0c741a076dd04066bfbaa57725ef02e9  gcc/testsuite/gfortran.dg/gomp/reduction7.f90
  7fe01ba3e1a1dd148d342a8c66455920  gcc/testsuite/gfortran.dg/gomp/ref_inquiry.f90
  274262a532e8508d248c02dc12d359bc  gcc/testsuite/gfortran.dg/gomp/requires-1.f90
! 140462f2e11c8432e775eb6957a8e7bb  gcc/testsuite/gfortran.dg/gomp/requires-2.f90
! c91352c09b91870936925c3ece3a6771  gcc/testsuite/gfortran.dg/gomp/requires-3.f90
  75b81b2a8b98f4d1fddf460d4f91687c  gcc/testsuite/gfortran.dg/gomp/requires-4.f90
! 63a2fe63c34ac01ee2bad940a096ad3d  gcc/testsuite/gfortran.dg/gomp/requires-5.f90
  46f083bb08dfc0edfbdb3af4353d7197  gcc/testsuite/gfortran.dg/gomp/requires-6.f90
  d47fb4d0166842f717efe23cd8e6548c  gcc/testsuite/gfortran.dg/gomp/requires-7.f90
  d653471d8f256659299160eeef0b3250  gcc/testsuite/gfortran.dg/gomp/requires-8.f90
  db8328a4f748cc704f20335b7343890b  gcc/testsuite/gfortran.dg/gomp/requires-9.f90
! 070f19e3148aa90d8d032efcc1e9de46  gcc/testsuite/gfortran.dg/gomp/scan-1.f90
  e69757621834c84c21fc0470637b86af  gcc/testsuite/gfortran.dg/gomp/scan-2.f90
  d32b934bf6eb3a58ce0d40315170c604  gcc/testsuite/gfortran.dg/gomp/scan-3.f90
  2a477c93efd3a986af025bedc0ec0fee  gcc/testsuite/gfortran.dg/gomp/scan-4.f90
  0841a9a30673302abe7c2567cc8e307c  gcc/testsuite/gfortran.dg/gomp/scan-5.f90
  35326d68b85545facab66432fae3e042  gcc/testsuite/gfortran.dg/gomp/scan-6.f90
  d56094ad174ac9dd36a007adf8c4fb31  gcc/testsuite/gfortran.dg/gomp/scan-7.f90
  96b7be608b1727fa1e3fc8a9c0185d70  gcc/testsuite/gfortran.dg/gomp/schedule-1.f90
  c525cee40cfdc1d7f1dda5cf299fdde9  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-1.f90
  97aefac9d65dc006ea6d5ce5ea111492  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90
--- 95999,96027 ----
  02484261b0434dbaf2709c34db58cd4d  gcc/testsuite/gfortran.dg/gomp/reduction2.f90
  a2addf1a691db784ba87841fe1cf8f23  gcc/testsuite/gfortran.dg/gomp/reduction3.f90
  9c7956cb365de1302caa4e1e6ffdfdcc  gcc/testsuite/gfortran.dg/gomp/reduction4.f90
! 629e3cdef4114f6f468e57f8c32fd5bb  gcc/testsuite/gfortran.dg/gomp/reduction5.f90
! 124001027b2d44d709bbbbc5ccd66a92  gcc/testsuite/gfortran.dg/gomp/reduction6.f90
  0c741a076dd04066bfbaa57725ef02e9  gcc/testsuite/gfortran.dg/gomp/reduction7.f90
  7fe01ba3e1a1dd148d342a8c66455920  gcc/testsuite/gfortran.dg/gomp/ref_inquiry.f90
  274262a532e8508d248c02dc12d359bc  gcc/testsuite/gfortran.dg/gomp/requires-1.f90
! aa73cc15d0a821884197ef200cc49dc8  gcc/testsuite/gfortran.dg/gomp/requires-10.f90
! 2bddefbd1131ecb8f1773bb7b9d5ee8c  gcc/testsuite/gfortran.dg/gomp/requires-11.f90
! 74e99b9b4ea256fa8dc61665ecf06940  gcc/testsuite/gfortran.dg/gomp/requires-2.f90
! f8131ff96b4007846fbcefaafb022a81  gcc/testsuite/gfortran.dg/gomp/requires-3.f90
  75b81b2a8b98f4d1fddf460d4f91687c  gcc/testsuite/gfortran.dg/gomp/requires-4.f90
! cadec9539cd1459563a45548b4b267c9  gcc/testsuite/gfortran.dg/gomp/requires-5.f90
  46f083bb08dfc0edfbdb3af4353d7197  gcc/testsuite/gfortran.dg/gomp/requires-6.f90
  d47fb4d0166842f717efe23cd8e6548c  gcc/testsuite/gfortran.dg/gomp/requires-7.f90
  d653471d8f256659299160eeef0b3250  gcc/testsuite/gfortran.dg/gomp/requires-8.f90
  db8328a4f748cc704f20335b7343890b  gcc/testsuite/gfortran.dg/gomp/requires-9.f90
! 1ed17032e7d2e278d3978db257cdb3dd  gcc/testsuite/gfortran.dg/gomp/scan-1.f90
  e69757621834c84c21fc0470637b86af  gcc/testsuite/gfortran.dg/gomp/scan-2.f90
  d32b934bf6eb3a58ce0d40315170c604  gcc/testsuite/gfortran.dg/gomp/scan-3.f90
  2a477c93efd3a986af025bedc0ec0fee  gcc/testsuite/gfortran.dg/gomp/scan-4.f90
  0841a9a30673302abe7c2567cc8e307c  gcc/testsuite/gfortran.dg/gomp/scan-5.f90
  35326d68b85545facab66432fae3e042  gcc/testsuite/gfortran.dg/gomp/scan-6.f90
  d56094ad174ac9dd36a007adf8c4fb31  gcc/testsuite/gfortran.dg/gomp/scan-7.f90
+ 72fdab1298dcbffc11b77783e73b2bff  gcc/testsuite/gfortran.dg/gomp/scan-8.f90
  96b7be608b1727fa1e3fc8a9c0185d70  gcc/testsuite/gfortran.dg/gomp/schedule-1.f90
  c525cee40cfdc1d7f1dda5cf299fdde9  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-1.f90
  97aefac9d65dc006ea6d5ce5ea111492  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90
*************** b3d1280c39c6cae9dddab498b1e1eeb4  gcc/te
*** 87001,87006 ****
--- 96037,96043 ----
  d492a0ba11cd7662d12ae10d05c32cae  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-2.f90
  2645b64d7f38b00ac8056bed5284cfb5  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-3.f90
  5aa2e0ee8670be7d60e95eb876e49faa  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-4.f90
+ 0938cf42002e64246f5cfad387f8c0ed  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-5.f90
  8f8ce7f2adace9bd429d0fc54c872b4b  gcc/testsuite/gfortran.dg/gomp/substring.f90
  53e2d4b63d9ca8815db53bc42f488e2f  gcc/testsuite/gfortran.dg/gomp/target-data-1.f90
  079f6173ec2dbebf8ed09d91f136f03d  gcc/testsuite/gfortran.dg/gomp/target-data-2.f90
*************** d492a0ba11cd7662d12ae10d05c32cae  gcc/te
*** 87013,87032 ****
  500a5f460107c8722e23208574b65d09  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-4.f90
  7ec834f632faabec913cbd38f2862fb3  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-5.f90
  1577072db3f937bbd080bc7c33395c3b  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-6.f90
! 1270cfd451f11e2ba8a4b451bb9b51e3  gcc/testsuite/gfortran.dg/gomp/target-exit-data.f90
  255df1293a7e993064b5f2531dd1a039  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-1.f90
  533ad130fc9c9f6a430f9cdefc575831  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-2.f90
  3c3ee23796192e475b1597bfe4ae9d72  gcc/testsuite/gfortran.dg/gomp/target-parallel1.f90
  919bd1d4b3eea35828ead5f8cf204a98  gcc/testsuite/gfortran.dg/gomp/target1.f90
  b75e4a6eaec211becf176c75768a3f3d  gcc/testsuite/gfortran.dg/gomp/target2.f90
  4a93baff2b168f10d86571d18de637ba  gcc/testsuite/gfortran.dg/gomp/target3.f90
  15b47b840694124950869755ba30ce6f  gcc/testsuite/gfortran.dg/gomp/task-detach-1.f90
  6c1d12034e3ca377a04b7373ef678265  gcc/testsuite/gfortran.dg/gomp/taskloop-1.f90
! 46ef7c29d7255c472ff1de0f32d3890a  gcc/testsuite/gfortran.dg/gomp/taskloop-2.f90
  694a3a8185e7fe47817679c2aeb886c8  gcc/testsuite/gfortran.dg/gomp/taskwait-depend-nowait-1.f90
  1b22afe90e22c058fc805c2720b68de8  gcc/testsuite/gfortran.dg/gomp/taskwait.f90
  c3cfb4ba20d0cf306196d4a7cfcbd04d  gcc/testsuite/gfortran.dg/gomp/teams-3.f90
  0dd7189095b30c8c67757c8e75cf399e  gcc/testsuite/gfortran.dg/gomp/teams-4.f90
  93bf9ebfcd92172a6fc8ffa353dc697b  gcc/testsuite/gfortran.dg/gomp/teams1.f90
  ece14642b39d950304d0510a2090d613  gcc/testsuite/gfortran.dg/gomp/threadprivate-1.f90
  86f899863718848e682593290355e6c1  gcc/testsuite/gfortran.dg/gomp/udr1.f90
--- 96050,96073 ----
  500a5f460107c8722e23208574b65d09  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-4.f90
  7ec834f632faabec913cbd38f2862fb3  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-5.f90
  1577072db3f937bbd080bc7c33395c3b  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-6.f90
! 0cb34f27de5a8441a9132029257af307  gcc/testsuite/gfortran.dg/gomp/target-enter-exit-data.f90
! 874160eb3e56004e967fed8574857c36  gcc/testsuite/gfortran.dg/gomp/target-exit-data.f90
  255df1293a7e993064b5f2531dd1a039  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-1.f90
  533ad130fc9c9f6a430f9cdefc575831  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-2.f90
  3c3ee23796192e475b1597bfe4ae9d72  gcc/testsuite/gfortran.dg/gomp/target-parallel1.f90
+ 69d4ca23e09530908dad71ad87c932c1  gcc/testsuite/gfortran.dg/gomp/target-update-1.f90
  919bd1d4b3eea35828ead5f8cf204a98  gcc/testsuite/gfortran.dg/gomp/target1.f90
  b75e4a6eaec211becf176c75768a3f3d  gcc/testsuite/gfortran.dg/gomp/target2.f90
  4a93baff2b168f10d86571d18de637ba  gcc/testsuite/gfortran.dg/gomp/target3.f90
  15b47b840694124950869755ba30ce6f  gcc/testsuite/gfortran.dg/gomp/task-detach-1.f90
  6c1d12034e3ca377a04b7373ef678265  gcc/testsuite/gfortran.dg/gomp/taskloop-1.f90
! ccb7b4451c217a9dd2635e672900c087  gcc/testsuite/gfortran.dg/gomp/taskloop-2.f90
  694a3a8185e7fe47817679c2aeb886c8  gcc/testsuite/gfortran.dg/gomp/taskwait-depend-nowait-1.f90
  1b22afe90e22c058fc805c2720b68de8  gcc/testsuite/gfortran.dg/gomp/taskwait.f90
  c3cfb4ba20d0cf306196d4a7cfcbd04d  gcc/testsuite/gfortran.dg/gomp/teams-3.f90
  0dd7189095b30c8c67757c8e75cf399e  gcc/testsuite/gfortran.dg/gomp/teams-4.f90
+ cddf0e5db848cb565f919271c30b45c6  gcc/testsuite/gfortran.dg/gomp/teams-5.f90
+ 24609eb65d0d73474b025ad81503c37d  gcc/testsuite/gfortran.dg/gomp/teams-6.f90
  93bf9ebfcd92172a6fc8ffa353dc697b  gcc/testsuite/gfortran.dg/gomp/teams1.f90
  ece14642b39d950304d0510a2090d613  gcc/testsuite/gfortran.dg/gomp/threadprivate-1.f90
  86f899863718848e682593290355e6c1  gcc/testsuite/gfortran.dg/gomp/udr1.f90
*************** ece14642b39d950304d0510a2090d613  gcc/te
*** 87040,87046 ****
  bdd3234f4f1bcbaa3e8d622739012887  gcc/testsuite/gfortran.dg/gomp/unexpected-end.f90
  191b4f3758e937a3380be8e7173714d3  gcc/testsuite/gfortran.dg/gomp/use_device_ptr-1.f90
  443b8f44ee67bd099885898c659e395f  gcc/testsuite/gfortran.dg/gomp/warn_truncated.f
! b3430eeb122295940c5fb0b7ba4438a3  gcc/testsuite/gfortran.dg/gomp/warn_truncated.f90
  b9e9f073097ce9d7794f1c448c59f38d  gcc/testsuite/gfortran.dg/gomp/workshare-59.f90
  9c337aedd0ef3d96ead8e1c87c575692  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-1.f90
  c24680477e7620be28299503f743cb5c  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-10.f90
--- 96081,96087 ----
  bdd3234f4f1bcbaa3e8d622739012887  gcc/testsuite/gfortran.dg/gomp/unexpected-end.f90
  191b4f3758e937a3380be8e7173714d3  gcc/testsuite/gfortran.dg/gomp/use_device_ptr-1.f90
  443b8f44ee67bd099885898c659e395f  gcc/testsuite/gfortran.dg/gomp/warn_truncated.f
! 1a309fa2b87f44fe4a169545214d10b2  gcc/testsuite/gfortran.dg/gomp/warn_truncated.f90
  b9e9f073097ce9d7794f1c448c59f38d  gcc/testsuite/gfortran.dg/gomp/workshare-59.f90
  9c337aedd0ef3d96ead8e1c87c575692  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-1.f90
  c24680477e7620be28299503f743cb5c  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-10.f90
*************** b668767cebd1d81ba2d2ca1138456cbe  gcc/te
*** 87118,87124 ****
  7f6a0bf732d7a49a9bd1a4598c67549a  gcc/testsuite/gfortran.dg/graphite/block-2.f
  b432d9423fac5506e5220aa6b34be410  gcc/testsuite/gfortran.dg/graphite/block-3.f90
  466df24c793ce10011458d00ea210bc9  gcc/testsuite/gfortran.dg/graphite/block-4.f90
! 494b58b463df112fb93a15d74cd3b454  gcc/testsuite/gfortran.dg/graphite/graphite.exp
  178815ec0b286d5b50214ae046b407fe  gcc/testsuite/gfortran.dg/graphite/id-1.f90
  df4c5d17c4fe35475b6ddff605a83c8f  gcc/testsuite/gfortran.dg/graphite/id-10.f90
  6fd035afd995bfd09cebafa89bb45211  gcc/testsuite/gfortran.dg/graphite/id-11.f
--- 96159,96165 ----
  7f6a0bf732d7a49a9bd1a4598c67549a  gcc/testsuite/gfortran.dg/graphite/block-2.f
  b432d9423fac5506e5220aa6b34be410  gcc/testsuite/gfortran.dg/graphite/block-3.f90
  466df24c793ce10011458d00ea210bc9  gcc/testsuite/gfortran.dg/graphite/block-4.f90
! 629581b6502e1c70aa97150a793f558b  gcc/testsuite/gfortran.dg/graphite/graphite.exp
  178815ec0b286d5b50214ae046b407fe  gcc/testsuite/gfortran.dg/graphite/id-1.f90
  df4c5d17c4fe35475b6ddff605a83c8f  gcc/testsuite/gfortran.dg/graphite/id-10.f90
  6fd035afd995bfd09cebafa89bb45211  gcc/testsuite/gfortran.dg/graphite/id-11.f
*************** a694bd805dd3aeebdb0f7e0a7f45a745  gcc/te
*** 87157,87163 ****
  0240aae9686b369eab6446b045ecaa8c  gcc/testsuite/gfortran.dg/graphite/interchange-3.f90
  6453be1d74bfa124e43e80cd5a76bcea  gcc/testsuite/gfortran.dg/graphite/interchange-4.f
  87e0ced91004c7ae6983653155179e10  gcc/testsuite/gfortran.dg/graphite/interchange-5.f
! 1f4660b67fad96a31c0671a992c30136  gcc/testsuite/gfortran.dg/graphite/pr107865.f90
  0e0032acf3995632e5da45c38bdb6512  gcc/testsuite/gfortran.dg/graphite/pr14741.f90
  f7134dbe0fa84d721d192cd67175ff61  gcc/testsuite/gfortran.dg/graphite/pr29290.f90
  b2341f4b53422560907f06b2d2c09962  gcc/testsuite/gfortran.dg/graphite/pr29581.f90
--- 96198,96204 ----
  0240aae9686b369eab6446b045ecaa8c  gcc/testsuite/gfortran.dg/graphite/interchange-3.f90
  6453be1d74bfa124e43e80cd5a76bcea  gcc/testsuite/gfortran.dg/graphite/interchange-4.f
  87e0ced91004c7ae6983653155179e10  gcc/testsuite/gfortran.dg/graphite/interchange-5.f
! 4b96478fdc981fec930a8c163693266b  gcc/testsuite/gfortran.dg/graphite/pr107865.f90
  0e0032acf3995632e5da45c38bdb6512  gcc/testsuite/gfortran.dg/graphite/pr14741.f90
  f7134dbe0fa84d721d192cd67175ff61  gcc/testsuite/gfortran.dg/graphite/pr29290.f90
  b2341f4b53422560907f06b2d2c09962  gcc/testsuite/gfortran.dg/graphite/pr29581.f90
*************** be38b857e952acdc102ae2884e393683  gcc/te
*** 87218,87227 ****
  c5a256733781be2dc88ea518b8758391  gcc/testsuite/gfortran.dg/graphite/run-id-2.f90
  6c187a54a92f49b5734ee67b739b6e74  gcc/testsuite/gfortran.dg/graphite/run-id-3.f90
  daa1172ed1d5a6072057b20aaca3b1ec  gcc/testsuite/gfortran.dg/graphite/scop-1.f
! c6ccb0077483440bf572afc0c07cf295  gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90
  7f4798472e54ab24309f0edab16c91d1  gcc/testsuite/gfortran.dg/graphite/vect-pr94043.f90
  f9932e22f4bc6baa989154035dbac7c1  gcc/testsuite/gfortran.dg/guality/arg1.f90
! 05eb8da77a2443996d7fece3e1c4fce6  gcc/testsuite/gfortran.dg/guality/guality.exp
  9e2790792b04c03a1a0860c862a27b4b  gcc/testsuite/gfortran.dg/guality/pr41558.f90
  26d42c53448fb26d2b66a4b1d93693d3  gcc/testsuite/gfortran.dg/hollerith.f90
  855af7807ad9d75aef7ff85c2859a0c2  gcc/testsuite/gfortran.dg/hollerith2.f90
--- 96259,96268 ----
  c5a256733781be2dc88ea518b8758391  gcc/testsuite/gfortran.dg/graphite/run-id-2.f90
  6c187a54a92f49b5734ee67b739b6e74  gcc/testsuite/gfortran.dg/graphite/run-id-3.f90
  daa1172ed1d5a6072057b20aaca3b1ec  gcc/testsuite/gfortran.dg/graphite/scop-1.f
! 702b0cdf61e5478dccaf83e842bc3466  gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90
  7f4798472e54ab24309f0edab16c91d1  gcc/testsuite/gfortran.dg/graphite/vect-pr94043.f90
  f9932e22f4bc6baa989154035dbac7c1  gcc/testsuite/gfortran.dg/guality/arg1.f90
! 128c53f5654abe0b2d02631fd7e53f7e  gcc/testsuite/gfortran.dg/guality/guality.exp
  9e2790792b04c03a1a0860c862a27b4b  gcc/testsuite/gfortran.dg/guality/pr41558.f90
  26d42c53448fb26d2b66a4b1d93693d3  gcc/testsuite/gfortran.dg/hollerith.f90
  855af7807ad9d75aef7ff85c2859a0c2  gcc/testsuite/gfortran.dg/hollerith2.f90
*************** e6c37a9def09433a6a2f8bc1d9220133  gcc/te
*** 87272,87280 ****
  cc7201a9525a4793e8bf391d30c3653d  gcc/testsuite/gfortran.dg/ichar_1.f90
  8201f75f0deee5480134fc16f1113f0c  gcc/testsuite/gfortran.dg/ichar_2.f90
  b614ce421f97fb4ab6fa10f1f1c47ab0  gcc/testsuite/gfortran.dg/ichar_3.f90
  5b6adfdb788db3a061d01bdf727a5a52  gcc/testsuite/gfortran.dg/ieee/dec_math_1.f90
  d85bd542d89b90d90d1e34aff7cbb3bb  gcc/testsuite/gfortran.dg/ieee/fma_1.f90
! a341ee70f454abc221893d3bdafd4f2d  gcc/testsuite/gfortran.dg/ieee/ieee.exp
  0099e59ef340f8e2088656dfac86c17f  gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
  3d9e86cdd52561209aae0f0fcaf3590f  gcc/testsuite/gfortran.dg/ieee/ieee_10.f90
  6183b8dca51e7054ad280235aaba2999  gcc/testsuite/gfortran.dg/ieee/ieee_11.F90
--- 96313,96324 ----
  cc7201a9525a4793e8bf391d30c3653d  gcc/testsuite/gfortran.dg/ichar_1.f90
  8201f75f0deee5480134fc16f1113f0c  gcc/testsuite/gfortran.dg/ichar_2.f90
  b614ce421f97fb4ab6fa10f1f1c47ab0  gcc/testsuite/gfortran.dg/ichar_3.f90
+ 46bf5490daa7ecd4f53169bfa0c06f54  gcc/testsuite/gfortran.dg/ieee/comparisons_1.f90
+ 80814fab27b85713f3729312f395cc9c  gcc/testsuite/gfortran.dg/ieee/comparisons_2.f90
+ e3e648c00ebdbf95a3f2217d277ccdb9  gcc/testsuite/gfortran.dg/ieee/comparisons_3.F90
  5b6adfdb788db3a061d01bdf727a5a52  gcc/testsuite/gfortran.dg/ieee/dec_math_1.f90
  d85bd542d89b90d90d1e34aff7cbb3bb  gcc/testsuite/gfortran.dg/ieee/fma_1.f90
! c992b0153e9bf583f13fb082c9ad607c  gcc/testsuite/gfortran.dg/ieee/ieee.exp
  0099e59ef340f8e2088656dfac86c17f  gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
  3d9e86cdd52561209aae0f0fcaf3590f  gcc/testsuite/gfortran.dg/ieee/ieee_10.f90
  6183b8dca51e7054ad280235aaba2999  gcc/testsuite/gfortran.dg/ieee/ieee_11.F90
*************** a341ee70f454abc221893d3bdafd4f2d  gcc/te
*** 87283,87289 ****
  b15c44040c4efe2f8b119bb3df34f610  gcc/testsuite/gfortran.dg/ieee/ieee_3.f90
  b3ce722b19dcbcf704ca27cdf726ac0f  gcc/testsuite/gfortran.dg/ieee/ieee_4.f90
  d7dcbbbf51853a9d7416a34ec7d5e19b  gcc/testsuite/gfortran.dg/ieee/ieee_5.f90
! 5cd431dfd0e283ccbf63950445cb9c10  gcc/testsuite/gfortran.dg/ieee/ieee_6.f90
  936dd9c26cd1c2d9a4711fd40b1f3d8c  gcc/testsuite/gfortran.dg/ieee/ieee_7.f90
  c0300fa958c7a5a9d045a2bc5b399370  gcc/testsuite/gfortran.dg/ieee/ieee_8.f90
  57398c82384591ff1cc252a836a0b811  gcc/testsuite/gfortran.dg/ieee/ieee_9.f90
--- 96327,96333 ----
  b15c44040c4efe2f8b119bb3df34f610  gcc/testsuite/gfortran.dg/ieee/ieee_3.f90
  b3ce722b19dcbcf704ca27cdf726ac0f  gcc/testsuite/gfortran.dg/ieee/ieee_4.f90
  d7dcbbbf51853a9d7416a34ec7d5e19b  gcc/testsuite/gfortran.dg/ieee/ieee_5.f90
! ae446dd586a57197a3327bde4998587f  gcc/testsuite/gfortran.dg/ieee/ieee_6.f90
  936dd9c26cd1c2d9a4711fd40b1f3d8c  gcc/testsuite/gfortran.dg/ieee/ieee_7.f90
  c0300fa958c7a5a9d045a2bc5b399370  gcc/testsuite/gfortran.dg/ieee/ieee_8.f90
  57398c82384591ff1cc252a836a0b811  gcc/testsuite/gfortran.dg/ieee/ieee_9.f90
*************** c0300fa958c7a5a9d045a2bc5b399370  gcc/te
*** 87293,87299 ****
  2c5ba4bfc5befe663ca1b7256103e585  gcc/testsuite/gfortran.dg/ieee/large_2.f90
  50a6484505ec970335e3f3ccb48b9a52  gcc/testsuite/gfortran.dg/ieee/large_3.F90
  31a7f3f0840cdd4377df7cd6605acc0b  gcc/testsuite/gfortran.dg/ieee/large_4.f90
! 54f1a11c1d7136dd3d8d28a66d7e2a22  gcc/testsuite/gfortran.dg/ieee/modes_1.f90
  5b088816bf399445be998bb7b0f307bd  gcc/testsuite/gfortran.dg/ieee/pr77372.f90
  d19c8b732b5cf70aa6edcc4165fe30b3  gcc/testsuite/gfortran.dg/ieee/pr77507.f90
  26f7d10e3401a2366b42da4a4f97bd15  gcc/testsuite/gfortran.dg/ieee/rounding_1.f90
--- 96337,96347 ----
  2c5ba4bfc5befe663ca1b7256103e585  gcc/testsuite/gfortran.dg/ieee/large_2.f90
  50a6484505ec970335e3f3ccb48b9a52  gcc/testsuite/gfortran.dg/ieee/large_3.F90
  31a7f3f0840cdd4377df7cd6605acc0b  gcc/testsuite/gfortran.dg/ieee/large_4.f90
! 3a540470645c1528cfe1bc934ff8c0d0  gcc/testsuite/gfortran.dg/ieee/minmax_1.f90
! 3901e1456276cd40737d6972105601d8  gcc/testsuite/gfortran.dg/ieee/minmax_2.f90
! 29529a83e0f9d2ce59b5181a6b93305d  gcc/testsuite/gfortran.dg/ieee/minmax_3.f90
! 4115f93c32552297769f79a72204294e  gcc/testsuite/gfortran.dg/ieee/minmax_4.f90
! 2cf841c5874188cd174700ae111c3e7e  gcc/testsuite/gfortran.dg/ieee/modes_1.f90
  5b088816bf399445be998bb7b0f307bd  gcc/testsuite/gfortran.dg/ieee/pr77372.f90
  d19c8b732b5cf70aa6edcc4165fe30b3  gcc/testsuite/gfortran.dg/ieee/pr77507.f90
  26f7d10e3401a2366b42da4a4f97bd15  gcc/testsuite/gfortran.dg/ieee/rounding_1.f90
*************** b75cb93f87f099ad715aceb9cb7b1bf2  gcc/te
*** 87348,87353 ****
--- 96396,96402 ----
  156dc7e9c954310ba5c74c0fbcaa4f42  gcc/testsuite/gfortran.dg/implied_do_io_5.f90
  1f7a9307002a1f0f2a5f8eb76998dcda  gcc/testsuite/gfortran.dg/implied_do_io_6.f90
  2b548a8a46da28ac4ce23e2509a886fc  gcc/testsuite/gfortran.dg/implied_do_io_7.f90
+ 1b11291348a686162c0e48c6b1b5cd66  gcc/testsuite/gfortran.dg/implied_do_io_8.f90
  a8761a2aaffb7680e80dcad5eceada12  gcc/testsuite/gfortran.dg/implied_shape_1.f08
  f9528d7042bf84bf037d6e2b109272ec  gcc/testsuite/gfortran.dg/implied_shape_2.f90
  1b2b68c816459c1a9395771e9851de87  gcc/testsuite/gfortran.dg/implied_shape_3.f08
*************** ba93579108c80828d584884c6d1a3d2a  gcc/te
*** 87551,87557 ****
--- 96600,96613 ----
  eaa197e83969427d3078aff95445bee7  gcc/testsuite/gfortran.dg/intent_out_13.f90
  43d0dd409d7c93807035f978a18ed5c5  gcc/testsuite/gfortran.dg/intent_out_14.f90
  a82b141adaff542c8c03c6c2cbbb132f  gcc/testsuite/gfortran.dg/intent_out_15.f90
+ 4b632094c06e43434e05cbb43d89be55  gcc/testsuite/gfortran.dg/intent_out_16.f90
+ 45bec5e583b80dabae35ef745897049e  gcc/testsuite/gfortran.dg/intent_out_17.f90
+ e88119b095e2ec50f8ff55c84e208586  gcc/testsuite/gfortran.dg/intent_out_18.f90
+ 2086a064637a842f6cdbc38c9c36447c  gcc/testsuite/gfortran.dg/intent_out_19.f90
  633b564832f11b231ba2e100650127bb  gcc/testsuite/gfortran.dg/intent_out_2.f90
+ d6a457872a506a77ce2fe48effa2df00  gcc/testsuite/gfortran.dg/intent_out_20.f90
+ 7167336453d0423470fc235e1db3c4e7  gcc/testsuite/gfortran.dg/intent_out_21.f90
+ 3c0272aa8ed962f91afc98f27ed883c6  gcc/testsuite/gfortran.dg/intent_out_22.f90
  88fc721c29050bdf0a2d0d7c4e316336  gcc/testsuite/gfortran.dg/intent_out_3.f90
  a4fb1377a7e3fd7d6f3a448f1c020623  gcc/testsuite/gfortran.dg/intent_out_4.f90
  a624c9882b68ba914ff958a8206bfce9  gcc/testsuite/gfortran.dg/intent_out_5.f90
*************** f33dc60c1fb7c60416c98e3b6fca20cc  gcc/te
*** 87605,87610 ****
--- 96661,96667 ----
  3ca0d3f0897e634f2024ea5ac5a38f18  gcc/testsuite/gfortran.dg/interface_48.f90
  39e1b2ef6dcf0babdb2a75cba78dac6f  gcc/testsuite/gfortran.dg/interface_49.f90
  a954172d62f645dc77c1c91e1be92316  gcc/testsuite/gfortran.dg/interface_5.f90
+ 36309090fca9f4524f3ffaaa789fa173  gcc/testsuite/gfortran.dg/interface_50.f90
  a63ff5460cdc25350f43a09d899581db  gcc/testsuite/gfortran.dg/interface_6.f90
  b4d472d28fc0ac004218dc87eb241306  gcc/testsuite/gfortran.dg/interface_7.f90
  9b6e2c6769e8d31142faefbb1e2b8fa0  gcc/testsuite/gfortran.dg/interface_8.f90
*************** bb1e6a032a10a9e1ff7d9a5d79c13aa6  gcc/te
*** 87626,87631 ****
--- 96683,96689 ----
  a5b8e7c4a30203ae2a8d0729dc8949f7  gcc/testsuite/gfortran.dg/interface_operator_2.f90
  419f868dbbbb9f5ca872115f51e00c5e  gcc/testsuite/gfortran.dg/interface_operator_3.f90
  c5721500972020048be7b305fb352507  gcc/testsuite/gfortran.dg/interface_proc_end.f90
+ 3e3700018b9f2b6353391a85b0bccb7a  gcc/testsuite/gfortran.dg/interface_procedure_1.f90
  6a001e94aca863d35df3e7b08dd78a0b  gcc/testsuite/gfortran.dg/internal_dummy_1.f90
  39d7e2026e65a3d115728a0cdcde35ac  gcc/testsuite/gfortran.dg/internal_dummy_2.f08
  b2772a3ab9ea94ecf88b3da0109c1091  gcc/testsuite/gfortran.dg/internal_dummy_3.f08
*************** ae3f6e29ad3108163b5c5c6a5f70ef7c  gcc/te
*** 87780,87791 ****
--- 96838,96851 ----
  65578194d2c2e1ef90aec0d448b2955a  gcc/testsuite/gfortran.dg/is_contiguous_1.f90
  ce08d00725a7d8d4e9547e8bf55eaa4b  gcc/testsuite/gfortran.dg/is_contiguous_2.f90
  b6282b55783f0b1b931571f793113587  gcc/testsuite/gfortran.dg/is_contiguous_3.f90
+ d64f2f360e5963a4bea9642fa7bf28c2  gcc/testsuite/gfortran.dg/is_contiguous_4.f90
  765cb2ca72a98a43c69ea99a61aa0a59  gcc/testsuite/gfortran.dg/is_iostat_end_eor_1.f90
  ca491b51342a862f4f525db35073fe93  gcc/testsuite/gfortran.dg/is_iostat_end_eor_2.f90
  e29de44a3798652da0c04b03153d2639  gcc/testsuite/gfortran.dg/ishft_1.f90
  0a74286818476489377027f29708812a  gcc/testsuite/gfortran.dg/ishft_2.f90
  a704846ad082c08266e269b9c6a39a3d  gcc/testsuite/gfortran.dg/ishft_3.f90
  13f9f64101cfcb8d1baba18ecd855ce4  gcc/testsuite/gfortran.dg/ishft_4.f90
+ b6c30f1adc5d688dfb9ab58bdc43171a  gcc/testsuite/gfortran.dg/ishftc_optional_size_1.f90
  62aecfdc07793ea93cdf8d9654582a14  gcc/testsuite/gfortran.dg/isnan_1.f90
  f39075a4eb79900707ebbe3cbae40d8b  gcc/testsuite/gfortran.dg/isnan_2.f90
  339b2ac7960a6a700c8bc790f867edbb  gcc/testsuite/gfortran.dg/iso_c_binding_c_loc_char_1.f03
*************** e1a74d6b2c4042f286e1438d2a3b50bc  gcc/te
*** 87844,87859 ****
  3329f56791c14faaef6977e445b9d78d  gcc/testsuite/gfortran.dg/leadz_trailz_3.f90
  3792d7ea00efbc39994ab499e79cfd5d  gcc/testsuite/gfortran.dg/len_trim.f90
  603828b585296b52648297f368e12a8a  gcc/testsuite/gfortran.dg/line_length_1.f
! 3d88660e061311dc6929921b7ea8a0bf  gcc/testsuite/gfortran.dg/line_length_10.f90
! b9215c113216ae2e0acfffc4a35eb451  gcc/testsuite/gfortran.dg/line_length_11.f90
! bb3b373c21b1beb428686382a9fe319e  gcc/testsuite/gfortran.dg/line_length_2.f90
  d57fac299b3332771a75171d9ddb0a97  gcc/testsuite/gfortran.dg/line_length_3.f
  2b53ed411ad60732e73ad4b2c536881f  gcc/testsuite/gfortran.dg/line_length_4.f90
! 935f6afa72d81f6d65810a113b6a124e  gcc/testsuite/gfortran.dg/line_length_5.f90
! 3c1e6f38354e2ba3e5f5bd19e2255725  gcc/testsuite/gfortran.dg/line_length_6.f90
! 41a210a09e67ff93761b95bfeda63eab  gcc/testsuite/gfortran.dg/line_length_7.f90
! 6fee6895457626dd7b44f874f5fc6e7b  gcc/testsuite/gfortran.dg/line_length_8.f90
! 6bda4143860cef6b1a3b5abef47d24c9  gcc/testsuite/gfortran.dg/line_length_9.f90
  69e27c6d445f499c33052aaf2359d718  gcc/testsuite/gfortran.dg/linefile.f90
  fc437ac99c80ded40e13df8066e49a91  gcc/testsuite/gfortran.dg/linked_list_1.f90
  c65f89e05452bc2ca4c2f396e2d887d8  gcc/testsuite/gfortran.dg/list_directed_large.f90
--- 96904,96921 ----
  3329f56791c14faaef6977e445b9d78d  gcc/testsuite/gfortran.dg/leadz_trailz_3.f90
  3792d7ea00efbc39994ab499e79cfd5d  gcc/testsuite/gfortran.dg/len_trim.f90
  603828b585296b52648297f368e12a8a  gcc/testsuite/gfortran.dg/line_length_1.f
! 26143a693f879a90318072bf9232f75a  gcc/testsuite/gfortran.dg/line_length_10.f90
! 59ffb4fc5411ab6520b7f3c4dd620fc6  gcc/testsuite/gfortran.dg/line_length_11.f90
! 8c2fb585d5dae6f2e6bffb870b6570bb  gcc/testsuite/gfortran.dg/line_length_12.f90
! 99faeb836170f043f8b93f11dd4ead74  gcc/testsuite/gfortran.dg/line_length_13.f90
! 6c2556ead014a55fa7379544fbfec71a  gcc/testsuite/gfortran.dg/line_length_2.f90
  d57fac299b3332771a75171d9ddb0a97  gcc/testsuite/gfortran.dg/line_length_3.f
  2b53ed411ad60732e73ad4b2c536881f  gcc/testsuite/gfortran.dg/line_length_4.f90
! 4b4d356f65f6501cd31525e6072e57e1  gcc/testsuite/gfortran.dg/line_length_5.f90
! 5382046d6dd1eef227c8e3b738f70f2d  gcc/testsuite/gfortran.dg/line_length_6.f90
! b93fbeb9aa42e25ffdd97d657e8d7072  gcc/testsuite/gfortran.dg/line_length_7.f90
! 9de92d784e260c10d48cc5ceca05f671  gcc/testsuite/gfortran.dg/line_length_8.f90
! 59a0d5ef3bc76118ac76aad6b5b0c874  gcc/testsuite/gfortran.dg/line_length_9.f90
  69e27c6d445f499c33052aaf2359d718  gcc/testsuite/gfortran.dg/linefile.f90
  fc437ac99c80ded40e13df8066e49a91  gcc/testsuite/gfortran.dg/linked_list_1.f90
  c65f89e05452bc2ca4c2f396e2d887d8  gcc/testsuite/gfortran.dg/list_directed_large.f90
*************** eee4e4b1f7234702e72fe778c0d2621b  gcc/te
*** 87935,87941 ****
  ed6e00c5dc57055959583aa16ab493b8  gcc/testsuite/gfortran.dg/lto/bind_c-5_1.c
  ccbe22a34dbac49b2d95cd730bb61d7e  gcc/testsuite/gfortran.dg/lto/bind_c-6_0.f90
  6d93908070e9d39392e45f8f55d2d583  gcc/testsuite/gfortran.dg/lto/bind_c-6_1.c
! a342fc64463c44cb45ed63e753e931b0  gcc/testsuite/gfortran.dg/lto/lto.exp
  2e2f1d0362a3798b5cc0cdb704ae7876  gcc/testsuite/gfortran.dg/lto/pr40724_0.f
  b924c46f8e9c528e66113310bd822e92  gcc/testsuite/gfortran.dg/lto/pr40724_1.f
  b310c10bba59712483944d83a656d6cb  gcc/testsuite/gfortran.dg/lto/pr40725_0.f03
--- 96997,97003 ----
  ed6e00c5dc57055959583aa16ab493b8  gcc/testsuite/gfortran.dg/lto/bind_c-5_1.c
  ccbe22a34dbac49b2d95cd730bb61d7e  gcc/testsuite/gfortran.dg/lto/bind_c-6_0.f90
  6d93908070e9d39392e45f8f55d2d583  gcc/testsuite/gfortran.dg/lto/bind_c-6_1.c
! eb87c7570306ad5826e9579b0cf317a0  gcc/testsuite/gfortran.dg/lto/lto.exp
  2e2f1d0362a3798b5cc0cdb704ae7876  gcc/testsuite/gfortran.dg/lto/pr40724_0.f
  b924c46f8e9c528e66113310bd822e92  gcc/testsuite/gfortran.dg/lto/pr40724_1.f
  b310c10bba59712483944d83a656d6cb  gcc/testsuite/gfortran.dg/lto/pr40725_0.f03
*************** e972ad6e0a543eb12481e61ddb341c93  gcc/te
*** 88109,88115 ****
  2b10e892941663b283421e581e64fe9f  gcc/testsuite/gfortran.dg/missing_optional_dummy_4.f90
  9bf3b913fc6553f2af000ca472ab43c0  gcc/testsuite/gfortran.dg/missing_optional_dummy_5.f90
  f4a04eaac2f92e22133750d908216513  gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
! 4e02ae2b2f2c08c31926450c8e09b054  gcc/testsuite/gfortran.dg/missing_optional_dummy_6a.f90
  53cf202b76cef1a0ef4407f2b23bd971  gcc/testsuite/gfortran.dg/missing_parens_1.f90
  27588883c00e0436a67ce824817657b8  gcc/testsuite/gfortran.dg/missing_parens_2.f90
  39267eb2a7da9bb2c75e76503586d534  gcc/testsuite/gfortran.dg/mixed_io_1.c
--- 97171,97178 ----
  2b10e892941663b283421e581e64fe9f  gcc/testsuite/gfortran.dg/missing_optional_dummy_4.f90
  9bf3b913fc6553f2af000ca472ab43c0  gcc/testsuite/gfortran.dg/missing_optional_dummy_5.f90
  f4a04eaac2f92e22133750d908216513  gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
! 6deea4a95c6f69fc25bf524b580dfe58  gcc/testsuite/gfortran.dg/missing_optional_dummy_6a.f90
! ff22bd344530b358c12992902702c37c  gcc/testsuite/gfortran.dg/missing_optional_dummy_7.f90
  53cf202b76cef1a0ef4407f2b23bd971  gcc/testsuite/gfortran.dg/missing_parens_1.f90
  27588883c00e0436a67ce824817657b8  gcc/testsuite/gfortran.dg/missing_parens_2.f90
  39267eb2a7da9bb2c75e76503586d534  gcc/testsuite/gfortran.dg/mixed_io_1.c
*************** f87b0ba9a1d145bf3c643d6d97d9f423  gcc/te
*** 88240,88246 ****
  0fa400c8c61efbd1c07cce6a3b9d0913  gcc/testsuite/gfortran.dg/namelist_54.f90
  4c693b5864894ede36e23f9a46c8dbe1  gcc/testsuite/gfortran.dg/namelist_55.f90
  f681477f489c74c44d4984c74a9a68f7  gcc/testsuite/gfortran.dg/namelist_56.f90
! 604aa3807835e381fb22953902a19f00  gcc/testsuite/gfortran.dg/namelist_57.f90
  b92381025912fb51f31e49e111d1104f  gcc/testsuite/gfortran.dg/namelist_58.f90
  30309b4743fae315372faf0662922f6e  gcc/testsuite/gfortran.dg/namelist_59.f90
  dc5afe095c6bafe14f1418a9207cdfdc  gcc/testsuite/gfortran.dg/namelist_60.f90
--- 97303,97309 ----
  0fa400c8c61efbd1c07cce6a3b9d0913  gcc/testsuite/gfortran.dg/namelist_54.f90
  4c693b5864894ede36e23f9a46c8dbe1  gcc/testsuite/gfortran.dg/namelist_55.f90
  f681477f489c74c44d4984c74a9a68f7  gcc/testsuite/gfortran.dg/namelist_56.f90
! 7661d2e2a48f56a900d2fd467b483d05  gcc/testsuite/gfortran.dg/namelist_57.f90
  b92381025912fb51f31e49e111d1104f  gcc/testsuite/gfortran.dg/namelist_58.f90
  30309b4743fae315372faf0662922f6e  gcc/testsuite/gfortran.dg/namelist_59.f90
  dc5afe095c6bafe14f1418a9207cdfdc  gcc/testsuite/gfortran.dg/namelist_60.f90
*************** dc5afe095c6bafe14f1418a9207cdfdc  gcc/te
*** 88248,88254 ****
  63a9903ac7050fbcb5fceab5d99940cc  gcc/testsuite/gfortran.dg/namelist_62.f90
  1a77f58a5bbe7ab3ea11e337a4ff5baf  gcc/testsuite/gfortran.dg/namelist_63.f90
  5bd96770b043ad2d447feb6b67068201  gcc/testsuite/gfortran.dg/namelist_64.f90
! a6028f8edf2fe30f2feafd17fb317448  gcc/testsuite/gfortran.dg/namelist_65.f90
  41f2464d86e65ebe0eaf5dd31c37c4d3  gcc/testsuite/gfortran.dg/namelist_66.f90
  fff1dec1ff55e7f0c4df6b2c87f63cf6  gcc/testsuite/gfortran.dg/namelist_67.f90
  be4372cc3bf01909c31f2a6fa02bc23a  gcc/testsuite/gfortran.dg/namelist_68.f90
--- 97311,97317 ----
  63a9903ac7050fbcb5fceab5d99940cc  gcc/testsuite/gfortran.dg/namelist_62.f90
  1a77f58a5bbe7ab3ea11e337a4ff5baf  gcc/testsuite/gfortran.dg/namelist_63.f90
  5bd96770b043ad2d447feb6b67068201  gcc/testsuite/gfortran.dg/namelist_64.f90
! c8da85190952b8adcfcc8524cd7199fd  gcc/testsuite/gfortran.dg/namelist_65.f90
  41f2464d86e65ebe0eaf5dd31c37c4d3  gcc/testsuite/gfortran.dg/namelist_66.f90
  fff1dec1ff55e7f0c4df6b2c87f63cf6  gcc/testsuite/gfortran.dg/namelist_67.f90
  be4372cc3bf01909c31f2a6fa02bc23a  gcc/testsuite/gfortran.dg/namelist_68.f90
*************** ccf25bc57c7fd0870f3fa7fea60340a6  gcc/te
*** 88341,88347 ****
  2c6f079dd50cdebef82b1b476222d282  gcc/testsuite/gfortran.dg/newunit_6.f90
  25543ea4ce258c615de028583580ae15  gcc/testsuite/gfortran.dg/nint_1.f90
  16d9cc312dc3603f84627c0edcbc49a2  gcc/testsuite/gfortran.dg/nint_2.f90
! 75f491150db9183d7c839b8231781c0a  gcc/testsuite/gfortran.dg/nint_p7.f90
  9aae8ef0f1f255b8f35b6d5e6807059a  gcc/testsuite/gfortran.dg/no-automatic.f90
  03b84fc5eca43cc5d1a0b1a93937da73  gcc/testsuite/gfortran.dg/no_arg_check_1.f90
  c60b2c37f26b9fe5b1daba95b7c848d0  gcc/testsuite/gfortran.dg/no_arg_check_2.f90
--- 97404,97410 ----
  2c6f079dd50cdebef82b1b476222d282  gcc/testsuite/gfortran.dg/newunit_6.f90
  25543ea4ce258c615de028583580ae15  gcc/testsuite/gfortran.dg/nint_1.f90
  16d9cc312dc3603f84627c0edcbc49a2  gcc/testsuite/gfortran.dg/nint_2.f90
! 1b93b4af11635541077c8a2aa2e41871  gcc/testsuite/gfortran.dg/nint_p7.f90
  9aae8ef0f1f255b8f35b6d5e6807059a  gcc/testsuite/gfortran.dg/no-automatic.f90
  03b84fc5eca43cc5d1a0b1a93937da73  gcc/testsuite/gfortran.dg/no_arg_check_1.f90
  c60b2c37f26b9fe5b1daba95b7c848d0  gcc/testsuite/gfortran.dg/no_arg_check_2.f90
*************** f1e3cfba25a768bf7f9073932a36c7db  gcc/te
*** 88387,88396 ****
  fb9d6abbd9b9049c00ee6e992d1a8859  gcc/testsuite/gfortran.dg/null_actual.f90
  c7884979306076731054566268cfb979  gcc/testsuite/gfortran.dg/null_actual_2.f90
  84b898ed35bd484e690bcec9cd9f1724  gcc/testsuite/gfortran.dg/null_actual_3.f90
  eb6af590881f3e995fc6b2c78089f277  gcc/testsuite/gfortran.dg/nullify_1.f
  f202e3843710f9492560538fa53c3847  gcc/testsuite/gfortran.dg/nullify_2.f90
  768d37ebff7930db8f8a99ac16b90d32  gcc/testsuite/gfortran.dg/nullify_3.f90
! 5917ff71bf25a141d882878e441dc15d  gcc/testsuite/gfortran.dg/nullify_4.f90
  bcf5d721d90103bd1208f8548c93c54e  gcc/testsuite/gfortran.dg/num_images_1.f90
  2b630ef1ec72104833ded7049a1347a1  gcc/testsuite/gfortran.dg/o_fast_stacksize.f90
  97d9003b405f5e3d56a941b54189717c  gcc/testsuite/gfortran.dg/old_style_init.f90
--- 97450,97461 ----
  fb9d6abbd9b9049c00ee6e992d1a8859  gcc/testsuite/gfortran.dg/null_actual.f90
  c7884979306076731054566268cfb979  gcc/testsuite/gfortran.dg/null_actual_2.f90
  84b898ed35bd484e690bcec9cd9f1724  gcc/testsuite/gfortran.dg/null_actual_3.f90
+ bbcecb3dd7b522bf990cb1a6a99c4092  gcc/testsuite/gfortran.dg/null_actual_4.f90
+ 1f2b6a4386b97d00a37b2b95f3b09e91  gcc/testsuite/gfortran.dg/null_actual_5.f90
  eb6af590881f3e995fc6b2c78089f277  gcc/testsuite/gfortran.dg/nullify_1.f
  f202e3843710f9492560538fa53c3847  gcc/testsuite/gfortran.dg/nullify_2.f90
  768d37ebff7930db8f8a99ac16b90d32  gcc/testsuite/gfortran.dg/nullify_3.f90
! 3f59630d77d85f381c44bc0119d513ee  gcc/testsuite/gfortran.dg/nullify_4.f90
  bcf5d721d90103bd1208f8548c93c54e  gcc/testsuite/gfortran.dg/num_images_1.f90
  2b630ef1ec72104833ded7049a1347a1  gcc/testsuite/gfortran.dg/o_fast_stacksize.f90
  97d9003b405f5e3d56a941b54189717c  gcc/testsuite/gfortran.dg/old_style_init.f90
*************** b364b3ff21603caf412b448a464408d0  gcc/te
*** 88430,88435 ****
--- 97495,97502 ----
  ff989302c0eaa3dd486cbb3c28260163  gcc/testsuite/gfortran.dg/operator_7.f90
  42e0fc1830b7ed49ee54d17cf4cbdabd  gcc/testsuite/gfortran.dg/operator_c1202.f90
  22f7aca59da7d6e1f570808dbd33aea4  gcc/testsuite/gfortran.dg/optional_absent_1.f90
+ fb3908522426060a28abd32ff0636a27  gcc/testsuite/gfortran.dg/optional_absent_10.f90
+ 3094e55d9dff3e96da6e02303b7ce1f8  gcc/testsuite/gfortran.dg/optional_absent_11.f90
  312210dc1ff1e05299f1119ee49985a6  gcc/testsuite/gfortran.dg/optional_absent_2.f90
  4550d5bd4f2bf82443d2fabda1853aa1  gcc/testsuite/gfortran.dg/optional_absent_3.f90
  7c0836bf69a838c108ff2372276a09d4  gcc/testsuite/gfortran.dg/optional_absent_4.f90
*************** dc830156fd059262dfdfc8f67c581256  gcc/te
*** 88437,88445 ****
--- 97504,97514 ----
  9cdffc8932a09a7432661f093fe5d75e  gcc/testsuite/gfortran.dg/optional_absent_6.f90
  6e2664a6e912b02f87dcc7d55643cf9a  gcc/testsuite/gfortran.dg/optional_absent_7.f90
  4d4efac7ff60202fca2de27386eab83f  gcc/testsuite/gfortran.dg/optional_absent_8.f90
+ 871b92a512c48e50623b9d226d3092e6  gcc/testsuite/gfortran.dg/optional_absent_9.f90
  ba5fab0a3379b1d0cdf3afb12ac1dd20  gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90
  565d3cf43ead99f60b2380c4b021a5b8  gcc/testsuite/gfortran.dg/optional_assumed_charlen_2.f90
  f676bdc486e460e9520582c3779a664a  gcc/testsuite/gfortran.dg/optional_class_1.f90
+ 2e386aa2ca80e5661a6ea49062a40b23  gcc/testsuite/gfortran.dg/optional_deferred_char_1.f90
  7fedb812261e488372bc4439b553156f  gcc/testsuite/gfortran.dg/optional_dim.f90
  d14391d3ef215e7090f2482b1fb51242  gcc/testsuite/gfortran.dg/optional_dim_2.f90
  4e39e84a6993508e47f3307461b281b8  gcc/testsuite/gfortran.dg/optional_dim_3.f90
*************** f67cfd0ae4d38f1ca5dc8d7f6e954087  gcc/te
*** 88527,88533 ****
  1f42496cb72089bef450a6df6a13c299  gcc/testsuite/gfortran.dg/pdt_30.f90
  d586eb557b29a67b9fa981d71d443c8b  gcc/testsuite/gfortran.dg/pdt_31.f03
  e5bda49b00d9e9f9b204003142ebb089  gcc/testsuite/gfortran.dg/pdt_32.f03
! 9779f8b6736c414d2620a7f8234f3e40  gcc/testsuite/gfortran.dg/pdt_4.f03
  65d2ad728417ad3174fc1ce2b51a458d  gcc/testsuite/gfortran.dg/pdt_6.f03
  d2c9dae0c6e2385c5712aba8e12a70ba  gcc/testsuite/gfortran.dg/pdt_7.f03
  e21f38a2db39f95405441b61c12cf1e6  gcc/testsuite/gfortran.dg/pdt_8.f03
--- 97596,97608 ----
  1f42496cb72089bef450a6df6a13c299  gcc/testsuite/gfortran.dg/pdt_30.f90
  d586eb557b29a67b9fa981d71d443c8b  gcc/testsuite/gfortran.dg/pdt_31.f03
  e5bda49b00d9e9f9b204003142ebb089  gcc/testsuite/gfortran.dg/pdt_32.f03
! a7f1b97a8aa1c6a2bd8968ace7c2f8a9  gcc/testsuite/gfortran.dg/pdt_33.f03
! fcdbdb320701a45adba7c46f5086a03c  gcc/testsuite/gfortran.dg/pdt_33.f90
! f5ecad1df1c3f9e7d4bf8d95be2b45a5  gcc/testsuite/gfortran.dg/pdt_34.f03
! 2c477caa6ab50061d5b01d9970af1903  gcc/testsuite/gfortran.dg/pdt_35.f03
! 2588a29b1e8d5e652dd511316facfa46  gcc/testsuite/gfortran.dg/pdt_36.f03
! 9abf2f0827863994cae83f3e9a57bbe0  gcc/testsuite/gfortran.dg/pdt_37.f03
! 26c6f55cb76e1a76617fc3167f296a53  gcc/testsuite/gfortran.dg/pdt_4.f03
  65d2ad728417ad3174fc1ce2b51a458d  gcc/testsuite/gfortran.dg/pdt_6.f03
  d2c9dae0c6e2385c5712aba8e12a70ba  gcc/testsuite/gfortran.dg/pdt_7.f03
  e21f38a2db39f95405441b61c12cf1e6  gcc/testsuite/gfortran.dg/pdt_8.f03
*************** f4aaac7aac9367d9adf2efb9ee95ee74  gcc/te
*** 88589,88595 ****
  3c38f9677dcc8f4e2c42a0fd0cdeaa1d  gcc/testsuite/gfortran.dg/pointer_init_3.f90
  3247bb0ee74a49cfeb46ba67cba9f540  gcc/testsuite/gfortran.dg/pointer_init_4.f90
  caa2926d7c04c6e94cd297a75e4b5b27  gcc/testsuite/gfortran.dg/pointer_init_5.f90
! 859dd7c2364c1c9047201cb2598f2828  gcc/testsuite/gfortran.dg/pointer_init_6.f90
  04a911b96a459127d681989557ce10aa  gcc/testsuite/gfortran.dg/pointer_init_7.f90
  34debb190232d7a7d7ce70fab69c74a1  gcc/testsuite/gfortran.dg/pointer_init_8.f90
  ae06d6761f5e36e2c2e46067aa089b8e  gcc/testsuite/gfortran.dg/pointer_init_9.f90
--- 97664,97670 ----
  3c38f9677dcc8f4e2c42a0fd0cdeaa1d  gcc/testsuite/gfortran.dg/pointer_init_3.f90
  3247bb0ee74a49cfeb46ba67cba9f540  gcc/testsuite/gfortran.dg/pointer_init_4.f90
  caa2926d7c04c6e94cd297a75e4b5b27  gcc/testsuite/gfortran.dg/pointer_init_5.f90
! eaaaba556287aabe0b6479c87a095df3  gcc/testsuite/gfortran.dg/pointer_init_6.f90
  04a911b96a459127d681989557ce10aa  gcc/testsuite/gfortran.dg/pointer_init_7.f90
  34debb190232d7a7d7ce70fab69c74a1  gcc/testsuite/gfortran.dg/pointer_init_8.f90
  ae06d6761f5e36e2c2e46067aa089b8e  gcc/testsuite/gfortran.dg/pointer_init_9.f90
*************** a3ab8fbef738997039cfd45f350461a3  gcc/te
*** 88629,88653 ****
  77eca811eac1f80edb0f33c68ac0c4d3  gcc/testsuite/gfortran.dg/power_7.f90
  457d6bb30d331f4d3250628bdae53dc3  gcc/testsuite/gfortran.dg/power_8.f90
  e13b5dd50c332ea865cb6fabb5f79f29  gcc/testsuite/gfortran.dg/pr100154.f90
  fc0ae38e4fdc2d7761aba57181c97b51  gcc/testsuite/gfortran.dg/pr100551.f90
  17f130e627232745d6279696b6984514  gcc/testsuite/gfortran.dg/pr100949.f90
  3838974931fe610997470a0a7f2e3a97  gcc/testsuite/gfortran.dg/pr100950.f90
! 3d43a9a1b6205e1b7de2551cccb26868  gcc/testsuite/gfortran.dg/pr101026.f
  18df1dbd6fd284336b8f22ec7ec7ba5b  gcc/testsuite/gfortran.dg/pr101121.f
  00eaff2aeb07d3b9bbb1b67083921aaf  gcc/testsuite/gfortran.dg/pr101158.f90
  8e40caa9023b2b568477f8b0a6586cd9  gcc/testsuite/gfortran.dg/pr101264.f90
! 9f2647b912cfcf8002d65aa022175300  gcc/testsuite/gfortran.dg/pr101267.f90
  515f43ee1c3a7f37818b2b4bd6abedd7  gcc/testsuite/gfortran.dg/pr101327.f90
! 215e51d0e3da3316aa6f9d992ac2c7d7  gcc/testsuite/gfortran.dg/pr101329.f90
  afe21b866be9162c6b654dc6771e6ead  gcc/testsuite/gfortran.dg/pr101514.f90
  07e5cf776d8ec123397377da02e784fb  gcc/testsuite/gfortran.dg/pr101536.f90
  43d1631cdea391ffd9bdb8fc395a7ae5  gcc/testsuite/gfortran.dg/pr101762.f90
  9689aaf0cb9d6642b812ab9cd61eff8a  gcc/testsuite/gfortran.dg/pr102180.f90
  75ccec9005d1d4a2d9ed0cea1bf10434  gcc/testsuite/gfortran.dg/pr102332.f90
  1dd53d463caf1e16e47d0fe9cbf2309f  gcc/testsuite/gfortran.dg/pr102366.f90
  fc5031b16be6a0dc4152f151793f4acb  gcc/testsuite/gfortran.dg/pr102458.f90
  cbd40bc334c217d37c198b1f27373810  gcc/testsuite/gfortran.dg/pr102458b.f90
  09759ba73ae30c3a54be532d97b7f526  gcc/testsuite/gfortran.dg/pr102520.f90
  c081e1f510a2d68ec176356111dab188  gcc/testsuite/gfortran.dg/pr102685.f90
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
  f28998ba16e7a78633a9de3d5eaf0667  gcc/testsuite/gfortran.dg/pr102816.f90
--- 97704,97735 ----
  77eca811eac1f80edb0f33c68ac0c4d3  gcc/testsuite/gfortran.dg/power_7.f90
  457d6bb30d331f4d3250628bdae53dc3  gcc/testsuite/gfortran.dg/power_8.f90
  e13b5dd50c332ea865cb6fabb5f79f29  gcc/testsuite/gfortran.dg/pr100154.f90
+ c9e427811a6c55713cbb096365eec807  gcc/testsuite/gfortran.dg/pr100193.f90
  fc0ae38e4fdc2d7761aba57181c97b51  gcc/testsuite/gfortran.dg/pr100551.f90
  17f130e627232745d6279696b6984514  gcc/testsuite/gfortran.dg/pr100949.f90
  3838974931fe610997470a0a7f2e3a97  gcc/testsuite/gfortran.dg/pr100950.f90
! bd85853c23b25f6e0f0a43e2fb0dd907  gcc/testsuite/gfortran.dg/pr100988.f90
! 4c4d061ecf74c54618682a42f2c3cf99  gcc/testsuite/gfortran.dg/pr101026.f
  18df1dbd6fd284336b8f22ec7ec7ba5b  gcc/testsuite/gfortran.dg/pr101121.f
  00eaff2aeb07d3b9bbb1b67083921aaf  gcc/testsuite/gfortran.dg/pr101158.f90
  8e40caa9023b2b568477f8b0a6586cd9  gcc/testsuite/gfortran.dg/pr101264.f90
! 06195337ab81a49e4bf967a8c395b5a3  gcc/testsuite/gfortran.dg/pr101267.f90
  515f43ee1c3a7f37818b2b4bd6abedd7  gcc/testsuite/gfortran.dg/pr101327.f90
! 5f313e258f1ed6c76274dff3e05fedd8  gcc/testsuite/gfortran.dg/pr101329.f90
  afe21b866be9162c6b654dc6771e6ead  gcc/testsuite/gfortran.dg/pr101514.f90
  07e5cf776d8ec123397377da02e784fb  gcc/testsuite/gfortran.dg/pr101536.f90
  43d1631cdea391ffd9bdb8fc395a7ae5  gcc/testsuite/gfortran.dg/pr101762.f90
+ 60b567c7d7ad324a503b66f4236191b3  gcc/testsuite/gfortran.dg/pr102109.f90
+ 0405bf1e277db07b43b4182f840ed352  gcc/testsuite/gfortran.dg/pr102112.f90
  9689aaf0cb9d6642b812ab9cd61eff8a  gcc/testsuite/gfortran.dg/pr102180.f90
+ 47ed02e060fe8963c8b302d989d30b44  gcc/testsuite/gfortran.dg/pr102190.f90
  75ccec9005d1d4a2d9ed0cea1bf10434  gcc/testsuite/gfortran.dg/pr102332.f90
  1dd53d463caf1e16e47d0fe9cbf2309f  gcc/testsuite/gfortran.dg/pr102366.f90
  fc5031b16be6a0dc4152f151793f4acb  gcc/testsuite/gfortran.dg/pr102458.f90
  cbd40bc334c217d37c198b1f27373810  gcc/testsuite/gfortran.dg/pr102458b.f90
  09759ba73ae30c3a54be532d97b7f526  gcc/testsuite/gfortran.dg/pr102520.f90
+ 107263fe1c86ee042c855774a2b8e242  gcc/testsuite/gfortran.dg/pr102532.f90
+ c0ae1c78c693e1256c471360998b7568  gcc/testsuite/gfortran.dg/pr102597.f90
  c081e1f510a2d68ec176356111dab188  gcc/testsuite/gfortran.dg/pr102685.f90
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
  f28998ba16e7a78633a9de3d5eaf0667  gcc/testsuite/gfortran.dg/pr102816.f90
*************** c35066e873add73fe333d803e2854739  gcc/te
*** 88657,88662 ****
--- 97739,97746 ----
  4b404e5693e05cfd48ecd00e22ac323d  gcc/testsuite/gfortran.dg/pr103259.f90
  48782be659f3ec5c8d9cba03ca6cc43d  gcc/testsuite/gfortran.dg/pr103286.f90
  ab2e9f64b18aaf6df9600288ded6ce51  gcc/testsuite/gfortran.dg/pr103366.f90
+ 9e00f34ad9d6d78b98007d4ad68251f5  gcc/testsuite/gfortran.dg/pr103389.f90
+ f2ba2e64941d368a0af432859dc114fe  gcc/testsuite/gfortran.dg/pr103471.f90
  5403c8d36e959e2211ecc4f2a1db6e1c  gcc/testsuite/gfortran.dg/pr103475.f90
  b624133cafd19857eb2915c507731455  gcc/testsuite/gfortran.dg/pr103504.f90
  0ca27f571c157feff083b371f4147538  gcc/testsuite/gfortran.dg/pr103505.f90
*************** a27b232d198fc2463c04af17903b1b4c  gcc/te
*** 88666,88675 ****
  ea7b00fcccc1df091b8087b16e502d92  gcc/testsuite/gfortran.dg/pr103607.f90
  a6f9d88a8d6d1064b6c75147b910352f  gcc/testsuite/gfortran.dg/pr103608.f90
  e83cb447f532a018a571c0eb3b9813ac  gcc/testsuite/gfortran.dg/pr103609.f90
! 1917245fd23dbcb7a1714b670a46f77d  gcc/testsuite/gfortran.dg/pr103628.f90
  529d8c5aafc7e0dd0a65860ed5f85bcf  gcc/testsuite/gfortran.dg/pr103691.f90
  448c7638e7741c015d95260e6491d8fa  gcc/testsuite/gfortran.dg/pr103692.f90
  7880bd79a12dd5ee034f461bbaebed02  gcc/testsuite/gfortran.dg/pr103694.f90
  b46bd97116489e6e683fb2b742d3b37e  gcc/testsuite/gfortran.dg/pr103779.f90
  3a28632a1496231fb208ccbe80ac9bc8  gcc/testsuite/gfortran.dg/pr103898.f90
  9c2a780c1ca6904bb5164e252d9e5455  gcc/testsuite/gfortran.dg/pr104210.f90
--- 97750,97761 ----
  ea7b00fcccc1df091b8087b16e502d92  gcc/testsuite/gfortran.dg/pr103607.f90
  a6f9d88a8d6d1064b6c75147b910352f  gcc/testsuite/gfortran.dg/pr103608.f90
  e83cb447f532a018a571c0eb3b9813ac  gcc/testsuite/gfortran.dg/pr103609.f90
! 369e576ae27fceecfcf7c2d7e051fda8  gcc/testsuite/gfortran.dg/pr103628.f90
  529d8c5aafc7e0dd0a65860ed5f85bcf  gcc/testsuite/gfortran.dg/pr103691.f90
  448c7638e7741c015d95260e6491d8fa  gcc/testsuite/gfortran.dg/pr103692.f90
  7880bd79a12dd5ee034f461bbaebed02  gcc/testsuite/gfortran.dg/pr103694.f90
+ 8af96c30a623abf7d639ba532fd9c9ac  gcc/testsuite/gfortran.dg/pr103715.f90
+ c44f10e51915699bd10aa414c56da370  gcc/testsuite/gfortran.dg/pr103716.f90
  b46bd97116489e6e683fb2b742d3b37e  gcc/testsuite/gfortran.dg/pr103779.f90
  3a28632a1496231fb208ccbe80ac9bc8  gcc/testsuite/gfortran.dg/pr103898.f90
  9c2a780c1ca6904bb5164e252d9e5455  gcc/testsuite/gfortran.dg/pr104210.f90
*************** b46bd97116489e6e683fb2b742d3b37e  gcc/te
*** 88678,88694 ****
--- 97764,97795 ----
  91c8ea6ad8bf77406a4c4b4c07b386e3  gcc/testsuite/gfortran.dg/pr104314.f90
  0e7851ec2240cdd415a65847b3559661  gcc/testsuite/gfortran.dg/pr104330.f90
  7d09118ed5915e3ef92dba4a6d9cd54c  gcc/testsuite/gfortran.dg/pr104349.f90
+ 257c4284afc1b3bc810b7c880cbe249a  gcc/testsuite/gfortran.dg/pr104351.f90
+ 5b0868c84244a96dfe5b07e4df03eaa7  gcc/testsuite/gfortran.dg/pr104429.f90
  d54a9a735e74cc7d08959a7e744ae292  gcc/testsuite/gfortran.dg/pr104466.f90
  20b528a5635e11a2c7db46289cab958c  gcc/testsuite/gfortran.dg/pr104528.f
  f2033aa803ce0a0763522fb821b7bdf6  gcc/testsuite/gfortran.dg/pr104554.f90
+ c1548c06295e664f7406329767d563ab  gcc/testsuite/gfortran.dg/pr104555.f90
  5c1153d4a81aef8918afa2d0f27d3085  gcc/testsuite/gfortran.dg/pr104571.f90
  5583f00ff0e962663dc178214a50e6ad  gcc/testsuite/gfortran.dg/pr104572.f90
+ edeab9ad762f052790bd2bff917c5200  gcc/testsuite/gfortran.dg/pr104625.f90
+ aadce1b09e2a4d220805726af0c7f109  gcc/testsuite/gfortran.dg/pr104649.f90
  0d8084e6020a7001ebdb9b59d688556e  gcc/testsuite/gfortran.dg/pr104716.f
  7a5b7a18d621b5e1b9d04b73e259ddd4  gcc/testsuite/gfortran.dg/pr104849.f90
+ 35a7804825dacf412e34e3f973b467f1  gcc/testsuite/gfortran.dg/pr104908.f90
+ a5bb6d9b844f014490dab5e87b60244c  gcc/testsuite/gfortran.dg/pr105152.f90
  ff052278fd65d5823600af4550f5eae7  gcc/testsuite/gfortran.dg/pr105205.f90
  22283af469347d85bd1fe4dae42939a3  gcc/testsuite/gfortran.dg/pr105230.f90
+ 378daada767aa1db75aafa59274616a9  gcc/testsuite/gfortran.dg/pr105456-nmlr.f90
+ ef07dca23a545a1281b4dd4a55630bbc  gcc/testsuite/gfortran.dg/pr105456-nmlw.f90
+ 284861998a6e81948f0b6608bf0dc92a  gcc/testsuite/gfortran.dg/pr105456-ruf.f90
+ a62ae094c8ca1f9dabc977243d63673a  gcc/testsuite/gfortran.dg/pr105456-wf.f90
+ 1b32509ef037ea14dddc6d03f94f5918  gcc/testsuite/gfortran.dg/pr105456-wuf.f90
+ ef927a22b87a85d511ab9004a456c6b5  gcc/testsuite/gfortran.dg/pr105456.f90
+ d7a956964080feaa84755b3114519005  gcc/testsuite/gfortran.dg/pr105473.f90
  ace309aa44f1d37b7e1187c47c4975be  gcc/testsuite/gfortran.dg/pr105501.f90
  04437d9e5ce70eee9f187cabd7a3ae39  gcc/testsuite/gfortran.dg/pr105633.f90
+ e427a01da58f1d7d585e51cf6e40f25f  gcc/testsuite/gfortran.dg/pr105847.f90
  d4e9f09fafa1c1f5e009aedb22732715  gcc/testsuite/gfortran.dg/pr105954.f90
  088bf2cb06c9d1fbdf7cdf44f05322a7  gcc/testsuite/gfortran.dg/pr106209.f90
  3082cd51399bf74604f453a40ec6cf9b  gcc/testsuite/gfortran.dg/pr106226.f
*************** d4b65efea892e3a54acdb92a298fc582  gcc/te
*** 88703,88714 ****
  e1ccca85dc432ca649742c05520157d9  gcc/testsuite/gfortran.dg/pr106945.f90
  a9c6ba4d14cec93cd2edec54fda6a916  gcc/testsuite/gfortran.dg/pr106985.f90
  eb96b826eeaf84f157c8635706721d40  gcc/testsuite/gfortran.dg/pr106986.f90
  293833a63c0715043c2da0695b562529  gcc/testsuite/gfortran.dg/pr107000.f90
  11beaeea87162696e195837c5224fa2d  gcc/testsuite/gfortran.dg/pr107054.f90
  c4d7488c55ed95fdd366e1d607735be4  gcc/testsuite/gfortran.dg/pr107215.f90
  0c85e934fee80db329fffa3cf0e140bd  gcc/testsuite/gfortran.dg/pr107217.f90
  80a2d8da8f29115c11882e70f115c5f5  gcc/testsuite/gfortran.dg/pr107272.f90
! 4bf79fd79798c56c4dfc83d4cd395f09  gcc/testsuite/gfortran.dg/pr107397.f90
  e45d8c5020d3980e1bbf2af1d8f09cb1  gcc/testsuite/gfortran.dg/pr107423.f90
  d0708141a211387ec4b726fd1cc6fb1e  gcc/testsuite/gfortran.dg/pr107559.f90
  73d50a07b85e295eded116a82c6f2a41  gcc/testsuite/gfortran.dg/pr107577.f90
--- 97804,97817 ----
  e1ccca85dc432ca649742c05520157d9  gcc/testsuite/gfortran.dg/pr106945.f90
  a9c6ba4d14cec93cd2edec54fda6a916  gcc/testsuite/gfortran.dg/pr106985.f90
  eb96b826eeaf84f157c8635706721d40  gcc/testsuite/gfortran.dg/pr106986.f90
+ 054c58cb24c0bee4ea0b5fcf3cdbf86d  gcc/testsuite/gfortran.dg/pr106999.f90
  293833a63c0715043c2da0695b562529  gcc/testsuite/gfortran.dg/pr107000.f90
  11beaeea87162696e195837c5224fa2d  gcc/testsuite/gfortran.dg/pr107054.f90
+ 32e7dadb0bf4b15faaaf147bec0f58d8  gcc/testsuite/gfortran.dg/pr107068.f90
  c4d7488c55ed95fdd366e1d607735be4  gcc/testsuite/gfortran.dg/pr107215.f90
  0c85e934fee80db329fffa3cf0e140bd  gcc/testsuite/gfortran.dg/pr107217.f90
  80a2d8da8f29115c11882e70f115c5f5  gcc/testsuite/gfortran.dg/pr107272.f90
! 7bf1462b79c3092315b66457dbab371c  gcc/testsuite/gfortran.dg/pr107397.f90
  e45d8c5020d3980e1bbf2af1d8f09cb1  gcc/testsuite/gfortran.dg/pr107423.f90
  d0708141a211387ec4b726fd1cc6fb1e  gcc/testsuite/gfortran.dg/pr107559.f90
  73d50a07b85e295eded116a82c6f2a41  gcc/testsuite/gfortran.dg/pr107577.f90
*************** d0708141a211387ec4b726fd1cc6fb1e  gcc/te
*** 88716,88723 ****
--- 97819,97828 ----
  546d0dd36da201dc2364304324877fbe  gcc/testsuite/gfortran.dg/pr107680.f90
  024fa5f55fe9c8d4c19d5877ad457646  gcc/testsuite/gfortran.dg/pr107681.f90
  b16b21b735e9162700aeb128878a0f21  gcc/testsuite/gfortran.dg/pr107707.f90
+ 80f73b952f090e1e86360b49e6ae3316  gcc/testsuite/gfortran.dg/pr107821.f90
  ba47b0afdca4ac305945fe0fc5dcb1d2  gcc/testsuite/gfortran.dg/pr107872.f90
  6e930133e4b714785571b6fe20098d1d  gcc/testsuite/gfortran.dg/pr107899.f90
+ 8146f8d64703a39627a426f99db6cf82  gcc/testsuite/gfortran.dg/pr107900.f90
  39528658775da01af2332092303a48f3  gcc/testsuite/gfortran.dg/pr107995.f90
  cbd5ae902fd5f6bd7cdb6f65c664ea22  gcc/testsuite/gfortran.dg/pr108010.f90
  51c1978cd57328dca2798eaa646a34b7  gcc/testsuite/gfortran.dg/pr108131.f90
*************** bb19038b0b7c42c6403475e34570ae3d  gcc/te
*** 88732,88739 ****
--- 97837,97874 ----
  a367beafff806aa88b45192d28091201  gcc/testsuite/gfortran.dg/pr108529.f90
  89000eec5be4848c1ee9f28782affc5d  gcc/testsuite/gfortran.dg/pr108544.f90
  ff15b9a6b62e2f00e552b437eece42bf  gcc/testsuite/gfortran.dg/pr108592.f90
+ 7f1da97161aa1f82490b1a5323dd6fba  gcc/testsuite/gfortran.dg/pr108961.f90
  8f9de055ba3027b7ae59405bcbee699f  gcc/testsuite/gfortran.dg/pr109209.f90
  b7b6edb61862ad55069c70c4744ad157  gcc/testsuite/gfortran.dg/pr109265.f90
+ 05aad7d3d7d82955070028e39fdf28af  gcc/testsuite/gfortran.dg/pr109358.f90
+ f309d722fd5c0108897e848739b09dbb  gcc/testsuite/gfortran.dg/pr109662-a.f90
+ 87aa7841fecf66956c29baf129e68fb9  gcc/testsuite/gfortran.dg/pr109662.f90
+ f2965c649a5f8dcb271f4f49f656cfff  gcc/testsuite/gfortran.dg/pr109948.f90
+ 898c3ea8360d1452c5f815b15dc6f6f8  gcc/testsuite/gfortran.dg/pr110221.f
+ 7e8f4bd708c5e8d2c848ebda68cfa3e5  gcc/testsuite/gfortran.dg/pr110224.f90
+ 998a85b06cf4402e9dcaa8e7dd203ee2  gcc/testsuite/gfortran.dg/pr110415.f90
+ 47cd542147bf162109f2595723968363  gcc/testsuite/gfortran.dg/pr110996.f90
+ 73c24aa3bc97b0687036c0da0f6bf2b2  gcc/testsuite/gfortran.dg/pr111022.f90
+ 65d07fd1935686cb66ec42fe6d001afd  gcc/testsuite/gfortran.dg/pr111853.f90
+ 6176c5192c44068787a0e803e38dacbd  gcc/testsuite/gfortran.dg/pr111880.f90
+ 2430bfa735afe7c9a37da0ceb3ba47a1  gcc/testsuite/gfortran.dg/pr111891.f90
+ f715b6386f4a20f6cad01cbb51dffd3b  gcc/testsuite/gfortran.dg/pr112316.f90
+ 2ede0d20447278be88b5e6fba378c401  gcc/testsuite/gfortran.dg/pr112404.f90
+ d24ae0514cf8372947462a582502bca5  gcc/testsuite/gfortran.dg/pr112406.f90
+ aa358931bdcdffc331e74ec0c69f4a2a  gcc/testsuite/gfortran.dg/pr112407a.f90
+ 75beb8de36fb348963c6214f20178363  gcc/testsuite/gfortran.dg/pr112407b.f90
+ 49386e415982e1a2f18ad84457b9937e  gcc/testsuite/gfortran.dg/pr112459.f90
+ 364da327aa8d67798baabc45b77d535a  gcc/testsuite/gfortran.dg/pr113503_1.f90
+ 55dbfeee77bbcb338fb214ad0357a8da  gcc/testsuite/gfortran.dg/pr113503_2.f90
+ 57f789001fbff5df460557a54ec241a4  gcc/testsuite/gfortran.dg/pr113956.f90
+ b90d3cad8caadc96fae5e6ac9b101803  gcc/testsuite/gfortran.dg/pr114012.f90
+ d832d83a7f0305ed5af20dce6be24b4b  gcc/testsuite/gfortran.dg/pr114304-2.f90
+ 439f95a81137197be61b0747f76ecd0f  gcc/testsuite/gfortran.dg/pr114304.f90
+ e91d746b0b9de2b6ed5529fb46921a0b  gcc/testsuite/gfortran.dg/pr114535d.f90
+ 60e9f03f051c282f39e48a14c058f5de  gcc/testsuite/gfortran.dg/pr114535iv.f90
+ d3d77a4c149cf5358eb97935171795fb  gcc/testsuite/gfortran.dg/pr114739.f90
+ 4b273604e577c17fd50a80fc5e61fbc9  gcc/testsuite/gfortran.dg/pr114883.f90
+ 114f9ad97017aeb38f9ec22adfdc15e9  gcc/testsuite/gfortran.dg/pr114959.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  e9cbd51db4e16292fc5dd1fead2e5a49  gcc/testsuite/gfortran.dg/pr15140.f90
*************** febdb201af158f6c486ef5b23291d661  gcc/te
*** 88787,88792 ****
--- 97922,97929 ----
  dbfc80ddde02e81da94749ff32a32bd6  gcc/testsuite/gfortran.dg/pr23095.f
  62e3c3fbf20fba393e2606182fef5e41  gcc/testsuite/gfortran.dg/pr24823.f
  d6aa66ac0eb04a33f2c32b1111032266  gcc/testsuite/gfortran.dg/pr25603.f
+ 3c8a5e12f360c93c26d2e5e09109ccd8  gcc/testsuite/gfortran.dg/pr25623-2.f90
+ e19290a049d447d3ad3d3f029f3edb0d  gcc/testsuite/gfortran.dg/pr25623.f90
  4f00dc3933336f591084f1b375009e07  gcc/testsuite/gfortran.dg/pr25923.f90
  66453cc49ba536feb5c18a7ac0ff04b7  gcc/testsuite/gfortran.dg/pr26246_1.f90
  4e416e7ae2f1c6c13f24abe380a7ad3e  gcc/testsuite/gfortran.dg/pr26246_2.f90
*************** e2637c83485c528a7b74e6133790946a  gcc/te
*** 88875,88881 ****
  eaee3644bb72757f7c01f19f8c77dfbd  gcc/testsuite/gfortran.dg/pr43796.f90
  01105ac33c879bbf155ed9ca32d65195  gcc/testsuite/gfortran.dg/pr43808.f90
  2185b7aa8c377d749a70cb4872ee56f8  gcc/testsuite/gfortran.dg/pr43866.f90
! 14f3866051d030f1fe3aa68c16775d53  gcc/testsuite/gfortran.dg/pr43984.f90
  c86efca0876ea8b42851b885f6a07b46  gcc/testsuite/gfortran.dg/pr43996.f90
  b8203419e44e40532f09311e99b8634d  gcc/testsuite/gfortran.dg/pr44491.f90
  45efd7b795745a9bb948863ac1ebcca0  gcc/testsuite/gfortran.dg/pr44592.f90
--- 98012,98018 ----
  eaee3644bb72757f7c01f19f8c77dfbd  gcc/testsuite/gfortran.dg/pr43796.f90
  01105ac33c879bbf155ed9ca32d65195  gcc/testsuite/gfortran.dg/pr43808.f90
  2185b7aa8c377d749a70cb4872ee56f8  gcc/testsuite/gfortran.dg/pr43866.f90
! 377c1b14beb6f6a22a7d8b54a888a46e  gcc/testsuite/gfortran.dg/pr43984.f90
  c86efca0876ea8b42851b885f6a07b46  gcc/testsuite/gfortran.dg/pr43996.f90
  b8203419e44e40532f09311e99b8634d  gcc/testsuite/gfortran.dg/pr44491.f90
  45efd7b795745a9bb948863ac1ebcca0  gcc/testsuite/gfortran.dg/pr44592.f90
*************** f3e2e80b3229e8fec07b3263f3453fed  gcc/te
*** 88914,88919 ****
--- 98051,98057 ----
  ea911c8827cc267711ebc2bc888f011a  gcc/testsuite/gfortran.dg/pr48958.f90
  66ff77107a65ebff7c75bfae7e38e6f6  gcc/testsuite/gfortran.dg/pr49103.f90
  5ad239ce189c063ac8a5f73f48d37684  gcc/testsuite/gfortran.dg/pr49179.f90
+ ad6f53d6837456c83ec76c75faf911f3  gcc/testsuite/gfortran.dg/pr49213.f90
  73bdfac4d8e167437515c960a865a9d5  gcc/testsuite/gfortran.dg/pr49308.f90
  fa72f395e574b6eafd55c8f281faff1a  gcc/testsuite/gfortran.dg/pr49472.f90
  19fce95ae2c184f74a3938de396df6d0  gcc/testsuite/gfortran.dg/pr49494.f90
*************** c37cf579044bfef981cfa2ddcb25a453  gcc/te
*** 89026,89031 ****
--- 98164,98170 ----
  7ade9a557f491731cdaf5490b032e03f  gcc/testsuite/gfortran.dg/pr67614.f90
  0cd5be3bc19d66df1e0bf874a3458016  gcc/testsuite/gfortran.dg/pr67615.f90
  0bfa6e741c486d27fbd1d68e80ab467d  gcc/testsuite/gfortran.dg/pr67616.f90
+ bb2e1b79d50592d1323e1df12ea217d2  gcc/testsuite/gfortran.dg/pr67740.f90
  f7b255646efb403e4fd6d6c4c721b6c6  gcc/testsuite/gfortran.dg/pr67802.f90
  9cfe60384f2e4f1cbec4ea41ea7e4e44  gcc/testsuite/gfortran.dg/pr67803.f90
  63f85252504511c380cbe33f58073c38  gcc/testsuite/gfortran.dg/pr67804.f90
*************** f15d85cfec6e3cdd76e6667f5c30ef44  gcc/te
*** 89045,89050 ****
--- 98184,98190 ----
  72204a8f7a7d531531023b6f9efc86ff  gcc/testsuite/gfortran.dg/pr68151.f90
  919a27f3a4cfbc08b7e864601ba56e0f  gcc/testsuite/gfortran.dg/pr68153.f90
  763b223410c19c6e68bea4f15ed3fef6  gcc/testsuite/gfortran.dg/pr68154.f90
+ f2004272f00b33fb0145bc4d738fbd9f  gcc/testsuite/gfortran.dg/pr68155.f90
  c0ada255b8d4b02a2bf3f62ec3fd9223  gcc/testsuite/gfortran.dg/pr68224.f90
  4239cbc5229572dbb1b8db5b9e534c59  gcc/testsuite/gfortran.dg/pr68227.f90
  9b3855eb7267f08dfbb31622bb7ccd2f  gcc/testsuite/gfortran.dg/pr68251.f90
*************** f55a4e8f8a1e79f11c9cd9ad6d9eca57  gcc/te
*** 89142,89148 ****
  6c1eb527a1773bb547e0372dd833482b  gcc/testsuite/gfortran.dg/pr77978_2.f90
  a997ec96c9e5b5703664c90f0b844fe1  gcc/testsuite/gfortran.dg/pr77978_3.f90
  cff824c69d7ad37892acf2925f1c1291  gcc/testsuite/gfortran.dg/pr78033.f90
! e54adfde54f7051d2c213313e32967ac  gcc/testsuite/gfortran.dg/pr78061.f
  b85a08682c81be65955c4ba92597115b  gcc/testsuite/gfortran.dg/pr78092.f90
  de9e390d5bfffcb1b19afeb73bf0cb56  gcc/testsuite/gfortran.dg/pr78240.f90
  442fc2f549bd7836f1a873a0e879aee2  gcc/testsuite/gfortran.dg/pr78259.f90
--- 98282,98288 ----
  6c1eb527a1773bb547e0372dd833482b  gcc/testsuite/gfortran.dg/pr77978_2.f90
  a997ec96c9e5b5703664c90f0b844fe1  gcc/testsuite/gfortran.dg/pr77978_3.f90
  cff824c69d7ad37892acf2925f1c1291  gcc/testsuite/gfortran.dg/pr78033.f90
! 1ae041bc41501709dd55cfe1ba6c3f94  gcc/testsuite/gfortran.dg/pr78061.f
  b85a08682c81be65955c4ba92597115b  gcc/testsuite/gfortran.dg/pr78092.f90
  de9e390d5bfffcb1b19afeb73bf0cb56  gcc/testsuite/gfortran.dg/pr78240.f90
  442fc2f549bd7836f1a873a0e879aee2  gcc/testsuite/gfortran.dg/pr78259.f90
*************** f166fdd0a6158ee4997aa03d50735f03  gcc/te
*** 89158,89164 ****
  5f78649f9610903a91712298193f1ab3  gcc/testsuite/gfortran.dg/pr78739.f90
  5b2aa5e5d8aa97b69f0cc98bc9709f3f  gcc/testsuite/gfortran.dg/pr78741.f90
  18ef55c7791c30ff0793ca246df65036  gcc/testsuite/gfortran.dg/pr78758.f90
! ee35970003b8954b57c5ce45c7fd506c  gcc/testsuite/gfortran.dg/pr79315.f90
  7dde52ec5dffa2ae8586c577cf97f742  gcc/testsuite/gfortran.dg/pr79886.f90
  c0b10ae015725070f4297a1ba8927463  gcc/testsuite/gfortran.dg/pr79966.f90
  21b5f06229f04696cc787b63748c5de0  gcc/testsuite/gfortran.dg/pr80494.f90
--- 98298,98304 ----
  5f78649f9610903a91712298193f1ab3  gcc/testsuite/gfortran.dg/pr78739.f90
  5b2aa5e5d8aa97b69f0cc98bc9709f3f  gcc/testsuite/gfortran.dg/pr78741.f90
  18ef55c7791c30ff0793ca246df65036  gcc/testsuite/gfortran.dg/pr78758.f90
! c7abc49e43c3b6377a0e019f9f4292ac  gcc/testsuite/gfortran.dg/pr79315.f90
  7dde52ec5dffa2ae8586c577cf97f742  gcc/testsuite/gfortran.dg/pr79886.f90
  c0b10ae015725070f4297a1ba8927463  gcc/testsuite/gfortran.dg/pr79966.f90
  21b5f06229f04696cc787b63748c5de0  gcc/testsuite/gfortran.dg/pr80494.f90
*************** e338cfba2f466abedf9af92b52cd6fb3  gcc/te
*** 89179,89184 ****
--- 98319,98325 ----
  b6ff04901e3aee18765a74bf65804e38  gcc/testsuite/gfortran.dg/pr82253.f90
  344be7c0602202457870166d368441e0  gcc/testsuite/gfortran.dg/pr82314.f90
  7f04eca318ca64e1442ceabc31fab9fb  gcc/testsuite/gfortran.dg/pr82397.f
+ 5e9eb92684de357b4c23a7f04959db82  gcc/testsuite/gfortran.dg/pr82774.f90
  616772c135ee9b14c410dcd23fdbc3e4  gcc/testsuite/gfortran.dg/pr82973.f90
  0a918cecf6f52a31004b77728cb30038  gcc/testsuite/gfortran.dg/pr83113.f90
  3efdf6eef62b5bb55c7bd5d6342e1943  gcc/testsuite/gfortran.dg/pr83149.f90
*************** d8214bedb5ecef9053ef86971d5501cc  gcc/te
*** 89239,89244 ****
--- 98380,98386 ----
  aa095a787c42cdeb4d2b7777cbeccfe3  gcc/testsuite/gfortran.dg/pr87922.f90
  f8e6352c1c80659a4023e56075d6f1cc  gcc/testsuite/gfortran.dg/pr87945_1.f90
  b37e2980deb28560322fe1668580dd8c  gcc/testsuite/gfortran.dg/pr87945_2.f90
+ c1dd798267bd0e91b569e9524791a49b  gcc/testsuite/gfortran.dg/pr87946.f90
  48fd45c2154312b459b658b1686dd7d6  gcc/testsuite/gfortran.dg/pr87991.f90
  b64e61e88b486cf88558e16bb151917f  gcc/testsuite/gfortran.dg/pr87992.f90
  a9e192b49dbc72e5972a1e60f82ee433  gcc/testsuite/gfortran.dg/pr87993.f90
*************** ea36174db4fefe6bbe58d8c899d770f6  gcc/te
*** 89250,89256 ****
  299cd4b3cd8f981657d37f9d6063d080  gcc/testsuite/gfortran.dg/pr88072.f90
  f2f69037301e6e901e6d032542873c68  gcc/testsuite/gfortran.dg/pr88116_1.f90
  99c41c8c4fc876568fd7e4f16f44a112  gcc/testsuite/gfortran.dg/pr88116_2.f90
! be2e4039f25dfb8ddb1d209b44b9ca1a  gcc/testsuite/gfortran.dg/pr88138.f90
  26a8b12bb3643c1cd5f28f77f51cd045  gcc/testsuite/gfortran.dg/pr88148.f90
  a554e5d57f7bc7a8d1b99acfd01fdaa9  gcc/testsuite/gfortran.dg/pr88155.f90
  86722bed377c20abe3aeeff940fd433d  gcc/testsuite/gfortran.dg/pr88169_1.f90
--- 98392,98398 ----
  299cd4b3cd8f981657d37f9d6063d080  gcc/testsuite/gfortran.dg/pr88072.f90
  f2f69037301e6e901e6d032542873c68  gcc/testsuite/gfortran.dg/pr88116_1.f90
  99c41c8c4fc876568fd7e4f16f44a112  gcc/testsuite/gfortran.dg/pr88116_2.f90
! 722913544c7c88e06a6a0faa72993b6a  gcc/testsuite/gfortran.dg/pr88138.f90
  26a8b12bb3643c1cd5f28f77f51cd045  gcc/testsuite/gfortran.dg/pr88148.f90
  a554e5d57f7bc7a8d1b99acfd01fdaa9  gcc/testsuite/gfortran.dg/pr88155.f90
  86722bed377c20abe3aeeff940fd433d  gcc/testsuite/gfortran.dg/pr88169_1.f90
*************** e1edad4c8bece96ce2107cf71bfae76a  gcc/te
*** 89270,89276 ****
--- 98412,98420 ----
  9623a97e1eb634f1a2faf1f3d7acb66f  gcc/testsuite/gfortran.dg/pr88376.f90
  218b9adf9e09bdf06e2822d54e60ace6  gcc/testsuite/gfortran.dg/pr88379.f90
  c2b5f3bb0c21a060bae40c6396336f9f  gcc/testsuite/gfortran.dg/pr88467.f90
+ 26a19c3ec9ae63a26cebee061e04edc5  gcc/testsuite/gfortran.dg/pr88552.f90
  d82653f0cc50f73a8d8759b21c4c24bd  gcc/testsuite/gfortran.dg/pr88611.f90
+ 576ceafd17c569f01b70d5a7213ffb43  gcc/testsuite/gfortran.dg/pr88688.f90
  cb3f3375da33c0d1dc2e041d90b817e7  gcc/testsuite/gfortran.dg/pr88833.f90
  ed9d93ecae79fa041852ef045ccc680f  gcc/testsuite/gfortran.dg/pr88902.f90
  6fbe7e10b6b494411afcbe3af2c67208  gcc/testsuite/gfortran.dg/pr88932.f90
*************** be4f5532cbaa58d083d822b627ffe5de  gcc/te
*** 89282,89287 ****
--- 98426,98432 ----
  eb191e16157f03cba56fb00422bb2852  gcc/testsuite/gfortran.dg/pr89266.f90
  2726f9a132f249a727072d95e5f0aee3  gcc/testsuite/gfortran.dg/pr89344.f90
  a93655d239d2dec9eca10adffc8e918f  gcc/testsuite/gfortran.dg/pr89451.f90
+ ec2b325aa671386611e60b1194beab21  gcc/testsuite/gfortran.dg/pr89462.f90
  3d3ae675ea53199229afe3e1ab0a247a  gcc/testsuite/gfortran.dg/pr89492.f90
  f5fd6e3fa110d4cb66c18b37bf885f26  gcc/testsuite/gfortran.dg/pr89574.f90
  3f3f46dc6e7ecbe8d1b98921221b16ec  gcc/testsuite/gfortran.dg/pr89646.f90
*************** f5fd6e3fa110d4cb66c18b37bf885f26  gcc/te
*** 89289,89296 ****
  7ebf7d753067f8fb33a012241af298a7  gcc/testsuite/gfortran.dg/pr89664.f90
  51110a6eedd6a04c8d24b1221f417a4c  gcc/testsuite/gfortran.dg/pr89943_1.f90
  c8b61ebc8563f334c25fcd70c0534f36  gcc/testsuite/gfortran.dg/pr89943_2.f90
! 06b2d802f5d95257d8ae61d2b9c466d0  gcc/testsuite/gfortran.dg/pr89943_3.f90
! 76252e955978550643d5d0dc6f7e78e4  gcc/testsuite/gfortran.dg/pr89943_4.f90
  831d5fcec1de1ef5c5b043098058d7a8  gcc/testsuite/gfortran.dg/pr89956.f90
  f93d3cf614a3e39cf100823554d1a638  gcc/testsuite/gfortran.dg/pr90002.f90
  b4b80d372198c955d7e61bb3acdc89e1  gcc/testsuite/gfortran.dg/pr90021.f90
--- 98434,98441 ----
  7ebf7d753067f8fb33a012241af298a7  gcc/testsuite/gfortran.dg/pr89664.f90
  51110a6eedd6a04c8d24b1221f417a4c  gcc/testsuite/gfortran.dg/pr89943_1.f90
  c8b61ebc8563f334c25fcd70c0534f36  gcc/testsuite/gfortran.dg/pr89943_2.f90
! af61ebc1a556ae2b9d4b71efd216ca88  gcc/testsuite/gfortran.dg/pr89943_3.f90
! 144e6e7adcaa47ba26138bcf270ed91e  gcc/testsuite/gfortran.dg/pr89943_4.f90
  831d5fcec1de1ef5c5b043098058d7a8  gcc/testsuite/gfortran.dg/pr89956.f90
  f93d3cf614a3e39cf100823554d1a638  gcc/testsuite/gfortran.dg/pr90002.f90
  b4b80d372198c955d7e61bb3acdc89e1  gcc/testsuite/gfortran.dg/pr90021.f90
*************** cd47c5f771e296971301643af5583dfa  gcc/te
*** 89352,89357 ****
--- 98497,98503 ----
  9e6b24c3fb5c77a7500ceae8f3990258  gcc/testsuite/gfortran.dg/pr92208.f90
  8623fdd6c6daabe9a4f011dbfe739aa7  gcc/testsuite/gfortran.dg/pr92277.f90
  f9f3f23d1f0e555393704aacc1883399  gcc/testsuite/gfortran.dg/pr92537.f90
+ 046e4aaa6db5ee0c20856d4a366b6343  gcc/testsuite/gfortran.dg/pr92586.f90
  7383008a151433faa521410955d94a9f  gcc/testsuite/gfortran.dg/pr92629.f90
  4f42dad4b149f18ca843630273713f7d  gcc/testsuite/gfortran.dg/pr92781.f90
  4dd22e19ac67028e19b5789647a9a64b  gcc/testsuite/gfortran.dg/pr92874.f90
*************** e5dc7b9c0011583d289357ca67906106  gcc/te
*** 89384,89389 ****
--- 98530,98536 ----
  e0fe2bc5bc29092b239eac7f6bd6642a  gcc/testsuite/gfortran.dg/pr93601.f90
  7fba8006db48550444d5426908e7bd21  gcc/testsuite/gfortran.dg/pr93603.f90
  7eccbef6ebf6b0e510ef57d5a859de0f  gcc/testsuite/gfortran.dg/pr93604.f90
+ 2c5913a12b155a423343994addcd98f9  gcc/testsuite/gfortran.dg/pr93678.f90
  3a950099baf4b594b439137360e76929  gcc/testsuite/gfortran.dg/pr93685_1.f90
  54e6c162457d096a85a702a7d61bb2c6  gcc/testsuite/gfortran.dg/pr93685_2.f90
  72a93ce5a3a0e7f069659dbadadfb4a9  gcc/testsuite/gfortran.dg/pr93686_1.f90
*************** f9cd7fe0c8cb7be5b0846aa6c3eb0b93  gcc/te
*** 89398,89403 ****
--- 98545,98551 ----
  b0f8acfae3746c459e5af7bcca222814  gcc/testsuite/gfortran.dg/pr94030_2.f90
  3fbf8e84b18aab42f89f48c0c8a9a41a  gcc/testsuite/gfortran.dg/pr94285.f90
  f17ab40b1ca95ac01da77049baa72103  gcc/testsuite/gfortran.dg/pr94329.f90
+ bf6d4fa9d116ccede014485a892d0d71  gcc/testsuite/gfortran.dg/pr94380.f90
  b9faba8aac0e0dd38443caeb527db93d  gcc/testsuite/gfortran.dg/pr94397.F90
  16d161f7900dd36eabcbaea6cd9c1b6e  gcc/testsuite/gfortran.dg/pr94708.f90
  b3aa92652c768e489db71c4bdec58492  gcc/testsuite/gfortran.dg/pr95053.f
*************** a6b1d851f4c5b6cfffa8f56c8f9cd150  gcc/te
*** 89412,89418 ****
  395135621c98fea610c5f2b17feb7637  gcc/testsuite/gfortran.dg/pr95342.f90
  b9d5894d240b89777d50d53e0cd60929  gcc/testsuite/gfortran.dg/pr95373_1.f90
  f55274affe4c9ad9830b5b95890a0e58  gcc/testsuite/gfortran.dg/pr95373_2.f90
! 27db2763cd4b76a729c1caca77615d2b  gcc/testsuite/gfortran.dg/pr95398.f90
  258eb533f98697cad8eebc8294e95ee4  gcc/testsuite/gfortran.dg/pr95446.f90
  bf06d26cfd17de7f7a1ca3d27181a469  gcc/testsuite/gfortran.dg/pr95500.f90
  6ef53d080792d6388cbc30dcbd258ee4  gcc/testsuite/gfortran.dg/pr95502.f90
--- 98560,98566 ----
  395135621c98fea610c5f2b17feb7637  gcc/testsuite/gfortran.dg/pr95342.f90
  b9d5894d240b89777d50d53e0cd60929  gcc/testsuite/gfortran.dg/pr95373_1.f90
  f55274affe4c9ad9830b5b95890a0e58  gcc/testsuite/gfortran.dg/pr95373_2.f90
! d2dc4b8b4c8c2279101a65b75688be21  gcc/testsuite/gfortran.dg/pr95398.f90
  258eb533f98697cad8eebc8294e95ee4  gcc/testsuite/gfortran.dg/pr95446.f90
  bf06d26cfd17de7f7a1ca3d27181a469  gcc/testsuite/gfortran.dg/pr95500.f90
  6ef53d080792d6388cbc30dcbd258ee4  gcc/testsuite/gfortran.dg/pr95502.f90
*************** f8cd3a1512c58ae5037e5d3d726bfdef  gcc/te
*** 89432,89441 ****
  a5234963084d71f3cbff36fdddbc2a39  gcc/testsuite/gfortran.dg/pr95687.f90
  0b6e1357ba61754bfa53b9ec715e9aa3  gcc/testsuite/gfortran.dg/pr95688.f90
  83b0c584414e4a319a76de802810da35  gcc/testsuite/gfortran.dg/pr95689.f90
! 4289e7443265ad9859588be917cf602f  gcc/testsuite/gfortran.dg/pr95690.f90
  9e1f84d8082ed7be8e9a14e8ff4713bb  gcc/testsuite/gfortran.dg/pr95707.f90
  7dc7dd72d896c5e7c5e3df3a92c93424  gcc/testsuite/gfortran.dg/pr95708.f90
  17933bb3f99b8b553eb0e7141b2dcdb7  gcc/testsuite/gfortran.dg/pr95709.f90
  318783bae8c440456bbc1d8206606958  gcc/testsuite/gfortran.dg/pr95826.f90
  662210e69dcf405442181d9c4c2a91ec  gcc/testsuite/gfortran.dg/pr95827.f90
  62cd2c3c38efcf3442a00b172c23a0f1  gcc/testsuite/gfortran.dg/pr95828.f90
--- 98580,98590 ----
  a5234963084d71f3cbff36fdddbc2a39  gcc/testsuite/gfortran.dg/pr95687.f90
  0b6e1357ba61754bfa53b9ec715e9aa3  gcc/testsuite/gfortran.dg/pr95688.f90
  83b0c584414e4a319a76de802810da35  gcc/testsuite/gfortran.dg/pr95689.f90
! 0863b18c10f89c9e31427fdb980c2fd1  gcc/testsuite/gfortran.dg/pr95690.f90
  9e1f84d8082ed7be8e9a14e8ff4713bb  gcc/testsuite/gfortran.dg/pr95707.f90
  7dc7dd72d896c5e7c5e3df3a92c93424  gcc/testsuite/gfortran.dg/pr95708.f90
  17933bb3f99b8b553eb0e7141b2dcdb7  gcc/testsuite/gfortran.dg/pr95709.f90
+ 21ec002e2ce2a315dbd94b5a99f7ab37  gcc/testsuite/gfortran.dg/pr95710.f90
  318783bae8c440456bbc1d8206606958  gcc/testsuite/gfortran.dg/pr95826.f90
  662210e69dcf405442181d9c4c2a91ec  gcc/testsuite/gfortran.dg/pr95827.f90
  62cd2c3c38efcf3442a00b172c23a0f1  gcc/testsuite/gfortran.dg/pr95828.f90
*************** d56be000adb4e5f4b724c408cb3ef497  gcc/te
*** 89467,89474 ****
  2524ffbe2910a6b3473a3c31d7998a36  gcc/testsuite/gfortran.dg/pr96436_10.f90
  d5903f6b335e4ec014953d7d04a5333d  gcc/testsuite/gfortran.dg/pr96436_2.f90
  dde1a77e8079263845b0f3cd32842e75  gcc/testsuite/gfortran.dg/pr96436_3.f90
! 02a8a94ac1a66a3c9a1b93f9c6b284c3  gcc/testsuite/gfortran.dg/pr96436_4.f90
! 5a404e04f183d1606f19184be398549b  gcc/testsuite/gfortran.dg/pr96436_5.f90
  bb672f4853167965dbd2fb64d85d3a06  gcc/testsuite/gfortran.dg/pr96436_6.f90
  aee380fea7e3e2a16dae6bf8d81c92f5  gcc/testsuite/gfortran.dg/pr96436_7.f90
  1cb7ddf98a011abb0604916e9800bcd8  gcc/testsuite/gfortran.dg/pr96436_8.f90
--- 98616,98623 ----
  2524ffbe2910a6b3473a3c31d7998a36  gcc/testsuite/gfortran.dg/pr96436_10.f90
  d5903f6b335e4ec014953d7d04a5333d  gcc/testsuite/gfortran.dg/pr96436_2.f90
  dde1a77e8079263845b0f3cd32842e75  gcc/testsuite/gfortran.dg/pr96436_3.f90
! 3c131319a4ec01e581295df53116f78a  gcc/testsuite/gfortran.dg/pr96436_4.f90
! e32640ff3b1830463b0d782d066a4c7d  gcc/testsuite/gfortran.dg/pr96436_5.f90
  bb672f4853167965dbd2fb64d85d3a06  gcc/testsuite/gfortran.dg/pr96436_6.f90
  aee380fea7e3e2a16dae6bf8d81c92f5  gcc/testsuite/gfortran.dg/pr96436_7.f90
  1cb7ddf98a011abb0604916e9800bcd8  gcc/testsuite/gfortran.dg/pr96436_8.f90
*************** baa4aca6702e7508dc07f87b66216ed4  gcc/te
*** 89497,89504 ****
--- 98646,98658 ----
  c308feb04384f4d499a6fd6368791b62  gcc/testsuite/gfortran.dg/pr99036.f90
  ab9d92c634833928d03c56d815ba4f69  gcc/testsuite/gfortran.dg/pr99060.f90
  c4cc8ded91592083a4019a67d9837e2c  gcc/testsuite/gfortran.dg/pr99112.f90
+ 580bb5b2ab7cf98fd46e43e31e286aa6  gcc/testsuite/gfortran.dg/pr99139.f90
  2b316ebb5f0c34f4b1c5764c77c3e824  gcc/testsuite/gfortran.dg/pr99204.f90
+ e6b03880b9caee03808e3eb7f805de7b  gcc/testsuite/gfortran.dg/pr99210.f90
+ c1e1a627c969a4eaba98c5c4ee3966e7  gcc/testsuite/gfortran.dg/pr99326.f90
  fa725ab0822c092ba2f3733d9d76757d  gcc/testsuite/gfortran.dg/pr99349.f90
+ 0585fcdec546010817fe3889a0120ba6  gcc/testsuite/gfortran.dg/pr99350.f90
+ 725c2581695acfcb1101fed01e65b62b  gcc/testsuite/gfortran.dg/pr99368.f90
  c6196744dcddad274ab914969ad9e6d3  gcc/testsuite/gfortran.dg/pr99545.f90
  d2a694e27e64b57361e7aee533fcd3c3  gcc/testsuite/gfortran.dg/pr99602.f90
  59098d6503b66d802b3c688383398c89  gcc/testsuite/gfortran.dg/pr99602a.f90
*************** a50ed014f3fd628f8e8e8e09f44f8c0f  gcc/te
*** 89616,89621 ****
--- 98770,98776 ----
  43ca301c170d61a34b8db85b8fcd1d84  gcc/testsuite/gfortran.dg/proc_ptr_50.f90
  2bdbfb5616cc946bcc711233f9deb135  gcc/testsuite/gfortran.dg/proc_ptr_51.f90
  a2ab49b1f709afa3cf1c9284d4576fa9  gcc/testsuite/gfortran.dg/proc_ptr_52.f90
+ 3850d6d46514853aa3728e5e82d5c382  gcc/testsuite/gfortran.dg/proc_ptr_53.f90
  aa07bccd48fbde93e47db111bac1ce8c  gcc/testsuite/gfortran.dg/proc_ptr_6.f90
  3648c097522ae5858550c7d7776afd28  gcc/testsuite/gfortran.dg/proc_ptr_7.c
  fe310c69dfb181cb04f271dad6a3f1d5  gcc/testsuite/gfortran.dg/proc_ptr_7.f90
*************** c75d4858dc637cf3362d7fd34a2b2c12  gcc/te
*** 89672,89677 ****
--- 98827,98833 ----
  301350ead67fb8e45886f0d873e81b06  gcc/testsuite/gfortran.dg/proc_ptr_comp_50.f90
  0dd95ef147a026dc2d07a5c91995c129  gcc/testsuite/gfortran.dg/proc_ptr_comp_51.f90
  15621b2f611d0a300724f72e8f740877  gcc/testsuite/gfortran.dg/proc_ptr_comp_52.f90
+ f0c1367506dcd47dc7a8083c794d8222  gcc/testsuite/gfortran.dg/proc_ptr_comp_53.f90
  0a5c35e1c686199c602eb079c1609d62  gcc/testsuite/gfortran.dg/proc_ptr_comp_6.f90
  f41c3a8af3a63f5aef54c294fa8cd9c5  gcc/testsuite/gfortran.dg/proc_ptr_comp_7.f90
  d3e8e56011aae6c4a66fe7865f87061c  gcc/testsuite/gfortran.dg/proc_ptr_comp_8.f90
*************** c273afb240dd8ee8117b49f657c81476  gcc/te
*** 89695,89701 ****
  56206d45c5f13e14b3a1fb529ebdfba0  gcc/testsuite/gfortran.dg/product_init_expr.f03
  8cfd22f83c53cada6279a70564dbbee0  gcc/testsuite/gfortran.dg/product_sum_bounds_1.f90
  1df3bb37479b20de5e1cd736cdffade5  gcc/testsuite/gfortran.dg/prof/dynamic_dispatch_6.f03
! bae7fbbf43d11e638d2446d021a9239d  gcc/testsuite/gfortran.dg/prof/prof.exp
  ddf26540873573967a534a14385f92dd  gcc/testsuite/gfortran.dg/program_name_1.f90
  451cb2bde6f52f6e44db85652688fbea  gcc/testsuite/gfortran.dg/promotion.f90
  08bbf4464a0ed5e6cd9955f827a92afa  gcc/testsuite/gfortran.dg/promotion_2.f90
--- 98851,98857 ----
  56206d45c5f13e14b3a1fb529ebdfba0  gcc/testsuite/gfortran.dg/product_init_expr.f03
  8cfd22f83c53cada6279a70564dbbee0  gcc/testsuite/gfortran.dg/product_sum_bounds_1.f90
  1df3bb37479b20de5e1cd736cdffade5  gcc/testsuite/gfortran.dg/prof/dynamic_dispatch_6.f03
! a90573ddd93b3301b87ae7a7f7959aad  gcc/testsuite/gfortran.dg/prof/prof.exp
  ddf26540873573967a534a14385f92dd  gcc/testsuite/gfortran.dg/program_name_1.f90
  451cb2bde6f52f6e44db85652688fbea  gcc/testsuite/gfortran.dg/promotion.f90
  08bbf4464a0ed5e6cd9955f827a92afa  gcc/testsuite/gfortran.dg/promotion_2.f90
*************** f94ae1b55b54285691c897eacc97196a  gcc/te
*** 89913,89921 ****
--- 99069,99080 ----
  ca6d87fa41c86b058f08e752f82e63b8  gcc/testsuite/gfortran.dg/repeat_5.f90
  904d3f5f660559e097b416af3822a52d  gcc/testsuite/gfortran.dg/repeat_6.f90
  880f249310fa47e28f0f62031d079f2b  gcc/testsuite/gfortran.dg/repeat_7.f90
+ 211df9f93fc02621b853a35b724ace73  gcc/testsuite/gfortran.dg/repeat_8.f90
  1f66f4b85d9cc7b56a0c71212eb50a41  gcc/testsuite/gfortran.dg/reshape-alloc.f90
  6ee21df6b68e48d84f37c60933dd19f0  gcc/testsuite/gfortran.dg/reshape-complex.f90
  979b1e416f7084b906506f9c453293a8  gcc/testsuite/gfortran.dg/reshape.f90
+ d96c9908f987862854f237f0e793f48d  gcc/testsuite/gfortran.dg/reshape_10.f90
+ e3e3a7656964c4fefec6eadff36b633d  gcc/testsuite/gfortran.dg/reshape_11.f90
  a7ac818521c5f61d92e2adf17f6ccede  gcc/testsuite/gfortran.dg/reshape_2.f90
  d3828a0469af571ee4a9715d5b69ba18  gcc/testsuite/gfortran.dg/reshape_3.f90
  28e648e5d9b58d4e60affb7acc6a4a36  gcc/testsuite/gfortran.dg/reshape_4.f90
*************** ccd2618a55a7bc3b468d6155f3778173  gcc/te
*** 90098,90111 ****
  abc7dd8bdb0e5b712800eb9cf9fec4db  gcc/testsuite/gfortran.dg/sibling_dummy_procedure_2.f90
  73e017874e8c06097ec8707a950faaf5  gcc/testsuite/gfortran.dg/sibling_dummy_procedure_3.f90
  67386d9c67b36d8a6be218811ca45575  gcc/testsuite/gfortran.dg/simd-builtins-1.f90
! bede56d8273ca3224b1b248ce5a625c0  gcc/testsuite/gfortran.dg/simd-builtins-1.h
  05c5eb7926bcd63264429322fdcb467d  gcc/testsuite/gfortran.dg/simd-builtins-2.f90
  0091e3cc970ce05895e9fe74236f6e95  gcc/testsuite/gfortran.dg/simd-builtins-3.f90
  2f0646a7e79ce847f4e0a90cafabee99  gcc/testsuite/gfortran.dg/simd-builtins-3.h
  87d1f71f8519104eb93adec0b3a6c169  gcc/testsuite/gfortran.dg/simd-builtins-4.f
  2f0646a7e79ce847f4e0a90cafabee99  gcc/testsuite/gfortran.dg/simd-builtins-4.h
  4235ed2b839a02cece20bab659dcc9de  gcc/testsuite/gfortran.dg/simd-builtins-5.f
! 1bbfefc954fd392cd3f890e1be20a4b8  gcc/testsuite/gfortran.dg/simd-builtins-6.f90
  3bb4ca5d9ab3662a68e15779da019c16  gcc/testsuite/gfortran.dg/simd-builtins-7.f90
  b018d403c909bd48aff95ffa51504bc5  gcc/testsuite/gfortran.dg/simd-builtins-7.h
  917ca17cb2401da8f1cf3b663d10e88f  gcc/testsuite/gfortran.dg/simd-builtins-8.f90
--- 99257,99270 ----
  abc7dd8bdb0e5b712800eb9cf9fec4db  gcc/testsuite/gfortran.dg/sibling_dummy_procedure_2.f90
  73e017874e8c06097ec8707a950faaf5  gcc/testsuite/gfortran.dg/sibling_dummy_procedure_3.f90
  67386d9c67b36d8a6be218811ca45575  gcc/testsuite/gfortran.dg/simd-builtins-1.f90
! f880b02e14636db1562c8d548386d1b5  gcc/testsuite/gfortran.dg/simd-builtins-1.h
  05c5eb7926bcd63264429322fdcb467d  gcc/testsuite/gfortran.dg/simd-builtins-2.f90
  0091e3cc970ce05895e9fe74236f6e95  gcc/testsuite/gfortran.dg/simd-builtins-3.f90
  2f0646a7e79ce847f4e0a90cafabee99  gcc/testsuite/gfortran.dg/simd-builtins-3.h
  87d1f71f8519104eb93adec0b3a6c169  gcc/testsuite/gfortran.dg/simd-builtins-4.f
  2f0646a7e79ce847f4e0a90cafabee99  gcc/testsuite/gfortran.dg/simd-builtins-4.h
  4235ed2b839a02cece20bab659dcc9de  gcc/testsuite/gfortran.dg/simd-builtins-5.f
! 6bc6fea661300fef89e58d2d5a7b3e3f  gcc/testsuite/gfortran.dg/simd-builtins-6.f90
  3bb4ca5d9ab3662a68e15779da019c16  gcc/testsuite/gfortran.dg/simd-builtins-7.f90
  b018d403c909bd48aff95ffa51504bc5  gcc/testsuite/gfortran.dg/simd-builtins-7.h
  917ca17cb2401da8f1cf3b663d10e88f  gcc/testsuite/gfortran.dg/simd-builtins-8.f90
*************** cee66ec5b389cd7c4cb8c22f5584f9dd  gcc/te
*** 90121,90132 ****
  6b24371f697cce6c0fd1cf135ea84ac8  gcc/testsuite/gfortran.dg/simplify_modulo.f90
  29b8f5f46ac26ff58d6a98b81cfd7b83  gcc/testsuite/gfortran.dg/single_char_string.f90
  56a0d5d53c2a28d6b8b29a125a19f731  gcc/testsuite/gfortran.dg/size_dim.f90
  76b6a643d27059d9c8114652d1d2ae9f  gcc/testsuite/gfortran.dg/size_kind.f90
  5a93d89b88a4dab967e9247a9cce78ca  gcc/testsuite/gfortran.dg/size_kind_2.f90
  06fc303bb9c257b08d6c089dc0b90562  gcc/testsuite/gfortran.dg/size_kind_3.f90
  1ebf3a5e28bec34f2f070ff509f033c8  gcc/testsuite/gfortran.dg/size_optional_dim_1.f90
  3b2c2a5206047f06585f5eaa51118fb1  gcc/testsuite/gfortran.dg/sizeof.f90
! 365e93d8ad0f49947cb4a16064a8dfbc  gcc/testsuite/gfortran.dg/sizeof_2.f90
  ef6455481f972947ec2caf636b0b11f1  gcc/testsuite/gfortran.dg/sizeof_3.f90
  16ea464f9304ec12032fdb578b3edd09  gcc/testsuite/gfortran.dg/sizeof_4.f90
  aa889457a016aa03e609133a71bc8fac  gcc/testsuite/gfortran.dg/sizeof_5.f90
--- 99280,99293 ----
  6b24371f697cce6c0fd1cf135ea84ac8  gcc/testsuite/gfortran.dg/simplify_modulo.f90
  29b8f5f46ac26ff58d6a98b81cfd7b83  gcc/testsuite/gfortran.dg/single_char_string.f90
  56a0d5d53c2a28d6b8b29a125a19f731  gcc/testsuite/gfortran.dg/size_dim.f90
+ b972f414ad7392acd774176ff429d66e  gcc/testsuite/gfortran.dg/size_dim_2.f90
  76b6a643d27059d9c8114652d1d2ae9f  gcc/testsuite/gfortran.dg/size_kind.f90
  5a93d89b88a4dab967e9247a9cce78ca  gcc/testsuite/gfortran.dg/size_kind_2.f90
  06fc303bb9c257b08d6c089dc0b90562  gcc/testsuite/gfortran.dg/size_kind_3.f90
  1ebf3a5e28bec34f2f070ff509f033c8  gcc/testsuite/gfortran.dg/size_optional_dim_1.f90
+ 63d1175dc37a557bccb260a48fd49337  gcc/testsuite/gfortran.dg/size_optional_dim_2.f90
  3b2c2a5206047f06585f5eaa51118fb1  gcc/testsuite/gfortran.dg/sizeof.f90
! db94e39f31e7636c57d8a169d3526f54  gcc/testsuite/gfortran.dg/sizeof_2.f90
  ef6455481f972947ec2caf636b0b11f1  gcc/testsuite/gfortran.dg/sizeof_3.f90
  16ea464f9304ec12032fdb578b3edd09  gcc/testsuite/gfortran.dg/sizeof_4.f90
  aa889457a016aa03e609133a71bc8fac  gcc/testsuite/gfortran.dg/sizeof_5.f90
*************** aa889457a016aa03e609133a71bc8fac  gcc/te
*** 90136,90147 ****
--- 99297,99311 ----
  94331e49e12dbf9bc1f4bd6bb4316cb1  gcc/testsuite/gfortran.dg/sms-1.f90
  c672a2c11c154db645d9d2499372129e  gcc/testsuite/gfortran.dg/sms-2.f90
  85bef460546bfc479debba6e0beb0a8f  gcc/testsuite/gfortran.dg/spec_expr_1.f90
+ f1292b716c344353c7b92b85aba429dc  gcc/testsuite/gfortran.dg/spec_expr_10.f90
  e50338827fa0a2f4c86e55a9d77c7e7d  gcc/testsuite/gfortran.dg/spec_expr_2.f90
  85a3fbfb1341a70371686604393b4608  gcc/testsuite/gfortran.dg/spec_expr_3.f90
  1e9c6ae2bc18589c137aeedb6317ba90  gcc/testsuite/gfortran.dg/spec_expr_4.f90
  aad042410419391c67cbcfe80381dfd6  gcc/testsuite/gfortran.dg/spec_expr_5.f90
  2bee0a62aec05aa423ff23129c00c965  gcc/testsuite/gfortran.dg/spec_expr_6.f90
  74d9192c674d36c49dd61638c0ed9427  gcc/testsuite/gfortran.dg/spec_expr_7.f90
+ a85036393b2e190e3e232bfbc36020f8  gcc/testsuite/gfortran.dg/spec_expr_8.f90
+ 0e550c9c828d36891d4457d13bac694c  gcc/testsuite/gfortran.dg/spec_expr_9.f90
  4561b9231cf8d91cc26cafd4dfa4eb9d  gcc/testsuite/gfortran.dg/specification_type_resolution_1.f90
  f5153e8883f791f3cc0646a71b5c6e9b  gcc/testsuite/gfortran.dg/specification_type_resolution_2.f90
  d8e60069f2b97e982ac574a084348519  gcc/testsuite/gfortran.dg/specifics_1.f90
*************** a925dc24dc88f988a2c3d72d6db706b6  gcc/te
*** 90304,90312 ****
  84bf7759315587d026e1a8e2d80563a7  gcc/testsuite/gfortran.dg/substring_integer_index.f90
  84e210a9e07675721302c604b7c706f8  gcc/testsuite/gfortran.dg/sum_init_expr.f03
  30d06b9e964f9e56b5a13c857c5c89e8  gcc/testsuite/gfortran.dg/sum_zero_array_1.f90
! a396a8f96432614ba5105975d1f15d38  gcc/testsuite/gfortran.dg/system_clock_1.f90
  0224a5946d88b059a3e270f56ffa697b  gcc/testsuite/gfortran.dg/system_clock_2.f90
! 97033a019176e90709df47b0f178a8ea  gcc/testsuite/gfortran.dg/system_clock_3.f08
  8e267cb653bd786b2d52174413cdf5c5  gcc/testsuite/gfortran.dg/t_editing.f
  fc74a7b1dea5845099aae90ddbe0d2a9  gcc/testsuite/gfortran.dg/tab_continuation.f
  f5ffda893867e5bb3e11896536b411b9  gcc/testsuite/gfortran.dg/team_change_1.f90
--- 99468,99477 ----
  84bf7759315587d026e1a8e2d80563a7  gcc/testsuite/gfortran.dg/substring_integer_index.f90
  84e210a9e07675721302c604b7c706f8  gcc/testsuite/gfortran.dg/sum_init_expr.f03
  30d06b9e964f9e56b5a13c857c5c89e8  gcc/testsuite/gfortran.dg/sum_zero_array_1.f90
! 180cdf8029fdb98e2f45c8dca85daa90  gcc/testsuite/gfortran.dg/system_clock_1.f90
  0224a5946d88b059a3e270f56ffa697b  gcc/testsuite/gfortran.dg/system_clock_2.f90
! 55f9cf5cc28fa88e100bfb469f1f6ad0  gcc/testsuite/gfortran.dg/system_clock_3.f08
! 4f474b849bffeb11048d0dcb1269d0fd  gcc/testsuite/gfortran.dg/system_clock_4.f90
  8e267cb653bd786b2d52174413cdf5c5  gcc/testsuite/gfortran.dg/t_editing.f
  fc74a7b1dea5845099aae90ddbe0d2a9  gcc/testsuite/gfortran.dg/tab_continuation.f
  f5ffda893867e5bb3e11896536b411b9  gcc/testsuite/gfortran.dg/team_change_1.f90
*************** b432d7fb6a6aa41a4117f93a3fb4acb3  gcc/te
*** 90527,90535 ****
  a9c38f145300eee1aaca2ccee4d418fd  gcc/testsuite/gfortran.dg/typed_subroutine_1.f90
  5fcbccbbe6f25c7610a63673951af1d0  gcc/testsuite/gfortran.dg/ubound_1.f90
  3487e8fcd11181a286e307cf481c7df0  gcc/testsuite/gfortran.dg/ubsan/bind-c-intent-out-2.f90
  ddea8e97d88b939147b22730616832d2  gcc/testsuite/gfortran.dg/ubsan/pr101624.f90
  e291127c769443ec31b3cab6dcce2f99  gcc/testsuite/gfortran.dg/ubsan/pr106062.f90
! 4d40bcc833ec02a5fae4fb72038e3f14  gcc/testsuite/gfortran.dg/ubsan/ubsan.exp
  1623cb39a42976237e7817a8a94f1a4a  gcc/testsuite/gfortran.dg/unary_operator.f90
  0e692a977ecc4ab86f2eddee444794b4  gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90
  a3fe3d5aed286d45e58533ee6cd37dd9  gcc/testsuite/gfortran.dg/unconstrained_commons.f
--- 99692,99701 ----
  a9c38f145300eee1aaca2ccee4d418fd  gcc/testsuite/gfortran.dg/typed_subroutine_1.f90
  5fcbccbbe6f25c7610a63673951af1d0  gcc/testsuite/gfortran.dg/ubound_1.f90
  3487e8fcd11181a286e307cf481c7df0  gcc/testsuite/gfortran.dg/ubsan/bind-c-intent-out-2.f90
+ 5cc6a12dda884ede65175d2892af6333  gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_8.f90
  ddea8e97d88b939147b22730616832d2  gcc/testsuite/gfortran.dg/ubsan/pr101624.f90
  e291127c769443ec31b3cab6dcce2f99  gcc/testsuite/gfortran.dg/ubsan/pr106062.f90
! 070b3af5e149a94f5cca839bf8a618da  gcc/testsuite/gfortran.dg/ubsan/ubsan.exp
  1623cb39a42976237e7817a8a94f1a4a  gcc/testsuite/gfortran.dg/unary_operator.f90
  0e692a977ecc4ab86f2eddee444794b4  gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90
  a3fe3d5aed286d45e58533ee6cd37dd9  gcc/testsuite/gfortran.dg/unconstrained_commons.f
*************** b901a88b454d7825c0db0571e62c9944  gcc/te
*** 90622,90627 ****
--- 99788,99794 ----
  aa0dfadd71d3f03426fb0f846d07e63b  gcc/testsuite/gfortran.dg/use_29.f90
  9ca8384adf4fc331598e3bcd1cbb8ffe  gcc/testsuite/gfortran.dg/use_3.f90
  e3915d16f4c6f728ab91bc8f9638bf61  gcc/testsuite/gfortran.dg/use_30.f90
+ 38dd8041fc441aa36819446520a45884  gcc/testsuite/gfortran.dg/use_31.f90
  0c64a8a6f9a898ee90f8cccc71a7f782  gcc/testsuite/gfortran.dg/use_4.f90
  4e842fdc63e80db58b1de3e5a39f4573  gcc/testsuite/gfortran.dg/use_5.f90
  3ccf2307581a4141eac7b094a0461b40  gcc/testsuite/gfortran.dg/use_6.f90
*************** f0b6d172971190f9810729d6cf81bef7  gcc/te
*** 90704,90709 ****
--- 99871,99878 ----
  e0681ebf1cc0d7c0c6333d4894f4bb3d  gcc/testsuite/gfortran.dg/value_6.f03
  976eb36133da7e21bc4e6438427f2a37  gcc/testsuite/gfortran.dg/value_7.f03
  570bf3e723d57b65078a2b23e25f93e5  gcc/testsuite/gfortran.dg/value_8.f90
+ b46ba5ff0e0f3d11a40f4fd27e154383  gcc/testsuite/gfortran.dg/value_9.f90
+ 5497ec582b3049523e60926b1e6a663e  gcc/testsuite/gfortran.dg/value_optional_1.f90
  0d717003a2688af8d432e36362750a72  gcc/testsuite/gfortran.dg/value_test.f90
  726b4cde834cb3dc1ab0ada4c8388762  gcc/testsuite/gfortran.dg/value_tests_f03.f90
  17cda9ae919cf95b0f148e50a888a6fb  gcc/testsuite/gfortran.dg/variable_parameter.f90
*************** a4a40dfa54475d3aef79ace11bd49427  gcc/te
*** 90716,90722 ****
  9243ed67b943be91e6a07b12cdbb85ed  gcc/testsuite/gfortran.dg/vect/Ofast-pr50414.f90
  b0e1d086d792aaa6f0448d6f6045949c  gcc/testsuite/gfortran.dg/vect/cost-model-pr34445.f
  28296343b1fb8d395ff884d9ce8d3357  gcc/testsuite/gfortran.dg/vect/cost-model-pr34445a.f
! 3bd47adf1b8c1b89fb0ea44f592cc85d  gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f
  ac8f5b820a1162a057bd4f98f8edb48c  gcc/testsuite/gfortran.dg/vect/fast-math-pr33299.f90
  eb8f63c129d8618d429aa78bba083c23  gcc/testsuite/gfortran.dg/vect/fast-math-pr37021.f90
  5b7763b48d017e67bac2ada753e63c9c  gcc/testsuite/gfortran.dg/vect/fast-math-pr38968.f90
--- 99885,99891 ----
  9243ed67b943be91e6a07b12cdbb85ed  gcc/testsuite/gfortran.dg/vect/Ofast-pr50414.f90
  b0e1d086d792aaa6f0448d6f6045949c  gcc/testsuite/gfortran.dg/vect/cost-model-pr34445.f
  28296343b1fb8d395ff884d9ce8d3357  gcc/testsuite/gfortran.dg/vect/cost-model-pr34445a.f
! 2354717dc5aeba72ec7af1bd778056ac  gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f
  ac8f5b820a1162a057bd4f98f8edb48c  gcc/testsuite/gfortran.dg/vect/fast-math-pr33299.f90
  eb8f63c129d8618d429aa78bba083c23  gcc/testsuite/gfortran.dg/vect/fast-math-pr37021.f90
  5b7763b48d017e67bac2ada753e63c9c  gcc/testsuite/gfortran.dg/vect/fast-math-pr38968.f90
*************** ca22fb0f028313d733f9f90efd6b98e6  gcc/te
*** 90729,90752 ****
  19e92e71600fa931dce3409e389d0482  gcc/testsuite/gfortran.dg/vect/no-vfa-pr32457.f90
  bba5c2c089f258e8640ba52dab163abe  gcc/testsuite/gfortran.dg/vect/pr100981-1.f90
  ca55d89300492a406b4293654a75c058  gcc/testsuite/gfortran.dg/vect/pr106253.f
! 151833a2475cd28c993b813d478c8b37  gcc/testsuite/gfortran.dg/vect/pr107254.f90
  777b852dc009b4634413ed078253b5e8  gcc/testsuite/gfortran.dg/vect/pr108979.f90
  a17cb1ab891a5af3471298da97331dda  gcc/testsuite/gfortran.dg/vect/pr19049.f90
  fdb4a5f5d5eff2fd75822f14875bd776  gcc/testsuite/gfortran.dg/vect/pr32377.f90
  bbb6998ea100c6c2039976c6446a0c10  gcc/testsuite/gfortran.dg/vect/pr32380.f
  03d527a63a4c219a0964b24ef32fefb1  gcc/testsuite/gfortran.dg/vect/pr33301.f
  013bef08519dd225777007390b97e3a6  gcc/testsuite/gfortran.dg/vect/pr39318.f90
  0aeb82f087f330f49ed4167dde30ccfa  gcc/testsuite/gfortran.dg/vect/pr45714-a.f
! 2e83122896b27379235274772e3812c3  gcc/testsuite/gfortran.dg/vect/pr45714-b.f
  9b7fbff8e00f56c0a0b614451d597771  gcc/testsuite/gfortran.dg/vect/pr46213.f90
  e6a7b3925b760201ede8336ffe6c9f7e  gcc/testsuite/gfortran.dg/vect/pr48329.f90
  3423320e2839c1f0eb358b21b14fd0c4  gcc/testsuite/gfortran.dg/vect/pr50178.f90
  f86889411b55e8f3c30379082c193f04  gcc/testsuite/gfortran.dg/vect/pr50412.f90
  509046a3cd32c4010ab4578e44a434c4  gcc/testsuite/gfortran.dg/vect/pr51058-2.f90
  a2d04ed105569f8d74d2d9e79dff01be  gcc/testsuite/gfortran.dg/vect/pr51058.f90
  61fb9e8fcac7c7279c3dba78b0e0fef0  gcc/testsuite/gfortran.dg/vect/pr51285.f90
  63413dbca67ac6969910f878f258af40  gcc/testsuite/gfortran.dg/vect/pr52580.f
! 2a9c0c068208d3e070d9de9ee9c7f322  gcc/testsuite/gfortran.dg/vect/pr60510.f
  0bc81b88699fb163be2b934a787aab50  gcc/testsuite/gfortran.dg/vect/pr61171.f
  f5cef46789d501f4e899fb0e273be1c5  gcc/testsuite/gfortran.dg/vect/pr62283-2.f
  193bdf53d1fc554853e00fcc30d9841c  gcc/testsuite/gfortran.dg/vect/pr62283.f
--- 99898,99924 ----
  19e92e71600fa931dce3409e389d0482  gcc/testsuite/gfortran.dg/vect/no-vfa-pr32457.f90
  bba5c2c089f258e8640ba52dab163abe  gcc/testsuite/gfortran.dg/vect/pr100981-1.f90
  ca55d89300492a406b4293654a75c058  gcc/testsuite/gfortran.dg/vect/pr106253.f
! 0fb16b96f846451901a2b858e2047150  gcc/testsuite/gfortran.dg/vect/pr107254.f90
  777b852dc009b4634413ed078253b5e8  gcc/testsuite/gfortran.dg/vect/pr108979.f90
+ ed99007df506ce091870da0cdbff417d  gcc/testsuite/gfortran.dg/vect/pr110451.f
+ 7e36b2b10502091bcb389f5834b42c96  gcc/testsuite/gfortran.dg/vect/pr114736.f90
  a17cb1ab891a5af3471298da97331dda  gcc/testsuite/gfortran.dg/vect/pr19049.f90
  fdb4a5f5d5eff2fd75822f14875bd776  gcc/testsuite/gfortran.dg/vect/pr32377.f90
  bbb6998ea100c6c2039976c6446a0c10  gcc/testsuite/gfortran.dg/vect/pr32380.f
  03d527a63a4c219a0964b24ef32fefb1  gcc/testsuite/gfortran.dg/vect/pr33301.f
  013bef08519dd225777007390b97e3a6  gcc/testsuite/gfortran.dg/vect/pr39318.f90
  0aeb82f087f330f49ed4167dde30ccfa  gcc/testsuite/gfortran.dg/vect/pr45714-a.f
! 668003dd78885b9efe63ef2158a3b893  gcc/testsuite/gfortran.dg/vect/pr45714-b.f
  9b7fbff8e00f56c0a0b614451d597771  gcc/testsuite/gfortran.dg/vect/pr46213.f90
  e6a7b3925b760201ede8336ffe6c9f7e  gcc/testsuite/gfortran.dg/vect/pr48329.f90
+ dce6988b7c61749a42b5ea0e86fa91ae  gcc/testsuite/gfortran.dg/vect/pr49955.f
  3423320e2839c1f0eb358b21b14fd0c4  gcc/testsuite/gfortran.dg/vect/pr50178.f90
  f86889411b55e8f3c30379082c193f04  gcc/testsuite/gfortran.dg/vect/pr50412.f90
  509046a3cd32c4010ab4578e44a434c4  gcc/testsuite/gfortran.dg/vect/pr51058-2.f90
  a2d04ed105569f8d74d2d9e79dff01be  gcc/testsuite/gfortran.dg/vect/pr51058.f90
  61fb9e8fcac7c7279c3dba78b0e0fef0  gcc/testsuite/gfortran.dg/vect/pr51285.f90
  63413dbca67ac6969910f878f258af40  gcc/testsuite/gfortran.dg/vect/pr52580.f
! 3d457e7524acc09d21145a4ebfdec12d  gcc/testsuite/gfortran.dg/vect/pr60510.f
  0bc81b88699fb163be2b934a787aab50  gcc/testsuite/gfortran.dg/vect/pr61171.f
  f5cef46789d501f4e899fb0e273be1c5  gcc/testsuite/gfortran.dg/vect/pr62283-2.f
  193bdf53d1fc554853e00fcc30d9841c  gcc/testsuite/gfortran.dg/vect/pr62283.f
*************** e3ed6ec2719e9380031e3e22af66563e  gcc/te
*** 90754,90778 ****
  e908da4224e8c1e801b93e3fde2381b1  gcc/testsuite/gfortran.dg/vect/pr69882.f90
  8be888cc0b6731a3a012553b4bf9398b  gcc/testsuite/gfortran.dg/vect/pr69980.f90
  cefc2799ac1f1f0963931200eb469fc0  gcc/testsuite/gfortran.dg/vect/pr70043.f90
! 58582a4ac642cec92bb942d31698a6eb  gcc/testsuite/gfortran.dg/vect/pr77848.f
  abf68e470c0aa7bc77cac4f589082522  gcc/testsuite/gfortran.dg/vect/pr81303.f
  677875c22fcbdaacf0630aebbf7740ee  gcc/testsuite/gfortran.dg/vect/pr83232.f90
  8b92a1fffaa166252123bd512e3f07ff  gcc/testsuite/gfortran.dg/vect/pr84913.f90
! 1c13de46fcc72ce357615784624a78ee  gcc/testsuite/gfortran.dg/vect/pr85853.f90
  48c80a6c163523eb726f99224a1e283a  gcc/testsuite/gfortran.dg/vect/pr86421.f90
  34153245fea2ed8b978b0ee75953c440  gcc/testsuite/gfortran.dg/vect/pr89535.f90
! dc982a49827f5055ffa6a7d91963e2ed  gcc/testsuite/gfortran.dg/vect/pr90681.f
! 30bb06d3ec7b6bbd2829fe43a222c391  gcc/testsuite/gfortran.dg/vect/pr90913.f90
  9b89faef0780576e75749da9e8cca8c1  gcc/testsuite/gfortran.dg/vect/pr95403.f
  27c1f08a8fbc15e2c64f90e0761a9b7f  gcc/testsuite/gfortran.dg/vect/pr96920.f90
! d708f7d3b29227b5778b290053f0f4f4  gcc/testsuite/gfortran.dg/vect/pr97761.f90
  377d9b61dd661969492b076138fcf6ba  gcc/testsuite/gfortran.dg/vect/pr99656.f90
  95b9b5bd3377844278f5e6e92c8d6d16  gcc/testsuite/gfortran.dg/vect/pr99721.f90
! 40292475ba534c526200febe0a45bd28  gcc/testsuite/gfortran.dg/vect/pr99746.f90
  7a235fd99dbc4b3b2760cce7c0ac8e52  gcc/testsuite/gfortran.dg/vect/pr99807.f90
  f69087e660df29be9a73753898194e74  gcc/testsuite/gfortran.dg/vect/pr99825.f90
  4a6f490f0bcea47d701c2b0f92873dc3  gcc/testsuite/gfortran.dg/vect/pr99924.f90
  0e65ff4a3d90f2b73a5088d94b53586a  gcc/testsuite/gfortran.dg/vect/vect-1.f90
  e968451822432df6fb4987063a84f380  gcc/testsuite/gfortran.dg/vect/vect-2.f90
  efd1f1f270b2c6b9006463ae5b59cdde  gcc/testsuite/gfortran.dg/vect/vect-3.f90
  f352be717d51cf3ddda8f5bdc93437f4  gcc/testsuite/gfortran.dg/vect/vect-4.f90
--- 99926,99951 ----
  e908da4224e8c1e801b93e3fde2381b1  gcc/testsuite/gfortran.dg/vect/pr69882.f90
  8be888cc0b6731a3a012553b4bf9398b  gcc/testsuite/gfortran.dg/vect/pr69980.f90
  cefc2799ac1f1f0963931200eb469fc0  gcc/testsuite/gfortran.dg/vect/pr70043.f90
! 44e4c7039bf8aa2059bc3842f955c44d  gcc/testsuite/gfortran.dg/vect/pr77848.f
  abf68e470c0aa7bc77cac4f589082522  gcc/testsuite/gfortran.dg/vect/pr81303.f
  677875c22fcbdaacf0630aebbf7740ee  gcc/testsuite/gfortran.dg/vect/pr83232.f90
  8b92a1fffaa166252123bd512e3f07ff  gcc/testsuite/gfortran.dg/vect/pr84913.f90
! 9be04baf09b73ee331ee919269c7ee1d  gcc/testsuite/gfortran.dg/vect/pr85853.f90
  48c80a6c163523eb726f99224a1e283a  gcc/testsuite/gfortran.dg/vect/pr86421.f90
  34153245fea2ed8b978b0ee75953c440  gcc/testsuite/gfortran.dg/vect/pr89535.f90
! 9ab34e9e659f29537ab1a84a0cc37823  gcc/testsuite/gfortran.dg/vect/pr90681.f
! 228d01744ff334cf0b8c02d689a04b1e  gcc/testsuite/gfortran.dg/vect/pr90913.f90
  9b89faef0780576e75749da9e8cca8c1  gcc/testsuite/gfortran.dg/vect/pr95403.f
  27c1f08a8fbc15e2c64f90e0761a9b7f  gcc/testsuite/gfortran.dg/vect/pr96920.f90
! f5be28dfa1a13256315f9fe0d9a11e88  gcc/testsuite/gfortran.dg/vect/pr97761.f90
  377d9b61dd661969492b076138fcf6ba  gcc/testsuite/gfortran.dg/vect/pr99656.f90
  95b9b5bd3377844278f5e6e92c8d6d16  gcc/testsuite/gfortran.dg/vect/pr99721.f90
! 1c27315237849bc32af6db15ac1c9e4a  gcc/testsuite/gfortran.dg/vect/pr99746.f90
  7a235fd99dbc4b3b2760cce7c0ac8e52  gcc/testsuite/gfortran.dg/vect/pr99807.f90
  f69087e660df29be9a73753898194e74  gcc/testsuite/gfortran.dg/vect/pr99825.f90
  4a6f490f0bcea47d701c2b0f92873dc3  gcc/testsuite/gfortran.dg/vect/pr99924.f90
  0e65ff4a3d90f2b73a5088d94b53586a  gcc/testsuite/gfortran.dg/vect/vect-1.f90
+ a496162c39b8bab03c56279d46969f96  gcc/testsuite/gfortran.dg/vect/vect-10.f90
  e968451822432df6fb4987063a84f380  gcc/testsuite/gfortran.dg/vect/vect-2.f90
  efd1f1f270b2c6b9006463ae5b59cdde  gcc/testsuite/gfortran.dg/vect/vect-3.f90
  f352be717d51cf3ddda8f5bdc93437f4  gcc/testsuite/gfortran.dg/vect/vect-4.f90
*************** f352be717d51cf3ddda8f5bdc93437f4  gcc/te
*** 90780,90791 ****
  85e276d35cb7a8b2c21db0e98b73186b  gcc/testsuite/gfortran.dg/vect/vect-6.f
  c92f16f306f4e92e783e01428ccd23b3  gcc/testsuite/gfortran.dg/vect/vect-7.f90
  46b49fba2ec5f26969cddc20dc871cb3  gcc/testsuite/gfortran.dg/vect/vect-8-epilogue.F90
! f1cf2f0d910fe906e3f2830924f69531  gcc/testsuite/gfortran.dg/vect/vect-8.f90
  9e3ba50dd73757cc5b6e9d6265e4ff1a  gcc/testsuite/gfortran.dg/vect/vect-9.f90
! 3a21d8125c0cd02a232eac625ca5cbf0  gcc/testsuite/gfortran.dg/vect/vect-alias-check-1.F90
  943be5f26b034cab4a8d80ed72f35e29  gcc/testsuite/gfortran.dg/vect/vect-do-concurrent-1.f90
  51d61a0ffbe2e176d92badb55eaf6889  gcc/testsuite/gfortran.dg/vect/vect-gems.f90
! 388f4a2c8d9995a7ebcf7326f5977a54  gcc/testsuite/gfortran.dg/vect/vect.exp
  5020f9773f3c21b86ac1fe3e513943a0  gcc/testsuite/gfortran.dg/vector_subscript_1.f90
  0833fb55cdacc085a113140aa1d94458  gcc/testsuite/gfortran.dg/vector_subscript_2.f90
  08ce83b9015973faf30ecdfdba12cbd9  gcc/testsuite/gfortran.dg/vector_subscript_3.f90
--- 99953,99965 ----
  85e276d35cb7a8b2c21db0e98b73186b  gcc/testsuite/gfortran.dg/vect/vect-6.f
  c92f16f306f4e92e783e01428ccd23b3  gcc/testsuite/gfortran.dg/vect/vect-7.f90
  46b49fba2ec5f26969cddc20dc871cb3  gcc/testsuite/gfortran.dg/vect/vect-8-epilogue.F90
! 8e4a02252115a0f06d20480f546d8fe1  gcc/testsuite/gfortran.dg/vect/vect-8.f90
  9e3ba50dd73757cc5b6e9d6265e4ff1a  gcc/testsuite/gfortran.dg/vect/vect-9.f90
! e3172873ebcacc53ed7031ec75e9c916  gcc/testsuite/gfortran.dg/vect/vect-alias-check-1.F90
  943be5f26b034cab4a8d80ed72f35e29  gcc/testsuite/gfortran.dg/vect/vect-do-concurrent-1.f90
+ f153623f2b5e969448f7c1a751dd783d  gcc/testsuite/gfortran.dg/vect/vect-early-break_1-pr113808.f90
  51d61a0ffbe2e176d92badb55eaf6889  gcc/testsuite/gfortran.dg/vect/vect-gems.f90
! 3c3819470222c6ceaf097c5083095c91  gcc/testsuite/gfortran.dg/vect/vect.exp
  5020f9773f3c21b86ac1fe3e513943a0  gcc/testsuite/gfortran.dg/vector_subscript_1.f90
  0833fb55cdacc085a113140aa1d94458  gcc/testsuite/gfortran.dg/vector_subscript_2.f90
  08ce83b9015973faf30ecdfdba12cbd9  gcc/testsuite/gfortran.dg/vector_subscript_3.f90
*************** a276e704774544b67f696562f2ca037a  gcc/te
*** 90967,90972 ****
--- 100141,100147 ----
  86f79727a2585651e7f8988e8f2b9b6b  gcc/testsuite/gfortran.dg/zero_sized_10.f90
  c0423f9b0066ce87e8fda46c325b7ca4  gcc/testsuite/gfortran.dg/zero_sized_11.f90
  5ac215a1fd95c4a4b04a0e4caa74e1af  gcc/testsuite/gfortran.dg/zero_sized_12.f90
+ 0237e4d29dbdcfb8914291cfb47e8c0b  gcc/testsuite/gfortran.dg/zero_sized_13.f90
  82cb77b03b04cc723c296fae7e290ae1  gcc/testsuite/gfortran.dg/zero_sized_14.f90
  95d9c7895aef1aaaa375f07d1b28a860  gcc/testsuite/gfortran.dg/zero_sized_15.f90
  0f1a8c7977a278e2a345da387450d769  gcc/testsuite/gfortran.dg/zero_sized_2.f90
*************** b60b1e83048adf872f1f5827680dc3ed  gcc/te
*** 90985,90991 ****
  82775aea043bb1c46d8cb089803279f4  gcc/testsuite/gfortran.fortran-torture/compile/ambig.f90
  1c29630fad991e385f1ac4b63afd3e59  gcc/testsuite/gfortran.fortran-torture/compile/arrayio.f90
  bb59bc612e4ff3905614ceeae7d89150  gcc/testsuite/gfortran.fortran-torture/compile/bergervoet2.f90
! 33820d2e7d010213d5af88004306efc1  gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
  fc5b8a207174c37582b953f18f8271a5  gcc/testsuite/gfortran.fortran-torture/compile/complex_1.f90
  d34063f5c0cc449ee1e78199c2bc37d9  gcc/testsuite/gfortran.fortran-torture/compile/contained_1.f90
  beef214f45f74ba36c7a5a4a3952c926  gcc/testsuite/gfortran.fortran-torture/compile/contained_2.f90
--- 100160,100166 ----
  82775aea043bb1c46d8cb089803279f4  gcc/testsuite/gfortran.fortran-torture/compile/ambig.f90
  1c29630fad991e385f1ac4b63afd3e59  gcc/testsuite/gfortran.fortran-torture/compile/arrayio.f90
  bb59bc612e4ff3905614ceeae7d89150  gcc/testsuite/gfortran.fortran-torture/compile/bergervoet2.f90
! eb398dd43d1d4be25e2e9f07d1c223e4  gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
  fc5b8a207174c37582b953f18f8271a5  gcc/testsuite/gfortran.fortran-torture/compile/complex_1.f90
  d34063f5c0cc449ee1e78199c2bc37d9  gcc/testsuite/gfortran.fortran-torture/compile/contained_1.f90
  beef214f45f74ba36c7a5a4a3952c926  gcc/testsuite/gfortran.fortran-torture/compile/contained_2.f90
*************** b34b25b967cd77639e123317e2df451f  gcc/te
*** 91133,91139 ****
  746215f07864dfaf08683e1db2ac8960  gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90
  39b975ad31741b72a1b9d129fa059ceb  gcc/testsuite/gfortran.fortran-torture/execute/equiv_5.f
  4cbdd3408a64145bd29410441a85f54c  gcc/testsuite/gfortran.fortran-torture/execute/equiv_init_1.f90
! a4eebcbd286a75ce37d6f6e1e7c3b1a1  gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
  afd19f923c3c5e466e7fe619afc1d851  gcc/testsuite/gfortran.fortran-torture/execute/f2_edit_1.f90
  f144f87ad152dd4ece29d0f8c7a9ca87  gcc/testsuite/gfortran.fortran-torture/execute/forall.f90
  b48fbbc2cab88879e5ac6c732a077df4  gcc/testsuite/gfortran.fortran-torture/execute/forall_1.f90
--- 100308,100314 ----
  746215f07864dfaf08683e1db2ac8960  gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90
  39b975ad31741b72a1b9d129fa059ceb  gcc/testsuite/gfortran.fortran-torture/execute/equiv_5.f
  4cbdd3408a64145bd29410441a85f54c  gcc/testsuite/gfortran.fortran-torture/execute/equiv_init_1.f90
! 0949f7baf390a0a7274ad136ff16da80  gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
  afd19f923c3c5e466e7fe619afc1d851  gcc/testsuite/gfortran.fortran-torture/execute/f2_edit_1.f90
  f144f87ad152dd4ece29d0f8c7a9ca87  gcc/testsuite/gfortran.fortran-torture/execute/forall.f90
  b48fbbc2cab88879e5ac6c732a077df4  gcc/testsuite/gfortran.fortran-torture/execute/forall_1.f90
*************** b57cfd51590b8bffaa8a8aed7c85e117  gcc/te
*** 91216,91222 ****
  032ae8d42cc38d24fdd0735b133f40f5  gcc/testsuite/gfortran.fortran-torture/execute/list_read_1.x
  c76802c58f5ae8ab37eed86cbecca38b  gcc/testsuite/gfortran.fortran-torture/execute/logical_select_1.f90
  87afc7b05bb1fb78339cb7c8636a4d23  gcc/testsuite/gfortran.fortran-torture/execute/mainsub.f90
! c7240602f1013e26173c42516c0729fd  gcc/testsuite/gfortran.fortran-torture/execute/math.f90
  df98429cf471868e248286c6a00985a6  gcc/testsuite/gfortran.fortran-torture/execute/module_init_1.f90
  aa3df6f01d468f8fe2f9aa6ab8b989eb  gcc/testsuite/gfortran.fortran-torture/execute/module_interface.f90
  859a627f8f569a8e707b05cefc2ce4dc  gcc/testsuite/gfortran.fortran-torture/execute/module_interface_2.f90
--- 100391,100397 ----
  032ae8d42cc38d24fdd0735b133f40f5  gcc/testsuite/gfortran.fortran-torture/execute/list_read_1.x
  c76802c58f5ae8ab37eed86cbecca38b  gcc/testsuite/gfortran.fortran-torture/execute/logical_select_1.f90
  87afc7b05bb1fb78339cb7c8636a4d23  gcc/testsuite/gfortran.fortran-torture/execute/mainsub.f90
! 6d1c1227dad03dee7e939edafd7e4db0  gcc/testsuite/gfortran.fortran-torture/execute/math.f90
  df98429cf471868e248286c6a00985a6  gcc/testsuite/gfortran.fortran-torture/execute/module_init_1.f90
  aa3df6f01d468f8fe2f9aa6ab8b989eb  gcc/testsuite/gfortran.fortran-torture/execute/module_interface.f90
  859a627f8f569a8e707b05cefc2ce4dc  gcc/testsuite/gfortran.fortran-torture/execute/module_interface_2.f90
*************** b7777c6604106297693e31038efb5ae1  gcc/te
*** 91306,91316 ****
  adc7e9976dd3bb424c92c2d7d3df32ed  gcc/testsuite/gfortran.fortran-torture/execute/where_8.f90
  bc764eca2f460bc6fb657fb675420237  gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90
  eabee42e1a561616023ffd1f4d1a64e2  gcc/testsuite/gfortran.fortran-torture/execute/write_logical.f90
  7588b35298f3665ddfd4976cedb36af8  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.c
! 670047449e486810d72535b7b42cfe5b  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.def
! 08edae530195e26b40c0d17ba1a5848c  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/calling-c-datatypes-unbounded-run-pass.exp
  fe67327073cd1abc9f69e5583cf64c78  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/m.mod
! 9fedbc50a9da9db3d22df8341aa2a671  gcc/testsuite/gm2/case/pass/case-pass.exp
  3d76cb794bc32b3b0b044e00783636c8  gcc/testsuite/gm2/case/pass/testcase1.mod
  1e58a66ba0015168962bdadd0de37017  gcc/testsuite/gm2/case/pass/testcase2.mod
  8bed30c973a862c60e8104463928e9ae  gcc/testsuite/gm2/case/pass/testcase3.mod
--- 100481,100494 ----
  adc7e9976dd3bb424c92c2d7d3df32ed  gcc/testsuite/gfortran.fortran-torture/execute/where_8.f90
  bc764eca2f460bc6fb657fb675420237  gcc/testsuite/gfortran.fortran-torture/execute/write_a_1.f90
  eabee42e1a561616023ffd1f4d1a64e2  gcc/testsuite/gfortran.fortran-torture/execute/write_logical.f90
+ 0fc4e2275fc934ff9e9f8de34217e9df  gcc/testsuite/gm2/builtins/run/pass/builtins-run-pass.exp
+ 08c47fe61e5445678ec71e90bfb4232a  gcc/testsuite/gm2/builtins/run/pass/testcomparisons.mod
+ 27c8297a5772b0ce485698eab4fa01a9  gcc/testsuite/gm2/builtins/run/pass/testisnormal.mod
  7588b35298f3665ddfd4976cedb36af8  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.c
! bd073aacbedd20a8a4a6727bb70d217e  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.def
! 36665df3df647ddc599be3ee5f6b9bd4  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/calling-c-datatypes-unbounded-run-pass.exp
  fe67327073cd1abc9f69e5583cf64c78  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/m.mod
! c85275261911c9ca12636a70aef9ecde  gcc/testsuite/gm2/case/pass/case-pass.exp
  3d76cb794bc32b3b0b044e00783636c8  gcc/testsuite/gm2/case/pass/testcase1.mod
  1e58a66ba0015168962bdadd0de37017  gcc/testsuite/gm2/case/pass/testcase2.mod
  8bed30c973a862c60e8104463928e9ae  gcc/testsuite/gm2/case/pass/testcase3.mod
*************** e49a54c2b13999808b5d01311e9f9b15  gcc/te
*** 91322,91328 ****
  cc95df1776134eba4ad71eb32843594a  gcc/testsuite/gm2/complex/pass/arith4.mod
  c141ca31b357038eb6a4044b26998792  gcc/testsuite/gm2/complex/pass/arith5.mod
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/pass/arith6.mod
! 4f67685907cdef9fa7747bb0c8a1475a  gcc/testsuite/gm2/complex/pass/complex-pass.exp
  a1c7c008142367dc398c50c760a83614  gcc/testsuite/gm2/complex/pass/consts.mod
  14c4b0176192c164863494146b289fb0  gcc/testsuite/gm2/complex/pass/consts2.mod
  3ecc2c345e609c8e9cde330b6211d9a2  gcc/testsuite/gm2/complex/pass/consts3.mod
--- 100500,100506 ----
  cc95df1776134eba4ad71eb32843594a  gcc/testsuite/gm2/complex/pass/arith4.mod
  c141ca31b357038eb6a4044b26998792  gcc/testsuite/gm2/complex/pass/arith5.mod
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/pass/arith6.mod
! 23eec9cb0333ab6226e27a9368546433  gcc/testsuite/gm2/complex/pass/complex-pass.exp
  a1c7c008142367dc398c50c760a83614  gcc/testsuite/gm2/complex/pass/consts.mod
  14c4b0176192c164863494146b289fb0  gcc/testsuite/gm2/complex/pass/consts2.mod
  3ecc2c345e609c8e9cde330b6211d9a2  gcc/testsuite/gm2/complex/pass/consts3.mod
*************** dbc3dbd6b064e1c3403e27b14bb88e9d  gcc/te
*** 91341,91372 ****
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/run/pass/arith6.mod
  cca4ea2150705794b6f66dc505e31741  gcc/testsuite/gm2/complex/run/pass/arith7.mod
  640a53d773d30ed6a165fc0ce89d3137  gcc/testsuite/gm2/complex/run/pass/arith8.mod
! 8aa86335b08fba456ebe89411f73ce5b  gcc/testsuite/gm2/complex/run/pass/complex-run-pass.exp
! 734e9b4651a0052a292b56644113bf74  gcc/testsuite/gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp
  7ff877fbb045b88c74f5a99a6777a3de  gcc/testsuite/gm2/coroutines/pim/run/pass/testiotransfer.mod
  8bd9ea367942a49eaf640de32e64f0ee  gcc/testsuite/gm2/coroutines/pim/run/pass/testtransfer.mod
  d6adcb8a3ecd322645053f435759b3e1  gcc/testsuite/gm2/cpp/fail/another.h
  ad849e5f7ccb276b6be3b793da79a630  gcc/testsuite/gm2/cpp/fail/fail1.mod
  14633206acb34dffbebcd5db43dd7229  gcc/testsuite/gm2/cpp/longcard2.mod
  6ee77d1f3bced323a9c3a5ac371d3edb  gcc/testsuite/gm2/cpp/longstrimp.mod
  cf65d09dda713bbf29dd8228b5d8f1ba  gcc/testsuite/gm2/cpp/pass/arrayhuge.mod
  0efa028fc951d0c2d739c5865ec67f50  gcc/testsuite/gm2/cpp/pass/arrayhuge2.mod
! f3476479b358a088780f3d0d7ee603ac  gcc/testsuite/gm2/cpp/pass/cpp-pass.exp
  2bb9c5476b192255eac634cb22b4a2bf  gcc/testsuite/gm2/cpp/pass/cpp.mod
  34c3368e770f6ca0b338609750a869b0  gcc/testsuite/gm2/cpp/pass/cpph.mod
  92314d1e4981b1a5a30ee32e75e8ae45  gcc/testsuite/gm2/cpp/pass/subaddr.mod
  e84ba33f27196931f4c9df8f91f8dcd8  gcc/testsuite/gm2/cpp/pass/testcpp.mod
  2c96c1eaaf3fbe7bdaddb1891456a34b  gcc/testsuite/gm2/cpp/pass/testcpp2.mod
  c06281a00fcf9225eeab039d3bab8deb  gcc/testsuite/gm2/cpp/setchar2.mod
  e46cfd304772efbdb8aaaa105735a0ce  gcc/testsuite/gm2/cpp/setchar6.mod
! 6cd8f57a9095d9aca66006de08fa6748  gcc/testsuite/gm2/cse/fail/cse-fail.exp
  0b01e3d7bc6e315a8af5f12ba42e44bc  gcc/testsuite/gm2/cse/fail/testcse38.mod
! d27045ec4ebfe4e741d38a2488fd1f0b  gcc/testsuite/gm2/cse/pass/cse-pass.exp
  1c74dc0e36dbbc5a6e89107500fe154b  gcc/testsuite/gm2/cse/pass/m2t.c
  f6a0ca3f9c588ab94a33ea5c826b6db4  gcc/testsuite/gm2/cse/pass/testb.mod
! a31ff6a17bcca1b06eb5e5e64c1f2697  gcc/testsuite/gm2/cse/pass/testbuiltin.def
  2a890abfe4e4089097ab4050a7bf76bd  gcc/testsuite/gm2/cse/pass/testbuiltin.mod
! 4cf5b6ecdc3a6d6f8348bae8a435c4c4  gcc/testsuite/gm2/cse/pass/testcse.def
  6c5692d3d414c808b059de887160d931  gcc/testsuite/gm2/cse/pass/testcse.mod
  0ff84c21d24ef3262e4b3e1d8e575352  gcc/testsuite/gm2/cse/pass/testcse10.mod
  5208d1d005710a3b0ec25d33ef52ee77  gcc/testsuite/gm2/cse/pass/testcse11.mod
--- 100519,100557 ----
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/run/pass/arith6.mod
  cca4ea2150705794b6f66dc505e31741  gcc/testsuite/gm2/complex/run/pass/arith7.mod
  640a53d773d30ed6a165fc0ce89d3137  gcc/testsuite/gm2/complex/run/pass/arith8.mod
! 3dd57189cfa8c9818dbda8705db6fb2d  gcc/testsuite/gm2/complex/run/pass/complex-run-pass.exp
! c174fbcde8eeeac29bf10c9f164db8de  gcc/testsuite/gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp
  7ff877fbb045b88c74f5a99a6777a3de  gcc/testsuite/gm2/coroutines/pim/run/pass/testiotransfer.mod
  8bd9ea367942a49eaf640de32e64f0ee  gcc/testsuite/gm2/coroutines/pim/run/pass/testtransfer.mod
+ bf300a3d33176ed75d2954f505a36964  gcc/testsuite/gm2/cpp/default/pass/AdvParse.def
+ 52da0e810a8317dc08f376b2f43d42b2  gcc/testsuite/gm2/cpp/default/pass/AdvParse.mod
+ 150840a4f252e10549e6fe86c2223ae6  gcc/testsuite/gm2/cpp/default/pass/cpp-default-pass.exp
  d6adcb8a3ecd322645053f435759b3e1  gcc/testsuite/gm2/cpp/fail/another.h
+ 041e6c90a48f5d6a1f7d3874e66a4f62  gcc/testsuite/gm2/cpp/fail/cpp-fail.exp
  ad849e5f7ccb276b6be3b793da79a630  gcc/testsuite/gm2/cpp/fail/fail1.mod
+ e1ca93bb3583f891bc978bc57373eb69  gcc/testsuite/gm2/cpp/fail/foocpp.mod
+ 7c72a261103a15017ee87731f3ce3192  gcc/testsuite/gm2/cpp/fail/hashfirstcolumn2.mod
  14633206acb34dffbebcd5db43dd7229  gcc/testsuite/gm2/cpp/longcard2.mod
  6ee77d1f3bced323a9c3a5ac371d3edb  gcc/testsuite/gm2/cpp/longstrimp.mod
  cf65d09dda713bbf29dd8228b5d8f1ba  gcc/testsuite/gm2/cpp/pass/arrayhuge.mod
  0efa028fc951d0c2d739c5865ec67f50  gcc/testsuite/gm2/cpp/pass/arrayhuge2.mod
! 6e0bf642325d0cd333c42f7d3b98c90c  gcc/testsuite/gm2/cpp/pass/cpp-pass.exp
  2bb9c5476b192255eac634cb22b4a2bf  gcc/testsuite/gm2/cpp/pass/cpp.mod
  34c3368e770f6ca0b338609750a869b0  gcc/testsuite/gm2/cpp/pass/cpph.mod
  92314d1e4981b1a5a30ee32e75e8ae45  gcc/testsuite/gm2/cpp/pass/subaddr.mod
  e84ba33f27196931f4c9df8f91f8dcd8  gcc/testsuite/gm2/cpp/pass/testcpp.mod
  2c96c1eaaf3fbe7bdaddb1891456a34b  gcc/testsuite/gm2/cpp/pass/testcpp2.mod
+ 5ef1095727e696ab9baedcdb557ac534  gcc/testsuite/gm2/cpp/pass/testlong4.mod
  c06281a00fcf9225eeab039d3bab8deb  gcc/testsuite/gm2/cpp/setchar2.mod
  e46cfd304772efbdb8aaaa105735a0ce  gcc/testsuite/gm2/cpp/setchar6.mod
! 6eae03242725652788753bd76dd77ca2  gcc/testsuite/gm2/cse/fail/cse-fail.exp
  0b01e3d7bc6e315a8af5f12ba42e44bc  gcc/testsuite/gm2/cse/fail/testcse38.mod
! 25e3ae855741d5ba954e59564cf96fb9  gcc/testsuite/gm2/cse/pass/cse-pass.exp
  1c74dc0e36dbbc5a6e89107500fe154b  gcc/testsuite/gm2/cse/pass/m2t.c
  f6a0ca3f9c588ab94a33ea5c826b6db4  gcc/testsuite/gm2/cse/pass/testb.mod
! 3c5cbbe69600b216d0f06485e8bb5c7a  gcc/testsuite/gm2/cse/pass/testbuiltin.def
  2a890abfe4e4089097ab4050a7bf76bd  gcc/testsuite/gm2/cse/pass/testbuiltin.mod
! 40b69d2936e09a060871c8877495b7c8  gcc/testsuite/gm2/cse/pass/testcse.def
  6c5692d3d414c808b059de887160d931  gcc/testsuite/gm2/cse/pass/testcse.mod
  0ff84c21d24ef3262e4b3e1d8e575352  gcc/testsuite/gm2/cse/pass/testcse10.mod
  5208d1d005710a3b0ec25d33ef52ee77  gcc/testsuite/gm2/cse/pass/testcse11.mod
*************** d126cf9f66b747111b852992e95d06c6  gcc/te
*** 91412,91424 ****
  b37a68e352a1ba44f56085db993e889e  gcc/testsuite/gm2/cse/pass/testcse49.mod
  18b2ed6c5d23cd40adba92138f147f2a  gcc/testsuite/gm2/cse/pass/testcse5.c
  fcbe40c5a0ec515e75bf5de944218c14  gcc/testsuite/gm2/cse/pass/testcse5.mod
! 602050dcf01c30833e747a405694cafe  gcc/testsuite/gm2/cse/pass/testcse50.def
  554574aac3e8e3b152685f5779a212d2  gcc/testsuite/gm2/cse/pass/testcse50.mod
  94447b3f9a412bef7c25a8e23c897b26  gcc/testsuite/gm2/cse/pass/testcse51.mod
! 2103e5fc06f7d8a4a6bd416e8ec55031  gcc/testsuite/gm2/cse/pass/testcse52.def
  e53ab184e1fbdc30838f0344eabeb02e  gcc/testsuite/gm2/cse/pass/testcse52.mod
! 0c1aedddcb8126fea5316d60680c5a89  gcc/testsuite/gm2/cse/pass/testcse53.def
  2c8acb92e973007def32299593c3b110  gcc/testsuite/gm2/cse/pass/testcse53.mod
  857632b3fb00a38fbf4f3ebd6edd40fe  gcc/testsuite/gm2/cse/pass/testcse6.c
  ab208f9b74a325c0b9c7e9c6d1ddd282  gcc/testsuite/gm2/cse/pass/testcse6.mod
  d44a75df2a0cb7cc41e70a4e02010e8e  gcc/testsuite/gm2/cse/pass/testcse7.c
--- 100597,100610 ----
  b37a68e352a1ba44f56085db993e889e  gcc/testsuite/gm2/cse/pass/testcse49.mod
  18b2ed6c5d23cd40adba92138f147f2a  gcc/testsuite/gm2/cse/pass/testcse5.c
  fcbe40c5a0ec515e75bf5de944218c14  gcc/testsuite/gm2/cse/pass/testcse5.mod
! aa4ed72139371d63f700714099832f63  gcc/testsuite/gm2/cse/pass/testcse50.def
  554574aac3e8e3b152685f5779a212d2  gcc/testsuite/gm2/cse/pass/testcse50.mod
  94447b3f9a412bef7c25a8e23c897b26  gcc/testsuite/gm2/cse/pass/testcse51.mod
! 6374c32ca50949a663d449d379807632  gcc/testsuite/gm2/cse/pass/testcse52.def
  e53ab184e1fbdc30838f0344eabeb02e  gcc/testsuite/gm2/cse/pass/testcse52.mod
! 43735c8108918706265e5fdf536f4b31  gcc/testsuite/gm2/cse/pass/testcse53.def
  2c8acb92e973007def32299593c3b110  gcc/testsuite/gm2/cse/pass/testcse53.mod
+ 159193dd3b073be5b7f2fadef1873f60  gcc/testsuite/gm2/cse/pass/testcse54.mod
  857632b3fb00a38fbf4f3ebd6edd40fe  gcc/testsuite/gm2/cse/pass/testcse6.c
  ab208f9b74a325c0b9c7e9c6d1ddd282  gcc/testsuite/gm2/cse/pass/testcse6.mod
  d44a75df2a0cb7cc41e70a4e02010e8e  gcc/testsuite/gm2/cse/pass/testcse7.c
*************** a1bc131f5d55e613c1f8bbbda43fe51e  gcc/te
*** 91428,91434 ****
  3e451550ca1bd860854772690e42ac33  gcc/testsuite/gm2/cse/pass/testcse9.c
  432517d8243f4e378c79ed1e3ba18795  gcc/testsuite/gm2/cse/pass/testsize.mod
  0510433e35c0c6ead54c427e60a0608f  gcc/testsuite/gm2/dynamic/pass/add.mod
! 7d5b64f984852e651626503ffb438111  gcc/testsuite/gm2/dynamic/pass/dynamic-pass.exp
  bc934d035a84d131e8594035c39af71d  gcc/testsuite/gm2/dynamic/pass/prog21.mod
  0b9578b4d7a637e809221dcb02396e71  gcc/testsuite/gm2/dynamic/pass/testarray.mod
  6a569c608c5f3e86bd6abb40a6dd2f7c  gcc/testsuite/gm2/dynamic/pass/testarray2.mod
--- 100614,100620 ----
  3e451550ca1bd860854772690e42ac33  gcc/testsuite/gm2/cse/pass/testcse9.c
  432517d8243f4e378c79ed1e3ba18795  gcc/testsuite/gm2/cse/pass/testsize.mod
  0510433e35c0c6ead54c427e60a0608f  gcc/testsuite/gm2/dynamic/pass/add.mod
! 2692fac3bc9c5a31f980f4f793c7c8d6  gcc/testsuite/gm2/dynamic/pass/dynamic-pass.exp
  bc934d035a84d131e8594035c39af71d  gcc/testsuite/gm2/dynamic/pass/prog21.mod
  0b9578b4d7a637e809221dcb02396e71  gcc/testsuite/gm2/dynamic/pass/testarray.mod
  6a569c608c5f3e86bd6abb40a6dd2f7c  gcc/testsuite/gm2/dynamic/pass/testarray2.mod
*************** d43afca017b45e72be4ea8a800632a4a  gcc/te
*** 91505,91511 ****
  fd74cb161932e961aeee3f3424fc7dff  gcc/testsuite/gm2/dynamic/pass/testparam2.mod
  1f1adbd8785d1b11b5e5c6fd59878eaf  gcc/testsuite/gm2/dynamic/pass/testproc.mod
  916d253edf0216aa6a05a3013d95f80e  gcc/testsuite/gm2/dynamic/pass/testproc2.c
! b48e246f82f8d4ea6d217db09efdd17c  gcc/testsuite/gm2/dynamic/pass/testproc2.def
  a0ac250f3ddffe710e261842f3f12dd6  gcc/testsuite/gm2/dynamic/pass/testproc2.mod
  21a4a2c206414af553e98c022009eb2d  gcc/testsuite/gm2/dynamic/pass/testscn.mod
  e40e4c2f2945b2615578dee16782098f  gcc/testsuite/gm2/dynamic/pass/testset.mod
--- 100691,100697 ----
  fd74cb161932e961aeee3f3424fc7dff  gcc/testsuite/gm2/dynamic/pass/testparam2.mod
  1f1adbd8785d1b11b5e5c6fd59878eaf  gcc/testsuite/gm2/dynamic/pass/testproc.mod
  916d253edf0216aa6a05a3013d95f80e  gcc/testsuite/gm2/dynamic/pass/testproc2.c
! f99980783cafeb637d695713aba7caa6  gcc/testsuite/gm2/dynamic/pass/testproc2.def
  a0ac250f3ddffe710e261842f3f12dd6  gcc/testsuite/gm2/dynamic/pass/testproc2.mod
  21a4a2c206414af553e98c022009eb2d  gcc/testsuite/gm2/dynamic/pass/testscn.mod
  e40e4c2f2945b2615578dee16782098f  gcc/testsuite/gm2/dynamic/pass/testset.mod
*************** c253b4767f3b033edf55e83189021cb5  gcc/te
*** 91519,91530 ****
  3028b5ea514299b7b507faed98474ac4  gcc/testsuite/gm2/dynamic/pass/testwith.mod
  1d1918c66dc6092a319002631fb176bd  gcc/testsuite/gm2/dynamic/pass/testzero.mod
  8ca370572635d09208363a548175c222  gcc/testsuite/gm2/dynamic/pass/wc.mod
! e89398b9451cbbf6acac8357112be31c  gcc/testsuite/gm2/embedded/pass/embedded-pass.exp
  267288255a37d2ed1aec5085cc95cc27  gcc/testsuite/gm2/embedded/pass/varataddress.mod
  d6faec56a77a81badbef07619cac4623  gcc/testsuite/gm2/embedded/pass/varataddress1.mod
  e9a2009d44fdbd3ac42d7b6cb091fe43  gcc/testsuite/gm2/embedded/pass/varataddress2.mod
  45d007240ca856abf7290af776bc5a3e  gcc/testsuite/gm2/embedded/pass/varataddress3.mod
  72cdcb20fb0bc304b6450b4687e2c716  gcc/testsuite/gm2/errors/fail/array1.mod
  4b934d4c7b65834470d0b4d42b1d55a4  gcc/testsuite/gm2/errors/fail/badexpr.mod
  604ba73cefe9cef918e32fc0a4222473  gcc/testsuite/gm2/errors/fail/badfor.mod
  5df468079bdaff39ae193d84b106a403  gcc/testsuite/gm2/errors/fail/badhigh.mod
--- 100705,100718 ----
  3028b5ea514299b7b507faed98474ac4  gcc/testsuite/gm2/dynamic/pass/testwith.mod
  1d1918c66dc6092a319002631fb176bd  gcc/testsuite/gm2/dynamic/pass/testzero.mod
  8ca370572635d09208363a548175c222  gcc/testsuite/gm2/dynamic/pass/wc.mod
! 6eee53408332b7da3deb81fdd8b396f9  gcc/testsuite/gm2/embedded/pass/embedded-pass.exp
  267288255a37d2ed1aec5085cc95cc27  gcc/testsuite/gm2/embedded/pass/varataddress.mod
  d6faec56a77a81badbef07619cac4623  gcc/testsuite/gm2/embedded/pass/varataddress1.mod
  e9a2009d44fdbd3ac42d7b6cb091fe43  gcc/testsuite/gm2/embedded/pass/varataddress2.mod
  45d007240ca856abf7290af776bc5a3e  gcc/testsuite/gm2/embedded/pass/varataddress3.mod
  72cdcb20fb0bc304b6450b4687e2c716  gcc/testsuite/gm2/errors/fail/array1.mod
+ 6d0f8deec5adfc5c2125e7c8d2a415d3  gcc/testsuite/gm2/errors/fail/badabs.mod
+ 05d2a716595855b76c013e8a190bca43  gcc/testsuite/gm2/errors/fail/badenum.mod
  4b934d4c7b65834470d0b4d42b1d55a4  gcc/testsuite/gm2/errors/fail/badexpr.mod
  604ba73cefe9cef918e32fc0a4222473  gcc/testsuite/gm2/errors/fail/badfor.mod
  5df468079bdaff39ae193d84b106a403  gcc/testsuite/gm2/errors/fail/badhigh.mod
*************** e9bb4f2b34ca31f67cf64ba38c53e4ed  gcc/te
*** 91534,91540 ****
  a1ff75d5b3074c746e2e507afe7cacb7  gcc/testsuite/gm2/errors/fail/binarygeneric.mod
  daa7df11be2555fd40053e562964a10b  gcc/testsuite/gm2/errors/fail/binarygenericconst.mod
  5f0ba02dc58adc7420e4178eb32a14db  gcc/testsuite/gm2/errors/fail/end.mod
! 40f95e2d9fec7a5a4aa83d76ac6b8469  gcc/testsuite/gm2/errors/fail/errors-fail.exp
  900098bebf32f55567a5c8080781e0a5  gcc/testsuite/gm2/errors/fail/mismatched.mod
  05f00bc56eeebe8fa0a738fa8185223a  gcc/testsuite/gm2/errors/fail/mismatchedproc.mod
  fe33a7eb655943ceb5d7c7e0cd172516  gcc/testsuite/gm2/errors/fail/nestedproc4.mod
--- 100722,100728 ----
  a1ff75d5b3074c746e2e507afe7cacb7  gcc/testsuite/gm2/errors/fail/binarygeneric.mod
  daa7df11be2555fd40053e562964a10b  gcc/testsuite/gm2/errors/fail/binarygenericconst.mod
  5f0ba02dc58adc7420e4178eb32a14db  gcc/testsuite/gm2/errors/fail/end.mod
! e0e56823c80f94e16838fd565d5a8a8e  gcc/testsuite/gm2/errors/fail/errors-fail.exp
  900098bebf32f55567a5c8080781e0a5  gcc/testsuite/gm2/errors/fail/mismatched.mod
  05f00bc56eeebe8fa0a738fa8185223a  gcc/testsuite/gm2/errors/fail/mismatchedproc.mod
  fe33a7eb655943ceb5d7c7e0cd172516  gcc/testsuite/gm2/errors/fail/nestedproc4.mod
*************** a6bc643db8b638307100a87e854fb7e3  gcc/te
*** 91559,91565 ****
  9e408a4d57d5234f441dcfcf5d115bc5  gcc/testsuite/gm2/errors/fail/testexp.mod
  b316e865a35608a72c86519eed2c2b9b  gcc/testsuite/gm2/errors/fail/testfio.mod
  8b6650ef557295365b031a6e64c5517a  gcc/testsuite/gm2/errors/fail/testimport.mod
! ea719b9ab573d62560575dc855573b99  gcc/testsuite/gm2/errors/fail/testimport2.def
  ba6253c834bc64e8ff18c7f480c3366c  gcc/testsuite/gm2/errors/fail/testimport2.mod
  9c3a81391542664336e249daea04cc03  gcc/testsuite/gm2/errors/fail/testinit.mod
  5c2af1fbd1d7668c61d4310e32bc7213  gcc/testsuite/gm2/errors/fail/testmodule.mod
--- 100747,100753 ----
  9e408a4d57d5234f441dcfcf5d115bc5  gcc/testsuite/gm2/errors/fail/testexp.mod
  b316e865a35608a72c86519eed2c2b9b  gcc/testsuite/gm2/errors/fail/testfio.mod
  8b6650ef557295365b031a6e64c5517a  gcc/testsuite/gm2/errors/fail/testimport.mod
! 93b05e910e211151a58a2250b2863b42  gcc/testsuite/gm2/errors/fail/testimport2.def
  ba6253c834bc64e8ff18c7f480c3366c  gcc/testsuite/gm2/errors/fail/testimport2.mod
  9c3a81391542664336e249daea04cc03  gcc/testsuite/gm2/errors/fail/testinit.mod
  5c2af1fbd1d7668c61d4310e32bc7213  gcc/testsuite/gm2/errors/fail/testmodule.mod
*************** f4786048f6d3d7fad5cf09b27b332f20  gcc/te
*** 91582,91652 ****
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/errors/options
  f782465b24a5c28876d1e145d32d4e6d  gcc/testsuite/gm2/errors/testchar.mod
  4fcab4c7c6702b981524ecfe52bc63ea  gcc/testsuite/gm2/errors/testsub2.mod
! 91337df885ce744116120bc5e9011586  gcc/testsuite/gm2/examples/callingC/pass/examples-callingC-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/pass/hello.mod
! 5c9f55a29388794be1501bba2fdfe929  gcc/testsuite/gm2/examples/callingC/pass/libprintf.def
  6e696af32835a08458b941ee9c14701d  gcc/testsuite/gm2/examples/callingC/run/pass/c.c
! d8c7622d5e442f7f03150ba200854d4d  gcc/testsuite/gm2/examples/callingC/run/pass/c.def
! 1e9f91663e47b19a91ca8a0a3a586951  gcc/testsuite/gm2/examples/callingC/run/pass/examples-callingC-run-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/run/pass/hello.mod
! 5c9f55a29388794be1501bba2fdfe929  gcc/testsuite/gm2/examples/callingC/run/pass/libprintf.def
  9b1ea64716f9741f93057ecf55e5651c  gcc/testsuite/gm2/examples/callingC/run/pass/m.mod
! b8dbba1147e9f58ffb32bee2052ada46  gcc/testsuite/gm2/examples/cpp/pass/examples-cpp-pass.exp
  c79f3fc8141103ba51b9920fbba67f2d  gcc/testsuite/gm2/examples/cpp/pass/hello.mod
! ab49de0e8ddc7e0ab0477211d762e082  gcc/testsuite/gm2/examples/cppDef/pass/a.def
  366e2fe9e96671a8c08f36599adb0704  gcc/testsuite/gm2/examples/cppDef/pass/a.mod
  1cf0dd48d4f207bfc91ff4f54931c47b  gcc/testsuite/gm2/examples/cppDef/pass/b.mod
! 3602fb0ba059e7d52aa10ae7309ecfdf  gcc/testsuite/gm2/examples/cppDef/pass/examples-cppDef-pass.exp
! 5c9f55a29388794be1501bba2fdfe929  gcc/testsuite/gm2/examples/cppDef/pass/libprintf.def
! 71b37f36a9159d29d52300b0494bae82  gcc/testsuite/gm2/examples/hello/pass/examples-hello-pass.exp
  005a4f8e755fd4bc126cc939a5219fb4  gcc/testsuite/gm2/examples/hello/pass/hello.mod
! 81d3ea2e338afe8dceab45203db9622b  gcc/testsuite/gm2/examples/map/pass/AdvMap.def
  ce5c06dd8ccd4257094b6d7fe0f6636f  gcc/testsuite/gm2/examples/map/pass/AdvMap.mod
! 132183f754d393a1032979d5f4970193  gcc/testsuite/gm2/examples/map/pass/BoxMap.def
  7387b893fd77937cb206a439869baee0  gcc/testsuite/gm2/examples/map/pass/BoxMap.mod
! 5d37d89391fba42f8b461bdf29f3f738  gcc/testsuite/gm2/examples/map/pass/Chance.def
  1897fd7e181b9490c5df1b90b27bde34  gcc/testsuite/gm2/examples/map/pass/Chance.mod
! 4b0ddc0d958bf5d8eacfe1f4ee0f2624  gcc/testsuite/gm2/examples/map/pass/Find.def
  217f7bc3d46176754d27ca8de06253b9  gcc/testsuite/gm2/examples/map/pass/Find.mod
! 7e63353986745a1d3892c26595e4faa7  gcc/testsuite/gm2/examples/map/pass/Geometry.def
  bf7c8164c2fac2b572b4e67c2edb96e7  gcc/testsuite/gm2/examples/map/pass/Geometry.mod
! ee003131be811a336fa65dc2fa8b5c2b  gcc/testsuite/gm2/examples/map/pass/MakeBoxes.def
  24844161485fcadd8e10b1e41c42e95b  gcc/testsuite/gm2/examples/map/pass/MakeBoxes.mod
  cd717f331a7e946aa6f0e8f0eb78b2e8  gcc/testsuite/gm2/examples/map/pass/Map.mod
! 7a15faf904896bf55f339ba4e53519b2  gcc/testsuite/gm2/examples/map/pass/RoomMap.def
  dd78b0b91ea971eb655fa1c1c16f7291  gcc/testsuite/gm2/examples/map/pass/RoomMap.mod
  65336e80e9ce9fcffd4160b2650e2dfa  gcc/testsuite/gm2/examples/map/pass/Semantic.mod
! da6ab92fd3dd620c63d62943c3a5812a  gcc/testsuite/gm2/examples/map/pass/StoreCoord.def
  623b87a418f18dba104d8f3f8415b70a  gcc/testsuite/gm2/examples/map/pass/StoreCoord.mod
! da6ab92fd3dd620c63d62943c3a5812a  gcc/testsuite/gm2/examples/map/pass/StoreCoords.def
  0f3582d823dac9d70750d368064dd135  gcc/testsuite/gm2/examples/map/pass/StoreCoords.mod
! 5faa42161d1564be2fbac0ac5107287f  gcc/testsuite/gm2/examples/map/pass/WriteMap.def
  984f2435f042117e1d11b236495373b5  gcc/testsuite/gm2/examples/map/pass/WriteMap.mod
! bd874dae172d98b5dbb76c23c457deef  gcc/testsuite/gm2/examples/map/pass/examples-map-pass.exp
  d9ff47dd8bc5f7a97c16830d1806dfba  gcc/testsuite/gm2/examples/map/pass/makemaps
  e2aa9e881a9075b60e3169174fc95dc2  gcc/testsuite/gm2/examples/map/pass/testch2.mod
  f976d784ff45c10d3377643aef37fd94  gcc/testsuite/gm2/examples/map/pass/testchan.mod
  4f1882f985c86c27fe597cb09425c95f  gcc/testsuite/gm2/examples/map/pass/testcoor.mod
  1903f0a502ca11b964d27261e5b3fa05  gcc/testsuite/gm2/examples/map/pass/testmaps
  b47fc3bae5ff9546e05302b29c9f28b4  gcc/testsuite/gm2/exceptions/run/pass/cpp.cpp
! 0d4c2240d44711287362bbfa2b9c58ba  gcc/testsuite/gm2/exceptions/run/pass/cpp.def
! 162da730df28a6d67e3709da1fb797d8  gcc/testsuite/gm2/exceptions/run/pass/exceptions-run-pass.exp
  5dfbb5b9b594bdca8adb56dfdeeef1e0  gcc/testsuite/gm2/exceptions/run/pass/libexcept.mod
! a0ccef882546315d1efff7d610ac9876  gcc/testsuite/gm2/exceptions/run/pass/m2test.def
  60f35975489507b9e88065f7c2133491  gcc/testsuite/gm2/exceptions/run/pass/m2test.mod
! 9403a38fc40cf67492a5689d016409c1  gcc/testsuite/gm2/exceptions/run/pass/mycpp.cpp
! e922016cce09163608fcd19b3f6574e5  gcc/testsuite/gm2/exceptions/run/pass/mycpp.def
  a8136cdc04cc8b9ee85754bb8cb08606  gcc/testsuite/gm2/exceptions/run/pass/mym2.mod
  1d60661b2177000cd107e28eecf48a91  gcc/testsuite/gm2/exceptions/run/pass/mym2a.mod
  a077c5772713ae8df581262f31eb41b6  gcc/testsuite/gm2/extensions/pass/align.mod
  96abb4f2cd136d007d8d37ecbbbee744  gcc/testsuite/gm2/extensions/pass/align2.mod
  00d60d08e77e65820b6a58dd0a771ce8  gcc/testsuite/gm2/extensions/pass/card16p.mod
  9491f86bae3539bf7aff50dbf150c453  gcc/testsuite/gm2/extensions/pass/card32p.mod
  b06499ceaf68b189d8f06e4bc8f091b8  gcc/testsuite/gm2/extensions/pass/card64p.mod
  2f1c96969b039c40234d659c3df8f3b2  gcc/testsuite/gm2/extensions/pass/card8p.mod
! 0118dec7aa9255411638430881c71af1  gcc/testsuite/gm2/extensions/pass/co.def
  d159d4a216d3d0b11a27343572db5b4a  gcc/testsuite/gm2/extensions/pass/co.mod
! 2cd98b49b9157043504f0cfab4defeff  gcc/testsuite/gm2/extensions/pass/extensions-pass.exp
  b7f24156130b98e9254d039e04c3dce7  gcc/testsuite/gm2/extensions/pass/frame.mod
  2ba2a8a3162818fa4b3005cdc8c8c8ce  gcc/testsuite/gm2/extensions/pass/hello.mod
  d94cf268405f6d781cf76011c4f44b8d  gcc/testsuite/gm2/extensions/pass/int16p.mod
--- 100770,100850 ----
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/errors/options
  f782465b24a5c28876d1e145d32d4e6d  gcc/testsuite/gm2/errors/testchar.mod
  4fcab4c7c6702b981524ecfe52bc63ea  gcc/testsuite/gm2/errors/testsub2.mod
! 46879778c98eb31981db92e05a778c65  gcc/testsuite/gm2/examples/callingC/pass/examples-callingC-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/pass/hello.mod
! 56e421f2ed5e7390734548401ce1b09c  gcc/testsuite/gm2/examples/callingC/pass/libprintf.def
  6e696af32835a08458b941ee9c14701d  gcc/testsuite/gm2/examples/callingC/run/pass/c.c
! c138a70d8f569ec177e1adf964eccbbc  gcc/testsuite/gm2/examples/callingC/run/pass/c.def
! a58ada7384891b7fa48d4cd2cf800beb  gcc/testsuite/gm2/examples/callingC/run/pass/examples-callingC-run-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/run/pass/hello.mod
! 56e421f2ed5e7390734548401ce1b09c  gcc/testsuite/gm2/examples/callingC/run/pass/libprintf.def
  9b1ea64716f9741f93057ecf55e5651c  gcc/testsuite/gm2/examples/callingC/run/pass/m.mod
! fe2af6711160d96c51e475fe19788980  gcc/testsuite/gm2/examples/cpp/pass/examples-cpp-pass.exp
  c79f3fc8141103ba51b9920fbba67f2d  gcc/testsuite/gm2/examples/cpp/pass/hello.mod
! e7f1ffae64d688e6ff56f02740a20b3d  gcc/testsuite/gm2/examples/cppDef/pass/a.def
  366e2fe9e96671a8c08f36599adb0704  gcc/testsuite/gm2/examples/cppDef/pass/a.mod
  1cf0dd48d4f207bfc91ff4f54931c47b  gcc/testsuite/gm2/examples/cppDef/pass/b.mod
! df6874d89bfea369b69d6f9f5f7b7bf2  gcc/testsuite/gm2/examples/cppDef/pass/examples-cppDef-pass.exp
! 56e421f2ed5e7390734548401ce1b09c  gcc/testsuite/gm2/examples/cppDef/pass/libprintf.def
! 6bbb1cdd4490fcb41420834f23ee37a1  gcc/testsuite/gm2/examples/hello/pass/examples-hello-pass.exp
  005a4f8e755fd4bc126cc939a5219fb4  gcc/testsuite/gm2/examples/hello/pass/hello.mod
! 5256275d1db04b496b118c3a9bdf3a65  gcc/testsuite/gm2/examples/map/pass/AdvMap.def
  ce5c06dd8ccd4257094b6d7fe0f6636f  gcc/testsuite/gm2/examples/map/pass/AdvMap.mod
! 2a55165d4cc374a5e09923f169deece5  gcc/testsuite/gm2/examples/map/pass/BoxMap.def
  7387b893fd77937cb206a439869baee0  gcc/testsuite/gm2/examples/map/pass/BoxMap.mod
! b6a6f833e99cbb038d72e25f8251afea  gcc/testsuite/gm2/examples/map/pass/Chance.def
  1897fd7e181b9490c5df1b90b27bde34  gcc/testsuite/gm2/examples/map/pass/Chance.mod
! 3cae11dc63eed66ca1e033aa924c779f  gcc/testsuite/gm2/examples/map/pass/Find.def
  217f7bc3d46176754d27ca8de06253b9  gcc/testsuite/gm2/examples/map/pass/Find.mod
! d3ca7e7d04088ce9a68693bcc2049c61  gcc/testsuite/gm2/examples/map/pass/Geometry.def
  bf7c8164c2fac2b572b4e67c2edb96e7  gcc/testsuite/gm2/examples/map/pass/Geometry.mod
! 8418c7a74999ab2bc979681a6ee0249b  gcc/testsuite/gm2/examples/map/pass/MakeBoxes.def
  24844161485fcadd8e10b1e41c42e95b  gcc/testsuite/gm2/examples/map/pass/MakeBoxes.mod
  cd717f331a7e946aa6f0e8f0eb78b2e8  gcc/testsuite/gm2/examples/map/pass/Map.mod
! 05cbb2e2538f4ed435675c22edcd7472  gcc/testsuite/gm2/examples/map/pass/RoomMap.def
  dd78b0b91ea971eb655fa1c1c16f7291  gcc/testsuite/gm2/examples/map/pass/RoomMap.mod
  65336e80e9ce9fcffd4160b2650e2dfa  gcc/testsuite/gm2/examples/map/pass/Semantic.mod
! 7fbe0fa7f0b345014f4016dc646579eb  gcc/testsuite/gm2/examples/map/pass/StoreCoord.def
  623b87a418f18dba104d8f3f8415b70a  gcc/testsuite/gm2/examples/map/pass/StoreCoord.mod
! 7fbe0fa7f0b345014f4016dc646579eb  gcc/testsuite/gm2/examples/map/pass/StoreCoords.def
  0f3582d823dac9d70750d368064dd135  gcc/testsuite/gm2/examples/map/pass/StoreCoords.mod
! 5d6e66c1f816c878ad7bedbd361e3cb2  gcc/testsuite/gm2/examples/map/pass/WriteMap.def
  984f2435f042117e1d11b236495373b5  gcc/testsuite/gm2/examples/map/pass/WriteMap.mod
! dc11839964cdc0fc2f0efa649c642df4  gcc/testsuite/gm2/examples/map/pass/examples-map-pass.exp
  d9ff47dd8bc5f7a97c16830d1806dfba  gcc/testsuite/gm2/examples/map/pass/makemaps
  e2aa9e881a9075b60e3169174fc95dc2  gcc/testsuite/gm2/examples/map/pass/testch2.mod
  f976d784ff45c10d3377643aef37fd94  gcc/testsuite/gm2/examples/map/pass/testchan.mod
  4f1882f985c86c27fe597cb09425c95f  gcc/testsuite/gm2/examples/map/pass/testcoor.mod
  1903f0a502ca11b964d27261e5b3fa05  gcc/testsuite/gm2/examples/map/pass/testmaps
  b47fc3bae5ff9546e05302b29c9f28b4  gcc/testsuite/gm2/exceptions/run/pass/cpp.cpp
! cab3297e020c59ffd9bf905ea1c3d648  gcc/testsuite/gm2/exceptions/run/pass/cpp.def
! 9ddd2682119e00731432a071ccf532f0  gcc/testsuite/gm2/exceptions/run/pass/exceptions-run-pass.exp
  5dfbb5b9b594bdca8adb56dfdeeef1e0  gcc/testsuite/gm2/exceptions/run/pass/libexcept.mod
! a36b7b56becea741154b4bf37220da65  gcc/testsuite/gm2/exceptions/run/pass/m2test.def
  60f35975489507b9e88065f7c2133491  gcc/testsuite/gm2/exceptions/run/pass/m2test.mod
! 7d2fe9d8d6782b28788f0464ca0d952b  gcc/testsuite/gm2/exceptions/run/pass/mycpp.cpp
! 35119dd8c0bbca87a8f40be52f49119d  gcc/testsuite/gm2/exceptions/run/pass/mycpp.def
  a8136cdc04cc8b9ee85754bb8cb08606  gcc/testsuite/gm2/exceptions/run/pass/mym2.mod
  1d60661b2177000cd107e28eecf48a91  gcc/testsuite/gm2/exceptions/run/pass/mym2a.mod
+ 8dbb790910ba9d03690f9615923cf999  gcc/testsuite/gm2/extensions/asm/fail/extensions-asm-fail.exp
+ 66d869d3a212a05904024189be0caeeb  gcc/testsuite/gm2/extensions/asm/fail/stressreturn.mod
+ 943b09a491ce6bbff0f57384073c72b4  gcc/testsuite/gm2/extensions/asm/pass/extensions-asm-pass.exp
+ 93e20b4d7415ef76dce2ab514fb459e9  gcc/testsuite/gm2/extensions/asm/pass/fooasm.mod
+ 662a756773d81f4596b650a8a701e433  gcc/testsuite/gm2/extensions/fail/arith1.mod
+ 6e4da88b27ad6563953f67d1238e29d5  gcc/testsuite/gm2/extensions/fail/arith2.mod
+ 6a234790cd0976c71497c3dda9083f74  gcc/testsuite/gm2/extensions/fail/arith3.mod
+ 0e96d34ba2e88c691c3768f33a0bc2fe  gcc/testsuite/gm2/extensions/fail/arith4.mod
+ 35717052f7f93be57eefedd8b8fc82a6  gcc/testsuite/gm2/extensions/fail/arithpromote.mod
+ f7eb1f20f1d6838dcb7bd6525f5dbbc0  gcc/testsuite/gm2/extensions/fail/extensions-fail.exp
  a077c5772713ae8df581262f31eb41b6  gcc/testsuite/gm2/extensions/pass/align.mod
  96abb4f2cd136d007d8d37ecbbbee744  gcc/testsuite/gm2/extensions/pass/align2.mod
  00d60d08e77e65820b6a58dd0a771ce8  gcc/testsuite/gm2/extensions/pass/card16p.mod
  9491f86bae3539bf7aff50dbf150c453  gcc/testsuite/gm2/extensions/pass/card32p.mod
  b06499ceaf68b189d8f06e4bc8f091b8  gcc/testsuite/gm2/extensions/pass/card64p.mod
  2f1c96969b039c40234d659c3df8f3b2  gcc/testsuite/gm2/extensions/pass/card8p.mod
! 167ea6ef2489f29ab7eef2cf2f893006  gcc/testsuite/gm2/extensions/pass/co.def
  d159d4a216d3d0b11a27343572db5b4a  gcc/testsuite/gm2/extensions/pass/co.mod
! eded232114c371ef6d356152ec0a3924  gcc/testsuite/gm2/extensions/pass/extensions-pass.exp
  b7f24156130b98e9254d039e04c3dce7  gcc/testsuite/gm2/extensions/pass/frame.mod
  2ba2a8a3162818fa4b3005cdc8c8c8ce  gcc/testsuite/gm2/extensions/pass/hello.mod
  d94cf268405f6d781cf76011c4f44b8d  gcc/testsuite/gm2/extensions/pass/int16p.mod
*************** d94cf268405f6d781cf76011c4f44b8d  gcc/te
*** 91655,91661 ****
  261fde70e790b820117f4ae44eb97471  gcc/testsuite/gm2/extensions/pass/int8p.mod
  15c237b555bd2fd8f5ba57d93e9d8f42  gcc/testsuite/gm2/extensions/pass/intsize8.mod
  0e28d95a61e7a4cfa672b7377c173e1b  gcc/testsuite/gm2/extensions/pass/jmp.mod
! 776fbf9f96281bfef93d470a5414504a  gcc/testsuite/gm2/extensions/pass/libc.def
  70c7b761a63dc747727aa2798018b114  gcc/testsuite/gm2/extensions/pass/optparam.mod
  6f26b2905d1b0eb6eb2a7202002fc260  gcc/testsuite/gm2/extensions/pass/optparam2.mod
  489560c6e1607c7cee923238809668cf  gcc/testsuite/gm2/extensions/pass/return.mod
--- 100853,100859 ----
  261fde70e790b820117f4ae44eb97471  gcc/testsuite/gm2/extensions/pass/int8p.mod
  15c237b555bd2fd8f5ba57d93e9d8f42  gcc/testsuite/gm2/extensions/pass/intsize8.mod
  0e28d95a61e7a4cfa672b7377c173e1b  gcc/testsuite/gm2/extensions/pass/jmp.mod
! 35c1a07f18529966cc86a573e58dd1ce  gcc/testsuite/gm2/extensions/pass/libc.def
  70c7b761a63dc747727aa2798018b114  gcc/testsuite/gm2/extensions/pass/optparam.mod
  6f26b2905d1b0eb6eb2a7202002fc260  gcc/testsuite/gm2/extensions/pass/optparam2.mod
  489560c6e1607c7cee923238809668cf  gcc/testsuite/gm2/extensions/pass/return.mod
*************** d94cf268405f6d781cf76011c4f44b8d  gcc/te
*** 91663,91669 ****
  058986cbc2e8bccb371e06f4bb391970  gcc/testsuite/gm2/extensions/pass/set8a.mod
  fc28f44846ac7d40a1fcd68808a61333  gcc/testsuite/gm2/extensions/pass/set8b.mod
  e2b5c579814b64fc78fb6c6bcc07dc7d  gcc/testsuite/gm2/extensions/pass/testco.mod
! 46596172e32b66cca818467a28251954  gcc/testsuite/gm2/extensions/run/fail/extensions-run-fail.exp
  9821650ee314cc2e367daa2d545cf9f2  gcc/testsuite/gm2/extensions/run/fail/intsize8.mod
  15008e06dae9d05871928b0212d55c06  gcc/testsuite/gm2/extensions/run/pass/align3.mod
  1dec57a2a2bdbe62a7eb9d8a6385e36e  gcc/testsuite/gm2/extensions/run/pass/align4.mod
--- 100861,100867 ----
  058986cbc2e8bccb371e06f4bb391970  gcc/testsuite/gm2/extensions/pass/set8a.mod
  fc28f44846ac7d40a1fcd68808a61333  gcc/testsuite/gm2/extensions/pass/set8b.mod
  e2b5c579814b64fc78fb6c6bcc07dc7d  gcc/testsuite/gm2/extensions/pass/testco.mod
! 87bb9cb3a74065eb41698cfda21757f6  gcc/testsuite/gm2/extensions/run/fail/extensions-run-fail.exp
  9821650ee314cc2e367daa2d545cf9f2  gcc/testsuite/gm2/extensions/run/fail/intsize8.mod
  15008e06dae9d05871928b0212d55c06  gcc/testsuite/gm2/extensions/run/pass/align3.mod
  1dec57a2a2bdbe62a7eb9d8a6385e36e  gcc/testsuite/gm2/extensions/run/pass/align4.mod
*************** e2b5c579814b64fc78fb6c6bcc07dc7d  gcc/te
*** 91671,91684 ****
  43a2be3012bc591c4f66ed77c63cf48e  gcc/testsuite/gm2/extensions/run/pass/align6.mod
  dd191008a327d4a4080fa4d7c1e49551  gcc/testsuite/gm2/extensions/run/pass/align7.mod
  fa1057e0a274121fae53b8bf5c4b1c30  gcc/testsuite/gm2/extensions/run/pass/callingc.mod
  4a9182e3726ac393677870a0f1754d1d  gcc/testsuite/gm2/extensions/run/pass/card16p.mod
  d987a6f00a5cd4182a087d99a48e5a95  gcc/testsuite/gm2/extensions/run/pass/card32p.mod
  c358c7bf88ea586179fab8f69cf4163d  gcc/testsuite/gm2/extensions/run/pass/card64p.mod
  adc26f7f9a7dcb3a14fddaf3f36958e1  gcc/testsuite/gm2/extensions/run/pass/card8p.mod
  43a099b052c9029ba649dd74ab85f56c  gcc/testsuite/gm2/extensions/run/pass/column.mod
  66842da4551c5e2094e0007be19255b4  gcc/testsuite/gm2/extensions/run/pass/cvararg.c
! 798dae8a2322c8b68e4c14abc75b7087  gcc/testsuite/gm2/extensions/run/pass/cvararg.def
! d976a27701627a4208c42d9409d2ae4e  gcc/testsuite/gm2/extensions/run/pass/extensions-run-pass.exp
  d94cf268405f6d781cf76011c4f44b8d  gcc/testsuite/gm2/extensions/run/pass/int16p.mod
  57eef0c4024ebf66e3d9b3fd5059668e  gcc/testsuite/gm2/extensions/run/pass/int32p.mod
  070718c3e8cedbfbf7de52f1844c5280  gcc/testsuite/gm2/extensions/run/pass/int64p.mod
--- 100869,100894 ----
  43a2be3012bc591c4f66ed77c63cf48e  gcc/testsuite/gm2/extensions/run/pass/align6.mod
  dd191008a327d4a4080fa4d7c1e49551  gcc/testsuite/gm2/extensions/run/pass/align7.mod
  fa1057e0a274121fae53b8bf5c4b1c30  gcc/testsuite/gm2/extensions/run/pass/callingc.mod
+ 59c072e196cb7c0ef4184e73121f4da4  gcc/testsuite/gm2/extensions/run/pass/callingc10.mod
+ 68339cc320c372964ab8273e6ddc19d8  gcc/testsuite/gm2/extensions/run/pass/callingc11.mod
+ 7f897c559de0f2d5ae0ecb4815e39b29  gcc/testsuite/gm2/extensions/run/pass/callingc2.mod
+ 991f3d405b736e7a75583ca9137a8cc5  gcc/testsuite/gm2/extensions/run/pass/callingc3.mod
+ 008dd5095530d32328e59ee0c20a8b1d  gcc/testsuite/gm2/extensions/run/pass/callingc4.mod
+ a8272cad6b53654fe3ba6227f4876582  gcc/testsuite/gm2/extensions/run/pass/callingc5.mod
+ a20cdb9d45b67c9e4bdd4fc558115d92  gcc/testsuite/gm2/extensions/run/pass/callingc6.mod
+ 5d2aac69f24241230af6069113ed8df7  gcc/testsuite/gm2/extensions/run/pass/callingc7.mod
+ 1a04bebdce53d379ca795748ddcc8b76  gcc/testsuite/gm2/extensions/run/pass/callingc8.mod
+ 2cc15749e858c83cd455814d2e700b1e  gcc/testsuite/gm2/extensions/run/pass/callingc9.mod
  4a9182e3726ac393677870a0f1754d1d  gcc/testsuite/gm2/extensions/run/pass/card16p.mod
  d987a6f00a5cd4182a087d99a48e5a95  gcc/testsuite/gm2/extensions/run/pass/card32p.mod
  c358c7bf88ea586179fab8f69cf4163d  gcc/testsuite/gm2/extensions/run/pass/card64p.mod
  adc26f7f9a7dcb3a14fddaf3f36958e1  gcc/testsuite/gm2/extensions/run/pass/card8p.mod
  43a099b052c9029ba649dd74ab85f56c  gcc/testsuite/gm2/extensions/run/pass/column.mod
  66842da4551c5e2094e0007be19255b4  gcc/testsuite/gm2/extensions/run/pass/cvararg.c
! 81b700a1537e054657b5dcc00df270e2  gcc/testsuite/gm2/extensions/run/pass/cvararg.def
! 4956821856dd5596131229178686acb4  gcc/testsuite/gm2/extensions/run/pass/extensions-run-pass.exp
! b774d1bacaf75defe5d102c1bfb1fa59  gcc/testsuite/gm2/extensions/run/pass/fixedarray.mod
! 6dae0462ee7d420d898332f32fc5840f  gcc/testsuite/gm2/extensions/run/pass/fixedarray2.mod
  d94cf268405f6d781cf76011c4f44b8d  gcc/testsuite/gm2/extensions/run/pass/int16p.mod
  57eef0c4024ebf66e3d9b3fd5059668e  gcc/testsuite/gm2/extensions/run/pass/int32p.mod
  070718c3e8cedbfbf7de52f1844c5280  gcc/testsuite/gm2/extensions/run/pass/int64p.mod
*************** d94cf268405f6d781cf76011c4f44b8d  gcc/te
*** 91686,91702 ****
  261fde70e790b820117f4ae44eb97471  gcc/testsuite/gm2/extensions/run/pass/int8p.mod
  6aaab665b81cd7fadd524a196edfc064  gcc/testsuite/gm2/extensions/run/pass/packedrecord.mod
  887cf6b407754dcc0d2b76f7c06bcb50  gcc/testsuite/gm2/extensions/run/pass/packedrecord2.mod
  51bc21b8b2360b6ecb7fd21e4ef49158  gcc/testsuite/gm2/extensions/run/pass/real32.mod
  77fc65c01967a1eef55b9d65aad055a4  gcc/testsuite/gm2/extensions/run/pass/real32a.mod
  7a5bd62d8a41815f5eb09af3f33fa729  gcc/testsuite/gm2/extensions/run/pass/record.mod
  d0d534462d39236a4854097918b02153  gcc/testsuite/gm2/extensions/run/pass/testopen.mod
  d57d404053c6ef9d1aaa90cdc440ae24  gcc/testsuite/gm2/extensions/run/pass/vararg.mod
  b0e857c488a0748f88965c8c5a784a79  gcc/testsuite/gm2/extensions/run/pass/vararg2.mod
  0e0d21632ac8fb41a3feab3ecd14b629  gcc/testsuite/gm2/extensions/run/pass/vararg3.mod
  3a5bea5d914d476c9a7a922b157ec8be  gcc/testsuite/gm2/fpu/pass/five.mod
! 934cf47d4e98d6d7e59525459924c24d  gcc/testsuite/gm2/fpu/pass/fp.def
  f421eb8626c024ae88d4db4325d7c4e5  gcc/testsuite/gm2/fpu/pass/fp.mod
! a42244edbd91c6c007b19f4b61dc5b54  gcc/testsuite/gm2/fpu/pass/fpu-pass.exp
  1b9881eb40114bef9af8c751d9511564  gcc/testsuite/gm2/fpu/pass/one.mod
  8567fe0b3d8ab8ed7727a9c0ac0c9aad  gcc/testsuite/gm2/fpu/pass/r1.mod
  7b08cb9eda5c9dd6127fce04e999ae3a  gcc/testsuite/gm2/fpu/pass/realconst.mod
--- 100896,100914 ----
  261fde70e790b820117f4ae44eb97471  gcc/testsuite/gm2/extensions/run/pass/int8p.mod
  6aaab665b81cd7fadd524a196edfc064  gcc/testsuite/gm2/extensions/run/pass/packedrecord.mod
  887cf6b407754dcc0d2b76f7c06bcb50  gcc/testsuite/gm2/extensions/run/pass/packedrecord2.mod
+ 8a6ea1bcf10ed32bf12af3d917801628  gcc/testsuite/gm2/extensions/run/pass/packedrecord3.mod
  51bc21b8b2360b6ecb7fd21e4ef49158  gcc/testsuite/gm2/extensions/run/pass/real32.mod
  77fc65c01967a1eef55b9d65aad055a4  gcc/testsuite/gm2/extensions/run/pass/real32a.mod
  7a5bd62d8a41815f5eb09af3f33fa729  gcc/testsuite/gm2/extensions/run/pass/record.mod
+ 50d4c24cca8ca7f1d3f7608554381d76  gcc/testsuite/gm2/extensions/run/pass/strconst.def
  d0d534462d39236a4854097918b02153  gcc/testsuite/gm2/extensions/run/pass/testopen.mod
  d57d404053c6ef9d1aaa90cdc440ae24  gcc/testsuite/gm2/extensions/run/pass/vararg.mod
  b0e857c488a0748f88965c8c5a784a79  gcc/testsuite/gm2/extensions/run/pass/vararg2.mod
  0e0d21632ac8fb41a3feab3ecd14b629  gcc/testsuite/gm2/extensions/run/pass/vararg3.mod
  3a5bea5d914d476c9a7a922b157ec8be  gcc/testsuite/gm2/fpu/pass/five.mod
! 0efe5411d39c42eda4638f645fa105b9  gcc/testsuite/gm2/fpu/pass/fp.def
  f421eb8626c024ae88d4db4325d7c4e5  gcc/testsuite/gm2/fpu/pass/fp.mod
! 8241ab49e6bc79682c6af4f0b11a82c9  gcc/testsuite/gm2/fpu/pass/fpu-pass.exp
  1b9881eb40114bef9af8c751d9511564  gcc/testsuite/gm2/fpu/pass/one.mod
  8567fe0b3d8ab8ed7727a9c0ac0c9aad  gcc/testsuite/gm2/fpu/pass/r1.mod
  7b08cb9eda5c9dd6127fce04e999ae3a  gcc/testsuite/gm2/fpu/pass/realconst.mod
*************** dee54568f17413d8e57d550f0c4b83f8  gcc/te
*** 91706,91721 ****
  d96589c2c2844064714e9b438501b89f  gcc/testsuite/gm2/fpu/pass/testfpu2.mod
  d08e0de57399712f8aa4cf7d257cf968  gcc/testsuite/gm2/fpu/pass/testfpu3.mod
  16c6c47aa8e76194eb5c0953f55f524c  gcc/testsuite/gm2/fpu/pass/testsin.mod
! 97c343239f0900a1f6fd839fd3194b7b  gcc/testsuite/gm2/imports/run/pass/c.def
  8e6474927fa522c9ea64fd6594fd9e18  gcc/testsuite/gm2/imports/run/pass/c.mod
! 48c0cf5ea49d03a552e19a6f02f8b86e  gcc/testsuite/gm2/imports/run/pass/imports-run-pass.exp
  f4645b6089459f9007476e070d88845b  gcc/testsuite/gm2/imports/run/pass/innermods.mod
  2120b509216f2ca34896125e5617d5b2  gcc/testsuite/gm2/imports/run/pass/innermods2.mod
  ab7792dc6d1aa671117c9b421280d6d9  gcc/testsuite/gm2/imports/run/pass/innermods3.mod
  8e84633caf8e5c825199e5905023fc0d  gcc/testsuite/gm2/imports/run/pass/innermods4.mod
! 92be28abf3d11b72729375b0a65f2550  gcc/testsuite/gm2/imports/run/pass/innermods5.def
  3be04b3b76010112caa8cbdbb9565240  gcc/testsuite/gm2/imports/run/pass/innermods5.mod
  c66145b0af0618ee84020843a22d9908  gcc/testsuite/gm2/imports/run/pass/innermods6.mod
  256dbba19f4ca30b6ff01288e2d9dd78  gcc/testsuite/gm2/integer/div.mod
  cccbde1ebf75c02e69781b94808bfc22  gcc/testsuite/gm2/integer/expr.mod
  00e329fc870c25f01af1fd8446c10efc  gcc/testsuite/gm2/integer/mod.mod
--- 100918,100936 ----
  d96589c2c2844064714e9b438501b89f  gcc/testsuite/gm2/fpu/pass/testfpu2.mod
  d08e0de57399712f8aa4cf7d257cf968  gcc/testsuite/gm2/fpu/pass/testfpu3.mod
  16c6c47aa8e76194eb5c0953f55f524c  gcc/testsuite/gm2/fpu/pass/testsin.mod
! 40e399623a8dc0da299138227a8e83e3  gcc/testsuite/gm2/imports/fail/imports-fail.exp
! eedc0a60a90c35fc25ca1db3bc48b54d  gcc/testsuite/gm2/imports/fail/localmodule2.mod
! 19eeee8e8fbbb429497ee3909786f37e  gcc/testsuite/gm2/imports/run/pass/c.def
  8e6474927fa522c9ea64fd6594fd9e18  gcc/testsuite/gm2/imports/run/pass/c.mod
! 639e19d39dfcb8b5257123092843d90d  gcc/testsuite/gm2/imports/run/pass/imports-run-pass.exp
  f4645b6089459f9007476e070d88845b  gcc/testsuite/gm2/imports/run/pass/innermods.mod
  2120b509216f2ca34896125e5617d5b2  gcc/testsuite/gm2/imports/run/pass/innermods2.mod
  ab7792dc6d1aa671117c9b421280d6d9  gcc/testsuite/gm2/imports/run/pass/innermods3.mod
  8e84633caf8e5c825199e5905023fc0d  gcc/testsuite/gm2/imports/run/pass/innermods4.mod
! 1869d4dc36a5fde19ede37c5ef8c1e2c  gcc/testsuite/gm2/imports/run/pass/innermods5.def
  3be04b3b76010112caa8cbdbb9565240  gcc/testsuite/gm2/imports/run/pass/innermods5.mod
  c66145b0af0618ee84020843a22d9908  gcc/testsuite/gm2/imports/run/pass/innermods6.mod
+ ddcb9cb0667e6dfae5dda53ead0c9dad  gcc/testsuite/gm2/imports/run/pass/localmodule.mod
  256dbba19f4ca30b6ff01288e2d9dd78  gcc/testsuite/gm2/integer/div.mod
  cccbde1ebf75c02e69781b94808bfc22  gcc/testsuite/gm2/integer/expr.mod
  00e329fc870c25f01af1fd8446c10efc  gcc/testsuite/gm2/integer/mod.mod
*************** c940ae09194a293bfb4ab9b2de81dade  gcc/te
*** 91737,91755 ****
  b653bc6cb28996bf3bada6a912fcf38d  gcc/testsuite/gm2/iso/analysis/fail/decvalue.mod
  e33c60fd3ac7a38f872e338f9a718f81  gcc/testsuite/gm2/iso/analysis/fail/forloop.mod
  696a9199f7222fe61ec2d3fc8ec625f2  gcc/testsuite/gm2/iso/analysis/fail/incvalue.mod
! 720131914a8f408cc197baa879bb14f7  gcc/testsuite/gm2/iso/analysis/fail/iso-analysis-fail.exp
  2c2021fe25b158b9d6384aa1f94820be  gcc/testsuite/gm2/iso/analysis/fail/noreturn.mod
  5a3e9a4a9089931344916866a14fe3c6  gcc/testsuite/gm2/iso/analysis/fail/returnvalue.mod
  8e731a1c7867a36e9ee26de3938f03cf  gcc/testsuite/gm2/iso/analysis/fail/staticarray.mod
! 2b66e42816724ad42f8f960914142c1a  gcc/testsuite/gm2/iso/check/fail/iso-check-fail.exp
  437990ba3723c0f4b1dbcdddb2cc37cc  gcc/testsuite/gm2/iso/check/fail/modulusoverflow.mod
! 52d1a8cb2fc648e4f76b6d73d7270a57  gcc/testsuite/gm2/iso/extended-opaque/pass/iso-extended-opaque-pass.exp
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/iso/extended-opaque/pass/testset.mod
  2aeb1840a853d9bd6dd61d9278a7b6a1  gcc/testsuite/gm2/iso/fail/badarray.mod
  5d08cec83a9fd8cfa6b718baa93a2715  gcc/testsuite/gm2/iso/fail/badarray2.mod
  a4434fc135822edf23c851e5f90882b2  gcc/testsuite/gm2/iso/fail/badipv4.mod
  f593f212781741b8aa437f58c318720a  gcc/testsuite/gm2/iso/fail/bug10.mod
  cbba0194d3c34b32af7b1bc671474c98  gcc/testsuite/gm2/iso/fail/bug8.mod
  84b83814bc8182b14296d50e0b2f705c  gcc/testsuite/gm2/iso/fail/bug9.mod
--- 100952,101001 ----
  b653bc6cb28996bf3bada6a912fcf38d  gcc/testsuite/gm2/iso/analysis/fail/decvalue.mod
  e33c60fd3ac7a38f872e338f9a718f81  gcc/testsuite/gm2/iso/analysis/fail/forloop.mod
  696a9199f7222fe61ec2d3fc8ec625f2  gcc/testsuite/gm2/iso/analysis/fail/incvalue.mod
! 22958b8b25dd7b548b40932ab834a258  gcc/testsuite/gm2/iso/analysis/fail/iso-analysis-fail.exp
  2c2021fe25b158b9d6384aa1f94820be  gcc/testsuite/gm2/iso/analysis/fail/noreturn.mod
  5a3e9a4a9089931344916866a14fe3c6  gcc/testsuite/gm2/iso/analysis/fail/returnvalue.mod
  8e731a1c7867a36e9ee26de3938f03cf  gcc/testsuite/gm2/iso/analysis/fail/staticarray.mod
! 878a9cb9b4a0fe73996e7ce834517336  gcc/testsuite/gm2/iso/check/fail/iso-check-fail.exp
  437990ba3723c0f4b1dbcdddb2cc37cc  gcc/testsuite/gm2/iso/check/fail/modulusoverflow.mod
! 6249dd53a3ebd4f714845279bdf36c4e  gcc/testsuite/gm2/iso/const/fail/castproctype.mod
! 533ddaa3eb9b19330b3a20aa49c83a49  gcc/testsuite/gm2/iso/const/fail/expression.mod
! 0eb7aceeae588af3b839d1acff071564  gcc/testsuite/gm2/iso/const/fail/iso-const-fail.exp
! 171b5baa1f1a4f382368a3ec07051c27  gcc/testsuite/gm2/iso/const/fail/testabs.mod
! 04356892e6df6a18dae19d8c95b8f3a0  gcc/testsuite/gm2/iso/const/fail/testaddadr.mod
! e1feb88a657b77987bdea63f44ec352d  gcc/testsuite/gm2/iso/const/fail/testcap.mod
! 8a8d8565921ce11b092ed8555dad3443  gcc/testsuite/gm2/iso/const/fail/testcap2.mod
! 6b7bc0149e2bcd883f1d85733f311cb9  gcc/testsuite/gm2/iso/const/fail/testchr.mod
! 67facfbf155952fbc5532a9c8914df76  gcc/testsuite/gm2/iso/const/fail/testchr2.mod
! 8b6c500ca1cdeb107354de589b9c3d15  gcc/testsuite/gm2/iso/const/fail/testcmplx.mod
! ddc028363c835a63e93a21585b4acb41  gcc/testsuite/gm2/iso/const/fail/testfloat.mod
! a3c69f83a96b5683f8c913f84d078813  gcc/testsuite/gm2/iso/const/fail/testim.mod
! 73dec610448e2ee5a470dea9c597a309  gcc/testsuite/gm2/iso/const/fail/testint.mod
! 81dc01bfe057f1d8acb0866648cc6ff4  gcc/testsuite/gm2/iso/const/fail/testlength.mod
! ba22b4ded20114a63e0496568952a4ee  gcc/testsuite/gm2/iso/const/fail/testodd.mod
! 63a5c75e7b06764b602cf110041ee90a  gcc/testsuite/gm2/iso/const/fail/testord.mod
! cd46dfbbfc54ed1a37403192734b5e7a  gcc/testsuite/gm2/iso/const/fail/testre.mod
! eb2ccbd5f3e401ce12a0b94cfd7f75f9  gcc/testsuite/gm2/iso/const/fail/testtrunc.mod
! b5ca5eed3f9ff4e81e34c6f169360874  gcc/testsuite/gm2/iso/const/fail/testval.mod
! b99787c465721afaed2b8de0d5ebdb37  gcc/testsuite/gm2/iso/const/pass/constbool.mod
! 933c47053b6f966551df13ec68786fc3  gcc/testsuite/gm2/iso/const/pass/constbool2.mod
! 220776441d94404abfaea7ebc00ad8d5  gcc/testsuite/gm2/iso/const/pass/constbool3.mod
! 5515f78173fa018efbfade829850b772  gcc/testsuite/gm2/iso/const/pass/constcast.mod
! 9befe172c7b848ebd1274c2193c23929  gcc/testsuite/gm2/iso/const/pass/constodd.mod
! 786fe7069cf07de7d35169d06cc69ded  gcc/testsuite/gm2/iso/const/pass/iso-const-pass.exp
! 10ea7c55d5ce707809eced30bc36b8c7  gcc/testsuite/gm2/iso/extended-opaque/pass/iso-extended-opaque-pass.exp
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/iso/extended-opaque/pass/stressset.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/iso/extended-opaque/pass/testset.mod
  2aeb1840a853d9bd6dd61d9278a7b6a1  gcc/testsuite/gm2/iso/fail/badarray.mod
  5d08cec83a9fd8cfa6b718baa93a2715  gcc/testsuite/gm2/iso/fail/badarray2.mod
+ 08d72567eef98d824fdfea58dfd60bd0  gcc/testsuite/gm2/iso/fail/badassignment.mod
+ 026dcc0bc12873120c33bc438c0da31f  gcc/testsuite/gm2/iso/fail/badexpression.mod
+ 9dc1926fc7f59c0f1a31e62270e201f0  gcc/testsuite/gm2/iso/fail/badexpression2.mod
  a4434fc135822edf23c851e5f90882b2  gcc/testsuite/gm2/iso/fail/badipv4.mod
+ 4b91e3c389b30ac1774c9b61dccd90e1  gcc/testsuite/gm2/iso/fail/badset.mod
+ 4860278d84989ec562b892a13b6447ec  gcc/testsuite/gm2/iso/fail/badset2.mod
+ dfcc6ecdf732afd377ec852b928da44c  gcc/testsuite/gm2/iso/fail/badset3.mod
  f593f212781741b8aa437f58c318720a  gcc/testsuite/gm2/iso/fail/bug10.mod
  cbba0194d3c34b32af7b1bc671474c98  gcc/testsuite/gm2/iso/fail/bug8.mod
  84b83814bc8182b14296d50e0b2f705c  gcc/testsuite/gm2/iso/fail/bug9.mod
*************** a8827661db356eb8fe3aae4bffb1deb7  gcc/te
*** 91766,91793 ****
  3ffd37fed98f69e69af9d930e9a86876  gcc/testsuite/gm2/iso/fail/constsubrange.mod
  8cd75979edf8234541dc58c2f7704add  gcc/testsuite/gm2/iso/fail/constsubrange2.mod
  4e821bb67abc742b556822995a64ea5e  gcc/testsuite/gm2/iso/fail/constsubrange3.mod
! ff4a487c9d5136bf523dc22714e1b20c  gcc/testsuite/gm2/iso/fail/defa.def
  4a1db953e98692055dccdc1c8fc43159  gcc/testsuite/gm2/iso/fail/defa.mod
! d02d78bb93f0658a3d36c1485c37968a  gcc/testsuite/gm2/iso/fail/defb.def
  3c6b5115568c4d660aa89060b63544f8  gcc/testsuite/gm2/iso/fail/defb.mod
! 66483d309fe3d367831e86c4a5dcd488  gcc/testsuite/gm2/iso/fail/defc.def
  3df68a547b9ef8e6eff176a40576d573  gcc/testsuite/gm2/iso/fail/defc.mod
  da1fbaf8a9296190ba11825db23d9833  gcc/testsuite/gm2/iso/fail/except.mod
  6a210956056936ebaf10f352041bcedb  gcc/testsuite/gm2/iso/fail/except2.mod
! 0f4bb16d13f6e60ff985c8c948544fad  gcc/testsuite/gm2/iso/fail/iso-fail.exp
! d05962556fff96387eda28344ea5982c  gcc/testsuite/gm2/iso/fail/isoa.def
  dd34b06f9745b0471d4dcdd1151794b8  gcc/testsuite/gm2/iso/fail/isoa.mod
  f8f0e42d0cb5dd05e9e09532e59be906  gcc/testsuite/gm2/iso/fail/lengthsubexpr.mod
  ed27c2d624cf61637162923e09064d02  gcc/testsuite/gm2/iso/fail/proc.mod
  6f32d7b5c03fc7e1f30b34bc9dc3b73e  gcc/testsuite/gm2/iso/fail/realbitscast.mod
  cd05f4056e7fa080d31647f017a369f3  gcc/testsuite/gm2/iso/fail/varient.mod
  ed6563e70916bce0539862ce8bf92344  gcc/testsuite/gm2/iso/fail/varient2.mod
  a0958c3dc000796522d937a4dabacd02  gcc/testsuite/gm2/iso/future/builtinlj.mod
! e273c20f84c8903127d8249e93f9bfac  gcc/testsuite/gm2/iso/pass/ChanConsts.def
  b548e6cf07722a4141620bf090c7453a  gcc/testsuite/gm2/iso/pass/ChanConsts.mod
! caf84488da0bce55089b2013cd24fe93  gcc/testsuite/gm2/iso/pass/ConvTypes.def
  e39633acce4e1ece9cf66f5e55bfdc2b  gcc/testsuite/gm2/iso/pass/ConvTypes.mod
  3acbb7dfd228d2022ab81e451c0b0b30  gcc/testsuite/gm2/iso/pass/addadr1.mod
  05fb03679c613c4a87ec38cbabc4bd4a  gcc/testsuite/gm2/iso/pass/bits32c.mod
  80a933e785e7f01fd66919afb4d97dbc  gcc/testsuite/gm2/iso/pass/callwraptime.mod
  43aa28cf0a47f5280df351135f9b35a4  gcc/testsuite/gm2/iso/pass/caseiso.mod
--- 101012,101044 ----
  3ffd37fed98f69e69af9d930e9a86876  gcc/testsuite/gm2/iso/fail/constsubrange.mod
  8cd75979edf8234541dc58c2f7704add  gcc/testsuite/gm2/iso/fail/constsubrange2.mod
  4e821bb67abc742b556822995a64ea5e  gcc/testsuite/gm2/iso/fail/constsubrange3.mod
! 9c93e6f4919ab83c8eda64b7ef3bac5d  gcc/testsuite/gm2/iso/fail/defa.def
  4a1db953e98692055dccdc1c8fc43159  gcc/testsuite/gm2/iso/fail/defa.mod
! 501dcbd42ca340acdd25661074c7a1ff  gcc/testsuite/gm2/iso/fail/defb.def
  3c6b5115568c4d660aa89060b63544f8  gcc/testsuite/gm2/iso/fail/defb.mod
! 808f0eecfaabef0dea2691327babde81  gcc/testsuite/gm2/iso/fail/defc.def
  3df68a547b9ef8e6eff176a40576d573  gcc/testsuite/gm2/iso/fail/defc.mod
  da1fbaf8a9296190ba11825db23d9833  gcc/testsuite/gm2/iso/fail/except.mod
  6a210956056936ebaf10f352041bcedb  gcc/testsuite/gm2/iso/fail/except2.mod
! 9d3c419d7047b79a873087bd2e69066d  gcc/testsuite/gm2/iso/fail/iso-fail.exp
! aabee730528d8e7462e1d0142baa2eb4  gcc/testsuite/gm2/iso/fail/isoa.def
  dd34b06f9745b0471d4dcdd1151794b8  gcc/testsuite/gm2/iso/fail/isoa.mod
  f8f0e42d0cb5dd05e9e09532e59be906  gcc/testsuite/gm2/iso/fail/lengthsubexpr.mod
  ed27c2d624cf61637162923e09064d02  gcc/testsuite/gm2/iso/fail/proc.mod
+ 319a28627a121d702d9a4582ade6fdaf  gcc/testsuite/gm2/iso/fail/proccard.mod
  6f32d7b5c03fc7e1f30b34bc9dc3b73e  gcc/testsuite/gm2/iso/fail/realbitscast.mod
  cd05f4056e7fa080d31647f017a369f3  gcc/testsuite/gm2/iso/fail/varient.mod
  ed6563e70916bce0539862ce8bf92344  gcc/testsuite/gm2/iso/fail/varient2.mod
  a0958c3dc000796522d937a4dabacd02  gcc/testsuite/gm2/iso/future/builtinlj.mod
! 477a639ed2acecac9113eaddf8832061  gcc/testsuite/gm2/iso/pass/ChanConsts.def
  b548e6cf07722a4141620bf090c7453a  gcc/testsuite/gm2/iso/pass/ChanConsts.mod
! 1d3491d80f67b80b43f95882aaf0fd30  gcc/testsuite/gm2/iso/pass/ConvTypes.def
  e39633acce4e1ece9cf66f5e55bfdc2b  gcc/testsuite/gm2/iso/pass/ConvTypes.mod
  3acbb7dfd228d2022ab81e451c0b0b30  gcc/testsuite/gm2/iso/pass/addadr1.mod
+ d5116ad09a796b6a9ff0c6aea69aec15  gcc/testsuite/gm2/iso/pass/arrayconst.mod
+ bb310f129c4c27498793742f27fb0c93  gcc/testsuite/gm2/iso/pass/arrayconst2.mod
+ 578d3d5d43edf505594816a896ec071b  gcc/testsuite/gm2/iso/pass/arrayconst3.mod
+ 2ac92489b2fbb566fae6bf305cba6995  gcc/testsuite/gm2/iso/pass/arrayconst4.mod
  05fb03679c613c4a87ec38cbabc4bd4a  gcc/testsuite/gm2/iso/pass/bits32c.mod
  80a933e785e7f01fd66919afb4d97dbc  gcc/testsuite/gm2/iso/pass/callwraptime.mod
  43aa28cf0a47f5280df351135f9b35a4  gcc/testsuite/gm2/iso/pass/caseiso.mod
*************** dd860aba1682b0a72c1480ccf6adf17f  gcc/te
*** 91804,91817 ****
  05f94c162c8834ea7d5e2195dfc91372  gcc/testsuite/gm2/iso/pass/constructor5.mod
  ceb9263854583e4281eba6f4f243b08f  gcc/testsuite/gm2/iso/pass/constructor6.mod
  b2886388ec602bee4d15ac4312db8e06  gcc/testsuite/gm2/iso/pass/constsize4.mod
  9e26320e98a2493f1d4c1d9a0ee486d4  gcc/testsuite/gm2/iso/pass/delim.mod
  14b1c8dfb0129ea08182a7e929acba7e  gcc/testsuite/gm2/iso/pass/delim2.mod
  06b0baf6718be827434fe1beb451da51  gcc/testsuite/gm2/iso/pass/enummodule.mod
  ddc6aebab5f51939e8d3f7ff7f77c6e8  gcc/testsuite/gm2/iso/pass/except1.mod
  c36139631daa5f71b97439df4c9d9968  gcc/testsuite/gm2/iso/pass/expproc.mod
  1af42c7c84e203d3875f8c6ddc86590f  gcc/testsuite/gm2/iso/pass/expproc2.mod
! 3fe468860f7089969a8e565d4fb92120  gcc/testsuite/gm2/iso/pass/iso-pass.exp
! c5438dbcad84d5d3f68ba0b2fa38ab85  gcc/testsuite/gm2/iso/pass/isob.def
  9d7f426376e9d6ffd2e838ec2f107007  gcc/testsuite/gm2/iso/pass/isob.mod
  1c8e0e2855304c5ab461a3df75482110  gcc/testsuite/gm2/iso/pass/isobitset.mod
  bf612e7d4b783c9e3495dec78e22634f  gcc/testsuite/gm2/iso/pass/isobitset2.mod
--- 101055,101070 ----
  05f94c162c8834ea7d5e2195dfc91372  gcc/testsuite/gm2/iso/pass/constructor5.mod
  ceb9263854583e4281eba6f4f243b08f  gcc/testsuite/gm2/iso/pass/constructor6.mod
  b2886388ec602bee4d15ac4312db8e06  gcc/testsuite/gm2/iso/pass/constsize4.mod
+ f330fb2285eaaa5f5b20f84ad7e0edc7  gcc/testsuite/gm2/iso/pass/constvec.mod
+ ee41216e13dd953ee144ca99d349b1c8  gcc/testsuite/gm2/iso/pass/constvec2.mod
  9e26320e98a2493f1d4c1d9a0ee486d4  gcc/testsuite/gm2/iso/pass/delim.mod
  14b1c8dfb0129ea08182a7e929acba7e  gcc/testsuite/gm2/iso/pass/delim2.mod
  06b0baf6718be827434fe1beb451da51  gcc/testsuite/gm2/iso/pass/enummodule.mod
  ddc6aebab5f51939e8d3f7ff7f77c6e8  gcc/testsuite/gm2/iso/pass/except1.mod
  c36139631daa5f71b97439df4c9d9968  gcc/testsuite/gm2/iso/pass/expproc.mod
  1af42c7c84e203d3875f8c6ddc86590f  gcc/testsuite/gm2/iso/pass/expproc2.mod
! 38b99fa44cab3df41e92f4339ca3941c  gcc/testsuite/gm2/iso/pass/iso-pass.exp
! 2ea8304118ee6733a7d15ec3c42ef6fa  gcc/testsuite/gm2/iso/pass/isob.def
  9d7f426376e9d6ffd2e838ec2f107007  gcc/testsuite/gm2/iso/pass/isob.mod
  1c8e0e2855304c5ab461a3df75482110  gcc/testsuite/gm2/iso/pass/isobitset.mod
  bf612e7d4b783c9e3495dec78e22634f  gcc/testsuite/gm2/iso/pass/isobitset2.mod
*************** bf612e7d4b783c9e3495dec78e22634f  gcc/te
*** 91823,91831 ****
  744399262592238aa803f52f5c079be7  gcc/testsuite/gm2/iso/pass/stringchar.mod
  4673308df9fe8082809963a37af79361  gcc/testsuite/gm2/iso/pass/subassign.mod
  de6f6670582027aff90b457bfa265df7  gcc/testsuite/gm2/iso/pass/testaddindr.mod
! ba73c26b618cd4271ea39395fad7d108  gcc/testsuite/gm2/iso/pass/testconv.def
  dfca0dd59c3c7312a6b41fa51e0b066b  gcc/testsuite/gm2/iso/pass/testconv.mod
! ef8de4947ae4021eec580c95483a4201  gcc/testsuite/gm2/iso/pass/testconv2.def
  b47a3b6539789604b78c3a59b12dbfd0  gcc/testsuite/gm2/iso/pass/testconv2.mod
  2484172d14af2f08507f0df169a71631  gcc/testsuite/gm2/iso/pass/testconv3.mod
  20629a1e5119de086d6c7394f703ff06  gcc/testsuite/gm2/iso/pass/testconv4.mod
--- 101076,101084 ----
  744399262592238aa803f52f5c079be7  gcc/testsuite/gm2/iso/pass/stringchar.mod
  4673308df9fe8082809963a37af79361  gcc/testsuite/gm2/iso/pass/subassign.mod
  de6f6670582027aff90b457bfa265df7  gcc/testsuite/gm2/iso/pass/testaddindr.mod
! a625a5586a65d0bdac2ea41616d23dd2  gcc/testsuite/gm2/iso/pass/testconv.def
  dfca0dd59c3c7312a6b41fa51e0b066b  gcc/testsuite/gm2/iso/pass/testconv.mod
! 806610cfa169ab70d96edc5a5fad8c4c  gcc/testsuite/gm2/iso/pass/testconv2.def
  b47a3b6539789604b78c3a59b12dbfd0  gcc/testsuite/gm2/iso/pass/testconv2.mod
  2484172d14af2f08507f0df169a71631  gcc/testsuite/gm2/iso/pass/testconv3.mod
  20629a1e5119de086d6c7394f703ff06  gcc/testsuite/gm2/iso/pass/testconv4.mod
*************** a8dfff8749defc38e520cb1cb7e81369  gcc/te
*** 91846,91851 ****
--- 101099,101105 ----
  e189208c21019fb1a7863f3962e87c90  gcc/testsuite/gm2/iso/pass/unbounded2.mod
  d71a6ac0e0221fe50dc256107211dd31  gcc/testsuite/gm2/iso/run/pass/adraddress.mod
  68113bc0c0aa774be83e0af4a4e7ba12  gcc/testsuite/gm2/iso/run/pass/adrunbounded3.mod
+ a0eb439d9f4cc681b21fe56bfdb9af1a  gcc/testsuite/gm2/iso/run/pass/array9.mod
  121d71fd48fd99bf056f3b7aea7e0e93  gcc/testsuite/gm2/iso/run/pass/baseimport.mod
  65d3849661c7903f9ca8189e50514102  gcc/testsuite/gm2/iso/run/pass/compsize.mod
  b608ff9e7423b8fdeb8fd6a83709a0fd  gcc/testsuite/gm2/iso/run/pass/concurrentstore.mod
*************** b608ff9e7423b8fdeb8fd6a83709a0fd  gcc/te
*** 91853,91878 ****
  ee63f51af90a190018b96e17aa2c2443  gcc/testsuite/gm2/iso/run/pass/constructor1.mod
  4196c0d5e4d26c006a27e937a231c7cb  gcc/testsuite/gm2/iso/run/pass/constructor2.mod
  7b2fcdc6261cbefe83d48f9a7e242eda  gcc/testsuite/gm2/iso/run/pass/conststrarray.mod
  47411b6568e03dac16a9864783269f5a  gcc/testsuite/gm2/iso/run/pass/contimer.mod
  242408544a85a41bde4331e2cdc43cbd  gcc/testsuite/gm2/iso/run/pass/except.c
  9aa061ffb83b605de1bedd862a17d511  gcc/testsuite/gm2/iso/run/pass/except2.mod
! 9f23a8f311a1d0efa35ee25f237c7ea8  gcc/testsuite/gm2/iso/run/pass/except3.cpp
  ba514aa29332bacc0035fe9edad9d4c4  gcc/testsuite/gm2/iso/run/pass/except4.mod
! 85f01880a2418f7ec3d72ee3ab45ab44  gcc/testsuite/gm2/iso/run/pass/except5.cpp
  517736f3e4685a93515bb5ea51dd7019  gcc/testsuite/gm2/iso/run/pass/except5.mod
! 4105cfa2e76a27e78f01e15babb55ee9  gcc/testsuite/gm2/iso/run/pass/except6.cpp
  d8b017fce021a48a38acf23ef7022b6c  gcc/testsuite/gm2/iso/run/pass/except7.mod
  04ba215916e7b57b916c2e62ed91edb7  gcc/testsuite/gm2/iso/run/pass/except8.mod
! 3a33d4ad03e135b09aa4cc11e6585e21  gcc/testsuite/gm2/iso/run/pass/fileio.def
  159695faf1dbe033f4bdae12a3c1cd48  gcc/testsuite/gm2/iso/run/pass/fileio.mod
  5b867827747aed9a1a9fb833804c50c3  gcc/testsuite/gm2/iso/run/pass/hello.mod
  6c43786a6103c10ca7df3fb5094e1ce7  gcc/testsuite/gm2/iso/run/pass/int8field.mod
! bd84b85a4aea039cace1cdb2c47ad316  gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp
  78b19b6a53ad0f68a754cdbef5b02acc  gcc/testsuite/gm2/iso/run/pass/long.mod
  2368215508e35ca63735123b24dbd9ab  gcc/testsuite/gm2/iso/run/pass/long2.mod
  53e603c239ad4622684dde9c1e8421fb  gcc/testsuite/gm2/iso/run/pass/long3.mod
  3e9aea64035e591be34ca0f395c7db6e  gcc/testsuite/gm2/iso/run/pass/long4.c
  a41aa2876a78259fcb150b4c9acea2bc  gcc/testsuite/gm2/iso/run/pass/long4.mod
  eecc4d338e2a2a888d615b86ee87929e  gcc/testsuite/gm2/iso/run/pass/minmax.mod
  e011dc8b55ca1eab0785cef2ccdbf70e  gcc/testsuite/gm2/iso/run/pass/modulus.mod
  65216817410e2be29939a9fa49eb5014  gcc/testsuite/gm2/iso/run/pass/nestediso.mod
--- 101107,101134 ----
  ee63f51af90a190018b96e17aa2c2443  gcc/testsuite/gm2/iso/run/pass/constructor1.mod
  4196c0d5e4d26c006a27e937a231c7cb  gcc/testsuite/gm2/iso/run/pass/constructor2.mod
  7b2fcdc6261cbefe83d48f9a7e242eda  gcc/testsuite/gm2/iso/run/pass/conststrarray.mod
+ 4dfe8fae139497f03d3adba7f0cfd5ac  gcc/testsuite/gm2/iso/run/pass/constvec3.mod
  47411b6568e03dac16a9864783269f5a  gcc/testsuite/gm2/iso/run/pass/contimer.mod
  242408544a85a41bde4331e2cdc43cbd  gcc/testsuite/gm2/iso/run/pass/except.c
  9aa061ffb83b605de1bedd862a17d511  gcc/testsuite/gm2/iso/run/pass/except2.mod
! 6b261956855190be8b2740e46aac736f  gcc/testsuite/gm2/iso/run/pass/except3.cpp
  ba514aa29332bacc0035fe9edad9d4c4  gcc/testsuite/gm2/iso/run/pass/except4.mod
! 1f5f1fda8c08ec32ae8150a1653c0f0e  gcc/testsuite/gm2/iso/run/pass/except5.cpp
  517736f3e4685a93515bb5ea51dd7019  gcc/testsuite/gm2/iso/run/pass/except5.mod
! fc42a8f2663ca8a1ea99862c883da401  gcc/testsuite/gm2/iso/run/pass/except6.cpp
  d8b017fce021a48a38acf23ef7022b6c  gcc/testsuite/gm2/iso/run/pass/except7.mod
  04ba215916e7b57b916c2e62ed91edb7  gcc/testsuite/gm2/iso/run/pass/except8.mod
! 6e37fcb44019681ce22e26c31220401e  gcc/testsuite/gm2/iso/run/pass/fileio.def
  159695faf1dbe033f4bdae12a3c1cd48  gcc/testsuite/gm2/iso/run/pass/fileio.mod
  5b867827747aed9a1a9fb833804c50c3  gcc/testsuite/gm2/iso/run/pass/hello.mod
  6c43786a6103c10ca7df3fb5094e1ce7  gcc/testsuite/gm2/iso/run/pass/int8field.mod
! e66d9ee7873341e9eb48afd659439492  gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp
  78b19b6a53ad0f68a754cdbef5b02acc  gcc/testsuite/gm2/iso/run/pass/long.mod
  2368215508e35ca63735123b24dbd9ab  gcc/testsuite/gm2/iso/run/pass/long2.mod
  53e603c239ad4622684dde9c1e8421fb  gcc/testsuite/gm2/iso/run/pass/long3.mod
  3e9aea64035e591be34ca0f395c7db6e  gcc/testsuite/gm2/iso/run/pass/long4.c
  a41aa2876a78259fcb150b4c9acea2bc  gcc/testsuite/gm2/iso/run/pass/long4.mod
+ c73214675f978941f5bb6b8c20015b03  gcc/testsuite/gm2/iso/run/pass/m2date.mod
  eecc4d338e2a2a888d615b86ee87929e  gcc/testsuite/gm2/iso/run/pass/minmax.mod
  e011dc8b55ca1eab0785cef2ccdbf70e  gcc/testsuite/gm2/iso/run/pass/modulus.mod
  65216817410e2be29939a9fa49eb5014  gcc/testsuite/gm2/iso/run/pass/nestediso.mod
*************** ae1b3c93233365bbbcb2f5542962646a  gcc/te
*** 91889,91902 ****
  3f14a46336d423e5cb9de1c089eea96a  gcc/testsuite/gm2/iso/run/pass/shift2.mod
  e11beea7b7818fdfd024c43f20393bd9  gcc/testsuite/gm2/iso/run/pass/shift3.mod
  ac46225adaf10940cda4fe816a959fae  gcc/testsuite/gm2/iso/run/pass/shift4.mod
! 9e2ec46d1082af9566a6c5fa049fd312  gcc/testsuite/gm2/iso/run/pass/simple
  0fa8f6bac59d5b939cee67f911d96f9d  gcc/testsuite/gm2/iso/run/pass/simplelarge.mod
  9faeaea3c4d878cb86d98cb51b4ee431  gcc/testsuite/gm2/iso/run/pass/strcons.mod
  60a7bd468fc8261e7b7dc9630d14b2d9  gcc/testsuite/gm2/iso/run/pass/strcons2.mod
  1f9a23a64b9cea7c69a1b943d90754fd  gcc/testsuite/gm2/iso/run/pass/t.cpp
  16c27bfa440aa6625203fa682eb0abc2  gcc/testsuite/gm2/iso/run/pass/t1.cpp
  16aea3bbcc34c8fd20153cc663287042  gcc/testsuite/gm2/iso/run/pass/testLength.mod
  31f73a7b9921b81db0836fefb79b1a18  gcc/testsuite/gm2/iso/run/pass/testarray.mod
  7bf6b9debcb93e4d790de77b832f7e02  gcc/testsuite/gm2/iso/run/pass/testgeneric.mod
  2099fa3a5b7dcee8b0ecac40aba33545  gcc/testsuite/gm2/iso/run/pass/testlarge.mod
  b0965c512d33d48ba22ab6ec0cbb43e1  gcc/testsuite/gm2/iso/run/pass/testsystem.mod
--- 101145,101163 ----
  3f14a46336d423e5cb9de1c089eea96a  gcc/testsuite/gm2/iso/run/pass/shift2.mod
  e11beea7b7818fdfd024c43f20393bd9  gcc/testsuite/gm2/iso/run/pass/shift3.mod
  ac46225adaf10940cda4fe816a959fae  gcc/testsuite/gm2/iso/run/pass/shift4.mod
! a3a9bfe46b5a2ad99d516b933303594a  gcc/testsuite/gm2/iso/run/pass/shorttest.mod
! bf6d1f778c9b35b434232d808ad7504e  gcc/testsuite/gm2/iso/run/pass/simple
  0fa8f6bac59d5b939cee67f911d96f9d  gcc/testsuite/gm2/iso/run/pass/simplelarge.mod
  9faeaea3c4d878cb86d98cb51b4ee431  gcc/testsuite/gm2/iso/run/pass/strcons.mod
  60a7bd468fc8261e7b7dc9630d14b2d9  gcc/testsuite/gm2/iso/run/pass/strcons2.mod
+ 04ed99500b2e87921a155bbca42a942e  gcc/testsuite/gm2/iso/run/pass/strcons3.mod
+ a54ec8a7fb388143dcdf9bf6ba8a0358  gcc/testsuite/gm2/iso/run/pass/strcons4.mod
  1f9a23a64b9cea7c69a1b943d90754fd  gcc/testsuite/gm2/iso/run/pass/t.cpp
  16c27bfa440aa6625203fa682eb0abc2  gcc/testsuite/gm2/iso/run/pass/t1.cpp
  16aea3bbcc34c8fd20153cc663287042  gcc/testsuite/gm2/iso/run/pass/testLength.mod
  31f73a7b9921b81db0836fefb79b1a18  gcc/testsuite/gm2/iso/run/pass/testarray.mod
+ 4d7687bca068e2077f170b6c8590e9e6  gcc/testsuite/gm2/iso/run/pass/testclock.mod
+ 8b34e4874d9f5cb694efcb8924f36ea9  gcc/testsuite/gm2/iso/run/pass/testclock2.mod
  7bf6b9debcb93e4d790de77b832f7e02  gcc/testsuite/gm2/iso/run/pass/testgeneric.mod
  2099fa3a5b7dcee8b0ecac40aba33545  gcc/testsuite/gm2/iso/run/pass/testlarge.mod
  b0965c512d33d48ba22ab6ec0cbb43e1  gcc/testsuite/gm2/iso/run/pass/testsystem.mod
*************** c58783000fdf657d736883de5f9c0e66  gcc/te
*** 91919,91925 ****
  c858924bce721c82b81fe5971d941525  gcc/testsuite/gm2/iso/run/pass/unbounded7.mod
  921f10b539ea9de80e580a163c6a1592  gcc/testsuite/gm2/iso/run/pass/unbounded8.mod
  2953f3f6c049c7e320944ef21086898c  gcc/testsuite/gm2/isocoroutines/run/pass/coroutine.mod
! c6c371c1694503977255f86cf5bf9a77  gcc/testsuite/gm2/isocoroutines/run/pass/isocoroutines-run-pass.exp
  5f42d4cb86819e23d09f17a63fe55119  gcc/testsuite/gm2/isolib/run/pass/arraycons.mod
  621b2a675979737e813f6e7921dd1f57  gcc/testsuite/gm2/isolib/run/pass/arraycons2.mod
  649d6c8370932f49c3c981cf1b5bd669  gcc/testsuite/gm2/isolib/run/pass/arraycons3.mod
--- 101180,101186 ----
  c858924bce721c82b81fe5971d941525  gcc/testsuite/gm2/iso/run/pass/unbounded7.mod
  921f10b539ea9de80e580a163c6a1592  gcc/testsuite/gm2/iso/run/pass/unbounded8.mod
  2953f3f6c049c7e320944ef21086898c  gcc/testsuite/gm2/isocoroutines/run/pass/coroutine.mod
! 56893f47c58603e7b200a06534e5e98a  gcc/testsuite/gm2/isocoroutines/run/pass/isocoroutines-run-pass.exp
  5f42d4cb86819e23d09f17a63fe55119  gcc/testsuite/gm2/isolib/run/pass/arraycons.mod
  621b2a675979737e813f6e7921dd1f57  gcc/testsuite/gm2/isolib/run/pass/arraycons2.mod
  649d6c8370932f49c3c981cf1b5bd669  gcc/testsuite/gm2/isolib/run/pass/arraycons3.mod
*************** e69f9123c984a5f4de915dcb49c67992  gcc/te
*** 91932,91938 ****
  6bff3360ddd264152005b5075b864933  gcc/testsuite/gm2/isolib/run/pass/hello.mod
  0d5737786fade9dd892b24e28ec8a02e  gcc/testsuite/gm2/isolib/run/pass/insert.mod
  e05c5d708e4a400c5fb8dc3bba5563ba  gcc/testsuite/gm2/isolib/run/pass/intconv.mod
! 8b87db7905044a9f661c0a454fd656a7  gcc/testsuite/gm2/isolib/run/pass/isolib-run-pass.exp
  fa2d96397ca227b193a0d90776b72945  gcc/testsuite/gm2/isolib/run/pass/longstr.mod
  ee4f4587ab8a344c634f4734daca875f  gcc/testsuite/gm2/isolib/run/pass/openlibc.mod
  737c28bca38981081d331976893f69e5  gcc/testsuite/gm2/isolib/run/pass/raise.mod
--- 101193,101199 ----
  6bff3360ddd264152005b5075b864933  gcc/testsuite/gm2/isolib/run/pass/hello.mod
  0d5737786fade9dd892b24e28ec8a02e  gcc/testsuite/gm2/isolib/run/pass/insert.mod
  e05c5d708e4a400c5fb8dc3bba5563ba  gcc/testsuite/gm2/isolib/run/pass/intconv.mod
! 0b37ce28640354a8964d6107dccebd08  gcc/testsuite/gm2/isolib/run/pass/isolib-run-pass.exp
  fa2d96397ca227b193a0d90776b72945  gcc/testsuite/gm2/isolib/run/pass/longstr.mod
  ee4f4587ab8a344c634f4734daca875f  gcc/testsuite/gm2/isolib/run/pass/openlibc.mod
  737c28bca38981081d331976893f69e5  gcc/testsuite/gm2/isolib/run/pass/raise.mod
*************** eede0c581979969aea0b76b074615eb7  gcc/te
*** 91944,91983 ****
  68baefe452621d636165c7627f8fe3f1  gcc/testsuite/gm2/isolib/run/pass/realconv.mod
  7a82b793fe5bff4bdea68a1eff97b46d  gcc/testsuite/gm2/isolib/run/pass/realconv2.mod
  ffe3859b8cbbed7ff7dedbdc8ba61bdf  gcc/testsuite/gm2/isolib/run/pass/realstr.mod
  443c40937dbf55c93e28bda7293d92f9  gcc/testsuite/gm2/isolib/run/pass/sigfig.mod
  f9fbb418b92d420ebb3f6a854efc8622  gcc/testsuite/gm2/isolib/run/pass/stringreal2.mod
! e98acdda8385726dbc5cb5a3390a50c8  gcc/testsuite/gm2/isolib/run/pass/termfile.mod-disabled
  dc2a1d9cbb699aea2bb0228df7dc3bab  gcc/testsuite/gm2/isolib/run/pass/testappend.mod
  3c2b8785cd9a160a4d9c0557e6712778  gcc/testsuite/gm2/isolib/run/pass/testinput
  c52fa331117eec4f92c2d39dc4aebd31  gcc/testsuite/gm2/isolib/run/pass/testio.mod
  440f50991d6576420a0c429b4325688c  gcc/testsuite/gm2/isolib/run/pass/testio2.mod
  a0258029a47ea22b2a2b407eee876964  gcc/testsuite/gm2/isolib/run/pass/testmem.mod
  b0db180b49d8a548d336623cfa95886b  gcc/testsuite/gm2/isolib/run/pass/testmem2.mod
  4cb5e85fdcafc58f3b09f42c156b108c  gcc/testsuite/gm2/isolib/run/pass/testnumber
  6c6edbd10f860aaf9371f352826b9106  gcc/testsuite/gm2/isolib/run/pass/tiny.mod
  d090d3879801d41d7c6558ac9d7a72a7  gcc/testsuite/gm2/isolib/run/pass/tiny2.mod
  05532bafc054ae01df9117b40867ddab  gcc/testsuite/gm2/isolib/run/pass/tiny3.mod
  2a2cf97dffad96d62283f09f87ed0d96  gcc/testsuite/gm2/isolib/run/pass/tiny4.mod
  2af224884c7fd21f0af607da12e090cc  gcc/testsuite/gm2/isolib/run/pass/tiny5.mod
! c09eee246d1722077e9740755ba921ad  gcc/testsuite/gm2/libs/a.def
  401be10a7c2b78bf15c555d81fbff436  gcc/testsuite/gm2/libs/a.mod
! 79165fef28467755aebb3e76e2dcc345  gcc/testsuite/gm2/libs/b.def
  255c4433dfe3a4bd1e6aa54c906896df  gcc/testsuite/gm2/libs/b.mod
  1f14e5bf520dcaeeb7511d6145e105b5  gcc/testsuite/gm2/libs/testraw.mod
  2c439af31b3c4c4dce8526b98bc75c75  gcc/testsuite/gm2/link/externalscaffold/pass/hello.mod
! e2961854e3bf16a45239706b5cbf6ac9  gcc/testsuite/gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp
! b47d7775c9533f93d244634db9c2af99  gcc/testsuite/gm2/link/externalscaffold/pass/scaffold.c
! 9bc0efe4cc984e96610339654d2734f3  gcc/testsuite/gm2/link/min/pass/link-min-pass.exp
  3ccc25a86d469b340eb7c17d50759bdd  gcc/testsuite/gm2/link/min/pass/tiny.mod
  ed8bf85772f77dfafb862d1ea45af84b  gcc/testsuite/gm2/link/nondefaultext/pass/hello.md
  8b7fd72f6b1125c4b22c0d196be84399  gcc/testsuite/gm2/link/nondefaultext/pass/liba.dm
  ecb93dcfa825a2109fb5060ea6d89c3a  gcc/testsuite/gm2/link/nondefaultext/pass/liba.md
! 68b229853344790f3b2485be0dcba53b  gcc/testsuite/gm2/link/nondefaultext/pass/link-nondefaultext-pass.exp
  aa515547392bf65d8ff6de37572453f7  gcc/testsuite/gm2/link/pim/fail/import.mod
! 7453a93e5b831794ae2da71d0227644f  gcc/testsuite/gm2/link/pim/fail/link-pim-fail.exp
! e89398b9451cbbf6acac8357112be31c  gcc/testsuite/gm2/link/pim/pass/link-pim-pass.exp
  8a50d2a21ae4fff8f675a6613ac56bf8  gcc/testsuite/gm2/link/pimc/pass/README
! 06561bc296754eea277f02834e0a0913  gcc/testsuite/gm2/link/pimc/pass/link-pimc-pass.exp
  ac3ed15d12ee3e27a286169ba4da2ec7  gcc/testsuite/gm2/link/pimc/pass/testdtoa.mod
  748cc29901521f865e6a4e6ce06b05d5  gcc/testsuite/gm2/link/pimc/pass/testerrno.mod
  33b3f009f04c7dd34f235050e7c63342  gcc/testsuite/gm2/link/pimc/pass/testgetopt.mod
--- 101205,101248 ----
  68baefe452621d636165c7627f8fe3f1  gcc/testsuite/gm2/isolib/run/pass/realconv.mod
  7a82b793fe5bff4bdea68a1eff97b46d  gcc/testsuite/gm2/isolib/run/pass/realconv2.mod
  ffe3859b8cbbed7ff7dedbdc8ba61bdf  gcc/testsuite/gm2/isolib/run/pass/realstr.mod
+ 3cbddbc021a2ffd0c27fd9d14cb0b6d7  gcc/testsuite/gm2/isolib/run/pass/seqappend.mod
  443c40937dbf55c93e28bda7293d92f9  gcc/testsuite/gm2/isolib/run/pass/sigfig.mod
+ f9ceb5c30759365763fecbe5f99b1cac  gcc/testsuite/gm2/isolib/run/pass/skiplinetest.mod
  f9fbb418b92d420ebb3f6a854efc8622  gcc/testsuite/gm2/isolib/run/pass/stringreal2.mod
! 5df30cff4b82f40dfe2182af6f785672  gcc/testsuite/gm2/isolib/run/pass/termfile.mod-disabled
  dc2a1d9cbb699aea2bb0228df7dc3bab  gcc/testsuite/gm2/isolib/run/pass/testappend.mod
+ 44b0706459af32f2fcae978eb612d24a  gcc/testsuite/gm2/isolib/run/pass/testdelete.mod
  3c2b8785cd9a160a4d9c0557e6712778  gcc/testsuite/gm2/isolib/run/pass/testinput
  c52fa331117eec4f92c2d39dc4aebd31  gcc/testsuite/gm2/isolib/run/pass/testio.mod
  440f50991d6576420a0c429b4325688c  gcc/testsuite/gm2/isolib/run/pass/testio2.mod
  a0258029a47ea22b2a2b407eee876964  gcc/testsuite/gm2/isolib/run/pass/testmem.mod
  b0db180b49d8a548d336623cfa95886b  gcc/testsuite/gm2/isolib/run/pass/testmem2.mod
  4cb5e85fdcafc58f3b09f42c156b108c  gcc/testsuite/gm2/isolib/run/pass/testnumber
+ d156266b63dbf06a30dd66b760aac7b3  gcc/testsuite/gm2/isolib/run/pass/testreadint.mod
  6c6edbd10f860aaf9371f352826b9106  gcc/testsuite/gm2/isolib/run/pass/tiny.mod
  d090d3879801d41d7c6558ac9d7a72a7  gcc/testsuite/gm2/isolib/run/pass/tiny2.mod
  05532bafc054ae01df9117b40867ddab  gcc/testsuite/gm2/isolib/run/pass/tiny3.mod
  2a2cf97dffad96d62283f09f87ed0d96  gcc/testsuite/gm2/isolib/run/pass/tiny4.mod
  2af224884c7fd21f0af607da12e090cc  gcc/testsuite/gm2/isolib/run/pass/tiny5.mod
! bd217ab88c61f22ada2973ae26f9cc3e  gcc/testsuite/gm2/libs/a.def
  401be10a7c2b78bf15c555d81fbff436  gcc/testsuite/gm2/libs/a.mod
! f6b27d03db8b6eb2b6829a907c716dd6  gcc/testsuite/gm2/libs/b.def
  255c4433dfe3a4bd1e6aa54c906896df  gcc/testsuite/gm2/libs/b.mod
  1f14e5bf520dcaeeb7511d6145e105b5  gcc/testsuite/gm2/libs/testraw.mod
  2c439af31b3c4c4dce8526b98bc75c75  gcc/testsuite/gm2/link/externalscaffold/pass/hello.mod
! 89bc20aa9daee0d9f0c9199aad4a30c3  gcc/testsuite/gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp
! b7ca4351724a2591b8a8ca4451a7a44b  gcc/testsuite/gm2/link/externalscaffold/pass/scaffold.c
! 5fffb2e83276612ecffbf0bfb0b28a60  gcc/testsuite/gm2/link/min/pass/link-min-pass.exp
  3ccc25a86d469b340eb7c17d50759bdd  gcc/testsuite/gm2/link/min/pass/tiny.mod
  ed8bf85772f77dfafb862d1ea45af84b  gcc/testsuite/gm2/link/nondefaultext/pass/hello.md
  8b7fd72f6b1125c4b22c0d196be84399  gcc/testsuite/gm2/link/nondefaultext/pass/liba.dm
  ecb93dcfa825a2109fb5060ea6d89c3a  gcc/testsuite/gm2/link/nondefaultext/pass/liba.md
! 28635c3c2b9c6f5050ac2b9fa31878dd  gcc/testsuite/gm2/link/nondefaultext/pass/link-nondefaultext-pass.exp
  aa515547392bf65d8ff6de37572453f7  gcc/testsuite/gm2/link/pim/fail/import.mod
! 0bf12498d383688b23386f9303cc2ac6  gcc/testsuite/gm2/link/pim/fail/link-pim-fail.exp
! 6eee53408332b7da3deb81fdd8b396f9  gcc/testsuite/gm2/link/pim/pass/link-pim-pass.exp
  8a50d2a21ae4fff8f675a6613ac56bf8  gcc/testsuite/gm2/link/pimc/pass/README
! 65f3163ea4f3fd4eacab398c67473f2e  gcc/testsuite/gm2/link/pimc/pass/link-pimc-pass.exp
  ac3ed15d12ee3e27a286169ba4da2ec7  gcc/testsuite/gm2/link/pimc/pass/testdtoa.mod
  748cc29901521f865e6a4e6ce06b05d5  gcc/testsuite/gm2/link/pimc/pass/testerrno.mod
  33b3f009f04c7dd34f235050e7c63342  gcc/testsuite/gm2/link/pimc/pass/testgetopt.mod
*************** e30942aa3af4b958b6e82514e2c79319  gcc/te
*** 91990,92017 ****
  8f9f0512919ed668d4bf930600338049  gcc/testsuite/gm2/link/pimc/pass/testtermios.mod
  b2dbac8e94edbde7e2a350006308609d  gcc/testsuite/gm2/link/pimc/pass/testunixargs.mod
  7073078d3a767f64d74a7c6a946627dd  gcc/testsuite/gm2/link/pimc/pass/testwrapc.mod
  597ea84fb3ecf81fd258fdb6e08e23d0  gcc/testsuite/gm2/linking/libarchive/pass/c.c
! 094c459aa4a4c2110e696178c3cfcf81  gcc/testsuite/gm2/linking/libarchive/pass/c.def
! 2e48c3b8cc6d9d5c29a8164ab054a10c  gcc/testsuite/gm2/linking/libarchive/pass/d.def
! 09a5224a483931f576f2fa39c0d522fb  gcc/testsuite/gm2/linking/libarchive/pass/e.def
! 18acaf65202b92ca4288f5c0a3bdffe0  gcc/testsuite/gm2/linking/libarchive/pass/linking-libarchive-pass.exp
  5b02e5fe6d2b26e7cb50346d3ab00754  gcc/testsuite/gm2/linking/libarchive/pass/m.mod
  7819a0ba8fda65020ba1ae07ac6fce7b  gcc/testsuite/gm2/linking/verbose/pass/hello.mod
! ba20dbe52b908facf31c003754a4c1bf  gcc/testsuite/gm2/linking/verbose/pass/linking-verbose-pass.exp
  7f1f780a9f09bc630acf35993e9ad143  gcc/testsuite/gm2/pim/fail/TestLong3.mod
  53c2be4129dfbffffa2e6020dad0d60a  gcc/testsuite/gm2/pim/fail/TestLong6.mod
! bb62626d134fcc38e543796338d9e58a  gcc/testsuite/gm2/pim/fail/a.def
  0055acf9496be077a892c8cd68e2dad7  gcc/testsuite/gm2/pim/fail/assignbounds.mod
  ae2a310af406298619df341180d04311  gcc/testsuite/gm2/pim/fail/assignsubrange.mod
  0ada22f99bc8301af1fee59f6539d4a4  gcc/testsuite/gm2/pim/fail/assignsubrange2.mod
! 82073e6799f525d12cead346e8067ca8  gcc/testsuite/gm2/pim/fail/b.def
! fe1101174e39d8126579814b8a12e7ab  gcc/testsuite/gm2/pim/fail/bad.def
  db7436cc6948424e65700d7b6597862f  gcc/testsuite/gm2/pim/fail/badconst.mod
  89a7178511546bb8afdc764de0335c4a  gcc/testsuite/gm2/pim/fail/badfunc.mod
  8805471600280b26d1436d6cfcff4ac9  gcc/testsuite/gm2/pim/fail/badparam.mod
  06e24a2d59b14219f627f48df32c5901  gcc/testsuite/gm2/pim/fail/badparam2.mod
  c0a1e7a398973481be6f30c11eee5bae  gcc/testsuite/gm2/pim/fail/badtype.mod
  3005117cf02eff524c88b0f70386ab9c  gcc/testsuite/gm2/pim/fail/badtypes.mod
  32a338cbfd9aab52ae0e22a277304859  gcc/testsuite/gm2/pim/fail/bits.mod
  2560330c2c220899292051f64787da55  gcc/testsuite/gm2/pim/fail/bits2.mod
  9ec960da3d55a2f6364f7233f5a8d76f  gcc/testsuite/gm2/pim/fail/bits3.mod
--- 101255,101308 ----
  8f9f0512919ed668d4bf930600338049  gcc/testsuite/gm2/link/pimc/pass/testtermios.mod
  b2dbac8e94edbde7e2a350006308609d  gcc/testsuite/gm2/link/pimc/pass/testunixargs.mod
  7073078d3a767f64d74a7c6a946627dd  gcc/testsuite/gm2/link/pimc/pass/testwrapc.mod
+ 01b4a3c4c4320ca3d0e3c2029589f9ff  gcc/testsuite/gm2/linking/fail/badimp.def
+ e82da3fe10ee926313256a79e605a816  gcc/testsuite/gm2/linking/fail/badimp.mod
+ d91e3773db999d2fe232976e8789d766  gcc/testsuite/gm2/linking/fail/linking-fail.exp
+ 12f2f0e87d8f3d594a1aafa133621521  gcc/testsuite/gm2/linking/fail/testbadimp.mod
  597ea84fb3ecf81fd258fdb6e08e23d0  gcc/testsuite/gm2/linking/libarchive/pass/c.c
! d444792c61bcc5a0c5c28a0750cafb77  gcc/testsuite/gm2/linking/libarchive/pass/c.def
! f041b4e49836baefc9d3cc43b4458b57  gcc/testsuite/gm2/linking/libarchive/pass/d.def
! d9cde3f13282a3c9db17ff2910670bce  gcc/testsuite/gm2/linking/libarchive/pass/e.def
! acf71ec70742f87a40c93f0845a6ea31  gcc/testsuite/gm2/linking/libarchive/pass/linking-libarchive-pass.exp
  5b02e5fe6d2b26e7cb50346d3ab00754  gcc/testsuite/gm2/linking/libarchive/pass/m.mod
  7819a0ba8fda65020ba1ae07ac6fce7b  gcc/testsuite/gm2/linking/verbose/pass/hello.mod
! a1cf4dc2de5b7bfaec2b1559277025ab  gcc/testsuite/gm2/linking/verbose/pass/linking-verbose-pass.exp
  7f1f780a9f09bc630acf35993e9ad143  gcc/testsuite/gm2/pim/fail/TestLong3.mod
  53c2be4129dfbffffa2e6020dad0d60a  gcc/testsuite/gm2/pim/fail/TestLong6.mod
! f4a1f779e00c0da979b4b410d9cf9d64  gcc/testsuite/gm2/pim/fail/a.def
  0055acf9496be077a892c8cd68e2dad7  gcc/testsuite/gm2/pim/fail/assignbounds.mod
  ae2a310af406298619df341180d04311  gcc/testsuite/gm2/pim/fail/assignsubrange.mod
  0ada22f99bc8301af1fee59f6539d4a4  gcc/testsuite/gm2/pim/fail/assignsubrange2.mod
! 6879ded9c8b201a5a4df3bb922606165  gcc/testsuite/gm2/pim/fail/b.def
! 020fef77f33e96c63eb4f054e5369a7e  gcc/testsuite/gm2/pim/fail/bad.def
! 77c56b6eef721da24ade0ed109842bc8  gcc/testsuite/gm2/pim/fail/badbecomes.mod
  db7436cc6948424e65700d7b6597862f  gcc/testsuite/gm2/pim/fail/badconst.mod
+ 135de6d4b12537bab16841811ec73ec7  gcc/testsuite/gm2/pim/fail/badexpression.mod
+ 2e24a3e28841ca8e384564b7acfa33e3  gcc/testsuite/gm2/pim/fail/badexpression2.mod
  89a7178511546bb8afdc764de0335c4a  gcc/testsuite/gm2/pim/fail/badfunc.mod
+ 3cd3393b9ababea5806a0cace8d0ebbc  gcc/testsuite/gm2/pim/fail/badifin.mod
  8805471600280b26d1436d6cfcff4ac9  gcc/testsuite/gm2/pim/fail/badparam.mod
  06e24a2d59b14219f627f48df32c5901  gcc/testsuite/gm2/pim/fail/badparam2.mod
+ 5d93449a02b33b6c2449fb7d565b3f70  gcc/testsuite/gm2/pim/fail/badpointer.mod
+ 2ae2cd34369ca940ee1745b82f71bc5e  gcc/testsuite/gm2/pim/fail/badpointer2.mod
+ 32fe5d6d49f5d1c2c191cf864bc0f191  gcc/testsuite/gm2/pim/fail/badpointer3.mod
+ ecdbb910ccdbf4a9ff9978bb73c88f41  gcc/testsuite/gm2/pim/fail/badpointer4.mod
+ 3b70d947b4ea67fb7afcaddfd1ba2418  gcc/testsuite/gm2/pim/fail/badprocbool.mod
+ 1a8f950ee43a0dfff7a19a75a075d9c8  gcc/testsuite/gm2/pim/fail/badproccard.mod
+ 07d625c5434862792bce301cb2616c92  gcc/testsuite/gm2/pim/fail/badprocint.mod
+ dbe65c434f0a6b28ab79a771b3662b3f  gcc/testsuite/gm2/pim/fail/badprocint2.mod
+ 212d8402f510392bda8bdfb7796944e8  gcc/testsuite/gm2/pim/fail/badproctype.mod
+ 32e2149222f362e066e9c3d51d096689  gcc/testsuite/gm2/pim/fail/badset1.mod
+ 9d816942e762e0bae32e238998bf7a78  gcc/testsuite/gm2/pim/fail/badset2.mod
+ 9f5d37c008d5d01a1664741acf57d54f  gcc/testsuite/gm2/pim/fail/badset3.mod
+ 69df88229bd4b238812996b6fbfbf3bf  gcc/testsuite/gm2/pim/fail/badset4.mod
+ e9acdfa551c199719682e8ff1385a93b  gcc/testsuite/gm2/pim/fail/badset5.mod
+ 30d4798fcbacf399edca84abb5a72c04  gcc/testsuite/gm2/pim/fail/badset6.mod
+ e7320c086510922ecadf60cbdfcaed03  gcc/testsuite/gm2/pim/fail/badset7.mod
  c0a1e7a398973481be6f30c11eee5bae  gcc/testsuite/gm2/pim/fail/badtype.mod
+ 91ac07218947f6393b3f0010f3bc2bca  gcc/testsuite/gm2/pim/fail/badtype2.mod
  3005117cf02eff524c88b0f70386ab9c  gcc/testsuite/gm2/pim/fail/badtypes.mod
+ 339039fa4de08c0d18a74fb830b428c9  gcc/testsuite/gm2/pim/fail/badxproc.mod
  32a338cbfd9aab52ae0e22a277304859  gcc/testsuite/gm2/pim/fail/bits.mod
  2560330c2c220899292051f64787da55  gcc/testsuite/gm2/pim/fail/bits2.mod
  9ec960da3d55a2f6364f7233f5a8d76f  gcc/testsuite/gm2/pim/fail/bits3.mod
*************** b8a4b703630278841a4e9c5abedc18d4  gcc/te
*** 92030,92053 ****
  4df60ae154b7faa7f6de3b7b7408bd61  gcc/testsuite/gm2/pim/fail/expression.mod
  69c2ed682fb94fb926da925d15f00d94  gcc/testsuite/gm2/pim/fail/expression2.mod
  c08ed0a5562d22ab62d13213541fcf63  gcc/testsuite/gm2/pim/fail/expression3.mod
  5aa9ea61b8279a2548ef04550b219d9c  gcc/testsuite/gm2/pim/fail/func.mod
! 3b65ab060215799682e0e1ee641110ab  gcc/testsuite/gm2/pim/fail/good.def
  d923e158bb4304b26276fbaa8e50d9a4  gcc/testsuite/gm2/pim/fail/good.mod
  d0fe89691db5ca3450f7ad712cc5ee70  gcc/testsuite/gm2/pim/fail/import.mod
  a4172d6ddd591491bdf158fd3ba334ac  gcc/testsuite/gm2/pim/fail/inserttok.def
  00e66be53b6ccc6d6f2ff968655ce82a  gcc/testsuite/gm2/pim/fail/inserttok.mod
  e4f3aa03a13772a61311e3a621c5815d  gcc/testsuite/gm2/pim/fail/integer.mod
  0a240b36d3db47443f0a95e22c855a93  gcc/testsuite/gm2/pim/fail/keyword.mod
! 2a103d82e8ed64d00ca674e4f1a0b91f  gcc/testsuite/gm2/pim/fail/largeconst.mod
  854f0526c0528a9407b98defcad3ca6e  gcc/testsuite/gm2/pim/fail/longtypes2.mod
  b427db0884d2f8b091058ee61533c919  gcc/testsuite/gm2/pim/fail/longtypes3.mod
  2d926c0f64b0b9703c54fb09f436ce2f  gcc/testsuite/gm2/pim/fail/multisetf.mod
  0542e1a427388e3c08141cc676209c01  gcc/testsuite/gm2/pim/fail/nested3.mod
  9ac4fcd1f17d553a94efa0253d01b65b  gcc/testsuite/gm2/pim/fail/opaque.mod
  0558acf54770c349f1d2896416c431cd  gcc/testsuite/gm2/pim/fail/opaque2.mod
  dbc7f420f29d7f33702b0a087b13dfe5  gcc/testsuite/gm2/pim/fail/opasfail.mod
  faec561d3f04b0e2ce0744d90d7cfc89  gcc/testsuite/gm2/pim/fail/opcpfail.mod
! 31ab2ed318290ff5ae4b9b33e5f1daf8  gcc/testsuite/gm2/pim/fail/pim-fail.exp
  5616ced320271fc3aa4b9aabbf232be6  gcc/testsuite/gm2/pim/fail/procmod.mod
  c3417d448fb9fb98d8dc4a12ef842bfe  gcc/testsuite/gm2/pim/fail/rotate.mod
  657c9c77d4fdc16a6981c1a9016b96bd  gcc/testsuite/gm2/pim/fail/rotate2.mod
--- 101321,101351 ----
  4df60ae154b7faa7f6de3b7b7408bd61  gcc/testsuite/gm2/pim/fail/expression.mod
  69c2ed682fb94fb926da925d15f00d94  gcc/testsuite/gm2/pim/fail/expression2.mod
  c08ed0a5562d22ab62d13213541fcf63  gcc/testsuite/gm2/pim/fail/expression3.mod
+ 5449317cc1e8981eb58899e0ea3bd6af  gcc/testsuite/gm2/pim/fail/foovaltype.mod
+ 9ef4769bf6ee7b9e2b95cbde24aca032  gcc/testsuite/gm2/pim/fail/forloop.mod
+ 8c952329bcbaf0b1ee0b8952a3b94b82  gcc/testsuite/gm2/pim/fail/forloopby.mod
  5aa9ea61b8279a2548ef04550b219d9c  gcc/testsuite/gm2/pim/fail/func.mod
! 2cd4667215afa0d15de23c0c1eb13225  gcc/testsuite/gm2/pim/fail/good.def
  d923e158bb4304b26276fbaa8e50d9a4  gcc/testsuite/gm2/pim/fail/good.mod
+ 7c57e05e47bb0f1a3586d50ba50e60ec  gcc/testsuite/gm2/pim/fail/highice.mod
  d0fe89691db5ca3450f7ad712cc5ee70  gcc/testsuite/gm2/pim/fail/import.mod
  a4172d6ddd591491bdf158fd3ba334ac  gcc/testsuite/gm2/pim/fail/inserttok.def
  00e66be53b6ccc6d6f2ff968655ce82a  gcc/testsuite/gm2/pim/fail/inserttok.mod
  e4f3aa03a13772a61311e3a621c5815d  gcc/testsuite/gm2/pim/fail/integer.mod
  0a240b36d3db47443f0a95e22c855a93  gcc/testsuite/gm2/pim/fail/keyword.mod
! 6259094a0eec030e93d2d3b426c04f42  gcc/testsuite/gm2/pim/fail/largeconst.mod
  854f0526c0528a9407b98defcad3ca6e  gcc/testsuite/gm2/pim/fail/longtypes2.mod
  b427db0884d2f8b091058ee61533c919  gcc/testsuite/gm2/pim/fail/longtypes3.mod
+ 10577e1478fd47ab7d00f9b6bd0954e7  gcc/testsuite/gm2/pim/fail/missingquote.mod
+ 73eb70da718cee3519c241a3c298fe30  gcc/testsuite/gm2/pim/fail/missingtsize.mod
+ 7c615849b6314ab7c181e993b2547860  gcc/testsuite/gm2/pim/fail/missingtsize2.mod
  2d926c0f64b0b9703c54fb09f436ce2f  gcc/testsuite/gm2/pim/fail/multisetf.mod
  0542e1a427388e3c08141cc676209c01  gcc/testsuite/gm2/pim/fail/nested3.mod
  9ac4fcd1f17d553a94efa0253d01b65b  gcc/testsuite/gm2/pim/fail/opaque.mod
  0558acf54770c349f1d2896416c431cd  gcc/testsuite/gm2/pim/fail/opaque2.mod
  dbc7f420f29d7f33702b0a087b13dfe5  gcc/testsuite/gm2/pim/fail/opasfail.mod
  faec561d3f04b0e2ce0744d90d7cfc89  gcc/testsuite/gm2/pim/fail/opcpfail.mod
! 17921f6a57a90644047ca3dcf1e35051  gcc/testsuite/gm2/pim/fail/pim-fail.exp
  5616ced320271fc3aa4b9aabbf232be6  gcc/testsuite/gm2/pim/fail/procmod.mod
  c3417d448fb9fb98d8dc4a12ef842bfe  gcc/testsuite/gm2/pim/fail/rotate.mod
  657c9c77d4fdc16a6981c1a9016b96bd  gcc/testsuite/gm2/pim/fail/rotate2.mod
*************** bbe032afb7144469b64701d7e625ebe2  gcc/te
*** 92059,92085 ****
  33460f69e106cb8c1ae8bed33c221cb4  gcc/testsuite/gm2/pim/fail/setunknown2.mod
  b5d72ddf37fa215a8a2ba4553362cbfd  gcc/testsuite/gm2/pim/fail/shift.mod
  db64b3313172b59590b6f9b32f53a1ce  gcc/testsuite/gm2/pim/fail/shift2.mod
  8aa2d8325556f352b6b882fd4cd11895  gcc/testsuite/gm2/pim/fail/subrange7.mod
  566ed8aac243c2ae03189af351fdb2f7  gcc/testsuite/gm2/pim/fail/unary.mod
  6b2aae15f03b3b527c6b65def68372e1  gcc/testsuite/gm2/pim/fail/undeclared.mod
  73b06c803daee19e6d765dda2acd92af  gcc/testsuite/gm2/pim/fail/val.mod
  867dfac1ab4a9272a16828f96f9e6a92  gcc/testsuite/gm2/pim/fail/val2.mod
  72e35287ef686c8b396c3bf22387eead  gcc/testsuite/gm2/pim/fail/wordconst.mod
  0b88c6a2cfbd995aaf3585fec521f5ec  gcc/testsuite/gm2/pim/no-options/run/pass/integer.mod
! ad3d82b54ec27a4fb46a938ddfb4d021  gcc/testsuite/gm2/pim/no-options/run/pass/pim-no-options-run-pass.exp
  121645d120989117b58eed5131eeb2d3  gcc/testsuite/gm2/pim/options/bounds/fail/IdentifierBug.mod
! edf11c7708bf1f2f260beebc6b22f82c  gcc/testsuite/gm2/pim/options/bounds/fail/pim-options-bounds-fail.exp
! 591835ce2f763bad0a7f66e3d2fce60d  gcc/testsuite/gm2/pim/options/optimize/run/pass/addition.def
  838ec2d9113314f57cbcb8d3e784174a  gcc/testsuite/gm2/pim/options/optimize/run/pass/addition.mod
  fbc17565218bf6416842770d3da67ef5  gcc/testsuite/gm2/pim/options/optimize/run/pass/concat.mod
! 88472a454ba761c12d67df8d511cef2c  gcc/testsuite/gm2/pim/options/optimize/run/pass/pim-options-optimize-run-pass.exp
  cee505de5fa1b51118f12fcc7bbed319  gcc/testsuite/gm2/pim/options/optimize/run/pass/testadd.mod
  9b4ff834f4fda732f403341ef20fcb41  gcc/testsuite/gm2/pim/pass/ABSBug.mod
! 02d579d6f0f04dfec8a0b1ada93284f8  gcc/testsuite/gm2/pim/pass/TestLong4.mod
  30a108d56cb05733a64006648ee09503  gcc/testsuite/gm2/pim/pass/TestLong7.mod
  3ca903eb9c23ee2cc7ac89972a5900f1  gcc/testsuite/gm2/pim/pass/TestLong8.mod
  2f681ff0fdc3d06a35cab66714ffedad  gcc/testsuite/gm2/pim/pass/TestLong9.mod
! e41ea5e4e05d1d6ff919805132450fdb  gcc/testsuite/gm2/pim/pass/another.mod
  4396ee17558776ba3841fe8a1b0b771d  gcc/testsuite/gm2/pim/pass/aochar.mod
  6e07c812fb11e8d41f4de237f9e6fcb7  gcc/testsuite/gm2/pim/pass/array.mod
  cecc4cd84db67b472280859e186e5bc8  gcc/testsuite/gm2/pim/pass/array2.mod
--- 101357,101388 ----
  33460f69e106cb8c1ae8bed33c221cb4  gcc/testsuite/gm2/pim/fail/setunknown2.mod
  b5d72ddf37fa215a8a2ba4553362cbfd  gcc/testsuite/gm2/pim/fail/shift.mod
  db64b3313172b59590b6f9b32f53a1ce  gcc/testsuite/gm2/pim/fail/shift2.mod
+ 571ec1fadb9b82dc9bc0fa9c60f3f97d  gcc/testsuite/gm2/pim/fail/strconst.def
  8aa2d8325556f352b6b882fd4cd11895  gcc/testsuite/gm2/pim/fail/subrange7.mod
  566ed8aac243c2ae03189af351fdb2f7  gcc/testsuite/gm2/pim/fail/unary.mod
  6b2aae15f03b3b527c6b65def68372e1  gcc/testsuite/gm2/pim/fail/undeclared.mod
  73b06c803daee19e6d765dda2acd92af  gcc/testsuite/gm2/pim/fail/val.mod
  867dfac1ab4a9272a16828f96f9e6a92  gcc/testsuite/gm2/pim/fail/val2.mod
  72e35287ef686c8b396c3bf22387eead  gcc/testsuite/gm2/pim/fail/wordconst.mod
+ 1f0526c0478c3774ed3cdec902a907f6  gcc/testsuite/gm2/pim/intrinsic/run/pass/cstub.c
+ fd6eb72232649a3b72bbfac8cd586dab  gcc/testsuite/gm2/pim/intrinsic/run/pass/cstub.def
+ d9381c573ba54033352079b207473d95  gcc/testsuite/gm2/pim/intrinsic/run/pass/pim-intrinsic-run-pass.exp
+ 1f09625540923df684a0c3405fee1e92  gcc/testsuite/gm2/pim/intrinsic/run/pass/test.mod
  0b88c6a2cfbd995aaf3585fec521f5ec  gcc/testsuite/gm2/pim/no-options/run/pass/integer.mod
! c4ab985a0ef10703c5ec7619b2b55869  gcc/testsuite/gm2/pim/no-options/run/pass/pim-no-options-run-pass.exp
  121645d120989117b58eed5131eeb2d3  gcc/testsuite/gm2/pim/options/bounds/fail/IdentifierBug.mod
! 511fffe8b94c9fa2c800d6840b6abcb2  gcc/testsuite/gm2/pim/options/bounds/fail/pim-options-bounds-fail.exp
! f5563548ef1fdbdcb312e81e4b06ca33  gcc/testsuite/gm2/pim/options/optimize/run/pass/addition.def
  838ec2d9113314f57cbcb8d3e784174a  gcc/testsuite/gm2/pim/options/optimize/run/pass/addition.mod
  fbc17565218bf6416842770d3da67ef5  gcc/testsuite/gm2/pim/options/optimize/run/pass/concat.mod
! 618c022604bc001d33e6c0544fccfcee  gcc/testsuite/gm2/pim/options/optimize/run/pass/pim-options-optimize-run-pass.exp
  cee505de5fa1b51118f12fcc7bbed319  gcc/testsuite/gm2/pim/options/optimize/run/pass/testadd.mod
  9b4ff834f4fda732f403341ef20fcb41  gcc/testsuite/gm2/pim/pass/ABSBug.mod
! e026269fe28e5f09779af73f2cea83b1  gcc/testsuite/gm2/pim/pass/TestLong4.mod
  30a108d56cb05733a64006648ee09503  gcc/testsuite/gm2/pim/pass/TestLong7.mod
  3ca903eb9c23ee2cc7ac89972a5900f1  gcc/testsuite/gm2/pim/pass/TestLong8.mod
  2f681ff0fdc3d06a35cab66714ffedad  gcc/testsuite/gm2/pim/pass/TestLong9.mod
! 8b7f991b37c3278c5805e915576640c8  gcc/testsuite/gm2/pim/pass/another.mod
  4396ee17558776ba3841fe8a1b0b771d  gcc/testsuite/gm2/pim/pass/aochar.mod
  6e07c812fb11e8d41f4de237f9e6fcb7  gcc/testsuite/gm2/pim/pass/array.mod
  cecc4cd84db67b472280859e186e5bc8  gcc/testsuite/gm2/pim/pass/array2.mod
*************** c880ff974ae25f51a15b2a40d5700609  gcc/te
*** 92125,92131 ****
  92f0a1750a5727d57578c68264b5def3  gcc/testsuite/gm2/pim/pass/assignment3.mod
  985baf679a37178096ce38f5b066e1c8  gcc/testsuite/gm2/pim/pass/assignment4.mod
  a65219c98879b7453a7b11a7fef0d98e  gcc/testsuite/gm2/pim/pass/badpointer.mod
! 434f3478cb761dba32de9b97543c58e8  gcc/testsuite/gm2/pim/pass/bits32.def
  ffe0e0d501258e827ecfa9e1e1d13ee9  gcc/testsuite/gm2/pim/pass/bits32.mod
  488bd49020a738f28e5f0a981991166a  gcc/testsuite/gm2/pim/pass/bits32i.mod
  e81f61ff93f1ed33729a6f702c840bff  gcc/testsuite/gm2/pim/pass/bitset.mod
--- 101428,101434 ----
  92f0a1750a5727d57578c68264b5def3  gcc/testsuite/gm2/pim/pass/assignment3.mod
  985baf679a37178096ce38f5b066e1c8  gcc/testsuite/gm2/pim/pass/assignment4.mod
  a65219c98879b7453a7b11a7fef0d98e  gcc/testsuite/gm2/pim/pass/badpointer.mod
! 103a55e489a5e7b78f3462bbdacac72a  gcc/testsuite/gm2/pim/pass/bits32.def
  ffe0e0d501258e827ecfa9e1e1d13ee9  gcc/testsuite/gm2/pim/pass/bits32.mod
  488bd49020a738f28e5f0a981991166a  gcc/testsuite/gm2/pim/pass/bits32i.mod
  e81f61ff93f1ed33729a6f702c840bff  gcc/testsuite/gm2/pim/pass/bitset.mod
*************** cfe6e210bd41e1ce630c6a06b11ef0a1  gcc/te
*** 92136,92142 ****
  77009e89e217696e6333e4f50b495de3  gcc/testsuite/gm2/pim/pass/bitsetfunc.mod
  f514c8b223d38484bea5e885ef3d32e9  gcc/testsuite/gm2/pim/pass/block.mod
  ca6e5474515e87eca56b65ebfae71927  gcc/testsuite/gm2/pim/pass/blockindirect.mod
! de2d7eec01a2c241f3741f8f1844a2d2  gcc/testsuite/gm2/pim/pass/builtin.def
  680b22cdb8d54ac083375aa91fade29f  gcc/testsuite/gm2/pim/pass/builtin.mod
  7819e37d90c823daf7519d7cf3460a2e  gcc/testsuite/gm2/pim/pass/builtin2.mod
  c2bdb639f247cb34f739a2f1a9938476  gcc/testsuite/gm2/pim/pass/builtinconst.mod
--- 101439,101445 ----
  77009e89e217696e6333e4f50b495de3  gcc/testsuite/gm2/pim/pass/bitsetfunc.mod
  f514c8b223d38484bea5e885ef3d32e9  gcc/testsuite/gm2/pim/pass/block.mod
  ca6e5474515e87eca56b65ebfae71927  gcc/testsuite/gm2/pim/pass/blockindirect.mod
! ff0994c2fb6f9b79260738bf774f0467  gcc/testsuite/gm2/pim/pass/builtin.def
  680b22cdb8d54ac083375aa91fade29f  gcc/testsuite/gm2/pim/pass/builtin.mod
  7819e37d90c823daf7519d7cf3460a2e  gcc/testsuite/gm2/pim/pass/builtin2.mod
  c2bdb639f247cb34f739a2f1a9938476  gcc/testsuite/gm2/pim/pass/builtinconst.mod
*************** a001cffa28e8a83a6ee3c4c4f4923938  gcc/te
*** 92149,92155 ****
  09c34e333ce6e0fec99402ef3ec06cbd  gcc/testsuite/gm2/pim/pass/charset.mod
  8e07e59517c05396c84ba115c9e6b4dc  gcc/testsuite/gm2/pim/pass/charset2.mod
  01691912ad8fee8a7774966522a21b23  gcc/testsuite/gm2/pim/pass/charset3.mod
! b6e0b83e673c1bb24708b8e382a6427a  gcc/testsuite/gm2/pim/pass/checkparm.def
  5941e60884963ce74e59619c35846091  gcc/testsuite/gm2/pim/pass/checkparm.mod
  721c031d59eeffce10505e9b16163231  gcc/testsuite/gm2/pim/pass/colour.mod
  84efdaa2fd55367d8262aaa808a635f8  gcc/testsuite/gm2/pim/pass/comment1.mod
--- 101452,101458 ----
  09c34e333ce6e0fec99402ef3ec06cbd  gcc/testsuite/gm2/pim/pass/charset.mod
  8e07e59517c05396c84ba115c9e6b4dc  gcc/testsuite/gm2/pim/pass/charset2.mod
  01691912ad8fee8a7774966522a21b23  gcc/testsuite/gm2/pim/pass/charset3.mod
! c8daa840482cf4bbd0a653eeba9a4695  gcc/testsuite/gm2/pim/pass/checkparm.def
  5941e60884963ce74e59619c35846091  gcc/testsuite/gm2/pim/pass/checkparm.mod
  721c031d59eeffce10505e9b16163231  gcc/testsuite/gm2/pim/pass/colour.mod
  84efdaa2fd55367d8262aaa808a635f8  gcc/testsuite/gm2/pim/pass/comment1.mod
*************** da5c4a98aa9d8d3e32b509137288b3c5  gcc/te
*** 92167,92174 ****
  4d653dfa70d668596c153ec4b27e5d18  gcc/testsuite/gm2/pim/pass/convert3.mod
  a9de62ee5fe3a819af9a0ebae89caba1  gcc/testsuite/gm2/pim/pass/convert4.mod
  388393520871e25e1926856dc63d7f8d  gcc/testsuite/gm2/pim/pass/danglingelse.mod
! bad755973a944bcce292540176105bf9  gcc/testsuite/gm2/pim/pass/debug
! 30466f7eb2d3df720c6099f622439989  gcc/testsuite/gm2/pim/pass/defset.def
  fd44b2f7753ad91db900a8417da15c12  gcc/testsuite/gm2/pim/pass/defset.mod
  b253c8e5175c4cb6983aece8bf60dd17  gcc/testsuite/gm2/pim/pass/deftype.mod
  48ec94954ca455ea9c47d430a44f763b  gcc/testsuite/gm2/pim/pass/divaddr.mod
--- 101470,101477 ----
  4d653dfa70d668596c153ec4b27e5d18  gcc/testsuite/gm2/pim/pass/convert3.mod
  a9de62ee5fe3a819af9a0ebae89caba1  gcc/testsuite/gm2/pim/pass/convert4.mod
  388393520871e25e1926856dc63d7f8d  gcc/testsuite/gm2/pim/pass/danglingelse.mod
! 9d7cd26a727116b7b55d79ee42f1f77d  gcc/testsuite/gm2/pim/pass/debug
! 2b77ea0f3f928396d437c6ec1c30dba7  gcc/testsuite/gm2/pim/pass/defset.def
  fd44b2f7753ad91db900a8417da15c12  gcc/testsuite/gm2/pim/pass/defset.mod
  b253c8e5175c4cb6983aece8bf60dd17  gcc/testsuite/gm2/pim/pass/deftype.mod
  48ec94954ca455ea9c47d430a44f763b  gcc/testsuite/gm2/pim/pass/divaddr.mod
*************** aabcce2ae6fcf461e4dc47ece6490255  gcc/te
*** 92179,92195 ****
  6ff4d5415dc6f9c665ed24a5806ebb8a  gcc/testsuite/gm2/pim/pass/filesystem.mod
  21e7254f8c3a907135e26aea9abad47f  gcc/testsuite/gm2/pim/pass/foo.mod
  d1d27d2d63c6c5064aba34a58efe74b3  gcc/testsuite/gm2/pim/pass/foo2.mod
  56286f2c3e92e15a7825618ae140091a  gcc/testsuite/gm2/pim/pass/for1.mod
  a1c6c93cfe8fff16854d0c7e5cc45fbf  gcc/testsuite/gm2/pim/pass/function.mod
  ad0050bee37026a93c829a61da2f0938  gcc/testsuite/gm2/pim/pass/function2.mod
! b25f2c4d1ce9f7cb7135d6259ca728ee  gcc/testsuite/gm2/pim/pass/gcd.def
  a6f302cface0c9bfc31e9d707ec6031d  gcc/testsuite/gm2/pim/pass/gcd.mod
  b5034ac1aeec90dc2d9a4b8e4e1db428  gcc/testsuite/gm2/pim/pass/getconst.mod
  45f32c78d6fe03bad619ad83eb7210f0  gcc/testsuite/gm2/pim/pass/hello.mod
  f9cd141a6b4217bff724f01cca0dd4dd  gcc/testsuite/gm2/pim/pass/impa.mod
! fe354a7ac0ff51dc16107d1c6cd377d2  gcc/testsuite/gm2/pim/pass/impb.def
  67e33a57d6237c7251dd814eedb08fab  gcc/testsuite/gm2/pim/pass/impb.mod
! 21f6b523e384e5101a877a407952c9eb  gcc/testsuite/gm2/pim/pass/impc.def
  e332ab4e2664a14ad36fe54036abfdad  gcc/testsuite/gm2/pim/pass/impc.mod
  9a34b3a6cbf1ebc596a2f7a3b404ed18  gcc/testsuite/gm2/pim/pass/impd.mod
  fa811f35c4e3ac42ffc5083b7a32fc6f  gcc/testsuite/gm2/pim/pass/impe.mod
--- 101482,101506 ----
  6ff4d5415dc6f9c665ed24a5806ebb8a  gcc/testsuite/gm2/pim/pass/filesystem.mod
  21e7254f8c3a907135e26aea9abad47f  gcc/testsuite/gm2/pim/pass/foo.mod
  d1d27d2d63c6c5064aba34a58efe74b3  gcc/testsuite/gm2/pim/pass/foo2.mod
+ 519ac1b6b2f9994fc011779a417ac94a  gcc/testsuite/gm2/pim/pass/fooasm3.mod
  56286f2c3e92e15a7825618ae140091a  gcc/testsuite/gm2/pim/pass/for1.mod
+ c5ba6a075ea2d754fd6c5cf5d0f63063  gcc/testsuite/gm2/pim/pass/forloop2.mod
+ 10d682bfd9139721b0c4ea187465de5b  gcc/testsuite/gm2/pim/pass/forloopby2.mod
  a1c6c93cfe8fff16854d0c7e5cc45fbf  gcc/testsuite/gm2/pim/pass/function.mod
  ad0050bee37026a93c829a61da2f0938  gcc/testsuite/gm2/pim/pass/function2.mod
! 06cb2ef9761f6e2eb8735aa91f6a2784  gcc/testsuite/gm2/pim/pass/gcd.def
  a6f302cface0c9bfc31e9d707ec6031d  gcc/testsuite/gm2/pim/pass/gcd.mod
  b5034ac1aeec90dc2d9a4b8e4e1db428  gcc/testsuite/gm2/pim/pass/getconst.mod
+ d92de5a4673ded69670acbdd4161f6e2  gcc/testsuite/gm2/pim/pass/goodifin.mod
+ d37915b685c2a7c61b2bd33dc4233b8f  gcc/testsuite/gm2/pim/pass/goodproccard2.mod
+ 6af6cef93923e24daf5f81ce856c24e3  gcc/testsuite/gm2/pim/pass/goodprocint.mod
+ e76b1c3500d64c1264105e435866a79a  gcc/testsuite/gm2/pim/pass/goodprocint3.mod
  45f32c78d6fe03bad619ad83eb7210f0  gcc/testsuite/gm2/pim/pass/hello.mod
+ deec7e02a3ff68e431b9625fb1dc63b5  gcc/testsuite/gm2/pim/pass/highexp.mod
  f9cd141a6b4217bff724f01cca0dd4dd  gcc/testsuite/gm2/pim/pass/impa.mod
! 6e9cd325265bb26378425dad11be8b1e  gcc/testsuite/gm2/pim/pass/impb.def
  67e33a57d6237c7251dd814eedb08fab  gcc/testsuite/gm2/pim/pass/impb.mod
! 0bc88675121a921de6e82cac0a91ef59  gcc/testsuite/gm2/pim/pass/impc.def
  e332ab4e2664a14ad36fe54036abfdad  gcc/testsuite/gm2/pim/pass/impc.mod
  9a34b3a6cbf1ebc596a2f7a3b404ed18  gcc/testsuite/gm2/pim/pass/impd.mod
  fa811f35c4e3ac42ffc5083b7a32fc6f  gcc/testsuite/gm2/pim/pass/impe.mod
*************** a025a8fc705c2013cedd85c1b8b0b0b4  gcc/te
*** 92201,92213 ****
  04c715e96ab247ecdcdb73c2d9081ff8  gcc/testsuite/gm2/pim/pass/impk.mod
  1a50d3515abda343ad2ebeffd8e0e05e  gcc/testsuite/gm2/pim/pass/impl.mod
  e57ae096b6d3ce135039ecb411a3d678  gcc/testsuite/gm2/pim/pass/impm.mod
! f09801565f3f4e7c7dbab27af6e6952e  gcc/testsuite/gm2/pim/pass/impn.def
  748147602b1ca4c6d4605f38f392b114  gcc/testsuite/gm2/pim/pass/impn.mod
  008eea6d4f17932455979f0f9e20a039  gcc/testsuite/gm2/pim/pass/impo.mod
  6012a05b0fa3ca6ae1f45d1aa433efb3  gcc/testsuite/gm2/pim/pass/imports.mod
! efa5dcc95801c763b1ef0b74d167a454  gcc/testsuite/gm2/pim/pass/impp.def
  b78b3932342406cf8f0fc91232816931  gcc/testsuite/gm2/pim/pass/impp.mod
! 73eddbcf590cf62ae96c2ed7a747e86b  gcc/testsuite/gm2/pim/pass/impq.def
  3fe380de94ec2b09b3e77d5633da84c6  gcc/testsuite/gm2/pim/pass/impq.mod
  e125e0826c7eaee305081b141f464a19  gcc/testsuite/gm2/pim/pass/incompsets.mod
  02ba4397a059292edb6d5f16d993ca2d  gcc/testsuite/gm2/pim/pass/index.mod
--- 101512,101524 ----
  04c715e96ab247ecdcdb73c2d9081ff8  gcc/testsuite/gm2/pim/pass/impk.mod
  1a50d3515abda343ad2ebeffd8e0e05e  gcc/testsuite/gm2/pim/pass/impl.mod
  e57ae096b6d3ce135039ecb411a3d678  gcc/testsuite/gm2/pim/pass/impm.mod
! aa2dcda62d29a9b78f8b22c686587bbe  gcc/testsuite/gm2/pim/pass/impn.def
  748147602b1ca4c6d4605f38f392b114  gcc/testsuite/gm2/pim/pass/impn.mod
  008eea6d4f17932455979f0f9e20a039  gcc/testsuite/gm2/pim/pass/impo.mod
  6012a05b0fa3ca6ae1f45d1aa433efb3  gcc/testsuite/gm2/pim/pass/imports.mod
! cc7f66eabf7415d41c5e1fd96e340bd8  gcc/testsuite/gm2/pim/pass/impp.def
  b78b3932342406cf8f0fc91232816931  gcc/testsuite/gm2/pim/pass/impp.mod
! 0412aa26cfacbe210616a7e4f579e188  gcc/testsuite/gm2/pim/pass/impq.def
  3fe380de94ec2b09b3e77d5633da84c6  gcc/testsuite/gm2/pim/pass/impq.mod
  e125e0826c7eaee305081b141f464a19  gcc/testsuite/gm2/pim/pass/incompsets.mod
  02ba4397a059292edb6d5f16d993ca2d  gcc/testsuite/gm2/pim/pass/index.mod
*************** d2b299546c13a1851d840cfe5ec016bf  gcc/te
*** 92227,92233 ****
  7da9ed6c7b53fa8ee4b624c75ad03591  gcc/testsuite/gm2/pim/pass/localmod.mod
  934fe8a99c80339ec4975656c6146ef9  gcc/testsuite/gm2/pim/pass/localproc.mod
  4dc56241c0674a3a29ef6b96703a1cfa  gcc/testsuite/gm2/pim/pass/localvar.mod
- 0d865d5e5abfdfac6536061769280f0f  gcc/testsuite/gm2/pim/pass/log
  4a78f296fb893361ba58d6ee865ff84f  gcc/testsuite/gm2/pim/pass/longint.mod
  b69a5c9f969d64c56b9f973fc8124a08  gcc/testsuite/gm2/pim/pass/longint2.mod
  c11f6829dc3d44aa1cebb73286e05ac6  gcc/testsuite/gm2/pim/pass/longmm.mod
--- 101538,101543 ----
*************** a01824e9392048cdee8e74897973abad  gcc/te
*** 92249,92256 ****
  238b45a9809404f5deabcf8889b09ef6  gcc/testsuite/gm2/pim/pass/multiple.mod
  b408764127983c912f0b8184f1c1283b  gcc/testsuite/gm2/pim/pass/multiset.mod
  f1765eec0788d176a0b5bc918d962a3f  gcc/testsuite/gm2/pim/pass/multtypes.mod
! 5eb7582865746ab83ab1f211e37a87bf  gcc/testsuite/gm2/pim/pass/mydef.def
! 9d01de2db3a574593573d59eef637a3a  gcc/testsuite/gm2/pim/pass/negatives.def
  171263f6ef4cb87e243053b785bef481  gcc/testsuite/gm2/pim/pass/negatives.mod
  5a29fbd25cb9047738f1c605ed496aca  gcc/testsuite/gm2/pim/pass/nested.mod
  382a12a60e4e77c8fca18547e1fdf1ba  gcc/testsuite/gm2/pim/pass/nested2.mod
--- 101559,101566 ----
  238b45a9809404f5deabcf8889b09ef6  gcc/testsuite/gm2/pim/pass/multiple.mod
  b408764127983c912f0b8184f1c1283b  gcc/testsuite/gm2/pim/pass/multiset.mod
  f1765eec0788d176a0b5bc918d962a3f  gcc/testsuite/gm2/pim/pass/multtypes.mod
! 03fe1380f1e016902e4b0ffc7488805f  gcc/testsuite/gm2/pim/pass/mydef.def
! b0524a8988168d0c863e912e96044cfa  gcc/testsuite/gm2/pim/pass/negatives.def
  171263f6ef4cb87e243053b785bef481  gcc/testsuite/gm2/pim/pass/negatives.mod
  5a29fbd25cb9047738f1c605ed496aca  gcc/testsuite/gm2/pim/pass/nested.mod
  382a12a60e4e77c8fca18547e1fdf1ba  gcc/testsuite/gm2/pim/pass/nested2.mod
*************** e3a72a27ab4d809b26255a90d6d93b7b  gcc/te
*** 92263,92282 ****
  d22e0d52679637cbf353b2a3ca805130  gcc/testsuite/gm2/pim/pass/nestedif.mod
  b7e8089bc85513d14963311687c21a0b  gcc/testsuite/gm2/pim/pass/nestedset.mod
  23f18c1c8f0e5f5b526a360f7cd5695d  gcc/testsuite/gm2/pim/pass/onezero.mod
! c5c4e7bdd314a61557e71cf2d9b2f4ce  gcc/testsuite/gm2/pim/pass/opaque.def
  c6460639ba2522774d63b3bd4d00fe6a  gcc/testsuite/gm2/pim/pass/opaque.mod
  024b3dc7f39261f7cb26e3b9a4978904  gcc/testsuite/gm2/pim/pass/opaque2.mod
! faacd5a9157d8420e728b38270b35875  gcc/testsuite/gm2/pim/pass/opaquetype.def
  8276cc5847d5e4575fd11a93a8bd75bd  gcc/testsuite/gm2/pim/pass/opaquetype.mod
  8c8832b3e89bc64fc68d7d46211eef77  gcc/testsuite/gm2/pim/pass/param.mod
  ebc16acf9ed12b25472f8c773e7d842c  gcc/testsuite/gm2/pim/pass/param2.mod
  bd475933f392bef7416e258b0eb945c6  gcc/testsuite/gm2/pim/pass/param3.mod
  e7805668ec3d48efeba5e19ed7892066  gcc/testsuite/gm2/pim/pass/parambool.mod
  598b668b9337903f963ece4b7fa88033  gcc/testsuite/gm2/pim/pass/paramreal.mod
! 4605364ae5169f9dbaa74d39ebd35b5e  gcc/testsuite/gm2/pim/pass/pim-pass.exp
  2aa04112382dc8e76a8bb26656b620c5  gcc/testsuite/gm2/pim/pass/pimimp.mod
  87d499098309e1d7ec71c407846e083b  gcc/testsuite/gm2/pim/pass/pointer.mod
  1200610c2ddef6cc0f4a93499a630bd5  gcc/testsuite/gm2/pim/pass/procadr.mod
  fdc38c371954c1cb82b40dc75ed4fdc6  gcc/testsuite/gm2/pim/pass/procconv.mod
  36bbbf0e39376be778a524ff966bc90e  gcc/testsuite/gm2/pim/pass/procconv2.mod
  5d9b3e59fd3091a9b90a4b70d033f675  gcc/testsuite/gm2/pim/pass/procedure1.mod
--- 101573,101593 ----
  d22e0d52679637cbf353b2a3ca805130  gcc/testsuite/gm2/pim/pass/nestedif.mod
  b7e8089bc85513d14963311687c21a0b  gcc/testsuite/gm2/pim/pass/nestedset.mod
  23f18c1c8f0e5f5b526a360f7cd5695d  gcc/testsuite/gm2/pim/pass/onezero.mod
! 9ad64983ff09a698571deef1ba482224  gcc/testsuite/gm2/pim/pass/opaque.def
  c6460639ba2522774d63b3bd4d00fe6a  gcc/testsuite/gm2/pim/pass/opaque.mod
  024b3dc7f39261f7cb26e3b9a4978904  gcc/testsuite/gm2/pim/pass/opaque2.mod
! a3a0f8223b371ae670908562302d6745  gcc/testsuite/gm2/pim/pass/opaquetype.def
  8276cc5847d5e4575fd11a93a8bd75bd  gcc/testsuite/gm2/pim/pass/opaquetype.mod
  8c8832b3e89bc64fc68d7d46211eef77  gcc/testsuite/gm2/pim/pass/param.mod
  ebc16acf9ed12b25472f8c773e7d842c  gcc/testsuite/gm2/pim/pass/param2.mod
  bd475933f392bef7416e258b0eb945c6  gcc/testsuite/gm2/pim/pass/param3.mod
  e7805668ec3d48efeba5e19ed7892066  gcc/testsuite/gm2/pim/pass/parambool.mod
  598b668b9337903f963ece4b7fa88033  gcc/testsuite/gm2/pim/pass/paramreal.mod
! c889da81ddcbde1431eab818f85fab14  gcc/testsuite/gm2/pim/pass/pim-pass.exp
  2aa04112382dc8e76a8bb26656b620c5  gcc/testsuite/gm2/pim/pass/pimimp.mod
  87d499098309e1d7ec71c407846e083b  gcc/testsuite/gm2/pim/pass/pointer.mod
  1200610c2ddef6cc0f4a93499a630bd5  gcc/testsuite/gm2/pim/pass/procadr.mod
+ 880a15ad372f106c2672d1d988a5df51  gcc/testsuite/gm2/pim/pass/proccard.mod
  fdc38c371954c1cb82b40dc75ed4fdc6  gcc/testsuite/gm2/pim/pass/procconv.mod
  36bbbf0e39376be778a524ff966bc90e  gcc/testsuite/gm2/pim/pass/procconv2.mod
  5d9b3e59fd3091a9b90a4b70d033f675  gcc/testsuite/gm2/pim/pass/procedure1.mod
*************** b3be01e4da4f58be9d98d04cd0085cbc  gcc/te
*** 92288,92309 ****
  a006deb2b0f2e97d9d9f794958383cd8  gcc/testsuite/gm2/pim/pass/procmod31.mod
  1e9f2ad44a7ac856a7ab2640e92afac8  gcc/testsuite/gm2/pim/pass/procmod4.mod
  7877ec402b339579d1fa9b7105c56adc  gcc/testsuite/gm2/pim/pass/procmod5.mod
! c76d98e4d5bf392c4e312d2d888a9101  gcc/testsuite/gm2/pim/pass/procmod6.def
  a52ca25defcaa06f6deff5d4726d312e  gcc/testsuite/gm2/pim/pass/procmod6.mod
  28f0bebaded1df0a074695b00219b8af  gcc/testsuite/gm2/pim/pass/procmod7.mod
  d8ccc6406f37da7909455b2105ba730d  gcc/testsuite/gm2/pim/pass/procmod8.mod
  449c7bb2f966d6a21efe23725b977ba6  gcc/testsuite/gm2/pim/pass/procmod9.mod
  eee2391736f958281bd80a26c06eaa1e  gcc/testsuite/gm2/pim/pass/proctype.mod
! 12039deb2447c8ea7276f680d9c3cf8c  gcc/testsuite/gm2/pim/pass/proctype2.def
  4687686c1c7a8ec91eb97578d12ef6b8  gcc/testsuite/gm2/pim/pass/proctype3.mod
  7db4181faa89b7e33e59bac0d42c5f24  gcc/testsuite/gm2/pim/pass/proctype4.mod
  2764c22b17e3aed35cc1e1ad098d8948  gcc/testsuite/gm2/pim/pass/program.mod
! 8425d8f3740cfa4a292981fd35acb509  gcc/testsuite/gm2/pim/pass/program2.mod
  0e9623407815284f4c06e29defecb203  gcc/testsuite/gm2/pim/pass/ptrarray.mod
  0304569045d8cb7150bff529f14fdb39  gcc/testsuite/gm2/pim/pass/ptrarray2.mod
  55ea4ffb039720c977f13f532dea66dd  gcc/testsuite/gm2/pim/pass/ptrarray3.mod
  47abed44bfdf839f3ca139cdb50753ea  gcc/testsuite/gm2/pim/pass/ptrcard.mod
! add317411df0ae304c0d6d845347c978  gcc/testsuite/gm2/pim/pass/quads.def
  37bc64525628ee7ecb20ff1957d94218  gcc/testsuite/gm2/pim/pass/quads.mod
  0d83ca50ddb0c2cc0c0b13d64a1599d2  gcc/testsuite/gm2/pim/pass/real.mod
  ad4ec1aec7890e9297f6a8337d7127f6  gcc/testsuite/gm2/pim/pass/real2.mod
--- 101599,101620 ----
  a006deb2b0f2e97d9d9f794958383cd8  gcc/testsuite/gm2/pim/pass/procmod31.mod
  1e9f2ad44a7ac856a7ab2640e92afac8  gcc/testsuite/gm2/pim/pass/procmod4.mod
  7877ec402b339579d1fa9b7105c56adc  gcc/testsuite/gm2/pim/pass/procmod5.mod
! d821252944d8e4a01aca0155b4681878  gcc/testsuite/gm2/pim/pass/procmod6.def
  a52ca25defcaa06f6deff5d4726d312e  gcc/testsuite/gm2/pim/pass/procmod6.mod
  28f0bebaded1df0a074695b00219b8af  gcc/testsuite/gm2/pim/pass/procmod7.mod
  d8ccc6406f37da7909455b2105ba730d  gcc/testsuite/gm2/pim/pass/procmod8.mod
  449c7bb2f966d6a21efe23725b977ba6  gcc/testsuite/gm2/pim/pass/procmod9.mod
  eee2391736f958281bd80a26c06eaa1e  gcc/testsuite/gm2/pim/pass/proctype.mod
! d3dbe1cbd4986842e28881a29645225d  gcc/testsuite/gm2/pim/pass/proctype2.def
  4687686c1c7a8ec91eb97578d12ef6b8  gcc/testsuite/gm2/pim/pass/proctype3.mod
  7db4181faa89b7e33e59bac0d42c5f24  gcc/testsuite/gm2/pim/pass/proctype4.mod
  2764c22b17e3aed35cc1e1ad098d8948  gcc/testsuite/gm2/pim/pass/program.mod
! 604837a21a2d2c291ba8aa91137a590b  gcc/testsuite/gm2/pim/pass/program2.mod
  0e9623407815284f4c06e29defecb203  gcc/testsuite/gm2/pim/pass/ptrarray.mod
  0304569045d8cb7150bff529f14fdb39  gcc/testsuite/gm2/pim/pass/ptrarray2.mod
  55ea4ffb039720c977f13f532dea66dd  gcc/testsuite/gm2/pim/pass/ptrarray3.mod
  47abed44bfdf839f3ca139cdb50753ea  gcc/testsuite/gm2/pim/pass/ptrcard.mod
! 5bbc11547aea903b653793e80900219a  gcc/testsuite/gm2/pim/pass/quads.def
  37bc64525628ee7ecb20ff1957d94218  gcc/testsuite/gm2/pim/pass/quads.mod
  0d83ca50ddb0c2cc0c0b13d64a1599d2  gcc/testsuite/gm2/pim/pass/real.mod
  ad4ec1aec7890e9297f6a8337d7127f6  gcc/testsuite/gm2/pim/pass/real2.mod
*************** ad4ec1aec7890e9297f6a8337d7127f6  gcc/te
*** 92316,92326 ****
  c5fa84af45085633d26e5b2aa981e9ec  gcc/testsuite/gm2/pim/pass/record1.mod
  972f20925d6449209e97da30c39855f7  gcc/testsuite/gm2/pim/pass/record10.mod
  810f2b56b9e944581f49b1ed39f6b196  gcc/testsuite/gm2/pim/pass/record11.mod
! 83637cd6c46bf974f1dc2f06a6f42524  gcc/testsuite/gm2/pim/pass/record12.def
! 23747b548774ecb17f15ef3b84499d28  gcc/testsuite/gm2/pim/pass/record13.def
! 6a2330cc848ea4559b8cecdf8c8e8682  gcc/testsuite/gm2/pim/pass/record14.def
! e14d4422c68bf0ff119bc41baf75a352  gcc/testsuite/gm2/pim/pass/record15.def
! 9fa125e9a3956094e7a9c0c1a56f0632  gcc/testsuite/gm2/pim/pass/record16.def
  5096273474fcd79099dbb239305aaf28  gcc/testsuite/gm2/pim/pass/record2.mod
  3f9da29461462bc93acfbe4442d76a7f  gcc/testsuite/gm2/pim/pass/record3.mod
  489f0b8b3d648b38f6ea4fb1182474c9  gcc/testsuite/gm2/pim/pass/record4.mod
--- 101627,101637 ----
  c5fa84af45085633d26e5b2aa981e9ec  gcc/testsuite/gm2/pim/pass/record1.mod
  972f20925d6449209e97da30c39855f7  gcc/testsuite/gm2/pim/pass/record10.mod
  810f2b56b9e944581f49b1ed39f6b196  gcc/testsuite/gm2/pim/pass/record11.mod
! 98d89d7ae19a2b15e7946009398ac570  gcc/testsuite/gm2/pim/pass/record12.def
! df339c8223ad485b595ce7caf73b2e74  gcc/testsuite/gm2/pim/pass/record13.def
! 70585321017fb0f75ab33b20c955ee3b  gcc/testsuite/gm2/pim/pass/record14.def
! 42a7e99a38bbe6236204f1ef37580c72  gcc/testsuite/gm2/pim/pass/record15.def
! aff3d4433fe0f0cbe7e1c399481d4084  gcc/testsuite/gm2/pim/pass/record16.def
  5096273474fcd79099dbb239305aaf28  gcc/testsuite/gm2/pim/pass/record2.mod
  3f9da29461462bc93acfbe4442d76a7f  gcc/testsuite/gm2/pim/pass/record3.mod
  489f0b8b3d648b38f6ea4fb1182474c9  gcc/testsuite/gm2/pim/pass/record4.mod
*************** d9be681d6ca4e5de347d0d197fd6e1a1  gcc/te
*** 92334,92340 ****
  76cad0910073d24227d3f55e4771a3d1  gcc/testsuite/gm2/pim/pass/recordarray2.mod
  acfdeaa19c6ac31f80f4ff4daf94f512  gcc/testsuite/gm2/pim/pass/redef.mod
  3bcee76a5a70a53fce55f8df3522cb34  gcc/testsuite/gm2/pim/pass/set10.mod
! 5e6e974d67dce468207deeb4e4c8d55d  gcc/testsuite/gm2/pim/pass/set11.def
  a36c0c76727bc2db3ae0f892733c520c  gcc/testsuite/gm2/pim/pass/set11.mod
  db2d3c74d15d0066927cd473ad8689cb  gcc/testsuite/gm2/pim/pass/set12.mod
  73652663ffc74f2fea84f804607a6b96  gcc/testsuite/gm2/pim/pass/set4.mod
--- 101645,101651 ----
  76cad0910073d24227d3f55e4771a3d1  gcc/testsuite/gm2/pim/pass/recordarray2.mod
  acfdeaa19c6ac31f80f4ff4daf94f512  gcc/testsuite/gm2/pim/pass/redef.mod
  3bcee76a5a70a53fce55f8df3522cb34  gcc/testsuite/gm2/pim/pass/set10.mod
! 851c7f25b05b53ebd2e786094db9a9c0  gcc/testsuite/gm2/pim/pass/set11.def
  a36c0c76727bc2db3ae0f892733c520c  gcc/testsuite/gm2/pim/pass/set11.mod
  db2d3c74d15d0066927cd473ad8689cb  gcc/testsuite/gm2/pim/pass/set12.mod
  73652663ffc74f2fea84f804607a6b96  gcc/testsuite/gm2/pim/pass/set4.mod
*************** c8d0610feab0a653feb69e7ac7829bb7  gcc/te
*** 92381,92387 ****
  1d40489b50d943b58ae893d11a0e4922  gcc/testsuite/gm2/pim/pass/smallset6.mod
  bcf2cdc6bae7a2fa48cfb28c95cbdb32  gcc/testsuite/gm2/pim/pass/smallset7.mod
  b9ea9be151aa0650f6c201b0e648c29f  gcc/testsuite/gm2/pim/pass/stabs.mod
- d15918636ed75ff0f069eff3cf8ea949  gcc/testsuite/gm2/pim/pass/stdio.mod
  0e9ea944cdd56cb6eb939b11ad371a70  gcc/testsuite/gm2/pim/pass/str1.mod
  6858d0d189cb43fad742c77e08f82452  gcc/testsuite/gm2/pim/pass/str2.mod
  2a0bf658f1ec9df0794e893dcbe50dc6  gcc/testsuite/gm2/pim/pass/str3.mod
--- 101692,101697 ----
*************** e82fbad0978538f729d25ee30164b833  gcc/te
*** 92391,92397 ****
  bd93ed27bb4295dac0b15c0a6d42dbec  gcc/testsuite/gm2/pim/pass/stringassign.mod
  8fba0e3a8dd422f9aa165f6e89c6f2b8  gcc/testsuite/gm2/pim/pass/stringopaq.mod
  c3b57326a6ac7273da7f438ea5ab5767  gcc/testsuite/gm2/pim/pass/strings.mod
! 6ca3dbb0952ad4df170e9fb72ec9d1a3  gcc/testsuite/gm2/pim/pass/strparam.def
  de47e30576839ab46e6eea6acf366d46  gcc/testsuite/gm2/pim/pass/strparam.mod
  cbf4b94771bced34db5c9e92b6a74452  gcc/testsuite/gm2/pim/pass/subrange.mod
  fb656fe6359dad713f876cf81f73d3ca  gcc/testsuite/gm2/pim/pass/subrange10.mod
--- 101701,101707 ----
  bd93ed27bb4295dac0b15c0a6d42dbec  gcc/testsuite/gm2/pim/pass/stringassign.mod
  8fba0e3a8dd422f9aa165f6e89c6f2b8  gcc/testsuite/gm2/pim/pass/stringopaq.mod
  c3b57326a6ac7273da7f438ea5ab5767  gcc/testsuite/gm2/pim/pass/strings.mod
! d299d2780564785c3ea5ee90461780bc  gcc/testsuite/gm2/pim/pass/strparam.def
  de47e30576839ab46e6eea6acf366d46  gcc/testsuite/gm2/pim/pass/strparam.mod
  cbf4b94771bced34db5c9e92b6a74452  gcc/testsuite/gm2/pim/pass/subrange.mod
  fb656fe6359dad713f876cf81f73d3ca  gcc/testsuite/gm2/pim/pass/subrange10.mod
*************** e84c7a4c930b091640eef3f841eab711  gcc/te
*** 92444,92450 ****
  a1d9044d42bf5d2e656ddce7432f6928  gcc/testsuite/gm2/pim/pass/testparam2.mod
  554a454005daf4c40a260a606d378cd9  gcc/testsuite/gm2/pim/pass/testparam3.mod
  d328942477ab4c4bbd5e7a038d58b452  gcc/testsuite/gm2/pim/pass/testpimsize.mod
! 812c88c6cf86d5504c81464f100f64b8  gcc/testsuite/gm2/pim/pass/testrecursive.def
  ab9a878f7ac62803a984cb6d5108710b  gcc/testsuite/gm2/pim/pass/testrecursive.mod
  2587999bdb2b16126896626222d52208  gcc/testsuite/gm2/pim/pass/testreturnstr.mod
  e50d6f480499eca5f56f1cc33e401f68  gcc/testsuite/gm2/pim/pass/testset.mod
--- 101754,101760 ----
  a1d9044d42bf5d2e656ddce7432f6928  gcc/testsuite/gm2/pim/pass/testparam2.mod
  554a454005daf4c40a260a606d378cd9  gcc/testsuite/gm2/pim/pass/testparam3.mod
  d328942477ab4c4bbd5e7a038d58b452  gcc/testsuite/gm2/pim/pass/testpimsize.mod
! 3b6f4c5cf8a948268ea33609a36830b3  gcc/testsuite/gm2/pim/pass/testrecursive.def
  ab9a878f7ac62803a984cb6d5108710b  gcc/testsuite/gm2/pim/pass/testrecursive.mod
  2587999bdb2b16126896626222d52208  gcc/testsuite/gm2/pim/pass/testreturnstr.mod
  e50d6f480499eca5f56f1cc33e401f68  gcc/testsuite/gm2/pim/pass/testset.mod
*************** e50d6f480499eca5f56f1cc33e401f68  gcc/te
*** 92452,92457 ****
--- 101762,101768 ----
  5cb9e39c6e81b7a2228873db32aeec5c  gcc/testsuite/gm2/pim/pass/testsinf.mod
  cce3b11c80bfaa050f9fcd714bbfec6b  gcc/testsuite/gm2/pim/pass/testsinl.mod
  7035aa45374f59f37b971fa6b50da4f2  gcc/testsuite/gm2/pim/pass/testsize.mod
+ f9c16774d6b8b09168e5501d129d2b39  gcc/testsuite/gm2/pim/pass/teststdio.mod
  f4f9aa0135b313903e7725725c4385e1  gcc/testsuite/gm2/pim/pass/testvar.mod
  2766ea673865a5df26f15613124635c6  gcc/testsuite/gm2/pim/pass/testvarin.mod
  a3c1301ea024074c9366c4c040c30c58  gcc/testsuite/gm2/pim/pass/timeio.mod
*************** f7817d4b4261f2dd4f1fdae54eac1823  gcc/te
*** 92470,92476 ****
  12a6e0911bd7a3400d9526d11a2a6f08  gcc/testsuite/gm2/pim/pass/tinyarray4.mod
  24c6ffbb2f4a986b7fe5ee54eaafd5f8  gcc/testsuite/gm2/pim/pass/tinyarray5.mod
  9f61dc6c2b7c1d9c88f1365923e9996b  gcc/testsuite/gm2/pim/pass/tinyarray6.mod
! abf6642565c400f0aa1c6b41c9525911  gcc/testsuite/gm2/pim/pass/tinyassign.def
  a87107f946e1828820509fb41580273a  gcc/testsuite/gm2/pim/pass/tinyassign.mod
  2ede72d0548ae399fda81496c0a0e6e8  gcc/testsuite/gm2/pim/pass/tinyassign2.mod
  9ee7bbc6c829003a2a6398535172cdaf  gcc/testsuite/gm2/pim/pass/tinyassign3.mod
--- 101781,101787 ----
  12a6e0911bd7a3400d9526d11a2a6f08  gcc/testsuite/gm2/pim/pass/tinyarray4.mod
  24c6ffbb2f4a986b7fe5ee54eaafd5f8  gcc/testsuite/gm2/pim/pass/tinyarray5.mod
  9f61dc6c2b7c1d9c88f1365923e9996b  gcc/testsuite/gm2/pim/pass/tinyarray6.mod
! c489bb3b90a231dba63b9e326fc991b6  gcc/testsuite/gm2/pim/pass/tinyassign.def
  a87107f946e1828820509fb41580273a  gcc/testsuite/gm2/pim/pass/tinyassign.mod
  2ede72d0548ae399fda81496c0a0e6e8  gcc/testsuite/gm2/pim/pass/tinyassign2.mod
  9ee7bbc6c829003a2a6398535172cdaf  gcc/testsuite/gm2/pim/pass/tinyassign3.mod
*************** ab8655b87aeccab420058421d0058117  gcc/te
*** 92493,92498 ****
--- 101804,101810 ----
  473208c8cbfb1b7de707aff40d7c4625  gcc/testsuite/gm2/pim/pass/tinyif7.mod
  4556457bca6d8d91dd4750b0e138ca60  gcc/testsuite/gm2/pim/pass/tinyif8.mod
  ce201b9636fa72be7eadc3c9fd6bae4f  gcc/testsuite/gm2/pim/pass/tinyimp.mod
+ 548942922638c69e96143483870d5eda  gcc/testsuite/gm2/pim/pass/tinyindr.mod
  06f9d8ec2755e814b11774640d49ded3  gcc/testsuite/gm2/pim/pass/tinylit.mod
  889b73446a16a1ff8ad21ddd166abecd  gcc/testsuite/gm2/pim/pass/tinylit2.mod
  1aa50c02da8a3e6b78e4afe4027a7cc5  gcc/testsuite/gm2/pim/pass/tinymax.mod
*************** c55e402ffa9e8ade45b0c8d84dae0c35  gcc/te
*** 92514,92520 ****
  9f4c7d0d91aa2f2dca6bdd4c532e52ee  gcc/testsuite/gm2/pim/pass/tinyset6.mod
  395314c56cd4515846b905de8e33183b  gcc/testsuite/gm2/pim/pass/tinyset7.mod
  5cacbc141f72c044eea9d232f86e400c  gcc/testsuite/gm2/pim/pass/tinystate.mod
! 98507eb9e71383412c2c4d13cdc2b30b  gcc/testsuite/gm2/pim/pass/tinysub.def
  9ec0aa5aae18eceaeb85f24b6cac6218  gcc/testsuite/gm2/pim/pass/tinytest.mod
  3973957cd4023b7451ed10ae685b991d  gcc/testsuite/gm2/pim/pass/tinytrue.mod
  7e623bb56a9c92cfc8d69c689adc91f6  gcc/testsuite/gm2/pim/pass/tinyvar.mod
--- 101826,101832 ----
  9f4c7d0d91aa2f2dca6bdd4c532e52ee  gcc/testsuite/gm2/pim/pass/tinyset6.mod
  395314c56cd4515846b905de8e33183b  gcc/testsuite/gm2/pim/pass/tinyset7.mod
  5cacbc141f72c044eea9d232f86e400c  gcc/testsuite/gm2/pim/pass/tinystate.mod
! 29bf483c8f47723bdda4a6ff08d7eb02  gcc/testsuite/gm2/pim/pass/tinysub.def
  9ec0aa5aae18eceaeb85f24b6cac6218  gcc/testsuite/gm2/pim/pass/tinytest.mod
  3973957cd4023b7451ed10ae685b991d  gcc/testsuite/gm2/pim/pass/tinytrue.mod
  7e623bb56a9c92cfc8d69c689adc91f6  gcc/testsuite/gm2/pim/pass/tinyvar.mod
*************** c55e402ffa9e8ade45b0c8d84dae0c35  gcc/te
*** 92524,92530 ****
  d87152d739e2438b9ae53e42dc0abbd6  gcc/testsuite/gm2/pim/pass/tinyvar5.mod
  0b84cfce0a2e43992b71613749e52a4d  gcc/testsuite/gm2/pim/pass/tinyvarient.mod
  29afe8976c40602a83fcb12b023cac5a  gcc/testsuite/gm2/pim/pass/tinyvarient2.mod
! 81f6827c2f1744c986da4c9c4709aaa2  gcc/testsuite/gm2/pim/pass/tinyvarient3.def
  72c43d2e5e294b87203bed6bdd3774f1  gcc/testsuite/gm2/pim/pass/tinyvarient3.mod
  b4d1549a61b94c0b32b8f0eb52df42e5  gcc/testsuite/gm2/pim/pass/tinyvarient4.mod
  aa50524760d3ffe2a76706bcf49d1cc0  gcc/testsuite/gm2/pim/pass/tinyvarient5.mod
--- 101836,101842 ----
  d87152d739e2438b9ae53e42dc0abbd6  gcc/testsuite/gm2/pim/pass/tinyvar5.mod
  0b84cfce0a2e43992b71613749e52a4d  gcc/testsuite/gm2/pim/pass/tinyvarient.mod
  29afe8976c40602a83fcb12b023cac5a  gcc/testsuite/gm2/pim/pass/tinyvarient2.mod
! f37c9db3fb932f1dacde244358b1d549  gcc/testsuite/gm2/pim/pass/tinyvarient3.def
  72c43d2e5e294b87203bed6bdd3774f1  gcc/testsuite/gm2/pim/pass/tinyvarient3.mod
  b4d1549a61b94c0b32b8f0eb52df42e5  gcc/testsuite/gm2/pim/pass/tinyvarient4.mod
  aa50524760d3ffe2a76706bcf49d1cc0  gcc/testsuite/gm2/pim/pass/tinyvarient5.mod
*************** e0f41581cb984c6d55087f1af972969e  gcc/te
*** 92537,92553 ****
  76c21c8cea07a5a153b6684bf8484c3e  gcc/testsuite/gm2/pim/pass/tinywith5.mod
  f50e06ec9f678f9007b20fa5ec68a9df  gcc/testsuite/gm2/pim/pass/tinywith6.mod
  d16408cac5fecde82827df06e17255e0  gcc/testsuite/gm2/pim/pass/trunc.mod
! fdfe4fcdb5e855a21c73bb57edde296d  gcc/testsuite/gm2/pim/pass/try
  7b2287867c7b7651569ca17c83e16f74  gcc/testsuite/gm2/pim/pass/typeequiv.mod
  57af7c398eebd591dfb15094779f3160  gcc/testsuite/gm2/pim/pass/typeequiv2.mod
  af5d853ccfa30d31fefd78b68595e83d  gcc/testsuite/gm2/pim/pass/typeequiv3.mod
! d26e75fe688e238c91b21a5b6603d5f8  gcc/testsuite/gm2/pim/pass/typeonly.def
  9b03c2a182ad215fce279639f7ab63c6  gcc/testsuite/gm2/pim/pass/typeonly.mod
  7f6cae6f6af9d101dd497cdcd762449e  gcc/testsuite/gm2/pim/pass/typesize.mod
  18759a7011d006aee8db99820cc8faf0  gcc/testsuite/gm2/pim/pass/unbounded.mod
  db93250b9882043af40d6e07c0f43fa0  gcc/testsuite/gm2/pim/pass/unbounded2.mod
  728885ccdcc67c6c07f952d050d2ccf1  gcc/testsuite/gm2/pim/pass/unbounded3.mod
! 38093045555cd835b96184c512d73538  gcc/testsuite/gm2/pim/pass/v.def
  b90fa67a9858435a142926a3b540b878  gcc/testsuite/gm2/pim/pass/varaddress.mod
  63775623e90143ce0ea607d958cd2253  gcc/testsuite/gm2/pim/pass/varaddress2.mod
  5d069a9f8002954ce8ccd8a3efda68ff  gcc/testsuite/gm2/pim/pass/varaddress3.mod
--- 101849,101865 ----
  76c21c8cea07a5a153b6684bf8484c3e  gcc/testsuite/gm2/pim/pass/tinywith5.mod
  f50e06ec9f678f9007b20fa5ec68a9df  gcc/testsuite/gm2/pim/pass/tinywith6.mod
  d16408cac5fecde82827df06e17255e0  gcc/testsuite/gm2/pim/pass/trunc.mod
! 6f47167db4c25b3c41744df2f074f5d8  gcc/testsuite/gm2/pim/pass/try
  7b2287867c7b7651569ca17c83e16f74  gcc/testsuite/gm2/pim/pass/typeequiv.mod
  57af7c398eebd591dfb15094779f3160  gcc/testsuite/gm2/pim/pass/typeequiv2.mod
  af5d853ccfa30d31fefd78b68595e83d  gcc/testsuite/gm2/pim/pass/typeequiv3.mod
! 1e0f3d72cfb77e94eebd3424d550fda5  gcc/testsuite/gm2/pim/pass/typeonly.def
  9b03c2a182ad215fce279639f7ab63c6  gcc/testsuite/gm2/pim/pass/typeonly.mod
  7f6cae6f6af9d101dd497cdcd762449e  gcc/testsuite/gm2/pim/pass/typesize.mod
  18759a7011d006aee8db99820cc8faf0  gcc/testsuite/gm2/pim/pass/unbounded.mod
  db93250b9882043af40d6e07c0f43fa0  gcc/testsuite/gm2/pim/pass/unbounded2.mod
  728885ccdcc67c6c07f952d050d2ccf1  gcc/testsuite/gm2/pim/pass/unbounded3.mod
! 3a88530857e66095a2bce80adadf2f16  gcc/testsuite/gm2/pim/pass/v.def
  b90fa67a9858435a142926a3b540b878  gcc/testsuite/gm2/pim/pass/varaddress.mod
  63775623e90143ce0ea607d958cd2253  gcc/testsuite/gm2/pim/pass/varaddress2.mod
  5d069a9f8002954ce8ccd8a3efda68ff  gcc/testsuite/gm2/pim/pass/varaddress3.mod
*************** e10696341abb193bc1c32d9d6ebe9cde  gcc/te
*** 92561,92567 ****
  3824e675327ed427d28e873ed0efdda4  gcc/testsuite/gm2/pim/pass/varient6.mod
  6710f36f07ea1a65aa8f9423649f1a8d  gcc/testsuite/gm2/pim/pass/varient7.mod
  622383e6e6007cea8b6bcf26b62650c4  gcc/testsuite/gm2/pim/pass/varient8.mod
! 3a1e699a7f70960c0af2cc2bb4be69ef  gcc/testsuite/gm2/pim/pass/varin.def
  4f46b59994360b936438d27da0b1f9cd  gcc/testsuite/gm2/pim/pass/varin.mod
  827648d0584a5ce5bbbbb110ead8dc69  gcc/testsuite/gm2/pim/pass/varint.mod
  e5ec8f741bf3890a308e757b87817d6f  gcc/testsuite/gm2/pim/pass/wincat.mod
--- 101873,101879 ----
  3824e675327ed427d28e873ed0efdda4  gcc/testsuite/gm2/pim/pass/varient6.mod
  6710f36f07ea1a65aa8f9423649f1a8d  gcc/testsuite/gm2/pim/pass/varient7.mod
  622383e6e6007cea8b6bcf26b62650c4  gcc/testsuite/gm2/pim/pass/varient8.mod
! 167059b53560d5a23084354f5de50a1d  gcc/testsuite/gm2/pim/pass/varin.def
  4f46b59994360b936438d27da0b1f9cd  gcc/testsuite/gm2/pim/pass/varin.mod
  827648d0584a5ce5bbbbb110ead8dc69  gcc/testsuite/gm2/pim/pass/varint.mod
  e5ec8f741bf3890a308e757b87817d6f  gcc/testsuite/gm2/pim/pass/wincat.mod
*************** d43f17e8e1c17b4cb6dd87d87fcc45c0  gcc/te
*** 92569,92577 ****
  78d8e8c4fe54512cfe7de8344e8c9c2c  gcc/testsuite/gm2/pim/pass/wordconst.mod
  38fc629f7fbe3d2562244d67dfd497f3  gcc/testsuite/gm2/pim/run/fail/case.mod
  0b4cd37dec2ac8233f355645ba4b0bcd  gcc/testsuite/gm2/pim/run/fail/nil.mod
! 0d8c0c01c739b979eb96894bbcb0887f  gcc/testsuite/gm2/pim/run/fail/pim-run-fail.exp
  6174b2e1489669bd0373fae444f5162a  gcc/testsuite/gm2/pim/run/pass/Countdown.mod
! 0a349d340d2808cfdb547269beddf0fd  gcc/testsuite/gm2/pim/run/pass/EndFor.def
  2f89bb797625b5193c6463a375ebd826  gcc/testsuite/gm2/pim/run/pass/EndFor.mod
  ee2d5f0a9cbc9c80f46880706e57cd6a  gcc/testsuite/gm2/pim/run/pass/EnumTest.mod
  5752c77a932afac938cc61b7f0397134  gcc/testsuite/gm2/pim/run/pass/For1.mod
--- 101881,101889 ----
  78d8e8c4fe54512cfe7de8344e8c9c2c  gcc/testsuite/gm2/pim/pass/wordconst.mod
  38fc629f7fbe3d2562244d67dfd497f3  gcc/testsuite/gm2/pim/run/fail/case.mod
  0b4cd37dec2ac8233f355645ba4b0bcd  gcc/testsuite/gm2/pim/run/fail/nil.mod
! 88808849c35d3524ae221bdde7d45183  gcc/testsuite/gm2/pim/run/fail/pim-run-fail.exp
  6174b2e1489669bd0373fae444f5162a  gcc/testsuite/gm2/pim/run/pass/Countdown.mod
! cae8d767a6f153402eb1b2754715d56c  gcc/testsuite/gm2/pim/run/pass/EndFor.def
  2f89bb797625b5193c6463a375ebd826  gcc/testsuite/gm2/pim/run/pass/EndFor.mod
  ee2d5f0a9cbc9c80f46880706e57cd6a  gcc/testsuite/gm2/pim/run/pass/EnumTest.mod
  5752c77a932afac938cc61b7f0397134  gcc/testsuite/gm2/pim/run/pass/For1.mod
*************** d9a4def1ccfcda9fbef0383ed9a3b0a3  gcc/te
*** 92586,92591 ****
--- 101898,101904 ----
  0cbc37d7e762518b7f6d455ead438f80  gcc/testsuite/gm2/pim/run/pass/For7.mod
  04d57da643f54908625d1f724647e763  gcc/testsuite/gm2/pim/run/pass/For8.mod
  fbe9a7212d06b46b726582400168a73f  gcc/testsuite/gm2/pim/run/pass/For9.mod
+ b52b75b5ff8bd343a4eb5f7529d6507f  gcc/testsuite/gm2/pim/run/pass/ForChar.mod
  e2cb78c087de5624bde513f2686cd8fa  gcc/testsuite/gm2/pim/run/pass/FpuIOBug.mod
  83e11f28bc0633f791c5e4435fb753ba  gcc/testsuite/gm2/pim/run/pass/MaxReal.mod
  2572598f54cbc67cd25de7200d8a37fa  gcc/testsuite/gm2/pim/run/pass/MaxReal2.mod
*************** eedaba5ed60620132c2d794ccb87b825  gcc/te
*** 92598,92612 ****
  ff790e8f33afc6b8d93c99e37f14e010  gcc/testsuite/gm2/pim/run/pass/arraychar.mod
  9c8dd768e65d4ab760b24632ee2a1905  gcc/testsuite/gm2/pim/run/pass/arraychar2.mod
  c15a785e62468945c7235d81cd9a4fc1  gcc/testsuite/gm2/pim/run/pass/arrayrecord.mod
! 89660178e8dbea79e03ea2b4b61e0254  gcc/testsuite/gm2/pim/run/pass/bitsettest.def
  abba6effeb29a02d88d0b004d2943439  gcc/testsuite/gm2/pim/run/pass/bitsettest.mod
  67ec7a7a2c8bf142408fb94b886bcb4b  gcc/testsuite/gm2/pim/run/pass/bytearray.mod
  bcf3b9700ebb816feb0dcffcff74dcc6  gcc/testsuite/gm2/pim/run/pass/constdynstr.mod
  daeeb87f8b14aaebb849dabfea9ff648  gcc/testsuite/gm2/pim/run/pass/conststr.mod
  763806baff36dcc7295f2df11f09dcea  gcc/testsuite/gm2/pim/run/pass/conststr2.mod
  199ec2b67b0445364db02e277a78b82e  gcc/testsuite/gm2/pim/run/pass/cycles.mod
  1622f782f23cd9f51ef818ad4217d78e  gcc/testsuite/gm2/pim/run/pass/dec.mod
  769a3770b8556984cb7dd5767fe495c4  gcc/testsuite/gm2/pim/run/pass/enums.mod
  2a1d41c511ebdf0b8eec1237f33882bc  gcc/testsuite/gm2/pim/run/pass/incsubrange.def
  8cc1599f3ba358d8eeb8188bd228a417  gcc/testsuite/gm2/pim/run/pass/incsubrange.mod
  fb0f4ab006d1f132d650f6071fed6a67  gcc/testsuite/gm2/pim/run/pass/index3.mod
--- 101911,101931 ----
  ff790e8f33afc6b8d93c99e37f14e010  gcc/testsuite/gm2/pim/run/pass/arraychar.mod
  9c8dd768e65d4ab760b24632ee2a1905  gcc/testsuite/gm2/pim/run/pass/arraychar2.mod
  c15a785e62468945c7235d81cd9a4fc1  gcc/testsuite/gm2/pim/run/pass/arrayrecord.mod
! b0fc1c3e2c7bfbce325c1de3573ebd51  gcc/testsuite/gm2/pim/run/pass/bitsettest.def
  abba6effeb29a02d88d0b004d2943439  gcc/testsuite/gm2/pim/run/pass/bitsettest.mod
  67ec7a7a2c8bf142408fb94b886bcb4b  gcc/testsuite/gm2/pim/run/pass/bytearray.mod
+ da2940c1b4fa8248e75ab15a02c13e8f  gcc/testsuite/gm2/pim/run/pass/constdef.def
+ befa7a798cf917d6afd37bb92d59818e  gcc/testsuite/gm2/pim/run/pass/constdef.mod
  bcf3b9700ebb816feb0dcffcff74dcc6  gcc/testsuite/gm2/pim/run/pass/constdynstr.mod
+ dcf82739712d18c43f0fa54048880e06  gcc/testsuite/gm2/pim/run/pass/constlitbase.mod
  daeeb87f8b14aaebb849dabfea9ff648  gcc/testsuite/gm2/pim/run/pass/conststr.mod
  763806baff36dcc7295f2df11f09dcea  gcc/testsuite/gm2/pim/run/pass/conststr2.mod
+ ac96c6e0a6c120416b5fc1077bd5c072  gcc/testsuite/gm2/pim/run/pass/convert1.mod
  199ec2b67b0445364db02e277a78b82e  gcc/testsuite/gm2/pim/run/pass/cycles.mod
  1622f782f23cd9f51ef818ad4217d78e  gcc/testsuite/gm2/pim/run/pass/dec.mod
  769a3770b8556984cb7dd5767fe495c4  gcc/testsuite/gm2/pim/run/pass/enums.mod
+ 0f935813612e0f0578b8a6f174974a91  gcc/testsuite/gm2/pim/run/pass/genconststr.mod
+ 48fff98d72182c48cae09f908a945a87  gcc/testsuite/gm2/pim/run/pass/hightests.mod
  2a1d41c511ebdf0b8eec1237f33882bc  gcc/testsuite/gm2/pim/run/pass/incsubrange.def
  8cc1599f3ba358d8eeb8188bd228a417  gcc/testsuite/gm2/pim/run/pass/incsubrange.mod
  fb0f4ab006d1f132d650f6071fed6a67  gcc/testsuite/gm2/pim/run/pass/index3.mod
*************** fb0f4ab006d1f132d650f6071fed6a67  gcc/te
*** 92616,92627 ****
  cb4edb21f112c9a41319c2e3fcff1551  gcc/testsuite/gm2/pim/run/pass/line.mod
  d06152a9ca9b1fb43227d8f11693fbd4  gcc/testsuite/gm2/pim/run/pass/long.mod
  840fd61860b66d4e94fb12797014a1dc  gcc/testsuite/gm2/pim/run/pass/longfor.mod
  6edbb003d56b4c7730c6a584504491f4  gcc/testsuite/gm2/pim/run/pass/longtypes10.mod
  5cc33af60e585c30682aea72e771356f  gcc/testsuite/gm2/pim/run/pass/longtypes7.mod
  a19238272ac55ac057474560fbfc9bf0  gcc/testsuite/gm2/pim/run/pass/longtypes8.mod
  a6dd9768850faf2e8bc932bd78df1775  gcc/testsuite/gm2/pim/run/pass/longtypes9.mod
- 202d78b816607a547e9bb3ec07dca43b  gcc/testsuite/gm2/pim/run/pass/math.mod
- 1f448bd57f0f326248241ce4cf5b8ff0  gcc/testsuite/gm2/pim/run/pass/math2.mod
  53f4fa9844d20f075594e1a7a0a28b16  gcc/testsuite/gm2/pim/run/pass/mathconst.mod
  1e99cd635224bf803a07f99406e44edd  gcc/testsuite/gm2/pim/run/pass/minhello.mod
  d5d68c940846ca69f1b74885607ec396  gcc/testsuite/gm2/pim/run/pass/minimal.mod
--- 101935,101952 ----
  cb4edb21f112c9a41319c2e3fcff1551  gcc/testsuite/gm2/pim/run/pass/line.mod
  d06152a9ca9b1fb43227d8f11693fbd4  gcc/testsuite/gm2/pim/run/pass/long.mod
  840fd61860b66d4e94fb12797014a1dc  gcc/testsuite/gm2/pim/run/pass/longfor.mod
+ a67a776299c7626a8472298bc069497b  gcc/testsuite/gm2/pim/run/pass/longint1.mod
+ 620962c1a286db8e9398da33f14a069c  gcc/testsuite/gm2/pim/run/pass/longint2.mod
+ 25367f17feaa539111c15b9a9cbfc2aa  gcc/testsuite/gm2/pim/run/pass/longint3.mod
+ 93518fc08f22090bb39af97639ca923e  gcc/testsuite/gm2/pim/run/pass/longint4.mod
+ d8f5dd5f08b343a3fcdd21be5c29d82e  gcc/testsuite/gm2/pim/run/pass/longint5.mod
+ 46966b80093e15336aa1a6f5ab6fb0a5  gcc/testsuite/gm2/pim/run/pass/longint6.mod
+ 2ad95b3a783c9229e7190b11d3947351  gcc/testsuite/gm2/pim/run/pass/longint7.mod
+ adfb059f6382c7c89c3a5d12f51f4952  gcc/testsuite/gm2/pim/run/pass/longint8.mod
  6edbb003d56b4c7730c6a584504491f4  gcc/testsuite/gm2/pim/run/pass/longtypes10.mod
  5cc33af60e585c30682aea72e771356f  gcc/testsuite/gm2/pim/run/pass/longtypes7.mod
  a19238272ac55ac057474560fbfc9bf0  gcc/testsuite/gm2/pim/run/pass/longtypes8.mod
  a6dd9768850faf2e8bc932bd78df1775  gcc/testsuite/gm2/pim/run/pass/longtypes9.mod
  53f4fa9844d20f075594e1a7a0a28b16  gcc/testsuite/gm2/pim/run/pass/mathconst.mod
  1e99cd635224bf803a07f99406e44edd  gcc/testsuite/gm2/pim/run/pass/minhello.mod
  d5d68c940846ca69f1b74885607ec396  gcc/testsuite/gm2/pim/run/pass/minimal.mod
*************** a354604ff0a57790519a73ae758a4def  gcc/te
*** 92636,92642 ****
  8c9d711a50f220f52d04836dd3f6c70b  gcc/testsuite/gm2/pim/run/pass/nestedwith2.mod
  09ff245bbb0c8265d2bf0fddccb18de1  gcc/testsuite/gm2/pim/run/pass/nestedwith3.mod
  51a5422c6de2ab8935b1a192f68c33bf  gcc/testsuite/gm2/pim/run/pass/nothing.mod
! d543a0e3e34932a80b4643307cddf27e  gcc/testsuite/gm2/pim/run/pass/pim-run-pass.exp
  6520670a15bd426ddb9248bb66b28e70  gcc/testsuite/gm2/pim/run/pass/prog31ex.mod
  7ff19964979a5b55b4038c2bb770b4f4  gcc/testsuite/gm2/pim/run/pass/rts.mod
  6916c779dee4af845dad0adfecc0082c  gcc/testsuite/gm2/pim/run/pass/setcritical.mod
--- 101961,101967 ----
  8c9d711a50f220f52d04836dd3f6c70b  gcc/testsuite/gm2/pim/run/pass/nestedwith2.mod
  09ff245bbb0c8265d2bf0fddccb18de1  gcc/testsuite/gm2/pim/run/pass/nestedwith3.mod
  51a5422c6de2ab8935b1a192f68c33bf  gcc/testsuite/gm2/pim/run/pass/nothing.mod
! a8a794c96a7e1d166e0cfcbaba075c07  gcc/testsuite/gm2/pim/run/pass/pim-run-pass.exp
  6520670a15bd426ddb9248bb66b28e70  gcc/testsuite/gm2/pim/run/pass/prog31ex.mod
  7ff19964979a5b55b4038c2bb770b4f4  gcc/testsuite/gm2/pim/run/pass/rts.mod
  6916c779dee4af845dad0adfecc0082c  gcc/testsuite/gm2/pim/run/pass/setcritical.mod
*************** d543a0e3e34932a80b4643307cddf27e  gcc/te
*** 92644,92655 ****
  6cdfc14bc7ee63ca8da4013a71da87cd  gcc/testsuite/gm2/pim/run/pass/singlechar.mod
  772af1d52887633effa239759665d2d8  gcc/testsuite/gm2/pim/run/pass/str6.mod
  5d086db79153ca80a4e3146b2b21388c  gcc/testsuite/gm2/pim/run/pass/stringaddr.mod
! 821d784f152c1e0d9269adf52667b903  gcc/testsuite/gm2/pim/run/pass/stringaddr2.def
  ea05c07f44d4d4e654a93514bced9c1e  gcc/testsuite/gm2/pim/run/pass/stringaddr2.mod
  9b40d0ad6c7a669a092125fe6289671d  gcc/testsuite/gm2/pim/run/pass/stripped.mod
! e99e6e01e108a8ea8bc10374ce75c00f  gcc/testsuite/gm2/pim/run/pass/sys.def
  c505955d69348d8bea797b775d67141d  gcc/testsuite/gm2/pim/run/pass/sys.mod
! dd2a8139b9755630c0a73730cfacbfd7  gcc/testsuite/gm2/pim/run/pass/t.def
  a6b257b26db7094f690a0d63bd324a06  gcc/testsuite/gm2/pim/run/pass/testaddr.mod
  92dfc0fb7c39283328f103d39d013d38  gcc/testsuite/gm2/pim/run/pass/testaddr2.mod
  f98a501b89414b479c23c311884fc57b  gcc/testsuite/gm2/pim/run/pass/testaddr3.mod
--- 101969,101980 ----
  6cdfc14bc7ee63ca8da4013a71da87cd  gcc/testsuite/gm2/pim/run/pass/singlechar.mod
  772af1d52887633effa239759665d2d8  gcc/testsuite/gm2/pim/run/pass/str6.mod
  5d086db79153ca80a4e3146b2b21388c  gcc/testsuite/gm2/pim/run/pass/stringaddr.mod
! 1a50aae228ef046b8d6a4fbeca8c4f19  gcc/testsuite/gm2/pim/run/pass/stringaddr2.def
  ea05c07f44d4d4e654a93514bced9c1e  gcc/testsuite/gm2/pim/run/pass/stringaddr2.mod
  9b40d0ad6c7a669a092125fe6289671d  gcc/testsuite/gm2/pim/run/pass/stripped.mod
! f03f048f6326510b7da012effa66d2ef  gcc/testsuite/gm2/pim/run/pass/sys.def
  c505955d69348d8bea797b775d67141d  gcc/testsuite/gm2/pim/run/pass/sys.mod
! 6fba4ee526fb38454fa3cb09a7edec05  gcc/testsuite/gm2/pim/run/pass/t.def
  a6b257b26db7094f690a0d63bd324a06  gcc/testsuite/gm2/pim/run/pass/testaddr.mod
  92dfc0fb7c39283328f103d39d013d38  gcc/testsuite/gm2/pim/run/pass/testaddr2.mod
  f98a501b89414b479c23c311884fc57b  gcc/testsuite/gm2/pim/run/pass/testaddr3.mod
*************** bc4a6e33a4ecaae2c417b31cc8a8bf16  gcc/te
*** 92659,92674 ****
  c9b589a0e496ee1ec8abd7aac857cb77  gcc/testsuite/gm2/pim/run/pass/testarray4.mod
  a6a912987dd69dc45e6ac1c7008c02cc  gcc/testsuite/gm2/pim/run/pass/testarray5.mod
  f4d92d704297d6ac40734a514a93cfee  gcc/testsuite/gm2/pim/run/pass/testavail.mod
  d24cd8ca7d27c2cc044ec77a77b80728  gcc/testsuite/gm2/pim/run/pass/testdiv.mod
  356c71c669af263079f04c1a50c0fb57  gcc/testsuite/gm2/pim/run/pass/testfpufunc.mod
  d01b2e17646a295dc5ac99eace9e792c  gcc/testsuite/gm2/pim/run/pass/testfpufunc2.mod
  c8b514b5b9718301c1cfb7bd82b0e9f0  gcc/testsuite/gm2/pim/run/pass/testlarge.mod
  eb28384ede78f51ba82c8444fd6c8e78  gcc/testsuite/gm2/pim/run/pass/testlarge2.mod
  7a97129ca6271d4522895d2287ddb987  gcc/testsuite/gm2/pim/run/pass/testnextproc.mod
  715f70e614e531d112f6859d27c33a4b  gcc/testsuite/gm2/pim/run/pass/testparam.mod
  cb16e2aca4a7a3f3be1460c680e660ae  gcc/testsuite/gm2/pim/run/pass/testreturnstr.mod
  db013ad2ccc3c18537246e6f00174618  gcc/testsuite/gm2/pim/run/pass/testreturnstr2.mod
! 8602158e171beb0f0daabd4368d99166  gcc/testsuite/gm2/pim/run/pass/testreturnstr3.def
  40b93959daea777e3642123fe6a2f349  gcc/testsuite/gm2/pim/run/pass/testreturnstr3.mod
  cc3bbca460511dda4779c4bfec732a6d  gcc/testsuite/gm2/pim/run/pass/testsize.mod
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/pim/run/pass/testsize2.mod
--- 101984,102007 ----
  c9b589a0e496ee1ec8abd7aac857cb77  gcc/testsuite/gm2/pim/run/pass/testarray4.mod
  a6a912987dd69dc45e6ac1c7008c02cc  gcc/testsuite/gm2/pim/run/pass/testarray5.mod
  f4d92d704297d6ac40734a514a93cfee  gcc/testsuite/gm2/pim/run/pass/testavail.mod
+ f149133c3fa1f44ff1f7faf894a955ee  gcc/testsuite/gm2/pim/run/pass/testbuiltins.mod
  d24cd8ca7d27c2cc044ec77a77b80728  gcc/testsuite/gm2/pim/run/pass/testdiv.mod
+ 9b3ed8c9d7e1d9ef09ae6939a014a587  gcc/testsuite/gm2/pim/run/pass/testforloopzero.mod
+ 424b410ca4afadb17413f72b9edd79bc  gcc/testsuite/gm2/pim/run/pass/testforloopzero2.mod
+ 0480e244d6158ad097b0ab2beb9c82a5  gcc/testsuite/gm2/pim/run/pass/testforloopzero3.mod
+ c2d564de509df8f0ae592ae872386b16  gcc/testsuite/gm2/pim/run/pass/testforloopzero4.mod
  356c71c669af263079f04c1a50c0fb57  gcc/testsuite/gm2/pim/run/pass/testfpufunc.mod
  d01b2e17646a295dc5ac99eace9e792c  gcc/testsuite/gm2/pim/run/pass/testfpufunc2.mod
+ 6762f2aa280ddbbb0f25e07e46a9d67e  gcc/testsuite/gm2/pim/run/pass/testimportconst.mod
  c8b514b5b9718301c1cfb7bd82b0e9f0  gcc/testsuite/gm2/pim/run/pass/testlarge.mod
  eb28384ede78f51ba82c8444fd6c8e78  gcc/testsuite/gm2/pim/run/pass/testlarge2.mod
+ fae349b27e5da7066f8332ae9b00ec1a  gcc/testsuite/gm2/pim/run/pass/testmath.mod
+ 34225e35e27109988e0973c7a628f3a2  gcc/testsuite/gm2/pim/run/pass/testmath2.mod
  7a97129ca6271d4522895d2287ddb987  gcc/testsuite/gm2/pim/run/pass/testnextproc.mod
  715f70e614e531d112f6859d27c33a4b  gcc/testsuite/gm2/pim/run/pass/testparam.mod
  cb16e2aca4a7a3f3be1460c680e660ae  gcc/testsuite/gm2/pim/run/pass/testreturnstr.mod
  db013ad2ccc3c18537246e6f00174618  gcc/testsuite/gm2/pim/run/pass/testreturnstr2.mod
! 0eefaf5d1c49522581ce943417c14440  gcc/testsuite/gm2/pim/run/pass/testreturnstr3.def
  40b93959daea777e3642123fe6a2f349  gcc/testsuite/gm2/pim/run/pass/testreturnstr3.mod
  cc3bbca460511dda4779c4bfec732a6d  gcc/testsuite/gm2/pim/run/pass/testsize.mod
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/pim/run/pass/testsize2.mod
*************** f4f8d23df0f1a9b99b0109a940ba8a4e  gcc/te
*** 92684,92732 ****
  16ef7b8c82da9cb2df39ca6c14380d96  gcc/testsuite/gm2/pim/run/pass/wr.mod
  82f55b7bc543645382f6aa7d85b9a5ec  gcc/testsuite/gm2/pimcoroutines/pass/imports.mod
  01e778d7ddc85428a5104010bc2f4b5d  gcc/testsuite/gm2/pimcoroutines/pass/imports2.mod
! 876fad3f7388d0f1542e901fd3ede156  gcc/testsuite/gm2/pimcoroutines/pass/pimcoroutines-pass.exp
! 7fe75afca721b703bf451e5ba1d44656  gcc/testsuite/gm2/pimcoroutines/run/pass/pimcoroutines-run-pass.exp
  c953eb0b38fdc8c2f9526508f1594b00  gcc/testsuite/gm2/pimcoroutines/run/pass/testtime.mod
  941a3483c8a10137ae148130da144c48  gcc/testsuite/gm2/pimlib/base/run/pass/FIO.mod
  0de2a4029cfe9e1ca579c68f9596e248  gcc/testsuite/gm2/pimlib/base/run/pass/StrLib.mod
! d67a566bf418897692395e9f893c4320  gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp
  0dcaef09d969b7670f7ae3450706ad2a  gcc/testsuite/gm2/pimlib/base/run/pass/testconvert.mod
! 2f547e789a0c3fd17329d8092c3bd59f  gcc/testsuite/gm2/pimlib/coroutines/pass/pimlib-coroutines-pass.exp
  3679bb7285981f2bd6b8e9050de5e897  gcc/testsuite/gm2/pimlib/coroutines/pass/priority.mod
  26036b6dc8485eeb5158fc7e24c5a90c  gcc/testsuite/gm2/pimlib/coroutines/pass/priority2.mod
! fbe43207fd53890d57192fcfdd758fa8  gcc/testsuite/gm2/pimlib/coroutines/pass/priority3.def
  a9e267cb82ed2df230b3e58b4c907ddf  gcc/testsuite/gm2/pimlib/coroutines/pass/priority3.mod
  9ba26e57db6af1c3a3c5376c993933b9  gcc/testsuite/gm2/pimlib/logitech/pass/LogitechLong.mod
  5d1b40280ae1ffdc259d0bb704d872b5  gcc/testsuite/gm2/pimlib/logitech/pass/hello.mod
! 516d32fd43a2c79c62a4cb937d784388  gcc/testsuite/gm2/pimlib/logitech/pass/pimlib-logitech-pass.exp
  2b75d46d6119bc0814d43be6f649392d  gcc/testsuite/gm2/pimlib/logitech/run/pass/bbits.mod
  5d1b40280ae1ffdc259d0bb704d872b5  gcc/testsuite/gm2/pimlib/logitech/run/pass/hello.mod
  d7c77f2b9d5d381ef79361d07b23e4ce  gcc/testsuite/gm2/pimlib/logitech/run/pass/helloinout.mod
  9257fb3162b0afc1167d950bbe808001  gcc/testsuite/gm2/pimlib/logitech/run/pass/intb.mod
! 7df889d2afddd18c06a4470a9d97ecc4  gcc/testsuite/gm2/pimlib/logitech/run/pass/pimlib-logitech-run-pass.exp
! d40e552b6af151dc78a4c2501dd490b7  gcc/testsuite/gm2/pimlib/logitech/run/pass/realconv.mod
  bc32d4230d22e40bfcb1e74bb392ab97  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput.mod
  48bea14426a2eb3497c75d91b28ead48  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput2.mod
  86bd87e23026ed6bf9dab38da47fd638  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput3.mod
  6de5e9c5a7b2bb68088a9983d496b0ef  gcc/testsuite/gm2/pimlib/logitech/run/pass/rename.mod
  00248d5f46033daa8b9856ff2869e3e5  gcc/testsuite/gm2/pimlib/logitech/run/pass/timedate.mod
  cb7f18d9d8e9955ad964a25e931aacba  gcc/testsuite/gm2/pimlib/logitech/run/pass/writeoct.mod
! 81eab37fb45a49d5f470a33f4e651c64  gcc/testsuite/gm2/pimlib/pass/pimlib-pass.exp
  b434571f14dc637407f321e185093bce  gcc/testsuite/gm2/pimlib/run/pass/format.mod
  4c7f4f9d21d983dcdc9bdfa024e5f610  gcc/testsuite/gm2/pimlib/run/pass/limittests.c
  6054ee07cec468d62f9f85c2a854c050  gcc/testsuite/gm2/pimlib/run/pass/limittests.mod
  94e872e38c7828c388ce3c4a5cfd3ca3  gcc/testsuite/gm2/pimlib/run/pass/longreal.mod
! 7df889d2afddd18c06a4470a9d97ecc4  gcc/testsuite/gm2/pimlib/run/pass/pimlib-run-pass.exp
  19fbabb90573435e066566857d602ff9  gcc/testsuite/gm2/pimlib/run/pass/test.c
  03835ac6724df96b735b599622c5ed72  gcc/testsuite/gm2/pimlib/run/pass/testreal.mod
  6cd4e8bb0e0f2f90962a1667f6d2c50f  gcc/testsuite/gm2/pimlib/run/pass/testreal2.mod
  15b6dac89ee25f9c41909c8cab7033a9  gcc/testsuite/gm2/pimlib/run/pass/testreal4.mod
  d42665273dfdf6111268f44c425bef5a  gcc/testsuite/gm2/projects/README
  9a671ebc8f4bdad366a08a252439855c  gcc/testsuite/gm2/projects/iso/run/pass/halma/halma.mod
! 3e8fc6d8d1060b59318e0bb94e248e5c  gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp
  663144335381bfcd7bfe7a46bf13191b  gcc/testsuite/gm2/projects/iso/run/pass/hello/hello.mod
! 3e8fc6d8d1060b59318e0bb94e248e5c  gcc/testsuite/gm2/projects/iso/run/pass/hello/projects-iso-run-pass-hello.exp
! c1a5f9c2c2d2d2b4ae34492728dc7169  gcc/testsuite/gm2/projects/iso/small/run/pass/iso-extended-opaque-run-pass.exp
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/projects/iso/small/run/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/projects/iso/small/run/pass/stressset.mod
  bed0d51b88d635421ca42903e51c031a  gcc/testsuite/gm2/projects/iso/small/run/pass/test1.mod
--- 102017,102069 ----
  16ef7b8c82da9cb2df39ca6c14380d96  gcc/testsuite/gm2/pim/run/pass/wr.mod
  82f55b7bc543645382f6aa7d85b9a5ec  gcc/testsuite/gm2/pimcoroutines/pass/imports.mod
  01e778d7ddc85428a5104010bc2f4b5d  gcc/testsuite/gm2/pimcoroutines/pass/imports2.mod
! b2e93d1734450ee2fcdf45fcfba79d9d  gcc/testsuite/gm2/pimcoroutines/pass/pimcoroutines-pass.exp
! 0094a1bc4b71274d5e40683654bf9fea  gcc/testsuite/gm2/pimcoroutines/run/pass/pimcoroutines-run-pass.exp
  c953eb0b38fdc8c2f9526508f1594b00  gcc/testsuite/gm2/pimcoroutines/run/pass/testtime.mod
  941a3483c8a10137ae148130da144c48  gcc/testsuite/gm2/pimlib/base/run/pass/FIO.mod
  0de2a4029cfe9e1ca579c68f9596e248  gcc/testsuite/gm2/pimlib/base/run/pass/StrLib.mod
! 15d977c16ef7992e26236d8276be67a3  gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp
  0dcaef09d969b7670f7ae3450706ad2a  gcc/testsuite/gm2/pimlib/base/run/pass/testconvert.mod
! 1c933e5c5c7b7de5821e8f1f57b7374b  gcc/testsuite/gm2/pimlib/coroutines/pass/pimlib-coroutines-pass.exp
  3679bb7285981f2bd6b8e9050de5e897  gcc/testsuite/gm2/pimlib/coroutines/pass/priority.mod
  26036b6dc8485eeb5158fc7e24c5a90c  gcc/testsuite/gm2/pimlib/coroutines/pass/priority2.mod
! ac3574aa6f47d55d4318822d69e9b5fd  gcc/testsuite/gm2/pimlib/coroutines/pass/priority3.def
  a9e267cb82ed2df230b3e58b4c907ddf  gcc/testsuite/gm2/pimlib/coroutines/pass/priority3.mod
  9ba26e57db6af1c3a3c5376c993933b9  gcc/testsuite/gm2/pimlib/logitech/pass/LogitechLong.mod
  5d1b40280ae1ffdc259d0bb704d872b5  gcc/testsuite/gm2/pimlib/logitech/pass/hello.mod
! 6bb15778701c0fce630149f8119a431d  gcc/testsuite/gm2/pimlib/logitech/pass/pimlib-logitech-pass.exp
  2b75d46d6119bc0814d43be6f649392d  gcc/testsuite/gm2/pimlib/logitech/run/pass/bbits.mod
  5d1b40280ae1ffdc259d0bb704d872b5  gcc/testsuite/gm2/pimlib/logitech/run/pass/hello.mod
  d7c77f2b9d5d381ef79361d07b23e4ce  gcc/testsuite/gm2/pimlib/logitech/run/pass/helloinout.mod
  9257fb3162b0afc1167d950bbe808001  gcc/testsuite/gm2/pimlib/logitech/run/pass/intb.mod
! 3beb1251e14b958e384073f3d2881ad3  gcc/testsuite/gm2/pimlib/logitech/run/pass/pimlib-logitech-run-pass.exp
! 8db756516b531086697e11764c6430aa  gcc/testsuite/gm2/pimlib/logitech/run/pass/realconv.mod
  bc32d4230d22e40bfcb1e74bb392ab97  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput.mod
  48bea14426a2eb3497c75d91b28ead48  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput2.mod
  86bd87e23026ed6bf9dab38da47fd638  gcc/testsuite/gm2/pimlib/logitech/run/pass/realinput3.mod
  6de5e9c5a7b2bb68088a9983d496b0ef  gcc/testsuite/gm2/pimlib/logitech/run/pass/rename.mod
  00248d5f46033daa8b9856ff2869e3e5  gcc/testsuite/gm2/pimlib/logitech/run/pass/timedate.mod
  cb7f18d9d8e9955ad964a25e931aacba  gcc/testsuite/gm2/pimlib/logitech/run/pass/writeoct.mod
! acf3568bea7f8236f01be1a3daeea0c5  gcc/testsuite/gm2/pimlib/pass/pimlib-pass.exp
  b434571f14dc637407f321e185093bce  gcc/testsuite/gm2/pimlib/run/pass/format.mod
  4c7f4f9d21d983dcdc9bdfa024e5f610  gcc/testsuite/gm2/pimlib/run/pass/limittests.c
  6054ee07cec468d62f9f85c2a854c050  gcc/testsuite/gm2/pimlib/run/pass/limittests.mod
  94e872e38c7828c388ce3c4a5cfd3ca3  gcc/testsuite/gm2/pimlib/run/pass/longreal.mod
! 3beb1251e14b958e384073f3d2881ad3  gcc/testsuite/gm2/pimlib/run/pass/pimlib-run-pass.exp
  19fbabb90573435e066566857d602ff9  gcc/testsuite/gm2/pimlib/run/pass/test.c
+ eb658a5ad91f33a16115753df34c87d4  gcc/testsuite/gm2/pimlib/run/pass/testchar.mod
+ 248b32cb4654932e670ca1f4528b0e6d  gcc/testsuite/gm2/pimlib/run/pass/testfiobinary.mod
+ e5d5befc7aececd211929f46bd11fdda  gcc/testsuite/gm2/pimlib/run/pass/testgetopt.mod
+ 9a882e693618bae68e045331cbbf0a39  gcc/testsuite/gm2/pimlib/run/pass/testnan.mod
  03835ac6724df96b735b599622c5ed72  gcc/testsuite/gm2/pimlib/run/pass/testreal.mod
  6cd4e8bb0e0f2f90962a1667f6d2c50f  gcc/testsuite/gm2/pimlib/run/pass/testreal2.mod
  15b6dac89ee25f9c41909c8cab7033a9  gcc/testsuite/gm2/pimlib/run/pass/testreal4.mod
  d42665273dfdf6111268f44c425bef5a  gcc/testsuite/gm2/projects/README
  9a671ebc8f4bdad366a08a252439855c  gcc/testsuite/gm2/projects/iso/run/pass/halma/halma.mod
! c26681f3c41919cb8c99096749fdf817  gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp
  663144335381bfcd7bfe7a46bf13191b  gcc/testsuite/gm2/projects/iso/run/pass/hello/hello.mod
! 1d61bb664cc5a1633621e43ee5bead79  gcc/testsuite/gm2/projects/iso/run/pass/hello/projects-iso-run-pass-hello.exp
! 351471238c26a991085e32e6ecd770bd  gcc/testsuite/gm2/projects/iso/small/run/pass/iso-extended-opaque-run-pass.exp
  b45afeaab70f1f8a13e0efe9b2520a3c  gcc/testsuite/gm2/projects/iso/small/run/pass/stressset.def
  5769b725a73103f0bfd47f99925f7b77  gcc/testsuite/gm2/projects/iso/small/run/pass/stressset.mod
  bed0d51b88d635421ca42903e51c031a  gcc/testsuite/gm2/projects/iso/small/run/pass/test1.mod
*************** e2fc89249d61235ed1058216be8d9ebd  gcc/te
*** 92734,92764 ****
  35b03c29a5246125d75887214885df57  gcc/testsuite/gm2/projects/iso/small/run/pass/testlib.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/projects/iso/small/run/pass/testset.mod
  01f9ac978e666fe34aafe35e243d4ba0  gcc/testsuite/gm2/projects/log/run/pass/hello/hello.mod
! 68601c5eec45b11ab5d6675bfe1605d5  gcc/testsuite/gm2/projects/log/run/pass/hello/projects-log-run-pass-hello.exp
  6d82c9c4ae47ee7aa725b73c98c9a0c3  gcc/testsuite/gm2/projects/pim/run/pass/hello/hello.mod
! e09f575ae33c4b995778cecda661e9e6  gcc/testsuite/gm2/projects/pim/run/pass/hello/projects-pim-run-pass-hello.exp
! f615be835b3b4ef5b2c8aff9f91f2fc9  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.def
  f707e419c0eb663f20c80d0045e4869f  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.mod
! bfa095d9472f9b907473f1790dee224a  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.def
  383d833f6efdf2909d176baf61335b2a  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.mod
! 0435a11b55d89cbb733043c602cb5717  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.def
  4adb8779ff4e9c2c34ba6b1fa12effa7  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.mod
! e28a25b135c5db1f4dae3988cfa0d080  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.def
  ab72bd0daafa0e8b0900a7f43ccd2f01  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.mod
! 190fbc9ed328e9dc4bfbd8144dfe2bf7  gcc/testsuite/gm2/projects/pim/run/pass/random/MakeBoxes.def
  aa1f41a867ddc621c5773c381a11d871  gcc/testsuite/gm2/projects/pim/run/pass/random/MakeBoxes.mod
  96523f86bcdd7cdc98188567eb89f760  gcc/testsuite/gm2/projects/pim/run/pass/random/Map.mod
! 36ec3774d6f7ea2390fe9c5e86aceac0  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.def
  b2b160dcd71c2f413a7eed59b599fa32  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.mod
! de4e13c8e29b93a46df68612f26fca68  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.def
  103afaefb845239205ee2541954f0925  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.mod
! 76cc8aa2b922e02413458e134482c430  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.def
  819d3e9d2b079f4b97e31e6214e41c09  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.mod
! 39c8ab7c8786b3e8e3b8b58ca5b8753a  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.def
  5c8ec95ce0f78e147b663701cb731629  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.mod
! 92eea76dc436f91252e681ab9726a8a3  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.def
  308ee15c56c2918de6a28404214c0acb  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.mod
! fa5e9d35060843b697e812cea2bb6fa9  gcc/testsuite/gm2/projects/pim/run/pass/random/projects-pim-run-pass-random.exp
  eb5e0c08657ae9af904faf4eaee4f4a2  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvCmd.def
  e312427ff6d7dc5f9ac1f5adfc0e2e6f  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvCmd.mod
  6fa73f2ccd7ce67da29162593943e550  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvIntroduction.def
--- 102071,102103 ----
  35b03c29a5246125d75887214885df57  gcc/testsuite/gm2/projects/iso/small/run/pass/testlib.mod
  5f617579b6549693c5867d12168bd834  gcc/testsuite/gm2/projects/iso/small/run/pass/testset.mod
  01f9ac978e666fe34aafe35e243d4ba0  gcc/testsuite/gm2/projects/log/run/pass/hello/hello.mod
! ad714329a526adbe94ad90f08d145ae3  gcc/testsuite/gm2/projects/log/run/pass/hello/projects-log-run-pass-hello.exp
  6d82c9c4ae47ee7aa725b73c98c9a0c3  gcc/testsuite/gm2/projects/pim/run/pass/hello/hello.mod
! e116da3fe9bec9075bfb852c4bfea83f  gcc/testsuite/gm2/projects/pim/run/pass/hello/projects-pim-run-pass-hello.exp
! 09147a4cdb0ff29b350b18cfedc624c8  gcc/testsuite/gm2/projects/pim/run/pass/pegfive/pegfive.mod
! da11d6ecd1730d6ba0c31bec4d3e791a  gcc/testsuite/gm2/projects/pim/run/pass/pegfive/projects-pim-run-pass-pegfive.exp
! 87c973152a3d43462fdee7c64df04c82  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.def
  f707e419c0eb663f20c80d0045e4869f  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.mod
! 9055387f752490c3eac1a20971f8f6e1  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.def
  383d833f6efdf2909d176baf61335b2a  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.mod
! 01b6983d3c8d22f70f4f1424b1cfa31c  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.def
  4adb8779ff4e9c2c34ba6b1fa12effa7  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.mod
! 43ff6f0149d21ef5aacc0b8bdae49cea  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.def
  ab72bd0daafa0e8b0900a7f43ccd2f01  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.mod
! 427cdebbe74fef06da8c0d28613989b2  gcc/testsuite/gm2/projects/pim/run/pass/random/MakeBoxes.def
  aa1f41a867ddc621c5773c381a11d871  gcc/testsuite/gm2/projects/pim/run/pass/random/MakeBoxes.mod
  96523f86bcdd7cdc98188567eb89f760  gcc/testsuite/gm2/projects/pim/run/pass/random/Map.mod
! 2441b9924d65aa1fb80b1f7a646b8805  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.def
  b2b160dcd71c2f413a7eed59b599fa32  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.mod
! 71baef777df50f961094c0fe78c71533  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.def
  103afaefb845239205ee2541954f0925  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.mod
! 25e870bde5d5ef14c1b623ba6fa80cdd  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.def
  819d3e9d2b079f4b97e31e6214e41c09  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.mod
! b623368372173aa060aab5cd8653e161  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.def
  5c8ec95ce0f78e147b663701cb731629  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.mod
! 2ffb06146341ecd686e0bbab7985059b  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.def
  308ee15c56c2918de6a28404214c0acb  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.mod
! 0a861c5038de1b651b686c70e9ea629a  gcc/testsuite/gm2/projects/pim/run/pass/random/projects-pim-run-pass-random.exp
  eb5e0c08657ae9af904faf4eaee4f4a2  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvCmd.def
  e312427ff6d7dc5f9ac1f5adfc0e2e6f  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvCmd.mod
  6fa73f2ccd7ce67da29162593943e550  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvIntroduction.def
*************** f3bf47c9e6f632cf8997848aada27d8c  gcc/te
*** 92770,92776 ****
  d6728264d8aeb427dca096cf9b07d873  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.bnf
  94cf59c423138bcd5afb00458e8d1bd2  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.def
  6daed72d1ff89bcb0e838dfed352989e  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.mod
! 28b5beebe59896a011469362236c48ca  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSound.def
  5a18152094831f0e232e06047f7060d5  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSound.mod
  089619fbdff6cb3fe8352bf58aa8e8b0  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSystem.def
  d27705922d3186f689e47811d51c4f5f  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSystem.mod
--- 102109,102115 ----
  d6728264d8aeb427dca096cf9b07d873  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.bnf
  94cf59c423138bcd5afb00458e8d1bd2  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.def
  6daed72d1ff89bcb0e838dfed352989e  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.mod
! 48f9aaa7650aec822b72231fa0ef98d6  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSound.def
  5a18152094831f0e232e06047f7060d5  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSound.mod
  089619fbdff6cb3fe8352bf58aa8e8b0  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSystem.def
  d27705922d3186f689e47811d51c4f5f  gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvSystem.mod
*************** f7d2606e7d1db4df81a4f5e310f7aae2  gcc/te
*** 92793,92813 ****
  c8f239456ccc9c4fd9edb753640abc35  gcc/testsuite/gm2/projects/pim/run/pass/tower/SocketControl.def
  f4b4c0b867c41208bebf0455f4366d99  gcc/testsuite/gm2/projects/pim/run/pass/tower/Window.def
  0f61dbbbcea4138e69598227dc906627  gcc/testsuite/gm2/projects/pim/run/pass/tower/Window.mod
! 8365e75de6672d2aa355f3e868afe3b7  gcc/testsuite/gm2/projects/pim/run/pass/tower/adv.flex
  d6e4aca189a6d0c78d4ef055fdab35d9  gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.c
  9b38ecfb8436c855f3ee5126e513b315  gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.def
! b682b0eeb13f73acceb7dc8b00031834  gcc/testsuite/gm2/projects/pim/run/pass/tower/projects-pim-run-pass-tower.exp
  3e0d828453d6336d7123f2417d7bd570  gcc/testsuite/gm2/projects/pim/run/pass/tower/star
  cd4b31a663c863e31375daaa812c3f68  gcc/testsuite/gm2/quads/run/pass/becomes.mod
  00f03972820bebc01d525280f94fec34  gcc/testsuite/gm2/quads/run/pass/param.mod
! a9ca4cdb0b91701a711004b518a6c53e  gcc/testsuite/gm2/quads/run/pass/quads-run-pass.exp
  ddcf079ea49e0ecb2f490c0e68fd697c  gcc/testsuite/gm2/quads/run/pass/return.mod
  b1c86bac75dba8a54e32fa30f5815baa  gcc/testsuite/gm2/recover/pass/cannot-solve/begin.mod
  7d43717184e3b0019227e979d25c24ec  gcc/testsuite/gm2/recover/pass/cannot-solve/statementsemi.mod
  d151c38b77ce8c99cc41d05bcf8f3559  gcc/testsuite/gm2/recover/pass/end2.mod
  f63a9f1466200fc845420d1d2e59fa17  gcc/testsuite/gm2/recover/pass/of.mod
  92e9c8d700bf0a29d08690363f071268  gcc/testsuite/gm2/recover/pass/procsemi.mod
! 81eab37fb45a49d5f470a33f4e651c64  gcc/testsuite/gm2/recover/pass/recover-pass.exp
  8ded13dd2d8c1f6547bfb3bba3551d86  gcc/testsuite/gm2/recover/pass/rrbra.mod
  7d8438e3ef1c6c5615f347a06c928dff  gcc/testsuite/gm2/recover/pass/rsbra.mod
  dcf7dd91e5b76850ed3b7965e10d56c3  gcc/testsuite/gm2/recover/pass/semi.mod
--- 102132,102152 ----
  c8f239456ccc9c4fd9edb753640abc35  gcc/testsuite/gm2/projects/pim/run/pass/tower/SocketControl.def
  f4b4c0b867c41208bebf0455f4366d99  gcc/testsuite/gm2/projects/pim/run/pass/tower/Window.def
  0f61dbbbcea4138e69598227dc906627  gcc/testsuite/gm2/projects/pim/run/pass/tower/Window.mod
! 54eb39032f99f8737e732f78f8d5698a  gcc/testsuite/gm2/projects/pim/run/pass/tower/adv.flex
  d6e4aca189a6d0c78d4ef055fdab35d9  gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.c
  9b38ecfb8436c855f3ee5126e513b315  gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.def
! ed4408d709fe5c3c93361a4b996bc399  gcc/testsuite/gm2/projects/pim/run/pass/tower/projects-pim-run-pass-tower.exp
  3e0d828453d6336d7123f2417d7bd570  gcc/testsuite/gm2/projects/pim/run/pass/tower/star
  cd4b31a663c863e31375daaa812c3f68  gcc/testsuite/gm2/quads/run/pass/becomes.mod
  00f03972820bebc01d525280f94fec34  gcc/testsuite/gm2/quads/run/pass/param.mod
! 876b4717de3f453a923e6245385f646f  gcc/testsuite/gm2/quads/run/pass/quads-run-pass.exp
  ddcf079ea49e0ecb2f490c0e68fd697c  gcc/testsuite/gm2/quads/run/pass/return.mod
  b1c86bac75dba8a54e32fa30f5815baa  gcc/testsuite/gm2/recover/pass/cannot-solve/begin.mod
  7d43717184e3b0019227e979d25c24ec  gcc/testsuite/gm2/recover/pass/cannot-solve/statementsemi.mod
  d151c38b77ce8c99cc41d05bcf8f3559  gcc/testsuite/gm2/recover/pass/end2.mod
  f63a9f1466200fc845420d1d2e59fa17  gcc/testsuite/gm2/recover/pass/of.mod
  92e9c8d700bf0a29d08690363f071268  gcc/testsuite/gm2/recover/pass/procsemi.mod
! acf3568bea7f8236f01be1a3daeea0c5  gcc/testsuite/gm2/recover/pass/recover-pass.exp
  8ded13dd2d8c1f6547bfb3bba3551d86  gcc/testsuite/gm2/recover/pass/rrbra.mod
  7d8438e3ef1c6c5615f347a06c928dff  gcc/testsuite/gm2/recover/pass/rsbra.mod
  dcf7dd91e5b76850ed3b7965e10d56c3  gcc/testsuite/gm2/recover/pass/semi.mod
*************** cc3bbca460511dda4779c4bfec732a6d  gcc/te
*** 92836,92848 ****
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/run/pass/testsize2.mod
  5eac39bf3a7f2b4fc816d39f813db8a1  gcc/testsuite/gm2/run/pass/testsize3.mod
  a8207e849e4daaf6ca35472bca71613d  gcc/testsuite/gm2/run/pass/wr.mod
! 5f6b5aa6482c83bdd7c800abdc1b84cf  gcc/testsuite/gm2/scripts/addit
! 575b3d48fc20b68bc399ce1707bc5553  gcc/testsuite/gm2/scripts/comp
  bc4fb8293716280f63a60e50901eb7d2  gcc/testsuite/gm2/scripts/compile
! e7d9bb7e7ad61754347b81313738e570  gcc/testsuite/gm2/scripts/compileiso
! b13575c29c8efcf38ced4721e335b1c1  gcc/testsuite/gm2/scripts/link
! 802534054168a2eecc167ab47eb4114b  gcc/testsuite/gm2/scripts/regression
! 81b11f42601b7a3d233f846f2432e87b  gcc/testsuite/gm2/scripts/subit
  68fdb56f93e47d3993557eec47deaebd  gcc/testsuite/gm2/sets/run/pass/multisetarith.mod
  338d6fa801c91b5f93206daa03f998ca  gcc/testsuite/gm2/sets/run/pass/multisetarith2.mod
  c602f94c3d7d5500d4b79c08d187daae  gcc/testsuite/gm2/sets/run/pass/multisetarith3.mod
--- 102175,102187 ----
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/run/pass/testsize2.mod
  5eac39bf3a7f2b4fc816d39f813db8a1  gcc/testsuite/gm2/run/pass/testsize3.mod
  a8207e849e4daaf6ca35472bca71613d  gcc/testsuite/gm2/run/pass/wr.mod
! 22eeee3b4377d2ee3c80ebe427393d34  gcc/testsuite/gm2/scripts/addit
! cadd4ab09e905ca9d82b04b237f53297  gcc/testsuite/gm2/scripts/comp
  bc4fb8293716280f63a60e50901eb7d2  gcc/testsuite/gm2/scripts/compile
! 7ef9d50490d88f6f2012426c7b179e1e  gcc/testsuite/gm2/scripts/compileiso
! 20362c33e0637c12c5f0e8ce9c1c7445  gcc/testsuite/gm2/scripts/link
! 4820c2bb5d117d43fbc5819ec605eb47  gcc/testsuite/gm2/scripts/regression
! e111328249824fc19303073ac8688411  gcc/testsuite/gm2/scripts/subit
  68fdb56f93e47d3993557eec47deaebd  gcc/testsuite/gm2/sets/run/pass/multisetarith.mod
  338d6fa801c91b5f93206daa03f998ca  gcc/testsuite/gm2/sets/run/pass/multisetarith2.mod
  c602f94c3d7d5500d4b79c08d187daae  gcc/testsuite/gm2/sets/run/pass/multisetarith3.mod
*************** f6de503823ee276a69e70bc77f56435d  gcc/te
*** 92868,92874 ****
  6791c5b60c9acda2d0588a232e3e7252  gcc/testsuite/gm2/sets/run/pass/setrotate2.mod
  e230bc90482d44ff967e7deef741765c  gcc/testsuite/gm2/sets/run/pass/setrotate3.mod
  5307a843169b8465e3cba302c8a27d19  gcc/testsuite/gm2/sets/run/pass/setrotate4.mod
! b1a43a2294aef2cf099d99cc8cffefdb  gcc/testsuite/gm2/sets/run/pass/sets-run-pass.exp
  21ce638a759fcc83711516257ef094fd  gcc/testsuite/gm2/sets/run/pass/setshift.mod
  64c638d6714bdf042b377ba55d6a39b8  gcc/testsuite/gm2/sets/run/pass/setshift2.mod
  fef7514015c435a016141edea74b252b  gcc/testsuite/gm2/sets/run/pass/simple.mod
--- 102207,102213 ----
  6791c5b60c9acda2d0588a232e3e7252  gcc/testsuite/gm2/sets/run/pass/setrotate2.mod
  e230bc90482d44ff967e7deef741765c  gcc/testsuite/gm2/sets/run/pass/setrotate3.mod
  5307a843169b8465e3cba302c8a27d19  gcc/testsuite/gm2/sets/run/pass/setrotate4.mod
! e5ac3f98fd1f879b8c8f24e5ae29521f  gcc/testsuite/gm2/sets/run/pass/sets-run-pass.exp
  21ce638a759fcc83711516257ef094fd  gcc/testsuite/gm2/sets/run/pass/setshift.mod
  64c638d6714bdf042b377ba55d6a39b8  gcc/testsuite/gm2/sets/run/pass/setshift2.mod
  fef7514015c435a016141edea74b252b  gcc/testsuite/gm2/sets/run/pass/simple.mod
*************** fef7514015c435a016141edea74b252b  gcc/te
*** 92878,92890 ****
  d93ffac451cd75883d648722d233fc4f  gcc/testsuite/gm2/sets/run/pass/simple5.mod
  594bd0e14f8f6503d309d3c360587994  gcc/testsuite/gm2/sets/run/pass/simple6.mod
  05150f7878189d0ba7f261bdc7948b19  gcc/testsuite/gm2/sets/run/pass/simple7.mod
! dce4180a60c2b4ab273d16f07a59bf41  gcc/testsuite/gm2/switches/auto-init/fail/switches-auto-init-fail.exp
  d089057a33f33fb7304bbbda81e00fd7  gcc/testsuite/gm2/switches/auto-init/fail/uninitptr.mod
  f456a6791fc712e654ace802ea0ba82e  gcc/testsuite/gm2/switches/auto-init/fail/uninitptr2.mod
  6c2959b3a298ed63cf8087ab405d07e0  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflow.mod
  65038913196bbd28bc621c8c346d2069  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflow2.mod
  7b9c6c074a99b5f66a8cf38970c1e0f5  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflowdiv1.mod
! 8c6232343a9ebe712b7e73dee5792fb6  gcc/testsuite/gm2/switches/check-all/pim2/fail/switches-check-all-pim2-fail.exp
  e332f2ba335c0a731b80079b2cf9ddf0  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposneg.mod
  e283398d4a517282e0059697755a072d  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposneg2.mod
  834ecc488f96254c596246d22a138c0a  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposnegcall.mod
--- 102217,102245 ----
  d93ffac451cd75883d648722d233fc4f  gcc/testsuite/gm2/sets/run/pass/simple5.mod
  594bd0e14f8f6503d309d3c360587994  gcc/testsuite/gm2/sets/run/pass/simple6.mod
  05150f7878189d0ba7f261bdc7948b19  gcc/testsuite/gm2/sets/run/pass/simple7.mod
! 1d7c2a136becf534251c2c47a2612ff1  gcc/testsuite/gm2/switches/auto-init/fail/switches-auto-init-fail.exp
  d089057a33f33fb7304bbbda81e00fd7  gcc/testsuite/gm2/switches/auto-init/fail/uninitptr.mod
  f456a6791fc712e654ace802ea0ba82e  gcc/testsuite/gm2/switches/auto-init/fail/uninitptr2.mod
+ 308309de27c393e1d0a8b1652c93528d  gcc/testsuite/gm2/switches/case/fail/calendar.mod
+ 749d2746e2cfc0db0ae110e31f393d8d  gcc/testsuite/gm2/switches/case/fail/missingclause.mod
+ 2b5d7bf338e53d40b934e1117e2fe49a  gcc/testsuite/gm2/switches/case/fail/subrangecase.mod
+ dbbbdc3c4a8efb4f8c32ae0b21d359bc  gcc/testsuite/gm2/switches/case/fail/subrangecase2.mod
+ 4c2d58a10d61d7dcfbbc3f9f13da979f  gcc/testsuite/gm2/switches/case/fail/subrangecase3.mod
+ 02d8df16a0f58b8cadab2f9a11eee97c  gcc/testsuite/gm2/switches/case/fail/subrangecase4.mod
+ 3e7233def33250fd04bf02d8e045e4c0  gcc/testsuite/gm2/switches/case/fail/subrangecase5.mod
+ bfddbc36778723efa8d7ed59115111f9  gcc/testsuite/gm2/switches/case/fail/subrangecase6.mod
+ e1b9345d9607e87b8a2ce4b5dc041586  gcc/testsuite/gm2/switches/case/fail/switches-case-fail.exp
+ ff6bf63fd7a630738aded841db2ca752  gcc/testsuite/gm2/switches/case/pass/enumcase.mod
+ 1ec4f1e5bafeb1b485de0a23ce02c028  gcc/testsuite/gm2/switches/case/pass/enumcase2.mod
+ c40b924cef7e13a85b6928ef4c2e6aa1  gcc/testsuite/gm2/switches/case/pass/subrangecase.mod
+ aa328d3c0bfd6bf38f0300b854f073c7  gcc/testsuite/gm2/switches/case/pass/subrangecase2.mod
+ cc4cfc5e94ee1a5a7816c21fe7e275d1  gcc/testsuite/gm2/switches/case/pass/subrangecase3.mod
+ 67973d78e2eaa7bd1bcf985fb18537b7  gcc/testsuite/gm2/switches/case/pass/subrangecase4.mod
+ dec6ae98b59a2abafcf531c0c81d0e41  gcc/testsuite/gm2/switches/case/pass/switches-case-pass.exp
  6c2959b3a298ed63cf8087ab405d07e0  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflow.mod
  65038913196bbd28bc621c8c346d2069  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflow2.mod
  7b9c6c074a99b5f66a8cf38970c1e0f5  gcc/testsuite/gm2/switches/check-all/pim2/fail/overflowdiv1.mod
! f169c010b335b88ea97235a7efc9c150  gcc/testsuite/gm2/switches/check-all/pim2/fail/switches-check-all-pim2-fail.exp
  e332f2ba335c0a731b80079b2cf9ddf0  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposneg.mod
  e283398d4a517282e0059697755a072d  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposneg2.mod
  834ecc488f96254c596246d22a138c0a  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divceilposnegcall.mod
*************** e283398d4a517282e0059697755a072d  gcc/te
*** 92892,92915 ****
  b717bcfde2bcfe90ea5ba8cdb1237f59  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divfloornegpos.mod
  190cfdb6525cb056fb456816b0c036bc  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divfloorpospos.mod
  09be0149a04322801741c914a98294fa  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/lowdiv.mod
! d3c417401df59cc7b346c477d18889c4  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/switches-check-all-plugin-iso-fail.exp
  b382803722a54461a8581f1bd2121d42  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/divceil.mod
  02092642b381dd16440e79664b464913  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/highdiv.mod
  cd2288cf3e5b70a29fa839336dc110a6  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/modulus.mod
  f30573c5fa1164614455cda6c961df83  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin1.mod
  7c8363a64d2d54c90533eb50c815e411  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin3.mod
! a93930189474543f60685a6d7c9078d0  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.def
  67c1a6dab4f5a933639218de8073e9aa  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.mod
! 064cd003a4492e8f0c1a9d5116789530  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.def
  a989edc6b74e670ec7c89f213419e335  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.mod
! 0194477ad35c05de4c28430d84103d60  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.def
  afd5f57bb803a371d6b8000f8692d515  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.mod
! 7f799313cea0900d24de3fa014e72c2e  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.def
  72762bbca9ba29b7baab4256d2d8306e  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.mod
! da3036157616ae62f9409f17d4aa3258  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin8.def
  fa0566c6a1309518349d4fb78760be47  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin8.mod
  c2258f9fc9b3e7e051c16329751e2ecf  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin9.mod
! 3a5d0472b3952d0b2e727b6db8507559  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/switches-check-all-plugin-pim2-fail.exp
  a658c122170cf5c993cd4b05572890c6  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange.mod
  796082576932e91c1bafd24e7b5c0322  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange2.mod
  bc4ce1cc7e196800ee185c42245e108e  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange3.mod
--- 102247,102270 ----
  b717bcfde2bcfe90ea5ba8cdb1237f59  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divfloornegpos.mod
  190cfdb6525cb056fb456816b0c036bc  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/divfloorpospos.mod
  09be0149a04322801741c914a98294fa  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/lowdiv.mod
! e2ca8c8b0c0a6218670bf4021cb0ddd6  gcc/testsuite/gm2/switches/check-all/plugin/iso/fail/switches-check-all-plugin-iso-fail.exp
  b382803722a54461a8581f1bd2121d42  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/divceil.mod
  02092642b381dd16440e79664b464913  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/highdiv.mod
  cd2288cf3e5b70a29fa839336dc110a6  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/modulus.mod
  f30573c5fa1164614455cda6c961df83  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin1.mod
  7c8363a64d2d54c90533eb50c815e411  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin3.mod
! 107b5a3ea1ba67a8e6238b2827d79424  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.def
  67c1a6dab4f5a933639218de8073e9aa  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.mod
! e29b3c97d1f0f64f614e3cd0817d8191  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.def
  a989edc6b74e670ec7c89f213419e335  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.mod
! 1033ce4348ea08ef9ce57ddaf8008960  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.def
  afd5f57bb803a371d6b8000f8692d515  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.mod
! 982ea73c6b34f25633635a4181f7ed72  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.def
  72762bbca9ba29b7baab4256d2d8306e  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.mod
! 7f0d20f4cf496990732dd55a457e4798  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin8.def
  fa0566c6a1309518349d4fb78760be47  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin8.mod
  c2258f9fc9b3e7e051c16329751e2ecf  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin9.mod
! 6bc215062922f512860835e1fe7c3c55  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/switches-check-all-plugin-pim2-fail.exp
  a658c122170cf5c993cd4b05572890c6  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange.mod
  796082576932e91c1bafd24e7b5c0322  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange2.mod
  bc4ce1cc7e196800ee185c42245e108e  gcc/testsuite/gm2/switches/check-all/run/fail/cardrange3.mod
*************** e65a2ee18af6367d04c317b4f945ee06  gcc/te
*** 92921,92984 ****
  4e02add310c2c84e6168affc1f9ea4bf  gcc/testsuite/gm2/switches/check-all/run/fail/multint1.mod
  3a3c1972ad33ea38614d03983ae74692  gcc/testsuite/gm2/switches/check-all/run/fail/multint2.mod
  4a8024c59a1f6ea06a366e6eff75878d  gcc/testsuite/gm2/switches/check-all/run/fail/multint3.mod
! dc48523e9c89a6a6349ff32b23e032e5  gcc/testsuite/gm2/switches/check-all/run/fail/rangesupport.def
  b944653fbd71b4f84da3caa402f3cca8  gcc/testsuite/gm2/switches/check-all/run/fail/rangesupport.mod
  92fba1adf1580639ecc0ee77b132a3a1  gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod
  85dcc54a281e9f8dd3b249085ce7f7bc  gcc/testsuite/gm2/switches/check-all/run/fail/subrange.mod
! 74256b42bf204ad69a0cfd0dc08d929e  gcc/testsuite/gm2/switches/check-all/run/fail/switches-check-all-run-fail.exp
  78f40fd53e001a978f262deab2dab4e9  gcc/testsuite/gm2/switches/check-all/run/fail/tinyrange.mod
  b7e3381c5fbd47528de1310c1fbfb3c2  gcc/testsuite/gm2/switches/check-all/run/pass/cardrange.mod
  90f9b5be684c9907fd573aa19d30ad65  gcc/testsuite/gm2/switches/check-all/run/pass/forcheck.mod
  926925e5b015a37d2245311e08645c01  gcc/testsuite/gm2/switches/check-all/run/pass/subrange.mod
! 120ccf25c7a3ff64aef5e4f5330cd54b  gcc/testsuite/gm2/switches/check-all/run/pass/switches-check-all-run-pass.exp
! 46a24bd7fa5847a31a437b6d8f0713d2  gcc/testsuite/gm2/switches/extended-opaque/fail/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/fail/a.mod
! 4eb42bae8f14e9d03520ad69768980d7  gcc/testsuite/gm2/switches/extended-opaque/fail/switches-extended-opaque-fail.exp
! 46a24bd7fa5847a31a437b6d8f0713d2  gcc/testsuite/gm2/switches/extended-opaque/pass/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/pass/a.mod
  6945d30746143597c0e07b03cd2052fc  gcc/testsuite/gm2/switches/extended-opaque/pass/b.mod
! 7386b1a0f8c037dfa88d8899a31e10cd  gcc/testsuite/gm2/switches/extended-opaque/pass/switches-extended-opaque-pass.exp
  08c4bfa50ae955c15bbda61a68064de4  gcc/testsuite/gm2/switches/iso/run/pass/modulus.mod
  256de4fca238da94ccd2da70b0cbb2f7  gcc/testsuite/gm2/switches/iso/run/pass/modulus4.mod
! 64675d93edbf17a2b231b3c4c66785cf  gcc/testsuite/gm2/switches/iso/run/pass/switches-iso-run-pass.exp
! a4058db5f94d5319ce7af7d24120d268  gcc/testsuite/gm2/switches/makeall/fail/switches-makeall-fail.exp
  61f86ac12627757e14d86029cd6af8fb  gcc/testsuite/gm2/switches/makeall/fail/test.def
  ac70e24807181c5bade8e6869fca0000  gcc/testsuite/gm2/switches/makeall/fail/test.mod
! 6b5d3f169202e713ba0486921c325363  gcc/testsuite/gm2/switches/makeall/pass/switches-makeall-pass.exp
  e64523b7502cc4a326c69a5fb2bb632b  gcc/testsuite/gm2/switches/makeall/pass/test.def
  5005c3f41a18fef2b4c7c178890d77f3  gcc/testsuite/gm2/switches/makeall/pass/test.mod
! 834c1a77c225b68117c929904ba2e3a8  gcc/testsuite/gm2/switches/none/run/pass/gm2-none.exp
  9e07fd151c648b57e14d2059c6e86911  gcc/testsuite/gm2/switches/none/run/pass/hello.mod
  7f4a9fd88d8c6bdacbe9bd3f609520c1  gcc/testsuite/gm2/switches/optimization/run/pass/fact.mod
! a089facf385b2aee8931b68a8959a1d7  gcc/testsuite/gm2/switches/optimization/run/pass/switches-optimization-run-pass.exp
! ce34facd47d92c096307d38372429b0d  gcc/testsuite/gm2/switches/pedantic-params/fail/a.def
  d083f2149e966c7f4a3cf7a592213e6e  gcc/testsuite/gm2/switches/pedantic-params/fail/a.mod
! 1b16690cbcb33bca568b20cd184487a8  gcc/testsuite/gm2/switches/pedantic-params/fail/switches-pedantic-params-fail.exp
! 1abca3faf31619bb432fab1710aeb176  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.def
  fd422a739cead1ddd9341f7ffef6c32a  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.mod
! 2bd25d194320074f57db1202dec8ccd5  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.def
  0bcc2d7b0cd1e82595b33fe9b803d2e1  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.mod
! 684588a4a4783ed7688b60d012ddd741  gcc/testsuite/gm2/switches/pedantic-params/pass/switches-pedantic-params-pass.exp
  c6936819180ff9d4dfdae9824dd4a6c7  gcc/testsuite/gm2/switches/pedantic/fail/onlywrite.mod
  2202381eba33ede99f7975591edab10a  gcc/testsuite/gm2/switches/pedantic/fail/readb4.mod
  1ebd10545b002997fc2e8c2c86fe2559  gcc/testsuite/gm2/switches/pic/run/pass/func.c
  056ddeaf7cd706574ba41abb899b72be  gcc/testsuite/gm2/switches/pic/run/pass/func.mod
  c858c354cae5af0cc80bad192125e919  gcc/testsuite/gm2/switches/pic/run/pass/func2.c
  2abff8e2fdd72e7a36004edaf4893abd  gcc/testsuite/gm2/switches/pic/run/pass/func2.mod
! f3ee704de702189b339c6d4b77997bd0  gcc/testsuite/gm2/switches/pic/run/pass/switches-pic-run-pass.exp
  72595eba68a1caa34641927dc7b21d9b  gcc/testsuite/gm2/switches/pim2/run/pass/modulus.mod
! 1015be7dff0fd836af445eff62902a5f  gcc/testsuite/gm2/switches/pim2/run/pass/switches-pim2-run-pass.exp
  113d1259345fa7dedde31514c400a268  gcc/testsuite/gm2/switches/pim3/run/pass/modulus.mod
! e51b81b302469aec497712ee8e5f7f4b  gcc/testsuite/gm2/switches/pim3/run/pass/switches-pim3-run-pass.exp
  c614f2bf36f76d40b66a85136a485450  gcc/testsuite/gm2/switches/pim4/run/pass/FpuIOBug.mod
  6fd9d7b88939abbde25a239c8d33ab51  gcc/testsuite/gm2/switches/pim4/run/pass/InOutBug.mod
  88027dcbd148b1ca4a96e8d4916ecd87  gcc/testsuite/gm2/switches/pim4/run/pass/NumberIOBug.mod
  3a517fef09b36f6af522a00f6bb54d70  gcc/testsuite/gm2/switches/pim4/run/pass/modulus.mod
  b58ba2aab7402cfa77be0fa158531bd0  gcc/testsuite/gm2/switches/pim4/run/pass/modulus2.mod
! 9854bd5fc10351531c5aabfea5b44684  gcc/testsuite/gm2/switches/pim4/run/pass/switches-pim4-run-pass.exp
  2c439af31b3c4c4dce8526b98bc75c75  gcc/testsuite/gm2/switches/whole-program/pass/run/hello.mod
  a5577432f39738e430bd88cb60de19e3  gcc/testsuite/gm2/switches/whole-program/pass/run/hello2.mod
! de7648d0bfa041d32e6aa7e8f430a178  gcc/testsuite/gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp
  d2257554df9979e0f81558414af765f5  gcc/testsuite/gm2/switches/whole-program/pass/run/tiny.mod
  0e2791268d29463c5e4fa5f11ae72d57  gcc/testsuite/gm2/switches/whole-program/pass/run/tiny2.mod
  ff6285917ee200789e5238065c2f3882  gcc/testsuite/gm2/types/bitset.mod
--- 102276,102392 ----
  4e02add310c2c84e6168affc1f9ea4bf  gcc/testsuite/gm2/switches/check-all/run/fail/multint1.mod
  3a3c1972ad33ea38614d03983ae74692  gcc/testsuite/gm2/switches/check-all/run/fail/multint2.mod
  4a8024c59a1f6ea06a366e6eff75878d  gcc/testsuite/gm2/switches/check-all/run/fail/multint3.mod
! 8055be42810563adf2bab04adcbc299b  gcc/testsuite/gm2/switches/check-all/run/fail/rangesupport.def
  b944653fbd71b4f84da3caa402f3cca8  gcc/testsuite/gm2/switches/check-all/run/fail/rangesupport.mod
  92fba1adf1580639ecc0ee77b132a3a1  gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod
  85dcc54a281e9f8dd3b249085ce7f7bc  gcc/testsuite/gm2/switches/check-all/run/fail/subrange.mod
! 2f64f6e8c01e43a1074ee835b8acd4da  gcc/testsuite/gm2/switches/check-all/run/fail/switches-check-all-run-fail.exp
  78f40fd53e001a978f262deab2dab4e9  gcc/testsuite/gm2/switches/check-all/run/fail/tinyrange.mod
  b7e3381c5fbd47528de1310c1fbfb3c2  gcc/testsuite/gm2/switches/check-all/run/pass/cardrange.mod
  90f9b5be684c9907fd573aa19d30ad65  gcc/testsuite/gm2/switches/check-all/run/pass/forcheck.mod
  926925e5b015a37d2245311e08645c01  gcc/testsuite/gm2/switches/check-all/run/pass/subrange.mod
! 7c4ca9fa1d682b108167b34da26fd5c4  gcc/testsuite/gm2/switches/check-all/run/pass/switches-check-all-run-pass.exp
! cbe9ccd54baf7e62855afb059a29857e  gcc/testsuite/gm2/switches/extended-opaque/fail/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/fail/a.mod
! bf59779fa5b94c014b82c0219facff41  gcc/testsuite/gm2/switches/extended-opaque/fail/switches-extended-opaque-fail.exp
! cbe9ccd54baf7e62855afb059a29857e  gcc/testsuite/gm2/switches/extended-opaque/pass/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/pass/a.mod
  6945d30746143597c0e07b03cd2052fc  gcc/testsuite/gm2/switches/extended-opaque/pass/b.mod
! 7bd51674bd3b3bf03e6c4b8788950fae  gcc/testsuite/gm2/switches/extended-opaque/pass/switches-extended-opaque-pass.exp
  08c4bfa50ae955c15bbda61a68064de4  gcc/testsuite/gm2/switches/iso/run/pass/modulus.mod
  256de4fca238da94ccd2da70b0cbb2f7  gcc/testsuite/gm2/switches/iso/run/pass/modulus4.mod
! c961472420e2738e386da5bcf74fa884  gcc/testsuite/gm2/switches/iso/run/pass/switches-iso-run-pass.exp
! b65d39b65ebbf02088570c3ff04a0198  gcc/testsuite/gm2/switches/makeall/fail/switches-makeall-fail.exp
  61f86ac12627757e14d86029cd6af8fb  gcc/testsuite/gm2/switches/makeall/fail/test.def
  ac70e24807181c5bade8e6869fca0000  gcc/testsuite/gm2/switches/makeall/fail/test.mod
! b5055c19eb2f2493a9d9b7a81ac7bf95  gcc/testsuite/gm2/switches/makeall/pass/switches-makeall-pass.exp
  e64523b7502cc4a326c69a5fb2bb632b  gcc/testsuite/gm2/switches/makeall/pass/test.def
  5005c3f41a18fef2b4c7c178890d77f3  gcc/testsuite/gm2/switches/makeall/pass/test.mod
! c2ff9a3f3047b66a6b332de244daef96  gcc/testsuite/gm2/switches/none/run/pass/gm2-none.exp
  9e07fd151c648b57e14d2059c6e86911  gcc/testsuite/gm2/switches/none/run/pass/hello.mod
  7f4a9fd88d8c6bdacbe9bd3f609520c1  gcc/testsuite/gm2/switches/optimization/run/pass/fact.mod
! 8b3ac30a41dea496ba9ec2a648383d74  gcc/testsuite/gm2/switches/optimization/run/pass/switches-optimization-run-pass.exp
! d6b8e8430129cd445aeda6f70929ea86  gcc/testsuite/gm2/switches/pedantic-params/fail/a.def
  d083f2149e966c7f4a3cf7a592213e6e  gcc/testsuite/gm2/switches/pedantic-params/fail/a.mod
! 474afc5122aabb91025b45245f24f6f2  gcc/testsuite/gm2/switches/pedantic-params/fail/switches-pedantic-params-fail.exp
! 6ce3f51e3aebbbf133326589f06f8d7d  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.def
  fd422a739cead1ddd9341f7ffef6c32a  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.mod
! f753bdefc77f9a2b86fbba44c4214213  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.def
  0bcc2d7b0cd1e82595b33fe9b803d2e1  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.mod
! f1238e8773586758e731cbfd6d70cc2a  gcc/testsuite/gm2/switches/pedantic-params/pass/switches-pedantic-params-pass.exp
  c6936819180ff9d4dfdae9824dd4a6c7  gcc/testsuite/gm2/switches/pedantic/fail/onlywrite.mod
  2202381eba33ede99f7975591edab10a  gcc/testsuite/gm2/switches/pedantic/fail/readb4.mod
+ 6cdc4d41b80bc573e1f0c2f9192e8bb4  gcc/testsuite/gm2/switches/pedantic/pass/hello.mod
+ d155c1fd060e23d0ac5ab7d3f08dd943  gcc/testsuite/gm2/switches/pedantic/pass/switches-pedantic-pass.exp
  1ebd10545b002997fc2e8c2c86fe2559  gcc/testsuite/gm2/switches/pic/run/pass/func.c
  056ddeaf7cd706574ba41abb899b72be  gcc/testsuite/gm2/switches/pic/run/pass/func.mod
  c858c354cae5af0cc80bad192125e919  gcc/testsuite/gm2/switches/pic/run/pass/func2.c
  2abff8e2fdd72e7a36004edaf4893abd  gcc/testsuite/gm2/switches/pic/run/pass/func2.mod
! 6b0c51f02f05c68a613b1b3276677d7a  gcc/testsuite/gm2/switches/pic/run/pass/switches-pic-run-pass.exp
  72595eba68a1caa34641927dc7b21d9b  gcc/testsuite/gm2/switches/pim2/run/pass/modulus.mod
! 5819305dc001b8200f46a92a38d09457  gcc/testsuite/gm2/switches/pim2/run/pass/switches-pim2-run-pass.exp
  113d1259345fa7dedde31514c400a268  gcc/testsuite/gm2/switches/pim3/run/pass/modulus.mod
! 9562e451d3353face59c633376c57f91  gcc/testsuite/gm2/switches/pim3/run/pass/switches-pim3-run-pass.exp
  c614f2bf36f76d40b66a85136a485450  gcc/testsuite/gm2/switches/pim4/run/pass/FpuIOBug.mod
  6fd9d7b88939abbde25a239c8d33ab51  gcc/testsuite/gm2/switches/pim4/run/pass/InOutBug.mod
  88027dcbd148b1ca4a96e8d4916ecd87  gcc/testsuite/gm2/switches/pim4/run/pass/NumberIOBug.mod
  3a517fef09b36f6af522a00f6bb54d70  gcc/testsuite/gm2/switches/pim4/run/pass/modulus.mod
  b58ba2aab7402cfa77be0fa158531bd0  gcc/testsuite/gm2/switches/pim4/run/pass/modulus2.mod
! 16edd6995a0b1ad6f21958f5da032db6  gcc/testsuite/gm2/switches/pim4/run/pass/switches-pim4-run-pass.exp
! 28c8626586a9f9b4615e6438a5bec649  gcc/testsuite/gm2/switches/uninit-variable-checking/cascade/fail/cascadedif.mod
! d79c489eac4c824b7160907b56dce5a9  gcc/testsuite/gm2/switches/uninit-variable-checking/cascade/fail/switches-uninit-variable-checking-cascade-fail.exp
! 7f7545dafa03c32a14f85f6814a0a7fe  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/switches-uninit-variable-checking-fail.exp
! 6310ec328a140f2558608309168e6be4  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testinit.mod
! fda84bc80cda3914158ba6c42a60c194  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testlarge.mod
! d80e43beb8b1bb959db1e176cd7d2e91  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testlarge2.mod
! d86b990efdfbf2b656742dc2eef08721  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testrecinit.mod
! 1920bee281e9c8cbec5974066ee85d06  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testrecinit2.mod
! 8a1d63d3740eb97c7329818da4ab690e  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testrecinit5.mod
! 758da2e7e0c45b3a2d71782fa0752a63  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testsmallrec.mod
! 7f4cc8066643691b32db349cfa959e39  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testsmallrec2.mod
! f902f7f67149b3d22b0e05161c81639b  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testsmallvec.mod
! db78dcd397acbda56f9fdbe46db5c95a  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testvarinit.mod
! 80076ea9663c7e1de21ff6fa5e038e38  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testwithnoptr.mod
! fc500fe91b9e17b32f11bb39148bfde8  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testwithptr.mod
! 355cff59d76cf15202550d2987a94e84  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testwithptr2.mod
! 67b6fff2c48f331b8c841c06f6cbe554  gcc/testsuite/gm2/switches/uninit-variable-checking/fail/testwithptr3.mod
! e57db779220b698b12ed09ef48bd5ae4  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/assignparam.mod
! 65dc2156d57ef3f256d387c84ffda9ac  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/switches-uninit-variable-checking-pass.exp
! 2a5f55481a691b80c20eeab5056edd08  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testrecinit3.mod
! 4eb735be281d434a629efa45cca56975  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testrecinit5.mod
! ce78e4a2e2e90bd7686173525fa4a816  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testsmallrec.mod
! 1bcd0a9b297d310e640c7f96e738543d  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testsmallrec2.mod
! 249337ae5698265f7567719166b5031c  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testvarinit.mod
! 983f47f2aba987e46aac4d84cfb0ce78  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testwithptr.mod
! 322b15858f421696bef05552d686a83c  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testwithptr2.mod
! 4b408be653b22012cea202444cae25cd  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/testwithptr3.mod
! 852b4075b6606cbf6203ca0bfdbea4ce  gcc/testsuite/gm2/switches/uninit-variable-checking/pass/tiny.mod
! bc5d37c3d3247447ce0b6c3fba2242a4  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/switches-uninit-variable-checking-procedures-fail.exp
! 14fa65201d2eaf644eeb9cc3c08caeaf  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose.mod
! 933c90a544cea11206f010568f10fb0c  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose2.mod
! feca2278c7a93de24a2a5f69313cd838  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose3.mod
! 1b96a5e5f65d5f37a870293920566dcb  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose4.mod
! 89252d6c974ba4422cb1d30b28e3444c  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnew.mod
! 213221082823f8f8a10fccad60464082  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnew2.mod
! c98bcc995b6aa9427fb931a2707e9c29  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnew3.mod
! aa1a3e1ed1546b033eb76c0e3d1f72b9  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnew4.mod
! 50ee46e96f29aa270d6b4e5a1435f444  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnew5.mod
! aaeea2ebbdb4989a022b406ea73c0a89  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnew6.mod
! 139cc58179e858447d14d40729713785  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testnil.mod
! a9844c4e2f11c74b0ff3203f5313692f  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testptrptr.mod
! abb996caf5d571a6c718699c4db13786  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/assignparam2.mod
! c8ed7565e98edc246f6a5ffe341a5e96  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/switches-uninit-variable-checking-procedures-pass.exp
! 68b7d1cb191d8e60c6e64d2699c5ca3b  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testdispose3.mod
! f96078a2945372b7af2eb7aa9e817995  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testdispose4.mod
! 7be5a6178b17ee5817efc406b438095f  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testnew5.mod
! 46faf460024b96cb13825ce1eb8c636a  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testnew6.mod
! 78f27ebb3cf0727a9f37e91141e97763  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testparamlvalue.mod
! cf720b48a6a554fbbe7351df1884745e  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testparamrvalue.mod
! 90ed2a0243b5ba8ae80afccb2618ec40  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testproc.mod
! fb9ebcb42d97c3c0a41d6cc930036ba6  gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testptrptr.mod
  2c439af31b3c4c4dce8526b98bc75c75  gcc/testsuite/gm2/switches/whole-program/pass/run/hello.mod
  a5577432f39738e430bd88cb60de19e3  gcc/testsuite/gm2/switches/whole-program/pass/run/hello2.mod
! c29b430688d6091c8df8fadb8fb762ab  gcc/testsuite/gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp
  d2257554df9979e0f81558414af765f5  gcc/testsuite/gm2/switches/whole-program/pass/run/tiny.mod
  0e2791268d29463c5e4fa5f11ae72d57  gcc/testsuite/gm2/switches/whole-program/pass/run/tiny2.mod
  ff6285917ee200789e5238065c2f3882  gcc/testsuite/gm2/types/bitset.mod
*************** c5e8f36d46ebaddf2c3766362672c885  gcc/te
*** 92989,92996 ****
  1c8e292e685936cbc9fdbfb7128f734a  gcc/testsuite/gm2/types/prog35.mod
  8d689912b47842ee7f86fc04a2657097  gcc/testsuite/gm2/types/real.mod
  686ca26679509e30a5f211809900ac49  gcc/testsuite/gm2/types/run/pass/d.c
! be87088d539730cc24dbc90a51ccc2bf  gcc/testsuite/gm2/types/run/pass/d.def
! e9d4faf7bbaf07426d7915ca18ec917e  gcc/testsuite/gm2/types/run/pass/types-run-pass.exp
  74bc7ea69e1b9efe8e7250a12c6cb4f3  gcc/testsuite/gm2/types/run/pass/varient4.mod
  113959d79568af1b0c8f34e49f3e9a64  gcc/testsuite/gm2/types/run/pass/varient5.mod
  e32b0522c9c90a7f0fca3ce728ff6a8c  gcc/testsuite/gm2/types/string.mod
--- 102397,102404 ----
  1c8e292e685936cbc9fdbfb7128f734a  gcc/testsuite/gm2/types/prog35.mod
  8d689912b47842ee7f86fc04a2657097  gcc/testsuite/gm2/types/real.mod
  686ca26679509e30a5f211809900ac49  gcc/testsuite/gm2/types/run/pass/d.c
! e64ae5d5462c4f7a87460b630586fc55  gcc/testsuite/gm2/types/run/pass/d.def
! e222f2050f577a055627da116d022519  gcc/testsuite/gm2/types/run/pass/types-run-pass.exp
  74bc7ea69e1b9efe8e7250a12c6cb4f3  gcc/testsuite/gm2/types/run/pass/varient4.mod
  113959d79568af1b0c8f34e49f3e9a64  gcc/testsuite/gm2/types/run/pass/varient5.mod
  e32b0522c9c90a7f0fca3ce728ff6a8c  gcc/testsuite/gm2/types/string.mod
*************** f96e1401fa2ffaa7f9555b717c935d68  gcc/te
*** 93000,93014 ****
  767f35e2fe10661062bc2013ca978a22  gcc/testsuite/gm2/types/type4.mod
  9613c77c4b0cf18f1619ad8350c9c3b7  gcc/testsuite/gm2/types/varient.mod
  222c0b6352ac7db11b7ea622a1371af8  gcc/testsuite/gm2/types/word.mod
! 40a0fbce8c4e9dfb2b8e06ac57c5750a  gcc/testsuite/gm2/ulmlib/pass/ulmlib-pass.exp
! e147c5f56e1634fcb24f8c1db4453a81  gcc/testsuite/gm2/ulmlib/std/pass/ulmlib-std-pass.exp
! 40a0fbce8c4e9dfb2b8e06ac57c5750a  gcc/testsuite/gm2/ulmlib/sys/pass/ulmlib-sys-pass.exp
  8abe9ef3450094aa1c3e3d69af88cd3c  gcc/testsuite/gm2/warnings/returntype/fail/badreturn.mod
! cc77666ed46deda65f398e6ba80dc1c4  gcc/testsuite/gm2/warnings/returntype/fail/warnings-returntype-fail.exp
  977b0420916dd86f3d97d331b4f26ce2  gcc/testsuite/gm2/warnings/returntype/pass/Termbase.mod
  ff010d02cfb97393f7dc903c786797b1  gcc/testsuite/gm2/warnings/returntype/pass/goodreturn.mod
  9887506124e271782b27cb7b09d31c9a  gcc/testsuite/gm2/warnings/returntype/pass/keypressedsimple.mod
! 675f9caae23acaed8ce4b12d59e5d62d  gcc/testsuite/gm2/warnings/returntype/pass/warnings-returntype-pass.exp
  21ceb11eb92493844b53651eace4980f  gcc/testsuite/gm2/warnings/todo/nestedproc6.mod
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/warnings/todo/options
  34e6e04b35f94b9498a0c1809c555ea5  gcc/testsuite/gm2/warnings/todo/testfor.mod
--- 102408,102422 ----
  767f35e2fe10661062bc2013ca978a22  gcc/testsuite/gm2/types/type4.mod
  9613c77c4b0cf18f1619ad8350c9c3b7  gcc/testsuite/gm2/types/varient.mod
  222c0b6352ac7db11b7ea622a1371af8  gcc/testsuite/gm2/types/word.mod
! cbae1f9bf71ad59f3217522c43c7f33d  gcc/testsuite/gm2/ulmlib/pass/ulmlib-pass.exp
! 4fc9c955f764aeff104a09e689e9a4cf  gcc/testsuite/gm2/ulmlib/std/pass/ulmlib-std-pass.exp
! cbae1f9bf71ad59f3217522c43c7f33d  gcc/testsuite/gm2/ulmlib/sys/pass/ulmlib-sys-pass.exp
  8abe9ef3450094aa1c3e3d69af88cd3c  gcc/testsuite/gm2/warnings/returntype/fail/badreturn.mod
! 4116b53577188c9763f2b8108d6fffc7  gcc/testsuite/gm2/warnings/returntype/fail/warnings-returntype-fail.exp
  977b0420916dd86f3d97d331b4f26ce2  gcc/testsuite/gm2/warnings/returntype/pass/Termbase.mod
  ff010d02cfb97393f7dc903c786797b1  gcc/testsuite/gm2/warnings/returntype/pass/goodreturn.mod
  9887506124e271782b27cb7b09d31c9a  gcc/testsuite/gm2/warnings/returntype/pass/keypressedsimple.mod
! 198507b8e7f441303cb263f76289a157  gcc/testsuite/gm2/warnings/returntype/pass/warnings-returntype-pass.exp
  21ceb11eb92493844b53651eace4980f  gcc/testsuite/gm2/warnings/todo/nestedproc6.mod
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/warnings/todo/options
  34e6e04b35f94b9498a0c1809c555ea5  gcc/testsuite/gm2/warnings/todo/testfor.mod
*************** ad2a054aea75840d3ecf97c2faa0f183  gcc/te
*** 93028,93033 ****
--- 102436,102442 ----
  1406779a63f2f66b35098f98ca1b272a  gcc/testsuite/gnat.dg/abstract_state1.ads
  f8aa1b9b6d8605d6d8f8640d0af378d3  gcc/testsuite/gnat.dg/abstract_with_anonymous_result.adb
  1ab0ba269ad1e4ee5cc0b2651374a2a5  gcc/testsuite/gnat.dg/access1.adb
+ 6d63d89266459501cbab795f893986a6  gcc/testsuite/gnat.dg/access10.adb
  943026829386ee6566add3daafeab5a1  gcc/testsuite/gnat.dg/access2.adb
  2fa4700bffd8945e6a0f90d0475d0d69  gcc/testsuite/gnat.dg/access3.adb
  85a2981071298449aa62b8862bba17d1  gcc/testsuite/gnat.dg/access3.ads
*************** abba62f9bedc808bb4435567f740ed28  gcc/te
*** 93311,93316 ****
--- 102720,102728 ----
  a126edfdd72e5c579e8ef99056d093bd  gcc/testsuite/gnat.dg/bip_overlay.ads
  6044ac207f7472a4725aeb0f351b7051  gcc/testsuite/gnat.dg/bip_prim_func.adb
  e37d448c1ef40f326dbf7f65021cb6d5  gcc/testsuite/gnat.dg/bip_prim_func.ads
+ d3a79c17a99a36c62666b0e69795de4f  gcc/testsuite/gnat.dg/bip_prim_func2.adb
+ d49a2afbafe8ec71c4d0749c29147809  gcc/testsuite/gnat.dg/bip_prim_func2_pkg.adb
+ ef2f50d5f8f74ff2821493b8c88b75a8  gcc/testsuite/gnat.dg/bip_prim_func2_pkg.ads
  0cfc57dcf11c79225db374798267933f  gcc/testsuite/gnat.dg/bit_order1.adb
  09119b3b3872c06a7d771250d604aa6a  gcc/testsuite/gnat.dg/bit_packed_array1.adb
  e8282cbb5b4e1f34cd877cbc49a9c29d  gcc/testsuite/gnat.dg/bit_packed_array1.ads
*************** c279a5d66778f4639b2ebd244e1d3c54  gcc/te
*** 93338,93343 ****
--- 102750,102756 ----
  42be147e65ad830002beba7332f2c23e  gcc/testsuite/gnat.dg/bug_elaboration_code.ads
  e2983168c9a3f63dee423c9ab7489d56  gcc/testsuite/gnat.dg/c_words.adb
  818af14f525730860678bca32d713541  gcc/testsuite/gnat.dg/c_words.ads
+ 0d5734a0ef50a8dc29ffbb41da09f4ce  gcc/testsuite/gnat.dg/calendar_format_value.adb
  d52f72e41d04b3c98fb25494f2645bea  gcc/testsuite/gnat.dg/capture_value.adb
  9db4166fc85c98e9ec451ab5419d883a  gcc/testsuite/gnat.dg/case_character.adb
  4770f7aff2ceceb688301adf7cfb0c13  gcc/testsuite/gnat.dg/case_null.adb
*************** dc7b3ebaa7caa13b60d6eb8a552ad48d  gcc/te
*** 93496,93502 ****
  e0b9cf9f7a4c88212b3b340e33e89929  gcc/testsuite/gnat.dg/derived_type7.ads
  f5b545465e83981c80e3d7c01214b904  gcc/testsuite/gnat.dg/dflt_init_cond.adb
  2fbb62544d92c6af0d0b351a83112cd0  gcc/testsuite/gnat.dg/dflt_init_cond_pkg.ads
! d8100bc7cbdb9c15675582e40bba01a4  gcc/testsuite/gnat.dg/dg.exp
  ca2670a9b24cc9d0cf8852e656a65373  gcc/testsuite/gnat.dg/dimensions.adb
  f28a5b105f7585427df0167f61bf7240  gcc/testsuite/gnat.dg/dimensions.ads
  40bad3acc354f2f19a9bb73c10fd1db8  gcc/testsuite/gnat.dg/dimensions2.adb
--- 102909,102915 ----
  e0b9cf9f7a4c88212b3b340e33e89929  gcc/testsuite/gnat.dg/derived_type7.ads
  f5b545465e83981c80e3d7c01214b904  gcc/testsuite/gnat.dg/dflt_init_cond.adb
  2fbb62544d92c6af0d0b351a83112cd0  gcc/testsuite/gnat.dg/dflt_init_cond_pkg.ads
! cbd99f2f614d59c939daf342ae71c0aa  gcc/testsuite/gnat.dg/dg.exp
  ca2670a9b24cc9d0cf8852e656a65373  gcc/testsuite/gnat.dg/dimensions.adb
  f28a5b105f7585427df0167f61bf7240  gcc/testsuite/gnat.dg/dimensions.ads
  40bad3acc354f2f19a9bb73c10fd1db8  gcc/testsuite/gnat.dg/dimensions2.adb
*************** be12d3fb109247c1aaf6b19f5a65234e  gcc/te
*** 93628,93634 ****
  27e284ecfab36dff4aeb5b0e7a760992  gcc/testsuite/gnat.dg/disp2_pkg.adb
  aade8ed441d181cc943e854b4195d970  gcc/testsuite/gnat.dg/disp2_pkg.ads
  3ff72ebe3cf496e89941efc9df26c8cf  gcc/testsuite/gnat.dg/div_no_warning.adb
! 88a17fc96f66dd9c90806ca61be0dbed  gcc/testsuite/gnat.dg/div_zero.adb
  d65bcf76d480f439aab679b09d9c0371  gcc/testsuite/gnat.dg/dse_step.adb
  ad16edae9320a0014102921e32b92dab  gcc/testsuite/gnat.dg/dse_step.ads
  e00340d4362590ca4a58680aac404702  gcc/testsuite/gnat.dg/dynamic_bound.adb
--- 103041,103047 ----
  27e284ecfab36dff4aeb5b0e7a760992  gcc/testsuite/gnat.dg/disp2_pkg.adb
  aade8ed441d181cc943e854b4195d970  gcc/testsuite/gnat.dg/disp2_pkg.ads
  3ff72ebe3cf496e89941efc9df26c8cf  gcc/testsuite/gnat.dg/div_no_warning.adb
! f579b822047a228c5227c1240e1b3c60  gcc/testsuite/gnat.dg/div_zero.adb
  d65bcf76d480f439aab679b09d9c0371  gcc/testsuite/gnat.dg/dse_step.adb
  ad16edae9320a0014102921e32b92dab  gcc/testsuite/gnat.dg/dse_step.ads
  e00340d4362590ca4a58680aac404702  gcc/testsuite/gnat.dg/dynamic_bound.adb
*************** cef4cbf18f95208dd8c0b2e5062761c5  gcc/te
*** 93772,93778 ****
  d0689d7d2df99b8a9bdfa7461addbca6  gcc/testsuite/gnat.dg/g_tables.adb
  42a1a84a561d8513a3ddb03c1873df86  gcc/testsuite/gnat.dg/g_tables.ads
  e0d843a3b7f190ee400816b919cc276e  gcc/testsuite/gnat.dg/gcov/check.adb
! 6e74449adb495cd9dec7a5811696d7fa  gcc/testsuite/gnat.dg/gcov/gcov.exp
  98054bebce7ebc5df6d4a6a4178bf29c  gcc/testsuite/gnat.dg/gen_disp.adb
  8ce8ee3ebe319b0b6252b4307844d6c5  gcc/testsuite/gnat.dg/gen_disp.ads
  914ecd342404a7e78b567e0eeef3fbc8  gcc/testsuite/gnat.dg/gen_formal_pkg.adb
--- 103185,103191 ----
  d0689d7d2df99b8a9bdfa7461addbca6  gcc/testsuite/gnat.dg/g_tables.adb
  42a1a84a561d8513a3ddb03c1873df86  gcc/testsuite/gnat.dg/g_tables.ads
  e0d843a3b7f190ee400816b919cc276e  gcc/testsuite/gnat.dg/gcov/check.adb
! 0231b17f8ef26e446f3b0be837d463b4  gcc/testsuite/gnat.dg/gcov/gcov.exp
  98054bebce7ebc5df6d4a6a4178bf29c  gcc/testsuite/gnat.dg/gen_disp.adb
  8ce8ee3ebe319b0b6252b4307844d6c5  gcc/testsuite/gnat.dg/gen_disp.ads
  914ecd342404a7e78b567e0eeef3fbc8  gcc/testsuite/gnat.dg/gen_formal_pkg.adb
*************** cc4ebe6ac2f1c00b421a891817d2d911  gcc/te
*** 93867,93872 ****
--- 103280,103286 ----
  38ab9c3d211d51b5c4444cf3869e2e08  gcc/testsuite/gnat.dg/handle_raise_from_pure.adb
  54fb4c89efc3d7d7ea427c30ba65f1cf  gcc/testsuite/gnat.dg/hardbool.adb
  b51d6c1bc42982550b97d00a49b9ad38  gcc/testsuite/gnat.dg/hardbool.ads
+ 9355e9d074cf80fb0133b5a43c4aeff8  gcc/testsuite/gnat.dg/hardcfr.adb
  0e6a187c7406afa983efd54328e7a428  gcc/testsuite/gnat.dg/hyper_flat.adb
  714ad409e3a6cefc0efe88de1d77acfc  gcc/testsuite/gnat.dg/ice_type.adb
  2a21b6d5350d0f9ff8c2cf5d0e6f8f1f  gcc/testsuite/gnat.dg/ice_types.ads
*************** f9299b514c5c25293c940907f5a4059d  gcc/te
*** 94320,94325 ****
--- 103734,103746 ----
  edbbd0b00edd7e8662b7c3b2dafa9ede  gcc/testsuite/gnat.dg/opt100_pkg.ads
  10a0551b52bce90d1789f22706f6c06a  gcc/testsuite/gnat.dg/opt101.adb
  805db462cc2219ddb2a90de1363e866d  gcc/testsuite/gnat.dg/opt101_pkg.ads
+ e3943d4860baba3dd60a559ec3b4df36  gcc/testsuite/gnat.dg/opt102.adb
+ 50eeb5fbd50f6dc17baedbc5abb804d4  gcc/testsuite/gnat.dg/opt102_pkg.adb
+ 858a5d2e6efff052115969f794debc69  gcc/testsuite/gnat.dg/opt102_pkg.ads
+ 64e852464336ced00e83a0d1500ef73c  gcc/testsuite/gnat.dg/opt103.adb
+ f01f6a92460103019cb9d3f27c479ef9  gcc/testsuite/gnat.dg/opt103.ads
+ 337a806a6dd1106b843af17238d34b5b  gcc/testsuite/gnat.dg/opt104.adb
+ 7ee5b6675114982998270619932802bf  gcc/testsuite/gnat.dg/opt104.ads
  5d50fb38b1ab84c39760906cb103c522  gcc/testsuite/gnat.dg/opt10_pkg.ads
  603264d4afdd2fd2174ea9c4cf4653ed  gcc/testsuite/gnat.dg/opt11.adb
  53160585b3a5d820b653e1e0d5f14c75  gcc/testsuite/gnat.dg/opt11.ads
*************** f3429f34adffc8bdea29c62318bbaca5  gcc/te
*** 94630,94635 ****
--- 104051,104057 ----
  bfd951f08498fce7551e86b55e6d2ac3  gcc/testsuite/gnat.dg/predicate13.ads
  56f5e4c67732ce94802a427f1ba725b4  gcc/testsuite/gnat.dg/predicate14.adb
  87259b1c34db44581ee72ed85285a720  gcc/testsuite/gnat.dg/predicate14.ads
+ a82cac3594ba22e63f0c9ecf8839521f  gcc/testsuite/gnat.dg/predicate15.adb
  98656679a5dd8965b27cb10a0871426e  gcc/testsuite/gnat.dg/predicate2-containers.ads
  cd331caa5287b813c3fc2421aa5bf64b  gcc/testsuite/gnat.dg/predicate2-project-name_values.ads
  a7858dfab3659f60abb1ca21bca1863e  gcc/testsuite/gnat.dg/predicate2-project-registry-attribute.ads
*************** b028802f236df04a9a038de337a5c2dc  gcc/te
*** 94861,94866 ****
--- 104283,104289 ----
  03d5230a50a20391e0238f6841dcaf91  gcc/testsuite/gnat.dg/specs/ai_116.ads
  7d85593bd2feb29192cd8b150c52dde2  gcc/testsuite/gnat.dg/specs/alignment1.ads
  db9002fdffbd11c6e835ef0c4498b353  gcc/testsuite/gnat.dg/specs/alignment2.ads
+ c92a0b8d6f3b784f2e9169f486b6ed6c  gcc/testsuite/gnat.dg/specs/anon4.ads
  618e7c90ac781c992b7ebddc98d98640  gcc/testsuite/gnat.dg/specs/array1.ads
  abe14a1ac8ff19714a07b9e460b5fa25  gcc/testsuite/gnat.dg/specs/array2.ads
  14136d47dc533d20d89e8d5247fcfc0b  gcc/testsuite/gnat.dg/specs/array3.ads
*************** abe14a1ac8ff19714a07b9e460b5fa25  gcc/te
*** 94869,94874 ****
--- 104292,104298 ----
  8a35e508f92ae8cfc2bf7f553c3a11da  gcc/testsuite/gnat.dg/specs/array5_pkg1.ads
  65f73b5444cd39e6751236739aa9ae10  gcc/testsuite/gnat.dg/specs/array5_pkg2-g.ads
  0b740b5110495d8d3401e65ea953524e  gcc/testsuite/gnat.dg/specs/array5_pkg2.ads
+ ab72c2e211bdb0e7737e519c559d92dd  gcc/testsuite/gnat.dg/specs/array6.ads
  18531dc960411dab820aa7279791f03a  gcc/testsuite/gnat.dg/specs/array_no_def_init.ads
  2d9efbd53366881b4d205fa4d00c2cc9  gcc/testsuite/gnat.dg/specs/atomic1.ads
  483b6cbd58c1c8ac9dacb4ab3aac99bb  gcc/testsuite/gnat.dg/specs/atomic2.ads
*************** dd11fa8c12b9ae6c22d0229f9abfe2d2  gcc/te
*** 95014,95020 ****
  03db4e24fa57d6ec6411373454c770fe  gcc/testsuite/gnat.dg/specs/size_clause4.ads
  4af0c027bf11e98fb8317a33690de3b7  gcc/testsuite/gnat.dg/specs/size_clause5.ads
  f381006ab319a77a628dc42fb91642d1  gcc/testsuite/gnat.dg/specs/small_alignment.ads
! e13bda6e37d2582309acbe2e48c499b9  gcc/testsuite/gnat.dg/specs/specs.exp
  10d9cb2f95c3b869e5b5ba8979e4226d  gcc/testsuite/gnat.dg/specs/sso1.ads
  ee68f5075e2ac910d2768455326b877d  gcc/testsuite/gnat.dg/specs/sso2.ads
  a7458b24c06bfe4873fec60e537ee095  gcc/testsuite/gnat.dg/specs/static_initializer.ads
--- 104438,104444 ----
  03db4e24fa57d6ec6411373454c770fe  gcc/testsuite/gnat.dg/specs/size_clause4.ads
  4af0c027bf11e98fb8317a33690de3b7  gcc/testsuite/gnat.dg/specs/size_clause5.ads
  f381006ab319a77a628dc42fb91642d1  gcc/testsuite/gnat.dg/specs/small_alignment.ads
! 6d12f080f2b79861bca6da828b5ab702  gcc/testsuite/gnat.dg/specs/specs.exp
  10d9cb2f95c3b869e5b5ba8979e4226d  gcc/testsuite/gnat.dg/specs/sso1.ads
  ee68f5075e2ac910d2768455326b877d  gcc/testsuite/gnat.dg/specs/sso2.ads
  a7458b24c06bfe4873fec60e537ee095  gcc/testsuite/gnat.dg/specs/static_initializer.ads
*************** a7458b24c06bfe4873fec60e537ee095  gcc/te
*** 95024,95029 ****
--- 104448,104454 ----
  9ba03e5813382f190468d7846a8610c1  gcc/testsuite/gnat.dg/specs/static_initializer5.ads
  e94b6ea5e07d9380ae10002aa76ade27  gcc/testsuite/gnat.dg/specs/static_initializer5_pkg.ads
  a65c4a8c984d594228e4f7d608e2599a  gcc/testsuite/gnat.dg/specs/storage.ads
+ d18907c1dc4d160224e5e6db86bd673c  gcc/testsuite/gnat.dg/specs/storage_offset1.ads
  de51b75218396f3ea74fbbdb7bf0a1c7  gcc/testsuite/gnat.dg/specs/sync_iface_test.ads
  695465ef8fa0e9f92e00b972db65e813  gcc/testsuite/gnat.dg/specs/tag1.ads
  4f45d4c948fae2897544b170d1db5ad2  gcc/testsuite/gnat.dg/specs/tag2.ads
*************** ee874e3a5ed130d124c36bc00620ecf7  gcc/te
*** 95109,95115 ****
  f98695363c137c382d6de62ada73bc3c  gcc/testsuite/gnat.dg/sso/s6.adb
  932dcf06c9a657de839f1236ad1ce3a7  gcc/testsuite/gnat.dg/sso/s7.adb
  f876cc05ea75ed91c3f5cfb97ed0a9ae  gcc/testsuite/gnat.dg/sso/s8.adb
! 5ff695ba0aab3e2c7c8469ad901e230e  gcc/testsuite/gnat.dg/sso/sso.exp
  4b8f6f3bf1259d1c79c730c0c243f725  gcc/testsuite/gnat.dg/sso/t1.adb
  d4a304e697934a32984599c6d5941f55  gcc/testsuite/gnat.dg/sso/t10.adb
  3cab6b52089b5bd99bb853fbdab1352c  gcc/testsuite/gnat.dg/sso/t11.adb
--- 104534,104540 ----
  f98695363c137c382d6de62ada73bc3c  gcc/testsuite/gnat.dg/sso/s6.adb
  932dcf06c9a657de839f1236ad1ce3a7  gcc/testsuite/gnat.dg/sso/s7.adb
  f876cc05ea75ed91c3f5cfb97ed0a9ae  gcc/testsuite/gnat.dg/sso/s8.adb
! 0086a5530f8dcd856e6244101771c260  gcc/testsuite/gnat.dg/sso/sso.exp
  4b8f6f3bf1259d1c79c730c0c243f725  gcc/testsuite/gnat.dg/sso/t1.adb
  d4a304e697934a32984599c6d5941f55  gcc/testsuite/gnat.dg/sso/t10.adb
  3cab6b52089b5bd99bb853fbdab1352c  gcc/testsuite/gnat.dg/sso/t11.adb
*************** e7c10faf4159453a18dc1d593e20a23c  gcc/te
*** 95173,95178 ****
--- 104598,104623 ----
  fa4c2a4c20d3640d95b6d4966e4ccd16  gcc/testsuite/gnat.dg/string_merge2.adb
  3b3014989d02bd1e15cdabc493c5a36f  gcc/testsuite/gnat.dg/string_slice.adb
  1ef4c3b0bb5f3ee30e19875868fb5e2f  gcc/testsuite/gnat.dg/string_slice2.adb
+ 18303532aff93b54bb62e572dbc81788  gcc/testsuite/gnat.dg/strub_access.adb
+ 3291ba514e99ca9db883b349ab0c7a3f  gcc/testsuite/gnat.dg/strub_access1.adb
+ e78fbc7554e52828534466e3b0e31e7a  gcc/testsuite/gnat.dg/strub_attr.adb
+ 3e1bc859ad126f79597c2576b8b9a674  gcc/testsuite/gnat.dg/strub_attr.ads
+ db4cad471360754906c83ec85d9ed616  gcc/testsuite/gnat.dg/strub_disp.adb
+ bacd6bb2b5eb8ef9e7fbc5827e718b75  gcc/testsuite/gnat.dg/strub_disp1.adb
+ fed5cc9be83d2ca1ee1b88bba48ebf41  gcc/testsuite/gnat.dg/strub_ind.adb
+ 848b0a0986ad837e5328c5f8dd4b8111  gcc/testsuite/gnat.dg/strub_ind.ads
+ 8ea1797098eb7207b0a46f1d23cf13d1  gcc/testsuite/gnat.dg/strub_ind1.adb
+ 62182aab2d9a305862e987e337599c52  gcc/testsuite/gnat.dg/strub_ind1.ads
+ dd29f5614e7936b20d80b924bd1b2405  gcc/testsuite/gnat.dg/strub_ind2.adb
+ 150037ac3c17422766844ab7a154b7e9  gcc/testsuite/gnat.dg/strub_ind2.ads
+ d2d85c4d23f2b5bf853dbe7db67ad3ca  gcc/testsuite/gnat.dg/strub_intf.adb
+ 005706c733ee390096d6a515cfbd3eb9  gcc/testsuite/gnat.dg/strub_intf1.adb
+ a3b93498cbdadcdd066ddb81a3397eec  gcc/testsuite/gnat.dg/strub_intf2.adb
+ fee197b51c5b0347ebc48e04d5caabd1  gcc/testsuite/gnat.dg/strub_renm.adb
+ 98edc992883a8cdf969699353f4f2a99  gcc/testsuite/gnat.dg/strub_renm1.adb
+ 80b8a6547d110495b46d0395b565ec50  gcc/testsuite/gnat.dg/strub_renm2.adb
+ 70e51688fa4759a8908100dd7480f85c  gcc/testsuite/gnat.dg/strub_var.adb
+ d1766e219e1e85b0b9ad27df677a6f9c  gcc/testsuite/gnat.dg/strub_var1.adb
  782494d902dc38e7e31209882cbc10d2  gcc/testsuite/gnat.dg/subp_elim_errors.adb
  cf6061ac7a16f74b48144be58c3da5e2  gcc/testsuite/gnat.dg/subp_elim_errors.ads
  83548cc110b5dea61f198392d0b5ba60  gcc/testsuite/gnat.dg/subp_inst.adb
*************** c9f2a425fde8c31e16075570e1c219a0  gcc/te
*** 95193,95198 ****
--- 104638,104646 ----
  d77e6b2bfdc6a2694842892193859ea0  gcc/testsuite/gnat.dg/sync_iface_call_pkg2.ads
  8156f147fe428f54705e52707eba49c8  gcc/testsuite/gnat.dg/sync_iface_test.adb
  70f1f4752af997552f327ae93f3e9c81  gcc/testsuite/gnat.dg/sync_iface_test.ads
+ caff82c8b4b6c53fcece517bcdf115c6  gcc/testsuite/gnat.dg/sync_tag_discriminals.adb
+ 24b8aee84e4255f0d54e99414f40c82b  gcc/testsuite/gnat.dg/sync_tag_finalize.adb
+ 027628dc7c32e3473b676a7e379bf6b0  gcc/testsuite/gnat.dg/sync_tag_limited.adb
  670c07c188124788c81dfb35db1eeee4  gcc/testsuite/gnat.dg/synchronized1.adb
  2dfc5634699252d951f408649e5aa451  gcc/testsuite/gnat.dg/synchronized1.ads
  c2362f9d3e059a08442e5c983b2e6e15  gcc/testsuite/gnat.dg/synchronized2.adb
*************** fd580dc53652edf9c956d3387e0ad55e  gcc/te
*** 95309,95315 ****
  8171bebd4c281c032dcaf8786cc4a4cb  gcc/testsuite/gnat.dg/tls1_pkg.ads
  9b44f3b996bb4262650743e829b4eae6  gcc/testsuite/gnat.dg/trampoline1.adb
  eb48d53172a77a7a54f6cec63e1ea3fe  gcc/testsuite/gnat.dg/trampoline2.adb
! 7df612265ad00eb8d656f88978ad44b7  gcc/testsuite/gnat.dg/trampoline3.adb
  394d9d483c4b32cad6cf9bc58ac7d854  gcc/testsuite/gnat.dg/trampoline4.adb
  4aae88a0b98737c750518f526cfbfc46  gcc/testsuite/gnat.dg/tree_static_def.adb
  2140930290c344fc882027a5d4e4aa79  gcc/testsuite/gnat.dg/tree_static_def.ads
--- 104757,104763 ----
  8171bebd4c281c032dcaf8786cc4a4cb  gcc/testsuite/gnat.dg/tls1_pkg.ads
  9b44f3b996bb4262650743e829b4eae6  gcc/testsuite/gnat.dg/trampoline1.adb
  eb48d53172a77a7a54f6cec63e1ea3fe  gcc/testsuite/gnat.dg/trampoline2.adb
! c28334f16d1a0f6a1a22e1712de54699  gcc/testsuite/gnat.dg/trampoline3.adb
  394d9d483c4b32cad6cf9bc58ac7d854  gcc/testsuite/gnat.dg/trampoline4.adb
  4aae88a0b98737c750518f526cfbfc46  gcc/testsuite/gnat.dg/tree_static_def.adb
  2140930290c344fc882027a5d4e4aa79  gcc/testsuite/gnat.dg/tree_static_def.ads
*************** e9400740e9c9b40bb4da23c840d60a4e  gcc/te
*** 95384,95389 ****
--- 104832,104840 ----
  2a80cd9d79a2211498b9098873988b99  gcc/testsuite/gnat.dg/varsize3_pkg1.ads
  76579acc09a2f8f0607f8fc2e0ebf727  gcc/testsuite/gnat.dg/varsize3_pkg2.ads
  6591a0959a5acd0eb22e76a4334deda6  gcc/testsuite/gnat.dg/varsize3_pkg3.ads
+ 4ae356def2518f00f7715d23974f1c0e  gcc/testsuite/gnat.dg/varsize4.adb
+ 07ce0052ebca8f1f930dd1780a210ec2  gcc/testsuite/gnat.dg/varsize4.ads
+ baf7f4a3d0c42677667707dbf4f0a7f7  gcc/testsuite/gnat.dg/varsize4_pkg.ads
  d9ec23ac3512e257b33927c47c0394e2  gcc/testsuite/gnat.dg/vect1.adb
  0717701347aab30e21961df79e6703b1  gcc/testsuite/gnat.dg/vect1.ads
  bced6ddbbb98e340411eba5bf191c0eb  gcc/testsuite/gnat.dg/vect10.adb
*************** ce784e9fd3bc01b707aa0c09f3c85aa3  gcc/te
*** 95479,95485 ****
  4493136415e39f2a7c1ad2b89685e245  gcc/testsuite/gnat.dg/warn22.adb
  bc5c4f1f4e58180b0a24589c29711f23  gcc/testsuite/gnat.dg/warn23.adb
  7be9a733b6cda157073d7b77fc285816  gcc/testsuite/gnat.dg/warn24.adb
! 25cf166b6cbf0c3e2512be08b3962048  gcc/testsuite/gnat.dg/warn25.adb
  603dbe0aacdaa93bd0762c7fea84d6ea  gcc/testsuite/gnat.dg/warn26.adb
  fcb1c68b871ab7fd95f9b175c192140e  gcc/testsuite/gnat.dg/warn27.adb
  9300d09afa2a1e60a62e3fb3eecbacba  gcc/testsuite/gnat.dg/warn28.adb
--- 104930,104936 ----
  4493136415e39f2a7c1ad2b89685e245  gcc/testsuite/gnat.dg/warn22.adb
  bc5c4f1f4e58180b0a24589c29711f23  gcc/testsuite/gnat.dg/warn23.adb
  7be9a733b6cda157073d7b77fc285816  gcc/testsuite/gnat.dg/warn24.adb
! a619e951234fd0cb45f41bc0ecdb3ce1  gcc/testsuite/gnat.dg/warn25.adb
  603dbe0aacdaa93bd0762c7fea84d6ea  gcc/testsuite/gnat.dg/warn26.adb
  fcb1c68b871ab7fd95f9b175c192140e  gcc/testsuite/gnat.dg/warn27.adb
  9300d09afa2a1e60a62e3fb3eecbacba  gcc/testsuite/gnat.dg/warn28.adb
*************** dd1a1376bad078a4b0eda0ead4a2ea6a  gcc/te
*** 95514,95531 ****
  00f78e8b316dd9541a723b06890c4406  gcc/testsuite/go.dg/arrayclear.go
  ac8af654d131c62dc2127d399247a353  gcc/testsuite/go.dg/cmpstring.go
  47e6563411ed24d0afefc1878c094034  gcc/testsuite/go.dg/concatstring.go
! a4a6ee1ca1987bf3358175ab18335431  gcc/testsuite/go.dg/dg.exp
  df3ff5f9e0759960e0959e71a0d0583f  gcc/testsuite/go.dg/err-1.go
  ec0e3914d3f5df5bec3a4fd8dcf1c0af  gcc/testsuite/go.dg/goto-1.go
  f0f18b0d11f15d53150f63d507b4fe27  gcc/testsuite/go.dg/mapclear.go
  f4934ebcbb4c70da693926344d413e73  gcc/testsuite/go.dg/mapstring.go
  a15752f522823a4bb86ac0b6d5e86305  gcc/testsuite/go.dg/undef-1.go
  922b41af54f5d7211d9ae73b47a46d1b  gcc/testsuite/go.go-torture/execute/array-1.go
  a06ac97125a90b106e6e0dfd7a0cd8cb  gcc/testsuite/go.go-torture/execute/array-2.go
  17039a57c84f9e6feac3ac4966736a0a  gcc/testsuite/go.go-torture/execute/chan-1.go
  94342e6c8cd3f59c55238778fb232b4a  gcc/testsuite/go.go-torture/execute/const-1.go
  dac6eeae922725468eebc84b9a7d4875  gcc/testsuite/go.go-torture/execute/const-2.go
! 9907a6e4f6dfc9ec94cc5cb0eb8b9f98  gcc/testsuite/go.go-torture/execute/execute.exp
  4a320c5186c74f3c69e7f51ba7a7ab90  gcc/testsuite/go.go-torture/execute/expr-1.go
  1a159bafbc3293455e900de2c4243d3c  gcc/testsuite/go.go-torture/execute/for-1.go
  c7464eac2b485f2580aee2f19f76477f  gcc/testsuite/go.go-torture/execute/for-2.go
--- 104965,104983 ----
  00f78e8b316dd9541a723b06890c4406  gcc/testsuite/go.dg/arrayclear.go
  ac8af654d131c62dc2127d399247a353  gcc/testsuite/go.dg/cmpstring.go
  47e6563411ed24d0afefc1878c094034  gcc/testsuite/go.dg/concatstring.go
! c7116b9b394fcadb109bf6b3c9597d9e  gcc/testsuite/go.dg/dg.exp
  df3ff5f9e0759960e0959e71a0d0583f  gcc/testsuite/go.dg/err-1.go
  ec0e3914d3f5df5bec3a4fd8dcf1c0af  gcc/testsuite/go.dg/goto-1.go
  f0f18b0d11f15d53150f63d507b4fe27  gcc/testsuite/go.dg/mapclear.go
  f4934ebcbb4c70da693926344d413e73  gcc/testsuite/go.dg/mapstring.go
+ 06684950b155e4bf5c6b312c04959201  gcc/testsuite/go.dg/pr113636.go
  a15752f522823a4bb86ac0b6d5e86305  gcc/testsuite/go.dg/undef-1.go
  922b41af54f5d7211d9ae73b47a46d1b  gcc/testsuite/go.go-torture/execute/array-1.go
  a06ac97125a90b106e6e0dfd7a0cd8cb  gcc/testsuite/go.go-torture/execute/array-2.go
  17039a57c84f9e6feac3ac4966736a0a  gcc/testsuite/go.go-torture/execute/chan-1.go
  94342e6c8cd3f59c55238778fb232b4a  gcc/testsuite/go.go-torture/execute/const-1.go
  dac6eeae922725468eebc84b9a7d4875  gcc/testsuite/go.go-torture/execute/const-2.go
! 83fca147fa6236c23efb24fa7e118b23  gcc/testsuite/go.go-torture/execute/execute.exp
  4a320c5186c74f3c69e7f51ba7a7ab90  gcc/testsuite/go.go-torture/execute/expr-1.go
  1a159bafbc3293455e900de2c4243d3c  gcc/testsuite/go.go-torture/execute/for-1.go
  c7464eac2b485f2580aee2f19f76477f  gcc/testsuite/go.go-torture/execute/for-2.go
*************** f37d4791cfa22e9a20848922ea5de498  gcc/te
*** 95553,95559 ****
  b760f8c4f0593565426879b84ab6787b  gcc/testsuite/go.go-torture/execute/var-1.go
  55c3fdb5eab9130c79b8548c994aa8d9  gcc/testsuite/go.go-torture/execute/var-2.go
  ac0017eb534302ec5987291f615d13ca  gcc/testsuite/go.go-torture/execute/var-3.go
! f6da68fce4ac830fac5e50ccfca98947  gcc/testsuite/go.test/go-test.exp
  88c59e0bc9f2a79ed3a3e8f1409ed1d8  gcc/testsuite/go.test/test/235.go
  1a94dd86d2262280f883261800a13104  gcc/testsuite/go.test/test/64bit.go
  43e15a8d565d16ab908b7cf6db8e0bf9  gcc/testsuite/go.test/test/README.gcc
--- 105005,105011 ----
  b760f8c4f0593565426879b84ab6787b  gcc/testsuite/go.go-torture/execute/var-1.go
  55c3fdb5eab9130c79b8548c994aa8d9  gcc/testsuite/go.go-torture/execute/var-2.go
  ac0017eb534302ec5987291f615d13ca  gcc/testsuite/go.go-torture/execute/var-3.go
! e3794309b5080518186c09c15068e470  gcc/testsuite/go.test/go-test.exp
  88c59e0bc9f2a79ed3a3e8f1409ed1d8  gcc/testsuite/go.test/test/235.go
  1a94dd86d2262280f883261800a13104  gcc/testsuite/go.test/test/64bit.go
  43e15a8d565d16ab908b7cf6db8e0bf9  gcc/testsuite/go.test/test/README.gcc
*************** a9d9e32a3279739a70985ae7d32325e4  gcc/te
*** 96460,96466 ****
  542d20f18224770d1e0fd60eb4dbb605  gcc/testsuite/go.test/test/fixedbugs/issue15988.go
  d742d2be878ea25e082080c4cb8edb0b  gcc/testsuite/go.test/test/fixedbugs/issue15992.go
  2a2716dde7ec35df655a687c0ca84c50  gcc/testsuite/go.test/test/fixedbugs/issue15992.out
! 36222fc22a63bd64f8c81f5244995a95  gcc/testsuite/go.test/test/fixedbugs/issue16016.go
  7848ebaf280b12f8f1b8cac27b6c6ffc  gcc/testsuite/go.test/test/fixedbugs/issue16037_run.go
  cebb9ff26dee90969b76b8ee16390a2f  gcc/testsuite/go.test/test/fixedbugs/issue16095.go
  2f811a9291bd4c2334098c0686daa1c4  gcc/testsuite/go.test/test/fixedbugs/issue16130.go
--- 105912,105918 ----
  542d20f18224770d1e0fd60eb4dbb605  gcc/testsuite/go.test/test/fixedbugs/issue15988.go
  d742d2be878ea25e082080c4cb8edb0b  gcc/testsuite/go.test/test/fixedbugs/issue15992.go
  2a2716dde7ec35df655a687c0ca84c50  gcc/testsuite/go.test/test/fixedbugs/issue15992.out
! 8172f27f25d9545a09407248a2c007ac  gcc/testsuite/go.test/test/fixedbugs/issue16016.go
  7848ebaf280b12f8f1b8cac27b6c6ffc  gcc/testsuite/go.test/test/fixedbugs/issue16037_run.go
  cebb9ff26dee90969b76b8ee16390a2f  gcc/testsuite/go.test/test/fixedbugs/issue16095.go
  2f811a9291bd4c2334098c0686daa1c4  gcc/testsuite/go.test/test/fixedbugs/issue16130.go
*************** abaa2ccec0b33e9db2d1c04bbf09d63f  gcc/te
*** 96571,96577 ****
  79f47ec432c3125393207fb811709beb  gcc/testsuite/go.test/test/fixedbugs/issue20029.go
  bde77df74a10f4dcf0599c7b5a42892b  gcc/testsuite/go.test/test/fixedbugs/issue20097.go
  aabd40a47916a678e17f7844f2e0acc2  gcc/testsuite/go.test/test/fixedbugs/issue20145.go
! 4b404c51835b4f248ddb6a093f77565c  gcc/testsuite/go.test/test/fixedbugs/issue20185.go
  4068b521e6615e6098ee2c46cf7a1948  gcc/testsuite/go.test/test/fixedbugs/issue20227.go
  ec936d22bc1463e1346b2d94ecd8eff5  gcc/testsuite/go.test/test/fixedbugs/issue20333.go
  8d5541bdd0ea53542292e09f395ca623  gcc/testsuite/go.test/test/fixedbugs/issue20335.go
--- 106023,106029 ----
  79f47ec432c3125393207fb811709beb  gcc/testsuite/go.test/test/fixedbugs/issue20029.go
  bde77df74a10f4dcf0599c7b5a42892b  gcc/testsuite/go.test/test/fixedbugs/issue20097.go
  aabd40a47916a678e17f7844f2e0acc2  gcc/testsuite/go.test/test/fixedbugs/issue20145.go
! 4ba3e87bdffc52cbbce1f461a14e4f94  gcc/testsuite/go.test/test/fixedbugs/issue20185.go
  4068b521e6615e6098ee2c46cf7a1948  gcc/testsuite/go.test/test/fixedbugs/issue20227.go
  ec936d22bc1463e1346b2d94ecd8eff5  gcc/testsuite/go.test/test/fixedbugs/issue20333.go
  8d5541bdd0ea53542292e09f395ca623  gcc/testsuite/go.test/test/fixedbugs/issue20335.go
*************** bf95390d23c3285766e632ffb68f821a  gcc/te
*** 96878,96884 ****
  ca01ecf8b45b35a431f0daa56802e2f5  gcc/testsuite/go.test/test/fixedbugs/issue33275_run.go
  f8880e65d2a5180c5708d26014c02f16  gcc/testsuite/go.test/test/fixedbugs/issue33308.go
  ddfe917d53ff13fae67d3cbc2c6a3c88  gcc/testsuite/go.test/test/fixedbugs/issue33355.go
! 5d3d31c4b7311139d7bf5ef5d73763b1  gcc/testsuite/go.test/test/fixedbugs/issue33386.go
  d3ba3c5a9930f01173a07859ebb865c2  gcc/testsuite/go.test/test/fixedbugs/issue33438.go
  f3e8326e78187ae2493b500d37f14b68  gcc/testsuite/go.test/test/fixedbugs/issue33460.go
  3718b77aefa05ce3242c49c0b4c7e9ad  gcc/testsuite/go.test/test/fixedbugs/issue33555.go
--- 106330,106336 ----
  ca01ecf8b45b35a431f0daa56802e2f5  gcc/testsuite/go.test/test/fixedbugs/issue33275_run.go
  f8880e65d2a5180c5708d26014c02f16  gcc/testsuite/go.test/test/fixedbugs/issue33308.go
  ddfe917d53ff13fae67d3cbc2c6a3c88  gcc/testsuite/go.test/test/fixedbugs/issue33355.go
! 114fbe0bf5a447df4201042d47cd898c  gcc/testsuite/go.test/test/fixedbugs/issue33386.go
  d3ba3c5a9930f01173a07859ebb865c2  gcc/testsuite/go.test/test/fixedbugs/issue33438.go
  f3e8326e78187ae2493b500d37f14b68  gcc/testsuite/go.test/test/fixedbugs/issue33460.go
  3718b77aefa05ce3242c49c0b4c7e9ad  gcc/testsuite/go.test/test/fixedbugs/issue33555.go
*************** b4fd135c5c6b223422df7a2d8cb8f123  gcc/te
*** 96954,96960 ****
  79dc96cacfada12db585ed3ecb1ba075  gcc/testsuite/go.test/test/fixedbugs/issue40629.go
  725129abc0a4dde1e81f2f4f08e64f6e  gcc/testsuite/go.test/test/fixedbugs/issue4066.go
  faf2394e4f2ec3275955eba85784dab3  gcc/testsuite/go.test/test/fixedbugs/issue40746.go
! 93523097d3b9758a58bbb49f88e1f464  gcc/testsuite/go.test/test/fixedbugs/issue4085a.go
  001c87cb4bb24b139a96db3ae231df3d  gcc/testsuite/go.test/test/fixedbugs/issue4085b.go
  7c6b63c36bc49e30f18dcdbded981e58  gcc/testsuite/go.test/test/fixedbugs/issue40917.go
  6952c43f7d0e5d72852aa79ef71b9367  gcc/testsuite/go.test/test/fixedbugs/issue40954.go
--- 106406,106412 ----
  79dc96cacfada12db585ed3ecb1ba075  gcc/testsuite/go.test/test/fixedbugs/issue40629.go
  725129abc0a4dde1e81f2f4f08e64f6e  gcc/testsuite/go.test/test/fixedbugs/issue4066.go
  faf2394e4f2ec3275955eba85784dab3  gcc/testsuite/go.test/test/fixedbugs/issue40746.go
! b7316ff634eadc19dfe2841a76e3ab01  gcc/testsuite/go.test/test/fixedbugs/issue4085a.go
  001c87cb4bb24b139a96db3ae231df3d  gcc/testsuite/go.test/test/fixedbugs/issue4085b.go
  7c6b63c36bc49e30f18dcdbded981e58  gcc/testsuite/go.test/test/fixedbugs/issue40917.go
  6952c43f7d0e5d72852aa79ef71b9367  gcc/testsuite/go.test/test/fixedbugs/issue40954.go
*************** e9621771b537972fad0b0a0d13f44c9d  gcc/te
*** 97445,97451 ****
  4e4c6cb8b33ed4fde2fb60571a33ec6e  gcc/testsuite/go.test/test/run.go
  2d243d6e593e2639b04cf7102d2aa9b0  gcc/testsuite/go.test/test/rune.go
  3fe523a753566634b33fb4dcfa534729  gcc/testsuite/go.test/test/runtime.go
! 36bde6b9c09006eab71daff9cc03c4aa  gcc/testsuite/go.test/test/shift1.go
  65a60f54e1d2b1292efbc1eb89b87992  gcc/testsuite/go.test/test/shift2.go
  98eaa818a13192aad65a388f0fafa7ad  gcc/testsuite/go.test/test/sieve.go
  cd30080cb01620bb08bf27f6695eec60  gcc/testsuite/go.test/test/sigchld.go
--- 106897,106903 ----
  4e4c6cb8b33ed4fde2fb60571a33ec6e  gcc/testsuite/go.test/test/run.go
  2d243d6e593e2639b04cf7102d2aa9b0  gcc/testsuite/go.test/test/rune.go
  3fe523a753566634b33fb4dcfa534729  gcc/testsuite/go.test/test/runtime.go
! 1cdb5d31be965aa9d2f93ec6de66e626  gcc/testsuite/go.test/test/shift1.go
  65a60f54e1d2b1292efbc1eb89b87992  gcc/testsuite/go.test/test/shift2.go
  98eaa818a13192aad65a388f0fafa7ad  gcc/testsuite/go.test/test/sieve.go
  cd30080cb01620bb08bf27f6695eec60  gcc/testsuite/go.test/test/sigchld.go
*************** d19a0449bac1fb497429a88904f3d658  gcc/te
*** 97498,97513 ****
  50c0f03762d429c13fd0302c79d90157  gcc/testsuite/go.test/test/varinit.go
  6447a99ae1e2eec266af1ceab6a7343c  gcc/testsuite/go.test/test/zerodivide.go
  340e08c9aef97a2da8f4cd4568d52675  gcc/testsuite/jit.dg/add-driver-options-testlib.c
! 38e97f454caf88626c8bd5c84285fb07  gcc/testsuite/jit.dg/all-non-failing-tests.h
  7bc42e89ae77872c8fc581b4babf1832  gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h
  6599d673695ac45c69f897e7b9643cdb  gcc/testsuite/jit.dg/harness.h
! c3b5a87cb24b18d5a584f92e61d9cbab  gcc/testsuite/jit.dg/jit.exp
  3fd6900c9d1d0edd53191542d96ffcec  gcc/testsuite/jit.dg/test-accessing-bitfield.c
  790dcf4e4a5c3dce84639ef815265f21  gcc/testsuite/jit.dg/test-accessing-struct.c
  60caef14bfb482627a962469a4524fce  gcc/testsuite/jit.dg/test-accessing-union.c
  88704e5069c56084dcb3599bfc690ad7  gcc/testsuite/jit.dg/test-add-driver-options.c
  c233136ab18af5e948dfb6afa5fee7b7  gcc/testsuite/jit.dg/test-alignment.c
  c96b8b75ba517dc647306c0f299c9b2d  gcc/testsuite/jit.dg/test-alignment.cc
  c9f821ccc1905c2cf6da3b515300cc71  gcc/testsuite/jit.dg/test-arith-overflow.c
  978312b6ef29d047612e4077b2776108  gcc/testsuite/jit.dg/test-array-as-pointer.c
  b6b657ddbcecefb50b21259cc5711010  gcc/testsuite/jit.dg/test-arrays.c
--- 106950,106967 ----
  50c0f03762d429c13fd0302c79d90157  gcc/testsuite/go.test/test/varinit.go
  6447a99ae1e2eec266af1ceab6a7343c  gcc/testsuite/go.test/test/zerodivide.go
  340e08c9aef97a2da8f4cd4568d52675  gcc/testsuite/jit.dg/add-driver-options-testlib.c
! ced1e82a057a3545ee32a58098f87b0f  gcc/testsuite/jit.dg/all-non-failing-tests.h
  7bc42e89ae77872c8fc581b4babf1832  gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h
  6599d673695ac45c69f897e7b9643cdb  gcc/testsuite/jit.dg/harness.h
! bcc659c5c8ad01904087579142d235cb  gcc/testsuite/jit.dg/jit.exp
  3fd6900c9d1d0edd53191542d96ffcec  gcc/testsuite/jit.dg/test-accessing-bitfield.c
  790dcf4e4a5c3dce84639ef815265f21  gcc/testsuite/jit.dg/test-accessing-struct.c
  60caef14bfb482627a962469a4524fce  gcc/testsuite/jit.dg/test-accessing-union.c
  88704e5069c56084dcb3599bfc690ad7  gcc/testsuite/jit.dg/test-add-driver-options.c
+ 063713dfe4d13a7db9487f04ca46de92  gcc/testsuite/jit.dg/test-alias-attribute.c
  c233136ab18af5e948dfb6afa5fee7b7  gcc/testsuite/jit.dg/test-alignment.c
  c96b8b75ba517dc647306c0f299c9b2d  gcc/testsuite/jit.dg/test-alignment.cc
+ 2fdb2d029b4d2ac2ee6075d0b41dd30f  gcc/testsuite/jit.dg/test-always_inline-attribute.c
  c9f821ccc1905c2cf6da3b515300cc71  gcc/testsuite/jit.dg/test-arith-overflow.c
  978312b6ef29d047612e4077b2776108  gcc/testsuite/jit.dg/test-array-as-pointer.c
  b6b657ddbcecefb50b21259cc5711010  gcc/testsuite/jit.dg/test-arrays.c
*************** c1c4ffe41bbf76d4a61fec8d9b42486c  gcc/te
*** 97522,97533 ****
--- 106976,106989 ----
  af0a18ef8912906bb36ca88219c06667  gcc/testsuite/jit.dg/test-calling-external-function.c
  fcf20b943f3e9affe23adec9277064a7  gcc/testsuite/jit.dg/test-calling-function-ptr.c
  e3bf5c17797aeaea60953345b0ec836b  gcc/testsuite/jit.dg/test-cast.c
+ 1abc657df5f9cfb2b57bf23048e54d17  gcc/testsuite/jit.dg/test-cold-attribute.c
  dc3f5924516f317d0e822022186a89d9  gcc/testsuite/jit.dg/test-combination.c
  2e035396a65d6176ba9798f667c5621a  gcc/testsuite/jit.dg/test-compile-to-assembler.c
  897c5ab27b1fd560e0e9f30525797a81  gcc/testsuite/jit.dg/test-compile-to-dynamic-library.c
  23693177964abb2770eacb1f629a77af  gcc/testsuite/jit.dg/test-compile-to-executable.c
  f34e7ef4d055ab7b719406f4af743422  gcc/testsuite/jit.dg/test-compile-to-object.c
  6c38f147d96d254624feb8015fdc5ef0  gcc/testsuite/jit.dg/test-compound-assignment.c
+ 7a5fff57386e554aea3f76e69f405c75  gcc/testsuite/jit.dg/test-const-attribute.c
  da2633ae9e3039a064e79583ac2ed729  gcc/testsuite/jit.dg/test-constants.c
  fcf1117c170a5452646f6599908d4d34  gcc/testsuite/jit.dg/test-debug-strings.c
  cb8f0e0a8bd20f09f54d4fc96e7a13f9  gcc/testsuite/jit.dg/test-debuginfo.c
*************** d54d9ac81ba5a3c223a7638ade50667e  gcc/te
*** 97614,97650 ****
  136909b4e2c9dd4206e002a48198e9da  gcc/testsuite/jit.dg/test-error-unrecognized-dump.c
  f8978b292e5e62e13f742d863657bb61  gcc/testsuite/jit.dg/test-error-unterminated-block.c
  5b31d534f052cfc632c1a4b686c1e42b  gcc/testsuite/jit.dg/test-error-value-not-a-numeric-type.c
! 5be5a0e5a03af3100553d0b07aed16b4  gcc/testsuite/jit.dg/test-expressions.c
  44cf4655232716bc3eb5c9980e013f50  gcc/testsuite/jit.dg/test-extra-options.c
  508ef06cfdebd3bf557407d14af15f2b  gcc/testsuite/jit.dg/test-factorial-must-tail-call.c
  b02011c7edbcfca8dfb3bd46815567fc  gcc/testsuite/jit.dg/test-factorial.c
  85f93e3dc56132711ed472999eddea1f  gcc/testsuite/jit.dg/test-fibonacci.c
  841c0fb8feb5dd18970c448dc2ccd811  gcc/testsuite/jit.dg/test-functions.c
  64e1ef36746543de5884e1880c6e87dd  gcc/testsuite/jit.dg/test-fuzzer.c
  6eaf152cbbd78ca034b5acc55db9a308  gcc/testsuite/jit.dg/test-global-init-rvalue.c
  1da38d55df3045d75370957a17d7cbc1  gcc/testsuite/jit.dg/test-global-set-initializer.c
  84606b0daf7effa1be60975ee90658d3  gcc/testsuite/jit.dg/test-hello-world.c
! e240f78f9d25dd2fc5fe93f144d8a4ce  gcc/testsuite/jit.dg/test-link-section-assembler.c
  282cb9f2d6f6d4287ac88a6e77bd3aa9  gcc/testsuite/jit.dg/test-linked-list.c
  6fd5f4e5a344608608f62d434dfbad85  gcc/testsuite/jit.dg/test-local-init-rvalue.c
  98ebb9b31736f32dab268c122c5d8d2d  gcc/testsuite/jit.dg/test-long-names.c
  88a9c3f2214d7da6ca69402acd96b342  gcc/testsuite/jit.dg/test-long-string-literal.c
  c36d06171cf29aa67856b3136828352f  gcc/testsuite/jit.dg/test-nested-contexts.c
  e476b3e50d2451ccb2e83dcb94690dc6  gcc/testsuite/jit.dg/test-nested-loops.c
  3dd91ef7035565601d335ad5b9e073e4  gcc/testsuite/jit.dg/test-operator-overloading.cc
  e47372605dd57d3184d1a399a4dda2f3  gcc/testsuite/jit.dg/test-pr103562.c
  1c0ba4aa6b12ef4ca7882a1f7653e39a  gcc/testsuite/jit.dg/test-pr105812-bool-operations.c
  f23c8426b4779d93458122aa6f97231a  gcc/testsuite/jit.dg/test-pr66700-observing-write-through-ptr.c
  1e13f203827617338962b7f4bc0aef4d  gcc/testsuite/jit.dg/test-pr66779.c
  e1de260f2ea5cb4cf607c76292f03edc  gcc/testsuite/jit.dg/test-pr95306-builtin-types.c
  5e9c628acee5585d824337166636c7bb  gcc/testsuite/jit.dg/test-pr95314-rvalue-reuse.c
  1f18cb1e4926db574b25c58a26e71a53  gcc/testsuite/jit.dg/test-quadratic.c
  ce096ee573017f44e9c3cd0933f0d297  gcc/testsuite/jit.dg/test-quadratic.cc
  df424c268791473ace062ef873c388e2  gcc/testsuite/jit.dg/test-reading-struct.c
! 22ffc0e44111996fcb0ebd653190c983  gcc/testsuite/jit.dg/test-reflection.c
  38693c5e37ab7f738ee4f05bc4688ec0  gcc/testsuite/jit.dg/test-register-variable.c
  2819f51a64e319d697134a1319b760b1  gcc/testsuite/jit.dg/test-returning-function-ptr.c
! 00b7c9c55c8b7e6d14d1ad75ad07e5a7  gcc/testsuite/jit.dg/test-setting-alignment.c
  c8398a3f73dd4b289b3b1e611cb3bf23  gcc/testsuite/jit.dg/test-string-literal.c
  0ad799327d6cf83f94f71c26fc490f61  gcc/testsuite/jit.dg/test-sum-of-squares.c
  bca3f58a8fb9ee1db76c5883c6d533f3  gcc/testsuite/jit.dg/test-switch.c
--- 107070,107115 ----
  136909b4e2c9dd4206e002a48198e9da  gcc/testsuite/jit.dg/test-error-unrecognized-dump.c
  f8978b292e5e62e13f742d863657bb61  gcc/testsuite/jit.dg/test-error-unterminated-block.c
  5b31d534f052cfc632c1a4b686c1e42b  gcc/testsuite/jit.dg/test-error-value-not-a-numeric-type.c
! 5322444003bb7e3d514fca3cd9c951b3  gcc/testsuite/jit.dg/test-expressions.c
  44cf4655232716bc3eb5c9980e013f50  gcc/testsuite/jit.dg/test-extra-options.c
  508ef06cfdebd3bf557407d14af15f2b  gcc/testsuite/jit.dg/test-factorial-must-tail-call.c
  b02011c7edbcfca8dfb3bd46815567fc  gcc/testsuite/jit.dg/test-factorial.c
  85f93e3dc56132711ed472999eddea1f  gcc/testsuite/jit.dg/test-fibonacci.c
  841c0fb8feb5dd18970c448dc2ccd811  gcc/testsuite/jit.dg/test-functions.c
  64e1ef36746543de5884e1880c6e87dd  gcc/testsuite/jit.dg/test-fuzzer.c
+ 8af21394a43502f54a83b7adeb21c1f9  gcc/testsuite/jit.dg/test-ggc-bugfix.c
  6eaf152cbbd78ca034b5acc55db9a308  gcc/testsuite/jit.dg/test-global-init-rvalue.c
  1da38d55df3045d75370957a17d7cbc1  gcc/testsuite/jit.dg/test-global-set-initializer.c
  84606b0daf7effa1be60975ee90658d3  gcc/testsuite/jit.dg/test-hello-world.c
! e3f305b93559c865a49c727867b1c4bf  gcc/testsuite/jit.dg/test-link-section-assembler.c
  282cb9f2d6f6d4287ac88a6e77bd3aa9  gcc/testsuite/jit.dg/test-linked-list.c
  6fd5f4e5a344608608f62d434dfbad85  gcc/testsuite/jit.dg/test-local-init-rvalue.c
  98ebb9b31736f32dab268c122c5d8d2d  gcc/testsuite/jit.dg/test-long-names.c
  88a9c3f2214d7da6ca69402acd96b342  gcc/testsuite/jit.dg/test-long-string-literal.c
  c36d06171cf29aa67856b3136828352f  gcc/testsuite/jit.dg/test-nested-contexts.c
  e476b3e50d2451ccb2e83dcb94690dc6  gcc/testsuite/jit.dg/test-nested-loops.c
+ 80b72c20a77acf6efdab8175de57b651  gcc/testsuite/jit.dg/test-noinline-attribute.c
+ 191f3860e35690946e4e8a67a922d5df  gcc/testsuite/jit.dg/test-nonnull-attribute.c
  3dd91ef7035565601d335ad5b9e073e4  gcc/testsuite/jit.dg/test-operator-overloading.cc
+ 7fa37a0f5c9c77c611ba7756c25082a9  gcc/testsuite/jit.dg/test-pointer_size.c
+ ade1682ca2c0e7a724956380cbe5a74b  gcc/testsuite/jit.dg/test-popcount.c
  e47372605dd57d3184d1a399a4dda2f3  gcc/testsuite/jit.dg/test-pr103562.c
  1c0ba4aa6b12ef4ca7882a1f7653e39a  gcc/testsuite/jit.dg/test-pr105812-bool-operations.c
  f23c8426b4779d93458122aa6f97231a  gcc/testsuite/jit.dg/test-pr66700-observing-write-through-ptr.c
  1e13f203827617338962b7f4bc0aef4d  gcc/testsuite/jit.dg/test-pr66779.c
  e1de260f2ea5cb4cf607c76292f03edc  gcc/testsuite/jit.dg/test-pr95306-builtin-types.c
  5e9c628acee5585d824337166636c7bb  gcc/testsuite/jit.dg/test-pr95314-rvalue-reuse.c
+ 6e39c122319cd0006cb89cc1d4af5507  gcc/testsuite/jit.dg/test-pure-attribute.c
  1f18cb1e4926db574b25c58a26e71a53  gcc/testsuite/jit.dg/test-quadratic.c
  ce096ee573017f44e9c3cd0933f0d297  gcc/testsuite/jit.dg/test-quadratic.cc
  df424c268791473ace062ef873c388e2  gcc/testsuite/jit.dg/test-reading-struct.c
! e167d73b7dc287235f76fda5c3d44a54  gcc/testsuite/jit.dg/test-reflection.c
  38693c5e37ab7f738ee4f05bc4688ec0  gcc/testsuite/jit.dg/test-register-variable.c
+ 47b4f4e3718b24cb9c37ddec1f3fb5c2  gcc/testsuite/jit.dg/test-restrict-attribute.c
+ e75fb18f9aff909b3c6639a4dac3074c  gcc/testsuite/jit.dg/test-restrict.c
  2819f51a64e319d697134a1319b760b1  gcc/testsuite/jit.dg/test-returning-function-ptr.c
! a5626b9d860be98a2945e6db0103eb86  gcc/testsuite/jit.dg/test-setting-alignment.c
! 62528d4a27e27c4755becb0dbd93db39  gcc/testsuite/jit.dg/test-sizeof.c
  c8398a3f73dd4b289b3b1e611cb3bf23  gcc/testsuite/jit.dg/test-string-literal.c
  0ad799327d6cf83f94f71c26fc490f61  gcc/testsuite/jit.dg/test-sum-of-squares.c
  bca3f58a8fb9ee1db76c5883c6d533f3  gcc/testsuite/jit.dg/test-switch.c
*************** bca3f58a8fb9ee1db76c5883c6d533f3  gcc/te
*** 97653,97743 ****
  23fe4e6ebca22d47798698e1a9eed222  gcc/testsuite/jit.dg/test-tls.c
  af7112223f23a060486e371aaa393e98  gcc/testsuite/jit.dg/test-trap.c
  b8adcd9731f0c23906afe161ca33aa6a  gcc/testsuite/jit.dg/test-types.c
  e309c53b14c724939a1564046c6a5df2  gcc/testsuite/jit.dg/test-using-global.c
  87b9d64f8250158521cb3cae842ff2cb  gcc/testsuite/jit.dg/test-validly-unreachable-block.c
  66bd443798448a3863f71885dbc59b0f  gcc/testsuite/jit.dg/test-vector-rvalues.cc
  1fb99c80f8738ec43e1d8be3c7535acc  gcc/testsuite/jit.dg/test-vector-types.cc
  5542ebc8aa1b198ad40aeeee64259afb  gcc/testsuite/jit.dg/test-version.c
  96ac85af1dde837e4f4e2444d083cf22  gcc/testsuite/jit.dg/test-volatile.c
  6477c66fcebff4d502d26e2d247251ce  gcc/testsuite/jit.dg/verify-dynamic-library.c
! ca8bd0f71b753e7675f0633e92a8036b  gcc/testsuite/lib/asan-dg.exp
! deccefffaef1a9cf06cdb00b72438d60  gcc/testsuite/lib/atomic-dg.exp
! 5306158b9885dee2c6998a04343af247  gcc/testsuite/lib/c-compat.exp
! b89fec0aadc8e9a79fe440292f35b2e0  gcc/testsuite/lib/c-torture.exp
! bb19bde5ac42e2e20ed87388ef49184d  gcc/testsuite/lib/clearcap.exp
! 3d83cf985234f7150a99759e2c455d18  gcc/testsuite/lib/compat.exp
! 91c5b2d8a3b8ef766ae59c5a1ee0ac38  gcc/testsuite/lib/copy-file.exp
! 809b05fa6e3c328124ec9d57ac14f44d  gcc/testsuite/lib/dejapatches.exp
! 50e52f41265631ade54cb83648b48c3d  gcc/testsuite/lib/dg-pch.exp
! 6b1c4036977898cd29dcd77c4bd9fb6e  gcc/testsuite/lib/file-format.exp
! 579636740d2020dcc14e8c62acb4a484  gcc/testsuite/lib/fortran-modules.exp
! d77b22cf7a3bfaa8380b303905b4d6cd  gcc/testsuite/lib/fortran-torture.exp
! 793ec464f01bfb000837d4b305c50d7a  gcc/testsuite/lib/g++-dg.exp
! 532e4191d1cf971bd8fefa1a7c9aa8a7  gcc/testsuite/lib/g++.exp
! 07f442c1d21ce775aa2ab0ba160f8fe9  gcc/testsuite/lib/gcc-defs.exp
! f51346dde5384b1bad3144a2aff38c66  gcc/testsuite/lib/gcc-dg.exp
! 84eb0ed1ece5d56c8af9172936500f54  gcc/testsuite/lib/gcc-gdb-test.exp
! 558a151d1be91062ba1f74f61d0beaee  gcc/testsuite/lib/gcc-simulate-thread.exp
! 6793af238b3dea7a7d23d3e64a656d9e  gcc/testsuite/lib/gcc.exp
! 64f59a7e7e158dc4de2124745f43385a  gcc/testsuite/lib/gcov.exp
! 8aa4c20291a20f318e485f5665086011  gcc/testsuite/lib/gdc-dg.exp
! 15ea874dff4a529a674354b349abdce4  gcc/testsuite/lib/gdc-utils.exp
! b6a8ae0202a26fe01cc3a48e7a0e31ab  gcc/testsuite/lib/gdc.exp
! ffc4e64bd1aeae29d31c1cd67c767f35  gcc/testsuite/lib/gfortran-dg.exp
! aa1a9744fe32138a966f03d5dfc22541  gcc/testsuite/lib/gfortran.exp
! 66192f2d835f72f9e0f50ce956d8f995  gcc/testsuite/lib/gm2-dg.exp
! 511af82e7784b79930a99ed264ee4c75  gcc/testsuite/lib/gm2-simple.exp
! 0fbcd8f9a1d131320112a60524ba11db  gcc/testsuite/lib/gm2-torture.exp
! 76cced7f2241cdf8adc6015a8832ff50  gcc/testsuite/lib/gm2.exp
! a77eb2ae0a7376bf33d355a4714553ea  gcc/testsuite/lib/gnat-dg.exp
! b4ae06eef6b4887b9ed689af978d27c3  gcc/testsuite/lib/gnat.exp
! 53bb5e228778a22ee832e582b423c29f  gcc/testsuite/lib/go-dg.exp
! dfe90e3e8ee193e050914ed19adcef15  gcc/testsuite/lib/go-torture.exp
! 98b18bc4d02a0dcf760cf74fff32b5da  gcc/testsuite/lib/go.exp
! 6f968754557e9731dcf79c719ac64887  gcc/testsuite/lib/hwasan-dg.exp
! 9acf7bc29364e8ee8fc4c28b27e8f6fc  gcc/testsuite/lib/lto.exp
! 3a5404afeb2a25b9128a466e80230c0e  gcc/testsuite/lib/mike-g++.exp
! 090d0fd3aa8a38a3cb03da40bb61c7fb  gcc/testsuite/lib/mike-gcc.exp
! 133f3398df43cb63a1377e277f365f1e  gcc/testsuite/lib/multiline.exp
! 65197ec2d78a9b0c43a393366a2f636f  gcc/testsuite/lib/obj-c++-dg.exp
! 794e25dc0eab921c538676df31b0bd3d  gcc/testsuite/lib/obj-c++.exp
! be7706f747b7ddf10ed14ba6c80577d7  gcc/testsuite/lib/objc-dg.exp
! bf55d1034ce482b9991965b5b97def58  gcc/testsuite/lib/objc-torture.exp
! b173faab911079de7636712fa6aef3af  gcc/testsuite/lib/objc.exp
! 3a57ddc507e3ba9343dd148ca1f1dfec  gcc/testsuite/lib/options.exp
! 76c5fb60c85e67a30c2b9ce4b4210975  gcc/testsuite/lib/plugin-support.exp
! 709f8f1ac98b47b863b517bd04911cf1  gcc/testsuite/lib/profopt.exp
! a812279ddc01af416ccb4bad797c2737  gcc/testsuite/lib/prune.exp
! e740cf7195b15f39ede973547a395418  gcc/testsuite/lib/rust-dg.exp
! c3ddc19d509b9bead5b3f590fd9a1bfc  gcc/testsuite/lib/rust.exp
! 93d53913bf75d7b248a0f7e1b8898db1  gcc/testsuite/lib/scanasm.exp
! 8a6bb2d3745b087b445a3bef2e5926b0  gcc/testsuite/lib/scandump.exp
! 1746eb27a219e300da0a4b3b5238efc3  gcc/testsuite/lib/scanipa.exp
! d128c8d9bf00ffb595cc8db43a68f14e  gcc/testsuite/lib/scanlang.exp
! fd51dc0e80b9704081b17b14e5a54062  gcc/testsuite/lib/scanltranstree.exp
! cebdba6de36ced95b64c0cd372ae8927  gcc/testsuite/lib/scanoffload.exp
! 8b8f0cc3c929ee7e984c4c07e775141d  gcc/testsuite/lib/scanoffloadipa.exp
! 30338a6749daf5e2d28d283eb67098f1  gcc/testsuite/lib/scanoffloadrtl.exp
! 64aaaaf16ff0956b5ed6414d1415f08e  gcc/testsuite/lib/scanoffloadtree.exp
! e020b68426183241592d8d9e6fc099b4  gcc/testsuite/lib/scanrtl.exp
! 5b189cc74d967fb3ea45e0e7fce27710  gcc/testsuite/lib/scansarif.exp
! 8977266367472e4c6b20ef38f885cc76  gcc/testsuite/lib/scantree.exp
! b295a72c05b831c76c031b8e2eb4d3b2  gcc/testsuite/lib/scanwpaipa.exp
! 193dff75973e9817b77d076cd499f3fa  gcc/testsuite/lib/target-libpath.exp
! 3d3f2e71aead61b3117d14eb7bbd4a01  gcc/testsuite/lib/target-supports-dg.exp
! 41863fce407d5e6b71952ef92f155b5c  gcc/testsuite/lib/target-supports.exp
! 7e0169745cc1fb5c7a32430931fd5493  gcc/testsuite/lib/target-utils.exp
! 60311806ad83bff4ff32a9473e1b70f2  gcc/testsuite/lib/timeout-dg.exp
! b097a1276df72ba56dc546dc3859883c  gcc/testsuite/lib/timeout.exp
! d932e140fd4dcbf5c631aec29312bc3c  gcc/testsuite/lib/torture-options.exp
! b4fab3876b781f97ae7032a683dc1563  gcc/testsuite/lib/tsan-dg.exp
! eb8e9b99553469be3c0f852c2e6f7c2c  gcc/testsuite/lib/ubsan-dg.exp
  abf5053d8fe36a4d6aaee3b64de1525d  gcc/testsuite/lib/verify-sarif-file.py
! 42dd95b14c9825a5937b90cc556cc668  gcc/testsuite/lib/wrapper.exp
  83447103f758c2c8ec2044c84069e212  gcc/testsuite/obj-c++.dg/SEL-typedef.mm
  55160ccf08a9b1444b32deb900dac569  gcc/testsuite/obj-c++.dg/Wimplicit-fallthrough-1.mm
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/obj-c++.dg/at-class-1.mm
! 1631ca39c6a44be2778bf9a1bbced11b  gcc/testsuite/obj-c++.dg/attributes/attributes.exp
  3ae67bbd6c30272de285ecf52bbe29c4  gcc/testsuite/obj-c++.dg/attributes/categ-attribute-1.mm
  bb7c92f88fdb2a6c371fe4b187f0cebd  gcc/testsuite/obj-c++.dg/attributes/categ-attribute-2.mm
  ca1ca55dc3bc194afaeccb9c90623e9e  gcc/testsuite/obj-c++.dg/attributes/class-attribute-1.mm
--- 107118,107212 ----
  23fe4e6ebca22d47798698e1a9eed222  gcc/testsuite/jit.dg/test-tls.c
  af7112223f23a060486e371aaa393e98  gcc/testsuite/jit.dg/test-trap.c
  b8adcd9731f0c23906afe161ca33aa6a  gcc/testsuite/jit.dg/test-types.c
+ 9904e17b6165343142ab782d4bf78127  gcc/testsuite/jit.dg/test-used-attribute.c
  e309c53b14c724939a1564046c6a5df2  gcc/testsuite/jit.dg/test-using-global.c
  87b9d64f8250158521cb3cae842ff2cb  gcc/testsuite/jit.dg/test-validly-unreachable-block.c
+ 6a2edba90b59cf002b5d1cf480184162  gcc/testsuite/jit.dg/test-variable-attribute.c
  66bd443798448a3863f71885dbc59b0f  gcc/testsuite/jit.dg/test-vector-rvalues.cc
  1fb99c80f8738ec43e1d8be3c7535acc  gcc/testsuite/jit.dg/test-vector-types.cc
  5542ebc8aa1b198ad40aeeee64259afb  gcc/testsuite/jit.dg/test-version.c
  96ac85af1dde837e4f4e2444d083cf22  gcc/testsuite/jit.dg/test-volatile.c
+ 9da1409ac5b1dea56852239c56e8fa5f  gcc/testsuite/jit.dg/test-weak-attribute.c
  6477c66fcebff4d502d26e2d247251ce  gcc/testsuite/jit.dg/verify-dynamic-library.c
! ab2ca3d0e0b92fd87c10230969ba5af7  gcc/testsuite/lib/asan-dg.exp
! 4dbdf89edffc901452b13d2a0bdb65e6  gcc/testsuite/lib/atomic-dg.exp
! 4f790186c789bfcdbbcc5b70dd4337b8  gcc/testsuite/lib/c-compat.exp
! 741ac6095f715a3500a38704d0e0a8ca  gcc/testsuite/lib/c-torture.exp
! 6e2de0938da5ad4d0e5c4959d087eb43  gcc/testsuite/lib/clearcap.exp
! 83f04af574d0ad7f8e5282156ad5d556  gcc/testsuite/lib/compat.exp
! 130ad96ffdcfe11d2fe6c2870a1dd594  gcc/testsuite/lib/copy-file.exp
! d6125a409c5492f42bdd3581a6291955  gcc/testsuite/lib/dejapatches.exp
! d8cb3cb43eef832ce8959d86aaba6192  gcc/testsuite/lib/dg-pch.exp
! e1cfca56719cf20aabfa2eaffaf9c91d  gcc/testsuite/lib/file-format.exp
! 87a567cf60d4efb1054d4145cc8467cf  gcc/testsuite/lib/fortran-modules.exp
! 4c59619913e6dd2c92c4141183a9e698  gcc/testsuite/lib/fortran-torture.exp
! 48df544908c2b010d652baf087fd5afd  gcc/testsuite/lib/g++-dg.exp
! 7cb39a88db3f72c232f8d53d86db17ea  gcc/testsuite/lib/g++.exp
! 53984ed209ccb74f363842eef1a19e52  gcc/testsuite/lib/gcc-defs.exp
! 47d942711fe1c7f9d2c68bcc14682423  gcc/testsuite/lib/gcc-dg.exp
! 0eb2432780f7e3ed7d4c0af42ee55e9b  gcc/testsuite/lib/gcc-gdb-test.exp
! b1a20c06c1019960f39f4611f1252018  gcc/testsuite/lib/gcc-simulate-thread.exp
! 6c909f40f5b301e1738c8d375278c93d  gcc/testsuite/lib/gcc.exp
! 9a6c7ab6cb826fabea843f2f0cb137b5  gcc/testsuite/lib/gcov.exp
! 5a52ea3b03b13e9c3a8e6aa9f1d4f2e9  gcc/testsuite/lib/gdc-dg.exp
! e10174ba3bc639b5a7b7d3ac99e3acd7  gcc/testsuite/lib/gdc-utils.exp
! ca1631ec6619a95d1ce0177b7cefae74  gcc/testsuite/lib/gdc.exp
! 3bd2ea98e97c64f767e5547a1295c16d  gcc/testsuite/lib/gfortran-dg.exp
! b7460c0b3311c71ba1ef5043c5447538  gcc/testsuite/lib/gfortran.exp
! aed587b341d738358d9328ab172f93da  gcc/testsuite/lib/gm2-dg.exp
! 0c45478588b43265d66b10c2ffcf002a  gcc/testsuite/lib/gm2-simple.exp
! 0426ff30b3bc2b53987f954a1eb24494  gcc/testsuite/lib/gm2-torture.exp
! ec30dc872b77194c2be90c36713e930e  gcc/testsuite/lib/gm2.exp
! daf210c75c8c031bf07f93be2090cbd1  gcc/testsuite/lib/gnat-dg.exp
! 98152f3b1fe75d1a3b2b86fa69c5f548  gcc/testsuite/lib/gnat.exp
! ea1a8984df21eb7b429a00bc3d0a99c7  gcc/testsuite/lib/go-dg.exp
! c4d8ec89484f8330ae0008d131fedf28  gcc/testsuite/lib/go-torture.exp
! 192f15a6eb39416f8b8e16eb34ed9a7e  gcc/testsuite/lib/go.exp
! 4818c4d4e4a63feda289f71aa5a2d3db  gcc/testsuite/lib/hwasan-dg.exp
! 484d239d5c61861001373c287746fbce  gcc/testsuite/lib/lto.exp
! d5c788891580183c0162d61bee2606c9  gcc/testsuite/lib/mike-g++.exp
! 7b1a3e5d995ace232fab35f5c2bc144d  gcc/testsuite/lib/mike-gcc.exp
! 8d644e83696b168db4e275e7aae92821  gcc/testsuite/lib/modules.exp
! f89b045f2842e5ff03497a49f6252c55  gcc/testsuite/lib/multiline.exp
! e7dfc093129242634d55f5be6acfaf2f  gcc/testsuite/lib/obj-c++-dg.exp
! 2aebb5337b46130df1565434bf0b195b  gcc/testsuite/lib/obj-c++.exp
! 4b367ff2ecab820f990c8f946bd89e93  gcc/testsuite/lib/objc-dg.exp
! 21c856594e6722454d5476af6f52f112  gcc/testsuite/lib/objc-torture.exp
! 4b0b9a5c4a7c4d06df2cd57ee2ab54ea  gcc/testsuite/lib/objc.exp
! dae75a86ae5b5d6ce0fdabfc4f20e2e4  gcc/testsuite/lib/options.exp
! 68980ed8b7f38b9fbd0f534a26c4db48  gcc/testsuite/lib/plugin-support.exp
! a37fe017e931c00ce12a5e7b78ada9d8  gcc/testsuite/lib/profopt.exp
! 3c38be1427dbdf4a264c5eb185e13473  gcc/testsuite/lib/prune.exp
! 033d1a538a24fe68b60a3abf7b92cc5d  gcc/testsuite/lib/rust-dg.exp
! 1eacb2a09b27b7cf0580594468b8342b  gcc/testsuite/lib/rust.exp
! 16fae062233a3ce15736d09dd7a31f28  gcc/testsuite/lib/scanasm.exp
! 3740696da6818471a876d60d77815ea4  gcc/testsuite/lib/scandump.exp
! 967f17be06a92fa347f21c7234330499  gcc/testsuite/lib/scanipa.exp
! 6c76de001e7e4d2a05ea449457d59694  gcc/testsuite/lib/scanlang.exp
! 26abdbc95a93ff83f5437ad045c9e4ee  gcc/testsuite/lib/scanltranstree.exp
! 01bb207738e3dcab9a8ea98b8241e5a3  gcc/testsuite/lib/scanoffload.exp
! 33e0694a6fdec242be55609f15a8448e  gcc/testsuite/lib/scanoffloadipa.exp
! 42ebb96280781443865c3ee17fe4ec56  gcc/testsuite/lib/scanoffloadrtl.exp
! 485d510dbfbac9e8721b06fb19adf771  gcc/testsuite/lib/scanoffloadtree.exp
! 18a34a9127c831b6a702d9bb1cff897a  gcc/testsuite/lib/scanrtl.exp
! 3119a4fbb564c1af17e955c7781d3cd7  gcc/testsuite/lib/scansarif.exp
! 07faac7e74c4f606428755364b00d949  gcc/testsuite/lib/scantree.exp
! a27ad08178b52070e08d7c22e2387cef  gcc/testsuite/lib/scanwpaipa.exp
! dbc2129f79274a41f1128a281f81019b  gcc/testsuite/lib/target-libpath.exp
! c103f8a73343128b0e916a2296fc1ac1  gcc/testsuite/lib/target-supports-dg.exp
! 2758a126aed5ad56a397d1a8dcb08cb4  gcc/testsuite/lib/target-supports.exp
! d84983886d0708605af864226f6beac0  gcc/testsuite/lib/target-utils.exp
! 64f7537fc29d3ab37e44b5aaf37c5fb4  gcc/testsuite/lib/timeout-dg.exp
! 75cfa45901d445df376345935b79fa37  gcc/testsuite/lib/timeout.exp
! e89ae856b26d34205b78e02f939985af  gcc/testsuite/lib/torture-options.exp
! 177b882c7b9412a6bf7ed52bb1bae07d  gcc/testsuite/lib/tsan-dg.exp
! 61d150d8aa9db5d1ea94fa3cd5a823d2  gcc/testsuite/lib/ubsan-dg.exp
  abf5053d8fe36a4d6aaee3b64de1525d  gcc/testsuite/lib/verify-sarif-file.py
! b20e1e61993cbb6f7077afe71e2eae66  gcc/testsuite/lib/wrapper.exp
  83447103f758c2c8ec2044c84069e212  gcc/testsuite/obj-c++.dg/SEL-typedef.mm
  55160ccf08a9b1444b32deb900dac569  gcc/testsuite/obj-c++.dg/Wimplicit-fallthrough-1.mm
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/obj-c++.dg/at-class-1.mm
! 360fb312933e1ed062d21559684bf444  gcc/testsuite/obj-c++.dg/attributes/attributes.exp
  3ae67bbd6c30272de285ecf52bbe29c4  gcc/testsuite/obj-c++.dg/attributes/categ-attribute-1.mm
  bb7c92f88fdb2a6c371fe4b187f0cebd  gcc/testsuite/obj-c++.dg/attributes/categ-attribute-2.mm
  ca1ca55dc3bc194afaeccb9c90623e9e  gcc/testsuite/obj-c++.dg/attributes/class-attribute-1.mm
*************** f84fcee58d7ea0db2460ba64979e6f6b  gcc/te
*** 97758,97764 ****
  d4948be69b10d9cb7263cd3b9c0e0997  gcc/testsuite/obj-c++.dg/attributes/method-unavailable-2.mm
  6bc550355c14c89378477f66a0905538  gcc/testsuite/obj-c++.dg/attributes/method-unavailable-3.mm
  8182207247f88c396a0b19377866b6cf  gcc/testsuite/obj-c++.dg/attributes/nsobject-01.mm
! 75f5c9b4943c39adeed5ad55524d0ec6  gcc/testsuite/obj-c++.dg/attributes/nullability-00.mm
  42ca169991e605598f22ca7a7714f5b7  gcc/testsuite/obj-c++.dg/attributes/parameter-attribute-1.mm
  73f32c8ff0a73a9fe6f7d464646a0c6c  gcc/testsuite/obj-c++.dg/attributes/parameter-attribute-2.mm
  6aa847feb521308f30729d3bed4c28fe  gcc/testsuite/obj-c++.dg/attributes/proto-attribute-1.mm
--- 107227,107233 ----
  d4948be69b10d9cb7263cd3b9c0e0997  gcc/testsuite/obj-c++.dg/attributes/method-unavailable-2.mm
  6bc550355c14c89378477f66a0905538  gcc/testsuite/obj-c++.dg/attributes/method-unavailable-3.mm
  8182207247f88c396a0b19377866b6cf  gcc/testsuite/obj-c++.dg/attributes/nsobject-01.mm
! 76a41d8a0dfaedad280ffbf77e2f9149  gcc/testsuite/obj-c++.dg/attributes/nullability-00.mm
  42ca169991e605598f22ca7a7714f5b7  gcc/testsuite/obj-c++.dg/attributes/parameter-attribute-1.mm
  73f32c8ff0a73a9fe6f7d464646a0c6c  gcc/testsuite/obj-c++.dg/attributes/parameter-attribute-2.mm
  6aa847feb521308f30729d3bed4c28fe  gcc/testsuite/obj-c++.dg/attributes/proto-attribute-1.mm
*************** e91047651063a1662428088ff7456f48  gcc/te
*** 97803,97815 ****
  e40d4b7e1e14ee92eea55e290a15be06  gcc/testsuite/obj-c++.dg/demangle-1.mm
  2b7cf81f9fd7c2f9558b6570f0835806  gcc/testsuite/obj-c++.dg/demangle-2.mm
  1894a992a842473ea3446c689c55dd1d  gcc/testsuite/obj-c++.dg/demangle-3.mm
! ce3edd1d8ca18f09d62660a883948ed2  gcc/testsuite/obj-c++.dg/dg.exp
  df8e1651432977636bf9ca64823f6609  gcc/testsuite/obj-c++.dg/duplicate-class-1.mm
  74965fa22cbb6849912eabcb1f43b6e8  gcc/testsuite/obj-c++.dg/dwarf-2.mm
  ff09985655f304be699aaf3b8ac7d0c6  gcc/testsuite/obj-c++.dg/empty-private-1.mm
  64ae66c53d490094dd3c153f9c4a9c75  gcc/testsuite/obj-c++.dg/encode-1-next.mm
  575f87323105c855ece3eec6c673cfb0  gcc/testsuite/obj-c++.dg/encode-1.mm
! 7d7e6fc99c392bf563fae8bf357cc835  gcc/testsuite/obj-c++.dg/encode-10.mm
  4067b5ccc3ec6ec182e59982034a88a4  gcc/testsuite/obj-c++.dg/encode-2.mm
  c4e0785b4aee1c468f74005c33931f44  gcc/testsuite/obj-c++.dg/encode-3.mm
  3e70d4ed3f63678d5b05f4488150f57b  gcc/testsuite/obj-c++.dg/encode-4.mm
--- 107272,107284 ----
  e40d4b7e1e14ee92eea55e290a15be06  gcc/testsuite/obj-c++.dg/demangle-1.mm
  2b7cf81f9fd7c2f9558b6570f0835806  gcc/testsuite/obj-c++.dg/demangle-2.mm
  1894a992a842473ea3446c689c55dd1d  gcc/testsuite/obj-c++.dg/demangle-3.mm
! a6df1f9223f516dc347268934748597e  gcc/testsuite/obj-c++.dg/dg.exp
  df8e1651432977636bf9ca64823f6609  gcc/testsuite/obj-c++.dg/duplicate-class-1.mm
  74965fa22cbb6849912eabcb1f43b6e8  gcc/testsuite/obj-c++.dg/dwarf-2.mm
  ff09985655f304be699aaf3b8ac7d0c6  gcc/testsuite/obj-c++.dg/empty-private-1.mm
  64ae66c53d490094dd3c153f9c4a9c75  gcc/testsuite/obj-c++.dg/encode-1-next.mm
  575f87323105c855ece3eec6c673cfb0  gcc/testsuite/obj-c++.dg/encode-1.mm
! e4d16fff8957aa01b40df6db83660e61  gcc/testsuite/obj-c++.dg/encode-10.mm
  4067b5ccc3ec6ec182e59982034a88a4  gcc/testsuite/obj-c++.dg/encode-2.mm
  c4e0785b4aee1c468f74005c33931f44  gcc/testsuite/obj-c++.dg/encode-3.mm
  3e70d4ed3f63678d5b05f4488150f57b  gcc/testsuite/obj-c++.dg/encode-4.mm
*************** edc8405f3beeb6923d529479e62f98be  gcc/te
*** 97817,97823 ****
  d1824307e85027695c7f1f621635962f  gcc/testsuite/obj-c++.dg/encode-6.mm
  e8f3db69a8847b70c8bc969edd78dbb2  gcc/testsuite/obj-c++.dg/encode-7.mm
  7a1184e853bc44d526f960ab5978e148  gcc/testsuite/obj-c++.dg/encode-8.mm
! e01e96d007a042cff730ba43b17850f5  gcc/testsuite/obj-c++.dg/encode-9.mm
  e5b9f9a44ce01382be2feb246ccb5ad4  gcc/testsuite/obj-c++.dg/enhanced-proto-1.mm
  407cf4a13a526188246e3f874ce7ac48  gcc/testsuite/obj-c++.dg/enhanced-proto-2.mm
  3f2a93d293bef7fad64048537a3de594  gcc/testsuite/obj-c++.dg/except-1.mm
--- 107286,107292 ----
  d1824307e85027695c7f1f621635962f  gcc/testsuite/obj-c++.dg/encode-6.mm
  e8f3db69a8847b70c8bc969edd78dbb2  gcc/testsuite/obj-c++.dg/encode-7.mm
  7a1184e853bc44d526f960ab5978e148  gcc/testsuite/obj-c++.dg/encode-8.mm
! adb80618556ad5fbbf92001a241e0d74  gcc/testsuite/obj-c++.dg/encode-9.mm
  e5b9f9a44ce01382be2feb246ccb5ad4  gcc/testsuite/obj-c++.dg/enhanced-proto-1.mm
  407cf4a13a526188246e3f874ce7ac48  gcc/testsuite/obj-c++.dg/enhanced-proto-2.mm
  3f2a93d293bef7fad64048537a3de594  gcc/testsuite/obj-c++.dg/except-1.mm
*************** d63212a2005a351146de7c5fea07a9f5  gcc/te
*** 97851,97856 ****
--- 107320,107326 ----
  75cc55de841b4de6d06a46e13f5f7bfe  gcc/testsuite/obj-c++.dg/gnu-runtime-1.mm
  003f433c2c1cd9b8db81e61ca94d311b  gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm
  000a9198807c2e4ce1ba284e1a6e79ed  gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm
+ ef88f4e8a4bd8eed6adebfaac88df092  gcc/testsuite/obj-c++.dg/has-feature.mm
  7c48c7f2a3dad4cf8c991c6d780ecc5d  gcc/testsuite/obj-c++.dg/invalid-method-2.mm
  9c81b01209a656cc36ac861574867c96  gcc/testsuite/obj-c++.dg/invalid-type-1.mm
  9aa795d86a9b5053208440819dc1082c  gcc/testsuite/obj-c++.dg/isa-field-1.mm
*************** e2f09d3bd8c76cb2cc3877eabe1635a2  gcc/te
*** 97865,97871 ****
  e0ee2e0ef377f377a4b6c0f76eb28be4  gcc/testsuite/obj-c++.dg/local-decl-1.mm
  237edc221dc0cb73012b6f771c679099  gcc/testsuite/obj-c++.dg/lookup-1.mm
  a18e5d5b1c772fda466670d9a820b3af  gcc/testsuite/obj-c++.dg/lookup-2.mm
! 9112dff76a736d160cb63da4391f1ce2  gcc/testsuite/obj-c++.dg/lto/lto.exp
  ed2d21312e666f3bbed404bcac3dc94a  gcc/testsuite/obj-c++.dg/lto/trivial-1_0.mm
  50dff087071e306c9a5b45faaf24d2e9  gcc/testsuite/obj-c++.dg/method-1.mm
  19f8317903ba8bee4bf9fa945f98478d  gcc/testsuite/obj-c++.dg/method-10.mm
--- 107335,107341 ----
  e0ee2e0ef377f377a4b6c0f76eb28be4  gcc/testsuite/obj-c++.dg/local-decl-1.mm
  237edc221dc0cb73012b6f771c679099  gcc/testsuite/obj-c++.dg/lookup-1.mm
  a18e5d5b1c772fda466670d9a820b3af  gcc/testsuite/obj-c++.dg/lookup-2.mm
! e67abbbc745e57d904515d56daa74d7c  gcc/testsuite/obj-c++.dg/lto/lto.exp
  ed2d21312e666f3bbed404bcac3dc94a  gcc/testsuite/obj-c++.dg/lto/trivial-1_0.mm
  50dff087071e306c9a5b45faaf24d2e9  gcc/testsuite/obj-c++.dg/method-1.mm
  19f8317903ba8bee4bf9fa945f98478d  gcc/testsuite/obj-c++.dg/method-10.mm
*************** bb8ccf448c201adbf05356ac551899fb  gcc/te
*** 97906,97912 ****
  1c39d0d9e54d7c124e4e36d7ac5c8033  gcc/testsuite/obj-c++.dg/objc-gc-3.mm
  bd3b42583db47ebcc7fac037f85f00ed  gcc/testsuite/obj-c++.dg/overload-1.mm
  e84cd2640f9e4f66e445c60cecc3bfd2  gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm
! 6b8c639decae13d737ff683a8dc69e6d  gcc/testsuite/obj-c++.dg/plugin/plugin.exp
  a1ff757de40d44fb3868d406ed01c4eb  gcc/testsuite/obj-c++.dg/pr101666-0.mm
  339a76362d0703671d6ddc07066f2d95  gcc/testsuite/obj-c++.dg/pr101666-1.mm
  7b3270d7548d00c42ba59f5769932087  gcc/testsuite/obj-c++.dg/pr101666.inc
--- 107376,107382 ----
  1c39d0d9e54d7c124e4e36d7ac5c8033  gcc/testsuite/obj-c++.dg/objc-gc-3.mm
  bd3b42583db47ebcc7fac037f85f00ed  gcc/testsuite/obj-c++.dg/overload-1.mm
  e84cd2640f9e4f66e445c60cecc3bfd2  gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm
! dae98a2760ece0386fc5eaec9de0f146  gcc/testsuite/obj-c++.dg/plugin/plugin.exp
  a1ff757de40d44fb3868d406ed01c4eb  gcc/testsuite/obj-c++.dg/pr101666-0.mm
  339a76362d0703671d6ddc07066f2d95  gcc/testsuite/obj-c++.dg/pr101666-1.mm
  7b3270d7548d00c42ba59f5769932087  gcc/testsuite/obj-c++.dg/pr101666.inc
*************** a8c4b8171533defe44e443926dc705ce  gcc/te
*** 97998,98004 ****
  46896a53d202d39ebcdefc0f78554362  gcc/testsuite/obj-c++.dg/property/property-neg-5.mm
  2aabf1a0c895ae7fab2963b19790d1d1  gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
  b30232e7701d5769f0f353657f947392  gcc/testsuite/obj-c++.dg/property/property-neg-7.mm
! 359918304d203bc902b008425e2335da  gcc/testsuite/obj-c++.dg/property/property.exp
  810709bcc80423d41b2bda976147cc80  gcc/testsuite/obj-c++.dg/property/synthesize-1.mm
  aecddf447ec5f56ba7c209cb10a65ad6  gcc/testsuite/obj-c++.dg/property/synthesize-10.mm
  6603b6e3c23698004b66a8469e6c3ff6  gcc/testsuite/obj-c++.dg/property/synthesize-11.mm
--- 107468,107474 ----
  46896a53d202d39ebcdefc0f78554362  gcc/testsuite/obj-c++.dg/property/property-neg-5.mm
  2aabf1a0c895ae7fab2963b19790d1d1  gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
  b30232e7701d5769f0f353657f947392  gcc/testsuite/obj-c++.dg/property/property-neg-7.mm
! 38c9e545e54c4dde4c30b1241b69e155  gcc/testsuite/obj-c++.dg/property/property.exp
  810709bcc80423d41b2bda976147cc80  gcc/testsuite/obj-c++.dg/property/synthesize-1.mm
  aecddf447ec5f56ba7c209cb10a65ad6  gcc/testsuite/obj-c++.dg/property/synthesize-10.mm
  6603b6e3c23698004b66a8469e6c3ff6  gcc/testsuite/obj-c++.dg/property/synthesize-11.mm
*************** c2f326ebd57afc69cfee9d8f6b441323  gcc/te
*** 98047,98053 ****
  a9aabe53382bdf1de0612f8bcf7ef0eb  gcc/testsuite/obj-c++.dg/strings/const-str-6.mm
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/obj-c++.dg/strings/strings-1.mm
  acda44b06216ac119f6bf3a2e4b8cb98  gcc/testsuite/obj-c++.dg/strings/strings-2.mm
! ae7685f116096035a38ef3c92e29f93c  gcc/testsuite/obj-c++.dg/strings/strings.exp
  bb80c284ddffba9dd33509364a06732a  gcc/testsuite/obj-c++.dg/stubify-1.mm
  76876177abcae99b177994a5bd643e22  gcc/testsuite/obj-c++.dg/stubify-2.mm
  0827dd859e38ad893f65d76bf7a5b5e1  gcc/testsuite/obj-c++.dg/super-class-1.mm
--- 107517,107523 ----
  a9aabe53382bdf1de0612f8bcf7ef0eb  gcc/testsuite/obj-c++.dg/strings/const-str-6.mm
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/obj-c++.dg/strings/strings-1.mm
  acda44b06216ac119f6bf3a2e4b8cb98  gcc/testsuite/obj-c++.dg/strings/strings-2.mm
! d5b0ee98696630ae9ef3583e8192a267  gcc/testsuite/obj-c++.dg/strings/strings.exp
  bb80c284ddffba9dd33509364a06732a  gcc/testsuite/obj-c++.dg/stubify-1.mm
  76876177abcae99b177994a5bd643e22  gcc/testsuite/obj-c++.dg/stubify-2.mm
  0827dd859e38ad893f65d76bf7a5b5e1  gcc/testsuite/obj-c++.dg/super-class-1.mm
*************** d2c0463e1e05d168d9d004c74cec0610  gcc/te
*** 98099,98105 ****
  69c47926ef31db0bb79c5cd3cea4fa0b  gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm
  a826eb6d88698556688b1008a86574a6  gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
  38bba22e495d1876db60c1ae29146fbe  gcc/testsuite/obj-c++.dg/torture/strings/string1.mm
! 4e922285831e95ee33616015f5da9be9  gcc/testsuite/obj-c++.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/obj-c++.dg/torture/tls/diag-1.mm
  f1f7032c657f1d2102a3760375786139  gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm
  913caebef1028795e3b0bac01c9a87c0  gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm
--- 107569,107575 ----
  69c47926ef31db0bb79c5cd3cea4fa0b  gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm
  a826eb6d88698556688b1008a86574a6  gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
  38bba22e495d1876db60c1ae29146fbe  gcc/testsuite/obj-c++.dg/torture/strings/string1.mm
! f1ead70bfce085b5ec265ffa402c6800  gcc/testsuite/obj-c++.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/obj-c++.dg/torture/tls/diag-1.mm
  f1f7032c657f1d2102a3760375786139  gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm
  913caebef1028795e3b0bac01c9a87c0  gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm
*************** e16387e01018d3d54a2f32822682dac1  gcc/te
*** 98148,98154 ****
  4f3dd54a0c640d2b15ee1f79a8f18369  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h
  54ffd1bfa79cf5dc99b3df101a7cd2e6  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h
  68c1d47ef6919edabb48b6f50f1a237d  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h
! dc1b5416df768725686ab6df95dc7a40  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h
  5696d61d4f4781658d55b84d5095e034  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h
  6b38d99bc66484db832fe9f58f7b8c5b  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h
  b029cb9e81a51e8cdb7b9fbfdd1644a8  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h
--- 107618,107624 ----
  4f3dd54a0c640d2b15ee1f79a8f18369  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h
  54ffd1bfa79cf5dc99b3df101a7cd2e6  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h
  68c1d47ef6919edabb48b6f50f1a237d  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h
! 45941cd12df99357b4e75b6362c3612a  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h
  5696d61d4f4781658d55b84d5095e034  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h
  6b38d99bc66484db832fe9f58f7b8c5b  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h
  b029cb9e81a51e8cdb7b9fbfdd1644a8  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h
*************** dc8c5ec7b9abe64c54eabc2d60a81066  gcc/te
*** 98165,98171 ****
  a08e081524ab6799e394768da76968d3  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h
  ce8c053d2554352e55b35ae330cd5126  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h
  79f58fc20c1f2dfd98bc097643134fed  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
! 40e18d3e20882cd94f1cc42c804f27d7  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
  ac76ddcf9ed6ab3c92c31559244da096  gcc/testsuite/objc-obj-c++-shared/next-abi.h
  f3501304cb4e501ca831a9c4069efbe3  gcc/testsuite/objc-obj-c++-shared/nsconstantstring-class-impl.h
  885a572c6cebc62b2c85d81b1dfdb205  gcc/testsuite/objc-obj-c++-shared/nsconstantstring-class-impl.m
--- 107635,107641 ----
  a08e081524ab6799e394768da76968d3  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h
  ce8c053d2554352e55b35ae330cd5126  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h
  79f58fc20c1f2dfd98bc097643134fed  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
! 15ecf6aec8cc14817d21fc8d803a52c0  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
  ac76ddcf9ed6ab3c92c31559244da096  gcc/testsuite/objc-obj-c++-shared/next-abi.h
  f3501304cb4e501ca831a9c4069efbe3  gcc/testsuite/objc-obj-c++-shared/nsconstantstring-class-impl.h
  885a572c6cebc62b2c85d81b1dfdb205  gcc/testsuite/objc-obj-c++-shared/nsconstantstring-class-impl.m
*************** cb269bc755b2a67364f3313e8faf3f29  gcc/te
*** 98180,98192 ****
  3b8fd8c2ee22e0099d80e4fa89e2befc  gcc/testsuite/objc.dg/alias.m
  d1b6c3f1ea4ae2a41059c91bb5a2b852  gcc/testsuite/objc.dg/anon-1.m
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/objc.dg/at-class-1.m
! bd8d1d50857ed5171a5b8124d7d6118e  gcc/testsuite/objc.dg/attributes/attributes.exp
  fd95a72920339d2253044c54f9ac9ea5  gcc/testsuite/objc.dg/attributes/categ-attribute-1.m
  56f3aac5dbec91275669f63a33cfbf9b  gcc/testsuite/objc.dg/attributes/categ-attribute-2.m
  aec01e9422e920606a28dcc46f3f42c4  gcc/testsuite/objc.dg/attributes/class-attribute-1.m
  7249ff36231a7f031267291c8fe23c6c  gcc/testsuite/objc.dg/attributes/class-attribute-2.m
  4aa7093ca98a1e5b12087c90f89d52eb  gcc/testsuite/objc.dg/attributes/class-attribute-3.m
! fa8cba7f3fa3d157eaf75ed584efc714  gcc/testsuite/objc.dg/attributes/gnu2x-attr-syntax-1.m
  e8b64cc682d08a7772cf42b9896e04dc  gcc/testsuite/objc.dg/attributes/invalid-attribute-1.m
  41977a70fb1d19b1d31adef5b4f246c8  gcc/testsuite/objc.dg/attributes/method-attribute-1.m
  e7f36ede3524b56b226f26f29dca005b  gcc/testsuite/objc.dg/attributes/method-attribute-2.m
--- 107650,107662 ----
  3b8fd8c2ee22e0099d80e4fa89e2befc  gcc/testsuite/objc.dg/alias.m
  d1b6c3f1ea4ae2a41059c91bb5a2b852  gcc/testsuite/objc.dg/anon-1.m
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/objc.dg/at-class-1.m
! 660e0db5bbc970d8699391a721936bd8  gcc/testsuite/objc.dg/attributes/attributes.exp
  fd95a72920339d2253044c54f9ac9ea5  gcc/testsuite/objc.dg/attributes/categ-attribute-1.m
  56f3aac5dbec91275669f63a33cfbf9b  gcc/testsuite/objc.dg/attributes/categ-attribute-2.m
  aec01e9422e920606a28dcc46f3f42c4  gcc/testsuite/objc.dg/attributes/class-attribute-1.m
  7249ff36231a7f031267291c8fe23c6c  gcc/testsuite/objc.dg/attributes/class-attribute-2.m
  4aa7093ca98a1e5b12087c90f89d52eb  gcc/testsuite/objc.dg/attributes/class-attribute-3.m
! 3072811a4f22d4ae3f921569abfbf9b6  gcc/testsuite/objc.dg/attributes/gnu23-attr-syntax-1.m
  e8b64cc682d08a7772cf42b9896e04dc  gcc/testsuite/objc.dg/attributes/invalid-attribute-1.m
  41977a70fb1d19b1d31adef5b4f246c8  gcc/testsuite/objc.dg/attributes/method-attribute-1.m
  e7f36ede3524b56b226f26f29dca005b  gcc/testsuite/objc.dg/attributes/method-attribute-2.m
*************** d003d40deb339dbfa921002b6b547ca0  gcc/te
*** 98202,98208 ****
  d4948be69b10d9cb7263cd3b9c0e0997  gcc/testsuite/objc.dg/attributes/method-unavailable-2.m
  6bc550355c14c89378477f66a0905538  gcc/testsuite/objc.dg/attributes/method-unavailable-3.m
  8a7dbe08151062f5fb8bed41638cfc48  gcc/testsuite/objc.dg/attributes/nsobject-01.m
! e270c7301b6089db4faf82ffa2312cd1  gcc/testsuite/objc.dg/attributes/nullability-00.m
  fb00192fab0f98f0fa41c0e37926c2d7  gcc/testsuite/objc.dg/attributes/objc-exception-1.m
  e211266f939a9ca391cf0df14a0a8a60  gcc/testsuite/objc.dg/attributes/parameter-attribute-1.m
  e6effd36a44836119bd34a000174f95b  gcc/testsuite/objc.dg/attributes/parameter-attribute-2.m
--- 107672,107678 ----
  d4948be69b10d9cb7263cd3b9c0e0997  gcc/testsuite/objc.dg/attributes/method-unavailable-2.m
  6bc550355c14c89378477f66a0905538  gcc/testsuite/objc.dg/attributes/method-unavailable-3.m
  8a7dbe08151062f5fb8bed41638cfc48  gcc/testsuite/objc.dg/attributes/nsobject-01.m
! 6342c55ad17f0b576c550a99b5176bcb  gcc/testsuite/objc.dg/attributes/nullability-00.m
  fb00192fab0f98f0fa41c0e37926c2d7  gcc/testsuite/objc.dg/attributes/objc-exception-1.m
  e211266f939a9ca391cf0df14a0a8a60  gcc/testsuite/objc.dg/attributes/parameter-attribute-1.m
  e6effd36a44836119bd34a000174f95b  gcc/testsuite/objc.dg/attributes/parameter-attribute-2.m
*************** fcbd6d34fab967afc68044cbc6bebd90  gcc/te
*** 98247,98253 ****
  38a179920a287512b87250b596d328be  gcc/testsuite/objc.dg/demangle-1.m
  c0ab0e620febd282b5e9d035d15b3f89  gcc/testsuite/objc.dg/desig-init-1.m
  35496e95171f548a40cf930fea45d49f  gcc/testsuite/objc.dg/desig-init-2.m
! c8e19318f1e4f9600de0fcd505249da6  gcc/testsuite/objc.dg/dg.exp
  142353bbb63675a2f47a3552a35e052f  gcc/testsuite/objc.dg/duplicate-class-1.m
  e93baeeda9bc4b65e5eea748a076d816  gcc/testsuite/objc.dg/dwarf-1.m
  0a836d2fda427c66107feaabe420bcf3  gcc/testsuite/objc.dg/dwarf-2.m
--- 107717,107723 ----
  38a179920a287512b87250b596d328be  gcc/testsuite/objc.dg/demangle-1.m
  c0ab0e620febd282b5e9d035d15b3f89  gcc/testsuite/objc.dg/desig-init-1.m
  35496e95171f548a40cf930fea45d49f  gcc/testsuite/objc.dg/desig-init-2.m
! aaf8913ef324ad6942a164d1b160b0c7  gcc/testsuite/objc.dg/dg.exp
  142353bbb63675a2f47a3552a35e052f  gcc/testsuite/objc.dg/duplicate-class-1.m
  e93baeeda9bc4b65e5eea748a076d816  gcc/testsuite/objc.dg/dwarf-1.m
  0a836d2fda427c66107feaabe420bcf3  gcc/testsuite/objc.dg/dwarf-2.m
*************** d6ceb9e5422933a42952e7471490a22c  gcc/te
*** 98288,98294 ****
  7c045f543d3f86cd755c2403ac2b857b  gcc/testsuite/objc.dg/foreach-4.m
  7375677eeb7d2e390c8255ea9c8d3872  gcc/testsuite/objc.dg/foreach-5.m
  a885c8f555978e66b05e62d804b549cb  gcc/testsuite/objc.dg/foreach-6.m
! 1e3c46a7a9f039bc923261d246524616  gcc/testsuite/objc.dg/foreach-7.m
  b781603660372c9e686220c53409388d  gcc/testsuite/objc.dg/foreach-8.m
  397060022f9bf1c888022042ebe7a91c  gcc/testsuite/objc.dg/fsf-nsstring-format-1.m
  8aba13bcd9b3a4acf07da9c8c47cfb4a  gcc/testsuite/objc.dg/fsf-package-0.m
--- 107758,107764 ----
  7c045f543d3f86cd755c2403ac2b857b  gcc/testsuite/objc.dg/foreach-4.m
  7375677eeb7d2e390c8255ea9c8d3872  gcc/testsuite/objc.dg/foreach-5.m
  a885c8f555978e66b05e62d804b549cb  gcc/testsuite/objc.dg/foreach-6.m
! 6cebadecb1ba81e81d51660b5683e948  gcc/testsuite/objc.dg/foreach-7.m
  b781603660372c9e686220c53409388d  gcc/testsuite/objc.dg/foreach-8.m
  397060022f9bf1c888022042ebe7a91c  gcc/testsuite/objc.dg/fsf-nsstring-format-1.m
  8aba13bcd9b3a4acf07da9c8c47cfb4a  gcc/testsuite/objc.dg/fsf-package-0.m
*************** af1f88eec3b11606777ae67c0f56c07b  gcc/te
*** 98311,98317 ****
  db6ac9c4cab360de1e62ae24781a65aa  gcc/testsuite/objc.dg/gnu-encoding/generate-random.c
  a3ac98dcec269f59ea0f7ebc9b8c3297  gcc/testsuite/objc.dg/gnu-encoding/generate-random.h
  73fd2a43073b565b250e87dcce3fb9b1  gcc/testsuite/objc.dg/gnu-encoding/generate-random_r.c
! 5b7e5e3c7bd202b4c44c200dc946d3b9  gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp
  c41a6661b12b159d108661dd40bac309  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-1.h
  b602f2a3cc56cd39c738d2241938856f  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-1_test.h
  a66ec90d801aba24f196746609a41d7c  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c
--- 107781,107787 ----
  db6ac9c4cab360de1e62ae24781a65aa  gcc/testsuite/objc.dg/gnu-encoding/generate-random.c
  a3ac98dcec269f59ea0f7ebc9b8c3297  gcc/testsuite/objc.dg/gnu-encoding/generate-random.h
  73fd2a43073b565b250e87dcce3fb9b1  gcc/testsuite/objc.dg/gnu-encoding/generate-random_r.c
! 96fd4ce42a578858a0947433abd4527e  gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp
  c41a6661b12b159d108661dd40bac309  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-1.h
  b602f2a3cc56cd39c738d2241938856f  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-1_test.h
  a66ec90d801aba24f196746609a41d7c  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c
*************** fa1ab496151791f4ef05043e7c0b673c  gcc/te
*** 98319,98324 ****
--- 107789,107795 ----
  75cc55de841b4de6d06a46e13f5f7bfe  gcc/testsuite/objc.dg/gnu-runtime-1.m
  a10c57561f5023d1bc5813fb62b15e8f  gcc/testsuite/objc.dg/gnu-runtime-2.m
  cf495a272fe911f953544354d7af49e2  gcc/testsuite/objc.dg/gnu-runtime-3.m
+ febafb5ceeb1b769535d7b08ef9e8445  gcc/testsuite/objc.dg/has-feature.m
  6610c198e68db214bca9de5a0f6cfdec  gcc/testsuite/objc.dg/headers.m
  ee5085162cebc7a8efb9f3fb24b90cb1  gcc/testsuite/objc.dg/id-1.m
  697c9889104dbd42200e3eaeb739692d  gcc/testsuite/objc.dg/image-info.m
*************** f95bd6372c4bf77d12d57a628fc5bb39  gcc/te
*** 98348,98354 ****
  d770885e56a7430b48fc3465970fbda1  gcc/testsuite/objc.dg/local-decl-1.m
  1d93e9b716a93515c5ab71dc3394158e  gcc/testsuite/objc.dg/local-decl-2.m
  5f8d8d488322be4a5c33e704a91212ff  gcc/testsuite/objc.dg/lookup-1.m
! 5a155f903f396be10e2b3454c858b3f2  gcc/testsuite/objc.dg/lto/lto.exp
  a18c6d04d0759ee5d6c7e2b9e7fbe288  gcc/testsuite/objc.dg/lto/trivial-1_0.m
  b1a80cc8c0c5d5294699c5aeb20817a4  gcc/testsuite/objc.dg/member-1.m
  c1908e6ec96975ce2e11da3796fb69d6  gcc/testsuite/objc.dg/method-1.m
--- 107819,107825 ----
  d770885e56a7430b48fc3465970fbda1  gcc/testsuite/objc.dg/local-decl-1.m
  1d93e9b716a93515c5ab71dc3394158e  gcc/testsuite/objc.dg/local-decl-2.m
  5f8d8d488322be4a5c33e704a91212ff  gcc/testsuite/objc.dg/lookup-1.m
! 832bf474e207bb1589bbe0ed296f6af3  gcc/testsuite/objc.dg/lto/lto.exp
  a18c6d04d0759ee5d6c7e2b9e7fbe288  gcc/testsuite/objc.dg/lto/trivial-1_0.m
  b1a80cc8c0c5d5294699c5aeb20817a4  gcc/testsuite/objc.dg/member-1.m
  c1908e6ec96975ce2e11da3796fb69d6  gcc/testsuite/objc.dg/method-1.m
*************** d6bb76e151385d5dcc0bccac5e79fa6e  gcc/te
*** 98401,98409 ****
  35fb6a51ab2ee402a296c57fae46dd84  gcc/testsuite/objc.dg/param-1.m
  8c15bc469e56fdb17a7b24540bf21491  gcc/testsuite/objc.dg/pch/interface-1.hs
  71da4e106e38b3671b4f4ae8a237e55f  gcc/testsuite/objc.dg/pch/interface-1.m
! 11a34cbbbdf0e82a6f66068c7575203f  gcc/testsuite/objc.dg/pch/pch.exp
  9d6541dc0a9955231b38937f98c5b78a  gcc/testsuite/objc.dg/plugin/diagnostic-test-expressions-1.m
! 8ef5e07bf09eda6da75a11f7c256daa6  gcc/testsuite/objc.dg/plugin/plugin.exp
  a1ff757de40d44fb3868d406ed01c4eb  gcc/testsuite/objc.dg/pr101666-0.m
  339a76362d0703671d6ddc07066f2d95  gcc/testsuite/objc.dg/pr101666-1.m
  c963db6673c4b0358e639bc17180a2a0  gcc/testsuite/objc.dg/pr101666.inc
--- 107872,107880 ----
  35fb6a51ab2ee402a296c57fae46dd84  gcc/testsuite/objc.dg/param-1.m
  8c15bc469e56fdb17a7b24540bf21491  gcc/testsuite/objc.dg/pch/interface-1.hs
  71da4e106e38b3671b4f4ae8a237e55f  gcc/testsuite/objc.dg/pch/interface-1.m
! fcefac9f780938f3e79e027e98eb0e2a  gcc/testsuite/objc.dg/pch/pch.exp
  9d6541dc0a9955231b38937f98c5b78a  gcc/testsuite/objc.dg/plugin/diagnostic-test-expressions-1.m
! ab68af4e80ff541b2c890bb76817684b  gcc/testsuite/objc.dg/plugin/plugin.exp
  a1ff757de40d44fb3868d406ed01c4eb  gcc/testsuite/objc.dg/pr101666-0.m
  339a76362d0703671d6ddc07066f2d95  gcc/testsuite/objc.dg/pr101666-1.m
  c963db6673c4b0358e639bc17180a2a0  gcc/testsuite/objc.dg/pr101666.inc
*************** baf9036868eba04aebdd06e708a665ec  gcc/te
*** 98500,98506 ****
  46896a53d202d39ebcdefc0f78554362  gcc/testsuite/objc.dg/property/property-neg-5.m
  ea4fb9865bd07122883de2bcf725a13f  gcc/testsuite/objc.dg/property/property-neg-6.m
  b30232e7701d5769f0f353657f947392  gcc/testsuite/objc.dg/property/property-neg-7.m
! 82e4fb0a6f01657d2094917f74353f44  gcc/testsuite/objc.dg/property/property.exp
  366ec4311c5e9d93dcfbbd560da544a7  gcc/testsuite/objc.dg/property/synthesize-1.m
  aecddf447ec5f56ba7c209cb10a65ad6  gcc/testsuite/objc.dg/property/synthesize-10.m
  23e9117b246f1a4889c17099f6ccf5bf  gcc/testsuite/objc.dg/property/synthesize-11.m
--- 107971,107977 ----
  46896a53d202d39ebcdefc0f78554362  gcc/testsuite/objc.dg/property/property-neg-5.m
  ea4fb9865bd07122883de2bcf725a13f  gcc/testsuite/objc.dg/property/property-neg-6.m
  b30232e7701d5769f0f353657f947392  gcc/testsuite/objc.dg/property/property-neg-7.m
! c840b764ffbc270429bd265ab5f44b2b  gcc/testsuite/objc.dg/property/property.exp
  366ec4311c5e9d93dcfbbd560da544a7  gcc/testsuite/objc.dg/property/synthesize-1.m
  aecddf447ec5f56ba7c209cb10a65ad6  gcc/testsuite/objc.dg/property/synthesize-10.m
  23e9117b246f1a4889c17099f6ccf5bf  gcc/testsuite/objc.dg/property/synthesize-11.m
*************** c531fbd47d6cd6f34fd4a1161fe41d36  gcc/te
*** 98549,98555 ****
  b5566392b676a4381c9fba425af46d22  gcc/testsuite/objc.dg/special/load-category-3.h
  531fa8066e9e519b7cc77fe0e99f2692  gcc/testsuite/objc.dg/special/load-category-3.m
  84e0d0ac9e785e6c7a2c3961f9fef351  gcc/testsuite/objc.dg/special/load-category-3a.m
! d4ee2ba4848ec74d0f8d2762dbeb5110  gcc/testsuite/objc.dg/special/special.exp
  a771ad2e4109d3b6d673ea6ae3dfaa4f  gcc/testsuite/objc.dg/special/unclaimed-category-1.h
  a3f5ac774c5045ab1807af23f8bafeb5  gcc/testsuite/objc.dg/special/unclaimed-category-1.m
  fd73b19f16303df474ad98a05e01cd6a  gcc/testsuite/objc.dg/special/unclaimed-category-1a.m
--- 108020,108026 ----
  b5566392b676a4381c9fba425af46d22  gcc/testsuite/objc.dg/special/load-category-3.h
  531fa8066e9e519b7cc77fe0e99f2692  gcc/testsuite/objc.dg/special/load-category-3.m
  84e0d0ac9e785e6c7a2c3961f9fef351  gcc/testsuite/objc.dg/special/load-category-3a.m
! 7872eb5471c66cf382498cd594c9bf8b  gcc/testsuite/objc.dg/special/special.exp
  a771ad2e4109d3b6d673ea6ae3dfaa4f  gcc/testsuite/objc.dg/special/unclaimed-category-1.h
  a3f5ac774c5045ab1807af23f8bafeb5  gcc/testsuite/objc.dg/special/unclaimed-category-1.m
  fd73b19f16303df474ad98a05e01cd6a  gcc/testsuite/objc.dg/special/unclaimed-category-1a.m
*************** d14e2bc0e149efd8ad9b13c9f1e48081  gcc/te
*** 98566,98572 ****
  1b52a4aa3cd0d5062e03b48964ddcb0b  gcc/testsuite/objc.dg/strings/const-str-6.m
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/objc.dg/strings/strings-1.m
  5406714e0710bd54d86b2186d1cb98fa  gcc/testsuite/objc.dg/strings/strings-2.m
! b75a88d122fd57b746f932471ad694fa  gcc/testsuite/objc.dg/strings/strings.exp
  08a5ae539a0108908d97abd54da7b150  gcc/testsuite/objc.dg/stubify-1.m
  e62d1c240e660f200afe1c83315d23c2  gcc/testsuite/objc.dg/stubify-2.m
  7e68d7fe39ddc6065769f26089764fd6  gcc/testsuite/objc.dg/super-class-1.m
--- 108037,108043 ----
  1b52a4aa3cd0d5062e03b48964ddcb0b  gcc/testsuite/objc.dg/strings/const-str-6.m
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/objc.dg/strings/strings-1.m
  5406714e0710bd54d86b2186d1cb98fa  gcc/testsuite/objc.dg/strings/strings-2.m
! b1f977e76cb9ea65fd2a4d4e744a2ef6  gcc/testsuite/objc.dg/strings/strings.exp
  08a5ae539a0108908d97abd54da7b150  gcc/testsuite/objc.dg/stubify-1.m
  e62d1c240e660f200afe1c83315d23c2  gcc/testsuite/objc.dg/stubify-2.m
  7e68d7fe39ddc6065769f26089764fd6  gcc/testsuite/objc.dg/super-class-1.m
*************** a8a9f4264b042cb130bb43f35157c620  gcc/te
*** 98604,98610 ****
  f559fec747b34a07335a33efaef1d635  gcc/testsuite/objc.dg/torture/strings/string2.m
  8d3378c509e4ec126b88298049f5b787  gcc/testsuite/objc.dg/torture/strings/string3.m
  5b27fadf5e692e2a9972369e31bf0ba1  gcc/testsuite/objc.dg/torture/strings/string4.m
! 862aaf7c4db02cfff8379f7d0368b2cb  gcc/testsuite/objc.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/objc.dg/torture/tls/diag-1.m
  372cfaf699d0b2f15663aaae9b213546  gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
  8affcfa2f40a88a07d936c0472352a61  gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
--- 108075,108081 ----
  f559fec747b34a07335a33efaef1d635  gcc/testsuite/objc.dg/torture/strings/string2.m
  8d3378c509e4ec126b88298049f5b787  gcc/testsuite/objc.dg/torture/strings/string3.m
  5b27fadf5e692e2a9972369e31bf0ba1  gcc/testsuite/objc.dg/torture/strings/string4.m
! e0e5ff77a1af5af98cb0802b9aa0616e  gcc/testsuite/objc.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/objc.dg/torture/tls/diag-1.m
  372cfaf699d0b2f15663aaae9b213546  gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
  8affcfa2f40a88a07d936c0472352a61  gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
*************** f0a85fb06bc40a59b3b67e37b68bf8a9  gcc/te
*** 98639,98645 ****
  af0fd8f33da4a0b997aa6096000deff3  gcc/testsuite/objc.dg/zero-link-3.m
  0d71c48c831bf5882b80c4cd6ca9d9d8  gcc/testsuite/objc/compile/20011211-1.m
  9b70591be7f91f15d0a53c89bdc94bf4  gcc/testsuite/objc/compile/20060406-1.m
! 7640c4ea80b77fa397cfaea37b3fee98  gcc/testsuite/objc/compile/compile.exp
  2144ecc4331915c2481c0a1f5701d0e2  gcc/testsuite/objc/compile/method-1.m
  41f9da1aa9876935f010f6e2b17679e6  gcc/testsuite/objc/compile/pr18406.m
  e206c4c7af6f1b10d643ca659d7ce5fb  gcc/testsuite/objc/compile/pr64668.m
--- 108110,108116 ----
  af0fd8f33da4a0b997aa6096000deff3  gcc/testsuite/objc.dg/zero-link-3.m
  0d71c48c831bf5882b80c4cd6ca9d9d8  gcc/testsuite/objc/compile/20011211-1.m
  9b70591be7f91f15d0a53c89bdc94bf4  gcc/testsuite/objc/compile/20060406-1.m
! 1da48d9510beea557d81ea159afabef2  gcc/testsuite/objc/compile/compile.exp
  2144ecc4331915c2481c0a1f5701d0e2  gcc/testsuite/objc/compile/method-1.m
  41f9da1aa9876935f010f6e2b17679e6  gcc/testsuite/objc/compile/pr18406.m
  e206c4c7af6f1b10d643ca659d7ce5fb  gcc/testsuite/objc/compile/pr64668.m
*************** bee60356c32af863f8417a00f203538f  gcc/te
*** 98697,98703 ****
  0dfc21e690c7625bdcd6ecd58b521009  gcc/testsuite/objc/execute/enumeration-1.m
  906ad68029b532a36a68c47b781f6f77  gcc/testsuite/objc/execute/enumeration-2.m
  0add90ae8cf075ffca747fd33e604e11  gcc/testsuite/objc/execute/exceptions/catchall-1.m
! 62ae614777e32e03559645be75688284  gcc/testsuite/objc/execute/exceptions/exceptions.exp
  9cd4ece00a81d13b805c9ad514ef2cf8  gcc/testsuite/objc/execute/exceptions/finally-1.m
  0f41feff3df5bd47c204ee5d8044ea2a  gcc/testsuite/objc/execute/exceptions/foward-1.m
  e9b8822effadb281ff59150cc70ef17f  gcc/testsuite/objc/execute/exceptions/foward-1.x
--- 108168,108174 ----
  0dfc21e690c7625bdcd6ecd58b521009  gcc/testsuite/objc/execute/enumeration-1.m
  906ad68029b532a36a68c47b781f6f77  gcc/testsuite/objc/execute/enumeration-2.m
  0add90ae8cf075ffca747fd33e604e11  gcc/testsuite/objc/execute/exceptions/catchall-1.m
! ec94c75219765f128d030182b81188fa  gcc/testsuite/objc/execute/exceptions/exceptions.exp
  9cd4ece00a81d13b805c9ad514ef2cf8  gcc/testsuite/objc/execute/exceptions/finally-1.m
  0f41feff3df5bd47c204ee5d8044ea2a  gcc/testsuite/objc/execute/exceptions/foward-1.m
  e9b8822effadb281ff59150cc70ef17f  gcc/testsuite/objc/execute/exceptions/foward-1.x
*************** bece99d6de6f0bd4152de59cd8f1d13c  gcc/te
*** 98707,98713 ****
  a70e5bfb678efb233f3a7e3aedf20e95  gcc/testsuite/objc/execute/exceptions/pr31281.m
  dfa856dff7b9f08e7146dc28cfca396d  gcc/testsuite/objc/execute/exceptions/throw-nil.m
  e2d7fb111f167f00bc00103220075df5  gcc/testsuite/objc/execute/exceptions/trivial.m
! 10fb1900a5a1a7e2e6a42955b20ae986  gcc/testsuite/objc/execute/execute.exp
  cad3b31ba4ec282f94aee3275ac9323e  gcc/testsuite/objc/execute/fdecl.m
  1a92e165604e454883c8a1a3e560c7a2  gcc/testsuite/objc/execute/formal_protocol-1.m
  fae68af182768d87f73efa38e36d5ba3  gcc/testsuite/objc/execute/formal_protocol-2.m
--- 108178,108184 ----
  a70e5bfb678efb233f3a7e3aedf20e95  gcc/testsuite/objc/execute/exceptions/pr31281.m
  dfa856dff7b9f08e7146dc28cfca396d  gcc/testsuite/objc/execute/exceptions/throw-nil.m
  e2d7fb111f167f00bc00103220075df5  gcc/testsuite/objc/execute/exceptions/trivial.m
! 41e3330bcd77763691ada537cd5876b7  gcc/testsuite/objc/execute/execute.exp
  cad3b31ba4ec282f94aee3275ac9323e  gcc/testsuite/objc/execute/fdecl.m
  1a92e165604e454883c8a1a3e560c7a2  gcc/testsuite/objc/execute/formal_protocol-1.m
  fae68af182768d87f73efa38e36d5ba3  gcc/testsuite/objc/execute/formal_protocol-2.m
*************** cc86f493e7e4e40194cc20d75e4ca8e9  gcc/te
*** 98748,98798 ****
  10d4ea2c47febed0bbc5688f380b3439  gcc/testsuite/objc/execute/static-2.m
  a57e521085412bbde60e78229ace4fd5  gcc/testsuite/objc/execute/trivial.m
  2d60a6650416d3bcd6a3f5f1fb61dece  gcc/testsuite/objc/execute/va_method.m
! 8a4f7c35e5b0158c9e80de5206d33f94  gcc/testsuite/rust/bounds1.rs
! 06ba0a13e79d045cec2c0e8e69249bfd  gcc/testsuite/rust/compile/abi-options1.rs
  901b9d713edac630ba6ea674c4450902  gcc/testsuite/rust/compile/array3.rs
  ec15ff347aa69c536e7e791163bb9e73  gcc/testsuite/rust/compile/array_empty_list.rs
! 4407f370fc8ef22a64295446039677f5  gcc/testsuite/rust/compile/arrays1.rs
! c8b42d6dfd427f73e97eaef157428dba  gcc/testsuite/rust/compile/arrays2.rs
  6d43a3c855de9a784b5daf14d332bb2c  gcc/testsuite/rust/compile/attr-mismatch-crate-name.rs
  e3c9ec33d7df70539fa80809be2ce0c9  gcc/testsuite/rust/compile/attr_cold.rs
  d9be47bf725d64b4d76c4e5de43dd2da  gcc/testsuite/rust/compile/attr_deprecated.rs
! 9279a73fb5d92e345916699f6a14ae9b  gcc/testsuite/rust/compile/attr_deprecated_2.rs
! 7673a55108cb36ca1835b653cd9d9d0d  gcc/testsuite/rust/compile/bad-crate-name.rs
  c7ba9642fee029930b93bde0be0044d4  gcc/testsuite/rust/compile/bad=file-name.rs
! 22b7be0cee647bdbcf3f8fc9132a35de  gcc/testsuite/rust/compile/bad_as_bool_char.rs
  02b466f42629715260cc948eeaf75e56  gcc/testsuite/rust/compile/bad_file_name.txt.rs
! 04332c2d6761079811e1a2e7df684f11  gcc/testsuite/rust/compile/bad_inner_doc.rs
! 74fb16b6d0af58376b35940fe67c13ac  gcc/testsuite/rust/compile/bad_pub_enumitems.rs
  822aea03a6aa5bb6befd197718e43ddd  gcc/testsuite/rust/compile/bad_stmt_enums.rs
  9f8b43272318a741168b07f0e891701c  gcc/testsuite/rust/compile/bad_toplevel_enums.rs
  0d119d70ef8a831773de61a39d852ca9  gcc/testsuite/rust/compile/bad_tuple_index.rs
! 3d2bf26b32e2669c0c35dfb77814e1fe  gcc/testsuite/rust/compile/bad_type1.rs
! a8a8f11ee40a5eb313b2c52c1234f020  gcc/testsuite/rust/compile/bad_type2.rs
  e42d99383a25c9730ef3d807441d0b0c  gcc/testsuite/rust/compile/bounds.rs
! edbb5ba7614424915583840f41db92d5  gcc/testsuite/rust/compile/break1.rs
! f41c573cbe90d2d9eec484f2ed219129  gcc/testsuite/rust/compile/break2.rs
! 62f89c9f86ff9a57de1bddd42dbf1af2  gcc/testsuite/rust/compile/builtin_macro_compile_error.rs
! 79b04d50881917d513214f82ea9ada5e  gcc/testsuite/rust/compile/builtin_macro_concat.rs
! 39bb4764af42f2e3a02e6bd375155bd0  gcc/testsuite/rust/compile/builtin_macro_eager1.rs
! 2813e592e81d073cfbfb3e1933cb2306  gcc/testsuite/rust/compile/builtin_macro_eager2.rs
! a1f38f2481de0a8f62553c38ffbc44d4  gcc/testsuite/rust/compile/builtin_macro_env.rs
! c5434e3f4ff4a16b6f8d9eda51f5926e  gcc/testsuite/rust/compile/builtin_macro_include_bytes.rs
! 5b96a3e4443c2c31ff0ce45cd239aa88  gcc/testsuite/rust/compile/builtin_macro_include_str.rs
! 91d3d08b41737d6757fb8f34757490d2  gcc/testsuite/rust/compile/builtin_macro_not_found.rs
! 39e81c71b446080af08cc5d177733aa4  gcc/testsuite/rust/compile/builtin_macro_recurse2.rs
! 34d772626e30520a51feaedc952b4677  gcc/testsuite/rust/compile/bytecharstring.rs
! 183f67621b7f28edd620bcba0dce8219  gcc/testsuite/rust/compile/canonical_paths1.rs
! 7bc504860f2dbe84d0a4cd0c1fd975fe  gcc/testsuite/rust/compile/cast1.rs
  2648512ce6f2397fa9b2b9b663774782  gcc/testsuite/rust/compile/cfg1.rs
! d55a94558eebc55b2cf9fa6570d5593f  gcc/testsuite/rust/compile/cfg2.rs
  c73d64b77895517ecd6f3c68791c8a69  gcc/testsuite/rust/compile/cfg3.rs
  56ded507756f2a2acbcd3e159441eb69  gcc/testsuite/rust/compile/cfg4.rs
  51f569c35a6280f5867ea405af7c5ff0  gcc/testsuite/rust/compile/cfg5.rs
  2bb5cf15b07de99923afb39cf1aca432  gcc/testsuite/rust/compile/closure_move_expr.rs
! ed5d2cfa69a4e1a3e09e45ccc2af8887  gcc/testsuite/rust/compile/compile.exp
  26906781b85cc46264ef3e39029497f7  gcc/testsuite/rust/compile/complex-path1.rs
! 66ad56c8b2e0051778862304f596a483  gcc/testsuite/rust/compile/const-issue1440.rs
  35b2389068cb824405eb2d9143bcbaf5  gcc/testsuite/rust/compile/const1.rs
  20a071af13cc659f510fa8e507de1155  gcc/testsuite/rust/compile/const10.rs
  7e8914522c5084bfdf3d535d03eceba9  gcc/testsuite/rust/compile/const2.rs
--- 108219,108299 ----
  10d4ea2c47febed0bbc5688f380b3439  gcc/testsuite/objc/execute/static-2.m
  a57e521085412bbde60e78229ace4fd5  gcc/testsuite/objc/execute/trivial.m
  2d60a6650416d3bcd6a3f5f1fb61dece  gcc/testsuite/objc/execute/va_method.m
! 8095ed7e65a58371ba451265d0c77a81  gcc/testsuite/rust/compile/abi-options1.rs
! d6cef0e2a9876718ef7a3fd4beeb6a17  gcc/testsuite/rust/compile/abi-vardaic.rs
! 6e019d4b8b35700f65898fed199587a1  gcc/testsuite/rust/compile/all-cast.rs
  901b9d713edac630ba6ea674c4450902  gcc/testsuite/rust/compile/array3.rs
+ d2c5ff8cb3d6990bbfd11e406cca6a23  gcc/testsuite/rust/compile/array4.rs
  ec15ff347aa69c536e7e791163bb9e73  gcc/testsuite/rust/compile/array_empty_list.rs
! 4d9cb4f27492d0e9e7915172cfa058d1  gcc/testsuite/rust/compile/arrays1.rs
! 1dfa98b92fcad6c7f618d10b415bef6b  gcc/testsuite/rust/compile/arrays2.rs
! 90abde0c3dc5ac2d6ab8d4304219cd05  gcc/testsuite/rust/compile/assume.rs
  6d43a3c855de9a784b5daf14d332bb2c  gcc/testsuite/rust/compile/attr-mismatch-crate-name.rs
  e3c9ec33d7df70539fa80809be2ce0c9  gcc/testsuite/rust/compile/attr_cold.rs
  d9be47bf725d64b4d76c4e5de43dd2da  gcc/testsuite/rust/compile/attr_deprecated.rs
! 3a6cf40fed3e72fa67e9861964d3f4f8  gcc/testsuite/rust/compile/attr_deprecated_2.rs
! 285d2a6251c3beede3a80d6bce086007  gcc/testsuite/rust/compile/auto_trait_invalid.rs
! 84d30c5ac248281c47585284bbfae834  gcc/testsuite/rust/compile/auto_trait_super_trait.rs
! 32fbddcb2f485e6e1367e04a37536c61  gcc/testsuite/rust/compile/auto_trait_valid.rs
! 7673a55108cb36ca1835b653cd9d9d0d  gcc/testsuite/rust/compile/bad-crate-name1.rs
! c8c58ec31af772aad429da99744fea8c  gcc/testsuite/rust/compile/bad-crate-name2.rs
  c7ba9642fee029930b93bde0be0044d4  gcc/testsuite/rust/compile/bad=file-name.rs
! 74543bdf60d90fdb77b3d59541bb46b8  gcc/testsuite/rust/compile/bad_as_bool_char.rs
  02b466f42629715260cc948eeaf75e56  gcc/testsuite/rust/compile/bad_file_name.txt.rs
! b7e6bbfef08eb8a9143a53af0f574882  gcc/testsuite/rust/compile/bad_inner_doc.rs
! 8338ed51b96de19762044b4fdc58799d  gcc/testsuite/rust/compile/bad_pub_enumitems.rs
  822aea03a6aa5bb6befd197718e43ddd  gcc/testsuite/rust/compile/bad_stmt_enums.rs
  9f8b43272318a741168b07f0e891701c  gcc/testsuite/rust/compile/bad_toplevel_enums.rs
  0d119d70ef8a831773de61a39d852ca9  gcc/testsuite/rust/compile/bad_tuple_index.rs
! 31411dd4dfa5ef81f48be8524c8a00dc  gcc/testsuite/rust/compile/bad_type1.rs
! ce19b338cc4375d80379a32da223a505  gcc/testsuite/rust/compile/bad_type2.rs
  e42d99383a25c9730ef3d807441d0b0c  gcc/testsuite/rust/compile/bounds.rs
! 40bfcf112fd1480b00d3d4858254154a  gcc/testsuite/rust/compile/bounds1.rs
! 060a81115df2968518fc777bf575e757  gcc/testsuite/rust/compile/braced_macro_arm.rs
! 8de7527f66af2394a42996e52d5babe8  gcc/testsuite/rust/compile/braced_macro_statements1.rs
! cbfc197f8134a8350885e815d5ee026c  gcc/testsuite/rust/compile/braced_macro_statements2.rs
! 9f90a1bd410498c56e3df950032a988d  gcc/testsuite/rust/compile/braced_macro_statements3.rs
! 47737309318071d3754311d3548c9919  gcc/testsuite/rust/compile/break-rust1.rs
! f64766615234c46909d9751865f81a2f  gcc/testsuite/rust/compile/break-rust2.rs
! 812730b6446f2b373e760a953997b1bf  gcc/testsuite/rust/compile/break-rust3.rs
! aee0d6e5e5a54d891b1d4faa7e35d45f  gcc/testsuite/rust/compile/break1.rs
! 6fbcb9d99ff911062023af6b888080d7  gcc/testsuite/rust/compile/break2.rs
! 238450e11ba7966838b9e4286ef1e145  gcc/testsuite/rust/compile/break_continue_outside_loop.rs
! 9b99112d2f118c58acb61f3703144ecf  gcc/testsuite/rust/compile/break_with_value_inside_loop.rs
! 3089e5cf84922d853bd7c44b22155de5  gcc/testsuite/rust/compile/broken_utf8.rs
! 88a6658f178584c62de6eb5f4a61322e  gcc/testsuite/rust/compile/builtin_macro_compile_error.rs
! 5d3c149e12159ffe7e47852c1735ad30  gcc/testsuite/rust/compile/builtin_macro_concat.rs
! b145b113cbb430d3843c851f619f7c30  gcc/testsuite/rust/compile/builtin_macro_eager1.rs
! c30bc60616f4a130d189218164cd1f21  gcc/testsuite/rust/compile/builtin_macro_eager2.rs
! 85aa7aa536f834f79b2c7a1beb695dfe  gcc/testsuite/rust/compile/builtin_macro_eager3.rs
! f713f2824d9b1ffedf820733d4ef27ad  gcc/testsuite/rust/compile/builtin_macro_env.rs
! 0989ded69740ef2de22d2b7d5d350c68  gcc/testsuite/rust/compile/builtin_macro_include_bytes.rs
! 1bd8413081c143d18d2ab5f7b0a3aae9  gcc/testsuite/rust/compile/builtin_macro_include_bytes_location_info.rs
! dd3da3aaaaab7cb7eaea34a3aa52b27b  gcc/testsuite/rust/compile/builtin_macro_include_str.rs
! 794339400ee1f6736e4f7d9b7729b688  gcc/testsuite/rust/compile/builtin_macro_include_str_location_info.rs
! b3311e2d0b414c3607d49989521d8ca0  gcc/testsuite/rust/compile/builtin_macro_not_found.rs
! 2a37255df1b16a872e02855ab7964be2  gcc/testsuite/rust/compile/builtin_macro_recurse2.rs
! 629afb83d10bc6fdc75861d3b03b34ae  gcc/testsuite/rust/compile/bytecharstring.rs
! 32883bd2cd57b15b0d562d5fc0a60332  gcc/testsuite/rust/compile/canonical_paths1.rs
! bbb7a81f895315976bb3b8975d3f3319  gcc/testsuite/rust/compile/cast1.rs
! 950b4a75c3c3faf17dffe2facde1f08d  gcc/testsuite/rust/compile/cast4.rs
! b669ba48ac5e60d6d2fe212ead01eb4d  gcc/testsuite/rust/compile/cast5.rs
! 4c09411ff14a842b39cc80cabb0d1c42  gcc/testsuite/rust/compile/cast_generics.rs
! 0ade7c1bac955f1b03af6464186073fc  gcc/testsuite/rust/compile/cfg-attr.rs
  2648512ce6f2397fa9b2b9b663774782  gcc/testsuite/rust/compile/cfg1.rs
! 39df3ad8f1d7a8d1cabbc2a028bca689  gcc/testsuite/rust/compile/cfg2.rs
  c73d64b77895517ecd6f3c68791c8a69  gcc/testsuite/rust/compile/cfg3.rs
  56ded507756f2a2acbcd3e159441eb69  gcc/testsuite/rust/compile/cfg4.rs
  51f569c35a6280f5867ea405af7c5ff0  gcc/testsuite/rust/compile/cfg5.rs
+ 727e67cc591a11b8f3b7b5d059bab114  gcc/testsuite/rust/compile/cfg6.rs
+ 0446be9193127a70c4d35ca699820a60  gcc/testsuite/rust/compile/changed_intrinsics.rs
+ 55f85f3cef139e7d73fee86f9df506d1  gcc/testsuite/rust/compile/closure_in_closure.rs
  2bb5cf15b07de99923afb39cf1aca432  gcc/testsuite/rust/compile/closure_move_expr.rs
! 2ba93dbc4c6b008206d95d608331f3aa  gcc/testsuite/rust/compile/closure_no_type_anno.rs
! efd93d54e933def690c5f068247aaaf0  gcc/testsuite/rust/compile/compile.exp
  26906781b85cc46264ef3e39029497f7  gcc/testsuite/rust/compile/complex-path1.rs
! 6d005d5b0b3c8f9d215dfc0454904663  gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs
! dcf8b8a8ff1f9675ee275b77209cc26a  gcc/testsuite/rust/compile/const-issue1440.rs
  35b2389068cb824405eb2d9143bcbaf5  gcc/testsuite/rust/compile/const1.rs
  20a071af13cc659f510fa8e507de1155  gcc/testsuite/rust/compile/const10.rs
  7e8914522c5084bfdf3d535d03eceba9  gcc/testsuite/rust/compile/const2.rs
*************** dfa3b2217fe0156c62492956eee3bcf4  gcc/te
*** 98803,98819 ****
  2306998d870c3bc52160a7c4dfe66bbf  gcc/testsuite/rust/compile/const7.rs
  f39e120a441c7e4182741b883f1ef05d  gcc/testsuite/rust/compile/const8.rs
  dd04212a2e511e939aedac8b2ea59543  gcc/testsuite/rust/compile/const9.rs
! e56dd8ee3365e34fcd40ed35d94e5766  gcc/testsuite/rust/compile/const_generics_1.rs
  843f362a8c63f610af0a4ac77f309065  gcc/testsuite/rust/compile/const_generics_2.rs
! 1b7ae3ef807698bb9fe8fd73308a15ae  gcc/testsuite/rust/compile/const_generics_3.rs
! e4dd0536b6005d40043e86649f6ac5b1  gcc/testsuite/rust/compile/const_generics_4.rs
! 32c22537f2b30e574bc911f24aad926f  gcc/testsuite/rust/compile/const_generics_5.rs
! 83e195452a7bdfc3d742e6d0250e7648  gcc/testsuite/rust/compile/const_generics_6.rs
  b3a8bfc23456930eb0b89b6ed6633856  gcc/testsuite/rust/compile/const_generics_7.rs
! 5603e1c09861737068ab6bbe9dd5d23f  gcc/testsuite/rust/compile/const_generics_8.rs
! 440bc2cc02a6edf4d61e2e988ae0c80f  gcc/testsuite/rust/compile/continue1.rs
! fec9e39c9ab66bd08e4c78c8394a1011  gcc/testsuite/rust/compile/deadcode_err1.rs
! 21e70ceb188f4f2bd313ca67a85825fc  gcc/testsuite/rust/compile/deadcode_err2.rs
  5c62594c4ac22ce08e737301cfef1e14  gcc/testsuite/rust/compile/debug-diagnostics-default.rs
  3773ca6c54665e210cd154606f67acae  gcc/testsuite/rust/compile/debug-diagnostics-off.rs
  222c8f58dfc19b5378f44e80ecd5742b  gcc/testsuite/rust/compile/debug-diagnostics-on.rs
--- 108304,108322 ----
  2306998d870c3bc52160a7c4dfe66bbf  gcc/testsuite/rust/compile/const7.rs
  f39e120a441c7e4182741b883f1ef05d  gcc/testsuite/rust/compile/const8.rs
  dd04212a2e511e939aedac8b2ea59543  gcc/testsuite/rust/compile/const9.rs
! e03f96eb1b1abbe5563a1a760fe06b10  gcc/testsuite/rust/compile/const_async_function.rs
! d5d062233962271057388d4ed79aa6de  gcc/testsuite/rust/compile/const_generics_1.rs
  843f362a8c63f610af0a4ac77f309065  gcc/testsuite/rust/compile/const_generics_2.rs
! f31e17675bfb3ab2814f2c2652b310b2  gcc/testsuite/rust/compile/const_generics_3.rs
! 61271191489c154700ce0225afcbf890  gcc/testsuite/rust/compile/const_generics_4.rs
! 38f18fe55c05240c48888d461dd7cf8d  gcc/testsuite/rust/compile/const_generics_5.rs
! 132116f02eae6c44e8198bc85dd53d08  gcc/testsuite/rust/compile/const_generics_6.rs
  b3a8bfc23456930eb0b89b6ed6633856  gcc/testsuite/rust/compile/const_generics_7.rs
! 7523ea428464817a67f476fe689fe871  gcc/testsuite/rust/compile/const_generics_8.rs
! d1bc715bfb792187c8752b3676e946f0  gcc/testsuite/rust/compile/const_trait_fn.rs
! 4258f4d6f84473191c981e8a84f06d70  gcc/testsuite/rust/compile/continue1.rs
! 7f4fe873fe1df5d7009cbf90b7ae70f5  gcc/testsuite/rust/compile/deadcode_err1.rs
! fdfa5359cba5b4ebe27dc487d7bde273  gcc/testsuite/rust/compile/deadcode_err2.rs
  5c62594c4ac22ce08e737301cfef1e14  gcc/testsuite/rust/compile/debug-diagnostics-default.rs
  3773ca6c54665e210cd154606f67acae  gcc/testsuite/rust/compile/debug-diagnostics-off.rs
  222c8f58dfc19b5378f44e80ecd5742b  gcc/testsuite/rust/compile/debug-diagnostics-on.rs
*************** bbb07a308e077d8068c1a25e119fce9c  gcc/te
*** 98824,98915 ****
  15fae62741d18e742ca7c0320a61cc95  gcc/testsuite/rust/compile/decl_macro5.rs
  bc73b541d5043286cba7b09aa1d609e9  gcc/testsuite/rust/compile/decl_macro6.rs
  d23eb70e5ff707e3d1a8c4ea21224d84  gcc/testsuite/rust/compile/decl_macro7.rs
  0ee7c26dcdc8fb1d25de4eee521bb29e  gcc/testsuite/rust/compile/diagnostic_underline.rs
  9f4c15c76e3e3e3dd4ebd6f61e8db065  gcc/testsuite/rust/compile/doc_isolated_cr_block_comment.rs
  d4173b37d75e489fc580f69e4c6666c9  gcc/testsuite/rust/compile/doc_isolated_cr_inner_block_comment.rs
  358e8e1402a859578bdfde24b20c7884  gcc/testsuite/rust/compile/doc_isolated_cr_inner_line_comment.rs
  99b87dbe2c1c9c2d180582aab545078e  gcc/testsuite/rust/compile/doc_isolated_cr_line_comment.rs
! a7d44d70b773e86164f36c0b0f0ed9ff  gcc/testsuite/rust/compile/dup_fields.rs
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/rust/compile/empty.in
  aae545e94fb684c0ca246a357ee256e9  gcc/testsuite/rust/compile/empty_comment_before_match.rs
! 3fa3fcf0d13e765eaa569e818d91bf2f  gcc/testsuite/rust/compile/expected_type_args2.rs
! a19a06dd370718438a55ea3c3efb5d89  gcc/testsuite/rust/compile/expected_type_args3.rs
! 281e4cf12da44b33cfb731781c93cb2b  gcc/testsuite/rust/compile/feature.rs
  855eac5ad5f6820cf81b38a46a7b9488  gcc/testsuite/rust/compile/feature_intrinsics.rs
  03ce7bc2c5e3478be586fcc302a8200f  gcc/testsuite/rust/compile/frust-compile-until.rs
! f419aae15b8436a773c82aee9454e6b8  gcc/testsuite/rust/compile/func1.rs
! 9e93bf946152b7ebed5157f7cd2ffda6  gcc/testsuite/rust/compile/func2.rs
! b1dc181e1f4c39b9c637fae18ed9de79  gcc/testsuite/rust/compile/func3.rs
! dd3eb21c3b99dbf5302feec3d73f0092  gcc/testsuite/rust/compile/func4.rs
! 31ad264388a994ea763c9b787f7e2257  gcc/testsuite/rust/compile/func5.rs
  3d1c9dedffcc8d1773ae724738a090ae  gcc/testsuite/rust/compile/generic-default1.rs
! 0cdfaf84ae8af6dd067ddd5ce4a1b236  gcc/testsuite/rust/compile/generics1.rs
! 2ceca342124bd3b24b2f8b130b58d57b  gcc/testsuite/rust/compile/generics10.rs
! 5ef84847a22b700ca66a9a29b8686efe  gcc/testsuite/rust/compile/generics11.rs
! 02ed75052c1664808ad9d068779a3246  gcc/testsuite/rust/compile/generics12.rs
! a723dab3a3cf288a602edf56485b3e4e  gcc/testsuite/rust/compile/generics13.rs
! ea20d238fdbba739a11a12bd97285145  gcc/testsuite/rust/compile/generics2.rs
! d39fbd03286620c0913247b364549c83  gcc/testsuite/rust/compile/generics3.rs
! 1cafe12bd527a3362ef3be0d574b69cd  gcc/testsuite/rust/compile/generics4.rs
  be971c6b2d18f3d7afade30adc9d5e64  gcc/testsuite/rust/compile/generics5.rs
! 5efdd18d770ce55356ac3059fea9af16  gcc/testsuite/rust/compile/generics6.rs
! 3a3e7a77e5f37805a362891278726d5b  gcc/testsuite/rust/compile/generics7.rs
! 5b452544e9ef058ee246edc352e1826c  gcc/testsuite/rust/compile/generics8.rs
  f00512e3d8f123c1c40d1ae102a1a710  gcc/testsuite/rust/compile/generics9.rs
! a1b7f6445fe82c46736219dba38d3922  gcc/testsuite/rust/compile/implicit_returns_err1.rs
! 81b9be2b2b8652ddb1df628cf315b8c4  gcc/testsuite/rust/compile/implicit_returns_err2.rs
! 1fdde1131697407665df75f73825c628  gcc/testsuite/rust/compile/implicit_returns_err3.rs
! 4df44ab51a59ecd54d915e1610d834be  gcc/testsuite/rust/compile/implicit_returns_err4.rs
! f0b6b46f0eda0c11c04c32fe2e1752a3  gcc/testsuite/rust/compile/include_empty.rs
  bdcf4ee0d9c01755816b4b4cfd686a81  gcc/testsuite/rust/compile/infer-crate-name.rs
  d1c354b6a0b4fc8d599d65fd14e29373  gcc/testsuite/rust/compile/inline_1.rs
! f55c26b5030120066ef7feab28714a67  gcc/testsuite/rust/compile/inline_2.rs
  f78a56479ba7bd2a5ff6949cfe7a2d43  gcc/testsuite/rust/compile/invalid_utf8
! f75a8a462b08fd111e6f344aa398686c  gcc/testsuite/rust/compile/issue-1005.rs
  ca2c27602daf9dadcc9d976aa4131edc  gcc/testsuite/rust/compile/issue-1006.rs
! ecabb441aac8d8047f9e5ced38bfb7c3  gcc/testsuite/rust/compile/issue-1019.rs
  8a6b6780af800c7792766eb1ad1c2bc2  gcc/testsuite/rust/compile/issue-1023.rs
! 942107ed77efe926f69407aa1d4b02da  gcc/testsuite/rust/compile/issue-1031.rs
! b0b1d86054d444e810fcd7259a4f97f3  gcc/testsuite/rust/compile/issue-1034.rs
  755da4cdeb7d21c007a7642f64d68f9f  gcc/testsuite/rust/compile/issue-1073.rs
  3170bfed67ee0e280928743013eff0bb  gcc/testsuite/rust/compile/issue-1089.rs
! 48bc2b2e2ebaf99052864a1a5344af31  gcc/testsuite/rust/compile/issue-1128.rs
  215a61ae1ef8ce9d4340a872f9af817f  gcc/testsuite/rust/compile/issue-1129-1.rs
! b66a12f8b901db5696056a3d7ad72534  gcc/testsuite/rust/compile/issue-1129-2.rs
! 2df7e7bcd5c9fec43a3d15ebaa03692b  gcc/testsuite/rust/compile/issue-1130.rs
! 8b93435e3864764ad9cc5906990637b3  gcc/testsuite/rust/compile/issue-1131.rs
! 57ed8c0b75a3923a67ccaf64ad1d9531  gcc/testsuite/rust/compile/issue-1152.rs
! 57b7cf491f8b6169fa43e54462113d37  gcc/testsuite/rust/compile/issue-1165.rs
! e379b1bf4aa87ebb59fe5b229174e1e8  gcc/testsuite/rust/compile/issue-1173.rs
  c83436fe2fc9fdb75d44d97cc581d491  gcc/testsuite/rust/compile/issue-1226.rs
  8917da2935c56ecd5715cb3db5ad71a3  gcc/testsuite/rust/compile/issue-1234.rs
! 8190e63d879a11c5c27075b2b61bc96b  gcc/testsuite/rust/compile/issue-1235.rs
! 3a4f22a445c8e65467b378a5fe8b104e  gcc/testsuite/rust/compile/issue-1237.rs
  17400e163df5334bbe8aac2038ec3043  gcc/testsuite/rust/compile/issue-1251.rs
  8dd9a76c7a3fcfb15bfffaac22520456  gcc/testsuite/rust/compile/issue-1271.rs
  526c2f3c9b8826f2087440064a08e246  gcc/testsuite/rust/compile/issue-1272.rs
! bcc4c84a7c57b14fbd92ebbcd2046aa2  gcc/testsuite/rust/compile/issue-1289.rs
  ab3c15cae592f9bf4cd733d3f1430996  gcc/testsuite/rust/compile/issue-1323-1.rs
  fb1288c6929fb7277dde0d2cd35829d6  gcc/testsuite/rust/compile/issue-1323-2.rs
  b8672e41b3df45a83b26554acb9ba9d1  gcc/testsuite/rust/compile/issue-1361.rs
! 6f51594f78fb3d8223c93c41dddd94f4  gcc/testsuite/rust/compile/issue-1383.rs
  ad1f8c80e2b6dd5a82e5d235b59e8e7d  gcc/testsuite/rust/compile/issue-1393.rs
  764b8d11c95b068c1b2a8af94b17fade  gcc/testsuite/rust/compile/issue-1422.rs
! 33a93c66ca9ee7be4fad2fd4799bdf3c  gcc/testsuite/rust/compile/issue-1447.rs
! fed851a9cf342c688d15549e609f3b49  gcc/testsuite/rust/compile/issue-1589.rs
! c0ecca352002e8e2e96db57b006a6eac  gcc/testsuite/rust/compile/issue-1725-1.rs
! 2aa5d3182bd7d5fdd055b273839f97d1  gcc/testsuite/rust/compile/issue-1725-2.rs
! b93530b19b35e5299898f7e66c545676  gcc/testsuite/rust/compile/issue-1773.rs
! 6170947edf064f0996b5771bc5789af6  gcc/testsuite/rust/compile/issue-1786.rs
! da970e1712ad79a003b303cf70132961  gcc/testsuite/rust/compile/issue-1830_bytes.rs
! f5ab12305f28f4ac541cec8222e84dcf  gcc/testsuite/rust/compile/issue-1830_str.rs
! 15127b55b37731baa285de7d143e7276  gcc/testsuite/rust/compile/issue-407-2.rs
! 938d9583f1b1bde120d57975810d7715  gcc/testsuite/rust/compile/issue-407.rs
  229b98c45f842adf4958f0a3abd8e500  gcc/testsuite/rust/compile/issue-557.rs
  f8f243df4bb6d8ad64bad3b19771c416  gcc/testsuite/rust/compile/issue-635-1.rs
  4ebac20282b976fe52f1017d59feaccb  gcc/testsuite/rust/compile/issue-635-2.rs
! 6ee372b1f76b6013f7f8cbe145021be3  gcc/testsuite/rust/compile/issue-867.rs
  9afdcde455c4f144c4385b9d67323cb3  gcc/testsuite/rust/compile/lookup_err1.rs
  ab010cddb1155cc9e700ce547b463174  gcc/testsuite/rust/compile/macro-issue1053-2.rs
  5717e4e8d84c82f5af7bff4dc34a3be9  gcc/testsuite/rust/compile/macro-issue1053.rs
  1e7ae050ea3d88cb2f91abc4970eee95  gcc/testsuite/rust/compile/macro-issue1224.rs
--- 108327,108522 ----
  15fae62741d18e742ca7c0320a61cc95  gcc/testsuite/rust/compile/decl_macro5.rs
  bc73b541d5043286cba7b09aa1d609e9  gcc/testsuite/rust/compile/decl_macro6.rs
  d23eb70e5ff707e3d1a8c4ea21224d84  gcc/testsuite/rust/compile/decl_macro7.rs
+ 9c18098b4b1ce502c531f0caab668d43  gcc/testsuite/rust/compile/default_not_a_kw.rs
+ b00bfad5fda1037ecfd9712632089f7e  gcc/testsuite/rust/compile/derive_empty.rs
+ 2e3b7c665ac33d939710da44bc32a2e3  gcc/testsuite/rust/compile/derive_macro1.rs
+ 605f6107ac40e994425002c0676257b8  gcc/testsuite/rust/compile/derive_macro3.rs
+ c893204243c798d3328957d9947f20d3  gcc/testsuite/rust/compile/derive_macro4.rs
+ 8ef5645f867aa821ed87f5e178d51156  gcc/testsuite/rust/compile/derive_macro6.rs
+ 25b35d97f1f4704f338d8b66fe6694d9  gcc/testsuite/rust/compile/derive_macro7.rs
+ 4f18dc206a2145c8cb8d98c62f0d8751  gcc/testsuite/rust/compile/derive_macro8.rs
  0ee7c26dcdc8fb1d25de4eee521bb29e  gcc/testsuite/rust/compile/diagnostic_underline.rs
  9f4c15c76e3e3e3dd4ebd6f61e8db065  gcc/testsuite/rust/compile/doc_isolated_cr_block_comment.rs
  d4173b37d75e489fc580f69e4c6666c9  gcc/testsuite/rust/compile/doc_isolated_cr_inner_block_comment.rs
  358e8e1402a859578bdfde24b20c7884  gcc/testsuite/rust/compile/doc_isolated_cr_inner_line_comment.rs
  99b87dbe2c1c9c2d180582aab545078e  gcc/testsuite/rust/compile/doc_isolated_cr_line_comment.rs
! d8358e6b9184a3ce78256c89fcd559e8  gcc/testsuite/rust/compile/doc_macro.rs
! 25772d5243b1187d9a1cb514166b17bf  gcc/testsuite/rust/compile/dup_fields.rs
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/rust/compile/empty.in
  aae545e94fb684c0ca246a357ee256e9  gcc/testsuite/rust/compile/empty_comment_before_match.rs
! d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/rust/compile/empty_file
! 46fa9cf76f8ad21f88d3360570229a80  gcc/testsuite/rust/compile/empty_union.rs
! fb2de02f6df2864b061f62571fe607f8  gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs
! 624117462b2e06250289e58e427c6086  gcc/testsuite/rust/compile/expected_type_args2.rs
! 995aa0b15bf08b74b74a18a03cdc9c8d  gcc/testsuite/rust/compile/expected_type_args3.rs
! ac58e8219b88c515b66ef614c71f596e  gcc/testsuite/rust/compile/extern_c_named_variadic.rs
! b7f4db5c26f356d48451f0a9821716d5  gcc/testsuite/rust/compile/extern_type_item.rs
! 9e130c4eb083122a9ccbf4eb149cc2f2  gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs
! cc1024984af142e9c65ae801477887a3  gcc/testsuite/rust/compile/feature.rs
! 44f07a22a8848431692bbcc231de5a95  gcc/testsuite/rust/compile/feature_extern_types.rs
  855eac5ad5f6820cf81b38a46a7b9488  gcc/testsuite/rust/compile/feature_intrinsics.rs
+ 9de92a7b8795200c3238185409330005  gcc/testsuite/rust/compile/feature_rust_attri0.rs
+ 48d3812fa54fdd372ef8ad82f64bad0e  gcc/testsuite/rust/compile/feature_rust_attri1.rs
+ 5ee6657185ec67299ef2ace853f873b7  gcc/testsuite/rust/compile/for_expr.rs
+ e41c2cabd63dba549da749a8fed6ca7a  gcc/testsuite/rust/compile/for_lifetimes.rs
+ 9c06b22a10dcf3a218bb690997175a3f  gcc/testsuite/rust/compile/found_struct.rs
  03ce7bc2c5e3478be586fcc302a8200f  gcc/testsuite/rust/compile/frust-compile-until.rs
! 489b92756629c38cc6b9d8ccb1628659  gcc/testsuite/rust/compile/func1.rs
! 112ccbcd809bc7db11974bac1a2abb14  gcc/testsuite/rust/compile/func2.rs
! 77acd48d3dcf17e19ef0af0c27331cfe  gcc/testsuite/rust/compile/func3.rs
! b496c8cc5bfab6822169cb4203d1156c  gcc/testsuite/rust/compile/func4.rs
! 68720f415f629976955a82946059407b  gcc/testsuite/rust/compile/func5.rs
! 25918272dbcc38291579e4e99d3df600  gcc/testsuite/rust/compile/functions_without_body.rs
  3d1c9dedffcc8d1773ae724738a090ae  gcc/testsuite/rust/compile/generic-default1.rs
! 26d9315ca3a2aa3ef5c82d0bdc43619b  gcc/testsuite/rust/compile/generic_auto_trait.rs
! e3074cf23f5849f2fa7c27c13fb282cf  gcc/testsuite/rust/compile/generics1.rs
! 931c1b938a76b0da8397f8e056ad3bc8  gcc/testsuite/rust/compile/generics10.rs
! e8dbcbd07045d7b5b518d0a236325d16  gcc/testsuite/rust/compile/generics11.rs
! d351b74853227cf8b303e585c21d1fe0  gcc/testsuite/rust/compile/generics12.rs
! ed3baf52aef0cae945dfb5c73cd30acb  gcc/testsuite/rust/compile/generics13.rs
! 9a59ca7c4e4eadc29fb5bbd7a29af1c6  gcc/testsuite/rust/compile/generics2.rs
! eb85bcea53e38d14f7bcc7f982cc4140  gcc/testsuite/rust/compile/generics3.rs
! 1573e5dfb5c28b7c8772af08f4cae832  gcc/testsuite/rust/compile/generics4.rs
  be971c6b2d18f3d7afade30adc9d5e64  gcc/testsuite/rust/compile/generics5.rs
! c1e1b1f68989106b681ddc8e08958951  gcc/testsuite/rust/compile/generics6.rs
! 682cc29e7af5ea3a8f6b71c92d5e180b  gcc/testsuite/rust/compile/generics7.rs
! 4ecc7198ef296e1aa4376fc2da4ed09d  gcc/testsuite/rust/compile/generics8.rs
  f00512e3d8f123c1c40d1ae102a1a710  gcc/testsuite/rust/compile/generics9.rs
! 47cbcf81ae1f25e4eb787272a92d8db7  gcc/testsuite/rust/compile/if_let_expr.rs
! c7d60400964e3621102e44ba4cef69f9  gcc/testsuite/rust/compile/implicit_returns_err1.rs
! effa05530ec2bc9508c522bddd5e2b38  gcc/testsuite/rust/compile/implicit_returns_err2.rs
! a7f7a6f200af74d9fa0b8e0e106cdc2e  gcc/testsuite/rust/compile/implicit_returns_err3.rs
! 57564c88d8277457b1b56c8de206a9b3  gcc/testsuite/rust/compile/implicit_returns_err4.rs
! f5a0d22fb97460ebf5ec424228131615  gcc/testsuite/rust/compile/include_empty.rs
  bdcf4ee0d9c01755816b4b4cfd686a81  gcc/testsuite/rust/compile/infer-crate-name.rs
  d1c354b6a0b4fc8d599d65fd14e29373  gcc/testsuite/rust/compile/inline_1.rs
! b9d0bda67289625101108c997570a0c9  gcc/testsuite/rust/compile/inline_2.rs
! 260c1e8e753ba1209ad16aaf4c9ec1ba  gcc/testsuite/rust/compile/invalid_label_name.rs
  f78a56479ba7bd2a5ff6949cfe7a2d43  gcc/testsuite/rust/compile/invalid_utf8
! e66597d1435db8c97820eae8edf34298  gcc/testsuite/rust/compile/invalid_variadics.rs
! f263d9837667ee8d8c4b9f6ec4718cca  gcc/testsuite/rust/compile/issue-1005.rs
  ca2c27602daf9dadcc9d976aa4131edc  gcc/testsuite/rust/compile/issue-1006.rs
! d59e1a706f4d5ecf85ccc8929983dda4  gcc/testsuite/rust/compile/issue-1019.rs
  8a6b6780af800c7792766eb1ad1c2bc2  gcc/testsuite/rust/compile/issue-1023.rs
! 7a5ff9315269435c4fb1fd09aa42022a  gcc/testsuite/rust/compile/issue-1031.rs
! 8b4a10a57fa50214c30abf33d38f3a66  gcc/testsuite/rust/compile/issue-1034.rs
  755da4cdeb7d21c007a7642f64d68f9f  gcc/testsuite/rust/compile/issue-1073.rs
  3170bfed67ee0e280928743013eff0bb  gcc/testsuite/rust/compile/issue-1089.rs
! fa137bc0614a02dafb820751293a47c7  gcc/testsuite/rust/compile/issue-1089/test_mod.rs
! 5bc4421c6f0beece14d7eebae0ab5139  gcc/testsuite/rust/compile/issue-1128.rs
  215a61ae1ef8ce9d4340a872f9af817f  gcc/testsuite/rust/compile/issue-1129-1.rs
! f980ebe6c33cb30b8f4299b79ee7561a  gcc/testsuite/rust/compile/issue-1129-2.rs
! 4acb3f85a12df3668daf9a543af1ada0  gcc/testsuite/rust/compile/issue-1130.rs
! 394647e04c828e25c1ded1f4d211bc98  gcc/testsuite/rust/compile/issue-1131.rs
! ce6c31e5fae9866aa4ca6c414ee67207  gcc/testsuite/rust/compile/issue-1152.rs
! 78129bcac4f89afdb7ea3ca84dc33cb0  gcc/testsuite/rust/compile/issue-1165.rs
! f00d2daefba13bef1d236d250e76bdff  gcc/testsuite/rust/compile/issue-1173.rs
  c83436fe2fc9fdb75d44d97cc581d491  gcc/testsuite/rust/compile/issue-1226.rs
  8917da2935c56ecd5715cb3db5ad71a3  gcc/testsuite/rust/compile/issue-1234.rs
! 706b52a679ef815e77dcde70b34d8625  gcc/testsuite/rust/compile/issue-1235.rs
! de949b167bc251dd36a632e5a01aa6d0  gcc/testsuite/rust/compile/issue-1237.rs
  17400e163df5334bbe8aac2038ec3043  gcc/testsuite/rust/compile/issue-1251.rs
  8dd9a76c7a3fcfb15bfffaac22520456  gcc/testsuite/rust/compile/issue-1271.rs
  526c2f3c9b8826f2087440064a08e246  gcc/testsuite/rust/compile/issue-1272.rs
! 5eccf21e9b433a6af0158f37bd7516a6  gcc/testsuite/rust/compile/issue-1289.rs
  ab3c15cae592f9bf4cd733d3f1430996  gcc/testsuite/rust/compile/issue-1323-1.rs
  fb1288c6929fb7277dde0d2cd35829d6  gcc/testsuite/rust/compile/issue-1323-2.rs
  b8672e41b3df45a83b26554acb9ba9d1  gcc/testsuite/rust/compile/issue-1361.rs
! 90ebb8b1d558833c738c616dd66ff05b  gcc/testsuite/rust/compile/issue-1383.rs
  ad1f8c80e2b6dd5a82e5d235b59e8e7d  gcc/testsuite/rust/compile/issue-1393.rs
  764b8d11c95b068c1b2a8af94b17fade  gcc/testsuite/rust/compile/issue-1422.rs
! e52eecb37daa3eee24120c0c498d9391  gcc/testsuite/rust/compile/issue-1446.rs
! 1aad0b48f4326d09f4e7b086d33d1863  gcc/testsuite/rust/compile/issue-1447.rs
! 70540dd29e7b0706827350dab2fb8358  gcc/testsuite/rust/compile/issue-1483.rs
! 94b3e95b0146b31cf5c3ed953d8aa56d  gcc/testsuite/rust/compile/issue-1524.rs
! b436c410b33bf1a4a8345bcc091c9a93  gcc/testsuite/rust/compile/issue-1589.rs
! 40bfcf112fd1480b00d3d4858254154a  gcc/testsuite/rust/compile/issue-1725-1.rs
! cd4c7414f38eda546be79f8fae5cdb0e  gcc/testsuite/rust/compile/issue-1725-2.rs
! 1fe00001c581f7c50fcd0b11437fbe89  gcc/testsuite/rust/compile/issue-1773.rs
! a27cbcf495ce6fabb51f8978e36c8576  gcc/testsuite/rust/compile/issue-1786.rs
! d26d80b504c5b7aceaa2fef4dec88320  gcc/testsuite/rust/compile/issue-1807.rs
! f15fc0ff6bc5cd17c8072f7c136a8c86  gcc/testsuite/rust/compile/issue-1813.rs
! 043fc5bec978c63c23d0e2c62be982b5  gcc/testsuite/rust/compile/issue-1830_bytes.rs
! 00968b4004619c3448e1d4e030a0ad1a  gcc/testsuite/rust/compile/issue-1830_str.rs
! 9559fc65e325f14d3ed3e1f224c5ad44  gcc/testsuite/rust/compile/issue-1893.rs
! b2f23cea2a78c79a793054263a991252  gcc/testsuite/rust/compile/issue-1901.rs
! 68e4e03ac47f3cd8e3923653ee133be6  gcc/testsuite/rust/compile/issue-1930.rs
! 8da1e532c5f47432319b2a42590b1583  gcc/testsuite/rust/compile/issue-1981.rs
! dea2255d500ac0b825f926116060eed6  gcc/testsuite/rust/compile/issue-2019-1.rs
! ae81890397358d0988779ae417ff81b4  gcc/testsuite/rust/compile/issue-2019-2.rs
! 487f46cb43b6c6f08b18379178708d7b  gcc/testsuite/rust/compile/issue-2019-3.rs
! 5a87a7a30165e85071717f02a940f443  gcc/testsuite/rust/compile/issue-2029.rs
! fe9158f762e004b8016cd4a108a6f99d  gcc/testsuite/rust/compile/issue-2036.rs
! 015a261bf80644566eea53260992855a  gcc/testsuite/rust/compile/issue-2037.rs
! d967f05a8763ae6a1051fc0feda841be  gcc/testsuite/rust/compile/issue-2039.rs
! 71ddc9537accfcbd06be474ee0fbcf50  gcc/testsuite/rust/compile/issue-2040.rs
! 89b0d4e232b08d023e1100161cb559db  gcc/testsuite/rust/compile/issue-2042.rs
! 82af822ebfeef07e952cdec1a5b9f713  gcc/testsuite/rust/compile/issue-2043.rs
! ca0d7bd0e4d6edab91eb3295f5243e78  gcc/testsuite/rust/compile/issue-2070.rs
! f7a4c3ed09ab45e1c096495fc9d675c6  gcc/testsuite/rust/compile/issue-2105.rs
! 5c9cb53adc5a191a5cdfb0c5eea5267f  gcc/testsuite/rust/compile/issue-2106.rs
! f677239cb2f1a8fc0b98b677dc10622c  gcc/testsuite/rust/compile/issue-2125.rs
! 504cf2293bfc6eb2b4f36b0904c7cdc8  gcc/testsuite/rust/compile/issue-2135.rs
! 1993ac90460c0c5343a2547406c0744b  gcc/testsuite/rust/compile/issue-2136-1.rs
! 7b5a2c0de4e8fb1cdd841f8f326ab459  gcc/testsuite/rust/compile/issue-2136-2.rs
! c3eb1a72b4023b45dfd5148bc5d0e7a5  gcc/testsuite/rust/compile/issue-2139.rs
! b1331689a90b28eba6a364bd355124d0  gcc/testsuite/rust/compile/issue-2142.rs
! 176f6f3432e7bbbbef12eec2f4b0b07c  gcc/testsuite/rust/compile/issue-2165.rs
! 719daee73aad302e472c21c06bd97edb  gcc/testsuite/rust/compile/issue-2166.rs
! dd3f2a097c79b709dd16483c4a1e248c  gcc/testsuite/rust/compile/issue-2178.rs
! da2420dd88aae313552959890eda2887  gcc/testsuite/rust/compile/issue-2187.rs
! 88ea8b6193ca0e9b0446deb7155ef254  gcc/testsuite/rust/compile/issue-2188.rs
! bf7653a0772e6020b3f449cd76d88f20  gcc/testsuite/rust/compile/issue-2189.rs
! 797e9a2fb3bf0297a69ef1e62d05f1bb  gcc/testsuite/rust/compile/issue-2190-1.rs
! 238b1671e90934a6f83702efbafe2a42  gcc/testsuite/rust/compile/issue-2190-2.rs
! c7146c7bbd602763cefd91f32994c7da  gcc/testsuite/rust/compile/issue-2195.rs
! fcc95aaf32f2b6ae3c6e60a0a1f03a6b  gcc/testsuite/rust/compile/issue-2207.rs
! d45c1549ece0e49f041848d45eb5e799  gcc/testsuite/rust/compile/issue-2225.rs
! b9333ea7cc7759ad18a1aa30d3580d52  gcc/testsuite/rust/compile/issue-2238.rs
! 49a5fb24ab1fb010fb697b5455f9589a  gcc/testsuite/rust/compile/issue-2304.rs
! 6ace0bf485400b3071059c288162b352  gcc/testsuite/rust/compile/issue-2330.rs
! 8ab718258c1a331e258d5fa140812639  gcc/testsuite/rust/compile/issue-2375.rs
! c978074de410f3710470187bdc917f4b  gcc/testsuite/rust/compile/issue-2391.rs
! 327d620bf438ac1ff1393dfc76ecc0d6  gcc/testsuite/rust/compile/issue-2421_str.rs
! 572e79cc2733b6ad48fb030aba698641  gcc/testsuite/rust/compile/issue-2431.rs
! 6a8748f8e78748713097067cd623aabd  gcc/testsuite/rust/compile/issue-2477.rs
! 28bc68b646cb636c41270ed68a41b9d2  gcc/testsuite/rust/compile/issue-2478.rs
! ddd5ca8d99886bc9de4314d1f0a79932  gcc/testsuite/rust/compile/issue-2479.rs
! 1c66a04857f7dfbb66f6cefe8f17ae42  gcc/testsuite/rust/compile/issue-2514.rs
! a0c18661a189417b07a4cd0a4fb67eea  gcc/testsuite/rust/compile/issue-2645.rs
! 01dc6a9d25c97abfe0347aff86d22c3c  gcc/testsuite/rust/compile/issue-2650-1.rs
! fdbe4cdf6d53cb91027b26821708f199  gcc/testsuite/rust/compile/issue-2650-2.rs
! 77f0f6ac41c2a0cddd898d2cfc6f7e80  gcc/testsuite/rust/compile/issue-2665.rs
! 67b26e16d2c6f04c185cf6bd1629141e  gcc/testsuite/rust/compile/issue-2709.rs
! 79e64442dc413769cd1a9df190ac987a  gcc/testsuite/rust/compile/issue-2723-1.rs
! fa80bafd4421fc7cb407eb34ec8bdad8  gcc/testsuite/rust/compile/issue-2723-2.rs
! 1631250c1cc2e0002b5ce4a98ae6810b  gcc/testsuite/rust/compile/issue-2747.rs
! 500c9ef48c2f8d072ed7e6f8b1f11a2b  gcc/testsuite/rust/compile/issue-2767.rs
! bd37683bed5641ffbd071b6be0d82a54  gcc/testsuite/rust/compile/issue-2772-1.rs
! f9d4a6bcd21c2fad3da335b4458cd917  gcc/testsuite/rust/compile/issue-2772-2.rs
! a1c3a349606e6b480d37913f89e3264b  gcc/testsuite/rust/compile/issue-2775.rs
! 4a8f1c0d3fcee35652ddd40876c2ae35  gcc/testsuite/rust/compile/issue-2782.rs
! 5f223e6f046471154129ca4f18a29b87  gcc/testsuite/rust/compile/issue-2785.rs
! 9d478006ca67887100c293872a2ae3ba  gcc/testsuite/rust/compile/issue-2788.rs
! d659e6ce0618c60021b36ae3f2acd95c  gcc/testsuite/rust/compile/issue-2812.rs
! 3259a4c31a8307f797913137d89e4a44  gcc/testsuite/rust/compile/issue-2847-b.rs
! 356e4f942827830208423041801e8a7a  gcc/testsuite/rust/compile/issue-2850.rs
! b614f59c05840eb45c25f4c6455c316d  gcc/testsuite/rust/compile/issue-407-2.rs
! a96ecff7ebddf1b3d15a3e3eed146c07  gcc/testsuite/rust/compile/issue-407.rs
  229b98c45f842adf4958f0a3abd8e500  gcc/testsuite/rust/compile/issue-557.rs
  f8f243df4bb6d8ad64bad3b19771c416  gcc/testsuite/rust/compile/issue-635-1.rs
  4ebac20282b976fe52f1017d59feaccb  gcc/testsuite/rust/compile/issue-635-2.rs
! c246745d3c0109f707a97eb978d8efc8  gcc/testsuite/rust/compile/issue-850.rs
! d0bc7a1825bed2205c11837dfb95d94d  gcc/testsuite/rust/compile/issue-852.rs
! 08a40a4206d2165f0c4c4eda3b3a3cb4  gcc/testsuite/rust/compile/issue-855.rs
! d8268bb6a3b94251463bc663c7139eaa  gcc/testsuite/rust/compile/issue-867.rs
! f8081650b54fddb51d3b34b840dafcdb  gcc/testsuite/rust/compile/issue-925.rs
! a67dacedfae5d4501f7d0ff7d05a511c  gcc/testsuite/rust/compile/iterators1.rs
! 7a8fc72a18680d5e07b71b6281265bf2  gcc/testsuite/rust/compile/lang-impl.rs
! 29cbc0cf91d08d95e62cc9432da39f1b  gcc/testsuite/rust/compile/let_alt.rs
! 83a6908517e92139d7d9cbd6244e4b51  gcc/testsuite/rust/compile/lifetime_name_validation.rs
  9afdcde455c4f144c4385b9d67323cb3  gcc/testsuite/rust/compile/lookup_err1.rs
+ 2c1fa92db46d19b9ccd0a1b1896725df  gcc/testsuite/rust/compile/macro-delim.rs
  ab010cddb1155cc9e700ce547b463174  gcc/testsuite/rust/compile/macro-issue1053-2.rs
  5717e4e8d84c82f5af7bff4dc34a3be9  gcc/testsuite/rust/compile/macro-issue1053.rs
  1e7ae050ea3d88cb2f91abc4970eee95  gcc/testsuite/rust/compile/macro-issue1224.rs
*************** ab010cddb1155cc9e700ce547b463174  gcc/te
*** 98917,98923 ****
  ebe435ba941202b6f3d66250b76957da  gcc/testsuite/rust/compile/macro-issue1395-2.rs
  216ccff25a69db7fdb37eeee23f44622  gcc/testsuite/rust/compile/macro-issue1395.rs
  8e0ff67d24d92aa094edb9b476e6d022  gcc/testsuite/rust/compile/macro-issue1400-2.rs
! 87f49da602b30fb8dea6c0d972d1fe5e  gcc/testsuite/rust/compile/macro-issue1400.rs
  bc850c4ba48b08af8788867050a975a6  gcc/testsuite/rust/compile/macro1.rs
  ac95e4402432bd69656d1ee0d52210ab  gcc/testsuite/rust/compile/macro10.rs
  43306e2bad2235ff677beff538262cbb  gcc/testsuite/rust/compile/macro11.rs
--- 108524,108538 ----
  ebe435ba941202b6f3d66250b76957da  gcc/testsuite/rust/compile/macro-issue1395-2.rs
  216ccff25a69db7fdb37eeee23f44622  gcc/testsuite/rust/compile/macro-issue1395.rs
  8e0ff67d24d92aa094edb9b476e6d022  gcc/testsuite/rust/compile/macro-issue1400-2.rs
! bb9aa74a9231fe6ce9d0118a41b274db  gcc/testsuite/rust/compile/macro-issue1400.rs
! 5bc0014ff55ed0e29eb2dbd0ba79d831  gcc/testsuite/rust/compile/macro-issue2092.rs
! 9a2e5218082a4e181e17e624931dffec  gcc/testsuite/rust/compile/macro-issue2192.rs
! e88caa59ad2b57999b485919fb19789f  gcc/testsuite/rust/compile/macro-issue2194.rs
! e231cc61dbaf0d417fad9624c7978667  gcc/testsuite/rust/compile/macro-issue2229.rs
! 22191d20ecd62058cb365f1cc3c8ba8e  gcc/testsuite/rust/compile/macro-issue2264.rs
! df1b8a97ae68cf8e9eac8408a743fa64  gcc/testsuite/rust/compile/macro-issue2268.rs
! 28d4ec252bf0945ced2a862377c87487  gcc/testsuite/rust/compile/macro-issue2273.rs
! 0fb684b40daad17a61596f80938a52bc  gcc/testsuite/rust/compile/macro-issue2653.rs
  bc850c4ba48b08af8788867050a975a6  gcc/testsuite/rust/compile/macro1.rs
  ac95e4402432bd69656d1ee0d52210ab  gcc/testsuite/rust/compile/macro10.rs
  43306e2bad2235ff677beff538262cbb  gcc/testsuite/rust/compile/macro11.rs
*************** d2da748616e3ef6e8fe631fc5484611b  gcc/te
*** 98930,98939 ****
  5af29d5155e1ad26afae51f6ba61d2c2  gcc/testsuite/rust/compile/macro18.rs
  16cbb0c310c9d3506217f27730134a71  gcc/testsuite/rust/compile/macro19.rs
  421a4aafc9c800aacad47cea9aee5769  gcc/testsuite/rust/compile/macro2.rs
! 3b9b57bc8a658e96191e90f277349bc0  gcc/testsuite/rust/compile/macro20.rs
  acf23d48c5e8907c94fc9ad9512b9f68  gcc/testsuite/rust/compile/macro21.rs
  94a6a460c6d078364f4e18d726d45ba7  gcc/testsuite/rust/compile/macro22.rs
! d1eb9c5c76e6b11f6422734baa35a641  gcc/testsuite/rust/compile/macro23.rs
  2e2cfd6ad377b694fe8cb9717e6c4656  gcc/testsuite/rust/compile/macro25.rs
  2ebb4a653eb27be8e54475a3951619f1  gcc/testsuite/rust/compile/macro26.rs
  d79f52ad12a10855d24dcc32089c3e64  gcc/testsuite/rust/compile/macro27.rs
--- 108545,108554 ----
  5af29d5155e1ad26afae51f6ba61d2c2  gcc/testsuite/rust/compile/macro18.rs
  16cbb0c310c9d3506217f27730134a71  gcc/testsuite/rust/compile/macro19.rs
  421a4aafc9c800aacad47cea9aee5769  gcc/testsuite/rust/compile/macro2.rs
! 6db675ad9bb7b164f26fdbca910336f2  gcc/testsuite/rust/compile/macro20.rs
  acf23d48c5e8907c94fc9ad9512b9f68  gcc/testsuite/rust/compile/macro21.rs
  94a6a460c6d078364f4e18d726d45ba7  gcc/testsuite/rust/compile/macro22.rs
! 319dfedea8a6a7db3236288fa8accdc7  gcc/testsuite/rust/compile/macro23.rs
  2e2cfd6ad377b694fe8cb9717e6c4656  gcc/testsuite/rust/compile/macro25.rs
  2ebb4a653eb27be8e54475a3951619f1  gcc/testsuite/rust/compile/macro26.rs
  d79f52ad12a10855d24dcc32089c3e64  gcc/testsuite/rust/compile/macro27.rs
*************** d821668aa6dd7bcd7412de828c3800c8  gcc/te
*** 98951,99005 ****
  959c846fb4dcc18dab98e2f73485e3da  gcc/testsuite/rust/compile/macro38.rs
  ec75483aa3888f5e6a15380b33895a40  gcc/testsuite/rust/compile/macro39.rs
  47935881e7414eacc5ee88b55b692cda  gcc/testsuite/rust/compile/macro4.rs
! 70c5e19fb60255905387872decf8841a  gcc/testsuite/rust/compile/macro40.rs
  3b11e1cf2d0e9a7d2ad4f22731a32842  gcc/testsuite/rust/compile/macro41.rs
! 626ba12f2346bb08aa457dfae9d12149  gcc/testsuite/rust/compile/macro42.rs
! 6be48872c1bebeca26b0a0c3863b6816  gcc/testsuite/rust/compile/macro43.rs
  a270542d574a49c94c806c3f521d259c  gcc/testsuite/rust/compile/macro44.rs
  0d4568d3df391c28384dcb6eda25085b  gcc/testsuite/rust/compile/macro45.rs
  8a9c7aa5f77919dfbd071ece74c1ddad  gcc/testsuite/rust/compile/macro46.rs
  cea6b447d14844469e6a66daab2ef606  gcc/testsuite/rust/compile/macro5.rs
! a826fd8e17270c6a418dd2d9230f3dfc  gcc/testsuite/rust/compile/macro6.rs
! 7a6a66a55a39bce13a41f5f309d5c78a  gcc/testsuite/rust/compile/macro7.rs
  06bb53602d66838d4c8109b831eeb7db  gcc/testsuite/rust/compile/macro8.rs
  5ceb4a75d4b0622e359a0de43f36762b  gcc/testsuite/rust/compile/macro9.rs
  0e51610f4552bff322366234a94cbaee  gcc/testsuite/rust/compile/macro_export_1.rs
  a57477ce9d60aea59edc946b7c399d07  gcc/testsuite/rust/compile/macro_return.rs
  72c0d2982b1ab36cffb0350603371eca  gcc/testsuite/rust/compile/match1.rs
  1b91ba46251a89048af8618b291df12e  gcc/testsuite/rust/compile/match2.rs
  28e5112c752d27c58ea4a15b7f2e415c  gcc/testsuite/rust/compile/match3.rs
! b0b06692e5b15cadf2e51784532bca6c  gcc/testsuite/rust/compile/match4.rs
! b0e4fe4aa3e67c3ed0b6404c4ec0dc57  gcc/testsuite/rust/compile/match5.rs
  fc40a989e45e92ff36307dae69c7feba  gcc/testsuite/rust/compile/match6.rs
  787fdfa2348d255ae6a03213c05501f1  gcc/testsuite/rust/compile/match7.rs
! 456b9dca3b19b6ca83421fc1379c539f  gcc/testsuite/rust/compile/method1.rs
  c4554c31e215ae41498beabf0c78ad00  gcc/testsuite/rust/compile/method2.rs
  81fa68fc39cbeed3ddda23fc166d2f17  gcc/testsuite/rust/compile/mismatch-crate-name.rs
  e231e538febe2b589a3f0eaacc8ed989  gcc/testsuite/rust/compile/missing_closing_paren.rs
! 6847e46e8fb1faccc912a128920d7966  gcc/testsuite/rust/compile/missing_middle/both_path.rs
! 5a19b08ad9c6d2b2a7206a0bac429af9  gcc/testsuite/rust/compile/missing_middle/explicit.not.rs
! cd05644ed63556d4b86d76594e45c19b  gcc/testsuite/rust/compile/missing_middle/inner_path.rs
! 0c698b207d7baa3852f8a068f236bac4  gcc/testsuite/rust/compile/missing_middle/other.rs
! e423cd71d83e2ff468da6055234aac58  gcc/testsuite/rust/compile/missing_middle/outer_path.rs
! e7e40a55fdf47f28c89ad061c6470378  gcc/testsuite/rust/compile/missing_middle/sub/mod.rs
  775854480777f26a721b17fa79300bac  gcc/testsuite/rust/compile/missing_return1.rs
! 10758cae7fd6365c549142fec1eca417  gcc/testsuite/rust/compile/mod_missing_middle.rs
  8d7d946e590c2876825aeb5b33acbe76  gcc/testsuite/rust/compile/multi_reference_type.rs
  0e29d0825fda239bc7af83c9fccfaf89  gcc/testsuite/rust/compile/never_type1.rs
! c93bf8c6889db7c880a5fbef8d112d1a  gcc/testsuite/rust/compile/parse_complex_generic_application.rs
! 27a79bb9db55d976afe6191f7226c097  gcc/testsuite/rust/compile/parse_complex_generic_application2.rs
  ac7d528f48d6a84b3e60f20a514d6cf7  gcc/testsuite/rust/compile/parse_empty_tuple_pattern.rs
  114e68344ffd8da36992cebba2f47a5f  gcc/testsuite/rust/compile/parse_range.rs
! f9b9eba756232c960e223c8cecf948ab  gcc/testsuite/rust/compile/privacy1.rs
  4da8baa4cd281d900c7d76ef49e2094f  gcc/testsuite/rust/compile/privacy2.rs
! 2d00fec9f54ad90dc17cb74ad742c7d9  gcc/testsuite/rust/compile/privacy3.rs
! e418569b4527cc785cde1c70680fb739  gcc/testsuite/rust/compile/privacy4.rs
! d08245a3ce13c8368b82bb2a56b7561c  gcc/testsuite/rust/compile/privacy5.rs
! 5c4761fe9ae9999c291f64e919454d82  gcc/testsuite/rust/compile/privacy6.rs
  b1b0e52c874721c0a325366a7bc0642e  gcc/testsuite/rust/compile/privacy7.rs
  90a3931a025c23dc07fbc9e12bc26144  gcc/testsuite/rust/compile/pub_restricted_1.rs
  d741a0191dd04a79a7edaaf116ec4f12  gcc/testsuite/rust/compile/pub_restricted_2.rs
  6bd1b5dbdfe5f30de51ab30015c5be78  gcc/testsuite/rust/compile/pub_restricted_3.rs
  2489fea6f272449ac3fb59684962b103  gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs
  b9d738cbe9432ef9912a084d6d0017b5  gcc/testsuite/rust/compile/raw_identifiers_underscore.rs
  18866bec0bccb2a4700637c28efbeaac  gcc/testsuite/rust/compile/rawbytestring.rs
--- 108566,108699 ----
  959c846fb4dcc18dab98e2f73485e3da  gcc/testsuite/rust/compile/macro38.rs
  ec75483aa3888f5e6a15380b33895a40  gcc/testsuite/rust/compile/macro39.rs
  47935881e7414eacc5ee88b55b692cda  gcc/testsuite/rust/compile/macro4.rs
! 1948e4f81ca6c91d69420cff1f6e72ef  gcc/testsuite/rust/compile/macro40.rs
  3b11e1cf2d0e9a7d2ad4f22731a32842  gcc/testsuite/rust/compile/macro41.rs
! 41a82268280de492ad11fccca989e3eb  gcc/testsuite/rust/compile/macro42.rs
! c9d7472113e506b6a73520ce6287af67  gcc/testsuite/rust/compile/macro43.rs
  a270542d574a49c94c806c3f521d259c  gcc/testsuite/rust/compile/macro44.rs
  0d4568d3df391c28384dcb6eda25085b  gcc/testsuite/rust/compile/macro45.rs
  8a9c7aa5f77919dfbd071ece74c1ddad  gcc/testsuite/rust/compile/macro46.rs
+ 41407bd52a2f99ff811b674df5d2b718  gcc/testsuite/rust/compile/macro47.rs
+ d2bab26b4f2d917ba51ca239028dc234  gcc/testsuite/rust/compile/macro48.rs
+ 68cb5cb50b2cf8ad56c8425848abade9  gcc/testsuite/rust/compile/macro49.rs
  cea6b447d14844469e6a66daab2ef606  gcc/testsuite/rust/compile/macro5.rs
! b302559ca62aed1d6bc27155de88c055  gcc/testsuite/rust/compile/macro50.rs
! 9bfa519d74b039a71bf5fe0b4cd8326b  gcc/testsuite/rust/compile/macro51.rs
! 78a5aa89cac023bc785c0adb9f089fd0  gcc/testsuite/rust/compile/macro52.rs
! 898735ef79f68dfc70d4168bba56d096  gcc/testsuite/rust/compile/macro53.rs
! c14be03a4c0ad9d8d9bb574301accefd  gcc/testsuite/rust/compile/macro54.rs
! ca850e23b6b7c81edc9053233d083b47  gcc/testsuite/rust/compile/macro55.rs
! d1cad6e9a95fe096eb686831198c622f  gcc/testsuite/rust/compile/macro56.rs
! ad1d9b6db0e590cab45d2df94e6b4774  gcc/testsuite/rust/compile/macro57.rs
! c44ce1040a8186dadb94075ceb8a9568  gcc/testsuite/rust/compile/macro6.rs
! fd673f9260f234aee491e8d2fcc55acd  gcc/testsuite/rust/compile/macro7.rs
  06bb53602d66838d4c8109b831eeb7db  gcc/testsuite/rust/compile/macro8.rs
  5ceb4a75d4b0622e359a0de43f36762b  gcc/testsuite/rust/compile/macro9.rs
+ 0e2d475222f18ad870b3b108e20ec203  gcc/testsuite/rust/compile/macro_call_statement.rs
  0e51610f4552bff322366234a94cbaee  gcc/testsuite/rust/compile/macro_export_1.rs
  a57477ce9d60aea59edc946b7c399d07  gcc/testsuite/rust/compile/macro_return.rs
+ fa3e0646a7b030bb430b127da2900675  gcc/testsuite/rust/compile/macro_rules_macro_rules.rs
+ a4fd702d54b6ee9ebfb2e6e9ad7d9588  gcc/testsuite/rust/compile/macro_use1.rs
  72c0d2982b1ab36cffb0350603371eca  gcc/testsuite/rust/compile/match1.rs
  1b91ba46251a89048af8618b291df12e  gcc/testsuite/rust/compile/match2.rs
  28e5112c752d27c58ea4a15b7f2e415c  gcc/testsuite/rust/compile/match3.rs
! 55468641e4b8308c6e8ba0e77f4d257f  gcc/testsuite/rust/compile/match4.rs
! 19f321c15c16a894ba8df52499af496c  gcc/testsuite/rust/compile/match5.rs
  fc40a989e45e92ff36307dae69c7feba  gcc/testsuite/rust/compile/match6.rs
  787fdfa2348d255ae6a03213c05501f1  gcc/testsuite/rust/compile/match7.rs
! b30867c131b27bce830a37c41459788b  gcc/testsuite/rust/compile/match_break.rs
! a8880487be46564c8633ddd3863cec15  gcc/testsuite/rust/compile/method1.rs
  c4554c31e215ae41498beabf0c78ad00  gcc/testsuite/rust/compile/method2.rs
  81fa68fc39cbeed3ddda23fc166d2f17  gcc/testsuite/rust/compile/mismatch-crate-name.rs
+ cea8fc6391958ad7dfaf3c9c0fae6d86  gcc/testsuite/rust/compile/mismatched-types.rs
  e231e538febe2b589a3f0eaacc8ed989  gcc/testsuite/rust/compile/missing_closing_paren.rs
! 18348ac5b621923f3e14d010510eb8ce  gcc/testsuite/rust/compile/missing_constructor_fields.rs
  775854480777f26a721b17fa79300bac  gcc/testsuite/rust/compile/missing_return1.rs
! 3488d558ea779e419eb5939f19689484  gcc/testsuite/rust/compile/mod_missing_middle.rs
! 6847e46e8fb1faccc912a128920d7966  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/both_path.rs
! 5a19b08ad9c6d2b2a7206a0bac429af9  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/explicit.not.rs
! 0c698b207d7baa3852f8a068f236bac4  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/explicit.not/other.rs
! cd05644ed63556d4b86d76594e45c19b  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/inner_path.rs
! e423cd71d83e2ff468da6055234aac58  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/outer_path.rs
! e7e40a55fdf47f28c89ad061c6470378  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/sub/mod.rs
  8d7d946e590c2876825aeb5b33acbe76  gcc/testsuite/rust/compile/multi_reference_type.rs
+ 86baf58f59b1e87021a6756b12b0146c  gcc/testsuite/rust/compile/multiple_bindings1.rs
+ f31b2774759388ed35dc4269f901b27b  gcc/testsuite/rust/compile/multiple_bindings2.rs
+ 5347e97f6abe755953017f56901ed5cd  gcc/testsuite/rust/compile/name_resolution1.rs
+ b8f825ac42c7e54fea373f78bd007073  gcc/testsuite/rust/compile/name_resolution10.rs
+ d197c6d0845a807c88d2377ae9e39bfa  gcc/testsuite/rust/compile/name_resolution11.rs
+ 7db500b7b9b00b506cdd69f1ffcd5740  gcc/testsuite/rust/compile/name_resolution12.rs
+ cec7440c36d14db8fd0f6e229c6fd84a  gcc/testsuite/rust/compile/name_resolution13.rs
+ 08857bb42431e383df7b82428816b19a  gcc/testsuite/rust/compile/name_resolution2.rs
+ 4451e4aed7aa23af2e35ef923e109c43  gcc/testsuite/rust/compile/name_resolution3.rs
+ 4b74edfb7c386573ae3d930b56a7058f  gcc/testsuite/rust/compile/name_resolution4.rs
+ a28faf8494eeae9637209b6141cf803a  gcc/testsuite/rust/compile/name_resolution5.rs
+ bc40419d4e6c370ac53314f49208b4dc  gcc/testsuite/rust/compile/name_resolution6.rs
+ 702d1b326baea9ee4f2d0c7cd2304fd4  gcc/testsuite/rust/compile/name_resolution7.rs
+ 4556c16d8845a57bf94d639395f64284  gcc/testsuite/rust/compile/name_resolution8.rs
+ aa468dd68aad388b0ddf749bd7d2a12b  gcc/testsuite/rust/compile/name_resolution9.rs
+ a2a2d0395b94225c5109187761c0e213  gcc/testsuite/rust/compile/nested_generic.rs
+ 25ca4de3f40354d73966cfdb692dfeee  gcc/testsuite/rust/compile/nested_macro_definition.rs
+ 5cbc00140bae9d06617f7e444baaf508  gcc/testsuite/rust/compile/nested_macro_use1.rs
+ 9cbbbc66b7212edf548d93f340d97e0e  gcc/testsuite/rust/compile/nested_macro_use2.rs
+ 3b2626cfdc7db1273eb3ace63fc4ebf3  gcc/testsuite/rust/compile/nested_macro_use3.rs
  0e29d0825fda239bc7af83c9fccfaf89  gcc/testsuite/rust/compile/never_type1.rs
! 19dbaffedde4ba3825d87ab394b19d20  gcc/testsuite/rust/compile/non_foreign_variadic_function.rs
! 3639ca46ce436f80bb407f584c24a65e  gcc/testsuite/rust/compile/non_member_const.rs
! cd02e5ae651b681a19fcaf8376afcbf5  gcc/testsuite/rust/compile/not_a_float_literal_tuple_index.rs
! 295d3f361dc7ebc9f93d3f2553623849  gcc/testsuite/rust/compile/not_find_value_in_scope.rs
! 6030c60f7b74c803068d451cb9ced7e5  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs
! 090d2f2bf747a624502f3ee033467544  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs
! 938014f84c9261ed6b113bc617d40919  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs
! 1bd2c1a4dbfa8382bcaf5f76daa62080  gcc/testsuite/rust/compile/parse_complex_generic_application.rs
! 544d5b140c46a68a1b223a58fed49c32  gcc/testsuite/rust/compile/parse_complex_generic_application2.rs
  ac7d528f48d6a84b3e60f20a514d6cf7  gcc/testsuite/rust/compile/parse_empty_tuple_pattern.rs
+ 7b85f8417fcc86423cfe4746076018be  gcc/testsuite/rust/compile/parse_generic_path_expr.rs
+ 37c7aff5159b5715fc8cd7a7745826e1  gcc/testsuite/rust/compile/parse_global_path_generic.rs
+ 211a4d8d85277f4b17c185612ae9d99e  gcc/testsuite/rust/compile/parse_invalid_specialization.rs
+ fa1b080c05380ac0134d408be302d780  gcc/testsuite/rust/compile/parse_item_default_macro.rs
+ 7db46b087a9339ddd439310cfee25358  gcc/testsuite/rust/compile/parse_pub_unit_type.rs
  114e68344ffd8da36992cebba2f47a5f  gcc/testsuite/rust/compile/parse_range.rs
! 9d33d486f2d0ec95adbc86fda39b9f62  gcc/testsuite/rust/compile/parse_specialization.rs
! 1278a63dcebf6ac473bf094b98ea0db2  gcc/testsuite/rust/compile/parse_variadic_function.rs
! 334e926cb04db5e55dd49c65ded14065  gcc/testsuite/rust/compile/path_as_generic_arg.rs
! 047765489bd97f90336445add2055145  gcc/testsuite/rust/compile/pattern-or.rs
! f8f546129e119d41d1ac7b7b8e997bca  gcc/testsuite/rust/compile/pattern-struct.rs
! 423d1017eea48611d7e71642d906a3d6  gcc/testsuite/rust/compile/pattern_variadic.rs
! daea204ee4a93b0de9f17381a08f8137  gcc/testsuite/rust/compile/privacy1.rs
  4da8baa4cd281d900c7d76ef49e2094f  gcc/testsuite/rust/compile/privacy2.rs
! eba63e34bf4a3d4997147475917fcb15  gcc/testsuite/rust/compile/privacy3.rs
! fe3b879720289aae0e7b44856a4354c7  gcc/testsuite/rust/compile/privacy4.rs
! c0843b42d79bf0c882db183800c4e8ec  gcc/testsuite/rust/compile/privacy5.rs
! d70eb64b7474083aaf938052cf551ce2  gcc/testsuite/rust/compile/privacy6.rs
  b1b0e52c874721c0a325366a7bc0642e  gcc/testsuite/rust/compile/privacy7.rs
+ 9b7219e724eac9e35cd9d2fd18e153ba  gcc/testsuite/rust/compile/privacy8.rs
+ f6b2d1b1b35b33dcdddd3bb19e17981a  gcc/testsuite/rust/compile/privacy9.rs
+ f6fd463372ec927d737a6adce056d704  gcc/testsuite/rust/compile/proc_macro_attribute_crate_type.rs
+ 680383e3d3dd395778b06b8f6df40202  gcc/testsuite/rust/compile/proc_macro_attribute_non_function.rs
+ 6be6ba4392564e325bf2988c9d512b03  gcc/testsuite/rust/compile/proc_macro_attribute_non_root_function.rs
+ da41b6bf8d7c739329a64766396dae4f  gcc/testsuite/rust/compile/proc_macro_attribute_non_root_method.rs
+ 8792988656ea359dacec203ca78c5a51  gcc/testsuite/rust/compile/proc_macro_attribute_non_root_module.rs
+ 529e5237d0b6a834d226f22b986d693a  gcc/testsuite/rust/compile/proc_macro_attribute_private.rs
+ c749e1d8aa6bfc949ef97e6aef4b1213  gcc/testsuite/rust/compile/proc_macro_crate_type.rs
+ 8ece177f40dec7c7230217be35166808  gcc/testsuite/rust/compile/proc_macro_derive_crate_type.rs
+ c6a091067fa6f39fb4fb83684685e02b  gcc/testsuite/rust/compile/proc_macro_derive_malformed.rs
+ 2e16f825c9665e5863a83c6c59b9049b  gcc/testsuite/rust/compile/proc_macro_derive_non_function.rs
+ 2b2d1621ee972ef8b371152fc8f2ca88  gcc/testsuite/rust/compile/proc_macro_derive_non_root_function.rs
+ 82d95b69a022bed988ac429c922d384a  gcc/testsuite/rust/compile/proc_macro_derive_non_root_method.rs
+ e98083eb89a842947a4cdd0f0323bcf6  gcc/testsuite/rust/compile/proc_macro_derive_non_root_module.rs
+ 60c0d6600c1a9cc6ba9175075ea99b6b  gcc/testsuite/rust/compile/proc_macro_derive_private.rs
+ b3e522d7e12f5397c2a39bb3376c50e5  gcc/testsuite/rust/compile/proc_macro_non_function.rs
+ 4a13fe8af1aaedb0bf53ae31253d5bcd  gcc/testsuite/rust/compile/proc_macro_non_root_function.rs
+ 14c0baad4c7e892fabafceec2e9045e8  gcc/testsuite/rust/compile/proc_macro_non_root_method.rs
+ c5bae63cbc837c437488896e81a44674  gcc/testsuite/rust/compile/proc_macro_non_root_module.rs
+ ea64ffc41b9add950fc498f76a5a0c36  gcc/testsuite/rust/compile/proc_macro_private.rs
+ 1f5fa1c45a54f678ab64ca244c1fe6fe  gcc/testsuite/rust/compile/proc_macro_pub_function.rs
+ 1dd70ad3ec7121f165133c76244a824e  gcc/testsuite/rust/compile/proc_macro_pub_module.rs
  90a3931a025c23dc07fbc9e12bc26144  gcc/testsuite/rust/compile/pub_restricted_1.rs
  d741a0191dd04a79a7edaaf116ec4f12  gcc/testsuite/rust/compile/pub_restricted_2.rs
  6bd1b5dbdfe5f30de51ab30015c5be78  gcc/testsuite/rust/compile/pub_restricted_3.rs
+ 8556679d5fb3f07093c6b5c029196057  gcc/testsuite/rust/compile/range_from_expr_for_loop.rs
  2489fea6f272449ac3fb59684962b103  gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs
  b9d738cbe9432ef9912a084d6d0017b5  gcc/testsuite/rust/compile/raw_identifiers_underscore.rs
  18866bec0bccb2a4700637c28efbeaac  gcc/testsuite/rust/compile/rawbytestring.rs
*************** c08fe45d712fc35c9b06015771288ba8  gcc/te
*** 99009,99032 ****
  6fa963f7ee87e8cee969977bdc7c2a43  gcc/testsuite/rust/compile/redef_error4.rs
  f02be21ac7383cdc26c4db0eeaa6c44d  gcc/testsuite/rust/compile/redef_error5.rs
  bf3d52300c172b82f789437779b34217  gcc/testsuite/rust/compile/redef_error6.rs
! df700fef96532515f8e5f0646193f9ad  gcc/testsuite/rust/compile/reference1.rs
  30f8fce22ebd2b045d3c572d987e757b  gcc/testsuite/rust/compile/rust-const-blog-issue.rs
  2cb7dfbccc813bbbcd257a0425122660  gcc/testsuite/rust/compile/rustc_attr1.rs
  2ef2e5399d947093c2b82f36e833a5bd  gcc/testsuite/rust/compile/self-path1.rs
  6dc3e1864ac0a6b51f4de1104a924147  gcc/testsuite/rust/compile/self-path2.rs
! 089df76a428b6f2ea61f62e6fc175a1d  gcc/testsuite/rust/compile/shadow1.rs
  c76cd68ebcf9bb89b67b55d54a10cee5  gcc/testsuite/rust/compile/specify-crate-name.rs
  f0310c328b1fddc85d5bebedce0cf769  gcc/testsuite/rust/compile/static_var1.rs
! 49191b19f63c7462776bf2f265a242b7  gcc/testsuite/rust/compile/stmt_with_block_err1.rs
  2bc6179d03b3e34e3ad83b5e4773cf8b  gcc/testsuite/rust/compile/struct_align1.rs
  9b4573b2cb3d14c981aa2a9b5ae8f5f1  gcc/testsuite/rust/compile/struct_align2.rs
  0089260781c87386353e1d68593622fd  gcc/testsuite/rust/compile/struct_init1.rs
  00e347708a104c565e0d029fd61f7e9d  gcc/testsuite/rust/compile/struct_pack1.rs
  c2a21c19762e48d9fe8a2144950b1b4f  gcc/testsuite/rust/compile/struct_pack2.rs
  b367b9437770c67d8d9059972bc1a3e8  gcc/testsuite/rust/compile/syntax-only.rs
- fa137bc0614a02dafb820751293a47c7  gcc/testsuite/rust/compile/test_mod.rs
  156d3a4eb60d669211c1c31f6828f576  gcc/testsuite/rust/compile/torture/all_doc_comment_line_blocks.rs
  fdf890b2027e28e726e5201eddef6b4f  gcc/testsuite/rust/compile/torture/all_doc_comment_line_blocks_crlf.rs
  9c037ed72d92be90dd811fb6f830c3a7  gcc/testsuite/rust/compile/torture/arithmetic_expressions1.rs
  700e78324e0228664e548115a92deb3c  gcc/testsuite/rust/compile/torture/array_const_fold_1.rs
  977eb70c73e224801b9274751d21f449  gcc/testsuite/rust/compile/torture/array_const_fold_2.rs
--- 108703,108740 ----
  6fa963f7ee87e8cee969977bdc7c2a43  gcc/testsuite/rust/compile/redef_error4.rs
  f02be21ac7383cdc26c4db0eeaa6c44d  gcc/testsuite/rust/compile/redef_error5.rs
  bf3d52300c172b82f789437779b34217  gcc/testsuite/rust/compile/redef_error6.rs
! e777fc9630d68ddc2900c3d74fc2318f  gcc/testsuite/rust/compile/ref_pattern_fn_param1.rs
! c864259519a663ecdb9ce794228363de  gcc/testsuite/rust/compile/ref_pattern_fn_param2.rs
! 08b2ec32df097b8615e76077b1bb5ad5  gcc/testsuite/rust/compile/reference1.rs
! 45f5ebc9d59101ae861f3e6dca046125  gcc/testsuite/rust/compile/repeated_constructor_fields.rs
  30f8fce22ebd2b045d3c572d987e757b  gcc/testsuite/rust/compile/rust-const-blog-issue.rs
+ 515b61b093475669e79cf8953fd51193  gcc/testsuite/rust/compile/rust_abi.rs
  2cb7dfbccc813bbbcd257a0425122660  gcc/testsuite/rust/compile/rustc_attr1.rs
+ 370d1079fd26673c14c282e6ccf629a1  gcc/testsuite/rust/compile/rustc_const_stable.rs
  2ef2e5399d947093c2b82f36e833a5bd  gcc/testsuite/rust/compile/self-path1.rs
  6dc3e1864ac0a6b51f4de1104a924147  gcc/testsuite/rust/compile/self-path2.rs
! ce60d6c14138123e0c27ee626b14c1b2  gcc/testsuite/rust/compile/self_const_ptr.rs
! 345a25d5121fd2dbda8b949098005f58  gcc/testsuite/rust/compile/self_mut_ptr.rs
! 08fba70febee1d69b9e95726a05aaed4  gcc/testsuite/rust/compile/self_ptr.rs
! d9263995a2f3f15bd4abdea500a90f8b  gcc/testsuite/rust/compile/shadow1.rs
! 26a750cf312f91f5f35658b8da415d03  gcc/testsuite/rust/compile/sized-stub.rs
! 596f0aa63c039c058541e054d1b37f7d  gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs
! cc55ba48071b2e36726a272bec14ac7e  gcc/testsuite/rust/compile/slice_rest_pattern.rs
  c76cd68ebcf9bb89b67b55d54a10cee5  gcc/testsuite/rust/compile/specify-crate-name.rs
  f0310c328b1fddc85d5bebedce0cf769  gcc/testsuite/rust/compile/static_var1.rs
! 4d03e64527f8bdfbe648b8d3d0d8a3e8  gcc/testsuite/rust/compile/stmt_with_block_dot.rs
! 570a954443a78c2e050e56451d9f74a7  gcc/testsuite/rust/compile/stmt_with_block_err1.rs
! cb2ba2189235c85921385195ef70db47  gcc/testsuite/rust/compile/stringify.rs
! 0638f6f2fdd60dec37f5d96bc57237bd  gcc/testsuite/rust/compile/struct-expr-parse.rs
  2bc6179d03b3e34e3ad83b5e4773cf8b  gcc/testsuite/rust/compile/struct_align1.rs
  9b4573b2cb3d14c981aa2a9b5ae8f5f1  gcc/testsuite/rust/compile/struct_align2.rs
  0089260781c87386353e1d68593622fd  gcc/testsuite/rust/compile/struct_init1.rs
  00e347708a104c565e0d029fd61f7e9d  gcc/testsuite/rust/compile/struct_pack1.rs
  c2a21c19762e48d9fe8a2144950b1b4f  gcc/testsuite/rust/compile/struct_pack2.rs
  b367b9437770c67d8d9059972bc1a3e8  gcc/testsuite/rust/compile/syntax-only.rs
  156d3a4eb60d669211c1c31f6828f576  gcc/testsuite/rust/compile/torture/all_doc_comment_line_blocks.rs
  fdf890b2027e28e726e5201eddef6b4f  gcc/testsuite/rust/compile/torture/all_doc_comment_line_blocks_crlf.rs
+ e523e1100be82cdc849bfc94efa58c3e  gcc/testsuite/rust/compile/torture/alt_patterns1.rs
  9c037ed72d92be90dd811fb6f830c3a7  gcc/testsuite/rust/compile/torture/arithmetic_expressions1.rs
  700e78324e0228664e548115a92deb3c  gcc/testsuite/rust/compile/torture/array_const_fold_1.rs
  977eb70c73e224801b9274751d21f449  gcc/testsuite/rust/compile/torture/array_const_fold_2.rs
*************** d5d1af9be28084065ca5bb0e0d583b32  gcc/te
*** 99043,99049 ****
  f6ef7fea1ef5fc900269037059a043f9  gcc/testsuite/rust/compile/torture/arrays_index2.rs
  b8c2c7b3c891bc3a263e763f2163c358  gcc/testsuite/rust/compile/torture/arrays_index3.rs
  92723e1529e3f0e7c0f3f8c66635a91f  gcc/testsuite/rust/compile/torture/as_bool_char.rs
! 28a0f4d2764e34784b460796e30a52dd  gcc/testsuite/rust/compile/torture/associated_types1.rs
  0a97b462b38130103f86ca35421a3c6a  gcc/testsuite/rust/compile/torture/autoderef1.rs
  167fe74868ba7bded3851a9357f3b2dc  gcc/testsuite/rust/compile/torture/block_expr1.rs
  a065c1c958a9fdc1a842ebdb363ccb6c  gcc/testsuite/rust/compile/torture/block_expr2.rs
--- 108751,108757 ----
  f6ef7fea1ef5fc900269037059a043f9  gcc/testsuite/rust/compile/torture/arrays_index2.rs
  b8c2c7b3c891bc3a263e763f2163c358  gcc/testsuite/rust/compile/torture/arrays_index3.rs
  92723e1529e3f0e7c0f3f8c66635a91f  gcc/testsuite/rust/compile/torture/as_bool_char.rs
! ea7b41e80e0f70a838cd7436f2141d07  gcc/testsuite/rust/compile/torture/associated_types1.rs
  0a97b462b38130103f86ca35421a3c6a  gcc/testsuite/rust/compile/torture/autoderef1.rs
  167fe74868ba7bded3851a9357f3b2dc  gcc/testsuite/rust/compile/torture/block_expr1.rs
  a065c1c958a9fdc1a842ebdb363ccb6c  gcc/testsuite/rust/compile/torture/block_expr2.rs
*************** becfe673b19d48d9d128de9bc9a949f9  gcc/te
*** 99059,99064 ****
--- 108767,108773 ----
  cbdcc1458dd3b905587a473cc7f110e1  gcc/testsuite/rust/compile/torture/borrow1.rs
  48041d4df15544e16464dcba206f2a92  gcc/testsuite/rust/compile/torture/borrow_function.rs
  ebf53f0ebfc6c6854e60f5b3b4326516  gcc/testsuite/rust/compile/torture/break_function.rs
+ 4be61dfeccf1b2e7721cf71ca3db0938  gcc/testsuite/rust/compile/torture/builtin_abort.rs
  2b56ba354fbb2cc244d974d266e2983b  gcc/testsuite/rust/compile/torture/byte_char_str.rs
  0005d13ab30058ae7007910b10f9a902  gcc/testsuite/rust/compile/torture/byte_str.rs
  ae3d551190c1a96fcc88e43e12f59035  gcc/testsuite/rust/compile/torture/cast1.rs
*************** a6c52e49acead3e0c70ad1d2fb7b2c56  gcc/te
*** 99070,99076 ****
  335ffa18cefc80ab0dd0187d81d5ae0c  gcc/testsuite/rust/compile/torture/coercion1.rs
  f8f937f1acf2745e64c20616c3515f69  gcc/testsuite/rust/compile/torture/coercion2.rs
  44a820ec9fc1f76d7d84a0377b42d82b  gcc/testsuite/rust/compile/torture/comparison_expr1.rs
! 9355c1d3351d72e1b9c6eaff5bbad44d  gcc/testsuite/rust/compile/torture/compile.exp
  e2853f6adb4ff42b52de7bd5386a1b19  gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs
  f22e92cee5cea1b44f8b9966a8027a12  gcc/testsuite/rust/compile/torture/conditional.rs
  d78b6a0262085ca308a5a6b3653a3247  gcc/testsuite/rust/compile/torture/constant1.rs
--- 108779,108785 ----
  335ffa18cefc80ab0dd0187d81d5ae0c  gcc/testsuite/rust/compile/torture/coercion1.rs
  f8f937f1acf2745e64c20616c3515f69  gcc/testsuite/rust/compile/torture/coercion2.rs
  44a820ec9fc1f76d7d84a0377b42d82b  gcc/testsuite/rust/compile/torture/comparison_expr1.rs
! a4b5dbeb62ed58333dda2c1483254606  gcc/testsuite/rust/compile/torture/compile.exp
  e2853f6adb4ff42b52de7bd5386a1b19  gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs
  f22e92cee5cea1b44f8b9966a8027a12  gcc/testsuite/rust/compile/torture/conditional.rs
  d78b6a0262085ca308a5a6b3653a3247  gcc/testsuite/rust/compile/torture/constant1.rs
*************** d1a4004c5a6ded0d144af392d0cd79ed  gcc/te
*** 99083,99088 ****
--- 108792,108798 ----
  8999f29296027efbe4203ab972aabca2  gcc/testsuite/rust/compile/torture/doc_comment.rs
  9052e782c6bd21ebdeacd2ef37c971db  gcc/testsuite/rust/compile/torture/enum1.rs
  36c2a8fd2c29ef6fb5566c975128b2f4  gcc/testsuite/rust/compile/torture/extern_mod1.rs
+ 8278937d0cc6eda70c0ed9f40ea2d918  gcc/testsuite/rust/compile/torture/extern_mod1/modules/mod.rs
  4c781d2c921d6401c22d96d426d243de  gcc/testsuite/rust/compile/torture/extern_mod2.rs
  1490d84b237737cb823c9217c7c951a1  gcc/testsuite/rust/compile/torture/float1.rs
  648d8471d92dd7e628efe64b7fe0cca3  gcc/testsuite/rust/compile/torture/float_types.rs
*************** d1a4004c5a6ded0d144af392d0cd79ed  gcc/te
*** 99091,99135 ****
  d77e665974d88bd08a4471b05f5bff0a  gcc/testsuite/rust/compile/torture/forward_decl_3-unsafe.rs
  857a877b0ff7ff3ac0a864d41f3dadb7  gcc/testsuite/rust/compile/torture/forward_decl_3.rs
  b3b1f6a81cb3ee39ad4729bfe15303db  gcc/testsuite/rust/compile/torture/forward_decl_4.rs
! 4d6d206c9b73559c2e4c6b2459556ccf  gcc/testsuite/rust/compile/torture/forward_decl_5.rs
  2a14ed73eb56715fac47961c7ad1d224  gcc/testsuite/rust/compile/torture/func1.rs
  459ebd43954a1ec8ff304444907f2f6a  gcc/testsuite/rust/compile/torture/func2.rs
  d1c0aa9304b5787c6af6b4adee81e1bf  gcc/testsuite/rust/compile/torture/function_reference1.rs
  7bda593163cfcc89e3e33a263bf1fea0  gcc/testsuite/rust/compile/torture/function_reference2.rs
  6dbc5c586e725ca1a1cc60af5f5be2f1  gcc/testsuite/rust/compile/torture/function_reference3.rs
  317e79768c71ad90371a40260f219cc9  gcc/testsuite/rust/compile/torture/function_reference4.rs
! 31d271a46ccdec59fbb44ae1fb4a5a3c  gcc/testsuite/rust/compile/torture/generics1.rs
! 403e15c444b6152ebdeb8368ea8bf20e  gcc/testsuite/rust/compile/torture/generics10.rs
! 4591a35e0c731b0d0863610a6b1b1d91  gcc/testsuite/rust/compile/torture/generics11.rs
! d4648465c2fc6d1afccbd652095cea7c  gcc/testsuite/rust/compile/torture/generics12.rs
! a7763fec6e5da12509019fe04a7eaa75  gcc/testsuite/rust/compile/torture/generics13.rs
! a1083dc6859c2823fe9d3f36afb98b45  gcc/testsuite/rust/compile/torture/generics14.rs
! 85a770db8ca7ba7d595c49ebabe23aa1  gcc/testsuite/rust/compile/torture/generics15.rs
! cc3eb5ac4c68bc58a1d92af16aff98cc  gcc/testsuite/rust/compile/torture/generics16.rs
! 2cf3425ef62974727b0fb8f4f5699ca7  gcc/testsuite/rust/compile/torture/generics17.rs
! a039822ddae45e2ee1a59389e3c47267  gcc/testsuite/rust/compile/torture/generics18.rs
! 83173bf99a0cca8f0d26bbbeb5427897  gcc/testsuite/rust/compile/torture/generics19.rs
! 9c5024bb8dd4a549767de612cd5651d9  gcc/testsuite/rust/compile/torture/generics2.rs
! 65d07e5286011ec0091424fd60d7a702  gcc/testsuite/rust/compile/torture/generics20.rs
! 33217cf3aef0d9c9909a55282cce801e  gcc/testsuite/rust/compile/torture/generics21.rs
! 35e786419d8b443210aaa13aca7b44ac  gcc/testsuite/rust/compile/torture/generics22.rs
! 6b3fbd204eb4b5c12fcbc69412271f08  gcc/testsuite/rust/compile/torture/generics23.rs
! c3bea67ab0bf99806f79530e080e0893  gcc/testsuite/rust/compile/torture/generics24.rs
! 444b9ca28d24ffcfef1d4420fc7df621  gcc/testsuite/rust/compile/torture/generics25.rs
! 66d588ed03a0d5452ac4713042b61db1  gcc/testsuite/rust/compile/torture/generics26.rs
! 6e9a5a9ec1095bd01a54a7a85874fabc  gcc/testsuite/rust/compile/torture/generics27.rs
! 994efb04f1764595dcec4ae9cdab8271  gcc/testsuite/rust/compile/torture/generics28.rs
! 531f7e92bd87f89410a4d77bf540292c  gcc/testsuite/rust/compile/torture/generics29.rs
! ccdbd1a4ad003f7b6263f2ac4aa5bd67  gcc/testsuite/rust/compile/torture/generics3.rs
! 16bb854e046d4ba9004d1225becca470  gcc/testsuite/rust/compile/torture/generics30.rs
! 6582c174f00f7c5c4c743a77f12f7516  gcc/testsuite/rust/compile/torture/generics31.rs
! a83c9d6f86b88779f596785fac5bb710  gcc/testsuite/rust/compile/torture/generics32.rs
! f8497b95189d70d1af5c541a473d333b  gcc/testsuite/rust/compile/torture/generics4.rs
! bb25c1f616bb4c3dc114fa7304947d72  gcc/testsuite/rust/compile/torture/generics5.rs
! aff809ae6f1d98aeab3d1f381f73a464  gcc/testsuite/rust/compile/torture/generics6.rs
! d3393609231bfe3609494fa3096f43d6  gcc/testsuite/rust/compile/torture/generics7.rs
! 10005dfa8e8b120eda5aacfcc4045d72  gcc/testsuite/rust/compile/torture/generics8.rs
! 5c9bea40d0bc96a36b253c60c4368f0f  gcc/testsuite/rust/compile/torture/generics9.rs
  395a45c2c8dc61003c5bf77fbf78f5b1  gcc/testsuite/rust/compile/torture/grouped_expr_function.rs
  a1cb1c1a5db93b8b6b3577994b51c587  gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs
  39138a8494b7da114c4f1a8cb2f7d120  gcc/testsuite/rust/compile/torture/if.rs
--- 108801,108845 ----
  d77e665974d88bd08a4471b05f5bff0a  gcc/testsuite/rust/compile/torture/forward_decl_3-unsafe.rs
  857a877b0ff7ff3ac0a864d41f3dadb7  gcc/testsuite/rust/compile/torture/forward_decl_3.rs
  b3b1f6a81cb3ee39ad4729bfe15303db  gcc/testsuite/rust/compile/torture/forward_decl_4.rs
! 2c1ad94a05348c22ca6b9ae58142a32d  gcc/testsuite/rust/compile/torture/forward_decl_5.rs
  2a14ed73eb56715fac47961c7ad1d224  gcc/testsuite/rust/compile/torture/func1.rs
  459ebd43954a1ec8ff304444907f2f6a  gcc/testsuite/rust/compile/torture/func2.rs
  d1c0aa9304b5787c6af6b4adee81e1bf  gcc/testsuite/rust/compile/torture/function_reference1.rs
  7bda593163cfcc89e3e33a263bf1fea0  gcc/testsuite/rust/compile/torture/function_reference2.rs
  6dbc5c586e725ca1a1cc60af5f5be2f1  gcc/testsuite/rust/compile/torture/function_reference3.rs
  317e79768c71ad90371a40260f219cc9  gcc/testsuite/rust/compile/torture/function_reference4.rs
! 3b97df70ef74272be2a2605b52b4b5dd  gcc/testsuite/rust/compile/torture/generics1.rs
! 5ff2340496c5b48f548eb513d5b7488e  gcc/testsuite/rust/compile/torture/generics10.rs
! b2697cc5c9f4457b27d4c264e8407fc8  gcc/testsuite/rust/compile/torture/generics11.rs
! 05d52a3a14b8316ba830e1ea730a3295  gcc/testsuite/rust/compile/torture/generics12.rs
! db851b2fea371e2916ed5435d3bc7f80  gcc/testsuite/rust/compile/torture/generics13.rs
! 0f930b04d60b6ac62e2deefc8e7e3ac2  gcc/testsuite/rust/compile/torture/generics14.rs
! 6441550ec69066b45ae93335066e9593  gcc/testsuite/rust/compile/torture/generics15.rs
! 9c0802697ebed4a4d7e4e9172637e275  gcc/testsuite/rust/compile/torture/generics16.rs
! 2214b3aa630479332cdbbb106394054d  gcc/testsuite/rust/compile/torture/generics17.rs
! d9d7d8c489196c9a6c93567d0edd8ce0  gcc/testsuite/rust/compile/torture/generics18.rs
! 47151d7ec62f6bfb2de4e8ea5bfd9442  gcc/testsuite/rust/compile/torture/generics19.rs
! 9c90b4767a1b8ed98fd538e870c5b91c  gcc/testsuite/rust/compile/torture/generics2.rs
! 70cc9131186fad582a3be7fb4a33fc09  gcc/testsuite/rust/compile/torture/generics20.rs
! d1019e1ecc6b6bb4492444918e309ac6  gcc/testsuite/rust/compile/torture/generics21.rs
! 9c2604f90bf58fa95df39fad20cda120  gcc/testsuite/rust/compile/torture/generics22.rs
! 6975f6b51450a7b4085785ab2e9cef58  gcc/testsuite/rust/compile/torture/generics23.rs
! 4ddae093d8041c88576cb979d0f275d5  gcc/testsuite/rust/compile/torture/generics24.rs
! 199f3b2a701734a9a1a5110a68c68725  gcc/testsuite/rust/compile/torture/generics25.rs
! 5aa5968e934404978f5864bc1db0b051  gcc/testsuite/rust/compile/torture/generics26.rs
! a68de14d9507aaeceb6657f4512e3638  gcc/testsuite/rust/compile/torture/generics27.rs
! e993964b19f3868f0e783d56b28cb59c  gcc/testsuite/rust/compile/torture/generics28.rs
! 1b2718ceda8c540bebdcf901cec2d17f  gcc/testsuite/rust/compile/torture/generics29.rs
! 133ba33a6bb38cd49660c3969da8c5b1  gcc/testsuite/rust/compile/torture/generics3.rs
! 7f886438800de6006de15f375b5a81a1  gcc/testsuite/rust/compile/torture/generics30.rs
! 182632540dd7df72ff8b5c42353f40c0  gcc/testsuite/rust/compile/torture/generics31.rs
! 1f9762fbcf921d6b0f6ca48d605a477a  gcc/testsuite/rust/compile/torture/generics32.rs
! 9a77e5d1b23834a3c0d1b4e8ccc935c9  gcc/testsuite/rust/compile/torture/generics4.rs
! 483296edb928d44c7fe068c809c63f6a  gcc/testsuite/rust/compile/torture/generics5.rs
! 406b86ae2686701e4025a6edc7d38367  gcc/testsuite/rust/compile/torture/generics6.rs
! 0c16fbff0f5be8e1e807134374491f7b  gcc/testsuite/rust/compile/torture/generics7.rs
! 061722f813044a39c5e6add379e2361d  gcc/testsuite/rust/compile/torture/generics8.rs
! 6fde910669228d528dbac1a7729f62d0  gcc/testsuite/rust/compile/torture/generics9.rs
  395a45c2c8dc61003c5bf77fbf78f5b1  gcc/testsuite/rust/compile/torture/grouped_expr_function.rs
  a1cb1c1a5db93b8b6b3577994b51c587  gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs
  39138a8494b7da114c4f1a8cb2f7d120  gcc/testsuite/rust/compile/torture/if.rs
*************** a41ad9d29fc8cc2864d3b3d1da781fe4  gcc/te
*** 99150,99176 ****
  d98f733774408fbc7514e5b75b429cca  gcc/testsuite/rust/compile/torture/integer_inference_var4.rs
  31b1b4b7d065b79b397ca6e80713ceb3  gcc/testsuite/rust/compile/torture/integer_inference_var5.rs
  f469e2f4fbffc501a3af510d57f34eee  gcc/testsuite/rust/compile/torture/integer_types.rs
! 4ea992999de9a051b61c5a9af4cdd702  gcc/testsuite/rust/compile/torture/intrinsics-1.rs
! 30e89a158af99bb3b5d42b05ad13e89c  gcc/testsuite/rust/compile/torture/intrinsics-2.rs
! 77a42b7aee1ea40d6fa8d55afaeebb59  gcc/testsuite/rust/compile/torture/intrinsics-3.rs
! 3c2af3c0ebb986329d44b44637340dc1  gcc/testsuite/rust/compile/torture/intrinsics-4.rs
  d9650e65226dfeb372e6d4c9e5262d66  gcc/testsuite/rust/compile/torture/intrinsics-5.rs
! 55535b69745c992b0d99d0a96d0b2fc4  gcc/testsuite/rust/compile/torture/intrinsics-6.rs
! bd2e81016ae54884de88e10e7254d054  gcc/testsuite/rust/compile/torture/intrinsics-7.rs
! 6b92e09e4549b614040c36900090982e  gcc/testsuite/rust/compile/torture/intrinsics-math.rs
  a4adc24cf95b12fa0bbeb1910a8fc8c9  gcc/testsuite/rust/compile/torture/isolated_cr_block_comment.rs
  f34eef566cf0283bb6dca5cc9b79de49  gcc/testsuite/rust/compile/torture/isolated_cr_line_comment.rs
! 2ae10290abbd6faa598e2013d3df97e2  gcc/testsuite/rust/compile/torture/issue-1024.rs
! f18f0d82ed829b701618c72a93dcebe8  gcc/testsuite/rust/compile/torture/issue-1075.rs
! 6a02898fbc08f4156a191c8207c7a182  gcc/testsuite/rust/compile/torture/issue-1432.rs
  406d54681d65b703831615467b4b2080  gcc/testsuite/rust/compile/torture/issue-1434.rs
  0a94e4e590827340ac355febfaf48a28  gcc/testsuite/rust/compile/torture/issue-1506.rs
! 59acd39ede81cdec4c64f0fc37eb51e9  gcc/testsuite/rust/compile/torture/issue-1555.rs
! 1ed3627ddf78b5d9f717bb653be23a13  gcc/testsuite/rust/compile/torture/issue-368.rs
! 8f27ef33fded6a3887ae5ef5fce09c39  gcc/testsuite/rust/compile/torture/issue-808.rs
! cc8ba82632d8b6b9ebf5d61b388342d5  gcc/testsuite/rust/compile/torture/issue-862.rs
! e83a1d5bc8ac13fa130c0b0b55a71887  gcc/testsuite/rust/compile/torture/issue-893-2.rs
! 1469d3f311a4830b7fc2ba42a30703a9  gcc/testsuite/rust/compile/torture/issue-893.rs
  29595aa1cff98b0f7c31b0ed5c6aebdf  gcc/testsuite/rust/compile/torture/lazybooleanexpr_function.rs
  c10b4099a456471bb802b8619bf1d0ce  gcc/testsuite/rust/compile/torture/lifetime1.rs
  6c4d9e27b81996de7d2fe38f1889e809  gcc/testsuite/rust/compile/torture/literals1.rs
--- 108860,108886 ----
  d98f733774408fbc7514e5b75b429cca  gcc/testsuite/rust/compile/torture/integer_inference_var4.rs
  31b1b4b7d065b79b397ca6e80713ceb3  gcc/testsuite/rust/compile/torture/integer_inference_var5.rs
  f469e2f4fbffc501a3af510d57f34eee  gcc/testsuite/rust/compile/torture/integer_types.rs
! 906c1f27e3997d318e9ced007c8ebfd6  gcc/testsuite/rust/compile/torture/intrinsics-2.rs
! e3188dd1c7e160729f1e8a5729872685  gcc/testsuite/rust/compile/torture/intrinsics-3.rs
! dcb1a07fb0aba84c09789af4ce07af3f  gcc/testsuite/rust/compile/torture/intrinsics-4.rs
  d9650e65226dfeb372e6d4c9e5262d66  gcc/testsuite/rust/compile/torture/intrinsics-5.rs
! f6c0e0c090c3c182d08265ee7514eea2  gcc/testsuite/rust/compile/torture/intrinsics-6.rs
! aa00d0660f6c7d36a9fb78122bb52732  gcc/testsuite/rust/compile/torture/intrinsics-7.rs
! 8747671d603eb797edcc36f63ed07c1b  gcc/testsuite/rust/compile/torture/intrinsics-8.rs
! 490c78de2d79ba3cb434f2c9f9874c72  gcc/testsuite/rust/compile/torture/intrinsics-math.rs
  a4adc24cf95b12fa0bbeb1910a8fc8c9  gcc/testsuite/rust/compile/torture/isolated_cr_block_comment.rs
  f34eef566cf0283bb6dca5cc9b79de49  gcc/testsuite/rust/compile/torture/isolated_cr_line_comment.rs
! eb9a18a11a36ee7eff79d3a3a90ad645  gcc/testsuite/rust/compile/torture/issue-1024.rs
! a1a13eab8bcde2ebbf6e34eb2ebdc501  gcc/testsuite/rust/compile/torture/issue-1075.rs
! c51c4090ceb7ff2903431e4a9e718bdb  gcc/testsuite/rust/compile/torture/issue-1432.rs
  406d54681d65b703831615467b4b2080  gcc/testsuite/rust/compile/torture/issue-1434.rs
  0a94e4e590827340ac355febfaf48a28  gcc/testsuite/rust/compile/torture/issue-1506.rs
! d2ea54fc5123b7133cb502bb359f4643  gcc/testsuite/rust/compile/torture/issue-1555.rs
! 57afbe29d9c276c8f0cc0ff3f4fd06a1  gcc/testsuite/rust/compile/torture/issue-368.rs
! 1ca37ba8abf7606ed2782a4540814137  gcc/testsuite/rust/compile/torture/issue-808.rs
! 8147ad365b7b87ab30cc3b1052ac4872  gcc/testsuite/rust/compile/torture/issue-862.rs
! a00e20788944e7fa491d3d02050c4c95  gcc/testsuite/rust/compile/torture/issue-893-2.rs
! 96b6794763231168699397f0622edecc  gcc/testsuite/rust/compile/torture/issue-893.rs
  29595aa1cff98b0f7c31b0ed5c6aebdf  gcc/testsuite/rust/compile/torture/lazybooleanexpr_function.rs
  c10b4099a456471bb802b8619bf1d0ce  gcc/testsuite/rust/compile/torture/lifetime1.rs
  6c4d9e27b81996de7d2fe38f1889e809  gcc/testsuite/rust/compile/torture/literals1.rs
*************** a5ea45ff3f424b52045901564e91727b  gcc/te
*** 99181,99186 ****
--- 108891,108897 ----
  2a731f676b729fbdbd60950b6c1d414e  gcc/testsuite/rust/compile/torture/loop5.rs
  0deba5a9492af06167afd85b5aae10f7  gcc/testsuite/rust/compile/torture/loop6.rs
  a2f062effffd93b9d4d03f11cc887052  gcc/testsuite/rust/compile/torture/loop7.rs
+ 860e13cc132eedc2762390e4369b7571  gcc/testsuite/rust/compile/torture/loop8.rs
  ca9dd83628017851a8b3df880ee109e4  gcc/testsuite/rust/compile/torture/macro-issue1403.rs
  0fe7135c253e1779307b62895e7896f6  gcc/testsuite/rust/compile/torture/macro_as_expr.rs
  c0bfaa09dece2bd9a9a8d9ccb1a8d74a  gcc/testsuite/rust/compile/torture/match1.rs
*************** f18ca58ac8c829be8dded35e104f53db  gcc/te
*** 99191,99204 ****
  447aba16aa7e276048faea7ba27a7bea  gcc/testsuite/rust/compile/torture/mod1.rs
  eae809c284afe8f3d4ca29d7b61dfeb2  gcc/testsuite/rust/compile/torture/mod2.rs
  a23c36b851ab81323eb71eda6f576132  gcc/testsuite/rust/compile/torture/mod3.rs
- 8278937d0cc6eda70c0ed9f40ea2d918  gcc/testsuite/rust/compile/torture/modules/mod.rs
  d1e08ad9924d246f8402392cdfdcf5bc  gcc/testsuite/rust/compile/torture/modules/valid_path.rs
  5e2f80b4dea8a468b3c354b206e9a349  gcc/testsuite/rust/compile/torture/must_use1.rs
! 92c4f626321b278e015dff1d713d2151  gcc/testsuite/rust/compile/torture/must_use2.rs
  1c8f90f487042a33bb8e0acf08090e60  gcc/testsuite/rust/compile/torture/name_resolve1.rs
  0d384f2eff5a12ea261d549e0115dd38  gcc/testsuite/rust/compile/torture/negation_function.rs
  072ec96cc0b4beeeaa8ff3e1732f82e4  gcc/testsuite/rust/compile/torture/nested_fn1.rs
! 985cd7cc223b98e9e9dbc2882d466074  gcc/testsuite/rust/compile/torture/nested_fn2.rs
  dfa972595ce960e7bcf241361e3dbbf7  gcc/testsuite/rust/compile/torture/nested_struct1.rs
  767b1f4d6e5547d33f8529d8b59b3513  gcc/testsuite/rust/compile/torture/never_type1.rs
  814385cb7dcdc27aede29309bce0c3cd  gcc/testsuite/rust/compile/torture/not_shebang.rs
--- 108902,108914 ----
  447aba16aa7e276048faea7ba27a7bea  gcc/testsuite/rust/compile/torture/mod1.rs
  eae809c284afe8f3d4ca29d7b61dfeb2  gcc/testsuite/rust/compile/torture/mod2.rs
  a23c36b851ab81323eb71eda6f576132  gcc/testsuite/rust/compile/torture/mod3.rs
  d1e08ad9924d246f8402392cdfdcf5bc  gcc/testsuite/rust/compile/torture/modules/valid_path.rs
  5e2f80b4dea8a468b3c354b206e9a349  gcc/testsuite/rust/compile/torture/must_use1.rs
! a4ae03a1a0dfacb8e11195dc839c5fd1  gcc/testsuite/rust/compile/torture/must_use2.rs
  1c8f90f487042a33bb8e0acf08090e60  gcc/testsuite/rust/compile/torture/name_resolve1.rs
  0d384f2eff5a12ea261d549e0115dd38  gcc/testsuite/rust/compile/torture/negation_function.rs
  072ec96cc0b4beeeaa8ff3e1732f82e4  gcc/testsuite/rust/compile/torture/nested_fn1.rs
! 025bde78888e090048811d489549bb39  gcc/testsuite/rust/compile/torture/nested_fn2.rs
  dfa972595ce960e7bcf241361e3dbbf7  gcc/testsuite/rust/compile/torture/nested_struct1.rs
  767b1f4d6e5547d33f8529d8b59b3513  gcc/testsuite/rust/compile/torture/never_type1.rs
  814385cb7dcdc27aede29309bce0c3cd  gcc/testsuite/rust/compile/torture/not_shebang.rs
*************** f4a2aa66a4c4665f1875940b26eee985  gcc/te
*** 99208,99219 ****
  37c3b775f772f4708128f6027e4814a4  gcc/testsuite/rust/compile/torture/not_shebang_spaces.rs
  7bb7007e218d70f518b100ce80dda102  gcc/testsuite/rust/compile/torture/parameter_usage1.rs
  dded9e8144069d4e60ad55cc51f7de67  gcc/testsuite/rust/compile/torture/parens1.rs
! a85e34847d1f749aebfaf0c981f63b5b  gcc/testsuite/rust/compile/torture/phantom_data.rs
  d6398d24645efaf33f81b4a0ef4191db  gcc/testsuite/rust/compile/torture/pointer1.rs
  f0959ff1bd276d250ccc42f37bc85bdc  gcc/testsuite/rust/compile/torture/primconsts.rs
  86bd151b079ea074d3f82107f256da13  gcc/testsuite/rust/compile/torture/prims_struct_eq.rs
! 3df99a5afc6aa4a159cc37b197da1f57  gcc/testsuite/rust/compile/torture/range-lang-item1.rs
! 2142c21127d1a896420c65ec947537c7  gcc/testsuite/rust/compile/torture/raw_identifiers.rs
  f8a99c53051766f9e444d92c260fefc1  gcc/testsuite/rust/compile/torture/raw_identifiers_keywords.rs
  b47fc558f700188bb4d2e500abbcdc80  gcc/testsuite/rust/compile/torture/recursive_fn1.rs
  385fe0e0389af5f147a93864f4ff403a  gcc/testsuite/rust/compile/torture/return_function.rs
--- 108918,108929 ----
  37c3b775f772f4708128f6027e4814a4  gcc/testsuite/rust/compile/torture/not_shebang_spaces.rs
  7bb7007e218d70f518b100ce80dda102  gcc/testsuite/rust/compile/torture/parameter_usage1.rs
  dded9e8144069d4e60ad55cc51f7de67  gcc/testsuite/rust/compile/torture/parens1.rs
! 658046990826e4e71acd11340df976c6  gcc/testsuite/rust/compile/torture/phantom_data.rs
  d6398d24645efaf33f81b4a0ef4191db  gcc/testsuite/rust/compile/torture/pointer1.rs
  f0959ff1bd276d250ccc42f37bc85bdc  gcc/testsuite/rust/compile/torture/primconsts.rs
  86bd151b079ea074d3f82107f256da13  gcc/testsuite/rust/compile/torture/prims_struct_eq.rs
! c9a952038b3c64a2ff4d80788a35f854  gcc/testsuite/rust/compile/torture/range-lang-item1.rs
! 6cd9f44ec6aba9d36d17df7766fcccf7  gcc/testsuite/rust/compile/torture/raw_identifiers.rs
  f8a99c53051766f9e444d92c260fefc1  gcc/testsuite/rust/compile/torture/raw_identifiers_keywords.rs
  b47fc558f700188bb4d2e500abbcdc80  gcc/testsuite/rust/compile/torture/recursive_fn1.rs
  385fe0e0389af5f147a93864f4ff403a  gcc/testsuite/rust/compile/torture/return_function.rs
*************** ee7382b0f606db87f9c72e296c629917  gcc/te
*** 99243,99269 ****
  2ca1ceb27b8f20b6041cf81949f17264  gcc/testsuite/rust/compile/torture/struct_init_8.rs
  a880259cc4562c6b06c0ff44af84c26e  gcc/testsuite/rust/compile/torture/struct_init_9.rs
  bf6541107d91ebc0ef79cd469d3f4bee  gcc/testsuite/rust/compile/torture/top_attr.rs
! 9dde0e932942e75b187d016c3dca769b  gcc/testsuite/rust/compile/torture/traits1.rs
  61886dbe934d68917b4abea481d0bd11  gcc/testsuite/rust/compile/torture/traits10.rs
! 0e1d074590d2b9f2a4070df6ac25de28  gcc/testsuite/rust/compile/torture/traits11.rs
! f148ce4b959481c576f408f608d687f7  gcc/testsuite/rust/compile/torture/traits12.rs
! 6a3a66ef846a5c89d3e80d13d9fcc697  gcc/testsuite/rust/compile/torture/traits13.rs
! 1adf31d9a3b76aca396add39f6d6e12f  gcc/testsuite/rust/compile/torture/traits14.rs
! c325cdd110ec1d422415dda4567f251a  gcc/testsuite/rust/compile/torture/traits15.rs
! efc570afb4b460491c3102f105a68931  gcc/testsuite/rust/compile/torture/traits16.rs
! 1f0dd0ee2a799261b148bd6a45619362  gcc/testsuite/rust/compile/torture/traits17.rs
! 75e5c2bacc65732626a01633b3e7b3a3  gcc/testsuite/rust/compile/torture/traits18.rs
! a6812e87a9202503281307ce080d893d  gcc/testsuite/rust/compile/torture/traits19.rs
! 02a30512b7b3a8d6a324aae8719cc7b5  gcc/testsuite/rust/compile/torture/traits2.rs
! ee9caaa9c3d894d50defa1f88ceba4ca  gcc/testsuite/rust/compile/torture/traits3.rs
! 9900ba21a1c453ddb90376bb8d7bde92  gcc/testsuite/rust/compile/torture/traits4.rs
! 9d1294e45612a40121e20745e4ec735e  gcc/testsuite/rust/compile/torture/traits5.rs
! 126358775decd06c2b069a49988a4bb6  gcc/testsuite/rust/compile/torture/traits6.rs
! 64a5f89eaf4ab37e8bb6b27b3afed816  gcc/testsuite/rust/compile/torture/traits7.rs
! 7258b304687397410cd9155ed0395098  gcc/testsuite/rust/compile/torture/traits8.rs
! 5f7941c9e4d5e70e62d76b90ad9c0fa3  gcc/testsuite/rust/compile/torture/traits9.rs
! 0c701362d19dae2a9ae6365ac8b0a3b2  gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs
! dccf1bb9ffafc1bd7b1b0bf1c7c7a61a  gcc/testsuite/rust/compile/torture/transmute1.rs
  856ba6b52cb97f89365a34dc844b2383  gcc/testsuite/rust/compile/torture/tuple1.rs
  a32be8ab02d584ff702a43f23ad95934  gcc/testsuite/rust/compile/torture/tuple2.rs
  d4d906776cca4aae5ee85d930cf4ef1c  gcc/testsuite/rust/compile/torture/tuple3.rs
--- 108953,108979 ----
  2ca1ceb27b8f20b6041cf81949f17264  gcc/testsuite/rust/compile/torture/struct_init_8.rs
  a880259cc4562c6b06c0ff44af84c26e  gcc/testsuite/rust/compile/torture/struct_init_9.rs
  bf6541107d91ebc0ef79cd469d3f4bee  gcc/testsuite/rust/compile/torture/top_attr.rs
! d4f57670a81afad59941a6c623282365  gcc/testsuite/rust/compile/torture/traits1.rs
  61886dbe934d68917b4abea481d0bd11  gcc/testsuite/rust/compile/torture/traits10.rs
! f145bf1f2e7b55ca9b25a7316db60ce2  gcc/testsuite/rust/compile/torture/traits11.rs
! 447dd2f36086393aa87ff7ee8c86b8af  gcc/testsuite/rust/compile/torture/traits12.rs
! 50447cafdc2ba6810aba0da218731a2f  gcc/testsuite/rust/compile/torture/traits13.rs
! 51626e7b4a464cfff01baa71cd4330db  gcc/testsuite/rust/compile/torture/traits14.rs
! 531b1c96a82bdc1b9685543b827bd08c  gcc/testsuite/rust/compile/torture/traits15.rs
! 368d3bce3b2fd0a8488db698a170dd61  gcc/testsuite/rust/compile/torture/traits16.rs
! c8c47f8e55013811bc4996f575619fbc  gcc/testsuite/rust/compile/torture/traits17.rs
! de6056a9a0306d6a5caade358268bf8e  gcc/testsuite/rust/compile/torture/traits18.rs
! af0a278cecf22cabd9cce06c4aaba2bf  gcc/testsuite/rust/compile/torture/traits19.rs
! 47505dfdbb68c3690cb03333aaa75fd7  gcc/testsuite/rust/compile/torture/traits2.rs
! 24a0048b71276f60c8a283e46d795534  gcc/testsuite/rust/compile/torture/traits3.rs
! 4b4c1672882620f4efe5b069ce7a7e70  gcc/testsuite/rust/compile/torture/traits4.rs
! 5dcbe7a312d4506f459c969c4c583bb5  gcc/testsuite/rust/compile/torture/traits5.rs
! c17e5e7936f9df88e607fa6b4b726d9d  gcc/testsuite/rust/compile/torture/traits6.rs
! 1891c06965274b07cc26630bf8c29c7a  gcc/testsuite/rust/compile/torture/traits7.rs
! 78bf33f383e889d5d7cb76a7e423cff8  gcc/testsuite/rust/compile/torture/traits8.rs
! 717619eb6814a0bc1eab099a41d59e05  gcc/testsuite/rust/compile/torture/traits9.rs
! 4a79f965f91009f9e310a309df4bb923  gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs
! e12fe466c829bfbacb8c98485d366ddc  gcc/testsuite/rust/compile/torture/transmute1.rs
  856ba6b52cb97f89365a34dc844b2383  gcc/testsuite/rust/compile/torture/tuple1.rs
  a32be8ab02d584ff702a43f23ad95934  gcc/testsuite/rust/compile/torture/tuple2.rs
  d4d906776cca4aae5ee85d930cf4ef1c  gcc/testsuite/rust/compile/torture/tuple3.rs
*************** ec86251919e467ab5186531cd6a92662  gcc/te
*** 99287,99292 ****
--- 108997,109003 ----
  a7106ab3e5a08e2b58b4f3d59f6c16bb  gcc/testsuite/rust/compile/torture/undended-string-1.rs
  b681f040c3d1e80af3f41d1b267db483  gcc/testsuite/rust/compile/torture/undended-string-2.rs
  7496356346ddb12a707c608a7ca122d5  gcc/testsuite/rust/compile/torture/underscore_id.rs
+ 4fcba84a87b370df95361346e3b8dd38  gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs
  97a2905e8fd8b85c8fe64e4b83babb3e  gcc/testsuite/rust/compile/torture/union.rs
  103a196af16a2550139988edb7794ae8  gcc/testsuite/rust/compile/torture/union_union.rs
  22f979b621b23664c1a0c4a7920e6738  gcc/testsuite/rust/compile/torture/unit_type1.rs
*************** b5f9a01c4ceb113cef5f95a9be82a126  gcc/te
*** 99303,99334 ****
  011e23a9b276286f198468298bc8fb7c  gcc/testsuite/rust/compile/torture/unused_struct.rs
  9fcdc00fb6fbe7500a819719c27a59e1  gcc/testsuite/rust/compile/torture/unused_struct_field.rs
  e29cac3aeb678adaa01b17ac8e9018f8  gcc/testsuite/rust/compile/torture/usize1.rs
  086c8f2639392f24c1a8d60145c15f47  gcc/testsuite/rust/compile/torture/very-broken-attr-string.rs
  ae85bb383c361b590f3be526db37809d  gcc/testsuite/rust/compile/torture/while_function.rs
! 682c2e812a8eb6c2654636b2d9f5e708  gcc/testsuite/rust/compile/traits1.rs
! 2f66e6e65684eec3b8f6e8d19bd89497  gcc/testsuite/rust/compile/traits10.rs
! 57b48a7f9d82ae612b94f5fe2b64635d  gcc/testsuite/rust/compile/traits11.rs
! 82fc68d99ebab045d9306b3befd1de3d  gcc/testsuite/rust/compile/traits12.rs
! 3ec60cdc70087763f8a6b9f5491a7cba  gcc/testsuite/rust/compile/traits2.rs
! 47109fa02c7934a2286e7b9afcd21b9b  gcc/testsuite/rust/compile/traits3.rs
! 7b0ea26826a64260beaa6c066294cfbb  gcc/testsuite/rust/compile/traits4.rs
! 5580c59d7a34116881155f5a40b2874f  gcc/testsuite/rust/compile/traits5.rs
! 78afe0124df56d84c4424f16f0c03925  gcc/testsuite/rust/compile/traits6.rs
! 1187e7931d9b8e96c01c0a199187d634  gcc/testsuite/rust/compile/traits7.rs
! caca8ba49d38e8776ebeeb71ee717af8  gcc/testsuite/rust/compile/traits8.rs
! c7aca508f6a3188934a567c032878571  gcc/testsuite/rust/compile/traits9.rs
  d0dd22fa3a3a512431403c19da377d75  gcc/testsuite/rust/compile/tuple1.rs
  a1ac7edeb898356a609ab5f448f8106d  gcc/testsuite/rust/compile/tuple_struct1.rs
! 848b05e79ad9d73952777d93b3b97bfb  gcc/testsuite/rust/compile/tuple_struct2.rs
! 9fca480c74067c91bbbc66040e8a7069  gcc/testsuite/rust/compile/tuple_struct3.rs
  146a99b5e95da275ac9f3aa327f5113f  gcc/testsuite/rust/compile/type-alias1.rs
! 043a44c5e8202e9d719224052b7617f8  gcc/testsuite/rust/compile/type-bindings1.rs
! c6a783e86d3f6445b3bc4e9a98aa9474  gcc/testsuite/rust/compile/unary_negation.rs
! 9794246815a1ee0f8e2abdc5de009235  gcc/testsuite/rust/compile/unary_not.rs
! 6557ffe6f5f3551bd723c9305f514ffb  gcc/testsuite/rust/compile/unconstrained_type_param.rs
  6895f64e4c1c706d09e540e4b97751d5  gcc/testsuite/rust/compile/unicode_escape.rs
  c0f3b70f1f30585a1ddb81a01cd7784b  gcc/testsuite/rust/compile/unsafe1.rs
! b776e58ebafd9fbfcc5c2009eb57aa05  gcc/testsuite/rust/compile/unsafe10.rs
  ffd0086398c13dd461c60ab251dea96e  gcc/testsuite/rust/compile/unsafe11.rs
  5575f8e36d7f8fc301e84dfb3a182fa3  gcc/testsuite/rust/compile/unsafe2.rs
  40a486ea3c004b99b422ac2e7710de83  gcc/testsuite/rust/compile/unsafe3.rs
--- 109014,109055 ----
  011e23a9b276286f198468298bc8fb7c  gcc/testsuite/rust/compile/torture/unused_struct.rs
  9fcdc00fb6fbe7500a819719c27a59e1  gcc/testsuite/rust/compile/torture/unused_struct_field.rs
  e29cac3aeb678adaa01b17ac8e9018f8  gcc/testsuite/rust/compile/torture/usize1.rs
+ 836ea2f9678655a119c8f84c64006314  gcc/testsuite/rust/compile/torture/utf8_identifiers.rs
+ 450925f1fdb8f793280e12ae10d1c683  gcc/testsuite/rust/compile/torture/utf8_whitespaces.rs
  086c8f2639392f24c1a8d60145c15f47  gcc/testsuite/rust/compile/torture/very-broken-attr-string.rs
  ae85bb383c361b590f3be526db37809d  gcc/testsuite/rust/compile/torture/while_function.rs
! 523f51e0fc5bdf6170c7935a446e509a  gcc/testsuite/rust/compile/trait-cycle.rs
! c16116c6e1935e080add3e0fa21e3a7d  gcc/testsuite/rust/compile/trait_pub_type.rs
! fa77f7c3f57f9c2e1114103f4a2aaab5  gcc/testsuite/rust/compile/traits1.rs
! 268e8c1b05973e3b69beb39208fb8574  gcc/testsuite/rust/compile/traits10.rs
! 8fc5acce95af60347e458ab63a37bc0e  gcc/testsuite/rust/compile/traits11.rs
! 25f3ed6b4486b4561a145b1bba89af44  gcc/testsuite/rust/compile/traits12.rs
! 7d02d6279266c95632aa93eff2485a8b  gcc/testsuite/rust/compile/traits2.rs
! 7eac844ed096af032284a4fb4a80de53  gcc/testsuite/rust/compile/traits3.rs
! a225b4c57ba672661c1d29da450cefc9  gcc/testsuite/rust/compile/traits4.rs
! 49e1b15d3c9095e0f37e9505924bfabc  gcc/testsuite/rust/compile/traits5.rs
! 70d0cd3be0d16286ab28eb106f68408d  gcc/testsuite/rust/compile/traits6.rs
! 54b50841460752b7d17613381fc20a75  gcc/testsuite/rust/compile/traits7.rs
! 4efe1f3a0f41279a076b223dbaa6c7a4  gcc/testsuite/rust/compile/traits8.rs
! 154a3e003fdef84da9a064f040d14be0  gcc/testsuite/rust/compile/traits9.rs
  d0dd22fa3a3a512431403c19da377d75  gcc/testsuite/rust/compile/tuple1.rs
+ 3e11ad929fc91de98602e9b2a827b85c  gcc/testsuite/rust/compile/tuple_float_index.rs
+ 0d156fbb6d1a73ffa9c48a5d8bffb99a  gcc/testsuite/rust/compile/tuple_mismatch.rs
  a1ac7edeb898356a609ab5f448f8106d  gcc/testsuite/rust/compile/tuple_struct1.rs
! 3a1197db3bd55512ebf6f3f6c9cc82b4  gcc/testsuite/rust/compile/tuple_struct2.rs
! 0b343c17e414c8d5569ccaf48abff3c6  gcc/testsuite/rust/compile/tuple_struct3.rs
! 5845cf816be4b72d5badd371e2ffba04  gcc/testsuite/rust/compile/tupple_struct_pattern_tuple.rs
  146a99b5e95da275ac9f3aa327f5113f  gcc/testsuite/rust/compile/type-alias1.rs
! 2d30ddfbb94ed8ecc8c9302cb1fb1acc  gcc/testsuite/rust/compile/type-bindings1.rs
! 60558a7d2f3b7ae8e24ff2c795297008  gcc/testsuite/rust/compile/type-if.rs
! 7a9af2a371d7cbd23dbe6d8a8956d6a5  gcc/testsuite/rust/compile/unary_negation.rs
! 10cbc3f39d66596fc2a04f40a8673b0f  gcc/testsuite/rust/compile/unary_not.rs
! 56b0e2d95aa6712a2f1938a66d5f854c  gcc/testsuite/rust/compile/unconstrained_type_param.rs
! 857db3fb2731632459e8ca715f07a443  gcc/testsuite/rust/compile/undeclared_label.rs
  6895f64e4c1c706d09e540e4b97751d5  gcc/testsuite/rust/compile/unicode_escape.rs
+ a823af26e85a962948de60f4b33d559e  gcc/testsuite/rust/compile/unicode_norm1.rs
  c0f3b70f1f30585a1ddb81a01cd7784b  gcc/testsuite/rust/compile/unsafe1.rs
! 7decff6d514eeddac35d6e93c14d4490  gcc/testsuite/rust/compile/unsafe10.rs
  ffd0086398c13dd461c60ab251dea96e  gcc/testsuite/rust/compile/unsafe11.rs
  5575f8e36d7f8fc301e84dfb3a182fa3  gcc/testsuite/rust/compile/unsafe2.rs
  40a486ea3c004b99b422ac2e7710de83  gcc/testsuite/rust/compile/unsafe3.rs
*************** dc6dd39f63dac8868fe265acb5c3a242  gcc/te
*** 99338,99415 ****
  9746952d340627b4fb744b9ec1cee076  gcc/testsuite/rust/compile/unsafe7.rs
  f840f4287f5740ac4854b2f4195dbfbe  gcc/testsuite/rust/compile/unsafe8.rs
  75e5c1e5c0ca3975f202b6d2fcce3e87  gcc/testsuite/rust/compile/unsafe9.rs
  7c830dd0a2ec3525c6da4bc67b44f331  gcc/testsuite/rust/compile/unterminated_c_comment.rs
  a96e29cf3f874eaf027ffb3caec83fcf  gcc/testsuite/rust/compile/use_1.rs
! 0c7603391620df4575d36dd9569f4aa5  gcc/testsuite/rust/compile/usize1.rs
! 8ddf83f70986301e8f5a30b5334c5325  gcc/testsuite/rust/compile/variadic.rs
  c7d793e2850d119364ecbefff6f25e6a  gcc/testsuite/rust/compile/xfail/lifetime_param.rs
  f219c902f8bbb7747064aa57b2247406  gcc/testsuite/rust/compile/xfail/struct_field_vis.rs
! 5c79e5474e1afdd64e3534ebdf7e2f1a  gcc/testsuite/rust/compile/xfail/xfail.exp
  cf84f07cfe0ecfb071b976dc80fea9b2  gcc/testsuite/rust/debug/chartype.rs
  faa029c0320aae395036255789ed154c  gcc/testsuite/rust/debug/custom_link_section.rs
! 8b78a47f46fe2e406d55798ac87c0f94  gcc/testsuite/rust/debug/debug.exp
  0f03e1c966bc34da8ffe7f4e31810852  gcc/testsuite/rust/debug/i8u8.rs
  19340915d91d271cd4752d446da432a3  gcc/testsuite/rust/debug/lang.rs
  6e59b3f6a3efdac0010ff67baf812cd3  gcc/testsuite/rust/debug/no_mangle.rs
  4f4406b9c3ea1e1d1fe142e73f7d81dc  gcc/testsuite/rust/debug/oldlang.rs
  533df5d9904c8efee02c94532338efc2  gcc/testsuite/rust/debug/tuple.rs
  d5d8788f3a670487fb051714384ab2a1  gcc/testsuite/rust/debug/win64-abi.rs
! 5c99e1c6fd7e0202ea7e1af65bc041c5  gcc/testsuite/rust/execute/torture/atomic_load.rs
! 0e2d7b149a24c52ed94b7a4e96b541df  gcc/testsuite/rust/execute/torture/atomic_store.rs
  64ec49dcf61c1ec23016e5eb7627a5b7  gcc/testsuite/rust/execute/torture/block_expr1.rs
! c800fbae67bc6ef12faa0ab8ea94f353  gcc/testsuite/rust/execute/torture/builtin_macro_cfg.rs
! 63f96907cd26ccb3340ef0c2c878e9f8  gcc/testsuite/rust/execute/torture/builtin_macro_concat.rs
! eadf2d96e16280adc2908c59779eeaea  gcc/testsuite/rust/execute/torture/builtin_macro_env.rs
! 2d5fdfa23c867d8d56de8795dbaa27fb  gcc/testsuite/rust/execute/torture/builtin_macro_include_bytes.rs
! 81eb686de739638a963a966564f3d504  gcc/testsuite/rust/execute/torture/builtin_macro_include_str.rs
! 1740a6551be2debf690fb8b4d348dba6  gcc/testsuite/rust/execute/torture/builtin_macro_line.rs
! f9c6aea5aadcba5881619872e5f36d2b  gcc/testsuite/rust/execute/torture/builtin_macros1.rs
! d1720189c3cdc0692c05853f4bcdd396  gcc/testsuite/rust/execute/torture/builtin_macros3.rs
  ccc2591f70377149f4aa4e23d900dba6  gcc/testsuite/rust/execute/torture/cfg1.rs
  976fd017b8b7b7382385b4f64820e968  gcc/testsuite/rust/execute/torture/cfg2.rs
  9783ede29592db2668bfdad04aa365bc  gcc/testsuite/rust/execute/torture/cfg3.rs
  7982b994d6eb88a809b882ab3b263b33  gcc/testsuite/rust/execute/torture/cfg4.rs
  8686a31954a6b1f67d910f849e9edc68  gcc/testsuite/rust/execute/torture/cfg5.rs
! ed4185ceeee22123dfda5f08cb6faaac  gcc/testsuite/rust/execute/torture/closure1.rs
! 891d371ce7307ed663dba83fe471c7ae  gcc/testsuite/rust/execute/torture/closure2.rs
! ded7df1faf9f3ed6ecf4d0ee91e76c34  gcc/testsuite/rust/execute/torture/closure3.rs
! 8026cbb3fd4dfd6bfc7bccab1ebc9eef  gcc/testsuite/rust/execute/torture/coercion1.rs
! 083fbabc67425e06f66a5f2f1c9cb189  gcc/testsuite/rust/execute/torture/coercion2.rs
  16aaa17474f319d84939e58bd3191fe6  gcc/testsuite/rust/execute/torture/const_fold1.rs
  241a2be1d8747c41bb6696abef8fca56  gcc/testsuite/rust/execute/torture/const_fold2.rs
! 3b560db225bda46247a4ef027ce9fa36  gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs
  15aeecda0667a9b6fb7dc5fa85ca5d7d  gcc/testsuite/rust/execute/torture/decl_macro1.rs
  1d8ebbc049fb21f9609e1de2d2d094ac  gcc/testsuite/rust/execute/torture/decl_macro2.rs
  2ca84627b7b27d5e1c7889f6997d31c1  gcc/testsuite/rust/execute/torture/decl_macro3.rs
  b9d5acfe96556f242a09a6982797cd8b  gcc/testsuite/rust/execute/torture/decl_macro4.rs
  f3e8fb4d74a3a31041cfcb2286645769  gcc/testsuite/rust/execute/torture/empty_main.rs
! a6af49602e22142e4505b8363f292958  gcc/testsuite/rust/execute/torture/execute.exp
  c579ac738ba95f67c2c7d8a745f30d74  gcc/testsuite/rust/execute/torture/exit_error.rs
  ab6af2afb853cd3748a8320e0f4d16f3  gcc/testsuite/rust/execute/torture/extern_mod4.rs
  51c98fe37862ab18dafa4be9e1fcc95e  gcc/testsuite/rust/execute/torture/func1.rs
  fab98ca34ae058c9972166c501a700ec  gcc/testsuite/rust/execute/torture/helloworld1.rs
  dd9d5a465f08d85c74f79bf57191b889  gcc/testsuite/rust/execute/torture/helloworld2.rs
  d1bf4d03901b291d3115f4895ffb2fb7  gcc/testsuite/rust/execute/torture/include.txt
! 91e0baf5b9bfa1785d93f2b0c40053ef  gcc/testsuite/rust/execute/torture/index1.rs
! 4bd18d688c6f0d38d87ba0dac936a30c  gcc/testsuite/rust/execute/torture/issue-1120.rs
! b212b1454a50fe174a4c304f4353b304  gcc/testsuite/rust/execute/torture/issue-1133.rs
! 2b0238fe130e4a119d59dd9189fa33e3  gcc/testsuite/rust/execute/torture/issue-1198.rs
  205a284536c62257237cafba849510a6  gcc/testsuite/rust/execute/torture/issue-1231.rs
! fc95f4646ecbb6b6e0f731c8b206b6cc  gcc/testsuite/rust/execute/torture/issue-1232.rs
! 56fdf96a1ac2ac86014a925989a14467  gcc/testsuite/rust/execute/torture/issue-1249.rs
! cfa8926587505f8af2111bcd3a191cb4  gcc/testsuite/rust/execute/torture/issue-1436.rs
! 341edb65f410f5f6fff0dc53a5274b28  gcc/testsuite/rust/execute/torture/issue-1496.rs
! 2d90fc699061177d598ee33b1156b4a1  gcc/testsuite/rust/execute/torture/issue-1720-2.rs
! da0a43640c4b6dd0c4ceefe726530195  gcc/testsuite/rust/execute/torture/issue-1720.rs
! d5dfb84c1b0e790f84f04a10115541f9  gcc/testsuite/rust/execute/torture/issue-647.rs
! 95cef428e12c459cfe160fc0b8b328c6  gcc/testsuite/rust/execute/torture/issue-845.rs
! 1ef2f7782407c899ddd0a8aa996df603  gcc/testsuite/rust/execute/torture/issue-851.rs
! dae9050c4ff636de31bd021ef3130176  gcc/testsuite/rust/execute/torture/issue-858.rs
  449e42630eb5fd571755658ebbb341c4  gcc/testsuite/rust/execute/torture/issue-976.rs
  a7f4a565f46d8c8589434308e7968386  gcc/testsuite/rust/execute/torture/issue-995.rs
  e5d4fd47103c9b2ec08ec98416082eb9  gcc/testsuite/rust/execute/torture/let-pattern-1.rs
  b9e7dd193296598753c75fbfaae447bd  gcc/testsuite/rust/execute/torture/loop-condition-eval.rs
  d7e1088b7c9ae3714d6c9ac6aeb13b18  gcc/testsuite/rust/execute/torture/macro-issue1426.rs
  fef7dfee1986a4975d9f025b245800a7  gcc/testsuite/rust/execute/torture/macros1.rs
  31d0eb8ff0aaf8e4812d0b436cb2d29f  gcc/testsuite/rust/execute/torture/macros10.rs
  9e148fef1f01dcaf28d627321fe8632f  gcc/testsuite/rust/execute/torture/macros11.rs
--- 109059,109167 ----
  9746952d340627b4fb744b9ec1cee076  gcc/testsuite/rust/compile/unsafe7.rs
  f840f4287f5740ac4854b2f4195dbfbe  gcc/testsuite/rust/compile/unsafe8.rs
  75e5c1e5c0ca3975f202b6d2fcce3e87  gcc/testsuite/rust/compile/unsafe9.rs
+ 1eda1b7673de43c07e2c48bd01367d7c  gcc/testsuite/rust/compile/unsafe_module.rs
  7c830dd0a2ec3525c6da4bc67b44f331  gcc/testsuite/rust/compile/unterminated_c_comment.rs
  a96e29cf3f874eaf027ffb3caec83fcf  gcc/testsuite/rust/compile/use_1.rs
! 9fc32e79fcf7466f1df1c8e1f5615b56  gcc/testsuite/rust/compile/use_2.rs
! f605e4e474930481f2179649d22239a1  gcc/testsuite/rust/compile/usize1.rs
! 29f631170a0d06d17a578360ec630dad  gcc/testsuite/rust/compile/v0-mangle1.rs
! 63dc292fd1579604dc888db846d521f6  gcc/testsuite/rust/compile/v0-mangle2.rs
! ffeacc1dda452d94122d6a2cea6d601a  gcc/testsuite/rust/compile/variadic.rs
! d328500e54be92447ee10f2591d11017  gcc/testsuite/rust/compile/while_break_expr.rs
! a924b01bbc1d263aa1409bc3be20babb  gcc/testsuite/rust/compile/while_let_expr.rs
! ecd1b51f089be2835ada173bc06aaa41  gcc/testsuite/rust/compile/wrong_lhs_assignment.rs
! 5004765615d7d0e03d77473e2e06aa0f  gcc/testsuite/rust/compile/wrong_no_of_parameters.rs
  c7d793e2850d119364ecbefff6f25e6a  gcc/testsuite/rust/compile/xfail/lifetime_param.rs
  f219c902f8bbb7747064aa57b2247406  gcc/testsuite/rust/compile/xfail/struct_field_vis.rs
! b2968983785f0954893bf418331ae397  gcc/testsuite/rust/compile/xfail/xfail.exp
! 3218ecaec34cb9248c2d6ea5e9a19e62  gcc/testsuite/rust/compile/zero_sized_slice.rs
  cf84f07cfe0ecfb071b976dc80fea9b2  gcc/testsuite/rust/debug/chartype.rs
  faa029c0320aae395036255789ed154c  gcc/testsuite/rust/debug/custom_link_section.rs
! 86453a4dda37cf20160d4408b55d25b3  gcc/testsuite/rust/debug/debug.exp
  0f03e1c966bc34da8ffe7f4e31810852  gcc/testsuite/rust/debug/i8u8.rs
  19340915d91d271cd4752d446da432a3  gcc/testsuite/rust/debug/lang.rs
  6e59b3f6a3efdac0010ff67baf812cd3  gcc/testsuite/rust/debug/no_mangle.rs
  4f4406b9c3ea1e1d1fe142e73f7d81dc  gcc/testsuite/rust/debug/oldlang.rs
  533df5d9904c8efee02c94532338efc2  gcc/testsuite/rust/debug/tuple.rs
  d5d8788f3a670487fb051714384ab2a1  gcc/testsuite/rust/debug/win64-abi.rs
! 5c09d4f755cc413edff8ea1879dc50d2  gcc/testsuite/rust/execute/same_field_name.rs
! 94c13baa4b458105f3e2204c8d4d1e17  gcc/testsuite/rust/execute/torture/arrays.rs
! eca15726fcabf7e7620037e020ee686f  gcc/testsuite/rust/execute/torture/atomic_load.rs
! 08a045beac132b26b7d1b09ee02a7bd4  gcc/testsuite/rust/execute/torture/atomic_store.rs
  64ec49dcf61c1ec23016e5eb7627a5b7  gcc/testsuite/rust/execute/torture/block_expr1.rs
! 28dbae897d625ca0f50d65ca43deed01  gcc/testsuite/rust/execute/torture/builtin_abort.rs
! c1b657c2acee7d237da8a2cd240c44a8  gcc/testsuite/rust/execute/torture/builtin_macro_cfg.rs
! ae3d7e4a5d743ef3c619b5f6b7cc9bfb  gcc/testsuite/rust/execute/torture/builtin_macro_concat.rs
! cfad0d9f56bfc596e57015384c27d0c9  gcc/testsuite/rust/execute/torture/builtin_macro_env.rs
! 3130e12314ecdb717405842c096308df  gcc/testsuite/rust/execute/torture/builtin_macro_include_bytes.rs
! bdd55f656ff46526f2293433c6d58bd8  gcc/testsuite/rust/execute/torture/builtin_macro_include_str.rs
! 490a74d71fee522b5677974a21023378  gcc/testsuite/rust/execute/torture/builtin_macro_line.rs
! b6fcc627a166c042555ce9c7e9298a1f  gcc/testsuite/rust/execute/torture/builtin_macro_stringify.rs
! fa58e352ba2ca785ae91a05e9b7fe6ca  gcc/testsuite/rust/execute/torture/builtin_macros1.rs
! 976ef422b18d727506900f11fc958cec  gcc/testsuite/rust/execute/torture/builtin_macros3.rs
! 1c73c33a19ac89a36deb00b85b6f2cee  gcc/testsuite/rust/execute/torture/cfg-tail.rs
  ccc2591f70377149f4aa4e23d900dba6  gcc/testsuite/rust/execute/torture/cfg1.rs
  976fd017b8b7b7382385b4f64820e968  gcc/testsuite/rust/execute/torture/cfg2.rs
  9783ede29592db2668bfdad04aa365bc  gcc/testsuite/rust/execute/torture/cfg3.rs
  7982b994d6eb88a809b882ab3b263b33  gcc/testsuite/rust/execute/torture/cfg4.rs
  8686a31954a6b1f67d910f849e9edc68  gcc/testsuite/rust/execute/torture/cfg5.rs
! 660b7127e3ceadd40411c5cec5bc6a03  gcc/testsuite/rust/execute/torture/closure1.rs
! cc38817bf71a3f294f3189058431b45d  gcc/testsuite/rust/execute/torture/closure2.rs
! c32fe7a964c76791db55140ea8246c43  gcc/testsuite/rust/execute/torture/closure3.rs
! e81ff8419c8b0085aa761fb8da969227  gcc/testsuite/rust/execute/torture/closure4.rs
! 68b76cd79b817b8e9315c05cd60c81f6  gcc/testsuite/rust/execute/torture/coercion1.rs
! 27dd0332fd73b2accf878d9b7db118d3  gcc/testsuite/rust/execute/torture/coercion2.rs
! 497b0c18909c49a30e2b53c15f8fc527  gcc/testsuite/rust/execute/torture/coercion3.rs
  16aaa17474f319d84939e58bd3191fe6  gcc/testsuite/rust/execute/torture/const_fold1.rs
  241a2be1d8747c41bb6696abef8fca56  gcc/testsuite/rust/execute/torture/const_fold2.rs
! fd85d0412a3b44dc18646d7a2f23ed44  gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs
  15aeecda0667a9b6fb7dc5fa85ca5d7d  gcc/testsuite/rust/execute/torture/decl_macro1.rs
  1d8ebbc049fb21f9609e1de2d2d094ac  gcc/testsuite/rust/execute/torture/decl_macro2.rs
  2ca84627b7b27d5e1c7889f6997d31c1  gcc/testsuite/rust/execute/torture/decl_macro3.rs
  b9d5acfe96556f242a09a6982797cd8b  gcc/testsuite/rust/execute/torture/decl_macro4.rs
+ 88c52a8112f07c24a800321dac704c65  gcc/testsuite/rust/execute/torture/derive_macro1.rs
+ ee84163ea01c9331a3c5b2d9d852df15  gcc/testsuite/rust/execute/torture/derive_macro3.rs
+ 19c4ed736ca7f9a01094e1d2061adf25  gcc/testsuite/rust/execute/torture/derive_macro4.rs
  f3e8fb4d74a3a31041cfcb2286645769  gcc/testsuite/rust/execute/torture/empty_main.rs
! 96443d26e7c48e6101e73de5a25090ad  gcc/testsuite/rust/execute/torture/execute.exp
  c579ac738ba95f67c2c7d8a745f30d74  gcc/testsuite/rust/execute/torture/exit_error.rs
  ab6af2afb853cd3748a8320e0f4d16f3  gcc/testsuite/rust/execute/torture/extern_mod4.rs
+ deec28fbd0fd7d5a890d0905cbfa3d3a  gcc/testsuite/rust/execute/torture/extern_mod4/modules/mod.rs
  51c98fe37862ab18dafa4be9e1fcc95e  gcc/testsuite/rust/execute/torture/func1.rs
  fab98ca34ae058c9972166c501a700ec  gcc/testsuite/rust/execute/torture/helloworld1.rs
  dd9d5a465f08d85c74f79bf57191b889  gcc/testsuite/rust/execute/torture/helloworld2.rs
  d1bf4d03901b291d3115f4895ffb2fb7  gcc/testsuite/rust/execute/torture/include.txt
! 62a41b75b7c5ffea1195d0d9ae0a0292  gcc/testsuite/rust/execute/torture/index1.rs
! 976a754e4c002db75b718db2ffad2976  gcc/testsuite/rust/execute/torture/issue-1120.rs
! 3c2b61d6a054cae09658b0ea3efdaef6  gcc/testsuite/rust/execute/torture/issue-1133.rs
! fd2a4838eb014285bc8f567e8bd70ceb  gcc/testsuite/rust/execute/torture/issue-1198.rs
  205a284536c62257237cafba849510a6  gcc/testsuite/rust/execute/torture/issue-1231.rs
! 12c716ab70323de0af63a9c0f99aea03  gcc/testsuite/rust/execute/torture/issue-1232.rs
! e4c50a85ec53e7486479e75929f741e7  gcc/testsuite/rust/execute/torture/issue-1249.rs
! 96a0b8a234fd7090590092bd24e55daa  gcc/testsuite/rust/execute/torture/issue-1436.rs
! 0fe3cb9aefa642b3ad5d66b03236eebc  gcc/testsuite/rust/execute/torture/issue-1496.rs
! d6cecf6e8b59b318ec6239b5a61bee14  gcc/testsuite/rust/execute/torture/issue-1720-2.rs
! d4fd8ea0044840c76ddeff882c4cd32b  gcc/testsuite/rust/execute/torture/issue-1720.rs
! b6b074a8a691f6f9edb8191b820c0ad6  gcc/testsuite/rust/execute/torture/issue-1852-1.rs
! da3f6f2847d41be5c388e50b18051e12  gcc/testsuite/rust/execute/torture/issue-1852.rs
! ca9c7c4413199f843e3b51677965b5b4  gcc/testsuite/rust/execute/torture/issue-2052.rs
! 8becbf6525cbbde4782e84b68f602396  gcc/testsuite/rust/execute/torture/issue-2080.rs
! d8ad8f9578efd13f8656c31449e77bf0  gcc/testsuite/rust/execute/torture/issue-2179.rs
! dac58df6bbee5b6fd5f8e0bf62fe2b1a  gcc/testsuite/rust/execute/torture/issue-2180.rs
! 8272418c2721f5ffc6acf8efc4c31d2a  gcc/testsuite/rust/execute/torture/issue-2187.rs
! 1309b73638a56bc83e0e3fadcc762b4c  gcc/testsuite/rust/execute/torture/issue-2236.rs
! 84ab8dbd8581efe7fc36c0325a352b50  gcc/testsuite/rust/execute/torture/issue-2583.rs
! ba2cc9caa5cf695dabb5e09de31fcceb  gcc/testsuite/rust/execute/torture/issue-647.rs
! 9aebf168cfdac6b4ffcb96d19980fa72  gcc/testsuite/rust/execute/torture/issue-845.rs
! 063e1d1686f93b29ba383722fc51dbed  gcc/testsuite/rust/execute/torture/issue-851.rs
! f7a4dec5c495bdc2a5580c6b2ff9a054  gcc/testsuite/rust/execute/torture/issue-858.rs
  449e42630eb5fd571755658ebbb341c4  gcc/testsuite/rust/execute/torture/issue-976.rs
  a7f4a565f46d8c8589434308e7968386  gcc/testsuite/rust/execute/torture/issue-995.rs
+ 1c32d69ae48847a7750476692b1dc899  gcc/testsuite/rust/execute/torture/iter1.rs
  e5d4fd47103c9b2ec08ec98416082eb9  gcc/testsuite/rust/execute/torture/let-pattern-1.rs
  b9e7dd193296598753c75fbfaae447bd  gcc/testsuite/rust/execute/torture/loop-condition-eval.rs
  d7e1088b7c9ae3714d6c9ac6aeb13b18  gcc/testsuite/rust/execute/torture/macro-issue1426.rs
+ 6fcd51511bc08d2f26a63f6e5ce98020  gcc/testsuite/rust/execute/torture/macro_use1.rs
  fef7dfee1986a4975d9f025b245800a7  gcc/testsuite/rust/execute/torture/macros1.rs
  31d0eb8ff0aaf8e4812d0b436cb2d29f  gcc/testsuite/rust/execute/torture/macros10.rs
  9e148fef1f01dcaf28d627321fe8632f  gcc/testsuite/rust/execute/torture/macros11.rs
*************** da3cc94e0c8aa9565e49d1bd27995cf8  gcc/te
*** 99424,99439 ****
  b281220ae153f399dd51618f42474958  gcc/testsuite/rust/execute/torture/macros20.rs
  a21c287a31b6ae6ae179b1e5dfa2ac1e  gcc/testsuite/rust/execute/torture/macros21.rs
  4275d231e07ef7914d5814da80620035  gcc/testsuite/rust/execute/torture/macros22.rs
! 81c410de742498faecf737bc8a246b60  gcc/testsuite/rust/execute/torture/macros23.rs
  67746d30dadbf3035d2d8852c7dbc69c  gcc/testsuite/rust/execute/torture/macros24.rs
  eadfe7cba5cb9c5ec331deb7f77f0dbc  gcc/testsuite/rust/execute/torture/macros25.rs
  105c0886cf1eed36dc2251a200d0211b  gcc/testsuite/rust/execute/torture/macros26.rs
  c3c01ded1bb615ed722fd3e375605462  gcc/testsuite/rust/execute/torture/macros27.rs
! f9042508ff6bba2621114e851cbadb4e  gcc/testsuite/rust/execute/torture/macros28.rs
! ad8252f2c0460ce642b47245e78b9f47  gcc/testsuite/rust/execute/torture/macros29.rs
  c4ca94d1444b919b584963996a8b5c93  gcc/testsuite/rust/execute/torture/macros3.rs
! b57385642c6295090e4958c5c061efdb  gcc/testsuite/rust/execute/torture/macros30.rs
! 60878b670d061706ef2d05930fcec2bd  gcc/testsuite/rust/execute/torture/macros31.rs
  402b3c904e6681716d7e1f2a8ded8bc7  gcc/testsuite/rust/execute/torture/macros4.rs
  f987c9a3d4082272d0fdffecda3a5982  gcc/testsuite/rust/execute/torture/macros5.rs
  20d3279749c0860156f1e8398eeffedb  gcc/testsuite/rust/execute/torture/macros6.rs
--- 109176,109191 ----
  b281220ae153f399dd51618f42474958  gcc/testsuite/rust/execute/torture/macros20.rs
  a21c287a31b6ae6ae179b1e5dfa2ac1e  gcc/testsuite/rust/execute/torture/macros21.rs
  4275d231e07ef7914d5814da80620035  gcc/testsuite/rust/execute/torture/macros22.rs
! 25ca7869554b1448eec52e0fbecb8c59  gcc/testsuite/rust/execute/torture/macros23.rs
  67746d30dadbf3035d2d8852c7dbc69c  gcc/testsuite/rust/execute/torture/macros24.rs
  eadfe7cba5cb9c5ec331deb7f77f0dbc  gcc/testsuite/rust/execute/torture/macros25.rs
  105c0886cf1eed36dc2251a200d0211b  gcc/testsuite/rust/execute/torture/macros26.rs
  c3c01ded1bb615ed722fd3e375605462  gcc/testsuite/rust/execute/torture/macros27.rs
! 89bb295740d60b5076b09ae3bcc5e8cc  gcc/testsuite/rust/execute/torture/macros28.rs
! 537527f89c1e8934f8ae9a83f325faf3  gcc/testsuite/rust/execute/torture/macros29.rs
  c4ca94d1444b919b584963996a8b5c93  gcc/testsuite/rust/execute/torture/macros3.rs
! f1af5dc0f2bfff937199c36b0c439a26  gcc/testsuite/rust/execute/torture/macros30.rs
! 37aaf50e3e76b27620a70209cf15c330  gcc/testsuite/rust/execute/torture/macros31.rs
  402b3c904e6681716d7e1f2a8ded8bc7  gcc/testsuite/rust/execute/torture/macros4.rs
  f987c9a3d4082272d0fdffecda3a5982  gcc/testsuite/rust/execute/torture/macros5.rs
  20d3279749c0860156f1e8398eeffedb  gcc/testsuite/rust/execute/torture/macros6.rs
*************** f16dcffd54381b1ed25a88227c4b5ad7  gcc/te
*** 99451,99504 ****
  12404878b44abb6ea00fbaefc573cc2b  gcc/testsuite/rust/execute/torture/match_range1.rs
  d53a9a5ff7302a95bec132cd6bba3962  gcc/testsuite/rust/execute/torture/match_range2.rs
  b6c1253a40c7a21db9fac6062ae50a91  gcc/testsuite/rust/execute/torture/match_tuple1.rs
  7985e85176bb59d44b2aac56f2ca81c0  gcc/testsuite/rust/execute/torture/method1.rs
! e794045453aa2eb5f21f42854f74be3e  gcc/testsuite/rust/execute/torture/method2.rs
! 6b1ebe9e1b4d6b68c543339bea32b3bf  gcc/testsuite/rust/execute/torture/method3.rs
! f82ae27de1147bc8bd0d837c9804bd37  gcc/testsuite/rust/execute/torture/method4.rs
  3f13ddef20c0f036bfffdb2d02bc5334  gcc/testsuite/rust/execute/torture/mod1.rs
! deec28fbd0fd7d5a890d0905cbfa3d3a  gcc/testsuite/rust/execute/torture/modules/mod.rs
! ecb232f559c79d5441b6163c26681cd0  gcc/testsuite/rust/execute/torture/operator_overload_1.rs
! 3d5822b88b8630de592c33ef90111463  gcc/testsuite/rust/execute/torture/operator_overload_10.rs
! 96008bcc4562b244fdb4ef04ab2bf753  gcc/testsuite/rust/execute/torture/operator_overload_11.rs
! dc1c062dcf6dede5d67de1866ce79836  gcc/testsuite/rust/execute/torture/operator_overload_12.rs
! d449ce540925e5526a7e27c15a3da283  gcc/testsuite/rust/execute/torture/operator_overload_2.rs
! 05283be71e9d7983529b93e421d8c1b9  gcc/testsuite/rust/execute/torture/operator_overload_3.rs
! de0b204acd76189fafd44d7cb68c841b  gcc/testsuite/rust/execute/torture/operator_overload_4.rs
! fb4c16a7a5ab5247c2e5a05c355e21b3  gcc/testsuite/rust/execute/torture/operator_overload_5.rs
! 3cfc9048679c832a39f8bc94ce282d44  gcc/testsuite/rust/execute/torture/operator_overload_6.rs
! 9cee3c00e0ee366c710a1876d163fb8b  gcc/testsuite/rust/execute/torture/operator_overload_7.rs
! c8d90610390a9e8290842955225f4e18  gcc/testsuite/rust/execute/torture/operator_overload_8.rs
! 0977ef8530ad97b436a3142098c3783c  gcc/testsuite/rust/execute/torture/operator_overload_9.rs
  b1bd8293d4d79d471bcee8c9628e98f8  gcc/testsuite/rust/execute/torture/overflow1.rs
! 62c4c68d5875929f5e504abf70063451  gcc/testsuite/rust/execute/torture/prefetch_data.rs
! 13009faeb38b2336b91d761d61b04d7b  gcc/testsuite/rust/execute/torture/slice-magic.rs
! 3ba73c3441ab9a44e7c9ad620ef1964b  gcc/testsuite/rust/execute/torture/slice-magic2.rs
! 99809d3ee18251feb0df53b877502bd8  gcc/testsuite/rust/execute/torture/slice1.rs
! b36fb838590dd8ea3f845806f4e75c21  gcc/testsuite/rust/execute/torture/str-layout1.rs
  d45464967a452ff175b27ff3b0890b31  gcc/testsuite/rust/execute/torture/str-zero.rs
! 2fda52aaa37b9b006b6d424b02dfe404  gcc/testsuite/rust/execute/torture/trait1.rs
! 1d768366902ffe5addfbb69b73dc0d30  gcc/testsuite/rust/execute/torture/trait10.rs
! 3207164e7751c55823ac405a20939387  gcc/testsuite/rust/execute/torture/trait11.rs
! 27774fa1b7ea73de620cd5def2d6b072  gcc/testsuite/rust/execute/torture/trait12.rs
! 6aebe724a5238bb40165b3409b34e415  gcc/testsuite/rust/execute/torture/trait13.rs
! 16b27397ce9d3347134ef2bc95ad106d  gcc/testsuite/rust/execute/torture/trait2.rs
! 46649179f30403b0d2b779226c0bd7ad  gcc/testsuite/rust/execute/torture/trait3.rs
! 775b4317d24bde14b7856401ea36e694  gcc/testsuite/rust/execute/torture/trait4.rs
! 842ddbb8a5483e5672bd89ed4f8f91d3  gcc/testsuite/rust/execute/torture/trait5.rs
! bcaf06f8bcd75ea28222070f211c2d67  gcc/testsuite/rust/execute/torture/trait6.rs
! dfcdf6be2a8267bda652680fc80a6bd9  gcc/testsuite/rust/execute/torture/trait7.rs
! 7594cc7770f142c4a252dd6dedac1764  gcc/testsuite/rust/execute/torture/trait8.rs
! 5903779d64c41d251d6a0d5d0f6cbc61  gcc/testsuite/rust/execute/torture/trait9.rs
! 41320ba64d17b64a8f623d6236beb1ff  gcc/testsuite/rust/execute/torture/transmute1.rs
! ca0f8ca42068c9fdfd0646e6761950a1  gcc/testsuite/rust/execute/torture/wrapping_op1.rs
! 317f91022744be5cf3fc96e19d1c1c00  gcc/testsuite/rust/execute/torture/wrapping_op2.rs
  8747cbe8301698563c21abf6609a6c44  gcc/testsuite/rust/execute/xfail/macro1.rs
! ffa2bd6f2a9efb48af0e98e648eef6ac  gcc/testsuite/rust/link/generic_function_0.rs
! 3fa6de3e1854add22494b3364b824cfc  gcc/testsuite/rust/link/generic_function_1.rs
! 92cd980faacaf17a151a1a0158ad51d6  gcc/testsuite/rust/link/link.exp
  e8f8000787067fbf63460ed56e1fd29e  gcc/testsuite/rust/link/simple_function_0.rs
  935c741fe66a7107d877188eb7365214  gcc/testsuite/rust/link/simple_function_1.rs
! 06f68dc4a7ab6af5ed722d9ddcda10ff  gcc/testsuite/rust/link/trait_import_0.rs
  b66e37c99da334fd847ffc841b7543ce  gcc/testsuite/rust/link/trait_import_1.rs
  58841d4b35f235992494de514b3a35c4  gcc/testsuite/selftests/aarch64/times-two.rtl
  2f493b012ca0548db4706319bb145b02  gcc/testsuite/selftests/asr_div1.rtl
--- 109203,109260 ----
  12404878b44abb6ea00fbaefc573cc2b  gcc/testsuite/rust/execute/torture/match_range1.rs
  d53a9a5ff7302a95bec132cd6bba3962  gcc/testsuite/rust/execute/torture/match_range2.rs
  b6c1253a40c7a21db9fac6062ae50a91  gcc/testsuite/rust/execute/torture/match_tuple1.rs
+ bd1d405cfc6bdbadc0c47d3aab4b794b  gcc/testsuite/rust/execute/torture/matches_macro.rs
  7985e85176bb59d44b2aac56f2ca81c0  gcc/testsuite/rust/execute/torture/method1.rs
! d5dc0260dfa3bbf3e347b8e56945fa1e  gcc/testsuite/rust/execute/torture/method2.rs
! d19bc56fc070b84e1ca39de0f28a852e  gcc/testsuite/rust/execute/torture/method3.rs
! 8f2351f701c6ec39cf992f060166dfb7  gcc/testsuite/rust/execute/torture/method4.rs
  3f13ddef20c0f036bfffdb2d02bc5334  gcc/testsuite/rust/execute/torture/mod1.rs
! c8ee9c51b08901bb75fc90317a691039  gcc/testsuite/rust/execute/torture/name_resolution.rs
! 533763469b219f004d5d73c7642553c9  gcc/testsuite/rust/execute/torture/named_variadic.rs
! dda9820471c4dc11cd335034d35e5ccf  gcc/testsuite/rust/execute/torture/operator_overload_1.rs
! 4e5ed0e919b2c59a3b848e46a7384626  gcc/testsuite/rust/execute/torture/operator_overload_10.rs
! 6a53583664982c8979b58e254484e47c  gcc/testsuite/rust/execute/torture/operator_overload_11.rs
! 567b3a868cbdcf7a9cf7450fba4d1ffe  gcc/testsuite/rust/execute/torture/operator_overload_12.rs
! 9efcdefa14aec863f1eca165f6aa7b91  gcc/testsuite/rust/execute/torture/operator_overload_2.rs
! c779dfb967dbac26990ef5b03b51002a  gcc/testsuite/rust/execute/torture/operator_overload_3.rs
! 2438b0880a7abb7136f5326bc8019e6e  gcc/testsuite/rust/execute/torture/operator_overload_4.rs
! 19e3b4c153ef357fce3ed1109a69b79d  gcc/testsuite/rust/execute/torture/operator_overload_5.rs
! fbcd41be2b08da7908ab89e54b177cfd  gcc/testsuite/rust/execute/torture/operator_overload_6.rs
! 0c4471748f5ea55d5f3f2ef107302e7e  gcc/testsuite/rust/execute/torture/operator_overload_7.rs
! 888c1a26ac2690b214ed602ad5f13bdb  gcc/testsuite/rust/execute/torture/operator_overload_8.rs
! 590e9f21c9a0ed350404c74654ae9d37  gcc/testsuite/rust/execute/torture/operator_overload_9.rs
  b1bd8293d4d79d471bcee8c9628e98f8  gcc/testsuite/rust/execute/torture/overflow1.rs
! 0263ed17cb91d2e5c2d8bcbbb76a0202  gcc/testsuite/rust/execute/torture/prefetch_data.rs
! 5988fffedf274ba8d07caa5e3d9d12d4  gcc/testsuite/rust/execute/torture/ref-pattern1.rs
! dd58e1082f60a5368ebe81642f8cc0f0  gcc/testsuite/rust/execute/torture/ref-pattern2.rs
! 5835ff2a0ce23dfa254a210e8c01c3f0  gcc/testsuite/rust/execute/torture/slice-magic.rs
! 059de3f8e1a277e43310a9ccdc1749a9  gcc/testsuite/rust/execute/torture/slice-magic2.rs
! afc782817d48f2259095dafb108d9f80  gcc/testsuite/rust/execute/torture/slice1.rs
! 7f58cd080e9071bf9aa8b7a9da902ff4  gcc/testsuite/rust/execute/torture/str-layout1.rs
  d45464967a452ff175b27ff3b0890b31  gcc/testsuite/rust/execute/torture/str-zero.rs
! 219f89de9c1c232ed85025aff0b4f1dc  gcc/testsuite/rust/execute/torture/trait1.rs
! a6af7c4b862f663d2b386821ea87e7d4  gcc/testsuite/rust/execute/torture/trait10.rs
! a45a805860546c66843c31d69913a98e  gcc/testsuite/rust/execute/torture/trait11.rs
! fd99531024c486b4e7f0dde93a680052  gcc/testsuite/rust/execute/torture/trait12.rs
! 639b558f31b8be14bc6fa6d2ac156825  gcc/testsuite/rust/execute/torture/trait13.rs
! 2bdd6f23fa37bce05b9a97683c232d39  gcc/testsuite/rust/execute/torture/trait2.rs
! d04fe352d2cbe0aafd0191cf7e5e0793  gcc/testsuite/rust/execute/torture/trait3.rs
! 65050d814dbad819494405043d2cd890  gcc/testsuite/rust/execute/torture/trait4.rs
! 198c11281dc9c98375428c52c0dae3fa  gcc/testsuite/rust/execute/torture/trait5.rs
! 863ec14b61b319481d8a4c9967cd2f9f  gcc/testsuite/rust/execute/torture/trait6.rs
! cc2cdb763843ab4c3244cd4ac3003bc6  gcc/testsuite/rust/execute/torture/trait7.rs
! ecafe513273e63e71cd928b53b02d5c9  gcc/testsuite/rust/execute/torture/trait8.rs
! c11d46231911975a133e7067ada8776b  gcc/testsuite/rust/execute/torture/trait9.rs
! 7d523840107b55fa60669f67bdb6e437  gcc/testsuite/rust/execute/torture/transmute1.rs
! 4c0cc5cc1c3416c7d8ae0e009be50ebe  gcc/testsuite/rust/execute/torture/wrapping_op1.rs
! 0191f519c13fb014fd21afe64ac4b7c6  gcc/testsuite/rust/execute/torture/wrapping_op2.rs
  8747cbe8301698563c21abf6609a6c44  gcc/testsuite/rust/execute/xfail/macro1.rs
! a06d21e78dd13355fa7dd3100a94deaf  gcc/testsuite/rust/link/generic_function_0.rs
! f2a777658cea0585f5d5a1d20ec2d40e  gcc/testsuite/rust/link/generic_function_1.rs
! 81f7b59ae122e13dbb5ae30eb590d1e5  gcc/testsuite/rust/link/link.exp
  e8f8000787067fbf63460ed56e1fd29e  gcc/testsuite/rust/link/simple_function_0.rs
  935c741fe66a7107d877188eb7365214  gcc/testsuite/rust/link/simple_function_1.rs
! da85e512bbf4d6e122fd004a5250ee6e  gcc/testsuite/rust/link/trait_import_0.rs
  b66e37c99da334fd847ffc841b7543ce  gcc/testsuite/rust/link/trait_import_1.rs
  58841d4b35f235992494de514b3a35c4  gcc/testsuite/selftests/aarch64/times-two.rtl
  2f493b012ca0548db4706319bb145b02  gcc/testsuite/selftests/asr_div1.rtl
*************** c0b991692c06f34bf7f8673802e7b155  gcc/te
*** 99522,99743 ****
  5fb2390505ce446a223d21f02b332874  gcc/testsuite/selftests/x86_64/copy-hard-reg-into-frame.rtl
  e42076aeff1c5ac155a88db5b1993d38  gcc/testsuite/selftests/x86_64/times-two.rtl
  195d431640249dac1928ced4d93ecb76  gcc/testsuite/selftests/x86_64/unspec.rtl
! 7b5ae87732b851947543a679d27a5fb3  gcc/timevar.cc
! c0d0ded25bef349cbc939387fd1c67b1  gcc/timevar.def
! cba5406970f4fb4e80232452b05c95b1  gcc/timevar.h
! 089b74fd0c31135da96b5499c9fa83d9  gcc/toplev.cc
! a661528cf07e076cca4056e693ad0d3d  gcc/toplev.h
! 7803b8d793f6737688010076577fcd6a  gcc/tracer.cc
! 97a1500e75b12216a540682db201b58d  gcc/tracer.h
! f94e7e93a949cf8bbb4daed6f2adcefe  gcc/trans-mem.cc
! 41f165f234cc64d36b07d87290ce6d0a  gcc/trans-mem.h
! 08f249c7fa2dbee7c097b1ee10aca886  gcc/tree-affine.cc
! af4dad4e7c08b9fb38895d9d5c6480a5  gcc/tree-affine.h
! 290b7c97096aeb17e6958b50e0b9f8ac  gcc/tree-call-cdce.cc
! 1390ccdba5548fdf75b296e764a5576f  gcc/tree-cfg.cc
! 2921805a6732bc91a8722618d4189584  gcc/tree-cfg.h
! 02211b0e40626f889cfc27d57f80db1e  gcc/tree-cfgcleanup.cc
! a027071bbc28b44a8697ab0a322059e7  gcc/tree-cfgcleanup.h
! cd9d9a63ed5b22b1082f8a0388f82674  gcc/tree-chrec.cc
! 36c8667090105100455277b131b1db62  gcc/tree-chrec.h
! 5d1fcefce8e08d4c308c542ec7e6597b  gcc/tree-complex.cc
! 9a5b72989d74c0d97cbb0289e27a677c  gcc/tree-core.h
! 77b663a3009eaacb6e3c4b1ca858bf02  gcc/tree-data-ref.cc
! bc11b118ba0b8bafdf4ce00928b10bc0  gcc/tree-data-ref.h
! 08f53ded2a5af061fef20cec84aad09f  gcc/tree-dfa.cc
! 25b2344a8a870f7c9c3a04df1cd70c27  gcc/tree-dfa.h
! d16a160b0b68fdd695ee06d0079d3794  gcc/tree-diagnostic-client-data-hooks.cc
! d60980db50f3098666d091a61b3fe65b  gcc/tree-diagnostic-path.cc
! beb28836faf3cbf46c223a78f4ed0f2f  gcc/tree-diagnostic.cc
! 497415d4f3c2631a2ed6b125e635cb4e  gcc/tree-diagnostic.h
! 1372af3bb41e349a9519f88746ea7770  gcc/tree-dump.cc
! ad4739e1ababa9fe99c700a409d4d39c  gcc/tree-dump.h
! ca4884c3aef6befeb84abe15b95ed221  gcc/tree-eh.cc
! 6393cd11119dc8ba74124d979d213cdb  gcc/tree-eh.h
! 27041cf11105e487781bc6230f204232  gcc/tree-emutls.cc
! 582c0d8e240fd276fd28bed9cfa593f3  gcc/tree-hash-traits.h
! 51a9944253ec880d2fcefce4f457fd81  gcc/tree-hasher.h
! e4a6ecae43de709ace9ae68810d1630b  gcc/tree-if-conv.cc
! d827a40245726bb17d7019eeb50733a5  gcc/tree-if-conv.h
! adcafe1ef96add79062e708012e9ed39  gcc/tree-inline.cc
! 05a54334040842ce3f2e8586d3d67b76  gcc/tree-inline.h
! 9cfa0b6fbd2cdc3d42b9a6a68ee42ef5  gcc/tree-into-ssa.cc
! f1fe226578aba70864fab526bf69c25b  gcc/tree-into-ssa.h
! 1efa282ccaf24744426163e7293a8067  gcc/tree-iterator.cc
! ccda522d2791061d143ed10d67ebb8ab  gcc/tree-iterator.h
! 478753fdfe072165d600af5c8bd4a83e  gcc/tree-logical-location.cc
! aa8406f5353334e06321a4bfde913f90  gcc/tree-logical-location.h
! 9b4f9bb5a6d88db3ec59b57d59d38677  gcc/tree-loop-distribution.cc
! 15295d542eb661859030da31bda0be01  gcc/tree-nested.cc
! 9bba957c6a1ab17bb89c93f7fe4f63df  gcc/tree-nested.h
! f08dc5d3e5c244c9f3d0921a13600db5  gcc/tree-nrv.cc
! 6ed38938ee1207f0caf0532ed48096db  gcc/tree-object-size.cc
! bfa736bad94c583d64422b6c456d417c  gcc/tree-object-size.h
! 3e0aa973134ed4274a15d14bb99f4705  gcc/tree-outof-ssa.cc
! 68b06a88c5e019fa02e2cc89cc51aae9  gcc/tree-outof-ssa.h
! 4b999ebb6915bde592d0914905da0d73  gcc/tree-parloops.cc
! 94e2a7b7b4ede5c0c6e9ddcc31887922  gcc/tree-parloops.h
! 0235b0de35a9a46d6154c88ddde7e696  gcc/tree-pass.h
! fd97119195b3960fa164a7f25fdf701c  gcc/tree-phinodes.cc
! a454429f57d8839090a7ec73abbfa772  gcc/tree-phinodes.h
! 0dcf744147072ec57b2a14224c27375e  gcc/tree-predcom.cc
! edd6c1f313befbbd0943aa5df67a8379  gcc/tree-pretty-print.cc
! feca017a2b8993f6879429c3b7fa9740  gcc/tree-pretty-print.h
! f8b70ab22f78140c8947312c3b354d03  gcc/tree-profile.cc
! dda6c83c005f2952f7c1209f6653cd1a  gcc/tree-scalar-evolution.cc
! b8223329488a4001552728350c5dbbef  gcc/tree-scalar-evolution.h
! c2df56d68ee41fda11029015f9ed8983  gcc/tree-sra.cc
! 6db24ca9af258c4e5e9e0d1ac2f3eab3  gcc/tree-sra.h
! 931fca6fc15298fa1f2021f8e4f2ed8d  gcc/tree-ssa-address.cc
! c37e139873f3e8da2fffefa09903ee42  gcc/tree-ssa-address.h
! a8390868d15220dfcd12e320402468a6  gcc/tree-ssa-alias-compare.h
! f5944817a22a299f4d675e3af8f8072a  gcc/tree-ssa-alias.cc
! ba44f6b9cdb34f227ce92ce6bbaaf35d  gcc/tree-ssa-alias.h
! 17d317771a454d90a0623fde152c7739  gcc/tree-ssa-ccp.cc
! cd2e4de6ee944facf2a1995f8743f8c2  gcc/tree-ssa-ccp.h
! da67de91badb3e7882b0f0f56a67670e  gcc/tree-ssa-coalesce.cc
! 96b67f0be71acb075f0ac5ac12c58664  gcc/tree-ssa-coalesce.h
! 224369f622af9776abe022853f1a0d00  gcc/tree-ssa-copy.cc
! 1bd17638abbe47cbb1458cbc3491baa4  gcc/tree-ssa-dce.cc
! e36c0da1e5dc257d4ccff9c24043d7fc  gcc/tree-ssa-dce.h
! 2064fb92d4753ce421275bb80258341c  gcc/tree-ssa-dom.cc
! aba207ac671bbe2380e556429ad21a00  gcc/tree-ssa-dom.h
! 13c07152f09d5ce2c73a9d34e7d72411  gcc/tree-ssa-dse.cc
! 9fe4418350cac32811c9ed2ed8de371f  gcc/tree-ssa-dse.h
! ae2446450a30a79444e06732def33edc  gcc/tree-ssa-forwprop.cc
! da27ff68b23449f9233459cf219ef043  gcc/tree-ssa-ifcombine.cc
! e5c556ba07b04f0f9890c0d4618c716e  gcc/tree-ssa-live.cc
! d68a110616d98e6c023567d2239e4e13  gcc/tree-ssa-live.h
! 286a1abc75a2657034c3ff16b07e46cb  gcc/tree-ssa-loop-ch.cc
! b102c7772d38f100630524793fdfff60  gcc/tree-ssa-loop-im.cc
! e167c39b8e8961b4e66068ab4f68bed2  gcc/tree-ssa-loop-ivcanon.cc
! d96c0b137ff41eb3f2254d688ff296d9  gcc/tree-ssa-loop-ivopts.cc
! 370a3d6606f97b793ee8a94e17f8a1f5  gcc/tree-ssa-loop-ivopts.h
! aa498fcb0de83e00d2d79464ed4fa669  gcc/tree-ssa-loop-manip.cc
! c10dc1a11bed8461c36db2d370f534b6  gcc/tree-ssa-loop-manip.h
! 89f69f13c2626beeb6af6c07fe5412eb  gcc/tree-ssa-loop-niter.cc
! 63e23177ceb0e06f07092e962fb6ec1e  gcc/tree-ssa-loop-niter.h
! 7beaa815285383a0694609b5111001d4  gcc/tree-ssa-loop-prefetch.cc
! 8d00446e723fdc157e179d58c825952a  gcc/tree-ssa-loop-split.cc
! f4fc7da5dacf985f0c7680cbfc847ce4  gcc/tree-ssa-loop-unswitch.cc
! e2040b0e641b28b006e48fb2094500e2  gcc/tree-ssa-loop.cc
! 943d41105325f8de1cdae2b4faf2dd0a  gcc/tree-ssa-loop.h
! 0b112fd64e26a68450f15b1d2c5a83da  gcc/tree-ssa-math-opts.cc
! e9484a6f5b1f9056c6681cedce910ed4  gcc/tree-ssa-math-opts.h
! 918abd54b699b48204a42158c4379381  gcc/tree-ssa-operands.cc
! 0db421e827039fe3c4f796b4c7600c52  gcc/tree-ssa-operands.h
! a615d9179acd7a122b8931f9915246c6  gcc/tree-ssa-phiopt.cc
! 731542d52a45ac5f609554aee9faf6dd  gcc/tree-ssa-phiprop.cc
! 72bd5304b46d512e33b953cc6cfee392  gcc/tree-ssa-pre.cc
! 77bffb73ae67d967a61a09b2df054e8a  gcc/tree-ssa-propagate.cc
! 658e45ca3c1c387fbd4e8bf835de1acd  gcc/tree-ssa-propagate.h
! cca43e1e9a4d2e13640b918e451f740b  gcc/tree-ssa-reassoc.cc
! 3d6728ab6aa97921854f86b5d2116c3d  gcc/tree-ssa-reassoc.h
! a88bd8c53a3c02e6f5e4a90573fef512  gcc/tree-ssa-sccvn.cc
! 700d7aa95b7fd675d86a154973faabe8  gcc/tree-ssa-sccvn.h
! 0dd72fccd9280ac160f5ac770517ee10  gcc/tree-ssa-scopedtables.cc
! bdda02f8f5872266cc26122c45c7d248  gcc/tree-ssa-scopedtables.h
! c46fe59d6ead2c7ed06d10742f701799  gcc/tree-ssa-sink.cc
! a2d1c394e3122e9c8f85a5f127a036e5  gcc/tree-ssa-strlen.cc
! cae334e8d7f57adf439062af515c28ae  gcc/tree-ssa-strlen.h
! aa41b31722276367122b7a66b67c737c  gcc/tree-ssa-structalias.cc
! ede21d1664bb37be5cafde80cb42a6ff  gcc/tree-ssa-tail-merge.cc
! ef149bbc15f2173d0e0b9f2254c03eb5  gcc/tree-ssa-ter.cc
! ae3a1dc45c510377c6acedecbc823d32  gcc/tree-ssa-ter.h
! a199afc3c0cb77a15c36952ce742bcbb  gcc/tree-ssa-threadbackward.cc
! dca90803e2154a166a0a1b0eb2c2689c  gcc/tree-ssa-threadedge.cc
! ac4c7ef64fae79629a0ea0c741c25ba7  gcc/tree-ssa-threadedge.h
! d7e10a85f4b24d9190b4fb574fb503eb  gcc/tree-ssa-threadupdate.cc
! 52eb7df5e9ebd417f62e6b8d01ce878a  gcc/tree-ssa-threadupdate.h
! 17e2ec9603a80d2276f05853965d8d70  gcc/tree-ssa-uncprop.cc
! 4bf1c7bd14057182c8501448ef2d12e7  gcc/tree-ssa-uninit.cc
! 07a32c2c98deea1a165c9c205e09b410  gcc/tree-ssa.cc
! ed13c4549041c596b249948a9d4583a3  gcc/tree-ssa.h
! 4e799d8e730086c4d3788890d70f6cff  gcc/tree-ssanames.cc
! b238783d1764a95333811500c3144a7c  gcc/tree-ssanames.h
! ea18451dcbcb4446e5c1f87b9a0aeddc  gcc/tree-stdarg.cc
! 6a98188a4af79ee9fb79c2d93528ab27  gcc/tree-stdarg.h
! c09a192585c4c06d68ac3efacc09c3f6  gcc/tree-streamer-in.cc
! 1572a04c537b3b8115a7332aa535ac55  gcc/tree-streamer-out.cc
! ad22fabedd9c85512941d6537188dcdc  gcc/tree-streamer.cc
! 4e31a4ce5936cf46e49ed3fd6bc1c49d  gcc/tree-streamer.h
! 55b4d99428849459155be80d762f91a7  gcc/tree-switch-conversion.cc
! 7c63c2566792c75263e89aad9dbdd648  gcc/tree-switch-conversion.h
! a4918516d4e0d24a0f05be8cdde5d93f  gcc/tree-tailcall.cc
! 0c41122c60698e413f5b01fb42c9dd81  gcc/tree-vect-data-refs.cc
! 67081a9bd16abb8826b1d787edf80df7  gcc/tree-vect-generic.cc
! dcba5449e012c6f6941a8e2c48e46f75  gcc/tree-vect-loop-manip.cc
! 33376e9686c1ea6a40ae52b258c6601b  gcc/tree-vect-loop.cc
! 0c1ce9b0be82bf22ade71d648ef1ffe7  gcc/tree-vect-patterns.cc
! b2d8890f59e3b9eaa4fce183bf5f75be  gcc/tree-vect-slp-patterns.cc
! a60a316e2f35269441cfdbaa83bb067b  gcc/tree-vect-slp.cc
! 0f76236c09fd30c63cf86943f93231c9  gcc/tree-vect-stmts.cc
! 9ed16219bf6ab97b79539fb1bca89485  gcc/tree-vector-builder.cc
! 672861a6f3b4ede253a47c708e10856d  gcc/tree-vector-builder.h
! 6aa65afe715f0a1a0aeb28eec7a7931c  gcc/tree-vectorizer.cc
! 273e2d8b40a81cd971fbfbf62d964bfa  gcc/tree-vectorizer.h
! 77cb16f595a988710bcea28078cf75a3  gcc/tree-vrp.cc
! 1506b4121fe3a1f91b7dce7fd11903b1  gcc/tree-vrp.h
! 31f6a8fa956c3f7b2be63a455405007f  gcc/tree.cc
! 90cbee0521eed701cdda38cb80c79c9a  gcc/tree.def
! fe516d7c8d021430db52ce4066099c2c  gcc/tree.h
! 1bc8e733e733c31e894ea8e9911dc5c0  gcc/treestruct.def
! 0339b546acdb2e9ee921ff13c97646ce  gcc/tristate.cc
! bed18fb33b65339128107e69ef48793c  gcc/tristate.h
! b7d9721b32108aa7ecb230808c325092  gcc/tsan.cc
! 01c10e5628835da3fe84a5d0b35db703  gcc/tsan.h
! d583fab067d805f6faa3a0c843de7b9c  gcc/tsystem.h
! fcb65b893faa201083a06dbdeab0d943  gcc/typeclass.h
! 7bb7945cafc3b8f490163c395ae34a14  gcc/typed-splay-tree.cc
! 6b94f4f6cbec65970fd2b161eaddf0c6  gcc/typed-splay-tree.h
! f01b913f70418860ec8424779fc09d35  gcc/ubsan.cc
! 42de1b0b3ffabde0a54387be6e2b87b9  gcc/ubsan.h
! 13e4856f601fb192ec89efc7f04f9b21  gcc/valtrack.cc
! b9e4a4b10a8dd4e13e216336646d9cfe  gcc/valtrack.h
! 0d55042361c82cefb07df4d4fbc6e0fb  gcc/value-pointer-equiv.cc
! 1daf8ab2778fdbe2b361c03a360d09c9  gcc/value-pointer-equiv.h
! ddf0b04d0817018feef016e01d4a9a28  gcc/value-prof.cc
! eaf2f0aeb4ab13c534f4cab90292864c  gcc/value-prof.h
! 1221dc84794eeb93feec45cb7a58d99f  gcc/value-query.cc
! 4b55f5063a791bade30257a874003cd9  gcc/value-query.h
! 6d7424fd4f502efc4caa8d830af3cc8a  gcc/value-range-pretty-print.cc
! cc2c1890bdcf636e36bcdd23285dd304  gcc/value-range-pretty-print.h
! e6184a6abb9af9d66b052e39e9f5fa34  gcc/value-range-storage.cc
! 2e33407cfaf888fff0465c8bd2a4681c  gcc/value-range-storage.h
! a0a993372b1a01c0f54a4e54bd8cb53f  gcc/value-range.cc
! 3dc135ab3e996248c40770dba5f3fa54  gcc/value-range.h
! 2c8570b18ae8aed5c1c57271d6997641  gcc/value-relation.cc
! 94eb969fb3e3b7179a221cf59909c632  gcc/value-relation.h
! e31285175438a68675780b419cf964ec  gcc/var-tracking.cc
! 95cb2cdf812ccd8f2675b7efce4a7eaa  gcc/varasm.cc
! a801df1efea35850028f5ec3cc36b36d  gcc/varasm.h
! dc419bc01226f41334020c39be67d5cb  gcc/varpool.cc
! 05234e0f40aa8065b424e1ce1f6801fc  gcc/vec-perm-indices.cc
! 62f7d88ca9346db03da5c98fef955157  gcc/vec-perm-indices.h
! 56ebf2ea422740d25cb2d59ee9fdcb5d  gcc/vec.cc
! 66700302caecc89e2cc99d787765a563  gcc/vec.h
! bcafa6a45764f2086d9577f869904710  gcc/vector-builder.h
! 89d1d6fdd6c9d3840caaa4c079b5ea25  gcc/vmsdbg.h
! 89f5fc1abb99a2f9279a628f60667c1f  gcc/vmsdbgout.cc
! 309c4c082d03500ba03d8bc9257f18a8  gcc/vr-values.cc
! 3ec3f5b4c45bf6b1f4b696150ea2849b  gcc/vr-values.h
! 6f18fdebdd816668f7fc355e7102bc24  gcc/vtable-verify.cc
! 2cf786a34c31d5dd28a3262580186c40  gcc/vtable-verify.h
! 294c3b5f3cfde8bd5a0da94aa959c22f  gcc/warning-control.cc
! 13695ac133e2c970d6493e268512f655  gcc/web.cc
! 12ab43583253ecdcfbffb23b426e47af  gcc/wide-int-bitmask.h
! 673cb56356301f1b31bc9d03b62227dc  gcc/wide-int-print.cc
! ebc3498f02b086ce0e67eab6a6fece3f  gcc/wide-int-print.h
! ebf250cf9194edd780d532a486554dee  gcc/wide-int.cc
! 0eb153be091e6f61b9b03c8fd72336d1  gcc/wide-int.h
! 83081f4aecfcb23b16fa34e4109aa61a  gcc/xcoff.h
! 7a2a06b6eff78ee53ec362e7562877b5  gnattools/ChangeLog
  3e149f46f7f39c4f49e3e3449af997a3  gnattools/Makefile.in
  612bff48e9d0bfce4a8a8b2ce0e136ae  gnattools/configure
  5904825aa8ada9f931733a205c8ed847  gnattools/configure.ac
! dbc2b1f4f1bbf9701741c768d3c62549  gotools/ChangeLog
! 5d56cc28c41dee982565dd2bb6835d75  gotools/Makefile.am
! 1b3e301307fb3c8ef2e668e88e9da768  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
  bd839a9d17f6121cfd663f099d0bf44d  gotools/aclocal.m4
  6f26693afa3dd1a6616f8bddb895d528  gotools/configure
--- 109278,109517 ----
  5fb2390505ce446a223d21f02b332874  gcc/testsuite/selftests/x86_64/copy-hard-reg-into-frame.rtl
  e42076aeff1c5ac155a88db5b1993d38  gcc/testsuite/selftests/x86_64/times-two.rtl
  195d431640249dac1928ced4d93ecb76  gcc/testsuite/selftests/x86_64/unspec.rtl
! 4f2cac6fe70242fd7fe19fc4905f4d47  gcc/text-art/box-drawing-chars.inc
! d934b555c64ffa8648afd6011c95aa49  gcc/text-art/box-drawing.cc
! 41412371b971dedaf42ceab028c659d8  gcc/text-art/box-drawing.h
! bbfa9ddd45a626fb622ec7de75b07118  gcc/text-art/canvas.cc
! a597353e2cacba60173d6da2ee19d68f  gcc/text-art/canvas.h
! b5a2abf29d36f7ffe543605d8cc72f32  gcc/text-art/ruler.cc
! 2746ce0aa5ff2338c48df88a1037412a  gcc/text-art/ruler.h
! f426afaf1e5ff7086ba16e97b238fb8e  gcc/text-art/selftests.cc
! be32988073beff4f393ff61d3e680c27  gcc/text-art/selftests.h
! 21c540bf3aa433c8751fc892aacace75  gcc/text-art/style.cc
! 362cf6c8d8c36badb59c9884e1ea1f96  gcc/text-art/styled-string.cc
! 770d4d94a5dd1039210f8f565f56fd5e  gcc/text-art/table.cc
! 257621d0a999f68f73fb28e4f9843d2a  gcc/text-art/table.h
! fd0aec88000d4c123c4f6105c5db7eb3  gcc/text-art/theme.cc
! 15b645980f5e14a1bee962752b47593e  gcc/text-art/theme.h
! e1e6258ec644fcc4bb57e7b6ac3504f7  gcc/text-art/types.h
! f1fb74291c5b1a27a0d62acc711b8e0c  gcc/text-art/widget.cc
! 58a79aa593c2173c50e0167620ec0a32  gcc/text-art/widget.h
! 055c939d86b85123fa3ade677b1cfe1a  gcc/timevar.cc
! b864cf73f38bfe6930fe3c78e10ee12f  gcc/timevar.def
! 4337810720460c179fd6d2167526e1f3  gcc/timevar.h
! fe4591896d00d43cf6d3bc2a6ec8476d  gcc/toplev.cc
! bd67380967fd7bdbfaecb515f21f93aa  gcc/toplev.h
! f17081d7fce354b18de1bdbc953d21d0  gcc/tracer.cc
! e4c49a47a0896cb8c73c5b1693d5d987  gcc/tracer.h
! a2dee61107c634caac993d1b4ff79772  gcc/trans-mem.cc
! 076ef910c5a26db182658683089f3686  gcc/trans-mem.h
! 280a8e2b3d635cfb5938de9726121e03  gcc/tree-affine.cc
! a4b827d1ef45152ec036849300997ea6  gcc/tree-affine.h
! bba9c6ee2e2e363c85674f2b5b08c7a4  gcc/tree-call-cdce.cc
! dd53b60072bd45ab08304b6ae5505ca3  gcc/tree-cfg.cc
! 4033e031a74b8591e4e99c6d0b936e95  gcc/tree-cfg.h
! d1d7e848234190caa5f2bf2e83aeb2d2  gcc/tree-cfgcleanup.cc
! 33f85bca44e9b9e703bdf0cbdbaa732a  gcc/tree-cfgcleanup.h
! 1effa6554e543ae715a3b9d5ce9e825c  gcc/tree-chrec.cc
! 56d59272a3fae6c32537f707febf66eb  gcc/tree-chrec.h
! 628036cdbf2db5837b03e08a445438d9  gcc/tree-complex.cc
! ea5a0250e9186f164f0843e79aacedad  gcc/tree-core.h
! 2fa7294509279ec8217a4737dba287bc  gcc/tree-data-ref.cc
! be94ad8882ddf23e3a81adefff8dac6b  gcc/tree-data-ref.h
! 09f7a9f9b68b946fbdba7f9fd3f320a1  gcc/tree-dfa.cc
! fa607c5aeaca12c420103ef58786b736  gcc/tree-dfa.h
! ec613fa4b8297f76ca3f9cc750e10d2c  gcc/tree-diagnostic-client-data-hooks.cc
! 937b996e197d9c641bc0d5a9449a9135  gcc/tree-diagnostic-path.cc
! a42cfecde2bde84e8caf09636b68c9b2  gcc/tree-diagnostic.cc
! debb27964e157c88b76b5e2a00cbd4c1  gcc/tree-diagnostic.h
! 8cd37203c422b0d03a76db07974de7a0  gcc/tree-dump.cc
! 5aeed18b459de9d2e00f46c9e11d231d  gcc/tree-dump.h
! 4ed163091ea87d6f6245c7e2e0fc0403  gcc/tree-eh.cc
! 1f2b40921cf81768c6ef9a444bb90cbe  gcc/tree-eh.h
! d090daa844578953fae325419d401322  gcc/tree-emutls.cc
! 9fff164e638f2e33d35d0e021f67fc5b  gcc/tree-hash-traits.h
! de9026b3ddfb63f45eb7de90c07c152a  gcc/tree-hasher.h
! 1709503086bdcea880fc84dd1629a183  gcc/tree-if-conv.cc
! 5d6eb83f64960ba3d0dc2c1253389f3b  gcc/tree-if-conv.h
! fb5e314e4d7edf6b1cce4c4d36cd6c3f  gcc/tree-inline.cc
! 93e3a89424169fea13caf4b3f341effe  gcc/tree-inline.h
! 14fbc08d8db9b07d391efa6716aea4d8  gcc/tree-into-ssa.cc
! 75ead7abe52cb77f14845ac9c55bbc29  gcc/tree-into-ssa.h
! 856ba3876d6df924db1a685d084281ff  gcc/tree-iterator.cc
! 34c67d9bc9ff4398020de83e3863c714  gcc/tree-iterator.h
! 06e8f08e601771f0ed17d24d2ed46619  gcc/tree-logical-location.cc
! 2e3b7c0529a53dbc24fc1e6fecf628c8  gcc/tree-logical-location.h
! d5ff3e2453b3d2dbc2e28c187658b670  gcc/tree-loop-distribution.cc
! 538752b75f76de52491ebec1ec0878a9  gcc/tree-nested.cc
! d4019e9903f5660319d05b837b0b8f24  gcc/tree-nested.h
! 1fd1f70cb44dc7cff617b5352e49d272  gcc/tree-nrv.cc
! 4e1a834692fbc4d0884ad527115f793b  gcc/tree-object-size.cc
! c2992dcc01282d89c18bbe448c0a5572  gcc/tree-object-size.h
! 06cc5db04462c5845bcd144eee6cd921  gcc/tree-outof-ssa.cc
! 7fae35e1bf1391a4ae03d9bed84ef456  gcc/tree-outof-ssa.h
! 7c817439ea8efb2772697c684a3ce57b  gcc/tree-parloops.cc
! b7cafcfc01cd27516d5788a64e7dc058  gcc/tree-parloops.h
! ac7a115cd070672d90d6479104a15e65  gcc/tree-pass.h
! 789c6299f2f8d026710802845f17d9d2  gcc/tree-phinodes.cc
! 2bdb8225bb6265ab9bd1b0018b497447  gcc/tree-phinodes.h
! 91340bc20d54ccebd0ab72770a2657c1  gcc/tree-predcom.cc
! 1dd8519646252527916595bce0833af2  gcc/tree-pretty-print.cc
! 0f63e75929b34bde93e034c9b1e1430f  gcc/tree-pretty-print.h
! fa283611866c6ad433cfe860538eb2b3  gcc/tree-profile.cc
! d3a97bac3f5a8af3b12be65f79b18c9d  gcc/tree-scalar-evolution.cc
! fe964e6bef89af1a79d00c19713660bd  gcc/tree-scalar-evolution.h
! d739c48269ba3065e4a1dbe1bab62733  gcc/tree-sra.cc
! 1e9cd044620373c14038fbd39740fd14  gcc/tree-sra.h
! 76ef7a403eba76cb39fe06d695ab266a  gcc/tree-ssa-address.cc
! a35227be3c2b85c69d7e31275f1f7092  gcc/tree-ssa-address.h
! c6452562eb3a7624dd36feb34366314e  gcc/tree-ssa-alias-compare.h
! d065739a57162aae9455b6fd8fd17d6f  gcc/tree-ssa-alias.cc
! f77037d285f3ce285e41e6d91e5e482f  gcc/tree-ssa-alias.h
! 13ed373c2913583baaa7e2aec1d6df2a  gcc/tree-ssa-ccp.cc
! be2ddd67b1fc2c7baf9c618d285adce3  gcc/tree-ssa-ccp.h
! 5cef3a450fbc9d3e9e94016fe1711559  gcc/tree-ssa-coalesce.cc
! 3f39d3e2019ab3a50d2cfe7f826d137f  gcc/tree-ssa-coalesce.h
! d6cb51b634b5ae8083bc215f5614d232  gcc/tree-ssa-copy.cc
! 7a860ba86069424dbba5ae8fb0effde5  gcc/tree-ssa-dce.cc
! 394662362ab7d17b000ab838d7bda85c  gcc/tree-ssa-dce.h
! 6d190a3cd228e540064a0f134a3ad3ac  gcc/tree-ssa-dom.cc
! c9368eed42c8261bad4b65accae4859c  gcc/tree-ssa-dom.h
! 0270f4ecd595e57cb5435566f9639005  gcc/tree-ssa-dse.cc
! 310f6675fc42485a28214ba25f193e4c  gcc/tree-ssa-dse.h
! e6a9a93d7d3038dad3f45c186faf9582  gcc/tree-ssa-forwprop.cc
! 48767dda496173441bc33fb424a8582a  gcc/tree-ssa-ifcombine.cc
! bf5c4307662649efd44f8803d6eb1d79  gcc/tree-ssa-live.cc
! bc4d2e809f144d9e2d71f49c6ac1005c  gcc/tree-ssa-live.h
! 62caed8ee6b65f064d889ab923fa4b37  gcc/tree-ssa-loop-ch.cc
! 55ebb785bb6539266182eec301fd8a88  gcc/tree-ssa-loop-im.cc
! d13427e991e77725e732629fb007437a  gcc/tree-ssa-loop-ivcanon.cc
! a480422906cf94ca39939d91a1c3344f  gcc/tree-ssa-loop-ivopts.cc
! 66d2704d1626bcfc35f8aa458ee6a1a1  gcc/tree-ssa-loop-ivopts.h
! 468cc85e2332333521f69f26b7dd5b27  gcc/tree-ssa-loop-manip.cc
! 66557039c7e4f18ad92b155b29c79d30  gcc/tree-ssa-loop-manip.h
! 1d47300b20d7cd6f648c9fa82bac9e17  gcc/tree-ssa-loop-niter.cc
! ec5f7abc3695bde1fbe2a8b2a7e53167  gcc/tree-ssa-loop-niter.h
! 1227f24f2f18334f57649a99ceeda666  gcc/tree-ssa-loop-prefetch.cc
! acc4aff264e3f0e53b0b258a37163e6d  gcc/tree-ssa-loop-split.cc
! 5b01b125f53e8b950350c0cd3cb6efd2  gcc/tree-ssa-loop-unswitch.cc
! 55ae2e77440663854644a5c55e444332  gcc/tree-ssa-loop.cc
! ee1eafa40cd3c1d5777881a232cc123a  gcc/tree-ssa-loop.h
! d382a50be04b80ec69bfc154e045794a  gcc/tree-ssa-math-opts.cc
! a2aa940aaf235d855f0a29cd853cd161  gcc/tree-ssa-math-opts.h
! 09cc12675477c15773525c18f05c8887  gcc/tree-ssa-operands.cc
! dec9c71d0caf6496e2b48ee295c14dd8  gcc/tree-ssa-operands.h
! 55a1776f4998ecffeaf856805bab5fe8  gcc/tree-ssa-phiopt.cc
! a5f34e36dee1bef8e82d05d782b00345  gcc/tree-ssa-phiprop.cc
! e9b1af1a925226afe14c1540bc0302ee  gcc/tree-ssa-pre.cc
! 8c4cb601d98c97971af9d097d48b5ae0  gcc/tree-ssa-propagate.cc
! de3b298cc003003bf8914ebfcdf63f2b  gcc/tree-ssa-propagate.h
! 43b7f1c0081f98dd9638a31dd0ef5633  gcc/tree-ssa-reassoc.cc
! ea6d5ea2f3442b7c3f3a8b3356e827ca  gcc/tree-ssa-reassoc.h
! 85db944dab521b4f3a7a40ae0c183c09  gcc/tree-ssa-sccvn.cc
! 545f646c7c717bb603b5eb8e283f414d  gcc/tree-ssa-sccvn.h
! 46d17810ce8ff6e8a1eebf89645eb941  gcc/tree-ssa-scopedtables.cc
! 1da39bc41633a7721b894ea76af3f6ca  gcc/tree-ssa-scopedtables.h
! cd77911481fba79d71bfa0d37ab5c51c  gcc/tree-ssa-sink.cc
! 727b4d1dca888c52d99f82d102f5c7b7  gcc/tree-ssa-strlen.cc
! 99d54f633ea0ea6b7eb29b8647a88ae6  gcc/tree-ssa-strlen.h
! 81296e36c5bc6ac73a7061046ee86aba  gcc/tree-ssa-structalias.cc
! 80f77499d5bbd2cd86abf5ae62a0e6e5  gcc/tree-ssa-tail-merge.cc
! 7d4eaa3828d8666a6bd7e6af8f65adc4  gcc/tree-ssa-ter.cc
! b10f3dee35565bc7bd7b5888c46bdecf  gcc/tree-ssa-ter.h
! 4fbd9d7ecc226a9bc1074a9e40fb6eb3  gcc/tree-ssa-threadbackward.cc
! 1caec8c8b4d11d6fafd1fb1dc2ca0787  gcc/tree-ssa-threadedge.cc
! 29f8a8377a5b70554ebe265135d26f9b  gcc/tree-ssa-threadedge.h
! c2bf589aa6dbbab6162ad787e65d4665  gcc/tree-ssa-threadupdate.cc
! 9374cd1cb2c7b3cb8a499119952cd8d1  gcc/tree-ssa-threadupdate.h
! 8926c9b92bf2f02d7f75e8cbe90b51a1  gcc/tree-ssa-uncprop.cc
! ea0e04b213af36875d65dfad1ceb551f  gcc/tree-ssa-uninit.cc
! f59427cd75151b084118bc321a18e2f4  gcc/tree-ssa.cc
! 961ccaf19ca46eed92d55c3f060ed606  gcc/tree-ssa.h
! 5251bb43756203589b45801c7bd7ec4c  gcc/tree-ssanames.cc
! 6c7a9ef679b06ebdb4df4ac7a07f72c0  gcc/tree-ssanames.h
! c46ee145b917a2cc00062d238597ff66  gcc/tree-stdarg.cc
! 72a5920ffb9e570e29ba265bb506db31  gcc/tree-stdarg.h
! 7fe8322f3c93f35b456401ac8d33ce0e  gcc/tree-streamer-in.cc
! 5131cc364eb717c3d0a755443d198f1b  gcc/tree-streamer-out.cc
! 7cda0dde16b638ec52a280efc5c4eb85  gcc/tree-streamer.cc
! 6b542393d2cc1446541757996166c746  gcc/tree-streamer.h
! 7c14f981c2baa34566ab0be620ac617a  gcc/tree-switch-conversion.cc
! e52dd1666766e097473010a395e05b72  gcc/tree-switch-conversion.h
! ff0ac55bde82f5e21ae65ccdbf2e13f2  gcc/tree-tailcall.cc
! cc38d6e99e2a5089f84de9a8f56650d6  gcc/tree-vect-data-refs.cc
! b649d58dc08f4c2ba87ae9b32243319c  gcc/tree-vect-generic.cc
! c91290ea99b7eda6f778a3904d69f971  gcc/tree-vect-loop-manip.cc
! 137acf1c293ae08cd4c5cc6f0f6b99cc  gcc/tree-vect-loop.cc
! 7ab93074a98aa287ba55a5656cd28374  gcc/tree-vect-patterns.cc
! 1a64cd5c04dc783eaac9e6306a28f940  gcc/tree-vect-slp-patterns.cc
! 10210377616025f778fc1831e50ba08d  gcc/tree-vect-slp.cc
! a8dab9222e8860909f12a1d69d41ab39  gcc/tree-vect-stmts.cc
! 795c5280c71f566f4b3e8c7fdcc3b609  gcc/tree-vector-builder.cc
! 250ce9e7ca93bb776afda377af2c190d  gcc/tree-vector-builder.h
! 004410d7d8185eeac071120983339e48  gcc/tree-vectorizer.cc
! 15ba55932a9c75dec87fe1ca7bcd7af7  gcc/tree-vectorizer.h
! c3cca16e183462f0251f8840ef073def  gcc/tree-vrp.cc
! 01b6633a647a8aeca196fc6d0021e4cf  gcc/tree-vrp.h
! f7fcb4ec70d1fdc4a81b6885d4dcd50e  gcc/tree.cc
! 110668da7614fc11045af4d047706a7a  gcc/tree.def
! bd976d539f03b9f6fd9501087f38cbec  gcc/tree.h
! b157222cc904eb63d41484795109c2ca  gcc/treestruct.def
! fe94d833acf63e837f3a8d762563d0c2  gcc/tristate.cc
! 9722b7f042d9cee67320eae1705797f7  gcc/tristate.h
! 24f6548db1553ffed8124299cf7ccd41  gcc/tsan.cc
! 920894f4341831c4c35247d77eea6684  gcc/tsan.h
! 24984b2206d772c2e142e3cf04fe612d  gcc/tsystem.h
! 6b805b7fdd5bf57cb4f2146d63a77376  gcc/typeclass.h
! b77dc0dead8afd9c6b408bcc31a1ada7  gcc/typed-splay-tree.cc
! f63cbceb89f9ec25c3226002dc0bd903  gcc/typed-splay-tree.h
! e1ca03d739b83af1e487a8adf5199554  gcc/ubsan.cc
! 4cdb47a1f6238f865607e70f975154b6  gcc/ubsan.h
! 482a82ae05017582742b1e1bac54126a  gcc/valtrack.cc
! 56458b9a0e577cf4083be8b5b11eccdd  gcc/valtrack.h
! 20a0471bc4eaa7c2e57abd89ea1cc29d  gcc/value-pointer-equiv.cc
! 468a16f013bdc6f82cca1c8abcda393f  gcc/value-pointer-equiv.h
! f12b81e07a2f5e5e2f266fc5d3248347  gcc/value-prof.cc
! aa1c6012dd4232e0d369debb9ec3baaf  gcc/value-prof.h
! 8d7b1be6f125a48a6857560dd0fd1913  gcc/value-query.cc
! 83d59418fff11fd578a7c29d81e32980  gcc/value-query.h
! 99d2bab52e11e5d09401537967943588  gcc/value-range-pretty-print.cc
! 4f541ad031fca23f1c99a538bd24c1dc  gcc/value-range-pretty-print.h
! 9bda5e7cba55b97851f024f76bba1848  gcc/value-range-storage.cc
! 871afa6374e267541b255eede18dd38d  gcc/value-range-storage.h
! fc3a5444ab2f7b11e87144ab56a71466  gcc/value-range.cc
! fd8293057f64c6f22290d588535d3260  gcc/value-range.h
! 6bd9f193e6f88cb950105bff4c176f41  gcc/value-relation.cc
! 469a7a97b1112ecfe2c1b5be79fbb00f  gcc/value-relation.h
! aef2f0cae53c5edfd778280219b466a3  gcc/var-tracking.cc
! 36cd4ae036bcdd57275976fdf7c7cf2b  gcc/varasm.cc
! 79de1a72d196b7455a702ff25852c608  gcc/varasm.h
! 7d462024f7c2b3043e80201d7e1edd3e  gcc/varpool.cc
! def1e50c6aea3c6c564292eb4416bb39  gcc/vec-perm-indices.cc
! 5c88eaa48ae345e419488b1bb0c27fdd  gcc/vec-perm-indices.h
! bb8d04c4e68c6b4518199de46e56faeb  gcc/vec.cc
! 1b1e0aaf0ee35c5d2aea1d5d327843e8  gcc/vec.h
! ad835c61b5aa28c3f501e0b335cfd8b7  gcc/vector-builder.h
! e9e81f6468a4d8def6380d5c73383508  gcc/vmsdbg.h
! 46441fdd05b5cf12c9c2b11ce1a04f46  gcc/vmsdbgout.cc
! 499cbc0538e5c2d65f5c143c86b59213  gcc/vr-values.cc
! e460830a86e9a9a754fcdc3352b86ed6  gcc/vr-values.h
! ff26c41ea07360558ce5b1efed5c5d8a  gcc/vtable-verify.cc
! 531ee320a86188a0112184274dc1b80b  gcc/vtable-verify.h
! c9cecb16413384a7614bb3deebc7f07c  gcc/warning-control.cc
! 78ef4dfa05aa4d30e6f93d1dcb371065  gcc/web.cc
! 33e4f19114f1719b26de8e9ae9776b0c  gcc/wide-int-bitmask.h
! a41305f34267c48fb3bf104de54433ee  gcc/wide-int-print.cc
! 92f36595a6c832fc2041b44284214941  gcc/wide-int-print.h
! 1363876093f5569dbcc0e5bad754a71e  gcc/wide-int.cc
! 6095b48774ea6dde35d1de3b1d901611  gcc/wide-int.h
! af01b123dbd2c04438de834147a719e3  gcc/xcoff.h
! 13d8c64dae4381a8096f01fbf827847d  gnattools/ChangeLog
  3e149f46f7f39c4f49e3e3449af997a3  gnattools/Makefile.in
  612bff48e9d0bfce4a8a8b2ce0e136ae  gnattools/configure
  5904825aa8ada9f931733a205c8ed847  gnattools/configure.ac
! 9604e013c7c46e7ba7bc98fa3c41fcf3  gotools/ChangeLog
! d0cd4560ae9ca95137adac2f96734dfc  gotools/Makefile.am
! a9620fe98e0c9bf3a5beee26347a0a27  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
  bd839a9d17f6121cfd663f099d0bf44d  gotools/aclocal.m4
  6f26693afa3dd1a6616f8bddb895d528  gotools/configure
*************** c4e8176c1964a5ebe0a55900f2141299  gotool
*** 99746,99917 ****
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! bc21b3c0991eb3acb34a54b04de786b6  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
! 0ff2b24587f14124d511aab046079147  include/ansidecl.h
! ddfd001de81b0225d9597b84db48cc23  include/btf.h
! b42aeaa131fc780da1b2872f01754d93  include/ctf.h
! 35cfcd2e56153c59bd1ad4a871fe2f4d  include/cuda/cuda.h
! 1094658099047a4c233d1fa6c252212e  include/demangle.h
! 23e6c4f275724aa0b38f38451de3b712  include/dwarf2.def
! 2609dce027dea168b1b9d11ce2b8fb10  include/dwarf2.h
! 8761fbbc5596031c242423c0afcec7b2  include/dyn-string.h
! 7a5fe8d1ca32f56490e46d583e726d61  include/environ.h
! 15e14a6da663c99f8ff76875644a0443  include/fibheap.h
! f9779a6d540c8c63c61d523b1d684404  include/filenames.h
! 0207c1a4a13638a53e1fd29c8cfb5f66  include/floatformat.h
! 28faf555a21ff1caff17e18830a9e1ba  include/fnmatch.h
! 5351349acfa0916c1f02d09a17d93e90  include/gcc-c-fe.def
! 20869d1fc55eb03f5389b21b0dc72a40  include/gcc-c-interface.h
! 015bad70227c24e9fa3d622ef6ac84e7  include/gcc-cp-fe.def
! 7ee5288532391e6296812013df727905  include/gcc-cp-interface.h
! 3eb89a9a70e3b118728a886f71407e13  include/gcc-interface.h
! d355ce23b2dacc49dcca587d1c142a68  include/gdb/gdb-index.h
! a4e4e1b10794b154b1f341cc87603b59  include/getopt.h
! da5e939a96bf22580a0b4acf109df69b  include/gomp-constants.h
! 45dedac747b13f7213a4fa7140ce1844  include/hashtab.h
  18d01da8845d11d2091cf3787c4ad79e  include/hsa.h
  f9fafee2474590659930fb2d0db7be2e  include/hsa_ext_amd.h
  9df4701c7f8f25d502bdadccbc97581c  include/hsa_ext_image.h
! e72a53cb02cb3b138d2e581ab5e1c80f  include/leb128.h
! a51d824d218ae447ac65c3ceb509144a  include/libiberty.h
! 78becd47c686b12745acc17de795e739  include/longlong.h
! cff0f0d0454b9eb1d0303ffc45370be3  include/lto-symtab.h
! c2309784dc5b0e78facc40ffd1d2c317  include/md5.h
! 8b725d16096daae5ae90866e7b83e188  include/objalloc.h
! abb08fad8bb7e224935202281eb1839d  include/obstack.h
! 39a0b8092fdde13245d7faabe5971c91  include/partition.h
! 82fa61abde9968b98397fb91cb87939d  include/plugin-api.h
! b6bc18ff7e3681049201bc69010936b9  include/safe-ctype.h
! 300038d29640f15cd9971bacd2f7bfc5  include/sha1.h
! 0cdbc5bf38d312991a92e6816c21cb9c  include/simple-object.h
! 142254129ea1ef93927b0885e4867476  include/sort.h
! 5763f96a28ee1fb6241004268ee0b8c4  include/splay-tree.h
! 9739cc8fd40f3a1e6bb84e0c16523bca  include/symcat.h
! 63bf675eedb0d220750f16ddd9698ac9  include/timeval-utils.h
! 5da103c1d5c09196f56a9a45fa881733  include/vtv-change-permission.h
  53bdfdb5cd3c0c7831611602041cda52  include/xregex.h
! 82bb127144a0a6e3fe7fe28b58d5ffcf  include/xregex2.h
! 5b7dc4eb0d130a5e69585036ec952a8b  include/xtensa-config.h
! 7c9ba9d93474d91c7467ed1f1ed2f088  include/xtensa-dynconfig.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! 05f5d1af16444d04afb27058d152326c  intl/ChangeLog
! a5f61a727ebbc9d02c42160796629b91  intl/Makefile.in
! 6ec998bb4716c744bf8185e607f69301  intl/README
! 76ca170a525d5b84d90f0478fe788931  intl/VERSION
! 03740a87284033311c5cb780e5c23315  intl/aclocal.m4
! d4abe82ea322701d2385778a2fcd0804  intl/bindtextdom.c
! f9a9ff3ee0a9b0465351b384e430bec5  intl/config.h.in
! 8a751062d7db9b6e8163667e5626fcb5  intl/config.intl.in
! 7ab568c03cf114dd83d1eaa20450c8e4  intl/configure
! c9c87f4eb11c35c58d88fb2a395cb0e4  intl/configure.ac
! ff5c358b1507e45a2106b23b7e6c70a3  intl/dcgettext.c
! 81b58accbd88cd8159471d322723c42d  intl/dcigettext.c
! 0cfc94e602bc20d958f014c77ebf357c  intl/dcngettext.c
! c8501675ab40fcf8fe39364ab9de0e42  intl/dgettext.c
! 45bd4be597b118d4bbbff6c9c6958e87  intl/dngettext.c
! 6e671cf01cbb93dedaf7b3688062d7b8  intl/eval-plural.h
! 1e4b5d6e86db4708199e0b7b61d06232  intl/explodename.c
! 6f008e715086ccfb7e8e44c007fc7bc9  intl/finddomain.c
! 24c6e42d8020a8759b3c8b13e0c37493  intl/gettext.c
! 27f0efcc3ff8493519140cb36aeead2a  intl/gettextP.h
! c6620ffc92d5853137d3ac11300de38a  intl/gmo.h
! 049ba34a0c8d1fe665e8119e579dce4c  intl/hash-string.h
! 7b5af5c4e777690b9851b3e85603bcc8  intl/intl-compat.c
! 9f41e951f166a5aedcc25268c161d1da  intl/l10nflist.c
! 2740caf6a9b990fac0a884302634e833  intl/libgnuintl.h
! 0ad4083e3b5df1f764bb605dcf657b88  intl/loadinfo.h
! d8e3733cf513bbf862ca090cf6403edf  intl/loadmsgcat.c
! 0ff7bc241f5ea36688cf8bb6ac801b5d  intl/localcharset.c
! 4d8b75dcdafb699870e4133fba5b58f0  intl/localcharset.h
! bb9312cab68737125445f5932ae7140a  intl/locale.alias
! bdad874b80d29c70bb040f2ddeb67c5d  intl/localealias.c
! 8179cdac0affac17e1f1ed2087b4595a  intl/localename.c
! 78672e3784df9ceba75d1d004d6a1f78  intl/log.c
! 040acf17db43770b3eeab4337e031fc0  intl/ngettext.c
! 506ef276b14575f52af7a6982d58e666  intl/osdep.c
! 0d24096ff6c1f75bfdd5d2fb7a2d299c  intl/plural-config.h
! 12ff40e8c89d99dc7b704bac9434124a  intl/plural-exp.c
! ed2520cb4565ece5ed11374acba45253  intl/plural-exp.h
! 74052f7ffacffc24edbbecd29f3812ee  intl/plural.c
! ec38b8a64a735196854a8f7d76b79a78  intl/plural.y
! b4758a0194e3e41362b939911472ce62  intl/relocatable.c
! bedade7bcfc3bc5eb09a2c6844f637f3  intl/relocatable.h
! 43f287d082528203fc85c1d2d81bf30d  intl/textdomain.c
! 9538b0b5b81b8963605f2f004a196ae4  libada/ChangeLog
! dca5ce4eb1363d83b4ad5b9a53945d40  libada/Makefile.in
! c84521662479d4955e33fae0dded80b9  libada/configure
! a7a500814e0b8f1c0566431969ec0b61  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! ee2cb9387763819299f8c5f0c9e4e0b6  libatomic/ChangeLog
! 341eb3cfc5416fe2e8b441ba30b064d3  libatomic/Makefile.am
! 4b64390f7024f015eef3741123d570bd  libatomic/Makefile.in
! 04a8eb275561484cf0d6f8c459a38177  libatomic/acinclude.m4
  d93a7644df6ecd2eda448dcb5b1baeb3  libatomic/aclocal.m4
! b741b38c451feebdcd9aedce6e37b702  libatomic/auto-config.h.in
! fcd290accdbd34e650bed8d58754c040  libatomic/cas_n.c
! 2e1365b4beaf7423d28a591c5c7544c2  libatomic/config/aarch64/aarch64-config.h
! c9cacfc64d3cf19e6879341cdf1f0b3e  libatomic/config/aarch64/host-config.h
! b795411336ea37fee2d2971597967313  libatomic/config/arm/arm-config.h
! 39746dec7d61a55262e77e966db03cf1  libatomic/config/arm/exch_n.c
  03721fea5b66271f6af702a80b072f47  libatomic/config/arm/host-config.h
  db43cf5a187a91251ef3198570679f95  libatomic/config/ia64/host-config.h
! e2f83238e16cb0617635a51d858586c6  libatomic/config/linux/aarch64/atomic_16.S
! 7c74f198af4d2cffb41ca2aff3f3ba37  libatomic/config/linux/aarch64/host-config.h
! 1edc2f81c8bc3f0c2911e3af891a0a37  libatomic/config/linux/arm/host-config.h
! d8dd1496d0a47e0c36547274ddb129a2  libatomic/config/linux/arm/init.c
! 54dfed278e96c1c3d6019414564adf5d  libatomic/config/linux/arm/load_n.c
! b203dc97760ced0dd6b989ddc85de233  libatomic/config/linux/arm/store_n.c
! 499c9b858ab0b6a31b571f05e2f35da0  libatomic/config/mingw/host-config.h
! 62cbf2fa3900c584b4346bf2bf38d3bb  libatomic/config/mingw/lock.c
! 32947feebf3d4e7e09c04cb9ac2f9cc0  libatomic/config/nvptx/host-config.h
! d095a6f286a5cf65c278619ac9e3ebe9  libatomic/config/nvptx/lock.c
! 06a4055a895b52254dbd86a62a16cb0e  libatomic/config/posix/host-config.h
! c44a36cc8503d04241e63432ee3cbd4b  libatomic/config/posix/lock.c
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
! ae056c7038d61ce6191ec149aee8f69b  libatomic/config/rtems/host-config.h
! 08b0225a8b5565ea77c2a80132653b12  libatomic/config/rtems/lock.c
! a8478ee8d2cd46e9a043499fcd5a5000  libatomic/config/s390/cas_n.c
! 30db11280d4589959f3718c574d2b676  libatomic/config/s390/exch_n.c
! a5662851f79984e0d6f62988fd02f2e1  libatomic/config/s390/load_n.c
! 49767832346a46e0dba239734437126c  libatomic/config/s390/store_n.c
  ed3d69739cb2f35407547229f0393f92  libatomic/config/t-aix
! 938ddd95f5b63412d99f921d636209d8  libatomic/config/x86/fenv.c
! 148d73b0ff94862385a29b3044d0054f  libatomic/config/x86/host-config.h
! 4e76c91998f550cd3ddf8b06c92c47a2  libatomic/config/x86/init.c
! 0b168d83751ca52c618ebe5aca62c342  libatomic/configure
! 1a51ae0be38da3cb4467e1e203de3282  libatomic/configure.ac
! 277afe7345c609e309faa0e88f3c2dac  libatomic/configure.tgt
! 2afbcee010fed235f0dab936cc58e7b5  libatomic/exch_n.c
! 95f82f5ca7be952f61f67c87eeb4b5eb  libatomic/fadd_n.c
  ee6f02fad9bd551a906477f16740578f  libatomic/fand_n.c
! 2d3cb75637658256daf925e57cd9a86e  libatomic/fence.c
! b16416cae34b6ca6c2f4dcdc59ddbd35  libatomic/fenv.c
  2939db87e049993b583497188f079e6d  libatomic/fior_n.c
! a8b82d22d4d9204105b490e2f83e324b  libatomic/flag.c
  b3ccae58518e27bb730ed84c99a2eb0c  libatomic/fnand_n.c
! 9c51b93a9313c06e28e9264028e8259e  libatomic/fop_n.c
  834a4e99e9b5231aaa54e4802aecb241  libatomic/fsub_n.c
  fb7579412eac2bf65459985ea4c7f320  libatomic/fxor_n.c
! f38ed674ed3b85c765da7079f385282b  libatomic/gcas.c
! 9098eb107c6ec522f97de811a7466f90  libatomic/gexch.c
! 1f89acf8ca5c2d06f052c589766792e0  libatomic/glfree.c
! d510810c48afa63f686e31053fba87db  libatomic/gload.c
! 8324d293fee4313ffe16cc2b82a60e43  libatomic/gstore.c
! 4c0435bfd509851f3155e5246bf9a49d  libatomic/host-config.h
  0e7ef9ed2b60ec1c9afc38701d815f6c  libatomic/init.c
  2fe463a1aa0855eab0961f927f300752  libatomic/libatomic.map
! 2d8e2e16c0c6f0810c6e4cf63f901ce2  libatomic/libatomic_i.h
! 01e002bf1ce1abcfc6f7e61288a74547  libatomic/load_n.c
! 72bd14598b0099d65cc5f165048f190f  libatomic/store_n.c
! a9328f7b9bf813b6544ac50e3284467e  libatomic/tas_n.c
  8772872393a7b4f226a2ff99cd0767b9  libatomic/testsuite/Makefile.am
! 83c9ad417b936ec359ac986a0c942b27  libatomic/testsuite/Makefile.in
! 59e5f26946889503f21fefa38349540e  libatomic/testsuite/config/default.exp
  3e77a79fd1e00a1f4e5fbf507474e1e5  libatomic/testsuite/lib/libatomic-dg.exp
! 3660fb5d59f1937a63ffb5477e5ea37f  libatomic/testsuite/lib/libatomic.exp
! 97fdc33cc25788d4b9dc1db6aefed760  libatomic/testsuite/libatomic-site-extra.exp.in
  6b8763cc8b07ca01040138d742a984f0  libatomic/testsuite/libatomic.c/atomic-compare-exchange-1.c
  773f995ba0a3ab509251361826397852  libatomic/testsuite/libatomic.c/atomic-compare-exchange-2.c
  71f01b6652a351daec3cc54b70b2468f  libatomic/testsuite/libatomic.c/atomic-compare-exchange-3.c
--- 109520,109653 ----
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! 676b44d7bf5f8868e8d75fc7e11add0a  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
! 9f3a5acfd22da6e3019b3e658f324668  include/ansidecl.h
! 3af54607e8908b9a25ac50206d77b5bb  include/btf.h
! 6185785d6edcc0621f44a86cd4a349c5  include/collectorAPI.h
! 5a9888ed4255f31588a76ee127dd6012  include/ctf.h
! 6ef56b88d69bbb1fe82ffa5ab1856ea7  include/cuda/cuda.h
! c9618994867213337a5535613c121756  include/demangle.h
! 4dbfbdb58f8076555dc866922340bceb  include/dwarf2.def
! 615805a22a0f82b1dad969ee13c63feb  include/dwarf2.h
! c628ebc0ea0beba0ac91dfd784a463db  include/dyn-string.h
! 95b8536d385b500daeeff689d35ec010  include/environ.h
! e9e7e94d3511d3a0d1a15254b9dfefdb  include/fibheap.h
! 7619a54ef7f5c76f62e3469ad8eb66cd  include/filenames.h
! 75118fd6b66780ec90fc04b1336d2dec  include/floatformat.h
! 13847f0d03f568c1ee65f41519e9de41  include/fnmatch.h
! d8e683eb9fb99d9514c315532237cf1e  include/gcc-c-fe.def
! 50180fc2224dfebcc396b94b59c1aa18  include/gcc-c-interface.h
! c28ac4d10dc50a80291afb7f9125b99a  include/gcc-cp-fe.def
! 51a7a01e43722e0c981a017ef274e287  include/gcc-cp-interface.h
! 7790dd44076de5ec0875b1a881a30fb3  include/gcc-interface.h
! e9d19dd9b435a4ffa00d9d3834eb9ee0  include/gdb/gdb-index.h
! a91c36e2583b26f91c60ca55cdd6983c  include/getopt.h
! 4b2ce19c7ffd6675af33098fb40a1669  include/gomp-constants.h
! 6cad0cd1ccc6a8a0d66acc207b46799c  include/hashtab.h
  18d01da8845d11d2091cf3787c4ad79e  include/hsa.h
  f9fafee2474590659930fb2d0db7be2e  include/hsa_ext_amd.h
  9df4701c7f8f25d502bdadccbc97581c  include/hsa_ext_image.h
! 86e6bbc42dc6b2e5bcc6844f5e1f3cde  include/leb128.h
! 5ef355486f204d779722fd4342e76913  include/libcollector.h
! 2af7a025bc0fb20a44fd6470fe31f26b  include/libfcollector.h
! 29ca342b93573abc28015a22f940c551  include/libiberty.h
! 7da94de651e52b86ad4a2a02254deee3  include/longlong.h
! fd843ce7dd5e65bb382ba5d0347416ca  include/lto-symtab.h
! 1bb2b9db5433799904c7294a9dfa3291  include/md5.h
! 34f9c79707047a490421de8ceae21b03  include/objalloc.h
! e33f432344673e9c569ec8227e3af1db  include/obstack.h
! 6ce340672c134770b0826c01c9ee48bb  include/partition.h
! 9f8c66f98e49627e3869f90feb445e41  include/plugin-api.h
! c615795381af803cf69f709f9a9fceef  include/safe-ctype.h
! fc08a8d6ad86c94a4dc1b1b8b1a3348c  include/sha1.h
! ca1236f12460b411c5bb7644c8bf6c44  include/simple-object.h
! f30cb47d61951301f830a7f70506f594  include/sort.h
! 8f320017d6acc6e3fb4281309b2a4664  include/spincount.h
! e8d57e3886181daa03a2397a7e9c6c3f  include/splay-tree.h
! 08643019e25f4400b069d6607f06e74c  include/symcat.h
! 6b33663e4a1e540c13ed8592d45066fe  include/timeval-utils.h
! 28fdeaee50e88235669d681b1feddfbc  include/vtv-change-permission.h
  53bdfdb5cd3c0c7831611602041cda52  include/xregex.h
! cff84a4d41fcb38381d11bfbdaf532f0  include/xregex2.h
! f02f51970dffa55eb022dbcba49feb40  include/xtensa-config.h
! a47ba919c019dbad38ca8ee0ac09d4a3  include/xtensa-dynconfig.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! d1a9454212c0ec779e8c805e21b87dbd  libada/ChangeLog
! 3865b131c71807b682068fa2ffaed669  libada/Makefile.in
! 46d6319e8ffc7eabf27cbecd6141a912  libada/configure
! 52b66257eda901734263416f8d867e6a  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! 3040297befca95234c7e8d523a973824  libatomic/ChangeLog
! cb5a6e372368f4afa173ecc87647f09b  libatomic/Makefile.am
! e514bb4dd510d23d6f74e14cb331d20e  libatomic/Makefile.in
! 7a347397f9951bf68e2c0f275e928abc  libatomic/acinclude.m4
  d93a7644df6ecd2eda448dcb5b1baeb3  libatomic/aclocal.m4
! 3d3048ae219d9c9e6aeec5594ae8ecc6  libatomic/auto-config.h.in
! 7513c6313189dc9719a9127b12495b32  libatomic/cas_n.c
! d7ce92a4b9a6b88a6ffc5ba0edd212ac  libatomic/config/aarch64/aarch64-config.h
! 19db11e739d5235119f920815e4a0ae3  libatomic/config/aarch64/host-config.h
! ea7bf4b5a7310563c4839759fe268a5e  libatomic/config/arm/arm-config.h
! 05255a71c9d7d685d5c5d6e5da3ba908  libatomic/config/arm/exch_n.c
  03721fea5b66271f6af702a80b072f47  libatomic/config/arm/host-config.h
  db43cf5a187a91251ef3198570679f95  libatomic/config/ia64/host-config.h
! ae3738f1bf2eb33529c1ffe8ac04ce13  libatomic/config/linux/aarch64/atomic_16.S
! aec99a2ee9445e8d1d519efe3c2b9e4a  libatomic/config/linux/aarch64/host-config.h
! 58ce7cf120a8905b0b16d6e1c74b377c  libatomic/config/linux/arm/host-config.h
! 08cde3dd5b1df871f9147a6676c15a0c  libatomic/config/linux/arm/init.c
! f43ccaf4a6908475442f71c22fd1b6d2  libatomic/config/linux/arm/load_n.c
! 1b55dc87ed8a9c33ca1b79cdea1b4b86  libatomic/config/linux/arm/store_n.c
! 77044b9af0dda3ea97c220b8e4f76954  libatomic/config/mingw/host-config.h
! b3d9101af5a4a47efa6a0171af5b43b5  libatomic/config/mingw/lock.c
! 8ddfcf71e87ccc8e8031184d0e8a5a16  libatomic/config/nvptx/host-config.h
! 35f41467515e9b75a7ce7f935d31a1e5  libatomic/config/nvptx/lock.c
! 357f183e4d67010c58e702d397a4c283  libatomic/config/pa/fenv.c
! 315dc962e5ca8b065b9008e675069746  libatomic/config/posix/host-config.h
! 52a800f2587856234a96fa0ba4ea6e26  libatomic/config/posix/lock.c
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
! a2e7951082a2001bdd637b0607d36aba  libatomic/config/rtems/host-config.h
! 900a1c9ab627fa49537aad044d8e05a2  libatomic/config/rtems/lock.c
! ddd719ca2ac25946562c5740ca9f1164  libatomic/config/s390/cas_n.c
! ef3ec9807f60e990c80524624f0a898a  libatomic/config/s390/exch_n.c
! 4825ff8373cfb56ba83c1794551fb3e4  libatomic/config/s390/load_n.c
! ebb32b78998e774265377f56af086e2b  libatomic/config/s390/store_n.c
  ed3d69739cb2f35407547229f0393f92  libatomic/config/t-aix
! 56aff474dbbee931e3a1612b47ebad0e  libatomic/config/x86/fenv.c
! 0e87c604701b35da88c8d22a43ab1339  libatomic/config/x86/host-config.h
! 1b91f112e46c03b15799381a0a1d930f  libatomic/config/x86/init.c
! daaf8e6af2b785591808f9e2a918889b  libatomic/configure
! 9d534c77c0d6a63a97a8a7016c6f1f49  libatomic/configure.ac
! 6724c6ea7b79825c897cc2050028e728  libatomic/configure.tgt
! 4acafd3c5b63bbe2b453f71808b11b88  libatomic/exch_n.c
! 8f439cc63591932ec5727b3af1b18bd7  libatomic/fadd_n.c
  ee6f02fad9bd551a906477f16740578f  libatomic/fand_n.c
! 612ae41a683ed7128bea17c1d80d5896  libatomic/fence.c
! f76f92e8454b6bad9f5a226cfebf05bf  libatomic/fenv.c
  2939db87e049993b583497188f079e6d  libatomic/fior_n.c
! ff63110269ac9581cb75684664c44c99  libatomic/flag.c
  b3ccae58518e27bb730ed84c99a2eb0c  libatomic/fnand_n.c
! 0747775af2c1d1399c4f651fb4a86df6  libatomic/fop_n.c
  834a4e99e9b5231aaa54e4802aecb241  libatomic/fsub_n.c
  fb7579412eac2bf65459985ea4c7f320  libatomic/fxor_n.c
! 09348de7d7f2980cf21d5ef938e8cff7  libatomic/gcas.c
! 6818a9e56901789f198f5094fd21236c  libatomic/gexch.c
! 9d0505358178b658f069bb67caef5df4  libatomic/glfree.c
! 484bcaecfa1d5976e0a952f638308b6e  libatomic/gload.c
! f9cc593c94fe9f2c87252cdd3291dee3  libatomic/gstore.c
! 2fb89fce090c35ec17fb7c041bbeaeb6  libatomic/host-config.h
  0e7ef9ed2b60ec1c9afc38701d815f6c  libatomic/init.c
  2fe463a1aa0855eab0961f927f300752  libatomic/libatomic.map
! 3e6cd9948a890ec9449be56be2cefc6e  libatomic/libatomic_i.h
! 73bdcc11c5bcd17146b905608ddea25c  libatomic/load_n.c
! a0d37a72dd0092f3931201dc4ebca283  libatomic/store_n.c
! f94c51050b9929da1b0dc67e9f01f53a  libatomic/tas_n.c
  8772872393a7b4f226a2ff99cd0767b9  libatomic/testsuite/Makefile.am
! 7f7cbf5cf0b5b7eaf13a26b895cabed6  libatomic/testsuite/Makefile.in
! 68916cf6b5db990548ae36b9e4f310c1  libatomic/testsuite/config/default.exp
  3e77a79fd1e00a1f4e5fbf507474e1e5  libatomic/testsuite/lib/libatomic-dg.exp
! 81c63aaed11e9fa390e8aa2cff877bf8  libatomic/testsuite/lib/libatomic.exp
! 9eab2bd493af1db9811d52bbbef2a805  libatomic/testsuite/libatomic-site-extra.exp.in
  6b8763cc8b07ca01040138d742a984f0  libatomic/testsuite/libatomic.c/atomic-compare-exchange-1.c
  773f995ba0a3ab509251361826397852  libatomic/testsuite/libatomic.c/atomic-compare-exchange-2.c
  71f01b6652a351daec3cc54b70b2468f  libatomic/testsuite/libatomic.c/atomic-compare-exchange-3.c
*************** c03a072efac9b30f8f8429ac52fd246b  libato
*** 99940,100034 ****
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! 59ba5410f867c8df1ff5c9b4fa9b4015  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
! 5431de88dcbaf345c8d41207e69831ed  libbacktrace/Makefile.am
! 8a9d07c55aa13be8dcb16f5cdfae20f0  libbacktrace/Makefile.in
  944b848a3c4430ba86d5ef2eb1d7d153  libbacktrace/README
  9535fdd392305d7ecfe0d5a189cbd85b  libbacktrace/aclocal.m4
! b860d476d6b0c9ac744e72131d44efb5  libbacktrace/alloc.c
! 7cfd30e8c7ba4ba59f2e479e5147943a  libbacktrace/allocfail.c
! 508c96a919d7cdccef9c0c5935e179d6  libbacktrace/allocfail.sh
! 572db9cc0c537ad59aa5e83fe1efadac  libbacktrace/atomic.c
! bad7ca9451f51687b19756531cfc14cc  libbacktrace/backtrace-supported.h.in
! 91c25c4d7fae5c6ad6a7ea42a537392c  libbacktrace/backtrace.c
! 1697f81ace920c6aeb96559059809011  libbacktrace/backtrace.h
! 570e3d5eda4b1f1823a8813efe937976  libbacktrace/btest.c
! bec98ac9e726eba4eef812e6ec3fc2f0  libbacktrace/config.h.in
! fea573fa69b5efce82b338a534fe2f23  libbacktrace/configure
! ed356d8b30d0a6b891bb01aa42235285  libbacktrace/configure.ac
! 7f615149ed04dad316eceb4b4317318e  libbacktrace/dwarf.c
! 8777d01ad81d806757932fda2bd0ab53  libbacktrace/edtest.c
! b239bb9aff161d5af88a25c3f268cf41  libbacktrace/edtest2.c
! da5c524a395c4d8a1ed48905c15f6374  libbacktrace/elf.c
! 57c32d39ca99db65e96aa80b932c861e  libbacktrace/fileline.c
  4fefdf2c043fdefb2736e03efee4b2c3  libbacktrace/filetype.awk
! ef296e17d968346e1fbd63a3d6320d6a  libbacktrace/install-debuginfo-for-buildid.sh.in
! 4adfded26efac6aec6ee1ec1c0384be2  libbacktrace/instrumented_alloc.c
! a7ce67396f61ad55be6073994b0e77c3  libbacktrace/internal.h
! cbb0696c0a2c18c9ee9c8ab4b7fab2c9  libbacktrace/macho.c
! 07ed26e1652a87eacd2686fb067c860a  libbacktrace/mmap.c
! 590df2569eac0dbc1350fcc582694bde  libbacktrace/mmapio.c
! e331e05b6bfad97b8d297acf083a1bb4  libbacktrace/mtest.c
! eb45ebe3ac297173fc337d1449cb28d3  libbacktrace/nounwind.c
! 3624c9b9b5419e6c369114f19b22c627  libbacktrace/pecoff.c
! 520c3cd6d4894c5bbb2baceffc145542  libbacktrace/posix.c
! 8b1928ef151f1f8e1ad21c3c062a354f  libbacktrace/print.c
! 8e089c2b6e4062a337bf4316d494b8a2  libbacktrace/read.c
! 4d7a92053d889da8b524c9115ff77d6e  libbacktrace/simple.c
! f9d4d0ce5d45b701173f0a352ec710fa  libbacktrace/sort.c
! d90f23986871233914385396314c8135  libbacktrace/state.c
! 6c6ba18375555ba8a8da2b70b0f2d9a6  libbacktrace/stest.c
! 73089548d30554de35060518602a6f22  libbacktrace/test_format.c
! a90d6e421fd0c9f2e8982463491842ac  libbacktrace/testlib.c
! a37f48eb7af8f0adfd0a41fe23b724c9  libbacktrace/testlib.h
! 2456b82bc67ce14523bf51f067758b5c  libbacktrace/ttest.c
! 7b8f05951f6f534a7aa40e052e8bb611  libbacktrace/unittest.c
! 4424e7196573814ed5e4c457e50d8d1f  libbacktrace/unknown.c
! 76cdbe058a9c0696677a153471f234ab  libbacktrace/xcoff.c
! 7f1f78dcf5b2c12c7827ec55b61d90ac  libbacktrace/xztest.c
! b1d9a7864039f67c0ea043f66fc245a3  libbacktrace/zstdtest.c
! 586b56fbae916b5d8c89226d03eecbec  libbacktrace/ztest.c
! 927b166bfbf6379546d1013c81febed4  libcc1/ChangeLog
! d780af7af66b50fb66c1bcf6745b61e2  libcc1/Makefile.am
  4c0714d9e0254b52de979d8acb09c146  libcc1/Makefile.in
  b39668f1b706dbfe7203b3cfa277b792  libcc1/aclocal.m4
! 9c4fa07708506d4b2aff76ad7655ac01  libcc1/callbacks.cc
! 9e9fd938539b55d49a1761c6cc39ffa5  libcc1/callbacks.hh
  9d81ce1461f24e4af7c8639d94f06789  libcc1/cc1plugin-config.h.in
! 22a815723f6cda23930e214cf7f410da  libcc1/compiler-name.hh
! 3da72f1980b4445b9e223a3e2e6ac1cc  libcc1/compiler.cc
! ffb736d66f55a6d5ac37b3262f166941  libcc1/compiler.hh
! 5ac87fdf5f66f610c8b4ec6a9e2befd8  libcc1/configure
! 730c44909602654d047543da4674694f  libcc1/configure.ac
! fe3255e35221a66fd5a3267d5287be3f  libcc1/connection.cc
! 0e4a747b5350430a1c83053d5dc24c97  libcc1/connection.hh
! 0fdd8e7ab28dda8af05a913576fea8c5  libcc1/context.cc
! 8ddc0b790b307f34c5e8c3c8e02dfa94  libcc1/context.hh
! 1438d121dd197bd38db62a349103836c  libcc1/deleter.hh
! 082a8cbeb5e737562a9f1ada0d28906f  libcc1/findcomp.cc
! 5dde31522e4a812398a74f968031cb7c  libcc1/findcomp.hh
! 474b40d1a2337b3af30e4c614858b3a9  libcc1/gdbctx.hh
! 4ca29136d56d93b1cb0d1a8f3c93cb31  libcc1/libcc1.cc
  99b3a25ce17ed584d9f0aa42b4713938  libcc1/libcc1.sym
! d1c2ecdfdd74a6aa838e5d0ac1b1eaab  libcc1/libcc1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcc1plugin.sym
! 97c8659eb769a3c0ef10ce0aa9bf138c  libcc1/libcp1.cc
! 6552d1f347ddc1a41118a602ec339fd4  libcc1/libcp1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcp1plugin.sym
! c5fbe5f178819ac678538def0b070f6e  libcc1/marshall-cp.hh
! 435466b41dd35ae53922063a863d20fa  libcc1/marshall.cc
! 5d801a05fdc9c4683695c673fceefb99  libcc1/marshall.hh
! 6107ae5f628c25898467691fa5f92fe4  libcc1/names.cc
! 37b30bae12a6514c3ab85117f563624b  libcc1/names.hh
! eb53703cb38b14f13a443c6946fde8be  libcc1/rpc.hh
! d0eb9eb0a1908e5adeca21c5333cca67  libcc1/status.hh
  8e32b4f309146e8842db7a077d77be28  libcody/CMakeLists.txt
  c96a56ec7f0400e30e99a9aa445e0425  libcody/CODING.md
  b5243c8c76fc965a409394a30679e613  libcody/CONTRIB.md
! f2d790cecab302de14e793d66e6e9273  libcody/ChangeLog
  86d3f3a95c324c9479bd8986968f4327  libcody/LICENSE
! ba83ee39cdf97b35fb51d4f39880aa89  libcody/Makefile.in
  ca1c6fe3df5427016005ce753c73d454  libcody/README.md
  99ad81d536fef63b80b7f776f0dec53c  libcody/buffer.cc
  69dd1db758b0ea369d20d7331d889ef5  libcody/client.cc
--- 109676,109770 ----
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! 60480868b0a63f5026bbaf2add43aa44  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
! f42ca6bde120a9a2e7ebab3dabe77083  libbacktrace/Makefile.am
! c8d10c863872511332b5d196c2937d5f  libbacktrace/Makefile.in
  944b848a3c4430ba86d5ef2eb1d7d153  libbacktrace/README
  9535fdd392305d7ecfe0d5a189cbd85b  libbacktrace/aclocal.m4
! 1caa29c33f85fb145360eb790a0b7ebf  libbacktrace/alloc.c
! a011fdd81c242c282a11bce8670f71c4  libbacktrace/allocfail.c
! a788edda88edff84331bbd32f1488fc1  libbacktrace/allocfail.sh
! 48bfe79b12e4d4316eb3f89af2429007  libbacktrace/atomic.c
! e0ea52705f343b5645a638857abc2719  libbacktrace/backtrace-supported.h.in
! 86a122848263907b7e1e97006daf23a2  libbacktrace/backtrace.c
! 0d739c5b28791a0365b0eeeb2b187c1d  libbacktrace/backtrace.h
! 0094cb1d8893f00d7b391b5cda999931  libbacktrace/btest.c
! a22475e3cc40c399545c864f2e3c91c9  libbacktrace/config.h.in
! a201a30cd8028da3810a3affde37806a  libbacktrace/configure
! aa36b55326fef4c2d483a1a573d1b918  libbacktrace/configure.ac
! d6abae879aa65224b205596575ffa873  libbacktrace/dwarf.c
! 614ed7f048def670ecbe93818d9f777c  libbacktrace/edtest.c
! 48dedff59f5c226e38d9c654be633ae6  libbacktrace/edtest2.c
! afc615ac0b4f9ac7d14695efd86abf1e  libbacktrace/elf.c
! 227ed16074e640db12e6bac3e4135fab  libbacktrace/fileline.c
  4fefdf2c043fdefb2736e03efee4b2c3  libbacktrace/filetype.awk
! 44a0c026f79afaf510e3af728de0b952  libbacktrace/install-debuginfo-for-buildid.sh.in
! 6f232309edaf6c9182791ae06b5bc9a0  libbacktrace/instrumented_alloc.c
! afb16977f85fb8bcee8ed5b146fd981e  libbacktrace/internal.h
! f755b9724274d2a0f66621fdc88d1ef8  libbacktrace/macho.c
! 8e395bf866a62b6d822cd107c9b3f454  libbacktrace/mmap.c
! 0113749f0fd71dd0b23daf9cb58f3543  libbacktrace/mmapio.c
! 67ed2d894b1027be0d484dacd0e47886  libbacktrace/mtest.c
! 4bb272148caef3d940b96a102b5530fe  libbacktrace/nounwind.c
! 7a7296dbd3718b96bbbf7cafaa92dfb2  libbacktrace/pecoff.c
! 8cfbf00eaa5615e1eb990d12f7421375  libbacktrace/posix.c
! 5aad8ce03cdd1e589ef887b4593e9210  libbacktrace/print.c
! ce23bfe2e3e918d604b3cbb5df44f96c  libbacktrace/read.c
! 4da79c59e22959229b2ac8bcb331aa5c  libbacktrace/simple.c
! ea9b90a02a9ea8d321777a62861f4291  libbacktrace/sort.c
! bec40a2e90a8710cd60f4159f8b9813f  libbacktrace/state.c
! 96394e00120de9f92356b17ac6b0a90c  libbacktrace/stest.c
! 745082f32819d202fd95bf508165f4f7  libbacktrace/test_format.c
! aa56b5cf033fba397ea05e9ae137f439  libbacktrace/testlib.c
! 932f4adb001fba7cd8014797770ff0c2  libbacktrace/testlib.h
! 28239849dc98926fe7bbe66829978ff8  libbacktrace/ttest.c
! d07752bd1fbb460d883142a576a49b71  libbacktrace/unittest.c
! ac0a3898a1a57e8cc9953c3257523777  libbacktrace/unknown.c
! 9688c673b6a5c10e990d20f0c54f6e3e  libbacktrace/xcoff.c
! ee9a3deb8ab82c2f0795f58d049a6efc  libbacktrace/xztest.c
! 632490b6bb981a632d17cd16f62faebd  libbacktrace/zstdtest.c
! adaf73e90514138d308833875cb1b1f4  libbacktrace/ztest.c
! 875a6aad28c4564c2411d5285ca63a4b  libcc1/ChangeLog
! 126ad44f13cf384b237f7769cfa2f298  libcc1/Makefile.am
  4c0714d9e0254b52de979d8acb09c146  libcc1/Makefile.in
  b39668f1b706dbfe7203b3cfa277b792  libcc1/aclocal.m4
! d63fb1af762780040442e84353e3b36b  libcc1/callbacks.cc
! 8a78adb52bc53d55d5cbbfb3aaa94070  libcc1/callbacks.hh
  9d81ce1461f24e4af7c8639d94f06789  libcc1/cc1plugin-config.h.in
! 9eb4c63966d266dcc6c3318d0726350f  libcc1/compiler-name.hh
! bf793bd74bcb1ef66d46b0071df186d9  libcc1/compiler.cc
! 9e6629333044f53a3f7ce9ed8d9bb7ca  libcc1/compiler.hh
! 3f162347d86da65cd14fe4430d2e799c  libcc1/configure
! 3a0bad8a49060c202dd5c80a1bcb640b  libcc1/configure.ac
! c4179ae45dde9d6e134f8c32fcfeb678  libcc1/connection.cc
! df4001dc5f95a36722e5ebc05b22ba5f  libcc1/connection.hh
! a68f455e55f9db068a50fe55de8229d6  libcc1/context.cc
! 065b8302dbe190f9cdb7d3bcf85508f9  libcc1/context.hh
! 024cc7293c4bad8532a8f931ef395aee  libcc1/deleter.hh
! a3d24f9e76dfbb87820c1501be1c24da  libcc1/findcomp.cc
! b9f89f4101aa4fa828d98c3e031456ed  libcc1/findcomp.hh
! 5af979d4002bdf49914f0ef236fe9a7e  libcc1/gdbctx.hh
! b38cca35c9ae12d4f2c7b429030c7664  libcc1/libcc1.cc
  99b3a25ce17ed584d9f0aa42b4713938  libcc1/libcc1.sym
! 82d92647bc036bb6cf3d07752d5f6c7f  libcc1/libcc1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcc1plugin.sym
! 0df4a2ffac3444bec4f7fca8366801f6  libcc1/libcp1.cc
! c5079c6576e4be6630184291df24988b  libcc1/libcp1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcp1plugin.sym
! bbb937740ef11f581f2af195aa1e64cd  libcc1/marshall-cp.hh
! ab877905b68606a953bd5a29b5300dad  libcc1/marshall.cc
! 24884a462419edcbfd6b30d83c9661d7  libcc1/marshall.hh
! 559c12f67f474bb139739bd2ae1d9399  libcc1/names.cc
! 43095aead0e996344d98219f2aebc0df  libcc1/names.hh
! 00799e8d2ead506a31c52c42410b0dc9  libcc1/rpc.hh
! 5f362e773be02f84785d6b74e4f124cb  libcc1/status.hh
  8e32b4f309146e8842db7a077d77be28  libcody/CMakeLists.txt
  c96a56ec7f0400e30e99a9aa445e0425  libcody/CODING.md
  b5243c8c76fc965a409394a30679e613  libcody/CONTRIB.md
! b8a8ebc1f27b3c77a615c0a82f4bcfbe  libcody/ChangeLog
  86d3f3a95c324c9479bd8986968f4327  libcody/LICENSE
! 55625eec19bfdb5cee37f8c7ae4b796b  libcody/Makefile.in
  ca1c6fe3df5427016005ce753c73d454  libcody/README.md
  99ad81d536fef63b80b7f776f0dec53c  libcody/buffer.cc
  69dd1db758b0ea369d20d7331d889ef5  libcody/client.cc
*************** ca1c6fe3df5427016005ce753c73d454  libcod
*** 100036,100043 ****
  521e6cc4ebd40d0fbc4ad2fbd8c8063b  libcody/cody.hh
  b7630b2f7e3997152972e0d3f86af193  libcody/config.h.in
  a003d1057213ab79099f7bdbea631d9e  libcody/config.m4
! 5ab03eb54e266c8023cdff6b6e06eabf  libcody/configure
! a893e51c81e1227e5b61ea6118c64f66  libcody/configure.ac
  e34ecf203bf98854eaf6c3239f1f4bb6  libcody/fatal.cc
  da08ac0363d79421e125106469933625  libcody/internal.hh
  b7f8907c165e46ed56efaa23a2c2a570  libcody/netclient.cc
--- 109772,109779 ----
  521e6cc4ebd40d0fbc4ad2fbd8c8063b  libcody/cody.hh
  b7630b2f7e3997152972e0d3f86af193  libcody/config.h.in
  a003d1057213ab79099f7bdbea631d9e  libcody/config.m4
! b1c5b142e9fe28fd473595d745695db1  libcody/configure
! 908dbddf37208060f2097f79263a0d93  libcody/configure.ac
  e34ecf203bf98854eaf6c3239f1f4bb6  libcody/fatal.cc
  da08ac0363d79421e125106469933625  libcody/internal.hh
  b7f8907c165e46ed56efaa23a2c2a570  libcody/netclient.cc
*************** cffdeae41b78da05839b193e90188f55  libcod
*** 100045,100198 ****
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  b1f3850fc5ac62999d1e124aa6f76531  libcody/server.cc
! 37d594eeb38a0fa7de07f7d0ed11c3c8  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
! c0a6ef2c7117069e80a305c7adaf1650  libcpp/Makefile.in
! 9d15bb14e9ac1a74366e673ea260722e  libcpp/aclocal.m4
! 72b234433d90f1a7680e078b0cf77b60  libcpp/charset.cc
! 264a183fef9cee6892fda5966750091b  libcpp/config.in
! ece481a9fcb69fc638d9146bd6088711  libcpp/configure
! 0787bea9ab22732f1d0e46c88771d461  libcpp/configure.ac
! b441038d72bbfe5d18a0535fe9862846  libcpp/directives.cc
! 3e4b49fd3a19b54de9921c80cfce0321  libcpp/errors.cc
! 56c15f4e909e8d9891d42926a5c5479c  libcpp/expr.cc
! af5a15f7fb14aee661358d76d317e81e  libcpp/files.cc
! a91fac880a6d16a6c8bbbe6c25e2d8ac  libcpp/generated_cpp_wcwidth.h
! 111fc904696e6294b16734dc26cf7cb1  libcpp/identifiers.cc
! b5b49aa3751b8f8af89e3cc0d0ce0815  libcpp/include/cpplib.h
! 87e8fe9078561ac2e3c82a93795be1b7  libcpp/include/line-map.h
! 2c6f3e0894ec1a970c2d175f674fb5cd  libcpp/include/mkdeps.h
! fdb620c15e6f934b317e2311ee26683e  libcpp/include/symtab.h
! 72502fd7910efaafd6e57090d597fb21  libcpp/init.cc
! 9b75a240393d9ded89f1f53f8bde743e  libcpp/internal.h
! 464cc416baf80a017099625c34edb795  libcpp/lex.cc
! 9069946f6da4520e2be3263aba1fc15b  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
! ff413cbf5d61faa394a5ab2ef711257d  libcpp/macro.cc
! ab776697d1c83f80b45ce82ce889ce27  libcpp/makeucnid.cc
! 8200bcdbc955945f7651606e2f838c81  libcpp/makeuname2c.cc
! 5db6ce86211354562c9ae6339d3716ea  libcpp/mkdeps.cc
! d127e0980eecd90c5bbb6bcad6d44d9d  libcpp/pch.cc
! cc817a25a4e7b30047384dad979138d3  libcpp/po/ChangeLog
  768453cca0d8c0e2666a269e0aff862b  libcpp/po/be.gmo
! a2192a718d535196be1091cf9c6c2ff5  libcpp/po/be.po
! 6d54c123e102174620d1738492df73d5  libcpp/po/ca.gmo
! 1261125217f973d8dbe7503c2d493333  libcpp/po/ca.po
! 4677e4c7a90c44f214b5700f49c4ecb5  libcpp/po/cpplib.pot
! e5e81aa7ea0601dfcbd6a4d46269d803  libcpp/po/da.gmo
! 498e008db7233fe5d4badac23691d05a  libcpp/po/da.po
! 55c482205082e1dd4eb78fe792744dd9  libcpp/po/de.gmo
! 0a71cb05a2c6b067c81d9b48505a8415  libcpp/po/de.po
  9d8037a85a1603875c62ac38b52bfe1d  libcpp/po/el.gmo
! 54f7163e6e1cf5141ab1b50160cfb01f  libcpp/po/el.po
! 464e7507ac048ac7cef20f8f26460f9d  libcpp/po/eo.gmo
! 02c479377b7fd3ef073d8cf147d26497  libcpp/po/eo.po
! 930ae5926382e8d66f8dad5200974f06  libcpp/po/es.gmo
! e11ae882708e0259be7885e42729f661  libcpp/po/es.po
! dd372f52d2bf706aa6f9d5ad42e18fc0  libcpp/po/fi.gmo
! 8ffbecde56c2ca22c582f5776233eb67  libcpp/po/fi.po
! 764a274c52e8eda81fcc2fae5745af29  libcpp/po/fr.gmo
! aafb3740cef0b63fcdc0b1f2b9d888f2  libcpp/po/fr.po
! 1f25accfdceffa4f72251252a589b349  libcpp/po/id.gmo
! 7c78758201adf694f7c7b61f1ca134cd  libcpp/po/id.po
! d16137a8e7e85bccf28abe5c4ad0a81f  libcpp/po/ja.gmo
! b9580e522bd0c48fd49115fc19da95fc  libcpp/po/ja.po
! 0c9023719810e8dcb327d8192bd6e050  libcpp/po/ka.gmo
! 9c7223ce8f439aaf4199e036f30ce712  libcpp/po/ka.po
! 97f7d8c43b9396b6583aa19c89c94f63  libcpp/po/nl.gmo
! fa21aa41b852655af402e39af974538d  libcpp/po/nl.po
! e832c298fe4b672833e11250da447dea  libcpp/po/pt_BR.gmo
! 88fd8b789680113135e69c11a59b02fb  libcpp/po/pt_BR.po
! e49484ee1b0ac8c8108111d1cb188bb7  libcpp/po/ro.gmo
! 377b2e8ce6e7e52b7e7ff24052682403  libcpp/po/ro.po
! 7c19be9e282969dfb8f585f1bdb5fd32  libcpp/po/ru.gmo
! bfd62103ee8d3b93309b6531dcf77d67  libcpp/po/ru.po
! c6058e6fa1f1e6b18e2fb66c4000bae8  libcpp/po/sr.gmo
! 78b4dd02b60f50852a4041e47c6d3096  libcpp/po/sr.po
! 21168214f5d1a5830b117e3d7f3be978  libcpp/po/sv.gmo
! f281c0fc9731488e0b28b50decdc7c11  libcpp/po/sv.po
! f0d926b72cbbccfc7a082af283a14dc4  libcpp/po/tr.gmo
! a105c5fcae34948c5756a38ba3a7043e  libcpp/po/tr.po
! 19398d72374c0dccbd778104823a5110  libcpp/po/uk.gmo
! d39b27cd81483dbd14698d04380bf4cf  libcpp/po/uk.po
! d7329d40de2565a890e0ad0f2376dc20  libcpp/po/vi.gmo
! f7a922f11598d3db6f895bf5ac5ec22e  libcpp/po/vi.po
! 0bdf646da4277d7ba4dd64ab87e18b91  libcpp/po/zh_CN.gmo
! e265facd2ea64b5d6d3cc411cf6406a4  libcpp/po/zh_CN.po
! b375e96c670c3f0dd283014bbc260422  libcpp/po/zh_TW.gmo
! 2b266205a8a5e33de493825f9f0704ad  libcpp/po/zh_TW.po
! b9b1baa572d6c848e1c4655604023e51  libcpp/symtab.cc
! adb297f362ff62504435e9e521a19e86  libcpp/system.h
! 9570ff650fc73c61a8ced00677440e74  libcpp/traditional.cc
! d45cfd418abb46cfdbba624667399ae9  libcpp/ucnid.h
! 1bc7c82d10193a95f2d52ac65a96b194  libcpp/ucnid.tab
! ac39f0cc87f289263a76afc28c45d47b  libcpp/uname2c.h
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! 2614db65c3802a20cec266a404a5efd3  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
! c940ed5e883906ebe7e673a41403f6a8  libdecnumber/Makefile.in
  2a70099a79e40a57a666d5430a5e2529  libdecnumber/aclocal.m4
! bbb563ad33192a9dd2851425dfa118ac  libdecnumber/bid/bid-dpd.h
! a4367853ec7600efe0e1300831a33f72  libdecnumber/bid/bid2dpd_dpd2bid.c
! 8efc7151368697306e1b57116e554979  libdecnumber/bid/bid2dpd_dpd2bid.h
! dd69488d13b29940ab6b2577a99b631c  libdecnumber/bid/decimal128.c
  47afd72790bc284aceb5a23597cc6146  libdecnumber/bid/decimal128.h
  f8df5b96d86c867ad233c6f0d3e2541f  libdecnumber/bid/decimal128Local.h
  eab7eeba10520ab4a805774d42b8f9dd  libdecnumber/bid/decimal128Symbols.h
! 8d1bcfe98adf00e2e7c1c7e7cd6bf0aa  libdecnumber/bid/decimal32.c
  43b6b2bd872ad984104804b1b20fb10c  libdecnumber/bid/decimal32.h
  c5864ab84549ca0f34188ce5b057bbee  libdecnumber/bid/decimal32Symbols.h
! 21bc639f10d56602c5e44724bf0904d7  libdecnumber/bid/decimal64.c
  8c612aadae9886f1a72212f93d8651c0  libdecnumber/bid/decimal64.h
  9f903ba71afb574bfa3a0f3cd2f9fbc7  libdecnumber/bid/decimal64Symbols.h
! 9abc4854aad18e703e4d907dad06f3ce  libdecnumber/bid/host-ieee128.c
! 75a1108b6e762adffc021888f2e8b0d9  libdecnumber/bid/host-ieee32.c
! 6fbd96e483aa091ce04c1e85f353f082  libdecnumber/bid/host-ieee64.c
  76d4afd0dd1c0f5e776cbc40cf2e91b3  libdecnumber/config.in
! 6b5d5297d90245cd7b864da08dba0252  libdecnumber/configure
! ed4f9dcbaa2046cca4eed53cacc6791e  libdecnumber/configure.ac
! 66012bde8ed60d67821c2adec7f7920f  libdecnumber/dconfig.h
! 114c8842b0276bc2173dcf57e04b2db3  libdecnumber/decBasic.c
! b1f77b6b1c68d54e9fce666cb34494a2  libdecnumber/decCommon.c
  2f89d012c7a8a2912e7dce02bd4a08dc  libdecnumber/decCommonSymbols.h
! 54c791751fe1c6b7f8d71895ed0fd717  libdecnumber/decContext.c
! 272f69ff71397e8ad17a3de5fb11a642  libdecnumber/decContext.h
  53b67627dab6d36fba960317d84c1487  libdecnumber/decContextSymbols.h
! 9b5c60f3de2b7825de3349805688b807  libdecnumber/decDPD.h
  8f3ac08d4cc421cc89035e90c890bb09  libdecnumber/decDPDSymbols.h
! 5a185306cab8d0d6ae47873397f0cc04  libdecnumber/decDouble.c
! bf94dc149007d800ed63a81bd99b766f  libdecnumber/decDouble.h
  22e16083bf3d0b76c4736f7f6382cfb6  libdecnumber/decDoubleSymbols.h
! eb50a84827e522dba737ecac30159612  libdecnumber/decExcept.c
! 5ac83cc5e02c48a3bc1122516627aafc  libdecnumber/decExcept.h
! ebc9ac4faa897cd4bf7eebdc04c5327c  libdecnumber/decLibrary.c
! da0f996c9317e5da265e2148c5c44897  libdecnumber/decNumber.c
! eb67f19a05675f692e28822f398e0fb7  libdecnumber/decNumber.h
! 9b53ff4d7ccf9b4e2583399d4d85205c  libdecnumber/decNumberLocal.h
  dd46d36cafe0d7dcb669ad059fbed9b6  libdecnumber/decNumberSymbols.h
! 826b7b1938bad8630818fccf1539449e  libdecnumber/decPacked.c
! 6389324d6cc1ee9be448c03945f6fb0b  libdecnumber/decPacked.h
  287ad6ebf8b8179aa843368e9600a3fb  libdecnumber/decPackedSymbols.h
! 907f6b047823b0668d38a558a73428d7  libdecnumber/decQuad.c
! e55583f0df17df645060cf415f4d12af  libdecnumber/decQuad.h
  3851bae03416db42a85be1c5610f438b  libdecnumber/decQuadSymbols.h
! cb6ba1fa5e011e6d17e581fcae9e1eaf  libdecnumber/decRound.c
! 9282243885556d42335795ad561909d7  libdecnumber/decRound.h
! 180b383fa5c6c387d094144dac23cb78  libdecnumber/decSingle.c
! 3e09e3422befab0607483f14884a751f  libdecnumber/decSingle.h
  8998c4f3e69ea3d218b574a2defb9a98  libdecnumber/decSingleSymbols.h
! 1fd3fb716ff582910b21513e677168f6  libdecnumber/dpd/decimal128.c
! 8e7bb21b6b38891f0755beff0ffcfca3  libdecnumber/dpd/decimal128.h
! 8c34e131a4787c49f4928cda2c74971b  libdecnumber/dpd/decimal128Local.h
  2f6da07ba897ca626a4f6d283feeef93  libdecnumber/dpd/decimal128Symbols.h
! 84c848e2fa1633b4fd26e1dac6ec24bf  libdecnumber/dpd/decimal32.c
! 7aed8e9ce2587125212272ab37fa4b2b  libdecnumber/dpd/decimal32.h
  a97c47969dfc92a7666dfe3c2e1e1448  libdecnumber/dpd/decimal32Symbols.h
! 7dd7d1fb7fedaf3d029afb5f358f3730  libdecnumber/dpd/decimal64.c
! 5c5101362d0b5ad6cce073da470594f8  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
  055606b47e85369c5d003f6e3a1b657e  libffi/.gitattributes
! f82a3c2df08425b910557cebc4068183  libffi/ChangeLog
  0e38ead823643c45765e5fe55e7ab16b  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
--- 109781,109937 ----
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  b1f3850fc5ac62999d1e124aa6f76531  libcody/server.cc
! 2dbb195db6b4e8a586f7efac6d13a05b  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
! 1acbb917a57e9be62e9a35a2b8843ec3  libcpp/Makefile.in
! b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
! 12d2831bcc77548357849697fe4b5b72  libcpp/charset.cc
! 5b2f9d37e91d01eed5bf420a47dc8046  libcpp/combining-chars.inc
! f394a8a1b5eeb832699f31a320059923  libcpp/config.in
! 5473983e7108e2ee3cd282167d014456  libcpp/configure
! 7f1f58cadd328a5ed96f2c145c0800be  libcpp/configure.ac
! ff89722b7f828d03d9b7e6604b48f705  libcpp/directives.cc
! 4a17617515d4961fd96609af51d900fe  libcpp/errors.cc
! d7920f5045b616b678bf06a6b0ca888e  libcpp/expr.cc
! c4d25c7837cbd3674fc0dd18425e38a1  libcpp/files.cc
! 4c23b9e82ca01448b18f7ac4c9e8058c  libcpp/generated_cpp_wcwidth.h
! 7fc584598464f2c3aa397e7fec90dccf  libcpp/identifiers.cc
! 288c3178bd1e0b81deb8cc4c93fbf099  libcpp/include/cpplib.h
! 7dcc56dc56c7850e7d0c40a6cf5a7da4  libcpp/include/line-map.h
! df3352a1bd6c274ed82b2a758bc3c4d1  libcpp/include/mkdeps.h
! a0918c463180dab6a2bb3f9553fbc271  libcpp/include/rich-location.h
! f6265ed339cae65c8b044bbb21d283b4  libcpp/include/symtab.h
! 1fd31f0e6458a730ee43a6f6c7f06571  libcpp/init.cc
! cc012cd95bd1c909ce999456a16ab01c  libcpp/internal.h
! bddde669fe99566a1ee851ddc097cb5a  libcpp/lex.cc
! 7901306f3f55e17c3cb29685e44e2dd6  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
! 01c3a45d6e866221d817655f5a80e227  libcpp/macro.cc
! 3edc80e88fde4a216d7436d2ecb158af  libcpp/makeucnid.cc
! 4219a952c846be5ce392d7627a8ea628  libcpp/makeuname2c.cc
! 246ba746bd12b8496cc531ad9c32ba44  libcpp/mkdeps.cc
! 034ec4022e3e960cc381be0a992ed9ef  libcpp/pch.cc
! 54bf5287e63888cf38090ba0df4c7beb  libcpp/po/ChangeLog
  768453cca0d8c0e2666a269e0aff862b  libcpp/po/be.gmo
! ec1c6812b4474e46e48d5c4a7346bf9e  libcpp/po/be.po
! b95a2047eceb40c924d516a013d9d435  libcpp/po/ca.gmo
! dc6f6a772bb26509dd384d9083ad02fd  libcpp/po/ca.po
! 1d8027e10cd5342d647536e4ee85e965  libcpp/po/cpplib.pot
! d7d11060d596d361ba4f41d7eb01613c  libcpp/po/da.gmo
! 09ec9465414c4dd1b00feebf028f6d24  libcpp/po/da.po
! c4f8ed18ef919f4b0160da81e6f6f502  libcpp/po/de.gmo
! 4cca8f92645ad307877dd3218b2ef403  libcpp/po/de.po
  9d8037a85a1603875c62ac38b52bfe1d  libcpp/po/el.gmo
! 0ac71397d2e76413636c141c7d43ec91  libcpp/po/el.po
! 04e2c8bccc8120d5304d56597258ebd1  libcpp/po/eo.gmo
! bafe6909bb292c24eed07863fdaeeff2  libcpp/po/eo.po
! ad6d5012d306bb7dc2122e9b803f3222  libcpp/po/es.gmo
! 7db905d4e5d526df987cc551cb9922bc  libcpp/po/es.po
! b7b73e3d845fb49ce7097745715c3be1  libcpp/po/fi.gmo
! 3727d4cc33ef0717cf9879ffadacf0f7  libcpp/po/fi.po
! 060fe24272f1973d5571eb8652250229  libcpp/po/fr.gmo
! 45ce98c5aa64d7915d43c2cf5ff0bf6a  libcpp/po/fr.po
! eac8cfe94da22d65c9666b563d356547  libcpp/po/id.gmo
! e147ba5e1a24e2d84fcab7869e061538  libcpp/po/id.po
! 49dc0a045355eeb7c31d69c421d351f8  libcpp/po/ja.gmo
! ebac068b02a8b31d7b68e80ece57d2bf  libcpp/po/ja.po
! cd8460b2556842e23bfd39e9db7d1fec  libcpp/po/ka.gmo
! 693f8824381f438583ff1afd920edd19  libcpp/po/ka.po
! 2a1a2be028e96a7144f979381be4b9af  libcpp/po/nl.gmo
! 67e8255f754dd267d6c5d77fb9e54214  libcpp/po/nl.po
! 8d24c9dcb1be6f0c25a1d8dafaab2a34  libcpp/po/pt_BR.gmo
! f41650735b61c358712a215ee6584fc1  libcpp/po/pt_BR.po
! 36c5a1ab8cb2c0686625fafc3ca602c9  libcpp/po/ro.gmo
! c84fa515e8f1fdf750b5341a9bd9a718  libcpp/po/ro.po
! c8955582b73622635e8fb2f8cdce5899  libcpp/po/ru.gmo
! 55e4c1238427a5a88b967bee6fefa97c  libcpp/po/ru.po
! b5e7848c3cc6da0226d39280900d39f7  libcpp/po/sr.gmo
! 8db2f7c3a20dea8e5458f30e9d68d680  libcpp/po/sr.po
! 0c16f95cf530d0945c7efc194a2de744  libcpp/po/sv.gmo
! 66831543d61075a180374c04feff71bd  libcpp/po/sv.po
! 7adb3327233147b10cc3f624860c8862  libcpp/po/tr.gmo
! b5629a48c0c8169fbcde3da520bfc982  libcpp/po/tr.po
! 1a97c5db0d7dedf942db46e66ecc1f77  libcpp/po/uk.gmo
! 4bd22ba982bb42020e1736419e9616f0  libcpp/po/uk.po
! a08034d17583f15309af58221eb06215  libcpp/po/vi.gmo
! 86c6f9e79c83f6f3a5e9c7cabc715e4c  libcpp/po/vi.po
! 1f343cfc0789ca113b2dbfec20e29117  libcpp/po/zh_CN.gmo
! cdf15e86d90fca355d25df71fdff0890  libcpp/po/zh_CN.po
! 50de9f5f60b4ce3e6fbd37a0a82737e4  libcpp/po/zh_TW.gmo
! ae57d3ffcdbea8d31a95b0f83cee8a62  libcpp/po/zh_TW.po
! 23984f1c939c855d527f2c76d3fb6fc4  libcpp/printable-chars.inc
! 17648be84d7d7477f16628e3738379ac  libcpp/symtab.cc
! fc8bc12af9146152b77544abdbcab6f6  libcpp/system.h
! 215dc4a3966d61b2ba8209e09f910741  libcpp/traditional.cc
! 0cfa054d47860ec918abefac853ff966  libcpp/ucnid.h
! 44d9c6ca214445117356855dc2f0b120  libcpp/ucnid.tab
! 4c838d4e26e19022c66a1247680469e5  libcpp/uname2c.h
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! d74259f14eb384298d23950fc598bdc6  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
! 4fe4a5996806ca041eb45550916b1743  libdecnumber/Makefile.in
  2a70099a79e40a57a666d5430a5e2529  libdecnumber/aclocal.m4
! 02ba6fc29d25c641b2934f3a43d82b6f  libdecnumber/bid/bid-dpd.h
! 8eb9c475227ff73d87cc9541c15efd99  libdecnumber/bid/bid2dpd_dpd2bid.c
! f8cb98772c2b0eadc61462083d7f5001  libdecnumber/bid/bid2dpd_dpd2bid.h
! e15c31d54aaaa4d91d5c7fa268e3a930  libdecnumber/bid/decimal128.c
  47afd72790bc284aceb5a23597cc6146  libdecnumber/bid/decimal128.h
  f8df5b96d86c867ad233c6f0d3e2541f  libdecnumber/bid/decimal128Local.h
  eab7eeba10520ab4a805774d42b8f9dd  libdecnumber/bid/decimal128Symbols.h
! 7a5a5fa3ee9684582682b429e542035a  libdecnumber/bid/decimal32.c
  43b6b2bd872ad984104804b1b20fb10c  libdecnumber/bid/decimal32.h
  c5864ab84549ca0f34188ce5b057bbee  libdecnumber/bid/decimal32Symbols.h
! bd259dc45d346e24ad376c38e2c2d0ce  libdecnumber/bid/decimal64.c
  8c612aadae9886f1a72212f93d8651c0  libdecnumber/bid/decimal64.h
  9f903ba71afb574bfa3a0f3cd2f9fbc7  libdecnumber/bid/decimal64Symbols.h
! 533c41f9b08e9476f751161664ad7891  libdecnumber/bid/host-ieee128.c
! 832a13310a10a4efb4fd73c844361d31  libdecnumber/bid/host-ieee32.c
! 5ea86651aeceea53dbb9e22ba26f6a8a  libdecnumber/bid/host-ieee64.c
  76d4afd0dd1c0f5e776cbc40cf2e91b3  libdecnumber/config.in
! 3f92110431091b447f2836b51cd105ef  libdecnumber/configure
! 5298c43c3ae8cc353288233a9f06992f  libdecnumber/configure.ac
! 1773c585073e7f1748c10afc862d2fb7  libdecnumber/dconfig.h
! 277d043e8e8c601b05c9e4366f031c12  libdecnumber/decBasic.c
! d0b1e84c15a5342e216283fde9846c24  libdecnumber/decCommon.c
  2f89d012c7a8a2912e7dce02bd4a08dc  libdecnumber/decCommonSymbols.h
! ec308234856bebcd500f60ea6dbdf16e  libdecnumber/decContext.c
! 785115d9720cb56bb26fc036e3425378  libdecnumber/decContext.h
  53b67627dab6d36fba960317d84c1487  libdecnumber/decContextSymbols.h
! 04d4d901d040b3991de431b96539455d  libdecnumber/decDPD.h
  8f3ac08d4cc421cc89035e90c890bb09  libdecnumber/decDPDSymbols.h
! f29b9dafad071d05db4cd3da3de1b172  libdecnumber/decDouble.c
! 748f45ff7eb837de63b25ab9148220b6  libdecnumber/decDouble.h
  22e16083bf3d0b76c4736f7f6382cfb6  libdecnumber/decDoubleSymbols.h
! 04edfa46d006717960e698728f222464  libdecnumber/decExcept.c
! d0265d5b01a23cd0e32857ad86ad1e05  libdecnumber/decExcept.h
! a2102eeb93fd2dc838765236c6be6945  libdecnumber/decLibrary.c
! 4d525f68148abd494151529540f49bdb  libdecnumber/decNumber.c
! 4a7699808f2a40ee4d8d7dfce7c00489  libdecnumber/decNumber.h
! 5d6691e741aadca33c4b4516aa2f08de  libdecnumber/decNumberLocal.h
  dd46d36cafe0d7dcb669ad059fbed9b6  libdecnumber/decNumberSymbols.h
! f64d7b744fd5f461e7ca1963ee152a35  libdecnumber/decPacked.c
! 9f89e7a5f021ffe8e48c6ecc400190ba  libdecnumber/decPacked.h
  287ad6ebf8b8179aa843368e9600a3fb  libdecnumber/decPackedSymbols.h
! 9113585abbafb98e61eece27fc26b82b  libdecnumber/decQuad.c
! aeea2cee659a808e6b2784c2dc89e9fe  libdecnumber/decQuad.h
  3851bae03416db42a85be1c5610f438b  libdecnumber/decQuadSymbols.h
! 6b2b99627acb3ca570cdb9589614c589  libdecnumber/decRound.c
! 5a6faf5e61338b92ac05de136cae5bd8  libdecnumber/decRound.h
! f048ca4f9a84a0e9be7188d9c83264e1  libdecnumber/decSingle.c
! 01c623e18799c26a36250f5fdc4d85bc  libdecnumber/decSingle.h
  8998c4f3e69ea3d218b574a2defb9a98  libdecnumber/decSingleSymbols.h
! a7e24bd4d1e9a63d9e5fbd1c9fdadf2f  libdecnumber/dpd/decimal128.c
! 12c40a915d6ac6cb862e8d268f4e4449  libdecnumber/dpd/decimal128.h
! ff3d2a5d81c43084208801833cfccff0  libdecnumber/dpd/decimal128Local.h
  2f6da07ba897ca626a4f6d283feeef93  libdecnumber/dpd/decimal128Symbols.h
! 4db5b4808d5a63c4702ed37c05752cf8  libdecnumber/dpd/decimal32.c
! 38bfb5d73c57447a92e5406d0404efab  libdecnumber/dpd/decimal32.h
  a97c47969dfc92a7666dfe3c2e1e1448  libdecnumber/dpd/decimal32Symbols.h
! d93df1659fcf7f2195f6417796130412  libdecnumber/dpd/decimal64.c
! ec67fd2bfa24e9a389ddbf94e9aa63bf  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
  055606b47e85369c5d003f6e3a1b657e  libffi/.gitattributes
! 6816a1d307daa8bd63265d3cf4dbf3b2  libffi/ChangeLog
  0e38ead823643c45765e5fe55e7ab16b  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
*************** cc4552d9286c17a905988bf55f96def7  libffi
*** 100201,100222 ****
  631bc8750a749106cf625001c1d6efb0  libffi/LICENSE-BUILDTOOLS
  835b22825bd53e411ac26c18666e1ae5  libffi/LOCAL_PATCHES
  c55286ffa9013e1bc9fe188894b39e1d  libffi/MERGE
! 69b70919246d2502e7fc4e745f088c77  libffi/Makefile.am
! d9aab5e2fbe2d4790d0327abe73e49e4  libffi/Makefile.in
  0196871242a2420712bad4e2c16d5274  libffi/README.md
  c67252e8ff3150683a184a729911b219  libffi/acinclude.m4
  d591981dfeccb8df500213a4baa6bb7e  libffi/aclocal.m4
  aec59abbc470dda1bfe630dbb0bbd627  libffi/autogen.sh
! b65906677faeb64d5b833fe9c2963544  libffi/configure
! dbd21d77c2acf20037c7e2e16de7a70c  libffi/configure.ac
! b2dbb88c38d08a37b89fc9ed08e79538  libffi/configure.host
  bad91ff01547ce79fe537211f4763ac0  libffi/doc/Makefile.am
  db28be3951c18d6db6e90f7e612bc67b  libffi/doc/libffi.texi
! 0c1453cd8505c0c665c9194ef9d7f529  libffi/doc/version.texi
  ea125d6ff0b3d20372a1556f82ca6a05  libffi/fficonfig.h.in
  9a358eeaa41d3ceb5e732dbf61d3c931  libffi/generate-darwin-source-and-headers.py
  dd34002683e9900a6cd89c440f24a394  libffi/include/Makefile.am
! 3af5b052f6d3c920071496bbaf5c1322  libffi/include/Makefile.in
  60e00bb8059867f47ba6b93e4b4fac00  libffi/include/ffi.h.in
  354b3182b36c90da2e228ba864d7d4e0  libffi/include/ffi_cfi.h
  3bafe1ab47d80c33e901b03a1e9c7732  libffi/include/ffi_common.h
--- 109940,109961 ----
  631bc8750a749106cf625001c1d6efb0  libffi/LICENSE-BUILDTOOLS
  835b22825bd53e411ac26c18666e1ae5  libffi/LOCAL_PATCHES
  c55286ffa9013e1bc9fe188894b39e1d  libffi/MERGE
! 30d9a065a7035f12d13aed5d6bea0e21  libffi/Makefile.am
! cc2d732c9711c0b47c2586df3ae93bc1  libffi/Makefile.in
  0196871242a2420712bad4e2c16d5274  libffi/README.md
  c67252e8ff3150683a184a729911b219  libffi/acinclude.m4
  d591981dfeccb8df500213a4baa6bb7e  libffi/aclocal.m4
  aec59abbc470dda1bfe630dbb0bbd627  libffi/autogen.sh
! b129629db06d710e4bc7ff5b8719756a  libffi/configure
! 0c9310ab4da9ff4d0d8aa37fa8fcb0be  libffi/configure.ac
! 54389f155bf929aa9429f225f0dbbaab  libffi/configure.host
  bad91ff01547ce79fe537211f4763ac0  libffi/doc/Makefile.am
  db28be3951c18d6db6e90f7e612bc67b  libffi/doc/libffi.texi
! 5919fb480c65fe4ba9e8d97536e528b2  libffi/doc/version.texi
  ea125d6ff0b3d20372a1556f82ca6a05  libffi/fficonfig.h.in
  9a358eeaa41d3ceb5e732dbf61d3c931  libffi/generate-darwin-source-and-headers.py
  dd34002683e9900a6cd89c440f24a394  libffi/include/Makefile.am
! e76936a8cfe1f7636b1f5349e16810c4  libffi/include/Makefile.in
  60e00bb8059867f47ba6b93e4b4fac00  libffi/include/ffi.h.in
  354b3182b36c90da2e228ba864d7d4e0  libffi/include/ffi_cfi.h
  3bafe1ab47d80c33e901b03a1e9c7732  libffi/include/ffi_common.h
*************** ad82c93bb7f9710ee5d0f0e9af25e51d  libffi
*** 100226,100232 ****
  1f271e0501ca22905ebfa732c49143db  libffi/libffi.xcodeproj/project.pbxproj
  5b9a262eb2adfad2e0e5a67c9732b9c5  libffi/libtool-version
  ade48c43a4229988450151e8d3fd4ea2  libffi/man/Makefile.am
! 2e75e4661aeefdeb808c8270b75c8881  libffi/man/Makefile.in
  375a858985ec2096671f484b1fe9b14b  libffi/man/ffi.3
  dd7b61f56e75a1d052dd10dc02ac4940  libffi/man/ffi_call.3
  634ea3ff80c805d513f31c111c5e6d36  libffi/man/ffi_prep_cif.3
--- 109965,109971 ----
  1f271e0501ca22905ebfa732c49143db  libffi/libffi.xcodeproj/project.pbxproj
  5b9a262eb2adfad2e0e5a67c9732b9c5  libffi/libtool-version
  ade48c43a4229988450151e8d3fd4ea2  libffi/man/Makefile.am
! dfede02d89dd358b2129ac5e9717fb69  libffi/man/Makefile.in
  375a858985ec2096671f484b1fe9b14b  libffi/man/ffi.3
  dd7b61f56e75a1d052dd10dc02ac4940  libffi/man/ffi_call.3
  634ea3ff80c805d513f31c111c5e6d36  libffi/man/ffi_prep_cif.3
*************** b9ecce87980cf9448d35f168d0b12575  libffi
*** 100278,100283 ****
--- 110017,110025 ----
  989104e297aeeae17122773939bd6830  libffi/src/kvx/ffi.c
  3cb04b5ba3412b866d5e7449ca24b6f0  libffi/src/kvx/ffitarget.h
  0c8c94d032ab11ae726e214dd6b91e7d  libffi/src/kvx/sysv.S
+ 394d5afba81e057055dfa6d9c9fa7898  libffi/src/loongarch64/ffi.c
+ e4452f19d2e2fe4da9ccd84182c6fb60  libffi/src/loongarch64/ffitarget.h
+ 4e9a878bb31f58e6265e1b49c13b8e79  libffi/src/loongarch64/sysv.S
  a06a5272996a57cf9c1338b05f6b19c8  libffi/src/m32r/ffi.c
  f231859daa12286973d5134b9afc8afe  libffi/src/m32r/ffitarget.h
  fde1f5cb81ab7ce114af861c94c368c0  libffi/src/m32r/sysv.S
*************** e6a372c1ab34c8f1f71396d597076973  libffi
*** 100371,100379 ****
  30e1959beeb8d6392ff804e925efcc11  libffi/src/xtensa/sysv.S
  1ded054093de910d9786c62bc4fe8cc6  libffi/stamp-h.in
  8e8befc990bd91505202466bad0815b2  libffi/testsuite/Makefile.am
! 6e37c57ddaeb9a0f1194107d485d0b8d  libffi/testsuite/Makefile.in
  dce80ba7e038ca18591aabc6d3d2582c  libffi/testsuite/config/default.exp
! 375112ab2f3368a3990d660e0d91b5f6  libffi/testsuite/lib/libffi.exp
  88f888c66cee8d916e1ac91000ecc87a  libffi/testsuite/lib/target-libpath.exp
  68db067550882b3b091a82df87310fff  libffi/testsuite/lib/wrapper.exp
  38c126f0fb1a075c0bd7591eca1e0385  libffi/testsuite/libffi.bhaible/Makefile
--- 110113,110121 ----
  30e1959beeb8d6392ff804e925efcc11  libffi/src/xtensa/sysv.S
  1ded054093de910d9786c62bc4fe8cc6  libffi/stamp-h.in
  8e8befc990bd91505202466bad0815b2  libffi/testsuite/Makefile.am
! 7c3a4cb5a7d31e4021685ac6de71be1b  libffi/testsuite/Makefile.in
  dce80ba7e038ca18591aabc6d3d2582c  libffi/testsuite/config/default.exp
! aa258e4878fe20cf3490deabacccb583  libffi/testsuite/lib/libffi.exp
  88f888c66cee8d916e1ac91000ecc87a  libffi/testsuite/lib/target-libpath.exp
  68db067550882b3b091a82df87310fff  libffi/testsuite/lib/wrapper.exp
  38c126f0fb1a075c0bd7591eca1e0385  libffi/testsuite/libffi.bhaible/Makefile
*************** a3eb5dee2788fe0a6c42502ba658eddd  libffi
*** 100585,100696 ****
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! 13bafa1b47338e3e7fb58ae6eec33789  libgcc/ChangeLog
! dbe2f0a8ebc3b4337505e8aafc2e59e6  libgcc/Makefile.in
! c63d5f8986f7f545e48ee9c9208dced7  libgcc/config.host
! 312fccd8251056a36e26bad71f9cfaa2  libgcc/config.in
! 65f4c5be67642a2f7d2323a197380435  libgcc/config/aarch64/aarch64-unwind.h
! bb23301cb30f10c0745c9333199557ae  libgcc/config/aarch64/crtfastmath.c
! 376690763443c092382adcd73f3d181c  libgcc/config/aarch64/crti.S
! e11833b29913b8024d70966d662224a1  libgcc/config/aarch64/crtn.S
! cd09dac1486336f3fd98e35d7c3a6fd0  libgcc/config/aarch64/freebsd-unwind.h
! 2e5cffe9110fb95f509f5d526ee75f6d  libgcc/config/aarch64/libgcc-softfp.ver
! a39ea6be4b49970fbec2d55c758f6591  libgcc/config/aarch64/linux-unwind.h
! e9ef33be8f0192e804e5fef51dcab73f  libgcc/config/aarch64/lse-init.c
! a4f20f6aba50515e91cec85ca4986acc  libgcc/config/aarch64/lse.S
! d4d6a8fbb40748faeb3fee766960e9af  libgcc/config/aarch64/sfp-exceptions.c
! c2578839ae661d06eed96e105f63cf68  libgcc/config/aarch64/sfp-machine.h
! da8f4e44f04c6b31829412e98ce7ef8f  libgcc/config/aarch64/sync-cache.c
! 088bfec8e48cf4030017d1408585edca  libgcc/config/aarch64/t-aarch64
! 887138055644c6cb4bda07939c31f053  libgcc/config/aarch64/t-lse
! 5e1cf1a432042ab807aa0a3e13d969cd  libgcc/config/aarch64/t-softfp
! 1ee11c00da4860fde4c41b9eac4a43c7  libgcc/config/aarch64/value-unwind.h
! 7525280fc1f248cc6b63ff1185e818f4  libgcc/config/alpha/crtfastmath.c
! fce6dfe95c70f87b845cfd3148ffc9e6  libgcc/config/alpha/libgcc-alpha-ldbl.ver
! fa90d56464fd361838fb07affd937da7  libgcc/config/alpha/linux-unwind.h
! f080bb9930b09d4e1bf4ba5f40115798  libgcc/config/alpha/qrnnd.S
  e06033e6f9902c9e703e237d511df6c4  libgcc/config/alpha/t-alpha
  95db551210150c5b18529c72cfdaeabf  libgcc/config/alpha/t-ieee
  0ae5eceefb3934014e67594e67f44a5c  libgcc/config/alpha/t-linux
  600b5cfe4987de3985ad1ff7316166cc  libgcc/config/alpha/t-vms
! a67405daae272ceedf71d02b403e2b3c  libgcc/config/alpha/vms-dwarf2.S
! 8477610f20e39298199e16e302ed0428  libgcc/config/alpha/vms-dwarf2eh.S
! c1c2d467df7994434e8b9ee1a53d6aaf  libgcc/config/alpha/vms-gcc_shell_handler.c
! 005f8f892ecf95fbe1d6e76c65b19626  libgcc/config/alpha/vms-unwind.h
! 0313b84584f320d6df3d69f133f356af  libgcc/config/arc/asm.h
! 0a5b74675438ee3f62b747b0ae280eb4  libgcc/config/arc/crti.S
! 2a92533fa5a4ca423b007f08900cd9f0  libgcc/config/arc/crtn.S
! e79bb9032ee5e4520c19073cc13d3f7f  libgcc/config/arc/crttls.S
! 68629cc1b34de10c3467f872b78dd477  libgcc/config/arc/divtab-arc700.c
! 2f4e0024638c24180cbbf5d47fc85e5c  libgcc/config/arc/dp-hack.h
! 7154e75d5749383352fe5cebf8843faa  libgcc/config/arc/fp-hack.h
! 5d6601c7b25f612ccc9c4f2951020255  libgcc/config/arc/ieee-754/adddf3.S
! 82cf3d7573793500f1a07f05e36a10e6  libgcc/config/arc/ieee-754/addsf3.S
! 0847c8c4692e5a03b10c20ba08ddd6ee  libgcc/config/arc/ieee-754/arc-ieee-754.h
! 52f3588819a290db4a507bc669d216e4  libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S
! 1d0b5a30772925d1351e90e445d3cda6  libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S
! 55f95ea5bbc51a5e95b3ec816a7fa47d  libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S
! b695022848dcb9885ebcdc58a85cda87  libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S
! d4827c76976f07e83a509e18ddd60b3a  libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S
! 3d39f21fd12bbc330d31f20ade3192a3  libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S
! bbd8db5b5f3e8724cebbbf585271c408  libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S
! 3e0e1a9ca75cd41e5ba846e110720781  libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S
! 78f7db9212e0acf06620ee2ad7f1e6e2  libgcc/config/arc/ieee-754/arc600/divsf3.S
! 1d0a11a9147504361bfe4d3b20152342  libgcc/config/arc/ieee-754/arc600/mulsf3.S
! d2ad47e9867260a3b49f6082111cc306  libgcc/config/arc/ieee-754/divdf3.S
! e8c2e2bea61259b9cb00146b7d6325dd  libgcc/config/arc/ieee-754/divsf3-stdmul.S
! 7c25e69c495cdf27ca6c6e3ed3c48f04  libgcc/config/arc/ieee-754/divsf3.S
! 21a0c33ce25d13aedba615849ee3f5bd  libgcc/config/arc/ieee-754/divtab-arc-df.c
! 817af139cea3a9fe3a1d1cf527eca26d  libgcc/config/arc/ieee-754/divtab-arc-sf.c
! af6b8d34845511c7e7de6095142ffa5e  libgcc/config/arc/ieee-754/eqdf2.S
! bfc1cc03e605bc9d7c44f387dfbc3aaa  libgcc/config/arc/ieee-754/eqsf2.S
! de1a5c2f46d0f97cc5641be9b8c0cd03  libgcc/config/arc/ieee-754/extendsfdf2.S
! 8abc60617dad4aa2ab9264569bae9567  libgcc/config/arc/ieee-754/fixdfsi.S
! bbd198a617d8a0284464e4bd8b4c415e  libgcc/config/arc/ieee-754/fixsfsi.S
! 4d13414f837ee3d2843c53a8b634feca  libgcc/config/arc/ieee-754/fixunsdfsi.S
! 2f19fcbcef9abb1f1393ee42b6cdf03d  libgcc/config/arc/ieee-754/floatsidf.S
! e98c6ecae69b04298caa2742de701dde  libgcc/config/arc/ieee-754/floatsisf.S
! 7167d9e5a3ea1767d1054f715b889d1b  libgcc/config/arc/ieee-754/floatunsidf.S
! 69ea965a174544a119da13f7db54652c  libgcc/config/arc/ieee-754/gedf2.S
! 34877006f33cf1d89158bf6855abe5e0  libgcc/config/arc/ieee-754/gesf2.S
! 5bcab8a00c123d507acd1c2f808be742  libgcc/config/arc/ieee-754/gtdf2.S
! c3e84d478cafa704c112157f4451c9ad  libgcc/config/arc/ieee-754/gtsf2.S
! 3129b1d5a9012940d87f1e7f4354ed09  libgcc/config/arc/ieee-754/muldf3.S
! c596b823fd4b708eec418c96b4cb130f  libgcc/config/arc/ieee-754/mulsf3.S
! 6f55d05586731145513e958cf600ac66  libgcc/config/arc/ieee-754/orddf2.S
! c9032cf31f88f0e44f000bceb7cc1f3e  libgcc/config/arc/ieee-754/ordsf2.S
! ab63c820e01baeefa0d595850102c247  libgcc/config/arc/ieee-754/truncdfsf2.S
! 15e1f16447c071a3ec54ae36bd10000b  libgcc/config/arc/ieee-754/uneqdf2.S
! 6b2637ff8b3210e9fb328fd3ed3f78e5  libgcc/config/arc/ieee-754/uneqsf2.S
! 27e433d22b21585934d4b36b61280c3b  libgcc/config/arc/initfini.c
! 51cacdf1c9eafee8d262b15ae78e1d19  libgcc/config/arc/lib1funcs.S
! 50389ec280381ac2380b4fa9bb053363  libgcc/config/arc/lib2funcs.c
! 76ec7bfca56b2beee6dbdc212e047693  libgcc/config/arc/libgcc-excl.ver
! 34057cb243aadfe89f8c2760e40bd080  libgcc/config/arc/linux-unwind-reg.def
! 6d8ba8d769dfa11d909ca2a1fef45dbe  libgcc/config/arc/linux-unwind.h
! 066e6cc79173955472170cd955ae9fc5  libgcc/config/arc/t-arc
! 61631a74e844b8f0ed59d4d4c11054f4  libgcc/config/arc/t-arc-uClibc
! a5d8836e68a644d45577940b22fc4e9d  libgcc/config/arm/bpabi-lib.h
! e653acc82cec8a8d48b70a87c637b25e  libgcc/config/arm/bpabi-v6m.S
! b3675139f61a988317e855285d68c39c  libgcc/config/arm/bpabi.S
! 689b1eb6eeb7b0d0d40e509445aca4d5  libgcc/config/arm/bpabi.c
! 1811f328b8e791c4500486f1c4ce59a5  libgcc/config/arm/cmse.c
! fd93ba734717b35e7126f2bd7e95a8c6  libgcc/config/arm/cmse_nonsecure_call.S
! 54adcd7dd7f8ddd86b027fd2049d8659  libgcc/config/arm/crtfastmath.c
! 1d87a3635df0978917fe0df01b07e636  libgcc/config/arm/crti.S
! 88893d121300859529fbe270573faafc  libgcc/config/arm/crtn.S
! 776876b1d3984004d5716241aa7f1f42  libgcc/config/arm/fp16.c
! 3859e47a411ddb59742ef70fd58485b2  libgcc/config/arm/freebsd-atomic.c
! 40eeed9db4d0cfcb7c7188a7f93e874c  libgcc/config/arm/ieee754-df.S
! ccdc4cac8f3b21c658727c334aef59ed  libgcc/config/arm/ieee754-sf.S
! 49504ce3bb453a7c430ba4c4ad1346f9  libgcc/config/arm/lib1funcs.S
! df45db791d9e163ed782c61475aaee06  libgcc/config/arm/libgcc-bpabi.ver
! 506e64de25347ef9be203bcafc44bd5a  libgcc/config/arm/libunwind.S
! 3a32700997fa3d72ce93a380866ee76d  libgcc/config/arm/linux-atomic-64bit.c
! 5101456461193c7b32832c606f0b7915  libgcc/config/arm/linux-atomic.c
! 9f78d1093df577cc8c34febbb5ed3a14  libgcc/config/arm/pr-support.c
  131990bf9b0a8ab71c7abf0c49d4fbfa  libgcc/config/arm/sfp-machine.h
! e66d079e9eecb028f7aef61f6faae09e  libgcc/config/arm/symbian-lib.h
  8bcfdd455e9a830ab6b5da1e39fab4d1  libgcc/config/arm/t-arm
  95ccb8d9807e7229274f546d4664a038  libgcc/config/arm/t-bpabi
  be2d9c3da6e3f9aa4be1b2856a70de22  libgcc/config/arm/t-elf
--- 110327,110454 ----
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! 89cdc9cef340ad3f8f3c2697aa14f1ce  libgcc/ChangeLog
! c70e1afe9478ead285bebc0fb930c97c  libgcc/Makefile.in
! 23fc6c0b801b3b6af6581c2a632dc732  libgcc/c++-minimal/README
! 90a82b364e40fe9eb1972d8000451364  libgcc/c++-minimal/guard.c
! 36b0c35a31c7ccbcee06c11512ad7d11  libgcc/config.host
! d3aae3117b3c5bd56670a3d96eccd46f  libgcc/config.in
! a1c25e1b6c64264e3d71b24592aaab9e  libgcc/config/aarch64/__aarch64_have_sme.c
! b5f68e932b1d70e09c198779aaf14e5f  libgcc/config/aarch64/__arm_sme_state.S
! d5ab2b7f8f786851c89195669008f2ae  libgcc/config/aarch64/__arm_tpidr2_restore.S
! 054b3a198744448a6f0be4014cf2f57e  libgcc/config/aarch64/__arm_tpidr2_save.S
! 6501a7f0cbc7fb9bf5611766b4394bd3  libgcc/config/aarch64/__arm_za_disable.S
! e172ae2ff8eb9269c2d327ff88ed1ea0  libgcc/config/aarch64/aarch64-asm.h
! 1024b1a0066825a983f3bc1fc84ce11f  libgcc/config/aarch64/aarch64-unwind.h
! 15dd21ec041c5b83765efa7df237344f  libgcc/config/aarch64/cpuinfo.c
! 2bc7a3934cd1b5157cc927d5b1a36ecd  libgcc/config/aarch64/crtfastmath.c
! 55855b23cf78a759be05ef3e445136c9  libgcc/config/aarch64/crti.S
! b8c85c8c8e7d96bdee3b36f360d85909  libgcc/config/aarch64/crtn.S
! 5f762a685a0365026476f89dda2296ea  libgcc/config/aarch64/freebsd-unwind.h
! 57317eba8af19773dbde4f896292a272  libgcc/config/aarch64/gnu-unwind.h
! a077f95c64de11e67e5d9d909ec45b8c  libgcc/config/aarch64/heap-trampoline.c
! 2f4f1a66016e8441301c8e14f69983cf  libgcc/config/aarch64/libgcc-sme.ver
! 3b6e3550bfe5c4e5ec25b99108f46513  libgcc/config/aarch64/libgcc-softfp.ver
! 56a1f2d9dfab63cbe5956843fabf7d30  libgcc/config/aarch64/linux-unwind.h
! 04307fc9daa7af7f2d0ca9ba5bc55e33  libgcc/config/aarch64/lse-init.c
! 2c6803770e388ebace8cd426f33ffec6  libgcc/config/aarch64/lse.S
! e271966ce38209c96e6f569a9f952283  libgcc/config/aarch64/sfp-exceptions.c
! 4e2250b145e6e780d9ac7cd93aa086fc  libgcc/config/aarch64/sfp-machine.h
! a7dcec239d9ad1cf7575c218b71bc229  libgcc/config/aarch64/sync-cache.c
! d80262f451fe32bab906aa7cecc16b4e  libgcc/config/aarch64/t-aarch64
! 5711e1b4b7c7ceabdfb54e3632fcd89c  libgcc/config/aarch64/t-heap-trampoline
! 4265f7d71a9591e2852a3c9675b07c07  libgcc/config/aarch64/t-lse
! a1c468d840900375aadbcb9a871a8cb5  libgcc/config/aarch64/t-softfp
! a82efe6a03a30a63796d410da2edeb3c  libgcc/config/aarch64/value-unwind.h
! ad683538c3ef0758e1f5bdc656b748ff  libgcc/config/alpha/crtfastmath.c
! 21a8aa79ebddb62a8d09719e88f9dd81  libgcc/config/alpha/libgcc-alpha-ldbl.ver
! 967c82bbc9e3ce6b8a6ad193db38d26e  libgcc/config/alpha/linux-unwind.h
! f27afe51b94ea566f11dce747576fabd  libgcc/config/alpha/qrnnd.S
  e06033e6f9902c9e703e237d511df6c4  libgcc/config/alpha/t-alpha
  95db551210150c5b18529c72cfdaeabf  libgcc/config/alpha/t-ieee
  0ae5eceefb3934014e67594e67f44a5c  libgcc/config/alpha/t-linux
  600b5cfe4987de3985ad1ff7316166cc  libgcc/config/alpha/t-vms
! 4263a230d67619739d5bbd373cb73611  libgcc/config/alpha/vms-dwarf2.S
! df6f30eb9c6d95e3c17fb2b2c6e0583f  libgcc/config/alpha/vms-dwarf2eh.S
! 2682234893101247d41e73059991d5c0  libgcc/config/alpha/vms-gcc_shell_handler.c
! 4875d8f87e7635d2074a82e0d933d676  libgcc/config/alpha/vms-unwind.h
! 4fe9588911c54df7f271a8d8790f96f5  libgcc/config/arc/asm.h
! b86d2effccbb68a1122383678f6ce9ea  libgcc/config/arc/crti.S
! 7394ff067204be93d05835680a71e773  libgcc/config/arc/crtn.S
! 486faaa8ce8bd33eaf85bc3631f9c8cc  libgcc/config/arc/crttls.S
! c5906eef9e7b0e439b5dee80e1fa961a  libgcc/config/arc/divtab-arc700.c
! 24dd29310e60c39262e618f212a376a3  libgcc/config/arc/dp-hack.h
! 6762602505d983fbeccf96d0b7171ebf  libgcc/config/arc/fp-hack.h
! d8a5747c92189ba41adb5dbfcf3fe365  libgcc/config/arc/ieee-754/adddf3.S
! 7719077453619fd165754060637347a0  libgcc/config/arc/ieee-754/addsf3.S
! 1e2acd8e41df3f6c0f1f77050d615cea  libgcc/config/arc/ieee-754/arc-ieee-754.h
! 7194da51b50439a493559f22071dacfa  libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S
! 4e3049c4904c8d43a591006ab967b414  libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S
! ab4a0b03bf4fb879fdd0455b149ea799  libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S
! 168eda9450cc416e7b41f94a9be47c5a  libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S
! 24543a47e1d7ee318993fb7713542b0a  libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S
! c64315bda6c083142447afdc1c523fd7  libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S
! c0656480820adbd4c3d6b87ecb7f9553  libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S
! 7c073f854b80dfaeb2f5246e807572ec  libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S
! 018b1ecdb9f0d4e494d104be669841b3  libgcc/config/arc/ieee-754/arc600/divsf3.S
! 3529a5c012ae3ef33940617884a81089  libgcc/config/arc/ieee-754/arc600/mulsf3.S
! 4e4fb940494e317ec30e5b0d597f3fca  libgcc/config/arc/ieee-754/divdf3.S
! a0ec87cadbe991e7b064327078a24e43  libgcc/config/arc/ieee-754/divsf3-stdmul.S
! 5d70d0bf37bb505e53f231aa126b3f1a  libgcc/config/arc/ieee-754/divsf3.S
! 6466a374eb6ac5f40aab0ff7f18d5658  libgcc/config/arc/ieee-754/divtab-arc-df.c
! b1966ea7dd1585ffa452a466ecd0fd2d  libgcc/config/arc/ieee-754/divtab-arc-sf.c
! dff80dc98ef663f445da6ab83ffe59d7  libgcc/config/arc/ieee-754/eqdf2.S
! 71491ef29a73d158431459314a539741  libgcc/config/arc/ieee-754/eqsf2.S
! 86276968c22753ddd5c0e9577d5e2895  libgcc/config/arc/ieee-754/extendsfdf2.S
! d73546d161ca96ab88719720e0729898  libgcc/config/arc/ieee-754/fixdfsi.S
! c6a7d5734ce3906dfa7f77ba9e61a9a3  libgcc/config/arc/ieee-754/fixsfsi.S
! 6d22a5ba56e9976ee3c13f43573b14ef  libgcc/config/arc/ieee-754/fixunsdfsi.S
! 0d54cd63560564a6fdcec384ec1b2943  libgcc/config/arc/ieee-754/floatsidf.S
! dcf09feaf5e990ef3b921d4b62047724  libgcc/config/arc/ieee-754/floatsisf.S
! 17a29decc7f7b3ab59f48e47030481fc  libgcc/config/arc/ieee-754/floatunsidf.S
! d34bc4e05c9ddac5d2db32e930e3c04c  libgcc/config/arc/ieee-754/gedf2.S
! 8621cdad453d75ca896545c95b76fce9  libgcc/config/arc/ieee-754/gesf2.S
! 6f7ec7dac40930a91171b190e4d0982e  libgcc/config/arc/ieee-754/gtdf2.S
! c5e25aae84d5fca96193acc9339c2320  libgcc/config/arc/ieee-754/gtsf2.S
! ac3974232aaaae2fb4db1d6bf0113821  libgcc/config/arc/ieee-754/muldf3.S
! e2e4bad2eb0bb160637ea11a8074bb3c  libgcc/config/arc/ieee-754/mulsf3.S
! 73c52f3461d77db0a0da7639c491ac3c  libgcc/config/arc/ieee-754/orddf2.S
! 34d29843b3187eda67e46d558913b457  libgcc/config/arc/ieee-754/ordsf2.S
! 8cc58522c43de4c1829172bf3333f5d8  libgcc/config/arc/ieee-754/truncdfsf2.S
! 4edf5124a8626b60412f4c2dcb03b850  libgcc/config/arc/ieee-754/uneqdf2.S
! 443171f908fe42fece4818668de832b3  libgcc/config/arc/ieee-754/uneqsf2.S
! d61d4b75d4faa9a6cae28d1baed88859  libgcc/config/arc/initfini.c
! 5679e37bbca2808ca5a31dc6a0fb0b42  libgcc/config/arc/lib1funcs.S
! 5bfb6401f4347d460602ff951a5e2b0b  libgcc/config/arc/lib2funcs.c
! 573601cb5182cdccbb3dd2559a08ae41  libgcc/config/arc/libgcc-excl.ver
! 19b792a5974908814404a303f839d0b0  libgcc/config/arc/linux-unwind-reg.def
! d4107ae4d9f2edd3f7f232b59ab49c8e  libgcc/config/arc/linux-unwind.h
! 82fd01e58c1392ad993fd5dc8af10e0a  libgcc/config/arc/t-arc
! e24d5548179d195a92f4d0854947be49  libgcc/config/arc/t-arc-uClibc
! 8578397c83cadea98bbeb10334948471  libgcc/config/arm/bpabi-lib.h
! 784d047521ca1cdca60e09d3aa86ef13  libgcc/config/arm/bpabi-v6m.S
! 7a35315ea8b413077a3c60d2e54517b6  libgcc/config/arm/bpabi.S
! 30210960148de9d20e1e4677fc16effd  libgcc/config/arm/bpabi.c
! bde8b97fe205faad95825498ee67ede2  libgcc/config/arm/cmse.c
! 46d3dbffd510fdbebe714a69e90aa2e8  libgcc/config/arm/cmse_nonsecure_call.S
! b2917176e10d0b7c6e89b6260b900976  libgcc/config/arm/crtfastmath.c
! 2de8f0c3c98b53e4bd962bf678e03381  libgcc/config/arm/crti.S
! 792e226cfd9da5dda0a836bded714d1d  libgcc/config/arm/crtn.S
! 7531a0f7bc7309144e3907428ea3e084  libgcc/config/arm/fp16.c
! eda83ba7fd5c1d5510aab959f8c5b602  libgcc/config/arm/freebsd-atomic.c
! d2e35eddb776700817e25082a82da60d  libgcc/config/arm/ieee754-df.S
! 6117ca739667eb88f9c2b0d5cfd015f5  libgcc/config/arm/ieee754-sf.S
! e9630e9996c0a6481cea5db601c18f31  libgcc/config/arm/lib1funcs.S
! 45e255ec9749fa0274296292ef21ee5e  libgcc/config/arm/libgcc-bpabi.ver
! 8a41baa0ebae31d1657a70c3a7535bd6  libgcc/config/arm/libunwind.S
! 7b3896b9aed9c9c572a86b8d15e1922c  libgcc/config/arm/linux-atomic-64bit.c
! 40fed10c9928e617f2603d5a22978e5a  libgcc/config/arm/linux-atomic.c
! a64f4ac64a1ad24e1a9a226065006e50  libgcc/config/arm/pr-support.c
  131990bf9b0a8ab71c7abf0c49d4fbfa  libgcc/config/arm/sfp-machine.h
! 3bccdfee295c39d354d388f6d1f1ab38  libgcc/config/arm/symbian-lib.h
! 25c27d4742b00622f3eefb5ee16514de  libgcc/config/arm/sync-cp15dmb.specs
! 975cf9b46f8cef25b67dc97819422a32  libgcc/config/arm/sync-dmb.specs
! 63aeb07b81d4c953d3efae3c70ec6288  libgcc/config/arm/sync-none.specs
  8bcfdd455e9a830ab6b5da1e39fab4d1  libgcc/config/arm/t-arm
  95ccb8d9807e7229274f546d4664a038  libgcc/config/arm/t-bpabi
  be2d9c3da6e3f9aa4be1b2856a70de22  libgcc/config/arm/t-elf
*************** eb10bf2005ab426384c1efc127175521  libgcc
*** 100702,100745 ****
  dd1ccf1641e646fd2c36d154c45a78f3  libgcc/config/arm/t-softfp
  85c2b00db81a0aa187f2e2dfe5ace0b1  libgcc/config/arm/t-strongarm-elf
  fc87e45e073829d21e9427a38f435e3b  libgcc/config/arm/t-symbian
  49da02954caef0527c55b87af2bd1c4b  libgcc/config/arm/t-vxworks7
  0b61332cccc4af9b144b6db99e213dcb  libgcc/config/arm/t-wince-pe
! 1023f1af4e6e47460392805490486b6a  libgcc/config/arm/unaligned-funcs.c
! b86ccb934794b991edb412e15733c313  libgcc/config/arm/unwind-arm-vxworks.c
! b4a7bc66f716e7b4e76aa9c12ce29fe9  libgcc/config/arm/unwind-arm.c
! ba477da614cd8ceb4bde4fd2a8b5f910  libgcc/config/arm/unwind-arm.h
! d3a9f35aa3368d1b42549e9f573b7f19  libgcc/config/avr/avr-lib.h
! 95b3824b310a6185dc0defac4bc9a2c9  libgcc/config/avr/lib1funcs-fixed.S
! dd58ff2d0a7950fec0f1fc713e67f536  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
! 624dc6fc660cb976b810335b3730ec59  libgcc/config/avr/lib2funcs.c
! 140198a5b8fcef5ddacc238d26b31fbf  libgcc/config/avr/libf7/ChangeLog
! 7a907af2b419359eddacd21ef365b518  libgcc/config/avr/libf7/asm-defs.h
! 0b54a2cbfebb93a4e1bddfa3600d6f0b  libgcc/config/avr/libf7/f7-renames.h
! ec0383052925c464decb1bfdeaa5c95c  libgcc/config/avr/libf7/f7-wraps.h
  c0d4a5a9b2844505ec941ff60cae008f  libgcc/config/avr/libf7/f7renames.sh
! 8df828b3d2faf7a35d58170a9bafa333  libgcc/config/avr/libf7/f7wraps.sh
! 929b89a7da7c3071631792a97bbda961  libgcc/config/avr/libf7/libf7-array.def
  5d9def53110ec07e8f29e66d593d758f  libgcc/config/avr/libf7/libf7-asm-object.mk
! fd505152bbef801d838c7d84e78dacfa  libgcc/config/avr/libf7/libf7-asm.sx
  6b4886ae302fca1fa733831066c5c830  libgcc/config/avr/libf7/libf7-c-object.mk
! 9e2660f882f79c124c85b8732a55464e  libgcc/config/avr/libf7/libf7-common.mk
! 22a6654e1e46da63e602fe4dbfd05acd  libgcc/config/avr/libf7/libf7-const.def
! be57c709e03ea165307e79182d605104  libgcc/config/avr/libf7/libf7-constdef.h
! b74616c89546aca4cc33959d35b7e1ca  libgcc/config/avr/libf7/libf7.c
! fef9940191af160113b68abfe2800b5b  libgcc/config/avr/libf7/libf7.h
! d8d51231243f1139dbb6a828e2340c67  libgcc/config/avr/libf7/t-libf7
  bf9360cfc14e0b0129af5560893f374e  libgcc/config/avr/libf7/t-libf7-math
  761826027ebb1cfbb089d23904494606  libgcc/config/avr/libf7/t-libf7-math-symbols
  70e4f62a264a98b6818c49fed71fa5bb  libgcc/config/avr/t-avr
  42e21fd8b00be58d09a62b8654a8ba20  libgcc/config/avr/t-avrlibc
  77d29be9a46b600293b32c93c09dacbf  libgcc/config/avr/t-copy-libgcc
! 2becd20ac7b8f0594cc82604812b039f  libgcc/config/bfin/crti.S
! cab2df40f260bea89dc4e69d572d52b8  libgcc/config/bfin/crtlibid.S
! 571e5826cfb5dd86852b0cb896f36516  libgcc/config/bfin/crtn.S
! d8f8c7fb40438c8cbcd114cc36b369ad  libgcc/config/bfin/lib1funcs.S
! 9b0c87e4a32d9ae8d1cff9832f6e5015  libgcc/config/bfin/libgcc-glibc.ver
! 41045847a95a40207e58a23d68bbb92c  libgcc/config/bfin/linux-unwind.h
  4e54ca63fc628fdd56df2687a2bf457e  libgcc/config/bfin/t-bfin
  a5e909e203a6fbf202b2eaad6bff3601  libgcc/config/bfin/t-crtlibid
  17298642a82c8a2809260d1eb08f7e4e  libgcc/config/bfin/t-crtstuff
--- 110460,110504 ----
  dd1ccf1641e646fd2c36d154c45a78f3  libgcc/config/arm/t-softfp
  85c2b00db81a0aa187f2e2dfe5ace0b1  libgcc/config/arm/t-strongarm-elf
  fc87e45e073829d21e9427a38f435e3b  libgcc/config/arm/t-symbian
+ 943ce28c6268a08fe0811ea29b87d108  libgcc/config/arm/t-sync
  49da02954caef0527c55b87af2bd1c4b  libgcc/config/arm/t-vxworks7
  0b61332cccc4af9b144b6db99e213dcb  libgcc/config/arm/t-wince-pe
! 07f2f4d03ae1b90f1a17ff00e943546c  libgcc/config/arm/unaligned-funcs.c
! e14936825a17d2ae9293da1cafea9ce4  libgcc/config/arm/unwind-arm-vxworks.c
! c9fcc78b0d775f7213f0f0b3141a7c24  libgcc/config/arm/unwind-arm.c
! c12365a0fd0bfbb153c9b75f558feba5  libgcc/config/arm/unwind-arm.h
! 3f552d2201eb8547351e00af1b794c50  libgcc/config/avr/avr-lib.h
! 5f49e0e1c1858de08fe8888f3378f734  libgcc/config/avr/lib1funcs-fixed.S
! a9b1564db272c4ba8a2a1d289b6e6a7e  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
! b7792b93ec270f682ce38eb52297254e  libgcc/config/avr/lib2funcs.c
! e8b6c6cc0e70ac9cf09e7fea28c5efa2  libgcc/config/avr/libf7/ChangeLog
! 159c564e8ed539925b0a82879e077648  libgcc/config/avr/libf7/asm-defs.h
! 434f68c401e93814081ae499ba72ffaf  libgcc/config/avr/libf7/f7-renames.h
! f65ef9e7ada883e17a2dd60b931ad23b  libgcc/config/avr/libf7/f7-wraps.h
  c0d4a5a9b2844505ec941ff60cae008f  libgcc/config/avr/libf7/f7renames.sh
! 4026813a3a56ecdf28b1fe38fc63cdec  libgcc/config/avr/libf7/f7wraps.sh
! b6e24d20e3f00cbfe5078999558011c5  libgcc/config/avr/libf7/libf7-array.def
  5d9def53110ec07e8f29e66d593d758f  libgcc/config/avr/libf7/libf7-asm-object.mk
! cd07eb606fdf8659eec9b1ee5b40866c  libgcc/config/avr/libf7/libf7-asm.sx
  6b4886ae302fca1fa733831066c5c830  libgcc/config/avr/libf7/libf7-c-object.mk
! 197e856402268baa7402caead35e81f2  libgcc/config/avr/libf7/libf7-common.mk
! c29107694f22e1434011033331235b51  libgcc/config/avr/libf7/libf7-const.def
! e55ce8934ace33b814bf03fbbfd9ba5f  libgcc/config/avr/libf7/libf7-constdef.h
! 1fbf9afec5084079ccb98ecb5339fc79  libgcc/config/avr/libf7/libf7.c
! c242f404ef73dc81c1dc9b99ffa63920  libgcc/config/avr/libf7/libf7.h
! 606c568e8f2d692bc5762eaba8d8e7b0  libgcc/config/avr/libf7/t-libf7
  bf9360cfc14e0b0129af5560893f374e  libgcc/config/avr/libf7/t-libf7-math
  761826027ebb1cfbb089d23904494606  libgcc/config/avr/libf7/t-libf7-math-symbols
  70e4f62a264a98b6818c49fed71fa5bb  libgcc/config/avr/t-avr
  42e21fd8b00be58d09a62b8654a8ba20  libgcc/config/avr/t-avrlibc
  77d29be9a46b600293b32c93c09dacbf  libgcc/config/avr/t-copy-libgcc
! 2ef96f0303ad42eabc56dd84ea5f459f  libgcc/config/bfin/crti.S
! 337741bb1185f5b35d51559c36c465d0  libgcc/config/bfin/crtlibid.S
! ee39d9a68d2a6f0317801402b9370a76  libgcc/config/bfin/crtn.S
! d9868bc51798623debed8d80b1042815  libgcc/config/bfin/lib1funcs.S
! b3651f3f47a5082b8b7fc88427155300  libgcc/config/bfin/libgcc-glibc.ver
! 52e890960e67449893710f25bf01a265  libgcc/config/bfin/linux-unwind.h
  4e54ca63fc628fdd56df2687a2bf457e  libgcc/config/bfin/t-bfin
  a5e909e203a6fbf202b2eaad6bff3601  libgcc/config/bfin/t-crtlibid
  17298642a82c8a2809260d1eb08f7e4e  libgcc/config/bfin/t-crtstuff
*************** a5e909e203a6fbf202b2eaad6bff3601  libgcc
*** 100747,100833 ****
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crti.S
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crtn.S
  8d4717fef859f166f4ef387b932a72f1  libgcc/config/bpf/t-bpf
! 061b825d230b9430471a58839937a27f  libgcc/config/c6x/c6x-abi.h
! 447f82920fe31ec7896b35b5a1325442  libgcc/config/c6x/crti.S
! 727bcaf149dd992c6e15845670b730e5  libgcc/config/c6x/crtn.S
! eed52513c0879a5576c33a1358e6488f  libgcc/config/c6x/eqd.c
! 143eb3a8355068ae705b69481a8b3012  libgcc/config/c6x/eqf.c
! 4c08510f5fcf8d9074d82d7a4368e268  libgcc/config/c6x/ged.c
! 9695bb47f97b40ef47a56b3cb071c39e  libgcc/config/c6x/gef.c
! 9fe57c454ffb963ac08040e6cc09ecb0  libgcc/config/c6x/gtd.c
! f9f2b202c58e120f44842e96d1954586  libgcc/config/c6x/gtf.c
! f91db4a766ac14382acdd84f7b441377  libgcc/config/c6x/led.c
! 8a522a508408a634e80f7101d7866fb9  libgcc/config/c6x/lef.c
! 4f37d0db96e0260190a13160ab980358  libgcc/config/c6x/lib1funcs.S
! a69a9947d7322fe3d5c142f5d4ee3a41  libgcc/config/c6x/libgcc-eabi.ver
  9068a836854af657b1b590da0c0659f1  libgcc/config/c6x/libunwind.S
! e5cefec375a29765fc3ed214c86f1c82  libgcc/config/c6x/ltd.c
! c6f40d7cc5cbf33a460ecd719a481c9a  libgcc/config/c6x/ltf.c
! a32f9d99b9d236f727ca279e153c013f  libgcc/config/c6x/pr-support.c
! 15443dd1502350c4824bb8451b85f8eb  libgcc/config/c6x/sfp-machine.h
  e001c742f33c68e3a33a709c345e0c3f  libgcc/config/c6x/t-elf
  7be94443a1640eded81b166ae8fe575f  libgcc/config/c6x/t-uclinux
! 52644fff324c604c7bf48173a7399d19  libgcc/config/c6x/unwind-c6x.c
! 833afe33b74a1eea4425c002741f2628  libgcc/config/c6x/unwind-c6x.h
! da69c532edf204218e8e234a079149c8  libgcc/config/cris/arit.c
! 8e42b4f01ec9096ecfbffd92e93c4644  libgcc/config/cris/mulsi3.S
! 6e7c900533f29c2dc596f9e6356695c0  libgcc/config/cris/sfp-machine.h
! 9a0bcef0779a9665ae5b963049e27ac8  libgcc/config/cris/t-cris
  b9dc89a49f32db0757703a40d18557af  libgcc/config/cris/t-elfmulti
! c4f72749a9a635e2bf344e7a0ec865d6  libgcc/config/cris/umulsidi3.S
! d809820b7a338cd148aa45386ce98fe3  libgcc/config/csky/crti.S
! 41730a0eb0579daf0ff57e0fd334e1d3  libgcc/config/csky/crtn.S
! d441cd86b01581358047ecd8f5c0f92b  libgcc/config/csky/lib1funcs.S
! bfa5fff4186bfe92eeb2b29929c814d7  libgcc/config/csky/linux-atomic.c
! 14029f89033bac18a1d0c23a7758aedc  libgcc/config/csky/linux-unwind.h
! e908830e334ff162175505deaf27407f  libgcc/config/csky/t-csky
! 68fa3e98de2f0595c765d7fa73c5e1ae  libgcc/config/csky/t-linux-csky
! 52535c6e5d417ab8acca26e2950690f8  libgcc/config/darwin-64.c
! d9bea95f91e029f74b78639b3b3ce828  libgcc/config/darwin-crt-tm.c
! 5409cddddc78798c262d8f59c9ca4fbf  libgcc/config/darwin-crt3.c
  3d9ace1569f13aadc86ee3608541f634  libgcc/config/darwin-unwind.ver
  416f37158b8f19edbb3c495781577dd5  libgcc/config/darwin10-unwind-find-enc-func.c
! 5c80416e5e24a9c8818a258688844dab  libgcc/config/epiphany/crti.S
! 4a07ee151099442aa1027935c4ae6b2c  libgcc/config/epiphany/crtint.S
! 2995cb964bb95d8f39a1b32475d60b9f  libgcc/config/epiphany/crtm1reg-r43.S
! 66954fe6a65c5236a30295134d7622a9  libgcc/config/epiphany/crtm1reg-r63.S
! f7b4e2ed2d7b1cacecc9ee9f89d88244  libgcc/config/epiphany/crtn.S
! 66ad6d102cfd31c589738cb7e1037d89  libgcc/config/epiphany/crtrunc.S
! ed2b61ecf5fa00602d7ff8b8293ec247  libgcc/config/epiphany/divsi3-float.S
! 15ea4d72a6b255a33955be8daf437946  libgcc/config/epiphany/divsi3.S
! c21a136a15123fc2a18b586638e39789  libgcc/config/epiphany/divsi3.c
! 0e472afe4ba6e51fb3effc61af66c33a  libgcc/config/epiphany/epiphany-asm.h
! c9adf912792a0ea9d74f1962ec7deb0b  libgcc/config/epiphany/ieee-754/eqsf2.S
! 2a31e99eb9a0feabc488434f70b96dba  libgcc/config/epiphany/ieee-754/fast_div.S
! a730974e08a4efe209b47a5224bbd7ba  libgcc/config/epiphany/ieee-754/gtesf2.S
! adcf5697a0adfb7c445d70deb97c922d  libgcc/config/epiphany/ieee-754/ordsf2.S
! 1d8e600c8996d58f16660fec2b35d590  libgcc/config/epiphany/ieee-754/uneqsf2.S
! 2f6c677638f559b75f3f24811867f9ba  libgcc/config/epiphany/modsi3-float.S
! fbc5c58e3a0c06b4bdd07a59cd2eb252  libgcc/config/epiphany/modsi3.S
! 95302b0ac4eb64510733dbefdd7cccfd  libgcc/config/epiphany/modsi3.c
! 0d77ae1547862c45426a4caf1735072e  libgcc/config/epiphany/mulsi3.c
  d76fc3e367e9f20ca1d6e4b8ef979bd9  libgcc/config/epiphany/t-custom-eqsf
! 17885c3db7580153895af54f436f2e5d  libgcc/config/epiphany/t-epiphany
! 465745fde621b9c88f3ce76b0c61caa2  libgcc/config/epiphany/udivsi3-float.S
! 405c31d6b06af69e8dd1a611177d4dd2  libgcc/config/epiphany/udivsi3-float.c
! b2a8b1fb95f74f8b75dd908b6d3f40a5  libgcc/config/epiphany/udivsi3.S
! d39eab17dedb3bed30abe5f04e24a7a6  libgcc/config/epiphany/udivsi3.c
! 354af99609f63d6a67c55fed7c18a60e  libgcc/config/epiphany/umodsi3-float.S
! 5c69f77d1be2332c97874e3fb2678e9d  libgcc/config/epiphany/umodsi3.S
! fc4bdcd2ff5f9dae25d38d391f37945a  libgcc/config/epiphany/umodsi3.c
! 11dc3b278bc6863ac7c4f1aae726b475  libgcc/config/fr30/crti.S
! 8403734da25bf6b363b932e81297def9  libgcc/config/fr30/crtn.S
! 447949c24a8b3102ed6b68da34072afa  libgcc/config/fr30/lib1funcs.S
  ee1781f6076fe4696c4710d29bcaa9f2  libgcc/config/fr30/t-fr30
! 3180e984b705ad1c587a4706bf56b2ab  libgcc/config/frv/cmovd.c
! 32c4bbf6fc56969fb4b863e9f5d6537b  libgcc/config/frv/cmovh.c
! 07f91c6e5db0550412d09b6c5294f2bb  libgcc/config/frv/cmovw.c
! b2915e18138b63abc8c00081910c388e  libgcc/config/frv/elf-lib.h
! 53c1362a846ebfa55120588d8ae32d32  libgcc/config/frv/frv-abi.h
! 272a30a4b0fe77a33b465177b3f07329  libgcc/config/frv/frvbegin.c
! 6b096ecd56eebdeedbf2cc6ec56cf845  libgcc/config/frv/frvend.c
! fd70f8b0d98f6f2034fdc8e11ce18eed  libgcc/config/frv/lib1funcs.S
! 4e17276351ba51815e7489fca19e1a1a  libgcc/config/frv/libgcc-glibc.ver
  519042a46e82243706e07f0df8d12e35  libgcc/config/frv/modi.c
  f7d4923f0512faafd07369fa6bccd718  libgcc/config/frv/t-frv
  edf3d4afc7174e81e4b47c0bb0de7522  libgcc/config/frv/t-linux
--- 110506,110592 ----
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crti.S
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crtn.S
  8d4717fef859f166f4ef387b932a72f1  libgcc/config/bpf/t-bpf
! 7addd3049b07a319d8b51b72e20e19d2  libgcc/config/c6x/c6x-abi.h
! e5592c5c4a7c68c7d4f3831a0c57806d  libgcc/config/c6x/crti.S
! c8dfc305831d1121206036b596f610e4  libgcc/config/c6x/crtn.S
! 4bacef0e42b2f63dbe4a85739f8b10ff  libgcc/config/c6x/eqd.c
! eb7226ba4b93c23252cd18db20abb5a4  libgcc/config/c6x/eqf.c
! c2015a4d92488836a6f2cbc53c113cf5  libgcc/config/c6x/ged.c
! 1f4b6ffbfdd4b5ebd9c4287542b479d8  libgcc/config/c6x/gef.c
! ce6e9f193f121591e9c7de84dd773a65  libgcc/config/c6x/gtd.c
! 20ba9b00b5b300b4129304dcce1eb0df  libgcc/config/c6x/gtf.c
! a792d7cb011d6583f3bf21c536ca7b09  libgcc/config/c6x/led.c
! 6163abdc0a978db9e566671a3ad6cda2  libgcc/config/c6x/lef.c
! f3e835b9a70cc4c6bd0bd45d7197a605  libgcc/config/c6x/lib1funcs.S
! 8971247b5383607513d1e482aded4151  libgcc/config/c6x/libgcc-eabi.ver
  9068a836854af657b1b590da0c0659f1  libgcc/config/c6x/libunwind.S
! 0e898bdaa7ded1d9ba1c9fb382e2076c  libgcc/config/c6x/ltd.c
! bdad94127d5b2328fdeb67571a3ccc53  libgcc/config/c6x/ltf.c
! aae3b416a9b4e96c477217bbdb065fed  libgcc/config/c6x/pr-support.c
! ce90aeeac74bf49855e57791233eba5a  libgcc/config/c6x/sfp-machine.h
  e001c742f33c68e3a33a709c345e0c3f  libgcc/config/c6x/t-elf
  7be94443a1640eded81b166ae8fe575f  libgcc/config/c6x/t-uclinux
! ccadb7309ba990e2bfeb8e7750a9d662  libgcc/config/c6x/unwind-c6x.c
! 16d2f62e0818591f93a12e322360ca64  libgcc/config/c6x/unwind-c6x.h
! 69a59dfbb4403c3d949bcdb246aefb3b  libgcc/config/cris/arit.c
! bb4c6adee1d590a8204dbaaa5f5a08d3  libgcc/config/cris/mulsi3.S
! 970ba602036b1b15a367ba5936508c8f  libgcc/config/cris/sfp-machine.h
! e42743c62236880a4788e60d1acb3424  libgcc/config/cris/t-cris
  b9dc89a49f32db0757703a40d18557af  libgcc/config/cris/t-elfmulti
! 05abc5c5147518270d205699c93e3b80  libgcc/config/cris/umulsidi3.S
! 7cb8d41b2cd8970d4283ed59b1177196  libgcc/config/csky/crti.S
! c22538207500706e214abc2b842228d6  libgcc/config/csky/crtn.S
! 4467f21f104fee8e7994477f2b22eb7b  libgcc/config/csky/lib1funcs.S
! d5df763185f688f9dae5c85ff2c62ddb  libgcc/config/csky/linux-atomic.c
! f84fe72f86add8cca52ea2a1196a796c  libgcc/config/csky/linux-unwind.h
! c52b4532db4ece030aa20aa982ffa589  libgcc/config/csky/t-csky
! 004ea4ac4a9868cccdd6838de1786602  libgcc/config/csky/t-linux-csky
! 62a43ea0301b8ed30993ab41463bab16  libgcc/config/darwin-64.c
! cc51e23fb1ffb527ff2381547746e24c  libgcc/config/darwin-crt-tm.c
! 243ebbecb574e001e4be28ecd68084f1  libgcc/config/darwin-crt3.c
  3d9ace1569f13aadc86ee3608541f634  libgcc/config/darwin-unwind.ver
  416f37158b8f19edbb3c495781577dd5  libgcc/config/darwin10-unwind-find-enc-func.c
! 12eaac209865e347a7c36dd35c84e9ff  libgcc/config/epiphany/crti.S
! ce6e106ce485062c46f61c12132b1b05  libgcc/config/epiphany/crtint.S
! f71d2a69a86b85ca2c3a1e7e37ad89e0  libgcc/config/epiphany/crtm1reg-r43.S
! 6cd78e993b643175f9da2dbfdfc3f6fe  libgcc/config/epiphany/crtm1reg-r63.S
! 71634b6721352cd8025e4fb92909de61  libgcc/config/epiphany/crtn.S
! 83c3886d9c3eb22034973e7e9e6da1e4  libgcc/config/epiphany/crtrunc.S
! aef132d16e4e64c73928dcbbd6393046  libgcc/config/epiphany/divsi3-float.S
! f4e6c5f15d57624187d3344e9deae2a2  libgcc/config/epiphany/divsi3.S
! 36fc787013153e43113d3ed010d696a4  libgcc/config/epiphany/divsi3.c
! 8d2c986c7f6b84df2fb20ebc1186b2a6  libgcc/config/epiphany/epiphany-asm.h
! 2ffc373838ec68bef5e2ddfb6808d4c3  libgcc/config/epiphany/ieee-754/eqsf2.S
! 64b9a4179cdb81f84295ad3b0de45a61  libgcc/config/epiphany/ieee-754/fast_div.S
! cb547afa0f7a86adcc9014fa68f298d1  libgcc/config/epiphany/ieee-754/gtesf2.S
! acdbb7650db6750fb6a30397d2c78125  libgcc/config/epiphany/ieee-754/ordsf2.S
! 10f03dc9304018b882853b2ffc165194  libgcc/config/epiphany/ieee-754/uneqsf2.S
! fd791dcec85213d662928bff37570a99  libgcc/config/epiphany/modsi3-float.S
! 8cc15555f597e094181d07621f9769af  libgcc/config/epiphany/modsi3.S
! 926d4dd95239c37f1cf389679ca5a9a0  libgcc/config/epiphany/modsi3.c
! a498492b4aab95404889779aa3361a0a  libgcc/config/epiphany/mulsi3.c
  d76fc3e367e9f20ca1d6e4b8ef979bd9  libgcc/config/epiphany/t-custom-eqsf
! ca0a3f5cf85b3cd3bce2af58d841f64f  libgcc/config/epiphany/t-epiphany
! f072bf32d54f42b3637b853ad529caf6  libgcc/config/epiphany/udivsi3-float.S
! f941125317276ecfa0d5fb0392bbfa01  libgcc/config/epiphany/udivsi3-float.c
! 33169d48584f12d5b6b26bdef8bb9f40  libgcc/config/epiphany/udivsi3.S
! f4d112858fad5d1febcc153920624170  libgcc/config/epiphany/udivsi3.c
! 09b669ca09b38a91a7e2dfb98ae793a8  libgcc/config/epiphany/umodsi3-float.S
! 96dce7c6daefa6d43da8e5191badc388  libgcc/config/epiphany/umodsi3.S
! 4f61ce3d31a0d4f028ee0829f5fc9311  libgcc/config/epiphany/umodsi3.c
! d0a1ba4714ff0b58b39e54a8c657b5e1  libgcc/config/fr30/crti.S
! dad633328edcc29e07e05d75a9e720d1  libgcc/config/fr30/crtn.S
! 9c4fc671338fa92479cc18b52c115896  libgcc/config/fr30/lib1funcs.S
  ee1781f6076fe4696c4710d29bcaa9f2  libgcc/config/fr30/t-fr30
! 0b977a60fdf6c0c7e422267a85f3b0b0  libgcc/config/frv/cmovd.c
! f1661477e553a69a22e9fa08cc7b293d  libgcc/config/frv/cmovh.c
! 240c0b424f68491d01952ffadcf12025  libgcc/config/frv/cmovw.c
! ef4943dcb1849009eb767a17a832e300  libgcc/config/frv/elf-lib.h
! aeb9260fde36398dff7067bb21182c5f  libgcc/config/frv/frv-abi.h
! 703e5fb70bea56673feb6e8c35027b42  libgcc/config/frv/frvbegin.c
! 6d90b9fd3f29b7e96b8565c8b5020b86  libgcc/config/frv/frvend.c
! 9e776956ceed7133a03b9b7752b96494  libgcc/config/frv/lib1funcs.S
! ee1b829a75166ef28d032e4cb2ce852f  libgcc/config/frv/libgcc-glibc.ver
  519042a46e82243706e07f0df8d12e35  libgcc/config/frv/modi.c
  f7d4923f0512faafd07369fa6bccd718  libgcc/config/frv/t-frv
  edf3d4afc7174e81e4b47c0bb0de7522  libgcc/config/frv/t-linux
*************** c363a68408b30fe1ae97782cfb8a4ac1  libgcc
*** 100837,100884 ****
  8655cce7a18893493cc17391c6ce08d5  libgcc/config/frv/ulltof.c
  756aa4a0c6f33a0203e0ea6594c19e38  libgcc/config/frv/umodi.c
  63a86c0eba76d6ea5b13351162b69e89  libgcc/config/ft32/crti-hw.S
! b275b9e684d7fb26b53cce34ebf74da4  libgcc/config/ft32/crti.S
! 204f22f6650b67e1f30f1565d47ab0e5  libgcc/config/ft32/crtn.S
  4d440904c0919d8bade72af495ee932b  libgcc/config/ft32/epilog.S
! 0db7662d06fbb239f6dffd31d653c556  libgcc/config/ft32/lib1funcs.S
  fd43d6ac7bf2546f0be1ff27b92cf494  libgcc/config/ft32/prolog.S
  7651ba55a7767a127d4d8d9e1798196d  libgcc/config/ft32/sfp-machine.h
  de53de7ae179ee6c1472a52a63fffec9  libgcc/config/ft32/t-ft32
! 494274965550f0a2a42710779910d5e8  libgcc/config/gcn/atomic.c
! 35a0886a00917e0ccb78e9989b70ebad  libgcc/config/gcn/crt0.c
! 22a3ae6c002f71b5c973215cdbbb6f12  libgcc/config/gcn/gthr-gcn.h
! 1b4825c2625f49dd3b1dce293aaa8138  libgcc/config/gcn/lib2-bswapti2.c
! 529cff7b50ee5434ec2de6a1912f4cd5  libgcc/config/gcn/lib2-divmod-di.c
! 331d0794af424847fa5d013165cdbb3d  libgcc/config/gcn/lib2-divmod-hi.c
! 939e14d9809032f92f92d625f73adee1  libgcc/config/gcn/lib2-divmod.c
! 90971636e7d2d3229582017fd87474b5  libgcc/config/gcn/lib2-gcn.h
  c9b91505a24abd3bc6b11e0f094edee0  libgcc/config/gcn/sfp-machine.h
! 07c8d881fd370075e4d269a82ef9238a  libgcc/config/gcn/t-amdgcn
! 9c50beeefeb4ab50a47e6419cbc2473e  libgcc/config/gcn/unwind-gcn.c
! 07a18f0e880ce13999ce082b74d71341  libgcc/config/gthr-lynx.h
! bad2d36f9b8ac4676d200999a586a9a4  libgcc/config/gthr-rtems.h
! 2cfca2bc0a5afe5bf5be60360b7df46c  libgcc/config/gthr-vxworks-cond.c
! 357c468eb0a812e9f4c12642de55aa46  libgcc/config/gthr-vxworks-thread.c
! 404e3203bf645abd8a0d60186e057306  libgcc/config/gthr-vxworks-tls.c
! 5bca06691569b3a9d3181f95881bb3bf  libgcc/config/gthr-vxworks.c
! 1138a50df2b4ac59b7c8d012a1d3d177  libgcc/config/gthr-vxworks.h
! ca5d05685e0b1b3931a0cb47931433f9  libgcc/config/h8300/clzhi2.c
! 336606769ad2ebe93baf3b039509d0d5  libgcc/config/h8300/crti.S
! 7fb9e8bf1d55627b4728c5371920a80d  libgcc/config/h8300/crtn.S
! 2dd3b94efb51b21b251dfaa003512625  libgcc/config/h8300/ctzhi2.c
! f9f799baf9d21b260f4a975618bd64e8  libgcc/config/h8300/fixunssfsi.c
  378e602ed89f497e602776d99b46d7ad  libgcc/config/h8300/h8300-lib.h
! 871f32fe678de2c0cad157365e301930  libgcc/config/h8300/lib1funcs.S
! f9f46b364a04c63ab303998f92f28584  libgcc/config/h8300/parityhi2.c
! 4bb83df73629c52f4b20274d18033bba  libgcc/config/h8300/popcounthi2.c
! caf9a527e8e631868bfb9a90240d2a70  libgcc/config/h8300/sfp-machine.h
  e002eff640bc32723d0216927bc99406  libgcc/config/h8300/t-h8300
  5e306047059c21ece876039122734094  libgcc/config/h8300/t-linux
! d83be243e3a0a9b8c6086f96c4d4f2f4  libgcc/config/hardfp.c
  475eef8a468bce21734a4397bd19ae6d  libgcc/config/i386/32/sfp-machine.h
  33fdee54eed1c202a39234d129f2a7ae  libgcc/config/i386/32/t-iamcu
  8271562f1de2b3fa5b976454b83bfdc0  libgcc/config/i386/32/t-softfp
! 450c66baa4512fe791eb6286f4264685  libgcc/config/i386/32/tf-signs.c
  c823b0cff478388588a9aabedaa93068  libgcc/config/i386/64/_divtc3.c
  8f7ff4449be9588e09da2929b14b1647  libgcc/config/i386/64/_multc3.c
  6268512927fae19eb0e34459520beb28  libgcc/config/i386/64/_powitf2.c
--- 110596,110647 ----
  8655cce7a18893493cc17391c6ce08d5  libgcc/config/frv/ulltof.c
  756aa4a0c6f33a0203e0ea6594c19e38  libgcc/config/frv/umodi.c
  63a86c0eba76d6ea5b13351162b69e89  libgcc/config/ft32/crti-hw.S
! 7e9a298283f245422195def73266283a  libgcc/config/ft32/crti.S
! 6285a8f1a2be9e88a9574766260a5289  libgcc/config/ft32/crtn.S
  4d440904c0919d8bade72af495ee932b  libgcc/config/ft32/epilog.S
! 42424538e321b3a535def5efc6973978  libgcc/config/ft32/lib1funcs.S
  fd43d6ac7bf2546f0be1ff27b92cf494  libgcc/config/ft32/prolog.S
  7651ba55a7767a127d4d8d9e1798196d  libgcc/config/ft32/sfp-machine.h
  de53de7ae179ee6c1472a52a63fffec9  libgcc/config/ft32/t-ft32
! b538a84579b598cd02fcc77dbb84af19  libgcc/config/gcn/amdgcn_veclib.h
! fd7f06254381a728f46f1a50e7b6b183  libgcc/config/gcn/atomic.c
! 891d5fc89f6b2763f043f90ce4151bdf  libgcc/config/gcn/crt0.c
! a45e9e820eacf501956af99106d50b04  libgcc/config/gcn/gthr-gcn.h
! 4fee10813e4ad7d003c461cd8dafa9f2  libgcc/config/gcn/lib2-bswapti2.c
! 92a5fe0300c6af5caabf668df27b2577  libgcc/config/gcn/lib2-divmod-di.c
! 49b271d9f008709e0b91edafb1e04e80  libgcc/config/gcn/lib2-divmod.c
! de60ba71e6f1fdc0513e9acde5e2c5d4  libgcc/config/gcn/lib2-gcn.h
! e011d8a913c0ed9aa1dbade7715aa36a  libgcc/config/gcn/lib2-vec_divmod-di.c
! 5c267940989f2c79999217fb95fd2667  libgcc/config/gcn/lib2-vec_divmod-hi.c
! 97ba7d60f927a0f43cc7b9e6de846938  libgcc/config/gcn/lib2-vec_divmod-qi.c
! 508f9128ffb60c3e76280526073f382e  libgcc/config/gcn/lib2-vec_divmod.c
  c9b91505a24abd3bc6b11e0f094edee0  libgcc/config/gcn/sfp-machine.h
! 7ebeb7750a33de8c9db7cc3c10c3526e  libgcc/config/gcn/t-amdgcn
! 2d343fab6ac01afd3a54759470fb2be2  libgcc/config/gcn/unwind-gcn.c
! 15d3a03b30563d003858c0f94ece338a  libgcc/config/gthr-lynx.h
! f1a066b0bb29c044b50019c299e6a578  libgcc/config/gthr-rtems.h
! f9b07781fdd0b301a8380474f4981217  libgcc/config/gthr-vxworks-cond.c
! 89c811324f74212114816f17940e7c3c  libgcc/config/gthr-vxworks-thread.c
! cfef45b850e4043f39b7788c93c533ff  libgcc/config/gthr-vxworks-tls.c
! bc503b86577778779b9b92ed45be4faa  libgcc/config/gthr-vxworks.c
! 83f8a5bf4c4e1bc86a1f811d640b93a7  libgcc/config/gthr-vxworks.h
! 8f991382c279022fc81ca806d9833f0f  libgcc/config/h8300/clzhi2.c
! 1ab9f03d76ba9da920a44a66e36830b4  libgcc/config/h8300/crti.S
! fe13169d550b59afb935aa0058bcf087  libgcc/config/h8300/crtn.S
! 0747a45e45b952906555a158a53ae9b9  libgcc/config/h8300/ctzhi2.c
! 16140f8e775d9d498956956994194041  libgcc/config/h8300/fixunssfsi.c
  378e602ed89f497e602776d99b46d7ad  libgcc/config/h8300/h8300-lib.h
! 76469b641117aecbc6874f02c3e0ca52  libgcc/config/h8300/lib1funcs.S
! be9be5db47f4cd95262e883253ff5dda  libgcc/config/h8300/parityhi2.c
! af78535d02fcf8a5823ad093fa92ec7d  libgcc/config/h8300/popcounthi2.c
! 67a8baabd45fa627a45424c5498a2e51  libgcc/config/h8300/sfp-machine.h
  e002eff640bc32723d0216927bc99406  libgcc/config/h8300/t-h8300
  5e306047059c21ece876039122734094  libgcc/config/h8300/t-linux
! afa847a2210a1715247b40ed05b42778  libgcc/config/hardfp.c
  475eef8a468bce21734a4397bd19ae6d  libgcc/config/i386/32/sfp-machine.h
  33fdee54eed1c202a39234d129f2a7ae  libgcc/config/i386/32/t-iamcu
  8271562f1de2b3fa5b976454b83bfdc0  libgcc/config/i386/32/t-softfp
! c758ee73501a093113fd835ada4146b2  libgcc/config/i386/32/tf-signs.c
  c823b0cff478388588a9aabedaa93068  libgcc/config/i386/64/_divtc3.c
  8f7ff4449be9588e09da2929b14b1647  libgcc/config/i386/64/_multc3.c
  6268512927fae19eb0e34459520beb28  libgcc/config/i386/64/_powitf2.c
*************** c823b0cff478388588a9aabedaa93068  libgcc
*** 100886,100892 ****
  b2bcf8b944f937cb4f3799c02670dcee  libgcc/config/i386/64/getf2.c
  a92aa384cf96b81c0dbb642826200dd7  libgcc/config/i386/64/letf2.c
  c1b03023642d1f0a8b784b5503d980fa  libgcc/config/i386/64/sfp-machine.h
! 7a431fc49b9bf81df6b0bbdfe70e3c07  libgcc/config/i386/64/t-softfp
  498bbaf506a5bbdaa793f66399ece491  libgcc/config/i386/64/t-softfp-compat
  878a76eff85376bb9a57f42484b5eadf  libgcc/config/i386/_divhc3.c
  17d5c1fb1d0c8e3f16a48b4d809ea213  libgcc/config/i386/_mulhc3.c
--- 110649,110655 ----
  b2bcf8b944f937cb4f3799c02670dcee  libgcc/config/i386/64/getf2.c
  a92aa384cf96b81c0dbb642826200dd7  libgcc/config/i386/64/letf2.c
  c1b03023642d1f0a8b784b5503d980fa  libgcc/config/i386/64/sfp-machine.h
! d100d0853b109d0bfaaa1d2ec6aeb88d  libgcc/config/i386/64/t-softfp
  498bbaf506a5bbdaa793f66399ece491  libgcc/config/i386/64/t-softfp-compat
  878a76eff85376bb9a57f42484b5eadf  libgcc/config/i386/_divhc3.c
  17d5c1fb1d0c8e3f16a48b4d809ea213  libgcc/config/i386/_mulhc3.c
*************** d4cd30e890b5d772946c79359704fc0b  libgcc
*** 100896,100940 ****
  0987e17186e8a33dbf7c39d7934d4861  libgcc/config/i386/avx_resms64x.S
  ef88ad808d3f1101d7e96fae5706660f  libgcc/config/i386/avx_savms64.S
  12b992c114b195cf886a7a218b0d1e54  libgcc/config/i386/avx_savms64f.S
! b6c3347d9128016cb227506c6965ec7c  libgcc/config/i386/cpuinfo.c
! 504810feea9a0983b9ec952afa792474  libgcc/config/i386/crtfastmath.c
! 95eb655a14e2c76302cfd69f4ad69eeb  libgcc/config/i386/crti.S
! 6248bbbda0a19e195da5781221af7734  libgcc/config/i386/crtn.S
! 2ea5a9bb4f3a1b2462a61299c1b563f5  libgcc/config/i386/crtprec.c
! dc039c48b0a31b95ec6d1131bdd57964  libgcc/config/i386/cygming-crtbegin.c
! 9732d3792a933e4d3be18e0766c70329  libgcc/config/i386/cygming-crtend.c
! a8acc3eb4d0aa4a30cbc758887d79ce9  libgcc/config/i386/cygwin.S
! b2bae7d1485916fbd96e39ba1ae73348  libgcc/config/i386/darwin-lib.h
! 6e7f7c3714564781c1c8a5ccf1baa80f  libgcc/config/i386/dragonfly-unwind.h
! 0ed0930c39e32a2db75352bee920f1a3  libgcc/config/i386/elf-lib.h
! 3a0607606f73df6979b0f7d5c23ff76f  libgcc/config/i386/enable-execute-stack-mingw32.c
! bc4639dab4172a19295c61958b038fb4  libgcc/config/i386/freebsd-unwind.h
! 87086d5e96ad5e40148989bd426cf896  libgcc/config/i386/gnu-unwind.h
! 6bbf7495590f9d76c4af93d86f0c9f21  libgcc/config/i386/gthr-mcf.h
! 5bca575659d1e259a73d8fe225809fbc  libgcc/config/i386/gthr-win32-cond.c
! bdc92aace39e7e8abcb5663d3b4071a9  libgcc/config/i386/gthr-win32-thread.c
! fcb93c23c3d1e2f6554734a3eeca61d7  libgcc/config/i386/gthr-win32.c
! 02809995c4682d40a14aabf0ff07eea9  libgcc/config/i386/gthr-win32.h
! 4c99f02db72ea9232b04e653a40e2c25  libgcc/config/i386/i386-asm.h
! d50c8ac9e7e593d55979d2767abbc942  libgcc/config/i386/libgcc-bsd.ver
! 1e8505ed5d1c9ff3a07794abe0a518e1  libgcc/config/i386/libgcc-cygming.ver
! 4c417359a9e666cd606e8382b37ea72a  libgcc/config/i386/libgcc-darwin.ver
! 46ad748436d7ca82128193d384153d37  libgcc/config/i386/libgcc-glibc.ver
! 01c88ab7073fc8c5b73c6a7b85483651  libgcc/config/i386/libgcc-mingw.ver
! 7fbf146bf8e6adff5777d465cf088428  libgcc/config/i386/libgcc-sol2.ver
! e59e1e091ea5a1225b34454ddce87def  libgcc/config/i386/linux-unwind.h
! da30276bc4e5935c4b38cf66428f33de  libgcc/config/i386/morestack.S
! cc5a562c6a03e9ed713e380396283037  libgcc/config/i386/resms64.h
! 8857d5484478fa33516774fb4cacc1b2  libgcc/config/i386/resms64f.h
! 171e5dd09a9ad948b913c9429f272169  libgcc/config/i386/resms64fx.h
! 3cd5503c774b8605fa43be14e4256995  libgcc/config/i386/resms64x.h
! 6f7f53ddf0cb7b31aab0e8fd31a87a74  libgcc/config/i386/savms64.h
! cb8421b9e33916cdb8064a08da0e3a8f  libgcc/config/i386/savms64f.h
! b5e19201100edb2094353650ff9c453b  libgcc/config/i386/sfp-exceptions.c
  d15ae0137ca61a07b6d128c923e73d53  libgcc/config/i386/sfp-machine.h
! 910deeb9f0056ffab7747ebca3d6087b  libgcc/config/i386/shadow-stack-unwind.h
! a094c314ffd11c662bb789986fc8ef2b  libgcc/config/i386/sol2-c1.S
! 67b58910533d03b1fb8f65aa2544b002  libgcc/config/i386/sol2-unwind.h
  597d8ce804b1c2e917fdb1870e7ea0ac  libgcc/config/i386/sse_resms64.S
  bedbda9d38d546838a72b745204a631f  libgcc/config/i386/sse_resms64f.S
  34b800926e66c174903d05295a562acd  libgcc/config/i386/sse_resms64fx.S
--- 110659,110704 ----
  0987e17186e8a33dbf7c39d7934d4861  libgcc/config/i386/avx_resms64x.S
  ef88ad808d3f1101d7e96fae5706660f  libgcc/config/i386/avx_savms64.S
  12b992c114b195cf886a7a218b0d1e54  libgcc/config/i386/avx_savms64f.S
! a21d0e777f33ac54ca89deed0a5010ff  libgcc/config/i386/cpuinfo.c
! 26cd0b5e05a701f09622efc21d164638  libgcc/config/i386/crtfastmath.c
! b1782e1e9b62270ddd551180199309db  libgcc/config/i386/crti.S
! 5cd1e11bf0eea882e835e16e3d0e117e  libgcc/config/i386/crtn.S
! 3a4c523d4a09c070cb2b990310a0e114  libgcc/config/i386/crtprec.c
! 26857d5c358c887402a45ab784d7a73e  libgcc/config/i386/cygming-crtbegin.c
! 5e62debda62749b7f1832623e908e3e5  libgcc/config/i386/cygming-crtend.c
! cd06dacd3c6e7735a51d493b374fd852  libgcc/config/i386/cygwin.S
! f022d57a93bce79245aed51bd5f2fec4  libgcc/config/i386/darwin-lib.h
! 7f613b6c98cca2161781228a9b8d76ab  libgcc/config/i386/dragonfly-unwind.h
! 06b2d9c6a8510226c4b18af11a9079e3  libgcc/config/i386/elf-lib.h
! 1241d6ea85c6e99855a4688348564264  libgcc/config/i386/enable-execute-stack-mingw32.c
! 2658e3b7268d14f17ced9d182e88408d  libgcc/config/i386/freebsd-unwind.h
! 42ebcc5e74e7db4c0ab5be8396bf79e5  libgcc/config/i386/gnu-unwind.h
! 2026016669b053ff3a892071ec6dd112  libgcc/config/i386/gthr-mcf.h
! 72f01aa05ca184d7f84cdf6cb77e006e  libgcc/config/i386/gthr-win32-cond.c
! f91382da696c869760172830231f4d7e  libgcc/config/i386/gthr-win32-thread.c
! b3434092838869ae1b9088d4639b814a  libgcc/config/i386/gthr-win32.c
! 7b8fb3c995cbab8d1f01a87b9c9e54fe  libgcc/config/i386/gthr-win32.h
! 74b4d2fb578bea1c8304a4d83dd1bac4  libgcc/config/i386/heap-trampoline.c
! 308fee61a66ac2ad20581354be8f4179  libgcc/config/i386/i386-asm.h
! 7481fc966b51d9b56e33e77da9ad72ef  libgcc/config/i386/libgcc-bsd.ver
! 9b95786074a6958a5996ed6bacba29db  libgcc/config/i386/libgcc-cygming.ver
! c0eeffed85533a88799ba83ee54ea896  libgcc/config/i386/libgcc-darwin.ver
! c299027ebc8c4a06b22a8c2ae4b1855b  libgcc/config/i386/libgcc-glibc.ver
! a5da39de030949a9b4146780351489e3  libgcc/config/i386/libgcc-mingw.ver
! 6518abc25bdf854e8cae2c07c842552d  libgcc/config/i386/libgcc-sol2.ver
! b6ec70eb0a94495bb4b3d6062d72ebf1  libgcc/config/i386/linux-unwind.h
! a8fff8212325e70f4a0a6acbf6ba8f9f  libgcc/config/i386/morestack.S
! 29f552487a00578189e543529d7daf2b  libgcc/config/i386/resms64.h
! 2b134080b7884f58ae1bbc89e521ed7f  libgcc/config/i386/resms64f.h
! e723307285c86143eb61fa8c61b28abc  libgcc/config/i386/resms64fx.h
! 20271eae03e1695e6712d4b45fbe86b8  libgcc/config/i386/resms64x.h
! 9e423fa8baa5f3b3eb1531c760df88dd  libgcc/config/i386/savms64.h
! cf2238d4ee5d4973f07bde588aa9675f  libgcc/config/i386/savms64f.h
! 74da93eff9178232614f4683bde255f7  libgcc/config/i386/sfp-exceptions.c
  d15ae0137ca61a07b6d128c923e73d53  libgcc/config/i386/sfp-machine.h
! bfa51bf06e0b3cb9584fd3d4469ed660  libgcc/config/i386/shadow-stack-unwind.h
! cd6cec9408a0b2d56c62e2f15f241c4d  libgcc/config/i386/sol2-c1.S
! eff1d8ebe32d309a7bac461c706ac14a  libgcc/config/i386/sol2-unwind.h
  597d8ce804b1c2e917fdb1870e7ea0ac  libgcc/config/i386/sse_resms64.S
  bedbda9d38d546838a72b745204a631f  libgcc/config/i386/sse_resms64f.S
  34b800926e66c174903d05295a562acd  libgcc/config/i386/sse_resms64fx.S
*************** ab24e8c90feb5a86f9ff59988a9bcc43  libgcc
*** 100955,100960 ****
--- 110719,110725 ----
  3bf8d762f9c0bcbc4bfd5fe36b97ae23  libgcc/config/i386/t-dw2-eh
  9d82d05d119f031c6327b2b2a6015871  libgcc/config/i386/t-freebsd
  21a697b3742c466bc6b268a906529ab6  libgcc/config/i386/t-gthr-win32
+ 75e59dd5f976bfaf5efca31aa34d0926  libgcc/config/i386/t-heap-trampoline
  411ab7f31d63e25ae8f98aef0132e384  libgcc/config/i386/t-linux
  1bbab852ec95edb798886ed925c7e989  libgcc/config/i386/t-mingw-mcfgthread
  80f832afb70afb11a4a1c2e403944b73  libgcc/config/i386/t-mingw-pthread
*************** ab24e8c90feb5a86f9ff59988a9bcc43  libgcc
*** 100965,100993 ****
  aae3ba90f7a9172b2dff6b8d61c25735  libgcc/config/i386/t-sjlj-eh
  641dd355005c77e8135f1c6482f1422b  libgcc/config/i386/t-slibgcc-cygming
  97e2e74784f32597a8c5d88288a87562  libgcc/config/i386/t-slibgcc-mingw
! 9ed55f331a24307868211f3fe2f59893  libgcc/config/i386/t-softfp
  e3f37cf5fbd829324e763c71726907a2  libgcc/config/i386/t-sol2
  89444a8a78bd3aa7426e9525cdd7ce25  libgcc/config/i386/t-stack-i386
! 4f59708b8166146efe519bf19e06007d  libgcc/config/i386/value-unwind.h
! ac7e780b7f2a62ac2d54c938452ad663  libgcc/config/i386/w32-unwind.h
  ffc8a68dc02aca1cf8703f6ff29109d3  libgcc/config/ia64/__divxf3.S
  c3b9941b44cdc74dfc42996f7d2d765b  libgcc/config/ia64/_fixtfdi.S
  e5d2feda0a6505570c0a64e52fcae703  libgcc/config/ia64/_fixunstfdi.S
  4a628b33bbcfbe6ace2c47d3e486ec14  libgcc/config/ia64/_floatditf.S
! 3e9e60f327dffdd126b9385c6a99894f  libgcc/config/ia64/crtbegin.S
! 62b850e232a41d4d4b5c45bc5638a2b6  libgcc/config/ia64/crtend.S
! 901060bbe71b24fe05ff5c3f2cc288a3  libgcc/config/ia64/crtfastmath.c
! f8bc1528e8fa5f20aa4e8dbade41f3d6  libgcc/config/ia64/crti.S
! 0180e7ffb99956be5e263c597db1968e  libgcc/config/ia64/crtn.S
  09ae9898a8a15266c60b15a27f0b1ba4  libgcc/config/ia64/divtf3.c
! ea813887c186e38cfe58de2f3e601614  libgcc/config/ia64/fde-glibc.c
! efd55bd758a1e5c88aa19d0ed82ba824  libgcc/config/ia64/fde-vms.c
! 3f40d8c66d94c95667abe032cc5531a6  libgcc/config/ia64/lib1funcs.S
! eac10891adaed9eefe8a35932c398685  libgcc/config/ia64/libgcc-glibc.ver
! 503af0707e2ac3d50cd9cc5c6387cb28  libgcc/config/ia64/libgcc-ia64.ver
! d2ccca9e0ae224e8b950b1889c2c1a8d  libgcc/config/ia64/linux-unwind.h
! f652a165c99ab296fa8d03fd231c449c  libgcc/config/ia64/quadlib.c
! 0b997c3cffe946b7fd858cdcf4be033a  libgcc/config/ia64/sfp-exceptions.c
  96123e16288e91bc9fcaeb243516c740  libgcc/config/ia64/sfp-machine.h
  0bb88f6d16035394a23c622ba320a824  libgcc/config/ia64/t-eh-ia64
  33399ed8e4f636769acf666b91d227c6  libgcc/config/ia64/t-hpux
--- 110730,110758 ----
  aae3ba90f7a9172b2dff6b8d61c25735  libgcc/config/i386/t-sjlj-eh
  641dd355005c77e8135f1c6482f1422b  libgcc/config/i386/t-slibgcc-cygming
  97e2e74784f32597a8c5d88288a87562  libgcc/config/i386/t-slibgcc-mingw
! 48d32a96cdfa55f737d1297cf2293bb1  libgcc/config/i386/t-softfp
  e3f37cf5fbd829324e763c71726907a2  libgcc/config/i386/t-sol2
  89444a8a78bd3aa7426e9525cdd7ce25  libgcc/config/i386/t-stack-i386
! 1f8185faa8126ad9735b2ca5f9777194  libgcc/config/i386/value-unwind.h
! a97c2825dde8f372b44c433a4d1dfecb  libgcc/config/i386/w32-unwind.h
  ffc8a68dc02aca1cf8703f6ff29109d3  libgcc/config/ia64/__divxf3.S
  c3b9941b44cdc74dfc42996f7d2d765b  libgcc/config/ia64/_fixtfdi.S
  e5d2feda0a6505570c0a64e52fcae703  libgcc/config/ia64/_fixunstfdi.S
  4a628b33bbcfbe6ace2c47d3e486ec14  libgcc/config/ia64/_floatditf.S
! 9e02b447cbb7f0351707a637bdb9dfb2  libgcc/config/ia64/crtbegin.S
! d4d1af865d9bd280755deb2f82c905eb  libgcc/config/ia64/crtend.S
! c3024fbd735ac6aed677f7adaada4e14  libgcc/config/ia64/crtfastmath.c
! 316d2ad0cbba274c3aa0d61bf63e01f6  libgcc/config/ia64/crti.S
! a5c0e1b627063b6c3201c16b26b075e6  libgcc/config/ia64/crtn.S
  09ae9898a8a15266c60b15a27f0b1ba4  libgcc/config/ia64/divtf3.c
! 6e9e2ae18fc10b7506ceab3065833eeb  libgcc/config/ia64/fde-glibc.c
! d697d58c431479bb1336e3ed96c83d4e  libgcc/config/ia64/fde-vms.c
! 70c21206c238a6018deab55c165501e8  libgcc/config/ia64/lib1funcs.S
! a431a9d7bf65c545f12168d4066074b8  libgcc/config/ia64/libgcc-glibc.ver
! 055f323a2ded7ad99aefb0ab69dd4916  libgcc/config/ia64/libgcc-ia64.ver
! 62755c0d64818f7738112fc6c231b8ad  libgcc/config/ia64/linux-unwind.h
! 31bef683556ca2fd1cff2188cc072113  libgcc/config/ia64/quadlib.c
! e6902f0a3031d4fa376a130707377a0b  libgcc/config/ia64/sfp-exceptions.c
  96123e16288e91bc9fcaeb243516c740  libgcc/config/ia64/sfp-machine.h
  0bb88f6d16035394a23c622ba320a824  libgcc/config/ia64/t-eh-ia64
  33399ed8e4f636769acf666b91d227c6  libgcc/config/ia64/t-hpux
*************** bbd02bc575b39b813abb3651cde980d7  libgcc
*** 100999,101576 ****
  3cc3f3d4611f64c4d5fc225a72d8ccc4  libgcc/config/ia64/t-softfp
  7508d41329db54ddeccc7e86a6cafae5  libgcc/config/ia64/t-softfp-compat
  552ede49162d3a4fb9e1e113de11e8b5  libgcc/config/ia64/t-vms
! 612bb7e6b5874ae841c30605155b8f4e  libgcc/config/ia64/tf-signs.c
! 7a4a3d6c580fef1a79031fde00b2afbe  libgcc/config/ia64/unwind-ia64.c
! 5f25866680330a31e05e8c6c195887fb  libgcc/config/ia64/unwind-ia64.h
! b3c219e3fe7be0926b9c45521b07ca2a  libgcc/config/ia64/vms-crtinit.S
! d528fa6fb472c8cbd6b9df08a8d0a244  libgcc/config/ia64/vms-unwind.h
! f998607b97eeae6d2a3d1e10128c7cb1  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! 097cb232e884794ff38a91e774034588  libgcc/config/libbid/ChangeLog
! e354955f92ec07ad37a62cd940b9001b  libgcc/config/libbid/_addsub_dd.c
! b89183791201be7d372019b758b007bb  libgcc/config/libbid/_addsub_sd.c
! a4d88b5941b22be078d1fb782e621350  libgcc/config/libbid/_addsub_td.c
! e88ccf6694050540c60455747df00d04  libgcc/config/libbid/_dd_to_df.c
! cc91048fc43d85181ed1878b39a0360f  libgcc/config/libbid/_dd_to_di.c
! fc0607d426d6ad4dd2303bcafc64168d  libgcc/config/libbid/_dd_to_hf.c
! e1097d9772ce609294490674b475c20d  libgcc/config/libbid/_dd_to_sd.c
! 6d4763bd9877c81df04dfc19cf04dc8e  libgcc/config/libbid/_dd_to_sf.c
! 9015461fd6ccfea3dff719400d599dae  libgcc/config/libbid/_dd_to_si.c
! a50480bca35aec6c9170f1aa821f1008  libgcc/config/libbid/_dd_to_td.c
! 998fc8abd9126ec9d81564a0c84fad5d  libgcc/config/libbid/_dd_to_tf.c
! 688e957971268594d2b6a0200fee8395  libgcc/config/libbid/_dd_to_udi.c
! 789f4a6d8c849d3710c01ee08384b997  libgcc/config/libbid/_dd_to_usi.c
! 86637f75a69d1d987864e4a4162fcccb  libgcc/config/libbid/_dd_to_xf.c
! b42c42c3eca4c0a5216893fbe44dde65  libgcc/config/libbid/_df_to_dd.c
! 5f81fa45871b8a4274512951ace85db2  libgcc/config/libbid/_df_to_sd.c
! 8b51b50347d5b5a9b422c1244e1f265c  libgcc/config/libbid/_df_to_td.c
! d4fb712a5a526373f29939e66c3a7476  libgcc/config/libbid/_di_to_dd.c
! 84465d856bc872bf2f81542732721064  libgcc/config/libbid/_di_to_sd.c
! 98a48b1855dfa55fe27a942f72393d86  libgcc/config/libbid/_di_to_td.c
! 061594189a2328138282b4e6cf954892  libgcc/config/libbid/_div_dd.c
! 7835e225ed647d519a77fe74d6cf4ad3  libgcc/config/libbid/_div_sd.c
! dfe2a78ccd3caae619fd1014ddeecb8e  libgcc/config/libbid/_div_td.c
! 50075b7feab531de432f565815b00439  libgcc/config/libbid/_eq_dd.c
! 004dedb4a7b7082368665b78131caa06  libgcc/config/libbid/_eq_sd.c
! 9d2e9fa1807ec079cd866f6fd63a135f  libgcc/config/libbid/_eq_td.c
! 2585fe312b541c97bdb2bbede6ab6a14  libgcc/config/libbid/_ge_dd.c
! b8ffbfcfb9ce57f96f64a7ba92ad090b  libgcc/config/libbid/_ge_sd.c
! dc6e412246160d88c44cb8fc9fb3437b  libgcc/config/libbid/_ge_td.c
! 20f71feec742ca97b0c766196fb77f95  libgcc/config/libbid/_gt_dd.c
! eb2fb6f71d291b748360a6cbb453055d  libgcc/config/libbid/_gt_sd.c
! af9633e8851e63df852f36d8189aa3ce  libgcc/config/libbid/_gt_td.c
! 5a6a31640c7459aa378172fcada03a8e  libgcc/config/libbid/_hf_to_dd.c
! 67ea34878991c183faa54371850f5bf8  libgcc/config/libbid/_hf_to_sd.c
! 82a6f8a819c6567ac0df35a1bd5e3b0a  libgcc/config/libbid/_hf_to_td.c
! 59388bf97a238e3655978f23b534094d  libgcc/config/libbid/_isinfd128.c
! 2e82238b9e19ed29852881a06292be08  libgcc/config/libbid/_isinfd32.c
! 139610c393deae3b473b8f4deb630c89  libgcc/config/libbid/_isinfd64.c
! 5974d8750b7de89038cde2b8779a68b5  libgcc/config/libbid/_le_dd.c
! aff0844ea090baa3e242b4ba5f46f727  libgcc/config/libbid/_le_sd.c
! 63bf2d6713f53f1fcf8d990cba699b24  libgcc/config/libbid/_le_td.c
! 15997eb6361797fac8a253385ecf7be5  libgcc/config/libbid/_lt_dd.c
! 97d01d204e10405144a4d8e1d3c9b3f1  libgcc/config/libbid/_lt_sd.c
! 348812951f2d66375aad00c5dbf624f8  libgcc/config/libbid/_lt_td.c
! a460efbaf5146933ba2629f5cbf20430  libgcc/config/libbid/_mul_dd.c
! 50af44a2bd01475b0c4db041c2b60349  libgcc/config/libbid/_mul_sd.c
! f4353425e1393eea74514bee8a15ca08  libgcc/config/libbid/_mul_td.c
! fab9b1183f10b27b54d1afc54a7d5cbb  libgcc/config/libbid/_ne_dd.c
! a7f01f1998dc68e33cec240757d46933  libgcc/config/libbid/_ne_sd.c
! dab31304493f9cd03058734d52d1cd99  libgcc/config/libbid/_ne_td.c
! 57834b98102b87ae0d235726ec13dca8  libgcc/config/libbid/_sd_to_dd.c
! fedb3bef21fb5eabf583c5980dc4b860  libgcc/config/libbid/_sd_to_df.c
! 6701b80f32e9685b6c4af7b0a2c51f08  libgcc/config/libbid/_sd_to_di.c
! 75a7c2ef815de046f10deb16401d5e0d  libgcc/config/libbid/_sd_to_hf.c
! a6af49717ae242f388eca3e3aedb491a  libgcc/config/libbid/_sd_to_sf.c
! 9025787901726be1393813e00eec4deb  libgcc/config/libbid/_sd_to_si.c
! 8553259c3697b6baf14288b6cf44c0ce  libgcc/config/libbid/_sd_to_td.c
! 9c6bf115728bf8b0e4748205505cc528  libgcc/config/libbid/_sd_to_tf.c
! 4b12a1cf33f9c5604ba0cb5029950237  libgcc/config/libbid/_sd_to_udi.c
! 56e2fe501cb4c28a20064674f0e6b094  libgcc/config/libbid/_sd_to_usi.c
! e2f34ca8bf254ecf40c5c706cfe9afa9  libgcc/config/libbid/_sd_to_xf.c
! b4842888ccafc86d41a4a2e8e54f15c8  libgcc/config/libbid/_sf_to_dd.c
! 52a9efb9740c87b0dbd10dd3dcf14afb  libgcc/config/libbid/_sf_to_sd.c
! ff0286e112a9e8aa9b6b6a9650752825  libgcc/config/libbid/_sf_to_td.c
! 67f0b484b55bc8a70142a35568750dcb  libgcc/config/libbid/_si_to_dd.c
! 97dc6b61247a10c3638de3e653c84d43  libgcc/config/libbid/_si_to_sd.c
! bbf2fd9c21d6e0541ef032209cb79763  libgcc/config/libbid/_si_to_td.c
! 6b619543b2d700f997c6353774c3232f  libgcc/config/libbid/_td_to_dd.c
! 2fa74dde1631658c668fe4bc576c9c26  libgcc/config/libbid/_td_to_df.c
! 3cabd379b0b25458f9fdb743696c7a92  libgcc/config/libbid/_td_to_di.c
! 9f76206a793c4b97883b7702bd417f6f  libgcc/config/libbid/_td_to_hf.c
! 5bce64b299f3dc7be860411475e23d38  libgcc/config/libbid/_td_to_sd.c
! 6c8e6f6d8eb545a49ff4d9bbae142251  libgcc/config/libbid/_td_to_sf.c
! e3012bcf5bd8983b24af818a574343e1  libgcc/config/libbid/_td_to_si.c
! dacf742f69e79f38f0cb8976cbcda7ea  libgcc/config/libbid/_td_to_tf.c
! 8b7f4aebfe4b958729cb767fc34ed2b2  libgcc/config/libbid/_td_to_udi.c
! db8eda1703ce8781b909ca706b160bf0  libgcc/config/libbid/_td_to_usi.c
! 5960919eff607b2db0c416a08b3182e3  libgcc/config/libbid/_td_to_xf.c
! 61ff6449ec9fd87d46af52cf9b1adaa6  libgcc/config/libbid/_tf_to_dd.c
! 169bb0e38e4d1edd65b5709a07343f93  libgcc/config/libbid/_tf_to_sd.c
! adabae286a6639541beff9b62eead162  libgcc/config/libbid/_tf_to_td.c
! 6967c39c40e27751608153d29a7ed13d  libgcc/config/libbid/_udi_to_dd.c
! 2fd3aa44591bbcbcc5ab89d1639f8bd5  libgcc/config/libbid/_udi_to_sd.c
! d9162a49de81d619451ed10b62f8b10e  libgcc/config/libbid/_udi_to_td.c
! c7c46fa07a59d6762a23c4db1d980d8e  libgcc/config/libbid/_unord_dd.c
! 4fb879732fe10fa7f20e896d08c8cdbb  libgcc/config/libbid/_unord_sd.c
! 3f8402ba0840bff80d303d89af2c067d  libgcc/config/libbid/_unord_td.c
! d3a0315e07c2ff4f718cb4d13c8171d7  libgcc/config/libbid/_usi_to_dd.c
! 03d2acbf951b9169da53ca9705d0c20a  libgcc/config/libbid/_usi_to_sd.c
! 7984b16d53be0e471cd2f26dae6070fe  libgcc/config/libbid/_usi_to_td.c
! 72e99cb02e7d31ff60e9d32bcd33d1f3  libgcc/config/libbid/_xf_to_dd.c
! b1c614ae55e8153382db3b48bd57669e  libgcc/config/libbid/_xf_to_sd.c
! b013d53ea4fb60a175165cac39c463de  libgcc/config/libbid/_xf_to_td.c
! 36f4e3ba4a56129b28dd9cc06f5d55b1  libgcc/config/libbid/bid128.c
! 7673abaeec7a2e325c1bbe8a16154d50  libgcc/config/libbid/bid128_2_str.h
! d7b0c085d07bd306bab61abc994ec329  libgcc/config/libbid/bid128_2_str_macros.h
! e62cf067aebe1dd3f8a6bce858b0314e  libgcc/config/libbid/bid128_2_str_tables.c
! e824611ba7ad556b5669517cc4bf14d4  libgcc/config/libbid/bid128_add.c
! 477783c26b5c50fef15ca71f3136950e  libgcc/config/libbid/bid128_compare.c
! 5d70fb61c76b0aa24c8a7f8d5382bc68  libgcc/config/libbid/bid128_div.c
! 061c9c1d3b533ed1fe98b50a51336371  libgcc/config/libbid/bid128_fma.c
! f079909bf243ec951945b445b4c47f3c  libgcc/config/libbid/bid128_logb.c
! 912d00116bf76030fe69bc93a473734d  libgcc/config/libbid/bid128_minmax.c
! 85a9681e5f92a6b597bd5a2537a547e5  libgcc/config/libbid/bid128_mul.c
! 864b51307bd3ea0bb01e88f915186538  libgcc/config/libbid/bid128_next.c
! 16ac9e73243df4e66a5bf7b0e10149bd  libgcc/config/libbid/bid128_noncomp.c
! 73bfae43987c7d03129ec3eb913232c1  libgcc/config/libbid/bid128_quantize.c
! 418b11c369edcfc6919e0fe98cbf1f1e  libgcc/config/libbid/bid128_rem.c
! 99ca778e54e3f3ae4fcd239292c5ea59  libgcc/config/libbid/bid128_round_integral.c
! e36526bbbaff7305959bafc4d60f4630  libgcc/config/libbid/bid128_scalb.c
! 9fdb7c152ab242b1120a2de26e28fde2  libgcc/config/libbid/bid128_sqrt.c
! f09b9025bc721eb8fd96d0dc25ad7e5a  libgcc/config/libbid/bid128_string.c
! 421c0e019df107f1d124fd48aeb301bc  libgcc/config/libbid/bid128_to_int16.c
! 7562e67671a8f77dc4512a5e8afab693  libgcc/config/libbid/bid128_to_int32.c
! 459f48a5aa50e7de16c23c59d6fb6c5a  libgcc/config/libbid/bid128_to_int64.c
! d74e0cd71b964cb144a21e56c004e79b  libgcc/config/libbid/bid128_to_int8.c
! 2dc1c7dc1333bf1fb188e47bcc83ed9a  libgcc/config/libbid/bid128_to_uint16.c
! f68e04bddd68aea3c0bb388cabdd2295  libgcc/config/libbid/bid128_to_uint32.c
! 9af9bed860b3b4ccc75926222d7730a8  libgcc/config/libbid/bid128_to_uint64.c
! 79dd5f5da0e49fa6ba81ddd570fb8399  libgcc/config/libbid/bid128_to_uint8.c
! 8183559db9b5eae116b8690349920fb2  libgcc/config/libbid/bid32_to_bid128.c
! a480eb79cad6191fb29418da4652a3e3  libgcc/config/libbid/bid32_to_bid64.c
! 870c1a913d6160d25855ecce8a59ddff  libgcc/config/libbid/bid64_add.c
! aca051d48bf8e527df77bf8d1eff00fc  libgcc/config/libbid/bid64_compare.c
! 4b90b21c061278bdf091d62bfdfea3b5  libgcc/config/libbid/bid64_div.c
! 0f61cc08242ef6e3c0d816bd2a8b081c  libgcc/config/libbid/bid64_fma.c
! fde6bffe7a0afac2f25e56c12b6c5e43  libgcc/config/libbid/bid64_logb.c
! 73f41580d16fcbef252b32843459463a  libgcc/config/libbid/bid64_minmax.c
! 3cfe86bedd1d12cedb0f3594b07f0e70  libgcc/config/libbid/bid64_mul.c
! a8e943594d54dd3c7e297a719492330b  libgcc/config/libbid/bid64_next.c
! ce9f7ed50600ac9b8be0fc8cde5856e8  libgcc/config/libbid/bid64_noncomp.c
! ad8c37f945b31686092c56cc6d5992dd  libgcc/config/libbid/bid64_quantize.c
! 7309dc6f3d1abf8459c4523b2b7de4d4  libgcc/config/libbid/bid64_rem.c
! 571236b8739c3a18eed428401d33904a  libgcc/config/libbid/bid64_round_integral.c
! d9f933b2fcad5b72a0aacaa97b2638b5  libgcc/config/libbid/bid64_scalb.c
! 74f0a489735d403e315ff76605db4bb4  libgcc/config/libbid/bid64_sqrt.c
! 9a4ab3ba6f060592765800df2df784db  libgcc/config/libbid/bid64_string.c
! 3987873f8975753562b5c3289f9240cb  libgcc/config/libbid/bid64_to_bid128.c
! b308fb6aeda4f5121fe0a2750e1c28d9  libgcc/config/libbid/bid64_to_int16.c
! a3d80ecfe909e2e29843d547f52e2f03  libgcc/config/libbid/bid64_to_int32.c
! 7f096cb5362b49a5de9c691f2d736efe  libgcc/config/libbid/bid64_to_int64.c
! 42b59aa43b85253b548eb60b029cc4bc  libgcc/config/libbid/bid64_to_int8.c
! 8d626c9669a4f809f8e3e778ef71ae1f  libgcc/config/libbid/bid64_to_uint16.c
! 8b216aac146bd44b0ff0329f064e8dc6  libgcc/config/libbid/bid64_to_uint32.c
! 5962c6a206e225f21046ea5688264b6c  libgcc/config/libbid/bid64_to_uint64.c
! 14ccc018f22d155168ea6c2e63403f0a  libgcc/config/libbid/bid64_to_uint8.c
! b8f86fc8cf1a2b2fa013ebeefe541c62  libgcc/config/libbid/bid_b2d.h
! d8038ace359d708083c53b9cadcadeac  libgcc/config/libbid/bid_binarydecimal.c
! ecca974aadea8b542d42cefe25d479fa  libgcc/config/libbid/bid_conf.h
! aa4da871b8d3534877024c3099685cc7  libgcc/config/libbid/bid_convert_data.c
! 91f6623c76f76acdc41c194c69ced2b6  libgcc/config/libbid/bid_decimal_data.c
! ba087d1f6e06b6a98e704c120d628e44  libgcc/config/libbid/bid_decimal_globals.c
! f464254c8d5ec5e5a8f8ea755c45b311  libgcc/config/libbid/bid_div_macros.h
! 62c8935c1a82ad3999fc6b01c3284fc1  libgcc/config/libbid/bid_dpd.c
! c76a71a3991c28b95b596b4346cc9e22  libgcc/config/libbid/bid_flag_operations.c
! 7e7dec64592f1b28a435cb3d2df06958  libgcc/config/libbid/bid_from_int.c
! e5c12346ada66c83fddcae57c32bd450  libgcc/config/libbid/bid_functions.h
! 5ca541c7a0a692f719ccf6784a8b0b0b  libgcc/config/libbid/bid_gcc_intrinsics.h
! 50734f467f1cbadebef7ac272c10bfc0  libgcc/config/libbid/bid_inline_add.h
! 698823ad5d3f7d1b2a48e56f10103c2b  libgcc/config/libbid/bid_internal.h
! 33ab8afacbd4eb2b25764f82ab706b58  libgcc/config/libbid/bid_round.c
! c7e6f490c055d242484ac4a28b7b82ed  libgcc/config/libbid/bid_sqrt_macros.h
! 5e88afef0f873954f367ecf862e49afc  libgcc/config/libgcc-glibc.ver
  a5b43383f528298ff2dc85061452e1e6  libgcc/config/libgcc-libsystem.ver
! 0b88d02ec2d6c9ecea69cdc925fb42ab  libgcc/config/lm32/_ashlsi3.S
! 5b466f77db0bb7a56002f39625efe197  libgcc/config/lm32/_ashrsi3.S
! b7dc0ec3fadfe8d977c976bd536e4114  libgcc/config/lm32/_divsi3.c
! 2e790315690d2f7855df18d8ad7430f3  libgcc/config/lm32/_lshrsi3.S
! 6de02ab0296e2d8fb87123d1961167ea  libgcc/config/lm32/_modsi3.c
! 51a81eb8ffec4dc365174863108b6322  libgcc/config/lm32/_mulsi3.c
! f70df1d1185e2be59d1a9252280180e9  libgcc/config/lm32/_udivmodsi4.c
! 93feb9de93d024aa7ecc5d3c800c0a84  libgcc/config/lm32/_udivsi3.c
! a17c400121496de814c390483670be7d  libgcc/config/lm32/_umodsi3.c
! 913cc06a665440a8fefd14cf4b5b4233  libgcc/config/lm32/crti.S
! 07f92e04307a198cf74b57f4a0845bb9  libgcc/config/lm32/crtn.S
! 5c1ca9adb6600c2d6e902a16def42200  libgcc/config/lm32/libgcc_lm32.h
  813910d184e034c80a518f2ba3c4e1a5  libgcc/config/lm32/sfp-machine.h
  331dd855f33aa7a09d25fc757cedf2cf  libgcc/config/lm32/t-elf
  d6d4b530a7539331e6e553f26928de4e  libgcc/config/lm32/t-lm32
  df59d7c87fc0d2f761461ac4ba7ec440  libgcc/config/lm32/t-uclinux
! 65970faf10c6a9ef18b050e76b6b2c1f  libgcc/config/loongarch/crtfastmath.c
! 0240b534c0dff6b8e5051deba9163ca7  libgcc/config/loongarch/linux-unwind.h
! 9e9bc846a23d47f9d808cc83c23c3c1f  libgcc/config/loongarch/sfp-machine.h
  6cd85196ae9a504ff938607f275f760e  libgcc/config/loongarch/t-crtstuff
  5b9c4ae086bab2fa0eb006a6223eb270  libgcc/config/loongarch/t-loongarch
  5e2260f13769a960c8e1f24b0c9847e4  libgcc/config/loongarch/t-loongarch64
  011afb1a0cc0aae0a4c465e6aefcafda  libgcc/config/loongarch/t-softfp-tf
! 59ec0ea6fc5ae049ed69443e271d1ec2  libgcc/config/m32c/lib1funcs.S
! 5425a0b4fec973dfb4b80fc580cb08b7  libgcc/config/m32c/lib2funcs.c
  9f1fc3a0f039273ded002a6713908bd3  libgcc/config/m32c/t-m32c
! c67abc24ae3759b9125570ba983a452a  libgcc/config/m32c/trapv.c
! f5f747e7be00de427575c80462a4e495  libgcc/config/m32r/initfini.c
  e252c161ec4eb09d3b5a62d902b3d00f  libgcc/config/m32r/t-m32r
! df3c6fe8acc7d74ba91322b0037f5daf  libgcc/config/m68k/crti.S
! 3d9352c2713d87a27eb1ea4b153c01fa  libgcc/config/m68k/crtn.S
! c88d87907a20077db176016165428d4b  libgcc/config/m68k/fpgnulib.c
! fac2351f9af5c17f058ebcf90a2606aa  libgcc/config/m68k/lb1sf68.S
! e1561b108393d9c08713b8b0c41e8275  libgcc/config/m68k/linux-atomic.c
! 85ca23a53f34e44b4292ded58c4bcc70  libgcc/config/m68k/linux-unwind.h
  2e4fd3e401c9159da9f32d5965b5afa1  libgcc/config/m68k/t-floatlib
  de217c41c217f4341d6d546afa9a79f2  libgcc/config/m68k/t-linux
  4e281c631e54b8912258f84196fec9e6  libgcc/config/m68k/t-slibgcc-elf-ver
! d871332c71ca808d01f6560149e2e439  libgcc/config/mcore/crti.S
! ec9c355dd316399c0440063ee03749f1  libgcc/config/mcore/crtn.S
! be89f1699ba1e671fd0c01b4cd4932c2  libgcc/config/mcore/lib1funcs.S
  ef74fd63202d842bfe7120864186128c  libgcc/config/mcore/t-mcore
! 79b99108d8261c6ef0eaddc2b9ad0038  libgcc/config/microblaze/crti.S
! 3429802c171f171ee688560b197fc6a6  libgcc/config/microblaze/crtn.S
! 95b0eba21784e0691866983afe24f24b  libgcc/config/microblaze/divsi3.S
! 7d5047e0096aca2284c7c0cb2f26d7af  libgcc/config/microblaze/divsi3_table.c
! 71e659549ab0fdd46c3d6b7b86f9864f  libgcc/config/microblaze/moddi3.S
! ee992bef8058a28f58f14038c864462a  libgcc/config/microblaze/modsi3.S
! 7c7589572fc8ce75df0855a4a16071c8  libgcc/config/microblaze/muldi3_hard.S
! 48b713b6e9b7b2c59f9c4d820ba6d340  libgcc/config/microblaze/mulsi3.S
! 30d1484d321f8b51273d3fc1a21f34e4  libgcc/config/microblaze/stack_overflow_exit.S
  702cd2045c2c31581ecd56232d96d5f5  libgcc/config/microblaze/t-microblaze
! 4f75fc42643b276bbc6172eb8ff5b945  libgcc/config/microblaze/udivsi3.S
! a48f8f991b94eba1043cc9c7993b6322  libgcc/config/microblaze/umodsi3.S
! 59b40e1c42b9a3e1579634cad39eee9e  libgcc/config/mips/crtfastmath.c
! f03d719103d4078618f1e7fcd64a25c4  libgcc/config/mips/crti.S
! 513679c4c27411b5a984d42a3faf5194  libgcc/config/mips/crtn.S
  f69b446f168701e4fad37a3fa7bf7a2a  libgcc/config/mips/gnustack.h
! 404ab21f5c22cc55ecdaf9577e871f6a  libgcc/config/mips/gthr-mipssde.h
! 0d42a8a9a60644114240d947a6dcc90f  libgcc/config/mips/lib2funcs.c
! 485e024bbe421a89e63861f7b48c7287  libgcc/config/mips/libgcc-mips16.ver
! c26ae7569db955026ef1b97db4a82b5a  libgcc/config/mips/linux-unwind.h
! 51529690a087cf77a2ac08adee500012  libgcc/config/mips/mips16.S
! 196e18efacc51e9ae07277fa85e6d42b  libgcc/config/mips/sfp-machine.h
  5b43c15f4e003338742d215bcfdf5029  libgcc/config/mips/t-crtstuff
  33f2c96b7ccbbb062839ec1e7329e6bb  libgcc/config/mips/t-elf
! 501be8fccb18eca4dbd8b404d7b4c9fa  libgcc/config/mips/t-mips
! efb10fd41a2261a7fff2e5ff2f035d19  libgcc/config/mips/t-mips16
  5e2260f13769a960c8e1f24b0c9847e4  libgcc/config/mips/t-mips64
  6403b3d85f0ed6751174f1088d074f62  libgcc/config/mips/t-sdemtk
  011afb1a0cc0aae0a4c465e6aefcafda  libgcc/config/mips/t-softfp-tf
  532a76f856d3755b780a19a91bdd1654  libgcc/config/mips/t-vr
! dc03d1631f3d3e91ce92f98a4cb57048  libgcc/config/mips/vr4120-div.S
! 60877f4fa104109c6fbf759be98fae6f  libgcc/config/mmix/crti.S
! 0fb6b09f6429b35923827ea254eaecc6  libgcc/config/mmix/crtn.S
  41478efd1b19b3c7c9426d8e843f3b39  libgcc/config/mmix/t-mmix
! 29cc1ab4d562ea7e1c8e53755710301b  libgcc/config/moxie/crti.S
! cd3a69c904a590a9b27498a8487e9be5  libgcc/config/moxie/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/moxie/sfp-machine.h
  9b7000ea173c226d39e6a6dc116fdaf1  libgcc/config/msp430/cmpd.c
! 0562af95c8834a177434eb0eec62175e  libgcc/config/msp430/cmpsi2.S
! 26ef7b2a74983a3a4f80993cf3b11df0  libgcc/config/msp430/epilogue.S
  072a56de362c5e857510ca8401f30aa8  libgcc/config/msp430/floathidf.c
  07461b1abb61437fbc73d74801f6300b  libgcc/config/msp430/floathisf.c
  88792e557553f37a296bd8127a0dfc88  libgcc/config/msp430/floatunhidf.c
  754bbc793bc0e81b0a2168df9f47e1f3  libgcc/config/msp430/floatunhisf.c
! 6ed1cf7c6a696017f52b1da1a8e392b9  libgcc/config/msp430/lib2bitcountHI.c
! 0e6457831c5c5fab1354174e6102001e  libgcc/config/msp430/lib2divHI.c
! f7af56d05f6ba9794695c1eb841d2602  libgcc/config/msp430/lib2divQI.c
! f05d1d8b8b0fb8b489468867958a7b77  libgcc/config/msp430/lib2divSI.c
! 1835dc5005c1344dccc5565452b59673  libgcc/config/msp430/lib2hw_mul.S
! 5b39c8762f11f7c5f51a62857add420a  libgcc/config/msp430/lib2mul.c
! 9a4c03983f6a93c365bfab8ef968b7c6  libgcc/config/msp430/lib2shift.c
  585dda5cb05623da62e4f4aad3bdbbb6  libgcc/config/msp430/mpy.c
! 04d38c35f1a54f8e783a12e17f8e7283  libgcc/config/msp430/msp430-divmod.h
! 1634f71b1d498dd61df06ca962d72eee  libgcc/config/msp430/msp430-mul.h
! 39549907a6155827146e73a465da7677  libgcc/config/msp430/slli.S
! d80ba63395fded55379799afaf8e7663  libgcc/config/msp430/srai.S
! f5279a94d98c33ff4085f1dc4bd7d465  libgcc/config/msp430/srli.S
! ee9161685be2371a72abd223bcdb91fd  libgcc/config/msp430/t-msp430
! 869890e0f25bbbe04d20b47bbb444503  libgcc/config/nds32/crtzero.S
! 192415ae59c41e2145a4f2ec3a2c8ed6  libgcc/config/nds32/initfini.c
! 63ac35aaafd78cf964dd962af7f8c400  libgcc/config/nds32/isr-library/adj_intr_lvl.inc
! 569ca3aa12d86627188a41d8e89c7bec  libgcc/config/nds32/isr-library/excp_isr.S
! 0fba584092b72351feddd66e40eefae0  libgcc/config/nds32/isr-library/excp_isr_4b.S
! ebc3a6329513b8f0685ed5361d55b7a2  libgcc/config/nds32/isr-library/intr_isr.S
! 319e29b32a4dba4d2ec2fd976774112d  libgcc/config/nds32/isr-library/intr_isr_4b.S
! 842111a4b4aeca046b9de8ce2cc0047b  libgcc/config/nds32/isr-library/jmptbl_vid00.S
! d5bd1b276303148d728702dd08ad1e26  libgcc/config/nds32/isr-library/jmptbl_vid01.S
! d30d618ffaf9bbd72613acb1a28fb6e4  libgcc/config/nds32/isr-library/jmptbl_vid02.S
! 0787f451182bf8618619faf5c8fa36e6  libgcc/config/nds32/isr-library/jmptbl_vid03.S
! c6512a5cca71172b3807aae1ae976750  libgcc/config/nds32/isr-library/jmptbl_vid04.S
! a6037de3635978dac85a4302f735adeb  libgcc/config/nds32/isr-library/jmptbl_vid05.S
! b7ec590420fa5a86699414d3a1bd5e75  libgcc/config/nds32/isr-library/jmptbl_vid06.S
! edf3fcb7582dd52ed4d4beb0535965bc  libgcc/config/nds32/isr-library/jmptbl_vid07.S
! d4b32772405ea99e6783041ad4f64d23  libgcc/config/nds32/isr-library/jmptbl_vid08.S
! c3e30e5e78c36b2c17a561f00388ba64  libgcc/config/nds32/isr-library/jmptbl_vid09.S
! 306d216d887878b221192ce571cf65b6  libgcc/config/nds32/isr-library/jmptbl_vid10.S
! 611575e264ca7c5a427ebe13cabf7ff6  libgcc/config/nds32/isr-library/jmptbl_vid11.S
! 379fc8dedc276966aa1c781466033304  libgcc/config/nds32/isr-library/jmptbl_vid12.S
! 3ca708ca150dd078cb8cacbc93cd0956  libgcc/config/nds32/isr-library/jmptbl_vid13.S
! 8a30ecb7fff6e8fbb15b02c582279c50  libgcc/config/nds32/isr-library/jmptbl_vid14.S
! fc2dfce54661a523f4ab21159f92b4f8  libgcc/config/nds32/isr-library/jmptbl_vid15.S
! 7d5c24f80c8e78977d64f37fbe39de8e  libgcc/config/nds32/isr-library/jmptbl_vid16.S
! dd0e5a25602ecaa638edbda1c9c787bb  libgcc/config/nds32/isr-library/jmptbl_vid17.S
! 07be7bcaca8c74cb21a2c34841d71ac3  libgcc/config/nds32/isr-library/jmptbl_vid18.S
! 6bca72e02d08430faa792613ac5c1068  libgcc/config/nds32/isr-library/jmptbl_vid19.S
! b70815d69f4ca2723791ed3a9f1f5f8c  libgcc/config/nds32/isr-library/jmptbl_vid20.S
! c0bf89b45176eb5fd8d42f5a93e7a05e  libgcc/config/nds32/isr-library/jmptbl_vid21.S
! 181568b519551f4d48ce63dcb067ff73  libgcc/config/nds32/isr-library/jmptbl_vid22.S
! d62ea6acfc706123227764a5a33b7355  libgcc/config/nds32/isr-library/jmptbl_vid23.S
! a15e0023a71213455bd4f7a2a93ab2f9  libgcc/config/nds32/isr-library/jmptbl_vid24.S
! b368435c3bfcba3d54be7296321ddf19  libgcc/config/nds32/isr-library/jmptbl_vid25.S
! 5b7de2aba6192f31ad9318757b127d1f  libgcc/config/nds32/isr-library/jmptbl_vid26.S
! c8d302fa094e2d2564cdf7f4a57f61f7  libgcc/config/nds32/isr-library/jmptbl_vid27.S
! 6c2dd4d61722ab35ca233f2706f56de4  libgcc/config/nds32/isr-library/jmptbl_vid28.S
! e34f785a7d9f6f5b8e6056af74375904  libgcc/config/nds32/isr-library/jmptbl_vid29.S
! a9c411dffb93aa0ab8a4d79962f1c639  libgcc/config/nds32/isr-library/jmptbl_vid30.S
! 7bb826865acbba6cb33c289b0256e0aa  libgcc/config/nds32/isr-library/jmptbl_vid31.S
! a908f70969447957251a911457248510  libgcc/config/nds32/isr-library/jmptbl_vid32.S
! 199e6714031f957f39ee0f391a61ace1  libgcc/config/nds32/isr-library/jmptbl_vid33.S
! e877fc20e56c291718d0463125caa504  libgcc/config/nds32/isr-library/jmptbl_vid34.S
! e416cc4091694d9ca3893ba3205370da  libgcc/config/nds32/isr-library/jmptbl_vid35.S
! ec68c3f74db295a1989666886ab1d51c  libgcc/config/nds32/isr-library/jmptbl_vid36.S
! cdcfa785a896a8f95ef797f42478b42d  libgcc/config/nds32/isr-library/jmptbl_vid37.S
! 091d16aa4f4565b19c4f50fc1832996d  libgcc/config/nds32/isr-library/jmptbl_vid38.S
! c138baa23c09ce4eb1345ffcccedb6ab  libgcc/config/nds32/isr-library/jmptbl_vid39.S
! 8995cb762876025869453b0a86576cd5  libgcc/config/nds32/isr-library/jmptbl_vid40.S
! f12a8f7da69167abb781435c125baff1  libgcc/config/nds32/isr-library/jmptbl_vid41.S
! 3db935d9e848934373853d1aa249d086  libgcc/config/nds32/isr-library/jmptbl_vid42.S
! 4944b30c3fc4d2b5904bad8b17b3f4cf  libgcc/config/nds32/isr-library/jmptbl_vid43.S
! c20ab1d384be3397e5d0875c7fb816df  libgcc/config/nds32/isr-library/jmptbl_vid44.S
! 513ccd82db11492eea499029ce60d8a2  libgcc/config/nds32/isr-library/jmptbl_vid45.S
! 1e26cc6d142a05ae68b81ba1d67b6c0d  libgcc/config/nds32/isr-library/jmptbl_vid46.S
! d5371259566b5e8f4d2ff1a386a85bc3  libgcc/config/nds32/isr-library/jmptbl_vid47.S
! ab972e44324525e8059c4f4a5b193ba2  libgcc/config/nds32/isr-library/jmptbl_vid48.S
! 1d7cff9fbb072c409288e7646b5ea31d  libgcc/config/nds32/isr-library/jmptbl_vid49.S
! efb3afa3f4d39b4ebd9c1c29a2d9b655  libgcc/config/nds32/isr-library/jmptbl_vid50.S
! 102c796af59f82442866fd4d0d5eeebf  libgcc/config/nds32/isr-library/jmptbl_vid51.S
! 06b9f3c19f45d1fbb0570d9b497aa179  libgcc/config/nds32/isr-library/jmptbl_vid52.S
! 886b10f321e67debaaa40da1626c1ebe  libgcc/config/nds32/isr-library/jmptbl_vid53.S
! fdab9cfb6800baa6c0febac2896dbde2  libgcc/config/nds32/isr-library/jmptbl_vid54.S
! c5651280de3671a35772bce0ee5f29a0  libgcc/config/nds32/isr-library/jmptbl_vid55.S
! 646c4bdece88ec1d3f5cdac94903b279  libgcc/config/nds32/isr-library/jmptbl_vid56.S
! 5db1f1f8004d9ed87c6ee9340234860a  libgcc/config/nds32/isr-library/jmptbl_vid57.S
! 759104f5553c9b2dbfe1b0197629b6ef  libgcc/config/nds32/isr-library/jmptbl_vid58.S
! fc6f43bbc4604c087519d6c70a4b6eb3  libgcc/config/nds32/isr-library/jmptbl_vid59.S
! 5c689a059bfcb1bb2ceb5f225bfaa7e3  libgcc/config/nds32/isr-library/jmptbl_vid60.S
! 88bb532bd48225a54e1070aec2ce3612  libgcc/config/nds32/isr-library/jmptbl_vid61.S
! b8e50bac86c7a29d835976a07bf9b5ea  libgcc/config/nds32/isr-library/jmptbl_vid62.S
! 2945b75316b0ce26c8f651defbb87720  libgcc/config/nds32/isr-library/jmptbl_vid63.S
! 67d1c5dd653c55b98e01dee100f5eaad  libgcc/config/nds32/isr-library/jmptbl_vid64.S
! f299a69d0100bac8260a4089246d815b  libgcc/config/nds32/isr-library/jmptbl_vid65.S
! a649c31c5ee48ab53a9b7b1c06758f87  libgcc/config/nds32/isr-library/jmptbl_vid66.S
! 9a7748fc3db2af7ee6d224dc2f005a50  libgcc/config/nds32/isr-library/jmptbl_vid67.S
! e82dac0373e85956d51d7ef3e48dc564  libgcc/config/nds32/isr-library/jmptbl_vid68.S
! fe0ab95ccf8d86ab06d3471358c24c49  libgcc/config/nds32/isr-library/jmptbl_vid69.S
! 169f550e4b84bc6923305cb4170473ce  libgcc/config/nds32/isr-library/jmptbl_vid70.S
! bf49225ebc1b134114c78e689d3f0e7e  libgcc/config/nds32/isr-library/jmptbl_vid71.S
! b327dc16d637c6f26016b46a870f204c  libgcc/config/nds32/isr-library/jmptbl_vid72.S
! 502d33f2779bde4db8ee77551367c4c4  libgcc/config/nds32/isr-library/nmih.S
! 29e6d9ad3d81828e49ef1e4616f77473  libgcc/config/nds32/isr-library/reset.S
! dc54456d46455aedeb21c1239be4a8cf  libgcc/config/nds32/isr-library/reset_4b.S
! 527bcf956c7bcaf6d07501717795badb  libgcc/config/nds32/isr-library/restore_all.inc
! d112154e5c804aae59aac7da93045cfd  libgcc/config/nds32/isr-library/restore_fpu_regs.inc
! a213c1ec433ed0a02d16b5eb436db29a  libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc
! 08ccfe2aeab3efda35a33ac9a657bf79  libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc
! 41b27345f886e6f5ea0caabc150c6fa1  libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc
! 98a13dda7be53b320081929adf29c6fd  libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc
! ab0d485217a5b9b9873c3997ba27dd38  libgcc/config/nds32/isr-library/restore_mac_regs.inc
! 17b1d7bfb1c1ba819236b9326fe90ed6  libgcc/config/nds32/isr-library/restore_partial.inc
! c82458b21279b5fc60bf71eaa1eb4d3f  libgcc/config/nds32/isr-library/restore_usr_regs.inc
! b5fbcd709bf6588cfbd015f0619ae281  libgcc/config/nds32/isr-library/save_all.inc
! baa0913ae902de1b1cb552ba957d31a3  libgcc/config/nds32/isr-library/save_fpu_regs.inc
! ba731aca855fa9128db8380836d9768d  libgcc/config/nds32/isr-library/save_fpu_regs_00.inc
! 3a28e86e1bf3ee010eeeeda23a393eaa  libgcc/config/nds32/isr-library/save_fpu_regs_01.inc
! 179056b058fb2a07a0bf1ede1245129f  libgcc/config/nds32/isr-library/save_fpu_regs_02.inc
! 69bb11cf8ceae023fa4fb3765abefb20  libgcc/config/nds32/isr-library/save_fpu_regs_03.inc
! 8d6731fc9234911ef5df5c6a4f2bb694  libgcc/config/nds32/isr-library/save_mac_regs.inc
! eeb1cabe84a37885dd60e132aa9f3b41  libgcc/config/nds32/isr-library/save_partial.inc
! fc8810f01895cd7e8695b143d4bab983  libgcc/config/nds32/isr-library/save_usr_regs.inc
! 0bc77a89571d3cfed0fe0bd442785e8e  libgcc/config/nds32/isr-library/vec_vid00.S
! cef3260da36615024d5d7543f05211c2  libgcc/config/nds32/isr-library/vec_vid00_4b.S
! 8f517d6530d73529721de6a3f3eb11c9  libgcc/config/nds32/isr-library/vec_vid01.S
! 36e9ac43ac7f5392b706dced7d9a812f  libgcc/config/nds32/isr-library/vec_vid01_4b.S
! 7cdc56791356c2f5492dc9f97264cce0  libgcc/config/nds32/isr-library/vec_vid02.S
! 7376877d982b973870580ae367c75e63  libgcc/config/nds32/isr-library/vec_vid02_4b.S
! 01f4106c2422e5851b7bba79d1cfb1a9  libgcc/config/nds32/isr-library/vec_vid03.S
! d8a4a85e3b9a26acbda3ae6488ac8bb2  libgcc/config/nds32/isr-library/vec_vid03_4b.S
! 1f6b2c6c7bece7ef28468cd0ed701224  libgcc/config/nds32/isr-library/vec_vid04.S
! 2e7bccdc23dd8a3589b88627db687c38  libgcc/config/nds32/isr-library/vec_vid04_4b.S
! 3ca188afddba6cda582e0e61120f1e96  libgcc/config/nds32/isr-library/vec_vid05.S
! 3edb2d457fa37a102225e1cc7172b1a3  libgcc/config/nds32/isr-library/vec_vid05_4b.S
! da21abebd3b2b57739b277edbd6db887  libgcc/config/nds32/isr-library/vec_vid06.S
! 7f8ee375f7d2cce10aaa561b58e13487  libgcc/config/nds32/isr-library/vec_vid06_4b.S
! 3057a489cdcc6c909caa452d85b935f5  libgcc/config/nds32/isr-library/vec_vid07.S
! d3bff585be48ef0b494b5fc5452d6be3  libgcc/config/nds32/isr-library/vec_vid07_4b.S
! 8bbac0cc4cc5bf95f18a90a06e2b1df5  libgcc/config/nds32/isr-library/vec_vid08.S
! 3c85b8023603b8792aef8586d1512026  libgcc/config/nds32/isr-library/vec_vid08_4b.S
! d6aac04e59064f20eb942bc0d589f65d  libgcc/config/nds32/isr-library/vec_vid09.S
! 90ad8c206773eb1936f916a6118d6a11  libgcc/config/nds32/isr-library/vec_vid09_4b.S
! 1570d61a26aba3b3d685c0c9168c6706  libgcc/config/nds32/isr-library/vec_vid10.S
! d190510dd1e73e3611096d91b27d99de  libgcc/config/nds32/isr-library/vec_vid10_4b.S
! f338fd63eb9389686a533615a9cc3c96  libgcc/config/nds32/isr-library/vec_vid11.S
! a0df7584db158aeb69dfe30e010817bb  libgcc/config/nds32/isr-library/vec_vid11_4b.S
! f0a8ebe20eee4caf991b3c88ce504e01  libgcc/config/nds32/isr-library/vec_vid12.S
! 0162ac92abee34e19cf62262d35a940c  libgcc/config/nds32/isr-library/vec_vid12_4b.S
! 34abc4178d48ac2f73a252d0d103ef18  libgcc/config/nds32/isr-library/vec_vid13.S
! 027e755641171a1164b6d369a1c6c783  libgcc/config/nds32/isr-library/vec_vid13_4b.S
! c07927a6bad92aa124eb6be68c799880  libgcc/config/nds32/isr-library/vec_vid14.S
! da8f2de5a0a763eb7cb32ce8690ca997  libgcc/config/nds32/isr-library/vec_vid14_4b.S
! 61442d75eb50f5a8fd90cf80e72c3b61  libgcc/config/nds32/isr-library/vec_vid15.S
! e23000010939a7a58ff095721c582349  libgcc/config/nds32/isr-library/vec_vid15_4b.S
! d3449a7b816304ad97b4a72884ae6779  libgcc/config/nds32/isr-library/vec_vid16.S
! 7781af0b1a69dcd668212c9433b5b280  libgcc/config/nds32/isr-library/vec_vid16_4b.S
! 570502f792b2503818cd57e070e17035  libgcc/config/nds32/isr-library/vec_vid17.S
! d56fa2dac812727d47e03496862723b2  libgcc/config/nds32/isr-library/vec_vid17_4b.S
! 3bc350632a719a9a3ef9de6b959ea71f  libgcc/config/nds32/isr-library/vec_vid18.S
! 39e56d37299fb167929f9b15e2fa04de  libgcc/config/nds32/isr-library/vec_vid18_4b.S
! a1ea738d6b3de702abbf8d6248d996a6  libgcc/config/nds32/isr-library/vec_vid19.S
! d8501577134d72cd488cfdfb7c6dfcc9  libgcc/config/nds32/isr-library/vec_vid19_4b.S
! 7180c1833fc2412b48dbee19b9b599a9  libgcc/config/nds32/isr-library/vec_vid20.S
! f66cc55f5440dbe2a3adf93180fe0332  libgcc/config/nds32/isr-library/vec_vid20_4b.S
! a7ef229710fdcc0ac6d06cba30839268  libgcc/config/nds32/isr-library/vec_vid21.S
! 12edffedbb63f3efcdaac1a328145ed1  libgcc/config/nds32/isr-library/vec_vid21_4b.S
! dac9657586e27f83e215ab598c6227b7  libgcc/config/nds32/isr-library/vec_vid22.S
! ebbc5f641d7ad67433a00e93b2ec3e41  libgcc/config/nds32/isr-library/vec_vid22_4b.S
! 10c42170ce836707fa6385e63d11a3c8  libgcc/config/nds32/isr-library/vec_vid23.S
! b7b9f10efe19807f126c9125d7a47c66  libgcc/config/nds32/isr-library/vec_vid23_4b.S
! 92862efa825973a3cb89ced48dc09ede  libgcc/config/nds32/isr-library/vec_vid24.S
! b97f0f98d4b111ba0b6956b3ce2ea9f8  libgcc/config/nds32/isr-library/vec_vid24_4b.S
! 2e236b0f8b1d1ec4addab385307ad2c7  libgcc/config/nds32/isr-library/vec_vid25.S
! 1f9c5dcc954dc77f23e58d162367816f  libgcc/config/nds32/isr-library/vec_vid25_4b.S
! 76d9c49079e7521f5d5138792942c574  libgcc/config/nds32/isr-library/vec_vid26.S
! ed94fc4919e3da38f033220a8abf0257  libgcc/config/nds32/isr-library/vec_vid26_4b.S
! dc64e498b46468236a32e1370645d9bf  libgcc/config/nds32/isr-library/vec_vid27.S
! c3301bbff0b2e62c2bbdd25c9c25540a  libgcc/config/nds32/isr-library/vec_vid27_4b.S
! a3ccd11e0a454b1c65b818fac768729b  libgcc/config/nds32/isr-library/vec_vid28.S
! 9147d01748f16e75eb994c49013f9a91  libgcc/config/nds32/isr-library/vec_vid28_4b.S
! 00ec35515e6f601b3bd2441e1608c862  libgcc/config/nds32/isr-library/vec_vid29.S
! 320d0ce5f6bc91f0a7a21b4f58974fde  libgcc/config/nds32/isr-library/vec_vid29_4b.S
! ff810112fee9cd1ac140f099f0f252bf  libgcc/config/nds32/isr-library/vec_vid30.S
! 58b89a7c6d28e3f7c1cca45d6c4e28c4  libgcc/config/nds32/isr-library/vec_vid30_4b.S
! 340cb920294e8ef3c219309703f4ee9d  libgcc/config/nds32/isr-library/vec_vid31.S
! bf10d27aafaeccdd7339f4c4d3b8620d  libgcc/config/nds32/isr-library/vec_vid31_4b.S
! 7e524bdaf9802408909073877fb0b58e  libgcc/config/nds32/isr-library/vec_vid32.S
! 293d75a6d1e85c7c5a8a27ecbf28526f  libgcc/config/nds32/isr-library/vec_vid32_4b.S
! 3ffa8abe34136354ed226e0a32ca4cbb  libgcc/config/nds32/isr-library/vec_vid33.S
! 272e04e377c6ea6bd0ec707e298f2de0  libgcc/config/nds32/isr-library/vec_vid33_4b.S
! 373fac376a1b5794c0d5322930565a11  libgcc/config/nds32/isr-library/vec_vid34.S
! 4407b488e7485ba1d76143d79bbcce85  libgcc/config/nds32/isr-library/vec_vid34_4b.S
! f9327cbe59bd9e99ccca0be94583701d  libgcc/config/nds32/isr-library/vec_vid35.S
! 95c6b77f4f25a033947466a41c10398f  libgcc/config/nds32/isr-library/vec_vid35_4b.S
! 11591036ee831bd5331e6d8bf45ca488  libgcc/config/nds32/isr-library/vec_vid36.S
! 10ba25e74efd291e36e129bd985b8097  libgcc/config/nds32/isr-library/vec_vid36_4b.S
! 876d2b7e7ec31fc0d69196412d74f74c  libgcc/config/nds32/isr-library/vec_vid37.S
! ed2bf873371c894431d4bda54ace01a7  libgcc/config/nds32/isr-library/vec_vid37_4b.S
! 4cb34560455e9a2888c5edfa991269d7  libgcc/config/nds32/isr-library/vec_vid38.S
! 122a2cd1a2effc4eb2dafcee74567737  libgcc/config/nds32/isr-library/vec_vid38_4b.S
! 92a0e903e6c902a1bbb49b962aeb7799  libgcc/config/nds32/isr-library/vec_vid39.S
! eeec288b087e8a304049b022ee42a9b2  libgcc/config/nds32/isr-library/vec_vid39_4b.S
! c92158f0d436d5685acbb4862aafa343  libgcc/config/nds32/isr-library/vec_vid40.S
! f5848063e8ba7754febae95e4c88a31f  libgcc/config/nds32/isr-library/vec_vid40_4b.S
! 106de3174f18afdd47df6285d7f3449d  libgcc/config/nds32/isr-library/vec_vid41.S
! ee32581d1f1e2125dbd0966fba1387f1  libgcc/config/nds32/isr-library/vec_vid41_4b.S
! e9891ca17b7f0a1d255dccc531fc0ba4  libgcc/config/nds32/isr-library/vec_vid42.S
! 983d160d3d36e346bc471c3cec60e3aa  libgcc/config/nds32/isr-library/vec_vid42_4b.S
! c06214d122aea77300dbe976e12d1d20  libgcc/config/nds32/isr-library/vec_vid43.S
! 599aaf55c9c4b2e962be154daca6d42e  libgcc/config/nds32/isr-library/vec_vid43_4b.S
! 01a7d11ad1e7c939bff9e95d1d739c3c  libgcc/config/nds32/isr-library/vec_vid44.S
! 6a9fc82205992e65f64f601d7a7dbf05  libgcc/config/nds32/isr-library/vec_vid44_4b.S
! c9df690ed9412878d0e420b2e8df99c2  libgcc/config/nds32/isr-library/vec_vid45.S
! 1acb7d96163662eca0fa798feaccefa3  libgcc/config/nds32/isr-library/vec_vid45_4b.S
! 55b7432ca00a4d404ef7b5c084404361  libgcc/config/nds32/isr-library/vec_vid46.S
! b97efb3c213521f0d9e657facdafd59e  libgcc/config/nds32/isr-library/vec_vid46_4b.S
! 6c82d6991efe4ea694f3c70b9761b0ff  libgcc/config/nds32/isr-library/vec_vid47.S
! 4b35d3f6a052bb969c1867e8d8df58c2  libgcc/config/nds32/isr-library/vec_vid47_4b.S
! 23fe547addf696efedba2669094279dc  libgcc/config/nds32/isr-library/vec_vid48.S
! 5869bb856f5bf8d895e6e9774bc331c6  libgcc/config/nds32/isr-library/vec_vid48_4b.S
! 774db5e8c3ac07513ece074da08a2b81  libgcc/config/nds32/isr-library/vec_vid49.S
! 83beee611538391b6d84414c36522e85  libgcc/config/nds32/isr-library/vec_vid49_4b.S
! a74c2e07c799f4ba6c2051bb8f864d27  libgcc/config/nds32/isr-library/vec_vid50.S
! 4eb615c86704d7bdd90e53a908ef7be2  libgcc/config/nds32/isr-library/vec_vid50_4b.S
! 1d9467ba8bd9a94d87df94d7dd813e76  libgcc/config/nds32/isr-library/vec_vid51.S
! 61b80dbf1c33590c8e811cf20e5198a2  libgcc/config/nds32/isr-library/vec_vid51_4b.S
! 2e5c937f2ab88aa9a6f2d6a0c304e77f  libgcc/config/nds32/isr-library/vec_vid52.S
! 97f43540609dc8f2ed047515c06fda15  libgcc/config/nds32/isr-library/vec_vid52_4b.S
! 57079dc21c5bfbc5e1d78cfec13b8d3c  libgcc/config/nds32/isr-library/vec_vid53.S
! 89460b8c52e042d7bea076a1d344eb83  libgcc/config/nds32/isr-library/vec_vid53_4b.S
! f2c1da56e67e7344140c22ac44d8a72d  libgcc/config/nds32/isr-library/vec_vid54.S
! da3787f8efbf170a0f1fcf8ed080b7c6  libgcc/config/nds32/isr-library/vec_vid54_4b.S
! 224d4a73471d9e502f13533984d12c2e  libgcc/config/nds32/isr-library/vec_vid55.S
! 47c1bad462c1381aa4a81bf8952bd4c1  libgcc/config/nds32/isr-library/vec_vid55_4b.S
! 2e4909eda3d1670545a6869bae213c18  libgcc/config/nds32/isr-library/vec_vid56.S
! bfcb996fff8c864f075d3b35a66fa8d1  libgcc/config/nds32/isr-library/vec_vid56_4b.S
! 827b97253861d48d1c013b16ec73e190  libgcc/config/nds32/isr-library/vec_vid57.S
! f8d624b5dccb0bd3e72c4a77d09b8713  libgcc/config/nds32/isr-library/vec_vid57_4b.S
! dd8316ec3874c8a41a14c8437e0b0914  libgcc/config/nds32/isr-library/vec_vid58.S
! 513bdb5852017b260cf02485f30b0873  libgcc/config/nds32/isr-library/vec_vid58_4b.S
! 29d51760c702e8e8c18d8a0b15274f83  libgcc/config/nds32/isr-library/vec_vid59.S
! 5ed7dfeeea93d763de05e7225785b13a  libgcc/config/nds32/isr-library/vec_vid59_4b.S
! 15baffd504affd869f5926b4780ce653  libgcc/config/nds32/isr-library/vec_vid60.S
! 9c4ba0581a46c4ce1650b2b8a85ca98f  libgcc/config/nds32/isr-library/vec_vid60_4b.S
! 98f23a4ff6a013ea25a910b8ffa3c940  libgcc/config/nds32/isr-library/vec_vid61.S
! c8c9e5e746be72100c815dc07424dd57  libgcc/config/nds32/isr-library/vec_vid61_4b.S
! 2f44d39090c469f7f2ed7eab1d2b51fc  libgcc/config/nds32/isr-library/vec_vid62.S
! 97dace91da83200156edc2e0abd686fe  libgcc/config/nds32/isr-library/vec_vid62_4b.S
! 2a07d81f9a1dba825c5782a6ba522954  libgcc/config/nds32/isr-library/vec_vid63.S
! 80383691d6a2785dcc6ddac5185d1c59  libgcc/config/nds32/isr-library/vec_vid63_4b.S
! 81ab652c1f3d9f25f54d39579054d344  libgcc/config/nds32/isr-library/vec_vid64.S
! a4ce98b37406d90311d93b6f8576a994  libgcc/config/nds32/isr-library/vec_vid64_4b.S
! 8d5196838680bb0d75e42d085d1a9126  libgcc/config/nds32/isr-library/vec_vid65.S
! 548c7506dba6df8721ea65a3923c5b89  libgcc/config/nds32/isr-library/vec_vid65_4b.S
! 743f313d0ec200f06277f8f9a56470ef  libgcc/config/nds32/isr-library/vec_vid66.S
! d0a12d2760f028f7bc21389565d0c41c  libgcc/config/nds32/isr-library/vec_vid66_4b.S
! 3eafc43b8ac27edeb1dd42657cf3ba3a  libgcc/config/nds32/isr-library/vec_vid67.S
! ab88db60ac422c675b3680454c4baca7  libgcc/config/nds32/isr-library/vec_vid67_4b.S
! ebdfd0a2a3dc1285c7b652245613e945  libgcc/config/nds32/isr-library/vec_vid68.S
! e60e1d27ab8a8fd433393c26772a6ede  libgcc/config/nds32/isr-library/vec_vid68_4b.S
! 3d80dddcaabe941f2cd16d2179dd4c8c  libgcc/config/nds32/isr-library/vec_vid69.S
! 06c9af4d086369951b8e3c23ba7f405c  libgcc/config/nds32/isr-library/vec_vid69_4b.S
! 08c0ef4c377ded87d222fc45b96273e0  libgcc/config/nds32/isr-library/vec_vid70.S
! 963501e9cfd048cdf45bceed334b9df1  libgcc/config/nds32/isr-library/vec_vid70_4b.S
! 383eecf4ce5c612e588bf23d0172299e  libgcc/config/nds32/isr-library/vec_vid71.S
! 9e48388f21b0d24a9fbb7f3b607ce8e6  libgcc/config/nds32/isr-library/vec_vid71_4b.S
! 456a86c405a6f97366c81779f428a0b5  libgcc/config/nds32/isr-library/vec_vid72.S
! 44b8cd871bc68df4d02456e518a0c0dd  libgcc/config/nds32/isr-library/vec_vid72_4b.S
! 11b950a17c5e5b8c1b3e1d051519e232  libgcc/config/nds32/isr-library/wrh.S
! 0b24a39a6262b95a35de5770db17fa84  libgcc/config/nds32/lib1asmsrc-mculib.S
! 20fc3863d808523522811d7209fc0881  libgcc/config/nds32/lib1asmsrc-newlib.S
! 5a9c7d5045857cef007011114b8d507f  libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c
! 5f1b9d46a72838c5681652dbe70b6172  libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c
! 19720d1939a153feedc2246f0b135b42  libgcc/config/nds32/linux-atomic.c
! e4a87ed3cbe852841dc8d843e2a5c93b  libgcc/config/nds32/linux-unwind.h
! 0b30b0d932d708f5528dabeaf7d25100  libgcc/config/nds32/sfp-machine.h
! 64dbbf6244e346d71f5bc934f96b11fc  libgcc/config/nds32/t-nds32
! 739925128c19af277e91e40060c73f83  libgcc/config/nds32/t-nds32-glibc
! daaf70fc1d97027ce39f3f7f4be5c16f  libgcc/config/nds32/t-nds32-isr
! 130435cf8ca8395dad0b2b4137188c5c  libgcc/config/nds32/t-nds32-mculib
! 3086e7d74293896ad21450268eb5f784  libgcc/config/nds32/t-nds32-newlib
! e9ca5358f35b91ba64c9c3e0b3ba9632  libgcc/config/nios2/crti.S
! a472d3ba53060a2ee924d53ab94b1d79  libgcc/config/nios2/crtn.S
! b2a7dedbe63c0309711c481d9e15221a  libgcc/config/nios2/elf-lib.h
! 53abcef6203061c33de7c9338fc20db6  libgcc/config/nios2/lib2-divmod-hi.c
! 5943232173a001efce3bc4e564d441e3  libgcc/config/nios2/lib2-divmod.c
! 08c415665b6f80d7c100e21dcb9a2cb6  libgcc/config/nios2/lib2-divtable.c
! d119d70e778c246515c3b516611401df  libgcc/config/nios2/lib2-mul.c
! 2f96eacb9b4135ed9632bd311ae067eb  libgcc/config/nios2/lib2-nios2.h
! 60d7858f43f2632994d74d45a35ff989  libgcc/config/nios2/linux-atomic.c
! b2c5c3664e41e2b7dd02c81ba6352d86  libgcc/config/nios2/linux-unwind.h
! 6173f2f671747ea17b03ec7ed88e1e6d  libgcc/config/nios2/sfp-machine.h
  598bde069aeebadde9b08f8703ab2c77  libgcc/config/nios2/t-linux
  058cf7bee1e8fb40a62590a2558c7f76  libgcc/config/nios2/t-nios2
! 996b21a6705c48a1fe75954cb07cfb07  libgcc/config/nios2/tramp.c
  d554f3fc7ee3cecc697c448b8c5f61bb  libgcc/config/no-sfp-machine.h
  b70010a8e3a6734ae04ba484992563c5  libgcc/config/no-unwind.h
! a1edaf712cec3f0f23bc9a15ea786bf4  libgcc/config/nvptx/atomic.c
! 8d61020846abf90f0291920d3d84d8f0  libgcc/config/nvptx/crt0.c
! 3bf35123969620aa2e9bc0709e201f2f  libgcc/config/nvptx/mgomp.c
! a9a5cf7cc5cbeab26bd801c58dd80ddf  libgcc/config/nvptx/nvptx-malloc.h
! c3ca858f8ef9e7d83964a743834b6015  libgcc/config/nvptx/reduction.c
! a2f0aaba262ea7568fe97072e2e4e19f  libgcc/config/nvptx/t-nvptx
! aa4f2158b3f775ac31edb4c000670064  libgcc/config/or1k/lib1funcs.S
! 7ae7644ffa30bd87f48d1bb51d292ea8  libgcc/config/or1k/linux-unwind.h
  bb60ec15ea01e2d3f07f2b944b739c6d  libgcc/config/or1k/sfp-machine.h
  dc51b5d6e7fd35fa1156670d20c6464d  libgcc/config/or1k/t-crtstuff
! e5fc45357997f9e90478a586cddde24c  libgcc/config/or1k/t-or1k
! 008ed19642081b986e4b04f08084ea18  libgcc/config/pa/fptr.c
! 2028ecd7c15f2633fe7eb26c51eb8ec3  libgcc/config/pa/gthr-dce.h
! 6df3ac20eba95111e5cf1b1dbd7ef0f6  libgcc/config/pa/hpux-unwind.h
! 633e1362e97cd08000e056e3347eecf9  libgcc/config/pa/lib2funcs.S
! 7f98610dd0d5b2ef5f604e3f74fde15d  libgcc/config/pa/linux-atomic.c
! 34c0307191bec69746ded96ffaf93366  libgcc/config/pa/linux-unwind.h
! b6bc49e1eb516fac21f91ff799577ed0  libgcc/config/pa/milli64.S
! 16f5a73c8fe4ab583c28a12818b0e0be  libgcc/config/pa/pa64-hpux-lib.h
! 178c1fd14bd271df99f6e06d5a1eb074  libgcc/config/pa/quadlib.c
! 03e8f2b4053af6fc77d4cca1badf9d91  libgcc/config/pa/sfp-exceptions.c
! 90979b5ae36caa4447e315e723f4e315  libgcc/config/pa/sfp-machine.h
! 203fbc7b2984bc51702c9b960a45022d  libgcc/config/pa/stublib.c
! 0ccefa0e31c7242cd97a7d51a2849a2e  libgcc/config/pa/sync-libfuncs.c
  be1d29d3044d55ee3e60d3e74a9e98fe  libgcc/config/pa/t-dimode
  8a3964d4f1eddb14d9260a0a72a23493  libgcc/config/pa/t-hpux
  73420715a92f162a61d33bbfbe7c4dee  libgcc/config/pa/t-hpux10
--- 110764,111343 ----
  3cc3f3d4611f64c4d5fc225a72d8ccc4  libgcc/config/ia64/t-softfp
  7508d41329db54ddeccc7e86a6cafae5  libgcc/config/ia64/t-softfp-compat
  552ede49162d3a4fb9e1e113de11e8b5  libgcc/config/ia64/t-vms
! 5c2fa2b474e076978897abfd4276d7a5  libgcc/config/ia64/tf-signs.c
! 3625d586ab975665d262afe69ccfa949  libgcc/config/ia64/unwind-ia64.c
! 1dfedfb0a0627c930d50de149070da79  libgcc/config/ia64/unwind-ia64.h
! 73aef612eb448073d884444782cd150f  libgcc/config/ia64/vms-crtinit.S
! 867c89ef316cd7cb05511f42e5b62500  libgcc/config/ia64/vms-unwind.h
! ed33843cb7d615866bc3fb669b8efff7  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! 117ed7ea00c94610c2329c07b7fe09d8  libgcc/config/libbid/ChangeLog
! 5cd3e427016c3a5e21b5fc45a6d0c42c  libgcc/config/libbid/_addsub_dd.c
! e36dad1ba6d303d24d5fadbe7e922379  libgcc/config/libbid/_addsub_sd.c
! c44095a32e8f3d04293d78477872c817  libgcc/config/libbid/_addsub_td.c
! 1cf6709f15425fb0863e82d1d7ab3e58  libgcc/config/libbid/_dd_to_df.c
! 8e93cdf6ca29ba790a42624df269c8d1  libgcc/config/libbid/_dd_to_di.c
! 4207ebd623a98ef3b007dd0a640156f0  libgcc/config/libbid/_dd_to_hf.c
! 7ee5aac0939f575bfe293d408dc7ade0  libgcc/config/libbid/_dd_to_sd.c
! 79b1944bb78d98794a1cba1424532ca0  libgcc/config/libbid/_dd_to_sf.c
! 8a6bf7abbf0ab706b257c79accf0b6e8  libgcc/config/libbid/_dd_to_si.c
! 0f8c0d22a98ae1a1e7af4a705cd96966  libgcc/config/libbid/_dd_to_td.c
! be19cefedbb84328d924be6517b37b12  libgcc/config/libbid/_dd_to_tf.c
! 068bef88aa3155d7e0dab2daf275e050  libgcc/config/libbid/_dd_to_udi.c
! e6137169ff6af7fc6ed51238f1b2632c  libgcc/config/libbid/_dd_to_usi.c
! 65ffa901cc9b84ea5f158fc12145f824  libgcc/config/libbid/_dd_to_xf.c
! a6b2ccb687391ce9a8e789d61c221a18  libgcc/config/libbid/_df_to_dd.c
! 051523e35542f536885bc01fab6a3c55  libgcc/config/libbid/_df_to_sd.c
! 223581f5f0965063b34b1812eb4d86ff  libgcc/config/libbid/_df_to_td.c
! dfaabc72ab8083d162408e2b5e2a4ea3  libgcc/config/libbid/_di_to_dd.c
! 991bf6c7370eb6b559f8113569214809  libgcc/config/libbid/_di_to_sd.c
! eb126e20ddbe697d14e7805dbaaa3c3b  libgcc/config/libbid/_di_to_td.c
! 61d720e181b38109419ecfc29d2e8aab  libgcc/config/libbid/_div_dd.c
! 54f20fa7bad78b47e5463dc9147cd470  libgcc/config/libbid/_div_sd.c
! e189b38f874a7215f71c6e6f70b0120f  libgcc/config/libbid/_div_td.c
! bf87162cb2481209c3bac338d27d0756  libgcc/config/libbid/_eq_dd.c
! 3d70ad18dcaf29f727f5ff3d5d78be77  libgcc/config/libbid/_eq_sd.c
! 8d9226794baba74e66dfc39bdcbf8d5d  libgcc/config/libbid/_eq_td.c
! 24ce6fe6bbd78ca857ce5d55990ca8aa  libgcc/config/libbid/_ge_dd.c
! 1703d2d031d57014ffb39c97c9036105  libgcc/config/libbid/_ge_sd.c
! b5d8bfd57917adddd2043f5274e8b82f  libgcc/config/libbid/_ge_td.c
! 7fdf9d43acefcb0d04b3fe70608a68f8  libgcc/config/libbid/_gt_dd.c
! a0454c88594a25dcf84425a520948204  libgcc/config/libbid/_gt_sd.c
! efe6341ad139bd3693fc425bd14ccae9  libgcc/config/libbid/_gt_td.c
! 722b412542d38a238aee3238dd331777  libgcc/config/libbid/_hf_to_dd.c
! a8b8e1811f5743da8b876da6aed7bb6c  libgcc/config/libbid/_hf_to_sd.c
! 91a55b33bc88bc230c32e7a9b95d688c  libgcc/config/libbid/_hf_to_td.c
! f7bdfdc3757e6ae132d163cb4c1dfae4  libgcc/config/libbid/_isinfd128.c
! 356bbc27535fed3310862df1dddcbff6  libgcc/config/libbid/_isinfd32.c
! 08f6cc96ec64227ee2bbafc7392379ab  libgcc/config/libbid/_isinfd64.c
! 0b2c13d8391a94277bd10e20063fac0a  libgcc/config/libbid/_le_dd.c
! 4b4a896102f9ccd8522ab1b7102398f2  libgcc/config/libbid/_le_sd.c
! dcab851e95caae37503970c21da9a6bc  libgcc/config/libbid/_le_td.c
! 447d8e36c972536ab5e81ff9d020da9d  libgcc/config/libbid/_lt_dd.c
! a3a9dcf31a57f2c53a54590be6179503  libgcc/config/libbid/_lt_sd.c
! 5fe73f4c1ca2b13902c82386beee654f  libgcc/config/libbid/_lt_td.c
! d241b09c6ddb703a456dcb763fb78360  libgcc/config/libbid/_mul_dd.c
! 410ee5c9a501b5f975041db47b654872  libgcc/config/libbid/_mul_sd.c
! 8605299d96fe7f0c1d460772b4676559  libgcc/config/libbid/_mul_td.c
! e34f40227f0a78df0ddc6581c9f5a68a  libgcc/config/libbid/_ne_dd.c
! 54794037dd6b84071c21a18e3ceb92a3  libgcc/config/libbid/_ne_sd.c
! 97e4b425ec904ebea46d8ea91f5c6d86  libgcc/config/libbid/_ne_td.c
! e56b41dcb971c69726da5e3c6d61cacc  libgcc/config/libbid/_sd_to_dd.c
! c0ef1664687e75e25cc96f2f3bc3aa32  libgcc/config/libbid/_sd_to_df.c
! bae9bcc0af70e607e19fd6a0412af13f  libgcc/config/libbid/_sd_to_di.c
! e9cd7b20298fdef3eed2cbf9104b6587  libgcc/config/libbid/_sd_to_hf.c
! 0f15b34439ccbdba7c7f63caf2294113  libgcc/config/libbid/_sd_to_sf.c
! 694a68e1768df6fc60e51a682ba8eb27  libgcc/config/libbid/_sd_to_si.c
! 5deaeebd9bf60eb75703a4a234ba21bc  libgcc/config/libbid/_sd_to_td.c
! 6d3b1635787f90756e4d17076ae2909e  libgcc/config/libbid/_sd_to_tf.c
! a6cddd7953c4514f56e0b5b91b58a1d7  libgcc/config/libbid/_sd_to_udi.c
! 0763bfc92ab80d0fcf645d19481b6987  libgcc/config/libbid/_sd_to_usi.c
! 08c4dc69dc7fc3daeef5f9d23bb02fa4  libgcc/config/libbid/_sd_to_xf.c
! 5883084122b559a216f7aae3761610e8  libgcc/config/libbid/_sf_to_dd.c
! 393e69f464303f8a2ee55dfa59a8a6b7  libgcc/config/libbid/_sf_to_sd.c
! 0ff4ffe1a6c78f72401e8225a7bcf755  libgcc/config/libbid/_sf_to_td.c
! d7c9f62d90ee43423b7a4c39c136232c  libgcc/config/libbid/_si_to_dd.c
! 23ba6c3e77510e7c750fb74d662e9cec  libgcc/config/libbid/_si_to_sd.c
! b007290fffbacd51cbba9d89f637ade6  libgcc/config/libbid/_si_to_td.c
! afe338784a1cb9a4f1beefcdba8c4138  libgcc/config/libbid/_td_to_dd.c
! 40ee0c4cb8529597316c6fe0540031d2  libgcc/config/libbid/_td_to_df.c
! 75bb362ba3bc1282c910b83681f0cf36  libgcc/config/libbid/_td_to_di.c
! bb1d17a9e39246132534a956b974201f  libgcc/config/libbid/_td_to_hf.c
! 0c3f528344cfb02d7095b4f61d883f09  libgcc/config/libbid/_td_to_sd.c
! 1deb19553e677c6814d700018b5b667c  libgcc/config/libbid/_td_to_sf.c
! 218a264e8b9403ea1590b097c5741714  libgcc/config/libbid/_td_to_si.c
! a79a1e27514a7658c893a2f9682eb341  libgcc/config/libbid/_td_to_tf.c
! 0c4f41e5362216c6318df86a8563d9dc  libgcc/config/libbid/_td_to_udi.c
! f485736e1d4cc6bd0969e08975b1b8c6  libgcc/config/libbid/_td_to_usi.c
! 207442ac83e4675a6465ac01722fd8ea  libgcc/config/libbid/_td_to_xf.c
! ceb6fc51176fb2fafe3a9e2e36dc6ecd  libgcc/config/libbid/_tf_to_dd.c
! dacd6b84cd2011259177fbc89e341699  libgcc/config/libbid/_tf_to_sd.c
! ace207d2414369df28f6ba64308c5051  libgcc/config/libbid/_tf_to_td.c
! 03062b0d3814ae74095f95372aa77ceb  libgcc/config/libbid/_udi_to_dd.c
! 29db6904b8a122cb3ebb7970d2f39470  libgcc/config/libbid/_udi_to_sd.c
! af8efc862ac5097479c660b7550fe68b  libgcc/config/libbid/_udi_to_td.c
! b37023c790a6d2cc2de82b233d9b60e5  libgcc/config/libbid/_unord_dd.c
! 821bfd07f00abe4a53ef0f060518b8a7  libgcc/config/libbid/_unord_sd.c
! bdcdf8460ef897e31c330fe741e52188  libgcc/config/libbid/_unord_td.c
! bb1ba87d67066fef251c476b961f93ce  libgcc/config/libbid/_usi_to_dd.c
! 42182a26b7408bc7beea40f84070a0ab  libgcc/config/libbid/_usi_to_sd.c
! 44dec0482cf5f7d4816d03224db9ad57  libgcc/config/libbid/_usi_to_td.c
! 32a2d516a357c3540efa23f7b50e0353  libgcc/config/libbid/_xf_to_dd.c
! bfef0c39d2e18e1590bf85f6afaaf9c2  libgcc/config/libbid/_xf_to_sd.c
! 88df42e1348987192fe7e467b3862b3e  libgcc/config/libbid/_xf_to_td.c
! 3b9a12369f034502c1a3c982c644293d  libgcc/config/libbid/bid128.c
! 8971ab85c2f33b55a445f0f9337ed331  libgcc/config/libbid/bid128_2_str.h
! 3630f614f3c5baed61fa5b5b6893da42  libgcc/config/libbid/bid128_2_str_macros.h
! e836871902e82a5e376bdd0794f0beab  libgcc/config/libbid/bid128_2_str_tables.c
! 4ae2e9585f7f68e0fbf01d51287ee599  libgcc/config/libbid/bid128_add.c
! afd6e2e596fa685d0a1669cde95a2097  libgcc/config/libbid/bid128_compare.c
! edd3de8d977c5e231a0ac0f5f1d5338f  libgcc/config/libbid/bid128_div.c
! ebb538d19872d8a99961ff5bff534910  libgcc/config/libbid/bid128_fma.c
! b4411cdd1a08d141bc293d73b476350f  libgcc/config/libbid/bid128_logb.c
! 618b888d97b3e477f9ec7a3aeaecced4  libgcc/config/libbid/bid128_minmax.c
! 8d663d5b0b43a8c8d716b62dc8e1d4e8  libgcc/config/libbid/bid128_mul.c
! 685109e3f821d2308e75eabd60b7cff4  libgcc/config/libbid/bid128_next.c
! 59fb6c8023e798913180f27b241843ef  libgcc/config/libbid/bid128_noncomp.c
! 21c548973d660b86b45f2a4d01332512  libgcc/config/libbid/bid128_quantize.c
! 00d8651e2b007712cca40554215bc45a  libgcc/config/libbid/bid128_rem.c
! 689924f7cf7e2db168f7e6a0e32592c6  libgcc/config/libbid/bid128_round_integral.c
! 3e035478ac31ad563c4529f4e94b661e  libgcc/config/libbid/bid128_scalb.c
! 633fa66d23625a4de253c7728f727b2a  libgcc/config/libbid/bid128_sqrt.c
! fbb52269b4b1898aa3503298d3df8504  libgcc/config/libbid/bid128_string.c
! 87935a519781386dadc978f45d99baa9  libgcc/config/libbid/bid128_to_int16.c
! 1fa58480e7ba615dec06172276b43faf  libgcc/config/libbid/bid128_to_int32.c
! 78fab30686a92f0a5743df16a6c46079  libgcc/config/libbid/bid128_to_int64.c
! ed7595e65d0145c96f529c82678a5323  libgcc/config/libbid/bid128_to_int8.c
! 85a8709d08362e70fc3a8bd7236deb97  libgcc/config/libbid/bid128_to_uint16.c
! b3639602aa6914429c42a67c56a4eac3  libgcc/config/libbid/bid128_to_uint32.c
! f0e687a2772e479d56b8a906e6876e03  libgcc/config/libbid/bid128_to_uint64.c
! e69ac31751a696953bcee1735bef9232  libgcc/config/libbid/bid128_to_uint8.c
! 3e4f83c77003669cdc93169ae89bf29e  libgcc/config/libbid/bid32_to_bid128.c
! 7b86f0cda7f0ee44ae4ea9111df00225  libgcc/config/libbid/bid32_to_bid64.c
! ad0c7c07db8339ffb3d1941979e21691  libgcc/config/libbid/bid64_add.c
! 5410490c806940016bcd18ec6f4e3b68  libgcc/config/libbid/bid64_compare.c
! 85706083cbcefdb982ae020a1b1d6c66  libgcc/config/libbid/bid64_div.c
! 491fd7d68c1561e03c72183da257192a  libgcc/config/libbid/bid64_fma.c
! 53c0af598ef8fef16cd6e60a76f46ba5  libgcc/config/libbid/bid64_logb.c
! c18adb58481dd52323c1699ca70eae22  libgcc/config/libbid/bid64_minmax.c
! 4d2d93a80e3770a7be599f32cfbbe906  libgcc/config/libbid/bid64_mul.c
! 483e326c6d102bc197eeb3d66f6075ba  libgcc/config/libbid/bid64_next.c
! 2f6a08caab398bae27e430b71f73c19e  libgcc/config/libbid/bid64_noncomp.c
! 88d67db1a56398b25b593ecc4e91cd06  libgcc/config/libbid/bid64_quantize.c
! 1f540678e9e06f95f1f6e8a93d94be63  libgcc/config/libbid/bid64_rem.c
! 6d0d318399debc04c93d5fc037e9e377  libgcc/config/libbid/bid64_round_integral.c
! c673253ed935f365ac12a9d23267789c  libgcc/config/libbid/bid64_scalb.c
! 084154ce854be3982cff3d9ca55f1eb6  libgcc/config/libbid/bid64_sqrt.c
! 605ff6e92d6c6d4ec1267e12bec6e5e5  libgcc/config/libbid/bid64_string.c
! 5730f7689c31dfe1daef0f3918a022dc  libgcc/config/libbid/bid64_to_bid128.c
! 18aef3e86c68de5a72b30ba1dae529ca  libgcc/config/libbid/bid64_to_int16.c
! 17529270f28dbe8012a29beccdcf4ade  libgcc/config/libbid/bid64_to_int32.c
! c11bc7c078b2d731620904a4a4935dec  libgcc/config/libbid/bid64_to_int64.c
! 1db3e17abaff9eaaf024aaff735e126d  libgcc/config/libbid/bid64_to_int8.c
! a34fd4801994dfbcf71ea92b3d00d053  libgcc/config/libbid/bid64_to_uint16.c
! 1a6dbe30a76b57d92ef0d9100d683ae9  libgcc/config/libbid/bid64_to_uint32.c
! 30662950ab6abf3fe0cdd20ae4b6d4eb  libgcc/config/libbid/bid64_to_uint64.c
! bbfcf6b58323de4ede7587425bb99b28  libgcc/config/libbid/bid64_to_uint8.c
! 3a970eb896137dc901f355dadcfbaac0  libgcc/config/libbid/bid_b2d.h
! 19887747e2c13e44a4be16a4944fe89c  libgcc/config/libbid/bid_binarydecimal.c
! 54785f881bf2f82a4885337f52d5a25d  libgcc/config/libbid/bid_conf.h
! dfd7af80f8e03275c327150db6e5728e  libgcc/config/libbid/bid_convert_data.c
! 0a1abbd6b36ea0b251118058196ed8ae  libgcc/config/libbid/bid_decimal_data.c
! 49f5d1ccbb8b77e3bf9e0b56344286fd  libgcc/config/libbid/bid_decimal_globals.c
! d7f3eadc326feec1290f66b1d996544a  libgcc/config/libbid/bid_div_macros.h
! 181fbcd0a77206d531efe088ec91ea9d  libgcc/config/libbid/bid_dpd.c
! bc43c2db41fd1d5b1ba45880708bd48d  libgcc/config/libbid/bid_flag_operations.c
! be38e8858b3b3cd72cc0fafb66258f49  libgcc/config/libbid/bid_from_int.c
! 7a53945258da5254e3af16de1ab6fea6  libgcc/config/libbid/bid_functions.h
! 51e6e4e2e0aca3981e5ff7a173f27445  libgcc/config/libbid/bid_gcc_intrinsics.h
! 88e4dd655099cd33f0426a126628d192  libgcc/config/libbid/bid_inline_add.h
! 1dfe0ea35db4f81a3cc1dbac23be6f68  libgcc/config/libbid/bid_internal.h
! 975a0ad5b438c566f066c4930db2000d  libgcc/config/libbid/bid_round.c
! 1a5a16f741d4fde02c030bdb401dae38  libgcc/config/libbid/bid_sqrt_macros.h
! bfea11b0d5d5e9f2bfc66288ad4851f3  libgcc/config/libgcc-glibc.ver
  a5b43383f528298ff2dc85061452e1e6  libgcc/config/libgcc-libsystem.ver
! 5e06a672d1965ad0268ea969800248a2  libgcc/config/lm32/_ashlsi3.S
! 38fb4d0aaca504f33c1298b7a844c64a  libgcc/config/lm32/_ashrsi3.S
! dbe72ae362644089759bf9207746a489  libgcc/config/lm32/_divsi3.c
! 89d3d9c5e063a5e56eb496841ec555c2  libgcc/config/lm32/_lshrsi3.S
! 0a1e0d03ffa436fef720785397371af0  libgcc/config/lm32/_modsi3.c
! 1f25e88be275bfe0b35f35423271994f  libgcc/config/lm32/_mulsi3.c
! 05000d3567e91726abd7cd495ab75a4e  libgcc/config/lm32/_udivmodsi4.c
! 88d2aa55b624d481763a6d4b9c503f60  libgcc/config/lm32/_udivsi3.c
! 2bbe5c755a80b5a0493fb997ceade273  libgcc/config/lm32/_umodsi3.c
! 805d66909014d088e58dc2578eacec84  libgcc/config/lm32/crti.S
! 5157b5d992ef09f2f0b20b9aaa0d24ca  libgcc/config/lm32/crtn.S
! 38c5d0a754fb24ba31a3560911da4d28  libgcc/config/lm32/libgcc_lm32.h
  813910d184e034c80a518f2ba3c4e1a5  libgcc/config/lm32/sfp-machine.h
  331dd855f33aa7a09d25fc757cedf2cf  libgcc/config/lm32/t-elf
  d6d4b530a7539331e6e553f26928de4e  libgcc/config/lm32/t-lm32
  df59d7c87fc0d2f761461ac4ba7ec440  libgcc/config/lm32/t-uclinux
! 288269ef3d0eb3ab5d9be8aa6429cd80  libgcc/config/loongarch/crtfastmath.c
! 1728e0155dd73aa6d79cb8f83e14b22c  libgcc/config/loongarch/linux-unwind.h
! 7656309768624fdf071573e49d81c406  libgcc/config/loongarch/sfp-machine.h
  6cd85196ae9a504ff938607f275f760e  libgcc/config/loongarch/t-crtstuff
  5b9c4ae086bab2fa0eb006a6223eb270  libgcc/config/loongarch/t-loongarch
  5e2260f13769a960c8e1f24b0c9847e4  libgcc/config/loongarch/t-loongarch64
  011afb1a0cc0aae0a4c465e6aefcafda  libgcc/config/loongarch/t-softfp-tf
! 3b456edafd0ab43b0e67dd29b7ac71e9  libgcc/config/m32c/lib1funcs.S
! fab2edc3daba136b4d0defcec3108c7a  libgcc/config/m32c/lib2funcs.c
  9f1fc3a0f039273ded002a6713908bd3  libgcc/config/m32c/t-m32c
! 4e49f8294c86a61dd1dec4a78b6fc66b  libgcc/config/m32c/trapv.c
! 5d1ce10ed22a85f9b9f9aeaa4183d68b  libgcc/config/m32r/initfini.c
  e252c161ec4eb09d3b5a62d902b3d00f  libgcc/config/m32r/t-m32r
! 22bcf23b0317b0cf894dceb40951d81a  libgcc/config/m68k/crti.S
! a7dce1af00b1d55a0cdf6a5eaf28a0b9  libgcc/config/m68k/crtn.S
! 4141a7ba477997d415bc31df2a244177  libgcc/config/m68k/fpgnulib.c
! 3571f0c8887c3e07c19588c97233157b  libgcc/config/m68k/lb1sf68.S
! 36afe875bdb0c422977ea89ec3af2761  libgcc/config/m68k/linux-atomic.c
! 7d7622917a58f86647b75065fcbb71c6  libgcc/config/m68k/linux-unwind.h
  2e4fd3e401c9159da9f32d5965b5afa1  libgcc/config/m68k/t-floatlib
  de217c41c217f4341d6d546afa9a79f2  libgcc/config/m68k/t-linux
  4e281c631e54b8912258f84196fec9e6  libgcc/config/m68k/t-slibgcc-elf-ver
! ae69965d06d5da213dd66e0c69ca479f  libgcc/config/mcore/crti.S
! 732d0ca6163074f24e2a9518e9998198  libgcc/config/mcore/crtn.S
! c0e5ef2a767ad17e79d3e3c9d89e2827  libgcc/config/mcore/lib1funcs.S
  ef74fd63202d842bfe7120864186128c  libgcc/config/mcore/t-mcore
! ff0e805daf15b252ed177cabc8a80d23  libgcc/config/microblaze/crti.S
! ca9541fc2330edcc337122a65d9e3b5b  libgcc/config/microblaze/crtn.S
! c033368d9c8de022249693c4c81a4d68  libgcc/config/microblaze/divsi3.S
! dc8ce16836d78e22294b2f1ca1ca8c0e  libgcc/config/microblaze/divsi3_table.c
! c82c475885d10c6fef4315324cd77721  libgcc/config/microblaze/moddi3.S
! d5bf794a444ed9c3bbdce19709ffe1a1  libgcc/config/microblaze/modsi3.S
! f3ece1bacecf7b53227e43146b00bd71  libgcc/config/microblaze/muldi3_hard.S
! 3b0b4f3f1dfadcd6a340220ab73aef8d  libgcc/config/microblaze/mulsi3.S
! f7c94d15bf9e19098f4513e9b1f9e639  libgcc/config/microblaze/stack_overflow_exit.S
  702cd2045c2c31581ecd56232d96d5f5  libgcc/config/microblaze/t-microblaze
! eb919c572b7f73b2dd3a5935f4898a3a  libgcc/config/microblaze/udivsi3.S
! f881ad06d497f5cf39b09ea688c14de9  libgcc/config/microblaze/umodsi3.S
! 8eefcd1e523d4e8efd71c9da78081395  libgcc/config/mips/crtfastmath.c
! 9fdafee72019f17dd67b3254c29f078e  libgcc/config/mips/crti.S
! 444c2e6680a90358b90211bb0740cb2a  libgcc/config/mips/crtn.S
  f69b446f168701e4fad37a3fa7bf7a2a  libgcc/config/mips/gnustack.h
! 68e8ec883d3359a4ebddbcb6bfef2b81  libgcc/config/mips/gthr-mipssde.h
! 421572cc17398a986ae362f58733197f  libgcc/config/mips/lib1funcs.S
! 679bb514adc931e62c660360917c12c7  libgcc/config/mips/lib2funcs.c
! d58170fbc2f34bcd34f8a876cffa31b1  libgcc/config/mips/libgcc-mips.ver
! bfe948db85bc0357bb39eb0271d3cc3d  libgcc/config/mips/libgcc-mips16.ver
! 5cf9f2edbd62cb532893d0711554c92e  libgcc/config/mips/linux-unwind.h
! b89ebce8690fd9ade2069ba35c0ce1d7  libgcc/config/mips/mips16.S
! 28b98c842fd0613157e5daf4458c2888  libgcc/config/mips/sfp-machine.h
  5b43c15f4e003338742d215bcfdf5029  libgcc/config/mips/t-crtstuff
  33f2c96b7ccbbb062839ec1e7329e6bb  libgcc/config/mips/t-elf
! 3a02ac9d841ae97e7bfb7f570f95e179  libgcc/config/mips/t-mips
! 5501fd544cd21775918a29d30acddcdd  libgcc/config/mips/t-mips16
  5e2260f13769a960c8e1f24b0c9847e4  libgcc/config/mips/t-mips64
  6403b3d85f0ed6751174f1088d074f62  libgcc/config/mips/t-sdemtk
  011afb1a0cc0aae0a4c465e6aefcafda  libgcc/config/mips/t-softfp-tf
  532a76f856d3755b780a19a91bdd1654  libgcc/config/mips/t-vr
! bb7b823d60053e9dba53d1446f6a17b0  libgcc/config/mips/vr4120-div.S
! 1de15d57b1b5d1ec279f9578cda197d8  libgcc/config/mmix/crti.S
! fd7f0095099619a6d22b8067853aff99  libgcc/config/mmix/crtn.S
  41478efd1b19b3c7c9426d8e843f3b39  libgcc/config/mmix/t-mmix
! 825ea55ed08c10c38a32e4e76a411526  libgcc/config/moxie/crti.S
! 76bb6dec2b8ce1bfbade37621f09b1e0  libgcc/config/moxie/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/moxie/sfp-machine.h
  9b7000ea173c226d39e6a6dc116fdaf1  libgcc/config/msp430/cmpd.c
! 3cb65a8fa4475dc5a96da6333219d6ae  libgcc/config/msp430/cmpsi2.S
! 79a6b9ac9ecf2f43451d1c49333c30ff  libgcc/config/msp430/epilogue.S
  072a56de362c5e857510ca8401f30aa8  libgcc/config/msp430/floathidf.c
  07461b1abb61437fbc73d74801f6300b  libgcc/config/msp430/floathisf.c
  88792e557553f37a296bd8127a0dfc88  libgcc/config/msp430/floatunhidf.c
  754bbc793bc0e81b0a2168df9f47e1f3  libgcc/config/msp430/floatunhisf.c
! ea040c9d4d36a576ab4d0de8ec3c8347  libgcc/config/msp430/lib2bitcountHI.c
! 251f75016b75d12c217aca98c6a9493f  libgcc/config/msp430/lib2divHI.c
! 18a9789f3f624a5fe4c3548802d0d10e  libgcc/config/msp430/lib2divQI.c
! 01970a14e591a55a0fa3ad6df5f50054  libgcc/config/msp430/lib2divSI.c
! 6b76b4ed7e4530b61845cccad60773b2  libgcc/config/msp430/lib2hw_mul.S
! 7bce741a16b9b635259f7a57d46979fc  libgcc/config/msp430/lib2mul.c
! b31279c76badba236c1480511d3ce9f2  libgcc/config/msp430/lib2shift.c
  585dda5cb05623da62e4f4aad3bdbbb6  libgcc/config/msp430/mpy.c
! 4f43ca186137d63a3faf257043be6eda  libgcc/config/msp430/msp430-divmod.h
! ca4257e7bbd37d4dab38471c49dc0fb5  libgcc/config/msp430/msp430-mul.h
! 134c1be92727b3f7120fc6e79d848e58  libgcc/config/msp430/slli.S
! 60e7863ca7fb803471c3390ca9433523  libgcc/config/msp430/srai.S
! bf6d0a4f624a6e387d5db68fc64b5491  libgcc/config/msp430/srli.S
! f4210baed4b5006786f11d277661facf  libgcc/config/msp430/t-msp430
! d5827a378ee9f78fd8eb16b63e5df218  libgcc/config/nds32/crtzero.S
! 2cd78807a24ba5e3d65becde80e31fb1  libgcc/config/nds32/initfini.c
! 420b52fea4c3f36d7104903124e7ccda  libgcc/config/nds32/isr-library/adj_intr_lvl.inc
! 228b377318048effef0982a6c58b2616  libgcc/config/nds32/isr-library/excp_isr.S
! c788a3ac2d58b50eff081528b2907ae8  libgcc/config/nds32/isr-library/excp_isr_4b.S
! 0d137fce03cd6a7da81c358e37fb50d1  libgcc/config/nds32/isr-library/intr_isr.S
! 97b90003f1226c4a63b5c7f5154ab836  libgcc/config/nds32/isr-library/intr_isr_4b.S
! cff76808bbfb2a1c85caf64f99f4999d  libgcc/config/nds32/isr-library/jmptbl_vid00.S
! a536bb842219fd40d7fbd3a6e5cfe474  libgcc/config/nds32/isr-library/jmptbl_vid01.S
! 537bb936d2b3e4d0ad6a6fb88cc2055b  libgcc/config/nds32/isr-library/jmptbl_vid02.S
! 862e799ed3c5354e5ad2174378bf5ee8  libgcc/config/nds32/isr-library/jmptbl_vid03.S
! 3f4632aada2a0d237fb0d49988f8d780  libgcc/config/nds32/isr-library/jmptbl_vid04.S
! c2ff6244ff1f3f813b9150e8b5f49330  libgcc/config/nds32/isr-library/jmptbl_vid05.S
! 6f4cfe62d137386666fa4540d7f6fe19  libgcc/config/nds32/isr-library/jmptbl_vid06.S
! 5d53ef46cdf4f77ae7d2789a0d48ef98  libgcc/config/nds32/isr-library/jmptbl_vid07.S
! db4d9b9547435cea567e202f33152efe  libgcc/config/nds32/isr-library/jmptbl_vid08.S
! f7a27d402f4734076d40ae3e41c9b7f2  libgcc/config/nds32/isr-library/jmptbl_vid09.S
! d9ac1bae2aa0d5c420dc2427bfec96fa  libgcc/config/nds32/isr-library/jmptbl_vid10.S
! 62451abf1c793a8cf911ddffa4924a71  libgcc/config/nds32/isr-library/jmptbl_vid11.S
! c7e700b3427c1e8e621a1002189c0067  libgcc/config/nds32/isr-library/jmptbl_vid12.S
! fad78a3d7b129d7deadba91140dd8611  libgcc/config/nds32/isr-library/jmptbl_vid13.S
! 6f1a56c64221b1ac24be14c389008f71  libgcc/config/nds32/isr-library/jmptbl_vid14.S
! 76d6f0f0af0c18213e25382a28bab37d  libgcc/config/nds32/isr-library/jmptbl_vid15.S
! 53b90331ece377b546c15fdaebb38f64  libgcc/config/nds32/isr-library/jmptbl_vid16.S
! b544a79f7e8c028e98ce2467742eb5c4  libgcc/config/nds32/isr-library/jmptbl_vid17.S
! 715e674c5616d88f3b433bac35d09ba6  libgcc/config/nds32/isr-library/jmptbl_vid18.S
! 423653aa7544ccbbf20f636fede4803f  libgcc/config/nds32/isr-library/jmptbl_vid19.S
! 31d0920089d86209dd2b3026ff224746  libgcc/config/nds32/isr-library/jmptbl_vid20.S
! d14bfa7c0d27c1159a50ecf80367723a  libgcc/config/nds32/isr-library/jmptbl_vid21.S
! 4e89588c63164969287d8dd06ae0c865  libgcc/config/nds32/isr-library/jmptbl_vid22.S
! 70dfa13413c0ef00dc0b9e7d9a12d90b  libgcc/config/nds32/isr-library/jmptbl_vid23.S
! 091283f43768b8ca1e4cb7a692b8f0b8  libgcc/config/nds32/isr-library/jmptbl_vid24.S
! 3981dbad593ffea4ee22dcc6ed740b66  libgcc/config/nds32/isr-library/jmptbl_vid25.S
! 27d9e365e46e0d1068c1e1e4bc1b5d5f  libgcc/config/nds32/isr-library/jmptbl_vid26.S
! 8941c552ba0d03d91555b89a66630771  libgcc/config/nds32/isr-library/jmptbl_vid27.S
! 2dfe4feeecf5d9e30a872f31035f5ef2  libgcc/config/nds32/isr-library/jmptbl_vid28.S
! 98925cf1388207d8e3a6afc72187fb4d  libgcc/config/nds32/isr-library/jmptbl_vid29.S
! d45dcc444ae13821497d37aacbb9a150  libgcc/config/nds32/isr-library/jmptbl_vid30.S
! ff4f83849ffc5f17cae8b808f3e59d54  libgcc/config/nds32/isr-library/jmptbl_vid31.S
! 2abce60bda56bcbf48540e65746a30fd  libgcc/config/nds32/isr-library/jmptbl_vid32.S
! ed6790e7f713a6c7c1cc9bb2798c725c  libgcc/config/nds32/isr-library/jmptbl_vid33.S
! 90558a2eb4da8305bc0046056412420a  libgcc/config/nds32/isr-library/jmptbl_vid34.S
! 6fe3e7fba3d0060932a8c6e89360f547  libgcc/config/nds32/isr-library/jmptbl_vid35.S
! cfcd1a5518e2def08323de6a500ff154  libgcc/config/nds32/isr-library/jmptbl_vid36.S
! c27d9a43a606201bd4435df03c733b02  libgcc/config/nds32/isr-library/jmptbl_vid37.S
! 91ce1a289ebf222367335f0e08dee272  libgcc/config/nds32/isr-library/jmptbl_vid38.S
! 0ca4647283cef2b52765e168a86e5a44  libgcc/config/nds32/isr-library/jmptbl_vid39.S
! 1600a31c25069c071fbdbb05f9bf7e43  libgcc/config/nds32/isr-library/jmptbl_vid40.S
! a1ecbb6dfdf7b506729d900e4eddc062  libgcc/config/nds32/isr-library/jmptbl_vid41.S
! cd7ce92b224da8a92a8a6b73b56e825e  libgcc/config/nds32/isr-library/jmptbl_vid42.S
! f02d25e270d013abd008270ee06b211f  libgcc/config/nds32/isr-library/jmptbl_vid43.S
! ca2e7a38abde6d12d799680c38d5a0b0  libgcc/config/nds32/isr-library/jmptbl_vid44.S
! b83a39cdaa056a4eab7efae6e1d9a6c3  libgcc/config/nds32/isr-library/jmptbl_vid45.S
! 482b1abd48ad42c1493f42ae1f6ee896  libgcc/config/nds32/isr-library/jmptbl_vid46.S
! 6d38ebfa25bf854ac2ee8633c6ca824a  libgcc/config/nds32/isr-library/jmptbl_vid47.S
! 5d09831f7458b6fc120664fc180199af  libgcc/config/nds32/isr-library/jmptbl_vid48.S
! dd76959e59bca711147c7cf8d5fcbd83  libgcc/config/nds32/isr-library/jmptbl_vid49.S
! 5b3b90b359dc69e468dec1b689835266  libgcc/config/nds32/isr-library/jmptbl_vid50.S
! 68ac447fdff83ba478d0404a8c2c2b4d  libgcc/config/nds32/isr-library/jmptbl_vid51.S
! e15737a2a476affadc5fabfa20fa3209  libgcc/config/nds32/isr-library/jmptbl_vid52.S
! e429644be5c70781a1928b304a3170c5  libgcc/config/nds32/isr-library/jmptbl_vid53.S
! 4dffe3bc2ab3d0fdeb56756499739c29  libgcc/config/nds32/isr-library/jmptbl_vid54.S
! a70e1584b803992ae4013b18eb0a4a0c  libgcc/config/nds32/isr-library/jmptbl_vid55.S
! cdfdf7062ac9e20eb30678eaed739fee  libgcc/config/nds32/isr-library/jmptbl_vid56.S
! 4f251b5c9d0b77b7483fee41f45b932c  libgcc/config/nds32/isr-library/jmptbl_vid57.S
! 8097389cfc63fcb68934b5b4888db642  libgcc/config/nds32/isr-library/jmptbl_vid58.S
! 04031b196973819f3437d34a6552dcbf  libgcc/config/nds32/isr-library/jmptbl_vid59.S
! 5f77e8adb32a284805676ec562cfab97  libgcc/config/nds32/isr-library/jmptbl_vid60.S
! 9ba3d3e04e849bf620139b2011a5341d  libgcc/config/nds32/isr-library/jmptbl_vid61.S
! 9848f2cc1a9b43399b4257dfaff65d68  libgcc/config/nds32/isr-library/jmptbl_vid62.S
! 00b0b8710221807cb813d7f92568d837  libgcc/config/nds32/isr-library/jmptbl_vid63.S
! 39e35c5a3c6fb5558bbb4028ba9b712c  libgcc/config/nds32/isr-library/jmptbl_vid64.S
! 89724d70794f8eb2808fc4bd04a01803  libgcc/config/nds32/isr-library/jmptbl_vid65.S
! 6d8cfd7c7feb9d84573eb6ba661f1289  libgcc/config/nds32/isr-library/jmptbl_vid66.S
! 613caefb478d6f787c2e7ec4d78e3437  libgcc/config/nds32/isr-library/jmptbl_vid67.S
! ff3287098d19772d32b1e8fc23697d22  libgcc/config/nds32/isr-library/jmptbl_vid68.S
! 95e3a871d19bce6a234cc7a5839b7396  libgcc/config/nds32/isr-library/jmptbl_vid69.S
! 36066b7ffebd3f9fac653c8e50f8351e  libgcc/config/nds32/isr-library/jmptbl_vid70.S
! db872d20d5be1b00e2d9707955086445  libgcc/config/nds32/isr-library/jmptbl_vid71.S
! a9364589a7db34b6df73c9e33682e0c8  libgcc/config/nds32/isr-library/jmptbl_vid72.S
! 2f8cd653db2ddbbff124b6fd70e7a63b  libgcc/config/nds32/isr-library/nmih.S
! 273e7ebb99adcaffdbe93c38657cb06a  libgcc/config/nds32/isr-library/reset.S
! 3c7a6cbd4b8840d945477242e4636985  libgcc/config/nds32/isr-library/reset_4b.S
! b345d7238b492881d17bf17822c5e678  libgcc/config/nds32/isr-library/restore_all.inc
! 486d76e16b820bcae9478ac99a7a609e  libgcc/config/nds32/isr-library/restore_fpu_regs.inc
! 25d9c39804768d365e13f850edcfcdc2  libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc
! 0bb501cf8a3b421224b24bb32bbc2c4d  libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc
! 7a05405e4dabc831f34815181a7a7406  libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc
! 62625eac0f02796b8dda52c5c8b139d0  libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc
! 99d17f042499f982613f85dacd2969bf  libgcc/config/nds32/isr-library/restore_mac_regs.inc
! a549895154d47aec5f600dfccda81742  libgcc/config/nds32/isr-library/restore_partial.inc
! 6c2c15005e8cd291f7de89bb3cb54121  libgcc/config/nds32/isr-library/restore_usr_regs.inc
! e4136fbf9227ed2425413fa72acd9ef8  libgcc/config/nds32/isr-library/save_all.inc
! ea36a56b0a7d63dfcad0c57a36c782a2  libgcc/config/nds32/isr-library/save_fpu_regs.inc
! c188805e4a91d2e2a49f2fb3c4353784  libgcc/config/nds32/isr-library/save_fpu_regs_00.inc
! 1edc036c38e0af387f930f471ef83018  libgcc/config/nds32/isr-library/save_fpu_regs_01.inc
! f6975d49c59f70f2c1e967dea4137a44  libgcc/config/nds32/isr-library/save_fpu_regs_02.inc
! f6c235b0e4377d0bb7eba2348e620f8f  libgcc/config/nds32/isr-library/save_fpu_regs_03.inc
! 62c20200e2552d997417cef7ad41e484  libgcc/config/nds32/isr-library/save_mac_regs.inc
! 980f6ba5afd0294c0a9e162192c0c20b  libgcc/config/nds32/isr-library/save_partial.inc
! cce72b90ad3d18ecc2a8ea3cde0f80b0  libgcc/config/nds32/isr-library/save_usr_regs.inc
! 04a70c3692eec1233da90520be5a5d09  libgcc/config/nds32/isr-library/vec_vid00.S
! 33415530b0d3860d08d580686af23186  libgcc/config/nds32/isr-library/vec_vid00_4b.S
! acd28f8862a20ebeb7dc157987e39c68  libgcc/config/nds32/isr-library/vec_vid01.S
! c15bc4eeedcb5ad13b1ecb4fc5ba4170  libgcc/config/nds32/isr-library/vec_vid01_4b.S
! 845a709d9387d28268edc09e0cf75a54  libgcc/config/nds32/isr-library/vec_vid02.S
! cc0402010ede364268709638cd784a55  libgcc/config/nds32/isr-library/vec_vid02_4b.S
! 5911c2215c7a60411f055ceafd092599  libgcc/config/nds32/isr-library/vec_vid03.S
! b8a21e01cc6831d5fdc7db9d33cf3924  libgcc/config/nds32/isr-library/vec_vid03_4b.S
! 2f671e8434ca4ff1d1db3cab112ce1b3  libgcc/config/nds32/isr-library/vec_vid04.S
! bb03b57491a5be2a1ba66f5dc0c01e74  libgcc/config/nds32/isr-library/vec_vid04_4b.S
! 01db2b266c2fbf250ec0df196bc85dcf  libgcc/config/nds32/isr-library/vec_vid05.S
! d689b209e8191fff4a9a7815954d1c40  libgcc/config/nds32/isr-library/vec_vid05_4b.S
! 8145cd72621caada26f56ce0506ff80b  libgcc/config/nds32/isr-library/vec_vid06.S
! 9dc2fd63009f4f77575b88d0438ed50a  libgcc/config/nds32/isr-library/vec_vid06_4b.S
! d66f7ce7a83dfb82405a3adf257f2596  libgcc/config/nds32/isr-library/vec_vid07.S
! dd6bd624ad9e02cc1b15eb5cfd490714  libgcc/config/nds32/isr-library/vec_vid07_4b.S
! b8fcf1057d000b453c6e2cb622172c2d  libgcc/config/nds32/isr-library/vec_vid08.S
! 7a020716719cc6927ced931f370378d6  libgcc/config/nds32/isr-library/vec_vid08_4b.S
! d37e602ce1b97b999de8bc544886b11b  libgcc/config/nds32/isr-library/vec_vid09.S
! a54adeb684031e4fdc96c55484bf2d45  libgcc/config/nds32/isr-library/vec_vid09_4b.S
! 541137d21079c26fbf76591b6fc63d19  libgcc/config/nds32/isr-library/vec_vid10.S
! afaf76b9b7c3c532745116ef180c1592  libgcc/config/nds32/isr-library/vec_vid10_4b.S
! 33de1082b1903a797f2996b0943d8665  libgcc/config/nds32/isr-library/vec_vid11.S
! 6cb53461943837cc1fecefbc0566b293  libgcc/config/nds32/isr-library/vec_vid11_4b.S
! 6c294b3544f3c4146e7072eeb9509d27  libgcc/config/nds32/isr-library/vec_vid12.S
! ad9bf1722985d56b2df743dcc6a3c8a9  libgcc/config/nds32/isr-library/vec_vid12_4b.S
! 7e41fdeeac2f443575f46c8d64333e43  libgcc/config/nds32/isr-library/vec_vid13.S
! d9ca3e6155b4a09b3933770d8f22846c  libgcc/config/nds32/isr-library/vec_vid13_4b.S
! a9b0d17874ba014bd0a2d182f1579cd8  libgcc/config/nds32/isr-library/vec_vid14.S
! f3db60ce8f18edfbcf6aa5509ce5b23e  libgcc/config/nds32/isr-library/vec_vid14_4b.S
! d797aa24adeec7237aff2da790fb29b7  libgcc/config/nds32/isr-library/vec_vid15.S
! 0baf7664c8faaf035fd52a4a7a7a6417  libgcc/config/nds32/isr-library/vec_vid15_4b.S
! f12f5d83be925f8bebf3fd9f9c20a1b2  libgcc/config/nds32/isr-library/vec_vid16.S
! 28737ba1da4a589dff9a672e44348ad9  libgcc/config/nds32/isr-library/vec_vid16_4b.S
! 11a93a04917e21736047c0da044d0a7c  libgcc/config/nds32/isr-library/vec_vid17.S
! d1da83e91e0f2677b7971e006b95f923  libgcc/config/nds32/isr-library/vec_vid17_4b.S
! 6cc1dde5b1241571cc2b884369e7649f  libgcc/config/nds32/isr-library/vec_vid18.S
! 22a7f3733955d5a93bbf3e921234bfa6  libgcc/config/nds32/isr-library/vec_vid18_4b.S
! d5ebff69ea4d2d815f9a3a636c336694  libgcc/config/nds32/isr-library/vec_vid19.S
! 721b5cbd6d43759178f4623f3256ec71  libgcc/config/nds32/isr-library/vec_vid19_4b.S
! c0121558c212a17fc0073285074c960f  libgcc/config/nds32/isr-library/vec_vid20.S
! fef2bec3498145bd2382e5f5334a3e3b  libgcc/config/nds32/isr-library/vec_vid20_4b.S
! 9bd3425c16582139397ef5385b98c0ad  libgcc/config/nds32/isr-library/vec_vid21.S
! caf77e15b1894a56294ba3310102b148  libgcc/config/nds32/isr-library/vec_vid21_4b.S
! e60e2290d47938aee0e7442788f2029e  libgcc/config/nds32/isr-library/vec_vid22.S
! 6621ae7bde6d079d4a1a83449b652c44  libgcc/config/nds32/isr-library/vec_vid22_4b.S
! c0a416ad09eede855869e45c3994ff1d  libgcc/config/nds32/isr-library/vec_vid23.S
! 9607f5b778267bfca7ff88fac2301d03  libgcc/config/nds32/isr-library/vec_vid23_4b.S
! 0f1a4a18dca8224a8f47eeb7e73e8ced  libgcc/config/nds32/isr-library/vec_vid24.S
! 6990fad6f1c7d8578dda1ccf9bcdbafd  libgcc/config/nds32/isr-library/vec_vid24_4b.S
! 31657d0ec9ab64b298f3a1803e0dd0d0  libgcc/config/nds32/isr-library/vec_vid25.S
! 6b99a412b5ddf8bfaf53a8d9eaa757ce  libgcc/config/nds32/isr-library/vec_vid25_4b.S
! 11818175c9c176e4baca99ddfb931470  libgcc/config/nds32/isr-library/vec_vid26.S
! 449418c89f4245e861f367d5bc9c6671  libgcc/config/nds32/isr-library/vec_vid26_4b.S
! 0e67d6b35a2a357a4c246115b401d92f  libgcc/config/nds32/isr-library/vec_vid27.S
! 2364c6f2acacf5298110b2baca272353  libgcc/config/nds32/isr-library/vec_vid27_4b.S
! 7cb9041311adfd8295af0ff243fe8375  libgcc/config/nds32/isr-library/vec_vid28.S
! dc5ca892249358c02954ba5249c2a643  libgcc/config/nds32/isr-library/vec_vid28_4b.S
! f582da894fad8639385085bfc6294875  libgcc/config/nds32/isr-library/vec_vid29.S
! 608182f2fdfe3b514f523d1a46ff2e84  libgcc/config/nds32/isr-library/vec_vid29_4b.S
! e623f3c7bf6003266f2cf1725f654caa  libgcc/config/nds32/isr-library/vec_vid30.S
! cc71328e41bfcb345e1102c5f6ee8ca9  libgcc/config/nds32/isr-library/vec_vid30_4b.S
! 17bf917e630aeaeba4eb3efe9b31387b  libgcc/config/nds32/isr-library/vec_vid31.S
! fd898ea7ae5c5f32eafb4c86afc471d7  libgcc/config/nds32/isr-library/vec_vid31_4b.S
! ee4cc64455d0ec84b6833bfcc5fd12c8  libgcc/config/nds32/isr-library/vec_vid32.S
! 05d8a24bdfc0a8aa343e5eba373e9c0f  libgcc/config/nds32/isr-library/vec_vid32_4b.S
! a937dd5a0ff00fe335d6e24f675c5942  libgcc/config/nds32/isr-library/vec_vid33.S
! 77fa7a03f875eb4fc30e291bd189e897  libgcc/config/nds32/isr-library/vec_vid33_4b.S
! 5106b0638361546f2d875650100b0b6f  libgcc/config/nds32/isr-library/vec_vid34.S
! 88d1cba021ae65face3b494b34a6bdbb  libgcc/config/nds32/isr-library/vec_vid34_4b.S
! d42cab63e865f3940dc9de8c0cbaf7f3  libgcc/config/nds32/isr-library/vec_vid35.S
! f686b1793c1164fb5216af9c56e255bd  libgcc/config/nds32/isr-library/vec_vid35_4b.S
! 08a04562c2c2455353aceb7c2c282bb8  libgcc/config/nds32/isr-library/vec_vid36.S
! 5ca4c5a9d95fce6a4e4b96785f090bd4  libgcc/config/nds32/isr-library/vec_vid36_4b.S
! 9eac1ab4581b5c86fead3d0c540b9964  libgcc/config/nds32/isr-library/vec_vid37.S
! 1a6e66e96fc493ad95a90c236ed8900f  libgcc/config/nds32/isr-library/vec_vid37_4b.S
! d731699fd31ad398989115aaec15124e  libgcc/config/nds32/isr-library/vec_vid38.S
! 663179ac258848a20642c71f9d05046b  libgcc/config/nds32/isr-library/vec_vid38_4b.S
! 5682ad8d6841e7864e6fafe83ba5fb30  libgcc/config/nds32/isr-library/vec_vid39.S
! c0523769f3f6048d529b98e920e31a71  libgcc/config/nds32/isr-library/vec_vid39_4b.S
! d3a9295cd3bb716346739fc5d579c061  libgcc/config/nds32/isr-library/vec_vid40.S
! bd74278c3dd9b6751d3d6f9dbd6798fc  libgcc/config/nds32/isr-library/vec_vid40_4b.S
! a570ecc0139c503e3b19acfed96b83da  libgcc/config/nds32/isr-library/vec_vid41.S
! f1e1be8cfcc77deb538e6556f21faf34  libgcc/config/nds32/isr-library/vec_vid41_4b.S
! 863496e6a09bca0ce3c5972266951456  libgcc/config/nds32/isr-library/vec_vid42.S
! 98cbe70d5ee4c4d5c9e5bebbc0ffe41d  libgcc/config/nds32/isr-library/vec_vid42_4b.S
! 9ab897323d6ac7b7b344da53f3686e45  libgcc/config/nds32/isr-library/vec_vid43.S
! 34b02cd925bc5057f9a1fdf82ec100f6  libgcc/config/nds32/isr-library/vec_vid43_4b.S
! dd30084ba38055eff30bdaea3d3ed053  libgcc/config/nds32/isr-library/vec_vid44.S
! 2407c8918d2b6aa5f5336c36945a82af  libgcc/config/nds32/isr-library/vec_vid44_4b.S
! ee0cb62f49ff94c6ceaa254cb68fbc14  libgcc/config/nds32/isr-library/vec_vid45.S
! 5fd17a0d77dc0b551b782fa2cf1701fb  libgcc/config/nds32/isr-library/vec_vid45_4b.S
! 2bfcd7e2b82ab6e4e34b81694b482e55  libgcc/config/nds32/isr-library/vec_vid46.S
! dcdaac376cd4c8c6d921855ad8c706ab  libgcc/config/nds32/isr-library/vec_vid46_4b.S
! 288244854aa20367276e165c740b3e36  libgcc/config/nds32/isr-library/vec_vid47.S
! d223f9927ce6afd87b7362a3f311cc4e  libgcc/config/nds32/isr-library/vec_vid47_4b.S
! c1a470d281f68d3ef516cf417b613e02  libgcc/config/nds32/isr-library/vec_vid48.S
! f9ba012d9fee93569ee461b75ee0607d  libgcc/config/nds32/isr-library/vec_vid48_4b.S
! 2fcdf6f7e388437723ad22f59ec45d75  libgcc/config/nds32/isr-library/vec_vid49.S
! 7896d8e5ad1edbb267e6e7c1e104f859  libgcc/config/nds32/isr-library/vec_vid49_4b.S
! c856c8145cfc68c5da86fa9476f72149  libgcc/config/nds32/isr-library/vec_vid50.S
! dc3695976578284ac389769eaf31d6f3  libgcc/config/nds32/isr-library/vec_vid50_4b.S
! 774c0c5835fcb2f0b654d60537ad76ad  libgcc/config/nds32/isr-library/vec_vid51.S
! 971bc0d1a75740b3f8a6ebe51cbe39fb  libgcc/config/nds32/isr-library/vec_vid51_4b.S
! c2bba3600a3c0ba4aa093d4d33f4689b  libgcc/config/nds32/isr-library/vec_vid52.S
! 34e3e7edf3b9113f20a09c98d5e2fc11  libgcc/config/nds32/isr-library/vec_vid52_4b.S
! 3f3f2a2668e6bdfb53d12c37306dc45b  libgcc/config/nds32/isr-library/vec_vid53.S
! 513656e500521aa161a6aa3edf2b612c  libgcc/config/nds32/isr-library/vec_vid53_4b.S
! 859dc8ea2e7fc17a689deefe1f6502c1  libgcc/config/nds32/isr-library/vec_vid54.S
! 49d41bdd1f47e325ec340b8c3493018d  libgcc/config/nds32/isr-library/vec_vid54_4b.S
! 1332d22c35daa3036e9a04729560d0de  libgcc/config/nds32/isr-library/vec_vid55.S
! 4e300d31243f0b334b6b9fb6d54b7c33  libgcc/config/nds32/isr-library/vec_vid55_4b.S
! e2a7dd955703c574a3dd8151e6492885  libgcc/config/nds32/isr-library/vec_vid56.S
! c8fd2ee46550d74856e6657a67cec6e2  libgcc/config/nds32/isr-library/vec_vid56_4b.S
! 20003aa7d24a7a3d8b71a0743f43a8ec  libgcc/config/nds32/isr-library/vec_vid57.S
! 0ccafba9a8e095a94fa34e06f7d7a64f  libgcc/config/nds32/isr-library/vec_vid57_4b.S
! 16ca70e252b97afb3e46d62a95b4662a  libgcc/config/nds32/isr-library/vec_vid58.S
! e723373f6e6fa1656d86442e54e4b637  libgcc/config/nds32/isr-library/vec_vid58_4b.S
! 8ecddba53b055f2c15ead83acbcb2f3c  libgcc/config/nds32/isr-library/vec_vid59.S
! cd1d6aa6d00d8a76f14a832b908b5ae5  libgcc/config/nds32/isr-library/vec_vid59_4b.S
! 0aca8c7ef7e340edb81633f0cbac783d  libgcc/config/nds32/isr-library/vec_vid60.S
! 4b9448fc33a434cade08e2d35e131484  libgcc/config/nds32/isr-library/vec_vid60_4b.S
! 148b8e6bb8b095d796da5a4fdbee3591  libgcc/config/nds32/isr-library/vec_vid61.S
! d5d5d9dd24b43357c184483985d7a043  libgcc/config/nds32/isr-library/vec_vid61_4b.S
! 3b97adbf9cff4c4e2ec927a31d03c472  libgcc/config/nds32/isr-library/vec_vid62.S
! 53f361fcd0482e25f8152ccc40333ada  libgcc/config/nds32/isr-library/vec_vid62_4b.S
! 91724cfe5bc907aa96c191a2abe4e548  libgcc/config/nds32/isr-library/vec_vid63.S
! 93929b31bd824aaea5e5528fef07f259  libgcc/config/nds32/isr-library/vec_vid63_4b.S
! fff5a4ce8cc010966a82c22c1b4aaf90  libgcc/config/nds32/isr-library/vec_vid64.S
! 396039a4132c841e904d79ec11890ce0  libgcc/config/nds32/isr-library/vec_vid64_4b.S
! fa2098ccd7d71d868b0f007368572512  libgcc/config/nds32/isr-library/vec_vid65.S
! 41eb08294304f88763f4c36b83037d78  libgcc/config/nds32/isr-library/vec_vid65_4b.S
! 6f7e870c99cec2898602aca24841718c  libgcc/config/nds32/isr-library/vec_vid66.S
! 0e6a104c37a75e3fbb5d3d1ef776c718  libgcc/config/nds32/isr-library/vec_vid66_4b.S
! 94f1c334d05a3fd4e4c0182af578b3d4  libgcc/config/nds32/isr-library/vec_vid67.S
! a61c99afead7373d92a1be1aecdccb69  libgcc/config/nds32/isr-library/vec_vid67_4b.S
! c507b5ab0d5baf6aa437462c127be239  libgcc/config/nds32/isr-library/vec_vid68.S
! 52af2e15a8324fb07285ae092dd71ed1  libgcc/config/nds32/isr-library/vec_vid68_4b.S
! 33ca392eea68a5666abf5bf48a3eb74f  libgcc/config/nds32/isr-library/vec_vid69.S
! ef8ba657028fb7dc8512df0182202d2d  libgcc/config/nds32/isr-library/vec_vid69_4b.S
! 8bc4cbc62ad6f777c817d0e83c143ecb  libgcc/config/nds32/isr-library/vec_vid70.S
! eead0e7eeee31c6f2599bc69dfcc7d18  libgcc/config/nds32/isr-library/vec_vid70_4b.S
! 438bb7af7fd9483084f046b70bb150fe  libgcc/config/nds32/isr-library/vec_vid71.S
! 83a0603a492b4305e55b25c3750e41d4  libgcc/config/nds32/isr-library/vec_vid71_4b.S
! 1f653379ca74ea3715fee14b1141adcb  libgcc/config/nds32/isr-library/vec_vid72.S
! b72b3f6267dbe6454198b8a90aead2f2  libgcc/config/nds32/isr-library/vec_vid72_4b.S
! e4392d824cdbed424759bea0140867ed  libgcc/config/nds32/isr-library/wrh.S
! aa29a26aaa6a67e4782232a111adae2a  libgcc/config/nds32/lib1asmsrc-mculib.S
! 0fede3777ae4edd3319bfd1b6a246dfa  libgcc/config/nds32/lib1asmsrc-newlib.S
! 25ea317cd180a7de7ff4a2e269cfa79b  libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c
! 9992c2204e8ec5fd97a7df422a282be4  libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c
! 7758d6a31dd8a01d741bdf44a9c749e8  libgcc/config/nds32/linux-atomic.c
! 1d549787f76282f20e1c6d264d031596  libgcc/config/nds32/linux-unwind.h
! 0ea8adab0c834367af948e99dc00cab2  libgcc/config/nds32/sfp-machine.h
! fbc4da47d881bd113c19f5f065f16b9a  libgcc/config/nds32/t-nds32
! 307a50b25ab7c4afaf3367e6bf24268a  libgcc/config/nds32/t-nds32-glibc
! 66142bb1aea56245745d9e79d2ea0757  libgcc/config/nds32/t-nds32-isr
! a63c2eb64850ff5f667d83fa9a28ca33  libgcc/config/nds32/t-nds32-mculib
! b934786eeedf1517ad82fc57d9c114e5  libgcc/config/nds32/t-nds32-newlib
! 8970338f0d748ebf4c84177798920e28  libgcc/config/nios2/crti.S
! 9daf4509ced5223f93b8968a50a95466  libgcc/config/nios2/crtn.S
! a43264930d2cfe36f3dc53aaa6a663d7  libgcc/config/nios2/elf-lib.h
! 1b707bfc5369e2b2627b14daa82f2295  libgcc/config/nios2/lib2-divmod-hi.c
! 15b13e2e6402b7f95848712c81d944c6  libgcc/config/nios2/lib2-divmod.c
! 155d99063b34a94e43a6bb8c298a7e9a  libgcc/config/nios2/lib2-divtable.c
! 814ef433b2ade92c841335d9bb3335d3  libgcc/config/nios2/lib2-mul.c
! 3416812ac1ef52fcc264597ef74cd1a8  libgcc/config/nios2/lib2-nios2.h
! 9b05ce56aa0e84b040af50ebc94e235d  libgcc/config/nios2/linux-atomic.c
! 27fab677e7c9ccff2b90d6790aa80e3c  libgcc/config/nios2/linux-unwind.h
! 818b60a0cdb45946daf3bac195db9ab0  libgcc/config/nios2/sfp-machine.h
  598bde069aeebadde9b08f8703ab2c77  libgcc/config/nios2/t-linux
  058cf7bee1e8fb40a62590a2558c7f76  libgcc/config/nios2/t-nios2
! 2b1fe1d0a251e1b7c960d3227f736142  libgcc/config/nios2/tramp.c
  d554f3fc7ee3cecc697c448b8c5f61bb  libgcc/config/no-sfp-machine.h
  b70010a8e3a6734ae04ba484992563c5  libgcc/config/no-unwind.h
! d8fb408b620eef3ab902db72aee11b75  libgcc/config/nvptx/atomic.c
! d7c375342112d4d8d84de6fff8d7ef24  libgcc/config/nvptx/crt0.c
! adf420963a68fc05f49de6402df870df  libgcc/config/nvptx/mgomp.c
! 6112215b135af4ca5e179e01186668fd  libgcc/config/nvptx/nvptx-malloc.h
! e1abbfde1cccaeb4b93548f4e4eb9bab  libgcc/config/nvptx/reduction.c
! 0617edec520da7980b5d283a7187ead5  libgcc/config/nvptx/t-nvptx
! dd79f42febc8b1194f774aa15e40085c  libgcc/config/or1k/lib1funcs.S
! 599ef5b011b025a8630127e329d8df2a  libgcc/config/or1k/linux-unwind.h
  bb60ec15ea01e2d3f07f2b944b739c6d  libgcc/config/or1k/sfp-machine.h
  dc51b5d6e7fd35fa1156670d20c6464d  libgcc/config/or1k/t-crtstuff
! 70416b4da394aa58fe184f5127607f71  libgcc/config/or1k/t-or1k
! 70448f01899578da48ef8788f6e9ebe6  libgcc/config/pa/fptr.c
! 9976a96429845eb018acdf22a4ba3054  libgcc/config/pa/gthr-dce.h
! 774f73c67b8646424bd790ca582029a1  libgcc/config/pa/hpux-unwind.h
! 8a9f138f33d8a4c87baec2057b46f003  libgcc/config/pa/lib2funcs.S
! e22303d1f2c7406b71fb2e8ca7d76a3e  libgcc/config/pa/linux-atomic.c
! 2c2782cc900c6ca399282af32f832683  libgcc/config/pa/linux-unwind.h
! 8cc3d8c1ab4938ec6429024b839a30a5  libgcc/config/pa/milli64.S
! 42ce53ce8cadf71652c0e61f4aa8cd8f  libgcc/config/pa/pa64-hpux-lib.h
! e150a0d1ae66cf8e422cf4355b0e6c77  libgcc/config/pa/quadlib.c
! fb39ec435f62a53ec232c099689a5b84  libgcc/config/pa/sfp-exceptions.c
! b70adf0e4ed048c8971c873786365d21  libgcc/config/pa/sfp-machine.h
! f0200b26bff9ab2308f91cde337efd9e  libgcc/config/pa/stublib.c
! 5eac061fee092ccc1481539dd8dd1649  libgcc/config/pa/sync-libfuncs.c
  be1d29d3044d55ee3e60d3e74a9e98fe  libgcc/config/pa/t-dimode
  8a3964d4f1eddb14d9260a0a72a23493  libgcc/config/pa/t-hpux
  73420715a92f162a61d33bbfbe7c4dee  libgcc/config/pa/t-hpux10
*************** be1d29d3044d55ee3e60d3e74a9e98fe  libgcc
*** 101582,101741 ****
  cb3abad4947b17ef27c99d92fdcb14ae  libgcc/config/pa/t-pa64-hpux
  8b6e1d4848a895dd9e8e030f638c68bc  libgcc/config/pa/t-pa64-linux
  6b7616abedce76aaa866d73b08ea3a07  libgcc/config/pa/t-slibgcc-dwarf-ver
! 46ac8e98b8015706346770301c8fecbb  libgcc/config/pa/t-slibgcc-hpux
  463a4121da251ad8e53013810a31914a  libgcc/config/pa/t-slibgcc-sjlj-ver
  ce4b287e3a507cf1707205fb5c6adfe3  libgcc/config/pa/t-softfp-sfdftf
  964be72d0cacc353ffda1509b63add90  libgcc/config/pa/t-stublib
  a2a61a2b6f3c9d3e3bd8cae0b0eb845b  libgcc/config/pdp11/t-pdp11
! 8389680d5606e9f592171159a4f81867  libgcc/config/pru/asri.c
! 95b420c5e5251f0729d588e422d72151  libgcc/config/pru/eqd.c
! 3c4722088253b5421a5787896be027e2  libgcc/config/pru/eqf.c
! c2071f8359a79bafdff844da59a73c0e  libgcc/config/pru/ged.c
! 82018a7b31e28ca53681d02c042eed29  libgcc/config/pru/gef.c
! 2bfc19dccf2954f08cc0cff597d328de  libgcc/config/pru/gtd.c
! 0f8093d3a26feb6b0cda671e2ae5fd7b  libgcc/config/pru/gtf.c
! 3548fb77189a97a7952f1e86333d426d  libgcc/config/pru/led.c
! 25f4e4a2aecb8dfa13d34d250d721095  libgcc/config/pru/lef.c
! 751c50d702f528a6e3f067343541b991  libgcc/config/pru/lib2bitcountHI.c
! ac614b13dc622b56264890da76bbd6fa  libgcc/config/pru/lib2divHI.c
! f123ad4c2edc39368b70ae86afd7248b  libgcc/config/pru/lib2divQI.c
! 42551ecd91f2e610973729f17700a188  libgcc/config/pru/lib2divSI.c
! 8dbdc041a757e5147885d97dbbb6f132  libgcc/config/pru/libgcc-eabi.ver
! 0f0ef9a03a750ab34eae3d9a37fb6dab  libgcc/config/pru/ltd.c
! 6dcd34d5b7718cfdfac148038b3ae031  libgcc/config/pru/ltf.c
! 538b71090c6fcedfeda3d1bdc5b0d623  libgcc/config/pru/mpyll.S
! 3464df89296896f93e7241d55919d9f8  libgcc/config/pru/pru-abi.h
! 66aeebd24220fd1e7ccf2b24877a69a7  libgcc/config/pru/pru-asm.h
! 3ff9a33b0388d96bc738cbce6b20c9b7  libgcc/config/pru/pru-divmod.h
! 721dc9f555aa85a9282c1df17ec3be5c  libgcc/config/pru/sfp-machine.h
! 3596dec6c8a69f09a2011858f1b32d8f  libgcc/config/pru/t-pru
! 18ab764da89e60e2709eb23c0470e4e3  libgcc/config/riscv/atomic.c
  d61879f5ed9372bd52bba7f21bb79dbc  libgcc/config/riscv/crti.S
  0485c6e233af87295472bb7a9f2767e0  libgcc/config/riscv/crtn.S
! aa8a969c2a30e16bab5df961caf743ba  libgcc/config/riscv/div.S
! c0dab54e2d2af5f841dce5130a27cf38  libgcc/config/riscv/linux-unwind.h
! 8c92a19af803520b9687fa7e307cb938  libgcc/config/riscv/muldi3.S
! f2ea71a36a0e8dbac0e3a473ed3ed2dd  libgcc/config/riscv/multi3.c
! 154fb9c32be5892ba5503866244aedb4  libgcc/config/riscv/riscv-asm.h
! 7daff6324247ddae40f21f08df3c1701  libgcc/config/riscv/save-restore.S
! ed808b1bb28de330127d99cb740ae36c  libgcc/config/riscv/sfp-machine.h
  c42f201dbf0dcdfa26d4e52583c32f53  libgcc/config/riscv/t-elf
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf32
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf64
! 57cceb9ccc7b54f50fc6c01ad8639147  libgcc/config/riscv/t-softfp32
  494f987eb59c3f251a4a33bf3c6ce334  libgcc/config/riscv/t-softfp64
! e6dbff697fe6b503036ebaa3bccc31df  libgcc/config/riscv/value-unwind.h
! 1d5998d358ab3bb601018943d8708075  libgcc/config/rl78/adddi3.S
! b2ea1f66a684681c810f43062d13a1e7  libgcc/config/rl78/anddi3.S
! 0ab56bef0525b38eb6afb14191a71e9b  libgcc/config/rl78/bit-count.S
! 8ff2be085af8038ce84197f17480c894  libgcc/config/rl78/cmpsi2.S
! 0a2772169884887dea4c9a3085c644cc  libgcc/config/rl78/divmodhi.S
! 9f0eeb90c6c96ab63d941bd62381136c  libgcc/config/rl78/divmodqi.S
! 57fbc645ca740d2330f88f6a1ab9bc39  libgcc/config/rl78/divmodsi.S
  63e9b57af30110b61c3221ba465e2c5b  libgcc/config/rl78/fpbit-sf.S
  9099dff71d89768f77ed3ef7908d4265  libgcc/config/rl78/fpmath-sf.S
! 15f4355b88437c63a0101b2da8c42a57  libgcc/config/rl78/lib2div.c
! 7525210079dbc168ff65255d756f01b1  libgcc/config/rl78/lib2mul.c
! aa4e9e9bd4d0b372d685022be7cfd870  libgcc/config/rl78/lib2shift.c
! 1898a7654d49ebc6adb99506265a3844  libgcc/config/rl78/lshrsi3.S
! 663452649724bc5bdb2e5535a2468b80  libgcc/config/rl78/mulsi3.S
! 3f3cb71fc2a7a6b15e0e497f8c0cde03  libgcc/config/rl78/rl78-divmod.h
! 1634f71b1d498dd61df06ca962d72eee  libgcc/config/rl78/rl78-mul.h
! 65edc4958457497e8bfb6629d6616834  libgcc/config/rl78/signbit.S
! 5798247009a7da28dd0516deb892807e  libgcc/config/rl78/smaxdi3.S
! bd44fb671a52bd5955cde94a4af1ab9a  libgcc/config/rl78/smindi3.S
! 2e797b85015ccb2e8ca91158bfb76527  libgcc/config/rl78/subdi3.S
! 821bf29e1e12bdee7a0b9e1c16e43888  libgcc/config/rl78/t-rl78
! e215c2e2792686d619a3bcb05f272eb9  libgcc/config/rl78/trampoline.S
! 03010e91a87f96eabc4000998cf0d975  libgcc/config/rl78/umaxdi3.S
! 485bbfb4fc7c41eca5d0130ed79d7aa8  libgcc/config/rl78/umindi3.S
  760912f22e59adbfe0317ee3df1b4849  libgcc/config/rl78/vregs.h
! 0fac6412034eb67f356dd791e78a1c2c  libgcc/config/rs6000/_dd_to_kf.c
! 775dbf9c6986bcdbe67c8e6c8aac4fba  libgcc/config/rs6000/_divkc3.c
! 79624f5a72c8a3c6bc903d31e1692048  libgcc/config/rs6000/_kf_to_dd.c
! 22da7e5d59074dec008b2a16b8249ae5  libgcc/config/rs6000/_kf_to_sd.c
! 4f5a74f84274c59d46d197b73a65bd73  libgcc/config/rs6000/_kf_to_td.c
! 9a86d98c1caa7751b81fb0bc78f2b0d7  libgcc/config/rs6000/_mulkc3.c
! 7739c2698b7555f70a5a284086ec8f66  libgcc/config/rs6000/_powikf2.c
! bcb0cc8d42ec60296346c3af4d1aceab  libgcc/config/rs6000/_sd_to_kf.c
! 3a74fde299785b7397d1210d4ad98857  libgcc/config/rs6000/_td_to_kf.c
! 2841d94642949e446472f55cdec7bae7  libgcc/config/rs6000/aix-unwind.h
  737841f917469789a5f925e6f08da1de  libgcc/config/rs6000/aixinitfini.c
! c3821700c34a0bd277e5c26d2b5dfcc3  libgcc/config/rs6000/atexit.c
! c02a573c2a8e2e869dfa9a8bc8a73330  libgcc/config/rs6000/crtcxa.c
! 87597cf9633e9d5723028f22741c3ac6  libgcc/config/rs6000/crtdbase.S
! 94f30672ce606c41b59db402f24a6f2c  libgcc/config/rs6000/crtresfpr.S
! b66cc4c90c75a93bd946cdba76271f0d  libgcc/config/rs6000/crtresgpr.S
! 41196a63c5b11de01307b5dd5da33858  libgcc/config/rs6000/crtrestvr.S
! cbe3b65d8b4e7759350bdcf41b34818b  libgcc/config/rs6000/crtresxfpr.S
! e9e9bb74b6fe2b1a9ac50146bef36cd7  libgcc/config/rs6000/crtresxgpr.S
! 4143662b793f33323e8e05e0fba5d823  libgcc/config/rs6000/crtsavevr.S
! a3786e4556bd492bd5b7450810f2b066  libgcc/config/rs6000/crtsavfpr.S
! ddfe52717d7e23f46e0221b35a5d2104  libgcc/config/rs6000/crtsavgpr.S
! 8e861a839f8d019d1de6fbf0048656f2  libgcc/config/rs6000/cxa_atexit.c
! cbb01d0cd208561843ef4b19ac0b102e  libgcc/config/rs6000/cxa_finalize.c
! 871369895cf5d6db3c34784a683e3729  libgcc/config/rs6000/darwin-asm.h
! d1399322b7737771bda0e4887f351e7f  libgcc/config/rs6000/darwin-crt2.c
! 5d4a95fa8eaa662100a41e986890d88a  libgcc/config/rs6000/darwin-fallback.c
! f203ee8ab5c8e5bd55d941246a796fe3  libgcc/config/rs6000/darwin-fpsave.S
! e4ec429198f3065219c83c1ae78e5ea2  libgcc/config/rs6000/darwin-gpsave.S
! 6b6b758e7928c005e1081e887f70f642  libgcc/config/rs6000/darwin-tramp.S
! 578ff9af66a0e849c149ec929078568e  libgcc/config/rs6000/darwin-unwind.h
! 0e85d0418a60f2dc0019a990684885a2  libgcc/config/rs6000/darwin-vecsave.S
! 7d81607f6df337929806ac77495f4909  libgcc/config/rs6000/darwin-world.S
! afed487fe456e907988c405a591273b2  libgcc/config/rs6000/e500crtres32gpr.S
! 55cce5410d9a191027dfd99b1016f9cb  libgcc/config/rs6000/e500crtres64gpr.S
! 30ea3fefdbce73d1c3f574fbf3318b0f  libgcc/config/rs6000/e500crtres64gprctr.S
! ca3c60e8adcad17594b4b94159dbd790  libgcc/config/rs6000/e500crtrest32gpr.S
! 605d6f691201f7f6fd56d686a12126e1  libgcc/config/rs6000/e500crtrest64gpr.S
! c93d6b0f1a761f4f172b4e2d32677dd1  libgcc/config/rs6000/e500crtresx32gpr.S
! 189aff44ddd4acc29d6d3e5d946d6350  libgcc/config/rs6000/e500crtresx64gpr.S
! 8e52f6a22b8e85c86e0a38794000ede2  libgcc/config/rs6000/e500crtsav32gpr.S
! 574b237171431e7afe7b0e69a20dc299  libgcc/config/rs6000/e500crtsav64gpr.S
! aaa65b00dad887c2916f603a637a462e  libgcc/config/rs6000/e500crtsav64gprctr.S
! 34fba8d2635e014d0ef772342e94c2be  libgcc/config/rs6000/e500crtsavg32gpr.S
! ee84cb778b9821cb4b7adb7c69f8100d  libgcc/config/rs6000/e500crtsavg64gpr.S
! 5bfd4c38e1a7262ac66ebabe468552d0  libgcc/config/rs6000/e500crtsavg64gprctr.S
! a31c21d7315b24d58e6ce1834bc22f35  libgcc/config/rs6000/eabi-ci.S
! f0c2e0efe18fc6814ad09ff7fb831ed7  libgcc/config/rs6000/eabi-cn.S
! e1a670ad0c7d976b06af28c5b5b29c8a  libgcc/config/rs6000/eabi.S
! f70bc8368bc3cdced31ecdfff362016f  libgcc/config/rs6000/exit.h
! 2d67f727af0b1e555073471246eaf084  libgcc/config/rs6000/extendkftf2-sw.c
! 5fdd77ee6864dd5b3a857a7b6b398eb1  libgcc/config/rs6000/fixkfti-sw.c
! cdce747270ba9f70902ab791df285d5a  libgcc/config/rs6000/fixunskfti-sw.c
! 73bde4caba4f41f075d4bd8ae8f629e5  libgcc/config/rs6000/float128-hw.c
! e312d6723e3f266a3609e65ff36ba013  libgcc/config/rs6000/float128-ifunc.c
! 432584444d3de94506f6d0987590d1e0  libgcc/config/rs6000/float128-p10.c
  82156c171c8648f2863486505efc417a  libgcc/config/rs6000/float128-sed
  81d8bfdd9028f651e74357a59a1352c5  libgcc/config/rs6000/float128-sed-hw
! 7dff5851a2552468e4c76e23967b27ed  libgcc/config/rs6000/floattikf-sw.c
! efa0fdd0f2622febca59000d1dbceafc  libgcc/config/rs6000/floatuntikf-sw.c
! b1ad824f3841cf4406709cc784bcf1df  libgcc/config/rs6000/freebsd-unwind.h
! 2bff3b6f85cbfd276092255b72f7fd97  libgcc/config/rs6000/gthr-aix.h
! cc959fad27e59f7bd9bc4d58acd58be5  libgcc/config/rs6000/ibm-ldouble-format
! 803463ae0eb50d533ae114d8aac9a1f9  libgcc/config/rs6000/ibm-ldouble.c
  13bc252ed5254cf124822256760c6df0  libgcc/config/rs6000/libgcc-aix-cxa.ver
! f83d28e38dc7c78d2d455eaa9213c0f4  libgcc/config/rs6000/libgcc-glibc.ver
  7aa6f4e782960be3e2b43998ef395330  libgcc/config/rs6000/libgcc-ibm-ldouble.ver
! 51b17664f1d6f8eee852cccd0e605ac8  libgcc/config/rs6000/linux-unwind.h
! 6c6a90ef00087b1da4ba9edf16c9fca8  libgcc/config/rs6000/morestack.S
! dc5a6c34bc49057c45005c8d5cb31c73  libgcc/config/rs6000/on_exit.c
! 3c078fa3edb12bb5c4fa19e2ba936e2d  libgcc/config/rs6000/quad-float128.h
! d1b33e021d547f29de7264898f30b39e  libgcc/config/rs6000/sfp-exceptions.c
  41c3896f925900fa6b81c0215a60075f  libgcc/config/rs6000/sfp-machine.h
! 8fe1f8a9bc22d0eabbe6226c161dfd09  libgcc/config/rs6000/sol-ci.S
! db2d53d612d8d902893f509f83b8b708  libgcc/config/rs6000/sol-cn.S
  3fa6bf8673b3a7fa2278aeb2fe1824f4  libgcc/config/rs6000/t-aix-cxa
  0d6637a7e112c021e7ce371918c7659c  libgcc/config/rs6000/t-crtstuff
  b780b81d7bccdf7af090dbcd3e639dd1  libgcc/config/rs6000/t-darwin
  a8ea28c94f3264c3602a98b4728fed82  libgcc/config/rs6000/t-darwin-ehs
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-darwin64
! 01de3124b53eff3c5b115f34ba5434c1  libgcc/config/rs6000/t-e500v1-fp
! a669828a9589440e60982a1232c8042d  libgcc/config/rs6000/t-e500v2-fp
  d5fb4aa675487367c8320cc2a6b80485  libgcc/config/rs6000/t-float128
! ea267a427a7598d5070e338c8995363d  libgcc/config/rs6000/t-float128-hw
  0c3cb3b39ba2a4a769c8467eba008f64  libgcc/config/rs6000/t-float128-p10-hw
! 0e56d6c0078f4df9905d534a4d1fc961  libgcc/config/rs6000/t-freebsd
  4976aac1da0b181cf133fe8ef7243000  libgcc/config/rs6000/t-freebsd64
  565e9d6288ad496063af26b57e5fa264  libgcc/config/rs6000/t-ibm-ldouble
  ecf2c7e327e9df4e94343352b59b9fd2  libgcc/config/rs6000/t-linux
--- 111349,111509 ----
  cb3abad4947b17ef27c99d92fdcb14ae  libgcc/config/pa/t-pa64-hpux
  8b6e1d4848a895dd9e8e030f638c68bc  libgcc/config/pa/t-pa64-linux
  6b7616abedce76aaa866d73b08ea3a07  libgcc/config/pa/t-slibgcc-dwarf-ver
! 65797eb2348862798d8f2adcea30a464  libgcc/config/pa/t-slibgcc-hpux
  463a4121da251ad8e53013810a31914a  libgcc/config/pa/t-slibgcc-sjlj-ver
  ce4b287e3a507cf1707205fb5c6adfe3  libgcc/config/pa/t-softfp-sfdftf
  964be72d0cacc353ffda1509b63add90  libgcc/config/pa/t-stublib
  a2a61a2b6f3c9d3e3bd8cae0b0eb845b  libgcc/config/pdp11/t-pdp11
! ec98f42bac2ca9d4f5a9c96a16faec83  libgcc/config/pru/asri.c
! e63fbf95558574fe3f3f9c006de02155  libgcc/config/pru/eqd.c
! 37747b85e66c93c1399a915b657e88bf  libgcc/config/pru/eqf.c
! a1076dcf067480a2028c41fd36918544  libgcc/config/pru/ged.c
! 86c51860848841d068aec71cbce12466  libgcc/config/pru/gef.c
! 91789af196316f303c1cc64f25ba3366  libgcc/config/pru/gtd.c
! d178a72c9df52848a54836abe63c9288  libgcc/config/pru/gtf.c
! 1f5a324447efc88df5814d5f5acd35b7  libgcc/config/pru/led.c
! 378134a108284e5f09e18e3a5c92d018  libgcc/config/pru/lef.c
! 24252b6553351a371e997874a1dcac84  libgcc/config/pru/lib2bitcountHI.c
! 257dee33dad5638e8267fb522ac118db  libgcc/config/pru/lib2divHI.c
! f7a4f604335d8cbd1ce0d9adeba4b1e2  libgcc/config/pru/lib2divQI.c
! 33cd1dd89da4ba427c532973868e0914  libgcc/config/pru/lib2divSI.c
! 9c9be7d4c25408b7864e1b9058227392  libgcc/config/pru/libgcc-eabi.ver
! 086f1d3012010ee8782758dd289aaea4  libgcc/config/pru/ltd.c
! 768012ce80fb9ffdb905ba3035e6a7b5  libgcc/config/pru/ltf.c
! e0419aa73f31603cacb78055596ebee8  libgcc/config/pru/mpyll.S
! 408b2c9fb81c02ff6e51197b018b9930  libgcc/config/pru/pru-abi.h
! ea95025f8491b6148db0755aea4730e2  libgcc/config/pru/pru-asm.h
! 07c92c1390396110e9198216469ce9fc  libgcc/config/pru/pru-divmod.h
! 1988cd11f8595349219331e0364b245d  libgcc/config/pru/sfp-machine.h
! 6fd50461fb71b3fb8e04e97105a5b193  libgcc/config/pru/t-pru
! 8ba223c52f93c007c6858c383d4b3c6b  libgcc/config/riscv/atomic.c
  d61879f5ed9372bd52bba7f21bb79dbc  libgcc/config/riscv/crti.S
  0485c6e233af87295472bb7a9f2767e0  libgcc/config/riscv/crtn.S
! aeb81a2bd71f983cdf6c4b90ddf5966c  libgcc/config/riscv/div.S
! b0b7a4016514cf4317443b5a4e4fc000  libgcc/config/riscv/linux-unwind.h
! 5c5746b1f5d3bf768a095ac285261e86  libgcc/config/riscv/muldi3.S
! 98940cc2aefdca6367fece720d2dcc5b  libgcc/config/riscv/multi3.c
! ee0d44451d0727afc160a462b22d1ab0  libgcc/config/riscv/riscv-asm.h
! 5c00f19259fa0901a2b7771a149c18c6  libgcc/config/riscv/save-restore.S
! 4f27653f3cd6e321927d13a8b8b3827d  libgcc/config/riscv/sfp-machine.h
! 6a8be20744258bc3c31a34df112164ce  libgcc/config/riscv/t-crtstuff
  c42f201dbf0dcdfa26d4e52583c32f53  libgcc/config/riscv/t-elf
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf32
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf64
! 2aa3bf2f9129bbb5ccf56cd00d952c9a  libgcc/config/riscv/t-softfp32
  494f987eb59c3f251a4a33bf3c6ce334  libgcc/config/riscv/t-softfp64
! 2f25675116d0f054661e5dd72b48f7ea  libgcc/config/riscv/value-unwind.h
! b1521420dbfa13b528e2361b0178c284  libgcc/config/rl78/adddi3.S
! 86ceee78f9485af39d9362d225e396ef  libgcc/config/rl78/anddi3.S
! f858e0a315a504240ffab1d430c7a690  libgcc/config/rl78/bit-count.S
! 1f18a1efd1bef991fee57baed56567c4  libgcc/config/rl78/cmpsi2.S
! 3d36c6e38f788f90f8783c69557e8b4c  libgcc/config/rl78/divmodhi.S
! 484c14c12028a70beec50c4569cf3e0a  libgcc/config/rl78/divmodqi.S
! 4153a85511ae60404f81ccabba63cb68  libgcc/config/rl78/divmodsi.S
  63e9b57af30110b61c3221ba465e2c5b  libgcc/config/rl78/fpbit-sf.S
  9099dff71d89768f77ed3ef7908d4265  libgcc/config/rl78/fpmath-sf.S
! 3df9034f2a758b0a943994701c0e104b  libgcc/config/rl78/lib2div.c
! 31aa0351b1b8f42eeeb177deb5c98608  libgcc/config/rl78/lib2mul.c
! 5f124c6142b1ff9f1e7afe9c2734bccf  libgcc/config/rl78/lib2shift.c
! 400de74ee338125181bfd350bdcc4018  libgcc/config/rl78/lshrsi3.S
! 0593d2d6d3bdfd16df4cbdf17bd08d53  libgcc/config/rl78/mulsi3.S
! 766d261a013fd6d9ee9cf17d41de6db3  libgcc/config/rl78/rl78-divmod.h
! ca4257e7bbd37d4dab38471c49dc0fb5  libgcc/config/rl78/rl78-mul.h
! 0c2c9b6ebacdf0edbbd694fec7d66f84  libgcc/config/rl78/signbit.S
! 684efe2d7c7e68a201b493e005456755  libgcc/config/rl78/smaxdi3.S
! b80af8f6b9a0c097604f85c4861ba00b  libgcc/config/rl78/smindi3.S
! c313b8dca032141921440f6217a5edfc  libgcc/config/rl78/subdi3.S
! 2da401bc3af87a1de885c0747ba6e13d  libgcc/config/rl78/t-rl78
! eaf7e9270a51730c25009538690fa794  libgcc/config/rl78/trampoline.S
! 5f336c4b9abdde25c7d80d5bf26a3f4f  libgcc/config/rl78/umaxdi3.S
! 780c93d92ec493b01c46471695e61d92  libgcc/config/rl78/umindi3.S
  760912f22e59adbfe0317ee3df1b4849  libgcc/config/rl78/vregs.h
! b8724de96132f6a4a8fdf8d26138fb6c  libgcc/config/rs6000/_dd_to_kf.c
! fa1d1420c222b1e41aabf8a300f74b32  libgcc/config/rs6000/_divkc3.c
! c9df29d0a26e460f4a978f680e9ee14d  libgcc/config/rs6000/_kf_to_dd.c
! d20ece7b0393bafb0c635545db2e8ca5  libgcc/config/rs6000/_kf_to_sd.c
! ac41d928970c505eb1fcdc1fcf970ea7  libgcc/config/rs6000/_kf_to_td.c
! 00f8edb9eefd00240b0d74ad530acaa2  libgcc/config/rs6000/_mulkc3.c
! df34e34fd903efdbcd0e677088c9936f  libgcc/config/rs6000/_powikf2.c
! 19983877bffefc1e8ea2601cb53314f1  libgcc/config/rs6000/_sd_to_kf.c
! a1ab1675a32539d38df62e625d7a008c  libgcc/config/rs6000/_td_to_kf.c
! ce8e19c5d9196dbabed9f6c0e6d6e92e  libgcc/config/rs6000/aix-unwind.h
  737841f917469789a5f925e6f08da1de  libgcc/config/rs6000/aixinitfini.c
! a472e62c5ae8b5737db884a7db4fe863  libgcc/config/rs6000/atexit.c
! 16c48f0fa0bbe9243c886b9e57f04be5  libgcc/config/rs6000/crtcxa.c
! 4a00eab540c06f26b2f1f5ecbfd48e8a  libgcc/config/rs6000/crtdbase.S
! 16bea7a5acb5c2035761dd22b1a9ec93  libgcc/config/rs6000/crtresfpr.S
! cee2981193f467979e9cdbd47357bea3  libgcc/config/rs6000/crtresgpr.S
! 00e63596044de682df818b82c7156e3a  libgcc/config/rs6000/crtrestvr.S
! c6f844de1e1902a2690f4be0544a8021  libgcc/config/rs6000/crtresxfpr.S
! 0ccacbcd6bc11f085fb25de6d355c8f2  libgcc/config/rs6000/crtresxgpr.S
! a3c2bcb14998cba9ed7e11f47103ab32  libgcc/config/rs6000/crtsavevr.S
! 57530300fe746504f2ed53b2f6e3fb9e  libgcc/config/rs6000/crtsavfpr.S
! 3d01b0c86254104ab490f3c2303d0d38  libgcc/config/rs6000/crtsavgpr.S
! 3bd3151ea18a52f55cff3989128ccd03  libgcc/config/rs6000/cxa_atexit.c
! b819131f1aea3571e2bd52a6287a5183  libgcc/config/rs6000/cxa_finalize.c
! 7c2b0854e32121988a2c7b14a4c6aae0  libgcc/config/rs6000/darwin-asm.h
! d926a298536c3673a7b5a3ae855d4b58  libgcc/config/rs6000/darwin-crt2.c
! 4d9d465af5352394b9e73764bb599f97  libgcc/config/rs6000/darwin-fallback.c
! f6f7af651ca2d950226f4ba7da7b7700  libgcc/config/rs6000/darwin-fpsave.S
! bc14013c181ba4b0995e49eae9fbf236  libgcc/config/rs6000/darwin-gpsave.S
! aa74cd0ece7da20c1ceba0a5cbdc34ea  libgcc/config/rs6000/darwin-tramp.S
! 3d1c3e1ba403cf711e92b64af1c77f3d  libgcc/config/rs6000/darwin-unwind.h
! 6b5b0e858852a16ac786e7e907bd76a7  libgcc/config/rs6000/darwin-vecsave.S
! 61e010f743bb97e05b907a5d2f69685a  libgcc/config/rs6000/darwin-world.S
! 37c01928e50847a1f47d682e1550eb87  libgcc/config/rs6000/e500crtres32gpr.S
! 12e941d14d8e9dacf9b2440f022f6900  libgcc/config/rs6000/e500crtres64gpr.S
! 88bd58b1715c06c06536e971e49f6b89  libgcc/config/rs6000/e500crtres64gprctr.S
! 950442ff52d790ec31000e1b130fc013  libgcc/config/rs6000/e500crtrest32gpr.S
! 4c97610bed8fd895ba08a10dded939b9  libgcc/config/rs6000/e500crtrest64gpr.S
! 014adf36f04be5437ef1f7e1615a9374  libgcc/config/rs6000/e500crtresx32gpr.S
! 87209094ea0112b43624bf146b4a3426  libgcc/config/rs6000/e500crtresx64gpr.S
! 47881db25d028d0e689baceba051e547  libgcc/config/rs6000/e500crtsav32gpr.S
! 2dc649afeca7aea3188779c5a5a27e5b  libgcc/config/rs6000/e500crtsav64gpr.S
! fc3fd0f75d90361e455c9272bb9591dd  libgcc/config/rs6000/e500crtsav64gprctr.S
! 0dc34ddca03640f1707d00ae1c77bde3  libgcc/config/rs6000/e500crtsavg32gpr.S
! a9bc9c910bd338dca7fcfe5157eab9fd  libgcc/config/rs6000/e500crtsavg64gpr.S
! 6fda775015f8e4ae64a6e9603e29994e  libgcc/config/rs6000/e500crtsavg64gprctr.S
! 325027b3d37e5c0995d454e4611bff34  libgcc/config/rs6000/eabi-ci.S
! 67d947dafa01e35b3c6b8619b079f279  libgcc/config/rs6000/eabi-cn.S
! dc344a74efd64e3f856e60c27c8ab1f9  libgcc/config/rs6000/eabi.S
! 7f97ac4c661958d877787226600c0608  libgcc/config/rs6000/exit.h
! f1e33164a532c5dabefe0ed8e92f766c  libgcc/config/rs6000/extendkftf2-sw.c
! f72e978765492b436903ad7820592d85  libgcc/config/rs6000/fixkfti-sw.c
! f7cf889680043f4b9e7a8fa2645e3958  libgcc/config/rs6000/fixunskfti-sw.c
! f5d13a80cb5029b061c45ac857cc7fca  libgcc/config/rs6000/float128-hw.c
! e48e93602121caf151237d59e0bc0e6d  libgcc/config/rs6000/float128-ifunc.c
! 98643c88952f7001b121b2effe6ca95b  libgcc/config/rs6000/float128-p10.c
  82156c171c8648f2863486505efc417a  libgcc/config/rs6000/float128-sed
  81d8bfdd9028f651e74357a59a1352c5  libgcc/config/rs6000/float128-sed-hw
! fe9a058245f78e805cba446dc54e22cb  libgcc/config/rs6000/floattikf-sw.c
! 2ac1eddb454f1a10dc16f773d5f48491  libgcc/config/rs6000/floatuntikf-sw.c
! 4efdd8261a557deefc86e0f802c2f1f3  libgcc/config/rs6000/freebsd-unwind.h
! d82cc32c711e40c627fa2c2c831c8879  libgcc/config/rs6000/gthr-aix.h
! 12fc42170db04daa33d46d744091ea3f  libgcc/config/rs6000/ibm-ldouble-format
! 5df1f03e86f0f7c930d1078f897ee048  libgcc/config/rs6000/ibm-ldouble.c
  13bc252ed5254cf124822256760c6df0  libgcc/config/rs6000/libgcc-aix-cxa.ver
! f06955d14ed467babde9ad113dc72903  libgcc/config/rs6000/libgcc-glibc.ver
  7aa6f4e782960be3e2b43998ef395330  libgcc/config/rs6000/libgcc-ibm-ldouble.ver
! 168ce67c5160881e721e4f0d36bac3aa  libgcc/config/rs6000/linux-unwind.h
! 177338141ff4f12ceac928bd94e69a7a  libgcc/config/rs6000/morestack.S
! 6f703dd31c4fc83b91b3deb49fe545a1  libgcc/config/rs6000/on_exit.c
! e1e7c19e107b92d459cf5a479c67f241  libgcc/config/rs6000/quad-float128.h
! 7d6f4df3cdefe3ba6c1a2d3cb9c86ba1  libgcc/config/rs6000/sfp-exceptions.c
  41c3896f925900fa6b81c0215a60075f  libgcc/config/rs6000/sfp-machine.h
! 79db8d44dd888cc9dd5af178b0f809ce  libgcc/config/rs6000/sol-ci.S
! 53690e61b80619f105c4f40c5d9a8acd  libgcc/config/rs6000/sol-cn.S
  3fa6bf8673b3a7fa2278aeb2fe1824f4  libgcc/config/rs6000/t-aix-cxa
  0d6637a7e112c021e7ce371918c7659c  libgcc/config/rs6000/t-crtstuff
  b780b81d7bccdf7af090dbcd3e639dd1  libgcc/config/rs6000/t-darwin
  a8ea28c94f3264c3602a98b4728fed82  libgcc/config/rs6000/t-darwin-ehs
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-darwin64
! 937ecf40521955d9efb093ab09a1e074  libgcc/config/rs6000/t-e500v1-fp
! 34b49ae8e2c71e6472a16674e9097452  libgcc/config/rs6000/t-e500v2-fp
  d5fb4aa675487367c8320cc2a6b80485  libgcc/config/rs6000/t-float128
! cd10df5a5f38111b136e54009c41d97c  libgcc/config/rs6000/t-float128-hw
  0c3cb3b39ba2a4a769c8467eba008f64  libgcc/config/rs6000/t-float128-p10-hw
! 6a2fc1760ddd9044150ecc31ad24fe44  libgcc/config/rs6000/t-freebsd
  4976aac1da0b181cf133fe8ef7243000  libgcc/config/rs6000/t-freebsd64
  565e9d6288ad496063af26b57e5fa264  libgcc/config/rs6000/t-ibm-ldouble
  ecf2c7e327e9df4e94343352b59b9fd2  libgcc/config/rs6000/t-linux
*************** ad6ae6684d4dec9ddd78efad67d1af4b  libgcc
*** 101744,101809 ****
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-ppc64-fp
  bd7ceb31787a37d9cb144c41d41acfb3  libgcc/config/rs6000/t-ppccomm
  89dc5367808582c503f03a34193e467b  libgcc/config/rs6000/t-savresfgpr
! 7b50c6825eb7095ac6a82d42d2aff9d3  libgcc/config/rs6000/t-slibgcc-aix
  1d9dab8390b84ff0de504beefb72ce61  libgcc/config/rs6000/t-stack-rs6000
  04581882e1764bcc2a4240b21f3eaa8a  libgcc/config/rs6000/t-vxworks
! e243a96934eb54cf59977f187530acc9  libgcc/config/rs6000/tramp.S
! b3fa60f5c22cc3aea32fd30df1f7d0b7  libgcc/config/rs6000/trunctfkf2-sw.c
! 9a11c95c3cb91f346b89be706b0b145c  libgcc/config/rx/rx-abi-functions.c
! c9c28d82f238d80b402f3af2a75be4c3  libgcc/config/rx/rx-abi.h
  da7bc70013c60be91cf9f085fed52f1a  libgcc/config/rx/rx-lib.h
! fb672d3f9c7e2d1b9f7e853b05fdef2a  libgcc/config/rx/t-rx
! ce85cbcd56cd0ad8783ca3b8829532d5  libgcc/config/s390/32/_fixdfdi.c
! 336fa5252cff64554ee02972c85dae4f  libgcc/config/s390/32/_fixsfdi.c
! 795e8754543b84dc8e459eb572a13af4  libgcc/config/s390/32/_fixtfdi.c
! 6625e35e9e896e3aa9b6ee07c4b03187  libgcc/config/s390/32/_fixunsdfdi.c
! b658881dbbb51ab942e3c961f44a9e0e  libgcc/config/s390/32/_fixunssfdi.c
! f0c991f36a54a01829345ec2859beae8  libgcc/config/s390/32/_fixunstfdi.c
  6101649604e2b3fdd6179e1aa53066bf  libgcc/config/s390/32/t-floattodi
! 9212f006fce2ac9899f0d0c44cdd77f6  libgcc/config/s390/gthr-tpf.h
! 6dbb145810f54a267e3eda3decb36976  libgcc/config/s390/libgcc-glibc.ver
! 52f61358ebe49327846a5424df157010  libgcc/config/s390/linux-unwind.h
! 64866b29e402f26e1373e73e7cffd1ab  libgcc/config/s390/morestack.S
  c150e28c734710584eba8e77d2ff5105  libgcc/config/s390/t-crtstuff
  35a77f8c50ecf16802e00e647ad94026  libgcc/config/s390/t-linux
  26d353eea9229af01124cc46b2e0cebd  libgcc/config/s390/t-stack-s390
  a5218871642ae69c55b0e826c41f3798  libgcc/config/s390/t-tpf
! 64e8d741713d45dda5697699c2311136  libgcc/config/s390/tpf-unwind.h
! 4a371604a11b3d75b209e3fc43f3d1bf  libgcc/config/score/crti.S
! c370b8a6ea2d57aff8da23cc27eea4d5  libgcc/config/score/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/score/sfp-machine.h
! 1073505d90f03abb5d1cb291ffe3dca6  libgcc/config/sh/crt.h
! e520d1d9ac01c5af4b8e85f7a82ca6d9  libgcc/config/sh/crt1.S
! 2cd053b3e2ad26d5374522d2bcaf449e  libgcc/config/sh/crti.S
! e137e0c2b84d68c47954356a5b26f0bd  libgcc/config/sh/crtn.S
! 2fef38f5b54df3b4d51d1cd705895f01  libgcc/config/sh/lib1funcs-4-300.S
! b28cb1bca078df1aaff232c48b76b2ed  libgcc/config/sh/lib1funcs-Os-4-200.S
! 44cde15740c0ebf7e237127ff5e3200f  libgcc/config/sh/lib1funcs.S
! 1c74f42cc3a4ffeafc6e137fe2ad51d1  libgcc/config/sh/lib1funcs.h
  68ddef94ef228a2e500c6f84ca5c5f73  libgcc/config/sh/libgcc-excl.ver
! 4a481e6dd6faaa9baa970cb470f554fd  libgcc/config/sh/libgcc-glibc.ver
! 44aeff9360ab876d6d71dc863b34beb0  libgcc/config/sh/linux-atomic.c
! e8f10f33a2b1213bf3c42090c936bcaa  libgcc/config/sh/linux-unwind.h
  d915cb58faa1ad2108733b662853057e  libgcc/config/sh/t-linux
  be1b06de574a22c34d2cf93d2d68a4f1  libgcc/config/sh/t-netbsd
! bcf5345d8e699a0843c63bf9e3d5dbe8  libgcc/config/sh/t-sh
  00d4a30e4ed4a68cd6ec53feb398914b  libgcc/config/sh/t-superh
! 6ca43940a867e709a4bbc934ffd42791  libgcc/config/sol2/crtp.c
! 26353cf4a6bdf6e874d2832efbbeeb3e  libgcc/config/sol2/crtpg.c
  5e87cfc189f02028b142950527a73c54  libgcc/config/sol2/gmon.c
! 7b5576922498ec670f8bdd006eb71460  libgcc/config/sol2/t-sol2
! f98bd84b3a49ca786fa2aa3136577efb  libgcc/config/sparc/crtfastmath.c
! aad11681a8d9b24ce87f5a3c72f406f4  libgcc/config/sparc/crti.S
! 51f7f2fd47475f4f672db5f288e014a4  libgcc/config/sparc/crtn.S
  b2a26791cd6002e4af29a7fa32510b3b  libgcc/config/sparc/lb1spc.S
! 1917d1bef82ea782eebc81b39f81ed57  libgcc/config/sparc/libgcc-glibc.ver
! 9d092d573510a827cb066026420f16f7  libgcc/config/sparc/linux-unwind.h
! e265e0fc274042b86af6bb2431288dac  libgcc/config/sparc/sol2-c1.S
! 9c56135173ca4789bfbd859b2d7a5b40  libgcc/config/sparc/sol2-unwind.h
  ef153c3f92e3dee09716d833736683eb  libgcc/config/sparc/t-linux
  180e9bc0e471bafa1c561931dc073ebe  libgcc/config/sparc/t-linux64
  dccc96847305efc8c465f1dedc591c23  libgcc/config/sparc/t-softmul
  efbaa48f2cdd756a3e953deca1bd19c9  libgcc/config/sparc/t-sol2
  68562e9ac6ce0883779dcc3aa21d758e  libgcc/config/stormy16/ashlsi3.c
  47744edc253a5317caf4e23e6be95c25  libgcc/config/stormy16/ashrsi3.c
  034b60d9d20beab2853732adb70c4de5  libgcc/config/stormy16/clrsbhi2.c
--- 111512,111578 ----
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-ppc64-fp
  bd7ceb31787a37d9cb144c41d41acfb3  libgcc/config/rs6000/t-ppccomm
  89dc5367808582c503f03a34193e467b  libgcc/config/rs6000/t-savresfgpr
! 4530bf10290962dcd1a5b3b3e2b21026  libgcc/config/rs6000/t-slibgcc-aix
  1d9dab8390b84ff0de504beefb72ce61  libgcc/config/rs6000/t-stack-rs6000
  04581882e1764bcc2a4240b21f3eaa8a  libgcc/config/rs6000/t-vxworks
! 5b6e2bd7882ec732715542f9160911d7  libgcc/config/rs6000/tramp.S
! 81bb7c5df0eaa478fc8d325eac3ad1eb  libgcc/config/rs6000/trunctfkf2-sw.c
! 8e8edbbd4af33b18932b2b9dd29d7981  libgcc/config/rx/rx-abi-functions.c
! 11a65040e5df03e5856c9ebb09ada712  libgcc/config/rx/rx-abi.h
  da7bc70013c60be91cf9f085fed52f1a  libgcc/config/rx/rx-lib.h
! ea6808c1d6b7b050bec102dbd726340a  libgcc/config/rx/t-rx
! a613d7090967474ed75e503312b113df  libgcc/config/s390/32/_fixdfdi.c
! 067bd7305dc951765d319fbbe4ea4fbc  libgcc/config/s390/32/_fixsfdi.c
! 9386e705ef65919babe68ade58a4592f  libgcc/config/s390/32/_fixtfdi.c
! b90ca867a2f933c46aaae99e484badd8  libgcc/config/s390/32/_fixunsdfdi.c
! 7675c2bbaf360944848be053355454dd  libgcc/config/s390/32/_fixunssfdi.c
! 6a2c54f765ef084a07c1128cfd1db09a  libgcc/config/s390/32/_fixunstfdi.c
  6101649604e2b3fdd6179e1aa53066bf  libgcc/config/s390/32/t-floattodi
! 99f0420d5f36b714c8c69c5b3e07923b  libgcc/config/s390/gthr-tpf.h
! b9b31237d0fe663548b94f74bef9fba0  libgcc/config/s390/libgcc-glibc.ver
! 37c74a89b124ef70f22d46ae9b091af2  libgcc/config/s390/linux-unwind.h
! cffb8461263d6b997e891b02f11bb1f8  libgcc/config/s390/morestack.S
  c150e28c734710584eba8e77d2ff5105  libgcc/config/s390/t-crtstuff
  35a77f8c50ecf16802e00e647ad94026  libgcc/config/s390/t-linux
  26d353eea9229af01124cc46b2e0cebd  libgcc/config/s390/t-stack-s390
  a5218871642ae69c55b0e826c41f3798  libgcc/config/s390/t-tpf
! c90a50684968ee74ed34e2b03549d3f4  libgcc/config/s390/tpf-unwind.h
! a00675fa1c51d963cc24e7bf9f073755  libgcc/config/score/crti.S
! b28afe23745ebdc7b13398a0edff2087  libgcc/config/score/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/score/sfp-machine.h
! bec245dd8d91a2c060f4c04b11de7b94  libgcc/config/sh/crt.h
! 89c65b967a5d9f72e4153cfd9ba940c0  libgcc/config/sh/crt1.S
! 8390a430ba79d305ccb763e721027e1e  libgcc/config/sh/crti.S
! 1f2f49f5f487eeec4f5432eab1c17f78  libgcc/config/sh/crtn.S
! 5add237a08af80820394041ec158f7b8  libgcc/config/sh/lib1funcs-4-300.S
! 96733607c910b7896f1399ea31151414  libgcc/config/sh/lib1funcs-Os-4-200.S
! e6cb57653f915c8807a736d2673e29aa  libgcc/config/sh/lib1funcs.S
! 02e452690af574db4b06db1870cdf695  libgcc/config/sh/lib1funcs.h
  68ddef94ef228a2e500c6f84ca5c5f73  libgcc/config/sh/libgcc-excl.ver
! 25936990c9453b1a96fb02d7fa250d4d  libgcc/config/sh/libgcc-glibc.ver
! 2455eeff19a40236d4231d83b5d18a91  libgcc/config/sh/linux-atomic.c
! 8958afbdafcb2c4f68dae49371159f37  libgcc/config/sh/linux-unwind.h
  d915cb58faa1ad2108733b662853057e  libgcc/config/sh/t-linux
  be1b06de574a22c34d2cf93d2d68a4f1  libgcc/config/sh/t-netbsd
! 1a54a118588d0d64acbb3c8b9ca10b35  libgcc/config/sh/t-sh
  00d4a30e4ed4a68cd6ec53feb398914b  libgcc/config/sh/t-superh
! 5b7840f3afd6e52b43439d268cf9bae1  libgcc/config/sol2/crtp.c
! 8325afcbddc6ca247d31257b92be51ef  libgcc/config/sol2/crtpg.c
  5e87cfc189f02028b142950527a73c54  libgcc/config/sol2/gmon.c
! 9a480681d3b06a57082abdee3392719c  libgcc/config/sol2/t-sol2
! ae1b6553ae00f100ceb15f0dbe539bd8  libgcc/config/sparc/crtfastmath.c
! fc1438185b37f544fb0d92774016eeb3  libgcc/config/sparc/crti.S
! 2134748b114f7d16c4b49fa33947882f  libgcc/config/sparc/crtn.S
  b2a26791cd6002e4af29a7fa32510b3b  libgcc/config/sparc/lb1spc.S
! e5168502c8a5fcb35a902188201baabb  libgcc/config/sparc/libgcc-glibc.ver
! dd828815d4d22e7a7a558adca53f06e3  libgcc/config/sparc/linux-unwind.h
! 0d9f312520d058d697cb4b7b31c20d3d  libgcc/config/sparc/sol2-c1.S
! 71617da926284139df2eec5a0f4e393d  libgcc/config/sparc/sol2-unwind.h
  ef153c3f92e3dee09716d833736683eb  libgcc/config/sparc/t-linux
  180e9bc0e471bafa1c561931dc073ebe  libgcc/config/sparc/t-linux64
  dccc96847305efc8c465f1dedc591c23  libgcc/config/sparc/t-softmul
  efbaa48f2cdd756a3e953deca1bd19c9  libgcc/config/sparc/t-sol2
+ 0b01bdd2f8e57039bae7e756b3376e8d  libgcc/config/sparc/t-sparc
  68562e9ac6ce0883779dcc3aa21d758e  libgcc/config/stormy16/ashlsi3.c
  47744edc253a5317caf4e23e6be95c25  libgcc/config/stormy16/ashrsi3.c
  034b60d9d20beab2853732adb70c4de5  libgcc/config/stormy16/clrsbhi2.c
*************** efbaa48f2cdd756a3e953deca1bd19c9  libgcc
*** 101812,101834 ****
  6cb0675d48c7276d43aa201bcc2fd60c  libgcc/config/stormy16/ctzhi2.c
  5bc65cdd345cb629c202f3e96a0410dd  libgcc/config/stormy16/divsi3.c
  3e736ac64edb45dddbedbcc751674354  libgcc/config/stormy16/ffshi2.c
! 9e9249b3fb18e6305e9fc6f0ca27fe2b  libgcc/config/stormy16/lib2funcs.c
  5620256715f30f1eeeb4bdf614b346a6  libgcc/config/stormy16/lshrsi3.c
  27b26d13ffac636e5de0fccdcb2b4515  libgcc/config/stormy16/modsi3.c
  514e4e067379e1bef2b0baac58a21afc  libgcc/config/stormy16/parityhi2.c
  a071c36e5256dc1e154c400ef3055556  libgcc/config/stormy16/popcounthi2.c
! f3947230d4d727b7f27147ff50da99ae  libgcc/config/stormy16/t-stormy16
  ada9a39786da3b2e999f7440a17a1ed7  libgcc/config/stormy16/ucmpsi2.c
  0db895a315f3ea78e45253f9c2c8e7f8  libgcc/config/stormy16/udivmodsi4.c
  6dca6fc4737c716575c264f3934bb6d9  libgcc/config/stormy16/udivsi3.c
  7f567bcd22705a965e07f79e8f68ebaa  libgcc/config/stormy16/umodsi3.c
  f199b38114ce849b77b38bd475d72cff  libgcc/config/t-crtfm
  060a49bb5c4a53a2125123d4cbd571de  libgcc/config/t-crtstuff-pic
! fc8b2970727885119792967fb3344fda  libgcc/config/t-darwin
  f699f9e7159ba2c6033406086c5c8299  libgcc/config/t-darwin-ehs
  5f05c653ae1e197bae3fc3fc5ca1e59d  libgcc/config/t-darwin-min-1
  d8138086c2f686d6fb17804f19019954  libgcc/config/t-darwin-min-5
  830793a6b0d554dc6c4495bc27a0c9e3  libgcc/config/t-darwin-min-8
  ee7ad6460936fc6f3f89ecb711376477  libgcc/config/t-dfprules
  d747115cbcc2bd56b6b4f73c350c2ae3  libgcc/config/t-eh-dw2-dip
  b9d08c1cbead9131f216accd515ec32c  libgcc/config/t-fdpbit
--- 111581,111604 ----
  6cb0675d48c7276d43aa201bcc2fd60c  libgcc/config/stormy16/ctzhi2.c
  5bc65cdd345cb629c202f3e96a0410dd  libgcc/config/stormy16/divsi3.c
  3e736ac64edb45dddbedbcc751674354  libgcc/config/stormy16/ffshi2.c
! 0d7db925b826693c44c7a34ba9defc26  libgcc/config/stormy16/lib2funcs.c
  5620256715f30f1eeeb4bdf614b346a6  libgcc/config/stormy16/lshrsi3.c
  27b26d13ffac636e5de0fccdcb2b4515  libgcc/config/stormy16/modsi3.c
  514e4e067379e1bef2b0baac58a21afc  libgcc/config/stormy16/parityhi2.c
  a071c36e5256dc1e154c400ef3055556  libgcc/config/stormy16/popcounthi2.c
! 4f4d66f1b0e4ea04439d335aa1b08395  libgcc/config/stormy16/t-stormy16
  ada9a39786da3b2e999f7440a17a1ed7  libgcc/config/stormy16/ucmpsi2.c
  0db895a315f3ea78e45253f9c2c8e7f8  libgcc/config/stormy16/udivmodsi4.c
  6dca6fc4737c716575c264f3934bb6d9  libgcc/config/stormy16/udivsi3.c
  7f567bcd22705a965e07f79e8f68ebaa  libgcc/config/stormy16/umodsi3.c
  f199b38114ce849b77b38bd475d72cff  libgcc/config/t-crtfm
  060a49bb5c4a53a2125123d4cbd571de  libgcc/config/t-crtstuff-pic
! 3189748f203afc9349dffab9fb4b3225  libgcc/config/t-darwin
  f699f9e7159ba2c6033406086c5c8299  libgcc/config/t-darwin-ehs
  5f05c653ae1e197bae3fc3fc5ca1e59d  libgcc/config/t-darwin-min-1
  d8138086c2f686d6fb17804f19019954  libgcc/config/t-darwin-min-5
  830793a6b0d554dc6c4495bc27a0c9e3  libgcc/config/t-darwin-min-8
+ 10eac892139b4f3b6abce18db316f6ff  libgcc/config/t-darwin-rpath
  ee7ad6460936fc6f3f89ecb711376477  libgcc/config/t-dfprules
  d747115cbcc2bd56b6b4f73c350c2ae3  libgcc/config/t-eh-dw2-dip
  b9d08c1cbead9131f216accd515ec32c  libgcc/config/t-fdpbit
*************** e70c5d58ebf79fd5741ec98848df7f6f  libgcc
*** 101839,101965 ****
  a5670d0218ee8d5011882573b6bd224b  libgcc/config/t-gthr-noweak
  925527af5cc046b48ad621a96e896dd3  libgcc/config/t-gthr-vxworks
  37f29328813c5ec6c35276b87457f6b8  libgcc/config/t-gthr-vxworksae
! ccfc74ee42f9161add5f4ab8a29dc6df  libgcc/config/t-hardfp
! c5fbd425396a599df6767d649649a979  libgcc/config/t-hardfp-sfdf
  5b1981686da4ef8b1b62a20f10b3e715  libgcc/config/t-libgcc-pic
  5c40347f0b1274c8b5759d0ed9d1ccf8  libgcc/config/t-libunwind
! 7ae7d8abbb8d98673fba0cd5c877a4b8  libgcc/config/t-libunwind-elf
  397d06701a9c354f5606477c578c9efb  libgcc/config/t-linux
  eb3161bf886026cdcf8a78cea885fdd2  libgcc/config/t-openbsd-thread
  474d97884b393e08b0ce416dd09493bc  libgcc/config/t-rtems
! 107b56d549dbc275f8a4f3c2766f1dfd  libgcc/config/t-slibgcc
! 588d81383c65cf44cee60a4c7ff77fcb  libgcc/config/t-slibgcc-darwin
  57f27c60e5d8c572d2645821ec5935e0  libgcc/config/t-slibgcc-elf-ver
! a195b269bf31c04736e3bf051ac6211b  libgcc/config/t-slibgcc-fuchsia
  57e4154cb283fd7d9f323f5d85d534d9  libgcc/config/t-slibgcc-gld
  226b6f10bc32786901a79b070ed13468  libgcc/config/t-slibgcc-gld-nover
  429659ae1ff2531e3ba2fd0c676a320d  libgcc/config/t-slibgcc-hpux
! 5b664b89659678eef03b350c7b33f0fe  libgcc/config/t-slibgcc-libgcc
  b5d3fe85dff400a82befa6b901b438ec  libgcc/config/t-slibgcc-nolc-override
  bb217aa78bbf6b6a7c7844f73152110d  libgcc/config/t-slibgcc-sld
  ff76526856565673089b174b185fab45  libgcc/config/t-slibgcc-vms
! d042e7bb5a033e451a82095499a4fd79  libgcc/config/t-softfp
  1ec9425eada0171d381f5f9b47b613a9  libgcc/config/t-softfp-compat
  72f41afb67b3c3c67809819763244452  libgcc/config/t-softfp-excl
  14ecf481060b3893ba43c6e09ff40eab  libgcc/config/t-softfp-sfdf
! aa5fd95cba7a4d8329be007695e43d15  libgcc/config/t-softfp-sfdftf
! 981f25965afcab131261c8bfc6c90e2f  libgcc/config/t-softfp-tf
  94681cc09c7ff0bb9a14356eff90be51  libgcc/config/t-stack
  685f35f0db36731a13637c087658e7a9  libgcc/config/t-tls
  65e3c91d5593e159fdbf46e423144f41  libgcc/config/t-vxcrtstuff
  f630928b0fcf5102209d333a5d7acf85  libgcc/config/t-vxcrtstuffS
  68f88180382d2f50fb3d44f917509325  libgcc/config/t-vxworks
  5e8b7b7f8448bc376425f6f16054d9ff  libgcc/config/t-vxworksae
! e2f298734c5fb6ad4aa0c375ad974392  libgcc/config/unwind-dw2-fde-darwin.c
! 949d3d89b8d289bce8bc3555c7670e8c  libgcc/config/v850/lib1funcs.S
  015fdb6e6a2a23f553dc5105691f7a6a  libgcc/config/v850/t-v850
! 891268bfe11e0a0f2f38ba005e7191db  libgcc/config/vax/lib1funcs.S
  c668e63cf08f878538a0db39860696dc  libgcc/config/vax/t-linux
! d4e7149793625aadf613e7a938f3c111  libgcc/config/visium/crti.S
! 21969408d70b7bc0aa0bce73ff1a1b87  libgcc/config/visium/crtn.S
! 0f8dc6e8411a9594b134bc4f63e62500  libgcc/config/visium/divdi3.c
! db4dcf7ece651993bd63eb9977718306  libgcc/config/visium/lib2funcs.c
! 60d63b6836f7504ec015d577bacdfabb  libgcc/config/visium/memcpy.c
! db346e1043892f8426ccef77b91d88f0  libgcc/config/visium/memcpy.h
! a89d9fc964e821352a978e3da926645c  libgcc/config/visium/memset.c
! fcd75a8e0216b2b3c029717399a40941  libgcc/config/visium/memset.h
! 77950bf4c8c4614d3bfde37e275cd045  libgcc/config/visium/moddi3.c
! b137e851d209d79d7de24e8428d8d335  libgcc/config/visium/set_trampoline_parity.c
! 3ebc238c20d77977b8ec2bbf18197c2d  libgcc/config/visium/t-visium
! cf6cd23cc5da2a4ecbf67ccc21acb18f  libgcc/config/visium/udivdi3.c
! 3fc0feaadc05c7a34b09e6604c2f700b  libgcc/config/visium/udivmoddi4.c
! 83b27f6aed145ebbb6f526e68c5fe798  libgcc/config/visium/umoddi3.c
  9383115b20d4126cf07541b5d7bf6c2a  libgcc/config/vms/t-vms
! 839d45a2947520e58bd35a8a0b023419  libgcc/config/vms/vms-ucrt0.c
  c8736f8e5c25d07733d84079727197a4  libgcc/config/vxcrtstuff.c
! 3fc8deae2c70d09df3c482595121df24  libgcc/config/xtensa/crti.S
! ecda8c76ee6702b93afad201ef027a60  libgcc/config/xtensa/crtn.S
! de14016c72b22b286e0db26d5014ee9a  libgcc/config/xtensa/ieee754-df.S
! f001d3dd478bfc7630dce0f232b63172  libgcc/config/xtensa/ieee754-sf.S
! eb99b805e4dfe0bb696cf7fdc3f67cb8  libgcc/config/xtensa/lib1funcs.S
! 014fb7ba878eb70eaa6fe5724289bdf3  libgcc/config/xtensa/lib2funcs.S
  8074695f5eea7b961c59ee9608973dac  libgcc/config/xtensa/libgcc-glibc.ver
! cbd896c860b78a27c7aa6851b38e399a  libgcc/config/xtensa/linux-unwind.h
  d437dc5394da39dbe1ece64723e90a76  libgcc/config/xtensa/t-elf
  4f2c91d0f57a675cc91b287ce2ad76aa  libgcc/config/xtensa/t-linux
  ce614fa17d52c2d7121d7e2d6f80b02d  libgcc/config/xtensa/t-windowed
  7d4f3d6a7f62649375059b5a7546195d  libgcc/config/xtensa/t-xtensa
! 4de11414b5e5c8dd05bf4d6a490ff0d6  libgcc/config/xtensa/unwind-dw2-xtensa.c
! eaf87d0dcafd4c719af17db5a4a85d3c  libgcc/config/xtensa/unwind-dw2-xtensa.h
! 3710ff24b7eb2b1d0224baa62702cd16  libgcc/config/xtensa/xtensa-config-builtin.h
! cb10902f1b81649a965ffaaf6cc9a6d5  libgcc/configure
! 3bae93cb63568d459e477ed3d722064c  libgcc/configure.ac
! 3795eb4a1c52b73d220fc198e7cf2efb  libgcc/crtstuff.c
! 930e0cad0a904c049b19aa627c0432c4  libgcc/dfp-bit.c
! ece6e500d1649ab181b0ec473729606c  libgcc/dfp-bit.h
! aec48b4401b817f38e41c2c3098640dc  libgcc/divmod.c
! 3c3350ec68ff358392497d0f59749349  libgcc/emutls.c
  aa52a8f7cb881c00c125ed5fd04ed4df  libgcc/enable-execute-stack-empty.c
! fd70967879b80f603429e4fcb7b8b20a  libgcc/enable-execute-stack-mprotect.c
! ec2488650de274404f5101fef518b4a2  libgcc/find-symver.awk
! 993944e72e33889be6dd72e4e2e49421  libgcc/fixed-bit.c
! b7c9c0302236edaace5cdb166a590948  libgcc/fixed-bit.h
  064f7220d5fd5127bd136e8e2a9d62e7  libgcc/fixed-obj.mk
  651caf13863ec6f313b467d1d8531cd4  libgcc/floatunsidf.c
  6ca2d25d30233e6c7c94aa94c266cb72  libgcc/floatunsisf.c
  faedd2248586a9d50451e03d502eb147  libgcc/floatunsitf.c
  56fa552ac2ef58f6b1563d9c11fd3548  libgcc/floatunsixf.c
! 4f1b4e6882b0ee8fba38045fe22c448e  libgcc/fp-bit.c
! 1df53d7193a9dba1288db004ce5bbed8  libgcc/fp-bit.h
! b2a98b7c0da0b657c6a3fa9ac438a096  libgcc/gbl-ctors.h
! a32d4b5811e6c10386bcc098cbf1ccf0  libgcc/gcov.h
  c7b70dcc1f2024624fcba54a60ffcdda  libgcc/gen-fixed.sh
! 3c577d87749133f643cfad85f7544d7e  libgcc/generic-morestack-thread.c
! 467c69799d553c3149cbde0177a427b1  libgcc/generic-morestack.c
! a27b46552a94b091d0d5121e236765f8  libgcc/generic-morestack.h
  971ff834e82a1a1964a019bfdac21c5c  libgcc/gstdint.h
! 9ef63963222fef0d60eab624892985cd  libgcc/gthr-posix.h
! a32c735f5f63c35fd63bc899e1847370  libgcc/gthr-single.h
! a88d38bc6b447dccea893a26dddafd48  libgcc/gthr.h
! cbb9767191755e181dbee1457933c195  libgcc/libgcc-std.ver.in
! 0085747992a2cc30adf303d37eb76dfd  libgcc/libgcc2.c
! 0bef4421547a2533ebc8d44c42b11e1b  libgcc/libgcc2.h
! ce4cbd69dafd08260aa676dcb87d18bf  libgcc/libgcov-driver-system.c
! 346c94f397dc4cd9091f7bdb95711bbb  libgcc/libgcov-driver.c
! 1adc7c2fe8e79e5405d59aff8efe9862  libgcc/libgcov-interface.c
! 309dbaeb6025b31a92ff8fb69caef2cd  libgcc/libgcov-merge.c
! 26d6e3e3a0beff15029b221b641f338c  libgcc/libgcov-profiler.c
! 2c24f36a9d7699bad2ee614078a2a7ee  libgcc/libgcov-util.c
! 09750413beba87af843c82e6b93a83df  libgcc/libgcov.h
  06287f034722081687f831dcb61e986c  libgcc/memcmp.c
  dad9e98504e8f79e6e97aa29c6b49d96  libgcc/memcpy.c
  135a2882c25ab6f90748b020a6cc2f02  libgcc/memmove.c
  eb54d3066646204ecc21ba5ecb67d572  libgcc/memset.c
! c5770d27978e13d86d9af2a0c5ac9e73  libgcc/mkheader.sh
! ff8e3a5e79e2dfac89fab0161daa9e44  libgcc/mkmap-flat.awk
! 1f0bfb8eb28fecd3ad006702d67fa474  libgcc/mkmap-symver.awk
! 7f1e4123a58057776972095d45828c72  libgcc/offloadstuff.c
  0503a6ec2dc990ec5a02ea1d5ece9082  libgcc/shared-object.mk
  4320671e90e14eb5b9f91f106f923072  libgcc/siditi-object.mk
  5476b2a3295a19a0fb558d1db1aa17ae  libgcc/soft-fp/README
  b501abcd327c6d2c95f76d40d4266a4e  libgcc/soft-fp/adddf3.c
  305a99dae8d1353c9137371842d1a94a  libgcc/soft-fp/addsf3.c
  fe381f26f76f7f8998160bba0429aa49  libgcc/soft-fp/addtf3.c
  1b314340a7e13d053c2234216b9b01fe  libgcc/soft-fp/brain.h
  2386952f10f05ef43a443fcc7227885f  libgcc/soft-fp/divdf3.c
  7e9a32e3cc975b60a0786b9fe2e58ada  libgcc/soft-fp/divsf3.c
--- 111609,111739 ----
  a5670d0218ee8d5011882573b6bd224b  libgcc/config/t-gthr-noweak
  925527af5cc046b48ad621a96e896dd3  libgcc/config/t-gthr-vxworks
  37f29328813c5ec6c35276b87457f6b8  libgcc/config/t-gthr-vxworksae
! aae94fe81b4619c986df907481fb2598  libgcc/config/t-hardfp
! f927890dedb2c6f2842273849e2bddc8  libgcc/config/t-hardfp-sfdf
  5b1981686da4ef8b1b62a20f10b3e715  libgcc/config/t-libgcc-pic
  5c40347f0b1274c8b5759d0ed9d1ccf8  libgcc/config/t-libunwind
! bf2a614fe98bad69a9f64f14cc4f586e  libgcc/config/t-libunwind-elf
  397d06701a9c354f5606477c578c9efb  libgcc/config/t-linux
  eb3161bf886026cdcf8a78cea885fdd2  libgcc/config/t-openbsd-thread
  474d97884b393e08b0ce416dd09493bc  libgcc/config/t-rtems
! 410cb4738f37fd51343b9bd45df47fcb  libgcc/config/t-slibgcc
! 8f731e727bedf843e1a93e29493db712  libgcc/config/t-slibgcc-darwin
  57f27c60e5d8c572d2645821ec5935e0  libgcc/config/t-slibgcc-elf-ver
! fe90d2297461714074361f946e2afafa  libgcc/config/t-slibgcc-fuchsia
  57e4154cb283fd7d9f323f5d85d534d9  libgcc/config/t-slibgcc-gld
  226b6f10bc32786901a79b070ed13468  libgcc/config/t-slibgcc-gld-nover
  429659ae1ff2531e3ba2fd0c676a320d  libgcc/config/t-slibgcc-hpux
! 9381c0847b27c2ef0fa7abb2e5e516f6  libgcc/config/t-slibgcc-libgcc
  b5d3fe85dff400a82befa6b901b438ec  libgcc/config/t-slibgcc-nolc-override
  bb217aa78bbf6b6a7c7844f73152110d  libgcc/config/t-slibgcc-sld
  ff76526856565673089b174b185fab45  libgcc/config/t-slibgcc-vms
! 93092fc62fd552c7560c9f4a1c18b9ff  libgcc/config/t-softfp
  1ec9425eada0171d381f5f9b47b613a9  libgcc/config/t-softfp-compat
  72f41afb67b3c3c67809819763244452  libgcc/config/t-softfp-excl
  14ecf481060b3893ba43c6e09ff40eab  libgcc/config/t-softfp-sfdf
! 52bbd01340440d99a96cdfb121b346b6  libgcc/config/t-softfp-sfdftf
! 446feb33a086ba112c4de48cdca340d0  libgcc/config/t-softfp-tf
  94681cc09c7ff0bb9a14356eff90be51  libgcc/config/t-stack
  685f35f0db36731a13637c087658e7a9  libgcc/config/t-tls
  65e3c91d5593e159fdbf46e423144f41  libgcc/config/t-vxcrtstuff
  f630928b0fcf5102209d333a5d7acf85  libgcc/config/t-vxcrtstuffS
  68f88180382d2f50fb3d44f917509325  libgcc/config/t-vxworks
  5e8b7b7f8448bc376425f6f16054d9ff  libgcc/config/t-vxworksae
! 924fa7fedec7b5c8a28aaf9eee0628d3  libgcc/config/unwind-dw2-fde-darwin.c
! 61d7a072e64a708bee703e4f6da1480a  libgcc/config/v850/lib1funcs.S
  015fdb6e6a2a23f553dc5105691f7a6a  libgcc/config/v850/t-v850
! f1bd780198e83451f55acb20d17a1853  libgcc/config/vax/lib1funcs.S
  c668e63cf08f878538a0db39860696dc  libgcc/config/vax/t-linux
! 97ebfd5835366c1fa1b8cf17dcdc89c2  libgcc/config/visium/crti.S
! 61a0f8ebb7ec892d206185f310e40186  libgcc/config/visium/crtn.S
! 16d1c2290058524ee274e1c4c4788a2d  libgcc/config/visium/divdi3.c
! a01164706e1870df9d8fda3bdfcdc324  libgcc/config/visium/lib2funcs.c
! 99f00a7f3314c4d6d168ed9b421f20f6  libgcc/config/visium/memcpy.c
! 7429edd324f22fb1e04ef4344ad23679  libgcc/config/visium/memcpy.h
! 818c7d1dfd5ecd15d8f1ee40710c63b6  libgcc/config/visium/memset.c
! 26d26a0e0efa8f97181b2ee173b3ca12  libgcc/config/visium/memset.h
! 2f9f8c56f9fd63788bcaa7581a75c2cd  libgcc/config/visium/moddi3.c
! 0cf3b6baca880176db01d3dd1a563d48  libgcc/config/visium/set_trampoline_parity.c
! 03ffd58dffd91fcbda128f0fb2b90907  libgcc/config/visium/t-visium
! d863d15e73638115325395debd60ee06  libgcc/config/visium/udivdi3.c
! b72f89fcb4831901d22e89aa787dfc76  libgcc/config/visium/udivmoddi4.c
! eb15ae48fe5e903b5e8734df0c415725  libgcc/config/visium/umoddi3.c
  9383115b20d4126cf07541b5d7bf6c2a  libgcc/config/vms/t-vms
! 80cbf8282150ec251fab08dd211fdcf2  libgcc/config/vms/vms-ucrt0.c
  c8736f8e5c25d07733d84079727197a4  libgcc/config/vxcrtstuff.c
! 2dadcf04a875b59686fac55ef717e2d0  libgcc/config/xtensa/crti.S
! b827c39ca8bdbbf1900ff4c9bb377fce  libgcc/config/xtensa/crtn.S
! 773f9c8520f15d6885b5f512c068ff04  libgcc/config/xtensa/ieee754-df.S
! 1bcd4ec1ff8b7e9622f800908c56690a  libgcc/config/xtensa/ieee754-sf.S
! b463904ccaa4c6f9d78da6b9ed46bfdd  libgcc/config/xtensa/lib1funcs.S
! 5cc549c04e25784df0daf53158f7335c  libgcc/config/xtensa/lib2funcs.S
  8074695f5eea7b961c59ee9608973dac  libgcc/config/xtensa/libgcc-glibc.ver
! 11fec2b62907d8d1cb92bbcd2f34ee68  libgcc/config/xtensa/linux-unwind.h
  d437dc5394da39dbe1ece64723e90a76  libgcc/config/xtensa/t-elf
  4f2c91d0f57a675cc91b287ce2ad76aa  libgcc/config/xtensa/t-linux
  ce614fa17d52c2d7121d7e2d6f80b02d  libgcc/config/xtensa/t-windowed
  7d4f3d6a7f62649375059b5a7546195d  libgcc/config/xtensa/t-xtensa
! c66619071fcbaf106670e52f735f909a  libgcc/config/xtensa/unwind-dw2-xtensa.c
! 6b9a6b2b4fc731e5c037810edada4327  libgcc/config/xtensa/unwind-dw2-xtensa.h
! 2b819af73309d6f32c68341ecc746c05  libgcc/config/xtensa/xtensa-config-builtin.h
! d993f27cbc4d1714d45f1bda2b302a31  libgcc/configure
! 96290f86d2bae0a9cda298d06bb73da2  libgcc/configure.ac
! 1886a809cdde00922fbb6da4a2b4f46e  libgcc/crtstuff.c
! 081caeb8e1be40c5a1adbd91e9b7707d  libgcc/dfp-bit.c
! df49bf360d6c7641395e5956f6408f4c  libgcc/dfp-bit.h
! 7507d718d11bdf28400364185d13111d  libgcc/divmod.c
! 17319f3ad70cadd1bdffdfe29bf73971  libgcc/emutls.c
  aa52a8f7cb881c00c125ed5fd04ed4df  libgcc/enable-execute-stack-empty.c
! 174b5daa2ebf2d0801c4f9a2541a09e6  libgcc/enable-execute-stack-mprotect.c
! 9506024f8a19f36bcabaa76e911b080a  libgcc/find-symver.awk
! 75e4d7b1e66502277f4e959d20939fd2  libgcc/fixed-bit.c
! 25f9a8db6441c090dfd6325839743836  libgcc/fixed-bit.h
  064f7220d5fd5127bd136e8e2a9d62e7  libgcc/fixed-obj.mk
  651caf13863ec6f313b467d1d8531cd4  libgcc/floatunsidf.c
  6ca2d25d30233e6c7c94aa94c266cb72  libgcc/floatunsisf.c
  faedd2248586a9d50451e03d502eb147  libgcc/floatunsitf.c
  56fa552ac2ef58f6b1563d9c11fd3548  libgcc/floatunsixf.c
! e13580f5d734f5efe3d78f78bc0f18ba  libgcc/fp-bit.c
! ec0346600fd9eda188b340a34a8f91a1  libgcc/fp-bit.h
! 712d943f638d10ad429889c7c40b5103  libgcc/gbl-ctors.h
! ae84403259c9e519bbb25d441078a25e  libgcc/gcov.h
  c7b70dcc1f2024624fcba54a60ffcdda  libgcc/gen-fixed.sh
! cceb4f15a740cb88a0950445124a8fcf  libgcc/generic-morestack-thread.c
! 61db232518643973a11a900778a14388  libgcc/generic-morestack.c
! 1dfc5424c8fbd01fc1280bdcf595fc24  libgcc/generic-morestack.h
  971ff834e82a1a1964a019bfdac21c5c  libgcc/gstdint.h
! 1d9e3b9ee9aba0458e1afe9aa1899e84  libgcc/gthr-posix.h
! 1a23082c4a888683ec5e06660a025bc5  libgcc/gthr-single.h
! cd2527b66857f55d271695ccd63e0413  libgcc/gthr.h
! 0d6d2895ae328b8148215e0db78435f1  libgcc/hardcfr.c
! 5c6c68e0442013bd4ce08621dfee06bc  libgcc/libgcc-std.ver.in
! 4289931afa958de53f95514a6433a492  libgcc/libgcc2.c
! 1996ba8bf855a2477bb2084a93beec87  libgcc/libgcc2.h
! 78863f2a46939341b6754f09271be31f  libgcc/libgcov-driver-system.c
! 15ece9e72dc0089556475ec2b8be632e  libgcc/libgcov-driver.c
! baf92b9c284caba26c0e8d806e3bc1d5  libgcc/libgcov-interface.c
! 075f18936bc378f5efe4b29a51830204  libgcc/libgcov-merge.c
! bb97b1cfec1c706588ba93e6e1db5918  libgcc/libgcov-profiler.c
! c9cdade55c4e0aa97e7dba0fabe52299  libgcc/libgcov-util.c
! 42b04cf03e96a966eb392473d6cebb0b  libgcc/libgcov.h
  06287f034722081687f831dcb61e986c  libgcc/memcmp.c
  dad9e98504e8f79e6e97aa29c6b49d96  libgcc/memcpy.c
  135a2882c25ab6f90748b020a6cc2f02  libgcc/memmove.c
  eb54d3066646204ecc21ba5ecb67d572  libgcc/memset.c
! aaefeff7813c6d1647f9adcf43d831d4  libgcc/mkheader.sh
! 4baff56597b482324ad1ce7f127349db  libgcc/mkmap-flat.awk
! 7b3ae62971d314a43d866c9ad8ce14bc  libgcc/mkmap-symver.awk
! 3f8e791cf33f792ad19f6c3d4963d8e0  libgcc/offloadstuff.c
  0503a6ec2dc990ec5a02ea1d5ece9082  libgcc/shared-object.mk
  4320671e90e14eb5b9f91f106f923072  libgcc/siditi-object.mk
  5476b2a3295a19a0fb558d1db1aa17ae  libgcc/soft-fp/README
  b501abcd327c6d2c95f76d40d4266a4e  libgcc/soft-fp/adddf3.c
  305a99dae8d1353c9137371842d1a94a  libgcc/soft-fp/addsf3.c
  fe381f26f76f7f8998160bba0429aa49  libgcc/soft-fp/addtf3.c
+ 862d968a37d0565154e76a6f60586445  libgcc/soft-fp/bitint.h
+ d86da8fd88c560243cc2d5c29e7d9caf  libgcc/soft-fp/bitintpow10.c
+ 0df1c9dddd6ff4f1de4b75bb05f87fd7  libgcc/soft-fp/bitintpow10.h
  1b314340a7e13d053c2234216b9b01fe  libgcc/soft-fp/brain.h
  2386952f10f05ef43a443fcc7227885f  libgcc/soft-fp/divdf3.c
  7e9a32e3cc975b60a0786b9fe2e58ada  libgcc/soft-fp/divsf3.c
*************** efe1642746afadab822e08839d276498  libgcc
*** 101979,102008 ****
--- 111753,111804 ----
  66340c3328535b5f6e68ddc9db4efb09  libgcc/soft-fp/extendsfdf2.c
  78f440be9e0f50b1f4162f5732b660e1  libgcc/soft-fp/extendsftf2.c
  8374c48f9513f1ff2bed38a1563c9ade  libgcc/soft-fp/extendxftf2.c
+ 614b02ac7496ccd3800e4887ef92ce65  libgcc/soft-fp/fixddbitint.c
+ d5b92b2d4367d46734a82308285dfdb5  libgcc/soft-fp/fixddti.c
+ 9b7084cd807529338f94206e941c9a7d  libgcc/soft-fp/fixdfbitint.c
  1d66e1f4ca287eb6fccf875f0db91236  libgcc/soft-fp/fixdfdi.c
  e0442ba7e2c2f461c4a660a661c279d5  libgcc/soft-fp/fixdfsi.c
  4d8f2a6a343e208b7d2f8ff14a60262d  libgcc/soft-fp/fixdfti.c
  be2495fa4c655c1d61addf11f714dd26  libgcc/soft-fp/fixhfdi.c
  4884866175e9676bd6aa1210b20c5773  libgcc/soft-fp/fixhfsi.c
  f35c3d1edd76cb9ba029a92a1405338a  libgcc/soft-fp/fixhfti.c
+ 38da2d6fd365702be35792bd2ae86944  libgcc/soft-fp/fixsdbitint.c
+ 7774ace7174806629eef7b5437ef5c72  libgcc/soft-fp/fixsdti.c
+ a69c115ca8ca953992c25396b2d932e0  libgcc/soft-fp/fixsfbitint.c
  440f8346f68db4efb08b00fe172edb50  libgcc/soft-fp/fixsfdi.c
  767943fe3923c0a1766d923e07c8c334  libgcc/soft-fp/fixsfsi.c
  244dace544760e31a58cb24edda75ab7  libgcc/soft-fp/fixsfti.c
+ bfa788f0c36fbaa7864252bd05609112  libgcc/soft-fp/fixtdbitint.c
+ 99b62d38fdfb9556eab9ebf8d64b2c9b  libgcc/soft-fp/fixtdti.c
+ 0b2caa247b80db2f1c0af8921eb3fffd  libgcc/soft-fp/fixtfbitint.c
  405551d1a6fcc6aece0a6e16e5e244f9  libgcc/soft-fp/fixtfdi.c
  6ab5656d92048e6656e2fe0de73e4c44  libgcc/soft-fp/fixtfsi.c
  7082436c92df5b85ae94b9495ad464c1  libgcc/soft-fp/fixtfti.c
+ af5ca70de54d8c7df0222ea76a01c83f  libgcc/soft-fp/fixunsddti.c
  57898d3ff8cc90376db235567c29e948  libgcc/soft-fp/fixunsdfdi.c
  ada53bc7756387a8502e2507720b035f  libgcc/soft-fp/fixunsdfsi.c
  3a8f37c1361812154996da1a5e9599f4  libgcc/soft-fp/fixunsdfti.c
  21fe23f358f61a4e26d29b11e6d0f7e6  libgcc/soft-fp/fixunshfdi.c
  9d9677c6da96142038aa3251ac82be71  libgcc/soft-fp/fixunshfsi.c
  ca7d48b7d45390b3df9e82c2f30f36dd  libgcc/soft-fp/fixunshfti.c
+ 618609eb7afa1e3abc6af5a5c483ea24  libgcc/soft-fp/fixunssdti.c
  f72d40f70dcd4ab269b0e2244932c2ea  libgcc/soft-fp/fixunssfdi.c
  73b77e9508be3df7ef3dedca5eef5fb5  libgcc/soft-fp/fixunssfsi.c
  a8e89d494f10e00744b973ef74e03630  libgcc/soft-fp/fixunssfti.c
+ d75378b78259fb6ce7e9bbcdc4afeddc  libgcc/soft-fp/fixunstdti.c
  556a22ddec531aed905074a8ea139a68  libgcc/soft-fp/fixunstfdi.c
  c7baaf1dede8faef62bc97069e3a86dc  libgcc/soft-fp/fixunstfsi.c
  64ec2ba422a53cee91738d36152761ff  libgcc/soft-fp/fixunstfti.c
+ 71f5d551c8220bb6bae49ae9844ee3ef  libgcc/soft-fp/fixxfbitint.c
+ 2f65d16fe846139ca2fea2b0bc6e1eb8  libgcc/soft-fp/floatbitintbf.c
+ c0681473d948d312312e5fcc8c5eedf9  libgcc/soft-fp/floatbitintdd.c
+ d6b9ae9c4e25f67dadc41d8a09c84e04  libgcc/soft-fp/floatbitintdf.c
+ ca806b79a546199d74b76d72af9fe97c  libgcc/soft-fp/floatbitinthf.c
+ b549586c0fea79a1eeec50668390a337  libgcc/soft-fp/floatbitintsd.c
+ 4450c34038f0cf95075cfc4acb83147b  libgcc/soft-fp/floatbitintsf.c
+ 48c90a4a60f91d2506ea74bd9d2c0dce  libgcc/soft-fp/floatbitinttd.c
+ e34cf3c7fec37ae2be10b5ca0b40b257  libgcc/soft-fp/floatbitinttf.c
+ e99db9782e77a9096d87e8a9bf4d52cc  libgcc/soft-fp/floatbitintxf.c
  e1aba14c8b19b67e96db9f797148af40  libgcc/soft-fp/floatdibf.c
  9f2debc3dfca812930e420e587f6b3ca  libgcc/soft-fp/floatdidf.c
  8d00b76a5e987b91468aebc92364888f  libgcc/soft-fp/floatdihf.c
*************** f85e25a797c23cce258273754ddec970  libgcc
*** 102013,102021 ****
--- 111809,111820 ----
  54b4c5443e79e51443d4fad220bc2efd  libgcc/soft-fp/floatsisf.c
  8c77a60f0cb82b4a03aaa604111c3917  libgcc/soft-fp/floatsitf.c
  2bae6ee688abda61b223fbf5b25717c1  libgcc/soft-fp/floattibf.c
+ 4f93dee1d8259062de7ce3af92233e39  libgcc/soft-fp/floattidd.c
  5b4ee2ed81bcc63bd1d9e4bb9b67cf8a  libgcc/soft-fp/floattidf.c
  06cdbcfb2194128912579a06c8f42382  libgcc/soft-fp/floattihf.c
+ 5897bbc2dfc0f13d19063ff33cfeda69  libgcc/soft-fp/floattisd.c
  6e719ab7cae6203215443826f176392d  libgcc/soft-fp/floattisf.c
+ 02f30ff7220cafc12e4e9efb8c55e5ee  libgcc/soft-fp/floattitd.c
  a9a45db6ebbb0bbf20a2f595b2ac714d  libgcc/soft-fp/floattitf.c
  be1a053bdfcb6c04a22e60ad1700a803  libgcc/soft-fp/floatundibf.c
  c8c37355af10b7e73d8dd055f5fec1d1  libgcc/soft-fp/floatundidf.c
*************** cc4e37dc543a3767b463816094f3c0b9  libgcc
*** 102027,102035 ****
--- 111826,111837 ----
  a32ae0cec8bb9ac510eaf6f3c72fb19c  libgcc/soft-fp/floatunsisf.c
  75f27d311c21a9e7d716bc4d3b4f4e3b  libgcc/soft-fp/floatunsitf.c
  a96996bf9295a924afc141cd5d6b0f6d  libgcc/soft-fp/floatuntibf.c
+ d21150feed47dc71ba378957abaeb181  libgcc/soft-fp/floatuntidd.c
  c95a41904ff52abb3a4a89a598e7424d  libgcc/soft-fp/floatuntidf.c
  be697682ed2a5184039fc8ca04c59be7  libgcc/soft-fp/floatuntihf.c
+ b831af306bdeb9bea3c7f5d8510e9e0a  libgcc/soft-fp/floatuntisd.c
  b0e6031ca3ec610e349ff2abc3d12622  libgcc/soft-fp/floatuntisf.c
+ 445d96fd26d036f013fd9cabf215f69a  libgcc/soft-fp/floatuntitd.c
  a73152ad84ccafda24237cacca1f4e2d  libgcc/soft-fp/floatuntitf.c
  295099b34643dc167502a661f4a3739b  libgcc/soft-fp/gedf2.c
  a55cc715e80d85457942c40067b65a87  libgcc/soft-fp/gesf2.c
*************** d78da0fee037e1eac40088776b9e1836  libgcc
*** 102048,102054 ****
  4756ce02cb999472294df1d5b48cf093  libgcc/soft-fp/op-2.h
  66c953c828f4c7ca826e04ef2feb1034  libgcc/soft-fp/op-4.h
  ebdf07aac6a6f525e5ddd3c0971f4776  libgcc/soft-fp/op-8.h
! 8bfc9cd7eb4bf8e5464791ea8fb20c80  libgcc/soft-fp/op-common.h
  33a73f18a924479ac23448b8e7da5f7a  libgcc/soft-fp/quad.h
  135c7e5df89515090bb48e69e862a3d4  libgcc/soft-fp/single.h
  2a2430bad0a4610d8e0a32405ab128df  libgcc/soft-fp/soft-fp.h
--- 111850,111856 ----
  4756ce02cb999472294df1d5b48cf093  libgcc/soft-fp/op-2.h
  66c953c828f4c7ca826e04ef2feb1034  libgcc/soft-fp/op-4.h
  ebdf07aac6a6f525e5ddd3c0971f4776  libgcc/soft-fp/op-8.h
! 2d9433cb2a19abb8e9339144f1e3a8ec  libgcc/soft-fp/op-common.h
  33a73f18a924479ac23448b8e7da5f7a  libgcc/soft-fp/quad.h
  135c7e5df89515090bb48e69e862a3d4  libgcc/soft-fp/single.h
  2a2430bad0a4610d8e0a32405ab128df  libgcc/soft-fp/soft-fp.h
*************** fff9d95d160cd075bf3dd5afb28988a4  libgcc
*** 102073,102105 ****
  fbd2a4796cc1004ad95b2d302d55497a  libgcc/soft-fp/unordsf2.c
  008beb46d9f23d4020ebdd5cbcb0fe3d  libgcc/soft-fp/unordtf2.c
  8c64184cccab0ab994c69899c63f3260  libgcc/static-object.mk
! e735f53afbb9c97ee82e3a036bcd062d  libgcc/sync.c
! 1e21d66bd8bbb1eef9086abe2e5deb6b  libgcc/udivhi3.c
! 06b896882f5112b1ec46ee4e77c05634  libgcc/udivmod.c
! 9cd1090609ed12c5443acaf63c50d688  libgcc/udivmodhi4.c
! fc142c65aad96b7d4719293477ca7a1b  libgcc/udivmodsi4.c
! cf3c5b6953d6faf993393bda407b4fc5  libgcc/unwind-arm-common.inc
! c52111328a177e0b1addfc9d6d294923  libgcc/unwind-c.c
! 46542b765754d0b49060c9f5e3ecd6b6  libgcc/unwind-compat.c
! 7044f5eb123a3753a5f52e5efe651fb3  libgcc/unwind-compat.h
! 31b15a852af79aea6a26219bbf10ae04  libgcc/unwind-dw2-btree.h
! 2cb9cc7b172c9e705a5ddcd8eb85b84a  libgcc/unwind-dw2-execute_cfa.h
! aca8a62f2fbdbe43c1346aee0c0a45d8  libgcc/unwind-dw2-fde-compat.c
! e1a07fb0bf4d6d0a5e0503355020bb43  libgcc/unwind-dw2-fde-dip.c
! b81a4eda3371e273d6f7682495dba42a  libgcc/unwind-dw2-fde.c
! 2805dd79f7787bebf804068689732eca  libgcc/unwind-dw2-fde.h
! 1760739d02ea98fda2d071d0a4699a45  libgcc/unwind-dw2.c
! e15f35b4faa50d07cae1c696695455ef  libgcc/unwind-dw2.h
! 95a6f78058c9645b565fe7b446d04908  libgcc/unwind-generic.h
! bc0d3012b8b7835b6369ac8efc9b08a8  libgcc/unwind-pe.h
! 7618f9ffd05eb88c3f6314cb0be29c0e  libgcc/unwind-seh.c
! 17c97612233b735b4646d82b12e26585  libgcc/unwind-sjlj.c
! 76759d07e1121ab18b013c06aa402958  libgcc/unwind.inc
! 60245aef0d9b2bda2b45954021708451  libgcc/vtv_end.c
! afca86d4e2ebcbd002c0967889bca65c  libgcc/vtv_end_preinit.c
! 120570d3d00f2719ceb16accb59b9502  libgcc/vtv_start.c
! 0c268e8e6df76a1dc94c1bc709707a5a  libgcc/vtv_start_preinit.c
! 30d4055fb1f24a0ebe59a877e4c12388  libgfortran/ChangeLog
  9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
  80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
  9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
--- 111875,111908 ----
  fbd2a4796cc1004ad95b2d302d55497a  libgcc/soft-fp/unordsf2.c
  008beb46d9f23d4020ebdd5cbcb0fe3d  libgcc/soft-fp/unordtf2.c
  8c64184cccab0ab994c69899c63f3260  libgcc/static-object.mk
! 009556a7e9a356de4a584c5b920ac583  libgcc/strub.c
! d1b091cfc429ac9e99a427aa850fee08  libgcc/sync.c
! 77536b0aa89033aeb0551a11bb14f6f9  libgcc/udivhi3.c
! 59951be04dd43989a798cbb240432e83  libgcc/udivmod.c
! 1a03c8b70bf85c7f736667ec34aaffd6  libgcc/udivmodhi4.c
! b4d5712a6a3c2ee776c6528d4fb99449  libgcc/udivmodsi4.c
! d97908aeea3315f9137f229a778b35b4  libgcc/unwind-arm-common.inc
! 0475b0197d358cbd037a6e3040167163  libgcc/unwind-c.c
! b54c177f21d74ce8a2ccb7642e4c455e  libgcc/unwind-compat.c
! 025ebf326a260dee594c3535ad06895e  libgcc/unwind-compat.h
! a82c9a0a02c03f7e7d5b19e1dd7db559  libgcc/unwind-dw2-btree.h
! dc8e04b87090bc0de3771f02dcba6281  libgcc/unwind-dw2-execute_cfa.h
! a2e4458bd1c4f22fd7b16085a77e3f12  libgcc/unwind-dw2-fde-compat.c
! f69ccdc9d0bfc93cd7111a4482ff4ee2  libgcc/unwind-dw2-fde-dip.c
! 86eb3a61bba8c0a61d1f0e84c785bf14  libgcc/unwind-dw2-fde.c
! c8aa66cb5ce6a6258c39a7360f22540b  libgcc/unwind-dw2-fde.h
! 9d2e3d09331b5db55f3023d4b683ff7e  libgcc/unwind-dw2.c
! 720d31240cb77a912de04ecd3849fe75  libgcc/unwind-dw2.h
! 0a9b05711fc71a0aaeefeac5f1beccef  libgcc/unwind-generic.h
! 3892ecbbd079c4a682b0a8f841237f52  libgcc/unwind-pe.h
! a769753dccb0ae384cb582b77e0bb6ab  libgcc/unwind-seh.c
! 31f4ae7205c13280210dbfa45d926dbe  libgcc/unwind-sjlj.c
! b699871c263b446d30c7cd7d0385bd1d  libgcc/unwind.inc
! f6c4d44f37206d08e1fbe17c599cb846  libgcc/vtv_end.c
! a772bb5e7a5802d9a8a1b189bd759625  libgcc/vtv_end_preinit.c
! 6693cc083342d326d63d41f6530df254  libgcc/vtv_start.c
! 34a208666457ea33f55c795c9cffe121  libgcc/vtv_start_preinit.c
! eeeb8b76011d425817fd16eeff2b3c1b  libgfortran/ChangeLog
  9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
  80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
  9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
*************** a25a190e02c8ba2caa2c3dee224eba51  libgfo
*** 102121,103067 ****
  561d7b7050b65ea8eac91bc825d5a816  libgfortran/ChangeLog-2020
  14d3ee4271b29519e2e38d5f4214dcc3  libgfortran/ChangeLog-2021
  04ba4326735f4e023c1e7b6eac76c6d1  libgfortran/ChangeLog-2022
! 3c828253c37d5c893c87c7a557ffa8d2  libgfortran/ISO_Fortran_binding.h
! 6384bf89e5eba5d300b458ab50a195b4  libgfortran/Makefile.am
! c0f0769db111cc17aaad729bbf29c64f  libgfortran/Makefile.in
  afcceb7777065b494d4e0d779ffb764d  libgfortran/acinclude.m4
  77dad7b87b2adfbfda676696055ef90f  libgfortran/aclocal.m4
! 7cd15a336e8d492c3fe9bfc74220a1f2  libgfortran/c99_protos.h
! b34a1449a6d4c316a3dc32fded687341  libgfortran/caf/libcaf.h
! a4a68ce0bc3c30620255a00b35aa803f  libgfortran/caf/mpi.c
! ff82d4152a436a08c5462cc72a218285  libgfortran/caf/single.c
  8ae52aba7942d5b5531d2d61328be165  libgfortran/config.h.in
! d98febe19d45d5505fe51c368b2da6c9  libgfortran/config/fpu-387.h
! 38cc3f42e6944efb6d2c08d638505e9f  libgfortran/config/fpu-aarch64.h
! 09c1f8d4ef5c90cbef0c72d7661c4932  libgfortran/config/fpu-aix.h
! 3c43dbb5da627bd9695692a6405eb48b  libgfortran/config/fpu-generic.h
! eea0e0afec1c33107225e4e11b031135  libgfortran/config/fpu-glibc.h
! 1a9582b0dc743fc567e776d20261a9ee  libgfortran/config/fpu-sysv.h
  93375010faf12b59ff1618874a0beacd  libgfortran/config/t-aix
! dd9e60ea39d8c6442f3c24c6024aeea8  libgfortran/configure
! 92336f7c4a6eab703aadf15f1953df03  libgfortran/configure.ac
! bbe45eeb78f252ad73cd1709edc231b2  libgfortran/configure.host
! c20919dd6b05ff6a09ed907b720629ec  libgfortran/generated/_abs_c10.F90
! 5d633a0d5a140fa418a2438a61f72c23  libgfortran/generated/_abs_c16.F90
! 2ff18e3af836b0917b9461ec3ea850c7  libgfortran/generated/_abs_c17.F90
! 5e9389dfe3117cbd7b8e4631cd2d0f26  libgfortran/generated/_abs_c4.F90
! 934fcf3830c280e5b522629891433f47  libgfortran/generated/_abs_c8.F90
! c9227c6efef349eab3aa7ebebc8cfba1  libgfortran/generated/_abs_i16.F90
! 4ba0430077cf2c4c7110dbe3387e4637  libgfortran/generated/_abs_i4.F90
! 44b6aea5d7d4c134a8584e42b2aa4cac  libgfortran/generated/_abs_i8.F90
! 4c435be5cf5d482703f466207f22c700  libgfortran/generated/_abs_r10.F90
! b26245caf30a1120bbe8c77a69a650d3  libgfortran/generated/_abs_r16.F90
! a5efbb14fbe7f85bb87b9f8cd89ce1d5  libgfortran/generated/_abs_r17.F90
! e8a9d9f3d08743bbe173627ca76e13e5  libgfortran/generated/_abs_r4.F90
! fcf769acaa450971da7e4e83b34a434e  libgfortran/generated/_abs_r8.F90
! e93406b5643946ced10488ab31bb9a23  libgfortran/generated/_acos_r10.F90
! 0f2fbbbd23e22bb40120e296252fba9a  libgfortran/generated/_acos_r16.F90
! 1cbf40ca17cc7be5913827a8ac0d73a6  libgfortran/generated/_acos_r17.F90
! bc04a24416d6ae6bf9b834a89b6a0301  libgfortran/generated/_acos_r4.F90
! 3dbe99d7c1e5ba310d596a5d738f7726  libgfortran/generated/_acos_r8.F90
! 16932e67179a6cfb646872b6eb77d4dc  libgfortran/generated/_acosh_r10.F90
! 40690994baca5152e0e6f6d13d22458c  libgfortran/generated/_acosh_r16.F90
! fc28e60e4289ae6fd159420465d1eb1b  libgfortran/generated/_acosh_r17.F90
! 3fd633721d0c8f1e9f3dd943d71cd87b  libgfortran/generated/_acosh_r4.F90
! ecd067e421263855dad493eda0f3476a  libgfortran/generated/_acosh_r8.F90
! a891a27aeb3e65309ac938302f798631  libgfortran/generated/_aimag_c10.F90
! dab616d9258a85b441b03cf5658c3fca  libgfortran/generated/_aimag_c16.F90
! ad6ef455a1f7f86b55ae9cae438bde76  libgfortran/generated/_aimag_c17.F90
! df2d8c7dd1b12db7990c370240af3c99  libgfortran/generated/_aimag_c4.F90
! 51f5acdcc06d278f1317937e03a3db20  libgfortran/generated/_aimag_c8.F90
! 3bd8d8a33a463be5709c1f5593f1287d  libgfortran/generated/_aint_r10.F90
! 3a1627143768ce82e9ed8e7e25951cfe  libgfortran/generated/_aint_r16.F90
! 12eb2f722902d88d924ebcaaacf3979a  libgfortran/generated/_aint_r17.F90
! db4084776e0149bb767174013c82a433  libgfortran/generated/_aint_r4.F90
! 8aff07ceeec72449d0d96522168527ce  libgfortran/generated/_aint_r8.F90
! 0fa704459bde1b779523010cd1270fed  libgfortran/generated/_anint_r10.F90
! 4c97497f23ac6b30b9a0e852f85aaad0  libgfortran/generated/_anint_r16.F90
! 3fcf473671b4eb0ef11ebe77d92667eb  libgfortran/generated/_anint_r17.F90
! c6c2d91b1e9bb93ab8f766c0296868ab  libgfortran/generated/_anint_r4.F90
! 83be8b276154b39ec74b57949711de7a  libgfortran/generated/_anint_r8.F90
! 52ecb2ce89c58a18c21687a60dae7401  libgfortran/generated/_asin_r10.F90
! f0211875826d8457442e111a7366c358  libgfortran/generated/_asin_r16.F90
! 96afddaa3af83eee3cd3948c6e296e13  libgfortran/generated/_asin_r17.F90
! 20bbb6be255f7e84a8ddd2769aac3b45  libgfortran/generated/_asin_r4.F90
! a15cba79a2c493d004733938ddccdb5f  libgfortran/generated/_asin_r8.F90
! d922871427b473f28a2fd0fc9ce26d96  libgfortran/generated/_asinh_r10.F90
! 34fd1df46f13da3d0f309032da18b55d  libgfortran/generated/_asinh_r16.F90
! 6ae4b2902a8978cbf5defd5244495ab7  libgfortran/generated/_asinh_r17.F90
! 770505d47629ed7052733bc9eaa4e7b0  libgfortran/generated/_asinh_r4.F90
! ca237f187194ee46d40d1135710493d1  libgfortran/generated/_asinh_r8.F90
! 5a215b743a2b064a7904e66952edee62  libgfortran/generated/_atan2_r10.F90
! 7a5eba703a3e6676cf63df653144f99d  libgfortran/generated/_atan2_r16.F90
! 271c693c3d4b6aed8f5c9674f6f1819c  libgfortran/generated/_atan2_r17.F90
! 358e4b2f0433248f99fdcf94f6c269cd  libgfortran/generated/_atan2_r4.F90
! 745b0e24551e0d23fb76cf00e4bf14f6  libgfortran/generated/_atan2_r8.F90
! 90d09d7d648c971e23349a0a7d9df82d  libgfortran/generated/_atan_r10.F90
! 44390ed7e6628a8cb7e1b86416ee7dff  libgfortran/generated/_atan_r16.F90
! 0b1d1cca4ad462481cb0325376dbb516  libgfortran/generated/_atan_r17.F90
! 14e08c9b348bc584d9a7376a26f8bc64  libgfortran/generated/_atan_r4.F90
! 00e00049ea81a129aecfeca0ff7e9a74  libgfortran/generated/_atan_r8.F90
! a6b8bee6a64616e61a6588fe4e1bf419  libgfortran/generated/_atanh_r10.F90
! 43455b8d798853b2918a22d07b696f29  libgfortran/generated/_atanh_r16.F90
! 3001b69a54149e7a58cf04fa1ec864ff  libgfortran/generated/_atanh_r17.F90
! 9fc13b89304222946a9582ef1fbb54c0  libgfortran/generated/_atanh_r4.F90
! 7fc3682ccb35ae51fc134f040a856762  libgfortran/generated/_atanh_r8.F90
! 15e398379c7160aa2a42916177ef86a4  libgfortran/generated/_conjg_c10.F90
! 2ae8fbeeab6015b5da73ac0529d69534  libgfortran/generated/_conjg_c16.F90
! 075735c1e7e64538a13fd672b81547b7  libgfortran/generated/_conjg_c17.F90
! 3d19244b60125f7b36794463444a1416  libgfortran/generated/_conjg_c4.F90
! f49f0fb766157195a6a99f0d04610904  libgfortran/generated/_conjg_c8.F90
! 217cfcc548d40b7f1ff095bea0f546ef  libgfortran/generated/_cos_c10.F90
! 47d8b543d507ddd5a2445aea3e7c76b6  libgfortran/generated/_cos_c16.F90
! 9c63f3e999ea147902512b58e8865e87  libgfortran/generated/_cos_c17.F90
! 8e8e01b18c35d840e5998492b0335781  libgfortran/generated/_cos_c4.F90
! 02bd90e0c5b41e7cc4d66edcf0f0e693  libgfortran/generated/_cos_c8.F90
! 3ce085c814d91de4ac246ef136545a04  libgfortran/generated/_cos_r10.F90
! 0af0a8fadff9d079756975cb745eb31b  libgfortran/generated/_cos_r16.F90
! c10507249e67735e3a357d54568ba179  libgfortran/generated/_cos_r17.F90
! 5ace3c2f59e31bf83aa8e37dd4531b81  libgfortran/generated/_cos_r4.F90
! 4f7a6710ad785af056dbea5d5ff9c402  libgfortran/generated/_cos_r8.F90
! 2400849163c991e436762a8e994242b5  libgfortran/generated/_cosh_r10.F90
! 0ea200bb19dc0e56ae1fc7269f823b6d  libgfortran/generated/_cosh_r16.F90
! c05c50a2b411f53ac5b01cdf75dfa24b  libgfortran/generated/_cosh_r17.F90
! 0c3866f69ced287d7e8dc067f0fc8991  libgfortran/generated/_cosh_r4.F90
! 1a98feffefbb4f8cf70e3d35d319d0a8  libgfortran/generated/_cosh_r8.F90
! 9d60245faa18571a16b6664a45dba563  libgfortran/generated/_dim_i16.F90
! 526313e4dde46844acfc8db9c94798a2  libgfortran/generated/_dim_i4.F90
! ac9a046918969f4cb8c395acf94fab55  libgfortran/generated/_dim_i8.F90
! 6b3996301b4719d0a03b0428c0a451cd  libgfortran/generated/_dim_r10.F90
! ee435626996f680d97363142d1a1106d  libgfortran/generated/_dim_r16.F90
! e7f4bec9dab5a6970e37923efece2f2e  libgfortran/generated/_dim_r17.F90
! c9c2c8e0fd626db5a2388da479f4b790  libgfortran/generated/_dim_r4.F90
! 4e8c987249bb3f9f13a5201c6755af8b  libgfortran/generated/_dim_r8.F90
! 825d7ef77c86a411978e61eda2778ac0  libgfortran/generated/_exp_c10.F90
! c3df9d5485b896462f7edc681eece0ca  libgfortran/generated/_exp_c16.F90
! 169dcd67f11d0b74aef5d0326261faf0  libgfortran/generated/_exp_c17.F90
! 4a8a8aae2ef2e10d0b5f569716c5ac32  libgfortran/generated/_exp_c4.F90
! c60d160d1460aaee1e00218ffd22d68f  libgfortran/generated/_exp_c8.F90
! fdc36cfd3c5c1044e290c82163e6f921  libgfortran/generated/_exp_r10.F90
! f4983789598ff15432a7d76f5f08c015  libgfortran/generated/_exp_r16.F90
! bbb1093c18e2457dd9955c045e8c78d9  libgfortran/generated/_exp_r17.F90
! 63255490a0c6a80de1e3f30ced612aa7  libgfortran/generated/_exp_r4.F90
! e44a42da331bd9eafac8bda503ab934b  libgfortran/generated/_exp_r8.F90
! d2dce347e86e17cf4505408cb3e37e97  libgfortran/generated/_log10_r10.F90
! 89cf2ce71a68fe935c9125989fd6e3f7  libgfortran/generated/_log10_r16.F90
! d121a401b40a6467fb94dc4eac7512fd  libgfortran/generated/_log10_r17.F90
! 3306d8286d0840b92dd1781fc5b4eb53  libgfortran/generated/_log10_r4.F90
! 646cc0f21676374d798e8b35d74a35d4  libgfortran/generated/_log10_r8.F90
! f803686278253d5655537e4d3a55db47  libgfortran/generated/_log_c10.F90
! dfb23a8ce33fdd389ea0caf2e1edd31a  libgfortran/generated/_log_c16.F90
! 7846498dc8ced3991087d633de0ebde8  libgfortran/generated/_log_c17.F90
! b27fa4c04792728b0ac29c4031101b0e  libgfortran/generated/_log_c4.F90
! 480bb9383c5c0c07d3abff307b97b867  libgfortran/generated/_log_c8.F90
! 928a6af2fbfb161d080695eb7c48b98f  libgfortran/generated/_log_r10.F90
! 4d472f8dcb104e82f869ad6e8623c7e2  libgfortran/generated/_log_r16.F90
! 81e868aae6ec5e77410681ba68c4c091  libgfortran/generated/_log_r17.F90
! ecc040fa611976bf5e3140e0b6fc8ea3  libgfortran/generated/_log_r4.F90
! 21daaf40eabec8684ce71cfb014a0576  libgfortran/generated/_log_r8.F90
! 58d23fcab8c205ec8646583888c33b11  libgfortran/generated/_mod_i16.F90
! 28f1ac5c35290192b6e2eebd77b19571  libgfortran/generated/_mod_i4.F90
! db3fa7017b6efb8cfcb6c6fb845d2e1b  libgfortran/generated/_mod_i8.F90
! b471bd94d6419dba81752afdf7cd6388  libgfortran/generated/_mod_r10.F90
! 84392ba60ca270551caa801c3d070e66  libgfortran/generated/_mod_r16.F90
! 8dd9fa2580658b91486975f6760cdf23  libgfortran/generated/_mod_r17.F90
! e3b86859c8cf6d7b8f3046fe8a570f8c  libgfortran/generated/_mod_r4.F90
! 5f372b75237befa103f1b91aa032cdfe  libgfortran/generated/_mod_r8.F90
! 027cd6a09758daa3c799ae651bddebc1  libgfortran/generated/_sign_i16.F90
! 0fb6ca5463596a437f000ecd53c5592d  libgfortran/generated/_sign_i4.F90
! 424288751123861d6f5f93b9332bb648  libgfortran/generated/_sign_i8.F90
! f7e249fb616db3e1da03590973d991ca  libgfortran/generated/_sign_r10.F90
! d658cf98eb4fbd79c672550b79cc1776  libgfortran/generated/_sign_r16.F90
! 5ab04aff6f40aa89142d64db30713002  libgfortran/generated/_sign_r17.F90
! 2c21726ff921968a0180a997d496be9f  libgfortran/generated/_sign_r4.F90
! 9b469b89a51f39dba0fbec8c76a3f983  libgfortran/generated/_sign_r8.F90
! 8d0f740c6a34b27d0f94941e7d5bf1f0  libgfortran/generated/_sin_c10.F90
! 95dd267af936f21edd9d0e7f3360d6f7  libgfortran/generated/_sin_c16.F90
! bacbedd697b08d224f770c9455ec729e  libgfortran/generated/_sin_c17.F90
! 7f66cde64c5c6093107c3e03174210ef  libgfortran/generated/_sin_c4.F90
! 8477fa9d00e3fecf6e1971f8913e4e6c  libgfortran/generated/_sin_c8.F90
! b5385c1554ad30e38744bc1e19704b1d  libgfortran/generated/_sin_r10.F90
! d9ba4d8f9392d86529e6aad65ac38ce1  libgfortran/generated/_sin_r16.F90
! 167b2369eceebc5b42eea6b488aa2a2a  libgfortran/generated/_sin_r17.F90
! 4bf0c15b8d8d533d0ce798fb7e686b84  libgfortran/generated/_sin_r4.F90
! 7d728213b4151d70606400cdc5d33016  libgfortran/generated/_sin_r8.F90
! e93948f320c264dd40831fe47658ce1f  libgfortran/generated/_sinh_r10.F90
! e9802945a11275e66111c5795247c4b0  libgfortran/generated/_sinh_r16.F90
! 530fe38a3c11883c9cb9c919a76b0165  libgfortran/generated/_sinh_r17.F90
! 9969eed0d168525e901db7c0c201827d  libgfortran/generated/_sinh_r4.F90
! 25330d54a9a4baaaa5885aaf975b8725  libgfortran/generated/_sinh_r8.F90
! d7234c2a3b735abcc05879b3769924e5  libgfortran/generated/_sqrt_c10.F90
! 1093dcdf842f9d8e3ad7656df6433fc9  libgfortran/generated/_sqrt_c16.F90
! 3583028003176842321bf349c5552f9a  libgfortran/generated/_sqrt_c17.F90
! f06c118db051cbc62f2a79613aeff1fe  libgfortran/generated/_sqrt_c4.F90
! aafe526dcbd622a990fb501aea363d40  libgfortran/generated/_sqrt_c8.F90
! f90a583fcf26e0b249fc9a5900d04a26  libgfortran/generated/_sqrt_r10.F90
! b248301672e7047a56f599d6b06e05ca  libgfortran/generated/_sqrt_r16.F90
! 79a889e30f151ee2cf0da520f40050b0  libgfortran/generated/_sqrt_r17.F90
! 077e0df46bd66b1aabaa54abbc6f50cc  libgfortran/generated/_sqrt_r4.F90
! 7c24c068df8b1d76fabeae9162490637  libgfortran/generated/_sqrt_r8.F90
! b490798cd309953f2fe1c92fabb24aeb  libgfortran/generated/_tan_r10.F90
! d7f492d2596f5bbc89aecf9b3ccf448d  libgfortran/generated/_tan_r16.F90
! e495fa30a57aeda88e89959c27b072c1  libgfortran/generated/_tan_r17.F90
! 156e5da4c1646535da839421a55c3fc4  libgfortran/generated/_tan_r4.F90
! b5366456df46028ce18af7ef4d7fcb82  libgfortran/generated/_tan_r8.F90
! f94b99e6557e9ec3e52a14d2478d454d  libgfortran/generated/_tanh_r10.F90
! 13ee7f217d033a9f4abd458ffb4a8d3b  libgfortran/generated/_tanh_r16.F90
! 7c65a45b712d816b0093065654a90c26  libgfortran/generated/_tanh_r17.F90
! d0351524818cc0d65bf4fdbcadb7631c  libgfortran/generated/_tanh_r4.F90
! f794fcbc3ee8968ef85ccabff064366e  libgfortran/generated/_tanh_r8.F90
! 4e13558f64a0295885b668c2ce81e229  libgfortran/generated/all_l1.c
! d4f5c70f59384ed66d23ddf0fcb44a50  libgfortran/generated/all_l16.c
! 7fbea53620bb2ee763a8578e98dad00e  libgfortran/generated/all_l2.c
! 77dc4902e44ab9fad3b5aca79259e68c  libgfortran/generated/all_l4.c
! 326e97508b7f75573c62cd120a87d3e5  libgfortran/generated/all_l8.c
! c353e586fc132e2fa4801492b6869c0c  libgfortran/generated/any_l1.c
! 5c4808d2fab5c50fbbac47563792490b  libgfortran/generated/any_l16.c
! 673fb75f11d539c76b12526c84455a52  libgfortran/generated/any_l2.c
! 88e25d1d786af5f9a56f1c778a34d512  libgfortran/generated/any_l4.c
! 71d61ecc7622ed3f7185740f267338b7  libgfortran/generated/any_l8.c
! 8f555d93f6cb7eaa65eb4115d8f4deaa  libgfortran/generated/bessel_r10.c
! 86679b01d8cec4ecd0794a86ba5516dc  libgfortran/generated/bessel_r16.c
! 0133243497e3952aaa0281e899ade66d  libgfortran/generated/bessel_r17.c
! dd35e7517092508f947e74dcfd3b4148  libgfortran/generated/bessel_r4.c
! 794951ce83906671764b01e81f59ebf7  libgfortran/generated/bessel_r8.c
! 02b61a211cd9f56bd756ea3f30d24581  libgfortran/generated/count_16_l.c
! a49fee65389039ddc8fc95dfb5c4aef7  libgfortran/generated/count_1_l.c
! a7ba2174e3229a9d8e3dfec348236d7a  libgfortran/generated/count_2_l.c
! 4b5f3f14c812a1bd01e9ce80f51e0dcf  libgfortran/generated/count_4_l.c
! 5a567c742ac09a89e3fe08cbd1d61291  libgfortran/generated/count_8_l.c
! 172fab260fddd8a1f75fd54e23239862  libgfortran/generated/cshift0_c10.c
! 5ffa9ff524db3ec183591aa718fc8a5d  libgfortran/generated/cshift0_c16.c
! 8eca839657d127fa36867c3c3710d372  libgfortran/generated/cshift0_c17.c
! 58d157f65ef9f59a22ce9ed3e2ca68c4  libgfortran/generated/cshift0_c4.c
! 63f9de34264ba151b8ccccfba5ee9211  libgfortran/generated/cshift0_c8.c
! 0b41212d580fcce2d2c93ab7a991bef5  libgfortran/generated/cshift0_i1.c
! 8a62c39f3e6930524403ef9ba27865b9  libgfortran/generated/cshift0_i16.c
! b57fa3507a548d966c60063b4ce2490e  libgfortran/generated/cshift0_i2.c
! ed628cf1d3990c5329f52b181e51788c  libgfortran/generated/cshift0_i4.c
! 3a9c0f950fea149a47ea54c6e43b25ba  libgfortran/generated/cshift0_i8.c
! 61be3852052ff905076a8db977c6c5c3  libgfortran/generated/cshift0_r10.c
! dd409f6d9d5e731cdc7a8434f1d0b219  libgfortran/generated/cshift0_r16.c
! 54063de180cc0e1b4668dc73406c2607  libgfortran/generated/cshift0_r17.c
! f49a685fe63ad0b7fbfdd614ecf3b934  libgfortran/generated/cshift0_r4.c
! 10b6bf5f1dbdf9a7a10be9191ce322c3  libgfortran/generated/cshift0_r8.c
! b530b3ba7de4899785aff03f45050d92  libgfortran/generated/cshift1_16.c
! 73158ce361a398b708107a78653586a3  libgfortran/generated/cshift1_16_c10.c
! 74b7ab0fa9f13e500c8a10a33a6e8682  libgfortran/generated/cshift1_16_c16.c
! c50f99f10654378aaa688858b2dccc7e  libgfortran/generated/cshift1_16_c17.c
! 06520e5418aad85da2680ac24da5e25c  libgfortran/generated/cshift1_16_c4.c
! a1931388cc906c033c320578797d578e  libgfortran/generated/cshift1_16_c8.c
! 4fe17b344ca973a5d0ab8e92aeb70b0a  libgfortran/generated/cshift1_16_i1.c
! ba237c0a96e1bbe26646a7ef2e3ec57e  libgfortran/generated/cshift1_16_i16.c
! 548ddb75915565fe1216fc9ee2d796c2  libgfortran/generated/cshift1_16_i2.c
! e298d875aeb52bad38e080414299e79a  libgfortran/generated/cshift1_16_i4.c
! 171e37607173167213f77bc7996c36f7  libgfortran/generated/cshift1_16_i8.c
! 6f02e631551c0adbd456b39e3cfdc089  libgfortran/generated/cshift1_16_r10.c
! 59221bdbedc8295e7755308e191bd49b  libgfortran/generated/cshift1_16_r16.c
! 355e24f3c65142a8493dec63e4872234  libgfortran/generated/cshift1_16_r17.c
! d97787df567666acc6822d613a768f57  libgfortran/generated/cshift1_16_r4.c
! 5411fffcd2a88f13b4b90d86ca12cb6a  libgfortran/generated/cshift1_16_r8.c
! 8e3d942523875a2ad225b915dbf6897a  libgfortran/generated/cshift1_4.c
! 38e1041f0165c37b0e4ad7fa52da7f23  libgfortran/generated/cshift1_4_c10.c
! 3f481f6be6dd60524db171c5114e8a98  libgfortran/generated/cshift1_4_c16.c
! d25540b36d147d42fd685b0502030493  libgfortran/generated/cshift1_4_c17.c
! 94948e37cee03b3e0ad2661be574579b  libgfortran/generated/cshift1_4_c4.c
! a50706f3304fb39c1fb09c9232abf714  libgfortran/generated/cshift1_4_c8.c
! a3d9c15e2a0f7ea908c29da64f642860  libgfortran/generated/cshift1_4_i1.c
! 66df66e7ce19a3a16ff39bbd2f841524  libgfortran/generated/cshift1_4_i16.c
! 812d0c4b3e3a695edae35b546413b710  libgfortran/generated/cshift1_4_i2.c
! 645b961ab859f1ff389f3d1276a51584  libgfortran/generated/cshift1_4_i4.c
! 7febdb37abe95078a8d973ef39aeb160  libgfortran/generated/cshift1_4_i8.c
! 101d2e97b2ada127a342b1710a7000d3  libgfortran/generated/cshift1_4_r10.c
! c2fd504953f0fa19f6a7a1a0c53dd1fd  libgfortran/generated/cshift1_4_r16.c
! 59738c02937176d7458b7e606a00355f  libgfortran/generated/cshift1_4_r17.c
! a53b004050b87f3da0a71f6cb2b9b208  libgfortran/generated/cshift1_4_r4.c
! 2f3abf0648e35fb07ff6be37e6712ac5  libgfortran/generated/cshift1_4_r8.c
! dfb96b1932ff294fd441a463d56cd0a4  libgfortran/generated/cshift1_8.c
! 92c595727c0cac7fadba89abf191b6e0  libgfortran/generated/cshift1_8_c10.c
! 7e52f50035092c9f1d04f13961c5aed5  libgfortran/generated/cshift1_8_c16.c
! ab6a4b0c69ba966d5d6a1be449f0ea99  libgfortran/generated/cshift1_8_c17.c
! 114c87767a226a16f53d8818224ae271  libgfortran/generated/cshift1_8_c4.c
! 84c4ff5636449504bf2b10edcbafcf14  libgfortran/generated/cshift1_8_c8.c
! f9e5d9475c1f16075d84cae5a137baef  libgfortran/generated/cshift1_8_i1.c
! b3f3464f8138628a7928a1c9e07ea587  libgfortran/generated/cshift1_8_i16.c
! 9c470c4774f56fb183e5818b56b187df  libgfortran/generated/cshift1_8_i2.c
! 2964044acfae1c39644094890fd9b99c  libgfortran/generated/cshift1_8_i4.c
! 5d722247e99ab6d9e0578364e817bb3e  libgfortran/generated/cshift1_8_i8.c
! d59a6f2d3709a416f436267e86120a6a  libgfortran/generated/cshift1_8_r10.c
! d2108f85233e8023d1a91f2fdf9d0fd4  libgfortran/generated/cshift1_8_r16.c
! 879577d29fb820c486e0e4a5d789368a  libgfortran/generated/cshift1_8_r17.c
! 861d224e71b1999e1858cd427fd4fb35  libgfortran/generated/cshift1_8_r4.c
! 959eacbe778d5d9ad7cd19b70fd62683  libgfortran/generated/cshift1_8_r8.c
! f8bf0ced2f65433053ca605709adc45c  libgfortran/generated/eoshift1_16.c
! e2b464c509b7581464ddf19428912a5e  libgfortran/generated/eoshift1_4.c
! 3dcfc5c2589d8fdef47a2faa488189c4  libgfortran/generated/eoshift1_8.c
! 33a2f14625ae1687ab3e41c8d7baa110  libgfortran/generated/eoshift3_16.c
! 18aeb3c77dfad8d3e458ce69daf8e33d  libgfortran/generated/eoshift3_4.c
! b48e7df9e68af79cb1be75814c478e82  libgfortran/generated/eoshift3_8.c
! e31ecdf79c8e66e8c57ee6347b6c5394  libgfortran/generated/findloc0_c10.c
! 48afd5cbd9e29ca02b12f08689319f97  libgfortran/generated/findloc0_c16.c
! 235f507cc380a1e3c82225404e357d2b  libgfortran/generated/findloc0_c17.c
! b40048c5707a1d4b8240c642648ca3d3  libgfortran/generated/findloc0_c4.c
! b3f5ae5b85423f244664d625e947aa3c  libgfortran/generated/findloc0_c8.c
! 6218818e7666fa9c27be9b30b711d470  libgfortran/generated/findloc0_i1.c
! 42ae4471f07998f3121e6bb068b4baee  libgfortran/generated/findloc0_i16.c
! 181e7a0a34acd2eb153d9cabc4c37611  libgfortran/generated/findloc0_i2.c
! 1637b246a0245c1a0c3f636dbc9fcf61  libgfortran/generated/findloc0_i4.c
! eaa2fc187e4c725f33b29c9bf2e9a79e  libgfortran/generated/findloc0_i8.c
! 28c7055612b3b8594397b9bb03ab377c  libgfortran/generated/findloc0_r10.c
! 870f3b5971d12c8cd1aad65669208e6e  libgfortran/generated/findloc0_r16.c
! 5c7533fe9eef2959ad4542ee2cb2450f  libgfortran/generated/findloc0_r17.c
! e867326ef53553f3612c7f3f07476276  libgfortran/generated/findloc0_r4.c
! 13ac0cf68c577a10abe7cbdf6ebf6b0d  libgfortran/generated/findloc0_r8.c
! ace0b21bde2041122ef5b64bdd448f63  libgfortran/generated/findloc0_s1.c
! 15f949031095429539fb43a49defa227  libgfortran/generated/findloc0_s4.c
! 5cebfd817bfdc707c8956f38c9d4bf18  libgfortran/generated/findloc1_c10.c
! 0189fcb623895172f2a15ad72855338c  libgfortran/generated/findloc1_c16.c
! 6779309393c0837599a177e73589689a  libgfortran/generated/findloc1_c17.c
! 6f172ad4b6291b43785ca994978744a5  libgfortran/generated/findloc1_c4.c
! b27c48d2f976bac43e4a2a200f92c43f  libgfortran/generated/findloc1_c8.c
! 32f25a99560c65caee5968fad1c1598f  libgfortran/generated/findloc1_i1.c
! 4925cfca93a49c8942330b39f8686854  libgfortran/generated/findloc1_i16.c
! a6a6adee0568d26bcd3ba0128946331e  libgfortran/generated/findloc1_i2.c
! 483e7913cd43a494f5e7067ef21ebe5e  libgfortran/generated/findloc1_i4.c
! 77e1d4ecb045a883e8e10b29b511d371  libgfortran/generated/findloc1_i8.c
! fe6958ed8223a13557abb8d1ff41e2d9  libgfortran/generated/findloc1_r10.c
! a6419ed8e29a5fb1eb58e37e7c0f98aa  libgfortran/generated/findloc1_r16.c
! 8cd30d5e8bf5116e27c09bc1b8d83943  libgfortran/generated/findloc1_r17.c
! b17bec84859ecfc3e6361f3795750935  libgfortran/generated/findloc1_r4.c
! 9dc10294a79c01169b166619221e4888  libgfortran/generated/findloc1_r8.c
! 0c7973abab4cce435527dabb6f6a36b8  libgfortran/generated/findloc1_s1.c
! 39f26bb8daec1525d659ceb5dfb1ddee  libgfortran/generated/findloc1_s4.c
! 2ebf8ac4fe4f3a5d7faf3ee1e009d94f  libgfortran/generated/findloc2_s1.c
! cdeda0cf3d38dd5600e24d6c6ee38b50  libgfortran/generated/findloc2_s4.c
! f2c87a8fd888ec762983474a516b5b3e  libgfortran/generated/iall_i1.c
! 48bbbc3d75942a4a496d90c0a17b808b  libgfortran/generated/iall_i16.c
! fa94a0c0bae4eeb22b2c3614cc501eeb  libgfortran/generated/iall_i2.c
! dd87b9a3840fc797c8417ec4bb0a6668  libgfortran/generated/iall_i4.c
! 8258f56186ba9f7d84a5829ee0932baf  libgfortran/generated/iall_i8.c
! 087eb77b9b94c5de791cd28d47bb89e3  libgfortran/generated/iany_i1.c
! b745046aa31ffd6ffeb3af3a7a51036a  libgfortran/generated/iany_i16.c
! f73f25b489f1f62d328929d9118b96be  libgfortran/generated/iany_i2.c
! 2a0d4c75c47abaaa304dde34fc7ab8f1  libgfortran/generated/iany_i4.c
! b8fc58bb068f4c116261392d8460808c  libgfortran/generated/iany_i8.c
! f142c68360d92561a78c56c10d0d5437  libgfortran/generated/in_pack_c10.c
! 38f743b2cb9dc2e29a875c9c394c4d71  libgfortran/generated/in_pack_c16.c
! d01c901505ebcb4f4c6f7bf8ddfb1804  libgfortran/generated/in_pack_c17.c
! 608ad61d713b3b941b2b6fbdefb91b49  libgfortran/generated/in_pack_c4.c
! 44d94445753fd5a24a3ac3ba1e5150fa  libgfortran/generated/in_pack_c8.c
! bb318872e8438c71733710721d6becc0  libgfortran/generated/in_pack_i1.c
! 3bd87009f3d06c39e89cbf3606d1a2d9  libgfortran/generated/in_pack_i16.c
! 95411f2da754c55cc7075d2e3da661e7  libgfortran/generated/in_pack_i2.c
! 8a1e39f3f042e8414187c0d48ba9b787  libgfortran/generated/in_pack_i4.c
! 8e047f8973f090a4f1158faadedac30a  libgfortran/generated/in_pack_i8.c
! 3546f7e1fe90dfe764f2d200b2e9b472  libgfortran/generated/in_pack_r10.c
! 1c904db968a7afecbb7972188b55cc92  libgfortran/generated/in_pack_r16.c
! eb2da2fd4fd43d7035596e591c9851fe  libgfortran/generated/in_pack_r17.c
! 16c4873e2ee0f9e4bdb413f33108eade  libgfortran/generated/in_pack_r4.c
! d8f6d21bdf5403b2c3f3b313234a4ae3  libgfortran/generated/in_pack_r8.c
! 280330a4e2584abf7319fe2844d1b303  libgfortran/generated/in_unpack_c10.c
! 64a56ae975e2deddea0156c6ad3d9f3c  libgfortran/generated/in_unpack_c16.c
! 802ff1764e2827a997b20780cf8c22a7  libgfortran/generated/in_unpack_c17.c
! e8e2491603a005ebb9d66be7d810cba7  libgfortran/generated/in_unpack_c4.c
! 2a3b243a0bb79b5c4c7a673082d02d5a  libgfortran/generated/in_unpack_c8.c
! e619777f1f936bef8445eb377c76c876  libgfortran/generated/in_unpack_i1.c
! de11591ebbecc997c21f260b0a62d8fc  libgfortran/generated/in_unpack_i16.c
! 597af54730405a45c6b58dfa867b9ab2  libgfortran/generated/in_unpack_i2.c
! a7241431ca788b0ef1cd9c2cbe7019b8  libgfortran/generated/in_unpack_i4.c
! 8d61e1b339bea9afc5498575bcfefc15  libgfortran/generated/in_unpack_i8.c
! a7c37670969c0ee869ae0f9d52e5174b  libgfortran/generated/in_unpack_r10.c
! 55cdc4e96bbe8fb12c3ec3aefae33fac  libgfortran/generated/in_unpack_r16.c
! 76c553b8a094697f9dbf63492c2271ef  libgfortran/generated/in_unpack_r17.c
! f09e2325481bbf0914a87298226b9561  libgfortran/generated/in_unpack_r4.c
! d9ca80132d16f44125de7ef28b20892f  libgfortran/generated/in_unpack_r8.c
! 4a87860fb0f60a970e4bacca53e236d8  libgfortran/generated/iparity_i1.c
! 3cb2092ca9331b036feaa14331b4195b  libgfortran/generated/iparity_i16.c
! 1822303cf031424990e1bd2e657945c0  libgfortran/generated/iparity_i2.c
! 1fa68298e2f6c320ded29018022ad4b0  libgfortran/generated/iparity_i4.c
! 180d072c16fd8b61a91eff00a23ac3b4  libgfortran/generated/iparity_i8.c
! e2af07326201771d1a706d53b42d05fe  libgfortran/generated/matmul_c10.c
! 5b261853aa63ed86098a370ce3c4cee9  libgfortran/generated/matmul_c16.c
! d3554b53bee6b672093551a51b3a96af  libgfortran/generated/matmul_c17.c
! 251e43a1431cbf64284ce7191b011939  libgfortran/generated/matmul_c4.c
! 2c922f0b9f88f67b3a1de82fd24e4b0c  libgfortran/generated/matmul_c8.c
! 9fe74126e47af35a5f11d7e45f045aae  libgfortran/generated/matmul_i1.c
! 853823df2377dafbf78f3d3637420770  libgfortran/generated/matmul_i16.c
! 711f874c4a716fca65c1f271afc2e5d3  libgfortran/generated/matmul_i2.c
! ccfdb135e89f4d6cedbcd5bd75326a91  libgfortran/generated/matmul_i4.c
! 0a618c3488478f4a2a0925abfa4e1836  libgfortran/generated/matmul_i8.c
! 2cc77636e3bebd09f13933fd02ff4cf9  libgfortran/generated/matmul_l16.c
! 21b42b8018f489cf89b7227afc3999c7  libgfortran/generated/matmul_l4.c
! d13f517138a77b04a2d1162fd44c2dab  libgfortran/generated/matmul_l8.c
! b7e7d501d9c2e06de1affef804a769fb  libgfortran/generated/matmul_r10.c
! 70a31a3a137cb2d4543c61dda778bcfa  libgfortran/generated/matmul_r16.c
! b85913f98a9d6a3aef1e259e77780d80  libgfortran/generated/matmul_r17.c
! 7d07425c384749fe5d3787a281b75045  libgfortran/generated/matmul_r4.c
! 3721e9c39677a27071463d6ff7b97ee0  libgfortran/generated/matmul_r8.c
! 2ce92ed2912f8393d44a3faf22c403e1  libgfortran/generated/matmulavx128_c10.c
! b14601af846da2388b17678705e7c028  libgfortran/generated/matmulavx128_c16.c
! c869becea53f349314be501385e6dbb2  libgfortran/generated/matmulavx128_c17.c
! a58e3610478eafecf10866bd1cac8535  libgfortran/generated/matmulavx128_c4.c
! 5fb30c2d511885584eab80a08d06c61b  libgfortran/generated/matmulavx128_c8.c
! e66466657def85ec07ed0395643da5b0  libgfortran/generated/matmulavx128_i1.c
! ef42a13f2e7ced33422f84089fc9f2f4  libgfortran/generated/matmulavx128_i16.c
! 9f401793cbeefe5645d6145fc11104b9  libgfortran/generated/matmulavx128_i2.c
! b1cd0dbbf49ea072525eecaf40e44154  libgfortran/generated/matmulavx128_i4.c
! 72dac3af4f7e82f1ba915b66c84a84fa  libgfortran/generated/matmulavx128_i8.c
! 58c802caacef9b0359c6252fbbc07062  libgfortran/generated/matmulavx128_r10.c
! 4b07b3185393b61d8eb3722981500040  libgfortran/generated/matmulavx128_r16.c
! ac548c8e6bd5864b5ff0988bb95f51a2  libgfortran/generated/matmulavx128_r17.c
! 408d7cef86b4f4120593a3727d4a1778  libgfortran/generated/matmulavx128_r4.c
! b692ff73751d37ef6fdc97c0eb5d7d97  libgfortran/generated/matmulavx128_r8.c
! e7f612ea1a124989a77479d645e7e09a  libgfortran/generated/maxloc0_16_i1.c
! d73b6fdb7586b37577f83cc60a220a60  libgfortran/generated/maxloc0_16_i16.c
! 1915657fdedb01d35c03af868c5df5d2  libgfortran/generated/maxloc0_16_i2.c
! a2b9e2de4c6617254274c3f6cc2cb54d  libgfortran/generated/maxloc0_16_i4.c
! 233e9f6bb3ac73135e7a6e9281cb2e66  libgfortran/generated/maxloc0_16_i8.c
! cb3e5e9a6a6592dc7c7e2481f9ff8c3b  libgfortran/generated/maxloc0_16_r10.c
! 2ea5853fb3382f14cbde7d9f451869a1  libgfortran/generated/maxloc0_16_r16.c
! daf9fb698146d2ebf9201fcc9af7a049  libgfortran/generated/maxloc0_16_r17.c
! b769011705670adc8935b3a93ca388c2  libgfortran/generated/maxloc0_16_r4.c
! acbf1bdd38b127acb0c1dcadb2155bfd  libgfortran/generated/maxloc0_16_r8.c
! 15932b98c89385b9e777ba9b3110c356  libgfortran/generated/maxloc0_16_s1.c
! d0e9ae0a2609684d8dd7ee3e65d10b27  libgfortran/generated/maxloc0_16_s4.c
! d4c7d610cd11069450989dcdc3ec07fa  libgfortran/generated/maxloc0_4_i1.c
! 6db85db08b551671dd72a8f045fce476  libgfortran/generated/maxloc0_4_i16.c
! 2169988fe41ec487f061e3601b6b308d  libgfortran/generated/maxloc0_4_i2.c
! 1d1cd53e18cf825a37c888650966b4c7  libgfortran/generated/maxloc0_4_i4.c
! 0dfe82ee1fc0b931267e39efbb2f7067  libgfortran/generated/maxloc0_4_i8.c
! b2e99a6860cd033724e081117e0b14b7  libgfortran/generated/maxloc0_4_r10.c
! d697ef4d23bebf587f06eec6842515bd  libgfortran/generated/maxloc0_4_r16.c
! 45852b2779055989ceca1597f465251c  libgfortran/generated/maxloc0_4_r17.c
! d79de8d3d13e78be6f82e004da232537  libgfortran/generated/maxloc0_4_r4.c
! 8e83114ef3f1bb4cb82d7db4d5380aae  libgfortran/generated/maxloc0_4_r8.c
! fcf256be57c9ce14d7a35297ecdbaf34  libgfortran/generated/maxloc0_4_s1.c
! 65ad9a41af967752ebc18caf688e70c6  libgfortran/generated/maxloc0_4_s4.c
! cf90d361364cb07a41ed02e082422ce2  libgfortran/generated/maxloc0_8_i1.c
! 466ac8c4a6f74bf1ab0ff5e84281b9ce  libgfortran/generated/maxloc0_8_i16.c
! f217fa5048b59f2e16911f5907ed56a1  libgfortran/generated/maxloc0_8_i2.c
! cdfab15565915b0c2d4636fc56ea9ff6  libgfortran/generated/maxloc0_8_i4.c
! 80cf2b7ee0e8aefadec9f97d5fcecd3b  libgfortran/generated/maxloc0_8_i8.c
! 303931f06c0c9cb69f793d4714b5d806  libgfortran/generated/maxloc0_8_r10.c
! 20a34403c3d07902b2f7a6d7e0faa871  libgfortran/generated/maxloc0_8_r16.c
! 74ef593dafd3b76936efca4eccc0cb76  libgfortran/generated/maxloc0_8_r17.c
! 7e07d20e7840e27384860dbbc3c80d24  libgfortran/generated/maxloc0_8_r4.c
! 7d59903a423b9bfe84856adac4d5d509  libgfortran/generated/maxloc0_8_r8.c
! 87e4994f02092969fa0040aad3cb76dc  libgfortran/generated/maxloc0_8_s1.c
! 5dfcfa2a8d02a09b1f71461875a4bfad  libgfortran/generated/maxloc0_8_s4.c
! 6c2b207b8324ca8c0fa6621a39b9deda  libgfortran/generated/maxloc1_16_i1.c
! 5c504b6da19ecd73e550e8bc16dd1992  libgfortran/generated/maxloc1_16_i16.c
! a93e25b6fb924d88ef2f81f6e7441f77  libgfortran/generated/maxloc1_16_i2.c
! e0728768db2d1463689ff3e9fd3beb4e  libgfortran/generated/maxloc1_16_i4.c
! b890e4fef2f15223acd4100b7c68b672  libgfortran/generated/maxloc1_16_i8.c
! 62b971f4673bbdc8c4781f9f0a3c4704  libgfortran/generated/maxloc1_16_r10.c
! af8b1fcf0e5fb45ecb5a260c75c8d2db  libgfortran/generated/maxloc1_16_r16.c
! 05c9be3731f34eb49120c390a4c7cb13  libgfortran/generated/maxloc1_16_r17.c
! 021b61bee81b13679b8e9aedb57e2b89  libgfortran/generated/maxloc1_16_r4.c
! 28977f2fb2e6352955731dcfe8608a17  libgfortran/generated/maxloc1_16_r8.c
! fd64b52796c07636f28eac8f498f2878  libgfortran/generated/maxloc1_16_s1.c
! 39bdebdb23f92f8d18267d8b14453cc1  libgfortran/generated/maxloc1_16_s4.c
! 21944c5afaf8b0fd5a0d8934ff422fd7  libgfortran/generated/maxloc1_4_i1.c
! b3317239defd2308a3481c704c2912e0  libgfortran/generated/maxloc1_4_i16.c
! 4e32fafca96b9b37c24236457ffdc9d9  libgfortran/generated/maxloc1_4_i2.c
! 8a21cf9a840e0c7bdaacbcddf44b4b18  libgfortran/generated/maxloc1_4_i4.c
! f63d4c140affbd39578595fd7e3866a3  libgfortran/generated/maxloc1_4_i8.c
! e3511ed8efbcbabc153ba36f5d746dec  libgfortran/generated/maxloc1_4_r10.c
! 002bc8861089686e9bab2b0ca1e9e4ac  libgfortran/generated/maxloc1_4_r16.c
! e132f12f22498e6e1c7e3803c8b559a2  libgfortran/generated/maxloc1_4_r17.c
! 564eb2eff62a565351dd06e689d2ef24  libgfortran/generated/maxloc1_4_r4.c
! c77bdbc8c95d9eb99d9f80224ac8bbf2  libgfortran/generated/maxloc1_4_r8.c
! 20c3167bf09d430f9b515e4bbace81ff  libgfortran/generated/maxloc1_4_s1.c
! 33938b76fe5302306ebbedb8875d4460  libgfortran/generated/maxloc1_4_s4.c
! 2b4d8e914fe07cd9fc572ed9bf6cd517  libgfortran/generated/maxloc1_8_i1.c
! 5893625de37006fe4dddbadaaf5b3d32  libgfortran/generated/maxloc1_8_i16.c
! 3099bb099a36b29a7fa4306d0d648874  libgfortran/generated/maxloc1_8_i2.c
! 59e116af1c5dbfa89253915182fbf102  libgfortran/generated/maxloc1_8_i4.c
! fa7f02276f0f6063ba11fa750d0b1788  libgfortran/generated/maxloc1_8_i8.c
! 2276f52ce72d747720a861042222d437  libgfortran/generated/maxloc1_8_r10.c
! abf097816deff1be5afefde10ce29ae4  libgfortran/generated/maxloc1_8_r16.c
! 7df711d3ff7b66135e05f73a73f187ab  libgfortran/generated/maxloc1_8_r17.c
! e9437e99605734d36484747b502360f6  libgfortran/generated/maxloc1_8_r4.c
! 3126b1ac1e3976b7235dd8ff40fccb8f  libgfortran/generated/maxloc1_8_r8.c
! d5c7f0d3f1f0ec34200826416f1042d4  libgfortran/generated/maxloc1_8_s1.c
! 000f09a20ff21083bc750980ba8ba91b  libgfortran/generated/maxloc1_8_s4.c
! 0c8abb0fb05447a0b92d11d827246d90  libgfortran/generated/maxloc2_16_s1.c
! cd51ec9b12d060f3af99427f284b4dd9  libgfortran/generated/maxloc2_16_s4.c
! 0d4068e49e159e5c6cff51c5e01c2d27  libgfortran/generated/maxloc2_4_s1.c
! 836a5c96016d42e47bb9394ecd6c377f  libgfortran/generated/maxloc2_4_s4.c
! 63a3de8507ec3a35d76ec81e0e0355ec  libgfortran/generated/maxloc2_8_s1.c
! dd8c37353f332e3e3f852a24506f5814  libgfortran/generated/maxloc2_8_s4.c
! 888a839abf66f62f2e94d40bf6c64768  libgfortran/generated/maxval0_s1.c
! 2f58aec33f4f8ce2350807f0efbad310  libgfortran/generated/maxval0_s4.c
! 549184878780f448c93745f85c3923bd  libgfortran/generated/maxval1_s1.c
! 923ae4346aeba7c35988a28e0cacde22  libgfortran/generated/maxval1_s4.c
! 31404795b5caabc6de2d86cd104934e3  libgfortran/generated/maxval_i1.c
! 17e76dbcb92af5949d67908abd12468e  libgfortran/generated/maxval_i16.c
! 9f18a39c14052dd58c18119b651f754d  libgfortran/generated/maxval_i2.c
! ff22b359145ed4cf2e30e703e1cb0ecc  libgfortran/generated/maxval_i4.c
! 893a41929af5a3c7a127ecf925e7efe0  libgfortran/generated/maxval_i8.c
! 3cb72ff0b2cedbc080d4a63deb5bda41  libgfortran/generated/maxval_r10.c
! 8ce90b058301160141593dc6121cafc6  libgfortran/generated/maxval_r16.c
! 243daba97c5cb9e454485cf64ae26bf4  libgfortran/generated/maxval_r17.c
! 115e8485edfda59c355c97e2a17f4f76  libgfortran/generated/maxval_r4.c
! f5c6082c1e220ab6486e80920f84dfa1  libgfortran/generated/maxval_r8.c
! cae41b13f7b7eda650bfd7b64caa5094  libgfortran/generated/minloc0_16_i1.c
! 4065b83aade0bd032e5370c512700330  libgfortran/generated/minloc0_16_i16.c
! a034153d3af597f668048cfe2abc5be2  libgfortran/generated/minloc0_16_i2.c
! f403c1b7bc549c17b48188e74d66312c  libgfortran/generated/minloc0_16_i4.c
! 5a9b5d79135e498de947cdf748377527  libgfortran/generated/minloc0_16_i8.c
! 39af747c2160dae8e29354b3c83e9b9a  libgfortran/generated/minloc0_16_r10.c
! 64f685006d72c6f67710a542b443a750  libgfortran/generated/minloc0_16_r16.c
! 2161fffec60ec255d8cb33e7fc24f16d  libgfortran/generated/minloc0_16_r17.c
! 7627b700b8b3f24a635266e58f5ae63b  libgfortran/generated/minloc0_16_r4.c
! 825388761f227d0b5f4aa634e0b7a56e  libgfortran/generated/minloc0_16_r8.c
! 383f7b0b5e2b961770bba9f13f10efb1  libgfortran/generated/minloc0_16_s1.c
! af3471f75743453306e3e33614029885  libgfortran/generated/minloc0_16_s4.c
! 8a1a90fcf87cbe36e1e9bee1a4e5c5b2  libgfortran/generated/minloc0_4_i1.c
! 890773b9ca5beb5c4a9622add8326e75  libgfortran/generated/minloc0_4_i16.c
! 7a991c159fb8fd3389ed5cd6e888893d  libgfortran/generated/minloc0_4_i2.c
! 89405dd5a548c9a6c0304a715f3ab2f1  libgfortran/generated/minloc0_4_i4.c
! 390cbbd427df9fa9c692a84a68f5e50e  libgfortran/generated/minloc0_4_i8.c
! 9b3e50e057e399fefb12ecaf9fa6c661  libgfortran/generated/minloc0_4_r10.c
! af6518d8ae7f837a82c0d7ec74807ec4  libgfortran/generated/minloc0_4_r16.c
! a0b38b2d68c03b8e9f2244208ebee515  libgfortran/generated/minloc0_4_r17.c
! 6a83f7dc0c89304338a7a501f571fa41  libgfortran/generated/minloc0_4_r4.c
! dd1240868a7f782ac61fa670c6ad4a08  libgfortran/generated/minloc0_4_r8.c
! 69bf29429a1f2a07c3827f3e4bd099a2  libgfortran/generated/minloc0_4_s1.c
! 465cda61f3efbf255f076d6e11941974  libgfortran/generated/minloc0_4_s4.c
! b91df8b1bbbd0ae4397facd9bb42c87c  libgfortran/generated/minloc0_8_i1.c
! 71b3078e0dde38e7a2394a48be64c20f  libgfortran/generated/minloc0_8_i16.c
! 91b07a544ceb7e88ad1595bcc6599281  libgfortran/generated/minloc0_8_i2.c
! 5d91ff21ba78488076e9fe0c46fe38d1  libgfortran/generated/minloc0_8_i4.c
! 8085ac262f7b8ffa00bc8671683323ad  libgfortran/generated/minloc0_8_i8.c
! e1b555e49875a8df71b55b848024769a  libgfortran/generated/minloc0_8_r10.c
! 760a169721962ef677f7408bd668c41a  libgfortran/generated/minloc0_8_r16.c
! 5bd327c4e830a733b960de5d7eaa343c  libgfortran/generated/minloc0_8_r17.c
! 6278ed30874d808ab7dc49d962f73d27  libgfortran/generated/minloc0_8_r4.c
! 9cd7fbe0d06ab54398510e28c4f117e3  libgfortran/generated/minloc0_8_r8.c
! 06734b707dd3bd0cd14fda6393a673fe  libgfortran/generated/minloc0_8_s1.c
! 3f8c4930820c754ba0786872bdfc778f  libgfortran/generated/minloc0_8_s4.c
! 9cac71872e0a42bbe83a168db50879aa  libgfortran/generated/minloc1_16_i1.c
! d7c40c7789d47bfe6d9e0537e5c5e1a6  libgfortran/generated/minloc1_16_i16.c
! bbbda8ffa3cac542b28f21fb46a566d1  libgfortran/generated/minloc1_16_i2.c
! 5385dd0a483eb2b6ce3e6e5b2cba3760  libgfortran/generated/minloc1_16_i4.c
! 3d1a352d8e12ed07c126bd3e52d9bc39  libgfortran/generated/minloc1_16_i8.c
! c9fb11ec052ea2c8fd61cafd1b237212  libgfortran/generated/minloc1_16_r10.c
! 64c905e4946f5ab84ca2af11d9108a8d  libgfortran/generated/minloc1_16_r16.c
! dce014d809712c190ac967ab8b6e9c18  libgfortran/generated/minloc1_16_r17.c
! 4fc5cf276fc63eb0d9fed8291e5f1a2a  libgfortran/generated/minloc1_16_r4.c
! 2500c58ae5b6bbb4f607ce06203ce829  libgfortran/generated/minloc1_16_r8.c
! 56d351a8ad8acc9f87df6ce2a4d204c3  libgfortran/generated/minloc1_16_s1.c
! dce8a9b6ee41a5df12f014db141bc5c5  libgfortran/generated/minloc1_16_s4.c
! 10bccc05a67c476cf3e9f78a2dd0e925  libgfortran/generated/minloc1_4_i1.c
! 1ee06ea0623a3e012fb8d28566b379af  libgfortran/generated/minloc1_4_i16.c
! 058229ead5bfd94ce11097b14f793e15  libgfortran/generated/minloc1_4_i2.c
! b92e88416fa80c9cfc687025b6c95622  libgfortran/generated/minloc1_4_i4.c
! 789aa5e071c2de965988c8406c1b2969  libgfortran/generated/minloc1_4_i8.c
! f19b9bfb883d82efaad946e2bb02fbbb  libgfortran/generated/minloc1_4_r10.c
! c7cbe7b071bdff9131364a805b4d3d4b  libgfortran/generated/minloc1_4_r16.c
! 201c44330f3a1d2542b6d571c34bab83  libgfortran/generated/minloc1_4_r17.c
! 2c228529be8be60937599b049da110be  libgfortran/generated/minloc1_4_r4.c
! 23b471f0f0fe5f5d75022c6b20f2d274  libgfortran/generated/minloc1_4_r8.c
! 23b1849e5e02207be34fbdaea8a155b2  libgfortran/generated/minloc1_4_s1.c
! fbd75534a59b1a3dfd3486e467c3be91  libgfortran/generated/minloc1_4_s4.c
! b641ddb490394565d7a830c07f48f975  libgfortran/generated/minloc1_8_i1.c
! 4272f4c2b2091243f3ffd2aee54a70a2  libgfortran/generated/minloc1_8_i16.c
! 914a9536ec8d20599b0bb44d2f5fb99d  libgfortran/generated/minloc1_8_i2.c
! 0780a19d72e4b122575b4a3d11c6ad44  libgfortran/generated/minloc1_8_i4.c
! 99a58e1052c5eedf636467c154be2bc8  libgfortran/generated/minloc1_8_i8.c
! 70e4542440c3e5a2c3ec9d787b0f5aa8  libgfortran/generated/minloc1_8_r10.c
! e02bfc3b9609ddf8d82d22f8a6c570a8  libgfortran/generated/minloc1_8_r16.c
! 99eac5f7dcd17e2cd13149fadbeee8cf  libgfortran/generated/minloc1_8_r17.c
! 7342f1eddca71ac143e933007d702136  libgfortran/generated/minloc1_8_r4.c
! 6b85ef54d48ef114dc6090908b959168  libgfortran/generated/minloc1_8_r8.c
! c610bd030db897e607082d6fdc9aafb6  libgfortran/generated/minloc1_8_s1.c
! ff928f0ee754312e6503df160b8de4f1  libgfortran/generated/minloc1_8_s4.c
! 97d35d4ff6066478cba83a8bcc9b2237  libgfortran/generated/minloc2_16_s1.c
! 52b807d11f0f6fe902d330b4dd390dab  libgfortran/generated/minloc2_16_s4.c
! 0018c0cedc55aa5a53739307824f3d25  libgfortran/generated/minloc2_4_s1.c
! 1f053b21a2d0c113a582f5745421e68f  libgfortran/generated/minloc2_4_s4.c
! c2aab1f3b9081ac738fc358a7f60ca92  libgfortran/generated/minloc2_8_s1.c
! 8b6fb27160ce0e1c8bacf70f72a67628  libgfortran/generated/minloc2_8_s4.c
! 16a14bc6a38a49a3c12c6a701d138c1e  libgfortran/generated/minval0_s1.c
! c3397c9b8b0d2838b089d25169be38c2  libgfortran/generated/minval0_s4.c
! cc57bbd362f85fceb3887978981e1ac2  libgfortran/generated/minval1_s1.c
! 39766fa9ecf4747e16ece8343f7c1a89  libgfortran/generated/minval1_s4.c
! e53930472b7e29e6dcc86bb7294f2ee3  libgfortran/generated/minval_i1.c
! 799f20ca304559e1ed7de62a27f8900e  libgfortran/generated/minval_i16.c
! d9769073502d800080b8ce9931b69122  libgfortran/generated/minval_i2.c
! 42cbd26e6442c03671da86d87713db45  libgfortran/generated/minval_i4.c
! 0f837a66b736f39cba362ae1649bddbe  libgfortran/generated/minval_i8.c
! e743b10f23dad8cbb7a2c7bfb0ee9d10  libgfortran/generated/minval_r10.c
! f0c24e3cb48210c63d18190538a61dcb  libgfortran/generated/minval_r16.c
! 5bef61f5180609615bd25af0ff4b7e42  libgfortran/generated/minval_r17.c
! 36c605979debcc68691770b1dcb36249  libgfortran/generated/minval_r4.c
! ca0138fdc943103a17be1e74aab2a83f  libgfortran/generated/minval_r8.c
! 34bb35395929a1d3ad5281170efcc6d9  libgfortran/generated/misc_specifics.F90
! 4934ff76774a3e8383ebf82bbeab3266  libgfortran/generated/norm2_r10.c
! 9589965929e9dd2b1f5888d47b45cb2a  libgfortran/generated/norm2_r16.c
! e0723df260ec891fc06dff82cae307cf  libgfortran/generated/norm2_r17.c
! 54bc898729658347d4b6bd1a5db4d96b  libgfortran/generated/norm2_r4.c
! 3913d615cfb46bf13755531ccccee70b  libgfortran/generated/norm2_r8.c
! 5f57e1151cc06a1c0cc0ef2fb9921607  libgfortran/generated/pack_c10.c
! c877ad9c907d5a871b0a2523e30c8c9b  libgfortran/generated/pack_c16.c
! 25f04f69eb759712204a1dddd84c886a  libgfortran/generated/pack_c17.c
! 74089d92d6b6be271366fa5f43d001e4  libgfortran/generated/pack_c4.c
! 8b3fffe75c039483b4619ea55acfbe5e  libgfortran/generated/pack_c8.c
! d1ac4aa2f4d7f0c586cdcb5615319983  libgfortran/generated/pack_i1.c
! 19e27dcc05660c9cd08bbdfb332d1a52  libgfortran/generated/pack_i16.c
! 43ddfb07f6f919eef42208c14dbb7121  libgfortran/generated/pack_i2.c
! a28b55cbd61e172b5143860260936c42  libgfortran/generated/pack_i4.c
! 1580c3091d5a168e6db6b5db73cf0232  libgfortran/generated/pack_i8.c
! bbaf976a0508b3b281117dc6905a41aa  libgfortran/generated/pack_r10.c
! 453bd76dc4ae0944e13f49b18dd6a8d7  libgfortran/generated/pack_r16.c
! c27742c268586c3723db29d53641d14e  libgfortran/generated/pack_r17.c
! 4b8fcd467c84c77cdd1fb35d19f5253f  libgfortran/generated/pack_r4.c
! 0ef00e98ff22aec1751cb91563c9fcb1  libgfortran/generated/pack_r8.c
! bbb59c616b768763aa474ffe201e63c2  libgfortran/generated/parity_l1.c
! 18c5c04b3e21944a6d538c9cf9db5940  libgfortran/generated/parity_l16.c
! f84671367b01166b727ba879c4ef4ad9  libgfortran/generated/parity_l2.c
! 7e813155611826e0ed73b6de6dab8d82  libgfortran/generated/parity_l4.c
! d2ea870127c1bda0d64306ff49c12bcd  libgfortran/generated/parity_l8.c
! f60362cdb73b6806c8f4f2685006f016  libgfortran/generated/pow_c10_i16.c
! 85f56222ec38acd08975c57d3596cc5e  libgfortran/generated/pow_c10_i4.c
! 211c8de1a33b5c760cc54b8f47237dca  libgfortran/generated/pow_c10_i8.c
! 1d4ce73a65cf4729ed8107a79d700d41  libgfortran/generated/pow_c16_i16.c
! beb9db54802ca704646ce89772fee07d  libgfortran/generated/pow_c16_i4.c
! 00c4819848f8f0466eea3e6320829244  libgfortran/generated/pow_c16_i8.c
! 7552b16e2cb2d558b989d99fac80a141  libgfortran/generated/pow_c17_i16.c
! 5d110c533a9af62f6fe8f831d7d8187a  libgfortran/generated/pow_c17_i4.c
! 239eff037a5012956fbd84308388c18d  libgfortran/generated/pow_c17_i8.c
! a653f3719e9023866dca345b69eb04d6  libgfortran/generated/pow_c4_i16.c
! ec6c3fd1bb4079433b4590bf98629183  libgfortran/generated/pow_c4_i4.c
! 3e7e2a556e298c24d29f56749e127f88  libgfortran/generated/pow_c4_i8.c
! 080a690ed4270ac0282441fd83b1b3cb  libgfortran/generated/pow_c8_i16.c
! b6487fa12c7fea3b3a4e5cd4f5f1f087  libgfortran/generated/pow_c8_i4.c
! 49152958f65aed9b5f9a03009b9f394c  libgfortran/generated/pow_c8_i8.c
! e259a6b24018794e2990a42078531ae9  libgfortran/generated/pow_i16_i16.c
! 1e3fe7e1c4998e5533b71f844e8d5fd1  libgfortran/generated/pow_i16_i4.c
! f3ff8de3cd722620ef82ad02e324b9dc  libgfortran/generated/pow_i16_i8.c
! 040f778ab4d2e4a73f7a9a6364adaf2d  libgfortran/generated/pow_i4_i16.c
! b80190a66e4113b86c840a877bbf51d8  libgfortran/generated/pow_i4_i4.c
! 4c17ae1b58da3c264c66b97d7d04739e  libgfortran/generated/pow_i4_i8.c
! 068f653e9c9a6b3f080e6318fff01cd8  libgfortran/generated/pow_i8_i16.c
! 633ed6be6b4ee2f00117e0fc9685e3b7  libgfortran/generated/pow_i8_i4.c
! deccc2a13b86433e2fa80a50c1dd8e75  libgfortran/generated/pow_i8_i8.c
! e86da066acb88e2de86ea2c4740c474d  libgfortran/generated/pow_r10_i16.c
! cb5e9d36e1d444772ffb65e0c1850d1b  libgfortran/generated/pow_r10_i8.c
! 75b69267c0c8a2d59df5b84d6a27cbf8  libgfortran/generated/pow_r16_i16.c
! 4619d852312b09719fa32c0d9e291413  libgfortran/generated/pow_r16_i4.c
! b0eee7af6fde47b14a51a00e33968d14  libgfortran/generated/pow_r16_i8.c
! a28f9e2fceb454dad39e332fc76a4c68  libgfortran/generated/pow_r17_i16.c
! bb3771fd6a1aeb40ab1698342acc6e9b  libgfortran/generated/pow_r17_i4.c
! 4975c500d37d4f744571cb5116826154  libgfortran/generated/pow_r17_i8.c
! d0a982f91ad2e81fc953e03aec7378df  libgfortran/generated/pow_r4_i16.c
! 01812b8482177b32fdc6e086d5af0398  libgfortran/generated/pow_r4_i8.c
! 0e666bcd09bc57c94083af1a9609be83  libgfortran/generated/pow_r8_i16.c
! 3b2f86995c4e0cff14599dc994e4b50a  libgfortran/generated/pow_r8_i8.c
! a001374d66f1afea3aa1933f08b113b6  libgfortran/generated/product_c10.c
! 4835e25bf82fac509b28262ea3e50338  libgfortran/generated/product_c16.c
! 908ce1ec4a286c73beb492dadcf083e4  libgfortran/generated/product_c17.c
! c09c921d9833cc62d4dc0ba22fab2843  libgfortran/generated/product_c4.c
! 167e40d76b2f66d468c71240f31c620b  libgfortran/generated/product_c8.c
! 698055d083247a213165b7d8783bb4ad  libgfortran/generated/product_i1.c
! 3ee2dbbbc7ca905b04bc66a973da7cc5  libgfortran/generated/product_i16.c
! db65237fd3919e3771baf057b5c282e7  libgfortran/generated/product_i2.c
! 1be708593101074cb886606531433ebc  libgfortran/generated/product_i4.c
! c30dcb884713b048ba32fd5663ce0dd3  libgfortran/generated/product_i8.c
! ac63a25e302e8ed7494bca82655d3934  libgfortran/generated/product_r10.c
! 50e59deca0f25434f07dd691c5c651f1  libgfortran/generated/product_r16.c
! b99e8aacc4a4c442fa971899a29729fb  libgfortran/generated/product_r17.c
! 95ceff6e8cbc66b26784fd5781284d4e  libgfortran/generated/product_r4.c
! 9c0fed22552f84a9e86217ae48b243db  libgfortran/generated/product_r8.c
! eb61610c09763f6eed813632ed0387d1  libgfortran/generated/reshape_c10.c
! 6ce93fae40510025db89e1b37045b1b6  libgfortran/generated/reshape_c16.c
! 8d4515e0695d0add3c2c9386c1484563  libgfortran/generated/reshape_c17.c
! b5ee3e3f87f462b603d88861ce2e88af  libgfortran/generated/reshape_c4.c
! d234194421aa2ce073648243acfed978  libgfortran/generated/reshape_c8.c
! aac187a7ca44f9490a0a84891cd858eb  libgfortran/generated/reshape_i16.c
! 90465de7e9d8c44a3a2e875c385eb975  libgfortran/generated/reshape_i4.c
! f169f57d6673098e35a053218364ab81  libgfortran/generated/reshape_i8.c
! 0e57160e9347d21e44e3a189071428a1  libgfortran/generated/reshape_r10.c
! 36ff412049c87723b7f540d2bd88e5c7  libgfortran/generated/reshape_r16.c
! 175c008c0cb7a6c95c4ec7a69833d2c3  libgfortran/generated/reshape_r17.c
! f95979b0f91dbb650b8be63617a7230d  libgfortran/generated/reshape_r4.c
! 4887a5946db804641382aca911e4df1f  libgfortran/generated/reshape_r8.c
! ae334b4faa414701ee52adbd0901c3bb  libgfortran/generated/shape_i1.c
! 5dcd4c640635103f8723a9c09646359b  libgfortran/generated/shape_i16.c
! 48e5634b89a8f828e5b2720df5f83689  libgfortran/generated/shape_i2.c
! efb8edbfef79cc021fbc1ed19a3b66d1  libgfortran/generated/shape_i4.c
! 0f2fe10cf9120846d40293ac488377df  libgfortran/generated/shape_i8.c
! 4a10b82016b172a7806dd6a41eeee2a6  libgfortran/generated/spread_c10.c
! c42e9fd61a2bbbfff81ec84929f248b7  libgfortran/generated/spread_c16.c
! 417fcbda7c9e069967dd85b877d29609  libgfortran/generated/spread_c17.c
! 411c4efc44d5fecbe57bfeb4e42b237e  libgfortran/generated/spread_c4.c
! e22f1a0ccf12fe2fb88ba0cf89656724  libgfortran/generated/spread_c8.c
! e6bd7af9afe1591fe01d8758e16faec5  libgfortran/generated/spread_i1.c
! f1a41ade8e5994413cd9e8d240b9e697  libgfortran/generated/spread_i16.c
! fa1ef266f9abb9cf952cb20518cf8b1a  libgfortran/generated/spread_i2.c
! 51e78aff445775e271271e02e1e689ea  libgfortran/generated/spread_i4.c
! db4b34b01cbcab3a6401e63c3f2e437d  libgfortran/generated/spread_i8.c
! 3a77042edcd19aa55bbc7b97ead9f320  libgfortran/generated/spread_r10.c
! 2e7d0ab687d0fd6df48518939ed49189  libgfortran/generated/spread_r16.c
! 10a64951160e2668a0a9af6e20142ee4  libgfortran/generated/spread_r17.c
! b9b916a50e9ee08526429a3a7efc8cd0  libgfortran/generated/spread_r4.c
! b788d6665d942a565ac502d10c77bea8  libgfortran/generated/spread_r8.c
! 13dc89322820418a6e8c3740caf9cd40  libgfortran/generated/sum_c10.c
! b4cb59954f8720c7d1ff231475fcf691  libgfortran/generated/sum_c16.c
! 7e94d76638716b576ed8b19141ce9808  libgfortran/generated/sum_c17.c
! 645bd96a079130094ac8c13efe094000  libgfortran/generated/sum_c4.c
! 519892f886a6abf0edbfbaea20c15e8f  libgfortran/generated/sum_c8.c
! 9f39b40edf91ea4887adc97282be26ae  libgfortran/generated/sum_i1.c
! 31ce72c229ed8ac42853f5b640b832e2  libgfortran/generated/sum_i16.c
! a84ef37655bbde30e1199317bb0c8bde  libgfortran/generated/sum_i2.c
! 9e19e5748efa40e63b3930367db47957  libgfortran/generated/sum_i4.c
! 5f8f01c1fc8e4b1f02c489440251dbb9  libgfortran/generated/sum_i8.c
! 0d4a5bacc91409555ab6a6ebc850bb0f  libgfortran/generated/sum_r10.c
! b0d444d3f674df4dbe58c4a940da957d  libgfortran/generated/sum_r16.c
! 8fb10fd8c79b70308056739c871deda8  libgfortran/generated/sum_r17.c
! 3e1625de6eb63fb09902ae0f32187c01  libgfortran/generated/sum_r4.c
! 85db4e84fd789dd880457246240676ed  libgfortran/generated/sum_r8.c
! 626d9a58f4ad3bc855f23c980103c05b  libgfortran/generated/unpack_c10.c
! 356a54b7eb9df5234bf41b0b61ac617e  libgfortran/generated/unpack_c16.c
! a807d0a095e40bf59fb379f092ccf944  libgfortran/generated/unpack_c17.c
! b2eb3599d20a250e1dc5a4b0bfd299db  libgfortran/generated/unpack_c4.c
! 7513fd157ef0bc5ed7c083f1662ae8f0  libgfortran/generated/unpack_c8.c
! 1cbf1a2443bc7dad82af2105bc8ba839  libgfortran/generated/unpack_i1.c
! 251105415f40133ebb4d50ac9766bf95  libgfortran/generated/unpack_i16.c
! 805be936a9901a1a9985b3ee2b17f362  libgfortran/generated/unpack_i2.c
! 8d0dad9daa41ae12a180dc17fce1ea64  libgfortran/generated/unpack_i4.c
! 7a3b684d999a9b33522052ec53ac91d9  libgfortran/generated/unpack_i8.c
! cb92d084919e3cb7c66d6cc006a08c19  libgfortran/generated/unpack_r10.c
! c230093ada518a0a91af4f5b752d6654  libgfortran/generated/unpack_r16.c
! 2b640cc5798a8d2daedacb2ed4aa6422  libgfortran/generated/unpack_r17.c
! 6acf17784230e123d020cd47c99e007d  libgfortran/generated/unpack_r4.c
! 76a4eb2822b1fc944b90f1552b042762  libgfortran/generated/unpack_r8.c
  6047b324cdf9582fa357ad03af8413d0  libgfortran/gfortran.map
! f8bd48e186e1ade72cd21eb782e66160  libgfortran/ieee/ieee_arithmetic.F90
! 4ab11a06fa77a134ed8b30d0b4023f70  libgfortran/ieee/ieee_exceptions.F90
! 1d66321588f7f5922c4d0764a5a3dceb  libgfortran/ieee/ieee_features.F90
! 5163afb2a136584a87e935a7758f392f  libgfortran/ieee/ieee_helper.c
! 83709f29e21f943dfd9d6336b7412454  libgfortran/intrinsics/abort.c
! 850e52efc37856b175b55a81d2e476d4  libgfortran/intrinsics/access.c
! 2d61369709579c2c80d76279786908c7  libgfortran/intrinsics/args.c
! d6a84ef77949cf8bb3af7879fcf0f2b8  libgfortran/intrinsics/associated.c
! 44833c6eabbed43178d34bff59a2f5ae  libgfortran/intrinsics/c99_functions.c
! 8d45cec1c6da840fc9fcd064dea837ab  libgfortran/intrinsics/chdir.c
! 5bc4f93a23efe9774b284cc6e336c311  libgfortran/intrinsics/chmod.c
! 72c1ab67d3f4d9d897da15271649047c  libgfortran/intrinsics/clock.c
! c4742b531fcc5aab072dac896eb241a0  libgfortran/intrinsics/cpu_time.c
! d5c6b13e2e0c206c677cc06215f0588a  libgfortran/intrinsics/cshift0.c
! b1af0590e5f50945f4dbacfff28b94f8  libgfortran/intrinsics/ctime.c
! 7adaefc1c71e18b3a86e6586df6edeb4  libgfortran/intrinsics/date_and_time.c
! 3a97c1b389c4ffd38ced63764095ef73  libgfortran/intrinsics/dprod_r8.f90
! a7054f0e21bd63f046f36993ea83bdff  libgfortran/intrinsics/dtime.c
! 8f89a8356d8e4bde6242eecc87f0899d  libgfortran/intrinsics/env.c
! 0f2dd7de0d770820e3f743e11b1d55f5  libgfortran/intrinsics/eoshift0.c
! 9396932533425f580c09a60e76ef5007  libgfortran/intrinsics/eoshift2.c
! 93499e4d1cddff70ace7f5ec8dd5939e  libgfortran/intrinsics/erfc_scaled.c
! ca538f853f642e668622214de9e50112  libgfortran/intrinsics/erfc_scaled_inc.c
! 1617a4cbed29e1cd3b6c1d4ad73b1328  libgfortran/intrinsics/etime.c
! 065ce35ba93d5cee6c86bf10f58a1ae7  libgfortran/intrinsics/execute_command_line.c
! 77747d3b3171efa1514d780d5296f6ec  libgfortran/intrinsics/exit.c
! 0d58759697bc71aea0dc9c02b28caa92  libgfortran/intrinsics/extends_type_of.c
! 2eeba104ce7c93620266333c839c3120  libgfortran/intrinsics/f2c_specifics.F90
! 42d7ead4d5d76e421ddeb798765269bd  libgfortran/intrinsics/fnum.c
! 71e708207011db4e6474dca8456de7f0  libgfortran/intrinsics/gerror.c
! 13c206c6ae19014d0830ac6b5aea8435  libgfortran/intrinsics/getXid.c
! bdf456f153ebbae1d27ab4a82e1bb05e  libgfortran/intrinsics/getcwd.c
! a52193451384c74071c89e882343aa0d  libgfortran/intrinsics/getlog.c
! e5b1b4a1cbd827b50714545a8f23f5fa  libgfortran/intrinsics/hostnm.c
! 6be613ddbff7c429d977f6d09ee06c80  libgfortran/intrinsics/ierrno.c
! d81b068d16848d5496a9898be4a710cf  libgfortran/intrinsics/is_contiguous.c
! adb60316d9569e5c1394895ac844a7aa  libgfortran/intrinsics/ishftc.c
! fcf1817414eec25a82e25406c3861a0d  libgfortran/intrinsics/kill.c
! 6d76030093da7c8c081c94aeddd5f1bd  libgfortran/intrinsics/link.c
! d88c687ecc571b4b86df7c9f9ab3c9f4  libgfortran/intrinsics/move_alloc.c
! 1f30150110e472429c84b401e46ba394  libgfortran/intrinsics/mvbits.c
! ffc50395b9919525256d5dfb100000e4  libgfortran/intrinsics/pack_generic.c
! 4cdd8d1534ec51b45924f253bdb4bf99  libgfortran/intrinsics/perror.c
! 6d5d09369f17d502330da2a2f8fcfa24  libgfortran/intrinsics/rand.c
! a52227bed7da7252ac69700f8747f2f3  libgfortran/intrinsics/random.c
! e3b930412a2e5ef23a02f15f329bd63f  libgfortran/intrinsics/random_init.f90
! 79f4e695221f941a3e1f8eb96a1c2035  libgfortran/intrinsics/rename.c
! 2304614773c1eeb62004e5687ae1b5df  libgfortran/intrinsics/reshape_generic.c
! e0f50ddb6dc03ead6f809a6efb3a21e4  libgfortran/intrinsics/reshape_packed.c
! a20bb64becd7f453db6583875486a4c4  libgfortran/intrinsics/selected_char_kind.c
! c43586fa93cdb34b8a412cc9bb3a1673  libgfortran/intrinsics/selected_int_kind.f90
! 27227f36aa69b6913da96e0ff43067c4  libgfortran/intrinsics/selected_real_kind.f90
! 9e442b5b593972212b4121cc09a8607c  libgfortran/intrinsics/signal.c
! f54bfe52a6a5614847cba4ecbce774f8  libgfortran/intrinsics/size.c
! 1b0dd39f30e94d26bacb66b9ae958606  libgfortran/intrinsics/sleep.c
! fe0f256862232ee1c27fa518c0a49581  libgfortran/intrinsics/spread_generic.c
! 379bbf9b2a3db6e9d990a2ae35ad4cb8  libgfortran/intrinsics/stat.c
! c1abb1666c24f185d879fee1051a4d52  libgfortran/intrinsics/string_intrinsics.c
! 020a25873ca73b72ee264c55e84d7e2c  libgfortran/intrinsics/string_intrinsics_inc.c
! e476783aa36ce1eac1d4a986b7172a36  libgfortran/intrinsics/symlnk.c
! c09db6dca0ad31f798613fd6c3eb7199  libgfortran/intrinsics/system.c
! 6b66e02eaadb9f0be41e627fcab580e7  libgfortran/intrinsics/system_clock.c
! a0835f3bfb8063a3eba2bd28a80c6290  libgfortran/intrinsics/time.c
! 68c6ef25c47b96fbb1699f53b38d1cf5  libgfortran/intrinsics/time_1.h
! 41118ce029d721bd195501c117ec643e  libgfortran/intrinsics/trigd.c
! 5d44f2d528c07d1781e327b180e7ddb8  libgfortran/intrinsics/trigd.inc
! 49183d14b9b350007c0b31ee658f0f68  libgfortran/intrinsics/trigd_lib.inc
! 12c305ce4de917ad912e6fae8ca2257b  libgfortran/intrinsics/umask.c
! 05f086aa8bb6858c20520fdf6c1edcf9  libgfortran/intrinsics/unlink.c
! 45adae36a247cddb3149e3055e316e5c  libgfortran/intrinsics/unpack_generic.c
! ad8b102099f5f45ee836866f9a742a5c  libgfortran/io/async.c
! 2ce176000756b8c78c1fb278a561b570  libgfortran/io/async.h
! 4df66a7d42234aaef53fdf9dc9cf996e  libgfortran/io/close.c
! 66964cb155034a9b124cc896a64cc195  libgfortran/io/fbuf.c
! e8a82519140086a4f34ce14b57b1ce90  libgfortran/io/fbuf.h
! 48d3df371c134dfb2f04efa7d5104c51  libgfortran/io/file_pos.c
! 16778be619d549705acb78758af2fd9b  libgfortran/io/format.c
! ee05f48372d74baceb1fb54b2b50c832  libgfortran/io/format.h
! a5541fce7a5e3f8a69bc0480d92c129b  libgfortran/io/inquire.c
! cd4169badc2339fe24a7465ca43d789d  libgfortran/io/intrinsics.c
! 808e3a1682657a86ca0d777fc2680768  libgfortran/io/io.h
! d98019f00b3643e63acac73bc2696ae9  libgfortran/io/list_read.c
! 83f3764bdb26963a0c41c9a668b47ac1  libgfortran/io/lock.c
! a6a41fb6ed430bb4daec3b2c6eae5311  libgfortran/io/open.c
! 429fe237654386e3d9642334699673eb  libgfortran/io/read.c
! 151028bef9920ae54d7041229d57a56b  libgfortran/io/size_from_kind.c
! 3dd8163bf57f72420976e2199daebb18  libgfortran/io/transfer.c
! 230abe73ca1541ce53b5a04141b10c6a  libgfortran/io/transfer128.c
! 7a913d3cb266981506ba0355e56bead4  libgfortran/io/unit.c
! e9904579373944fe08e9ac334b25196e  libgfortran/io/unix.c
! 159cdda10e2bebf81f0dbbffe6a63cdc  libgfortran/io/unix.h
! fbdd549ecbc64ec4308a96867f5a6b7d  libgfortran/io/write.c
! 52eab6322a32f50d2131f6defc809395  libgfortran/io/write_float.def
! cb353200a9c6bc5f14e02a6270aabb2a  libgfortran/kinds-override.h
! 5e0c3d0f15d82ea2ad36e268784c82bd  libgfortran/libgfortran.h
! 0acddc63592eb50916263aa49d35efe9  libgfortran/libgfortran.spec.in
  dc1a87f5ed3520558b0fe9f43e4f5ba8  libgfortran/libtool-version
! 406df9adff3eb4f13893daddd1cee4e8  libgfortran/m4/all.m4
! 32c7ed205b580526e92f9560a02a71e5  libgfortran/m4/any.m4
! 92175dbb215f254b55734fc0419cefbc  libgfortran/m4/bessel.m4
! 9d13d2f6827e6b27ed27d8be8ecf23f0  libgfortran/m4/count.m4
! 3ed2cde9f32dc634b485fb976f046609  libgfortran/m4/cshift0.m4
! b70dff35aee1156c970f99546e94bb59  libgfortran/m4/cshift1.m4
! f7306910148f3d257a8c48eab21b33a8  libgfortran/m4/cshift1a.m4
! f1175feffd23ace37b03f755ab41aed3  libgfortran/m4/eoshift1.m4
! 51fc818b899cfcd73ccba44eeebd0bcc  libgfortran/m4/eoshift3.m4
  a70290662a995bcc0ff8ac868b6eddda  libgfortran/m4/findloc0.m4
  22271fa12e82c61051f302c3a5072376  libgfortran/m4/findloc0s.m4
  111ea74dceb547cbf63c12832d73d5f4  libgfortran/m4/findloc1.m4
  be432b0e528c65667e6d736e1537515d  libgfortran/m4/findloc1s.m4
  62c4506b866cb09ea489c455e7c2e8bf  libgfortran/m4/findloc2s.m4
! 37645fd79d024b00386fe83f51a28fe2  libgfortran/m4/head.m4
! c9d8247486900e2a58d4acd1506ca530  libgfortran/m4/iall.m4
! 5c584a4f4d1d101c847a9683896f816d  libgfortran/m4/iany.m4
! 12e65c85a7b1380da4a2b2626a3e28c8  libgfortran/m4/ifindloc0.m4
! 7c318bfedf88da606a14b334606eca73  libgfortran/m4/ifindloc1.m4
! a9b333e990ea3269022c5ca5dd2a5651  libgfortran/m4/ifindloc2.m4
  143daeeed4d4e1baa17753b51ddd88be  libgfortran/m4/iforeach-s.m4
  ef77f0d18ce645146e5155d85730a2dc  libgfortran/m4/iforeach-s2.m4
  8bbbce69fc532a405b1b88c79c2ef47b  libgfortran/m4/iforeach.m4
  d41d8cd98f00b204e9800998ecf8427e  libgfortran/m4/ifunc.m4
! 89b98ba2db8ff2252ed184a6c20b8f31  libgfortran/m4/ifunction-s.m4
! 1603b9dcffb8d8436da0598e622783a9  libgfortran/m4/ifunction-s2.m4
! 3cbecd5d114cf344efea0d4754437c7a  libgfortran/m4/ifunction.m4
! 86a682dafdbffea255a15ff37710c93a  libgfortran/m4/ifunction_logical.m4
! 26dd01624305a0c0dab74cc3646c5b9f  libgfortran/m4/in_pack.m4
! de116712a0438756ab9088ceeeed57f5  libgfortran/m4/in_unpack.m4
! df69dc7cecab5da40f62784bcedf670c  libgfortran/m4/iparity.m4
  931d3e6134be8b18f8fd4b755b0f33cc  libgfortran/m4/iparm.m4
! 9dfefd9a2453d8ef511e89448679084e  libgfortran/m4/matmul.m4
  f90a0613ba9c7910fede3029a8db5527  libgfortran/m4/matmul_internal.m4
! 5b29f3b2de20855ffebd6f7970c5ed7e  libgfortran/m4/matmulavx128.m4
! aa00c963c5894aef260a2582577cf747  libgfortran/m4/matmull.m4
! 4a0383ce8a896dd1707238dee73259d2  libgfortran/m4/maxloc0.m4
! 704635440ffe3544a7b5ed071c194570  libgfortran/m4/maxloc0s.m4
! 7a48df838a08b5772894e7a7f35874c9  libgfortran/m4/maxloc1.m4
! ae3abcb1bc7b1bcea924833fc8612626  libgfortran/m4/maxloc1s.m4
! 4bdee60072825fb954e660f2b922e6ac  libgfortran/m4/maxloc2s.m4
! 303dccd351a5a4d21f7c8bf7776ad79f  libgfortran/m4/maxval.m4
! 953751aaf307be916b3f11df71c9097f  libgfortran/m4/maxval0s.m4
! 1430f30b8c6dc16c1db2794d350041b9  libgfortran/m4/maxval1s.m4
! 3e862971753c6a655cdbf96aad5ed588  libgfortran/m4/minloc0.m4
! 6c8927381ab3750edeea11e48405de0d  libgfortran/m4/minloc0s.m4
! e926e3ec307fe1069719faaf0bcdd0ef  libgfortran/m4/minloc1.m4
! a91a206179303b5355d846f04cd32fb1  libgfortran/m4/minloc1s.m4
! d8657549646e6319d0fa620f0a0a8a22  libgfortran/m4/minloc2s.m4
! 42996baf060828b41d899b18ffc5c0b7  libgfortran/m4/minval.m4
! 34cc5204d729114a55e478ca42e9b72b  libgfortran/m4/minval0s.m4
! 8b331bb2b8000fc9e3e74521fea84073  libgfortran/m4/minval1s.m4
  6d8cbcd1d1489f643839e7ac2c00a736  libgfortran/m4/misc_specifics.m4
  70d9300a1cebaef5ef324dad027b2fc3  libgfortran/m4/mtype.m4
! d90afd34269b2fcbbd33a00a75e1931b  libgfortran/m4/norm2.m4
! 2d8d1e577fe0aa36b066478b6fec21c0  libgfortran/m4/pack.m4
! 85c80d06a9e0bcb21b48f54febfb6e9a  libgfortran/m4/parity.m4
! 50d2e1efae77d68fa3d0eed1e7288db1  libgfortran/m4/pow.m4
! a503553e59a409ec1b0204af38806cd0  libgfortran/m4/product.m4
! 5b441a86c43c91ea210f75be7090bde8  libgfortran/m4/reshape.m4
! cf055849304830f4f04ff10c46ba5ee6  libgfortran/m4/shape.m4
  2b8de82dc8d9a5bfe1aebe4edd8e2adc  libgfortran/m4/specific.m4
  fde11348d3f1f27d7e48fd646db7c9b0  libgfortran/m4/specific2.m4
! f944ee93251a2407993a56d95192bd34  libgfortran/m4/spread.m4
! 87125946eacf600853b3c34a9ceedb90  libgfortran/m4/sum.m4
  0ad0318f00c85db29d184dc3dff12276  libgfortran/m4/types.m4
! 2f0160429bbf3d09fcf8144fa9253163  libgfortran/m4/unpack.m4
  1661b058a524a21873b501b1d9d972a6  libgfortran/mk-kinds-h.sh
  5cacd438c86553689eda2ce3d5623b45  libgfortran/mk-sik-inc.sh
  f8813ac773f6f6eb0ea6ecb287fb9250  libgfortran/mk-srk-inc.sh
! da92812c2c4db06c78344f15eaf795f8  libgfortran/runtime/ISO_Fortran_binding.c
! 1c9c59f07cfc5b2ed488e386948ef147  libgfortran/runtime/backtrace.c
! 10ae0c12f8ea623e90b824ada5813e21  libgfortran/runtime/bounds.c
! 67d3f0f3fd13729e0b4406c5095a3f23  libgfortran/runtime/compile_options.c
! bd3a8f9fbc5109c7ce61e3e7ffbbfd31  libgfortran/runtime/convert_char.c
! abc5f11de5874611d5c51eecc1b91490  libgfortran/runtime/environ.c
! 3c3f0f987f891a6cbec039887e9fac0a  libgfortran/runtime/error.c
! 6072cc83eaf0f68c9d848f50ac1c166e  libgfortran/runtime/fpu.c
! c2da0d42aeeb6b22537072b198c1e815  libgfortran/runtime/in_pack_generic.c
! 99cfb8bbd73be3b48e00f50360a7bdcd  libgfortran/runtime/in_unpack_generic.c
! 25f411d89f2c55649d32138604df9126  libgfortran/runtime/main.c
! f28fe1ab0bb0ba15e91445d6e791cdf6  libgfortran/runtime/memory.c
! 01dfbd2cd2d86d4153f13313bfffa2b8  libgfortran/runtime/minimal.c
! c87426032ff9745d21a72b2252600951  libgfortran/runtime/pause.c
! 340ffa4acbd81c691caa42464a1fe21f  libgfortran/runtime/select.c
! f8ec0c7cb3d2eabb48625cdc600708a9  libgfortran/runtime/select_inc.c
! 55fd2fd3b90bb8261a9398449ad6368d  libgfortran/runtime/stop.c
! 69ebfc81af9a19cab0a2e3014118803a  libgfortran/runtime/string.c
! 7e718ffb2839f556addbcff5b51e59af  libgm2/ChangeLog
! 8bb8d5e70d5876414059d98f12750d6c  libgm2/Makefile.am
! 5e4e23cb881b813a205daf6267226c02  libgm2/Makefile.in
! f01c32771907a48f7b24b2d90ca336bc  libgm2/aclocal.m4
! 60344c1b0c482e7f8038c1bfafe18c6e  libgm2/config.h.in
! e6cf1406f1932aa0604d29f6cb340c77  libgm2/configure
! 0608b1b0bf5c572556b8f1b7a25db6ae  libgm2/configure.ac
! 486fff39ba5311d5eec3de64121743de  libgm2/libm2cor/KeyBoardLEDs.cc
! 5bd6074297abc94cfff5e603e5d48a8c  libgm2/libm2cor/Makefile.am
! 239448a2cd0f3d6389cf896d0e0a3e4a  libgm2/libm2cor/Makefile.in
  256f893d9141ee50fb703d08f0c7ce3a  libgm2/libm2iso/ChanConsts.h
  1f06a5aa78117852f125ffe8c8925116  libgm2/libm2iso/ErrnoCategory.cc
! 9ae4210e81fddd084076406afceed2d8  libgm2/libm2iso/Makefile.am
! 4e874d366ea9eea1da1d91014741ddc6  libgm2/libm2iso/Makefile.in
! 4b10df779974459cd3d6567e6f4bfd3e  libgm2/libm2iso/RTco.cc
  60e20d4966763ff532153264c355ec8f  libgm2/libm2iso/m2rts.h
  e3037b97506181892bc760a12d9c5f69  libgm2/libm2iso/wrapsock.c
! 826933392e21b0d0df6a5a7cc4dce7b4  libgm2/libm2iso/wraptime.cc
  eb003ee7f1b2cf1972500be967c4d5eb  libgm2/libm2log/Break.c
! 925f2af91166fd282835d954d136960b  libgm2/libm2log/Makefile.am
! 23b57a90795bae018b1cc04335d734f5  libgm2/libm2log/Makefile.in
! 73ca96b0d4ebc77c69852077445bf2d3  libgm2/libm2min/Makefile.am
! f20aa94e7e4e13c41d9b27f04da7a2ba  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
! f72ce205d3d21004cfe27c0113f1cf00  libgm2/libm2pim/Makefile.am
! 577db7bd3fae257f9694ba7264490eaf  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
! 0b25446807f766ae32f14b474c46fc14  libgm2/libm2pim/cgetopt.cc
! 2cb0d13b5db4dfe8d3608202b1f64c41  libgm2/libm2pim/dtoa.cc
  9aa81c2dceff4dee4c02d1c0008e6e11  libgm2/libm2pim/errno.cc
! 7d5a1e88fae922929d5a80b2cc0eab61  libgm2/libm2pim/ldtoa.cc
! 77d56042a869f8af140d13302bf2a81b  libgm2/libm2pim/sckt.cc
  44cc0efcc2bd43aa980512c2bbc30067  libgm2/libm2pim/target.c
  22c07cb71fa1f60f5fa45ba985a4bf0f  libgm2/libm2pim/termios.cc
! 614aa09575d713d00e82fc58aa564645  libgm2/libm2pim/wrapc.cc
  5d4950ecb7b26d2c5e4e7b4e0dd74707  libgo/LICENSE
  160ac38979ae9334894994a1e7b4bf3b  libgo/MERGE
! 103dc1c9bcc7da87396632a330514fc2  libgo/Makefile.am
! 83b7fedc69fa8310c80b80d8eb3fd640  libgo/Makefile.in
  3a55d95595a6f9e37dee53826b4daff2  libgo/PATENTS
  d0952f0b499c9ebb887222764488a2fc  libgo/README
  492dd43b98c6602a8754328947942c40  libgo/README.gcc
--- 111924,112874 ----
  561d7b7050b65ea8eac91bc825d5a816  libgfortran/ChangeLog-2020
  14d3ee4271b29519e2e38d5f4214dcc3  libgfortran/ChangeLog-2021
  04ba4326735f4e023c1e7b6eac76c6d1  libgfortran/ChangeLog-2022
! 970e63612f1d7bcf41f16ec9d5099e88  libgfortran/ChangeLog-2023
! a8b176fe50f7a633bed26d804cb957d0  libgfortran/ISO_Fortran_binding.h
! 6086449c41b52dcb992109c2616c2b26  libgfortran/Makefile.am
! ebf3b51df2cae93d22d9ccbe42a811d1  libgfortran/Makefile.in
  afcceb7777065b494d4e0d779ffb764d  libgfortran/acinclude.m4
  77dad7b87b2adfbfda676696055ef90f  libgfortran/aclocal.m4
! be4654bfd0b79e5883d0d11ff04146dc  libgfortran/c99_protos.h
! f42105c9dee5f5bb266283b9bc39da9b  libgfortran/caf/libcaf.h
! af877ca1c4ebc1f45c4795cacda27901  libgfortran/caf/mpi.c
! 4a54c226d7633eed07ce1a88a5423117  libgfortran/caf/single.c
  8ae52aba7942d5b5531d2d61328be165  libgfortran/config.h.in
! a86007eb394a2d0b02ee7ab3eefd6a3b  libgfortran/config/fpu-387.h
! e2b09338910f62c843abbc21d042164d  libgfortran/config/fpu-aarch64.h
! 2d289f5bf3bf718f16a2a0e13ef24924  libgfortran/config/fpu-aix.h
! e99aef0c127ac2750dedc7bb11952d81  libgfortran/config/fpu-generic.h
! a98a35f477775aa216959722cab4ae43  libgfortran/config/fpu-glibc.h
! e495d8d763d1d4dbbe6a1c99a4ee2f1e  libgfortran/config/fpu-sysv.h
  93375010faf12b59ff1618874a0beacd  libgfortran/config/t-aix
! 8be65c0a6fba9d2721b8f7e12c9f093a  libgfortran/configure
! 14e36ee4c8f22c67399a232fc99c384a  libgfortran/configure.ac
! addba668d966e9ffb0096f23df112487  libgfortran/configure.host
! 25dd6113d8f840fd9d76ee8131e5c200  libgfortran/generated/_abs_c10.F90
! 6bf4ac5f3e04b47cf25a551c00f037e9  libgfortran/generated/_abs_c16.F90
! 8f05172b33330101128f48f0bdcc8ba9  libgfortran/generated/_abs_c17.F90
! 28a540ca33cca6df6d0a3d0e911b64c3  libgfortran/generated/_abs_c4.F90
! f9ff0307efbe14bbe82922e117fd9554  libgfortran/generated/_abs_c8.F90
! 1936f16d14a981b12cdf93d5aa598c0b  libgfortran/generated/_abs_i16.F90
! ccf3fe23bc23151ed0d0659974960939  libgfortran/generated/_abs_i4.F90
! 845828b127364bcc6a8200c9997063de  libgfortran/generated/_abs_i8.F90
! f62746b3ae912ddbfcdbd4af2dd45c1b  libgfortran/generated/_abs_r10.F90
! 60a679eee9feb1236dac7897612a209b  libgfortran/generated/_abs_r16.F90
! 1210b55e35815590bcc8e72b3061f7f5  libgfortran/generated/_abs_r17.F90
! 9cae9d41fec430bfa126e8e7ab305721  libgfortran/generated/_abs_r4.F90
! 6cee211163c9642a4e0fa6eba59bcef4  libgfortran/generated/_abs_r8.F90
! 4fb5d3c297ecb4285b6773d6738e57c1  libgfortran/generated/_acos_r10.F90
! 30900a79668156acb64e4516a5a67536  libgfortran/generated/_acos_r16.F90
! 8fbfa0312562a40a2008b75a92717975  libgfortran/generated/_acos_r17.F90
! e5113af0fbf0e592291d17ce14c9ad71  libgfortran/generated/_acos_r4.F90
! 74ed12d207d88ed1f6c6d721077fa1fe  libgfortran/generated/_acos_r8.F90
! fac995f4f297cf4096e1274ccaf00dbb  libgfortran/generated/_acosh_r10.F90
! b72a434414e14fa5b197ea611c050204  libgfortran/generated/_acosh_r16.F90
! 300f9136426bf4d64ed28065dd743654  libgfortran/generated/_acosh_r17.F90
! 92a1fe2cc4da619af2de624d09434d35  libgfortran/generated/_acosh_r4.F90
! b806e4f72ba6d708c7a818c5a49e1e2a  libgfortran/generated/_acosh_r8.F90
! 3ec61ce3928e2c48dc7cc89b7f56840e  libgfortran/generated/_aimag_c10.F90
! 7298489ae59299cae248dc27c04151d6  libgfortran/generated/_aimag_c16.F90
! 6121fca82e653079e07d55c8ae6cccde  libgfortran/generated/_aimag_c17.F90
! cfa6b71780c458d1daa7fa9247531b25  libgfortran/generated/_aimag_c4.F90
! 6282484d4c1251766c2757fa56950fb2  libgfortran/generated/_aimag_c8.F90
! eb5de5cd72e1a7911c8d1e95e0b58081  libgfortran/generated/_aint_r10.F90
! 1e4795c3fa80741c13863f9520496e53  libgfortran/generated/_aint_r16.F90
! 3b955dd76a973437417f81b4a07e9c12  libgfortran/generated/_aint_r17.F90
! fd4992dba7b740002a067e5c374b277a  libgfortran/generated/_aint_r4.F90
! 49666752e0c20530246350df9f2b4ab3  libgfortran/generated/_aint_r8.F90
! 07885a47171c8233bbd818e2c1fee54c  libgfortran/generated/_anint_r10.F90
! eec06823356617fd29b6251ce20ab886  libgfortran/generated/_anint_r16.F90
! b762dd088fde7da9e0e60c255237a42e  libgfortran/generated/_anint_r17.F90
! ea1e0f477b9070f1e64f77e6232e5d01  libgfortran/generated/_anint_r4.F90
! d1fefacc5197ad8ec9fd45a4628b7e52  libgfortran/generated/_anint_r8.F90
! 4ac952122290ebe3d9295ec25302fa43  libgfortran/generated/_asin_r10.F90
! d17fd2c6c9dc8bdbbcb5c1d14c4ca79f  libgfortran/generated/_asin_r16.F90
! a366d5c9378d758dc1af5f32237d7612  libgfortran/generated/_asin_r17.F90
! bb45c7220d2651e5a479a39372279eb9  libgfortran/generated/_asin_r4.F90
! 57543201ca0deb16f3c68edcfaf44e00  libgfortran/generated/_asin_r8.F90
! 4aaf97ad8085cbd1f7b5ed58409badd8  libgfortran/generated/_asinh_r10.F90
! 9c2c50b8a638fa24d0077a56a4a09934  libgfortran/generated/_asinh_r16.F90
! 7d58a0ee99bff6491e86227f9f7161a3  libgfortran/generated/_asinh_r17.F90
! 5e998b8cfac012e72ca257161efdc887  libgfortran/generated/_asinh_r4.F90
! 96a203bb12221ae8ca53318267df71c6  libgfortran/generated/_asinh_r8.F90
! 158bc2f2bcb34d83621cfcf4f030b106  libgfortran/generated/_atan2_r10.F90
! 9ed6b6c593a6ac3e82fd95bb3458b001  libgfortran/generated/_atan2_r16.F90
! d74857691b9cd77d95bf4fe8f89e7ade  libgfortran/generated/_atan2_r17.F90
! 67d6dffeaea4d36e35a8b690e2a295ef  libgfortran/generated/_atan2_r4.F90
! 96df773837820bf981f282e66db8a560  libgfortran/generated/_atan2_r8.F90
! d6a5f6fe8a6b368df50efc87f070f038  libgfortran/generated/_atan_r10.F90
! 11a7e1d231216213aa17208e842377ac  libgfortran/generated/_atan_r16.F90
! 79981cb7e076044f4bc2eb65861e045e  libgfortran/generated/_atan_r17.F90
! 00b10ab9fd9a09d77c3bc29db29e43c4  libgfortran/generated/_atan_r4.F90
! 1da435f684e03d0ba92c82d5322bb623  libgfortran/generated/_atan_r8.F90
! 963bed2bf01c904ef9e81222ae88b972  libgfortran/generated/_atanh_r10.F90
! 5da824ffd7f92c0d56678cfbcb5fce6f  libgfortran/generated/_atanh_r16.F90
! b531f4c99ce27f96801acdcce42b8d99  libgfortran/generated/_atanh_r17.F90
! dfb8981ca3cffef4f59da7aefea2d42a  libgfortran/generated/_atanh_r4.F90
! c65c5b1d8a2be716e0fbd49ae2555d0c  libgfortran/generated/_atanh_r8.F90
! 5713153c96dc7b80992d78039db1ebea  libgfortran/generated/_conjg_c10.F90
! 2ff02d9e40502a9044c811d43b2f9943  libgfortran/generated/_conjg_c16.F90
! af18dcd79d5cbb201723186dadf1146d  libgfortran/generated/_conjg_c17.F90
! 2e16e3fb56eaafcbac26f7de3870c18d  libgfortran/generated/_conjg_c4.F90
! a3fcf73306c47949da601eb4e1c2a958  libgfortran/generated/_conjg_c8.F90
! 61f3de70574e9417a4369cf9fccbdb97  libgfortran/generated/_cos_c10.F90
! 795c2d81bd00336059121d337cc999f2  libgfortran/generated/_cos_c16.F90
! 7934c0e8135f56d64777b2ee8da11c06  libgfortran/generated/_cos_c17.F90
! 4ac6ad738c057283427a4b58ddfa0ca1  libgfortran/generated/_cos_c4.F90
! 33a199f891948687df9dde8d3c8bfc08  libgfortran/generated/_cos_c8.F90
! 315d28d2063cea77b909f1f9ce313a28  libgfortran/generated/_cos_r10.F90
! 86a814b69d0897827e4b17b411122b62  libgfortran/generated/_cos_r16.F90
! ddda4b0e0566bb46381724a1d47f8fe2  libgfortran/generated/_cos_r17.F90
! 6d38f1e6de0917a0677c2fee3e2461c2  libgfortran/generated/_cos_r4.F90
! 589ad1cd219bb7c285696243cdfafa88  libgfortran/generated/_cos_r8.F90
! 52c42dcb1f1cb69c9d63b1349d245dda  libgfortran/generated/_cosh_r10.F90
! 61d261f6a373ca83b0c4bde21383615d  libgfortran/generated/_cosh_r16.F90
! 49b8cb50043b58696f917c5b804faae9  libgfortran/generated/_cosh_r17.F90
! bcc80725372b770c778fa234b6ae3208  libgfortran/generated/_cosh_r4.F90
! 63807b7c5bb0ecf641cfa2e37309ff54  libgfortran/generated/_cosh_r8.F90
! 583291ba75347d859de7fa37149e56b4  libgfortran/generated/_dim_i16.F90
! a361a3b588f39fcf9765f0620d80deb5  libgfortran/generated/_dim_i4.F90
! c591d917fd7bfe7dba3368066ba043b9  libgfortran/generated/_dim_i8.F90
! ba360167faf4cf0e85026119b7435e90  libgfortran/generated/_dim_r10.F90
! bc1d3f65331581a35eb3d532ab898be6  libgfortran/generated/_dim_r16.F90
! 2ac04f02752ca9e3146400f354deae91  libgfortran/generated/_dim_r17.F90
! bd380cdae85a972a63452ec8347b797c  libgfortran/generated/_dim_r4.F90
! b82bd052b87ee18c81541e6f9413d366  libgfortran/generated/_dim_r8.F90
! 0520d81cfbaa3035daf209f2d84b74fc  libgfortran/generated/_exp_c10.F90
! 1e5d2aa55abbeaeb84daa18ca0b8a7a4  libgfortran/generated/_exp_c16.F90
! bafdd21745f0bb5fa4e7cf5b95489355  libgfortran/generated/_exp_c17.F90
! 2f1efca03273dfa8cb9bb0a584a925ce  libgfortran/generated/_exp_c4.F90
! b4a9f6a1d4c3b28ee6c22c425877b2de  libgfortran/generated/_exp_c8.F90
! c12d03a879b50a68479f37d645279d72  libgfortran/generated/_exp_r10.F90
! 41c0167e4eca521bfd0344d3dc9455e8  libgfortran/generated/_exp_r16.F90
! e95ac1a1276aa2adb0de7ab1bf9a2dcb  libgfortran/generated/_exp_r17.F90
! 5e670cf0ce510d571bc8f65e8042622d  libgfortran/generated/_exp_r4.F90
! 4a531aa5a15e6fbb5e2fa40134a1ec0a  libgfortran/generated/_exp_r8.F90
! ef75b0e5a403f15417ac6f4932b0a347  libgfortran/generated/_log10_r10.F90
! 8826773e0b501177a145381ed50fc8c1  libgfortran/generated/_log10_r16.F90
! 5a25ccf2fe92d754c2205cd1aaa8b060  libgfortran/generated/_log10_r17.F90
! 3ddf32fd556d56a73e253b32b82c7cd4  libgfortran/generated/_log10_r4.F90
! 6e83fd38546e5ddde16e4a86fba5a82a  libgfortran/generated/_log10_r8.F90
! d84173f60d1abf100706b235121253c2  libgfortran/generated/_log_c10.F90
! 7f1b983b46479f466a036511988355ef  libgfortran/generated/_log_c16.F90
! e89bc7dbfd2d7ebfbe62ed420ce92823  libgfortran/generated/_log_c17.F90
! 611ae9f11db36759aaab5f3f9fe64d8e  libgfortran/generated/_log_c4.F90
! e85ccee2b993dca12e42469974740433  libgfortran/generated/_log_c8.F90
! 8f3aaf7ffdcf3945eb47a9af8b3800ef  libgfortran/generated/_log_r10.F90
! 12ea8a8924fde6ad62692f869adbfdd1  libgfortran/generated/_log_r16.F90
! 230752c5161627bce87ffa587daed3c3  libgfortran/generated/_log_r17.F90
! 360b242c97c665276b38d91b808a41aa  libgfortran/generated/_log_r4.F90
! 69bc1abe9e1e75526bd140a9ce26dd1c  libgfortran/generated/_log_r8.F90
! 0de16ff899ca68492a85d8c50e9ea7f6  libgfortran/generated/_mod_i16.F90
! 32fd44713da17e6f619c9e3b2c1b205c  libgfortran/generated/_mod_i4.F90
! bb7b8cbe585b87aa732defa0af9520e2  libgfortran/generated/_mod_i8.F90
! 36a4a1cdcfb5b2d76d19f539c6726645  libgfortran/generated/_mod_r10.F90
! dc9858e0757029ed615da508b4a458bc  libgfortran/generated/_mod_r16.F90
! 61158ec0a9ec8f084dc005fec2f221c1  libgfortran/generated/_mod_r17.F90
! a42b75230dde2f2b91a6ce3b3da9c430  libgfortran/generated/_mod_r4.F90
! 0b75edd0a146c9933bc059719c457bde  libgfortran/generated/_mod_r8.F90
! f6f8244ba4a43d6940e0b24882c74ba3  libgfortran/generated/_sign_i16.F90
! 97a5e756e889b7e9c8b03b75f7d57cac  libgfortran/generated/_sign_i4.F90
! 73b93a7c9ca592f7d66c925e7422f8e1  libgfortran/generated/_sign_i8.F90
! 49113646d9f5970eb70f9ece861f372c  libgfortran/generated/_sign_r10.F90
! 53d7ad3f4a481875c6bdc20441ecc136  libgfortran/generated/_sign_r16.F90
! 95267cbfd2d8a8483171ba1ac6a07f2f  libgfortran/generated/_sign_r17.F90
! 24ea611554d683f6cb5094e92e4c5ba4  libgfortran/generated/_sign_r4.F90
! a5a1d64e82fd2c0e87e817ff2ed4e421  libgfortran/generated/_sign_r8.F90
! e2902173e0a6f1a1dbd65bfa198e4e88  libgfortran/generated/_sin_c10.F90
! 44f134a630ff5ab0bd6e2145543d5660  libgfortran/generated/_sin_c16.F90
! 9a1cd450859fe3cf4df33995714a91df  libgfortran/generated/_sin_c17.F90
! cddb203654c7213ab1671a1f4e7af248  libgfortran/generated/_sin_c4.F90
! 60bc3cbd582924a179f4f407cb13e0b1  libgfortran/generated/_sin_c8.F90
! 9349c1a1298054086842c72b085ed4ad  libgfortran/generated/_sin_r10.F90
! 2fc17a311152c688a91985f302ca2a7c  libgfortran/generated/_sin_r16.F90
! b73b3069db525604827c89cfdd346845  libgfortran/generated/_sin_r17.F90
! a2624f906a5eac58e559f4ed396456de  libgfortran/generated/_sin_r4.F90
! 58b10155831d4cad988148bd3e3d54be  libgfortran/generated/_sin_r8.F90
! ce757c0ba4b885860d3f79beaf20f276  libgfortran/generated/_sinh_r10.F90
! 2f6daab2c977dfbe04094afb56efe612  libgfortran/generated/_sinh_r16.F90
! d09a9c4167b8b5fa0c27c086039ca868  libgfortran/generated/_sinh_r17.F90
! 5728366c07e5e47b3c7bc66f2ee2895b  libgfortran/generated/_sinh_r4.F90
! 4c63490556e854b6e78925488372b20a  libgfortran/generated/_sinh_r8.F90
! e4110f4856eb68ab3c6a8bcf2ca9d04f  libgfortran/generated/_sqrt_c10.F90
! 84c7d33b2e10d8ba595a5e654f75f5cd  libgfortran/generated/_sqrt_c16.F90
! 1d3728f0b73c1db4fa77c5b22b41ba57  libgfortran/generated/_sqrt_c17.F90
! 8eb791de2586dc88637af7376498cc23  libgfortran/generated/_sqrt_c4.F90
! c9ed92072c4074fd020db58f522e0af0  libgfortran/generated/_sqrt_c8.F90
! bdeb598f3787f5e2dfcdcf197b2cbe47  libgfortran/generated/_sqrt_r10.F90
! 969a2ed19f23f8e6779c0fac9e1b6232  libgfortran/generated/_sqrt_r16.F90
! f03e623ad5c1f57dcb13d738b199ba58  libgfortran/generated/_sqrt_r17.F90
! 2cef820b1d6a4df95280e56c23c61f33  libgfortran/generated/_sqrt_r4.F90
! 4967d3b9f4d80bd9846c50d984c42215  libgfortran/generated/_sqrt_r8.F90
! 95e0750bf175203d3dd6c12dfea1c12d  libgfortran/generated/_tan_r10.F90
! 4ca9895932bd2fe38ea45b4b95c9587d  libgfortran/generated/_tan_r16.F90
! 466f1f55fff7f691d6c4b4d8fe38d591  libgfortran/generated/_tan_r17.F90
! cf18132619732d929d9b778122459fb6  libgfortran/generated/_tan_r4.F90
! 1ed07f71a73b0e67b31f0cafd50531be  libgfortran/generated/_tan_r8.F90
! bbdb12c8ebd21f2948db6f4a3453c806  libgfortran/generated/_tanh_r10.F90
! a508d6a2cb5ccea3274160d911e3e1c9  libgfortran/generated/_tanh_r16.F90
! 0d3448d41e42225ba0d3927814c513d8  libgfortran/generated/_tanh_r17.F90
! eecd5bff2a77f2db27313a874531a52c  libgfortran/generated/_tanh_r4.F90
! 69914f38bb7bf14382c1e9793c494cfe  libgfortran/generated/_tanh_r8.F90
! 08c61d7991596a5552aee7d9510bdf87  libgfortran/generated/all_l1.c
! 9aef3eac8107b78e15f08199799c76e5  libgfortran/generated/all_l16.c
! b7d5c7ccbf4059307de6bc084368a671  libgfortran/generated/all_l2.c
! edce97b776e9121252ae06e33cf7efed  libgfortran/generated/all_l4.c
! 851ffe90c034cbcb8f845d46d1124cb9  libgfortran/generated/all_l8.c
! 254b1ea5f46977508a5158b263016f07  libgfortran/generated/any_l1.c
! 242a0b2f238caad179fd0f7c52b5de1b  libgfortran/generated/any_l16.c
! 218323b4378c554b439b3670467f682c  libgfortran/generated/any_l2.c
! c23d90f8c70f2cc76b4ab134d128ae04  libgfortran/generated/any_l4.c
! 66ba885f5400356843b054ffa072b5cd  libgfortran/generated/any_l8.c
! d376e4e865768cf98955e156ca503b6b  libgfortran/generated/bessel_r10.c
! 1c0d49f3156c287da41d85f8d98dafb2  libgfortran/generated/bessel_r16.c
! 0a4dacb3190b9c36b23e3cf0197de8e9  libgfortran/generated/bessel_r17.c
! cce3a79bc28cd7b64149cb36659d2334  libgfortran/generated/bessel_r4.c
! 380aebb6b4803a087b9ff2b2bca92454  libgfortran/generated/bessel_r8.c
! 2fdf2703955a5222f94d25238eb10733  libgfortran/generated/count_16_l.c
! fa13ed8eade27847fff0a89f909fa9e9  libgfortran/generated/count_1_l.c
! 58f16011c7986566780926ca67d42f92  libgfortran/generated/count_2_l.c
! dcad8b3b68dac1ef540ab4305f17c74d  libgfortran/generated/count_4_l.c
! 919479cb236d48ade18f2ea8c9053555  libgfortran/generated/count_8_l.c
! 5fc81d341ca9aff8e7c2e7d7aae9c7ea  libgfortran/generated/cshift0_c10.c
! 5020e6dcf8af6175d60a96aa49db4472  libgfortran/generated/cshift0_c16.c
! 3fc9ff72d8d79a5cf835e020f26e3749  libgfortran/generated/cshift0_c17.c
! f519c182bb3cca3ac15dd628b97c6191  libgfortran/generated/cshift0_c4.c
! aee2bb3f9ac6a1be567a7c266009cbd4  libgfortran/generated/cshift0_c8.c
! d5d091d38171b0cdbe4277e8e005bb18  libgfortran/generated/cshift0_i1.c
! b7cbcd518c12a829163ca0d0212eccf4  libgfortran/generated/cshift0_i16.c
! 7a129a66b233a2d5596f03d12aadaf35  libgfortran/generated/cshift0_i2.c
! fe8dfc39ab688001447f76162f054bfe  libgfortran/generated/cshift0_i4.c
! 8ced175839b45ee4062c5e15d5af28de  libgfortran/generated/cshift0_i8.c
! fc5c2b368896c8e1a21c582d170f0417  libgfortran/generated/cshift0_r10.c
! 4fe7492bddc4612631ae264438c6b686  libgfortran/generated/cshift0_r16.c
! d4fc748089d3a1b4c549698a8e373621  libgfortran/generated/cshift0_r17.c
! 52287fce74d70e8b03d58910cb5b3aa5  libgfortran/generated/cshift0_r4.c
! 9411c1818c84085363c2dc7548564f1c  libgfortran/generated/cshift0_r8.c
! ea4d6a414cfd60ddfa5c5d5b068469e7  libgfortran/generated/cshift1_16.c
! be0d1b442cd5dfc56adc118041ac16c6  libgfortran/generated/cshift1_16_c10.c
! 0880f6b3bca5bee0ba9a6301d41cd643  libgfortran/generated/cshift1_16_c16.c
! b108e1f5c762becd81cf43c24f5a5bf2  libgfortran/generated/cshift1_16_c17.c
! feb0ac9cbc57300fdd58c23f8d99f4ad  libgfortran/generated/cshift1_16_c4.c
! 83b00c1bf34939cc353bda20e30b8f31  libgfortran/generated/cshift1_16_c8.c
! 7e1a125164b69bfe8f73fdafca253149  libgfortran/generated/cshift1_16_i1.c
! edf1ff72c7e796fed53f203766d4d02b  libgfortran/generated/cshift1_16_i16.c
! ca915a828882a87eedadf839d8c324d3  libgfortran/generated/cshift1_16_i2.c
! 5a477252b79a75ee2f659b9a52f9d2fe  libgfortran/generated/cshift1_16_i4.c
! 49b0124275cc95ecf118107a07ffb2cb  libgfortran/generated/cshift1_16_i8.c
! 261bbbd384072c4c4321d5b01cfb64d7  libgfortran/generated/cshift1_16_r10.c
! 464ba3082186d3b4bfae5aafbf828d44  libgfortran/generated/cshift1_16_r16.c
! 10ece1c2047a2744778bd22556f66c5f  libgfortran/generated/cshift1_16_r17.c
! 3fba009f493aafcdbd4c06d6fcba3a5e  libgfortran/generated/cshift1_16_r4.c
! c59adf8fde17836da2bf89057077b88c  libgfortran/generated/cshift1_16_r8.c
! 7d4ed023f7f6414fb6c0dba5a5dbacd2  libgfortran/generated/cshift1_4.c
! e601cf12f3f2d038ebb1ea2eef316a35  libgfortran/generated/cshift1_4_c10.c
! df490c0bf39511c9cf23016e11546d7b  libgfortran/generated/cshift1_4_c16.c
! 49f19e9a5674a1ef0add75ea41ba7fb4  libgfortran/generated/cshift1_4_c17.c
! 437258f135c07f2d82adfd488f24fa02  libgfortran/generated/cshift1_4_c4.c
! 62a5db8c932239f4a3cf10d1d8ad6472  libgfortran/generated/cshift1_4_c8.c
! abd8bbb1ac462fc2ef117035f33484d8  libgfortran/generated/cshift1_4_i1.c
! 6bf935de7dfa883f50f9800402525be2  libgfortran/generated/cshift1_4_i16.c
! 0c0964e720a2104cd71d9160f01fa058  libgfortran/generated/cshift1_4_i2.c
! 5bee981e5f1a3f3e75b1fdd2d0174d7c  libgfortran/generated/cshift1_4_i4.c
! f9ae889aead58bef4255bce2617c16f4  libgfortran/generated/cshift1_4_i8.c
! 49fef20f54c1065301cc45073e192ac2  libgfortran/generated/cshift1_4_r10.c
! 305a83fce492381fbcdfbb4e697f743f  libgfortran/generated/cshift1_4_r16.c
! 39201a2b9f1b5c56babe98352e90467e  libgfortran/generated/cshift1_4_r17.c
! f86b6df4c6294bff1655f100776f0573  libgfortran/generated/cshift1_4_r4.c
! 61041e4acf91c1fe83b388d51215983b  libgfortran/generated/cshift1_4_r8.c
! c0889386821591124e84a1d47b450c66  libgfortran/generated/cshift1_8.c
! c760726037415b290d961a4e4aebb005  libgfortran/generated/cshift1_8_c10.c
! 69f3716b6cb2c9965f94fb1910083c08  libgfortran/generated/cshift1_8_c16.c
! 84eef5118c46a6e759effe10464d08ae  libgfortran/generated/cshift1_8_c17.c
! f24ab9e16388b051572cbddeca85a0cb  libgfortran/generated/cshift1_8_c4.c
! 8a3690e2c5aed51a67295cca9f0d012c  libgfortran/generated/cshift1_8_c8.c
! d7a67b4e85df26be59d9d8c0f048440c  libgfortran/generated/cshift1_8_i1.c
! 8d845c9e8ef8bf76afaed2cf58302674  libgfortran/generated/cshift1_8_i16.c
! fb095f600eb4ecd87c87cb3d6ed17d9a  libgfortran/generated/cshift1_8_i2.c
! 2f68625e99652294483b0a139f954257  libgfortran/generated/cshift1_8_i4.c
! 21b57cdd6189ebf033171d4758134ab5  libgfortran/generated/cshift1_8_i8.c
! 4a61d9770ba86c32e3455572a9df5b3c  libgfortran/generated/cshift1_8_r10.c
! 11689129bf2c066db978588c525b71f7  libgfortran/generated/cshift1_8_r16.c
! b57acd46ffee4d64ad3cf0b59e934149  libgfortran/generated/cshift1_8_r17.c
! 304aa046222d3babea29441354bca9c1  libgfortran/generated/cshift1_8_r4.c
! dec4133a5255e31259bec47a8532fa79  libgfortran/generated/cshift1_8_r8.c
! 518f38fa52e9ea57ea2f29886e22f952  libgfortran/generated/eoshift1_16.c
! 37f3fe92d05c6baa534f6849f2a1b09a  libgfortran/generated/eoshift1_4.c
! 86f38a2721ea50985bfa98bbcca55c2f  libgfortran/generated/eoshift1_8.c
! 8e6102d0a4379345e2a23c485fdef6fd  libgfortran/generated/eoshift3_16.c
! 5b42b0ecdcc850ae06a32150da3df3f2  libgfortran/generated/eoshift3_4.c
! eeb3c15736137b9458ebcc7539b472b8  libgfortran/generated/eoshift3_8.c
! f342f987c2372555b02b5b2e19312ebc  libgfortran/generated/findloc0_c10.c
! 17b50f0f8f390b59a35c6409c1fcb871  libgfortran/generated/findloc0_c16.c
! 794817592c11d2a94ee60f6955d7be97  libgfortran/generated/findloc0_c17.c
! 346a9524fef4bd61bce75170cfedfe2c  libgfortran/generated/findloc0_c4.c
! 251a47f9e9ffd3c2b1498ac8f2438f1b  libgfortran/generated/findloc0_c8.c
! 8f8e194f83b908a82fb44ee640114a7e  libgfortran/generated/findloc0_i1.c
! be5f9e1b2d8f8d3752b2ee9e67fb859b  libgfortran/generated/findloc0_i16.c
! a0e05e41f1e0bb27589babc798b3415b  libgfortran/generated/findloc0_i2.c
! d8d78c4255c1eaa368392947efb71e4f  libgfortran/generated/findloc0_i4.c
! 2ee4f598fbc737c017297011e57c4be3  libgfortran/generated/findloc0_i8.c
! c6273b9835e4aba938add827df549ad5  libgfortran/generated/findloc0_r10.c
! 9037502e9d3e1797a952f09cf49ce994  libgfortran/generated/findloc0_r16.c
! f69b44c9df5d8febc9bcdc2dbcf49ba6  libgfortran/generated/findloc0_r17.c
! 0caba7e9d036380716bdaf1c8090c9d4  libgfortran/generated/findloc0_r4.c
! 66c2257d1e12f08bbe0841617e1c96ca  libgfortran/generated/findloc0_r8.c
! 22b9f1c83b0a9e5baca28f42a7d23dff  libgfortran/generated/findloc0_s1.c
! 6a3caccf94ea1636d1b66499bae49b6f  libgfortran/generated/findloc0_s4.c
! ed2c42d0ee24861370ef059323e102be  libgfortran/generated/findloc1_c10.c
! c64056d0735d52646585007c9e87f938  libgfortran/generated/findloc1_c16.c
! 1e79dd3407ae030d9a5cf980f8d02cf8  libgfortran/generated/findloc1_c17.c
! f1f3d37ebffe875edfacad56a33d4fc7  libgfortran/generated/findloc1_c4.c
! 641a76b1026b18084fb86718470ea1f4  libgfortran/generated/findloc1_c8.c
! cbbcdb29b51f0d0eafd56b4ca5b0f7c7  libgfortran/generated/findloc1_i1.c
! 9c827bb48473075c8cc159a5736f8abb  libgfortran/generated/findloc1_i16.c
! e6d8f55a78e368518ad91c43f7e7e8bd  libgfortran/generated/findloc1_i2.c
! aa07a3501df40f5e41297e8c21b84658  libgfortran/generated/findloc1_i4.c
! 8b0d700d998b50b038a7f3be69fa9eee  libgfortran/generated/findloc1_i8.c
! f9411ccc9006b92a9da8fb9543d87bff  libgfortran/generated/findloc1_r10.c
! 29c83fade0d329077e7822b9734edd83  libgfortran/generated/findloc1_r16.c
! 30dd1545da98ae9b967a5bdd0df52a9f  libgfortran/generated/findloc1_r17.c
! 401404c4ebca286cfbb90690ee22d460  libgfortran/generated/findloc1_r4.c
! 26fd560e6c7de1b0aec2b52bb1d42e70  libgfortran/generated/findloc1_r8.c
! e4a6840d29c622eccb399f5c81f4a9fb  libgfortran/generated/findloc1_s1.c
! bb51e94ffbc09461a0eb39cf16fc6f0f  libgfortran/generated/findloc1_s4.c
! 2942f76485cc39af747ce6084304c987  libgfortran/generated/findloc2_s1.c
! a1c01c9192d7994dd6c2f4f2824a8366  libgfortran/generated/findloc2_s4.c
! 688f0c37c26e2d950561ade4f535d193  libgfortran/generated/iall_i1.c
! e061607295b9d0befe789dc2efe9a9b3  libgfortran/generated/iall_i16.c
! 636272c7b14ba0ccf7d61ba0fc5cf8d6  libgfortran/generated/iall_i2.c
! 7a82b472039fe47669856c9254922303  libgfortran/generated/iall_i4.c
! a1b90b5dbe2597b012eb6b82fdd4e0da  libgfortran/generated/iall_i8.c
! 535fbb47d5b1b747a86e645127684605  libgfortran/generated/iany_i1.c
! 51a150d13282b80ccbe30e657de87036  libgfortran/generated/iany_i16.c
! b1f59af835311e60276c1e422bf04d12  libgfortran/generated/iany_i2.c
! 5249da37e94f2669bb8bcc6fcf172b58  libgfortran/generated/iany_i4.c
! bebbbe9013020c86de476ce9727344de  libgfortran/generated/iany_i8.c
! e0892c9db9c759f8dd0ce5c561433f0e  libgfortran/generated/in_pack_c10.c
! 95f31558829aff32e1927aa186c65df9  libgfortran/generated/in_pack_c16.c
! 533644dabd231588e259cef11db4d989  libgfortran/generated/in_pack_c17.c
! 7de0b3556b5c7b2c2dbe559270df4753  libgfortran/generated/in_pack_c4.c
! 75a20eef0b562c58eb83c28811648409  libgfortran/generated/in_pack_c8.c
! 59599c5fee5fb3a571edd4804bbd31aa  libgfortran/generated/in_pack_i1.c
! 27c1d7691e1b530e68881bd345d0e946  libgfortran/generated/in_pack_i16.c
! 333a40c662c4b8218fbe1e21b9e42424  libgfortran/generated/in_pack_i2.c
! 4454b6f379fb0181247c3b569f73ac92  libgfortran/generated/in_pack_i4.c
! aaa919149ba0f632186936ee6f6ee04c  libgfortran/generated/in_pack_i8.c
! 029b0afd039c66eaf127f1679a430bd5  libgfortran/generated/in_pack_r10.c
! 9c7acb23419eef8a1d53c606a137c280  libgfortran/generated/in_pack_r16.c
! 83c2a61327285ea8b3cb09ed0392c202  libgfortran/generated/in_pack_r17.c
! 9d2e44b3b41b837cd5cac38385a5d439  libgfortran/generated/in_pack_r4.c
! 455da1289e56afdd28976c0decadf224  libgfortran/generated/in_pack_r8.c
! 5db246988f3bdb9e664d9f165ed1b4b3  libgfortran/generated/in_unpack_c10.c
! 3d9ad612b98aabbcd1c13be57f7ec2c9  libgfortran/generated/in_unpack_c16.c
! c6cf575e400ff07dc98fb10f1110709d  libgfortran/generated/in_unpack_c17.c
! ea18d606d6f374241a07f1d6675a93ea  libgfortran/generated/in_unpack_c4.c
! 2160fb730dbfa997b813200edf82bd81  libgfortran/generated/in_unpack_c8.c
! 3ada84d82752ba9970774d6e6139f46f  libgfortran/generated/in_unpack_i1.c
! 768f114817eecdaeddb5e1780c98439b  libgfortran/generated/in_unpack_i16.c
! beec48e65252406a3de18aac138696a5  libgfortran/generated/in_unpack_i2.c
! 16e8e63db530433b5bab1c439f749954  libgfortran/generated/in_unpack_i4.c
! 5c415b71b5b0274c973cbac947f5c607  libgfortran/generated/in_unpack_i8.c
! 60d0830743ffd26faae6efb423954977  libgfortran/generated/in_unpack_r10.c
! a5a3ea77b1047e82bc2250d7434ec215  libgfortran/generated/in_unpack_r16.c
! 138dab47f9ff10a08dbcd42381643a60  libgfortran/generated/in_unpack_r17.c
! f554ad2d6d0d0d153d44d1bd4d0e3fc8  libgfortran/generated/in_unpack_r4.c
! a3120e42adf550088d578da79499fd6e  libgfortran/generated/in_unpack_r8.c
! b96d393ea9e23fc3642822fabcc94ab8  libgfortran/generated/iparity_i1.c
! aacea32c09e9ee701c9462f3b6042453  libgfortran/generated/iparity_i16.c
! 4e89a829a2a7dd7848fced6f4a155929  libgfortran/generated/iparity_i2.c
! 4ae8a4194c51c8dd7cdd6417a302113b  libgfortran/generated/iparity_i4.c
! f4793ea3173840df0bc4081c22a8b6e1  libgfortran/generated/iparity_i8.c
! e2607a02720b8c203d5e796b5b6d6dce  libgfortran/generated/matmul_c10.c
! 23f93a44d517d39e664a305e4cdc10e2  libgfortran/generated/matmul_c16.c
! 7261a642a0e0196bc460e1c03795059c  libgfortran/generated/matmul_c17.c
! 5d029cd79a4e1e16942ead7479f6b4f6  libgfortran/generated/matmul_c4.c
! 4678a84d93180588ae12db5e0472f1ef  libgfortran/generated/matmul_c8.c
! 2a85dd41ab3a127716f9a7bfb9e3dd6a  libgfortran/generated/matmul_i1.c
! 965fcf4a5e771fb23070b81bacbe04a0  libgfortran/generated/matmul_i16.c
! 1dfa100f0a197e3cf181aa0c4ff95a0e  libgfortran/generated/matmul_i2.c
! 9348d6d5145c163f77800c5e8e4c2419  libgfortran/generated/matmul_i4.c
! c4382709568a88190a96ff0673e784e3  libgfortran/generated/matmul_i8.c
! dbdf69ca30e8c0fe6d37b0a175e6612c  libgfortran/generated/matmul_l16.c
! 2b47f16cee9d65f7d2a2c04c78c86fb5  libgfortran/generated/matmul_l4.c
! e554caca2009e896c3688a3bdf809843  libgfortran/generated/matmul_l8.c
! ce9c730a1c904c5d95ade9cc9812691a  libgfortran/generated/matmul_r10.c
! 4d6edd15c81a146583092e9a7afff69b  libgfortran/generated/matmul_r16.c
! 5ceeb37d1da532551a01a769374d7236  libgfortran/generated/matmul_r17.c
! 23a858cfdc4d480f4fd575ebaa85d390  libgfortran/generated/matmul_r4.c
! 3e440f396cb7570b17ed88fdf32eccdc  libgfortran/generated/matmul_r8.c
! f55e252c11897f6091bab56bc2548719  libgfortran/generated/matmulavx128_c10.c
! edbe570ff85de120e872419017085ea6  libgfortran/generated/matmulavx128_c16.c
! 2406ee7b959351caf20baeed7c89a0c9  libgfortran/generated/matmulavx128_c17.c
! 997d6e1333d1c044671a1aafb3b82123  libgfortran/generated/matmulavx128_c4.c
! e1e81ece14de7d7fd19c7c85899373c9  libgfortran/generated/matmulavx128_c8.c
! cf1bd399101602c59d55aac5f13d083d  libgfortran/generated/matmulavx128_i1.c
! a5447abb904f8ff00ba884cce452797d  libgfortran/generated/matmulavx128_i16.c
! e492c06c30271e0059c539c168f2d016  libgfortran/generated/matmulavx128_i2.c
! f56deb0a6d3d0d3039915a0ad1d7cee2  libgfortran/generated/matmulavx128_i4.c
! 2c68c76f20d0441247e9040889a7ec7b  libgfortran/generated/matmulavx128_i8.c
! 830890b9879b6ae6b7efbb08dec0e3bd  libgfortran/generated/matmulavx128_r10.c
! 1179a6831152150085a0e0fa46472c2f  libgfortran/generated/matmulavx128_r16.c
! d1d8adce007a6be9c7056a45dc972000  libgfortran/generated/matmulavx128_r17.c
! a140ca71de487c6cf66caded2049bf8e  libgfortran/generated/matmulavx128_r4.c
! 86c8ccd28611f42a6cc5e418572e5cbf  libgfortran/generated/matmulavx128_r8.c
! f5685e112e7e64199b68410fd636575b  libgfortran/generated/maxloc0_16_i1.c
! 437f47398a5c59f0fe85cc870780c0cf  libgfortran/generated/maxloc0_16_i16.c
! f1c17b9becc843cfdc89a111f37ec3b5  libgfortran/generated/maxloc0_16_i2.c
! d9664a5ff66d59b60e34923e3e42960a  libgfortran/generated/maxloc0_16_i4.c
! e92cb91db79081fb16970212857ed08a  libgfortran/generated/maxloc0_16_i8.c
! dd2f969a927ef854302ab8d8ff7e06c9  libgfortran/generated/maxloc0_16_r10.c
! 2dfc13c5b1abf1f3741ec76292858fb7  libgfortran/generated/maxloc0_16_r16.c
! 65e4ff59acfb78007391e5ad4766db8a  libgfortran/generated/maxloc0_16_r17.c
! c960609fc231c368c62733992f70f4ff  libgfortran/generated/maxloc0_16_r4.c
! f5616b4568a6c87e9cf2ea046b697b34  libgfortran/generated/maxloc0_16_r8.c
! d4d3eb21cef615d4ccaf99d176e1149a  libgfortran/generated/maxloc0_16_s1.c
! c40aadffe302b1cd0bb9cf755eb3c4f9  libgfortran/generated/maxloc0_16_s4.c
! 635a812da30db3f5858477bac7733776  libgfortran/generated/maxloc0_4_i1.c
! dc4f88a261e5f19b8c391882488e4490  libgfortran/generated/maxloc0_4_i16.c
! 395598a786278123ab91f5581424abee  libgfortran/generated/maxloc0_4_i2.c
! ca57b5b779d61f73b78e566bb412f63a  libgfortran/generated/maxloc0_4_i4.c
! bee300640c10822e585608257c6ce40f  libgfortran/generated/maxloc0_4_i8.c
! d71a5eecf9a85a0eb2612fdd8f49449b  libgfortran/generated/maxloc0_4_r10.c
! e60c49ea3dcf838e9184609d7b3fe813  libgfortran/generated/maxloc0_4_r16.c
! c3af77b6d491f7730f98fe31df5f7170  libgfortran/generated/maxloc0_4_r17.c
! dd55ba82b1e225a6b75699d53599e9fe  libgfortran/generated/maxloc0_4_r4.c
! 0fb7ceedf174aa494ba0ccd092c592c4  libgfortran/generated/maxloc0_4_r8.c
! 4ca547920dbcf618e407515a006d993a  libgfortran/generated/maxloc0_4_s1.c
! f288e1dce0dd76fd015d248f9bb93202  libgfortran/generated/maxloc0_4_s4.c
! b05de630be3ed2c968c2b2e1d40b13bf  libgfortran/generated/maxloc0_8_i1.c
! c21dc54ddc8e17a2b5b0388e06a5abd2  libgfortran/generated/maxloc0_8_i16.c
! 59aee4f79d6999f584bae19580a258cb  libgfortran/generated/maxloc0_8_i2.c
! d0855ee3ef1bacc5db1628bbc2a90f4a  libgfortran/generated/maxloc0_8_i4.c
! b0b2c2258d57ec02c56178c12971d265  libgfortran/generated/maxloc0_8_i8.c
! 67998427b3aa72b673ccc2cda8643bb9  libgfortran/generated/maxloc0_8_r10.c
! d1e6ee0bc7f04608b2bb10cc9cb67e2f  libgfortran/generated/maxloc0_8_r16.c
! 3c0eb1af7fc815063b8a5874b01407da  libgfortran/generated/maxloc0_8_r17.c
! 2478e348e3acecb4b7dba01f00bfd11e  libgfortran/generated/maxloc0_8_r4.c
! eac92052ae6fe7401bf6183d8e4a8c6b  libgfortran/generated/maxloc0_8_r8.c
! dff2d1a84343f1c06f9b6237a31a7bc6  libgfortran/generated/maxloc0_8_s1.c
! 32209d3e437040e186a042a266b4343e  libgfortran/generated/maxloc0_8_s4.c
! 12201d39fdef793b23750c560932b60a  libgfortran/generated/maxloc1_16_i1.c
! b89cc040fb7d7dda1fa52f678b27db18  libgfortran/generated/maxloc1_16_i16.c
! 4d4860f0fa17b2e0b0d974793b9ecbc5  libgfortran/generated/maxloc1_16_i2.c
! 40ac9d49a62e49b545fbd6ff16c06440  libgfortran/generated/maxloc1_16_i4.c
! 7b58ac11d678d10bb9bd3932d7ad9dbb  libgfortran/generated/maxloc1_16_i8.c
! 6830843d27fe746a185cd073ab7e4d99  libgfortran/generated/maxloc1_16_r10.c
! 4cab2b0066be2ae301b9491fe2433933  libgfortran/generated/maxloc1_16_r16.c
! 1fcb966005454ae756d1416e75c5ab97  libgfortran/generated/maxloc1_16_r17.c
! 55fe4360653c229542c2ebdbcc04e75a  libgfortran/generated/maxloc1_16_r4.c
! cd4e6906724cec214a9088c0b1a7b6c0  libgfortran/generated/maxloc1_16_r8.c
! fb4dabcbde30400b05fea25ef9bf5df5  libgfortran/generated/maxloc1_16_s1.c
! b4b7a5d02f9a3a3ff598861e32dc3cb8  libgfortran/generated/maxloc1_16_s4.c
! ac9bded109c805f180ab795ed34182fd  libgfortran/generated/maxloc1_4_i1.c
! 31c7f79ebc0c2de664d101f7f0ea12e3  libgfortran/generated/maxloc1_4_i16.c
! 27ce0fa65fdf33eea73b172ef28307df  libgfortran/generated/maxloc1_4_i2.c
! 4907b27900ffbd97986f6d7db90ae48b  libgfortran/generated/maxloc1_4_i4.c
! d4ff14995972318ae4c31c6aa65564c7  libgfortran/generated/maxloc1_4_i8.c
! fb0fafd07a19c73278ab8137376f17bd  libgfortran/generated/maxloc1_4_r10.c
! f5a666db284650eca849bf6443b98008  libgfortran/generated/maxloc1_4_r16.c
! 5c7c06b0d203e9f1a5373aa5da9afc44  libgfortran/generated/maxloc1_4_r17.c
! 5d43efe60f963098bb7e8183bc6297cf  libgfortran/generated/maxloc1_4_r4.c
! 211cb8871e93621b04ce2db2ed1815a0  libgfortran/generated/maxloc1_4_r8.c
! a24c93ba99db6a8c0311a7882c024be0  libgfortran/generated/maxloc1_4_s1.c
! b22990df135b9731c617957d05b5d445  libgfortran/generated/maxloc1_4_s4.c
! 949612df9d869b75d6653c44cd857131  libgfortran/generated/maxloc1_8_i1.c
! 8233d7ead8f19aac1627b1b261dcf1e4  libgfortran/generated/maxloc1_8_i16.c
! 5017a3b29fd6c205c0b7774db652b8ee  libgfortran/generated/maxloc1_8_i2.c
! 1c883ee90f4a5dc4f5b62b8b0d93304b  libgfortran/generated/maxloc1_8_i4.c
! 41488ff57da46192361a2305d38b55c1  libgfortran/generated/maxloc1_8_i8.c
! 3e8d815bc04e827fff8e6aa42fbbf967  libgfortran/generated/maxloc1_8_r10.c
! e8cea44b2a02edca779b5cd90ee9218c  libgfortran/generated/maxloc1_8_r16.c
! 045ff8c57a8ffaf3dd257dbaff135c08  libgfortran/generated/maxloc1_8_r17.c
! 1f0c321a859c98b36d3e06257d9fbf21  libgfortran/generated/maxloc1_8_r4.c
! 968a7759508754e1129c75de3e03dc2d  libgfortran/generated/maxloc1_8_r8.c
! 010d7b87dc174f2b28981cb2d48db32e  libgfortran/generated/maxloc1_8_s1.c
! 29c42fcbd72d37762b5e8bf6f7d70877  libgfortran/generated/maxloc1_8_s4.c
! b60d2a7492ca85aac55061ad1f93889a  libgfortran/generated/maxloc2_16_s1.c
! 52c52996500bbb8796dbb98870d327ea  libgfortran/generated/maxloc2_16_s4.c
! d53b7682d95e68a2d701706d5e8d4816  libgfortran/generated/maxloc2_4_s1.c
! 286c256c3459efc546789e81e66f01ca  libgfortran/generated/maxloc2_4_s4.c
! 7714e423db88b250fd3a0e487e4dbdf3  libgfortran/generated/maxloc2_8_s1.c
! b6be9c5166c23884f06098df629e086c  libgfortran/generated/maxloc2_8_s4.c
! c037f06d5c12d0c777b8a54b162e2590  libgfortran/generated/maxval0_s1.c
! 964f58525bf7e4ae3f056bd1f60e4e0f  libgfortran/generated/maxval0_s4.c
! aefd5aca5907f28b47a4b948143c151c  libgfortran/generated/maxval1_s1.c
! f79c8c7f6932e2b91a594d6e8bc8ca9f  libgfortran/generated/maxval1_s4.c
! 226a17d108556326013fd80edc7739ac  libgfortran/generated/maxval_i1.c
! 17951237e5ce40cda6bea9aebd3d8a34  libgfortran/generated/maxval_i16.c
! 1f3ce946f0073b86b0c702a67598df56  libgfortran/generated/maxval_i2.c
! e35d1ce6fd2ac8ecbcfc9eca65d29947  libgfortran/generated/maxval_i4.c
! a27c480538b359db774b54e99e17ad96  libgfortran/generated/maxval_i8.c
! 363790db9a9faddd2888c48cea3a25c2  libgfortran/generated/maxval_r10.c
! 663a1da7e4995fb3862dd83bb1bcdc92  libgfortran/generated/maxval_r16.c
! 90569277c8b307fc3f3c804beadd3194  libgfortran/generated/maxval_r17.c
! 62732aaa1cac77eb6f3a393cc6472113  libgfortran/generated/maxval_r4.c
! d0ecc7b4606a927f429fae2f1d5dc238  libgfortran/generated/maxval_r8.c
! 11da25c1be5850af87410ea4da753c89  libgfortran/generated/minloc0_16_i1.c
! 56be040f0651589181a9208d5c345a58  libgfortran/generated/minloc0_16_i16.c
! 8d646810d4c4c807c0f3f9ac4a000e12  libgfortran/generated/minloc0_16_i2.c
! 4b8d4c5dcb8c49e796c89e7447510e6d  libgfortran/generated/minloc0_16_i4.c
! 6cebe5105515aad6ea69268de5683da6  libgfortran/generated/minloc0_16_i8.c
! 86ea8caae06d8818bf8100d9781a86a0  libgfortran/generated/minloc0_16_r10.c
! f8e30262483c24aabd9b7229bedd21f2  libgfortran/generated/minloc0_16_r16.c
! 0a98753fd5f96bc4630685ca4fee3e86  libgfortran/generated/minloc0_16_r17.c
! fabe67d458b5328aeadfaf4c135b92a6  libgfortran/generated/minloc0_16_r4.c
! daa3fa4f8dec71273a5a897369ba9375  libgfortran/generated/minloc0_16_r8.c
! 1d876c589be4bba84a30c7fdc4c56976  libgfortran/generated/minloc0_16_s1.c
! 0141f2c28544d5556434f2358e4b795e  libgfortran/generated/minloc0_16_s4.c
! 2d7d64923ba634494a30b5af8cecb8d0  libgfortran/generated/minloc0_4_i1.c
! 09faffbab512e0115729778d59223612  libgfortran/generated/minloc0_4_i16.c
! f7326011378007141c2d532cbcc344c7  libgfortran/generated/minloc0_4_i2.c
! 6f7452631ed4cd1edf2361d323109fb8  libgfortran/generated/minloc0_4_i4.c
! a6b6f65140be15feda9ae48381d7d7b0  libgfortran/generated/minloc0_4_i8.c
! 44bd4a31c366313387f3092f01a5e482  libgfortran/generated/minloc0_4_r10.c
! a455821ab99da50083023676afea1f4e  libgfortran/generated/minloc0_4_r16.c
! 49f2a52b31dfd1cc0d304575509765b0  libgfortran/generated/minloc0_4_r17.c
! d763e106da53b3e5962c0592a0807942  libgfortran/generated/minloc0_4_r4.c
! f6e90642522d301e38430fa4603721ea  libgfortran/generated/minloc0_4_r8.c
! 98a7eacc38df0fab83e3fc22d4273116  libgfortran/generated/minloc0_4_s1.c
! 202cc0fb0609337824956a5b368d8e95  libgfortran/generated/minloc0_4_s4.c
! 1f11842623597eaaca29b84587173b20  libgfortran/generated/minloc0_8_i1.c
! 4832c6bd8a3cebeb76579ea05be615b8  libgfortran/generated/minloc0_8_i16.c
! 3061c366253744425de28593ba0faff0  libgfortran/generated/minloc0_8_i2.c
! 2e49740c5ff62b4e832fb2666f655159  libgfortran/generated/minloc0_8_i4.c
! 32340a05d2445ff14803aee16c086536  libgfortran/generated/minloc0_8_i8.c
! 4c25ad94b18c9e5ce5e0aa7770b22a0a  libgfortran/generated/minloc0_8_r10.c
! 19923250b4cf2baef00aef7c2084f423  libgfortran/generated/minloc0_8_r16.c
! 06981bef6a28776b5bb6d9af6ed54ff9  libgfortran/generated/minloc0_8_r17.c
! 8eaab705d7ba445a14cb34dfb8225d9f  libgfortran/generated/minloc0_8_r4.c
! cce119aae77e1a44a762bdac01d7e6cc  libgfortran/generated/minloc0_8_r8.c
! de79d47957b23cb812004a7d4e001740  libgfortran/generated/minloc0_8_s1.c
! e752f872536d01ffd8f0c0df077a6541  libgfortran/generated/minloc0_8_s4.c
! b1988ee5eeb3b94131808512a0d15d58  libgfortran/generated/minloc1_16_i1.c
! 84dcf1c54b4ea1c0a56d38d7e0eafcb2  libgfortran/generated/minloc1_16_i16.c
! 427f124ba2a949266e3b73c4717c2192  libgfortran/generated/minloc1_16_i2.c
! 569c33734270bebfe8446e21192c63df  libgfortran/generated/minloc1_16_i4.c
! db00cccfb43e8d7555aae80d8dfa38ab  libgfortran/generated/minloc1_16_i8.c
! 767ab5dcc339ed46402238140c3821d4  libgfortran/generated/minloc1_16_r10.c
! c08422a1c64a6c2e11200127f89da74a  libgfortran/generated/minloc1_16_r16.c
! a56ee34e921a131d3a396d494ac3e32d  libgfortran/generated/minloc1_16_r17.c
! d55bd8f1a8754bf8b676b993af46f8c3  libgfortran/generated/minloc1_16_r4.c
! bd28c02381dc125b1e2c9d4ae9f4aed9  libgfortran/generated/minloc1_16_r8.c
! 1432283e46f61c40d86737be61b98b8a  libgfortran/generated/minloc1_16_s1.c
! 0a26c52c0106d35cb3c750b7eeb65825  libgfortran/generated/minloc1_16_s4.c
! 415c74d07a5048c5f20ecb72e8f65f30  libgfortran/generated/minloc1_4_i1.c
! 047d992ff3d74ebf0306825a63ab1fbd  libgfortran/generated/minloc1_4_i16.c
! a117bd16618c9710f3911681f32fd4f2  libgfortran/generated/minloc1_4_i2.c
! 0ab7224d283cdbeb77bab9e1502c0033  libgfortran/generated/minloc1_4_i4.c
! 2fc086344b44e03e136dc5949b66f93b  libgfortran/generated/minloc1_4_i8.c
! 37e75d50892be0d8365ce446a4e5b640  libgfortran/generated/minloc1_4_r10.c
! 069e1f8af360e54fe6ae866b43c3dcc1  libgfortran/generated/minloc1_4_r16.c
! 0f243c52adc93aaa997ffb27099106d2  libgfortran/generated/minloc1_4_r17.c
! ce3d1d3ea8171a911507a0ad76369e48  libgfortran/generated/minloc1_4_r4.c
! af898f81e4278b547b526193f873796e  libgfortran/generated/minloc1_4_r8.c
! 3ff8ce54d4acf75e03b4d60b0e920f03  libgfortran/generated/minloc1_4_s1.c
! 90eac85ef4a48572ee4e6cf9cf921c18  libgfortran/generated/minloc1_4_s4.c
! 2c2b42477a4a98c921bd4905ce4ccc01  libgfortran/generated/minloc1_8_i1.c
! 4464162f30efd58003a056cf7ad50d06  libgfortran/generated/minloc1_8_i16.c
! ddd136269919f969b5e627866af624b2  libgfortran/generated/minloc1_8_i2.c
! e009d35c47a4c6c648b16179f745bbb2  libgfortran/generated/minloc1_8_i4.c
! dbf02419244a20b4bfb13d047bc370a0  libgfortran/generated/minloc1_8_i8.c
! a9c5d0caadad81b121233e1c32582273  libgfortran/generated/minloc1_8_r10.c
! 3815f3b3a38760881d3f5b5b2c0f1111  libgfortran/generated/minloc1_8_r16.c
! c360240d0756b20a54b6243ed5bafcb9  libgfortran/generated/minloc1_8_r17.c
! e92a5c56e2631d88007cc005fbae3fdd  libgfortran/generated/minloc1_8_r4.c
! 21e898ce23b72a4062f2da81d8bdcf5c  libgfortran/generated/minloc1_8_r8.c
! 634b628733336dd061fae2a3f9588930  libgfortran/generated/minloc1_8_s1.c
! 79c39e06e385fc24ad49bf92d0d5442a  libgfortran/generated/minloc1_8_s4.c
! da343ac962d2847454f0f197bf80f9f2  libgfortran/generated/minloc2_16_s1.c
! a289dfebd47d7832c188d80f191087a1  libgfortran/generated/minloc2_16_s4.c
! a861ad510654eb1b21f3d11b5bf32ba6  libgfortran/generated/minloc2_4_s1.c
! d94cd0afa8bfc363f2430059e13e2c32  libgfortran/generated/minloc2_4_s4.c
! b3bee617b296038fea658bf01c455117  libgfortran/generated/minloc2_8_s1.c
! 5c014078c93c6af2d6f42aad983c7f3b  libgfortran/generated/minloc2_8_s4.c
! f6a517a45bd243571b3cfc9357b31f35  libgfortran/generated/minval0_s1.c
! b92f83fe69aa63ae5d0d785b591826cc  libgfortran/generated/minval0_s4.c
! 7062ae684759056ae786ef7b49118056  libgfortran/generated/minval1_s1.c
! ba9c2e497d54a1a060641b4dc6b8f0cb  libgfortran/generated/minval1_s4.c
! 3bd20d9fd715f90236269dc96323431a  libgfortran/generated/minval_i1.c
! 083dfc2f6ca740aa33f3e009b4467609  libgfortran/generated/minval_i16.c
! 9fbe32931316e0dd9189beb2bf558a41  libgfortran/generated/minval_i2.c
! 0406506fd8017e196ddbf27aae70b372  libgfortran/generated/minval_i4.c
! 7e117b21e2df4cc333645d9e2ca5b26b  libgfortran/generated/minval_i8.c
! fc968141f8780b874436e6ee59d29d72  libgfortran/generated/minval_r10.c
! 7eece02161cb5e87eb8d55c01302c18b  libgfortran/generated/minval_r16.c
! 035ecf8608de11e2734a25840a95fade  libgfortran/generated/minval_r17.c
! c9c166ac51e36ba3d032e6038a6dd6df  libgfortran/generated/minval_r4.c
! 92c08a9f4b5fe3d44c4a4bea7a1e097c  libgfortran/generated/minval_r8.c
! 0b5d17bfaf9f4ca2f15604290a7c9d37  libgfortran/generated/misc_specifics.F90
! 70066a751e9c9506c6706da7545f6479  libgfortran/generated/norm2_r10.c
! 8d8a09d8776f2423ceccb45049ba219e  libgfortran/generated/norm2_r16.c
! df8dd51c52cb54eab38df2716940d2e1  libgfortran/generated/norm2_r17.c
! 78da3901f9e778a5f671151cbe92b6c3  libgfortran/generated/norm2_r4.c
! afcb9cfe5f0598a855dad860690185b6  libgfortran/generated/norm2_r8.c
! 212e69ad9bf1600696e32201a29dc266  libgfortran/generated/pack_c10.c
! ccdaffb9f23cac270d78b28d54fa5def  libgfortran/generated/pack_c16.c
! c3770f37b1bc5de44aa17507bca6865b  libgfortran/generated/pack_c17.c
! 2c916e4ef647b60c97d8d69a2afb89b4  libgfortran/generated/pack_c4.c
! 98823de79f79d40cfe94896f3bd75e37  libgfortran/generated/pack_c8.c
! 38836db8bc658d1a00ca0299a2c642ec  libgfortran/generated/pack_i1.c
! 083148a285e44a17017b380252f692d3  libgfortran/generated/pack_i16.c
! 4ac0431c3a4827c4e9ad2d37a6b1f6c0  libgfortran/generated/pack_i2.c
! e8238ef1488d55979b8b802416a09fca  libgfortran/generated/pack_i4.c
! 740cff611dc785e7a882339c8985fcdd  libgfortran/generated/pack_i8.c
! e77670efe175d71cb884253f65031d88  libgfortran/generated/pack_r10.c
! 80777f8a907eaa19d8025889a7748b45  libgfortran/generated/pack_r16.c
! 8722a386c9f3c66b16a583eaabd32674  libgfortran/generated/pack_r17.c
! 77ea33347adb9eea4404e2cea548ad6c  libgfortran/generated/pack_r4.c
! 2048f02e9ac87356dbe95079ce4e6669  libgfortran/generated/pack_r8.c
! dc032ced49818833700388c6a3ae99a6  libgfortran/generated/parity_l1.c
! d7392edf205a5430837b1905cbce0dc2  libgfortran/generated/parity_l16.c
! b38d725aeb04becfdd08c26649b43678  libgfortran/generated/parity_l2.c
! f23e2a81255f812d7f04824917ab367f  libgfortran/generated/parity_l4.c
! 73d0459e4449d55926556174bbbc750e  libgfortran/generated/parity_l8.c
! 701748a6bb36b651433f38bb10d5350b  libgfortran/generated/pow_c10_i16.c
! 38c078cb92381f08fe6a1bc54ae20b4e  libgfortran/generated/pow_c10_i4.c
! 2f41872e9c296a4b49ce55c5c0da6d5a  libgfortran/generated/pow_c10_i8.c
! 95c00cc16fdc7676b4f74e7eb3735a84  libgfortran/generated/pow_c16_i16.c
! bed6570b76a8e5cea1b7148a894680fe  libgfortran/generated/pow_c16_i4.c
! 655409526d41d53f30d9c740f0b49c51  libgfortran/generated/pow_c16_i8.c
! 85186d41282e2e0993d98fe709cdd2c0  libgfortran/generated/pow_c17_i16.c
! 77f70ec6a3be7a74e8eb3fd63194986c  libgfortran/generated/pow_c17_i4.c
! 435be97355eb5af8d4351358b95a0417  libgfortran/generated/pow_c17_i8.c
! 08202e44a2a5db05bfc2f16835d8c589  libgfortran/generated/pow_c4_i16.c
! 41e5069fa9be6f953c3e6cc68b10b617  libgfortran/generated/pow_c4_i4.c
! bf36ce6dfad9388fe1a68128d0162e41  libgfortran/generated/pow_c4_i8.c
! 9a7c0f352e726c36e0c915c8c1729eb3  libgfortran/generated/pow_c8_i16.c
! 8236041cae0958e9eaf9164d9ecb43ec  libgfortran/generated/pow_c8_i4.c
! 708ed47a0c53f79c99cae41e803b6a35  libgfortran/generated/pow_c8_i8.c
! 28f4304bae8ed1e9799971ac89cfaba7  libgfortran/generated/pow_i16_i16.c
! d22506231965f91b64336b230c1702d0  libgfortran/generated/pow_i16_i4.c
! 9972a0c7139a746956f30f50f7d1c0aa  libgfortran/generated/pow_i16_i8.c
! 1207a0356c4e1a5e30d7e5a85361b4f2  libgfortran/generated/pow_i4_i16.c
! 2930e7357227e16009f78c0f07dd5b84  libgfortran/generated/pow_i4_i4.c
! cbc2f1f2c40abe38abe73d80989f577a  libgfortran/generated/pow_i4_i8.c
! ccee587d743e42efe437cdf3dc72466c  libgfortran/generated/pow_i8_i16.c
! baed70d31c20c4c56d477fa48107f925  libgfortran/generated/pow_i8_i4.c
! db322adc1e05c1162b3a42521a766e18  libgfortran/generated/pow_i8_i8.c
! fd227f51b9ac42741f18cd9c3b2f9b74  libgfortran/generated/pow_r10_i16.c
! 61d6e154711e45293a8a72be4eefefd7  libgfortran/generated/pow_r10_i8.c
! 53415af84a20b6536183d71434e2f076  libgfortran/generated/pow_r16_i16.c
! e29ee17882353547b1b20cae54a7dd49  libgfortran/generated/pow_r16_i4.c
! bd02a519caaf8c980cc00a78759f11ad  libgfortran/generated/pow_r16_i8.c
! eb14eafe1c04344ed6ba8ac52f5de413  libgfortran/generated/pow_r17_i16.c
! d742ea139913980a5afa5f4f72c0ca23  libgfortran/generated/pow_r17_i4.c
! d53a8870b17c825d1a0f8b0d13234044  libgfortran/generated/pow_r17_i8.c
! b7f2c4979979549a0f08fa110f92555f  libgfortran/generated/pow_r4_i16.c
! 5db531722f53b3fd1f1911c7e1b5e36a  libgfortran/generated/pow_r4_i8.c
! 40e6b5b8b3900e653e1ba06dba2ba909  libgfortran/generated/pow_r8_i16.c
! 77dbd47d99acb879712841d2e4a90c47  libgfortran/generated/pow_r8_i8.c
! 11e55380dcf991e5a8b32186a31fb8a2  libgfortran/generated/product_c10.c
! 4e56f5021dc2469c0a0795ede4181b89  libgfortran/generated/product_c16.c
! 88150ea99167ca4f6746d63244c1795b  libgfortran/generated/product_c17.c
! 64fecb5f63be7db2bc82a3dd8ce77322  libgfortran/generated/product_c4.c
! 0d052c07127a8014fb7fc96c4d1b94b4  libgfortran/generated/product_c8.c
! 4592c51997755264a61de4d2773e1575  libgfortran/generated/product_i1.c
! 340a02dae5eeed2b88e25c235e8628d0  libgfortran/generated/product_i16.c
! bafd3de70460212cc390b3ed0728e943  libgfortran/generated/product_i2.c
! 54d8762bab19dede35944e3610c942fe  libgfortran/generated/product_i4.c
! 9c8738d0aadc02ae89dd72fecdbe8cee  libgfortran/generated/product_i8.c
! e0a909a58195f31d13cba97ee0ddbbef  libgfortran/generated/product_r10.c
! 3b733535afa65d3cd77a5cc67fc2553c  libgfortran/generated/product_r16.c
! 88f05c002218d7be59a126138d903396  libgfortran/generated/product_r17.c
! e0c8ca2085452e0032ff20fdbf1472fa  libgfortran/generated/product_r4.c
! 8b4c8aa75b12cab08cb3c1c563bfe715  libgfortran/generated/product_r8.c
! 8d38bad821b312c6778a1a3952b0a8ec  libgfortran/generated/reshape_c10.c
! 1380a1b8864828987e5901ec5ef7d303  libgfortran/generated/reshape_c16.c
! 0e61fdd2dad776f0c9ea8d6584230eca  libgfortran/generated/reshape_c17.c
! a6b1beed83b706907dc41949234b943c  libgfortran/generated/reshape_c4.c
! e687ac5418361dfca93f68b0313f7e42  libgfortran/generated/reshape_c8.c
! d7f91aa8273e023db46086a5476c2e8c  libgfortran/generated/reshape_i16.c
! c7389103b142929b6cb18e43662c657b  libgfortran/generated/reshape_i4.c
! 7a4323647391698916803185b7dcefda  libgfortran/generated/reshape_i8.c
! d4b73087b73dc9ec3cfd560b33224557  libgfortran/generated/reshape_r10.c
! 2cc8c3d15de205dab043b6cd507d9494  libgfortran/generated/reshape_r16.c
! cf10220ed1a29068249bef4d643bba78  libgfortran/generated/reshape_r17.c
! 4a7f193b197673b2e2c90f01c86973dd  libgfortran/generated/reshape_r4.c
! c44b5c594dbd1dc214438374aff11152  libgfortran/generated/reshape_r8.c
! 3f56030ba9b6c8b7e1130ae3e3fbfaee  libgfortran/generated/shape_i1.c
! 98a5dad21945667822bd50ce4c29f185  libgfortran/generated/shape_i16.c
! cb04451adb5e5c937c0dc4e25e539fcc  libgfortran/generated/shape_i2.c
! 070cda897cfb9c9fd41e1cfa634a0ee0  libgfortran/generated/shape_i4.c
! 30c03f057197385476b173c1a81655d6  libgfortran/generated/shape_i8.c
! 00ea237958b863621782087c6161c1bc  libgfortran/generated/spread_c10.c
! 066d6c7e733c2867a4c09724eeb75420  libgfortran/generated/spread_c16.c
! 7bc46f85c3ad7b50ca7545303000581b  libgfortran/generated/spread_c17.c
! ee324a17cbb25f1af1d06c270c467f85  libgfortran/generated/spread_c4.c
! 93fc80f8ac77911f98032f7bfc119e70  libgfortran/generated/spread_c8.c
! 6ac348419c535493a15650b38e1d52bc  libgfortran/generated/spread_i1.c
! dc7347451ce47d0b1cab865b068046c8  libgfortran/generated/spread_i16.c
! f7894b568b2380650b30c599e9bec71e  libgfortran/generated/spread_i2.c
! 259dc2ba6d5bf7e348eaee4230f26848  libgfortran/generated/spread_i4.c
! a6d272ec069778a28ab3129539c6e78f  libgfortran/generated/spread_i8.c
! b497cc61aa0c4ed2271da5ceed4e1f71  libgfortran/generated/spread_r10.c
! 73661a5521fb16dc31b9614bcdcf0d09  libgfortran/generated/spread_r16.c
! c0a8af94db29ce3e3185cc25c266cd16  libgfortran/generated/spread_r17.c
! a332c403cbe718889693edcdf7ec13e1  libgfortran/generated/spread_r4.c
! c4bb94ecc3644e4103f791ce7174fee5  libgfortran/generated/spread_r8.c
! d621d353e490d59395bcab1bf8e634a0  libgfortran/generated/sum_c10.c
! d0d68536bfa4eefe9722ecf447af5131  libgfortran/generated/sum_c16.c
! 534292ebac528ea99e5b448ebc81bc4e  libgfortran/generated/sum_c17.c
! 8431c52e7737a2f69c84bc3f36f0f7bc  libgfortran/generated/sum_c4.c
! a181a5684c42d38ef21cb4c5aadf6538  libgfortran/generated/sum_c8.c
! 287b64f7d04f2cc24656f8af79dd2592  libgfortran/generated/sum_i1.c
! cc1cd193aeb0412a20c2182444e0f189  libgfortran/generated/sum_i16.c
! 56ba30418efe5463b571983531d70fa7  libgfortran/generated/sum_i2.c
! 9bbefee5414a75be52a0b227a9ae6628  libgfortran/generated/sum_i4.c
! da4df15920198fbb43cb48fe7235076c  libgfortran/generated/sum_i8.c
! 2cf67f4f8d7971553eb525d45c3e7ef8  libgfortran/generated/sum_r10.c
! 1876cfa37efd91919e32831071f2250a  libgfortran/generated/sum_r16.c
! df4dea61a560135b66d7a14f6c70b2a0  libgfortran/generated/sum_r17.c
! c3dda257f36b51ae28a43997f7cd9776  libgfortran/generated/sum_r4.c
! fb62dbd766870b3113f424117f86f59f  libgfortran/generated/sum_r8.c
! 0c52b9028e107e400c21345048affdfb  libgfortran/generated/unpack_c10.c
! 67490431f85f61145880b681a98180ee  libgfortran/generated/unpack_c16.c
! 8ee510d6bbd2d792c8f02bbefd55cde1  libgfortran/generated/unpack_c17.c
! 086a0e0d95d63ee5ca8f3783c483a033  libgfortran/generated/unpack_c4.c
! 643b1c1f83fdfa42faf9deedb2443cd1  libgfortran/generated/unpack_c8.c
! 10c9ab22033beb817aba7cfbce94b703  libgfortran/generated/unpack_i1.c
! 2923c6a08d85642d96d0a085b8163346  libgfortran/generated/unpack_i16.c
! 3e52f1bed108126ea0c3810452d90c39  libgfortran/generated/unpack_i2.c
! b19b045e41a84375f9e4f26354215abc  libgfortran/generated/unpack_i4.c
! 3b576dbafe0adcc52c5bd767a08bee95  libgfortran/generated/unpack_i8.c
! f459964ef1adcc0b37022cd8e59ddca8  libgfortran/generated/unpack_r10.c
! ef49376e512477111bf2e464fdfe8c80  libgfortran/generated/unpack_r16.c
! d041c71f2793b9c021c5fb462428cff2  libgfortran/generated/unpack_r17.c
! be05fe9c27b321605147e55bb5f7b686  libgfortran/generated/unpack_r4.c
! 997032b0510505b60596a9aa0843efbd  libgfortran/generated/unpack_r8.c
  6047b324cdf9582fa357ad03af8413d0  libgfortran/gfortran.map
! 055b8efa0dff1369e110bd116c10bbe9  libgfortran/ieee/ieee_arithmetic.F90
! 9066096b7ac44f81786302d11e84670f  libgfortran/ieee/ieee_exceptions.F90
! 35cb0f0e42aa7f8c2415e890bada8516  libgfortran/ieee/ieee_features.F90
! c4fcf0eaa4c4e7eb0b4ec1602e128b73  libgfortran/ieee/ieee_helper.c
! d08b01c0dc91ecd26a7669ba42d281b8  libgfortran/intrinsics/abort.c
! 27a0dc516aaaf2d3874621499a46e607  libgfortran/intrinsics/access.c
! c80eccb1f791b937514452f4eb1288b9  libgfortran/intrinsics/args.c
! df4921567ab7370371869d2f5a627f66  libgfortran/intrinsics/associated.c
! cd02206976f9bcc5d879efcc9c0a2d79  libgfortran/intrinsics/c99_functions.c
! feb060b485964a6f35bf264f796e43b1  libgfortran/intrinsics/chdir.c
! 7972e586a9f6670aa340d5b15fcadf5c  libgfortran/intrinsics/chmod.c
! af8fd6a33cd2f85bc687ebc1a241c9ac  libgfortran/intrinsics/clock.c
! 761313e30dc0b21de145ec610f066ae8  libgfortran/intrinsics/cpu_time.c
! 9447b9569bbe845149ee73c207a56f6c  libgfortran/intrinsics/cshift0.c
! 91001ade201f9d9a91d31dad04013277  libgfortran/intrinsics/ctime.c
! e1f413cca6fac7c290ce41621d0d938f  libgfortran/intrinsics/date_and_time.c
! 6269a357e19e1dc713a3a48b9b138f73  libgfortran/intrinsics/dprod_r8.f90
! 5dd339b69ed0c3b0d832d425c6da2347  libgfortran/intrinsics/dtime.c
! 02d2b09d8ecc644693cef508c0fa9991  libgfortran/intrinsics/env.c
! 287f67051fa213992b56647fe6691199  libgfortran/intrinsics/eoshift0.c
! da554ed323cc545e89fbd2c24dfcf67e  libgfortran/intrinsics/eoshift2.c
! 11041756a471afca25976d2a4e2b8691  libgfortran/intrinsics/erfc_scaled.c
! d5a89af6c675e11091db796648c93e20  libgfortran/intrinsics/erfc_scaled_inc.c
! d891380bb39a5752d76edc3225d9c0f3  libgfortran/intrinsics/etime.c
! 8a51df901bf643ecd57613b8b1ec7534  libgfortran/intrinsics/execute_command_line.c
! 81a6796e2d0a57408929e783136a3e4a  libgfortran/intrinsics/exit.c
! bdf05dd5310030dda72ec1fe911585af  libgfortran/intrinsics/extends_type_of.c
! 47eec058e3b4e2cb54fe58922443f65c  libgfortran/intrinsics/f2c_specifics.F90
! 94bd342a4a06cae77f1af28bfc83cc23  libgfortran/intrinsics/fnum.c
! 7bb901e9f631fbad727c5aed9f41e00f  libgfortran/intrinsics/gerror.c
! ea181f6bb99f6d46495dd5838d588418  libgfortran/intrinsics/getXid.c
! 5e07db94446d2681125992a06c8c8df5  libgfortran/intrinsics/getcwd.c
! 96e2676066f6d39520ca8f5112e897dc  libgfortran/intrinsics/getlog.c
! 94033e5013cba735d5fee81b2d03255c  libgfortran/intrinsics/hostnm.c
! 7e743cbb56440d07bde1bfda8a6f22be  libgfortran/intrinsics/ierrno.c
! 2c0b10094f116b58d534dd02d1209515  libgfortran/intrinsics/is_contiguous.c
! 48e0e3e45f9046685fbdbc4af8600ff4  libgfortran/intrinsics/ishftc.c
! ed7bd4288ce8abf226e087f77fadf74a  libgfortran/intrinsics/kill.c
! 99fba0cbc1ab3cc0b685eb3ba61ea658  libgfortran/intrinsics/link.c
! 5a73d7c9991938c1a1636054010b81e9  libgfortran/intrinsics/move_alloc.c
! e0816d061ba029a12007eeb5fb46f0db  libgfortran/intrinsics/mvbits.c
! 237b78bbbb42f6333b0bc0fa832c8f0d  libgfortran/intrinsics/pack_generic.c
! bdb94b55d37edd16be21e7de6aac6d44  libgfortran/intrinsics/perror.c
! 836abcaa58f5c7208a11f5fd66891a76  libgfortran/intrinsics/rand.c
! f015abc89e01fca3c144cc3f3ba8d814  libgfortran/intrinsics/random.c
! 54986bf206b5b857d04267372f9d6784  libgfortran/intrinsics/random_init.f90
! 1bbd1e2286f7329f7fd736c783423ea6  libgfortran/intrinsics/rename.c
! df57a066dd903d9c4167596d00159d4d  libgfortran/intrinsics/reshape_generic.c
! 66652cdb0d8fbdb5f03f3ec70feb2b25  libgfortran/intrinsics/reshape_packed.c
! 74b450689819f72f3d48203cba98d599  libgfortran/intrinsics/selected_char_kind.c
! 122f7a173d1189a4fc2a899570b8135e  libgfortran/intrinsics/selected_int_kind.f90
! a011c865aaab50976965fd0d39aaa58c  libgfortran/intrinsics/selected_real_kind.f90
! 957d3a350a5668200e76e75db0e446b9  libgfortran/intrinsics/signal.c
! 4be954de4169eb94fc5b79bfc8c28d10  libgfortran/intrinsics/size.c
! f445a2a758e625e5cfad6b668d7a911a  libgfortran/intrinsics/sleep.c
! 6d65f62887b53c32506ff7c556515ad4  libgfortran/intrinsics/spread_generic.c
! ecbb7cd9d461afdf72edbf7ec1e83bbe  libgfortran/intrinsics/stat.c
! 9a64d2add4ef5ca616ceb24293ed585e  libgfortran/intrinsics/string_intrinsics.c
! 9b0928a5e17115737d1410038d48741a  libgfortran/intrinsics/string_intrinsics_inc.c
! 2ca9862be360f10071be791023ba226a  libgfortran/intrinsics/symlnk.c
! c40739a381259ae23d4f9b78b71e776e  libgfortran/intrinsics/system.c
! 149b973a05f9c6b5837eed39ad8f0bd0  libgfortran/intrinsics/system_clock.c
! f6233b629e217c1f3125252a3302888e  libgfortran/intrinsics/time.c
! 89be385aa1da64da8cd000981c8afb0a  libgfortran/intrinsics/time_1.h
! 10f8164f139018045f1f4f7d27f8bce2  libgfortran/intrinsics/trigd.c
! dd1141191f34346cca768ccd48909437  libgfortran/intrinsics/trigd.inc
! d6efad2fa5b6d25160113f5c2d2c3e81  libgfortran/intrinsics/trigd_lib.inc
! 83172a762cec273cf52848d5e4867c07  libgfortran/intrinsics/umask.c
! 1139a86b4a8753e572ff45dc0df6724e  libgfortran/intrinsics/unlink.c
! 0b48fb78aac38a0042fc3982d536910b  libgfortran/intrinsics/unpack_generic.c
! 8e5f1fdf0206325789ba30b5d7b9e8ae  libgfortran/io/async.c
! f1b55334aa08e4a9656ae7f9b86b4f8d  libgfortran/io/async.h
! 90ed96c1a267b8bfd357cda77b85414c  libgfortran/io/close.c
! d11d44b00a3cb1969fabb89194fce482  libgfortran/io/fbuf.c
! 49f6bc1bcf22cb20a15f0f53e64e3356  libgfortran/io/fbuf.h
! 94ec422dc217677b7c0c69ed787af7bc  libgfortran/io/file_pos.c
! 26d0704b2527b5ea7b76d3345dd6d611  libgfortran/io/format.c
! d84d231c04af4614dd9e28be87e05b1f  libgfortran/io/format.h
! 64e956135925903d17274d1df4c3c48b  libgfortran/io/inquire.c
! 4e4f53db5482e9b5207042f265419439  libgfortran/io/intrinsics.c
! 69200689654733c70bb3b6defa881b76  libgfortran/io/io.h
! 1de3d6d4d1b39adf5a8cbe9b457bbfdd  libgfortran/io/list_read.c
! 21ac9cecd79006ff6c4f8b2eb49382a0  libgfortran/io/lock.c
! 6fe4b3a0cbe866f7de74625f5596f210  libgfortran/io/open.c
! d01f39d2623c0b8272914fef4d0ac7aa  libgfortran/io/read.c
! fe2e22abf678f5d6d9a34c39a41bcdee  libgfortran/io/size_from_kind.c
! a5957dd8e0041c6da7b73a95e5d2d7fd  libgfortran/io/transfer.c
! 2238bdc6040948236828b74fd1c21f85  libgfortran/io/transfer128.c
! 43dd50a0e3b8ef9864a300c2b4beb295  libgfortran/io/unit.c
! 9edfb16de7691403cb43d9e7c443a685  libgfortran/io/unix.c
! 7b63d00cb1b4bca2ba0c1bbdf37d6190  libgfortran/io/unix.h
! 9c77fe2984f42ec49017cf30626892c1  libgfortran/io/write.c
! 01015b84777936b11b5db5bacb87cafa  libgfortran/io/write_float.def
! 90514a98f3de8cd15fb4a34551891e2b  libgfortran/kinds-override.h
! 7c67b16a135257e94558e9a4a986b02a  libgfortran/libgfortran.h
! 387b6182fc5961d2910eba8861402578  libgfortran/libgfortran.spec.in
  dc1a87f5ed3520558b0fe9f43e4f5ba8  libgfortran/libtool-version
! 0a10d2fe710046a4d98308c8bbe8ae1b  libgfortran/m4/all.m4
! 617f52cf5e0d59aa85ba4266296fe05e  libgfortran/m4/any.m4
! 9de9d2dae4e921ed937b510010f628cc  libgfortran/m4/bessel.m4
! 72f1cd8c057e7ec05c8a1221609070ca  libgfortran/m4/count.m4
! 058a25b37edf23327a8f3012e198258c  libgfortran/m4/cshift0.m4
! a6a274adb1df94b6c277e2cfeee1a282  libgfortran/m4/cshift1.m4
! 570c35a831ac5be2fcb47df42f128f04  libgfortran/m4/cshift1a.m4
! bff32305d0bec51b936516a93c3f3e98  libgfortran/m4/eoshift1.m4
! d4837f629e00289b42506ae997dc8db3  libgfortran/m4/eoshift3.m4
  a70290662a995bcc0ff8ac868b6eddda  libgfortran/m4/findloc0.m4
  22271fa12e82c61051f302c3a5072376  libgfortran/m4/findloc0s.m4
  111ea74dceb547cbf63c12832d73d5f4  libgfortran/m4/findloc1.m4
  be432b0e528c65667e6d736e1537515d  libgfortran/m4/findloc1s.m4
  62c4506b866cb09ea489c455e7c2e8bf  libgfortran/m4/findloc2s.m4
! 6a2c6873f485089bfb4869ac7a3f6ec7  libgfortran/m4/head.m4
! 28880181c582e5571c541f34c14c5a34  libgfortran/m4/iall.m4
! abb53196394ee3a9c411949ae9458436  libgfortran/m4/iany.m4
! afeeaf8dc7f1645eef2978dc1bc558bc  libgfortran/m4/ifindloc0.m4
! a9c83a955705ca623049c26bb9a16165  libgfortran/m4/ifindloc1.m4
! 68d4e0f33849e74bb43c55c169324afc  libgfortran/m4/ifindloc2.m4
  143daeeed4d4e1baa17753b51ddd88be  libgfortran/m4/iforeach-s.m4
  ef77f0d18ce645146e5155d85730a2dc  libgfortran/m4/iforeach-s2.m4
  8bbbce69fc532a405b1b88c79c2ef47b  libgfortran/m4/iforeach.m4
  d41d8cd98f00b204e9800998ecf8427e  libgfortran/m4/ifunc.m4
! 1512a0bd7ebcf39fdd9d1897042d6d6d  libgfortran/m4/ifunction-s.m4
! ae6c5100027c00b1dee83df8a20d56ac  libgfortran/m4/ifunction-s2.m4
! 16a0e345a100895cf0ec39166e09e5e8  libgfortran/m4/ifunction.m4
! 10f323195ca3a220ce7b74b132d15fd7  libgfortran/m4/ifunction_logical.m4
! ce611bd2f50aaae304fcf98b3f8c2f0e  libgfortran/m4/in_pack.m4
! abfc023c9bff0e59dec6fef67457e5d8  libgfortran/m4/in_unpack.m4
! 03d9cb73f847cee2a4033f36efcf8b63  libgfortran/m4/iparity.m4
  931d3e6134be8b18f8fd4b755b0f33cc  libgfortran/m4/iparm.m4
! 1696ca78ea2b84c0b183459b7d345811  libgfortran/m4/matmul.m4
  f90a0613ba9c7910fede3029a8db5527  libgfortran/m4/matmul_internal.m4
! 9549918f202eccefd9f844feebfa1522  libgfortran/m4/matmulavx128.m4
! f55ab938ae449648d633f4bb5d5c939f  libgfortran/m4/matmull.m4
! cc5dab19abf6522bc987ccb9c922dca3  libgfortran/m4/maxloc0.m4
! 3b456f29a7cdb2270325dc91d5471787  libgfortran/m4/maxloc0s.m4
! 5fb7122eea65fac7d173491f6416e427  libgfortran/m4/maxloc1.m4
! e988be09163f694b763fae1ffeaa7f28  libgfortran/m4/maxloc1s.m4
! cceba3884095d0eaaa8eb349b2035ebe  libgfortran/m4/maxloc2s.m4
! 205d49f646f31d2d169bf466178906f0  libgfortran/m4/maxval.m4
! f1a2b8c8046423c58d9fb99bc29698af  libgfortran/m4/maxval0s.m4
! e1fb783a9780e4cb4468a147fdf3ece8  libgfortran/m4/maxval1s.m4
! ae6c27a5efec6b813c20a7338c924e38  libgfortran/m4/minloc0.m4
! e0db65efd5541ed284ee8e8188b5b7e8  libgfortran/m4/minloc0s.m4
! 23d6d83d27dbe42746bbc15be1ec83da  libgfortran/m4/minloc1.m4
! 3409abe100b23ae7aa92e9ecbb55a562  libgfortran/m4/minloc1s.m4
! f64eef67f146508f5f4d0146356085c5  libgfortran/m4/minloc2s.m4
! cb74f79a85702612521129f3f044b297  libgfortran/m4/minval.m4
! 05b15f04af35b06c69b77566da81a5ac  libgfortran/m4/minval0s.m4
! 70e6fdadb9807835b5e9e65f579543a7  libgfortran/m4/minval1s.m4
  6d8cbcd1d1489f643839e7ac2c00a736  libgfortran/m4/misc_specifics.m4
  70d9300a1cebaef5ef324dad027b2fc3  libgfortran/m4/mtype.m4
! e43d2f51601c36d5a8f88352924a6833  libgfortran/m4/norm2.m4
! 7ff06deee5bbb48a7e00b5144d0e0f58  libgfortran/m4/pack.m4
! 117cbf79568c22d3a762e3f2b86affc0  libgfortran/m4/parity.m4
! e0e8e3d97b07f9a762df66277fe1f97c  libgfortran/m4/pow.m4
! ec8754f7a7e3de91f4ebd6c9c94d2a2e  libgfortran/m4/product.m4
! b96bb65163ea7106d1338fe4762575a9  libgfortran/m4/reshape.m4
! 677b3ce7f8cfff3be2080a1099df5643  libgfortran/m4/shape.m4
  2b8de82dc8d9a5bfe1aebe4edd8e2adc  libgfortran/m4/specific.m4
  fde11348d3f1f27d7e48fd646db7c9b0  libgfortran/m4/specific2.m4
! 901fda7d189b06070636fce8a9563479  libgfortran/m4/spread.m4
! 59c2adcb4cf7529534829c143c2aa4e4  libgfortran/m4/sum.m4
  0ad0318f00c85db29d184dc3dff12276  libgfortran/m4/types.m4
! d498bcfd635d78d5d2f74752f52732f6  libgfortran/m4/unpack.m4
  1661b058a524a21873b501b1d9d972a6  libgfortran/mk-kinds-h.sh
  5cacd438c86553689eda2ce3d5623b45  libgfortran/mk-sik-inc.sh
  f8813ac773f6f6eb0ea6ecb287fb9250  libgfortran/mk-srk-inc.sh
! cf932ebb78b6e966dfe0c1ad0aaf6a4f  libgfortran/runtime/ISO_Fortran_binding.c
! 16494b872bc4ac5bd8a79a4ef4bcdd5f  libgfortran/runtime/backtrace.c
! 7f24efb008643e5cb7a7277e2120b8b0  libgfortran/runtime/bounds.c
! 738808a3ffc614e0fae0354e9f7b2545  libgfortran/runtime/compile_options.c
! 5654a8eab0fa79a110543187e0483127  libgfortran/runtime/convert_char.c
! e80fa3a24cdb7f0b210131f2fcc97af6  libgfortran/runtime/environ.c
! 18d740014f0b14c915f6c157510ea3c6  libgfortran/runtime/error.c
! 594c19ec7f5219b4c776c6e697fdf37c  libgfortran/runtime/fpu.c
! 378b181e43c111640d8ea871dc38bf65  libgfortran/runtime/in_pack_generic.c
! d56bd2acd81e572a1036a448f6e1f457  libgfortran/runtime/in_unpack_generic.c
! 66b21c868c45bd8c46b8e7746b84caea  libgfortran/runtime/main.c
! ec1ab6888793bb2ab3b6c8ebd3379546  libgfortran/runtime/memory.c
! e213bd65778f448065eda05d2e956cd9  libgfortran/runtime/minimal.c
! 9e80df5b7bac6299b6550936daa64dc4  libgfortran/runtime/pause.c
! ee8f314f67e6497239480f9e2a2a28a9  libgfortran/runtime/select.c
! 534c7a1ea44abe05a1a2bf8ae65eaf77  libgfortran/runtime/select_inc.c
! 7bf0cd1b3dbc67602275fca7b640fc35  libgfortran/runtime/stop.c
! 31ea40dff09a1f6657e0bd285cbabb9a  libgfortran/runtime/string.c
! d9bec52a812758b0b0a9951389284537  libgm2/ChangeLog
! 81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
! 29620b9c0cac0900c1629a043f9929c2  libgm2/Makefile.in
! 5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
! 3ce48f1057a820e8b1f37473c4362bc7  libgm2/aclocal.m4
! 090b090834f674319c9941418b902d11  libgm2/config.h.in
! f074dfd02ab3df0c6dbc6cc6afb96746  libgm2/configure
! 8ad70386caeaf5f65048f722e9faadbe  libgm2/configure.ac
! 8cc7e77ebeeff228932145d5e583e1f7  libgm2/configure.host
! 2a25928a1abd3989edcf11c8def19d00  libgm2/libm2cor/KeyBoardLEDs.cc
! f25de03fc822c5eebf7118fcf5283ebc  libgm2/libm2cor/Makefile.am
! 449d32379e2a9fbe240c57d2f51e4e4a  libgm2/libm2cor/Makefile.in
  256f893d9141ee50fb703d08f0c7ce3a  libgm2/libm2iso/ChanConsts.h
  1f06a5aa78117852f125ffe8c8925116  libgm2/libm2iso/ErrnoCategory.cc
! 3ee11ef33d74600124af9d68ce66ccc3  libgm2/libm2iso/Makefile.am
! ed1c1f4dc9b122566cb3a18dc92c6420  libgm2/libm2iso/Makefile.in
! 55e7456cbf4c00590b7d5c26437bf683  libgm2/libm2iso/RTco.cc
  60e20d4966763ff532153264c355ec8f  libgm2/libm2iso/m2rts.h
+ 9cb2d2fda0da4de1596491a1ba383634  libgm2/libm2iso/wrapclock.cc
  e3037b97506181892bc760a12d9c5f69  libgm2/libm2iso/wrapsock.c
! dee1d42a787fb16e7131d6133ebff6fb  libgm2/libm2iso/wraptime.cc
  eb003ee7f1b2cf1972500be967c4d5eb  libgm2/libm2log/Break.c
! 0c6fafec8fbf7be12c2c90df42ad003e  libgm2/libm2log/Makefile.am
! 71fafeeaebdee51b48ae7b5abc3e23ff  libgm2/libm2log/Makefile.in
! 36f227f41f6cb4fc9bd5eaa5345378f3  libgm2/libm2min/Makefile.am
! 3e41e67ff2e6c725c18e5fd8a8801ca7  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
! c2cea9accad41239de7dcf8c166c29de  libgm2/libm2pim/Makefile.am
! 85782651b09561491f6978cd2a473c54  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
! c6713dcaac6a2a47d999016dc1782010  libgm2/libm2pim/cgetopt.cc
! fabf825638554348a64e8dee21986b0a  libgm2/libm2pim/dtoa.cc
  9aa81c2dceff4dee4c02d1c0008e6e11  libgm2/libm2pim/errno.cc
! 43168460a497f5deddff1cfef41be52d  libgm2/libm2pim/ldtoa.cc
! 4e5676e52ab1c0524b06a2341eea9174  libgm2/libm2pim/sckt.cc
  44cc0efcc2bd43aa980512c2bbc30067  libgm2/libm2pim/target.c
  22c07cb71fa1f60f5fa45ba985a4bf0f  libgm2/libm2pim/termios.cc
! 99ede8f0e7ba72a5449d5e9380ec5475  libgm2/libm2pim/wrapc.cc
  5d4950ecb7b26d2c5e4e7b4e0dd74707  libgo/LICENSE
  160ac38979ae9334894994a1e7b4bf3b  libgo/MERGE
! 9c4a11ea93d0f8b552f2485c9664bd80  libgo/Makefile.am
! 19e4b59405ea0e8421687f8d6ee68615  libgo/Makefile.in
  3a55d95595a6f9e37dee53826b4daff2  libgo/PATENTS
  d0952f0b499c9ebb887222764488a2fc  libgo/README
  492dd43b98c6602a8754328947942c40  libgo/README.gcc
*************** dee72a6a60e99528b0d17bf3ff9a1e15  libgo/
*** 103076,103083 ****
  bc2f6032c98896249eadb56177c7d357  libgo/config/ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  libgo/config/ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  libgo/config/lt~obsolete.m4
! 6717964e16be0ccf337a61a3246088f9  libgo/configure
! d05e940c6aa36647712ff5afa8b00f5b  libgo/configure.ac
  aac32f286f60f443762f017a205c38dc  libgo/go/archive/tar/common.go
  f7d12cedad0468bfe618b4d2f78e2389  libgo/go/archive/tar/format.go
  2bbe8478660c394e2178904d3b0fd954  libgo/go/archive/tar/fuzz_test.go
--- 112883,112890 ----
  bc2f6032c98896249eadb56177c7d357  libgo/config/ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  libgo/config/ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  libgo/config/lt~obsolete.m4
! 0117bac49db48cb650ff40340d0b2d7a  libgo/configure
! 9e8b46a6f341fa7277c97c2cfedd3794  libgo/configure.ac
  aac32f286f60f443762f017a205c38dc  libgo/go/archive/tar/common.go
  f7d12cedad0468bfe618b4d2f78e2389  libgo/go/archive/tar/format.go
  2bbe8478660c394e2178904d3b0fd954  libgo/go/archive/tar/fuzz_test.go
*************** c113a9813758b06d90f37891a09066fc  libgo/
*** 103427,103433 ****
  a4a21a4cd25e730d8269b250c0c70bb0  libgo/go/cmd/go/internal/work/exec.go
  33e9031417cf6c142229993c0ab77c52  libgo/go/cmd/go/internal/work/exec_test.go
  1549757b74b2d211c815c8e748ba59f8  libgo/go/cmd/go/internal/work/gc.go
! 37991171a251818980e54d329100087a  libgo/go/cmd/go/internal/work/gccgo.go
  92a85e453aa32936051740366e69f911  libgo/go/cmd/go/internal/work/init.go
  4e26c044c3067fe7835fd724298fc4d7  libgo/go/cmd/go/internal/work/security.go
  072953321774ec471cbccfa65ae37ba2  libgo/go/cmd/go/internal/work/security_test.go
--- 113234,113240 ----
  a4a21a4cd25e730d8269b250c0c70bb0  libgo/go/cmd/go/internal/work/exec.go
  33e9031417cf6c142229993c0ab77c52  libgo/go/cmd/go/internal/work/exec_test.go
  1549757b74b2d211c815c8e748ba59f8  libgo/go/cmd/go/internal/work/gc.go
! e073b20c079a24e95ca9c9d02e6e4665  libgo/go/cmd/go/internal/work/gccgo.go
  92a85e453aa32936051740366e69f911  libgo/go/cmd/go/internal/work/init.go
  4e26c044c3067fe7835fd724298fc4d7  libgo/go/cmd/go/internal/work/security.go
  072953321774ec471cbccfa65ae37ba2  libgo/go/cmd/go/internal/work/security_test.go
*************** a45560ec383494bade123ec8684cef26  libgo/
*** 103725,103731 ****
  8f8cecab122556c7c0d1f5033ec61332  libgo/go/cmd/go/testdata/script/env_write.txt
  d2ecb1a1b1387c4923216c044e97e2f1  libgo/go/cmd/go/testdata/script/fileline.txt
  3100bda472d9510cb09e05915977a1d2  libgo/go/cmd/go/testdata/script/fmt_load_errors.txt
! 06878a9ccecdc62bd6e7d6b221bd9fc1  libgo/go/cmd/go/testdata/script/gccgo_link_c.txt
  e266512d46667becf60b696e477051af  libgo/go/cmd/go/testdata/script/gccgo_m.txt
  482e75c227896606836ab8a873842595  libgo/go/cmd/go/testdata/script/gccgo_mangle.txt
  a9e77ee64b045e6a05d9e0ebd9ca2e85  libgo/go/cmd/go/testdata/script/gcflags_patterns.txt
--- 113532,113538 ----
  8f8cecab122556c7c0d1f5033ec61332  libgo/go/cmd/go/testdata/script/env_write.txt
  d2ecb1a1b1387c4923216c044e97e2f1  libgo/go/cmd/go/testdata/script/fileline.txt
  3100bda472d9510cb09e05915977a1d2  libgo/go/cmd/go/testdata/script/fmt_load_errors.txt
! b99baa40d137e0d36481f5e14c16472d  libgo/go/cmd/go/testdata/script/gccgo_link_c.txt
  e266512d46667becf60b696e477051af  libgo/go/cmd/go/testdata/script/gccgo_m.txt
  482e75c227896606836ab8a873842595  libgo/go/cmd/go/testdata/script/gccgo_mangle.txt
  a9e77ee64b045e6a05d9e0ebd9ca2e85  libgo/go/cmd/go/testdata/script/gcflags_patterns.txt
*************** d66659871c9468931aa53015d5460ca2  libgo/
*** 105404,105410 ****
  115a64807c3021934460b7bec6ddae77  libgo/go/go/internal/gccgoimporter/gccgoinstallation_test.go
  6d2110aa252ba390c43c76ab4e05e535  libgo/go/go/internal/gccgoimporter/importer.go
  0fc3a9191cb32d942d5bd27b9da25963  libgo/go/go/internal/gccgoimporter/importer_test.go
! ef629a37e5d74980cfd3a345c54a6598  libgo/go/go/internal/gccgoimporter/parser.go
  21dadbf1bff4c2adbb8dc8ec49147ecd  libgo/go/go/internal/gccgoimporter/parser_test.go
  6b5ad74e54217ee2ce9a4d097b9d0c7d  libgo/go/go/internal/gccgoimporter/testdata/aliases.go
  08b64ac87a4fec11683ee190a7b23a8a  libgo/go/go/internal/gccgoimporter/testdata/aliases.gox
--- 115211,115217 ----
  115a64807c3021934460b7bec6ddae77  libgo/go/go/internal/gccgoimporter/gccgoinstallation_test.go
  6d2110aa252ba390c43c76ab4e05e535  libgo/go/go/internal/gccgoimporter/importer.go
  0fc3a9191cb32d942d5bd27b9da25963  libgo/go/go/internal/gccgoimporter/importer_test.go
! 1cf760c521bf7ac808b9ec3581265458  libgo/go/go/internal/gccgoimporter/parser.go
  21dadbf1bff4c2adbb8dc8ec49147ecd  libgo/go/go/internal/gccgoimporter/parser_test.go
  6b5ad74e54217ee2ce9a4d097b9d0c7d  libgo/go/go/internal/gccgoimporter/testdata/aliases.go
  08b64ac87a4fec11683ee190a7b23a8a  libgo/go/go/internal/gccgoimporter/testdata/aliases.gox
*************** b139942a5099f14a4d543717fb3a34da  libgo/
*** 106348,106354 ****
  7bba03021256cb8fa7849f234dea6b8a  libgo/go/internal/fuzz/counters_unsupported.go
  9a76b4582fa7cac52b8d75ad519a5e6f  libgo/go/internal/fuzz/coverage.go
  489d6d3cb325b3532cc8e773e4cb0553  libgo/go/internal/fuzz/encoding.go
! 9ffdc4a30bc3d5ae50b39f051c8a6032  libgo/go/internal/fuzz/encoding_test.go
  6ea31b4fbcd4939be50a9f2f84f5eeeb  libgo/go/internal/fuzz/fuzz.go
  8c81002eb667f5bdbe5b696cbf7b612d  libgo/go/internal/fuzz/mem.go
  22de3377c02452b82048fa37df8fc0cd  libgo/go/internal/fuzz/minimize.go
--- 116155,116161 ----
  7bba03021256cb8fa7849f234dea6b8a  libgo/go/internal/fuzz/counters_unsupported.go
  9a76b4582fa7cac52b8d75ad519a5e6f  libgo/go/internal/fuzz/coverage.go
  489d6d3cb325b3532cc8e773e4cb0553  libgo/go/internal/fuzz/encoding.go
! fc518633984959be0dd2810af4d6bbec  libgo/go/internal/fuzz/encoding_test.go
  6ea31b4fbcd4939be50a9f2f84f5eeeb  libgo/go/internal/fuzz/fuzz.go
  8c81002eb667f5bdbe5b696cbf7b612d  libgo/go/internal/fuzz/mem.go
  22de3377c02452b82048fa37df8fc0cd  libgo/go/internal/fuzz/minimize.go
*************** ee6aca5ccaf19ffcbdc8ad467542740a  libgo/
*** 107888,107894 ****
  191058c52e6b6cfb72ed323baa0e0f01  libgo/go/syscall/env_windows.go
  9d171a1ced6ead793607cd7bcb7f1d58  libgo/go/syscall/errno.c
  e997bae42fe4ba0d7865f88e9f039a9c  libgo/go/syscall/errors_plan9.go
! 44e14243128e2b9250d2f91fbbd343db  libgo/go/syscall/errstr.go
  838c04d199b485852f963005b18735d5  libgo/go/syscall/exec_bsd.go
  cfe3647d1dcdea4f4fd8ee02baf2e0bf  libgo/go/syscall/exec_freebsd.go
  61b1b6b5eddb505993106f0b02f7b4bb  libgo/go/syscall/exec_hurd.go
--- 117695,117701 ----
  191058c52e6b6cfb72ed323baa0e0f01  libgo/go/syscall/env_windows.go
  9d171a1ced6ead793607cd7bcb7f1d58  libgo/go/syscall/errno.c
  e997bae42fe4ba0d7865f88e9f039a9c  libgo/go/syscall/errors_plan9.go
! db7a1007eaf5c4572647cb7f386f3fcf  libgo/go/syscall/errstr.go
  838c04d199b485852f963005b18735d5  libgo/go/syscall/exec_bsd.go
  cfe3647d1dcdea4f4fd8ee02baf2e0bf  libgo/go/syscall/exec_freebsd.go
  61b1b6b5eddb505993106f0b02f7b4bb  libgo/go/syscall/exec_hurd.go
*************** b0bef0d844dadebbe84ad9cf32c002bf  libgo/
*** 108547,108747 ****
  f1f0917f45d626d15a5f129fef3d81e2  libgo/runtime/yield.c
  00019600f80b0ce3d73e8655fc80d153  libgo/sysinfo.c
  64195708a46fb2d5225149f15a8e3991  libgo/testsuite/Makefile.am
! a88e7b262182c586e88c9684af1ccc29  libgo/testsuite/Makefile.in
  180c96a619276205ec9fc8e8217b67bd  libgo/testsuite/config/default.exp
! 37d26abac5eb54b1b75087b5fa138af2  libgo/testsuite/gotest
! e3e86019491a40bd4f45424d7ce11037  libgo/testsuite/lib/libgo.exp
! c5574d106d35be5d94e80301b0855ada  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 76f607d3e3adbdd5e4cea07de9360bfe  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
! 8126886ecbd94666cc701e26bf9d7ec7  libgomp/Makefile.am
! 54dac50e0dd75535eabeac324da5d027  libgomp/Makefile.in
! ddb4b1d0aa58f609604577990350df9e  libgomp/acc_prof.h
  d45f3b20f1be5d95a6c06fb81bedafe9  libgomp/acinclude.m4
  30a64ccfecfa60e8b5098e9fe26ea707  libgomp/aclocal.m4
! 8b170dafe28e7fbad76d127519542347  libgomp/affinity-fmt.c
! 40719a43f32cd0bb4ae9c9e9199cf349  libgomp/affinity.c
! ebbb23a1a465e1ef266d0563f61aa38a  libgomp/alloc.c
! 4e024af5cd8d0f98a80d35fc66016317  libgomp/allocator.c
! d7155c29a491a04b6ba4ad15079d6fe9  libgomp/atomic.c
! b25dd6a8735393b575ed9cc2860d5d81  libgomp/barrier.c
  037ba614230cf1e1886c5ef589cae6d0  libgomp/config.h.in
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/libgomp-plugin.c
! 791c603be4f75f0547fdc452e21b2dc3  libgomp/config/accel/lock.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/mutex.c
! 5292eac345824a07feb13a0796842632  libgomp/config/accel/mutex.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-async.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-cuda.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-host.c
! 9755382c2458b46747031aaafd4cd4b5  libgomp/config/accel/oacc-init.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-mem.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-plugin.c
  7973e447504d3a02e64bae101b909b1a  libgomp/config/accel/omp-lock.h
! 968ca739f18483dbadafdc57138cdf73  libgomp/config/accel/openacc.f90
! a976cc141d94a9096b251093c80a81f6  libgomp/config/accel/pool.h
! f42d213cbda5f41c32ad200c7d7edc56  libgomp/config/accel/proc.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/ptrlock.c
! ae558351eb3d9a9f92442400d7b83357  libgomp/config/accel/ptrlock.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/sem.c
! 62ae35b60249d22ea6e325698992e356  libgomp/config/accel/sem.h
! b6f9d5b078ecb968eaa6061f5a675fca  libgomp/config/accel/thread-stacksize.h
! 5b6004c4741cbfb86de4c588d66d4845  libgomp/config/bsd/proc.c
! 9372a98ae8838ae307c90e756f1bfe9e  libgomp/config/darwin/plugin-suffix.h
! dcf1a47b664b29d02f5eff80b62790e4  libgomp/config/darwin/thread-stacksize.h
! 902cd9a7cad2b4393bc44a13e05d5d5e  libgomp/config/gcn/affinity-fmt.c
! 4efa1c8c9764b8c72acd99534f6dcbc2  libgomp/config/gcn/bar.c
! f96a938adb7c7743f6600b2a5736ff2d  libgomp/config/gcn/bar.h
! dc1254987c15425c83831110032ffeff  libgomp/config/gcn/doacross.h
! 3cd466202bab09bce4b95d955778a628  libgomp/config/gcn/icv-device.c
! 13c8e95bcb413c5e27ebc0534f37d2b4  libgomp/config/gcn/libgomp-gcn.h
! 52f84015f16a7480ffaaa5931a3ec31f  libgomp/config/gcn/oacc-target.c
! d9a1ce7301cebaf243cd3f4f6a0e06b9  libgomp/config/gcn/simple-bar.h
! 5c6f44d37e0bcb2866005d7f0b77fd4e  libgomp/config/gcn/target.c
! 62b43cc3f8a0e9080ea84295317b4a0c  libgomp/config/gcn/task.c
! 1bab4df539536a0872498347115beb3f  libgomp/config/gcn/team.c
! 5c73c812d6f00ccd9b46b3fe0292ef55  libgomp/config/gcn/teams.c
! 17e6e9358dc453caf6f6f852439e5350  libgomp/config/gcn/time.c
! ba13914fa2063cd08ea181dcf084edf6  libgomp/config/hpux/plugin-suffix.h
! ebf274432a574b7c69882906e7c99369  libgomp/config/linux/affinity.c
! 50fcaf9e74a709bc4df11a5e2658a961  libgomp/config/linux/allocator.c
! 5f58c463497cfded8a780e18a318c427  libgomp/config/linux/alpha/futex.h
! ff4916dff24e4c246f00b3a55c4fcaf9  libgomp/config/linux/bar.c
! f82d019285d9d4a0ec7c7c46eb49df11  libgomp/config/linux/bar.h
! 8d60e5305e053ff6226381d16cee6ee5  libgomp/config/linux/doacross.h
! 192a95e6d93ece5eae0be12d49847b4f  libgomp/config/linux/futex.h
! b0565f6fc444e220bae216760c0ef33e  libgomp/config/linux/ia64/futex.h
! 6f2e83aef6e2b6f83eb64b21f5f7ee76  libgomp/config/linux/lock.c
! f861d359b4fde72f0d595de47ea4e032  libgomp/config/linux/mips/futex.h
! c8c9995c43642e60fb1f3009096b3da0  libgomp/config/linux/mutex.c
! e87555fe1c998a615bba2d0b7f65120c  libgomp/config/linux/mutex.h
  7973e447504d3a02e64bae101b909b1a  libgomp/config/linux/omp-lock.h
! 5d576818775892746318f5ac1975d231  libgomp/config/linux/powerpc/futex.h
! 9686aedeb326791f8ba7d6a0a537a7db  libgomp/config/linux/proc.c
! 75617b28ce9065313fd1e477dd0e6067  libgomp/config/linux/proc.h
! ca46809704e42eb4b534fa29cef43ffb  libgomp/config/linux/ptrlock.c
! 45986a7a76038516e82cc87b975039a8  libgomp/config/linux/ptrlock.h
! d4fdec503da2ab5f34812f4eb928e59c  libgomp/config/linux/s390/futex.h
! 944e6826b44f14d60d84899bd6882da5  libgomp/config/linux/sem.c
! 469cbd7c52942e1cc3afe465ec05a2e1  libgomp/config/linux/sem.h
! fc57c346147ea2ea27020b3e783c0502  libgomp/config/linux/sparc/futex.h
! 1637ca53f5326b69ae5529886a9e71b1  libgomp/config/linux/tile/futex.h
! 8a4911ceb1f4d0f3bf53170405d887f8  libgomp/config/linux/wait.h
! 1f2d72033f36792bc7f3fd461c0bb7e5  libgomp/config/linux/x86/futex.h
! 0d660051d406ce976c161525b743a52b  libgomp/config/mingw32/affinity-fmt.c
! fbe002e86e4723d8f28c7b768b53d444  libgomp/config/mingw32/proc.c
! cafdfefbf9d37ce4d0be023858aaf601  libgomp/config/mingw32/time.c
! e4a35590eba04c519eb95639682fc338  libgomp/config/nvptx/affinity-fmt.c
  6bb7711f9ae2bc93662a9c5ece06f7ee  libgomp/config/nvptx/atomic.c
! f14e8f8192a1760b4f14437024746b37  libgomp/config/nvptx/bar.c
! 6f3c904d557d9071c8173e6afe877c7b  libgomp/config/nvptx/bar.h
! 729b26bd8882cf2d1790d982901e6012  libgomp/config/nvptx/doacross.h
! e673017f6807d98c800527e79b183e81  libgomp/config/nvptx/error.c
! 00d224defdae1179dc9f47602f1ac6a9  libgomp/config/nvptx/icv-device.c
! de9567fefd33db807471d1d8e444fcd1  libgomp/config/nvptx/libgomp-nvptx.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/nvptx/oacc-parallel.c
! a49929d8d97214d62082d90bf165df0d  libgomp/config/nvptx/simple-bar.h
! d6a6c40851714f26e7ddcc015f8f2012  libgomp/config/nvptx/target.c
! 4b12b7767e2c6f1e3ae442777b427bef  libgomp/config/nvptx/task.c
! 578781f67e9c811c9d372c006d9e8ded  libgomp/config/nvptx/team.c
! aeb120f045cc7f75b324f74dd4973bff  libgomp/config/nvptx/teams.c
! 8877ccadeffb542a5e3dd646783afa99  libgomp/config/nvptx/time.c
! 4ee9fb34ffc03779d50b97e8449dd328  libgomp/config/posix/bar.c
! 0a6f05b62ebbc3918c8ef676eac5d49b  libgomp/config/posix/bar.h
! 054f47ea56cd6d3341cdf0fd4c034388  libgomp/config/posix/doacross.h
! 113f44315ae6bf1ce63cb68e372c3403  libgomp/config/posix/lock.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/mutex.c
! 9ded34f9067f3ec28361ba29f31b919d  libgomp/config/posix/mutex.h
  e84e55894856b53abe34b30f6148b070  libgomp/config/posix/omp-lock.h
! 6c96b7a520333f64db850f5671b4e605  libgomp/config/posix/plugin-suffix.h
! d01d2c404ccc225834a725302731dd42  libgomp/config/posix/pool.h
! 8c4423195be82b1a6e27a8d785505281  libgomp/config/posix/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/ptrlock.c
! bac3578fba244e2405c722501e481c9b  libgomp/config/posix/ptrlock.h
! 739997441376f18f394417c004ab2592  libgomp/config/posix/sem.c
! 951f5c3070d2264ad2827553f6055b0d  libgomp/config/posix/sem.h
! bf6b95e44e8ae3504afb615fcf190f47  libgomp/config/posix/simple-bar.h
! 1126ece8f43546bf841148510ddc8292  libgomp/config/posix/thread-stacksize.h
! 9dc33a307d1b7c722d9719ae8e9563f9  libgomp/config/posix/time.c
! b376a31f77e273e7491dfb81ca115023  libgomp/config/rtems/affinity-fmt.c
! 2900c7f7cfdeeb35f13ea4d5a877fa51  libgomp/config/rtems/bar.c
! 95a34a72b7c5c48d85bddc0ac4ef7c80  libgomp/config/rtems/bar.h
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/mutex.c
! d022c23735e7b7e4e746f2eb485a5065  libgomp/config/rtems/mutex.h
! a12f17fee1529934e1337f4082a25826  libgomp/config/rtems/pool.h
! 659d33119a0c464263dce193a6738444  libgomp/config/rtems/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/sem.c
! dc0894d2543322b185ccacab808c54a2  libgomp/config/rtems/sem.h
  af41d1d04a4112345554ca8b8a072ed9  libgomp/config/t-aix
! 5bce7b82e8fa34911daebfde870fb08e  libgomp/configure
! 98d0226a1b3c323e7aad843f476291c6  libgomp/configure.ac
! df326a12f33954a095cf171bc51c7067  libgomp/configure.tgt
! d00073656a1133511cc3ebac2bfdd88f  libgomp/critical.c
! 4aa61eb42769de2a2a431240bbe7e4a5  libgomp/env.c
! f96307b472c52dd869d0f0a313d9b7a5  libgomp/error.c
! cd0e0c5429d3151ad5cc94cb76a9dd28  libgomp/fortran.c
! 6b3988d901dfbecfcadc0ac9ffb1cc27  libgomp/hashtab.h
! 37c02ed7ff525fc219847270628772a1  libgomp/icv-device.c
! 5f8196830285177febaa574de0b7cbaf  libgomp/icv.c
! 9ff4dffb2287b26930dbc463cd752628  libgomp/iter.c
! afec558551844f771b3aefe51131cecb  libgomp/iter_ull.c
! b57a27985ae45d7a6dd20996bd6552bd  libgomp/libgomp-plugin.c
! 68d34b49a2f832646487fdf463b7d497  libgomp/libgomp-plugin.h
! 597562f7bd3816b527464f3a2d586fd7  libgomp/libgomp.h
! 63737f7c291511d3a2938ffa7551bf07  libgomp/libgomp.info
! 816d5eb75954dad2681f7c36dd4b709c  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 478cf48537e336fddf9de759cb858270  libgomp/libgomp.texi
! 38a5c357bb93f00d2f6f98dfa5efdb47  libgomp/libgomp_f.h.in
! 963dcc0b6901a50371fb6d9b595647eb  libgomp/libgomp_g.h
! 064ef6a2e627b6ff7905d31049c7e916  libgomp/lock.c
! 5ff9f5efff73e654d7d95adefde30a93  libgomp/loop.c
! 005217443fe550500e460a2a0a661ebe  libgomp/loop_ull.c
! 8745c4daa40f49b9cee58b11a7624636  libgomp/oacc-async.c
! 4400125b98ec103acbde52ec1389fc15  libgomp/oacc-cuda.c
! 023dfb41b49484dfd46615118899b5a4  libgomp/oacc-host.c
! 861fb986d0712d542279e02b26d950c1  libgomp/oacc-init.c
! 829288a26405dac6c4178e00b0cf9424  libgomp/oacc-int.h
! 151f84e09eb3c68d43fe9a7cda6ae2b0  libgomp/oacc-mem.c
! 6d31376d2cad998dce12bca291c39a88  libgomp/oacc-parallel.c
! d16712f7b895fa5c34fe50c9e84a2cde  libgomp/oacc-plugin.c
! 674cd915cab868d62a48abfea4d3fafd  libgomp/oacc-plugin.h
! a75fcd7caa7c106093950fd61694462e  libgomp/oacc-profiling.c
  6a2627e5d8a4e542cab7eddc96b53f37  libgomp/oacc-target.c
! 0f5b58f4b73f0db676b858d6c0e498f1  libgomp/omp.h.in
! 403238791ef76d42e17b76c1dd0890f7  libgomp/omp_lib.f90.in
! 03ca3768ee3232e2ee50d75d03ff29e0  libgomp/omp_lib.h.in
! 384a6525d5f6243c1e912d6fd7e4c7db  libgomp/openacc.f90
! 3800fe22c6cce1fe357a6120e0b0e8ba  libgomp/openacc.h
! d0f74c49e16a7fb9f03ae11bc1e64cc3  libgomp/openacc_lib.h
! 14ea24b0df30803c238634c82622024e  libgomp/ordered.c
! 7da65cbdf3abecca7f3d1dd0c7101ae7  libgomp/parallel.c
! bb02fb2dfcdf0ca7cc43ec1b2ef011df  libgomp/plugin/Makefrag.am
! 5c1b500eff7a3a678622e16e25ebb655  libgomp/plugin/configfrag.ac
! d3fb956a603e0b3e8c080c258f3c535c  libgomp/plugin/cuda-lib.def
! 00ecac05a73741ca1d393f18e4ecf076  libgomp/plugin/plugin-gcn.c
! 1149d15cf0de1398889677db04f7b1a5  libgomp/plugin/plugin-nvptx.c
! 8988563da92b1dc761e074a66acc6b45  libgomp/priority_queue.c
! 8c0481cc0e84bb0b692c5386e60a59cc  libgomp/priority_queue.h
! ec437859c584b0b399558354e1320e83  libgomp/scope.c
! ce0e21d8401e80d8cac5b0a901005796  libgomp/sections.c
! 58407b340e3c6b7288fbf3396f4d2e18  libgomp/secure_getenv.h
! c4808c8cbdaada3cc6bab648069858f1  libgomp/single.c
! 762f9723be37ca8e9199ebfef1301258  libgomp/splay-tree.c
! 329ebdfc433423161e18ef9bf5e1cda6  libgomp/splay-tree.h
! d08632b90ab7b98b9780d19448055470  libgomp/target.c
! df81e768c6fc86cfbbaeb86ed86bf1ce  libgomp/task.c
! 9b0756f3a53d797b1dfb461860815985  libgomp/taskloop.c
! eb8489e29defd4c037de3bee31e479e0  libgomp/team.c
! e798463821df317ebc3e9dc7bbccb2d4  libgomp/teams.c
  ae0dcb4c08025996b4bf4550cf72832e  libgomp/testsuite/Makefile.am
! f28f24732cc61d807a5c2925f43ea184  libgomp/testsuite/Makefile.in
! 054875d239cdafc185ba1d1c6e22cf34  libgomp/testsuite/config/default.exp
  989674e1cf3f6739f5d9519d904650c7  libgomp/testsuite/flock
  6c859d1c520b245e51a29693632545d6  libgomp/testsuite/lib/libgomp-dg.exp
! 6edace076dbb7578546a6961356b5689  libgomp/testsuite/lib/libgomp.exp
! 3ac651fe0ff05f2928ca58df5928eba9  libgomp/testsuite/libgomp-site-extra.exp.in
  6d56ea402ff11fa0bd533c6d73e2ecde  libgomp/testsuite/libgomp-test-support.exp.in
  75cc672a1bf25974c5f4c5e3bc1a74b1  libgomp/testsuite/libgomp.c++/affinity-1.C
  196ffcd43fb2edf60795e6aabf50d259  libgomp/testsuite/libgomp.c++/allocate-1.C
--- 118354,118560 ----
  f1f0917f45d626d15a5f129fef3d81e2  libgo/runtime/yield.c
  00019600f80b0ce3d73e8655fc80d153  libgo/sysinfo.c
  64195708a46fb2d5225149f15a8e3991  libgo/testsuite/Makefile.am
! 3afd5e92aeacb17936026fd2d1b8ba43  libgo/testsuite/Makefile.in
  180c96a619276205ec9fc8e8217b67bd  libgo/testsuite/config/default.exp
! 119ed5d3e1f74e576b1f430ed406a3ff  libgo/testsuite/gotest
! a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/testsuite/lib/libgo.exp
! dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! b59910b2593d4bd87240710e0e6d19b7  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
! ea86ef6e739ee81b963e6f1f456ec887  libgomp/Makefile.am
! 175cf5d896d110ed86d9cd72e1565b83  libgomp/Makefile.in
! 61fe8e644000727dc3e4c6a40c02ed83  libgomp/acc_prof.h
  d45f3b20f1be5d95a6c06fb81bedafe9  libgomp/acinclude.m4
  30a64ccfecfa60e8b5098e9fe26ea707  libgomp/aclocal.m4
! 94684a0e1ce8bde5aaa266c86fffe4a2  libgomp/affinity-fmt.c
! c840b066d8a98a896bc6668a93ac9e31  libgomp/affinity.c
! 8321390299a0d343737578485bdb863e  libgomp/alloc.c
! aede47e38a9c413d8b14350a1a803f03  libgomp/allocator.c
! 11210b803bc36bd97afe47689a884d80  libgomp/atomic.c
! 3a71796122d2de02f2f36d2ee6564eef  libgomp/barrier.c
! b9daa163035ab7f06340a2e13d499d27  libgomp/basic-allocator.c
  037ba614230cf1e1886c5ef589cae6d0  libgomp/config.h.in
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/libgomp-plugin.c
! af4a790d376cf8fb95037499d2f5341f  libgomp/config/accel/lock.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/mutex.c
! 2202e2d032ab35c827fefe93429e93db  libgomp/config/accel/mutex.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-async.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-cuda.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-host.c
! 16ad4ffbc6ca88dacefcf4a0dc19ef43  libgomp/config/accel/oacc-init.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-mem.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/oacc-plugin.c
  7973e447504d3a02e64bae101b909b1a  libgomp/config/accel/omp-lock.h
! e6f9610caa7c56bcc2d0f894358ddbfe  libgomp/config/accel/openacc.f90
! b9fd60ee991267c32331c3d07345d799  libgomp/config/accel/pool.h
! 2e7b66796d5783091cb62fff9eebe858  libgomp/config/accel/proc.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/ptrlock.c
! 77887fdeededf1729b92c41eda5f1353  libgomp/config/accel/ptrlock.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/sem.c
! 71957c749e5535651efd6b2b51ca1351  libgomp/config/accel/sem.h
! 165ac744518ca2de2ed2453a5f6dbbac  libgomp/config/accel/target-indirect.c
! c747888201c04b928c4a302c4afad483  libgomp/config/accel/thread-stacksize.h
! 5efb49f352213bc48ab993cdb454aa73  libgomp/config/bsd/proc.c
! 27ddf1f0baba4e90ca7325d6f1a391bc  libgomp/config/darwin/plugin-suffix.h
! 54f6d493023629951d0032cfba233fc3  libgomp/config/darwin/thread-stacksize.h
! 0bcc88713a30ee3580edfd909655e925  libgomp/config/gcn/affinity-fmt.c
! 2a4046939917a09ae3bf3fc701c0e58c  libgomp/config/gcn/allocator.c
! 58d1518b8ab65878be5f191b4e74715d  libgomp/config/gcn/bar.c
! dd9141233496bcc3db58c75fb767fe48  libgomp/config/gcn/bar.h
! 1388dc0994eab59359d1538c26648fba  libgomp/config/gcn/doacross.h
! 4afa699e02f8efb3f77f87ccd6f1a0f7  libgomp/config/gcn/icv-device.c
! f4dbd8c6c755b375c1daf06eb4d4ecb3  libgomp/config/gcn/libgomp-gcn.h
! 351fc43106615867ae0e9bcfbb02478a  libgomp/config/gcn/oacc-target.c
! 5eae1edc1c393767f0fb248c0460a639  libgomp/config/gcn/simple-bar.h
! 70d9fe750fdf2574f3bd3d174bbf5f18  libgomp/config/gcn/target.c
! dc7eaf959735348c4b0c7a496811285c  libgomp/config/gcn/task.c
! 2c025b5609922962dce5f615c236e789  libgomp/config/gcn/team.c
! 39bd46769a18fb2bdbf84f5013a5ce83  libgomp/config/gcn/teams.c
! 40ae98cf63129b877ce33cb4c6b09b99  libgomp/config/gcn/time.c
! bd5710297441ab8690b290dcc0720a87  libgomp/config/hpux/plugin-suffix.h
! e2effe97da57f6b6739da7eff9de4ff3  libgomp/config/linux/affinity.c
! 583c4c4c099a064aa872585c20075f52  libgomp/config/linux/allocator.c
! 493cc53a4b16d7d87300c28d8405b987  libgomp/config/linux/alpha/futex.h
! f8bf583f4db16fad1f0339eecd523c28  libgomp/config/linux/bar.c
! f94e5fe5f7ca01fe19aaf8357f371151  libgomp/config/linux/bar.h
! b6275ac8c936f81ad8b6f79d0ced20f6  libgomp/config/linux/doacross.h
! 82c4a3ddd5a855e89866cf77bb9d194c  libgomp/config/linux/futex.h
! eed282ee6b6bdf8a30a7842797362640  libgomp/config/linux/ia64/futex.h
! 11a4667528cd0b6e1f8e9602bf713f5d  libgomp/config/linux/lock.c
! 179f2c1f3840fc6a95af25f64c171a63  libgomp/config/linux/mips/futex.h
! e147a1f1603bd75d23e280f02f9df7d7  libgomp/config/linux/mutex.c
! 3ada81ae79bfc809acc2c66bd901522d  libgomp/config/linux/mutex.h
  7973e447504d3a02e64bae101b909b1a  libgomp/config/linux/omp-lock.h
! 26ab735c1787064156a9be7c0b2fd6dc  libgomp/config/linux/powerpc/futex.h
! 8eeeffdabf15583cf57e7856367f3918  libgomp/config/linux/proc.c
! 8bb452acaca4429bced9298c8bdb61de  libgomp/config/linux/proc.h
! de2abc06316832bedf4e003d6d3b3c16  libgomp/config/linux/ptrlock.c
! 83dcc5de3958366c331b3d45c55a8592  libgomp/config/linux/ptrlock.h
! fb390d9da44cd2237946dbaa2453899d  libgomp/config/linux/s390/futex.h
! 4518d5bd4b801ae7b4db819fa507b346  libgomp/config/linux/sem.c
! f853733bb18c70fc25dcfda072bd9345  libgomp/config/linux/sem.h
! 8d19c271162dd100c19117251b2b1c7d  libgomp/config/linux/sparc/futex.h
! 5d819c7214350f9e7b05d8d731b866db  libgomp/config/linux/tile/futex.h
! 666c372a45e7178611b2a3689e9eb44b  libgomp/config/linux/wait.h
! 68057b8c80474a7cb97211cedb429f12  libgomp/config/linux/x86/futex.h
! 5b426e7ca17d8eee8919a70f45982574  libgomp/config/linux/x86/spincount.h
! 45a1bc3024cf62d357c6715d54be61b0  libgomp/config/mingw32/affinity-fmt.c
! 1ba54cf1ddbed9cea27f36cc4745ebd8  libgomp/config/mingw32/proc.c
! 8141e1048f76a72ecc0753e07ae1b612  libgomp/config/mingw32/time.c
! 16b0e92434e93b0200ee677b2d3bc177  libgomp/config/nvptx/affinity-fmt.c
! 0377a6e6660392bccd8610587a980f6c  libgomp/config/nvptx/allocator.c
  6bb7711f9ae2bc93662a9c5ece06f7ee  libgomp/config/nvptx/atomic.c
! 62b60b694ce7c3aee73b673d4e17a129  libgomp/config/nvptx/bar.c
! e0a5dc6abc341bcd6cc2bb23d9caed52  libgomp/config/nvptx/bar.h
! d18e35bd2afdc112616b0ab858157774  libgomp/config/nvptx/doacross.h
! c84194f42217b9673ace6c3e8c070b61  libgomp/config/nvptx/error.c
! e7cb042ca2a24892d351a95957a8d2ed  libgomp/config/nvptx/icv-device.c
! 3d5d9f23e2446d813b6733012cb7b16f  libgomp/config/nvptx/libgomp-nvptx.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/nvptx/oacc-parallel.c
! 44b690426328d8534d74ee609d821fb6  libgomp/config/nvptx/simple-bar.h
! 646379886cdbd0a2b5a6bfd8eb6722c9  libgomp/config/nvptx/target.c
! 6c450f3c1ad39d63e73838625308fbcb  libgomp/config/nvptx/task.c
! 2b3a21d17b1e63dd6e9e0e53338cf88e  libgomp/config/nvptx/team.c
! 95759ddb64fe075d0a1344c64789e87f  libgomp/config/nvptx/teams.c
! 4ede0dfa11a22382e419c8c399efaa14  libgomp/config/nvptx/time.c
! 3c5dd69fe7804db68e45d36c149abb38  libgomp/config/posix/bar.c
! 1c2c886da6382bd159b1c589e943de4b  libgomp/config/posix/bar.h
! 16f8d6a1e0f0e5b1f04ad9df769c2915  libgomp/config/posix/doacross.h
! 570f07b2a9ace3c61ab6f84317ffc70c  libgomp/config/posix/lock.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/mutex.c
! 29243c43996fc0619b9a8a0f448ea6a4  libgomp/config/posix/mutex.h
  e84e55894856b53abe34b30f6148b070  libgomp/config/posix/omp-lock.h
! ad4f6f8a0b0594f85ce11f5e916c3087  libgomp/config/posix/plugin-suffix.h
! 54de1eeefe550485cfb85f7a872fb00a  libgomp/config/posix/pool.h
! 45a4e55d4c8a881c8f44831d4a47ff06  libgomp/config/posix/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/ptrlock.c
! 6a653838a5332e85e974294f96951891  libgomp/config/posix/ptrlock.h
! e3d78587a9f79b8222ea957be030185c  libgomp/config/posix/sem.c
! 000a186f31fe25d068cfa854ab345ad0  libgomp/config/posix/sem.h
! 1de75793ae82eb993537d04064481779  libgomp/config/posix/simple-bar.h
! 1d71bad337fa45ca7f7edf77bf036b3f  libgomp/config/posix/thread-stacksize.h
! 702bc9161e2c0a80a13c5eb3c02db57f  libgomp/config/posix/time.c
! dcfd4b287ddff257485fc870959632b4  libgomp/config/rtems/affinity-fmt.c
! 22e50b9b0ebe30787f0f66aa3d4d7377  libgomp/config/rtems/bar.c
! 4d39af1133c8b04b5edfbbfc0ccbf896  libgomp/config/rtems/bar.h
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/mutex.c
! ba53bd07f91bc7a441cfd11c3c4a8b53  libgomp/config/rtems/mutex.h
! c9bb7c98433bb5ceba51e3bd3c49c924  libgomp/config/rtems/pool.h
! c68f8f3649141fc5d43f255899386e80  libgomp/config/rtems/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/sem.c
! a8baa26cc7d226ec784692e2bf85f5a6  libgomp/config/rtems/sem.h
  af41d1d04a4112345554ca8b8a072ed9  libgomp/config/t-aix
! e1ac8cd041ca8b2eb7f6ced390842bde  libgomp/configure
! 250e49a5865485507899765bf69913a0  libgomp/configure.ac
! 0eb9aa41c92e30c6fb1494575b1c8daa  libgomp/configure.tgt
! 1a1821839c7c47f05477be3f393e95db  libgomp/critical.c
! 005deecaf970abe1c552840234fb93e4  libgomp/env.c
! 4f081f55348b1fc1e26780ec2f49dc9b  libgomp/error.c
! b6500eaf552c0da39c830a1a14a3058f  libgomp/fortran.c
! c3d3e689f97a6a1ac096a8fc893c93bb  libgomp/hashtab.h
! 29c283a899804d7986a4ce69aa256d6e  libgomp/icv-device.c
! 03affef84ebd1d5833a5a1deb1c3a250  libgomp/icv.c
! 83e6d9941c74f24b672206b83e59cb4a  libgomp/iter.c
! 358b9a20fc0c665b993229fd0a071ff1  libgomp/iter_ull.c
! 29ffc2d98897ade67adb2a0f60c4278a  libgomp/libgomp-plugin.c
! 70c0a3c82cb60714632903474553ec70  libgomp/libgomp-plugin.h
! b888c42439320a17a69b075cd32e0c30  libgomp/libgomp.h
! 89be488ee11d173f1dae1eac4dadb816  libgomp/libgomp.info
! e609d01257168984c31c75e8132e785d  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! b1b5c1758cb28db35eda3734919df43f  libgomp/libgomp.texi
! 7ac313b7761cf82376d507fc1fe39dca  libgomp/libgomp_f.h.in
! e2bc09691827f212e9893150bb72fe77  libgomp/libgomp_g.h
! f0794729835f6ab570d300774155d91a  libgomp/lock.c
! 23ed75cd5d983c6d6bac2985596ad0d2  libgomp/loop.c
! 9d000696e00d26e154e8448123e37413  libgomp/loop_ull.c
! b1ec0e5c83725e17f3de1133821cfd34  libgomp/oacc-async.c
! 6887aea4200a5237f4da287322e84030  libgomp/oacc-cuda.c
! 2b769a2aa147355bf61f6bc93ce049a7  libgomp/oacc-host.c
! 375d57650ff6295c29f277a1fbe203b5  libgomp/oacc-init.c
! b5abcd36406de6afeec7ba5929171930  libgomp/oacc-int.h
! 4641cdb62854ed6a7e714709013d878b  libgomp/oacc-mem.c
! 5a62f030c939f2ade4933f1c589dc8c9  libgomp/oacc-parallel.c
! d6026162a0180991d3549c40b8d40e70  libgomp/oacc-plugin.c
! ce9ff90ff4941712225cf33a6bca9391  libgomp/oacc-plugin.h
! f497dcfbdd19fc2cc14050f7044f3921  libgomp/oacc-profiling.c
  6a2627e5d8a4e542cab7eddc96b53f37  libgomp/oacc-target.c
! 52ea4dced6b46b4ffc21071bde984292  libgomp/omp.h.in
! c986250ee91aef3aca5d7b4b4f510cc4  libgomp/omp_lib.f90.in
! ac4f414a86c3ca9535dbe963511f34c2  libgomp/omp_lib.h.in
! 71d62117b9ed181882013c7078916120  libgomp/openacc.f90
! f86d8c2315e4afedba82a7c2e9380245  libgomp/openacc.h
! a1e40ccddb193f6e07c071d06179b9b8  libgomp/openacc_lib.h
! 3c5bf0fd945a922158545570346993f5  libgomp/ordered.c
! 1f9e3eae7bab71fa032725d67c184c2f  libgomp/parallel.c
! 9aa7eb2602500c1c6c0ea727f25ef7e5  libgomp/plugin/Makefrag.am
! 714018eaae432b3581c7b4c3f7416cef  libgomp/plugin/configfrag.ac
! 1676cd3e1ecd82f5e18fe8a0090c88ac  libgomp/plugin/cuda-lib.def
! d42bbe062642418c62a281ef90cfebc3  libgomp/plugin/plugin-gcn.c
! dd8e46702c053e667a7e3249d6aa1814  libgomp/plugin/plugin-nvptx.c
! 38d2a2f8ce3975fa0010e8c51d057a7d  libgomp/priority_queue.c
! 2b0d32daa4f82bcdb1857d9a21e51c6a  libgomp/priority_queue.h
! 8cde76abd7af4ee70781a57753b500f9  libgomp/scope.c
! aebbda5de35f8d9fb71d033e7655a73d  libgomp/sections.c
! fd0e1cc861ddf87474ae0f32af9d01c9  libgomp/secure_getenv.h
! 14e3eda76836dd4c52a1bbf7b1f0a485  libgomp/single.c
! 17ff6c83522ad44985d45cbcc614c753  libgomp/splay-tree.c
! ce76f5394f840db632ee3a6b9bf018cf  libgomp/splay-tree.h
! b688a26f9fe3c42166f7fe56691a542c  libgomp/target-indirect.c
! ea7883aba49b652fadde5584062b706b  libgomp/target.c
! b919af481da1537987d41ff5747f6525  libgomp/task.c
! a36bb3d522d6406aae78220a6e8f2bf6  libgomp/taskloop.c
! 962a1d92dcbd69b201674941f32d26ea  libgomp/team.c
! c1cd11f44114bcdded1d233def51f034  libgomp/teams.c
  ae0dcb4c08025996b4bf4550cf72832e  libgomp/testsuite/Makefile.am
! 8a802d519aa310eef9d41867d80ce779  libgomp/testsuite/Makefile.in
! 1f0457ba40fefe8928052f12b02cdba7  libgomp/testsuite/config/default.exp
  989674e1cf3f6739f5d9519d904650c7  libgomp/testsuite/flock
  6c859d1c520b245e51a29693632545d6  libgomp/testsuite/lib/libgomp-dg.exp
! 3c0abef4b79022f4279b3f86f4cd6b75  libgomp/testsuite/lib/libgomp.exp
! 751966e2063e2e638eb537562f7d4551  libgomp/testsuite/libgomp-site-extra.exp.in
  6d56ea402ff11fa0bd533c6d73e2ecde  libgomp/testsuite/libgomp-test-support.exp.in
  75cc672a1bf25974c5f4c5e3bc1a74b1  libgomp/testsuite/libgomp.c++/affinity-1.C
  196ffcd43fb2edf60795e6aabf50d259  libgomp/testsuite/libgomp.c++/allocate-1.C
*************** b033e9045b45805b9c4de42aa8f1eb17  libgom
*** 108762,108768 ****
  7c7e2695a56575284cb08fd139d305e3  libgomp/testsuite/libgomp.c++/atomic-7.C
  d9f74ad4b5095a67f1961e49e03171fb  libgomp/testsuite/libgomp.c++/atomic-8.C
  f25833e3fd46b52ba86a77e5fe12fd99  libgomp/testsuite/libgomp.c++/atomic-9.C
! 06d6f5c8612b87b4ac8b1bee5444c051  libgomp/testsuite/libgomp.c++/c++.exp
  40e00f7e2acb12d4a4edc44e244a8475  libgomp/testsuite/libgomp.c++/cancel-for-1.C
  1390d00e8471a40c55b009573ddeaf72  libgomp/testsuite/libgomp.c++/cancel-for-2.C
  cc0fc2d47b008343a233c7c3955be678  libgomp/testsuite/libgomp.c++/cancel-parallel-1.C
--- 118575,118593 ----
  7c7e2695a56575284cb08fd139d305e3  libgomp/testsuite/libgomp.c++/atomic-7.C
  d9f74ad4b5095a67f1961e49e03171fb  libgomp/testsuite/libgomp.c++/atomic-8.C
  f25833e3fd46b52ba86a77e5fe12fd99  libgomp/testsuite/libgomp.c++/atomic-9.C
! 0a310055c15294aaf6bcc47df020e654  libgomp/testsuite/libgomp.c++/attrs-imperfect1.C
! a4982c95f24943943fbf12cb477f081e  libgomp/testsuite/libgomp.c++/attrs-imperfect2.C
! 9a4efa229d744524872e6cbffafd1b77  libgomp/testsuite/libgomp.c++/attrs-imperfect3.C
! 69724509fc4737c85d299156bfd1749b  libgomp/testsuite/libgomp.c++/attrs-imperfect4.C
! 641b8b1671c0a28e41bf6f400e8b01c1  libgomp/testsuite/libgomp.c++/attrs-imperfect5.C
! 53a0813095aa39db65067c52388cc9b1  libgomp/testsuite/libgomp.c++/attrs-imperfect6.C
! 2f586cab612fa932e5f67dcabe94eb0d  libgomp/testsuite/libgomp.c++/baseptrs-3.C
! a1abc023f67b2027953bacc39b863ccd  libgomp/testsuite/libgomp.c++/baseptrs-4.C
! 4047f12e81f298b3d86bc7bc097d7d4c  libgomp/testsuite/libgomp.c++/baseptrs-5.C
! 3c39e0ea0fe1e119a0ec4951374fa2ae  libgomp/testsuite/libgomp.c++/baseptrs-6.C
! bc681d2313a30218189b18805656a6c7  libgomp/testsuite/libgomp.c++/baseptrs-8.C
! 1b38b58754d8a362b20a84f3aa136dc3  libgomp/testsuite/libgomp.c++/baseptrs-9.C
! 56d205cefae539512ef991036c306d5d  libgomp/testsuite/libgomp.c++/c++.exp
  40e00f7e2acb12d4a4edc44e244a8475  libgomp/testsuite/libgomp.c++/cancel-for-1.C
  1390d00e8471a40c55b009573ddeaf72  libgomp/testsuite/libgomp.c++/cancel-for-2.C
  cc0fc2d47b008343a233c7c3955be678  libgomp/testsuite/libgomp.c++/cancel-parallel-1.C
*************** b63b7c5e4846e9b37ecd72ca0699c154  libgom
*** 108771,108776 ****
--- 118596,118602 ----
  9874d2651f8d264ffe5215b9ac3a9a67  libgomp/testsuite/libgomp.c++/cancel-sections-1.C
  32ea51703b06ba963528c7c41d454527  libgomp/testsuite/libgomp.c++/cancel-taskgroup-3.C
  33f0025315295e3ad9afe1bedd12075d  libgomp/testsuite/libgomp.c++/cancel-test.h
+ e1d4f2c9f4d3f4577f08890613c363cb  libgomp/testsuite/libgomp.c++/class-array-1.C
  3cf387e0409514607d2a5bfe5450a908  libgomp/testsuite/libgomp.c++/collapse-1.C
  95b1d349c03cc5d01483df22751c0183  libgomp/testsuite/libgomp.c++/collapse-2.C
  f1e175a4d49888d51652b27c0e3c8c01  libgomp/testsuite/libgomp.c++/copyin-1.C
*************** e4c259ceb3f0850ee4a9c2d8db93fa19  libgom
*** 108788,108793 ****
--- 118614,118620 ----
  46280f072d47ab513989684a0c34bbbd  libgomp/testsuite/libgomp.c++/ctor-7.C
  cf8630c02b905d98e08a439066bb9815  libgomp/testsuite/libgomp.c++/ctor-8.C
  0bd7fe39119bfc0574561c1e381edc5b  libgomp/testsuite/libgomp.c++/ctor-9.C
+ 3d51a347dcff180e4481b2290c95f5b3  libgomp/testsuite/libgomp.c++/declare-target-indirect-1.C
  69326cfd40097e393a1bdb2e95e9052d  libgomp/testsuite/libgomp.c++/declare_target-1.C
  9680d8fd6dafdcd73ddfb70fce9898b5  libgomp/testsuite/libgomp.c++/default-1.C
  01456b503209d46ee61ee8a1877c839c  libgomp/testsuite/libgomp.c++/depend-1.C
*************** cf8630c02b905d98e08a439066bb9815  libgom
*** 108796,108801 ****
--- 118623,118630 ----
  2619580c0be36294ded42bfd27732a03  libgomp/testsuite/libgomp.c++/doacross-1.C
  8f3fa1739a32f62d1e950e3ffdf69ab6  libgomp/testsuite/libgomp.c++/examples-4/declare_target-2.C
  401b0240812ff132fea099d20d4dc1ee  libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C
+ ccd9ee1d01506847d3ea1b041c796d78  libgomp/testsuite/libgomp.c++/firstprivate-1.C
+ 2e6cbe250ac9d5c71de572a824df56a0  libgomp/testsuite/libgomp.c++/firstprivate-2.C
  e1ee4867ce68141a641f925070e14fdc  libgomp/testsuite/libgomp.c++/for-1.C
  41f700ca58c11f46be2e3a3308301e79  libgomp/testsuite/libgomp.c++/for-15.C
  d113b76246a174aabcd300069f49ddc9  libgomp/testsuite/libgomp.c++/for-16.C
*************** a255ea680f411888de34b07ee4819455  libgom
*** 108813,108818 ****
--- 118642,118656 ----
  ecf732e204a30d14c98745b74707a00c  libgomp/testsuite/libgomp.c++/for-6.C
  f18838a499c55a3240f440638cd58125  libgomp/testsuite/libgomp.c++/for-7.C
  880af38017f64c833eb1331938f980cd  libgomp/testsuite/libgomp.c++/for-8.C
+ 9c4d81919f3d1f7bc922035065ae6942  libgomp/testsuite/libgomp.c++/imperfect-class-1.C
+ f6ea558485c1c4a7d0b363a38a1dc785  libgomp/testsuite/libgomp.c++/imperfect-class-2.C
+ 941f83b8c3a77c1b7a4f512c1bc94684  libgomp/testsuite/libgomp.c++/imperfect-class-3.C
+ 1a9e71a78a6e88acb3c2269083e089a4  libgomp/testsuite/libgomp.c++/imperfect-destructor.C
+ 1524146f6cfdb013e8cf21bb946db326  libgomp/testsuite/libgomp.c++/imperfect-template-1.C
+ 0317c4a5e6de973f89b90eeaed9d702d  libgomp/testsuite/libgomp.c++/imperfect-template-2.C
+ b1873a5a0034f865536b1a4360bfa370  libgomp/testsuite/libgomp.c++/imperfect-template-3.C
+ 6b991b5150a8dc0c3fdacdfe8ab4b22f  libgomp/testsuite/libgomp.c++/ind-base-1.C
+ a797b2ca5dc51b256665e3a1a71213ba  libgomp/testsuite/libgomp.c++/ind-base-2.C
  f388271b06cf12e10d298f08871d5a36  libgomp/testsuite/libgomp.c++/lastprivate-conditional-1.C
  6f1faf8c1ac219206dac26eb74eb846e  libgomp/testsuite/libgomp.c++/lastprivate-conditional-2.C
  05dab0dfe40a7044a18a3ce9fcb3701f  libgomp/testsuite/libgomp.c++/linear-1.C
*************** a143bccd15fda6acb915e48bf51be423  libgom
*** 108831,108836 ****
--- 118669,118678 ----
  dfcc405ebd10d6186baef55d22ddcf08  libgomp/testsuite/libgomp.c++/loop-7.C
  11ba7800c42755cc61bd9c9ef9173207  libgomp/testsuite/libgomp.c++/loop-8.C
  f4c9230a7d51f0d2f7b5f5a32fdaf7ba  libgomp/testsuite/libgomp.c++/loop-9.C
+ b622a4cee9411a85452ee1b29b91d320  libgomp/testsuite/libgomp.c++/lvalue-tofrom-1.C
+ f07bd794cd101bd9ba1972e509ed440f  libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C
+ d2827edf08309dd5d05a7ae82eb3a65f  libgomp/testsuite/libgomp.c++/map-comma-1.C
+ 76b1317d8fa0898f3ddb99d7d9719925  libgomp/testsuite/libgomp.c++/map-rvalue-ref-1.C
  f228bd69972ac57d7838e7a77158e192  libgomp/testsuite/libgomp.c++/master-1.C
  b148cb9e7cea0a2c2871af156c98d443  libgomp/testsuite/libgomp.c++/member-1.C
  4d16af77bc5ead4ab34365affb08b16e  libgomp/testsuite/libgomp.c++/member-2.C
*************** bddf1919febc77ab73283f66e954b61e  libgom
*** 108843,108848 ****
--- 118685,118691 ----
  3f755c96f4b692988ea0d1ddeef1ca9b  libgomp/testsuite/libgomp.c++/parallel-1.C
  918bd233ad318b00f080ec4f186b4ee1  libgomp/testsuite/libgomp.c++/pr108180.C
  47f9fb4165180e335283fecf1a9cd061  libgomp/testsuite/libgomp.c++/pr108286.C
+ 2b5f66e459a48cd1cbeb9dc42d3b751e  libgomp/testsuite/libgomp.c++/pr114572.C
  c57d4e906a72b08e5f49bef40306b63f  libgomp/testsuite/libgomp.c++/pr24455-1.C
  e922df8c56b5c5885b9aa8d370725ea9  libgomp/testsuite/libgomp.c++/pr24455.C
  ebbf9a13ba035141ba01b3281fd27fea  libgomp/testsuite/libgomp.c++/pr26691.C
*************** dc7de2a56e857e340edadd8faabda685  libgom
*** 108874,108879 ****
--- 118717,118724 ----
  2f4b5b9cb40dd4bff2c3c0ebada29767  libgomp/testsuite/libgomp.c++/pr88988.C
  7cc253bb1b2c2c65f9d69743d9235b32  libgomp/testsuite/libgomp.c++/pr93931.C
  21fb1c18428bd927c201491b036a6884  libgomp/testsuite/libgomp.c++/pr96390.C
+ 4cffa5137acf2753cd96b591d407c9ef  libgomp/testsuite/libgomp.c++/private-1.C
+ b5571c134a19d36224598207948c1778  libgomp/testsuite/libgomp.c++/private-2.C
  a594cebdf052900dd0c8792068e14d85  libgomp/testsuite/libgomp.c++/reduction-1.C
  1473f55e3f6f9827b6dd281025b88b85  libgomp/testsuite/libgomp.c++/reduction-10.C
  bd119573b86fb5577edaf97dd86d2a6c  libgomp/testsuite/libgomp.c++/reduction-11.C
*************** ea7582b52459bee267a5af375cca9630  libgom
*** 108886,108891 ****
--- 118731,118737 ----
  30e5f262ef79696b3d4c9141842af634  libgomp/testsuite/libgomp.c++/reduction-7.C
  5e52cc6eae6448f2140723873b911dac  libgomp/testsuite/libgomp.c++/reduction-8.C
  7564a9cf2787e1ce01496a2c2d59cfb3  libgomp/testsuite/libgomp.c++/reduction-9.C
+ c8212ba834a467826fa8d31fbadc090e  libgomp/testsuite/libgomp.c++/ref-mapping-1.C
  3fc5ed7aa4ae9433ba1ad67a60ddf745  libgomp/testsuite/libgomp.c++/reference-1.C
  0b26d5fef87544de8178bcc43b57463a  libgomp/testsuite/libgomp.c++/scan-1.C
  edaa2215d16cc9b96318f86f938b713c  libgomp/testsuite/libgomp.c++/scan-10.C
*************** ff04658f034a805f42f6227468e350d8  libgom
*** 108919,108924 ****
--- 118765,118771 ----
  537fc9ac07046ce042391dfa19843e8c  libgomp/testsuite/libgomp.c++/single-1.C
  6c9d8951c10a36292097716f431c385a  libgomp/testsuite/libgomp.c++/single-2.C
  7d0f24f8edab30e9e5aa2d3f5133e9f4  libgomp/testsuite/libgomp.c++/single-3.C
+ fc294ecae70ea0e846f751937b8f0cf4  libgomp/testsuite/libgomp.c++/struct-ref-1.C
  866b1595d3c521f9e048f3d196a4dea7  libgomp/testsuite/libgomp.c++/target-10.C
  584a99de04a66868ae3499eedc3e2195  libgomp/testsuite/libgomp.c++/target-11.C
  27a976c5e735ce9e087e36caed72abea  libgomp/testsuite/libgomp.c++/target-12.C
*************** a6b49af37227f8b4a2b400968972f26d  libgom
*** 108927,108944 ****
  2c4c8267dca8995861a505bab1fbea46  libgomp/testsuite/libgomp.c++/target-15.C
  a847e64529061157489cc5cde35c7ab0  libgomp/testsuite/libgomp.c++/target-16.C
  a627394989a1f5de1aef46f3899651b0  libgomp/testsuite/libgomp.c++/target-17.C
! 6e3babc53e79af678886045a6d419bc3  libgomp/testsuite/libgomp.c++/target-18.C
! f7b3ed0affdfcdc8be33426e55f56c65  libgomp/testsuite/libgomp.c++/target-19.C
  a7edc8ba5a137d69a617a4d3675b5b01  libgomp/testsuite/libgomp.c++/target-2-aux.cc
  adba67f432b50b18b63fd983c7c0402a  libgomp/testsuite/libgomp.c++/target-2.C
  37e4e40177aed08ff1f53d7b901a11ce  libgomp/testsuite/libgomp.c++/target-20.C
  ab3063f8b6682d372e65d063a35a406d  libgomp/testsuite/libgomp.c++/target-21.C
  5997530d2ff7d321f6ba42c090c31624  libgomp/testsuite/libgomp.c++/target-22.C
  2ccc87923b6fdd79d28d47e24e5dbfce  libgomp/testsuite/libgomp.c++/target-23.C
  71c15b60610a2e837b909b193b5386d2  libgomp/testsuite/libgomp.c++/target-6.C
  131b2ab5b78c2725e33c4249f59e5799  libgomp/testsuite/libgomp.c++/target-7.C
  1a7862ad9a2af6943f9928a670bcaf16  libgomp/testsuite/libgomp.c++/target-8.C
  e8abd1a92868914a2a5307268ef4b3d8  libgomp/testsuite/libgomp.c++/target-9.C
  4f1a5a6faf4e4b1e94a99f3df7f59dfd  libgomp/testsuite/libgomp.c++/target-has-device-addr-2.C
  c2ea975d3e14f144e2ade23a720b62bd  libgomp/testsuite/libgomp.c++/target-has-device-addr-4.C
  e259056e47b1dc505accadfe5b89d17a  libgomp/testsuite/libgomp.c++/target-has-device-addr-5.C
--- 118774,118794 ----
  2c4c8267dca8995861a505bab1fbea46  libgomp/testsuite/libgomp.c++/target-15.C
  a847e64529061157489cc5cde35c7ab0  libgomp/testsuite/libgomp.c++/target-16.C
  a627394989a1f5de1aef46f3899651b0  libgomp/testsuite/libgomp.c++/target-17.C
! 026c96202a3641ccf240834b64dca595  libgomp/testsuite/libgomp.c++/target-18.C
! df5716f496620d97e07fe0d5a08e0c9c  libgomp/testsuite/libgomp.c++/target-19.C
  a7edc8ba5a137d69a617a4d3675b5b01  libgomp/testsuite/libgomp.c++/target-2-aux.cc
  adba67f432b50b18b63fd983c7c0402a  libgomp/testsuite/libgomp.c++/target-2.C
  37e4e40177aed08ff1f53d7b901a11ce  libgomp/testsuite/libgomp.c++/target-20.C
  ab3063f8b6682d372e65d063a35a406d  libgomp/testsuite/libgomp.c++/target-21.C
  5997530d2ff7d321f6ba42c090c31624  libgomp/testsuite/libgomp.c++/target-22.C
  2ccc87923b6fdd79d28d47e24e5dbfce  libgomp/testsuite/libgomp.c++/target-23.C
+ 41ce55c66b2d50a3d368e92fd39401b7  libgomp/testsuite/libgomp.c++/target-48.C
+ 415b1dd37c80a5a1111cd57da2ef7e79  libgomp/testsuite/libgomp.c++/target-49.C
  71c15b60610a2e837b909b193b5386d2  libgomp/testsuite/libgomp.c++/target-6.C
  131b2ab5b78c2725e33c4249f59e5799  libgomp/testsuite/libgomp.c++/target-7.C
  1a7862ad9a2af6943f9928a670bcaf16  libgomp/testsuite/libgomp.c++/target-8.C
  e8abd1a92868914a2a5307268ef4b3d8  libgomp/testsuite/libgomp.c++/target-9.C
+ 3e34525fadfa0f7d151d5ffe7f6c0f3d  libgomp/testsuite/libgomp.c++/target-exit-data-reftoptr-1.C
  4f1a5a6faf4e4b1e94a99f3df7f59dfd  libgomp/testsuite/libgomp.c++/target-has-device-addr-2.C
  c2ea975d3e14f144e2ade23a720b62bd  libgomp/testsuite/libgomp.c++/target-has-device-addr-4.C
  e259056e47b1dc505accadfe5b89d17a  libgomp/testsuite/libgomp.c++/target-has-device-addr-5.C
*************** e6701a1305fd626c1f5d07b941421538  libgom
*** 108948,108964 ****
  8d805913407543aaead455b01dc65b8d  libgomp/testsuite/libgomp.c++/target-has-device-addr-9.C
  97a638ec3a95eff4958b3eac3dfbfbaf  libgomp/testsuite/libgomp.c++/target-in-reduction-1.C
  0277e9ef051fe788c9b9cd37617bc8aa  libgomp/testsuite/libgomp.c++/target-in-reduction-2.C
! 94715868a8f003ba6af5b900cca94745  libgomp/testsuite/libgomp.c++/target-lambda-1.C
  b22a767f11646ecb4998ef385c41337f  libgomp/testsuite/libgomp.c++/target-lambda-2.C
  d60133477ad2d5ea3c1aca648a09ac9f  libgomp/testsuite/libgomp.c++/target-map-class-1.C
! 390d889d17af315fdafa5c2b4b626ec9  libgomp/testsuite/libgomp.c++/target-map-class-2.C
  d01f6cd5771f7784c8ce461cf8b60255  libgomp/testsuite/libgomp.c++/target-same-name-2-a.C
  b0372bd118a07b6674371887148186be  libgomp/testsuite/libgomp.c++/target-same-name-2-b.C
  e20a8ae264dd60aac921ec743e8b6ef6  libgomp/testsuite/libgomp.c++/target-same-name-2.C
  dd3ce96eb6e1a02d995c05804baf3219  libgomp/testsuite/libgomp.c++/target-this-1.C
  7ecd542ef8fc4d3c7a2e77af16f33ddc  libgomp/testsuite/libgomp.c++/target-this-2.C
! fba21b58f96148e08077f4e33845a409  libgomp/testsuite/libgomp.c++/target-this-3.C
! 6b0ab1a02e480902c3290649608601e6  libgomp/testsuite/libgomp.c++/target-this-4.C
  16c373a225fe82f7f0d604229dd1c144  libgomp/testsuite/libgomp.c++/target-this-5.C
  d3a5c683e9f1ba8fe5f9c52a09722af0  libgomp/testsuite/libgomp.c++/target-virtual-1.C
  4755f8276f35f740d59135af4e5242f0  libgomp/testsuite/libgomp.c++/task-1.C
--- 118798,118816 ----
  8d805913407543aaead455b01dc65b8d  libgomp/testsuite/libgomp.c++/target-has-device-addr-9.C
  97a638ec3a95eff4958b3eac3dfbfbaf  libgomp/testsuite/libgomp.c++/target-in-reduction-1.C
  0277e9ef051fe788c9b9cd37617bc8aa  libgomp/testsuite/libgomp.c++/target-in-reduction-2.C
! d23befcb08b7a354553581687606995a  libgomp/testsuite/libgomp.c++/target-lambda-1.C
  b22a767f11646ecb4998ef385c41337f  libgomp/testsuite/libgomp.c++/target-lambda-2.C
+ e83625d4c6190854ee54b25cdabe69ca  libgomp/testsuite/libgomp.c++/target-lambda-3.C
+ 4372bdd89f0ce0490fa57005228167d3  libgomp/testsuite/libgomp.c++/target-lambda-4.C
  d60133477ad2d5ea3c1aca648a09ac9f  libgomp/testsuite/libgomp.c++/target-map-class-1.C
! 8f7ce45b75a797c6700eae6c6c482459  libgomp/testsuite/libgomp.c++/target-map-class-2.C
  d01f6cd5771f7784c8ce461cf8b60255  libgomp/testsuite/libgomp.c++/target-same-name-2-a.C
  b0372bd118a07b6674371887148186be  libgomp/testsuite/libgomp.c++/target-same-name-2-b.C
  e20a8ae264dd60aac921ec743e8b6ef6  libgomp/testsuite/libgomp.c++/target-same-name-2.C
  dd3ce96eb6e1a02d995c05804baf3219  libgomp/testsuite/libgomp.c++/target-this-1.C
  7ecd542ef8fc4d3c7a2e77af16f33ddc  libgomp/testsuite/libgomp.c++/target-this-2.C
! b259a40bb59294ea9e4a97ffe6189132  libgomp/testsuite/libgomp.c++/target-this-3.C
! 0a7c63c111661f7e3b5339677db5cb26  libgomp/testsuite/libgomp.c++/target-this-4.C
  16c373a225fe82f7f0d604229dd1c144  libgomp/testsuite/libgomp.c++/target-this-5.C
  d3a5c683e9f1ba8fe5f9c52a09722af0  libgomp/testsuite/libgomp.c++/target-virtual-1.C
  4755f8276f35f740d59135af4e5242f0  libgomp/testsuite/libgomp.c++/task-1.C
*************** ea9d7efadb5b2c25e305ce1e8aee8d04  libgom
*** 109017,109024 ****
--- 118869,118879 ----
  05359c9369906184ed3a5b1b706ae2cb  libgomp/testsuite/libgomp.c++/udr-6.C
  18bc8983002568fa3de20df48f9b2c2f  libgomp/testsuite/libgomp.c++/udr-7.C
  a0ed7c5ec445acca5bb4d3efd5041bbf  libgomp/testsuite/libgomp.c++/udr-8.C
+ 8226094333b3623182b438aa1ab9a557  libgomp/testsuite/libgomp.c++/use_device_ptr-1.C
  9049517c3597f400ce3982fc59a9cb94  libgomp/testsuite/libgomp.c-c++-common/alloc-1.c
  fc7de9de760679e8b92e68cc05f02dcd  libgomp/testsuite/libgomp.c-c++-common/alloc-10.c
+ bccf9e446fd11a6e948feeb14eed067f  libgomp/testsuite/libgomp.c-c++-common/alloc-11.c
+ f6e5d6183d40e30064e4b9dffff88b3a  libgomp/testsuite/libgomp.c-c++-common/alloc-12.c
  fd2369c7ae56d95d52913f986183913e  libgomp/testsuite/libgomp.c-c++-common/alloc-2.c
  6f5f297baa365e3ee82fd98026c3f0f4  libgomp/testsuite/libgomp.c-c++-common/alloc-3.c
  6dfe7bee722e661d4d268b712c0f1d78  libgomp/testsuite/libgomp.c-c++-common/alloc-4.c
*************** fd2369c7ae56d95d52913f986183913e  libgom
*** 109030,109039 ****
--- 118885,118901 ----
  41e58903cfe25287db13d4e13157037d  libgomp/testsuite/libgomp.c-c++-common/allocate-1.c
  c1c21337b0fec3c68ff32349fb0a4018  libgomp/testsuite/libgomp.c-c++-common/allocate-2.c
  345af687e5b4235bd0e1867f591217f5  libgomp/testsuite/libgomp.c-c++-common/allocate-3.c
+ 338567dfa51841d8ee710d7de3d0b3be  libgomp/testsuite/libgomp.c-c++-common/array-field-1.c
+ 03ad70a1f1f70761a9211520286abd40  libgomp/testsuite/libgomp.c-c++-common/array-of-struct-1.c
+ 897c2a61f8cb4611c3645ddb5573d44d  libgomp/testsuite/libgomp.c-c++-common/array-of-struct-2.c
  4dc4b112dfee5bd9786bd0c593398b1b  libgomp/testsuite/libgomp.c-c++-common/atomic-18.c
  0892e753aa240ae919dd5eca15841da2  libgomp/testsuite/libgomp.c-c++-common/atomic-19.c
  69c685c05133b4a16e0c8dac70b08f1c  libgomp/testsuite/libgomp.c-c++-common/atomic-20.c
  7a2af54d64b5694d40c340fd54e94a2a  libgomp/testsuite/libgomp.c-c++-common/atomic-21.c
+ dc92320c20d6c66965c8bbfad8f6127d  libgomp/testsuite/libgomp.c-c++-common/baseptrs-1.c
+ c78332b5caf38f4811a80bef6a30ca9b  libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c
+ 9827463d9d8147e0833d0b4ab48bc346  libgomp/testsuite/libgomp.c-c++-common/baseptrs-6.c
+ e700fabc04a10611a988a11fccaf0fe6  libgomp/testsuite/libgomp.c-c++-common/baseptrs-7.c
  83a30fcfeab47090fa194cc1e6ec2f83  libgomp/testsuite/libgomp.c-c++-common/cancel-parallel-1.c
  025dfca2b02c470cf7f46afb552c078c  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c
  e84312e49f013526d73d8d431b003123  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c
*************** e84312e49f013526d73d8d431b003123  libgom
*** 109041,109046 ****
--- 118903,118910 ----
  65874eb51aef9c0a8ebb700f6708ac82  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-4.c
  9fe6259058ff7671b0dadfe2a5eea80f  libgomp/testsuite/libgomp.c-c++-common/critical-hint-1.c
  a4ab197aeadddd54aec1345501b5ea69  libgomp/testsuite/libgomp.c-c++-common/critical-hint-2.c
+ a91d1e81f6056f17808a3f96ef2583c6  libgomp/testsuite/libgomp.c-c++-common/declare-target-indirect-1.c
+ 340f18f5450878329ed68937e697b129  libgomp/testsuite/libgomp.c-c++-common/declare-target-indirect-2.c
  12e3ee01b70343537315551db476c391  libgomp/testsuite/libgomp.c-c++-common/declare_target-1.c
  59c8656b7740501a704831756762d395  libgomp/testsuite/libgomp.c-c++-common/default-1.c
  a1a09ff547c6ff16fad80cd2261269ee  libgomp/testsuite/libgomp.c-c++-common/depend-1.c
*************** c09232193f6376e5d0b4ebdc9096118e  libgom
*** 109085,109090 ****
--- 118949,118961 ----
  4d6205636b7a7ee4172ae3682e8d45da  libgomp/testsuite/libgomp.c-c++-common/icv-7.c
  d41f9e5a7dfb9020f7fdc4083e485f06  libgomp/testsuite/libgomp.c-c++-common/icv-8.c
  3d0e07ae722b636a89063bdf36a01c8e  libgomp/testsuite/libgomp.c-c++-common/icv-9.c
+ 0d143e1e7499dc55573b461e8f58fb0c  libgomp/testsuite/libgomp.c-c++-common/imperfect1.c
+ f211c31e4f6b896359340ed8c1bc934d  libgomp/testsuite/libgomp.c-c++-common/imperfect2.c
+ 48aa16652ecb263b58bf28871a3c337d  libgomp/testsuite/libgomp.c-c++-common/imperfect3.c
+ db84355be6497be803699536cec8df8e  libgomp/testsuite/libgomp.c-c++-common/imperfect4.c
+ 81e078bfc368de8d2c8e928d897ee2f8  libgomp/testsuite/libgomp.c-c++-common/imperfect5.c
+ 1c73b49722635b90556ce6935d2ff0dd  libgomp/testsuite/libgomp.c-c++-common/imperfect6.c
+ b292d9e57e7d3e0182bd4d6e553e7747  libgomp/testsuite/libgomp.c-c++-common/ind-base-4.c
  2db7225fd29d77c0461e025f76bb7fce  libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-1.c
  4ea18b6b659c1a92c5928b282969d372  libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-10.c
  14c015447b26dcc91408ffe46450e85f  libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-2.c
*************** b27380cd395a2928996b8531b3eb62ad  libgom
*** 109099,109109 ****
--- 118970,118985 ----
  683302cd2c348c750020ecdfcfa8c7de  libgomp/testsuite/libgomp.c-c++-common/loop-13.c
  81cd8a77c25ea49d08f07250f984f35d  libgomp/testsuite/libgomp.c-c++-common/loop-14.c
  dffc3aabaa5b2461aa560fc66c80c0fe  libgomp/testsuite/libgomp.c-c++-common/loop-15.c
+ 432ac98498f545fab31969b079c5848a  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-1.c
+ a47284d2352269483d0c53155360b633  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-2.c
+ b89b9c70a8c4c9621441bbf286e6bc0d  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-3.c
  5cdaccb404c42c94d2b0ed71fa9b4450  libgomp/testsuite/libgomp.c-c++-common/masked-1.c
  3c55e0ae7ee0559f4081eae1bd8bcff2  libgomp/testsuite/libgomp.c-c++-common/master-combined-1.c
+ 6641003248aa3d1115dde398cabf5d6d  libgomp/testsuite/libgomp.c-c++-common/memcpyxd-bias-1.c
  f959c1fe9d94d7321dbc7b419eefe7a7  libgomp/testsuite/libgomp.c-c++-common/monotonic-1.c
  cc6abf61b301e17286872d6d76d483c0  libgomp/testsuite/libgomp.c-c++-common/monotonic-2.c
  1c4ec2975c3dc84ae293e87a285260b4  libgomp/testsuite/libgomp.c-c++-common/nested-parallel-unbalanced.c
+ 83daaaf005b81e8c9d1f407ac1c30136  libgomp/testsuite/libgomp.c-c++-common/non-rect-loop-1.c
  d9c974865c1c03b48fac0231e028a7be  libgomp/testsuite/libgomp.c-c++-common/nonmonotonic-1.c
  214e7bba3d270a6822e2e6161f05981b  libgomp/testsuite/libgomp.c-c++-common/nonmonotonic-2.c
  857b86f8109e8843b901fc93bce4c8a8  libgomp/testsuite/libgomp.c-c++-common/nothing-1.c
*************** e2bc55eb4581cd421c13c8ce68663678  libgom
*** 109115,109120 ****
--- 118991,118997 ----
  53fe13231ac841815b983b820fa61932  libgomp/testsuite/libgomp.c-c++-common/ordered-4.c
  35032e9e752cf0fddfcf3aa3df880c48  libgomp/testsuite/libgomp.c-c++-common/pause-1.c
  333f11e6a780e595ef92d101803745c9  libgomp/testsuite/libgomp.c-c++-common/pause-2.c
+ 2ac0dc733994b8e1c05d57368faeec50  libgomp/testsuite/libgomp.c-c++-common/pr100059-1.c
  f57660e58c4d1e1085d45c8590d31ff9  libgomp/testsuite/libgomp.c-c++-common/pr106449-2.c
  5c7fd2f1e707d0e769a814bd91bb9ae8  libgomp/testsuite/libgomp.c-c++-common/pr106449.c
  010e1c442bf8c18b7045c53d36e8346e  libgomp/testsuite/libgomp.c-c++-common/pr106981.c
*************** bbbd1b345adde5e2b11d48880c03841d  libgom
*** 109143,109148 ****
--- 119020,119026 ----
  aa27b099930bc5b5e07e143f2ff6fedc  libgomp/testsuite/libgomp.c-c++-common/pr94366.c
  a86d9a83545e3b50c9acf939c20f319c  libgomp/testsuite/libgomp.c-c++-common/pr96390.c
  815799e957465c99070ca74ae5616589  libgomp/testsuite/libgomp.c-c++-common/ptr-attach-1.c
+ e76f2f2950cb51f5ef4d063e57da09be  libgomp/testsuite/libgomp.c-c++-common/ptr-attach-2.c
  2d2748b0be4d42cf748c994d23973c0d  libgomp/testsuite/libgomp.c-c++-common/reduction-1.c
  1918a797ca25f14588ff263d56568f8d  libgomp/testsuite/libgomp.c-c++-common/reduction-16.c
  d7ab6e4bfb482647bc734af066fff6e3  libgomp/testsuite/libgomp.c-c++-common/reduction-17.c
*************** c0f14c17be7a8ee323ff263c601b1acc  libgom
*** 109159,109174 ****
  8a69c8483a5b57f5e10ebe6dc5c601c2  libgomp/testsuite/libgomp.c-c++-common/requires-3-aux.c
  5d5e860b312fff5c34533d48ec0eb681  libgomp/testsuite/libgomp.c-c++-common/requires-3.c
  d2d94dae77980713772e146283d1ebea  libgomp/testsuite/libgomp.c-c++-common/requires-4-aux.c
! a731d728ccfe8555039538fe9dc4603f  libgomp/testsuite/libgomp.c-c++-common/requires-4.c
! 2c3016633a066452667557249022671b  libgomp/testsuite/libgomp.c-c++-common/requires-4a.c
  d9ee2c78e4856929794abece69334a40  libgomp/testsuite/libgomp.c-c++-common/requires-5-aux.c
  623abfaf9eea646fe7161a0f752e1e31  libgomp/testsuite/libgomp.c-c++-common/requires-5.c
  fd32aa450f6085f94f173a50b28d3d25  libgomp/testsuite/libgomp.c-c++-common/requires-6.c
  195d6a61269c9033d8086247c91f77ee  libgomp/testsuite/libgomp.c-c++-common/requires-7-aux.c
  9d6c03006ea5f6c30ceda8760563f925  libgomp/testsuite/libgomp.c-c++-common/requires-7.c
  8e516448f286cde9aee98590f90f9b54  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-1-aux.c
  03510135dd2e6c915f2ce8b2b3e096ed  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-1.c
  e1893e2e9ae8849b851fe85bf492a4bc  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-2.c
  ee53be878dd906b2e18b5907cb4a4617  libgomp/testsuite/libgomp.c-c++-common/scope-1.c
  1133431dbdb45650629657f5914026c7  libgomp/testsuite/libgomp.c-c++-common/scope-2.c
  d66bb650f4953bee67dede99228fb94f  libgomp/testsuite/libgomp.c-c++-common/simd-1.c
--- 119037,119055 ----
  8a69c8483a5b57f5e10ebe6dc5c601c2  libgomp/testsuite/libgomp.c-c++-common/requires-3-aux.c
  5d5e860b312fff5c34533d48ec0eb681  libgomp/testsuite/libgomp.c-c++-common/requires-3.c
  d2d94dae77980713772e146283d1ebea  libgomp/testsuite/libgomp.c-c++-common/requires-4-aux.c
! 122889a7264fc929d05d7dbcf313e31b  libgomp/testsuite/libgomp.c-c++-common/requires-4.c
! 6c692530980949db1e055c4cc1ed8141  libgomp/testsuite/libgomp.c-c++-common/requires-4a.c
  d9ee2c78e4856929794abece69334a40  libgomp/testsuite/libgomp.c-c++-common/requires-5-aux.c
  623abfaf9eea646fe7161a0f752e1e31  libgomp/testsuite/libgomp.c-c++-common/requires-5.c
  fd32aa450f6085f94f173a50b28d3d25  libgomp/testsuite/libgomp.c-c++-common/requires-6.c
  195d6a61269c9033d8086247c91f77ee  libgomp/testsuite/libgomp.c-c++-common/requires-7-aux.c
  9d6c03006ea5f6c30ceda8760563f925  libgomp/testsuite/libgomp.c-c++-common/requires-7.c
+ b59fce7c7dfddc5a531d9a1080c91edb  libgomp/testsuite/libgomp.c-c++-common/requires-unified-addr-1.c
+ f2b29613d469d34204a185cce77a72ba  libgomp/testsuite/libgomp.c-c++-common/requires-unified-addr-2.c
  8e516448f286cde9aee98590f90f9b54  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-1-aux.c
  03510135dd2e6c915f2ce8b2b3e096ed  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-1.c
  e1893e2e9ae8849b851fe85bf492a4bc  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-2.c
+ 6eba84b9b3a32f65db772fedfb9db148  libgomp/testsuite/libgomp.c-c++-common/scan-1.c
  ee53be878dd906b2e18b5907cb4a4617  libgomp/testsuite/libgomp.c-c++-common/scope-1.c
  1133431dbdb45650629657f5914026c7  libgomp/testsuite/libgomp.c-c++-common/scope-2.c
  d66bb650f4953bee67dede99228fb94f  libgomp/testsuite/libgomp.c-c++-common/simd-1.c
*************** c1475af16cfcc82bec0d85875d542fdb  libgom
*** 109190,109204 ****
  d87524b525b7f424e584af640f4b038b  libgomp/testsuite/libgomp.c-c++-common/target-42.c
  ae24e1c7b9fc9100ef17c4595417ef54  libgomp/testsuite/libgomp.c-c++-common/target-45.c
  1120f9e50460c0396d1ae405ffd3e780  libgomp/testsuite/libgomp.c-c++-common/target-has-device-addr-1.c
  e73115d6a79251ae1cec9faf5147c7c8  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-1.c
! bf1a2d5b5e659178fb80138902374a56  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-2.c
  c59c2b50b25e1cc94ef1440dd9e22f71  libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-1.c
  e4ae276ba05cf2521872c73349458117  libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-2.c
  462413b33154db71951671a657737912  libgomp/testsuite/libgomp.c-c++-common/target-is-accessible-1.c
  d989443106e2a262436792d18fb2f23b  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-async-1.c
  3737e3b4823c33573762510eb88c0f0f  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-async-2.c
  b13870c9ccee080373d9f85e69613aa6  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-rect-async-1.c
  acca011e007b14dd1357bebb2ff85642  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-rect-async-2.c
  400c5830e8dd2f17214d8d23477755de  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1-a.c
  469b004815365e46140bcd8b826170ce  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1-b.c
  b85430592a96b021a6f4ab81d5c35eb9  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1.c
--- 119071,119096 ----
  d87524b525b7f424e584af640f4b038b  libgomp/testsuite/libgomp.c-c++-common/target-42.c
  ae24e1c7b9fc9100ef17c4595417ef54  libgomp/testsuite/libgomp.c-c++-common/target-45.c
  1120f9e50460c0396d1ae405ffd3e780  libgomp/testsuite/libgomp.c-c++-common/target-has-device-addr-1.c
+ 37fce83633860f28a35df3d48f63ff79  libgomp/testsuite/libgomp.c-c++-common/target-imperfect1.c
+ 94c7429304d92c51fd9543fc11b3051c  libgomp/testsuite/libgomp.c-c++-common/target-imperfect2.c
+ c194c024e42053dd95f6e219515d6619  libgomp/testsuite/libgomp.c-c++-common/target-imperfect3.c
+ 083470d5ef36f44cb0686c63b7b2fc70  libgomp/testsuite/libgomp.c-c++-common/target-imperfect4.c
  e73115d6a79251ae1cec9faf5147c7c8  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-1.c
! 5e04725acf39e2f7ef276687748071f9  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-2.c
! b3506d3ed6c7b40289dd8c49dadf0e5a  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-3.c
! be9edae79e36592176a6ef4d75308c5f  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-4.c
! 7a5ccad9c039ea2c070efc3da16249d1  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-5.c
  c59c2b50b25e1cc94ef1440dd9e22f71  libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-1.c
  e4ae276ba05cf2521872c73349458117  libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-2.c
  462413b33154db71951671a657737912  libgomp/testsuite/libgomp.c-c++-common/target-is-accessible-1.c
+ 4f49f4526eb91412060d42cdf5c84f65  libgomp/testsuite/libgomp.c-c++-common/target-map-zlas-1.c
  d989443106e2a262436792d18fb2f23b  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-async-1.c
  3737e3b4823c33573762510eb88c0f0f  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-async-2.c
  b13870c9ccee080373d9f85e69613aa6  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-rect-async-1.c
  acca011e007b14dd1357bebb2ff85642  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-rect-async-2.c
+ 5e383c34b37ea1cb5c06fff98b1f457d  libgomp/testsuite/libgomp.c-c++-common/target-present-1.c
+ ffe15652e4f5929658a368d8b7aabdd0  libgomp/testsuite/libgomp.c-c++-common/target-present-2.c
+ d4069bee4bb64a7b1bc7c9545219e88c  libgomp/testsuite/libgomp.c-c++-common/target-present-3.c
  400c5830e8dd2f17214d8d23477755de  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1-a.c
  469b004815365e46140bcd8b826170ce  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1-b.c
  b85430592a96b021a6f4ab81d5c35eb9  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1.c
*************** fb173d8d2f7d77807e2f94fea30c2a43  libgom
*** 109250,109262 ****
  b33f1965a6b9dacd7167fd0324c38e22  libgomp/testsuite/libgomp.c-c++-common/taskwait-depend-nowait-2.c
  e8fd73b729dbcad088c01b1d0f31a2ff  libgomp/testsuite/libgomp.c-c++-common/teams-1.c
  7df126bb12429498f7ff59725539584a  libgomp/testsuite/libgomp.c-c++-common/teams-2.c
  7bf43ffa356123b83df7b2f06cb4ad94  libgomp/testsuite/libgomp.c-c++-common/thread-limit-1.c
  5d8ecdbae4b1a48b2e6a1ddef6b0ca7f  libgomp/testsuite/libgomp.c-c++-common/udr-1.c
  448f5dd482b6ef3000923aaa33bb3bfb  libgomp/testsuite/libgomp.c-c++-common/unmap-infinity-2.c
  b2587cfb605c9af09f5b45e95cdb2437  libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c
  9827d700d634869b090c7636cc855819  libgomp/testsuite/libgomp.c/address-space-1.c
! 1c71a5c862fbcfd6558613f36676ee74  libgomp/testsuite/libgomp.c/affinity-1.c
  fe6e22f8c0d2e289ecbd5ea26c9ed1bc  libgomp/testsuite/libgomp.c/affinity-2.c
  1f6a1f1c31286073320fc1d55660da23  libgomp/testsuite/libgomp.c/appendix-a/a.15.1.c
  16dafd2aadb62eb39423e7b2deb46cc1  libgomp/testsuite/libgomp.c/appendix-a/a.16.1.c
  e93a3e74972b33d2a0caef52cf757ee4  libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c
--- 119142,119172 ----
  b33f1965a6b9dacd7167fd0324c38e22  libgomp/testsuite/libgomp.c-c++-common/taskwait-depend-nowait-2.c
  e8fd73b729dbcad088c01b1d0f31a2ff  libgomp/testsuite/libgomp.c-c++-common/teams-1.c
  7df126bb12429498f7ff59725539584a  libgomp/testsuite/libgomp.c-c++-common/teams-2.c
+ a1381676c0198bb6356bfba23e9d3a13  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c
+ ca33c5f9c9903b757ed36247b61aad15  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-2.c
+ 801fc413d0c72adbb5636b376e0c3362  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-3.c
+ 53a7aa68c95c086a2e05b665c3c56459  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-4.c
  7bf43ffa356123b83df7b2f06cb4ad94  libgomp/testsuite/libgomp.c-c++-common/thread-limit-1.c
  5d8ecdbae4b1a48b2e6a1ddef6b0ca7f  libgomp/testsuite/libgomp.c-c++-common/udr-1.c
+ 04111c68e1e9fe8b6796a44f4ee69ee6  libgomp/testsuite/libgomp.c-c++-common/unary-ptr-1.c
  448f5dd482b6ef3000923aaa33bb3bfb  libgomp/testsuite/libgomp.c-c++-common/unmap-infinity-2.c
  b2587cfb605c9af09f5b45e95cdb2437  libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c
  9827d700d634869b090c7636cc855819  libgomp/testsuite/libgomp.c/address-space-1.c
! d151a4c7b828e7d6e60f4af8ca7cc525  libgomp/testsuite/libgomp.c/affinity-1.c
  fe6e22f8c0d2e289ecbd5ea26c9ed1bc  libgomp/testsuite/libgomp.c/affinity-2.c
+ 22a9ad1a187b58527906d009d35c7b74  libgomp/testsuite/libgomp.c/alloc-pinned-1.c
+ d87d6bbce841a471996f894d474ce60c  libgomp/testsuite/libgomp.c/alloc-pinned-2.c
+ 81f12940572a770a3249e1f5f2b113f9  libgomp/testsuite/libgomp.c/alloc-pinned-3.c
+ 46930a2ae11525c03fb71ea729ea2c87  libgomp/testsuite/libgomp.c/alloc-pinned-4.c
+ fcaebb2fe201ab9ca6d533e58c770386  libgomp/testsuite/libgomp.c/allocate-4.c
+ c0ceb47334b72704392f09754c63b979  libgomp/testsuite/libgomp.c/allocate-5.c
+ d0031291832976a7279d71c7c7337482  libgomp/testsuite/libgomp.c/allocate-6.c
+ a41ceafeacd26f2d6287304009f5b8d2  libgomp/testsuite/libgomp.c/allocator-1.c
+ fc181e877b4a4f6fa28daee1df38e75d  libgomp/testsuite/libgomp.c/allocator-2.c
+ cad3ba808079842bfb8fef54eb0840df  libgomp/testsuite/libgomp.c/allocator-3.c
+ 8da1128096dc09d63468a8bb3579b20b  libgomp/testsuite/libgomp.c/allocator-4.c
+ b568fd245f44f7f9bc3a6e38b724bd00  libgomp/testsuite/libgomp.c/allocator-5.c
+ 3a12b14ddf962d07ae2dec95832c6b5c  libgomp/testsuite/libgomp.c/allocator-6.c
  1f6a1f1c31286073320fc1d55660da23  libgomp/testsuite/libgomp.c/appendix-a/a.15.1.c
  16dafd2aadb62eb39423e7b2deb46cc1  libgomp/testsuite/libgomp.c/appendix-a/a.16.1.c
  e93a3e74972b33d2a0caef52cf757ee4  libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c
*************** d8a4580727b203fa0b4b3bb5a6495aea  libgom
*** 109295,109301 ****
  e55bb2fa22ecfad155b92c445e4128e4  libgomp/testsuite/libgomp.c/autopar-7.c
  1332d360ab9db69538186f861d89a00c  libgomp/testsuite/libgomp.c/autopar-8.c
  c75783c8a3d7ab920c82ea2321e24d1d  libgomp/testsuite/libgomp.c/barrier-1.c
! 01176a4ace2536b8f6397fe8304b23fe  libgomp/testsuite/libgomp.c/c.exp
  02516a63eb7c2c6d10a65b41dd80b536  libgomp/testsuite/libgomp.c/cancel-for-1.c
  101271354eef60f5d929e89131fbe45a  libgomp/testsuite/libgomp.c/cancel-for-2.c
  71b770bf06e4ead110256be4cc3e96fd  libgomp/testsuite/libgomp.c/cancel-parallel-1.c
--- 119205,119212 ----
  e55bb2fa22ecfad155b92c445e4128e4  libgomp/testsuite/libgomp.c/autopar-7.c
  1332d360ab9db69538186f861d89a00c  libgomp/testsuite/libgomp.c/autopar-8.c
  c75783c8a3d7ab920c82ea2321e24d1d  libgomp/testsuite/libgomp.c/barrier-1.c
! 066b9d9d98732e0a73ac90df1395e15a  libgomp/testsuite/libgomp.c/bitint-1.c
! b7564639746915d44a752a4eb20f16a2  libgomp/testsuite/libgomp.c/c.exp
  02516a63eb7c2c6d10a65b41dd80b536  libgomp/testsuite/libgomp.c/cancel-for-1.c
  101271354eef60f5d929e89131fbe45a  libgomp/testsuite/libgomp.c/cancel-for-2.c
  71b770bf06e4ead110256be4cc3e96fd  libgomp/testsuite/libgomp.c/cancel-parallel-1.c
*************** a0864a470dcfab5610654831f9ec1740  libgom
*** 109311,109332 ****
  4dd2cfb516bf87f648a7200fcbe97240  libgomp/testsuite/libgomp.c/critical-1.c
  1cca2a92d0182ae3c650964de6d87d0a  libgomp/testsuite/libgomp.c/critical-2.c
  b5604fce8e01b4e305a8c0a4563d1aa9  libgomp/testsuite/libgomp.c/debug-1.c
! 9c2e77575175172ebb8ff9301c063d3d  libgomp/testsuite/libgomp.c/declare-variant-1.c
  6d6b0531c9f74483e6111b636da2edf2  libgomp/testsuite/libgomp.c/declare-variant-2.c
! 30093bb51133327e8180a126ef9fa303  libgomp/testsuite/libgomp.c/declare-variant-3-sm30.c
! 16bb2971883718f99eaf35aa218388a3  libgomp/testsuite/libgomp.c/declare-variant-3-sm35.c
! e1ed9cc06141fce55456e6272a71118b  libgomp/testsuite/libgomp.c/declare-variant-3-sm53.c
! b1d3fe36737490aef180f46d7da6e87d  libgomp/testsuite/libgomp.c/declare-variant-3-sm70.c
! 0be08e10481456dea34aa3c77469bb95  libgomp/testsuite/libgomp.c/declare-variant-3-sm75.c
! 521294738537591a7c348c6cf22ab183  libgomp/testsuite/libgomp.c/declare-variant-3-sm80.c
! 7b6aaf409418914c7e9fbc501eda6c9b  libgomp/testsuite/libgomp.c/declare-variant-3.h
! 6fa7c7dd7da3a8cbd3f168446a7726eb  libgomp/testsuite/libgomp.c/declare-variant-4-fiji.c
! 67b80d5fdc86561d3004263a11d46861  libgomp/testsuite/libgomp.c/declare-variant-4-gfx803.c
! 3e14f40ce7cd526a2309fa4a7246c955  libgomp/testsuite/libgomp.c/declare-variant-4-gfx900.c
! 05bf6949e9fac738e03b7b49f3591c61  libgomp/testsuite/libgomp.c/declare-variant-4-gfx906.c
! 5b22d70e3cee06637f3356158d67c05b  libgomp/testsuite/libgomp.c/declare-variant-4-gfx908.c
! 8821d470d676668a587b992f18df5562  libgomp/testsuite/libgomp.c/declare-variant-4-gfx90a.c
! ffd13e867ae45c7a2fb477cc204679de  libgomp/testsuite/libgomp.c/declare-variant-4.h
  de26bcca8c4e027a5ce130d6ff6fc370  libgomp/testsuite/libgomp.c/depend-1.c
  f064386a2df301c3135834944af37de9  libgomp/testsuite/libgomp.c/depend-10.c
  e46784f3cdfb38c461a2af6e0d9094a0  libgomp/testsuite/libgomp.c/depend-2.c
--- 119222,119247 ----
  4dd2cfb516bf87f648a7200fcbe97240  libgomp/testsuite/libgomp.c/critical-1.c
  1cca2a92d0182ae3c650964de6d87d0a  libgomp/testsuite/libgomp.c/critical-2.c
  b5604fce8e01b4e305a8c0a4563d1aa9  libgomp/testsuite/libgomp.c/debug-1.c
! afbc465058b9ba3f4c999bbdd4f3d1ae  libgomp/testsuite/libgomp.c/declare-variant-1.c
  6d6b0531c9f74483e6111b636da2edf2  libgomp/testsuite/libgomp.c/declare-variant-2.c
! d9c383822eb3728cd6eba3775b3e04bc  libgomp/testsuite/libgomp.c/declare-variant-3-sm30.c
! 1f68040131b346f50f3b863a32ef8916  libgomp/testsuite/libgomp.c/declare-variant-3-sm35.c
! 24ce05bd1621e2283a45e5631d7fd074  libgomp/testsuite/libgomp.c/declare-variant-3-sm53.c
! a30c653b4c75613a04461c9dd4693f7c  libgomp/testsuite/libgomp.c/declare-variant-3-sm70.c
! c7e4450d857de7de3db653040f28ea54  libgomp/testsuite/libgomp.c/declare-variant-3-sm75.c
! f2efa95bfb9ba9e454c38688371551c9  libgomp/testsuite/libgomp.c/declare-variant-3-sm80.c
! 07f0d7a64507218c809e5e271bdb674b  libgomp/testsuite/libgomp.c/declare-variant-3.c
! caa4b70d649a56b9cb4acf9c1b9d33a0  libgomp/testsuite/libgomp.c/declare-variant-3.h
! b17eb6111458622ccbcd4c9d76401e09  libgomp/testsuite/libgomp.c/declare-variant-4-fiji.c
! 9d4e38bf8232dbd3d2be1dac08f82dce  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1030.c
! c345d04dc352b555cd84bcebe00359d4  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1100.c
! fa4a95e1bb6a723927a8e1658906e3fb  libgomp/testsuite/libgomp.c/declare-variant-4-gfx803.c
! db5fedb1611696cb835292ca099add57  libgomp/testsuite/libgomp.c/declare-variant-4-gfx900.c
! 498883a95dd74060d939d1ca4bc3190f  libgomp/testsuite/libgomp.c/declare-variant-4-gfx906.c
! 462b7afc311815ebbf76742eba03d83f  libgomp/testsuite/libgomp.c/declare-variant-4-gfx908.c
! a6a60705b94c7e6b7919df5a6678c9c4  libgomp/testsuite/libgomp.c/declare-variant-4-gfx90a.c
! 1a4ae6cfa2b54902b0414a9c9adc6ec2  libgomp/testsuite/libgomp.c/declare-variant-4.c
! 3d7dea2317333968530fd512075e9d25  libgomp/testsuite/libgomp.c/declare-variant-4.h
  de26bcca8c4e027a5ce130d6ff6fc370  libgomp/testsuite/libgomp.c/depend-1.c
  f064386a2df301c3135834944af37de9  libgomp/testsuite/libgomp.c/depend-10.c
  e46784f3cdfb38c461a2af6e0d9094a0  libgomp/testsuite/libgomp.c/depend-2.c
*************** e756f95da64c35a1d35271b41d86a25f  libgom
*** 109440,109445 ****
--- 119355,119367 ----
  fd94f11e80d06ba6d2e92c00e2dbaf0d  libgomp/testsuite/libgomp.c/omp-single-1.c
  5c210f4cc7da947889dd747ceff032fa  libgomp/testsuite/libgomp.c/omp-single-2.c
  51a80dab8d4bcf4b4a8d80121e330d5c  libgomp/testsuite/libgomp.c/omp-single-3.c
+ 058917e7c5f623f47edc814121a0ccea  libgomp/testsuite/libgomp.c/omp_alloc-1.c
+ a299aaf17eb430a0ca769281803b17cb  libgomp/testsuite/libgomp.c/omp_alloc-2.c
+ 5a944fe5f6ca39693f36b7d730f9243c  libgomp/testsuite/libgomp.c/omp_alloc-3.c
+ a3baf88916a2a689c5da3ed49f314e9a  libgomp/testsuite/libgomp.c/omp_alloc-4.c
+ 6901743bbc51fc54b1daba10e4e0ca03  libgomp/testsuite/libgomp.c/omp_alloc-5.c
+ 6f6a8c051d85ef0a06d194c0245757fc  libgomp/testsuite/libgomp.c/omp_alloc-6.c
+ 964766e4d0d8880441f67386a471bbc9  libgomp/testsuite/libgomp.c/omp_alloc-traits.c
  84bd02af2734ea7b387eda45f45dba90  libgomp/testsuite/libgomp.c/omp_hello.c
  7d4fc3b4ef57d7b045e6b7afade7b1ae  libgomp/testsuite/libgomp.c/omp_matvec.c
  d24c7f3c4eac986e211049a75d2a364b  libgomp/testsuite/libgomp.c/omp_orphan.c
*************** bec2e246a29d581f6ebc16d2674347cb  libgom
*** 109563,109569 ****
  bbb535f9235265a2e36ddfe0bbef8c2c  libgomp/testsuite/libgomp.c/reduction-7.c
  0aa03d9573a13424169870e45c92f25e  libgomp/testsuite/libgomp.c/reduction-8.c
  29b921d3bf00dc1d10a72d9c11fb30e0  libgomp/testsuite/libgomp.c/reduction-9.c
! 3a9dadf356a32b3316f3383d34504cd5  libgomp/testsuite/libgomp.c/reverse-offload-sm30.c
  2a48c2338a305c91e5edef024dabd0e0  libgomp/testsuite/libgomp.c/scan-1.c
  272440d8849c18c1c589238ce278b172  libgomp/testsuite/libgomp.c/scan-10.c
  18e18b13854e025eeb9efa1ba0628f49  libgomp/testsuite/libgomp.c/scan-11.c
--- 119485,119491 ----
  bbb535f9235265a2e36ddfe0bbef8c2c  libgomp/testsuite/libgomp.c/reduction-7.c
  0aa03d9573a13424169870e45c92f25e  libgomp/testsuite/libgomp.c/reduction-8.c
  29b921d3bf00dc1d10a72d9c11fb30e0  libgomp/testsuite/libgomp.c/reduction-9.c
! 2d2852d5f8b1ef9e351151883242dc62  libgomp/testsuite/libgomp.c/reverse-offload-sm30.c
  2a48c2338a305c91e5edef024dabd0e0  libgomp/testsuite/libgomp.c/scan-1.c
  272440d8849c18c1c589238ce278b172  libgomp/testsuite/libgomp.c/scan-10.c
  18e18b13854e025eeb9efa1ba0628f49  libgomp/testsuite/libgomp.c/scan-11.c
*************** f9df2a1b8605fdc1bd060bcb83136169  libgom
*** 109579,109584 ****
--- 119501,119507 ----
  58a5a6772ec1b880d274bfae0db6c2c6  libgomp/testsuite/libgomp.c/scan-20.c
  179c65ee79c81fd0c64a591b0456fc28  libgomp/testsuite/libgomp.c/scan-21.c
  cbdbf89b25f059b6dd6296672640cbfa  libgomp/testsuite/libgomp.c/scan-22.c
+ 0ff9a7c9cec900898588cd50c0bb80c5  libgomp/testsuite/libgomp.c/scan-23.c
  9fb19c3ea3db935fbfee58dd1f609212  libgomp/testsuite/libgomp.c/scan-3.c
  1b323fd1552daeded76b5f08baec903d  libgomp/testsuite/libgomp.c/scan-4.c
  5046b7e32ae2e0139e3a0d7c901dc1b5  libgomp/testsuite/libgomp.c/scan-5.c
*************** bd3f22b14448e145e631770c4c149aa6  libgom
*** 109604,109624 ****
  a2fe1187196581f584947961e875b325  libgomp/testsuite/libgomp.c/simd-7.c
  9b2a6663d5b7f13bff28cf479db0f888  libgomp/testsuite/libgomp.c/simd-8.c
  e770a162e63a8ef14578c664c60a1609  libgomp/testsuite/libgomp.c/simd-9.c
! 5e9fa474e77a9d621f989db3190f2cf2  libgomp/testsuite/libgomp.c/simd-math-1.c
  21b382f164a90f3510cb97d72b5288b0  libgomp/testsuite/libgomp.c/single-1.c
  f96d46491425528d3d7b30c80c64952a  libgomp/testsuite/libgomp.c/single-2.c
! fe2961985ec89e5321221ce54375db97  libgomp/testsuite/libgomp.c/sort-1.c
  fe7fdb3688e9cc0090e8bf29500cd119  libgomp/testsuite/libgomp.c/static-chunk-size-one.c
  b100c329df163acfa97656a24a5c1bb9  libgomp/testsuite/libgomp.c/switch-conversion-2.c
  7c841b55fe2c0baa3b9aa8b2656a1d60  libgomp/testsuite/libgomp.c/switch-conversion.c
  9db70785f4086ce177b8c657f8afcf53  libgomp/testsuite/libgomp.c/target-11.c
! 9659bddeb8cd125508d9d068e208c213  libgomp/testsuite/libgomp.c/target-12.c
  27431e068ab8aac1749f7d5589cc31a4  libgomp/testsuite/libgomp.c/target-14.c
  9995bf02e45de4fe3a1d3af9e9f4393b  libgomp/testsuite/libgomp.c/target-15.c
  aa5f3d6857ebbdacbc317114429b603a  libgomp/testsuite/libgomp.c/target-16.c
  5c41719f58a5064411f8409559fe90a4  libgomp/testsuite/libgomp.c/target-17.c
  8f2af019fdef670d3a01cf4c9c2db643  libgomp/testsuite/libgomp.c/target-18.c
! 5218d74da52c727d60ee92346cc52a2b  libgomp/testsuite/libgomp.c/target-19.c
  5db64b8d1a5b9e2c35fc058aaf002a15  libgomp/testsuite/libgomp.c/target-20.c
  96268d9b7cf5e004e7d8b46ee3b1fd4c  libgomp/testsuite/libgomp.c/target-21.c
  f2e54a8764788eb33e978b5d31ff89b6  libgomp/testsuite/libgomp.c/target-22.c
--- 119527,119547 ----
  a2fe1187196581f584947961e875b325  libgomp/testsuite/libgomp.c/simd-7.c
  9b2a6663d5b7f13bff28cf479db0f888  libgomp/testsuite/libgomp.c/simd-8.c
  e770a162e63a8ef14578c664c60a1609  libgomp/testsuite/libgomp.c/simd-9.c
! 04f33a75b031f016315e9e0a8f1fdb89  libgomp/testsuite/libgomp.c/simd-math-1.c
  21b382f164a90f3510cb97d72b5288b0  libgomp/testsuite/libgomp.c/single-1.c
  f96d46491425528d3d7b30c80c64952a  libgomp/testsuite/libgomp.c/single-2.c
! 9c7099305bcb542ee8212ddbdf2951a3  libgomp/testsuite/libgomp.c/sort-1.c
  fe7fdb3688e9cc0090e8bf29500cd119  libgomp/testsuite/libgomp.c/static-chunk-size-one.c
  b100c329df163acfa97656a24a5c1bb9  libgomp/testsuite/libgomp.c/switch-conversion-2.c
  7c841b55fe2c0baa3b9aa8b2656a1d60  libgomp/testsuite/libgomp.c/switch-conversion.c
  9db70785f4086ce177b8c657f8afcf53  libgomp/testsuite/libgomp.c/target-11.c
! 2de942c75a916f102ba01aa0912ff30c  libgomp/testsuite/libgomp.c/target-12.c
  27431e068ab8aac1749f7d5589cc31a4  libgomp/testsuite/libgomp.c/target-14.c
  9995bf02e45de4fe3a1d3af9e9f4393b  libgomp/testsuite/libgomp.c/target-15.c
  aa5f3d6857ebbdacbc317114429b603a  libgomp/testsuite/libgomp.c/target-16.c
  5c41719f58a5064411f8409559fe90a4  libgomp/testsuite/libgomp.c/target-17.c
  8f2af019fdef670d3a01cf4c9c2db643  libgomp/testsuite/libgomp.c/target-18.c
! 99aa65fd4472b89cba7adbcc473a8787  libgomp/testsuite/libgomp.c/target-19.c
  5db64b8d1a5b9e2c35fc058aaf002a15  libgomp/testsuite/libgomp.c/target-20.c
  96268d9b7cf5e004e7d8b46ee3b1fd4c  libgomp/testsuite/libgomp.c/target-21.c
  f2e54a8764788eb33e978b5d31ff89b6  libgomp/testsuite/libgomp.c/target-22.c
*************** f3838b24aa67138bc997d68ceb604183  libgom
*** 109649,109655 ****
--- 119572,119588 ----
  d24a7aaa8b4bd6cb37cf981f3918b13c  libgomp/testsuite/libgomp.c/target-45.c
  1ebd2ea38f64b733930f25320995ba5c  libgomp/testsuite/libgomp.c/target-46.c
  25f51441790c518ad6b22d941e91de3a  libgomp/testsuite/libgomp.c/target-47.c
+ 968d4a809d27c505d4b290414f55a759  libgomp/testsuite/libgomp.c/target-48.c
+ 27ced9778d751d544312279e77b062f5  libgomp/testsuite/libgomp.c/target-49.c
  338aba7cb587117b870b6de02f7c8592  libgomp/testsuite/libgomp.c/target-5.c
+ 28cd0adfe20b3dbffb46c7e46717e52b  libgomp/testsuite/libgomp.c/target-50.c
+ 6435614bb11ce048006937c246c9b2ca  libgomp/testsuite/libgomp.c/target-50a.c
+ b37efea03850d05f2d9fe2a2bb46529d  libgomp/testsuite/libgomp.c/target-51.c
+ 11ac384c193c66b2cafa44f6ff889237  libgomp/testsuite/libgomp.c/target-52.c
+ 37130ed9d0c8a2f006f499427955e3d3  libgomp/testsuite/libgomp.c/target-53.c
+ afc4ab3aab3ed9982eae8a31f1a79482  libgomp/testsuite/libgomp.c/target-54.c
+ 718a280cb9769ee1996a5b967fe4a5c7  libgomp/testsuite/libgomp.c/target-55.c
+ 07fe2169912a37ebfb81b56cad3c2988  libgomp/testsuite/libgomp.c/target-55a.c
  ae27a3336844047d494b72607cf843fc  libgomp/testsuite/libgomp.c/target-6.c
  a9b2ad991bd60cd4cd6ef4a68071bee6  libgomp/testsuite/libgomp.c/target-7.c
  9249f482d7291a60ed32df9743b496fb  libgomp/testsuite/libgomp.c/target-8.c
*************** a9b2ad991bd60cd4cd6ef4a68071bee6  libgom
*** 109658,109666 ****
  d7cbe25f5829f4d664a461d6ef7327f5  libgomp/testsuite/libgomp.c/target-has-device-addr-3.c
  2c67f32f623ae7d4b5ad5c7688a6acb1  libgomp/testsuite/libgomp.c/target-link-1.c
  7d9530ec8677e1a90e6b3d38859fc1b2  libgomp/testsuite/libgomp.c/target-print-1.c
! 324dbde481dcd788f8563d7b0ba2ff76  libgomp/testsuite/libgomp.c/target-simd-clone-1.c
! 52a2341bbf664fa63b9fc12287e06858  libgomp/testsuite/libgomp.c/target-simd-clone-2.c
! 12344243db54a5699c691bfc455c62e9  libgomp/testsuite/libgomp.c/target-simd-clone-3.c
  3ec1f30520e033764f5322b77b9ccb08  libgomp/testsuite/libgomp.c/target-teams-1.c
  199474ddc91715f45996e095a9f4298a  libgomp/testsuite/libgomp.c/task-1.c
  b07f3ce8ad8f8edece7624d18f5d154d  libgomp/testsuite/libgomp.c/task-2.c
--- 119591,119599 ----
  d7cbe25f5829f4d664a461d6ef7327f5  libgomp/testsuite/libgomp.c/target-has-device-addr-3.c
  2c67f32f623ae7d4b5ad5c7688a6acb1  libgomp/testsuite/libgomp.c/target-link-1.c
  7d9530ec8677e1a90e6b3d38859fc1b2  libgomp/testsuite/libgomp.c/target-print-1.c
! ec5b58aca4cfce9a6dafce47f592cdc3  libgomp/testsuite/libgomp.c/target-simd-clone-1.c
! 602b6f2d636477283d0ff3d6fc3402fc  libgomp/testsuite/libgomp.c/target-simd-clone-2.c
! 3945b32fbe56de1978fd25a17fabaacf  libgomp/testsuite/libgomp.c/target-simd-clone-3.c
  3ec1f30520e033764f5322b77b9ccb08  libgomp/testsuite/libgomp.c/target-teams-1.c
  199474ddc91715f45996e095a9f4298a  libgomp/testsuite/libgomp.c/task-1.c
  b07f3ce8ad8f8edece7624d18f5d154d  libgomp/testsuite/libgomp.c/task-2.c
*************** ea7af72aa36d2712b7aaf2af97a4368c  libgom
*** 109707,109713 ****
  cbc8d1928586e24499210f2cd9438551  libgomp/testsuite/libgomp.fortran/alloc-9.f90
  20b043532a006fde073387f9a23e4054  libgomp/testsuite/libgomp.fortran/alloc-comp-1.f90
  21463b128d951cea6b4ea41176379b5c  libgomp/testsuite/libgomp.fortran/alloc-comp-2.f90
! 678b373acad56382f04e66e2b24bc6c2  libgomp/testsuite/libgomp.fortran/alloc-comp-3.f90
  a52dbb26d615e1710d36c7f03cfed8b2  libgomp/testsuite/libgomp.fortran/allocatable1.f90
  b73d611bbde74c512acf2673614d7883  libgomp/testsuite/libgomp.fortran/allocatable10.f90
  ce39f2ea81b75f298726442f5d24021a  libgomp/testsuite/libgomp.fortran/allocatable11.f90
--- 119640,119646 ----
  cbc8d1928586e24499210f2cd9438551  libgomp/testsuite/libgomp.fortran/alloc-9.f90
  20b043532a006fde073387f9a23e4054  libgomp/testsuite/libgomp.fortran/alloc-comp-1.f90
  21463b128d951cea6b4ea41176379b5c  libgomp/testsuite/libgomp.fortran/alloc-comp-2.f90
! c9531d367dce1d94d1c60a4798d79661  libgomp/testsuite/libgomp.fortran/alloc-comp-3.f90
  a52dbb26d615e1710d36c7f03cfed8b2  libgomp/testsuite/libgomp.fortran/allocatable1.f90
  b73d611bbde74c512acf2673614d7883  libgomp/testsuite/libgomp.fortran/allocatable10.f90
  ce39f2ea81b75f298726442f5d24021a  libgomp/testsuite/libgomp.fortran/allocatable11.f90
*************** f483f8ef7a141b36266f9b8a5c59546d  libgom
*** 109724,109730 ****
  dbdaf2cfd129bf37a677afe53e354e29  libgomp/testsuite/libgomp.fortran/allocate-1.f90
  9349da9af0ef5763494eb1e0a9834f82  libgomp/testsuite/libgomp.fortran/allocate-2.f90
  932f2cec4e655b4d9c5dd84614074c55  libgomp/testsuite/libgomp.fortran/allocate-3.f90
! 3946659cdda4f8e813439a160a7b2520  libgomp/testsuite/libgomp.fortran/allocate-4.f90
  d69ebafdf43e748e354c0c05228cdd0c  libgomp/testsuite/libgomp.fortran/appendix-a/a.15.1.f90
  3f53f7b5eb9ab9c8cb9eb0edfeedad91  libgomp/testsuite/libgomp.fortran/appendix-a/a.16.1.f90
  7998d91139611d36ffbdf8865cace3da  libgomp/testsuite/libgomp.fortran/appendix-a/a.18.1.f90
--- 119657,119672 ----
  dbdaf2cfd129bf37a677afe53e354e29  libgomp/testsuite/libgomp.fortran/allocate-1.f90
  9349da9af0ef5763494eb1e0a9834f82  libgomp/testsuite/libgomp.fortran/allocate-2.f90
  932f2cec4e655b4d9c5dd84614074c55  libgomp/testsuite/libgomp.fortran/allocate-3.f90
! 6d168ee203ccb0378d5d7ba5ec77938a  libgomp/testsuite/libgomp.fortran/allocate-4.f90
! b6f0fb56203a24951779ba06548a5fdf  libgomp/testsuite/libgomp.fortran/allocate-5.f90
! 0d85a7a7d82fc3a1cb843bfd2d569a50  libgomp/testsuite/libgomp.fortran/allocate-6.f90
! 0c4e938e58564254af87788f3071c7da  libgomp/testsuite/libgomp.fortran/allocate-7.f90
! 81149f56dc2424a239c1018c9772cfeb  libgomp/testsuite/libgomp.fortran/allocate-8.f90
! e8e247710b175502d920dd45bc21dcc1  libgomp/testsuite/libgomp.fortran/allocators-1.f90
! 417aa104f21cd017122168ef884904f3  libgomp/testsuite/libgomp.fortran/allocators-2.f90
! a3968845ddd44e2abfd5506503fcaff2  libgomp/testsuite/libgomp.fortran/allocators-3.f90
! 3e30278436011c71be08d7b18f3bae4c  libgomp/testsuite/libgomp.fortran/allocators-4.f90
! e6be398238acf7c496b5ab6816e00064  libgomp/testsuite/libgomp.fortran/allocators-5.f90
  d69ebafdf43e748e354c0c05228cdd0c  libgomp/testsuite/libgomp.fortran/appendix-a/a.15.1.f90
  3f53f7b5eb9ab9c8cb9eb0edfeedad91  libgomp/testsuite/libgomp.fortran/appendix-a/a.16.1.f90
  7998d91139611d36ffbdf8865cace3da  libgomp/testsuite/libgomp.fortran/appendix-a/a.18.1.f90
*************** c930836635408ae2f513d5a829fcac58  libgom
*** 109791,109803 ****
  03cd1507e8a9e3a9d48b7a317bba1008  libgomp/testsuite/libgomp.fortran/crayptr3.f90
  f83e1497def5d9050edf0d194ed99cab  libgomp/testsuite/libgomp.fortran/critical-hint-1.f90
  0724da8768603666f78c19f0f7748ddb  libgomp/testsuite/libgomp.fortran/critical-hint-2.f90
! 195704dc31f8244affcdcab3cba3b2c5  libgomp/testsuite/libgomp.fortran/declare-simd-1.f90
  c0ebd55529e9baf82532c7b2f51f3fe4  libgomp/testsuite/libgomp.fortran/declare-simd-2.f90
  8ca22b63783876ef9de275258422a06a  libgomp/testsuite/libgomp.fortran/declare-simd-3.f90
  4aa1fe4701d5e31226d8165c2fb26718  libgomp/testsuite/libgomp.fortran/declare-simd-4.f90
  41c4fec6db885d55d5e3922d68598eac  libgomp/testsuite/libgomp.fortran/declare-target-1.f90
  df7199b063fe5d0c60dfe901e72b07d4  libgomp/testsuite/libgomp.fortran/declare-target-2.f90
  49813561cddcf22ee10c7f9de89f62c3  libgomp/testsuite/libgomp.fortran/declare-target-3.f90
  6f5fe664dff676bc9cc04b850f98d046  libgomp/testsuite/libgomp.fortran/declare-variant-1.f90
  645acb6b48e623ae2033047eff79d0d5  libgomp/testsuite/libgomp.fortran/defaultmap-8.f90
  085b168af19aac8a6dd4f31eda256d5c  libgomp/testsuite/libgomp.fortran/depend-1.f90
--- 119733,119749 ----
  03cd1507e8a9e3a9d48b7a317bba1008  libgomp/testsuite/libgomp.fortran/crayptr3.f90
  f83e1497def5d9050edf0d194ed99cab  libgomp/testsuite/libgomp.fortran/critical-hint-1.f90
  0724da8768603666f78c19f0f7748ddb  libgomp/testsuite/libgomp.fortran/critical-hint-2.f90
! 384bea57c36a326ddc8caa2e3132d3c0  libgomp/testsuite/libgomp.fortran/declare-simd-1.f90
  c0ebd55529e9baf82532c7b2f51f3fe4  libgomp/testsuite/libgomp.fortran/declare-simd-2.f90
  8ca22b63783876ef9de275258422a06a  libgomp/testsuite/libgomp.fortran/declare-simd-3.f90
  4aa1fe4701d5e31226d8165c2fb26718  libgomp/testsuite/libgomp.fortran/declare-simd-4.f90
  41c4fec6db885d55d5e3922d68598eac  libgomp/testsuite/libgomp.fortran/declare-target-1.f90
  df7199b063fe5d0c60dfe901e72b07d4  libgomp/testsuite/libgomp.fortran/declare-target-2.f90
  49813561cddcf22ee10c7f9de89f62c3  libgomp/testsuite/libgomp.fortran/declare-target-3.f90
+ abb0596997e88cb58af2f0077223279d  libgomp/testsuite/libgomp.fortran/declare-target-indirect-1.f90
+ 97297d1a4a7d048fc250d3d3fd1db73a  libgomp/testsuite/libgomp.fortran/declare-target-indirect-2.f90
+ 6e1ba8b2cba3a90e740772cb731ac63e  libgomp/testsuite/libgomp.fortran/declare-target-indirect-3.f90
+ 2b63f475e04fe3e224db519aa8c2799a  libgomp/testsuite/libgomp.fortran/declare-target-indirect-4.f90
  6f5fe664dff676bc9cc04b850f98d046  libgomp/testsuite/libgomp.fortran/declare-variant-1.f90
  645acb6b48e623ae2033047eff79d0d5  libgomp/testsuite/libgomp.fortran/defaultmap-8.f90
  085b168af19aac8a6dd4f31eda256d5c  libgomp/testsuite/libgomp.fortran/depend-1.f90
*************** be6f1d9146294beee4504b7d69e49cc8  libgom
*** 109863,109869 ****
  a0fea6593244c117295ec1c75e63b64f  libgomp/testsuite/libgomp.fortran/examples-4/teams-4.f90
  02624408febf6ba2958380cf587a6f5f  libgomp/testsuite/libgomp.fortran/examples-4/teams-5.f90
  e3121f156cff11c333c32e13f4f02f1c  libgomp/testsuite/libgomp.fortran/examples-4/teams-6.f90
! f221242394d1d1eed14fbd76d9a03c2f  libgomp/testsuite/libgomp.fortran/fortran.exp
  fb9368b98109517ddb26d546887b9aac  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-1.f90
  59681f1526deaa72f324d5b09ec00037  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-2.f90
  79b569df0b523b1e1a1abdbb6fa23c80  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-3.f90
--- 119809,119816 ----
  a0fea6593244c117295ec1c75e63b64f  libgomp/testsuite/libgomp.fortran/examples-4/teams-4.f90
  02624408febf6ba2958380cf587a6f5f  libgomp/testsuite/libgomp.fortran/examples-4/teams-5.f90
  e3121f156cff11c333c32e13f4f02f1c  libgomp/testsuite/libgomp.fortran/examples-4/teams-6.f90
! 255a1aa7b86dde3cea9341a6850d7679  libgomp/testsuite/libgomp.fortran/fortran-torture_execute_math.f90
! 6c628015411eeef98b837dc37be337bf  libgomp/testsuite/libgomp.fortran/fortran.exp
  fb9368b98109517ddb26d546887b9aac  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-1.f90
  59681f1526deaa72f324d5b09ec00037  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-2.f90
  79b569df0b523b1e1a1abdbb6fa23c80  libgomp/testsuite/libgomp.fortran/get-mapped-ptr-3.f90
*************** e7790d5b8d8196c4fec93af270c96df1  libgom
*** 109874,109879 ****
--- 119821,119831 ----
  03f9137d69f93eb7b929ff28a55f7a3b  libgomp/testsuite/libgomp.fortran/icv-5.f90
  f000e2dd72f2da9ab0cc0d3c7dfbe4fc  libgomp/testsuite/libgomp.fortran/icv-6.f90
  6b05d305be8a6a014f76bf8c1b289fec  libgomp/testsuite/libgomp.fortran/icv-8.f90
+ 8098941e1aa1655f15036b2e1fc490e8  libgomp/testsuite/libgomp.fortran/imperfect-destructor.f90
+ 1ebac3c2dec882cae43be4e087d64102  libgomp/testsuite/libgomp.fortran/imperfect1.f90
+ 535e13ddb267fcda011d0f91a32a0e42  libgomp/testsuite/libgomp.fortran/imperfect2.f90
+ 271e2d9d749e1f5890f336e5f24f7826  libgomp/testsuite/libgomp.fortran/imperfect3.f90
+ 1c26032f958727f57e30b4319a2304c4  libgomp/testsuite/libgomp.fortran/imperfect4.f90
  1d7f490f3aa22662cdd277712b26a462  libgomp/testsuite/libgomp.fortran/is_device_ptr-1.f90
  e917c7e025fcc6df71315792522da77e  libgomp/testsuite/libgomp.fortran/is_device_ptr-2.f90
  2382b518f8fa444fc94c1e6cf51b5280  libgomp/testsuite/libgomp.fortran/is_device_ptr-3.f90
*************** edb8cf0884ac73fb59ab5c66f1acb3ad  libgom
*** 109889,109894 ****
--- 119841,119855 ----
  12b2386c008a817a32688ca1ae228c42  libgomp/testsuite/libgomp.fortran/lock-2.f90
  f4ad2acbc3bf213777f658e4581eb805  libgomp/testsuite/libgomp.fortran/map-alloc-ptr-1.f90
  794f9311ffd6c98b9329dc06aa6a39e3  libgomp/testsuite/libgomp.fortran/map-alloc-ptr-2.f90
+ fe829ea13169aa018e2a5ad40e7581b9  libgomp/testsuite/libgomp.fortran/map-subarray-2.f90
+ c1190bc5bceb25197c6d0d9b5ba5a2ae  libgomp/testsuite/libgomp.fortran/map-subarray-3.f90
+ b2c263036c49be63977c634860a8cf72  libgomp/testsuite/libgomp.fortran/map-subarray-4.f90
+ 556c53224e40ca2a5519b1262ae4a5f5  libgomp/testsuite/libgomp.fortran/map-subarray-5.f90
+ 3016a644377b86aff8cd64f0767eac38  libgomp/testsuite/libgomp.fortran/map-subarray-6.f90
+ b916bf010c1060aa6d0c7f50cf781f71  libgomp/testsuite/libgomp.fortran/map-subarray-7.f90
+ 74aa87d51967ef1e4d58a270e8558b81  libgomp/testsuite/libgomp.fortran/map-subarray-8.f90
+ a4b7a9ace17dd9b075800abbfd0733ce  libgomp/testsuite/libgomp.fortran/map-subarray.f90
+ eaa2fd770a7d57561f30521ae9f2fc9f  libgomp/testsuite/libgomp.fortran/map-subcomponents.f90
  235b8f3fb869589084e0e80ba5622db7  libgomp/testsuite/libgomp.fortran/masked-1.f90
  835cd687e20bf1f2c12df594c245ecdc  libgomp/testsuite/libgomp.fortran/my-usleep.c
  34e118b4de7cfbd20c7427abb1d4c7e5  libgomp/testsuite/libgomp.fortran/nested1.f90
*************** d85fd25e4c208bee65d5780465935a3c  libgom
*** 109897,109908 ****
  13f8ef8330f5457c54434b768f4ed844  libgomp/testsuite/libgomp.fortran/nestedfn3.f90
  94a488ca94b0126b225912d2e19a0e1b  libgomp/testsuite/libgomp.fortran/nestedfn4.f90
  c04375d2920e5f45ba6f18d65887372d  libgomp/testsuite/libgomp.fortran/nestedfn5.f90
! a20b90104ce5e1877603ddbb0b20ec8c  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-1.f90
! bee750c1e316aed6760101e239671a1d  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-1a.f90
  7729bc0c895000f124598235e849d475  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-2.f90
  3d478d99c252f0f0fb435d6a21b42f02  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-3.f90
  bc67f38e5b5b1d2e0bceb6481561db59  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-4.f90
! 3abfab7221eabe3a8f2a81744005584b  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-5.f90
  642bd7c41f7948130aa5f8f42b8f21ac  libgomp/testsuite/libgomp.fortran/omp_atomic1.f90
  ac3048471613e2f1f1ee806355b65040  libgomp/testsuite/libgomp.fortran/omp_atomic2.f90
  edf8151c5b785d7f10272dd95dbad260  libgomp/testsuite/libgomp.fortran/omp_atomic3.f90
--- 119858,119869 ----
  13f8ef8330f5457c54434b768f4ed844  libgomp/testsuite/libgomp.fortran/nestedfn3.f90
  94a488ca94b0126b225912d2e19a0e1b  libgomp/testsuite/libgomp.fortran/nestedfn4.f90
  c04375d2920e5f45ba6f18d65887372d  libgomp/testsuite/libgomp.fortran/nestedfn5.f90
! c04b9603dcb91e38586d7ece605fc03b  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-1.f90
  7729bc0c895000f124598235e849d475  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-2.f90
  3d478d99c252f0f0fb435d6a21b42f02  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-3.f90
  bc67f38e5b5b1d2e0bceb6481561db59  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-4.f90
! 450d27c40e577d44326373374aa78fa8  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-5.f90
! e55e4d88039e45885286f5121fff1fba  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-6.f90
  642bd7c41f7948130aa5f8f42b8f21ac  libgomp/testsuite/libgomp.fortran/omp_atomic1.f90
  ac3048471613e2f1f1ee806355b65040  libgomp/testsuite/libgomp.fortran/omp_atomic2.f90
  edf8151c5b785d7f10272dd95dbad260  libgomp/testsuite/libgomp.fortran/omp_atomic3.f90
*************** ad73f3cdfa6093602117e056e552a92e  libgom
*** 109992,109997 ****
--- 119953,119959 ----
  50d442710afd759c4aa50c0567fff8cb  libgomp/testsuite/libgomp.fortran/reference2.f90
  49f4bd2dd039a534a3d4921d5a6b407e  libgomp/testsuite/libgomp.fortran/requires-1-aux.f90
  a10b5a485db8c1ba515b62ee7e81f5e0  libgomp/testsuite/libgomp.fortran/requires-1.f90
+ 9ad573da331de4f26b5a91ab95d7b4ff  libgomp/testsuite/libgomp.fortran/requires-unified-addr-1.f90
  87ff32e5b6410cb8d684b7aa6daa7822  libgomp/testsuite/libgomp.fortran/retval1.f90
  fcd96d03b20dba6577d8b95c225c2827  libgomp/testsuite/libgomp.fortran/retval2.f90
  d69a0d3ec788879551633d16f785947f  libgomp/testsuite/libgomp.fortran/reverse-offload-1-aux.f90
*************** ea8a677ba9830505808a5ba39355add7  libgom
*** 110002,110008 ****
--- 119964,119974 ----
  10ef752092b9072272d1de6f1d2a9b57  libgomp/testsuite/libgomp.fortran/reverse-offload-5.f90
  c9a3f32099e9cef2e6827a644ce50760  libgomp/testsuite/libgomp.fortran/reverse-offload-5a.f90
  c32a02ca19d34daa5c3a20afb148c142  libgomp/testsuite/libgomp.fortran/reverse-offload-6.f90
+ 11362392d0f96235a7e83827d705be00  libgomp/testsuite/libgomp.fortran/rwlock_1.f90
+ 18b2357304870d09644b777b3377f279  libgomp/testsuite/libgomp.fortran/rwlock_2.f90
+ 26c00367737ea641ac690fa9478eb1f7  libgomp/testsuite/libgomp.fortran/rwlock_3.f90
  f94173449f0106660c3c83b7da6eb1b2  libgomp/testsuite/libgomp.fortran/scan-1.f90
+ 1582a3cbc05a3c7b9ac548941c98cd81  libgomp/testsuite/libgomp.fortran/scan-2.f90
  fbdab6e5a5617405737d6de640e5197a  libgomp/testsuite/libgomp.fortran/scope-1.f90
  d5c0f2d60e8a68a314e661ccc5e4d638  libgomp/testsuite/libgomp.fortran/scope-2.f90
  e4cf951d5826f38fd2445b2bd21a6f3b  libgomp/testsuite/libgomp.fortran/sharing1.f90
*************** b6d9358584962acfea41fdb687af3cf6  libgom
*** 110016,110032 ****
  be3637f31c89db03d70d9033e00bc86b  libgomp/testsuite/libgomp.fortran/simd7.f90
  c404adfb5e1e175f034e3ec64a2d8553  libgomp/testsuite/libgomp.fortran/stack.f90
  0468e11ca87799d9ff54db3416afc90f  libgomp/testsuite/libgomp.fortran/strassen.f90
! b0c4d7d8991d26105163a63641eb9f46  libgomp/testsuite/libgomp.fortran/struct-elem-map-1.f90
  662ace7f2e660ef85ab05666191e4606  libgomp/testsuite/libgomp.fortran/tabs1.f90
  6bdb484b10f4cf6e378b081ae20083f6  libgomp/testsuite/libgomp.fortran/tabs2.f
  d83d2615373561e22bd33085adbc3c8e  libgomp/testsuite/libgomp.fortran/target-11.f90
! 279ecf43b0faaaf75e9e77dd8d9db7df  libgomp/testsuite/libgomp.fortran/target-12.f90
  6088668eebebdee2e363a3d9c13c815f  libgomp/testsuite/libgomp.fortran/target-13.f90
  063a24dc5c19b2adb2c5fcb0b05a58a4  libgomp/testsuite/libgomp.fortran/target-allocatable-1-1.f90
  89c53be6c76a8902941180b26848ae9b  libgomp/testsuite/libgomp.fortran/target-allocatable-1-2.f90
  f3e9642d4302feea21de2d2b9f5ca654  libgomp/testsuite/libgomp.fortran/target-enter-data-1.f90
  10cc37e35fda6c7ed2cff8cf2f9f8371  libgomp/testsuite/libgomp.fortran/target-enter-data-2.F90
! e1daa327a7c1d32b874d6a14ce667b12  libgomp/testsuite/libgomp.fortran/target-enter-data-3.f90
  4b32e60df4d9f68e1aefdd38f541c157  libgomp/testsuite/libgomp.fortran/target-firstprivate-1.f90
  1f145e3be28990a374e7117e351fb917  libgomp/testsuite/libgomp.fortran/target-firstprivate-2.f90
  92d67d046a52b255c5a4e9d08fe3f118  libgomp/testsuite/libgomp.fortran/target-firstprivate-3.f90
--- 119982,120003 ----
  be3637f31c89db03d70d9033e00bc86b  libgomp/testsuite/libgomp.fortran/simd7.f90
  c404adfb5e1e175f034e3ec64a2d8553  libgomp/testsuite/libgomp.fortran/stack.f90
  0468e11ca87799d9ff54db3416afc90f  libgomp/testsuite/libgomp.fortran/strassen.f90
! 0d0f16acf221f3d250605c5599eb2a23  libgomp/testsuite/libgomp.fortran/strictly-structured-block-1.f90
! ceccd78cff1834f03868559872713a66  libgomp/testsuite/libgomp.fortran/struct-elem-map-1.f90
  662ace7f2e660ef85ab05666191e4606  libgomp/testsuite/libgomp.fortran/tabs1.f90
  6bdb484b10f4cf6e378b081ae20083f6  libgomp/testsuite/libgomp.fortran/tabs2.f
  d83d2615373561e22bd33085adbc3c8e  libgomp/testsuite/libgomp.fortran/target-11.f90
! d9f909ebb4169aa0d6b851dc1ccdec4b  libgomp/testsuite/libgomp.fortran/target-12.f90
  6088668eebebdee2e363a3d9c13c815f  libgomp/testsuite/libgomp.fortran/target-13.f90
  063a24dc5c19b2adb2c5fcb0b05a58a4  libgomp/testsuite/libgomp.fortran/target-allocatable-1-1.f90
  89c53be6c76a8902941180b26848ae9b  libgomp/testsuite/libgomp.fortran/target-allocatable-1-2.f90
  f3e9642d4302feea21de2d2b9f5ca654  libgomp/testsuite/libgomp.fortran/target-enter-data-1.f90
  10cc37e35fda6c7ed2cff8cf2f9f8371  libgomp/testsuite/libgomp.fortran/target-enter-data-2.F90
! 4cff677f5db94e4dec7723c368aef31e  libgomp/testsuite/libgomp.fortran/target-enter-data-3.f90
! cad258d1ebb0ddd9dafd8a3cc0fc7c0c  libgomp/testsuite/libgomp.fortran/target-enter-data-4.f90
! eeec7e27fda7ab81ff9b8a0cc3565be4  libgomp/testsuite/libgomp.fortran/target-enter-data-5.f90
! abbc97bdf2b7f6b7eb83b0ea35d12ca8  libgomp/testsuite/libgomp.fortran/target-enter-data-6.f90
! 6ab97e695942e090864fc83282b49a44  libgomp/testsuite/libgomp.fortran/target-enter-data-7.f90
  4b32e60df4d9f68e1aefdd38f541c157  libgomp/testsuite/libgomp.fortran/target-firstprivate-1.f90
  1f145e3be28990a374e7117e351fb917  libgomp/testsuite/libgomp.fortran/target-firstprivate-2.f90
  92d67d046a52b255c5a4e9d08fe3f118  libgomp/testsuite/libgomp.fortran/target-firstprivate-3.f90
*************** e1daa327a7c1d32b874d6a14ce667b12  libgom
*** 110034,110048 ****
--- 120005,120027 ----
  59c61dfb9aba411df68fdeed8f3c5659  libgomp/testsuite/libgomp.fortran/target-has-device-addr-2.f90
  9ddb3d9bf13556db631c8e466cc523cc  libgomp/testsuite/libgomp.fortran/target-has-device-addr-3.f90
  9ae0f32be5dff9e05029e020cf6af7de  libgomp/testsuite/libgomp.fortran/target-has-device-addr-4.f90
+ c253434fe103910b87d86dea9746db67  libgomp/testsuite/libgomp.fortran/target-imperfect1.f90
+ 0e8f7aaa57b34a25d7833f1c90ac7733  libgomp/testsuite/libgomp.fortran/target-imperfect2.f90
+ 0f4b9f6a1fbad648f8f18947bac3dca7  libgomp/testsuite/libgomp.fortran/target-imperfect3.f90
+ 679a9ebb5fd93d2af75c7a80f49ca7d6  libgomp/testsuite/libgomp.fortran/target-imperfect4.f90
  49908b2e3663c182a2478e5f28929c6d  libgomp/testsuite/libgomp.fortran/target-in-reduction-1.f90
  c604509b615d707812822a4f9559faca  libgomp/testsuite/libgomp.fortran/target-in-reduction-2.f90
  dbe3bc360ddea6525088228f741db5dd  libgomp/testsuite/libgomp.fortran/target-is-accessible-1.f90
  c8674726b7e6d033a64557c340289db9  libgomp/testsuite/libgomp.fortran/target-map-1.f90
  01e2ad7b20b3a43df8961f12a00e15c3  libgomp/testsuite/libgomp.fortran/target-memcpy-async-1.f90
  df2f6664e447efa046e484854a127809  libgomp/testsuite/libgomp.fortran/target-memcpy-async-2.f90
+ fa67086ca331f5c3937170a587173c10  libgomp/testsuite/libgomp.fortran/target-memcpy-rect-1.f90
  2091f2ab8064a010253fb962f417a898  libgomp/testsuite/libgomp.fortran/target-memcpy-rect-async-1.f90
  548ed09f85e9ea7b135e720c2e102444  libgomp/testsuite/libgomp.fortran/target-memcpy-rect-async-2.f90
  fa86dfefc4898bd33879aef257ad3fc1  libgomp/testsuite/libgomp.fortran/target-nowait-array-section.f90
+ 453ae3ce43888cc2b5758900879a735c  libgomp/testsuite/libgomp.fortran/target-present-1.f90
+ beb86fd00c7159b7c9e64baab658450f  libgomp/testsuite/libgomp.fortran/target-present-2.f90
+ 7d30e6e2b116e1b138176f9d553356ec  libgomp/testsuite/libgomp.fortran/target-present-3.f90
  7e2f3e496520976a37df3ba992f7f69a  libgomp/testsuite/libgomp.fortran/target-print-1-nvptx.f90
  bc18d7dcb406b7660308046e178bba0d  libgomp/testsuite/libgomp.fortran/target-print-1.f90
  b7c20b004458fd9909db3090ddfcd1d8  libgomp/testsuite/libgomp.fortran/target-simd.f90
*************** d58b22d6389008961e84f8a1b3d9a8f9  libgom
*** 110127,110132 ****
--- 120106,120113 ----
  2b347c1c7f2cbe98905e1b48f453f08c  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-3.f90
  dc1df4b97d0fa5209eb509523fa08bfc  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90
  fd6becb20369d6ac5a1bacfc014b31a3  libgomp/testsuite/libgomp.fortran/use_intrinsic_1.f90
+ 7a20912688877bc0ecca6ebe741d55f3  libgomp/testsuite/libgomp.fortran/uses_allocators_1.f90
+ 8187bb38cd9b950a649f25ea20977a3d  libgomp/testsuite/libgomp.fortran/uses_allocators_2.f90
  fecda9fc3e70ac57c13ecf7a85196138  libgomp/testsuite/libgomp.fortran/vla1.f90
  4bd76ef74f55ed2027a8be5f22222133  libgomp/testsuite/libgomp.fortran/vla2.f90
  aadd57f9487c4584ba47a1bbdb07af7c  libgomp/testsuite/libgomp.fortran/vla3.f90
*************** bc89329871a4063322c6c6a75033c327  libgom
*** 110147,110155 ****
  c7c454ddd0e7815a3bcc65d728543f0c  libgomp/testsuite/libgomp.graphite/force-parallel-7.c
  ef7b761ee578290c488dcfb7c28a0b66  libgomp/testsuite/libgomp.graphite/force-parallel-8.c
  afbfc00298798c7c56e3095384ac408a  libgomp/testsuite/libgomp.graphite/force-parallel-9.c
! 8729eb879f187d2f9e0864995e5f0ae8  libgomp/testsuite/libgomp.graphite/graphite.exp
  b274f32716465c48bfe021ad40ae5184  libgomp/testsuite/libgomp.graphite/pr41118.c
! fe37b75ae18ede0238a810723e2d50aa  libgomp/testsuite/libgomp.oacc-c++/c++.exp
  453e6f1d9f502042e4ee6b8e52564c6a  libgomp/testsuite/libgomp.oacc-c++/cache-1.C
  0af65ee2314145d77cef7ebd9e651556  libgomp/testsuite/libgomp.oacc-c++/declare-1.C
  d4976186c6059f98d3a33b36f5c4d896  libgomp/testsuite/libgomp.oacc-c++/declare-pr94120.C
--- 120128,120136 ----
  c7c454ddd0e7815a3bcc65d728543f0c  libgomp/testsuite/libgomp.graphite/force-parallel-7.c
  ef7b761ee578290c488dcfb7c28a0b66  libgomp/testsuite/libgomp.graphite/force-parallel-8.c
  afbfc00298798c7c56e3095384ac408a  libgomp/testsuite/libgomp.graphite/force-parallel-9.c
! d757ef7d2919ee29300032a783ba2dee  libgomp/testsuite/libgomp.graphite/graphite.exp
  b274f32716465c48bfe021ad40ae5184  libgomp/testsuite/libgomp.graphite/pr41118.c
! c1dccb240f2f18f83a5757b41c15beb2  libgomp/testsuite/libgomp.oacc-c++/c++.exp
  453e6f1d9f502042e4ee6b8e52564c6a  libgomp/testsuite/libgomp.oacc-c++/cache-1.C
  0af65ee2314145d77cef7ebd9e651556  libgomp/testsuite/libgomp.oacc-c++/declare-1.C
  d4976186c6059f98d3a33b36f5c4d896  libgomp/testsuite/libgomp.oacc-c++/declare-pr94120.C
*************** ebb8f3adc650c08eeaf1e77a9b7084d4  libgom
*** 110260,110266 ****
  4c84a4caca56ab47db99abcfca3e5edc  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c
  25253ba221aa9b84a2e96a62dad50d32  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c
  4aabddd036776023f9c2c3d6ed05828d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c
! 43c4b0ed1cfe04cc6cc7b1239ae4831d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c
  d4b69294a211a96b70ae02bd130cfd8d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-9.c
  35633f4e282f736fd241f078bea8466f  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-arrayofstruct.c
  86912a4f5e145ea29f7c45d935bec143  libgomp/testsuite/libgomp.oacc-c-c++-common/default-1.c
--- 120241,120247 ----
  4c84a4caca56ab47db99abcfca3e5edc  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c
  25253ba221aa9b84a2e96a62dad50d32  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c
  4aabddd036776023f9c2c3d6ed05828d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c
! 75acd03ecf723aeb4d9d43339562acba  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c
  d4b69294a211a96b70ae02bd130cfd8d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-9.c
  35633f4e282f736fd241f078bea8466f  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-arrayofstruct.c
  86912a4f5e145ea29f7c45d935bec143  libgomp/testsuite/libgomp.oacc-c-c++-common/default-1.c
*************** adaec910973d8115f7e0d47383986917  libgom
*** 110283,110289 ****
  caf971b57d6898c5e9ac246c6c8a00dc  libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c
  381831619d1acd4fd67a0b656d4ce0b3  libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c
  2a2496e59bc0755c6ac4c6a8b70e42e7  libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c
! dfbe7b7f1e2335edce726504383f9b2c  libgomp/testsuite/libgomp.oacc-c-c++-common/if-1.c
  2a240399332cca9373afb10f87a8f179  libgomp/testsuite/libgomp.oacc-c-c++-common/insufficient-resources.c
  b62d943ff000b5c04985d2e8e9583ab7  libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c
  46bf7e2b0cabef27d798b3b2957f6583  libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c
--- 120264,120271 ----
  caf971b57d6898c5e9ac246c6c8a00dc  libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-5.c
  381831619d1acd4fd67a0b656d4ce0b3  libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-6.c
  2a2496e59bc0755c6ac4c6a8b70e42e7  libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c
! 98de5562c264b47edd06b39580bded0d  libgomp/testsuite/libgomp.oacc-c-c++-common/if-1.c
! 518f9ed994a2f4156962dbfceffe8dc3  libgomp/testsuite/libgomp.oacc-c-c++-common/if-self-1.c
  2a240399332cca9373afb10f87a8f179  libgomp/testsuite/libgomp.oacc-c-c++-common/insufficient-resources.c
  b62d943ff000b5c04985d2e8e9583ab7  libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c
  46bf7e2b0cabef27d798b3b2957f6583  libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c
*************** f3c081c7fb926320ab7e9158cf4afe63  libgom
*** 110376,110384 ****
  b7ccf9ff50433844a194987f0fe74c54  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-56.c
  521b04e79451b2ffd2126b18fe24556c  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-57.c
  26e8771c9d7e9db0f530f07147709715  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-58.c
! f45a93e92bc9bc6f77c5c32a826c11d2  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-59.c
  a872a53325bc3cbddc46a5ee09826537  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-6.c
! f59598f9d91fd143b2639bf346f2a4d4  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-60.c
  8e14d598822b60ebe45006160fec7883  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-61.c
  a1c3809e2c0e4c3cba57b1a519f8f807  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-62.c
  b3762271edd5c411c70de796155c3689  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-63.c
--- 120358,120366 ----
  b7ccf9ff50433844a194987f0fe74c54  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-56.c
  521b04e79451b2ffd2126b18fe24556c  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-57.c
  26e8771c9d7e9db0f530f07147709715  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-58.c
! 0e00530e3b97734dfd6acd7b85284f63  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-59.c
  a872a53325bc3cbddc46a5ee09826537  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-6.c
! f3dcb6b3b311f2e02b578c96be73c82f  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-60.c
  8e14d598822b60ebe45006160fec7883  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-61.c
  a1c3809e2c0e4c3cba57b1a519f8f807  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-62.c
  b3762271edd5c411c70de796155c3689  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-63.c
*************** ac6f2333a907b6de8bda3449241c53f1  libgom
*** 110412,110418 ****
  a45fb61e6aed67d9e3e96d92f7895125  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-91.c
  4858f2cb642c54e9e7ce1d2762269cb9  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-92.c
  a5f9c529aaa2011bcea9ebd1177afde4  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-94.c
! 20e0997ee33fd896cfd774f51d7371d9  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-95.c
  651dd2337ba544c0e6276d7aa9bdaa45  libgomp/testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c
  a79cb46ffee904def26285cabcd00b7f  libgomp/testsuite/libgomp.oacc-c-c++-common/loop-default-runtime.c
  7bae2251f19fb8dd4b4ae9f3110a3015  libgomp/testsuite/libgomp.oacc-c-c++-common/loop-default.h
--- 120394,120401 ----
  a45fb61e6aed67d9e3e96d92f7895125  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-91.c
  4858f2cb642c54e9e7ce1d2762269cb9  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-92.c
  a5f9c529aaa2011bcea9ebd1177afde4  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-94.c
! f2d7d52da26f976892b8d2484ca61a82  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-95.c
! 89c3c628af045bda12e3748b37ba3179  libgomp/testsuite/libgomp.oacc-c-c++-common/lib-96.c
  651dd2337ba544c0e6276d7aa9bdaa45  libgomp/testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c
  a79cb46ffee904def26285cabcd00b7f  libgomp/testsuite/libgomp.oacc-c-c++-common/loop-default-runtime.c
  7bae2251f19fb8dd4b4ae9f3110a3015  libgomp/testsuite/libgomp.oacc-c-c++-common/loop-default.h
*************** ee92965ca541f750df722d2fe265e58d  libgom
*** 110497,110503 ****
  efb607db23705e7d0e0052136747aa2b  libgomp/testsuite/libgomp.oacc-c-c++-common/pr92984-1.c
  ee14c246a4b0621d735a59d30ac0299a  libgomp/testsuite/libgomp.oacc-c-c++-common/pr95270-1.c
  01b2024c52a09bc7fc5e47194a1ef682  libgomp/testsuite/libgomp.oacc-c-c++-common/pr95270-2.c
! 8ccb391ecb020ee72dd4b3c91795a894  libgomp/testsuite/libgomp.oacc-c-c++-common/present-1.c
  b3824216ed6541363eaab687c61bb584  libgomp/testsuite/libgomp.oacc-c-c++-common/present-2.c
  92f1c6a9ab211f9c69a79ea2f24d7b7a  libgomp/testsuite/libgomp.oacc-c-c++-common/private-atomic-1-gang.c
  88d7cb06b9f0d1b5d3b7f0028babd6f1  libgomp/testsuite/libgomp.oacc-c-c++-common/private-atomic-1.c
--- 120480,120486 ----
  efb607db23705e7d0e0052136747aa2b  libgomp/testsuite/libgomp.oacc-c-c++-common/pr92984-1.c
  ee14c246a4b0621d735a59d30ac0299a  libgomp/testsuite/libgomp.oacc-c-c++-common/pr95270-1.c
  01b2024c52a09bc7fc5e47194a1ef682  libgomp/testsuite/libgomp.oacc-c-c++-common/pr95270-2.c
! b258096c411392729f7cd3956b29ddd0  libgomp/testsuite/libgomp.oacc-c-c++-common/present-1.c
  b3824216ed6541363eaab687c61bb584  libgomp/testsuite/libgomp.oacc-c-c++-common/present-2.c
  92f1c6a9ab211f9c69a79ea2f24d7b7a  libgomp/testsuite/libgomp.oacc-c-c++-common/private-atomic-1-gang.c
  88d7cb06b9f0d1b5d3b7f0028babd6f1  libgomp/testsuite/libgomp.oacc-c-c++-common/private-atomic-1.c
*************** e761f4dca6250611ff0792b1d8cacfbc  libgom
*** 110530,110535 ****
--- 120513,120519 ----
  d56fcc986a0bc959a99533bf679f67ff  libgomp/testsuite/libgomp.oacc-c-c++-common/routine-w-1.c
  fef8f37a1e9739517b8106f0b1ff56b0  libgomp/testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c
  78714daf89dd2747ad57135db06f17bf  libgomp/testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c
+ 0fa7981f78e1efa9f1745dc537f5f6d8  libgomp/testsuite/libgomp.oacc-c-c++-common/self-1.c
  56fb25d9e6e334fc162109f9ee5430cf  libgomp/testsuite/libgomp.oacc-c-c++-common/static-variable-1.c
  0c8d53037ec5c2b4a2208f9527b55b0c  libgomp/testsuite/libgomp.oacc-c-c++-common/struct-1.c
  a2a3b463713aeac5d2334e0d7d3a7b08  libgomp/testsuite/libgomp.oacc-c-c++-common/struct-3-1-1.c
*************** acff0307cbfdb6578ef67d96f7f7cbaf  libgom
*** 110563,110569 ****
  44f8540f48e84ee4643d1779ee881eaf  libgomp/testsuite/libgomp.oacc-c-c++-common/switch-conversion.c
  824547d730cba0e0e2403dc45f001d89  libgomp/testsuite/libgomp.oacc-c-c++-common/tile-1.c
  1d0ac265ffd93f3e7303bf1e4d06d541  libgomp/testsuite/libgomp.oacc-c-c++-common/timer.h
! c71bace3863362a246a4776a61008554  libgomp/testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c
  964557340c6a86906ae6e0d52e6bad79  libgomp/testsuite/libgomp.oacc-c-c++-common/update-1.c
  5afdaccc6952024b9bec7e66bab1d0cc  libgomp/testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c
  2b8f327a181cfc36401508a2a3dcc00d  libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c
--- 120547,120553 ----
  44f8540f48e84ee4643d1779ee881eaf  libgomp/testsuite/libgomp.oacc-c-c++-common/switch-conversion.c
  824547d730cba0e0e2403dc45f001d89  libgomp/testsuite/libgomp.oacc-c-c++-common/tile-1.c
  1d0ac265ffd93f3e7303bf1e4d06d541  libgomp/testsuite/libgomp.oacc-c-c++-common/timer.h
! 8243deb3dfc7b1b3c58c1bfd878c382c  libgomp/testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c
  964557340c6a86906ae6e0d52e6bad79  libgomp/testsuite/libgomp.oacc-c-c++-common/update-1.c
  5afdaccc6952024b9bec7e66bab1d0cc  libgomp/testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c
  2b8f327a181cfc36401508a2a3dcc00d  libgomp/testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c
*************** e65c44041c15898765a99f6782a191d2  libgom
*** 110583,110596 ****
  3df312778896ed29ec60eefae35ce701  libgomp/testsuite/libgomp.oacc-c-c++-common/vprop.c
  740bb3c7370aed8a10c47e96dc522237  libgomp/testsuite/libgomp.oacc-c-c++-common/vred2d-128.c
  4210ba709794292b7c55787ddbfa572a  libgomp/testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c
! 4796f6f728e7eb127e28ee59e5f1ef18  libgomp/testsuite/libgomp.oacc-c/c.exp
  cbdcc7dbb1bbfcb008b972db87d6a771  libgomp/testsuite/libgomp.oacc-c/nested-function-1.c
  009dee52db49f02bd518c318808bd4ab  libgomp/testsuite/libgomp.oacc-c/nested-function-2.c
  72bcce9d26c09f9366370cb966bc078d  libgomp/testsuite/libgomp.oacc-c/print-1.c
  1345bcecbe8a5d7df637734f5b43c172  libgomp/testsuite/libgomp.oacc-c/vec.c
  f71531081e68cf72f20e97fa5e84200c  libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90
  c9683c99e94f6e35b6a3266a17594788  libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90
  b679de5ffd18c9aa9dde2bffdaf92c7f  libgomp/testsuite/libgomp.oacc-fortran/acc_get_property.f90
  0eac7e1af4d8ca7c4c42d76cd5015444  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90
  c9d04d0d82b514d2de4958c54c12b349  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f
  a29a811aa157e6d9fe6113fc76befbe0  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f
--- 120567,120583 ----
  3df312778896ed29ec60eefae35ce701  libgomp/testsuite/libgomp.oacc-c-c++-common/vprop.c
  740bb3c7370aed8a10c47e96dc522237  libgomp/testsuite/libgomp.oacc-c-c++-common/vred2d-128.c
  4210ba709794292b7c55787ddbfa572a  libgomp/testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c
! 2a6a62d82b16b3bd4b1ab343e02eaed3  libgomp/testsuite/libgomp.oacc-c/c.exp
  cbdcc7dbb1bbfcb008b972db87d6a771  libgomp/testsuite/libgomp.oacc-c/nested-function-1.c
  009dee52db49f02bd518c318808bd4ab  libgomp/testsuite/libgomp.oacc-c/nested-function-2.c
  72bcce9d26c09f9366370cb966bc078d  libgomp/testsuite/libgomp.oacc-c/print-1.c
  1345bcecbe8a5d7df637734f5b43c172  libgomp/testsuite/libgomp.oacc-c/vec.c
  f71531081e68cf72f20e97fa5e84200c  libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90
  c9683c99e94f6e35b6a3266a17594788  libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90
+ 1045333a95e7f4dd53b3abb3190cc0c3  libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy-2.f90
+ 23819c21b173d31a96499e53ce2c30bd  libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90
  b679de5ffd18c9aa9dde2bffdaf92c7f  libgomp/testsuite/libgomp.oacc-fortran/acc_get_property.f90
+ 4d28dca537d7fed909bb00ab9ac2565d  libgomp/testsuite/libgomp.oacc-fortran/acc_host_device_ptr.f90
  0eac7e1af4d8ca7c4c42d76cd5015444  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90
  c9d04d0d82b514d2de4958c54c12b349  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f
  a29a811aa157e6d9fe6113fc76befbe0  libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f
*************** dec0ff0c9d1763372e0d89a8d486c716  libgom
*** 110661,110667 ****
  b15b38824b1308517e500eed941b395c  libgomp/testsuite/libgomp.oacc-fortran/error_stop-2.f
  4a500c43dca65f6d5bef5129616a5d0f  libgomp/testsuite/libgomp.oacc-fortran/error_stop-3.f
  1ca90666ec166deb31a532f320f58fa2  libgomp/testsuite/libgomp.oacc-fortran/firstprivate-1.f90
! 9ed8ce5724f0c0dcfe8ed42ca9f70faa  libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
  1c759d21e241899405470f8b5a93d4c4  libgomp/testsuite/libgomp.oacc-fortran/gang-static-1.f90
  9f91cf29f5b9c4862df0fb9820bcf937  libgomp/testsuite/libgomp.oacc-fortran/gemm-2.f90
  e79bc2530648a870e2f0ff4c36e184f2  libgomp/testsuite/libgomp.oacc-fortran/gemm.f90
--- 120648,120655 ----
  b15b38824b1308517e500eed941b395c  libgomp/testsuite/libgomp.oacc-fortran/error_stop-2.f
  4a500c43dca65f6d5bef5129616a5d0f  libgomp/testsuite/libgomp.oacc-fortran/error_stop-3.f
  1ca90666ec166deb31a532f320f58fa2  libgomp/testsuite/libgomp.oacc-fortran/firstprivate-1.f90
! 3898dca187bae0ab73b978a11c0837ba  libgomp/testsuite/libgomp.oacc-fortran/fortran-torture_execute_math.f90
! 4ca493cb70831d0e3f88ed2c377c967f  libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
  1c759d21e241899405470f8b5a93d4c4  libgomp/testsuite/libgomp.oacc-fortran/gang-static-1.f90
  9f91cf29f5b9c4862df0fb9820bcf937  libgomp/testsuite/libgomp.oacc-fortran/gemm-2.f90
  e79bc2530648a870e2f0ff4c36e184f2  libgomp/testsuite/libgomp.oacc-fortran/gemm.f90
*************** e79bc2530648a870e2f0ff4c36e184f2  libgom
*** 110670,110676 ****
  cf2a27da59d3b7856348e6c1707bc944  libgomp/testsuite/libgomp.oacc-fortran/host_data-3.f
  63d16960cfabb69ecf97cf86440e8178  libgomp/testsuite/libgomp.oacc-fortran/host_data-4.f90
  e206d5fdc2a6366ff1ccbf7d55ab2b7d  libgomp/testsuite/libgomp.oacc-fortran/host_data-5.F90
! a5b81c66ce33d424a9fdf7b532217697  libgomp/testsuite/libgomp.oacc-fortran/if-1.f90
  9e79f04def374125ca7e12df1aa42e17  libgomp/testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90
  916dd1d0624fc62083348884a09e0cf8  libgomp/testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90
  7c709c6d864edc4962556c34495e8b24  libgomp/testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90
--- 120658,120664 ----
  cf2a27da59d3b7856348e6c1707bc944  libgomp/testsuite/libgomp.oacc-fortran/host_data-3.f
  63d16960cfabb69ecf97cf86440e8178  libgomp/testsuite/libgomp.oacc-fortran/host_data-4.f90
  e206d5fdc2a6366ff1ccbf7d55ab2b7d  libgomp/testsuite/libgomp.oacc-fortran/host_data-5.F90
! d2542a22538ab361b2100d4ecf933361  libgomp/testsuite/libgomp.oacc-fortran/if-1.f90
  9e79f04def374125ca7e12df1aa42e17  libgomp/testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90
  916dd1d0624fc62083348884a09e0cf8  libgomp/testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90
  7c709c6d864edc4962556c34495e8b24  libgomp/testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90
*************** ee7521ad4aa9a4706a403ccbc2d58f80  libgom
*** 110800,110805 ****
--- 120788,120794 ----
  b17d9a6be87aa880c6f4edacb94c8b96  libgomp/testsuite/libgomp.oacc-fortran/routine-7.f90
  d8a29de950f49f4fc90c9401a7c03227  libgomp/testsuite/libgomp.oacc-fortran/routine-9.f90
  d875f4d51a3b5cbf9037bc9fd0dacfd6  libgomp/testsuite/libgomp.oacc-fortran/routine-nohost-1.f90
+ b82c902991148e9e09bcbe3437ff8128  libgomp/testsuite/libgomp.oacc-fortran/self-1.f90
  b597915a52bb85b1298c867e37105162  libgomp/testsuite/libgomp.oacc-fortran/stop-1.f
  31a78af6c9cd8024bc256da6bee7798e  libgomp/testsuite/libgomp.oacc-fortran/stop-2.f
  6767d800c1c100b32b1dba2d6080c0a3  libgomp/testsuite/libgomp.oacc-fortran/stop-3.f
*************** e8a3245c095430c8ef2413afe2ee4c48  libgom
*** 110809,110827 ****
  1ee538b1d8c3361fa5c71fc8cac2aa7a  libgomp/testsuite/libgomp.oacc-fortran/update-2.f90
  1d2e2e1ab9f0d92351625f2c5661dbb8  libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
  989e6535f20045be32e9e91643a0b08f  libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90
! b409f1646a05495747142fadf3690e0c  libgomp/work.c
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 3f8e7be77c4383491a02d74698cd1d9d  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
! fa93bac944903a228f11c248e20425c1  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
! 2e7e6912ce00d3b1be48f76244ccba17  libiberty/_doprnt.c
! 90dda4428f9bd64a6f128320155f072a  libiberty/acinclude.m4
! d1955a5319e9f2bf4d714152f8da1d1a  libiberty/aclocal.m4
  44755c536efb9b79a3ebdfe6b0da5904  libiberty/alloca.c
! 0719d1feaeba74c59dba7effd3ce40af  libiberty/argv.c
! 71349af8f7e4bbc4105b5866c767f82d  libiberty/asprintf.c
  a16ea056b95fd70c21333db132da14ff  libiberty/at-file.texi
  c34119797a13e71989722851c14b711b  libiberty/atexit.c
  ab8d4cd68aa4892e2318d2c71864cc56  libiberty/basename.c
--- 120798,120859 ----
  1ee538b1d8c3361fa5c71fc8cac2aa7a  libgomp/testsuite/libgomp.oacc-fortran/update-2.f90
  1d2e2e1ab9f0d92351625f2c5661dbb8  libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
  989e6535f20045be32e9e91643a0b08f  libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90
! 13ce3738623ad8cdb030ba13f77c9b21  libgomp/work.c
! cdc14f779bd02a113e6c026524677ea1  libgrust/ChangeLog
! 69faa7ff8ff314e60429e38bdc3a7752  libgrust/Makefile.am
! 58b9b650d5ea3aba25ea340d260f9329  libgrust/Makefile.in
! ec9513341b9bd1ba3b60bf6fec70f852  libgrust/aclocal.m4
! b27259f4e18a25f0c7968a7ca91d4a9b  libgrust/configure
! 1999a0f92627e8ac9047e595977071b1  libgrust/configure.ac
! cd0e90dee6ce145ad0d11c240826b07b  libgrust/libproc_macro/bridge.rs
! 9be138886623ca0802ec7844b8846a76  libgrust/libproc_macro/bridge/ffistring.rs
! f1392f7b3d0188f2db18881276432afa  libgrust/libproc_macro/bridge/group.rs
! 9f2661ccae7557bd8cbd046f31bcaf03  libgrust/libproc_macro/bridge/ident.rs
! 61422618c6e021aa8909f75ce98a53af  libgrust/libproc_macro/bridge/literal.rs
! 6da4919427c06170175dc901794e7192  libgrust/libproc_macro/bridge/punct.rs
! 73ec1185e600eb77f035cad18fd55b58  libgrust/libproc_macro/bridge/span.rs
! 208b1a4b872823b94460456321ea85f3  libgrust/libproc_macro/bridge/token_stream.rs
! 8b883341a0599d28cc3455a99950d0b9  libgrust/libproc_macro/group.rs
! 10304034898cfbbde7be3e57162681a1  libgrust/libproc_macro/ident.rs
! 4e7334e7235db9987c610cc325585132  libgrust/libproc_macro/lib.rs
! d5b9a207fdefc3e754f84b3cf037f07c  libgrust/libproc_macro/literal.rs
! fbb8cff14e00f383bb95e7d9f2f71ab2  libgrust/libproc_macro/punct.rs
! a85db29c02a50c5bbcb488cd0c0e158d  libgrust/libproc_macro/span.rs
! e8e9e09fb8c492e89bece7a03c1cc174  libgrust/libproc_macro/token_stream.rs
! 03f3ce72cfe395ae342a58df2c9c3776  libgrust/libproc_macro_internal/Makefile.am
! a26f7470639f9b790e0a7d65e9b034e9  libgrust/libproc_macro_internal/Makefile.in
! dcc40e0fb277ebcfd4af1ac479ac47a6  libgrust/libproc_macro_internal/bridge.h
! 483dca7c6b78d72286cc5c9a2f5d2332  libgrust/libproc_macro_internal/ffistring.cc
! 8f8b5fda55344b7121f30a1445b6bc6c  libgrust/libproc_macro_internal/ffistring.h
! 49b1c84743174f8a3911a06c6371acf3  libgrust/libproc_macro_internal/group.cc
! 5d63f55f3bf328bdcce4b751680847e3  libgrust/libproc_macro_internal/group.h
! b64681404eb9bc3236d293169257151d  libgrust/libproc_macro_internal/ident.cc
! d4103534c444d749d1ecd3d406d7e5f7  libgrust/libproc_macro_internal/ident.h
! 13b0179dcfd218c8424a0fb3ace021a6  libgrust/libproc_macro_internal/literal.cc
! 0a76b8d74c36e6a55acd51fd2d46809d  libgrust/libproc_macro_internal/literal.h
! 31ae71099334eebf7e75327cf83a97d9  libgrust/libproc_macro_internal/proc_macro.cc
! 0a59a7bf6d1e481a1173737382d47345  libgrust/libproc_macro_internal/proc_macro.h
! 9d23b821e4ab7bb8a0b208f833b0fa5d  libgrust/libproc_macro_internal/punct.cc
! e0bc0d8477e0603a2c80a967992194c2  libgrust/libproc_macro_internal/punct.h
! c49b63cdc24879aa018ce1b5c7c61a0f  libgrust/libproc_macro_internal/registration.h
! 3e88f86781bd732ef63b970894b9d229  libgrust/libproc_macro_internal/span.cc
! c446d3459d2c18f8c3b7e9523a64042e  libgrust/libproc_macro_internal/span.h
! 7caf107c8a275a1043e15fc1f8b3b444  libgrust/libproc_macro_internal/tokenstream.cc
! d310c3612a920f243d62620f007dec94  libgrust/libproc_macro_internal/tokenstream.h
! 7c20b6718d183fdde5dfb2d8af4aec23  libgrust/libproc_macro_internal/tokentree.cc
! 4d27195db5805ea05b982a2971711c94  libgrust/libproc_macro_internal/tokentree.h
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! a1977166bb0e91c8cd5807c3a323166c  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
! 4ec52efbaf3e8230220b57e77177d128  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
! 7af5d591b3cb40f1e59bb792e9f5d024  libiberty/_doprnt.c
! 13c18c367fc6e927fac085ecaac9f9e9  libiberty/acinclude.m4
! 49e4e53c90bd47bd515e4f0493037ae8  libiberty/aclocal.m4
  44755c536efb9b79a3ebdfe6b0da5904  libiberty/alloca.c
! a03997af2b069bf085cd6fd8c9a51887  libiberty/argv.c
! ccaf766a779fd9f380fc088a74581599  libiberty/asprintf.c
  a16ea056b95fd70c21333db132da14ff  libiberty/at-file.texi
  c34119797a13e71989722851c14b711b  libiberty/atexit.c
  ab8d4cd68aa4892e2318d2c71864cc56  libiberty/basename.c
*************** a707d2e5daa09d204d4441e8713048ca  libibe
*** 110831,111066 ****
  0ce04768d60b33d4951e6542d1bcbdac  libiberty/bsearch_r.c
  4a0acb9356a52f3bcfd67efa26997b58  libiberty/bzero.c
  4334ddc8cd0c2303bd7b4d61a8dd0e62  libiberty/calloc.c
! d6d5251c128531e3e89cf7d3e7bd6d67  libiberty/choose-temp.c
! 31b4ef80fdaaf75415a5a11ae2cf2b01  libiberty/clock.c
! 4ee9e1c0eb98e5478ae7b70f7840afba  libiberty/concat.c
  83565a31c7f296b3013daf383cd03ee9  libiberty/config.h-vms
! c490c2d0e84347da40a272a019f71dd4  libiberty/config.in
  4004fdcde347fda58406b4b84a995c66  libiberty/config/mh-aix
  7b65854f594c84e80295173de277b3dc  libiberty/config/mh-cxux7
  044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
  904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
  38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
! 93e606949801616e6b04a7dd21b1e078  libiberty/configure
! f4d2cab55eac7f25873746d178a3723f  libiberty/configure.ac
  5824bd0f9be9f4fa74bb3bdc7fd9431c  libiberty/configure.com
! 39e3cd5bcdfdcacf41ece5dcaeaffd3d  libiberty/copying-lib.texi
  fe053283d3559af3ec5cac45f8ead009  libiberty/copysign.c
! ad436677a85294f25c0972c609780705  libiberty/cp-demangle.c
! 845b47bee5b134105fe78243e64f8238  libiberty/cp-demangle.h
! 2ff589643a49c5f3328c3bc5e5e999f0  libiberty/cp-demint.c
! 5f0415b8708bf14622dd3485857bb4ad  libiberty/cplus-dem.c
! 8001912504a55a68e26de71abbe57f1f  libiberty/crc32.c
! a5f990c014737c78c93a12c002522a84  libiberty/d-demangle.c
! f1988e114a1db6d4b030c569023491d5  libiberty/dwarfnames.c
! 043f7d9118e54724d86a7cc47f28bc86  libiberty/dyn-string.c
! 6eee7971d98f57101bf8c29943bf96cd  libiberty/fdmatch.c
  0c2635175b975823b40980974dfc2110  libiberty/ffs.c
! 16696589fa7896619837f522393e13cb  libiberty/fibheap.c
! c77db806859dec521d5c35ee35b98317  libiberty/filedescriptor.c
! 4532c51f0b40ce572925c21e489a8682  libiberty/filename_cmp.c
! 2b8372952e717d670aed49365a098c76  libiberty/floatformat.c
! 2eea8bf4771250437ed62d5b618b6d61  libiberty/fnmatch.c
  145debe2f28f470878f95b1255f5537c  libiberty/fnmatch.txh
! 18055db8cf11eff88a6d0aaeaf3cd0e7  libiberty/fopen_unlocked.c
  75ed047e84b4ed7b2d4c9fcb6cd2c955  libiberty/functions.texi
! 251a0a4415cc6be079eeb381b7bc7cc4  libiberty/gather-docs
  754c5ef42440c5d1b62146174a6636e4  libiberty/getcwd.c
! d83c487af1b9bf2cf01dc35bb32c3d5e  libiberty/getopt.c
! 0545bc74ed4f518580fd483387b939bb  libiberty/getopt1.c
  bb0043d92c716691cc17b80c845c336b  libiberty/getpagesize.c
  5e520e600636a692f52e62dcfb01921c  libiberty/getpwd.c
! 04836585c6d16e93cf0cb16f1f283c2d  libiberty/getruntime.c
  0c70ad1e35bb090b52ed593865025741  libiberty/gettimeofday.c
! 7f634440f37379d2607d166f8529ab44  libiberty/hashtab.c
! 4136f30b6dd85c6a35ba943c05ab0247  libiberty/hex.c
  4d485e7735be430b22aea0abb4938e26  libiberty/index.c
  9d0471286f21d9027bbf1b7c67b87856  libiberty/insque.c
! 5b670a3fe03f92d1cd9b620d26e60df8  libiberty/lbasename.c
! c2214d5029ebe9a199f5da09322b8b83  libiberty/libiberty.texi
! 0b0a104ef589eafd7739503ad20d6c89  libiberty/lrealpath.c
! 1edcc0269c1d820e125147269153ed9b  libiberty/maint-tool
! 32ba19f659818e81de84daee4df7df33  libiberty/make-relative-prefix.c
! ee01c98526649b3e9cc0a5c90bb87ec9  libiberty/make-temp-file.c
  80367d734a974bd32e9ebc370dedd2e7  libiberty/makefile.vms
! 0a0d7b46e25ebf6c0a497c7c40bfc5a1  libiberty/md5.c
  5b9d8d3532e276e22b798481bdcb3ec3  libiberty/memchr.c
  d2f8420243d7223cc896b7a6308fd19a  libiberty/memcmp.c
  873c437999202225c99e2039eb9896ce  libiberty/memcpy.c
! 1d5bf272af5562f594c032be1c233c54  libiberty/memmem.c
  0d7465662f3756716c6dcdd1988940e5  libiberty/memmove.c
! 436f8c2b0f281596e35a0c2251885c6b  libiberty/mempcpy.c
  5f0eb20e9ed4d7e6c2eb9d1baf4d9dc9  libiberty/memset.c
! 7fb70ed4b9e11ed126ad206dc7546b21  libiberty/mkstemps.c
  7897e43bedd2def4beb6eb73003efa68  libiberty/msdos.c
! 7d0c64a87e285fba6e50f953a3c766e6  libiberty/objalloc.c
! 22969a431ebe7d8651b6d9109b43eac0  libiberty/obstack.c
  60e853e97e156d94dfb6374f701b99ab  libiberty/obstacks.texi
! 40f4b6b6b3151b7647375c19a25b576d  libiberty/partition.c
! cdac5bfcf617fc3b61e4746c15e44348  libiberty/pex-common.c
! 6441b2339d105da726bbaee401e3eca1  libiberty/pex-common.h
! 54d145106bee4bb054c9c469d58e92e3  libiberty/pex-djgpp.c
! bfc6e9cdf8c1c0e603edc944665b7e38  libiberty/pex-msdos.c
! 2213c4ccd8295d22c686b4a3ceed1985  libiberty/pex-one.c
! c60c56338c18f411a016acca2994fb3c  libiberty/pex-unix.c
! 86454c68c4555c3d83b2bc4aa34ed6b7  libiberty/pex-win32.c
! 15eaaf340d513e83299ee6e1f47290e9  libiberty/pexecute.c
  a6b1581efa83a4072727b38d6fef4230  libiberty/pexecute.txh
! f5c226c84382553801ca826a037f1bfe  libiberty/physmem.c
! 14985109a79e6bbb8476562c839c9b1d  libiberty/putenv.c
  e0e831dfd1e39695597e9f5c6951be8e  libiberty/random.c
! 35f0987ce9d1b57e37888a999d86c33e  libiberty/regex.c
  24eab3d83825c3be13549dc62b6d63d6  libiberty/rename.c
  74850488731148a9c9f410042144f37d  libiberty/rindex.c
! 2ac66d7c89518c894b81dcc44cfcc80f  libiberty/rust-demangle.c
! b1391987464ec90bd524e3986d0f49f5  libiberty/safe-ctype.c
! e7ff11c4ae7f1858d4cda405eadc20db  libiberty/setenv.c
! 27ce006e748b1de1aa3c3dba45ba2454  libiberty/setproctitle.c
! 964e58ab59b76450246e59f9e5f3e75a  libiberty/sha1.c
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
! 920e1afa7ad8988735b7221db8ab709d  libiberty/simple-object-coff.c
! 3f5d339eff2073f4a2437949a3797dee  libiberty/simple-object-common.h
! 5e8924f926aca119e02158b8eb4d4b3e  libiberty/simple-object-elf.c
! a60ce9470fc2a0d124b0931b858b3265  libiberty/simple-object-mach-o.c
! 085b4b2948c994fb2b65894a77756e60  libiberty/simple-object-xcoff.c
! ace1a8709791ca05541a70dca2614837  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
! 842fc5284a9f4ae10e07a32837db3a4e  libiberty/snprintf.c
! c74c68e14f2a52e22ec6f46986bf9735  libiberty/sort.c
! b8c9aec2b4f999f85dac8e179177eeb9  libiberty/spaces.c
! 926744ab7902793a321ca898665a1ca1  libiberty/splay-tree.c
! c57c9f2741ba9c6a7bc9b3f0953c65c2  libiberty/stack-limit.c
! a11b33a8686db3f5ccd37c6a4bd08760  libiberty/stpcpy.c
! 6d82b6f5a775d5862296278a0bb40957  libiberty/stpncpy.c
  0c900e9180d750a26ac0ddb237151832  libiberty/strcasecmp.c
  13cce636dd9882e42c9fc5d607351f4f  libiberty/strchr.c
  1be85270d5b20a93992f377f79fb68f0  libiberty/strdup.c
  6b3173ebb186ea3f9110addc7af3cf28  libiberty/strerror.c
  2d414e20c053293f373a5306192db8f5  libiberty/strncasecmp.c
  cc534c2ea00ea0b5e49ba8f61c6e467d  libiberty/strncmp.c
! dc09da903ba2fbf8542eb20cfb975d3c  libiberty/strndup.c
  fd1435a5be24d2ed84909540998dd5d7  libiberty/strnlen.c
  5b0eb0000c746fc4c1854f00bb80b53d  libiberty/strrchr.c
  35b19177b9109e894fcfae29a3a52778  libiberty/strsignal.c
  118932d11e6b27c7319a4397c2b933f7  libiberty/strstr.c
! 1acfbd447cfacba2d9897d02c4a85df1  libiberty/strtod.c
  c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
  9968bbb75dc08ce768389912954f4348  libiberty/strtoll.c
  26196a9a92fae743a06d65f0e081084b  libiberty/strtoul.c
  d132d24f15fe05fe3614e69d6dbc65aa  libiberty/strtoull.c
! 77f00e471d911b2fabb259b4836f3b26  libiberty/strverscmp.c
! bf0bf4d60f2e19f5c44d270cb4e2efcc  libiberty/testsuite/Makefile.in
! cd08c8fa8cc7f327c16a8eaab09fa56b  libiberty/testsuite/d-demangle-expected
! 7fc6b942119d45c4948ac23d8605757d  libiberty/testsuite/demangle-expected
! 0be77adcf0ef7568788e6f022ce313a7  libiberty/testsuite/demangler-fuzzer.c
  3a9dd86d23e50ad55b3af57e17c41a44  libiberty/testsuite/rust-demangle-expected
! 3b5f35dfcce31e615b81396c0eaf60a0  libiberty/testsuite/test-demangle.c
! 1f62601e509eddb8449a07cda9549272  libiberty/testsuite/test-expandargv.c
! a0ba25cd5ef513f276fec55c2d8cb3dd  libiberty/testsuite/test-pexecute.c
! b920aebf9ff6c085da76433819e5622e  libiberty/testsuite/test-strtol.c
! 21eff4868466f1d159a0367f746cde9e  libiberty/timeval-utils.c
  6b513119d8c36af928821e8ec24265d7  libiberty/tmpnam.c
! 7e222259a8c92ec7c1e54e31c41c6a95  libiberty/unlink-if-ordinary.c
! 228f443632f68c94b2dd0f46bc12a52f  libiberty/vasprintf.c
  8e71982d77e91c0e3c57ca86c8a1b548  libiberty/vfork.c
! e87e91d13bd1464bc8cfcfaa7d34f860  libiberty/vfprintf.c
! 21878ca191d7acb8c2500a3c38ae0a01  libiberty/vprintf-support.c
! 7b472325136afdcbe5f98bfd27a8eca1  libiberty/vprintf-support.h
  28af0a1bf222ed2a5a87d9e170ef4a46  libiberty/vprintf.c
! 86983d6e70304b44becdec5e04c5c45c  libiberty/vsnprintf.c
! 47a5eb4a2d23666a1ce3a3c49cf081a4  libiberty/vsprintf.c
  3b03f409fd38f9d543870f21e6d7f5c8  libiberty/waitpid.c
! cac6a12c5b116c45c233df6b6f5db726  libiberty/xasprintf.c
  d4edda6072abc54e79d734250756816e  libiberty/xatexit.c
! 29c95fb38b676cb6913dd3a8e74794e9  libiberty/xexit.c
! cd1e88fd8c75b9aeaa5cce97a346e787  libiberty/xmalloc.c
  e52d95644dc6f186070f349a5903ca72  libiberty/xmemdup.c
  4746095b1b67693ab6e78ed72ead1235  libiberty/xstrdup.c
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
! 23f92e212cd9d0aa705c4291d15b1b1d  libiberty/xstrndup.c
! 3d5f811c995181239208230e3fb986c9  libiberty/xvasprintf.c
! 22fff72ea589263800a272d07972f678  libitm/ChangeLog
! a9df0726c501bf71a46f426068e8fc9f  libitm/Makefile.am
! 06bb67375770bbbe550b5708624ed9d8  libitm/Makefile.in
! b0ef0123257ddf33dc8877750e9d701f  libitm/aatree.cc
! e7c6587f6f3621688ecc0d09a222a4f1  libitm/aatree.h
  724846b555020a9e223c8322082e775a  libitm/acinclude.m4
  c98774b09e6486e6a0818631af2fd088  libitm/aclocal.m4
! 4c4fccebd2492c4ccf90d003224a1a1c  libitm/alloc.cc
! 3e67b9cdbee184d14f792dacf6913dba  libitm/alloc_c.cc
! dd4adf2f3d418c54f5d17e59b0d8402f  libitm/alloc_cpp.cc
! 2c0934867d14e4b88584e8fc998a6dc1  libitm/barrier.cc
! 9a005a848aa4adebc70db312f6d2d2d4  libitm/beginend.cc
! 5ebb98566a5728d0ff291b3ae890770c  libitm/clone.cc
! 1ecaf6f44e84a5d3d76ca0e68618a5c0  libitm/common.h
  05ea82fd12c7b4a030b6310b862ff47d  libitm/config.h.in
! ab83f473ce5aee02735be9e4d6efd8d1  libitm/config/aarch64/sjlj.S
! 99762829f18169d04e89e31247700bc3  libitm/config/aarch64/target.h
! 722d50c584dee106e8caa681564e5eb6  libitm/config/alpha/sjlj.S
! 141b591a8c71a57136873688d086891c  libitm/config/alpha/target.h
! e0b1869a0c5ccf5236ade678219824d7  libitm/config/arm/hwcap.cc
! d32d6da20f795355b9d60218e8e974e8  libitm/config/arm/hwcap.h
! 6d072fefde7242d055aaeb92cf44146f  libitm/config/arm/sjlj.S
! 14ecd36c0f5a75fd21804270f6b46e0f  libitm/config/arm/target.h
! 6de2a8581387244f1c9d046841c2f965  libitm/config/generic/asmcfi.h
! 55ea9e2eeb45cc565d32d3eb4b814302  libitm/config/generic/tls.cc
! 52886d8b0cf1c2cda7f8d75aa693d2e4  libitm/config/generic/tls.h
! 10389ce2ed48d96a7cc8701e762c040e  libitm/config/linux/alpha/futex_bits.h
! da51f540e8247c8649b45167e3785d50  libitm/config/linux/futex.cc
! 4c044d8588d2ce46571a8b05e30b472b  libitm/config/linux/futex.h
! 44072eb66ff518d7e1707cabb99ae01b  libitm/config/linux/futex_bits.h
! e465fe4062d51e4e0713f924ac109bde  libitm/config/linux/powerpc/futex_bits.h
! cb8ea69dff54d4d939534aed508f5936  libitm/config/linux/rwlock.cc
! 96f6fdfc30910256e14ebcb2e985e23c  libitm/config/linux/rwlock.h
! 53127275c67eafcf232e5c8659352c9b  libitm/config/linux/sh/futex_bits.h
! 5b911ffbd4b321c339070e9bd539be4a  libitm/config/linux/sparc/futex_bits.h
! 36bfee2cb34d3906f5707f8647239ad7  libitm/config/linux/x86/futex_bits.h
! 3a7e1bd9787df0340a0ffbc158ee825f  libitm/config/linux/x86/tls.h
! 07041554ab3ac5ba5b556c9bc888ae0f  libitm/config/loongarch/asm.h
! 125215d4702f13415466a53ddcbed633  libitm/config/loongarch/sjlj.S
! 98fb590fb7ceaa8f57b671124f4a756f  libitm/config/loongarch/target.h
! bc3bc271fec65b1e93db3a845de388ba  libitm/config/posix/rwlock.cc
! f0094e662e7d8dd4090d2b3e85747d89  libitm/config/posix/rwlock.h
! 2555bb56ad54ce9740025d4cf5053fc6  libitm/config/powerpc/sjlj.S
! 751e666e3f333795261f27243992c642  libitm/config/powerpc/target.h
! e93096089071e865cf76d34e11a9ad5a  libitm/config/riscv/asm.h
! 6c191f27b626fe92459d2e3c1b73a06d  libitm/config/riscv/sjlj.S
! fc277cab789ba99ad5c6f883fc58b628  libitm/config/riscv/target.h
! 32f84567d81c709e6abafcc590211622  libitm/config/s390/sjlj.S
! 82db624747bbae28107fddae6e0a8cc6  libitm/config/s390/target.h
! 6e89c007fc715b69fe9e2ecb713d922e  libitm/config/sh/sjlj.S
! 2aa295ebf48d4ae6ddf88234787dbf68  libitm/config/sh/target.h
! da5634919bf40f7d69e6f37bb820f114  libitm/config/sparc/sjlj.S
! ad2d1c7d9df265e286acc99fe25c09ed  libitm/config/sparc/target.h
! 73a82c38f125d813015a668f1b040fd4  libitm/config/x86/sjlj.S
! 9bce82fd790d4633d1e4c1bc339b8031  libitm/config/x86/target.h
! 7e40c179f3ca8710391937c22df8dea3  libitm/config/x86/x86_avx.cc
! af40bf949d10b32e3905b5697fc638df  libitm/config/x86/x86_sse.cc
! b2af682e57859b8edd77f5ed16668bae  libitm/configure
! a4b514f0ad47cd5410f30099c73a2c18  libitm/configure.ac
! bca0c2e199a55f226407a834d8d03890  libitm/configure.tgt
! d3c04038acc1a42be3f3ead86551e0e1  libitm/containers.h
! 68025c5c42c305b8b7d2f4b08f7910f1  libitm/dispatch.h
! 5da5b705758c793173f8bee058aee611  libitm/eh_cpp.cc
! 8932f57735cf74b619c31912006a8974  libitm/libitm.h
! 8dd1a8aa042fa12b383946aa4ec1ec9c  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
! 71434a0441eb61041d10daf560a5219d  libitm/libitm.texi
! 12aff78d046758b25355156992eedc3e  libitm/libitm_i.h
! d862dd144f0ffe8e5ef5a8db2c5a8161  libitm/local.cc
! 207b70ed7239a24d8e6d16a0c1948172  libitm/local_atomic
! 2a955ec5327c8c844134a536966ed9b4  libitm/method-gl.cc
! f5a8f1f9eee47f55c5f1afca9fd4ef9d  libitm/method-ml.cc
! 5e0fe2bfeaae1ca844e4b3ac84f801cc  libitm/method-serial.cc
! 7a65ec798b533b49849e728709c4ac8f  libitm/query.cc
! 7bfa76de326bb983edd9fb51bbf2696d  libitm/retry.cc
  4835ec70e1fbcd9acd3c280c0060afa4  libitm/testsuite/Makefile.am
! d4d9b9513817c7a7ed3b32f016b07c90  libitm/testsuite/Makefile.in
! 59e5f26946889503f21fefa38349540e  libitm/testsuite/config/default.exp
  9ab92f2310c96121666b692e1660d24f  libitm/testsuite/lib/libitm-dg.exp
! 359b7dc62e4bd9e1ac9237f105da0611  libitm/testsuite/lib/libitm.exp
! 6e3415344d5dcb032bd568365bf9b7d1  libitm/testsuite/libitm.c++/c++.exp
  11785412cb94b04ecc293453486ad223  libitm/testsuite/libitm.c++/dropref.C
  d806946f2845368f69a6513f60b085d2  libitm/testsuite/libitm.c++/eh-1.C
  4d185e0f675cc4954831fb956401121c  libitm/testsuite/libitm.c++/eh-2.C
--- 120863,121098 ----
  0ce04768d60b33d4951e6542d1bcbdac  libiberty/bsearch_r.c
  4a0acb9356a52f3bcfd67efa26997b58  libiberty/bzero.c
  4334ddc8cd0c2303bd7b4d61a8dd0e62  libiberty/calloc.c
! 2dd3b9162212efed340e64b565f834fc  libiberty/choose-temp.c
! 3e10505c5e8a27550619413a20b58926  libiberty/clock.c
! 27782b2dd4ad35331ccb25d390aa9718  libiberty/concat.c
  83565a31c7f296b3013daf383cd03ee9  libiberty/config.h-vms
! 9ddd5e8a00c3c49137d3340a3bc59f50  libiberty/config.in
  4004fdcde347fda58406b4b84a995c66  libiberty/config/mh-aix
  7b65854f594c84e80295173de277b3dc  libiberty/config/mh-cxux7
  044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
  904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
  38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
! 606d4ca52fcf85555e6af34447efa655  libiberty/configure
! f5efa8d0ee64bb238fa0f02cb54cd8bf  libiberty/configure.ac
  5824bd0f9be9f4fa74bb3bdc7fd9431c  libiberty/configure.com
! 7c4862c935c4e80c0f54083f20d2fc31  libiberty/copying-lib.texi
  fe053283d3559af3ec5cac45f8ead009  libiberty/copysign.c
! 9619ec67ce88d0028e09aa3dbf067982  libiberty/cp-demangle.c
! 9cd0bfb5282d8fa4e14d448623d2a6fb  libiberty/cp-demangle.h
! d3145f5de7c655aebac3b192389edf01  libiberty/cp-demint.c
! 10884f330faf75e6c8244f965e283c3a  libiberty/cplus-dem.c
! 63f57dcc8759e59d23496fbb301656fc  libiberty/crc32.c
! 82c34296fd3f77fc69aaebb7c689f66b  libiberty/d-demangle.c
! daf887ed54f16c52e0a1c5f4e9a0e1bb  libiberty/dwarfnames.c
! 012b4ecd567c72358ec283eac76e2cc8  libiberty/dyn-string.c
! 33685405e5ccf20b2dc31386f7f4dafc  libiberty/fdmatch.c
  0c2635175b975823b40980974dfc2110  libiberty/ffs.c
! 5b0cfdb4a84e2763f0a23c24b185ff82  libiberty/fibheap.c
! 9af040f09706de4e926ab12571b30e9f  libiberty/filedescriptor.c
! f2066c818241036761d4706a6167290f  libiberty/filename_cmp.c
! d9fdbbe6e8e66b9221d8507a639b756c  libiberty/floatformat.c
! b526799e354a2b1d5279c9156698f343  libiberty/fnmatch.c
  145debe2f28f470878f95b1255f5537c  libiberty/fnmatch.txh
! 21980d8838c8665d510a69e747cf65b0  libiberty/fopen_unlocked.c
  75ed047e84b4ed7b2d4c9fcb6cd2c955  libiberty/functions.texi
! a0b2fe3a922c5c906e2e9d8b1340f82a  libiberty/gather-docs
  754c5ef42440c5d1b62146174a6636e4  libiberty/getcwd.c
! 3df55a42fd343dc797dd2ffce7ba5f18  libiberty/getopt.c
! 5f840a686c48a763681c3a079cb1ae98  libiberty/getopt1.c
  bb0043d92c716691cc17b80c845c336b  libiberty/getpagesize.c
  5e520e600636a692f52e62dcfb01921c  libiberty/getpwd.c
! f63e072d7d4f7a57533f0e659bcbda17  libiberty/getruntime.c
  0c70ad1e35bb090b52ed593865025741  libiberty/gettimeofday.c
! 38c9fce18b5e240126519de03c50a52a  libiberty/hashtab.c
! ff47c606ce4654ae51bcdf418a921423  libiberty/hex.c
  4d485e7735be430b22aea0abb4938e26  libiberty/index.c
  9d0471286f21d9027bbf1b7c67b87856  libiberty/insque.c
! b501c6af436c12c4af5db1dfebbc5d10  libiberty/lbasename.c
! e1693e8c535aafae362e14875d9a422d  libiberty/libiberty.texi
! 89e3886df4c5f4282118b28fc3f444fe  libiberty/lrealpath.c
! 8dd027cc5ecb776efe2b35ba2b2c58f5  libiberty/maint-tool
! 6dd98bb8db688fb9fec6e0ef331226ae  libiberty/make-relative-prefix.c
! 224bbe33ec92d734e13c56bc58861ed7  libiberty/make-temp-file.c
  80367d734a974bd32e9ebc370dedd2e7  libiberty/makefile.vms
! 8319c2e9690c55e0c04247fd00ba50c4  libiberty/md5.c
  5b9d8d3532e276e22b798481bdcb3ec3  libiberty/memchr.c
  d2f8420243d7223cc896b7a6308fd19a  libiberty/memcmp.c
  873c437999202225c99e2039eb9896ce  libiberty/memcpy.c
! aae60a170c82f9ca905a780b978f267b  libiberty/memmem.c
  0d7465662f3756716c6dcdd1988940e5  libiberty/memmove.c
! 760917b3a1d20eb75cb81e60b9a99b78  libiberty/mempcpy.c
  5f0eb20e9ed4d7e6c2eb9d1baf4d9dc9  libiberty/memset.c
! 734406ec3f73a1efaa1295c74faef593  libiberty/mkstemps.c
  7897e43bedd2def4beb6eb73003efa68  libiberty/msdos.c
! 27a6ed42be096f0bab0203e79ac85e89  libiberty/objalloc.c
! 321b7be4d23c488e68a367416aec00a3  libiberty/obstack.c
  60e853e97e156d94dfb6374f701b99ab  libiberty/obstacks.texi
! e47643b8066174b06ffdc03cf1f05e16  libiberty/partition.c
! 761af4d08c2047a70c2c4785bdc25286  libiberty/pex-common.c
! 269879bbf52a6c0828788c480fdbf6f2  libiberty/pex-common.h
! e61f58986233b75ddca8d2d386cbd4e6  libiberty/pex-djgpp.c
! c425731a31ec27059a8b06cccd67fbd8  libiberty/pex-msdos.c
! 9ff549d8b58c82a28504473ea5e6d0c6  libiberty/pex-one.c
! 1c76245d3c2b69627596826c0644d892  libiberty/pex-unix.c
! d8cfd084131bf36e513a4bf10bdcc598  libiberty/pex-win32.c
! 3a51a40716d71a35276578b5bfe5f3de  libiberty/pexecute.c
  a6b1581efa83a4072727b38d6fef4230  libiberty/pexecute.txh
! 3f8a38243ad428609679ac836ccae8c1  libiberty/physmem.c
! b54c766ea66128d844ec87eb189c2319  libiberty/putenv.c
  e0e831dfd1e39695597e9f5c6951be8e  libiberty/random.c
! 86fc88428f562a639c16e81dc738581c  libiberty/regex.c
  24eab3d83825c3be13549dc62b6d63d6  libiberty/rename.c
  74850488731148a9c9f410042144f37d  libiberty/rindex.c
! d351edb2b51be89fbeeef806aaa56e77  libiberty/rust-demangle.c
! 33b2cda317c33bf3974e1170353e97f8  libiberty/safe-ctype.c
! ccbd25bbe26b9f56e4a23c85b34176d2  libiberty/setenv.c
! 5b84057bcb5fd11b0f51c310008bf1e5  libiberty/setproctitle.c
! f4a1e123c3ee5bd73aeb59c84be25dec  libiberty/sha1.c
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
! c14729da5696f1b0a2ef1f6cb11ca0a3  libiberty/simple-object-coff.c
! f8c4ea91a815e826a2bb98c1d9f770f8  libiberty/simple-object-common.h
! 378b0f8aa091a5d255ec9555d2dcd7e1  libiberty/simple-object-elf.c
! 6bd7fd61811d90dd9ddc454c724d0c51  libiberty/simple-object-mach-o.c
! c46b918305ab9e7d9644bdc4fd8ae094  libiberty/simple-object-xcoff.c
! 30c5ede9248a062a27b96e47a22c2755  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
! 3e5decc7d70885db43efc2edadd3f8b8  libiberty/snprintf.c
! 6a91dcba8ac7e873c8541304e552106a  libiberty/sort.c
! c7d8d8bfdd677b567204141931842f6a  libiberty/spaces.c
! ce07b42f384aa0e105d9fb086faf61c5  libiberty/splay-tree.c
! 3cbd69b2ebb2ea35cecdc27b113d1344  libiberty/stack-limit.c
! 95427d10a739000f03528acc63785513  libiberty/stpcpy.c
! 2881e7e88bae25e1db8b2d3654f2ffd4  libiberty/stpncpy.c
  0c900e9180d750a26ac0ddb237151832  libiberty/strcasecmp.c
  13cce636dd9882e42c9fc5d607351f4f  libiberty/strchr.c
  1be85270d5b20a93992f377f79fb68f0  libiberty/strdup.c
  6b3173ebb186ea3f9110addc7af3cf28  libiberty/strerror.c
  2d414e20c053293f373a5306192db8f5  libiberty/strncasecmp.c
  cc534c2ea00ea0b5e49ba8f61c6e467d  libiberty/strncmp.c
! f5d6be693d4877640749748b3769f859  libiberty/strndup.c
  fd1435a5be24d2ed84909540998dd5d7  libiberty/strnlen.c
  5b0eb0000c746fc4c1854f00bb80b53d  libiberty/strrchr.c
  35b19177b9109e894fcfae29a3a52778  libiberty/strsignal.c
  118932d11e6b27c7319a4397c2b933f7  libiberty/strstr.c
! 06ec100601d51cb5e73dbd06606e4b3f  libiberty/strtod.c
  c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
  9968bbb75dc08ce768389912954f4348  libiberty/strtoll.c
  26196a9a92fae743a06d65f0e081084b  libiberty/strtoul.c
  d132d24f15fe05fe3614e69d6dbc65aa  libiberty/strtoull.c
! 4491e21d1f659b7e2371fdadf7555b8e  libiberty/strverscmp.c
! 1f851de6a6921f887894d39cbb53c2df  libiberty/testsuite/Makefile.in
! c6ed870948e340854930b0cfd9c39b99  libiberty/testsuite/d-demangle-expected
! cd082485429b6f621f45522499e0b1d2  libiberty/testsuite/demangle-expected
! 17efebc726b09107d7d0af07cfb493f4  libiberty/testsuite/demangler-fuzzer.c
  3a9dd86d23e50ad55b3af57e17c41a44  libiberty/testsuite/rust-demangle-expected
! 70fc5cd28ecc69d723e853db55789f5a  libiberty/testsuite/test-demangle.c
! 83ae444805ce0355fea185c875c8f0cf  libiberty/testsuite/test-expandargv.c
! a58dac251326e9ac48bd7f75c3962946  libiberty/testsuite/test-pexecute.c
! cd083a2c1a4e04c345d6a6d4cdc10a85  libiberty/testsuite/test-strtol.c
! 5f6f9391793be4c177f41ffb39ea66ae  libiberty/timeval-utils.c
  6b513119d8c36af928821e8ec24265d7  libiberty/tmpnam.c
! b8210de0712b151d01eadcba2370fe0e  libiberty/unlink-if-ordinary.c
! a4a776aae516982b4697fef39598ba3c  libiberty/vasprintf.c
  8e71982d77e91c0e3c57ca86c8a1b548  libiberty/vfork.c
! ff094ea2fd1d980f8dd9dc77e2a55a5f  libiberty/vfprintf.c
! e8f85bef2b6e317841f2bdcc6d20d477  libiberty/vprintf-support.c
! e8ea85ee924395f288e67d7f516d29e4  libiberty/vprintf-support.h
  28af0a1bf222ed2a5a87d9e170ef4a46  libiberty/vprintf.c
! 9734987159a21bd63db9b5b76d398b00  libiberty/vsnprintf.c
! 80d3e40cd7aa8d177b588833eed2457e  libiberty/vsprintf.c
  3b03f409fd38f9d543870f21e6d7f5c8  libiberty/waitpid.c
! 65bfb4838ab70121aa81d3927eede960  libiberty/xasprintf.c
  d4edda6072abc54e79d734250756816e  libiberty/xatexit.c
! d4888c4169c863eef3110d144ab60eb0  libiberty/xexit.c
! e1f481640f4dbe030d7e19d1e0ebfc40  libiberty/xmalloc.c
  e52d95644dc6f186070f349a5903ca72  libiberty/xmemdup.c
  4746095b1b67693ab6e78ed72ead1235  libiberty/xstrdup.c
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
! 3c1a8d14811fd6c839cbda811561fe49  libiberty/xstrndup.c
! e1dbec8de216db8128c1df3f58d8b27c  libiberty/xvasprintf.c
! 0688956c6087daab1e0aeb1443d1a436  libitm/ChangeLog
! 7ebc111a310317f8867ef3756d3dc68e  libitm/Makefile.am
! 49881590d13c9e5ad90c78517c55a3e3  libitm/Makefile.in
! b14ab4b7ab2bf2f4eacb6c9ba7de0343  libitm/aatree.cc
! 6c592ac7b9d3afeaddbb4d61a36a0db4  libitm/aatree.h
  724846b555020a9e223c8322082e775a  libitm/acinclude.m4
  c98774b09e6486e6a0818631af2fd088  libitm/aclocal.m4
! 7c45b00f31f360ea6fdcfede501aa1ac  libitm/alloc.cc
! 7f6bd4f038ef15240bf5d2b23ff36aa8  libitm/alloc_c.cc
! 2d539bc0f180dd06efd75487de913868  libitm/alloc_cpp.cc
! 3303afb947cec22a9cba1bf0dbab9be5  libitm/barrier.cc
! 8cf0a2aacc0496a27ddb9590544e3c36  libitm/beginend.cc
! 9507ee16f44e197db94320e94a7a9920  libitm/clone.cc
! 0ad367c2a0ec0f98f7423cf4c87d0865  libitm/common.h
  05ea82fd12c7b4a030b6310b862ff47d  libitm/config.h.in
! fae281c1d9c75040591880c91df64b49  libitm/config/aarch64/sjlj.S
! 257957c9074b3f1bc51e8d413e8b08bc  libitm/config/aarch64/target.h
! 9e21a60a0420316ef957f78ca4b59859  libitm/config/alpha/sjlj.S
! f65f82cc99de51992c53c65afcdcab7b  libitm/config/alpha/target.h
! c2761524c9cce948d25032c71fcf2871  libitm/config/arm/hwcap.cc
! e09acc28a40c55e049ae59d4114519c9  libitm/config/arm/hwcap.h
! f295a16c2456ee892819d59df342218d  libitm/config/arm/sjlj.S
! fa6dd75d0168c18542e5fe957ed6950f  libitm/config/arm/target.h
! 6f9b8680618e2e76ba8afa347ca45102  libitm/config/generic/asmcfi.h
! 8a887d7d16dde7cb3836eb2fa83c8c4b  libitm/config/generic/tls.cc
! 082fff277a5f11241d5d20e329e7ddb8  libitm/config/generic/tls.h
! 230ce2b119f500990fdec1b005eee80a  libitm/config/linux/alpha/futex_bits.h
! f42705a1707131956f8cfa37ebc4cc06  libitm/config/linux/futex.cc
! 89854181f2643551cdfe7c3c52dd2962  libitm/config/linux/futex.h
! b97e676741d1b239a2a8e95c41cf16ba  libitm/config/linux/futex_bits.h
! 55486fba35c72403de5db541dd2e2f83  libitm/config/linux/powerpc/futex_bits.h
! 8c0e676efc74f05e5455299bd30aab10  libitm/config/linux/rwlock.cc
! 4624e3c1c1e31e9bb355b0ee8ebc8501  libitm/config/linux/rwlock.h
! ca1abfa2250e0a03624a233753700e73  libitm/config/linux/sh/futex_bits.h
! d67c83abda0373dafafdc1de3c49a461  libitm/config/linux/sparc/futex_bits.h
! 1a90eb173cb12e5e6a2c4ac1e89dba55  libitm/config/linux/x86/futex_bits.h
! ac2e84be55bdc84bddc0d2db148bbf2f  libitm/config/linux/x86/tls.h
! f4fa4b1ee0ecb464a351e30e433c341b  libitm/config/loongarch/asm.h
! 23c865cd59d48e7284b87e0a73d59b23  libitm/config/loongarch/sjlj.S
! 7da888dada18b52a2d2a2f848873ab38  libitm/config/loongarch/target.h
! 7632b1f53003641e00b7b4ba031854e3  libitm/config/posix/rwlock.cc
! 51f98b574a1f5caf327847da8f583603  libitm/config/posix/rwlock.h
! fe5672a52b985d33277a6dae1763d14b  libitm/config/powerpc/sjlj.S
! 6adb1fbd1e39b927b4c132115bbaeb33  libitm/config/powerpc/target.h
! fd3886b858d81f09319e3afbc9a9f989  libitm/config/riscv/asm.h
! 7cfcbb00128db01df8cc1e0e9b84e175  libitm/config/riscv/sjlj.S
! cae11c92dcc945a446995058e9b3620b  libitm/config/riscv/target.h
! 94dfa22620129d1d60aaccc184c6d13e  libitm/config/s390/sjlj.S
! 2a3664a9289687835e922dff21553f48  libitm/config/s390/target.h
! f298a607520d93a3da738822c416915c  libitm/config/sh/sjlj.S
! 1eb846b3a9483d73d9e9c320e18d1e7c  libitm/config/sh/target.h
! c0982c6c9a727ad99c591ccce93c6f14  libitm/config/sparc/sjlj.S
! dac3feb91c831615f1355ae8de6b756b  libitm/config/sparc/target.h
! 5eaef0f01b620d8e369717805c6e9c58  libitm/config/x86/sjlj.S
! 8063e7e3ee9db848adb221c6d5f46eb6  libitm/config/x86/target.h
! b47650b491399b03bc69d6d4480ed69c  libitm/config/x86/x86_avx.cc
! a115938565bd39fc273afe30cfea1cc6  libitm/config/x86/x86_sse.cc
! 989995ce0fd3c21357d949fc3e926af3  libitm/configure
! c75b863b293812486f3bc46d69871efc  libitm/configure.ac
! 21898e45d355c9c17172a6b6193c3024  libitm/configure.tgt
! 1c72155439045edca6e7a1f8de44a393  libitm/containers.h
! bd9c76a7c7124230d7cf426a2c0c2a31  libitm/dispatch.h
! ee07e0ba06bdb4d1ef3ab2ce45738cbd  libitm/eh_cpp.cc
! aeb355ee296325876b2b4c6cff101d0a  libitm/libitm.h
! 03460f82dbc60d864d63d4ca79024d16  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
! 632e609fed1811c7546f67e986bc1c26  libitm/libitm.texi
! e04d61a2b6d7365f10eb2608a68f28a5  libitm/libitm_i.h
! 2988031d50f90ef448ec1d6ea3f54041  libitm/local.cc
! 304dd1d94be7660e8c06c8d4c3418b11  libitm/local_atomic
! a0a9434aa088b548639451f0bdc85e51  libitm/method-gl.cc
! caaae05f0a6bf79ac8a7ac8654aeee97  libitm/method-ml.cc
! f90d1370246d14c8541ee93d81b68188  libitm/method-serial.cc
! ed7e2cfb0dddc1eb6c3ac80b484b77a5  libitm/query.cc
! 3de61fdfdb32d1afeb3b705ee9e27ccd  libitm/retry.cc
  4835ec70e1fbcd9acd3c280c0060afa4  libitm/testsuite/Makefile.am
! 797cc50d34c62697d9fd84bbc39b5a6b  libitm/testsuite/Makefile.in
! 68916cf6b5db990548ae36b9e4f310c1  libitm/testsuite/config/default.exp
  9ab92f2310c96121666b692e1660d24f  libitm/testsuite/lib/libitm-dg.exp
! c3c936ad66124cc19bfd27a034a0a16a  libitm/testsuite/lib/libitm.exp
! 0c9044d82c848fd023e2575006c3b86b  libitm/testsuite/libitm.c++/c++.exp
  11785412cb94b04ecc293453486ad223  libitm/testsuite/libitm.c++/dropref.C
  d806946f2845368f69a6513f60b085d2  libitm/testsuite/libitm.c++/eh-1.C
  4d185e0f675cc4954831fb956401121c  libitm/testsuite/libitm.c++/eh-2.C
*************** b4e503ecfdccc9f13da8f73eeb6f23a9  libitm
*** 111087,111267 ****
  838bdb8846eac9161e3ffbe553049f2f  libitm/testsuite/libitm.c/simple-2.c
  7ecc8e520a5c494d159cb7571cca7cdc  libitm/testsuite/libitm.c/stackundo.c
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
! a197d6f8af1f2c34ee3acbd225b506dc  libitm/useraction.cc
! 18405e5244b1dc4579b93b5ac7e2fd64  libitm/util.cc
! 2985546fa19f1ff705eaff195223e3a5  libobjc/ChangeLog
! 0f2cc07c6f5697c9ea864715931006d2  libobjc/Makefile.in
! dacc3eacefeae25b7b2440b3744216c3  libobjc/NXConstStr.m
! 1ce3e10a7cd87c690040cc7e049c4771  libobjc/Object.m
! 6e800e223dfd208960949a0932780176  libobjc/Protocol.m
  d5edaeee0d84e4305368367019952ba7  libobjc/README
  dbf36fc59f8e048201543aead57eb206  libobjc/THREADS
! 2820f15dadc208eac5ca987d39c079e5  libobjc/accessors.m
! 8cda34f9ec2da7535bed3d1a70506bc5  libobjc/acinclude.m4
  005cfc1ff705e51549970f72513c195a  libobjc/aclocal.m4
! 11471f8919277abb393490167b00e4b6  libobjc/class.c
  a9245d99d9418e18cecf891d7a93d664  libobjc/config.h.in
! 7df0ab81c3dbc5ba1803ca783e3595d9  libobjc/configure
! 21ac3bfd0456c64e609c9f201410c017  libobjc/configure.ac
! ab95691ed4fd155be76317752d26e9f9  libobjc/encoding.c
! b8e71f9b766125bc67c053612a1f867a  libobjc/error.c
! e7cdbec2b3929f3f55ed150a81946c17  libobjc/exception.c
! fafe89aaebef5cc76d7a9108b43c0fac  libobjc/gc.c
! 6e5425335634e801695fbb1c9ee278e7  libobjc/hash.c
! 788ae8790a98e636d14368367d059c9c  libobjc/init.c
! a02f980b7f69f412860096a857324d79  libobjc/ivars.c
! fa211265b85fcd7d741c65574e202e31  libobjc/libobjc.def
! 4d7702935ee053c3099722bbf9193f21  libobjc/linking.m
! c6060170877201e9687bf514c36d2b50  libobjc/memory.c
! 363af3555dce9effb9996ff779fffadf  libobjc/methods.c
! 8f8554f0b91483434bf3e840123213d0  libobjc/nil_method.c
! d92d61b720eb5e7a220fc954ab31b689  libobjc/objc-foreach.c
  4758c47369f62786c0dcdf45f3397ff7  libobjc/objc-private/README
! f4541f9cde20429c671fe876d2cd247a  libobjc/objc-private/accessors.h
! 395366f228d0f6ed533d74bf3339a67f  libobjc/objc-private/common.h
! bf2a03791dd22ee1ac3d54f635932a49  libobjc/objc-private/error.h
! 453a228657c2b455186f374a468eb8a1  libobjc/objc-private/hash.h
! 99dfca597cfa5c23e701c4635b4b32d2  libobjc/objc-private/module-abi-8.h
! 2d25e6060338ffccd7e2a162e4f388ea  libobjc/objc-private/objc-list.h
! b98cd14377bcc5e5d3a5b5dbe76559bd  libobjc/objc-private/objc-sync.h
! ae55b666b63f7044afc54c9d0afa071f  libobjc/objc-private/protocols.h
! 6554e1cb241856d77a631fea6733293c  libobjc/objc-private/runtime.h
! 2dc6355c44aceb4baf06118b164215a2  libobjc/objc-private/sarray.h
! 63bd5e2316f7dcfcaced34fc1844b026  libobjc/objc-private/selector.h
! 2f53638c34de8275f2d59ab4378775f7  libobjc/objc-sync.c
! 1e1c6714fb26985e8a685bfcfa8052ea  libobjc/objc/NXConstStr.h
! 225be02bef285a289449c066cbb8771c  libobjc/objc/Object.h
! 747a78ef90367a45944956095969bc98  libobjc/objc/Protocol.h
  6a0d7c25fa8ddefde53bbaf36eea5bdf  libobjc/objc/README
! 81a6bf3f766368abfbe672443d3d0596  libobjc/objc/message.h
! f73dc5b4bd6ccb056fedbcc20afbb42e  libobjc/objc/objc-decls.h
! 7ded6d9c3f165db0066984028289b9e4  libobjc/objc/objc-exception.h
! 8e05359d339d716d4144ae85cb58b9b6  libobjc/objc/objc-sync.h
! 61b946a13c79b9f877fb7a0254bf828c  libobjc/objc/objc.h
! 129aa26943257fc1d9f13fc06ee82ad3  libobjc/objc/runtime.h
! 9a649e07b4834d74abf38e15aabde42d  libobjc/objc/thr.h
! 577c23bf78a9b955f7072aae7ef6afcc  libobjc/objects.c
! 66b3776166593fcdae43835864568e05  libobjc/protocols.c
! 92a3b2b27e075a5838a3239374a3e7d0  libobjc/sarray.c
! 4315de5775daa14dcb27acf8981e900b  libobjc/selector.c
! 76858dbd60cea84725adf102503b0caf  libobjc/sendmsg.c
! 07a2d7242871d2ccd937ab58211f029a  libobjc/thr.c
! 9cad92bd677cdd8ae5af820e2bd6b9f6  libphobos/ChangeLog
! 94c5ad2e83438058486ba0c7c2fba0ab  libphobos/Makefile.am
! 138fba343eb20a167ee2f5240bb53f27  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
! f7cfe5a66246284479824917d84e56a9  libphobos/acinclude.m4
  fbb3c30724cb241010afacb0505c53e7  libphobos/aclocal.m4
! 4923b1152206303a26c7dfb87f5de315  libphobos/config.h.in
! 2a7da53393c7ac4e7d7b120f939f4abb  libphobos/configure
! c8692ecfddc51256a49f22096c2c2335  libphobos/configure.ac
! 11ef678118fa0743c5f73d089dfb558b  libphobos/configure.tgt
! 04bef1902aef470aee5ea39c14c9529d  libphobos/d_rules.am
  e4224ccaecb14d942c71d31bef20d78c  libphobos/libdruntime/LICENSE.txt
! 2d7446d51cf4738aad1c8ceb43174a72  libphobos/libdruntime/MERGE
! 81254fb5ae7b143457d008326bd17121  libphobos/libdruntime/Makefile.am
! bd3b673a493041e446122a43e4e4e79d  libphobos/libdruntime/Makefile.in
! 941f40ec43bf28481f06d1b7d7cbebbd  libphobos/libdruntime/__builtins.di
! 1cc41d352c8743dfb6adda9d3d48ac3a  libphobos/libdruntime/__main.di
! b44aed16ff14ea87d1369440ed44a563  libphobos/libdruntime/config/aarch64/switchcontext.S
! 948b796c099d43d20195a4cfc94dc1d3  libphobos/libdruntime/config/arm/switchcontext.S
! c86682aa98adf7983cd8615d4cdd01cd  libphobos/libdruntime/config/common/threadasm.S
! c984bfc62b47640d97e06d9ac9271d7b  libphobos/libdruntime/config/mingw/msvc.c
! bfee7b77c0478e424746dadca9cd01e1  libphobos/libdruntime/config/mingw/switchcontext.S
! 0460790a5cc1fb89e20bff93925bccac  libphobos/libdruntime/config/mips/switchcontext.S
! 2d850358f56938eeaab4f62b8c2da2a6  libphobos/libdruntime/config/powerpc/switchcontext.S
! fab363b330a28f021ddcf724bc24eec3  libphobos/libdruntime/config/s390/get_tls_offset.S
! 3ad6908850983ef2276e9eb3415727b6  libphobos/libdruntime/config/systemz/get_tls_offset.S
! 4f396132568f8a5f83fa9e06654941b3  libphobos/libdruntime/config/x86/switchcontext.S
! 215298202cf9f846b9926177e2797aa7  libphobos/libdruntime/core/atomic.d
! bba877e4f056859d54de1b796d3f8906  libphobos/libdruntime/core/attribute.d
  49d61e2bb179d74c692b97a61a0bd2ff  libphobos/libdruntime/core/bitop.d
  4a82ffb16f497f908bf37f14173450ca  libphobos/libdruntime/core/builtins.d
  46c8a565a874deb70d23572b5b8f97bf  libphobos/libdruntime/core/checkedint.d
! 65888ef4aad1d54fb695240315ae2472  libphobos/libdruntime/core/cpuid.d
! c67e61b22e0cca97ca3f28f74342ccac  libphobos/libdruntime/core/demangle.d
! 068107d7afe04f5cae199f72ac22c830  libphobos/libdruntime/core/exception.d
  456fa1344c86d322f867cb4b1736b33a  libphobos/libdruntime/core/factory.d
  29b15a06fa6567c6eb960bb8f47b97d0  libphobos/libdruntime/core/gc/config.d
  4ef58a3ac2165a7f0cbf25236599b610  libphobos/libdruntime/core/gc/gcinterface.d
  9473dda5fca28fa3b7f32a14603fd3c7  libphobos/libdruntime/core/gc/registry.d
! 83e32709186f3be3aed2df2481ebbf15  libphobos/libdruntime/core/int128.d
  ed27a92c7d3ec4b856b3fa14ff3aee14  libphobos/libdruntime/core/internal/abort.d
! 972eff88ddfab783639d88d07e659067  libphobos/libdruntime/core/internal/array/appending.d
  a787ab6da1f42aa7148e9dd03c831b29  libphobos/libdruntime/core/internal/array/arrayassign.d
! 5cab084624a30629cdb1e9515710e744  libphobos/libdruntime/core/internal/array/capacity.d
  38e927f0c952ad679e5cb6c1cde2c6a9  libphobos/libdruntime/core/internal/array/casting.d
! 356e41b628757d5487dd4703fb0b61a8  libphobos/libdruntime/core/internal/array/comparison.d
! 9d2878e0360c8692490d518ae65aead5  libphobos/libdruntime/core/internal/array/concatenation.d
! e814a0d2c4ed6fadbdd5e5d6e99f58d6  libphobos/libdruntime/core/internal/array/construction.d
! f6d7a276635a19deabc6e577b76d350e  libphobos/libdruntime/core/internal/array/duplication.d
  f8f7c1514ef75305b82a937a1be23449  libphobos/libdruntime/core/internal/array/equality.d
! 3db7ad624aea7c6f2d6581bed9c0040a  libphobos/libdruntime/core/internal/array/operations.d
! 6d09daf95416c263821c0ad310261afe  libphobos/libdruntime/core/internal/array/utils.d
! be79c443a83dd0e1f0ba76076ed48b65  libphobos/libdruntime/core/internal/atomic.d
  87f5099304bb6fa7f4723eb1c7b3aa7d  libphobos/libdruntime/core/internal/attributes.d
! a9542934a22ca3085232cc43feecd6a4  libphobos/libdruntime/core/internal/container/array.d
! 5bc9e156024da400fda515126d9fa893  libphobos/libdruntime/core/internal/container/common.d
  651bcf61fd888da86b453d8a72d84069  libphobos/libdruntime/core/internal/container/hashtab.d
  f70666bdd80bfb970a17a9ed9be599ba  libphobos/libdruntime/core/internal/container/treap.d
  0306fb8236a992e8cd0fd3c0eb09aea7  libphobos/libdruntime/core/internal/convert.d
! fc76afe4810c22b8642cb217c8135d7b  libphobos/libdruntime/core/internal/dassert.d
  963ea5f13b1323723157e4819d600aa2  libphobos/libdruntime/core/internal/destruction.d
  b7a158acc86998b63150c8e8767fff46  libphobos/libdruntime/core/internal/entrypoint.d
  5de3efdd6ac2925e257c2085f3122dce  libphobos/libdruntime/core/internal/gc/bits.d
! 764fc9723caec80af2f38025ff15410d  libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
! 3668f914328046ad5e3f625a95f172ab  libphobos/libdruntime/core/internal/gc/impl/manual/gc.d
! 1df48c32d9a821406ea635dc10cd8540  libphobos/libdruntime/core/internal/gc/impl/proto/gc.d
! 888e40f3b75aef6ff9b05c0d7f899cb7  libphobos/libdruntime/core/internal/gc/os.d
  8725bd40d9847f863beaa7d8376edea3  libphobos/libdruntime/core/internal/gc/pooltable.d
! 2a6f2821592777625ec740c2521223c7  libphobos/libdruntime/core/internal/gc/proxy.d
  57faa146e23e87068997584d8e1944c9  libphobos/libdruntime/core/internal/hash.d
  299e680f03c3ddc13696fd52fc8354c4  libphobos/libdruntime/core/internal/lifetime.d
  37bd48ea66ddb05259c7995f66a87815  libphobos/libdruntime/core/internal/moving.d
! 2f8a9315866964d58842725f62ab38e2  libphobos/libdruntime/core/internal/parseoptions.d
  0ebbb014070d4b7532bfc5ced87a65b9  libphobos/libdruntime/core/internal/postblit.d
! 96f934300549e463061f98ce882e48b1  libphobos/libdruntime/core/internal/qsort.d
! 7ed2adffd54bf24394f997436dbe1420  libphobos/libdruntime/core/internal/spinlock.d
! 1bca667c9be060cf8d91bc2a89d261e1  libphobos/libdruntime/core/internal/string.d
  0e954400ebc20e538cb0df0607daaeca  libphobos/libdruntime/core/internal/switch_.d
! f82a725ae85af45e626df37a4c024966  libphobos/libdruntime/core/internal/traits.d
  8ba91f8fbc8ff1ce39558b645f33f5ef  libphobos/libdruntime/core/internal/utf.d
! 22fe055f41451524e12f35c4d7b2c3bb  libphobos/libdruntime/core/internal/util/array.d
  233370fbd6246580432384701cb2742a  libphobos/libdruntime/core/internal/util/math.d
! d76346e01745208d79420e04ad5ff4e4  libphobos/libdruntime/core/lifetime.d
! bd9dd2b1b7a3d5e29673d463a4c8bc71  libphobos/libdruntime/core/math.d
! cbe8b9e804b321c5888e2c50da9da539  libphobos/libdruntime/core/memory.d
  b6b591257431321f7ee553c9dc818d76  libphobos/libdruntime/core/runtime.d
  94caf334d4b82b52b161e23aec46505d  libphobos/libdruntime/core/simd.d
! f276ebf85ef328a41c5ca86da694d73f  libphobos/libdruntime/core/stdc/assert_.d
  027bd40faf09b13abf5dc94da4aaa176  libphobos/libdruntime/core/stdc/complex.d
! 33eeb5bcdb742fc4553a3ca00c5e36ba  libphobos/libdruntime/core/stdc/config.d
  e73e1e0aaf48227fef16ff41037ecbdd  libphobos/libdruntime/core/stdc/ctype.d
! 03adbd217ce84d91f8f71d674d0395af  libphobos/libdruntime/core/stdc/errno.d
  e91ed8a068db9723b27deb61078c2a0e  libphobos/libdruntime/core/stdc/errno_.c
! b5b0b83e0f4f215341933f213077fe6b  libphobos/libdruntime/core/stdc/fenv.d
  627bd812c57c65e72ca9360911ec5e37  libphobos/libdruntime/core/stdc/float_.d
  7b0fbc4eebf5b3364fd3541f51608b9a  libphobos/libdruntime/core/stdc/inttypes.d
  1a30fd546325cb5ed6fe746ef0c6f995  libphobos/libdruntime/core/stdc/limits.d
! b51a1082520c7feae033856d8ff7feaf  libphobos/libdruntime/core/stdc/locale.d
! f029ce6a586161fe5737356813c7a772  libphobos/libdruntime/core/stdc/math.d
  0527cc19df281c6561cb089ae3887c88  libphobos/libdruntime/core/stdc/signal.d
! bbb95e6e2271306a1ef53794a38b06db  libphobos/libdruntime/core/stdc/stdarg.d
  bf552e1cf2ceeb05e2231ba9b15a4317  libphobos/libdruntime/core/stdc/stddef.d
  aa417eb2941ce05fcee7aecb46b52ef9  libphobos/libdruntime/core/stdc/stdint.d
! 9552a9ae2746248abe46b09ac7c21bd2  libphobos/libdruntime/core/stdc/stdio.d
! 523afc9f8050a3e2804b75c319c8737f  libphobos/libdruntime/core/stdc/stdlib.d
! c2bbd0b7f66068f274cce225f38aa23f  libphobos/libdruntime/core/stdc/string.d
  b1b452c04a088565feada1af815d3ea2  libphobos/libdruntime/core/stdc/tgmath.d
  3f44e53505593c836ad3980244975710  libphobos/libdruntime/core/stdc/time.d
! aba60f3dd813ecdfd13c507b6732cb77  libphobos/libdruntime/core/stdc/wchar_.d
  b1663e1953112eee39a60ee083f81988  libphobos/libdruntime/core/stdc/wctype.d
  a343caf6e115a78beda4a590a00c124b  libphobos/libdruntime/core/stdcpp/allocator.d
  83a1cef26175a49cf10768716683fede  libphobos/libdruntime/core/stdcpp/array.d
  66de5c8df7412ea8d5fa973ed6fdd047  libphobos/libdruntime/core/stdcpp/exception.d
  11e2db1bb8b58d00c9828fe11c5db485  libphobos/libdruntime/core/stdcpp/memory.d
! c42237e1c2e0d5a73f83bca2d569be95  libphobos/libdruntime/core/stdcpp/new_.d
! 6f0c8695e3969c7a759780b1a5ec1fc8  libphobos/libdruntime/core/stdcpp/string.d
  7c1c6a905460a22413803a99a8627604  libphobos/libdruntime/core/stdcpp/string_view.d
  12a17952827821958ee88a65eba6a869  libphobos/libdruntime/core/stdcpp/type_traits.d
  0569b3425bd101daae472163154e504d  libphobos/libdruntime/core/stdcpp/typeinfo.d
--- 121119,121303 ----
  838bdb8846eac9161e3ffbe553049f2f  libitm/testsuite/libitm.c/simple-2.c
  7ecc8e520a5c494d159cb7571cca7cdc  libitm/testsuite/libitm.c/stackundo.c
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
! 415c65b029d6c9382904fd9f2f893f94  libitm/useraction.cc
! 13598dcd213d5c6c5b7a48535ccfbd4f  libitm/util.cc
! 20ceb7d8e3c3c0008ca6c167ab452df1  libobjc/ChangeLog
! f7119799434fc82fe84eb992bca6cc83  libobjc/Makefile.in
! 9ab83dd9e8a6a68b343c271ae31a3070  libobjc/NXConstStr.m
! b77a61027fd5b3f821d0f139f5902c77  libobjc/Object.m
! bb48ec4ead158b0a2933fc9f831d552d  libobjc/Protocol.m
  d5edaeee0d84e4305368367019952ba7  libobjc/README
  dbf36fc59f8e048201543aead57eb206  libobjc/THREADS
! ce41aa5aa944c410c6f78833ce21b893  libobjc/accessors.m
! 3cc1ad8d73093ce814490f0e3d7cbabd  libobjc/acinclude.m4
  005cfc1ff705e51549970f72513c195a  libobjc/aclocal.m4
! bbbe0924269fc042f5cb8e1ac089a7fe  libobjc/class.c
  a9245d99d9418e18cecf891d7a93d664  libobjc/config.h.in
! 9b45035ec61a96a771e521f9944b0e1d  libobjc/configure
! c9410652b397aecfc8b4b76e1c7d1167  libobjc/configure.ac
! 96d2a6466e757a572c15cf270a603b87  libobjc/encoding.c
! 2ff1ddb92f9a7d3b4609d50ab97c2280  libobjc/error.c
! 3d57fc6a786cdebd81dadefb0667e226  libobjc/exception.c
! 111aef132bc66633b6dd59d4cd73aa1b  libobjc/gc.c
! c04130ff14476295ae0c80a2bdc4f854  libobjc/hash.c
! 171d010ec2d8f2d4646740582dfadc4f  libobjc/init.c
! d161c4e005da8bd7573189e50bbbfa08  libobjc/ivars.c
! 9f66367efb4a44f1b35f70f36964540b  libobjc/libobjc.def
! 614727ce61c5cbf7eedae0d4302eef86  libobjc/linking.m
! 399f635e1fb1828ed619a986a537bc18  libobjc/memory.c
! 3b54f378eed972bf0b97a7b965933566  libobjc/methods.c
! 8f8e3dce78e9755884d55177bf517535  libobjc/nil_method.c
! f444e9fae87cc6ed696f327039b12ab9  libobjc/objc-foreach.c
  4758c47369f62786c0dcdf45f3397ff7  libobjc/objc-private/README
! 44d6b3118949f123b6236ee686f84ec0  libobjc/objc-private/accessors.h
! 4d71039b09c6d2d820de2192a1da41df  libobjc/objc-private/common.h
! 85400852099eee70960f0820018ae5b8  libobjc/objc-private/error.h
! 6a5540202cd137f41b3168fadcc648e7  libobjc/objc-private/hash.h
! 80508cf8df4b85a76fa94290e322efde  libobjc/objc-private/module-abi-8.h
! e16b6d0433917e7aee23503e38ccacb9  libobjc/objc-private/objc-list.h
! 9a30a4914990135ca6b20c07ab536957  libobjc/objc-private/objc-sync.h
! 08fc0d3b2c487610ca54baec31fba42a  libobjc/objc-private/protocols.h
! 3afe08ca28fffd551045ce8d839b4b4a  libobjc/objc-private/runtime.h
! 9f0f8e7835b7b0a9662135a4f05cab48  libobjc/objc-private/sarray.h
! a53562e845a71996c9687bdbdb940474  libobjc/objc-private/selector.h
! 641470cd2ad13807b4a191553638b38c  libobjc/objc-sync.c
! acb5e116a66232e4ae53b129983b1182  libobjc/objc/NXConstStr.h
! e8e9111f872a0cee66d2628a7dfdd7ba  libobjc/objc/Object.h
! abf5bd9816511991cf918e0a582f2836  libobjc/objc/Protocol.h
  6a0d7c25fa8ddefde53bbaf36eea5bdf  libobjc/objc/README
! 891f96464a5d45d94a6fd7123f162db2  libobjc/objc/message.h
! e34ebe8871ddef9d8760d1e87ea090d6  libobjc/objc/objc-decls.h
! f83e2785f73af08f15120d3452c517b3  libobjc/objc/objc-exception.h
! 3d8aa53d56c6eff6d2543729df11741c  libobjc/objc/objc-sync.h
! 9b4b737447604a4d31312058692560a5  libobjc/objc/objc.h
! 028ed29d6a67ed651e91c52b19850dc7  libobjc/objc/runtime.h
! 18cfdca5ab9bf703d5622cbb89f58a01  libobjc/objc/thr.h
! 356821cb19106904b6d9433991f76b70  libobjc/objects.c
! 4caf4b87d8dfafd75ae919b8ccdb1c3e  libobjc/protocols.c
! 1a11a2674d3c52244c5e32f998a4d196  libobjc/sarray.c
! 1342bdc4c975033299dcf770cb6db3b8  libobjc/selector.c
! 0831a1b1e34ad2ca26cdb0bdf2af08c8  libobjc/sendmsg.c
! 4eb8a2e0c7b96a7c72c3693f47580e5f  libobjc/thr.c
! a6c3e07457d089a82db158a7c55a876f  libphobos/ChangeLog
! 8c232dd08160212c999236421a5c30cf  libphobos/Makefile.am
! 45e0b5a1db9a9605b698b5db9ecbf039  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
! bd6b1e55a3e7b6ed3d0c27f22d7aacda  libphobos/acinclude.m4
  fbb3c30724cb241010afacb0505c53e7  libphobos/aclocal.m4
! 0c33f8a64a5c7307de4f56c482966852  libphobos/config.h.in
! ba8b47ae187f9bd2368a1ecc702baa9e  libphobos/configure
! 56e7ee603571d143c7dfdc3ae487c4e8  libphobos/configure.ac
! 92053a3816debf9c1a547e84d8aebffc  libphobos/configure.tgt
! 1800f195374bf35719e80242f80e953a  libphobos/d_rules.am
  e4224ccaecb14d942c71d31bef20d78c  libphobos/libdruntime/LICENSE.txt
! 9213651de0ab086aa7193a8e1286527d  libphobos/libdruntime/MERGE
! c531bd01bf373bb780ce90f499d40138  libphobos/libdruntime/Makefile.am
! 2391ff5c22b9e34a824ec7dbce24693b  libphobos/libdruntime/Makefile.in
! 6fd7f13320334754fe7a197fa80d446e  libphobos/libdruntime/__builtins.di
! 72ac519aea57510bb108c109680d3e1c  libphobos/libdruntime/__main.di
! c5bbdcac30bdb8b105262191ab354933  libphobos/libdruntime/config/aarch64/switchcontext.S
! 60163ef4ac7809662d68150fcefc3b16  libphobos/libdruntime/config/arm/switchcontext.S
! 182f1052fd2a1ba1d9292cd9e9c2ab52  libphobos/libdruntime/config/common/threadasm.S
! 75ddff667d86a78f0fc694c423dea1e2  libphobos/libdruntime/config/loongarch/switchcontext.S
! a00dbdca6a0aa2a33d1979725a9739c2  libphobos/libdruntime/config/mingw/msvc.c
! 5ecbec09c751de392daec61cbc5f4fab  libphobos/libdruntime/config/mingw/switchcontext.S
! e16e4266b7fbbb9283ed3cf8baf81392  libphobos/libdruntime/config/mips/switchcontext.S
! 88e51fb8c5f71e6950313bc6aeba3ff1  libphobos/libdruntime/config/powerpc/switchcontext.S
! 7def293a41dd1a376d08d90f2970860d  libphobos/libdruntime/config/s390/get_tls_offset.S
! d011365126320f08f419c96481e20406  libphobos/libdruntime/config/systemz/get_tls_offset.S
! 84757cc3d7a4194f21b7b4f678348a0e  libphobos/libdruntime/config/x86/switchcontext.S
! 206534cdc7f180e23d651e0f346ef6d6  libphobos/libdruntime/core/atomic.d
! 146142b76ed307dc2d9b5a316ea71ff0  libphobos/libdruntime/core/attribute.d
  49d61e2bb179d74c692b97a61a0bd2ff  libphobos/libdruntime/core/bitop.d
  4a82ffb16f497f908bf37f14173450ca  libphobos/libdruntime/core/builtins.d
  46c8a565a874deb70d23572b5b8f97bf  libphobos/libdruntime/core/checkedint.d
! 70aebaec9e457af4ce2c2fcede99ddae  libphobos/libdruntime/core/cpuid.d
! a23aad11e11ac320f0604d788ee05003  libphobos/libdruntime/core/demangle.d
! 0dfd7378c6db36bc6ec25cea3ced4038  libphobos/libdruntime/core/exception.d
  456fa1344c86d322f867cb4b1736b33a  libphobos/libdruntime/core/factory.d
  29b15a06fa6567c6eb960bb8f47b97d0  libphobos/libdruntime/core/gc/config.d
  4ef58a3ac2165a7f0cbf25236599b610  libphobos/libdruntime/core/gc/gcinterface.d
  9473dda5fca28fa3b7f32a14603fd3c7  libphobos/libdruntime/core/gc/registry.d
! 35bb67fcbb42398aa3bfc42868b9fa17  libphobos/libdruntime/core/int128.d
  ed27a92c7d3ec4b856b3fa14ff3aee14  libphobos/libdruntime/core/internal/abort.d
! 13f8840263a454415b1813f4306f2aff  libphobos/libdruntime/core/internal/array/appending.d
  a787ab6da1f42aa7148e9dd03c831b29  libphobos/libdruntime/core/internal/array/arrayassign.d
! a8e988793db0c50993d68d20db7e69bd  libphobos/libdruntime/core/internal/array/capacity.d
  38e927f0c952ad679e5cb6c1cde2c6a9  libphobos/libdruntime/core/internal/array/casting.d
! 1905da04a68de992ae7b35c7b48368ba  libphobos/libdruntime/core/internal/array/comparison.d
! 2a93e90bbc23aa0e33b4fb07c3c6f4d7  libphobos/libdruntime/core/internal/array/concatenation.d
! dc89f7ec62ec74c3d9a28bb3f6b19af4  libphobos/libdruntime/core/internal/array/construction.d
! d1ea0e77ef862ca8a0af1ca907a96480  libphobos/libdruntime/core/internal/array/duplication.d
  f8f7c1514ef75305b82a937a1be23449  libphobos/libdruntime/core/internal/array/equality.d
! 819931c48dd7002a422cf0408399c556  libphobos/libdruntime/core/internal/array/operations.d
! 351169c0017fd48912dbeda526a27846  libphobos/libdruntime/core/internal/array/utils.d
! ed786a25dfde135655fcc8a36db81e8a  libphobos/libdruntime/core/internal/atomic.d
  87f5099304bb6fa7f4723eb1c7b3aa7d  libphobos/libdruntime/core/internal/attributes.d
! 1d80eef1b17b9b4ab7073ddd62d9e422  libphobos/libdruntime/core/internal/container/array.d
! 196c764b6fe4523d0c4585b877b4aaa0  libphobos/libdruntime/core/internal/container/common.d
  651bcf61fd888da86b453d8a72d84069  libphobos/libdruntime/core/internal/container/hashtab.d
  f70666bdd80bfb970a17a9ed9be599ba  libphobos/libdruntime/core/internal/container/treap.d
  0306fb8236a992e8cd0fd3c0eb09aea7  libphobos/libdruntime/core/internal/convert.d
! e7e655e35e9805f2deb65e7230f4f6ee  libphobos/libdruntime/core/internal/dassert.d
  963ea5f13b1323723157e4819d600aa2  libphobos/libdruntime/core/internal/destruction.d
  b7a158acc86998b63150c8e8767fff46  libphobos/libdruntime/core/internal/entrypoint.d
  5de3efdd6ac2925e257c2085f3122dce  libphobos/libdruntime/core/internal/gc/bits.d
! 49cc90f532d437dc649abbbd5bbd63e1  libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
! 84d178aa0956b8959954507f60b40a75  libphobos/libdruntime/core/internal/gc/impl/manual/gc.d
! 58b402700499efd8f65a8cdd7e1e44ba  libphobos/libdruntime/core/internal/gc/impl/proto/gc.d
! 3e04dfec989e7d82fda7f7920db846ee  libphobos/libdruntime/core/internal/gc/os.d
  8725bd40d9847f863beaa7d8376edea3  libphobos/libdruntime/core/internal/gc/pooltable.d
! 7375ec166484c4206c6eaf0e926fcbed  libphobos/libdruntime/core/internal/gc/proxy.d
  57faa146e23e87068997584d8e1944c9  libphobos/libdruntime/core/internal/hash.d
  299e680f03c3ddc13696fd52fc8354c4  libphobos/libdruntime/core/internal/lifetime.d
  37bd48ea66ddb05259c7995f66a87815  libphobos/libdruntime/core/internal/moving.d
! 1405d81e93ea7e0349489215e40ec0f4  libphobos/libdruntime/core/internal/newaa.d
! c5b56e2fe48946d4cef0ea7bbd4b9193  libphobos/libdruntime/core/internal/parseoptions.d
  0ebbb014070d4b7532bfc5ced87a65b9  libphobos/libdruntime/core/internal/postblit.d
! 37a7b02908553f326b63b84872281042  libphobos/libdruntime/core/internal/qsort.d
! eb7626a08581a41afe77af77f3194a7a  libphobos/libdruntime/core/internal/spinlock.d
! 6e631dc541aac8d0c60919703498eb46  libphobos/libdruntime/core/internal/string.d
  0e954400ebc20e538cb0df0607daaeca  libphobos/libdruntime/core/internal/switch_.d
! d424168d51fd3c547c006fcf823e6240  libphobos/libdruntime/core/internal/traits.d
  8ba91f8fbc8ff1ce39558b645f33f5ef  libphobos/libdruntime/core/internal/utf.d
! 97a9cd2ebb0eaccf2946c14d4015ef93  libphobos/libdruntime/core/internal/util/array.d
  233370fbd6246580432384701cb2742a  libphobos/libdruntime/core/internal/util/math.d
! c4d2c8819aacb2a15f08b12dfd19b1cc  libphobos/libdruntime/core/interpolation.d
! 763bfeea7774bd6e02c87a322a961410  libphobos/libdruntime/core/lifetime.d
! 59a885b29a1d35b8c88198114cea1937  libphobos/libdruntime/core/math.d
! f70e69af8ba6647839f01fb9a998cec0  libphobos/libdruntime/core/memory.d
  b6b591257431321f7ee553c9dc818d76  libphobos/libdruntime/core/runtime.d
  94caf334d4b82b52b161e23aec46505d  libphobos/libdruntime/core/simd.d
! 3969cc0b26e9202c40510bda687cd5f1  libphobos/libdruntime/core/stdc/assert_.d
  027bd40faf09b13abf5dc94da4aaa176  libphobos/libdruntime/core/stdc/complex.d
! 003dbb7810e3ca364f0e32b1bea89e86  libphobos/libdruntime/core/stdc/config.d
  e73e1e0aaf48227fef16ff41037ecbdd  libphobos/libdruntime/core/stdc/ctype.d
! d60774dc197b153746d401c68883291b  libphobos/libdruntime/core/stdc/errno.d
  e91ed8a068db9723b27deb61078c2a0e  libphobos/libdruntime/core/stdc/errno_.c
! 12b84280ca25f7afc452be78a5f4f430  libphobos/libdruntime/core/stdc/fenv.d
  627bd812c57c65e72ca9360911ec5e37  libphobos/libdruntime/core/stdc/float_.d
  7b0fbc4eebf5b3364fd3541f51608b9a  libphobos/libdruntime/core/stdc/inttypes.d
  1a30fd546325cb5ed6fe746ef0c6f995  libphobos/libdruntime/core/stdc/limits.d
! 1ec5e1d4f9cc5f454f6885ae47882e5b  libphobos/libdruntime/core/stdc/locale.d
! d900ccaf4ec45e5968f1e14a27858ebc  libphobos/libdruntime/core/stdc/math.d
  0527cc19df281c6561cb089ae3887c88  libphobos/libdruntime/core/stdc/signal.d
! 65a0d8a9876486120150abd25cc1d969  libphobos/libdruntime/core/stdc/stdarg.d
! f5a73dc83211fe19a165d41c83aee40c  libphobos/libdruntime/core/stdc/stdatomic.d
  bf552e1cf2ceeb05e2231ba9b15a4317  libphobos/libdruntime/core/stdc/stddef.d
  aa417eb2941ce05fcee7aecb46b52ef9  libphobos/libdruntime/core/stdc/stdint.d
! 9bfc8d1ae8783255a9090fa5077961c7  libphobos/libdruntime/core/stdc/stdio.d
! a547660b8d867bd1dc36f738792294df  libphobos/libdruntime/core/stdc/stdlib.d
! 0552522717140740fe9a502700016f3a  libphobos/libdruntime/core/stdc/string.d
  b1b452c04a088565feada1af815d3ea2  libphobos/libdruntime/core/stdc/tgmath.d
  3f44e53505593c836ad3980244975710  libphobos/libdruntime/core/stdc/time.d
! 05fe40f4e99fbfccd6872b16ff834442  libphobos/libdruntime/core/stdc/wchar_.d
  b1663e1953112eee39a60ee083f81988  libphobos/libdruntime/core/stdc/wctype.d
  a343caf6e115a78beda4a590a00c124b  libphobos/libdruntime/core/stdcpp/allocator.d
  83a1cef26175a49cf10768716683fede  libphobos/libdruntime/core/stdcpp/array.d
  66de5c8df7412ea8d5fa973ed6fdd047  libphobos/libdruntime/core/stdcpp/exception.d
  11e2db1bb8b58d00c9828fe11c5db485  libphobos/libdruntime/core/stdcpp/memory.d
! 334d484af257d8cdc0f91f9d4a587256  libphobos/libdruntime/core/stdcpp/new_.d
! 981331913ea0755c4c8dd8e44746ccf4  libphobos/libdruntime/core/stdcpp/string.d
  7c1c6a905460a22413803a99a8627604  libphobos/libdruntime/core/stdcpp/string_view.d
  12a17952827821958ee88a65eba6a869  libphobos/libdruntime/core/stdcpp/type_traits.d
  0569b3425bd101daae472163154e504d  libphobos/libdruntime/core/stdcpp/typeinfo.d
*************** c42237e1c2e0d5a73f83bca2d569be95  libpho
*** 111269,111277 ****
  f6303bba4269a36c93ec5592d2096be9  libphobos/libdruntime/core/stdcpp/vector.d
  bf7620793265072a86a264afc1aa5e71  libphobos/libdruntime/core/stdcpp/xutility.d
  fbde46456ccf791794e8a05ff5e2514e  libphobos/libdruntime/core/sync/barrier.d
! ce0724b2cd3ab5547b6347f4ec84c860  libphobos/libdruntime/core/sync/condition.d
  32e65cd032b692a0bc7ef837d9b288e8  libphobos/libdruntime/core/sync/config.d
! b0b7816a914ef20ee57eb6e87494489e  libphobos/libdruntime/core/sync/event.d
  639f1741cd8b67f88b45de6877ebaf28  libphobos/libdruntime/core/sync/exception.d
  d8d35215eb69a255e73ec913bc1d1daa  libphobos/libdruntime/core/sync/mutex.d
  9d0c31c030496644e123ff3169d29034  libphobos/libdruntime/core/sync/package.d
--- 121305,121313 ----
  f6303bba4269a36c93ec5592d2096be9  libphobos/libdruntime/core/stdcpp/vector.d
  bf7620793265072a86a264afc1aa5e71  libphobos/libdruntime/core/stdcpp/xutility.d
  fbde46456ccf791794e8a05ff5e2514e  libphobos/libdruntime/core/sync/barrier.d
! d937186cf7d24ca8fbf0c754e14a4132  libphobos/libdruntime/core/sync/condition.d
  32e65cd032b692a0bc7ef837d9b288e8  libphobos/libdruntime/core/sync/config.d
! de54d1c941d35b5a88abb448e9ddad59  libphobos/libdruntime/core/sync/event.d
  639f1741cd8b67f88b45de6877ebaf28  libphobos/libdruntime/core/sync/exception.d
  d8d35215eb69a255e73ec913bc1d1daa  libphobos/libdruntime/core/sync/mutex.d
  9d0c31c030496644e123ff3169d29034  libphobos/libdruntime/core/sync/package.d
*************** c4670d2d6c9210cd8b63dd16ea2d4c7e  libpho
*** 111327,111337 ****
  894ff2238ebbebe3242c4209a893c05b  libphobos/libdruntime/core/sys/dragonflybsd/sys/socket.d
  1edd21f71df6ed90f611f5f352b3166c  libphobos/libdruntime/core/sys/dragonflybsd/sys/sysctl.d
  f14294df112fde328fa8d60fe9777a4c  libphobos/libdruntime/core/sys/dragonflybsd/time.d
! a9f7b4611236521de8cc25b6dc127f1a  libphobos/libdruntime/core/sys/elf/package.d
  bd301144c6d0d322af4d639445a1ea4d  libphobos/libdruntime/core/sys/freebsd/config.d
  fdbaf03147cfe71d5470a4e029044a7c  libphobos/libdruntime/core/sys/freebsd/dlfcn.d
  af280329e0c803d82636283b14c46642  libphobos/libdruntime/core/sys/freebsd/err.d
  380100960f334f1ed62e46fcde0154f3  libphobos/libdruntime/core/sys/freebsd/execinfo.d
  307b5921875f2667f8c2a0195d46589e  libphobos/libdruntime/core/sys/freebsd/netinet/in_.d
  eed1afcf0c9c1f7170550c80d4c1a294  libphobos/libdruntime/core/sys/freebsd/pthread_np.d
  ef7226f644352e61dd81ad370cf837fc  libphobos/libdruntime/core/sys/freebsd/stdlib.d
--- 121363,121376 ----
  894ff2238ebbebe3242c4209a893c05b  libphobos/libdruntime/core/sys/dragonflybsd/sys/socket.d
  1edd21f71df6ed90f611f5f352b3166c  libphobos/libdruntime/core/sys/dragonflybsd/sys/sysctl.d
  f14294df112fde328fa8d60fe9777a4c  libphobos/libdruntime/core/sys/dragonflybsd/time.d
! d81de96f2f37b7ebcde77ba62486cb0a  libphobos/libdruntime/core/sys/elf/package.d
  bd301144c6d0d322af4d639445a1ea4d  libphobos/libdruntime/core/sys/freebsd/config.d
  fdbaf03147cfe71d5470a4e029044a7c  libphobos/libdruntime/core/sys/freebsd/dlfcn.d
  af280329e0c803d82636283b14c46642  libphobos/libdruntime/core/sys/freebsd/err.d
  380100960f334f1ed62e46fcde0154f3  libphobos/libdruntime/core/sys/freebsd/execinfo.d
+ b9d71621d744e28f5408aca3599042ef  libphobos/libdruntime/core/sys/freebsd/ifaddrs.d
+ 7d1694b6a4bd9cfd3cff0e4750662b1d  libphobos/libdruntime/core/sys/freebsd/net/if_.d
+ 0f81fd20e1c8f6bfe31f9d11013b7e8e  libphobos/libdruntime/core/sys/freebsd/net/if_dl.d
  307b5921875f2667f8c2a0195d46589e  libphobos/libdruntime/core/sys/freebsd/netinet/in_.d
  eed1afcf0c9c1f7170550c80d4c1a294  libphobos/libdruntime/core/sys/freebsd/pthread_np.d
  ef7226f644352e61dd81ad370cf837fc  libphobos/libdruntime/core/sys/freebsd/stdlib.d
*************** d2880e9391595d51528eb24f44a12446  libpho
*** 111347,111382 ****
  3438f02ecb73e3e9a85756b150a51b74  libphobos/libdruntime/core/sys/freebsd/sys/link_elf.d
  b5482e757cf68b7cab783fb27ff7e8dc  libphobos/libdruntime/core/sys/freebsd/sys/mman.d
  35461fcb8e8d6d5134771fd6e623e2ef  libphobos/libdruntime/core/sys/freebsd/sys/mount.d
  2fd5d8f5c454e4d0236e0c6b4076b3f3  libphobos/libdruntime/core/sys/freebsd/sys/sysctl.d
  7580b3a7ee4945c8401ff9ad2b1eb5d8  libphobos/libdruntime/core/sys/freebsd/time.d
  58ce9c60b279b1d219d3f44f0c062f3e  libphobos/libdruntime/core/sys/freebsd/unistd.d
  2e58042b40b06181daf7cb32b0d0b3d6  libphobos/libdruntime/core/sys/linux/config.d
! 9cd15158b80291c8b120e314a27f4099  libphobos/libdruntime/core/sys/linux/dlfcn.d
  9772302af1ce910f5d9341c067908b67  libphobos/libdruntime/core/sys/linux/elf.d
! 699aabd903b41f2a73bee2c26d91d753  libphobos/libdruntime/core/sys/linux/epoll.d
  d43645ebdb4cb7038c7eadc1216f334d  libphobos/libdruntime/core/sys/linux/err.d
  91d5d2c96df93f0773d9d91c761f449d  libphobos/libdruntime/core/sys/linux/errno.d
  a56839efe74c71ab60c49ebf16ca7b69  libphobos/libdruntime/core/sys/linux/execinfo.d
  3e71c86a817e8dbe949840fc092ca007  libphobos/libdruntime/core/sys/linux/fcntl.d
  4bac52a5767aca36f84a842fe4c8e497  libphobos/libdruntime/core/sys/linux/fs.d
! 014a38921348f494fc0e1f1f0abd50dd  libphobos/libdruntime/core/sys/linux/ifaddrs.d
  46564c790cc7d63f5336608262fe45b7  libphobos/libdruntime/core/sys/linux/io_uring.d
! 1a86ebde280651186aaa2563cd9ff437  libphobos/libdruntime/core/sys/linux/link.d
  12fb5b8d3834b7b9da4b7c2158d39f82  libphobos/libdruntime/core/sys/linux/netinet/in_.d
  ef4ca38842cf7000f36294af3547a28a  libphobos/libdruntime/core/sys/linux/netinet/tcp.d
! fba37e5bedd8f3c142a0d89f67c5e54a  libphobos/libdruntime/core/sys/linux/perf_event.d
  0099ef95503090008310f7cfe82dad3a  libphobos/libdruntime/core/sys/linux/sched.d
  7931aab43c1ac5e2755373b67d411863  libphobos/libdruntime/core/sys/linux/stdio.d
  5865ee9cfca7ce97fb6444080e379440  libphobos/libdruntime/core/sys/linux/string.d
! 28da6eda5c615291a6aac7a619f20f78  libphobos/libdruntime/core/sys/linux/sys/auxv.d
! 56737321bee30fadc9a6b5c154d55009  libphobos/libdruntime/core/sys/linux/sys/eventfd.d
  d24094280e490194dedf87b353ff18bb  libphobos/libdruntime/core/sys/linux/sys/file.d
! 35ce0fd84a9863a4f16f3bb357ee8f84  libphobos/libdruntime/core/sys/linux/sys/inotify.d
! d8d6558e086283db24e5b4149733aeb0  libphobos/libdruntime/core/sys/linux/sys/mman.d
  a4bc2500eb1954b8041afbfdf0c1c624  libphobos/libdruntime/core/sys/linux/sys/prctl.d
  f80d0aef18c502a635390c78983541dd  libphobos/libdruntime/core/sys/linux/sys/procfs.d
  be8020cc22c39cfb05963e86a584d8c6  libphobos/libdruntime/core/sys/linux/sys/signalfd.d
! 00be1093b809dc09200b03f711033c00  libphobos/libdruntime/core/sys/linux/sys/socket.d
  86a89527d97460eaf8460e185ad3f275  libphobos/libdruntime/core/sys/linux/sys/sysinfo.d
  7a54339243710cbfd79bde1f56a32e73  libphobos/libdruntime/core/sys/linux/sys/time.d
  3050f0352c0814a99d50b30404d55e4a  libphobos/libdruntime/core/sys/linux/sys/xattr.d
--- 121386,121427 ----
  3438f02ecb73e3e9a85756b150a51b74  libphobos/libdruntime/core/sys/freebsd/sys/link_elf.d
  b5482e757cf68b7cab783fb27ff7e8dc  libphobos/libdruntime/core/sys/freebsd/sys/mman.d
  35461fcb8e8d6d5134771fd6e623e2ef  libphobos/libdruntime/core/sys/freebsd/sys/mount.d
+ 8100d016c2e3c3dbe2942f3c70f8aa18  libphobos/libdruntime/core/sys/freebsd/sys/socket.d
  2fd5d8f5c454e4d0236e0c6b4076b3f3  libphobos/libdruntime/core/sys/freebsd/sys/sysctl.d
+ a0652e8ab6c7bebf06553fca2458400a  libphobos/libdruntime/core/sys/freebsd/sys/types.d
  7580b3a7ee4945c8401ff9ad2b1eb5d8  libphobos/libdruntime/core/sys/freebsd/time.d
  58ce9c60b279b1d219d3f44f0c062f3e  libphobos/libdruntime/core/sys/freebsd/unistd.d
  2e58042b40b06181daf7cb32b0d0b3d6  libphobos/libdruntime/core/sys/linux/config.d
! 24939ec8eecd1b249cedf4ecdae79cdd  libphobos/libdruntime/core/sys/linux/dlfcn.d
  9772302af1ce910f5d9341c067908b67  libphobos/libdruntime/core/sys/linux/elf.d
! dd35d5ec968968280acb0976353f23b0  libphobos/libdruntime/core/sys/linux/epoll.d
  d43645ebdb4cb7038c7eadc1216f334d  libphobos/libdruntime/core/sys/linux/err.d
  91d5d2c96df93f0773d9d91c761f449d  libphobos/libdruntime/core/sys/linux/errno.d
  a56839efe74c71ab60c49ebf16ca7b69  libphobos/libdruntime/core/sys/linux/execinfo.d
  3e71c86a817e8dbe949840fc092ca007  libphobos/libdruntime/core/sys/linux/fcntl.d
  4bac52a5767aca36f84a842fe4c8e497  libphobos/libdruntime/core/sys/linux/fs.d
! 4927c381a4a9c21cfb5e6bec15ea1e1b  libphobos/libdruntime/core/sys/linux/ifaddrs.d
! 56de0e501a71a8f46aaec7901998444b  libphobos/libdruntime/core/sys/linux/input.d
! 52df7c34b43031f9c752b55d36015d2a  libphobos/libdruntime/core/sys/linux/input_event_codes.d
  46564c790cc7d63f5336608262fe45b7  libphobos/libdruntime/core/sys/linux/io_uring.d
! fc261411d8aef7ee816116115d19a256  libphobos/libdruntime/core/sys/linux/link.d
! ef8603d93023778c9a704c8c96f513d7  libphobos/libdruntime/core/sys/linux/linux/if_arp.d
! 11cb68a053083c4e64d294dd92813bef  libphobos/libdruntime/core/sys/linux/linux/if_packet.d
  12fb5b8d3834b7b9da4b7c2158d39f82  libphobos/libdruntime/core/sys/linux/netinet/in_.d
  ef4ca38842cf7000f36294af3547a28a  libphobos/libdruntime/core/sys/linux/netinet/tcp.d
! 352822d08e8c64dafff0c40595183961  libphobos/libdruntime/core/sys/linux/perf_event.d
  0099ef95503090008310f7cfe82dad3a  libphobos/libdruntime/core/sys/linux/sched.d
  7931aab43c1ac5e2755373b67d411863  libphobos/libdruntime/core/sys/linux/stdio.d
  5865ee9cfca7ce97fb6444080e379440  libphobos/libdruntime/core/sys/linux/string.d
! ee7a0de6e2861775d2d754c5ac23bffb  libphobos/libdruntime/core/sys/linux/sys/auxv.d
! 0df34c56bc25c8f26c78e08c66d13cf8  libphobos/libdruntime/core/sys/linux/sys/eventfd.d
  d24094280e490194dedf87b353ff18bb  libphobos/libdruntime/core/sys/linux/sys/file.d
! af70036400fa664c14befdea4312799d  libphobos/libdruntime/core/sys/linux/sys/inotify.d
! 9a79d98834ca9d0b3bd6199520b99f4d  libphobos/libdruntime/core/sys/linux/sys/mman.d
  a4bc2500eb1954b8041afbfdf0c1c624  libphobos/libdruntime/core/sys/linux/sys/prctl.d
  f80d0aef18c502a635390c78983541dd  libphobos/libdruntime/core/sys/linux/sys/procfs.d
  be8020cc22c39cfb05963e86a584d8c6  libphobos/libdruntime/core/sys/linux/sys/signalfd.d
! f0914dd1a54b0ff2aee44bf97196d8ac  libphobos/libdruntime/core/sys/linux/sys/socket.d
  86a89527d97460eaf8460e185ad3f275  libphobos/libdruntime/core/sys/linux/sys/sysinfo.d
  7a54339243710cbfd79bde1f56a32e73  libphobos/libdruntime/core/sys/linux/sys/time.d
  3050f0352c0814a99d50b30404d55e4a  libphobos/libdruntime/core/sys/linux/sys/xattr.d
*************** be8020cc22c39cfb05963e86a584d8c6  libpho
*** 111384,111389 ****
--- 121429,121435 ----
  51b5b6cdb4decd39c003dd6fcd9216ce  libphobos/libdruntime/core/sys/linux/time.d
  3cc075f55b6c637e3edb96ab0b0dd212  libphobos/libdruntime/core/sys/linux/timerfd.d
  8b7729333b2e7c137f3d4a1e07783823  libphobos/libdruntime/core/sys/linux/tipc.d
+ a8bd53389fa93de3a4d12b5d9e5a733d  libphobos/libdruntime/core/sys/linux/uinput.d
  8f1a360b4a393855fca0731772e2fbee  libphobos/libdruntime/core/sys/linux/unistd.d
  1b582b30d3653f119276cadc05ee72d8  libphobos/libdruntime/core/sys/netbsd/dlfcn.d
  dfd28b5ab076802f136129647195c782  libphobos/libdruntime/core/sys/netbsd/err.d
*************** ed254802fe236c52abe7ec9ebf7f8f79  libpho
*** 111416,111435 ****
  9ef4589d2a7508496db59af7ba4641ab  libphobos/libdruntime/core/sys/openbsd/sys/mman.d
  b4bd052f0e8e57db0716f807263ad759  libphobos/libdruntime/core/sys/openbsd/sys/sysctl.d
  26fdce9d3769cf37bf38b5ada08836f3  libphobos/libdruntime/core/sys/openbsd/time.d
! 475e7db371c2520012c6b29906055ad7  libphobos/libdruntime/core/sys/openbsd/unistd.d
  c19da98e25834b2fc1c764a437973bf8  libphobos/libdruntime/core/sys/posix/aio.d
  d2d580de88e21c5ff2e144828e88cc50  libphobos/libdruntime/core/sys/posix/arpa/inet.d
  753c44210c9c47befaf944347649165f  libphobos/libdruntime/core/sys/posix/config.d
  77222df1174ce1bf824da174dea45def  libphobos/libdruntime/core/sys/posix/dirent.d
! ed8af9667c4240a9d3242905b226f02d  libphobos/libdruntime/core/sys/posix/dlfcn.d
! 15b8eb105467400bffb18e23687a1f97  libphobos/libdruntime/core/sys/posix/fcntl.d
  702d6944ce1feced53f524d8c6410bae  libphobos/libdruntime/core/sys/posix/grp.d
  3b65fc6ea1e8b95dbe86c5d20e65f522  libphobos/libdruntime/core/sys/posix/iconv.d
  67f194a897054ed6b4b0ec07e3764a5e  libphobos/libdruntime/core/sys/posix/inttypes.d
  81dd20c53642e5d32550aab3d366f157  libphobos/libdruntime/core/sys/posix/libgen.d
  f872163f7db8d6c4044ed0ec34497240  libphobos/libdruntime/core/sys/posix/locale.d
  41f755d1e19890c74530b6acc9c193eb  libphobos/libdruntime/core/sys/posix/mqueue.d
! c52e1b57a6c9a7e6c61030140d29fb1e  libphobos/libdruntime/core/sys/posix/net/if_.d
  13b8dae9bab5062136d53ccebd082d85  libphobos/libdruntime/core/sys/posix/netdb.d
  c7dcd36f9e6a7e0c43c734446334ad92  libphobos/libdruntime/core/sys/posix/netinet/in_.d
  e2bed0b739fc017fa2c967cab3adf1ab  libphobos/libdruntime/core/sys/posix/netinet/tcp.d
--- 121462,121481 ----
  9ef4589d2a7508496db59af7ba4641ab  libphobos/libdruntime/core/sys/openbsd/sys/mman.d
  b4bd052f0e8e57db0716f807263ad759  libphobos/libdruntime/core/sys/openbsd/sys/sysctl.d
  26fdce9d3769cf37bf38b5ada08836f3  libphobos/libdruntime/core/sys/openbsd/time.d
! 66c49ab209f0d3477455b3eae8786336  libphobos/libdruntime/core/sys/openbsd/unistd.d
  c19da98e25834b2fc1c764a437973bf8  libphobos/libdruntime/core/sys/posix/aio.d
  d2d580de88e21c5ff2e144828e88cc50  libphobos/libdruntime/core/sys/posix/arpa/inet.d
  753c44210c9c47befaf944347649165f  libphobos/libdruntime/core/sys/posix/config.d
  77222df1174ce1bf824da174dea45def  libphobos/libdruntime/core/sys/posix/dirent.d
! d63d0faccd3a6f616671ba6885d1fd0c  libphobos/libdruntime/core/sys/posix/dlfcn.d
! 215db5114c3e505e212b18fdd8fc06f6  libphobos/libdruntime/core/sys/posix/fcntl.d
  702d6944ce1feced53f524d8c6410bae  libphobos/libdruntime/core/sys/posix/grp.d
  3b65fc6ea1e8b95dbe86c5d20e65f522  libphobos/libdruntime/core/sys/posix/iconv.d
  67f194a897054ed6b4b0ec07e3764a5e  libphobos/libdruntime/core/sys/posix/inttypes.d
  81dd20c53642e5d32550aab3d366f157  libphobos/libdruntime/core/sys/posix/libgen.d
  f872163f7db8d6c4044ed0ec34497240  libphobos/libdruntime/core/sys/posix/locale.d
  41f755d1e19890c74530b6acc9c193eb  libphobos/libdruntime/core/sys/posix/mqueue.d
! 1b0baf6dad835d2a338dfbd84007217b  libphobos/libdruntime/core/sys/posix/net/if_.d
  13b8dae9bab5062136d53ccebd082d85  libphobos/libdruntime/core/sys/posix/netdb.d
  c7dcd36f9e6a7e0c43c734446334ad92  libphobos/libdruntime/core/sys/posix/netinet/in_.d
  e2bed0b739fc017fa2c967cab3adf1ab  libphobos/libdruntime/core/sys/posix/netinet/tcp.d
*************** dc2efa5751c64d98f883ba967ccdf64d  libpho
*** 111438,111466 ****
  a228203a75c388b65c27a7059185e352  libphobos/libdruntime/core/sys/posix/pwd.d
  dca2ed8976351f808aaaaf8bfaa2ca34  libphobos/libdruntime/core/sys/posix/sched.d
  0d3f923f59a85545956c41021acd5c5b  libphobos/libdruntime/core/sys/posix/semaphore.d
! c7e11e9d4e2dc837c4623d225811983e  libphobos/libdruntime/core/sys/posix/setjmp.d
! ef6a79897fcfc1a0ee5f1434b606d4bd  libphobos/libdruntime/core/sys/posix/signal.d
  e61bb22c1e4f3f67e5a4b10f660d6bc0  libphobos/libdruntime/core/sys/posix/spawn.d
  ce6e14eeb25bb2f98124ca8fa6cb3663  libphobos/libdruntime/core/sys/posix/stdc/time.d
  fbb04909de62a4a4f4a95cfff272c7a3  libphobos/libdruntime/core/sys/posix/stdio.d
  1dacf73803bc7f397074b38943d014f2  libphobos/libdruntime/core/sys/posix/stdlib.d
! 31250e25bf1f561eaa4964f60a8df6fb  libphobos/libdruntime/core/sys/posix/string.d
  0a83f207b25c02c481a61faf3207cb6c  libphobos/libdruntime/core/sys/posix/strings.d
  4b07be0d0a605b5a855496178e995b95  libphobos/libdruntime/core/sys/posix/sys/filio.d
  b02e329aa6c0d9275bc5c2570f426a80  libphobos/libdruntime/core/sys/posix/sys/ioccom.d
  9bd99416560c21132ad3baf480413d7d  libphobos/libdruntime/core/sys/posix/sys/ioctl.d
  b925ee7e2e3334ef78aa53486af14a6a  libphobos/libdruntime/core/sys/posix/sys/ipc.d
! 62d832bae803f661ee71cc9ef368cb1c  libphobos/libdruntime/core/sys/posix/sys/mman.d
! 3cf85477813d91c95edf6e56478e2b9f  libphobos/libdruntime/core/sys/posix/sys/msg.d
! 60b8650f67cea20d09485c4497e0abec  libphobos/libdruntime/core/sys/posix/sys/resource.d
! 7f592fbb252f6f17bdd94ab6a4bce5a9  libphobos/libdruntime/core/sys/posix/sys/select.d
  81d15dd9b6a8d1f517857d304968b834  libphobos/libdruntime/core/sys/posix/sys/shm.d
! 1ef4e9bdfe7ab8b811f908d042565194  libphobos/libdruntime/core/sys/posix/sys/socket.d
! 591967e602450509d00015fc6e756b93  libphobos/libdruntime/core/sys/posix/sys/stat.d
  0f34a241c1111f17546e0563ebf91972  libphobos/libdruntime/core/sys/posix/sys/statvfs.d
  ab3f7338ce7949e238728e6631e10e7b  libphobos/libdruntime/core/sys/posix/sys/time.d
  7c741b07659843e1e0332e784c324e3f  libphobos/libdruntime/core/sys/posix/sys/ttycom.d
! f43b449fa2b3db82f85bddfb9e41f86c  libphobos/libdruntime/core/sys/posix/sys/types.d
  571b12f57fc1cf1ed69c5fcce8b89de4  libphobos/libdruntime/core/sys/posix/sys/uio.d
  51f7afe07c50617af673fc2dbdf3cf40  libphobos/libdruntime/core/sys/posix/sys/un.d
  cac398e14e045ed42244544f84db5c9a  libphobos/libdruntime/core/sys/posix/sys/utsname.d
--- 121484,121512 ----
  a228203a75c388b65c27a7059185e352  libphobos/libdruntime/core/sys/posix/pwd.d
  dca2ed8976351f808aaaaf8bfaa2ca34  libphobos/libdruntime/core/sys/posix/sched.d
  0d3f923f59a85545956c41021acd5c5b  libphobos/libdruntime/core/sys/posix/semaphore.d
! 754f16078f3f2dc253c170d80d64ace4  libphobos/libdruntime/core/sys/posix/setjmp.d
! 5256ecb9a764a8e0a042b7ae816129bf  libphobos/libdruntime/core/sys/posix/signal.d
  e61bb22c1e4f3f67e5a4b10f660d6bc0  libphobos/libdruntime/core/sys/posix/spawn.d
  ce6e14eeb25bb2f98124ca8fa6cb3663  libphobos/libdruntime/core/sys/posix/stdc/time.d
  fbb04909de62a4a4f4a95cfff272c7a3  libphobos/libdruntime/core/sys/posix/stdio.d
  1dacf73803bc7f397074b38943d014f2  libphobos/libdruntime/core/sys/posix/stdlib.d
! f8ac1b696e7212c92caf062e9b8b6b8a  libphobos/libdruntime/core/sys/posix/string.d
  0a83f207b25c02c481a61faf3207cb6c  libphobos/libdruntime/core/sys/posix/strings.d
  4b07be0d0a605b5a855496178e995b95  libphobos/libdruntime/core/sys/posix/sys/filio.d
  b02e329aa6c0d9275bc5c2570f426a80  libphobos/libdruntime/core/sys/posix/sys/ioccom.d
  9bd99416560c21132ad3baf480413d7d  libphobos/libdruntime/core/sys/posix/sys/ioctl.d
  b925ee7e2e3334ef78aa53486af14a6a  libphobos/libdruntime/core/sys/posix/sys/ipc.d
! 13815bc5f0c5c0179b9a4d0730ebf9df  libphobos/libdruntime/core/sys/posix/sys/mman.d
! 1976f620d8e9fe05b793ca4130031dba  libphobos/libdruntime/core/sys/posix/sys/msg.d
! f2476c70ad36f4fe45fc21eae0d9b174  libphobos/libdruntime/core/sys/posix/sys/resource.d
! da026db04950018a474b54890f559b7e  libphobos/libdruntime/core/sys/posix/sys/select.d
  81d15dd9b6a8d1f517857d304968b834  libphobos/libdruntime/core/sys/posix/sys/shm.d
! 797199850e95f9d82c5466de16074db4  libphobos/libdruntime/core/sys/posix/sys/socket.d
! 7c437baa494e3756d24def9fd0a067e7  libphobos/libdruntime/core/sys/posix/sys/stat.d
  0f34a241c1111f17546e0563ebf91972  libphobos/libdruntime/core/sys/posix/sys/statvfs.d
  ab3f7338ce7949e238728e6631e10e7b  libphobos/libdruntime/core/sys/posix/sys/time.d
  7c741b07659843e1e0332e784c324e3f  libphobos/libdruntime/core/sys/posix/sys/ttycom.d
! 1624217586c95bd2d793bd5bffcaccc8  libphobos/libdruntime/core/sys/posix/sys/types.d
  571b12f57fc1cf1ed69c5fcce8b89de4  libphobos/libdruntime/core/sys/posix/sys/uio.d
  51f7afe07c50617af673fc2dbdf3cf40  libphobos/libdruntime/core/sys/posix/sys/un.d
  cac398e14e045ed42244544f84db5c9a  libphobos/libdruntime/core/sys/posix/sys/utsname.d
*************** cac398e14e045ed42244544f84db5c9a  libpho
*** 111468,111474 ****
  63c078cb4f123c4469cc1b2af384767d  libphobos/libdruntime/core/sys/posix/syslog.d
  7f8c41dea7291b93e10e0697c5c192bb  libphobos/libdruntime/core/sys/posix/termios.d
  5d1c0ca3d818900f2bfffc4a19b3b57a  libphobos/libdruntime/core/sys/posix/time.d
! f7310d52de341d6828959d0d35d35cfa  libphobos/libdruntime/core/sys/posix/ucontext.d
  2ec14e511b540a619450501226cae004  libphobos/libdruntime/core/sys/posix/unistd.d
  9414f9f2c6d77b7a1e93b61a9916681c  libphobos/libdruntime/core/sys/posix/utime.d
  30a7c865e2541fe983de69db93f37601  libphobos/libdruntime/core/sys/solaris/dlfcn.d
--- 121514,121520 ----
  63c078cb4f123c4469cc1b2af384767d  libphobos/libdruntime/core/sys/posix/syslog.d
  7f8c41dea7291b93e10e0697c5c192bb  libphobos/libdruntime/core/sys/posix/termios.d
  5d1c0ca3d818900f2bfffc4a19b3b57a  libphobos/libdruntime/core/sys/posix/time.d
! af71fddd1336ca49dfc7cec95b4ebdf6  libphobos/libdruntime/core/sys/posix/ucontext.d
  2ec14e511b540a619450501226cae004  libphobos/libdruntime/core/sys/posix/unistd.d
  9414f9f2c6d77b7a1e93b61a9916681c  libphobos/libdruntime/core/sys/posix/utime.d
  30a7c865e2541fe983de69db93f37601  libphobos/libdruntime/core/sys/solaris/dlfcn.d
*************** f3220636fa9a34351a43f51401f4186d  libpho
*** 111492,111504 ****
  808bc3a894b23f128a067e177eb6ca6c  libphobos/libdruntime/core/sys/windows/accctrl.d
  1d1dd386ba54d185582671453bd8ed5c  libphobos/libdruntime/core/sys/windows/aclapi.d
  8fed00b7b5c95e5b94d866c430b877c0  libphobos/libdruntime/core/sys/windows/aclui.d
! a19062828476a64c97ca16dc7a218417  libphobos/libdruntime/core/sys/windows/basetsd.d
  da757341fa2bf63b89a77fc158634cd0  libphobos/libdruntime/core/sys/windows/basetyps.d
  f66a616c8baaf64c29936cd3048d19e6  libphobos/libdruntime/core/sys/windows/cderr.d
  40cf12972559ab3d59832fa5372fb9fd  libphobos/libdruntime/core/sys/windows/cguid.d
  629b11b6597684f0a7fc2fe4f7903f68  libphobos/libdruntime/core/sys/windows/com.d
  55640e2c23753bb0bba7db96a69a7df2  libphobos/libdruntime/core/sys/windows/comcat.d
! 6c625de2a3d71043890e2aa32667c3d0  libphobos/libdruntime/core/sys/windows/commctrl.d
  5fcc424ba57cfc222dbc3c99baa12384  libphobos/libdruntime/core/sys/windows/commdlg.d
  bf3823be2764fc604e8c83099bd0aa17  libphobos/libdruntime/core/sys/windows/core.d
  080a37029d0af10fff081dcb013c4520  libphobos/libdruntime/core/sys/windows/cpl.d
--- 121538,121550 ----
  808bc3a894b23f128a067e177eb6ca6c  libphobos/libdruntime/core/sys/windows/accctrl.d
  1d1dd386ba54d185582671453bd8ed5c  libphobos/libdruntime/core/sys/windows/aclapi.d
  8fed00b7b5c95e5b94d866c430b877c0  libphobos/libdruntime/core/sys/windows/aclui.d
! a2bffd2b9b462b551ddd39c82589c6a7  libphobos/libdruntime/core/sys/windows/basetsd.d
  da757341fa2bf63b89a77fc158634cd0  libphobos/libdruntime/core/sys/windows/basetyps.d
  f66a616c8baaf64c29936cd3048d19e6  libphobos/libdruntime/core/sys/windows/cderr.d
  40cf12972559ab3d59832fa5372fb9fd  libphobos/libdruntime/core/sys/windows/cguid.d
  629b11b6597684f0a7fc2fe4f7903f68  libphobos/libdruntime/core/sys/windows/com.d
  55640e2c23753bb0bba7db96a69a7df2  libphobos/libdruntime/core/sys/windows/comcat.d
! 92a703df50d76cf3867e45e092cbecb3  libphobos/libdruntime/core/sys/windows/commctrl.d
  5fcc424ba57cfc222dbc3c99baa12384  libphobos/libdruntime/core/sys/windows/commdlg.d
  bf3823be2764fc604e8c83099bd0aa17  libphobos/libdruntime/core/sys/windows/core.d
  080a37029d0af10fff081dcb013c4520  libphobos/libdruntime/core/sys/windows/cpl.d
*************** bf3823be2764fc604e8c83099bd0aa17  libpho
*** 111508,111524 ****
  5d026ec2e43ebbbe3f06a24f39348ee9  libphobos/libdruntime/core/sys/windows/dbghelp_types.d
  94f7cb8b5aabbcd911308efc2d9cccc0  libphobos/libdruntime/core/sys/windows/dbt.d
  f09eefe2d979ffa1e25e9954a2a4d3e4  libphobos/libdruntime/core/sys/windows/dde.d
! 6c264c40e83995c420dc756931128b66  libphobos/libdruntime/core/sys/windows/ddeml.d
  e1eb8890b4898774e2a3602882517bd6  libphobos/libdruntime/core/sys/windows/dhcpcsdk.d
  8bb836897d3d7f5aa12f841f5b353fd9  libphobos/libdruntime/core/sys/windows/dlgs.d
! 6dea9dc59bf72a9cfa5fd28a6fb63ea7  libphobos/libdruntime/core/sys/windows/dll.d
  fc9f643ad5f4f8758f50dffad0f61578  libphobos/libdruntime/core/sys/windows/docobj.d
  40d733fb80d2a5315e64353b464bb510  libphobos/libdruntime/core/sys/windows/errorrep.d
  a70075fe066cb624c031847f005428a6  libphobos/libdruntime/core/sys/windows/exdisp.d
  21344ae84f3cfdcad624405fd4f21b8b  libphobos/libdruntime/core/sys/windows/exdispid.d
! d0d33d40c4a490718a0fc7a726d25758  libphobos/libdruntime/core/sys/windows/httpext.d
  7753f59cbc132e8a4800c4fc3741ec02  libphobos/libdruntime/core/sys/windows/idispids.d
! ebf945c9084531f7f2b322fd91444283  libphobos/libdruntime/core/sys/windows/imagehlp.d
  4006bbd3a4b88dd0ec26602e87021b31  libphobos/libdruntime/core/sys/windows/imm.d
  7224c7dcec6f991a4868c2c133df6172  libphobos/libdruntime/core/sys/windows/intshcut.d
  b649cd51a6d23be2250bd9cffda6db3c  libphobos/libdruntime/core/sys/windows/ipexport.d
--- 121554,121570 ----
  5d026ec2e43ebbbe3f06a24f39348ee9  libphobos/libdruntime/core/sys/windows/dbghelp_types.d
  94f7cb8b5aabbcd911308efc2d9cccc0  libphobos/libdruntime/core/sys/windows/dbt.d
  f09eefe2d979ffa1e25e9954a2a4d3e4  libphobos/libdruntime/core/sys/windows/dde.d
! 1784e71281b7223f971b086be468f15b  libphobos/libdruntime/core/sys/windows/ddeml.d
  e1eb8890b4898774e2a3602882517bd6  libphobos/libdruntime/core/sys/windows/dhcpcsdk.d
  8bb836897d3d7f5aa12f841f5b353fd9  libphobos/libdruntime/core/sys/windows/dlgs.d
! 985fd93f6ae2b228381e39951ed891ac  libphobos/libdruntime/core/sys/windows/dll.d
  fc9f643ad5f4f8758f50dffad0f61578  libphobos/libdruntime/core/sys/windows/docobj.d
  40d733fb80d2a5315e64353b464bb510  libphobos/libdruntime/core/sys/windows/errorrep.d
  a70075fe066cb624c031847f005428a6  libphobos/libdruntime/core/sys/windows/exdisp.d
  21344ae84f3cfdcad624405fd4f21b8b  libphobos/libdruntime/core/sys/windows/exdispid.d
! 05ded49abd236ef27c9891bc3609b8c6  libphobos/libdruntime/core/sys/windows/httpext.d
  7753f59cbc132e8a4800c4fc3741ec02  libphobos/libdruntime/core/sys/windows/idispids.d
! 9a45c04dcb25ffe0e0e1d7cc2d896272  libphobos/libdruntime/core/sys/windows/imagehlp.d
  4006bbd3a4b88dd0ec26602e87021b31  libphobos/libdruntime/core/sys/windows/imm.d
  7224c7dcec6f991a4868c2c133df6172  libphobos/libdruntime/core/sys/windows/intshcut.d
  b649cd51a6d23be2250bd9cffda6db3c  libphobos/libdruntime/core/sys/windows/ipexport.d
*************** f15343ede37ec86dcc75816d9d02868a  libpho
*** 111555,111562 ****
  40944b56ee73c24d3046fc9d313639d0  libphobos/libdruntime/core/sys/windows/mciavi.d
  de0387ad10e69b94fa784ddce6bf5b52  libphobos/libdruntime/core/sys/windows/mcx.d
  fc96c46a0d401798fd635da28105ab12  libphobos/libdruntime/core/sys/windows/mgmtapi.d
! ca010ba204c3217b8ba97cd14ace0c95  libphobos/libdruntime/core/sys/windows/mmsystem.d
! 2882ee396413cb2df1e6ec15809a3e75  libphobos/libdruntime/core/sys/windows/msacm.d
  cb09a9571f48cb8da6c47240ab32a69c  libphobos/libdruntime/core/sys/windows/mshtml.d
  1165bc4ee8dd5fddab6697f2ddda7abe  libphobos/libdruntime/core/sys/windows/mswsock.d
  ea0a8ea5da9f6d375ee3e7b415586a7b  libphobos/libdruntime/core/sys/windows/nb30.d
--- 121601,121608 ----
  40944b56ee73c24d3046fc9d313639d0  libphobos/libdruntime/core/sys/windows/mciavi.d
  de0387ad10e69b94fa784ddce6bf5b52  libphobos/libdruntime/core/sys/windows/mcx.d
  fc96c46a0d401798fd635da28105ab12  libphobos/libdruntime/core/sys/windows/mgmtapi.d
! d163cc5abad963a37848b34f1d8a7cad  libphobos/libdruntime/core/sys/windows/mmsystem.d
! da02316c0286de98909d35dced85d22e  libphobos/libdruntime/core/sys/windows/msacm.d
  cb09a9571f48cb8da6c47240ab32a69c  libphobos/libdruntime/core/sys/windows/mshtml.d
  1165bc4ee8dd5fddab6697f2ddda7abe  libphobos/libdruntime/core/sys/windows/mswsock.d
  ea0a8ea5da9f6d375ee3e7b415586a7b  libphobos/libdruntime/core/sys/windows/nb30.d
*************** a36e1c22cb0cd979eaeebff6b6cb786e  libpho
*** 111565,111571 ****
  e115a67e03a4c225fbf7096cdf91810b  libphobos/libdruntime/core/sys/windows/ntdef.d
  46930e67c5829d102ce6737bacffaf3d  libphobos/libdruntime/core/sys/windows/ntdll.d
  e853cd965a604797654d7dd7b7fb3cc1  libphobos/libdruntime/core/sys/windows/ntldap.d
! bd1b2498f07983443c7303897c2c830b  libphobos/libdruntime/core/sys/windows/ntsecapi.d
  cf14f024351e812f037a15e61e035b16  libphobos/libdruntime/core/sys/windows/ntsecpkg.d
  eec5257ed84683b9c6c8341222562d8c  libphobos/libdruntime/core/sys/windows/oaidl.d
  dc55a541ce748e353ed098be618b4dbe  libphobos/libdruntime/core/sys/windows/objbase.d
--- 121611,121617 ----
  e115a67e03a4c225fbf7096cdf91810b  libphobos/libdruntime/core/sys/windows/ntdef.d
  46930e67c5829d102ce6737bacffaf3d  libphobos/libdruntime/core/sys/windows/ntdll.d
  e853cd965a604797654d7dd7b7fb3cc1  libphobos/libdruntime/core/sys/windows/ntldap.d
! 3b671199369040350d19d65e41304eb7  libphobos/libdruntime/core/sys/windows/ntsecapi.d
  cf14f024351e812f037a15e61e035b16  libphobos/libdruntime/core/sys/windows/ntsecpkg.d
  eec5257ed84683b9c6c8341222562d8c  libphobos/libdruntime/core/sys/windows/oaidl.d
  dc55a541ce748e353ed098be618b4dbe  libphobos/libdruntime/core/sys/windows/objbase.d
*************** dc55a541ce748e353ed098be618b4dbe  libpho
*** 111574,111580 ****
  f74418c84313c701feb487e6505c0fff  libphobos/libdruntime/core/sys/windows/objsafe.d
  9bf8790b0a0d7407f091278334f4b537  libphobos/libdruntime/core/sys/windows/ocidl.d
  bc7b2c02d0149b6a56b6911f3106030b  libphobos/libdruntime/core/sys/windows/odbcinst.d
! 2d731302e2b4052264d63e6df719a39e  libphobos/libdruntime/core/sys/windows/ole.d
  6dff17cb347a4f98eed5e4371d1be39a  libphobos/libdruntime/core/sys/windows/ole2.d
  314785a8f31488c44e22711f37b32e61  libphobos/libdruntime/core/sys/windows/ole2ver.d
  d80fb0403ed1d2b06e89fb72f25dd33c  libphobos/libdruntime/core/sys/windows/oleacc.d
--- 121620,121626 ----
  f74418c84313c701feb487e6505c0fff  libphobos/libdruntime/core/sys/windows/objsafe.d
  9bf8790b0a0d7407f091278334f4b537  libphobos/libdruntime/core/sys/windows/ocidl.d
  bc7b2c02d0149b6a56b6911f3106030b  libphobos/libdruntime/core/sys/windows/odbcinst.d
! 6b03bff70c22fa41b1d95499bc23ff9b  libphobos/libdruntime/core/sys/windows/ole.d
  6dff17cb347a4f98eed5e4371d1be39a  libphobos/libdruntime/core/sys/windows/ole2.d
  314785a8f31488c44e22711f37b32e61  libphobos/libdruntime/core/sys/windows/ole2ver.d
  d80fb0403ed1d2b06e89fb72f25dd33c  libphobos/libdruntime/core/sys/windows/oleacc.d
*************** d1e1fc6d635d7ff3bfebe3d25072b3b5  libpho
*** 111585,111594 ****
  733e9097a56d8b385408997cce3e814d  libphobos/libdruntime/core/sys/windows/oleidl.d
  de6fbc31298db523e7fca07ce18130f8  libphobos/libdruntime/core/sys/windows/pbt.d
  ca8c227a5d0a0aeb0a40b0e9c6433c90  libphobos/libdruntime/core/sys/windows/powrprof.d
! 9aa68a9237922f7e8a82b9544ebab11b  libphobos/libdruntime/core/sys/windows/prsht.d
  16e4952dbe783d693c52b69a7a7f9773  libphobos/libdruntime/core/sys/windows/psapi.d
  c26b93da9ae25d60374c9b0d0c0a357f  libphobos/libdruntime/core/sys/windows/rapi.d
! b8c3a2393b8841a0bee92f5f62d603b5  libphobos/libdruntime/core/sys/windows/ras.d
  e1dbe738e4eceed9d0aba99688c99916  libphobos/libdruntime/core/sys/windows/rasdlg.d
  1ba9651d7bfe8d66848a51645e404512  libphobos/libdruntime/core/sys/windows/raserror.d
  d40036d2cab0345df2a1d1039ebf859c  libphobos/libdruntime/core/sys/windows/rassapi.d
--- 121631,121640 ----
  733e9097a56d8b385408997cce3e814d  libphobos/libdruntime/core/sys/windows/oleidl.d
  de6fbc31298db523e7fca07ce18130f8  libphobos/libdruntime/core/sys/windows/pbt.d
  ca8c227a5d0a0aeb0a40b0e9c6433c90  libphobos/libdruntime/core/sys/windows/powrprof.d
! 8106ea518c453f9c827fd23389b5a73f  libphobos/libdruntime/core/sys/windows/prsht.d
  16e4952dbe783d693c52b69a7a7f9773  libphobos/libdruntime/core/sys/windows/psapi.d
  c26b93da9ae25d60374c9b0d0c0a357f  libphobos/libdruntime/core/sys/windows/rapi.d
! 6755da074a0351de4c9633e99c76c25a  libphobos/libdruntime/core/sys/windows/ras.d
  e1dbe738e4eceed9d0aba99688c99916  libphobos/libdruntime/core/sys/windows/rasdlg.d
  1ba9651d7bfe8d66848a51645e404512  libphobos/libdruntime/core/sys/windows/raserror.d
  d40036d2cab0345df2a1d1039ebf859c  libphobos/libdruntime/core/sys/windows/rassapi.d
*************** d40036d2cab0345df2a1d1039ebf859c  libpho
*** 111597,111607 ****
  8eec1097df061f6abc3c57933dfa9e18  libphobos/libdruntime/core/sys/windows/richedit.d
  e51846439234046f614d8d784f1f0c81  libphobos/libdruntime/core/sys/windows/richole.d
  e2c499859218569638d16d102c505aed  libphobos/libdruntime/core/sys/windows/rpc.d
! 827c1f6f4f2920cd9986b62e44b54a44  libphobos/libdruntime/core/sys/windows/rpcdce.d
  e23fe37d1fd42638696b51f435080017  libphobos/libdruntime/core/sys/windows/rpcdce2.d
! f2dbf8d8684aec0a96fc98944b2e98ef  libphobos/libdruntime/core/sys/windows/rpcdcep.d
! 7a4ad3776a54ea1f7e07af6829ca900a  libphobos/libdruntime/core/sys/windows/rpcndr.d
! ade7fdbf3fea3e35f31b2f5226e9a8a2  libphobos/libdruntime/core/sys/windows/rpcnsi.d
  016d551012bc74ebd1b6db7d5e6f13d3  libphobos/libdruntime/core/sys/windows/rpcnsip.d
  c9fe813be1a12a243c975de9532ddc4f  libphobos/libdruntime/core/sys/windows/rpcnterr.d
  8c9c47bf6dc6160f2e0de47e1d43caa5  libphobos/libdruntime/core/sys/windows/schannel.d
--- 121643,121653 ----
  8eec1097df061f6abc3c57933dfa9e18  libphobos/libdruntime/core/sys/windows/richedit.d
  e51846439234046f614d8d784f1f0c81  libphobos/libdruntime/core/sys/windows/richole.d
  e2c499859218569638d16d102c505aed  libphobos/libdruntime/core/sys/windows/rpc.d
! ac6f9cdd3c605d352c7dd493bcba5922  libphobos/libdruntime/core/sys/windows/rpcdce.d
  e23fe37d1fd42638696b51f435080017  libphobos/libdruntime/core/sys/windows/rpcdce2.d
! eb5a20ebad64bee40e555cc596626d33  libphobos/libdruntime/core/sys/windows/rpcdcep.d
! 69b21c5cd83a75c2b1f4f94d981edaae  libphobos/libdruntime/core/sys/windows/rpcndr.d
! c0479e24efb06797b2242dc8ffec02d8  libphobos/libdruntime/core/sys/windows/rpcnsi.d
  016d551012bc74ebd1b6db7d5e6f13d3  libphobos/libdruntime/core/sys/windows/rpcnsip.d
  c9fe813be1a12a243c975de9532ddc4f  libphobos/libdruntime/core/sys/windows/rpcnterr.d
  8c9c47bf6dc6160f2e0de47e1d43caa5  libphobos/libdruntime/core/sys/windows/schannel.d
*************** c9fe813be1a12a243c975de9532ddc4f  libpho
*** 111609,111776 ****
  340c7b814e84fbeccda4a1bdee34d820  libphobos/libdruntime/core/sys/windows/secext.d
  c6327aff5cddc390305a2db5b5e3b56c  libphobos/libdruntime/core/sys/windows/security.d
  f45b998596c1b10efbcaaa154e3824a1  libphobos/libdruntime/core/sys/windows/servprov.d
! 95e799ae65813be98f1fa9bef2e73523  libphobos/libdruntime/core/sys/windows/setupapi.d
! bf4819a7b0a5d740216ebc4a78b17a71  libphobos/libdruntime/core/sys/windows/shellapi.d
  0f9117458e2adccc8d6ce4ae0682b41f  libphobos/libdruntime/core/sys/windows/shldisp.d
  3ad5f1d120a46d1fab8f904f2c9e4c22  libphobos/libdruntime/core/sys/windows/shlguid.d
  c2126d4b550176dbad6b6615ad24e912  libphobos/libdruntime/core/sys/windows/shlobj.d
! 58809c1a71dad4960a77a95013e950fe  libphobos/libdruntime/core/sys/windows/shlwapi.d
  b8e34210efaf228e2501f59f73077072  libphobos/libdruntime/core/sys/windows/snmp.d
! 5f941b211907aec2c403e8ee0306099a  libphobos/libdruntime/core/sys/windows/sql.d
! 75ef1c0316372603ba9bea9403d3891f  libphobos/libdruntime/core/sys/windows/sqlext.d
! 094d56f221113dc7d1202bab90b7f6a6  libphobos/libdruntime/core/sys/windows/sqltypes.d
! 309c779b90aa024f1b36e7ca9050f164  libphobos/libdruntime/core/sys/windows/sqlucode.d
  1186df0a3e354e09f8574725247b1c3b  libphobos/libdruntime/core/sys/windows/sspi.d
  0cd1266f61a84ccc88f8e474e2981809  libphobos/libdruntime/core/sys/windows/stacktrace.d
  78f2425fa9d20c8f30923da75c392c02  libphobos/libdruntime/core/sys/windows/stat.d
  504474997e9ec2d7b220c5798cbd0639  libphobos/libdruntime/core/sys/windows/stdc/malloc.d
  33fcc28066c3bb9129080337483b0f97  libphobos/libdruntime/core/sys/windows/stdc/time.d
! 3500499cf4fb6f9f14e0558a8b8e364d  libphobos/libdruntime/core/sys/windows/subauth.d
  b89d21c2730d93dc7f157d4ae24795fe  libphobos/libdruntime/core/sys/windows/threadaux.d
  1c03170e8729fdd1bd3c2afd3155ad1e  libphobos/libdruntime/core/sys/windows/tlhelp32.d
  66bd241f4835318c2108f0125b4bad5f  libphobos/libdruntime/core/sys/windows/tmschema.d
  cc11561706a7991b9feb77841b680282  libphobos/libdruntime/core/sys/windows/unknwn.d
  cb98ff926684a18df476f1124b5354d9  libphobos/libdruntime/core/sys/windows/uuid.d
! 1f999cbcb374db981120536fb9263c9e  libphobos/libdruntime/core/sys/windows/vfw.d
  000a8b7395a3605236ec2f4de717e7eb  libphobos/libdruntime/core/sys/windows/w32api.d
! 03029dae22370805da2b687b3ec95fca  libphobos/libdruntime/core/sys/windows/winbase.d
  36702b0a76945e3420222c08908bcae8  libphobos/libdruntime/core/sys/windows/winber.d
  2903bfe8992d2cb2bfaefea1db4dc184  libphobos/libdruntime/core/sys/windows/wincon.d
  6d69b260397c77dc2c3dae8bb21692e6  libphobos/libdruntime/core/sys/windows/wincrypt.d
! babd98a9842134a5d084d187892ee647  libphobos/libdruntime/core/sys/windows/windef.d
  293f507b533fce5d73e47c24264d26ff  libphobos/libdruntime/core/sys/windows/windows.d
  b58950289b0dfb2d9e2ef2a62b697df3  libphobos/libdruntime/core/sys/windows/winerror.d
! c91666a1bbb7ff1cacbc523cd0c36feb  libphobos/libdruntime/core/sys/windows/wingdi.d
  7606e7e9a8fd92b793475c40ef20ea4e  libphobos/libdruntime/core/sys/windows/winhttp.d
! 9344c686df5c67c8632156e82a92072c  libphobos/libdruntime/core/sys/windows/wininet.d
  4ef49e596f406ad40b00780fe71c6313  libphobos/libdruntime/core/sys/windows/winioctl.d
  2fdae639c1094bb99ec4feab5c961471  libphobos/libdruntime/core/sys/windows/winldap.d
  48abe9a63d3da4031eb0b48b9539830c  libphobos/libdruntime/core/sys/windows/winnetwk.d
  ce637be2829c4171626233b1baaee3b2  libphobos/libdruntime/core/sys/windows/winnls.d
! 15b41e392cef10231f041321a646eb13  libphobos/libdruntime/core/sys/windows/winnt.d
  aec0a54384dea87ba5f95eef663b8cc9  libphobos/libdruntime/core/sys/windows/winperf.d
  4bb0b47e114ccad718982a27943cfb7b  libphobos/libdruntime/core/sys/windows/winreg.d
  fe106920a5b1c11c8cc331880eb4b66c  libphobos/libdruntime/core/sys/windows/winsock2.d
  3fca7b46a6f195293e8bb548f25f4bf4  libphobos/libdruntime/core/sys/windows/winspool.d
! 6420d9ed50693be198c684ceda254d12  libphobos/libdruntime/core/sys/windows/winsvc.d
! f59ab2821279917fe50d1e6e1e4899da  libphobos/libdruntime/core/sys/windows/winuser.d
  528e0d1a97b30643ff52942e64da30dd  libphobos/libdruntime/core/sys/windows/winver.d
  8a696576926989a12147948a41f20685  libphobos/libdruntime/core/sys/windows/wtsapi32.d
! 190afa43bb4914fe09f99395f97808d3  libphobos/libdruntime/core/sys/windows/wtypes.d
  9094c28b1e25c7802bae1054ff893274  libphobos/libdruntime/core/thread/context.d
! 8dd0b44db607bb9c4cabae4aed286c1d  libphobos/libdruntime/core/thread/fiber.d
! d57dfc512ea18cd10c246ba39711869a  libphobos/libdruntime/core/thread/osthread.d
! 9b6ee3a7c47a4d264ce79b0c16495747  libphobos/libdruntime/core/thread/package.d
! b6b7d02ac0c2f823fc20e9f2804c3a7e  libphobos/libdruntime/core/thread/threadbase.d
  c1ed5b58527141cfd45c44e71ae05ec8  libphobos/libdruntime/core/thread/threadgroup.d
! 80e5adc60289059627760a15ad6535ae  libphobos/libdruntime/core/thread/types.d
! 7efc19b8c27e754adebd3339199884e5  libphobos/libdruntime/core/time.d
! 6324e4fa0592c928db7ddd7f2f952a13  libphobos/libdruntime/core/vararg.d
  4cf99596b90593fec63debe10874dfdb  libphobos/libdruntime/core/volatile.d
! e1eec708b7c4c5f87d9a74a59d1270cc  libphobos/libdruntime/gcc/attribute.d
! 7bbde94b722f050215e4e0df5b6be407  libphobos/libdruntime/gcc/attributes.d
! 5f99905ada07d3a0625d2ee9ad397bd1  libphobos/libdruntime/gcc/backtrace.d
! c4743b6733c753d0f6936531ef66fd6d  libphobos/libdruntime/gcc/builtins.d
! f9c0aec25f68e6115f61975cd31b8e8e  libphobos/libdruntime/gcc/config.d.in
! 15f4df9f996a036da2e1dc8144f689fa  libphobos/libdruntime/gcc/deh.d
! 136822561571486076a0a43732a02001  libphobos/libdruntime/gcc/drtstuff.c
! d7523a7267ce4cb5ecabe72c296ba87a  libphobos/libdruntime/gcc/emutls.d
! e35c0b396846b74a3d96d639c549d655  libphobos/libdruntime/gcc/gthread.d
! af04e66f4bbc7994402ceb5ad2c20eb5  libphobos/libdruntime/gcc/libbacktrace.d.in
! f5abfe7292278fdcea59ee0b381c6a68  libphobos/libdruntime/gcc/sections/common.d
! ab494d29c96f6c65928e4732b9bcb019  libphobos/libdruntime/gcc/sections/elf.d
! 2739c3c723bfec1b40260cc9d6270abc  libphobos/libdruntime/gcc/sections/macho.d
! 78afedb6a3e6155045b5a0a60769b376  libphobos/libdruntime/gcc/sections/package.d
! d221eb769449e8f6184564f2799f506a  libphobos/libdruntime/gcc/sections/pecoff.d
! 15a8adb885b766048ed3e59a7ce095b2  libphobos/libdruntime/gcc/simd.d
! 08e3e9882e6f9cc95a7b49b9cda2d5a7  libphobos/libdruntime/gcc/unwind/arm.d
! dd2e842abb31f630db5cee013d4234cb  libphobos/libdruntime/gcc/unwind/arm_common.d
! d2c0e128eafb9c59cedf6c9349d26ace  libphobos/libdruntime/gcc/unwind/c6x.d
! 082c540ed997c08367ec3067b1918a12  libphobos/libdruntime/gcc/unwind/generic.d
! 62c62b6e2c59a01d8228a5926b6f5135  libphobos/libdruntime/gcc/unwind/package.d
! 4aa3c49a1c1fb694424e0cdbd2d25c43  libphobos/libdruntime/gcc/unwind/pe.d
! 796ba488761896b14a4835f5e21d1be3  libphobos/libdruntime/object.d
! 89fa3e572c7454b805657cb5bad21515  libphobos/libdruntime/rt/aApply.d
! e0e05a636da7608f1d87dc4c7b7665ef  libphobos/libdruntime/rt/aApplyR.d
! 515a26124b1b06efec70ab0c1f177a0c  libphobos/libdruntime/rt/aaA.d
  c50bbbb450796967c2c51cf3fef9da14  libphobos/libdruntime/rt/adi.d
  8d7590e2d80123970d6ffadec3b61738  libphobos/libdruntime/rt/arraycat.d
! c77f95b637563a0cfa639db5e1702145  libphobos/libdruntime/rt/cast_.d
  e356126947e7110fb24ae47490f6dde1  libphobos/libdruntime/rt/config.d
  a0ed14f9f9820952df01a04539a0f23d  libphobos/libdruntime/rt/critical_.d
  684277cb344c29190c7bb579c79a0d94  libphobos/libdruntime/rt/deh.d
! 28875034d3bee574d874c5e8b3ba3f56  libphobos/libdruntime/rt/dmain2.d
  94d63a76cd37f837fa8e39cf416590e6  libphobos/libdruntime/rt/dylib_fixes.c
  f3312264e684dc66345bcb692aaa1a2c  libphobos/libdruntime/rt/ehalloc.d
  558c02062a26469537c962127a6722db  libphobos/libdruntime/rt/invariant.d
! 32ee5b9b4c0972191790adc5b7ae60f7  libphobos/libdruntime/rt/lifetime.d
  3256fa529b5c773a7af9a6a8a2e989cb  libphobos/libdruntime/rt/memory.d
! ca1adff55cb3d2c9c1dddc05c488d0ec  libphobos/libdruntime/rt/minfo.d
  c86d80a9087e08b9d7e8efbcd38bd4b8  libphobos/libdruntime/rt/monitor_.d
! 008975c2c08f12ee0d0dd8c682932dfc  libphobos/libdruntime/rt/profilegc.d
! d5fb28a0b82b9570223e40df91e38cb4  libphobos/libdruntime/rt/sections.d
  c7a6041a6bac5ecaf2e2688bf5eea41b  libphobos/libdruntime/rt/tlsgc.d
! 8fbdd95038dacf34b2f421ee9aeafa51  libphobos/libdruntime/rt/util/typeinfo.d
  b44590c842b754fede38a9a70a5b2d53  libphobos/libdruntime/rt/util/utility.d
  98e21634a122597ed7abb6150c41cdbf  libphobos/m4/autoconf.m4
  cbef578492ab132e253c07ad83e6ee8a  libphobos/m4/druntime.m4
! fbffedeb7e8a911ebb298bdff921256a  libphobos/m4/druntime/cpu.m4
! 82b8f67e7ad56ad32591fd6b000fca98  libphobos/m4/druntime/libraries.m4
  bcf226bf8392b2181c4c8f9a386f0a26  libphobos/m4/druntime/os.m4
  be2340569194e9c072c40fc94eab3483  libphobos/m4/gcc_support.m4
  c49ab40607849fa623787878420e7207  libphobos/m4/gdc.m4
  458abf211dc60540bf28a9257d4bd4e5  libphobos/m4/libtool.m4
  e4224ccaecb14d942c71d31bef20d78c  libphobos/src/LICENSE_1_0.txt
! aee75e2019297a49b690d0692fa8c4b5  libphobos/src/MERGE
! 783c213a13cc02c37ee9a7153a929178  libphobos/src/Makefile.am
! a45f3d297c32c670982e6f8ef0c0c6e4  libphobos/src/Makefile.in
  ff30fe7275b03f69e2a7796e47d142e8  libphobos/src/drtstuff.spec
  880a3b4c0174fd0b918810b24dfe9acb  libphobos/src/etc/c/curl.d
! 8c80b7845f5279d405fa59c9bca95483  libphobos/src/etc/c/zlib.d
  a39d2aad74f3f5fe083a190052cd9c31  libphobos/src/index.dd
  3a1ad66c3c47609c90c1f4d9cf8ddca2  libphobos/src/libgphobos.spec.in
! b75073e1e8f16420a9c94bd6727a192d  libphobos/src/std/algorithm/comparison.d
  694c41f4d2a56ffa1cea9387144617a7  libphobos/src/std/algorithm/internal.d
! b7c4b6f38bf5047ef1b30d4a46cddb29  libphobos/src/std/algorithm/iteration.d
! 8bcde6969aa0302af0836a445e3a56cd  libphobos/src/std/algorithm/mutation.d
  3f649d64367da82fd22630117d39a560  libphobos/src/std/algorithm/package.d
! 44ea5c240b100f0cb7c531cff927504e  libphobos/src/std/algorithm/searching.d
  77167ad7cf4c80bb39eeaf62f0ed0772  libphobos/src/std/algorithm/setops.d
  8a821ea7d88ec0da604d3486e9329073  libphobos/src/std/algorithm/sorting.d
! 12e61269a8be4698f61a731b4a3551a7  libphobos/src/std/array.d
  48d84292d39b7ff9bc2e13b8fa55c40c  libphobos/src/std/ascii.d
  7ea96abed440e23fc8c05ec2ad71e051  libphobos/src/std/base64.d
! 438913c4568f452cc2cc6aa5aebc95fb  libphobos/src/std/bigint.d
! ac1604c63efeede76a4d5354ebc24aae  libphobos/src/std/bitmanip.d
! 89648e17ad75ca0b52cb38e35ad65982  libphobos/src/std/checkedint.d
  5c954cc53846cbfcfdab57ef4fcb6abc  libphobos/src/std/compiler.d
! 34b9eccb48c8df017d0922ddc269a31d  libphobos/src/std/complex.d
! 425771808b8768f2cc4fa03288109af5  libphobos/src/std/concurrency.d
! 5cc33ee5a2a37188db60fb5a6d2bb695  libphobos/src/std/container/array.d
  b2899537b7218e7ff3c84509f244f1e3  libphobos/src/std/container/binaryheap.d
! 938fcda1f55e278417a1a17872afbce8  libphobos/src/std/container/dlist.d
  df3f67c15b5b7b1af94bf29d9744f005  libphobos/src/std/container/package.d
  30f546db255833e0004dd1c9f0dfa883  libphobos/src/std/container/rbtree.d
  4a327ea86a45ce1f67fa44aa634bfd06  libphobos/src/std/container/slist.d
  c8590ffcd747e9da50e3afc8e4c69111  libphobos/src/std/container/util.d
! e192aa3e65bdca14301dcc4b7fbb0a4b  libphobos/src/std/conv.d
  6aef79b4677f6bb259b947c1c3176dfe  libphobos/src/std/csv.d
  e9d818e994a694951a607a1aaa99c921  libphobos/src/std/datetime/date.d
  8940289b80bf4d65f426f9625a18a7cc  libphobos/src/std/datetime/interval.d
! bbd9f262fce997eefac78b6ed54e3d41  libphobos/src/std/datetime/package.d
  60a547458b0f105a74a4ec79271e034a  libphobos/src/std/datetime/stopwatch.d
! 6d7b100c21f4c570beff77e3fbf2da75  libphobos/src/std/datetime/systime.d
  4ae8ed05d6aeaee8d8fe5a89c422d5cd  libphobos/src/std/datetime/timezone.d
  221da1b10eb5da893eb97e28d5de3171  libphobos/src/std/demangle.d
  9074ecdf1c11c2074e412fd65bc86e53  libphobos/src/std/digest/crc.d
  d6b59ab3bb8a093b58e1c0dfb19b800e  libphobos/src/std/digest/hmac.d
! d1c0606553ccbfef18e98e16c0dafce2  libphobos/src/std/digest/md.d
  9aeb4b406d2d1f4056548c297e4e2f94  libphobos/src/std/digest/murmurhash.d
  a35cbabb8aa77d8451c285063c5c8211  libphobos/src/std/digest/package.d
  4a611bd9d6b92c30cfac32edfd614b54  libphobos/src/std/digest/ripemd.d
! e298410eaf608ba40ad57abaee6be1d7  libphobos/src/std/digest/sha.d
  cdc3d0431aa2e54b40e0570c9a848b27  libphobos/src/std/encoding.d
! 17033903454d8535d3e1241d268a85f3  libphobos/src/std/exception.d
  c6b20fb62f7a0f07789137e4e07c65e6  libphobos/src/std/experimental/allocator/building_blocks/affix_allocator.d
  f5a9a6e6207580b72ba6df2195748c52  libphobos/src/std/experimental/allocator/building_blocks/aligned_block_list.d
  283cb27edad5144242d015a95280ff86  libphobos/src/std/experimental/allocator/building_blocks/allocator_list.d
--- 121655,121824 ----
  340c7b814e84fbeccda4a1bdee34d820  libphobos/libdruntime/core/sys/windows/secext.d
  c6327aff5cddc390305a2db5b5e3b56c  libphobos/libdruntime/core/sys/windows/security.d
  f45b998596c1b10efbcaaa154e3824a1  libphobos/libdruntime/core/sys/windows/servprov.d
! 4b2dd7c8174b1c355d0e24ae4b21a440  libphobos/libdruntime/core/sys/windows/setupapi.d
! 7756a3f5cad87d4789b99fea17805765  libphobos/libdruntime/core/sys/windows/shellapi.d
  0f9117458e2adccc8d6ce4ae0682b41f  libphobos/libdruntime/core/sys/windows/shldisp.d
  3ad5f1d120a46d1fab8f904f2c9e4c22  libphobos/libdruntime/core/sys/windows/shlguid.d
  c2126d4b550176dbad6b6615ad24e912  libphobos/libdruntime/core/sys/windows/shlobj.d
! 000fc0a080bd483a02a25a4dadb2a494  libphobos/libdruntime/core/sys/windows/shlwapi.d
  b8e34210efaf228e2501f59f73077072  libphobos/libdruntime/core/sys/windows/snmp.d
! e7388e4e4b1f537730c18b1869b57155  libphobos/libdruntime/core/sys/windows/sql.d
! 4bfd6284d9c2f6208dc541281a1487bd  libphobos/libdruntime/core/sys/windows/sqlext.d
! d1fa2e2a9d4588e77585eef5b230c7aa  libphobos/libdruntime/core/sys/windows/sqltypes.d
! da35a4dce565322585d6f2388abb6008  libphobos/libdruntime/core/sys/windows/sqlucode.d
  1186df0a3e354e09f8574725247b1c3b  libphobos/libdruntime/core/sys/windows/sspi.d
  0cd1266f61a84ccc88f8e474e2981809  libphobos/libdruntime/core/sys/windows/stacktrace.d
  78f2425fa9d20c8f30923da75c392c02  libphobos/libdruntime/core/sys/windows/stat.d
  504474997e9ec2d7b220c5798cbd0639  libphobos/libdruntime/core/sys/windows/stdc/malloc.d
  33fcc28066c3bb9129080337483b0f97  libphobos/libdruntime/core/sys/windows/stdc/time.d
! 26d4e6b2dd6a9231368560919fe3fb2f  libphobos/libdruntime/core/sys/windows/subauth.d
  b89d21c2730d93dc7f157d4ae24795fe  libphobos/libdruntime/core/sys/windows/threadaux.d
  1c03170e8729fdd1bd3c2afd3155ad1e  libphobos/libdruntime/core/sys/windows/tlhelp32.d
  66bd241f4835318c2108f0125b4bad5f  libphobos/libdruntime/core/sys/windows/tmschema.d
  cc11561706a7991b9feb77841b680282  libphobos/libdruntime/core/sys/windows/unknwn.d
  cb98ff926684a18df476f1124b5354d9  libphobos/libdruntime/core/sys/windows/uuid.d
! 5f290258828a86c1ab308dea34dc9a9d  libphobos/libdruntime/core/sys/windows/vfw.d
  000a8b7395a3605236ec2f4de717e7eb  libphobos/libdruntime/core/sys/windows/w32api.d
! 20569bd672d71f7777065a207eba5678  libphobos/libdruntime/core/sys/windows/winbase.d
  36702b0a76945e3420222c08908bcae8  libphobos/libdruntime/core/sys/windows/winber.d
  2903bfe8992d2cb2bfaefea1db4dc184  libphobos/libdruntime/core/sys/windows/wincon.d
  6d69b260397c77dc2c3dae8bb21692e6  libphobos/libdruntime/core/sys/windows/wincrypt.d
! 65bcd9944f4abf3f2c5c5bab875e090e  libphobos/libdruntime/core/sys/windows/windef.d
  293f507b533fce5d73e47c24264d26ff  libphobos/libdruntime/core/sys/windows/windows.d
  b58950289b0dfb2d9e2ef2a62b697df3  libphobos/libdruntime/core/sys/windows/winerror.d
! 37f09c0d53e0bd3bde999d57f0bfc0dd  libphobos/libdruntime/core/sys/windows/wingdi.d
  7606e7e9a8fd92b793475c40ef20ea4e  libphobos/libdruntime/core/sys/windows/winhttp.d
! a6ef0f37410314e536a070e712f80c32  libphobos/libdruntime/core/sys/windows/wininet.d
  4ef49e596f406ad40b00780fe71c6313  libphobos/libdruntime/core/sys/windows/winioctl.d
  2fdae639c1094bb99ec4feab5c961471  libphobos/libdruntime/core/sys/windows/winldap.d
  48abe9a63d3da4031eb0b48b9539830c  libphobos/libdruntime/core/sys/windows/winnetwk.d
  ce637be2829c4171626233b1baaee3b2  libphobos/libdruntime/core/sys/windows/winnls.d
! ea54a4308c111abdf0d903ad3aa593b3  libphobos/libdruntime/core/sys/windows/winnt.d
  aec0a54384dea87ba5f95eef663b8cc9  libphobos/libdruntime/core/sys/windows/winperf.d
  4bb0b47e114ccad718982a27943cfb7b  libphobos/libdruntime/core/sys/windows/winreg.d
  fe106920a5b1c11c8cc331880eb4b66c  libphobos/libdruntime/core/sys/windows/winsock2.d
  3fca7b46a6f195293e8bb548f25f4bf4  libphobos/libdruntime/core/sys/windows/winspool.d
! 19e5c25cdafdbc7e8deb29076fef08d9  libphobos/libdruntime/core/sys/windows/winsvc.d
! 1aa39fbeb376dc308e00f864a387bc91  libphobos/libdruntime/core/sys/windows/winuser.d
  528e0d1a97b30643ff52942e64da30dd  libphobos/libdruntime/core/sys/windows/winver.d
  8a696576926989a12147948a41f20685  libphobos/libdruntime/core/sys/windows/wtsapi32.d
! db396938683f7ba1b2f3f8396c452873  libphobos/libdruntime/core/sys/windows/wtypes.d
  9094c28b1e25c7802bae1054ff893274  libphobos/libdruntime/core/thread/context.d
! 8503d5ac0f8faecee402e26288620d4e  libphobos/libdruntime/core/thread/fiber.d
! 3b56c6cd0e8fccc3095df5e8a7e1ddfd  libphobos/libdruntime/core/thread/osthread.d
! cc5f1b5b44f6a26421e39b60a8310c08  libphobos/libdruntime/core/thread/package.d
! e7c633f251badc9e222d3d4e4694292c  libphobos/libdruntime/core/thread/threadbase.d
  c1ed5b58527141cfd45c44e71ae05ec8  libphobos/libdruntime/core/thread/threadgroup.d
! 016b93c566a3b630a1d1d3fa7e7b1b6e  libphobos/libdruntime/core/thread/types.d
! bba70abbb96a722a9580d6d09ec286ae  libphobos/libdruntime/core/time.d
! dc2476225199a44698695428f73a3562  libphobos/libdruntime/core/vararg.d
  4cf99596b90593fec63debe10874dfdb  libphobos/libdruntime/core/volatile.d
! 064f788d347802e25a84b4176ad920a0  libphobos/libdruntime/etc/valgrind/valgrind.d
! 6d8c84f9aadc849a94d832fa65ac8d66  libphobos/libdruntime/etc/valgrind/valgrind_.c
! 4331eb5ed1992a91c2013de97074fd92  libphobos/libdruntime/gcc/attribute.d
! e5d417f7faadc01f6824cfa01ada2059  libphobos/libdruntime/gcc/attributes.d
! 4cd37d4a95d2a3e917e320bfd2d423a8  libphobos/libdruntime/gcc/backtrace.d
! 8586ed33f4c14e603eb7d9dc6620c749  libphobos/libdruntime/gcc/builtins.d
! b7f23238e46762796e559caafc270876  libphobos/libdruntime/gcc/config.d.in
! 96a0432c5a693b446e890c1eef6c6143  libphobos/libdruntime/gcc/deh.d
! 26b9478fb94850ae4f31067ba86961ff  libphobos/libdruntime/gcc/drtstuff.c
! b29a3f6fe4f026ad78316a43c913e828  libphobos/libdruntime/gcc/emutls.d
! 2dfd74c79213ebaa8a08c824b3dc6d07  libphobos/libdruntime/gcc/gthread.d
! 777697cbf3882a284bc01a0b66675233  libphobos/libdruntime/gcc/libbacktrace.d.in
! cddef933233f0f90b73fc3b13fc4aefc  libphobos/libdruntime/gcc/sections/common.d
! 8343cb3ac884329e27ff3737614ae497  libphobos/libdruntime/gcc/sections/elf.d
! 4a46c37ab5851fff53263623280074b7  libphobos/libdruntime/gcc/sections/macho.d
! 093b5a784c1912152b224d5118a978dd  libphobos/libdruntime/gcc/sections/package.d
! f7a4c074fdb2080f227c626bac9fdebe  libphobos/libdruntime/gcc/sections/pecoff.d
! 2f9fe26e24c92369114642fba7eef576  libphobos/libdruntime/gcc/simd.d
! 4a3d48522dc152b502f2ca3c61a8a540  libphobos/libdruntime/gcc/unwind/arm.d
! d1777a09203b8037c9dbc8210b48680f  libphobos/libdruntime/gcc/unwind/arm_common.d
! 09826fa63534829a63aa5206c78665e7  libphobos/libdruntime/gcc/unwind/c6x.d
! a84145920800f295853762b73d2dee99  libphobos/libdruntime/gcc/unwind/generic.d
! 4b7d947e99b9880fa9c900488a1f3513  libphobos/libdruntime/gcc/unwind/package.d
! 434d311b4b093d52fdaf4b6a418b9e55  libphobos/libdruntime/gcc/unwind/pe.d
! 7601dd5e96ee6b4c6e4d6e80a5c4a9f6  libphobos/libdruntime/object.d
! e630d4dc47182f616f9d6f5d43a72b72  libphobos/libdruntime/rt/aApply.d
! 8ac3a24eff6e1f57d5febe9f4abd7013  libphobos/libdruntime/rt/aApplyR.d
! 2741238336c2f606421a6ce22481df3a  libphobos/libdruntime/rt/aaA.d
  c50bbbb450796967c2c51cf3fef9da14  libphobos/libdruntime/rt/adi.d
  8d7590e2d80123970d6ffadec3b61738  libphobos/libdruntime/rt/arraycat.d
! cc500d00bfed0f9defeec7c3499541ae  libphobos/libdruntime/rt/cast_.d
  e356126947e7110fb24ae47490f6dde1  libphobos/libdruntime/rt/config.d
  a0ed14f9f9820952df01a04539a0f23d  libphobos/libdruntime/rt/critical_.d
  684277cb344c29190c7bb579c79a0d94  libphobos/libdruntime/rt/deh.d
! 5dc03dbd93b4cb4888c4b4786079b75f  libphobos/libdruntime/rt/dmain2.d
  94d63a76cd37f837fa8e39cf416590e6  libphobos/libdruntime/rt/dylib_fixes.c
  f3312264e684dc66345bcb692aaa1a2c  libphobos/libdruntime/rt/ehalloc.d
  558c02062a26469537c962127a6722db  libphobos/libdruntime/rt/invariant.d
! 9c4961b192d312c3def45fd063650c54  libphobos/libdruntime/rt/lifetime.d
  3256fa529b5c773a7af9a6a8a2e989cb  libphobos/libdruntime/rt/memory.d
! 3a2394a3fbf4f0a342ab9fb8c12d9159  libphobos/libdruntime/rt/minfo.d
  c86d80a9087e08b9d7e8efbcd38bd4b8  libphobos/libdruntime/rt/monitor_.d
! de5ab3f0cbaf039229851762157782f9  libphobos/libdruntime/rt/profilegc.d
! 5846d4d60a1c8b37775423575f6884c9  libphobos/libdruntime/rt/sections.d
  c7a6041a6bac5ecaf2e2688bf5eea41b  libphobos/libdruntime/rt/tlsgc.d
! 85c2317bcbedee11e33f5a5aa59bd1e8  libphobos/libdruntime/rt/util/typeinfo.d
  b44590c842b754fede38a9a70a5b2d53  libphobos/libdruntime/rt/util/utility.d
  98e21634a122597ed7abb6150c41cdbf  libphobos/m4/autoconf.m4
  cbef578492ab132e253c07ad83e6ee8a  libphobos/m4/druntime.m4
! 2157f801b8e7e6a834559bcfe402c105  libphobos/m4/druntime/cpu.m4
! 85906ebe53a95f2ccaa626b006ea0256  libphobos/m4/druntime/libraries.m4
  bcf226bf8392b2181c4c8f9a386f0a26  libphobos/m4/druntime/os.m4
  be2340569194e9c072c40fc94eab3483  libphobos/m4/gcc_support.m4
  c49ab40607849fa623787878420e7207  libphobos/m4/gdc.m4
  458abf211dc60540bf28a9257d4bd4e5  libphobos/m4/libtool.m4
  e4224ccaecb14d942c71d31bef20d78c  libphobos/src/LICENSE_1_0.txt
! 1f307b0ae375868426a82282dd3a5de1  libphobos/src/MERGE
! 35138558c181e92ae65a3202a60348c2  libphobos/src/Makefile.am
! 01152d1833902e50a9c0f4277eb7bc78  libphobos/src/Makefile.in
  ff30fe7275b03f69e2a7796e47d142e8  libphobos/src/drtstuff.spec
  880a3b4c0174fd0b918810b24dfe9acb  libphobos/src/etc/c/curl.d
! 7b80323c83065d7a653fce9728ebac50  libphobos/src/etc/c/zlib.d
  a39d2aad74f3f5fe083a190052cd9c31  libphobos/src/index.dd
  3a1ad66c3c47609c90c1f4d9cf8ddca2  libphobos/src/libgphobos.spec.in
! bafac6083c6d5c5b3eb742a3f8a8a893  libphobos/src/std/algorithm/comparison.d
  694c41f4d2a56ffa1cea9387144617a7  libphobos/src/std/algorithm/internal.d
! 04f499636461e1b627c68b9ac616d057  libphobos/src/std/algorithm/iteration.d
! 0533c3d9cf6ec970a9b654a0574eaf7e  libphobos/src/std/algorithm/mutation.d
  3f649d64367da82fd22630117d39a560  libphobos/src/std/algorithm/package.d
! 7c625913d44a56b298651f4ed6b2c11b  libphobos/src/std/algorithm/searching.d
  77167ad7cf4c80bb39eeaf62f0ed0772  libphobos/src/std/algorithm/setops.d
  8a821ea7d88ec0da604d3486e9329073  libphobos/src/std/algorithm/sorting.d
! ebaba54d54961133b1b55347002a7b2f  libphobos/src/std/array.d
  48d84292d39b7ff9bc2e13b8fa55c40c  libphobos/src/std/ascii.d
  7ea96abed440e23fc8c05ec2ad71e051  libphobos/src/std/base64.d
! a665af54f57db1fafac5f0201da6b535  libphobos/src/std/bigint.d
! ca4b9b72333032ad8ff453d7730a883a  libphobos/src/std/bitmanip.d
! 9279fe59e5a736ec3148db1f92f748c9  libphobos/src/std/checkedint.d
  5c954cc53846cbfcfdab57ef4fcb6abc  libphobos/src/std/compiler.d
! 27e0d8d1f39bb422ce3b338986d576a4  libphobos/src/std/complex.d
! 29436f485218f854d5d4493fa055021d  libphobos/src/std/concurrency.d
! 055473876e85cd377596e2eb86de9b41  libphobos/src/std/container/array.d
  b2899537b7218e7ff3c84509f244f1e3  libphobos/src/std/container/binaryheap.d
! fc676112cead2727df407a2aa05f631c  libphobos/src/std/container/dlist.d
  df3f67c15b5b7b1af94bf29d9744f005  libphobos/src/std/container/package.d
  30f546db255833e0004dd1c9f0dfa883  libphobos/src/std/container/rbtree.d
  4a327ea86a45ce1f67fa44aa634bfd06  libphobos/src/std/container/slist.d
  c8590ffcd747e9da50e3afc8e4c69111  libphobos/src/std/container/util.d
! 1dc5c608707d04f6fa269e9087a0affd  libphobos/src/std/conv.d
  6aef79b4677f6bb259b947c1c3176dfe  libphobos/src/std/csv.d
  e9d818e994a694951a607a1aaa99c921  libphobos/src/std/datetime/date.d
  8940289b80bf4d65f426f9625a18a7cc  libphobos/src/std/datetime/interval.d
! e7bc223bf781f9daca7e4f191059f339  libphobos/src/std/datetime/package.d
  60a547458b0f105a74a4ec79271e034a  libphobos/src/std/datetime/stopwatch.d
! 6fa66b107f3655fabcc67e5cd242b166  libphobos/src/std/datetime/systime.d
  4ae8ed05d6aeaee8d8fe5a89c422d5cd  libphobos/src/std/datetime/timezone.d
  221da1b10eb5da893eb97e28d5de3171  libphobos/src/std/demangle.d
  9074ecdf1c11c2074e412fd65bc86e53  libphobos/src/std/digest/crc.d
  d6b59ab3bb8a093b58e1c0dfb19b800e  libphobos/src/std/digest/hmac.d
! b47dbe3911d24e7ed5b66df2f0605ccb  libphobos/src/std/digest/md.d
  9aeb4b406d2d1f4056548c297e4e2f94  libphobos/src/std/digest/murmurhash.d
  a35cbabb8aa77d8451c285063c5c8211  libphobos/src/std/digest/package.d
  4a611bd9d6b92c30cfac32edfd614b54  libphobos/src/std/digest/ripemd.d
! 140459aad8321d6a9b0c6e380d62ebed  libphobos/src/std/digest/sha.d
  cdc3d0431aa2e54b40e0570c9a848b27  libphobos/src/std/encoding.d
! 5ef3a84849de326ced462485ad7dd947  libphobos/src/std/exception.d
  c6b20fb62f7a0f07789137e4e07c65e6  libphobos/src/std/experimental/allocator/building_blocks/affix_allocator.d
  f5a9a6e6207580b72ba6df2195748c52  libphobos/src/std/experimental/allocator/building_blocks/aligned_block_list.d
  283cb27edad5144242d015a95280ff86  libphobos/src/std/experimental/allocator/building_blocks/allocator_list.d
*************** aaab7cd4d84a361d433bb44d4301c0af  libpho
*** 111780,111796 ****
  5d22e6ee907f6a7a397f942e6fd276f0  libphobos/src/std/experimental/allocator/building_blocks/fallback_allocator.d
  dec0d094addeefa439e83569f2c74cce  libphobos/src/std/experimental/allocator/building_blocks/free_list.d
  0d50c008cf3de079b8e5ef089f66b3b9  libphobos/src/std/experimental/allocator/building_blocks/free_tree.d
! 6fbed4b6e7e24d876ce37c64f5bb3775  libphobos/src/std/experimental/allocator/building_blocks/kernighan_ritchie.d
  52b04093760e06f9eae5cf5a73ae094c  libphobos/src/std/experimental/allocator/building_blocks/null_allocator.d
  31812fc04ba5290600354280c2e1b276  libphobos/src/std/experimental/allocator/building_blocks/package.d
  e1f1ef2268cab16fb9a11654338cbb3c  libphobos/src/std/experimental/allocator/building_blocks/quantizer.d
! f01ad876c9576e5f9dc84fdae8f0f355  libphobos/src/std/experimental/allocator/building_blocks/region.d
  b746c292389ecbe3217b416ec621331f  libphobos/src/std/experimental/allocator/building_blocks/scoped_allocator.d
  6fe076faf1a642577ab57e35a170846c  libphobos/src/std/experimental/allocator/building_blocks/segregator.d
  72893e0bcb4753e434e315fbc37a8f96  libphobos/src/std/experimental/allocator/building_blocks/stats_collector.d
  e1443558a43a07fd0c77eca1c96a57b3  libphobos/src/std/experimental/allocator/common.d
  f39a9f5fa9bfdc9d8679091918adb41a  libphobos/src/std/experimental/allocator/gc_allocator.d
! f3900ee7c6222e36e06fa70fe9989cf3  libphobos/src/std/experimental/allocator/mallocator.d
  1f302837e4f8c4355c52fcababcc23a1  libphobos/src/std/experimental/allocator/mmap_allocator.d
  234f5924ff3da5c9ec2bc4b030399795  libphobos/src/std/experimental/allocator/package.d
  95d3cda8eeb16d5098af629850dc17a2  libphobos/src/std/experimental/allocator/showcase.d
--- 121828,121844 ----
  5d22e6ee907f6a7a397f942e6fd276f0  libphobos/src/std/experimental/allocator/building_blocks/fallback_allocator.d
  dec0d094addeefa439e83569f2c74cce  libphobos/src/std/experimental/allocator/building_blocks/free_list.d
  0d50c008cf3de079b8e5ef089f66b3b9  libphobos/src/std/experimental/allocator/building_blocks/free_tree.d
! 1f286a74564243215a5618419314de37  libphobos/src/std/experimental/allocator/building_blocks/kernighan_ritchie.d
  52b04093760e06f9eae5cf5a73ae094c  libphobos/src/std/experimental/allocator/building_blocks/null_allocator.d
  31812fc04ba5290600354280c2e1b276  libphobos/src/std/experimental/allocator/building_blocks/package.d
  e1f1ef2268cab16fb9a11654338cbb3c  libphobos/src/std/experimental/allocator/building_blocks/quantizer.d
! 406b3b1e889ce3c90c08e3b240287b26  libphobos/src/std/experimental/allocator/building_blocks/region.d
  b746c292389ecbe3217b416ec621331f  libphobos/src/std/experimental/allocator/building_blocks/scoped_allocator.d
  6fe076faf1a642577ab57e35a170846c  libphobos/src/std/experimental/allocator/building_blocks/segregator.d
  72893e0bcb4753e434e315fbc37a8f96  libphobos/src/std/experimental/allocator/building_blocks/stats_collector.d
  e1443558a43a07fd0c77eca1c96a57b3  libphobos/src/std/experimental/allocator/common.d
  f39a9f5fa9bfdc9d8679091918adb41a  libphobos/src/std/experimental/allocator/gc_allocator.d
! 524b84b483f90e37e4c13a7458562373  libphobos/src/std/experimental/allocator/mallocator.d
  1f302837e4f8c4355c52fcababcc23a1  libphobos/src/std/experimental/allocator/mmap_allocator.d
  234f5924ff3da5c9ec2bc4b030399795  libphobos/src/std/experimental/allocator/package.d
  95d3cda8eeb16d5098af629850dc17a2  libphobos/src/std/experimental/allocator/showcase.d
*************** f5600abfe1adcb27ff69f41acaab893b  libpho
*** 111802,111818 ****
  a6638776c1ae6dbc988632be56630654  libphobos/src/std/experimental/logger/nulllogger.d
  1d604e68182f77dfbe797dc01e78c297  libphobos/src/std/experimental/logger/package.d
  768b30d13593aba9e2715a7d868d763e  libphobos/src/std/experimental/note.md
! 1fbe3080c9ee9d0b26321f2bab210bd9  libphobos/src/std/file.d
! 72a246e914744d16160f1137787e0e8c  libphobos/src/std/format/internal/floats.d
  2d56c99084de17c03489845dd80ed3e8  libphobos/src/std/format/internal/read.d
! f95eed89aefc197994a571019a851c30  libphobos/src/std/format/internal/write.d
  847801358d0ec1715dff5e3322f5f2a0  libphobos/src/std/format/package.d
  073c9c82a5b5d074c708278ae3fbc051  libphobos/src/std/format/read.d
  354de99a99f6a44d81c3e6a59d9ab694  libphobos/src/std/format/spec.d
  178d675ce3c764789f9e8df0b7d2e27b  libphobos/src/std/format/write.d
  82b84d013507bfe1df3a7698c768ac95  libphobos/src/std/functional.d
! bd397a58bfc9c4deea39d004769e913d  libphobos/src/std/getopt.d
! aeaa7be710d3a020515ed52e4dd2bf60  libphobos/src/std/int128.d
  8bc9fa8deafb0e80277b86268d55fa53  libphobos/src/std/internal/attributes.d
  4fc3dee264a23e6b241d6b1e77fc8a4c  libphobos/src/std/internal/cstring.d
  def4283a7fd5328efa5c796fe3d08687  libphobos/src/std/internal/math/biguintcore.d
--- 121850,121866 ----
  a6638776c1ae6dbc988632be56630654  libphobos/src/std/experimental/logger/nulllogger.d
  1d604e68182f77dfbe797dc01e78c297  libphobos/src/std/experimental/logger/package.d
  768b30d13593aba9e2715a7d868d763e  libphobos/src/std/experimental/note.md
! a6652c322adcb03eacd73d3b3e5cbccd  libphobos/src/std/file.d
! 976211597fb5df3c8e4d76a7165b02b4  libphobos/src/std/format/internal/floats.d
  2d56c99084de17c03489845dd80ed3e8  libphobos/src/std/format/internal/read.d
! 2e01a84ef8bf1a9bdc977c1f351c0507  libphobos/src/std/format/internal/write.d
  847801358d0ec1715dff5e3322f5f2a0  libphobos/src/std/format/package.d
  073c9c82a5b5d074c708278ae3fbc051  libphobos/src/std/format/read.d
  354de99a99f6a44d81c3e6a59d9ab694  libphobos/src/std/format/spec.d
  178d675ce3c764789f9e8df0b7d2e27b  libphobos/src/std/format/write.d
  82b84d013507bfe1df3a7698c768ac95  libphobos/src/std/functional.d
! 2938fbfcd3766978e04fb5d0e49f4fa2  libphobos/src/std/getopt.d
! 11957193b5878bfe6d07d39ff0f92c65  libphobos/src/std/int128.d
  8bc9fa8deafb0e80277b86268d55fa53  libphobos/src/std/internal/attributes.d
  4fc3dee264a23e6b241d6b1e77fc8a4c  libphobos/src/std/internal/cstring.d
  def4283a7fd5328efa5c796fe3d08687  libphobos/src/std/internal/math/biguintcore.d
*************** b8a0549fa22a82b03b350b02592236a5  libpho
*** 111824,111886 ****
  0e5cac523b09a65e2fca9738dc08194d  libphobos/src/std/internal/test/dummyrange.d
  8c74ab50895aaf9b04b114888ade41d8  libphobos/src/std/internal/test/range.d
  9d403089f5dfdab0c5fd3b765e0e5e07  libphobos/src/std/internal/test/uda.d
! 95e79bcdbf59393804589ee45a5cc2d6  libphobos/src/std/internal/unicode_comp.d
! 6885e6e7d49885d3806c6935ce818eec  libphobos/src/std/internal/unicode_decomp.d
! 45d6ee45aedffd3e47d7df2bbef3c388  libphobos/src/std/internal/unicode_grapheme.d
! 1906db95f7b7c758ae1d417f5071ca33  libphobos/src/std/internal/unicode_norm.d
! 5bc00bb2b55328f9191be244f34c67f7  libphobos/src/std/internal/unicode_tables.d
  1032174c14b8ed750d026d9e33c0f28d  libphobos/src/std/internal/windows/advapi32.d
! 0f2a7ec10da98bc5ba19763c109c5721  libphobos/src/std/json.d
  780d576c658cd16c7975be52861dc2e3  libphobos/src/std/logger/core.d
  b0d9cdbf5d70f64ddded4a5121c713ec  libphobos/src/std/logger/filelogger.d
  23505f8d8333bbaab46e684fa3fb3e96  libphobos/src/std/logger/multilogger.d
  9c02c2498ffb731d11c25464e692a100  libphobos/src/std/logger/nulllogger.d
! 46036c98d2114ec3a2ecab14712e6020  libphobos/src/std/logger/package.d
! 54abc783aa886d972dd7a75e79ffa633  libphobos/src/std/math/algebraic.d
  3cee3970cfe6bcde0d4b6c640b9aae04  libphobos/src/std/math/constants.d
! ec08f52ee045da547c5f95954eace6f8  libphobos/src/std/math/exponential.d
! ec82ea77cc19ed347a1a6c7fd1a25379  libphobos/src/std/math/hardware.d
! baf8525a2cf99e09cae1e5773e76e76f  libphobos/src/std/math/operations.d
! c853e56e1277ff475fc9250fa6f2d36a  libphobos/src/std/math/package.d
  88694133c2ab2068b6250dbc41d3cb48  libphobos/src/std/math/remainder.d
! 6faabbbc04af40d60b9b43699f9f516b  libphobos/src/std/math/rounding.d
! e8bd9e50e4db07d1a28a96f8bef435c6  libphobos/src/std/math/traits.d
! 4fc92c75a10fe82c72b2ccd784d7c30c  libphobos/src/std/math/trigonometry.d
  7fa986b6825d8e7e1d7602c9fae96379  libphobos/src/std/mathspecial.d
  3fcc7e62612171e7a4e18b8c0053b366  libphobos/src/std/meta.d
! 147b77e1ee842c8ac29b217e5159b2e6  libphobos/src/std/mmfile.d
! 08b2db988f8716ba402dc44bd0192e0f  libphobos/src/std/net/curl.d
  c8b18b34f9ff72e666e93c31469c4e16  libphobos/src/std/net/isemail.d
  c208ca0e4a58c2a3affa9af9f75babb4  libphobos/src/std/numeric.d
  eac913027614b686f9bf7fb8438c2e21  libphobos/src/std/outbuffer.d
  f0acf0010f4a57e539c9ce4e9d0f5755  libphobos/src/std/package.d
! 5bf993de89e695e93f43bbb645414e0a  libphobos/src/std/parallelism.d
! 5e962a3f11ceafeb59e6ce7c0fab7a3b  libphobos/src/std/path.d
  6db47952f7cb0b7744925e62b37222ba  libphobos/src/std/process.d
! 49af2902e43591a4bd0f68d8a44783f9  libphobos/src/std/random.d
  c5cd4fcc3bcab89448fcfebb69227b4d  libphobos/src/std/range/interfaces.d
! 8fea1860fc7ff48e56b4ec259a5f705a  libphobos/src/std/range/package.d
! 764140340b8332c7449e9c3b367d756e  libphobos/src/std/range/primitives.d
! 5a09afc95efa24ecdcec9b5f358e4c9d  libphobos/src/std/regex/internal/backtracking.d
  44883eb43e246b6b244c1ff51ebf2822  libphobos/src/std/regex/internal/generator.d
! 01c86d99e9f6ec573a51963bd681e3b1  libphobos/src/std/regex/internal/ir.d
  12c8dadaebb3d1657fa4dce91b6111d4  libphobos/src/std/regex/internal/kickstart.d
  3e005a024d66ef29d04fc0abfdf36ec4  libphobos/src/std/regex/internal/parser.d
  ac0a9a606c95c4c1632599630d77cac4  libphobos/src/std/regex/internal/tests.d
  25f5ce0273dbf7fcc617aeb2137a0e7d  libphobos/src/std/regex/internal/tests2.d
! aeaabeccb20b26b961df5a92a0216c53  libphobos/src/std/regex/internal/thompson.d
  47cd81b1a0dc2adfe8e9da5a8ef5b63d  libphobos/src/std/regex/package.d
! ece83ca6b8d7d3df554ca657bdcc387d  libphobos/src/std/signals.d
! ae83b0beccef7d87c61258923ddc17b4  libphobos/src/std/socket.d
  65fa3f6f1125566206c3a4ac3e8adfe3  libphobos/src/std/stdint.d
! 4280b9a9ad5478179961f8735de142a7  libphobos/src/std/stdio.d
! 20ad4ee155f1e170f3b9ecab06bad676  libphobos/src/std/string.d
  ac6e9374fad99b8c7b2915f5fb6352a7  libphobos/src/std/sumtype.d
! 743fc73fb5b932ab501e2690fb60f287  libphobos/src/std/system.d
! 6411ab55aba8ea835fd5bbb2597aee3e  libphobos/src/std/traits.d
! c8f144d14b62bd4a13595cfc5882ff61  libphobos/src/std/typecons.d
  8592c7afe7a1de32c25d04e3fa0f2bca  libphobos/src/std/typetuple.d
! 4593b802a089d694b21b9a19ece97db5  libphobos/src/std/uni/package.d
  c2ff190df1f5298cbcc40494150b1d48  libphobos/src/std/uri.d
  02e3af15d679c4ea40489186f14e9889  libphobos/src/std/utf.d
  3a666d69aed573579bcbef378706e687  libphobos/src/std/uuid.d
--- 121872,121934 ----
  0e5cac523b09a65e2fca9738dc08194d  libphobos/src/std/internal/test/dummyrange.d
  8c74ab50895aaf9b04b114888ade41d8  libphobos/src/std/internal/test/range.d
  9d403089f5dfdab0c5fd3b765e0e5e07  libphobos/src/std/internal/test/uda.d
! 2785e71fec656b49a8c7c665e80c8556  libphobos/src/std/internal/unicode_comp.d
! a241c282cddf2e540a3f6ec2b88cbcfb  libphobos/src/std/internal/unicode_decomp.d
! 4eaa836318c02313f4c8be01c7483653  libphobos/src/std/internal/unicode_grapheme.d
! 3843dc0ff5434dcb9394240df32fcf7a  libphobos/src/std/internal/unicode_norm.d
! ac0b4166967b6dd819ac399549114615  libphobos/src/std/internal/unicode_tables.d
  1032174c14b8ed750d026d9e33c0f28d  libphobos/src/std/internal/windows/advapi32.d
! 977c8cb29f21a77968e0dfa01c1490f1  libphobos/src/std/json.d
  780d576c658cd16c7975be52861dc2e3  libphobos/src/std/logger/core.d
  b0d9cdbf5d70f64ddded4a5121c713ec  libphobos/src/std/logger/filelogger.d
  23505f8d8333bbaab46e684fa3fb3e96  libphobos/src/std/logger/multilogger.d
  9c02c2498ffb731d11c25464e692a100  libphobos/src/std/logger/nulllogger.d
! 69eef3f1b948c22c779c79538ac05be4  libphobos/src/std/logger/package.d
! af29243d3e3bd97e16d14e4f1a58a501  libphobos/src/std/math/algebraic.d
  3cee3970cfe6bcde0d4b6c640b9aae04  libphobos/src/std/math/constants.d
! 500d3ac2883785702dd9c58bc42e3f35  libphobos/src/std/math/exponential.d
! 54ccd43663b5e6283b154a35ec5d3e01  libphobos/src/std/math/hardware.d
! 08c5e8d9445965530815cbd600156aa0  libphobos/src/std/math/operations.d
! ffd91c7d720a05cc92297bfa00f7150d  libphobos/src/std/math/package.d
  88694133c2ab2068b6250dbc41d3cb48  libphobos/src/std/math/remainder.d
! 6580ac141a96217548a775ef479d307a  libphobos/src/std/math/rounding.d
! 084ca4a2c5533593101163c36ab0501f  libphobos/src/std/math/traits.d
! bb6782b1bf2a9aaca15560a63e26a8c7  libphobos/src/std/math/trigonometry.d
  7fa986b6825d8e7e1d7602c9fae96379  libphobos/src/std/mathspecial.d
  3fcc7e62612171e7a4e18b8c0053b366  libphobos/src/std/meta.d
! 5204762dc86326245efda7ef0935652e  libphobos/src/std/mmfile.d
! 324cfce8206dca065f4e47477d434cdd  libphobos/src/std/net/curl.d
  c8b18b34f9ff72e666e93c31469c4e16  libphobos/src/std/net/isemail.d
  c208ca0e4a58c2a3affa9af9f75babb4  libphobos/src/std/numeric.d
  eac913027614b686f9bf7fb8438c2e21  libphobos/src/std/outbuffer.d
  f0acf0010f4a57e539c9ce4e9d0f5755  libphobos/src/std/package.d
! 3d54ba1f0614c3b254af66b1eca2baf9  libphobos/src/std/parallelism.d
! 057e4a4c98d8baa927a558db9bf978ee  libphobos/src/std/path.d
  6db47952f7cb0b7744925e62b37222ba  libphobos/src/std/process.d
! 9e3ece745db94141913113cbef55309e  libphobos/src/std/random.d
  c5cd4fcc3bcab89448fcfebb69227b4d  libphobos/src/std/range/interfaces.d
! 222e444cb6208cedac0f7c972859639b  libphobos/src/std/range/package.d
! b8c3f6213d2eb81fb5e36b608482a923  libphobos/src/std/range/primitives.d
! 3a226e10429f635b7ee2c4ab63c866cc  libphobos/src/std/regex/internal/backtracking.d
  44883eb43e246b6b244c1ff51ebf2822  libphobos/src/std/regex/internal/generator.d
! 5ce8cc5e47d819f159eed7f025fce734  libphobos/src/std/regex/internal/ir.d
  12c8dadaebb3d1657fa4dce91b6111d4  libphobos/src/std/regex/internal/kickstart.d
  3e005a024d66ef29d04fc0abfdf36ec4  libphobos/src/std/regex/internal/parser.d
  ac0a9a606c95c4c1632599630d77cac4  libphobos/src/std/regex/internal/tests.d
  25f5ce0273dbf7fcc617aeb2137a0e7d  libphobos/src/std/regex/internal/tests2.d
! 14cb36bc3700d8a23494855192c0a666  libphobos/src/std/regex/internal/thompson.d
  47cd81b1a0dc2adfe8e9da5a8ef5b63d  libphobos/src/std/regex/package.d
! 86f746e01b6b2e0e808ade6f5dd08299  libphobos/src/std/signals.d
! 1893b4778036875546ea908f7ba063b7  libphobos/src/std/socket.d
  65fa3f6f1125566206c3a4ac3e8adfe3  libphobos/src/std/stdint.d
! e6e16482f18ebfe56b7271654bb1f366  libphobos/src/std/stdio.d
! b18b68b6b03d53ae603467bb670b5f76  libphobos/src/std/string.d
  ac6e9374fad99b8c7b2915f5fb6352a7  libphobos/src/std/sumtype.d
! fe0985971c6aad99d6e99e55e8705f09  libphobos/src/std/system.d
! af7b78b412f998a53a42c724c1c6b8aa  libphobos/src/std/traits.d
! 13cb16d41c02ecdf5dab9cc69aab0231  libphobos/src/std/typecons.d
  8592c7afe7a1de32c25d04e3fa0f2bca  libphobos/src/std/typetuple.d
! 30921375e2f8270111d077550b288075  libphobos/src/std/uni/package.d
  c2ff190df1f5298cbcc40494150b1d48  libphobos/src/std/uri.d
  02e3af15d679c4ea40489186f14e9889  libphobos/src/std/utf.d
  3a666d69aed573579bcbef378706e687  libphobos/src/std/uuid.d
*************** dd46a2873cda836b4a607e35ac2a3835  libpho
*** 111890,111908 ****
  2d02a363c97346a106c63e9894a52b65  libphobos/src/std/windows/syserror.d
  87f26ae34d849b4750d292a331ff26aa  libphobos/src/std/zip.d
  4e04d19560e31a1b8b799dd43fcd51f8  libphobos/src/std/zlib.d
! 51f8fa93891dd6867b9da9f06059ab13  libphobos/testsuite/Makefile.am
  a13be93a99fb4f3ac1cd895ac34c9305  libphobos/testsuite/Makefile.in
! a8d26f543d3393bcb27983e0b5b633ac  libphobos/testsuite/config/default.exp
! e2e6ee5954aaef0018256f2e68120125  libphobos/testsuite/lib/libphobos-dg.exp
! 5cc2d02560dd9b826df0d93e75333a6e  libphobos/testsuite/lib/libphobos.exp
! 30f70bc08e80927893153082649fe4b9  libphobos/testsuite/libphobos.aa/aa.exp
  f242f91c78645f5850aa6ef68c87ebab  libphobos/testsuite/libphobos.aa/test_aa.d
  d86b969dda21cc9af1483872e4a3dcc8  libphobos/testsuite/libphobos.allocations/alloc_from_assert.d
! 2536d9c16179e1ea2562f422c293c1ef  libphobos/testsuite/libphobos.allocations/allocations.exp
  7dfee0831ce08cfd971056dee5ce8519  libphobos/testsuite/libphobos.allocations/overflow_from_existing.d
  39b50d25dc11230fd4d61a9d7c8cf7a0  libphobos/testsuite/libphobos.allocations/overflow_from_zero.d
  94c17250a195da16fb246ef8e28d3477  libphobos/testsuite/libphobos.allocations/tls_gc_integration.d
! dec139219bc2572d79655208f1eba1c5  libphobos/testsuite/libphobos.betterc/betterc.exp
  62bfbf82ba7ca2ce9c06e31251b5f47c  libphobos/testsuite/libphobos.betterc/test18828.d
  2ffa89e25b800dccc9be63ee4390ba9c  libphobos/testsuite/libphobos.betterc/test19416.d
  30aa08f7286c05e97e1c42ab62639574  libphobos/testsuite/libphobos.betterc/test19421.d
--- 121938,121956 ----
  2d02a363c97346a106c63e9894a52b65  libphobos/src/std/windows/syserror.d
  87f26ae34d849b4750d292a331ff26aa  libphobos/src/std/zip.d
  4e04d19560e31a1b8b799dd43fcd51f8  libphobos/src/std/zlib.d
! 3f809a672d932120f0ea2cc14efd1f05  libphobos/testsuite/Makefile.am
  a13be93a99fb4f3ac1cd895ac34c9305  libphobos/testsuite/Makefile.in
! 26d4dbdecfd9edab4a140b504a68c410  libphobos/testsuite/config/default.exp
! bcfb2568d144d8de04fa2053b76a2374  libphobos/testsuite/lib/libphobos-dg.exp
! ff5b895c0150bf7105d229cddb071575  libphobos/testsuite/lib/libphobos.exp
! 6eadc264766c9b3b79822cf2f6cf7ac6  libphobos/testsuite/libphobos.aa/aa.exp
  f242f91c78645f5850aa6ef68c87ebab  libphobos/testsuite/libphobos.aa/test_aa.d
  d86b969dda21cc9af1483872e4a3dcc8  libphobos/testsuite/libphobos.allocations/alloc_from_assert.d
! a0c6a04a054e8039874616de508b762b  libphobos/testsuite/libphobos.allocations/allocations.exp
  7dfee0831ce08cfd971056dee5ce8519  libphobos/testsuite/libphobos.allocations/overflow_from_existing.d
  39b50d25dc11230fd4d61a9d7c8cf7a0  libphobos/testsuite/libphobos.allocations/overflow_from_zero.d
  94c17250a195da16fb246ef8e28d3477  libphobos/testsuite/libphobos.allocations/tls_gc_integration.d
! bdaae3221bc8758c33f56709d7db187f  libphobos/testsuite/libphobos.betterc/betterc.exp
  62bfbf82ba7ca2ce9c06e31251b5f47c  libphobos/testsuite/libphobos.betterc/test18828.d
  2ffa89e25b800dccc9be63ee4390ba9c  libphobos/testsuite/libphobos.betterc/test19416.d
  30aa08f7286c05e97e1c42ab62639574  libphobos/testsuite/libphobos.betterc/test19421.d
*************** dff431eaf273342c672aaf2c74ab92a6  libpho
*** 111912,111931 ****
  ac1556b23f971f5009959fb07f8166bf  libphobos/testsuite/libphobos.betterc/test20088.d
  3589455e03e693d6f583052b791e5f4f  libphobos/testsuite/libphobos.betterc/test20613.d
  a3cb48ed7c054296fe69ea02aaa283ef  libphobos/testsuite/libphobos.betterc/test22336.d
! df51905f51c68a5595a452c8f28502f1  libphobos/testsuite/libphobos.config/config.exp
  0e3c934dac31e4a869413c3f3969211e  libphobos/testsuite/libphobos.config/test19433.d
  4c5e592032e7cbd4c033dc9af9201db0  libphobos/testsuite/libphobos.config/test20459.d
  4cda878bfbdcad844a4124b36664f4a8  libphobos/testsuite/libphobos.config/test22523.d
! fff6c66856948e0bf98e183bd02c5e5d  libphobos/testsuite/libphobos.cycles/cycles.exp
  1d8fc1ccfee07e211685dad723c7c5ef  libphobos/testsuite/libphobos.cycles/mod1.d
  504ac65b81c5b13426dbccb387e5ea96  libphobos/testsuite/libphobos.cycles/mod2.d
  8fd2e066de9b173803c23766ec268bc6  libphobos/testsuite/libphobos.cycles/mod3.d
! b0307ec2470c07e402252afc2a9e61f6  libphobos/testsuite/libphobos.druntime/druntime.exp
! f805ca8e2ebdb0e1bacf88147e661795  libphobos/testsuite/libphobos.druntime_shared/druntime_shared.exp
  1b0ad49679c9a06598cfe65b1f98773d  libphobos/testsuite/libphobos.exceptions/assert_fail.d
  0853067452a85c65ff3629b907628f4d  libphobos/testsuite/libphobos.exceptions/catch_in_finally.d
  53adf2e14495ca10a85a32022b69fa86  libphobos/testsuite/libphobos.exceptions/chain.d
! 2536d9c16179e1ea2562f422c293c1ef  libphobos/testsuite/libphobos.exceptions/exceptions.exp
  d595be7092b8db6d94bfdad2f3582157  libphobos/testsuite/libphobos.exceptions/future_message.d
  17d3680e349b715f2c8ae4cd23ab5dc5  libphobos/testsuite/libphobos.exceptions/invalid_memory_operation.d
  f20a3bb9bc82bda410377ab87e9dfa75  libphobos/testsuite/libphobos.exceptions/line_trace.d
--- 121960,121979 ----
  ac1556b23f971f5009959fb07f8166bf  libphobos/testsuite/libphobos.betterc/test20088.d
  3589455e03e693d6f583052b791e5f4f  libphobos/testsuite/libphobos.betterc/test20613.d
  a3cb48ed7c054296fe69ea02aaa283ef  libphobos/testsuite/libphobos.betterc/test22336.d
! 9568c12ad345ce998afc52fd4471fd6b  libphobos/testsuite/libphobos.config/config.exp
  0e3c934dac31e4a869413c3f3969211e  libphobos/testsuite/libphobos.config/test19433.d
  4c5e592032e7cbd4c033dc9af9201db0  libphobos/testsuite/libphobos.config/test20459.d
  4cda878bfbdcad844a4124b36664f4a8  libphobos/testsuite/libphobos.config/test22523.d
! ad37222e975e5a8ba11cd880dd9e086e  libphobos/testsuite/libphobos.cycles/cycles.exp
  1d8fc1ccfee07e211685dad723c7c5ef  libphobos/testsuite/libphobos.cycles/mod1.d
  504ac65b81c5b13426dbccb387e5ea96  libphobos/testsuite/libphobos.cycles/mod2.d
  8fd2e066de9b173803c23766ec268bc6  libphobos/testsuite/libphobos.cycles/mod3.d
! 5eb2fa105c72138ef50f17293fb67263  libphobos/testsuite/libphobos.druntime/druntime.exp
! 55fb86e02e95c6d008e1fe6f0376a781  libphobos/testsuite/libphobos.druntime_shared/druntime_shared.exp
  1b0ad49679c9a06598cfe65b1f98773d  libphobos/testsuite/libphobos.exceptions/assert_fail.d
  0853067452a85c65ff3629b907628f4d  libphobos/testsuite/libphobos.exceptions/catch_in_finally.d
  53adf2e14495ca10a85a32022b69fa86  libphobos/testsuite/libphobos.exceptions/chain.d
! a0c6a04a054e8039874616de508b762b  libphobos/testsuite/libphobos.exceptions/exceptions.exp
  d595be7092b8db6d94bfdad2f3582157  libphobos/testsuite/libphobos.exceptions/future_message.d
  17d3680e349b715f2c8ae4cd23ab5dc5  libphobos/testsuite/libphobos.exceptions/invalid_memory_operation.d
  f20a3bb9bc82bda410377ab87e9dfa75  libphobos/testsuite/libphobos.exceptions/line_trace.d
*************** bf5b834c84dce34c411728d08e740501  libpho
*** 111941,111966 ****
  b6ebfcdaf3a8630eae6d2fea0200d718  libphobos/testsuite/libphobos.gc/attributes.d
  5becf076c0fa4681b6900d0d305d77c1  libphobos/testsuite/libphobos.gc/forkgc.d
  df3ff72b86d93171f71ffc809fb04d95  libphobos/testsuite/libphobos.gc/forkgc2.d
! b90746106e4bf3a87298f841b4766549  libphobos/testsuite/libphobos.gc/gc.exp
  3c24ec9d3e8f2608213d6879c1ee28bd  libphobos/testsuite/libphobos.gc/issue22843.d
  0cf45bd3741c0d5bed6c685e04bca300  libphobos/testsuite/libphobos.gc/nocollect.d
  96e067519bb8d41abce482b6595333aa  libphobos/testsuite/libphobos.gc/precisegc.d
  84728e02159c56717e2c7bbd57b0b7ea  libphobos/testsuite/libphobos.gc/recoverfree.d
  72c768e90bab4bb63d0d95c0f1d95f23  libphobos/testsuite/libphobos.gc/sigmaskgc.d
  1c1428f89e3640506d3d1b88c74aa9cd  libphobos/testsuite/libphobos.gc/startbackgc.d
! 30f70bc08e80927893153082649fe4b9  libphobos/testsuite/libphobos.hash/hash.exp
! a3869323d9fd8f14f58062c273a96f94  libphobos/testsuite/libphobos.hash/test_hash.d
  d132751bd41e111dc5e97a83ea5cfe55  libphobos/testsuite/libphobos.imports/bug18193.d
! eddf200040764afe5fb223c30c734db1  libphobos/testsuite/libphobos.imports/imports.exp
  153b71c5896b0bfb4056c4c457d01283  libphobos/testsuite/libphobos.init_fini/custom_gc.d
! a22059ee33ae8a95ba33ea163e5a2b92  libphobos/testsuite/libphobos.init_fini/init_fini.exp
  b6bbf47234f6bdb61c628cae44fb04f9  libphobos/testsuite/libphobos.init_fini/runtime_args.d
  6e0f2e6611c4974eb8f6ad893e3243c9  libphobos/testsuite/libphobos.init_fini/test18996.d
  6cf643d2e05d4806362cf62c56562e5e  libphobos/testsuite/libphobos.init_fini/thread_join.d
  f237366ab4e39b3e3dcfc8bafcde881e  libphobos/testsuite/libphobos.lifetime/large_aggregate_destroy_21097.d
! b90746106e4bf3a87298f841b4766549  libphobos/testsuite/libphobos.lifetime/lifetime.exp
! 20b8bc6f7b0292d8212c7158f441ca69  libphobos/testsuite/libphobos.phobos/phobos.exp
! 71784d44ac1245cbc04271da3d614c10  libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp
  dc9924675718952b484eadd2d458553a  libphobos/testsuite/libphobos.shared/finalize.d
  a0025a5aec846b3bd54d13311de970b6  libphobos/testsuite/libphobos.shared/host.c
  568552f233800fa4522238fe4c907fb7  libphobos/testsuite/libphobos.shared/lib.d
--- 121989,122014 ----
  b6ebfcdaf3a8630eae6d2fea0200d718  libphobos/testsuite/libphobos.gc/attributes.d
  5becf076c0fa4681b6900d0d305d77c1  libphobos/testsuite/libphobos.gc/forkgc.d
  df3ff72b86d93171f71ffc809fb04d95  libphobos/testsuite/libphobos.gc/forkgc2.d
! d8c41cf936b3d001c32c1e8220c7dec2  libphobos/testsuite/libphobos.gc/gc.exp
  3c24ec9d3e8f2608213d6879c1ee28bd  libphobos/testsuite/libphobos.gc/issue22843.d
  0cf45bd3741c0d5bed6c685e04bca300  libphobos/testsuite/libphobos.gc/nocollect.d
  96e067519bb8d41abce482b6595333aa  libphobos/testsuite/libphobos.gc/precisegc.d
  84728e02159c56717e2c7bbd57b0b7ea  libphobos/testsuite/libphobos.gc/recoverfree.d
  72c768e90bab4bb63d0d95c0f1d95f23  libphobos/testsuite/libphobos.gc/sigmaskgc.d
  1c1428f89e3640506d3d1b88c74aa9cd  libphobos/testsuite/libphobos.gc/startbackgc.d
! 6eadc264766c9b3b79822cf2f6cf7ac6  libphobos/testsuite/libphobos.hash/hash.exp
! 09b51557521e7370eafd85d775bc966a  libphobos/testsuite/libphobos.hash/test_hash.d
  d132751bd41e111dc5e97a83ea5cfe55  libphobos/testsuite/libphobos.imports/bug18193.d
! 4098fb94f12708ed89afab26768ac923  libphobos/testsuite/libphobos.imports/imports.exp
  153b71c5896b0bfb4056c4c457d01283  libphobos/testsuite/libphobos.init_fini/custom_gc.d
! f4d2d6c778ba2ba530934efab69ec1ee  libphobos/testsuite/libphobos.init_fini/init_fini.exp
  b6bbf47234f6bdb61c628cae44fb04f9  libphobos/testsuite/libphobos.init_fini/runtime_args.d
  6e0f2e6611c4974eb8f6ad893e3243c9  libphobos/testsuite/libphobos.init_fini/test18996.d
  6cf643d2e05d4806362cf62c56562e5e  libphobos/testsuite/libphobos.init_fini/thread_join.d
  f237366ab4e39b3e3dcfc8bafcde881e  libphobos/testsuite/libphobos.lifetime/large_aggregate_destroy_21097.d
! d8c41cf936b3d001c32c1e8220c7dec2  libphobos/testsuite/libphobos.lifetime/lifetime.exp
! 1bddd0113715cd335794274893717e1c  libphobos/testsuite/libphobos.phobos/phobos.exp
! 03d5b2f7d644749fc7714531a3f8427a  libphobos/testsuite/libphobos.phobos_shared/phobos_shared.exp
  dc9924675718952b484eadd2d458553a  libphobos/testsuite/libphobos.shared/finalize.d
  a0025a5aec846b3bd54d13311de970b6  libphobos/testsuite/libphobos.shared/host.c
  568552f233800fa4522238fe4c907fb7  libphobos/testsuite/libphobos.shared/lib.d
*************** df4c464d966dbbdce054e9d59018c866  libpho
*** 111978,112012 ****
  153e2bfb582dbfcdbcdcea85ff915dc9  libphobos/testsuite/libphobos.shared/load_linkdep.d
  d3c9a66f75a4c0e9517bb616aa64dbf0  libphobos/testsuite/libphobos.shared/load_loaddep.d
  7208bfcc87f14bf3c973fd0046246456  libphobos/testsuite/libphobos.shared/plugin.d
! 6de6b8c69574a860611a6bcf62aa5263  libphobos/testsuite/libphobos.shared/shared.exp
  d76a16e148ca6be28bb070949f541b19  libphobos/testsuite/libphobos.thread/external_threads.d
  2d54a30ddb78b9f0a38814a319846450  libphobos/testsuite/libphobos.thread/fiber_guard_page.d
  3e309c288aff9749089ac68af091756f  libphobos/testsuite/libphobos.thread/join_detach.d
  42d85aa4daa1f572a3dd573c6b4a7b79  libphobos/testsuite/libphobos.thread/test_import.d
! 2536d9c16179e1ea2562f422c293c1ef  libphobos/testsuite/libphobos.thread/thread.exp
  d57071e219935d7e85956a6a6cffdee8  libphobos/testsuite/libphobos.thread/tlsgc_sections.d
  2ae1787b8a29d9e252614d3d8c1c2e1e  libphobos/testsuite/libphobos.thread/tlsstack.d
  78f60a158455ee76966df72c07eb01b2  libphobos/testsuite/libphobos.traits/all_satisfy.d
! b90746106e4bf3a87298f841b4766549  libphobos/testsuite/libphobos.traits/traits.exp
  78729aa84444a843eaada3c2e3a17e43  libphobos/testsuite/libphobos.typeinfo/comparison.d
  022137c81bdd2f5b3a98cba92fdad9a7  libphobos/testsuite/libphobos.typeinfo/enum_.d
  42891afbce3f3a03e17ba0e0e4b6dadd  libphobos/testsuite/libphobos.typeinfo/isbaseof.d
  f0442e8b8974938ded0d17389f8b0608  libphobos/testsuite/libphobos.typeinfo/struct-align.d
! a22059ee33ae8a95ba33ea163e5a2b92  libphobos/testsuite/libphobos.typeinfo/typeinfo.exp
  d3ca33295a3a7d8dce98defab11dd626  libphobos/testsuite/libphobos.unittest/customhandler.d
! 020279de8eacb878931ae40833bd6508  libphobos/testsuite/libphobos.unittest/unittest.exp
! bf9a9859c3d5e0581c756501aefba7b9  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! b7fc5610b062539a2d88968964804b05  libquadmath/ChangeLog
! 4696eddf264dd090e144b4849b0a6d91  libquadmath/Makefile.am
! 644a78a01d94abe28b364eaa21142d82  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
  1a1d1b5a61d685d544d98ec2e4b86d5a  libquadmath/aclocal.m4
  cf5a7864ff15ab4dd1604e0f6fe4e501  libquadmath/config.h.in
! 035eb12396ed54eabc107d50a6093049  libquadmath/configure
! 06e51379889d00dc467f2a2d496fa0a7  libquadmath/configure.ac
! 70f6009f2a5b2ed91b92a70a33e73c0c  libquadmath/libquadmath.info
! a385ffa67608997e98aa725913cf5169  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  452fee0ef153d65eb7413a5103c63a23  libquadmath/math/acoshq.c
  c4c7d5ffedb33360fdfb16dc037faf46  libquadmath/math/acosq.c
--- 122026,122060 ----
  153e2bfb582dbfcdbcdcea85ff915dc9  libphobos/testsuite/libphobos.shared/load_linkdep.d
  d3c9a66f75a4c0e9517bb616aa64dbf0  libphobos/testsuite/libphobos.shared/load_loaddep.d
  7208bfcc87f14bf3c973fd0046246456  libphobos/testsuite/libphobos.shared/plugin.d
! db23d67e304fef662cbb022876fb5b39  libphobos/testsuite/libphobos.shared/shared.exp
  d76a16e148ca6be28bb070949f541b19  libphobos/testsuite/libphobos.thread/external_threads.d
  2d54a30ddb78b9f0a38814a319846450  libphobos/testsuite/libphobos.thread/fiber_guard_page.d
  3e309c288aff9749089ac68af091756f  libphobos/testsuite/libphobos.thread/join_detach.d
  42d85aa4daa1f572a3dd573c6b4a7b79  libphobos/testsuite/libphobos.thread/test_import.d
! a0c6a04a054e8039874616de508b762b  libphobos/testsuite/libphobos.thread/thread.exp
  d57071e219935d7e85956a6a6cffdee8  libphobos/testsuite/libphobos.thread/tlsgc_sections.d
  2ae1787b8a29d9e252614d3d8c1c2e1e  libphobos/testsuite/libphobos.thread/tlsstack.d
  78f60a158455ee76966df72c07eb01b2  libphobos/testsuite/libphobos.traits/all_satisfy.d
! d8c41cf936b3d001c32c1e8220c7dec2  libphobos/testsuite/libphobos.traits/traits.exp
  78729aa84444a843eaada3c2e3a17e43  libphobos/testsuite/libphobos.typeinfo/comparison.d
  022137c81bdd2f5b3a98cba92fdad9a7  libphobos/testsuite/libphobos.typeinfo/enum_.d
  42891afbce3f3a03e17ba0e0e4b6dadd  libphobos/testsuite/libphobos.typeinfo/isbaseof.d
  f0442e8b8974938ded0d17389f8b0608  libphobos/testsuite/libphobos.typeinfo/struct-align.d
! f4d2d6c778ba2ba530934efab69ec1ee  libphobos/testsuite/libphobos.typeinfo/typeinfo.exp
  d3ca33295a3a7d8dce98defab11dd626  libphobos/testsuite/libphobos.unittest/customhandler.d
! e8c6c7ce87398e5528d094d325ad0d64  libphobos/testsuite/libphobos.unittest/unittest.exp
! 3f7137aeb14bd1df731b34e20c45ef12  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! 7e292bcffc7ec70ff1846f0b856d97e3  libquadmath/ChangeLog
! 435cab15ca3343eca0a698d93f37535a  libquadmath/Makefile.am
! bc41a993c2663da681a20a57613ef4cb  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
  1a1d1b5a61d685d544d98ec2e4b86d5a  libquadmath/aclocal.m4
  cf5a7864ff15ab4dd1604e0f6fe4e501  libquadmath/config.h.in
! b0fb0357e8376eb193456514d3a58cee  libquadmath/configure
! 5bc83c23c51ac78bff9270eabbe4264b  libquadmath/configure.ac
! ed98481a16edb9fb5819a58ec678b2f5  libquadmath/libquadmath.info
! f22088f045dba6416a9a844acf7238b0  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  452fee0ef153d65eb7413a5103c63a23  libquadmath/math/acoshq.c
  c4c7d5ffedb33360fdfb16dc037faf46  libquadmath/math/acosq.c
*************** b16071854b0ba44a8f5e8cc68d57736a  libqua
*** 112096,112102 ****
  3ae505f55493f603f06df805c94e5218  libquadmath/math/sinhq.c
  ad657d32c64f4effd3a5d2250166ab7d  libquadmath/math/sinq.c
  d958e9e1df84ea84c5591ce130a7a7f6  libquadmath/math/sinq_kernel.c
! f9a62ab6ed3aca71c0e3ac759cb7d42f  libquadmath/math/sqrtq.c
  e6f79fda2700217261ed0304e78655b2  libquadmath/math/tanhq.c
  15a7d86ab44ef64e95dcb7eaaf880380  libquadmath/math/tanq.c
  2b435591dee49c47f54e15477b5a80a1  libquadmath/math/tanq_kernel.c
--- 122144,122150 ----
  3ae505f55493f603f06df805c94e5218  libquadmath/math/sinhq.c
  ad657d32c64f4effd3a5d2250166ab7d  libquadmath/math/sinq.c
  d958e9e1df84ea84c5591ce130a7a7f6  libquadmath/math/sinq_kernel.c
! a15bd19f47dc594b0bbc03674c8848c7  libquadmath/math/sqrtq.c
  e6f79fda2700217261ed0304e78655b2  libquadmath/math/tanhq.c
  15a7d86ab44ef64e95dcb7eaaf880380  libquadmath/math/tanq.c
  2b435591dee49c47f54e15477b5a80a1  libquadmath/math/tanq_kernel.c
*************** f82ab3e76785fdb6583fcc500defddc5  libqua
*** 112119,112126 ****
  dccfb932e7a4ec8c89731a6c7a7a9b82  libquadmath/printf/mul.c
  1cfc3bffd2c94cb06e55b49841dc8f7f  libquadmath/printf/mul_1.c
  f387f032d813cca837e7cf5477e2f6d5  libquadmath/printf/mul_n.c
! 155ece2d5e94e8539083ccfb4779c856  libquadmath/printf/printf_fp.c
! d372c1026983b3d0a5d2fca4a2ff5226  libquadmath/printf/printf_fphex.c
  e1960c6cccb78a5a2d60bdfe428c9d1b  libquadmath/printf/quadmath-printf.c
  793f681760a8266fc2adf2810355df6a  libquadmath/printf/quadmath-printf.h
  4d100ac07c5c1c4033ef4b9f60c96605  libquadmath/printf/rshift.c
--- 122167,122174 ----
  dccfb932e7a4ec8c89731a6c7a7a9b82  libquadmath/printf/mul.c
  1cfc3bffd2c94cb06e55b49841dc8f7f  libquadmath/printf/mul_1.c
  f387f032d813cca837e7cf5477e2f6d5  libquadmath/printf/mul_n.c
! 8f689c2eecdac18dd2ba0d5492bfcd5d  libquadmath/printf/printf_fp.c
! 9bc3ff4862b4fe31d0be46abc64a8bc4  libquadmath/printf/printf_fphex.c
  e1960c6cccb78a5a2d60bdfe428c9d1b  libquadmath/printf/quadmath-printf.c
  793f681760a8266fc2adf2810355df6a  libquadmath/printf/quadmath-printf.h
  4d100ac07c5c1c4033ef4b9f60c96605  libquadmath/printf/rshift.c
*************** d2588a7f4e04e453e8926777100a5490  libqua
*** 112131,112277 ****
  5d8430b45b7108d7bc3b0258d2ae154a  libquadmath/quadmath.h
  cd139c8f7066ccd99c46052b7b67b2cb  libquadmath/quadmath.map
  a21481cfd0382ef41901608376f2161c  libquadmath/quadmath_weak.h
  e766022f8615b72cbc38335d262e9d3d  libquadmath/strtod/grouping.h
  a73fdec6746eaad8ccdc8e8403aac562  libquadmath/strtod/mpn2flt128.c
  e0bd9b8669e44ec6010f92da1d5188ad  libquadmath/strtod/strtod_l.c
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! dac57504e02c60e0be1a7b17227b468b  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
! 29e193ebd43391db91cd7be26d8cd169  libsanitizer/LOCAL_PATCHES
! 9d8beb62349012600255eaaf479cb595  libsanitizer/MERGE
  843b9a7b22b34445ab6cc181f7afd30b  libsanitizer/Makefile.am
! ffe31b8699180006bfdaadd8f9c34bbe  libsanitizer/Makefile.in
  af677523339d9108ea25d6905226bf0a  libsanitizer/README.gcc
  9fefac8c0974bfaa97f7bd2eba2ecb55  libsanitizer/acinclude.m4
  9157157843ddc468aad53af489d0645c  libsanitizer/aclocal.m4
! a17c4fac84d617d97a39525f0f8d4ba7  libsanitizer/asan/Makefile.am
! 9eee12b9beb864b246f96cc1f33f0c1e  libsanitizer/asan/Makefile.in
  d07e95f3fda97a66cd02b78623fb2c53  libsanitizer/asan/asan_activation.cpp
  49679f380cb38cd6671d4d18b3c103e2  libsanitizer/asan/asan_activation.h
  acd6633a0710d8be6454db6d024d7aa9  libsanitizer/asan/asan_activation_flags.inc
! d3796fde2b29e51b88a60bdbeb1ab2e3  libsanitizer/asan/asan_allocator.cpp
! bf6a80b2d13b6db9134b3e4b8c7e9f47  libsanitizer/asan/asan_allocator.h
  67d7800157dbc7b40cc249055cc0b614  libsanitizer/asan/asan_debugging.cpp
! 06ac8a06d73042d8aad7ef4ff796173f  libsanitizer/asan/asan_descriptions.cpp
  7b358db7fce5735bf54b9bd9ee5fea48  libsanitizer/asan/asan_descriptions.h
! 1498ee8f39d827a27132de48837df5ba  libsanitizer/asan/asan_errors.cpp
! 0326a61101a98a3b9f90930943582781  libsanitizer/asan/asan_errors.h
! fa5fea8b35c165c9e87e0305fb6b819c  libsanitizer/asan/asan_fake_stack.cpp
  a15f0895968debeada4576d3f50cd49f  libsanitizer/asan/asan_fake_stack.h
  9aaecaf4a2d8dc7ab105857316357556  libsanitizer/asan/asan_flags.cpp
  62bf4dd74e13c5de98bece330fca0dae  libsanitizer/asan/asan_flags.h
  37604152159e9b0a148b7f9488ff5b51  libsanitizer/asan/asan_flags.inc
  ec768daab10de71351888f3fab66b944  libsanitizer/asan/asan_fuchsia.cpp
! b7d7ebf100599d93461dbfb7c2ddd6ba  libsanitizer/asan/asan_globals.cpp
  6f0a3e5b544abc4a7e05109d94bc01f6  libsanitizer/asan/asan_globals_win.cpp
  70bdc70f05ca1bf6f615ea7609e3bf8c  libsanitizer/asan/asan_init_version.h
! b76d2afb5f75527c5e5599462d2bfac6  libsanitizer/asan/asan_interceptors.cpp
! d9b413d7efd6c6fc584832760322b34c  libsanitizer/asan/asan_interceptors.h
! 5cbebdef2336f3a275011ccd0c2c0c62  libsanitizer/asan/asan_interceptors_memintrinsics.cpp
! 9da99fc4ea705f7e1c8f8d2d8f486774  libsanitizer/asan/asan_interceptors_memintrinsics.h
  47d1026d8b2923487aef9553f134bfe8  libsanitizer/asan/asan_interceptors_vfork.S
  1e7d255fa2c1933020b98cfd75b1d1e6  libsanitizer/asan/asan_interface.inc
  08eb391a8b97f054ee0255e42f76dd82  libsanitizer/asan/asan_interface_internal.h
! bba608339744a09ee5fb6640d1fbb550  libsanitizer/asan/asan_internal.h
! 67135126e86fd131925a6f7135a84a71  libsanitizer/asan/asan_linux.cpp
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/asan/asan_lock.h
! 17a81b78e69cbe9a9dac996916157f56  libsanitizer/asan/asan_mac.cpp
! 6781e5f75e4e6ac39e557aabd9cb9b2f  libsanitizer/asan/asan_malloc_linux.cpp
! 6207aae9ff3ccc0784ab63ebe4eab1fd  libsanitizer/asan/asan_malloc_mac.cpp
! ad791013449cae9daa0b4ec69efa1ab8  libsanitizer/asan/asan_malloc_win.cpp
  a3678c55a5b125584de0621e272ad188  libsanitizer/asan/asan_mapping.h
  30b2997bea78189e8a56bd135ede2a34  libsanitizer/asan/asan_mapping_sparc64.h
! 1d6e119ce3ae5fb54b0de58087c07392  libsanitizer/asan/asan_memory_profile.cpp
  0d0525aab44f125726588781faac86b7  libsanitizer/asan/asan_new_delete.cpp
! dcc8a798f001ecff9d25e5dd3a64086e  libsanitizer/asan/asan_poisoning.cpp
  694cb52b66fd0f6d3f41d67429bfa1ba  libsanitizer/asan/asan_poisoning.h
! 83ba60cb7ae46709cc8c9d7590dfb8ae  libsanitizer/asan/asan_posix.cpp
  72bdf1b7e38d574b81f7eda5e24a7341  libsanitizer/asan/asan_preinit.cpp
  23f7337a787748e05b16643ac1acebdf  libsanitizer/asan/asan_premap_shadow.cpp
  a116a301835f4803dda6ba547a4efb13  libsanitizer/asan/asan_premap_shadow.h
! 60bdbbda49ec4d4b0d3fe76f2ca1225c  libsanitizer/asan/asan_report.cpp
! 446fa0a0c19f36c3e72a9b18c5aacc2d  libsanitizer/asan/asan_report.h
! 7dfb1cd284528528079464201bcf012c  libsanitizer/asan/asan_rtl.cpp
  d28b754f660d002fcb71421b13dc895c  libsanitizer/asan/asan_rtl_static.cpp
! 9a2b034b8159b112fd62676ffc84d15f  libsanitizer/asan/asan_rtl_x86_64.S
  7a66ee99b1b671c738ca237415ef25b8  libsanitizer/asan/asan_scariness_score.h
  8072d65a81c5968f332de2a2db8778f5  libsanitizer/asan/asan_shadow_setup.cpp
! aedac321d57b5a958de5489055d10e24  libsanitizer/asan/asan_stack.cpp
! ef2378d5d211f663586a3171848d1a25  libsanitizer/asan/asan_stack.h
! 74f53dd14917b359233d95b569e5fcd2  libsanitizer/asan/asan_stats.cpp
  89151303b3f73f562ecdcb3835396dee  libsanitizer/asan/asan_stats.h
  a2311345c440ff8eb171ae9fa30980b6  libsanitizer/asan/asan_suppressions.cpp
  8ab11db904fc944b69ba16601317c1c7  libsanitizer/asan/asan_suppressions.h
! d6174ce97b31531a753ccfa0fed5d36b  libsanitizer/asan/asan_thread.cpp
! 652a05c118cd1b46774248730849bfb3  libsanitizer/asan/asan_thread.h
! eb63f48be4758043b23f7fe684b70df4  libsanitizer/asan/asan_win.cpp
! 3ca30720aa304be94b3da9b9229a00cb  libsanitizer/asan/asan_win_dll_thunk.cpp
  c38c4aad80d927b2557c5e1699d5ad04  libsanitizer/asan/asan_win_dynamic_runtime_thunk.cpp
  92464876ef7c58cb739f8dbb05e2f3a9  libsanitizer/asan/asan_win_weak_interception.cpp
  faf2a6ac3826446f8109f955fc331f15  libsanitizer/asan/libtool-version
! 2d1a152776155afb7e7035ecdb57a64c  libsanitizer/builtins/assembly.h
  4d6948c4912be5da16e30aac001b87d7  libsanitizer/config.h.in
! d6e68cb3a51e9a0dd93330229cc5ca88  libsanitizer/configure
! f421c49834bf09c52411421cc6405d5f  libsanitizer/configure.ac
! 883f92fc094be6aa29d3b72e1a863a26  libsanitizer/configure.tgt
! 8eee91edc666386f35fddb6c267a641d  libsanitizer/hwasan/Makefile.am
! a6952b8b8e54cd7af57921b3638dddea  libsanitizer/hwasan/Makefile.in
! 3eda9625082749e88bf642b760590c12  libsanitizer/hwasan/hwasan.cpp
! e28db9d1e895b4e45c0c953e3d81e49e  libsanitizer/hwasan/hwasan.h
! 0ad763c8a54a04f00c452466414ab5ad  libsanitizer/hwasan/hwasan_allocation_functions.cpp
! a5a8871d78aa5c523a72eac89cac99eb  libsanitizer/hwasan/hwasan_allocator.cpp
! e9891674586d0aa2f9593e46d738bd41  libsanitizer/hwasan/hwasan_allocator.h
! dbcbcdcb6924796129c3436e7e003f7e  libsanitizer/hwasan/hwasan_checks.h
  4cf3a55f32e00047bdea18be105fee25  libsanitizer/hwasan/hwasan_dynamic_shadow.cpp
  d2c53fada53bfee78b11f99e297aed7b  libsanitizer/hwasan/hwasan_dynamic_shadow.h
! d21ec6ca7be0f0ada7a5bf47c3b52a76  libsanitizer/hwasan/hwasan_exceptions.cpp
  9750f099c8028db1b9c972cc7157280a  libsanitizer/hwasan/hwasan_flags.h
! caa3a64be59f22cdf75711aa473efe55  libsanitizer/hwasan/hwasan_flags.inc
! 2ab4a77bf2f0cf3891fa14503e2af092  libsanitizer/hwasan/hwasan_fuchsia.cpp
! 8b0d27d2990e7a5abefa41c4b95a0b6f  libsanitizer/hwasan/hwasan_globals.cpp
! 7050574c89f5706695578f62a6ead34e  libsanitizer/hwasan/hwasan_globals.h
! 728a36b9af7dae183e5d87d8126c27c2  libsanitizer/hwasan/hwasan_interceptors.cpp
  0ff1272e9d2ece4e771dfba1ecb0d538  libsanitizer/hwasan/hwasan_interceptors_vfork.S
! dae28c91f7155b0ed445d9f4fb0b320f  libsanitizer/hwasan/hwasan_interface_internal.h
! 32fa17d98508d80fc5f7051687bb9927  libsanitizer/hwasan/hwasan_linux.cpp
  2ee3ae16d29b69720e9f2512908a45b5  libsanitizer/hwasan/hwasan_malloc_bisect.h
  4390a795bf11c5cb596462234bb81e09  libsanitizer/hwasan/hwasan_mapping.h
! 2d06c5db89598a40af784209b054ff3f  libsanitizer/hwasan/hwasan_memintrinsics.cpp
! 4f2f87e111623aa3c37399ce2c29e11a  libsanitizer/hwasan/hwasan_new_delete.cpp
! 1a7f73da0601ac3a2513cdd5c3cc5127  libsanitizer/hwasan/hwasan_poisoning.cpp
  dbbf5a6219c3628eace17cf1d008c47a  libsanitizer/hwasan/hwasan_poisoning.h
  a88f7c232a1a8e9337d73f11b2d1f2a6  libsanitizer/hwasan/hwasan_preinit.cpp
! 46cbdf5b296992c68eaaa1eaa3c7d2c9  libsanitizer/hwasan/hwasan_report.cpp
! b654d3bf43a1885c15c7c532f2b80593  libsanitizer/hwasan/hwasan_report.h
! be6af72ba704df21216bd7b113e6c4a3  libsanitizer/hwasan/hwasan_setjmp_aarch64.S
! 9d08d96aeef0a5c0af51bf986af59d39  libsanitizer/hwasan/hwasan_setjmp_riscv64.S
! cf15b596879fcc35ae489d813955ed21  libsanitizer/hwasan/hwasan_setjmp_x86_64.S
! e8316f0fda60b4f54b0b0e58cb239615  libsanitizer/hwasan/hwasan_tag_mismatch_aarch64.S
  2de869754f30f0e4fc56ea5e883d2957  libsanitizer/hwasan/hwasan_tag_mismatch_riscv64.S
! 21cded2cd661c60ca2d08990f7ee68c0  libsanitizer/hwasan/hwasan_thread.cpp
! 1bf767f64cb604e1341cee21a7443a4d  libsanitizer/hwasan/hwasan_thread.h
! fcf1e6e0b38d0f6bfea54329fbf30801  libsanitizer/hwasan/hwasan_thread_list.cpp
! 589ca72122cfaf6ef9bb1f98cda7ca9f  libsanitizer/hwasan/hwasan_thread_list.h
  0515919baf280afc79f60ae7056c0e36  libsanitizer/hwasan/hwasan_type_test.cpp
  c2d591f0e8a0a7d8a274ee310042f00c  libsanitizer/hwasan/libtool-version
! 62164e6387eaa4f03566444e00018275  libsanitizer/include/sanitizer/allocator_interface.h
! cb6ab278769580386fbea1eebef0c212  libsanitizer/include/sanitizer/asan_interface.h
! db54f0fa5be7163d2052aeab0d14c777  libsanitizer/include/sanitizer/common_interface_defs.h
! 2473b60a7a21e100e8373bfe0d6b6aef  libsanitizer/include/sanitizer/coverage_interface.h
! e6eed686df8d12d0a75b4172eb7e1770  libsanitizer/include/sanitizer/dfsan_interface.h
! ac959f76745580707a6571ddb3b4892b  libsanitizer/include/sanitizer/hwasan_interface.h
  4f395991a27a989d213dfa0c300a74c2  libsanitizer/include/sanitizer/linux_syscall_hooks.h
! 12eef8384005b7381e07c3fadcabbe1d  libsanitizer/include/sanitizer/lsan_interface.h
! 8132b09a1d1fc1d4c9e18245d41a1da3  libsanitizer/include/sanitizer/memprof_interface.h
! e2234e53b5e24a13f171fcb3896ca2a1  libsanitizer/include/sanitizer/msan_interface.h
  8cfb31c202da51942d071d62333feafa  libsanitizer/include/sanitizer/netbsd_syscall_hooks.h
! 0cd62c0e877b3674d128dc7d69440b19  libsanitizer/include/sanitizer/scudo_interface.h
! 2da2d961ae6336db717588ce48d4f785  libsanitizer/include/sanitizer/tsan_interface.h
! 0ab0814f62f1092d08d1ef2ef91356c3  libsanitizer/include/sanitizer/tsan_interface_atomic.h
! 1d1427dc8a4b30396a8d300315cb10eb  libsanitizer/include/sanitizer/ubsan_interface.h
  c06732d7b90bf79a06f7aa44d08a1fbb  libsanitizer/include/system/asm/ptrace.h
  7b7bed50874b18703cfc3f3e9405dc93  libsanitizer/include/system/linux/aio_abi.h
  a02871a535bceea4a946e8c8dbe3199d  libsanitizer/include/system/linux/mroute.h
--- 122179,122328 ----
  5d8430b45b7108d7bc3b0258d2ae154a  libquadmath/quadmath.h
  cd139c8f7066ccd99c46052b7b67b2cb  libquadmath/quadmath.map
  a21481cfd0382ef41901608376f2161c  libquadmath/quadmath_weak.h
+ 329998e9aacc0c36e45e0fc39f4848e1  libquadmath/sfp-machine.h
  e766022f8615b72cbc38335d262e9d3d  libquadmath/strtod/grouping.h
  a73fdec6746eaad8ccdc8e8403aac562  libquadmath/strtod/mpn2flt128.c
  e0bd9b8669e44ec6010f92da1d5188ad  libquadmath/strtod/strtod_l.c
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! 5461ad339eeda243e67319587397b733  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
! 894b596d6d81ab8f2fb0708e8bc83e83  libsanitizer/LOCAL_PATCHES
! ad450ad61ef8f46f168e5940c7f4d609  libsanitizer/MERGE
  843b9a7b22b34445ab6cc181f7afd30b  libsanitizer/Makefile.am
! 11560950ba3e49bd41fc955a158263e6  libsanitizer/Makefile.in
  af677523339d9108ea25d6905226bf0a  libsanitizer/README.gcc
  9fefac8c0974bfaa97f7bd2eba2ecb55  libsanitizer/acinclude.m4
  9157157843ddc468aad53af489d0645c  libsanitizer/aclocal.m4
! ee7db8f1f5f1fa1881cfe690bea3e06c  libsanitizer/asan/Makefile.am
! e57056f90517b4eceecafe0e457465d1  libsanitizer/asan/Makefile.in
  d07e95f3fda97a66cd02b78623fb2c53  libsanitizer/asan/asan_activation.cpp
  49679f380cb38cd6671d4d18b3c103e2  libsanitizer/asan/asan_activation.h
  acd6633a0710d8be6454db6d024d7aa9  libsanitizer/asan/asan_activation_flags.inc
! 0c4eef5fd1be176150aee3017f69989b  libsanitizer/asan/asan_allocator.cpp
! f8d158c51268c146b0c06d6fd4368174  libsanitizer/asan/asan_allocator.h
  67d7800157dbc7b40cc249055cc0b614  libsanitizer/asan/asan_debugging.cpp
! 9898ab4e54da2711978431393a8c5cb2  libsanitizer/asan/asan_descriptions.cpp
  7b358db7fce5735bf54b9bd9ee5fea48  libsanitizer/asan/asan_descriptions.h
! 8195996429b99b4718714908f756718b  libsanitizer/asan/asan_errors.cpp
! a1aeee6e6e82a0d112fc625c8ae61331  libsanitizer/asan/asan_errors.h
! a551a1d2e1dd9007e7859fbe1c2142a8  libsanitizer/asan/asan_fake_stack.cpp
  a15f0895968debeada4576d3f50cd49f  libsanitizer/asan/asan_fake_stack.h
  9aaecaf4a2d8dc7ab105857316357556  libsanitizer/asan/asan_flags.cpp
  62bf4dd74e13c5de98bece330fca0dae  libsanitizer/asan/asan_flags.h
  37604152159e9b0a148b7f9488ff5b51  libsanitizer/asan/asan_flags.inc
  ec768daab10de71351888f3fab66b944  libsanitizer/asan/asan_fuchsia.cpp
! 7eb9dda97aa276d622b438f85963ba18  libsanitizer/asan/asan_globals.cpp
  6f0a3e5b544abc4a7e05109d94bc01f6  libsanitizer/asan/asan_globals_win.cpp
  70bdc70f05ca1bf6f615ea7609e3bf8c  libsanitizer/asan/asan_init_version.h
! 5488be5654605074a841906b075cf75b  libsanitizer/asan/asan_interceptors.cpp
! 27f9b2cf211646fdfa1f53193f82aa62  libsanitizer/asan/asan_interceptors.h
! 6a6ab3d41155984bd4c7ab7a8a3ef654  libsanitizer/asan/asan_interceptors_memintrinsics.cpp
! 9c9f9e05b23ae036f1505e7824579c6d  libsanitizer/asan/asan_interceptors_memintrinsics.h
  47d1026d8b2923487aef9553f134bfe8  libsanitizer/asan/asan_interceptors_vfork.S
  1e7d255fa2c1933020b98cfd75b1d1e6  libsanitizer/asan/asan_interface.inc
  08eb391a8b97f054ee0255e42f76dd82  libsanitizer/asan/asan_interface_internal.h
! 55dd146ff8c31a59f55079315158bc3c  libsanitizer/asan/asan_internal.h
! 2ab2e7c29706837cd598bd40bd9f28c3  libsanitizer/asan/asan_linux.cpp
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/asan/asan_lock.h
! 7906a027df785061a8b3e56d1c96edcd  libsanitizer/asan/asan_mac.cpp
! 2ce3d9ca985c143e17d8e1d659b61e87  libsanitizer/asan/asan_malloc_linux.cpp
! 8312e851faaf5214b2ae3101af8f95b1  libsanitizer/asan/asan_malloc_mac.cpp
! 56ff7ffe167ead0e349f7b8b91bf134b  libsanitizer/asan/asan_malloc_win.cpp
  a3678c55a5b125584de0621e272ad188  libsanitizer/asan/asan_mapping.h
  30b2997bea78189e8a56bd135ede2a34  libsanitizer/asan/asan_mapping_sparc64.h
! 71186b6e110dbb29131ad64b6604faf8  libsanitizer/asan/asan_memory_profile.cpp
  0d0525aab44f125726588781faac86b7  libsanitizer/asan/asan_new_delete.cpp
! a70fe8121782ac235084779d26211414  libsanitizer/asan/asan_poisoning.cpp
  694cb52b66fd0f6d3f41d67429bfa1ba  libsanitizer/asan/asan_poisoning.h
! 7d2ff9c68e3723beec45e2db156ef557  libsanitizer/asan/asan_posix.cpp
  72bdf1b7e38d574b81f7eda5e24a7341  libsanitizer/asan/asan_preinit.cpp
  23f7337a787748e05b16643ac1acebdf  libsanitizer/asan/asan_premap_shadow.cpp
  a116a301835f4803dda6ba547a4efb13  libsanitizer/asan/asan_premap_shadow.h
! 54d6320af8f4cc74492f889138b7ad04  libsanitizer/asan/asan_report.cpp
! e1a5c24981c3ecf54a59c46afb177207  libsanitizer/asan/asan_report.h
! c5bc853c8f6a6c8c4b0a9fd778a30bfc  libsanitizer/asan/asan_rtl.cpp
  d28b754f660d002fcb71421b13dc895c  libsanitizer/asan/asan_rtl_static.cpp
! c83f0e6f4f485da0e0a39c1fa245f09d  libsanitizer/asan/asan_rtl_x86_64.S
  7a66ee99b1b671c738ca237415ef25b8  libsanitizer/asan/asan_scariness_score.h
  8072d65a81c5968f332de2a2db8778f5  libsanitizer/asan/asan_shadow_setup.cpp
! a9ee444b2c882f859206d5557c53796e  libsanitizer/asan/asan_stack.cpp
! 2ff0bdf565589ed4b0b36ba24c542e25  libsanitizer/asan/asan_stack.h
! 32d0551d66ab2b7e1b8cf0440aed0188  libsanitizer/asan/asan_stats.cpp
  89151303b3f73f562ecdcb3835396dee  libsanitizer/asan/asan_stats.h
  a2311345c440ff8eb171ae9fa30980b6  libsanitizer/asan/asan_suppressions.cpp
  8ab11db904fc944b69ba16601317c1c7  libsanitizer/asan/asan_suppressions.h
! 0a4e7e01a25cd8a6e7cda444f5ce332d  libsanitizer/asan/asan_thread.cpp
! d234a10e273021b9029f364c56e9bdf7  libsanitizer/asan/asan_thread.h
! a42ef7091192e9f689fabb5b4b3184c0  libsanitizer/asan/asan_win.cpp
! 008e2886a7d939dbd3c711f31a845a4c  libsanitizer/asan/asan_win_dll_thunk.cpp
  c38c4aad80d927b2557c5e1699d5ad04  libsanitizer/asan/asan_win_dynamic_runtime_thunk.cpp
  92464876ef7c58cb739f8dbb05e2f3a9  libsanitizer/asan/asan_win_weak_interception.cpp
  faf2a6ac3826446f8109f955fc331f15  libsanitizer/asan/libtool-version
! e00043f7cff3822221ac73516f2ba1af  libsanitizer/builtins/assembly.h
  4d6948c4912be5da16e30aac001b87d7  libsanitizer/config.h.in
! 37743cee23ef1c96f28a59dafcba2562  libsanitizer/configure
! 4fb8fe43cd5510b08a3abc9a38bc4ea3  libsanitizer/configure.ac
! 56772d73b7fdd0b7fdb1c25ed2202e65  libsanitizer/configure.tgt
! 67d732b22e0f89d44d33c1274b355326  libsanitizer/hwasan/Makefile.am
! 45187b6a718eed6a8aba76effd413df1  libsanitizer/hwasan/Makefile.in
! 445ab6ba3231ef20fd0b9abb852e90bb  libsanitizer/hwasan/hwasan.cpp
! 3a84e6cdb227e9e2dd4cbe2613993374  libsanitizer/hwasan/hwasan.h
! 23eb69fcaccc6cc73cbf49195734a469  libsanitizer/hwasan/hwasan_allocation_functions.cpp
! 3c053ac77fc9838eb5a5f7788dab697d  libsanitizer/hwasan/hwasan_allocator.cpp
! b315914d0329553c9658692b7254d3da  libsanitizer/hwasan/hwasan_allocator.h
! 5eba53ccfca0f0e26ee11bb0afcf998a  libsanitizer/hwasan/hwasan_checks.h
  4cf3a55f32e00047bdea18be105fee25  libsanitizer/hwasan/hwasan_dynamic_shadow.cpp
  d2c53fada53bfee78b11f99e297aed7b  libsanitizer/hwasan/hwasan_dynamic_shadow.h
! 9dfd44f3f73d7a5ff9183b8624869c27  libsanitizer/hwasan/hwasan_exceptions.cpp
  9750f099c8028db1b9c972cc7157280a  libsanitizer/hwasan/hwasan_flags.h
! a39d2381cea8d376c433c7fe8cfac72b  libsanitizer/hwasan/hwasan_flags.inc
! 753ce92c601b47cf7a61b16b620865bb  libsanitizer/hwasan/hwasan_fuchsia.cpp
! 20d20fc3b2ac6fb11e0a990d959c1a27  libsanitizer/hwasan/hwasan_globals.cpp
! e0f27a58c9d03369d2cbad572c5e99f4  libsanitizer/hwasan/hwasan_globals.h
! 4e86b7abc79bd9b49101e94749fcdc3c  libsanitizer/hwasan/hwasan_interceptors.cpp
  0ff1272e9d2ece4e771dfba1ecb0d538  libsanitizer/hwasan/hwasan_interceptors_vfork.S
! 04092e36180762712216c70e0ae3dec5  libsanitizer/hwasan/hwasan_interface_internal.h
! 11ee8c7aa827ff1a098fc93dbed6568b  libsanitizer/hwasan/hwasan_linux.cpp
  2ee3ae16d29b69720e9f2512908a45b5  libsanitizer/hwasan/hwasan_malloc_bisect.h
  4390a795bf11c5cb596462234bb81e09  libsanitizer/hwasan/hwasan_mapping.h
! 70e3bc6498c0cfb6c675fda7a9b2bb10  libsanitizer/hwasan/hwasan_memintrinsics.cpp
! cf42fe809c9a5c6c76fd8243c8dbba0b  libsanitizer/hwasan/hwasan_new_delete.cpp
! 320ae30eba3ba345b17c04f73aee67fc  libsanitizer/hwasan/hwasan_platform_interceptors.h
! 7c0fe0939e5b6c7c7a7fccd79f6fb9f6  libsanitizer/hwasan/hwasan_poisoning.cpp
  dbbf5a6219c3628eace17cf1d008c47a  libsanitizer/hwasan/hwasan_poisoning.h
  a88f7c232a1a8e9337d73f11b2d1f2a6  libsanitizer/hwasan/hwasan_preinit.cpp
! b4c906553a888ce9c94c127fa2e0e452  libsanitizer/hwasan/hwasan_registers.h
! 33266a127ef6afda1038f7aeb5858018  libsanitizer/hwasan/hwasan_report.cpp
! a428030ea59c9750d767a61dfa6c7295  libsanitizer/hwasan/hwasan_report.h
! 0aa0465cbf6b82abe9ada90e4dce9801  libsanitizer/hwasan/hwasan_setjmp_aarch64.S
! 2cc1e1dfc1150cc465439b8e87f46264  libsanitizer/hwasan/hwasan_setjmp_riscv64.S
! c0879885e5a796a284631e5b4dd24126  libsanitizer/hwasan/hwasan_setjmp_x86_64.S
! 2714ba0625c028be9633230ea1ebabf1  libsanitizer/hwasan/hwasan_tag_mismatch_aarch64.S
  2de869754f30f0e4fc56ea5e883d2957  libsanitizer/hwasan/hwasan_tag_mismatch_riscv64.S
! c5b5dc812d5af8e71941246bc61c8fb6  libsanitizer/hwasan/hwasan_thread.cpp
! ef3f94242327f05c5808584ae8f5212b  libsanitizer/hwasan/hwasan_thread.h
! 3551e459590e21cd26fb6cbd1d12331a  libsanitizer/hwasan/hwasan_thread_list.cpp
! 42add9fd37df749f923865e9901e0cb8  libsanitizer/hwasan/hwasan_thread_list.h
  0515919baf280afc79f60ae7056c0e36  libsanitizer/hwasan/hwasan_type_test.cpp
  c2d591f0e8a0a7d8a274ee310042f00c  libsanitizer/hwasan/libtool-version
! d6ba04f075e766fb8c3b09d140eba4fc  libsanitizer/include/sanitizer/allocator_interface.h
! 0c2bc5ce39ede8e539ce74135146fc1e  libsanitizer/include/sanitizer/asan_interface.h
! ecf2aed307a1fd94d3e902ea1c6130a4  libsanitizer/include/sanitizer/common_interface_defs.h
! 90240d85d7b6c6b61a9294033133a3c9  libsanitizer/include/sanitizer/coverage_interface.h
! d005d0a644120838c6dfd397d6aede70  libsanitizer/include/sanitizer/dfsan_interface.h
! 2bbfedf1506a0820d87ed849b872adca  libsanitizer/include/sanitizer/hwasan_interface.h
  4f395991a27a989d213dfa0c300a74c2  libsanitizer/include/sanitizer/linux_syscall_hooks.h
! 1bd34ad322a65afee9ed3ff08641cf5b  libsanitizer/include/sanitizer/lsan_interface.h
! 0da3e2f24af902ce1f30cf49a4c9a8e3  libsanitizer/include/sanitizer/memprof_interface.h
! 4f75286f59f01d95e745922fadffc1c4  libsanitizer/include/sanitizer/msan_interface.h
  8cfb31c202da51942d071d62333feafa  libsanitizer/include/sanitizer/netbsd_syscall_hooks.h
! 21f5e42c5cce93a45ec79348cb539845  libsanitizer/include/sanitizer/scudo_interface.h
! 3ee81e9f99926181d5ca17317184a561  libsanitizer/include/sanitizer/tsan_interface.h
! 82e3ce3ab2f016560e52dc733aba79ae  libsanitizer/include/sanitizer/tsan_interface_atomic.h
! f02f1f4393106fefcbe28255f9bcb3be  libsanitizer/include/sanitizer/ubsan_interface.h
  c06732d7b90bf79a06f7aa44d08a1fbb  libsanitizer/include/system/asm/ptrace.h
  7b7bed50874b18703cfc3f3e9405dc93  libsanitizer/include/system/linux/aio_abi.h
  a02871a535bceea4a946e8c8dbe3199d  libsanitizer/include/system/linux/mroute.h
*************** e0f26bb761d75b6aac187f2c8d755c0b  libsan
*** 112280,112348 ****
  3de6060b4f9ff628820f60672dee5958  libsanitizer/include/system/linux/types.h
  177782c011eb97e4adc68bd2c39b6f84  libsanitizer/include/system/sys/ptrace.h
  40db3b02f9746026f830c315351258a5  libsanitizer/interception/Makefile.am
! 91bf91c617265517710c9dddcc31ad8d  libsanitizer/interception/Makefile.in
! 7f1249aa2381212035b836582114534a  libsanitizer/interception/interception.h
! 795142e90608656433667c3105773995  libsanitizer/interception/interception_linux.cpp
! 3156a529b5f86c321caebcb94682a513  libsanitizer/interception/interception_linux.h
  0e693fb7fe561dbbff408f6493c081d7  libsanitizer/interception/interception_mac.cpp
  0123641b0fbd5589d3819e5a27205e34  libsanitizer/interception/interception_mac.h
! 053bd5af68e1f654b0e68986ff6ced24  libsanitizer/interception/interception_type_test.cpp
! 0dc05c98894330dca9558d3538e32790  libsanitizer/interception/interception_win.cpp
! d2397720fce56dc1634db6efb7d0eb22  libsanitizer/interception/interception_win.h
  cfd38bf924773ba7ef25458c574394bd  libsanitizer/libbacktrace/Makefile.am
! fc2df81acfe33b4342659c64136a5f78  libsanitizer/libbacktrace/Makefile.in
  3ac69d9fb43e338ecc043296461ef01e  libsanitizer/libbacktrace/backtrace-rename.h
  ea35b83ff2eb2bff286f2781693b0cc7  libsanitizer/libbacktrace/backtrace-supported.h.in
  35b2978dd28dbb4048032ad8db998f5c  libsanitizer/libbacktrace/bridge.cc
  afbb83670aebea5034bc386604a01397  libsanitizer/libsanitizer.spec.in
! 6b33d1a041ee8709633d99deee5a977e  libsanitizer/lsan/Makefile.am
! c7c0f9cffe344efc277f9f39df515b0e  libsanitizer/lsan/Makefile.in
  f2f51c768041ab63c956646fa5f7af5b  libsanitizer/lsan/libtool-version
! 5ee07c01098e7b4a8931ff8e1a3a7dcf  libsanitizer/lsan/lsan.cpp
  5919aaf4c4300d5eabf9449b33a2a9a4  libsanitizer/lsan/lsan.h
! ed712d25ac8bf6488ad71df80572ca10  libsanitizer/lsan/lsan_allocator.cpp
! 4f92ebec3fdbaafb19fd30f3585a20e9  libsanitizer/lsan/lsan_allocator.h
! 98796c397398fd5c70bbc00bcf60dc66  libsanitizer/lsan/lsan_common.cpp
! 08947fd9ebe477f2bf76b57ed8a6e3e6  libsanitizer/lsan/lsan_common.h
! c8b3335c7ccaf82f3bedc4132da1a07b  libsanitizer/lsan/lsan_common_fuchsia.cpp
  ff4505a3cb4b0026259542955e0f6b08  libsanitizer/lsan/lsan_common_linux.cpp
! 342174238a29f96f993a6ade502a88dc  libsanitizer/lsan/lsan_common_mac.cpp
  6af587085d16319361de6f118714b293  libsanitizer/lsan/lsan_flags.inc
! 9e33f532b4d595c933aa3a908c4b8c53  libsanitizer/lsan/lsan_fuchsia.cpp
  0a42ef558db22ea416707423b4ee5313  libsanitizer/lsan/lsan_fuchsia.h
! 431f2d5596c29ff4ed451ef94c2d1a5b  libsanitizer/lsan/lsan_interceptors.cpp
! 112de5191cba37114a27b3c851b03637  libsanitizer/lsan/lsan_linux.cpp
! fc901e2a9005034a72d20474ade882c6  libsanitizer/lsan/lsan_mac.cpp
  94e1495e5dfa6d86df31bfed27d4bb1a  libsanitizer/lsan/lsan_malloc_mac.cpp
! eac6834f3e0815427573e15990b8e83e  libsanitizer/lsan/lsan_posix.cpp
  2d218702383904dd6ba0cbb97b0bfd82  libsanitizer/lsan/lsan_posix.h
  7d7a28d8f42ca368b3ffa1b674377b25  libsanitizer/lsan/lsan_preinit.cpp
! 8e82f5ea8334224eaf9967c2891b59bd  libsanitizer/lsan/lsan_thread.cpp
! 7f6bc585ad900c216d003a22359efb0c  libsanitizer/lsan/lsan_thread.h
  30e8a1a43b912457b629922cb03ef1cf  libsanitizer/merge.sh
! 4fd705dd5d99b0bf6bb0e4a45eaf8d19  libsanitizer/sanitizer_common/Makefile.am
! 70ded0717bbd07fdc3b335ac7f74b53e  libsanitizer/sanitizer_common/Makefile.in
  d68aa097ee532430d26f11ec81234ed5  libsanitizer/sanitizer_common/sancov_flags.cpp
  1cee185b14a59f3bfc596ac9bf851f89  libsanitizer/sanitizer_common/sancov_flags.h
  72bcafc00c57c1ae00e19cb2b2a48f9c  libsanitizer/sanitizer_common/sancov_flags.inc
  affc5cdd93ea24c9d38ffeae121b992b  libsanitizer/sanitizer_common/sanitizer_addrhashmap.h
! 17d513e1034dc40927ca8afb13615e8e  libsanitizer/sanitizer_common/sanitizer_allocator.cpp
! 3c696135f4d7222f1f01a9289b5697c9  libsanitizer/sanitizer_common/sanitizer_allocator.h
  58afe7ee0a8301bc2ee5e0495a5c3720  libsanitizer/sanitizer_common/sanitizer_allocator_checks.cpp
  4ee074df007bb212ba0e23ec75009eca  libsanitizer/sanitizer_common/sanitizer_allocator_checks.h
! 24c4536f56531c4cfdf2e1e7c8477591  libsanitizer/sanitizer_common/sanitizer_allocator_combined.h
  96cb3d54c892bac183e5eea23d61a499  libsanitizer/sanitizer_common/sanitizer_allocator_dlsym.h
! 742b8a455904e57e1dc253cd94af8343  libsanitizer/sanitizer_common/sanitizer_allocator_interface.h
! 268551b6f0cea44ed422ba32ad5c220f  libsanitizer/sanitizer_common/sanitizer_allocator_internal.h
  077de40d6eda25e0f6b7713f2e9763f4  libsanitizer/sanitizer_common/sanitizer_allocator_local_cache.h
! 33d6d6f10d189f8150fd62fa46e88295  libsanitizer/sanitizer_common/sanitizer_allocator_primary32.h
! c1dff11fcd082b8190717afe774d3354  libsanitizer/sanitizer_common/sanitizer_allocator_primary64.h
  ff41eeb2a6f776ce3d9f5a913f70fa5c  libsanitizer/sanitizer_common/sanitizer_allocator_report.cpp
  5fca989318db3c792dfeea2a7a028c24  libsanitizer/sanitizer_common/sanitizer_allocator_report.h
! 763760c64796c59d7405b5785c7bd1e9  libsanitizer/sanitizer_common/sanitizer_allocator_secondary.h
  68dd334ff39cff58dd4c6138bc1b725f  libsanitizer/sanitizer_common/sanitizer_allocator_size_class_map.h
! a21ea81dbfc52981e1c446285eaf2981  libsanitizer/sanitizer_common/sanitizer_allocator_stats.h
! 281b37403fe2b407bcba79b06e897077  libsanitizer/sanitizer_common/sanitizer_asm.h
  998bded7a554ef1499c0f9da7137fc8a  libsanitizer/sanitizer_common/sanitizer_atomic.h
  94f3ed5236b7fdac7cb333faff3b5431  libsanitizer/sanitizer_common/sanitizer_atomic_clang.h
  4628d0f9ff0c1cf2623aaa1a643234cb  libsanitizer/sanitizer_common/sanitizer_atomic_clang_mips.h
--- 122331,122400 ----
  3de6060b4f9ff628820f60672dee5958  libsanitizer/include/system/linux/types.h
  177782c011eb97e4adc68bd2c39b6f84  libsanitizer/include/system/sys/ptrace.h
  40db3b02f9746026f830c315351258a5  libsanitizer/interception/Makefile.am
! 9ec2b18ec29fde149fa4ca6f1b067e04  libsanitizer/interception/Makefile.in
! 5c812a8ee01440ffdc7f8166695add0b  libsanitizer/interception/interception.h
! a369bda2bdee55815c0587eeb2041947  libsanitizer/interception/interception_linux.cpp
! b644d92a6912ab3640bf57070b9a572a  libsanitizer/interception/interception_linux.h
  0e693fb7fe561dbbff408f6493c081d7  libsanitizer/interception/interception_mac.cpp
  0123641b0fbd5589d3819e5a27205e34  libsanitizer/interception/interception_mac.h
! 38b7738d6f045afb4c34a5818e5fd51a  libsanitizer/interception/interception_type_test.cpp
! f08c9c58e12a563c743e6e82d48678a0  libsanitizer/interception/interception_win.cpp
! 6f3d21b72d6739cd636c58314329da52  libsanitizer/interception/interception_win.h
  cfd38bf924773ba7ef25458c574394bd  libsanitizer/libbacktrace/Makefile.am
! b2d8d4d2b16f69fe5c2ff93cab0fc8ce  libsanitizer/libbacktrace/Makefile.in
  3ac69d9fb43e338ecc043296461ef01e  libsanitizer/libbacktrace/backtrace-rename.h
  ea35b83ff2eb2bff286f2781693b0cc7  libsanitizer/libbacktrace/backtrace-supported.h.in
  35b2978dd28dbb4048032ad8db998f5c  libsanitizer/libbacktrace/bridge.cc
  afbb83670aebea5034bc386604a01397  libsanitizer/libsanitizer.spec.in
! 8faa1dd1723bb2cea596331a774e4b38  libsanitizer/lsan/Makefile.am
! b51090ad18a7454ae4d2ba0c01eff418  libsanitizer/lsan/Makefile.in
  f2f51c768041ab63c956646fa5f7af5b  libsanitizer/lsan/libtool-version
! dfdf458a477a995341abcfa81d76e42f  libsanitizer/lsan/lsan.cpp
  5919aaf4c4300d5eabf9449b33a2a9a4  libsanitizer/lsan/lsan.h
! a447fd8b86ffad123f150ae4b3579b37  libsanitizer/lsan/lsan_allocator.cpp
! 17871f0b4c3ec3b70b00bbb7d87c2c0f  libsanitizer/lsan/lsan_allocator.h
! b92ee2d30409988833495882f728a83c  libsanitizer/lsan/lsan_common.cpp
! 6d4fc29cc52d245652f7a063ee6b650b  libsanitizer/lsan/lsan_common.h
! 837b31d5c0aaab07f7afbc0cbef04f24  libsanitizer/lsan/lsan_common_fuchsia.cpp
  ff4505a3cb4b0026259542955e0f6b08  libsanitizer/lsan/lsan_common_linux.cpp
! e0c1fefc6d7a8d0f00122415d01fb44d  libsanitizer/lsan/lsan_common_mac.cpp
  6af587085d16319361de6f118714b293  libsanitizer/lsan/lsan_flags.inc
! 7aeeb47f8a665410cf49e91ad1ced20c  libsanitizer/lsan/lsan_fuchsia.cpp
  0a42ef558db22ea416707423b4ee5313  libsanitizer/lsan/lsan_fuchsia.h
! e46921da19d5027a160496035ed6a615  libsanitizer/lsan/lsan_interceptors.cpp
! 956639c4d9b147ff17fbd7c99f809223  libsanitizer/lsan/lsan_linux.cpp
! 4fa725b880e76379f3f26408ca1558f7  libsanitizer/lsan/lsan_mac.cpp
  94e1495e5dfa6d86df31bfed27d4bb1a  libsanitizer/lsan/lsan_malloc_mac.cpp
! 1953276b1a1775169a05e59efb4635a7  libsanitizer/lsan/lsan_posix.cpp
  2d218702383904dd6ba0cbb97b0bfd82  libsanitizer/lsan/lsan_posix.h
  7d7a28d8f42ca368b3ffa1b674377b25  libsanitizer/lsan/lsan_preinit.cpp
! a7bfd09208fe939f2c0ff52efb6ad0e9  libsanitizer/lsan/lsan_thread.cpp
! 40250a40045098844f2cb7c1830cfa8d  libsanitizer/lsan/lsan_thread.h
  30e8a1a43b912457b629922cb03ef1cf  libsanitizer/merge.sh
! 0a4ece549637c9b6c314286fe53ce753  libsanitizer/sanitizer_common/Makefile.am
! 9d3b17327b1a18d07d8976ca9f9a4670  libsanitizer/sanitizer_common/Makefile.in
  d68aa097ee532430d26f11ec81234ed5  libsanitizer/sanitizer_common/sancov_flags.cpp
  1cee185b14a59f3bfc596ac9bf851f89  libsanitizer/sanitizer_common/sancov_flags.h
  72bcafc00c57c1ae00e19cb2b2a48f9c  libsanitizer/sanitizer_common/sancov_flags.inc
  affc5cdd93ea24c9d38ffeae121b992b  libsanitizer/sanitizer_common/sanitizer_addrhashmap.h
! 5263d17d6ca957a85eb42485cdc14274  libsanitizer/sanitizer_common/sanitizer_allocator.cpp
! 25bb26805d66124793cada605bdb8059  libsanitizer/sanitizer_common/sanitizer_allocator.h
  58afe7ee0a8301bc2ee5e0495a5c3720  libsanitizer/sanitizer_common/sanitizer_allocator_checks.cpp
  4ee074df007bb212ba0e23ec75009eca  libsanitizer/sanitizer_common/sanitizer_allocator_checks.h
! 42255d2f0af0d6529e6562e12fe76714  libsanitizer/sanitizer_common/sanitizer_allocator_combined.h
  96cb3d54c892bac183e5eea23d61a499  libsanitizer/sanitizer_common/sanitizer_allocator_dlsym.h
! 23db6a0cfddcedce7708498aa0200f20  libsanitizer/sanitizer_common/sanitizer_allocator_interface.h
! 828ea8b0bdf238e32fccaa70b5b23cce  libsanitizer/sanitizer_common/sanitizer_allocator_internal.h
  077de40d6eda25e0f6b7713f2e9763f4  libsanitizer/sanitizer_common/sanitizer_allocator_local_cache.h
! d87d5af81a9b30ca3b3d1781d48b2b1a  libsanitizer/sanitizer_common/sanitizer_allocator_primary32.h
! 1ad2a2c81dbffdde63a26b7a42f7aed1  libsanitizer/sanitizer_common/sanitizer_allocator_primary64.h
  ff41eeb2a6f776ce3d9f5a913f70fa5c  libsanitizer/sanitizer_common/sanitizer_allocator_report.cpp
  5fca989318db3c792dfeea2a7a028c24  libsanitizer/sanitizer_common/sanitizer_allocator_report.h
! 22d9f5ff34200de98c097dbbfd466bc8  libsanitizer/sanitizer_common/sanitizer_allocator_secondary.h
  68dd334ff39cff58dd4c6138bc1b725f  libsanitizer/sanitizer_common/sanitizer_allocator_size_class_map.h
! fea02c2bee302ef80068d06de6550959  libsanitizer/sanitizer_common/sanitizer_allocator_stats.h
! 0136f420ff25cc446d086b8a05a982e9  libsanitizer/sanitizer_common/sanitizer_array_ref.h
! 7d644ce7934bebbec9e0cc8d764592f2  libsanitizer/sanitizer_common/sanitizer_asm.h
  998bded7a554ef1499c0f9da7137fc8a  libsanitizer/sanitizer_common/sanitizer_atomic.h
  94f3ed5236b7fdac7cb333faff3b5431  libsanitizer/sanitizer_common/sanitizer_atomic_clang.h
  4628d0f9ff0c1cf2623aaa1a643234cb  libsanitizer/sanitizer_common/sanitizer_atomic_clang_mips.h
*************** f652b6a1b7460128cccd6c016c4828c6  libsan
*** 112353,112378 ****
  2c60255aaee6514e73b7c326d2edbc51  libsanitizer/sanitizer_common/sanitizer_bvgraph.h
  a32b38d2eae806bfe95f3e089a711f7a  libsanitizer/sanitizer_common/sanitizer_chained_origin_depot.cpp
  6c98887c832c51853baba6c78b422e70  libsanitizer/sanitizer_common/sanitizer_chained_origin_depot.h
! 1c92f40d094c2472e708a3a3ee057add  libsanitizer/sanitizer_common/sanitizer_common.cpp
! 6e3ba9b2a5302ee4e0b833e4cc174db2  libsanitizer/sanitizer_common/sanitizer_common.h
! 820bd5f9d0b610aeee0ddc864394a83f  libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
! 873ecc8932cb8410c4e2b06ea4fd99ff  libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc
  aa961fb0d47d9369601c5aa4bd24ea02  libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
  c664d5fb1514c978d28a6a62b2040b53  libsanitizer/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc
! fda3dee294d9edce69f269af077bbd80  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S
! b4b4ed1f1a36cce44031fd0b4a1a141f  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S
! 4c7f0914b7dceaf1fe7b50d0ebcf30e4  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S
! 7923b63729183aa3676f19bbb5f919df  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_loongarch64.inc.S
! 558231bbaa4fc2b256a4cf0851a6bd0b  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_riscv64.inc.S
! 86445cfc93ff99267195b206bbfc5540  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S
! df6c386b90d87972e769849f88bef68e  libsanitizer/sanitizer_common/sanitizer_common_interface.inc
! 8317dc9bb7cfc58636d12327277bd69c  libsanitizer/sanitizer_common/sanitizer_common_interface_posix.inc
! af6a3a62826a2b1332c274c2c12735bb  libsanitizer/sanitizer_common/sanitizer_common_libcdep.cpp
  5da4d94a361ae04b45948a2d230f9c68  libsanitizer/sanitizer_common/sanitizer_common_nolibc.cpp
! 1bcdb88c4731758cbfd6a8333dee0cc4  libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc
  eddc7e8805ed848ea5725c8e56f8061d  libsanitizer/sanitizer_common/sanitizer_coverage_fuchsia.cpp
  c1a02c896ece2bae19c87b561049f73b  libsanitizer/sanitizer_common/sanitizer_coverage_interface.inc
! bbdf039ba2e342debd6c3e46637faf89  libsanitizer/sanitizer_common/sanitizer_coverage_libcdep_new.cpp
  f64c402c63e4fdccc3b91f46fa008563  libsanitizer/sanitizer_common/sanitizer_coverage_win_dll_thunk.cpp
  b23b66463d261a32c3e71eb67bdce1ea  libsanitizer/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cpp
  3f3a487b0f415ffaf2022c06c7e71af4  libsanitizer/sanitizer_common/sanitizer_coverage_win_sections.cpp
--- 122405,122431 ----
  2c60255aaee6514e73b7c326d2edbc51  libsanitizer/sanitizer_common/sanitizer_bvgraph.h
  a32b38d2eae806bfe95f3e089a711f7a  libsanitizer/sanitizer_common/sanitizer_chained_origin_depot.cpp
  6c98887c832c51853baba6c78b422e70  libsanitizer/sanitizer_common/sanitizer_chained_origin_depot.h
! 725eff9d21f83efefa734e8a3045f03b  libsanitizer/sanitizer_common/sanitizer_common.cpp
! 8d31e033038441d83d7dac7241fa7288  libsanitizer/sanitizer_common/sanitizer_common.h
! 0efb1be2c27a1a3b31edbde3b5472fc4  libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
! 0a68626fb68e0f53b782fec8d795f632  libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc
  aa961fb0d47d9369601c5aa4bd24ea02  libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+ 92d324a2c8f8e44cf13d5f7c545d6c1d  libsanitizer/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc
  c664d5fb1514c978d28a6a62b2040b53  libsanitizer/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc
! e19e7b0a6d9409a4b3a5c277ebba0b9a  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S
! 3d738bf27e973b3bebdbb87ed70467c0  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S
! 09c9b0c5fca7989c02e9a0dcd2ab933d  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S
! 38347e4acdc72a8875c7924d7b50505f  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_loongarch64.inc.S
! d5715d90f08ee5cca09715fd5b25b201  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_riscv64.inc.S
! 77a89301257ab14bab0d4c024ad9c33d  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S
! d27974f5c43a992a7b214cce4b6fef7d  libsanitizer/sanitizer_common/sanitizer_common_interface.inc
! bf8ce226f58b9794d275785342c4be6b  libsanitizer/sanitizer_common/sanitizer_common_interface_posix.inc
! 20a21017fabe012c9d9caa122bcb0d28  libsanitizer/sanitizer_common/sanitizer_common_libcdep.cpp
  5da4d94a361ae04b45948a2d230f9c68  libsanitizer/sanitizer_common/sanitizer_common_nolibc.cpp
! 7fd6293debfd85e7546493046b94cc3c  libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc
  eddc7e8805ed848ea5725c8e56f8061d  libsanitizer/sanitizer_common/sanitizer_coverage_fuchsia.cpp
  c1a02c896ece2bae19c87b561049f73b  libsanitizer/sanitizer_common/sanitizer_coverage_interface.inc
! 69afd0c4c7d847c5cb0000dead119c94  libsanitizer/sanitizer_common/sanitizer_coverage_libcdep_new.cpp
  f64c402c63e4fdccc3b91f46fa008563  libsanitizer/sanitizer_common/sanitizer_coverage_win_dll_thunk.cpp
  b23b66463d261a32c3e71eb67bdce1ea  libsanitizer/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cpp
  3f3a487b0f415ffaf2022c06c7e71af4  libsanitizer/sanitizer_common/sanitizer_coverage_win_sections.cpp
*************** c24845d0d3c29b56170aa71091426359  libsan
*** 112384,112459 ****
  714375c2f0080364d3f9636fb365cb50  libsanitizer/sanitizer_common/sanitizer_deadlock_detector_interface.h
  237e8b48d89526cd936a719703f16f97  libsanitizer/sanitizer_common/sanitizer_dense_map.h
  2416325b5cdf8be42ab7069b88ad4a2d  libsanitizer/sanitizer_common/sanitizer_dense_map_info.h
  dd71222889a46d09229b51c9a128a5aa  libsanitizer/sanitizer_common/sanitizer_errno.cpp
  b751f665e23f9c48eeffdb8ab7973e35  libsanitizer/sanitizer_common/sanitizer_errno.h
! 569eef7f7a96f68658eb85aec7bd4bef  libsanitizer/sanitizer_common/sanitizer_errno_codes.h
  ad56586f1276455526fe2f5e5cd53cae  libsanitizer/sanitizer_common/sanitizer_file.cpp
! 03c06a7c283fbae72f3b2228e74ed6a2  libsanitizer/sanitizer_common/sanitizer_file.h
! 603de04d166f3a49fa913a548ec80c21  libsanitizer/sanitizer_common/sanitizer_flag_parser.cpp
! 63e4e5a37078fa05cf9d854166d7f328  libsanitizer/sanitizer_common/sanitizer_flag_parser.h
! 132bd807dd8a0e8e2e84d52add1570f5  libsanitizer/sanitizer_common/sanitizer_flags.cpp
  50b07ed067f181e6df763aa0940acec1  libsanitizer/sanitizer_common/sanitizer_flags.h
! fa70359652f17eec2c20d07a199100d2  libsanitizer/sanitizer_common/sanitizer_flags.inc
! 45792c1d5e035392c0f4d002ad22921d  libsanitizer/sanitizer_common/sanitizer_flat_map.h
  3f779f66885b3027cad2a2af88a8a2f5  libsanitizer/sanitizer_common/sanitizer_freebsd.h
! a84d95ccc7e53dff8b43eecfba6a60bb  libsanitizer/sanitizer_common/sanitizer_fuchsia.cpp
  286b7995698dbe20223e1a3c05933d6d  libsanitizer/sanitizer_common/sanitizer_fuchsia.h
  1d8e62bbd8a595f6e44228e1dc7cbcd8  libsanitizer/sanitizer_common/sanitizer_getauxval.h
  f06be5c69a658d7ac5ebea616ebb001a  libsanitizer/sanitizer_common/sanitizer_glibc_version.h
  0106ca8c2ac52a690196a29c2fd63de6  libsanitizer/sanitizer_common/sanitizer_hash.h
! 6d41f95489dbae2330fd89aeaee5eedc  libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc
! 9e44cc6ac52777ef30d65ecdd64e0dd3  libsanitizer/sanitizer_common/sanitizer_interface_internal.h
! b566a3c27633722e1ef8ad016381c182  libsanitizer/sanitizer_common/sanitizer_internal_defs.h
  45de936b7d4065758483844c920f2ba4  libsanitizer/sanitizer_common/sanitizer_leb128.h
  5da7cbe05015b8a52342cd8a74fb0ad2  libsanitizer/sanitizer_common/sanitizer_lfstack.h
! 21de654ed7481dd33c2ed7ab1a29c2b7  libsanitizer/sanitizer_common/sanitizer_libc.cpp
! cce68947dc278b1a388eb87186550085  libsanitizer/sanitizer_common/sanitizer_libc.h
  537dd9a212b82bf6f062b47c5df57c86  libsanitizer/sanitizer_common/sanitizer_libignore.cpp
  43841a8fb2414dc7836e2d07d6197776  libsanitizer/sanitizer_common/sanitizer_libignore.h
! d0043cb6d680e8e96f0cc86589d7dcb8  libsanitizer/sanitizer_common/sanitizer_linux.cpp
! 557b29bb8b6973765643e43829014541  libsanitizer/sanitizer_common/sanitizer_linux.h
! ce32d0c779cbd3b52b2f4d4b4e54b51b  libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp
  9ce22ccd9943bda9795a2efeccec7f16  libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp
  51d4c37472c1c2c6010e5d1eb5bf340f  libsanitizer/sanitizer_common/sanitizer_list.h
  15f5a30dda04b6f3bc49cb5206d92e7b  libsanitizer/sanitizer_common/sanitizer_local_address_space_view.h
  b819992c5da123bc4d79e61fa5154215  libsanitizer/sanitizer_common/sanitizer_lzw.h
! f69d421f753bf51dfba92519a80c2281  libsanitizer/sanitizer_common/sanitizer_mac.cpp
  4a2287c1e441c3abcc5c9ee7aee2754d  libsanitizer/sanitizer_common/sanitizer_mac.h
  3c8a29762c7ecf7082ea5a28335716f6  libsanitizer/sanitizer_common/sanitizer_mac_libcdep.cpp
! 5f5dd34c995b03d8def198676ee4f8f0  libsanitizer/sanitizer_common/sanitizer_malloc_mac.inc
  231790ca3e16e72faa2f393344107c51  libsanitizer/sanitizer_common/sanitizer_mutex.cpp
  7dc346968361491c8e35254fcd12ca5c  libsanitizer/sanitizer_common/sanitizer_mutex.h
  3ec767742997468be9817fb2a5fe4c1f  libsanitizer/sanitizer_common/sanitizer_netbsd.cpp
  b9966b23ae76d3ec9290c4a5e8c3d94c  libsanitizer/sanitizer_common/sanitizer_placement_new.h
! 69bfd5cbcf0336c6b2532ba8c750f2bd  libsanitizer/sanitizer_common/sanitizer_platform.h
! f94261e1f788f0a9cdaf5bdc238e7b33  libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
! 6733998fcb226a37dad08c6cf3eded45  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
! 3abfe3c33f34d0280a2259105502c184  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.h
  b582d1c8ad1dfab45211cbb7c25cf5f6  libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp
! 23c53fdfc24f69956737a502c801d70d  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
! 363c19d7d7061beabfcc5393b85ef479  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h
! f59aa2137df87f1dd3e7564e8ca41b55  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
! ce8a0aaa4129f14a6b70fe701a4aee99  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  711b54008ada7faff939a95e325b185b  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  ab1ad414331f77e459da9a32b756cbac  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
! 1019f8f3de270256a0b3ed857645dec8  libsanitizer/sanitizer_common/sanitizer_posix.cpp
! bc6ef1dfee4fa2ff2d761568e9b19ed0  libsanitizer/sanitizer_common/sanitizer_posix.h
! 65842772410d925d1ad25680f6845d90  libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
! ebd332f4b6fe1032fc1265ec420f180f  libsanitizer/sanitizer_common/sanitizer_printf.cpp
! f3f1d3ebbb5c99ca4c2922783a8428a1  libsanitizer/sanitizer_common/sanitizer_procmaps.h
! 9f49c09176556fe4c5863604acaa373e  libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp
! 4258109dfa024898ae2e8991e5268c59  libsanitizer/sanitizer_common/sanitizer_procmaps_common.cpp
  359d6e04536b11f84ee64fcc65fceff5  libsanitizer/sanitizer_common/sanitizer_procmaps_fuchsia.cpp
  cac752f7b42df7a26fc91e0aadc8aa36  libsanitizer/sanitizer_common/sanitizer_procmaps_linux.cpp
! 1302027d6f438a333195cd76fca561c5  libsanitizer/sanitizer_common/sanitizer_procmaps_mac.cpp
  f873c2c0855223fd5d10002c1fde8b1e  libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
  f35117287ec4a6a6d785ad92db83acd9  libsanitizer/sanitizer_common/sanitizer_ptrauth.h
! 2e9e7f59c748f67818b45ce5d5a969b4  libsanitizer/sanitizer_common/sanitizer_quarantine.h
  790117d4c85c98c499151ad830f99a49  libsanitizer/sanitizer_common/sanitizer_report_decorator.h
! 9c59673ac7686d5b6466472282b484c2  libsanitizer/sanitizer_common/sanitizer_ring_buffer.h
! 92eeb5433884af335db94ffb01770c2f  libsanitizer/sanitizer_common/sanitizer_signal_interceptors.inc
  d81628c1f3c14142bf5218228d6bdcc6  libsanitizer/sanitizer_common/sanitizer_solaris.cpp
  379f4e42b7a717d642000a85a853e264  libsanitizer/sanitizer_common/sanitizer_solaris.h
  44cf531f3ea724c10e12db0e154da4d0  libsanitizer/sanitizer_common/sanitizer_stack_store.cpp
--- 122437,122518 ----
  714375c2f0080364d3f9636fb365cb50  libsanitizer/sanitizer_common/sanitizer_deadlock_detector_interface.h
  237e8b48d89526cd936a719703f16f97  libsanitizer/sanitizer_common/sanitizer_dense_map.h
  2416325b5cdf8be42ab7069b88ad4a2d  libsanitizer/sanitizer_common/sanitizer_dense_map_info.h
+ 51f60f3e08112ffd8d2087e1118450d2  libsanitizer/sanitizer_common/sanitizer_dl.cpp
+ 56aa2ff246c77ba5a8c066d6cc0c8ea9  libsanitizer/sanitizer_common/sanitizer_dl.h
  dd71222889a46d09229b51c9a128a5aa  libsanitizer/sanitizer_common/sanitizer_errno.cpp
  b751f665e23f9c48eeffdb8ab7973e35  libsanitizer/sanitizer_common/sanitizer_errno.h
! 75f6c06a908c5278371c85a51dd1f8dd  libsanitizer/sanitizer_common/sanitizer_errno_codes.h
  ad56586f1276455526fe2f5e5cd53cae  libsanitizer/sanitizer_common/sanitizer_file.cpp
! 1a5a447ab60a66359da740801bd8ba9d  libsanitizer/sanitizer_common/sanitizer_file.h
! fe75d2882844576020bba0da3fd2de97  libsanitizer/sanitizer_common/sanitizer_flag_parser.cpp
! 1e99a92428a0c48f7a74933ba4f3f378  libsanitizer/sanitizer_common/sanitizer_flag_parser.h
! 1f6a67b0728f9b8e7c3cca7b3d8efa8d  libsanitizer/sanitizer_common/sanitizer_flags.cpp
  50b07ed067f181e6df763aa0940acec1  libsanitizer/sanitizer_common/sanitizer_flags.h
! e94d472f60d95953c9c7b1f11eb69635  libsanitizer/sanitizer_common/sanitizer_flags.inc
! 51e0cdd7106d7bcb9f1990e06828aef0  libsanitizer/sanitizer_common/sanitizer_flat_map.h
  3f779f66885b3027cad2a2af88a8a2f5  libsanitizer/sanitizer_common/sanitizer_freebsd.h
! 93f1f3fc4cc64073b5faf1d2892993b1  libsanitizer/sanitizer_common/sanitizer_fuchsia.cpp
  286b7995698dbe20223e1a3c05933d6d  libsanitizer/sanitizer_common/sanitizer_fuchsia.h
  1d8e62bbd8a595f6e44228e1dc7cbcd8  libsanitizer/sanitizer_common/sanitizer_getauxval.h
  f06be5c69a658d7ac5ebea616ebb001a  libsanitizer/sanitizer_common/sanitizer_glibc_version.h
  0106ca8c2ac52a690196a29c2fd63de6  libsanitizer/sanitizer_common/sanitizer_hash.h
! 14320fc600ec0b7789c3baf1cf923a1d  libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc
! 896c341833359a7fe4247ab78166b54b  libsanitizer/sanitizer_common/sanitizer_interface_internal.h
! 242163f02da16c66a88194208a3d93db  libsanitizer/sanitizer_common/sanitizer_internal_defs.h
  45de936b7d4065758483844c920f2ba4  libsanitizer/sanitizer_common/sanitizer_leb128.h
  5da7cbe05015b8a52342cd8a74fb0ad2  libsanitizer/sanitizer_common/sanitizer_lfstack.h
! abc3d4588ee1b4576e4493c95b0b0583  libsanitizer/sanitizer_common/sanitizer_libc.cpp
! fcccc17ab9511f4da14279e7828a5ddd  libsanitizer/sanitizer_common/sanitizer_libc.h
  537dd9a212b82bf6f062b47c5df57c86  libsanitizer/sanitizer_common/sanitizer_libignore.cpp
  43841a8fb2414dc7836e2d07d6197776  libsanitizer/sanitizer_common/sanitizer_libignore.h
! 0c3aead2737020263a21f707e4ea31c0  libsanitizer/sanitizer_common/sanitizer_linux.cpp
! 0e3343052c51ec7527fc453c80350ae7  libsanitizer/sanitizer_common/sanitizer_linux.h
! eaca20a673cac17f216b625265e8b555  libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp
  9ce22ccd9943bda9795a2efeccec7f16  libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp
  51d4c37472c1c2c6010e5d1eb5bf340f  libsanitizer/sanitizer_common/sanitizer_list.h
  15f5a30dda04b6f3bc49cb5206d92e7b  libsanitizer/sanitizer_common/sanitizer_local_address_space_view.h
  b819992c5da123bc4d79e61fa5154215  libsanitizer/sanitizer_common/sanitizer_lzw.h
! 3628e69f0c97fc4768eb5cc4d0d90daa  libsanitizer/sanitizer_common/sanitizer_mac.cpp
  4a2287c1e441c3abcc5c9ee7aee2754d  libsanitizer/sanitizer_common/sanitizer_mac.h
  3c8a29762c7ecf7082ea5a28335716f6  libsanitizer/sanitizer_common/sanitizer_mac_libcdep.cpp
! 459a29cf06d03860fadccef108a8fab8  libsanitizer/sanitizer_common/sanitizer_mallinfo.h
! 782e293828801abaf565a8fefd3cce35  libsanitizer/sanitizer_common/sanitizer_malloc_mac.inc
  231790ca3e16e72faa2f393344107c51  libsanitizer/sanitizer_common/sanitizer_mutex.cpp
  7dc346968361491c8e35254fcd12ca5c  libsanitizer/sanitizer_common/sanitizer_mutex.h
  3ec767742997468be9817fb2a5fe4c1f  libsanitizer/sanitizer_common/sanitizer_netbsd.cpp
  b9966b23ae76d3ec9290c4a5e8c3d94c  libsanitizer/sanitizer_common/sanitizer_placement_new.h
! e18e7cdb6207fae4d5609577fbcfc43f  libsanitizer/sanitizer_common/sanitizer_platform.h
! 032e4109fb5b93b108cddab478756d15  libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
! f9fe05f7ffd45a48c2d004ae4cb1f825  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
! 1b9fc3fbeff7313d9bd812a15e3e55ab  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.h
  b582d1c8ad1dfab45211cbb7c25cf5f6  libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp
! a4d7b3990585330fb0fbc99e5afaf019  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
! 0865bdc585846a1c9cfa5d1df0517d02  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp
  d41d8cd98f00b204e9800998ecf8427e  libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h
! de3519edf4a524cdab4336d4eeed94e0  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
! 1c6ecd7b7fd7b299a11f160ad0de1043  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  711b54008ada7faff939a95e325b185b  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  ab1ad414331f77e459da9a32b756cbac  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
! e3606cc19e7b02bfba7878ba5d6ce75a  libsanitizer/sanitizer_common/sanitizer_posix.cpp
! 0213bb4fba63d9c40c7e45320ceaa40e  libsanitizer/sanitizer_common/sanitizer_posix.h
! 5ec19931360eacdd1bdd7eb328da501e  libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
! 395684fcbcb844538648999433acf7dd  libsanitizer/sanitizer_common/sanitizer_printf.cpp
! e74aaa19ad8d77b9c3fdc095cd85f72d  libsanitizer/sanitizer_common/sanitizer_procmaps.h
! 07676c2c521743d49b9ce9d443d98a99  libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp
! 2c5fca0fdfe3a04814815ffb2ab7d6df  libsanitizer/sanitizer_common/sanitizer_procmaps_common.cpp
  359d6e04536b11f84ee64fcc65fceff5  libsanitizer/sanitizer_common/sanitizer_procmaps_fuchsia.cpp
  cac752f7b42df7a26fc91e0aadc8aa36  libsanitizer/sanitizer_common/sanitizer_procmaps_linux.cpp
! 578c24e1321621932bbbb900ed4b6788  libsanitizer/sanitizer_common/sanitizer_procmaps_mac.cpp
  f873c2c0855223fd5d10002c1fde8b1e  libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
  f35117287ec4a6a6d785ad92db83acd9  libsanitizer/sanitizer_common/sanitizer_ptrauth.h
! 6a13c5d77fcf1ab15a92498a30bfc5c2  libsanitizer/sanitizer_common/sanitizer_quarantine.h
! 7991d1d21190a84ae23b6795d92b8228  libsanitizer/sanitizer_common/sanitizer_range.cpp
! 63beefad8f822d08911997ce177551c3  libsanitizer/sanitizer_common/sanitizer_range.h
! 09d8e9a490c96501c18bd19c2bcac949  libsanitizer/sanitizer_common/sanitizer_redefine_builtins.h
  790117d4c85c98c499151ad830f99a49  libsanitizer/sanitizer_common/sanitizer_report_decorator.h
! 490e9e2e338b8cd9b363bf836a1362d7  libsanitizer/sanitizer_common/sanitizer_ring_buffer.h
! 62a52ef4ab43d92a89baff5071bc1ded  libsanitizer/sanitizer_common/sanitizer_signal_interceptors.inc
  d81628c1f3c14142bf5218228d6bdcc6  libsanitizer/sanitizer_common/sanitizer_solaris.cpp
  379f4e42b7a717d642000a85a853e264  libsanitizer/sanitizer_common/sanitizer_solaris.h
  44cf531f3ea724c10e12db0e154da4d0  libsanitizer/sanitizer_common/sanitizer_stack_store.cpp
*************** bf15e54f8c49d6dbf0b70f17a2bbab18  libsan
*** 112462,112494 ****
  7d9a7e41e6697230497277a7e15f2e70  libsanitizer/sanitizer_common/sanitizer_stackdepot.h
  2e9c77f595e59b5fd833e23184556a92  libsanitizer/sanitizer_common/sanitizer_stackdepotbase.h
  7fab594cee994193cd21982e73ace63e  libsanitizer/sanitizer_common/sanitizer_stacktrace.cpp
! 5c66d0ec7cc35d1e223a096b2a462b21  libsanitizer/sanitizer_common/sanitizer_stacktrace.h
! e03880b98c21fda906a2dd64018acd29  libsanitizer/sanitizer_common/sanitizer_stacktrace_libcdep.cpp
! 1f45e6f9f3928ddb98146ab114a09d9c  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.cpp
! 48a3ae33d0047b239ce6108de3b21f01  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.h
! 3f54427e1b0f2a4b31b739360733f3e9  libsanitizer/sanitizer_common/sanitizer_stacktrace_sparc.cpp
  76324ac84f5eb512c3e2351dbfd9ce24  libsanitizer/sanitizer_common/sanitizer_stoptheworld.h
  c1faa837dd50d9ad2162751a200fa58b  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.cpp
  60c0888eff94b59773f87548c52f756a  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.h
! c1c11c9d3bd683239d37937574d5e21d  libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
! d68bf77d0819cb8ab66129dbe013e4a1  libsanitizer/sanitizer_common/sanitizer_stoptheworld_mac.cpp
  c037ff7568ea4e12399926fdbde8a8c1  libsanitizer/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
  bdb416b455b14acf317962318eb84924  libsanitizer/sanitizer_common/sanitizer_stoptheworld_win.cpp
! a4af335f21aab3f4c9445d6b7c4713ba  libsanitizer/sanitizer_common/sanitizer_suppressions.cpp
  6dc05d23b94fb4783618dcd3cd4b1c9f  libsanitizer/sanitizer_common/sanitizer_suppressions.h
! bcbd3243edad543e0e1659d2c29008be  libsanitizer/sanitizer_common/sanitizer_symbolizer.cpp
! 31a95d92c37f137ec0b7c89bfb786d2d  libsanitizer/sanitizer_common/sanitizer_symbolizer.h
  12fcc306e0ffc32a224b785eaec125a8  libsanitizer/sanitizer_common/sanitizer_symbolizer_fuchsia.h
! c377dcab75ef9e27f6ba69c01168c723  libsanitizer/sanitizer_common/sanitizer_symbolizer_internal.h
! bb131db68f565eae8a9dc5516f29326e  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp
  57fad0f520b4b3e56bb19ce40a50676a  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.h
! 4dd31db6379878df8683f93dd5db0e1c  libsanitizer/sanitizer_common/sanitizer_symbolizer_libcdep.cpp
! 5c9513817469deda9988ef16457e7060  libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.cpp
  cf53e533bc415a2a97e702de211878f1  libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.h
! 361c94e532f46caa8e6f4a19b3ae5283  libsanitizer/sanitizer_common/sanitizer_symbolizer_markup.cpp
! f277617b5c2014cc47e53907447583d4  libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
! 48021d5990737692bf78dd48f2dfc34a  libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp
! 3940b7253b67fa161aea555e68159565  libsanitizer/sanitizer_common/sanitizer_symbolizer_win.cpp
  10bef8250d15b767f78688de7350a2a0  libsanitizer/sanitizer_common/sanitizer_syscall_generic.inc
  9546e0a896837e1fc30d0f1421f2b220  libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc
  0711f1c23e48efd357f77c0be4ab551c  libsanitizer/sanitizer_common/sanitizer_syscall_linux_arm.inc
--- 122521,122553 ----
  7d9a7e41e6697230497277a7e15f2e70  libsanitizer/sanitizer_common/sanitizer_stackdepot.h
  2e9c77f595e59b5fd833e23184556a92  libsanitizer/sanitizer_common/sanitizer_stackdepotbase.h
  7fab594cee994193cd21982e73ace63e  libsanitizer/sanitizer_common/sanitizer_stacktrace.cpp
! b647c573b756151c66842f4029cc50c8  libsanitizer/sanitizer_common/sanitizer_stacktrace.h
! 54ed7011fff25a1ccd3b985b99de3418  libsanitizer/sanitizer_common/sanitizer_stacktrace_libcdep.cpp
! f856673b71d569eb84d2023daca2c855  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.cpp
! f7c643362db54b2992f4562d4ab125f0  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.h
! 970bd85f99e504e1b5effed9862cc9c5  libsanitizer/sanitizer_common/sanitizer_stacktrace_sparc.cpp
  76324ac84f5eb512c3e2351dbfd9ce24  libsanitizer/sanitizer_common/sanitizer_stoptheworld.h
  c1faa837dd50d9ad2162751a200fa58b  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.cpp
  60c0888eff94b59773f87548c52f756a  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.h
! 177c0ff8df6a9bb506c71750b68b776e  libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
! c22a391491d33bcbef7758f001dc204d  libsanitizer/sanitizer_common/sanitizer_stoptheworld_mac.cpp
  c037ff7568ea4e12399926fdbde8a8c1  libsanitizer/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
  bdb416b455b14acf317962318eb84924  libsanitizer/sanitizer_common/sanitizer_stoptheworld_win.cpp
! 3f94c6f51c2361358cdb1890c9092488  libsanitizer/sanitizer_common/sanitizer_suppressions.cpp
  6dc05d23b94fb4783618dcd3cd4b1c9f  libsanitizer/sanitizer_common/sanitizer_suppressions.h
! 9f7aefe7272c0c1ac5c83fba7988c9d3  libsanitizer/sanitizer_common/sanitizer_symbolizer.cpp
! 145073092f69370b7124d72fcb8e0576  libsanitizer/sanitizer_common/sanitizer_symbolizer.h
  12fcc306e0ffc32a224b785eaec125a8  libsanitizer/sanitizer_common/sanitizer_symbolizer_fuchsia.h
! 7f944ae09b27a906e595c100e8e459ee  libsanitizer/sanitizer_common/sanitizer_symbolizer_internal.h
! 86502e8ef2c025574561f9f604e8652d  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp
  57fad0f520b4b3e56bb19ce40a50676a  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.h
! 8da54a4ea61ff3a8c72843541a672532  libsanitizer/sanitizer_common/sanitizer_symbolizer_libcdep.cpp
! 4e730f2029e47640a2ee4e08fa525cb1  libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.cpp
  cf53e533bc415a2a97e702de211878f1  libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.h
! 09856628324f521738c33dc217d25d31  libsanitizer/sanitizer_common/sanitizer_symbolizer_markup.cpp
! eacfa2c4b34c7ae59dd9e4d502d7d58b  libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
! 84a5737d5dd0557b20929bf3360bafff  libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp
! 903c6846f81bc367a0fbe370e51043db  libsanitizer/sanitizer_common/sanitizer_symbolizer_win.cpp
  10bef8250d15b767f78688de7350a2a0  libsanitizer/sanitizer_common/sanitizer_syscall_generic.inc
  9546e0a896837e1fc30d0f1421f2b220  libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc
  0711f1c23e48efd357f77c0be4ab551c  libsanitizer/sanitizer_common/sanitizer_syscall_linux_arm.inc
*************** a14b05d5a122d962a0d8d477334c65e1  libsan
*** 112498,112582 ****
  e5a40190912f9655e972ed0025bf35f3  libsanitizer/sanitizer_common/sanitizer_syscall_linux_x86_64.inc
  d8a9b7fa2b04f6a9489b693d2827c76a  libsanitizer/sanitizer_common/sanitizer_syscalls_netbsd.inc
  dd3c422b6984d35ca7d0c2b990a064f7  libsanitizer/sanitizer_common/sanitizer_termination.cpp
! dc739667f6672bb9178e9b59aac58af3  libsanitizer/sanitizer_common/sanitizer_thread_registry.cpp
  d00617e0240d20e556ffe9e9a03b177b  libsanitizer/sanitizer_common/sanitizer_thread_registry.h
  f337f2c9c679c772ddff2564c1e814e5  libsanitizer/sanitizer_common/sanitizer_thread_safety.h
! 8af60b5c0568e3d3e9e590b73ec10db3  libsanitizer/sanitizer_common/sanitizer_tls_get_addr.cpp
! 067a90198acd4ef92494bee073c0e1bc  libsanitizer/sanitizer_common/sanitizer_tls_get_addr.h
  daf0a3ec50a14c09b41741865f11e807  libsanitizer/sanitizer_common/sanitizer_type_traits.cpp
  c7100b0c25734fc3c76d5416db5be325  libsanitizer/sanitizer_common/sanitizer_type_traits.h
! 3d9b2d310c6cd51902430a2eca4a3928  libsanitizer/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
  c81b4e41a8e4b42c37701357d1273b78  libsanitizer/sanitizer_common/sanitizer_unwind_win.cpp
  c6626ead5ce5eff397b6675bbf291cde  libsanitizer/sanitizer_common/sanitizer_vector.h
! b940992ba798c2ba2e2c2e09e5593eac  libsanitizer/sanitizer_common/sanitizer_win.cpp
  ca31c361d0d8cc286a9c2a79da57a3ed  libsanitizer/sanitizer_common/sanitizer_win.h
  3a867f4ebec3e726e51526c82c85c978  libsanitizer/sanitizer_common/sanitizer_win_defs.h
  192408cb784e2738287506aefa3d586d  libsanitizer/sanitizer_common/sanitizer_win_dll_thunk.cpp
! 908ac43d74f02caceaab299fc576db81  libsanitizer/sanitizer_common/sanitizer_win_dll_thunk.h
  c8748a0184d2e5e1b50d9c106e5a45f1  libsanitizer/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cpp
  61159becd1bfb41004e8fef8a36ccc1c  libsanitizer/sanitizer_common/sanitizer_win_weak_interception.cpp
  eb330b64a368e29af662c65273f49815  libsanitizer/sanitizer_common/sanitizer_win_weak_interception.h
! 1da1dc15e8a99a17e3cd3c451a4ed384  libsanitizer/tsan/Makefile.am
! 467c97ab351500d44ac46ae6bd84a1b6  libsanitizer/tsan/Makefile.in
  4993c3783465efe7eb63dd3ae6611678  libsanitizer/tsan/libtool-version
! 667d38de68db9301dd9eb4ff9ed26207  libsanitizer/tsan/tsan_debugging.cpp
  3cb402cb2391c0a09d0d90ea374ab9b7  libsanitizer/tsan/tsan_defs.h
  2b8f57d3e2eee47095d7d41f44964f41  libsanitizer/tsan/tsan_dense_alloc.h
  3104498336ec8a608c8338ecf1048b03  libsanitizer/tsan/tsan_dispatch_defs.h
! 137a34ad34b3cad10e3d9c1f0f4d3c8f  libsanitizer/tsan/tsan_external.cpp
  3d494f806f28e53275870211565852ef  libsanitizer/tsan/tsan_fd.cpp
  84644dcbcc7cf34528393f9790a85897  libsanitizer/tsan/tsan_fd.h
! 2199cbc089e8a77c24c9e214f1962dcb  libsanitizer/tsan/tsan_flags.cpp
  9fcbcc17ace4216572d132c7f19980dd  libsanitizer/tsan/tsan_flags.h
  03e8ef6fd65a0666d2072c12853e6950  libsanitizer/tsan/tsan_flags.inc
  60bfaa19bc1c038d806e759abd03e869  libsanitizer/tsan/tsan_ignoreset.cpp
  d419772368c76a807ff66bafd0683028  libsanitizer/tsan/tsan_ignoreset.h
  45bd7ec3e79167e3101e35f5ba81d51b  libsanitizer/tsan/tsan_ilist.h
! 8c4b7231da92776ad1620cff3c159c95  libsanitizer/tsan/tsan_interceptors.h
! d3941629145742dae4a218e73d7a9191  libsanitizer/tsan/tsan_interceptors_libdispatch.cpp
! c5829ae368a70166df8d91afdb1aab12  libsanitizer/tsan/tsan_interceptors_mac.cpp
  a83781c196d253d2f7538367873b4d65  libsanitizer/tsan/tsan_interceptors_mach_vm.cpp
! 391d84ceea84d6fabec4124519cdf778  libsanitizer/tsan/tsan_interceptors_posix.cpp
  44e87b9222e50e4ce561458989a58e85  libsanitizer/tsan/tsan_interface.cpp
! f7a2540a23a1d6e129fcbd7c9083df72  libsanitizer/tsan/tsan_interface.h
  12c2d0a710c7eb00a61b269e3a5e2444  libsanitizer/tsan/tsan_interface.inc
! dceedb94557d32f3adb2b1096f4759b6  libsanitizer/tsan/tsan_interface_ann.cpp
  85e02689af55fa1cc3f98b5cfe3043a1  libsanitizer/tsan/tsan_interface_ann.h
! 8f3d230871696109b09150ad2a324579  libsanitizer/tsan/tsan_interface_atomic.cpp
  fa41f071fdf51b20a993550241165dfd  libsanitizer/tsan/tsan_interface_java.cpp
  b6f28fd4519c6bc2e8cd9cdb820f72a8  libsanitizer/tsan/tsan_interface_java.h
! 14d0516fcf2e935b95a0680ea8b08505  libsanitizer/tsan/tsan_malloc_mac.cpp
  2ce89d665869a9e29509f68c3b093511  libsanitizer/tsan/tsan_md5.cpp
! fb884e452ba81cdcbf0cafe7b0de354f  libsanitizer/tsan/tsan_mman.cpp
  4d1f89b863af5a63e195ef894d03ec41  libsanitizer/tsan/tsan_mman.h
  fce523833cd619da90b4bb9efe7126aa  libsanitizer/tsan/tsan_mutexset.cpp
  5c2fffc76ce06a684d8c9fe407d8d735  libsanitizer/tsan/tsan_mutexset.h
  abb77573543b4ca2e18a84ae834d8ff7  libsanitizer/tsan/tsan_new_delete.cpp
! 11b46f67d7630345c4dd302567472fbd  libsanitizer/tsan/tsan_platform.h
! a6cf35b1e4e6f3dc3622b57325a3244b  libsanitizer/tsan/tsan_platform_linux.cpp
  78d132b697c82d459c129afb535ff70a  libsanitizer/tsan/tsan_platform_mac.cpp
! e51e78fd7a3bf5e7908f7ca4521cedca  libsanitizer/tsan/tsan_platform_posix.cpp
  3988e672409da51d77f562f3c17ad309  libsanitizer/tsan/tsan_platform_windows.cpp
  52a08181bf0cebd537f6ff681e4201d2  libsanitizer/tsan/tsan_ppc_regs.h
  26e9eb9d1219608d4a3f8b5de755e6c7  libsanitizer/tsan/tsan_preinit.cpp
! 90a165389fea896672e7069ef9b0bf67  libsanitizer/tsan/tsan_report.cpp
! 8ce569f2cacd5ec6081419ecb490fb42  libsanitizer/tsan/tsan_report.h
! 4b3afa07d87cc25d7cfe5cc74f0eba9b  libsanitizer/tsan/tsan_rtl.cpp
! a94ce163f6dab8bd7026b6f34850ab2b  libsanitizer/tsan/tsan_rtl.h
! b07a5d2489d36192b3df5324b8591748  libsanitizer/tsan/tsan_rtl_aarch64.S
  a162c81534f415464750599a907f5adc  libsanitizer/tsan/tsan_rtl_access.cpp
  21a51361f4b9d69ba544bd2b24129994  libsanitizer/tsan/tsan_rtl_amd64.S
  2e223da4b198b7996aa993b62da9470c  libsanitizer/tsan/tsan_rtl_mips64.S
  6377ac5d4eaf7ca164273ec46eac6d26  libsanitizer/tsan/tsan_rtl_mutex.cpp
  d771c907949512e86f6221398475c2c1  libsanitizer/tsan/tsan_rtl_ppc64.S
  d23feb95e5ade35c9d1fa0203dfc64bb  libsanitizer/tsan/tsan_rtl_proc.cpp
! d8b5eaae82e3e95c15e1d7f6fe58ead1  libsanitizer/tsan/tsan_rtl_report.cpp
  28f4e3484ccd9079551dd4c92a0c47f2  libsanitizer/tsan/tsan_rtl_s390x.S
  fc56488c2329a1f25fd4f02e96bd2888  libsanitizer/tsan/tsan_rtl_thread.cpp
  a10771eef091e41d3529a27da63b2c73  libsanitizer/tsan/tsan_shadow.h
  d927f16e28e5fd7b5a8c718f575d7a09  libsanitizer/tsan/tsan_stack_trace.cpp
  fcdf88c4922b4bf531859f5e19f37f19  libsanitizer/tsan/tsan_stack_trace.h
! 69f20cee78a054f26a59decf38be934b  libsanitizer/tsan/tsan_suppressions.cpp
  2158aca0f3a2d54057e8cd7895ef496c  libsanitizer/tsan/tsan_suppressions.h
  44bcdcf638df13751840900e2eb82315  libsanitizer/tsan/tsan_symbolize.cpp
  339793c91cce47c39da05aab388a1d91  libsanitizer/tsan/tsan_symbolize.h
--- 122557,122647 ----
  e5a40190912f9655e972ed0025bf35f3  libsanitizer/sanitizer_common/sanitizer_syscall_linux_x86_64.inc
  d8a9b7fa2b04f6a9489b693d2827c76a  libsanitizer/sanitizer_common/sanitizer_syscalls_netbsd.inc
  dd3c422b6984d35ca7d0c2b990a064f7  libsanitizer/sanitizer_common/sanitizer_termination.cpp
! 9de2c0de4f09c0896aea014be6f878ea  libsanitizer/sanitizer_common/sanitizer_thread_arg_retval.cpp
! 90aff76fd964c34268b5b763716b2119  libsanitizer/sanitizer_common/sanitizer_thread_arg_retval.h
! 8f5ece2b5ed4c78c4bfae5d91ff9487e  libsanitizer/sanitizer_common/sanitizer_thread_registry.cpp
  d00617e0240d20e556ffe9e9a03b177b  libsanitizer/sanitizer_common/sanitizer_thread_registry.h
  f337f2c9c679c772ddff2564c1e814e5  libsanitizer/sanitizer_common/sanitizer_thread_safety.h
! b8a0496996515c2230d13b6dd3907e7e  libsanitizer/sanitizer_common/sanitizer_tls_get_addr.cpp
! b4526e156df12b232b2045b83c36f09f  libsanitizer/sanitizer_common/sanitizer_tls_get_addr.h
  daf0a3ec50a14c09b41741865f11e807  libsanitizer/sanitizer_common/sanitizer_type_traits.cpp
  c7100b0c25734fc3c76d5416db5be325  libsanitizer/sanitizer_common/sanitizer_type_traits.h
! 8b294afb5681a0b6adddd1dc224e8eb3  libsanitizer/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
  c81b4e41a8e4b42c37701357d1273b78  libsanitizer/sanitizer_common/sanitizer_unwind_win.cpp
  c6626ead5ce5eff397b6675bbf291cde  libsanitizer/sanitizer_common/sanitizer_vector.h
! e2442ccc6439126b7669c78afaaee071  libsanitizer/sanitizer_common/sanitizer_win.cpp
  ca31c361d0d8cc286a9c2a79da57a3ed  libsanitizer/sanitizer_common/sanitizer_win.h
  3a867f4ebec3e726e51526c82c85c978  libsanitizer/sanitizer_common/sanitizer_win_defs.h
  192408cb784e2738287506aefa3d586d  libsanitizer/sanitizer_common/sanitizer_win_dll_thunk.cpp
! 3ba9cfc51a7bc5c10f9ec7074a16be60  libsanitizer/sanitizer_common/sanitizer_win_dll_thunk.h
  c8748a0184d2e5e1b50d9c106e5a45f1  libsanitizer/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cpp
  61159becd1bfb41004e8fef8a36ccc1c  libsanitizer/sanitizer_common/sanitizer_win_weak_interception.cpp
  eb330b64a368e29af662c65273f49815  libsanitizer/sanitizer_common/sanitizer_win_weak_interception.h
! bc7086b0a2c7fae09dee84a73af06b21  libsanitizer/tsan/Makefile.am
! 50080a4adcf1dc19f8aec1c7edd9e94e  libsanitizer/tsan/Makefile.in
  4993c3783465efe7eb63dd3ae6611678  libsanitizer/tsan/libtool-version
! c9463f7672b8955c8c5a62008e50d172  libsanitizer/tsan/tsan_debugging.cpp
  3cb402cb2391c0a09d0d90ea374ab9b7  libsanitizer/tsan/tsan_defs.h
  2b8f57d3e2eee47095d7d41f44964f41  libsanitizer/tsan/tsan_dense_alloc.h
  3104498336ec8a608c8338ecf1048b03  libsanitizer/tsan/tsan_dispatch_defs.h
! 739c3934d530a14499813584df8a16d0  libsanitizer/tsan/tsan_external.cpp
  3d494f806f28e53275870211565852ef  libsanitizer/tsan/tsan_fd.cpp
  84644dcbcc7cf34528393f9790a85897  libsanitizer/tsan/tsan_fd.h
! 7cfdddbed7ec59ef27883bbb0ae366ba  libsanitizer/tsan/tsan_flags.cpp
  9fcbcc17ace4216572d132c7f19980dd  libsanitizer/tsan/tsan_flags.h
  03e8ef6fd65a0666d2072c12853e6950  libsanitizer/tsan/tsan_flags.inc
  60bfaa19bc1c038d806e759abd03e869  libsanitizer/tsan/tsan_ignoreset.cpp
  d419772368c76a807ff66bafd0683028  libsanitizer/tsan/tsan_ignoreset.h
  45bd7ec3e79167e3101e35f5ba81d51b  libsanitizer/tsan/tsan_ilist.h
! 06a4b4cb6505540e613b010a75484946  libsanitizer/tsan/tsan_interceptors.h
! 5ae7905d35628b6e1eed00f1fc25caa7  libsanitizer/tsan/tsan_interceptors_libdispatch.cpp
! 035179eff5a0fe4676a0b61658f71d42  libsanitizer/tsan/tsan_interceptors_mac.cpp
  a83781c196d253d2f7538367873b4d65  libsanitizer/tsan/tsan_interceptors_mach_vm.cpp
! fad10d5e8278f758dbd89e63f71aae9d  libsanitizer/tsan/tsan_interceptors_memintrinsics.cpp
! 265b0ba0499bbb4624aac82784c7f777  libsanitizer/tsan/tsan_interceptors_posix.cpp
  44e87b9222e50e4ce561458989a58e85  libsanitizer/tsan/tsan_interface.cpp
! 13f1c6ec638214307e59922e63b441cb  libsanitizer/tsan/tsan_interface.h
  12c2d0a710c7eb00a61b269e3a5e2444  libsanitizer/tsan/tsan_interface.inc
! a972ff75c948c2898f836567e365f225  libsanitizer/tsan/tsan_interface_ann.cpp
  85e02689af55fa1cc3f98b5cfe3043a1  libsanitizer/tsan/tsan_interface_ann.h
! f098696b72ba6c84c36e80dd22ca5fe1  libsanitizer/tsan/tsan_interface_atomic.cpp
  fa41f071fdf51b20a993550241165dfd  libsanitizer/tsan/tsan_interface_java.cpp
  b6f28fd4519c6bc2e8cd9cdb820f72a8  libsanitizer/tsan/tsan_interface_java.h
! c7957f47ce5239b5caf8b53459f90f6e  libsanitizer/tsan/tsan_malloc_mac.cpp
  2ce89d665869a9e29509f68c3b093511  libsanitizer/tsan/tsan_md5.cpp
! 3a6953dd73cd623e0a13e0a87c5b1679  libsanitizer/tsan/tsan_mman.cpp
  4d1f89b863af5a63e195ef894d03ec41  libsanitizer/tsan/tsan_mman.h
  fce523833cd619da90b4bb9efe7126aa  libsanitizer/tsan/tsan_mutexset.cpp
  5c2fffc76ce06a684d8c9fe407d8d735  libsanitizer/tsan/tsan_mutexset.h
  abb77573543b4ca2e18a84ae834d8ff7  libsanitizer/tsan/tsan_new_delete.cpp
! dd175c5cc97611eeb0a13dd2cb9c4cc0  libsanitizer/tsan/tsan_platform.h
! ffb967b5f13d9641d31afa9b62f01800  libsanitizer/tsan/tsan_platform_linux.cpp
  78d132b697c82d459c129afb535ff70a  libsanitizer/tsan/tsan_platform_mac.cpp
! 8224f95ca4a69ba0feef1f52c598fcb0  libsanitizer/tsan/tsan_platform_posix.cpp
  3988e672409da51d77f562f3c17ad309  libsanitizer/tsan/tsan_platform_windows.cpp
  52a08181bf0cebd537f6ff681e4201d2  libsanitizer/tsan/tsan_ppc_regs.h
  26e9eb9d1219608d4a3f8b5de755e6c7  libsanitizer/tsan/tsan_preinit.cpp
! 6b5ea016af0d4d7772b83b3da333cf22  libsanitizer/tsan/tsan_report.cpp
! c68d61aeee9a11bc4c3a287966347eb9  libsanitizer/tsan/tsan_report.h
! 640e534b1122906ae708891d6910c7ae  libsanitizer/tsan/tsan_rtl.cpp
! b17b88da9c9ed34ed36dd43ecf025125  libsanitizer/tsan/tsan_rtl.h
! be571e4354cecddcd2411e64a512b9f9  libsanitizer/tsan/tsan_rtl_aarch64.S
  a162c81534f415464750599a907f5adc  libsanitizer/tsan/tsan_rtl_access.cpp
  21a51361f4b9d69ba544bd2b24129994  libsanitizer/tsan/tsan_rtl_amd64.S
+ 9c988affea81c858d52b1b7ebf21e3b3  libsanitizer/tsan/tsan_rtl_loongarch64.S
  2e223da4b198b7996aa993b62da9470c  libsanitizer/tsan/tsan_rtl_mips64.S
  6377ac5d4eaf7ca164273ec46eac6d26  libsanitizer/tsan/tsan_rtl_mutex.cpp
  d771c907949512e86f6221398475c2c1  libsanitizer/tsan/tsan_rtl_ppc64.S
  d23feb95e5ade35c9d1fa0203dfc64bb  libsanitizer/tsan/tsan_rtl_proc.cpp
! f3053726fb4fce5a28eec514926684eb  libsanitizer/tsan/tsan_rtl_report.cpp
! 39578f7f0f1d3c5038bb6d1efb8d1335  libsanitizer/tsan/tsan_rtl_riscv64.S
  28f4e3484ccd9079551dd4c92a0c47f2  libsanitizer/tsan/tsan_rtl_s390x.S
  fc56488c2329a1f25fd4f02e96bd2888  libsanitizer/tsan/tsan_rtl_thread.cpp
  a10771eef091e41d3529a27da63b2c73  libsanitizer/tsan/tsan_shadow.h
+ 17ea88c98da50f5e75f508e49c6e098e  libsanitizer/tsan/tsan_spinlock_defs_mac.h
  d927f16e28e5fd7b5a8c718f575d7a09  libsanitizer/tsan/tsan_stack_trace.cpp
  fcdf88c4922b4bf531859f5e19f37f19  libsanitizer/tsan/tsan_stack_trace.h
! 4a4f5438536fc0f3b1e8145c79f442e7  libsanitizer/tsan/tsan_suppressions.cpp
  2158aca0f3a2d54057e8cd7895ef496c  libsanitizer/tsan/tsan_suppressions.h
  44bcdcf638df13751840900e2eb82315  libsanitizer/tsan/tsan_symbolize.cpp
  339793c91cce47c39da05aab388a1d91  libsanitizer/tsan/tsan_symbolize.h
*************** ac99e2a1604f10691ceb3d4a4600d0ed  libsan
*** 112585,112653 ****
  8ca6a9e7f5c97b2069ca2eb034d7b61f  libsanitizer/tsan/tsan_trace.h
  7043f9d2d6d55a4a9dad3179e81ac578  libsanitizer/tsan/tsan_vector_clock.cpp
  5f66ec32201aa975081f4ec4905d1343  libsanitizer/tsan/tsan_vector_clock.h
! f6d1a5a4cab859262269889366adae69  libsanitizer/ubsan/Makefile.am
! 757a33aaa45309e3ead517d72933a999  libsanitizer/ubsan/Makefile.in
  db0727716bbb494b5221fcab5517db23  libsanitizer/ubsan/libtool-version
  09adf5cec3b2e75084c18928b377c4f3  libsanitizer/ubsan/ubsan_checks.inc
! 2a3a1953c98a67df25005f08f8cb9af2  libsanitizer/ubsan/ubsan_diag.cpp
  78ecfd51a2b4b88d4595bb54c66abc8a  libsanitizer/ubsan/ubsan_diag.h
  e5abe4d439045c7ad13bf70bc237033f  libsanitizer/ubsan/ubsan_diag_standalone.cpp
  e3592cc9006c6b039a3cec6a3bf25efb  libsanitizer/ubsan/ubsan_flags.cpp
  c6447e64133bd56b1aa97dde6c16675f  libsanitizer/ubsan/ubsan_flags.h
  b27e02f11f51c44900f55d9f84490952  libsanitizer/ubsan/ubsan_flags.inc
! 6e35854a1c6f7bc6e7f91bc512416315  libsanitizer/ubsan/ubsan_handlers.cpp
! f6fe1e866e950cd3658102fc9405e469  libsanitizer/ubsan/ubsan_handlers.h
  0b47c9e3d0dd3bca13d9aabbfd1435aa  libsanitizer/ubsan/ubsan_handlers_cxx.cpp
! e851b66a919376dac8b5a6ce69d20236  libsanitizer/ubsan/ubsan_handlers_cxx.h
  f9ec1b0c9f332b087aa8f2d61ec0337b  libsanitizer/ubsan/ubsan_init.cpp
  6e2f838f2a1a00942ff6a510da152fac  libsanitizer/ubsan/ubsan_init.h
  6709b25bace5613d327e12057227eefc  libsanitizer/ubsan/ubsan_init_standalone.cpp
  8b7c4cd2bd1ad8759b5d13c230fffb54  libsanitizer/ubsan/ubsan_init_standalone_preinit.cpp
! a2661ff01d56abb8a41522539c5d3931  libsanitizer/ubsan/ubsan_interface.inc
! 85f29febbb7472220e23c64c3329afe6  libsanitizer/ubsan/ubsan_monitor.cpp
  7311068be7eacbc04a232416cd95a29d  libsanitizer/ubsan/ubsan_monitor.h
  10edc94e5e8978df9e90a2d71b857b1a  libsanitizer/ubsan/ubsan_platform.h
! c538b76dffda11b57555fde1324f6e80  libsanitizer/ubsan/ubsan_signals_standalone.cpp
  80d12dc787dd1f9c2aff6e99ccf028a3  libsanitizer/ubsan/ubsan_signals_standalone.h
  c334521cda7aa18f71d0584166e5ed32  libsanitizer/ubsan/ubsan_type_hash.cpp
  cc7b9d72793a57ce775ed182634de360  libsanitizer/ubsan/ubsan_type_hash.h
! c8d0621aeb94135587684a01c4289095  libsanitizer/ubsan/ubsan_type_hash_itanium.cpp
  07c0334c044295c3fef2cabbb9973477  libsanitizer/ubsan/ubsan_type_hash_win.cpp
  da9dc2f23d9a9051a9539f05e372fcc5  libsanitizer/ubsan/ubsan_value.cpp
  bd58abd803667b3373381b6bb1b68f1b  libsanitizer/ubsan/ubsan_value.h
  545e91fffb8d4987ca5d1c0054aadd11  libsanitizer/ubsan/ubsan_win_dll_thunk.cpp
  e9c85349d92ab1a6b66d0872077acd3b  libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cpp
  72f297f487b6bb9db917cce361192c28  libsanitizer/ubsan/ubsan_win_weak_interception.cpp
! cdcbdf9c8be0585cfb43fabbaf7e4d37  libssp/ChangeLog
! e2f3818fe9d994ce13d0ce070a7d329b  libssp/Makefile.am
! b56958cdc5828ca811c35bbf479b3a09  libssp/Makefile.in
  f6f6c804e40e3a3ef407d3d13fafb6c0  libssp/aclocal.m4
! f4886e6dd0590caba717fd1bc96a6f50  libssp/config.h.in
! d8119317762c5b1679ac5058bc791ee5  libssp/configure
! add86bdb9a39ea186a4120d7e7b32438  libssp/configure.ac
! d76d3b0912f1933fe8a8dcf209440354  libssp/gets-chk.c
  0ac32b60459d1fdec670990324d7bdc6  libssp/libtool-version
! bedb32ba6fa4bf2d29ca389305556eed  libssp/memcpy-chk.c
! e1d6c4601f758cdc731802431bf74301  libssp/memmove-chk.c
! 38630731750f501e4ab3345680e86ee3  libssp/mempcpy-chk.c
! 5d050634c37bc72a86d66e78b8dd25a9  libssp/memset-chk.c
! 64f3ddaa5810605f3e6b1f6f8c2094da  libssp/snprintf-chk.c
! c080dbfff1ecee67c591c60d06f58f7a  libssp/sprintf-chk.c
! 96749aa078964a1a2c7985697998ebbf  libssp/ssp-local.c
! 2069b285c035a766df6765ddaf9f3d5d  libssp/ssp.c
  a45e2fbfb70a8e0d68d726bb31ffe4cd  libssp/ssp.map
! a8263bc3cfcc668711a0c277c4e4ade7  libssp/ssp/ssp.h.in
! 46980e0df608e11181ec2626ae8ed4b2  libssp/ssp/stdio.h
! 8ce32b42d89af88d3caa2460824869f9  libssp/ssp/string.h
! 143f398fe17ad4e0eb27558276918bf7  libssp/ssp/unistd.h
! 59eefc7728c4f30d4a346d718fe1a807  libssp/stpcpy-chk.c
! cac1566c4a6baf87d3371b36de5dc35d  libssp/strcat-chk.c
! c2a4b4ea7cc062cb165ffaac991d7ccb  libssp/strcpy-chk.c
! c265574887f4390ecccd1073ee5c0190  libssp/strncat-chk.c
! 02470b541ab713bd1bfb8e6787e65f2c  libssp/strncpy-chk.c
! 8a7a0719ef45cb3ae0041192eac8d550  libssp/vsnprintf-chk.c
! d662ba7536e1bd06226d47b1a7f1f4e2  libssp/vsprintf-chk.c
! c4b72fd7fbc8f557f4c5d95ca5f8ae15  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 122650,122718 ----
  8ca6a9e7f5c97b2069ca2eb034d7b61f  libsanitizer/tsan/tsan_trace.h
  7043f9d2d6d55a4a9dad3179e81ac578  libsanitizer/tsan/tsan_vector_clock.cpp
  5f66ec32201aa975081f4ec4905d1343  libsanitizer/tsan/tsan_vector_clock.h
! a579dd7891454b86a0c06d5cd95fe628  libsanitizer/ubsan/Makefile.am
! 1aaa880ab3bc92764d9b71d2587f13b5  libsanitizer/ubsan/Makefile.in
  db0727716bbb494b5221fcab5517db23  libsanitizer/ubsan/libtool-version
  09adf5cec3b2e75084c18928b377c4f3  libsanitizer/ubsan/ubsan_checks.inc
! 97c87b47edb4d23a6f71bed86b8e627c  libsanitizer/ubsan/ubsan_diag.cpp
  78ecfd51a2b4b88d4595bb54c66abc8a  libsanitizer/ubsan/ubsan_diag.h
  e5abe4d439045c7ad13bf70bc237033f  libsanitizer/ubsan/ubsan_diag_standalone.cpp
  e3592cc9006c6b039a3cec6a3bf25efb  libsanitizer/ubsan/ubsan_flags.cpp
  c6447e64133bd56b1aa97dde6c16675f  libsanitizer/ubsan/ubsan_flags.h
  b27e02f11f51c44900f55d9f84490952  libsanitizer/ubsan/ubsan_flags.inc
! d24dda283ed3d572867287a63f7faab7  libsanitizer/ubsan/ubsan_handlers.cpp
! e8f2db5b019b64af9534d22e15cb47a0  libsanitizer/ubsan/ubsan_handlers.h
  0b47c9e3d0dd3bca13d9aabbfd1435aa  libsanitizer/ubsan/ubsan_handlers_cxx.cpp
! f68334ffc0e5ade2b4d76ef6927bebcb  libsanitizer/ubsan/ubsan_handlers_cxx.h
  f9ec1b0c9f332b087aa8f2d61ec0337b  libsanitizer/ubsan/ubsan_init.cpp
  6e2f838f2a1a00942ff6a510da152fac  libsanitizer/ubsan/ubsan_init.h
  6709b25bace5613d327e12057227eefc  libsanitizer/ubsan/ubsan_init_standalone.cpp
  8b7c4cd2bd1ad8759b5d13c230fffb54  libsanitizer/ubsan/ubsan_init_standalone_preinit.cpp
! e370a3970bedb3db6e6c15b4c76c79b6  libsanitizer/ubsan/ubsan_interface.inc
! d86be2442566cf10902db54006f9794e  libsanitizer/ubsan/ubsan_monitor.cpp
  7311068be7eacbc04a232416cd95a29d  libsanitizer/ubsan/ubsan_monitor.h
  10edc94e5e8978df9e90a2d71b857b1a  libsanitizer/ubsan/ubsan_platform.h
! f8c2f7617c64e80f307fcd8f910dfac3  libsanitizer/ubsan/ubsan_signals_standalone.cpp
  80d12dc787dd1f9c2aff6e99ccf028a3  libsanitizer/ubsan/ubsan_signals_standalone.h
  c334521cda7aa18f71d0584166e5ed32  libsanitizer/ubsan/ubsan_type_hash.cpp
  cc7b9d72793a57ce775ed182634de360  libsanitizer/ubsan/ubsan_type_hash.h
! 80fbb3b60d4cc56d02b52268e4843ff2  libsanitizer/ubsan/ubsan_type_hash_itanium.cpp
  07c0334c044295c3fef2cabbb9973477  libsanitizer/ubsan/ubsan_type_hash_win.cpp
  da9dc2f23d9a9051a9539f05e372fcc5  libsanitizer/ubsan/ubsan_value.cpp
  bd58abd803667b3373381b6bb1b68f1b  libsanitizer/ubsan/ubsan_value.h
  545e91fffb8d4987ca5d1c0054aadd11  libsanitizer/ubsan/ubsan_win_dll_thunk.cpp
  e9c85349d92ab1a6b66d0872077acd3b  libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cpp
  72f297f487b6bb9db917cce361192c28  libsanitizer/ubsan/ubsan_win_weak_interception.cpp
! 4474533f6850392bec640f6c2633a4f5  libssp/ChangeLog
! 33b3a77c212c1263e92db5557b3cba2f  libssp/Makefile.am
! b265829fee949abbdeb896cbf2f9397d  libssp/Makefile.in
  f6f6c804e40e3a3ef407d3d13fafb6c0  libssp/aclocal.m4
! 91a807dee830170e3dc7cde11ae0662d  libssp/config.h.in
! ba49ad9141182570be4775bbda8fa6ed  libssp/configure
! 89a15c32762c1812155bed2afe5a0ad0  libssp/configure.ac
! 0f569dfa7b6d46555ca81bf693831870  libssp/gets-chk.c
  0ac32b60459d1fdec670990324d7bdc6  libssp/libtool-version
! 2c060c74b8952132c1206b5b072c46b4  libssp/memcpy-chk.c
! dec7dcb8f04fc4e7a9b4ef1bb045d9ed  libssp/memmove-chk.c
! 7df8b09544bc5c2c247ca4e26effb73e  libssp/mempcpy-chk.c
! 7b5b7334c3fb4c8fda888fa6d040f5c1  libssp/memset-chk.c
! f206460a4273a38616cc0d924eb3cfbc  libssp/snprintf-chk.c
! 5c3bb227ac0a3996f62533750dde9c0e  libssp/sprintf-chk.c
! 2ea2c5e90dc6fe38c1d1d04a6920becb  libssp/ssp-local.c
! 54ab9bd44c2772aa5155b986b48953e3  libssp/ssp.c
  a45e2fbfb70a8e0d68d726bb31ffe4cd  libssp/ssp.map
! 3f60e93570226d0cb4779d5b50b1171a  libssp/ssp/ssp.h.in
! a0ff02a28214ae2c0a556f67f2c2f5b9  libssp/ssp/stdio.h
! eb91204690c2b1ec4886d9edeb7e24d5  libssp/ssp/string.h
! 618a2af61f2f73d4623090d811cd239d  libssp/ssp/unistd.h
! 03e5012e1077193f6e3275c988725b0c  libssp/stpcpy-chk.c
! d828e38384c506bf5e7d5a3c02725a37  libssp/strcat-chk.c
! 6bd0bed6a78b11a5c75628a9c7cef917  libssp/strcpy-chk.c
! 83a89c244358cd2b7f6243f31ebd06c1  libssp/strncat-chk.c
! 7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
! a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
! 145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! 17350f06a432039c4f54bf42edee0fcb  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** a8f4290dba5b481ad426148a03c75dd0  libstd
*** 112673,112889 ****
  0f81783bc492458ec96cea677852a49c  libstdc++-v3/ChangeLog-2020
  80dfa9a5544b6411fbf1fb50c37abdaa  libstdc++-v3/ChangeLog-2021
  69469ccef96be33069fcee2e2e019c04  libstdc++-v3/ChangeLog-2022
! 8f935bcf0a7cef1820d590f10ba666e0  libstdc++-v3/Makefile.am
! 48e09ad461c04a859ea424488ccf5f25  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! e00554a21161ae898b7a1892025afca9  libstdc++-v3/acinclude.m4
  13f29ef95664bfe876c83f7743ca504d  libstdc++-v3/aclocal.m4
! 7fb8d907f8ee053483daa02dd8e691b2  libstdc++-v3/config.h.in
! dbe719d2ffb42b6b243512fe87e49072  libstdc++-v3/config/abi/compatibility.h
! fa2a770d9ffb45de790e1a500b3c2cf1  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
! 0b13b889ce8ed4728a7ff2f2eba7f27e  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
  3564a8198041594b04f35e13701fdb53  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
! a6e819eb7418e2cbe4a9b17c9b1c2635  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
! 46afe8d5679c5a75d0e9d14855e769bc  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
! 0c8dac7e76e576d005cdf56503f9772d  libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
  01500b319bb297b4059106c465b92567  libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
! d020e1cff95ed5856e1b1fcaf7209f2f  libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
  61308215d393f11169ace76935f2b034  libstdc++-v3/config/abi/post/mips-linux-gnu/baseline_symbols.txt
  725325d7b24195d1e6374ce4e24afdb0  libstdc++-v3/config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt
  907face03890009654193fc67fa4e427  libstdc++-v3/config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt
  1a34bda2bb4c3a576335343c0a4a9377  libstdc++-v3/config/abi/post/mips64-linux-gnu/baseline_symbols.txt
! 0fe1ef0ffda9bb3ad933875c2afb1354  libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
! 0fe1ef0ffda9bb3ad933875c2afb1354  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
! 15dc91e59b5e657f831115944ae21b78  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
! b411d2629146eb07e56ba9fb98d39df4  libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt
! 687247f22261b55a004a1fc0f0d291f7  libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt
! 0fd0d63fab1386c19322a2b474839a87  libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
  cc65678819ec7ff06eaeed8b1a5455eb  libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
! e03d818332a5d182e33a11b3697a9962  libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt
! 328b307c950426e3a15f05dfa3565a25  libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt
  ebf1c408e326c18c0c1f337bc5108fae  libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt
  c224a11f9b7b76848462bffd472b20c2  libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt
! 0c8dac7e76e576d005cdf56503f9772d  libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
! 7165c8a9874b26141af6c41927d4b34c  libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
! 483a11b93ae0da31d1f2f6470d4e7578  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
! 2963416ded826008141b34874eb2486e  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! f6ce197cc6c4a5d7e786a8d05ebca29a  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
! de1009b57da80b0c8a0e9cb3c2650440  libstdc++-v3/config/allocator/malloc_allocator_base.h
! f56d3b48d132e35738b60e08703928ec  libstdc++-v3/config/allocator/new_allocator_base.h
! 6dbae0e1d3939ce8cfdfdfb59f98acd3  libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h
! 856579dc0753a6c75df9820146ca4e6a  libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
! 02c0f8180905eadeb5dec2ef410f1522  libstdc++-v3/config/cpu/arm/cpu_defines.h
! 8e2f45e49b7aca79fffff6191ecdf532  libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h
! 87a80a225b66fea2e5ae71ff6e7650ea  libstdc++-v3/config/cpu/cris/atomic_word.h
! 91dab093a5f70aed25514200c64a53d1  libstdc++-v3/config/cpu/cris/atomicity.h
! a57b0e58df4838e6bdf466cbd75ee448  libstdc++-v3/config/cpu/generic/atomic_word.h
! 2c4b796586ab709496607c6d760ff700  libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h
! 3753dceea8d494ec1e159f7b75075ed1  libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h
! b7ba890a08e3aaabc4319eb5857389f3  libstdc++-v3/config/cpu/generic/cpu_defines.h
! 090dadd79f911e25a5824afc74325612  libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h
! 7072ff4839bc204cef522be07506fcc0  libstdc++-v3/config/cpu/generic/opt/bits/opt_random.h
! 08e16292df0e428237c2f5a3136436c6  libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h
! b098d581016d75297e50710c32ae79da  libstdc++-v3/config/cpu/hppa/atomicity.h
! 0ea7a8b5a407fc5d43cb70bf14ff1b8e  libstdc++-v3/config/cpu/i386/atomicity.h
! adcea90b4e1088e2e86276002047930d  libstdc++-v3/config/cpu/i486/atomicity.h
! 4525c517bb9575ecaaae8c3fa20987b0  libstdc++-v3/config/cpu/i486/opt/bits/opt_random.h
! ea3147f843171e066481409c662cbbed  libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
! 3aa3ed8ee6fd04d9308fcde43d292665  libstdc++-v3/config/cpu/m68k/atomicity.h
! 7233b706a3c2c7b310f1f42332f973f0  libstdc++-v3/config/cpu/microblaze/cpu_defines.h
! 37c2c5d6e3b3be67576ea4e238b25fdc  libstdc++-v3/config/cpu/powerpc/cpu_defines.h
! b9781348efbb56e34bbcbae0c133c4c8  libstdc++-v3/config/cpu/sh/atomicity.h
! f0d558aa9a20f3e1cb155d4bf7338f1a  libstdc++-v3/config/cpu/sparc/atomic_word.h
! 9cb5258fc5ee28e47bb10eb3a5b9993e  libstdc++-v3/config/cpu/sparc/atomicity.h
! 859dc35b61c4326aa5dc08ee1a73e78a  libstdc++-v3/config/io/basic_file_stdio.cc
! 667751272c2634e9ca84aafbf5899453  libstdc++-v3/config/io/basic_file_stdio.h
! a0d5f7157fc4b3fc206d8bf4497dd924  libstdc++-v3/config/io/c_io_stdio.h
! 8d8376bd496628e6daff6e43c6a00f43  libstdc++-v3/config/locale/darwin/ctype_members.cc
! f093a64957701e345212de01e53fea28  libstdc++-v3/config/locale/dragonfly/c_locale.cc
! 214f9d51d4d1ecb13b2b070b96648e19  libstdc++-v3/config/locale/dragonfly/c_locale.h
! 99930a8b6fc64a818f7ff183ec3b26dc  libstdc++-v3/config/locale/dragonfly/codecvt_members.cc
! 4a5699f8b5de77b6cb0185f837bac4f0  libstdc++-v3/config/locale/dragonfly/collate_members.cc
! a1463943efae57b930a3a778e2596408  libstdc++-v3/config/locale/dragonfly/ctype_members.cc
! e82371f75a7f131a45c51112632b00b4  libstdc++-v3/config/locale/dragonfly/monetary_members.cc
! c83126a29fa2ea4cc4232659b79d6bff  libstdc++-v3/config/locale/dragonfly/numeric_members.cc
! e9c61ccdf8ef54d372d54d0c699bda74  libstdc++-v3/config/locale/dragonfly/time_members.cc
! babdea4ccb54a63bdff1489b18e8becc  libstdc++-v3/config/locale/dragonfly/time_members.h
! 9f74bddaf0a254d96f13d40d9173727d  libstdc++-v3/config/locale/generic/c++locale_internal.h
! 26ae3157f22fb32d7f4745f54982978f  libstdc++-v3/config/locale/generic/c_locale.cc
! 5899c841fe18510407b36089b6541573  libstdc++-v3/config/locale/generic/c_locale.h
! d87f0b8e3ea51b5a9326ec26a89a98d4  libstdc++-v3/config/locale/generic/codecvt_members.cc
! 69547c3ce958d9914903521b96c61731  libstdc++-v3/config/locale/generic/collate_members.cc
! 3a924dff4089e80f6cacd3998d139cbf  libstdc++-v3/config/locale/generic/ctype_members.cc
! f849d2d4eb8c20f1c5d2e16fbea97539  libstdc++-v3/config/locale/generic/messages_members.cc
! fd5c1983dd99f637e17b4fb4f4c91d6f  libstdc++-v3/config/locale/generic/messages_members.h
! c32dbd91f9ad1b71f5c737eacc134517  libstdc++-v3/config/locale/generic/monetary_members.cc
! d960100fae5380030303b7afb281c98f  libstdc++-v3/config/locale/generic/numeric_members.cc
! b80202e65ad971ad4e9427b8012b68da  libstdc++-v3/config/locale/generic/time_members.cc
! 53d6a9be38a5811a359af970e56b023d  libstdc++-v3/config/locale/generic/time_members.h
! 942cafcd7b13ed006a05b9b3cba3416b  libstdc++-v3/config/locale/gnu/c++locale_internal.h
! adc14174bf7d5246d2139f20e418378e  libstdc++-v3/config/locale/gnu/c_locale.cc
! b61cea41d386450b82fdf27639b4874d  libstdc++-v3/config/locale/gnu/c_locale.h
! a78cc28e1751d8d73b9efa685484a413  libstdc++-v3/config/locale/gnu/codecvt_members.cc
! 1395acff5a39083f5231094df4befc63  libstdc++-v3/config/locale/gnu/collate_members.cc
! de202fda56a19eec7e45a1e10aed9752  libstdc++-v3/config/locale/gnu/ctype_members.cc
! 327af32905ecdcce8bdaadc497871495  libstdc++-v3/config/locale/gnu/messages_members.cc
! 245444437b5ad5def5b0cb67ff923f90  libstdc++-v3/config/locale/gnu/messages_members.h
! 57719128b782d9adf6ea00944ad4edaa  libstdc++-v3/config/locale/gnu/monetary_members.cc
! e9a0ad292580556a800c1c8f76c7cdf3  libstdc++-v3/config/locale/gnu/numeric_members.cc
! 26b0c2046bc28c36bca194378d820618  libstdc++-v3/config/locale/gnu/time_members.cc
! ce947e3179d47efaba19fc99a9f13a33  libstdc++-v3/config/locale/gnu/time_members.h
! aeee8c086899ce09c367f69061bf00a0  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc
! 92d1f30fdee980064ce519618da0483d  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
! 6793b1973b526749fb96b9c5193cf84a  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc
! 37af6b2becfaf7ee45725639fb547cd9  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h
! 20218f62917bd3fae94987f72b306430  libstdc++-v3/config/locale/newlib/ctype_members.cc
! b2f2f00709f702bb039fdec0ae9ee24b  libstdc++-v3/config/locale/vxworks/ctype_members.cc
! 2053e3ccce4f06c5d00177a90edcf22d  libstdc++-v3/config/os/aix/ctype_base.h
! bff3f0f5f7fae007b47106e4cd2aedd8  libstdc++-v3/config/os/aix/ctype_configure_char.cc
! 9012c11b9728e7975936b209fd835011  libstdc++-v3/config/os/aix/ctype_inline.h
! 12db23803b99e3fc04fedd54c6b61c7f  libstdc++-v3/config/os/aix/os_defines.h
  7d1373c31caa4fdc44bcb11af08b4ab3  libstdc++-v3/config/os/aix/t-aix
! f33a801cfe6a7c772850024ffed72657  libstdc++-v3/config/os/bionic/ctype_base.h
! 8cc39813101e43c3370fb42e499a5952  libstdc++-v3/config/os/bionic/ctype_configure_char.cc
! bf556dc6840d7dadbb3b6275d1a0246f  libstdc++-v3/config/os/bionic/ctype_inline.h
! 5c483a922901af35b8a4eda52a5cb6ad  libstdc++-v3/config/os/bionic/os_defines.h
! f0f692d4993106f00dc73fffe8481a5a  libstdc++-v3/config/os/bsd/darwin/ctype_base.h
! bff3f0f5f7fae007b47106e4cd2aedd8  libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc
! b3726c7385b8a8c7b6ae336f5eef90a8  libstdc++-v3/config/os/bsd/darwin/ctype_inline.h
! 36e4c8ce8504c11324759a1cdc69c4b2  libstdc++-v3/config/os/bsd/darwin/os_defines.h
  9e91dfcb11e4c78744df0e1e0cf69b5b  libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
! d05e9e7b17b7b8b3d1a862ceda60c106  libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
! 7e7ffc1a0dbe201efefbdbc801c4cfaf  libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc
! 1f62a0fb0f2438085d3fb80e37f08370  libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h
! 4b36907cd40e02069b9fe729e7c962ad  libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
! 70b706514677753f53f175644c6d1c3c  libstdc++-v3/config/os/bsd/freebsd/ctype_base.h
! 7e7ffc1a0dbe201efefbdbc801c4cfaf  libstdc++-v3/config/os/bsd/freebsd/ctype_configure_char.cc
! b3726c7385b8a8c7b6ae336f5eef90a8  libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
! efcb0a7d47a741c72b91843ad95c5242  libstdc++-v3/config/os/bsd/freebsd/os_defines.h
! 88f0caf3f3b225d015f8768e496ebd4a  libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
! 37c0176086b51b82cdf41777685ce449  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
! b0500c41fc08ce01a06b84e41fa43c31  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
! 6437ba3d9f4c6b8487e60eb0a275dadf  libstdc++-v3/config/os/bsd/netbsd/os_defines.h
! 218ace0948dfcc4fb858cfc694372815  libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
! 0d673fedc4d294b06506123a7cc9c82b  libstdc++-v3/config/os/bsd/openbsd/ctype_configure_char.cc
! bf556dc6840d7dadbb3b6275d1a0246f  libstdc++-v3/config/os/bsd/openbsd/ctype_inline.h
! a49e15947aa83a9f6d3926fac67d6977  libstdc++-v3/config/os/bsd/openbsd/os_defines.h
! 9641b981ae097274b9e3555cdbc97119  libstdc++-v3/config/os/djgpp/ctype_base.h
! aa3e09ce651561e3596f8037e5937c2c  libstdc++-v3/config/os/djgpp/ctype_configure_char.cc
! 0bf27175e7eee2c830532d550ffcae19  libstdc++-v3/config/os/djgpp/ctype_inline.h
! 7b2ad91e52074b366452152579e2e991  libstdc++-v3/config/os/djgpp/error_constants.h
! bf4237a65fa3a78ba49859fed65b3db2  libstdc++-v3/config/os/djgpp/os_defines.h
! 2f15fc9518d9b4f8bbea2c68bdbccc82  libstdc++-v3/config/os/generic/ctype_base.h
! bff3f0f5f7fae007b47106e4cd2aedd8  libstdc++-v3/config/os/generic/ctype_configure_char.cc
! cd3307bf0e9e4116d28e315641786493  libstdc++-v3/config/os/generic/ctype_inline.h
! 88348030d79509b71651147eec5c3940  libstdc++-v3/config/os/generic/error_constants.h
! dce5c2f133fe8db98c3365bbae116056  libstdc++-v3/config/os/generic/os_defines.h
  5b9a724ca8744a0e193a82f2ea8e9f5b  libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver
! 2fb76dd54fc3a7291209ac831da3304d  libstdc++-v3/config/os/gnu-linux/ctype_base.h
! c04fad4afcf1c65417132b2e9735af15  libstdc++-v3/config/os/gnu-linux/ctype_configure_char.cc
! a80dc6f5270e812e4be93e795b05f9d6  libstdc++-v3/config/os/gnu-linux/ctype_inline.h
  88403d88bac5d855fb07dee81eb8409e  libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
  ecafd9167cd304fae16637b488367a1b  libstdc++-v3/config/os/gnu-linux/ldbl-ieee128-extra.ver
! 84b168f84b44ad56d95c40b98d16d9d6  libstdc++-v3/config/os/gnu-linux/os_defines.h
! 34414afbef15afc7786a055e797aaf7b  libstdc++-v3/config/os/hpux/ctype_base.h
! 158ef0909d94d940bbc2348a9132840d  libstdc++-v3/config/os/hpux/ctype_configure_char.cc
! a80dc6f5270e812e4be93e795b05f9d6  libstdc++-v3/config/os/hpux/ctype_inline.h
! a70314743d8bb07ee81e34a6632def5e  libstdc++-v3/config/os/hpux/os_defines.h
! 122ab6924a0d535ce8030b86bb147b69  libstdc++-v3/config/os/mingw32-w64/ctype_base.h
! 6710565cbcb1ee86f3cfb3cb9ed31b6f  libstdc++-v3/config/os/mingw32-w64/ctype_configure_char.cc
! 5c59a73c3336447a9ef2dbf2fa1b8bd8  libstdc++-v3/config/os/mingw32-w64/ctype_inline.h
! 4066a0987af2e42f8c111ceeff5e0886  libstdc++-v3/config/os/mingw32-w64/error_constants.h
! 4fce00c898ade7e51134c3e6007e33ca  libstdc++-v3/config/os/mingw32-w64/os_defines.h
! 122ab6924a0d535ce8030b86bb147b69  libstdc++-v3/config/os/mingw32/ctype_base.h
! 6710565cbcb1ee86f3cfb3cb9ed31b6f  libstdc++-v3/config/os/mingw32/ctype_configure_char.cc
! 5c59a73c3336447a9ef2dbf2fa1b8bd8  libstdc++-v3/config/os/mingw32/ctype_inline.h
! de30bde4cc11775af238bcc170753384  libstdc++-v3/config/os/mingw32/error_constants.h
! 5d34c76281ba7752e3b56d760fb743ae  libstdc++-v3/config/os/mingw32/os_defines.h
! 47251cb1eb618288f712c20fc7d4b5f4  libstdc++-v3/config/os/newlib/ctype_base.h
! 8cc39813101e43c3370fb42e499a5952  libstdc++-v3/config/os/newlib/ctype_configure_char.cc
! 7477eefff2c9b0a94832c9d7ebd58335  libstdc++-v3/config/os/newlib/ctype_inline.h
! 618671d6c57231c96ba3bdbaec5c7ee6  libstdc++-v3/config/os/newlib/os_defines.h
! 51fe958a4c2b0e462f5198c99784515c  libstdc++-v3/config/os/qnx/qnx6.1/ctype_base.h
! 32e209c79ccf1454c5d0e5fd544015ac  libstdc++-v3/config/os/qnx/qnx6.1/ctype_configure_char.cc
! 8a9383499ab9fc0b45314f7f61f8580c  libstdc++-v3/config/os/qnx/qnx6.1/ctype_inline.h
! d6be3b193bb0fe940f00224e47a17b48  libstdc++-v3/config/os/qnx/qnx6.1/os_defines.h
! 090245ddf4ef096dad7d06afbfa11626  libstdc++-v3/config/os/solaris/ctype_base.h
! 1ddf05bd2bba01674114572f9e0dd6e8  libstdc++-v3/config/os/solaris/ctype_configure_char.cc
! a80dc6f5270e812e4be93e795b05f9d6  libstdc++-v3/config/os/solaris/ctype_inline.h
! cd4aa317e3353448acac1509e9c14ba5  libstdc++-v3/config/os/solaris/os_defines.h
! 7d12d876706644a85c17f47c0f9e245e  libstdc++-v3/config/os/tpf/ctype_base.h
! 3fd0055d91afde9b93e6f472e190644d  libstdc++-v3/config/os/tpf/ctype_configure_char.cc
! 0a131cd58f6360e86bb3c954c14be2b0  libstdc++-v3/config/os/tpf/ctype_inline.h
! 5698807c3d70cf12dea6506951214630  libstdc++-v3/config/os/tpf/os_defines.h
! 4bf8ffe4dea1e23a7ef6c0f20758df10  libstdc++-v3/config/os/uclibc/ctype_base.h
! edc7775116acb850cdfb1d16c3aa6ac2  libstdc++-v3/config/os/uclibc/ctype_configure_char.cc
! a80dc6f5270e812e4be93e795b05f9d6  libstdc++-v3/config/os/uclibc/ctype_inline.h
! c164c601e952178705c49357c46929b1  libstdc++-v3/config/os/uclibc/os_defines.h
! 14b179e992db5eb6be3f5934ae7d6f8e  libstdc++-v3/config/os/vxworks/ctype_base.h
! 88829ac417697de6fbc89e7077167668  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
! 2e42197ec5d9567a84a1069dc2a1bab3  libstdc++-v3/config/os/vxworks/ctype_inline.h
! fcfb034722a9543debf35ed340716876  libstdc++-v3/config/os/vxworks/os_defines.h
! c00d3d4756b5985d3906c9780617317e  libstdc++-v3/configure
! 0b861982482be04a392b51cc0c540ebb  libstdc++-v3/configure.ac
! 47ef67fb6f3fafc3f01a86a267dfeb82  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
! aedbb1de1dc942434f2d23b8971c0b6f  libstdc++-v3/doc/Makefile.am
! f2586e13ea278d1f5cb3ffccc9efc110  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
! 8cd134670f5092cbc6540d6789acc229  libstdc++-v3/doc/doxygen/doxygroups.cc
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
! f298475c719652bf6b563563d90f327a  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
! 4e2062754819106c107a975574733a1a  libstdc++-v3/doc/doxygen/user.cfg.in
  66e139590a163a3e9d632f33fbe1d1b3  libstdc++-v3/doc/html/README
  c68ff21babfa14f20b98e36a2c808418  libstdc++-v3/doc/html/api.html
  08920438eea18325b4bfdf979379ff66  libstdc++-v3/doc/html/bk02.html
  47886ba7da131bf3cbf81a27cada5f6f  libstdc++-v3/doc/html/bk03.html
! 4fa64b0e3aa46e2dff08dec622544941  libstdc++-v3/doc/html/faq.html
  1ae70f0bf94464b036515d333fff8ab2  libstdc++-v3/doc/html/images/confdeps.png
  d7f63b43e9f4c39cf71de7585de522ee  libstdc++-v3/doc/html/images/pbds_balls_and_bins.png
  22eedc841676a98f8ae8b95131ac4d7e  libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png
--- 122738,122956 ----
  0f81783bc492458ec96cea677852a49c  libstdc++-v3/ChangeLog-2020
  80dfa9a5544b6411fbf1fb50c37abdaa  libstdc++-v3/ChangeLog-2021
  69469ccef96be33069fcee2e2e019c04  libstdc++-v3/ChangeLog-2022
! 32e946b396946d57b6bdde2673bd9777  libstdc++-v3/ChangeLog-2023
! fdc4927d68eae63a30df5398f6d16407  libstdc++-v3/Makefile.am
! 1cebb76f8b9e3d20abd9512835fe4f16  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! e7cef22fddc1b3f17f44cee8b6ecebbd  libstdc++-v3/acinclude.m4
  13f29ef95664bfe876c83f7743ca504d  libstdc++-v3/aclocal.m4
! 485e268fee87415ff98cef8da214adf8  libstdc++-v3/config.h.in
! dd409cf77ca6cd8666d4a962b66877ab  libstdc++-v3/config/abi/compatibility.h
! 0dc23f94fb14b6d2d00c479b330c3bdf  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
! 2aa3eecf221694c7bca037536cfc26de  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
  3564a8198041594b04f35e13701fdb53  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
! 8cf07bff5c860693f0f0d51bc0e41ec2  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
! e797bdb2e388c82ae03d7f33983e8d8c  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
! f08453ed7791293c2f259abdd7737beb  libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
  01500b319bb297b4059106c465b92567  libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
! 21a3379292743f4d47dd7679481adb5b  libstdc++-v3/config/abi/post/m68k-linux-gnu/baseline_symbols.txt
  61308215d393f11169ace76935f2b034  libstdc++-v3/config/abi/post/mips-linux-gnu/baseline_symbols.txt
  725325d7b24195d1e6374ce4e24afdb0  libstdc++-v3/config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt
  907face03890009654193fc67fa4e427  libstdc++-v3/config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt
  1a34bda2bb4c3a576335343c0a4a9377  libstdc++-v3/config/abi/post/mips64-linux-gnu/baseline_symbols.txt
! a37e55cea22a1a70a45369f76e96c32b  libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
! a37e55cea22a1a70a45369f76e96c32b  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
! 7ee04ac578a5afd9323a6a82564f4e33  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
! dff559cad7c992b52d3c2c3cc9d1e330  libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt
! 4e1c0fa130ada6c505c86b52704eabcd  libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
  3ec228e0d9301df0938cba4a7fb94374  libstdc++-v3/config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt
! 2220d7f759f592da0200159546b654ff  libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
  cc65678819ec7ff06eaeed8b1a5455eb  libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
! fbe7850385a502f2adf2e948fe7f8a81  libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt
! 3612310283680fd13fc53f2846198f18  libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt
  ebf1c408e326c18c0c1f337bc5108fae  libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt
  c224a11f9b7b76848462bffd472b20c2  libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt
! f08453ed7791293c2f259abdd7737beb  libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
! afcac92e48a8a5a8dbb47f19d3ce9e61  libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
! 47c8d77956f3c48e132885f7b30c2cdf  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
! 2a6f12142df98a9c1309a3293af4ac25  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! fbed43d011049685b198caa9ba5befed  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
! 3becb3c9c166cfa30307f02324f429d2  libstdc++-v3/config/allocator/malloc_allocator_base.h
! f5a16c97ed877ffbc21c454a79b9ae21  libstdc++-v3/config/allocator/new_allocator_base.h
! 1e98f4b71217bda05cd15c8dd54cb147  libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h
! aaaa6c6500e45a7bd1954edd08324a46  libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
! ad3ea5101ba4414b045a989afd54a637  libstdc++-v3/config/cpu/arm/cpu_defines.h
! 12f94bd400b87a26b5ce799752b6da1f  libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h
! 7176e9f92febcd639f520a0692b9c3c0  libstdc++-v3/config/cpu/cris/atomic_word.h
! c46e0a2d27d79db91418873a988de3fa  libstdc++-v3/config/cpu/cris/atomicity.h
! 5165caa9bff914a0ca66402ca53fc6f3  libstdc++-v3/config/cpu/generic/atomic_word.h
! c8e4c891dcee20bf86c4f87904dca153  libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h
! 65d424f0025fa397f42d1bced0e6e556  libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h
! 4e7d197593fbba3a2339dd851f5dc955  libstdc++-v3/config/cpu/generic/cpu_defines.h
! d4e453c9644c4a35c5354f38d677a14d  libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h
! d330894de84d74f4fc6a9fe24aba8198  libstdc++-v3/config/cpu/generic/opt/bits/opt_random.h
! 7b4c4f572c4316e802e69fc519f0ac61  libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h
! 19724f297d1e78cd2ac97fc6ee400e1d  libstdc++-v3/config/cpu/hppa/atomicity.h
! 7a300797bf4dd76826a3f998d0df8bc6  libstdc++-v3/config/cpu/i386/atomicity.h
! 013176e905bae3178bfd6bdeb5a0a9a8  libstdc++-v3/config/cpu/i486/atomicity.h
! 7d448cb3bfaf843a2512502ed28f612c  libstdc++-v3/config/cpu/i486/opt/bits/opt_random.h
! 7f5f458cc62e9e70a36cbc1a40c9d79a  libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
! 26d0c3551ab31de89ff6dfac25ba5415  libstdc++-v3/config/cpu/loongarch/t-loongarch
! d93b58022b388ddc1fb82687e3c86192  libstdc++-v3/config/cpu/m68k/atomicity.h
! c3ccd07160a9bea2e0993c0c8a7d7693  libstdc++-v3/config/cpu/microblaze/cpu_defines.h
! 5eaba26999beb18addf9dc4031017da1  libstdc++-v3/config/cpu/powerpc/cpu_defines.h
! 2125d10b9efc27578fdc1bd1b2298706  libstdc++-v3/config/cpu/sh/atomicity.h
! eeb172443402d009e2791dabc328b0b0  libstdc++-v3/config/cpu/sparc/atomic_word.h
! 52cd5ecd93103febc0f09c9b88cce85c  libstdc++-v3/config/cpu/sparc/atomicity.h
! c09efc996de5e464e95c5d8321c9a71d  libstdc++-v3/config/io/basic_file_stdio.cc
! b3a8d294ffed3fe630224835ecb5387b  libstdc++-v3/config/io/basic_file_stdio.h
! c582707e4e9d2bf26bb0e80fb1d53b37  libstdc++-v3/config/io/c_io_stdio.h
! 13ad2dfe48847bf3980a6d745cbc75e1  libstdc++-v3/config/locale/darwin/ctype_members.cc
! e53b206e392537d760a00767558c1ff9  libstdc++-v3/config/locale/dragonfly/c_locale.cc
! 0adb1057e008fd5f013ab616ee1061a9  libstdc++-v3/config/locale/dragonfly/c_locale.h
! 1d186bb17bb5ce5a622fb15fbc79ae3d  libstdc++-v3/config/locale/dragonfly/codecvt_members.cc
! b0881a7372e03c96c3ea213f690ebd14  libstdc++-v3/config/locale/dragonfly/collate_members.cc
! 6113408f73996f73c99241e946917f56  libstdc++-v3/config/locale/dragonfly/ctype_members.cc
! 92f6508a276d0a9d159c0678d1c654bb  libstdc++-v3/config/locale/dragonfly/monetary_members.cc
! 4f3c4f7624571cd50df8f0925404c0c2  libstdc++-v3/config/locale/dragonfly/numeric_members.cc
! 468e9a472644789e1e45c797d60fdbc9  libstdc++-v3/config/locale/dragonfly/time_members.cc
! c77fc883d69172857ed8d62241261a0d  libstdc++-v3/config/locale/dragonfly/time_members.h
! 04f405dccb66798d6e0bcffc001a5e6a  libstdc++-v3/config/locale/generic/c++locale_internal.h
! a1da08fa41cc1778d48cde0e63813845  libstdc++-v3/config/locale/generic/c_locale.cc
! 6fe04cea32aa66efbd5151ba3cf7847d  libstdc++-v3/config/locale/generic/c_locale.h
! 4e49f15d8b8185ba2b6613abacb34278  libstdc++-v3/config/locale/generic/codecvt_members.cc
! 00cb99f5cb1183cc23842fdf00e9d271  libstdc++-v3/config/locale/generic/collate_members.cc
! 7bb8e896bf0036fc9f9c43463447abcc  libstdc++-v3/config/locale/generic/ctype_members.cc
! d588967133def576ecbdc4d9ed421478  libstdc++-v3/config/locale/generic/messages_members.cc
! 6dc4814e5fb3ad3d03e37358b95c2032  libstdc++-v3/config/locale/generic/messages_members.h
! 3b068ae8b1aec16d4f75096fb14e3758  libstdc++-v3/config/locale/generic/monetary_members.cc
! 1a9b45d684e5be3087921acd109cb515  libstdc++-v3/config/locale/generic/numeric_members.cc
! 77122b6e80613f411163c8af39b27eb4  libstdc++-v3/config/locale/generic/time_members.cc
! 30baf8e4ff2bc4aec0754558164e887a  libstdc++-v3/config/locale/generic/time_members.h
! df061879108e80be88e96057b7b26d6b  libstdc++-v3/config/locale/gnu/c++locale_internal.h
! f827200593ca85a41d3feae35dbd3928  libstdc++-v3/config/locale/gnu/c_locale.cc
! 4108fd77e3e97184dc6e52e28017410a  libstdc++-v3/config/locale/gnu/c_locale.h
! a26efd5d57232ccc7e13f3e6ff08085f  libstdc++-v3/config/locale/gnu/codecvt_members.cc
! eeb967fe13307d9b093daebb51717a49  libstdc++-v3/config/locale/gnu/collate_members.cc
! 010485948df26bb145ef467f2ebe5a90  libstdc++-v3/config/locale/gnu/ctype_members.cc
! 8dc72a159ed04c00cc58e7240a5f1005  libstdc++-v3/config/locale/gnu/messages_members.cc
! 766a7b4141af8269fb767072b267110b  libstdc++-v3/config/locale/gnu/messages_members.h
! cee5d2a8fdfb262f94117ec64b780881  libstdc++-v3/config/locale/gnu/monetary_members.cc
! e5d634c408de69c79c62cd84be1429b2  libstdc++-v3/config/locale/gnu/numeric_members.cc
! ccecee145db1692492d6c79c81af15de  libstdc++-v3/config/locale/gnu/time_members.cc
! 5b2be23d67409b71bace9d257ccaa799  libstdc++-v3/config/locale/gnu/time_members.h
! 7af94e170516ac90a71ecf2ea9b71457  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc
! e5b08dbaa6c7228d6573f9fa8facf9da  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
! c1d96129926ed80e9a5d935ff6362961  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc
! 21af8642d390b5cdaddf7711a72be949  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h
! e4d7a8e45ddc752e2b4cdb0dde511315  libstdc++-v3/config/locale/newlib/ctype_members.cc
! d00164bed03cb1fc43de46772cb050f9  libstdc++-v3/config/locale/vxworks/ctype_members.cc
! 01ae3c2f2f16317f678957812c14f192  libstdc++-v3/config/os/aix/ctype_base.h
! ab68656c8c4b1603af9e0b5ff12988d8  libstdc++-v3/config/os/aix/ctype_configure_char.cc
! 4ac9b16352c69c82ea732c7537c267f3  libstdc++-v3/config/os/aix/ctype_inline.h
! 64011d674de3c891a7940567d8e32b80  libstdc++-v3/config/os/aix/os_defines.h
  7d1373c31caa4fdc44bcb11af08b4ab3  libstdc++-v3/config/os/aix/t-aix
! aca6f1f647f4e050a77fcc7c3c69f3e1  libstdc++-v3/config/os/bionic/ctype_base.h
! ed93c9391a37f3cc75cb27e147ad4247  libstdc++-v3/config/os/bionic/ctype_configure_char.cc
! 7c02d99ad667188fcf129355aa0e3531  libstdc++-v3/config/os/bionic/ctype_inline.h
! a1bd8822ec35d463c058a8af51bed685  libstdc++-v3/config/os/bionic/os_defines.h
! 1d5d357556d430f0638b33befc73aeac  libstdc++-v3/config/os/bsd/darwin/ctype_base.h
! ab68656c8c4b1603af9e0b5ff12988d8  libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc
! 47c702f417ba236bf6d6ca7c1b19c7ba  libstdc++-v3/config/os/bsd/darwin/ctype_inline.h
! 6c77ec588eb9291ea3403c24ed37310d  libstdc++-v3/config/os/bsd/darwin/os_defines.h
  9e91dfcb11e4c78744df0e1e0cf69b5b  libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
! df41d5e227c08bc35c33e096800b3c6a  libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
! 721aa5e60a5fb4b0605b6d4aa22139fa  libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc
! 021e3850950e4b59ff600ff16405d501  libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h
! e7438a4bf7383459b5993ae739e430e8  libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
! bfb3dd275dda6d404949711f0c5f2150  libstdc++-v3/config/os/bsd/freebsd/ctype_base.h
! 721aa5e60a5fb4b0605b6d4aa22139fa  libstdc++-v3/config/os/bsd/freebsd/ctype_configure_char.cc
! 47c702f417ba236bf6d6ca7c1b19c7ba  libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
! 53fd4a78322a664b8c31bc608ef31c2e  libstdc++-v3/config/os/bsd/freebsd/os_defines.h
! 0f421f2ece494b1918ba1bfa718f339f  libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
! d3e30350bc6d2476b9b3183ae7030144  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
! bc1000065b5a226b93bc602a72b93061  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
! 1c0f861ea119ea6f531fd35c8cb4d844  libstdc++-v3/config/os/bsd/netbsd/os_defines.h
! 10104f417ebf3f8b65178d2deabfad7b  libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
! a3f5e6be5dffbbc2d000bb5cad09693c  libstdc++-v3/config/os/bsd/openbsd/ctype_configure_char.cc
! 7c02d99ad667188fcf129355aa0e3531  libstdc++-v3/config/os/bsd/openbsd/ctype_inline.h
! 6bf57830358796b5378972adb508588c  libstdc++-v3/config/os/bsd/openbsd/os_defines.h
! f039682369736fca189d649f19e8cdce  libstdc++-v3/config/os/djgpp/ctype_base.h
! 7916cfe24402a1d9a91f7f1990d2fec7  libstdc++-v3/config/os/djgpp/ctype_configure_char.cc
! 06f6a2567cf019aa685ea8d539a12ee6  libstdc++-v3/config/os/djgpp/ctype_inline.h
! a56130dbfdf1524df3b70af9d130d858  libstdc++-v3/config/os/djgpp/error_constants.h
! 62519174a686c4a41522ca831b35d55f  libstdc++-v3/config/os/djgpp/os_defines.h
! cf683bce1b30be7f43685ac2e2f8a5c8  libstdc++-v3/config/os/generic/ctype_base.h
! ab68656c8c4b1603af9e0b5ff12988d8  libstdc++-v3/config/os/generic/ctype_configure_char.cc
! 58506c396fd698adce06b392533e8633  libstdc++-v3/config/os/generic/ctype_inline.h
! 07d7559af3da4ce3af2d65510776c232  libstdc++-v3/config/os/generic/error_constants.h
! 61470658d9542a5caeb4c3e414e2a040  libstdc++-v3/config/os/generic/os_defines.h
  5b9a724ca8744a0e193a82f2ea8e9f5b  libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver
! faa5740f9b8dd8555472ccd4b026df17  libstdc++-v3/config/os/gnu-linux/ctype_base.h
! 9d53ebeae050ef6ce04db720b3ce5c4c  libstdc++-v3/config/os/gnu-linux/ctype_configure_char.cc
! 173884150daf7f68804cef7470633779  libstdc++-v3/config/os/gnu-linux/ctype_inline.h
  88403d88bac5d855fb07dee81eb8409e  libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
  ecafd9167cd304fae16637b488367a1b  libstdc++-v3/config/os/gnu-linux/ldbl-ieee128-extra.ver
! ba9e1665a0a85eb566a482ec7fa9bfc5  libstdc++-v3/config/os/gnu-linux/os_defines.h
! 4432b10d5c940ccebefc614f3a015bb9  libstdc++-v3/config/os/hpux/ctype_base.h
! e28b41cb33c8a27ba588d4ddaaf4ad3d  libstdc++-v3/config/os/hpux/ctype_configure_char.cc
! 173884150daf7f68804cef7470633779  libstdc++-v3/config/os/hpux/ctype_inline.h
! 5381cef6bec5242dcd0e97bd8c2b61d2  libstdc++-v3/config/os/hpux/os_defines.h
! 731fe30426b6fd140066ad8f530ba60b  libstdc++-v3/config/os/mingw32-w64/ctype_base.h
! f42aba0a77c97fe133a9eb1fd4e74287  libstdc++-v3/config/os/mingw32-w64/ctype_configure_char.cc
! df2fb2f80636c5377a49d5876a7bff79  libstdc++-v3/config/os/mingw32-w64/ctype_inline.h
! 3e7d2607b6ae517366ff6d2cd39d1116  libstdc++-v3/config/os/mingw32-w64/error_constants.h
! f6126a6e3ca90f157c0c0d890f4752ef  libstdc++-v3/config/os/mingw32-w64/os_defines.h
! 731fe30426b6fd140066ad8f530ba60b  libstdc++-v3/config/os/mingw32/ctype_base.h
! f42aba0a77c97fe133a9eb1fd4e74287  libstdc++-v3/config/os/mingw32/ctype_configure_char.cc
! df2fb2f80636c5377a49d5876a7bff79  libstdc++-v3/config/os/mingw32/ctype_inline.h
! 636c62d0487d5ecfb89c149e17f25dde  libstdc++-v3/config/os/mingw32/error_constants.h
! 92ac344292162de8ac7160772137d82a  libstdc++-v3/config/os/mingw32/os_defines.h
! 2577cf6e2760ed903298cb761b8dfcb6  libstdc++-v3/config/os/newlib/ctype_base.h
! ed93c9391a37f3cc75cb27e147ad4247  libstdc++-v3/config/os/newlib/ctype_configure_char.cc
! ffd52f29113a72dc6186d19d5ae68d18  libstdc++-v3/config/os/newlib/ctype_inline.h
! 1ad877e50f073f4ffbff76ff5a65844b  libstdc++-v3/config/os/newlib/os_defines.h
! 982124f23ac6dc38ac273b5c7ed146ae  libstdc++-v3/config/os/qnx/qnx6.1/ctype_base.h
! 0ec2cc02f729076e5b53faa3b0d9b5fa  libstdc++-v3/config/os/qnx/qnx6.1/ctype_configure_char.cc
! 9d64598ee5c66eb387740b00e2c29c63  libstdc++-v3/config/os/qnx/qnx6.1/ctype_inline.h
! ad53a3fbb367d83b44e16bcba4fcaff2  libstdc++-v3/config/os/qnx/qnx6.1/os_defines.h
! fe5ca962c84f82ac4889c210fc79bbae  libstdc++-v3/config/os/solaris/ctype_base.h
! 44ca6de921357a6f48295942a3cde394  libstdc++-v3/config/os/solaris/ctype_configure_char.cc
! 173884150daf7f68804cef7470633779  libstdc++-v3/config/os/solaris/ctype_inline.h
! 9c90eb713422f7de5e29ed021599266b  libstdc++-v3/config/os/solaris/os_defines.h
! 02daafe53d0309ba63f7bb0456a40a92  libstdc++-v3/config/os/tpf/ctype_base.h
! a68956abc231032070d1c17291d03067  libstdc++-v3/config/os/tpf/ctype_configure_char.cc
! 80d343a39ab98ec12d1132464ce8c60c  libstdc++-v3/config/os/tpf/ctype_inline.h
! af249b451940ba4c42075bd661a399e7  libstdc++-v3/config/os/tpf/os_defines.h
! 6250c43d8430d3ea59cc286787f7eeb7  libstdc++-v3/config/os/uclibc/ctype_base.h
! 21318e26cc0b1a1b10072fe2bc33f91a  libstdc++-v3/config/os/uclibc/ctype_configure_char.cc
! 173884150daf7f68804cef7470633779  libstdc++-v3/config/os/uclibc/ctype_inline.h
! d5257a836e841410a1a55db8eff6f4a1  libstdc++-v3/config/os/uclibc/os_defines.h
! bd8c15c9efad8290c2830b5f862c5dac  libstdc++-v3/config/os/vxworks/ctype_base.h
! d849abea519d28ba158a4dfbffa9c4d5  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
! 4865c9788d97189c7e5ca49ebf800a8e  libstdc++-v3/config/os/vxworks/ctype_inline.h
! bbdb4b03bbbcb116aaaf242952a3bb3a  libstdc++-v3/config/os/vxworks/os_defines.h
! 83e3e2c0d85c2f2799b78ad054a2d13b  libstdc++-v3/configure
! 65210fd2f1f24bdad917d4426734fa80  libstdc++-v3/configure.ac
! 32bd1d9563a5eddd6de993e64a56a7ea  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
! a49c1f48702d35a11b6493d099cee092  libstdc++-v3/doc/Makefile.am
! d66f986053e4755f0517ff5cfe90b2b5  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
! d9b077b82911753368f65f3014d3311d  libstdc++-v3/doc/doxygen/doxygroups.cc
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
! 92f5430d44f06426f0d19bffc186ad05  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
! 1fa2b132573981e21958d76eafe013ac  libstdc++-v3/doc/doxygen/user.cfg.in
  66e139590a163a3e9d632f33fbe1d1b3  libstdc++-v3/doc/html/README
  c68ff21babfa14f20b98e36a2c808418  libstdc++-v3/doc/html/api.html
  08920438eea18325b4bfdf979379ff66  libstdc++-v3/doc/html/bk02.html
  47886ba7da131bf3cbf81a27cada5f6f  libstdc++-v3/doc/html/bk03.html
! 954e81e1e48c0af10ecb743440b58794  libstdc++-v3/doc/html/faq.html
  1ae70f0bf94464b036515d333fff8ab2  libstdc++-v3/doc/html/images/confdeps.png
  d7f63b43e9f4c39cf71de7585de522ee  libstdc++-v3/doc/html/images/pbds_balls_and_bins.png
  22eedc841676a98f8ae8b95131ac4d7e  libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png
*************** d7249eb4d31bd107d0b09ea3c80cb723  libstd
*** 112963,112978 ****
  1d86b338a316806c80b250eb132ac6dd  libstdc++-v3/doc/html/images/pbds_tree_text_lor_find.png
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png
! 4bb8af3ced69d53e356f904b6e6be4ff  libstdc++-v3/doc/html/index.html
! 62925196d824e20c496c37ac4fbc4215  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
! ac9c9c28dab5efbaee0a881c837c1b5e  libstdc++-v3/doc/html/manual/api.html
! 7313e97fae5e735a3cb50b92bf3f7785  libstdc++-v3/doc/html/manual/appendix.html
! 2b187a5e453d470d2cd19fb657d91539  libstdc++-v3/doc/html/manual/appendix_contributing.html
  23038a3eb57967596dd7dc4f944e55e6  libstdc++-v3/doc/html/manual/appendix_free.html
  7bedd2c8f6a4683546db552dc3e8261f  libstdc++-v3/doc/html/manual/appendix_gfdl.html
  502f9b7267830b21cb88745d060faacf  libstdc++-v3/doc/html/manual/appendix_gpl.html
! 52cc877635ca261941c7f9c120e8d5d8  libstdc++-v3/doc/html/manual/appendix_porting.html
  ac3612f72ad76b3796526d161b19db59  libstdc++-v3/doc/html/manual/associative.html
  b8ac9fc2f2cfcaed0450c79e2fb01569  libstdc++-v3/doc/html/manual/atomics.html
  d30e8a474595941b24a6493ad08f78d9  libstdc++-v3/doc/html/manual/backwards.html
--- 123030,123045 ----
  1d86b338a316806c80b250eb132ac6dd  libstdc++-v3/doc/html/images/pbds_tree_text_lor_find.png
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png
! 95f7bd58639442e3e0d498bfa21aff33  libstdc++-v3/doc/html/index.html
! cd104b4f4cefdb20c6375cad02a09f81  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
! 4d04bc6affa9370678280a7e36951578  libstdc++-v3/doc/html/manual/api.html
! 0533c501430d5c40f424d741475a8eef  libstdc++-v3/doc/html/manual/appendix.html
! 349dd21397f799989e513b2c3c7b44d4  libstdc++-v3/doc/html/manual/appendix_contributing.html
  23038a3eb57967596dd7dc4f944e55e6  libstdc++-v3/doc/html/manual/appendix_free.html
  7bedd2c8f6a4683546db552dc3e8261f  libstdc++-v3/doc/html/manual/appendix_gfdl.html
  502f9b7267830b21cb88745d060faacf  libstdc++-v3/doc/html/manual/appendix_gpl.html
! fc90e763c564799d3bc56e3d0caca15c  libstdc++-v3/doc/html/manual/appendix_porting.html
  ac3612f72ad76b3796526d161b19db59  libstdc++-v3/doc/html/manual/associative.html
  b8ac9fc2f2cfcaed0450c79e2fb01569  libstdc++-v3/doc/html/manual/atomics.html
  d30e8a474595941b24a6493ad08f78d9  libstdc++-v3/doc/html/manual/backwards.html
*************** c60c6ae778d5dedae24ac21abf948bdb  libstd
*** 112981,113005 ****
  6095fbb12cc581b2614870b42ad0e8b0  libstdc++-v3/doc/html/manual/bugs.html
  cc3700f2fde50987f186f23abf98a7b1  libstdc++-v3/doc/html/manual/concept_checking.html
  f3a54a6315d716742603d33f454f2c19  libstdc++-v3/doc/html/manual/concurrency.html
! a7c52aa886ef299346acb22c19799454  libstdc++-v3/doc/html/manual/configure.html
  af4e79b9e55fd023eeb0459df34a4a82  libstdc++-v3/doc/html/manual/containers.html
  c7e40c1085e414b3b4d5896db4013205  libstdc++-v3/doc/html/manual/containers_and_c.html
! 2b78750eb3e29b38e12b7ed1ba8ee8b8  libstdc++-v3/doc/html/manual/debug.html
  1bd34529d162b6f3a08d5f2ea4943c6a  libstdc++-v3/doc/html/manual/debug_mode.html
  90b457b0d4240ee5b826a815bcd90912  libstdc++-v3/doc/html/manual/debug_mode_design.html
  397ce9357678670b7c451c92eab7cb57  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
! 733f7a54643a02aed52d3287c0aab4b6  libstdc++-v3/doc/html/manual/debug_mode_using.html
  7f6c5a9eb000f65ee1888d459beb9dd5  libstdc++-v3/doc/html/manual/diagnostics.html
  872fd1cdab6839a9e0003d2b6c4de908  libstdc++-v3/doc/html/manual/documentation_hacking.html
  44375d933be3e667b4c31334c041decb  libstdc++-v3/doc/html/manual/dynamic_memory.html
  55666dfa05ec7aae2596d6968f6fdb38  libstdc++-v3/doc/html/manual/errno.html
  e47e050922ad8c8f67f42be36ea507c4  libstdc++-v3/doc/html/manual/ext_algorithms.html
! 3cbcc93e277e8589a94b618c95dcb54c  libstdc++-v3/doc/html/manual/ext_compile_checks.html
  afcc2751dae09e088abc1e3175cb94cc  libstdc++-v3/doc/html/manual/ext_concurrency.html
  6ff2323d07ed91e8dec5a072df16f901  libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
  9eae121ff2ad3f2dd5a2748f87f9f530  libstdc++-v3/doc/html/manual/ext_concurrency_use.html
  0597d03ff215b7f17e0240178c030166  libstdc++-v3/doc/html/manual/ext_containers.html
! 3946985aede4994e9743b0f8d71b41ba  libstdc++-v3/doc/html/manual/ext_demangling.html
  05003e71d54cfdfd4c8291489f8ffa07  libstdc++-v3/doc/html/manual/ext_io.html
  44f8ef8b093904d418755d0e32d700b7  libstdc++-v3/doc/html/manual/ext_iterators.html
  8f3bd86e04d263ad87cc258c289aae6d  libstdc++-v3/doc/html/manual/ext_numerics.html
--- 123048,123072 ----
  6095fbb12cc581b2614870b42ad0e8b0  libstdc++-v3/doc/html/manual/bugs.html
  cc3700f2fde50987f186f23abf98a7b1  libstdc++-v3/doc/html/manual/concept_checking.html
  f3a54a6315d716742603d33f454f2c19  libstdc++-v3/doc/html/manual/concurrency.html
! e4aaeef0b98cb4c49ee46b83c543ca34  libstdc++-v3/doc/html/manual/configure.html
  af4e79b9e55fd023eeb0459df34a4a82  libstdc++-v3/doc/html/manual/containers.html
  c7e40c1085e414b3b4d5896db4013205  libstdc++-v3/doc/html/manual/containers_and_c.html
! 1a937490b245964deeb0497dfdbfa840  libstdc++-v3/doc/html/manual/debug.html
  1bd34529d162b6f3a08d5f2ea4943c6a  libstdc++-v3/doc/html/manual/debug_mode.html
  90b457b0d4240ee5b826a815bcd90912  libstdc++-v3/doc/html/manual/debug_mode_design.html
  397ce9357678670b7c451c92eab7cb57  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
! 1fe03067a558eb3fd4b3a8c1337db0d1  libstdc++-v3/doc/html/manual/debug_mode_using.html
  7f6c5a9eb000f65ee1888d459beb9dd5  libstdc++-v3/doc/html/manual/diagnostics.html
  872fd1cdab6839a9e0003d2b6c4de908  libstdc++-v3/doc/html/manual/documentation_hacking.html
  44375d933be3e667b4c31334c041decb  libstdc++-v3/doc/html/manual/dynamic_memory.html
  55666dfa05ec7aae2596d6968f6fdb38  libstdc++-v3/doc/html/manual/errno.html
  e47e050922ad8c8f67f42be36ea507c4  libstdc++-v3/doc/html/manual/ext_algorithms.html
! f06c80959b51df8ead13e6679a537cbc  libstdc++-v3/doc/html/manual/ext_compile_checks.html
  afcc2751dae09e088abc1e3175cb94cc  libstdc++-v3/doc/html/manual/ext_concurrency.html
  6ff2323d07ed91e8dec5a072df16f901  libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
  9eae121ff2ad3f2dd5a2748f87f9f530  libstdc++-v3/doc/html/manual/ext_concurrency_use.html
  0597d03ff215b7f17e0240178c030166  libstdc++-v3/doc/html/manual/ext_containers.html
! 2e4af551186521a7129b87ba249fa557  libstdc++-v3/doc/html/manual/ext_demangling.html
  05003e71d54cfdfd4c8291489f8ffa07  libstdc++-v3/doc/html/manual/ext_io.html
  44f8ef8b093904d418755d0e32d700b7  libstdc++-v3/doc/html/manual/ext_iterators.html
  8f3bd86e04d263ad87cc258c289aae6d  libstdc++-v3/doc/html/manual/ext_numerics.html
*************** afcc2751dae09e088abc1e3175cb94cc  libstd
*** 113010,113018 ****
  76cac108e21e304b7607196fb5245e00  libstdc++-v3/doc/html/manual/facets.html
  9b06f8b16b4ba69e1269f98bb22377f2  libstdc++-v3/doc/html/manual/fstreams.html
  b404abb1e78a27e8a8980eb14ec27bab  libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
! a3858d043af99a73689f6db83b66ed57  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
! b1c1fa7bf6c8cbf798960537e735cf07  libstdc++-v3/doc/html/manual/intro.html
  46de5aefef02b8c599fc816bea53ae67  libstdc++-v3/doc/html/manual/io.html
  89dd67b210011f646675fa2ede886305  libstdc++-v3/doc/html/manual/io_and_c.html
  32f6d6929349f8f96de44fbdd842ed48  libstdc++-v3/doc/html/manual/iterators.html
--- 123077,123085 ----
  76cac108e21e304b7607196fb5245e00  libstdc++-v3/doc/html/manual/facets.html
  9b06f8b16b4ba69e1269f98bb22377f2  libstdc++-v3/doc/html/manual/fstreams.html
  b404abb1e78a27e8a8980eb14ec27bab  libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
! 58cfc859596a303e50e182a9020713b5  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
! 17d07c26f60433c6f5bf7f55a785fb3f  libstdc++-v3/doc/html/manual/intro.html
  46de5aefef02b8c599fc816bea53ae67  libstdc++-v3/doc/html/manual/io.html
  89dd67b210011f646675fa2ede886305  libstdc++-v3/doc/html/manual/io_and_c.html
  32f6d6929349f8f96de44fbdd842ed48  libstdc++-v3/doc/html/manual/iterators.html
*************** d6e655afa90caf559aa77ae772faf5dc  libstd
*** 113045,113071 ****
  dc012f6bbeb24332ca023dc15d6da9cf  libstdc++-v3/doc/html/manual/profile_mode_devel.html
  d55e182adbf08772ec85b18d390b0dbb  libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html
  0e9a02c563561ad32d5b24fd930bf8f5  libstdc++-v3/doc/html/manual/profile_mode_impl.html
! ffceba0f3c20f451f9753c101c0fa634  libstdc++-v3/doc/html/manual/setup.html
! f82628740b7b95e95da49ce234a05bca  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  391422dd4f4cdbd4d764a952a0f345e6  libstdc++-v3/doc/html/manual/source_organization.html
! 768a1bb6b726c39f73a860785d5a4d89  libstdc++-v3/doc/html/manual/status.html
  ea0c531c09fa230f346f8ba700961e4a  libstdc++-v3/doc/html/manual/std_contents.html
  dbb5f81a9e8864374fbb835eaa4e8b0d  libstdc++-v3/doc/html/manual/streambufs.html
! 47e6a6ef4752e7c7e3ecb2a4948a7514  libstdc++-v3/doc/html/manual/strings.html
  4fceea62121ba1fe214414a7506d385e  libstdc++-v3/doc/html/manual/stringstreams.html
  52f0c68b15c7a2b6e098bcfb8da0094b  libstdc++-v3/doc/html/manual/support.html
  fcdceeabf3a95117ea22e93a0354e564  libstdc++-v3/doc/html/manual/termination.html
! e83103446a003be8efeaba99fcd84194  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
  530b96535baacfe35df2e65f9dfe7efc  libstdc++-v3/doc/html/manual/unordered_associative.html
! 22ac593adaa2927f35783feea96a1677  libstdc++-v3/doc/html/manual/using.html
  a98d94ba8ccfb620e98ebfe01192e61e  libstdc++-v3/doc/html/manual/using_concurrency.html
  79fb9de4a4c89a913a76e1828500499d  libstdc++-v3/doc/html/manual/using_dual_abi.html
! 6b216fcce25cefeab611e43ed77fd12e  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
  90f1ace0e51461f3caa15a913228c521  libstdc++-v3/doc/html/manual/using_exceptions.html
! 8fc6625206a4feba33ced5fa38ab3af8  libstdc++-v3/doc/html/manual/using_headers.html
! c1e8d8c0d84363807d41edeb82e9dbfc  libstdc++-v3/doc/html/manual/using_macros.html
  ccc3b1a320ccc49a977c80546610195b  libstdc++-v3/doc/html/manual/using_namespaces.html
  d881fcffb799c09a28d8174ccb1326a2  libstdc++-v3/doc/html/manual/utilities.html
  ccbc0492a648982f2dc225595bdbc567  libstdc++-v3/doc/xml/api.xml
--- 123112,123138 ----
  dc012f6bbeb24332ca023dc15d6da9cf  libstdc++-v3/doc/html/manual/profile_mode_devel.html
  d55e182adbf08772ec85b18d390b0dbb  libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html
  0e9a02c563561ad32d5b24fd930bf8f5  libstdc++-v3/doc/html/manual/profile_mode_impl.html
! 0aa43e199523434f7a21c96804a8aa51  libstdc++-v3/doc/html/manual/setup.html
! 05fe12a35eeac73538be455d4b27f923  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  391422dd4f4cdbd4d764a952a0f345e6  libstdc++-v3/doc/html/manual/source_organization.html
! 28bbfa5ef5da4f41a583425e9e98268a  libstdc++-v3/doc/html/manual/status.html
  ea0c531c09fa230f346f8ba700961e4a  libstdc++-v3/doc/html/manual/std_contents.html
  dbb5f81a9e8864374fbb835eaa4e8b0d  libstdc++-v3/doc/html/manual/streambufs.html
! b69a09d4b90c10ccc914e41695cea3a5  libstdc++-v3/doc/html/manual/strings.html
  4fceea62121ba1fe214414a7506d385e  libstdc++-v3/doc/html/manual/stringstreams.html
  52f0c68b15c7a2b6e098bcfb8da0094b  libstdc++-v3/doc/html/manual/support.html
  fcdceeabf3a95117ea22e93a0354e564  libstdc++-v3/doc/html/manual/termination.html
! 29bff3c7b143958489cd92560cd24a7b  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
  530b96535baacfe35df2e65f9dfe7efc  libstdc++-v3/doc/html/manual/unordered_associative.html
! f6261b1d02edf815508eb2fd755167c0  libstdc++-v3/doc/html/manual/using.html
  a98d94ba8ccfb620e98ebfe01192e61e  libstdc++-v3/doc/html/manual/using_concurrency.html
  79fb9de4a4c89a913a76e1828500499d  libstdc++-v3/doc/html/manual/using_dual_abi.html
! a372b01a93ca1beeb843a1440bd25cdd  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
  90f1ace0e51461f3caa15a913228c521  libstdc++-v3/doc/html/manual/using_exceptions.html
! 6046d265a9d1a3d954dec8c82317fbff  libstdc++-v3/doc/html/manual/using_headers.html
! c8ee0e07a78cdcb3ed7cd3ed7ac16cc0  libstdc++-v3/doc/html/manual/using_macros.html
  ccc3b1a320ccc49a977c80546610195b  libstdc++-v3/doc/html/manual/using_namespaces.html
  d881fcffb799c09a28d8174ccb1326a2  libstdc++-v3/doc/html/manual/utilities.html
  ccbc0492a648982f2dc225595bdbc567  libstdc++-v3/doc/xml/api.xml
*************** ccbc0492a648982f2dc225595bdbc567  libstd
*** 113073,113079 ****
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
! 3dd8e992a5c3e037b8c5d81ab8d2dd47  libstdc++-v3/doc/xml/faq.xml
  ea77580f7e81e2c49aea3f425c01ee2b  libstdc++-v3/doc/xml/gnu/fdl-1.3.xml
  56bb32e9ab9358834c5f8eca2cd0e969  libstdc++-v3/doc/xml/gnu/gpl-3.0.xml
  18a6390297702ec8fd75cbcc525d2005  libstdc++-v3/doc/xml/images/confdeps.dot
--- 123140,123146 ----
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
! b311e1cd4bf80606fa0429665233bac1  libstdc++-v3/doc/xml/faq.xml
  ea77580f7e81e2c49aea3f425c01ee2b  libstdc++-v3/doc/xml/gnu/fdl-1.3.xml
  56bb32e9ab9358834c5f8eca2cd0e969  libstdc++-v3/doc/xml/gnu/gpl-3.0.xml
  18a6390297702ec8fd75cbcc525d2005  libstdc++-v3/doc/xml/images/confdeps.dot
*************** cc132f90a00a3ca05f64b578f9e332aa  libstd
*** 113253,113283 ****
  f63bfdc03ba2b82c74864f02206d7c52  libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find.svg
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/xml/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png
! f2b698ac9c16af780200a31809e68c05  libstdc++-v3/doc/xml/manual/abi.xml
  c1d775ba87be90b85044162eab59a66c  libstdc++-v3/doc/xml/manual/algorithms.xml
  14c656cb14d8e0a60b8817d8934d7766  libstdc++-v3/doc/xml/manual/allocator.xml
! 90fdf7df16449b79819bf6e3219cc5d2  libstdc++-v3/doc/xml/manual/appendix_contributing.xml
  11e0fd62db5b93db462f3c54750904ec  libstdc++-v3/doc/xml/manual/appendix_free.xml
  0e37b1b056c89ad8cd7ef98f9924284c  libstdc++-v3/doc/xml/manual/appendix_porting.xml
  5139cfc8fdaabd93b5aa7362de789702  libstdc++-v3/doc/xml/manual/atomics.xml
  c3d24d92dc2ae1e99149164f60e80337  libstdc++-v3/doc/xml/manual/auto_ptr.xml
  18ecbccd2db2605dc093780d7b72799b  libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
  b84cb983bda244285e1314327a420e66  libstdc++-v3/doc/xml/manual/bitmap_allocator.xml
! e184d827d7fb559037041e81118936cb  libstdc++-v3/doc/xml/manual/build_hacking.xml
  8f13cae7ea80bc018b87b4ff8de7e3cf  libstdc++-v3/doc/xml/manual/codecvt.xml
  af3361d0d0af961859ec0346c38ac8c8  libstdc++-v3/doc/xml/manual/concurrency.xml
  86f27306f8b76aebd69ea92641fd2c94  libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
! fb13f31444f30ec3d49bfee72f52cee0  libstdc++-v3/doc/xml/manual/configure.xml
  0af07cc2460e288292186ea8149169ee  libstdc++-v3/doc/xml/manual/containers.xml
  d08c687d9520b2f9d8dd6d973cca9e6a  libstdc++-v3/doc/xml/manual/ctype.xml
! abf083b50c6a5992ed45fd74c564ce42  libstdc++-v3/doc/xml/manual/debug.xml
! c38bf467401b65722356772cdf4d064b  libstdc++-v3/doc/xml/manual/debug_mode.xml
  f320f25003678cca910f09ba54c923fc  libstdc++-v3/doc/xml/manual/diagnostics.xml
  c7467f13981c47fc740c948b16a42a53  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
! e6cb48a9c8b4df910d53bf7b8508235f  libstdc++-v3/doc/xml/manual/evolution.xml
! 137276d6eb0bbaf6563b8319770dc747  libstdc++-v3/doc/xml/manual/extensions.xml
  7f1864c7f3c3b2bfde84b7086be97ca7  libstdc++-v3/doc/xml/manual/internals.xml
! 7dd90360d3e28e9f8aa299d81e4234c7  libstdc++-v3/doc/xml/manual/intro.xml
  93c3158fe28bdfbbf03dd039cc4e79a2  libstdc++-v3/doc/xml/manual/io.xml
  5ac71d67674ea22bcf1e54043bf8e99d  libstdc++-v3/doc/xml/manual/iterators.xml
  b9c8759ff9b60e09bd2875420a55cd31  libstdc++-v3/doc/xml/manual/locale.xml
--- 123320,123350 ----
  f63bfdc03ba2b82c74864f02206d7c52  libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find.svg
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/xml/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png
! 6ccc8992f87a805952c14613cc397dfb  libstdc++-v3/doc/xml/manual/abi.xml
  c1d775ba87be90b85044162eab59a66c  libstdc++-v3/doc/xml/manual/algorithms.xml
  14c656cb14d8e0a60b8817d8934d7766  libstdc++-v3/doc/xml/manual/allocator.xml
! b9f6d3637e7f129ed22277a507325bfc  libstdc++-v3/doc/xml/manual/appendix_contributing.xml
  11e0fd62db5b93db462f3c54750904ec  libstdc++-v3/doc/xml/manual/appendix_free.xml
  0e37b1b056c89ad8cd7ef98f9924284c  libstdc++-v3/doc/xml/manual/appendix_porting.xml
  5139cfc8fdaabd93b5aa7362de789702  libstdc++-v3/doc/xml/manual/atomics.xml
  c3d24d92dc2ae1e99149164f60e80337  libstdc++-v3/doc/xml/manual/auto_ptr.xml
  18ecbccd2db2605dc093780d7b72799b  libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
  b84cb983bda244285e1314327a420e66  libstdc++-v3/doc/xml/manual/bitmap_allocator.xml
! b3f117e4c677e60cf6035cf76714b185  libstdc++-v3/doc/xml/manual/build_hacking.xml
  8f13cae7ea80bc018b87b4ff8de7e3cf  libstdc++-v3/doc/xml/manual/codecvt.xml
  af3361d0d0af961859ec0346c38ac8c8  libstdc++-v3/doc/xml/manual/concurrency.xml
  86f27306f8b76aebd69ea92641fd2c94  libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
! c814233bae2af79cc1273d72145d497c  libstdc++-v3/doc/xml/manual/configure.xml
  0af07cc2460e288292186ea8149169ee  libstdc++-v3/doc/xml/manual/containers.xml
  d08c687d9520b2f9d8dd6d973cca9e6a  libstdc++-v3/doc/xml/manual/ctype.xml
! 73da07ff0c1a31e349529a066ddefd62  libstdc++-v3/doc/xml/manual/debug.xml
! a972c915c47573572139ea9161dec244  libstdc++-v3/doc/xml/manual/debug_mode.xml
  f320f25003678cca910f09ba54c923fc  libstdc++-v3/doc/xml/manual/diagnostics.xml
  c7467f13981c47fc740c948b16a42a53  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
! 637448870b4b88aaa661f1543c41dd5a  libstdc++-v3/doc/xml/manual/evolution.xml
! 5ae0548cfa13299fc5c3aa8cb372cb74  libstdc++-v3/doc/xml/manual/extensions.xml
  7f1864c7f3c3b2bfde84b7086be97ca7  libstdc++-v3/doc/xml/manual/internals.xml
! 51fce4cf657917cd7bc102d522b7c9ab  libstdc++-v3/doc/xml/manual/intro.xml
  93c3158fe28bdfbbf03dd039cc4e79a2  libstdc++-v3/doc/xml/manual/io.xml
  5ac71d67674ea22bcf1e54043bf8e99d  libstdc++-v3/doc/xml/manual/iterators.xml
  b9c8759ff9b60e09bd2875420a55cd31  libstdc++-v3/doc/xml/manual/locale.xml
*************** cd6d12f87a30d3b85d80833476c19995  libstd
*** 113288,114354 ****
  7edd591e15a0bbc76d58e9edcb7c28d1  libstdc++-v3/doc/xml/manual/parallel_mode.xml
  7c390b245068bcc2f3f52590bdf8526f  libstdc++-v3/doc/xml/manual/policy_data_structures.xml
  26c588a0ffa7f8fc5b3e09d398c52a3f  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
! f25986e96331b9ee671b4fe62ab33a1c  libstdc++-v3/doc/xml/manual/prerequisites.xml
  ab6d91afc9a36e19a6524c6ca834170a  libstdc++-v3/doc/xml/manual/shared_ptr.xml
  d7f222c42325cd44eadad2c59eef7e6f  libstdc++-v3/doc/xml/manual/spine.xml
! 21b4ad60404b59dfe18632c7f5a6d317  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
! dd1868c982334898ded3dfccd6630034  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
! bc1b095a202e3144ab26eccfbe5c7d5b  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
! 3db9528acbf4618028bf64cec00ff113  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! c80ba44d96cd938ff376c426453aab8b  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
! 51214bfe6323bf5943402eaed924c87e  libstdc++-v3/doc/xml/manual/status_cxx2023.xml
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
! b68740adf6b2050af454bcd3fceb6fd5  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
! 0b3c686ccfbe056f383714351bf5c272  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
! 49334f70b9df9a3f9b81e04a418e8066  libstdc++-v3/doc/xml/manual/strings.xml
  2b80feb1b53a8d0895a292620ec430b2  libstdc++-v3/doc/xml/manual/support.xml
! 5d2ddc339bb3f30f471747bc41795b38  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! a7afe1028c10edb92120d0955c908cdd  libstdc++-v3/doc/xml/manual/using.xml
  8b2ecaf4e0a66bc6db1724038373671a  libstdc++-v3/doc/xml/manual/using_exceptions.xml
  74a5acaa32b3d223bd413c1bb5b69ac6  libstdc++-v3/doc/xml/manual/utilities.xml
! 0c8bbf7c330217f862dd4871a5ba88d0  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! ec4742ec79289d8610d3b623024bfc65  libstdc++-v3/include/Makefile.am
! e87263502efcb2ae872c9697b0b289f2  libstdc++-v3/include/Makefile.in
! 635fa963aca5bb732d67d0a6cf123d49  libstdc++-v3/include/backward/auto_ptr.h
! 3891b4a9a440e23e9dbeb63ad4a574a8  libstdc++-v3/include/backward/backward_warning.h
! e02493032a8d5d253583cbe07c20929d  libstdc++-v3/include/backward/binders.h
! 55ac991b3eb665d64d44e0b594c1a9cc  libstdc++-v3/include/backward/hash_fun.h
! 2f2af3d2ec0fb40b8df8ff765a022c5a  libstdc++-v3/include/backward/hash_map
! f2a02916dfbcc5c872e82dee57cc995e  libstdc++-v3/include/backward/hash_set
! cce6f84ea2420e7014deec8f87d193d3  libstdc++-v3/include/backward/hashtable.h
! b02f5606f63dce8874cb7b42b6fffd42  libstdc++-v3/include/backward/strstream
! b9130337fad9e31ee542b0c97f3ed728  libstdc++-v3/include/bits/algorithmfwd.h
! 0e756c493e3d685fa91b69d63d8b7d9c  libstdc++-v3/include/bits/align.h
! f1cfcec42ff2f2b11ea8cee83ec34d8e  libstdc++-v3/include/bits/alloc_traits.h
! b7a02d402cc5dc3b5900e144b1443bb7  libstdc++-v3/include/bits/allocated_ptr.h
! 9139beb5391dac1421727b85e114b3d4  libstdc++-v3/include/bits/allocator.h
! c5174ab6282ecbeced42a602ef71aa54  libstdc++-v3/include/bits/atomic_base.h
! 32bb2eb4f10336b3a7bbcbcb3e7b2697  libstdc++-v3/include/bits/atomic_futex.h
! 10c6f59884b2d39c8bfaeb46e55b914d  libstdc++-v3/include/bits/atomic_timed_wait.h
! 38c23d13fc3665d7eee0a9afcf8bc17d  libstdc++-v3/include/bits/atomic_wait.h
! 7a572f1436f9b069a82a366cd364af5c  libstdc++-v3/include/bits/basic_ios.h
! f72ffffc3ea2a2cb85b705217a116e9e  libstdc++-v3/include/bits/basic_ios.tcc
! 5ba76bcbe261eddc373a34f29e1f0bf1  libstdc++-v3/include/bits/basic_string.h
! f085a90a42ab42aeca05166fb827f795  libstdc++-v3/include/bits/basic_string.tcc
! 12d210ea7f6b7aff57c126940f016d55  libstdc++-v3/include/bits/boost_concept_check.h
! 588d77b5caf0f9ab703289024f7faf88  libstdc++-v3/include/bits/c++0x_warning.h
! 0db914ce3afb935ae5ae23a1f37308c8  libstdc++-v3/include/bits/c++config
! 2baac6346fbf3360f5a1e579226373f9  libstdc++-v3/include/bits/char_traits.h
! 0a14bf55d3849f91b6f272370226f0b8  libstdc++-v3/include/bits/charconv.h
! 4ac4d19930df81feee96a015879eb626  libstdc++-v3/include/bits/chrono.h
! 336606d5376d498361aa5024ea8bb29e  libstdc++-v3/include/bits/chrono_io.h
! 99228a8561efb5af08fdf896e792dbd3  libstdc++-v3/include/bits/codecvt.h
! 02b297f22d933704022d62bb998083b6  libstdc++-v3/include/bits/concept_check.h
! ab05c0fac3a44588f6ca1f197b7758d2  libstdc++-v3/include/bits/cow_string.h
! d954ef085b8f02d0a654ba85e5171161  libstdc++-v3/include/bits/cpp_type_traits.h
! dd2d6ad4ef742a835282ef7c20df17d0  libstdc++-v3/include/bits/deque.tcc
! 144af56eb1fdcfa071b31d4e35716372  libstdc++-v3/include/bits/enable_special_members.h
! 9fbde52831f934ca63d09c817fe5f7b3  libstdc++-v3/include/bits/erase_if.h
! 68f726da90926f2730fc257270d717cd  libstdc++-v3/include/bits/forward_list.h
! fc266b1bf548f2445b990be5c7f574c1  libstdc++-v3/include/bits/forward_list.tcc
! 2af8f48444832a4c4873667893973b8f  libstdc++-v3/include/bits/fs_dir.h
! 01a4d96f29ae6ac0bb84541df306c3f5  libstdc++-v3/include/bits/fs_fwd.h
! 254fcd2d0a399cb31596c75aa676ce58  libstdc++-v3/include/bits/fs_ops.h
! 1be3cfd07ce0d4556bd52594ab337b7f  libstdc++-v3/include/bits/fs_path.h
! 7b28ba490fc5d3284644c6dbfd0eeb23  libstdc++-v3/include/bits/fstream.tcc
! 12eb9c8c9b5988c55937238fdc884ac3  libstdc++-v3/include/bits/functexcept.h
! fed35fb4e12ff04f01f0125e66325dd6  libstdc++-v3/include/bits/functional_hash.h
! fd5665870d6f833cfe3af7154f1e95a7  libstdc++-v3/include/bits/gslice.h
! a4d667ef5d5bd526eb81a380ad0b14d3  libstdc++-v3/include/bits/gslice_array.h
! 7a1aea0765c5d3eda38245a20aa5ebc1  libstdc++-v3/include/bits/hashtable.h
! b6c1da481fe1c72cbec1f18e66f2bb2c  libstdc++-v3/include/bits/hashtable_policy.h
! db128d77b5e73ac628f1a9af7bc9fad0  libstdc++-v3/include/bits/indirect_array.h
! 5c9dfe0c12f9c609716ed80b27ea7473  libstdc++-v3/include/bits/invoke.h
! 9f9c18891605c48f576cee879c306254  libstdc++-v3/include/bits/ios_base.h
! 0177f2702bc5b9d1cdc7b9049c8fdd12  libstdc++-v3/include/bits/istream.tcc
! 5b445142c28567ca98b97173b85f1d53  libstdc++-v3/include/bits/iterator_concepts.h
! d91ae1b601584d4c765d50f9d9b86877  libstdc++-v3/include/bits/list.tcc
! 56f636f54833b560098a6de5754d02b7  libstdc++-v3/include/bits/locale_classes.h
! 28d76b82765840e78ee58ecb42681e63  libstdc++-v3/include/bits/locale_classes.tcc
! 76da2539cfe743d42345c63e0e514a00  libstdc++-v3/include/bits/locale_conv.h
! 430651eae09aa9aab33723552132e6b1  libstdc++-v3/include/bits/locale_facets.h
! 1513b4b84e748e62522421d3d82fc18e  libstdc++-v3/include/bits/locale_facets.tcc
! 771fef7ddd10f5b7bc49075f5053bacb  libstdc++-v3/include/bits/locale_facets_nonio.h
! 59faf9f9f9abed543b2edad1f0b2964f  libstdc++-v3/include/bits/locale_facets_nonio.tcc
! e7037c9f7bba915cc571698cb6ce6ea9  libstdc++-v3/include/bits/localefwd.h
! b0c76e6c0ecd855f846a15efd155643d  libstdc++-v3/include/bits/mask_array.h
! 857dc87bf729b0952c45c2a098f2691d  libstdc++-v3/include/bits/max_size_type.h
! 5bf5234e2d2fd297abf5070bce896c27  libstdc++-v3/include/bits/memory_resource.h
! f91bfefc8ffc8275f1860208a7ce4598  libstdc++-v3/include/bits/memoryfwd.h
  7b351469ff54ea35e3e585733ed01c68  libstdc++-v3/include/bits/mofunc_impl.h
! 666aabd4a7b2d63fc1081b35311b7ac1  libstdc++-v3/include/bits/move.h
! 12f5ad319cadf9071cacd4f73057d844  libstdc++-v3/include/bits/move_only_function.h
! 4921ed78c50fb48b72f1f3cf83ff21b4  libstdc++-v3/include/bits/new_allocator.h
! c45efc1e3d5bde191ce4d0e6a41a4d76  libstdc++-v3/include/bits/node_handle.h
! 805d48778212d7bcf6e4201f891f03ca  libstdc++-v3/include/bits/ostream.tcc
! acc3c5b842d22ae52e5f0a6713275fef  libstdc++-v3/include/bits/ostream_insert.h
! ea9f3638ad1b48ca29f5994d80c71708  libstdc++-v3/include/bits/parse_numbers.h
! 300f427b788956b5dea03120b6635392  libstdc++-v3/include/bits/postypes.h
! 63ce3bdc6aaf8184d3aa92c8b6ce525f  libstdc++-v3/include/bits/predefined_ops.h
! 36ff2fd79ae09b6c831df559a05ae8eb  libstdc++-v3/include/bits/ptr_traits.h
! 0184ab6ad97abb6526c6afb48391ba22  libstdc++-v3/include/bits/quoted_string.h
! 5063de5afefced00ecaace4d45d034d3  libstdc++-v3/include/bits/random.h
! 222630b6321850e2882d0ff38972aa5c  libstdc++-v3/include/bits/random.tcc
! 473f8f1ef247a71477d517401689f0c9  libstdc++-v3/include/bits/range_access.h
! 77d322c823055aabe8ffa990d70b0c26  libstdc++-v3/include/bits/ranges_algo.h
! 0456f04c77137db2972b340487b1fdea  libstdc++-v3/include/bits/ranges_algobase.h
! 12a76c1b7d1a0d2fa1d155693458e373  libstdc++-v3/include/bits/ranges_base.h
! 130f0e54de161dc32742e62f03e44704  libstdc++-v3/include/bits/ranges_cmp.h
! 0169a884ede559c4f97d0f92430da167  libstdc++-v3/include/bits/ranges_uninitialized.h
! 34444684a042aadccb63e64d0fa438b2  libstdc++-v3/include/bits/ranges_util.h
! 5f28e5a597b4b84858ca077d118b7655  libstdc++-v3/include/bits/refwrap.h
! 6578fe4f222b797a9819bac2fff076aa  libstdc++-v3/include/bits/regex.h
! 2715eb7a43f808404c2629768d926ff1  libstdc++-v3/include/bits/regex.tcc
! 093a9e6cddf80585a28f72f3b3919114  libstdc++-v3/include/bits/regex_automaton.h
! 431d58faa74d17aed8a543d406a6cff6  libstdc++-v3/include/bits/regex_automaton.tcc
! d0185a0935bbce160f36ba8d07fd7679  libstdc++-v3/include/bits/regex_compiler.h
! 3165a3840032b820376dc39675396cd4  libstdc++-v3/include/bits/regex_compiler.tcc
! 41be9061647eafed77fbf93815faa644  libstdc++-v3/include/bits/regex_constants.h
! bab03b51484604b9075a12c146b15eb9  libstdc++-v3/include/bits/regex_error.h
! 75b4257f33f37b2ac04f26c53d930a26  libstdc++-v3/include/bits/regex_executor.h
! 14dbdcdaec3890108fba3aef355789df  libstdc++-v3/include/bits/regex_executor.tcc
! b77e7d0e1af22b4c76f3a1b1a9445393  libstdc++-v3/include/bits/regex_scanner.h
! c63271fac886a0347ae54d09ec615a70  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
! d4ab3a218dd86e5f987bcd411be99642  libstdc++-v3/include/bits/semaphore_base.h
! aa7b516414d2b32705387e26d6fa52da  libstdc++-v3/include/bits/shared_ptr.h
! 30e67fe91731f9a6c511f791766c768a  libstdc++-v3/include/bits/shared_ptr_atomic.h
! 398b697f034a380e2062e59e71a6eec9  libstdc++-v3/include/bits/shared_ptr_base.h
! 70168d829c78bb22a3de01f9da622f52  libstdc++-v3/include/bits/slice_array.h
! 19fe23e6a7a34cff22e75da635190a85  libstdc++-v3/include/bits/specfun.h
! f5db8c25a45bb53faa4affdc482ec0ae  libstdc++-v3/include/bits/sstream.tcc
! 8b1ec62edf4bcaa634310504518dd22b  libstdc++-v3/include/bits/std_abs.h
! 80c90a384e0540ce68e8451a654f1d10  libstdc++-v3/include/bits/std_function.h
! 770389d971a766c2fdea04f25b48103f  libstdc++-v3/include/bits/std_mutex.h
! f7dbdb00cb5664fe06868cb519c18fbf  libstdc++-v3/include/bits/std_thread.h
! 4008687bfe5dfc31a7ae3d57fd975993  libstdc++-v3/include/bits/stl_algo.h
! a9bee4b1f5b494c37859c53ca0446881  libstdc++-v3/include/bits/stl_algobase.h
! c25d72cc5cf8e5f25333defbd1cb6166  libstdc++-v3/include/bits/stl_bvector.h
! 2692aca002018b5b1663c464dddaf63f  libstdc++-v3/include/bits/stl_construct.h
! e4d39faab9dc5e3419435581d6869651  libstdc++-v3/include/bits/stl_deque.h
! 60507e6d5f3434ae5ce86363f622a178  libstdc++-v3/include/bits/stl_function.h
! f1a151d37c2259f38ae9f3bb60c184cc  libstdc++-v3/include/bits/stl_heap.h
! 5062fe07d9dcd501f4b20e56129c7f5f  libstdc++-v3/include/bits/stl_iterator.h
! a98431c50c8cf6faa3d9b03f2ae47efb  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
! d99cab7e3480e3ba45cbc780e43d1a90  libstdc++-v3/include/bits/stl_iterator_base_types.h
! fb63f540eb43cc83f3b74a25a0038a07  libstdc++-v3/include/bits/stl_list.h
! c4df460e330dbfd383b0f347b37e5c6e  libstdc++-v3/include/bits/stl_map.h
! acfce1940d41d37560494851676d5991  libstdc++-v3/include/bits/stl_multimap.h
! 6c5062c35eced881ad87ebac2c8a5faf  libstdc++-v3/include/bits/stl_multiset.h
! a160d3a1010219c7f0a400e068b1b39c  libstdc++-v3/include/bits/stl_numeric.h
! 73730f2e40d95437864180754ecd0b92  libstdc++-v3/include/bits/stl_pair.h
! 420d5465635ca7fcbba4bc1a1f702222  libstdc++-v3/include/bits/stl_queue.h
! d12837792d22543fb74e959b8671dc45  libstdc++-v3/include/bits/stl_raw_storage_iter.h
! 04b280c2aae349e2e28e67c88e0500c3  libstdc++-v3/include/bits/stl_relops.h
! 3d95e52c0ad2bef5b3530737dc1f1013  libstdc++-v3/include/bits/stl_set.h
! c3445e498460fdc279feccd5ae8fbb86  libstdc++-v3/include/bits/stl_stack.h
! f7c3cbbbff1984288eafd88b89681a07  libstdc++-v3/include/bits/stl_tempbuf.h
! db78116edcfb2d22ef58666e019fd12d  libstdc++-v3/include/bits/stl_tree.h
! 359d2815fddd01ac7d0996549350b0fa  libstdc++-v3/include/bits/stl_uninitialized.h
! 28825b5d932ba14be6043884e1fd9548  libstdc++-v3/include/bits/stl_vector.h
! 8b9076ee3d87752c4e3d5cdafa8b9461  libstdc++-v3/include/bits/stream_iterator.h
! 9210c3666e5e698bc555d7335c97696d  libstdc++-v3/include/bits/streambuf.tcc
! 0e7cfd352ca580b8a6313d4692b0b0d4  libstdc++-v3/include/bits/streambuf_iterator.h
! e1891b851f96ef49825e35f413b8f569  libstdc++-v3/include/bits/string_view.tcc
! 31d218bc11f10975127e1954ba6fb661  libstdc++-v3/include/bits/stringfwd.h
! ce17f393b63c6930a43f794183c15f0c  libstdc++-v3/include/bits/this_thread_sleep.h
! a499929e2198ce71d33d55cec6d47be0  libstdc++-v3/include/bits/uniform_int_dist.h
! 7e525e2f25e874a4ef5128ff37ab8092  libstdc++-v3/include/bits/unique_lock.h
! b1c5f017599d59426bf764ae91a55ae0  libstdc++-v3/include/bits/unique_ptr.h
! 3c6f47a2c2d405ab868a3c67fd75f29d  libstdc++-v3/include/bits/unordered_map.h
! 26b4881361616783ac51780c58f2e4bb  libstdc++-v3/include/bits/unordered_set.h
! 2e154584f12c218d65e98047872045fc  libstdc++-v3/include/bits/uses_allocator.h
! 746fbc1bd7a1d8d880c8a8ed2ebed9a3  libstdc++-v3/include/bits/uses_allocator_args.h
! 41ba97b1080e538af252feadf8c82f52  libstdc++-v3/include/bits/utility.h
! a6cc9d4b57dc76ee00dc459b9aa9aa4b  libstdc++-v3/include/bits/valarray_after.h
! 322814b36de24720a8d60f70da5e3f19  libstdc++-v3/include/bits/valarray_array.h
! d0dc224b4535c28e743c20c95a58c09e  libstdc++-v3/include/bits/valarray_array.tcc
! 497da4999eb1bda92fc3d86d2d395554  libstdc++-v3/include/bits/valarray_before.h
! 7a9b0c21f3a78e011e36d631a0620623  libstdc++-v3/include/bits/vector.tcc
! 51aca95b9c0bb2ebdb0394442ba41eb5  libstdc++-v3/include/c/cassert
! a92920f183eb4d2e23e70f36bdd58854  libstdc++-v3/include/c/cctype
! d81a9516b0313de19e213978a64ec2e6  libstdc++-v3/include/c/cerrno
! 64aa20cab09b5326db7ae6beb56bc5e2  libstdc++-v3/include/c/cfloat
! 2d4b6d3fa3b97261a7bb52354edf653a  libstdc++-v3/include/c/ciso646
! 489b7549fcbf43464dfad5b4caf6d9c4  libstdc++-v3/include/c/climits
! 96dcf802a316fa7fb13519719426065c  libstdc++-v3/include/c/clocale
! 1d26e58c819e861a4754626a0bc70c58  libstdc++-v3/include/c/cmath
! a8c89767ab651296037ca85330a3c714  libstdc++-v3/include/c/csetjmp
! 0bd8c082360fd6a93447c6ded9609c11  libstdc++-v3/include/c/csignal
! 5bf207713093e58722196ecb659f5ff3  libstdc++-v3/include/c/cstdarg
! 256b3d7a3fc9984f8ddf291e15cbcd00  libstdc++-v3/include/c/cstddef
! 87594d6812c391c789335d8c0546ea79  libstdc++-v3/include/c/cstdio
! 259b2d04f090d31f51728ea64828d00f  libstdc++-v3/include/c/cstdlib
! 757b5131802c9d5fbcd2d0ebec9d1719  libstdc++-v3/include/c/cstring
! e06be9cee8abf70187f25a06c6938c36  libstdc++-v3/include/c/ctime
! fb721b269119d4332f838739763f7653  libstdc++-v3/include/c/cuchar
! eb764f5a84bbc6e863792f76fd2d5a8b  libstdc++-v3/include/c/cwchar
! 4639fab2932352c06515218400ab20f1  libstdc++-v3/include/c/cwctype
! 5495a5ddbf9bbefcee8c29a7d52ebb4d  libstdc++-v3/include/c_compatibility/assert.h
! f2d623f5247e7dbae4ef501bc4f8ec3e  libstdc++-v3/include/c_compatibility/complex.h
! da5df899197dcc6a7928737e056f9516  libstdc++-v3/include/c_compatibility/ctype.h
! 83ade47a74067c948f4952c795c74198  libstdc++-v3/include/c_compatibility/errno.h
! 7cf57c823ff6126aa473c2a791cb5c72  libstdc++-v3/include/c_compatibility/fenv.h
! 1d67aca203837cc45584a7408dc0163b  libstdc++-v3/include/c_compatibility/float.h
! bcd8fc121a2dba8b9f21be91f1fa250e  libstdc++-v3/include/c_compatibility/inttypes.h
! 6ccf67371ed7a1f223a653d404ac8fa1  libstdc++-v3/include/c_compatibility/iso646.h
! 165ba57a30ea0236c09cda34331b3d18  libstdc++-v3/include/c_compatibility/limits.h
! a4e5f13bc165084fabdaafe185f95628  libstdc++-v3/include/c_compatibility/locale.h
! f34e6ddbb19306e7d9f8c42d51dc6ee3  libstdc++-v3/include/c_compatibility/math.h
! 7c28e4e3982f6e96077ec15bed4383ca  libstdc++-v3/include/c_compatibility/setjmp.h
! a86ce75f9dd847b36b3103cbfd0e09e9  libstdc++-v3/include/c_compatibility/signal.h
! 1a5903d050b8c3869307031770f14305  libstdc++-v3/include/c_compatibility/stdarg.h
! 0357bf0f700fc5d113d9b75e44ef7f50  libstdc++-v3/include/c_compatibility/stdatomic.h
! b5100d87f77cb4c61636b48f0c141322  libstdc++-v3/include/c_compatibility/stdbool.h
! daab9fb674dcda63c383435afd5fa8c2  libstdc++-v3/include/c_compatibility/stddef.h
! 284efb34492927d9c1440f8ec8aaac9d  libstdc++-v3/include/c_compatibility/stdint.h
! d93605e8bc2872a916d988ac532c1727  libstdc++-v3/include/c_compatibility/stdio.h
! 3f24ff2a8eef595875da96e5466bd4aa  libstdc++-v3/include/c_compatibility/stdlib.h
! 1e2706da9d67dbad2236ca27f4d526d9  libstdc++-v3/include/c_compatibility/string.h
! a297d781859b90de25e1287a1e1e9f3d  libstdc++-v3/include/c_compatibility/tgmath.h
! 1ae01060c05944ad812948e7f016229e  libstdc++-v3/include/c_compatibility/time.h
! 1a50e986a02891ec28014013f5e37cd1  libstdc++-v3/include/c_compatibility/uchar.h
! 79d193ccff637a123ac7cb41a4c68be9  libstdc++-v3/include/c_compatibility/wchar.h
! d0568453f1300b9009aea91583960ff4  libstdc++-v3/include/c_compatibility/wctype.h
! d566fc9fe8ac94592d887d2bd0223e17  libstdc++-v3/include/c_global/cassert
! d97d8fefe3fe881cafe4587e879130f2  libstdc++-v3/include/c_global/ccomplex
! 004f2b245f22a6e36da04de5f4b5289e  libstdc++-v3/include/c_global/cctype
! fa9d96a06168dde9d21af84bb08683f9  libstdc++-v3/include/c_global/cerrno
! 715ccd876f40879803ac2d715e510d8e  libstdc++-v3/include/c_global/cfenv
! 71ef2d7a1d8420f8e738e888011b2ea9  libstdc++-v3/include/c_global/cfloat
! bedeabf12edce197ed12dcd0316fb014  libstdc++-v3/include/c_global/cinttypes
! e056e894d561a617e8a5fbe43b91fe5c  libstdc++-v3/include/c_global/ciso646
! 6630f0421a36b3f446414bf99ca60dd8  libstdc++-v3/include/c_global/climits
! e4c7c2d232b07c4cd56e5e8f767283f8  libstdc++-v3/include/c_global/clocale
! 6a5988a86ba9ad5624ab33e09796b750  libstdc++-v3/include/c_global/cmath
! 999c263b7a2d246d1187abd6a13e8c28  libstdc++-v3/include/c_global/csetjmp
! 9829a810311d8c8e3e1dd51b6db1980a  libstdc++-v3/include/c_global/csignal
! f4048bb0abba66f92a6c162d91e03840  libstdc++-v3/include/c_global/cstdalign
! b750b028571982a49c0967d540734912  libstdc++-v3/include/c_global/cstdarg
! 0c4339ed0bd0421391b86f5011786a39  libstdc++-v3/include/c_global/cstdbool
! 42d081e36f48908b1b5d85905a27c5e6  libstdc++-v3/include/c_global/cstddef
! ae2e5fcda32c32b967b166815ea6583f  libstdc++-v3/include/c_global/cstdint
! b06e5528a69c64d89fa0c962508e7adb  libstdc++-v3/include/c_global/cstdio
! 250e2e1c737808d5a698f4d3e1120b70  libstdc++-v3/include/c_global/cstdlib
! 5ca2a4570a98ead77112bcdcc5e85bb1  libstdc++-v3/include/c_global/cstring
! 305071847a71f9eb4dabe7ce0b48d112  libstdc++-v3/include/c_global/ctgmath
! 34d760a846c8b888075e20d7e788e483  libstdc++-v3/include/c_global/ctime
! 28775d3c925ad65e1642fbba8ce7b9e6  libstdc++-v3/include/c_global/cuchar
! 563be8405ac1fff3cdc14d0bccfe42bf  libstdc++-v3/include/c_global/cwchar
! 94ed2281ad68e4752f07e4ac252852f5  libstdc++-v3/include/c_global/cwctype
! 47b30042f2d9f9c825864e9dbde24f13  libstdc++-v3/include/c_std/cassert
! 0c343c96c32cf5cdc9753cce5b15c1ee  libstdc++-v3/include/c_std/cctype
! 621cce042f4c15557f29d0fb740509d0  libstdc++-v3/include/c_std/cerrno
! 35538de3306d93e4b6ca1eeeeed868ac  libstdc++-v3/include/c_std/cfloat
! 5d3a04b8530231d3331f3ff9aa869c0f  libstdc++-v3/include/c_std/ciso646
! 77230f83d34c311e7914de213e472760  libstdc++-v3/include/c_std/climits
! a7609c55f3ee797f812909a960530dd0  libstdc++-v3/include/c_std/clocale
! b26eb62f5204e1535b6fcee85ff79236  libstdc++-v3/include/c_std/cmath
! 040bfa0884dbba8ecf5f0f90e711f838  libstdc++-v3/include/c_std/csetjmp
! 05b2d678cbe69b78228131164d144f35  libstdc++-v3/include/c_std/csignal
! 2d3cd5c062751bfb95d0fd7df35fb51f  libstdc++-v3/include/c_std/cstdarg
! b6c5bbe72ed43f8a5d12c995ed68ec0f  libstdc++-v3/include/c_std/cstddef
! f74661f832d82760d16babfe6d31359c  libstdc++-v3/include/c_std/cstdio
! a786104d8a96f1e6a58f7141dbcad393  libstdc++-v3/include/c_std/cstdlib
! a09e4c5aff5b0619eda0abb963298665  libstdc++-v3/include/c_std/cstring
! fc06a2a86253661a10a45d1aa6add290  libstdc++-v3/include/c_std/ctime
! c59c1677bb21443d118a20d6f52fc3be  libstdc++-v3/include/c_std/cuchar
! 97d3ef1fea728ee3215e4ba63bb224f7  libstdc++-v3/include/c_std/cwchar
! d0ed6882ae59669b56e0c3cfc70f6cdd  libstdc++-v3/include/c_std/cwctype
! 9664215a7bc70f4a67205596f83a90e4  libstdc++-v3/include/debug/array
! 09280bd73a4d727d1d29eabb39c7fee1  libstdc++-v3/include/debug/assertions.h
! ce79efddea89cd0400284453b6c47c08  libstdc++-v3/include/debug/bitset
! 752210a319f5f5d356cc29cd1ce3cdc7  libstdc++-v3/include/debug/debug.h
! d723cddadad626e4147ae555a795d3ac  libstdc++-v3/include/debug/deque
! 92c5ac3f7e20f86e3d86f1342849f7dd  libstdc++-v3/include/debug/formatter.h
! eb3ad55c903b7d6432e96f2f61e61420  libstdc++-v3/include/debug/forward_list
! 8fcdb38b4006678d506e0e223988824a  libstdc++-v3/include/debug/functions.h
! dce642be87943b1f37b2680d758c8e3c  libstdc++-v3/include/debug/helper_functions.h
! 3e1868550108da7987015b77b3629fad  libstdc++-v3/include/debug/list
! c845fd12d717810528aaf5733a4658e4  libstdc++-v3/include/debug/macros.h
! 72ee22202e97490f4d8c37281e830aa4  libstdc++-v3/include/debug/map
! d5844aa5092f35f6cdf39396dce97604  libstdc++-v3/include/debug/map.h
! 8d4679fa6a8e970942dbe3b756ae5bc2  libstdc++-v3/include/debug/multimap.h
! d443675b9794922fdb6c461970f46f25  libstdc++-v3/include/debug/multiset.h
! 575884fb576324c807e0a94cca2eff7c  libstdc++-v3/include/debug/safe_base.h
! 44f2fc7d6d27fe3a96e1738e5c822061  libstdc++-v3/include/debug/safe_container.h
! 3ad930cc0c68c1430017b76ccd9c0d6b  libstdc++-v3/include/debug/safe_iterator.h
! 23da7c7cc3096b71b55fa198d22a92cb  libstdc++-v3/include/debug/safe_iterator.tcc
! baea6cfe653fa2e5b6b58ab54a9f9d4d  libstdc++-v3/include/debug/safe_local_iterator.h
! 8e3030a09accb7b306ee8870fad49226  libstdc++-v3/include/debug/safe_local_iterator.tcc
! 7b12318b15a3faefa838000015443fbc  libstdc++-v3/include/debug/safe_sequence.h
! bbdb8b7e4b650f074b25ff87c1ab088a  libstdc++-v3/include/debug/safe_sequence.tcc
! a177539c40917d45f52176f93a31a886  libstdc++-v3/include/debug/safe_unordered_base.h
! fef27558f9cb31d89f17911f9091732c  libstdc++-v3/include/debug/safe_unordered_container.h
! bc1b8f823ee669382df0aa37d0a726de  libstdc++-v3/include/debug/safe_unordered_container.tcc
! 2bdcd9b980b741db1ca4d59373ffe529  libstdc++-v3/include/debug/set
! 95990efcc5a75c70d2ee2a4967563b48  libstdc++-v3/include/debug/set.h
! f98b297a4efe585eb7874f38d1b32139  libstdc++-v3/include/debug/stl_iterator.h
! 0a0ed08176f4ebe2b80f8677df11a0e3  libstdc++-v3/include/debug/string
! 9e8f38b257585b3ddc23834eb2cd2643  libstdc++-v3/include/debug/unordered_map
! a1e7cd885333d6f9b9bf82eee39843e4  libstdc++-v3/include/debug/unordered_set
! affcbf27d1705bd03ac3e7f0bc6fb0e9  libstdc++-v3/include/debug/vector
! f9838218b1ad0fc9cdad73fcc5e60e14  libstdc++-v3/include/decimal/decimal
! bc0a74bf0366eede0f575894300639d8  libstdc++-v3/include/decimal/decimal.h
! ff788f0aa47f420266aae704daa722e4  libstdc++-v3/include/experimental/algorithm
! a99e25ecc203dcd30981cbe40e13dd8c  libstdc++-v3/include/experimental/any
! d52e8b488fcf0c0276e7f0fb61e40321  libstdc++-v3/include/experimental/array
! 953040a33a48143bfaa3e393312ef7ad  libstdc++-v3/include/experimental/bits/fs_dir.h
! 5e14cdd2562ac12d385ddcbe169161e9  libstdc++-v3/include/experimental/bits/fs_fwd.h
! 5e019392507a97e44a2f6e82ad35f6ee  libstdc++-v3/include/experimental/bits/fs_ops.h
! 7df14f3066e051b7a8fbb885e52815e7  libstdc++-v3/include/experimental/bits/fs_path.h
! 924741d86a6ef29d3622e3c6246c94d7  libstdc++-v3/include/experimental/bits/lfts_config.h
! 7830abbb146efd29a73d7fd1fe3db78b  libstdc++-v3/include/experimental/bits/net.h
! cf54bc3b121d24c17f08a57dd0426941  libstdc++-v3/include/experimental/bits/numeric_traits.h
! 3774e633795d511398c269b801a8a7ea  libstdc++-v3/include/experimental/bits/shared_ptr.h
! 4048cdf008621f60be880da7d2280efa  libstdc++-v3/include/experimental/bits/simd.h
! ee7651a52dc64461b99c4a8ec1f4237a  libstdc++-v3/include/experimental/bits/simd_builtin.h
! acd3f967f14a179045b2bb2c58c8677f  libstdc++-v3/include/experimental/bits/simd_converter.h
! fd6a017b7e2e7951d6cf7997942705c7  libstdc++-v3/include/experimental/bits/simd_detail.h
! dd7f12fd188831cca8a0107d318d3276  libstdc++-v3/include/experimental/bits/simd_fixed_size.h
! 716234e07f419b61b873aa9055be4170  libstdc++-v3/include/experimental/bits/simd_math.h
! fdd19fd11643f8229f9801a6cbf18142  libstdc++-v3/include/experimental/bits/simd_neon.h
! 170863eb71a1b1f81aaa53b33a10d2d9  libstdc++-v3/include/experimental/bits/simd_ppc.h
! 18f90ab4b4448d48b775a15641bb01c5  libstdc++-v3/include/experimental/bits/simd_scalar.h
! 93b0951d218279cd31a7bf46dc9740b1  libstdc++-v3/include/experimental/bits/simd_x86.h
! 286fb694a932e5841d01656193387a08  libstdc++-v3/include/experimental/bits/simd_x86_conversions.h
! fa90a6b6457c0d6ae32b629f779d25ac  libstdc++-v3/include/experimental/bits/string_view.tcc
! 8c4c2beba9f9b4c59585fc0068db4869  libstdc++-v3/include/experimental/buffer
! 87d090e4d15420430af5b6a2c27d26ec  libstdc++-v3/include/experimental/chrono
! 2a7d80b87c30ddf854ee1ef3d930d144  libstdc++-v3/include/experimental/contract
! 94526557793422c1d347faa1d079e56a  libstdc++-v3/include/experimental/deque
! 0ed89473393473eabe1b3c5d05b285d4  libstdc++-v3/include/experimental/executor
! 3b102c247e2f79d0221c4b6d3f8eeb18  libstdc++-v3/include/experimental/filesystem
! cee443670c8a3d3a61b8f8eb94206b3e  libstdc++-v3/include/experimental/forward_list
! 5fba410dd029b9608992b29997cc604a  libstdc++-v3/include/experimental/functional
! 3c6f3761bffd15719978c73232c33a00  libstdc++-v3/include/experimental/internet
! 676246f5e54771f00f130181183ab2fc  libstdc++-v3/include/experimental/io_context
! 377c8c18245a9d3f0fd4ebd9cb7c3be4  libstdc++-v3/include/experimental/iterator
! 1c0fe82065eec955754830e71c18efc4  libstdc++-v3/include/experimental/list
! 1b71aa2662d4959d542811cf1540aa44  libstdc++-v3/include/experimental/map
! 27abe5e55a6ec79ae9506eae9e2770f7  libstdc++-v3/include/experimental/memory
! fc29abc6b86eca783bc8f750f1d1d902  libstdc++-v3/include/experimental/memory_resource
! d0330139b1f73fa0c9b6cd319cf2f585  libstdc++-v3/include/experimental/net
! 221b5bdba334fdf64eae463374c86f19  libstdc++-v3/include/experimental/netfwd
! 1382a7e990a70adfce32b8feceb44ef1  libstdc++-v3/include/experimental/numeric
! dc3da87c593382a3e74bd9bd7d6a45cf  libstdc++-v3/include/experimental/optional
! bb8e96f2e46f26393d50c8703d3b56d5  libstdc++-v3/include/experimental/propagate_const
! 9caddd3848a2aa676f8bed27b8d19b3a  libstdc++-v3/include/experimental/random
! 9a3312e053b9638ac4324e316cc0a5c4  libstdc++-v3/include/experimental/ratio
! 2710a18cf625c9dc1f0f7f108221f4a1  libstdc++-v3/include/experimental/regex
! 88d5a7beab379c75a49e0d43c023869d  libstdc++-v3/include/experimental/scope
! 6927f4a7e1b9fe45449f018cf3fd4891  libstdc++-v3/include/experimental/set
! c3334b635e593c9c923efa5e5d85314e  libstdc++-v3/include/experimental/simd
! 9cd3e4e283f4b907d4283df25c534cf3  libstdc++-v3/include/experimental/socket
! 1cf91d33654ada93d801c3f3d63093cf  libstdc++-v3/include/experimental/source_location
! b5e967974119b67b51912b999055e1ea  libstdc++-v3/include/experimental/string
! a22768cfa191a83a88d4eeaf132eec2f  libstdc++-v3/include/experimental/string_view
  bde9aafc0ea69c3a16afd39f5eb2e5db  libstdc++-v3/include/experimental/synchronized_value
! e8bbd122c3b7a083a437a1cb8ce400d1  libstdc++-v3/include/experimental/system_error
! 1ac0d04c944a75a9cf6056a8db390646  libstdc++-v3/include/experimental/timer
! 9cfe7630764c34da6341f8b24842c886  libstdc++-v3/include/experimental/tuple
! d8fa82f81f07fc6c21f3be09d201fb2a  libstdc++-v3/include/experimental/type_traits
! 2a8910f3586710237ee9fd744b103f4b  libstdc++-v3/include/experimental/unordered_map
! 6445cd0162084474edabd6410a7dba24  libstdc++-v3/include/experimental/unordered_set
! 35f7b9b8f27b79cf978591aa03943f10  libstdc++-v3/include/experimental/utility
! aa9abe4f758cd69110c3486701e74c5b  libstdc++-v3/include/experimental/vector
! d6f5ecf98e51ea071ec1fd44c8fd115e  libstdc++-v3/include/ext/algorithm
! abec9f625ca91c38369762f6368bffac  libstdc++-v3/include/ext/aligned_buffer.h
! c3bd7eb4301800345e9e13630c9c2302  libstdc++-v3/include/ext/alloc_traits.h
! 87d86b344e138ba9274c585c9243bbba  libstdc++-v3/include/ext/atomicity.h
! 80981d56cd0311e9211b897adb136e51  libstdc++-v3/include/ext/bitmap_allocator.h
! 1bb491ac6f482e93fb0c506dad0cc942  libstdc++-v3/include/ext/cast.h
! 86d62b01b4a4c3e919ad644a5faec72b  libstdc++-v3/include/ext/cmath
! 94c05fa20599993783f1f094ae70fa94  libstdc++-v3/include/ext/codecvt_specializations.h
! 06022bc3e3a9c14c08bec88f9da82b4a  libstdc++-v3/include/ext/concurrence.h
! c33947951ce4ff17413dbb63a058a642  libstdc++-v3/include/ext/debug_allocator.h
! 16af09664982eb53776facedef3b65d9  libstdc++-v3/include/ext/enc_filebuf.h
! f2d14e4762dc99e1875cd1c27a20d39d  libstdc++-v3/include/ext/extptr_allocator.h
! ba58c58ff35e16aeaed5b3998fd4e105  libstdc++-v3/include/ext/functional
! 6cf714cd2195e10929c3f27cf54bf0ba  libstdc++-v3/include/ext/iterator
! 057f6f980678a9a58af2992fa5166c8a  libstdc++-v3/include/ext/malloc_allocator.h
! 8dc69bfb93216f9a42f74b158ee1e35b  libstdc++-v3/include/ext/memory
! 5e86747d1aa7509a2e7602931db4d6bc  libstdc++-v3/include/ext/mt_allocator.h
! a78402670a6ed5815c8460eb28e80b98  libstdc++-v3/include/ext/new_allocator.h
! 021496ad8a8b42ca36e301637da06c02  libstdc++-v3/include/ext/numeric
! 8771efb8ee9ad8cbaff1ee04f8b9eff0  libstdc++-v3/include/ext/numeric_traits.h
! 7db88a0312cc7f112fb5338d209e5fd0  libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
! a37a521d2fd084461f9b4d01feccc290  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
! a48ab7d63a19ca122db45d4506571dac  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
! ff96fa5e05f0c2a42ebda4709a7edede  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
! e84dee308dfaee6d754551c70c44cb8b  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
! 326aaf42c66e071599ccefb688d75fb2  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
! 07e76c2af6218ca85081443d98ba1f4c  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
! e308b438568ae14196904b8999e185ad  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
! 86497f724c2d93ea142f16afed70b4ff  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
! 853a5ab056a6f1b70372c9877eb1cb51  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
! 48e0c01271348cab20465feb2ebfb9cb  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
! 3e6dd51ddfe4d3969fd95fbad3d159b4  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
! fb1da3f4ff0e164b99192b163a50c9fc  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
! fa9506c64bea04d7d08ca5437af2f822  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
! e75e1a00d8e561447e04d57126c54870  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
! 979dc2c290a3932fafb95ef1422f909c  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
! 983a434fb10a97e64426fa9f5b659bad  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
! a0b4597abb799bc002da8376fe557b0a  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
! 3b0d811aacaea0cd626d28273229e821  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
! e68608eb835c82c2a09a236d022e28d1  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
! 4b080eb45c44d76c8a5b2750ae6ed6f9  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
! 16721b72685836040f7c178f3155cde1  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
! 187a9c7b80fc676496b86fbc108c62e7  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
! 98a57413e516d2ea300c69d84aa187ff  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
! 6b0ed0708183658bc152bfa57877ed24  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
! fded2148056262fb247d33fea2a60524  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
! c09ed3ef4a25394cecbd9a223bd8c539  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
! 9be2a0edd030fc81610d72cb73508ce8  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
! 4760fc4c2697a9d0b91b59b26f698fb7  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
! 5ede6ae9cb746ebb86c6808b8c4e96e4  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
! 542db2558eecba6d8cab5fd3a9ff18aa  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
! 07413535a8300ac91b8516a91f1b53fa  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
! 5b5253ab642cf3974c9f530591027610  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
! 652d9e02a3f589a4ef038d6685a34eef  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
! af0c9949395ebb5369fb1d72c07fb6fd  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
! bd9247fe74bdd287e0dbebdb2f1cc970  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
! 85282ab51b564f2adb53f8ffc16ee6c2  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
! 593748f015767b06562554be6c145347  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
! b8cb49082f9336f9facde54a12246737  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
! 431d3ef740e549b9bb072140e7587bb9  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
! d5b6d1b24d874886bc763132e5b10a1a  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
! 327e69184a5e208724fdca13977687a9  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
! 93a1278c18b80b16210acdba59a54232  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/branch_policy.hpp
! 9405655218c67f25a67dbd18e823b6cb  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
! 0245f687160fac2c9d15a484dcb99e7e  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/traits.hpp
! 385628d46f5c30ab6f261ae592551054  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
! 954bcd8d690a734eba11c0c1cf0d2eb9  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
! 10cf1234031a2be81c5fd10456380020  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
! 89662b6410c2bb4382e26262ab77ced7  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
! 28d30e0039159746cf786af5fb62a252  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! 05c474d83a3b93fef5641490e4692750  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! bdf2e8d9d00a7f1ac77845a9e9643be0  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
! 77d8c0b1da5f3e9c2225257db27c06f6  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! f58c72d8ca9ee41a604fcd88229545e4  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
! 25eeaa732110dd79d5d295959a933252  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
! e47d9ada8bb138c985fb54a23fa64d78  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
! 959d9b96411999813fc1cbac5e30d068  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! 7fb4f544e8c841c9c2871ad12faedaee  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
! 96e843bb5a31ffe3eaa9ac27811e7307  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
! fdb2c964abfc522c038c712997d25358  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
! 99f2d546e362b4d15f2534b8b67e4981  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
! 958e10a9124f0894b60f7443a0a466be  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
! 957724fe1e8329571fd89421a1710d80  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! 8f9e1c902cad102072ca500dd4ff0ea8  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
! c519267d56f2735219b62203c585d952  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
! 26ef3bce63f6111fff5e1f7e37fd42a9  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
! e33540ef04f8974d00ad85843fe9cd7d  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
! 8b9b97c08cc899ad057b50abd2380159  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! fc30b7135bddfc3eccf0d29bb447a539  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
! ebcc38ae656ea22ebb3a1991335fa532  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
! 9c4451537d7876f715ab05367d4805bf  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
! f14589cbf385e626d9746e22973ff6db  libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp
! 61ec334046d8b83623745488d2db807d  libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
! 79bcc2e6666c7c882511b31f30e28df0  libstdc++-v3/include/ext/pb_ds/detail/debug_map_base.hpp
! 465c8ef624b1bef7aabf40840950ea24  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
! 5995f1946d5de0ab7b634f22653c90c6  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
! 4840f7623aeae4903c8eb16abd033c76  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
! 58d43e3b30121c850bf6d3dfbc4673ef  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! a11ba12c4f101bb3a4b709f803604653  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! 17d16711ba7af44ad351ce32ef720e81  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
! 4243109e1aa8351653672097a8a5298f  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! d04928116a7a04d2135af5cf48808653  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
! 67434424efa37ff4a59c6f8b1b66a940  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
! 15330decf1ccbeb3f8cb5deca2d526f5  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! 0f6505b65b25fbb898effe6d47a53b29  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
! 3c2b27724b8134cf6e9df049ce767601  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
! e459428f36b43132e85e3115be7b12bd  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
! 2380a5119d2a7a715272dbd2c3f99c55  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
! 102ed8caaf0b2d48dada37be2ccf1e05  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
! f041a0ba3ea9e751d2e4cbd625a910de  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
! f10138c8b0fe8818b8dca4ba76efce4d  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
! 0eded30244c6db6fe0bafa06787d2cca  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! b24877272989938fab03286e27fb9115  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
! cc17a697b40bc83137ec11f086848881  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
! 3c2668a9b87e1b18205c3ffab13b298c  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
! bca74c2d8f3c023da3d4497c0de0e6ec  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
! cd9dee56d11776519c731dcc48a1f830  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! 3e8630b40ebf01e858fa8aa3561ce426  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
! de4aa914e501862ae4e7e273ffe52bc2  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
! ad9257619000bb042e0ad473a83ae5cb  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
! b7c6000bbe1acc2685b37e91479d06d6  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
! 3065dede05b7a66d240810986bd31bb0  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
! 22e211609bc99700e356aba4b7ad167b  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
! 7d8fc976c53a3bbd129d453eb706e178  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
! 12d085b96ef0c84e1b86690a155d8561  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
! dd60c8d056ab5f8560d049f97912b7ca  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
! 90e512fdfe71eb211555480e32c95057  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
! 866235f2f8628afdf444616bdd2a0f18  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
! 698341218c60c39c94caedcf48e6107e  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
! 415d678749a875b3c99a0affe4f24c3c  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
! f59f643f904dac5616f48e23063bedca  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
! d48fa0f722fab283df0aefecc0111292  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
! fc200df1fcd8ca699dd0cbf1576cc129  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
! 75100380b85aca123757968910c22717  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
! 8578a1081a5ddb5a70093e1f355d2405  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
! 214868578194891fef662830e78185b8  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
! 43b1ba1d21b425aa373bf192c11b44a3  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
! 8da822982454773ccfe8b35f0aba392c  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
! bf58203f5e93b029e502972313e42583  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
! 5764e3b48d44caf7d8a3bcb8f16f3038  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
! 533fedc3375f68145a1ff0f9f424aff8  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
! b1a0dd0368421a57bea2aa8cc9a397fc  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
! 33512daf072e72711e9ff5544fe7359c  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
! a1e8a56d48def446ef2f6294b760ebfe  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
! 6329254d105c2b5044cbd825c91bdf28  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
! c95604a05dffe081cd289a7def1f5755  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
! aba7c4b9b3dcc4eac588963785c6da1f  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
! 08220ae5693a5453e147e656bc825c4b  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
! e0c31be9a927709dd0a51a850ac2a9a2  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
! 04a97e137acf225979489189eec3dac4  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
! 08844d11f2ee8ec3fb9416017869d843  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
! 402f630edce4c2f4e2d739c957b53c5b  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
! 41fca5ae598ee9644892fd04a79acf75  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
! 9c5b657d718b870aaeb3d4e631056990  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
! 5aeb8cdbd2fc4d44def1fa4e6c8f88a6  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
! ad5b91aeae00aa3fc25c03f610801bab  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
! 2aa5d06355514049efbf976e62c69b33  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
! 59e2fbaf9366c1d831e0ded942424988  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
! 4d546fa83ebd99fa1eb6196ce68234b5  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
! 01fa42c00c855b7d0f3ee072c0d2335e  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
! 0f456f012e56a6f730f40f45f78537d4  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
! ee2c78ba33ed460f77753f8964ab2e18  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
! 18d139886f805aa29cdc03aac41e964c  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
! e10a7d5e71a0fcbb2b1ff12125b8d67c  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
! 5ced08674f728b7de57c6a8a3e091489  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
! 9cfd12348874e4a511af86e00adf544c  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
! 883fcb2b087a8fe5e8fc545a967709cf  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp
! ffa5581fe954d98df4c1c01c8336ceb7  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
! 7842f5c573bb7b3e308bb3eb15547d74  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
! 3502f83874bb6a1ffaa8321413949b4c  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
! d58b050f24cb4a77c1cc62c0963453e6  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
! 9d6a75d140ba9f24de2ab44d584c1f69  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
! 55cba0d444a851bd819ef5ec80a5b735  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
! 66a4f7ad6eb442e457bc0a6d07b32ba5  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
! 384e987e0237deaa5aafbf54699415ed  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
! 2a6992804673d0fa132f2964d964c8cd  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
! 958a72d8c4a6780cb935501b352cde65  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
! 9a1fe188b8d35615096ce8032779788e  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
! 37510a335461868f6e5df39afa8e776c  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
! b1ef26c6d48e1d738e2fbaa0630a30d8  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
! ec21813d835fd2d15a758bcc71e49058  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
! 20b5421533a3cc583ee0cb29d293db92  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
! 8b25e99d5669b0b6cc5d6376636abe06  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
! c9f16e2e14796373752feeaa75cb0afe  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
! 314318a8c7e28196f0e68808a96206cb  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
! e57994bae9fa1e578c56e68050357990  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
! 2e173c28c106977481b617a54241bf98  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
! e8578d223e497ea12283dccd1c21b2f0  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
! bfe113309eadabfb1b1ea0ba7023600e  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
! 520c3c9b97630c6668e63523f8feb351  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp
! 2fb6884310e7b88a0470da82b448a370  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
! d68c14522fae73c1d6cfaa89cbccb8c8  libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
! bbd8af750e7b45c8986b4c8d1e6ea25e  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
! cfa82ffa5d0f7786a2cbb95bfaff75a9  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
! 017907ecb0afccba4df40378d2301bf3  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
! 0519a598263b4e94f4c63699dbd033e2  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
! cad402f85c65f8ffd3f26e0588a81537  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
! 78e5117a763158bb819847f4279d6384  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
! 2cd0112bfe019f9ae1b8fe1e97569aaa  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp
! ab37557dea1984e4d1b7c02ec667bd57  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
! 9b23978d8a217b482dd05a8cf7146d83  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
! 3f57cf91cd2aceec6a7a373cc354185d  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp
! 84f7afd0a3fb244cca662edcb0554f87  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
! 5f1cfd2af59e13801f7b7cf0f112f5de  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
! 9765d6a4537e8f1d50d42022069e6449  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
! 9e2a9014c976a2cc6555075326d9139e  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
! bd28800814f742ba1bd46fc02da82a16  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
! e332ca50246f8e3d7cdbb777ac1026bd  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
! 6f89776cf59cd79cf261afe761a86b08  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
! a05c1114bbafed8aee58999055bd6860  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
! b741d771e8b893022b719642472a016c  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
! 1891940f6fb77a24928ef2468d30576b  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
! 66a5b664d92e0a16b704d7ce77b2ceae  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
! 4ac7d36283e57762a6918e840a09072a  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
! 0c8cf2b755b0bcdb042c6c33e1f61f3a  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
! b4aec507779f46e2d0897a733cfd3d8f  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
! 49dfe77b3797bf4f5364340e8ddd30b2  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
! 64e606697f935446b383d7c98a2314e3  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
! 1f0f11374e51c069d53a1ade2303da58  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
! 31d2597f68738abb4b66833fd6ef5b18  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
! 6d59abc644f5131de85ac7b0704651bf  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
! dea130a04dc620cc0d7c67b749c4e343  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
! 734c7982f62a3af498cbd3da67fe62eb  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
! 71d60012d8494c09f1c30cad2b0d3dd3  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
! 2d4ec0a49e36d416eafe9262783d3345  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
! 9557b68285318583844374e1e80d0b5b  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp
! 3e67c64e49e4d6f9053cae6157ba2527  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
! f0f8b3b137f6e57abea5150c53e4a745  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
! 4391690a5d1cf9e1c250023411d4feb0  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
! 22bbd2fde8e6d2e190adfca2abe69f15  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp
! ea2c7b023b431f15a548f88980430587  libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp
! c01b8ff6f9e52178bb1ad7cf033fa257  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
! 079011340c43832826fa85840389f599  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
! b3eaf58f59bd3c841c0babdb83ab09a3  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
! 6e1a32b57c1b156a02ce10c4d5791cd5  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
! 67dfc2033272ec1ebc3702c0f0edfd98  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
! 56ccc714236275a017a3ec6fb7400f54  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
! 659a5073e98af37826db6367d7be181f  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
! 34c9ea9595f99d7a6cdf8bc07e1015c3  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
! 0c8deb6ba83af955c4e4e0c895b17642  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
! c5eab442f391589bae3cc473e127fb0a  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
! 8dc6e0f1ff6bbe15488dc537377d72b8  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
! 4097e12bd3020e8de98ab866877a7197  libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp
! bd4511388ecb52f99ac8f189c8885408  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
! fd79ede44423eb756d1e0b9ae982c051  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
! 9e4cde9e4fc1cec078d30b8501a65ea7  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
! 0fd6d12e68fff1c9b54ed3c2e3ad5df9  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
! 443ffe3e7e57c0fe204f24e992460df7  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
! dee15591a08825edda29a050ca01058e  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
! 1fbb1208eaa177c4aa1f884d3d210c4f  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
! efb729d6a409b9adb4f9386167eed9a0  libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp
! 4de7853ab241a20057ad547e0ac0674c  libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
! 8df90c08f84d7ccc562e709005a56f4b  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
! 09cfafb59dac02565294083e1999021e  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp
! d5da805a5e446b5353549ce5cde99766  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
! 9a651ab857084702e39272b96b80ed1c  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
! c22f65005f2421b780051198c4dbaa1d  libstdc++-v3/include/ext/pb_ds/exception.hpp
! a71f1dd732989c548e6fb3cd90bfcc75  libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
! 0b1de8e8578dd4d5ce0629d17f3fe491  libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp
! 6199dde3ffb53e96204979ba1a5204bb  libstdc++-v3/include/ext/pb_ds/priority_queue.hpp
! 154fcad4e977de3b59452a35a005b8b1  libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp
! 6a9b1e88e1ec57acf528ceb9b5e779b8  libstdc++-v3/include/ext/pb_ds/tree_policy.hpp
! e7b68ea74dbc4486f304d6445d5772a5  libstdc++-v3/include/ext/pb_ds/trie_policy.hpp
! caadfacabfe85328d467de9b1a25d397  libstdc++-v3/include/ext/pod_char_traits.h
! 20ee1e20f41dc68c730b2c9db8475c3c  libstdc++-v3/include/ext/pointer.h
! d281468ceb3c4beb04f6da63ab463dfa  libstdc++-v3/include/ext/pool_allocator.h
! 7955d1b4c96e31649813e1ada0e5811b  libstdc++-v3/include/ext/random
! bcda42405934b29e401f272851d5bfaf  libstdc++-v3/include/ext/random.tcc
! 474a1ed09128969a0c560e03266bc56f  libstdc++-v3/include/ext/rb_tree
! be5748c6196b5f0ef8b184bd2c770674  libstdc++-v3/include/ext/rc_string_base.h
! e2145f9bacae1d7a4768cc1a310b647c  libstdc++-v3/include/ext/rope
! 95a27d843b9345ee883550f914bb2c7e  libstdc++-v3/include/ext/ropeimpl.h
! 3b5e9bc4fe48a3ece77254ec982835a5  libstdc++-v3/include/ext/slist
! bd442490857939a5b9d5f1d9a74db95d  libstdc++-v3/include/ext/sso_string_base.h
! 439335dfb61ccb6dc74cd3f8e485dcde  libstdc++-v3/include/ext/stdio_filebuf.h
! 6aeb7dd3bc46b6d9573a44b522acd849  libstdc++-v3/include/ext/stdio_sync_filebuf.h
! d062596425f8bc89394c936aaed898bf  libstdc++-v3/include/ext/string_conversions.h
! 25f4d72412219edc5d0acf936d258613  libstdc++-v3/include/ext/throw_allocator.h
! 92e9181d40382ba10a6f536870092789  libstdc++-v3/include/ext/type_traits.h
! d84fad540b049cf386d423c4e4f0eb2f  libstdc++-v3/include/ext/typelist.h
! c29d89987a941240f8d6d13b18c2e642  libstdc++-v3/include/ext/vstring.h
! 78019c6738443d0ccbd87283557bf19f  libstdc++-v3/include/ext/vstring.tcc
! 9a265251f98742f226435d4001863192  libstdc++-v3/include/ext/vstring_fwd.h
! 00abccc1b0a7a602fc2815b4a621ed48  libstdc++-v3/include/ext/vstring_util.h
! 97b67db909759910e250f33fd199e2f7  libstdc++-v3/include/parallel/algo.h
! 04b5e68c8a0f5ff666e64d2d35a7c913  libstdc++-v3/include/parallel/algobase.h
! 42081a6be0ec5a9cf85ad24a1bce549a  libstdc++-v3/include/parallel/algorithm
! f8406c6b11a539bbd6bb2abb45cfd145  libstdc++-v3/include/parallel/algorithmfwd.h
! 951c601b8e2fc3fc7219145709e87807  libstdc++-v3/include/parallel/balanced_quicksort.h
! eb7510a341556ba14989a91eae8aa085  libstdc++-v3/include/parallel/base.h
! 640472b265d529b7430364b087684cce  libstdc++-v3/include/parallel/basic_iterator.h
! fe4f23005ea915c1edb53ecb581fcc90  libstdc++-v3/include/parallel/checkers.h
! 03366710d3eaa010b093b2c7058148aa  libstdc++-v3/include/parallel/compatibility.h
! 436e6deb3fedd3821f4396ea981da5f7  libstdc++-v3/include/parallel/compiletime_settings.h
! 299f7ac7f13385268dc681fff658b995  libstdc++-v3/include/parallel/equally_split.h
! eb8226418c0827ae3dcd7002ab9095f8  libstdc++-v3/include/parallel/features.h
! 093fb3ee3be81fbe19882f18750e1551  libstdc++-v3/include/parallel/find.h
! aa5b52326987c8581fff53b3900d3e42  libstdc++-v3/include/parallel/find_selectors.h
! b4ad8f0bbe0d177375bc621016712a88  libstdc++-v3/include/parallel/for_each.h
! 535c82bc5a97bb96fa2a09059dfd76aa  libstdc++-v3/include/parallel/for_each_selectors.h
! d1d387355ef5993d2488b320ce89ab2b  libstdc++-v3/include/parallel/iterator.h
! 77a2de0704e4b4e5c747937f94faabb6  libstdc++-v3/include/parallel/list_partition.h
! eb3c8be83ab212a99d664da53fc48dd3  libstdc++-v3/include/parallel/losertree.h
! d7028f6b44352853092c40031a41861d  libstdc++-v3/include/parallel/merge.h
! e49381d800a47a47a38cb0cc2ef466be  libstdc++-v3/include/parallel/multiseq_selection.h
! 611cf60d5b90a3fed1acb461ef43eeda  libstdc++-v3/include/parallel/multiway_merge.h
! 5afd4b35d93eefc032d059e33dd4f2c0  libstdc++-v3/include/parallel/multiway_mergesort.h
! 12a3c9581aed117f6123e0fa03981774  libstdc++-v3/include/parallel/numeric
! a43bdc4edbcd554e2b740504c1e09c52  libstdc++-v3/include/parallel/numericfwd.h
! 35cb43488d400a7726347ad453b3c4b5  libstdc++-v3/include/parallel/omp_loop.h
! 11d74d2215c0286e5f1935d888328a67  libstdc++-v3/include/parallel/omp_loop_static.h
! 0f0dbbad07751a542a6639f13684bfa0  libstdc++-v3/include/parallel/par_loop.h
! 4c9e2190283d7aedfad92d32c839e7e1  libstdc++-v3/include/parallel/parallel.h
! 77273ace28f16c41196123e835f6d89b  libstdc++-v3/include/parallel/partial_sum.h
! 6cdcc5e068b5566bbc1c11e98c7ed5df  libstdc++-v3/include/parallel/partition.h
! 4fbf5a11063dc3425a2b2840cd30f761  libstdc++-v3/include/parallel/queue.h
! b2220d49cf60efce303ff6e64bac520e  libstdc++-v3/include/parallel/quicksort.h
! 68253c0c8d417c7741c3d9d9e91fd805  libstdc++-v3/include/parallel/random_number.h
! 9a1588f1419efbede93220549356f127  libstdc++-v3/include/parallel/random_shuffle.h
! f98a7da671b9686b71b6a61ff48d0538  libstdc++-v3/include/parallel/search.h
! 08647d50bdc6db6ce76facae709bf41c  libstdc++-v3/include/parallel/set_operations.h
! 9b6626460802d976aabad0c8fd6e38ba  libstdc++-v3/include/parallel/settings.h
! 4403bce1af5ae08facd4703e9b4b2de1  libstdc++-v3/include/parallel/sort.h
! 52a6a4129846cceaf7e7124ce5a6d1c2  libstdc++-v3/include/parallel/tags.h
! 085e36e6e77e7679b5f2f5cd5fd93931  libstdc++-v3/include/parallel/types.h
! ee876d1419f189568c9dd7ed916f35d5  libstdc++-v3/include/parallel/unique_copy.h
! 025ff1d1cd81f4b5551024effaad0749  libstdc++-v3/include/parallel/workstealing.h
! ac6f3952b9775da8d2d822fb28883525  libstdc++-v3/include/precompiled/extc++.h
! 88de13548af2742f88d9e3dca38ccdb3  libstdc++-v3/include/precompiled/stdc++.h
! 60623194aa23fd2879dab07a37497288  libstdc++-v3/include/precompiled/stdtr1c++.h
  75cfb36aeb3ed8672bb4e2957272203c  libstdc++-v3/include/pstl/LICENSE.txt
! 7714f4d23024191c673a00d97ec3eb63  libstdc++-v3/include/pstl/algorithm_fwd.h
! f7997fdd1d4d0aa2b44955b6ecccaaf2  libstdc++-v3/include/pstl/algorithm_impl.h
! 3185ac970824daf25aa11bdf91bb3b93  libstdc++-v3/include/pstl/execution_defs.h
! 5a7ffb366bc207ad3bf7f1179eef3237  libstdc++-v3/include/pstl/execution_impl.h
  87b0d132d9a180f96cdd7cbbf15a9f57  libstdc++-v3/include/pstl/glue_algorithm_defs.h
! f7bb8687dbcd6bde91830528c90f2ad3  libstdc++-v3/include/pstl/glue_algorithm_impl.h
! dd6e851bc473b9ff23e81df89abe4fc7  libstdc++-v3/include/pstl/glue_execution_defs.h
  0b0a3983fbed012140824669c804e50a  libstdc++-v3/include/pstl/glue_memory_defs.h
! e5017e0d8d380d892163a4a110331fb0  libstdc++-v3/include/pstl/glue_memory_impl.h
  9470d07762f86ba4655154491929a328  libstdc++-v3/include/pstl/glue_numeric_defs.h
! 95509c3eea99d2f277912479e94c6449  libstdc++-v3/include/pstl/glue_numeric_impl.h
! d654c6a3cf5ee1bab1e7bc476cbb7f37  libstdc++-v3/include/pstl/memory_impl.h
! b692aa95f9f120acbe330c2893c3ce6e  libstdc++-v3/include/pstl/numeric_fwd.h
! 33218e2d937214ece57cd4bb425788e6  libstdc++-v3/include/pstl/numeric_impl.h
! f0154f75dafee0c95cfc13f091939f93  libstdc++-v3/include/pstl/parallel_backend.h
! e972bfc42cfac92bfde04a35e915514e  libstdc++-v3/include/pstl/parallel_backend_serial.h
! c7205056b7b327c57e1b8ab09cebb91d  libstdc++-v3/include/pstl/parallel_backend_tbb.h
  e128e525f970f3948feec2f4750919a8  libstdc++-v3/include/pstl/parallel_backend_utils.h
! d3d2812c60e828c1e822801f148c7630  libstdc++-v3/include/pstl/parallel_impl.h
! 64e9a3bc96d1e3015387cb95106544cf  libstdc++-v3/include/pstl/pstl_config.h
! c236e001d2914387b789ce13408d7224  libstdc++-v3/include/pstl/unseq_backend_simd.h
! 16ecbf48b313f47955487be8fe668037  libstdc++-v3/include/pstl/utils.h
! 685f5bca7582106082732b3aa4facb12  libstdc++-v3/include/std/algorithm
! fc9b21dd5374fb6eb8ae18d329975612  libstdc++-v3/include/std/any
! 3a2a2806d2c2b96b18547a3147c7ce6e  libstdc++-v3/include/std/array
! 0919c06365948d659b248b825a7d0146  libstdc++-v3/include/std/atomic
! 9f99ade7dd4b9b396effd0996ee55664  libstdc++-v3/include/std/barrier
! 66e855a0f296b637102284d4a6d3323c  libstdc++-v3/include/std/bit
! 06852873ecbf5b23ff53ea0b1952d3d8  libstdc++-v3/include/std/bitset
! 9a14b4a100a53947a8d1eff0048f6708  libstdc++-v3/include/std/charconv
! bbb9e8f110041e7b63f61076405a9f3d  libstdc++-v3/include/std/chrono
! bbf20db5408848d929deed7c0ba28df3  libstdc++-v3/include/std/codecvt
! 78b49533730f7911eed523a771160738  libstdc++-v3/include/std/complex
! 933005cab15e64abf8af0d4e0972908f  libstdc++-v3/include/std/concepts
! 845dbf5fd0370e00a14b67a3ac8e13d8  libstdc++-v3/include/std/condition_variable
! 947c6ec5853e7cb5329670b65d3e407a  libstdc++-v3/include/std/coroutine
! d4f9ad7eed03fb685a74447a8cd6ef66  libstdc++-v3/include/std/deque
! eea32f3270e190607c59e827a3854ace  libstdc++-v3/include/std/execution
! 67f0af364d801436dc433f5e57ca22a3  libstdc++-v3/include/std/expected
! 0e0edf5c0fdce36e4277045c50bf6e82  libstdc++-v3/include/std/filesystem
! 3c94eb387d453b8dc479d7b6d0bf5f6a  libstdc++-v3/include/std/format
! f613bffa0644f4de7e6e3bafb4867437  libstdc++-v3/include/std/forward_list
! 7aba15a067efc51b46fe83c639a9b4d4  libstdc++-v3/include/std/fstream
! 3cd9b1e9b37be162511c33419612df91  libstdc++-v3/include/std/functional
! 04293427f46f07515bd70dd7ba2af325  libstdc++-v3/include/std/future
! fe1fb31246025d68ee9697d7214dd7f5  libstdc++-v3/include/std/iomanip
! ef4ef6905a058db64662fe609f829159  libstdc++-v3/include/std/ios
! 88e07accc8448f64667acd6ae768c4ab  libstdc++-v3/include/std/iosfwd
! 8d51828514ed7d23f72e46d539eaff9d  libstdc++-v3/include/std/iostream
! ea6795f6774a79557597d2fd2d000712  libstdc++-v3/include/std/istream
! 9fc5c0460bfa5d3c29872b66f4f34048  libstdc++-v3/include/std/iterator
! 0e5d279cbe89540e3f36a092a3beb896  libstdc++-v3/include/std/latch
! ae3312c33853f8a52ee7443cbe05a3f5  libstdc++-v3/include/std/limits
! f045775244230f66d1844314954ac80d  libstdc++-v3/include/std/list
! 456031d64ca4a2578e3d5507f328753d  libstdc++-v3/include/std/locale
! 5dc3e17ba9e05d4af5bbd28d13d7c43b  libstdc++-v3/include/std/map
! f78d1595423575bfc922448e67e52239  libstdc++-v3/include/std/memory
! 654e4d13aaec5087497c0b3cd42d26b3  libstdc++-v3/include/std/memory_resource
! 6294ee905a70436875640f1d15627c30  libstdc++-v3/include/std/mutex
! ce04f4fc0fa3c3aa259cf4b87813d4a7  libstdc++-v3/include/std/numbers
! 3e6c45e4ef81035a43294dda759c6a00  libstdc++-v3/include/std/numeric
! 9a1e2dba1b06ee6cf101010c8182b7aa  libstdc++-v3/include/std/optional
! d80e37105837d110af793b72a4094525  libstdc++-v3/include/std/ostream
! 243b863f64a8568d74b7e83bfa7fe62d  libstdc++-v3/include/std/queue
! 5f64c48b6b92533c0dfdcd5b2f349ba0  libstdc++-v3/include/std/random
! 79e2e6c7860a8f4f6064d5f3626d55a9  libstdc++-v3/include/std/ranges
! da7a31f14e6e88cc992906c846b64721  libstdc++-v3/include/std/ratio
! dbf94a876bc82510f36ab506bfc09d2a  libstdc++-v3/include/std/regex
! e622f7f6fc27cb0cc376143d8e8eb97f  libstdc++-v3/include/std/scoped_allocator
! 0b4f77ab06fb190976feaa892d6bbc75  libstdc++-v3/include/std/semaphore
! d03063a4bedb845e2ff7fba28b7ecb1d  libstdc++-v3/include/std/set
! f3ac8bd95a6c2eb2e7d83679006be2c5  libstdc++-v3/include/std/shared_mutex
! d379c79a4b4ed0a78190d8f4a9da9aa2  libstdc++-v3/include/std/source_location
! 27031b3568f421d16ba2bf656a17e774  libstdc++-v3/include/std/span
! d85e5f395906ee64d169f731e153854e  libstdc++-v3/include/std/spanstream
! a75470ffd4afdfac6eca39a7b36542d2  libstdc++-v3/include/std/sstream
! 91e5fdbed2e8180adc1417ecfceba477  libstdc++-v3/include/std/stack
! 826f3f88540bec7bf44fb9407783bf98  libstdc++-v3/include/std/stacktrace
! 91c2dec920e37dc2bdfcd57f2ee1917c  libstdc++-v3/include/std/stdexcept
! 59e3dae4ebf67b9eb46705e56e8541af  libstdc++-v3/include/std/stdfloat
! 7fd4f7aceafc9e47af067236ba39094f  libstdc++-v3/include/std/stop_token
! 2b9390e43d36e97d4ea240c08afeeba5  libstdc++-v3/include/std/streambuf
! d4462abdac571d8d61a236930c8cfc4b  libstdc++-v3/include/std/string
! f576ee0f6523233bb3c5959e6593ddcb  libstdc++-v3/include/std/string_view
! c895ee7fd9901dd0db4d02868db684ed  libstdc++-v3/include/std/syncstream
! 3024f97bb54f08e9e739c9dbf71cfa07  libstdc++-v3/include/std/system_error
! f247d2ab92c9235549e795b99206b5e7  libstdc++-v3/include/std/thread
! 952b0c86a58de25b4b6f419af4a7e15c  libstdc++-v3/include/std/tuple
! 6042db6032893b4410b45b072da2a870  libstdc++-v3/include/std/type_traits
! 5a950e25b3e5d469314bc0a340057eaa  libstdc++-v3/include/std/typeindex
! b3721b1a59dccec76d19cdcd7d20c684  libstdc++-v3/include/std/unordered_map
! 2af236cf7fc416569643f603c509e022  libstdc++-v3/include/std/unordered_set
! 04c0b9a01a6866ec69b756ee26367232  libstdc++-v3/include/std/utility
! e07584015086519afc1098613146c704  libstdc++-v3/include/std/valarray
! 90cbfb43f78efabb2c885711a449f3f8  libstdc++-v3/include/std/variant
! 347610187149e687c9f04f346f8398b6  libstdc++-v3/include/std/vector
! 0b62628823a59717fe8f0e4aa4731bce  libstdc++-v3/include/std/version
! 3aa50c1dd58b008e63662874a93f6614  libstdc++-v3/include/tr1/array
! 98b97b662591af51ce88a917962a9c2e  libstdc++-v3/include/tr1/bessel_function.tcc
! feca7de6d090c997fdee966b7ad6b001  libstdc++-v3/include/tr1/beta_function.tcc
! 3126a9ef9aa7d05b99f3f7e5b5a20e7d  libstdc++-v3/include/tr1/ccomplex
! dd48f3940b1b6960392b54a6443cc680  libstdc++-v3/include/tr1/cctype
! 207f9ce12192a4f7ff50c0a34df46f8e  libstdc++-v3/include/tr1/cfenv
! 569204d9cdaa8e015309aeb3f82e1485  libstdc++-v3/include/tr1/cfloat
! 18311534ed883a560a7c7bcc3968ab17  libstdc++-v3/include/tr1/cinttypes
! 0c82c25bd4d3af486d70ae099ab633d9  libstdc++-v3/include/tr1/climits
! 9370704275818e7e74d846432adb58ff  libstdc++-v3/include/tr1/cmath
! b74fabf7da5df4112409c6a36070df48  libstdc++-v3/include/tr1/complex
! b10e9df8c5c36f06ea43027cddb24e0d  libstdc++-v3/include/tr1/complex.h
! 214779779c74a1ea67ddcee1199a3e14  libstdc++-v3/include/tr1/cstdarg
! 650512e90f23079440bfc41197cbadfa  libstdc++-v3/include/tr1/cstdbool
! 3021b4557cedf6d6c910a044421380b1  libstdc++-v3/include/tr1/cstdint
! 5c54458f106a80092fcd76928b1bf18e  libstdc++-v3/include/tr1/cstdio
! 392b291add8db784a0d81dcdb7b1531e  libstdc++-v3/include/tr1/cstdlib
! f17ceff91821467f425b0251f8965b7a  libstdc++-v3/include/tr1/ctgmath
! 3bd13991654656240eab94c5310f56dd  libstdc++-v3/include/tr1/ctime
! eb6c1c87040538d45822e170ed1987b1  libstdc++-v3/include/tr1/ctype.h
! e74a043e27ca7a27fb1aacd3cd9c55d6  libstdc++-v3/include/tr1/cwchar
! 96c9aff747aa862bf306c177a8e42573  libstdc++-v3/include/tr1/cwctype
! 1775b79e7ac2319fdd3ac14df13ac028  libstdc++-v3/include/tr1/ell_integral.tcc
! 7934f4cb02f070a855291203768ffbb5  libstdc++-v3/include/tr1/exp_integral.tcc
! 656359d37f4fc97484356ea0a1f5a7a1  libstdc++-v3/include/tr1/fenv.h
! 17a4cc259d98f53053a7c8af8e3a1dab  libstdc++-v3/include/tr1/float.h
! e5cbce6ed4da7a7e0b7e0846bdfdce6e  libstdc++-v3/include/tr1/functional
! 25f0defb3c0b80f6fcbefe7d8911a9dd  libstdc++-v3/include/tr1/functional_hash.h
! f38d47c221bf5944dc421817575429ff  libstdc++-v3/include/tr1/gamma.tcc
! ef28819ef02e59a3805bc705ff319d17  libstdc++-v3/include/tr1/hashtable.h
! 4525aeb25e739be619a3a5b16df1c744  libstdc++-v3/include/tr1/hashtable_policy.h
! 309ec9bee208369280d0b13842e6939d  libstdc++-v3/include/tr1/hypergeometric.tcc
! 961c863e21d565c4bf74707b672d1e57  libstdc++-v3/include/tr1/inttypes.h
! 5d2bdba33f630868da2d399efcdf8405  libstdc++-v3/include/tr1/legendre_function.tcc
! cd4a82bcdc6c26660311cf36ccfa610c  libstdc++-v3/include/tr1/limits.h
! 0d9eee6c83736c76e270e0569b903f29  libstdc++-v3/include/tr1/math.h
! 75416c3b3f20a9747cdb67d4c7ede118  libstdc++-v3/include/tr1/memory
! ba584c917787e300907a23b2541ed150  libstdc++-v3/include/tr1/modified_bessel_func.tcc
! f6830e0537e604e3464e039b3daa7095  libstdc++-v3/include/tr1/poly_hermite.tcc
! 656a76445091f31c3abbf5f3f460d3bb  libstdc++-v3/include/tr1/poly_laguerre.tcc
! 2a2270abd9ed50fbb6c822038e853d25  libstdc++-v3/include/tr1/random
! 0673eac52e6fdf1da3226bea00a6c780  libstdc++-v3/include/tr1/random.h
! 28b905cb32a113ef838fd2dcf8d90644  libstdc++-v3/include/tr1/random.tcc
! 2eecf76fccaabb2c5b9f8cbe584d6151  libstdc++-v3/include/tr1/regex
! 03b178b938f323e1df1f92a1a6df36a6  libstdc++-v3/include/tr1/riemann_zeta.tcc
! f9ee8a726e1677cffe9ce15f7c6f2d09  libstdc++-v3/include/tr1/shared_ptr.h
! cbe13e809fa2aab617ea7c2e54a58c1b  libstdc++-v3/include/tr1/special_function_util.h
! 6d0aede632efa6a6aa372e1a192b40cc  libstdc++-v3/include/tr1/stdarg.h
! 92e031307c50e861d965e358fe7b4e81  libstdc++-v3/include/tr1/stdbool.h
! a1c75fb1d1b9e96048b8c634fd3a444e  libstdc++-v3/include/tr1/stdint.h
! 4c4a4f3d4ab0a9e87e741f7b57f92d97  libstdc++-v3/include/tr1/stdio.h
! 0b5879b6ff705b878848ae1efdff6f7c  libstdc++-v3/include/tr1/stdlib.h
! 6e88c545d3be6f3a07b54f2ec3cbb744  libstdc++-v3/include/tr1/tgmath.h
! caa7922ddcf6e2401744d62f959518ce  libstdc++-v3/include/tr1/tuple
! 6d63fa4a16ddac089c68ebfd46af31bc  libstdc++-v3/include/tr1/type_traits
! 669e18413431123b94a850f207fe5da5  libstdc++-v3/include/tr1/unordered_map
! 836559bceb305d36f108157ca7bfbef3  libstdc++-v3/include/tr1/unordered_map.h
! 7f6986fa762d7df2b129cb44b4ff600f  libstdc++-v3/include/tr1/unordered_set
! e3f34f2c8325e33d3fa3c1052982d594  libstdc++-v3/include/tr1/unordered_set.h
! 790b23c4f662b952bcc82090cd473613  libstdc++-v3/include/tr1/utility
! 0f4366d431d9248ae65004a4d6f0f0b6  libstdc++-v3/include/tr1/wchar.h
! e978819ab1cdd7dd69926a891b85b537  libstdc++-v3/include/tr1/wctype.h
! 7a2f4509b3ff8ea1e8fc5f10ba537bf8  libstdc++-v3/include/tr2/bool_set
! 491a252c5a2320cd573a7031abfb77e4  libstdc++-v3/include/tr2/bool_set.tcc
! c2b966d3dd9753e5f80880930b6b4160  libstdc++-v3/include/tr2/dynamic_bitset
! 3801b9b5eda8d271c741ba96d0082827  libstdc++-v3/include/tr2/dynamic_bitset.tcc
! 69455a5f73dd1eea720b68b11f2cee1e  libstdc++-v3/include/tr2/ratio
! 74a0067a1e4aeae044a369a2156dc2fe  libstdc++-v3/include/tr2/type_traits
! 5e8aa672a36039b5f77f12901aebb846  libstdc++-v3/libsupc++/Makefile.am
! 339c67d7031fc43d7b74fdcf288be3be  libstdc++-v3/libsupc++/Makefile.in
! 068cac167ea3df37fc0e54fc152281e3  libstdc++-v3/libsupc++/array_type_info.cc
! f90b514962a10a93907b8a6d89370763  libstdc++-v3/libsupc++/atexit_arm.cc
! ff404b9f6127c4b34ef7883e3d7476c3  libstdc++-v3/libsupc++/atexit_thread.cc
! e26fdb426ae44b3d2371f71f4f84cd20  libstdc++-v3/libsupc++/atomic_lockfree_defines.h
! c814c3d0e442f9e1afae185a5914fb78  libstdc++-v3/libsupc++/bad_alloc.cc
! adb5bad359a25eeaea8a8ccd818b28e2  libstdc++-v3/libsupc++/bad_array_length.cc
! c24da65e09203cc24f9ec26428c15db4  libstdc++-v3/libsupc++/bad_array_new.cc
! 3a83bf7b1cf425f41578b50a77bbc80f  libstdc++-v3/libsupc++/bad_cast.cc
! cc9c389b9c88d2a0d4f2350c9f1fd217  libstdc++-v3/libsupc++/bad_typeid.cc
! 32fd972c978959d92cecec3359a30280  libstdc++-v3/libsupc++/class_type_info.cc
! a40eb114be75c2e15f9b94456ec58a35  libstdc++-v3/libsupc++/compare
! 21a33dcaa8bb79f7e7c58b3623d2ee69  libstdc++-v3/libsupc++/cxxabi.h
! 088f76c359b59a48b5827182539f1899  libstdc++-v3/libsupc++/cxxabi_forced.h
! 751e06e6ce352b307233fa98ad163148  libstdc++-v3/libsupc++/cxxabi_init_exception.h
! c0a134e62cce461b345e73de0f4a91b3  libstdc++-v3/libsupc++/del_op.cc
! 28ef555406cd9c8f233f21faa1b08e7e  libstdc++-v3/libsupc++/del_opa.cc
! 7622514d64c1b906f10206be188a823d  libstdc++-v3/libsupc++/del_opant.cc
! dfa4967963dd2744171b2a36d10a8d30  libstdc++-v3/libsupc++/del_opnt.cc
! 7571e96d6415d9e4d105ff991f8cfc03  libstdc++-v3/libsupc++/del_ops.cc
! 2e9a6efc4441d3ba485bfa54e21c0bbe  libstdc++-v3/libsupc++/del_opsa.cc
! b4e56408af9bd1d777bbbb797dbaf77e  libstdc++-v3/libsupc++/del_opv.cc
! a7f3442a7475e21e1e845e058966ce7f  libstdc++-v3/libsupc++/del_opva.cc
! 593e66feafb3762d7d8b92a8ff8843a1  libstdc++-v3/libsupc++/del_opvant.cc
! 4a3035d50e0ab0792268187d63b9b591  libstdc++-v3/libsupc++/del_opvnt.cc
! 87f07044545f2caaff1b72ebc010a20e  libstdc++-v3/libsupc++/del_opvs.cc
! 507479a4c9afe642c5195516c02c03b7  libstdc++-v3/libsupc++/del_opvsa.cc
! fb719b1a4c5574dddb27b77cf80545a8  libstdc++-v3/libsupc++/dyncast.cc
! 27e412aba523a6fe7d170aff75b81320  libstdc++-v3/libsupc++/eh_alloc.cc
! 7482b51ebd29043fa667ea27ba5e5d57  libstdc++-v3/libsupc++/eh_arm.cc
! d37f73ab271f3660de5bf589b33b6329  libstdc++-v3/libsupc++/eh_atomics.h
! 4a585b2044bfdb86cf3d12279c0b059a  libstdc++-v3/libsupc++/eh_aux_runtime.cc
! 7bdd87ec828970d2ef251e67493bd13f  libstdc++-v3/libsupc++/eh_call.cc
! 703a71f07356d0b4abe5d551c66d7896  libstdc++-v3/libsupc++/eh_catch.cc
! 460e14b1e52a84159a0a3208ed208fe2  libstdc++-v3/libsupc++/eh_exception.cc
! dacee6c8dc24ce1401d629a140b922eb  libstdc++-v3/libsupc++/eh_globals.cc
! a243bbcab67576bb8386560da7bdb284  libstdc++-v3/libsupc++/eh_personality.cc
! b308df4f9882cefd3d85b0b20af0a165  libstdc++-v3/libsupc++/eh_ptr.cc
! 0ba3b1fce1abb4b8799dc243a894b8f6  libstdc++-v3/libsupc++/eh_term_handler.cc
! 03e5156580a43d630d3fa12f35db8dd2  libstdc++-v3/libsupc++/eh_term_handler.h
! 24bda1fc252c208715168a93a277a499  libstdc++-v3/libsupc++/eh_terminate.cc
! e8b2d9eaadb9ce08f723ba0229bd65da  libstdc++-v3/libsupc++/eh_throw.cc
! 011dd8200007359225676fa5d839ba3a  libstdc++-v3/libsupc++/eh_tm.cc
! 3d75885de1514f3c73facfa5c4dea9c0  libstdc++-v3/libsupc++/eh_type.cc
! f127a96d485490508664b60d52d96eaa  libstdc++-v3/libsupc++/eh_unex_handler.cc
! 838fc313f0a6e8930fde5426a0d2d41b  libstdc++-v3/libsupc++/enum_type_info.cc
! 133cbb0af36789cb35f4a40d70cb699f  libstdc++-v3/libsupc++/exception
! 5cd3703bfc6fe8687fc73b47395fb764  libstdc++-v3/libsupc++/exception.h
! a035b4dae3b2c081d8c7f5186d09d602  libstdc++-v3/libsupc++/exception_defines.h
! 314ad14748ccb9ff85c65d17ebb0828b  libstdc++-v3/libsupc++/exception_ptr.h
! c64a545d5c646a5538993c23e17aee98  libstdc++-v3/libsupc++/function_type_info.cc
! 4a3b7f5a30ac297a461e71888f2ba9c3  libstdc++-v3/libsupc++/fundamental_type_info.cc
! d9be9f5772273085f9bc3f4b403ac7e6  libstdc++-v3/libsupc++/guard.cc
! 9047126521e1cfe8dcfbcf2352463f79  libstdc++-v3/libsupc++/guard_error.cc
! ea7eb5497094b7c9acff6dc908df2bfa  libstdc++-v3/libsupc++/hash_bytes.cc
! 747349fa8997cb211d2d6b9f5db4eaf5  libstdc++-v3/libsupc++/hash_bytes.h
! b6c672b5641a6e6d7cfa16a0f06069e7  libstdc++-v3/libsupc++/initializer_list
! 2e881dbfacdd1cd248bead4d995d0a3d  libstdc++-v3/libsupc++/nested_exception.cc
! a1cffdff3f1336cd9faeea4f99884f6d  libstdc++-v3/libsupc++/nested_exception.h
! d9c6a94d55db87a407605e7b41ee9900  libstdc++-v3/libsupc++/new
! 67067ac20b20cdf4d4d92587b6aeb70d  libstdc++-v3/libsupc++/new_handler.cc
! 308d128661043bfc1b2b821fbb4567a4  libstdc++-v3/libsupc++/new_op.cc
! 80efbd25c8f484d3b58235b1edf1e389  libstdc++-v3/libsupc++/new_opa.cc
! 482fdfa9782c2c1f28f418b0ceceb209  libstdc++-v3/libsupc++/new_opant.cc
! 87353ff702d0a5b439354d92519d806f  libstdc++-v3/libsupc++/new_opnt.cc
! 0502b836a4f288f4da6e73a11e624501  libstdc++-v3/libsupc++/new_opv.cc
! 4d52acaa990924c5bf4097402addffad  libstdc++-v3/libsupc++/new_opva.cc
! 8aeae7373868078b4f00f0911d7b9af7  libstdc++-v3/libsupc++/new_opvant.cc
! e1cc009463df1dd9458ed4a5caec5e13  libstdc++-v3/libsupc++/new_opvnt.cc
! f6190c2d9668ce05131af2c7d14dc789  libstdc++-v3/libsupc++/pbase_type_info.cc
! 5fdee0908fce6c6c5e8c36a0d9b61510  libstdc++-v3/libsupc++/pmem_type_info.cc
! df8e31e8a73e21b8e5ddedfc9d2edcec  libstdc++-v3/libsupc++/pointer_type_info.cc
! 8a11a1a9edee0fe8c9ee6db113a6b5b9  libstdc++-v3/libsupc++/pure.cc
! adf7456201b02be3ffc7d2b063935188  libstdc++-v3/libsupc++/si_class_type_info.cc
! e95267ed39111c61bc286c4b0765f07f  libstdc++-v3/libsupc++/tinfo.cc
! e36d3b6eb74fee5cdd3be76d8364bf4b  libstdc++-v3/libsupc++/tinfo.h
! 2298d1802d08ee88038e0e1a851a28c2  libstdc++-v3/libsupc++/tinfo2.cc
! 2fcdb16f2ddcce24a5467ca402608774  libstdc++-v3/libsupc++/typeinfo
! c92166014ad88ce1c59607a6ac709fad  libstdc++-v3/libsupc++/unwind-cxx.h
! c4c66429fc19d3748c1253168b26b9d0  libstdc++-v3/libsupc++/vec.cc
! 63559d7141f0d6b71f03b61f9bbbd2ab  libstdc++-v3/libsupc++/vmi_class_type_info.cc
! 7b3ffa706962e11dd7dc35d3a02bde59  libstdc++-v3/libsupc++/vterminate.cc
! 369e758d65403447c43f5d325562b0ea  libstdc++-v3/libsupc++/vtv_stubs.cc
! 6e1809e9ac8f237378ab1ebc1b99fb6a  libstdc++-v3/linkage.m4
! c60ac0cafa1d08d9d42c1a0973254c32  libstdc++-v3/po/Makefile.am
  a5457e41b18fa84291efc712d8c7db06  libstdc++-v3/po/Makefile.in
! fc63fe2107b25fc86f7177e9a59fd1bc  libstdc++-v3/po/POTFILES.in
! 049f9ba797ed1c205b8e5580f9d1886e  libstdc++-v3/po/de.po
! dc7cc5099afbf0b183ba4b7a1b17a4fe  libstdc++-v3/po/fr.po
! a9b07084694678e7af4132fbd34e81c9  libstdc++-v3/po/libstdc++.pot
! 5cb1231dcdf70f2bf70459bbce45898c  libstdc++-v3/po/string_literals.cc
! 206c6785774ce7238c26a17b32ef57f9  libstdc++-v3/python/Makefile.am
  c94ad903b4e7baf364cdc3ef5e9f58a8  libstdc++-v3/python/Makefile.in
! e4724aea7b38f8f2110f154ac4a2df43  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
! 44ec7158da785f9f917e8209b8e2c880  libstdc++-v3/python/libstdcxx/v6/__init__.py
! b6fc033de42c1c8a21cb79b18a26603a  libstdc++-v3/python/libstdcxx/v6/printers.py
! 99694b2a9e2f8490f68e0fdc6d8de82e  libstdc++-v3/python/libstdcxx/v6/xmethods.py
  cdac7363b91e7d57b85f7b560f62f033  libstdc++-v3/scripts/check_compile
  a4c1d51bba293cee2307fc7f9dd090f7  libstdc++-v3/scripts/check_performance
  128d0fbc24e1d43d9ff93d14bd521aa6  libstdc++-v3/scripts/check_simd
  40f8ee10a4683f6c7f555f9450fcaa12  libstdc++-v3/scripts/create_testsuite_files
! bc9baab1a0376f2e247cd31815cbeab1  libstdc++-v3/scripts/extract_symvers.in
! 1baa00201a640f09bd8d2188b4802e95  libstdc++-v3/scripts/extract_symvers.pl
  755b77f929d926f07f3257df2e802f2e  libstdc++-v3/scripts/gen_bind_includers.pl
  85378fa65bc3dc46ffe255374b304560  libstdc++-v3/scripts/gen_includers.pl
  f1a84a17158780aaa37927191db4463a  libstdc++-v3/scripts/gen_includers2.pl
  c3455b8d87dcefd65c7fdcd24e4ce3a4  libstdc++-v3/scripts/make_exports.pl
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
! 2e523f6d6b0f8851adcef285faf8a454  libstdc++-v3/scripts/run_doxygen
! b5c90557075248abb064905101257dda  libstdc++-v3/scripts/testsuite_flags.in
! 24b1804d44132e8a1c9e33072badcb16  libstdc++-v3/src/Makefile.am
! d183489efa48c4d78ff3dbd68b24a207  libstdc++-v3/src/Makefile.in
! cc6940bf3798f08ccb14969552851c93  libstdc++-v3/src/c++11/Makefile.am
! 3eb5c5c986c09fc4579723757119adde  libstdc++-v3/src/c++11/Makefile.in
! 85081a7300398dcaa490d1027f2165b6  libstdc++-v3/src/c++11/chrono.cc
! b9d9e87481311acb2931f3cec60f25fa  libstdc++-v3/src/c++11/codecvt.cc
! d1f2d13073a3e57e01ede9898b5eed46  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
! de9c3ba43495072dd85a4e6e96e1ea62  libstdc++-v3/src/c++11/compatibility-c++0x.cc
! 9f57a171f75b71e3df9afbc529cf2779  libstdc++-v3/src/c++11/compatibility-chrono.cc
! 9d547796cec55cd7cdee2274b6fefed1  libstdc++-v3/src/c++11/compatibility-condvar.cc
! fbd510d1a3ca3b355c0a314bf2416b3e  libstdc++-v3/src/c++11/compatibility-ldbl-alt128-cxx11.cc
! f5f6465203bb0ca03df7e8ab4cb0f637  libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc
! 598fe36a18ac2267e53e9a14a73a88d0  libstdc++-v3/src/c++11/compatibility-ldbl-facets-aliases.h
! 3569deff0e356b5ada1fc3647d5c4cc4  libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
! a310efe14c9061c5d3258bc7d723ab19  libstdc++-v3/src/c++11/condition_variable.cc
! 70f3fa690f7b88e0d0c8588da1f9adab  libstdc++-v3/src/c++11/cow-fstream-inst.cc
! e080252c8275368f6ec96d830c01c45a  libstdc++-v3/src/c++11/cow-locale_init.cc
! 3582aafde2133939aac1ffce408c50ce  libstdc++-v3/src/c++11/cow-shim_facets.cc
! 9ec68c1dbbdde07d1aea8d15feb47298  libstdc++-v3/src/c++11/cow-sstream-inst.cc
! b83245172fc53af1877e70b90739a838  libstdc++-v3/src/c++11/cow-stdexcept.cc
! 0ea9c169a85742ff79ad82bbae929ab9  libstdc++-v3/src/c++11/cow-string-inst.cc
! a2d69e033e79e897205a54896734b75a  libstdc++-v3/src/c++11/cow-string-io-inst.cc
! d895c4f9e004ab4f4108ba1ef95c44c3  libstdc++-v3/src/c++11/cow-wstring-inst.cc
! 70aeaf4ebfb25b18f1d297c61559a58e  libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
! ef4478d6bf409c2ce238ccfe7354338d  libstdc++-v3/src/c++11/ctype.cc
! ccadf49a9df54223b2037e8081505ac2  libstdc++-v3/src/c++11/cxx11-hash_tr1.cc
! 004a59076cf1c620606fe1912a250434  libstdc++-v3/src/c++11/cxx11-ios_failure.cc
! b6dd10b941b009bea22b75d0d398cc33  libstdc++-v3/src/c++11/cxx11-locale-inst.cc
! 92cdc1755e8b65ffafeed34de091ab9d  libstdc++-v3/src/c++11/cxx11-shim_facets.cc
! 997160475d88dc29b61b269efff8032f  libstdc++-v3/src/c++11/cxx11-stdexcept.cc
! 3796bac05ff7df965a9757f18127f645  libstdc++-v3/src/c++11/cxx11-wlocale-inst.cc
! edf762f44252010c99eac2e0a4ac4fc2  libstdc++-v3/src/c++11/debug.cc
! a4a908cdeeaa8c6ce003faea76195bfb  libstdc++-v3/src/c++11/ext11-inst.cc
  ba1e398802c7793fc33131cddac099d5  libstdc++-v3/src/c++11/facet_inst_macros.h
! 9289636c5342b21635582d8c595b61df  libstdc++-v3/src/c++11/fstream-inst.cc
! 33ecc52466d9288b45d383a46dc140dd  libstdc++-v3/src/c++11/functexcept.cc
! 3c12964a3ab2a922a90ec8927ab8dd88  libstdc++-v3/src/c++11/functional.cc
! 7d3d4758c370f9823c9bad4ca0d006b7  libstdc++-v3/src/c++11/futex.cc
! 382270f3469ceff6145375b027db83e6  libstdc++-v3/src/c++11/future.cc
! 78431bb3ab4d07b6db3befcbdcc4b544  libstdc++-v3/src/c++11/hash_c++0x.cc
! 59d3894c8a066bda1b6b65aa8799ad50  libstdc++-v3/src/c++11/hashtable_c++0x.cc
! 2b98f3c21b830bcae40bd0fb1ba2f5d8  libstdc++-v3/src/c++11/ios-inst.cc
! d1d5852a9856d9ca8eed9b50c24ef5ac  libstdc++-v3/src/c++11/ios.cc
! 52ebd036357a43af0d322c5c6fd24f1d  libstdc++-v3/src/c++11/ios_errcat.cc
! a481731dfb50ee220e185c5cbff3fc45  libstdc++-v3/src/c++11/iostream-inst.cc
! 5b35611a73fed7302c6fa6556c81ad16  libstdc++-v3/src/c++11/istream-inst.cc
! 7d153b8460b4c948f1ef17de2b7b60cd  libstdc++-v3/src/c++11/limits.cc
! a39a776917c8a9c201d8bccdb6281b05  libstdc++-v3/src/c++11/locale-inst-monetary.h
! afc0ed0b8be39eb78155599b5d871c5e  libstdc++-v3/src/c++11/locale-inst-numeric.h
! 69da45be524860055ff1c8a47c538381  libstdc++-v3/src/c++11/locale-inst.cc
! 6ef30e425a63b638c4cc2605b9a713c5  libstdc++-v3/src/c++11/mutex.cc
! 7b362b5e2578e83b0a60ed1e035698a0  libstdc++-v3/src/c++11/mutex_pool.h
! 37fce26862accf92bb93a388d13e754e  libstdc++-v3/src/c++11/ostream-inst.cc
! 9ea8a34e69d6b036710a5303e464a8cf  libstdc++-v3/src/c++11/placeholders.cc
! 199aa4eb94d626a1b3bc60eda117293b  libstdc++-v3/src/c++11/random.cc
! 5eda20858ccca7a4b902b803c722eee5  libstdc++-v3/src/c++11/regex.cc
! f9c59223d5e7c96f5b9bec20e2ec7d79  libstdc++-v3/src/c++11/shared_ptr.cc
! 14d8d5ea45e6c05cb04b8b37038e8590  libstdc++-v3/src/c++11/snprintf_lite.cc
! 4b7e62ecd7541ae137cbe363c742828c  libstdc++-v3/src/c++11/sso_string.cc
! 05222eb79b33f538a985cdae3bb43a18  libstdc++-v3/src/c++11/sstream-inst.cc
! dd8dcbfe0acfc3cc011c29d1ed45acd0  libstdc++-v3/src/c++11/streambuf-inst.cc
! ef67bdbe0c2027c6445346ab2acb76c6  libstdc++-v3/src/c++11/string-inst.cc
! 530f1c52bdd3db41f33320d6c5112f39  libstdc++-v3/src/c++11/string-io-inst.cc
! f9cb5a25b74bdeb0bd4361500ff27c6e  libstdc++-v3/src/c++11/system_error.cc
! 124e658a39d24501e83862a90bf15e54  libstdc++-v3/src/c++11/thread.cc
! ef9e5ee5d5bd1f5195945fc14fc07e56  libstdc++-v3/src/c++11/wlocale-inst.cc
! 289d934e470a7004214834d14cdbbd4a  libstdc++-v3/src/c++11/wstring-inst.cc
! 7eb1247c79992f020b1dc9990c38e25b  libstdc++-v3/src/c++11/wstring-io-inst.cc
! 8e7436242dc2f614d8d563a0c634a3f6  libstdc++-v3/src/c++17/Makefile.am
  1fab41448c9ad9ce8c3f32fe49551fa8  libstdc++-v3/src/c++17/Makefile.in
! 09a10fcfd4adf03b04c1080e27df1067  libstdc++-v3/src/c++17/cow-fs_dir.cc
! b0cc06d76d3956b4419a3afd3e559d14  libstdc++-v3/src/c++17/cow-fs_ops.cc
! 267455d4fe64b791b2684201458fae13  libstdc++-v3/src/c++17/cow-fs_path.cc
! 3bac8350988c1a672e34960b650d1b99  libstdc++-v3/src/c++17/cow-string-inst.cc
! 21e22ff1ddec6a91c7b379d6f6398649  libstdc++-v3/src/c++17/default_resource.h
  c347ef2c3ab2982bb980afb943891a83  libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES
  cdf9c54ab7ea85aa42bbf32b2e749913  libstdc++-v3/src/c++17/fast_float/MERGE
  88af13a4cebd3e9f44449b09304147d9  libstdc++-v3/src/c++17/fast_float/README.md
  093cc2d73328b5328c46320d9fb0ad05  libstdc++-v3/src/c++17/fast_float/fast_float.h
! 00d3e56ee130af41108d7a0f493703f6  libstdc++-v3/src/c++17/floating_from_chars.cc
! 3b38edf9d188d303f6aa2c63b7032e89  libstdc++-v3/src/c++17/floating_to_chars.cc
! 56791bd9a91b72bbb0632e8468cf9459  libstdc++-v3/src/c++17/fs_dir.cc
! 542d3411aa720b9b4ab921f85ba47b71  libstdc++-v3/src/c++17/fs_ops.cc
! b4f7efe606a4becbbce5f5bf4e68501d  libstdc++-v3/src/c++17/fs_path.cc
! 115b4116584b81ff091cc1c8a434be2b  libstdc++-v3/src/c++17/memory_resource.cc
! 2e23492a9bdff13463ee6d01c4b7cc20  libstdc++-v3/src/c++17/ostream-inst.cc
  f7696e2f5518e5e873ced4beacb8d107  libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES
  e225c39ccc4c6adc72a744687977d59d  libstdc++-v3/src/c++17/ryu/MERGE
  5c512389f4cbe0ea37ce2a8da0f070d6  libstdc++-v3/src/c++17/ryu/common.h
--- 123355,124438 ----
  7edd591e15a0bbc76d58e9edcb7c28d1  libstdc++-v3/doc/xml/manual/parallel_mode.xml
  7c390b245068bcc2f3f52590bdf8526f  libstdc++-v3/doc/xml/manual/policy_data_structures.xml
  26c588a0ffa7f8fc5b3e09d398c52a3f  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
! f934009b05c708b87c8e0a2b194ea477  libstdc++-v3/doc/xml/manual/prerequisites.xml
  ab6d91afc9a36e19a6524c6ca834170a  libstdc++-v3/doc/xml/manual/shared_ptr.xml
  d7f222c42325cd44eadad2c59eef7e6f  libstdc++-v3/doc/xml/manual/spine.xml
! b1de6f60037f17e10ed5c00b477ea3d1  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
! 4072382bf13416ab0788cac8422f37ce  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
! c33484a2f76ad3581e432ef7137f5cc0  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
! 94d34b1f409c1ef8a5a24b109fe03df0  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! 02beb17c14f0a83845a9a718df4e3266  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
! 2fd67f3d46ac3820fc57c4dfdcac2411  libstdc++-v3/doc/xml/manual/status_cxx2023.xml
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
! 9b44c100ecfc9b8cef4158f7e3016be7  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
! 68e1b11c64b3ac99d8af27b853cd6975  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
! 6f88fb7dec269c11ecd8f6078e77e5cd  libstdc++-v3/doc/xml/manual/strings.xml
  2b80feb1b53a8d0895a292620ec430b2  libstdc++-v3/doc/xml/manual/support.xml
! 8f48e16895211927fa6aa4bd05fadb26  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 1a2df74d44edd33a0c859e2cfda2cd4c  libstdc++-v3/doc/xml/manual/using.xml
  8b2ecaf4e0a66bc6db1724038373671a  libstdc++-v3/doc/xml/manual/using_exceptions.xml
  74a5acaa32b3d223bd413c1bb5b69ac6  libstdc++-v3/doc/xml/manual/utilities.xml
! e6f2e1ff035b9b144ac628a016da524a  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! 0f80efcc13cbac62693edf0941b78978  libstdc++-v3/include/Makefile.am
! 74347629583baab2a09d4bc755121b78  libstdc++-v3/include/Makefile.in
! e80aa1cdcf7213d9b1735c8779502146  libstdc++-v3/include/backward/auto_ptr.h
! 0a5df32cdd2ccea6d7b2bccc32264c11  libstdc++-v3/include/backward/backward_warning.h
! 1685c415463ebd7e7ece8bc9fcd32ea2  libstdc++-v3/include/backward/binders.h
! 0ee75fc8763080a863c4587d0c22b904  libstdc++-v3/include/backward/hash_fun.h
! 4bb29d337511a09e0c1e773711b11c9d  libstdc++-v3/include/backward/hash_map
! c1f8e2eed52da3850a73c1898201073b  libstdc++-v3/include/backward/hash_set
! 5f3e8ab412c668d6ef8b102883194725  libstdc++-v3/include/backward/hashtable.h
! c175480f283c6faf24b090afb7b8a094  libstdc++-v3/include/backward/strstream
! fa33522083e1c68173d330c454484c4f  libstdc++-v3/include/bits/algorithmfwd.h
! c6b3be3f7c9e66db91c556f5614ccd86  libstdc++-v3/include/bits/align.h
! 3fe42d54b74b416796899c8f16cfeb3d  libstdc++-v3/include/bits/alloc_traits.h
! 0130a22c73e6916ce695d7a65b55e136  libstdc++-v3/include/bits/allocated_ptr.h
! 4303dd43fc7d56b49442b413b25dc805  libstdc++-v3/include/bits/allocator.h
! b12c0d79d9800c1c8324769220a13221  libstdc++-v3/include/bits/atomic_base.h
! 73ee78148831bfc99e48fa00cf4a9774  libstdc++-v3/include/bits/atomic_futex.h
! 670239be1d02c64eb81eb20244729696  libstdc++-v3/include/bits/atomic_timed_wait.h
! 86a7c6dd9198cedb31603235e5a08375  libstdc++-v3/include/bits/atomic_wait.h
! 7e4c44e3709a39e69e5926b8943aaeaa  libstdc++-v3/include/bits/basic_ios.h
! c5f0b0cf12a20c25f0e41914429011a4  libstdc++-v3/include/bits/basic_ios.tcc
! 67ec4d723d5c268cb187b239e3566815  libstdc++-v3/include/bits/basic_string.h
! e8d06b2e799ffc8083019f20acf0b4eb  libstdc++-v3/include/bits/basic_string.tcc
! c7a6720fba64940d0fa26db8b1690df2  libstdc++-v3/include/bits/boost_concept_check.h
! 40bbfd82087a88af5f846b2166bbb898  libstdc++-v3/include/bits/c++0x_warning.h
! c7622150fdcc7b3c0321a1e237e775a1  libstdc++-v3/include/bits/c++config
! 28aee543f6c9d197b0af864e888f0122  libstdc++-v3/include/bits/char_traits.h
! 6859feb7dcc6695a2c6234641b888038  libstdc++-v3/include/bits/charconv.h
! b3ba0378f24b45c0114b4c8f4c94bcc6  libstdc++-v3/include/bits/chrono.h
! 83d877dd7030c90b9373205d855e3580  libstdc++-v3/include/bits/chrono_io.h
! 88b76f5a51860ba832b9dc12ecb77d11  libstdc++-v3/include/bits/codecvt.h
! 51b1ac432b9720acddaea7defbbb9885  libstdc++-v3/include/bits/concept_check.h
! d586d6356d122baed87f500662924b14  libstdc++-v3/include/bits/cow_string.h
! d5abd9cd69be06b93a597ef3c0abbbd5  libstdc++-v3/include/bits/cpp_type_traits.h
! 4ccfca809e09548b2782e39a16c9b682  libstdc++-v3/include/bits/deque.tcc
! 769cf52788a336b71f976155bb6f43bd  libstdc++-v3/include/bits/elements_of.h
! afd1789a41d6c832f583d0a86e85d7b0  libstdc++-v3/include/bits/enable_special_members.h
! bfd9dcd277a4e1fc8264d9778a51a1fc  libstdc++-v3/include/bits/erase_if.h
! bda4c7f93e7fdfb3efab3e7dd3bd0293  libstdc++-v3/include/bits/forward_list.h
! 54988ffbb55b7b28d8e742246eeb7e7a  libstdc++-v3/include/bits/forward_list.tcc
! 172ec211e7b2dcd494223ec328be1424  libstdc++-v3/include/bits/fs_dir.h
! 2b5018cc2b1ec4f77c1063ee9f2bd1b9  libstdc++-v3/include/bits/fs_fwd.h
! fe7f67bed11b31530138ff9c95f24fb5  libstdc++-v3/include/bits/fs_ops.h
! 532b17e5c821d8c9b9967a09d34fff51  libstdc++-v3/include/bits/fs_path.h
! f5ce5aaa4dc85c0df9bbb9336377ec55  libstdc++-v3/include/bits/fstream.tcc
! f4bbb120a9815127b10a1ac27deb8d52  libstdc++-v3/include/bits/functexcept.h
! f4bcd858272323ada640c37deef0cc5b  libstdc++-v3/include/bits/functional_hash.h
! 1473baf2405d9ffd35b3d332d9a13757  libstdc++-v3/include/bits/gslice.h
! 85c0b55fd0900992d6c5c11046de0bb6  libstdc++-v3/include/bits/gslice_array.h
! 9db5d2cc0a33c9100511f30060f5bbc7  libstdc++-v3/include/bits/hashtable.h
! 13a3d132a6bab71e52a2d3af3b5d019c  libstdc++-v3/include/bits/hashtable_policy.h
! ddb9b204a4dedc774e89de355877f5d6  libstdc++-v3/include/bits/indirect_array.h
! bcc9f5642c1247e2d2717ca3c8c163c2  libstdc++-v3/include/bits/invoke.h
! 1b1bda3ff4fed85f81812a9d287c6954  libstdc++-v3/include/bits/ios_base.h
! 2efaa910577ef81bb2086b94a774628a  libstdc++-v3/include/bits/istream.tcc
! 88264c5e73779cf65cf3e28861176d96  libstdc++-v3/include/bits/iterator_concepts.h
! 9b7c0d07e9432ac9edc69cd1c6fe7b3c  libstdc++-v3/include/bits/list.tcc
! c42a12718346567bd13233cedde9bd5f  libstdc++-v3/include/bits/locale_classes.h
! dde6b13e56e00412ea36522f2d088e29  libstdc++-v3/include/bits/locale_classes.tcc
! 9b47557c0465d54213109e0296cf1d68  libstdc++-v3/include/bits/locale_conv.h
! 9e21648aef2225349d5142af6bb5ba37  libstdc++-v3/include/bits/locale_facets.h
! 91f1815040d47ced88e338b5ae9c4f87  libstdc++-v3/include/bits/locale_facets.tcc
! 25c0aa7ff5fa5a37c84bdbf120355b34  libstdc++-v3/include/bits/locale_facets_nonio.h
! c94e6d651d69ce1228285bd851eb6e00  libstdc++-v3/include/bits/locale_facets_nonio.tcc
! bd53916b6cfb8b5856227e40e60afebf  libstdc++-v3/include/bits/localefwd.h
! e643d94f8f3d4820728609e90fe33b35  libstdc++-v3/include/bits/mask_array.h
! 12759803d18a3143c9673b2d0c68cbb6  libstdc++-v3/include/bits/max_size_type.h
! 9d5dd3372b84e438e08ad5e9db100536  libstdc++-v3/include/bits/memory_resource.h
! cade9d0e3a37f9ef0746dfba8ed98cf6  libstdc++-v3/include/bits/memoryfwd.h
  7b351469ff54ea35e3e585733ed01c68  libstdc++-v3/include/bits/mofunc_impl.h
! 4b14dd9c6b47bcd92275b7eae5565f35  libstdc++-v3/include/bits/move.h
! 09d4412f8ae2610816888d0089a914ff  libstdc++-v3/include/bits/move_only_function.h
! 95d376ca9e9f8fec95af4618c51572d9  libstdc++-v3/include/bits/new_allocator.h
! 34f4e090534a50eb37116b0383cd19b9  libstdc++-v3/include/bits/node_handle.h
! 8d864c72edd571a87d7a1af7c87414df  libstdc++-v3/include/bits/ostream.tcc
! b3cc417d9bf80b45297f5caccd8e79c6  libstdc++-v3/include/bits/ostream_insert.h
! 0009396343a71305edaf2b70384c8d6b  libstdc++-v3/include/bits/out_ptr.h
! 23a6fd8c321e54ff587d296e0fd069cf  libstdc++-v3/include/bits/parse_numbers.h
! eb435bab187a1573a8b7d3ca8297ded1  libstdc++-v3/include/bits/postypes.h
! 6e5715ba617a5f0246f059bf9a9a7309  libstdc++-v3/include/bits/predefined_ops.h
! c005f46850d3b5df0f57a8470f409ff8  libstdc++-v3/include/bits/ptr_traits.h
! c1d468a0ee886f88b70ef47855bb5a42  libstdc++-v3/include/bits/quoted_string.h
! 9fecc04de83e464036e805070a7d633e  libstdc++-v3/include/bits/random.h
! afef6bb168d2a386d2dc4aaf2937c1d1  libstdc++-v3/include/bits/random.tcc
! 59fb2d3661995c86a3996a5d1af055af  libstdc++-v3/include/bits/range_access.h
! 7f038f6e1d76a0580936ce563d42d36d  libstdc++-v3/include/bits/ranges_algo.h
! 567b99dc12725a97059421ac2889bb0c  libstdc++-v3/include/bits/ranges_algobase.h
! 345c0bcd6d3225b952193e39ec5eef97  libstdc++-v3/include/bits/ranges_base.h
! 2b75fae9285c2ca3120c6d7191768285  libstdc++-v3/include/bits/ranges_cmp.h
! 5d224fa91e53e4f54ed4ccb8526d2bc2  libstdc++-v3/include/bits/ranges_uninitialized.h
! 9f51662b65ed80e42f5f6f68bf55a084  libstdc++-v3/include/bits/ranges_util.h
! a7e081671330fd3d6d40ef990c3a9db5  libstdc++-v3/include/bits/refwrap.h
! 310a26ba94975011af20323c3b2e791e  libstdc++-v3/include/bits/regex.h
! 033b17331af0c0e562ea71bc3e994022  libstdc++-v3/include/bits/regex.tcc
! c65f82851918475e6746a168a05feebc  libstdc++-v3/include/bits/regex_automaton.h
! 9cee0eb35fa466590222459a3d2f6822  libstdc++-v3/include/bits/regex_automaton.tcc
! 14e00d3a19a80946ac410cc1e3f9992a  libstdc++-v3/include/bits/regex_compiler.h
! f64f26ffe7d3c4e14c3fc9498ff3ac07  libstdc++-v3/include/bits/regex_compiler.tcc
! 9f5e9a67270f2372eb2a6c027d50d2c3  libstdc++-v3/include/bits/regex_constants.h
! ae4e407ef9be06b744708e5b1513d43f  libstdc++-v3/include/bits/regex_error.h
! df35d7d8b36a0bc46a6e5f6221ac092b  libstdc++-v3/include/bits/regex_executor.h
! 90acc349b008fe5686f4a45c99a5fb2a  libstdc++-v3/include/bits/regex_executor.tcc
! 2af9958541302c85816549931c0a1da2  libstdc++-v3/include/bits/regex_scanner.h
! ffc7507a47e4f46142f0884585cdc4bb  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
! 5109f35ca401eeff55b96d56c1f6362d  libstdc++-v3/include/bits/sat_arith.h
! 8e3a4aba69b57bbf801c0231fc5c257b  libstdc++-v3/include/bits/semaphore_base.h
! 48fe8952d8a396bf02bfe3357d15cdeb  libstdc++-v3/include/bits/shared_ptr.h
! 99a5df256c93ebb2a209690f3a69038a  libstdc++-v3/include/bits/shared_ptr_atomic.h
! 5db7072fca6e80f99c23359a988ac52d  libstdc++-v3/include/bits/shared_ptr_base.h
! 3aa5cb4e1e4ba05b6b9f2a06325df1f7  libstdc++-v3/include/bits/slice_array.h
! 8b95c6e1a7676878090a6c78eaed8631  libstdc++-v3/include/bits/specfun.h
! 566c72d79d1a38ec59d61d0ea6387356  libstdc++-v3/include/bits/sstream.tcc
! 1f0d0b5626594df88e02436048b42ce9  libstdc++-v3/include/bits/std_abs.h
! 9bb67731f54230f82a1ad7ecefad61c0  libstdc++-v3/include/bits/std_function.h
! 9e64792df36a7184f512edafa65eb095  libstdc++-v3/include/bits/std_mutex.h
! f27a6c8f663a5c81e9d27cdc149ec97d  libstdc++-v3/include/bits/std_thread.h
! 45d6d1b0e170e6b47f075bcc8f7a470e  libstdc++-v3/include/bits/stl_algo.h
! 6c2c831983f6f22024d5a5c74e6aee8a  libstdc++-v3/include/bits/stl_algobase.h
! e9bd8ff664bd942513638e50a5c529dd  libstdc++-v3/include/bits/stl_bvector.h
! 6768219e2c3fc30ed6027137aafb710c  libstdc++-v3/include/bits/stl_construct.h
! fe9f70942169304bc132f9a7dddb56b7  libstdc++-v3/include/bits/stl_deque.h
! ef1b6b4ad02b6462ce918aef51a943c0  libstdc++-v3/include/bits/stl_function.h
! 75cf6d6cb1c1d44bd3a905a9544df4bc  libstdc++-v3/include/bits/stl_heap.h
! 1ec8ed9ad45a457c50d6fc5abe95ad96  libstdc++-v3/include/bits/stl_iterator.h
! 347505b7f4c350b156cf3d2bb3093b9e  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
! 581f098137ce46bc8bcf6c0d6e825ee2  libstdc++-v3/include/bits/stl_iterator_base_types.h
! 301cb8d87f4806d1f7e31017450edd4e  libstdc++-v3/include/bits/stl_list.h
! 1570eba30b11d390ba970e2534f53d07  libstdc++-v3/include/bits/stl_map.h
! 34ac5312f223e57a26dd5c4a487ce281  libstdc++-v3/include/bits/stl_multimap.h
! d86680e177f4feb7cf161efc879069db  libstdc++-v3/include/bits/stl_multiset.h
! 669eaba4823456e8a1e6a9e197c42f3b  libstdc++-v3/include/bits/stl_numeric.h
! 447c3cf9f76b3ad6b88ca14e819ac4c5  libstdc++-v3/include/bits/stl_pair.h
! 8485f57bded7cb8f9b8b2e0fb2800e3a  libstdc++-v3/include/bits/stl_queue.h
! a3c6aa8aebb44198e86d15d59d6f59f8  libstdc++-v3/include/bits/stl_raw_storage_iter.h
! 3d31700ac326c163f7b606ab559287ed  libstdc++-v3/include/bits/stl_relops.h
! 36f2f9e594167ba600957d9059ef8136  libstdc++-v3/include/bits/stl_set.h
! dd78226efec632a1bf11d226184d7549  libstdc++-v3/include/bits/stl_stack.h
! 7add382d24ec7f9da1e6868f030e1182  libstdc++-v3/include/bits/stl_tempbuf.h
! 277ea4cba92cae0214f9b97fd114b02f  libstdc++-v3/include/bits/stl_tree.h
! e61ef36592961485fe7157cb4e460d5f  libstdc++-v3/include/bits/stl_uninitialized.h
! ba4a4db569ca433b6c74c4f5877c31e7  libstdc++-v3/include/bits/stl_vector.h
! efd6795d1859818275b215954d81b08a  libstdc++-v3/include/bits/stream_iterator.h
! 418d6c0a63477cd40da6d48bda8fdaa2  libstdc++-v3/include/bits/streambuf.tcc
! 44762e12d54d406bf2cc6315533a8b09  libstdc++-v3/include/bits/streambuf_iterator.h
! 9a0877aee26745b7bdf5574f5f54b0f2  libstdc++-v3/include/bits/string_view.tcc
! aabd3614c1c5899178db20dddafc44c0  libstdc++-v3/include/bits/stringfwd.h
! 2eaea6618dd32c781462a159568c3920  libstdc++-v3/include/bits/text_encoding-data.h
! a4af1fa2d1034d27940b1ddb0d865807  libstdc++-v3/include/bits/this_thread_sleep.h
! e44faa2816a5abc669c4063837761dc4  libstdc++-v3/include/bits/unicode-data.h
! f8297e38386b0effc7f5f871842e6c82  libstdc++-v3/include/bits/unicode.h
! 2a07c5fd938c277d16917fa79db295da  libstdc++-v3/include/bits/uniform_int_dist.h
! 4c0ff2b76d8499d565fe166dc5782d62  libstdc++-v3/include/bits/unique_lock.h
! 38a4bccdbcd2c7c0ff6de9bf760f0a49  libstdc++-v3/include/bits/unique_ptr.h
! 04290a2b4e2eb981a7a071c4d01f074c  libstdc++-v3/include/bits/unordered_map.h
! 3493a96931461f30454b667f434197ad  libstdc++-v3/include/bits/unordered_set.h
! c4eaa17487280545ea73bc9386afcd4b  libstdc++-v3/include/bits/uses_allocator.h
! 5a8903147199f3d96ed4c5bbb409cec3  libstdc++-v3/include/bits/uses_allocator_args.h
! a77c524b65951d9871c6f58839e8080c  libstdc++-v3/include/bits/utility.h
! b051e1657f96388a3e7d5d0d670145e5  libstdc++-v3/include/bits/valarray_after.h
! 82dcb52b808193fbc7db29b11ae3736e  libstdc++-v3/include/bits/valarray_array.h
! d2c6eb67d615d7d096f492b22eea4b6f  libstdc++-v3/include/bits/valarray_array.tcc
! 296f16b1a6f6cf57ecd784ec331fc19e  libstdc++-v3/include/bits/valarray_before.h
! 8dacd060c8a95a7b930ed92f92346489  libstdc++-v3/include/bits/vector.tcc
! 72c1583117af62ffac48dd46e96d81ab  libstdc++-v3/include/bits/version.def
! 77d1cb80b864fb3a8bbbb1a2776fa669  libstdc++-v3/include/bits/version.h
! f6488e249fd41122a0aa656a7b88f669  libstdc++-v3/include/bits/version.tpl
! 23670bf0ed7006b56169654e79313316  libstdc++-v3/include/c/cassert
! 54f4af5417eacea0760d6a9554d593bc  libstdc++-v3/include/c/cctype
! 2df3c3133e44fb2a2a2434bda206da7a  libstdc++-v3/include/c/cerrno
! 84627944527963ff4c54b0d900534c78  libstdc++-v3/include/c/cfloat
! 6ed10426a0959f42658a0c9ba1d137f0  libstdc++-v3/include/c/ciso646
! 92eb5c2363da6bd840bf4197796c40ae  libstdc++-v3/include/c/climits
! 0b3a53985d050ab75696b3c5df4eb661  libstdc++-v3/include/c/clocale
! 8452199d589809a1be94fd30d7ceeb21  libstdc++-v3/include/c/cmath
! 2efc61e6c5cbc7998240ae25f74e8b93  libstdc++-v3/include/c/csetjmp
! 3829c95f4b4b2678e60129a88b3a10dd  libstdc++-v3/include/c/csignal
! e9f6d30666bd5a1ab7d3e874ba19a8d7  libstdc++-v3/include/c/cstdarg
! 73aa32f6923d8cea0fe42ce79705507d  libstdc++-v3/include/c/cstddef
! 2f1b6b5ac631d59e4f740de51476c4c0  libstdc++-v3/include/c/cstdio
! 78373725669ed412c4dd008bf32bdd3d  libstdc++-v3/include/c/cstdlib
! d8c7075bdd48966c868c74cb5298c5dc  libstdc++-v3/include/c/cstring
! e8053f56c6dbe3c9ccbe86c19f3d4113  libstdc++-v3/include/c/ctime
! 9714fe3168ec6843fed5d7125d09cbf8  libstdc++-v3/include/c/cuchar
! 4af52e631cbdfd92761d52e4bd15a9bc  libstdc++-v3/include/c/cwchar
! e3b4cd63231436be25cfd5e16955e65a  libstdc++-v3/include/c/cwctype
! e3f4d14a1fcaf80b68bf6b4b8f8a48af  libstdc++-v3/include/c_compatibility/assert.h
! be6d1e5201a742f292e1270122292512  libstdc++-v3/include/c_compatibility/complex.h
! d7d7cc40b27e71e52d8aeb3493abc2a5  libstdc++-v3/include/c_compatibility/ctype.h
! 631576c56a16c83ac7d51f69fd1876ad  libstdc++-v3/include/c_compatibility/errno.h
! 36b7486810c69f8512a1d596d323a820  libstdc++-v3/include/c_compatibility/fenv.h
! 024de6d64d155e81882adc479769cfa5  libstdc++-v3/include/c_compatibility/float.h
! de6303666b4c7c40e9c6884997a8e624  libstdc++-v3/include/c_compatibility/inttypes.h
! f98008587ccc670a7a33da802bf53fc1  libstdc++-v3/include/c_compatibility/iso646.h
! a7962f58ce6936bada4903e0e459cf48  libstdc++-v3/include/c_compatibility/limits.h
! abd11dd3947209f696f94d932cc332bd  libstdc++-v3/include/c_compatibility/locale.h
! 277b861b9392ea4259113718e894d637  libstdc++-v3/include/c_compatibility/math.h
! 0b55ede415e9caa3e3362f45eb2ae23e  libstdc++-v3/include/c_compatibility/setjmp.h
! 072501af1fb92f6c61d905a889e23d55  libstdc++-v3/include/c_compatibility/signal.h
! 3ae16230a91e5f8f915c4572dd2de92d  libstdc++-v3/include/c_compatibility/stdarg.h
! 82ef81a07b08ea6af29c9d0e869bfe35  libstdc++-v3/include/c_compatibility/stdatomic.h
! b7d1a1feade359b17536b80612f1a5ad  libstdc++-v3/include/c_compatibility/stdbool.h
! 4779b1da6436870feccffd045fb554ce  libstdc++-v3/include/c_compatibility/stddef.h
! 7242a83084ab38257ea91cd3ff50b5af  libstdc++-v3/include/c_compatibility/stdint.h
! 427dd11a3c37411d439ac8c467768e3c  libstdc++-v3/include/c_compatibility/stdio.h
! 1f96f7dcc55c9928a1405539766e004f  libstdc++-v3/include/c_compatibility/stdlib.h
! 10d40f8521065341fe8eb03f41634f86  libstdc++-v3/include/c_compatibility/string.h
! 027148dd221784803c38ff54c4c4212f  libstdc++-v3/include/c_compatibility/tgmath.h
! 65ca4e8e6d8c4b2d69408647855ab97a  libstdc++-v3/include/c_compatibility/time.h
! d913dc948f08b7df8d9a0024fd18c37a  libstdc++-v3/include/c_compatibility/uchar.h
! b72c37dc86c490639a2976978066d096  libstdc++-v3/include/c_compatibility/wchar.h
! 3e61cfb85ae04eda04cb50276900721e  libstdc++-v3/include/c_compatibility/wctype.h
! 693781d7558908e907bac069fed5a110  libstdc++-v3/include/c_global/cassert
! 30532c35715ba7d23b3f554dab056a5d  libstdc++-v3/include/c_global/ccomplex
! 1fae8a9c7cc3b347ea5a12699791dcba  libstdc++-v3/include/c_global/cctype
! c677010aee0b50c55f5b70be2ad47c5a  libstdc++-v3/include/c_global/cerrno
! 1066b00c39e9541315b1ae6b71cb5b54  libstdc++-v3/include/c_global/cfenv
! 374e538fcd462706593d43f6709725bb  libstdc++-v3/include/c_global/cfloat
! c80d9a347ff1313df6f1fdcd6738adee  libstdc++-v3/include/c_global/cinttypes
! cab8280692b763d2480d948d43977c57  libstdc++-v3/include/c_global/ciso646
! f010c5f8d1a591217c31fc2e8c98364a  libstdc++-v3/include/c_global/climits
! 11ae858532969bfcfdbf40b0ea36cdbd  libstdc++-v3/include/c_global/clocale
! 12af10fc4d57615f33f4508f84d51149  libstdc++-v3/include/c_global/cmath
! 781951ffe444c3ebf3292bdd1385308d  libstdc++-v3/include/c_global/csetjmp
! d96a9a65818e7398cbd8731a87c642c8  libstdc++-v3/include/c_global/csignal
! 48b7524df7011e4d38f9ee556a9cc265  libstdc++-v3/include/c_global/cstdalign
! 0e216cc7f8e47ce8fc1a1e152a24d506  libstdc++-v3/include/c_global/cstdarg
! ef0a25a8c955b22abeca1d5ed8f2bd24  libstdc++-v3/include/c_global/cstdbool
! 571816f152edcb2e136ded3470501512  libstdc++-v3/include/c_global/cstddef
! 082c2346333c9ca86142dcd5511f508d  libstdc++-v3/include/c_global/cstdint
! 70f0252c98fe3660f9c2b580df7cdd76  libstdc++-v3/include/c_global/cstdio
! 8821805a0bc27513136837fac4843918  libstdc++-v3/include/c_global/cstdlib
! 4e815d74f97bf9ee96317c5651d1543c  libstdc++-v3/include/c_global/cstring
! 94c8da7961687c07941270968b00aa79  libstdc++-v3/include/c_global/ctgmath
! 972332aebf79e73163f67bca686de8e2  libstdc++-v3/include/c_global/ctime
! 36cde9dadc3eb291a819527123adf1ed  libstdc++-v3/include/c_global/cuchar
! 2e7c2f516f75f53625dff0293849460c  libstdc++-v3/include/c_global/cwchar
! f4ee79055fb5596bb16c419be85509e9  libstdc++-v3/include/c_global/cwctype
! 331ec3bb13927d93bc6ef3f8162d2ed0  libstdc++-v3/include/c_std/cassert
! 94d294f92fb730e3858d2709c2388830  libstdc++-v3/include/c_std/cctype
! e85e2ac62597e3e2b3181d8de9205eb8  libstdc++-v3/include/c_std/cerrno
! 99d5a48234a3d7e3ea14f0f2e579d4a9  libstdc++-v3/include/c_std/cfloat
! ff135a8cf8f6aba8a8d5843d14be1942  libstdc++-v3/include/c_std/ciso646
! 60be1df03d7186e574b08541df97c240  libstdc++-v3/include/c_std/climits
! e744820407fa14211ba1f30b86eb8ffa  libstdc++-v3/include/c_std/clocale
! 7b568979baa41c93dc28ef9ae162fe02  libstdc++-v3/include/c_std/cmath
! d3d173d37e9f3026c4b3f01e3480525d  libstdc++-v3/include/c_std/csetjmp
! d8dbf112bb9290ddd3a6ee266e9e0989  libstdc++-v3/include/c_std/csignal
! 2b84f950d1e2134b2c086b11f1fa0395  libstdc++-v3/include/c_std/cstdarg
! 0ac4761a445923cd65c04b906a76e07c  libstdc++-v3/include/c_std/cstddef
! 570d0d6509ff84bffdeb708bb7679399  libstdc++-v3/include/c_std/cstdio
! 3095e2d394c4e247f24b3c98a8095159  libstdc++-v3/include/c_std/cstdlib
! 332e8ab4628f6e405c3125a6ee0befa5  libstdc++-v3/include/c_std/cstring
! dd35cc66b31ef00943a3b208426fa665  libstdc++-v3/include/c_std/ctime
! df0e4d4bf0b66c949e2dce53ccaaf3bb  libstdc++-v3/include/c_std/cuchar
! 15fc74577cf2551986054fd39a26781e  libstdc++-v3/include/c_std/cwchar
! ee74413df0a8bc505a9060e5a75e0d0b  libstdc++-v3/include/c_std/cwctype
! f521398f6fa3640575b0c7fa7c562144  libstdc++-v3/include/debug/array
! d24f799ff610eeacd7a5237b9c0114fe  libstdc++-v3/include/debug/assertions.h
! 51c1a956c00e85e8991162aae7cf290a  libstdc++-v3/include/debug/bitset
! 0a57c7893084ad84a6659d59c4b881dd  libstdc++-v3/include/debug/debug.h
! f7cb15b4df02db39cbc450028a5f5d28  libstdc++-v3/include/debug/deque
! 6740b9085c1a6d638fbea3d70f3af66a  libstdc++-v3/include/debug/formatter.h
! 982517bc91bf90a590a2f20cd6a9f694  libstdc++-v3/include/debug/forward_list
! 9f6b9d9c2da303170800014dec853a00  libstdc++-v3/include/debug/functions.h
! 26c7990d8d8468253c6f89ce422d4264  libstdc++-v3/include/debug/helper_functions.h
! 837aa476c7a6e417c92db36e681816ad  libstdc++-v3/include/debug/list
! 9a16f34fe6ac47fcf828dcb897146181  libstdc++-v3/include/debug/macros.h
! 09135ff9ccf3396a35c7f86453e27556  libstdc++-v3/include/debug/map
! 62afaaf1c1e3f38b9ca841a4cc6cf694  libstdc++-v3/include/debug/map.h
! 872ca50aaead5a81a7674351ecf70c5e  libstdc++-v3/include/debug/multimap.h
! 079f1b1402b2134fe7c805d9dda8725c  libstdc++-v3/include/debug/multiset.h
! 0fff6268b8deae15594f92597d58ce01  libstdc++-v3/include/debug/safe_base.h
! 36f4be9332cd75fa9a9f3a7bc5a294eb  libstdc++-v3/include/debug/safe_container.h
! a04a8e4b886ad501fa11540de9500d42  libstdc++-v3/include/debug/safe_iterator.h
! 1f077ff09176366347bdee9fbf7184b1  libstdc++-v3/include/debug/safe_iterator.tcc
! d127ca181f9a4cbbc0ce354b91e44725  libstdc++-v3/include/debug/safe_local_iterator.h
! c2eaf97c9be3bd4b6d17666620c9eb31  libstdc++-v3/include/debug/safe_local_iterator.tcc
! 0b4542201e3a6625bd0f6782e7fa14bf  libstdc++-v3/include/debug/safe_sequence.h
! f22648c884fcc8ca260a9de47a8d83f6  libstdc++-v3/include/debug/safe_sequence.tcc
! 5b764db7b4712754937141098cc1e04a  libstdc++-v3/include/debug/safe_unordered_base.h
! 6534434ba435b12b8f0fa65bdee4aa5c  libstdc++-v3/include/debug/safe_unordered_container.h
! 72d9d9d8361816a9acea1eb5c954c055  libstdc++-v3/include/debug/safe_unordered_container.tcc
! 8c5997f8e06e60d4f2a838dd91cc2b32  libstdc++-v3/include/debug/set
! f83d447a53d85056ad297bc4a591eee2  libstdc++-v3/include/debug/set.h
! 5fb326fb0c8fcaf085a15ed1e64d8b05  libstdc++-v3/include/debug/stl_iterator.h
! f52773926bec80a14b887f6f37f7063e  libstdc++-v3/include/debug/string
! a1c883c703ae766a2c8e3e79dc40cd89  libstdc++-v3/include/debug/unordered_map
! d05c6ba14662d29d175132ed452ee488  libstdc++-v3/include/debug/unordered_set
! 8a3e0d1c4c7dcaac51ed1b7659ee94a5  libstdc++-v3/include/debug/vector
! 0eeaffafba0ad61f2e39fda7c20fa114  libstdc++-v3/include/decimal/decimal
! dfb20b1cf5aa27a949a3c3d622dacfdc  libstdc++-v3/include/decimal/decimal.h
! 34b1d0e414f6860af8dae4e532d023cb  libstdc++-v3/include/experimental/algorithm
! 0d30579364e1b70b41aec68925559a15  libstdc++-v3/include/experimental/any
! 96ced455e776540503c1d6fad1e0e4cd  libstdc++-v3/include/experimental/array
! e4ec1eab5037eb8b85a8b902bcf4a638  libstdc++-v3/include/experimental/bits/fs_dir.h
! a888015e519a8214f2eec377b8e21a90  libstdc++-v3/include/experimental/bits/fs_fwd.h
! cfd2a9edd0c254830542ea6fd2516e3e  libstdc++-v3/include/experimental/bits/fs_ops.h
! 28413c042c57c2f8597cfea3fce94a2d  libstdc++-v3/include/experimental/bits/fs_path.h
! ae92c612b39c5b2d9ebda806c103566d  libstdc++-v3/include/experimental/bits/lfts_config.h
! b4f1485dcbba5227bd21d747051cd3c9  libstdc++-v3/include/experimental/bits/net.h
! 53eaecc7c02b5975d54303c9ec7e8b7b  libstdc++-v3/include/experimental/bits/numeric_traits.h
! 5ab3bcf1b9e5c364d5f0635878087774  libstdc++-v3/include/experimental/bits/shared_ptr.h
! 929e82136ee0596bec1cca9fbe353672  libstdc++-v3/include/experimental/bits/simd.h
! c65dba8dfe2d1409f5f3f76299571c5c  libstdc++-v3/include/experimental/bits/simd_builtin.h
! db8605784f99a1ed93cadfa02b3cd3f9  libstdc++-v3/include/experimental/bits/simd_converter.h
! c47df7723e8782c23a304878c539ea67  libstdc++-v3/include/experimental/bits/simd_detail.h
! b86ae045e7b2316c4569899337551cb4  libstdc++-v3/include/experimental/bits/simd_fixed_size.h
! 5ce895208c4531bccefadc6c750a9a39  libstdc++-v3/include/experimental/bits/simd_math.h
! 29100652632481444f7fe659de3a191c  libstdc++-v3/include/experimental/bits/simd_neon.h
! 48133c973f6ea03cf9f880072072b6bc  libstdc++-v3/include/experimental/bits/simd_ppc.h
! f2402a57e71eef7877bf462b6c358eff  libstdc++-v3/include/experimental/bits/simd_scalar.h
! 82cf5cd853fbb734d4d3834ef245bf9a  libstdc++-v3/include/experimental/bits/simd_sve.h
! 9bb83c868acc71d551aa4c333a55022b  libstdc++-v3/include/experimental/bits/simd_x86.h
! ab91326e5930f95f72935ad20777c31f  libstdc++-v3/include/experimental/bits/simd_x86_conversions.h
! 18a276ea9d0ccebb01181a440a52bd85  libstdc++-v3/include/experimental/bits/string_view.tcc
! e3336e858a7ad37f004eab79f3824272  libstdc++-v3/include/experimental/buffer
! 833a83391217ee746ec521805b1d9104  libstdc++-v3/include/experimental/chrono
! e899dca1c9f3c490121f059949584c86  libstdc++-v3/include/experimental/contract
! 29b87177f87c58b671648cfb61f10573  libstdc++-v3/include/experimental/deque
! 3dc52d62b639aff15f1b3b9eb01cff1f  libstdc++-v3/include/experimental/executor
! 6259d676d4dc43ef3c15483921c40485  libstdc++-v3/include/experimental/filesystem
! c2ff338550ccbf963a085a075ff4ff20  libstdc++-v3/include/experimental/forward_list
! 8acd763c2072ae05411cefeb5b2609c0  libstdc++-v3/include/experimental/functional
! e41850570c27023a0a34171070f569cc  libstdc++-v3/include/experimental/internet
! f456649fb6591962fd7bfbf718afc36c  libstdc++-v3/include/experimental/io_context
! cf8b48d1f3b3fc46fe3c76830900edc4  libstdc++-v3/include/experimental/iterator
! d7784c5cff4280995ed043cf6f5436e1  libstdc++-v3/include/experimental/list
! 2be89af810fe75da80928855a81934b8  libstdc++-v3/include/experimental/map
! 4e8c9b3b1bb6e89c4cd76b6c404e9d27  libstdc++-v3/include/experimental/memory
! d4c8e3bda735288fb5950eb0d8956f7f  libstdc++-v3/include/experimental/memory_resource
! 4b71511332e468093db4a3db2d251367  libstdc++-v3/include/experimental/net
! 07696c41cf06e5d4f748ca07ed6f3345  libstdc++-v3/include/experimental/netfwd
! e56e48c7f8fc42482f55e2e1056b104f  libstdc++-v3/include/experimental/numeric
! 736ae01964793c0e11d0d0a36fe525a6  libstdc++-v3/include/experimental/optional
! 04d36c50677135ed5a5aa87410ec5616  libstdc++-v3/include/experimental/propagate_const
! 794bbe46bebc02562b30df30e6fc99a1  libstdc++-v3/include/experimental/random
! 550fa3221837175029779b27f4400093  libstdc++-v3/include/experimental/ratio
! fae1d322957b12f64d2d19b6b5de2385  libstdc++-v3/include/experimental/regex
! 9ef336527518f525a32383cb01802744  libstdc++-v3/include/experimental/scope
! bbacfc523f4934712db0d6559231d931  libstdc++-v3/include/experimental/set
! 21dff58555d5f3507a70c94cf61343cf  libstdc++-v3/include/experimental/simd
! 57d3a675dc2a161eb614d2b504a72618  libstdc++-v3/include/experimental/socket
! 6eeadb4433dda65a03645509a28f7e43  libstdc++-v3/include/experimental/source_location
! b5487b9d026a6e21097ab306b21e0ed7  libstdc++-v3/include/experimental/string
! 93768fd94e0f2601098478654536d42d  libstdc++-v3/include/experimental/string_view
  bde9aafc0ea69c3a16afd39f5eb2e5db  libstdc++-v3/include/experimental/synchronized_value
! 3d36743e60218a6846d3ba5bc4845e86  libstdc++-v3/include/experimental/system_error
! 4f10bc29992a731e2e65d0abe5f79877  libstdc++-v3/include/experimental/timer
! 4ccf63f0049dc26e6951a19c23809439  libstdc++-v3/include/experimental/tuple
! ff1022cc8b5f399bac0083693832072f  libstdc++-v3/include/experimental/type_traits
! 684d3c22de05109a8e439989c503d54b  libstdc++-v3/include/experimental/unordered_map
! 57588afdd89f0f146643b686f65e4410  libstdc++-v3/include/experimental/unordered_set
! ce0c3e001cbb8da6b8967364fdb31115  libstdc++-v3/include/experimental/utility
! d1ed718377b49db625dc5c696178ccd0  libstdc++-v3/include/experimental/vector
! 3bbb40af014d88fd0e28cb3c9aaad38c  libstdc++-v3/include/ext/algorithm
! 3a28cf83ad8818dcf321ab6e6d100de9  libstdc++-v3/include/ext/aligned_buffer.h
! 4e95fe1cab659e9b7ff3bea962f03293  libstdc++-v3/include/ext/alloc_traits.h
! 730b78abb06ca021c19dc15987fdca1f  libstdc++-v3/include/ext/atomicity.h
! 75504e7eaac88056c12bc15e6b2b38df  libstdc++-v3/include/ext/bitmap_allocator.h
! 05c0a091b13d83106f4363c15f79253f  libstdc++-v3/include/ext/cast.h
! fe7c2fa7f568ac304162fc1c4a387e5c  libstdc++-v3/include/ext/cmath
! 5080305abc45e50cecf35717098fce89  libstdc++-v3/include/ext/codecvt_specializations.h
! d6fe011aca0694cab9812c194d852591  libstdc++-v3/include/ext/concurrence.h
! a1500f84916331e29957c833c56c8697  libstdc++-v3/include/ext/debug_allocator.h
! d66a1dad7896ebdd469b41eccad92436  libstdc++-v3/include/ext/enc_filebuf.h
! 1ed63af94ccf46eece63101f1df86b59  libstdc++-v3/include/ext/extptr_allocator.h
! 3dab5e94eedfee9e1f255d217856b3bc  libstdc++-v3/include/ext/functional
! f5a092277117995276384fcad72b945c  libstdc++-v3/include/ext/iterator
! 78fca3b3679fb2b84237b0f3f535e4ec  libstdc++-v3/include/ext/malloc_allocator.h
! ee80063489b1612b14cc6c0ec3b28dab  libstdc++-v3/include/ext/memory
! d09114f4a70a71545359db131b65d534  libstdc++-v3/include/ext/mt_allocator.h
! 1c2c54daea91e6a52bf9aa7e0f8e413c  libstdc++-v3/include/ext/new_allocator.h
! 3919afbb386acfa22abd43c72e49bc94  libstdc++-v3/include/ext/numeric
! 0275fd08d15420025b39bd415f5dee1a  libstdc++-v3/include/ext/numeric_traits.h
! a5d55d93dc72cffa5cbd8185aac86fc5  libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
! 32436ecd1254b1231c2cf0218ca6e4b7  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
! 8ecfe723d3a66d6e2f91e164dde544bd  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
! 485c56f939502f834e41dab350633ded  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
! 4ccb8267ba64d07c9f2c7e23613da7bd  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
! 9a2234f066d4deb2dda76db188879071  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
! c0205ed662e8d7a58f596a2048ca91ca  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
! 1c914582b60c416ef1239a489a195633  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
! ccf114f0fd036bdf73f073958a1bec8c  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
! f830efa045d77f424d2a1bd267ff5e66  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
! 35e079758b1f1532fea673e91399ea73  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
! 43a1cfef8d588296a9956c0c1f89ca66  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
! 236f904e8e0b4b0c416274fd83b72b77  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
! e20b00721d138621c180e7d12c23c86d  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
! d825969105077199f71241414376d967  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
! 712c30b0b74ab7b6c4f37df827d91fc7  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
! 782e701c250a8c0a09ef59a0102101a8  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
! 452e3a4710dd5893f013645c15f4e5b9  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
! ae63d67ee28750a37c7690c9813191ac  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
! 76f8fcc82bd4ba26ba87f9a96d145010  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
! 9348ec96e8e9192ea6708b0fdb03e82f  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
! 3d54c4e2ca49f604b0fab4ff5d2ce12a  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
! e0c031cf6e0f8b621bde2cceeaf0e916  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
! 71f4366be0e5ebf53eb67e72b3a4bebd  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
! 51e4dede732addd49c38e41e6df73c43  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
! 407ae8f5963bcc49dccae382c70a3d69  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
! 93c643969532ac5eec3f77c35eccbf81  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
! 6eec629fdbc6628c47a75c64dba00e19  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
! 2adea4b026b769417bf9c145ae86750e  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
! 761c777e1097cd02f3222d61772270ba  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
! 0fd7282f18e3075111df7e62d702e775  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
! 71fe729c1fe248edeac35557c770e585  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
! f4e43715111983f0010cbc8909dceb99  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
! 8013c4f1b140b18af1f41926255099ff  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
! 186df938e49783a587e4a2cc3b414155  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
! 24a56bed9b051e3bdc545bc8ec30d232  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
! 4e3dafe28c7460f0c7c3143285ac742d  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
! 63cf6f3e96f8411b0d9dbfd673e044b9  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
! c442bcfae58f635b155b06905ffa4d75  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
! b0ce5837f20281963163f9d3f6f7f957  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
! 78468cf7e42283f37661b14209cb8f44  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
! 0ea438ec405e35ac9236f553cfa87d16  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
! 097e4e7c8c584d3737600b1907e0fc80  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/branch_policy.hpp
! e41375619efa70507088200553461505  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
! 69a21fd6929d0e2634209f1bb498b6f5  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/traits.hpp
! 9c40248567af672084d3649a60934822  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
! 798553d8c7a4847132b1ee1bb9992d41  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
! 69a2d0f241c45e983dc0a4fc3c9a8dd3  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
! 74ec3a3f56485bd86e00e22fce62fcef  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
! 77bf265364b69e1db6bd0a03b8fc4bda  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! 60642a8b459bc25a202f8559d14d7a18  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! 3af00bf47c1fd39f282828621b0b2bbd  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
! 5fbc7d34f92316ab264fbe427ab55837  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! 5af167e2b7b86c6cb850a2ac5d10d0a8  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
! 975f67ab80491f8cab2ad7785a442f59  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
! a0d5bd2b2ea456fb516cf8c38cde4c73  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
! 94922e9759f7c7497e203937bee81e9a  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! eecfff88c368c589f8ff0c3358cc2ca8  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
! b30e49a11ac7a23171c8ddecf1bd0487  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
! 425769404eebc15f283294e347d61632  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
! 01a04b40ad302aa50cd49d952edceef5  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
! 6950be3993c7e2743e4a4fac3e614edb  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
! cb16069d16843bcfc18c408b07b4557e  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! b8c553665ba02f3a6ed03581803365de  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
! 14a0a67405852518a30d4275321980f6  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
! 1914a8ae190fffb383cc04ab60a61208  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
! 927b9ec6ab508564947f5af592e6e200  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
! 7f5bd5948d5c06db5c9480439c813e77  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! cba3cf459b023aab0eca85e03166fece  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
! ce17539923865074ea41dde6f74ef4cc  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
! 1b05c5b9f993a694c3929dbfc95b94c8  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
! 311fbe104acdc074563abbed10ac9205  libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp
! 73f8f7272db114fc8512598e9b8c14e2  libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
! 1f80022adbd6cae256bbbbf405962623  libstdc++-v3/include/ext/pb_ds/detail/debug_map_base.hpp
! a18584ab44db679bd2520e340fccdd6e  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
! a1113262a3d246573c4a8f37afce4c8a  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
! f0ef9b07711e12e917e50e47e4a5cfa7  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
! 4ef8b730e64dd21aa7f3cc59ff534372  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! c033441890a5530e1fb02eec9b0b5f11  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! b48e49d220d917c91905e9b15d6843d2  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
! f05d40f753aa99194515b779295471f3  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! 7fe2312475824ff8abc7f5ffbb420824  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
! b1c2b17b687d8e77b5c5490fb2dc9b3a  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
! 2c870951f6b292f6448ff48bf0c66b13  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! 0073e1a7dc9de355b8a186e31d21341f  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
! ce03aed20f80de885708cce5f68686fc  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
! 1abc2043d6fd0c851ddf2a201ab75347  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
! 65015f104fa35cf33513a0891d9ccaf2  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
! ed29a7f1221d8f3db9a6ec3874cf3adf  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
! f774831f9ca92138e8951ae6b2c38420  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
! f3305ffca4da62ac242d567bbb4fef82  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
! 27fe1b41895bc26fe249fe93a67c111d  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! f7142efdaef5c8ef8963b5a2d3586acd  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
! 93068b5ad1078762f1baacbeacd511f9  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
! dbb5af41664ca699a8fd51cbe2eabdc0  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
! f89165333043b386f1ebdce65c63401b  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
! bff033895a4a7b86ec39399b1b8b6efb  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! c7beeabba7ae5eed370f88840d3b232e  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
! cb956570ed3afa43a3416e32bd6eb269  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
! 8a383672db3ad84b9c13b9c84d3dba39  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
! 2a39ace6efb140199ed3ccca5fe8361b  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
! cbe12d66f303ad4533c8645f1e8f7ab0  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
! db225b1aa1f05fced3a27accc81ee19f  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
! d89f5abe97ba4a1329c8bff48f780f86  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
! 64117e58232d4fe39d9b9fbc5686ffb1  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
! cbf186c6ec460298cdc0dadbc956135a  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
! b426a5193b41ffd9dd4895711add1e35  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
! e6a55e89430431242c752a66f13c26e5  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
! b6c39e00c22dd988222bdccec73e2589  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
! c46ce34eaa227243b95d8d69c6c7cda5  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
! 45534c6ffc562e1b41e4016a9ce46c19  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
! a691798e62c244d4b24f987fe8d37ea6  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
! 97ae84d9ae5dd0fbdca298050b3ac7c8  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
! 85e4cae8a60fdbec26b3740e7f85cf34  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
! 064829abf4ff7151be88efc0f9ff5e49  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
! b965f737b34af4aa2399839a74d5697c  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
! 69ee7f796ea0527fc9a4e5c81c074804  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
! 9c9a270f305a26092ef7b992e94c50a7  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
! a879144f350a7451fee48ca2b19b5ad4  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
! 45870d32eaf5da17b1688d02bb0f56d8  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
! 238dfba386a01cd4af2f3417f7341ec5  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
! 998c042c6d50fd360785979caee82a8e  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
! be1c0f9e5684301c04ee7b0ca16e6b14  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
! e7ef82868adaecf68d657ac803bb796e  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
! b808ab3874567bf1a30d2c28d5a514ea  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
! e8b4e366469d2e46483c396bfde70250  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
! 6911ea0190cae08f2fea54cb4ed0b31f  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
! ed39155e2d434ca54c86ac01e0a9f8f5  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
! b46bbfd7c010c3690f4190a07f1c1d53  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
! 43183c8aabf5a39f0ca69f1227dd76dc  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
! de561215c548464421ec08dc3a25f4eb  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
! b94ed39ff54ec7551ffb675b480981c8  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
! 962704f2c71c079e60fd8e88f0dab3ec  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
! 87e0eac58592cd7993c6f41b49b97170  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
! 43384c67f61e6d5e8450d4539d2d4eec  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
! 1b1234f40a19e518225ad56536b0249a  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
! a666f8208cc117e0892b091a1bda6a15  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
! ea744dac9a06874cfa78625da18588d6  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
! c19e78525b84b2e45423e1e215430be5  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
! 90573ecaaa5786ade4f6b2d444af1d0b  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
! 209c9f6988c8c8ab805c1b86af0306c4  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
! 9937e96f3e0c12b7eed2269a6029fcd4  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
! 5c455ff9fca7b822bd65701da447d8b4  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
! f329e801f512d99ccbcf8f99dd7ccc39  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
! 8824ba26da055500a4b748d2a3e4747f  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
! 142bb8546852407c9bb27a25bcd46efd  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
! 3870e16d04ce171329a728c4b79f0138  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp
! 21e8372f530f1c8aec0cdd36b7d914d8  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
! 239bc42143d66803d3aa43792ca8fc45  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
! bd93a6a3c7f7544b353754ef48dea18e  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
! 4c523f2c83087683b07a5fe4e2cf618d  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
! d0ba596192e1f557d15e3864b1cba49d  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
! 668aa2cece0ceaef7e0aa9d39f0aa9bf  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
! d30edcc3c27fa33a9d9931eb8796ca65  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
! 0d8afdae746e88b791b103241445dd7d  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
! 6bc9b596792d3d46bc25ef54918dff7c  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
! d97dc6fffbe6106f4c13d9c168222939  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
! cc4e25bcb6979cc19ff3c5efb9fd9356  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
! a939d0de8d7bcb72f54dd6b62c731e44  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
! a3192b27ba7cd7dc37d22d0e7ab62093  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
! 7d8f9b7786bd59faaee5c2090872dc29  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
! 09cd9a608e620d11f1805dd73e43e277  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
! 54224bafa2d3bb273ed1a4cae2dd26bf  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
! 6a7a5a0c454267a579efbc5b04bdeb79  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
! 074ec9cd96a91c27dfe85b400df0dd83  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
! 9d4d14604e668bf25e6ced988725dc07  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
! 04bdfd538420e835ca06c67d75bf253b  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
! 363b18743986330cd014c5bb7f4deb43  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
! bc41b718b4004c51d08259b3c249c30f  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
! 7e13718400089b60b5d91965fd44bc50  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp
! 30ae07808ce5e82ef4437d2cc02cbcb8  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
! 143387acad054db3f10f64ae9b60c616  libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
! 4e2bccb40cef04ead33e32611cae809f  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
! bdbfd8a1f469f4d844c04a3ee1c10608  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
! e424b55527b4225e3233f2350e4a507b  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
! 2408e3bb96eace5c00ef704fd5899733  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
! ff0501b3e5ffa1ac5e11ee06e5b1f68f  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
! 010b7db33f9995955e81994bcd61aa4e  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
! 21d38b0daf65ca37177fa2e1db877d2a  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp
! ae1ee13cf18cc1fbfaa00bcf907545f5  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
! 1c1f83939805738865b139274f753554  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
! d83f81b3d97d76e2a82a680587c36585  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp
! 588ea61bd062a960d38aea6d924ec9a1  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
! 1797cfa7f160a94c10edd450f94dcd53  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
! b76073f244d73e5bb1a73785051e38a8  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
! 645691362194b118f45a6badc3d78ab0  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
! 2cf519b416d44d9980e5be6adf61921c  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
! a715624876f609c5624f8d05e05e8b9e  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
! b40c7bc3c6d1c22e9aa597a217b3f76a  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
! 3290a57a090b86fb7c157eb0e3f5e9c1  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
! a5a496e3820c01d40ed72eb1d516bb7c  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
! b8ddaf892ab83bbc04457ff6b34411ac  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
! 26a1e06470a755505feb85bad8fcdd09  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
! 8a9f7ca7b753f158fa447fd10a6b0822  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
! ae0b622e0e27a450ba01bab4a4523158  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
! fe5b4bd0afdd11bacd8e621062139b4d  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
! 64dba7173ff1854d43ef4fd3bf669b55  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
! a857c452a93d21b889dcf5fa5ea297d6  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
! ad3dc2f6163bbc11156270480d978fb4  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
! fe6422602e99c01a9637f665b3a49962  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
! e06a98dbfb8e6aeb5c7eddefc09bce7d  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
! b4ad2c2aa09569557a4b5ed4395ab6a8  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
! 8141366907f2f880d42fe1c660022b82  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
! 51f9c69363e8304eb856b71da2908615  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
! ebec53619d4aee282e651aa092fe8fc8  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
! a016f7e0cd09193fc2ad41dcea98084d  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp
! d2f0089eb3e222d639732f426830c474  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
! 048c7f0119dc241702bba82fdcdedc1d  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
! 7d6eea8f9726c6f63b8c8db1990a0be9  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
! 617e62a68c80bfaaa56631d088734f22  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp
! f8e910a13fcf5249b8d1c9007951c1bb  libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp
! 3d0fe3cb0a32e9b81bfdc353da446bca  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
! 2c8d4949c4f34af3f360829ee083b716  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
! ec10959b0ff7cd4fb59a27a1cafae2b2  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
! b35a110116ce95a1ee45da0ad20fa1b4  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
! 4b65467d4cedf6c26ac4f80dea21ceca  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
! 00b941c41327cc884ad7d05f2e0ddaa8  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
! 6c618d8be0eb1631d184dddf1bf0e4f3  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
! 3e2125a1d8aff34b7ab9fb4fbed1c5d7  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
! dae7575faca412f3d552f82ead9b7e5e  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
! 46fe41b4457d5acc96ddbbb706f3f0e5  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
! e728217012ce1b2eb15971333e91260d  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
! fb6e9db97f8a25e85c39ee85de8e019e  libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp
! 33862820ca5a96ec651afd00134b1d5f  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
! b4ea0d77634ed6ba813a39e2228f63ae  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
! 24b4de70d024da9efb127e7ec83e15bb  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
! 3828b3969938052d6d553f4eab5e7525  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
! 53599fe75d2cedff766d0119c1e21183  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
! b4f1318618d422531d2f0fe6f05cbfbd  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
! 7d02f1343a8ef6e385062205475d54b5  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
! 4a04e76845ca1e5e149a02fde0de7754  libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp
! 357fdb7a9b778c8771781d2a26c4ab2a  libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
! a9bea08b0759f5b4b2d0e9069c12d88f  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
! 397df4dd8273d1211bf1f319d2efd195  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp
! 75db4def4624be88602d93b3ce4146f9  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
! 2386f75910cd5da07fe8c2b7f1db8842  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
! b4eb477aa0fdd4db5d18a6c2d0231faa  libstdc++-v3/include/ext/pb_ds/exception.hpp
! 93890c4c5f15d27c11c50aeb8751321e  libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
! 4e1f543b8c601de3d19bb304faac97b6  libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp
! 793bec35f0b43c04b5ff253dcedb2630  libstdc++-v3/include/ext/pb_ds/priority_queue.hpp
! fb72314aa6a3a9bd92efa9e03a1dddef  libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp
! f56df8d1708688a3d7e2478c6057aac2  libstdc++-v3/include/ext/pb_ds/tree_policy.hpp
! 810a127158dc856366b1bb42a3c18fe3  libstdc++-v3/include/ext/pb_ds/trie_policy.hpp
! 18277d3309cc02eaf7fed681cf6b4c43  libstdc++-v3/include/ext/pod_char_traits.h
! d599eb166c37e5652aa5ac604cf3a938  libstdc++-v3/include/ext/pointer.h
! 4fbe9ec2f3abca34ae1b3f21262e03d8  libstdc++-v3/include/ext/pool_allocator.h
! 34f82f4e89943de068471ad042ca5eee  libstdc++-v3/include/ext/random
! e424c2c65ced2ab29333a48fd89af9ca  libstdc++-v3/include/ext/random.tcc
! f6b81e2a61d8bf1019831733de43e9cf  libstdc++-v3/include/ext/rb_tree
! 4b6f7f3ba893e818d5ba060c260768d0  libstdc++-v3/include/ext/rc_string_base.h
! 726adfa0deea4952b350303884a6cc7b  libstdc++-v3/include/ext/rope
! f47db472dbb8dc2e97b982d308005526  libstdc++-v3/include/ext/ropeimpl.h
! 837e83907d8425d64b9b3a3b34aa3d99  libstdc++-v3/include/ext/slist
! 20a642e73c48425a0c3db2aaf9c19db2  libstdc++-v3/include/ext/sso_string_base.h
! 36c3e2e6b0bee147137f0a0d3d7066e3  libstdc++-v3/include/ext/stdio_filebuf.h
! 4f7010570c175fb90a6975005a119d7f  libstdc++-v3/include/ext/stdio_sync_filebuf.h
! 235e2ec51a8e871456225565a91d24dc  libstdc++-v3/include/ext/string_conversions.h
! 6d73b17bf9bf975f6604a9fc35c48a19  libstdc++-v3/include/ext/throw_allocator.h
! 0538e72e4f95930b55c3e441ce1a0a7b  libstdc++-v3/include/ext/type_traits.h
! b373ad2b360f9096cc83c40b1c8a9f77  libstdc++-v3/include/ext/typelist.h
! e9743e05f779c57f502a721a0d1ddd17  libstdc++-v3/include/ext/vstring.h
! 0fa024c2e999298431f07e6040f6fc42  libstdc++-v3/include/ext/vstring.tcc
! 4fa4c60d269a8ac2f858ce672e99093e  libstdc++-v3/include/ext/vstring_fwd.h
! 9f249ccd93a18a580d1c94f21e20bbb3  libstdc++-v3/include/ext/vstring_util.h
! 08a37f3e8c9c684c74ee29b665a0f159  libstdc++-v3/include/parallel/algo.h
! 7f50c88edaa6983c1e4d3cbf43c2159f  libstdc++-v3/include/parallel/algobase.h
! 304b368f2d7344a775c4d91cabd6d7f1  libstdc++-v3/include/parallel/algorithm
! c79945817a3abf1ed4b1d47d1e6ffbb2  libstdc++-v3/include/parallel/algorithmfwd.h
! be13ab9acd65b86ab927422a9a7e41e0  libstdc++-v3/include/parallel/balanced_quicksort.h
! 2aaa1ea1c981a6f45a74c31133dd8a1a  libstdc++-v3/include/parallel/base.h
! bc52c479cb09278d2dc985a7bd2d37cb  libstdc++-v3/include/parallel/basic_iterator.h
! 0051f14a648ddb9da572ff66e92dfbe1  libstdc++-v3/include/parallel/checkers.h
! 7bb5205b288f728958ab6021c0db8bf7  libstdc++-v3/include/parallel/compatibility.h
! 25cf1d5a9c42e9d662ecb31714a0d127  libstdc++-v3/include/parallel/compiletime_settings.h
! 44e7d2f3712607b62bad473a2b7322f8  libstdc++-v3/include/parallel/equally_split.h
! ca59b5fda7d494816cedfaddd8a89dd3  libstdc++-v3/include/parallel/features.h
! d181e037d11fefe3c7b75c38d3742efc  libstdc++-v3/include/parallel/find.h
! c89b1174fb68d70614eb361ba5d75e0e  libstdc++-v3/include/parallel/find_selectors.h
! c4ebc138161bac60bb77311853169af0  libstdc++-v3/include/parallel/for_each.h
! 978523a0356073c604f744edf87d4250  libstdc++-v3/include/parallel/for_each_selectors.h
! 875e66814c0086f9fa47df37426acf86  libstdc++-v3/include/parallel/iterator.h
! a3db6d537c22204a22d7e2d1b6aa1b17  libstdc++-v3/include/parallel/list_partition.h
! a3911127e7316de9dede086d9295383d  libstdc++-v3/include/parallel/losertree.h
! 8574a084e1bd6c6242a5c479f732b10d  libstdc++-v3/include/parallel/merge.h
! 0d9f0089f8c47ca636237cddd5beb57e  libstdc++-v3/include/parallel/multiseq_selection.h
! 50c8be67fa5af128532c2b6823d19af5  libstdc++-v3/include/parallel/multiway_merge.h
! ce79ac96807e5287f68e586ba039dbb6  libstdc++-v3/include/parallel/multiway_mergesort.h
! 71a6cade911e5ef1131cfcd5286c927f  libstdc++-v3/include/parallel/numeric
! 37b829c5a60723ea079216e9a86dd42c  libstdc++-v3/include/parallel/numericfwd.h
! 2ad7e242d9d4b05cbf6e6c674601a93d  libstdc++-v3/include/parallel/omp_loop.h
! cd8fa0534d1e7e16059d56a4bda7bcb0  libstdc++-v3/include/parallel/omp_loop_static.h
! e5564b5847a71323288b3e2823481ff4  libstdc++-v3/include/parallel/par_loop.h
! c42efa29787e4c04a6a838d19153ef29  libstdc++-v3/include/parallel/parallel.h
! 4b6b3919a66166fc691285060852a4fb  libstdc++-v3/include/parallel/partial_sum.h
! bfeced3375f6765ebc7c0099ccfd7ebe  libstdc++-v3/include/parallel/partition.h
! 669daaf67896c3a9b834cc10ea90b793  libstdc++-v3/include/parallel/queue.h
! 397d53be7099d7b6b0c6e1f0e0eb7857  libstdc++-v3/include/parallel/quicksort.h
! 885d4f426ddb3ae918db87d7d290622d  libstdc++-v3/include/parallel/random_number.h
! 5bcbaa42a2a16f00a86c470a2521d547  libstdc++-v3/include/parallel/random_shuffle.h
! 7166f528c1f73b73f605fbabc122f751  libstdc++-v3/include/parallel/search.h
! ba7f0741a4ac9c6a43584c4e5699df68  libstdc++-v3/include/parallel/set_operations.h
! 3f086de4b3bc10492929529820ae4243  libstdc++-v3/include/parallel/settings.h
! dfd7f69879f2801379a15b9f655ec5fb  libstdc++-v3/include/parallel/sort.h
! af620567c2dac8528b96639948651a40  libstdc++-v3/include/parallel/tags.h
! 5428e092dfc583417193d4bf8c693fd4  libstdc++-v3/include/parallel/types.h
! d7c4ef5d00868daddbb1475ae32af911  libstdc++-v3/include/parallel/unique_copy.h
! 08adac66ffceae82ac2661b0241db99c  libstdc++-v3/include/parallel/workstealing.h
! 874daab6f0a0caff5ae471708e7d7f6d  libstdc++-v3/include/precompiled/extc++.h
! a560921b58eff98f384a4419173da8ff  libstdc++-v3/include/precompiled/stdc++.h
! 8bc241eda992e14e9d417167e4a74289  libstdc++-v3/include/precompiled/stdtr1c++.h
  75cfb36aeb3ed8672bb4e2957272203c  libstdc++-v3/include/pstl/LICENSE.txt
! 6aa52d6b70bfb53073697375741dff45  libstdc++-v3/include/pstl/algorithm_fwd.h
! daaba18ca431b26a73f9d9ec8e8a7a46  libstdc++-v3/include/pstl/algorithm_impl.h
! ae347741e840ff43bfc0c1800ecdbf63  libstdc++-v3/include/pstl/execution_defs.h
! 6e9e67224ea8b657e29e951ea1d906a0  libstdc++-v3/include/pstl/execution_impl.h
  87b0d132d9a180f96cdd7cbbf15a9f57  libstdc++-v3/include/pstl/glue_algorithm_defs.h
! 5b59c0a6c0cb7ddb2fa2f6d8f454b15d  libstdc++-v3/include/pstl/glue_algorithm_impl.h
! 368ad5a8bcc8d830f5785113b6245f9d  libstdc++-v3/include/pstl/glue_execution_defs.h
  0b0a3983fbed012140824669c804e50a  libstdc++-v3/include/pstl/glue_memory_defs.h
! b8e4c4f0c5ac066a757e43a5b7223c10  libstdc++-v3/include/pstl/glue_memory_impl.h
  9470d07762f86ba4655154491929a328  libstdc++-v3/include/pstl/glue_numeric_defs.h
! 614e375354fb0f349f7af0f7e01fe3bd  libstdc++-v3/include/pstl/glue_numeric_impl.h
! f9819c3fbab884d0ff4d0150023c3826  libstdc++-v3/include/pstl/memory_impl.h
! 46b7494faaf72186343f13f46db3cac4  libstdc++-v3/include/pstl/numeric_fwd.h
! 298135dd5a0056c2dc6bda5721e0eb27  libstdc++-v3/include/pstl/numeric_impl.h
! 531b6552c2b0ded549ed9bc9b03bebf4  libstdc++-v3/include/pstl/parallel_backend.h
! c6ea5607259b8e63bb887db39136b942  libstdc++-v3/include/pstl/parallel_backend_serial.h
! f440b4cc9ed25dc734c39310ac196140  libstdc++-v3/include/pstl/parallel_backend_tbb.h
  e128e525f970f3948feec2f4750919a8  libstdc++-v3/include/pstl/parallel_backend_utils.h
! 688f2289e52048ec70461174eadd2efe  libstdc++-v3/include/pstl/parallel_impl.h
! 7bc60102e87d0d3ddc2055faee9d8cd8  libstdc++-v3/include/pstl/pstl_config.h
! 429c7831b6f1369c536eaa83e27cd111  libstdc++-v3/include/pstl/unseq_backend_simd.h
! 6e7da3aed3b413aec47ea7457e6ea726  libstdc++-v3/include/pstl/utils.h
! f78159cfd177a7bc84957990754dbc3e  libstdc++-v3/include/std/algorithm
! e9bdf696bbd1bb6e25c770495b62ee1e  libstdc++-v3/include/std/any
! 6fae49161f8402d104298c4a1f1f3ba9  libstdc++-v3/include/std/array
! 40ce4527ff101adaa1eb3e248f7e7790  libstdc++-v3/include/std/atomic
! 01cf19d843a4461de3522fe15a305313  libstdc++-v3/include/std/barrier
! b6af1bbc3368d9c5b5a8c7182f8272ec  libstdc++-v3/include/std/bit
! 6c83353fc8d46581132ab76a4ff6552a  libstdc++-v3/include/std/bitset
! ac89056b371085656f9349b818aa8656  libstdc++-v3/include/std/charconv
! c333f4189dc2424a9d83da4e0ade79b3  libstdc++-v3/include/std/chrono
! e43c8d137c20c10ac051954a254c532c  libstdc++-v3/include/std/codecvt
! 650adbddee3c473863f9d814c33e8ea3  libstdc++-v3/include/std/complex
! 029c042214e60b24aae61965e2ba2f9a  libstdc++-v3/include/std/concepts
! 4c3e3b91f288c0a91fdf89dca455559c  libstdc++-v3/include/std/condition_variable
! 63a42f783a6f1e72f6eb9a867087ffed  libstdc++-v3/include/std/coroutine
! f52c3ff6f6b2bb10c194762c2e894726  libstdc++-v3/include/std/deque
! ae64ad244c17b2990bf7800baac14798  libstdc++-v3/include/std/execution
! 9bfd85bc53277978862f2c4840fe93fa  libstdc++-v3/include/std/expected
! cff63c5eb4adb15a28919e1ffaaaa7be  libstdc++-v3/include/std/filesystem
! db32f2d80e2b7a0f92b685e07ff38b12  libstdc++-v3/include/std/format
! 2d097767d2c66702a4ee70468b0376f0  libstdc++-v3/include/std/forward_list
! 4183b8200ed6ff28ecd64696007af811  libstdc++-v3/include/std/fstream
! 1a6230e0c904f63ba6fe1547fdd1905c  libstdc++-v3/include/std/functional
! cb2c0813896ec59fe1be8fa6a3dd324c  libstdc++-v3/include/std/future
! 8a2ab3dd4a92426a6a85329f5f87742b  libstdc++-v3/include/std/generator
! 8c0055832190ba951633bb463abc6e9f  libstdc++-v3/include/std/iomanip
! 25d3cde7ba909e5a4402b66b6876f669  libstdc++-v3/include/std/ios
! 458b165c45b928858eb506cf29827ba7  libstdc++-v3/include/std/iosfwd
! 85263f05eed8eaa8568b0c882e2c6222  libstdc++-v3/include/std/iostream
! fbb98a3a85dbb9d1d7f5334f966c9ad2  libstdc++-v3/include/std/istream
! ab071c7c019b51dde910e875fd3981aa  libstdc++-v3/include/std/iterator
! de9d16c58c0525a3af601dd8a558357a  libstdc++-v3/include/std/latch
! 99a421f78b6fc19e7a8f953c32ab3ee9  libstdc++-v3/include/std/limits
! 9afab6c422e97db6279cb51e83c5efe0  libstdc++-v3/include/std/list
! 49f6e0e6000077ee2b3f2633f47e4925  libstdc++-v3/include/std/locale
! 4b960aab24d5f36f08ae48806b3393b3  libstdc++-v3/include/std/map
! b1f89a49d34ca9aa81fe4ddc52e67b5a  libstdc++-v3/include/std/memory
! b95756c8b75f0ba0696fe0d53e25c2c8  libstdc++-v3/include/std/memory_resource
! 41cd6b791822b87ce3f2e3e2bc0d425d  libstdc++-v3/include/std/mutex
! b162db38fed9250df89cd38bf8a9f2a9  libstdc++-v3/include/std/numbers
! 325b8d455eb0cd34ffdfe94feb38eace  libstdc++-v3/include/std/numeric
! fa06e136fe019296e0c5f918628cfaef  libstdc++-v3/include/std/optional
! 0796479f8853b65c49e8ec2c11d75875  libstdc++-v3/include/std/ostream
! 07e31c70075a842a98e81ebc3305e85a  libstdc++-v3/include/std/print
! d68f065be22a4221aaa0a24978377953  libstdc++-v3/include/std/queue
! 30117f52180cd6e36edf1ccce29b8eaa  libstdc++-v3/include/std/random
! 609458f1bc31ec1dabe062935f3e66dd  libstdc++-v3/include/std/ranges
! 2b7ff9926dd64ac70ff5d2dc0c027a96  libstdc++-v3/include/std/ratio
! 433aa706c9a9150dc6c4149527013cd3  libstdc++-v3/include/std/regex
! eb34fd986e07061f3cad42681dbbd89e  libstdc++-v3/include/std/scoped_allocator
! dcfcd93b1470ad7b25a150c5ab816dc8  libstdc++-v3/include/std/semaphore
! 83cfe2f7e61a3bbbfc685c63a306e5d1  libstdc++-v3/include/std/set
! 09cfaa22e5a9d23f7a79f388fa6bad2a  libstdc++-v3/include/std/shared_mutex
! dfaa6ea502378573b76189598bfc35a9  libstdc++-v3/include/std/source_location
! ff97f04c4b7ee45c30f580caab236273  libstdc++-v3/include/std/span
! 150494e3c4d2c69af905516415888605  libstdc++-v3/include/std/spanstream
! f099bc998c2758cb164c891167ce8c5d  libstdc++-v3/include/std/sstream
! b8320e4989287bb5b75ee2f3a6a9cc1c  libstdc++-v3/include/std/stack
! 97f91d9f9598edc4a0e46c626f11d88e  libstdc++-v3/include/std/stacktrace
! a0df6d15b0b61f28637877eac9b32416  libstdc++-v3/include/std/stdexcept
! 61ee2f87017fb12a433b912711616843  libstdc++-v3/include/std/stdfloat
! 406d5b03cbe8429f45aec26c93455b4d  libstdc++-v3/include/std/stop_token
! a638d14f025bfe69de610cd67bd7be1c  libstdc++-v3/include/std/streambuf
! 44e8dab6a7921f591ad1fd673d3bd0e4  libstdc++-v3/include/std/string
! a87699a50f435fba1de9cf21123c1d55  libstdc++-v3/include/std/string_view
! 9320934590547a708c259f9365f20d69  libstdc++-v3/include/std/syncstream
! ea3475b6634d2e3d92998c1122691d82  libstdc++-v3/include/std/system_error
! 7accb225f1102326d66c684639b89253  libstdc++-v3/include/std/text_encoding
! 094a84a418c55cf7278d5f1da39f2319  libstdc++-v3/include/std/thread
! 86d04350de8bda135d4eb284235b10d8  libstdc++-v3/include/std/tuple
! afb45f547b370f7bc54ce5c85fa1ab93  libstdc++-v3/include/std/type_traits
! 91fe9927d579813b014eed3896aafbcd  libstdc++-v3/include/std/typeindex
! 1a9f797c585b2086b65a11c3b53449f8  libstdc++-v3/include/std/unordered_map
! e1fb9245c8369afd6467431f766e0045  libstdc++-v3/include/std/unordered_set
! d97dc9a59a84ecd3313f4602c45a055f  libstdc++-v3/include/std/utility
! eb18138f2bc8dab695f3a054253441cd  libstdc++-v3/include/std/valarray
! 770d1f484319d1538c69ce1a23068c2f  libstdc++-v3/include/std/variant
! 7d92f290f77ab1d0a4cb38062a17dd8c  libstdc++-v3/include/std/vector
! 575dd3875ecd60012bfe4acc7106d8a9  libstdc++-v3/include/std/version
! 4561db25a622c33cbeab9705fc4eaeda  libstdc++-v3/include/tr1/array
! 6fd1cedb4107fe0004865bb26aca49e7  libstdc++-v3/include/tr1/bessel_function.tcc
! 564d5c0547c6157c3f918ad5f363a4a4  libstdc++-v3/include/tr1/beta_function.tcc
! 23784ccb214a98ae3a9312ae150e52b7  libstdc++-v3/include/tr1/ccomplex
! 4d1278f9daa116614a6ecb94688edf23  libstdc++-v3/include/tr1/cctype
! 6cb56dd31b99fcba76aa1a6a21c74e70  libstdc++-v3/include/tr1/cfenv
! a4db74c2f55797883a9158f70ce5574b  libstdc++-v3/include/tr1/cfloat
! 260213871bc0adf73ab127de16dcc909  libstdc++-v3/include/tr1/cinttypes
! b6556f00ef4b82198ca35bcc8c069886  libstdc++-v3/include/tr1/climits
! a5453cabc5595d8cde38f053717db933  libstdc++-v3/include/tr1/cmath
! 3e5a3861ab67a586e508cf7234a82f7d  libstdc++-v3/include/tr1/complex
! 8a75f64f044a7f2c9e35142472120ee0  libstdc++-v3/include/tr1/complex.h
! b7e1e328d477240d2e01d3fe7397fe36  libstdc++-v3/include/tr1/cstdarg
! 52dff488a3e6a9778109dc79f6af2ac5  libstdc++-v3/include/tr1/cstdbool
! 654760c45946d98e1aa942283396c44d  libstdc++-v3/include/tr1/cstdint
! 37b6911a97eddcf178ea4d03e518130c  libstdc++-v3/include/tr1/cstdio
! 1763347fd871ce62ea9f98a12a487a5f  libstdc++-v3/include/tr1/cstdlib
! 3aadd51bdd92ebf7421191d96896012e  libstdc++-v3/include/tr1/ctgmath
! 295c36cabc653176ceb556d81d502c84  libstdc++-v3/include/tr1/ctime
! 6f15afae4ae3c997fcd46361f2c94c95  libstdc++-v3/include/tr1/ctype.h
! 529156ab608403140bc585a9f3de892f  libstdc++-v3/include/tr1/cwchar
! ffd681713aeb4361c70b9c23bc7ad712  libstdc++-v3/include/tr1/cwctype
! cbc72d95ebebc5a7500d3c7fdf159674  libstdc++-v3/include/tr1/ell_integral.tcc
! f4e40610c43e72cd684d4c6338cdf996  libstdc++-v3/include/tr1/exp_integral.tcc
! bc4a366fe643722e144d7435ba6d3679  libstdc++-v3/include/tr1/fenv.h
! ba2cf6ecdf1e1741acf83cdb5811a4d9  libstdc++-v3/include/tr1/float.h
! fe8c0dd15df920da7017e8a9dcf4382a  libstdc++-v3/include/tr1/functional
! 05301c537738e4a54312542c4ee6c198  libstdc++-v3/include/tr1/functional_hash.h
! e4f17b9d0ec06bfcb522bf783eda01d5  libstdc++-v3/include/tr1/gamma.tcc
! f3347809d4df4b91574d029d0d5f10fb  libstdc++-v3/include/tr1/hashtable.h
! aa5b73b9e968bd6c5b5e598ee30df0e2  libstdc++-v3/include/tr1/hashtable_policy.h
! 8524dcbbda486c325282a78d7ee08318  libstdc++-v3/include/tr1/hypergeometric.tcc
! b070fc29911163ba3a957de71b5cad2d  libstdc++-v3/include/tr1/inttypes.h
! 502349eaf4eeda1db1363358e39de301  libstdc++-v3/include/tr1/legendre_function.tcc
! e4ea7480d447023407bbcaee222f30b5  libstdc++-v3/include/tr1/limits.h
! a7abe833ade7fc7a3f48116b7d586645  libstdc++-v3/include/tr1/math.h
! 6af503fab279fdf65b1b18e1be722ba4  libstdc++-v3/include/tr1/memory
! 32bab140a8965b0ffe32268e716b577f  libstdc++-v3/include/tr1/modified_bessel_func.tcc
! 57968d88cb012ea0c336b485826607f8  libstdc++-v3/include/tr1/poly_hermite.tcc
! 45769b10c82d7d6873368fc56df3c4bc  libstdc++-v3/include/tr1/poly_laguerre.tcc
! eda7035bc80b82cf653cd77fabedf8cf  libstdc++-v3/include/tr1/random
! b30c06a6685dfc2cc9d76817ba6b2430  libstdc++-v3/include/tr1/random.h
! 4f96e73b97ab658e8584f1fee44e4966  libstdc++-v3/include/tr1/random.tcc
! b0154cb0389019105105970cae6b1bea  libstdc++-v3/include/tr1/regex
! d22a8097b07102d38ea171d73d55ae44  libstdc++-v3/include/tr1/riemann_zeta.tcc
! 1c04fc8af92bb5d31bf1053c52f461bc  libstdc++-v3/include/tr1/shared_ptr.h
! 38c4f0d1e1aced297622aa65327e0c73  libstdc++-v3/include/tr1/special_function_util.h
! 713648d7d1de42540835c695ac94507a  libstdc++-v3/include/tr1/stdarg.h
! 2062755bbf36e13fbfce8f67f9ece853  libstdc++-v3/include/tr1/stdbool.h
! 49cb5d78bec8c48a4db0c75a133ad356  libstdc++-v3/include/tr1/stdint.h
! c355791c765003d2eeafc0ca6b0e4ae5  libstdc++-v3/include/tr1/stdio.h
! fc6f7b66b7c4972efb3c8275a951c109  libstdc++-v3/include/tr1/stdlib.h
! 299776e985fcb18db9898b8efe6c94a7  libstdc++-v3/include/tr1/tgmath.h
! d35c5eb7a40e2947d5cedbd925e3745b  libstdc++-v3/include/tr1/tuple
! 42221ce216558d8102e0ba0b33fc22ca  libstdc++-v3/include/tr1/type_traits
! c32324bd4fbe007d05d5228ec547d94a  libstdc++-v3/include/tr1/unordered_map
! 6cac0f3a8c777016cc8fc26245dfae84  libstdc++-v3/include/tr1/unordered_map.h
! 7a2c4f4a051352ce10c30b5290b7e32b  libstdc++-v3/include/tr1/unordered_set
! 0c3316d7206500d02db6f17b9789fc34  libstdc++-v3/include/tr1/unordered_set.h
! b5c68cd23a28ca201242cf066c48aa85  libstdc++-v3/include/tr1/utility
! 97859c0b28ff3641ee3041878d40cb1b  libstdc++-v3/include/tr1/wchar.h
! 0896f1e3882e434e432e3ac231516993  libstdc++-v3/include/tr1/wctype.h
! 53c241602e166b18fc233d3b91699fcd  libstdc++-v3/include/tr2/bool_set
! 7212205c5a046c177c9da14ce97dffca  libstdc++-v3/include/tr2/bool_set.tcc
! 5fcfe6db580124d7b7079ec039817f4d  libstdc++-v3/include/tr2/dynamic_bitset
! 8bd32736a24d1d3488522b19ed6f1b7d  libstdc++-v3/include/tr2/dynamic_bitset.tcc
! 16964ced3b8cc6f1a7b87b46677b3345  libstdc++-v3/include/tr2/ratio
! 9a678c549c7140003e924e438d64fddc  libstdc++-v3/include/tr2/type_traits
! a350b0f077ba9b2957e4e9d60527cc6d  libstdc++-v3/libsupc++/Makefile.am
! 89680042878a16ef20deacf944e7c75c  libstdc++-v3/libsupc++/Makefile.in
! e3f62f125a5413bbe82b32180bcec9a2  libstdc++-v3/libsupc++/array_type_info.cc
! cf478c0be6bd6446a5cad76fad3c9610  libstdc++-v3/libsupc++/atexit_arm.cc
! 0a6c3b75fd71f7015f28289ae5b81325  libstdc++-v3/libsupc++/atexit_thread.cc
! 84cabbaac7f2a1c5a0f606e191cfe1d6  libstdc++-v3/libsupc++/atomic_lockfree_defines.h
! 0953c61dbb00b285e775637b232c5d84  libstdc++-v3/libsupc++/bad_alloc.cc
! 83a21c896ffb84d8c35494385ef63afd  libstdc++-v3/libsupc++/bad_array_length.cc
! a4bfe8e7b7e1fcdb233d250f34d48b3c  libstdc++-v3/libsupc++/bad_array_new.cc
! 99bee300f6b2032bc884d190f8793068  libstdc++-v3/libsupc++/bad_cast.cc
! b5431c45ca63a8c33a822270b63ef91a  libstdc++-v3/libsupc++/bad_typeid.cc
! e4fce400a30b3c373310af56ffda6bb9  libstdc++-v3/libsupc++/class_type_info.cc
! 09e8468a6af8bd9856b984eaf6567691  libstdc++-v3/libsupc++/compare
! 3471d9112038dca877667a79bd8cee85  libstdc++-v3/libsupc++/cxxabi.h
! 9bcec4f6a2e90107b8caa460dc1787f0  libstdc++-v3/libsupc++/cxxabi_forced.h
! 3e0c1597f198c4ce7e4a75fbf6b6186d  libstdc++-v3/libsupc++/cxxabi_init_exception.h
! 6ce07d770722c2e4063c925320c3b37c  libstdc++-v3/libsupc++/del_op.cc
! 55a27c5e5f90f16a0a54a2281eb4b90c  libstdc++-v3/libsupc++/del_opa.cc
! 9297245e4d8051d4da0c7d733c0dfa10  libstdc++-v3/libsupc++/del_opant.cc
! 9ac4af73bb5420e80558423181655aef  libstdc++-v3/libsupc++/del_opnt.cc
! abac2b282128523529249ae4936742e7  libstdc++-v3/libsupc++/del_ops.cc
! 8c69e990dd287d00b593fce8c8c30134  libstdc++-v3/libsupc++/del_opsa.cc
! b0d770b477e01af573ad7d39bc92d63a  libstdc++-v3/libsupc++/del_opv.cc
! c626b284ce4c6b73f3e3a55421b6b6be  libstdc++-v3/libsupc++/del_opva.cc
! e4ebe3528245e5273e6a006f980fc4fc  libstdc++-v3/libsupc++/del_opvant.cc
! 4e46b304fe44ab87eda236126aaaf8ab  libstdc++-v3/libsupc++/del_opvnt.cc
! 2a261232b065b26efbacce889b44f209  libstdc++-v3/libsupc++/del_opvs.cc
! 3ce0a8a833e64716f93da63922c61015  libstdc++-v3/libsupc++/del_opvsa.cc
! 71f02d05b4208d195e34c9e7fc2d9ba3  libstdc++-v3/libsupc++/dyncast.cc
! 89eb61361f683d177e2f1766395830d0  libstdc++-v3/libsupc++/eh_alloc.cc
! 439f2cfae94a25ffb241eaea545b6b39  libstdc++-v3/libsupc++/eh_arm.cc
! 0a70751fb400f9a99cd498fcdf67f078  libstdc++-v3/libsupc++/eh_atomics.h
! c8db8cb7d5bab4c21e76b7e57ce499ed  libstdc++-v3/libsupc++/eh_aux_runtime.cc
! 5d3aeada1c762aad5cdb8ee68138fac0  libstdc++-v3/libsupc++/eh_call.cc
! e6cab97b8673536281fd5d4c3bbd4d14  libstdc++-v3/libsupc++/eh_catch.cc
! fe12ef3588e208b3239c47f967c6a9d5  libstdc++-v3/libsupc++/eh_exception.cc
! 300a907ab3f9d5650c3ae9cd65d9dc28  libstdc++-v3/libsupc++/eh_globals.cc
! 59a772283681c81ddc2d37602a007fbe  libstdc++-v3/libsupc++/eh_personality.cc
! 8fa57161fb8a87a0a50c9d4fde8426ec  libstdc++-v3/libsupc++/eh_ptr.cc
! f4597209bb8cc5130effa12bb37b41c8  libstdc++-v3/libsupc++/eh_term_handler.cc
! 858f13a73f73d0af500bfbdcf01475d4  libstdc++-v3/libsupc++/eh_term_handler.h
! b99277b6b812fd69bf32c2f1add18398  libstdc++-v3/libsupc++/eh_terminate.cc
! af0d86fee7d806e601c36b7c4b768edd  libstdc++-v3/libsupc++/eh_throw.cc
! 31ca20346959627e1f12c0540e546d8b  libstdc++-v3/libsupc++/eh_tm.cc
! 083dd31ff28fffe2d9c58a1ce06da151  libstdc++-v3/libsupc++/eh_type.cc
! b351ed63c38dce4d8d1ceb22f1aa826d  libstdc++-v3/libsupc++/eh_unex_handler.cc
! d80d58b26997b4308fe3f99b65525f8b  libstdc++-v3/libsupc++/enum_type_info.cc
! 9d6fccfca6ae57dfdf562641c5551cc9  libstdc++-v3/libsupc++/exception
! 1f1c783b2e75b44aee522e9af3e42788  libstdc++-v3/libsupc++/exception.h
! 2f3901c54adffc4da342eea94d80216a  libstdc++-v3/libsupc++/exception_defines.h
! 9454f1dc659a5fca82863c92df8f08bb  libstdc++-v3/libsupc++/exception_ptr.h
! f443098b4eb73f6499927ea7214a7f6f  libstdc++-v3/libsupc++/function_type_info.cc
! 360ff92f1e5ad9f6b27fe3c73ad3e0ea  libstdc++-v3/libsupc++/fundamental_type_info.cc
! ceb5b90de44b4423dff2dc1fb5e3a075  libstdc++-v3/libsupc++/guard.cc
! dab148e973f15454bcce3294b303ced9  libstdc++-v3/libsupc++/guard_error.cc
! 724751aafba7d641da69eb16543bddce  libstdc++-v3/libsupc++/hash_bytes.cc
! fe0d8ce5ddac479755faf3df5252989d  libstdc++-v3/libsupc++/hash_bytes.h
! 62efc15b729c2c5f4fc1a07d2ac9d84a  libstdc++-v3/libsupc++/initializer_list
! 00ffc571fbc1aa9a65b50856a7740859  libstdc++-v3/libsupc++/nested_exception.cc
! 2814facdeb9245b81679f7e5d36ff763  libstdc++-v3/libsupc++/nested_exception.h
! f457abe0e1b30147cc5151d425b115eb  libstdc++-v3/libsupc++/new
! 4f3550ce21cebe08e422b3d0dcd566eb  libstdc++-v3/libsupc++/new_handler.cc
! f67f9badfe01eb8b18ef54feebf74cbb  libstdc++-v3/libsupc++/new_op.cc
! 9b84ed1b7455a937f1523f61f23bb104  libstdc++-v3/libsupc++/new_opa.cc
! 71a0c463f3b5c2699cdc3fb5d304921e  libstdc++-v3/libsupc++/new_opant.cc
! 7cc27aa49a5980d5530774fe43b9942a  libstdc++-v3/libsupc++/new_opnt.cc
! cffb93ed6ac5118c398753c432a03069  libstdc++-v3/libsupc++/new_opv.cc
! 75ba60bc593316999029ab88c19e2dbe  libstdc++-v3/libsupc++/new_opva.cc
! e7545e04999e15a470f1d216c33daf2f  libstdc++-v3/libsupc++/new_opvant.cc
! 18f387024f7604c91b751c971d7b0641  libstdc++-v3/libsupc++/new_opvnt.cc
! 362391c7cfaf3c4e3673b0dd74628134  libstdc++-v3/libsupc++/pbase_type_info.cc
! e97bd0c167eda8f1e41b98b2e5393b44  libstdc++-v3/libsupc++/pmem_type_info.cc
! 767dead7920c084b1652c7bbf4ab9c3e  libstdc++-v3/libsupc++/pointer_type_info.cc
! b0677bf627ecd9410d125361ac126ef8  libstdc++-v3/libsupc++/pure.cc
! b0a2fd773895e794b80099d53e0be909  libstdc++-v3/libsupc++/si_class_type_info.cc
! 60f0cb35a01fc939b4e7cebc90542d39  libstdc++-v3/libsupc++/tinfo.cc
! 7c088471a425f9529301b34a6393f0a4  libstdc++-v3/libsupc++/tinfo.h
! 06c78172805a3896a004afb470991051  libstdc++-v3/libsupc++/tinfo2.cc
! 50ddc107573118cc5b60cb4005e928a2  libstdc++-v3/libsupc++/typeinfo
! 1130b173c3143e3b930a3c662a30a1c4  libstdc++-v3/libsupc++/unwind-cxx.h
! 5cd280006dee3d1f4d0640e43bb5df7c  libstdc++-v3/libsupc++/vec.cc
! 7a17b3f4a88e107b1f557ab913fd7433  libstdc++-v3/libsupc++/vmi_class_type_info.cc
! 689bdda2b01f5c541628ee4c1875b29d  libstdc++-v3/libsupc++/vterminate.cc
! 297d0acf6017e95f53ce5eb791a24f82  libstdc++-v3/libsupc++/vtv_stubs.cc
! e88dc2fa68ea978011d41472f6dab4fa  libstdc++-v3/linkage.m4
! 3c8b20a4419be1376ac845cbd31aa73d  libstdc++-v3/po/Makefile.am
  a5457e41b18fa84291efc712d8c7db06  libstdc++-v3/po/Makefile.in
! 8b3fc400bb80aad4a934a66278ae88e5  libstdc++-v3/po/POTFILES.in
! d86c0404126a353a0c201248a257d30e  libstdc++-v3/po/de.po
! e30a7219a337fb92a14c26562c9295a0  libstdc++-v3/po/fr.po
! 6a8bdba7608b4b93306e4ca1334a590d  libstdc++-v3/po/libstdc++.pot
! 2c8ce2a605978156b479033f59c05fd4  libstdc++-v3/po/string_literals.cc
! 8a467cb35bf37a0bd14b9f83a90da8bf  libstdc++-v3/python/Makefile.am
  c94ad903b4e7baf364cdc3ef5e9f58a8  libstdc++-v3/python/Makefile.in
! 62f1003c183e55743342191dfa28b3f9  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
! 9873f3513a8a40453d41552eedca2d27  libstdc++-v3/python/libstdcxx/v6/__init__.py
! d51d52f357fcac8787b8d5b73c9391c6  libstdc++-v3/python/libstdcxx/v6/printers.py
! b5a48bab2103d59dab15b85159d77520  libstdc++-v3/python/libstdcxx/v6/xmethods.py
  cdac7363b91e7d57b85f7b560f62f033  libstdc++-v3/scripts/check_compile
  a4c1d51bba293cee2307fc7f9dd090f7  libstdc++-v3/scripts/check_performance
  128d0fbc24e1d43d9ff93d14bd521aa6  libstdc++-v3/scripts/check_simd
  40f8ee10a4683f6c7f555f9450fcaa12  libstdc++-v3/scripts/create_testsuite_files
! 9be7721e01e33b1760f903210c455ed5  libstdc++-v3/scripts/extract_symvers.in
! ee3e66be2246276478c1c274f48a6761  libstdc++-v3/scripts/extract_symvers.pl
  755b77f929d926f07f3257df2e802f2e  libstdc++-v3/scripts/gen_bind_includers.pl
  85378fa65bc3dc46ffe255374b304560  libstdc++-v3/scripts/gen_includers.pl
  f1a84a17158780aaa37927191db4463a  libstdc++-v3/scripts/gen_includers2.pl
+ 5b2236b4942c92df14f93a36d7534a9d  libstdc++-v3/scripts/gen_text_encoding_data.py
  c3455b8d87dcefd65c7fdcd24e4ce3a4  libstdc++-v3/scripts/make_exports.pl
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
! 34e672239aff8de4729422525d257d4d  libstdc++-v3/scripts/run_doxygen
! 8237637ba2756b818d215e38c3e69e19  libstdc++-v3/scripts/testsuite_flags.in
! da83a48f31b065cd7eaf52421e89aaaf  libstdc++-v3/src/Makefile.am
! 2d886e50a06049390e2909e5b5a4e85e  libstdc++-v3/src/Makefile.in
! 9abc17a2015fb4ca07e750b293a53e74  libstdc++-v3/src/c++11/Makefile.am
! 17fe200d157298ad586d2f9c868ed5ce  libstdc++-v3/src/c++11/Makefile.in
! 9b230a694b079ab3cdaaa366e2ce7ed0  libstdc++-v3/src/c++11/assert_fail.cc
! 56cf354440118f824b41f6b8746d864c  libstdc++-v3/src/c++11/chrono.cc
! cf21378012850e1d83525650b62ca9c6  libstdc++-v3/src/c++11/codecvt.cc
! a07b92281f68e71680d063d74b3e7948  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
! 81a414e4d6a49dfefec902f2f5c3e151  libstdc++-v3/src/c++11/compatibility-c++0x.cc
! efd10c3d42f9fb143ebc536309bd34a2  libstdc++-v3/src/c++11/compatibility-chrono.cc
! e0d62524016dc385cfa9ee60cc14bee8  libstdc++-v3/src/c++11/compatibility-condvar.cc
! 17dad3aa7b052256efefcade9639d3e2  libstdc++-v3/src/c++11/compatibility-ldbl-alt128-cxx11.cc
! 71226f361bd0300feb1aef2ffad4c70c  libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc
! 6477ec78b4c53450ba5a621e25f3a8b9  libstdc++-v3/src/c++11/compatibility-ldbl-facets-aliases.h
! 8fd600683c5fd7e32cf8a46c8974ee7e  libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
! 9e0a4d2aeb4bd78cb1f626ae9029aaf1  libstdc++-v3/src/c++11/condition_variable.cc
! ea87b0a1f88300eabac581533b62872f  libstdc++-v3/src/c++11/cow-fstream-inst.cc
! 4cc50d42864118f57baafb47970e1db2  libstdc++-v3/src/c++11/cow-locale_init.cc
! 8f474a0758148734cb372f7aae4184a9  libstdc++-v3/src/c++11/cow-shim_facets.cc
! c1aed0de0ce717633096b9cb1a4a7896  libstdc++-v3/src/c++11/cow-sstream-inst.cc
! 48fba16adc13c66dcf2134fdcff8c5d7  libstdc++-v3/src/c++11/cow-stdexcept.cc
! f9de409fb305b2f189a7b88f7c4adc5e  libstdc++-v3/src/c++11/cow-string-inst.cc
! f5ab005f1d5a01caa6acf288af6a0452  libstdc++-v3/src/c++11/cow-string-io-inst.cc
! a383c68ca8d149324624ad3a0e31fe4e  libstdc++-v3/src/c++11/cow-wstring-inst.cc
! 70cdaa46e7190bbc8dc94a139acc42b6  libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
! 40901377b2daeee4735a634de194c02a  libstdc++-v3/src/c++11/ctype.cc
! 17e5ef0d8ef26d818817a906cd83b104  libstdc++-v3/src/c++11/cxx11-hash_tr1.cc
! 48bf42cc7aa73939d273f80223d3939c  libstdc++-v3/src/c++11/cxx11-ios_failure.cc
! 56ffb832d7bcf5ad78fc52e5cc8949aa  libstdc++-v3/src/c++11/cxx11-locale-inst.cc
! 58880d48b718ea1946b8881e4ad74679  libstdc++-v3/src/c++11/cxx11-shim_facets.cc
! 4f546b994b3b8aea2ae4ce2801c3d3b2  libstdc++-v3/src/c++11/cxx11-stdexcept.cc
! 8cc0509009a43e902d369953f62de2a3  libstdc++-v3/src/c++11/cxx11-wlocale-inst.cc
! e5b26ebaa08d8c918f54fc695bbeaf15  libstdc++-v3/src/c++11/debug.cc
! 795123f7a824729199d6736ab8c3369b  libstdc++-v3/src/c++11/ext11-inst.cc
  ba1e398802c7793fc33131cddac099d5  libstdc++-v3/src/c++11/facet_inst_macros.h
! 2ed27c67fe57366c1644bb3ba940f899  libstdc++-v3/src/c++11/fstream-inst.cc
! a6ed3b5987161bdf61eb508eab3bf784  libstdc++-v3/src/c++11/functexcept.cc
! a08c50593e70afdeaae59a62499b5dd4  libstdc++-v3/src/c++11/functional.cc
! 3daeaa3b212207123ec2257834da8e0a  libstdc++-v3/src/c++11/futex.cc
! aff1181ba24bd49217b54fb05e5729f0  libstdc++-v3/src/c++11/future.cc
! 310972f6afac51b9a856184b728dc336  libstdc++-v3/src/c++11/hash_c++0x.cc
! ed9c1514acb724da50bb7eb81c6258c1  libstdc++-v3/src/c++11/hashtable_c++0x.cc
! 565f994a8801eaefe64d4910d9234117  libstdc++-v3/src/c++11/ios-inst.cc
! 29fa3542a2cffa65cbda372c66e91958  libstdc++-v3/src/c++11/ios.cc
! b65eaf977cc6b89c383e874f740623db  libstdc++-v3/src/c++11/ios_errcat.cc
! aaa2191c9e912c82582ef4644402be28  libstdc++-v3/src/c++11/iostream-inst.cc
! a9a1164106bb483a9802bd9281c3b9be  libstdc++-v3/src/c++11/istream-inst.cc
! cee3c1cf70f2042cfa8b2b9b5a5337c3  libstdc++-v3/src/c++11/limits.cc
! 9c3751050becf31222ab032c4b833041  libstdc++-v3/src/c++11/locale-inst-monetary.h
! bbbc3c272ba55e55cad301a7af5993c8  libstdc++-v3/src/c++11/locale-inst-numeric.h
! 4d42723271952acfe8fa71a752baa409  libstdc++-v3/src/c++11/locale-inst.cc
! 988cd0f01e8bf3318b1f026fa913f0fa  libstdc++-v3/src/c++11/locale_init.cc
! 97b9801049b634efa1b5514b6aef7ab2  libstdc++-v3/src/c++11/localename.cc
! ff4c3259e7fb7e81a673dc2938ec81ea  libstdc++-v3/src/c++11/mutex.cc
! 85e8305f965014f221007d0bb1653662  libstdc++-v3/src/c++11/mutex_pool.h
! 3466f42524f2b30abdd99d7e3e5ca085  libstdc++-v3/src/c++11/ostream-inst.cc
! 1cc542ed86db6a7a25b7708f81aa5c2d  libstdc++-v3/src/c++11/placeholders.cc
! 14206c8cd16d24e4dd82e3a8180ddc76  libstdc++-v3/src/c++11/random.cc
! 95234089f218230e717c82fd7efb8f89  libstdc++-v3/src/c++11/regex.cc
! 8e878a933319cfd3d95b3a6ba5fef202  libstdc++-v3/src/c++11/shared_ptr.cc
! 78e2640030c6c3e15c06488083ae9e73  libstdc++-v3/src/c++11/snprintf_lite.cc
! 60af02e6add2738d2f205149d962561b  libstdc++-v3/src/c++11/sso_string.cc
! 64c0e8fcdf2345da8ce8a7c0a1b3b39f  libstdc++-v3/src/c++11/sstream-inst.cc
! e4c0cb19929c76a2045e33511d984d87  libstdc++-v3/src/c++11/streambuf-inst.cc
! bd1158111c9965fec151a80c651f1c18  libstdc++-v3/src/c++11/string-inst.cc
! 0ae2559f93b38cc2e8036ba74c58989a  libstdc++-v3/src/c++11/string-io-inst.cc
! 4132b83e77af1e0ae43a3dd197254060  libstdc++-v3/src/c++11/system_error.cc
! 58d682cf374e162a32211794bfae1d2d  libstdc++-v3/src/c++11/thread.cc
! 7d28667c7249373f11cc00a0e6eee313  libstdc++-v3/src/c++11/wlocale-inst.cc
! d118e7a266b9fcb368d1de732018c51c  libstdc++-v3/src/c++11/wstring-inst.cc
! 060f1b389192b449d6c0867c7576ac97  libstdc++-v3/src/c++11/wstring-io-inst.cc
! d34de55d44a66b4c82c58164887f05f6  libstdc++-v3/src/c++17/Makefile.am
  1fab41448c9ad9ce8c3f32fe49551fa8  libstdc++-v3/src/c++17/Makefile.in
! 4fedb3048e885ea5b28600fbf177526b  libstdc++-v3/src/c++17/cow-fs_dir.cc
! 7ee04116a23b24275d232572f84678f3  libstdc++-v3/src/c++17/cow-fs_ops.cc
! 832a27e7c0e19b561904a9985b7d777a  libstdc++-v3/src/c++17/cow-fs_path.cc
! 349dff472bd6821594422a0350153d16  libstdc++-v3/src/c++17/cow-string-inst.cc
! 584a5a366bc74ad4a50f2afae1b21285  libstdc++-v3/src/c++17/default_resource.h
  c347ef2c3ab2982bb980afb943891a83  libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES
  cdf9c54ab7ea85aa42bbf32b2e749913  libstdc++-v3/src/c++17/fast_float/MERGE
  88af13a4cebd3e9f44449b09304147d9  libstdc++-v3/src/c++17/fast_float/README.md
  093cc2d73328b5328c46320d9fb0ad05  libstdc++-v3/src/c++17/fast_float/fast_float.h
! eb207810586ea846576007018322c6e1  libstdc++-v3/src/c++17/floating_from_chars.cc
! 6310bd84805ba8da0ba88ee4704b7289  libstdc++-v3/src/c++17/floating_to_chars.cc
! 286baf8ceea2770abfc460321d508ec5  libstdc++-v3/src/c++17/fs_dir.cc
! bc84c4ad1868c34bd49313f884bb7291  libstdc++-v3/src/c++17/fs_ops.cc
! 4caf7cdad3b78037fc52bfcf6fcb19b7  libstdc++-v3/src/c++17/fs_path.cc
! e7ee94a1031a3b8d2c9f0fabc8511938  libstdc++-v3/src/c++17/memory_resource.cc
! 7d6a7293171f60a9406995fb4ddab5bd  libstdc++-v3/src/c++17/ostream-inst.cc
  f7696e2f5518e5e873ced4beacb8d107  libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES
  e225c39ccc4c6adc72a744687977d59d  libstdc++-v3/src/c++17/ryu/MERGE
  5c512389f4cbe0ea37ce2a8da0f070d6  libstdc++-v3/src/c++17/ryu/common.h
*************** cdfce2fa1d76af09cfdf0989501826ca  libstd
*** 114363,120132 ****
  74bc36f5cffd7626c78090061e4416a9  libstdc++-v3/src/c++17/ryu/generic_128.c
  fbb127f006c65ae37d591c627cc6235c  libstdc++-v3/src/c++17/ryu/generic_128.h
  85b9d2e407dc7113a97234b2c23e96dc  libstdc++-v3/src/c++17/ryu/ryu_generic_128.h
! 293ec552c19b22f2144faa322d6e68ce  libstdc++-v3/src/c++17/string-inst.cc
! 832a87ed88a18d4d453433ac0eb31fa5  libstdc++-v3/src/c++17/uint128_t.h
! 3406c687b407e21fe6138fafb471f3ea  libstdc++-v3/src/c++20/Makefile.am
! e1839283173315435666ef3eda4d7c03  libstdc++-v3/src/c++20/Makefile.in
! b914ff6670ac6160405a2435443a4a06  libstdc++-v3/src/c++20/sstream-inst.cc
! ed987f656282557754b33737218a1539  libstdc++-v3/src/c++20/tzdata.zi
! b733a975817fe7d7b74fc37df266c34d  libstdc++-v3/src/c++20/tzdb.cc
! 45134a761e2989110bf92106ea6dca4e  libstdc++-v3/src/c++98/Makefile.am
! 9b27a44fa8ef5adb147c45f43b150e95  libstdc++-v3/src/c++98/Makefile.in
! 0da013c21616235a62a7ce091c9e8ab8  libstdc++-v3/src/c++98/allocator-inst.cc
! 9308c0f06fe107d489fe1c65f4cb2f90  libstdc++-v3/src/c++98/bitmap_allocator.cc
! e4d7a013dabfb6c8af6fe297c83b992c  libstdc++-v3/src/c++98/codecvt.cc
! 9e051512bbe663bce6cc4f22711f1b80  libstdc++-v3/src/c++98/compatibility-debug_list-2.cc
! fb4cc6db70ecd33506635b2332edbbbe  libstdc++-v3/src/c++98/compatibility-debug_list.cc
! 1471aae7be26b12d07102fa5fd4d5611  libstdc++-v3/src/c++98/compatibility-ldbl.cc
! 78bb0f52ba46d296308abed7191bba1b  libstdc++-v3/src/c++98/compatibility.cc
! 5c32c2172581a83630ba142670d159a8  libstdc++-v3/src/c++98/complex_io.cc
! 8b52163f7a3d16e508861d975844c712  libstdc++-v3/src/c++98/concept-inst.cc
! a7d588d67d0dd0afa93c1b407df8a9b5  libstdc++-v3/src/c++98/cow-istream-string.cc
! 2cb4b23fd7de62fcf516bc00765cf9be  libstdc++-v3/src/c++98/ext-inst.cc
! e128fff76f8fcb6845e94954c45e975a  libstdc++-v3/src/c++98/globals_io.cc
! f77cc3c0403421af27349e9e6fb6c97e  libstdc++-v3/src/c++98/hash-long-double-tr1-aux.cc
! a37fb02c9bdb7a51452f82ae098f9d7b  libstdc++-v3/src/c++98/hash_tr1.cc
! 520585f8dd866f454e8da5d1de9dc0ca  libstdc++-v3/src/c++98/hashtable_tr1.cc
  1ddeea994cc23597e5a821f10555258a  libstdc++-v3/src/c++98/ios_base_init.h
! c78ee649f99eb3503ab9d0e15f608506  libstdc++-v3/src/c++98/ios_failure.cc
! 2aa19b001e0ef42d0da84fae32334aad  libstdc++-v3/src/c++98/ios_init.cc
! ba1f93f929b27a459e6e8e0769d66cd8  libstdc++-v3/src/c++98/ios_locale.cc
! ad2e27d47bf85592bedfae6839a87f59  libstdc++-v3/src/c++98/istream-string.cc
! b7947c00cafe4b3c4e91f79029684310  libstdc++-v3/src/c++98/istream.cc
! 7adae83e0dd9ed6f0485e15dbb421a53  libstdc++-v3/src/c++98/list-aux-2.cc
! abe234bc845d7a759221c1caad48a1ee  libstdc++-v3/src/c++98/list-aux.cc
! 4bc338a372195ca235399072b8b7ad26  libstdc++-v3/src/c++98/list.cc
! 0db0d35ab11b29b5b2828cf0160e1ac8  libstdc++-v3/src/c++98/list_associated-2.cc
! fc33ed0acf80ceef9187dbb7eda62679  libstdc++-v3/src/c++98/list_associated.cc
! 6dfbe005b2933c84ce33101c06330f40  libstdc++-v3/src/c++98/locale.cc
! 4bae27438a526fd00a6a0ce6a862c2dd  libstdc++-v3/src/c++98/locale_facets.cc
! 92d21c2f9a1dd3532d9a20cf930839c8  libstdc++-v3/src/c++98/locale_init.cc
! f6f314bd5c74acee3b35f5da15a70a09  libstdc++-v3/src/c++98/localename.cc
! b2a00f73540beb80de2b11ff20e417f3  libstdc++-v3/src/c++98/math_stubs_float.cc
! 0a3a901271d8555d410d16844229bc18  libstdc++-v3/src/c++98/math_stubs_long_double.cc
! b000970167e6b72a0d9a65e57c445307  libstdc++-v3/src/c++98/misc-inst.cc
! 2718999cac8c65ea4ce98bcb8fc54c00  libstdc++-v3/src/c++98/mt_allocator.cc
! 2a4339cffbe037b18f335ae15ad8c0b9  libstdc++-v3/src/c++98/parallel_settings.cc
! be3e4199ecc240f898f559fde53349c1  libstdc++-v3/src/c++98/pool_allocator.cc
! 4edf6b5eb0114b8b8c9ed694c77e0753  libstdc++-v3/src/c++98/stdexcept.cc
! 6dfdb3db7d3ac9703fba95094b9a23fd  libstdc++-v3/src/c++98/streambuf.cc
! 9a6dd673f36236a2032bb66d31069b48  libstdc++-v3/src/c++98/strstream.cc
! 5ea65de08a665fc13dfe59376b5fbc92  libstdc++-v3/src/c++98/tree.cc
! 588ac7f69592b54bbe68ca1cafbc7a6e  libstdc++-v3/src/c++98/valarray.cc
! b4e60acfca987e556578f4a226c833c5  libstdc++-v3/src/experimental/Makefile.am
! f7e1df11d40cd866571fa66f619a3d3e  libstdc++-v3/src/experimental/Makefile.in
! 6846334ee8d270e0b42ec1f18f3e6cf6  libstdc++-v3/src/experimental/contract.cc
! 0c264537ce86e51b0c57eeef8ffadf49  libstdc++-v3/src/filesystem/Makefile.am
! bfe56c32c2629a3381ec6f10756f5c31  libstdc++-v3/src/filesystem/Makefile.in
! 884e909aa0801235b1d6b67156bea696  libstdc++-v3/src/filesystem/cow-dir.cc
! 9b53c364d753fa693cce1d68727a1982  libstdc++-v3/src/filesystem/cow-ops.cc
! 3985b8fca46c60e27ba47d4d73565f04  libstdc++-v3/src/filesystem/cow-path.cc
! a9e784beb869d9bc7d37934ce0a952f9  libstdc++-v3/src/filesystem/dir-common.h
! d45c23b8e35edb3a14e4d3400daeb1ed  libstdc++-v3/src/filesystem/dir.cc
! 60584b291ba8a75a1d1c1de97ae76297  libstdc++-v3/src/filesystem/ops-common.h
! f57d3b802f2c945a9fb27fec782676af  libstdc++-v3/src/filesystem/ops.cc
! 5c775f8681613058346febc5ec6dec92  libstdc++-v3/src/filesystem/path.cc
! eca2ea83a945773b5de8d23f7c99aaa5  libstdc++-v3/src/libbacktrace/Makefile.am
! a09a9f90214407e61a6687c92551317b  libstdc++-v3/src/libbacktrace/Makefile.in
  ad7d8ce6072a5a6ebe5a27824b57cb45  libstdc++-v3/src/libbacktrace/backtrace-rename.h
! e81b2ae90488bdb0ce9dbe763304ff3c  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
! 768cca8a1b8867af6a8d173d5097cb73  libstdc++-v3/src/shared/hashtable-aux.cc
! a2e0792470b988eee9f99138a16fab5a  libstdc++-v3/testsuite/17_intro/badnames.cc
! 1d3a9cc09f7ca2934fc6ed79399d1b45  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
! 661e182031451147b0a6c3e1e08ecd94  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
! 85d5908bd04a8ee824039dba1d692814  libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
! 3bbf67d1230b6846a03dd68cda1ffd2c  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
! cb4b0e2b8fb55afe51ec1f2d94ba41f9  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc
! 8a8a0688393d5cd9c11c118d9100d5c8  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_exceptions.cc
! 71c64f90af2006e2b409babd88765bbd  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_rtti.cc
! b1558b126b6e4763dc4c11f14f0204f3  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++1998/charset.cc
! 2205f887ec7ae20ba8ed1304554ec569  libstdc++-v3/testsuite/17_intro/headers/c++1998/complex.cc
! 358f574c9c559788f7a052338697948a  libstdc++-v3/testsuite/17_intro/headers/c++1998/operator_names.cc
! 528c50bf9c26cc941ce20fce7288ed00  libstdc++-v3/testsuite/17_intro/headers/c++1998/profile_mode.cc
! edb15317f3fc4c5b11c4ce1b5db72793  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc
! 6aa440e2d655eed515358509717c8f3b  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc
! b86f9727945a4ea41e9937b60ec3bba2  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc
! 336f6819acc677502f9137d2b60ba5cd  libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
! 8d362d5dd041e0818c8ad7d504808377  libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
! 416be19f3443850ec41a5dfb3a6633b1  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc
! d4c61f0c82f9f71cc484aaa782d187ca  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_exceptions.cc
! 5af79384af6abc7c3e51f24e1cf1d9ee  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_rtti.cc
! eae12cc50ecfebc0bef935c4683404ec  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2011/charset.cc
! 8551445e195b63c5bc4dbe7ed52ecce5  libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc
! 814605b3f2bffbc37fd9ae2371003409  libstdc++-v3/testsuite/17_intro/headers/c++2011/operator_names.cc
! babbdd6eab38d6d7f22e8566f7196eac  libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc
! f89b9e41b784f57d5ab7a58c1f79a534  libstdc++-v3/testsuite/17_intro/headers/c++2011/profile_mode.cc
! 584eea9c194c849e7c74d84d59dae1d5  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
! 01e397695beb1eefb90366a12c4d8395  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
! 41729ebf89ee97cba8733e001b1f9258  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
! 12a8b22467404234ee7a22821c02cce0  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_exceptions.cc
! e1f9a5de90f262c6631311a33fcbd700  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_rtti.cc
! 3986ee52163ac663428b4e604e746db6  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2014/charset.cc
! f721def1cdb79d9784526c633f6a5ae8  libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc
! 37c5c65a620032d67c0fb02dfb4fe92e  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
! 01086e34338c5773c1e8597d2b9820c6  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc
! 1976712d16a3c268dd42c758947676ce  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc
! 6bfc94afec2ef5ee3d6ec172ed54d194  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_attributes.cc
! 7ba7a3347cf631bf654a7a5ff31da037  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_no_exceptions.cc
! fc5c25c9a2268b5d8e42d61352d2c44a  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_no_rtti.cc
! 22185a0065bb4bf0b27a239cff35dcb0  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2017/charset.cc
! 4cac7a2ecd79627a569d2a5a7748d5ba  libstdc++-v3/testsuite/17_intro/headers/c++2017/operator_names.cc
! 00763b9699b39135fda457e687295b4b  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! 774759ed410f8423d2dd6e3d16243b43  libstdc++-v3/testsuite/17_intro/headers/c++2017/stdc++.cc
! ad6842716dd04d2bf316293218db4a12  libstdc++-v3/testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc
! 5187b9217c61a430a8c676154853fc1c  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_attributes.cc
! 7e1cb18ec86168bdc905dbc92734a677  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_no_exceptions.cc
! 27d76abc452348432ec9c8195f0b946f  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_no_rtti.cc
! b95ee861163a4569d4fadcf6534484bb  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2020/charset.cc
! 87c7733236320e31ca6bf506b77b98d6  libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc
! 63f0e684ae33ff5970309759eeaf2ba5  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc
! 9294278b7daa21bfd4ce42da363eaad0  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc
! 27956f7064f968d92d07606636d60b75  libstdc++-v3/testsuite/17_intro/names.cc
  047ad714f0a1ac010ab86a084dfbeee7  libstdc++-v3/testsuite/17_intro/names_pstl.cc
! 007efc2146fdda22fd1b14eaf4ea9b10  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
! 1693d92844259e69b8c6b8f258a91f17  libstdc++-v3/testsuite/17_intro/static.cc
! c90254a85d39b05da74079011eeb4c60  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
! 79d569e9137430f066cca2b9a6e9e69b  libstdc++-v3/testsuite/17_intro/using_namespace_std.cc
! 04c3f4710debea98f60d8c28ce36ae20  libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc
! d49c908f34e357e045d0a72ba470ad59  libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc
  8257c823b655a89013a0a1e788a69506  libstdc++-v3/testsuite/17_intro/versionconflict.cc
  165cb0e7c28903f02a4b4e2d0a08e544  libstdc++-v3/testsuite/18_support/105387.cc
  ed159a9e459da3e25bbcb9da82b17b38  libstdc++-v3/testsuite/18_support/105387_memptr.cc
! 900caf68dd1734d5e3d3d37e5cc57951  libstdc++-v3/testsuite/18_support/50594.cc
! 6e6f18a0e65358dea063c626d5b2b0ea  libstdc++-v3/testsuite/18_support/51333.cc
! 8f7ee895f30bc13efba5c3daaa32df63  libstdc++-v3/testsuite/18_support/96817.cc
! 4a065456a76854638ce5897e94b78a3a  libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc
! 2289b360fcf1ce87af467c68b5080d57  libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc
! b47307f040609a42119a718c519f65d7  libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
! 224b1214c02d0347427be5dacee92b28  libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc
! 929cf9edd9766e67aa06116883afa597  libstdc++-v3/testsuite/18_support/bad_cast/what.cc
! 73c77b190a7559f936ac8af0032f7b69  libstdc++-v3/testsuite/18_support/bad_exception/23591_thread-1.c
! 3f06fbaebb1edc3f4a5232c6f2a1450f  libstdc++-v3/testsuite/18_support/bad_exception/59392.cc
! a4588c4c1b6dabda341bb47f8f731077  libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc
! 36018bfcede3e4496d7d32c48381b2be  libstdc++-v3/testsuite/18_support/bad_exception/what.cc
! e24f91fd5946397a3492843849d56206  libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc
! 00a8a1326137a02beb52d4bf0fcde3b1  libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
! f1b7157409725a1fcae31b3ad71711b8  libstdc++-v3/testsuite/18_support/byte/81076.cc
! 9420c7274ed069895de2c8862e90b3f5  libstdc++-v3/testsuite/18_support/byte/global_neg.cc
! 7c3ea09440fb98afeffa0e63728d2667  libstdc++-v3/testsuite/18_support/byte/ops.cc
! def7435aaa638954caa307f0b8a078df  libstdc++-v3/testsuite/18_support/byte/requirements.cc
! 33dcb22fce9617bd88dd6f5b4c1e56eb  libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc
! daef18883c5da5e75090ef22b988f42f  libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc
! 0d5480876d5ef55856b97e120e2f3b0b  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc
! f4f086f988cf867097fb97b97bd5ca29  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc
! 5ae42d9aa24a6e35881ccd98bc09453c  libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc
! 9dcc86a3c83150701c22be13eb967709  libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc
! fd7493488695ad011e1987266075b29b  libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc
! 8ea7c7b868be03c195bdf58ef2fe7b9c  libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc
! 96f4ebf4b93d44e3b25706144b68aec0  libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc
! 8134d7ad30fb40facf382b25ac8bcac7  libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc
! 89b3aac706387c53424b28807653d906  libstdc++-v3/testsuite/18_support/comparisons/common/1.cc
! 089c5bdfd195fe88fa8a1b366a3725a7  libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
! 247d4da1c79d9d2bf80390d0a881a073  libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
! 9e9295053d595946649af33823facd2d  libstdc++-v3/testsuite/18_support/coroutines/95917.cc
! 0495b55127228b6a88823deaef1aa6b5  libstdc++-v3/testsuite/18_support/coroutines/hash.cc
! 66a4ec71c64d6d35fd9739f2c64e9ba4  libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc
! f765cdacbb3bcf3dc13e4012f336f322  libstdc++-v3/testsuite/18_support/cxa_vec.cc
! 63fe70289ca684d5de413716eef5745d  libstdc++-v3/testsuite/18_support/destroying_delete.cc
! 0472896ed933e1a02b3cb304ec1b5c68  libstdc++-v3/testsuite/18_support/exception/38732.cc
! e0505d3ef1eb583e04fea0fbfcaca162  libstdc++-v3/testsuite/18_support/exception/what.cc
  8a3e4fc86620d59634749ffecd317237  libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc
! e86b8e23a0011b142e7e7399e9a152b2  libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
! f166a9ba782fa5ed6f94cad10104f29c  libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
! 90b1267d879fe1ca7a49589f9e2a0892  libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
! c01b87868f56efcdccee837476b1a075  libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
! 7de5001bd619594d44a85ea6078e63b3  libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
! 66118cfac6c9edcbef19a27073076619  libstdc++-v3/testsuite/18_support/exception_ptr/90295.cc
  8907da30a344e71f1227eec1fae72f2b  libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc
! f07e1c7afa9d9329c63dae76e160c490  libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
! 961ef19b9d9bfeae8a0f4ca41eb58949  libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
! 4a0b03ca92e8886f4b72f82919f26d43  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
! 2859f73bd58a9a4e675e9197f219063e  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr_2.cc
! 692ddf2e653e0a53539d06886a1b3c3c  libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
! 5900bb081d64bdcecda4fa1e6fc91618  libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
! 47af6185b7318e2425dd2e3ad6adcce2  libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
! 10f8cdd10f3d80d2b19a9305731a5884  libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
! 301a829406df47c26da2b1e148d3d4eb  libstdc++-v3/testsuite/18_support/free_eh_pool.cc
! c8959c13fff60afb53b5cc697eb6948d  libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc
! ae19b2a5f3a6b884cb6649064c828730  libstdc++-v3/testsuite/18_support/headers/cfloat/values_c++17.cc
! 1697548b2d1b756b7dee24d0cdf617c0  libstdc++-v3/testsuite/18_support/headers/climits/values.cc
! 548e71fd4c4ec275e436ffc3ddb92fa6  libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc
! 0aa7f46a09bc0647c6332bf24d4150b0  libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc
! 9efb4a1ffb26f6114d6e4e7e5c87f4b8  libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc
! 889a32a89e15b24860cc5353ed1f30a4  libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc
! 4477e78baf9fd58e4d45b70566c31955  libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc
! d16e3160ef69cf9973a86404bbad3a6d  libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc
! 3f884d9e877c57a4299dcaf8b5d0d99f  libstdc++-v3/testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc
! 0d26bf6a1660eb7de3933142126c1796  libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc
! d5b5f6eebf3a00e3a75175402e43ff02  libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc
! e28a9f5ffc8f7e772be43562128495a7  libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc
! 160b60671219d49844cce60590c9f699  libstdc++-v3/testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc
! 968e5d944a4d262925245dfad7e53ef6  libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc
! b5d1ee9a8e7072ca886332aa5ce4f7d7  libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc
! 93aa4bf8ba6beb5614f9f09071332cb8  libstdc++-v3/testsuite/18_support/headers/cstdint/std_c++0x_neg.cc
! 82f2c5f50b99cbe2749c1e97b7aa0b8a  libstdc++-v3/testsuite/18_support/headers/cstdint/types_std_c++0x.cc
! 9bdf1bfbe7f06c412735e05e09421adc  libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc
! 40e3d1800b583610813633bd4c3b3faf  libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc
! 918b5cb4e9b3670502bdbf559b716aaa  libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc
! a1ff71c1ec8451875865d4ed712db797  libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc
! 3bf14c786f40296cf1ece00870bcde72  libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc
! f8189e0e6a0fc9ddd50e2ad861172753  libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc
! f4b3556a882c8bc3c1f07f899a7a976f  libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc
! 7b93b10b0f8b28fa58e740a88cc18956  libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc
! 49f503a7c74cf396c39269325ab34706  libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc
! 489be19a9a33995339daa18962badcfc  libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc
! 363146d715c0963fa2bcd6f10c34836c  libstdc++-v3/testsuite/18_support/headers/new/synopsis_cxx98.cc
! 4457874f81b01df5d15661bf7a3e30c1  libstdc++-v3/testsuite/18_support/headers/new/types_std.cc
! e7044fdaefd2a24678729969bb339689  libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc
! 085562e59ae5047878031f0090a5b8af  libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc
! 3f9cd4d825770f47877b9bd51983f666  libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc
! a665a5fb16107c56893bf0ac6dc6f04f  libstdc++-v3/testsuite/18_support/headers/version/macros.cc
! 2d3cc5accca5a38ec570e21cef4d126b  libstdc++-v3/testsuite/18_support/initializer_list/constexpr.cc
! 28173714fcd732070115880a836da21c  libstdc++-v3/testsuite/18_support/initializer_list/range_access.cc
! 2b3dd172d386d5163591c5ef91cfce06  libstdc++-v3/testsuite/18_support/initializer_list/requirements/constexpr_functions.cc
! 2da5cbf9158761f5a34dff856832cf0b  libstdc++-v3/testsuite/18_support/initializer_list/requirements/explicit_instantiation.cc
! cfd1bc376fa3b1594855e38e302b50db  libstdc++-v3/testsuite/18_support/initializer_list/requirements/typedefs.cc
! 8be49fcb6a9a5bedd2781d53666b8733  libstdc++-v3/testsuite/18_support/launder/1.cc
! 8a33f355e8bd131cd05bb8cef1da23e3  libstdc++-v3/testsuite/18_support/launder/nodiscard.cc
! 5fcc5b02cc9ef55cb5b82f62316c71b6  libstdc++-v3/testsuite/18_support/launder/requirements.cc
! 0018dc7ac7b3071ea858b54d38b84140  libstdc++-v3/testsuite/18_support/launder/requirements_neg.cc
! 36fa56190e1ea681bb89ca30e0646f33  libstdc++-v3/testsuite/18_support/max_align_t/requirements/1.cc
! a91697082cebbdc1cf6cea616c0e3dcb  libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.cc
! c1f2923dfae7c116a64c420be1b0525d  libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
! 0400edb565e3861762f8125afd7ce8ab  libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
! 0a0f928d65e6a290c66bd58283fe69bf  libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
! 36c1fd11b4c2a405dfc93f3f7b64a871  libstdc++-v3/testsuite/18_support/nested_exception/79114.cc
! 6be1df0d4c4dc5a39f649d686276fe26  libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
! 5b269fc7430e480725f5da39943b7b1c  libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
! c912fe6956299e96f48a374fecd1316a  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested-term.cc
! b75154e4847f03181aa2c7370d706ef2  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
! 203549aec4798650df155724cb3e78cc  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
! cec0c10f56e3f41069b5edf5d2366e87  libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
! 2ada0937f1fe1a60f70aa4eeb32abf1a  libstdc++-v3/testsuite/18_support/new_aligned.cc
! 9d73292fa9c66bd286b7a218f431700e  libstdc++-v3/testsuite/18_support/new_delete_placement.cc
! f055c78e8747fc4f4b5a710da7dd09a5  libstdc++-v3/testsuite/18_support/new_handler.cc
! 8cc4aa2108f45619ab3b34fa4a9615d4  libstdc++-v3/testsuite/18_support/new_nothrow.cc
! 1652cf8915d96c86b7c42ec22540880f  libstdc++-v3/testsuite/18_support/numeric_limits/29989.cc
! 88741ebae8872d3a3bd26a921c852b77  libstdc++-v3/testsuite/18_support/numeric_limits/40856.cc
! 37e7a375424dc5b6bf1e47809f84c9eb  libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc
! 0db5ecacd0b9ab1b2399801aedaab83a  libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc
! 4726eebd3318f872150607f56999da8a  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default.cc
! 14317b9c23ab197a298d28b4c013bbe5  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default_c++0x.cc
! 5ff43ba697b222482dd7c585a9dca7b2  libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc
! 66c3e828e8464fa42dc1907d6c140457  libstdc++-v3/testsuite/18_support/numeric_limits/digits10.cc
! 18bc9250e98c9aacc1305bc4834b282b  libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc
! 15cf9ab625f5bb78bdafc8b23a811300  libstdc++-v3/testsuite/18_support/numeric_limits/epsilon.cc
! 8940b213fde2ddf981e235d9fc7fc9d4  libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc
! 0bad8949ac9ff757c17cf4beba57369b  libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc
! 5e4958c212fb66812beca5494effffe3  libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc
! 6bd9927ed550f5daf539a90fa76952d2  libstdc++-v3/testsuite/18_support/numeric_limits/lowest.cc
! 163b27b8b5a58f5eb12b571ed74c3f9a  libstdc++-v3/testsuite/18_support/numeric_limits/max_digits10.cc
! 605514c27e1a94389a071545ba5fb8c9  libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc
! 82e44fb415265e9f1f44d74b9e75c206  libstdc++-v3/testsuite/18_support/numeric_limits/primary.cc
! 266382aa7f8039f96b71ddda6afc2b80  libstdc++-v3/testsuite/18_support/numeric_limits/quiet_NaN.cc
! 5c2b8c46ed8fbdfc65e86a4236b88723  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc
! 1e6a108fd979e33cb149de569e281631  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_functions.cc
! 24d6fa4ccb4f432c3b8e366828851b67  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc
! a906925b10e0436080d570a389a6daef  libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc
! 01ebe853c947ebb5e621174d6aeb4553  libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc
! 4e3ea06d904d52667f565825f1e4e919  libstdc++-v3/testsuite/18_support/pthread_guard.cc
! 80d3f7823484c223d65241febf462975  libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
! ab48a1f1389afd0fcfb7b41a3d573e7f  libstdc++-v3/testsuite/18_support/set_terminate.cc
! a1dc688371fb75b584530a0b31ef3371  libstdc++-v3/testsuite/18_support/set_unexpected.cc
! 357ab35fc5b0286c9e30a3282eb5985a  libstdc++-v3/testsuite/18_support/source_location/1.cc
! eb2280df342a2363a744f554e99a0b03  libstdc++-v3/testsuite/18_support/source_location/consteval.cc
! 3ea05c07286e20de228dcc994da912de  libstdc++-v3/testsuite/18_support/source_location/srcloc.h
! 87ffd7af1e82306764d6f6556030cd3f  libstdc++-v3/testsuite/18_support/source_location/version.cc
! 26e1ca77d1b1b531dac39c32f4098861  libstdc++-v3/testsuite/18_support/terminate_handler.cc
  0ba910b833dd281cbb0614829d4c21d0  libstdc++-v3/testsuite/18_support/type_info/103240.cc
! 9a24c3156b308b0bdc449e7d1e6e11bd  libstdc++-v3/testsuite/18_support/type_info/52562.cc
! 7cc0fa5a242dc51c7245f1c2fc52e0a7  libstdc++-v3/testsuite/18_support/type_info/constexpr.cc
! 10b49b90c00cd62f61115cb9b2531186  libstdc++-v3/testsuite/18_support/type_info/fundamental.cc
! 8d6e574e2ca95775b2edb92c340217ef  libstdc++-v3/testsuite/18_support/type_info/hash_code.cc
! 17aafb05a41a47bc422bef81be29f6b6  libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc
! 1da73ce9e08b9676c7fb993e027600e8  libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc
! f2dd2e6bcdea542c5007c4f4a681c683  libstdc++-v3/testsuite/18_support/unexpected_handler.cc
  e76078fa52225514dc89f9b1116c07ff  libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc
! 74ac8234489c43383d1fa6e5ba07f11e  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc
! c34ccb2aa0a507449d259f6f4c42375b  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/default.cc
! c21c2b15abd6aca7af6303cd81b3eb51  libstdc++-v3/testsuite/19_diagnostics/error_category/generic_category.cc
  0a66d8bbf6fa03d3f76f4e2fdde4daf7  libstdc++-v3/testsuite/19_diagnostics/error_category/noexcept.cc
! a4494fe4695037580fe1549dbf6f08da  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/equal.cc
! ffa9b4f7fb8594d309616bb090d0f9b2  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/less.cc
! a8c3fa39fc7ee01b278dbf9a30c31c04  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/not_equal.cc
! 5576d9f56ce33b769ff452c516d5b132  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc
! c1ee1f22c4c449ddcf132ff728885d75  libstdc++-v3/testsuite/19_diagnostics/error_category/system_category.cc
! 944d471bf6d796ae7bfabc6817e2fdaa  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc
! 3e764412900bc7a965cb4616e033e7ff  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc
  81f9725b7658563bbe88b3ba6c3c1852  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/lwg3629.cc
! 012911e440ed59e44516ddb96b5ce06a  libstdc++-v3/testsuite/19_diagnostics/error_code/hash.cc
! 6a50fa3756e7b75608d49cc56b41b125  libstdc++-v3/testsuite/19_diagnostics/error_code/is_error_code_v.cc
! ee241706c0c88a43c14ca494f261b448  libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc
! 28efc8baa03b78b2303c026cc87ab5a6  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc
! 7695daada431abae92faf513048e7cbe  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool_neg.cc
! 498e52ca5e24c09f298d8c6435335000  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc
! 59bc88769cf51703574077bd5710f31c  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/less.cc
! b74cfd5ca1d085d956e0f185fcc714b9  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc
! eeda1e5d85665c4c8d5eafef7588be47  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc
! 127106ca75a51350a13aa8340f6f8ce9  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/1.cc
! 14f0075bdad16d8cfc06b883cd4e4a30  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc
  0c9bc80a7caee067ec088b66373dcca8  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/lwg3629.cc
! faaa94284ea722c7414bdc5ea355c9c2  libstdc++-v3/testsuite/19_diagnostics/error_condition/hash.cc
! 99feffbbf3be99529199d23f0e2d9bd7  libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc
! fdf4de152b0d9d4b70714a820c1d1fdd  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool.cc
! ec7909cc28bb631aeecd7fc4d076edbb  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool_neg.cc
! 2eceec6bb380dacfab94831105431de4  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/equal.cc
! 6eea9e8a8155bf335679cfc963fc18f1  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/less.cc
! c467d3c891e76c0a7609eab1457337d1  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/not_equal.cc
! f5e76a55d4b4bae31bb03cd56c12e3b7  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc
! 6d0b4a9e2b92ae07e0c09c1a77ff7280  libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc
! 55ce06306db464b6fe6e296fa1cf0412  libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc
! e6cff57213343d938737c12b9bed9041  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc
! 722edcbec916760727d8a0576539fc91  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc
! d91ac6d523f6b1944399bf0efc522878  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/34538.cc
! c076d11c7c3d30dd64c4c97ff88f6dc8  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc
! 34b0e39de1352e0d5712b0129ea9c748  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc
! 673782a58ee730d847efd6d658d72097  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc
! d21e9613676a62fd5797bd48ce685819  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc
! ae3d1062e6093057588b1ca45a12bd21  libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc
! ac9de1c42c132bf614c1665920cbd1ab  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-1.cc
! 05508b202174577692dc92de2d293c64  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-2.cc
! 30d4a3e264bb7b10238920655ead17b9  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc
! 4fcce997860ff76bb75413cc8b7b3960  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-big.cc
! b81c5c8c227a9a71e5efdc513a3b1a4d  libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc
! 7bffdebfc0db0aa1a33ff6947b1b95d4  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-1.cc
! 643fb69aa51d409e269bfd7077a736c1  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-2.cc
! b19ff1d2f7a35f456f900bbd20bffd32  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc
! 670eda46fbfa7789251c32b2ebbd9c15  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc
! a3f875cb81845cea6552ad2be474733b  libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc
! bcbe8956841ad8748b7d53b018a0f23b  libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc
! 489c2f3ec1b126c0f5cab03ec75198b5  libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
! 1a16038fc4f582a0976f9f59a252d7cb  libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc
! 663e3dcea433a03255e7eed74d7d7f2f  libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc
! ea274be46bbf3f9fb04b2ff6ef7a2cfd  libstdc++-v3/testsuite/19_diagnostics/stdexcept.cc
! 6b070c06d56cd63e4f31ba7a7d84afe2  libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc
! fbe539dd143b3bde8fedbcfdda81797d  libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc
! 8b6c2bc9034df48a14a4045ba2f7f8c8  libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc
  b8fd5b3cc781e4351fcba88c19391352  libstdc++-v3/testsuite/19_diagnostics/system_error/noexcept.cc
! 5d8e9d87141374c9b821851752a21a47  libstdc++-v3/testsuite/19_diagnostics/system_error/what-1.cc
! 7463e2cc3ac14f7112cdb75ad6106561  libstdc++-v3/testsuite/19_diagnostics/system_error/what-2.cc
! 7edb6994ed31df10d0fe23752ed3fa1d  libstdc++-v3/testsuite/19_diagnostics/system_error/what-3.cc
! 0e37d8e4f83f4ede412343dc343046a5  libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc
! 71b528937a5ee7efbe5708f7d801614c  libstdc++-v3/testsuite/19_diagnostics/system_error/what-big.cc
! 240350ab558027ec58998650b2a2c041  libstdc++-v3/testsuite/20_util/add_const/requirements/alias_decl.cc
! 4d62fe7943961a619b0ec1002da18291  libstdc++-v3/testsuite/20_util/add_const/requirements/explicit_instantiation.cc
! 47a0ada99d5913bbab75415d03ffcece  libstdc++-v3/testsuite/20_util/add_const/value.cc
! 725fd84a4951fe1b8e720ca6daf1e923  libstdc++-v3/testsuite/20_util/add_cv/requirements/alias_decl.cc
! 743c7a2bf03d647dbdea09f27fb51c7e  libstdc++-v3/testsuite/20_util/add_cv/requirements/explicit_instantiation.cc
! 870e5b48ef3728ab7e049fa5d6df6141  libstdc++-v3/testsuite/20_util/add_cv/value.cc
! 03cac62b20d6e449a01f490aa2c2b6a4  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/alias_decl.cc
! 27126fc944b4d24fa49c68b74ba76df9  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/explicit_instantiation.cc
! b60c3066b762b2d2ba1b57e52f94276a  libstdc++-v3/testsuite/20_util/add_lvalue_reference/value.cc
! 509cd2cbfc8beaea6e6063b6c56d8926  libstdc++-v3/testsuite/20_util/add_pointer/requirements/alias_decl.cc
! 64833a71386d7b2f3ecf88559f14cfcb  libstdc++-v3/testsuite/20_util/add_pointer/requirements/explicit_instantiation.cc
! 891fcb6df80d02e17dfe7e5e832bf2bc  libstdc++-v3/testsuite/20_util/add_pointer/value.cc
! da511e9677d158b789bc5b15628eafb3  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc
! bacbd00af5ace13660a90c1d3f292d72  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/explicit_instantiation.cc
! 5dc286c989516775f1d196d82b93c81b  libstdc++-v3/testsuite/20_util/add_rvalue_reference/value.cc
! d0b6760e1a8a194fd74529c0f5aee577  libstdc++-v3/testsuite/20_util/add_volatile/requirements/alias_decl.cc
! 49b6388449ff689a6078b86d56e39f5b  libstdc++-v3/testsuite/20_util/add_volatile/requirements/explicit_instantiation.cc
! 7444975b04980783c98f82395925ad12  libstdc++-v3/testsuite/20_util/add_volatile/value.cc
! 8ca260c9a8f4d5357bbc23e83d1f1afb  libstdc++-v3/testsuite/20_util/addressof/1.cc
! a9d51b40afbe0f483b30281cf92f8ae2  libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc
! 5e852d206ee03aa7cd85e2aba87049d4  libstdc++-v3/testsuite/20_util/addressof/requirements/explicit_instantiation.cc
! 5bb96ab7b0b949dc6d278825b55fc67d  libstdc++-v3/testsuite/20_util/align/1.cc
! 131138f70912e480dd840633413c4691  libstdc++-v3/testsuite/20_util/align/2.cc
! bfdefe28adbf4bc9c0d81ac6d06d9f8e  libstdc++-v3/testsuite/20_util/align/3.cc
! cb35abadc7188420a699135747c7afe7  libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc
! 8bfd75d4a3f45208bf3cd06405c4cbd5  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc
! 1bdf00372c96b835ec9114f7d9c83c83  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc
! de33db71a9e91ec6912a7ef971223ed0  libstdc++-v3/testsuite/20_util/aligned_storage/value.cc
! c99ed469780336f65a213a74757b3979  libstdc++-v3/testsuite/20_util/aligned_union/1.cc
! 187dba3d012b48c031418b8a2ec0f329  libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc
! 66764b1e771f2559f4796fccff84286f  libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc
! d9292eea1fe7111312300286fa202e65  libstdc++-v3/testsuite/20_util/alignment_of/requirements/explicit_instantiation.cc
! d6fd4fd7b33a01ed98f7f67ecd75c5d3  libstdc++-v3/testsuite/20_util/alignment_of/requirements/typedefs.cc
! 00b0ca4ed4fe5132e71680b593d65977  libstdc++-v3/testsuite/20_util/alignment_of/value.cc
! 80c2ac709253113665a9aa3000617054  libstdc++-v3/testsuite/20_util/allocator/1.cc
! 6a285445f33dfd377092d80bde6c950a  libstdc++-v3/testsuite/20_util/allocator/10378.cc
! d9c5bf9dc41e5e13c6a75112c006b117  libstdc++-v3/testsuite/20_util/allocator/105975.cc
! 5fa918472f095597252df2ec333e432f  libstdc++-v3/testsuite/20_util/allocator/14176.cc
! 10f147f01c096755e20bab5447e5b705  libstdc++-v3/testsuite/20_util/allocator/33807.cc
  ae49058091ac2f31814de6246e958d6a  libstdc++-v3/testsuite/20_util/allocator/64135.cc
! 1ebbd1b584bf1d6acb6c067c313edaa9  libstdc++-v3/testsuite/20_util/allocator/8230.cc
! 42e7ce73eab09500cc3d423059905a70  libstdc++-v3/testsuite/20_util/allocator/89510.cc
! 7a68c72aabe495b3ce2c739fdf7aee79  libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc
! b71a95664dc355bfe333833e811dd6be  libstdc++-v3/testsuite/20_util/allocator/overaligned.cc
! 59e31a2330e693f3ad59fe15e77cb3b8  libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc
! 1493cc975097f0fb5ff62334ad86a654  libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc
! e4496bdeacfe147772ae9ddff8e42168  libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc
! 89c50793f82e06e2f798311d93c7fdcf  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
! 2e749a2edb5d2e138b6f778cada4a7ca  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
! 85e9d232b615cc4749ffaef8b7a6d6ee  libstdc++-v3/testsuite/20_util/allocator/void.cc
! cd4f8aa7e809c1f61710c202de45c08a  libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
! 6bd8e984c9f51c1fa9bc618100628ed1  libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
! 803e877a7873c9281167bc02c45c1d83  libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
! a7f0e1c700dc5a70bc60c58bd15084de  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc
! a863cf5675199587b72d724a3853ac83  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc
! ca676933762319a1d61d8d2956e71133  libstdc++-v3/testsuite/20_util/allocator_traits/members/construct.cc
! 0d1e96b63ea2b17d2da3bb674568713e  libstdc++-v3/testsuite/20_util/allocator_traits/members/destroy.cc
! e017889d16319fe6a9855e5c1f07778f  libstdc++-v3/testsuite/20_util/allocator_traits/members/is_always_equal.cc
! 5eefd877b8c473d5356ce6cd18bd6ef7  libstdc++-v3/testsuite/20_util/allocator_traits/members/max_size.cc
! fce6aceb9e97e73eeb66cc2bd2234c24  libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc
! 06e74339cf950c72baf00a24234b751d  libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc
! 29b6e54af654d0612605da78714097b7  libstdc++-v3/testsuite/20_util/allocator_traits/members/select.cc
! 965bf8bbfb5c510c95c35f6dbd28fd8d  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc
  bef0ecc9b87819710fa15591c4f27204  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/rebind_neg.cc
! 6ad909338633fddcd8c01114488b453d  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc
! 195573c931acc4fefe174b41e4e1581c  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs2.cc
  53d95c7e7934ce41b96d0a86033b6a99  libstdc++-v3/testsuite/20_util/any/102894.cc
! d0d06a58b3fc2dc795244575608eee9a  libstdc++-v3/testsuite/20_util/any/assign/1.cc
! ee2fe0f60807956e4aadbc5c212bbac5  libstdc++-v3/testsuite/20_util/any/assign/2.cc
! 0d6400a81dc500edfa2b9c3b453e7e6e  libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc
! dfccaf7e7a8edb05c2cb20b5428a00cc  libstdc++-v3/testsuite/20_util/any/assign/emplace.cc
! 26100b0d1054ddbe7a6929c0938580c9  libstdc++-v3/testsuite/20_util/any/assign/exception.cc
! 0e032a4e6a3a130c055a6ed694265994  libstdc++-v3/testsuite/20_util/any/assign/self.cc
! 30c38541426f8c0dbf3a91884078e3ac  libstdc++-v3/testsuite/20_util/any/cons/1.cc
  097d518046e23537949952c936ddfa1c  libstdc++-v3/testsuite/20_util/any/cons/101034.cc
  335e5502fad2ac140247bdc170504f8f  libstdc++-v3/testsuite/20_util/any/cons/104242.cc
! 05c87f655dfa70e5eee1e3005528dd73  libstdc++-v3/testsuite/20_util/any/cons/2.cc
! 922a1d1eecb4b3e2695bfc5905eb08f3  libstdc++-v3/testsuite/20_util/any/cons/90415.cc
! 8172f07260610946b66c9dec12adef3b  libstdc++-v3/testsuite/20_util/any/cons/92156.cc
! 1616255858aecfe08c61921b1b23a257  libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc
! 9b676ab5b73fc45398c1cc1dca0ba93a  libstdc++-v3/testsuite/20_util/any/cons/aligned.cc
! 67be89943449af2b403586337a844e13  libstdc++-v3/testsuite/20_util/any/cons/explicit.cc
! ff193074a8458a2e074973c71219eb6b  libstdc++-v3/testsuite/20_util/any/cons/in_place.cc
! 5ed048d17ac016e75f4724c5c67d08f4  libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc
! 283af6cf2be9e2e390a16e984fa9887d  libstdc++-v3/testsuite/20_util/any/make_any.cc
! 3d391318968960ef81337edd765c1f4a  libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc
! ff9efb006ed640c7ec67c5098b79f34d  libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc
! cad434b9df7e235bf9061a3b408c9438  libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc
! 180571c727b8c748345f1c500a2668bf  libstdc++-v3/testsuite/20_util/any/misc/swap.cc
! 82fd0d666c2fd3edb0de8b203835359f  libstdc++-v3/testsuite/20_util/any/modifiers/1.cc
! fa6a19b30c1071b999c338c03e2cb4bb  libstdc++-v3/testsuite/20_util/any/modifiers/83658.cc
! 9c0760905d53f1cf125664b6f73191fc  libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc
! f28104df73ecec358c910960aaa72b19  libstdc++-v3/testsuite/20_util/any/observers/type.cc
! b95061cfc8c1b4218c23197ef6535dc8  libstdc++-v3/testsuite/20_util/any/requirements.cc
! ef6414a49b693fb6e8d8f8aea5b209b2  libstdc++-v3/testsuite/20_util/any/typedefs.cc
! f9a2bd5e824353e5bec80112acf896ae  libstdc++-v3/testsuite/20_util/as_const/1.cc
! 994bfcf43d14c8e96c59924099abc883  libstdc++-v3/testsuite/20_util/as_const/rvalue_neg.cc
! 2b5df8d4b01fb55a6ab9ba8521b7c075  libstdc++-v3/testsuite/20_util/assume_aligned/1.cc
! f8a588e32821f9ba70aed45c186b4b82  libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc
! dc9b06d697ca668b470056f1e5e1f1f5  libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
! 5ceba7a15a15ef235e6ea21c41140b51  libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc
! b579b2b5c5e405bb03ab8572cae9fcbd  libstdc++-v3/testsuite/20_util/auto_ptr/1.cc
! 227e6e3b031dc3ad94187c581e090b5d  libstdc++-v3/testsuite/20_util/auto_ptr/2.cc
! f34b36fa4344433e72f94da293b80cb1  libstdc++-v3/testsuite/20_util/auto_ptr/3.cc
! 2ab4ca36b6f24d599ed343ff405a8e6c  libstdc++-v3/testsuite/20_util/auto_ptr/3946.cc
! 02bff8a3031a259629db28905d0bf38a  libstdc++-v3/testsuite/20_util/auto_ptr/4.cc
! a446dc426432da5e709b83077405338b  libstdc++-v3/testsuite/20_util/auto_ptr/5.cc
! 79cd9495318d46c536f1fdebb56d0923  libstdc++-v3/testsuite/20_util/auto_ptr/6.cc
! 09b8fe0f383ef2279a3d9ed82f5afbf0  libstdc++-v3/testsuite/20_util/auto_ptr/7.cc
! 0aa73ebb9bd0d442d8bc333152d45bf8  libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
! 6b79dcdf58ccfc3fa1c4626617a385e4  libstdc++-v3/testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc
! b60207b01d1087d149e0623075e8d531  libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc
! 30e77c71ea27b4641c489bb62171ba5e  libstdc++-v3/testsuite/20_util/bad_function_call/what.cc
! 23db7569e5050e20827dade4dd30b713  libstdc++-v3/testsuite/20_util/bind/35569.cc
! ebc317f73829237b40782c29a4b6ca4c  libstdc++-v3/testsuite/20_util/bind/38889.cc
! d1feac5a6ae893a2f3ecb7a2c6a76928  libstdc++-v3/testsuite/20_util/bind/42593.cc
! 47196c0b00b704a9bd2265716c8d7ba1  libstdc++-v3/testsuite/20_util/bind/45924.cc
! d5fb0b8148fff311e629fedf73eab2c9  libstdc++-v3/testsuite/20_util/bind/48698.cc
! 00860253d8c6a749838738d4ad8c6283  libstdc++-v3/testsuite/20_util/bind/49058_1.cc
! 518351a8a6c77e0f42ec7dba14b9d9fb  libstdc++-v3/testsuite/20_util/bind/49058_2.cc
! 2aee90034926239c34aed7c59e0b68f8  libstdc++-v3/testsuite/20_util/bind/57899.cc
! a1bc9c024c2fcce8aa916f91664fc6f7  libstdc++-v3/testsuite/20_util/bind/60497.cc
! 25aaa8561d10c16748dfa58a7f9d4cb0  libstdc++-v3/testsuite/20_util/bind/68912.cc
! 7e88bea3c30ef3de58ed5152eea5758b  libstdc++-v3/testsuite/20_util/bind/79798.cc
! ad222a7662818952150ff1e896fa3d3f  libstdc++-v3/testsuite/20_util/bind/83427.cc
! 1947b789d50cf54137cede3298812fff  libstdc++-v3/testsuite/20_util/bind/91371.cc
! ef80378abadb9425c6b43212ee3a40b2  libstdc++-v3/testsuite/20_util/bind/all_bound.cc
! 7664ea84c72f010f69f9062b2abf9805  libstdc++-v3/testsuite/20_util/bind/constexpr.cc
! 79a3f55fc4927ec664517bf0651c62da  libstdc++-v3/testsuite/20_util/bind/conv_result.cc
! 7d66333f1d0fb37a1c585728a088f21e  libstdc++-v3/testsuite/20_util/bind/cv_quals.cc
! d1bcb20c9df7d3093d253212d2b3abd9  libstdc++-v3/testsuite/20_util/bind/cv_quals_2.cc
! 66eb68f8795a0447b45848bcc1ef5025  libstdc++-v3/testsuite/20_util/bind/cv_quals_3.cc
  ac8e93d4882e1ff9282d9a8a2b291031  libstdc++-v3/testsuite/20_util/bind/dangling_ref.cc
! f5054078475268ad09875ec7b4e5daa1  libstdc++-v3/testsuite/20_util/bind/is_placeholder_v.cc
! ec62fef561a1089bfaf166057a0bf97f  libstdc++-v3/testsuite/20_util/bind/move.cc
! 60ce1f18234be0aa8b7a15aec1d1bf12  libstdc++-v3/testsuite/20_util/bind/nested.cc
! f7835b12ebc78dfbfd92e7ea0009129e  libstdc++-v3/testsuite/20_util/bind/placeholders.cc
! 54111bea275d92306634b466007bf41c  libstdc++-v3/testsuite/20_util/bind/ref.cc
! 472ef7d8e6bc573e0fbdef41c148ab73  libstdc++-v3/testsuite/20_util/bind/ref2.cc
! 7efbafe3ff4ce6578ae62c14d4dd1276  libstdc++-v3/testsuite/20_util/bind/ref_neg.cc
! 74dd9f024a0fd7328cd0bbc7a5a9a350  libstdc++-v3/testsuite/20_util/bind/refqual.cc
! 5b2714416c46b4e95667b1d81e33c6fa  libstdc++-v3/testsuite/20_util/bind/socket.cc
! 22b315cd786be549e08a0d3d60a69756  libstdc++-v3/testsuite/20_util/bitset/107037.cc
! d9ee4f6e2ec24574e43361cf5118aa76  libstdc++-v3/testsuite/20_util/bitset/18604.cc
! 08714b98288c62707f79ec54dae11de0  libstdc++-v3/testsuite/20_util/bitset/45713.cc
! e35574797464337128921945ec6781a1  libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc
! 59cac10057eb2790d1a548c997207a9a  libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc
! 3591ce6686f2c642cff8d2424971bcf6  libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc
! 14776ceac5447adc0dbe855f8b1e1601  libstdc++-v3/testsuite/20_util/bitset/access/to_ullong.cc
! 506e022cedb0b02be0502ef7dda63982  libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc
! c6de06997d6158f01166a16997e00cc0  libstdc++-v3/testsuite/20_util/bitset/cons/1.cc
! 3c78d1686414bf15e4656ac87e58f909  libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc
! 84e1083387f3ff0a1dd5c9f7d08915fa  libstdc++-v3/testsuite/20_util/bitset/cons/2.cc
! 9bb42dcf7c65c932b81ce71b339d9c91  libstdc++-v3/testsuite/20_util/bitset/cons/3.cc
! e9efacab7f64fc9867c41dff1a6bd6a1  libstdc++-v3/testsuite/20_util/bitset/cons/38244.cc
! b27eb5ce75db5b95b84c79b8c2b7adc4  libstdc++-v3/testsuite/20_util/bitset/cons/50268.cc
! be07a3604de6920ec90efce95856133e  libstdc++-v3/testsuite/20_util/bitset/cons/6282.cc
! e6e6dcb07a466ee40b6293d847cc812d  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr.cc
! d3b985bd24bdf87df163f0197d272cb9  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc
! 001da5f809a10bd21d5ec2d936b08a7d  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-1.cc
! 25aeba0a7d5d6d0e6a3cd637b6de8514  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc
! 8f5a88d9079f79f85483f8216d077f38  libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc
! 7e5517b6c4a32f412609393c7c36c533  libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc
! adb24a284375074f57f0d79edf69f304  libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc
! 1b52d058855d1d316ec2a829deeb86d9  libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc
! 9876d32d3bf7f92712a425f0f4ad9778  libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc
! 1b5ab2c267e8f812533164952b99ae50  libstdc++-v3/testsuite/20_util/bitset/hash/1.cc
! 8b2907e0bb1e21df0d67b963bcff84ee  libstdc++-v3/testsuite/20_util/bitset/io/input.cc
! 08336c599d6081cfb32b134935b8216a  libstdc++-v3/testsuite/20_util/bitset/observers/6124.cc
! 141a779a429aeca8e133058fa4d93b3b  libstdc++-v3/testsuite/20_util/bitset/observers/all.cc
! 549223dd9bad3c2424964b62e1959f98  libstdc++-v3/testsuite/20_util/bitset/observers/test.cc
! b7bf34395127d525cc0b1f5f1385f252  libstdc++-v3/testsuite/20_util/bitset/operations/1.cc
! 0663b44ff78292568aadb66178acaf2f  libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc
! 9d4d5cff2cb4e278f2d631b7ce889718  libstdc++-v3/testsuite/20_util/bitset/operations/2.cc
! b6c49e2294dfd5037f65fb886af6568f  libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc
! 9465879898d96c700038f0fa4174b524  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr-2.cc
! 43bfea314720fc3986dc9df93ae70331  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr.cc
! 9a3a693f7e09c8be7d7ed2be88e7d315  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc
! ec441593fa14ea28f117784c1b351bc5  libstdc++-v3/testsuite/20_util/bitset/requirements/constexpr_functions.cc
! 136ee9a416283f6bbb3f1b3ec4657743  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc
! 94d1436b518a220817928c8e51d1b521  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc
! 27ae3a4a5b911a05dc593e0798d0f350  libstdc++-v3/testsuite/20_util/bitset/version.cc
! 94f1f342972a39eb091f891860f51353  libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc
! 7b45f3d65401a77e7c8feec605d0e13f  libstdc++-v3/testsuite/20_util/common_reference/100894.cc
! 9a0d7d5498703a4e88fb5a1aaba6a486  libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
! 54d83dc72a955526b4c59091d4b6a975  libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
! 7052813ffacdd91fe1cef2639d255c94  libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
! 5df469148adb157ebfaff0da0bab29ae  libstdc++-v3/testsuite/20_util/common_type/requirements/alias_decl.cc
! 594433cc1f153fd913a38f326838b922  libstdc++-v3/testsuite/20_util/common_type/requirements/explicit_instantiation.cc
! 7e7179cdb6db910f59b991d27a715149  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc
! a92fed4c75c06ba8891bcca109d5e58a  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc
! 604fc40ef75e4a8233ea5caaabd6399b  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc
! e1ffd74ce53948eb4746aa0118adfe04  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-2.cc
! d2bf60207664438bb79e8cfee840cf4b  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
! 64f6c4a8649593be5c6f5d31bd9c6698  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
! baf522a802f4062deb4573182d780bc3  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! 32100ca95d2c98a35f4d719910b1d1b2  libstdc++-v3/testsuite/20_util/decay/requirements/alias_decl.cc
! ab2e4d0fb520f387da8b1fe896a7bc54  libstdc++-v3/testsuite/20_util/decay/requirements/explicit_instantiation.cc
! 9d6074cde66f9baa1bd1405dfb040c67  libstdc++-v3/testsuite/20_util/decay/requirements/typedefs.cc
! 4ab6bf8c57be9e7706deebdddb19928e  libstdc++-v3/testsuite/20_util/declval/requirements/1.cc
! fa05b9d751ef1aff768cb0437bd4ea69  libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
! 4bdd3bce35b20aa9a4474b875a7bf371  libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc
! 363a9d906d50395fe2d39e6cf4a71abc  libstdc++-v3/testsuite/20_util/default_delete/cons/constexpr.cc
! 4ca95d7d3c5da2a2119a2bf2eb34887f  libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
! 2cc04afdbb7bdb31aae6c8f04d67c225  libstdc++-v3/testsuite/20_util/duration/arithmetic/1.cc
! edc8f4d89acbd6814f52775cb8eabdd9  libstdc++-v3/testsuite/20_util/duration/arithmetic/2.cc
! 30c9ca07c179b4113f3963904cfb44a4  libstdc++-v3/testsuite/20_util/duration/arithmetic/58850.cc
! c1c59d76f99d6df119269e328a06e3a0  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr.cc
! 1d7de797772b173c148560638030ad99  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc
! 63a7843c76a480e032ea3b4e554322ad  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr2020.cc
! c06f415f6f0924f878a898566eb03674  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr3050.cc
! a4a9f4761425d4965ae9a91d8a0eca9d  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-1.cc
! c310a191a975be714675bb6ff9ab5168  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-2.cc
! fb1598924c8f9eb697450267a611f1b0  libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc
! 4537589c008d71f6364b9b47b572de4f  libstdc++-v3/testsuite/20_util/duration/comparison_operators/1.cc
! 3de0054c6561df68954dcbd8ce79e7f5  libstdc++-v3/testsuite/20_util/duration/comparison_operators/constexpr.cc
! 49f523f9e056d5b60d49565d0ed9e949  libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc
! 7984ac11209a19f1b214039012d83d03  libstdc++-v3/testsuite/20_util/duration/cons/1.cc
! 95a9b5386bce7212fcb9662e230cda00  libstdc++-v3/testsuite/20_util/duration/cons/1_neg.cc
! 0a5530f5ad312332efa6ce0de91d0663  libstdc++-v3/testsuite/20_util/duration/cons/2.cc
! 4717677f14bc380cbdac877882fd44ec  libstdc++-v3/testsuite/20_util/duration/cons/54025.cc
! 3f620083f81c2f719b970e46f6ad39f4  libstdc++-v3/testsuite/20_util/duration/cons/constexpr.cc
! ac5fc86cab4f651a7009b5e1a04bcc86  libstdc++-v3/testsuite/20_util/duration/cons/dr1177.cc
! 9c60e231bb78dba8a918d00c8b3648a3  libstdc++-v3/testsuite/20_util/duration/cons/dr2094.cc
! b8359368c2247b52886827271163885e  libstdc++-v3/testsuite/20_util/duration/cons/dr3050.cc
! a0774b99c18fd2bc252c8cd6edb7cf08  libstdc++-v3/testsuite/20_util/duration/cons/dr974_neg.cc
! 3e1bf741f760f7f2ae7049ff93b8afe5  libstdc++-v3/testsuite/20_util/duration/io.cc
! 36bc50f45d98b5197379c425a2a7555f  libstdc++-v3/testsuite/20_util/duration/literals/61166.cc
! 4ad88bdc966146f6ec3c7264a2a6e138  libstdc++-v3/testsuite/20_util/duration/literals/65499.cc
! 6b548b7ad2bc536c9d4fc09f6d07ae8a  libstdc++-v3/testsuite/20_util/duration/literals/84671.cc
  f11b5a7d64db419bf2305c0f433c638b  libstdc++-v3/testsuite/20_util/duration/literals/ns_detail.cc
! 4d1aea9ba676adc23a92fca91b1edc92  libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc
! 5ed3a5692cfd4e9166a3fbe58351ea23  libstdc++-v3/testsuite/20_util/duration/literals/types.cc
! ba908b74c329867c6ebc1cfb4a119b84  libstdc++-v3/testsuite/20_util/duration/literals/values.cc
! 1991d192adecad75affc6ea866e8a71f  libstdc++-v3/testsuite/20_util/duration/requirements/constexpr_functions.cc
! 1fa580e66f63604c77bda879a8353822  libstdc++-v3/testsuite/20_util/duration/requirements/explicit_instantiation.cc
! ca9cdcdac885b92fdfd3ac1be4827b75  libstdc++-v3/testsuite/20_util/duration/requirements/noexcept.cc
! 75f50fa7d9297a46f82c43c34b672897  libstdc++-v3/testsuite/20_util/duration/requirements/reduced_period.cc
! af949eb57bcae1e1f75c354921c0c6cb  libstdc++-v3/testsuite/20_util/duration/requirements/sfinae_friendly_1.cc
! 0c6df77958632b85b0810363f8f7904d  libstdc++-v3/testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc
! be96a3c44b5f145a63e2e089f75e1ad1  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
! 23f72ab2bc15e148e22d0ce7bd2a8313  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
! 99f36240fccfc4a2cc1e63016d776786  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
! 0fb370ddffd9094bbd351a26b7b21074  libstdc++-v3/testsuite/20_util/duration_cast/constexpr.cc
! 3c401e02699bbf431e8d5f337b32252e  libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc
! 6767d21d0db0390fd4f5de831f0538a8  libstdc++-v3/testsuite/20_util/duration_cast/rounding_c++11.cc
! efb3fdb91730fd5667f440b01ce10557  libstdc++-v3/testsuite/20_util/enable_if/requirements/alias_decl.cc
! bfa545ad7902bfa0eeda4786c8d1a9f9  libstdc++-v3/testsuite/20_util/enable_if/requirements/explicit_instantiation.cc
! abae34feca5262e552eb46cd987a5cb3  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs.cc
! 3c905bb27a2cfbcecb4dd1c565d27592  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs_neg.cc
! 888afccab70c54ff62b0654b1c8978e5  libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc
! 9bcc64a3fbc02136034db2a19d67aac0  libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc
! 6ceb46fab3bfb3981631cf8a153b24f0  libstdc++-v3/testsuite/20_util/enable_shared_from_this/cons/constexpr.cc
! e75c146474bac3083837af05766f27b9  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc
! e53b98357ddbc5981890ce5611a774fa  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc
! 17e90736fcd325bc627488a97bcce3c7  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc
! 908875e401b5f870df97fb9fdb32c9af  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc
! a5d5af2688e2e4b6f0d2eff3dffb7d07  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc
! 8fa7b6dadfffdf1e5bb27df16e9e08cf  libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc
! ee7c6318f9bca610a19f15120c1271fc  libstdc++-v3/testsuite/20_util/exchange/1.cc
! 4bab261c4762e2c5ae00f8b270aefbfd  libstdc++-v3/testsuite/20_util/exchange/constexpr.cc
! 5abbf6d20cd589946f4bdfcb28f02dd4  libstdc++-v3/testsuite/20_util/exchange/noexcept.cc
! da3718fa1e22fa960e90da076e9180db  libstdc++-v3/testsuite/20_util/expected/assign.cc
! 786012815e4d290200d001a0341260c1  libstdc++-v3/testsuite/20_util/expected/bad.cc
! 8187c0547d89a14b970b66cbef0b0194  libstdc++-v3/testsuite/20_util/expected/cons.cc
! 223f2ab268eb9baa5ce364f45b161df0  libstdc++-v3/testsuite/20_util/expected/equality.cc
! 8544093bb91b2f31a179c9134e8dc6d8  libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc
! edfa2eb5935a43eb5933bd9c674297e7  libstdc++-v3/testsuite/20_util/expected/lwg3877.cc
! 2bceb7abaa261125605b0e3dee40582f  libstdc++-v3/testsuite/20_util/expected/lwg3938.cc
! d05b7631917fa6bbb8699721642255f1  libstdc++-v3/testsuite/20_util/expected/monadic.cc
! b10b7e83e3f902f13531dc0465a038d7  libstdc++-v3/testsuite/20_util/expected/observers.cc
! c58d809da0c46bd85f9a6e61760da9cc  libstdc++-v3/testsuite/20_util/expected/requirements.cc
! cc692c857056ee7f19a3f55a6a36bf26  libstdc++-v3/testsuite/20_util/expected/swap.cc
! 4a4a8170e32f17382fc7cc08f2c0a2b2  libstdc++-v3/testsuite/20_util/expected/synopsis.cc
! a1d57e83054134a91172b48f8cfe27d5  libstdc++-v3/testsuite/20_util/expected/unexpected.cc
! 5e85c37b80209f80ca385f025977fd0f  libstdc++-v3/testsuite/20_util/expected/version.cc
! 75e34824d1d2591206ff267c0fa1a212  libstdc++-v3/testsuite/20_util/extent/requirements/explicit_instantiation.cc
! eecad26369690cb279fa7348ce90bcde  libstdc++-v3/testsuite/20_util/extent/requirements/typedefs.cc
! 0268325176e39423bc4c3c57af6d7b92  libstdc++-v3/testsuite/20_util/extent/value.cc
! b4b46565ef2dd8f89def7e436b0914b4  libstdc++-v3/testsuite/20_util/forward/1.cc
! 76b89de474153fa7ece89efa404cab93  libstdc++-v3/testsuite/20_util/forward/1_neg.cc
! d03bd034c1329835caca59048f391de0  libstdc++-v3/testsuite/20_util/forward/a.cc
! f40d3274f3d5a2af5b4d04c8ee4830cd  libstdc++-v3/testsuite/20_util/forward/b.cc
! 171d5924c5e02034415c26f70b90e13a  libstdc++-v3/testsuite/20_util/forward/c_neg.cc
! fac9c77d891f2fd7e308dbd0f16a566c  libstdc++-v3/testsuite/20_util/forward/d.cc
! 029a7fbcaa3f07585782166a00af60bb  libstdc++-v3/testsuite/20_util/forward/e.cc
! e87c0a456e90bbef2ccb5dc5e9f1f811  libstdc++-v3/testsuite/20_util/forward/f_neg.cc
! 2aed9b54307ec66aca090120d2633456  libstdc++-v3/testsuite/20_util/forward/requirements/explicit_instantiation.cc
! af0f13620a659f571b4d956d371b6054  libstdc++-v3/testsuite/20_util/from_chars/1.cc
! 19ad9149a46197c6382a99d9a79d98b5  libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc
! 8247bbb801dfc265428bb3bc267ab00f  libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
! 89c49517e2b28f3a15790e540b8ad81d  libstdc++-v3/testsuite/20_util/from_chars/2.cc
! 626d7df150b769920cf966d6d69fb4e2  libstdc++-v3/testsuite/20_util/from_chars/3.cc
! ff90d44951eb477df4abdd6366095fc6  libstdc++-v3/testsuite/20_util/from_chars/4.cc
! 74ae107d7acdac3db3c2141a56daa222  libstdc++-v3/testsuite/20_util/from_chars/5.cc
! f681d1c1c0768f01e4cbf3df8d939f6e  libstdc++-v3/testsuite/20_util/from_chars/6.cc
  33cb1fba3bfa8508f23e78bc210ae25d  libstdc++-v3/testsuite/20_util/from_chars/7.cc
! 25d279c2c1ee1d3053606f875308f673  libstdc++-v3/testsuite/20_util/from_chars/8.cc
! aef7361eefd7f6eadcb5cab24441258b  libstdc++-v3/testsuite/20_util/from_chars/compare.cc
! bfedf35f43b9f56a0166dd57b6ee536b  libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc
  6772f8cd93ed8ce0eff86720c075a1f3  libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
! 386268d5d53a11f4d35cbc5ae2361e1a  libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc
! 5307d74181d10d9fc0af1fee2d34c483  libstdc++-v3/testsuite/20_util/from_chars/requirements.cc
! c1b2984a640c5814929feff15ce314a9  libstdc++-v3/testsuite/20_util/function/1.cc
! e161bcd7c3a7f871922130b2766de6a6  libstdc++-v3/testsuite/20_util/function/10.cc
! ecfc29eb7bab1dd03ae79d27cb60687e  libstdc++-v3/testsuite/20_util/function/2.cc
! 3707e9e1921c407dc83f419c608b94b8  libstdc++-v3/testsuite/20_util/function/3.cc
! 3ff9fdb5ac245647d671d766c7dddf5d  libstdc++-v3/testsuite/20_util/function/4.cc
! e30a4cc308b1e0cf4fcdba4df86830c6  libstdc++-v3/testsuite/20_util/function/43397.cc
! b1f57d524d904b6b271aa81c2ee07d1d  libstdc++-v3/testsuite/20_util/function/48541.cc
! 02d9dae205bd1f49f3adce8ef9245eff  libstdc++-v3/testsuite/20_util/function/5.cc
! ea9823893c074bb0273c78f7f72f7378  libstdc++-v3/testsuite/20_util/function/58569.cc
! 99d9255dffd8bd46c09e285bca4befe8  libstdc++-v3/testsuite/20_util/function/6.cc
! ebf1882dba47920d36d7686c9569c22e  libstdc++-v3/testsuite/20_util/function/60594.cc
! 1e21def13fd80c2a1a6895db1e8fe4c9  libstdc++-v3/testsuite/20_util/function/63840.cc
! 1f1f3c146abe6ef6e7aa42d8f23ac531  libstdc++-v3/testsuite/20_util/function/65760.cc
! 8595401ffc790175a3ffeecfb8f83437  libstdc++-v3/testsuite/20_util/function/68995.cc
! c2287df1582ef5fde729ead9cfcfe599  libstdc++-v3/testsuite/20_util/function/69222.cc
! 6657ba48eab20394899e25847c65f92d  libstdc++-v3/testsuite/20_util/function/7.cc
! 75532f475336ce1f3027ea18851ba260  libstdc++-v3/testsuite/20_util/function/77322.cc
! c9671f90f6d48526ce6eb2ea28fb3cd9  libstdc++-v3/testsuite/20_util/function/8.cc
! f6542a9215ae091df3364561540729dd  libstdc++-v3/testsuite/20_util/function/9.cc
! a5afd0360fd51d602cb00d2d6f39125a  libstdc++-v3/testsuite/20_util/function/91456.cc
! 355100886558af76cd5f7904ba579a69  libstdc++-v3/testsuite/20_util/function/assign/move.cc
! 553716348b43ba9a3e76b13ec5a54128  libstdc++-v3/testsuite/20_util/function/assign/move_target.cc
! 91b233cc72ce5add691252270097f64a  libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc
! 58125c1e356020155d231b2639793696  libstdc++-v3/testsuite/20_util/function/cons/55320.cc
! 486b7e51390c040cda33825f6908056d  libstdc++-v3/testsuite/20_util/function/cons/57465.cc
  ca608fcc60b0b1c480c8cea18bc2d21e  libstdc++-v3/testsuite/20_util/function/cons/70692.cc
! 78fc04bb61c4bf2c39ea9d30dde291e5  libstdc++-v3/testsuite/20_util/function/cons/72820.cc
! 495b951e5b068916da471370e1c28368  libstdc++-v3/testsuite/20_util/function/cons/addressof.cc
! 01c1cd5a51b28f0e705aa57464f61ca7  libstdc++-v3/testsuite/20_util/function/cons/callable.cc
! 1ceeb4d5fb780542d9e393b1fce76423  libstdc++-v3/testsuite/20_util/function/cons/deduction.cc
! 9097d21ae1de9a3ac63479d631300163  libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc
  4b7e7e2f146d54b30a53e58d7a111cf0  libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc
! 53d0571d6736c7bf6239446d80d48625  libstdc++-v3/testsuite/20_util/function/cons/move.cc
! d7c84f1e3a77109ca29a6987742c65cf  libstdc++-v3/testsuite/20_util/function/cons/move_target.cc
  d2a67a46055d71f856a2cdceb8f3c448  libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc
! 45da90271b3a49e33d5a1ba250eaf3d5  libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc
! 6d1f8ae87216a7a31a236b84c7a5fa0a  libstdc++-v3/testsuite/20_util/function/cons/refqual.cc
! 0b45880c71145e9376ed9ca3c07ea758  libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc
! 3bc9bbd9450a5196860e458043769fb5  libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc
! 5092431e2563212d16e0972581f1cae4  libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc
! 82572170167e396f98c9287bdc439901  libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc
! 67281ab7b02a4768834d1b51ce65392a  libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc
! 89a0088733449bcd64a4262d98cabb9d  libstdc++-v3/testsuite/20_util/function_objects/83607.cc
! 0bed0fcb04d786dfde39a14bfb059386  libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
! da4ac145d3208e2842a1d7f17f06bb78  libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
! 2a56f50fd81e52865f63c2730372b3ff  libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
! 1302503df70ed7e15232148ec4443481  libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
! f5ea450a3cb8223e5ecdd506fb8f42f6  libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
! 7defcd8c1dec1188193098cc09a16396  libstdc++-v3/testsuite/20_util/function_objects/binders/1.cc
! 46d9a90a2f73a75c1a95c028f5d75325  libstdc++-v3/testsuite/20_util/function_objects/binders/3113.cc
! d25750eaf713546fd312b19cbb5f5c53  libstdc++-v3/testsuite/20_util/function_objects/comparisons.cc
! f4c5fc4ca63cbaed5af034552f0e07f6  libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer.cc
! d4028e3fa77b15d9c0df931af47118ed  libstdc++-v3/testsuite/20_util/function_objects/comparisons_void.cc
! fcd1bb2da17643a12a0fed0eb991ddf2  libstdc++-v3/testsuite/20_util/function_objects/constexpr.cc
! 568a2259d6e3f9af592ba62d94e3041b  libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
! 83f5069e60ec0a53d36cc15008d2cf3a  libstdc++-v3/testsuite/20_util/function_objects/dr660.cc
! 0b19eace0a9daef6c83f5f1b95294eff  libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc
! 2472cb1d5054a26796e9f1fa1b9282b7  libstdc++-v3/testsuite/20_util/function_objects/invoke/1.cc
! 64866170b4b8119475e184f4adf12b33  libstdc++-v3/testsuite/20_util/function_objects/invoke/2.cc
! 6d99c39931d9349f79cb0852b7fdd7eb  libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc
! fd3b33760fbfa3ebd233ea8a3ebd0372  libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc
! 92050b302c3a7c9945231cec7d4b026a  libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc
! 2ecbbbf1beb1488a6cf68631e0fcc115  libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc
! d06faf4cbacd44cedd87f9241f6fe07c  libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc
! a5d0bb8e9e498420baea1fb09f46bdf4  libstdc++-v3/testsuite/20_util/function_objects/invoke/ref_ext.cc
! c41a9b86fb8d5060d3191e4ba30b6151  libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc
! 779295b5f5a2047b60156d0b35a44dd3  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55463.cc
! c4f121cbc14344909c19dc20170e40a9  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55908.cc
! 2b4699b3c41a95b06f41e64d14973274  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/68982.cc
! 22a4a7d03d9f1088c75a80c040410669  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/80478.cc
! 5bf35303e6c89388013c2372b8ca3283  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc
! 71af0abbbccbb048b12d7c5a00441d6c  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc
! cdfd0e81a7aa8390c2b9eb3d61eb9fc8  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/forward.cc
! 614274dc48e1e60fdb27091d7dd4072c  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/refqual.cc
! 483734186a53cd02b8e3b6a5ea10b405  libstdc++-v3/testsuite/20_util/function_objects/not_fn/1.cc
! a33cbe3a0ede126910ff3fa324786d73  libstdc++-v3/testsuite/20_util/function_objects/not_fn/87538.cc
! 71e03cdfc220b85e14f7063890ad732a  libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
! 7a36a7875dbd33eb8a1227fc27d973a4  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
! b2edc05b7773239cf962034fa53c7497  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc
! 7b069ee7d2492feaef84fbf5b1e1e530  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc
! 000c3a493ee614acec4ea515a140b102  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc
! cc88073bf0bfaab208f6bf09d0b4e94b  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc
! 3c3d026f2abec94b0b1fb7c8c5fea831  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
! 8073ca3a0fd1c9567714585a07e7abd4  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
! dbd61b01e999b2bf1b3c85f1e33a094c  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
! 1664f2ca65d10acee881e92a6049a91f  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
! 2cd4f725118118d527742ea2408b5ce4  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
! 81ff8d53e0f76c039701d67be227af78  libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
! 71a7e310c4d54a5f1029b5925b6d3cb5  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/explicit_instantiation.cc
! 39b99331904babbeb52ecb3f7d7609a3  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/typedefs.cc
! 6d83554d602cc67e8e95042959602c86  libstdc++-v3/testsuite/20_util/has_virtual_destructor/value.cc
! 0d6b2d0ffcda6428d6b60f3b02244fb5  libstdc++-v3/testsuite/20_util/hash/52931.cc
! 018c197ceb478ca91bda4408f964b702  libstdc++-v3/testsuite/20_util/hash/60970.cc
! 403c714080badaf9e2b0bc3efb4baccd  libstdc++-v3/testsuite/20_util/hash/84998.cc
! 691fba30446e84baae9fbc2d39ce9a99  libstdc++-v3/testsuite/20_util/hash/89629.cc
! 2512ba8e50e58b5fb11504693059bd11  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_flip_set.cc
! 373e89d0c46aa6d5800e64088ac7023e  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_string_set.cc
! fdeb5bf2dbdb7880e8de2361104e3647  libstdc++-v3/testsuite/20_util/hash/chi2_q_document_words.cc
! 6484bb1bdf23f984a63fec556d3c13e4  libstdc++-v3/testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc
! 23d7bb6f30cc19c169c58b7dcfdf8fc7  libstdc++-v3/testsuite/20_util/hash/chi2_q_uniform_random.cc
! c04a217654f374ad40d0ac3dae2adc8f  libstdc++-v3/testsuite/20_util/hash/chi2_quality.h
! 096666cd0160334182a0648bb7a33422  libstdc++-v3/testsuite/20_util/hash/nullptr.cc
! 68dd95b42f29da02f91142fcb037893b  libstdc++-v3/testsuite/20_util/hash/operators/size_t.cc
! 33267240d643c2a634e7b05678a087f7  libstdc++-v3/testsuite/20_util/hash/quality.cc
! 42eb3780518af7032cf59cf629f42249  libstdc++-v3/testsuite/20_util/hash/requirements/explicit_instantiation.cc
! ea1f1f006045d1d2d4e556d532ba838c  libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc
! 7a79eb9bf902ae31a43f3c3544f03e4b  libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc
! f53d33b60b018df03fe6f781dc860ac8  libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc
! 74d8f2d219c4dea19223dbb900699dc2  libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc
! c44581afe212aa940b02d06ef08ec2f0  libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc
! b53e8e6ed0483231a827260a31ae9e27  libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc
! 25d548728ca65f9850dd5907753f24bb  libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc
! 41f5ebbd1847785e350b23e0b597921d  libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc
! 5e294d6a2ff17e12baa56fe097bd6a3a  libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc
! b5b6e8f8f0bdec19eeca50ce36ae020c  libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc
! 7a4278794fc267a9589b370b9e10b762  libstdc++-v3/testsuite/20_util/headers/functional/using_namespace_std_placeholders.cc
! e6a14279abe337806ac3640ae177db82  libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc
! de3538c8c3bc98ec6871e5f9c37bb633  libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc
! db4b53dd17ea903ad08b1284a9061d27  libstdc++-v3/testsuite/20_util/headers/type_traits/std_c++0x_neg.cc
! 6fc1290c009d383c295c6240155384da  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x.cc
! cd6c0de49d8ba74a398aeedc2df5c8ff  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc
! 12a4162efa1e1a8738db43e42ed91b47  libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc
! 93094dabe69d9374e3e25af5a0c374a7  libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc
! de56be54abbea81a2941b950ae4aa324  libstdc++-v3/testsuite/20_util/in_place/requirements.cc
! c43ace53082e261fbc72a7d00ba2c14d  libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc
! 2ed8cd7e741d224c28f7528ac994d3db  libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc
! 7e2c865d9cca8de2096a50700451fdc6  libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc
! 12c317569e4d8b79c0b4e9513495def4  libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
! c6250601e3e7183f7bd3726fdd8c1203  libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc
! 572e7baf8317cd33034bf7dc0a3645dc  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc
! e024be3ff61e1a643f07e3bd102e85f3  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
! 2a993560b63a87d9b7c9d9a20a8b163c  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
! d35e9f6661359af026ef00ec97b97764  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc
! eda2db9b9d9e52c573f0b0a9c5ccbcd5  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
! c33347def885b09b147478c2a2276cc1  libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc
! 27a8a53039a0dd121de149386a8e87fe  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc
! a592eb6fd816aac034c9922ae4d29f69  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
! 3ae8ca41b35eac2d1f1517093d72db3b  libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
! b99be92eb0e0d8698ca6bdc364542e6b  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc
! 12c317569e4d8b79c0b4e9513495def4  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
! b24e47328645bea855bab51280f4457d  libstdc++-v3/testsuite/20_util/integer_sequence/intseq.cc
! e58ed11f85b333351ada2f2c5246f90c  libstdc++-v3/testsuite/20_util/integer_sequence/requirements/typedefs.cc
! d81fb9bda70e69d23a8ab9fcdcc24d06  libstdc++-v3/testsuite/20_util/integral_constant/call_operator.cc
! a5ab59681cb18d4d742bdd134ba04fd6  libstdc++-v3/testsuite/20_util/integral_constant/operator_value_type.cc
! f0db9cb720b53ae3713016a1fef424ac  libstdc++-v3/testsuite/20_util/integral_constant/requirements/constexpr_data.cc
! 57e737e3e7aa84e93003c51c5d8ff053  libstdc++-v3/testsuite/20_util/integral_constant/requirements/explicit_instantiation.cc
! b6cb05fd5e59720f7c197baab0713a28  libstdc++-v3/testsuite/20_util/integral_constant/requirements/typedefs.cc
! ca48a811b0853b8c662ec84c3f79e446  libstdc++-v3/testsuite/20_util/integral_constant/static_definition.cc
! 9f353cd0f901aff1ac4d0bd0e1e4b39a  libstdc++-v3/testsuite/20_util/integral_constant/true_false_type_typedefs.cc
! 77789753386a7a8d656410988db95f2b  libstdc++-v3/testsuite/20_util/integral_constant/true_false_value.cc
! 4013876e5a95df1e18bf4c18e0f8eb97  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_args_neg.cc
! 0c6513353141f76bdf241d136f759c01  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_neg.cc
! d5710c0ce92f39c9313191b86ae0ded0  libstdc++-v3/testsuite/20_util/is_abstract/incomplete_neg.cc
! 61ca0de2acb94e154784ecdc28ec79ca  libstdc++-v3/testsuite/20_util/is_abstract/requirements/explicit_instantiation.cc
! 00ecf068a962d663426a5380bc6f1fa3  libstdc++-v3/testsuite/20_util/is_abstract/requirements/typedefs.cc
! bc42b9b9bbc4c44f09bdacc3dfc540aa  libstdc++-v3/testsuite/20_util/is_abstract/value.cc
! d52035a9d27c7e73b6d47f88ca9168a8  libstdc++-v3/testsuite/20_util/is_aggregate/incomplete_neg.cc
! ad4b9cd9a46d3104c468a994a1926f12  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc
! 7195010bb5a090210d1a8bf7293d3800  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/typedefs.cc
! 10ad80a9fd17edbc46622feefea074fc  libstdc++-v3/testsuite/20_util/is_aggregate/value.cc
! 655258c3118b7b32643bae01a3480ac0  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/explicit_instantiation.cc
! c832af35645412927a3123f88001c472  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/typedefs.cc
! 7a3d76a4ee9ab43cae5ce8a64a138d3d  libstdc++-v3/testsuite/20_util/is_arithmetic/value.cc
! 0a21ba163a7c2504230e20fa47512746  libstdc++-v3/testsuite/20_util/is_array/requirements/explicit_instantiation.cc
! 2d3ff099768dc91e5b49c21b5b287d04  libstdc++-v3/testsuite/20_util/is_array/requirements/typedefs.cc
! 38a97fa6834b918af3942358e2553bfa  libstdc++-v3/testsuite/20_util/is_array/value.cc
  6768b922ca72460fc141a677fddef045  libstdc++-v3/testsuite/20_util/is_assignable/requirements/access.cc
! 26c1c9cf38ba10e1c854f1a3a2fd44d3  libstdc++-v3/testsuite/20_util/is_assignable/requirements/explicit_instantiation.cc
! 9a7c0058d019244e6f2b7df279015213  libstdc++-v3/testsuite/20_util/is_assignable/requirements/typedefs.cc
! e70e6f7ddf1b27b91128ee3e5f5abebd  libstdc++-v3/testsuite/20_util/is_assignable/value.cc
! 09bbec0810c466347f5be21b11bd9d22  libstdc++-v3/testsuite/20_util/is_base_of/requirements/explicit_instantiation.cc
! a91315ac30a6edac6efcc2c283528170  libstdc++-v3/testsuite/20_util/is_base_of/requirements/typedefs.cc
! 5e72b1e472e3e8b6792401743fad5442  libstdc++-v3/testsuite/20_util/is_base_of/value.cc
! 673e98cad63398091d6f36ab884def69  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc
! b8f745f995abdef40ba0d7b5b171cfd9  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc
! 8fd896aa98b6261cc00d76f1d024a39f  libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc
! 65c630374da71facbd16b42f29b665b2  libstdc++-v3/testsuite/20_util/is_class/requirements/explicit_instantiation.cc
! 1747369417e0769c76bd40236ac86e97  libstdc++-v3/testsuite/20_util/is_class/requirements/typedefs.cc
! 396922298d01e8f5d70f816c7a3906e0  libstdc++-v3/testsuite/20_util/is_class/value.cc
! 0e12d2337e86b6f7c1545e18f8b50f07  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization.cc
! dd26f72bcfdcb6201784f89e533e6fbd  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc
! 56de0a29724ee7d93d58039e72d942c3  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/value.cc
! b2ae652019add5e383a02f218057e5af  libstdc++-v3/testsuite/20_util/is_compound/requirements/explicit_instantiation.cc
! 9e6c58eb7456ff93807979b83f534ed6  libstdc++-v3/testsuite/20_util/is_compound/requirements/typedefs.cc
! 1ef9f79489993cc450f4c53ecdcc5f35  libstdc++-v3/testsuite/20_util/is_compound/value.cc
! f9ba553565164d5d74cd3aa38a3b0fd8  libstdc++-v3/testsuite/20_util/is_const/requirements/explicit_instantiation.cc
! 8d93b6a376d23d47a9eec71c90b06478  libstdc++-v3/testsuite/20_util/is_const/requirements/typedefs.cc
! 81e66b78704e5d69ecbab4d7964cfd60  libstdc++-v3/testsuite/20_util/is_const/value.cc
! 4f4c055b24736d9a22e82f53064958c5  libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
! 696f3f220020047ed0899419a434387e  libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
! adfc24df227966addf9b725b6f19029e  libstdc++-v3/testsuite/20_util/is_constructible/51185.cc
  a5e184714ddd867798fa94c2ebe2c9fe  libstdc++-v3/testsuite/20_util/is_constructible/68430.cc
! 5a9be4ddcdd1f0d30038865b82b10636  libstdc++-v3/testsuite/20_util/is_constructible/77395.cc
! 6bb1b320bd6891352b2b65809cccd480  libstdc++-v3/testsuite/20_util/is_constructible/80812.cc
! 796789d20f92917ca4ec32df35ddfcec  libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc
! b8a67902d1bcac72a6104e09ce8dd459  libstdc++-v3/testsuite/20_util/is_constructible/94003.cc
! f5d03e12f4aa0199d4e28c2c95c2bd67  libstdc++-v3/testsuite/20_util/is_constructible/requirements/explicit_instantiation.cc
! 3c8a1a21f8212a66155f3de9e8867841  libstdc++-v3/testsuite/20_util/is_constructible/requirements/typedefs.cc
! 4662d161cd06e7dbb224bebd0b589be3  libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
! 30a16b099c46cb89a5bfcdffe1aa8745  libstdc++-v3/testsuite/20_util/is_constructible/value.cc
  09d897b8e5e8f52ce748db0bdf75aa0e  libstdc++-v3/testsuite/20_util/is_convertible/requirements/access.cc
! 882335020441320bd49212849ac36a31  libstdc++-v3/testsuite/20_util/is_convertible/requirements/explicit_instantiation.cc
! f602ea3907ba6ef705e8861e67a720ad  libstdc++-v3/testsuite/20_util/is_convertible/requirements/typedefs.cc
! 36b9817db6cf8e80b6c4a6562274c59c  libstdc++-v3/testsuite/20_util/is_convertible/value.cc
! 3dd9a28d0df1669d136cfd822b43a870  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/explicit_instantiation.cc
! 4dab049c028259e79abe65bb49c2e8ae  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/typedefs.cc
! ed025d63c68cfea61621d5691599754b  libstdc++-v3/testsuite/20_util/is_copy_assignable/value.cc
! 1bd38ef44c7de54bdde5eabd920ec8b8  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/explicit_instantiation.cc
! d4b22bbba5931138e30581f578213fa8  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/typedefs.cc
! c4ffcacf182a1d7a816ae817ac7adcdf  libstdc++-v3/testsuite/20_util/is_copy_constructible/value.cc
! 05b51c2a10e7467de52b6d7e6333809b  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/explicit_instantiation.cc
! 4d21eaff3c95a2e5216fbe84649e8032  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/typedefs.cc
! 3fdc38cbe09030e596b459084fe180ee  libstdc++-v3/testsuite/20_util/is_default_constructible/value.cc
! dd843a61ef8998c1ecb3f2567d9137af  libstdc++-v3/testsuite/20_util/is_destructible/requirements/explicit_instantiation.cc
! a692a42fe857cf15c9c594003965094b  libstdc++-v3/testsuite/20_util/is_destructible/requirements/typedefs.cc
! b6ac913bb1dc60af2e9b7b323975747c  libstdc++-v3/testsuite/20_util/is_destructible/value.cc
! 877e71e837c26d255e720374358c0103  libstdc++-v3/testsuite/20_util/is_empty/incomplete_neg.cc
! f5e88388a2aaeffed2679574a8fa2743  libstdc++-v3/testsuite/20_util/is_empty/requirements/explicit_instantiation.cc
! a4fefe52206391120a98b1c5d36a1282  libstdc++-v3/testsuite/20_util/is_empty/requirements/typedefs.cc
! 309331954e1aeeee50f7c23ec284d3f5  libstdc++-v3/testsuite/20_util/is_empty/value.cc
! 70c80b636ee2afb4a80277397dc3d1ea  libstdc++-v3/testsuite/20_util/is_enum/requirements/explicit_instantiation.cc
! 9b2d67c5b12222aed8a2efbe1c17447c  libstdc++-v3/testsuite/20_util/is_enum/requirements/typedefs.cc
! 7ed1e1e76cbf3c298f5a9b25e150a40d  libstdc++-v3/testsuite/20_util/is_enum/value.cc
! 7a5967f5ec44b8ab2a649d0ee214f9fb  libstdc++-v3/testsuite/20_util/is_final/incomplete_neg.cc
! f69107141eb0243c03b13cb9bb800810  libstdc++-v3/testsuite/20_util/is_final/requirements/explicit_instantiation.cc
! d5ecce4a6ebc0781fe75a0606b051ac5  libstdc++-v3/testsuite/20_util/is_final/requirements/typedefs.cc
! 80953f943bfef6e33dda7b5e78623c86  libstdc++-v3/testsuite/20_util/is_final/value.cc
! f156d332b420feed4f8127f4378c511f  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/explicit_instantiation.cc
! bfa2e3d570f8ae6ad27768329e045411  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/typedefs.cc
! 0fc6e00cdddacab0c6a04a930afafbf2  libstdc++-v3/testsuite/20_util/is_floating_point/value.cc
! 506cabc4627c1864d662aed972ced18d  libstdc++-v3/testsuite/20_util/is_function/24808.cc
! e0ceea8f42efef357074e97eac68138b  libstdc++-v3/testsuite/20_util/is_function/35637.cc
! fa669058f52b9f29944af57e0b480d77  libstdc++-v3/testsuite/20_util/is_function/91371.cc
! 731c13058f12a38df33555301bfa6cb3  libstdc++-v3/testsuite/20_util/is_function/requirements/explicit_instantiation.cc
! a1f4f327730ce340b028f912be7de785  libstdc++-v3/testsuite/20_util/is_function/requirements/typedefs.cc
! 3f1d167a1ae1ddfa8f17ac462319422b  libstdc++-v3/testsuite/20_util/is_function/value.cc
! e7a30597807ea9a3aff47ed42b365481  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/explicit_instantiation.cc
! 4ce68978b980cb2d9d45ee15eca402a9  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/typedefs.cc
! 39e22f5b2fb281ee27f193674c139d20  libstdc++-v3/testsuite/20_util/is_fundamental/value.cc
! dbef74088600e43a4afb9f97e78d9953  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc
! ccfd958919f089b59432dccd3b8dcd30  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc
! 9d38c733384d805fcf3950c88788491e  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/value.cc
! 3476dc7546aeb388af8dc855043907ae  libstdc++-v3/testsuite/20_util/is_integral/requirements/explicit_instantiation.cc
! 7c57d31fc4d386644e79032219c2e86e  libstdc++-v3/testsuite/20_util/is_integral/requirements/typedefs.cc
! 024099d96303f94bcf1f32e59d4ed941  libstdc++-v3/testsuite/20_util/is_integral/value.cc
! 29c45f45a8ba964015eb09da4098fca2  libstdc++-v3/testsuite/20_util/is_invocable/83395.cc
! 5eb514e695addd88550019ee56cd53db  libstdc++-v3/testsuite/20_util/is_invocable/91456.cc
  15e39483dc403920d82c01777fcbfd43  libstdc++-v3/testsuite/20_util/is_invocable/dangling_ref.cc
! a3e5d5b6a48db9a2ed3a9f4566ac8563  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_args_neg.cc
! 531498f2564ae10234811d3d356dbd69  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_neg.cc
! 6ee9abebc23beeec6b0f4ec0fb5b22b0  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc
! 266aab9e39ae6e6897246847e721ddce  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation_ext.cc
! fb71e6c06283024d0140678619adf171  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs.cc
! 288be130da9d715fc6f8239177d25067  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs_ext.cc
! e781eae02373e2f268bb3d6da14dd487  libstdc++-v3/testsuite/20_util/is_invocable/value.cc
! c79fd0836f59e3e77da92401bc665276  libstdc++-v3/testsuite/20_util/is_invocable/value_ext.cc
! 843b0fa9f5021ba82bde4802ddebc754  libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc
! ce6b607369dfd0496ef93c6da8cc6775  libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc
! ea3697d742d06b8a6935bb79b5249f62  libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc
! ac9e9b0f4f35b831eb3e76bb0f61aa40  libstdc++-v3/testsuite/20_util/is_literal_type/deprecated-1z.cc
! f2573f23a951473e158bd2284a0bea83  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc
! 5f3a8da09b81f493f47736395854f09c  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/typedefs.cc
! 127777538f1a6e73846e8c0425cea0d6  libstdc++-v3/testsuite/20_util/is_literal_type/value.cc
! 5e22c0a8c626e98010dcba3b3963b318  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/explicit_instantiation.cc
! 61409d85d68ef62b00c136cdca04406c  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/typedefs.cc
! 8f06febc61f96118dd4338646867939d  libstdc++-v3/testsuite/20_util/is_lvalue_reference/value.cc
! 04fd1d498c86efc67ac719ed91dba400  libstdc++-v3/testsuite/20_util/is_member_function_pointer/91371.cc
! 7102a6c83e9e346a80e8ae40b6b9595f  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/explicit_instantiation.cc
! 50e82f95b925f071426c41c186b00fbb  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/typedefs.cc
! 5e681b961c420e9d4a374c6d3d748537  libstdc++-v3/testsuite/20_util/is_member_function_pointer/value.cc
! 998ce86e4dfd57af0e58e9d08b546e6b  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/explicit_instantiation.cc
! 056d2b541423bf0be5959780e4ff8b25  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/typedefs.cc
! 262c01d8a8f3a2f41ec0d2170f6fd42e  libstdc++-v3/testsuite/20_util/is_member_object_pointer/value.cc
! 34267ba4db9f33790f26f8560750af16  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/explicit_instantiation.cc
! 0a30d234ae1ca121a4046a9f9478a713  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/typedefs.cc
! 56b013fdc3962b0a1cc5b033f0396bbd  libstdc++-v3/testsuite/20_util/is_member_pointer/value.cc
! f2c9cd33419d5329eaae71911c09cde1  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/explicit_instantiation.cc
! 4cabb1274437cf44cea85eaaf433d6d2  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/typedefs.cc
! a8dc0d0b9c028850da00672b36f44140  libstdc++-v3/testsuite/20_util/is_move_assignable/value.cc
! a3d3d1c53ac84d278757b407e8f53836  libstdc++-v3/testsuite/20_util/is_move_constructible/incomplete_neg.cc
! 222ce45f53268923d4bc8c6cabf9c291  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/explicit_instantiation.cc
! f016bcc874c3edb3b1404f3b5bbf9459  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/typedefs.cc
! 4bea63701d3f5df1feb80ab79136bd02  libstdc++-v3/testsuite/20_util/is_move_constructible/value.cc
! 713caabdfe6d6fe77c7cec6c468249a3  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/explicit_instantiation.cc
! 3a8bfed48ffd62078ee8042b076ee3e1  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/typedefs.cc
! 1b75479d1b0a7dc9be8af95e89355b8b  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/value.cc
! 20e329931a29c37bff619b8d45c06dd7  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/94003.cc
! 73fc16615e2d3b5033b5fcd778610159  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/explicit_instantiation.cc
! 724bfe58157298405686d51f085645c5  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/typedefs.cc
! 3cf595636b646f3d3b366be2de888d58  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value.cc
! c3c2a57129ed693f47752239b080b0c0  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
! b2662970815bfedce1b260073fed72f2  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
! 1565ffce6f5e17ddb890c7dfb42d5cec  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
! 4cb86dc73ad0056bd93ff7ddfa084989  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
! 89b13db935862cf7453cac55a4905d2b  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc
! 662ebb68ae3b4a4b4b1ae3c57df294b6  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc
! d1503e54d12df770bdd2f2183f57c4d3  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc
! 5d98ca76e67b8408b3ede4caf7b2bd32  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/explicit_instantiation.cc
! fe3fd3788a458690ff4a2b44c0b57eb5  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/typedefs.cc
! 18ddce98625e9788e35dd69ac464f567  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc
! 84ba6ae1e5709c63ac484e5b7fa4f0f2  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/explicit_instantiation.cc
! e68d8396ea96985a27404f1beba132af  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/typedefs.cc
! 222fad9ebd2749eef70e7087c17bdd65  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/value.cc
! e51f386cf057b24798409b36467a6ba6  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/explicit_instantiation.cc
! 6e3117738de60d864ba1981eb1e435da  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/typedefs.cc
! cdc02e6a7a48f38b0681ddf6cca2572c  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
! e046b70ccdedbfd243ee693d22ac51ad  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/83395.cc
! cd692f9bdf1291a75e1c483453d7c526  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc
! 08c3b9a6cf6b71af01a92c3b11340ae8  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc
! bcba15bb7fb152816fc33a51ff5ca84b  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc
! d2e7c1af468c3352bc872bb10158f572  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc
! 7a83cd846e70ff4a43d4efc17a99f5ff  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation_ext.cc
! 42cefd119acf5a13252074aedf8e7f50  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc
! 4276a5df89b2a1fc499d30f815cfeb3d  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs_ext.cc
! db1721c39565ae05dc2989a5a795eec5  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value.cc
! 56cf923ee4c97d2a501931e70933239a  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value_ext.cc
! 1d6ddd91802af2c557dbb1d5e8860873  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/incomplete_neg.cc
! 08c50663c383e323a3c66b4810fa7df0  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/explicit_instantiation.cc
! 870d5fa1940fabfc3c3fab8c9fa4670f  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/typedefs.cc
! ecb2d251a785a4fcd7c46e61b2636e4b  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/value.cc
! e414fb6ffd8dc7c95d0d40caae2efe49  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/explicit_instantiation.cc
! 029ffb065ad88357480c6b8f76ccfafd  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/typedefs.cc
! 2d858e7d95ce97932c39bb7f7d432426  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/value.cc
! e18c6918293d39b413c666444282e407  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc
! 4563869ac5eab4e7ee4b5e6b39ecaa03  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc
! 6f2a487d8bf41dc53c844f2757aa964a  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation_ext.cc
! bc9d499fab1e59f4601a152210610519  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc
! 7aeeb73b0388a6fb841f1bdc958ab094  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc
! 95fccfc3103f125fbfd7a3da7ad42fe9  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc
! e99af67f2585abb67a6baa5688bac870  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h
! 42a8d21ede3ba71d37533c9e17b21855  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value_ext.cc
! c1a234ff9d635275c3055f2aeea1668e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc
! 17aecd3c83182a0f6fdc7f566b0ec83d  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc
! 2e49d5d88ccb26d69680704463b7c4ab  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc
! c6a2af24a1ea3e8d28ec54c991bac24f  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc
! c887ad59d62d27af58602000ad5a5a0f  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/explicit_instantiation.cc
! 833fd4c6c6bb1837dfef545718c18eaa  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/typedefs.cc
! 40e1c26a003f0aafe98a64e933b7d801  libstdc++-v3/testsuite/20_util/is_null_pointer/value.cc
! 0b92586271f2bd6e84a65c0f2eaa9f08  libstdc++-v3/testsuite/20_util/is_object/24808.cc
! b0dd2378afc15117f72206266d46f4ce  libstdc++-v3/testsuite/20_util/is_object/91371.cc
! 962bcbd1518291c7367652bd7d797870  libstdc++-v3/testsuite/20_util/is_object/requirements/explicit_instantiation.cc
! 51804ef71469db7420e41bcdade32233  libstdc++-v3/testsuite/20_util/is_object/requirements/typedefs.cc
! c900ee83aa5abaf24ba6ffdf481c891c  libstdc++-v3/testsuite/20_util/is_object/value.cc
! 2c52a736562b2f9143ab2a386708b7be  libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc
! 1e59acb08d73f5f414db0c62f14733d2  libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
! 8a9109f4e27d17ff2af7339c817bd920  libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
! 2a3e13dbd8e96d656bfcce7ab6577cd6  libstdc++-v3/testsuite/20_util/is_pod/value.cc
! f89066cd7ffb9e917f1700bbd8d97b52  libstdc++-v3/testsuite/20_util/is_pointer/requirements/explicit_instantiation.cc
! 755402e202bebd81cc9ba1c197a6b671  libstdc++-v3/testsuite/20_util/is_pointer/value.cc
! 1311eb3e79c008b4f5aefa55f0640c39  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc
! d22a6be6a4a98d7bc8d0c9825a73698f  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc
! ffdb77710f31b58e88ff6a2dac113bd0  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc
! 9afbdeb701bc38465a3cb1566545735b  libstdc++-v3/testsuite/20_util/is_polymorphic/incomplete_neg.cc
! 28e01287fe5a83b4f0e69927f4538764  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/explicit_instantiation.cc
! d63b2d73c5baf76addda504b458459fc  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/typedefs.cc
! 8b6e93a519a41cd315cb17a5e9227b60  libstdc++-v3/testsuite/20_util/is_polymorphic/value.cc
! 904f91603fff9a87a641b8225268bef7  libstdc++-v3/testsuite/20_util/is_reference/requirements/explicit_instantiation.cc
! 731233ccd54059ccbf9a8fa8511a6151  libstdc++-v3/testsuite/20_util/is_reference/requirements/typedefs.cc
! 047e2f38f6060cbc2f73b7fd49f5825c  libstdc++-v3/testsuite/20_util/is_reference/value.cc
! 6b4e773b86707cbb3a2f9da55aa820e9  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/explicit_instantiation.cc
! bb9c50cf73dd213ca26a8ac5b93e69a2  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/typedefs.cc
! a1667dce2472f0070942cd9b7fb79b86  libstdc++-v3/testsuite/20_util/is_rvalue_reference/value.cc
! 7ee3dcf656c8a2b4fd89209bec7826a3  libstdc++-v3/testsuite/20_util/is_same/requirements/explicit_instantiation.cc
! dc6b9f1e6099e7518cb5eec423825f7f  libstdc++-v3/testsuite/20_util/is_same/requirements/typedefs.cc
! 64ce3aa97054e997ea822c50e57d15b8  libstdc++-v3/testsuite/20_util/is_same/value.cc
! b930671c942e661f3ff2612e1b54c116  libstdc++-v3/testsuite/20_util/is_scalar/requirements/explicit_instantiation.cc
! 581c96fd91268dc215231bf4b8aeeb8b  libstdc++-v3/testsuite/20_util/is_scalar/requirements/typedefs.cc
! c37ef7407b4b449b0ce605a3e9a9edaf  libstdc++-v3/testsuite/20_util/is_scalar/value.cc
! a43f7c1fe7ff651e9c8696af66ffa7c2  libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc
! 9faa70923da835c24c8ea2d0250d9bb5  libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc
! 4f5e1b593ecd0d16ce0b12af4735110d  libstdc++-v3/testsuite/20_util/is_signed/requirements/explicit_instantiation.cc
! a6cce005ea982901d7c4cecf22aa02c0  libstdc++-v3/testsuite/20_util/is_signed/requirements/typedefs.cc
! bb8f23df914d6857678cd09bc0079e7b  libstdc++-v3/testsuite/20_util/is_signed/value.cc
! 2d7f08254f75f4ef2e5e7d50ec783715  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/explicit_instantiation.cc
! 9867a521f3034d137b6d94af22c449ae  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/typedefs.cc
! b37ee951162b2bf58cc3e58748be05a8  libstdc++-v3/testsuite/20_util/is_standard_layout/value.cc
! 49b765f0297be027f15a8e8c9b46e23b  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc
! 8f7ac6bd83dfc42a321d4656dbbe1679  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation_ext.cc
! 685e713d359e206e14ff56c77f7b630c  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc
! af1021a9b5d3cc16166754d63c333059  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs_ext.cc
! 8854c484d00c9ee12d7dd178fa83911d  libstdc++-v3/testsuite/20_util/is_swappable/value.cc
! ec990c0e5307ab37128ed579616bd1d4  libstdc++-v3/testsuite/20_util/is_swappable/value.h
! 449fcc5ca0388adbc2d53f747f61eb38  libstdc++-v3/testsuite/20_util/is_swappable/value_ext.cc
! f90ba09b2e7c7a164079b0dd6515a175  libstdc++-v3/testsuite/20_util/is_swappable_with/incomplete_neg.cc
! b9a5e78ab7614f548f80a0b769c64a7d  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc
! 5e428466e616e469835bdf2131a507da  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc
! 5b2545905f2f18481622a5f4ab0a4d34  libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc
! 5b087fd84d4a642dfb8cea5e7add703e  libstdc++-v3/testsuite/20_util/is_trivial/requirements/explicit_instantiation.cc
! b44ac30bd9809d3c12579dfea7b5346a  libstdc++-v3/testsuite/20_util/is_trivial/requirements/typedefs.cc
! a8feb56508a71d7328129be1e0f3e512  libstdc++-v3/testsuite/20_util/is_trivial/value.cc
! 032503a3fff66ed0382c5c78e06b5eb3  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/explicit_instantiation.cc
! ed18ff42dce40d503e2286979f5bfb56  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/typedefs.cc
! f18737d7abd754239121a052f2c29628  libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc
! bc070241ea78e312297cbd3352bd8160  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc
! e6ca1e5b916b29a275d01a8ca5ed9551  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc
! 918bece53e1cfddb7e5c604154dcda5b  libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc
! 6a4a685c33e67a3783572a96982f7c21  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc
! 88a90c8c09f0cff1ecdcba33d15495e7  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc
! 5d8602f84a5bcf8aef68110bfdb3a8a3  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc
! 7e6b37c73dadb5c01f6983aa0895fa2e  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/explicit_instantiation.cc
! e1c376ed926077d70d093d637a52bb38  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/typedefs.cc
! 7b9875961249c0c9e88b381a39a53974  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/value.cc
! a438621fef11b7b387e0e23cef00d530  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/explicit_instantiation.cc
! b0773b2797b8cd94cd872066875de333  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/typedefs.cc
! 55a7b89a4741273e7f7f813b663e63eb  libstdc++-v3/testsuite/20_util/is_trivially_copyable/value.cc
! c32af46825ec7ba351b4e3cb721307e9  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/explicit_instantiation.cc
! e402ba801441988e11b4767b3e65ff1b  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/typedefs.cc
! 1845c97ef64779568582d5746d6af514  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/value.cc
! e5307516d4167e27321535ab021851cf  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/explicit_instantiation.cc
! 49040006c4ced197b219335b179e5aeb  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/typedefs.cc
! 86f30ace42213f0a0f04e0b152dfe536  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value.cc
! 22b3d5c19cf146ea58b3e6865cfe67df  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/explicit_instantiation.cc
! 5343f5a711e06c8892cc858cf70cfd13  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/typedefs.cc
! 865aba6960a9bd3dea5c9feb6e713e6b  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/value.cc
! 805597debb13def51c09d4c2102ffe61  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/explicit_instantiation.cc
! a1cbcb4c14120fdcc7951f370248da0f  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/typedefs.cc
! 1585e94bc033160feb9c52ca19d93025  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/value.cc
! ab7c9bf7a359e95c165f37a0fe24641c  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc
! b8f745f995abdef40ba0d7b5b171cfd9  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc
! 36400484122bb9d340c6b604f17309e3  libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc
! ca6b6368e5258a2a8810509445ec3ab7  libstdc++-v3/testsuite/20_util/is_union/requirements/explicit_instantiation.cc
! 7c0feb1d8c092333cbca5ad9e1fc0ce2  libstdc++-v3/testsuite/20_util/is_union/requirements/typedefs.cc
! 73e66922cfb777f6b0c2b1279380dcd0  libstdc++-v3/testsuite/20_util/is_union/value.cc
! 942c65dd36314b9ed83834ac44e87cbd  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc
! 7473cdee5da6be200c92d469c4872461  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/typedefs.cc
! 35bb35a39b5be5155e565b14d0e711de  libstdc++-v3/testsuite/20_util/is_unsigned/value.cc
! 2ba3b71fc926b735b19179449982965f  libstdc++-v3/testsuite/20_util/is_void/requirements/explicit_instantiation.cc
! 859c88de83a713ba853cc27fd3ef1def  libstdc++-v3/testsuite/20_util/is_void/requirements/typedefs.cc
! 2ac334d899b67089f95bad3fa1abbfd6  libstdc++-v3/testsuite/20_util/is_void/value.cc
! a32ffcdc310fe613f0254d9569e243de  libstdc++-v3/testsuite/20_util/is_volatile/requirements/explicit_instantiation.cc
! 72e8782846f61370c51bd22169b0adc8  libstdc++-v3/testsuite/20_util/is_volatile/requirements/typedefs.cc
! d01e019cf7b38466349f31c0f6b2aa86  libstdc++-v3/testsuite/20_util/is_volatile/value.cc
! bbcb0551dcfa57678ca7b7830bcb54d6  libstdc++-v3/testsuite/20_util/logical_traits/83134.cc
  6f771d4e7b8b937d187f18a61f28fd4a  libstdc++-v3/testsuite/20_util/logical_traits/requirements/base_classes.cc
! 228e247fa9232f95e8195b727983b1ad  libstdc++-v3/testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc
  119b399190409df0e8ccdcf9b10c3e35  libstdc++-v3/testsuite/20_util/logical_traits/requirements/short_circuit.cc
! d0d245d3b8eb6653dfba1f5c7fd9867a  libstdc++-v3/testsuite/20_util/logical_traits/requirements/typedefs.cc
! a434424f0b210cd01a6bdc5986d18216  libstdc++-v3/testsuite/20_util/logical_traits/value.cc
! c293ca4f1296ddc96b0a01d57e0a3d99  libstdc++-v3/testsuite/20_util/make_signed/requirements/alias_decl.cc
! 10f34ffdb8a3e667fccc7f4cbc37dbc2  libstdc++-v3/testsuite/20_util/make_signed/requirements/explicit_instantiation.cc
! 9a56824efc7cca5e4975f1802ff7905d  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
! f5032c9433652cb5722a356ce34ce29d  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
! 2bcc5594830c8bbad65190b8765213e1  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-3.cc
! a1d7f3c9f5b504ff5274fa0a7e0c98f1  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-4.cc
! c0d826b2894f482f2e5af1dc96d1494c  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
  8f0db74dad9a1b305718ac6e066eedf2  libstdc++-v3/testsuite/20_util/make_signed/requirements/uninstantiated.cc
! f920dfa3617e2104216dcaf09a3304cd  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/alias_decl.cc
! ac016ec6162511499a49b549645834ca  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/explicit_instantiation.cc
! 28b8817d610269f4a89d1d6efc1f1595  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
! e933cfb446ba32c2675232b91b36e602  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
! 8080c9861ba6148693b6286381ed0a53  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-3.cc
! ddb7cf7831fab931b6554962c4377755  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
  a8e73ef02c8dd2e09fa65d0cba094035  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/uninstantiated.cc
! 89bce63ae339dee3dccfa3980fe06ab1  libstdc++-v3/testsuite/20_util/memory_resource/1.cc
! cc085eaedbc70ae6368df0302c23c49d  libstdc++-v3/testsuite/20_util/memory_resource/2.cc
! b93c91954e8fb21b2e2bcc9bfef05673  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc
! 95e23a157d5f569d38ea7e536b02c780  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc
! 98e50f12dfaa82dce5c8fba299758092  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
! c15600a21fa843a5a6c9f690510d2863  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc
! 3c1f4462ea2adbd0fbc74b99331f33e5  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc
! fa78df06bab619d8d25a03f417309cac  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc
! 80ccbc9c2d26a870f02828906e41c929  libstdc++-v3/testsuite/20_util/move/1.cc
! 75d0bc318f89664fe31268986ee05e45  libstdc++-v3/testsuite/20_util/move/requirements/explicit_instantiation.cc
! f61d7a897d81dfcb17694f112a79a09f  libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc
! c4ed2246fd2924e6641fa20e55f7b9fe  libstdc++-v3/testsuite/20_util/move_if_noexcept/constexpr.cc
! 29ebb398259c05e3f2e090de8b772d77  libstdc++-v3/testsuite/20_util/move_if_noexcept/requirements/explicit_instantiation.cc
! 0e72a1d5992e7d812b558b14e8d58c36  libstdc++-v3/testsuite/20_util/move_only_function/call.cc
! 2e0dbc6d04a6b5866af283b9f8b5ad37  libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
! 63fd70cd06fee042415b610d373d938b  libstdc++-v3/testsuite/20_util/move_only_function/move.cc
! ad5c04994549745a1219c6fae61aba7f  libstdc++-v3/testsuite/20_util/move_only_function/version.cc
! 3f57596357d794cac9e18678efde2470  libstdc++-v3/testsuite/20_util/nonesuch/nonesuch.cc
! 64cbecefa85e273dfc84993b590ca809  libstdc++-v3/testsuite/20_util/optional/77288.cc
  f669af40876c317318f47db8330b7058  libstdc++-v3/testsuite/20_util/optional/84601.cc
! 334172140046d78b82a7d727b9d3dcec  libstdc++-v3/testsuite/20_util/optional/assignment/1.cc
  5f2a36dc053d6d68a81135df84e7f4cb  libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc
! 9be33c1890244938a3f5ada1d1008258  libstdc++-v3/testsuite/20_util/optional/assignment/2.cc
! 081e6842ed53525f1a1ff67e6189a543  libstdc++-v3/testsuite/20_util/optional/assignment/3.cc
! d1708261a8f90fbdaacce288dc47e495  libstdc++-v3/testsuite/20_util/optional/assignment/4.cc
! 5f91c1d18604c1c308c8dd00a50bcb22  libstdc++-v3/testsuite/20_util/optional/assignment/5.cc
! 7ab0dfd9d1a150128838cb0df5ce278d  libstdc++-v3/testsuite/20_util/optional/assignment/6.cc
! 6ae4f964964286194efc59dc83b2cd77  libstdc++-v3/testsuite/20_util/optional/assignment/7.cc
! 33122a8475eb604a8bddd7a73df3101a  libstdc++-v3/testsuite/20_util/optional/assignment/8.cc
! ca382bd347802f5d4061a84ca662abc7  libstdc++-v3/testsuite/20_util/optional/assignment/9.cc
! 998ba8d4ef69dd974c12070c23bc39bb  libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc
! 48d7dee17cbcc81ad1bed90c1297dd21  libstdc++-v3/testsuite/20_util/optional/assignment/noexcept.cc
! 4ac7ae4a371b2063a86f6c3f04695a68  libstdc++-v3/testsuite/20_util/optional/bad_access.cc
! 6ad562d63175d78f2f2826b42478abda  libstdc++-v3/testsuite/20_util/optional/cons/77727.cc
! 2c1aabe6d42a2b66794cdbfcc973d5df  libstdc++-v3/testsuite/20_util/optional/cons/85642.cc
! 81f2617d953541fdf0aa98ccde8d5440  libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc
! d537a4a246e9bd33ec9cd7372acc525a  libstdc++-v3/testsuite/20_util/optional/cons/copy.cc
! 12e9f93109cc4c3972cf35d73b8458d5  libstdc++-v3/testsuite/20_util/optional/cons/deduction.cc
! 9d6da4b2632fe0ddf3634084c20b760f  libstdc++-v3/testsuite/20_util/optional/cons/default.cc
! 90e527aafd909074b29855f8d55d60c1  libstdc++-v3/testsuite/20_util/optional/cons/move.cc
! cbed26bbe1f8b7d6e033987614c72ffe  libstdc++-v3/testsuite/20_util/optional/cons/noexcept.cc
! 3b2271894dd762cdd35259853408bef6  libstdc++-v3/testsuite/20_util/optional/cons/trivial.cc
! 908a806d0f558b2505e83f828365034b  libstdc++-v3/testsuite/20_util/optional/cons/value.cc
! 1ffb3d5aad4f661e9da36cc9168b5b2d  libstdc++-v3/testsuite/20_util/optional/cons/value_neg.cc
! 205153857e4103d66c67fae379d14a86  libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
! 52debc915496e85a8c7135a5baffe7b1  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
! 91140058b85f1682c0877ddf992324b9  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/default.cc
! f1bbdf7cd3490bf38951104286ca906d  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/value.cc
! 5eeb3d47238f87f3c17636a316eaf3dc  libstdc++-v3/testsuite/20_util/optional/constexpr/in_place.cc
! 3c3fdefa1ac26cb8c6071364d8019849  libstdc++-v3/testsuite/20_util/optional/constexpr/make_optional.cc
! 1bd13d53c43f256f47a5c535cc903df1  libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc
! f123d0ebaa0e1ad0140ffe56328b71bb  libstdc++-v3/testsuite/20_util/optional/constexpr/nullopt.cc
! ebb337ee1d416b0e1b3df196856ef9d3  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/1.cc
! 3f27c1e35f5404a3aeea0ad66808973e  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/2.cc
! 84dd0dc4e4189eb983164d6e320a4713  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/3.cc
! 19178f2d32a9c2d2d66cd87d7252076b  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/4.cc
! f61b813c0fdfcc562c0bb0e17b0bcbed  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/5.cc
! f52c456741b857f76a55f3e4a4db6611  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/1.cc
! ca34b974d03bfe4421ed99af9bc2d2bd  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/2.cc
! ae1b853cd6d2953896a6620ab4d4fabd  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/3.cc
! 22d3bd003e9bac3b9445377978e8c942  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/4.cc
! d45bf743bb1accdb492791d68ee4edea  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/5.cc
! 1809bbbec3512ce6aa5c2723071bd6fc  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/6.cc
! 1a6e6bdd2186983f8eb3e55976f3af73  libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc
! 53392fa4d239b4ccd4ce7924369aaf1d  libstdc++-v3/testsuite/20_util/optional/hash.cc
! 4bf31d6ddd9eaf4bcd2a7387518312e9  libstdc++-v3/testsuite/20_util/optional/in_place.cc
! a0184a084c3c58ce02e224565d2e1e19  libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc
! 6561aba5488e4e1704b7e1b69827a06f  libstdc++-v3/testsuite/20_util/optional/make_optional.cc
! 5b939997ab0b925554c67ff456486490  libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
! 1fb80e2a52e88cb6b62919fce0976800  libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
! 79388e9c0a6e088bd396e51da861fa47  libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
! 658147c042bf51f6c27e883496ca3a7f  libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
! e73fd70677c9d505f949cef47d3131d8  libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
! 1a7042490d2aa865994573a8d38628d4  libstdc++-v3/testsuite/20_util/optional/nullopt.cc
! 2d426c7e89332a56036a825bbd2f3a7c  libstdc++-v3/testsuite/20_util/optional/observers/1.cc
! 8e8ea7fc590ab973842882aec4a6a19b  libstdc++-v3/testsuite/20_util/optional/observers/2.cc
! f6cb62d3636a4b01e4552c6e8fe25d08  libstdc++-v3/testsuite/20_util/optional/observers/3.cc
! daf23e0df03a7bd37380c271295d2f26  libstdc++-v3/testsuite/20_util/optional/observers/4.cc
! 5c2c86b640e53bfdcf939da8c3df3ae2  libstdc++-v3/testsuite/20_util/optional/observers/5.cc
! 69a21b5ad7d8ad23b70b305e19e9d27e  libstdc++-v3/testsuite/20_util/optional/observers/6.cc
  d8af3640e7aabc8dd1960265b3ca5a27  libstdc++-v3/testsuite/20_util/optional/observers/lwg2762.cc
! 991d636d53d2f7acb341d14aa803d94c  libstdc++-v3/testsuite/20_util/optional/relops/1.cc
! 89a5ec5e6030e4f174a4d512fd8b65f1  libstdc++-v3/testsuite/20_util/optional/relops/2.cc
! 6a3814cb3ee5ee4899bb2d9652f87ec1  libstdc++-v3/testsuite/20_util/optional/relops/3.cc
! dcc8540166b215b6c3f7d20209d2e82f  libstdc++-v3/testsuite/20_util/optional/relops/4.cc
! 86a54a5f48dbd8831be09454e96cf0df  libstdc++-v3/testsuite/20_util/optional/relops/5.cc
! 2c5909b1e72d98134330f1041903cb7a  libstdc++-v3/testsuite/20_util/optional/relops/6.cc
! 31f3905822ee28ee286560526ada7d49  libstdc++-v3/testsuite/20_util/optional/relops/7.cc
! a70f8ba4cc35c26d316eabc1b5a3d589  libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
! ee96fd765f9b3969a8affbd8f2953ead  libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
! ead8aa4cba40828551f81c6ddaddbaf1  libstdc++-v3/testsuite/20_util/optional/requirements.cc
  dbea899b3c675ff68a2a4b74a3b78bca  libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc
! 5ab6fe094dd0b4eab5cc0bb86615cb91  libstdc++-v3/testsuite/20_util/optional/swap/1.cc
! 9fa5dd103813f35fe539e810a3f789dd  libstdc++-v3/testsuite/20_util/optional/swap/2.cc
! 2f2c364f33e993b131556c9483cd6851  libstdc++-v3/testsuite/20_util/optional/typedefs.cc
! 027c1d0d48df3e1ffe45b2c618f329e5  libstdc++-v3/testsuite/20_util/optional/version.cc
! ff375f5649e1c7fe7cab858c459baa6d  libstdc++-v3/testsuite/20_util/owner_less/cmp.cc
! 545f86f81d83fb81118295c1943a5275  libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc
! be8f99c93f1ed21490ad431cd2496fc5  libstdc++-v3/testsuite/20_util/owner_less/void.cc
! 7486a0a91203f1fdae0fe06450d87aea  libstdc++-v3/testsuite/20_util/pair/1.cc
! 565c48bc72f5b0739e592823fa575b8b  libstdc++-v3/testsuite/20_util/pair/2.cc
! 2c2ad0426c1fc32f241247d0e0007982  libstdc++-v3/testsuite/20_util/pair/3.cc
! fec24fe707b753cc28fddec9b170a2e1  libstdc++-v3/testsuite/20_util/pair/4.cc
! 4c9e86bc0bf72f883a08a63e7ccc14d2  libstdc++-v3/testsuite/20_util/pair/40925.cc
! 35621839e1db04d77fe928893c036bdb  libstdc++-v3/testsuite/20_util/pair/44487.cc
! 48f59c7427a9629a365a3963f6be2277  libstdc++-v3/testsuite/20_util/pair/70437.cc
! 6fb6e3435efbe26e6b3fcf056d6399f7  libstdc++-v3/testsuite/20_util/pair/79141.cc
! baf47d7e746b01676e2c8e06d9fc08c1  libstdc++-v3/testsuite/20_util/pair/86751.cc
! 80791d8d966ebfa92ad8b9722e71bb27  libstdc++-v3/testsuite/20_util/pair/87822.cc
! a7827f35ecc74565cabd7b9c086fc81d  libstdc++-v3/testsuite/20_util/pair/astuple/astuple.cc
! dba153ead4480d6ffc83a3861e70bd0a  libstdc++-v3/testsuite/20_util/pair/astuple/astuple_cpp14.cc
! f85ce0eb8f8613b9ca3c5eaee59ae62e  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get.cc
! 36b67ad86ea801dc337f0d54fe42b2ac  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get_by_type.cc
  f2f2b91309730f195c55679493733944  libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc
! 82db2025a4d299eba41e5c05e9db4754  libstdc++-v3/testsuite/20_util/pair/astuple/get.cc
! 44cb72be0132169cc67167c6f46d3121  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type.cc
! 00b514e9ef49c58e9e95575a0ea7f4b9  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
! 48940b90d447509433832bad389182bf  libstdc++-v3/testsuite/20_util/pair/astuple/get_neg.cc
! ec618870c1f0079db86b80616f28ce73  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr.cc
! 28c1f9f768fed1fd3801d2bd6b7e363a  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc
! 3f110cfd7485de1ab2b675c801318cf6  libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc
  c5964cf74c99c86ce570bfdb15835bb8  libstdc++-v3/testsuite/20_util/pair/cons/99957.cc
! 1dc6da744a411e2a03d603b4b5f085d3  libstdc++-v3/testsuite/20_util/pair/cons/constexpr.cc
! d7a7b98c2d3b75636ba5715c3a4606f5  libstdc++-v3/testsuite/20_util/pair/cons/deduction.cc
! 86c743b33f73224890f1045945d6bae0  libstdc++-v3/testsuite/20_util/pair/cons/explicit_construct.cc
! dcbe0756dcfb595b5579becf64f9c626  libstdc++-v3/testsuite/20_util/pair/cons/noexcept_move_construct.cc
! cc1ddc18d1d6ca3446100aaa17f85d82  libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc
! 94e490e9b5a130ddb250fd605e7ab95b  libstdc++-v3/testsuite/20_util/pair/constexpr_get.cc
! feb016732a2bd2e97a989066666a6f4c  libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc
! 685e1dd4b4554f1332bf28bb4f5552f4  libstdc++-v3/testsuite/20_util/pair/dangling_ref.cc
! 8899266adb9c49e27db015e2bd5624b0  libstdc++-v3/testsuite/20_util/pair/make_pair/constexpr.cc
! d91dccd61f564af387b55798a0a2ae1e  libstdc++-v3/testsuite/20_util/pair/moveable.cc
! 3ec0a64cdc81472c0511b6da9e666527  libstdc++-v3/testsuite/20_util/pair/noexcept_move_assign.cc
! 574d80ee5f7b3b399fa2a342a69db0b4  libstdc++-v3/testsuite/20_util/pair/noexcept_swap.cc
! f65545584e5d8365ad02888edd585046  libstdc++-v3/testsuite/20_util/pair/noncopyable.cc
! ff6c06b88f79c5545b94106c9fccabc4  libstdc++-v3/testsuite/20_util/pair/p2321r2.cc
! 16a77f054ddd36767eb768b93d8cc69d  libstdc++-v3/testsuite/20_util/pair/piecewise.cc
! 17f1422f9612d4089a43c310c4355e95  libstdc++-v3/testsuite/20_util/pair/piecewise2.cc
! 471cd644147f68521bb7fb672c25ea6c  libstdc++-v3/testsuite/20_util/pair/ref_assign.cc
! 5287961488967bbaa0eb6a4efe7ead28  libstdc++-v3/testsuite/20_util/pair/requirements/dr2367.cc
! f622f337dad33fa2e16ee353f49e4246  libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc
! 3e6a6c6b7f33c664601c968d40686b1c  libstdc++-v3/testsuite/20_util/pair/requirements/explicit_instantiation/1.cc
! 8099b36c756fc41e3bc9ee5b66294a57  libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc
! 9543011fea4740ed178a3cead6b5cced  libstdc++-v3/testsuite/20_util/pair/swap.cc
! 366dce40844c0f9f75bf4ca655ea851b  libstdc++-v3/testsuite/20_util/pair/swap_cxx17.cc
! d601ec70a1b6adf9007c3534aff34392  libstdc++-v3/testsuite/20_util/pair/traits.cc
! d04803a95f00517aa240f3572d5be6e8  libstdc++-v3/testsuite/20_util/pointer_safety/1.cc
  4ea61b01821ef91d050e7dc8bc19448b  libstdc++-v3/testsuite/20_util/pointer_traits/lwg3545.cc
! d53c0ae2fcdec06af2640733b22f3e45  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc
! 76afe50176de553d645320f66aee5e12  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc
! e67918651e7b77b88fc9c165a6a1aca3  libstdc++-v3/testsuite/20_util/pointer_traits/rebind.cc
! 371a177af6ef75fc4b7646e8454a24cf  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/explicit_instantiation.cc
! 17efd31fe0edb9917787e9076d54c352  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc
! 34ba6c106f61558c00ce979764704f19  libstdc++-v3/testsuite/20_util/polymorphic_allocator/1.cc
! fab511f0303293793e5db5c2aaafddd6  libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
! cc91d78fc4f84c561ae9b2934503853c  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
! 29f50d88f0916627ce252d391dd4d524  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_pair.cc
! f1077ac34eec196d1de18c6323e05a63  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
  918078cc6c6d9bc5d48247416402bca6  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3683.cc
! 5c78197869d803426c8b5169eb481d54  libstdc++-v3/testsuite/20_util/polymorphic_allocator/resource.cc
! 976b98c303bf8f7375bdbf5f9c80f72f  libstdc++-v3/testsuite/20_util/polymorphic_allocator/select.cc
! 93537fb22da56feec39acd8e5150be3a  libstdc++-v3/testsuite/20_util/rank/requirements/explicit_instantiation.cc
! 23793535db204809ddbdcee68a1f73ca  libstdc++-v3/testsuite/20_util/rank/requirements/typedefs.cc
! 7f1556972e2a14c5a58aa1944f884510  libstdc++-v3/testsuite/20_util/rank/value.cc
! ee3532718bd6880afefaa8b1600c242f  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp1.cc
! 264ce05788c2f205c4908db32fe0bd36  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp2.cc
! 1338e4cca544079d649d0f23006ee027  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp3.cc
! ff7cce6d39536aed98507ecaeecc4893  libstdc++-v3/testsuite/20_util/ratio/cons/cons1.cc
! 8158dbb53f3df11095aa1a90f487e37f  libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
! 1f54f0e86c4cf0081bca91cec1395351  libstdc++-v3/testsuite/20_util/ratio/operations/45866.cc
! aecdaaebb46ed630161b34295983a571  libstdc++-v3/testsuite/20_util/ratio/operations/47913.cc
! 44a8cce9764046fb522192587b9def1c  libstdc++-v3/testsuite/20_util/ratio/operations/53840.cc
! 23bf4f470706b3e2b3d2cc072304c458  libstdc++-v3/testsuite/20_util/ratio/operations/ops1.cc
! 3d5026d3942ebf255cb4776e9164943c  libstdc++-v3/testsuite/20_util/ratio/operations/ops2.cc
! e3a64ba12b35e4aca09046576d52bff4  libstdc++-v3/testsuite/20_util/ratio/operations/ops3.cc
! 836ded60efa4bdf3d5d6683aaaa3ec98  libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
! 65e751b6e39058f2220bc1b3bf523d7c  libstdc++-v3/testsuite/20_util/ratio/requirements/constexpr_data.cc
! 8fadef9c07657382182385a1515c98da  libstdc++-v3/testsuite/20_util/ratio/requirements/ratio_equal_v.cc
! df867c9e6b65da0022414ff9c12e1579  libstdc++-v3/testsuite/20_util/raw_storage_iterator/base.cc
! 978a3bd82d79476d2496813c2d1e8bc2  libstdc++-v3/testsuite/20_util/raw_storage_iterator/dr2127.cc
! 20b679022dcbb813a227adabf7adf3b9  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc
! a8ca84d4dada2233d8ad92312c614705  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc
! e36a892688cd95cf86b2cce9215208db  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc
! 5fa8f2eec894c9a0658e9bd544f842fd  libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc
! 698b0cfb0695135fc49f4724cb233817  libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc
! 2108bed966c1e4464bc55e17ec26fd72  libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc
! f5f7a53d5e3b8d777fbd74c97bb61855  libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc
! f4ae99ef34e5cb65ebad76b7cede617e  libstdc++-v3/testsuite/20_util/reference_wrapper/41792.cc
! 7b05aaadf8c4875e104faf5a8f8146b0  libstdc++-v3/testsuite/20_util/reference_wrapper/80504.cc
! ed64d1b43824fe9c96574c0cc11b3b56  libstdc++-v3/testsuite/20_util/reference_wrapper/83427.cc
! e71bde043b81802b8969eddd57426842  libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc
! 6930f41a8f12e278ec01de4c289f0bf1  libstdc++-v3/testsuite/20_util/reference_wrapper/deduction.cc
! ead8f3bdbf4d5b384f8ddc26562489ef  libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc
! 4547767a7a0c0f2d7fd5eda70d1563a3  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
! 7da3a62c526b20b108ba1ddc4dd0d462  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-3.cc
  3a4e290fbbefce397c537f6f76360292  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-noexcept.cc
! 01f90e55c7d94ee951bc41a37da6ba6d  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
! 538a57ddf58b87dcc7b3d6cc23e2a164  libstdc++-v3/testsuite/20_util/reference_wrapper/lwg2993.cc
! 22373cd6834e77a0a83aa3c3137a7f38  libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc
! 365aff6c5af180ad29aa07a948f46831  libstdc++-v3/testsuite/20_util/reference_wrapper/requirements.cc
! 1b4cd00f72f9eb311d68a60a03d67734  libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
! 0a0b85f59dcf3e5275281179fcb63fd9  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
! b8ea41e56a063fe13c469ababfe3c1c1  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
! aefd342cc0168a768d50a94b221fb9ae  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc
! 75c9b9a69361d9e5788ef7b44b51d487  libstdc++-v3/testsuite/20_util/rel_ops.cc
! 10036d0dbbc516fa369da0d463e6abb6  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/alias_decl.cc
! a2958836dac3fbcedb9ebef5da3f0339  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/explicit_instantiation.cc
! 6725499eaed68cb474073c0dbf58c8e2  libstdc++-v3/testsuite/20_util/remove_all_extents/value.cc
! d1a15e6616b7919716b27c4ca8ca1cb0  libstdc++-v3/testsuite/20_util/remove_const/requirements/alias_decl.cc
! ebecffeb16a60e5f502d39507c4bb0ed  libstdc++-v3/testsuite/20_util/remove_const/requirements/explicit_instantiation.cc
! d5cb2edafa9e3e678374d9466543e3ef  libstdc++-v3/testsuite/20_util/remove_const/value.cc
! d1813aff2fe5557e96bc04913e74c016  libstdc++-v3/testsuite/20_util/remove_cv/requirements/alias_decl.cc
! 57bf721f59c4423c53838d3a48e9f285  libstdc++-v3/testsuite/20_util/remove_cv/requirements/explicit_instantiation.cc
! f2f1e46533ca82fc1a8add447fb436b4  libstdc++-v3/testsuite/20_util/remove_cv/value.cc
! 057a9842fbd0e4eeddefb5a547224b3c  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc
! 74f5fddf85338c3440f02e31a89bda12  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc
! d3d328ea1478df94d4cf943551caf2e5  libstdc++-v3/testsuite/20_util/remove_cvref/value.cc
! f5432fb40127a759f8d85347e5565e43  libstdc++-v3/testsuite/20_util/remove_cvref/value_ext.cc
! 4ca4f9be8c13fe8c67192551bed14636  libstdc++-v3/testsuite/20_util/remove_extent/requirements/alias_decl.cc
! 0288bda3e07c0c06a813bdbddae95a70  libstdc++-v3/testsuite/20_util/remove_extent/requirements/explicit_instantiation.cc
! 13fea077dae8bdff3d774e8c8f3f5a11  libstdc++-v3/testsuite/20_util/remove_extent/value.cc
! 60185833c47a4e1e729b78e2a9144c65  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/alias_decl.cc
! 04adceb338f1dcdc65a516c89d08bb83  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/explicit_instantiation.cc
! 126e9395e234c1731862c749cc787c90  libstdc++-v3/testsuite/20_util/remove_pointer/value.cc
! bc3228da6de2b341071cf10fa2daae31  libstdc++-v3/testsuite/20_util/remove_reference/requirements/alias_decl.cc
! a4363d746855bdac81de766c741bdb41  libstdc++-v3/testsuite/20_util/remove_reference/requirements/explicit_instantiation.cc
! f63a0ac2842142a3126d2ecb7aefdb0a  libstdc++-v3/testsuite/20_util/remove_reference/value.cc
! 649ae8b5c5be28bb8004fa8ad371dada  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/alias_decl.cc
! f32a774434c16affb4ed8f8da7ad9863  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/explicit_instantiation.cc
! abaa04259fadc7751be3a935a9f1964e  libstdc++-v3/testsuite/20_util/remove_volatile/value.cc
! f6184c45e4c302ae6f4fa5e0d9d063cc  libstdc++-v3/testsuite/20_util/result_of/1.cc
! aac27546cc3c86716656efb767edde39  libstdc++-v3/testsuite/20_util/result_of/2.cc
! 8fd2be0ff5f49bf810d4cf022d98195c  libstdc++-v3/testsuite/20_util/result_of/requirements/alias_decl.cc
! e2078640473e614b6ac281128abe6bd0  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
! ebcd4ea070a6c365356388c26610563f  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_2.cc
! 70412240786e3f99061ce4dac7ffe5d5  libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc
  da8b1f9f56123156faf50b7277670b45  libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc
! bdce5c2d51de0e36fce341eaed81fca1  libstdc++-v3/testsuite/20_util/scoped_allocator/2.cc
! 87fbc4649a0e89a9a71adf98ee6cc1d7  libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc
! 407a97a706100e9f099e4af3b6e85650  libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc
! 64fb1644922ed79c45233fb95f79ce9d  libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc
! ed383ec28485f421ee462e45e9ef0250  libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc
! a6a7544f68a2c8339420eeb81a861827  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc
! a002819caabbf2f56afcbcc6a4bf301a  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
! f70a0df2895133874d14ae3e7f6b708a  libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc
! 52ac694fb85b64837c02f1c4a7a2ebc9  libstdc++-v3/testsuite/20_util/scoped_allocator/noexcept.cc
! cd03cf0d9a71d401845aaca08a9cf4b3  libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc
! 2bb2bd5d66b3fd17ba6a7885d7e6caae  libstdc++-v3/testsuite/20_util/scoped_allocator/propagation.cc
! 63b54978af587ba9b770d1292820ad36  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc
! b621941ae78a5e7e5280c88468475122  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/typedefs.cc
! b5301b81835f8562c900fa30201b75aa  libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc
! 93925730f82fe11758771f7b105fb197  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc
! 20c24b24d32f4a60dca959dc3068c393  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc
! 016de758c4e8cc8197c3758a0921db27  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc
! 178554f5b4158f3c4a0772193f126eee  libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc
! 553edc7d74163ac20ecc99e92b414af3  libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc
! 610070aadb000a2451044e21fc3b220a  libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc
! 92fd9d4f54835c08331684663a26aaa9  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc
! 58d03d4bbb7b9c8ff8482db697af818a  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc
! c32c750711f1bccd599898c06ba803c5  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc
! 5670baf2aee10623c24c8c65dc190303  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc
! a5b8e50811a4a457444c223bda26acc2  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc
! c99635b761ab56e51025eb57d7d1000b  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc
! 27d63de0fba90eaef8d8b8ffb57eda5f  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
! bf39cd1cf503e318e210d5f1b9ea4a7d  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc
! 0df566dc41b79c603ba93d6ee5800712  libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc
! 65c02f7946d442afec2481afec892067  libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc
! e1d6e797d0ba7198e1e1808ed92c4b60  libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc
! 1455f864780d5c844a1ef69a6a4cc3c2  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc
! b3370ef76c76e7fabc1ff6a467f97dca  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc
! 62165d5984dc254e32892a202562d84a  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc
! 7fecd503fa0b1cc154a62c9ef53f7b89  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc
! 7066d4dd45a80c4d968aa55de8adb2b4  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc
! 44c5ffde1cabd049de1925a0055ef34b  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc
! deef9c6883a20941f50c5567c01a4de3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc
! 12ae2f91273c33b6c8585aad275852e5  libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
! d7dd8af7a662e35d4ba306b4090a9e8c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc
! 4aba6fc080fd44c3b2de2115b61c1a15  libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc
! 3200c46c2e66f4321964ee10cba32dc0  libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc
! d86ff14225614e2f5dcaeca18ca69f26  libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc
! a914b4e5ee1a83224c2bf6e0bdfff1b9  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc
! 2e8f893e227d3830a9732f21f26ee43b  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
! 6db2017759e0229fc3210b325be22261  libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc
! 699d40505877fb5fea7bd8742fe09bf7  libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc
! a0b6822b24d8b7405391a418f5e2bfa2  libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc
! bcb4793ed4505897d2b84e8ef0cfc27e  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
! 1a9107393591ee46a136808764e14374  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc
! 6246c27278780f9c8c7808e0e7547b79  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc.cc
! 12c23f1c39696fecaf36a33767a3d92d  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc_min.cc
! 0fdb695ed895812eb874628e8a4bed3c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc
! 9ee8b3d4e8fe42053c9cecd12678489c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc
! d0d864acbef72f02f5b24cae9032dbd1  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc
! e5e4fbbcaf217254847a3ac83857dad9  libstdc++-v3/testsuite/20_util/shared_ptr/cons/constexpr.cc
! 7ad9bc15da5b08ce0313157eb402210c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc
! 090aa73fa1eb133fa5b7b6314782dd93  libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc
! 45bcfb1de0f2defed74460bf3511927f  libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc
! 555d33761bfebbd1a232adccfd2cc7a6  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc
  23dbae4c540e8990b44404c82f23bc80  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc
! 01f7c669019166ddf4e0c748fa08ee58  libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc
! 02f2529b8bc55c3c8b2f18e420e70e8e  libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc
! 4b6d080530b48e3dca9f5439bd76058f  libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc
! 4b0b8371e3d12adc3de7ab5d21dcf129  libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc
! 5ed59431d2fc29ba345cdb201c58b718  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc
! 7f2203af8de5dc02ed0f8ceb7c3ab9b4  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc
! 1bb6b0b43dd422a37f99daba313c0387  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc
! cd498223577553a0b3867fdcdc69634c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc
! bc52243f0adebf9356ad1cc199247ec9  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc
! 37a911656dbc0e552a1d3cdbf8efb13a  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc
! 08c49a2ab09d65899d4a8921db683496  libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc
! 000da3496dabd9dce74b843dde10a524  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc
! fe119ce4d9b94b0b7b4cef698e32f307  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc
! e773b7e0d890a570869d386e365bb0b3  libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc
! eb7dacf8c7cadd632acd08cafacd9d0d  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc
! 256044bd9e82e30807df8d6d9c119c5b  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc
! 5bb98f40ef0b788d6a4e18834c1979d7  libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc
! baf913b48eb45dc879ea3d988f88da7f  libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc
  81f7fb60e4aacbe92da9a1eab6fd4f82  libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc
! 12cb4e5617962aa94d25999e44bd0055  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc.cc
! 2731e1f6438ca1eacc343adc9e8618ab  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc_min.cc
! 76484e864073c24bfc898fc0c8e91728  libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc
! 77fd92eb08daf02b9b30d2b2cdfed05f  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc
! 6adfdfbb7dd8007e53f723d7a8507295  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc
! ed4d5b6236ad8c27c977201d79ed3c14  libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc
! 467093b5113c21423d4410ca2b6dbdc8  libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc
! 854fb7241fdf385c57b005e319ee11b4  libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc
! 506c47b71e18418c71b403c8bc195d2f  libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc
! 56b8ea94c23325b515e177cd89261c3a  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc
! 1e34d6072d1fd6625dcccc979084125a  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc
! 0151f13bb3f4922112375cd2a72c3f2e  libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc
! 0733615ffe3796fc9ea1c5751c47dcac  libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc
! 050c7bdcb59cbd94d89403646768cd8b  libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc
! 3bce7ea4d77cd7b503074e4b022b042e  libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc
! ee67b5b11fa7370bc3c049098409c2c9  libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc
! 04c6d1434a84805a2284fac0542b3f9c  libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc
! a96a44d82e4c79fb4c966d9ea49aced4  libstdc++-v3/testsuite/20_util/shared_ptr/misc/io.cc
! 62644bc9cf50e22f67266c729935a278  libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc
! bcf4938d037798d36352bfb8b38073d9  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/24805.cc
! 96abfc62605f16c4e46b8a68e20a8f29  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc
! a3ff0789a7e3e594ae4926cf3fda4c68  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc
! 70a17d880fe78c6bc02dfa9d1208beb3  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc
! bbcde87b506b65215ea54e96389bd263  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc
! 565b5b6847a31ef6e4f44d293cce2c11  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc
! 7bef7a5f669f91c48532ddc1264e52fb  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc
! 5aecfdf24f2b308b411df7e055f5d261  libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc
! 537c24354d6dad88787623cd2b1707a9  libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc
! a54664d62954ab2649e6aa8c09a2a87c  libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc
! 8918180e68742cf67fb91de83bdeda09  libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc
! d8b105856e6a3f411dcde3c993534970  libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc
! 028cce135beddf6da08f9db75918ea20  libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc
! 565b34e5163e6a1e5b24a81b53e3ad9d  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc
! 5b56506b9bd6c8a882702360efaa172b  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc
! 5df2437456d5a6883be7e5f3d8b89ea5  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc
! f977c7ffc1890ee3239a73e5a016d36d  libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
! 16a0cb533dc557b22d7d544e6e5afa84  libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
! d689e00967b57d0a7c7fca24ba2f6cea  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc
! d6bc384ca66ff3fdd05e0b2371122457  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc
! 227931069351de891d63e6a0ce09cf3a  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
! 13432f208160f26ba0e05a30f46f88f0  libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
! 307ed30ab86d3f9f310f22ef029e832e  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
! 0695e76e14d0d1b7c0729b84e8e85149  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc
! 7e2d819342973c849d87437556e29d5c  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc
! 681f3ec9c3b800b4e5258afc87a95231  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc
! 7377989805a8e1aa7f8896037d2eefae  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc
! 5b704732406181ac1971ce9132630dc3  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc
  efb0b570168ffe84d6e2f37ece809386  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc
! 648754579ac9bbb88ce396e49ffc5f20  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/58982.cc
! 03f4f5c390091fc6e8d0e3f977968784  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc
! 38f5fbeb35345e4d64d18256a78ba515  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc
! eae64f29ccdbfcdee6063dc34aadfbc8  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
! 643fec3aad33540f16c15ac8700662f5  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc
! 48c076e50b07e3f7a7ea7026a7e0f5f6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc
! 8949b41536e4ffb28df4c101423f875f  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/move_iterators/1.cc
  9b3e4f319f44ee77ea0c657fdf58b9fc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc
! 6b726c26a8fedc476b6d05db04708cd0  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/58982.cc
! fe20093c549382ead754efc1396162fd  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/89164.cc
! 22d90576bfce92133731247ce45dff2e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/move_iterators/1.cc
! b143c0415a62fcea0fee40d2c11b19f1  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc
! bd22e0b4f788f52c08f61a0f6f26f4fc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc
! ac71997ec3283a1f08b0afbbb4736186  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc
! 742cf913c966c409fa6711d3e4401937  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc
  b3a76cdacc3eabc45c217e3d5a8738a6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc
! 1de641cd6a6076702c4d892b61bc4128  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc
! b6d68f3dc73bcc005ce1b74e9b3ef06b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/58982.cc
! 472c35f618578e2322d56e74635be70d  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc
! 70a110aa67690aa2fcef4239ea19a947  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc
! f43520c8500e12c4d4cd0dd9a8c89d53  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc
  2b8079d02ae431daa7c5a8e3743eb7a6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc
! 4dff6ee6019ca0186ed7ca807859f5d0  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/16505.cc
! 6613d4b4ee869ed428ea1a83082e2b4f  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/58982.cc
! 38799e6696243203321f11e81f0a6288  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/89164.cc
! dd6ca9bbbc3ccd376989fd7088e7fa48  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc
! 134934699c21eecdbe0eaac97cdfa0f6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/dr1339.cc
! 955d8659a65af878d72c899c14451bb6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc
! b18fa5cb153e18bec22ffb1e08619094  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
! cd26b65b16e380bbb132809e2ae32dd1  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc
! c66f2a4b305f52142ba4933f4a3283bf  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc
! fced6aef1c90b8200f7966d8fc0d1e2b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc
! 23c56fdbc29d5022809523814c5efbb7  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc
! 14b31098d096d0fc451958711491a982  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc
! a7c2ab37c69a57274f01d9c1c0925d2b  libstdc++-v3/testsuite/20_util/steady_clock/constexpr_data.cc
! e01bbbdabdcc05d3ec7cd1288920cb0b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
! 8cb654edf02f6707a3f06925f75baeaf  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
! 3ec8a2fc64cb64aa1082ab02188507a8  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
! 8c1c8d846e1d972a03eda250e0a914ca  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc
! 21c579f55fd040010d547d2bc0dd3fbb  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc
! bd7b1df14e0242e5cc6bb963a8caf000  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc
! 62880ccf1590b873deb5425810f2be4e  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc
! 7c4cbea59e0d8fa4d2479c9e8494c9ff  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
! 12bde2861fe41d383cbc8aa9c4cac9fd  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
! 5307895572f0fc61ec27f7a5d657f483  libstdc++-v3/testsuite/20_util/system_clock/1.cc
! 6292b64c03c25ef42b661d0c57d13bdd  libstdc++-v3/testsuite/20_util/system_clock/constexpr_data.cc
! 32bc098b843d29bdcae3ff1441d6e005  libstdc++-v3/testsuite/20_util/temporary_buffer.cc
! c1c191bc9337a174e6159bb8834f26a7  libstdc++-v3/testsuite/20_util/time_point/1.cc
! 3cc2d9004ae64716a036260e3c4af747  libstdc++-v3/testsuite/20_util/time_point/2.cc
! 53e994288c084ac38d571db2fd2c561c  libstdc++-v3/testsuite/20_util/time_point/3.cc
! 1051ac5013b484e2bf2462dac386ddbb  libstdc++-v3/testsuite/20_util/time_point/4.cc
! dd2dd723c40a8c8a4c61bb9b705873b1  libstdc++-v3/testsuite/20_util/time_point/arithmetic/constexpr.cc
! b76a2f4bc001580af5ca4ca599cbcefc  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/constexpr.cc
! 8f9710cd87908b4e81693efc33562d13  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc
! 44be47f53369f7140030ade154f1abe6  libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc
! a0b9c69630bfb790c8aa6fc7f0a89ec2  libstdc++-v3/testsuite/20_util/time_point/cons/constexpr.cc
! fbdf616e9d0f08e949faf835d1c7868d  libstdc++-v3/testsuite/20_util/time_point/nonmember/constexpr.cc
! 41f21006514da0604136c187c5db159e  libstdc++-v3/testsuite/20_util/time_point/requirements/constexpr_functions.cc
! cdaa44625011b769a7532fcc89257107  libstdc++-v3/testsuite/20_util/time_point/requirements/duration_neg.cc
! ce1b1eb444e51942d7d45fae51ab49d5  libstdc++-v3/testsuite/20_util/time_point/requirements/explicit_instantiation.cc
! 85a2fe35c76cf4617c2c697ba5c73b25  libstdc++-v3/testsuite/20_util/time_point/requirements/noexcept.cc
! 87a2ace519d6c40aeb6a9e029e73a632  libstdc++-v3/testsuite/20_util/time_point_cast/constexpr.cc
! b7025cd3de1fc01eb6b331de814608b4  libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc
! 7fde5112d4dd68c45372ab91ab24d835  libstdc++-v3/testsuite/20_util/to_address/1.cc
! 4590295010c2b72ab77a35ac527fd5d9  libstdc++-v3/testsuite/20_util/to_address/1_neg.cc
! b4b37e9d7c7612e9fde9ca12b5a884af  libstdc++-v3/testsuite/20_util/to_address/debug.cc
! 85bcd20ed1477c234831a1e857e38995  libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc
! aebf47acc5552d57cadc7bfbcb23fa72  libstdc++-v3/testsuite/20_util/to_chars/1.cc
  cf4f3947ea6ae8a691cad8b85ffb82b7  libstdc++-v3/testsuite/20_util/to_chars/103955.cc
! c025ed347bbc2e45fb5bc70d4fd3bc97  libstdc++-v3/testsuite/20_util/to_chars/2.cc
! 2f5ac8272b24534b8352ea8b8622e952  libstdc++-v3/testsuite/20_util/to_chars/3.cc
! ce5f9bb354e3717e8634fa5fd68177aa  libstdc++-v3/testsuite/20_util/to_chars/4.cc
! 514b9e30382ae5a3578b46445a7bff46  libstdc++-v3/testsuite/20_util/to_chars/95851.cc
! ee1796ad2d1ce8f81b40469ebf0be3cf  libstdc++-v3/testsuite/20_util/to_chars/chars_format.cc
! e26fecff9d7611fb46fe8d07a7553246  libstdc++-v3/testsuite/20_util/to_chars/compare.cc
! a88c84146097594756bec23da5700f78  libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc
! eabdcb2c857fd5844248dcc3170d6b89  libstdc++-v3/testsuite/20_util/to_chars/double.cc
  77b9817d9f7a5e3dca39a0a2eea53935  libstdc++-v3/testsuite/20_util/to_chars/float.cc
! 5b0bda0e6546a96a522585ec530a5b50  libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
! 86687ab20313201a982001aaf11c6c02  libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc
! e9b666c5ea3de412dea4ded313f3cdab  libstdc++-v3/testsuite/20_util/to_chars/long_double.cc
! 262d80cdb68e0f5d77877b5139c706f7  libstdc++-v3/testsuite/20_util/to_chars/lwg3266.cc
! 1991cbcf30c99ea3151c5358f2180b60  libstdc++-v3/testsuite/20_util/to_chars/requirements.cc
! 48c49dfe9e370c1dc7f3d1276c4c42ff  libstdc++-v3/testsuite/20_util/to_chars/version.cc
! 4794c73580e80403703c84451cf7150a  libstdc++-v3/testsuite/20_util/to_underlying/1.cc
! dfa5c1cb69850e3592c4195539a29edf  libstdc++-v3/testsuite/20_util/to_underlying/version.cc
! c7d393c1fd44023102309b7341b4cddb  libstdc++-v3/testsuite/20_util/tuple/48476.cc
! 93589c5fe756744bdde0c64195fbc264  libstdc++-v3/testsuite/20_util/tuple/51365.cc
! e75a6ec3104658e2399e9676b96a5599  libstdc++-v3/testsuite/20_util/tuple/53648.cc
! 1c6bc2627e8e881cb7bfb121f1228842  libstdc++-v3/testsuite/20_util/tuple/56785.cc
! b20c08db3bfb2b22e07494e9ca048671  libstdc++-v3/testsuite/20_util/tuple/60497.cc
! 8da124ba77245a2b27f8204ab4d941a9  libstdc++-v3/testsuite/20_util/tuple/61947.cc
! 6fe3a29530c33fd7fa5a0461b5dc4fb2  libstdc++-v3/testsuite/20_util/tuple/67844.cc
! 308cf726419b384c7d7464e7a3d64786  libstdc++-v3/testsuite/20_util/tuple/77395.cc
! 6c370df9e5c84c6cd85a6e3019ce562b  libstdc++-v3/testsuite/20_util/tuple/77802.cc
! bc53da1129099aa6f3e3ccfab041527e  libstdc++-v3/testsuite/20_util/tuple/78939.cc
! d4fb4c97200b74e65f3838f6478d9d3b  libstdc++-v3/testsuite/20_util/tuple/apply/1.cc
! d8cbc2bcdbabfbb1d20497a17fb42f0d  libstdc++-v3/testsuite/20_util/tuple/apply/2.cc
! 928ac4afe96f4b3f9c0c0139e6a52433  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/35480_neg.cc
! bf1aeea050b92657198d3f65861feef1  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/93147.cc
! 7ebd42e4e51256d63e3bfd60e7584859  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc
! 8da6e07c854a3c7a554ac92aba962f39  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc
! d18e915c18080a672bb8e6d46589ecc5  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc
! ccb35fb7a62300af936085819483975c  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded2.cc
! 570e52f8bdb71cbed03256f61e7b3a72  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc
  d23b1a747046dfeaadefce18d2c02b12  libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc
! 32c154912a091023741fdaa263538a86  libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
! f27dfd667d19d5a586e2805084cc1c5a  libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
! c5d05d77429ce4ba3914543541b3764e  libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc
! 45938586f3445d3925b645ab2e912816  libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc
! 109deb3be52815eeaa0a66b0101552ca  libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc
! c8202f4f712981e0cc5de7b30d1ae4e1  libstdc++-v3/testsuite/20_util/tuple/cons/66338.cc
! 1202eba436ee970260beb31a1e34e029  libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc
! f523ee86cb78052db5c1c252418f8235  libstdc++-v3/testsuite/20_util/tuple/cons/96592.cc
! b50b2d52c7c308c4cc8d103d3f535fc5  libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc
! 84bc6d7243cef1f3885f2936bbdc8ace  libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc
! 76123eadc371c6d1013055f8da63a7cd  libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc
! b5c705f03f9895fa36ac3f5ec231ab4a  libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc
! fafc2d7c1a4a6185219e33fcc5700efa  libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc
! e8ba095e757e5938823886212593e412  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc
! c4d390a568361229548df30f3697c633  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-3.cc
! 96169de2004871b5f4c4ba38f362701d  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc
! 1ca997ddff8373aafb46a082cfc7fbd9  libstdc++-v3/testsuite/20_util/tuple/cons/constructor.cc
! 0fb0787c73a22855ef60665935f2ebe0  libstdc++-v3/testsuite/20_util/tuple/cons/converting.cc
! 7cc6d1ed75b874b05adb8f99cee84748  libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc
! 2417b2e32d27359fd4b4e6a7f077ae2d  libstdc++-v3/testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc
! 731ef4a0b7b94d558fb0d7940be2523c  libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc
! ecc8d6e4ec193114b3b0d5ebbd3f2916  libstdc++-v3/testsuite/20_util/tuple/cons/nested_tuple_construct.cc
! c0e3de4c687dffccdfb744ddb1b70221  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_move_construct.cc
! 3c15ddc064221d85d53c5512e9007c30  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc
! 436d3b1a5875a815009dac18a9e6a2ef  libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc
! 5cb65f51f368859d18edb715de89ceab  libstdc++-v3/testsuite/20_util/tuple/creation_functions/23978.cc
! c507194a0bc7d2300d4f214f19148bbc  libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc
! f3da6a178e6d9ef077f03f6aa543bbcd  libstdc++-v3/testsuite/20_util/tuple/creation_functions/55713.cc
! 6670c62216b6f8c30fe3f135348923ee  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr.cc
! 7ac5afe2f55e9e6235d9a4c9da98e885  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc
! 302e8c98aaada45790ee6b93e322972b  libstdc++-v3/testsuite/20_util/tuple/creation_functions/forward_as_tuple.cc
! b04142a6bbfef81e2388fd1a061099bf  libstdc++-v3/testsuite/20_util/tuple/creation_functions/make_tuple.cc
! 2a917b8f32534e5af1c0de78cd7c39c1  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie.cc
! ba3b8b7ad67eb17818240fa8c3bdf38f  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie2.cc
! 53eadff5596e55c37a8c484baff3b79f  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tuple_cat.cc
! 9286c1b88b53626d4d15b6c7a1cdc95a  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_element.cc
! 650e033f32dc57e09b5a3fc0d98d9fff  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size.cc
! 2d9e86e224dbc5cee638cc70820e5031  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size_neg.cc
! 31ea314dc1f1166ce362b0fb3bea23ab  libstdc++-v3/testsuite/20_util/tuple/dr2729.cc
  5c4d5220d3eb9f735e8817b5ea562b55  libstdc++-v3/testsuite/20_util/tuple/element_access/101427.cc
! 7c4e4e1915efa6c5764ed1dcf9e14fec  libstdc++-v3/testsuite/20_util/tuple/element_access/71096.cc
! df3e176bb5ab8d35a0ec1b07c3e97f57  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get.cc
! 3d575d45521cf5771c4d377b6a9a549f  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get_by_type.cc
! 598ead5ba326cadfa2f3ab494d1d5fc2  libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc
! 09e74e56451ca33baf4ce05e708fde23  libstdc++-v3/testsuite/20_util/tuple/element_access/get2.cc
! c8340e97f4a1c2bba4453890087ff441  libstdc++-v3/testsuite/20_util/tuple/element_access/get2_by_type.cc
! 44176010f8b9374c7c9e9b74b6128a87  libstdc++-v3/testsuite/20_util/tuple/element_access/get_by_type.cc
! 247cdc50db4c0d5b683c6a86a13f61be  libstdc++-v3/testsuite/20_util/tuple/element_access/get_neg.cc
! 2f0b2528605be2569d21391426cee440  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc
! 32af8d6c473ea8d7e47f95a72541b28d  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/2.cc
  32b91df88869bacd821f449c4ff9ea1c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc
  5f205a0115c4b3b8b249446d156f2d7c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/tuple_like.cc
! af8237364bc78c864ee75469217a3ba4  libstdc++-v3/testsuite/20_util/tuple/moveable.cc
! 4c7bbc15d76d9a50e79eaa18b185d9e0  libstdc++-v3/testsuite/20_util/tuple/moveable2.cc
! 637f4225c3cb345e1b95005dc8d090d7  libstdc++-v3/testsuite/20_util/tuple/noexcept_move_assign.cc
! 004f0d506c0cbb19eb36647aadb8f6ed  libstdc++-v3/testsuite/20_util/tuple/noexcept_swap.cc
! 90ac6ad16d820d13046e9ef6feee0225  libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc
! 6c1a7d773c7bd38754b94f3b7e6f5ae5  libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc
! 29fa110dc9b379f8785e8ae69ed06289  libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc
! 60af8faaf2b49c5a177629b29f5c42bc  libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc
! 4b17a3ea2494f7874925c5a21ca446e7  libstdc++-v3/testsuite/20_util/tuple/swap.cc
! af0be26d523360c77c1d31d200ee67bd  libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc
! e76c61713925fc31767261cf05cd86ea  libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
! f5a3225bc75080e895910b89fdac9c0a  libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc
! 3e47c97621fa4f18d6dbc51dbe940788  libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc
! aaa272b31594b23962bf57eeebe425b8  libstdc++-v3/testsuite/20_util/tuple/tuple_size_v.cc
! 8ed4753f19320c90d891bc65b60f5221  libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc
! c9116ea575f8e8a73ccfebaffdc7f204  libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc
! e8f5ffed07fae10b3e03632af4d9982c  libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc
! cd55eac45df9f5eb2ada7e8b3a2b90aa  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators.cc
! c82939a5ee3024a0c6db5eabd0e2ba5f  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc
! f31c2725fe0ce212c155503283f09373  libstdc++-v3/testsuite/20_util/typeindex/hash.cc
! 12b6ff1f8c12d381c3a30b4a4cbb9472  libstdc++-v3/testsuite/20_util/typeindex/hash_code.cc
! c3f74135d2093cf33839a9b961b56475  libstdc++-v3/testsuite/20_util/typeindex/name.cc
! 976a5b4d34606e96492a9708ff518493  libstdc++-v3/testsuite/20_util/underlying_type/requirements/alias_decl.cc
! f586c6f4c36064d602be755de702129a  libstdc++-v3/testsuite/20_util/underlying_type/requirements/explicit_instantiation.cc
! 78e8d75ea6846dfb63c604896398c170  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-1.cc
! d036d421447f5db80e41c25f210904c2  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc
! d8afefc911d91851885222fbf05dfaef  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-3.cc
  270e7f9293f9dc29e06013f0194d2249  libstdc++-v3/testsuite/20_util/unique_ptr/101236.cc
! 4359c578d11b426c19158d13fe20da22  libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc
! 15457a23568f454ae6fe7c3c828c41d6  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc
! 0ac132c2a9872e3d25306960993576e9  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
! a2e244539081e1f4b53d90d84cd691fa  libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc
! da0123c8d5e33209be6fecbca4fc0da3  libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
! a766d0d5f6dc6dc464e72270fa1f0a04  libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc
! 22a16e153425ea83c789d9ecf201b7b2  libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
! e8f18853c661c2c5eee06df188416f32  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc
! ff850bfd192b22075d44d4a1bf1b3adb  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move_array.cc
! c412c14b9a33e205a2cb1b819352358b  libstdc++-v3/testsuite/20_util/unique_ptr/assign/nullptr.cc
! c40070111e957b060a514481d5c22498  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/42925.cc
! 1946ba8d7f7e830e1a271ebf23b0a021  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare.cc
! 662ed8a3467b7ec1d468b506f1deeab4  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc
! 1b1aed9aa07f27577b5d897361aaef38  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc
! 58230b75ff20bbb06847f70e8a046a63  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/dr1401.cc
! 16eb1ae9fc3fdc9bdedd0d91891deff1  libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
! f25c75643d7d49ce8648294a0cda0339  libstdc++-v3/testsuite/20_util/unique_ptr/cons/array_convertible_neg.cc
! a2c0a813a53bd1e336282a44626ea442  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr.cc
! 42d32c19aaccfe370422cfb9bfdd1dba  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc
! 9e8784b51a82e2712c441eb49b625a8f  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc
! 4a51fb5c91ad1f904f7ddd98e262afd8  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc
! f0c9ef81bbba762bb091e30f4bcef32f  libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc
! 63e88df6ba46eadfe9cde294bb211a70  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc
! 14bbafa94bffea1722e6c4694fcc1ecd  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
! e39de11dd2bcc0392cc2d35939bb946c  libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc
! 16ccf33a19b06c0cfa51222588bd73d8  libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc
! 22daaa70305b3051bf6ef738d85be9d5  libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc
! d0249b85d602d4861ebe85ec355b2d8e  libstdc++-v3/testsuite/20_util/unique_ptr/cons/lwg2905.cc
! 4603018cd05568df667044283b949cd2  libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc
! cef9f41d86e9f6c04298c291fa3ac2f6  libstdc++-v3/testsuite/20_util/unique_ptr/cons/nullptr.cc
! e663ff00cdddaebd485050f54ba74a3b  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer.cc
! df12d166ba059fbb46fbb6a253ca222b  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array.cc
! 3a3f3b01b19d47d26e6286c1d8470768  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc
! c1acc8b0edab7405c526ee06c2ae0ce5  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter.cc
! 9289454afc5e2ba90ef1d94f21661d84  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc
! 48daaaf4a065a3f591034a4038fc359f  libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc
! 23416695c01e5e5f6e370ba641fa90fd  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc
! f27dc4d88e3df5cce06a0c942f6f0ffb  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc
! 5099d9278206e8cab8d3f8446c36c8c7  libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc
! b1dc9b39a405173dcd774a1e8eb3ac6d  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
! 39808a584aa86db945c45d086830a009  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc
! 632c9b552e0b0f807308dae2c1cf6f6c  libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc
! c8b71a17fbce5646119ec1644a5c22df  libstdc++-v3/testsuite/20_util/unique_ptr/dr2228.cc
! 00c7a565216fb351b76b1ed0c31c90cd  libstdc++-v3/testsuite/20_util/unique_ptr/dr2899.cc
! 35e1d40d6f3238cc6bb258c197ce724a  libstdc++-v3/testsuite/20_util/unique_ptr/hash/1.cc
! d8a9b06b3c2d8af519ca62c3414f9d92  libstdc++-v3/testsuite/20_util/unique_ptr/hash/90388.cc
! 1ecfc78894f2d5e5f68dcdb77586a048  libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
  bb40414adb587ca6cdd1ffd17960c9e2  libstdc++-v3/testsuite/20_util/unique_ptr/lwg2762.cc
! 685bd7f4efc814464287765277276f34  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/43183.cc
! da7523ea62e2e8709bfec3065b66dce6  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc
! 995bd3fe3427756ff9f5f8d5c3851cde  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc
! 1d95a3f0a6c651e10e0eb4266405addb  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
! e97be2061ce1ccf7a00520b435bd1622  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/cv_qual.cc
! b59a682e9ca6d65ebe5eb65f14645b98  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
! ace522ca8ab1811b66f5ae42d93a8ad3  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc
! af2931f348dfac369ae4103ece58606b  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/incomplete.cc
! 741b7f7b7705412fb5c97dcc6e3a2a2a  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc
! 629e0bbdcbb96f06b7c56fe25c4e5012  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type_array.cc
! 0b61085f7594e8b1f34675c2bcd9e453  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons.cc
! 6fba6e46399de76ce7881db4d4a70b80  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons_array.cc
! b06d4bee43487cb46ceadf7135cb4db5  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc
! 819e1b1c82d557abebf06cf21696c963  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc
! fc63665747e3ea8f7fba3bd2b8231ddb  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc
! 79ae7324ed01aba2f0a26aa803be147c  libstdc++-v3/testsuite/20_util/unreachable/1.cc
! 39e33d60fe45843188bb85ba28c7f355  libstdc++-v3/testsuite/20_util/unreachable/version.cc
! 6cdad804e564520c37e1afc56cab7f5b  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc
! 304b459dc12bebfddf1f302c0d20acf8  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
! e146873cfa2a56eb95438a7e5f8ae879  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc
! bfee4a3349a74ba63c6ece54ad2b0031  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc
! 9b9261c690dc7ed4e078dbfa2ed553cb  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc
! c33475d72523bddcf443c6af7274bd12  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/release.cc
! 9cd37f48a66ccd6065833bf60972995d  libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc
! fa6e542010d2aae2af51de31d5b81a44  libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc
! babd9d79794a03d3a97c5cf49423ed5f  libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc
! dadf59cd86148ea8518a2d4f9b32308b  libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc
! be0257737533bf2e9f572dd790c5388d  libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
! beeca5f4bb163fcc48b38c8197e1c563  libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
! dde90009bc93758b6c7c6a057827648f  libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
! c3f97d6a17fc64611166b17edfe49449  libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc
! c0994b759f4ddb76ff5725fcc27e8b5f  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
! 2ec041b87fc00ec34cab810dee74f532  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc
! 4923d3c0443a3b28bbd168af6de891df  libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
! ac2a817cb8c2699ed9ff1423eda8f368  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc
! 81cfc564c7fb5376965a0a8ac95da1c5  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc
! 215152346ffb0a6ebf15f748ae859cb8  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc
! fb7e6eef6b7fd2f7a653df988346c4bc  libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
! d3c3f4458e577669514f58e5bff422cc  libstdc++-v3/testsuite/20_util/uses_allocator/value.cc
! f8fb3d96a12ba0b9980d6129c80eeb20  libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
  b9698b5e78dcefad507d6737875a6a1d  libstdc++-v3/testsuite/20_util/variant/100384.cc
  5ef3d7df10dd90d995e4c63bc62c39de  libstdc++-v3/testsuite/20_util/variant/102912.cc
  909e769606f79e2311fe65f425279584  libstdc++-v3/testsuite/20_util/variant/80165.cc
! 96f36026504971497597425ccde3e47c  libstdc++-v3/testsuite/20_util/variant/85183.cc
! 3dfdc9bfa0da349c66ffb97c4935dec5  libstdc++-v3/testsuite/20_util/variant/86874.cc
! 073286e7eb95c31bc56aafc2886d24ee  libstdc++-v3/testsuite/20_util/variant/87431.cc
! dae1890bce8bb0da6ab5a5c50fd20417  libstdc++-v3/testsuite/20_util/variant/87619.cc
! 88a1c9c2ed487b2b55511ea21da976a6  libstdc++-v3/testsuite/20_util/variant/91807.cc
! c738372ce31ab92d308c890f48701b7f  libstdc++-v3/testsuite/20_util/variant/92878_92947.cc
! 4f18efaba1da6e8927c420a95a5722de  libstdc++-v3/testsuite/20_util/variant/95915.cc
! a3791a89fb805aa7a08933d7ae83bd18  libstdc++-v3/testsuite/20_util/variant/any.cc
! fac325ef678717bd994f8dd7a0c90b02  libstdc++-v3/testsuite/20_util/variant/compile.cc
! 16902993e27490cf98e6e66c866b8de0  libstdc++-v3/testsuite/20_util/variant/constexpr.cc
! 007db2eec55c492538805c988e2136a8  libstdc++-v3/testsuite/20_util/variant/deduction.cc
! ed603e04d4570dbb3da9a37ca9ee370e  libstdc++-v3/testsuite/20_util/variant/exception_safety.cc
! 7a6bf05e5ce53946d6160996f422bcdc  libstdc++-v3/testsuite/20_util/variant/hash.cc
! 31aff0af26213c212205617f02518002  libstdc++-v3/testsuite/20_util/variant/index_type.cc
  e56cd950ff384e81521ce2616669bfa4  libstdc++-v3/testsuite/20_util/variant/lwg3585.cc
! bf272271052565f420238f8cd56f2088  libstdc++-v3/testsuite/20_util/variant/relops/89851.cc
! e686ef7065f5a1e9ebf20772126b4de3  libstdc++-v3/testsuite/20_util/variant/relops/90008.cc
! 66f9d96849ffc49b7c9677d949dd3451  libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
! 13d9cecaee4e47883ec008fa24764c93  libstdc++-v3/testsuite/20_util/variant/run.cc
! b53ced7be024099d627a420130ddfae8  libstdc++-v3/testsuite/20_util/variant/version.cc
! 1bf24751e4dca8b72aef2f74721c7934  libstdc++-v3/testsuite/20_util/variant/visit.cc
! 271b1d4fa7c258bc0cfd32dff3784bd9  libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc
! 44642531a7802b3458f17513ddd331fd  libstdc++-v3/testsuite/20_util/variant/visit_neg.cc
! 1f34b9e2f7fe9d1451836d5ae81120ef  libstdc++-v3/testsuite/20_util/variant/visit_r.cc
! 3ce61d7d571de5a14334aae90dd94fa6  libstdc++-v3/testsuite/20_util/void_t/1.cc
! 7b0d83ebbf92b543b6da8bb8354c8d7f  libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc
! 6f8e0db62583cf557616f34fce04b40f  libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
! 4c99f31089f99647018e5b377ca620d4  libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc
! 26c43ad3e7e4ded4687654bf42dca057  libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc
! 195362dcdbaa55c8a419486fd9a15309  libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc
  6b897d033cb55ff130e351833c656265  libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc
! b246d8f6e64c2116455b4dd4f1f8d8a5  libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc
! 717e4469de743d17c7df0a72edddf518  libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc
! e3fe5ffa6e73649a9f21bc27604fa67e  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc
! 54d858067f0b4d5586a96694db21335d  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc
! 5a245092d50fbff80c427ac99d035c64  libstdc++-v3/testsuite/21_strings/basic_string/40160.cc
! b6e891619cb7e448b49abc63a8ea5d5e  libstdc++-v3/testsuite/21_strings/basic_string/56166.cc
! 554d42fbd2ede47fc8cb890a469cce49  libstdc++-v3/testsuite/21_strings/basic_string/79162.cc
! 9b15e2d1b69151c37ee69650fd30973c  libstdc++-v3/testsuite/21_strings/basic_string/allocator/71964.cc
! 44d87f9dd9e3eb7dec99c16028aad28a  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy.cc
! 26e8ad0e792657638a1bfdf00ae39b29  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy_assign.cc
! 8a1be185b8e779bf5e112483a0744840  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/lwg2788.cc
! f0699863497f4c06d89253c1544bca1a  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/minimal.cc
! 07a52b1fee82aa7cc683c7c489f4acf4  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move.cc
! 0641a7951ec53a2165c6e11da6eeab75  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc
! 58012f97f6b4097f81d0f16cf462b393  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/noexcept.cc
! 4d243df64e10d2705dc0cc562f692356  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/operator_plus.cc
! cfbc0346628db269b889cad5c2b7abf7  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/swap.cc
! a8ca0e3fd51c20b327b9df0d9d7805ff  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc
! d6f86bae1959a049756301310525c3b3  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc
! ed53a05614fe44ac9c3bb88d17566c9e  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc
! 3f73de009cc826d0a7b0d9ffc8fc4a17  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc
! 21d00ff02c814720fc46a3cc35dd0f47  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move.cc
! e4df0110487f94269a45c032c95e9630  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
! 291f8a6a4ddf8fc71d1d26817b4d6028  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc
! e7121c7452da145e5d99f10a3fe8b35b  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc
! a34127999742d492271ae36db909a1f7  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc
! e3229b9274c6ee53c4e7c8668c6810ba  libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc
! 0f99ab597b0eb84d038c42be3cbee8a3  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
! cc34e276871f3e24fbb3558c20ed371f  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc
! eb390690e93e5b1f2baa3b2e67d83576  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/2.cc
! e146911708d15911e077fa1ce7e04fc6  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc
! 8b278bc4f5c42ca1bc344edde13c8edd  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc
! 153be87377c43ae32711924524a73a5f  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
! 31f104684d3a8d09f7b16b238e1238cb  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
! 1c01fee09a5fa48f2fce7ce8c7a6fc20  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/2.cc
! 04970f1caa0a0469e8a17c22591b8bb1  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc
! 7a52e5c34e5b042d29b9257ba617d755  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/1.cc
  122070b73ab61f4cd7f3bf7dca05ad4c  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/103919.cc
! be058c3faf15d6649e949b8b50bc53fb  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc
! f86684f72cbec5daa260463434301533  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/2.cc
! b4a064b202abf4e89169340e921b6e88  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/3.cc
! 2472adc0bd3e13d5639ffa113c8cfd6e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/4.cc
! ad36fd0269136c6f85737337041a9716  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc
! 450f5d7a43e48d92f78a5b444cbf98fb  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/5.cc
! ac6c939656944bdd76e643d36b050120  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/6.cc
! 4b4edd5dac0d37a16893f0071b69b32a  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/64657.cc
! 68202636a79feceb3fbd19c951eae13e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/65085.cc
! 5aec5e34a93b96081ef43d76001e2082  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/69092.cc
! a187a721e90c93cb29461897e80af0cb  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/7.cc
! bf09af189d87df1b0da5b538c20e1ef1  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/79162.cc
! f3e0adbfaee9cbd2563a78b20dbc4cea  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc
! f54ff57c109e4121eb7a9718449145f3  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc
! b4c00d929b80d9a0ba776f33eb8748df  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc
! 199b6e66970aa8aeb06608fc2f1749bb  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc
! 19e905de040e462595e14ad45744ae82  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc
! 5140752dbcd24f43ee8882554b6c4d0f  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
! 58752c7adb617de9f3cdffc102ed2f5b  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
! d95f65d021bcffddeeb3da0342066e0a  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
! 5a7664e91f10c56de60d450503b3ae63  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc
  ca9ae628b034a9ec99cd3e60951cfecc  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/nullptr.cc
! 3ddb2d2a8958b5b6adf12e63bfab4986  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
! 829d0925b5afbf67c928a3eb5799936c  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/1.cc
! 14cf8abb05f620469b0d7b2a476358af  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/2.cc
! 18710c36e53bdd653d0988aa699e6acd  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/3.cc
! ff1d9f9929c8a9b58eaf8b5ee954b20b  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/4.cc
! 15a7c57f8fd02f1b3e2bf5ecb1c5d191  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc
! 06f1226c519a8994e06d64de224197f3  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/5.cc
! 150b4614068f291a7b5d7794e5ca38d3  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/6.cc
! f4efe16dbc86dac3c630cdfbaa229abb  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/7.cc
! bf09af189d87df1b0da5b538c20e1ef1  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/79162.cc
! 2df2c811552a94c7390ec9a7dcd42886  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc
! c136f7b84c69e6b0b5b3d1b489bde131  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc
! d88b1469cd73aa63fa12383060dae433  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/9.cc
! 09bcd6e3dcb9e2010d343ede95760d66  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc
! 087b92699751886d22e778a058a0756b  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc
! 7db21209b1c32ee5208209172720cca1  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
! 6d3502a10d3aed2ef02a586b356735f3  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
! 801aed1a64c228d9495829ca38fc26e0  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
! 0fa8fec9b48f0d0885e4e58b4fdbf0b9  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc
! 1cc2656931dcd70d176ce260330cb051  libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
! a659facbad1d3462954ff1731c00dcef  libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
! 985175a53a3d28a0516111f8bd2c2480  libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc
! 3eff8630b8c658a4f4991dff3ab464a6  libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc
! 2a437e26101f7a8c2a6649ec91a24402  libstdc++-v3/testsuite/21_strings/basic_string/dr2268.cc
! ad2735510cd81dedb6c0fdd062a2ba51  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/1.cc
! 583d31f6b17d8cea7d42d00ea2ab80d3  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/2.cc
! c5832a777e0175103daf8dfa184580d3  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
! a69d7ef29eef84e7f9e28b815f041447  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/3.cc
! 696c985a7e0ade77ad1bbf397c97498e  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/4.cc
! ac40e00a1c0e0d9cbfa9cb5a686b10f3  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/58163.cc
! fa27560b820c72dfdfb99ccf0cf7573c  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/empty.cc
! ac7098dc88928a508942e52c005061c3  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/front_back.cc
! d9ae82a1e3f4db0b38b9c35182c60b43  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/1.cc
! 37f793dd1592351e0e40cc26bcbea989  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/2.cc
! 6e6c66d8e49f2f628c1363e191a9c5d9  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
! 3971c003304c402c25725bcbc32f22a6  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/3.cc
! 49e79b14c2420a3698cf9c9a71fb9f4a  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/4.cc
! 80af551b111fe8fa6a7a095e4ab5e6f9  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc
! 041d386edff40b6ae20069febefef9a5  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc
! 3e41a5ddc9ff60be1b44a951057b54c7  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/front_back.cc
! ed4ea29df0224d7582b6382be768248e  libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc
! 450ccc61ac9176f1f82b504c8d7c8d41  libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc
! e74ae7ab972e57bcdc40fa068f22db05  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash.cc
! 2af124df0ab67d73064aeb9b9a270ccf  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
! 726740bb4db7c15e530f86f2c1ef18dc  libstdc++-v3/testsuite/21_strings/basic_string/init-list.cc
! c7339082b1d6f172c892f2aa4ba42cda  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/1.cc
! 58dd1171a9b6e2e9333029fdbc41d1ec  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/10.cc
! cb355c7b937bd60f7fb2b61c4db953e3  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/11.cc
! 737ec49b717d8365818f46866054c732  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/12.cc
! 7ee159e54cee875d905b8825606f80ff  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc
! 596da2cea70b835e4df2d8476ca031f4  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/28277.cc
! ed6765312bfec4fe43967c23bb9c3a79  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/4.cc
! a27772a3e51f8d0b99a6b817847bc164  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/5.cc
! 0e2909c0d074cd0e2e6978f41e8b3cd0  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/6.cc
! 5fabbb2b3127ce0e889456694527d5a8  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/7.cc
! 653d30e149930e79ce36047337c3abec  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/8.cc
! fe03c0ffa41f766a47289eead71a3f20  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/9.cc
! e158b36bff67626182f252d154b766f3  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-in.cc
! 86a3b91b187422b904da61d656f85adb  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-out.cc
! 12527ec9e962c449058e9d5014409921  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/1.cc
! 5f7a619421d32ad98fab64cd65be2ea4  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc
! 42b5837468db200570a1b9bd99ff8f3e  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc
! 4d6d17c034277d5d256e4c681f3285c1  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/12.cc
! 70d6be250efc409928cffe509a667fd2  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc
! 5ea7868273a58cf006552cb49cbedbe9  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/28277.cc
! 7109efe1ae23898daf85d60759817449  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc
! f1a47426f908f8c0f9e6b00d6e0be117  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc
! ee710f2b1ec4848b82571ac01bfb15dd  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc
! ed372437cf619336529477f74fd58e05  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc
! 7a673365834fa4c08853b6966df2051f  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc
! d0326a003154e3873e627bbb5a9a7d91  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc
! 29bc247b1aec33f010caa020c32d9c38  libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc
! dc3a9efea0377e1a7a76d5525c9738e3  libstdc++-v3/testsuite/21_strings/basic_string/literals/types-char8_t.cc
! f97c831398d5494b573d8ca8789812d0  libstdc++-v3/testsuite/21_strings/basic_string/literals/types.cc
! bc3f6d08c98bc2961b3543ec6115ea51  libstdc++-v3/testsuite/21_strings/basic_string/literals/values-char8_t.cc
! 9e12be9dd7e55ee599c35ada8256812b  libstdc++-v3/testsuite/21_strings/basic_string/literals/values.cc
! d82863227c557a85e0f2dda21c3148f1  libstdc++-v3/testsuite/21_strings/basic_string/lwg2758.cc
! a6bbde84f441acbf8908f61d6ba836a1  libstdc++-v3/testsuite/21_strings/basic_string/lwg2946.cc
! e9ef402254730233e6618a34f6558487  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/64422.cc
! 7ceee673dd0f6cbf50bc48e9e7b6df0b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/1.cc
! be7f0706bb4bb5271691d86e483c0f00  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc
! 482acb53d5bd3b0fb5773e3d845c7f73  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc
! b108d5e94067978b65cce8ce032b58ae  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc
! e4ed3159265733052bf4432f45406407  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc
! c70fc206ec65474c5419075b86da1101  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc
! e8f9a0f15d5873532148bbf63f33598e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc
! 2134b17ea04e4f6d2b81b2004b99caad  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc
! 07f13b74a2cc62d905b60608718de114  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/1.cc
! d8e3f4bc2a3e475869c259e1114f8101  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/2.cc
! 7c011037be73c0b7d99cbc12e5a27815  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc
! b382aff5d4c7fad9e9a29d4fd40a99d5  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc
! a5c231ac6adabca74cb2324a842be490  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc
! 30389951377b39b028edfe6bc396eff3  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
! b0306fb79036319b69284403f4dfa0ae  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc
! 2a2e224ed144ae40705e19652886b672  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc
! 97b12d4620ca8878611d584a52c01a62  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc
! fc312ff7b3c6db7143fa632c19d5ee67  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc
! d7cd60c4896f346a26a3b7f212bf17ca  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc
! 6313d8502183d3b9d906729510e0123b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc
! 034e5362947424246143807d8efa73fa  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
! bbd9e35db57e1a4766862cbe90f71c33  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc
! 4da7a91d3ed0a6059528969584917348  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc
! ab5b8c708d26d53aaa55a1f2cabf99f7  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc
! 0b3af09a611c157c70ff5157289b06af  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc
! d15808ef9fa73b43cd671f6087922fc9  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/2.cc
! 5c7bfd9f42c1b6197c3dfab4e8e84bb1  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/3.cc
! 9e8e5c49b4ffcd7e01c65d46909d18cd  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc
! 035185e776f665f48bf783905eed8803  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc
! 4c80e3b836b3a713766d616330662791  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc
! 8a063da74ce0c1e04f0ca21e9745f64b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc
! a7c45fe36d131ce93a412723aa1f6027  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc
! 8f74625e2bfc67dcb0034eec0b3f39f6  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/char.cc
! e15d1527baf138bde3d8c249b153b1a0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc
! d40d1b19deb18ef12f5138149bfe0f42  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/1.cc
! 8af2de950f98fed509062543eddb136d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/2.cc
! 9d343e78d8401d29c699540a3092ee81  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/3.cc
! 273afb5b4c94181c4f74f6ed1840a9c5  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/4.cc
! 9cd2e1ef7a4bd3a1ad6c0d93f82d9621  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/5.cc
! 2192a7a13f7999e99f7d437b04f9883b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/6.cc
! 3b6b9a23bc51c522be262fad1b229e46  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/7.cc
! 82aadb7a650de743ab9f706fcc890cf4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc
! db857d2b2355b40303ff875a1bcc6dba  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc
! 3d34fc013b0350de36b9d2983f109d94  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc
! 3a7089df1ad76e46bce072b817c6a94c  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc
! 368ff3697b96b1622356ad51cf4cdd1a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc
! 240bb0aac21276d01bb7cbeba92b4d38  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc
! 8d78a36d54efdd4360bea06385a453da  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc
! 99d550ee8bc0db1851ce8b0c5391ea1e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc
! b6f0bc9dc3c3a1742183008805d55c76  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc
! d3004023fd26c1276005d007c803e999  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc
! 3d1afd797d10d841e7a822bee29a936c  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc
! 2f247fc719067b6f27d0c6f2b30973fe  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc
! f19e9c31ad17a74b90374fa6ddd786e9  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc
! 875ed62cd11cf921135c3b65b74aab12  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
! 3f53e602ea0805a1faceba535eb31f42  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
! 7885d6be62ea9e42d8728a5eeedbadc5  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc
! ddcb04ee44357cdc22ee680d78a23322  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
! 0bf475d025c3537fcaa74e6d28d5c3b5  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
! a000fdbe66adfcc3fa75e0a853b93f13  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
! f00acf70a087e8c3c5fe9a4db27fbc85  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc
! 768a05d098fbd18c59084d04b7aeac4b  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc
! b73c6221ce1ee7ae8658326a950d999a  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc
! 4ba547476d425ef40526f9387e9bb1e6  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
! 414a97aea974e1b09930c7c1dae87869  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc
! fbc6650336935a3df653043ccd1f83a2  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
! 1606993ac2a4e1404bbee94054ac50c7  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
! 75327ed7bdc8a60a5ef7c6a94fd63545  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc
! 1442064e7db5397e5ef05233215edd4b  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
! 2a5c98966224c33a95c577b109362e1b  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
! a246493248782db6f36668ae289a3451  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
! baf8c9f546b7737cdb576bce7b283486  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc
! 0c824132f07dd1ab74199f3b2d01ac67  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc
! 5411d35d28c144d53fad3bfecd4d78eb  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc
! a3e06e8d0e373199c662ae08b6a473c6  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc
  bd5d27b6c1da7f4be96a036ee98cfdc7  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/3.cc
! 52cf6d72521f757bfd4e167ebcaa9702  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc
! b342297140022db104d8a7e9314eaba7  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc
! ba9327af72c6d0e0d7bd3784fd5f2a8e  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc
! 93f87f1a0b3ba768472cc8db84a95184  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
! 664c197366efb542e491a78b2daa057c  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc
! bf67abc2af0e02fca7b45b2fe058a762  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc
  da3f700a53d22cd029a604673e059e11  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char.cc
  9ccbc06738d22d9f941b8f2b369c7915  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/2.cc
  fabf5d00ed38687c6c74b03d67132fac  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/86169.cc
  ca74682c72cb547cf309e380caad822d  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t.cc
  ebeb1bb794a93823182dc633b65b1594  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc
! d2d0c0c0426ba17ee7ca595b93758943  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc
! d2eb7e00f51e147b53e269ee5a54016b  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
! d9692856e73df0221987fda7f78155a2  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc
! 444b64548d23704e4a303ac9b8e02e08  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/1.cc
! 8f4d02af8ac16a22c104bb1b0f049ba5  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/2.cc
! 1914ac106913189cc7d46f627c374450  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/3.cc
! 495262d51482585157e2aabdbec9562a  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/4.cc
! 8bdaad7a4f65d65736d6791065765587  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/5.cc
! 8e0f36a9ba8381fcad2b2b0e379fc43c  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/6.cc
! a87a3410af73b08fb6268563121adcf4  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc
! 01fe2d7a1f08515e7829279446542468  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc
! ac2a76809895bc30517a3d98d5e9c542  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc
! cacc3939b95d716129bccc5e9ee2bb31  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc
! df57bf5bddbe681d47dea1c00f1615b4  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc
! 93037cc673bc2d4406362aad7a5f1ff2  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc
! 0929b68af76f2868c47af9fdfb902dd0  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/1.cc
! 3a209c0176656b87cb674198eb90b4dc  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/2.cc
! cce14431bf0692211b55df9c7e334e2f  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/3.cc
! f458d6f207b5a5fd8c044d4867032ca1  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc
! 37c8413f7678fc7d5021d8ba77bbd947  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc
! e1379b8f02ac0c59fe21155211fe2be3  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc
! 009796081b5221cb3926bdf16a869553  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc
! d8228831ba87109cd7686050d436f3d7  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
! db04f247e911ebc06065a1a7820a0e1d  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc
! 0efa410a44788b37b971e20b00239a7d  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/char.cc
! d309d585c472f4258a9df5a31d196126  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/wchar_t.cc
! 0eaa80908e3e8a3bedbec91d8534aa55  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/1.cc
! 2530d45d2b37eb5d37130125251b3026  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/2.cc
! 08f8f123b3c66e6c68d3a793ea486543  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/3.cc
! d5ac23158c5224f83b3426ae770481bd  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/4.cc
! 2e91e91b0f7367672ca4f838f95f16fd  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/5.cc
! a3d819359bca2735a13dd37e7f42385a  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc
! cd03608ba8df2b79ad10c10853412c2f  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc
! 2184b75db62a5e06f148dfe3fec4dd13  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/1.cc
! a9163488086cd53320abd5681319044c  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/2.cc
! bcdba3717895e3214d63c82972aa792f  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/3.cc
! bba5b2f2825f0f268c89efa534fe720f  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/4.cc
! 76c21389fd89c2b87095d2e22a6f46c5  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/5.cc
! 07ac0f6003e7a06f95a2cfe8d441bb11  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc
! 2feb4f58fcd1a86cd94fd0f78cf25abe  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc
! 1c89a536189c8da59c5435d906bc413a  libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc
! d0ab9f00c3cf2988d68c36ab472c377d  libstdc++-v3/testsuite/21_strings/basic_string/pthread33394.cc
! 1d368360ea164162cf9d58b08865a520  libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc
! e00f31c62b50e18a7c4a46864a91b8dc  libstdc++-v3/testsuite/21_strings/basic_string/range_access/char.cc
! 34c5001b8e07cbc48e11283e199026a6  libstdc++-v3/testsuite/21_strings/basic_string/range_access/wchar_t.cc
! 565c5ec680db2e0e3b35d0f839dff8aa  libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc
! aaf18fb0a9d5edc271ba41792431d6b0  libstdc++-v3/testsuite/21_strings/basic_string/requirements/dr438/constructor.cc
! fd66d883ab327f5322f80eb3a04e445c  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
! 54dee2908541ce4a28d02f4e878b5aa8  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
! a6b869b45b05e3e7eea7ddd0791fe817  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
! e4b1a2da6b288803a3e3a7d6f237ae1a  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc
! f87f96901eefbbea385a1ad0fbdf9760  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc
! 93a16ab695177f00a24a66e11b32408d  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc
! 1448f73ea4ca4f7245aedfa599502af0  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc
! 167802bfd4d9158c1612f8f5f35c635a  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc
! 38a5b626be9beda3fc57399c9de44115  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc
! 3f89d2b06a48d2e618fd1e7a813cede0  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc
! 548f5b4933cd5dff9e1bab22d6593fc2  libstdc++-v3/testsuite/21_strings/basic_string/requirements/typedefs.cc
! 835097c2172db9f22ccab934fde4c5e4  libstdc++-v3/testsuite/21_strings/basic_string/types/1.cc
! 41bfe29b649cf173193fb301d1d66846  libstdc++-v3/testsuite/21_strings/basic_string/types/23767.cc
! eb941b2ddb084362ec25469836094143  libstdc++-v3/testsuite/21_strings/basic_string/types/pmr_typedefs.cc
! 6a5f5f548c638bef1db20b0decc6b9c0  libstdc++-v3/testsuite/21_strings/basic_string/version.cc
! 25b666935abfdcfacd9402175b925a46  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/1.cc
! bd2fcf012f22bca17f71938654e7e311  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/empty_neg.cc
! 6f5744941bda0900f23005eec84b3be6  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/1.cc
! 449849247be69fe6bf8da5608a2b940a  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/2.cc
! 2d06ffe71e83aa708ba5ef26f438fe97  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc
! 0359b3b9c24cef1c8868cb49b36d5e54  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc
! f75b007cbb4d96d46be0e477d2ea40fe  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
! 9fcf7c317fc64c00d2a1ce31a8e02f8f  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
! 4857e3ecc12e42d04cc68d970112d4fd  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc
! cbd7b8ec95766de539cddeb236e1ac1d  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc
! 5f76a9247b7f158188c45a960b6d7ad1  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc
! c853f3b5cbb364138334aafe3e6d0996  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc
! 2047c3fa698c40011c232ea9272f76c2  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
! 189772ee8c9cb947540e0fcc2468c0b9  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc
! 2f1d01939d4756397fdb3626884d77ec  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc
! 97375dbf28bddc3b2d15dd48c6d3c301  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc
! 24f912da9ea0a1967f1922e8a5e58deb  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc
! 982c39178042ea06a31ece5633e8ea23  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc
! 83061dbc3d6709caf3f84d7dfae6e192  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/empty.cc
! a84afcca25a601f62e2325d452f0832c  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back.cc
! 8015f89246b5ca90ef4ba4f5145a9dfd  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc
! 179ced9577ca1d5b065756a378857403  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc
! a2820f71f69b6af1c4e31ebd1ec3c18a  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc
! 809ea50fb745d94d86f93488e1237442  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc
! a9086673784016ab36e483d8adad7ef0  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc
! d5a4052beb9d03faf2437cf9f22804d8  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc
! 542feb883e2b6573481768712d82c924  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc
! 300b2a08336154fc76b49f0bd3a37513  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc
! 50b141f2a74cfd101047cb98c8797342  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc
! 758775c4b7c4b3fae483a34a47d97f61  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc
! ddf9de4116327775c1dad6d02a204c25  libstdc++-v3/testsuite/21_strings/basic_string_view/include.cc
! 56b76a72c310399f2c690dec4f539a98  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/94051.cc
! 05b9ac08f93a3e0fcce4456defc3753b  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/1.cc
! 2da7913db1af2a5aac333dbf9f64750e  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/2.cc
! f0f5036db68cde0561a116880c91b737  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/3.cc
! 86b6afda429d13a98fe9bca60e7533d1  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc
! bca1ff3771c249fb961641c4e2a81ccf  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc
! 867d72f1642ad0b9e538eda3a3ac94e3  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc
! be1ce3f7d1a0546d3ea7386ddabf69fe  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc
! 51c953ac9cde5639aaea6b74176e29a3  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types-char8_t.cc
! fad93e46b52efaaf848d338f729ec103  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types.cc
! 9ba97b2790fc994a31cb8944ba1bda73  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values-char8_t.cc
! b575c3deed677b77af68ed1a3db6fbf4  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values.cc
! 479b3ea2e3af2099a1d20aaeebd3fa93  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc
! 28aa7f45113ce1b5daf61bf3d8b031a2  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc
! a53318c2edf633986af97c1f6d5c9e49  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc
! 911fc588d058d168a334700d76a1c837  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc
! bbe147a22a02595e2b068826931e9faf  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/char.cc
! 7b2270cf2bc8a89823e295b39d3a3ec0  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc
! a873a124ea427925129b184670154eca  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/1.cc
! 6b7da94ede012777427d091b186a340e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc
! 2b562b0ea3a3b633d59ccf59b680b364  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/2.cc
! c9061e3b2b1f325b3e8a2c50d61bf193  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc
! 6d3663017df5ef45618436976cea784a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc
! 28c3c4ee90868ccdef12835874a98f33  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc
! e6ecae222a5c177ababebd5d293abfd4  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc
! e169552662d7feae3667242bfa40432f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc
! 5f61f2291d11bba3ffb7966b29fc2864  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc
! 78ba57cf104d67c493b6c143d337f836  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc
! d35002a24e47e7e4f1b505f4ad023614  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
! 8a5bba775b58f5e7e063fdf8634cbf8a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc
! 2a8511379ecd61b2df0682d25879a66e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc
! 332d8f03e1a6d60fdc59a71d9ef99184  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc
! 69b48bf22e7514a1b2b2dc9c8976202c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
! 94b427f939d71afa5996f1d7ba5ad801  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc
! b1e82bd18c74150d76e15674613fdb75  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc
! 1109fd0433b547b9e045394e4677f57a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
  49684812d0e6e538d983a81cc02ea19b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/data/char.cc
  3aca8654c80e2a1ffcc111b84f41adec  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc
! 80af7ff898991ad6a9ad95e43635b507  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc
! 6da1cef6c9e572f35cb8c24104383276  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
! f01a88be82996da674b44f4160b4aa2b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc
! 925ba3eed527f99001845ce2d13ed503  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/1.cc
! eadbb734992022df61a04a6795402023  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/2.cc
! 83fc25587a75a2aeb2fe03fce0c79051  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/3.cc
! acfb5bcc1184a958969cb88261cf4b8c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/4.cc
! a27ab762d98de00afd2aa9c38ff90398  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc
! aaf7ac10dba5bfadd4b9f01a47e44890  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc
! fbb3a630c5ecf39b36297b468a73d18d  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc
! ae13693e2d836764e3b5eb874d4dbc43  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc
! adb5afe410ec24d8b1e2d078197322e6  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc
! 87a2ca6d4669a662337f59e8f5a46334  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc
! e39cc268670f8f8a36192724e8143f1d  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc
! 315aff0f577e7f6e2bf2c930ee57b403  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc
! 3f70ee0223b99deb0bf4374d1bc42d0f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc
! a5fbd83c49a79910e7b95b22af3bf1df  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc
! c912fa14e1a1bdd1dd5b804d67691104  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc
! 7384e22c0dd695956cf7f1ec5e210669  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc
! a1bc341126f95e40b88583fab882a728  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc
! 30ff5701187b7b3b2bde652a252c24bd  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
! 5530148abc9ecd92f905bdeeafcad564  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc
! b967af2b8222ca60f0e34e1546fffc7a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc
! d892a5acce6d4d5a054236cb13bb5dcd  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char.cc
! eeac98fcf8cb03bafabd06856eb2b8f8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc
! e02aec243e4625f91d78b284b412b00f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc
! c90586da42f114afacaf6471404f6957  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc
! ff8a222034beb0c0fa72632c32407f2a  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/2.cc
! a3f8c90a59a458c6b5492f1f627d8183  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc
! e37687b29f1b21a642d7497e66b3a333  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc
! eceac8920a6291281b2fad38d61284de  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc
! e78bc74dd3059b2d3c4dbb19220aefe4  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc
! 67cd36dd0a2971d936d46451d4b23d06  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc
! 54748ee7591ac471bef4a4e62428a4a7  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/char.cc
! 840edecf8b9169dea0eb50a6c9172172  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/wchar_t.cc
! 2c4705134e2bd0cac1c8e760bfa715db  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc
! ccd3ee58131bbc9cbb2bdcb5a9e36f46  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc
! 7875becdebc696ea3375ceab5fc561dc  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc
! fc8e1665781b8c8b1420e99e45de3f34  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc
! 4d409f886c410e071297d18bac442ff5  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc
! 609472d53ad24c2d7185fedb2ad7605b  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc
! 5c6891f92d8c93382114ce0abb37eed0  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc
! 317fbb7a1035c9d445ab944435b397f4  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/traits_neg.cc
  58947d8735c23b82574427ce2851e965  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc
! 42cfd034e3b79733923e02f381ec5557  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/typedefs.cc
! 4f05f1cefcf2727983aee3e5320e209b  libstdc++-v3/testsuite/21_strings/basic_string_view/typedefs.cc
! fc65f8eb5e2c83f8567b930da581261b  libstdc++-v3/testsuite/21_strings/basic_string_view/types/1.cc
! a628213b78ad8cb87b82803c5c205c4e  libstdc++-v3/testsuite/21_strings/c_strings/char/1.cc
! a048b7bf56b0f411f37f5fc5140bea4c  libstdc++-v3/testsuite/21_strings/c_strings/char/2.cc
! 1551dd9fa0fe2b6b04842e4a0d5333fa  libstdc++-v3/testsuite/21_strings/c_strings/char/3_neg.cc
! a5d43073d77e6a82fc19d777ecf8d46d  libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc
! 4dfd578243aeada191cf34fd6dcfdc73  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/1.cc
! a832a3b960eb348c9173631d099625c3  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/2.cc
! 4c17567bb37dac4f130cf7027ac16d1c  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/24559.cc
! 6d3a63038ce6c57d5c627c929b6f6e5d  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/3_neg.cc
! 6b5a2a7c9ce21f32df0f07815bb0efbf  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/1.cc
! f0db6b54329d88264f75aa5376489f1b  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/57704.cc
! fc10e558e5f0aee7e00e78d125372b52  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/65049.cc
! efa54d1e2c4a146ab8d06a00a38bbdda  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/99181.cc
! a69bb92d9f0f2bcaa12e2aec20890f78  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/typedefs.cc
! 132f710a1ae736bc4b3338248e680501  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/65049.cc
! aef6c0c2eebd1498f4102e8db40413ab  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/eof.cc
! f2c6c42a828851eb37d9148fcefe3e06  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/typedefs.cc
! 483a3a84e32e9c9ca684db9e4f8fb046  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/65049.cc
! 5fd4bebc9501aeb094d9e17067387c22  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/typedefs.cc
! 07e029003eb11094bca1b387945a53b5  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/65049.cc
! 7a0d0fe61505afee600f1cb350b756e7  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc
! 96e6ace878d64aa0787ee025456f45b0  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc
! b2754088a4965336937e1c9b767da08e  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc
! ae7c2934821e4045acb5fa8a6277df96  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc
! 601aeb96e61803fb8096e966218ff6f3  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc
! c02c3ae15df9123b2d04fdae2eb59b29  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc
! fa5c44437e5ecd3f2008a100ae5e2316  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc
! 77b04ef47665e228c801a2f17760e283  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc
! 4311d564224d14cab63316326788747c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc
! a0764c47b95aac741a1128599f86c9d4  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc
! 99577f5ff45876691722dc4e5131b1fa  libstdc++-v3/testsuite/21_strings/char_traits/requirements/short/1.cc
! b1ec4b6e389f98222cf9955ace4c9676  libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc
! 87cf9e6a8c10cad9deb44d9513136428  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/1.cc
! 79d68a3dff628328c4288f28e9a8b8d7  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc
! 94651ce8ae498577f4401db7961c7ca3  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc
! 487c06a30ca0d6c9bc95754f69b8373d  libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc
! b0dd8a27316f1e2e0dbd3733a00ea1b3  libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc
! e51c267eaf1b599da67a9687f5f02016  libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc
! 74d8f2d219c4dea19223dbb900699dc2  libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc
! 57a3fef1508771ef1604b876a04514bb  libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc
! 74d8f2d219c4dea19223dbb900699dc2  libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc
! c44581afe212aa940b02d06ef08ec2f0  libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc
! 1c6d34d6c23ccae8874ab2004b5561cd  libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
  bf5af2094c9ef74f8a08d7d077043065  libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc
! ac6e154f2010c1a25a2e3e5e0a498b33  libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc
! e261711669880000f2e48529ebe0d144  libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc
! 7e8f1e3bfe8786cf5195e5ea98d42d97  libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc
! fdf1a422d56cd773d4c6bb42114d6eae  libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc
! e269ca3a4f741cf69fc9ad8d634dbd7c  libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc
! 6fd8f7f4c52dd74ecac879ede01189de  libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc
! c6b993d6061255adfb629d6a7065b65b  libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc
! 5db96f4b33031626f430a526409342a7  libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc
! f1696a0e1020201e7457b55869bd55c8  libstdc++-v3/testsuite/21_strings/headers/string/types_std_c++0x.cc
! 38c71a6ec06ba0be9ca0d5e7552a77f3  libstdc++-v3/testsuite/22_locale/classification/isblank.cc
! eaf5cb5b1c5445d7062bcabc4b59c1b6  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc
! 705d6507191f5082ebd86ebae00c4715  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/1.cc
! ae261a42d79d4be397afceac4c3ac79e  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc
! 067e1dd1eb6a0efdb3b465885b9c6a39  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc
! e2d45ee5f8e1e6ca0ebd75d1a3eaf0bb  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc
! fd01b31b169942eecab854f246bc52e2  libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc
! 01b1dd4508f18cb388f882127de06e5b  libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
! bd333062b7b6faf3b89b05fcdf075c73  libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc
! 0a854aa822b999e314f3fd2f27e43efd  libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
! ef0d7ab133458c0e4fdcf24623b8b3d6  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc
! c6356589ddb2f76da9726a03bce7be0e  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h
! 4586afaccef10b14e5cccbaf448d95c6  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc
! 750e8d83b8e45b141befcbeca8c9d9d0  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/66417.cc
! 622ff2c6b116c7d3c82b128e5342029d  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/79980.cc
! 8f88813744024d0f74dae7d2052ca424  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/80041.cc
! 9298c94c14de146f6de9b9ba6e0eeb11  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/members.cc
! 0e71f450fcb7bf37738b522479fe9df0  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc
! 1faaa353f8f7b1363a580963407f671f  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc
! f0e0b8b7aa2f0ac96542bd8ee2825fc8  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/69703.cc
! 57cf489de4bf4fc2854a6a97fae53bd7  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc
! 30419e2f85794d51e4ebaa9af72ba8f7  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/members.cc
! 0e7ad6df2255fd2a2c4578f322eeab64  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc
! 871695de7d205d3e553290f2244faca2  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc
! da54cd1782fc142170311a8a5dbe0b01  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc
! bfec7548b2fee30e0cfc4549383442fa  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc
! 9a99bb7b23e551430c76ccbb42e7486c  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc
! da99d6a758b85537b3da93b440098665  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc
! ae1311fdb66ed197cd662a2e232ecc05  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc
! 006119b24e4ba69eb713383eb0f246e0  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/1.cc
! 34ccd12aa40ddb73607f6b5defaee330  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/2.cc
! 7f1d710f265893942c7cb455179221ae  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/3.cc
! 31418c8b3d779d63176da7cf7e452e5d  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/4.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc
! 645327a16ccba526025363329c6bb7bc  libstdc++-v3/testsuite/22_locale/codecvt/in/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_locale.cc
! bfa2622d4535cbaf069cbac3f1e5cfd2  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/1.cc
! d244061dc87e4f80cb6b70ed3237301c  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/2.cc
! 32b5bf699d403067ae8b0a3e16b542f6  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/3.cc
! 9710b8aab643027a5b7249cb4ddb8888  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/4.cc
! 5ce8e00bbb74de82abbe64e43d440aa8  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/5.cc
! 02574a1175c2ba4e4823ab0e66b1242c  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/6.cc
! 2a0cba2c8adaf9d54de16f286839207a  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/7.cc
! 09e00aa94d531a7bf6575cd6998b0dc6  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/8.cc
! 7778408a7815a634e8115db003ebd5ad  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/9.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc
! 64c11daf6f1631070afbdc8d52ddfe35  libstdc++-v3/testsuite/22_locale/codecvt/length/char/1.cc
! 7043ded648ae3b234af124c7062df94f  libstdc++-v3/testsuite/22_locale/codecvt/length/char/2.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_locale.cc
! cc133e010fcec429e0ed8c3d45381ea1  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/1.cc
! db5451522f9a1cbddbd048f0a329642e  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/2.cc
! a17dff2c0511c57be6c2b17558a024a5  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/3.cc
! c913eb5a9f6543f72a184aee236f7fdc  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/4.cc
! aa39cf16e76031e0b4f39922fb161b00  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/5.cc
! 8205cd44c270c6606c9aa70c72969d0a  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/6.cc
! 8b0540f102ea7b7520f56d1ff791a3ae  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/7.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc
! 913fa70a1ce87e06604bac84e142dad4  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc
! 2690b93aaa137a8c87c7880c7d9235d1  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/1.cc
! 08871e19ec4b51838173e5eb251a254c  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/2.cc
! d9d5c9df2752a5c542d08f925337fe8f  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/3.cc
! 0413ac7d437882bcf978d88446d26549  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/4.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc
! 870a6bac055c89a3a4a9ca23f5a611b1  libstdc++-v3/testsuite/22_locale/codecvt/out/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_locale.cc
! 8c452e917fb516a9b23c72f76b3f3cb7  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/1.cc
! 007f7c3fe99c4924c9402dae6a68322f  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/2.cc
! 3480b75f50fde3ba3b378a3a13d51ae2  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/3.cc
! 3e991a0bd313714838a86033374eb794  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/4.cc
! 3eff2cc50fb427267439988122954ad6  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/5.cc
! c16ecf65ff3bcc1c91c43cf219c1f177  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/6.cc
! 9d580d38c8a6541de311b3384bde07cd  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/7.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc
! 511895868b31987905363ba465e81b8d  libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc
! 6e0c3365805bb083e03a3eb9b7635303  libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc
! fe8d51a8f8e59e24fd2085f5b42f97bb  libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc
! fa662865db83cfbf2ff68981f4f4cacb  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc
! 1bea4b94f6a18497f35cb465ed0dae12  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/1.cc
! f6042e08b5fa4f0736abb479d0e5f1ec  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/2.cc
! 3d86eedea533ea25a54cc677f1c80b0e  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/3.cc
! d972083ee10eedbcf5f770de8d4c4be3  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/4.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc
! bc15edf57ecdce4156f0f909e5afc102  libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc
! 97f91623bb77cabfe81fe71f99224495  libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
! 01792ce9d66b315ff14b405cbb16443d  libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc
! 7d8fcfbf79ebf47945df3b59b4549a09  libstdc++-v3/testsuite/22_locale/codecvt_byname/50714.cc
! 75a46db58749c5cf208ec45f3c18cba9  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc
! 42293373f3a4d35296dc4838c24a7656  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc
! 02bcbd3a9b14be27456620755f063526  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc
! b0c06624603b6e242f837e20e18f565f  libstdc++-v3/testsuite/22_locale/collate/compare/char/1.cc
! 3ecb922667f03e109023dee78b40d219  libstdc++-v3/testsuite/22_locale/collate/compare/char/2.cc
! 6b43d09b748a8aef808f442bba94fbfd  libstdc++-v3/testsuite/22_locale/collate/compare/char/3.cc
! 03a5b39a58447cc011f08c09ebc4b42e  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_env.cc
! 8603ffcecbc9f0b0560e8a2e892fe5c9  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_locale.cc
! dd7dd048bb0c6cd426009c1e9c6f4fa3  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/1.cc
! 53b80edd5ce0392e13afdd146dc7067b  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
! c6c2e135cbfb43acb69b7edbca20fb81  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/3.cc
! a8645490571a31691da8b6dc0e356b79  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
! aef6fcfc0afdc72dea7864bfe836b8d9  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
! 8d08235c5f6e154214f7de328a3d6eb1  libstdc++-v3/testsuite/22_locale/collate/hash/char/1.cc
! 0a140ff792c6deba85660adb398c9c4c  libstdc++-v3/testsuite/22_locale/collate/hash/char/2.cc
! 2cc00815eac507db670a506dc95ddeb6  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_env.cc
! 64003f6c3a8025425f6a6edee95e8a4f  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_locale.cc
! a303f28138d0f91c447d6d3e471adfc9  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/1.cc
! 0efc4fe31b31f2857e7da3d1acdaba53  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
! a8645490571a31691da8b6dc0e356b79  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
! aef6fcfc0afdc72dea7864bfe836b8d9  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
! e7ed8e7642bb2da89c591d7fa4b775fa  libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc
! 5d77f6f99e29af4a1157db7df2208a0e  libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc
! 4d907ec5c769e063d0e8b2c421f52900  libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc
! f90b5b471c80cf99136a5ce653758ee8  libstdc++-v3/testsuite/22_locale/collate/transform/char/2.cc
! 07e443ac99d4099568e20556e8acfe05  libstdc++-v3/testsuite/22_locale/collate/transform/char/28277.cc
! 6f1e55d52e5452a49ff98103c4e3b6ef  libstdc++-v3/testsuite/22_locale/collate/transform/char/3.cc
! 4505f95f52d3e8d0212a3ee48f550d03  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_env.cc
! 738077726235ffa1d4f6a058980e69ac  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_locale.cc
! 2dcf152cbff00d629e1d2e234be50ae3  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
! 4f80ed548cbb9777bb85c3ecb314972a  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/28277.cc
! 02f2bfa391d11285b9e695d19819180b  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/3.cc
! 76af008f026b27dd270187f146c03c00  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
! 9099bb95a40ea26a49e96472e101015a  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
! 803bad5db6205e5346a27b137c560b3e  libstdc++-v3/testsuite/22_locale/collate_byname/1.cc
! 014dc7d6a6d0a4d90fc86055aaeb6ff8  libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc
! 268c61e376edf99cde249974029d0c57  libstdc++-v3/testsuite/22_locale/collate_byname/named_equivalence.cc
! ea0effc12f29caedaeb60236fcf5b24d  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc
! ceecf2e10d609f0c1684f720eea6d961  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc
! 2fb565d97673d699901405daecb68aa0  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc
! abedb0c5ea42a34d7bb36d7d7185e270  libstdc++-v3/testsuite/22_locale/conversions/buffer/1.cc
! b5bdf4055b914313c63699a30867b2a7  libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc
! 6d0508822edcb4d8a89acc2d1ebb8083  libstdc++-v3/testsuite/22_locale/conversions/buffer/3.cc
! 4e86d3067c9c413e6459b9f20000514f  libstdc++-v3/testsuite/22_locale/conversions/buffer/requirements/typedefs.cc
! aff67744150b05475ec52417aaf2eb51  libstdc++-v3/testsuite/22_locale/conversions/string/1.cc
! 173011b75f81e90be30e1f530edbb543  libstdc++-v3/testsuite/22_locale/conversions/string/2.cc
! f3eb891548b235320b2a3eee595ace98  libstdc++-v3/testsuite/22_locale/conversions/string/3.cc
! 6d8cdeb88d0de12eb7ea68301234b894  libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc
! 1e212cba566408d9fd80890d66277c50  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs-2.cc
! e3ba62e3dd934b669c3c2e0672f71c97  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs.cc
! 36c5b9587f20586758065fc0d13a9fe9  libstdc++-v3/testsuite/22_locale/ctype/2.cc
! d320d700d152083ca83af1d4c8750fcf  libstdc++-v3/testsuite/22_locale/ctype/cons/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_locale.cc
! 47211ecb93479d9cb8f4251027a318e3  libstdc++-v3/testsuite/22_locale/ctype/dr695.cc
! 877c08cbbcd2dbeac2c49b1136651af5  libstdc++-v3/testsuite/22_locale/ctype/is/char/1.cc
! 07d1a4a6a0c0d5eaf92b7c86cd5a127a  libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
! 07a40b11a45b223ea2f5885deee09d29  libstdc++-v3/testsuite/22_locale/ctype/is/char/3.cc
! 79d9c428bb88f4fc4eeb2d8f7851d203  libstdc++-v3/testsuite/22_locale/ctype/is/char/9858.cc
! 4d260e75eba03e05fa4e14f23b0ff28c  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_env.cc
! d8cd83179dc27caa55bc5cd6b1424b7e  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_locale.cc
! a7691a69907eb638b82e921111aa9ba8  libstdc++-v3/testsuite/22_locale/ctype/is/string/89728_neg.cc
! 861e84b1e6ecb7a22e0ff3832c0b2f59  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/1.cc
! 2c7480cffe9f63e66a6fc685e5edb7e2  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/11740.cc
! abbad76ed148ef85ebb7c3f338e00fa6  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/2.cc
! 3fe40478142758a5c009b1643ce80abb  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc
! 0f7edaebd024a20c520eb5a0047e9202  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc
! df81b17ab0258dfaa2effafd9584a692  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/1.cc
! d7c3696d4acfb007e5d8ea95f0a0a4bd  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/19955.cc
! e232a6080c1a069bd7b69a33966033f6  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/2.cc
! 3fe40478142758a5c009b1643ce80abb  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_env.cc
! 96bd8acefa909730010c24105f57937d  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc
! 10369e9f1e130bba17f937260b0390ef  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/1.cc
! 09a76c804c4598751154b5eb99ffe4cc  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/2.cc
! 783bb7d4e5b50e41e040bb82edf47afd  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/3.cc
! 3fe40478142758a5c009b1643ce80abb  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc
! 96bd8acefa909730010c24105f57937d  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc
! fdc080858771ec1195345a1315a69446  libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc
! 4cbea2671e1aaef2dd1aa6790929be2a  libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc
! 5b12fa9f3f11e6ce0dfb7d2ddfdf1282  libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc
! 06e5bcf579e2e9e3b0f81bae3c43acc3  libstdc++-v3/testsuite/22_locale/ctype/scan/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_locale.cc
! 59152a5d7e480b1d6906c1a69411e1f1  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc
! d900bc0a9118f095cbcfdecd93080742  libstdc++-v3/testsuite/22_locale/ctype/to/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_locale.cc
! eca0e910b4394227551d5a0fd6f500ae  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc
! 78666d1462b3850cc012a35785f1a54f  libstdc++-v3/testsuite/22_locale/ctype/widen/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_locale.cc
! 7a9140e1a53ea6d9c60c1b03bec62253  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/1.cc
! 295e355e0d5f4415a327286cef78d4a6  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/2.cc
! 9af50bf8097e8d26ca87ca0911c9e849  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/3.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc
! 84a47de1802d2497e8482191d5b2ab4a  libstdc++-v3/testsuite/22_locale/ctype_base/11844.cc
! 06771a5ec5fc3a9ddf61a7baa149b618  libstdc++-v3/testsuite/22_locale/ctype_base/53678.cc
! 76fda4da0f7416956781525f3eacde63  libstdc++-v3/testsuite/22_locale/ctype_base/blank.cc
! 64e51f31d9ea69f507d95469c443558b  libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc
! 1921bace7c6cf2ffc55f2ad15e0811ac  libstdc++-v3/testsuite/22_locale/ctype_byname/1.cc
! bf17f879ab80f90a48c2ad0b416a02c3  libstdc++-v3/testsuite/22_locale/ctype_byname/2.cc
! 4c396357430150123240aac7a00ccde4  libstdc++-v3/testsuite/22_locale/facet/1.cc
! be51178b9dcab5bb3a1acee313152442  libstdc++-v3/testsuite/22_locale/facet/2.cc
! 5aa24cf724bcc727b3bd3fbb2a949f49  libstdc++-v3/testsuite/22_locale/facet/25421.cc
! 1b4b3d979463bd1e61fd72ae6b32f516  libstdc++-v3/testsuite/22_locale/global_templates/1.cc
! de6abfefdb0444970a6d2602dbe47c67  libstdc++-v3/testsuite/22_locale/global_templates/standard_facet_hierarchies.cc
! 4d0d3acb099c9ee4db5adb687a09f42f  libstdc++-v3/testsuite/22_locale/global_templates/user_facet_hierarchies.cc
! b650cdbccba00842777db6b13e0f4e83  libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc
! 02212a3050cee1008f49ce4cc97af3c3  libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc
! 58c8af6ac8a05aed18f800f2fd781ead  libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc
! dfe375aeb99d852234b62f22edde07b2  libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc
! c219dd0356a878b395b8749c405371c7  libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc
! 901e3252f343a1ab1b9a676ce59d46b6  libstdc++-v3/testsuite/22_locale/locale/13630.cc
! b5443198980d35addcb3f2f39a795518  libstdc++-v3/testsuite/22_locale/locale/cons/1.cc
! 90085538cda9dc4460995ebd36d300e9  libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc
! 94a5e842e0dc9e2aa615fe66511bcf45  libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc
! 332e412c12d1e02d114294038ef92396  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc
! e1765f1c8b0d1e029654d0a10c6025e7  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc
! 1f8c42c9c54cbc1307c3b05be112691f  libstdc++-v3/testsuite/22_locale/locale/cons/2.cc
! 017b5c422731ccb0e3b8322ebb49ca4b  libstdc++-v3/testsuite/22_locale/locale/cons/29217.cc
! 288d7ccb93bdd31318fceae08528ce9b  libstdc++-v3/testsuite/22_locale/locale/cons/38365.cc
! 18d7000cbc8a7d91626f497b4ec5f412  libstdc++-v3/testsuite/22_locale/locale/cons/38368.cc
! 05a799e055698b2e887d9516dd2d29a0  libstdc++-v3/testsuite/22_locale/locale/cons/4.cc
! 3c4f4666016ce48799b24d2ad8529890  libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc
! 78222f3d867bfa53c7e4c45c23206715  libstdc++-v3/testsuite/22_locale/locale/cons/5.cc
! 1e06922446d91d9705b1fb7df9b3c3fe  libstdc++-v3/testsuite/22_locale/locale/cons/6.cc
! 266f41bef44e0a71f28aee8e214d4c4a  libstdc++-v3/testsuite/22_locale/locale/cons/7.cc
! 30d131c01843da261186772c6d2a3ca5  libstdc++-v3/testsuite/22_locale/locale/cons/7222-c.cc
! d03cd1c9314265b0d41699c74077b7f2  libstdc++-v3/testsuite/22_locale/locale/cons/7222-env.cc
! 541cc16dcf2a015fdadf5fa008193822  libstdc++-v3/testsuite/22_locale/locale/cons/8.cc
! d76dc6b099c96202d65db7c0f68c3c6f  libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
! db54cb228356c77f680dc793b9df5f57  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/1.cc
! ecca6491533bf700a30087c20096d2c6  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/14071.cc
! d1e3f47589a9f0715e07dcae5f911f88  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/2.cc
! ddc8b404d6ef4c0cd38cfa43ab7d4ccf  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc
! 7d0b55a741e00c0ed1bc28e1e79a4deb  libstdc++-v3/testsuite/22_locale/locale/operations/1.cc
! 60328c62ad20ad9a034b7ab3354a772b  libstdc++-v3/testsuite/22_locale/locale/operations/2.cc
! 472c54bf90b228237ca251f3b87d2bf6  libstdc++-v3/testsuite/22_locale/messages/13631.cc
! f4e8508bc34067c55addfde6aace81e2  libstdc++-v3/testsuite/22_locale/messages/members/char/1.cc
! 5a9aa03eb44eceacd7088cded52bacf4  libstdc++-v3/testsuite/22_locale/messages/members/char/2.cc
! 75ef555b433fa33db0f1d2210a1b5efb  libstdc++-v3/testsuite/22_locale/messages/members/char/3.cc
! 34f5d4e132dddf881674c02df0a1760e  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_env.cc
! b73182ef5f4eb4eeb1cbf6d597ad2b76  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_locale.cc
! 5c4818f83a9236e57e7b08be55f6791c  libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc
! eb1326057a39973503b67f32cb6e574a  libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc
! fab2c705d14af0d18521fc5500e75a0f  libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc
! 3d60a3e9dd5cc732802f61e6b71fd713  libstdc++-v3/testsuite/22_locale/messages_byname/1.cc
! fb48fc7caeeb28560b24a47a2bf7ee11  libstdc++-v3/testsuite/22_locale/messages_byname/named_equivalence.cc
! 886f466c304899cae94b11e46a77f567  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc
! c6881e486f2c6a7b8ec0067cdbbac02c  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc
! c645ca7dc82534e0039d57decb60238b  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc
! c62a33bb8526571a35138ca93e1b0eb5  libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc
! 0352c944a8616c0699942be94b71416f  libstdc++-v3/testsuite/22_locale/money_get/get/char/1.cc
! 18f45a8c68cebfd5d482f616d247239e  libstdc++-v3/testsuite/22_locale/money_get/get/char/10.cc
! e5d0f1417711c4cf409add0d410b8f11  libstdc++-v3/testsuite/22_locale/money_get/get/char/11.cc
! e4818a703adfb825e54b7d3ab65e9ed4  libstdc++-v3/testsuite/22_locale/money_get/get/char/11528.cc
! 5c29cd1b3fcdae38b85189a91736331b  libstdc++-v3/testsuite/22_locale/money_get/get/char/12.cc
! 7e5c905a27802c02688d85236529969a  libstdc++-v3/testsuite/22_locale/money_get/get/char/13.cc
! 4ad8d250e7932b3abfcc223f1b55d378  libstdc++-v3/testsuite/22_locale/money_get/get/char/14.cc
! 19f5c1f6f41145f9f1f59bafa952e454  libstdc++-v3/testsuite/22_locale/money_get/get/char/15.cc
! 59f7eb6b45d2e7b971407e60564eb5d5  libstdc++-v3/testsuite/22_locale/money_get/get/char/16.cc
! 4c9123c3d7d99bacc554576f60841543  libstdc++-v3/testsuite/22_locale/money_get/get/char/17.cc
! effaaa1412704c39470c77aaf95b7013  libstdc++-v3/testsuite/22_locale/money_get/get/char/18.cc
! 9268b2d458bff56f02d3a60b30bb2830  libstdc++-v3/testsuite/22_locale/money_get/get/char/19.cc
! 7c567ea731df044aad96a954bc7ed30b  libstdc++-v3/testsuite/22_locale/money_get/get/char/2.cc
! eaf9045cf8979adba5c4da6ffe1937c9  libstdc++-v3/testsuite/22_locale/money_get/get/char/22131.cc
! 7c2400524555692ca35d27be81d975f8  libstdc++-v3/testsuite/22_locale/money_get/get/char/3.cc
! 08c562bde9b802a8dfb300209d8c3864  libstdc++-v3/testsuite/22_locale/money_get/get/char/38399.cc
! 0b9f4e56bc9eb06eae319b69fb3c241a  libstdc++-v3/testsuite/22_locale/money_get/get/char/39168.cc
! 0bc02f150fca1ec61a074bb6bab48919  libstdc++-v3/testsuite/22_locale/money_get/get/char/4.cc
! 2e7053953472acaf05bae0ebc1fbb42d  libstdc++-v3/testsuite/22_locale/money_get/get/char/5.cc
! f5d656d1faa12df651367308310c1397  libstdc++-v3/testsuite/22_locale/money_get/get/char/6.cc
! 499d0160de2b6cf5d519d1cfa5987d49  libstdc++-v3/testsuite/22_locale/money_get/get/char/7.cc
! c1e69b7de33df1c94e09aeaad08297b1  libstdc++-v3/testsuite/22_locale/money_get/get/char/8.cc
! aeb5a254d0d846156d22d670307f6030  libstdc++-v3/testsuite/22_locale/money_get/get/char/9.cc
! 4a27c1b633a2a6cf67b3b1dcb510b4b6  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_env.cc
! 2673930d6c9b8b7840c10eeb5a43897c  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc
! 4789d320f6764d42c9512245e4f3d9fa  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/1.cc
! 113bafe02a5fcc8cd25808698d1cd00a  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/10.cc
! b53b3478d9ac39b27f3af1a9a1702b87  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11.cc
! ba50dc1996f6fb75657d0f128f49afa8  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11528.cc
! cdfe2f84cc480de64e8d848eb045840a  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/12.cc
! 676aa40dbd0ef5aee9deae7a6f80589b  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/13.cc
! bed42ea747a7203c8a1ce144d4528cbd  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/14.cc
! 55ae61a024b6932aed02b51b72164b71  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/15.cc
! 679b3b649235edb842f5d16176cf577a  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/16.cc
! 5d7dd995b97d0e55f6dfe37d02a04dab  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/17.cc
! 9590059a1f2a5ffc13ad1ddafd8ba8c4  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/18.cc
! 94c0d0c7637713c10a33be0d2e4d368f  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/19.cc
! 5f9874c5e4ab7c2c801efa6eb8160b97  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/2.cc
! 10f96cd7d0503a81962074f6222f6d6a  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/22131.cc
! f5d5f969b30b21023e13fcbc4adcd7e5  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/3.cc
! 7ddf52355f7ea58f660705d782d15b40  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/38399.cc
! ca4b3565bc32b5beabf0931aaded6270  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/39168.cc
! ebd180eccceb1fefe3e46630f8be3f31  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/4.cc
! ce7d6005fa954a07402bc46517f7b2b2  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/5.cc
! 73c9b359363f7868a9d2b391205a49f3  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/6.cc
! 237c207ebbb3384763b31f676ff9fd69  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/7.cc
! 898ac5199809b711ab32675ada5e20f1  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/8.cc
! 79f1e8302de8ba29f1daea62f4a67038  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/9.cc
! 4a27c1b633a2a6cf67b3b1dcb510b4b6  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc
! 2673930d6c9b8b7840c10eeb5a43897c  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc
! f52f950706462af8377ced9344ec3666  libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc
! 10d13ee6a37e01116db5360b4de70366  libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiation.cc
! 8916d9c1ad3636ff28f43e93a6ce5601  libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc
! bf0660eb1d285ea22023d43535b85404  libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc
! 62cb858df697a49cc3ca672d0421f621  libstdc++-v3/testsuite/22_locale/money_put/put/char/1.cc
! 944dd76f11c88b49277a1c28f36dc198  libstdc++-v3/testsuite/22_locale/money_put/put/char/12971.cc
! b21215f72d95edf9da805d2b0f7087c2  libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc
! b2925dfd49568f471ec4a075cd4f8b55  libstdc++-v3/testsuite/22_locale/money_put/put/char/3.cc
! 59e800b4460d4c215710baaf29b876c5  libstdc++-v3/testsuite/22_locale/money_put/put/char/39168.cc
! 4ac222724a8bae7cf8b773a14dfd4944  libstdc++-v3/testsuite/22_locale/money_put/put/char/4.cc
! cd44589593f995cf11168f128b4a034a  libstdc++-v3/testsuite/22_locale/money_put/put/char/5.cc
! 8f6f45a478ca9f6ac4436091b04ab8b3  libstdc++-v3/testsuite/22_locale/money_put/put/char/6.cc
! 90b364487fafcd797b48c71e60ed15a3  libstdc++-v3/testsuite/22_locale/money_put/put/char/9780-3.cc
! 374e7b18c38c75f80da92bf4fda83f1b  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc
! f2d02c09b4c1a83bcf9eb4a39573db28  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc
! b9ebde1c54581d68683349227cf4eb30  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/1.cc
! e03f2033025e56fe09c0421bdd5fbbbf  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/12971.cc
! 481f5a432a7b99e7bf53f266f160794a  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/2.cc
! 86d9f21c5528366231324bb75b7b2e72  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/3.cc
! 5ea1c8d3aa837d8c6a1670d6d881930e  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/39168.cc
! 6dabf19e10f271600356b782fb473d43  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/4.cc
! 5c640fc02710089a36990a0b12ca9e8f  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/5.cc
! 36e70af45aaa0fd429d1c59637b80210  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/6.cc
! 374e7b18c38c75f80da92bf4fda83f1b  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc
! f2d02c09b4c1a83bcf9eb4a39573db28  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc
! b3726805dc38eaf5c4828657ae9ae70e  libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc
! 4d6520e43305745aac6ce161b31fe98d  libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc
! e25d324a23e0a21f5237dfc2c5ea45d7  libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc
! f725d6e30f56572d110eb07ce64badc7  libstdc++-v3/testsuite/22_locale/moneypunct/40712.cc
! e609c19109da5eba2fd28406c328d53d  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/1.cc
! e29b34b6c97791712b11650d13c077e5  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/2.cc
! 3fe40478142758a5c009b1643ce80abb  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_env.cc
! c2049e4c17d6755a6320685031db2e82  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc
! a37cbb50033aeba9b7b1b700e015e125  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/1.cc
! 08cd766547e4c1a6d9bb2a04815c6edd  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/2.cc
! 3fe40478142758a5c009b1643ce80abb  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc
! 0f7edaebd024a20c520eb5a0047e9202  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc
! 5aa16d6efd9b58cb52427af94c759425  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc
! 674e5b52869a6061bd9171bf90cb9e86  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc
! d622b98b82c4c841f0c6064b870924d2  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc
! cbdf991bc069784acf9f3eb849e10e60  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc
! 3e3b37d2bb228faf1fab7f5a78480c7b  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc
! a6f3e6b27077563ae29554f7dee0c993  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc
! 4cdc53efd94e31c3d0d4f51704ce079e  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc
! c33b82a66021888188f7f434647bcafb  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc
! 4a3cc7cf35e7e4b0c70ea65f4797a424  libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc
! 37dc1f221923a2de7717af51f8623a45  libstdc++-v3/testsuite/22_locale/moneypunct_byname/named_equivalence.cc
! 028558405f89ffebc35b094391443260  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc
! f3ccc6ba19502c9e33aea9faf06d78d4  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
! dec4743796f4ae41bcaf6800d2d74dc0  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc
! f4140f255f98e29f00628da08c027dd2  libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc
! f4194473cec9a50cb4237edd948381cb  libstdc++-v3/testsuite/22_locale/num_get/get/char/1.cc
! 21a78cfdd133c6f508fe32a3feca0074  libstdc++-v3/testsuite/22_locale/num_get/get/char/10.cc
! 517d2922852244c248c14964cc9dfbc8  libstdc++-v3/testsuite/22_locale/num_get/get/char/11.cc
! 6efbbefe680d565b66ecbd5ec6751bc0  libstdc++-v3/testsuite/22_locale/num_get/get/char/12.cc
! 1fe4f3b1dbefe801c4a04f8d33af9a90  libstdc++-v3/testsuite/22_locale/num_get/get/char/13.cc
! 94652e5106dee8f36a073a893f0583f1  libstdc++-v3/testsuite/22_locale/num_get/get/char/14.cc
! 02f494066bb5667ec02c2f784d246879  libstdc++-v3/testsuite/22_locale/num_get/get/char/15.cc
! 6bbc9b1814b7428c401ebc97d7e89524  libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc
! b8f5a396203957f71b2c285df31cc6bf  libstdc++-v3/testsuite/22_locale/num_get/get/char/2.cc
! a35e610f4ab030ad83a8400ba86d74af  libstdc++-v3/testsuite/22_locale/num_get/get/char/22131.cc
! 7dcbea5c2ede67b4f8000bddb7b9904c  libstdc++-v3/testsuite/22_locale/num_get/get/char/23953.cc
! f706cc38269e78d310b264b8bc0d04b7  libstdc++-v3/testsuite/22_locale/num_get/get/char/3.cc
! 08538d31d83d4fcc0d81ba444e8bfa27  libstdc++-v3/testsuite/22_locale/num_get/get/char/37958.cc
! f196476100cc42c85eea6be98a173ffe  libstdc++-v3/testsuite/22_locale/num_get/get/char/39168.cc
! adfe750ad0b63fb471bd7623fc4f77f5  libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc
! b9741721416eae6ad82e96e1975822d4  libstdc++-v3/testsuite/22_locale/num_get/get/char/4.cc
! b4579f60a5b09353bb019c280f16b78a  libstdc++-v3/testsuite/22_locale/num_get/get/char/5.cc
! 124c15ebd503ef0fb1173eaaefe07a7b  libstdc++-v3/testsuite/22_locale/num_get/get/char/6.cc
! 7241961a6507c57425e3fd49c8373d1a  libstdc++-v3/testsuite/22_locale/num_get/get/char/7.cc
! dbd9e0f549d5ca4e0b7094cf1bd43f9f  libstdc++-v3/testsuite/22_locale/num_get/get/char/8.cc
! 4fb7235e81eda7a6313e23eed3733fdd  libstdc++-v3/testsuite/22_locale/num_get/get/char/9.cc
! 84bf625c0dfb01614348f37f9169dde9  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_env.cc
! f2d02c09b4c1a83bcf9eb4a39573db28  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc
! 583e3f6698de20c3f519872fba1ff46b  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/1.cc
! fdaa783371542bfad1c63f7ec3b84cbb  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/10.cc
! 571e6dfe632306cbb3f163416278a4b3  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/11.cc
! 09ff32106a4e3fab0c46b27f46b9aa0b  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/12.cc
! 7099ba2466377bb2be22b73e7cbb338b  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/13.cc
! 0890e9952d047e923d9e6ebbefb02aad  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/14.cc
! cd69b40bc53550dde0e55268f897ab76  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/15.cc
! 2a195796762cc324a2a13ee46c1e548c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc
! 6589c3fe4fd0d42ea57f5976f064c0cc  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/2.cc
! 0163a78bbb8a7d12b20a73b124b4be6f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/22131.cc
! 5945e3ea3b55e4f8a0c7becf84daa733  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/23953.cc
! bd943b42f401f13ff5fdf5dfd111c008  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/3.cc
! f2e068b8facbef799f2ee40f6946759a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/37958.cc
! 4518902c8869aa01a82b3cb84fb50a4c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39168.cc
! 2cd7776fee0bef96b0a68b3805be438e  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc
! 3d4e04b68774ccf26fa053a583fdda61  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/4.cc
! 03d9c655dbbaeba635168ca27f459937  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/5.cc
! 69c2448ebfce454497c08a872c0a5f5e  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/6.cc
! ab9c105f741dd0c74f9a4b2f0979d70c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/7.cc
! 3e17ac4bb6a280e9df020c1fb528d9b5  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/8.cc
! bf4c2d63ffa9814a2e5fbb2be4227a8a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/9.cc
! 84bf625c0dfb01614348f37f9169dde9  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc
! f2d02c09b4c1a83bcf9eb4a39573db28  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc
! dca59d4e0045ddb962cc1d7dffb28ab8  libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc
! ba63ba690f31f0e4120a338d2c164a4f  libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc
! 2f03f026fdf2ce53c4c66486f29b8e23  libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc
! 990a53f735bdc4a6c98dc650a9a556f7  libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc
! 283b0b5e69c320acabb90e6e4f04f2a7  libstdc++-v3/testsuite/22_locale/num_put/put/char/1.cc
! f8d384b85ee1a10e9a2183ade4dc20d2  libstdc++-v3/testsuite/22_locale/num_put/put/char/10.cc
! 8b672823361ad0f5aa74afd18bf341a9  libstdc++-v3/testsuite/22_locale/num_put/put/char/11.cc
! ed382458eee7976b3e30dfce74fe5a4d  libstdc++-v3/testsuite/22_locale/num_put/put/char/12.cc
! d90d6c4e272925e55b6a43c762b78124  libstdc++-v3/testsuite/22_locale/num_put/put/char/14220.cc
! 0a1262b092bca0a3538a295cc5b95264  libstdc++-v3/testsuite/22_locale/num_put/put/char/15565.cc
! 74195989d7e8fd80c7b4699ad06d0ec0  libstdc++-v3/testsuite/22_locale/num_put/put/char/2.cc
! 5f88adf2b05558736fb9793e4996a16c  libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc
! e1fcf5bf991f9138f3e6829db77d5373  libstdc++-v3/testsuite/22_locale/num_put/put/char/20914.cc
! 91de11d9ead67848be71bc9e2988e1b5  libstdc++-v3/testsuite/22_locale/num_put/put/char/23953.cc
! 61a48f36286e95b39eb30e6bc7d6afd4  libstdc++-v3/testsuite/22_locale/num_put/put/char/3.cc
! fb852523e9f084582d7d2d82d1ca65d8  libstdc++-v3/testsuite/22_locale/num_put/put/char/38196.cc
! d7e4b8d4e76bd930bb0dc500a195c440  libstdc++-v3/testsuite/22_locale/num_put/put/char/38210.cc
! 9c11aff1bb8446f8709e66d058459c5f  libstdc++-v3/testsuite/22_locale/num_put/put/char/4.cc
! 4d6d8f2a0fc9d5c485e74f42a79f46e0  libstdc++-v3/testsuite/22_locale/num_put/put/char/5.cc
! d892af71510a3eabfcb426c45e5a451d  libstdc++-v3/testsuite/22_locale/num_put/put/char/6.cc
! d0b856991f9f94f7277dea22561d2ff8  libstdc++-v3/testsuite/22_locale/num_put/put/char/7.cc
! 9101b7e660e96f92bc9521b8bd5cc532  libstdc++-v3/testsuite/22_locale/num_put/put/char/8.cc
! 76746c1dda2f3989a1f1a8411a830b6e  libstdc++-v3/testsuite/22_locale/num_put/put/char/9.cc
! be28404a225aa4a64a9a3205afb7107a  libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc
! 0607eabfbd292d095d6a9f6c22ae7b29  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_env.cc
! 8134b5a9716b089ca254fa89f0465c1a  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc
! 9ec4c2984e733ae12c95db5060c949ed  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/1.cc
! 35c4781c0e67212e7248c288985f2cc7  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/10.cc
! a08f023c61517e755b5b2770810cd813  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/11.cc
! a5f22568e67402c0cc259ef269399524  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/12.cc
! 1f8be1f884a8d7d19e62f36cc917c0de  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/14220.cc
! 6545250c3a37178368c84acd5a96adb4  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/15565.cc
! df981d00751a1bc5b40e5763e485b667  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/2.cc
! c1e5d49e52f56f31d71d3d697611ad26  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc
! dba677e83129f6a372a2bd1ecf2ff3cf  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20914.cc
! 6a0695c8958d70c5d71543b97c018d70  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/23953.cc
! 92c05a062eefff7d21dd9dd861a866a0  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/3.cc
! 7eb0172b6358db45530d4e555c72d779  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38196.cc
! aec433294dee05c43112ce98403cd469  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38210.cc
! 3aefad7bad186e14f86399d8cbcecb24  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/4.cc
! 0ddba9e95258bc6cfd92fa3efc9c4e81  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/5.cc
! 2bfd94fc206c5a5c5dfcc2a223b48963  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/6.cc
! 93ef64cd3278400fc0cf7c70acd434c4  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/7.cc
! 2e66d1d249426dd93ae758a11f677fa1  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/8.cc
! 89177a7389c0a7e5dd5dbbe2d2acf798  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/9.cc
! 908cb0e1085ed5bac9409832ea50befc  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc
! c2ce89d88d327adfc4a2fca2ca6d2bf5  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc
! 884a656ce2d0bf57f50e4c7e0b20509f  libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc
! 4ae0e02ed8ee89bcf262a996d3443e02  libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiation.cc
! dfdb4ca3a84508da0a3fccd5a7f51cf7  libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc
! ce13d351561f3351d3ca932578d244a7  libstdc++-v3/testsuite/22_locale/numpunct/members/char/1.cc
! f651da7847870fefd19fb73ea2f01a97  libstdc++-v3/testsuite/22_locale/numpunct/members/char/2.cc
! 26b96c8240ece80e6e3f0c3112d1a000  libstdc++-v3/testsuite/22_locale/numpunct/members/char/3.cc
! 7485a649ee4ae543358515d6916f5667  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_1.cc
! e46e293c6136bfed547f528b7b38feb2  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_2.cc
! 180e8b609980204d1f70e067c7b25759  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_env.cc
! a776028832789c2612f74c4c121f8040  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_locale.cc
! a676a9a8f7f6614a921e3c8cc9c1ba1b  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/1.cc
! b2f5b85bdfe8ee2cf9f5c99f601d34f8  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/2.cc
! be4dde77efd38ab8f7ece22c833aa50b  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/1.cc
! f8287dc3d85f8bf8b8ef9e3f7b26fb2a  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/2.cc
! 3923e96fe3af4921e85771a9433b3fb4  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_1.cc
! 360607668aaf79bfd1f44df0f7aa9076  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_2.cc
! 180e8b609980204d1f70e067c7b25759  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc
! a776028832789c2612f74c4c121f8040  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc
! ad059ef4c5af8a2df19b4161edfd3df6  libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc
! 86038796a0e97e06a587b5f4684841ff  libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiation.cc
! 67f4780ef005d041fe3131d3f8883651  libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc
! 8fa197dcd909d36d399a862acac24d10  libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc
! a97275eeb48fb4b581c465a1a8f9da08  libstdc++-v3/testsuite/22_locale/numpunct_byname/named_equivalence.cc
! 0035f93daec99bc5589cfa8e2a694938  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc
! 85e5bf1edfe38c63a4c74c16d34b95d1  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiation.cc
! 775243a6a6da6fc821880c9e361cf568  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc
! 60420e9eb52da8aea9c9a5ac8439464f  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc
! 448246aa9677c8dcec433101dc01dfef  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/1.cc
! 4395d337731f3acdedd84cecc15c82b5  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc
! c0e3faee3730a602e20eb2371cab4609  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc
! ceb82f9c3296cb91c772fbaed4221733  libstdc++-v3/testsuite/22_locale/time_get/get/char/1.cc
! 9a5d5453b707db4ec789cf0cb5a97b67  libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
! 0bf1b4fd315bbb7bd66dfc9666e0e5e6  libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
! c7d31005652249477e0646ec2cd23fa9  libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
! 3b97c35b6f37ac43ebdc34362fb5bb27  libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
! 20d958c3a84f4a43c906a4983e1512f8  libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc
! dea983530302f4a9ad9004fc650cba6f  libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc
! 5ae22b4ea7e0426d28fa17377e69b95e  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/1.cc
! 0fa31317657a8dc3aadb34c1c334abd1  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
! 6062ff92984041ca6eb46a705033d625  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
! 7615d7c3d0ffc9373cce7ea37d2818c5  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc
! 060925d7d586495f246e9e4251ad7f97  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
! 6179effc9fc467cc2a0629756e434dea  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc
! 11e3eaf8650d9500d35a64c21bccf971  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc
! 539d39b191fed58ba7105dd899662278  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/1.cc
! f80a7d5c2d43e5d55a2636168f8a6bae  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12750.cc
! 7f2db36f5f254fda4d00ac4fed8e0758  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc
! 505e6f185682d8bcf7c2d99c26040352  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/2.cc
! 44ceb18d3859fb963b7e297aed823009  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/26701.cc
! cd9c53d0c99a9b8f86893367b9782d84  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/3.cc
! e63102e85f61b9d121597d3a283b7cad  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/5.cc
! b66c1685743507f8e94c99d3e1a0dee8  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_env.cc
! 998d66b3f2ff0b97e2fde333d0da43f1  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc
! 77357e189b6daa2db9a365ed9e3e5f10  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/1.cc
! ed88e8b994dcc500b48acaf7073fb1bc  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12750.cc
! eb5182ee23a797ba265859964127254e  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc
! e4b738031b3b979e51a326bb95e8b9d3  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/2.cc
! 2bd05879abccb8868f3dc16a25e8b1f9  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/26701.cc
! cec0780c2dfa9c3b25f0f72f338b5d0c  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/3.cc
! 160125ea1ac9485e7696a17a37d3e4fb  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/4.cc
! 5c714c678dfa165f6de0bf4876d89e65  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/5.cc
! b66c1685743507f8e94c99d3e1a0dee8  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc
! 998d66b3f2ff0b97e2fde333d0da43f1  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc
! e10123eab5627493a9b93986c46e17eb  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/1.cc
! 74c250cb4b061dfa450af42bfff3109a  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/2.cc
! b46b018132ff414c69ff4e8b8bc0f586  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/3.cc
! fbd7a1eeca20ff8a4439c1c070e36407  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/4.cc
! 0c4dc3743bda5a26682d7946259286e1  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/5.cc
! 6a913ef4acfb9ec0d120191b16da2287  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/6.cc
! b66c1685743507f8e94c99d3e1a0dee8  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc
! 998d66b3f2ff0b97e2fde333d0da43f1  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc
! 5f43a684b8a8735821be95d5050496d6  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc
! f622b326171cce4e8b104fabc30f4d80  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc
! 0a3d8ae8c4d22976ea2d99ba7a6486b1  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/3.cc
! ce42f61381b7cbd95d6085b5c9af1e7c  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc
! 1d2acca73dfc6c5dfbe045deb36dc4a7  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/5.cc
! 96b938c8bda8d246e618006ecc0294eb  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/6.cc
! b66c1685743507f8e94c99d3e1a0dee8  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc
! 998d66b3f2ff0b97e2fde333d0da43f1  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc
! 8aa51b5872f89a736948bf8b882110ed  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc
! 7ac4ddca20622646b8a1d04f63e8f41e  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
! 197841d494ee66932e1e5f63ba2a26c8  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc
! 2d4b6b3d503b3140f9d4c56114cf75f7  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc
! 972699e26a3b23c393e2b986c32ea443  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc
! fa0b354639d86ae0e4993527b0e2610a  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc
! b66c1685743507f8e94c99d3e1a0dee8  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc
! 998d66b3f2ff0b97e2fde333d0da43f1  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc
! e48c9726f1db55a32efb83ba46a6fee6  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
! 9297b11237f88fe8c61ef18dca982c1e  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
! fb41ba9cb5ad1eecd08ff3607b9c6d1f  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc
! 7051f99013461ab0b2df633769204033  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc
! cc339e3d70fc1681cb6c9c1e04759a0d  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc
! d3dd456260399159a11f0be2abd5a2f1  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc
! b66c1685743507f8e94c99d3e1a0dee8  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
! 998d66b3f2ff0b97e2fde333d0da43f1  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
! 4c9512191d2983eb2377c9aa002383d2  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/1.cc
! 91caa7eefb45a221cc7b41d8055baa66  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc
! 55636bf6b135735da5ff8c364e261035  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/3.cc
! fc1e6875276b7f52e37acc3b5f7a89f9  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
! ec447eb73516bbdb4874161cfba272ed  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
! 604080bf49b78299899e60fbf53aba2f  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/5.cc
! 0a3afd46be1c3efaff735ab8229c1cb8  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/6.cc
! b66c1685743507f8e94c99d3e1a0dee8  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc
! 998d66b3f2ff0b97e2fde333d0da43f1  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc
! 6acd07d9584c77b53921a3b49d5f8f8b  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc
! ab65c6dfe9e072087d4957b4890d833c  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc
! c14d6305e5d75cb9524e19034ad4942c  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc
! d915d93dd70df40dd5633d6aeb2a2264  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/5.cc
! 35d3e2f4acb6e517170e5259b0b3e96f  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/6.cc
! 1dcd4af5e2c6428240d924ff8ccbd007  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc
! e3f6e7c2eedfd6056d1ebf13838a8079  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc
! 9e77e5610d87dfd344995a4d745f9b83  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc
! 7a8bb36e1ef042f56e3d4f82c623baa6  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/3.cc
! 49d19ec687ba39c5fa7251037f37913a  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/5.cc
! a9aed5e545704e31a44e17aab679599a  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc
! a52fc097c1bb0e4c8d71402f0558d042  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_env.cc
! 348ab124f58f9247fe01df7a10c4fcde  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc
! b1691823447875a5999b57a38eb9bdb8  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc
! b9133b9e73a1b8aec17cdf6936170b75  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/3.cc
! 95387d2afa307fab31b51c08203d3431  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/5.cc
! fec1933645e468d072700ecc3384d6b5  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc
! a52fc097c1bb0e4c8d71402f0558d042  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc
! 348ab124f58f9247fe01df7a10c4fcde  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc
! 903eaa0d95399f3b5d13b8adb14090e1  libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc
! a5d0676b53d18d618d108ae7ba0fb08c  libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiation.cc
! 0e68dadd4f6daaa8fe409d93d283c051  libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc
! 6f2315027a73448b34711da35d14c8c1  libstdc++-v3/testsuite/22_locale/time_put/put/char/1.cc
! bf75c023ac4a8da931cd610d1c513b90  libstdc++-v3/testsuite/22_locale/time_put/put/char/10.cc
! 902a7c8475c65145f036a5299a710f10  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_1.cc
! 8ea118464b3028724f7208b0703b5541  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_3.cc
! 5b960e4042b867a1791515b34fcd9c2f  libstdc++-v3/testsuite/22_locale/time_put/put/char/17038.cc
! 6ebb3347a61ded829f5b63768accbb45  libstdc++-v3/testsuite/22_locale/time_put/put/char/2.cc
! ac132eb9e2d333c9fe3e6eec244148f5  libstdc++-v3/testsuite/22_locale/time_put/put/char/3.cc
! 9540e3d55482f0f9f047617af6e90602  libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc
! 54e336a1fa99f652deb6778300b2e1c9  libstdc++-v3/testsuite/22_locale/time_put/put/char/5.cc
! 12e0cd29b54581d131b6d53789a66c1e  libstdc++-v3/testsuite/22_locale/time_put/put/char/6.cc
! a675c204dddb089aab149ade3651e11c  libstdc++-v3/testsuite/22_locale/time_put/put/char/7.cc
! 7830825661662c1cbf4862e74abcfd80  libstdc++-v3/testsuite/22_locale/time_put/put/char/8.cc
! ececfe72d5f0f3d3ca2bbb323e500785  libstdc++-v3/testsuite/22_locale/time_put/put/char/9.cc
! b1a38e184c20db94b9d1764f1ad83cbe  libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc
! de71812f3c532c11192feac62da08e3a  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_env.cc
! daa23a73f19f9193426f97e35af2d789  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc
! 2cbb48ab119fea4d319aed2fa2a5b485  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/1.cc
! cb8f67de436e2c8f4cad0eb29a1926cb  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/10.cc
! 106325833906e9cfecc5cf9216630045  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_1.cc
! ba31a33c197608d7c92dc088246d6897  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_2.cc
! 0ace3daab3ff310ca1822a1f1d14d6cb  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_3.cc
! a103303bd91b99a182fa40306aa28f65  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/17038.cc
! f1a50b98320c03896fd67c7390ef6aea  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/2.cc
! baaf33fc680283157a32cc77ef4f38db  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/3.cc
! 6c251bb2dce9f8e933a07f22cfb40cca  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc
! ba6ef0280ff3c8373a0d7675a959814a  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/5.cc
! 16ee805c162695ac1c53198d7f4891d4  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/6.cc
! 4fb503e3bcd9106ed2ab5d1fba26c8a8  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/7.cc
! 8aa0b8a4730448a57a83099120a1c410  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/8.cc
! e80877eee2ec130d4268292cc555bdb8  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/9.cc
! de71812f3c532c11192feac62da08e3a  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc
! 1cbd8e79dca9917912a729bee6bb39e9  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc
! 5f5978d9fa3668d451c8b752cee2d194  libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc
! 4901d3edb669fb0c9ebfede1aa534432  libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiation.cc
! 401ec21b7210484333256d2aacf07caa  libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc
! fd41d82a175006535bf3fbc41edfdc02  libstdc++-v3/testsuite/23_containers/array/capacity/constexpr_functions.cc
! 800d98c4ed801c2762ce2b63d1fc2b5d  libstdc++-v3/testsuite/23_containers/array/capacity/empty.cc
! 2de7c8abb11aece9cd75117399640545  libstdc++-v3/testsuite/23_containers/array/capacity/max_size.cc
! a99f5e5e0120fb575c308a5f7e16570a  libstdc++-v3/testsuite/23_containers/array/capacity/size.cc
! 0f1599760c1ba53517bb0408a4ce7d5a  libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc
! 70a7002a1d1ebe17d0e2fb5440609490  libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc
! 5c9463c3dc19638249b62d90647a8779  libstdc++-v3/testsuite/23_containers/array/comparison_operators/equal.cc
! 9671664b6dff8fd845f7b7d287a30149  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater.cc
! b2a148c1735f90d1b1b05abb9d403627  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater_or_equal.cc
! bf1f13e454399b74a668563a9dc57a88  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less.cc
! 486f78790b3e3d0391309f02a073d37a  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less_or_equal.cc
! d0fcc7be2b4a4571f502dd867fa6bf44  libstdc++-v3/testsuite/23_containers/array/comparison_operators/not_equal.cc
! b3513ed5ffa499cca3181c7fd14dcf43  libstdc++-v3/testsuite/23_containers/array/cons/53361.cc
! 5e014c6fdd9a0d99bf8bc80ff778fa48  libstdc++-v3/testsuite/23_containers/array/cons/aggregate_initialization.cc
! 88e72311920d13f12ac3a62be01a4097  libstdc++-v3/testsuite/23_containers/array/cons/deduction.cc
! 5e63e129d6ee14bd8735a98b99e071e9  libstdc++-v3/testsuite/23_containers/array/cons/deduction_neg.cc
! 93661bce5f3afebe28cac67fcb071b4f  libstdc++-v3/testsuite/23_containers/array/creation/1.cc
! bad60bb55072f7831f210bb5cf8c0cbc  libstdc++-v3/testsuite/23_containers/array/creation/2.cc
! 69458a6af51c0639515b7d48201e0bf7  libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc
! a49a7352cef5176add32c3a8e0e3e034  libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc
! a64169b1b151943e185fd56265c2ffd2  libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc
! 4f1c0d4c44335e0f816f16ebc94ec68e  libstdc++-v3/testsuite/23_containers/array/debug/constexpr_c++11.cc
! 046f908825a06fa3a9612a822d100ce8  libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc
! e961a772c2345a1e9d4adf110388f077  libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc
! 328012c5d1fe452f2845f743cb24d8ad  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
! 99074e355f9274bd42f4718088fd29cd  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
  d43444f5dac4465508d56c015a638fca  libstdc++-v3/testsuite/23_containers/array/element_access/110139.cc
! 44362191d1e5cc2a5579cd612b72ec67  libstdc++-v3/testsuite/23_containers/array/element_access/54388.cc
! 923695f1b694f744b50ef81e6267d5ee  libstdc++-v3/testsuite/23_containers/array/element_access/60497.cc
! 9edb341e6498055015364c403095d03a  libstdc++-v3/testsuite/23_containers/array/element_access/at_neg.cc
! 9a9f6190d3d423d560b693fb9e74d0a1  libstdc++-v3/testsuite/23_containers/array/element_access/at_out_of_range.cc
! 0f27a4cdce0fe6a9213b4672cc67fd15  libstdc++-v3/testsuite/23_containers/array/element_access/back.cc
! e323c63c2945664fa03337ccde9547ec  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc
! 6a5bfcabc2d13e986b4e479a3f3bb0a0  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_element_access.cc
! 727c76788a7cd56669ea26e2621186d5  libstdc++-v3/testsuite/23_containers/array/element_access/data.cc
! 764e14e63cd2f3795a03fcde77b81bd9  libstdc++-v3/testsuite/23_containers/array/element_access/front.cc
  6a70864d40e873666241bcb5b4a33a61  libstdc++-v3/testsuite/23_containers/array/iterators/begin_end.cc
! 83341caaf7a55d1e1056a9a19e7711b6  libstdc++-v3/testsuite/23_containers/array/iterators/end_is_one_past.cc
! 04bd3ce82e19fa7b7958c65788066e5e  libstdc++-v3/testsuite/23_containers/array/range_access.cc
! e95828ee76ea7574b1872b3b8111269c  libstdc++-v3/testsuite/23_containers/array/requirements/citerators.cc
! f8ef14ab52fdd03c00eda14528fd50e2  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc
! e5f6a72f51e320a3077d832084356984  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc
! 12385a055dd12964bc457605e425b431  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc
! 1e9a5095191a30ff3a09ed3aeced9bd0  libstdc++-v3/testsuite/23_containers/array/requirements/contiguous.cc
! 38274decbda0c3701431e0a1b6aadf1e  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/1.cc
! a92132be9b37f820ece2fbdd8ee631eb  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/2.cc
! 2ce242ca76b4d36825baf8507db5fb84  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/3.cc
! 320c90968d74c3ae04527459090b66d0  libstdc++-v3/testsuite/23_containers/array/requirements/fill.cc
! 25566b30fa009c5f521d0a97d3429bba  libstdc++-v3/testsuite/23_containers/array/requirements/member_swap.cc
! 8bbbf3d725ec61a5765be3b2e6407dd8  libstdc++-v3/testsuite/23_containers/array/requirements/non_default_constructible.cc
! fa5feeecd5a1e93a43a4f75e7c48e6d3  libstdc++-v3/testsuite/23_containers/array/requirements/typedefs.cc
! 27333051b7ece0af945f5023a83b100a  libstdc++-v3/testsuite/23_containers/array/requirements/zero_sized_arrays.cc
! 69f50de97bd22cddeb29b10ab109a9cb  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap.cc
! 224c2cc954758bb3965dbf0473bc567c  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc
! 4b97d0be761dbee50e7f38dde5af8148  libstdc++-v3/testsuite/23_containers/array/tuple_interface/constexpr_get.cc
! 095b8ab13bb91267bf7027c21bf6e5e8  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get.cc
! 862b2d489f4fc63f293220f4385ce214  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
! 748b2e25ee701285830d64467b8b9696  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element.cc
! dac8636aeb408623e399b1d48ef960dc  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc
! 8c8b39157c8c30e8bdedd46372c9fac4  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
! 94c4fc29f5f74e0a215a44ebe13eb5f5  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_size.cc
  ddf767067d4b89b063a9cdaf9a38233c  libstdc++-v3/testsuite/23_containers/deque/100516.cc
! 607f5dbc0ed7fe44faec37ab0fef488a  libstdc++-v3/testsuite/23_containers/deque/14340.cc
! 528ff3d5f5243904e8a23b4caf36da69  libstdc++-v3/testsuite/23_containers/deque/18604.cc
! 784a59651be81b6a85f1f3ada77ac6de  libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc
! 53235524d28b0ab86d88a5147db33309  libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc
! 36c9d46192ba67c0b0fe465b21fa5953  libstdc++-v3/testsuite/23_containers/deque/48101_neg.cc
! e5ceb6253387586d64cf49cd2fcfd2b1  libstdc++-v3/testsuite/23_containers/deque/58764.cc
! f9de4f0f9d049a4841692a1fb21f452f  libstdc++-v3/testsuite/23_containers/deque/70303.cc
! 094675efbcafd47eae95b66bc8f57381  libstdc++-v3/testsuite/23_containers/deque/92124.cc
! 280bd529ac1ce63da894e9e4140c3ada  libstdc++-v3/testsuite/23_containers/deque/allocator/copy.cc
! 5a9bd0a9b72cd7f54f3ded0656139580  libstdc++-v3/testsuite/23_containers/deque/allocator/copy_assign.cc
! 665cf3268b1829e3175240ee36a33764  libstdc++-v3/testsuite/23_containers/deque/allocator/default_init.cc
! 7b36780d69cb3245fdbd454c109022df  libstdc++-v3/testsuite/23_containers/deque/allocator/ext_ptr.cc
! 09e23041259f6c22fbf4c8ce69752b39  libstdc++-v3/testsuite/23_containers/deque/allocator/minimal.cc
! e16234336c02621e63fa1408650c5d91  libstdc++-v3/testsuite/23_containers/deque/allocator/move-2.cc
! 0195e637bcab4f50376d7fe1a8d0c4c8  libstdc++-v3/testsuite/23_containers/deque/allocator/move.cc
! e7c6e2d92b4327b5afa15135aaad5d8d  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign-2.cc
! 512e792c936c098a9633183eb44ca88c  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc
! f782fb4116058f647785d8b29f2539ec  libstdc++-v3/testsuite/23_containers/deque/allocator/noexcept.cc
! 078a1ea2af704b7757d78b74c3a87d83  libstdc++-v3/testsuite/23_containers/deque/allocator/swap.cc
! ac816260a2cc152c96e9706b2c59e049  libstdc++-v3/testsuite/23_containers/deque/capacity/29134-2.cc
! d3a01040bb6115fc4888c3228fb8e67b  libstdc++-v3/testsuite/23_containers/deque/capacity/29134.cc
! 1dfe984696e95c8e5525b39a173aaf98  libstdc++-v3/testsuite/23_containers/deque/capacity/max_size.cc
! 7a1ef44aa28d72ac4a0484b1471da872  libstdc++-v3/testsuite/23_containers/deque/capacity/moveable.cc
! 5d865e8e9670df620f3207cacb8e382a  libstdc++-v3/testsuite/23_containers/deque/capacity/resize_size.cc
! 2015ca5f2b433e420c6c226bcbb44ecd  libstdc++-v3/testsuite/23_containers/deque/capacity/shrink_to_fit.cc
! 98443cca50d6dd68b123228469986c94  libstdc++-v3/testsuite/23_containers/deque/check_construct_destroy.cc
! 3276a84edbc725a929f72e1d73f73043  libstdc++-v3/testsuite/23_containers/deque/cons/1.cc
! f07fc9774840dc8189364e981e91fd0a  libstdc++-v3/testsuite/23_containers/deque/cons/2.cc
! 904ca740520e9603bece542347d294da  libstdc++-v3/testsuite/23_containers/deque/cons/55977.cc
! 9968d4f5d127136e5a1580f2c523562c  libstdc++-v3/testsuite/23_containers/deque/cons/assign/1.cc
! ce10c005a27b820e7e5ed7696e393b06  libstdc++-v3/testsuite/23_containers/deque/cons/clear_allocator.cc
! bdc57dd24a317881dba08bd1520e86b8  libstdc++-v3/testsuite/23_containers/deque/cons/cons_size.cc
! 8c382a9e74d74349db4c3e4123224250  libstdc++-v3/testsuite/23_containers/deque/cons/deduction.cc
! 66404cedef7dc507ac3ec77e4b3fee95  libstdc++-v3/testsuite/23_containers/deque/cons/moveable.cc
! b5571f7ed70ec78a8be583d546500444  libstdc++-v3/testsuite/23_containers/deque/cons/moveable2.cc
! 4ba232bf7ba7a5e36beea65e671c2601  libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc
! bdebacd09cc47a10ab330ed2dd064a5c  libstdc++-v3/testsuite/23_containers/deque/debug/90102.cc
! c8ce9070564ff18e96594fc1d56f9385  libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
! 9569c8f782a17a68e443604e314ee8f2  libstdc++-v3/testsuite/23_containers/deque/debug/assign1_neg.cc
! de78ef07deb33b4e9bce34f5c06b7348  libstdc++-v3/testsuite/23_containers/deque/debug/assign2_neg.cc
! 26d6996a9ad2863ce6ff3c9d66de15e3  libstdc++-v3/testsuite/23_containers/deque/debug/assign3_neg.cc
! da6726d92e12c3468983aa8aff8ce77e  libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
! 9c487185eb0e8702ea6f5550ea83d8a6  libstdc++-v3/testsuite/23_containers/deque/debug/construct1_neg.cc
! 0001519ee7454aa8144e2e2c0ef19ea8  libstdc++-v3/testsuite/23_containers/deque/debug/construct2_neg.cc
! 3272ea5ff2cfcf25334f2aad93843026  libstdc++-v3/testsuite/23_containers/deque/debug/construct3_neg.cc
! af9c09dd08aceeb6e42d00f56b86e760  libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
! ea3a9dc235f0acd9e275b5b959b07af3  libstdc++-v3/testsuite/23_containers/deque/debug/insert1_neg.cc
! 9d0b6c2a97f82bfd3e58944a2dc5e0e7  libstdc++-v3/testsuite/23_containers/deque/debug/insert2_neg.cc
! 8a289fd9e65693e4ff3c2b39f68b2a1d  libstdc++-v3/testsuite/23_containers/deque/debug/insert3_neg.cc
! 363937044acc14e0b27a491a96c3c81a  libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
! 15f87969686f57c66c12a9125da6d0d5  libstdc++-v3/testsuite/23_containers/deque/debug/insert5_neg.cc
! 4b088b59e092229749852356e28f3a7d  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc
! df98237bf133fe9d208a2c62efbd06dc  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc
! 0a80a1a6838cf8c7353ca7d2529a3dc9  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc
! 82352fb6719a7b14b8657bfcc16ff530  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc
! c8948b1a3f845509aea2f0c5829e5f44  libstdc++-v3/testsuite/23_containers/deque/debug/iterator1_neg.cc
! f12eb7c1ffc2cdfe6c1fa47d5f31b477  libstdc++-v3/testsuite/23_containers/deque/debug/iterator2_neg.cc
! e8f40717cf7f07014de3b64af375dd5c  libstdc++-v3/testsuite/23_containers/deque/debug/shrink_to_fit.cc
! e66b484200a9bdecd71e4541bed6b93e  libstdc++-v3/testsuite/23_containers/deque/erasure.cc
! 21665584bf5430f125db35d91bb8b5e6  libstdc++-v3/testsuite/23_containers/deque/init-list.cc
! 3b8b76830e28c2e8787678503c757a5d  libstdc++-v3/testsuite/23_containers/deque/modifiers/assign/1.cc
  5b30438ec704fa2989c2780d4b7988b0  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/1.cc
! cb5f4a07ac39deee08d7f147b104a300  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc
! f4824b00e1312af5ab44145ea82783d5  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc
! 54cef924a6d78a5bfc6986a5ac342f47  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/1.cc
! 816fc5f4d0310622016dc565b136953c  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/2.cc
! dcd4a7b6693f87bdac13ef4262b82a2f  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/3.cc
! c6c0dc3e44ffa40cdc219bded3accc96  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/50529.cc
! 29ef987dee2c9746931a908206197655  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/54577.cc
! db640db25c8533c189ce5fae5802edc6  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/moveable.cc
! 2443fab002ea381df0a112392ac37be8  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc
! 81d0536967077833f0df8d222b39c532  libstdc++-v3/testsuite/23_containers/deque/modifiers/moveable.cc
! 79f5f829ea12055e9218d50ebefb35ed  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_back/49836.cc
! 3d5b8fd1348e0271ee9bd83191f1552f  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_front/49836.cc
! 7f4c31680f23a34e312682e60d73bda5  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/1.cc
! 76acfaddce80c3208c4d0fb4b70e50e9  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/2.cc
! 207add28548d59bd1d0936d6478d6a8d  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/3.cc
! 373b0948067fc6d577927565b6bd645f  libstdc++-v3/testsuite/23_containers/deque/operators/1.cc
! 980c852407cd1fc5763a11c1c1268363  libstdc++-v3/testsuite/23_containers/deque/operators/2.cc
! 46c48ab304b85a978ba705330fd6ae00  libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc
! 315469d9a9986d6e14fbfcb3e7ae742f  libstdc++-v3/testsuite/23_containers/deque/range_access.cc
! 85cdf7edc6f8f9a9acc86393254697fb  libstdc++-v3/testsuite/23_containers/deque/requirements/citerators.cc
! 6db3e3cd6bdd63630052708dab02b82c  libstdc++-v3/testsuite/23_containers/deque/requirements/do_the_right_thing.cc
! 46ab32c8109f99775e07d0c7c76f7b23  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
! c5abfa77e54cb7f3c28f94b91b026c49  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor.cc
! ac27e0058b77263ea2661eeb73d3b2d6  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
! 870540066c4c9cad3120d1f3317c4745  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
! fe3a4242370aaf6153df7331ccf30749  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc
! 4691857119c9d7bd267602b30133b7f0  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/basic.cc
! be475cd312ec7bff18d38ba4e6fec88e  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/generation_prohibited.cc
! a7622a3e79946a57c4d9a34ba4a8a5e7  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/propagation_consistent.cc
! a0acf28c44a5876800cd8e56d6833a52  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc
! d3d593a9c6c6daea377feb09cdeccc2d  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc
! a3479c37acd8d1ff38f1e14a99a22c99  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc
! 83cf28ed9714b223629d9ffdb8fb87c8  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/4.cc
! 49802e02d484835bcd9757b7f7d15071  libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc
! 00298cb92e769db47ab1e418fba35038  libstdc++-v3/testsuite/23_containers/deque/requirements/typedefs.cc
! 80e76981b77d16541f6418476b592392  libstdc++-v3/testsuite/23_containers/deque/types/1.cc
! 9508269077aafafdb52f352ae0821630  libstdc++-v3/testsuite/23_containers/deque/types/92267.cc
! 0093bf9be3e74f61c48abff9640b436e  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
! 5ed7a664eb055f31dd95d34d4a1e242e  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
! 5697e41759f598ba83889cf908e9536c  libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
! dc2eab38fc516920cb4fa4cb1171a2fb  libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
! ba6785936089ef8676ad139fc54f0f49  libstdc++-v3/testsuite/23_containers/forward_list/48101_neg.cc
! 490d6d30f6ce0a5ba48b6b87aa770460  libstdc++-v3/testsuite/23_containers/forward_list/92124.cc
! f39deed302aba8aedf27e180dcc491b0  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc
! 7ae8d446313e99bdf132f8fcbdfa123f  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy_assign.cc
! 7ea12c48542d88d929e59186c1cb07ef  libstdc++-v3/testsuite/23_containers/forward_list/allocator/default_init.cc
! 4f0c63964f9af95f810acf4d118cdb50  libstdc++-v3/testsuite/23_containers/forward_list/allocator/ext_ptr.cc
! e61efcd2a4cb3c5831cf38d033fbd4b4  libstdc++-v3/testsuite/23_containers/forward_list/allocator/minimal.cc
! 4b50af5ff1b47aae3d6c8a546092aa5c  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move.cc
! a7b947ca6739f1b1b8059a3cec9a69b0  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc
! 28aac0a44f4dcd00203fcd53f58f69cd  libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc
! 6691a9ec9c9171347216ac8ee5a567d5  libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc
! c85ad4c5adf2f00d7270b96bfe4b1614  libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc
! 9e9c3ffd2eabcae37fe65846c8cfea66  libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc
! 435b5632a72f30d55e563b94b71e3a76  libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc
! 0a2a6c5a519bd61d6b6f1f53d138fad5  libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc
! f5ad931807d605d6f0de04167af47ace  libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc
! bf24128ba81105ca2ace580cb0e3002b  libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc
! 077a38cdb117a05d2da12d0e334c7202  libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc
! 60f532b8b3ac34a98ba76334729d27c8  libstdc++-v3/testsuite/23_containers/forward_list/cons/12.cc
! 3e90a46322142e2fa8b2b9ffb2380621  libstdc++-v3/testsuite/23_containers/forward_list/cons/13.cc
! 0af7d4c5684f67abb776cad337fb9a16  libstdc++-v3/testsuite/23_containers/forward_list/cons/14.cc
! d3770921f709416b0e06ba5a91b63048  libstdc++-v3/testsuite/23_containers/forward_list/cons/2.cc
! 4bdabc44bbd0bbda5b6b39d9046431e0  libstdc++-v3/testsuite/23_containers/forward_list/cons/3.cc
! e24678fb1ce9c5e3f661c5e02a4dee7a  libstdc++-v3/testsuite/23_containers/forward_list/cons/4.cc
! ee21879e452b6092a72a23f33877ac9a  libstdc++-v3/testsuite/23_containers/forward_list/cons/5.cc
! 8201a7e62e21b12100d9dedd7bb83169  libstdc++-v3/testsuite/23_containers/forward_list/cons/6.cc
! e4318d82344d5595c21650d6b5bb5b69  libstdc++-v3/testsuite/23_containers/forward_list/cons/7.cc
! 2128247dcf138b0d77daef58e9690c13  libstdc++-v3/testsuite/23_containers/forward_list/cons/8.cc
! f69b741965f489d7b632effd29098a29  libstdc++-v3/testsuite/23_containers/forward_list/cons/87809.cc
! eebc957682120e0c8e5401b971936fcd  libstdc++-v3/testsuite/23_containers/forward_list/cons/9.cc
! 19d17e1e2b28dda0739144db0598ec1d  libstdc++-v3/testsuite/23_containers/forward_list/cons/cons_size.cc
! 3d4f53c1be91268a56ce84a70f6b6540  libstdc++-v3/testsuite/23_containers/forward_list/cons/deduction.cc
! 3d61cb35a8d019ab648766ada4869e39  libstdc++-v3/testsuite/23_containers/forward_list/cons/moveable.cc
! 399b5600123961c63e15eb1f6d154445  libstdc++-v3/testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc
! 942ef297790a4d06637996260eaf0917  libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc
! 4a60513459c9f462907c16afcf6f27d5  libstdc++-v3/testsuite/23_containers/forward_list/debug/60499.cc
! 58fcba952f5e1a8a08038261d8bc34ce  libstdc++-v3/testsuite/23_containers/forward_list/debug/90102.cc
! 73f8bc69d487e7a01695e891afc3ce86  libstdc++-v3/testsuite/23_containers/forward_list/debug/clear.cc
! 5a541adbdc00807051952fe66e234d90  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct1_neg.cc
! 61ef56d08f9b83935ea8469da9257fe3  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct2_neg.cc
! 22082dde8c53d4e265a80b11b6d0e525  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct3_neg.cc
! d2566526cc87f9000f34136831a9858f  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc
! 5bd23dd4d843d5c626106b9610acce58  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after1_neg.cc
! 646a42fc945a0566d99696a95fc1e081  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after2_neg.cc
! 7d2e79516593491d06fe38f99b7e6fec  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after3_neg.cc
! c1b495056722d0af41402a7259302e20  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after4_neg.cc
! 2f88b2630ec9a034ee95ab90c6d2a7db  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after5_neg.cc
! 25e7dd400516e90ac7e44f4cf262d940  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after6_neg.cc
! a3a68a2eb831169e5ee55410aed0ffa3  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after7_neg.cc
! 0864e746b724afe77d09e2fd0369df63  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after8_neg.cc
! ceaee1a227e05f0f105d3e773ded3cee  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after9_neg.cc
! 100966255f86c0bb0209bf75cf6300d9  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after1_neg.cc
! 30f1bf5b0c3a9a28db61485320d9f24b  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after2_neg.cc
! 8e2edd2b32a2b8684967abc1e6718142  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after3_neg.cc
! 41408b1790a122ebb261a99fa71c1312  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after4_neg.cc
! bd30126cff0eb294b3d973841a1a63e7  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator1_neg.cc
! 2645f917e59e3a5ea8d77086adfcd855  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator2_neg.cc
! 2f509f3b0a9e9f6a5bc6f0819655577d  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator3_neg.cc
! 0d168b36cba572532143197478caabc4  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc
! 57af252954290d2ac089ba2a364d0ae4  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_constructor.cc
! db4cd2b8c8cb54cd491bf1daac52d710  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc
! 86123882ca4733a2a231b6d27f9982be  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc
! 334134731ecb94853c0fbd9d53ce5e47  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after1_neg.cc
! 982a4f14cee8d0d7ffae7dc290a40e43  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after2_neg.cc
! 334604225e31c7323b7dfca468069610  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after3_neg.cc
! fc1d3c50c6c0585ebedb36d995a646bd  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after4_neg.cc
! c1c67b7f0cdd8a4e08ccb5f1c47684d4  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after5_neg.cc
! 4872030e67caf4c33440c2864041e24e  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after6_neg.cc
! 5213fe2cb3990f2cba5e56a0bb714c88  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after7_neg.cc
! 9f32ca6f0a5bc2f373d834b141e33c11  libstdc++-v3/testsuite/23_containers/forward_list/debug/swap.cc
! fe049265fc2753bafa43c99f25313580  libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc
! 3d729b39a39f38eeb3bb2e0215082778  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/1.cc
! 53165a1f8a0bc90aa9a98a98f6c3fce1  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/2.cc
! 921bfaa93cd79b819d72430ef8eaf8ad  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/3.cc
! 4801ba53c46f4f392e9b499134be960f  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/4.cc
! 5255d9b391411ca267c5193891c77f48  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/5.cc
! 23dea320af3fdf2af3a2565d4ead8b3c  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc
! ab33e69024029139044b065ae6682b35  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc
! a3cdd807fddd39b762dded5b7422d926  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/addressof.cc
! cf2b5335aec626dbee24c6cf6cbdeef8  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc
! f87795e0e07b9a8739b0fb6f48ff373d  libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc
! a56db0f99308864fbbe895972c9fdc66  libstdc++-v3/testsuite/23_containers/forward_list/operations/2.cc
! a353879731e38ad9c63f5a7e1a0c5f1a  libstdc++-v3/testsuite/23_containers/forward_list/operations/3.cc
! ec617c800bfe0817e754a6ed51f72b9c  libstdc++-v3/testsuite/23_containers/forward_list/operations/4.cc
! 7f73b62ca79bd591f55bc16ba639d2b3  libstdc++-v3/testsuite/23_containers/forward_list/operations/5.cc
! 7997a41a7c481582b28e1174cbd76393  libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc
! 34ab90c0d3a4c60eeb0233c1c2fd92f8  libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc
! bdec7279a93a43b875e77fbafb604082  libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc
! 508d7d8173c2a90f9a7d2dfd0beb8ae6  libstdc++-v3/testsuite/23_containers/forward_list/operations/91620.cc
  7a189e8b9d2375d727e2175b911806df  libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc
! d47737b58beb3de6a18c216f4c036d4c  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
! 1a5b9fc8c515fb5f9b17f2b10aee7633  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc
! 6f8c51dd9346c366acfb5d5488ff664d  libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
! d031f2f5d10ca8175148e49b34f493b6  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs.cc
! da9e31b15876bf020ef12a50a1b51f4a  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs_debug.cc
! 7b8b1a17e5f4fb5b82dc21751faf6a4d  libstdc++-v3/testsuite/23_containers/forward_list/range_access.cc
! 0f380ee68dc472346863fd1c7c3310fa  libstdc++-v3/testsuite/23_containers/forward_list/requirements/citerators.cc
! 35bb463be7c68c3029ad946a9721262b  libstdc++-v3/testsuite/23_containers/forward_list/requirements/do_the_right_thing.cc
! f7dcb0a28d8a1802483131247825b716  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc
! 44a5b5a1eeb9f401972b9fe5f239bdd0  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor.cc
! 6a8e4527cfe82c12b023f4bbe26f3227  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc
! e8119ca4720547f3f7e4bbea9f0ad9db  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc
! 261f3728e2678d04c4382838940ca39c  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc
! c972355e8bb2310cf8542ed5bec1bad5  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/basic.cc
! 799f1aa952f7a3017a507396c4bbb2c1  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/generation_prohibited.cc
! 8dc220e79062da221b6ca9c661280423  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/propagation_consistent.cc
! 17844de18403707695c74af44f07c7b2  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/1.cc
! 5686298ae244c22a3d377d2bd9299534  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc
! 73ba411f0ff20b15d5c1a46699b212d1  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/4.cc
! 61100d74ed5f417d3a87f2fb229ef14d  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/5.cc
! f09c7e0a68a358b5060b9c3bb04b4e04  libstdc++-v3/testsuite/23_containers/forward_list/requirements/typedefs.cc
! 75f925a5b892dd9a5e0b9abdee56acd7  libstdc++-v3/testsuite/23_containers/forward_list/types/1.cc
! cb4578045f72628c72bd85ed48b5844b  libstdc++-v3/testsuite/23_containers/headers/array/std_c++0x_neg.cc
! accc7da2a8ac10a020d8f17b61b53080  libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc
! d6533a14af093105e91e6874c002696f  libstdc++-v3/testsuite/23_containers/headers/forward_list/synopsis.cc
! 7713b1b13ac0124141a88f623bffc45d  libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc
! 065b652f0d078a5449d437280d7ca0d5  libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc
! 0149986e0c64bac60e79292ac09245b5  libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc
! a7e8c4e5eb958b3b76cedd2224cd3792  libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc
! d572203ec90f763e7862cd7f1f0d4ae8  libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc
! f69ccb93d7c47aac6c6a083dc40a9ed3  libstdc++-v3/testsuite/23_containers/headers/tuple/std_c++0x_neg.cc
! 0bd8ea266c43f5e1504761b5637fa893  libstdc++-v3/testsuite/23_containers/headers/tuple/types_std_c++0x.cc
! a52967352ecc029d4dcfcdee1570eed7  libstdc++-v3/testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc
! 6d009e5910cd1b15da976322548dd175  libstdc++-v3/testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc
! baae7d2fa10fd30f9ba17649e4fcc5c0  libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc
! 1a7b8563cf236ba3f60b4f3311ffe3ca  libstdc++-v3/testsuite/23_containers/list/14340.cc
! 42fe7bab72ae7e7f2e4af39ff0c933c2  libstdc++-v3/testsuite/23_containers/list/18604.cc
! 4ca30b250553f5d91121b91acad10827  libstdc++-v3/testsuite/23_containers/list/23781_neg.cc
! 6ced667cf39efa2e7376a208b95f85ec  libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc
! 6c30a2b5ac634983353c49b682823fc2  libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc
! bcd1a2187dab09177d38895c25339bbc  libstdc++-v3/testsuite/23_containers/list/48101_neg.cc
! 5428c13d1024334c32ab1a8d485b1cf9  libstdc++-v3/testsuite/23_containers/list/58764.cc
! 99ad720560efb873651afa95ec7cb4ff  libstdc++-v3/testsuite/23_containers/list/61347.cc
! a1bb0f6d66c18fb6fc7fe20d35a1e9da  libstdc++-v3/testsuite/23_containers/list/68222_neg.cc
! e1bb03a97abb7980d628b161d1aab500  libstdc++-v3/testsuite/23_containers/list/92124.cc
! 999623cf15eabc1ff1a094576f2086a8  libstdc++-v3/testsuite/23_containers/list/allocator/copy.cc
! 3462507e96067497f8bf9539e82a52d3  libstdc++-v3/testsuite/23_containers/list/allocator/copy_assign.cc
! aa1be5ac6a4c87226f5cce0eb6fecabb  libstdc++-v3/testsuite/23_containers/list/allocator/default_init.cc
! 596c07b0c1e211a757ab8ace9c71bccc  libstdc++-v3/testsuite/23_containers/list/allocator/minimal.cc
! 6f0d2abb7cf92dc1efc416fdc3c33b09  libstdc++-v3/testsuite/23_containers/list/allocator/move.cc
! c4fa25aa71310ff5d69075f14ad2eb3a  libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc
! 7d36af9d3cf3c85c42e862c661e403b7  libstdc++-v3/testsuite/23_containers/list/allocator/noexcept.cc
! 1afa70f8781eee72efff451914d6a076  libstdc++-v3/testsuite/23_containers/list/allocator/swap.cc
! 271aced412d4a2f5672bf4c4ceb4655a  libstdc++-v3/testsuite/23_containers/list/capacity/1.cc
! ddc15f2573e5626bdb41c732ec494040  libstdc++-v3/testsuite/23_containers/list/capacity/1.h
! 9895f5bd5aabfa11dbf3cea4556c4290  libstdc++-v3/testsuite/23_containers/list/capacity/29134.cc
! 7aaf4711bb90ef52562f5b213e01ec28  libstdc++-v3/testsuite/23_containers/list/capacity/resize_size.cc
! 880df971739211acd78c9d0941b26076  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.cc
! 6b86f5b56f6b3c0af27be428212ad545  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.h
! e7aa66e68a493b8e490dfd067a0d6770  libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc
! a0cd3658afdfaa6a9152db033497ae4f  libstdc++-v3/testsuite/23_containers/list/cons/1.cc
! 5b8173643821051929b414e105ab1b18  libstdc++-v3/testsuite/23_containers/list/cons/1.h
! fcde62220d43d3c6dff9bf244c1435ac  libstdc++-v3/testsuite/23_containers/list/cons/2.cc
! 1ae6ef02bd9825bdda55f9fac54bd80b  libstdc++-v3/testsuite/23_containers/list/cons/2.h
! 72721718398d3d4d581d2d0288588d0f  libstdc++-v3/testsuite/23_containers/list/cons/3.cc
! 9fde010ee15ac468434a31fc017d7e0f  libstdc++-v3/testsuite/23_containers/list/cons/3.h
! 5f8488b4839adb36497b3507d7251e3f  libstdc++-v3/testsuite/23_containers/list/cons/4.cc
! 41d901d8285fb5f51180ecbb32977885  libstdc++-v3/testsuite/23_containers/list/cons/4.h
! 44e5a38a430a90e4e4c71dca348c7893  libstdc++-v3/testsuite/23_containers/list/cons/5.cc
! 941f89030518a0e2d7256ccc5452e300  libstdc++-v3/testsuite/23_containers/list/cons/5.h
! b0564fb6f0f1394a2834f2db154a2f8d  libstdc++-v3/testsuite/23_containers/list/cons/55979.cc
! 64df118c89224e3d2d1dc098d5305ee3  libstdc++-v3/testsuite/23_containers/list/cons/6.cc
! 9cb66cbee87426fc85cf1498906bed32  libstdc++-v3/testsuite/23_containers/list/cons/6.h
! 162f3ca86839813c2e9551ea23ec7f76  libstdc++-v3/testsuite/23_containers/list/cons/7.cc
! be26cb3b18808eb84a9282cb447e7a10  libstdc++-v3/testsuite/23_containers/list/cons/7.h
! 5093baa2efcdfde8be14a8a254eea703  libstdc++-v3/testsuite/23_containers/list/cons/8.cc
! bce9cf88227d535875834335bf77a4c6  libstdc++-v3/testsuite/23_containers/list/cons/8.h
! 3509d382b54e87fbbf4332552c92cb7d  libstdc++-v3/testsuite/23_containers/list/cons/87809.cc
! c151f7a3626b59f53d9e902ea07c4110  libstdc++-v3/testsuite/23_containers/list/cons/9.cc
! b172d2242b5070636413acbfb37737ba  libstdc++-v3/testsuite/23_containers/list/cons/9.h
! b3a928185f57191abbcd3f01ad72d555  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.cc
! fc5616fcf5ddb03648c70241086a536f  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.h
! 187cdea62ba6bd2268ddf8ba0f290a5e  libstdc++-v3/testsuite/23_containers/list/cons/cons_size.cc
! 6507676e2a8b49119f504635e69b85db  libstdc++-v3/testsuite/23_containers/list/cons/deduction.cc
! 352b8ee867497518a0fdd5f44af6a504  libstdc++-v3/testsuite/23_containers/list/cons/moveable.cc
! 30992b4d8f4b142cb0bd47850e963b19  libstdc++-v3/testsuite/23_containers/list/cons/moveable.h
! 29065ac565aa9e96c0a349954c8a565b  libstdc++-v3/testsuite/23_containers/list/cons/noexcept_move_construct.cc
! 150df1cc094914055b5fc7fa589a5d00  libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc
! 06f5620fcb0bd4c918639dcb1e7091e8  libstdc++-v3/testsuite/23_containers/list/debug/90102.cc
! 6022cbde1554deb26b25fd434b220d5a  libstdc++-v3/testsuite/23_containers/list/debug/assign1_neg.cc
! a635a78f10c4dae0088ccfdcab7509f1  libstdc++-v3/testsuite/23_containers/list/debug/assign2_neg.cc
! 6be5891c461382dc538cec3fe0b1ecb2  libstdc++-v3/testsuite/23_containers/list/debug/assign3_neg.cc
! 164e08339fb0e3eda8e414a4ee16c7de  libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
! 8d7fe21a3a2923abfe0c1c1c58326973  libstdc++-v3/testsuite/23_containers/list/debug/construct1_neg.cc
! 92dcfb01d892afa78241d7a0ac010a4d  libstdc++-v3/testsuite/23_containers/list/debug/construct2_neg.cc
! 299bb6b2401c0a131af9c7aac77cd226  libstdc++-v3/testsuite/23_containers/list/debug/construct3_neg.cc
! 52cc2b7b1a40466373aa6199fa723ad6  libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
! cd52d7dbd25f30c6404879e62328926f  libstdc++-v3/testsuite/23_containers/list/debug/insert1_neg.cc
! e8398a78ffd6d5026600b64dd2737cf0  libstdc++-v3/testsuite/23_containers/list/debug/insert2_neg.cc
! 102eeda1c28d658e28e129f143eb900f  libstdc++-v3/testsuite/23_containers/list/debug/insert3_neg.cc
! 6566c2413fd644e191b226360bfaa322  libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
! 455d82eb2284655d48dfb0e98f4a1ca5  libstdc++-v3/testsuite/23_containers/list/debug/insert5_neg.cc
! d7718e3fce4457460dfbe2d8534dac84  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc
! 6cec8f507b3cef9c3309367d2cd146f5  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc
! 9c839bb0680313331b28a0c0c4b6c729  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc
! 46f0395f612d951d6c25a76797893d3d  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc
! efa0bb3c4d9dd9f43e5ce456fb9f679b  libstdc++-v3/testsuite/23_containers/list/erasure.cc
! ee6de5b462e30789f10533fc8263f580  libstdc++-v3/testsuite/23_containers/list/init-list.cc
! 013d2ce9cc9ebe10a5990775e72712b4  libstdc++-v3/testsuite/23_containers/list/init-list.h
! 5f3c0b34393300a8039b6ef101b0e33a  libstdc++-v3/testsuite/23_containers/list/modifiers/1.cc
! 337bafd97fea59bc597aef759482fb53  libstdc++-v3/testsuite/23_containers/list/modifiers/1.h
! 7dfd3be4b8fc25ab059c47ee75191ea0  libstdc++-v3/testsuite/23_containers/list/modifiers/1_c++0x.cc
! cb93fdbb78149d35182c57d51794cd40  libstdc++-v3/testsuite/23_containers/list/modifiers/2.cc
! f0e2be1b278865bf1eabc5151fc79c1a  libstdc++-v3/testsuite/23_containers/list/modifiers/2.h
! b3047ce91e124271f04ae40573a72864  libstdc++-v3/testsuite/23_containers/list/modifiers/3.cc
! b0bd4e31729acec36826038c3e7824f1  libstdc++-v3/testsuite/23_containers/list/modifiers/3.h
! ff0c24b8100eb6079c411117db29193b  libstdc++-v3/testsuite/23_containers/list/modifiers/addressof.cc
! ea58990a3d5bbe9506a0c5b957be40d8  libstdc++-v3/testsuite/23_containers/list/modifiers/assign/1.cc
  c25b0a9dc317b9f58288d8f92299007f  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/1.cc
! 71eab78062eef1631ff242072196b39c  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc
! f833c3fe4ec916128c95d65cb86aeea6  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc
! cf6bcd5085abe35b861a09525484d15e  libstdc++-v3/testsuite/23_containers/list/modifiers/erase/54577.cc
! bfd5da75d6c497c434503c239484e94d  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
! f8120b2ae8a0d104347203f37c76b7d4  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.h
! 01a6f67d8e25460a31d5b1e4315555a6  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc
! ac958ace3af79f16988463584b30835c  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.cc
! 5e6f8e735180a946771ed25cc83fbd32  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.h
! 99a65f432b523c72eb9536a4552cc558  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.cc
! 594b34a97a6c769957aaf3aceae59a0f  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.h
! cf008b921a9a1e9d1fe254eedef318fb  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.cc
! fc8d428e00c438b25a1a9766d057f91a  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.h
! b2a9b79955942ffc18f782d983a3efd1  libstdc++-v3/testsuite/23_containers/list/operations/1.cc
! 577065496201fda54ee8200487148650  libstdc++-v3/testsuite/23_containers/list/operations/1.h
! 07a7b18ef71fc13415c70d0a1f1095dd  libstdc++-v3/testsuite/23_containers/list/operations/2.cc
! 12ab627dd14a3f6b40f26ef5e35ffb75  libstdc++-v3/testsuite/23_containers/list/operations/2.h
! f1cba1de1b399f401c922437e5e1ac62  libstdc++-v3/testsuite/23_containers/list/operations/2_c++0x.cc
! 79c9de6b4e4e73f081e48cf79d59c493  libstdc++-v3/testsuite/23_containers/list/operations/3.cc
! 660c25bbfd436365d0ad3ba9c6d65330  libstdc++-v3/testsuite/23_containers/list/operations/3.h
! 4013154f5a00283f09426122d54642fd  libstdc++-v3/testsuite/23_containers/list/operations/35969.cc
! 687f7f90378444bd55bee3a5605cc7a9  libstdc++-v3/testsuite/23_containers/list/operations/3_c++0x.cc
! 6f5d266a460ff2227b8a2acbb77309d3  libstdc++-v3/testsuite/23_containers/list/operations/4.cc
! 5a5271062bf51b911e00bcf197877ef1  libstdc++-v3/testsuite/23_containers/list/operations/4.h
! ab8a85f3f9d0b056361140fce382c7a2  libstdc++-v3/testsuite/23_containers/list/operations/42352.cc
  e9b09b08be9f79aee16cdfe50434376c  libstdc++-v3/testsuite/23_containers/list/operations/66742.cc
! 5d0b2fc6e6e3729e9c788bfcee057a87  libstdc++-v3/testsuite/23_containers/list/operations/78389.cc
! 46a618a62db2eb4dfbcc8a3237a53ebd  libstdc++-v3/testsuite/23_containers/list/operations/80034.cc
! f60ed9d0260a0c8c149a0bf5d428c4af  libstdc++-v3/testsuite/23_containers/list/operations/91620.cc
! 8a3b907969502b17a3ef98ac43ace5d6  libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc
! e250c2fdb371ced7777a68a02b96bcb0  libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc
! f28e916e27a23a5267dbd7a60c269859  libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc
! 3fb18d25d7da3592b9e1de95d7853efa  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs.cc
! 73c0980af473f936a2fda6a75b0afe21  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs_debug.cc
! dcfc50ddb8391e001dc7cf867da01ca4  libstdc++-v3/testsuite/23_containers/list/pthread1.cc
! 8b4f86f87d7eafb82a2d0fc36dfe58ad  libstdc++-v3/testsuite/23_containers/list/pthread5.cc
! 49a97b98fc3578ac110e0e2625216810  libstdc++-v3/testsuite/23_containers/list/range_access.cc
! 7b89850cf7ac76e4696c11fc60872436  libstdc++-v3/testsuite/23_containers/list/requirements/citerators.cc
! edad86694b9808b0339f658243ceb321  libstdc++-v3/testsuite/23_containers/list/requirements/do_the_right_thing.cc
! aae5617f259da10ae6b04c29ad6e68d8  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
! 6f7074a0f0d3607b2160a6b2be8cb398  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor.cc
! 13012f5bd30c50180bba988d1f8f5005  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
! 366bd7925c4bfc9d32aa04901df33a0b  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
! 0cd59b25f747580f819d39e41f50c036  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
! da649b02c69844695ef671ec49b0f7b7  libstdc++-v3/testsuite/23_containers/list/requirements/exception/basic.cc
! d218d1f94462b8facbff153c91ef7843  libstdc++-v3/testsuite/23_containers/list/requirements/exception/generation_prohibited.cc
! fe0d313f4d38437494e2983909e19a45  libstdc++-v3/testsuite/23_containers/list/requirements/exception/propagation_consistent.cc
! 7bcbf46e786d8acce21f5da379b3d472  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc
! 5a7b35fe31b2056bf9e51f1df2e3b207  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc
! 7cc6548df881f0b18283025b72535351  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc
! 2b104b195b5b5bcb453549f84671dde4  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/4.cc
! cf98fd54a751452a1dd01a1dfb16e052  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/5.cc
! 14faf3382de5d52fca459c12dbb097a4  libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc
! 9ed1f65c2a6bf8168cf32666ea29fe61  libstdc++-v3/testsuite/23_containers/list/requirements/typedefs.cc
! 36d44d9e75118d75713bef62c570c8fe  libstdc++-v3/testsuite/23_containers/list/types/1.cc
! fc5c97ae597f7605eea88b3a0b518e4d  libstdc++-v3/testsuite/23_containers/map/14340.cc
! 107bd8d22f83efdea15a727f5ed1428e  libstdc++-v3/testsuite/23_containers/map/18604.cc
! df4c567e18d284001696e8ee96d60993  libstdc++-v3/testsuite/23_containers/map/23781_neg.cc
! 30d89497ebfd6d4aecd3be9c56069eb8  libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc
! 989022136aaa79ecbf9e35e97444ced4  libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc
! f81dfb2a78a92da02240cc105c077266  libstdc++-v3/testsuite/23_containers/map/48101_neg.cc
! 0280628618f6be1645b99fd01d8023c4  libstdc++-v3/testsuite/23_containers/map/56613.cc
! b216760b3a10b3c500e5cbafb2ee7bf6  libstdc++-v3/testsuite/23_containers/map/58764.cc
! 24dc2e5f8feff7f60e5f450dfff7eb9f  libstdc++-v3/testsuite/23_containers/map/59872.cc
! 8087d404df1315ec2e9493a69b60f0e1  libstdc++-v3/testsuite/23_containers/map/77334.cc
! 4e2efd9253b5ba200eb22fe81d28164f  libstdc++-v3/testsuite/23_containers/map/92124.cc
! cbd106988c840a71bfc064f152f1a057  libstdc++-v3/testsuite/23_containers/map/allocator/copy.cc
! 563fe71d12efd5c914b334e1787954a0  libstdc++-v3/testsuite/23_containers/map/allocator/copy_assign.cc
! 9214d8bd88b055467edfdac00adc7164  libstdc++-v3/testsuite/23_containers/map/allocator/default_init.cc
! 7afd6e64cb984d7f6ee6803d372c153a  libstdc++-v3/testsuite/23_containers/map/allocator/init-list.cc
! 02562545054502fb8bbb00b595bd850d  libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc
! 246e5b47c872da5047fd0c9c47e05e51  libstdc++-v3/testsuite/23_containers/map/allocator/move.cc
! ed893d56d9aacc6814d82bba8235fe0b  libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
! 512722a369b59161c51f728cccf2f92e  libstdc++-v3/testsuite/23_containers/map/allocator/move_cons.cc
! 275d41fbe0b3deb06cc76b7aeeab936e  libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc
! 74e31cea851efce39520f3c7315d4b59  libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc
! 1d383ce9b2cf14c574c08b4c4dc6077e  libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc
  16c187179e9e1a4ff16cf122fb20804e  libstdc++-v3/testsuite/23_containers/map/cons/deduction.cc
! 818b6950824acaa152fad4e691a86905  libstdc++-v3/testsuite/23_containers/map/cons/moveable.cc
! e7bf159cc8b74103ed17af50458a363b  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_default_construct.cc
! 9881bc0137cf43528b5a7f1a20d0e951  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_move_construct.cc
! 00d79f254114578a072178ec56634d36  libstdc++-v3/testsuite/23_containers/map/debug/60499.cc
! ea58ca872b465852cf64023ba611582d  libstdc++-v3/testsuite/23_containers/map/debug/90102.cc
! 090a58ac357accf39ca2e7027c4d40c5  libstdc++-v3/testsuite/23_containers/map/debug/construct1_neg.cc
! 3f9962c36b2a92cca865fe24969e4ada  libstdc++-v3/testsuite/23_containers/map/debug/construct2_neg.cc
! 6353e101903db952fb8b1cb85b7dd08e  libstdc++-v3/testsuite/23_containers/map/debug/construct3_neg.cc
! a6b4d203cf571f4dd8cbecf576bf26b4  libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
! 59e9bb1aba6a7545c5528b4c9051c7a0  libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc
! 2c280192e3034e4b0b042d63cac84169  libstdc++-v3/testsuite/23_containers/map/debug/insert1_neg.cc
! 7d6158fb4037bcaa6c43268ccd652f75  libstdc++-v3/testsuite/23_containers/map/debug/insert2_neg.cc
! f8be6eb70dc856dad609960a2bdbf922  libstdc++-v3/testsuite/23_containers/map/debug/insert3_neg.cc
! 1bb91a3d75797e77c0a0e1aaa4d57971  libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
! 866183c2c5992c4514e8259122edfad6  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc
! 2b98f84bb6d6099d109fe9c1eb33cb26  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc
! c94fa2936aab290c3d3d051e6e319621  libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc
! 184a68f9415b70cb27bfc93314f6ccd2  libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc
! 1a09f5c817c1739c323cbe31c275e9cc  libstdc++-v3/testsuite/23_containers/map/element_access/1.cc
! 2d46033e4d479699fa4eac7a3ff26b1b  libstdc++-v3/testsuite/23_containers/map/element_access/2.cc
! d7d41ac4c9038af917e62c13ae12fdf4  libstdc++-v3/testsuite/23_containers/map/element_access/39901.cc
! 56c28e7d89fa1e71bc7fac82fa531581  libstdc++-v3/testsuite/23_containers/map/element_access/46148.cc
! c0436c56d81afdaba0f86559b964eed9  libstdc++-v3/testsuite/23_containers/map/erasure.cc
! 5a53cb253cc7d077a95ebbcc047f5ee6  libstdc++-v3/testsuite/23_containers/map/init-list.cc
  8642b25c59832140c46994b559a3d1a8  libstdc++-v3/testsuite/23_containers/map/modifiers/108554.cc
! e6e1eedc944b3840feb958d49b207281  libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc
! 22f4cbd6e988157f90abeab2d4592406  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/1.cc
  205086c15a257b2b3847ce68833198f5  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92300.cc
! cea5b93735c90b2fffb66c35d41fc300  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc
! 6b5850be3c7f970b5b40f844768e01cb  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/47628.cc
! 3529ba298617b5621a7e73a616b8d776  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc
! 56eab73fe131f44f32ea1a2d93867835  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc
! 82db5a1fbc17bf4e504f93d9ddd2b94b  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc
! 3151414ea87401f9954dca81195a52e0  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc
! 575bf6d916c7bd808cb78f219f3c61d2  libstdc++-v3/testsuite/23_containers/map/modifiers/extract.cc
! e13d4929e8ef2177e580a0a72726ba41  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/1.cc
! 4fe8ee1dc3cb0435e98dc8d1e05a044f  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
! 3e6679fc3a44d3be4b15a605d1a01959  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/2.cc
! b984f3b18db9ae462048c198b07c44a0  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/3.cc
! 42f35a324ae8db3bf8034d29d5dde113  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/4.cc
! 232573042873001e37712e312ceec9e2  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/5.cc
! d075218b327729746b4951c655b40aef  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/78595.cc
! c088fb16ecad829b82611c6531427358  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/83226.cc
! cc46cb7faeaa3d5fc479e99977a1bda0  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/87194.cc
  bf1079f7dbecd612e1c7ff8cc0558abc  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/92300.cc
! 1986fb5643af6a8cd1929f1eb4b461f7  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/dr2354.cc
! 13ecb383b92d81432fcafdbf02766e8d  libstdc++-v3/testsuite/23_containers/map/modifiers/insert_or_assign/1.cc
! 00e040f9e3c8b736fff811d23a6aca36  libstdc++-v3/testsuite/23_containers/map/modifiers/merge.cc
! fb16345d89bc834f16e822cd89dec6a6  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/1.cc
! 9ae2e9983c5692c61593f22c1a173e0f  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/2.cc
! dad797ecf8681c7f08a03ec10e9a2909  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/3.cc
! 0e9e69abb3ad72074493018247aa4722  libstdc++-v3/testsuite/23_containers/map/modifiers/try_emplace/1.cc
! 67423d3bc9b1e996ec1e2cf9a89d47ae  libstdc++-v3/testsuite/23_containers/map/operations/1.cc
! 8a274f1e661d4a3c484d5f73b8a2b55c  libstdc++-v3/testsuite/23_containers/map/operations/2.cc
! e33fefe81db7950220c20c44065bec58  libstdc++-v3/testsuite/23_containers/map/operations/31440.cc
! fdb5f9b34184eddbcff2a0af4acac02b  libstdc++-v3/testsuite/23_containers/map/operations/contains.cc
! f97fee7e608f98025e5f296c5bbb3327  libstdc++-v3/testsuite/23_containers/map/operations/count.cc
! a60b4bd791392ae8426f161f66546467  libstdc++-v3/testsuite/23_containers/map/operators/1.cc
! 3aced3acc7848b2ac3972e08fd23af0d  libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
! 9142aac52b49568f3dd0193675643499  libstdc++-v3/testsuite/23_containers/map/operators/2.cc
! 670e581455679b46f2742a4381d45ebb  libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc
! 89054aabf03f37391891e4a5cd1e6bcc  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs.cc
! 359695a8638695b0e0966a5f55ec135b  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs_debug.cc
! d5cb8091561c8b2ff46d6ce7d99b233b  libstdc++-v3/testsuite/23_containers/map/pthread6.cc
! 6960dea4d24aec3e6ec7bc8c8dd7566b  libstdc++-v3/testsuite/23_containers/map/range_access.cc
! 2e4e5dbc63f2732ba6e2d89d8778e9c1  libstdc++-v3/testsuite/23_containers/map/requirements/citerators.cc
! 0147dbb095a5584972df43795d3f0f5d  libstdc++-v3/testsuite/23_containers/map/requirements/exception/basic.cc
! 0c761c34c07fac1dc390f1c9ffadcd5d  libstdc++-v3/testsuite/23_containers/map/requirements/exception/generation_prohibited.cc
! 5db8b379727753ff928b91881f9f6a92  libstdc++-v3/testsuite/23_containers/map/requirements/exception/propagation_consistent.cc
! 5ee57bda9c7ec7a6a112aa762caec2e7  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc
! ac30ac620804297abd71a168eb1a79d1  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc
! 83880b8ecd7ad41937c9256da434644c  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc
! 8b9d376ef58d93c6d8acde047bf503f7  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/4.cc
! 551b0bbe16940f77af3c0589e3637d50  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
! 798610fd9496068ca6c1bbe4ac8b65b9  libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc
! e11181efac014fce44e52d0409998c06  libstdc++-v3/testsuite/23_containers/map/requirements/typedefs.cc
! e3e348ec6adb36346b0a9817fae152f5  libstdc++-v3/testsuite/23_containers/multimap/14340.cc
! 7387cf754c1a9a27ea5551227f9c0055  libstdc++-v3/testsuite/23_containers/multimap/23781_neg.cc
! 68e5299071ec104390aeba35b06513f9  libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc
! 13147b8a789048b1e6c048f6cf9d9ab1  libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc
! 79c9c2f3c9e1306f41044c9974d0e3a7  libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc
! 8c201dfdd74a8cf91181279b42749d8a  libstdc++-v3/testsuite/23_containers/multimap/58764.cc
! 1a6f0534379fdbdc2fef7e40b553790d  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy.cc
! ea5d61673f56d3b36c9b418d2096374b  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc
! 6943d37f4f32fe1409bb7bf98bd78d65  libstdc++-v3/testsuite/23_containers/multimap/allocator/init-list.cc
! 000ccad0ba32b5e9d0c16541350efb58  libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc
! f688207911ead1b7b5906ebd79bb2605  libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc
! 19b7f0180e859828db925be958f1b175  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
! b9cbbb0f368349ddc8a97ba1d9c63cab  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_cons.cc
! 746261e87c480d7d3887f5b138590c49  libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc
! 8d3f26fbddc59e013c091752fadd98bf  libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc
! 164f2d44187bf46313e79e822805c4ea  libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc
  9fc3989fb543a9b01e92a0c23926622f  libstdc++-v3/testsuite/23_containers/multimap/cons/deduction.cc
! 19cc908c6e5a485003942c81370b0329  libstdc++-v3/testsuite/23_containers/multimap/cons/moveable.cc
! 1217ff6484f09fc5fc1676a8399662f9  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_default_construct.cc
! a7315f831a92981c6e7c1d903fdf8c0b  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_move_construct.cc
! 42813b247741507aa195e4983dfd832f  libstdc++-v3/testsuite/23_containers/multimap/debug/60499.cc
! 4e51b0c8ffa9e8b89ccbfb6b07f0d76b  libstdc++-v3/testsuite/23_containers/multimap/debug/90102.cc
! 8545cb90d0168036b46948691e770079  libstdc++-v3/testsuite/23_containers/multimap/debug/construct1_neg.cc
! e1b9742e794cd7aad997521fce1174de  libstdc++-v3/testsuite/23_containers/multimap/debug/construct2_neg.cc
! 57d81b57cd83512dd4cb796f3f1007a5  libstdc++-v3/testsuite/23_containers/multimap/debug/construct3_neg.cc
! 5a4ee650ddd6d2d2a3dd12388fde2f89  libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
! bed3bbe18d2075908ede4a9841488c24  libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc
! 936fa52db0e040b6aab1b5292f8193b1  libstdc++-v3/testsuite/23_containers/multimap/debug/insert1_neg.cc
! a3286a402664941f6bcadb8768ef60f4  libstdc++-v3/testsuite/23_containers/multimap/debug/insert2_neg.cc
! b2f949877c82611f29d7d2c01ed93512  libstdc++-v3/testsuite/23_containers/multimap/debug/insert3_neg.cc
! 6859104d16d9332e486b71db36269866  libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
! 67c12046adf0cacb1be6d9bd727a5d3e  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc
! 8cb717c82e368f150ddf605bb1fa94a8  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc
! e25927e2233e81464f16fdf7e718c336  libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc
! d52570e607a4ef29d18958a2fb86eae0  libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc
! f49624ed723d064ea98565d7d25cb10d  libstdc++-v3/testsuite/23_containers/multimap/init-list.cc
! c3d2ff109481cfb314a3f07d9273ebe3  libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc
! 763ff483e766eb9b46875c1f32b690bf  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/1.cc
! 9e0376b4b7dd3aee8e9e2d74623aa987  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc
! f3ce44e8ddb718dd06a712a9f3fccbac  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/47628.cc
! b48a9927f8e36f6607467140573407a8  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc
! 4b195f33fc15c8a6936b58d616d724ea  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc
! 3de5be09946b2a2c639cee9c6c59427e  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
! 1889f20f0f017a020930e64e2a2e8ffe  libstdc++-v3/testsuite/23_containers/multimap/modifiers/extract.cc
! 68caece496876806348aba1f49b2a329  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/1.cc
! 4f07617005b3d2223936cf665e7fccc7  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/2.cc
! 58cc3e83b9ad85f0745df136cd999820  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/22102.cc
! ef3592309cf453f726523845bd85d73b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/3.cc
! 2c93baa34effd48aa940545a3bc74c06  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/4.cc
! bbbabf07127e0a241b3b59c812350ce3  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/78595.cc
! a9b8608419a7a4d0a7e9d90ea62522c7  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/87194.cc
! 9dcb6f8af7caf59d526d328fa48bcda4  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/dr2354.cc
! 9be24b2b92583bc5ba1e02590596b3a3  libstdc++-v3/testsuite/23_containers/multimap/modifiers/merge.cc
! ff20551e80a18c4e810c18e40b8c18b9  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/1.cc
! afa51b245543550e3fc2e4242c8729b4  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/2.cc
! 4fef498b210ecb753cb0d6134eb0cc59  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/3.cc
! 39aa3ee8e04151b12d81ef4ecb47416b  libstdc++-v3/testsuite/23_containers/multimap/operations/1.cc
! 04c29c8e43bdb863f9d2af2322342fe3  libstdc++-v3/testsuite/23_containers/multimap/operations/2.cc
! a152d30c00d3bcadbb67d15eba178d18  libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc
! 902f66626b2cbe72b077a0bb624d7749  libstdc++-v3/testsuite/23_containers/multimap/operations/count.cc
! 45866ff08cf7a37c8cd026d6482828bf  libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc
! 85258f6c8535ba3b525452fa365f59e6  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs.cc
! b8aa66b2910207bcafdc15c599eedbe2  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs_debug.cc
! 5d131b9523bf6b28a302281151f12838  libstdc++-v3/testsuite/23_containers/multimap/range_access.cc
! 4e744d3b6ebe302bdb012c36922a3676  libstdc++-v3/testsuite/23_containers/multimap/requirements/citerators.cc
! 8242ae2bd519b16e3ecd14074408ce74  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/basic.cc
! dac3f061e48507ba07e58ef048f18efb  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/generation_prohibited.cc
! bd362f59e662d9cd8c13a9e9029cbb21  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/propagation_consistent.cc
! 5c68d407efa65a801a86e491683a087e  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc
! 7af463f0a088aebd7ef0064e4a7f21cd  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc
! a9112fab7cbbd34fddcd3ad5b9b9e6b1  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc
! 56e622e9d83b1a6ac2b63a74d75ba9d5  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/4.cc
! b60dfcb299172986cabc3fb12ff19fb2  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc
! 6ec5030c346757374fae552c2a094f2e  libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc
! d6caf0e496f8331eea26e72a92ee9f3e  libstdc++-v3/testsuite/23_containers/multimap/requirements/typedefs.cc
! 5f7e8938d5ba89893aa8c49d50810b4d  libstdc++-v3/testsuite/23_containers/multiset/14340.cc
! dba17088c5aeaba72b9428623700b611  libstdc++-v3/testsuite/23_containers/multiset/23781_neg.cc
! 56ada9569e752b355d85e2511df38862  libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc
! bef793e1921d0656aa14e16811e3dee3  libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc
! 9bd28f46f2dea22ce07daf0a5c4f4c1c  libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc
! 86668f0e59f2f31112b2683b4f0433e0  libstdc++-v3/testsuite/23_containers/multiset/58764.cc
  c599e48655ea2e75c592ab5a1cf5ae3c  libstdc++-v3/testsuite/23_containers/multiset/allocator/103501.cc
! 12c8afbdc852b270df0017036d8d18a6  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc
! 87048da8652e23c9a84be183c321e6fc  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc
! 1015981c13b90494475100adf62047f0  libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc
! 9fdc59f21fe7d3b80024f50edf01733e  libstdc++-v3/testsuite/23_containers/multiset/allocator/minimal.cc
! 0cbb0a1d2303a4829ad26241f01af1dd  libstdc++-v3/testsuite/23_containers/multiset/allocator/move.cc
! f701935554c52ba10f53a0474fd5ced0  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
! 2288d0012c79916b365f559b4b68bb00  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_cons.cc
! bb774681172b49e79f934c9a3c27040b  libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc
! e526b9d53a215daa4e3cfb075c3b14f1  libstdc++-v3/testsuite/23_containers/multiset/allocator/swap.cc
! ef95ed63e393af4577e6cfae3fed086b  libstdc++-v3/testsuite/23_containers/multiset/capacity/29134.cc
  bbb896871fd7c7c3f4be6d45db152294  libstdc++-v3/testsuite/23_containers/multiset/cons/deduction.cc
! 3fc929b5445276663704982990df62e8  libstdc++-v3/testsuite/23_containers/multiset/cons/moveable.cc
! 1ab699f18a3cbfe68e659364f6b2cb38  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_default_construct.cc
! 834a2bbf4d806dc3fbb40f8b0295c70c  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_move_construct.cc
! 83768413a4f92f0d426c68f0ce03d4ba  libstdc++-v3/testsuite/23_containers/multiset/debug/60499.cc
! 207f9ff9c15e0f28377573f8a5fdd2e3  libstdc++-v3/testsuite/23_containers/multiset/debug/90102.cc
! 347fd0d5dbf3f534a993e1c895b32f7e  libstdc++-v3/testsuite/23_containers/multiset/debug/construct1_neg.cc
! 23ccbf84752f85d69676a19732e0f0b6  libstdc++-v3/testsuite/23_containers/multiset/debug/construct2_neg.cc
! f23c0ef8e749c7ad2cc90e2677a71ffd  libstdc++-v3/testsuite/23_containers/multiset/debug/construct3_neg.cc
! ee21eb33a430e21672bce38a398d5a98  libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
! 97d6a1c9272395860b202bafd9717952  libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc
! c96be14e8574f92ee681994f8156c2e2  libstdc++-v3/testsuite/23_containers/multiset/debug/insert1_neg.cc
! e9204682a053f9dcfcdf9776aef9938d  libstdc++-v3/testsuite/23_containers/multiset/debug/insert2_neg.cc
! 12ca38831d9fc920118e02188ca0ee37  libstdc++-v3/testsuite/23_containers/multiset/debug/insert3_neg.cc
! 3b8aa15f64f4998de79ba643fc5d0ea5  libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
! 718218eed1145f0ec91b8085ec223249  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc
! b51069936070d218f8a013d93879430c  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
! 8014fb73c4c65a958b06674acf54f5e5  libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc
! 091280d32ef91c586f1b525f40349a28  libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc
! 92335f3b1a8ef2331b8bba401dcf90a2  libstdc++-v3/testsuite/23_containers/multiset/init-list.cc
! 4c16e1f236d17c0b5dc229b38b39186e  libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc
! 742c346973c3c658a1e99ed77c8f8519  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/1.cc
! dd27850edb189b8d2ebd6f0682bbc309  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc
! af0a04c703a05aab0da1a5d5e392ac84  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc
! babb68b5a48fe9c9e846e234587454a5  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc
! a8398a2106b46eda49bb81344251e463  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
! 37c6d9e9ffb5ad6929807c4912283e5a  libstdc++-v3/testsuite/23_containers/multiset/modifiers/extract.cc
! efd45aca620e8f65f08e83027b58ff46  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/1.cc
! 21cfb132ee23a33b0dddd2d5ec22413e  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/2.cc
! c0e93492d761cab96b87ae51a7b5ba71  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/22102.cc
! 5add44deb5e80798f50560ed8b3c6d05  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/3.cc
! 7f736066879495ad90e77229e51bc8ca  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/4.cc
! 3e91681a178ce2f78923a8e19a7ca81c  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/87194.cc
! 7a6ea3372b2b5af9f0f81c8124708fdd  libstdc++-v3/testsuite/23_containers/multiset/modifiers/merge.cc
! 6cd957bfa2e10edd78a85a967469c4db  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/1.cc
! 186c26a7abcd68698f754e9b8e898762  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/2.cc
! 1dd9f9406aa602379a28b75787b1ebd6  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/3.cc
! cbe55acaec6480e384d32482f846d07e  libstdc++-v3/testsuite/23_containers/multiset/operations/1.cc
! 52429983bd416f2550cfe8b6cbeab6fc  libstdc++-v3/testsuite/23_containers/multiset/operations/2.cc
! 398de99c48baa49488c8692e1dc85221  libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc
! 738e775ce3cd8e02dc91019623b2ed74  libstdc++-v3/testsuite/23_containers/multiset/operations/count.cc
! aa20d0cad26a9a8281254f83bd944f9e  libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc
! e100f3d2ff8f3c7d65918fcf1e2f829d  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs.cc
! b9b33247e60f5d048d844cc0f1bfbee3  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs_debug.cc
! d70687a1c6ec8d853ebff034ed4104db  libstdc++-v3/testsuite/23_containers/multiset/range_access.cc
! db04f600cc86372c6a5e06af3b242a51  libstdc++-v3/testsuite/23_containers/multiset/requirements/citerators.cc
! 34778f8db0de4182989d3575951386b4  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/basic.cc
! dc30b16a6dbb6b7864ff5ae7adf41044  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/generation_prohibited.cc
! 3e4dfda5dce89023c1bbcfd54a4d7871  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/propagation_consistent.cc
! 9fb973b16360bf36faa73b39d6978ce1  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc
! 39bba372cc9f13c1e2e5838690138675  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1_c++0x.cc
! 2e8e87684e35b03d0c665e57b64fde67  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc
! 305f437138304f1f6b78984e5677592d  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc
! f750de8f7a7b9f522f1d20e2d7b1c24b  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/4.cc
! 83fbed2c29ae3d0412c684b7c70a428c  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc
! dda5d6f1c5182a1b581a45ec2d4bc71c  libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
! 95eade5bc721f08b1dd1d74efb06e211  libstdc++-v3/testsuite/23_containers/multiset/requirements/typedefs.cc
! 67f73d3809efd5946ecf4de7a8538042  libstdc++-v3/testsuite/23_containers/priority_queue/67085.cc
! 55e1b3aaddbbda2b023958a8dc2ddcb4  libstdc++-v3/testsuite/23_containers/priority_queue/77528.cc
! 95f7ba6a7e6c8dace2c3383d38968f2a  libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
! d956ee4a38db91077a66f0de3eba1c27  libstdc++-v3/testsuite/23_containers/priority_queue/allocator.cc
! 2668a59894c0562df284bf8902b11eb0  libstdc++-v3/testsuite/23_containers/priority_queue/deduction.cc
! e1449b45b664eee7008bdee02e2fbc1e  libstdc++-v3/testsuite/23_containers/priority_queue/dr2537.cc
  d28290e2547d3a24b7652041265d30c0  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3506.cc
  1b78335293495d23cdfab47884650bc1  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3522.cc
  a0bec79150ce876cf8e27c12caf9e151  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3529.cc
! f83fb074d4e085ce9bbabc21b1525a9f  libstdc++-v3/testsuite/23_containers/priority_queue/members/7161.cc
! c4a9b042e89772cae4c21476d5ed84f0  libstdc++-v3/testsuite/23_containers/priority_queue/moveable.cc
! e79a98949b555aea490f99be745f0428  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/constructible.cc
! abb7aa509af89d4d01a7f858aae7325c  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
! 854313e977289af11f5bb66551a082d7  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc
! bb742eb7009ac27c043462005083167c  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/typedefs.cc
! 1697d6d7476772ea095dadf92dbf905d  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/uses_allocator.cc
! b58e1c7ce5c99fcb6934dd744d73dfb8  libstdc++-v3/testsuite/23_containers/queue/77528.cc
! bc481ecdd61a94b8838357ed158dae56  libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc
! 159d278abe72ffb8403720199c9244e0  libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc
! a9263785e1f99b0cc95e89672abf16f8  libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc
! 7754843142137674e25e18645ffbbc1f  libstdc++-v3/testsuite/23_containers/queue/deduction.cc
! 722518974bd78c846cf55d2d503f1aef  libstdc++-v3/testsuite/23_containers/queue/members/7157.cc
! d72a4fbe9daf0b9de2c95ada271becdb  libstdc++-v3/testsuite/23_containers/queue/members/emplace_cxx17_return.cc
! bd63e50d6d7640632c0a5b36f3218b6b  libstdc++-v3/testsuite/23_containers/queue/moveable.cc
! d15e859cb2dc89346926d6105a0e70b5  libstdc++-v3/testsuite/23_containers/queue/requirements/constructible.cc
! a6cd1048a9a2bf53e888cc651c9c2eb9  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
! 77d4e3b858830d58d3e494c14fdf3077  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc
! 70245cfa4a5b0d8e24d00177676f9890  libstdc++-v3/testsuite/23_containers/queue/requirements/typedefs.cc
! d10f316ddcf527c13f2cb6699530b918  libstdc++-v3/testsuite/23_containers/queue/requirements/uses_allocator.cc
! 742347fda8cae66418548b53b227e08d  libstdc++-v3/testsuite/23_containers/set/14340.cc
! bed494fcc74bdf232016793d09a7ba6c  libstdc++-v3/testsuite/23_containers/set/18604.cc
! 95b876c94eac85a514a7ace771a50c21  libstdc++-v3/testsuite/23_containers/set/23781_neg.cc
! 37e15055bee995dbf4b73797253a7a98  libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc
! 5f33213ff007259b0d5bebe4098d7b82  libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc
! d1a7c21d603728038b823edb0fe82006  libstdc++-v3/testsuite/23_containers/set/48101_neg.cc
! 479b8499ba57e15518460fc39ac382b6  libstdc++-v3/testsuite/23_containers/set/58764.cc
! af5edd75237c3655bb91c8b595f9e117  libstdc++-v3/testsuite/23_containers/set/85965.cc
! cf835d32da3cb1277483866f22e10c59  libstdc++-v3/testsuite/23_containers/set/92124.cc
  4934612c2b7203e0e300739be2067260  libstdc++-v3/testsuite/23_containers/set/allocator/103501.cc
! 4acaddde3f80cfc48b4ff4ce8159af18  libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc
! 723394b2ace41974c180a3c2cae4ad84  libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc
! 9f16ae7fc75b73a6cdab3afac30684dd  libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc
! 903dc150222bcb1cba9f1d9c5d8ab180  libstdc++-v3/testsuite/23_containers/set/allocator/default_init.cc
! c830230ab5b74021a08d5e01808ef657  libstdc++-v3/testsuite/23_containers/set/allocator/init-list.cc
! 7ba48217db473a41a1e9a2b8fadac3c3  libstdc++-v3/testsuite/23_containers/set/allocator/minimal.cc
! 4bb610e60b70d7332d77b02525d9909f  libstdc++-v3/testsuite/23_containers/set/allocator/move.cc
! d2f7b0d6d5b1f486d7ce962e18b890e5  libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc
! cb6c1f05271dab4847aac78dcd7be20b  libstdc++-v3/testsuite/23_containers/set/allocator/move_cons.cc
! 902ed3fb0c9597a1ec1ec54d956181aa  libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc
! 50ec9d6c112c39127c47a8aec80598f9  libstdc++-v3/testsuite/23_containers/set/allocator/swap.cc
! a0cc6a2f3ee8853308ea0c501bb48ac5  libstdc++-v3/testsuite/23_containers/set/capacity/29134.cc
! 46ecd7ba7238cf2f614e13b0f775f4f3  libstdc++-v3/testsuite/23_containers/set/check_construct_destroy.cc
! ea88a29a7cda4eb36d76ac55340ea40b  libstdc++-v3/testsuite/23_containers/set/cons/61023.cc
  481e4d5cd05c18aecc038aaa29dea042  libstdc++-v3/testsuite/23_containers/set/cons/deduction.cc
! 4ac029440349cde148c40e4c4530ba25  libstdc++-v3/testsuite/23_containers/set/cons/moveable.cc
! b8cb47011456b68ca066c2986c0c3b06  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_default_construct.cc
! 89d1728b4889acfeecae0785b4c8a8c7  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_move_construct.cc
! 83f470c08a9e704d3d17953e95fd37eb  libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc
! ae08886e978c618ac60b6c3f253f0c0d  libstdc++-v3/testsuite/23_containers/set/debug/60499.cc
! 2484bc35fba82855e9a37cf1b21aaa80  libstdc++-v3/testsuite/23_containers/set/debug/90102.cc
! dab9b194b75d8b8d714f2745a05ad01f  libstdc++-v3/testsuite/23_containers/set/debug/construct1_neg.cc
! fff8a002f852ddeaac6b6b79d6ba55f6  libstdc++-v3/testsuite/23_containers/set/debug/construct2_neg.cc
! 97982d5cb9933d0243c9cad7de3f6100  libstdc++-v3/testsuite/23_containers/set/debug/construct3_neg.cc
! f4a39767ad2c148fa0a99c12f37fbfc4  libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
! 2adf6e4d85826ca9a54dde9a75086716  libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc
! 6c64d02b9ac425ebeb7e774c5722519e  libstdc++-v3/testsuite/23_containers/set/debug/insert1_neg.cc
! 130813e487008a15fcec303c60f794a9  libstdc++-v3/testsuite/23_containers/set/debug/insert2_neg.cc
! 4ddef83a304705d368c1e13fe75eedd5  libstdc++-v3/testsuite/23_containers/set/debug/insert3_neg.cc
! 2173b0159b7e703dabd774d6f7554bd3  libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
! 08a777c63134bb670f6e4f98838b65fb  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc
! 669cfe293501ea5bb83a5e3c11a445fe  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc
! 1608dd2bf9d8e674ffad858ca3283409  libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc
! 78fd1112cd7e7bfdae434c311f94a5ae  libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc
! e0a3b1912adb8176371ebe6fc1dbaa96  libstdc++-v3/testsuite/23_containers/set/erasure.cc
! c087d26b3de856b86b94ed002f09ec6b  libstdc++-v3/testsuite/23_containers/set/init-list.cc
! 12ff4dace24d58b5bea1adb68745ddfe  libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
! ce17c384c58b5aa10549a90e45ed730e  libstdc++-v3/testsuite/23_containers/set/modifiers/17948.cc
! 6f506a8f8a45c4ba549fcff32eadcea0  libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc
! 9a91f96b82cb913cd43b8264af6320d1  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/1.cc
! 6c441c97e3202d149c3e564958422c34  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc
! af3b85727a5fcd627137b112f6aa620c  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc
! 80ae1e9895055cf0c80d7eedfb9de667  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc
! c5996ceed1ae0525ca3f9898f300079f  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc
! f97a3c5bfff50b33d1786985c158bb3a  libstdc++-v3/testsuite/23_containers/set/modifiers/extract.cc
! 080d0c3347984f7a5a2f1f5216f3c3ba  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/1.cc
! 464e98c9f05eb39dc8989ecb66cedd1d  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/2.cc
! b990c4793d1ab8629627b2335754af1c  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/3.cc
! 222e2c2df362d7da8047cda47d06bfb1  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/87194.cc
! cef33858ad90510d35b5cc27d20f3d1b  libstdc++-v3/testsuite/23_containers/set/modifiers/merge.cc
! 610d63dbb66cfc73cbad9a763be688c8  libstdc++-v3/testsuite/23_containers/set/modifiers/node_swap.cc
! 9bd78581ef084f12e1f944dc8e3edca5  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/1.cc
! 3fcac3eb63082cc3d53561a8c58477ae  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/2.cc
! 6d844386e7d9199758637f745c3975d0  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/3.cc
! 70e78bbf5ab673ef05977e0958213af1  libstdc++-v3/testsuite/23_containers/set/move_comparison.cc
! 087d1b9cdef9e5c9658576ee0f028bd0  libstdc++-v3/testsuite/23_containers/set/operations/1.cc
! 619650eb42fcbbc9335c079223e66ed5  libstdc++-v3/testsuite/23_containers/set/operations/2.cc
! f602b2667da7e273166daf01a9f6b0d3  libstdc++-v3/testsuite/23_containers/set/operations/contains.cc
! 1523e8dfe55aeba69b715596a5a31836  libstdc++-v3/testsuite/23_containers/set/operations/count.cc
! a463383b5c0b9dcb5f10f0c82e0a6cb0  libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
! f9cfa02b919d66e3efaf8c274cd71b12  libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc
! 8cceaae6a751f2ed9a3163b87e46b673  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs.cc
! 122562da95dfa02e2c580a9163333441  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs_debug.cc
! f2820bb14594c5c70522bed8bf9b4b9d  libstdc++-v3/testsuite/23_containers/set/range_access.cc
! f723a2637f73fbaa2c9965eae6df95b9  libstdc++-v3/testsuite/23_containers/set/requirements/citerators.cc
! becdcc625e607c383d91740cad8862af  libstdc++-v3/testsuite/23_containers/set/requirements/exception/basic.cc
! 846b9f8eac778190cc2de04b36f0f951  libstdc++-v3/testsuite/23_containers/set/requirements/exception/generation_prohibited.cc
! be5f14eb7d25478e1ad2b78bd100f17a  libstdc++-v3/testsuite/23_containers/set/requirements/exception/propagation_consistent.cc
! 771b7bda33ff89d3592cfbf7c3826bd2  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc
! f4cc805475fe4eb6e298f4a6f06fc466  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc
! 353ae825b0c1f976e3c82afdf44ff8b4  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc
! 6477fb92e1098b3352d24bb3b7bb9557  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/4.cc
! 96eb247b0015ebc25a4bf9c5a2429f79  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
! 72706a47b6675d723d14db6db40466ce  libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc
! 9eb510e023d1354dc13a7ca6b55e1b35  libstdc++-v3/testsuite/23_containers/set/requirements/typedefs.cc
! 24be6a251d10ec91a71a6cbf08e52ce6  libstdc++-v3/testsuite/23_containers/span/1.cc
! 62d71e263b54ca463af9228fd31a5f0f  libstdc++-v3/testsuite/23_containers/span/101411.cc
! a41a95237005cc1253becbc65d0e579a  libstdc++-v3/testsuite/23_containers/span/2.cc
! fe455bdf536bf1645aa34f386beb6ffc  libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
! 4646871fbc49a8667f0f4cc6f84648ce  libstdc++-v3/testsuite/23_containers/span/back_neg.cc
! 06a45501dcaec8e13d6ae1e6ee40d1b7  libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
! b500468357c8536c575705ba4a6c389f  libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
! 4f2858e4b71aaba1da53b7dccdd70dcb  libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc
! 13de2b944b3e345b71c8a9607c7a3e70  libstdc++-v3/testsuite/23_containers/span/deduction.cc
! 5298b419f9c836495e1833514f5cb15f  libstdc++-v3/testsuite/23_containers/span/everything.cc
! 19441bc0f80dc57aa9d56b345b4683b0  libstdc++-v3/testsuite/23_containers/span/explicit.cc
! f2a645274bc71d00d9de0300de9193f8  libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
! 1a9149c8244aed302ac2152e59a46577  libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
! 63112880f3cd80c6a1c630b1a1afa9ac  libstdc++-v3/testsuite/23_containers/span/first_neg.cc
! e2ba48768a2eded317fd6809c2892927  libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
! eaf0e2f767eab42b0f97c32436b14bed  libstdc++-v3/testsuite/23_containers/span/front_neg.cc
! 426abcd39eb1dd403af83050cf5f5e01  libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
! 6949254731dd518e434be8867703c2e3  libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
! 4f598d73804805fba02357e5c79183b6  libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
! 88f915cb502a4fcad916c1add1d912d0  libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
! 4e7dd8cfebff783ac97ab4cc11389e6e  libstdc++-v3/testsuite/23_containers/span/last_neg.cc
! 64e1b8875fd0c928889c5831cd7e709c  libstdc++-v3/testsuite/23_containers/span/layout_compat.cc
! be1f50b1146968c150d08a2efb45f08a  libstdc++-v3/testsuite/23_containers/span/lwg3255.cc
! 253debc3012d6998190de8476a1af448  libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc
! 8863f6163a711d1cba1a2826fee3344b  libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
! 3fb3315e3658a0b3a50ab031b8366b2e  libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
! 5d4f9b1e1e5c435be42ae17386510345  libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
! 5bb21b29c963eab6d9bd049818491a65  libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
! 3140f0be92da0c061531b403f7ed991d  libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
! cab2d87171c9910186845502319f9249  libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
! bf3f3fc49ef7e8132533b07c3c53a5c3  libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc
! d19a170b5f7ab02157733005cb76fef1  libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc
! 6667a26fb8e5052a0f736b8ae3605735  libstdc++-v3/testsuite/23_containers/stack/77528.cc
! f80392885ac3739ed820b9a4d9ecbb48  libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc
! 47389a783b2d7f9a2f88fe765d107c5c  libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc
! 33737da0cce1a723bf9379276aebf5fa  libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc
! b6a33e0669dbceff20c3d1185f614505  libstdc++-v3/testsuite/23_containers/stack/deduction.cc
! 6d9d3d6027a7a3cc71e2b1fee4350aa2  libstdc++-v3/testsuite/23_containers/stack/members/7158.cc
! 15dddd96d29837ac6a9ad5c066ebab69  libstdc++-v3/testsuite/23_containers/stack/members/emplace_cxx17_return.cc
! 37dda611285812dd4abe6bdb36c2e1c5  libstdc++-v3/testsuite/23_containers/stack/requirements/constructible.cc
! e2d3682101d8dced1db52fa37cdd4e01  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
! be782028d8a622557bc9ecc58e824ba4  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
! 1874ac8a3941c0777554a8808bffc5cc  libstdc++-v3/testsuite/23_containers/stack/requirements/typedefs.cc
! 772c3b802f1b2f89d4116b4cada695b7  libstdc++-v3/testsuite/23_containers/stack/requirements/uses_allocator.cc
  8095490ebaf0100077d254e713821ec0  libstdc++-v3/testsuite/23_containers/unordered_map/104174.cc
! 9112700c9b754de72dba304feaf77ab2  libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc
! 931145fe5db75761370fbca00abbcff6  libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc
! 07877847818536a8c957300cd4944afe  libstdc++-v3/testsuite/23_containers/unordered_map/48101_neg.cc
! e5fc5aa1aedc264ad8f231169ecdd209  libstdc++-v3/testsuite/23_containers/unordered_map/55043.cc
! dbb458896016f0ee1b72428be16bdb28  libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc
! a053a0021bce1a51156d4478dd485132  libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc
! a2f2c9dcdf86247eb2d68b357fc32968  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc
! 833d8c1a5871ba394f9875a719b18223  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy_assign.cc
! 1744aefadcddec724723648665f5ccad  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/default_init.cc
! 8aaffae4c2f612e83914c46cdaa87b61  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/minimal.cc
! 015a50b2c5a441749aa24b4f22738dbe  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc
! e454a0ba63c2919a8734ba207b032746  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc
! e9ceb369468169e75d2fc9e77425cfe2  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc
! 90203c8e785758e2d972486a0779dee3  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/swap.cc
! 1aa13dad6c0b026746b128ed80364494  libstdc++-v3/testsuite/23_containers/unordered_map/cons/56112.cc
! 2d90aace526c58ed28f11f5021461900  libstdc++-v3/testsuite/23_containers/unordered_map/cons/66055.cc
! 9ab14a76528721e2fd4dba84fbce3c04  libstdc++-v3/testsuite/23_containers/unordered_map/cons/81891.cc
  85260b346a96810f495c68331eefcc0e  libstdc++-v3/testsuite/23_containers/unordered_map/cons/deduction.cc
  85f9f0cfc8a07ac716292470ac0bda11  libstdc++-v3/testsuite/23_containers/unordered_map/cons/default.cc
! 38ca88deb52a7ba89f11a627971226ca  libstdc++-v3/testsuite/23_containers/unordered_map/cons/moveable.cc
! ff5fe601ad1bd5b14e27ce0cfef45ffb  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc
! a5b57a7d0f47057a8ba96575728b7b5e  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc
! 7998a15f5e0969b080d21de3e0482066  libstdc++-v3/testsuite/23_containers/unordered_map/debug/60499.cc
! ca9eb283823dabe5dd9cf6b60287baad  libstdc++-v3/testsuite/23_containers/unordered_map/debug/90102.cc
! ad6bdab6786c388d68bfe5aa479a4904  libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
! def373aac05a4524ebf26ee5aa430a77  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc
! 98b8109cb06c73e48e8818c7720b9882  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc
! 8c783fcafb6929a3f415f6014cd40f98  libstdc++-v3/testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc
! b7e6ea331f7e43c03c1d5d01af59dd1f  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cbegin_neg.cc
! a46514c8d6dd7325733680f8d5c8c707  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cend_neg.cc
! 5cf09ba075327fd5738b5dcb1e54f288  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct1_neg.cc
! 2f6e191789c65cb596165b221e089f61  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct2_neg.cc
! 6432e8201f216a6940bfc12bd0e7cbfd  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct3_neg.cc
! 893cf0dff8cbc9788c8c63ab6c1aeea9  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
! d616404e1a531ad37b1250bf3d9570c5  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc
! 03d5728629d70933af9a3dead5ff2143  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end1_neg.cc
! 33bf4ab78a2c7324f82e8e10f6fc8dbb  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end2_neg.cc
! d766208fd73ea06d891e5bc3df593b8b  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert1_neg.cc
! 0782fbd2fb74f7972faf7ed926bb11a5  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert2_neg.cc
! 5056629cbdb7adbe6b50719d5058a275  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert3_neg.cc
! 680cc281a01b8af1e02c444e7e7bf68a  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
! 749879970ff10dbaeb8cf983fbf121c3  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_compare_neg.cc
  1edf6281b3ca9799ae88148d55d8050c  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc
  6a98e53837af8954af5380d0b48b0baf  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc
! c78693d4f024cbe3b22f7af5813d39bf  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_range_neg.cc
! c480236fc6009f734b3539604988849c  libstdc++-v3/testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc
  ec5f25200eab229dcb114c539335f057  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge1_neg.cc
  1b50fcbac0e81550e3f02766b2163b1e  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge2_neg.cc
  d54806c3c63e301a8ace90147e276428  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge3_neg.cc
  a6d92cb4a8083799e28f1557ec3dc5ea  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge4_neg.cc
! fa6c5e5b761eb1234b02ef0f8620b4d2  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc
! 9b67d9250a1f0397c36a2f30b48452f2  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc
! 8973c3e6731eb54097f7a9032ce8af88  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_erased_local_iterator_neg.cc
! 43b6f15f96bee191be8534d6926bc466  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_iterator_neg.cc
! 93e043703a7fcc04dad11166e028f7e8  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_local_iterator_neg.cc
! a65526bdb5b2d3bc59b0ecf4ca95d542  libstdc++-v3/testsuite/23_containers/unordered_map/dr761.cc
! 9e94998be6cf7c0f9e80d35b19c24902  libstdc++-v3/testsuite/23_containers/unordered_map/dup_types.cc
! 03361585e0ac31a1db5e71683b496c5c  libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
! 29d005097c326a4f9b6861a15b53f0ad  libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
! b5f16090bf73a50e3cfae6a6b65f0625  libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc
! 01d453a2b6ee3eb1048ea080b67d0063  libstdc++-v3/testsuite/23_containers/unordered_map/erase/54276.cc
! e15de1a6290be1af7884913771880cb8  libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc
! 6b76c63394b420bb30ee00910ded192d  libstdc++-v3/testsuite/23_containers/unordered_map/final_hash.cc
! 8d1378d93c9c17836ddd888aa84df894  libstdc++-v3/testsuite/23_containers/unordered_map/hash_policy/dr1189.cc
! 67172ef4f96dc9cc29dd30bcfecb8e3f  libstdc++-v3/testsuite/23_containers/unordered_map/init-list.cc
! 5ed00413d6dc58991765cd93cd3d88d1  libstdc++-v3/testsuite/23_containers/unordered_map/insert/105717.cc
! 74720f6fafe0bd23fa7b3534ace3d087  libstdc++-v3/testsuite/23_containers/unordered_map/insert/24061-map.cc
! f026143e0e4551dbfe0b47734716a1fc  libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.cc
! 8fa4ad432c0049d6c7e468b55308e4d8  libstdc++-v3/testsuite/23_containers/unordered_map/insert/83709.cc
! 1384201e8db0ca56f2a28cccafa8583e  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax.cc
! 1889053a8158d8a733220983406b393c  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax_move.cc
! 1f0e9b6ca91fd68a5393cfbfd84060ea  libstdc++-v3/testsuite/23_containers/unordered_map/insert/dr2354.cc
! c2f540bba764c12bff807967c9280237  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_range.cc
! 56cdbcecd35a09125f9cffbe4e48fd67  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single.cc
! 83f5c9d9e15520ee8932a66b63c97eb1  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-1.cc
! 7ed1436aa8a00a2009137f5edebbeac9  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-2.cc
! 4aa38697ff76b9afcea7f1c3a43dad27  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/61667.cc
! 33a9042c4e98170a9d3d1fb88a14d432  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/78595.cc
! 7f8f2442901ea41d77e0ebc890107d74  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc
! 03fac90b219d18144af655af896d7954  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/emplace.cc
! a14df605fbb76ef3e178c19c31db79fd  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc
! dc3059ffcfc5b5f617b283152ee2eac6  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc
! 0a2b0a1af64854d1bebc4232540cf6c1  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/merge.cc
! ec4950b74e8b9cd59ab4bfa8e94055ba  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/move_assign.cc
! 6e4b6b77735acab35c8d3c1aac451c66  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc
! c119f8968e7c2cd51b39f47edca3c2c7  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/try_emplace.cc
! 01f47a485e639e40d954a8c2b5835501  libstdc++-v3/testsuite/23_containers/unordered_map/observers.cc
! 25ffaa5db7ada99a686798c7cc1a3680  libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc
! b7dc3ee566e9b5ef56cf1b6cec567c90  libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc
! fecc9906df269635aa2da8c1c1d94bb7  libstdc++-v3/testsuite/23_containers/unordered_map/operations/count.cc
! 206e5b31312cb3e00a049c4b502c0982  libstdc++-v3/testsuite/23_containers/unordered_map/operators/1.cc
! 8eb2d7f66d4bfe8553e355239c680fda  libstdc++-v3/testsuite/23_containers/unordered_map/operators/2.cc
! 6348b9dd4635c9b4f0606be650fa6b7a  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs.cc
! c5b9f6f7568efbf018cf623bfeb82e72  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc
  45f46b4cea5268d1bf8f903d79e3c350  libstdc++-v3/testsuite/23_containers/unordered_map/profile/hash_map.cc
  6bcaac31a8700749f12b90fa8913629b  libstdc++-v3/testsuite/23_containers/unordered_map/profile/unordered.cc
! 21838acfee7779482e569c0640adc044  libstdc++-v3/testsuite/23_containers/unordered_map/range_access.cc
! 981c0846e92d9a173d6fc0b80620df8a  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc
! 651f88d196f680df0996421a58702b7b  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
! 9dfd6279d0df27a78e522b996b5e4270  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53339.cc
! 0e05ff637d50426f217af575c2b4d91d  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/citerators.cc
! 90e003c82ab520f686f1d3aff2bbd7b2  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/cliterators.cc
! 8e936727fe9d7b65ed23b0b28b408eca  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc
! dae109d897a780aa098366f4861fe772  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_mode.cc
! 25440fc55b1bb0aac1ef8dbeadd89bdb  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/basic.cc
! 77263dce50c6165c2b620d657c22bcc8  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/generation_prohibited.cc
! 21d7dc7437ec25d8beae2b21f9f815fa  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/propagation_consistent.cc
! be9ceac3b17c321b0fb1d11b7bbe2b15  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/1.cc
! 864dfbcbf59a573ebf444ab9f3e1140b  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/2.cc
! d9d8d51b58ba65c3490df04fa1e9abe6  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc
! f66d52b5d9003c5ecf0d78c924683f2c  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/4.cc
! 0be7e39597e48985cb29e0391a99e76b  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/5.cc
! 9f2bae17eb0936366915b85bf58b9d48  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/typedefs.cc
! a45ec2d1e5dc69ebe5bc1759d3f6ba83  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc
! 7c514818354b401cef20fd743e3c208d  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc
! acfb34d2c38569cf33c6e0faf95af115  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101_neg.cc
! b3972c957450e2c58f651020e235eb64  libstdc++-v3/testsuite/23_containers/unordered_multimap/55043.cc
! 73d04fbb75d621e260af3055c4f1d298  libstdc++-v3/testsuite/23_containers/unordered_multimap/96088.cc
! 4fb29bcfef0b45a292c1f164c829207c  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc
! bb55b2be3c1cc79f705414da59d27ea6  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc
! fc2f9809cc0e2e8f96dbf89efdad8b87  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/minimal.cc
! cb2e9f36f23f6d86f8a204d219c49eaf  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move.cc
! 2591d6f848944c0bd2265660697af578  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
! b2dc7c7d9bdbb22d17e488d97db681d4  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc
! 1663547b95f815603c87035886ffe59c  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/swap.cc
! b26f5d7f620cdeab49e75d8560906ce9  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/66055.cc
  1339c52ecafcfc46a0f64547b8873082  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/deduction.cc
! 3ee76e22edb00b194d6fc06b8a58e488  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/moveable.cc
! fbda85a4c66dc35b3184a467cf0fbfac  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc
! f95018931f3769fb019db24b8b8d2b20  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc
! 7b2222a5e79a7f5d7cec0a86fed2ebdd  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/60499.cc
! 082178907ee8c1559122a98631bc8617  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/90102.cc
! 89d646aea09716ec3067d2878049b04b  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc
! 98b8109cb06c73e48e8818c7720b9882  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc
! 8c783fcafb6929a3f415f6014cd40f98  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc
! b7e6ea331f7e43c03c1d5d01af59dd1f  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc
! a46514c8d6dd7325733680f8d5c8c707  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cend_neg.cc
! 8ba46352c51ec021ad080a60c86ee8f3  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc
! f4c2ddd878923c76e8c9b458b50bac9e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc
! be5fdeed0d742ab3bde28e60350b65a8  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc
! d5ce5be448e6476b547a6e2806735719  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
! 17fcdef55bf36acdddd37968d8290a3f  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
! 03d5728629d70933af9a3dead5ff2143  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end1_neg.cc
! 33bf4ab78a2c7324f82e8e10f6fc8dbb  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end2_neg.cc
! c5d7a61a8aafc4d351e407414228b9b4  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc
! c878ab0c178c08fc813f0175636cd665  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc
! 9e0df4fc2b3b30ce1de9806ac192dc88  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc
! 979469d27aa35c29ad18ed6569ec086d  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
! 6a4cf01bebf47520a9abb3f239da3c97  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_compare_neg.cc
! ce062b99d761dfe0084b64abf02f3eac  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_range_neg.cc
! 7d9f68e753933a5bd21229d0ec68f8ae  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc
  4590d5159c6810e053d83e37afdfdccc  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc
  10748ae08ea59767c0dec11efeda3ecf  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc
  5711a56e85b25164885d87e3528b0d4e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc
  f30bce9979bec5403e8d4079e23bd752  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc
! 54934c1dc259fa72ce386e5ed7346185  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
! 66e1b09023a5d22e2ae92398a4ace44d  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc
! ad7d1004474139625ab0ceea9baba7a1  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_erased_local_iterator_neg.cc
! 3b822ad4d35c18d263227c9f142d024e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_iterator_neg.cc
! 4fe63b4593989e9805e1ed53eb83db6f  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_local_iterator_neg.cc
! 48977ad75067da60b8f0baaa8acd0ab9  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
! 92e6d236522f93394266e6dfe59c9054  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/2.cc
! 249840ce7012a4890941c2921bdaff6d  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
! 0964f7cd821aeaea665c2be6014c9637  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc
! b7c63839c2b2fe1095a72c1078706546  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51845-multimap.cc
! 12f488d23d441282be194910a45d80a8  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/54276.cc
! 3ec5114d9d41baca000f25d956bb12ba  libstdc++-v3/testsuite/23_containers/unordered_multimap/final_hash.cc
! d6b8e135532c50a5c1fb36e2dac8e1e6  libstdc++-v3/testsuite/23_containers/unordered_multimap/hash_policy/dr1189.cc
! 78e804ca0711e45fc9563078eac373d0  libstdc++-v3/testsuite/23_containers/unordered_multimap/init-list.cc
! c4a4f7cf9de84d2e2767ef85642c9cdf  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc
! 231d2d1a1e5bfd23f89a243834ef0112  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/51866.cc
! 48f797f07d1deb1d9351084944ecff38  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc
! bee0110573a8bdd328211344680e62a6  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc
! 4447c0812f90706403729beba8471608  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc
! c32043d6833e09024e13a5395ff4a07a  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.cc
! 0c0e78bd985ccd2992beb5d96a743501  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/dr2354.cc
! b705b535e80476f8dc5210feb46d5158  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc
! cd0653909d856b7fb68f1b22a4115ce7  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_range.cc
! 8426ff7c8b976c96287a62067083868b  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single.cc
! 1cebc37fa1e9df5b9371eab8d7b56a38  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-1.cc
! e69e8c007d1ae59c6ae04784d631dbac  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-2.cc
! 90ae5cbb09395365c6a3aa6a8d3c7242  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/78595.cc
! 4b0deaf64ed73aa453cd228321e5c5a9  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc
! 9d1823faf5b592dd5330439137482aa3  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/emplace.cc
! ce423b7fe134947b12bb3bcadc06e8ef  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/extract.cc
! df0920fa518b2245aeff636e8e13c931  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/merge.cc
! 87351e56e94d8dfc647b1bc4490f02dc  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/reserve.cc
! 5bf8153b21982b0bb6b9a10f31b6f498  libstdc++-v3/testsuite/23_containers/unordered_multimap/observers.cc
! 96f0719f04a025939a9c26b2be86bd56  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc
! 647c755134d4c9566b6980673aeccd68  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc
! bb32f1920bdb2be82d85310bb2ca2bff  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/count.cc
! 2e7014d6c4a0314d3fd102e4a202e6bb  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/1.cc
! 13249629b48edf98170953caf9744d99  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/2.cc
! 951e58aeb08e98d4cdfab7b4c1662261  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs.cc
! 971837bcc50be882f38045be8b97d7fd  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc
! ffe6d2cc4a34bcb17f2d6d62d36608e9  libstdc++-v3/testsuite/23_containers/unordered_multimap/range_access.cc
! f8dcb4b2f1bac347ec0267ff6b66ba18  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/53339.cc
! 7cc33a13f2dade3a6bc6fcb3f465f5ad  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/citerators.cc
! 7215d47c0d79658f60bb1a9784cfb237  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/cliterators.cc
! 9bd3ea05571689710118e4a7d104fd62  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc
! ab84d028aedc03ac3b07942160f97f71  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/basic.cc
! 080c548c6ed0b380f1d899646ccafa06  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/generation_prohibited.cc
! 96f8bee0cd88c32a93be96bc58a7ae45  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/propagation_consistent.cc
! 484a78c5a4d984f01ae583076dcc982b  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/1.cc
! e5ff659dabf61b440aa44aa3d89dbab1  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/2.cc
! 824ebf70fd542ca29d8b697a11643482  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc
! 63db2cf3efa31b2bad03382af3b44510  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/4.cc
! abc62704bf87262a7655760f78293008  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/5.cc
! bf3dc3d8461195de0223a72b88208108  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/typedefs.cc
! e75a57c1f0a2be2700885a78823ceb2b  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc
! f27f84d54d94b5d5400db5473c8bc3a4  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc
! b8e51f1337e35859e58bddd14619c57a  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101_neg.cc
! 4787de13b61ca885ba539f74c20bf169  libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc
! db863926557d2d5111e807d45faf9908  libstdc++-v3/testsuite/23_containers/unordered_multiset/96088.cc
! a00fb5834f80853919f570fe4d1252c8  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc
! e0760f04c8556fffc8e723c260c08c1d  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc
! 13af51068ef9da51a5638058005b8f58  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/minimal.cc
! 78af6e50704e49638de09329cdd85e78  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move.cc
! 29f1c365f2c0df67c903055d8e27c5d7  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
! 820f45c11707990ca74c9e22573bc781  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc
! ac81a2bf8725445753ea0f99c96afa03  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/swap.cc
! 7eb01e6887ff7bb57f4f7a6912efa068  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/66055.cc
! 606b24d66bfb25792c71b785ca21c2db  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/copy.cc
  23f594bcb112a45f141a57ae69a39c30  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/deduction.cc
! 341d74db3823a61c213ff202846baed1  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/moveable.cc
! 787a67c64a9dbaec142ff659ecbcbb1a  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc
! 0f4fa15352c9a29c0dd1fd4d64af9d6d  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc
! 4d9d0a3228399c457776362abcf6b4a2  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/60499.cc
! 25a7e2115649a4e133666f324b139aea  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/90102.cc
! 15e82064877f5af0e99733a7dd39d674  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc
! 8f714bd2ce386738974dda440c19459b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc
! 043a03d9307edc971ab9d0ca5ae69f22  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc
! 0c660c4ed8cadc9940eec70137b73003  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc
! 86f60c54b02626c943602f49980b7084  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cend_neg.cc
! 3a59a2829f39e0bf540b373be93cb866  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc
! 0c937ba7575bfda63c16ba1b0035d160  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc
! 7390a63e2ee9777cf1833f1bafb7113d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc
! 7d342b39ded2b59047bc224892f59d59  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
! 7d780ad3f9019df85cd7db20ea83e554  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
! 211b56655815017863a322af6951a893  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end1_neg.cc
! 783756607da9d2fb18b5e346f2dbf4c7  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end2_neg.cc
! 03dd241f63ed8acb34349cb7a8817c79  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc
! 5fdf56821a90a949d62e4c6e1e5e3d63  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc
! 574705b7399a91a4c955b3cfb1ad3338  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc
! fb9c8375c855a189030192215db7d059  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
! 85cf3505a5d35811857642cf2ed54d28  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_compare_neg.cc
! 156210e52563af580b1e11c25a03ac89  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_range_neg.cc
! 488b3e67c05c5f7d44dc77013cd722f5  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/max_load_factor_neg.cc
  57b376626504f59753991e34bc78237c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc
  4780603df65da907f59b5dc2271c7d4b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc
  d1a56802059f8869425e49137d01db11  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc
  ced06789a8924ce0bc694421897b8fc2  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc
! d00076b79489ea8e09f9adac0fbaeca0  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
! 5104135670f313d46e697b806df3559f  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc
! 09992766e05700eeefdcdc85461c2f3f  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_erased_local_iterator_neg.cc
! f93d9755c0abc78c05e0baeeebe4046c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_iterator_neg.cc
! 88efbbc6e9aa10840cfa0d01026159da  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_local_iterator_neg.cc
! 360185314dd818c535e98b1f7cae95a7  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
! 6cf8f8910b603059c8921186c3e7c042  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/2.cc
! 7ee4d1c1785b6f429818ece0a2d1a53a  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
! d909d9ae2803c22c7bd063e9501684ed  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc
! 9e1478751ec28cde69e8fab7c526988c  libstdc++-v3/testsuite/23_containers/unordered_multiset/final_hash.cc
! 81c83120f045467a81baeb285d8a5262  libstdc++-v3/testsuite/23_containers/unordered_multiset/hash_policy/dr1189.cc
! 35fb183b183b0eb0c4653fd6d362673d  libstdc++-v3/testsuite/23_containers/unordered_multiset/init-list.cc
! 547dcbbd79d992efe614e24bd360b51d  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/24061-multiset.cc
! e24d2a846868689f5f7d0fb6eb8b8e8c  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/51866.cc
! 48718bd999d7ad38826d862f993a75ce  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc
! 68d19b74907e253c25f6e07379570493  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc
! c3752a38e2c1d19f72b6d75bba98eda4  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/hash_policy.cc
! 33060ae3884aeb43105d9ef4b80cedaa  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_range.cc
! 979959d02f973dad1e744522fb447b09  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single.cc
! 973ca1df06a62a1dab30c8cbba6d8222  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single_move.cc
! 934b535a4ded49b80dd2de6d3f07ca61  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc
! c8741641be72710956b2c2bade946f37  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/emplace.cc
! 1bae3c52c14e2257852a5564d63fe255  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/extract.cc
! 39801841ed2c7f34a0eb7458f14ed2d0  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/merge.cc
! b98b953e511d4ae9551d046145d4825e  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/reserve.cc
! 43fb59d331433c49bae72afd4d26a21f  libstdc++-v3/testsuite/23_containers/unordered_multiset/observers.cc
! e1239d6b7b7b78416495c0be144819a7  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc
! b666ad6aebe56ae26abd6ee3c0d85dc7  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc
! cd7e053fc67c7a3aa92c2e520cbbcd31  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/count.cc
! accd24778cca6578ff49b5e21efc7041  libstdc++-v3/testsuite/23_containers/unordered_multiset/operators/1.cc
! 3c2479fa680ad82a25b7d25080e36205  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs.cc
! fc2672535648c1265048f13c41f880b5  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc
! b118559bed92025073374fe261a69681  libstdc++-v3/testsuite/23_containers/unordered_multiset/range_access.cc
! e3543fa83b40cc6b2c9c95084b5e3251  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/citerators.cc
! c4b123ec1b853e57aee8473a46dee3bf  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/cliterators.cc
! 053fed3b4a22759cdcd6f492ef711968  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc
! 4b04e76ef28d28410c2d1c22b0ecc294  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/basic.cc
! 63715c0a58b6c14b87fd694d677683f6  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/generation_prohibited.cc
! 06b612af25bf4a1dc76dbe803f5f5816  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/propagation_consistent.cc
! e716ae07798070975613f64e8e368f9b  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/1.cc
! 00f352ecd4e7f21262ee2309099f88fa  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/2.cc
! fe3c1bae844aa980ff45f92de4ee98d3  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc
! d17605830706c27d1146da1a934c32e6  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/4.cc
! 260b82ac29348882d44fb97bd4545521  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/5.cc
! aa7b66ff87865b3b8421d48f7f545d49  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/typedefs.cc
! 71283986aa84cf78e58ffe546b330abd  libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc
! 38fef70587ec8784be988eeb762fa265  libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc
! 2f2864395e4bbb080d3816d9e66c5a30  libstdc++-v3/testsuite/23_containers/unordered_set/48101_neg.cc
! 5bb4f13ac1eb0781f4fb827abd192510  libstdc++-v3/testsuite/23_containers/unordered_set/55043.cc
! 826d40b065b77b2463b2a23c58ef1559  libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc
! 7d4078cffad68c7e018398f013e710c1  libstdc++-v3/testsuite/23_containers/unordered_set/56267.cc
! bcdc2a5d164f9c531bf8ab930f9edbbc  libstdc++-v3/testsuite/23_containers/unordered_set/56278.cc
! 819278868402e60b804312e08167dc12  libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc
! 481cfab68586036d13fe3dcf922f739b  libstdc++-v3/testsuite/23_containers/unordered_set/63456.cc
! 2b978f485848020c1774ccbaa43b631a  libstdc++-v3/testsuite/23_containers/unordered_set/85965.cc
! 69954da68812f12c548012f76de60691  libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc
! ee6d30a81859e77336d98507ea961c71  libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc
! 5f41b753c36c7b7bd8bb16ad20c3ed4c  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc
! 702d1c86724eb8fca8923ec16968154e  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc
! 51faecfc2b7469f73aa3edcd03c21293  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/default_init.cc
! 9b68e42eed40632cd58c68bf6454c1c7  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc
! 5da2fd9161a4b75ef12db101d6d13819  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/minimal.cc
! 7c9815b427816ac358ba7b12e18e3536  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc
! c1479a3693bd9b3f31a02d5532a8cab1  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc
! bf83eca103e748010b5e0b27d092b233  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc
! 6b0ccd7c28b70b0d450b359affed9475  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/swap.cc
! 37c0e62395be67da7a74a7de4af2df59  libstdc++-v3/testsuite/23_containers/unordered_set/buckets/swap.cc
! fc1585878230607f29cb3452abf0bb65  libstdc++-v3/testsuite/23_containers/unordered_set/cons/66055.cc
! 73270c53d0f1b7115671d9a3f38a3965  libstdc++-v3/testsuite/23_containers/unordered_set/cons/99985.cc
! 0747615d91c536c9817d63b95e793a25  libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc
  50d3a4852641ffb5d38114a701a2047e  libstdc++-v3/testsuite/23_containers/unordered_set/cons/deduction.cc
  247af40f0de6e07e87bdde64812f8659  libstdc++-v3/testsuite/23_containers/unordered_set/cons/default.cc
! 18385d579d2597f13bfafd90e5cd42f4  libstdc++-v3/testsuite/23_containers/unordered_set/cons/moveable.cc
! 6dfb5fcf619c7a3c70b97f0ad85b3783  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc
! ff678e2708f3fae6ea5d0a7f6e93d914  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc
! 8720b26f59788b0b50e380829bd3a510  libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc
! d01f4ace87c8df84fd3dde34ba9cb8fe  libstdc++-v3/testsuite/23_containers/unordered_set/debug/60499.cc
! 7fe56c16a56eb09203f1e4d69cc82a30  libstdc++-v3/testsuite/23_containers/unordered_set/debug/89608_neg.cc
! 8b7f4f03f08aee624f4c9b6dc4457074  libstdc++-v3/testsuite/23_containers/unordered_set/debug/90102.cc
! 1a7161ab0c7abffedae879d019ce9efe  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc
! 50d79fa8fe534ab9a00e0a7d177c95b6  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin2_neg.cc
! ca8b70a5f8e0699da789009e21c71f9d  libstdc++-v3/testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc
! 87c0e59eebcdc125c1906e4e70a0f92a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cbegin_neg.cc
! c0c6f9eb42060b2ae9b02b912bc24aba  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cend_neg.cc
! af53a7b52bbf326a7ed00248c354f3b7  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct1_neg.cc
! 14e90373147557949d3346d859955556  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct2_neg.cc
! 8ce89b09bbe12e739f771a7c85871e48  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct3_neg.cc
! 134ceb019039df1c2ecf2d2de4f835a5  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
! 59f9a80244e07d79110df35c0fc6b46a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc
! d18d7efc6c7e076507153026e32d1085  libstdc++-v3/testsuite/23_containers/unordered_set/debug/debug_functions.cc
! 1fe38ae0666b6165be4835ba58466772  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end1_neg.cc
! 0403c3ba4831c740f4c174e8e9ea94c7  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end2_neg.cc
! 8d3857763af8249a832781c7e4afd86b  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert1_neg.cc
! aaabe5fa343df9a9764aeb9ee8274cf4  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert2_neg.cc
! 4d05cada2ae0e5a03cc4e833c3179d34  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert3_neg.cc
! 0197aaf64c95622e4c6979734d80d132  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
! ce9fccfa0dd338884e40956b3ae6e57b  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_compare_neg.cc
! d0560b708a47105b9015f66081face11  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_range_neg.cc
! 9c6aa7d8c3f1b7a76aff50b12b89f3f2  libstdc++-v3/testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc
  8121fd537a86b2d9c88f3a74d9dfd917  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge1_neg.cc
  8abc555d1b878f2729647a5a9b417280  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge2_neg.cc
  fb91af2ae75ed5745c8773ed8318a311  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge3_neg.cc
  00a3aa9959b3b6aa3847806d2fcccfb2  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge4_neg.cc
! 280a6dfae11346cc8e36c17ef1fd3a3c  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc
! b08cbc391d7ae07f9a5248f7ac36047b  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc
! 4ff563684ca4f5d947dd2528399c506a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_erased_local_iterator_neg.cc
! 4d2cf63c1dd54d9548c09e6647df71c5  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_iterator_neg.cc
! e440eb054c7ea1ff1017f07ee7cc702f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_local_iterator_neg.cc
! 945f11b8070df2adf721d80f0099f5ce  libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
! cb1d2cc50e404929a274cb624148a567  libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
! 20101e431f8e59726628f824ed47e03e  libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc
! 6326f729e3759e0ebb1ad0f2433c5b89  libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc
! 3c808b77f30d195ca721457ecd43f79a  libstdc++-v3/testsuite/23_containers/unordered_set/final_hash.cc
! eb6ea37767eecd9bccde7206892e5dca  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/26132.cc
! 3d371f38d1b5fd00aad6bf702e615baa  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc
! 0cc6720280f484c4aab3b24552f50577  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/dr1189.cc
! f2d82905b1f370b27c43c553ca416809  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/load_factor.cc
! f1a7ba176e2e2f51faeff7d53e986508  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
! c6d712aba8852423fa780e63648e6033  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc
! 9694b159452b26aba8bce6e6c9ff21b4  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/rehash.cc
! f73fa58431e458ab472862b5de307c37  libstdc++-v3/testsuite/23_containers/unordered_set/init-list.cc
! 87778fbbb924c62e59591555153a9d4c  libstdc++-v3/testsuite/23_containers/unordered_set/insert/105717.cc
! 3ef448dfa3917017bdf1004a4540aa7b  libstdc++-v3/testsuite/23_containers/unordered_set/insert/24061-set.cc
! b32e78457f04c0fbfe87be7540bf2a9d  libstdc++-v3/testsuite/23_containers/unordered_set/insert/83709.cc
! 376252732812f7a58592af78de82eb5d  libstdc++-v3/testsuite/23_containers/unordered_set/insert/hash_policy.cc
! b85904ff658701b6edb35c0e6ea8a977  libstdc++-v3/testsuite/23_containers/unordered_set/insert/move_range.cc
! b7c5b2aff07878404b7416a880d002af  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_range.cc
! b3d6a1cf872a144cec41c7e757253322  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single.cc
! ea2d05769ddaef56e8e0cb21ee2aaceb  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single_move.cc
! f896ce71a0459739b069787016227a8c  libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
! 9f2b334599f77cdada6aeedbca98b184  libstdc++-v3/testsuite/23_containers/unordered_set/max_load_factor/robustness.cc
! 778ed19a9126db5e0894273c22dafb77  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc
! 304f35b8cbf7542b2d0f10b2c8b73484  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/emplace.cc
! b3d707d0ef8647e1593120aea2ce52d4  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc
! 2808b3b2e379e7cbc4188d8e7316b856  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc
! 411fa11f2956d229b10761e8fd6297aa  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/merge.cc
! 1e2f1a4a999acb88003f9efdd65bb74a  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/reserve.cc
! bf91c0c253d7803afc34c6f22f45fcdc  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc
! e4c4250f9b8ecd5990778f4b52fbd379  libstdc++-v3/testsuite/23_containers/unordered_set/observers.cc
! c8f7c57b382cbc817f18c1f3683eb3dd  libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc
! 612ae3ce559481a2014e8548effeebfb  libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc
! fe193b426a721b9cb01d176b5d9cec4d  libstdc++-v3/testsuite/23_containers/unordered_set/operations/count.cc
! fc1b10bed91a4cbe34ddb022dd8629b8  libstdc++-v3/testsuite/23_containers/unordered_set/operators/1.cc
! 8304e4d3cf140fa704198f7714fb3dbe  libstdc++-v3/testsuite/23_containers/unordered_set/operators/52309.cc
! 893c1db36a202385f3a2c9bb578cd3a5  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs.cc
! 64e4d3804523e1c998b549e40343b0e8  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc
! ca13e13aca7c8d49c1b6f6c642cc72d1  libstdc++-v3/testsuite/23_containers/unordered_set/range_access.cc
! 9401a9b3f96e33ffb0d4e36fe8aa5ecf  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc
! 018532cae4e45b7995a4c6a1ae6fecba  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
! 377fe85190b79a7db291f71b34a7e068  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/citerators.cc
! 2d0f0f549ca4c949682c94d04fc11827  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/cliterators.cc
! 598f0eb01eecdd71464964ad9d9147f5  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc
! 46c65c762d8e02ba2b0003feb7680f74  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_mode.cc
! b39d0dbabe51ca45dc64a8fe6d1639a9  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/basic.cc
! 908359bc0860871de012187649b42930  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/generation_prohibited.cc
! f2bac9f883372b1203072424de62f6c3  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/propagation_consistent.cc
! 899ac9c99ab8c936432f2cb04ba83443  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/1.cc
! 309401cdff58483d86fdbfa04da866be  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/2.cc
! 3e2ff7e594518ec67ee89c2757c1ee05  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc
! 65298056d874b406b135999415cbce1e  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/4.cc
! cfaedc9d91f3d9dbdfb5fb2fc39cbcac  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/5.cc
! d8a39d0e94c7eac91b042414d2f05334  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/typedefs.cc
! 9d3cbdf133dcf8143b2c380ca2ed1990  libstdc++-v3/testsuite/23_containers/vector/14340.cc
! 2f0fba96f975830a808db93e70e8113e  libstdc++-v3/testsuite/23_containers/vector/15523.cc
! c24fac0765c03b256a5d0aeed72523ab  libstdc++-v3/testsuite/23_containers/vector/18604.cc
! baa787f682d1145e4869f762afe7c17d  libstdc++-v3/testsuite/23_containers/vector/26412-1.cc
! ba8c57942b45e6962bd513ec0332defb  libstdc++-v3/testsuite/23_containers/vector/26412-2.cc
! a07a06abbeffefd20cbf78bceb23ab31  libstdc++-v3/testsuite/23_containers/vector/40192.cc
! 79e6ac02de978088cfafe31aea84940b  libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc
! 32f3ca38bb65f0291a2ac0e1bd61e5de  libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc
! 3f8768b110eb6dcb4f6e6db3e265a35c  libstdc++-v3/testsuite/23_containers/vector/48101_neg.cc
! a5e6700a2a84fc0b1f002e05017a83c0  libstdc++-v3/testsuite/23_containers/vector/52591.cc
! 98b078c16067b302488ad9af9959443e  libstdc++-v3/testsuite/23_containers/vector/58764.cc
! 6fe02ff854f16c5fd56f6be6cd5ede08  libstdc++-v3/testsuite/23_containers/vector/59829.cc
! 5621b32ddf6633edc0ebd4980dafce1c  libstdc++-v3/testsuite/23_containers/vector/63500.cc
! 8136b652fd3b368de1b902d69ceead52  libstdc++-v3/testsuite/23_containers/vector/70303.cc
! 66d0f776d2c31e8e454e78933220d9b2  libstdc++-v3/testsuite/23_containers/vector/92124.cc
! 147baba18244a4f051ef7d0475b48a96  libstdc++-v3/testsuite/23_containers/vector/allocator/construction.cc
! 7e47a884971671bfda28ba6023d8689c  libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc
! b42f676183465738e18df1b4bfcb64da  libstdc++-v3/testsuite/23_containers/vector/allocator/copy_assign.cc
! 0785cb53d907337c0408f661f850b257  libstdc++-v3/testsuite/23_containers/vector/allocator/default_init.cc
! 27539917e90bad3081ef5f334b0a1444  libstdc++-v3/testsuite/23_containers/vector/allocator/ext_ptr.cc
! b41648d8d4cd01cfe5624af037fb2423  libstdc++-v3/testsuite/23_containers/vector/allocator/minimal.cc
! 000d50bae1d8e8ca3ab804efab094897  libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc
! f773c108033cd139b93bc33d562df472  libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
! b18f4fd4e99fb5afb4a07e80e90c7fd3  libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc
! d180494eb6e097c78578d1b9a3e910f0  libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc
! 6548323a73fee97190ce031a908c7fcd  libstdc++-v3/testsuite/23_containers/vector/bool/1.cc
! 00547507c5a45b6f85c00e5fdbccff4c  libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc
! a830cc0e83dd9df546274fdba18aa9fc  libstdc++-v3/testsuite/23_containers/vector/bool/23632.cc
! 600c54836a5dbe96bb9a78a26fcb77ba  libstdc++-v3/testsuite/23_containers/vector/bool/6886.cc
! db3000bea2e5400e6fa098f5f2045e51  libstdc++-v3/testsuite/23_containers/vector/bool/72847.cc
! b5c49d8dad38eff83740e30632ee2b28  libstdc++-v3/testsuite/23_containers/vector/bool/80893.cc
! f4230443a3feda858c8939974edb01bb  libstdc++-v3/testsuite/23_containers/vector/bool/82558.cc
! a5e9cc044dca5419b0dd551dd690acaa  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy.cc
! 48be012d82a222e324550392414e1efe  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy_assign.cc
! 2638890341a017542203b1fb4987a7fe  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/default_init.cc
! 55bd15fec70a94668487cb5c8ded0df2  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/ext_ptr.cc
! ddce1d839be1ae13b82e9a0c421350fc  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/minimal.cc
! 2fb24058575c263d6f17fbd21eac34ab  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move.cc
! 2ffe3066c5d0f89f917dccad02fdee90  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc
! 21241dc725e9f60afec074ded60948d7  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/noexcept.cc
! 367f27adc1f8771787d15e7888fad23b  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/swap.cc
! 207ff9cc2bd7e9f620e7ce0d5283a76b  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/1.cc
! e769cfd5846d2ec62fa83df607879554  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
! f3a53ae538351a02f5ec621190a341fc  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc
! f672646095d11205cf50faf1509941ce  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/shrink_to_fit.cc
! b219fb31276e2ec1288a331f246da73e  libstdc++-v3/testsuite/23_containers/vector/bool/clear_allocator.cc
! b614452daa5ff7698d76d86640c06504  libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc
! b884f61a65f4e8ddad1bc99f8bba4a4c  libstdc++-v3/testsuite/23_containers/vector/bool/cons/1.cc
! fb0c2958e4a376caf92e000fc21e6496  libstdc++-v3/testsuite/23_containers/vector/bool/cons/2.cc
! ef689945361dfbb1517a278a13f3b17c  libstdc++-v3/testsuite/23_containers/vector/bool/cons/87809.cc
! abb8e684b5198d2f43e773d47fbc26e7  libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc
! 1a1855c5f482910b48be9328ed9e0271  libstdc++-v3/testsuite/23_containers/vector/bool/cons/noexcept_move_construct.cc
! bd1112e48ed191a945eed483d8fcb137  libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc
! 35e0cd4f42eda824bbba54df3a2bb017  libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc
! d1114cc2d510dae7a9bf1b8326a487d5  libstdc++-v3/testsuite/23_containers/vector/bool/emplace.cc
! 708465ee83ee8d2cedd6178588b80861  libstdc++-v3/testsuite/23_containers/vector/bool/emplace_cxx17_return.cc
! cd96e65058ebe814656e826478326fee  libstdc++-v3/testsuite/23_containers/vector/bool/hash/1.cc
! bb235d56a0913b726dcbcf78e6e2d6ff  libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
! 527c1ee736303057226c1aff439f6619  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/1.cc
! 198e24e4b0447ebd1f59ee566c4f9ad6  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc
! da7f433cb57b9828232873e5f792cde2  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc
! 37dcb4779fd0a3c45aed7b30badd1644  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/1.cc
! 84283a00aec2f1a36dbd34b44f3c3459  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/54577.cc
! f64d6afad224bdf7a9d243eb4368df65  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/1.cc
  8411c535ec979be02e85103a2ce6a933  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/104559.cc
! 4ff0ed1496b819e4e66002ad9a157bbe  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
! 1b131fd70a2f159ac1c301ca84c0655c  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc
! fe4e48c7cd28dbb61b3c6bfb2d49b000  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/1.cc
! 32a18dddf07352216e744c9b7c9e5623  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/2.cc
! 1611763e1d27a3886a180174309278ae  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc
! b8fd09a7b5c03343acbe3b681adc8644  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/citerators.cc
! 65bfa8ec5c6325be689882039c4734c0  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/dr438/constructor.cc
! cbdab8cfa0c2b9e6149b5ec7ea74a87d  libstdc++-v3/testsuite/23_containers/vector/bool/swap.cc
! af4d87023873dcb428ec56a1333b29b8  libstdc++-v3/testsuite/23_containers/vector/capacity/1.cc
! 9aac56e2173edb2f2546657fffd78ca0  libstdc++-v3/testsuite/23_containers/vector/capacity/2.cc
! aa1fa46c968458b311c83677aedff5eb  libstdc++-v3/testsuite/23_containers/vector/capacity/29134-2.cc
! 1880ccda490e8991825473c1793e4ede  libstdc++-v3/testsuite/23_containers/vector/capacity/29134.cc
! 66498e449203b25e221d9b3dc4b611bb  libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
! e8762042ca184671dfc7db1c7f5e4793  libstdc++-v3/testsuite/23_containers/vector/capacity/8230.cc
! 15ba7dcbb029eeb5f5c19f196bf072bc  libstdc++-v3/testsuite/23_containers/vector/capacity/87544.cc
! 402ee0d2c16c5d03df6155b7cc99187d  libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc
! 4af09c1e453c4cb58db7ab34c1570b88  libstdc++-v3/testsuite/23_containers/vector/capacity/max_size.cc
! 47d6441f2f7cea7914c2efbdb9dcc289  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable.cc
! 0611c9a533ccb44a44a08d1493ee9afa  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable2.cc
! 4714a7466646152aa844669c5f0d0542  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/1.cc
! 6a5dc049003d24a1f8c3d58ffb7a180d  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable.cc
! 7669e0de58e824e1b4f7d68a64adcb41  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable2.cc
! 4851d5a509d22261fbe19c0f44ce6eb5  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/resize_size.cc
! 47b2c95f0fe2b9757fa5ef7226866118  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc
! 0f2bf884b434734c3fbabc0f1190512a  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit.cc
! e5ce6172cf6fcdb926ab9b03f3e76ade  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit2.cc
! 031e5adf8a70e8ab5f1a41371962e7ac  libstdc++-v3/testsuite/23_containers/vector/check_construct_destroy.cc
! 9320329243f60de2ac1ddcfb8440d0e2  libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc
! fa4a6541280ab8fbe2cc5ac8b589b4be  libstdc++-v3/testsuite/23_containers/vector/cons/1.cc
! c7f03648598ef0cab3092f51b3f00744  libstdc++-v3/testsuite/23_containers/vector/cons/2.cc
! c664a685c6f3a9f8c19d7c9e275a8a93  libstdc++-v3/testsuite/23_containers/vector/cons/3.cc
! 6c1d7fcf8dd6d3449ee74f6719a389a8  libstdc++-v3/testsuite/23_containers/vector/cons/4.cc
! 42a7a5d7188d303db0a05da1913ba7b8  libstdc++-v3/testsuite/23_containers/vector/cons/55977.cc
! e4478edb9ea0ec01c635d2e8d0567559  libstdc++-v3/testsuite/23_containers/vector/cons/6513.cc
! c3326bb59158b0a0e517056de4144bd0  libstdc++-v3/testsuite/23_containers/vector/cons/86292.cc
! fe9448e3fdc4f2957dd16c460afb8f8c  libstdc++-v3/testsuite/23_containers/vector/cons/87809.cc
! 535e10423c3d7112f1d14a7807def0b0  libstdc++-v3/testsuite/23_containers/vector/cons/89164.cc
! d8bfee2d42c04b3232610c2675915b92  libstdc++-v3/testsuite/23_containers/vector/cons/89164_c++17.cc
! d384328eb6ac82a009863ab30d2b995b  libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc
! a6306b96109e4ac88fec3e48390ea520  libstdc++-v3/testsuite/23_containers/vector/cons/94831.cc
! 4b4cfc5dac0acd4c5d6e169b9a991815  libstdc++-v3/testsuite/23_containers/vector/cons/clear_allocator.cc
! 19919a2a45d9a0cbe1362ca9c181aa9f  libstdc++-v3/testsuite/23_containers/vector/cons/cons_size.cc
! 1ce2272844a9da337ee743c345bec85b  libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
! 46f0c2a0b0960e4576e3270d26769808  libstdc++-v3/testsuite/23_containers/vector/cons/deduction.cc
  7a66bf7f5aca27ddc8ca203f2f55a9b6  libstdc++-v3/testsuite/23_containers/vector/cons/destroy-adl.cc
! dac5f3f9aadcf745fb603c739588aaa2  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
! f7bab4eab1d2bc6e522c4cb05878163e  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc
! 5893577535f0a3d5bb18f37b6f785f5f  libstdc++-v3/testsuite/23_containers/vector/cons/moveable.cc
! b59054fb1d00091880d5605b974fa84c  libstdc++-v3/testsuite/23_containers/vector/cons/moveable2.cc
! 43e21483e0953a254bd6139216fbe169  libstdc++-v3/testsuite/23_containers/vector/cons/noexcept_move_construct.cc
! d606b36336a2dadf791e67b979e4339f  libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc
! 24f492a04ed1cc923756df1bae071b06  libstdc++-v3/testsuite/23_containers/vector/data_access/1.cc
! 2da738c5f0181f4d71a28da3da5b55cf  libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc
! 74e559d168191ac8aab8ee18bb874277  libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc
! 785b48251b32d9a10715191b6b3f232b  libstdc++-v3/testsuite/23_containers/vector/debug/57779_neg.cc
! bb0d9a5fe268b68027c7489b19b3402b  libstdc++-v3/testsuite/23_containers/vector/debug/60499.cc
! e8125ed070e0cf2264709645a20b9832  libstdc++-v3/testsuite/23_containers/vector/debug/60587.cc
! 7248a9d540a766baafdcb036fad35a38  libstdc++-v3/testsuite/23_containers/vector/debug/60587_neg.cc
! 47b5cee992e61344c11e078a6652bab2  libstdc++-v3/testsuite/23_containers/vector/debug/90102.cc
! f64533f104fcd7b3c712a603fae7f687  libstdc++-v3/testsuite/23_containers/vector/debug/alloc_prop.cc
! 593e09eaadee5f8080c425ea40c03816  libstdc++-v3/testsuite/23_containers/vector/debug/assign1_neg.cc
! a26e9bf54d2b71f27e159577a2afadce  libstdc++-v3/testsuite/23_containers/vector/debug/assign2_neg.cc
! bdf27fc4d63fa2169f932a13bdf4bc6f  libstdc++-v3/testsuite/23_containers/vector/debug/assign3_neg.cc
! 64aa1b917c51466698efc561f039f2a6  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc
! f6db38c243ffc226aad9a0f7df262d93  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
! 1338a1cd93c971ec517e023b6d60c936  libstdc++-v3/testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc
! 70e68d1757c17b1591477a13b2a96070  libstdc++-v3/testsuite/23_containers/vector/debug/construct1_neg.cc
! ca46bfd29389f22b89a10f6c3ac31f6f  libstdc++-v3/testsuite/23_containers/vector/debug/construct2_neg.cc
! 13c64d92c3418fde603c50b560510676  libstdc++-v3/testsuite/23_containers/vector/debug/construct3_neg.cc
! 564c77a5158d94bec0846e4bae593c42  libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
! b902a34628892e385d916335c357f558  libstdc++-v3/testsuite/23_containers/vector/debug/debug_functions.cc
! 074d3c5e89586d0eeb00dc22a70f73b0  libstdc++-v3/testsuite/23_containers/vector/debug/insert1_neg.cc
! 7d732e06c7fa22be9023047ce5888e93  libstdc++-v3/testsuite/23_containers/vector/debug/insert2_neg.cc
! 61066fbf7f85da4346ee6117852fdfcf  libstdc++-v3/testsuite/23_containers/vector/debug/insert3_neg.cc
! d5621b02b7bab64b58ea5a3606adbc11  libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
! 495f57b6edd7e945224617032bf677c1  libstdc++-v3/testsuite/23_containers/vector/debug/insert5_neg.cc
! c6f3aad96fdd59088472fef9f82e0f5f  libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
! a5826736d68383ea77d4fc8ee1ea8a38  libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc
! e284f8819d696ca78f7f913a1d511f94  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc
! 10ad7ce9bba57deed580c7a037720997  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc
! a3fa6ac892c03af3e9ac5480223c052b  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc
! 130f93fb2f94bee544657cdad0aa87b1  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc
! 964343d488920297210d56ae15eeefa0  libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
! 4a87196e9403a624790ca9432dd45cca  libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc
! c5e5cee7fe624866df9bbe1b9e4f8469  libstdc++-v3/testsuite/23_containers/vector/debug/multithreaded_swap.cc
! 0c398477953df3fbea54c9ecf0e01053  libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc
! db632134bef944d86d86bae8a2aec09c  libstdc++-v3/testsuite/23_containers/vector/debug/shrink_to_fit.cc
! 96f74905ea39392fcf31c306d93cab39  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-1.cc
! ba528ca2ec0e773184bd12bfcd212821  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-2.cc
! 376ccfdceb584610d894c16e25d05b4b  libstdc++-v3/testsuite/23_containers/vector/element_access/1.cc
! 16aff27648691adf15bfc9b67a08656c  libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc
! df1c7c232f21b147a67e7e7f9e0ccb8e  libstdc++-v3/testsuite/23_containers/vector/erasure.cc
! 5823165ec3749736e00bc471ea039fd5  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/citerators.cc
! 41041111a99d4ddb09acf87da4ba6b5f  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/data_access.cc
! feaf22a04bd82ad0f624ca18cc762133  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/1.cc
! 67cddfe7f8693436b99e179a5d3f6928  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc
! 1f568cba50fcc6924c874a88479051c0  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/element.cc
! 5e87fe07de7222b3e116a94fad1f7759  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/erase.cc
! 5c7fdf339c962a4af125aaff85ee3c36  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/insert.cc
! f15ae949759d6c219516785e5d2553a6  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/resize.cc
! 3bd6d5ac9ffae953cd37f558ca334f93  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/1.cc
! 01f352c1cd607ea4db11d71b20246f5a  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/2.cc
! 687080e9736d13038efd6e392e23b0a4  libstdc++-v3/testsuite/23_containers/vector/init-list.cc
! aac0edb6e9fbe80b1a089339f5f6eb55  libstdc++-v3/testsuite/23_containers/vector/modifiers/1.cc
! e2aa94381f27ef33dd75870cb737488f  libstdc++-v3/testsuite/23_containers/vector/modifiers/2.cc
! 039811c696bfdd7db2a5ee01ec510320  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/1.cc
! 3922aaba2a433c66301ae0e55030a827  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc
! 79f9958e484b07409ba222ba2faa32b4  libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc
  00bc8fb19959079360f78f326f302b5b  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/1.cc
! ddfeaf19254437c28ec94e8dfe8fabb3  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc
! 7475bbb09e06fd58e75ad4a22dea481a  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc
! aa8694e9581cca7d2c7cde97479399d9  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc
! 5cff574f0670245a51f2d1e6004c249e  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/1.cc
! fd16d373b8a28303b6943e6339972258  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/50529.cc
! b4ff6f2b7d6d5964dcf90b3d262e02d6  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/54577.cc
! 6342fad60af43c688fae7b5d17f2d0d7  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/moveable.cc
! bd380b2e874bfa2f8d63461b8f4a8add  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/1.cc
! 0a5fb821e9a92434f958f65b5fc083c7  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/58148.cc
! 6ab51574ca3c277f756fe3df91890541  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/aliasing.cc
! e237c5e34318ddc293afe0b0a6b36839  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc
! 6e313c2420fa6f17886b2f672615f35f  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/self_insert.cc
  8fb5c601f412e71f5977219b7d89f18d  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc
! fb16ee13d327a03c0452886cb723080d  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc
! 2f94f2f6c98e2efb2516ee180e3c55cb  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable2.cc
! f2b0284e80897ac080e298ee2edcc668  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/49836.cc
! f13928764ad3413456ecdcac841cb955  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89130.cc
! 5eb0636a0c51ba2e30c2f690ac8a27a4  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89416.cc
! 22c8466b6a562e32f263f77f51560a72  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/strong_guarantee.cc
! ceb73179b5ae4a668be768d817a05306  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/1.cc
! 99b732b3220a41435951237657f89f63  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/2.cc
! 8c650c34bec586db18c252282a5b2f72  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/3.cc
! 60880bfb14632a4fa03a825957bdfead  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc
! 1d09568cd24b6e2ecd1cd425644cacca  libstdc++-v3/testsuite/23_containers/vector/pmr_typedefs.cc
  33db2bb591e55ad911ea124e372841ca  libstdc++-v3/testsuite/23_containers/vector/profile/vector.cc
! 9f178f5622577bb6628406d075d64bb5  libstdc++-v3/testsuite/23_containers/vector/range_access.cc
! d6b18fe4e87e4171860b2b7ba32cc33d  libstdc++-v3/testsuite/23_containers/vector/requirements/citerators.cc
! d30fdb96e9b9a8d2377dd238c5525b38  libstdc++-v3/testsuite/23_containers/vector/requirements/do_the_right_thing.cc
! 2c33b692a0135746385c632d6c4d3e55  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
! 2a186309affc0781fb1a11264f6d6578  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor.cc
! 607d0877b4bca49162bff8ff413db365  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
! fb96c75f546a90cbbbec162e92b36302  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
! 408e7ab7ee893afc09e01e5d88bd8d37  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
! f5808b845e0f800981174faf2911341c  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/basic.cc
! d3ef4dac1a30e959f72f7c69f206a871  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/generation_prohibited.cc
! cb24b32c4187bb67cd912a5901b2c06a  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/propagation_consistent.cc
! 5655bd4385f12dcf4c6d0d2eadb7b764  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc
! e703a073188aba7737417d1810f19a9c  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1_c++0x.cc
! 864b962306d1c82770068184041265f9  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc
! e3d88df389fcd0b726a3bc4c93264067  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc
! cef786997d07f1b03d5ac9ca0b7dc97c  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/4.cc
! 0285413cad9a913b35205b14a226f2b0  libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc
! f76e0c8c8e4a3759145265dc49b2c284  libstdc++-v3/testsuite/23_containers/vector/requirements/typedefs.cc
! 2a52fdd1bf4ff731c72f0336607d475c  libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc
! 32f78dfb77e714f75ef6b8488e80d933  libstdc++-v3/testsuite/23_containers/vector/types/1.cc
! 1f67d01c546574d6339de0f88059f4f9  libstdc++-v3/testsuite/23_containers/vector/types/23767.cc
! 85f7e3bc6c754c99321e9c58bf82bd58  libstdc++-v3/testsuite/23_containers/vector/types/pmr_typedefs_debug.cc
! 71c8f9b60c7cbdc449b247214114d700  libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc
! a093113957c91d1cf1a166144de5b26f  libstdc++-v3/testsuite/24_iterators/aliases.cc
! 5327edf021e1c1e05ee3b132f7dae6f0  libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc
! 0fa4310639c268bbfcdc9ca336d78629  libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc
! 50870d295c25e53d39ee17ad5c5688f5  libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
! 2057740b67943f00bc7308c7c6cad782  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc
! d7297a501d19ede93d10c2e4424c8f54  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc
! 32da4c453e7c72cf78d088430b1ae5d5  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc
! 9349076c194ac1e5f64d96b9fa72665a  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc
! b39bb7078bd682d8538839e95818ea1a  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc
! 834e5194faf2e35dce7a44eaf726d413  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc
! ae8505ef374dd9974845cff7aeaa5d37  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
! 8d13a2561e41e20480b76ba37c046ca5  libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
! debb68c68dd5189b867e83a0950968c4  libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc
! 6f53257e08db7bf79198e821fba81d8c  libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
! a827335620d308b35c53b3ee1c9877b9  libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
! 19962f4a948ee8a811eb1d167bc7885d  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
! e0a48c815909ee67a38f78eeb920db89  libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
! 3941f812a2cc88107aa50d5fa67d2cce  libstdc++-v3/testsuite/24_iterators/container_access.cc
! ff373ccb63010db03d4b9fc644be36cb  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
! 355ec131f5c874467d4e57e6f83aa348  libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
! c4578e9138804397582ab09fb8ae0be9  libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
! 7b5e5aa4292ba9e356f2d182d1e498a2  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
! 564e115ff4a93acb59630b87fa2920f9  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
! 129fb7a708505b7658a965e4734efa23  libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
! 4628b9edaabe057bd16fa80f66fa98ef  libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
! aae04855d68526603b64dfac6700c76d  libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
! aefa346a1ce0c8098fbcc79cf583de94  libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc
! c2ab2ac172f6cfa5558835ba26066369  libstdc++-v3/testsuite/24_iterators/forward/concept.cc
! 57925b1ba0c08743628a5b81747ce22f  libstdc++-v3/testsuite/24_iterators/forward/tag.cc
! 49e3573c2718f8d27a8714548095d47f  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc
! 8fcbec54738d4db2c3717c1be57770a2  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc
! 37f840633717412e38825f5a90993bbb  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc
! 548806f339905366f3129d4b1ac1448d  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc
! 85ad977cdcd84f052e6533fcca4f076e  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc
! 69eac4c3e7faf647b372f4cc4ff70508  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc
! a2dbc2e704ec8c9b6500c1cad2a6d305  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc
! 930bbcbf3b864bbc7d3625ad6cd311ab  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++11.cc
! 9fbc34bd558ee4746c2b288a07528115  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++14.cc
! 895c88ee67ede81603cc0fd32475a2ca  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++17.cc
! 2d97264a6e38de76cd68b8b4380efb9c  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
! ee3ebda78e45b4955e4d7d07e90b0f68  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++11.cc
! 55b5dd511029c34f8c8fb55fcded3661  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++14.cc
! 78dfbcd3b5231b6c9dd1d3542ebae50a  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++17.cc
! 51acd3bec06fd86f2a5d0a81a5f3a0fd  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc
! e400a0fbf5c09bc488927656f847823f  libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc
! 271bc7e21fbc557ddd69f5ca6e90a167  libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc
! 6293c732540e05cda90f807f444b0120  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc
! 67984a81dea43899ffbfbccee41529bb  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc
! 8dae4fb6c5bc3c777a6070e15aac28e3  libstdc++-v3/testsuite/24_iterators/input/concept.cc
! f5d7b55af0b21732d941894a392c5486  libstdc++-v3/testsuite/24_iterators/input/tag.cc
! 680c705c3bfd80b03e711b899789983f  libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc
! 890dd55c149d17a984d4956e1d7b859c  libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc
! d1caa1f2bf3ec9dd16c47b12f1b2b7a5  libstdc++-v3/testsuite/24_iterators/insert_iterator/dr561.cc
! 97549020d727c3f83ad008bb679cd780  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc
! ca3d13778c0c80311acf61cc6b32be60  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc
! 8ba5488ff96beb476922d28d4e21b196  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc
! 2439f145f677dc2ea6993fd21cc64e12  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc
! ed715a19eb62e470d1e8f47b0582b91e  libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc
! 2f86bac49ea5d5f0281ea6f519b3d4b2  libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc
! 4884f936954520f0e1d6dab2a3d30c73  libstdc++-v3/testsuite/24_iterators/istream_iterator/70766.cc
! 387e134c979fe11ebb72e782dffb6632  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/constexpr.cc
! 5a2345bc7bf41973c99847b32be5e98b  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc
! 5fc959e530af60fc374dda8cc7302547  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc
! 722fba5f66f393206764e6edb77ae51c  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
! 2d00e7f6ff4ba9e992b66a109d3209d2  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc
! 82c2d1d6580a4b91c73034088080b212  libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
! 7d12f077ff566bf32795441b77385f39  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2.cc
! 62b6026aea56196b31df1c4191fa355f  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2627.cc
! d11769fe782ae211668b3927ebbc8271  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc
! 14cd0b933a307be0607eee9eb3639e4b  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc
! 23cf81cf8faea73ae4e6147c0d36e85a  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc
! ec8c0404c262d8376788bdaf8b8a9558  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc
! d33886a11147c426ef2cc8b3fade594a  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc
! 759a9f07182882763f4a748d7869bb12  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc
! ed6bee16284ef79c7348e4bc0e971d34  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc
! 8a6414ea5db9aa1c341ee7f3793b84af  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc
! 62bfa1439609613e10b082d75afc47ce  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
! e80b0b8d79e44d1adab755e4bf37dc6b  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc
! cab100c51cefa4f6fc6826870009ffee  libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc
! e994514992fdebd36bd2a0ae2580c19c  libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
! afb2c8d910e711b7d1feaaa3c13032af  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc
! 86d065151bec948ce6c799c143bf6099  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc
! 2da36d9975a1210939982d36b767285a  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc
! c2028d3caaf006894db2b969966f02da  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
! dfc826bcfdcc73ea48c29bc164a8cc63  libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc
! a33efb91b787bf40c3d4736fff85e4fd  libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
! b71c164c19f41e605bbd1c5406034051  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
! a8e3e1f3fb1408d1056247dd051b75c7  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
! 73cc87e3970927d6d0a2da1edf59953d  libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
! 73d58e3cbae9543e1eeb43f9d31428f7  libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
! 9b9fad43f1df4f5a1f9882976e56735c  libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
! 90deb52d353436af1d0ac667e877a9f8  libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
! bc688d904bce917c2f66ab4bb619fc40  libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc
! ebe18fc0e7b2e2c74bd59ee0815c30ae  libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc
! 6106a5c9649677af7873b7937b568810  libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc
! 5a55f4f2a0b0fdae5bfc8823fae563af  libstdc++-v3/testsuite/24_iterators/normal_iterator/greedy_ops.cc
  4ff5db259d95f86dab8a3a9b2f91f78c  libstdc++-v3/testsuite/24_iterators/normal_iterator/to_address.cc
! e72e1dd0c33370657f87fa0967b55551  libstdc++-v3/testsuite/24_iterators/operations/26020.cc
! 77477b91ea06f12c4d38d549d7892e59  libstdc++-v3/testsuite/24_iterators/operations/40497.cc
  631af97d6c75b598ecf8901dc62067b2  libstdc++-v3/testsuite/24_iterators/operations/lwg2353.cc
! 25fd4fb2047b2d0d1562584ff084c5b1  libstdc++-v3/testsuite/24_iterators/operations/next.cc
! 1f2651cc97311013d55d2a0d741d4042  libstdc++-v3/testsuite/24_iterators/operations/prev.cc
! 0d150b8d0ebab5645922337ac724e703  libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc
! 6f17aa498d0e5df3e473962527d97dd4  libstdc++-v3/testsuite/24_iterators/ostream_iterator/1.cc
! c6fe60706489b65f84447467a405627f  libstdc++-v3/testsuite/24_iterators/ostream_iterator/70766.cc
! f0d42dde02367e015eeb0c315477e4e6  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc
! 75b6cedeab9821e9eb8718bd22c6a6da  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
! e656375ce391074f599dd1418284c42b  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc
! eece6013f04be4391abb3b8654cf7cf2  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/2.cc
! 1ec06e63b9b1b91be5efcf66b96fed70  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc
! 4773c93779136a52ad9f520489e05778  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc
! e0b95eb8f185a228a0282f31aa012449  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc
! e2df25a9381e57270407dde4520776b5  libstdc++-v3/testsuite/24_iterators/output/concept.cc
! 2c506d4a38adbaa1e8fc5c3566173d52  libstdc++-v3/testsuite/24_iterators/output/tag.cc
! 935bc3e43ac43eb9a5b8db8b87d13086  libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
! fa507c8df8f32770307c86584711d7cc  libstdc++-v3/testsuite/24_iterators/random_access/string_vector_iterators.cc
! 5a6cbc9f14a1d16b8d2ee61b154b514d  libstdc++-v3/testsuite/24_iterators/random_access/tag.cc
! a94f613ccc7e72ebfe32810bec47d954  libstdc++-v3/testsuite/24_iterators/range_access/range_access.cc
! aa9930f1ed9f06f2d99c91ddab8802af  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp14.cc
! 230cbeb867349abbb207591cbf77fcde  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17.cc
! 0e9302d447be12087af10710a44dd6c6  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17_neg.cc
! 009c13941879824940a440f0226a915e  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc
! 8e42a964f4fcae70f2482af7a8528d1a  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc
! 0309edfa4bb6cffbef5ea77f1c932601  libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
! 71ec18369f3a12952163565985f0b100  libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
! 6d7eb0347f53ca13b926d9f9b99c9a2f  libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
! 5dcff108eb2f62baa60bfa3a74d92304  libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
! 88a53a38be47a524b07722f68deb33be  libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
! 3851ab6d95bc78163ba5186545dd9eb7  libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc
! 719157d78f9921ad711b728fc354eac9  libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
! 614701f7ea3bfad828c724f514f9002f  libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
! f8bbf55fd33c78caf8bdf0eade4a5a52  libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc
! 9ae06bd6a5746e3222ade58cdd913bed  libstdc++-v3/testsuite/24_iterators/reverse_iterator/11729.cc
! ce58b5ae2cead025afa927d2f6c1dee4  libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
! a1e0d62c6ab5f7ce185c2032046d344e  libstdc++-v3/testsuite/24_iterators/reverse_iterator/3.cc
! bb42aa9101805267e625d12941717a8c  libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
! 5bdb4fd1d364d01e0e7711874fb828a7  libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc
! 760b1aa94d8e195391e5079d4bd2d457  libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc
! 920a670a396b2bb097c1dd5f517c6ea8  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr1052.cc
! 6a39f8d41169e1200b4786f6dd631e70  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr2188.cc
! 1f98259b3bf8796d6ffd27d62334c4e4  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc
! 1c36bbb89a6c726213052cd705d26b8e  libstdc++-v3/testsuite/24_iterators/reverse_iterator/greedy_ops.cc
! 03e554cdf5761bf9ff46ebb0c7f6ee79  libstdc++-v3/testsuite/24_iterators/reverse_iterator/make.cc
  b0c0208d50f550375365900191253233  libstdc++-v3/testsuite/24_iterators/reverse_iterator/noexcept.cc
! 492ea1c876acf144a05be64860f450f9  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops.cc
! 9c9baba2f023c757e66a47444465b154  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc
! edfa376e8a45990d6b411b09ea5b6ff1  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc
! 58c0f91e827f907f8a87d00c3601d43a  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc
! 931461afe5297a9d413e7f617ce46994  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
! 7be8c6994e6a4a8b5cc50d23317a605b  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc
! 5733f38d29a2735dbbdc854a18e704c7  libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc
! 34ff14ef85063c7e30b078a7b4b129c9  libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc
! 40bdb42340b8c6c7003477f49b614653  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc
! 0091f614ec037f5c453155e3fe3dfd22  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc
! d20e66992d9de479fde71e09a8ac9de9  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/2.cc
! 2c6ae45a1292c1c482c8bacb1a58bbb9  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/pod.cc
! 7cf02120de27e774efc1c2db4018d97e  libstdc++-v3/testsuite/25_algorithms/adjacent_find/vectorbool.cc
! f568e4053ed95788f2bec0126641b871  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc
! 503445c6225d72ed7facaf353e497d30  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc
! c5df4996660e78f9e2b03c23ca2e43f2  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc
! a74bea6a4e99c34eb2fc0a8c9660315d  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc
! 8f71b80e952e1d775c131431c41976cc  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc
! 1980b119273e54833b2e51fd039eb3fe  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc
! 0c81e2613e2981da402d5fef413a5c24  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc
! 3492975db6cc27b4030209cf4ac92673  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc
! cb893900a8a46c21b6cb24d5c64899e3  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc
! 1b0a7ba76f3db322c973091cad785ce8  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc
! 6e7a6d113d4b24e1e84a0cb48ceeb17b  libstdc++-v3/testsuite/25_algorithms/all_of/1.cc
! 8e1f9186314be653a5fe9aacf214ec08  libstdc++-v3/testsuite/25_algorithms/all_of/check_type.cc
! 751bacf805f9f9cecdaa95a5ab399e03  libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc
! d8ad0fbb3fb124abd3bb7cfff00b0233  libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc
! 1b9de7a9090e11335c79222a57316013  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc
! b911a8da63d6133b4262b190c0086ec4  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc
! 98c242cec6745c79cfc381d147f3dc99  libstdc++-v3/testsuite/25_algorithms/any_of/1.cc
! 24e5c3db1fc858e6da4c24fd6a1d87de  libstdc++-v3/testsuite/25_algorithms/any_of/check_type.cc
! 65501a206ffff139be1d7efc184c40a4  libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc
! 182170434621f4336add53977be143a9  libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc
! 760e3f3177c19b74c6c5f032cc315ddd  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc
! 1e264c9f5404112e87dc1cbb63a7f610  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc
! 61637b196b0b5097608ce53635f0d223  libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc
! 35dc5e07dfb7bf7321d96361cf757850  libstdc++-v3/testsuite/25_algorithms/binary_search/2.cc
! 31fdef7375b03db4b54c84c84c2e3ad0  libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc
! 901b5a057fa1ca518bc84c47c062bab4  libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc
! 78c42d74ec08a27ab8239d0c307a4317  libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc
! d483bfcf9976c4243b5dab201622c037  libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc
! 408b6cd53b54d3dc09303ff3cde69857  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
! 563a4f03c459a263c20024757cf0c6a0  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/pod.cc
! ebd2888189f51e2e99fda7817e8b5b04  libstdc++-v3/testsuite/25_algorithms/clamp/1.cc
! 1aa26d633b0421ca4981c4b9f2ca018c  libstdc++-v3/testsuite/25_algorithms/clamp/2.cc
! 75faf704873f59feaa367b12d63c21a9  libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc
! cbeaae1582a4aea8aec524b578bba8b7  libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc
! 0e3544496d27d9600076b10eb0a695dc  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc
! 2a9c070cbc2013f09aebb1ad0c5f7a28  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc
! c629fb829445d4fe899403deb3f1e8b1  libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
! efaf386a62222b506e2e629523f82be6  libstdc++-v3/testsuite/25_algorithms/contains/1.cc
! 0719c4dc9fc16425ac3f7ec38de3dbfe  libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
! 6c4217e480602bd852cc85e482e32892  libstdc++-v3/testsuite/25_algorithms/copy/1.cc
  ab3dc855e72ee51df3a966a7fda86fc5  libstdc++-v3/testsuite/25_algorithms/copy/108846.cc
! c377d7bddae0527d5517e24864a915a5  libstdc++-v3/testsuite/25_algorithms/copy/2.cc
! 1ac739298af8b4ff67a2aeecedf7dded  libstdc++-v3/testsuite/25_algorithms/copy/3.cc
! fffa59230f2109ca541558d92faa5399  libstdc++-v3/testsuite/25_algorithms/copy/34595.cc
! 5ef5d8546dfd978a642e4d247b42e9a1  libstdc++-v3/testsuite/25_algorithms/copy/4.cc
! 33e187a7f17d1379f7966686d3fc3db1  libstdc++-v3/testsuite/25_algorithms/copy/58982.cc
! ddfa5015a3523b9f06cc7f2d109c68e9  libstdc++-v3/testsuite/25_algorithms/copy/86658.cc
! d14c55b470967499d686e00bb5d5ac58  libstdc++-v3/testsuite/25_algorithms/copy/94013.cc
! 1459049fbd5e175a24315f6ad217fe2c  libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
! 873e7ac8cd923941a658d1ce102463ed  libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
! dee497a29b482353f3e3e3203617e599  libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
! 5880beae40d4d6e90049b2e79d552f55  libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc
! b72875aba66de113105d03cb2edb5923  libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc
! bcbf9f69f5df2ad3d6482888a62b7d88  libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc
! 3d47a846867f5dc8cb4991f48cf2e212  libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc
! bc0238f37097d2e2a14668d4f7085354  libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc
  a4e3b919e921272cb082f7fa810f39d2  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc
! d7ffa27c515e1edf3d77be2891294900  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc
! fed554deec0465a39d90ba17321ebb36  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc
! fed9a921f087002adf3fe9282d190b59  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/32.cc
! 1c38f80ffa04bc23df987f332872deef  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/33.cc
! 496976b522467cbb6b83cb7437174c44  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/41.cc
! 58299837a9b7285bd56ef6fd448be124  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/42.cc
! c3e37356e786ab6fc5455a3fbbd1c8ce  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/43.cc
! a75101249e160257299728c5d864c1d0  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/1.cc
! b7b18c70d7def7ed257489f3308213f8  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc
! 7876a5ea65e4cffa1b21b0ab4b571245  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/2.cc
! 0b1c1fafce83b23d23ff6a538f10e004  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/pod.cc
! 9e09f8576de12422b43dec35f04ef282  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/1.cc
! 83159560b3304d5b5d849b83d7eafe92  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/2.cc
! 4de3a6ba13146fd22fd98ad6c76f700b  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/3.cc
! e64d102047a62234a5b214614317d2f3  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
! 98f40c89aa1b5298d24ed9c5cbf099fa  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc
! 58e7e57dbd88b7c2d22192fe67440013  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/1.cc
! 1bcd6f83f98c852a519aeea534df0f81  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/2.cc
! 6de08c1e8d8947ca7d4522f65f6d684a  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/3.cc
! 88c10c08bff86e78d9ade328bfa3c0b1  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc
  bb0e824b90574124bc4bf32ff7dc510b  libstdc++-v3/testsuite/25_algorithms/copy_backward/108846.cc
! 607bcd1792800b43bb61b9097afc3b18  libstdc++-v3/testsuite/25_algorithms/copy_backward/94013.cc
! d67bf0088f3d346d94fe6b96005fa647  libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc
! ac7977f6977a4dd984db73a74728c68c  libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc
! 7e6014b51ffd75b6b7e27b2370beba60  libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc
! 84606f8a62a57e1b44a37bee4675e24e  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/1_neg.cc
! 7a90aaf154a1c4f4c5c295b675410e6b  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/2_neg.cc
! f4b28995254189059be604536bea048e  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/3_neg.cc
! 81eadcf4a674d2ac26e20b52265f9c8b  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc
  da1fb78d5a3cd469ddf537052865be96  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc
! 60677d66257961b6619b191899603737  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc
! 710a9c029fe08c1c2b495f71b6925c43  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc
! c6c263ed017c007f4b09476453b46097  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc
! 21ed23ae0ceadc3f0197f30c8cb1f343  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/2.cc
! bab78fb497f5333fdf085b11009e760e  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/pod.cc
! 6d4f161c32f4a674782056ea8cca1121  libstdc++-v3/testsuite/25_algorithms/copy_if/check_type.cc
! 1ba3806effa6106ef9b613778bedbb55  libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc
! 1efcb6ee0a2470bc38b33502afd1b4c8  libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc
! fda414818df4fbd72024f365a90e6653  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc
! 15a1f11beb9c93d485dd418844e8d0f5  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc
! 321ce325e49187b9dd7f15f20e1954df  libstdc++-v3/testsuite/25_algorithms/copy_n/1.cc
  1e20df47bf8b9c2d7325fca62a0f583e  libstdc++-v3/testsuite/25_algorithms/copy_n/108846.cc
! 2ba0f7ac8dc951dd09ad9e2ad235643c  libstdc++-v3/testsuite/25_algorithms/copy_n/2.cc
! ff2b074cd18ad6d9466ec7f7320d3c6b  libstdc++-v3/testsuite/25_algorithms/copy_n/3.cc
! 8b43157079b91b2cc1ee9b2a5ac51ff3  libstdc++-v3/testsuite/25_algorithms/copy_n/4.cc
! 2ce4aa716502ba17399341f0b2ca4460  libstdc++-v3/testsuite/25_algorithms/copy_n/5.cc
! a149f612764e68a45cf8a82773b762b8  libstdc++-v3/testsuite/25_algorithms/copy_n/50119.cc
! 0e2b584ca1a9ca2c7d8be2566857b836  libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc
! 5c3fe024848d83a49536c72a04987337  libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc
! 64af9d856176b7e765b99e05a28ff7d6  libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc
! f7d5ea4170cc7836afd48032ec6771f5  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/1_neg.cc
! b3df5eb9acaa49b4a6e176cdf40a2ad1  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/2_neg.cc
! cda07f842ea1df47e78536906c55f47d  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc
! 7df484fe723efdc42430645cb04ceb64  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1.cc
! 450029cf8c058941b118c51e52509e88  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1_neg.cc
! 46f386c4ccb4af9c20e1dad9da3f8ffc  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc
! 426e5b3abb7b123d9ea7fab8196ee358  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2_neg.cc
! e5fb2ff97e2625a914f11291ede9db4a  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc
! 25a77bb25850190bad89258da1be6b61  libstdc++-v3/testsuite/25_algorithms/copy_n/move_iterators/1.cc
! a84c1b712df691b9d9d0368a9209cc24  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/2.cc
! 48435ccea44e96e9aeadd9b23a250de4  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/pod.cc
! 5021b1bd25eb22f3f7fb1e61a09befee  libstdc++-v3/testsuite/25_algorithms/count/1.cc
! a2558e9f862e23d1abc158ed7854c91f  libstdc++-v3/testsuite/25_algorithms/count/check_type.cc
! 70d9a367ba13a9681e1e0b1a23677629  libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc
! 4f9a46a8aa62ac057a16ef3eb269db35  libstdc++-v3/testsuite/25_algorithms/count/constrained.cc
! 19c1b9442e7a086313e51c6f9fee9e45  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/2.cc
! f534bb741b1b8a7d5f98b892f4721398  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/pod.cc
! 6619d5db38eeacb2057cc12ecf91ba79  libstdc++-v3/testsuite/25_algorithms/count_if/1.cc
! b8a39eca088458b6314b7e863c1d2f68  libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc
! be9385917e5cb22e9c36f74182546b3d  libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc
! f7f7d8fd0c305c11ef55623878026325  libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc
! d7ef544ee490092cbe946b3325d62b19  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
! 63948be3677ba1e64bc295ff63f7599e  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc
! 24c48ac13e3753ef9da5e891a16295eb  libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
! 56d6507f8813af3b85c1682a3ebb20db  libstdc++-v3/testsuite/25_algorithms/equal/1.cc
! 51f8a255fdefe513efd8aa9a6d055a88  libstdc++-v3/testsuite/25_algorithms/equal/2.cc
! dbf192b6084f3c6758a66669cd55435b  libstdc++-v3/testsuite/25_algorithms/equal/94013.cc
! 7b00949b29696ba5c8a0f228ea4b562b  libstdc++-v3/testsuite/25_algorithms/equal/95578.cc
! ddd77cb41624702ecfdf8874125ad35b  libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc
! 880fb738e2b9482b713670c047caaffe  libstdc++-v3/testsuite/25_algorithms/equal/check_type2.cc
! 9a1542b02f36369b423f496f2c1bc18a  libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc
! b4c4f62636b0f48934c6ef630fb28d2d  libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc
! 9b532f9418fd268674ea8af8b932b2a5  libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc
! 62b831f0f27217afdf9d210011aa451d  libstdc++-v3/testsuite/25_algorithms/equal/debug/1_neg.cc
! a2d00c3f8a3ebb8d1769ab17d8ab20e0  libstdc++-v3/testsuite/25_algorithms/equal/debug/2_neg.cc
! 67b47ff551d17b0d7089f849d31c3682  libstdc++-v3/testsuite/25_algorithms/equal/debug/3_neg.cc
! a57d8c05070aac261cc79468adffac9d  libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc
! 97706b0fc7f60e2fea89255c119b9bcd  libstdc++-v3/testsuite/25_algorithms/equal/deque_iterators/1.cc
! 09176356f02d9fa49c45915537829cc2  libstdc++-v3/testsuite/25_algorithms/equal/no_operator_ne.cc
! 7566a357315b6dd702845d925dbc68d7  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/2.cc
! 67844e09bda48f11cc64c964c75f1851  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/pod.cc
! 0684fcaed0bda93cfa15eb826586e243  libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc
! 2ff8242f63e6ce0670a9e2bc36e85fcd  libstdc++-v3/testsuite/25_algorithms/equal_range/2.cc
! 59affbbbcc9aaaf94df5cbd4f56fd02e  libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc
! 6a0e6161d8f7ed19ab1a9db09a817e4f  libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc
! c7624f12b9610d542440a99b9ba20dcd  libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc
! 74b704e2768b5fdb4ca7acc2918b24a6  libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc
! d6241916d02ab47b710ed17301f67ce7  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
! 697a62f4c29e8e905f850fafe26c28f2  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/pod.cc
! 515a7d3d5cc4823b69b5b05673627e2c  libstdc++-v3/testsuite/25_algorithms/fill/1.cc
! 5d9d8943f03de5a2c1afa8cbc9f112f9  libstdc++-v3/testsuite/25_algorithms/fill/2.cc
! 03905004cee3ae41f8c50ea1ed6fcd1e  libstdc++-v3/testsuite/25_algorithms/fill/3.cc
! 5ee3e5525813af7152ff5ff077ca1da2  libstdc++-v3/testsuite/25_algorithms/fill/35725.cc
! c8cc941191e5a18adb248a4971c9b8ba  libstdc++-v3/testsuite/25_algorithms/fill/4.cc
! 0d4e03550e7a07a621ab11020a0b472e  libstdc++-v3/testsuite/25_algorithms/fill/94013.cc
! 47540909917f3eeed92abdd17833a267  libstdc++-v3/testsuite/25_algorithms/fill/94017.cc
! 2f23041c665defe07b4fa2b89067ea48  libstdc++-v3/testsuite/25_algorithms/fill/bvector/1.cc
! 1c3267c9337e98dde2ee7398da5f7807  libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc
! 7959e3354ecd49081a5bef27394c71c9  libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
! ee9e5114226c9e4b93fd76ec9c23aef6  libstdc++-v3/testsuite/25_algorithms/fill/deque_iterators/1.cc
! f10b41f2922157b993e10752b8a2c7f1  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/2.cc
! 0b05cf2b83108c5508793b50ffcd9223  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/pod.cc
! 095b644c0cc1845245ab2ff065554605  libstdc++-v3/testsuite/25_algorithms/fill_n/1.cc
! 155729cf66b78a6eff2a73b48854d982  libstdc++-v3/testsuite/25_algorithms/fill_n/2.cc
! fd5d7841d8f5f7f664aaba6ba672e20e  libstdc++-v3/testsuite/25_algorithms/fill_n/25306.cc
! 233fcf76cfe481fb7c2ee84b838982f0  libstdc++-v3/testsuite/25_algorithms/fill_n/35725.cc
! 3be2fecbf736fd621086573dca4d4c85  libstdc++-v3/testsuite/25_algorithms/fill_n/87982.cc
! 4951ae9ba3832b3ba4f1b4d61b12eb8c  libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc
! 9e184bcda2eb2df18e2fe717dfe06505  libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc
! ebf7dd43329c8dd3f6e498f23bd45d05  libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc
! acdbfc2f23eab5b3188bebd9916496f0  libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc
! 8cce1769dfa3bb4824f6e7e462ed404d  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc
! d1b38e4fd1c2bc7a4e41898ada7d8189  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc
! c456b8f5972a9d27447f6cea3b4f84ef  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc
! 331e4b0a712900e80421a91cd078d1a2  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/4_neg.cc
! eb27410736334c7ba96a84943545ed63  libstdc++-v3/testsuite/25_algorithms/fill_n/dr426.cc
! 7566a357315b6dd702845d925dbc68d7  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/2.cc
! 67844e09bda48f11cc64c964c75f1851  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/pod.cc
! b2cffa0a46422f9dada830204bf3af30  libstdc++-v3/testsuite/25_algorithms/find/1.cc
! 6f623130659598b5b8e967dbee186ff7  libstdc++-v3/testsuite/25_algorithms/find/17441.cc
! ce8fc8854b8ee4af09aa72623e20341e  libstdc++-v3/testsuite/25_algorithms/find/39546.cc
! 98b2f3bf2de85eecd77edc301241238c  libstdc++-v3/testsuite/25_algorithms/find/check_type.cc
! 30119536ff5bbb39dd1e648860417d5f  libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc
! 39ad39b091226cb8530f17d476110293  libstdc++-v3/testsuite/25_algorithms/find/constrained.cc
! 55bb274f39c1acc1a7b8d9ede3b6babe  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/1.cc
! 6bc99562f4e3e6c3095a5b02cd409722  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
! 2f6aeabbf0e68768bba7a137989affb6  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/1.cc
! 4e3b709e20389771542fd06b2710eb14  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc
! cef5228a988b2e781b97635cfeacb698  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/2.cc
! 8656f526cd39f342e9ca7abe56693557  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/pod.cc
! 7f8b96bb482bcdf159a0a92837ad99f0  libstdc++-v3/testsuite/25_algorithms/find/vectorbool.cc
! 60fdb060f764617d043621b56062c58d  libstdc++-v3/testsuite/25_algorithms/find_end/1.cc
! 54acb47f7447a966f694b009f59684bd  libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc
! 1c8c1790aaf8dd50c0a99782c10343c2  libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc
! 0d02822ac72b23cfe0260d46edcd4bfd  libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc
! cfe2fab92091e3b823ba4de099ead40b  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
! f4c00820fde6172d181037c934fbf494  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc
! 85bb7cb22834abd8e0ecde83662d21cc  libstdc++-v3/testsuite/25_algorithms/find_end/vectorbool.cc
! 939736b84f14fae05b76371e353a2eef  libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc
! a1c0039da7936955ee8f379714404710  libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc
! 14474bc937ad50149d6897e4127276ab  libstdc++-v3/testsuite/25_algorithms/find_first_of/concept_check_1.cc
! 3f4b3b873592f2b506bff6d2c88b8f0a  libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc
! deb47bf76c9dbb9d10dac0c29a9c112d  libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc
! fe46f1081fb943f2b52600e9623c0a6e  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
! b38567b7e4cc5dfaff8615dff37f4757  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc
! 48452f2f932e98bbbec3295cd239c071  libstdc++-v3/testsuite/25_algorithms/find_first_of/vectorbool.cc
! 2467cd32f3d478c9b814855337b1d3a2  libstdc++-v3/testsuite/25_algorithms/find_if/1.cc
! 93af67ff8dc73a70112414ffffc46ac9  libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc
! 20c4eb6a9890ebdc309235ee7b6d19ad  libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
! e727f24836acd327844258dd4f5cac57  libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
! 2f28cf53ad4eaecd7fc7f4aaead476f1  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
! f370722976d87324bf4136e6b1a2d4ca  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc
! 7f8b96bb482bcdf159a0a92837ad99f0  libstdc++-v3/testsuite/25_algorithms/find_if/vectorbool.cc
! 699064079e10c24d3c568e5e0a5479ee  libstdc++-v3/testsuite/25_algorithms/find_if_not/1.cc
! 42b63ad7689dabb2fc3e28c09e4b8c9f  libstdc++-v3/testsuite/25_algorithms/find_if_not/check_type.cc
! 18f75c8efd662fd6f619ac883de6164f  libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc
! 04294dc8b8a5ffef3ae8f089a40e0d24  libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc
! 7cc04e6fb475b4d0af1527044848f1e9  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc
! 5dfa21e396c4d7868bbe22a747b3400b  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc
! e9925c94a012fa06b8ee9201d7e2d6f1  libstdc++-v3/testsuite/25_algorithms/find_if_not/vectorbool.cc
! 7e0c6af4883e655224ad7d89d991365e  libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
! d46e270d7c1b32f7e50877f41614ca95  libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc
! 7cdb4c46a36afb9b5b7d7d44bed9f688  libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc
! 3c6ba0a4dfa90922d7d8788b0fcadddf  libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc
! e35a15f727c0e375a2c4f012aca48b36  libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc
! 2d98f1cc5b73de05dc64cb33090deee5  libstdc++-v3/testsuite/25_algorithms/for_each/1.cc
! 3666dc721f3c7ec7c3a136a776ff8ba5  libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc
! f8fa499d12bb7b47bdce86c3c1c70811  libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc
! f999e4c50e92ca57d4adc6b8b9e3a97f  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n.cc
! 803c645b37d18ccec57f96363bad96ac  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc
! c310ada008a15efd1574ffb681dc72c6  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
! ca3bb645d7de3c119b8a61646edebd6b  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc
! 16d78d3f76318f510a21dd0785f1a669  libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc
! 0f7914a88fc98ddc8c5802b53319bdc8  libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc
! 68235c0f54e7e3729a39fa35896d199a  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/2.cc
! ee63f4ed0d18602f40d8a0573095a8c5  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/pod.cc
! 112bbc9ee412356f2e2968491fa4afe9  libstdc++-v3/testsuite/25_algorithms/generate_n/1.cc
! 6b16e9d672eaa680898cb8690e7d5500  libstdc++-v3/testsuite/25_algorithms/generate_n/25306.cc
! 101901f24f018ae14f4876645f972950  libstdc++-v3/testsuite/25_algorithms/generate_n/87982.cc
! 2eecbb7935d8dc12aba9cfb09b6caa98  libstdc++-v3/testsuite/25_algorithms/generate_n/87982_neg.cc
! 37d92f0c900d0d38c00534af99c9040c  libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc
! de5498cfb432c83e7d182cbc06fbf419  libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc
! adc1da1c57ae7870897b8e65307eddd0  libstdc++-v3/testsuite/25_algorithms/generate_n/dr426.cc
! f48daf2593e974b73d3022703ba22826  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/2.cc
! aa6a0a429fccac87973dbdd1ccf49fc9  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/pod.cc
! f6f925af162b1b802a5f816092c5bd05  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/algorithm_parallel_mode.cc
! 041ce8e148abd7fa56a5a4dc79bcfce0  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm.cc
! a49ffbbf60b04f585328796ffcbd21e2  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert.cc
! 5ad2adccedf8438775c81a62bf18ec59  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert2.cc
! bd88399164f274490bdde61546e3767e  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed1.cc
! 6b27a824db21bfe483a3b2df93c564d3  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed2.cc
! ba653746c69f93062d06e71a8a5f4fa2  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
! f2e526b09bbf7c052e9f13cb02ac4961  libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc
! 97d1142bb2d80e070ec6f326bb6acd4d  libstdc++-v3/testsuite/25_algorithms/heap/1.cc
! 4ec8e98bf8c090caae540c916c83194f  libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc
! f148ef12c908fa135dcab3156c81b89d  libstdc++-v3/testsuite/25_algorithms/heap/moveable.cc
! f5e2327b827e165bca69b775821d576d  libstdc++-v3/testsuite/25_algorithms/heap/moveable2.cc
! 2b58867e236e8f1ba11954a00049d08d  libstdc++-v3/testsuite/25_algorithms/heap/vectorbool.cc
! 4ad5779deaf232c2cfb2d538088a01aa  libstdc++-v3/testsuite/25_algorithms/includes/1.cc
! ba5103b41af64d3a19d65e6f5dbcce46  libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc
! a74c3a05f8a7918f8b90c683cc2602c6  libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc
! 4061cbb3590f51ae0734f16f335d6a1d  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
! ddfbebedbd906092d46263893ffc8ef7  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/pod.cc
! 7c130e82fd5b393794f37aa37e28cb2a  libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc
! 2b5ecd46bee7db56ef8f473437ddd63b  libstdc++-v3/testsuite/25_algorithms/inplace_merge/49559.cc
! 6ee4a0fbac1b6af28aab8e0b843d92c1  libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc
! 2cc579a16cd9b66d314566c90540dd3c  libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc
! a85cd34fdcb5e54a541d3be4b3b4b041  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable.cc
! 2d46fad13a235de09f8ea7fa0f475b52  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable2.cc
! 755c3750d744f825e72b097f92678317  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
! 2023fa634065356f6ea0968abe064c7f  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/pod.cc
! d18d6a10bee851ae4d1c75594365580f  libstdc++-v3/testsuite/25_algorithms/iota/1.cc
! a28ebcf5b90dd46567c9b38582c8a4bf  libstdc++-v3/testsuite/25_algorithms/is_heap/1.cc
! d8b91176a6344b7fa5cdaccd31cb0c02  libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc
! 8eb8f901643fb00613b7930a67521307  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/2.cc
! 8f9f4f3b424b458dcccc551eccd142cb  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/pod.cc
! 20833529b56c65c978b09c1bdf505fcc  libstdc++-v3/testsuite/25_algorithms/is_heap_until/1.cc
! 1e1ae42ddd96a2f785fd30aceb95ac84  libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc
! 4f3e381a68db26050c8336fcc563e166  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/2.cc
! 56155ffcb04e4beae963ebe49e6573c0  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/pod.cc
! 67d455467dbb5b7f5b2050facc42837e  libstdc++-v3/testsuite/25_algorithms/is_partitioned/1.cc
! 48c27236a6c3f1b7b88f7122c3956653  libstdc++-v3/testsuite/25_algorithms/is_partitioned/2.cc
! 26568e09ce079e96523b7d14cf91ea6e  libstdc++-v3/testsuite/25_algorithms/is_partitioned/check_type.cc
! 457da58dd4665126ee38c731777ffbfc  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc
! 1bb61a83fc59287aa69a43597d9d7724  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc
! 0f54e12384bc657a2da1d32ec59ed9a2  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc
! be9aad5457af948ea60a8ad4e4b3b152  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc
! fa24f7699d54865dec7259a08c7e4662  libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc
! 5b13a9734f1738d6dabdc144616e836c  libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc
! 8b8d99827127fdc251593cad57925eec  libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc
! acd5a7a2a15e0073569cdcc1245a020a  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc
! 94407288af818238e1963bfcf113c01a  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc
! bf0457e064b412e5321cb7abdedce454  libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc
! b3df349844f402ddf2da56ca74458ba0  libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
! 9f05872e16a9f4efd4f8c5fbd07d562e  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc
! 510e0094c5b2a140bae991c8303d8105  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc
! 169c1bd417ce688fdcd66fb419b3f9ab  libstdc++-v3/testsuite/25_algorithms/is_permutation/vectorbool.cc
! 95dbed838462a54cbf2803a84b4b452d  libstdc++-v3/testsuite/25_algorithms/is_sorted/1.cc
! 807d113a3a02c9d10a8725e623ff4047  libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc
! f8f439fd73522f4c9c389e78427cf43e  libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc
! ac5f0d81e45d51154046fc5f45748dc9  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/2.cc
! b91ea6cd3ec9dc41374a9b34dc29dcd3  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/pod.cc
! 8a3941a0f2d78ea9237a7428ce9c3da1  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/1.cc
! 7e2706377dbdef920df825934b21f3a2  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc
! 93be7cbee3bca85d34753ebb2e9c763c  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc
! 064af6185513822c5254ef4ccb44fd54  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/2.cc
! f0047294bd58a783016eca817742570b  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/pod.cc
! 08402dee39730bb38d2012cabaae5639  libstdc++-v3/testsuite/25_algorithms/iter_swap/20577.cc
! a31d0c87bc6bf54af30079d61d593d3f  libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc
! 76e8d6386022b23c9ab185b09c6aa98c  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/2.cc
! de198867296e341cdf773d85ac12337e  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/pod.cc
! 3f8f97b4d302d50783d2620af4a96b79  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc
! 022e5d2577a18b158c30cb478bad47ef  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/71545.cc
! c7d22ef7c07a69c92066179260beb221  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc
! f7b0be51aafae45bebd0e358c21bc360  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/94013.cc
! 9679032dfdab7c4a361f20190dada333  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc
! 63c369c92e118ca49dea381f29b1c5a2  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc
! 7b4ce5f917b99dc0e025cc0115c08a67  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc
! 0f87ae3285f35dbf4cb2e46d96744a6f  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc
! 58f9a182378e6da1c08026617249d6cd  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc
! b1a449ccb32a0a264d841cb7be77e70f  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
! 690cb7765bed6fe88df169bf79ff4be7  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/pod.cc
! f0b5cac939d18d126824dc4b64355130  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/uchar.cc
! 06256947d7de04257118d42ce1585812  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc
! 937c47c9ebbb5f0ea137b5120adeff12  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc
! 39bfd6a3194043d02813679ddc10fc58  libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc
! b3a5c4d22b09bb16074d8c3103e3be23  libstdc++-v3/testsuite/25_algorithms/lower_bound/2.cc
! 574b652160125c30f300f9f666799e53  libstdc++-v3/testsuite/25_algorithms/lower_bound/33613.cc
! b9bba14d514ea252a21f155c6d1ce457  libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc
! 68b6766f293f88ef71c37ab63294c200  libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc
! 7ccf9f55296950fa4d2b295ca2ef1005  libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc
! 652b4aa294d92ba827aface3df8b58fb  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc
! 1b556ae4448f0c3cdae20df15f6332c0  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc
! 7bc43364d7ea2d6daef600721250d743  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc
! 5ae0fd585c2909329bdcb25b753544e5  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/irreflexive.cc
! dccef73592398f6d33c233765de1ff16  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc
! 9255c1586f7b4b3bfece73a8971fb057  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc
! 6a6de0c1a9ece3b5311d89f3fdc43f96  libstdc++-v3/testsuite/25_algorithms/lower_bound/no_operator_ne.cc
! b77f4fb0f447516621a9f4c2e2273efe  libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc
! 3ae5d655268ad23c93fee787c5c3cb5a  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
! c3f51d5c78676c64ceb2d504fb04cff5  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/pod.cc
! a4718db63d7807e4752725cd41cb419b  libstdc++-v3/testsuite/25_algorithms/make_heap/80064.cc
! bba0b5908249faa89996a2f6d448bf9c  libstdc++-v3/testsuite/25_algorithms/make_heap/complexity.cc
! 90d5ede629067e7b4493246dc3572edd  libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc
! 5c12b37de73d73c7b255573daa486946  libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc
! dc83c059b796d65843698cf93bffaa38  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
! 60a3380dcd1ecedc164815936dc16c6e  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/pod.cc
! d5549d277af403e895991271b86e2acf  libstdc++-v3/testsuite/25_algorithms/max/1.cc
! 7b5df0f24f1e831f14126c159abb6b08  libstdc++-v3/testsuite/25_algorithms/max/2.cc
! 208628c7f62c1894409c8194cf049db6  libstdc++-v3/testsuite/25_algorithms/max/3.cc
! ba824dd80ed6d4d80f374797a2e5ff30  libstdc++-v3/testsuite/25_algorithms/max/37547.cc
! 9ebe93e88cc07047b94b286639a36b75  libstdc++-v3/testsuite/25_algorithms/max/4.cc
! 73e9f4be8c8c252c7022ea1872548d56  libstdc++-v3/testsuite/25_algorithms/max/constexpr.cc
! 83ce11fa779fbb22771ec3f8d7472722  libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
! a269633a12df8d87537d5a4b75765bfa  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
! 7e7526e251d4ff89d74a05d1e0302680  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/3.cc
! 05cb60a50dfc2321cf3038d9d9cee532  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod.cc
! 98359ea4bba65ce127f7680f51f2dbfd  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod2.cc
! 57fe027d0c345d37fcb6eed7a4fb31cd  libstdc++-v3/testsuite/25_algorithms/max_element/1.cc
! cc349b23eebee97ffbdb760fa2910a58  libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc
! 2f8e45cc6891afb508842d31702536c3  libstdc++-v3/testsuite/25_algorithms/max_element/constexpr.cc
! 684c9bdd01a4c9927e72f8520d9a9a81  libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc
! 4e463fe3bbb49e96e6f4563422f8bed5  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
! 7370804c79f2b2296228de7b98922e3e  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/pod.cc
! 94b7e600f9839b5d02f9f6ecf5dcf1f5  libstdc++-v3/testsuite/25_algorithms/merge/1.cc
! 4db7bc8c2fe039bc1bd6a053090710ec  libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc
! 4f01955e3121688b1f124b62a8898936  libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc
! 46e0bc7611c9f9de5840822a0e3a0ba3  libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc
! bd164139b9589d3c3e63603dba351c68  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
! e759b9726257aa276bed74902989854e  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/pod.cc
! c4a8104330546a3e537026c362bc8886  libstdc++-v3/testsuite/25_algorithms/min/1.cc
! 7cdbc97be6c8db7d54aa5f4451cce695  libstdc++-v3/testsuite/25_algorithms/min/2.cc
! 6c620bbb9c395dc2d9caaab3bfec4fb0  libstdc++-v3/testsuite/25_algorithms/min/3.cc
! 5b4244d590f5a9dcab329d172b9c3f49  libstdc++-v3/testsuite/25_algorithms/min/37547.cc
! 92db225ea4c7e62292117f26ff2f5578  libstdc++-v3/testsuite/25_algorithms/min/4.cc
! 04158badcd0320eea212421b1fa8bd2b  libstdc++-v3/testsuite/25_algorithms/min/concept_checks.cc
! 9b4825deaa6394dcdfe31adb27706c28  libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc
! 6013af6fe2ce798bbcc02f614314a5ee  libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
! 12f3a0c433f5b6f86ad6233ca21588a9  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
! 75959fa8f83b0e3dd73172d4ab46b7f5  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/3.cc
! d87cf2d9a4f8705e0d329992600de5ee  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod.cc
! 3e15857f71a6f125a18345ef89040922  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod2.cc
! 5a9e3fcf15073aa1748a475789eec8aa  libstdc++-v3/testsuite/25_algorithms/min_element/1.cc
! ffdca9d8b8888d6d1386e6cfad94934b  libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc
! 67dc2c81f73dc2f304d51ed524370cdc  libstdc++-v3/testsuite/25_algorithms/min_element/constexpr.cc
! f20e8deb688bf193d30c4200e94eb484  libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc
! e51d5dcacd24dd2b96b86356a38e3197  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
! 9f14f29d32bafedaa205737c3d757188  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/pod.cc
! 505e0e4549cc449d250eaabeebbf74b0  libstdc++-v3/testsuite/25_algorithms/minmax/1.cc
! 03c82a7ab50dece1d3718add156a3afb  libstdc++-v3/testsuite/25_algorithms/minmax/2.cc
! 2608627cc9163a40f4abaf9e6482a6ff  libstdc++-v3/testsuite/25_algorithms/minmax/3.cc
! 9f80e5d1e4a9983388b423a66029b874  libstdc++-v3/testsuite/25_algorithms/minmax/37547.cc
! b3b1d01d63fe24240a9f0f85c00e9dfd  libstdc++-v3/testsuite/25_algorithms/minmax/constexpr.cc
! 5e5bc52055810c45cb50b595c2f043f2  libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
! 32eae5f7e5af167edb6b71792c5940fc  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/2.cc
! 306ded10a4c9dd8e4732567bad00d630  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/3.cc
! fa22215e6858e3659207b707d4f68b96  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod.cc
! 5bc295c55cd7a997cea058c14c10b095  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod2.cc
! 3c9f4d7591a5bfbb20b18f0cfe2445f6  libstdc++-v3/testsuite/25_algorithms/minmax_element/1.cc
! c45a2964c045a5db1396f4a0b5a3ff9d  libstdc++-v3/testsuite/25_algorithms/minmax_element/check_type.cc
! 011a062cb56fee0157f7d8b29bfd1aee  libstdc++-v3/testsuite/25_algorithms/minmax_element/constexpr.cc
! 6c0ee5ecb0dac0857418311b61de8617  libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc
! 54e18027b57b83450b37c34bcfebf023  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/2.cc
! af94646668ea4fa0c70d588d0715795c  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/pod.cc
! 38695b28c55aba030a9ebb921783dbee  libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc
! b7bb0c051c39b4489a53a72ac7df5cdc  libstdc++-v3/testsuite/25_algorithms/mismatch/2.cc
! ba6fc08d76f0cfd27beb79b445cedfc1  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc
! 15a1eb6af65f4499883e75942dd10c10  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type2.cc
! 53496db09c56f7403b8edf8b7704c0c1  libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
! 5708439e1733b5e8b3cc9ca67743b973  libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
! 40e8a45fd7ccef3c1363b88f59ff2460  libstdc++-v3/testsuite/25_algorithms/move/1.cc
  4ae907818586f505a2d4d108b85aff1d  libstdc++-v3/testsuite/25_algorithms/move/108846.cc
! 1313c446b963da853508f219ea47cd4d  libstdc++-v3/testsuite/25_algorithms/move/69478.cc
! c1b10c439f8cfb8c7c09b01a66ca5ada  libstdc++-v3/testsuite/25_algorithms/move/93872.cc
! 9dd80d084c2a760183a852943d0b3bd6  libstdc++-v3/testsuite/25_algorithms/move/94013.cc
! 5b1fe6053dc70ae9a0996364e3f7d378  libstdc++-v3/testsuite/25_algorithms/move/95578.cc
! 8a39c328d588445253bbfbd913a4260b  libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc
! 1c607179988db8681bb6be0ff1d16cf0  libstdc++-v3/testsuite/25_algorithms/move/constrained.cc
  c41fedc68e3cee79d652221a1c6b2c9a  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc
! a417fe30d1623862ee00bba233ef5e94  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc
! 5ee4b06194077e736017cc9f10b004c4  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc
! 5a0293674ce442702a6ad1c6a8a16492  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/pod.cc
! 20f3efba2c15d8ab2139954b1a58e619  libstdc++-v3/testsuite/25_algorithms/move_backward/1.cc
  ad56a2e5738139bc09cd67e855d44a07  libstdc++-v3/testsuite/25_algorithms/move_backward/108846.cc
! 24606d02bd1f9ae398448705e0c24295  libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc
! 3c661187d0b5dc7fdf6e6b4f0fc73ba5  libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc
! f0ce7931212718242daa71b848cc4704  libstdc++-v3/testsuite/25_algorithms/move_backward/94013.cc
! 2c1f214bbcd18909d14dab7e3756d5c2  libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc
! d1f4afbe91e122031d04e6b422d8a90e  libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc
  d798b4d62b339492aca582244b60767f  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/1.cc
! e158b8cd4536920792f94be152249ba5  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/2.cc
! f6025503a9e582f1bb0dd35004b4df2c  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/2.cc
! c6736a375b5e90b0cd769d18ad0ec080  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/pod.cc
! 10ff8861949fe33ca8ac4f4375697739  libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc
! a2782cd2067995f7f496516860963d33  libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc
! 0f6d14d65c572323a59e764dd8a89571  libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc
! 02de96ac64696b2c844efaee5894be98  libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc
! fa14afa99026f6925a83eb0f3a46ac9a  libstdc++-v3/testsuite/25_algorithms/next_permutation/moveable.cc
! 7f9fd2cd45db9ef46e79e292583f4383  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
! 9603bd3c4fb56f265fe02222ee54fdc7  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/pod.cc
! 85fbd2a14fb60aeb78a555ed600f3f62  libstdc++-v3/testsuite/25_algorithms/none_of/1.cc
! 0c9bf5706653991f9a5c0b637c55e013  libstdc++-v3/testsuite/25_algorithms/none_of/check_type.cc
! a60c1cbcd0d322dba9351ea05eb8ef5d  libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc
! b9e5349ec99e102d2540471a29945390  libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc
! a102b9363c6cec9ef6e244d34f2cb09f  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc
! 1c0f6565847ae0a8a6818f013c492fdb  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc
! 97958262e516638e0804441311842e2d  libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc
! 59d146e840935695bd4cec554828d1bf  libstdc++-v3/testsuite/25_algorithms/nth_element/2.cc
! 55c6468c9d6b36622b3d93cfe35d0474  libstdc++-v3/testsuite/25_algorithms/nth_element/3.cc
! 58a996edd0317e1c4cab124ab3f21972  libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
! 4b7c51ca775af4754807be686aa943c0  libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc
! 117e2e420363ebf8108b35177f9478fd  libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc
! f7d16b21a29602a438ddbcaf498376b0  libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc
! 79ac6f4fd39b91e343bf7c5c91ed135d  libstdc++-v3/testsuite/25_algorithms/nth_element/moveable.cc
! 704828754ce149d9c42959115b067999  libstdc++-v3/testsuite/25_algorithms/nth_element/random_test.cc
! 59bf65b8ba4c018ca14646812a42e729  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
! 7e815cceae7dcdc8bd30b7689c71ea00  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/pod.cc
! 58cbf40f78cea4d38006385409973eba  libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc
! f1755a17f22ab0d8b36170afcd859954  libstdc++-v3/testsuite/25_algorithms/partial_sort/2.cc
! 0fd29be76fd58fcfaf8de46fb3808ec8  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_compare_by_value.cc
! 1076f61f1827e714e7b8a6b0f0d3cf4d  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc
! 76d68e3c06c7e9282362c0e94cfd73c9  libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc
! 0b0b271e7449612216f86a9b2c061930  libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc
! 46f4a1509e17aa20942df3f78d7ef85f  libstdc++-v3/testsuite/25_algorithms/partial_sort/moveable.cc
! ce32f21f8de82eff5fe0e0a1ccb8cd5c  libstdc++-v3/testsuite/25_algorithms/partial_sort/random_test.cc
! aff0ca4a6bde391d0a7e7971ff0d48bc  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
! c8edf74b0d6124b1eba56b4d9417d1a4  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/pod.cc
! 9491388c5ef849045a17f706c3b92060  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc
! 4dd88f61d1110d26040f8e3c68221770  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/2.cc
! 43b4e188887e00451062fe8a49ef4251  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc
! 15c992fcdfd85306e916a79acb53d7e8  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc
! 006e4761f63a41d63939e1f94373af6a  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc
! 65bdd65c7f938fdaadd0352270ca6015  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc
! c378fcbb85ad1ea7b96c4006a589adf6  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/random_test.cc
! c7c8f20e500cf3c1f09eedaec24279bf  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
! 05ea86f5ba6cedf44f0715838efecc47  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/pod.cc
! 13c1afd996307e2836ef7d6980257623  libstdc++-v3/testsuite/25_algorithms/partition/1.cc
! 11377208a19966997473b881019c9b9a  libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc
! 78a4d5f6d4f28cd6c2fccaeb5d7898be  libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc
! 16449b68f0bb8525016ece312bf4b3ef  libstdc++-v3/testsuite/25_algorithms/partition/moveable.cc
! 7677225f407d32594a69dd38486b98df  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
! 66db6dd93e2ae84a2296f0601dbcad2b  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc
! 1b747d25ab3e0dfb2d5b0b4ee7af4d8c  libstdc++-v3/testsuite/25_algorithms/partition_copy/1.cc
! a4db87cead88e14f13fae1123e86ff25  libstdc++-v3/testsuite/25_algorithms/partition_copy/check_type.cc
! 0dd6ab810c9f87b8336ec65c586d0c74  libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc
! efbc1c090c2752b71b06cb269660205c  libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc
! 399501a0c4ef5f7424da09e4a4044f1a  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc
! 42989a0c511383945105fb2f698fa332  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc
! 727e166f7009ac267bc7531edc83de0c  libstdc++-v3/testsuite/25_algorithms/partition_point/1.cc
! 15e7b96102b39e510f11b80129346585  libstdc++-v3/testsuite/25_algorithms/partition_point/check_type.cc
! 7581b413ac52445d78a4ff5b0745a563  libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc
! a7b35b29acc62b51c9163c90fabbba75  libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc
! a34ef1f43993b678fb6fb449cd14e3ce  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc
! e76bff8b6ff400ed58e4d2cc77d23671  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc
! 4d8c00179113c481423fa2453f6b4671  libstdc++-v3/testsuite/25_algorithms/pop_heap/57010.cc
! 6ec4a29dcf4fa0db8988e414ac1cf8b5  libstdc++-v3/testsuite/25_algorithms/pop_heap/complexity.cc
! 77c93563049a0f18af2b0b9796944aec  libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc
! 27ef09238392e39762713051d0bed224  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty2_neg.cc
! 79a5c7f0683ecb20f7ed0048a0f5275e  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty_neg.cc
! dc1562adafd140c0a0f0902131e97761  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
! 1b3a91f7859bcdd5c14d4ebab398905b  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/pod.cc
! 9a32dec253f017c8c24bd6a50290ba61  libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc
! d2702f3aff5a385ae8b270700e65ac4e  libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc
! d348a49755f6bc9531f56418670e1ee5  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc
! b93fa488859d466f4b67452de6f1bfa5  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc
! 16ef477417b20bc513152f6fb9fb4dbd  libstdc++-v3/testsuite/25_algorithms/prev_permutation/moveable.cc
! 2be66ea3748469735018870cb468b821  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
! f223323c10204bdad985a1591a68fcbe  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/pod.cc
! 98051b5d40a1c205d048db33e038c794  libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc
! f73cdaa5ddf9a31b66aeb2163e20a984  libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/merge.cc
! 905d47f4c72eacaf53a95bd14da1a0be  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc
! de6733161b96924b032f36e5fd3bafca  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc
! dd00e3cee749ed68184c780fdb1e73a8  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc
! 41d09d9aaa009c73e42df8e6ca553602  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc
! f49b06e85969100a80f24fe149de9d3c  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc
! 6afcdd7045292ea110fe08635679d292  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc
! 5797831709e8370f95978daff814f751  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc
! 93bc05a06970a2a02947526ba7f29f22  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc
! 14b92ee3f0edf89382fe1c286545804a  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc
! 18cd5589e23bb68c32000f8f58fe2352  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc
! 619076120f4d77ff0eaf986a02da66ff  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc
! c3ef2f5d78b2239109164649b50716d7  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc
! 1cd73dca70c0fa394a5a60037fbcc0ae  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc
! 764680e34e15f0fa29e878ac33e8cacb  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc
! c3dd84d497fa55423fbcc3b0ca9c9909  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc
! e0efc41fbd11aa85c9a41de9ac636460  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc
! ab19f00d24b45ab612dd0b28ac9c31fd  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc
! 2dd310f8c86fdb4a9b3db33a24a3bec3  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc
! 711799f3b98e9cfd17c49906b84e47a1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc
! fb40d584fae0b95e68f35a90401dc5bc  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc
! 7593ab1ae2b827aad3df4255ec0585ef  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc
! 9212666d1f61eeeb80cf93aea6423e4e  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc
! c7aa2c50de390d95da8328c174fd4eb3  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc
! 5e8e1171c16649130148ef24b1499a28  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc
! 45863cfbe93fbefc658404d3177af81e  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc
! 3b90d49d2edea87c00da94415b426179  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc
! c289fed14949aba6abe56657f5bcee68  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc
! c6588f5c2a6dfd6b3b7acb51d7d91582  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc
! 3fbc34cbc4f2deb628352897f1728e4f  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc
! c3d65ac451c539f1ba3fc7c581fd0663  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc
! 81b3edd6a586f1a1362d3fdaced07c76  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
! f02afddd5730917df2126ffa6da8e740  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc
! a4ec54c4cd6ad6d1d9231a758b100f3e  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc
! bc513c8e9b5b572408d34f88c684678d  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc
! 615fa97ccfbbaa072ae25b0a41731568  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
! 30388efe1b0d60dcf2ee790aa6ed20bc  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc
! f7c62c3adecc435bbbd2387a4256cb3c  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc
! e8a28933f94feb234a7be6f388ef0c8d  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc
! ec07921cf1d219cc2dc3de14726143af  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc
! 743a8136655e046f85c0383ddd4c3799  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
! e2baf706b6b8f858b41c7d0a9e5b08a9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc
! 8af38b36f1e40e204ae2c21c405731a9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set.cc
! f0ac087e7a77dd84d45a6199d1b9a455  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/sort.cc
! 590db8121bab876534c3b3b2ed264ff6  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc
! b597327879bdbcb68d17ca901fc7c43c  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc
! 62deadb5968f27ff7204fb7b28a20651  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc
! 0150a28467957203926c57f8abfa45c7  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc
! ec34b5c99cefd9ea9a6d1067c9640fe0  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc
! b09127e5be55f9d7088675c06051c23d  libstdc++-v3/testsuite/25_algorithms/push_heap/complexity.cc
! 6402a8eea1dbb0033272942b55892f1a  libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc
! 300447a9be95466f5df011297fa806ad  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
! 7d39ea4ed8d2504aaac0459919884c18  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/pod.cc
! 4f12ec8fe34e20426908d102c48c9d1c  libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc
! 9df0e164ce57de52f993fa4cb25b21c5  libstdc++-v3/testsuite/25_algorithms/random_shuffle/59603.cc
! 3db61e6594a708bba6029b3bf80f8eb9  libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc
! a78cddf59da3e1e38c9bd9eefed389ee  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
! 72e96a8470ffd9aef86de2dad9a3d19b  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc
! df7a09e4e4f086a9111ce1c78ecdf0e6  libstdc++-v3/testsuite/25_algorithms/remove/1.cc
! ffd8ff5083c2a1655e8bc957243edd41  libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc
! 79e54f85530c01d098c867702b01cf10  libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc
! a547bf37f2441ba5f0b375e1d33a0045  libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc
! 0d3d8484ca6ec62b25ce2411c4818579  libstdc++-v3/testsuite/25_algorithms/remove/moveable.cc
! ec61ce87215553fd8119bb2de3785a78  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/2.cc
! f3e21eb1479a404bdd0c92af41ea2d9e  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
! 99122d3cbfd4da1352cf6f74ac2951f3  libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc
! bb6d896c1be98173033e3e02644c1115  libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc
! e03e59f7f29f4260ef4079a6e5e7b8e6  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/2.cc
! 5f0a4a78d4814bcab99a65599070e091  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/pod.cc
! f3a8bf1913ca3f7135f45a5771b36110  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/check_type.cc
! c8e019417514e0aaf8303174ef0dd447  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc
! 2b8860618324bab8fc5983ecd752c57d  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc
! 7aec30c3e549bbc97112b84ca3ac4b85  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
! cfd5677b094cacad86414fbf80178e71  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc
! d7a8655c57e1bb6fe36bb4bcfebfb9ff  libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc
! 722e27245847e91857d7e1688c69cd09  libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc
! cb06372666dd722ec6c9bd8b7149b229  libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc
! 0fbe2172f33b52e0496d6fdff0f0469f  libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc
! 16a66505a50921273079ea6ead4a67ab  libstdc++-v3/testsuite/25_algorithms/remove_if/moveable.cc
! 2ccca68f3d69740a107d822d5912b0d6  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
! 0d0f0d6d5bf240239c78e3032493297f  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc
! 250fc70bdc9e98883320f06724d7d241  libstdc++-v3/testsuite/25_algorithms/replace/1.cc
! 3838af6ebfa5fe10e264e403527f6ac9  libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc
! 44666292bef8f8df20b1379acf57e2ec  libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc
! b1d9c1ca5c31da809599b3c837756dff  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/2.cc
! 5cd9e7a639f892a5066809c242774933  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/pod.cc
! fb5494b16609991b52aefc9d30db0aa6  libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc
! c1eba949f0f11fe473c2812486bb0fb0  libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc
! 29325f71ccabe28d1f4be892ccf48e98  libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc
! 8731e54c0dbff1714dce5f3d553d043a  libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc
! 9a03f9b4c6b50e053671718719e1d1c8  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/2.cc
! 36a9552a527f2f617da5988c0fea077f  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/pod.cc
! 69ff1de48001b46d02989bf53499da70  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc
! fe654c1c8024bd747762e082f82f6a00  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc
! e614c40e67dbe592f66f5ff069d8166e  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc
! b3d71913c351262d8ac9db6cfdd08b48  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc
! 67dc305aae4b60d8fe041181a4c52d81  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
! d24d1145d981a70cc8441de2dbb29ddc  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc
! d9f18b137948511fe7a74d0562da066b  libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc
! 5de7a14548e1973ecb2951245e0da361  libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc
! cd7de6c338aca918c2311346b8eddeec  libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc
! 877a3a65baaaaf44e2a740fef0eb694f  libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc
! da4d7098933b8980fa56ae0172c4d3e9  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
! fa693b7bf0129b9d2fdd156350668ae9  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc
! 36f40bd4fda4eb8bb7b8c7178baddcb8  libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc
! 68825cc79e0ab5ab5770391a61d26192  libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc
! 9737631f08b9a54ec83e9ed15b909eca  libstdc++-v3/testsuite/25_algorithms/reverse/moveable.cc
! 1dc25f2962b25c350014522a5fbbf17f  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/2.cc
! 7e27b9b6b32708b2a423cce7e30512b8  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/pod.cc
! 50ee50dde6cd209e070bef824374a4bc  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc
! 5b8422ff1e1c87ca01a92d6e1ba32a04  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc
! fc4f4c293916dff91d373ba182be7287  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/2.cc
! fcc19519316ce766337fd8034bba66bf  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/pod.cc
! cc7f40103eb7315d4ef3dc56c272fcd5  libstdc++-v3/testsuite/25_algorithms/rotate/1.cc
! b2654784ccf746928f00c2b392b8450a  libstdc++-v3/testsuite/25_algorithms/rotate/90920.cc
! ab97fa69b02b5aad3e49559dc5a65bca  libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc
! 6e81a6e87bcee591a45269b5ef7edde0  libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc
! cb2617b3588c833ba2900da046002f6a  libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc
! a1845620570e25865ab05569759d69c3  libstdc++-v3/testsuite/25_algorithms/rotate/dr488.cc
! b579892e1463b9dbf659d85a05e0b056  libstdc++-v3/testsuite/25_algorithms/rotate/moveable.cc
! 9f04373990f62ffabd77851640918b35  libstdc++-v3/testsuite/25_algorithms/rotate/moveable2.cc
! 7e23dc06f95437552ef00419100f84c3  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/2.cc
! c55697a34a7005164dace381c52bc1d1  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/pod.cc
! 5a9b82ecf1c6174bc576ed174ee1e486  libstdc++-v3/testsuite/25_algorithms/rotate/rotate.cc
! 91e0318e75a672bbb8cc2f1287b06fd3  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc
! 561a96a98279708c25526c5042d527c1  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc
! 023b47ed28e4f3479e5d8efdb67cff63  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/2.cc
! 8efd65726f4d2f5d16f0e5f21c45f0a1  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/pod.cc
! 0bcd1d3a9750cf4fba99f9fea6beac03  libstdc++-v3/testsuite/25_algorithms/sample/1.cc
! 8656adcba6bfbd4b2da9b22526a8b63b  libstdc++-v3/testsuite/25_algorithms/sample/2.cc
! ee0b996cf44d71dadd980dcf0a4ba816  libstdc++-v3/testsuite/25_algorithms/sample/3.cc
! eb949ecf90361d6800c1ee99d1706e0a  libstdc++-v3/testsuite/25_algorithms/sample/81221.cc
! 04948bb4a5cea1f50065cf5eea9ec319  libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc
! 8e513f41bd8980c6781bfadaf25ca799  libstdc++-v3/testsuite/25_algorithms/search/1.cc
! f12dd8a76149ac15cda21894b99483a2  libstdc++-v3/testsuite/25_algorithms/search/78346.cc
! e9edb56c71f9cefe96019e0f43fda8a4  libstdc++-v3/testsuite/25_algorithms/search/check_type.cc
! 3cf52cfd956377dfef9c5b87b73132e2  libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc
! 56b42fdbb017ab1a09ef71c7551ebac1  libstdc++-v3/testsuite/25_algorithms/search/constrained.cc
! c1c8e82daadc43b79e717ffa00c11695  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
! 6b8ec4ef69e7fee3bb70fdac4a49171f  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc
! 3e28d60e900d213845df50bfe2fdde67  libstdc++-v3/testsuite/25_algorithms/search/searcher.cc
! b3b8792536528caa9f368275dab491de  libstdc++-v3/testsuite/25_algorithms/search_n/11400.cc
! edc2f1cf50138f1c0cf5c0b5e00fc798  libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc
! f50dc133d85fe2c755951a69031d59d0  libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc
! 08ef9cecaace637785bda5f14467a598  libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc
! 3481f01aa51c064e010c09bd26e53171  libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc
! 160206989a8928576471249862bbab77  libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc
! bfb7e79e1557a010cdfd9588b6d8ed3e  libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
! 7d56933aa9125082072c82db89699367  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
! 00ac2a41e5a290ad1cc15bbb56b76778  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc
! 56780736316bd0c5a6386d70eeb3e674  libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc
! aaae221dd105af8c302acec21dbc29c1  libstdc++-v3/testsuite/25_algorithms/set_difference/35541.cc
! 5463957b99e6806e97734451b2a4b905  libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc
! 89261b5984fd5f7d2c51500ec2e1ef87  libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc
! fbba2c54a32fcc8882e7012e5df50fbd  libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc
! f13ef147c59fcaa07c843c8d5b3f8235  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
! 218ce287e92e68aac296b9fe9b16374b  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/pod.cc
! 9c76892e02c8228510ed7f85beda986b  libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc
! d5d2b82e3d88702bf1ecb5f26b610460  libstdc++-v3/testsuite/25_algorithms/set_intersection/34730.cc
! f55b485946593897f2ec866bc7999221  libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc
! edc288386bc3e436ff1e12541609860d  libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc
! c4acf02371554125da3d752f228d3375  libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc
! 5b976fad570b5d89fcee4ace544a65ac  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
! 9b528874b9b618ea66b32f240bb55e44  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/pod.cc
! 2559dab7efb20502430de0c9901825a9  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc
! 615c84198dde89079343e6db1c75f2ac  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc
! a9cc3d62881f9c92f52bbf1e75ffa04c  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc
! 488d3f03f766c29219715cd497654f5d  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc
! 5e66fdb0af6ba5f22e690665bb92444f  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
! 8687d2ec963d4a24afc18dbde9a0c0e1  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/pod.cc
! abd70b0a641884f91322eb68125a77f3  libstdc++-v3/testsuite/25_algorithms/set_union/1.cc
! 0bc284041782abca9c03aa7a2077b68e  libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc
! f7e3251a6ce1e5303b2e7bfdcbfa27b6  libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc
! c4c4a437b59482aef86cb2ffab24ea2b  libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc
! 33808d93e4ca0eb9de71485d73fe1f38  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
! 9ade0c6447144c6e1085ada520067145  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/pod.cc
! d73f766013df35c2125c478367d8759a  libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc
! 7285112bbc21c4582c106c467d66c1a0  libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
! d4fe14d87d7f376630fe653eface932e  libstdc++-v3/testsuite/25_algorithms/shuffle/1.cc
! 4f240d75a5268f7265013438c45d2774  libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
! 50cffbcb101fdd628ea943dbdfe303ae  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc
! 4a26db7b2c47acdecc3b43874ce5adef  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc
! 69db79b4caed784ad8ffdfdd399705f8  libstdc++-v3/testsuite/25_algorithms/sort/1.cc
! d1c2cccd1f212c8cac113ad1fafd8d05  libstdc++-v3/testsuite/25_algorithms/sort/34095.cc
! 9cca24da272654fc89a44a6f6df51f76  libstdc++-v3/testsuite/25_algorithms/sort/34636.cc
! 91d204fe7cdedc78710b741520491871  libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
! 01ccdad9d57bb2687f8cff96ecc6620a  libstdc++-v3/testsuite/25_algorithms/sort/78991.cc
! 4ec57e5b37497902f544a0d3fed94b4e  libstdc++-v3/testsuite/25_algorithms/sort/check_compare_by_value.cc
! 6933de459ebe21279f69bbee82392162  libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc
! 448e497add4f761569c40fea7604bd95  libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc
! ee85116a7090f24625341be25ff401bd  libstdc++-v3/testsuite/25_algorithms/sort/moveable.cc
! defd8ff7dbeed3d6bc8aac26ece01e6f  libstdc++-v3/testsuite/25_algorithms/sort/random_test.cc
! 7cf0333c196cf32901705eb5af21604d  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
! e93271cd50054e288f28465e76418f3c  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/pod.cc
! 58880a9c7da75865a1471098d3ba2fb5  libstdc++-v3/testsuite/25_algorithms/sort/vectorbool.cc
! 1de42877a97e9311a94f44cbbbd6ddd3  libstdc++-v3/testsuite/25_algorithms/sort_heap/check_compare_by_value.cc
! 7c3a41952a13c0fe0aa3e072f2339204  libstdc++-v3/testsuite/25_algorithms/sort_heap/complexity.cc
! e6f58508b49d176e2077d2d9271a65c6  libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc
! 3e5f5c0159893de3557bd597fb439403  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
! 1c5873d0068cbf650a85d678ee49329d  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/pod.cc
! ecf6ba81c4223c298ab19f4d1c610d7d  libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc
! c3b9039a7581237c6b47ebf88f2b3a67  libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc
! f33d6b75325bf96d2238e3599fd04152  libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc
! 7d26954ca9310b49e5dc1b2be88c0e7c  libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc
! d0dc6e72ded804672a3c8c6f6f8136ea  libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc
! db8792a754570f7d240aafa85516b11d  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
! 96e2436510c63b22c5dc962ba157d175  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc
! b4debf2aaba2a99903c9f4d673382515  libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc
! 02a477edb7562938a5d11bba7deea153  libstdc++-v3/testsuite/25_algorithms/stable_sort/2.cc
! 3f8707e670aeefab26cfad520eba39c6  libstdc++-v3/testsuite/25_algorithms/stable_sort/3.cc
  b3f58b622470c2e75b734eba5c7ee60a  libstdc++-v3/testsuite/25_algorithms/stable_sort/4.cc
! b6ebf9ae8aa59ae6b96f4deb3405b203  libstdc++-v3/testsuite/25_algorithms/stable_sort/49559.cc
! 3c538440791eb288154ab592c49ca34c  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_compare_by_value.cc
! 02971190f2cc71f903f1ddecbda58d3f  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc
! 3e668cbc6435e3076d103d7b5db800a2  libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc
! 454bb61da5433fc79ce0e98385722fe2  libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc
! 770387a9094a052154828acb2490eb02  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable.cc
! ceab8cd7347073ba1476618f758feb1b  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable2.cc
! d9289169f0668914705b6248cccf1075  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
! d2f80cf09649d4b0afa50caa994dda6a  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/pod.cc
! 30d5eeb6352730e87f2490f2ee77ed08  libstdc++-v3/testsuite/25_algorithms/swap/68877.cc
! d8d428e12fae3d59231edf3e70ff6686  libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
! 448ff71a4f570df96363afd7d68bb9cf  libstdc++-v3/testsuite/25_algorithms/swap/dr809.cc
! 6f9757f48c43cbbebdd10420e7ea50c9  libstdc++-v3/testsuite/25_algorithms/swap/noexcept.cc
! 64644e3b0b70a3f0ced607db3bad6354  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/2.cc
! dfb6f9bb8742c58c2f87221c601dc0b2  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/pod.cc
! 047423f4f72b1c116b504a932799df3e  libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc
! 3799e98abe7fab45d1b8cf8701e1b18d  libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc
! d7a92b2b5411a7063e759ad31297f649  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc
! 3796850cea0b6734e8ad33c8c929693c  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc
! 5a2fff1e72ebd27f939631d88b3ef2a9  libstdc++-v3/testsuite/25_algorithms/swap_ranges/moveable.cc
! 691df9a11d8cf6e3962cf9f41e25eda3  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/2.cc
! f5f9cecd0ee785f9a75c4c2f4d2aff60  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/pod.cc
! ba592b284f6d2e508b60e76de25145aa  libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc
! 4d4f897c5bf9c73e721f960f33b30e87  libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc
! 87dbc2c3e561804caa2d2ce875ec3790  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
! 703cb5226307aa45aa88ccbda0d4326a  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc
! a1865c601f9b9e4047af8a04408cfbc8  libstdc++-v3/testsuite/25_algorithms/unique/1.cc
! 2b8ba383c0662d2fd3360201c3819551  libstdc++-v3/testsuite/25_algorithms/unique/11480.cc
! d8412fa15e8cd756cab25c277d70c2a3  libstdc++-v3/testsuite/25_algorithms/unique/2.cc
! b794dd587e857350501af574115a867d  libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc
! a965812055fc5259d046624d0945cd7f  libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc
! 355bac672a37760d79731b280b235cfb  libstdc++-v3/testsuite/25_algorithms/unique/moveable.cc
! edc923eb902c027a94e2ab4f61120822  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
! 09cd61c6b9c530e1376f6930500fb9f1  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/pod.cc
! b54cd64927cf15da60193d0b262a02b2  libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc
! be2405ccb0c10ee66a683d0e004dae7a  libstdc++-v3/testsuite/25_algorithms/unique_copy/2.cc
! bee4ca19901c518a9ae8e5ad0bb5c127  libstdc++-v3/testsuite/25_algorithms/unique_copy/26133.cc
! 819e777bfa5aabf87237f2f746475286  libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc
! 93963d3839b5004a0d8a4177e151d2e0  libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
! 35d120311ee460e3c8950ac82d8f12cb  libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
! ac9e27cf2a9c9adbc5e804b67f745519  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
! f03d1e3a48c96ef3833de0643c43d4b5  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/pod.cc
! 311b1e801d784507500fd1d2aa4b81f0  libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc
! 4ef5d85747af4a7da54e44c5cf308747  libstdc++-v3/testsuite/25_algorithms/upper_bound/2.cc
! c8f434e0369213deb9908dd10ea48812  libstdc++-v3/testsuite/25_algorithms/upper_bound/33613.cc
! c84841d69efcc13b83f7e0119e7ae4f2  libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc
! 0765a475f20bf7cee18414032e5bc66e  libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc
! 71bee8104c2cefbfc01ec70c388899db  libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc
! d2ed904658cdde8ef6ea42f0a25ee746  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc
! 52496cd3a90dd036f76563467187dfaf  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc
! c023364dca046fe5b13123119092820c  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc
! 17440d23c414acd9141142058937167c  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc
! e994474fa89878d2e9670180ac515382  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc
! 24576c9782dfa44005ced0827269307f  libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc
! 8d0e5dbc178cbd4d96d02d58286c255e  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
! ad4917041bb1e6157242d3a9d16ecc91  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/pod.cc
! f00454a639bc6cad951e91a9f263632c  libstdc++-v3/testsuite/26_numerics/accumulate/1.cc
! 85e223c84b10dbd3fdaf3473ff6e83e4  libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc
! 6cb060e486b5f590d1c5727370044346  libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc
! 7308982002b559c378e84d985a4c98e2  libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc
! 06b09e1f18f5938d7c5a1dae1bca353f  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/2.cc
! 9917094be08fc702c28be7cd975cc371  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/pod.cc
! 0133647b85e047653bb77a36aa947d89  libstdc++-v3/testsuite/26_numerics/adjacent_difference/1.cc
! cf5d336cd84952585abf201ac2e6d677  libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc
! 676d6fe52d1db28954ab2cd6a9dc6f03  libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc
! ea8898578acbb705775fb2fd23ce6d87  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/2.cc
! c142399f551bd530f74dcf4c26d1be80  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/pod.cc
! 24b43ceff7dcf531d071e6414f9a458a  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc
! 4bc3769839b59b77909e7a87430d24dc  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc
! 874b969b1c6b476310e9a3d96f5b948c  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc
! f1355b226cf283e33a47075a0b537bce  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc
! c304e0955397cb1fb5f23ca2903150f4  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc
! 30cbe7719c575114a301fa5c8dc7902b  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc
! 450d835b33266767498d5198e8fac2e7  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc
! 48aec1d803c37a792983832368017404  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc
! 3189fd6753c80905944db3173d1e1435  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc
! a9e930d5c22aa8c086a106fbf60dbabf  libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc
! 4cc4bd03fb0bdea5c1c77c7b3a71c90b  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc
! 432f709f48b25300e8c89ed5224d52c6  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
! 6170e9ca6e11f83d9a855fb2d60b1c63  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc
! c36b868b65684443b475643ccd7fbf8f  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc
! 15eff8a534026f4c77cc41831fe078b7  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc
! 5a11b0fba5eb4b9780e1f02e6b8925f4  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc
! c8b9ac20177006cc51d9b31ab96a54b6  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc
! 844b2487e2f44948fa730923f168588d  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc
! 9bfa323e186a0fa581c58f6d7c921238  libstdc++-v3/testsuite/26_numerics/bit/header-2.cc
! 91dce18f7a44c55c7a565f5b6c53cd31  libstdc++-v3/testsuite/26_numerics/bit/header.cc
! 84021b78dfdd0a4a3db9f638b3a3d957  libstdc++-v3/testsuite/26_numerics/complex/1.cc
! c9e9fe06c75b620a91ec4b21797c2c30  libstdc++-v3/testsuite/26_numerics/complex/13450.cc
! 2b5595a19bc99021bb2b57336f7173b0  libstdc++-v3/testsuite/26_numerics/complex/2.cc
! 6e351bd3a4f9d853d109aa6616202e30  libstdc++-v3/testsuite/26_numerics/complex/50880.cc
! 5b4f6f73b9a1e1bca2cc1a2398c4c6bc  libstdc++-v3/testsuite/26_numerics/complex/51083.cc
! ce14bd3ac22b8b0903430ee92e39abeb  libstdc++-v3/testsuite/26_numerics/complex/56111.cc
  af7877b96aa74cdfc7f025c671e3d6c2  libstdc++-v3/testsuite/26_numerics/complex/abi_tag.cc
! 492c2697008eacbbee505884592c83f0  libstdc++-v3/testsuite/26_numerics/complex/buggy_complex.cc
! 5ec9dc477c1a2cdf0adb940ba051fc46  libstdc++-v3/testsuite/26_numerics/complex/c99.cc
! a7f1de55f19bffd3e6e0b7af4f715cd0  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/constexpr.cc
! 1ea8aa2c3b8fc7f12d7b156482c7c3c3  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc
! a9291239979c810287186c890e9ee651  libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc
! 76e6a7c23e88a735fea1417daa217511  libstdc++-v3/testsuite/26_numerics/complex/cons/48760_c++0x.cc
! 879c643c26d19d4335d2ba300c010dfe  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr.cc
! 6672313976bbb42f2925394b39d7d130  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr_primary.cc
! 19512dc3e3629442ede15cf79db2dadc  libstdc++-v3/testsuite/26_numerics/complex/dr387_2.cc
! 71aaaa4a50350c9ff3c22f7e1d5b3594  libstdc++-v3/testsuite/26_numerics/complex/dr781.cc
! 16bed14f4136369e492ccab6baef877c  libstdc++-v3/testsuite/26_numerics/complex/dr844.cc
! 3fbda0bb50ff36ce0895ca2ce554ba98  libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc
! c93661533e4efbc4c4219c5aedb5a5fd  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/1.cc
! 6b7ff5039801f1e723e2bdbddb67daac  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc
! 0f20b81b67a1fe5bc92ab651c691712a  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/wchar_t/1.cc
! 1ce6df6adbdaf2f4fcf0dd871d23cfe7  libstdc++-v3/testsuite/26_numerics/complex/literals/types.cc
! 4be2a9360060a9a88d98cdc45c440cbc  libstdc++-v3/testsuite/26_numerics/complex/literals/values.cc
! d0b2793cab73b17595ea9fb0080d06b2  libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
  906619ecf0877a7ff5302dd409c34714  libstdc++-v3/testsuite/26_numerics/complex/pow.cc
! 6a019a7ab320eb3f31c96781d5b26aad  libstdc++-v3/testsuite/26_numerics/complex/proj.cc
! fb96fdd63a78933157a12f73ac66c583  libstdc++-v3/testsuite/26_numerics/complex/requirements/constexpr_functions.cc
! eda5539fb3d84347bb55a5d24fb07dbf  libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
! 0243f1205154d9ed8e79836fcd836aa1  libstdc++-v3/testsuite/26_numerics/complex/value_operations/1.cc
! 5c285853f214253fbf3c77a27e0ec1db  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr.cc
! 56f7856a8550e61adbf79d5d881ceaf6  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc
! e717660631b041883deaa24debf6fe3c  libstdc++-v3/testsuite/26_numerics/complex/value_operations/dr387.cc
! 678d45bf0e91ec2d4be51feffe98e388  libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc
! 20b960246df66b49743721ebb6e2de95  libstdc++-v3/testsuite/26_numerics/complex/value_operations/pr88341.cc
! 68b35c426bae7d33d16b18f7e85e1fb6  libstdc++-v3/testsuite/26_numerics/endian/1.cc
! 159c680208f75763069a4baac8f9eb6c  libstdc++-v3/testsuite/26_numerics/endian/2.cc
! 50114d2831f612476e5d2f9e26830bd0  libstdc++-v3/testsuite/26_numerics/endian/3.cc
! d82876a2c8e35c1fbc4ce356c69a5c55  libstdc++-v3/testsuite/26_numerics/endian/4.cc
! 99298cef7e624e3f4c3272acf5184c20  libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc
! 4ae2caeaa19a1414391829f460a1675b  libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
! 744d041824042d2af8ef47c28119ef25  libstdc++-v3/testsuite/26_numerics/gcd/1.cc
! 50d80887b49e18b929dd57c20f038646  libstdc++-v3/testsuite/26_numerics/gcd/105844.cc
! 322844c3f52b724a3551c3fb2afcf703  libstdc++-v3/testsuite/26_numerics/gcd/2.cc
! e4dc0ecfcde74513b415da85f6d0dec9  libstdc++-v3/testsuite/26_numerics/gcd/92978.cc
! 39c36a7a13b080d84ce7df247f76bcaa  libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc
! 98103b562644af6058051c932e30f979  libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc
! fc0aaccd952d01a07f9bf96efd98f8ea  libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc
! a13cb486aaf183556330c527b56f1345  libstdc++-v3/testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc
  2c248a4dde912eb37b2f452da846b228  libstdc++-v3/testsuite/26_numerics/headers/cmath/109758.cc
! 1107829a4b0ebddc2e237d1d81bc6ed7  libstdc++-v3/testsuite/26_numerics/headers/cmath/14608.cc
! b8cb9025cfd55dab112b42cf7a12b8b9  libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc
! 2f35d567cbc188cc70ee976864919d7a  libstdc++-v3/testsuite/26_numerics/headers/cmath/25913.cc
! f01f3ff78e3c32a13e7ff434051b3488  libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc
! 8d50f57e8812b890cd6bb7023a1b8c77  libstdc++-v3/testsuite/26_numerics/headers/cmath/48891.cc
! d3c30352574e8247889f24db266affaa  libstdc++-v3/testsuite/26_numerics/headers/cmath/51083.cc
! 5b1abe5ffc15854ed1fdc6500b9eb359  libstdc++-v3/testsuite/26_numerics/headers/cmath/53503.cc
! 5021413b1a8034398680ed4f0882206b  libstdc++-v3/testsuite/26_numerics/headers/cmath/60401.cc
! cfa6be5116230414ea3dfd6276bc2348  libstdc++-v3/testsuite/26_numerics/headers/cmath/60637.cc
! d30cc3671f0a972b249848b5202cebdc  libstdc++-v3/testsuite/26_numerics/headers/cmath/82644.cc
! 1b9951a28fd0140f339e71c71bc3cd04  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++11.cc
! 2bcb796be02df61669c23e26a3b45cef  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc
! 74ca520cefe8e60704cfc7826cfea028  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++98.cc
! 3cc87dcdb6e6406cfabccf882c0840ab  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
! cabd02a55638d32a8a94dc5fbc5e5880  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc
! 22debde6b7950831bb9987a5d2f82581  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc
! 03fb3b4f7296231e4685543c51a411b7  libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc
! 1386de822955839825d527035c0702bc  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192.cc
! 57a8185c9107656dec32645de3df7f24  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192_neg.cc
! 3444ba62b3a8519094872a0e431c4bfc  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr550.cc
! 1aa4ac0cfef5187dd4f43d43e938ecfd  libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc
! 4036dd4cfff1dc95c230ea5e1399f447  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_global.cc
! 1fcbb580cc1bea1cd3d62f72472f8f56  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc
! 742b81edd2216cc41fee7a766fd67cf7  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++17.cc
! e36114f4573a064d9d3df458125e43e6  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
! 86d8c2032dad1688eb520eca467e228a  libstdc++-v3/testsuite/26_numerics/headers/cmath/hypot.cc
! ff4fd6e60f977b1f246acf08e42ce1be  libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc
! b02b346fb096de047ab254e66eab3b6e  libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc
! ec4d41de9adbfea59234a9d6232097fc  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc
! 2d050f23c71fb9f0185d930d5d50bcd8  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc
! 20ce4556597f4f95913a3c805ea94962  libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc
! f993b467a982beeaddfe50cf69d314e8  libstdc++-v3/testsuite/26_numerics/headers/cmath/special_functions_global.cc
! fda8f30d25278b5168a600738e06d2ad  libstdc++-v3/testsuite/26_numerics/headers/cmath/types_std_c++0x.cc
! 190f4f8b0166bf5f97fbfe980b7e3546  libstdc++-v3/testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc
! 88d43632ee6f9c143e9f7a4cd91d70ee  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++11.h
! fdcf7d303ad07292c8cf53ed5b244dd9  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++98.h
! bdefc519d89fb02410a6799d608750ad  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_gnu++11.h
! b1f96df0357954c2a1fcd94a57df04d0  libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
! 967412e826f52ae57b83bb7ab4389b4a  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc
! 299d1dd4423f074e6d7b1e8fd98c5e5f  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc
! 8321256cd236dd01447a37832e23bc00  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/54686.cc
! 3976b577eda9dae3ca27f7609f071726  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc
! b5750477b54970aae3db0586a246865b  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc
! 2a33816f07ad739c2385b99e6d91ab32  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc
! 8f4e4f668645a75f22f491d9b1ef5db4  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc
! 9b475b63a59249f4b44d6a4c7565763b  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc
! 6b2c07bd4c3b6d7b298db70d0602231a  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc
! 8001b983598a9a2bbec032ea1d2043f5  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc
! a7bd6d023fd74d9c942b41dcf5697628  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc
! b8590a41fe72f6c36cd6df27b6d416e4  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc
! 4766a70e4aa8863db5eadcf9dc504f20  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc
! 00d5123d4358ece132198e536e22092d  libstdc++-v3/testsuite/26_numerics/headers/numeric/numeric_parallel_mode.cc
! ccf0e235768a5e62e572c78fafc76a69  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric.cc
! e888ac12c4c191c4a5cfa64a732390f2  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed1.cc
! 654ae8b8add430c223676224ba442eca  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed2.cc
! 4bbfddd0e6eabc8b23acfcca3a1a17a8  libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc
! 9ec5bfc195381f1dab69b5bd058cab0b  libstdc++-v3/testsuite/26_numerics/headers/random/std_c++0x_neg.cc
! 67942375aa6e400065ee363be5116411  libstdc++-v3/testsuite/26_numerics/headers/random/types_std_c++0x.cc
! 706f85a3fcd3ff9a4dfa1b6b822f7a63  libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc
! 03e019c4f8a241467a2f23af80500d24  libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc
! 8025d87ad314b8a3bab5fa59a9e9304e  libstdc++-v3/testsuite/26_numerics/inclusive_scan/1.cc
! e1b51fd6c7c5086ba22b5ffe5dbe2242  libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc
! c5d3db3893eca263234f6eb9402b3246  libstdc++-v3/testsuite/26_numerics/inner_product/1.cc
! a6db5d0c9abc4de3e1712927738fea9b  libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc
! 01466af823635ac48b0d8a3041bd7e5a  libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc
! 1995509dd7579d37fc3493dfe68edb13  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/2.cc
! aeabc4d25a07bde7a910fa5d4f8a61db  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/pod.cc
! 8a05b353535c62f64920a74cb2f34c79  libstdc++-v3/testsuite/26_numerics/iota/1.cc
! e0b58269927e38e2e9feb4189e3e95ba  libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc
! f0ab4198daf9a63a5a01cff40b2e3836  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc
! d676a735941e66a8673d0e9f60b144e3  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc
! 0e7348f9b281592c3f79492d05c6f488  libstdc++-v3/testsuite/26_numerics/lcm/1.cc
! 37db28e85bc57ea43b5a022211e015ad  libstdc++-v3/testsuite/26_numerics/lcm/105844.cc
! 86b4cf47dc3a667c20210010ebd69cde  libstdc++-v3/testsuite/26_numerics/lcm/92978.cc
! ac4ce7ca35a0baead00defb939737120  libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc
! 579ec6121ff496226575351d616689c5  libstdc++-v3/testsuite/26_numerics/lerp/1.cc
! f9ae973e3d6f85f4c35471e62402ba98  libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
! ba268d24d8e76ddd08f2db57f6c51ddb  libstdc++-v3/testsuite/26_numerics/lerp/version.cc
! 2ebf3211d0ae920c6d8aff7644b858dc  libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc
! 5130f7424f19da76288de43d6d292e3b  libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc
! 85ef849a51b833d0a5c1dba42f126c19  libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
! 2177140028210cda9ee7d692d8d06f78  libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc
! ba268d24d8e76ddd08f2db57f6c51ddb  libstdc++-v3/testsuite/26_numerics/midpoint/version.cc
! d955a63dda0a0db94fa7ce0603a127c4  libstdc++-v3/testsuite/26_numerics/numbers/1.cc
! b2cf58ecb868137550f7fd84bcf16f77  libstdc++-v3/testsuite/26_numerics/numbers/2.cc
! a269e30b1586c22500a12c5702b01079  libstdc++-v3/testsuite/26_numerics/numbers/3.cc
! 7b92eb04c86f8a72b2036b36629950ff  libstdc++-v3/testsuite/26_numerics/numbers/4.cc
! 6c1fe5ab484bfc36f0605d7f8f0a04d1  libstdc++-v3/testsuite/26_numerics/numbers/float128.cc
! cb0244876e2ce5b0704d374adca05ddc  libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc
! a99e691050435f7aeb3c4fe85a6e3b59  libstdc++-v3/testsuite/26_numerics/partial_sum/1.cc
! cbd03d6d32922d359a1ddd86655e1392  libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc
! 728b695ae5c9ff90da938142637faf50  libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc
! 83c6ab989fe00bb9d4949456b4ba4ce0  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/2.cc
! a1caa68cc4972cd3159804a408643d76  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/pod.cc
! 862f4f439e8707b32a42b5fe736946a5  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc
! 0553df89726830b7195d3dc76149d7b4  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/reduce.cc
! e7d03e915035104e8c34f0e1a253cea1  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/scan.cc
! ee23c3ef0c6798a40b17c2720f1599c9  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc
! 37a9d3638006b842a59994327880b85f  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc
! c4a3c0ce95f266edbd33ae742e6c6415  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc
! 4a9e71a11251457ff0029020fdb8f22d  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc
! ae18304a3e29e9a7b9d6fd736acda81d  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/equal.cc
! 373ad5b954292a67ff851624af171f64  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/inequal.cc
! e9d694dfff0062cc8c84255b28675baf  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/serialize.cc
! 88642ef862ad925ddcf05c3e69b16d88  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc
! 384f92442d4823f2bd5a22459fe1525e  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/requirements/typedefs.cc
! dea617c857e2704c95f88efd4c96f411  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc
! 194587166985b86b4c3da1e0e7f167c8  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/parms.cc
! 7bf2cad7a363c51103cdf0984b486aab  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/equal.cc
! 2084d56da872d5f5b7688e0805822978  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/inequal.cc
! 4749d20d101c90d7764f79ec2f0b75ee  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/serialize.cc
! 6145e00df8eb1f016db247bc87a01527  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
! 45f76b0110a2b02ff48f55554dbb8bc4  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values2.cc
! 45d52dac127a49ff16a6093cc395f66f  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values3.cc
! fe1e69899748cc1f6e79209dd9032b21  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values4.cc
! 424f14558effe15aed89ec82d509414d  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values5.cc
! bbb1b88b6abb3024d1dd904e110a6b5e  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc
! 7c4b2c3b17ba953d9bd289de5dcd29fb  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/typedefs.cc
! db5fe74c82243bce1cdc17523ff50f79  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc
! 5c76e631b90a34143e00691f12b12e0c  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc
! 167b83848ac1784758faa8b5d740dd3b  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/equal.cc
! 68dc0b8cb6b688a267288ae42de03c73  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/inequal.cc
! 619d752d39ada8948468673783a72075  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/serialize.cc
! 5bfffdb34e4517dcb85f3bf710cd4304  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc
! c2247e76f484b3f025edcf198cedec8f  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/typedefs.cc
! 2c41b25a552ef95d68a387c687cdc61b  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/83833.cc
! e1f3166dc108e54a15f6e09cbae94c7c  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc
! e2fcede7b96dbc915e7f2cc5418dcbf6  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc
! 0755850e0e161f99bae8bed7106102fa  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/equal.cc
! 9e77eb6c764745936275283972b9d7b0  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/inequal.cc
! 9d13cda8c21f7b7206730e5a819df037  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/serialize.cc
! 70c34c22b7480ca5fe45c53d9eebaf62  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc
! 41f7f1183d6b0051e954fbc3362f16d6  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/typedefs.cc
! 7d987215f379ff4a65f2ead00b2ba9c6  libstdc++-v3/testsuite/26_numerics/random/concept.cc
! a0c0c458eb75548853a127a78c2f7e90  libstdc++-v3/testsuite/26_numerics/random/default_random_engine.cc
! e4729b548390cfce1326cdc87adaa497  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/55215.cc
! 7af9080d5bb25b801846973328b975a7  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_copy.cc
! 3078e71382509c005b8920a90561138d  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_move.cc
! 4fc066d52013cf333cbfa8fe98bf3dde  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/copy.cc
! 874d5b08819ea607ce16fe6c7a957e0a  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/default.cc
! 7abd14207a2e924aac9c691726e31976  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed1.cc
! 0ab4a12d7e9e98bec71cf88f8f490049  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed2.cc
! 3a695a4c83a042a631723f3fb1df8924  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq.cc
! 1c0f132c380eaef5d19978d82ffb7769  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc
! 673cc6b2fa01f7e9f66f43bc5154e7c1  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/equal.cc
! fb6c0c8c3e4bb4794f8eda918d5ad7c3  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/inequal.cc
! 3c265dfd3933bcd29e3a17fd10b291e1  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/serialize.cc
! e69bddb10cbb9e7d2cc3138ac2959826  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_data.cc
! 368d0f876cca9e51fb020e637d9381e5  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_functions.cc
! 22527ab07d2d1a786bad1297026ef376  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/typedefs.cc
! cfa8ac6648df5d4b9f8134e8a1bd714f  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc
! c3ecb8eea74393395c7beb4472e4694d  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/initlist.cc
! 7d7f6d248e9dbfc28ab230237d1968bb  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/num_xbound_fun.cc
! 12ca3ef6a18fe9a379108adaf8ae3c32  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc
! 7e905c09a3b866245cfab3875f82eecc  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/call-default.cc
! 9f7ac0c9bcc9129fb5007e541766a6c9  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/equal.cc
! da044a4438277be35dc8b116c1e6e30d  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/inequal.cc
! 3c738281ddfad992086f22b572b697a5  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/serialize.cc
! c4f2fe89886bde73d3df5376b2331bb8  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/values.cc
! 5a2217ec5f26cae0bf0c01f6bfe65071  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc
! 658d03eb246dda88cd6053d11ed45b15  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/typedefs.cc
! 073c2059397b73f58d395c904dc9939c  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc
! bc88d06deb73bb0a541b23a6e9223b99  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc
! 9e9f823ed50094e01313f56bcc318ae2  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/equal.cc
! 4a5af9af4479f82b47e32787a530aeeb  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/inequal.cc
! 3029192be1cfb880d25504e61af44713  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/serialize.cc
! 2f757069eba9945d7f4dd6a801f901f7  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc
! f80452fd2605b1cb7291d8e1a744a9c6  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/typedefs.cc
! 807c9077f92e714d742db78d168defb6  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc
! 7f7346b3a10cd9c1e92254bcbd66f2a7  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc
! 17703b79ae43e02a289fb1b8bd98d3d8  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/equal.cc
! 889f3730eebb2f42e5b37dced434ec73  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/inequal.cc
! 2fac04cbe9117e074a53a40829ee953f  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/serialize.cc
! f93b662d340a339d0311f3ad062600e5  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc
! 9c63a201345e8943a15d6eab91f8953c  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/typedefs.cc
! ed7b034316518a167f133eac2f3c160c  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc
! afef8a01230b06320976237a4b20b6ce  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc
! 4b67c80bc75007c600adf728d4a8b6fa  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/equal.cc
! 4dc7cf26c92cc64619f6310555c6c94c  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/inequal.cc
! 069e226cdedc9c47fc0ee4dd565ad4a5  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/serialize.cc
! abba39a48e3ccc7fce5b53b756c85b5d  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc
! 189c154c9069134b8f8bd11f12f85de5  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/typedefs.cc
! 3f412ce57822313c681301c8681788e7  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc
! ad41592fe2e13f7b6007e0eccae66f81  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/parms.cc
! a86b87ebb3e714378cdc4675da744d7d  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/equal.cc
! 183927b6928c4e9c01fb7c7f41097be1  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/inequal.cc
! a86ff48747f79dded2227b9b10c7ea66  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/serialize.cc
! c98c54b2698b55ff8d51b593e802eb22  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc
! 5b9274e21cb895757715490b971c21f9  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/typedefs.cc
! b3b03948630d5f11d1ff3d232928b67b  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc
! 78d2a71cde6f9cbcce55066fb6e85f18  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/parms.cc
! a3609ae97094dc2192b799eda409d4c1  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/equal.cc
! 81a72d75ea0b75f623f7b736c7683cec  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/inequal.cc
! b3837f9ad9dc56ee7ad24bdcda0cc09a  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/serialize.cc
! 1df3304e764080cfdb28ed5fba1e2598  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/values.cc
! b99755b7a13b5397da23270865ea320a  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc
! 5fc739dc154d00714dfe075c1e2e98bd  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/typedefs.cc
! 83dd6a77c40280221933fb9ee9c3e704  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/55215.cc
! bd19004431976200a8ca52457fdab9a8  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_copy.cc
! 72f4bc19a0aa25bdc0c604261d77bcae  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_move.cc
! 2dcb3323ca9f78d73a9ef298a7ed2304  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/copy.cc
! 9d241ed7f4456da2c5779ecff8ea4cc8  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/default.cc
! 02e305edd479c449ada3910589ac6c73  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed1.cc
! e9e9eb0b15f67008f5595f0c6cc30ebf  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed2.cc
! 4bfa03c7dcb1c03a977c131d71f66d85  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq.cc
! 90fb955c1924054e24937d36495ad922  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc
! 61b9417742eb5f23a692ca9ae6adb2e3  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/equal.cc
! acc7a12715afb22cfacfdb0a10f7a71a  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/inequal.cc
! fd62399490e5ead91627a2e2232b1a37  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/serialize.cc
! 0058bab0d29664ccd406690b31f09ede  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/constexpr_functions.cc
! 49d8aa4b8166e2af0f33cdf5686dd9fe  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/typedefs.cc
! 488f489c27bc1f6164e0c9177e756dad  libstdc++-v3/testsuite/26_numerics/random/knuth_b.cc
! 93265e465411605c5dcf61a8adf8311f  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/55215.cc
! 26310ac5a4bf310bbc68ba89d4ec7485  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/copy.cc
! 98b70a58ef98d3ab603bf8656da907ac  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/default.cc
! 4b8d4472a4408084b0d77a112ffb0a40  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed1.cc
! 34c5607b106e320baa4762a3b4cb3c8c  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed2.cc
! 7e7ebaee61654180db85c85023851bd0  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq.cc
! 11a1de4c3883e498e5bbb89dd9829c59  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc
! 4f96715ecb4c184d50b3ea4ccf3d5a34  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/51795.cc
! 63fcef27fedd3b7947c7ae96b10074c1  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc
! fe15f7a7d27d8e60e5957f09fd50f79d  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/equal.cc
! c3e7c315885e9460891b186e299a4cac  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/inequal.cc
! c943282d90e6612b8dfb5acc44371e4c  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/serialize.cc
! 8fb227dd685602ac57fbb406de8f1568  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constants.cc
! 78529ecc0226f951098a4f560997026d  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_data.cc
! 08a5af965efb0e4d375f828486b9bcdb  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_functions.cc
! 2acd981385f8c93bc26eee914a1797f1  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc
! 6694eb2bdcfbe1ff2e731d0cf7441bb1  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/typedefs.cc
! 68340327897132614568d4e538b0d3af  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc
! 108a653a5cc60578de4f98ac4521063a  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc
! bf45190d8d62cd9ae585f19a4e26050b  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/equal.cc
! cc0868fd81ccc6be0ae76864fae51e41  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/inequal.cc
! 0c55b317d1dfba86bd8f6150acf82648  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/serialize.cc
! 316d39b8862de0591bb489d019367ed5  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc
! 584d0c65c0e7cb94c39a1bc59be4bd27  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/typedefs.cc
! 3221a2e4dc7b4570c116ffa9c70ec723  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/55215.cc
! 06f6cedc300f15c6b925ae5b34e042c3  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/copy.cc
! 944ca3fa7648b30dc64c19eaae8434cd  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/default.cc
! ede42da600d481279c596ca0250e339d  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed1.cc
! 4d792b3de82815cfc971df9f3a432410  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed2.cc
! 8c90aea26dc0f7d50c8f3fffe2dfe71b  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq.cc
! 0fe20c7da1c055de4a647c8859942982  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc
! d3a9ee7a725f899a7da01f6f5cec1767  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/equal.cc
! 8712704236cf46e0b12de9b974320cda  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/inequal.cc
! 505627043f5ff14d6f765990389779c0  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/serialize.cc
! 336cca27c085bd8e6a24cdc08ccdbf09  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constants.cc
! ff362d55707a8c5421a1a8929c2bbde3  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_data.cc
! 3eae5f835ed1abb4a69f9a10d41720e2  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_functions.cc
! ddeddffd194071b49605b5ee2e2ed02c  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/typedefs.cc
! 66571169b1b1e8ec3893c67052bad238  libstdc++-v3/testsuite/26_numerics/random/minstd_rand.cc
! e8abfd1a6adc631bf48ffa80f88a0b11  libstdc++-v3/testsuite/26_numerics/random/minstd_rand0.cc
! a140ccc73898c42b213bb271421eeb0d  libstdc++-v3/testsuite/26_numerics/random/mt19937.cc
! 8af90cd9e07ebd44aed3ef67eeeef2c1  libstdc++-v3/testsuite/26_numerics/random/mt19937_64.cc
! 3f63e255eb0e7c169806f7675502c4eb  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc
! 5419411cdd3137968fc88e681005bffb  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/parms.cc
! 52c3c9a82f2faa189d6aeb04b81209e0  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc
! 988c6d177de24f34f6260c313a773f2b  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/equal.cc
! 611a7fef66a22255343eefaabb8485b1  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/inequal.cc
! 031af108d32ff7045e9d41364893c33c  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/serialize.cc
! 02bb2194919338642e382d28dc50ab65  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc
! 53e40e9d6f124c034673f97630db1778  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc
! 0aacda1d38c34acbde7accca8aa109d0  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/typedefs.cc
! 5cd59314a553b174a5054da3b4a54b12  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc
! 3c9c25b2237c9d24a71e3f92a3d91a2d  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
! 2c44eea6f75c9ea2d1dd5b4f9e58440d  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc
! befee969454accdd54b27f3fc4ccc92f  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc
! 5fd2eb167e9917d51b1a41586797f8db  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc
! 49b7485b9fea071aa0b3e624386411cf  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
! ecb74a276612d31b3627a77f26e5af81  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc
! e986219d906ecf594ebca7883e582953  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
! f03b3c29bb87f04903244e401cd221ca  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/initlist_fun.cc
! d0ad8cf48b0748af30a8149399cf7e4e  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/num_xbound_fun.cc
! f674e65e896f4ea958751b0e77945bf6  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc
! 02fbb4501967694cef826f937f867752  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/call-default.cc
! 94356f1ebc9a3aac03f1bd2d63038469  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/equal.cc
! 1c9e8ac3807a32e3eb134af373a6855f  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/inequal.cc
! e7fac00b3593929af566fee02f3456ec  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize.cc
! 663955de0aa658c230f4ea5964ae3561  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
! e4e115c44d7bf7f09105b4fdb5f9e08f  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/typedefs.cc
! 66f2e36122c7e4fdca49dd2284b18d2b  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc
! a82dd07a8d38b44b1362836111675bbf  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/initlist_fun.cc
! 1adb0372513c98db17230febaf986a5d  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/num_xbound_fun.cc
! da0bbc56160d87fd172053418e75ca18  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc
! 7fa4e1c8549d597744ab767864a1fd00  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/call-default.cc
! c6a383d3d658a08c9cfac46fe4b7356a  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/equal.cc
! c8815f7cc1761756048289682f7c4f5c  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/inequal.cc
! 34fb962aaeccd9942eb66b03322f5e93  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize.cc
! 7ef2aeff430b8680a8b04e1ccd384e4d  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
! 02eca6d0e8a3276e8c73bee257a936e0  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/typedefs.cc
! 40b6ead09c7a437062eba9b5f8e4ca46  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc
! f0f775339a6488164fc9ba928e564bba  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/parms.cc
! 11a91e2d47511d9dc42c1d4151750587  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/equal.cc
! b84e5ab94ec6428f027baa678d0b96ac  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/inequal.cc
! b652ef4ebcd5eca7c3f27975a9cbd3b2  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/serialize.cc
! c07bbecf122934f1933a999d343a397e  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc
! 78945692b5889519634541c72e1e3f0c  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc
! ccaf9db763a530c0f83e98c395a1f4ed  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc
! b608fddf5a8b6a0dd71d8cb3ff0e66f2  libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc
! f1fe6adbf3b76c148bada3e2efbf5215  libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc
! 304a2f8657966be6888ed5ad5d633739  libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc
! b159f3ec4d050f63db4d68f644b0f02f  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc
! 20a48df8cfa8f07ffb3c15166a133ee2  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc
! abe085f7648ead9ab5f42c9043f055ab  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc
  b58b0627741172f23a1476ee917f59d8  libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc
! 0ae3644b932a193a3ca59e45cbabede3  libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc
! dd6299793adf1ba7267f47599cbf7160  libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc
! d544b731c00e08a7e3b86aa87aaef45e  libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc
! 62e7c55eafca7e569e26ac29f66d6679  libstdc++-v3/testsuite/26_numerics/random/ranlux48.cc
! cc10d964bc72f5a3cc205f9e467feaee  libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc
! db633537ea6702b69c0d4dbaebe6023d  libstdc++-v3/testsuite/26_numerics/random/seed_seq/97311.cc
! 21ecdf0d4b35943ffd7c3030face06e4  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc
! b5d553fc94dba1036eeff73cda038da5  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc
! 95a566e414c9037a508c6375f6070f75  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc
! c96c3ec7fb3390a2c9a7f52a7cf407c6  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc
! c6aeda3ffecf7c2c306fe03b1e8b19cd  libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc
! bb6706e326ea71fbb15cecb2a9d43650  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc
! d43258a218ce74835f10629eaa6688cc  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_copy.cc
! a6befc75554db79e0eba73e9889f8c3f  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_move.cc
! d5e450150163905ec7d2a409a34751d1  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/copy.cc
! f81aa18832a6e7c04d2ef157c7c847a8  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/default.cc
! ce2f5ed0b0ab89e9b02a0e564fbd11ea  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed1.cc
! 485685d0cae5cbbb50c2402a1b99f620  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed2.cc
! be2ab588ae76d9f0c5645e06fa92a12d  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq.cc
! 166b018e42e88a2cbfbe3aca48b7e8bc  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc
! 1842a0ab9c549c6a73c30c60570dc7dc  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/equal.cc
! 23af0e4bca8ff60ae0b9e7aae76a402a  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/inequal.cc
! 1ca3bf05ad607c92f9bc2d66c304d4a8  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/serialize.cc
! d96b96454c0a314476fd3b317092d984  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constants.cc
! d658351e72e52deceea5e9e979bf69bd  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_data.cc
! 9d6c0f08326e23e6c91489e9de4312bc  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_functions.cc
! 0419e1622dca0b241ec5c947266c44f9  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/typedefs.cc
! 5266a6ca4a429630a4619d51a3a18dbc  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc
! 50053e6aa32f404e9a4f9ea41ebee228  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc
! c9aeb22090a1d5bcbca001f3c76587ac  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/equal.cc
! b602b7e55bb03dd366461f6ca1b9e48b  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/inequal.cc
! f444deaf68a62a27bd976c4e93edd173  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/serialize.cc
! 47989bc2d97b1bac0166ed6b4ebc70bf  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc
! 4f3c9d1024518d8f815bfa45b94e094d  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/typedefs.cc
! b0fc8b473dbeab3cad631c8747d86664  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/55215.cc
! 8cfe0c378858f3cb0e91803c2e25a59f  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/copy.cc
! e014289bf53a639c13d1030b51c5bb91  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/default.cc
! f6735a89cd53d5b140b5c2d979ef11c5  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc
! 4c3a6d7647da465efec2bc5e7c7de1a4  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed1.cc
! 5f62ab25f4040875c9ad8b3a6f1c6f73  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed2.cc
! eb35593d2b236d7313cb2495a8291016  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq.cc
! ed9b466088b562c9f5fdd42612a1a629  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc
! 48b740c7bc1405d9fd263f55af938bd7  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/equal.cc
! 044eed97aa96b00d4258c65193493d7e  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/inequal.cc
! a5f8b956373a01183e4ebe9fad7f8b9f  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/serialize.cc
! 92a93b63542878f9909b48c60d0619e2  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constants.cc
! a6dffb0918ae48db0d3524db448beed9  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_data.cc
! 9c1a24ee87d758ac4117605c0a93ee51  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_functions.cc
! 1ad737889328c73b8501c223b09233e9  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/typedefs.cc
! 36bc0383d3992d022118f0a55d8fff7a  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc
! f5be763cac95ed7fbc876530e75590af  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc
! 7481f66ab9a8064567b87b264a27639b  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/equal.cc
! 8aa5687e1a3f56616d3e27a4385cfa2d  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/inequal.cc
! 29d7ff908b9f7f68add563de75d3d689  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/serialize.cc
! 7e1f5a351e1eaf03c1aa0712631f95c5  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc
! 326dc2579ff16b881ad843b56074f486  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc
! 16e56a9e374748a90e347b6a34fb05d0  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/typedefs.cc
! f3956124cdb8c377b4f9342c0dfc8483  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc
! 1cf052877e7554a69a48e11061277c14  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc
! 1f2bc622c94118678d4825d63a4c29c7  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc
! 509283be0f33a2af1e82286fd4a6f262  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/equal.cc
! cb63478507a94dd7f4bbe9ffae2f180c  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/inequal.cc
! aeae2cdf84f2128ace8edf4bcd37b8b9  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/serialize.cc
! d5240f872602881cf02711b25f320c3a  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc
! f2231187ad24efe53a07a2b4ec836a58  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/typedefs.cc
! 01a9bf2f2d9149c62e9ccc5c981a9799  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc
! 91b30db8b955ad265fd5afeaeae5888a  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/parms.cc
! eecc45d45ba4fe661e541c60ed8e5b8b  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/equal.cc
! 9489e70259cd64383ab369aed1d4ac65  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/inequal.cc
! df589a4bd8fc8d9bb593e35970fac67d  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/serialize.cc
! a5a432449b1af46927e7e28005567450  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc
! 5d9b71ed171776467cde80582cf84233  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/typedefs.cc
! 345efaaec82e0d47c460913c0496f42e  libstdc++-v3/testsuite/26_numerics/reduce/1.cc
! d52347f3cac9fa768084e239a8bb0ba8  libstdc++-v3/testsuite/26_numerics/reduce/2.cc
  51f14806bbec80c2d5883800a91dfc2e  libstdc++-v3/testsuite/26_numerics/reduce/95833.cc
! 72825cb937c519a2ff852a77fa994620  libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc
! 70252d7c795611dcdc24b3cb6133eaa8  libstdc++-v3/testsuite/26_numerics/slice/1.cc
! b035d74cde92bc3d97d277b3a584b552  libstdc++-v3/testsuite/26_numerics/slice/compare.cc
! 6f582ee50384cd0c1889520a8fefd047  libstdc++-v3/testsuite/26_numerics/slice_array/array_assignment.cc
! a2f105dbf8e0b4c5fe66ef9b80d266c6  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/explicit_instantiation.cc
! a13f6bc98a87d272d8fe8b9766c9f956  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/typedefs.cc
! fc221def380a2092cea53b6089493cf7  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/1.cc
! 6b28d8ea8d44ae5a929ae6adf593a38b  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc
! 21139e399dd6bb3563050f5a83640fad  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/1.cc
! a57d9ecfaf895b391e6b072c8a135df8  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc
! 443798eee2f9513289a27adce687f3f1  libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc
! c912f1a89cf75f314c0b4274db04e5ba  libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc
  525e5798867d708e7cc13551760f93c8  libstdc++-v3/testsuite/26_numerics/valarray/103022.cc
! 70004c698eb4e252657f6542d30dab08  libstdc++-v3/testsuite/26_numerics/valarray/27867.cc
! 430d46c5b698e2d772c692944b05e1ef  libstdc++-v3/testsuite/26_numerics/valarray/28277.cc
! e142eaac8bc53c504e7f4edc2f94aa5f  libstdc++-v3/testsuite/26_numerics/valarray/30416.cc
! 68d7104dbfbae0a5f819c8ef4c46fa7c  libstdc++-v3/testsuite/26_numerics/valarray/33084.cc
! 18fccd0d426d72a4182ee4dae07412d6  libstdc++-v3/testsuite/26_numerics/valarray/40691.cc
! 28e3778cd5709645406abfa4c6cf6f81  libstdc++-v3/testsuite/26_numerics/valarray/69116.cc
! 0818fd220e5ea2cfdcbf7b2143bffe1b  libstdc++-v3/testsuite/26_numerics/valarray/83860.cc
! 508f693677502b475ff5cdca2e48a9ab  libstdc++-v3/testsuite/26_numerics/valarray/87641.cc
! 190a61c9df25f923f210844f75fef9ea  libstdc++-v3/testsuite/26_numerics/valarray/95592.cc
! 3a968cfed2971040186787cd117fb429  libstdc++-v3/testsuite/26_numerics/valarray/algo.cc
  3e191d68e11822f58de5e4bd15365ca5  libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
! af9a74f738ac18936b10425fe2d6647b  libstdc++-v3/testsuite/26_numerics/valarray/const_bracket.cc
! becaeb18a35d22937482da18e6d323d0  libstdc++-v3/testsuite/26_numerics/valarray/deduction.cc
! c9d87e27a838cad81b22bb1df04d8c7e  libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc
! 9bafc635e2a92db4ff73d4dd4a556216  libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc
! c3f19f528775e1725fdf50859dea342b  libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc
! cbb56c88e5e1cff99ce5d14e8836395c  libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc
! 26f50fbb094f6ee7bb7015e32ab3899a  libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc
  92989179308d98e75a76c225b10da0be  libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc
  989404228c79ae94725c36342fe840d7  libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc
  03eb7e42a8c3f54875026dd4540970b1  libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc
--- 124447,130309 ----
  74bc36f5cffd7626c78090061e4416a9  libstdc++-v3/src/c++17/ryu/generic_128.c
  fbb127f006c65ae37d591c627cc6235c  libstdc++-v3/src/c++17/ryu/generic_128.h
  85b9d2e407dc7113a97234b2c23e96dc  libstdc++-v3/src/c++17/ryu/ryu_generic_128.h
! 659e1abcf08ff9050ba27012f642e5ec  libstdc++-v3/src/c++17/string-inst.cc
! edfaeb1bc759bccb53b3d9624f21c2be  libstdc++-v3/src/c++17/uint128_t.h
! d3813c41a1a392d3bd3fc819324240d4  libstdc++-v3/src/c++20/Makefile.am
! 1a78ce3875810d2fbde4c0259e6da49c  libstdc++-v3/src/c++20/Makefile.in
! bc750f6d75cc3d48552863c2403f8857  libstdc++-v3/src/c++20/sstream-inst.cc
! e2adbf62aa6624a603458198af4025e9  libstdc++-v3/src/c++20/tzdata.zi
! d479a36fc14363bb66160f6907e7c637  libstdc++-v3/src/c++20/tzdb.cc
! b65cec48a384351b09d3d7d12ee37660  libstdc++-v3/src/c++23/Makefile.am
! 5405bc5d3053e91ab5f6209a6e20a377  libstdc++-v3/src/c++23/Makefile.in
! bd8b09e92643af327ebc3eb99e489b6d  libstdc++-v3/src/c++23/print.cc
! 15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
! c3abb96b2eb91c3a6a79443b0f49fa7d  libstdc++-v3/src/c++26/Makefile.am
! 5dd6b2acd5d63f897ba1545bb9a07d25  libstdc++-v3/src/c++26/Makefile.in
! dbac986ad8ea017ae1f6fda781e711e6  libstdc++-v3/src/c++26/text_encoding.cc
! a71f7ac875316576a2ea9cfea08c0011  libstdc++-v3/src/c++98/Makefile.am
! f5066be47fd9da3a68e3be9740a6243c  libstdc++-v3/src/c++98/Makefile.in
! c9901bfae8e228f9ec5a22d462799cbf  libstdc++-v3/src/c++98/allocator-inst.cc
! 1cfcf97057eed58b2a225b3edf23e6cb  libstdc++-v3/src/c++98/bitmap_allocator.cc
! fb2abdbde9f0951f9e1d41cc3577c87f  libstdc++-v3/src/c++98/codecvt.cc
! aa55dcdb3dd8abab2b32b92b256172ba  libstdc++-v3/src/c++98/compatibility-debug_list-2.cc
! 0e5117ad021af8a7533b23b8a71ef474  libstdc++-v3/src/c++98/compatibility-debug_list.cc
! da6a73d40cfa35c679c0d3699f90eb62  libstdc++-v3/src/c++98/compatibility-ldbl.cc
! fcfe5d807ba629ecd33e7a4f8428767f  libstdc++-v3/src/c++98/compatibility.cc
! 249f6b3f4edac0d4eeae3f5ea5c9f46b  libstdc++-v3/src/c++98/complex_io.cc
! 38184852763d30450b17a6fae58c39ab  libstdc++-v3/src/c++98/concept-inst.cc
! 80eb87cacb2b5aec18240a586b11eb7c  libstdc++-v3/src/c++98/cow-istream-string.cc
! eea059394bcd280420a4068c7bed3315  libstdc++-v3/src/c++98/ext-inst.cc
! 39e9b7e0c346d45897f2970c8d9a31db  libstdc++-v3/src/c++98/globals_io.cc
! 8dc601fb30c1c02bec12b94715439ef2  libstdc++-v3/src/c++98/hash-long-double-tr1-aux.cc
! d4f7d7a4035c928130381bdcf96ba4c2  libstdc++-v3/src/c++98/hash_tr1.cc
! bbe8c21ee6d399bd39aeac289ab75b30  libstdc++-v3/src/c++98/hashtable_tr1.cc
  1ddeea994cc23597e5a821f10555258a  libstdc++-v3/src/c++98/ios_base_init.h
! 0e224a8da1961c1897e6bc379129831f  libstdc++-v3/src/c++98/ios_failure.cc
! 4a616bed83e021b816a9f0a5d5bf3fa6  libstdc++-v3/src/c++98/ios_init.cc
! 2c69d2801ef1ca7dc72a98a399b4d7a6  libstdc++-v3/src/c++98/ios_locale.cc
! 8754dc5c1f63bdaf1edb547686bec253  libstdc++-v3/src/c++98/istream-string.cc
! 4633730d7bd71c544def77aef22e72f6  libstdc++-v3/src/c++98/istream.cc
! a88bccd338c624dc41b50905ceb382c8  libstdc++-v3/src/c++98/list-aux-2.cc
! 0e2b76b63d04dbd736bea6055af12f65  libstdc++-v3/src/c++98/list-aux.cc
! 26f261fe4b962f1f498ca80a14f91467  libstdc++-v3/src/c++98/list.cc
! d1675708b7e0791f8b80127b8ef64fe5  libstdc++-v3/src/c++98/list_associated-2.cc
! d66b1793dbc810c2d9d5c15a8ba4a9c4  libstdc++-v3/src/c++98/list_associated.cc
! 645e19abb59c6444bee3d826b174f754  libstdc++-v3/src/c++98/locale.cc
! 390989087294ec017bc61b2c8ef7acb3  libstdc++-v3/src/c++98/locale_facets.cc
! 5378a0c7b8c7c26af85ce05d05db5cb7  libstdc++-v3/src/c++98/math_stubs_float.cc
! 0c6587c0e840be778c5a1ed3827c3325  libstdc++-v3/src/c++98/math_stubs_long_double.cc
! 6b7518d47524d12b932c2b300438dd5d  libstdc++-v3/src/c++98/misc-inst.cc
! cd2a5f8d421586c03bae2914ae8ed011  libstdc++-v3/src/c++98/mt_allocator.cc
! ed5486197e5b680db1b3e84bc65e3697  libstdc++-v3/src/c++98/parallel_settings.cc
! 448f9d5689da96305de181e9f9911f4b  libstdc++-v3/src/c++98/pool_allocator.cc
! 9b819b256e48deab3686e2634c03bf03  libstdc++-v3/src/c++98/stdexcept.cc
! 728afb044c738bd6aa07428f5f64d958  libstdc++-v3/src/c++98/streambuf.cc
! afa4c8a06a0cb3fce152f8f610f24d4a  libstdc++-v3/src/c++98/strstream.cc
! 086beaf8ca8d50138bbb9b0079d9184c  libstdc++-v3/src/c++98/tree.cc
! 179849cd61f94174477aea3012271201  libstdc++-v3/src/c++98/valarray.cc
! 06c8c98b71fcb5f73d628f76ead9dea5  libstdc++-v3/src/experimental/Makefile.am
! 27279225a56c61bff8a4794d18007e3e  libstdc++-v3/src/experimental/Makefile.in
! 50dee20be6e6c1a2bf5b428ac9f495a4  libstdc++-v3/src/experimental/contract.cc
! 00392b132ecac3f0d41f6873c9a8aafe  libstdc++-v3/src/filesystem/Makefile.am
! a6f95078e97a60d866de0908aeb10897  libstdc++-v3/src/filesystem/Makefile.in
! 3d9f7d93a3afaab782b2167e071aeaa2  libstdc++-v3/src/filesystem/cow-dir.cc
! e76a68102b94e67b78e5373bb89fba15  libstdc++-v3/src/filesystem/cow-ops.cc
! 54ec2d5b20f9b937e2229987d22c5721  libstdc++-v3/src/filesystem/cow-path.cc
! c2201a7e547eb182262da97e2030eca2  libstdc++-v3/src/filesystem/dir-common.h
! 341e56d4ba937b489ee52675959f94a5  libstdc++-v3/src/filesystem/dir.cc
! 6829be44af3cde51c2e4d973bfe293af  libstdc++-v3/src/filesystem/ops-common.h
! c0ed6356e3b5f2590b65db1e58b65add  libstdc++-v3/src/filesystem/ops.cc
! a54d16a61a8c25de06cdb983ca85e293  libstdc++-v3/src/filesystem/path.cc
! c70afb479b3e1b16be171749f618f9a1  libstdc++-v3/src/libbacktrace/Makefile.am
! 1cb9cc0384e54c5f2b9086841675523c  libstdc++-v3/src/libbacktrace/Makefile.in
  ad7d8ce6072a5a6ebe5a27824b57cb45  libstdc++-v3/src/libbacktrace/backtrace-rename.h
! 24de78ee16ffbf8b1588259e274f9c00  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
! b2c964e43bfef1597e6dd0dd2f806fb3  libstdc++-v3/src/shared/hashtable-aux.cc
! 7773a6010acf0449d4010c420cf491cb  libstdc++-v3/testsuite/17_intro/badnames.cc
! 681efa6b4fde6fc5d4dfaf426f7ef5ef  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
! be3b9af9ac9518b325b136215b688753  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
! 3241efcfe2034e9746daf2aef633af8e  libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
! 77d826a85de1eb07fe7c1e38eebf7278  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
! ac45bb63ae1aaf00f91f9ef9487422bc  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc
! 1302c985b2229f3a9c445f3fa5a9519a  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_exceptions.cc
! 6444347224955aff282d6ee93e2eeff4  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_rtti.cc
! a0ce8f88b5683c7d2a31983bc9d1e591  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++1998/charset.cc
! 85cce4973b5a928cd6f5e85c46d786fb  libstdc++-v3/testsuite/17_intro/headers/c++1998/complex.cc
! 08bf71d425f29d1bffce0ec6c8af1a33  libstdc++-v3/testsuite/17_intro/headers/c++1998/operator_names.cc
! fe73186ee9afe1b04735837c0ae3d19e  libstdc++-v3/testsuite/17_intro/headers/c++1998/profile_mode.cc
! 27138d0d0ad9892e480520a5417d8edd  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc
! 1d1fe892987952c1a96ebd1b0e4ee050  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc
! 1f126851379dd19850ac6a8c0fa2fbf7  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc
! 68c3db9b9695d3922929c5cbbafe445a  libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
! b30722c7a14d2251f757369fc14b6406  libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
! 27d75082483f944f8a61bcdf9639c905  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc
! 2945177fac388635818be96379015cca  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_exceptions.cc
! a5cd5b5d8b951786ddcf206b007490b3  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_rtti.cc
! 92f418db13575632f0be4d37cbfc0c0a  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2011/charset.cc
! 1ef8d9f05992dcf41f7d7deba5e40ba9  libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc
! 23f7408ee58d070d27976d8bc960964e  libstdc++-v3/testsuite/17_intro/headers/c++2011/operator_names.cc
! 108f2c00d0a8ed07f88b7d55fc4d626e  libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc
! 587f897a2111cbee03aca5672d8f470e  libstdc++-v3/testsuite/17_intro/headers/c++2011/profile_mode.cc
! 417264a2d44e11756eb636afa56ceb70  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
! 542e5b650755ef420adf57d83c712514  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
! 42fe48a66159b5a8463c4bff471fe25c  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
! 54d7db13305afb23c8b00304c82fc0eb  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_exceptions.cc
! 2949212653e3f70f2c4bc40ead33513d  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_rtti.cc
! 32ce911e3ffd799b7dd9c81110fc930e  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2014/charset.cc
! 2b8d12353adf98c55bcc73674c62a323  libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc
! 084405fbccc2c4547b6bbcdf578833fa  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
! b712469594dba35e8a9a588b358d64b3  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc
! 8ad4db377d96ec036fcc6ba66d7fc278  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc
! a855caca5e0027d1c376f0993cf8f47e  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_attributes.cc
! 1fe47b8ace37e5d7db71a98464c30875  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_no_exceptions.cc
! a1834f713e2d55e973be0baaad908eb5  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_no_rtti.cc
! dab26573574b59083a34aebacd0912ed  libstdc++-v3/testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2017/charset.cc
! 94c7ba2d6a7672c878000b2e2eac3b81  libstdc++-v3/testsuite/17_intro/headers/c++2017/operator_names.cc
! 1bf5a22170c2594517e448b311b38a46  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! e7e133911fbd7472c5c0072eb40eb10e  libstdc++-v3/testsuite/17_intro/headers/c++2017/stdc++.cc
! f4b03e341af672277f12ae445a9dca27  libstdc++-v3/testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc
! fc7ce82ef92ad49e07b8601de324759d  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_attributes.cc
! 8911c9425fb1aa3a40080800cc9ebd2b  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_no_exceptions.cc
! ecac9f40e8e5cf2889e39ba24f3f9c1c  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_no_rtti.cc
! cf8e60efe03e0d4c2ddea36ab3ec4ef2  libstdc++-v3/testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++2020/charset.cc
! 5443708c0d6c9abdb53500f0fd4db206  libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc
! 9da657dc332cf768b764e1784ec584c1  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc
! 7654b88e3e7e4269beb1402cdeed0551  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc
! a03c1c75e350b8f2507d940b12910e20  libstdc++-v3/testsuite/17_intro/names.cc
  047ad714f0a1ac010ab86a084dfbeee7  libstdc++-v3/testsuite/17_intro/names_pstl.cc
! 441838fc5a4a7a22a784014872e61926  libstdc++-v3/testsuite/17_intro/no_library_allocation.cc
! aa39cebbb59168b36715cd6de8b65935  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
! b9a2b7a07c681fd2eb820222903fdc4f  libstdc++-v3/testsuite/17_intro/static.cc
! ca1ace0a8f00e042398729ac6dd7f251  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
! c7b41212616108fe37437d083d8e4f4e  libstdc++-v3/testsuite/17_intro/using_namespace_std.cc
! c4bc79732aaaac9eb5b59644e1554ca3  libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc
! a8bba2abe103e6d601ef50f4e2a4e852  libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc
  8257c823b655a89013a0a1e788a69506  libstdc++-v3/testsuite/17_intro/versionconflict.cc
  165cb0e7c28903f02a4b4e2d0a08e544  libstdc++-v3/testsuite/18_support/105387.cc
  ed159a9e459da3e25bbcb9da82b17b38  libstdc++-v3/testsuite/18_support/105387_memptr.cc
! 0bcee43548c6476834ea9edeff2c2a6e  libstdc++-v3/testsuite/18_support/50594.cc
! 0422b4d676d39ba21325746a2e81602d  libstdc++-v3/testsuite/18_support/51333.cc
! d5625fd9b3aaa7f7154db4eb82099444  libstdc++-v3/testsuite/18_support/96817.cc
! 8bbbb05700779cfdbbebfaaa03939ae4  libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc
! 47439adeb45a97c32c50de0ef308a591  libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc
! 79634dc2af0d40bac3f6adce6d816ea2  libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
! bc9a8024c73fb9b2d079cdecfa66deb0  libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc
! 7a2301f1a5bfb8f94026815ef17f8a52  libstdc++-v3/testsuite/18_support/bad_cast/what.cc
! 3dc28e49b00d08499804e5f2031a0204  libstdc++-v3/testsuite/18_support/bad_exception/23591_thread-1.c
! 1906a84074e3bf3a170ba3c25ca470e5  libstdc++-v3/testsuite/18_support/bad_exception/59392.cc
! 8bfcbc3130a73b639263c497f86c6255  libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc
! 0a1c6e78288ab3516303988ecc82eb6d  libstdc++-v3/testsuite/18_support/bad_exception/what.cc
! 1810e7e1f813806db61d75fee395687c  libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc
! e55fb8dc7ad54c5b42bfca24b0c437a2  libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
! 4baebed14a6182e3aa9fb1f29dec2a4a  libstdc++-v3/testsuite/18_support/byte/81076.cc
! 364950d1d0c1c32d816ba62f429207e4  libstdc++-v3/testsuite/18_support/byte/global_neg.cc
! cc997a661be1dd9165fd46f259df83a4  libstdc++-v3/testsuite/18_support/byte/ops.cc
! ac5010a037876f92d9f58a8697e25c1a  libstdc++-v3/testsuite/18_support/byte/requirements.cc
! 4d2819facd9b669fb9ac9377f3b4564f  libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc
! 42a86a6e9f7a4038b7ce954f2a8d0fbf  libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc
! 9770d7bd8dc363ca6057f02e87ea841b  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc
! 3d4e5f117547d01b1118e29b4d4da2ae  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc
! 11ac94017e26806a004744546fb12536  libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc
! b5a6ac3aba4a40d1ff152d9637f0c740  libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc
! 96723757874b8597e7ab3f771fb49f41  libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc
! ad8b4a454d523681f6dfe47a86669148  libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc
! cc95fdfc3ab36976569f0ea311afe4aa  libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc
! 4f4e07ce53e597a766ba9bdeb4b254f3  libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc
! a5823a0db0eb3c1da127985f03cd538f  libstdc++-v3/testsuite/18_support/comparisons/common/1.cc
! c4d31451be3be99ff2a4c7181403bab6  libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
! fde0666e320ef3ed076b7fe9ec38f59c  libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
! c3bf8f9c5afeec7a7c9de665ecf47f76  libstdc++-v3/testsuite/18_support/coroutines/95917.cc
! 783af524f848615e0b0b76d03bcc9e9c  libstdc++-v3/testsuite/18_support/coroutines/hash.cc
! b0b000a4dff01c482a3a3fee6d018b4f  libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc
! f36bf4c0675d608bb4e49f40d24f1bc5  libstdc++-v3/testsuite/18_support/cxa_vec.cc
! 5927dda60cd157af134fe98dae4e1277  libstdc++-v3/testsuite/18_support/destroying_delete.cc
! a8f86c050805c3e3fe9a7c98336f513d  libstdc++-v3/testsuite/18_support/exception/38732.cc
! 3bcccf93d32101e685ecb525bd2f1a13  libstdc++-v3/testsuite/18_support/exception/what.cc
  8a3e4fc86620d59634749ffecd317237  libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc
! 81224320bb0d415f58b3964044a5d3ec  libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
! 2e46ed9401b36d166b7f6cc19d65e75d  libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
! ec2b790beb174833752696e9a08f2307  libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
! 7827eae5381873f06c39565167b97b4a  libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
! 7ffa88c67d2245dbe3176809a450e9cc  libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
! 1b02d954e2f337e5d9b37b32f4d4f095  libstdc++-v3/testsuite/18_support/exception_ptr/90295.cc
  8907da30a344e71f1227eec1fae72f2b  libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc
! 0c00e80a7868264d0a09c8837636da24  libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
! 10c3d04385993acad46345792f8f1cb4  libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
! c4d35be39d45b324db562680ad23655b  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
! 5ed1f01b7847137249b6e088b73a9e4c  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr_2.cc
! 29fca22ca298c07532552a292735bdd9  libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
! 5b821a8cd672f41d2dcb1e99f421fdd2  libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
! fb46c6eea428fad144368caff99626d4  libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
! a22e2c261173fe4ce094fb56af362df9  libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
! f6e798463b53da2dcbb815a1df57ab6f  libstdc++-v3/testsuite/18_support/free_eh_pool.cc
! 39fcc8f873ebab4d39e836af8a8b3171  libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc
! b599ee74a2f36640e19e2d8187c94699  libstdc++-v3/testsuite/18_support/headers/cfloat/values_c++17.cc
! 90966c85d5e208da1542499c4a36e875  libstdc++-v3/testsuite/18_support/headers/climits/values.cc
! 42db8de5d5884310015d57c3c56d861a  libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc
! 49fb89eb52a78f1c63ae7967a5428baf  libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc
! 65fa5af6439afaa24a3b7b1c76e88775  libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc
! 5d76b00ddd01e4e15f2b7da83becff87  libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc
! 2c16b092a067c253ecf12b07bcec9a2f  libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc
! 73ac8b088a1b26222fe0fa6ccb506e58  libstdc++-v3/testsuite/18_support/headers/csignal/types_std.cc
! 7bb2fd8c67ab14d65a1e43fe639b91e7  libstdc++-v3/testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc
! f5c4d3f82280b39b80b84e0cc1806db6  libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc
! e8d67aefef081e67ad727ae0dc72ecb6  libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc
! 952eb2163a5d21292091b84d3c5a63d2  libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc
! c3a8b08037ddb3d2a27c583b8175eeb2  libstdc++-v3/testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc
! 7579a2d21611b12a5094343a014e873d  libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc
! 15bd9b13dadf18524cea6083a5ddfcbf  libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc
! 5a44cbd1298fa26dde125f0511ed5b0f  libstdc++-v3/testsuite/18_support/headers/cstdint/std_c++0x_neg.cc
! 54f0ce7c13103cf54444f333526a0c79  libstdc++-v3/testsuite/18_support/headers/cstdint/types_std_c++0x.cc
! dd13dfb47b0c5fd488db1cbd00348821  libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc
! 0203e602f6925ab9e32cd1eebd5856c6  libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc
! 8f5d97dc2e9d8267f10090455c0af028  libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc
! b04280c9aec26f815638802325f5802d  libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc
! c3776701b258e72616ffec54a4f612b7  libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc
! 3aada86189e5d4f1ac13ccbe94dc7237  libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc
! 883775ccfc4b858c975b64fd64ca6980  libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc
! d673753ef3236f39cb4a170fa2b69f18  libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc
! 5d0a5c03d2690bdb3c331f03134b4e69  libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc
! 7c28239fca1fb71da69e0ad5d860e140  libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc
! 22d44016e8353a35528847d39463ceab  libstdc++-v3/testsuite/18_support/headers/new/synopsis_cxx98.cc
! d781a1ac4f23d686afb5e5af82069e6b  libstdc++-v3/testsuite/18_support/headers/new/types_std.cc
! 44c942883fb37d037e0fc4a26271f220  libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc
! b167ed2b886aeb49f30ed449bf4da302  libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc
! 93af9d140db271afaf55560343815f58  libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc
! ee4475981370b3540d38a2e05dc83776  libstdc++-v3/testsuite/18_support/headers/version/macros.cc
! cbbc33af24caa98b6bbd385a8837d05c  libstdc++-v3/testsuite/18_support/initializer_list/constexpr.cc
! 57e58be3b57d4e6606bd915ecc5b2d75  libstdc++-v3/testsuite/18_support/initializer_list/range_access.cc
! 18a431805321df18ea9ecc976c9aaa75  libstdc++-v3/testsuite/18_support/initializer_list/requirements/constexpr_functions.cc
! 36df094b244db7dfcc7485066e8db59c  libstdc++-v3/testsuite/18_support/initializer_list/requirements/explicit_instantiation.cc
! 54bebbf665a20fdd7dffc25076da62d2  libstdc++-v3/testsuite/18_support/initializer_list/requirements/typedefs.cc
! 710eddca3d88f36c831b910289f2810a  libstdc++-v3/testsuite/18_support/launder/1.cc
! beb5f67abbc14d4bbb3ea869a080c01d  libstdc++-v3/testsuite/18_support/launder/nodiscard.cc
! 6f9ba45041ddf75d0a04e11274e53f10  libstdc++-v3/testsuite/18_support/launder/requirements.cc
! a8ef8e2e8212c060b49a2fa1572b53b3  libstdc++-v3/testsuite/18_support/launder/requirements_neg.cc
! 2daa4a6a897f3813aa1a043ce6b4a034  libstdc++-v3/testsuite/18_support/max_align_t/requirements/1.cc
! 5465d140475bc3f5c3f6047ccd04f960  libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.cc
! 3d61b684fcd368776a4fa62bd37f082d  libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
! 818ac86c89541d5f7ba806bc3e9ae0fd  libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
! d89e5f90f22c20221b8f15db6da192df  libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
! b6e3942db1f8e50c22b3a109423d5cfc  libstdc++-v3/testsuite/18_support/nested_exception/79114.cc
! 9ad98aa3ed419d7e145e227cacdabf34  libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
! a8670800289bdf7474374ed5480b42c6  libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
! ee6662bc29b9fe5c14888dd97e1cf3bc  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested-term.cc
! 614a32fdf44bb6acf9abd38a74335ced  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
! 733312fb2802aeb7ad4eeedf7e9484aa  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
! 63120ad1f5126c43f7986dc408be8209  libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
! e4f03d5dfa57d5a8255b0c8bdce62fb6  libstdc++-v3/testsuite/18_support/new_aligned.cc
! fc0331b89589bcce1bc38b869d815949  libstdc++-v3/testsuite/18_support/new_delete_placement.cc
! 8f60ad51c166f69fbdabbc0b8c7dd6ff  libstdc++-v3/testsuite/18_support/new_handler.cc
! 03fdd09683bed8c302f360f37cd7a031  libstdc++-v3/testsuite/18_support/new_nothrow.cc
! 49e7685f2fc05cdd1dd5d2a404340058  libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc
! e9bcf06133e787fb3b5f8ccd563a2205  libstdc++-v3/testsuite/18_support/numeric_limits/29989.cc
! 384ab89ec86da4c7dc85e5d057ed494e  libstdc++-v3/testsuite/18_support/numeric_limits/40856.cc
! 1addfb90d0a3b060232a565d5cc95488  libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc
! 5cc229379a714044cdcd5e5f5ed230e0  libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc
! 39682ea26d38a8fcafe118b89ccd20eb  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default.cc
! 672ec9bfdffec82dc5674ad1dd5db38e  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default_c++0x.cc
! 92dfd14494167b97d9cedfa943b1a2c7  libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc
! 6e09af2769ba4e58365525243b19a80a  libstdc++-v3/testsuite/18_support/numeric_limits/digits10.cc
! 078c8f8a8b2d3c9ce0c43f38cb390343  libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc
! 76efd5b81f1fa31b00514300979d86f7  libstdc++-v3/testsuite/18_support/numeric_limits/epsilon.cc
! e194c3fb491999d59a93841d11efb38f  libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc
! 2d61aeae283a34d7382bc40b5aa47c1f  libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc
! 8fb598547f2d5846f70e42be31f7ee8a  libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc
! c5ad0c013350b5de78b0db89deb1f6c8  libstdc++-v3/testsuite/18_support/numeric_limits/lowest.cc
! 4f4f9d73bf486acf9f9b9c7e5f3dfb0e  libstdc++-v3/testsuite/18_support/numeric_limits/max_digits10.cc
! dc21ee9dae43f66a550d6a2f4cb42f57  libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc
! 832c97eb188b193cb95780be89e23342  libstdc++-v3/testsuite/18_support/numeric_limits/primary.cc
! 91a56cf4fa0c149ed00e3044ad953647  libstdc++-v3/testsuite/18_support/numeric_limits/quiet_NaN.cc
! 0c9bcaf9368be93adf4321e534744dca  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc
! 83d40433b54d2aaa467f51491e26053b  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_functions.cc
! 8322db3892b37696ed4aaed40067ffd2  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc
! ea8b715f058f5afab54929db28252475  libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc
! 02acdd7803b5bb6d73e1eb69a7b9db3e  libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc
! d95ea590e6e5b472028be5a5077635da  libstdc++-v3/testsuite/18_support/pthread_guard.cc
! d33ae5da156ed02ac5bb66a6e703c45c  libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
! 082c43d9b21b101ce435cc6c89a43304  libstdc++-v3/testsuite/18_support/set_terminate.cc
! e3dd99b2077e500f760ae7b4c115cc75  libstdc++-v3/testsuite/18_support/set_unexpected.cc
! af03a90e813a64eb39233eccf99cac07  libstdc++-v3/testsuite/18_support/source_location/1.cc
! 58c5a736f045d61f7a7b7f27ad9c93c2  libstdc++-v3/testsuite/18_support/source_location/consteval.cc
! 0f57e74b7df1b98d08de44983c15c088  libstdc++-v3/testsuite/18_support/source_location/srcloc.h
! 5708b2767b5a877b38fcd32b8b6c7c17  libstdc++-v3/testsuite/18_support/source_location/version.cc
! 7541a6bb67e720df95535da2312ce4b8  libstdc++-v3/testsuite/18_support/terminate_handler.cc
  0ba910b833dd281cbb0614829d4c21d0  libstdc++-v3/testsuite/18_support/type_info/103240.cc
! d709c84d78d7d1d1ef4fec1e8eec1135  libstdc++-v3/testsuite/18_support/type_info/52562.cc
! 9183aba89484917544d8e71ab7b95f72  libstdc++-v3/testsuite/18_support/type_info/constexpr.cc
! 1a2fb02f0b9b987e9f2c3ae698ae26b6  libstdc++-v3/testsuite/18_support/type_info/fundamental.cc
! 2a0b335fcc9ea5ab02d8bb00ac72a5b4  libstdc++-v3/testsuite/18_support/type_info/hash_code.cc
! 76df297ece44eeb991841f6000db7b9c  libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc
! 924d433726ed1e15a414c150854b529d  libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc
! c27023d76df1a8ee489fd30db8546489  libstdc++-v3/testsuite/18_support/unexpected_handler.cc
  e76078fa52225514dc89f9b1116c07ff  libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc
! eee24201b9bca26bf17bf49d625c488d  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc
! 051ec5660307c75f8ea0f39bd5b6fc5c  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/default.cc
! 6332c44867f28a68fe8b2961adfbbb54  libstdc++-v3/testsuite/19_diagnostics/error_category/generic_category.cc
  0a66d8bbf6fa03d3f76f4e2fdde4daf7  libstdc++-v3/testsuite/19_diagnostics/error_category/noexcept.cc
! 1b30b467e55da62538054f4eabcd3e9f  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/equal.cc
! 34f9c0495bb1c5ae9006c62898cf569e  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/less.cc
! d594431ab14b462d038e2d55126aa9ea  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/not_equal.cc
! 7f0065bf8c56ee048f898bb64109ad4f  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc
! ae1b5531d326071167608e61bcaa41f8  libstdc++-v3/testsuite/19_diagnostics/error_category/system_category.cc
! 8288f173799e1b689774eec2839094e4  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc
! 33fe1ee105826a40559f7d027c4e6264  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc
  81f9725b7658563bbe88b3ba6c3c1852  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/lwg3629.cc
! 79daf17e7436b7e7d6cd91c3d5363868  libstdc++-v3/testsuite/19_diagnostics/error_code/hash.cc
! edd7d11be4349d18cdd8bc87ca6ab6f4  libstdc++-v3/testsuite/19_diagnostics/error_code/is_error_code_v.cc
! 16f06989c8f127079159124c1a2cd802  libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc
! 0e87204e72c39ef5563eaeead95a1437  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc
! 3ef1bae0fa203638190aacf071c44cb2  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool_neg.cc
! 84a7eff3b30ab42d500ad5e20fae075f  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc
! 6d05927acad6c1e3873a1577a19e5bf3  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/less.cc
! c6dff86ba122d114b025965f32895f59  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc
! 3e8d05c8e755f3cd5ab2952012940a61  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc
! 1324fa76af768b654f047a0c9879b341  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/1.cc
! 7298bed8f5fd6d7ecee654321c70b644  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc
  0c9bc80a7caee067ec088b66373dcca8  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/lwg3629.cc
! b60c45c3a045ae244ce48fdb105d3318  libstdc++-v3/testsuite/19_diagnostics/error_condition/hash.cc
! 775f2702594564b2d28e21176b1516c5  libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc
! 68597b064555adfe97d41c2abf2e9265  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool.cc
! a1f0517d4b0f25dba7832498f9423599  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool_neg.cc
! 4ce28577539ac7f6c84c033f0b7d5bd8  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/equal.cc
! 30d86032d1a46ff4a1116a7d20905255  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/less.cc
! 53091750c215e39d9f42017b71246931  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/not_equal.cc
! 67df4356ef270b4fd57ec803a6799374  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc
! a61182061bd8ecd5a0f92373c2a98dec  libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc
! 1f24f53b423a1780fca9e704829e6768  libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc
! e67193ccc02a4d3e08926989f6976583  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc
! b2ee773e831091cd51f7c0d847df2db0  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc
! 975479537882c4943a410da522c26fe2  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/34538.cc
! 32eec409ae8eb4c50db5bd05bff9b025  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc
! a8f775b7b748c4cda6e817d2cb3c39a2  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc
! 5277a48f8e3509f362a05c735304cc90  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc
! 6861fd1e48c4fa74d2e3a044a9988ec5  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc
! 32e8a08877fde308bf14710c0a1e7d7a  libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc
! 62bf661caf1e7e90f04f18f4744daa54  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-1.cc
! abb94671dd4ce03eb87b4dada7287ce4  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-2.cc
! 1f87b48b18be1dfce75bb9ff32e21c7f  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc
! e0410e8febb4f757a3e8a8f485c803ef  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-big.cc
! 8bbaff06769d83abb0bd14d666c5c88d  libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc
! d8d0c7afb17e32dd10b987ffb22261cf  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-1.cc
! 793c3b12849fddb69aef3bd85fe25459  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-2.cc
! 04a1c1421c723a2d7797bfc3a143b29c  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc
! 41cc601187cef642f81552a851869aad  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc
! eef8885bdb7d997563dcdff579316d00  libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc
! f49c33be59e50770e437c690577ec0f7  libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc
! 6798eec58b29e66c04061286e9ca2859  libstdc++-v3/testsuite/19_diagnostics/stacktrace/hash.cc
! 6373a0cac1b7cc72770de988f5514eb2  libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc
! a35af4fb0211cfbc15f502020223c602  libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
! 64572ab5c0e7f09f34c7fec8a15fb5a0  libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc
! 91c0a9d6d7a5bc7671054e6d03f6e28a  libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc
! 27b5830c52c0bc9644d06080fc9682b0  libstdc++-v3/testsuite/19_diagnostics/stdexcept.cc
! f14fac64cf792b60c82cdc34de6167ff  libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc
! 4678a31900a4ac166e7b79e305e4a6f0  libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc
! f084657cf7300229d171e939d2066d1d  libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc
  b8fd5b3cc781e4351fcba88c19391352  libstdc++-v3/testsuite/19_diagnostics/system_error/noexcept.cc
! e5a9d4a6b32c0f09a071a0a67ea6197b  libstdc++-v3/testsuite/19_diagnostics/system_error/what-1.cc
! 0155c8d43d3ca78f3bd402eaea88663c  libstdc++-v3/testsuite/19_diagnostics/system_error/what-2.cc
! c46dee551b7ffde6edc9745232bbf490  libstdc++-v3/testsuite/19_diagnostics/system_error/what-3.cc
! d3941957110e38a99445f37f3d6c53f0  libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc
! b2914a2908bbed25d595086067de01b5  libstdc++-v3/testsuite/19_diagnostics/system_error/what-big.cc
! 46d99cdd9012713816efd7120fc51d90  libstdc++-v3/testsuite/20_util/add_const/requirements/alias_decl.cc
! a7e53df6be68f7d664e104fcc046e62b  libstdc++-v3/testsuite/20_util/add_const/requirements/explicit_instantiation.cc
! f9b94d3cb655856b60f03c5970d7d805  libstdc++-v3/testsuite/20_util/add_const/value.cc
! dc2a9a9d3f9f8208c3ac78a46e3a0ea0  libstdc++-v3/testsuite/20_util/add_cv/requirements/alias_decl.cc
! 01244ac2fd544ef19aff24f45002441c  libstdc++-v3/testsuite/20_util/add_cv/requirements/explicit_instantiation.cc
! 295ff3b0566661b6d560184cc3bbef17  libstdc++-v3/testsuite/20_util/add_cv/value.cc
! 38ae37f8244ec5478d529a869363de9c  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/alias_decl.cc
! df088b9d5d8a9dbd865df031f8d04707  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/explicit_instantiation.cc
! 59640f43f2581ff715d7f093ae403941  libstdc++-v3/testsuite/20_util/add_lvalue_reference/value.cc
! bdbbe8f878a319536537d5dc113a8f49  libstdc++-v3/testsuite/20_util/add_pointer/requirements/alias_decl.cc
! a2122555c73f96e5d2cf6351e69dc623  libstdc++-v3/testsuite/20_util/add_pointer/requirements/explicit_instantiation.cc
! 4b48b7ced2325791f0982baa1a92bc16  libstdc++-v3/testsuite/20_util/add_pointer/value.cc
! e98d480ba9149af446aa58821ebd3b5a  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc
! 4d30a26cf5d5bf1a8f40666fa76c53d1  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/explicit_instantiation.cc
! 1d7aba8ad2bfebe69a173beafc67f5b0  libstdc++-v3/testsuite/20_util/add_rvalue_reference/value.cc
! 027c36b6be08ae84538010b8f89748fd  libstdc++-v3/testsuite/20_util/add_volatile/requirements/alias_decl.cc
! 263830bce1414216e877ade0d990aa86  libstdc++-v3/testsuite/20_util/add_volatile/requirements/explicit_instantiation.cc
! 1b19b2b560dfbfd0a2a8ad03f2e67523  libstdc++-v3/testsuite/20_util/add_volatile/value.cc
! 552480f1e6d76bdaec126ed97abc8b9e  libstdc++-v3/testsuite/20_util/addressof/1.cc
! 90b4d2470f9814a2c8f146b1930a98de  libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc
! 3cfedbf6b546e9ec820955b852e1d6f9  libstdc++-v3/testsuite/20_util/addressof/requirements/explicit_instantiation.cc
! b28312a9369dc5e207ee14984884d3c3  libstdc++-v3/testsuite/20_util/align/1.cc
! f5b73d1831b129e1267dfc0a85145ae2  libstdc++-v3/testsuite/20_util/align/2.cc
! a427c6566e8a40226491fe87c7a93240  libstdc++-v3/testsuite/20_util/align/3.cc
! 8d1e6de531f833e818eb6807f9ff7ada  libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc
! f580b13960fcc9c0fe5cf1bcc90c46fc  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc
! 03f40b3f6ba98caf6f12a8bbf7fd2a27  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc
! 5a7d08570da3f1cb174bf5c5bc0ae66e  libstdc++-v3/testsuite/20_util/aligned_storage/value.cc
! c8cbab10f66360e698241e46d962acb6  libstdc++-v3/testsuite/20_util/aligned_union/1.cc
! 5ba7645fffe16f0cfc4dbcb77cf3ae00  libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc
! f81626e8317322b18c7e633809f0c9c6  libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc
! 98de0343141f75fea8616155058b256b  libstdc++-v3/testsuite/20_util/alignment_of/requirements/explicit_instantiation.cc
! b87e91027f2d2e8c1f4a23ef682b308a  libstdc++-v3/testsuite/20_util/alignment_of/requirements/typedefs.cc
! e0fc3cb49c1029e73939945b437b0668  libstdc++-v3/testsuite/20_util/alignment_of/value.cc
! dfed9bff68c2b5fb56a28105dee8f6c8  libstdc++-v3/testsuite/20_util/allocator/1.cc
! 11c2b656443e53789b05e7777c68e496  libstdc++-v3/testsuite/20_util/allocator/10378.cc
! 32cd2e02d33e0de43ae3997481aa26d3  libstdc++-v3/testsuite/20_util/allocator/105975.cc
! 4ee170c2b7b88dde73a732588b506cae  libstdc++-v3/testsuite/20_util/allocator/14176.cc
! be058e208d70566ba4ed7e678cd492c0  libstdc++-v3/testsuite/20_util/allocator/33807.cc
  ae49058091ac2f31814de6246e958d6a  libstdc++-v3/testsuite/20_util/allocator/64135.cc
! 89313ca3043e2bc0c4ac8f8dcccea69f  libstdc++-v3/testsuite/20_util/allocator/8230.cc
! 07bec2df6add67d8a249f38399859218  libstdc++-v3/testsuite/20_util/allocator/89510.cc
! c8e55f05737fba71233c8e185378beb4  libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc
! 3a33ea4cc7a484652498b15cd370eeaf  libstdc++-v3/testsuite/20_util/allocator/overaligned.cc
! bb3b5753f4e1809a317efa4a8b7b52d4  libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc
! 9cc6034f5cb4959c12d349e01edf5100  libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc
! 4c93a0fe8a2b99e2bf047f207c1738b8  libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc
! 574c4f17adfc6d4fdbc7a36be76189c2  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
! 6f2ddeea7fffd1f7ddda9867ddec0a37  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
! 4b3d9fbc7a60013b02367dd99f1c2d2f  libstdc++-v3/testsuite/20_util/allocator/void.cc
! 2507ed44fb323118257bd6ce7bb095b8  libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
! 85b2afd630810126ef82b1d7267ca846  libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
! 5336f92bcae54f5d28badb5566393ac6  libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
! e0d793a2d40bebde631ce2dcc8197ed6  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc
! 05e3d7578747c9af441e54acf60ed80f  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc
! 0a40bd991f7ca6eb28c761cae625c765  libstdc++-v3/testsuite/20_util/allocator_traits/members/construct.cc
! f213e920552fd12f0ad1fb75158f26de  libstdc++-v3/testsuite/20_util/allocator_traits/members/destroy.cc
! a78691d0ab95c1359d92dc38fa992f46  libstdc++-v3/testsuite/20_util/allocator_traits/members/is_always_equal.cc
! 370888e6f3d86eeeffda6b196e38da63  libstdc++-v3/testsuite/20_util/allocator_traits/members/max_size.cc
! f01fdaa9853083ed05383d1c06da795f  libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc
! a7555c213c73da6cc3c94aa61e5edfac  libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc
! 17c10e3108d6b536413ffffa3122133b  libstdc++-v3/testsuite/20_util/allocator_traits/members/select.cc
! b609379c48e980fec3dc7847fbe18301  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc
  bef0ecc9b87819710fa15591c4f27204  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/rebind_neg.cc
! 93063a96fa85a00c9d3ce6282fec75b9  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc
! 45d9f0a60a6156eb2246a47a64becc67  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs2.cc
  53d95c7e7934ce41b96d0a86033b6a99  libstdc++-v3/testsuite/20_util/any/102894.cc
! 498cf7837a9baaccbf1fec7ab569d083  libstdc++-v3/testsuite/20_util/any/assign/1.cc
! 13a858964073deed5e1fce0c8583d18f  libstdc++-v3/testsuite/20_util/any/assign/2.cc
! 1cec97c634727b4e6ea7a3944b88779b  libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc
! f94bdf5e9e4a32f5cb8ad45595171dc7  libstdc++-v3/testsuite/20_util/any/assign/emplace.cc
! b0a0a00cf6f23466ef0a051dce36898e  libstdc++-v3/testsuite/20_util/any/assign/exception.cc
! 9cb8e9d1ed5ba4cca640f5c2e66e576d  libstdc++-v3/testsuite/20_util/any/assign/self.cc
! f53b2c19dba2ae1870b126344a051a7c  libstdc++-v3/testsuite/20_util/any/cons/1.cc
  097d518046e23537949952c936ddfa1c  libstdc++-v3/testsuite/20_util/any/cons/101034.cc
  335e5502fad2ac140247bdc170504f8f  libstdc++-v3/testsuite/20_util/any/cons/104242.cc
! 025db0c4cc7b0d5c7f64647a03539e7a  libstdc++-v3/testsuite/20_util/any/cons/2.cc
! 6e3e1a009248889ecf0e3785597d8e1d  libstdc++-v3/testsuite/20_util/any/cons/90415.cc
! 25ac0ba6f266c1888090c89235acc106  libstdc++-v3/testsuite/20_util/any/cons/92156.cc
! 282627f6c7bd763fc1e0c5f0d693afde  libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc
! 0412a9f0b2bcff8b180b0e43afa56707  libstdc++-v3/testsuite/20_util/any/cons/aligned.cc
! 231f874e27319278643adbf63ec1c993  libstdc++-v3/testsuite/20_util/any/cons/explicit.cc
! e3d0bb76fbaef69c8f87fd9fe336aa4a  libstdc++-v3/testsuite/20_util/any/cons/in_place.cc
! 3ea6370f34c6012ae7832329612f0cf7  libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc
! 6ca02ecc8fd87a06fc82b76fa0a2de7f  libstdc++-v3/testsuite/20_util/any/make_any.cc
! bec7cebb72f10c82543548b6e21f6db6  libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc
! 23adc802b2a5933a24555115ed360703  libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc
! be41f5ae9653ed881e5d63894a548eb5  libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc
! 63e6fcda9a18cd1553d6284b22e32d05  libstdc++-v3/testsuite/20_util/any/misc/swap.cc
! 32727e8b8c3a49e8631021e824f43291  libstdc++-v3/testsuite/20_util/any/modifiers/1.cc
! 5c116ab2982371cb31baad88dae9d90c  libstdc++-v3/testsuite/20_util/any/modifiers/83658.cc
! e67522c95c6dcf3666f3a6ced8fe97ef  libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc
! e7ad3f2602bd907d961a85b5990e5d2e  libstdc++-v3/testsuite/20_util/any/observers/type.cc
! 2e25f2cb1cd4511a3666a22ae725f0fc  libstdc++-v3/testsuite/20_util/any/requirements.cc
! effac063849e457e9d4c707c81e8ee96  libstdc++-v3/testsuite/20_util/any/typedefs.cc
! 3eb251588462b5163336c71609d67c80  libstdc++-v3/testsuite/20_util/as_const/1.cc
! cc2a49dd69e9908d0a3addecf2cb58a3  libstdc++-v3/testsuite/20_util/as_const/rvalue_neg.cc
! fc430c863cb0514854172ab6bcaf59db  libstdc++-v3/testsuite/20_util/assume_aligned/1.cc
! 29cc44d0c6133ab62343e7d7d513f9d9  libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc
! 5dc2ba55806e834782b020fc94233fe3  libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
! 9e43c2b2a7b22f7028e9be3d708d30b3  libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc
! c900af4d30ecb95b5665d986b45d5cd2  libstdc++-v3/testsuite/20_util/auto_ptr/1.cc
! b6755af01afa36b79400db75e974f235  libstdc++-v3/testsuite/20_util/auto_ptr/2.cc
! 58f8f49f70819af7fd80f63f7f9fe58f  libstdc++-v3/testsuite/20_util/auto_ptr/3.cc
! b367ba995129c9d8e254cec48319d933  libstdc++-v3/testsuite/20_util/auto_ptr/3946.cc
! c4682684b0c6bc2173148df4ed0a2c6c  libstdc++-v3/testsuite/20_util/auto_ptr/4.cc
! c84c4b22a8ac02fdd072a5bcf5d1e570  libstdc++-v3/testsuite/20_util/auto_ptr/5.cc
! b9764fb82ffa49f651d81b7c09940467  libstdc++-v3/testsuite/20_util/auto_ptr/6.cc
! cdbaa81a3761b74070324f090c0639b0  libstdc++-v3/testsuite/20_util/auto_ptr/7.cc
! 36925d4773ea2838ab2bed4b59530808  libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
! 325c3d0b3b9f9a7dfdd576c9f81b0870  libstdc++-v3/testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc
! a6d5bb673431b3f2ae4f3ee5f8bebc5a  libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc
! 9b38ad5efc97e4c2162832b034336409  libstdc++-v3/testsuite/20_util/bad_function_call/what.cc
! 99ed7abad982a6712bb388b6ff6105b9  libstdc++-v3/testsuite/20_util/bind/35569.cc
! b27d96902454e8a46b8c703b3d0f1318  libstdc++-v3/testsuite/20_util/bind/38889.cc
! cde85d7e3569e06d02806724c10c21e3  libstdc++-v3/testsuite/20_util/bind/42593.cc
! 56d44654e6349ef529fab59503daa808  libstdc++-v3/testsuite/20_util/bind/45924.cc
! d40fcd84c2a04d5c52a3f00d9551c4aa  libstdc++-v3/testsuite/20_util/bind/48698.cc
! 66be637781d496acc52d99be35f20495  libstdc++-v3/testsuite/20_util/bind/49058_1.cc
! cf053a66ce22cf0b73e63a6c473158b5  libstdc++-v3/testsuite/20_util/bind/49058_2.cc
! e5b0b9ab2fbbb0a09797c0551cda27ad  libstdc++-v3/testsuite/20_util/bind/57899.cc
! 759f6e00a2b91df4031ce7dcc0c64149  libstdc++-v3/testsuite/20_util/bind/60497.cc
! 56ad6153e4c76944e156c7ffb03c605f  libstdc++-v3/testsuite/20_util/bind/68912.cc
! a57d3d159e2ba7a8812b93961d1f931f  libstdc++-v3/testsuite/20_util/bind/79798.cc
! 124f54100921da7eb9db7a2662ebf114  libstdc++-v3/testsuite/20_util/bind/83427.cc
! ec1a9607d69bf3526299bd6a5f798294  libstdc++-v3/testsuite/20_util/bind/91371.cc
! e2f76b5206e29df12dc615016b3ce75f  libstdc++-v3/testsuite/20_util/bind/all_bound.cc
! 3bdd7013672792223bf85876da525e5c  libstdc++-v3/testsuite/20_util/bind/constexpr.cc
! 88cc38686b4519e51b8751ea2cf41ce7  libstdc++-v3/testsuite/20_util/bind/conv_result.cc
! a9df38b43b35b5e6e710883eaec01151  libstdc++-v3/testsuite/20_util/bind/cv_quals.cc
! 159208c87f95c04af74e7011324d327c  libstdc++-v3/testsuite/20_util/bind/cv_quals_2.cc
! 11113e2f480d7394c770e9a09ee0d46f  libstdc++-v3/testsuite/20_util/bind/cv_quals_3.cc
  ac8e93d4882e1ff9282d9a8a2b291031  libstdc++-v3/testsuite/20_util/bind/dangling_ref.cc
! 2ecc665ef3b257e9162bbc21854e3946  libstdc++-v3/testsuite/20_util/bind/is_placeholder_v.cc
! 5288d661707245b5f49b1d182c5efc3b  libstdc++-v3/testsuite/20_util/bind/move.cc
! be3a9da6ea678098c6798ffbca60906b  libstdc++-v3/testsuite/20_util/bind/nested.cc
! 9515917d7da7015d84320506d85afbb1  libstdc++-v3/testsuite/20_util/bind/placeholders.cc
! 925bf06b521a39faa7a6a078a2f6952e  libstdc++-v3/testsuite/20_util/bind/ref.cc
! 223b62118d756342ecc2722736bf4231  libstdc++-v3/testsuite/20_util/bind/ref2.cc
! beef1b17ec09089c1db67911138fa568  libstdc++-v3/testsuite/20_util/bind/ref_neg.cc
! 44ab69a5d529fdf349dd6668072a2fae  libstdc++-v3/testsuite/20_util/bind/refqual.cc
! fde613852ee20acbd49ed2f4e20d9300  libstdc++-v3/testsuite/20_util/bind/socket.cc
! c0edeeaaf9a022df2a3ca636e28ac7f2  libstdc++-v3/testsuite/20_util/bitset/107037.cc
! 18aad7ac215ee932be37946a9fcd8422  libstdc++-v3/testsuite/20_util/bitset/18604.cc
! db33c0b07eb5d92575c4153385c6b2c6  libstdc++-v3/testsuite/20_util/bitset/45713.cc
! 0be3c1005581d429a9faed927cfeb925  libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc
! 559143fda7b00fba0df9fcba3dd5ca89  libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc
! 1f1e80918012b75c26a27daa909a11dc  libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc
! 950fc13cbef75c6fe204043da88e2bd2  libstdc++-v3/testsuite/20_util/bitset/access/to_ullong.cc
! dd95327d2bc1622818005a8b681bbf40  libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc
! fc025bc9d33d240e5f89460292363e0c  libstdc++-v3/testsuite/20_util/bitset/cons/1.cc
! f897a5aec46f00b1511d885009a86bf1  libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc
! fc34d41d19701a9862b43e6432bc4098  libstdc++-v3/testsuite/20_util/bitset/cons/2.cc
! 961e7eb357f41ba963869f0ad33602c9  libstdc++-v3/testsuite/20_util/bitset/cons/3.cc
! 7072f10b93369347cf75b1a83924fef8  libstdc++-v3/testsuite/20_util/bitset/cons/38244.cc
! 7f926fc576d108091b3830529ce66bde  libstdc++-v3/testsuite/20_util/bitset/cons/50268.cc
! 32a79bc6d4c4bf2ab7e047e0b83748e3  libstdc++-v3/testsuite/20_util/bitset/cons/6282.cc
! 1ce8640a35ed5ba46e13cf771739e3e3  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr.cc
! 6abbb67385d01ef586af796804e437be  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc
! 0e7481533d3c03ac5db0af66c589711f  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-1.cc
! 377d19db19f1df0254de855f63dc00d1  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc
! 83631827472f493f6103d152bbab51ba  libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc
! 4739712fd7e238ea3f424a1b9a749ded  libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc
! 599439b4c47e741ba0958fdbcc05d962  libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc
! c258df0f50cf81e780871264f7d1da77  libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc
! ae7a35e7dc58142db1f519ca7a92c236  libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc
! 689e2e23fb71fddc19f7c174a8c01a14  libstdc++-v3/testsuite/20_util/bitset/hash/1.cc
! 86a95f61afe84af57b97e13a3663514a  libstdc++-v3/testsuite/20_util/bitset/io/input.cc
! 1eefe3a582f6379be861e12b3353cfb3  libstdc++-v3/testsuite/20_util/bitset/observers/6124.cc
! d5eb63af2a8ccf9e687cba1e97ad8c33  libstdc++-v3/testsuite/20_util/bitset/observers/all.cc
! 1b42961da799725158f8d16edc1d9ec2  libstdc++-v3/testsuite/20_util/bitset/observers/test.cc
! 90d665b829de78c5015158e12a6fb319  libstdc++-v3/testsuite/20_util/bitset/operations/1.cc
! a14bddce0bcf190782dca8c21dd53910  libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc
! a4a99aee42695d5a63d2dd65cd5c809a  libstdc++-v3/testsuite/20_util/bitset/operations/2.cc
! 6b64c547a68c1eab5d5d29a59a7d8eaf  libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc
! 4a623a46d0893bfad72526fb6b865ec7  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr-2.cc
! d5fe9a70b8477f9214444520f52d1662  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr.cc
! cd35f526f71cd243c4965f834df24c89  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc
! a7d09155358ecd459011c5433d691830  libstdc++-v3/testsuite/20_util/bitset/requirements/constexpr_functions.cc
! 2477ff0cfe4d807097a3dfe90ae8336d  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc
! 1f5f8908cbcd3df3f88a08881286bce1  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc
! eef2204d57edb98136c3ffd5d0879a97  libstdc++-v3/testsuite/20_util/bitset/version.cc
! afdbffdfd2201bf9132f963b55514c1d  libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc
! d9e3a835b6facefd71de42c8fe38c7ed  libstdc++-v3/testsuite/20_util/common_reference/100894.cc
! 648fc9f2714b89854d9ead8c0f029c26  libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
! 450eaccfc464752deaab6f55ea97db07  libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
! 9e65342a9eecf6f6fce043e79021b218  libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
! 34cd68f0a923784f29775f06fbfd7a16  libstdc++-v3/testsuite/20_util/common_type/requirements/alias_decl.cc
! 53dbedd59e847b2383a138ab1a56d4ae  libstdc++-v3/testsuite/20_util/common_type/requirements/explicit_instantiation.cc
! a3b33b44713b2f369376940488e066b6  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc
! a9bd5862e38045b31604b56f2b5eaead  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc
! 60f69bf3a746e6b441135d520082f7a7  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc
! 88a2cfebee371ec492a004dfeaabdfe2  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-2.cc
! a90d6a12ed710d351217dac49b542059  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
! 6fa48790ab1d75b590002055143e6f68  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
! ee2f13c978e3982dfc65b20a79d50167  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! 5ed9f41ce0f5de05949e5d4750c740df  libstdc++-v3/testsuite/20_util/decay/requirements/alias_decl.cc
! 6f353ec85e31bbf71741afb9404bd1d4  libstdc++-v3/testsuite/20_util/decay/requirements/explicit_instantiation.cc
! 02a6a87d9cf304e3af1919ccc904bf0e  libstdc++-v3/testsuite/20_util/decay/requirements/typedefs.cc
! e512975389b3de3c38405f8f669a55e3  libstdc++-v3/testsuite/20_util/declval/requirements/1.cc
! 1dfba8b683540ea5925f30e2f62a7e02  libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
! 1f64dd9989628e429797b89300f85599  libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc
! c3a1df31a5b4ccd181a5a8ce7b5b68a2  libstdc++-v3/testsuite/20_util/default_delete/cons/constexpr.cc
! 69706bd9f0fdaa514884f2d301307007  libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
! 0623727991b764e8fe5d0e737d63679e  libstdc++-v3/testsuite/20_util/duration/114244.cc
! cd626e5368ec915c7f6584dc95897072  libstdc++-v3/testsuite/20_util/duration/arithmetic/1.cc
! ce5e26a8484170f6dcfb42f11628c0ce  libstdc++-v3/testsuite/20_util/duration/arithmetic/2.cc
! 275659e8f677d2f1b6d4704221d75636  libstdc++-v3/testsuite/20_util/duration/arithmetic/58850.cc
! 73f3124f94f7c37efb1cdd4aa24d6d1f  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr.cc
! 9fc85674766af289b4178357931cef13  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc
! a958783bbd71b99c3a16f298fca0d4da  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr2020.cc
! d3d86669646b0c14aaf45292ce65b983  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr3050.cc
! 0226bef4bd4a7fc1416eea1272b3fc6c  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-1.cc
! cdb6c102827259c5952d58d4ed977b0e  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-2.cc
! 5bfbf049bfde3e1b9726b779cd22ff78  libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc
! c176436a28435e1efcaa3591d5fb531e  libstdc++-v3/testsuite/20_util/duration/comparison_operators/1.cc
! 1606aef53325afbe7fd9612fdfe66525  libstdc++-v3/testsuite/20_util/duration/comparison_operators/constexpr.cc
! f934aa3110f2fe6cc24a5786921798e0  libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc
! ddeeac26e81cf28e3568d60cd8256420  libstdc++-v3/testsuite/20_util/duration/cons/1.cc
! d571ef6cfd4f931275e7011dbe48b093  libstdc++-v3/testsuite/20_util/duration/cons/1_neg.cc
! ccca4cdb049f7d446ff2b4f97c4329f4  libstdc++-v3/testsuite/20_util/duration/cons/2.cc
! 72809d4744d2fbbbc8d622011efd90d8  libstdc++-v3/testsuite/20_util/duration/cons/54025.cc
! 4a43098936c4bb7c7961cac2dac143c2  libstdc++-v3/testsuite/20_util/duration/cons/constexpr.cc
! 1726164c0b81121cfff0bcdb735bd353  libstdc++-v3/testsuite/20_util/duration/cons/dr1177.cc
! b824ca5978092e430a3d3f4c803c82cf  libstdc++-v3/testsuite/20_util/duration/cons/dr2094.cc
! 4e86217beff013ecded42a2cc13ef2c3  libstdc++-v3/testsuite/20_util/duration/cons/dr3050.cc
! 16becc34011f626abb225847bf1133b0  libstdc++-v3/testsuite/20_util/duration/cons/dr974_neg.cc
! 1ea01782e703bca9a523afc7b038fe18  libstdc++-v3/testsuite/20_util/duration/io.cc
! dbf5879153d46e9c8c6c9e8d689d1328  libstdc++-v3/testsuite/20_util/duration/literals/61166.cc
! ca36eb5afa2dde5e79a13d7af359387f  libstdc++-v3/testsuite/20_util/duration/literals/65499.cc
! f128b69697971933a1dbdd26509058ed  libstdc++-v3/testsuite/20_util/duration/literals/84671.cc
  f11b5a7d64db419bf2305c0f433c638b  libstdc++-v3/testsuite/20_util/duration/literals/ns_detail.cc
! 3f4c08fe719c0cfa7a4630b0337ec6ea  libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc
! 89910fdd4ab7e8069215a46b2b8c4ff1  libstdc++-v3/testsuite/20_util/duration/literals/types.cc
! e68da3b095368e5fd5f9bdb7f28913d2  libstdc++-v3/testsuite/20_util/duration/literals/values.cc
! caf453b7eaac10104f0ff4b6a5d3df65  libstdc++-v3/testsuite/20_util/duration/requirements/constexpr_functions.cc
! 243dfea7e11e816169f5603b96bcdd46  libstdc++-v3/testsuite/20_util/duration/requirements/explicit_instantiation.cc
! 9bfea3bd554b23f1a65b3aa6c9086c64  libstdc++-v3/testsuite/20_util/duration/requirements/noexcept.cc
! 8bf801da5056f612e041f69aee716c81  libstdc++-v3/testsuite/20_util/duration/requirements/reduced_period.cc
! d8715a502d83865bc0bcbf57bd4cf4fe  libstdc++-v3/testsuite/20_util/duration/requirements/sfinae_friendly_1.cc
! b6b3e1bdf4af4ce6ba75d500151305a6  libstdc++-v3/testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc
! 5d4a12d865b7a7380bd4a0986c605a12  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
! 775dc824001db4fd0f4515868fbc5e97  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
! c711bc67e8f8d7410fd6e04c6e764d8b  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
! cb89026fce57257b3d3e6afa0ad1d87c  libstdc++-v3/testsuite/20_util/duration_cast/constexpr.cc
! 539e825150970a0e47713ffbcbf9991e  libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc
! b385caf2f97a7075df1830ae222713cd  libstdc++-v3/testsuite/20_util/duration_cast/rounding_c++11.cc
! 36f4c692f6be31e540d993f057df23a7  libstdc++-v3/testsuite/20_util/enable_if/requirements/alias_decl.cc
! e0fa0216dda447d640a1016deaf6f5ac  libstdc++-v3/testsuite/20_util/enable_if/requirements/explicit_instantiation.cc
! 47be29baf76b9e83a9e0829fd93a0be7  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs.cc
! fc5493c889c81a691e2de64ee77a625d  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs_neg.cc
! 5b300ae44ade7554ccd1c024cf3be156  libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc
! 3b4e384ea08699d66ad5147d1a805bed  libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc
! 970fbb45f3c2e6754dcfdd3229dbdd17  libstdc++-v3/testsuite/20_util/enable_shared_from_this/cons/constexpr.cc
! 07f9a413c71a3e99c4bbfb1bc0289936  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc
! 1ecd17e4459908acbf76acd5512de621  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc
! 9178144a2c806054426e1a235f8571ca  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc
! 063d28fe534053d50d2d1383b3b5053a  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc
! 3100aaf7662756739f63513d7edb9770  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc
! 9d9a08fd0d8c6da9278944271c8d8777  libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc
! 88e078da97821019d055059dd38cb0d0  libstdc++-v3/testsuite/20_util/exchange/1.cc
! 7b4c5ddd774f32fe28c067410777193b  libstdc++-v3/testsuite/20_util/exchange/constexpr.cc
! 54ac023f0845d5c919380e1309b7fb5b  libstdc++-v3/testsuite/20_util/exchange/noexcept.cc
! af8a06346aa0e3af134afc89141593df  libstdc++-v3/testsuite/20_util/expected/assign.cc
! dc3a2cd47507d6f21e801bd45dbfd97b  libstdc++-v3/testsuite/20_util/expected/bad.cc
! e860269ac09079a27b177fc3da2839e7  libstdc++-v3/testsuite/20_util/expected/cons.cc
! 56411bbfdf1df328a5b305222e4527ed  libstdc++-v3/testsuite/20_util/expected/equality.cc
! f56847054b7eea85a598a3299216a456  libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc
! 2fe263333a538ddd2a8cd7953725ff52  libstdc++-v3/testsuite/20_util/expected/lwg3877.cc
! 8717f284befd8d0ee8fe1e50dcc6a7a7  libstdc++-v3/testsuite/20_util/expected/lwg3938.cc
! 4824cecd15088232e3348b8bad95b2ce  libstdc++-v3/testsuite/20_util/expected/monadic.cc
! 4bfafe03465669c57c9cf2717bc9b00e  libstdc++-v3/testsuite/20_util/expected/observers.cc
! 8854ae6d49bfd2df3b2f3a9095f61fc4  libstdc++-v3/testsuite/20_util/expected/requirements.cc
! 8c41a21e12dcb978b196eabf48e15513  libstdc++-v3/testsuite/20_util/expected/swap.cc
! 44dfca2fb3ccdb8f3ea97514568bab14  libstdc++-v3/testsuite/20_util/expected/synopsis.cc
! 4b84f057fc22805edcab3b394acb5a2f  libstdc++-v3/testsuite/20_util/expected/unexpected.cc
! 841bab6e9626640a4289d6b2192a63e4  libstdc++-v3/testsuite/20_util/expected/version.cc
! 480579eec9d5658f9ba8f55bb324534e  libstdc++-v3/testsuite/20_util/extent/requirements/explicit_instantiation.cc
! 99d5be32bfe713656e8b681c48caa995  libstdc++-v3/testsuite/20_util/extent/requirements/typedefs.cc
! 15ee9bf44a238a47a929b86f06204e38  libstdc++-v3/testsuite/20_util/extent/value.cc
! a98e290710370c50589a249621012d9b  libstdc++-v3/testsuite/20_util/forward/1.cc
! d28d6099671946f0f0a8b485dab40831  libstdc++-v3/testsuite/20_util/forward/1_neg.cc
! 8272533c9234859461190b6dd2a67758  libstdc++-v3/testsuite/20_util/forward/a.cc
! 929ad742a0eaa5cd63b255e70eecd889  libstdc++-v3/testsuite/20_util/forward/b.cc
! 69b710153273277efc410b8a02c992c7  libstdc++-v3/testsuite/20_util/forward/c_neg.cc
! e175cea1461ae8487d41fcf1809c7af1  libstdc++-v3/testsuite/20_util/forward/d.cc
! ba0119d39d907fd3d4bc40685ba2d2d9  libstdc++-v3/testsuite/20_util/forward/e.cc
! 0aedcc861f750594dc61daf911ea7afd  libstdc++-v3/testsuite/20_util/forward/f_neg.cc
! 3fe5ac7af71f072b39fae5fa9b05c6ea  libstdc++-v3/testsuite/20_util/forward/requirements/explicit_instantiation.cc
! ed57db4c99b7547ef1d1f77e0b4a5ecf  libstdc++-v3/testsuite/20_util/forward_like/1.cc
! 44e410459df619a3e753eaa4ff3f0517  libstdc++-v3/testsuite/20_util/forward_like/2_neg.cc
! a9e1ceee03428d699bf2f060477f330e  libstdc++-v3/testsuite/20_util/forward_like/version.cc
! c77f4d550a27b296f21321b9d5c24ab9  libstdc++-v3/testsuite/20_util/from_chars/1.cc
! 22474c1bc70dc7b7dbfb64c7327e78b7  libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
! c72b0838cd78a44170f5c60d10785d15  libstdc++-v3/testsuite/20_util/from_chars/2.cc
! d21c2e426b56d1e511c5151a7aa7930e  libstdc++-v3/testsuite/20_util/from_chars/3.cc
! 66b4e51c15590fe1466d6f94906a3f3f  libstdc++-v3/testsuite/20_util/from_chars/4.cc
! 7ce88b5edd24c61ef192468503f69d49  libstdc++-v3/testsuite/20_util/from_chars/5.cc
! ea3d5cee138c38efc8791b9aa649c4ad  libstdc++-v3/testsuite/20_util/from_chars/6.cc
  33cb1fba3bfa8508f23e78bc210ae25d  libstdc++-v3/testsuite/20_util/from_chars/7.cc
! 5adacab3ebedc2c262e4777253b798af  libstdc++-v3/testsuite/20_util/from_chars/8.cc
! 6ae861c02a34098f1ee33f3182ad8c36  libstdc++-v3/testsuite/20_util/from_chars/compare.cc
! af058ebcd1eb8155671cc66ccffeabb1  libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc
  6772f8cd93ed8ce0eff86720c075a1f3  libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
! cd99fcf1ba4b3d2c9950f81c4b36368b  libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc
! 4da209b7cc0efaccb8ec6fa9e04afef7  libstdc++-v3/testsuite/20_util/from_chars/requirements.cc
! 9d285bb541483e8561f9c95180031bde  libstdc++-v3/testsuite/20_util/from_chars/result.cc
! 35024c8a2ca0fa6ada8da8c469d91b87  libstdc++-v3/testsuite/20_util/function/1.cc
! 68f2f116c11ed8ba7385404bee556ca1  libstdc++-v3/testsuite/20_util/function/10.cc
! b9ec359efb2e6994aacb69e64e1ad198  libstdc++-v3/testsuite/20_util/function/2.cc
! 13491f8f029dfdd66310a86c01b9f198  libstdc++-v3/testsuite/20_util/function/3.cc
! 8954b0ecdca8584467449580ce5c009f  libstdc++-v3/testsuite/20_util/function/4.cc
! ebec7769da844c5981255ef31193b8e4  libstdc++-v3/testsuite/20_util/function/43397.cc
! bbece0463ba8ce5f89a5baaf212254b5  libstdc++-v3/testsuite/20_util/function/48541.cc
! 6c00076dae644531f8e178854223591c  libstdc++-v3/testsuite/20_util/function/5.cc
! 18dd9ada97e698a577fa67653cf8e48e  libstdc++-v3/testsuite/20_util/function/58569.cc
! b56d9d134bdff0100c049ec1e61c84b3  libstdc++-v3/testsuite/20_util/function/6.cc
! 18e4ceab62074ca59214a60986ecc64e  libstdc++-v3/testsuite/20_util/function/60594.cc
! 1fdf638f49698571856d31a05de6c7b4  libstdc++-v3/testsuite/20_util/function/63840.cc
! 2c3b0b08facd9a74d3c7f14bbbfda3bb  libstdc++-v3/testsuite/20_util/function/65760.cc
! 2aab0627a0dc63fbdc99c01c48b3c5db  libstdc++-v3/testsuite/20_util/function/68995.cc
! d737b5b14859d8815888f9d20ffe6eb6  libstdc++-v3/testsuite/20_util/function/69222.cc
! bddbb7be2378eb8626192bffd40abb6a  libstdc++-v3/testsuite/20_util/function/7.cc
! 60f7b3d50fe8043087fb484086fb4cd0  libstdc++-v3/testsuite/20_util/function/77322.cc
! 18be6c57b0720d803a489f7b6aa09b35  libstdc++-v3/testsuite/20_util/function/8.cc
! 1c23be8e77871ba8a221774ba4caa58e  libstdc++-v3/testsuite/20_util/function/9.cc
! 6b5f31ad6ec8d825ff50f3e5b8166bcf  libstdc++-v3/testsuite/20_util/function/91456.cc
! 16b2bb58ef96f4e4c2371ec18faaf76e  libstdc++-v3/testsuite/20_util/function/assign/move.cc
! 09826da860794ee54a3d3694e743a079  libstdc++-v3/testsuite/20_util/function/assign/move_target.cc
! db0a805216c03f5a0a0db91705a543a1  libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc
! 598507498ac2d9a771f58691a2450753  libstdc++-v3/testsuite/20_util/function/cons/55320.cc
! 82e211f19ed1a01a982a4282d0559136  libstdc++-v3/testsuite/20_util/function/cons/57465.cc
  ca608fcc60b0b1c480c8cea18bc2d21e  libstdc++-v3/testsuite/20_util/function/cons/70692.cc
! 36ab35c19f1c162fe8810f0511535d8d  libstdc++-v3/testsuite/20_util/function/cons/72820.cc
! 3b7c473d093933125998cbe7248db125  libstdc++-v3/testsuite/20_util/function/cons/addressof.cc
! 71bb895a176f7f859109376c80a523de  libstdc++-v3/testsuite/20_util/function/cons/callable.cc
! e290e9032ab3b9f123d79fab553406eb  libstdc++-v3/testsuite/20_util/function/cons/deduction.cc
! 97c5266cfd231b50e676670e3fa70cf1  libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc
  4b7e7e2f146d54b30a53e58d7a111cf0  libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc
! ff39bc4b7fabd6b2ffb8e93737d79731  libstdc++-v3/testsuite/20_util/function/cons/move.cc
! 1ddcc460032314ba4bd289559a45d08f  libstdc++-v3/testsuite/20_util/function/cons/move_target.cc
  d2a67a46055d71f856a2cdceb8f3c448  libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc
! 188d151a7a9da9546705504cc1661a30  libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc
! 5cacc2c06fe4115f749bf304aeb46ef8  libstdc++-v3/testsuite/20_util/function/cons/refqual.cc
! c8ff7bf363fa148a47f9014e165cc954  libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc
! 9200780ffbc29455e12593a5a14c8870  libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc
! 6901e966dd247aebda951765bcf939f6  libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc
! a42c7515fce970673504b4e6027d8f6e  libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc
! 1deb62444b98a9e3507764dda2993241  libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc
! 8be6513907a8b34c8a31d7970929ec9f  libstdc++-v3/testsuite/20_util/function_objects/83607.cc
! bb6b023ced7f18904919086598c32b14  libstdc++-v3/testsuite/20_util/function_objects/bind_back/1.cc
! ee958473de98a12b182d429e35568836  libstdc++-v3/testsuite/20_util/function_objects/bind_back/111327.cc
! 6d2bb406a4cb431a00f5222070ad60c1  libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
! b7e1e25aa8f6fddecd578ce1c23b63e2  libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
! 93d1fc75e07731fda7dccf37968708d4  libstdc++-v3/testsuite/20_util/function_objects/bind_front/111327.cc
! 24ffd5ea13e7fd711197fe5e12a77aaa  libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
! 10bc9aeb0a694ea5fe9ac99fda54b837  libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
! c56355cb5e2de33f96c86bf4db6c6be2  libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
! 1a6302520e96ff342809b29337979ea1  libstdc++-v3/testsuite/20_util/function_objects/binders/1.cc
! 863de17aa7ae07d75a900ee12560d23a  libstdc++-v3/testsuite/20_util/function_objects/binders/3113.cc
! 5926b29b8b7edffe0168ef1f8cb5e292  libstdc++-v3/testsuite/20_util/function_objects/comparisons.cc
! 1dfa8ecea1f9f2d79177cc6bcdd7be2b  libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer.cc
! a653a483d30999c2e7af07fe033af406  libstdc++-v3/testsuite/20_util/function_objects/comparisons_void.cc
! 72c5169eb585d2cd1cdd098c058f58b8  libstdc++-v3/testsuite/20_util/function_objects/constexpr.cc
! 0c0d37c2d6ac0fbb6d95ee39fe0d57c0  libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
! 0f2bf1ce5f2c9bc988e24eb6f98215e6  libstdc++-v3/testsuite/20_util/function_objects/dr660.cc
! 36dc1a0d6d59083420743b475a46e408  libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc
! 2a4094c7ea43779ffd6f7fcd388e7eba  libstdc++-v3/testsuite/20_util/function_objects/invoke/1.cc
! 97a097d20070020744df3867d0cbe34c  libstdc++-v3/testsuite/20_util/function_objects/invoke/2.cc
! c7cf26be7baaf4e5ffc1b97a5a87a762  libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc
! 16f1c3ae8b224a6acd214a0bbbfad3ca  libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc
! 939ccbddfecb983256fd3a88cc325d84  libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc
! 310d97f9305877651e4090760f4d2951  libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc
! db4aad8eee98e71f78ee6303282bff30  libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc
! 30fd8514344593d417f545b29b2f3622  libstdc++-v3/testsuite/20_util/function_objects/invoke/ref_ext.cc
! 51a8225eb82549eba5a4e7ef51a785c3  libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc
! 6139c75820a481f4b1db17267224b609  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55463.cc
! 9343440c31a5e0a8af9f162f589cde72  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55908.cc
! e2ec08181990f45a7521f2d1d4e54204  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/68982.cc
! ca40d53d1be664f0b30ff2c93e3b798a  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/80478.cc
! 139c2fad8087539a5fbbbf657430f4ee  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc
! 95bf2b6349022108b6910dbdeb63a03c  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc
! 810942a92810d7b882e26dff8edf4638  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/forward.cc
! 6526acc74ec9f71b452ac55540d3e63c  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/refqual.cc
! 797f30be97c5200935ce45821606382b  libstdc++-v3/testsuite/20_util/function_objects/not_fn/1.cc
! aa8d69634a029bc703f7e9108347b384  libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc
! 92a13aadc81d220f79a8762cc2c90f0f  libstdc++-v3/testsuite/20_util/function_objects/not_fn/87538.cc
! 63091370f2af32e972f8ed8691d947c6  libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
! 32374dda124f81bfd953c394b0bc34b3  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
! 0fd5dede5e6228556e50b25e45a03d22  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc
! 12e6b84ec756d28c06fcdb8021cc5cd0  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc
! 12f1619d44656db0e736312e6dbf1ca7  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc
! 86ecd84a838f2bf97a7a28d01b4385ee  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc
! b4b1790db72464fd01739ba70a04205e  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
! 77f577c577290c978b63ff6c47b5957a  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
! 722266a4031bc8550fa906c020b76e84  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
! b001ef7d4b3eedb12113a0f6637bcc06  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
! d4226353c62f52abf6adf56ccdaf0429  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
! 7ed8a7013a7e17762a8fa97e8f755289  libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
! 4b2fd7cb3c86cb8bc514a7f7568c015e  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/explicit_instantiation.cc
! 965b2f1d9e090dcdfb7d6aed84e91fe7  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/typedefs.cc
! 37875a6b9608e7783514fb653f5cc2cf  libstdc++-v3/testsuite/20_util/has_virtual_destructor/value.cc
! 2c79c7a58906bd00cc86d7ec0e169db9  libstdc++-v3/testsuite/20_util/hash/52931.cc
! 13d100cd09969bce92d60a81a5109f10  libstdc++-v3/testsuite/20_util/hash/60970.cc
! e3debe66877f3fcac95037efd15a484f  libstdc++-v3/testsuite/20_util/hash/84998.cc
! 2106648f8e13cf305c04e25d9b61de0a  libstdc++-v3/testsuite/20_util/hash/89629.cc
! 49bb66014e1b2f76f9340b54bdb8c75a  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_flip_set.cc
! eee2a38c98b6d86505087bec71956c8e  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_string_set.cc
! a00f42a2f076e043b9528123f8891d65  libstdc++-v3/testsuite/20_util/hash/chi2_q_document_words.cc
! ceb7ff33bd2aee553615c846c34ca0b1  libstdc++-v3/testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc
! 4ae191a524d1ee8e5084c6aa146d9429  libstdc++-v3/testsuite/20_util/hash/chi2_q_uniform_random.cc
! 797a028c2c085b2ff0e51b1f69de76dc  libstdc++-v3/testsuite/20_util/hash/chi2_quality.h
! 58544cb2f4382acf2e1525f946554992  libstdc++-v3/testsuite/20_util/hash/nullptr.cc
! ea583d6a044ed9003e9ddd379b013305  libstdc++-v3/testsuite/20_util/hash/operators/size_t.cc
! 926136aeba5efe6bf49c54a2235d377a  libstdc++-v3/testsuite/20_util/hash/quality.cc
! 54c998630ac52db8a284c351b039d46f  libstdc++-v3/testsuite/20_util/hash/requirements/explicit_instantiation.cc
! 5b3e2158238ad755ca528916f8c48171  libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc
! 29ae95d5ca75f9962e3f4269a5104c55  libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc
! 55b67dcfd4b664033a741c27f96b7496  libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc
! 9f7f97feb6e802c217a65b64a7dc2ee2  libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc
! 9568bf6fe121190aec70b0e3c38babcd  libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc
! f77208b7a1dae48bb785a819c65897fa  libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc
! 886285f4e51f0b48d60c160e104b2628  libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc
! 39183bd7b8869de018b601b4284e642c  libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc
! 3475fa9d723b6ecddd87aab7e8136106  libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc
! fa774fa8b9a0a78f6bd01d5e90405764  libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc
! dd5a0f9343939d245f3aaedf9400dfeb  libstdc++-v3/testsuite/20_util/headers/functional/using_namespace_std_placeholders.cc
! 39f3dfbffe021c3d53b6d1f4ae51f8c5  libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc
! 78e045976302605b440747c3bc55acc1  libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc
! 0f1c7bc346a9c0c3cd16287166acf9da  libstdc++-v3/testsuite/20_util/headers/type_traits/std_c++0x_neg.cc
! 5ec07052daaaf3291a88f0c4a2c8ab25  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x.cc
! 288193ad5fa101b699095fa309756d94  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc
! 7c4a32c09f5665a651a40c0b0c187bb0  libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc
! 54dc509c23e8f97703d9905e222293d2  libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc
! 8cf6e220ccb7c0988d148b1d1abab974  libstdc++-v3/testsuite/20_util/in_place/requirements.cc
! 5a82f3e3089ac1da670eb960e54efcb6  libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc
! 785de7aaf2535d4a6119940e31e37cc2  libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc
! 6c64e6a00e33d075d694d08e40b9622e  libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc
! 49d23000f0a042cae2e9b25c5fa2ed47  libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
! 23268839cfbf52c1337d5616e250b6ea  libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc
! b04d8715d311205750183a4202fac4d4  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc
! b5222f6619da60f7bc98faca29294221  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
! 0175657cc78424ac9424d1bd0f66282a  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
! 5932b14310950bda8dccaa43872b9b2b  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc
! 61822b9b54f61260d2a95238eccc6638  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
! d8da1e02f9b6522f465eba2d3b82859e  libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc
! 78bbb693cf1a6c39cbe243f3c5380bbd  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc
! 9c2ddff3d9467ea427b17596b01a9bb6  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
! 0c23948dc3016a8cc654fc1c89f757bc  libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
! 78cbf28ad8fd1fc60cbc890a5836544e  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc
! 49d23000f0a042cae2e9b25c5fa2ed47  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
! 01419816e55df10955ea47006b7fd41b  libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc
! 7c3545ff7575694feab8b576fde8a3f2  libstdc++-v3/testsuite/20_util/integer_sequence/intseq.cc
! b299881c5f8a46c9954c9cfffbb15437  libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc
! a2054e16c64758b5098176978959d3c4  libstdc++-v3/testsuite/20_util/integer_sequence/requirements/typedefs.cc
! 4035c75049d2dd6cdf5fc33cf41d93db  libstdc++-v3/testsuite/20_util/integral_constant/call_operator.cc
! 7e99dc93e6c20e282ac4041d1ae8ad02  libstdc++-v3/testsuite/20_util/integral_constant/operator_value_type.cc
! ec3e04ff7a30c11c0abc283cae3ad697  libstdc++-v3/testsuite/20_util/integral_constant/requirements/constexpr_data.cc
! d6e537ff6ef04d39f476e14f4e385075  libstdc++-v3/testsuite/20_util/integral_constant/requirements/explicit_instantiation.cc
! 76aff1f4fd12ea90a28555b7347bda72  libstdc++-v3/testsuite/20_util/integral_constant/requirements/typedefs.cc
! 06d11760011c0cf90e4bbd5f3e778022  libstdc++-v3/testsuite/20_util/integral_constant/static_definition.cc
! cc54cddec159cfb1c1831816b86396cc  libstdc++-v3/testsuite/20_util/integral_constant/true_false_type_typedefs.cc
! 55f243a2b9ccda2e2dec100825a3791f  libstdc++-v3/testsuite/20_util/integral_constant/true_false_value.cc
! f48437fdf154221e72af640f0a004a8b  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_args_neg.cc
! b8a05a739042877606d122de0b03bbc3  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_neg.cc
! 797ca4cc11fd0d8f69ab98c8917aa9ce  libstdc++-v3/testsuite/20_util/is_abstract/incomplete_neg.cc
! 529623cae2937ba8054db959c2ac11f8  libstdc++-v3/testsuite/20_util/is_abstract/requirements/explicit_instantiation.cc
! 67fd7445af4c2241eb3411d527101951  libstdc++-v3/testsuite/20_util/is_abstract/requirements/typedefs.cc
! 3f8e92d392a8f4ca8de07755b224f402  libstdc++-v3/testsuite/20_util/is_abstract/value.cc
! c1bf8195f852c39c9df4eeab56e824f6  libstdc++-v3/testsuite/20_util/is_aggregate/incomplete_neg.cc
! f2b09fd2487da55f9012207a75525d3f  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc
! fc51da9fb2c860619cb6fad14a126f43  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/typedefs.cc
! d4a2b5531c9dbc62cc6dd1078da057bb  libstdc++-v3/testsuite/20_util/is_aggregate/value.cc
! 3fc223909f6857d0746e52ace4c08881  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/explicit_instantiation.cc
! 0e9a8098515478123e8545941ed46e72  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/typedefs.cc
! 45f7f9413622584b54fc06d8749aa321  libstdc++-v3/testsuite/20_util/is_arithmetic/value.cc
! 8475c43950afefb06f596d9c004241d9  libstdc++-v3/testsuite/20_util/is_array/requirements/explicit_instantiation.cc
! 32f0e7df8b4ed973ca6e9b29a17873ac  libstdc++-v3/testsuite/20_util/is_array/requirements/typedefs.cc
! d3632500b655043551856f697bf1552b  libstdc++-v3/testsuite/20_util/is_array/value.cc
  6768b922ca72460fc141a677fddef045  libstdc++-v3/testsuite/20_util/is_assignable/requirements/access.cc
! e0efb54ed83154f792d6102d5c6580f3  libstdc++-v3/testsuite/20_util/is_assignable/requirements/explicit_instantiation.cc
! 36577ccb4a7475a89b4993f841893019  libstdc++-v3/testsuite/20_util/is_assignable/requirements/typedefs.cc
! 28aaa0aa3a8bee8ea4b3fceb11fb4af0  libstdc++-v3/testsuite/20_util/is_assignable/value.cc
! 7ee2bd7bba0b57c2cee400427ae5ed53  libstdc++-v3/testsuite/20_util/is_base_of/requirements/explicit_instantiation.cc
! 5fd33c836d0231b0c5cc3382168c57ae  libstdc++-v3/testsuite/20_util/is_base_of/requirements/typedefs.cc
! f15c35a1b120e2d8590d0f277cc30fb7  libstdc++-v3/testsuite/20_util/is_base_of/value.cc
! f3bf4e338545016c702c967d10754e80  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc
! 5db76faaf4cfdfa925a05bd521751d24  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc
! 22f6d9145cd488d1466e0032d6ee0413  libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc
! 375880b3b9e2fe1625dd89251c636521  libstdc++-v3/testsuite/20_util/is_class/requirements/explicit_instantiation.cc
! b989e8cf40f3ea4dfad7f7c048d5981b  libstdc++-v3/testsuite/20_util/is_class/requirements/typedefs.cc
! 3a95d114cb7afb87e0105938c4b50898  libstdc++-v3/testsuite/20_util/is_class/value.cc
! 36350013d5cb09daee78d96dfb5a0627  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization.cc
! c29bc42b30a84caafaaed7648bdf1ef9  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc
! 155c0670d72c7b053194807e07002d7e  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/value.cc
! 00b79dab1ba1b0efcdda4b2a10dfbfa6  libstdc++-v3/testsuite/20_util/is_compound/requirements/explicit_instantiation.cc
! ec73ac1516fa150d5654ce283eb74ed3  libstdc++-v3/testsuite/20_util/is_compound/requirements/typedefs.cc
! f0997906de4bf93c4627e53995229ac1  libstdc++-v3/testsuite/20_util/is_compound/value.cc
! d49fef00a767cad360029a095ddbb52e  libstdc++-v3/testsuite/20_util/is_const/requirements/explicit_instantiation.cc
! 05c622315850f8993031accdcba8b946  libstdc++-v3/testsuite/20_util/is_const/requirements/typedefs.cc
! a4f2299c3acb5effbc763f55c028c8f9  libstdc++-v3/testsuite/20_util/is_const/value.cc
! a835f1bdcc9de67098d141b465b1b15b  libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
! 4b2020a36590672c27f1db5d90b68c15  libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
! 056ff8c550ece042c89843295f6ab59f  libstdc++-v3/testsuite/20_util/is_constructible/51185.cc
  a5e184714ddd867798fa94c2ebe2c9fe  libstdc++-v3/testsuite/20_util/is_constructible/68430.cc
! 2e24cc20e383c68773cc93e4fa184bf6  libstdc++-v3/testsuite/20_util/is_constructible/77395.cc
! f4c0da6dd43d3053228d4af199a5515c  libstdc++-v3/testsuite/20_util/is_constructible/80812.cc
! 5a3ea0029f8d1667f742254e0b964896  libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc
! 0507a9d6c98a54bd986fdb15d1a1fdf8  libstdc++-v3/testsuite/20_util/is_constructible/94003.cc
! 5cccff3cb1628b57942d142e0c2e8024  libstdc++-v3/testsuite/20_util/is_constructible/requirements/explicit_instantiation.cc
! 038fcf7c9b9ad8497cfcb18a446f8fcd  libstdc++-v3/testsuite/20_util/is_constructible/requirements/typedefs.cc
! cff6423d12eaad35f8bd10705fe8ffb1  libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
! af85f91241a892a928fc9fce2bb5f9a8  libstdc++-v3/testsuite/20_util/is_constructible/value.cc
  09d897b8e5e8f52ce748db0bdf75aa0e  libstdc++-v3/testsuite/20_util/is_convertible/requirements/access.cc
! 474a9b531f102dbfe0c8924d4eb1db5c  libstdc++-v3/testsuite/20_util/is_convertible/requirements/explicit_instantiation.cc
! 65e2161735c14287342620f181803175  libstdc++-v3/testsuite/20_util/is_convertible/requirements/typedefs.cc
! 7fc4e69cdc0cd9049acd11f4444bd722  libstdc++-v3/testsuite/20_util/is_convertible/value.cc
! bb1c02f1892083b25a807bf7119e82a8  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/explicit_instantiation.cc
! 59e438e859a87f4a652475d952df3d1f  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/typedefs.cc
! ab5e509d676d3a640d6b80fc6804f969  libstdc++-v3/testsuite/20_util/is_copy_assignable/value.cc
! 29b13737b72aaa3361159c5f12785b9f  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/explicit_instantiation.cc
! ebff810ac0b1fe7e447d19fc9547817b  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/typedefs.cc
! 512e9dc7d924c6039495bcfe76042b64  libstdc++-v3/testsuite/20_util/is_copy_constructible/value.cc
! b6ce6dde5709c76909fd4563f7078304  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/explicit_instantiation.cc
! a6501d9c9bf2399331895441ea161f77  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/typedefs.cc
! e467b48989e367e4d857750cf5d94e4b  libstdc++-v3/testsuite/20_util/is_default_constructible/value.cc
! 732e370cc80d8ca86bf87c8b0fa30f1e  libstdc++-v3/testsuite/20_util/is_destructible/requirements/explicit_instantiation.cc
! 952b10e219c8194899c57388e4b2287b  libstdc++-v3/testsuite/20_util/is_destructible/requirements/typedefs.cc
! 010c758d38ba3bc50053aca949ec763d  libstdc++-v3/testsuite/20_util/is_destructible/value.cc
! c31f38f780dee5e498a176e86e403bd3  libstdc++-v3/testsuite/20_util/is_empty/incomplete_neg.cc
! 2eb2699e95e8d5823db8057f077c1b67  libstdc++-v3/testsuite/20_util/is_empty/requirements/explicit_instantiation.cc
! aad430b9789776712bcd58a362921b40  libstdc++-v3/testsuite/20_util/is_empty/requirements/typedefs.cc
! a516b5c8fd30e98b76236ca40874a7b4  libstdc++-v3/testsuite/20_util/is_empty/value.cc
! e2fa660104afa92456abc33a379739c2  libstdc++-v3/testsuite/20_util/is_enum/requirements/explicit_instantiation.cc
! ce535d1452092db7922aaec0b5a23471  libstdc++-v3/testsuite/20_util/is_enum/requirements/typedefs.cc
! 21951244910fb878c3f11a671d92996f  libstdc++-v3/testsuite/20_util/is_enum/value.cc
! 8e732768c79a2623f84d23ebe127c9cf  libstdc++-v3/testsuite/20_util/is_final/incomplete_neg.cc
! 7bb3945fa1890d252de45600cdbd4968  libstdc++-v3/testsuite/20_util/is_final/requirements/explicit_instantiation.cc
! 700a61fe04379e721f5e4b95a33b091d  libstdc++-v3/testsuite/20_util/is_final/requirements/typedefs.cc
! 09f3e9ded45d86b07a8c79ed7113690f  libstdc++-v3/testsuite/20_util/is_final/value.cc
! b236169e34a93d388f1f70051679c9de  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/explicit_instantiation.cc
! c2486ac21fc13bea14e98086cdbf0525  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/typedefs.cc
! 16cc663fb337f11d6be57b64091e8b81  libstdc++-v3/testsuite/20_util/is_floating_point/value.cc
! c4819484961de83021627b7f6e0166eb  libstdc++-v3/testsuite/20_util/is_function/24808.cc
! 79962786a6e339f201ef58eebada60b7  libstdc++-v3/testsuite/20_util/is_function/35637.cc
! 9e9c947447e8422ca270a87035c00ff1  libstdc++-v3/testsuite/20_util/is_function/91371.cc
! ebcb719824b2bd91423696f03c5dcaa7  libstdc++-v3/testsuite/20_util/is_function/requirements/explicit_instantiation.cc
! 48747309cff45c8c72f0515688e70737  libstdc++-v3/testsuite/20_util/is_function/requirements/typedefs.cc
! c48bcf7bb7446ac916b6422d2695d0e8  libstdc++-v3/testsuite/20_util/is_function/value.cc
! 6343fbb3568e3fe51384f23e2f123320  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/explicit_instantiation.cc
! 6176afe80e1b00b01f66172cc1671d72  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/typedefs.cc
! 3cd2e9d3139090a052bff03cf9e6dfe4  libstdc++-v3/testsuite/20_util/is_fundamental/value.cc
! a5bdd79a24a6fcd57053b32d1df0cb33  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc
! 2f12ded64efee2505b514064299008c1  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc
! bbaa9889625f94a83821107ecba8f1d8  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/value.cc
! 57e4c8dfd037cc99e35ff519553855e5  libstdc++-v3/testsuite/20_util/is_integral/requirements/explicit_instantiation.cc
! dd5cf6d4dac26402f49fc0b13f5789cf  libstdc++-v3/testsuite/20_util/is_integral/requirements/typedefs.cc
! b97f0614d55a40b2361747517625e41b  libstdc++-v3/testsuite/20_util/is_integral/value.cc
! 3861020d0c48d80304f5183999c019dd  libstdc++-v3/testsuite/20_util/is_invocable/83395.cc
! e32ee207f0d802c500e483c29a5d89ad  libstdc++-v3/testsuite/20_util/is_invocable/91456.cc
  15e39483dc403920d82c01777fcbfd43  libstdc++-v3/testsuite/20_util/is_invocable/dangling_ref.cc
! 67731891f8b383b74186aade4518a22d  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_args_neg.cc
! 2543b673aa1eae29d89e99c70e5dc4d4  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_neg.cc
! 26db1c2c024ad61005ae803f1219773d  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc
! ecf6f8f2dcf8ab9f3cb5874934dc9356  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation_ext.cc
! 54003662ce541c1e0f2ec1b49acfd7b6  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs.cc
! a31786a54ab01eff933d6e12e6e913d1  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs_ext.cc
! 53d4d7dea8e3a814e54f6b6eb0e6f9e6  libstdc++-v3/testsuite/20_util/is_invocable/value.cc
! eeee8a32d419c9f4f0ae8ab7c55d8934  libstdc++-v3/testsuite/20_util/is_invocable/value_ext.cc
! 1079591eafc5af1141e10c7791fcaa6d  libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc
! 31a740f1c6844e8db8616f864b8448c1  libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc
! 238b3120b9f8359df017f0d5349ddc89  libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc
! da30edc9e173cb4998a5f6a5fcf24cd2  libstdc++-v3/testsuite/20_util/is_literal_type/deprecated-1z.cc
! 7cc123b8cab57073a07b1dac45c3f985  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc
! 97c9b56a2cc9dbf6898c9b378422de19  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/typedefs.cc
! 6a3710745295519355019b8b7db8ad2e  libstdc++-v3/testsuite/20_util/is_literal_type/value.cc
! 0fe86163042a595cb18fd27222a96512  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/explicit_instantiation.cc
! 628f771da14166395a9eb45f7d6831cf  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/typedefs.cc
! 8ac9105a320346ccbf98976aa273beee  libstdc++-v3/testsuite/20_util/is_lvalue_reference/value.cc
! ad84b80a8f46f7d76146a040a90b419d  libstdc++-v3/testsuite/20_util/is_member_function_pointer/91371.cc
! 8b24936c024df75b043c44d62bb22b38  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/explicit_instantiation.cc
! b580dc981e6c5aa5282727e8bb3c328b  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/typedefs.cc
! 536bfb2df9054527a04ec8271468fc86  libstdc++-v3/testsuite/20_util/is_member_function_pointer/value.cc
! e9270e129d3bfdc56c22bf7861068a9e  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/explicit_instantiation.cc
! 999822f3de803446863ee09ca3e6b660  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/typedefs.cc
! dad3bb8d8ee0339dd9f51f63fbb436c6  libstdc++-v3/testsuite/20_util/is_member_object_pointer/value.cc
! f148b72ffd4510ce9dc0f1a42f06eced  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/explicit_instantiation.cc
! 655d33ba0c7e301073172987cd16509a  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/typedefs.cc
! 68ee5f12d70e8a847306527d3face52e  libstdc++-v3/testsuite/20_util/is_member_pointer/value.cc
! 31621b98ef1fc2b94697f922d63f2148  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/explicit_instantiation.cc
! 10bc645ce7a9ada204627514ac92248a  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/typedefs.cc
! 15345aef1939c771e50aea1ae2d55a53  libstdc++-v3/testsuite/20_util/is_move_assignable/value.cc
! 6e231a5294ebf5f0f8a1ec8da5a9a5b6  libstdc++-v3/testsuite/20_util/is_move_constructible/incomplete_neg.cc
! f79b0d105bd445adce9f033f5b66d163  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/explicit_instantiation.cc
! f7c69544cbe4d7fd2d7b054322e2f3d4  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/typedefs.cc
! 90ddfdc74ec6dc89d9d11b4d5842404f  libstdc++-v3/testsuite/20_util/is_move_constructible/value.cc
! f92e185e84fa966811299ccf468a8310  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/explicit_instantiation.cc
! e9b2d147f83fe1098353d2f758176e8a  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/typedefs.cc
! 5fb36a682a2c8c171dddbf8ba14d0c75  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/value.cc
! 1fd5515e975da614eea5b40aaedf12dd  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/94003.cc
! 136d65cb0d59502c10a8752dbea9af3f  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/explicit_instantiation.cc
! a5dd02227a7983e8cf91df0eeb6b4e64  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/typedefs.cc
! a8ad78237c54260869976aaa6402e641  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value.cc
! 4d5fbbff3d0de676319f872965f511aa  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
! acbac3585c3e871d6bbd93ca4e4c6100  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
! 89637513c05d702b156951b452dbac35  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
! a226141787996d1baecebe45dd3ded3e  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
! 3a9230beecbf9d3d8d8f9980965e8ac0  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc
! 7129e833c8178e1cc1a823151f564242  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc
! 2bc9c9ecef73512b9eda96f8c7e6c17c  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc
! 8502a85138007b2e9bf1f53ad66bf6fa  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/explicit_instantiation.cc
! 4983b76c9ffcacae4dca98e90d0ac760  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/typedefs.cc
! 8b9495556679ec0b9e44130d45220399  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc
! c74b74663bd4c7bfd07b945cc957e875  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/explicit_instantiation.cc
! e8ca1802a3cceb1cb0c3ed30db3379f8  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/typedefs.cc
! b2fbdb9a5ab74c97fd347cca6d2f8c8b  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/value.cc
! 1a0e9650a2f5aad581c7b3708ee2576b  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/explicit_instantiation.cc
! dd5bfe08fa17b0ae238c5dd6fc708730  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/typedefs.cc
! ecaa306c20ed5a9aca0b1245af35ded7  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
! 789a1c4cb64226a6e4a28d2bd311df7a  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/83395.cc
! f8a48de994af40d40dce3389d2ec3aac  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc
! 4511e1b8fa60382a5d73340a069ba6f3  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc
! afc993953f7cbdce30e69a483d227648  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc
! 33efdc0c57ce5535a11381ee62a2c7a9  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc
! 44632c7f42004ed3662c8d89d5aa995e  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation_ext.cc
! 7548a604b429663b3cd0adb29c26e614  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc
! 8e89c9571f76a2adbd3685c7503d526b  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs_ext.cc
! ea25dca280a50ccc5c955ff568e2a3dc  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value.cc
! d66800e8f2013a4541692224ceff1845  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value_ext.cc
! 18d49a3e3cf8f008fe3c743adbb8fd01  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/incomplete_neg.cc
! d84931cbb8fe9dd2a6583335df8bf5eb  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/explicit_instantiation.cc
! faac95ce861592a909e3c71484a5771e  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/typedefs.cc
! 03411cfbc21e1e5360d01cfe8e744cd4  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/value.cc
! cadcfb88ea88c0ae5ca256fdb3de8524  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/explicit_instantiation.cc
! 387547f180ada59ab94f2e2acc304cc7  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/typedefs.cc
! aea6f1314c34c2ff4cedccd3e9779992  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/value.cc
! 4b3ca40787e9d1d328d6f485b6192b53  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc
! 2e25aaad0357d740edb628c946e01ec8  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc
! d91e3731bb2999a30cdc8c7c580e6b20  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation_ext.cc
! 9d3547b0c199c41dce3c7b7a612b496e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc
! bc527c5f7e347518f3e6b8014b8a6d1e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc
! 28173cba9d90ca9129c1ca70e34ba41d  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc
! e7a4a8c6eee738afd95494e1ebf32376  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h
! d0cfcb83d2ab9ac44b8716cc99c7a9af  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value_ext.cc
! 14cf8fba062658965d22d53ff486137f  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc
! 2f422494a0b1485741617e5c3f6eaeb4  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc
! fb5c2259b077502352f35c4b39aadf2e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc
! 70974ef146c59878e95059c83080107e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc
! 560afde788330fcf29866348e5b7f6c2  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/explicit_instantiation.cc
! 29e41670004134967979982be4c999d3  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/typedefs.cc
! a5e05a70f95b6cc8c9dc31892a038dd4  libstdc++-v3/testsuite/20_util/is_null_pointer/value.cc
! a599e90ae28fc66819e60dab604045b8  libstdc++-v3/testsuite/20_util/is_object/24808.cc
! a3b1d7cb08628a6c9e75f7e1a4892e71  libstdc++-v3/testsuite/20_util/is_object/91371.cc
! 0d99eb8d41b3cb9150c562be932febb7  libstdc++-v3/testsuite/20_util/is_object/requirements/explicit_instantiation.cc
! efbbd660b5f078df12280b21a4c5df99  libstdc++-v3/testsuite/20_util/is_object/requirements/typedefs.cc
! 8761397a84fdde2f852483bd0b714bde  libstdc++-v3/testsuite/20_util/is_object/value.cc
! 72dcba4de6a6eb2dd43386a0beead704  libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc
! 9d34c6597f50ed6bcd72c9946cbeef26  libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
! e07435a5547e601264b5d724e2aeaa1b  libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
! 5e37bf29aa7c133ab6d5519c33cfa8bc  libstdc++-v3/testsuite/20_util/is_pod/value.cc
! 41b9af9d34a7ff5f49c8f0c42f3636d8  libstdc++-v3/testsuite/20_util/is_pointer/requirements/explicit_instantiation.cc
! eccda7da78e0ad8df579f5bcb0c225d6  libstdc++-v3/testsuite/20_util/is_pointer/value.cc
! e9378376f3c816595bd186a3a1c0f891  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc
! f169bdc3e67f0f5bc01e3bb0e270046e  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc
! d637ec4fe9a801365e4669014a78359b  libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc
! 5e034c23934f74234f3e828d282e8ab9  libstdc++-v3/testsuite/20_util/is_polymorphic/incomplete_neg.cc
! 943ea11c7c7d947822ba1a6182dca12d  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/explicit_instantiation.cc
! e07e65e5035630548919ce2a01c7a893  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/typedefs.cc
! f74ac6049e5d3a84b4fe6eb58430d919  libstdc++-v3/testsuite/20_util/is_polymorphic/value.cc
! f62458ee0eca69fa59861f4276aa3d84  libstdc++-v3/testsuite/20_util/is_reference/requirements/explicit_instantiation.cc
! ffc400ea945c47bc8bfa1d96150fea81  libstdc++-v3/testsuite/20_util/is_reference/requirements/typedefs.cc
! 3bb164e1586aefd01d634be5bc15cf7c  libstdc++-v3/testsuite/20_util/is_reference/value.cc
! 311e86da3c9d5276381e7d4523e835a3  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/explicit_instantiation.cc
! f41ed607b123229d42b0d7fa875e5ca3  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/typedefs.cc
! c784dbf0b378290223dff48811383cd5  libstdc++-v3/testsuite/20_util/is_rvalue_reference/value.cc
! 021697503263931f6ea9ab74efc0d781  libstdc++-v3/testsuite/20_util/is_same/requirements/explicit_instantiation.cc
! 8a1efb4170cf2826129d08b8283ff690  libstdc++-v3/testsuite/20_util/is_same/requirements/typedefs.cc
! fde3b854007afe65db46c435e63a652f  libstdc++-v3/testsuite/20_util/is_same/value.cc
! c86e56a9fbf8820b31dcce17f781d51c  libstdc++-v3/testsuite/20_util/is_scalar/requirements/explicit_instantiation.cc
! 001c2050b9354d0f9d38233b3a61182d  libstdc++-v3/testsuite/20_util/is_scalar/requirements/typedefs.cc
! 623e8eee81251454c762667204e70fc5  libstdc++-v3/testsuite/20_util/is_scalar/value.cc
! 854bbf010fefc0627a184de57236c8d5  libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc
! 437c7b107b408e4eed48a32eab4f0cb2  libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc
! cafaaa470a092d7e3dcdbbdd338d51dd  libstdc++-v3/testsuite/20_util/is_signed/requirements/explicit_instantiation.cc
! a44af1bacbf18ba4b83f49324dfbb9ba  libstdc++-v3/testsuite/20_util/is_signed/requirements/typedefs.cc
! 63bb4335f5b0360c3435833f13cbbcee  libstdc++-v3/testsuite/20_util/is_signed/value.cc
! 49b298e6a43e04896d8b1bd7dc89d03c  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/explicit_instantiation.cc
! b210b5d6d6776814a9f8a1e70f9fcd75  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/typedefs.cc
! 8c2ad4ee30bf06080b454dd0aa8196bd  libstdc++-v3/testsuite/20_util/is_standard_layout/value.cc
! 2295770d604ff0b06643957a6bad066e  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc
! 56d54348662eb8619d25ee5b5f24f96e  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation_ext.cc
! c4e0e5818e38a9ad7dd81a14fb520ae5  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc
! f33216f4a5289d36c2423968e7fcf90d  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs_ext.cc
! ccf51b1369b5aa620955f1449b7ddec6  libstdc++-v3/testsuite/20_util/is_swappable/value.cc
! e5070bca36859891396cb4cb246ab643  libstdc++-v3/testsuite/20_util/is_swappable/value.h
! 81e796d0d0b86e4ad4a122794d2287cf  libstdc++-v3/testsuite/20_util/is_swappable/value_ext.cc
! 34dcbbff4e5b204dd4cfaee0dad3f99d  libstdc++-v3/testsuite/20_util/is_swappable_with/incomplete_neg.cc
! 925095cc46da9b42cdd686c814a43cbc  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc
! 53721d9173b83315f6a75d67019108f6  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc
! c00e84db8f6d6d124de51d8153a7ade6  libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc
! dbf0ef211ad9ea8204395192c33981db  libstdc++-v3/testsuite/20_util/is_trivial/requirements/explicit_instantiation.cc
! fa0c297e7c9187106f3e5865c1b4577f  libstdc++-v3/testsuite/20_util/is_trivial/requirements/typedefs.cc
! e2704900e460b56caaaf3cac026aadf5  libstdc++-v3/testsuite/20_util/is_trivial/value.cc
! 96697767fb1f329944c407c49a0f5ce7  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/explicit_instantiation.cc
! 307c4463e8c011047944e404f3c0b9a9  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/typedefs.cc
! 589a4a5095681fde5ed07983a105e381  libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc
! 848dc2c3e4eaf0f11a411f660e4d7f7e  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc
! 5f8035769bcf50b6969af73286f69f3f  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc
! 6798620568f8eef2e9bf595b093f7161  libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc
! adfb3d1e83c5e781d0a3ef15d964cfd7  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc
! 309fa86877c5da079427c558ca8236ca  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc
! a0c9ee101d07e16185993ec48e3b788d  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc
! 873c3cf9c179d4ceee2c2b22afdf60e8  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/explicit_instantiation.cc
! b1936b7d3ea06fbd0f5c60409586879c  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/typedefs.cc
! b218441d2be9ee311f9bdd0a7c55c02c  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/value.cc
! 7c56d08fee5d7a2548c6b7d2b63c570d  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/explicit_instantiation.cc
! 915f16008b0e1a0ef39bce0834de6138  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/typedefs.cc
! 34be16667db8f5c2c7f122f2b57515d3  libstdc++-v3/testsuite/20_util/is_trivially_copyable/value.cc
! 978651917d7d9395e1867eddd695ae86  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/explicit_instantiation.cc
! 440b275d942f7bbeb7fbec8c8671d89b  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/typedefs.cc
! c3432ea20550487ad2621f18d20ce6b3  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/value.cc
! f39f82bc6e8e2e96f2a84d3ede1c4b73  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/explicit_instantiation.cc
! 7ed8a4bced8829cffd1c73ef1d769c6c  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/typedefs.cc
! e81cb65067f7b0a8e7d074313876880a  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value.cc
! 7713786ec02e2fd53bdb2116cbfdc65e  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value_v.cc
! ecddd6ff4b73f77a6df38f1428a4b506  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/explicit_instantiation.cc
! eb3b4b9893848fa377fa0c8e5072a1a3  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/typedefs.cc
! 63f36cfac0679528b0f60696e1ca8e23  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/value.cc
! 3a472616ccc2712de8415a454b13edaa  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/explicit_instantiation.cc
! 0681bbc9e3d29f0cf95f2dc2f0c7959d  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/typedefs.cc
! b094b6d202530b122e090650e42a395e  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/value.cc
! 93c0afe6454090d43c58f45087c999c6  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc
! 5db76faaf4cfdfa925a05bd521751d24  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc
! d00f83f6d4e161472b8d1c925faa1058  libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc
! d12ba3cdc00ee66e8cbf9c13f6de27ab  libstdc++-v3/testsuite/20_util/is_union/requirements/explicit_instantiation.cc
! 53a984f8a082b8bf034da2615b4a2b10  libstdc++-v3/testsuite/20_util/is_union/requirements/typedefs.cc
! 71c56becd52a7d92d7f07b7990e33842  libstdc++-v3/testsuite/20_util/is_union/value.cc
! c5236a005010d9b174368e22db7f2097  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc
! 4b61f048aa496e61f16d6ebc9eff7f8e  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/typedefs.cc
! c843aa82573a8f1e94b6afe2979380a4  libstdc++-v3/testsuite/20_util/is_unsigned/value.cc
! dc82999c266c41b8c7d0c7caf27f9b4f  libstdc++-v3/testsuite/20_util/is_void/requirements/explicit_instantiation.cc
! dc48c559a5d853cfc014442af41382ae  libstdc++-v3/testsuite/20_util/is_void/requirements/typedefs.cc
! ad8322cc70dcfd41876427a9c1aeb43e  libstdc++-v3/testsuite/20_util/is_void/value.cc
! 2a455b260a42f53005f15b88d7726b29  libstdc++-v3/testsuite/20_util/is_volatile/requirements/explicit_instantiation.cc
! 8123220e87c8128e04531334ca536147  libstdc++-v3/testsuite/20_util/is_volatile/requirements/typedefs.cc
! 5fed02232453220bb5b74553ab16414c  libstdc++-v3/testsuite/20_util/is_volatile/value.cc
! 795e696aa8cf616770a7445e3fb91f13  libstdc++-v3/testsuite/20_util/logical_traits/83134.cc
  6f771d4e7b8b937d187f18a61f28fd4a  libstdc++-v3/testsuite/20_util/logical_traits/requirements/base_classes.cc
! dba750f1275d7958f091b2b33a734ecd  libstdc++-v3/testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc
  119b399190409df0e8ccdcf9b10c3e35  libstdc++-v3/testsuite/20_util/logical_traits/requirements/short_circuit.cc
! 149d7f62e98449a770ca083ba71604df  libstdc++-v3/testsuite/20_util/logical_traits/requirements/typedefs.cc
! 40177689c69bc9abb97e800dc508f1e5  libstdc++-v3/testsuite/20_util/logical_traits/value.cc
! c004ec9d102a7b20e9c9e46b18821d27  libstdc++-v3/testsuite/20_util/make_signed/requirements/alias_decl.cc
! 7e2efdcb609d0b9d40576891f8e380a2  libstdc++-v3/testsuite/20_util/make_signed/requirements/explicit_instantiation.cc
! 682fcdd53017c46266803359eae0c703  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
! 46b044a97fc6197dba0314697e7e82c1  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
! 29d75423bde5af1f5ef19ca4b6e20609  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-3.cc
! d3ec252c20ea36f9a1926737e3a4e9e2  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-4.cc
! ea5591dad1aea804139f0a4d18ae82a1  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
  8f0db74dad9a1b305718ac6e066eedf2  libstdc++-v3/testsuite/20_util/make_signed/requirements/uninstantiated.cc
! e776377019a0cf388de6f12a6eb753c0  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/alias_decl.cc
! d9691cbb09caaf3f5589a41c61a6e49d  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/explicit_instantiation.cc
! 521e5ca25bc3679fe23f25004c79134f  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
! 9bee80531d5e5b05048a47b4fefc79be  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
! 3cae148f60fe30f7c0267aae52eac2bb  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-3.cc
! 2a19402ec69e784ec75d94063d6fbf4a  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
  a8e73ef02c8dd2e09fa65d0cba094035  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/uninstantiated.cc
! 8ebcc7a01c9502f4a085a187e9088047  libstdc++-v3/testsuite/20_util/memory_resource/1.cc
! a9c73dede76222bf992900640f9a4fde  libstdc++-v3/testsuite/20_util/memory_resource/2.cc
! 5ecaa06c782530ff0dc0c22e62c51a31  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc
! b3fe8ba9412fe55232367617687b12d9  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc
! 7784713d3be6bee8009e64d722be6e70  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
! 024cc29f316b3e99278b34c011f1aae0  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc
! 101cd3e1aaf40212fa5093da8848b688  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc
! 6393ba23f0602b24529560e7a3a9081a  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc
! 23fce524a852d9f3708f2e63224f5178  libstdc++-v3/testsuite/20_util/move/1.cc
! 18094e0514787a855fcb79daae28c913  libstdc++-v3/testsuite/20_util/move/requirements/explicit_instantiation.cc
! 8a84b62683326ec2fb1176bdff1c8778  libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc
! cff5764c6d456cd0cab27e19b93b7274  libstdc++-v3/testsuite/20_util/move_if_noexcept/constexpr.cc
! 687d72a88714a7df3756d0e69d85fd78  libstdc++-v3/testsuite/20_util/move_if_noexcept/requirements/explicit_instantiation.cc
! e609b5832e6e14b189c71b01fc31595a  libstdc++-v3/testsuite/20_util/move_only_function/call.cc
! a3d46eda1cd19ee59590b7e89ae8f69e  libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
! 5f5e72e772029cc74c37aed7a9effe5f  libstdc++-v3/testsuite/20_util/move_only_function/move.cc
! cf58b13b168563fa8fea60315876bccb  libstdc++-v3/testsuite/20_util/move_only_function/version.cc
! d7937ad3f5498df871f8ed65ec9f3c00  libstdc++-v3/testsuite/20_util/nonesuch/nonesuch.cc
! a627273fb8b6963b820fa1e54a3a09f4  libstdc++-v3/testsuite/20_util/optional/77288.cc
  f669af40876c317318f47db8330b7058  libstdc++-v3/testsuite/20_util/optional/84601.cc
! 993ba88a5d7d9b071309b5f1eb182e1e  libstdc++-v3/testsuite/20_util/optional/assignment/1.cc
  5f2a36dc053d6d68a81135df84e7f4cb  libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc
! ae794d838cd9fe5c8e32745e3c996f1d  libstdc++-v3/testsuite/20_util/optional/assignment/2.cc
! 27e123b113410accc4a434becd979b03  libstdc++-v3/testsuite/20_util/optional/assignment/3.cc
! 7e472f300929948c26328af234d40861  libstdc++-v3/testsuite/20_util/optional/assignment/4.cc
! ec68d2acbdd7c0425c97febe29df4a20  libstdc++-v3/testsuite/20_util/optional/assignment/5.cc
! 702361a1785de6a16972eb2c5122405a  libstdc++-v3/testsuite/20_util/optional/assignment/6.cc
! 2beb75b53376318cac1c53ec8019fe6b  libstdc++-v3/testsuite/20_util/optional/assignment/7.cc
! 15ae43804697aa6a0bff8dff9a3f3e10  libstdc++-v3/testsuite/20_util/optional/assignment/8.cc
! 9a065a4ece84f3e1b02889ec64d1d8b8  libstdc++-v3/testsuite/20_util/optional/assignment/9.cc
! f70d6ae2265df99c73708992a1e5c56a  libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc
! 33b66344fd31e6af09bbdafc68cb252d  libstdc++-v3/testsuite/20_util/optional/assignment/noexcept.cc
! 32cf4286ada831e1ef28c378b9b8878d  libstdc++-v3/testsuite/20_util/optional/bad_access.cc
! ffad674455b009d5e050d3b02204f05e  libstdc++-v3/testsuite/20_util/optional/cons/77727.cc
! a423f6061c0bb30c9d2a94f19d3dc699  libstdc++-v3/testsuite/20_util/optional/cons/85642.cc
! 5cead16cdb6c9bacdc61deb4c4a27754  libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc
! f2bdf72d71a8b9705f39196ada9f3083  libstdc++-v3/testsuite/20_util/optional/cons/copy.cc
! 3d328b7541076ea7fa8b26265ac42588  libstdc++-v3/testsuite/20_util/optional/cons/deduction.cc
! 502379c7b8e404a8ef6fa9715dfac8fe  libstdc++-v3/testsuite/20_util/optional/cons/default.cc
! 0960276ca4a49a226b6f15a135264ee4  libstdc++-v3/testsuite/20_util/optional/cons/move.cc
! 1b88e934ba1cf95efb3bd0f19f07d71c  libstdc++-v3/testsuite/20_util/optional/cons/noexcept.cc
! ecc9569a1d73371e745b96e575c5c74a  libstdc++-v3/testsuite/20_util/optional/cons/trivial.cc
! da79b7d3ceafb2561205c579cbd684e4  libstdc++-v3/testsuite/20_util/optional/cons/value.cc
! efde22b553a6abcf9a8a78963d1af29d  libstdc++-v3/testsuite/20_util/optional/cons/value_neg.cc
! bdaab2c7a277b9ab7e3419b9414abbd3  libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
! c90cd072fff0310ee397532e79baeb6c  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
! 7660f8ac1285fb06073b39bffbdbf414  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/default.cc
! d0a84051dbdafa467674b2346cc78f07  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/value.cc
! bc62b99f5d490c64b1087d4155e6c33c  libstdc++-v3/testsuite/20_util/optional/constexpr/in_place.cc
! 95698e3c4497863525aa70eab6499819  libstdc++-v3/testsuite/20_util/optional/constexpr/make_optional.cc
! d892473bccf7714d4d0029f52c64922a  libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc
! de4396aedb7684d5d758d0378ba5a501  libstdc++-v3/testsuite/20_util/optional/constexpr/nullopt.cc
! 6340d02fbfe9001da23017bd26ee9fba  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/1.cc
! e0378ee99c6290cd4f1ddd36b94c543f  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/2.cc
! 88a0555e73730269d692da25519dea61  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/3.cc
! 241c6c3a8db73dc3f03358bae8a11309  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/4.cc
! 9a0dfea87b80f2dbd0e055141448bd84  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/5.cc
! e598bc25c64541d15a596ba616f47cc1  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/1.cc
! 3f1511f5594a6422d3f11dc74f68402a  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/2.cc
! 891a97073f20beae125ee3ed5155d24d  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/3.cc
! 23e4e78f95f0bbe288fe6aefa58cd2da  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/4.cc
! b808220e3f1d4ea1851869a27672204a  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/5.cc
! 87c7d58185ee30931c737698af022b10  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/6.cc
! 9245416041a04e7eab9f7bb25bdaeec7  libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc
! 0f3ae8c93d67e0cf488ab78ace6d18d4  libstdc++-v3/testsuite/20_util/optional/hash.cc
! d7a24227ddb29fdc00a4a49d4abc7883  libstdc++-v3/testsuite/20_util/optional/in_place.cc
! 4d53222bf83a8329548f408c8b0c9f74  libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc
! 6c8609fb26e6a50a293cf90721d7357f  libstdc++-v3/testsuite/20_util/optional/make_optional.cc
! 9f6d73e852cf82959a57a12db48e8905  libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
! ca862872c63399df0317190ea1f66d4b  libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
! ee09f6b0b65aa45b2df39f550d3fa064  libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
! 72fbbba600f3e2e6599c46a0812c30bd  libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
! b7d8b66190edd1b5779d2e2e80d350e2  libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
! bbb20ea75551c928424ee7616993b7c3  libstdc++-v3/testsuite/20_util/optional/nullopt.cc
! ee11c9023f0ad3cc0068043fdf0dc7bb  libstdc++-v3/testsuite/20_util/optional/observers/1.cc
! a7c6bd31ccf10d58750aecfc71e652d1  libstdc++-v3/testsuite/20_util/optional/observers/2.cc
! 909f4f233bb0cd472ec5214c8885e7ad  libstdc++-v3/testsuite/20_util/optional/observers/3.cc
! 6c3e22bd4e6ade6496404f190dfbe415  libstdc++-v3/testsuite/20_util/optional/observers/4.cc
! 6fcc804664ff5aa29fa5387577eec7a7  libstdc++-v3/testsuite/20_util/optional/observers/5.cc
! a6a5e91a2b78bfd09c463e395dce671d  libstdc++-v3/testsuite/20_util/optional/observers/6.cc
  d8af3640e7aabc8dd1960265b3ca5a27  libstdc++-v3/testsuite/20_util/optional/observers/lwg2762.cc
! a89ef9f9d43ab52b904d2b275abb2f16  libstdc++-v3/testsuite/20_util/optional/relops/1.cc
! 9b0c6c5d74424693ceca6e756d7db294  libstdc++-v3/testsuite/20_util/optional/relops/104606.cc
! b3b4439d9e36e080985ce45e8b301a2f  libstdc++-v3/testsuite/20_util/optional/relops/2.cc
! e165f5d6cbe882d7bec5a469f8cc0dba  libstdc++-v3/testsuite/20_util/optional/relops/3.cc
! e27001f8e4328050dcc0fd57199acc21  libstdc++-v3/testsuite/20_util/optional/relops/4.cc
! b20ccd622eca09d6dad1040a90594cbb  libstdc++-v3/testsuite/20_util/optional/relops/5.cc
! 110a7b8c288ed7b0d65bd179a46ca185  libstdc++-v3/testsuite/20_util/optional/relops/6.cc
! 57a425536f82d123a4594a26902dd338  libstdc++-v3/testsuite/20_util/optional/relops/7.cc
! 13ff1846e1e60b9c80c5e47975367055  libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
! acc9ce832232aa4029b9bd7c1c769f1f  libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
! 5cdf907ddef01857d7dc6939b07d9d28  libstdc++-v3/testsuite/20_util/optional/requirements.cc
  dbea899b3c675ff68a2a4b74a3b78bca  libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc
! 8a0c876d36a73cfe54bbaaa6f2faddaf  libstdc++-v3/testsuite/20_util/optional/swap/1.cc
! 4172595f5f9702b0b8d6d8fca4310397  libstdc++-v3/testsuite/20_util/optional/swap/2.cc
! 61f84d179e30dec495a8d520d352ebf2  libstdc++-v3/testsuite/20_util/optional/typedefs.cc
! 63ddf373eb5a6d0bf6cfa6e8e5949381  libstdc++-v3/testsuite/20_util/optional/version.cc
! 91fd6aff8687311b90817e9054b8b8ae  libstdc++-v3/testsuite/20_util/owner_less/cmp.cc
! 45922cfdd3a0d34846c21e6f51617814  libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc
! 71bab00cc9f9b0b6866aae696db0ec1b  libstdc++-v3/testsuite/20_util/owner_less/void.cc
! 8966551e82d68a84dd5ab4dc1d5639e6  libstdc++-v3/testsuite/20_util/pair/1.cc
! 124ce37c5406ff5e0492e5059297957a  libstdc++-v3/testsuite/20_util/pair/2.cc
! 32ea938662322f1e41251b3796b4179a  libstdc++-v3/testsuite/20_util/pair/3.cc
! e68c783d5312be8fc8432581de946837  libstdc++-v3/testsuite/20_util/pair/4.cc
! 7ab026ed0dce3391668cd3b50ef0d691  libstdc++-v3/testsuite/20_util/pair/40925.cc
! 92e9d20d01052601fdf90fd12d4e49bd  libstdc++-v3/testsuite/20_util/pair/44487.cc
! aeceb7ed4a37e0d5069368b492298fd2  libstdc++-v3/testsuite/20_util/pair/70437.cc
! 51a46412304b77714b872e1e8e6f3de4  libstdc++-v3/testsuite/20_util/pair/79141.cc
! 822a3840be07e7e5c4780213a93d4434  libstdc++-v3/testsuite/20_util/pair/86751.cc
! 1cb13ea4644f86457d5deadd4202795e  libstdc++-v3/testsuite/20_util/pair/87822.cc
! 42a0e350327f8ee76e3eb851b8a88e51  libstdc++-v3/testsuite/20_util/pair/astuple/astuple.cc
! 9969b9e7b879fdc41bd2c8b1b8430694  libstdc++-v3/testsuite/20_util/pair/astuple/astuple_cpp14.cc
! 9e5fd8c7ab53e88dcb27e8210fadc0b9  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get.cc
! 569d4f537539699020228db3183ae301  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get_by_type.cc
  f2f2b91309730f195c55679493733944  libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc
! 615717268a9494269a748b818516a857  libstdc++-v3/testsuite/20_util/pair/astuple/get.cc
! 5c2898a94510144572f642d26387084a  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type.cc
! 3e35724c208766af1ed84086f2284e05  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
! 0441756220779ea66d01fd82ab2fcbb0  libstdc++-v3/testsuite/20_util/pair/astuple/get_neg.cc
! 5f0d03c78883f0d5388117a60da7ebfa  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr.cc
! 4e56b4719b84bc0f400050717f12c07d  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc
! 04fed045318edda260e590d9ad1630a6  libstdc++-v3/testsuite/20_util/pair/comparison_operators/lwg3865.cc
! 0bfa2a6f102c47434fccf1cd29449891  libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc
  c5964cf74c99c86ce570bfdb15835bb8  libstdc++-v3/testsuite/20_util/pair/cons/99957.cc
! a5671a9536df9d6651ad08288b3776b1  libstdc++-v3/testsuite/20_util/pair/cons/constexpr.cc
! 39b1a117d414bee9d35e015445c91ae0  libstdc++-v3/testsuite/20_util/pair/cons/deduction.cc
! 942a80b2cd63f8a170cc399f96dc99bf  libstdc++-v3/testsuite/20_util/pair/cons/default_tmpl_args.cc
! 4757c42c82a0068a539be8435735e004  libstdc++-v3/testsuite/20_util/pair/cons/explicit_construct.cc
! ae152713ca2bca96402ab590daab836a  libstdc++-v3/testsuite/20_util/pair/cons/noexcept_move_construct.cc
! 3c4d5b149b2e789df645e318955f5e6d  libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc
! 795306c5760a967b9955f68de7f1504c  libstdc++-v3/testsuite/20_util/pair/constexpr_get.cc
! a78dc430c3f45637770e40a41338b268  libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc
! 51d0155d543510207ec1049b36d11330  libstdc++-v3/testsuite/20_util/pair/dangling_ref.cc
! a2739811b62dbf085ce28e077d6df214  libstdc++-v3/testsuite/20_util/pair/make_pair/constexpr.cc
! 5ae6b8a04d61e6bbed6795586cdcde21  libstdc++-v3/testsuite/20_util/pair/moveable.cc
! 7e070936df885fea7d6b8a55ce5b5d79  libstdc++-v3/testsuite/20_util/pair/noexcept_move_assign.cc
! c8ba4a1fa85f8f3799d5d48e94c32f85  libstdc++-v3/testsuite/20_util/pair/noexcept_swap.cc
! 7a6c4156d1271972780cbef2bfc83584  libstdc++-v3/testsuite/20_util/pair/noncopyable.cc
! 9f58a82f3464503f5b27380328198a6c  libstdc++-v3/testsuite/20_util/pair/p2165r4.cc
! f027f1875a4d3380e81bb134cfcba1f4  libstdc++-v3/testsuite/20_util/pair/p2321r2.cc
! 7ce51f333e5e9e899a073b9aed650ba9  libstdc++-v3/testsuite/20_util/pair/piecewise.cc
! a06d8a0e0c9f32096a6406a88c96c972  libstdc++-v3/testsuite/20_util/pair/piecewise2.cc
! f9e2cbe79169b3cc8a8892e3b5de9c3c  libstdc++-v3/testsuite/20_util/pair/ref_assign.cc
! 7f5b4254129e73ad35f53ca7acdda0ba  libstdc++-v3/testsuite/20_util/pair/requirements/dr2367.cc
! 71ed619bdf64adf8f349fdcd8dbdb028  libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc
! d1f371b73d8273e08ecc5c3a47d854b3  libstdc++-v3/testsuite/20_util/pair/requirements/explicit_instantiation/1.cc
! 03b33ab350fe86d88f4609f7fd82a60d  libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc
! 5c7a05adee50d6aa61bbaa13e835b52a  libstdc++-v3/testsuite/20_util/pair/swap.cc
! 653df1cb837a9b8918e5ea93aac93408  libstdc++-v3/testsuite/20_util/pair/swap_cxx17.cc
! 6bf118cb458d6810bedd4cd44b932677  libstdc++-v3/testsuite/20_util/pair/traits.cc
! 3d2897cb91c946db15f421b6d62698e5  libstdc++-v3/testsuite/20_util/pointer_safety/1.cc
  4ea61b01821ef91d050e7dc8bc19448b  libstdc++-v3/testsuite/20_util/pointer_traits/lwg3545.cc
! 2fc6a25698d3c1c76baeb310a4fde760  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc
! 494db7bd8556d25204b5a5f6dc63772a  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc
! 711d85748851372cd7c3ac3afd6e1bcd  libstdc++-v3/testsuite/20_util/pointer_traits/rebind.cc
! e91d88b3e37385d48b338e0111c3b19a  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/explicit_instantiation.cc
! 39417a163d0bddb1e47a2be07b62859a  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc
! 78297ec0a148ff215a2c9ae1ceb79323  libstdc++-v3/testsuite/20_util/polymorphic_allocator/1.cc
! ef7bf7286cd39430029e319cf7395631  libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
! d56f27d868d9f0dc3a4ac6abcc9aa724  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
! 5c081cb82e5f2978a33927c1b613afd3  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_pair.cc
! f91f68a13c9063e863fc90ad12950f66  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
  918078cc6c6d9bc5d48247416402bca6  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3683.cc
! f94c5278b7faaa4983f57a762493920d  libstdc++-v3/testsuite/20_util/polymorphic_allocator/resource.cc
! 1f2404a40ac1338901a71357b1ec54c1  libstdc++-v3/testsuite/20_util/polymorphic_allocator/select.cc
! da685ad0f8e4e4fa0693d687d64bbf01  libstdc++-v3/testsuite/20_util/rank/requirements/explicit_instantiation.cc
! 5e5f5f36eece81a25a3fd7bf2fa17be4  libstdc++-v3/testsuite/20_util/rank/requirements/typedefs.cc
! 909d6a0d9bb1effec30504cccc91a316  libstdc++-v3/testsuite/20_util/rank/value.cc
! 06acc7b9f11d74633555c0a9ee3b054b  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp1.cc
! 58c629bd18122457010a91bf85f556c8  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp2.cc
! da29bca9095a0a7f089182e33ac18092  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp3.cc
! 4bb458797366e28b33306643f4cefc4e  libstdc++-v3/testsuite/20_util/ratio/cons/cons1.cc
! 59d8e4868433218deb962a9d7fdd1c89  libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
! dbb53c8138f3f14dd77ec984e0e3134e  libstdc++-v3/testsuite/20_util/ratio/operations/45866.cc
! f327a54be474f59fa6e75a338b821faf  libstdc++-v3/testsuite/20_util/ratio/operations/47913.cc
! eca6ccbf51d82ff5b987cd9aaced3795  libstdc++-v3/testsuite/20_util/ratio/operations/53840.cc
! 5e7b70871875efa66006547f45751b27  libstdc++-v3/testsuite/20_util/ratio/operations/ops1.cc
! 35e3f31c6c42678d93aeefed4ebccd02  libstdc++-v3/testsuite/20_util/ratio/operations/ops2.cc
! 1d65030d6917c2356c86c0e586da9a0f  libstdc++-v3/testsuite/20_util/ratio/operations/ops3.cc
! a9a24b19d5092c0313862ae3b1c732f0  libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
! 0214e01b9866348ef658b509210a5c3e  libstdc++-v3/testsuite/20_util/ratio/requirements/constexpr_data.cc
! a33853183d3467306152eb66eea86f42  libstdc++-v3/testsuite/20_util/ratio/requirements/ratio_equal_v.cc
! d8bbe2c17046f08594a91f5a8e216ba7  libstdc++-v3/testsuite/20_util/ratio/requirements/type_constraints.cc
! f8cc33ad57ac67363aba1a64af35e7e2  libstdc++-v3/testsuite/20_util/raw_storage_iterator/base.cc
! 6e228d3d28cfb2302d82e05b89679d95  libstdc++-v3/testsuite/20_util/raw_storage_iterator/dr2127.cc
! a9adba76d2fe490a7832742e7e4823c9  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc
! 2b4cfa074f04e948380d84e307d1f090  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc
! 9a89968da9b4325b21c4fcb951a2537f  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc
! eba5de17eca1978d1e3c5225521f6636  libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc
! c40f99eb8fa2bb3c9a7bd277b2978e71  libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc
! 386ac1a7c747803dd596e39bb1a3b0fc  libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc
! 4a84de3c42172db1d21479af249eca9b  libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc
! 1a369bf662a5b94158d905648be7aac3  libstdc++-v3/testsuite/20_util/reference_wrapper/41792.cc
! 1d70b7b9c54fffceaf77005ed677af8b  libstdc++-v3/testsuite/20_util/reference_wrapper/80504.cc
! b547cfe46e081cef4d5dd0f06dcaac0e  libstdc++-v3/testsuite/20_util/reference_wrapper/83427.cc
! d29855594ad103b670136d89c6c8d2d8  libstdc++-v3/testsuite/20_util/reference_wrapper/compare.cc
! 4fa11dbe92b0cf7f9980be8cda7fc942  libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc
! e1dd2bf2f169f12583007616b46b7f94  libstdc++-v3/testsuite/20_util/reference_wrapper/deduction.cc
! d030df0029b347b4469c0b258449fe65  libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc
! d8f661a86af9a16f994f900e3a3941fe  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
! f89272cc8d675ab3e85d631cb642da4e  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-3.cc
  3a4e290fbbefce397c537f6f76360292  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-noexcept.cc
! f1df4b8ffd8fbb8045d2609c25bae217  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
! 2fe6ee6c90d10bbbd7e33d9785485d2f  libstdc++-v3/testsuite/20_util/reference_wrapper/lwg2993.cc
! 782dd3a6d19c5cd91d186ea45c941af4  libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc
! 76e162d2c98bac588fb6ddc52f05850f  libstdc++-v3/testsuite/20_util/reference_wrapper/requirements.cc
! 74477b6e613ee251f7260e87d71b6599  libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
! 153bed9230a9747ff0927ad1d4ce8839  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
! e577311ad229024124658061b0e3b5d9  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
! 759acc37e59835e83bc566c3187c4e0a  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc
! b806de2c2ff259b6a2c1fff4bdd327a1  libstdc++-v3/testsuite/20_util/rel_ops.cc
! d2923f7a0850ab99b74d8e7706d83ba7  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/alias_decl.cc
! eb813f98b6ff87fa629604ff3d29cf7b  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/explicit_instantiation.cc
! d55cd625eeac776d8260721f3acadb94  libstdc++-v3/testsuite/20_util/remove_all_extents/value.cc
! 3123e1f95aee8cb8108d743f9e3f0a24  libstdc++-v3/testsuite/20_util/remove_const/requirements/alias_decl.cc
! 60a624d80bbaa154a91db80aa4a1b47a  libstdc++-v3/testsuite/20_util/remove_const/requirements/explicit_instantiation.cc
! 5c7f5ae3376835cc2cd001debd7a4232  libstdc++-v3/testsuite/20_util/remove_const/value.cc
! ddab12a6f756e0d42617009b9b89648a  libstdc++-v3/testsuite/20_util/remove_cv/requirements/alias_decl.cc
! e7632e58482812165621e743960acf5f  libstdc++-v3/testsuite/20_util/remove_cv/requirements/explicit_instantiation.cc
! e01d7c4fdf88f7076af50644eb96c540  libstdc++-v3/testsuite/20_util/remove_cv/value.cc
! ee22633b5715c8097504aeb8926c3411  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc
! 5f2da0584b4abe8c6de79e13be7320c9  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc
! f1dadf8a57dc96c806eeb9c6ae6a6ca1  libstdc++-v3/testsuite/20_util/remove_cvref/value.cc
! c9804f1188d6221c3d534987b19b705f  libstdc++-v3/testsuite/20_util/remove_cvref/value_ext.cc
! 3f0d9a53359601a091bd8e5442e8c87f  libstdc++-v3/testsuite/20_util/remove_extent/requirements/alias_decl.cc
! 0d6268ecefba01c5b5be1641b127ba89  libstdc++-v3/testsuite/20_util/remove_extent/requirements/explicit_instantiation.cc
! f7db508e1b430c89c6dcfea6272d2508  libstdc++-v3/testsuite/20_util/remove_extent/value.cc
! 078896fa757c90a9e3b61bd65526d4ec  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/alias_decl.cc
! 73736d1c78db36e11a3342f48259c141  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/explicit_instantiation.cc
! d443f1ef217a43436cf8c41d47bdf91b  libstdc++-v3/testsuite/20_util/remove_pointer/value.cc
! 52d47f4a5bd3cd213768c5364f1743fb  libstdc++-v3/testsuite/20_util/remove_reference/requirements/alias_decl.cc
! 67746248c33f0f87725a0afc575fdb43  libstdc++-v3/testsuite/20_util/remove_reference/requirements/explicit_instantiation.cc
! c1dc50bbf702d5d63670ede0f0e3a245  libstdc++-v3/testsuite/20_util/remove_reference/value.cc
! e4e95c17ca631ea965a4181a7ea11c03  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/alias_decl.cc
! 0503f61181ce068efd79ab94f3289630  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/explicit_instantiation.cc
! 84b2f7b3c696e3f7fa0709eb4a740183  libstdc++-v3/testsuite/20_util/remove_volatile/value.cc
! aa1e079d6fe130b606d801bf2a3ee4e1  libstdc++-v3/testsuite/20_util/result_of/1.cc
! 3bf380e3bd0030fdec44bf2af707298e  libstdc++-v3/testsuite/20_util/result_of/2.cc
! ac637ca532e4352307cb8f3a69f39ae8  libstdc++-v3/testsuite/20_util/result_of/requirements/alias_decl.cc
! 09b38d087b05f7e98e73c5f54f9dbb5b  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
! 1222bc2d17fe8754107a1caf4feca134  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_2.cc
! 987792a96e6975b45d9bca45a0e247c6  libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc
  da8b1f9f56123156faf50b7277670b45  libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc
! 5cee0680314acb863b686cb1948a7cda  libstdc++-v3/testsuite/20_util/scoped_allocator/2.cc
! 2b2683abe73127a11f3548aff7d59654  libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc
! 9c51d08d3cf49e4e24d935667b37f61b  libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc
! 9c42d8d15dc5036185bce75090e0666f  libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc
! e46fdeefe82e5a41bba301deebad1f13  libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc
! 541a8b9d5c43ffdce92d908782e15129  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc
! 922b21a18bd343c05db406f9cf341a16  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
! 38809dc7b95b295e964229c4de168ad7  libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc
! 21839fffd9af40409ba70062d85bea69  libstdc++-v3/testsuite/20_util/scoped_allocator/noexcept.cc
! 18660ade8aa20d53fb49ad206e792414  libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc
! 321f03b00b48b90ada318542e9cbe260  libstdc++-v3/testsuite/20_util/scoped_allocator/propagation.cc
! 76abbc28a63381ed13d8edb2ec1f1846  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc
! 07eb38ceefbc254bbded82ff94952912  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/typedefs.cc
! b7626d295c0c0927c5c5579384780632  libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc
! 3c3bf6d5d0405dbd94bdb6ace1a88285  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc
! 465895e3dc5ae5fa0f5506fdaa475c86  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc
! f3261a80c598384b1585a5446f0b7f9e  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc
! 1d40e097286b922704a45fc3356e843f  libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc
! 2baa70236d0f9624cb7b74d6d6ac79a1  libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc
! c73356476b9695d42921d2eace47aa9f  libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc
! b27864ff382abf361e012859d3e38554  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc
! eb098ee5e3fad5f26985bfc72c6e7b78  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc
! a1f4f3ca0de98bbdee6632dd8a1149a2  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc
! ed6d6b65ca8d75039f8a9f80b2c5ce91  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc
! 27a491ca4f914d5d23c86d0a8bcbc778  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc
! 34ed98a9a8a7abe291b00514008fd599  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc
! d71c09ef6b4ca2597bcbf670d938db4a  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
! 218bfa15322cbf3d4699fd75868ce542  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc
! 3e13cdd9dc241e585997d2cef360747b  libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc
! 557d76d4ee6966b198518993ea2e98e5  libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc
! cb88c09a39e386354f7d6d2bb4989316  libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc
! b8fd0a2f8651f16d1ce8874c6bc5ebf7  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc
! f5945a3f0fd4874a8364be985f324ab2  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc
! 944f5e7dcb8c46339acffb9c14672ccd  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc
! 3ed750e3193dfe9084c38a1dec70738b  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc
! 98122cb75a987259813931f90e9a62d3  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc
! 91d88f768ef91dea7b236ce8ca1ac22c  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc
! d5d747833d875a2bdc0a8d0738606dc0  libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc
! 4cbd9627f54ffb06dec30b2690e799e8  libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
! 350ff667975e499e697810cf9aeb10f0  libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc
! 8c49b150721065da8b33f7c3067aa4c0  libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc
! fc255ad8343bb896830d474560fe1aa3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc
! cca8744cf35b34b8150f880ac0d715b4  libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc
! 02296250bea83d3db0f730fcde2d98c3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc
! e2722ab32bba06f168c1f3f5c3e4aceb  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
! 740712ffb4743cf2c06b125f3c88e0b1  libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc
! 7d5ea3d2feef7321599d16958f1e631a  libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc
! f7a92a1c02e0bba26cf97d25c1ab1037  libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc
! 4bc10b472312cb675aff125e6ee9ac03  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
! 6cb4a1245ca66231a283d2eb72fa4f97  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc
! 091cc24e72113750bfaa6a6dc0b021d3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc.cc
! 3827f72619f0338757a751d2f0040566  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc_min.cc
! f80591525b801339925ea4d3f257ced8  libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc
! 3c2badd37fa4c6e08045ccddb0b8f4e7  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc
! bee83ec82f47bb1be9144b1aac09af64  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc
! bd46630a9f32a8c2975d7d0c9b15dbed  libstdc++-v3/testsuite/20_util/shared_ptr/cons/constexpr.cc
! 0067c07a226c605cbf51bca998174a27  libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc
! 133300b478c870452db3bf554cfbbdd4  libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc
! 64096c8e105a0d63178bd08d419a1359  libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc
! 4f455829d9b28a486dbb810ad1818db6  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc
  23dbae4c540e8990b44404c82f23bc80  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc
! 76c04edd3519b29f52319c22b541b6a6  libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc
! 072402e5ec83ebe0764f5e6c708ec09c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc
! e15ab94015434e40ec7656dbc1d64aaa  libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc
! a43beb56f59653174d3ab89a358ceb54  libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc
! 1d8e7490fba3dbc7a4bded7d13396a49  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc
! 6d38e72be2fd22b33fcd256863353cec  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc
! 2c0f0b15d6f747d031b9b9c87b4fbf4c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc
! ccef1fc4376079ff2a6ae818173194a3  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc
! 2137ee4e169f8777d334e7eeb2950a2b  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc
! f97e4cd1e38c79ca90cafbadfd872a70  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc
! f4f53549ced17f2cec982721ee6d70e1  libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc
! 41c835f5b4d623036f2ef9d6aad9baff  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc
! 8b9b48896078186e693060a55f2ffc2c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc
! fa8c288672095a3796cf0810b88b6fef  libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc
! 637e230e4f31ccd64bd957512f0b2978  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc
! 4af18cbe7b24d170de4c539fc0a9d1c9  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc
! 283e38cdb9b7afdc21fb353793959c16  libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc
! c848410c9b4e3da10603cf10316aa0c7  libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc
  81f7fb60e4aacbe92da9a1eab6fd4f82  libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc
! 8d7862519b839c2932719acd5d3c3ba7  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc.cc
! f87b665422100e02b26935a13a6d6f3d  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc_min.cc
! 404e20ed4771707f76a3b3d269fa453a  libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc
! faba610dbe8a8da981242ff2d566d631  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc
! a3142e663fb8a3a2074a10540a65c896  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc
! 41e4ebaeb04ea6548e6af8064b98508f  libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc
! ef6c2838698a15ffb8035297c3553a1c  libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc
! 26903b42fbcdb2e18b2f10007122a450  libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc
! 6c83efce7c5ae794ca6c80fe5f139a05  libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc
! efbea56767359ec8d52d9474724ee03f  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc
! b97378eab1a8ee0d46b0e388d6201746  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc
! 98eeeb9df65778568c9dfbdc6dcf1713  libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc
! e01bc358bf8cfdcec270e48bac448fb0  libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc
! 14d2d1117ff112fe0637058f78c2eeb8  libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc
! 739ec86c795451e739a22329b2259738  libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc
! b9e2d3e145c26a7e22077a3b54bcd58d  libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc
! b0988cbaf968b536612eec6aa5b1282a  libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc
! 3ad0edb9e5fb912631074349fe3aafa4  libstdc++-v3/testsuite/20_util/shared_ptr/misc/io.cc
! d4c48bf82a4442a4c79eb32296ead7c8  libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc
! c91953e8fc313aceb300bd76662d81e3  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/24805.cc
! 205eaea93cb17abe2ec5bd918ab6e331  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc
! 0c3722fc47143cea16c6d48cc10c85d8  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc
! 35d09d4b6d15507479c967ea035535d7  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc
! 4795d4ac5d9a3d2b75ec3d4cd9ec8f6f  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc
! 7c81ab0389436f8a9574ecd9a84d3acd  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc
! b4823b92b3803b0ff87322103d60a98b  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc
! 6243ad11f3d8848b9ae850d42316a08b  libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc
! 301cb21186c7bf3af8f29db2f4e978db  libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc
! c4040ddafb4996fabd1901d7d8e72765  libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc
! 6ff8d87d5d3d085604975998a212f74f  libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc
! ea203dcee9ac7166ecba4c58a326cc7c  libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc
! 5594e19e9b158e97426d6089840fa1cc  libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc
! 4bf456010b41da55e3097acd3283eca6  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc
! 139de8c288b3d1231ea2273f5d6ab169  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc
! f29912cc6495bc9bb56ab937962df84b  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc
! 4754d67920d7fbb9d5a6ba6a9605e8fb  libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
! dd16dd3fdc39e584c2c4a70618085d59  libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
! 106a32d2ad06ba7e04446290e6e7f969  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/1.cc
! 9550a34a49f76d4f65809d5bdecb8f24  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/2.cc
! 28208b70b1a0fd268c87a39c74ede57f  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc
! 7be62c587618447f2cf8f4e48bdbaa2f  libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc
! cd717663f0d3445596231c41fa91ea08  libstdc++-v3/testsuite/20_util/smartptr.adapt/out_ptr/1.cc
! 45bcdf4bf1aef83cabaea992d953a3a0  libstdc++-v3/testsuite/20_util/smartptr.adapt/out_ptr/2.cc
! b01430f482e2a4603171e5e1c4a8d3fb  libstdc++-v3/testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc
! 065522370780e0a3f44efe105f40218e  libstdc++-v3/testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc
! d3d5d50fc5b7244958b52fef6db43877  libstdc++-v3/testsuite/20_util/smartptr.adapt/version.cc
! e3f61f582ecf58daf9067b80d518c249  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc
! 463555f11aefff439c86d765f646969d  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc
! 0fec65974cb6f5812af2edc743e20e00  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
! de351e8d21347f48b3c1745ab1d1164d  libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
! 122fcdc0346fb41ec738602d721a1126  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
! 44738eac1a7caa467741f819e5770e42  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc
! c4cb80eeb9e22fd9ca3df8d210abb00b  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc
! 806a4d85a82c14d68ce64ea6a7245ab7  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc
! 50a11c290676b6f106cb647a502e64ac  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc
! 3d39b28f6c965fdee09cf96342586f75  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc
  efb0b570168ffe84d6e2f37ece809386  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc
! 951db5f8f312749e333a55533d8a78b3  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/58982.cc
! d6cbfcc9f2068716bbd18161f27cff23  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc
! b7b16db3326462eb0f4df55ba7fc3b26  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc
! c787cbbf3f2ec5367257506e78caed07  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
! 33a70bb1c127f7b71726cfd1970dcc47  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc
! 7bc502b1061a9ffdfab93fbbd8a9e7d7  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc
! 8d454bfef983ceb99520a95bbb5a5aea  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/move_iterators/1.cc
  9b3e4f319f44ee77ea0c657fdf58b9fc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc
! da90a64a0e3c414ea6b31e0ef72183f8  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/58982.cc
! 2222c4da6f1a9aac1b44d8162c2e541b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/89164.cc
! f80eeebc45db1de9fc2691fc9f4c8803  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/move_iterators/1.cc
! 7848e99e7df740650a17e15c3b40b233  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc
! 1d0c17e1cdfc6c0f08bb2f1e4cb62091  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc
! adc9bb3fb8eab2ac44b6a4a762a796bb  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc
! bb5f284f232f9374d3a87aaf8642858a  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc
  b3a76cdacc3eabc45c217e3d5a8738a6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc
! 303d31124d274182d26150ae877a7db5  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc
! 8b6da4a73a45dea64304e9e6b30f8aae  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/58982.cc
! eab87ac4047c1930bdb8992fe03397e2  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc
! 8e81c9969fae85c10da1b8614c7d0336  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc
! 038ccf0ce134793feed3879def680a8e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc
  2b8079d02ae431daa7c5a8e3743eb7a6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc
! 1a0da1561011f9eb9e0b0d88eee7f077  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/16505.cc
! 11c877cae02d21505c170ab68fc5f4f4  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/58982.cc
! 93f82d487ea44d06b817e2e2a0fc1bac  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/89164.cc
! d51501b3f1c953bf07451e37f647dd89  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc
! 126d82242ad1f882be5d3c516a5ceb49  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/dr1339.cc
! 6f72d66b8b03622bc6f836e3c7b21449  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc
! 53cc6e069c73ca1d29ab7ccb09cda50b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
! 8cd519b4cccf16154eb892cd8985f7bc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc
! af272d624589bd0cea4be7993057018e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc
! 1db0d2b929cddb30cbf502122f80ede6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc
! 74d5a6acdfccbcb7ae9ef6668edf9505  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc
! f6bd7c6a0c64d34b4e17ebe0a952a3fb  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc
! c76dd58eb12d4adce24d74cfb072fc19  libstdc++-v3/testsuite/20_util/steady_clock/constexpr_data.cc
! e24c511998a94418031de4297b1760d0  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
! dc6c6bff46ec2e1289afb29019038359  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
! 53f638a23baba221761db8a79d46a114  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
! 796e06637b42a7d4e074b70dd4a47f2f  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc
! 2480a9a5780670157df24057e09cc91b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc
! 3fdfc2395fda8f5f72db43a26d8308e7  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc
! 98de6007ed64d73448a2ec0cba7cde6b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc
! 7ce526c9a6256391f9ec83573d350595  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
! 6ff439348720463d3ddb23e39d28f26b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
! 35fae0105c98e525d2fe63303daabde9  libstdc++-v3/testsuite/20_util/system_clock/1.cc
! a8b7dcc1b90032b42d3873d82d9de20e  libstdc++-v3/testsuite/20_util/system_clock/constexpr_data.cc
! 90153d938750542f30eaa47de22d7e0b  libstdc++-v3/testsuite/20_util/temporary_buffer.cc
! 0026f2cc7274967cf0c76d743235a395  libstdc++-v3/testsuite/20_util/time_point/1.cc
! fb5e62a037ae88ffc9ae9f88e68f8212  libstdc++-v3/testsuite/20_util/time_point/2.cc
! 89f563c6b4ae03bc29ad777291612797  libstdc++-v3/testsuite/20_util/time_point/3.cc
! fd31f7127ae14776a8f4d039997a5218  libstdc++-v3/testsuite/20_util/time_point/4.cc
! 8c4e37594858b5c40e5b96b09a2fb798  libstdc++-v3/testsuite/20_util/time_point/arithmetic/constexpr.cc
! 3b0d9e92abebdbc6fa5da07433a134ef  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/constexpr.cc
! 645ec4070b68a323e198fe20c4c1a7c8  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc
! d0d7a276723847bae668d385b79412fc  libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc
! d593b8e5914b2469512767fe07cf2576  libstdc++-v3/testsuite/20_util/time_point/cons/constexpr.cc
! b28e318ae51fb7ddd597c055c350b1da  libstdc++-v3/testsuite/20_util/time_point/nonmember/constexpr.cc
! 7627343a1064e5e7fcbba21bcb671fa8  libstdc++-v3/testsuite/20_util/time_point/requirements/constexpr_functions.cc
! 68f908e2ea3ac3a0636a05eb35cd35d4  libstdc++-v3/testsuite/20_util/time_point/requirements/duration_neg.cc
! 69c4085028859d6ff3e82edce23e61a2  libstdc++-v3/testsuite/20_util/time_point/requirements/explicit_instantiation.cc
! f6867babeb5aba0b5cbd7d1d1f0b28f8  libstdc++-v3/testsuite/20_util/time_point/requirements/noexcept.cc
! 6e892fda1ec5e66353971a2a03fbd137  libstdc++-v3/testsuite/20_util/time_point_cast/constexpr.cc
! 91b1d5637864d28dab8f596fc9919926  libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc
! 58cf3866bfbbead9b9c5a0b025711277  libstdc++-v3/testsuite/20_util/to_address/1.cc
! 6e0d3af0dc5eb62ce947d77fd5025bd7  libstdc++-v3/testsuite/20_util/to_address/1_neg.cc
! b2af388fb471efdad1c978efd8e8bda3  libstdc++-v3/testsuite/20_util/to_address/debug.cc
! 29603a4268440d346dba99e438f03306  libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc
! 889f9853e28cad1bfbc002c317128381  libstdc++-v3/testsuite/20_util/to_chars/1.cc
  cf4f3947ea6ae8a691cad8b85ffb82b7  libstdc++-v3/testsuite/20_util/to_chars/103955.cc
! d8d2f069539a7c4517f1dc9e73b0a66c  libstdc++-v3/testsuite/20_util/to_chars/2.cc
! bab68a3e8b76da21ea36105d91baac3a  libstdc++-v3/testsuite/20_util/to_chars/3.cc
! 5890b6cefcbe1662fbd69aa7c63c46b3  libstdc++-v3/testsuite/20_util/to_chars/4.cc
! 5ad5a6f75c385a1852638745a33ab85e  libstdc++-v3/testsuite/20_util/to_chars/95851.cc
! 7d9df524e1a637cdbed06c275211bb6b  libstdc++-v3/testsuite/20_util/to_chars/chars_format.cc
! 0b7b3ab51e86b9e6ca1cdfdfac9a0431  libstdc++-v3/testsuite/20_util/to_chars/compare.cc
! 23d208ed5b68f4c9b549bc14fe374bd4  libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc
! c72624e57107b29f1eb13c16eb2177c2  libstdc++-v3/testsuite/20_util/to_chars/double.cc
  77b9817d9f7a5e3dca39a0a2eea53935  libstdc++-v3/testsuite/20_util/to_chars/float.cc
! ff523278899f7b06bafd02f8753bb116  libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
! 8682cbcbc1df9781451ac3cefc3f90b4  libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc
! a1c08399f76c7cc93a26456bfe1fddac  libstdc++-v3/testsuite/20_util/to_chars/long_double.cc
! 92da145c5f763fdcad49c232442187fc  libstdc++-v3/testsuite/20_util/to_chars/lwg3266.cc
! 4a952b40ae20bd32cf756ecd867d2279  libstdc++-v3/testsuite/20_util/to_chars/requirements.cc
! 1757dd414b89995c49a363c2491b4a9f  libstdc++-v3/testsuite/20_util/to_chars/result.cc
! d8a79bd3dfe3ece682e5892540d13aab  libstdc++-v3/testsuite/20_util/to_chars/version.cc
! fd2aca83407ecbb3f8d9ca6ad10e86aa  libstdc++-v3/testsuite/20_util/to_underlying/1.cc
! 5835208ec32d0e06cde1cde7c788014f  libstdc++-v3/testsuite/20_util/to_underlying/version.cc
! 38718c72886d2578830a7fa55464f7ea  libstdc++-v3/testsuite/20_util/tuple/48476.cc
! 132e2e7cf5d6b27e82dbe245d25ee901  libstdc++-v3/testsuite/20_util/tuple/51365.cc
! f2e22036793b23027bcfc50290f475f9  libstdc++-v3/testsuite/20_util/tuple/53648.cc
! ee02c4448f967f95673cf3a4edcdbf36  libstdc++-v3/testsuite/20_util/tuple/56785.cc
! a9a675ba4d485391f31ea99aefe34471  libstdc++-v3/testsuite/20_util/tuple/60497.cc
! c6aae63ba5139907982ade07fd4cb757  libstdc++-v3/testsuite/20_util/tuple/61947.cc
! 44bb86b453a9ffb8b7fe480d9a7d25a1  libstdc++-v3/testsuite/20_util/tuple/67844.cc
! eaf02c833452122b40572b3aaea6a4d1  libstdc++-v3/testsuite/20_util/tuple/77395.cc
! 97972dbe82e44ab2d9bd309a3ebb8ea9  libstdc++-v3/testsuite/20_util/tuple/77802.cc
! 056802e359c4f769886c91b86c60d600  libstdc++-v3/testsuite/20_util/tuple/78939.cc
! 68d0f406f54b71b4a1bd8fe3fd10927e  libstdc++-v3/testsuite/20_util/tuple/apply/1.cc
! 4b0acfbf1e7bc2ff9fed9e03f022492c  libstdc++-v3/testsuite/20_util/tuple/apply/2.cc
! 765f19d6da84d511982458202946ffa4  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/35480_neg.cc
! aa091cca29098d0130e75ee4dd1a5940  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/93147.cc
! 7ce8fb36220e79f3b3b5ab1c45b7fc8e  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc
! fc7755a4435e2b99fc4fc5cd1eefff3c  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc
! a4d8ad071879c6906f7fce75376fd7f9  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc
! 0add5fa1418861677cddddbcd8e7629c  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded2.cc
! 4aefe6875ff437786795c4669068d3d8  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc
  d23b1a747046dfeaadefce18d2c02b12  libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc
! 187ef5eb9d79f3cb6e7970796ffabd33  libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
! 9a6dc1f9548e126de2581231c632a19f  libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc
! 663ba20c45ee2bbf63a3146a5cac0f23  libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
! 783384ae9c6ca19657a9c90778e7fc96  libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc
! 034dacfd01ba7e63192ee47bc865c854  libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc
! 55bb66127091d8e2a80653ccc417e4e1  libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc
! 358690958220131afd4e03540a26412b  libstdc++-v3/testsuite/20_util/tuple/cons/66338.cc
! 845506c2e18951a9b1d9ebae0636f3a6  libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc
! 635f791b82cc0bb384095f8f64b72868  libstdc++-v3/testsuite/20_util/tuple/cons/96592.cc
! 055b034b6d9040fbd7f95ad4f4752544  libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc
! 87c82682ff9ee8b8097d2e309795642f  libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc
! be0fe4bb2ba543f85cd364179bedd9a6  libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc
! 19afecf41ef712542e97f355f0131504  libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc
! a49161313da5dd77d19f2d9b12be686e  libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc
! 0309fd1dbae3b4fc0ab2dcf0fdbd8274  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc
! 23faf3e30fddcf47aaafc5a1983578e2  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-3.cc
! 5667d7964dfa2ca1cb7fcd92b8d0569b  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc
! 74a3086ea01614213536db7d36e410ad  libstdc++-v3/testsuite/20_util/tuple/cons/constructor.cc
! 9f750fa1c66e40c5dc886e3cca2d76d4  libstdc++-v3/testsuite/20_util/tuple/cons/converting.cc
! a727a427e5ba3447cd12bda06587cd1d  libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc
! 43055756d0d1bb6e12c481bedb6c32e9  libstdc++-v3/testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc
! 91526241de853eb16239ac7a9057ab5a  libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc
! a994f69d62d24d37fd1139e826f291c1  libstdc++-v3/testsuite/20_util/tuple/cons/nested_tuple_construct.cc
! a9f3318a29980a65dabd86473fd32004  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_move_construct.cc
! b888b82c2ce9e079be78cd033077cb2b  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc
! adfddbfc258f282829ea80455dc45ee6  libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc
! 455a68cf5af395416d104cc7b8f284e4  libstdc++-v3/testsuite/20_util/tuple/creation_functions/23978.cc
! 1351cf31665d18a58d1f31ba6be38399  libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc
! e733f9c9b1837bdf9ab11b918dd614cf  libstdc++-v3/testsuite/20_util/tuple/creation_functions/55713.cc
! 6d3fd3ef05585cb7a74497f1d77cff20  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr.cc
! 83a4dfd4ad7b3c773feb41d6f99735f0  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc
! 4cfd9d483d6ca5a90798949dda94eba3  libstdc++-v3/testsuite/20_util/tuple/creation_functions/forward_as_tuple.cc
! e5dd06821bee182f8476de0cc5b911ac  libstdc++-v3/testsuite/20_util/tuple/creation_functions/make_tuple.cc
! a10a8c68b01af10dbe58adf5738c1223  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie.cc
! e7e1031e1282cda9f13e7842cb73ebf8  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie2.cc
! 9449138c9e052c587c6bc20c4cb08831  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tuple_cat.cc
! de00d1be0a7203f7e2c4879a1f02d2d4  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_element.cc
! fa7b72a751b7125a656bb24e49cc9100  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size.cc
! ac6278994e54bb6ed7197664939c4ef2  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size_neg.cc
! b90e13e5569b2ce1c794e6d8589a3511  libstdc++-v3/testsuite/20_util/tuple/dangling_ref.cc
! 3af3a6d380bac34679976f94da3d6c97  libstdc++-v3/testsuite/20_util/tuple/dr2729.cc
  5c4d5220d3eb9f735e8817b5ea562b55  libstdc++-v3/testsuite/20_util/tuple/element_access/101427.cc
! 5402e39ed15d2e56b32d1b009432ca4b  libstdc++-v3/testsuite/20_util/tuple/element_access/71096.cc
! e8a26b310f3d04b4db7b452813c93570  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get.cc
! c2fadff29b8c841535ee787cd7c6fcef  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get_by_type.cc
! 681c612d7652c4234aba7d73aec3c5a6  libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc
! 50d1e86104517d02d814ccd2269272b6  libstdc++-v3/testsuite/20_util/tuple/element_access/get2.cc
! 9080e7a26e50d960459c04b3d69ab109  libstdc++-v3/testsuite/20_util/tuple/element_access/get2_by_type.cc
! e5ce41f80b3d7ae75452f5205136b902  libstdc++-v3/testsuite/20_util/tuple/element_access/get_by_type.cc
! d75c733fa96f3c1979ed826e1db96904  libstdc++-v3/testsuite/20_util/tuple/element_access/get_neg.cc
! 37c74c0a9c7dd4ee0fe1eadbf134bcee  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc
! ba23f1fc2e6ea79282f070162d97e156  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/2.cc
  32b91df88869bacd821f449c4ff9ea1c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc
  5f205a0115c4b3b8b249446d156f2d7c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/tuple_like.cc
! 9a41bf8a625c07ad93b31a834a1b5418  libstdc++-v3/testsuite/20_util/tuple/moveable.cc
! 6aee9edaed2f490062ec0f8e901cdfc5  libstdc++-v3/testsuite/20_util/tuple/moveable2.cc
! ffc0e79f009afbb58b2fff4bef8d2a69  libstdc++-v3/testsuite/20_util/tuple/noexcept_move_assign.cc
! d7524e0a167af945ac1c6ae1d6f529a9  libstdc++-v3/testsuite/20_util/tuple/noexcept_swap.cc
! c7189ba7b664b74191b9f4e28b5c9940  libstdc++-v3/testsuite/20_util/tuple/p2165r4.cc
! 4400d6ca0a17478edfaf976996b94876  libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc
! e8fa5b3db225ca76d2c4691a837d383a  libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc
! 43befa2342df9c97d37d36bfc5fc5c51  libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc
! ed99510af8eedb1219414932a693a4ff  libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc
! 2c4e76f4352a1b5f2c29ac4327b7a21b  libstdc++-v3/testsuite/20_util/tuple/swap.cc
! 237e87a5178ce2b9aa89b313d2d6ccb4  libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc
! a6caaf5d20261361ad44ac2ad3d0691e  libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
! 0b689c964de583e9beaa6189445fc7a4  libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc
! 7cf16a87462c05071ee9f91e8c9213b7  libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc
! 119bdf4a1f25c79241208ce7b0f130b5  libstdc++-v3/testsuite/20_util/tuple/tuple_size_v.cc
! 30751bc98d6322cbfacccf1a3a3f76e9  libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc
! 81e83b5a9aa1dd558a26f3a10421f91d  libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc
! 5c1f9934cd4d4e435485b715370a529f  libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc
! 8e2707f4ad537e8d460c878f72908350  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators.cc
! 36ad50334b4ee9d6b118883a50d512d1  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc
! 894e32f4f0b59f3016754e6aa6c365a8  libstdc++-v3/testsuite/20_util/typeindex/hash.cc
! a03674886fd438ef2365a340ffdb8f09  libstdc++-v3/testsuite/20_util/typeindex/hash_code.cc
! 4a2fe6758ad7408e3e145bab940f1136  libstdc++-v3/testsuite/20_util/typeindex/name.cc
! e99ee02aef6db01dc327c93315595b7b  libstdc++-v3/testsuite/20_util/underlying_type/requirements/alias_decl.cc
! b53ed0233c25aeed95f490e70b6c4418  libstdc++-v3/testsuite/20_util/underlying_type/requirements/explicit_instantiation.cc
! 41f91fa7972f40c9b94c820afeeb3f19  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-1.cc
! ea00ef243c02bc6c728b584b5f474955  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc
! e8ff3c3d3148e660a8f6822b29dd75be  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-3.cc
  270e7f9293f9dc29e06013f0194d2249  libstdc++-v3/testsuite/20_util/unique_ptr/101236.cc
! c56a7221674b57d1da3290d72f141b7e  libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc
! f6ed073440b50d410adf3f6c89deda6f  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc
! ff45517036fbb19cd1e22f5c78f00811  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
! 8192f1706d48d7259e2fe765c63c9e09  libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc
! 14ab92e80f72d0e23201fee32cde5ea2  libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
! 97249a3e9b0a47e876b2dabfd66182d4  libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc
! 3b6b213de148b891228e238898a85a03  libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
! 7424b9b0a8be4c765a7597db8b20337e  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc
! 00c0ee3cd028a21a6abc15676bab80c7  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move_array.cc
! 0a5e212c93cbfb441bf3c4da4b5644b8  libstdc++-v3/testsuite/20_util/unique_ptr/assign/nullptr.cc
! f91230e60402db36e35471f06753de4d  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/42925.cc
! 3417a67753ae6dbc06d4ae97e2cb0c7e  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare.cc
! d97afbb4595881f1d136425a8b966417  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc
! 159e8f797a9e0b16b7daedccc9cc3e7a  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc
! 96e8a401e2c830ccd876f5ccd294b35a  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/dr1401.cc
! 5f3f182f47a2ace88e1e4a54f63313fc  libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
! cd2b4d2e3859d8525e8f29f7ddd21eb4  libstdc++-v3/testsuite/20_util/unique_ptr/cons/array_convertible_neg.cc
! 6e45b60507adad36872a6573b539d14d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr.cc
! cf8177198daaffadf670fd5d67d50e24  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc
! 88d71a894c3b3690bb93b5fbbd0b3691  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc
! b476290d7a7cd33dbf90702dda410872  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc
! 4800a2324a78a8783a1dd4e4d4185ef0  libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc
! 936cd9d0dba0e388c3cdf9d16e6e7ab5  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc
! d1dff6f2ef8c01615e2383674ec6a5f6  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
! 7cec8a60cea6c71daaf6ab30c1f6c07d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc
! e38451bb281d866e9310f0ad46862b16  libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc
! acfd51ce36d5d84c7d04d3eb2c296493  libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc
! 42930c248ab5d88581f5b308806a1c04  libstdc++-v3/testsuite/20_util/unique_ptr/cons/lwg2905.cc
! 0edc2bb32c38c40ead9bc7ba056fb26b  libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc
! e33dd8bc56b978820598ab8c593a367b  libstdc++-v3/testsuite/20_util/unique_ptr/cons/nullptr.cc
! e1dc508ed510292b94841144b9766b7e  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer.cc
! 602fa8c56256d1ac99ac6e32e1255e67  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array.cc
! 6ffdaeac4979c8e31274b192f5970368  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc
! 1da2cb26c66024db0bc6591a3508f15e  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter.cc
! 437ad32fc85c48399c58f1fd63a8b294  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc
! 4aad379915fa0e3292df83de0876f1de  libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc
! f05ad4d48fb107b4c5b82e0dfb7fce9a  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc
! 072464a8a1fbcfbd871c2ff50880852c  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc
! 582ddb2143f3eb8853e9a8c84aa99a59  libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc
! 72269fee9604ace19633305ade1424ae  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
! f1869b7e151e31d15dd5807df2ccb809  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc
! 64f2365f48fb3acdc1e725fa5023756f  libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc
! 2a251d38f66988129f26a621a81b7ba1  libstdc++-v3/testsuite/20_util/unique_ptr/dr2228.cc
! c5c41f8e7dab99c170cd167972963f81  libstdc++-v3/testsuite/20_util/unique_ptr/dr2899.cc
! 91d78938dbd6314810d7e97a76cb82a7  libstdc++-v3/testsuite/20_util/unique_ptr/hash/1.cc
! ea32adcd755e3e5015910e5fa249b04f  libstdc++-v3/testsuite/20_util/unique_ptr/hash/90388.cc
! 281ae0f377799255cc0fcb1962a9604a  libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
  bb40414adb587ca6cdd1ffd17960c9e2  libstdc++-v3/testsuite/20_util/unique_ptr/lwg2762.cc
! 55628c39e73148ee6b15e0891b42b2ae  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/43183.cc
! da4557af0997e21e129121a971cffa40  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc
! f855591858218dc88355760ebc4885ce  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc
! 5e50545281dc7c1b91f14ab2c0f11bc6  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
! b9b4c8473926fd30d8b3daf10dc5b23b  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/cv_qual.cc
! 1322c8f0e59c39f1bc812623267d853c  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
! 93c7f76ec444571cc40ddd545dcae394  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc
! 09bb8fd7c17e9a8615d75aeced192e14  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/incomplete.cc
! cc6d55eb49c9a110b862ae24c12af4f7  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc
! d99dbc84e59a4681b7eae8ec262256f8  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type_array.cc
! 78ad159dea99abce3ba0e5f6954ddeaa  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons.cc
! 5b31ec34dd8b987dc630fa855e7b89ec  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons_array.cc
! 9e8690fc2de02bbc9080d442b7647cb8  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc
! c8a7e1418906450a87ab25022a8ce3a4  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc
! f8f82d94f3bba2535a3585beac627154  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc
! b752f343c2b8407affea1923b7fdbc6b  libstdc++-v3/testsuite/20_util/unreachable/1.cc
! f47805823c079035961580cdb36d1e63  libstdc++-v3/testsuite/20_util/unreachable/version.cc
! d283339a007e8306689113b6a5c93fad  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc
! ef0994168e310cd0acc3cd45c7502d36  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
! 68e6068da6f699dde076e3143dad3821  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc
! cb43203583888b7c1969b1de11ea86f1  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc
! fccb32892ce692a414f7c77f0a37f3d8  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc
! 7fcc45845a1d3ed5ee28762a01202ca5  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/release.cc
! a87af230ebdf1d8450b2051acbebab59  libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc
! c69c0c463011f9b4ceb1da46f271591b  libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc
! 9fd225672ad5651b8600df6c615fd7e0  libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc
! 0106c5fc26e0f5f763d59829da9e2750  libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc
! 5907ffb6ec4a20e45cfaa5d3b20aeb27  libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
! e9db62a19ed20612dac8ad801a04a56a  libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
! 2a0591a63ae950083a44bcb898286dad  libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
! 5c93115c00e4bf86b32e8ce1c334e79c  libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc
! cebc96b73422fa65854df12a733a6bd4  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
! cf03e866a34ae9811ca29a9fdf5472f3  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc
! b4a0f40790c7f1a4c94eae689dab86c7  libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
! 9081e751d3484ced2e85c31e49965944  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc
! 903a83d078107a9460d516e1978d65c7  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc
! 5af488effaaf427292b890ff0ece1fb6  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc
! 696874efad5e42cc8d20940428caca19  libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
! 369da6a70dd9482135c224f6080bbe0e  libstdc++-v3/testsuite/20_util/uses_allocator/value.cc
! c9bf8a99e70d8bf5cf246fb27890a564  libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
  b9698b5e78dcefad507d6737875a6a1d  libstdc++-v3/testsuite/20_util/variant/100384.cc
  5ef3d7df10dd90d995e4c63bc62c39de  libstdc++-v3/testsuite/20_util/variant/102912.cc
  909e769606f79e2311fe65f425279584  libstdc++-v3/testsuite/20_util/variant/80165.cc
! 7292f7fadacc262ccf2f3fecd6c95218  libstdc++-v3/testsuite/20_util/variant/85183.cc
! 7b3c960332024666588f3253470ccb03  libstdc++-v3/testsuite/20_util/variant/86874.cc
! fe8b5f315898288d07ad098cb5052f85  libstdc++-v3/testsuite/20_util/variant/87431.cc
! fde96936bae4edf01e06264c16c6f085  libstdc++-v3/testsuite/20_util/variant/87619.cc
! 5f2e464ba04a64308a6ced6c1b79be79  libstdc++-v3/testsuite/20_util/variant/91807.cc
! 31a91cc7537ee4d6d8f141b67c946373  libstdc++-v3/testsuite/20_util/variant/92878_92947.cc
! 0ceaf2953b50792f3c506e0ee92eaf82  libstdc++-v3/testsuite/20_util/variant/95915.cc
! b6d08e82a1063298d6e602a024656620  libstdc++-v3/testsuite/20_util/variant/any.cc
! 120aac766779a4be993def3ec21da0b6  libstdc++-v3/testsuite/20_util/variant/compile.cc
! e917c228c28a3a18beec5914b0f19474  libstdc++-v3/testsuite/20_util/variant/constexpr.cc
! 150a4e1582dccc18f49e3bbab1985ac3  libstdc++-v3/testsuite/20_util/variant/deduction.cc
! 1fc2162ff0864215d7d9683e80eb2be2  libstdc++-v3/testsuite/20_util/variant/default_ctor.cc
! 8c033624c9cdb6462d59ac061576719d  libstdc++-v3/testsuite/20_util/variant/exception_safety.cc
! d149997837a12454306d9ffde201b421  libstdc++-v3/testsuite/20_util/variant/hash.cc
! 307486e72e58467d2156368d0bfcd3e9  libstdc++-v3/testsuite/20_util/variant/index_type.cc
  e56cd950ff384e81521ce2616669bfa4  libstdc++-v3/testsuite/20_util/variant/lwg3585.cc
! 804a87a49ff4e4a874fbade1ca779e6d  libstdc++-v3/testsuite/20_util/variant/relops/89851.cc
! dd3cbd004c5e2a05726a53db550c960e  libstdc++-v3/testsuite/20_util/variant/relops/90008.cc
! 529e77cf853f67d562a16f83c78953d5  libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
! 24de4e76ea00a4d76571d92e75c5ac76  libstdc++-v3/testsuite/20_util/variant/run.cc
! b482e6581851c371b03755ce99bd22c7  libstdc++-v3/testsuite/20_util/variant/version.cc
! d343ef47785c272de6d0e964435c8e1a  libstdc++-v3/testsuite/20_util/variant/visit.cc
! 17098b13758ee1e3f169c2ee138604aa  libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc
! 59bbad3f9af67f128469b5eca79d7a2c  libstdc++-v3/testsuite/20_util/variant/visit_neg.cc
! 71244e88636896a4c9bddfc6e4b3cf6a  libstdc++-v3/testsuite/20_util/variant/visit_r.cc
! 0edbda0351b20f4a12e6789823db6fc2  libstdc++-v3/testsuite/20_util/void_t/1.cc
! 2a3f4c8a412a038d7981789c996eea5c  libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc
! 92380769454532f1635f1c4e38f45ebd  libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
! 32f2dcca6f19e5a8dba10faf3a330add  libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc
! b35834c4a9da455585d4f464c3ee1034  libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc
! 9e0579f9d0276096f490dae413bcbf88  libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc
  6b897d033cb55ff130e351833c656265  libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc
! 3e5f4fd7115282166271cb4cf0d1416f  libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc
! 188d587f6435fead910a6d57289108ca  libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc
! 5717b53c16c4f11f4ec5f7cbd4b8f680  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc
! 7bf497ba385011f9bbb1d6961bfce3bc  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc
! cafbe413de74a53bbf9c5ba4c1534383  libstdc++-v3/testsuite/21_strings/basic_string/40160.cc
! f4e5079b1eb55de552c9dd9629b3ad1e  libstdc++-v3/testsuite/21_strings/basic_string/56166.cc
! 2c5b669cbae5a33a66d50efede9ad69f  libstdc++-v3/testsuite/21_strings/basic_string/79162.cc
! 7d7d55ce6a65a623740c02ebe44e1d74  libstdc++-v3/testsuite/21_strings/basic_string/allocator/71964.cc
! faac721d320d75339e08da82643a0b5e  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy.cc
! b6b9a0ba9a2ea05cc8b4a02eec7db3aa  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy_assign.cc
! 515c1bfd516025c09340996fd44e0193  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/lwg2788.cc
! 388ea44b496f8f8d470c54ae5a5748bc  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/minimal.cc
! 5a42d95b104179c21e963837e15a48f1  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move.cc
! 88cc54f21ad5794856c58f343be31b7c  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc
! d4fe32ca26162039523da8d443b4a2d7  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/noexcept.cc
! f536015f242008c6d505262cf4b34b04  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/operator_plus.cc
! 46948e4c76b31dd04d75eee98890bf02  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/swap.cc
! 34da7ad392a1bef6e45052672612df3f  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc
! 61db02712c993e3e63e5cb5b25506a60  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc
! 2ca1ad08885d95bb63fb77e00c1ba5ee  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc
! c7349f108c0588cc77cbdf2bfb70c7ac  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc
! 8f865de31ce2c0bf162a39e0186fe75b  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move.cc
! 429aa8af48e298882992a3ab8f48e7a3  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
! edc32cb5bdc319dcc7611638865a433e  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc
! 15958600873a5e26693d96e29a1c975a  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc
! bbb74fdcdb8b744c2e83e14efda4bbea  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc
! b5cb0b4c2ae3356d9239ca25aa2093c1  libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc
! 50499dfb90fb1297446fd6679c1317f8  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
! 6acc3aa112e1c0bb4bf51255ead4e601  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc
! 5e46c3c76cb20b4844d2133b5740ec10  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/2.cc
! e5836542231b7ec7b12a157aefb23656  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc
! 92fd664564ddcbc3da3f7299d2f4b92f  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc
! 1d283c642545b951b44a9671159e83ea  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc
! 169227b913010ff90efa38f396d64ba6  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
! 56d422860766dc226d93d5655d0f2880  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
! cb998951e97d61695d7e4cf2211a20de  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/2.cc
! bed0e7b14f0ba5d4a1a3873f9941c7f4  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc
! 8a10cdbe83f99b27901257121f038971  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/1.cc
  122070b73ab61f4cd7f3bf7dca05ad4c  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/103919.cc
! 3cee8884d5dd774cb7646b925906f230  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc
! 7a3e71964b48270f9a930d3fd40b5a1a  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/2.cc
! 009cfefc473f1c982d2d2f97698174c0  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/3.cc
! 009502b6c9ce1e53c8864903829064cd  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/4.cc
! f0131dbee066993ddf9e5d21bb9fa299  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc
! 99bf211b86598b21da11f6cea358121b  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/5.cc
! 4b94cf176d40774a7b34ffa1476e6a42  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/6.cc
! 7245d6128c08334f1313056377d08675  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/64657.cc
! f293254924dbbb66b8f940776ff16a28  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/65085.cc
! 43c713fbaa1d3a2da0715a23de7d8f2e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/69092.cc
! 6b1d9f838faf955c3632bbd05b0b3e84  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/7.cc
! c1b2d1c44a4b2034db8a106b4235d649  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/79162.cc
! f27f736cdc834a1dfbdcc4617d795ae1  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc
! 2f180db9a1f3984a1088dd01f1d66599  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc
! 373cd6c6b4849118186c4b9947c4f43b  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc
! cb9791fc25754e1c39b72501940f5e6e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc
! 4901d31aecf7a00a4ecec92aa5e2a14f  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc
! 560b1dc27dff97b9894f125f6808d768  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
! 2312151ad0bcd4f5b1784f5fecc441d9  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
! 01c4b9526fc7200c22f858a109b81280  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
! 7d434e72f310d82ffbf058525286266d  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc
  ca9ae628b034a9ec99cd3e60951cfecc  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/nullptr.cc
! 7f311a4311cf10e44324a7842d547ec3  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
! 6a222702668b9c345e3fc59ec327bd30  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/1.cc
! 09f3019be27bf9ff91ca74d229ba30c7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/2.cc
! e2433e8ca2c0fd08d5479a4a135cb69f  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/3.cc
! cfa7719350f1985fee157fe89ebeb730  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/4.cc
! 26841414e0bc1f183c923d5db7fee6de  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc
! f798b3b571d61de70e80f98c23efc3d9  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/5.cc
! 5326d5f3f7f94e5e4bf6818703a06a1d  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/6.cc
! fd78eaeac48ed85cfb6cce283606a743  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/7.cc
! c1b2d1c44a4b2034db8a106b4235d649  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/79162.cc
! e6b79cfb3f5bcee20680c2cc68c5d936  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc
! 8a3549e59632f485bd3c454e255b7a52  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc
! 571c17c97aa79074920aea3c1b1b0e07  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/9.cc
! e316abf8f7c3a7d57083ebd0294d09c7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc
! 07cd8f16fcc5894f0f9e8c101570bdd6  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc
! 8e62d666908104974a07707c767726ba  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
! 34d06c8d965b1bd69f8ecb0ed673a41e  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
! 33350e47c1f7229490a4547647273bb7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
! 4bc5e634d7530715442d08b77037f4c7  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc
! 2fd4a9d89bbb71ae31593a2a76f0c968  libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
! b93704befaa0c2fcf33c9c6724827f90  libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
! 654c0f6326f518cd673f1ab24b734aca  libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc
! ce7959ea0ff764ba01218e7d329f465d  libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc
! 184c8247f1e779917757a6dd026e2ad7  libstdc++-v3/testsuite/21_strings/basic_string/dr2268.cc
! 8f0d3b7ad5dbc5debb108c3276885de7  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/1.cc
! e4c1befafa078d8b66d3f73560d8b4aa  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/2.cc
! 1124ae695a47bc51af59af182960aaee  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
! f40653b82145e0ad42b70852e633f722  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/3.cc
! e7e1528c8db3d594880d3f101f4ae447  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/4.cc
! 75ec2e5c289cf7326673c6cd37275c4e  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/58163.cc
! 30b36e43490faf04ea6b25b40ab0f2e1  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/empty.cc
! 43bec994a39f7e5aa7bfa9a62798e9b7  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/front_back.cc
! 66a9266e06b6a9290e357ed5177efd6d  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/1.cc
! f53e3a596f65183a20e3b25d9fd702bd  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/2.cc
! 1c29bf49592af6c79e55be303d1dbde8  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
! 55a576fbe0519e7a51661ec8c3df08f0  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/3.cc
! 01f3df8d38fc3591b682373f00f4b08b  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/4.cc
! 6d45ceab0f3756c06dad2994649e498e  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc
! a2fa6ab7224c795a91bbf2bb697ee6bd  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc
! 16810527abb11f90d5b013fdaab57f14  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/front_back.cc
! 72c1c52a7ffb655d95146c8d20090369  libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc
! 7f79f090e1b0a8ded66c065c21944359  libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc
! f657a054b3d6cb8e2820f49f3f69679b  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash.cc
! 778f6cbb7011c195e2c6e1712c6b9b86  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
! 2ec0d56a96eb2096e8247b3b80379b5f  libstdc++-v3/testsuite/21_strings/basic_string/init-list.cc
! 9790112aa7c792053861e8fc4a54ef5b  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/1.cc
! e1983b3b399e13d46f8598b1aada5de0  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/10.cc
! ef40be2f594d31702322d29f0b9300b6  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/11.cc
! 4476bbadd8d9cc2af07f695a4a12ad73  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/12.cc
! 346b6fe8a5f50b7ba8cce0667390a276  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc
! bcee8414a00292f123d013ee5991b559  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/28277.cc
! 6ceb1fad949f43a7d049bd822abeb18b  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/4.cc
! 773aed5bb47e50b3a57f112001118c42  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/5.cc
! d73d0abdee9fff5ef6b6778993813b39  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/6.cc
! b983fb343396bf2c0edd250d059acf31  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/7.cc
! 3c220aef4960b8066225078daeac0ef8  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/8.cc
! 8ae6f87907c9227f183fd953b801aa75  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/9.cc
! 3bd1587ca9ed7907bcd34e50de982408  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-in.cc
! 2ab945977fe96b7dd174b366296d8b3a  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-out.cc
! 76701f3a3d07c17ef8138acf8f3a5e17  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/1.cc
! 8be257087e8e5108a51a334aff527f18  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc
! 25c5ef69f5611ee417db45f654f698aa  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc
! dd57502167d606214bff6706040e1961  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/12.cc
! 808c4d1f57088224ed2194e7fd1aaedd  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc
! 9aea611b6fdc5ac87fb9a574460cf8ea  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/28277.cc
! 5aec7b8d82154f5dbacea19143d1d1a7  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc
! 51d158552e1ebb1a2032c89129e4af6a  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc
! 0efa59b43efe44a0abb07c3353212ec9  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc
! 6c0437bb517f1cc5b84218081518641a  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc
! 3bdb064bf3e5e72a43f8f478ea518167  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc
! d0fd4c48dc2325fe0371478ce28585bb  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc
! 5b256fb360837928c3a4fae2af348978  libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc
! 8b7f3f98ce4ca681a4d8446c4d8e8fe0  libstdc++-v3/testsuite/21_strings/basic_string/literals/types-char8_t.cc
! 4ef0c635ec268814e3bc6338a6b646dc  libstdc++-v3/testsuite/21_strings/basic_string/literals/types.cc
! 80c94804c3ea0c4d90f46e06c3926fbb  libstdc++-v3/testsuite/21_strings/basic_string/literals/values-char8_t.cc
! b761a39b3f98f635d88fc996ec8d1907  libstdc++-v3/testsuite/21_strings/basic_string/literals/values.cc
! 095662e6889a55c3c1861a1d3963d818  libstdc++-v3/testsuite/21_strings/basic_string/lwg2758.cc
! 182bfcf8b2b67a7c3f7d36f12d5bdbbc  libstdc++-v3/testsuite/21_strings/basic_string/lwg2946.cc
! c0e6751cd04fd55fe2277efe45bc0916  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/64422.cc
! 8f96352340b3af61ea29704b2a332f18  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/1.cc
! c8dcbacdb06966611ac55abbed2dc3ff  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc
! ed4fac13314aa002195cd7f16a7940f4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc
! 9dfff5803845229412404be03294867f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc
! 1a30e7321bdf13350491194693231589  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc
! 294807f7ea6a5966fc73eaf33befa903  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc
! 981016c4f676d414f545d341866f9ce6  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc
! 7ff3739dcc40ef9d2330cfc636a3bc45  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc
! 3d27d472e067078cca784257f6fcb47e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/1.cc
! 9a93399d2a05806151161418154d5413  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/2.cc
! 4bdc0d7afd6fc64df5c114c4cdda817a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc
! a8795ec95d6c7b0b9c2800d727e41ea4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc
! c99cde77a00182c39b31de18f5942aac  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc
! 4e2ab41d3ccf14b0468782a70ee5fb01  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
! c5c834d8093d60b550f80e326879a476  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc
! e96b239734fb69ac47869ad90bd4d39f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc
! 88f9ecb99d7eceb84c6413c2b0c666d9  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc
! 8b1f3e43e138500a143076f95a570335  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc
! 58cf870e38fc716dcedefd4bc4a13abf  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc
! e220a69d94473362abb8229f65b200af  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc
! 0cecebf86aa098aa4bc227f1aeca7e39  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
! c43f0426bdcbebb7552009d252fa0718  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc
! e66e3fb8318e502497062239c82b98d0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc
! 6d18cfe84438ca7628eded6d32714553  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc
! 80589a2994db16e71f9c038f458c24eb  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc
! 09401e806e722480348a23bf6187375a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/2.cc
! 71b58d693223b110d06de8790048efde  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/3.cc
! 442c570a14894146e1e4c32b42b0fd29  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc
! 79019f332e26ebade4ba016b3e314087  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc
! ba47107f9f201196eacff8070e30176f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc
! a23e978e1a054224ce979aaca0c3b58c  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc
! 6d4ab16964cf318122ceb3bc955731ed  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc
! e77f000ba16a7e6e8a9daf57404949c7  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/char.cc
! 509997865807838cb5a6cdf311e0f764  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc
! 33c8aa33f97c64d0c860d57432454064  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/1.cc
! 6871ae135006660b37948305473d03b6  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/2.cc
! ecbb12857f1cf2bdc75d42837cab6dbc  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/3.cc
! f6003fb4eb670f3f390209cba632c45d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/4.cc
! 03c5e2bd24038da56f2a162819e53afb  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/5.cc
! a1c83230791527bf4e111214fe1e12b1  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/6.cc
! fabf7345f70b88c2afbd242ad9b97b14  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/7.cc
! c9c7b2284bede10dc1f2ec8c6a35c1ad  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc
! 5ee136a9dd9fda7acf0c340e56f8881b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc
! d0c05d8f7eb9bd841a433ac92ce34418  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc
! 6c0c62adc137e08c7727db746787967d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc
! 2427ed2c846e37f30142c1e20525f857  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc
! e1816bf48ce15972df44ade7461276bc  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc
! 2f40327c74356f45a6e326a25a45ada2  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc
! 2f6ea0520f0d0f2bd01b39b319539932  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc
! 5bee8e4869f348d2c36517bf3af378f2  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc
! 8e824456d506d7e1247315ccea17cb3d  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc
! 9b007c00f60e871ca4b5731762a3f75e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc
! 501df7f38d1f4817b24297a0826d4367  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc
! 6ee35d70569d143995e250c14e5f82b6  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc
! a8ab4e2372583d3f5cd688f27a558313  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
! d5ea3e71e45701d2706fce66d21ef702  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
! a4fe3bd6672b8e318a809cca0a024bea  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc
! 9a37f22d711e74e7e339b960df569454  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
! 396a5d428e303334596ce95c6820614b  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
! 5569c66cb378ef18e8c6911db9a661bf  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
! a98db4f3330e3cf381217394323adf79  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc
! a18fb67b3cd283797c0270b2dffcd9fd  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc
! b127d7e9aa9b577ec517cec1dd22b8bc  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc
! a6b6a9a6139a9783749ab68361f3c902  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/version.cc
! a69cc6d174c7f2be19743bfd38c8ca0e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc
! 15cb15cfc637b0c276d3d72aeb0e1933  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
! ddc45035f88ad0cfe5b8139671ee57f2  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc
! c316edccb3a86cd00bdc8b6eb19d15bf  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
! 327560d7794aaa35a1bc5979e0458280  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
! f7adbac34a8104a27dd5405c0cf4e39f  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc
! 5e4946a46288d9022148224ecede3179  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
! e3cf80f7ac179fe87114036e2ca07d81  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
! b556aac21d41332929350cfa43c2d400  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
! 37a3fe8449f7948f044f2900e75f7ebb  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc
! fecb5f76794dcb7b16941f3d83836e9e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc
! 182461449a4aca8037e8e00cc0ec7c97  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc
! 1825123cdc2a89da27c870140d19f6df  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc
! 341f66319a26204336b01dcd1f1b1565  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc
  bd5d27b6c1da7f4be96a036ee98cfdc7  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/3.cc
! d892172578ee0d5468b089850bdcf92b  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc
! 5d726f732ddc53dbbef5e882e4bf47a4  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc
! 397affbca97b3f41c20f5554e14b7cfb  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc
! 3f4df1904984cdc6acf7f07255d1cf87  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
! ae24673f13edfb3394be4338e100ab0d  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc
! 38be8793706221c8d56b74c98939c18e  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc
  da3f700a53d22cd029a604673e059e11  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char.cc
  9ccbc06738d22d9f941b8f2b369c7915  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/2.cc
  fabf5d00ed38687c6c74b03d67132fac  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/86169.cc
  ca74682c72cb547cf309e380caad822d  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t.cc
  ebeb1bb794a93823182dc633b65b1594  libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc
! c16d64c9f40d549f37ea55466f7ce85c  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc
! 5c15e736abafad8f6ffb265e32985635  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
! 039d1ea6465ffd9f0b9dc35b7ce713ca  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc
! e2ebaa7bec3234e7feb4b5076eee9748  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/1.cc
! a474292cab45e4315c1719c5d328d657  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/2.cc
! b0b286a5fc006902328de6a7bb843416  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/3.cc
! 268c33723cb1fb447fa35f7a541b6c5f  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/4.cc
! db6f07f7fa81baf946c38330fe93dbb6  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/5.cc
! 3791bd84bbdba96651963ac6ceee1e98  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/6.cc
! 674a08257c1a37c130f65255cfc3e879  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc
! 4157bd21cf02e56dd2a8c04586316cd9  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc
! 35f9491609c467b303ba2abce6757c4f  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc
! ef61aed2ff215f0ef9a968ff31779b54  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc
! db09018ce7680cbc3c148f5ebc1f92e7  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc
! 548ab21557d19c6cca9ea903a9f0972d  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc
! 1412fc3db4b84b2974668a1e0bee32ae  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/1.cc
! 9ad1236b2310f565ec2eeca454acb99f  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/2.cc
! 06601ee91daee8047e846837cc92eb9c  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/3.cc
! 6a4dd274f1d3aa0ed68a16b50a33b72e  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc
! d99f4529266851c7671e66c244b1dc0c  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc
! 7a6ebcd41bfdfb7acbde27fcc08a2aab  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc
! 4735dab6b4bdd5831069e4705de7375f  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc
! 140fe654a2aa08440fc10cc943a5996a  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
! 39c3c1245de10f700d86c742bcde37d7  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc
! c2649aef213d4c8a8b77fbb90a93a0e5  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/char.cc
! 0cc3c8c668729a956caea3c02761bffa  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/wchar_t.cc
! 578ff3beddf6b61da539d31b2cecfb40  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/1.cc
! 3e27b42cb9b4fedf719ab7bea842a71f  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/2.cc
! 2d244221b6a8f183e7e4359c8fcb06bc  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/3.cc
! ccff9968b0e54b0b2af5a784cf7a9c1d  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/4.cc
! b5afcd021bb1e9ade5f0a5156f88b20f  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/5.cc
! ac7b3ad827bb432769a6a0abfd5ce4ed  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc
! 2fa4ad0c6e45a75cf5c17a4e8489a582  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc
! f44edf54d627d798fdef70d5a3920eca  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/1.cc
! e54856f899a3fb7d5adabfc418ccf69e  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/2.cc
! 615779b81ea5167253d93f7528ad82b0  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/3.cc
! 8a4ec3f77ddcad3640e6cb5ce91104bf  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/4.cc
! 49d9cdc4f29ab276e9f14ad30f9f65df  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/5.cc
! 6bc37aef0a972b53ae2afa389bb3e520  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc
! 5d54c4acf8671e9f6c2c43e753db20f7  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc
! 3858b79a87dc61d923add6a204f1ef7f  libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc
! 2ccb730ed26646cfad2150443f5802b6  libstdc++-v3/testsuite/21_strings/basic_string/pthread33394.cc
! 68389e9ba569696be08fd1a6ef3170ac  libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc
! bc5af750f51215ef8cd192e39bb0cef1  libstdc++-v3/testsuite/21_strings/basic_string/range_access/char.cc
! 7d872347a6bbc1d8e455fa27b3e94b97  libstdc++-v3/testsuite/21_strings/basic_string/range_access/wchar_t.cc
! b097a859865da881ea63e738eb829b13  libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc
! 4fbd6f1a252a639e8838af20abb47ff8  libstdc++-v3/testsuite/21_strings/basic_string/requirements/dr438/constructor.cc
! 91749b9e1d685215d276075ccd964a57  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
! 4260db9dec917e7dae87e8640aa98ba9  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
! 16158b1a25f6bd4fe0f337b14e0d2489  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
! 8bf73e7fe480fe6547091df0eb554e2a  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc
! 770a17aae9716545c2ed2f15835c5ea2  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc
! 56361d626b7196766c6d281e70ab77dc  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc
! 9c7a0e7e21a50a497920117096e9143a  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc
! 9cb6a53f2d78f6e813dc823eab0f355e  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc
! 1cd23eb45de036e9d69d9b8f9025b5f3  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc
! e8b429db550a7554a3cb8680af9cabba  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc
! c11cbd855b181d3ff3fa4e4b81cb62de  libstdc++-v3/testsuite/21_strings/basic_string/requirements/typedefs.cc
! 8c523fc757baae0802c4748c16035060  libstdc++-v3/testsuite/21_strings/basic_string/types/1.cc
! c9585781ddd4c8037380b9313344e8e1  libstdc++-v3/testsuite/21_strings/basic_string/types/23767.cc
! 7baae5837cbeeb43dcc7090506bdc5b0  libstdc++-v3/testsuite/21_strings/basic_string/types/pmr_typedefs.cc
! c3282f46cf0aa8f94d0ccd179b173e9e  libstdc++-v3/testsuite/21_strings/basic_string/version.cc
! e4ed14bdb1879d2b5885b5a552277459  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/1.cc
! 2a58904cead996bd0258a6c606e362a9  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/empty_neg.cc
! a0e36a6acd0746d6beafcf2f532a1f22  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/1.cc
! 44e0b19a8a295160ff7759863355fb33  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/2.cc
! 96b9ff59359f27697e6905a6afa723f7  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc
! 0b352cb3fcab7153b204be5c9c991a48  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc
! 5d29644c2bdb9cebc6e016c54fd29431  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
! 0e4a3b3385a8cd3fc766a454469a37e8  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
! bb18016296732b92636ab251b1459be5  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc
! 95c13914b8f6d87ef0c0311619987d0f  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc
! 49ed1a5811d0972672ac20f692f1c09b  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc
! 5df951b66f5a231f78ba256a6d3553bc  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc
! 780c809f2308dc1018db9190dcb74c91  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
! 91b12198a7a92ff75ca24936a6c09f8f  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc
! b13d87a2fbd18fdaa6b5d9a830e7bac9  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc
! 50355bc6f287879db28550310d1af61e  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc
! e1fdc444175211e2452231e2169b31ed  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc
! 8ada581a302a4b0a89ae85aa4ad98c5d  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc
! 556aa79c575eef820f04d5da021748bc  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/empty.cc
! 984647aa123a7bc8d4ba184026ab480d  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back.cc
! 7c10bd57234761de2c84f5fb1509753d  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc
! 2f71b91e758ed38d641e65ace5956e47  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc
! f3f36410d488bf3e4faea8a51ed6d67a  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc
! 3ba5841847dd5cdce8bf47d3e6c8b6ca  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc
! 3a64c81bba53eceff5e9b0096ea8c07f  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc
! 4bd59b5b434b404550ce6a75e7b3647b  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc
! 98a02a37b31b7b9a38a6860abf043672  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc
! 3e4648c1458dfa1236dbcf301dd5a91c  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc
! d6cb833ea1745b600cb0642bbc649962  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc
! 7d3a770eb29ca593715eddbd27f4a9dd  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc
! 11284d94df43983b69385893e1415719  libstdc++-v3/testsuite/21_strings/basic_string_view/include.cc
! ebdfcb6190ba4937877878196a7fba1b  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/94051.cc
! ea9b5b89f16765e118f8c9bf7ee618ee  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/1.cc
! 60775a1e3e8e62a160890416f7dded99  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/2.cc
! 1f4ce5ffc3c65fd40276d1768a40ebae  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/3.cc
! 157372003edd922818926b580040a1b0  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc
! 2197136b692b0010f8e801d36348e7a5  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc
! f67c886e27fa1326a8367490ffc25d2b  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc
! ff0003e4af603fa1d727bf3072b8929c  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc
! 93a118f76446745ad861a91c6fbe2cd0  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types-char8_t.cc
! f138d5190c21d619787a28d10d9b7d3a  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types.cc
! e5069d26b4a9c4918cfb81a05f61efac  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values-char8_t.cc
! 42a20bbcd3635e356207874a5d5513a1  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values.cc
! f560fd575d6fb4c991f3456776544668  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc
! 817336bed4f7cd14c0d5efe6c2c0e601  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc
! 3a0161426378296285402d5a63376c72  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc
! 69427885e8f2ac36c5d7900628867b02  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc
! 573b0debbcc6c79e199fdf28a9980e05  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc
! 4c5383e695c9a0a4453a39f79f72e411  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc
! f1acf3381fa9d26e6ae6582fa46009f8  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/char.cc
! df11973046904daddcea3d48a8b7abc7  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc
! b4869dc6fbed2373837b3c3bcec1805f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/1.cc
! 585e98d42bdebdf3b8e4c53d88edb42e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc
! 2c5bd4f177b72682a85a21205575ed23  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/2.cc
! 0d1d81c9aa4e60ad7ad54b4c620d111d  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc
! ce0cf005301df64eddb6c27d6f0eb419  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc
! d696ea1a7e1cadf7cb6a8e8e1ff48c3a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc
! 1fff778f57536adca60c3d0bfb911cdd  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc
! bbc8043455039fa4c00e88e40a13c48e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc
! 4b6cf852faf1d293ba74ee8ab4dc18ac  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc
! a2b6671c9b8565d82916428af84e6af4  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc
! 01c66f10bb2c3e980577715e74100c1e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
! e29362492830f8528d236b677dfd7fee  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc
! 2d28156bfafc7c6209ee44ef661025fd  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc
! 4b91a2cae8539e06351c7870ff48c295  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc
! f4b525947eb0f0b184ada8c6e0c65c57  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
! 92a3d3927530a28b6b96ddfe670bba18  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc
! a2f9250d402539b1d722e6000d455a90  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc
! 202266d40cea7bd02979d9c356af74f3  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
  49684812d0e6e538d983a81cc02ea19b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/data/char.cc
  3aca8654c80e2a1ffcc111b84f41adec  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc
! 0e9f5d5df1a05f3bffe4689a5e0ca24f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc
! 2c07e8f3750aea9490378f7c14e98383  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
! 94bc1acdecdadaad61799e136acff2e8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc
! e67dfd9ca6f79ce72723cd9e8b4a8d04  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/1.cc
! 7a33b37856eee9c83680e34e94ebe701  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/2.cc
! 57a2dae42f2776695b855b39e7ac17a7  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/3.cc
! df83914a80ef21eeafc099b3144b3cfc  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/4.cc
! 3363f4b0f5b9f879b269febe540f31e2  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc
! ec7f7d6344de45d3c5cf855c22015e02  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc
! 79600c9adf2e76b12553f55372b3b6d9  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc
! 0ce040451ce3a6699dbb018529faa5d3  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc
! ea1fcf420b5d902292af7c3631d2bbd1  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc
! a5ab3da641b07e7286510df39229df01  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc
! d03d4c99a714adc344869006eb920af0  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc
! 7144c39386a8d1fa588f3d70c489b508  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc
! 5a1502844b1b3fd17b84a37b7cdb66cc  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc
! 2701ed9d4772b8072133adde988d8014  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc
! 347511a3e05ad6c394bca95c135bff33  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc
! 146c01d4b26ab66fdd0bacbc09c3290a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc
! 03311950a271cf28cddbe756c0c22711  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc
! 2e92d8dc3a6c35a45ee8e2b150d825e8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
! 2ccd739b635000e3e9e2982ce42b0b45  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc
! c14b0d80b146d1dfcd8a275117d715b1  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc
! 5574675d22d0626ff87b29b37b4cf8c5  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char.cc
! a6451c9ffb1b4bef6a48e0974d856013  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc
! 8a7d08554854f694794417018628e6e0  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc
! 124739c01a0de45d59072c65589f500c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc
! cdd9c2aed543a17fe30a1d09017c30b4  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/2.cc
! 1ae64f87c44a0f6b7d46172a41d20f51  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc
! 8f0115e6f29d26295100df014a4275af  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc
! 3eff3f3f4ab1b14122c640ccef0294a2  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc
! 722c39c72070a88eb301d0b3a64c8078  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc
! e801b975cd8fe5a73fab900564edf005  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc
! 44a6b5716b625115d9bcefa0b81a8091  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/char.cc
! e575a95a25144cd56c0ff6a5aff7b8f0  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/wchar_t.cc
! 0149a8128066c3f658dadf6a2ea0b5e8  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc
! 275de5786cee964c349934d778de8286  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc
! bbe6855e407e756bca96a7f48c4ac6f8  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc
! 8cfd4e1dcf79dffaed6f1ee568647170  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc
! 8238c1de221bcf7ee11021c4b9e17aa7  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc
! 6f5dbf30d4fa7535c4a6b161f5480982  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc
! d05a0c0cdc824912a2c26db94f86a6a6  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc
! cb6e90e59b3e6621cdc48c63d492f9a7  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/traits_neg.cc
  58947d8735c23b82574427ce2851e965  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc
! e0f010aab13bfd649e4cfe778cec0aa1  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/typedefs.cc
! e79ffa6e2df79e903d738baa8867e3d8  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/version.cc
! 42403b55ce4f7077d82f58e16e54bd09  libstdc++-v3/testsuite/21_strings/basic_string_view/typedefs.cc
! 3cfd688bad169253ae919624578c9be0  libstdc++-v3/testsuite/21_strings/basic_string_view/types/1.cc
! f16401c3680ab6e2e9e427e43b1c3f25  libstdc++-v3/testsuite/21_strings/c_strings/char/1.cc
! 4949192e7accc8bba1c74a29c5e4f753  libstdc++-v3/testsuite/21_strings/c_strings/char/2.cc
! 5304dd9ba90aa7c93c32f62ac2a986c1  libstdc++-v3/testsuite/21_strings/c_strings/char/3_neg.cc
! bc80353f8b8f94dbcedffa5a8a03f69e  libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc
! 42ff41c39c5947b7ebf79a19ce304e1a  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/1.cc
! e89d57672812a70306504b1e050a993c  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/2.cc
! 716a8cf8f3bab7c0bc04444c4aadc76a  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/24559.cc
! 5ee269d49005262fb74f53020ad9433f  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/3_neg.cc
! 82d6b4f00580779800e341ec6c9ffaea  libstdc++-v3/testsuite/21_strings/char_traits/requirements/113200.cc
! 9a89307f3fd30353760d58e7f2fe6a49  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/1.cc
! 417f04425326292627a556f609ff074d  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/57704.cc
! c82578c58f9b24d9aeb891464ae4a0b6  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/65049.cc
! 2d916a782e53b2995e247f696cfa5b48  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/99181.cc
! 67de0adca97f9aa18e30182e26b79a19  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/typedefs.cc
! c2de1a4c7c1102d93ed2c67626090f7c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/65049.cc
! 54c97ea7587ecaab9c1ee867ed0ac24e  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/eof.cc
! fbbce34811a0239b381fc730967d8576  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/typedefs.cc
! 435e560b82be9795f44dba34953fd5fa  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/65049.cc
! 3e818aaf7cada3f443bf5396880ad613  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/typedefs.cc
! d87dd9185fd1b91787799b4d2be040db  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/65049.cc
! 5c60af03e1487973d9e34075dffe797a  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc
! 020c4c1d6801fdd80c8628582cc29954  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc
! 1d81dd8ce36b58958fb183f2be21abfe  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc
! d0e5558ad509d484acf6e55897d95d06  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc
! 37a8dc135124881142248564112cd68c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc
! cd3e103dd70faecf0ab8f8251f4c2803  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc
! 40d2de07b2f875948bacd9efe235d23f  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc
! 9135f70833b5899e1f42ff47ed438a85  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc
! 23eaaada5d633d867d08f88b1ff54cc2  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc
! f6ec0f68c7458c480bb6dd6133e3eabf  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc
! 2fb6130c051d5b1d8e03a50d2e9f18b3  libstdc++-v3/testsuite/21_strings/char_traits/requirements/short/1.cc
! 819f386019c36ff55ef68149f90bbfdf  libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc
! c3204fb2c40c36c87e506b3ff5e894f9  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/1.cc
! 599af1427edecbdd6b73fe286579a72f  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc
! dcc0ba7d78b748b4625f029b7725d459  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc
! 8423072937603708261142b3839f43a4  libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc
! c50ddf9051ccb16a68d1a55ce197fc70  libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc
! 4f155d9f6bfd84954de893977ca955fa  libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc
! 9f7f97feb6e802c217a65b64a7dc2ee2  libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc
! 92426f47ab7f89a35beeee8a40bcb01c  libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc
! 9f7f97feb6e802c217a65b64a7dc2ee2  libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc
! 9568bf6fe121190aec70b0e3c38babcd  libstdc++-v3/testsuite/21_strings/headers/cstring/types_std.cc
! 7c0cc35cae3c984b824f4f9da4550e7e  libstdc++-v3/testsuite/21_strings/headers/cstring/version.cc
! 515e21fc42c1a4dd194f9115ed799701  libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
  bf5af2094c9ef74f8a08d7d077043065  libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc
! fd9f53eeaec84dfbb231150f340126d8  libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc
! ce2181af62f39a45b90379492a303e86  libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc
! e722974c6881c0d6bd0402317829669d  libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc
! a4692ba69e011f230acb931dc88c2de8  libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc
! 01730063955654c0e5d8e9582fd9a816  libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc
! 32de349370d5b5b3f4e2b3b86dafedab  libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc
! ff2d30d6d41f8efb4fb5377e0087e0e1  libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc
! 2bc6b07205ee499cc6332413dc7da16a  libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc
! 03fd535efe804cd7c08d725194a6ef37  libstdc++-v3/testsuite/21_strings/headers/string/types_std_c++0x.cc
! e52fa52ba6bc01c5bac3106c86632634  libstdc++-v3/testsuite/22_locale/classification/isblank.cc
! c4c81a0efb57857a6e2ad5f9abe5d106  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc
! 14ba73f2d5c6e80b8409f9531d5fbd93  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/1.cc
! ca5fe9fbbe0a9150d9e9363a9d851d71  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc
! 4fe75e61b646ff024e8e38c6cc527083  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc
! f3500e78c852fbf2c1fc5c8a74f70f65  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc
! 55b71e6d788fc2eec682e32424459ef9  libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc
! 3463b3ded566c06c1a8b9013a9c4d5dd  libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
! 613bee3cf86321fb26b3ef4f4dbaf2e4  libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc
! 4fabfb7b9cf29e2090f9dab75d1868ec  libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
! ae145ea71fddf32abe140e2c0f87968b  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc
! 53d537f0cba185ad78bb6f416c9e2438  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h
! 8152bd39e1e0175301295d4099360cf4  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc
! 70274dd25327b59715ad4c94ec2591b8  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc
! 533ac652df4847cf0dce32f2d42108c2  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/66417.cc
! cabc47f12123aacf267796c5d04e276e  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/79980.cc
! c6b48c4f9c94e09f9b247a11d10c36f4  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/80041.cc
! 065638501c81519cd009f26b1dd22ba3  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/members.cc
! 7787c98d0fd14eecd43e0ba64f6cab07  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc
! f64c98af8248a9e001c7bcae7d90338c  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc
! 20671a1f48d0ea64f4c867f0c095a8d8  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/69703.cc
! c54294609f4234db6e6cb4515be4ec37  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc
! 894fa3913f1c1a5a1f4e5cd0f388e600  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/members.cc
! ea59d132f377caec5df34143b2700ca3  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc
! 4fd48a0a47cc1785406fac7b73ade785  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc
! 01c8be292d478b60e6e5e816cb5db028  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc
! 101188bdf96db9f37ec45adfee2e97bc  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc
! 4c3ea36750020e62ba77d58adbed676d  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc
! 1d1a777966977241c6e70faea499f16f  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc
! d825f4607097ef52f40045189dd277ba  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc
! 23bbf50846eb877194266fac9a823667  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/1.cc
! 8bad67f05118fa2e368f3d84fcdebde5  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/2.cc
! 576f07cb2646f262b64277bf538726a7  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/3.cc
! 4876f1760eb69d22343f5e3706fd37df  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/4.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc
! 1b9f883aa2dc53c195b42179e02c5a81  libstdc++-v3/testsuite/22_locale/codecvt/in/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_locale.cc
! 3540a8bfca796bdab8561f32a88477e8  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/1.cc
! bd5f75e035054d99cc07be424d0926a4  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/2.cc
! e046e8bc529286bee9b686b9e458d58e  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/3.cc
! 729708ac47e53c21f530637a617cffbf  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/4.cc
! 38712252afa1c8309ecf45f2be123a5a  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/5.cc
! e5237cbaec61829e21853911dcf610cd  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/6.cc
! cfc3e7be5078c3e1c4466c9cc861ed22  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/7.cc
! 63567fe80ecc5dccc9b74f25153d43a9  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/8.cc
! 6cb5d974782f6175d1359a4d696c6685  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/9.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc
! 820742327218b26fde6db5bd5cb29be8  libstdc++-v3/testsuite/22_locale/codecvt/length/char/1.cc
! 1c71cbc09e2f205805a96d2d09d7503f  libstdc++-v3/testsuite/22_locale/codecvt/length/char/2.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_locale.cc
! fdd042665b212ba396b5b348a054e403  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/1.cc
! bf06c594254abfd04cc001e62c0328a2  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/2.cc
! 313bfc6e230795e49ca28d046fb29d2b  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/3.cc
! 681c6a1806913e4a8e8276b7f3cc60e8  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/4.cc
! 123362623047cebcb8da5445ee5a9a19  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/5.cc
! 6bc58bc0d66a573c59c4247ef0b6c86d  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/6.cc
! df00c78c4897de3ee0f367f794b079f0  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/7.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc
! 48be40d67d828bb1882741d15a4e8193  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc
! 435610c696f57ab1f206f9307ee7ed7b  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/1.cc
! 13ab92911841140540f5d4c46ac9c663  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/2.cc
! 5cf79241a621a6198cc8c00f8421ecb9  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/3.cc
! 89572e9a4f2da3c78ab9ce14412705f0  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/4.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc
! ce930143d2b46b7f12da1546870d8e74  libstdc++-v3/testsuite/22_locale/codecvt/out/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_locale.cc
! 1afc80391686bb467e77bee60fdc417b  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/1.cc
! bf4964b5ca83895c7aba2f025f86ae96  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/2.cc
! 88298f3acfce9194e5cb61d2aa58ac7b  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/3.cc
! ad3d7245f339bf78a64cf5331af9636d  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/4.cc
! 53dffbe63ac5720478382b6f674914fd  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/5.cc
! 0e4e20c5b639f95bfd4d2bf16b4b5d35  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/6.cc
! ebcd26292f32f30825abd68a008ec616  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/7.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc
! 31a362717c2b0f41f7b87ae1b9112c24  libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc
! 326fbe0f37d40fb233a06f97c3644af4  libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc
! 86d3e4d5ec1443f7c1ba0abda23066f8  libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc
! c9c365c6f94c355176c4ea616db08deb  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc
! c81c482540f2c396d8223fb4b8f61ce5  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/1.cc
! 3fad21f3dce52e7ac2662e0ec2f0a1ab  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/2.cc
! 9393efdc45255335190c1ef942264cd5  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/3.cc
! 70d2ebd37774f3daf991ffbc8b975d4b  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/4.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc
! 3bc56667708f03b3918c05ed7688c1ce  libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc
! 6dad41e0eb9df1fa3006d16d7e0ff58a  libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
! 1ff459b4a55886962687ef35348a078d  libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc
! 5c6467ebf1bce65b949ead4ac38aba74  libstdc++-v3/testsuite/22_locale/codecvt_byname/50714.cc
! 0a38c7ff5fd297c53e6e296dc4e3ebd7  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc
! b7babf7700fe7f40f7cbbe407271048b  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc
! 6d1b3eee6ce1a047d8aa03c5c9eee64e  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc
! c8e4f757d698f1340a6e3ebf7776b1d1  libstdc++-v3/testsuite/22_locale/collate/compare/char/1.cc
! 303792f69a074ebedb3a5c4242a61b35  libstdc++-v3/testsuite/22_locale/collate/compare/char/2.cc
! 8a7ca70d78ef340547cab46fe2e6bf38  libstdc++-v3/testsuite/22_locale/collate/compare/char/3.cc
! 028a421bfea067a85da64cda3d80806c  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_env.cc
! e5ac50b2872c1cb1a4ab067571a2ceca  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_locale.cc
! 6bad420cac9daa53a4b0bbccb221810e  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/1.cc
! d50ef178cafe6ad1ff26ea76be8fa417  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
! 6e08bb688cd7cb29ae2aa4be3f924981  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/3.cc
! a82f2d87077944bfecce2e9f6762557c  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
! 6e18b5b2565120c5d83cf5840242d884  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
! af86fb298ed7860c529d4957fbd8ea2c  libstdc++-v3/testsuite/22_locale/collate/hash/char/1.cc
! da439031a7d6b89eb01caf64c6de4e4e  libstdc++-v3/testsuite/22_locale/collate/hash/char/2.cc
! f6d5b054c02746d1ce62998352b64d30  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_env.cc
! 3cec725959007d09582ab3c3a836f1ee  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_locale.cc
! fe23cb75f130d947059a19e26595cd59  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/1.cc
! 1af61de0c6f7c287852c4f8bf7b84e85  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
! a82f2d87077944bfecce2e9f6762557c  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
! 6e18b5b2565120c5d83cf5840242d884  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
! 0cfed6ba3dc0a3c58b3a9e4d069becc1  libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc
! 1fc702ca57f8ad6a6b317e269a90f537  libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc
! 2c31c691e4d3a986f4f1b42a19e92ccf  libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc
! 012b3ac078d6a67fa956238871687570  libstdc++-v3/testsuite/22_locale/collate/transform/char/2.cc
! 3a3d24df63037c6bb81be43c7a1a3d2d  libstdc++-v3/testsuite/22_locale/collate/transform/char/28277.cc
! 0d19d8c4a6c7cc1b6ef2b8cf21974810  libstdc++-v3/testsuite/22_locale/collate/transform/char/3.cc
! c4df719bd793db68f296a600121a008d  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_env.cc
! 92cd80c6073105e2deffeeb194c7feaa  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_locale.cc
! 7e2f2fb9c0dc6475ec152de87f506956  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
! c4a261c08dc5afe68e543eaa095f8f36  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/28277.cc
! 328b56754e68a2e2de72990c68b53403  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/3.cc
! 8f36e155ff62d365c2f0371707b7e87b  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
! a4d27f66b2ab40eb74515ddf0643d17d  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
! 9c5fa9d4afcac7870f583df4c6d80752  libstdc++-v3/testsuite/22_locale/collate_byname/1.cc
! e11c2288ed3edc68e4f5074f109fc01d  libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc
! 92f70bfedbad02d9de31d98c6d9c65fc  libstdc++-v3/testsuite/22_locale/collate_byname/named_equivalence.cc
! ad7b3b6ba04abb6f23d88036df9a19ea  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc
! 704cc90ba0c27730a3f49f4ec90d1f61  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc
! 41ecd91220ccf53b3b06b08fcd239157  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc
! 56bf2268aa26d68532f2171e8e35b6b4  libstdc++-v3/testsuite/22_locale/conversions/buffer/1.cc
! c883cc419cb04b31831781a211828738  libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc
! fc30c7de7ba353a4227469d364985b2e  libstdc++-v3/testsuite/22_locale/conversions/buffer/3.cc
! 528a8daf7be46d9dc40101be3caa991c  libstdc++-v3/testsuite/22_locale/conversions/buffer/requirements/typedefs.cc
! 7a874df8ad3211a83c4b8869f2a8407e  libstdc++-v3/testsuite/22_locale/conversions/string/1.cc
! a45f075d84791de46bca366bd791b77a  libstdc++-v3/testsuite/22_locale/conversions/string/2.cc
! 47ab2b9acab37e3eea60b1e6202d96cc  libstdc++-v3/testsuite/22_locale/conversions/string/3.cc
! b27646b5046384daf139b7916b227de5  libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc
! 1aa9695bed1880585a044845744687e1  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs-2.cc
! 13f0827e389e899b438b3d2078593288  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs.cc
! 1d79e560ff163ec7f1906279adc75555  libstdc++-v3/testsuite/22_locale/ctype/2.cc
! a46be9010c2363eb21802e1c91da3faf  libstdc++-v3/testsuite/22_locale/ctype/cons/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_locale.cc
! 36c90bb139518538dffc064f089ef617  libstdc++-v3/testsuite/22_locale/ctype/dr695.cc
! ee7d83e81ba5bc1d4965125b719b95bd  libstdc++-v3/testsuite/22_locale/ctype/is/char/1.cc
! 700a5fe3f649b2665b4ea3bacfc1d8d6  libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
! f380bd63a601a95831c0d49c57b5ef38  libstdc++-v3/testsuite/22_locale/ctype/is/char/3.cc
! 2b02fd98f493637c8f95a5f593b9a0ea  libstdc++-v3/testsuite/22_locale/ctype/is/char/9858.cc
! 65d8bfdbfed0a095c0f35ffe4495c773  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_env.cc
! 35232b4234c6b2f0442bbb9d98565d24  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_locale.cc
! 991d0916d123a95e6595c3eeba36efda  libstdc++-v3/testsuite/22_locale/ctype/is/string/89728_neg.cc
! 78ad711ea785297a13e29e3cef881a0f  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/1.cc
! 9f2e26c00d5e8b6d05d65bbac6432cc7  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/11740.cc
! 0bb454b1f4879386a5d267a2f4b9b7c5  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/2.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc
! a1f9bdf53752865515fcab77b44742ef  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc
! 6af812175a49876a68130a9353a012f6  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/1.cc
! 0703ecb1b26924dc05364a16e0ac9978  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/19955.cc
! f605641cc02d5ca0702d9e3fc9d7de55  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/2.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_env.cc
! e8a5725141b2ba8a2cbc5ab91354abe1  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc
! 40aa76c4c37d219447e7f30939550ef4  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/1.cc
! 06c24fde80cac9511341fa5552b5f917  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/2.cc
! 614118a2d3fd2a1e8958bbaf4c4f2482  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/3.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc
! e8a5725141b2ba8a2cbc5ab91354abe1  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc
! 6741aeb28057b4dd302ce621c589bada  libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc
! 58155770e820c00c350246ddc0ddcba0  libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc
! 692a426be6ad5c99b5008501d987b366  libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc
! 04c74c322b2ae9e171f2d056a642b5c2  libstdc++-v3/testsuite/22_locale/ctype/scan/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_locale.cc
! 3e96488a49edf8e84ef74320bc3f7f6c  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc
! 5e205fe1ef66f470100d3f16e5b086e5  libstdc++-v3/testsuite/22_locale/ctype/to/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_locale.cc
! 28fccc464509b9b581292a48df16eef9  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc
! 18ece7865a756ad8efe10cf985b9e4e5  libstdc++-v3/testsuite/22_locale/ctype/widen/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_locale.cc
! 5246ec9eb96de39cdce21c26908b76aa  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/1.cc
! 77b0c395d353bfcc1445cda8b096a9a8  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/2.cc
! c124876379178e603c8d36c3a91dbff4  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/3.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc
! 0358f07cf6133ce89ded0382c58bdd46  libstdc++-v3/testsuite/22_locale/ctype_base/11844.cc
! 5b617508c0137b88a4f16c4f3356fb19  libstdc++-v3/testsuite/22_locale/ctype_base/53678.cc
! ecb1b0e5a9d718408425230c6ded6077  libstdc++-v3/testsuite/22_locale/ctype_base/blank.cc
! 56680f3381830f69be13f957f1868f2b  libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc
! 4b71f208fbaa306bdaa8c63e88f74bf8  libstdc++-v3/testsuite/22_locale/ctype_byname/1.cc
! b1bfa87e4fa2abe2088fc7446c851a60  libstdc++-v3/testsuite/22_locale/ctype_byname/2.cc
! eb26ee33a378074dcf6f5164a24830b7  libstdc++-v3/testsuite/22_locale/facet/1.cc
! a8dfb30be732797ec524ac2f07bcc8fd  libstdc++-v3/testsuite/22_locale/facet/2.cc
! 28f637355f5bab3aeb1683dbde7a6119  libstdc++-v3/testsuite/22_locale/facet/25421.cc
! f72098ab00c467e487bd4a7d16f68790  libstdc++-v3/testsuite/22_locale/global_templates/1.cc
! 243b566dcbd8350c197ff8e846f4ae5a  libstdc++-v3/testsuite/22_locale/global_templates/standard_facet_hierarchies.cc
! c276a86a0d4545b824450c607b1269e1  libstdc++-v3/testsuite/22_locale/global_templates/user_facet_hierarchies.cc
! ecf6a4ad73c439f5375656063b03893c  libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc
! 85d748d2bdd45ea17b472efdf34703cd  libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc
! 349d05859ae1f10040a0891a3b2c8d50  libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc
! 1abc8148c5336d970af499cc1c2ef7a0  libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc
! 9d29fc77a01bdca5bfd9ffc0d5d539b4  libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc
! d08945accc4e521ab31ebd984c82fee8  libstdc++-v3/testsuite/22_locale/locale/13630.cc
! 9a1fb4716f2e1a82ee17ec0e91102980  libstdc++-v3/testsuite/22_locale/locale/cons/1.cc
! b91d4c623965c4381800534a0f1e5b9c  libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc
! cc13dec2359cb9314c66ef6d5397f719  libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc
! 4ad73ac45c13a08f4bb6d15c1d0a7df6  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc
! ba54ff03538ebbdabacfdc6e8f7264d4  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc
! dbe14cb95420a84d668d11c203a2dfde  libstdc++-v3/testsuite/22_locale/locale/cons/2.cc
! 56e0b6386e78b7faa2468b79d5ab7361  libstdc++-v3/testsuite/22_locale/locale/cons/29217.cc
! d9de32c0e4140446d10f5d1e1c848b09  libstdc++-v3/testsuite/22_locale/locale/cons/38365.cc
! e9773ed0ad72e12504d42f922e6a3473  libstdc++-v3/testsuite/22_locale/locale/cons/38368.cc
! f60fe0f17de9eac89d81e9b7c73a774f  libstdc++-v3/testsuite/22_locale/locale/cons/4.cc
! f9b5e0f78a51c0d512449c447b111e15  libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc
! ab548709e0df5d87d6cbf42cd6280a54  libstdc++-v3/testsuite/22_locale/locale/cons/5.cc
! c2ab48f755b346a937533327032b5c2c  libstdc++-v3/testsuite/22_locale/locale/cons/6.cc
! 3ade0892209e40fc0655bda93e20dc23  libstdc++-v3/testsuite/22_locale/locale/cons/7.cc
! e4eb77f0ce8df6d8b5a7aae89b7431c9  libstdc++-v3/testsuite/22_locale/locale/cons/7222-c.cc
! 384adcb24e50b04c37a258e7878c540c  libstdc++-v3/testsuite/22_locale/locale/cons/7222-env.cc
! 9fbbdd44aa0e81dd3fb61e83b23f68ad  libstdc++-v3/testsuite/22_locale/locale/cons/8.cc
! eec51b194d4343b4c05416a84b471fc3  libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
! 5b40dd8bfef055000483f3fc3a4b621e  libstdc++-v3/testsuite/22_locale/locale/encoding.cc
! 6ddcf4968ae2fc2e41cb0a19ade4e7d8  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/1.cc
! 0a15951429bb0bbbc3651a9e1c959aa5  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/14071.cc
! 0689c9571f9667f30ef5c230ef1b4c8e  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/2.cc
! 1923578b053f4e12c635df63d8841122  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc
! 4a9fc76b2c81cadbbcaad9fa6fc02211  libstdc++-v3/testsuite/22_locale/locale/operations/1.cc
! 4b5d492a961b1e0981e75da8acea0435  libstdc++-v3/testsuite/22_locale/locale/operations/2.cc
! 5259063b164fddd7f1447e9bab2f31fe  libstdc++-v3/testsuite/22_locale/messages/13631.cc
! 8a648df259fea524d7a6f9961bff848f  libstdc++-v3/testsuite/22_locale/messages/members/char/1.cc
! 1386cccc580da6b3430d9cded887526c  libstdc++-v3/testsuite/22_locale/messages/members/char/2.cc
! 1cc7a2b1ee6fd216d3ca4257ac4c5002  libstdc++-v3/testsuite/22_locale/messages/members/char/3.cc
! 0bf4d7b6914959dce8462adf5dbc21fd  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_env.cc
! 43b46de2c08a33e0d803766f614c1cda  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_locale.cc
! d7e1103220b626985f25fbcc331b81e5  libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc
! 334b4b533e680e58ea0ce0340ddddde4  libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc
! f95bccd7b576d5ad3ae935e7e8e96e64  libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc
! 42de257b2bfca0268ab71525a86330da  libstdc++-v3/testsuite/22_locale/messages_byname/1.cc
! 4e4e0f09f2764b44fa184bf83e84d204  libstdc++-v3/testsuite/22_locale/messages_byname/named_equivalence.cc
! ef019265d3a72baa6839a2ae0a77e782  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc
! fb58eb15e198c0209df990169dc8a9d0  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc
! af03f4740a28a4eae2f605568504cbec  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc
! 92a2b07622b22fd950222bffaf5cc27a  libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc
! c6ca6a31c1c1e24b13da0a92319d0224  libstdc++-v3/testsuite/22_locale/money_get/get/char/1.cc
! aef115b16d149c88d55e8459afc4228e  libstdc++-v3/testsuite/22_locale/money_get/get/char/10.cc
! 526a45a643d15bb1ca9ce5815351b169  libstdc++-v3/testsuite/22_locale/money_get/get/char/11.cc
! 3a8d0832f43396901f5afc35a172f16d  libstdc++-v3/testsuite/22_locale/money_get/get/char/11528.cc
! 103cb9f691732a669cbf58353a705af3  libstdc++-v3/testsuite/22_locale/money_get/get/char/12.cc
! 4fc4ac2af30a0bffb8c09fc1d82b4c8e  libstdc++-v3/testsuite/22_locale/money_get/get/char/13.cc
! 93ca856235ee1401e6bb88150412024a  libstdc++-v3/testsuite/22_locale/money_get/get/char/14.cc
! 45964692f1332735400c3c6423a4c3ea  libstdc++-v3/testsuite/22_locale/money_get/get/char/15.cc
! f240ba2e6c7e7a843075bdaf28dd0bc6  libstdc++-v3/testsuite/22_locale/money_get/get/char/16.cc
! 7fe35f27f6a7e156ecc4283c2eb25e37  libstdc++-v3/testsuite/22_locale/money_get/get/char/17.cc
! 78d7f6307a9791f26701dae43075295f  libstdc++-v3/testsuite/22_locale/money_get/get/char/18.cc
! cf74d73cb798d07e649914291e4af481  libstdc++-v3/testsuite/22_locale/money_get/get/char/19.cc
! 8d3c51931fbc43240a7275f8e8f292ac  libstdc++-v3/testsuite/22_locale/money_get/get/char/2.cc
! 3bbf9ac9d4dfaa1367f3ea17581572b3  libstdc++-v3/testsuite/22_locale/money_get/get/char/22131.cc
! 635c3ddbd3900e0a597edd7a82211232  libstdc++-v3/testsuite/22_locale/money_get/get/char/3.cc
! ac4751befc8dedee2260ad007bbb1ca1  libstdc++-v3/testsuite/22_locale/money_get/get/char/38399.cc
! 3df20a5a7160956de0d31dbd82e96d39  libstdc++-v3/testsuite/22_locale/money_get/get/char/39168.cc
! 61367018e3b9cfe5e56339d7256d8b63  libstdc++-v3/testsuite/22_locale/money_get/get/char/4.cc
! 6be7ecad3583aa2b5033c912e6c9c878  libstdc++-v3/testsuite/22_locale/money_get/get/char/5.cc
! 9edd8a0e06af79eaeb15ff48d271d7bd  libstdc++-v3/testsuite/22_locale/money_get/get/char/6.cc
! 133b7f407ac41167750028b59028301e  libstdc++-v3/testsuite/22_locale/money_get/get/char/7.cc
! 5bd529c6bf2908c50e2f65432dfcf412  libstdc++-v3/testsuite/22_locale/money_get/get/char/8.cc
! 2a835bccd2eee9ff0c296e5ec6cd40a2  libstdc++-v3/testsuite/22_locale/money_get/get/char/9.cc
! be523362019b1f12445e161b34ce46b6  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_env.cc
! e84ed6dbe89b24f7969eafbb7b880422  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc
! 11f561249d203ddf8f894bcbde26022b  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/1.cc
! 83ed79eefb57eebdb3f1cbb831d0d5af  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/10.cc
! b6f31e9b1d63359cb4a091a57996440f  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11.cc
! 63656b4666485545af7e4482f99fbbf2  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11528.cc
! de34cd1e8edd1873fee6914524024337  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/12.cc
! 3155ad39c0de04b888d5186178d36f2c  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/13.cc
! 5b010b3e0f6dca590b5ecd7f587b083d  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/14.cc
! e7fc470c65f36652e8eb9e9807e069cb  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/15.cc
! 0219d807a7ffbd42526ccd448a83cea6  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/16.cc
! 9018904b6fc745051e3b12e85a0bb9bd  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/17.cc
! 8e85668e5d4ea7900645708227eb6dac  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/18.cc
! 30bc6194a2a33405f03ba8992b6a538d  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/19.cc
! 0f6cbad1f59a4621b0608347f78cc64f  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/2.cc
! 43d39ae15c235918fd8f94c5ce2652eb  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/22131.cc
! a85b5f871b0993de8ff57a80c4686120  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/3.cc
! a38f9fd9d60a85ab5745def2a1fe5bfc  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/38399.cc
! 46e006760905ce7045afa260b0f928a1  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/39168.cc
! 9bb578ca8fb46a53a32783dec46487f1  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/4.cc
! 2632c5e7e0f9c0851284a4970fe8080b  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/5.cc
! 5df71b9ee97e69e45e6d72b1f763decf  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/6.cc
! 47059508338657abb9990a975b97b03a  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/7.cc
! 2fd5415f51d28ca6f2be3b3f025aa389  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/8.cc
! 119535ea17f2c78ce8aab1baaed15746  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/9.cc
! be523362019b1f12445e161b34ce46b6  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc
! e84ed6dbe89b24f7969eafbb7b880422  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc
! 9a37a231596b7b3c034b85b71e0f4f53  libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc
! e3d5144344424acd9ff28417269f2fb7  libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiation.cc
! c096295e49ac5af21bc194585cde1b42  libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc
! 16261fbdd54db22cb98397fba523758c  libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc
! ab095dcdb4968beb5c9ee88f83da2add  libstdc++-v3/testsuite/22_locale/money_put/put/char/1.cc
! 147f82d9db8b6151eb414f120f728e70  libstdc++-v3/testsuite/22_locale/money_put/put/char/12971.cc
! 127fac0c2c4f7df0e6fea81400241c81  libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc
! 24fefb31099978a621b82cf8e11ea043  libstdc++-v3/testsuite/22_locale/money_put/put/char/3.cc
! 0c01a75423d9fc0e7831bb9b2de69cbf  libstdc++-v3/testsuite/22_locale/money_put/put/char/39168.cc
! 71d8be50e4692c91f32be57e28515b70  libstdc++-v3/testsuite/22_locale/money_put/put/char/4.cc
! 76d0cdd60f9f134fb3e46b8934b7b8fe  libstdc++-v3/testsuite/22_locale/money_put/put/char/5.cc
! a7d7f1275930171cbdb71f428ca1fe12  libstdc++-v3/testsuite/22_locale/money_put/put/char/6.cc
! e043a55046e15e61b71f3d1624bbb666  libstdc++-v3/testsuite/22_locale/money_put/put/char/9780-3.cc
! b06cef87405d83f2085cb8f50d8b0d10  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc
! 020fe793161eec2a0dc07772c6a7845f  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc
! 5a54d3958691211bfcd2e4dd8ce839dd  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/1.cc
! a922524413d4a5a71f33f1008fe66522  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/12971.cc
! 3c127cdbe9bd73964491f3c0e7c79bb3  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/2.cc
! b40bb4a8a517fa74131a66d88408569c  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/3.cc
! 451bfafdcf4fb5371101e5002f12bbc4  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/39168.cc
! 558dc238a58b16bff8a060e128464251  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/4.cc
! bb87bd2d80355890558306c0dd0adceb  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/5.cc
! 4f5515a504e25c2ae0d666e8d9e7a6d6  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/6.cc
! b06cef87405d83f2085cb8f50d8b0d10  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc
! 020fe793161eec2a0dc07772c6a7845f  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc
! 34967aacad6c34d58d6cc76c2033a758  libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc
! c1beb506a1668c35db84192ea559f2ca  libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc
! 407c30732b4dd0caec48ff64d2cb2448  libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc
! bb3fd2dcf99438c38befbd27bed24174  libstdc++-v3/testsuite/22_locale/moneypunct/40712.cc
! 4274461391655a556ef3a31b0cecc3d5  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/1.cc
! add46196b8c8de977ec8a19bf3aa1c05  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/2.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_env.cc
! 52cbcaee7de19ecfd097204926cd6d23  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc
! d09b9aee0fb793932b91a31d18420192  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/1.cc
! 74c833a1578b5f776da29fab9a641ced  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/2.cc
! 42722c03a5fb4becf33e943b3d2e3004  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc
! a1f9bdf53752865515fcab77b44742ef  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc
! 4b251f72ee0a72ab37a99aba719708bc  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc
! f2fa90d3448998642bba8821e0266f4b  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc
! ec133d1c374f1a00ed7efaf92d2c6d27  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc
! f83af8f595268f81d5a2b2088ea6b489  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc
! 48f18d8f48c9b6899026fdb22e80f050  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc
! a9eb3ebda35179aa658a574d23a017b2  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc
! c01dfd4f93cd4626348b5cd9a8247b10  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc
! 0cb12a87ef674c279b22c8dfb4ac093f  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc
! 8c04f386afcd44f1f6ac29114b232707  libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc
! 65f27009639b4ad683f05d90bb534322  libstdc++-v3/testsuite/22_locale/moneypunct_byname/named_equivalence.cc
! 9fcbdb69e353b04c13795058f821154e  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc
! b6aad7dd1689fe521d86f3d1d5ecacd4  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
! 1f4e7e46631acfc110ee72698f630732  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc
! 53dadbb1124370cad401279a08ea7b63  libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc
! 5ff37dd5af9b6bd4005d55ea38cc9bed  libstdc++-v3/testsuite/22_locale/num_get/get/char/1.cc
! 2bc5522f256634bfa1b0c4842d6e08c3  libstdc++-v3/testsuite/22_locale/num_get/get/char/10.cc
! 6f917b66912fce049294abfc386820ea  libstdc++-v3/testsuite/22_locale/num_get/get/char/11.cc
! 240c2ec5a9d3e95dd45b8cc039ea451f  libstdc++-v3/testsuite/22_locale/num_get/get/char/12.cc
! 9eb01aa28bed08d4df9cf5aae9c9306a  libstdc++-v3/testsuite/22_locale/num_get/get/char/13.cc
! c5b08a970e388952d58bdde394c6da61  libstdc++-v3/testsuite/22_locale/num_get/get/char/14.cc
! 9e80deb68965a6899c9b10ba48b88e6a  libstdc++-v3/testsuite/22_locale/num_get/get/char/15.cc
! 95edb9c65f44ce5a634fb2006ee22121  libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc
! 1b6eec42f163cb5aaabdf9f4799355b2  libstdc++-v3/testsuite/22_locale/num_get/get/char/2.cc
! 5fee6bb3a7f8ef5c03c95fe17f41630c  libstdc++-v3/testsuite/22_locale/num_get/get/char/22131.cc
! cf87b6e4afe0f70b6ce47171112744bc  libstdc++-v3/testsuite/22_locale/num_get/get/char/23953.cc
! 386d2e99ffe8de2002df7a5a90416bc1  libstdc++-v3/testsuite/22_locale/num_get/get/char/3.cc
! c22292146028ceb1ecadb3ba34b30b8a  libstdc++-v3/testsuite/22_locale/num_get/get/char/37958.cc
! bcec347d4ac9826b430eb613d2f3b874  libstdc++-v3/testsuite/22_locale/num_get/get/char/39168.cc
! 68cda25d8c5e2f2051dd7d91633eb5a4  libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc
! 48f8485fabd2e1f5ce28bc9f1381e1ae  libstdc++-v3/testsuite/22_locale/num_get/get/char/4.cc
! 7b9599561ff342bc109ee3ff493c3877  libstdc++-v3/testsuite/22_locale/num_get/get/char/5.cc
! 3bf1b681b9755d883c09e8af23521466  libstdc++-v3/testsuite/22_locale/num_get/get/char/6.cc
! 8054af13e68c60698b6c0f92c700a827  libstdc++-v3/testsuite/22_locale/num_get/get/char/7.cc
! 5466996390c0f11f8b5f4c90847cc7a3  libstdc++-v3/testsuite/22_locale/num_get/get/char/8.cc
! 0a74bb1f0cd7f42994a315a7aff2770b  libstdc++-v3/testsuite/22_locale/num_get/get/char/9.cc
! d514df1291661baa44a7601e060d0e5a  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_env.cc
! 020fe793161eec2a0dc07772c6a7845f  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc
! be9c94afedcfdd55ee9a5a5f6feb099c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/1.cc
! ad554b258238ba51b1482045e71f9b87  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/10.cc
! 3804354ec3f605dc42e60d3a32032036  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/11.cc
! aa1b96ce442034d62925a6f9c3428416  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/12.cc
! 727134ce0fb0bc46e4e6a576829bccf6  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/13.cc
! 8406987a3b7fa5bc882038f61d1ea99b  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/14.cc
! 5dd8c70a02ceda6510e19a70b3c3fd00  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/15.cc
! eb8f6d4bec6980aa34db5ef28d3e1264  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc
! e326f8d751756517ee561e736210c418  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/2.cc
! 965c7712644b79c757edfd065acd4ae8  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/22131.cc
! 84934ee9e671a2593eef37abffe1c421  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/23953.cc
! 39300579dac1038e112c7fee973dd6e1  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/3.cc
! 8b994213f18f4c42a862b496325dd06e  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/37958.cc
! 57ca77d8b23a8aae4f08d2c94385de92  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39168.cc
! 2941958c307e7352ad2f941d907a57e5  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc
! 96db26f26ae3bf2f8b676d70c78d7300  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/4.cc
! 4c6e959a8bb67d4aa4aea9f700ff3e2a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/5.cc
! 743c3f2ca3fe451bc4476f2a0b98782d  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/6.cc
! 7f8e5f3dda4c2bb9b3f7e98a7819439f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/7.cc
! 0ad31d12594a2d0cf1973f1fe251153b  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/8.cc
! 630c588f4f22faaae01f429026886615  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/9.cc
! d514df1291661baa44a7601e060d0e5a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc
! 020fe793161eec2a0dc07772c6a7845f  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc
! 470e4ff6bcc31f21df36450b8b686b57  libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc
! a89092d0c447008f5daae53f0aa852a6  libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc
! e8418d1dca005a10ff39d73c46a330e0  libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc
! 00899d6514c7589e6bf192262e3760fd  libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc
! 54a030144ff5089e9776cae491506b4a  libstdc++-v3/testsuite/22_locale/num_put/put/char/1.cc
! 0d16b3d5f13ada75f3e616ce78f2d7c6  libstdc++-v3/testsuite/22_locale/num_put/put/char/10.cc
! ead74d6c7d9b89092f65850f2f21b842  libstdc++-v3/testsuite/22_locale/num_put/put/char/11.cc
! bcba91fe55d648eb4b1d7d37cb90ba44  libstdc++-v3/testsuite/22_locale/num_put/put/char/12.cc
! 029535b8ec3fff3833bbc057202d25eb  libstdc++-v3/testsuite/22_locale/num_put/put/char/14220.cc
! d23ab2ded890c4a48594cdf1c5581a50  libstdc++-v3/testsuite/22_locale/num_put/put/char/15565.cc
! d26a643f0716f918dc73bb22677c71c5  libstdc++-v3/testsuite/22_locale/num_put/put/char/2.cc
! c5391193866132bc8dbbe8e396874943  libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc
! 3fde6ced5702540147f8d6217f5aa2d1  libstdc++-v3/testsuite/22_locale/num_put/put/char/20914.cc
! 24ddb5674ffd2334cd7ad1005b6b33ad  libstdc++-v3/testsuite/22_locale/num_put/put/char/23953.cc
! 4a1e85302f244ce1db3e576a4698df40  libstdc++-v3/testsuite/22_locale/num_put/put/char/3.cc
! e9ede252131338fda7c8fd67124c7179  libstdc++-v3/testsuite/22_locale/num_put/put/char/38196.cc
! 884b8eeda0c2ab5e8b7cab88a43647ea  libstdc++-v3/testsuite/22_locale/num_put/put/char/38210.cc
! 85b6064a399bc5b8048a6b1b178b9a41  libstdc++-v3/testsuite/22_locale/num_put/put/char/4.cc
! 42185aa5d93b26aab4d496ca86edd4b2  libstdc++-v3/testsuite/22_locale/num_put/put/char/5.cc
! 41cad3d54479fc46748ca95c94c4b57b  libstdc++-v3/testsuite/22_locale/num_put/put/char/6.cc
! 550ad5bce40dbfeebd69be352e00d55f  libstdc++-v3/testsuite/22_locale/num_put/put/char/7.cc
! 0df8fa3cae616b59176fe01fdabdea14  libstdc++-v3/testsuite/22_locale/num_put/put/char/8.cc
! 24af41afdcd968d2e577c397fe284107  libstdc++-v3/testsuite/22_locale/num_put/put/char/9.cc
! 5c9a770639e74a899eb247ffcbbe16dd  libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc
! d2eb6fee85854f81a7578e99aa0a1cd1  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_env.cc
! 0686a4310e8098eff5e6d87953c95ba8  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc
! 5f8bfe33d992c7509de3028120003aea  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/1.cc
! 4b993ca9d253d66dd6df87b4927cb606  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/10.cc
! 988be1039da8004f94b3d670c637368e  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/11.cc
! 261a9c9456c57e78e2387b877a22567c  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/12.cc
! d9c6d55a14a82246972c0a3334d98ff1  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/14220.cc
! af8581087aea7d91e8eec5d4b9ae3463  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/15565.cc
! 03129218e16799d81009e5709a9eab61  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/2.cc
! 553ae549ec81110ab8b13bc92baecb03  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc
! 0d07e40120cc3d04cf10203bbbe4af69  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20914.cc
! 2ea5a6f5421cb2adb79ed24e592f1f8d  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/23953.cc
! 48b7aa8f3ba3df666e9b8ddf1fa7ae22  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/3.cc
! d5016873f14fd80d2fcb56fe6100d595  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38196.cc
! 4d9f36f393e3c423d8805b0352febee9  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38210.cc
! 1674f09271726523ffa685d1fb8cce31  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/4.cc
! e5255306374124fdf1805beb14126cdf  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/5.cc
! b93cd39b38fc40475adf67024a75ecfd  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/6.cc
! c11397a3f3ee09145fddc83672b8c4b2  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/7.cc
! 6ab6c6e06c022f42e0a32560e8530afc  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/8.cc
! fea741dce58d7367a0a61e867e7332f8  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/9.cc
! 48fe5a6b2f15f1aba70e53f3c171e2f3  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc
! 06127ff269cc8b148187a49f8385e40d  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc
! e0046934637d9b471bc0fb38520f8ac9  libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc
! 8d45eb3f164e55414b896428e6b12f8c  libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiation.cc
! c6a4c40f42a7d77d958fe93ec98d04f6  libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc
! 0c061f67c89d72927976476b7a001034  libstdc++-v3/testsuite/22_locale/numpunct/members/char/1.cc
! 3080a1a32ec6582900de71d4380ccc00  libstdc++-v3/testsuite/22_locale/numpunct/members/char/2.cc
! 49bf1bb4976743e8a70380edec4afeaa  libstdc++-v3/testsuite/22_locale/numpunct/members/char/3.cc
! 4926df57d4cf4d09806fb61d7080b88d  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_1.cc
! 174d516658f1f05c520540fc42ff5a8a  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_2.cc
! ac770168d573ad3bc58bdd449fd97661  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_env.cc
! e5ba60c462da213bbf18a9f6a337ba15  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_locale.cc
! a7228f024dc3118e9ac96786bb881ba6  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/1.cc
! b4932530c9ff27109041a1dab5a977e0  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/2.cc
! 0824e9cbeaf86624294d3354980aa27a  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/1.cc
! d62d07ddec3a1dbd716aa1675b777463  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/2.cc
! 3ca3f5bbfdae70394e3af1be8b48290f  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_1.cc
! 995233b263335ecb9f32da223b61cc93  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_2.cc
! ac770168d573ad3bc58bdd449fd97661  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc
! e5ba60c462da213bbf18a9f6a337ba15  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc
! eee454682fb20d41b1622ef17e99952b  libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc
! e11e17ad3051e7be37d2db5ddda4dd79  libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiation.cc
! df7ad9ec53f558317ab2a7f84298aed8  libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc
! 1d42327b201e4f6ecc958827c2a90f4a  libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc
! 4805ce8bb4674a2173bec6106e81cb25  libstdc++-v3/testsuite/22_locale/numpunct_byname/named_equivalence.cc
! e0f0940e0358b0c45252116285c39eba  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc
! 36d06adc2d26ff2344a3e7ec1f1b9dfc  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiation.cc
! dde5ebf379b63569413deaecd90fbcd9  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc
! c847c15ba6302eb9ede9e5050e872932  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc
! 926a6e109d86b180a43cb510b49eeb57  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/1.cc
! 66365d2cfdf6fc420153ab1706d3f4ed  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc
! f18281840a451d19d122f7b3e687a5b1  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc
! 0503a1e7d1ec2843f276fefcaa0c99a6  libstdc++-v3/testsuite/22_locale/time_get/get/char/1.cc
! c6fcfa74158731c22e992391a646a323  libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
! 9799c682247423911f123bfa91c50a4d  libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
! 8d1ff81ea0afdb6de574eba0d9a7e685  libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
! 6155ecdd4d1c7d2d010bfcce169078ba  libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
! 777e255a4a6933dda4db3c9a95cbf861  libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc
! ad21bf22d17823c69f4c09063c823e93  libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc
! ba0db490c6bcb97058a9ece3207486ac  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/1.cc
! 683514fbba74bf93224deb18bc490fd3  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
! dbc7486b3fa858ad7059e6ca8d4db20e  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
! 5557056e5f3f5d27aa6f902a17859bef  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc
! 8536e118cd08aa91debc1c482c501d08  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
! a72ae86dca9f44a5b6b7c060f2084523  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc
! 512754e4938001a4a4b65c6209f26cca  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc
! d2c60e27715a8cadc5e818e10aea37af  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/1.cc
! 2cd096427cef924f1653e51e32335e43  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12750.cc
! 5af5e69489fcf25f853f8475f548b318  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc
! 34d7c30c1e21df6b76c98050d0ad1128  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/2.cc
! 5780a943afb7b30a7dd5b7f7265ee7b3  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/26701.cc
! 2b9001cd45fcf32aca4868169506f760  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/3.cc
! 8bce2e8e80f6c0f8259965cc365f6945  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/5.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc
! 340eef1e91c9ecc7dcde880a069203aa  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/1.cc
! ac6cf189d36d03e4c65a634ee263c8e8  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12750.cc
! f321612e06346dc3b722639c153986d4  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc
! 4ec2f6d0b8fa2eb81e800dd9403234ec  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/2.cc
! 3f6078820178666ec6787f5513809f63  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/26701.cc
! a0596d4eec4dec2796231dee5d9b7647  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/3.cc
! 2bd597a715d3dde4bc535ce45b8768fc  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/4.cc
! b6552f2cd536b206704739e9b1a2591d  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/5.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc
! e126686ce1e0bfffbcc2254b1378fb63  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/1.cc
! 2579a0e1ceda73155277366ffdc907b7  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/2.cc
! 5773d760d4f85b529b47ef0b443fe012  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/3.cc
! f639340265d0f7d4da6e7e3e5e5db269  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/4.cc
! f4cd156ba1ceae96b59c652069269e7f  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/5.cc
! e7e1ceb84197b2fa2c10b8a27b4b0622  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc
! df5d4d48ce4482eb0b413ee71ec5ced9  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc
! 38ac02ceb06bc2d0e08cc45265f9a6cb  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc
! fb5d844631f39de0e8f2fa2d6812b157  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/3.cc
! 9aa7e1b61981bf9427b636e735f46c5e  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc
! 9c1c0a157780fa992c64ea42e773d25b  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/5.cc
! a8b2edce27f45b78c7b3d3f843f86173  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc
! 1dc042527a0d3f8ba96a94d8c96535f8  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc
! afda0cc25e0076d34a98aee6211757b0  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
! fb86e53d97891c6b9c2438ce4f035067  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc
! c88864b1aaf19b13bccab3cd6948e4cc  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc
! 3a9f8aa9324c9e37915215ca4589d827  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc
! d470039e416e2773e93c2230e9ce92c2  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc
! ce6fe18c4cef47fe4d82dad359560a9a  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
! 16b22b05187fd4c9d4cbc56658bdfcc5  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
! 57237904fe3593b1c6084e636e16ae4d  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc
! 18edef944efccf67561eb365c22c804d  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc
! b929ef1e8001780de16baf180fc5059f  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc
! 98c82d6a97d9710bd31175251e73205c  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
! b9444b4c146b22256963c7bf12ecac14  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/1.cc
! 204cf8d2e234acc7a0722fba06cf9b21  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc
! bd94b7f06b78db193f94302c8854d470  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/3.cc
! 9dc51357d3f741818611207050bd7717  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
! ed93338e79afc5446b33b2e6c728e0b9  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
! 5a1f64783a703c030ea0984d70735350  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/5.cc
! b86baa0a1574a4e3c2d58ef7763448fa  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/6.cc
! cb94a6f86121110dce94236e21779cb5  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc
! 353ed3720d9bc2d91c923dd9087b0729  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc
! 5c67cf18bb94e704c8724dc2ad0d9206  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc
! 0398c431b88f05ccb66422e23d5c5966  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc
! faaf898f6640bfabde0bb66b233852f6  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc
! 9b0005df572fd84ba3973f1e04c8845a  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/5.cc
! ff05f4d7199e283073b32f68f71ca2b9  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/6.cc
! ed3d90b57e831b9d204270e53a262848  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc
! f0bef1eb177804024b818728d98d3ecd  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc
! 980b37dc2d6812e02ce3454d5b6d8dbd  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc
! 6d0881afa55adee24f639912b313891f  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/3.cc
! ed6425ff142fd5d4f6e7fba3c612db72  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/5.cc
! d3400d892e2b77752d734ae46b131f51  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc
! d5ce098ee2f2ef217f82be6cc72ec63a  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_env.cc
! 6627273e1bfd7c55b49779513f45143f  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc
! 16be90e20e2cc42b2dec8dd374084adb  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc
! 60d97b3a172cf28a3e0d3df8f40bf527  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/3.cc
! 2fe81229093623f4a94de14002d7c583  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/5.cc
! fff5ed22138c003d0da02b7b42faf02c  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc
! d5ce098ee2f2ef217f82be6cc72ec63a  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc
! 6627273e1bfd7c55b49779513f45143f  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc
! ef0f75ac92a8a74ce8bfb455a6113305  libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc
! 5538f54d410c0d19de0855feff964e75  libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiation.cc
! 43fa65196f52135b36fd3e9b0d8e0c37  libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc
! 438d2cc586f67f9aa3e1ace5e2c89cce  libstdc++-v3/testsuite/22_locale/time_put/put/char/1.cc
! b0447676dcea7f8aaeef35cc0f5b8245  libstdc++-v3/testsuite/22_locale/time_put/put/char/10.cc
! 0b24557ab4072cd8979e07849d27eef6  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_1.cc
! 62da754aa64d366f5ba54198fc601d54  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_3.cc
! e62d1b77ef9efe5981a3b9cddb7caa7c  libstdc++-v3/testsuite/22_locale/time_put/put/char/17038.cc
! 70abace27836472e7c089c9a90750304  libstdc++-v3/testsuite/22_locale/time_put/put/char/2.cc
! ec15d61e8dbd6f84dcec557fd82f8fc2  libstdc++-v3/testsuite/22_locale/time_put/put/char/3.cc
! c7896fba579a2e5fefa6780f4580f6c8  libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc
! 4154cfaaa23330034cc6eaf3f0a438a5  libstdc++-v3/testsuite/22_locale/time_put/put/char/5.cc
! 0e9583f64ba61992b0b13fc41f555870  libstdc++-v3/testsuite/22_locale/time_put/put/char/6.cc
! 67a5bc8fc1fbe0b109c6999876b60acb  libstdc++-v3/testsuite/22_locale/time_put/put/char/7.cc
! e13d63a650e02bad0f0552f97409c443  libstdc++-v3/testsuite/22_locale/time_put/put/char/8.cc
! 0704f6fdf8155adace642576305d69b4  libstdc++-v3/testsuite/22_locale/time_put/put/char/9.cc
! de9a8c89443c83982bd592a901415f46  libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc
! 52ef3bf88483eb80eccb5dc5bcdd0802  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_env.cc
! a5111286a0f64bcf9ff04eaeed3bae55  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc
! 0c4b3688c68320571634e926e4859c0b  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/1.cc
! 27a164e38dfd14296d3eb4af3b9025c4  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/10.cc
! f2d20133c8dbe91f4fc953e2e0f6f0dd  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_1.cc
! c066cb8bb1c9614277e9c791bd38dbee  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_2.cc
! e1949cd6d3ab1400d48efd25a0e551ad  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_3.cc
! 5713d84453d1147fd2e9816ed6981afc  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/17038.cc
! 9e3f4177e75363fc261a9dab67096199  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/2.cc
! 8c7a925e2ed281a3400e000bd328e012  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/3.cc
! 0173f62747863eaed9351d88c9e2d315  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc
! 3db8441931ab0e155c1a6a2071e9eff9  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/5.cc
! 77f095d7087665290af4ff51288d4c4f  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/6.cc
! eb6bf14680f6d098106e04c2e9b98bf1  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/7.cc
! a5d245dca143a88845e7c497578dadd4  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/8.cc
! 6d2863733b4e529052510b69615d35e2  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/9.cc
! 52ef3bf88483eb80eccb5dc5bcdd0802  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc
! a73aeeb5811dfdc6bccf58f3d50e5495  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc
! 33d9494240c6fc4c68d639f3c172ac2b  libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc
! e6457e44818f9d4dd13d3d2dc2fa6932  libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiation.cc
! 22861fbe78aa661a600a0851e86c9cac  libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc
! 48390801a6a1e20107b78d22e86bb8f2  libstdc++-v3/testsuite/23_containers/array/capacity/constexpr_functions.cc
! 89624c623d472b64e4b26435e0374f54  libstdc++-v3/testsuite/23_containers/array/capacity/empty.cc
! 6334b7925d2cf31bffb4ad0eafc6c06b  libstdc++-v3/testsuite/23_containers/array/capacity/max_size.cc
! 1075fe2c8d7308d2606743357091f030  libstdc++-v3/testsuite/23_containers/array/capacity/size.cc
! 83677186d813979c9a57cb4eca3bdca7  libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc
! d79cf66378d76533c3a926b4772a12cd  libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc
! 032354990ab6a3c4a2300d49b0f4ebde  libstdc++-v3/testsuite/23_containers/array/comparison_operators/equal.cc
! 06edfc70a2f32ad047bbe0d4512c60d0  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater.cc
! 2bd5ad3d876acfc354a1aaaba7044d7a  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater_or_equal.cc
! fb40834bd593a0117b21cce709f3c455  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less.cc
! d9e2c2ef1ed80edbb7e468dee88c476b  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less_or_equal.cc
! fb9539d915315f1f3514f23473ba1a8e  libstdc++-v3/testsuite/23_containers/array/comparison_operators/not_equal.cc
! 9ceeeaa0da0219aca51427b53dd0ac45  libstdc++-v3/testsuite/23_containers/array/cons/53361.cc
! 95958e9314a7a8b16c3c42d494cedb0e  libstdc++-v3/testsuite/23_containers/array/cons/aggregate_initialization.cc
! f8faf9baa730a80c50c9bb0f0db34098  libstdc++-v3/testsuite/23_containers/array/cons/deduction.cc
! b4614baae77ca592bf38291e1eb3a2bd  libstdc++-v3/testsuite/23_containers/array/cons/deduction_neg.cc
! a21fa6d5e82b94a04206d4dd6f5dbd6e  libstdc++-v3/testsuite/23_containers/array/creation/1.cc
! 55ad1543c1b5e8b2f14060f3eabb5f1e  libstdc++-v3/testsuite/23_containers/array/creation/110167.cc
! 224417afded5fa24d407144744d6700e  libstdc++-v3/testsuite/23_containers/array/creation/111512.cc
! d47842a9750561497202f924d18ddf1f  libstdc++-v3/testsuite/23_containers/array/creation/2.cc
! a17ed38e383d40ead3c46ec221858669  libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc
! 9687fa0d39b16984cd2ab66d84e100d4  libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc
! a082988618171e1b242d6f91465ac77c  libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc
! 5de04c620ef1a16930d049838ff52e5a  libstdc++-v3/testsuite/23_containers/array/debug/constexpr_c++11.cc
! 496c77aee088f61b3d31609623760f5b  libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc
! ea4a569b7d8bc6449d5014beb7eb7a44  libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc
! 3b6c9c21c66abe67df5974a885930dab  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
! 0c63b134047e9d7ae0741c85b57c1bf2  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
  d43444f5dac4465508d56c015a638fca  libstdc++-v3/testsuite/23_containers/array/element_access/110139.cc
! dca328e8be581ed29d70939c412f81c2  libstdc++-v3/testsuite/23_containers/array/element_access/54388.cc
! bc2b033cf61476d1f28803c3330e47d4  libstdc++-v3/testsuite/23_containers/array/element_access/60497.cc
! 732e47d9a0425ab21f60234c735e67ed  libstdc++-v3/testsuite/23_containers/array/element_access/at_neg.cc
! be7f6f5f1dca58112c62c2ef31ce1b52  libstdc++-v3/testsuite/23_containers/array/element_access/at_out_of_range.cc
! f6918ae2a70f746136e1b07ecee85531  libstdc++-v3/testsuite/23_containers/array/element_access/back.cc
! 7f991f3c24cff8c1745430d1135b8791  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc
! a9448709ac946efb168c0c541a173e88  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_element_access.cc
! 6080ae8f8acf4b0d8835777608f3d572  libstdc++-v3/testsuite/23_containers/array/element_access/data.cc
! d5ef8ba0bf5bbd2649c24932dcde80d7  libstdc++-v3/testsuite/23_containers/array/element_access/front.cc
  6a70864d40e873666241bcb5b4a33a61  libstdc++-v3/testsuite/23_containers/array/iterators/begin_end.cc
! d4c155f13a07ae32b87a608235a99907  libstdc++-v3/testsuite/23_containers/array/iterators/end_is_one_past.cc
! 07da667660466a8607640a4fa4e51e36  libstdc++-v3/testsuite/23_containers/array/range_access.cc
! 9228827a75822fc76a8eaa6ad527c54b  libstdc++-v3/testsuite/23_containers/array/requirements/citerators.cc
! 8369e87c377d84112fd3118fab4596eb  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc
! c46373f7ebe33c377f36caa30aafc13b  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc
! bd85c58cc19314a9a226a1f55269901d  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc
! 1c63d094fb556fa24c8a1480372cbddb  libstdc++-v3/testsuite/23_containers/array/requirements/contiguous.cc
! b00efb9a23fb6f81c4c7c7c34f2f7d0a  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/1.cc
! 7944494f86da571f6ded3ac3ca78e6c6  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/2.cc
! 45dfabf5b876618aa375b47b7d85d532  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/3.cc
! d67ea31be196fd18bf27429dda17b269  libstdc++-v3/testsuite/23_containers/array/requirements/fill.cc
! 46a8c56a126bef2d7e376fedc9c1e3bc  libstdc++-v3/testsuite/23_containers/array/requirements/member_swap.cc
! d120fdf76cbbe7c6da78f24913693b77  libstdc++-v3/testsuite/23_containers/array/requirements/non_default_constructible.cc
! 88bf76d018b68e27cb6a12c1de760f93  libstdc++-v3/testsuite/23_containers/array/requirements/typedefs.cc
! 27ad3c766cb9157bada40b979affed03  libstdc++-v3/testsuite/23_containers/array/requirements/version.cc
! 92ee8709da31a3e9ebdb0ce38d2e0b2b  libstdc++-v3/testsuite/23_containers/array/requirements/zero_sized_arrays.cc
! e29bad74185a252914e3b51079e6f1f0  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap.cc
! ea8aca68b4f9042214cb7d0d9309ea83  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc
! dc3e5127b092891d6a7cc272f613d377  libstdc++-v3/testsuite/23_containers/array/tuple_interface/constexpr_get.cc
! b63461e823d80fddbbbee2f2e47961d1  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get.cc
! 940993178b11bcc9a9d2dc9af4172868  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
! a0e95a58ed30997115e5d1cda40450d2  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element.cc
! 121dcb79430e64745a86d8b83a58dd85  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc
! a7f61daf6194b008bfcce27e6d8c449d  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
! b11fdf6dc9114b54d16fddb80d96ceca  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_size.cc
  ddf767067d4b89b063a9cdaf9a38233c  libstdc++-v3/testsuite/23_containers/deque/100516.cc
! 5cc1b0dcc05ee211b8ecab2ba54f6ad7  libstdc++-v3/testsuite/23_containers/deque/14340.cc
! 220da88499f0d7296af6b435a48901bf  libstdc++-v3/testsuite/23_containers/deque/18604.cc
! 14e2400b4329fbb52b5e077831c0548a  libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc
! b52afa2e4315d6cae475f5e735aec51b  libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc
! 8e45f73f3adcaddcd64477c01473bffa  libstdc++-v3/testsuite/23_containers/deque/48101_neg.cc
! 44be805219a727b9fc2b812475d6b551  libstdc++-v3/testsuite/23_containers/deque/58764.cc
! 20e9eb5a571ec72a3bf8c553b79a2465  libstdc++-v3/testsuite/23_containers/deque/70303.cc
! 3a7d8fb16c3cd3b436162b144f39a7d7  libstdc++-v3/testsuite/23_containers/deque/92124.cc
! 9e7ce1f654b1a6ab0e11e89bd2facae0  libstdc++-v3/testsuite/23_containers/deque/allocator/copy.cc
! 135c4a522ec10adde062941093b58e8b  libstdc++-v3/testsuite/23_containers/deque/allocator/copy_assign.cc
! 9f386ef2b668424c732506feca049ac8  libstdc++-v3/testsuite/23_containers/deque/allocator/default_init.cc
! 2c5c7108e9db2dd91b1b6a12d68dc671  libstdc++-v3/testsuite/23_containers/deque/allocator/ext_ptr.cc
! 2892c580537ec1bdca335343b9fd917b  libstdc++-v3/testsuite/23_containers/deque/allocator/minimal.cc
! 7aad7498bfecb0e6d7d09aee9e8eb41e  libstdc++-v3/testsuite/23_containers/deque/allocator/move-2.cc
! c6a1f35ae0cf061621efa8be28099697  libstdc++-v3/testsuite/23_containers/deque/allocator/move.cc
! bc58c6a174bada903a92241bfd58d714  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign-2.cc
! 55882cbae8cd1f40e87440fd1449dcb3  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc
! 52c56b2aaa250bd844cca755cd0cf5e2  libstdc++-v3/testsuite/23_containers/deque/allocator/noexcept.cc
! 376d80f7b298d45c0242d22df84c9f0d  libstdc++-v3/testsuite/23_containers/deque/allocator/swap.cc
! dbea8ca2cdab360526b4dedd61e65c19  libstdc++-v3/testsuite/23_containers/deque/capacity/29134-2.cc
! fb95cabe2c4afc05fd912fd71a6cdcec  libstdc++-v3/testsuite/23_containers/deque/capacity/29134.cc
! a02d87ff1f750671ab98e3c8bd81a194  libstdc++-v3/testsuite/23_containers/deque/capacity/max_size.cc
! 7606961d53785951ffce9a794d943975  libstdc++-v3/testsuite/23_containers/deque/capacity/moveable.cc
! c521baddc809648ec112499f7a2c3c65  libstdc++-v3/testsuite/23_containers/deque/capacity/resize_size.cc
! 559a491d2011e639d21e4e05d388db89  libstdc++-v3/testsuite/23_containers/deque/capacity/shrink_to_fit.cc
! 3e15a1464c8c414f93dfd7dc82a278a8  libstdc++-v3/testsuite/23_containers/deque/check_construct_destroy.cc
! b27440f01aacb8f5020f96b956535d4e  libstdc++-v3/testsuite/23_containers/deque/cons/1.cc
! 16bfae5436e936a39986a44a356fef40  libstdc++-v3/testsuite/23_containers/deque/cons/2.cc
! 4b8b7f27bc15024b8d1fbc590ac414c9  libstdc++-v3/testsuite/23_containers/deque/cons/55977.cc
! f69be2335fb35b08da8138a4bb0a7cdd  libstdc++-v3/testsuite/23_containers/deque/cons/assign/1.cc
! 5bf5121267e2161999dbfd09f1987cbf  libstdc++-v3/testsuite/23_containers/deque/cons/clear_allocator.cc
! 816753b37cc63ade45947a2c61254802  libstdc++-v3/testsuite/23_containers/deque/cons/cons_size.cc
! 19fc73fad1fbb75f331d1d5ce188e1d3  libstdc++-v3/testsuite/23_containers/deque/cons/deduction.cc
! 3f496dd49eec2518a1126cb7d2adba72  libstdc++-v3/testsuite/23_containers/deque/cons/moveable.cc
! e9019f39d5a32a45f33b1d6f7cba4a2f  libstdc++-v3/testsuite/23_containers/deque/cons/moveable2.cc
! ef394b6e0b3d0de4a1d35be2a81e61bb  libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc
! cc9280eaabdc305c93e3ef9b3b6dc059  libstdc++-v3/testsuite/23_containers/deque/debug/90102.cc
! 8499eeccb299acb36483024185fa2e59  libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
! 4b7bb9b13cef647afb0f3908ef964e5e  libstdc++-v3/testsuite/23_containers/deque/debug/assign1_neg.cc
! c49846b265690d900470e835a024ac41  libstdc++-v3/testsuite/23_containers/deque/debug/assign2_neg.cc
! 0cfe2b77488c08af3987ee1cbb3e4aba  libstdc++-v3/testsuite/23_containers/deque/debug/assign3_neg.cc
! f27d3f24b93c83809ef2e174886da4c5  libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
! 196af65237823a718b52596cd17391cf  libstdc++-v3/testsuite/23_containers/deque/debug/construct1_neg.cc
! 421f0584c064beb4dc5354114d3b1139  libstdc++-v3/testsuite/23_containers/deque/debug/construct2_neg.cc
! 8fdea1f90feb6bce691c4637530e3a43  libstdc++-v3/testsuite/23_containers/deque/debug/construct3_neg.cc
! 4301398c1d2c14af303aeccf3fa2b8bc  libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
! 0c320233d1ff5230ee626656043979d6  libstdc++-v3/testsuite/23_containers/deque/debug/insert1_neg.cc
! 824ff8d8c9b8c02acfd00080a72eb190  libstdc++-v3/testsuite/23_containers/deque/debug/insert2_neg.cc
! 64c4e7e8c5cc252a5a88cb39e4c5d455  libstdc++-v3/testsuite/23_containers/deque/debug/insert3_neg.cc
! 291d92d6b24230a5d3d4a168883abb0a  libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
! 076276f923ab5ccde073ca85cdf20d2a  libstdc++-v3/testsuite/23_containers/deque/debug/insert5_neg.cc
! e295704fe654521f4e26d051fbd0940c  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc
! 0479f44496f1d4c6d238663264dcb0b9  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc
! e1efad8e43b97300eaeee69a9fdbccbe  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc
! 98297bf39bff5f252591f5c59bd25354  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc
! c2022692be27eafcd9a689d47b6da295  libstdc++-v3/testsuite/23_containers/deque/debug/iterator1_neg.cc
! 4e2ac820ffbe233139f48df25eb3f49c  libstdc++-v3/testsuite/23_containers/deque/debug/iterator2_neg.cc
! c9f3024b486521a5466624a6a415433a  libstdc++-v3/testsuite/23_containers/deque/debug/shrink_to_fit.cc
! c8b8bfb8a7594b3f0ed79f91995808c2  libstdc++-v3/testsuite/23_containers/deque/erasure.cc
! 5ed53c44fe576edd9730f3c4df831ad7  libstdc++-v3/testsuite/23_containers/deque/init-list.cc
! 82b10a888b3ac4f8bf2d255d5d10aff9  libstdc++-v3/testsuite/23_containers/deque/modifiers/assign/1.cc
  5b30438ec704fa2989c2780d4b7988b0  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/1.cc
! 728af238431da232afd684481e330552  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc
! d270bb45a63a5ffd3068572046fb24ea  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc
! f35a0ab9a73c6843f642079be78d3f53  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/1.cc
! c9e63f090ccc18d0c3d5c5cd810180a3  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/2.cc
! 2eee523adec914eddcb46975f3b1420b  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/3.cc
! d55b8da6bbe9193e6df30104965a6e45  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/50529.cc
! d0148a444d3d8fa8dfbb4cba9bc8286f  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/54577.cc
! 81ab37087ac30e540dc5ad0df851105c  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/moveable.cc
! 1ccbfddcadea236a58661046840694a0  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc
! 91d0befb6e8473b285eae3668a4bc925  libstdc++-v3/testsuite/23_containers/deque/modifiers/moveable.cc
! eca0fea544995deb3535d143aaee8082  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_back/49836.cc
! 5d55261383a6d856ec7085dad8f3c26d  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_front/49836.cc
! cb8440c2679694153184d733d88a8203  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/1.cc
! 2f6f3234a5dee93f61d370f3989b4413  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/2.cc
! 543c91743c699605d5003fb9369123dc  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/3.cc
! d9dbf47431b3e2973ecdbdb7be57e69f  libstdc++-v3/testsuite/23_containers/deque/operators/1.cc
! 88fdb3efdc223c74f34bfce269ce7d08  libstdc++-v3/testsuite/23_containers/deque/operators/2.cc
! 3f4d2882f8a31d89fb7c5d1d9e567571  libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc
! da806e1b649dd8d7ea2f0f977bafc041  libstdc++-v3/testsuite/23_containers/deque/range_access.cc
! 871ba6e4e8d796566790a773dcae66be  libstdc++-v3/testsuite/23_containers/deque/requirements/citerators.cc
! 1a0a2c0a7ead0813cfcad8112cafb318  libstdc++-v3/testsuite/23_containers/deque/requirements/do_the_right_thing.cc
! 4808a41ea433da8d8e6b6164f0233cc5  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
! a26faccc257f719b5c03482e5ddb269d  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor.cc
! a8015b5bf51201f7b97f4ff49bec5290  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
! 5a282030527b02bc248d58c990268e32  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
! c2739ab9f6df99071362618fc156aba4  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc
! 11738228ccb530d28e15042ecda6f554  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/basic.cc
! 2b2b0e7dd6e5fa69fe358769957ecd3d  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/generation_prohibited.cc
! d342a18708d48809b0f427be6ae1f8cf  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/propagation_consistent.cc
! 8ad2a29b486837fb2c09d4a996a43eb1  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc
! be3651365682dbe79da7e7a7e3ed5a81  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc
! 4915ef83b4a1c1155ee59ec67497e626  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc
! b53f8959a3013ca5ffc7d3988d433cbc  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/4.cc
! e91acc2bf807474a098800c60d0aa6c0  libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc
! f14a304fb6bb392e3db619fd91a2da52  libstdc++-v3/testsuite/23_containers/deque/requirements/typedefs.cc
! 19b812cef1a9f421ae2b903941d20edc  libstdc++-v3/testsuite/23_containers/deque/types/1.cc
! a3807a00ae3e9e06f5fddc933ad25e69  libstdc++-v3/testsuite/23_containers/deque/types/92267.cc
! 975731eb0e9bbc0c71a5ac36bc2fa915  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
! 768ec20cee0a9508d5c2ecfa49ffb459  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
! 97888d847920c23c8480eb7812812fb9  libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
! 8f9cca817a9a6412cedd908994e0138f  libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
! f97047251b7baae078fd402135b90156  libstdc++-v3/testsuite/23_containers/forward_list/48101_neg.cc
! ae8b91f1a934aecc1af1975621537085  libstdc++-v3/testsuite/23_containers/forward_list/92124.cc
! a13a5274670af14c82135c41c158303c  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc
! 9a2f41c3b3ea217380117fa7720ebe5e  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy_assign.cc
! 5743f1e9c9456132f4fb7565546b5248  libstdc++-v3/testsuite/23_containers/forward_list/allocator/default_init.cc
! 14b39146b2a895f9551a4cb4db0fe714  libstdc++-v3/testsuite/23_containers/forward_list/allocator/ext_ptr.cc
! a5c952d34084dcfa2f4e039042f785a6  libstdc++-v3/testsuite/23_containers/forward_list/allocator/minimal.cc
! 7be05b1677cbde644a24d5028c81a4ad  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move.cc
! f88946887af9a57c49d47fe3bb38fe47  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc
! a0cd4a72f5184d03c6e2215af1e360bb  libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc
! be96d1f87c9acd8251bc9ec7f2b243cd  libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc
! f1bfc4a10ff41d05a33618ee9be7ded9  libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc
! 1d0578a44a80df9a9b87d1827033f7d6  libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc
! 1413c770109ff09810f5a1b1e9fb3ca3  libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc
! a55cdeccbbf5a5c05d24beab8dd14ece  libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc
! 197f24e8fecad8b20e64618746cdc85f  libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc
! 1a45610ba84b8ef48879a96db981cd67  libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc
! d9d5584e22983f38dd2cffa229176807  libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc
! e81bf08a4bb3353228ee8f042ab3c103  libstdc++-v3/testsuite/23_containers/forward_list/cons/12.cc
! 2619f8da184f869f33ddeb0952a8eb02  libstdc++-v3/testsuite/23_containers/forward_list/cons/13.cc
! 0fc6c473a7a3a2ea8a62dd68621c88f4  libstdc++-v3/testsuite/23_containers/forward_list/cons/14.cc
! 61fb0104d0d279559de5ab6907973e55  libstdc++-v3/testsuite/23_containers/forward_list/cons/2.cc
! 2db3da8a261f0a5b180ac3cec654097b  libstdc++-v3/testsuite/23_containers/forward_list/cons/3.cc
! 7b86f28a7b44b23e8a0e0aa909044be7  libstdc++-v3/testsuite/23_containers/forward_list/cons/4.cc
! a5c05f6f872916ea0c8ba3681fc0ad8a  libstdc++-v3/testsuite/23_containers/forward_list/cons/5.cc
! 9bb322677b34c0b6ecec3deb43e45bce  libstdc++-v3/testsuite/23_containers/forward_list/cons/6.cc
! e12840a89a88c16cf3bf79d46be14331  libstdc++-v3/testsuite/23_containers/forward_list/cons/7.cc
! 602284ae0160391c99db80150fed56ed  libstdc++-v3/testsuite/23_containers/forward_list/cons/8.cc
! 446442e6a93fba403eceef922b49527b  libstdc++-v3/testsuite/23_containers/forward_list/cons/87809.cc
! 58ef295d065ef390e4f8f9154b5d7176  libstdc++-v3/testsuite/23_containers/forward_list/cons/9.cc
! 9ec7bda2239bc14c9f1b52f46a8b10b4  libstdc++-v3/testsuite/23_containers/forward_list/cons/cons_size.cc
! 20c18dedaf3e1e0995abfe7d9684071e  libstdc++-v3/testsuite/23_containers/forward_list/cons/deduction.cc
! a560e7f8aa019bccd6d311880b7d6732  libstdc++-v3/testsuite/23_containers/forward_list/cons/moveable.cc
! 91ca7b6ecc501e3f24e6b069ff6dfc24  libstdc++-v3/testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc
! 8b0fa6e8b38389a65630b4cec4e4c10d  libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc
! e7f4a7c05fc4c630bd2d776a7981dff9  libstdc++-v3/testsuite/23_containers/forward_list/debug/60499.cc
! bbde552d05e84fea10a527a83dc29a19  libstdc++-v3/testsuite/23_containers/forward_list/debug/90102.cc
! 72d01f737283f4ba789ab762ee11dd68  libstdc++-v3/testsuite/23_containers/forward_list/debug/clear.cc
! be93fbd4e8b961b2c994660e32c02e14  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct1_neg.cc
! 951d7ad709e5db462fd0a26b7725f99c  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct2_neg.cc
! 6616dc287540b4b26399d572bcbe638f  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct3_neg.cc
! 48634c7eb646d6cd93f5c7485687ee96  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc
! ddcbf41803d092dd871d57feffa281ea  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after1_neg.cc
! 15d8547068ab9943f90977fae8e4134f  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after2_neg.cc
! dc62001b7fc1033aece2b7d7103bdf5b  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after3_neg.cc
! a16ad5b028f45a6aacd10c6a85e29581  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after4_neg.cc
! 219a205217365402e676f60a0a83eca5  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after5_neg.cc
! 93b4af8c08753ba9cf3732e591c64eed  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after6_neg.cc
! 79d5077e0da38945c8847060d3bc8101  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after7_neg.cc
! 3d3e7280b357c6de902e363e6e02dcd2  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after8_neg.cc
! 52e87491287a32a100ae9eb18c66eed6  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after9_neg.cc
! 686d593a03a66631034b13c56afe72ab  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after1_neg.cc
! b164e5a0649a85886a473a7a69a89e0c  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after2_neg.cc
! 5960bad984b710623f83f4133cc0ca0b  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after3_neg.cc
! 893bd4df78aa1cc1e0b42a992d168b52  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after4_neg.cc
! 64768d0d9e66e4fbbbb8224baa146662  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator1_neg.cc
! f93bd1915f9e8b144b13a9d6647f0fa7  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator2_neg.cc
! 2deba0510abc10f651d94e1faebbda10  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator3_neg.cc
! 106a847600b66e7e23d786453050bd19  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc
! ac6e89288fa002662db5a7bacb581900  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_constructor.cc
! 275360b02dae7f65fb86b8db1b322d6a  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc
! a1e689433c9ce74f027b409292847203  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc
! 6618063047cb6965c0d613d4031320d5  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after1_neg.cc
! 92f1da7ea03d8961a03eb8c69f4e06af  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after2_neg.cc
! 1664758b6d1fcce3682d7197747c9516  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after3_neg.cc
! ce5eacfb9ff3f403dbb4409e7351f17d  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after4_neg.cc
! 9b6a80a8c5371fc4e93e0e9187088f5b  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after5_neg.cc
! fb018d57f6cc2e240c170397a8ed4059  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after6_neg.cc
! 26191bb987abccb6c7a503cbd112094e  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after7_neg.cc
! 542d7d58f0b3b0cd721a5a5958f136a2  libstdc++-v3/testsuite/23_containers/forward_list/debug/swap.cc
! 449fdda1b1591199ac44be62d977e2d1  libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc
! 299edaedac65cc73f80f2a1de6b711ae  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/1.cc
! 00369c0e4f1e049991ce5a760c783849  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/2.cc
! 83a7645be508f9301d9c0920e26111ea  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/3.cc
! 3abf44e18dda8a51140c71919cb1f07c  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/4.cc
! 20079f6bcc26b31ad7ab104389a8390f  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/5.cc
! da4b59252c3177daaa2706702f9cb1eb  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc
! 30189ec69d1ce84ba3ffc9b9cb6ea3a4  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc
! 394d91f34fea0178e31fa9bd662269a0  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/addressof.cc
! 92604133c05032540242c5fa0a882b44  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc
! 7f583ee8aa17b86642e7ee71a791821f  libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc
! b876d9fe81312d200aa4bb0c8583e659  libstdc++-v3/testsuite/23_containers/forward_list/operations/2.cc
! fef49927d3d17a3d088fd141d128fac4  libstdc++-v3/testsuite/23_containers/forward_list/operations/3.cc
! f273e3dd67d65685d98c039289cf38fe  libstdc++-v3/testsuite/23_containers/forward_list/operations/4.cc
! b8a1aef36370884213102d010defe918  libstdc++-v3/testsuite/23_containers/forward_list/operations/5.cc
! 4d95d661f6cbac4e2e3880cb6d8e1191  libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc
! 369b4d5de53a66700ca9ce238748f496  libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc
! 88bd9ec448155ad6dda5253b3bc77d22  libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc
! 43b8c6fa5b4a36a704aece1b6756a7ee  libstdc++-v3/testsuite/23_containers/forward_list/operations/91620.cc
  7a189e8b9d2375d727e2175b911806df  libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc
! 8635f3b171069a7fc99b0d4625b137db  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
! d3f7c0ecd7a64afd4727008482fc0750  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc
! a41e9c892faaec84e5c52a2f768d16eb  libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
! a0046acadcbdfbd3c9bfbc47d458629d  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs.cc
! 7f102b02b01ca5af9b4252ccd0c12b2f  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs_debug.cc
! 0b6f2aef9ae09d705c4b44cea7153e5f  libstdc++-v3/testsuite/23_containers/forward_list/range_access.cc
! 5f2e66a9b1a85ee8c62d017dc1e03e5a  libstdc++-v3/testsuite/23_containers/forward_list/requirements/citerators.cc
! ac33138d7503945560bc17adfd8ba96b  libstdc++-v3/testsuite/23_containers/forward_list/requirements/do_the_right_thing.cc
! 053676b9b16a9e9d724da4e1f3b9309d  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc
! d5e332a02fd59a9e6a2ebe5255d7cc19  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor.cc
! f1325a0540ea3bfd26ffc33c8511ff62  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc
! 57a646414f5f106c5ba2c9dfb2451736  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc
! d10b297e494dcc853f75b5eadee9b560  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc
! 07936a82bf6b450d73a13613510e603b  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/basic.cc
! 3c443b330dd487a291ae369e941c9d39  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/generation_prohibited.cc
! 1a3a57efc343e62103ad8ed260756cf4  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/propagation_consistent.cc
! 27a8a2a73851a233df49108707779e51  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/1.cc
! 64d0eacf81bd3567cd88992aa63f1bc2  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc
! 7b0dabdee48645b5b4534788f3cb3481  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/4.cc
! 9174323cb2caa9da955a1c52d76ec0eb  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/5.cc
! 2861ed15d1bdbb971033b6027e83af78  libstdc++-v3/testsuite/23_containers/forward_list/requirements/typedefs.cc
! 7a6ff8b98a05e4c677c92748ab4c26c7  libstdc++-v3/testsuite/23_containers/forward_list/types/1.cc
! c7bc34821c8dd90e5224d38c7697e6b5  libstdc++-v3/testsuite/23_containers/headers/array/std_c++0x_neg.cc
! 784726b4c6dc063241a3f3ff36e7bc24  libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc
! b701467a343652898f1f0cde877f3bd5  libstdc++-v3/testsuite/23_containers/headers/forward_list/synopsis.cc
! 1f7883249c8b31e96dc0abb668c3c110  libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc
! ed7df8852bae7a6a7c7c478d6e6459b4  libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc
! d714a04c5da2702a7e038390351458a0  libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc
! deff37cb6f6bf277c84b50a0e273fb4f  libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc
! f079f3300591e571313f5e1b0b760564  libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc
! 0621d4c9166c4222451031fc81f723fb  libstdc++-v3/testsuite/23_containers/headers/tuple/std_c++0x_neg.cc
! e2273d1971472c3881d9ac2c9dafe379  libstdc++-v3/testsuite/23_containers/headers/tuple/types_std_c++0x.cc
! e1497020ec9e6e018c174c096b38fa20  libstdc++-v3/testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc
! 39b3935a4c50d4a348a36be1fda2cc0e  libstdc++-v3/testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc
! 049227e1d39f72cafffa2a27e10a765a  libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc
! ea5b2b4f40c8c51dda6427f768eeaa53  libstdc++-v3/testsuite/23_containers/list/14340.cc
! cb8018e6fe82ea8f73a170cd93a46a4f  libstdc++-v3/testsuite/23_containers/list/18604.cc
! bb48bc0b9201bef2011fa6e1900d56e6  libstdc++-v3/testsuite/23_containers/list/23781_neg.cc
! 83a0e02149e4d96bb898b40d1e45ecfd  libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc
! 9aa5364574efb9e1094403b6241b19b7  libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc
! 375715b78c004eb1d8497a4d3547b57c  libstdc++-v3/testsuite/23_containers/list/48101_neg.cc
! c0e86f4f9bbf8bef6183501239481792  libstdc++-v3/testsuite/23_containers/list/58764.cc
! dce4a4828d2c84de54f2b7bb06d805ce  libstdc++-v3/testsuite/23_containers/list/61347.cc
! a462230b4f7da4d6dec01aae50df238d  libstdc++-v3/testsuite/23_containers/list/68222_neg.cc
! a9828b8243b0e42b132788cac6cf335e  libstdc++-v3/testsuite/23_containers/list/92124.cc
! 89bab88c7c5e111f22f8160112598b98  libstdc++-v3/testsuite/23_containers/list/allocator/copy.cc
! cdc66618934db5d8848fd333871a9561  libstdc++-v3/testsuite/23_containers/list/allocator/copy_assign.cc
! e4a7668168273b107dcb66278a1cf8ff  libstdc++-v3/testsuite/23_containers/list/allocator/default_init.cc
! 0936a6268c57757c3c834c57e9dc90c4  libstdc++-v3/testsuite/23_containers/list/allocator/minimal.cc
! 34f1ba81729fcfe4a59d924625229d21  libstdc++-v3/testsuite/23_containers/list/allocator/move.cc
! 1016f3e68f0cdb746dbfd1d828c5f2be  libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc
! 1d3c273fec8ceebbe6f742494cc69c95  libstdc++-v3/testsuite/23_containers/list/allocator/noexcept.cc
! e96982803882a24d8032e1a1736fcadb  libstdc++-v3/testsuite/23_containers/list/allocator/swap.cc
! c1c553e82814af68433c1e8d465f88d8  libstdc++-v3/testsuite/23_containers/list/capacity/1.cc
! 9a50a61900dad36c2125907774caa392  libstdc++-v3/testsuite/23_containers/list/capacity/1.h
! 82f017a3b198413279640732c55a63ad  libstdc++-v3/testsuite/23_containers/list/capacity/29134.cc
! ebf3d2dcd3801c836f4d741cfadf20b9  libstdc++-v3/testsuite/23_containers/list/capacity/resize_size.cc
! 0e91f04c9e50da42445ff4da7d0846b4  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.cc
! 25d5c55d0ba82f5fb344c32b6c9d95a9  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.h
! ff2d5b8cffd0c899c0725e8724810413  libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc
! 0c4294120919843b7c43199e5570135e  libstdc++-v3/testsuite/23_containers/list/cons/1.cc
! c76d984743b8f34079f0ae32045136c8  libstdc++-v3/testsuite/23_containers/list/cons/1.h
! 07e4fcfa122c03e118c2d3a10724a1cb  libstdc++-v3/testsuite/23_containers/list/cons/2.cc
! 0dd0d545a161b1abe69170e55f40b031  libstdc++-v3/testsuite/23_containers/list/cons/2.h
! ea6729f81cd3f0d3b24eb4cb4f78e495  libstdc++-v3/testsuite/23_containers/list/cons/3.cc
! 39baa0cb1c3cc8f87da62cc5349cc880  libstdc++-v3/testsuite/23_containers/list/cons/3.h
! 7f42d8058129939409ded6471817ee82  libstdc++-v3/testsuite/23_containers/list/cons/4.cc
! 2da4c08ca8ab5cdf75e4531ed5988c07  libstdc++-v3/testsuite/23_containers/list/cons/4.h
! d6b053577de0ef636e198658308cfa02  libstdc++-v3/testsuite/23_containers/list/cons/5.cc
! 8cdb6408dff835eb1674ea1cf42bee61  libstdc++-v3/testsuite/23_containers/list/cons/5.h
! ba8dd072a98bb9a0517878bb5860fe39  libstdc++-v3/testsuite/23_containers/list/cons/55979.cc
! cb2b6f3a4b60b67cc4ccb4d30afa3634  libstdc++-v3/testsuite/23_containers/list/cons/6.cc
! 554a69df2a3fd52b2d486e653200cf1f  libstdc++-v3/testsuite/23_containers/list/cons/6.h
! 5b2f5e08343713b75916a7c1b0ec043d  libstdc++-v3/testsuite/23_containers/list/cons/7.cc
! 97e553f838a1c50ca3cdc14a57bd4f38  libstdc++-v3/testsuite/23_containers/list/cons/7.h
! 2713174b0324a08cf9a07c65c763b490  libstdc++-v3/testsuite/23_containers/list/cons/8.cc
! fad3866cef234fee3766958ce84f85d8  libstdc++-v3/testsuite/23_containers/list/cons/8.h
! cd6bc2095cd9216eb51ab717690fc9d3  libstdc++-v3/testsuite/23_containers/list/cons/87809.cc
! b076fdf8929bcb001b95dd12c8aac88d  libstdc++-v3/testsuite/23_containers/list/cons/9.cc
! ef76317df70f0e2e5cb03ea0d6716213  libstdc++-v3/testsuite/23_containers/list/cons/9.h
! 09585ea40ebcd05bdc174c131e991869  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.cc
! b7fb5bd2b9cad2e9dc51bc368f097d3d  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.h
! 36e4076c442f97e598fa6100268598e2  libstdc++-v3/testsuite/23_containers/list/cons/cons_size.cc
! 4940d6745f0e07f4f1965d31ef5de531  libstdc++-v3/testsuite/23_containers/list/cons/deduction.cc
! fa655c50995fb806cb27d2533094e863  libstdc++-v3/testsuite/23_containers/list/cons/moveable.cc
! b508b09578c7da2a463faa775731ac38  libstdc++-v3/testsuite/23_containers/list/cons/moveable.h
! 3cafc217d0991ea682c96efeb6b19cc2  libstdc++-v3/testsuite/23_containers/list/cons/noexcept_move_construct.cc
! 367f2ce2b0634c371536e85ed491554a  libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc
! b8574c30e62e55f13e5fdd86b893995a  libstdc++-v3/testsuite/23_containers/list/debug/90102.cc
! 3c051fa61ed8984c28ed78f909fff294  libstdc++-v3/testsuite/23_containers/list/debug/assign1_neg.cc
! c9053a38c60c171e082293e38aeca3a7  libstdc++-v3/testsuite/23_containers/list/debug/assign2_neg.cc
! 0bdd892cf19538d6ff9ae7b23f4798da  libstdc++-v3/testsuite/23_containers/list/debug/assign3_neg.cc
! 57f5e8dc22cc3655aa5ae132d532064e  libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
! 070408ceb448c50f03f712ee7a294c7a  libstdc++-v3/testsuite/23_containers/list/debug/construct1_neg.cc
! b73ebef5ddc2e1824526d9fdcb22f8c1  libstdc++-v3/testsuite/23_containers/list/debug/construct2_neg.cc
! c3a29478bb606a1fee90c9ae5847666d  libstdc++-v3/testsuite/23_containers/list/debug/construct3_neg.cc
! 524a700d258b9d9619ac2e9637ffffa7  libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
! d1f0eb4c378d01d27b6852873faa4dd1  libstdc++-v3/testsuite/23_containers/list/debug/insert1_neg.cc
! 81410e22259553faf050ba7e7212dc1a  libstdc++-v3/testsuite/23_containers/list/debug/insert2_neg.cc
! d22c7eb1467bb0ce6efab4eadd683d51  libstdc++-v3/testsuite/23_containers/list/debug/insert3_neg.cc
! 8a1eab0159a2110fb823c3e880b71a74  libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
! 54ee57a6efc7924d91558e65214986f6  libstdc++-v3/testsuite/23_containers/list/debug/insert5_neg.cc
! 0bb2653fd4df290d508bfe26161deb97  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc
! 1cf9bc58f809e057d1de47e5bd78ac4d  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc
! 2b58c952471916f1efa69884f8de686d  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc
! 6a6f9f352acfa66bb9bb052531f5d329  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc
! 4cec669fe4af186e9cb7317d0f301db4  libstdc++-v3/testsuite/23_containers/list/erasure.cc
! 4f550028e62c334aaf0725d9f22ec73b  libstdc++-v3/testsuite/23_containers/list/init-list.cc
! a3f9425931554ffbcf98bb71d8943487  libstdc++-v3/testsuite/23_containers/list/init-list.h
! be04ea11441a264f21af3dfb2d23ff2f  libstdc++-v3/testsuite/23_containers/list/modifiers/1.cc
! 89d79aa082bf05160efe098fbf5594cd  libstdc++-v3/testsuite/23_containers/list/modifiers/1.h
! b803c8dce00956c8dd5a983275b7cfc0  libstdc++-v3/testsuite/23_containers/list/modifiers/1_c++0x.cc
! 1c5ae30d56ba2bb59084bfdcc502b69a  libstdc++-v3/testsuite/23_containers/list/modifiers/2.cc
! 52705779687b2ed43f3b0e58c2277f6d  libstdc++-v3/testsuite/23_containers/list/modifiers/2.h
! ee87ad993bf9d292d995a225d58415a0  libstdc++-v3/testsuite/23_containers/list/modifiers/3.cc
! 45576fb020c559ac89c85fbc000e6018  libstdc++-v3/testsuite/23_containers/list/modifiers/3.h
! c1a6170463abb2e59fc7c9fa96d18969  libstdc++-v3/testsuite/23_containers/list/modifiers/addressof.cc
! 3c87d838aca90c1a24d8942996e971bf  libstdc++-v3/testsuite/23_containers/list/modifiers/assign/1.cc
  c25b0a9dc317b9f58288d8f92299007f  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/1.cc
! 68e2d576cbd8e399ccfdc94dd42a6d49  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc
! af56b2ad1240ee8bab8298aa4e2892c4  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc
! bd01877006f90ad7a491ce79bc3bbcc9  libstdc++-v3/testsuite/23_containers/list/modifiers/erase/54577.cc
! b42198d9519830afbfc19aff8cf5cd32  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
! 72582aa97e74a92258a51c385aa432a3  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.h
! 1315edf1eb4c629159965b1f980cdb43  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc
! 42b127a62265ba23c9f0a7ebc0fcad4b  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.cc
! 2ea94e3accb86df81b4b245cd3a47934  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.h
! 41930bcedb104478587662382700759d  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.cc
! 84f85650fcb73190ed665a31ca245579  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.h
! cd3738f5143bdc2dd63bd959f974ac23  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.cc
! edc85d43524528f8eac67b03630b42b4  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.h
! 4fce162eb8cacaf4571dd4531a1e67db  libstdc++-v3/testsuite/23_containers/list/operations/1.cc
! f268dcc4b786e183bafbea880df1cda7  libstdc++-v3/testsuite/23_containers/list/operations/1.h
! 6af9cfba66f56f8883f7addcc7bc8fe9  libstdc++-v3/testsuite/23_containers/list/operations/2.cc
! cc7b2e9c398acb9030defea0b273edd2  libstdc++-v3/testsuite/23_containers/list/operations/2.h
! 5a08eff67e3e64b9a1d568245c2c6dd6  libstdc++-v3/testsuite/23_containers/list/operations/2_c++0x.cc
! a1a3498074b7e352bee7c1525896813d  libstdc++-v3/testsuite/23_containers/list/operations/3.cc
! de85da35bb00ed7550cd6df98b829c25  libstdc++-v3/testsuite/23_containers/list/operations/3.h
! bca076e8304c9fc5e84c67e1b51d2460  libstdc++-v3/testsuite/23_containers/list/operations/35969.cc
! 9f32d2767dc2edd14cf6a4e27548b9bc  libstdc++-v3/testsuite/23_containers/list/operations/3_c++0x.cc
! dd3519981e158549efeab0347a0ad957  libstdc++-v3/testsuite/23_containers/list/operations/4.cc
! a98d8e8d60b4e4247935468f9674fb16  libstdc++-v3/testsuite/23_containers/list/operations/4.h
! 8cd4561520ea07622b9b8d27d733417c  libstdc++-v3/testsuite/23_containers/list/operations/42352.cc
  e9b09b08be9f79aee16cdfe50434376c  libstdc++-v3/testsuite/23_containers/list/operations/66742.cc
! 91280810227a69ada9fa99c50a29be10  libstdc++-v3/testsuite/23_containers/list/operations/78389.cc
! 20fab440a601d7a67ed4d903fcd46536  libstdc++-v3/testsuite/23_containers/list/operations/80034.cc
! a8900352ace47ec9c4dc8fc3e8808330  libstdc++-v3/testsuite/23_containers/list/operations/91620.cc
! a862190b618229642b2f605f7e46d13d  libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc
! ebe6d0b44a2f45fb879a96f2cac9e12d  libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc
! 3694e9a9887847e6d2a59bfc0ba88824  libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc
! 1cfa0f764f9f1a01e48649ed6728092c  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs.cc
! f9f1c1e13671876c529c1926037f10a0  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs_debug.cc
! 1b97b5192875eab176c1a5927aa6c464  libstdc++-v3/testsuite/23_containers/list/pthread1.cc
! 9eb79d2538ef4f26cfdbbe5f0239b8cb  libstdc++-v3/testsuite/23_containers/list/pthread5.cc
! 02d54d9b4a4037aa2ab948bc9b8b2544  libstdc++-v3/testsuite/23_containers/list/range_access.cc
! 0ace65775316f130ca9c17e7233b8295  libstdc++-v3/testsuite/23_containers/list/requirements/citerators.cc
! 5aa0abd76548489ebac6420e710f5544  libstdc++-v3/testsuite/23_containers/list/requirements/do_the_right_thing.cc
! 339404d00254c83971107fc7132250e8  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
! a4bbc4fdc958b9aeb17673849efd4e88  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor.cc
! 9af2f35eca9adeb15f8926cb113fec25  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
! 9337bed7bc56d2e483318eadd7af2d5d  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
! 762704eaa0b5025feb289a9eafd49e9d  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
! 21d4fde5908b98c1455b07bdaf6ad048  libstdc++-v3/testsuite/23_containers/list/requirements/exception/basic.cc
! 2871d8f141ee2447719ff2fb9d6101fe  libstdc++-v3/testsuite/23_containers/list/requirements/exception/generation_prohibited.cc
! 1f3d564fc902d72885034e19997ca44a  libstdc++-v3/testsuite/23_containers/list/requirements/exception/propagation_consistent.cc
! 4045259e051275e43346b7983a5f6e39  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc
! c5f5956015c846cc067eec46a46d3edc  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc
! b190887e50133e461a5396162440a4f2  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc
! 26d26f184bfa84cba814f9540fa417c5  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/4.cc
! b5ce23996a64f1a88f204a44baa82865  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/5.cc
! 422d03159e6f157f656d03a103ea87cb  libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc
! 035b1a28f01d5d52c35d85fa4d8d77cd  libstdc++-v3/testsuite/23_containers/list/requirements/typedefs.cc
! 5aa6165355c80714ba18e4d4b1be01e5  libstdc++-v3/testsuite/23_containers/list/types/1.cc
! 8ca7a584a6a5735761dabe95547c4a9d  libstdc++-v3/testsuite/23_containers/map/14340.cc
! 3e3469731019dac1d3c3931d488e8cae  libstdc++-v3/testsuite/23_containers/map/18604.cc
! 88c493721a3b1291aafd344de1cf9588  libstdc++-v3/testsuite/23_containers/map/23781_neg.cc
! 871a239486b7e16f06af68d7262f5bc4  libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc
! 42ed44e4d5d31eaca300187135b9154b  libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc
! 92e754067b9039a50abcbe1de92c8499  libstdc++-v3/testsuite/23_containers/map/48101_neg.cc
! 86609a3c5d43743d2d219b14893ea6d8  libstdc++-v3/testsuite/23_containers/map/56613.cc
! 4a4d3c9e0f69d7a3790ecfb70289ed64  libstdc++-v3/testsuite/23_containers/map/58764.cc
! bdd3f33789b732f27bcb28fc2f13523c  libstdc++-v3/testsuite/23_containers/map/59872.cc
! 09526a7b959c647bc23702935972828a  libstdc++-v3/testsuite/23_containers/map/77334.cc
! 4e80531b121d6aaa0d65f6d3be94d1f3  libstdc++-v3/testsuite/23_containers/map/92124.cc
! d3dc2ead93b6a71e8f8e6c4daa5b9473  libstdc++-v3/testsuite/23_containers/map/allocator/copy.cc
! 10d2fa756c16e1845b5c3837551aee63  libstdc++-v3/testsuite/23_containers/map/allocator/copy_assign.cc
! f2db7db29b3779ef7a6b6bfe716bff8a  libstdc++-v3/testsuite/23_containers/map/allocator/default_init.cc
! 9354564ba00adcef31704bc096c35dcd  libstdc++-v3/testsuite/23_containers/map/allocator/init-list.cc
! 88ec43e16b5d333b3635139b98de31ff  libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc
! d194e90a448124b9bb609d071d99585b  libstdc++-v3/testsuite/23_containers/map/allocator/move.cc
! 3c33c13fe68c5c2bd55e3fbe74d0df5e  libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
! f657b13652f75ac458e00665a814aec3  libstdc++-v3/testsuite/23_containers/map/allocator/move_cons.cc
! e65e20dc8289995347195bd0b9ad1907  libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc
! bc5cd83c2753b406b04df71fea970f50  libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc
! d1460edbfed341ef38da48e3d7e319a3  libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc
  16c187179e9e1a4ff16cf122fb20804e  libstdc++-v3/testsuite/23_containers/map/cons/deduction.cc
! 1eaa7223ef654627d1fa9f1ef462ab80  libstdc++-v3/testsuite/23_containers/map/cons/moveable.cc
! 0ade37955779ff31ffc9742b089ddc1e  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_default_construct.cc
! 750322d3568c195fae0798d846a9d0b6  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_move_construct.cc
! 62c8fc35a2126407d843225adf9afd90  libstdc++-v3/testsuite/23_containers/map/debug/112477.cc
! 74c36eee07d98f189c52e684f7eb6ca7  libstdc++-v3/testsuite/23_containers/map/debug/60499.cc
! 15ec9e8ec8034036716c4cad080445db  libstdc++-v3/testsuite/23_containers/map/debug/90102.cc
! 7b7e533cd4a989c0ac6650b2e32294e2  libstdc++-v3/testsuite/23_containers/map/debug/construct1_neg.cc
! 26f40236f4dcd21fa41b7f8fd92b5b2c  libstdc++-v3/testsuite/23_containers/map/debug/construct2_neg.cc
! 8be2bfde1baf83431480f03101a4e247  libstdc++-v3/testsuite/23_containers/map/debug/construct3_neg.cc
! fb1df876c29c9ea7dbad327041ec7f4d  libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
! 8cfd8594aeeaa3d34f66df4f093a9a6a  libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc
! f034580d0230e0252a9d8deec5f8c3ea  libstdc++-v3/testsuite/23_containers/map/debug/insert1_neg.cc
! a63d80115f8f926e8f09cf56f9c78ec1  libstdc++-v3/testsuite/23_containers/map/debug/insert2_neg.cc
! 8756b1d11542ccee13937bd931f04e07  libstdc++-v3/testsuite/23_containers/map/debug/insert3_neg.cc
! ee6a1fe45e765fbe2ed9e73fa8196c92  libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
! 6b9c55b317781ef79318a3909d7254f8  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc
! 3dc25ea0e919997e7c9b2fca71e6f778  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc
! 98b746c2af2ea594e4b36317f940e4e9  libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc
! 51563447ff6774b215648b6cec23a7af  libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc
! 949f05cd375c821022cdbf104541de22  libstdc++-v3/testsuite/23_containers/map/element_access/1.cc
! 2c573f3d5020e34d14b8dd53a57c2562  libstdc++-v3/testsuite/23_containers/map/element_access/2.cc
! 429651ab7f8a18c1fbe4732aec45c2a3  libstdc++-v3/testsuite/23_containers/map/element_access/39901.cc
! 4f044d7c856a72a47706794437ec7528  libstdc++-v3/testsuite/23_containers/map/element_access/46148.cc
! d94b658caa7aa48ab494c9a6374eeffd  libstdc++-v3/testsuite/23_containers/map/erasure.cc
! 595be6f694388bed51e9366813e30553  libstdc++-v3/testsuite/23_containers/map/init-list.cc
  8642b25c59832140c46994b559a3d1a8  libstdc++-v3/testsuite/23_containers/map/modifiers/108554.cc
! 99ba064601426041678ca84d0c302b9f  libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc
! fb92cae47943e18852d9b87a41b8a85b  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/1.cc
  205086c15a257b2b3847ce68833198f5  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92300.cc
! 7957a64f32bb5a5c0a403e31d4eb90d7  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc
! 69a9ba077884ac9446ea0266672c7d67  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/47628.cc
! e63a2a5c4899bace1e49eab8cc1600ea  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc
! aff256e28e0be7f762837156cf41e504  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc
! b3e20df1d03f0a25d5836292b27b618b  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc
! d93f3834dc1bf1d4841fb2728dcd232f  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc
! 4bf68d3c3bd89ce570e2a775f50fb645  libstdc++-v3/testsuite/23_containers/map/modifiers/extract.cc
! 494f81c752dcb098fefa034cd9dd5678  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/1.cc
! f96a7189cc24757bc5b0db464935a751  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
! ad5bc338e782607943dd7088034f216c  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/2.cc
! 666bc0b3e601ca404c9e609534030e54  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/3.cc
! dd0a8ad0be34d5214165abf9f814ba61  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/4.cc
! 623a09b30e2189f355ecd14509ad9c32  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/5.cc
! b0711a5c2475374ec3e077313f11461f  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/78595.cc
! ca72bc8a40e58c031f771286bd226301  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/83226.cc
! 4b86828fed822c415bdc2a8b0747c882  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/87194.cc
  bf1079f7dbecd612e1c7ff8cc0558abc  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/92300.cc
! 5a75092ac6b740025ba027c10e814bd4  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/dr2354.cc
! 0cfcaf597eed6aa5a78eec443d5e524b  libstdc++-v3/testsuite/23_containers/map/modifiers/insert_or_assign/1.cc
! f8c1facf212385b9543f0784941db2bb  libstdc++-v3/testsuite/23_containers/map/modifiers/merge.cc
! 414c15501d7b2d342433216312f21d70  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/1.cc
! b2e490e157f5532791e1bc58e2059be4  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/2.cc
! 85aa8bc7a02daf443b23b1613044ca16  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/3.cc
! c0dfaa5647ed729781c5a3c887782f6d  libstdc++-v3/testsuite/23_containers/map/modifiers/try_emplace/1.cc
! e67765ddaaf1ccdc4cb5e7b3fe35aaf1  libstdc++-v3/testsuite/23_containers/map/operations/1.cc
! 2948d704baedf014e094015b395f3d69  libstdc++-v3/testsuite/23_containers/map/operations/2.cc
! bd2352a13529370d154af1832dbeb8e1  libstdc++-v3/testsuite/23_containers/map/operations/31440.cc
! 2aac170d8c85dd3061c727b2119303f8  libstdc++-v3/testsuite/23_containers/map/operations/contains.cc
! b2d56ac7f318e901bb49419a107206a0  libstdc++-v3/testsuite/23_containers/map/operations/count.cc
! 0301eda512d82142315b633364294af8  libstdc++-v3/testsuite/23_containers/map/operators/1.cc
! 9018b1fc15b0112e4ec95e7b13111246  libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
! 6136f8dbb1578c616ac541f2440d5c52  libstdc++-v3/testsuite/23_containers/map/operators/2.cc
! e201d2fcfa94cc66613422b926af2dc7  libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc
! 119f8fdf19cbe385bef7283f40befc4d  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs.cc
! e5ab9289dbf8d09ccac91fa89dc93886  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs_debug.cc
! 01ac2d7068808d93e0308594c4fbe8a2  libstdc++-v3/testsuite/23_containers/map/pthread6.cc
! af54fdf6879d69ed370d01359d96dbec  libstdc++-v3/testsuite/23_containers/map/range_access.cc
! 2584a90a9d925fef9255bb0874f88f6b  libstdc++-v3/testsuite/23_containers/map/requirements/citerators.cc
! 38169a4843bca92e044eff25328075d2  libstdc++-v3/testsuite/23_containers/map/requirements/exception/basic.cc
! 80eb9018309713d66964a729b6f654fd  libstdc++-v3/testsuite/23_containers/map/requirements/exception/generation_prohibited.cc
! aab16ddff60dcb2380c2eeb63dcff0e0  libstdc++-v3/testsuite/23_containers/map/requirements/exception/propagation_consistent.cc
! 294d6daa3c977f34210d9a892b722bac  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc
! a2aa61f64159f22fcb93d4aa325f6b25  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc
! e99f3bd7380039ff3a17f3a936d7e25a  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc
! 531999f40d25e65f6fb514c7fd5dc70c  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/4.cc
! c776d7b3f34dff6474482d9b5de1880e  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
! 1f5b3026e9aae71bcbbf6ef0057d6504  libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc
! 5de6b6b0e81c96ba45e88205922dcdfd  libstdc++-v3/testsuite/23_containers/map/requirements/typedefs.cc
! 463c3823f39c8c9c555954370f65f690  libstdc++-v3/testsuite/23_containers/multimap/14340.cc
! 6ccaee04985ce224c33e5fc73a956456  libstdc++-v3/testsuite/23_containers/multimap/23781_neg.cc
! 150338a084f3a0738a36afc5f15ed10f  libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc
! c4624b6419b4f7adb80f886cc6aeb43f  libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc
! b614f8d8ebf7b70f2e84512fa25e8cbc  libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc
! b825a0f92eb4993a864667b2efd64cfd  libstdc++-v3/testsuite/23_containers/multimap/58764.cc
! 29eec7cec87b92e6f2404ed82ac65ff1  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy.cc
! d9f45f7ea6025867790aaedde3f907fc  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc
! 51790f6504bb15d9ec2b569e0f91a91d  libstdc++-v3/testsuite/23_containers/multimap/allocator/init-list.cc
! 5d61524a7f518013e336001af1e3e248  libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc
! eaab3be4d9129e427922128ce710eb0d  libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc
! 59a3cb69105923114305f15f3de7ba0c  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
! 424252f2b08d5373fd842149953b73fb  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_cons.cc
! b4020626eec7bd07fc481121dc3b702c  libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc
! 479555d7dd070d5cb49f4a2527e81dc3  libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc
! 409117372fb459883504e72c59eeafdd  libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc
  9fc3989fb543a9b01e92a0c23926622f  libstdc++-v3/testsuite/23_containers/multimap/cons/deduction.cc
! ca0fe11a0f71a3918b71005a9789e2ac  libstdc++-v3/testsuite/23_containers/multimap/cons/moveable.cc
! 232aa1175f28b7d126186f5f2cb98346  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_default_construct.cc
! f6f2ef8ebbeb82495c10b56cb2ca0e96  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_move_construct.cc
! a194881adfe976298dd4e97d2622f3f8  libstdc++-v3/testsuite/23_containers/multimap/debug/60499.cc
! 888d49bd11a67b193379b959205ea08c  libstdc++-v3/testsuite/23_containers/multimap/debug/90102.cc
! f8ccadbbc2090280ad42fff63bfcd86f  libstdc++-v3/testsuite/23_containers/multimap/debug/construct1_neg.cc
! a500a2fe54b07d4698d9a3c0b54e7dcc  libstdc++-v3/testsuite/23_containers/multimap/debug/construct2_neg.cc
! 0384ccd3b8b613e1ef9d5b420503f72d  libstdc++-v3/testsuite/23_containers/multimap/debug/construct3_neg.cc
! 66b7dceb127d3d7f6f068518368eb9bc  libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
! 199568d7886061653f98c249ddce8c12  libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc
! 6900688154367e10cccddd6b9aff19e5  libstdc++-v3/testsuite/23_containers/multimap/debug/insert1_neg.cc
! 2a3d7118dc2faab95635413aa4050e0f  libstdc++-v3/testsuite/23_containers/multimap/debug/insert2_neg.cc
! 36b6898b5d8046f7d6f0fac2b08e2b3a  libstdc++-v3/testsuite/23_containers/multimap/debug/insert3_neg.cc
! c9dbc5af0cc7d91494c2c410e98a3e6f  libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
! 3e548f3b6d05fe68e982635c09465871  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc
! 94ed49ac5f20203ad46924d2f01f4c79  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc
! 2d1f1fcc5107f025fc7c40a97cb82d24  libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc
! d7bf1cd67391e3d5991554795a3b5a25  libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc
! 0e56a472624c1d37ee61e1012dce58a9  libstdc++-v3/testsuite/23_containers/multimap/init-list.cc
! e5dd6b6fbdf794fcddf3358eca9f5ea8  libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc
! 1f7321445165b1d96fae07eae83c782f  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/1.cc
! 20440b39bdcf845ec0050dc1b320c755  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc
! 1ad34775e81c557d49df53ffc262c06b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/47628.cc
! 2eda9c5152b6aab7a3388d62f83469be  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc
! 9cffbc2dd9191ee8546c8bbfb739e97d  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc
! aa5f398c6cfff9ad3cde46bc8601c97e  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
! e61b5ee82afd9c6db0cbc15a5c5045ee  libstdc++-v3/testsuite/23_containers/multimap/modifiers/extract.cc
! 4f5fbd6bec5b43b15ad5cac834ee7bb2  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/1.cc
! d6b9bbb8d267b24b45ecd90710d20788  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/2.cc
! 89c85eab4035498d93ba9779278c7ab1  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/22102.cc
! 99962dc0717ef055e6a5705a52507188  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/3.cc
! f06c27f32fa396b83c85ba3b7db9252e  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/4.cc
! cd259b147fff545d98864e87c6537968  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/78595.cc
! 7d0d466d41818ec81eecc98836ecbb5c  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/87194.cc
! ee2a94355474c73a79a832ddf0d3de40  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/dr2354.cc
! 9283aa1447744bd5c176cea3aad3cfa4  libstdc++-v3/testsuite/23_containers/multimap/modifiers/merge.cc
! 31d11f25074198a7836d5e13da13bc7b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/1.cc
! d00c06a89fea5b2921419ee2b4aeec7d  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/2.cc
! 30b6b783702b9f9629d9910706697ae1  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/3.cc
! 683f759b64be7f18bc72f60986704eaf  libstdc++-v3/testsuite/23_containers/multimap/operations/1.cc
! 3ca61b64ec45abd2e9b16bbb90248540  libstdc++-v3/testsuite/23_containers/multimap/operations/2.cc
! 3ba54b589325e0bf3178b775f30dec63  libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc
! 94c70e6d5e2b94d66858e91569d64d1e  libstdc++-v3/testsuite/23_containers/multimap/operations/count.cc
! 2ba7f74d3c3f1c179d73630a70984810  libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc
! 0581cf4f3a276fb7388c56dee8cfa48f  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs.cc
! f2a8eff7b3108d706da86b754a636020  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs_debug.cc
! 8ca08f54b804a97e117d3502c2ee224a  libstdc++-v3/testsuite/23_containers/multimap/range_access.cc
! 082cb5a4ff86c36aabf75eca4b638918  libstdc++-v3/testsuite/23_containers/multimap/requirements/citerators.cc
! 167dbd47f312ef8844d35dc893413049  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/basic.cc
! c15b547315cee1adb00e01d8a0a38cf1  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/generation_prohibited.cc
! 748bf7a271a12b1550020abac5505f1b  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/propagation_consistent.cc
! 83d3f4c964d163e788bfaa8090a7f303  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc
! dfa496830613091f1cc0807578ced664  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc
! 61c38a6133ceff704d71601b503f9326  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc
! a64be2f8ccc9454dccc602b2e31b7bb1  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/4.cc
! aaeb76d8ee4689a1b97621fe25b20e00  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc
! 15f5acc973e40526a7dcef545f762f6c  libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc
! 39c27a0e16cb9e90e1f55886c61d86d9  libstdc++-v3/testsuite/23_containers/multimap/requirements/typedefs.cc
! 766698d2087ea7981375a3eddb40fb73  libstdc++-v3/testsuite/23_containers/multiset/14340.cc
! 8abfe782f33343a6e46476942027e9d7  libstdc++-v3/testsuite/23_containers/multiset/23781_neg.cc
! 81aed3e1e5ad3d792e6ec83f31cc4d23  libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc
! f4ba2a33ce042bda5389dc49e12a402a  libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc
! ad5612631f3f09a147db9f5c8037bd2b  libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc
! 50427d2de58ffba7bede5c2209623f73  libstdc++-v3/testsuite/23_containers/multiset/58764.cc
  c599e48655ea2e75c592ab5a1cf5ae3c  libstdc++-v3/testsuite/23_containers/multiset/allocator/103501.cc
! 871b11bf9b713fc725fb1d4e4c78e40c  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc
! ff34094a404818d44391876292329f52  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc
! 58b03b022c148a795955bdd59a8b1ea8  libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc
! 218720e91e7fb8ac110b236c8f8fb3cb  libstdc++-v3/testsuite/23_containers/multiset/allocator/minimal.cc
! 7674976436e028b8f1bea18cd08324c0  libstdc++-v3/testsuite/23_containers/multiset/allocator/move.cc
! bbfcd4c30eb8ed873f552997b34100f3  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
! f062ef42a8176f68636f6cda446f71a7  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_cons.cc
! 9e1f544cfa461df0f6ca8d6c55d53380  libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc
! 320129f024e20442e4be0317b02253d6  libstdc++-v3/testsuite/23_containers/multiset/allocator/swap.cc
! 04b84c18863c2a19f1aa3f6071dc44cc  libstdc++-v3/testsuite/23_containers/multiset/capacity/29134.cc
  bbb896871fd7c7c3f4be6d45db152294  libstdc++-v3/testsuite/23_containers/multiset/cons/deduction.cc
! 37320438456677beb2586a81b4829d34  libstdc++-v3/testsuite/23_containers/multiset/cons/moveable.cc
! 42ae1b9a757b9bee74a1e27438f13816  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_default_construct.cc
! 728b073c8cce604892b8197f843d31d5  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_move_construct.cc
! f636fd636b150f87ce2affd72082537c  libstdc++-v3/testsuite/23_containers/multiset/debug/60499.cc
! fc95b9bea8d474f8aeb306b540dafdf6  libstdc++-v3/testsuite/23_containers/multiset/debug/90102.cc
! cab14529d3ea2e19efaa256388f3a50b  libstdc++-v3/testsuite/23_containers/multiset/debug/construct1_neg.cc
! b35361c4220df77a538f14f0ef2bf260  libstdc++-v3/testsuite/23_containers/multiset/debug/construct2_neg.cc
! bd5d11b995bd274dd3cbba68be3e3a96  libstdc++-v3/testsuite/23_containers/multiset/debug/construct3_neg.cc
! 41885dd0f015b9d6fc079c96a3313376  libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
! 78f73168718264284330595935290784  libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc
! d09f6412adf0d7f380e5fdec89a5d5f9  libstdc++-v3/testsuite/23_containers/multiset/debug/insert1_neg.cc
! 3d97704f3a96d5067b07d5328162e89f  libstdc++-v3/testsuite/23_containers/multiset/debug/insert2_neg.cc
! 62d83b7cf60967b293af987d559821b5  libstdc++-v3/testsuite/23_containers/multiset/debug/insert3_neg.cc
! f50fbe9f01dd7c8e91b03a44d40b2db4  libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
! 694164ef8a0f1e180e8eccdf22e63673  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc
! c504cd4c2fd7acba89289c93ac4f1618  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
! f94249ddf13f2ca7ec195ec4385a406e  libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc
! 7ad2e8e20e30c61b57f97ada97bfb117  libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc
! 885c2c3d5634f24705ffbf856a6bb3ce  libstdc++-v3/testsuite/23_containers/multiset/init-list.cc
! b761d5230bf4935944006f713e5604d5  libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc
! 42d301762ea993dc1240db041786b423  libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc
! b1b6c3d02ebd4518b57abdc0e316b2c8  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/1.cc
! e633a28a2bff142a3826898771936699  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc
! 569d63869a875dbe01cd043cbc39d5c9  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc
! 067aa3561f1d64b5885695cd7c6d0f28  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc
! de88c726760a8aa3d56990eb1bbb70ae  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
! 35f16239471ee428d6f8cb5ce05185dc  libstdc++-v3/testsuite/23_containers/multiset/modifiers/extract.cc
! 3112b3a885e968e9c4db2018fb7450e5  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/1.cc
! d7827937cf4c7b69a93a3a106ffd6be0  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/2.cc
! 17fe7c5d114e8e5aad625d99513769a7  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/22102.cc
! 5503237f4945d2ad3c0c597cac5305d1  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/3.cc
! e8f00f755cfab49214f9b0a8f371d201  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/4.cc
! 9a1e9e9b9324f47b12cd6c3d63a9d335  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/87194.cc
! 59b2ec4a55b8781e79d538f9dd3c422e  libstdc++-v3/testsuite/23_containers/multiset/modifiers/merge.cc
! c1273264225b4be54501d53560513b08  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/1.cc
! c4b53085bfff7a5896558dc4f750f7fe  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/2.cc
! 3b78c109abcf1835999fff982d168be0  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/3.cc
! 7d31a9b737310a65e0a904003a2e5e15  libstdc++-v3/testsuite/23_containers/multiset/operations/1.cc
! 8edc6e27cbae3704cad7eb4cbdfa2986  libstdc++-v3/testsuite/23_containers/multiset/operations/2.cc
! b61217f1ff9ed0dd9cf872239d7a9246  libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc
! 0021c50fd1b6b4a07cbc92a067e93f5b  libstdc++-v3/testsuite/23_containers/multiset/operations/count.cc
! edd9abe087da4944e9714b31568a8c93  libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc
! c758f47c38a8ab095455ed9cda516bbc  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs.cc
! 1753d6f20d2424d38d2bb3b12f544442  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs_debug.cc
! f2dc994a44c0a816f1cd924e4162b880  libstdc++-v3/testsuite/23_containers/multiset/range_access.cc
! 97b8d74a93c9a49c06c4527f6371ffe5  libstdc++-v3/testsuite/23_containers/multiset/requirements/citerators.cc
! 94007a219cc05a15933eec4fdf48f3eb  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/basic.cc
! a29286e8d0b2375da5fd5ba3f87720f9  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/generation_prohibited.cc
! 1b3dba1191c24fc81b4d23f4d33c3b55  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/propagation_consistent.cc
! 1f67158fd90b6eb386418abd3dbfbe71  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc
! 404334e8b40b24f835787d8c34945e33  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1_c++0x.cc
! f87a04c9b643cf28961d208e6331d4c5  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc
! f0a755b273d6f3d619c96a088dd1da40  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc
! f36240251845dcaf230295841eba7646  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/4.cc
! a70e420831c858a101440ad9ee1c8cf4  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc
! cfdc458b3774704d0d63dc4d8f1d92e9  libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
! 77b71a9f5e9d611e3cc7b879e78658ac  libstdc++-v3/testsuite/23_containers/multiset/requirements/typedefs.cc
! 7f0e30f8df9b60251d6205e919b8e00f  libstdc++-v3/testsuite/23_containers/priority_queue/67085.cc
! 9f8fd4de0112a6c04d13168021e79ed1  libstdc++-v3/testsuite/23_containers/priority_queue/77528.cc
! c293382ebc0258702f13f7b675577d1f  libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
! cbdf954b1caad2f8c064e5cf4b2e95cc  libstdc++-v3/testsuite/23_containers/priority_queue/allocator.cc
! d7a4a3793a9a15d16015216a2eb7643e  libstdc++-v3/testsuite/23_containers/priority_queue/deduction.cc
! 5304d790c9cd4aba495f6c460ef80727  libstdc++-v3/testsuite/23_containers/priority_queue/dr2537.cc
  d28290e2547d3a24b7652041265d30c0  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3506.cc
  1b78335293495d23cdfab47884650bc1  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3522.cc
  a0bec79150ce876cf8e27c12caf9e151  libstdc++-v3/testsuite/23_containers/priority_queue/lwg3529.cc
! 7f0bbe6457815316c5e615bb5b5d097f  libstdc++-v3/testsuite/23_containers/priority_queue/members/7161.cc
! b53e32c900518efff90b0841bf341fdb  libstdc++-v3/testsuite/23_containers/priority_queue/moveable.cc
! 196e42ca5237e8406064f8ced2d9ba67  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/constructible.cc
! eb2b28a91e61c2d85f0b489013f0fcf4  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
! 993a5b26b63a648d648eb8df75aa9c2b  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc
! 24f557cc7a30866b628e32e95c9b6ff4  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/typedefs.cc
! 28d673da0fdf275e8dd74cf60e3b8a15  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/uses_allocator.cc
! 37371f34726c9352f8fb51ebd62dc196  libstdc++-v3/testsuite/23_containers/queue/77528.cc
! a5939a7802619728b68ae6e419ece394  libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc
! 152b2aafb730133ca538d33b64f0ea98  libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc
! 2fd4029498f1a344f20ca27d9e20be9a  libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc
! 3a1733fb9d00d5b0d220b397f457825f  libstdc++-v3/testsuite/23_containers/queue/deduction.cc
! 91e56109d1d233a7252e3d1641cb2a67  libstdc++-v3/testsuite/23_containers/queue/members/7157.cc
! 0415809d32428cc2ae111fd702918b8d  libstdc++-v3/testsuite/23_containers/queue/members/emplace_cxx17_return.cc
! 941fc3eba346d817ccf83d8620e84072  libstdc++-v3/testsuite/23_containers/queue/moveable.cc
! b3d2ad4a5b8f2314685d388fbd66e23b  libstdc++-v3/testsuite/23_containers/queue/requirements/constructible.cc
! 94d5f4996503140873752cddd6227bc3  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
! 8d0da03d9bda7e7c8991a7bef025278c  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc
! b2cd2b6db7084613b301f45e64cf4419  libstdc++-v3/testsuite/23_containers/queue/requirements/typedefs.cc
! 5d78bea97ebce1c5f24cedef5dd83ad0  libstdc++-v3/testsuite/23_containers/queue/requirements/uses_allocator.cc
! 7d2730ee254fa92fddd975673799a69a  libstdc++-v3/testsuite/23_containers/set/14340.cc
! 94e1c6a9f5edbf1bf9516a808983a663  libstdc++-v3/testsuite/23_containers/set/18604.cc
! 7e8a2053fe092da386b9e075db752894  libstdc++-v3/testsuite/23_containers/set/23781_neg.cc
! f78256775857986a0298f6e1cdaaf88d  libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc
! 880c58cd4ad9d821a9e0339bbadc40ef  libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc
! 017908e680c88bd0afca54db86fb9c65  libstdc++-v3/testsuite/23_containers/set/48101_neg.cc
! 5166226f009f24acfc5ecd389afb78dd  libstdc++-v3/testsuite/23_containers/set/58764.cc
! e1c2b1464451d8a20a895092f5ffae95  libstdc++-v3/testsuite/23_containers/set/85965.cc
! a04486eed5b3ce1578876e3fbe24a959  libstdc++-v3/testsuite/23_containers/set/92124.cc
  4934612c2b7203e0e300739be2067260  libstdc++-v3/testsuite/23_containers/set/allocator/103501.cc
! bcc3e5045cea0097283938d6b2f79e04  libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc
! d491ab00afe9dc561060e6a13a75211a  libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc
! 4733a4509e897e61c0b96894fea2a880  libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc
! db153f2eb94650c40ac7088a72aabcdd  libstdc++-v3/testsuite/23_containers/set/allocator/default_init.cc
! 28a6f3c48802fd8dc816797a50d7a81e  libstdc++-v3/testsuite/23_containers/set/allocator/init-list.cc
! 892e7d56b43d75ce2f62fe639dcf4b0a  libstdc++-v3/testsuite/23_containers/set/allocator/minimal.cc
! e0bcc50117ca7607c79c8ec93b09acf1  libstdc++-v3/testsuite/23_containers/set/allocator/move.cc
! 70b59549670fe9b2715b0d95d8b98390  libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc
! bdc69c136905016f5ae633adc6535161  libstdc++-v3/testsuite/23_containers/set/allocator/move_cons.cc
! 18b4a368a4d48fa23d3d4d34c0dc5934  libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc
! 34da867a8dbcde7052fc41c7af552c97  libstdc++-v3/testsuite/23_containers/set/allocator/swap.cc
! 3fa4160726b2f78bab260ed35dd108f3  libstdc++-v3/testsuite/23_containers/set/capacity/29134.cc
! 3f6e6f1c0541bc3397ceed5579dec0f1  libstdc++-v3/testsuite/23_containers/set/check_construct_destroy.cc
! f389f900ca23e843719dc5defe5bd20d  libstdc++-v3/testsuite/23_containers/set/cons/61023.cc
  481e4d5cd05c18aecc038aaa29dea042  libstdc++-v3/testsuite/23_containers/set/cons/deduction.cc
! de845dba911ceb5c2eac894727f73b9b  libstdc++-v3/testsuite/23_containers/set/cons/moveable.cc
! f558c7be705d514d0c2f73b7a0663ae6  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_default_construct.cc
! b7c695b785f6268951961101de2f22d3  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_move_construct.cc
! 6a2293b2f9893504f1b325318b5556d5  libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc
! 83968696d0a7067ff4a850c2eb0eea82  libstdc++-v3/testsuite/23_containers/set/debug/114316.cc
! 47f6529020c14aa2a71f4181090c36ac  libstdc++-v3/testsuite/23_containers/set/debug/60499.cc
! 9f66ca0f5ecc5c74e67a6d3c07ba7d38  libstdc++-v3/testsuite/23_containers/set/debug/90102.cc
! 65b57a3b5d86509e9fe1c2fe89526b73  libstdc++-v3/testsuite/23_containers/set/debug/construct1_neg.cc
! f5cd589b8a6b8459691889d4635c89e2  libstdc++-v3/testsuite/23_containers/set/debug/construct2_neg.cc
! cd40de654d482dee1a3556b91fa135a2  libstdc++-v3/testsuite/23_containers/set/debug/construct3_neg.cc
! e38b16983b9a4a03f4d3fc2c07a59f9c  libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
! 0880cb692ac0a9936779dcb22dc8be85  libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc
! 0029f287c304db75c799294129a872b1  libstdc++-v3/testsuite/23_containers/set/debug/insert1_neg.cc
! 03e61b14d16273eab976d90c7b4a7eaf  libstdc++-v3/testsuite/23_containers/set/debug/insert2_neg.cc
! b633e17e531626fc21c6f53d8d87c187  libstdc++-v3/testsuite/23_containers/set/debug/insert3_neg.cc
! b2c7bee955ed3d2c7f288b7ee2719313  libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
! d2ab22858f207aaab44a4c89f6a45fcb  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc
! 6474ce232e6817cb888e3c7f9b16247d  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc
! e422839705cd2f8c982b69861910f10c  libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc
! f634f106967c3cabd7279b03e7385270  libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc
! c1255aabc0d24e4308170a8162ba7f98  libstdc++-v3/testsuite/23_containers/set/erasure.cc
! 523e6c020c3b3ccb07442703c5672945  libstdc++-v3/testsuite/23_containers/set/init-list.cc
! 600f3a07c5d12def9ca643094daf86cd  libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc
! 79185099b8bc299346aca816270affe0  libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
! f9ed8e79ff2a319d1045f09265291b01  libstdc++-v3/testsuite/23_containers/set/modifiers/17948.cc
! 1ced9d4b5167eaf134d2185e49817d67  libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc
! b556fc0acff4f5ff67d18858d97f574b  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/1.cc
! 6e23e0c62a4199ac4d3479a38d1d64e8  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc
! 52a4548346601d7e6d220a29a5835f36  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc
! 2f54dee5fc2881280c6a02eb0bb2752f  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc
! 88a1b24d294b05e8d7e49d2a11fef39c  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc
! d7e1e6eba0bf605935862f63177e98fd  libstdc++-v3/testsuite/23_containers/set/modifiers/extract.cc
! f435f00e64477623a7e9c021d990c106  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/1.cc
! 7c63544d97c5aae395f8033f9b62aa80  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/2.cc
! e1003775cd286d1fa5960f227fcfb121  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/3.cc
! d8af70d75a75b09998e72495adfbc54e  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/87194.cc
! 3ce8b11cdd461be1ecf47eb276863ad9  libstdc++-v3/testsuite/23_containers/set/modifiers/merge.cc
! be63701041d22c45c0cfa986d0dfd7b9  libstdc++-v3/testsuite/23_containers/set/modifiers/node_swap.cc
! ca710fff4438f1ea178b469e8709a2b3  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/1.cc
! 14e781aa9266335aa8a95ebfe6efdef2  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/2.cc
! 96a4f0aee7a8b571726b27f001e23752  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/3.cc
! 5c8d90f583aef70b045967c77d8c9241  libstdc++-v3/testsuite/23_containers/set/move_comparison.cc
! bd8330f0ac4a90c9c301987628a57e2f  libstdc++-v3/testsuite/23_containers/set/operations/1.cc
! f8e7431c9690a2824df83325aa524437  libstdc++-v3/testsuite/23_containers/set/operations/2.cc
! be9271d492d13db0cc8ab0af5bb7aab4  libstdc++-v3/testsuite/23_containers/set/operations/contains.cc
! 05c150316eaf93e136dc8b5dc1e78058  libstdc++-v3/testsuite/23_containers/set/operations/count.cc
! 0f957b1dcaf94acc33b222fc636d2363  libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
! 92140a1260f95524b249a55e0e1324e4  libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc
! dd948a09e72694e09d2ff52ae7ca0e4f  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs.cc
! 8f4a8a2eb950fccdda69acc735374765  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs_debug.cc
! 1e7bbeaf94f70dc30bb7df5109ce51b2  libstdc++-v3/testsuite/23_containers/set/range_access.cc
! ead3a0009675a8d232740cfd03a621f8  libstdc++-v3/testsuite/23_containers/set/requirements/citerators.cc
! 414419ca79c24434040c64925d321284  libstdc++-v3/testsuite/23_containers/set/requirements/exception/basic.cc
! 996650343994e80fd4b7973abf1f91eb  libstdc++-v3/testsuite/23_containers/set/requirements/exception/generation_prohibited.cc
! 2f3d7bf8945dd568ba7d9348f03cffae  libstdc++-v3/testsuite/23_containers/set/requirements/exception/propagation_consistent.cc
! 586ed8ca93109de56dfc2dcbf4245b6b  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc
! 9eb1ce9317a4bf763a59c9819adae952  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc
! 275ece31f17dc8e096f38ed577b112e8  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc
! 588c8067adda5c88fdfd81d75ae781b8  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/4.cc
! 23757e59501f67145849f830b0a7b574  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
! b7d75aeb2d1f9953cbb5cb73f5661d71  libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc
! 66ec80c70c50571844477ef975fe74c5  libstdc++-v3/testsuite/23_containers/set/requirements/typedefs.cc
! c40a530a9f9d8a0a09f73891bef444f3  libstdc++-v3/testsuite/23_containers/span/101411.cc
! abef8cc189d28e6cb89211d1b0abd4df  libstdc++-v3/testsuite/23_containers/span/at.cc
! b81b0cc6cb632e5dea362f65818c5b94  libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
! d60f7b59e825b845efbe645f5aee08c7  libstdc++-v3/testsuite/23_containers/span/back_neg.cc
! 3079136837b68baf200eeff8d2de46b2  libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
! bf42ecf9e224c05daf99ea1027024d94  libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
! 289c8854c4e87a36c166c36f73d8c435  libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc
! d827eb1450e0b6fde95d024f6f3965c4  libstdc++-v3/testsuite/23_containers/span/deduction.cc
! f63eb7669ca69113f20945452727cd7e  libstdc++-v3/testsuite/23_containers/span/everything.cc
! daef7a1fdef86febf45bfcdc4fbb8ffe  libstdc++-v3/testsuite/23_containers/span/explicit.cc
! 35bff1d8c8ee59e6657eaeb69d0c21e4  libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
! e94bf802d24f91679a410e38cc02af25  libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
! 419135866e42bf2ed07b3f6eeb78c055  libstdc++-v3/testsuite/23_containers/span/first_neg.cc
! 7128f2373277518dc64e48f8ca8c6507  libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
! 3998250f617c3a26bc0048e180aeed33  libstdc++-v3/testsuite/23_containers/span/front_neg.cc
! 01e127170abf2735e867f8e00077bae0  libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
! eb7281babdc4924716f90c5ce9dafc6c  libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
! 6fb54d5a3cf34ce242a9468755b4fe87  libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
! 41636b18c867b81c543d7012f972bbdf  libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
! 0d96bc2b1d2dfe11a3ef15b3755b316f  libstdc++-v3/testsuite/23_containers/span/last_neg.cc
! 6263fe0ace74c88294d6d286b5ef353e  libstdc++-v3/testsuite/23_containers/span/layout_compat.cc
! 9510d3da7bc2397614cc93e225bb2053  libstdc++-v3/testsuite/23_containers/span/lwg3255.cc
! e45c1853ec6f098abc263746f2bf72fa  libstdc++-v3/testsuite/23_containers/span/nodiscard.cc
! 7b48d29b091f0ec96951a4c3b28133e2  libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc
! 567af604dfdff0b018fc6af176fa17bd  libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
! 6897286740d372c157bad377e55bf9f9  libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
! 1da4b6a40a2117ea7b71953781ffe531  libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
! 1d200f1333426bb7b4948cfb1a639258  libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
! b57756ce6360ca0ba533ae435f3176f9  libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
! 6a69261e6ee3896ae92d8af8a326c05e  libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
! a9affc9a7a2ae9465d6265105e8e1cf0  libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc
! b1ca4face6583d5fd3a66308ce733f8d  libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc
! 90148a074f452f1c06a14e8df75fc8f3  libstdc++-v3/testsuite/23_containers/span/version.cc
! e3155a15eac5cbb89f353dfa05d31a74  libstdc++-v3/testsuite/23_containers/stack/77528.cc
! b8dd7c4a388ea72848eefd4ec36cddc8  libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc
! 30eff68d4d52f61fa1505e333664692a  libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc
! 8ba2702d17144859c5efb79e1ba62d86  libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc
! ee726c14895e899aea074edb15c9832e  libstdc++-v3/testsuite/23_containers/stack/deduction.cc
! 339c5d4e7fdf492589eceddd234ef643  libstdc++-v3/testsuite/23_containers/stack/members/7158.cc
! c1835580cd413f176c3f486b04ad99ea  libstdc++-v3/testsuite/23_containers/stack/members/emplace_cxx17_return.cc
! 2f579cdd875dfd0ca839a249012b11b4  libstdc++-v3/testsuite/23_containers/stack/requirements/constructible.cc
! 0c77fe032b7ac9161e505a1faffb2312  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
! 5262cee696938079d277a2d01aa32d1b  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
! 20faaf09f37f10fe6cdc57a9f0ac1a92  libstdc++-v3/testsuite/23_containers/stack/requirements/typedefs.cc
! 355112e32b0507338a00b4238a0c56b2  libstdc++-v3/testsuite/23_containers/stack/requirements/uses_allocator.cc
  8095490ebaf0100077d254e713821ec0  libstdc++-v3/testsuite/23_containers/unordered_map/104174.cc
! fd000ba511dbe7bac030715d7814cf6d  libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc
! 821fb99baacdeaf0109a9b127e8d50e9  libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc
! cc161a7626cfb496af2eb74cd506fb5c  libstdc++-v3/testsuite/23_containers/unordered_map/48101_neg.cc
! 3c627ccdc5327c36faae165812afef3a  libstdc++-v3/testsuite/23_containers/unordered_map/55043.cc
! a2850a3b6b0df1002eb322f2ab44d901  libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc
! b385b1a1f9731323c8396d2b30c1849a  libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc
! 219fccd5cd9dc2df16336e48b36071c0  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc
! 30a5accf497f2adf546ed835e237d4d6  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy_assign.cc
! 958bcc9742e2748a7afbaab516c3f3f3  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/default_init.cc
! 4b47bb0c4e3ff6c0da81c71e4b482f05  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/minimal.cc
! e67aa22f292d7a625cc47e7e64fe5dd0  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc
! cc222fe54a1c7d01792856e3101bbb27  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc
! 062926fb6a9ea090375836cc0a12a4b7  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc
! 55460bba3fb207b2dff13b6fd54c4b71  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/swap.cc
! 8407a8afd5d37091597f15651adb72aa  libstdc++-v3/testsuite/23_containers/unordered_map/cons/56112.cc
! 5a9499eb11b5534391332f1eb2f598c5  libstdc++-v3/testsuite/23_containers/unordered_map/cons/66055.cc
! 8c73ea13ab531a10fe2d13c7e3d0f602  libstdc++-v3/testsuite/23_containers/unordered_map/cons/81891.cc
  85260b346a96810f495c68331eefcc0e  libstdc++-v3/testsuite/23_containers/unordered_map/cons/deduction.cc
  85f9f0cfc8a07ac716292470ac0bda11  libstdc++-v3/testsuite/23_containers/unordered_map/cons/default.cc
! 08688ec59a007da187531d860b75533f  libstdc++-v3/testsuite/23_containers/unordered_map/cons/moveable.cc
! b8434ff6a10b871bc7df51dd255391bf  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc
! 471212e20e210d8b8bc4ab19bc088279  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc
! 7521ff92bd39aabce2206e3f6385293a  libstdc++-v3/testsuite/23_containers/unordered_map/debug/60499.cc
! 8dbefcc6f1143831d74aacb2fc3a9bd9  libstdc++-v3/testsuite/23_containers/unordered_map/debug/90102.cc
! 4d6bfbd836cfd6629a1b3602cec5df55  libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
! c9ad2d85e28a10cf61fce412dd9f3ad5  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc
! e7d73872cbc153bd2bb903e991a3e5f7  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc
! 0efbaaad54da144a06aae0e2ce2d09f4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc
! e19d3b2746b52082f3fc30ba13198782  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cbegin_neg.cc
! 31fbb1c11f2127b4d148989cdc370a59  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cend_neg.cc
! 8bbff5f9dee2bc975242cc52b4b36aed  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct1_neg.cc
! f7d258560456f3ea80a39cd06ebe2322  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct2_neg.cc
! 80b3cfd27f0cac238e0375cdc41662a4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct3_neg.cc
! 83801837d84725df194faca485741ff2  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
! 9883c0b0b04ee3dc81d39c85731b7d26  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc
! 21917bce5dca3794056e4442e6816713  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end1_neg.cc
! 5f54cf5db695a26a4d9bb6c700193c61  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end2_neg.cc
! 70f120de36f8d4bae389362072c66cf4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert1_neg.cc
! 7564be6185d00c228c1b02fc2507aac4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert2_neg.cc
! 5411a8456187ed2ee0e3b414326f3952  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert3_neg.cc
! fe4bbbd9e4c731bace9ab4ca5d98a003  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
! 464d0ff9020bce6a7aa42f6e11dd1d37  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_compare_neg.cc
  1edf6281b3ca9799ae88148d55d8050c  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc
  6a98e53837af8954af5380d0b48b0baf  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc
! 28608b00ea586532c11bd4b42b7ab9d7  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_range_neg.cc
! 4e8f12758d1b9bcd6a1b1f5f75d457ba  libstdc++-v3/testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc
  ec5f25200eab229dcb114c539335f057  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge1_neg.cc
  1b50fcbac0e81550e3f02766b2163b1e  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge2_neg.cc
  d54806c3c63e301a8ace90147e276428  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge3_neg.cc
  a6d92cb4a8083799e28f1557ec3dc5ea  libstdc++-v3/testsuite/23_containers/unordered_map/debug/merge4_neg.cc
! 8797ae0e60562145855bb444ac0dfe75  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc
! fe16b787a829c5d10622ee585309689d  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc
! f9b1947cfd83e965cab0447f98164811  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_erased_local_iterator_neg.cc
! cb25d23ac1f3e9c1e730336d59ce5be7  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_iterator_neg.cc
! 612a358578568d98b36c30e93e6b1cd0  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_local_iterator_neg.cc
! c9de29657a64a3145b21248844ca626e  libstdc++-v3/testsuite/23_containers/unordered_map/dr761.cc
! 654eef0fe6f7666e7de9d5fe4c2e6f98  libstdc++-v3/testsuite/23_containers/unordered_map/dup_types.cc
! 978844b27a20e80ce3dc8ff8c64ce0dc  libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
! 9a3873bae61afbf9f39e529ae4a661f9  libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
! 3d6a249c1f6994522bf2f91d65355488  libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc
! 3ddffea618ecf17092e3be58b7fa4e2c  libstdc++-v3/testsuite/23_containers/unordered_map/erase/54276.cc
! 94f37f7485e9c35e4371d0fc78e17dce  libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc
! 6f6466b86e51864eb4c87194e7cd1cf4  libstdc++-v3/testsuite/23_containers/unordered_map/final_hash.cc
! f78ae800ee13da4050595f5856ff64e4  libstdc++-v3/testsuite/23_containers/unordered_map/hash_policy/dr1189.cc
! b24290e8c07ac3dccdb32694680a6866  libstdc++-v3/testsuite/23_containers/unordered_map/init-list.cc
! fb4965761879a69b2d8f31bf9749d7a3  libstdc++-v3/testsuite/23_containers/unordered_map/insert/105717.cc
! 69f5f5cea901d3a31d5747cb433f1796  libstdc++-v3/testsuite/23_containers/unordered_map/insert/24061-map.cc
! 44ed175b6550a94a349451542a3f39f6  libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.cc
! 24df39806ff32c2c5ccce2f46456c81c  libstdc++-v3/testsuite/23_containers/unordered_map/insert/83709.cc
! 5fcf290e731f0bedad77997c242040a6  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax.cc
! 74133ad0282534ebbf219013178ed22a  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax_move.cc
! fcdb0cd112d59ea5b4e6348679dc047c  libstdc++-v3/testsuite/23_containers/unordered_map/insert/dr2354.cc
! 1d6002d8e94eac465a8cd54a79ba84eb  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_range.cc
! af7471df5154f4df90a940c4ef704617  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single.cc
! 47a66639baf1323cec4b3411948fc61d  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-1.cc
! a92f8be0dad196d867da2349e0470d5d  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-2.cc
! 49e0172362459e1f9446f95608947710  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/61667.cc
! ee62949105fda60f7ebb6c2e68e0abeb  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/78595.cc
! 6ffe152002713cd08a13406632c30fd5  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc
! da71e4f89e8437c9c45192c987d91847  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/emplace.cc
! ab60ab4a2b93357cd0e01c84f59a133c  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc
! 20987b301d9588f39fd4596264b4d9b7  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc
! 01a0c0142b658255327e569cb7975fcb  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/merge.cc
! b0a1e9c1510a5d603bfb16c3ae8e3921  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/move_assign.cc
! ed483fbb5e61b6dbadaaafe898e8611c  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc
! 9488281957b76b0ea08f42a7f4002911  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/try_emplace.cc
! ece0578de973f89f86a70059a968f1ce  libstdc++-v3/testsuite/23_containers/unordered_map/observers.cc
! 8ed9604a9151cb891c46ce02d28fc68e  libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc
! f01fbeec3333c50635b681bc61983586  libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc
! 06790e08d929106bbb6753af8b8643be  libstdc++-v3/testsuite/23_containers/unordered_map/operations/count.cc
! 427675ebf66d617a8eb19198bf3dbc89  libstdc++-v3/testsuite/23_containers/unordered_map/operators/1.cc
! 2d367fa6c2cc53999dc3c91c685a142e  libstdc++-v3/testsuite/23_containers/unordered_map/operators/2.cc
! cf536f8042d885ebdff9add0c6388be5  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs.cc
! 3d097eef3c0aad3235546a09559b11b0  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc
  45f46b4cea5268d1bf8f903d79e3c350  libstdc++-v3/testsuite/23_containers/unordered_map/profile/hash_map.cc
  6bcaac31a8700749f12b90fa8913629b  libstdc++-v3/testsuite/23_containers/unordered_map/profile/unordered.cc
! 47852d8898c74cc1b1fc0718fc98512b  libstdc++-v3/testsuite/23_containers/unordered_map/range_access.cc
! 8940dafb16d06d921fa19aff1e48d3be  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc
! f4e4ca9b52fcb02f63fb2bb62eefe91b  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
! 5eec5eefa1c3df0eb44b8713640841a7  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53339.cc
! 626321f45ce6c5a0bb35d5d6ac6a7526  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/citerators.cc
! e493aef2aa2318fea0aef9a54830a845  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/cliterators.cc
! 5f4d2e9bbca3b92c3e63c88a73daeade  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc
! 5b14b21db4eb4967c6c059e5dfcafbd9  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_mode.cc
! ad89205564a664751cb6fd424c82e150  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/basic.cc
! a7625053d900c5b075790fe706e9caec  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/generation_prohibited.cc
! 12b60114c403e26bfc0879e1bd9fd171  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/propagation_consistent.cc
! bf41825f845c9f0757ddb7e5a3754137  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/1.cc
! 744ae3919b37f53d0b8378f600464873  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/2.cc
! dbe25e58e40222d4dffb86d9738c3033  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc
! 8421ec7dc7b3efbef291a32b87ee39c1  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/4.cc
! 0c9a02b7ffa37a4e032813417d1ca806  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/5.cc
! 4be197da129cd8618a86190ced877d5e  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/typedefs.cc
! c5b0de167d3ac561b4abeaad639e8652  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc
! 7ea18f51445c32f40115099caa4e35c6  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc
! 3e01b3ff3f82c5763c37ac142c72bd68  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101_neg.cc
! a1724de3ee7fc522f0b553378ae44ff8  libstdc++-v3/testsuite/23_containers/unordered_multimap/55043.cc
! 2cc3fb63000336e44809523c5dd03240  libstdc++-v3/testsuite/23_containers/unordered_multimap/96088.cc
! 50ca0d209d5d6d3e5e7b33b82feb225d  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc
! ea27368c66ead710680b89828a374868  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc
! 6e03983f5bff905904b83e7d674e0388  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/minimal.cc
! b602fb8f03bcd7711c66107d774a3dd5  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move.cc
! 8c83bef47d2ded21b828735786b16dd3  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
! 2bf40aa3b52ef92ec7b7457136c44293  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc
! 5cc3e86e9629d75ce822c1c57a175c0c  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/swap.cc
! a314036bbbcc9869d8245e26b9f2b280  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/66055.cc
  1339c52ecafcfc46a0f64547b8873082  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/deduction.cc
! c79c76ec5a6315281e7d1d2fbfe1bed6  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/moveable.cc
! c106071f55bbca53f3cca0fc747456dc  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc
! 244c6a7f98c1ec86698aaed6591e939e  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc
! a7977b570770a283323d09904e0b7adc  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/60499.cc
! 55119e07c5859379365c8b78842e0f73  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/90102.cc
! f43fcf1fec2300ab0eb874c42866185b  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc
! e7d73872cbc153bd2bb903e991a3e5f7  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc
! 0efbaaad54da144a06aae0e2ce2d09f4  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc
! e19d3b2746b52082f3fc30ba13198782  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc
! 31fbb1c11f2127b4d148989cdc370a59  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cend_neg.cc
! 01de47b6e7cef32c410b6b358b53f5d3  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc
! c71304daa6172b941ef59acaa9b944fb  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc
! 74aca66f75838a4fefdfe5fb8e1f46ba  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc
! 0021ac7e0abedebb11a5201a4dc01a19  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
! 112e0ce273e24967137becc3654efb33  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
! 21917bce5dca3794056e4442e6816713  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end1_neg.cc
! 5f54cf5db695a26a4d9bb6c700193c61  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end2_neg.cc
! 074149c581847acccc7720b051659cfd  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc
! 8f656d147000701666bf5041f4b99101  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc
! b62dd9eebd3bb0ce36b3e336bafb850e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc
! c57828f745e549a9da5c6164321779b0  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
! a1a47fc7d66551b1b43b22d22728ae29  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_compare_neg.cc
! efaf1bb85bd7d2d1b886b2ba3b2e9ef7  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_range_neg.cc
! 0379d015e70b1e03dc2edafb82018064  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc
  4590d5159c6810e053d83e37afdfdccc  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc
  10748ae08ea59767c0dec11efeda3ecf  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc
  5711a56e85b25164885d87e3528b0d4e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc
  f30bce9979bec5403e8d4079e23bd752  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc
! 60d4924bdc38b587b6fad8966dd69641  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
! 46a5d77549a85be47f51849ac766b619  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc
! c0a9c96d683bb4ad012d5f9a19113200  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_erased_local_iterator_neg.cc
! e7564429e414794ba5e60f12c135728c  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_iterator_neg.cc
! 83fd56ac6ed2cab4be57b01dfa344857  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_local_iterator_neg.cc
! 6934c88ab955bada45cfead6a0f8af04  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
! d2e6effe90800ceee17cd91bf9832b97  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/2.cc
! ed966f8387f366d97d79a31d67404fb9  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
! 1e8964e5b539e450b6878f7970d894ff  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc
! 951365a3c5672f936e56ee62e508a6f1  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51845-multimap.cc
! 2ee36ba15d0afbe3f9314661d303947d  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/54276.cc
! 93f027068b73c0bffbf4fc7daa6798e1  libstdc++-v3/testsuite/23_containers/unordered_multimap/final_hash.cc
! 6097f345ad6c21530cd601d0eb057fef  libstdc++-v3/testsuite/23_containers/unordered_multimap/hash_policy/dr1189.cc
! 14bbe51fba7ba97a29cadf35d2fa9488  libstdc++-v3/testsuite/23_containers/unordered_multimap/init-list.cc
! 133c16e951cb82cda9d2e6eb08569aa3  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc
! 73258b67ad9e9d8f88a4155666ed5f90  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/51866.cc
! c228b1d9f0a4ea24aa8e695fc7843ad5  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc
! 9bb401ff080940b40ff40669b52c59ff  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc
! cf34e1bae4b3ab07e8ef975c7b1b4144  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc
! 6aa4aee838cb8ef164f54ee061e5868b  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.cc
! cad67eb11b9cb4d0db9d906b24958b9f  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/dr2354.cc
! 40d837d6fbbaa861bd8a2d01862847ae  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc
! 86c5b372596d5c5d5dc835e615e2849f  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_range.cc
! 3d8ea79df94579be76218c54260a46bf  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single.cc
! 98f8159d2cab740575bb19c29579f28a  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-1.cc
! 7eb3ba3e0602e5e1dcf526882b5edb6e  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-2.cc
! f7ff37b7c1d49168d557f14b81e81019  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/78595.cc
! d1cb1cc251968c3772af2fe17c4e6d0c  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc
! 890b9093d01d519a1b2c7d2c7bfd3754  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/emplace.cc
! d62ed976b80332ffeaee3e2dd4200bb8  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/extract.cc
! edc981c2472dccfaefcf7b48a896a552  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/merge.cc
! 745bd29c89e1966abc125417d9284ff5  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/reserve.cc
! 1d70d53c6973a54b0f4c7acf3ab068ec  libstdc++-v3/testsuite/23_containers/unordered_multimap/observers.cc
! ec06561cfe37c99b50780d803d90e5c9  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc
! 8f5817f4576e37e74146da980cd19ae8  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc
! 74c0b5af8b9b53c1417d550e219ded68  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/count.cc
! 82a6e2ef3bb22b4ce69958e6cf07d5dc  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/1.cc
! a1deb9f79d2b3ff766f94ddac574b63f  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/2.cc
! 45a6e576e5c25369864274942513e3f6  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs.cc
! 0562b54c43f8df99d3ee1ea9272b0c1f  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc
! 639f3ae3bc3d9b8f5ae80c0818a90994  libstdc++-v3/testsuite/23_containers/unordered_multimap/range_access.cc
! a70486c5332ceca3baf45a0d704eaaef  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/53339.cc
! 1a3102da46bc71f9fe667e0bdc2bebe4  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/citerators.cc
! 0abd1a77229e2a1ddc49e408994063d9  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/cliterators.cc
! a5096bb492b6a0b5e1ac9e9e22aacf50  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc
! 460507d876c1ec82c87b3d7dec96b62a  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/basic.cc
! 205d8746e5b7810d225d82c8b65570bc  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/generation_prohibited.cc
! d0a5a9d70b794c3b2c832a1cfe2625f8  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/propagation_consistent.cc
! 54cb51130d69c6645d98e8a583a17323  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/1.cc
! 8b4c044134066c8f49d4c11e8e5a8852  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/2.cc
! a085c85079fa43d6a27706771374c47a  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc
! acbcac9816ffddab6b9e855939277530  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/4.cc
! 5c0ad249d41506523f69ba2dfc84e8ab  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/5.cc
! 259fe413e24a8f4814206dcac7f753f9  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/typedefs.cc
! dfdd52d3d0fd84e0d648cf5bbbd31a41  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc
! 5ce7ab9472b39a630a4c662176494188  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc
! 00941eda65ce9c52011167c4f85bfa07  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101_neg.cc
! 0cdcb6278d311beffb0b639b71e0f057  libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc
! 7a8d87424a257c3ca1fe6de6e5c4e06b  libstdc++-v3/testsuite/23_containers/unordered_multiset/96088.cc
! e0d42a566b5a34016ec52a970b6da4d0  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc
! f8aff15803fc1882eb94c744d2566b82  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc
! 5bd876c8c26b4ce8510bfde0faeacf2c  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/minimal.cc
! 2f367c5274559a26fbc09607f49f46b2  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move.cc
! 66568b41db4aba7e5bf1b4a85ab8cb2a  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
! b85fcefef4d65668f8d8dbd6d2b951e6  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc
! 75c18f96bcd882c393c71ccb6c444b22  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/swap.cc
! afb477ee3563e7251739546eb7258997  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/66055.cc
! 43b6c4f93e200fdd9e6641d7be1a8764  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/copy.cc
  23f594bcb112a45f141a57ae69a39c30  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/deduction.cc
! a694c51a2ca79dab25309a4b948d1ad5  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/moveable.cc
! 5e4e35000e2ef4c29225a1e6b265d228  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc
! ac7a76b420706ecf6fefecb4afac205d  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc
! 577a6f08aa09005ae193142b26ff905c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/60499.cc
! d4b1279273880620f6d8c3921445600f  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/90102.cc
! 90ecafa11aa365a7be7297f24e6a55a8  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc
! 07d37a6b65ba0551021abb2bfa390cd6  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc
! e866c8970c3033684b4c972ca210456f  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc
! 0c3f2944f58d9f6ad80b8a98ee1a52a0  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc
! f4cfed9436bf4fcc9237c5a0c32190f1  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cend_neg.cc
! a55227fe96f7dd754315e199c2932851  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc
! 5d954c065057f206ee7e011f1add401b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc
! d080bbcf7c126017edc2100674b6b617  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc
! db5256e2b4f556141755ef1215c8a5d4  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
! 99e9c894745237b8a025ef2410a27b19  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
! 0cf884a278a8989bafffbbf84b3c7980  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end1_neg.cc
! bdaac72c76871db05983de72ac5f9035  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end2_neg.cc
! 77915ea01764ffc4ef84a634c9c40fa5  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc
! fa501b0b6e9b278371cc1fb5e387a2e5  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc
! 8735bdc954c2dd2525a844cc78b54d5a  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc
! 2db348ef9f950f0e795f593368f6dc68  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
! e72928183823a03c66fa503458e64f58  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_compare_neg.cc
! e121df943489b26874c99f527a75375c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_range_neg.cc
! bfe54e28dd114bd666bb4f31fed72817  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/max_load_factor_neg.cc
  57b376626504f59753991e34bc78237c  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc
  4780603df65da907f59b5dc2271c7d4b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc
  d1a56802059f8869425e49137d01db11  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc
  ced06789a8924ce0bc694421897b8fc2  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc
! 0573d6011fa030771a9905c52ee40063  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
! 011e3e52fef17f2b3f27ed860d3d3cd4  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc
! b6453d3ea533c455c1f89c15763cce5d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_erased_local_iterator_neg.cc
! 575d1781035ccb11679c183703effcfe  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_iterator_neg.cc
! c329d95a1d0785abc1d7abb40aa5d517  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_local_iterator_neg.cc
! b14a9c91bce333cbd4b5ef989612cd45  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
! 86ec182c65c07bd73302f68b9296efc8  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/2.cc
! 27fc37a710a617d1b50f3e529f75fe7c  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
! a86d4db4d5a774121ca87940884b911b  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc
! f0beb6ffb5d462486c484f531dd00b20  libstdc++-v3/testsuite/23_containers/unordered_multiset/final_hash.cc
! 9bbfcd09cb90dabf1a62cdf090631792  libstdc++-v3/testsuite/23_containers/unordered_multiset/hash_policy/dr1189.cc
! 27307bf64008368222ad05c2b15f9a3c  libstdc++-v3/testsuite/23_containers/unordered_multiset/init-list.cc
! 430cc6597f24db683ebb376fae8e96ff  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/24061-multiset.cc
! 17d500fec09ad7b413d5f0c0968b2ee6  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/51866.cc
! 50f28aa514f00a9e2cf46344a03c1785  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc
! 192b15c12141f896746fdb37d511942d  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc
! 8fd8f8a2d426338c356119704d738603  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/hash_policy.cc
! 0b32bce39b2bee66c8849c0c0a5fc889  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_range.cc
! 64f0e907fbd556b407f79f590c1e0038  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single.cc
! 5b6266c64ac6856490e7a9781121e1ba  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single_move.cc
! 81ce776a3ac75fcc704e7f3efc65de81  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc
! e20bbec56f0fbfba82caf9bb12cb04df  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc
! d2d68a3b2aed63924afccbc0c33af154  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/emplace.cc
! 0134bbbe8481b7dfb58b73429e28ff22  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/extract.cc
! 06e82cb54c8465c7c7ec57836a6f80b6  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/merge.cc
! d51e95fe58c406a49062533d9785413f  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/reserve.cc
! 5e739d568a66104fa0025b4caee86d10  libstdc++-v3/testsuite/23_containers/unordered_multiset/observers.cc
! 94982738adf2cec9870fc3f795bcc456  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc
! 7213d4d14a0335bc52a0538259c97436  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc
! 6b67b6017de9c7d25f33c3066e525517  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/count.cc
! 44c84262f3e779c5d6bbd6ea3134ccb0  libstdc++-v3/testsuite/23_containers/unordered_multiset/operators/1.cc
! ff35f212acf5391b567cb10df48f8daf  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs.cc
! de09dc139ca701d74974333c8470c8f1  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc
! b43e96f1d8e47058cb5d97071665efbf  libstdc++-v3/testsuite/23_containers/unordered_multiset/range_access.cc
! 67e52533c5ef0e654bf36fd54f5521a8  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/citerators.cc
! a71d5184a885082cf3d634bef2c29071  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/cliterators.cc
! 25b13267eb897744d12e6a27c0aedfc7  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc
! c3f8e624ea60537a9c0af3542398acc4  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/basic.cc
! 2b851609237a51ecc0aa743c2c7b1324  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/generation_prohibited.cc
! 03aef0953d00b17cfeac693bc7329543  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/propagation_consistent.cc
! bbd7196ab25e0478161e577515f2f968  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/1.cc
! fcda47d1ba88d4eb4a8556f5b4aa6f08  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/2.cc
! 968b23c06e4c46fb478f26df08230aba  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc
! bca08f5252b7511aa0da220c12d87526  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/4.cc
! 0ca18e0d752c0e48f7a2b360f906c2bb  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/5.cc
! 5e5991c30cbcf9d96e4ce94eca12df04  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/typedefs.cc
! 0f34c4a5210f1abb73ed6cb74dc42254  libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc
! 883a4186996fdada50e9c8ccfd92060d  libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc
! ead4e5c6b5de0086ec5b9bc72d8f365c  libstdc++-v3/testsuite/23_containers/unordered_set/48101_neg.cc
! 3f8b1335e3b4ff5bb08e6ca50081e43c  libstdc++-v3/testsuite/23_containers/unordered_set/55043.cc
! 9bbe567e8a83513e30531235dcc57ffd  libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc
! d0e9ab1f74d8732ba962dc2d18c482b7  libstdc++-v3/testsuite/23_containers/unordered_set/56267.cc
! f2dbd79aa284ce4c4d911341fc13bf6b  libstdc++-v3/testsuite/23_containers/unordered_set/56278.cc
! 5bebcd35cc594277dfda554397879f75  libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc
! c77752e6693518a189db1389046853e3  libstdc++-v3/testsuite/23_containers/unordered_set/63456.cc
! 52d7c8d9534437526aa8a876f01a4a9e  libstdc++-v3/testsuite/23_containers/unordered_set/85965.cc
! 80c1d8acb9fb010fd924b71710ca96fe  libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc
! ae9936080af24c002231ec180be019de  libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc
! cccdc9a860e9fde8d4aa8694851c8811  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc
! 7ba9daf9b0b7cfd4df6b4f900f01966a  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc
! b85278913d21d3262c9960f7992d53b7  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/default_init.cc
! bd56be716b22cf2d4b2e95a6271217b4  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc
! 712e12f785d850b4075750bea1cfdaf1  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/minimal.cc
! 3ddcdd1bc9534867b821285db5e84da5  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc
! 7214a5fe19d53ead3379affa563d8e83  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc
! f6621242d4710885bbec3a270208e004  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc
! 00158cef7c8ea3b5232aaab1d8ca857f  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/swap.cc
! de02275423b715ddfb352666a8fef08c  libstdc++-v3/testsuite/23_containers/unordered_set/buckets/swap.cc
! 5aa5f8e5a0b77cf4cd501c3377c6d6d2  libstdc++-v3/testsuite/23_containers/unordered_set/cons/66055.cc
! 3ac532b36aa99dbb1f07cb1c971f4991  libstdc++-v3/testsuite/23_containers/unordered_set/cons/99985.cc
! 35acdc4bfc6dbbd6e78de119359f68d3  libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc
  50d3a4852641ffb5d38114a701a2047e  libstdc++-v3/testsuite/23_containers/unordered_set/cons/deduction.cc
  247af40f0de6e07e87bdde64812f8659  libstdc++-v3/testsuite/23_containers/unordered_set/cons/default.cc
! 8b9a7b56022e65b6fef9ecc035f9b57f  libstdc++-v3/testsuite/23_containers/unordered_set/cons/moveable.cc
! 11043f8c6852d80ffb32a1b1344b31de  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc
! 6baf362c934a94e421b7ce08c4026084  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc
! 6d1ee6068796085ea03d2979d54166f1  libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc
! 1ff3da9ccb1453e5c696c1a351a88689  libstdc++-v3/testsuite/23_containers/unordered_set/debug/114316.cc
! ca2f171a80f33e532e23af456594edbc  libstdc++-v3/testsuite/23_containers/unordered_set/debug/60499.cc
! 605f33c766cf1a4ef0bb12d34524a556  libstdc++-v3/testsuite/23_containers/unordered_set/debug/89608_neg.cc
! 00e402b01128c2a5ec1103e88ce15119  libstdc++-v3/testsuite/23_containers/unordered_set/debug/90102.cc
! ac359458cd96ed9078097b8a40f2e2d3  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc
! 3ad005a9ae947a25c9d220a99e86a71a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin2_neg.cc
! 3feb9d6b037a6fb4355cf6a2e8a58d75  libstdc++-v3/testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc
! c95009b335892b327d5ad396ad37cbbf  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cbegin_neg.cc
! 55bb523a62c97532b5552ff9a92799f0  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cend_neg.cc
! 3f8ee4594785aa661fa4588fa623d71e  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct1_neg.cc
! a1c1a0746e24d390b477e58eb38cca43  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct2_neg.cc
! 0a75f586f1668668857a02ed1a010e57  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct3_neg.cc
! 41cfec6aea069d3e0d2b575b62b6ee8f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
! f1e714b2ba9812b517a135e8909a32a4  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc
! d3599d7845dd1997bfd13b9cde4222ea  libstdc++-v3/testsuite/23_containers/unordered_set/debug/debug_functions.cc
! 73286325ee583d1ae92f9edc5217b130  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end1_neg.cc
! ad3e019490c4f8d49e85e157163246ce  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end2_neg.cc
! 72a2b53771c70d70ca447554dfee572f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert1_neg.cc
! ad2bc7aa92588accfaeca70c0d51c4bc  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert2_neg.cc
! b9f78afe85471395c75fa7b458d77bc0  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert3_neg.cc
! 5800829b18b7968d327f012b6150046f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
! bfd266951f441b66e1fb6d564bdfb054  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_compare_neg.cc
! afc9a0aaa6afd80693790e5ba636a2be  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_range_neg.cc
! 8d1e51096ea8e7c3f06f7f114c1da71a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc
  8121fd537a86b2d9c88f3a74d9dfd917  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge1_neg.cc
  8abc555d1b878f2729647a5a9b417280  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge2_neg.cc
  fb91af2ae75ed5745c8773ed8318a311  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge3_neg.cc
  00a3aa9959b3b6aa3847806d2fcccfb2  libstdc++-v3/testsuite/23_containers/unordered_set/debug/merge4_neg.cc
! 0961dccee25c6839fa4ba6408a2b1699  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc
! 19b9cbcdbd0df95a744b8043ae8190ef  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc
! d3fe0245e2be839f37002a900872d191  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_erased_local_iterator_neg.cc
! 808d94476eff30d17acaea06ccada2e9  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_iterator_neg.cc
! a1be2873d3142d78f270de2b17cf737d  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_local_iterator_neg.cc
! 78b25f180964565744f1e8d26dfc2e45  libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
! 0450f52e7cf92482bfc2f1c98091270f  libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
! cbb173337ca93a38579868883ac090a2  libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc
! f222a52c290fb0d96e43fca3314e8ac5  libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc
! 1611c46155f0b2fad0109ff3de5661f5  libstdc++-v3/testsuite/23_containers/unordered_set/final_hash.cc
! 5f609e06477f487ac670f15536ea6258  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/26132.cc
! a8ebd6df4b0d69790a9c3b72572d063d  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc
! 65256ad1e0531ea44d3723fbd79d0454  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/dr1189.cc
! ead480a4f416f04ac807da233bbe0c51  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/load_factor.cc
! 5c37a41d2643ca1c8e25bbd08e07e9f4  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
! 73dba94981df67c0733fb05be32c1478  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc
! c83ae44897a92c2a3f91327b8b4c7e33  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/rehash.cc
! d419d64c74190e0fe829676f32e973b1  libstdc++-v3/testsuite/23_containers/unordered_set/init-list.cc
! 52112198d70a19f6322244ee547c2864  libstdc++-v3/testsuite/23_containers/unordered_set/insert/105717.cc
! 25fdd3b383d5352b36880b203fb31d5d  libstdc++-v3/testsuite/23_containers/unordered_set/insert/24061-set.cc
! 4e4c5f3dffff004f4cf2f0ac9b4e2c13  libstdc++-v3/testsuite/23_containers/unordered_set/insert/83709.cc
! 566c6c0cd2ffe3ef6adbedd8ab02d3e5  libstdc++-v3/testsuite/23_containers/unordered_set/insert/hash_policy.cc
! 23926be00a140486b6a946cf76fc6a64  libstdc++-v3/testsuite/23_containers/unordered_set/insert/move_range.cc
! 415b043d82b7f8283cf75cdfb9cba98e  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_range.cc
! 407051864b035295f6ec37e655c95af2  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single.cc
! 2303c8d2105087c8ec9c141fe608ee76  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single_move.cc
! 7806ab6054c4e04ab281ac6cfc38a301  libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
! b6b7c7b4ac6631bd9c1933c123d4d3d1  libstdc++-v3/testsuite/23_containers/unordered_set/max_load_factor/robustness.cc
! 48b51763d3c882761e49bc54aa3174c2  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc
! cd4bee79c1e98b57b4208ea60ce54ee1  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc
! b87145f3345faf73412c211c508b515e  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/emplace.cc
! 6d626c0e3793cf568046ed4fec4ddad3  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc
! 575a6fb1ef03b18a28ecac99dce64b5f  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc
! b1b3ab51de3dc552fbff37d9e481edb6  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/merge.cc
! c5e6f9355d3c870d101254f4b7eeef6c  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/reserve.cc
! e563dcbcd4261b8e6b394d8d70b5c250  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc
! 9c26492a58ea731469b10594d83244f8  libstdc++-v3/testsuite/23_containers/unordered_set/observers.cc
! 60eef5e2076403a8c1928b06f54e5c98  libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc
! a05013dbea532a0e8adf37f8ae5e2e0d  libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc
! 8d42558db26b8d96740831da1e7016b7  libstdc++-v3/testsuite/23_containers/unordered_set/operations/count.cc
! 010af23e4e221899486e3f2377890628  libstdc++-v3/testsuite/23_containers/unordered_set/operators/1.cc
! 8a2444c44f89f5d64af1acb9a7f80aba  libstdc++-v3/testsuite/23_containers/unordered_set/operators/52309.cc
! 53ad944f0b913c8294652175fb3cf323  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs.cc
! 781331541b6ee6fa95c2c158853d3883  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc
! fade91ee94f454b455d87044a7b42dea  libstdc++-v3/testsuite/23_containers/unordered_set/range_access.cc
! c21131c685279060f173de7532d7984c  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc
! 673c6fdd5e0635b7ca9e7706300d4270  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
! 5e019c5c44dbd24f36c3b40960d58540  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/citerators.cc
! 2fccb336d6c4fd63fb10ac1de5b69029  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/cliterators.cc
! fde32ab880d7e05f866bb180aba74952  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc
! ddc8abc6ab8a3e790cb8484a265c2f8a  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_mode.cc
! 8ca00d802e6c2e65eabd2ee9784882c1  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/basic.cc
! 00cc8d5fa2aa117a4d60e3eb1313cc86  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/generation_prohibited.cc
! 9d1f4aa1939b1eef694b61d8cc9863df  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/propagation_consistent.cc
! 90153cc38a6027b0e554ddedd861b2ed  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/1.cc
! e760ba34277aa6e0600aac1af9f75e26  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/2.cc
! a6c30cb472e43a3d3978bcdba7c22437  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc
! 1d7933939f5dda930bfe8c7d81e99111  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/4.cc
! d9420f81c3f11a14dfc063c1497c1f2d  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/5.cc
! d4801cbb97be9d2b861c059c2b9d36c5  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/typedefs.cc
! c4a5b436cd582514c8739a73fc6f47b7  libstdc++-v3/testsuite/23_containers/vector/14340.cc
! bfc27aa16f90eea78bbd66e3494efa5e  libstdc++-v3/testsuite/23_containers/vector/15523.cc
! b9a80d666fe2c8a78ac8925fd6db4b27  libstdc++-v3/testsuite/23_containers/vector/18604.cc
! 84326e87a842ad7c728552ced841da62  libstdc++-v3/testsuite/23_containers/vector/26142-1.cc
! 0c59ec432278ce68292f3bb94daebb89  libstdc++-v3/testsuite/23_containers/vector/26142-2.cc
! f5fa30504847b2e76efef8e888850679  libstdc++-v3/testsuite/23_containers/vector/40192.cc
! 038049edbc23f4763d022c8844ca7ae1  libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc
! 4a3b3b6fac3e1c7c9f4453b300cf27df  libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc
! 02f550dffd623ff09bcaa4604a2d1426  libstdc++-v3/testsuite/23_containers/vector/48101_neg.cc
! 642e13bb5056753d0fb21c03f07041ea  libstdc++-v3/testsuite/23_containers/vector/52591.cc
! b73b867cf793729e420639a90b40498c  libstdc++-v3/testsuite/23_containers/vector/58764.cc
! fac3696f2e0219cbd1be347e92805695  libstdc++-v3/testsuite/23_containers/vector/59829.cc
! a0b2636991e86ed0708000cd6750cf64  libstdc++-v3/testsuite/23_containers/vector/63500.cc
! eb685f9ef1f0b6b1b159a590df2a5c99  libstdc++-v3/testsuite/23_containers/vector/70303.cc
! cf20427de49e93f3aa5fb2d45d031397  libstdc++-v3/testsuite/23_containers/vector/92124.cc
! 6c8a3c0736e4302b19cd2432e47d1f1a  libstdc++-v3/testsuite/23_containers/vector/allocator/construction.cc
! 95bc89e855705c53662937c0d0d5cdae  libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc
! 5c58000fc319eab287f8ec450051940e  libstdc++-v3/testsuite/23_containers/vector/allocator/copy_assign.cc
! 6fa69e2dd7dcd63b18117c39f1fe4035  libstdc++-v3/testsuite/23_containers/vector/allocator/default_init.cc
! 05f9301dd9435c3965f75c787e7b2f69  libstdc++-v3/testsuite/23_containers/vector/allocator/ext_ptr.cc
! 1a9d01cbb4360e1d1a21dbc9731acf47  libstdc++-v3/testsuite/23_containers/vector/allocator/minimal.cc
! c7201205ff723c47859f03288046e82d  libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc
! 6b006ab8e5b9ffa99089f0921b24b803  libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
! 86035a66a3fbd660c41b5278f99fe9f0  libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc
! 75c5b9c3d06ca7174753babab8a5191a  libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc
! 3082f2406344145be2eb620e6926252e  libstdc++-v3/testsuite/23_containers/vector/bool/1.cc
! 4fc9d9cf0cfa9e9f3a7219a3ee234caf  libstdc++-v3/testsuite/23_containers/vector/bool/110807.cc
! be5c3faf37233a420510802a256b1243  libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc
! c24897242a19a1dd8abbec78d83e6345  libstdc++-v3/testsuite/23_containers/vector/bool/23632.cc
! 6df224898d2f38d959deca744e5d1431  libstdc++-v3/testsuite/23_containers/vector/bool/6886.cc
! 492252b86215370a47d4a597acdf45dc  libstdc++-v3/testsuite/23_containers/vector/bool/72847.cc
! 25fb1167c159fb7ad5df674991357ee3  libstdc++-v3/testsuite/23_containers/vector/bool/80893.cc
! 66521b50b88932bdd2a71ffada50038b  libstdc++-v3/testsuite/23_containers/vector/bool/82558.cc
! b303f3d945bc01fbe6f7cc35839ad46f  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy.cc
! b74165de61685eb049a059064c656ba3  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy_assign.cc
! 4ad8817af802254509ee2e46dc315e9e  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/default_init.cc
! dbe9d9bde8fbe9f2884a281502ed5a10  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/ext_ptr.cc
! e239fbb6ce2ecc9031e199d9d3aaf315  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/minimal.cc
! a7ff7fc8e5da47e55c97fe5365f24bdb  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move.cc
! eca6f6a77d9afd99c5f2312f3e1aa386  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc
! 9237f55c7f6779f2e0bec6daeabdf9e3  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/noexcept.cc
! bdb7eb579c36ec731235478918636173  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/swap.cc
! 40934c073d8f939aaf277a5e990aaefa  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/1.cc
! 828fa8f81f659bb438b713d707d2e650  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
! bc99c897bc30ba1f3a12dd71e4619b8c  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc
! f1039c48908c38003d21d43a24aaca24  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/shrink_to_fit.cc
! e4aa6f7b1e06e695a1f9f2c372b67a8a  libstdc++-v3/testsuite/23_containers/vector/bool/clear_allocator.cc
! 61c2bb3e90bf0310c0d4b2d9d8b4c702  libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc
! f3d712f11f28215856d450cf5b00aa2f  libstdc++-v3/testsuite/23_containers/vector/bool/cons/1.cc
! c21ec609f0c5dd72f82df3eb447ed1c8  libstdc++-v3/testsuite/23_containers/vector/bool/cons/2.cc
! e640102c8e0b6e61cdef8f3bacf64e69  libstdc++-v3/testsuite/23_containers/vector/bool/cons/87809.cc
! eec79623339783e21b7aaf391dfb6585  libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc
! 58fb57a4264c29e25b768d548fd62040  libstdc++-v3/testsuite/23_containers/vector/bool/cons/noexcept_move_construct.cc
! e0b11c4dbbdafef2f8d275b74b88c682  libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc
! c48c63b68d98a14dfe873dee7e5431eb  libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc
! 0267d1951ce0294746f362645f002b8e  libstdc++-v3/testsuite/23_containers/vector/bool/emplace.cc
! 5712c89cd3774a9217e65a8b7bef0331  libstdc++-v3/testsuite/23_containers/vector/bool/emplace_cxx17_return.cc
! c59fbf4c665f509ebecea5df0b139d83  libstdc++-v3/testsuite/23_containers/vector/bool/hash/1.cc
! c2003c9d5e46b599fbae48cc392dbc12  libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
! 66cadf90db4d10ca4e010209810f99f6  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/1.cc
! c2caffba87c853ac017ff0008682574f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc
! 564442c432d0e1aa5d2ed0fc5baea507  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc
! 9d7cfef9a62332a454d5a9b6e7fc7c9f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/1.cc
! 71f57f918061fd7aa405ba75770e4fdc  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/54577.cc
! feadc2357e3eb474898e4e6521c0f23b  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/1.cc
  8411c535ec979be02e85103a2ce6a933  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/104559.cc
! 4eea4e19cc15409790e6e9fe074a4493  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
! 1b2632e901588c9420a8c1ed730ccf8d  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc
! f002a8ae37e2ba5159adc4b909a67ff6  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/1.cc
! eae3bb2eb533ea2e9f3f416f2e1b648d  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/2.cc
! 780e46ea3d7c50d8c8512793253f488f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc
! 748d72a942d1235f239927393774f8be  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/citerators.cc
! 94c6ec024f35b45670a26b3ca48d6194  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/dr438/constructor.cc
! cb1672508293cf8aee81e33f5f556c63  libstdc++-v3/testsuite/23_containers/vector/bool/swap.cc
! 09405452ebfec264fb302c50be2c23d4  libstdc++-v3/testsuite/23_containers/vector/capacity/1.cc
! 4e62da2903b5154a45b2f5e4d175917c  libstdc++-v3/testsuite/23_containers/vector/capacity/2.cc
! 46726ed9bb892192e3e4b2ae450f3c8f  libstdc++-v3/testsuite/23_containers/vector/capacity/29134-2.cc
! 7b80bfdd8c94fb5578090542beaa80d3  libstdc++-v3/testsuite/23_containers/vector/capacity/29134.cc
! 35034d70affdc7419bb0594b33ce8ddb  libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
! b3b230bd497a698e265e49e70133a966  libstdc++-v3/testsuite/23_containers/vector/capacity/8230.cc
! ace54672e1a4e9510c9b7cd4c40986a5  libstdc++-v3/testsuite/23_containers/vector/capacity/87544.cc
! 459061d5a624ef8241999a7a4d7abc99  libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc
! 62ce95e4e272b6aa97effef407d39f38  libstdc++-v3/testsuite/23_containers/vector/capacity/max_size.cc
! c8badbdaa93b0934fb851e1aa15fac0f  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable.cc
! 400e26b60644985b305386a1058cc3d8  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable2.cc
! 7e9be411b1c107e35297d6d98fb10c5a  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/1.cc
! f474c3b067251a9f2d67de175dc3cb3e  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable.cc
! bddb2e62ea19da58c4f01ca4f90ca184  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable2.cc
! ae337dce31aa8bd7197d0cb6c8b578a1  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/resize_size.cc
! 7b36d036e01a8c9e7ce0872fd8506fa5  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc
! ec893c866182efbe20fce8299b47b98f  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit.cc
! db7796650941b20c41bc6b77f4a4e3c1  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit2.cc
! eb0422571284f36e7793f94e2bbd46fc  libstdc++-v3/testsuite/23_containers/vector/check_construct_destroy.cc
! b721816c39e08323f298db2119a474e5  libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc
! bb991efa5afdd5df7f54c4f8b98da002  libstdc++-v3/testsuite/23_containers/vector/cons/1.cc
! 6bfe3fe60e55efb3d1e962aa17c03c0a  libstdc++-v3/testsuite/23_containers/vector/cons/113841.cc
! ccf234c11b313b8cf8ae976eba6a599c  libstdc++-v3/testsuite/23_containers/vector/cons/2.cc
! 46571f6f1d7d7697d6802bcd7fd4dbe0  libstdc++-v3/testsuite/23_containers/vector/cons/3.cc
! 8fdfe2fa350a66e0ea2ab7a236cc08f3  libstdc++-v3/testsuite/23_containers/vector/cons/4.cc
! 00b4b91688b28f3c89e9ec9e929df1a5  libstdc++-v3/testsuite/23_containers/vector/cons/55977.cc
! 949739c3c9715931abf44b31a49dd46a  libstdc++-v3/testsuite/23_containers/vector/cons/6513.cc
! 4d97311c2c9ab894282d965a3f07fd9b  libstdc++-v3/testsuite/23_containers/vector/cons/86292.cc
! 0211f41f5272d37e21a9b05a2c6f25dd  libstdc++-v3/testsuite/23_containers/vector/cons/87809.cc
! 23a191908d1ff4d9c0f1156664603800  libstdc++-v3/testsuite/23_containers/vector/cons/89164.cc
! 0c87c41898d50a59a66e8a33e3a02a84  libstdc++-v3/testsuite/23_containers/vector/cons/89164_c++17.cc
! 4b3310eaebd76738414de023df5fc1d4  libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc
! 74eaa2d34032e8bee8d4bae08ea94a61  libstdc++-v3/testsuite/23_containers/vector/cons/94831.cc
! 2228661326b322cdb4ca181fd6ccce66  libstdc++-v3/testsuite/23_containers/vector/cons/clear_allocator.cc
! 6b6ce80ff08158487e914b6bdc2aeba0  libstdc++-v3/testsuite/23_containers/vector/cons/cons_size.cc
! fb48eef9819fb9b9420c789b10345994  libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
! 49e7077b6d0fc87fecd23a8bda909ccd  libstdc++-v3/testsuite/23_containers/vector/cons/deduction.cc
  7a66bf7f5aca27ddc8ca203f2f55a9b6  libstdc++-v3/testsuite/23_containers/vector/cons/destroy-adl.cc
! 006fc011a43ddbf758237846b0e783c2  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
! 4620aebd78f00de979bb2e05d7655e23  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc
! 3c482a502f4b14275ffc4a8bdb723de3  libstdc++-v3/testsuite/23_containers/vector/cons/moveable.cc
! 030430e7c08653a216e024bffde111c8  libstdc++-v3/testsuite/23_containers/vector/cons/moveable2.cc
! 98f7d0a5529604ca7db7ae3c26222e15  libstdc++-v3/testsuite/23_containers/vector/cons/noexcept_move_construct.cc
! ab07a83089823f57eb7595b5b9ec1b62  libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc
! 4e92d698cd0683ac4ef98bc6c56eee16  libstdc++-v3/testsuite/23_containers/vector/data_access/1.cc
! a76f6e7c31b7d8f9240bd352b9466d53  libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc
! 4fa73e98667e45918cf4c25a7c91ca77  libstdc++-v3/testsuite/23_containers/vector/debug/114316.cc
! 00542f14369ac62716328b63bdc3b61b  libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc
! 363590f02fca9f3176f8b3adebeb6e86  libstdc++-v3/testsuite/23_containers/vector/debug/57779_neg.cc
! 6530cd126c973591248932c47c2059ef  libstdc++-v3/testsuite/23_containers/vector/debug/60499.cc
! ad06548445e319d3a69b73aad2cbf98d  libstdc++-v3/testsuite/23_containers/vector/debug/60587.cc
! 2655d92be3dbe924708b2bde8513191b  libstdc++-v3/testsuite/23_containers/vector/debug/60587_neg.cc
! 831105b1477f956ba579a7406cf49251  libstdc++-v3/testsuite/23_containers/vector/debug/90102.cc
! 004390941f117abbaf7bb146108d26a2  libstdc++-v3/testsuite/23_containers/vector/debug/alloc_prop.cc
! 0aa9e9af47236d9253a0455515b8831d  libstdc++-v3/testsuite/23_containers/vector/debug/assign1_neg.cc
! 682475b76bd351d8bfb4e44cec5356ea  libstdc++-v3/testsuite/23_containers/vector/debug/assign2_neg.cc
! 46ed063717547a08d1eebc101a0af1d9  libstdc++-v3/testsuite/23_containers/vector/debug/assign3_neg.cc
! 36541de3ba8c9a1aa64b2f64e2664b68  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc
! e3693e3bcef01856985509bd2ddf5030  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
! 022d11a4fa8bbc19fd2a27f036a7bc5b  libstdc++-v3/testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc
! ac1cbdd99f40af3cf0c5d099d6e72645  libstdc++-v3/testsuite/23_containers/vector/debug/construct1_neg.cc
! 1434d0f4cbae9ab9add549e93778527b  libstdc++-v3/testsuite/23_containers/vector/debug/construct2_neg.cc
! c085e03cf1d1421d003a475758e16bd4  libstdc++-v3/testsuite/23_containers/vector/debug/construct3_neg.cc
! a07343a07cdb20816421db21338b2049  libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
! 3783841cd74513d83630ff9fb57f7b2a  libstdc++-v3/testsuite/23_containers/vector/debug/debug_functions.cc
! 8226d512458d97386f2232fb271b33bd  libstdc++-v3/testsuite/23_containers/vector/debug/insert1_neg.cc
! c8cd9fe70bc8e0987156df42c474980d  libstdc++-v3/testsuite/23_containers/vector/debug/insert2_neg.cc
! d650220dc1448b88f45c77882cd31e85  libstdc++-v3/testsuite/23_containers/vector/debug/insert3_neg.cc
! 8b07fd98f926a50660acac9af7c744fd  libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
! 4d07d7941e6d6079266018a6f6c8bbb9  libstdc++-v3/testsuite/23_containers/vector/debug/insert5_neg.cc
! 56d6d695676a66747ea4919fc3963242  libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
! fa46d03daae73ec22bc18e1aba2aecaa  libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc
! 823d6f5601ce5a17f323b54b7adb6a70  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc
! a547117293a92f128b665602a4103122  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc
! 87913c0eb8359535ef1f84d2fe845c5c  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc
! 40dfa198df80e35ecb3b2c759288dc42  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc
! 24954741a34b5e5a3eb9dded4d8ea9e6  libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
! 65887c9b0011cbaa6bfcd6baee68e92c  libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc
! 78f18b590fa0b7b6282799e8bc1b4680  libstdc++-v3/testsuite/23_containers/vector/debug/multithreaded_swap.cc
! c76b6ad610690c711375ee99ba83affa  libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc
! 7f7ee046dd79fd0dbaee1477492faa9d  libstdc++-v3/testsuite/23_containers/vector/debug/n3644.cc
! e07b809702a5d5267e29ec166f7d27ce  libstdc++-v3/testsuite/23_containers/vector/debug/shrink_to_fit.cc
! 37d59728327fcf8a52833b62697afd56  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-1.cc
! 940fa04e42e2faf8e626f4be6ecdfc72  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-2.cc
! 281426757a24d2143f6f102eefdcf02d  libstdc++-v3/testsuite/23_containers/vector/element_access/1.cc
! 3aa8ea3d6bf9030fb6b562f19cea8459  libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc
! fc3bd21c86a1d870c040b2ab89488cb6  libstdc++-v3/testsuite/23_containers/vector/erasure.cc
! efb2d1a89a8d128174a6c7a7bbfde695  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/citerators.cc
! fd2a4fb24aed5d7860795f09882235d7  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/data_access.cc
! f0c3e70bfedcae832c95953b1ba6db97  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/1.cc
! 68750df9c2bde7dc7d494d75d6d21b0b  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc
! 6173e2820e0f35f5e2a14165b0a69cc4  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/element.cc
! 5a09c36a881e1e0d330b252c8fe2e9b3  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/erase.cc
! 5e97e21d151fcfe8e90ce1c781084ea7  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/insert.cc
! 116d933558ca1d904b27c612aa23f534  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/resize.cc
! d5ad75961cebafbac099d4b42638968b  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/1.cc
! 3a3bc050c5fd44a62a869987df06a520  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/2.cc
! 745b8b759922db49a639b9e35186eded  libstdc++-v3/testsuite/23_containers/vector/init-list.cc
! 904931710617095f31a1129eba4c10f8  libstdc++-v3/testsuite/23_containers/vector/modifiers/1.cc
! 4fcc90c6f3c0b358d0dc45e3a22a8efe  libstdc++-v3/testsuite/23_containers/vector/modifiers/2.cc
! 6effd9cef2c74c606feac1e830216c65  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/1.cc
! 953c68b9c8f36c7a72454dbf1966be8c  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc
! 000698581016741f52c8bf2bfe086a46  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/no_realloc.cc
! a325122e6a6afa548900873f460f4121  libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc
  00bc8fb19959079360f78f326f302b5b  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/1.cc
! 9d1f407123b520ce46bb60da87998437  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc
! 0de3d5113d99b44104a54ccb98a783b4  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc
! e55c1c15b136e5edc42a063ca1347b98  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc
! 8d9d461d409be4d831622855a1228b1d  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/1.cc
! e536a94eb2a06ca884beb88359f8ec0e  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/50529.cc
! 8c5dd1473ef70562dba7ffcc151b0097  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/54577.cc
! 9955af410e0aecdc5b97e89a83b41df4  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/moveable.cc
! 32d82b5c416375bd2ed9e9c6f492f887  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/1.cc
! 37d0222471007c4e52ecbd07e6490ab3  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/58148.cc
! d89a9720f07a14c9e86e6f07e4c83bf5  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/aliasing.cc
! 005243a58b67a49326d93516edecb628  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc
! 404a093d2a58fb8971363e6a1fa02a56  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/self_insert.cc
  8fb5c601f412e71f5977219b7d89f18d  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc
! b592190b0f316200dd18d0acfdf59ac8  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc
! 7ad68b2965cffcacc1bfb6bcc694f371  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable2.cc
! d3441c48a102fc3c48ef330b6d906b55  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/49836.cc
! 5e891b22a8f3333fe993e9f8ab6c121e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89130.cc
! 13446821e8cabbd255d7581ffa01bc9e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89416.cc
! 4b4815c96f7f7bd01cecb6bd6c8b7e4e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/strong_guarantee.cc
! 1cbe0435d6c258bbf5c62cb499c8dd17  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/1.cc
! 94ae253a6ed1499fca9623d71c0008de  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/2.cc
! 2ce333567224f761a6833356d4cc3a02  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/3.cc
! ea251e0e3973cbfd8ecc45113a07deea  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc
! 5e2c71260e3bea608524a7b15d7c37f2  libstdc++-v3/testsuite/23_containers/vector/nodiscard.cc
! e378e2711006e4173a4a9bc46926e249  libstdc++-v3/testsuite/23_containers/vector/pmr_typedefs.cc
  33db2bb591e55ad911ea124e372841ca  libstdc++-v3/testsuite/23_containers/vector/profile/vector.cc
! ab3ae1e09760f32a8314255f6349790c  libstdc++-v3/testsuite/23_containers/vector/range_access.cc
! b5387e3eb3d6c1bc30e8c91b2ecd0d74  libstdc++-v3/testsuite/23_containers/vector/requirements/citerators.cc
! 18a02d20ab7a0188437997f99d568ea8  libstdc++-v3/testsuite/23_containers/vector/requirements/do_the_right_thing.cc
! f5fb839ddbd2fbbed5de88934bde52ee  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
! 23bb4497bcee54ba51e63d3944ed4cef  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor.cc
! 16b5800c698252d541c3191d2d9da46a  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
! a4af4f5262a857fa5c37cce378c6cafb  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
! 9caff166a0b9f9d07aa661cb4aa89663  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
! e9080d8d64f1f98d85a522390dd1c86c  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/basic.cc
! f9ed85c9a57badc522211aa8c1e1360d  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/generation_prohibited.cc
! a776866fdac4b5118299210993f5ca4c  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/propagation_consistent.cc
! c801ba844df00bd69803103b148fcaf0  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc
! e80322a8b054f071df5ebfd53a8f5d53  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1_c++0x.cc
! bb9f5b42db98779bd320afcb7bb7b0d5  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc
! 00d58e5943df5251977b50b8d71edcf9  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc
! 2421b13d3e9aca19019599384a9f1ffd  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/4.cc
! e33c6f97d50503ac74e3dcb8283753bb  libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc
! e06b30fe534b916fec0e57c270dd59ea  libstdc++-v3/testsuite/23_containers/vector/requirements/typedefs.cc
! 2ee39d513e4a8853a8cc693625426333  libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc
! 6ccd847e59f9b377352dfc7a8ec084a8  libstdc++-v3/testsuite/23_containers/vector/types/1.cc
! a763002c73a199c9ea7a38534537a0ae  libstdc++-v3/testsuite/23_containers/vector/types/23767.cc
! 71c5913c9a520a6fa2378fb7b5ad044b  libstdc++-v3/testsuite/23_containers/vector/types/pmr_typedefs_debug.cc
! 4d2e02505654ad97c704559acf585c47  libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc
! 1d7e816d88be1d68182ec1bafe1dc910  libstdc++-v3/testsuite/24_iterators/aliases.cc
! ed5f75c29152f59bfd2611b691b1559a  libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc
! 291c87c1d2a34581eeb9ec15d3c09a8d  libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc
! 059ad526a1df693c9d465f3d1d68ad72  libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
! 3ed2562411114bec1018cef2845d63e2  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc
! a401cc93d18c9926a4c3a524543eea06  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc
! bdab2b57139d0bdcd9c56a2df351ae23  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc
! ef42c6dea71912180e164aa833daa9d7  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc
! 2b7b9faabc2c37b315528f9fc6a4f51c  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc
! aff8511491014bf8573bd1937d23f40a  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc
! 471ac5e5a89a8bef8bafa0360126dd14  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
! c546cc775c2f4aacb2ab246105d49be4  libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
! 398ae11152122c4daec281878e987ae9  libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc
! 12c5aeb756c35ada3a370efee65bdd7c  libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
! 9f4e16d24466d0905c256e141d9b7e91  libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
! de5e3bacb355ac6331ac4ae3d0d7e069  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
! c78691d1ff6bc1b3ae254334b058b5ca  libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
! 514f5f79e39424bc555c834fdf742bab  libstdc++-v3/testsuite/24_iterators/container_access.cc
! 0783d01d06994d30f114de931fab9034  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
! 0467df8893456374e945a35f254e7aaf  libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
! ebf8d6da7346a10bd378c213537248a1  libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
! 5c6a08bb9da216dd03337d3a8a5085a4  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
! b37a6542819dd8a42cc6e9fee97b5944  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
! c494b2e9b94276d516a5204528151420  libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
! eec78f8a6a00c559e2af6457efe7d6de  libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
! 5bd1c430466800a51c5ca06e9d8f8293  libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
! 6c7822c29901f2275ee04bafdadff9ee  libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc
! 34987018d385fa05614bea993e3f0ec1  libstdc++-v3/testsuite/24_iterators/forward/concept.cc
! fedfb7eef383fcda6c6fb251f11f0868  libstdc++-v3/testsuite/24_iterators/forward/tag.cc
! 25cb76424618748e1e781fa4fc0be6ca  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc
! 7f28e40b07e06512a4a21a43c48e932f  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc
! 03de0923882730b560df9907a526f1ad  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc
! 4e40bebdf375f094938f6a74955b7706  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc
! 9c50750e622326b353df7eaa9623cf1d  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc
! 5bdb7316c4182902b23e7db77167ab32  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc
! 9612cda4371e959439e39b683f820a5f  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc
! 360a52b91efd4a055b23ed391bbd62b0  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++11.cc
! 7e9193337a842fb0ecfb489b4c51047f  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++14.cc
! 829ff678d7d73fa482cd99f69f9128af  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++17.cc
! 623958421858d01e23c5d78b04b248db  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
! 99d940eca2551ae535b34164f49b66d9  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++11.cc
! e05443873f084bf99826aa557dcd8e34  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++14.cc
! 2d8fdf829fdcf0d953d759e3a11c64d7  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++17.cc
! 495877ac5259c8d6cc0e729545ad78c0  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc
! cc92f31820665f8e2f5f208ba9706e57  libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc
! d42bc6ec2bcce0138a686c8be72b8186  libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc
! 1f15796626d974829bb6df211b0b4318  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc
! 0335bc245c94a1b21f5a509fa5bc911c  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc
! 67720072e93010635087b776cc40e9e0  libstdc++-v3/testsuite/24_iterators/input/concept.cc
! 14e6f085a7bcc44f7dd2bd0b1bec0431  libstdc++-v3/testsuite/24_iterators/input/tag.cc
! c6da0ef6e64e0cc9d6ee2a3e48579dd1  libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc
! 7fcae2868f258352205f51e02dcebabd  libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc
! b6e6cb1fca21ad54771598ec59a11dc9  libstdc++-v3/testsuite/24_iterators/insert_iterator/dr561.cc
! bf13294c8e1ba5a00b1f2bf2f87d191f  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc
! 7aa37df3e5b468351e17d871662802d1  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc
! 44e287f68a5090a0f116c376feaf68fc  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc
! 59dbae8f0f18841e432b6583b0f8c855  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc
! 3fcad769c888ce67145afb946cfe4954  libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc
! dbb6965510a04e3fba7551a980378073  libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc
! 1fba607597cdb7ea82c2f91e193dc0b9  libstdc++-v3/testsuite/24_iterators/istream_iterator/70766.cc
! d37c4e49eb4480c26dc88261b44d7e2a  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/constexpr.cc
! 895177ddc0bc3b3aa513296281a8cc56  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc
! 6997db6ee68833e6159bbbd2ed8cb573  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc
! bace6ef2912a30047b09a18d919361fc  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
! 5ad66aa35e8f7dbb83dbcc33355e384d  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc
! 98d49deb4bbcb615dd24659838d78d0f  libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
! 1713c306a8a41af2ca9052c8c8e72eb4  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2.cc
! d3cd71a28bbc84054ec728f34461d270  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2627.cc
! 5561389ef10093963146739453d3922f  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc
! 7bc4f8604cf2787880569e71c50fe082  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc
! abebc6a7a58e4863631bcbbbe8d78951  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc
! 0f339c69fc44cad77ac1619f6e271fd7  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc
! 1ce758a49b69fbfe965ff39cec83c8bf  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc
! b375059b9cae9cfeef23db41b2eca2e3  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc
! 958faf3c2527618894b22e5c368e09c3  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc
! 58cb8c206f673e4c9d8c8e1c2371b163  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc
! cd53fdfed92724a4bfe1f573cf70ceaa  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
! 78c676d00e9f462101beffec6877eb03  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc
! c29a487173cbfe41cbbae4548020c935  libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc
! 3205255e51d0888bbf8aaf04493e88b8  libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
! 3900cdf8d3bbd8cdaadc18bfa3373f27  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc
! 3c58afbdd7e6f4157ba8fe62474de461  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc
! 5ca8f3a2cd9778e7338db57284444d75  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc
! 6dbcc6c37cbe0cd8342c60eba2907358  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
! e85f9795a24e23383fd6e6220adc27c0  libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc
! 9aefa852afc55a0fb53e3e0a20166294  libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
! 4b4ba925a0dddea27da981b0fd972d24  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
! 0a77158b76594401e20579384d0ef499  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
! edcb66e7e59338289534d533b79953b4  libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
! 5b709c0c24b86afd9aaf272fe6396999  libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
! f557f700bc0e75fcbec962ac451dc1a4  libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
! 321a3c9ee80f47a2217bc20d2dac1734  libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
! 2c7e0f92cd7e5e9a9dfddf921503d577  libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc
! 199fe4ba95e3f78d3df5a5b83fc289ce  libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc
! 9e53dd2448ab1653f1d0f9a8b0b2f4d0  libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc
! 103acda9fbbaa0b23365ff463483034a  libstdc++-v3/testsuite/24_iterators/normal_iterator/greedy_ops.cc
  4ff5db259d95f86dab8a3a9b2f91f78c  libstdc++-v3/testsuite/24_iterators/normal_iterator/to_address.cc
! a51eff3c31623987792c1365c4191776  libstdc++-v3/testsuite/24_iterators/operations/26020.cc
! d1a1c74a394f17ad92589ad14dc1a2b1  libstdc++-v3/testsuite/24_iterators/operations/40497.cc
  631af97d6c75b598ecf8901dc62067b2  libstdc++-v3/testsuite/24_iterators/operations/lwg2353.cc
! 50552b565664b08c873684a4affb92ab  libstdc++-v3/testsuite/24_iterators/operations/next.cc
! e14312f3ba803d0ac52ffbc520eb7a36  libstdc++-v3/testsuite/24_iterators/operations/prev.cc
! 5346ba838ce8a4d186580a36f32b3d67  libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc
! c8ebe8cdbf907e5681d10743b7ea108f  libstdc++-v3/testsuite/24_iterators/ostream_iterator/1.cc
! 2a84b93d1ef479991011e36446f3c9ef  libstdc++-v3/testsuite/24_iterators/ostream_iterator/70766.cc
! 9913005d40654ec8a715591b0c759948  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc
! b2ca3e179fc3223a283c65504a567dc7  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
! ee3580206bbbd0cdc4f763c47736e217  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc
! 50316e93dfcdadf152c79ed90e4e22b0  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/2.cc
! 135089edfa8696693ebd9bc8222dc827  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc
! 80e9929f1bd880e5c14bc3f20102311e  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc
! 098ff110e359cc27575f357afefdf224  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc
! 6640e820c51d256f270c77a68a78316c  libstdc++-v3/testsuite/24_iterators/output/concept.cc
! 5b0d03cacc161b3372df04b5c1352fa6  libstdc++-v3/testsuite/24_iterators/output/tag.cc
! 4ebb436a834f089386ec145076a4c9a6  libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
! 7d3343787564e66173eb1d9ea0236b68  libstdc++-v3/testsuite/24_iterators/random_access/string_vector_iterators.cc
! 96941ba4f759ad890c569fe9cc2e775a  libstdc++-v3/testsuite/24_iterators/random_access/tag.cc
! e123a68ce6550e7bd116558f7bc6da72  libstdc++-v3/testsuite/24_iterators/range_access/range_access.cc
! 58867cfb11f646e84535b88b801e0540  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp14.cc
! eb7be4e449dc90f0a99e107255e53401  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17.cc
! 8c76ca22cd753d3194f153ca745567b1  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17_neg.cc
! 8d4ea93f1e6258e5deb6d7f8058cffae  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc
! a437c8f93b4125736e30726ab15a565c  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc
! ce2cd1a733345f8dcf29822e0e20f766  libstdc++-v3/testsuite/24_iterators/range_generators/01.cc
! e376c042ffbb3b8e563e5f69b3cbb80e  libstdc++-v3/testsuite/24_iterators/range_generators/02.cc
! 91bcb0ed1291d112763e336731e05d46  libstdc++-v3/testsuite/24_iterators/range_generators/copy.cc
! 2b6f69b84cf184bccb215c566c32f32d  libstdc++-v3/testsuite/24_iterators/range_generators/except.cc
! a8099c52aafba6c8fb084f296635b3c7  libstdc++-v3/testsuite/24_iterators/range_generators/iter_deref_return.cc
! 858c1b57d8af0a64d2cd4891aa1299cc  libstdc++-v3/testsuite/24_iterators/range_generators/subrange.cc
! 51bca99a8cab4d7a4511013140c30af3  libstdc++-v3/testsuite/24_iterators/range_generators/synopsis.cc
! 7b5fe98259265b808b4ba62b094396b3  libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
! 7aae953003171769a9cea7ac73f094ff  libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
! dc51a0470cd8f6003d8067846f2c39c1  libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
! f3e9bd715fe13148d21f32ce807ccb06  libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
! da8fe4d2d8dd74883778a7e681324405  libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
! a921cc7d3fdaaf8546958618d0214e1b  libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc
! ac5ccfa49cca821af5880f70589760bf  libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
! bbd6f22084b815b461403fd59a5f420e  libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
! e2ae7e18301ca847e59136735b6d2176  libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc
! 0245af256f0a7a807d092676959e4c19  libstdc++-v3/testsuite/24_iterators/reverse_iterator/11729.cc
! 1504bff5447b98c90b617e2bf1009141  libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
! 8eac001b4c6696c37c4a742024a45706  libstdc++-v3/testsuite/24_iterators/reverse_iterator/3.cc
! c270d22dd76880fd2204d447bd3f516b  libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
! 2ffe7291850b1b03c9a2a13b163d69af  libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc
! 522429a473683288cf1d639f14443d44  libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc
! 09b82756144465c5d8a19ff2902978e9  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr1052.cc
! bef585548b463d1227978a68233053d8  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr2188.cc
! 36034339ab5915c559d1563e2b58dcd7  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc
! 24d052f5602ae223ee3310471edbf0b6  libstdc++-v3/testsuite/24_iterators/reverse_iterator/greedy_ops.cc
! 4bea967c2d445f314465d638ff52ee47  libstdc++-v3/testsuite/24_iterators/reverse_iterator/make.cc
  b0c0208d50f550375365900191253233  libstdc++-v3/testsuite/24_iterators/reverse_iterator/noexcept.cc
! 240e3e33c8831f30314c7f79489087b3  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops.cc
! 1f4c4fcf3e9aab423092647bcd3ab276  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc
! 1a031dce2e43ef75bfd325498db2ccf0  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc
! 3f5ab26bb70433c878469da41a1e0919  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc
! b5adeb77d505f4a966a0def2782cae08  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
! 76e2f75781110c3103dc9609147a2c8d  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc
! 15220435ec5d5956ba01dd20b585548f  libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc
! 25dbae943131df76980ed44f4218ec4a  libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc
! d6620eb9e22af1d28db1bd1d0b3c0b5b  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc
! 0633b11b11fe682a4a282f09f7848915  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc
! e1a44236e935c7bd43607741b2d4323d  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/2.cc
! 41e2c24065c0cc7d5a7e617836b9cdc5  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/pod.cc
! 56fb48806208a821a9b4e53d149dffed  libstdc++-v3/testsuite/25_algorithms/adjacent_find/vectorbool.cc
! f96c4e1d3ff05fc4a1736eddad853f5e  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc
! 0990dfc3d5cd1e6801aba7025aa97a8e  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc
! 87a29b4c68ca3e899ac20fd66b5a7900  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc
! 153391ff77f8d9975f17bcd87e8490e0  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc
! e08316fe99c0dfdcdf41149c87d304c1  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc
! ecfb91574951c9b3100964d07a16c85c  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc
! 465a11acabd262325aec49d97cacd4e6  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc
! 42f9124d0e00b81a4cd8d6481411c07f  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc
! 9ece7246011e63a7652dcfdc286a3d5f  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc
! b9e11e34b871c641ce315c5d12e79e5d  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc
! a7c7d7e188fb4eb6426f4111e28395ec  libstdc++-v3/testsuite/25_algorithms/all_of/1.cc
! 693e04645a7c8a348a19174514e45f27  libstdc++-v3/testsuite/25_algorithms/all_of/check_type.cc
! aeac60428ee364b4c37bd5a1ed1f6dfa  libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc
! 1991158143d625f3d83b900231d5772e  libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc
! 32a9426a69a8b1996b1f3849f5d1146d  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc
! abde11eb422b2a6e18a604e9988fac8d  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc
! cd8b74ae66b529d0e989f2fdd9c822b5  libstdc++-v3/testsuite/25_algorithms/any_of/1.cc
! 633ae9615e85a930abefdb7a280f18af  libstdc++-v3/testsuite/25_algorithms/any_of/check_type.cc
! f474774f71866a38449e1edc185c502f  libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc
! 49a3cf7cdbbe3aa47c6f4123e7d478c7  libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc
! 6542a656b1393d97c5fbe5e6876cdb24  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc
! e1d5f171b1080eae737d3f465e65f48d  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc
! f07157aaf3f12bcb54fc6defe2540b2d  libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc
! 71f171607fbb9289b4c3a15585c87634  libstdc++-v3/testsuite/25_algorithms/binary_search/2.cc
! daecb52a160bcf4668f0e99e3a8abcf0  libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc
! 837b157899d5448ebbc657cfe5f569cd  libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc
! 3ef6cbaf43ec9725e034b8721b8bb64a  libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc
! f7c2ad4a67f65594b781901a4f594b49  libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc
! 44529528c6cc5b69e8dd1113ab3f941a  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
! a6b9edcfee52f4cee35461cde5deaf10  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/pod.cc
! a4ae0664deb08654d0dddd1b1c4999f3  libstdc++-v3/testsuite/25_algorithms/clamp/1.cc
! 1f2e23e34eeba5431d33bd256d069a7d  libstdc++-v3/testsuite/25_algorithms/clamp/2.cc
! 4238c9408146351b089599bcc3973249  libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc
! 81166131e8071cd4fd67d49b96c65ab2  libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc
! 74de3c0a9c066a73c6fe40bad314dfe9  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc
! 4f2668ea94b7e6aa817a2321394026d1  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc
! 2b5f91d3b576b0300d3c13ea95a72893  libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
! 64732d73f3f60fa36be913a0bd97dbc9  libstdc++-v3/testsuite/25_algorithms/contains/1.cc
! 30fbc1e3c211ebfa6382e1bab18e5b6d  libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
! 0195468f52eef0faf3e1931030dc77dc  libstdc++-v3/testsuite/25_algorithms/copy/1.cc
  ab3dc855e72ee51df3a966a7fda86fc5  libstdc++-v3/testsuite/25_algorithms/copy/108846.cc
! 03bda0e2563f0a8104209580c5e7cb9a  libstdc++-v3/testsuite/25_algorithms/copy/2.cc
! 76761ae2eaec352d5d7a829bf55cd3ef  libstdc++-v3/testsuite/25_algorithms/copy/3.cc
! 78744f46186a2f2e9fc4d46676024c88  libstdc++-v3/testsuite/25_algorithms/copy/34595.cc
! df8e712ba66e994dacb8d4b2168e1fb4  libstdc++-v3/testsuite/25_algorithms/copy/4.cc
! 1249587f1b154bbafac4ca6b5c2df891  libstdc++-v3/testsuite/25_algorithms/copy/58982.cc
! 145bea249440acd1ecc97ca9633bbe2f  libstdc++-v3/testsuite/25_algorithms/copy/86658.cc
! e0bb9d2a4f85a5083878eb89bdc75bc8  libstdc++-v3/testsuite/25_algorithms/copy/94013.cc
! 6c2cd84ac65dbb92c6b904bf5b3d5b2f  libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
! 2ee2d7f1bb5f9a6151aed01ea410212e  libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
! 1b14380b28f1a71887f19a18c8c55edf  libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
! 4c378c31fd5d274e42e13188fb32c533  libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc
! 3f99385a318175f92207f5dff76bca47  libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc
! 149dd85c2d1316706861fdcf06f19e7c  libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc
! 6087772c0bda62619d0000896f53e6ca  libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc
! 4ac2181f4f6f9ef4461f598fb52d6b8c  libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc
  a4e3b919e921272cb082f7fa810f39d2  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc
! 61ac3240bf1ef88377265d7f024ea52f  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc
! 2e96adc5a2711341c4fbeba3e6e62546  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc
! df9316351698d76f7c172938bdcd146a  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/32.cc
! 824635c928ee634cfc991a2d3aada307  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/33.cc
! 84fdcee1abc6c33f6a692eac7057ff67  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/41.cc
! cad2179884cee6dd1b1ea411f53feeae  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/42.cc
! 16001b4497641173ae9218c98b8bcf82  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/43.cc
! ec731f612b5586260d4dde0be50ef5a6  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/1.cc
! 7a8c3e543eb72d9d0d3a9066b6df7a71  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc
! c646ee36f95338b162a2e6abdfc866c7  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/2.cc
! 0d21ea0d8bd79be5386ab15963227e51  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/pod.cc
! 5a8b5b7adbece0c2b99810f5162d86b7  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/1.cc
! c4da902c069661f754645bbd4aedc6cf  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/2.cc
! 40e51756d88b020f82ac2eb33543b807  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/3.cc
! 56adda1d99c7643f73b9c379ea1ac5cd  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
! 1356dd205a48a22b9c21d2662a5d7ca5  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc
! 2b4027067c5599dca84cfca32814fbc4  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/1.cc
! e7a8d230db9e3eeaf1f8457e3c126b00  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/2.cc
! 7603cfae355de764f346404353886ed9  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/3.cc
! 54287a9076fc6b6e80779df5e3d47b6f  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc
  bb0e824b90574124bc4bf32ff7dc510b  libstdc++-v3/testsuite/25_algorithms/copy_backward/108846.cc
! 8794b15398530eeb093fcc3a1b2b7b56  libstdc++-v3/testsuite/25_algorithms/copy_backward/94013.cc
! da190c3ccf24b4679c15f440da042ac0  libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc
! 94b622c03e06e7a56869b015cfe5a988  libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc
! 9ad74124ba154aa420464d6710966eed  libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc
! 836ca76c33d594067fdd877d54f572de  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/1_neg.cc
! e4ab8ece25a0a0365db338273680c753  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/2_neg.cc
! c31ad1ca1f2210d7e3ab437f1a21e2cd  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/3_neg.cc
! bcd751ed00a96b95bc5d87d10b61c395  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc
  da1fb78d5a3cd469ddf537052865be96  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc
! 386e06c7aec8b77417e7c3938421214c  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc
! 3dfd18013e3cdad29abbe7e0a965e718  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc
! 4df046a4afbe9dad13f5a429c1f2c860  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc
! 9e6a13193b2ada8f96a6f7e38037de32  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/2.cc
! 4acf8394db5ad6f9569550b5fea8c595  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/pod.cc
! ea5fb89cd1912d7e30d20469109d76fa  libstdc++-v3/testsuite/25_algorithms/copy_if/check_type.cc
! 0520a651b0f2fea4c52bb3661f4dbe6d  libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc
! 6d5e20e550f0f2f8f32cf796786bda9d  libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc
! fd8977d407aec340c95be7402460d729  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc
! 58b90edf6ee3a1a07aebef9a44312a66  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc
! c8dca7692585a913ebdcdd04b35881cd  libstdc++-v3/testsuite/25_algorithms/copy_n/1.cc
  1e20df47bf8b9c2d7325fca62a0f583e  libstdc++-v3/testsuite/25_algorithms/copy_n/108846.cc
! ed94106b5c6e2bf27df6aa23c1940506  libstdc++-v3/testsuite/25_algorithms/copy_n/2.cc
! a4dae0ba6deb335f80a1cd35a0ed1514  libstdc++-v3/testsuite/25_algorithms/copy_n/3.cc
! a65dd1008ce5d076a8d76b4f75efd726  libstdc++-v3/testsuite/25_algorithms/copy_n/4.cc
! 840756c35da0a8370bbe1bae728cf50d  libstdc++-v3/testsuite/25_algorithms/copy_n/5.cc
! 338536e6e14b6413fc0f62beb733fa60  libstdc++-v3/testsuite/25_algorithms/copy_n/50119.cc
! 215bdf90f60187f3f0b7e4dba7164dd5  libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc
! 7a7c836dd318c375dc16eec6352ebaad  libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc
! bd2421e2a31d1c949da1e0ffcb5788ad  libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc
! 8f49c4cd2ab620f7397f6e0c4688290f  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/1_neg.cc
! d6c97ae0f0349f661205a1c9e2af470b  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/2_neg.cc
! 1d000339254e56e704842c66f4d91873  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc
! 689cd916eda6b7f8a1cfaa87cc544713  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1.cc
! 65c6c2dd6ff61c3c33bbf8b1b971bedb  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1_neg.cc
! 4ea87e91fc501a87a06b7985a744c7f2  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc
! 40baa3c0182380926306311f59b81cff  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2_neg.cc
! 78623d9d4a1ff84a4d70454aadb14243  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc
! d970eaec93fcf43eb17922d1d2834563  libstdc++-v3/testsuite/25_algorithms/copy_n/move_iterators/1.cc
! 6b1f9c77b4a109323b154de24608b4c1  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/2.cc
! fa6448fd6a3d524871ebf9f652b9add7  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/pod.cc
! 02e4d4a31ef676f5351a3615abc377e4  libstdc++-v3/testsuite/25_algorithms/count/1.cc
! b7c70ca963313a1ff13df173e526e62e  libstdc++-v3/testsuite/25_algorithms/count/check_type.cc
! bff91956f5f0b5d2e884bbe139fe1f60  libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc
! 2f3885058a0451d1e937e90c007a38f8  libstdc++-v3/testsuite/25_algorithms/count/constrained.cc
! 869c7fbc76f10f8d1547664fa398b43b  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/2.cc
! eeab4fefa7670e11b1d3f7246eae5c55  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/pod.cc
! ce7b7df34bd93c7c03d2b95f0358fd2d  libstdc++-v3/testsuite/25_algorithms/count_if/1.cc
! e5554114137b64b9692275a7ceec8fe3  libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc
! 41b07358e8d11152f302ff8fd46a6438  libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc
! c78e8b1f17de6ce39eb48bd7a2ac584a  libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc
! b8e3befa4526e36bf53dd7b96843b7f4  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
! d4c02a8a86155584f51a6849acaa0f17  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc
! 93a2d4ed485bb3d72fdefa800c617a20  libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
! 1c84ff1c0266730e9e30010b98ff68bc  libstdc++-v3/testsuite/25_algorithms/equal/1.cc
! 6ea5606f98557f685c6ba91ece8c7413  libstdc++-v3/testsuite/25_algorithms/equal/2.cc
! d69cc0a8311180fbedae6d35d801db60  libstdc++-v3/testsuite/25_algorithms/equal/94013.cc
! ee4db103c65057c383ddf64608e71e90  libstdc++-v3/testsuite/25_algorithms/equal/95578.cc
! d163001f32f43b329d8a9ad5b19789e2  libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc
! 155d04d022f0ac5d77aec74ef94e7171  libstdc++-v3/testsuite/25_algorithms/equal/check_type2.cc
! 17568091179949a7d62a693ff6b83ac8  libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc
! c9f9f956b66b5b49320d1c41b4f1d644  libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc
! 9d2438956be242b5058e9511be2f1697  libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc
! 7c29ffdc003e15bbfda33f18fe2cbfbc  libstdc++-v3/testsuite/25_algorithms/equal/debug/1_neg.cc
! 51b521155b2d201a9ba86a98dbdf20fe  libstdc++-v3/testsuite/25_algorithms/equal/debug/2_neg.cc
! 792b18f90815ad5f10ceec908fda00cd  libstdc++-v3/testsuite/25_algorithms/equal/debug/3_neg.cc
! b20543160eabbe6fdb520d25c22c258d  libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc
! 7648bfc9ed09629ce40be30c6213be0a  libstdc++-v3/testsuite/25_algorithms/equal/deque_iterators/1.cc
! 0c963fc2bca63d13ac9194401044b06d  libstdc++-v3/testsuite/25_algorithms/equal/no_operator_ne.cc
! 84fd8bca1520c14b30d9c7177fffc763  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/2.cc
! 4febaff6a741b91f36d936f22323fc50  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/pod.cc
! 62bcfe1aba3bf519115236645976b33d  libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc
! f51e7c08d1006ba896a4ee5387a72f6d  libstdc++-v3/testsuite/25_algorithms/equal_range/2.cc
! c491db7181856851de326d6cf6e9b6e1  libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc
! 3a7a9dd469d20600667df0da39507500  libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc
! 0805b73374a51f73a72f187732604b05  libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc
! 644eb49af6af1b1a860ecca155d10b96  libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc
! 6a456520ed9e1a637da10624245e9a35  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
! b7a785b357da64d957555816ab0a5e21  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/pod.cc
! b946e0d8c24c5ec549004cb8bddee95f  libstdc++-v3/testsuite/25_algorithms/fill/1.cc
! 4cb888d133dea0a0cd9067137fdbf17e  libstdc++-v3/testsuite/25_algorithms/fill/2.cc
! 0036e77db9916ad579e9b8a5d2c62e4c  libstdc++-v3/testsuite/25_algorithms/fill/3.cc
! bd58325791d7e65f688ba413847fdf6f  libstdc++-v3/testsuite/25_algorithms/fill/35725.cc
! 26a5f1352b1a77495facd940924f8b7e  libstdc++-v3/testsuite/25_algorithms/fill/4.cc
! 89e2e32a39892c120356e14289e1361e  libstdc++-v3/testsuite/25_algorithms/fill/94013.cc
! 8453a8deb85199fdfa307b31f764a155  libstdc++-v3/testsuite/25_algorithms/fill/94017.cc
! 08c120cb2e16b6a7c7d92430ee0e6951  libstdc++-v3/testsuite/25_algorithms/fill/bvector/1.cc
! 3d718a16781b5a3b78987e7728d6138e  libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc
! 4748cd5f1edde31b9f12c1fd589a1529  libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
! 12c07b8a4ed27503e429aa09faf9788e  libstdc++-v3/testsuite/25_algorithms/fill/deque_iterators/1.cc
! 616266248f296c754e8b0bf61f651970  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/2.cc
! 4a0b5ae0476c3de4431fcc3bdb98ce81  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/pod.cc
! b49b9d13f1d75d4fec41cb98e82022ad  libstdc++-v3/testsuite/25_algorithms/fill_n/1.cc
! 5deadf747b2aa81647d52c65f8587337  libstdc++-v3/testsuite/25_algorithms/fill_n/2.cc
! 4c793bb2f0d8ee51834a159f3e752b05  libstdc++-v3/testsuite/25_algorithms/fill_n/25306.cc
! e678db24aaa5590e0b079e964112be32  libstdc++-v3/testsuite/25_algorithms/fill_n/35725.cc
! b77de848e200e4b775a4be5d3040ee5f  libstdc++-v3/testsuite/25_algorithms/fill_n/87982.cc
! f9d40fa328d0eb70203f94d16ec576ef  libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc
! e07edc7c46273d13824fafe346632c1e  libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc
! 3a13df2c2970e64ceae8c858b3350a8a  libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc
! f2c5f64129f0a941770f71e6219744cc  libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc
! bce2265b1185c4352fcc6a184cda0bfe  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc
! 786d4cf13aa20273fcd3a2817cbc5214  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc
! 2d7074d34be495d49e40c1e62329f785  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc
! 2341b04b25a68058298e50f195b83548  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/4_neg.cc
! fb98e32b757db42dd5970a90890472fc  libstdc++-v3/testsuite/25_algorithms/fill_n/dr426.cc
! 84fd8bca1520c14b30d9c7177fffc763  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/2.cc
! 4febaff6a741b91f36d936f22323fc50  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/pod.cc
! 6d5ca26b4036cb7671730c8021b8ad10  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/version.cc
! c53cbd3849f3f67bddb618769ad3975c  libstdc++-v3/testsuite/25_algorithms/find/1.cc
! ceebe74a37abba4ed5c98d8c3fa0d419  libstdc++-v3/testsuite/25_algorithms/find/17441.cc
! 4628fe9f4e3121044ece82d584573b99  libstdc++-v3/testsuite/25_algorithms/find/39546.cc
! e81fc1f222ab370ad59cccd25c1e3136  libstdc++-v3/testsuite/25_algorithms/find/check_type.cc
! 9412e8616c998ffba5b55487a44b487d  libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc
! 971282aac7b44e6b7d5b8a3c390f22e7  libstdc++-v3/testsuite/25_algorithms/find/constrained.cc
! 98b5cc13331d7562a30a34c0ffbc6bad  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/1.cc
! 822748cd682b5fc82e42c25b323515a4  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
! 155e28efe5bf40457fadfd9b6cb9ff6f  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/1.cc
! 4685a0a6a6bb32f9afa8143e65bea4ef  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc
! 5b23960b4e7b3c052faace4297cf786f  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/2.cc
! 720db90e945aa3c084642a584c817653  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/pod.cc
! ba745dafcfe3662a8395a7b853deb79e  libstdc++-v3/testsuite/25_algorithms/find/vectorbool.cc
! e70f76f439a61ea29f9d9cfc6d5d7b75  libstdc++-v3/testsuite/25_algorithms/find_end/1.cc
! ba7241c4a9896239f32b583b8ed583a7  libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc
! c90a7503b3a6c39dde67eb333475dc97  libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc
! e7bcfdd35dfc58ca915a1728707e4c6c  libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc
! c1c39dddee70ed78dcc5a41df28effd2  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
! 804aa30cd30c7884b2a006641f9bdb78  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc
! c2f0314f606fc07489dfaafd1415032f  libstdc++-v3/testsuite/25_algorithms/find_end/vectorbool.cc
! d1d4977b07fc255f11c06d35402d50fb  libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc
! 6377ab263cd7df43df2c534e2437240c  libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc
! 6825f04a613b345fec3e7b8797eee0fb  libstdc++-v3/testsuite/25_algorithms/find_first_of/concept_check_1.cc
! cbe4bc75010d39587ff2c579bfe2bbe0  libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc
! fa5c379913d1531f13f78cf607e14a72  libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc
! af9c21519db79acf8c960ff70d5d25cc  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
! 807970dee314163b8045981cedf492c9  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc
! 5e3bd4f7b7683318f2e67c6d2f62db6d  libstdc++-v3/testsuite/25_algorithms/find_first_of/vectorbool.cc
! 044b74f0fa0246afe00a02e261aa9a70  libstdc++-v3/testsuite/25_algorithms/find_if/1.cc
! 5189361e0c9bab29d942a6f7d968912f  libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc
! 216867149161b665feb9a0d7b63c73c9  libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
! 112a61642fce49fcbbb15ed50aa69e5d  libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
! 0f4a4b0b945fd75ef9c023c825c8188e  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
! 1ab8940f3983149c384f4b157bba1894  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc
! ba745dafcfe3662a8395a7b853deb79e  libstdc++-v3/testsuite/25_algorithms/find_if/vectorbool.cc
! ca4c7b47dcc3c918c91a40b8c7aa2d2f  libstdc++-v3/testsuite/25_algorithms/find_if_not/1.cc
! b20bc9d3fb9181f9fdc2186f85d84c1b  libstdc++-v3/testsuite/25_algorithms/find_if_not/check_type.cc
! a46b35758563fe302e8159e2096010d2  libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc
! 549f7d58a932f684c2d9e617fd2fc5f6  libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc
! 96f6fbf9f9ed7571944aa8c033efa1f2  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc
! e8b3c81e912d10777dce4b7b087f8606  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc
! a7722208d1e7bb601491d806326bd945  libstdc++-v3/testsuite/25_algorithms/find_if_not/vectorbool.cc
! d517d1f59452266c9eedb67f0a7364d1  libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
! 82c17fed89cbde765b0270fb957c019f  libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc
! 5b5717f5711847b437c3588c70868f12  libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc
! 6b985533aa79367496bfceb82a572b22  libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc
! bc01793a6c62ab08aa86899d2bfc2f93  libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc
! 8949b5e0d8f7db05063f670d61cfe622  libstdc++-v3/testsuite/25_algorithms/for_each/1.cc
! 9b8d05f1065b64db61d05b6d5ee14f83  libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc
! f058a93701f88fdb6a44719d4199515a  libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc
! 9a7687d1deeb0c96458216b98bb1d563  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n.cc
! 77a0a7ee6c97c94897d2c6903a524676  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc
! 6495751ac82d4130509a05a2c6367491  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
! 67d99f100e4d5b0174e7d22771b28aac  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc
! 73851b9c91cdcdf3b38427edeb091916  libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc
! ce08a5b1129d3e5d24ad286b407e42f6  libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc
! 3a371ca4967779032fb83ede00d0a7d9  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/2.cc
! 8c7deba529d86cd4ca948e89cd93f801  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/pod.cc
! 6b2e1355e13e827792029973efb8e371  libstdc++-v3/testsuite/25_algorithms/generate_n/1.cc
! 98e73ad02818543dd649f9939aa8c9d1  libstdc++-v3/testsuite/25_algorithms/generate_n/25306.cc
! f01c6fd57f25d9b33286236490776d90  libstdc++-v3/testsuite/25_algorithms/generate_n/87982.cc
! 8e5423f3c9b014c6b503f5740c3cbdfe  libstdc++-v3/testsuite/25_algorithms/generate_n/87982_neg.cc
! 77320a3dc2b5dbcbd8b075d558ce7753  libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc
! a2573f1d648d44db649be50d848d866d  libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc
! b4975779561a6e03da2b5b935f755c50  libstdc++-v3/testsuite/25_algorithms/generate_n/dr426.cc
! a7291c339193f96801975080f0cbfbf1  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/2.cc
! 1bc1d9dd50a1d7320a074e1cb47e5416  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/pod.cc
! 60f7771d074bda2459fd3055a8032a71  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/algorithm_parallel_mode.cc
! 0fd0f34a913775e45157aa78be969141  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm.cc
! c8017c609bc263bf0d6fdebcb3c7c519  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert.cc
! 03abc7e87c22c67586281d2f702dc193  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert2.cc
! 1347d108841e0529adc28829373a96ba  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed1.cc
! 6c10cebdf3b7ed6c77ef51c4ac3a4ebd  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed2.cc
! 01ff04fb219d28da8d1a5a4b2f3f754b  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
! 4530518163a68ddb66a6e66f08080b8c  libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc
! 15f60ee61d6f115150a0553f375c0163  libstdc++-v3/testsuite/25_algorithms/heap/1.cc
! 444729c3f5daef627b457407240638f1  libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc
! 8cb7ca19372d560b4c9e274906216df9  libstdc++-v3/testsuite/25_algorithms/heap/moveable.cc
! 803083ebd3539a0c46f5680abae30bba  libstdc++-v3/testsuite/25_algorithms/heap/moveable2.cc
! bdd9c165cbb632f8aad107ef0b821617  libstdc++-v3/testsuite/25_algorithms/heap/vectorbool.cc
! efc480665ab579e8b1274690b49515c0  libstdc++-v3/testsuite/25_algorithms/includes/1.cc
! 75b3f48100fe9615d51e9c5b20ba6f88  libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc
! 5b2c53725c920edaf7785ef622f4a9b6  libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc
! d605fa3aae3b809e3b6c809d41d11aaa  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
! 1b2668a2c5943075488199ca26e6eb72  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/pod.cc
! 54c181243463ceb209b2ed7a6ce1ee9a  libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc
! 90affe5cdaf58dabd27635fcaf9af6f8  libstdc++-v3/testsuite/25_algorithms/inplace_merge/49559.cc
! 0ec27ec0142c0c739f9f7200829362d6  libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc
! 89974b36b8c8375197a1277432b641b2  libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc
! 283a8232f42fde3dc205375c175c71df  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable.cc
! f8cd472d3d8bb84c217dd050934cfc2e  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable2.cc
! 474eee9d65e58120e4dad1a02bad609c  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
! da566957bff4a8d05432c1842bb59aad  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/pod.cc
! f67f78358d8ef507eba967232518edb8  libstdc++-v3/testsuite/25_algorithms/iota/1.cc
! 6b1d8360df71039a9a68a1bc548999ae  libstdc++-v3/testsuite/25_algorithms/is_heap/1.cc
! aa28d8ce6336ad538a243bd3dff9798d  libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc
! bf38d7ae5e5153e5d0a0b3a648c0b31d  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/2.cc
! 8d2d5d15e377a63eff415e2db7b7f7dd  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/pod.cc
! ebe00c6e53f546ec09fecf3cf445eaa1  libstdc++-v3/testsuite/25_algorithms/is_heap_until/1.cc
! 01999bf35ddd1cea7198f0ab84646fa7  libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc
! d005127821f21b9e0b77dae7497580fb  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/2.cc
! 3b8ed6531f86075bc8843d4aa745935b  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/pod.cc
! 5fd4f646e6dac01fc0a4d918d184893c  libstdc++-v3/testsuite/25_algorithms/is_partitioned/1.cc
! 71a657a627c4facf5cee2d51deaf4158  libstdc++-v3/testsuite/25_algorithms/is_partitioned/2.cc
! 99eaa526288f93ae90a2b03570f60d2a  libstdc++-v3/testsuite/25_algorithms/is_partitioned/check_type.cc
! 86eb194c23fd3b8b4bd3d228e4bf011f  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc
! 84b27033d91ae077beeb9d5a58f0eeef  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc
! b8ba6ec38ad5995655324985bf81dd51  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc
! 98e115d1b6ee1959346d2591a7d3765e  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc
! 9573f0a40f878b77f9e14f1a8232036f  libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc
! e400bd5dde317fbee2301b748cb6c3fc  libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc
! 6447ed0147e5516ba468abadc9162308  libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc
! b2867f034a73e0c142e78966b2b84793  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc
! 2cc8f8150dc7a4cdf61c30e9ef54a093  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc
! 03e4ef02447c271dedcbaaff807c2134  libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc
! ebec2e04223322e44c13ab2c6cfe91f4  libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
! a9271d6faa3ba6db94b673fbac8ed3e2  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc
! c15da625d0654c606b1a2a2d433381ba  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc
! 952767710f55bd66b5017ba25b51f243  libstdc++-v3/testsuite/25_algorithms/is_permutation/vectorbool.cc
! 6ff8fe96835ffe880b221ae42d313c93  libstdc++-v3/testsuite/25_algorithms/is_sorted/1.cc
! 2b47149a0cc34fa3c4e809029ccda1c0  libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc
! 52e36e6cf8a75708130fdefcad1bda8d  libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc
! 02de953a70ae96d5da84be23a57023a4  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/2.cc
! b99732efd78ffde343d0c1fa26e5d205  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/pod.cc
! ca59feba98923c6f486a5de8c0755205  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/1.cc
! f57f292d824816a12627c3e7cca97c21  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc
! 4918d4277648854af8769f1dee093096  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc
! a64eb90b2543227afc1c6fb188bab77a  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/2.cc
! 7f90ae8cef35c77b7eaab1631ee05630  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/pod.cc
! ec8746bbc9e8c4a9fdd2364f4f7dca87  libstdc++-v3/testsuite/25_algorithms/iter_swap/20577.cc
! 1b24f95169be6ab976e29862e8487700  libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc
! d0ca1ae87edd2e00f3b9a2156b15f057  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/2.cc
! c51b77c9f6f8b0a4952b9f4a9ec695ec  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/pod.cc
! a0206f65833b50de2f6572c03f68f8c7  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc
! b2ff6b70a1d843ef91b6757443e81467  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/71545.cc
! bc0cd90b6e4f82ac4e907f559ae75e16  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc
! db10c65e75323c867bd84661a5d10ce0  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/94013.cc
! ac23b6f82e6eee6a33232d1eece61090  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc
! e2243f5b28d0adc25895806a59f722a6  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc
! 3d6823c6c19b1638c3b3f4fd31a9ccbb  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc
! 3c02af69486d5932189f78cde7a10b00  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc
! 65148eb8fd39cec2e91eaf26f7cbef64  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc
! c88da6bdfc1ce6af23dcc3fb708925fe  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
! 20234fa714bbefcd3b48545d6b1b6f71  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/pod.cc
! a642f3cd0f2a3dbd8e173772abb2685c  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/uchar.cc
! 1c68bec9e981d8ce35c3a666be7e3935  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc
! fda158d264fd98a45243c1135a92fa52  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc
! 8e70064395c37d027fdf2528698d0c18  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc
! 01788acc9ec3ab87ad9180ebfeca254c  libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc
! 7f77c0aa744bd5fa601271d4744f984a  libstdc++-v3/testsuite/25_algorithms/lower_bound/2.cc
! dead7c5ae9ce90c9a041ab27893f6064  libstdc++-v3/testsuite/25_algorithms/lower_bound/33613.cc
! bcf786c115a99f73cb6a519597c98131  libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc
! fd4c6319389b1490af9f9362a4b758e0  libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc
! d955201a65785f11dcd0d82b0de27071  libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc
! 49431d07a5539657240f0b8adeee397c  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc
! d49b964715d53d79f46cea5cf5b2276c  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc
! 9d06ade1f4576d67a58796bd972f0250  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc
! 8fe10bb1d8b27afd199ef1fd8952a900  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/irreflexive.cc
! 31a0a729cb0654e9ed8e30cd4c8b287c  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc
! ae16c16dca98db0ae798e50020e9551e  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc
! 2db25131d64efd6c1582797fe24b6545  libstdc++-v3/testsuite/25_algorithms/lower_bound/no_operator_ne.cc
! dc80d0836937f85cefaa7c8f5ed4598d  libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc
! 2fda6570a696cee2611daebad1c2c39c  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
! 6bd94f08747f3f3a2f06abf66bf6baca  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/pod.cc
! 99dbda4840f361fdc4f47bfdbe7c827f  libstdc++-v3/testsuite/25_algorithms/make_heap/80064.cc
! a38f00630f15d5345dafbcdf854c5c16  libstdc++-v3/testsuite/25_algorithms/make_heap/complexity.cc
! 082d8295d7ca10f08c539684a81fa93f  libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc
! 6e2ca73799d500b23811b8bdf0014257  libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc
! b73f044386e89d162686a3e6f67ef55a  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
! c7d682258e377137d071b322e260ec58  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/pod.cc
! a8f22246754b898b3906084e12a3c3c8  libstdc++-v3/testsuite/25_algorithms/max/1.cc
! 589697bae7d89f6e54aabe23cfa8f713  libstdc++-v3/testsuite/25_algorithms/max/2.cc
! be413438a619e878e5ab707e96d97f62  libstdc++-v3/testsuite/25_algorithms/max/3.cc
! 92529bc08813839035b298ca317853ed  libstdc++-v3/testsuite/25_algorithms/max/37547.cc
! ba108b9d2f16c5360553aca7b21e7071  libstdc++-v3/testsuite/25_algorithms/max/4.cc
! 13039fc2fb347e4095c2d761c1a7f0e4  libstdc++-v3/testsuite/25_algorithms/max/constexpr.cc
! 7f74d7326ae897cad4d64ae80057eea7  libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
! fd3b56c5cdaacb0d9dc42a017fde8378  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
! 487c46528bcdeb2ab0f9c1f6d16ebc69  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/3.cc
! bfaa83201fcc979110c0f4a0a4b7dbf6  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod.cc
! 32201e9641abfe77d95af151a122514a  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod2.cc
! dcc03b0154c579b03903e6650da4788b  libstdc++-v3/testsuite/25_algorithms/max_element/1.cc
! 617a9a9183cc2638b46935f7e4e4815c  libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc
! 5bb3e27604ebbe321711b5cb6635337c  libstdc++-v3/testsuite/25_algorithms/max_element/constexpr.cc
! 1e4315fa4c4787380f4a77a8d4c743b4  libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc
! d2e1aeb2ce87eb6b7dbd7d11776c4977  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
! cf5fb94d8919113f2c841c5de86e3ba9  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/pod.cc
! fb865541981c8159b50dc853ccf958da  libstdc++-v3/testsuite/25_algorithms/merge/1.cc
! 4aa71ac3850ca4631b313f2a12483071  libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc
! 377f45074dc2493534db472e8e6845d5  libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc
! 0f7205af5f83b3139dbd32cb7e72582e  libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc
! e26ea1f340e1ac8b0fc15fc4dc6ac191  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
! e5729144574ac3fc4cc88c60c16ce77b  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/pod.cc
! ed2de81334f97473f35df7fdcfbdf1c5  libstdc++-v3/testsuite/25_algorithms/min/1.cc
! 62b44315ae7f984eedd108e4bbc4ac12  libstdc++-v3/testsuite/25_algorithms/min/2.cc
! bcce6963568cfca159b3132b6539fe90  libstdc++-v3/testsuite/25_algorithms/min/3.cc
! 068d6dabed0f3b44631c8b4db328c256  libstdc++-v3/testsuite/25_algorithms/min/37547.cc
! c4f2ae870a28bbe3ee2d21bce42168df  libstdc++-v3/testsuite/25_algorithms/min/4.cc
! 86675c129899387da52ed1f654cc6f17  libstdc++-v3/testsuite/25_algorithms/min/concept_checks.cc
! 6656717faec57c9ef72df787a239daaa  libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc
! 06152bb02b57c7d271af40f6bac7698d  libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
! 46aae32b18dd330edbfae26028dbb6dc  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
! ac94231301970450fae0122f2a374b5d  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/3.cc
! 874936d31cce65507813c565b31df795  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod.cc
! cb2cb57c956783b60c20a46c89781ad8  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod2.cc
! 65bd04e3bf02f9cffd3f8449761038a2  libstdc++-v3/testsuite/25_algorithms/min_element/1.cc
! d3de46a2bf8279216e4f2c1db1a27f20  libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc
! 324b1d47de0aeacd9781cdeb48bba269  libstdc++-v3/testsuite/25_algorithms/min_element/constexpr.cc
! ec9f956d8dbd230151c3963659d48352  libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc
! bf9cfb76c2df20ea26f3f2e6162e0e4e  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
! eb957ceb85cbac4897656e95d86f4d21  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/pod.cc
! 275c780df3ed6faac4cad83fd9387058  libstdc++-v3/testsuite/25_algorithms/minmax/1.cc
! 87f9fd0b1fb494df5c5c68c87d2a1019  libstdc++-v3/testsuite/25_algorithms/minmax/2.cc
! 1a9a11005a5b0e9bc58099e73336260e  libstdc++-v3/testsuite/25_algorithms/minmax/3.cc
! 87991ec9058e17f07054e20e3158aece  libstdc++-v3/testsuite/25_algorithms/minmax/37547.cc
! fe0d867bf5def3bfc9427f7b2a805520  libstdc++-v3/testsuite/25_algorithms/minmax/constexpr.cc
! 7c111c088d2751a493cb8f73aeaa5893  libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
! bf6641e80b9c99185229fee49f8862be  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/2.cc
! 3dcf1a03a60e7de57cfbe5e4da87761b  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/3.cc
! 1755db37bf23701ec071ddef06941cc1  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod.cc
! b9f3885e5aef90e6307893351a241ae1  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod2.cc
! d5665ba9f727ec2993244033afb2482d  libstdc++-v3/testsuite/25_algorithms/minmax_element/1.cc
! c8c11061fea23c60d48ad42e87d607f5  libstdc++-v3/testsuite/25_algorithms/minmax_element/check_type.cc
! ee9a710a60d44921212aa6844cb94927  libstdc++-v3/testsuite/25_algorithms/minmax_element/constexpr.cc
! d6fc5e798412f9888bf51434773158da  libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc
! 3f7a1b2030e4a52d3b44f63da2793fc0  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/2.cc
! 9d6b6e351593c7eceee93ad621293fae  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/pod.cc
! 0e9a69b72d8ccddba7e9eacee051cee9  libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc
! f3d2663b867803a156746b030e4d7cae  libstdc++-v3/testsuite/25_algorithms/mismatch/2.cc
! 46b46cb164a139e62f676011f98ebc73  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc
! 09492ae45fb261a3c133d1fb7e4f912b  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type2.cc
! 74ed0e7ac9791393fb8cdb1b0655c73f  libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
! e5de5f14ac656061d0e2805cd3d8be9b  libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
! 0d714fbdca8b8e38d6eaafd3765ed555  libstdc++-v3/testsuite/25_algorithms/move/1.cc
  4ae907818586f505a2d4d108b85aff1d  libstdc++-v3/testsuite/25_algorithms/move/108846.cc
! 1f5e6afce460a3baeb8fe184993e3397  libstdc++-v3/testsuite/25_algorithms/move/69478.cc
! 6ccb45bdd208d4e934a8a790526f05d5  libstdc++-v3/testsuite/25_algorithms/move/93872.cc
! b82a4e0e45a6205070dc5ca383d4d8ae  libstdc++-v3/testsuite/25_algorithms/move/94013.cc
! 7f2579177bef0a2707bfc98eb9428235  libstdc++-v3/testsuite/25_algorithms/move/95578.cc
! 84aa86eee8e864094db55390b46b1e0a  libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc
! 99de82725432ad4d1f2cd138a7d3fb9d  libstdc++-v3/testsuite/25_algorithms/move/constrained.cc
  c41fedc68e3cee79d652221a1c6b2c9a  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc
! eda78e208db932c175f035b9ee0f450c  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc
! 1f90e792b31a14c8ca7e859707c5ea92  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc
! fa391f9e6f9ae935d6ffb94754239c50  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/pod.cc
! 70298e526cc1759b837585d931c313bc  libstdc++-v3/testsuite/25_algorithms/move_backward/1.cc
  ad56a2e5738139bc09cd67e855d44a07  libstdc++-v3/testsuite/25_algorithms/move_backward/108846.cc
! 6a7652b3b99eaf363c2613556ef2285d  libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc
! 3a4daf23e463a75bc66dafe73b2d44ff  libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc
! f814bb749bc12143b72e2a3048c051cf  libstdc++-v3/testsuite/25_algorithms/move_backward/94013.cc
! f0286ebd4e50041a3d536c95842b4d64  libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc
! 8f0c2df57c69b445c7b2f751324c9c46  libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc
  d798b4d62b339492aca582244b60767f  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/1.cc
! 36ad2c3f6601afab92e0bc07427d574f  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/2.cc
! 445f26c336152931ce15f8a242aaff5c  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/2.cc
! 45366eb84ad24e1c0a6f957070fce22b  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/pod.cc
! 378d69665fafd43a0776db7c1f361233  libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc
! c8dbaea9def0cd09398f2c1ef23f3a0f  libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc
! 5d2638b44066e4b2e130d0f540867d1c  libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc
! 5794dcdbf4055d0da768c1b39a3e3b81  libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc
! 1caf7350ed832014e1cf9ed6d6828d6a  libstdc++-v3/testsuite/25_algorithms/next_permutation/moveable.cc
! 75dcef81b515e35aba9975e1c860741c  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
! 856946eda2402c07c886de9c3f8e12df  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/pod.cc
! 77c300f302bd9b3bd53694cc87d29169  libstdc++-v3/testsuite/25_algorithms/none_of/1.cc
! 992ddd092e7304b5f73abb12294622da  libstdc++-v3/testsuite/25_algorithms/none_of/check_type.cc
! b34f78ba3fa496c051f4d2bf09017247  libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc
! 84369408136e862abc1fca75a9cfc7d0  libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc
! 9c2307e9e170919f023b7aa45d2d09b0  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc
! b1b328362b4bea49e708a8c01a78fd9d  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc
! 20d0cbdc4fa92d79bb7e455d435ca2f7  libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc
! a47215c20d413fbad5a881247d4771aa  libstdc++-v3/testsuite/25_algorithms/nth_element/2.cc
! 1fbdef9f386ad5cff37a621d075d69f9  libstdc++-v3/testsuite/25_algorithms/nth_element/3.cc
! 10eeea6beace5ce3a5343e60e6d98e0a  libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
! 895b7b272c3dbbba99d83f209666e21c  libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc
! 494020b138acdace7f62bd264a3bf3f7  libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc
! 4750764d592c112e202ae4001c0dc210  libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc
! f4e4d8402b7ec68555f230fb7d25fd4d  libstdc++-v3/testsuite/25_algorithms/nth_element/moveable.cc
! 51c2f105b8f5db611c015515cc2ff2bd  libstdc++-v3/testsuite/25_algorithms/nth_element/random_test.cc
! a1a4c46a332fc84a1218b614044b1a9b  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
! df60a9634ebb64473d1713b49410ebf9  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/pod.cc
! ca47f9b9b47187121719831941a20a25  libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc
! 9f181635098875d7b58f0d77e96be0a1  libstdc++-v3/testsuite/25_algorithms/partial_sort/2.cc
! c1aab6aeb73145e9a6e86d928f189c03  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_compare_by_value.cc
! cd3a5634a707bb60b55931fedbdbdaab  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc
! 08e33accf2f1c4eaf845b2615e996b45  libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc
! 94d8b53312a11be47e02086f79f1cde1  libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc
! 2984362743d9b74970cfa5de42e92433  libstdc++-v3/testsuite/25_algorithms/partial_sort/moveable.cc
! db6467faacdfda9df08b74cb89c29d58  libstdc++-v3/testsuite/25_algorithms/partial_sort/random_test.cc
! 187ef0c5b02aea53403afca3a1425139  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
! 78951da8918813a19c0a0f2cc1901272  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/pod.cc
! 54930b87feb38068ecccb21c807629a5  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc
! 95e683f5560954cee38ad7a72bb7ea58  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/2.cc
! bbb843c20bc42661d95826454edf67c3  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc
! 7c3ee2ffa86de93d31a31799ea229302  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc
! 29879e709a1d6ff8064c80f16f0a0fe6  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc
! 94dd0f19f36e740ea7a5f16c28e23344  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc
! ea9e6f6f458ca93c25393f9a6cb26315  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/random_test.cc
! 9ac20d7323d172f02fb22435d6ca35fe  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
! dce91afe67dfc9dad65b8b61feba589d  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/pod.cc
! cd7b6381a374414ea4029250ca63a631  libstdc++-v3/testsuite/25_algorithms/partition/1.cc
! c1bdbcd080ccb913cb49e698cdd120e4  libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc
! 7f89747d5f8826d273c089eefb3b05b6  libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc
! e8514a78be45766a41a9a78379106552  libstdc++-v3/testsuite/25_algorithms/partition/moveable.cc
! e0537bdde3f3f82ef48e194211672627  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
! b9ba2cf88794b45ffffa1d43c94aee8a  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc
! 5097571b056c526de4fb947065931f49  libstdc++-v3/testsuite/25_algorithms/partition_copy/1.cc
! dd362fefe035e90278e92433bc02b68f  libstdc++-v3/testsuite/25_algorithms/partition_copy/check_type.cc
! 35fbb136b5dbc68269bbdb72726a43b5  libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc
! 1ef48b5577618b3c6e7d5b5a53ee8cd7  libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc
! 1db1a0b69f348af1d581b25b308aadc1  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc
! 99e01e3f91e2b4f4a07a4c96e9fc9e83  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc
! a600e60b51c7b8e5035e5e18503b3917  libstdc++-v3/testsuite/25_algorithms/partition_point/1.cc
! e10331397f89082f7c8e433ffda892a3  libstdc++-v3/testsuite/25_algorithms/partition_point/check_type.cc
! 53d621d3b16b6a98ef875d3c0226a28f  libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc
! 597784404f788aff55d6c3fda12ee473  libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc
! 6cb2a8fcadc1cb43a4c71b9e2de26425  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc
! daa397ea456a7a626c8a8fe6c9dfd559  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc
! 5866a6fb69da038efca6472630b6abca  libstdc++-v3/testsuite/25_algorithms/pop_heap/57010.cc
! f94842a9ebf85bcc779732acf1e67659  libstdc++-v3/testsuite/25_algorithms/pop_heap/complexity.cc
! c1f76199cb583749dc3b2d72d4abb471  libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc
! 840255ce513af166b846630dd1d3b81f  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty2_neg.cc
! c77b01a79470767d5c9c3fda81d16187  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty_neg.cc
! 0170412508c7b9d2f00f5fa414457f9a  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
! fe20fd6914a28792d9ef2c58c1cab12c  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/pod.cc
! 4ec09966572e89707cb3d1a44493ac81  libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc
! 6d8be952bdf36fc83b273932716f54cd  libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc
! e2a2856bcc2ba6ca8bd03b96591eceb5  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc
! 9c186fef99978131907b015f001698af  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc
! e8bc837aad0936d457dd2e1af15bb063  libstdc++-v3/testsuite/25_algorithms/prev_permutation/moveable.cc
! dda3d3b0a72a7e8edbfc35b4bb737412  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
! 35b32e0e70089ace45c8b51b4acf6ade  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/pod.cc
! 483f0d2b982ffd637fea37a0569b88bb  libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc
! ab4ae24cbfbe0eb49c83491ec0a881ef  libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/merge.cc
! 29d2598210aed8b859e0500304329f34  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc
! e6f44866a825e6ce8195ef2d3919effb  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc
! 38614956c719121de66b08ad5f78d915  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc
! 9bd3a34e92e7621b2ee85a782e2057c0  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc
! 13c60b596417396a3f12c14f33422b99  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc
! 4ddf5b572dd3495244b5350b7a7a0ef9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc
! 1c2452b19213c4c081002c5a15b4f291  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc
! e6eb5f0c9039200e2f47c2a7c0a7008f  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc
! 3d6f8cac7302700c1ecbc2cb9dcd4bf0  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc
! 419427233d1ea75a23e0e0bb16d82d38  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc
! a8dd4df5b2d95fd890c7b6768b553171  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc
! 760addc9f8df0aa2481bd9f1593152e1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc
! 19311150796a8e27a5923f15455a7637  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc
! be7cdecfaf7aee19340a014c32dc3bb9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc
! 96439854006077aac451e7c2bb3575db  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc
! a154eccfbe9a3db0cf499398fbbdd3b8  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc
! 1b5617f96a3494cc8905c19014f2cd94  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc
! bc48e74412654c4c814738bcd1a2b413  libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc
! 0e309855269b54f703470d649844bf09  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc
! 91fba12ecd5ec931410c45a6655d21e4  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc
! ba841c68eaaf496b09be0c93fd4ba84e  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc
! 5eb42b367bac0704e6c88c09065906f4  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc
! d9ff1dbe4a11ae2e9e4a98194fba70af  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc
! 39ec43927ad62952c7f5931e5f9b3692  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc
! a11568cd0a36433d122194a386a37a97  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc
! d04efb81674c596fba83553974fdd698  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc
! 127a079a90b69ae40b1b53db130e27eb  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc
! 9ee150e42cd2236b5d7fbb52e5bc77d7  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc
! 087430ef08346e98be1070a35e8977aa  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc
! fdffab2892b525799dd5504450175904  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc
! 9c7e30f4e15afab84d90447c17ab74cf  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
! c79161ba8499d6d20555f0c5a9842a3d  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc
! 5fbd7ceff3e8ce89f9100e620a0850b1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc
! eaaf09138f9c89061c5cd2835ee22dd9  libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc
! 217665f6bd1e2e59b9cef4da86e46b4e  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
! 4baa175d84575e9b8eb6c56ded27ea43  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc
! 3976ac394882d12b8b5646eefdd364ba  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc
! 5eaa55ed214210af78887829f4e731b5  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc
! f1dd929728cefe90180fd699f6eb82b6  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc
! f76a5a8f90c2a299d90b4d10e13bece1  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
! d5e4ba72f1a9b9d6478a6a92b71b518b  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc
! ac8890df44a550f4ce2ae489e8713185  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc
! 552f40613000b64b21b1a507fbc855bf  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc
! 989856f48f5566b6f6a145523fa4435e  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc
! 8ed63becaff8d7ddcc953bf11aeae917  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_union.cc
! b3af02c7ce3935c437421b2b3a0115a8  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
! cfcd5a50c41caba901b388ea5eb06156  libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/sort.cc
! cbfa429d6a137226f503373bc32d5601  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc
! c4e37e5f5682bc63c16525aedb9b42b5  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc
! 7758e72ea4a6602fcf7b5d775f025c2f  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc
! 4468c5e7d78fdb4f1fb28f154ed3ef28  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc
! a42a0660d839f3a00c827d83373927ad  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc
! 6e534cc473fa3979492ba96f52d51587  libstdc++-v3/testsuite/25_algorithms/push_heap/complexity.cc
! 06f3a8d54468729a57fa046eecdf5cc6  libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc
! 958f73d6ab90e8acbce8cd759cc2126e  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
! da9386bb899d5e4895259983d1cdb551  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/pod.cc
! 21646e68e60fe569c6a0fec8c2893382  libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc
! 8647c870841cb160b3a8e629a1749486  libstdc++-v3/testsuite/25_algorithms/random_shuffle/59603.cc
! f010199fc562cf76b8dcad255735e3e3  libstdc++-v3/testsuite/25_algorithms/random_shuffle/deprecated.cc
! 5c2ce15e451a7cd69949c23df4be7c81  libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc
! 2767a1927121933fd8d6dc08ba06a450  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
! 0dc3af92cc0bd41338706f009e5aef03  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc
! 2c6b70642f32093070db39f568d6bd8b  libstdc++-v3/testsuite/25_algorithms/remove/1.cc
! 072443034da10a2c01a763e7c8c0870a  libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc
! e0df8872420305f76da61d29df5bb336  libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc
! d4d2fb84d3b3e1bb50a2a1926621bde1  libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc
! b52ac8099a52cff4fcba9bb854640b4c  libstdc++-v3/testsuite/25_algorithms/remove/moveable.cc
! feec63889901019ae9016a10b80a373e  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/2.cc
! 13acfb23db9442650cd76d491049c10d  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
! 724412fc39e6783feaf57ca08696a46b  libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc
! d7d3a5d95af14f8360421d47d644ffc6  libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc
! 233a2aabe395729feec7731247e8f43f  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/2.cc
! 13d152c4307c6d40f5d31f062e251d12  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/pod.cc
! 55f4054cdbdb0d1ee681c83de0f9e507  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/check_type.cc
! cb4106952f027333ca2ac7c47d2659a0  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc
! e9cd3f5e8ed3d92badb1d6bda7cd830d  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc
! efa85cfbd5440a7ed5ee4e3af8585f75  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
! 936aae42b6cad6dee5a396d2ecc3ba00  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc
! 753f06aacf9f6d461175fac86e6a2a8b  libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc
! 395478ca028b929db8653b6cb4234dbd  libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc
! a43aaa3b4000d630f3c7e74f768615ad  libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc
! 8646d3ba4ece4e977e81b97baab6cf20  libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc
! 79c825eeab30a6dcc5f5e03acb3e2ae3  libstdc++-v3/testsuite/25_algorithms/remove_if/moveable.cc
! accffcf6e225a28f862edce0ff24924e  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
! 9de30eefe819b295d91cabbb5a29cebc  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc
! 6fbf0f4ee7393cfd5b3104f24dc8fe7b  libstdc++-v3/testsuite/25_algorithms/replace/1.cc
! 2bfc4e18a11f43434211e3d493ab052d  libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc
! 94e6512d8a3abb9c577a6a0d6e9c2f60  libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc
! 0d74d1b8ab2d0c20d73e339725071daf  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/2.cc
! 2fc52e2e6be56ce3d7e004c0b241fbb0  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/pod.cc
! c1f1b97a6f69931c294a735388ae9d6e  libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc
! cf6af75c7847fdbec07ddb0f50d3e759  libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc
! a1375a7d4f887b1ebf461c88ad3522f3  libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc
! ce98d959c6a52b46f40d9eeb5108a6d2  libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc
! 7c6e828e7bf274e93731d467d060d77a  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/2.cc
! ed34ec725b6c5a9e5c8f968d893a5ff1  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/pod.cc
! 16309c80e48b39c00e024cc61e3eaf79  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc
! f259aa3eee08889f05d78f0fff95fe3b  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc
! 7158634d942975a703c5abb76749560c  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc
! c425360874982a56d74c74f1e8998e5d  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc
! 843192f5ec1f68f0e345b217e192f760  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
! 6c59c6ef877d9159c9a5c3edbdc1a35d  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc
! e90ee2bcdcf20caf6aef42afc8442e9a  libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc
! 464762a4cdfc1cf1c7a88cdf0d85298a  libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc
! f5226a205248511a908428cb6669aec9  libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc
! de0966008cdb1a02319a6ed548773d31  libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc
! 57d8e3839b7d2d6e1092b30e1ad9eadd  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
! 0d5bd404c1b8abea3c231e7156abd4f2  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc
! 01eb615b6b94d9d8808b71bb50d162b4  libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc
! 62fee89c9124de417d9fe85c03cc564e  libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc
! d2b0d9f04fbd9171c49b545003f20360  libstdc++-v3/testsuite/25_algorithms/reverse/moveable.cc
! 83b7ebcc07879c23b904b4ec25fdbe7e  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/2.cc
! c21f1132c4be79c8733d45536ba1d3b2  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/pod.cc
! b89bc6571cd8466a6bc0b14a84f6d793  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc
! 250c943fcc9c0af4f825ffe1e2fe4305  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc
! e706cdb5c17a0cce7b6915d1956212be  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/2.cc
! c11529fc6f6e891bb9e0e1f7f0df5822  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/pod.cc
! 78e7cb2076ecbe9c56fdfb2721b7a62b  libstdc++-v3/testsuite/25_algorithms/rotate/1.cc
! 348d3e7486c8b76110ec83d8d2072ece  libstdc++-v3/testsuite/25_algorithms/rotate/90920.cc
! 6de302238c89772b27d72213b8aabf03  libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc
! 2dc282def9ae5ab490a0d65707d78625  libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc
! 19d2d4d07bf4acb382c07e6c2733b8bc  libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc
! 8d97511594ef73de55b18e6d8af1eddd  libstdc++-v3/testsuite/25_algorithms/rotate/dr488.cc
! 9270f88c4053f2fb31997cf57207e7a3  libstdc++-v3/testsuite/25_algorithms/rotate/moveable.cc
! 11ba5da23637b58f1d9d0e629837da62  libstdc++-v3/testsuite/25_algorithms/rotate/moveable2.cc
! faf2fdb802bd1557b353ee81352e5444  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/2.cc
! 4502abd1f335ce9263121ab523668f46  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/pod.cc
! 83c1beffe59083715d58354c56943390  libstdc++-v3/testsuite/25_algorithms/rotate/rotate.cc
! 7be944887824b13420d1b10ecc94b674  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc
! 37564c9c22d282749b8c7df0996c5df2  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc
! ccc411fc12a468e1604dccdf3d0c26e7  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/2.cc
! 319d92587db785cacbb5160d334e07d5  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/pod.cc
! d4c61a4b8b9cf95994a87ad10db42142  libstdc++-v3/testsuite/25_algorithms/sample/1.cc
! b68878a54b6a4667fac398754db8fea9  libstdc++-v3/testsuite/25_algorithms/sample/2.cc
! caa6720348cfdc1315a7c71de866adcc  libstdc++-v3/testsuite/25_algorithms/sample/3.cc
! a256e7fdb61950f06a19184e63844906  libstdc++-v3/testsuite/25_algorithms/sample/81221.cc
! 73310f2a0ab126c19ad46e359ae36d44  libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc
! bb8a093e85ee799d43310b17e092afb0  libstdc++-v3/testsuite/25_algorithms/search/1.cc
! 0d1bef0d71b1ec10566487564bc4d90b  libstdc++-v3/testsuite/25_algorithms/search/78346.cc
! ad5706d1633b857cae9740eea5ab3811  libstdc++-v3/testsuite/25_algorithms/search/check_type.cc
! 0fb9beb98a98165ace6c827a2047e029  libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc
! 751c2c73612b3478530c0b4ebbba7cce  libstdc++-v3/testsuite/25_algorithms/search/constrained.cc
! 191134d0e24960139a8b56f0423d64b9  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
! 400afb0d1675fac51ae1c5b68c77f5ba  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc
! cc772574f268132a6d3d69913dda4763  libstdc++-v3/testsuite/25_algorithms/search/searcher.cc
! b945a0097fe7d40c0f902559dbc859ec  libstdc++-v3/testsuite/25_algorithms/search_n/11400.cc
! 3ab32eec10a6525ce50a0bbee6545e0a  libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc
! ac03a0a64fe08ba5892e0ef1cc19e984  libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc
! 1aa4cb8cd5553dddd3e0a5912a27993b  libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc
! 4a091c0bb6ca34bd0433f0f5fbfea0b5  libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc
! 47c86fc6ebc2d048466e9f300bbe72b1  libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc
! 968696725a07d324560613bfeb90d584  libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
! 65bc26c63dae0f941233e9297cb768d9  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
! 9c49334651741587f06d63e3ca753f31  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc
! 070909156573187a72391b824dd5caa4  libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc
! 078c96067bcfc09d4c944d4684494f9b  libstdc++-v3/testsuite/25_algorithms/set_difference/35541.cc
! 8d90e2ff73ea0bd7adce971e51414fe9  libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc
! 6c0fb43dd138912425c7e59b18ac7262  libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc
! 9dd390fe37d045649dd1ef45fcf49ee2  libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc
! b79d02c27a1df63992a81e6c6120d888  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
! 8bc7bdc091de7777946c35b1e1726920  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/pod.cc
! a7db1b0ee70037ef494c1e09a1a0ee58  libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc
! c356b7d187e065aa50c656d073c623c9  libstdc++-v3/testsuite/25_algorithms/set_intersection/34730.cc
! aaeb768b0a75a3f5610c0631b1fd6973  libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc
! 99b9d4c60bf85eb5df62e1055a5c7397  libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc
! e2649c169f550a4c358ef3782fb095af  libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc
! f760575484641a4a6221e0c93be4ab9a  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
! 8c7173aa67dbd34dc2592aeedb116717  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/pod.cc
! eb5c7044b5f58b547f0c99044b9cd520  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc
! d665919a2ba1fd3ce298d325c78465a1  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc
! c4eb8325f7c45087ab1c8d3ea5e72585  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc
! 15bf491e029a6e300285bc06107359e8  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc
! aefa8102b9337ee145d0515930362d2a  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
! ec4deedec51fe9d3900844ee4e14f54d  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/pod.cc
! a7a3eea0dacc02ea8620ae9c958d27fd  libstdc++-v3/testsuite/25_algorithms/set_union/1.cc
! 54c5606ac9a9381afd3cdfd24b6da887  libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc
! 5f7e99290defece5f7e069db2650678d  libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc
! 3aa466b38c30034af0ff287912aea1f4  libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc
! 10f9880b45e2c43171952dd53cca9015  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
! d160bf7b60e55e21064992e97f49fa21  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/pod.cc
! 5af682735ecde72398ff9d0499fde395  libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc
! ccf392d4808f74be9b6255055b05b6f2  libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
! dffb6803769560525e2b4693148c521e  libstdc++-v3/testsuite/25_algorithms/shuffle/1.cc
! 4c452f64c90fa6ce7dc34fa98017473a  libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
! a475fe342f6bfb5d6edf9bfda505ecf2  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc
! bac5dfe670322a0990b60be6b33c79be  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc
! 55086767bb6b2b3ff6f5f1a7421b427b  libstdc++-v3/testsuite/25_algorithms/sort/1.cc
! d0031fc76e6ed984c39c4f54e3113161  libstdc++-v3/testsuite/25_algorithms/sort/34095.cc
! 4afea5cde8b0265e72d37a58ec268404  libstdc++-v3/testsuite/25_algorithms/sort/34636.cc
! 4e04ceb277d5f84569932d8cd5d0246b  libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
! c75128abbdf617077b01fbf23e81f5fa  libstdc++-v3/testsuite/25_algorithms/sort/78991.cc
! 0a1f0089ddd3f3c9c7498eb9e4fa52e2  libstdc++-v3/testsuite/25_algorithms/sort/check_compare_by_value.cc
! 6cf8b718c5927bbc72ffdfc672705700  libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc
! d516cb96ab75cc7a078e3f71e65d3c3e  libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc
! 39d913ab9102c1f770211da47bd82e77  libstdc++-v3/testsuite/25_algorithms/sort/moveable.cc
! c8bc128986e8ef59238d85df0542ea51  libstdc++-v3/testsuite/25_algorithms/sort/random_test.cc
! 6ad76fee74d311f539eafec70c1f21b1  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
! f265a0335db404d4ba0bef528b6d713f  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/pod.cc
! c0e2391f67e5eefd90af30fe11dcc31a  libstdc++-v3/testsuite/25_algorithms/sort/vectorbool.cc
! 63701ebf9406eccc51a39b75bf117194  libstdc++-v3/testsuite/25_algorithms/sort_heap/check_compare_by_value.cc
! 8d3f2022a02b80f3de9882a4c747b1aa  libstdc++-v3/testsuite/25_algorithms/sort_heap/complexity.cc
! 1992021dfa13f06464003f73f836cb34  libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc
! afea79a363c28f8b795225d8ba69b190  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
! 48785539cfdb5952852feba162a6722a  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/pod.cc
! fa5afaa1b5e9cb24efcea0c3c2f892bb  libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc
! e2ca1395d3c45a43e8e8bce75f92787a  libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc
! 82c8fb5f20724a411323fabb319fae5a  libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc
! 2d93301b8943cdfb28bcbdfc7d0557e1  libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc
! c814b61bb61d487d22ee0b2cc4ff20e8  libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc
! 09dd882d88be1769fb59fcb2496647d1  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
! 47df89f0d47355365457c4d458e4878f  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc
! f915f6010a3c08626f9b64367ee67ece  libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc
! 61def6eacc8d58d1327a1b915d02b209  libstdc++-v3/testsuite/25_algorithms/stable_sort/2.cc
! aa304b0f9cef26fc93865495a52ad3a5  libstdc++-v3/testsuite/25_algorithms/stable_sort/3.cc
  b3f58b622470c2e75b734eba5c7ee60a  libstdc++-v3/testsuite/25_algorithms/stable_sort/4.cc
! 6ade561dee3802f43c370a53d9304ac8  libstdc++-v3/testsuite/25_algorithms/stable_sort/49559.cc
! 63a06aa879b31b7b671b53abdcabda96  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_compare_by_value.cc
! d30831fb02624dc77f85ecec4d54291f  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc
! 9d22546efd9ca99e3740c9100933b56a  libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc
! 18f24e8918f68a5494291e1a0af8e4c1  libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc
! f29bd9175ea4dc69977bb45193ff9bbb  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable.cc
! e90e57de3018995485c34c5b947a1f65  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable2.cc
! 317ca46de72d7d4dc50015cd5970fa98  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
! 3728ed0a0d049d7169218c80d60abfd2  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/pod.cc
! 6a520733dc478ee9fa75a4a2af5cba7e  libstdc++-v3/testsuite/25_algorithms/swap/68877.cc
! d8c8cc86d48db2cb4d3a8a3bb28cdad8  libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
! 917f93a23e05b625335b069c2bfd4c31  libstdc++-v3/testsuite/25_algorithms/swap/dr809.cc
! 57c46b13ee0dd7aa814f1a4bf1e41b7b  libstdc++-v3/testsuite/25_algorithms/swap/noexcept.cc
! dcdcaa76ea34d8b6661a57f4b40b4b3f  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/2.cc
! 2902db0e9743aa1c4aafbc6b6d190b5b  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/pod.cc
! 920ac60c0a3c41c363a8d350dd302556  libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc
! ce3e258350b0a43b307ee206846ba7c9  libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc
! c48e3ca3aac35356037737b0a1d4263d  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc
! 013c58c3aa1a3a855640923bf6df34d3  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc
! 3f7444904d3b738654f599986db2b8c5  libstdc++-v3/testsuite/25_algorithms/swap_ranges/moveable.cc
! 5338ebe365940bbc24dea978777b02d8  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/2.cc
! a27e0a4482034224528ea6fcb3c3d0d6  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/pod.cc
! 58f6adb71334ef10f577004ee1e4843a  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/version.cc
! 98268bb34a254fa63621eb060a6a54e0  libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc
! 379d2465154ff90e3ff417b72a8c2240  libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc
! 80bf786d06490cba8a2624f459a67f55  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
! 1115dc05fbd79d872568cf40a190f4df  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc
! a8b59a6405373e537737905205ecbcbf  libstdc++-v3/testsuite/25_algorithms/unique/1.cc
! b134aa48b2765a2d7112bc3370cb66aa  libstdc++-v3/testsuite/25_algorithms/unique/11480.cc
! c9abc1995ed5d1037b4f2fe5d70e959b  libstdc++-v3/testsuite/25_algorithms/unique/2.cc
! 7b5c1e31b19ca86f504095dbaa45ebc7  libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc
! ea9ffd7ef8cd05637ebf75b4aab84047  libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc
! 94c3b2b47b675d58ec1a32b2ac2e16e2  libstdc++-v3/testsuite/25_algorithms/unique/moveable.cc
! a166d87c8383f89447a153a9b4255a38  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
! 19aa08674f00184a3ec25f7aed16b4f1  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/pod.cc
! 72c07d4bfad301da5d91100b8f1aa0be  libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc
! b4b97bd1a0fb358544881640ad8299fe  libstdc++-v3/testsuite/25_algorithms/unique_copy/2.cc
! 26dbbb8e2eed581b34b49a9fc09c5ac7  libstdc++-v3/testsuite/25_algorithms/unique_copy/26133.cc
! 7751db3fba979c7968921b9fa954a899  libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc
! 7f61675007933bb902d8c30736ca2bd0  libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
! 86d6e971d045c68cf2ca9e4978217d01  libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
! c42339ae0a10a37a9cde14bb54ff0756  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
! 9671131bc6967bf8f19459e15cb797fd  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/pod.cc
! ec69ac49b74f99bcbfb72abb1235c74f  libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc
! 5ee29dfc9be5b5e7f68fa8bcd048cbf7  libstdc++-v3/testsuite/25_algorithms/upper_bound/2.cc
! 6c36875b60422100cde6b24173f91966  libstdc++-v3/testsuite/25_algorithms/upper_bound/33613.cc
! 4aba79c220518c18511241507317f8a1  libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc
! 1096e07741775939afe682be627ca495  libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc
! f628604fb387014e32d60e7cac61af0f  libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc
! 7ce83012682f17028d79d11d42db7880  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc
! 3dcf44cdbe1787dd00e4f9c3f1811fe6  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc
! e76eb57b42d8b9d990bd77d492176b3e  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc
! ac62a9ebb05f612ca360b6563ef58562  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc
! 3fcc35fe57b8910a1fc049859c0a10ee  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc
! 208435c8c3f7aecd6d050079d03ddb8b  libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc
! b73267dfd4d7e6010eff3d8afc56f945  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
! 0d0ca4e45556ed0ed909468ddb39c2cc  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/pod.cc
! 66ef0dd3d42d677312df3fd1ff5390d9  libstdc++-v3/testsuite/26_numerics/accumulate/1.cc
! 2d6616e8c10bf5f8a615069b5b05aa7a  libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc
! fa21e6762fe7740e9ba7470338c85184  libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc
! 40eee3032cc6cdca46edb2160328ccae  libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc
! fe86a572737335deeb36bd23e79c0828  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/2.cc
! 0c00e3f170587365ce57120062746dbd  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/pod.cc
! 869e3c13b0643631cdd2457cd78220a7  libstdc++-v3/testsuite/26_numerics/adjacent_difference/1.cc
! c742d728c7c027c5e53305de838bcbad  libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc
! cf9540a5dc823b74b9254172d5f3cab7  libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc
! 44d9e8296d0e05f9338ef1b7bf9107ce  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/2.cc
! be4ec645ebdd215e08bb5394bceabccf  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/pod.cc
! 4935060b57afe253a92f0c0269fdcac7  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc
! 9cec15d732a386d74e5a63155ef1e747  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc
! 8837bf0bc456a0e99d2e723a8e9b7357  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc
! 474e31eeb1d3cd30f2579d109ed3d135  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc
! aaef945e09049d90425c3dfdca9bda1d  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc
! 63458eb71d80db1df9cc993c1c2c1303  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc
! 2c27bf96debee02a59ff901d8830718d  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc
! 3b911d8030ef23116cbe90b40ce0f361  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc
! f101b565a60385eff8a995df7b2c1ac4  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc
! ef38249a108e50f9bd945255fdffd4e0  libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc
! d15c5b8ece016ec16031df7c74e440c0  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc
! 5a1e0421380691bd6bc387e040526d07  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
! 83cf609d49e6c2077ef3b19a039bf53f  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc
! 600f301596c06bb354120310256e9fe1  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc
! 8ecba91692b0784c247edd65b6aa4042  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc
! 75fa3c6b57b5d30fe1a0bad01755da26  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc
! c612c2bf63c98cac7d7d9949712eb1ea  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc
! a05cbe708b43c38eac14ba944e29d524  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc
! f261c99c1d474c8e46c1fc99c08db2e4  libstdc++-v3/testsuite/26_numerics/bit/header-2.cc
! d265d375d917c212b77510b066fbd72d  libstdc++-v3/testsuite/26_numerics/bit/header.cc
! 766fee09f3d54f4377208fa6405584b7  libstdc++-v3/testsuite/26_numerics/complex/1.cc
! 69b6833ddc3609cb5d5ce749a9ab89d7  libstdc++-v3/testsuite/26_numerics/complex/13450.cc
! 014b077a6e9b0abb6a236bcfa49a5d1e  libstdc++-v3/testsuite/26_numerics/complex/2.cc
! 039cd4c7c0a615430c7f54798d720766  libstdc++-v3/testsuite/26_numerics/complex/50880.cc
! 583325990435c6d0cbd53860612d4fad  libstdc++-v3/testsuite/26_numerics/complex/51083.cc
! c3cd7b4376bc0ee7c5b48312059f4627  libstdc++-v3/testsuite/26_numerics/complex/56111.cc
  af7877b96aa74cdfc7f025c671e3d6c2  libstdc++-v3/testsuite/26_numerics/complex/abi_tag.cc
! 913914b737a0169dadefedfb758307de  libstdc++-v3/testsuite/26_numerics/complex/buggy_complex.cc
! 54cf4b544a66cb316294aaf136ac6996  libstdc++-v3/testsuite/26_numerics/complex/c99.cc
! dd4ea47d4b59458c0e9a09ec93d86164  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/constexpr.cc
! b8cd77e5cf88d4981f91dba39cb80acf  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc
! 4ef016fe4873b0086cda9a430d7771b5  libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc
! 28efed234dd869628621bb24dd85f782  libstdc++-v3/testsuite/26_numerics/complex/cons/48760_c++0x.cc
! ecd3ee40c8b4d4acee53e546a26cd717  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr.cc
! 91ea3819eeeb25fecc5dbf1f7ce43fb5  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr_primary.cc
! ee44057d545fb6e23220bbc24250b0c5  libstdc++-v3/testsuite/26_numerics/complex/dr387_2.cc
! ab235cba51a40a2ed39ef4860514a386  libstdc++-v3/testsuite/26_numerics/complex/dr781.cc
! 2109cb6e5993cb37b0507a31c1d154e5  libstdc++-v3/testsuite/26_numerics/complex/dr844.cc
! d10bb8a3d67dfdf2b3a6683a7b0d177b  libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc
! 7a1254a309ed6ab3a8a48f74414a5e22  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/1.cc
! e0749f8c4313ffa435214bfff1e98380  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc
! e8b8c4240c9699c0222842a1d5f10894  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/wchar_t/1.cc
! f3b2f0638c8767f039ea9adc78d2d878  libstdc++-v3/testsuite/26_numerics/complex/literals/types.cc
! c92212a2b27c98501b97bed340a2c01a  libstdc++-v3/testsuite/26_numerics/complex/literals/values.cc
! 405b41c523d71f28a6f8d22b3ae99004  libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
  906619ecf0877a7ff5302dd409c34714  libstdc++-v3/testsuite/26_numerics/complex/pow.cc
! 5f927fe5e2ee4df8d2ea44d1af3cde01  libstdc++-v3/testsuite/26_numerics/complex/proj.cc
! c5107f6725faed76c6ece703cdd5e7e5  libstdc++-v3/testsuite/26_numerics/complex/requirements/constexpr_functions.cc
! 5eb63cece3f2736ffbf128453627adf6  libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
! 66e864ff1d4dbccd769d855f82ef6920  libstdc++-v3/testsuite/26_numerics/complex/value_operations/1.cc
! 1881f64d5d09bf1233286e5b51d492e7  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr.cc
! d078d2434649ba7c7a0c471b591d81c6  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc
! 5005b65a268cd888dab8082da8454019  libstdc++-v3/testsuite/26_numerics/complex/value_operations/dr387.cc
! ad6369fac1b101ba854eb7a8fcb08b73  libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc
! 771942d092d6f9af0763a2996a94ab93  libstdc++-v3/testsuite/26_numerics/complex/value_operations/pr88341.cc
! 98fa9ca4160382c1edf577998fa35d8e  libstdc++-v3/testsuite/26_numerics/endian/1.cc
! a4ca950c8f3220595c080a1a2c4a3ce9  libstdc++-v3/testsuite/26_numerics/endian/2.cc
! 23c3b52e39970b32196b0ea7c8766f0e  libstdc++-v3/testsuite/26_numerics/endian/3.cc
! e3e55ae0a1defede361345746d1c12d7  libstdc++-v3/testsuite/26_numerics/endian/4.cc
! 6119141d56fefa37281d4c8a5a05f00b  libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc
! 1ca6f5362dffebbd51b79f65c1c36c43  libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
! 0d39e398d84523d35e2c64634c510f19  libstdc++-v3/testsuite/26_numerics/gcd/1.cc
! c0592f39e604ea2889d72927c929cbdb  libstdc++-v3/testsuite/26_numerics/gcd/105844.cc
! 84f1b2c016a3baa9cb35f30e865d10a6  libstdc++-v3/testsuite/26_numerics/gcd/2.cc
! 2ed4df8a209dd51c9d2ad18cb910433f  libstdc++-v3/testsuite/26_numerics/gcd/92978.cc
! dbd753d02f69db885ef03aa59b3b7d58  libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc
! 9c605f8c3c51cae02db911b605e858c9  libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc
! 839149a804de566a41d0580c37c717c3  libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc
! 258c97e4c4e97b6c5cc99f1d1518f410  libstdc++-v3/testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc
  2c248a4dde912eb37b2f452da846b228  libstdc++-v3/testsuite/26_numerics/headers/cmath/109758.cc
! 5c507f3324a28c3ee98721a06726b912  libstdc++-v3/testsuite/26_numerics/headers/cmath/14608.cc
! f88a9b7c9690aac07303fb37be0a8102  libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc
! cac60b27a689928aa3ff44b788b3eaa6  libstdc++-v3/testsuite/26_numerics/headers/cmath/25913.cc
! a05836289db7adf77bddce09d12264d5  libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc
! 90333c959a3be50faf83b0e73510369c  libstdc++-v3/testsuite/26_numerics/headers/cmath/48891.cc
! 6104141917912bf5ac05db0ee76d55a5  libstdc++-v3/testsuite/26_numerics/headers/cmath/51083.cc
! 8e22a89ffc69b25bb814c219ded94988  libstdc++-v3/testsuite/26_numerics/headers/cmath/53503.cc
! 942d3f60d4698d39ce0a2ec6b7f1e912  libstdc++-v3/testsuite/26_numerics/headers/cmath/60401.cc
! b90bf638e3d496923ee647dc80457242  libstdc++-v3/testsuite/26_numerics/headers/cmath/60637.cc
! ae5f5cd09a22745e77349b093acf3416  libstdc++-v3/testsuite/26_numerics/headers/cmath/82644.cc
! 98c9cda5da9d66ad511e2933b7169892  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++11.cc
! 40cba6a59403d2fddb61b9d757ac7855  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc
! d9af1aa649448f94aee15e0e3084c231  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++98.cc
! a6925d342b58551f32a4f01bdf385f39  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
! c1f27024fd51e08e1948151e9a8a5e70  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc
! 2d393fb7600c8792225c680f1a4aff1a  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc
! 46867dd495652c286a5a67a40a61d05c  libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc
! 44caccbbced4574a23b5a0f3a4850ca4  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192.cc
! ebf7e5cf9dfc1d7b6f7952aee4023c7c  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192_neg.cc
! 877e857ba80091a7ba38341a2c69a313  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr550.cc
! 4c5e3d73c4eba0a441b24e93b4c9c8d8  libstdc++-v3/testsuite/26_numerics/headers/cmath/equivalent_functions.cc
! e609e6006a2b917060de6c7bc5e04b41  libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc
! 331bd862f7befa17f2c6e6fa661f9ea7  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_global.cc
! 4e5ee07ce76e83889fe0d7d644b3b00f  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc
! 9217471ea074424d044d989010d29191  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++17.cc
! e188a67388efb84eb6ab20fa6db08dea  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
! 75c1acdb466435329aaf0c063c0fd197  libstdc++-v3/testsuite/26_numerics/headers/cmath/hypot.cc
! 51569abcb9904789918e952415f8afef  libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc
! e0f07d99c9706e62cd96b9257883ea93  libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc
! dfdf923896e3eb97ad3acfafdf0843ed  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc
! fa7127e1ffc60a11c0fcd29d282a710e  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc
! 26f21352d3906b665f31b955d1c54710  libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc
! ab6722af69b75c3854a2fdbe9319ccfd  libstdc++-v3/testsuite/26_numerics/headers/cmath/special_functions_global.cc
! 2112c8d903031f058d26178e834cdfc7  libstdc++-v3/testsuite/26_numerics/headers/cmath/types_std_c++0x.cc
! dd0335308b5ad40825f3fc88dbf1278b  libstdc++-v3/testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc
! 34d9d176640ec4b02afc6417355a49f8  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++11.cc
! 5aa14924a1337cfecba96311a5d993fb  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++98.cc
! 6761b4318e950a1bfc8c7a06eaf85865  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_gnu++11.cc
! 024435a303f5e6b522a1b43a39342cff  libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
! e885e9e10fca72b8527be2bb28d098e2  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc
! 3c8d4455b3dab012868ae406d25bb5a3  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc
! 9cc8e414d2658acce80d7307957ca69f  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/54686.cc
! f2d51921ad8c44f98375e900666aae9d  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc
! 24aee7cc870d42d53733e690e3eeb1fb  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc
! a98582f290f9acce3cd257b3bb995349  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc
! 670ef5e8b9d62521f6a4410ced57c9a1  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc
! 621886acf9a2170ca8de0ecef5a54b0c  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc
! 9ed5ce907094fb3ff373045416da7c3f  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc
! 8790b3ea4cd1220bf26c0b1a1667ee43  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc
! 983104cfeaf42d51ff8ffff02eac7e17  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc
! 47bbfe79dc20e31f987933f481290b9c  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc
! d5a5ac50613f5832257a422b5997d2f8  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc
! 6c73e8184b5db9bed4e9d3e70ddf374c  libstdc++-v3/testsuite/26_numerics/headers/numeric/numeric_parallel_mode.cc
! aad9058d978a7a560b6d0458b09cd3da  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric.cc
! a536f65bcdf068fa8da9998b2eb295bf  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed1.cc
! 1f2a182b0b1935e827d52c9aaa8bc6b8  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed2.cc
! 89c1fbb521ef1da2dfe1db9d08fcf774  libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc
! c42995403099d2a442cba51e7cbea02e  libstdc++-v3/testsuite/26_numerics/headers/random/std_c++0x_neg.cc
! 6b2407961fb0f88a7e0b8b71f25b94d3  libstdc++-v3/testsuite/26_numerics/headers/random/types_std_c++0x.cc
! d94cbb3bdc7af1e42f87b71adb27c348  libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc
! 201b79004297cdb29361e50bdd083954  libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc
! a3ba59cf7de9453ed64262d8b7515e12  libstdc++-v3/testsuite/26_numerics/inclusive_scan/1.cc
! 6f4838c3ffadc5c1eb331df53db359d3  libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc
! a191a23b9257ea97b0f777ab55489888  libstdc++-v3/testsuite/26_numerics/inner_product/1.cc
! 0137a15ea614ed3b4ee7913bbe44640a  libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc
! bd2e47845a838724513b7930af9c0f5b  libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc
! ff25845d8c9171856feb4305c7204c5a  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/2.cc
! f05c84dfa8f97b0ee9a60f34c6ebe748  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/pod.cc
! f4c403fdfd5826f3012758aaa0273e3d  libstdc++-v3/testsuite/26_numerics/iota/1.cc
! 6cbc7f628c009e191e83c2e3763defa8  libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc
! 713d5404d4a607dfe978a32e0cc75daa  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc
! eb7b2a56764fb15af964460cb4b596c2  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc
! 502b4a1bae7d362eea4d0ff7013756c2  libstdc++-v3/testsuite/26_numerics/lcm/1.cc
! 06e27c5d0bebfd86a30f02761b07fd55  libstdc++-v3/testsuite/26_numerics/lcm/105844.cc
! 31211249dd665c4388e310506219168a  libstdc++-v3/testsuite/26_numerics/lcm/92978.cc
! fce70ca611ec272650a28158f2f82da2  libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc
! 6dccfd28d40db30d296fb0c37c4f81d2  libstdc++-v3/testsuite/26_numerics/lerp/1.cc
! e5503759ad254e3d4e531982b2332cf6  libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
! b42ff7d986cab9b160a370e20de27fd0  libstdc++-v3/testsuite/26_numerics/lerp/version.cc
! ffcee4259de62f62f64a01052082b565  libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc
! 48a2f82fa61be44adbe251b3d20e4ca1  libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc
! 1a43640770262e55e8d3f954c644f272  libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
! e5183ff5e9e7d7b05a388660e090ab1b  libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc
! b42ff7d986cab9b160a370e20de27fd0  libstdc++-v3/testsuite/26_numerics/midpoint/version.cc
! dd691ec24a70d0aa83df34d990f5a032  libstdc++-v3/testsuite/26_numerics/numbers/1.cc
! 7e8e6d23f15b66234b509bcc06abcfa3  libstdc++-v3/testsuite/26_numerics/numbers/2.cc
! e6f6145550698334a28f2e15b4902182  libstdc++-v3/testsuite/26_numerics/numbers/3.cc
! 5df2a992e6efc601a1adc3b75793f88d  libstdc++-v3/testsuite/26_numerics/numbers/4.cc
! db5f47cb555dc8e9968603f6f06f150d  libstdc++-v3/testsuite/26_numerics/numbers/float128.cc
! 1af70584af3e238973da2f32281fc1ad  libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc
! 8d47735b1e0eec5cd01b8e9745df9ffb  libstdc++-v3/testsuite/26_numerics/partial_sum/1.cc
! 3e8ee0a64d3bb27dccace44d86edc5d3  libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc
! 99448e21adfa6551816d957fe243d16b  libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc
! 091d307f6188159df2109062bc6b5880  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/2.cc
! 90b9ac90acc4a72ba2057167cd8931dc  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/pod.cc
! c77f5444168b58d256585ece5f094189  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc
! 248df0829f90cb1d8e89a85fce08aa0a  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/reduce.cc
! f2befccb7997036bb753da67e9e718b5  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/scan.cc
! 2f68d0ffd63ef33412e1a1bd5399db50  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc
! ed8b405503adae8aa36f1ed9f9781777  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc
! 0cc391cd3c3506272f39443c41fd1eb0  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc
! 257a4e822160c5d209183854180503ac  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc
! 953ebebc17db2d48b6bbd4ee4a052d4c  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/equal.cc
! 2c11b429e73629829d38aec96fa172a9  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/inequal.cc
! 110d395c659d18ce5861aaf174f7f635  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/serialize.cc
! bcfabc4dc1ccbe2564adeabf74039b63  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc
! 34ce8e1289414f10373768494129e3b6  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/requirements/typedefs.cc
! 334c22069a56db08670dd630ad02a516  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/114359.cc
! 18e9f45141ef5b025775ecf5a92fef6c  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc
! 76ba243b6caf317c7ed711e134485e9d  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/parms.cc
! 7a771bdb86058718df1e0483b04ef65b  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/equal.cc
! dd0fd6fefecced65ffc1d0c752c06dd9  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/inequal.cc
! 7e645892ca0b2803dac6c24f8ec6deee  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/serialize.cc
! 46f8a4035bd3db210b2cc71fb4904dd5  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
! ad9989a30a4daee1adbc51bd3037d984  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values2.cc
! 6381c5962e6505be25890b7a36e418c8  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values3.cc
! a316e986469c0835734d7c9d62b790ca  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values4.cc
! 81dafb5acb2fec31948881a55d0566d6  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values5.cc
! ec162ad5d039388464861a60c72ec9b3  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc
! 8aaf93752b5c1fc89e6dab24d0989ded  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/typedefs.cc
! a129abd8ae35b7dd873168ecf2d95466  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc
! 0a65d67c3b83a2a9e5173b54f1726971  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc
! 43b12d254441ac9984674e50919cdfa2  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/equal.cc
! 17a6ab051646b34af913cfc2793f9824  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/inequal.cc
! 1095c6338979ec5c7ec7eacde04fd023  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/serialize.cc
! dc85a6be393e5c09f677a6c8e449fba6  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc
! 2cc9782a9f37ab8b5159e17726133a78  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/typedefs.cc
! 10ddca3ea904348660175ab1d23af85e  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/83833.cc
! 49e54125effcf6489e6d2cf5c84295b2  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc
! ca026d18f87819de4ad3ab31a7512a06  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc
! 16def5418b4d1f9416e40b7c42d4a305  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/equal.cc
! d1f8a81572c56b37324c2c3c3cb2244b  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/inequal.cc
! 199e78ef009689c7e68c431e3dd28e93  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/serialize.cc
! 150d7b7f3a729aab356fc286e4178f7c  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc
! 184923d63e973a281643c5901c4a8af7  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/typedefs.cc
! f35a0ef4823f86d56eb36229e7a43846  libstdc++-v3/testsuite/26_numerics/random/concept.cc
! c288d93216c02b22a29b68cf0d45dca0  libstdc++-v3/testsuite/26_numerics/random/default_random_engine.cc
! 8d67ddbcc9e08031b2ab6ae02e5ff08f  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/55215.cc
! da8cc0b9a86c72d08f6b82c4fa9daebe  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_copy.cc
! 92b22039bb1a00aeac101797ea87037c  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_move.cc
! 53ba215b1b327a4a8b7b93b6c504d55c  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/copy.cc
! 9b2e953cc22a8ce326d1e0df249d5092  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/default.cc
! e47e9efc908c230d0b25b4d5da8dc2ba  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed1.cc
! bf14afe8c85dffab2ffa5fca4858c35f  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed2.cc
! aae4b7b9736f1db41165e25b61069673  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq.cc
! 2e76d61c65ffa7123e4ddbff01c3b41c  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc
! 8fff50a18bd068560e4c56b4937a429d  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/equal.cc
! 53630c3ec12727621cd5ab0b38ed7b61  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/inequal.cc
! 1d3324518b86bb73e1e01df15ea937d7  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/serialize.cc
! c5422b0137e0cec91c01c7fd11fb3bd2  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_data.cc
! 6b633481fa7aa14cc226d2000b54620d  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_functions.cc
! 66a4ddd122d2ff7407e401002d9b28a5  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/typedefs.cc
! c7853104dbb60591e0e8f3ec67d6f93c  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc
! ca7b88491955e6907fca580ffa786cc1  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/initlist.cc
! 048d3a5ef2dd8b05cd4856633984e91a  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/num_xbound_fun.cc
! ec9011a8b4a1bd751aa7a8405ad48208  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc
! 28ef34442109c93f9292cdeea140fc5c  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/call-default.cc
! 8c533fcd8c1a56c5acda68f2566afb8a  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/equal.cc
! 8400f22d24a1a14e719cfd3368256d56  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/inequal.cc
! 3bf42e71a1b0d87ceb66bd257d4f187c  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/serialize.cc
! 41ab2cfbd6160d31403822f102e34a11  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/values.cc
! e77f20ccc0cea289120d40fb3cb857d8  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc
! 145212aa84bc3fb92202a0146770b8b7  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/typedefs.cc
! 62ece7b2aff4e7d8b73cb86d8ecb5a1e  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc
! 184a891b2abb6445045f1987544719ff  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc
! d5e4478cf02d06398ed82a19321e4275  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/equal.cc
! 347702df0ab13a63a0452e6abb529af4  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/inequal.cc
! 7b6737219b108e0bc79d3826d39de9d3  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/serialize.cc
! 20cc3fcbc41f7e4eac93027c8b6ee8c1  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc
! bbb49558937aba950eb7c0b09038f802  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/typedefs.cc
! b56126bd13f191422fe389501a05f947  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc
! c828dc18c7f8a907e651862ab5d5b2ff  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc
! df360fd0d4e93b374364f8a6fb2d1f1b  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/equal.cc
! 7c3a113661efedde446ef4076b36883f  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/inequal.cc
! 72e5629ec03629c50def3aa0c71945fd  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/serialize.cc
! 413b4e5d5f07df4928f7c5a37ccf4fd7  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc
! efed0508211ecb9af411a88de3ed781e  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/typedefs.cc
! b47ccbcf12643a0bbb7de8390de77dba  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc
! 3505ae8d1453e0992e55bf6cd8cc6c76  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc
! a68c592207b01a58db4706dffc4beaad  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/equal.cc
! 0cc972f9e51350b05be8c9e00a994fda  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/inequal.cc
! ca1fbaf5b9d78ccd557f29eda14d655a  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/serialize.cc
! 386528a1d65c5fa807fac659b93cd0f4  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc
! 8f8780a02ff7df35d04deacfc148a539  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/typedefs.cc
! c5bdb853524139ad56a0f727cd5ccda3  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc
! ddd24949d37708151046d7fddf4586f1  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/parms.cc
! dab70c365024c4baeb6f8d3b0eb16f24  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/equal.cc
! 92462b28fe14fd17f01b24b1350ad6e8  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/inequal.cc
! 39cecffe238f51ae0a7eb53b7f2ab1d3  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/serialize.cc
! e86cfe323da015466a186a4da76c2f34  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc
! 142f9af5964dbac822668575fc64eb8b  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/typedefs.cc
! a570102b82364653bcf86738a9324fa8  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc
! 18dc33fb83b8c731294773a337e889cc  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/parms.cc
! 50f1dc0bf0cb26b2b010657af9ee7cf9  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/equal.cc
! 22f11d9741f6232636256482c14e501f  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/inequal.cc
! 5d7c98c924598544a985f7229720812f  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/serialize.cc
! 8f84b7e28e5eacd7907b1fe28184429b  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/values.cc
! fd6757a04d5cde7f7aaaa294a7858be3  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc
! d566b454c4f3379374a5b63fbf348d30  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/typedefs.cc
! 96393192b1d6f773060a6adaa7cb7bb3  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/55215.cc
! 4e3bc2856406fba6f274a57d01944d2f  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_copy.cc
! e5da66dd4ce257d90dd105096c23a951  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_move.cc
! de7dac8d8fbea2dac533c6831a29f9e8  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/copy.cc
! f23f9882bcbc58448de7bc986bf99a70  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/default.cc
! 4659676335be55314ac3228f1e85fee4  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed1.cc
! 497342ba2c92fb16cfdb85af8886918b  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed2.cc
! f444deedbf30589599e31d63ce87f2fd  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq.cc
! 2ad08cb09a27c62258c6384816307c0b  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc
! f952a5ad7e60561616ebaadeefdfa524  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/equal.cc
! fa539c0947d04e565233eefcd91480b8  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/inequal.cc
! 16a1086d5bab5f99768c361729bf69e4  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/serialize.cc
! c97c17af3762a45d5ad6bb92cdb373bb  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/constexpr_functions.cc
! 23b111f84232bb261e8adcc42acb0600  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/typedefs.cc
! 85a6cf4f6f0ff67d4e4af7ed53d9a3eb  libstdc++-v3/testsuite/26_numerics/random/knuth_b.cc
! 45b91bf0319782738db89dd5c35f9b4e  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/87744.cc
! 48603c676c84924d767c4625138a8227  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/55215.cc
! 259af404d9386365fad438034a01d2d6  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/copy.cc
! 6addda6aece38cc70e52514847b47f6a  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/default.cc
! 0153f47040765b1d7299c0b560bd00f5  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed1.cc
! 8804f9b439ca9032d0aef2a28211d27c  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed2.cc
! 4261ed7882d7e61bc6d04509b31c7163  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq.cc
! 0e1da9cd0d0e29198f201950ed8d36a8  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc
! bcc38c74c3eb2eee636bbfa13221fbd1  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/51795.cc
! c3da8a4d6ccc936ab0882395b7183866  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc
! 383bd80b5a7428450791dd3865800edb  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/equal.cc
! 21749f2394fe7c7f7735cb615e6d2728  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/inequal.cc
! 06181a2f6ddc354ddebb97447b96ce41  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/serialize.cc
! 727ccd67220e28d5231c47dfc88a4d20  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constants.cc
! 32e2e41ca1a5c1a6f7d8c93e5a3174a0  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_data.cc
! ad72bd8fc89edee6630906fceef3b8f9  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_functions.cc
! 5329102a366d478732c05547d9b8efba  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc
! ffcc7289bd01d20e8896c01d7689beba  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/typedefs.cc
! a52a5b14116f2b77241247872221ba4f  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc
! 2e59f6fbb9753803e80e35b3b281a29f  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc
! 9087ffc535ab00189f6597cfa4cded67  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/equal.cc
! a1df76da7c38124054eb7abef272dd0a  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/inequal.cc
! 9db0e9e689a58d611d7b1641b6de3dad  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/serialize.cc
! 0c7e67b3c051dbf460513a5ae182bd7d  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc
! 2fa5da5bf081d106054bbe28f50b69f5  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/typedefs.cc
! 9cf0551226bdc45474f1a30e6d2dbeff  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/55215.cc
! 524e08e767890ddb4179a9fcf55cbe18  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/copy.cc
! 8ddef75cfb6442162f79315575273a6b  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/default.cc
! d4a9c865b7db48fb98837c2741f071cc  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed1.cc
! 74900d0142942c4da0514243c467e81f  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed2.cc
! 11b04620221e0ae35b01299bd4da8c68  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq.cc
! ce1eda56460a4645881423434574c1d2  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc
! 12c13550855ce1987e7c6d631eb98169  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/equal.cc
! eb9a237a445634ecb73a4fda97368eea  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/inequal.cc
! e25e4485fddcb9ae93e003287e68c69f  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/serialize.cc
! ab11c3d37d348964c14f97862a5f1034  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constants.cc
! 6f12ccc6a98d1663965117fcd7b266ad  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_data.cc
! 552207ea17841a8a5e173d5fbc70a820  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_functions.cc
! 0a89c6ff7b9813734383deb2d5c7b1d2  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/typedefs.cc
! 6c16df6973ae71e2b7a467a49c4ce49b  libstdc++-v3/testsuite/26_numerics/random/minstd_rand.cc
! 9e7f2fffc45e98fb8a605224146ca793  libstdc++-v3/testsuite/26_numerics/random/minstd_rand0.cc
! 5f1a64988f1e250c1bef99521cbde4a3  libstdc++-v3/testsuite/26_numerics/random/mt19937.cc
! 8d3fc5e6e5cfc016120d0ff8bffeb654  libstdc++-v3/testsuite/26_numerics/random/mt19937_64.cc
! 2aca007b8e7ac5e7ee54b580e0482919  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc
! d59e20154cebe2a29aa70e4587395a96  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/parms.cc
! 48f8eb464377b94d96ce2a0fdf6b4337  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc
! 694fe469435f78de16394321b2a141a6  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/equal.cc
! 9c45a0b8434e676fbd396360620db3b6  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/inequal.cc
! 7994c673c5d136f76d80688b71d5763d  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/serialize.cc
! 1c586daf4feb1082c53cf3577d9136d4  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc
! 531737b3defe20aee59e646597308e28  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc
! 3cdf5549564e5aeafa53013c30d7d410  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/typedefs.cc
! 9d3ef05a70571e8cff8d404832b637aa  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc
! 997adafd61229025797b43bb04346d79  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
! a59ca3fa2d2dd414384d49f7643c4732  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc
! 6b6df4b7a8f262a5987a97905a4a1cc3  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc
! fa051b94c05ae51defc1258265283a68  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc
! b550cc92e1d171d70be705b729b0c56e  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
! f2c8203503276d5063bea61597ddff2a  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc
! d55ee869185c35d2fe433f3e8c321766  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
! 18ab0734af4b9cf93949a97bc6d1594e  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/initlist_fun.cc
! 17f248f7b933281bc1353b2b28968a83  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/num_xbound_fun.cc
! cd422a158da5f66ba8fea000f6955bf7  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc
! c6ceb341839cf4bf1da7a822eb3372de  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/call-default.cc
! 238ac973fa3c0c0d984026c644f04b13  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/equal.cc
! e8bf0379af76e52e3d3ec9cf31ad2d95  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/inequal.cc
! 755de65cfdfdc0ea1d3a709a41c0c712  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize.cc
! e63eaf3980053a8838a7515a9e776e0b  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
! 05822bfb9a7e707b9a25b9a4077a235a  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/typedefs.cc
! cfc2b16ef743f23a4b2b081c52aee933  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc
! 2a089c33c99162d42501f51796316051  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/initlist_fun.cc
! 98356b0dac11f02a9501aa282eafea76  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/num_xbound_fun.cc
! 2a39a5790b27e8c2213e9d6b68c3a916  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc
! 4a022d9017b380435af6f73838d668f5  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/call-default.cc
! 7e8e7d23ab41cb036a55fedaf5be9292  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/equal.cc
! 055010a2bcaa95aa497a91d965cafc30  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/inequal.cc
! 9fd7de5e282b80400c46cd496d6bafc8  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize.cc
! 53989a2d9d74820daeab2e67520180cd  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
! 7b4a42a3d94a5a34cbf40af023fe624a  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/typedefs.cc
! a5210e560653579b4fe6a680a11c3956  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc
! ca42bc22ffe6aa21bfaf5d591848ef85  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/parms.cc
! d764e635bdafa64cc541e5ed8beed357  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/equal.cc
! 58e7c9bb0a3f95b938396a7d64026ba0  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/inequal.cc
! 08641ba3eb99e3de9a3564c8abb6208c  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/serialize.cc
! bf3ce81a74b74a34a2b424383bb0a279  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc
! 1f3263a8972a5a1b8016b1a0b0de2aa2  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc
! 05cc9dfcd9fee06888aa2c3378493a4b  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc
! 222b8e8700d8093ce9456ba54d36e1e7  libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc
! e07fd6cffb3fc8c0e4598e157d2301b2  libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc
! 59a922851bc81862b3b9fee017031293  libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc
! a353e770a745656b0729a85fd2673080  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc
! 4e36767d3728a37852aa7bd301858aa6  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc
! ad557c4240470c544b53b55b72150d1f  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc
  b58b0627741172f23a1476ee917f59d8  libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc
! 85184b5fe6e88b5a8b136b52d0939cff  libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc
! 84a17b2ce9bbe1a0f088a22011753133  libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc
! 27a6638f4f607c365ca8cea44b39b8a4  libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc
! fa6c9490ed745b5691bf5c2a00c5ab58  libstdc++-v3/testsuite/26_numerics/random/ranlux48.cc
! 7f4e1445bdf69528dccce4e217ff99ce  libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc
! 1af1e9e50a54a5a50a454234615baa9f  libstdc++-v3/testsuite/26_numerics/random/seed_seq/97311.cc
! 7f2cd5098166eaa4fa520d3c70844169  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc
! f053f62f066fbb2959c23d20da6c45dc  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc
! 880326e169d4a9c30447163ef0336082  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc
! c9989ef11631eb594496cd386bdeaef2  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc
! aa271ec7d3cb77fb3732e12a239831c1  libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc
! 80c2ebe24f8c89fed5be31d87689bcd9  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc
! 40e4ce04df0238b05567b4c7e1c454dd  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_copy.cc
! d6947504f1a325baf17860f3770ef24a  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_move.cc
! 89438758b91941970a2ea275764c2ab9  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/copy.cc
! 477307a8cfe42f83ffb45a63e9e74bec  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/default.cc
! 8b9c1c3531a55d42624389c59cc91426  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed1.cc
! 0426c64eca7982b981110f1c7323e6ac  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed2.cc
! 6d458f8e234674b60da43aee55a55967  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq.cc
! d2875f511b5f58c1c9de7f4fb6f064e1  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc
! 8c589c22c98b0116d7eefe2492747827  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/equal.cc
! b695b75d18655c7041ccd8005ee53df1  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/inequal.cc
! c9b22f2ec03881c19711a540a25de268  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/serialize.cc
! 9a3c5b23e5b4076d89ff6c08729deb59  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constants.cc
! 5737e17a8e918beba581fdbbc0a8e829  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_data.cc
! 217dc5d2e936afde964d05a3c7c8271a  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_functions.cc
! 1e84818116c7f936a934f50b55f0f24d  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/typedefs.cc
! bbad32b0a41ee57a82138a4d10a85d46  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc
! b4d0588774f933d4eed51df22760af82  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc
! 89569398e08f8b85d1e65250d1ac1106  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/equal.cc
! 65419d189b615c502a3c637e54c17233  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/inequal.cc
! d185eba153b4dbe37658c600c896b69e  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/serialize.cc
! abbf042874cdd1edca4092eade1a5ddc  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc
! 5d3a2cb819b3f760cc1227aac58950b4  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/typedefs.cc
! 689af6d40e08ad09465b71093d4b667c  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/55215.cc
! e1e8978b33c083b8ad503eae2b5a6977  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/copy.cc
! e117ef2b3530bf971f65cdf51511a3fb  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/default.cc
! 7fdf0ab9b87bcd0e74ad97ad9667a1e1  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc
! aff99b296792e9b78783d52453435173  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed1.cc
! a6fea853e6c642ebe6f0d46eca81c668  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed2.cc
! 4e95d7cbb8d3a62cf12c20821d3f408f  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq.cc
! d99353b47ffc6273c6a6198d3a87b23b  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc
! 89cac02f8848b7cad6f9b7fc7bae8324  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/equal.cc
! aebc8e5767e35e8fb85ed02919d24686  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/inequal.cc
! 838e940be37293475beda2f31cae2d38  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/serialize.cc
! e547cca5b5e62b5ce7ae2a047592de4a  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constants.cc
! 1df55ae1eb5cde9f6f6c03ff87fd5ec3  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_data.cc
! 0b6797064e20b1e6723605ae62c65a1b  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_functions.cc
! e1b69dd612c440cbef916c1c238e3702  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/typedefs.cc
! 3637214256cc4b21a415355e0c1e0f67  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc
! 8aeea278fc40f109d6e4aa36569a205c  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc
! eb2749954360c83f0dafabc88928464a  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/equal.cc
! ac5ae2eb5b4f3561785e20980ee0edc9  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/inequal.cc
! d7f7e2a3a6793660a6ed94e2d8a4c49c  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/serialize.cc
! cc3f9e1d42274a104c3de4abdf609145  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc
! cd6a66fa44b456042d98af0f41e0feb1  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc
! 61f717669a1e629ce6f9a966e57ad5a6  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/typedefs.cc
! cca54edeb1ef9ed735b6e92fe550b970  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc
! 8b666bd03d06cda23fd90b6f829f7d66  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc
! 7e57de7592bb2f662469618079afcf71  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc
! d4fbfd97a88879fd58b6b219c0b4fdee  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/equal.cc
! 4adacf376adea1aa0239321ecfe61c7d  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/inequal.cc
! 264f017cf6a7fd39171d752f89e75008  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/serialize.cc
! e4912a35f4dfbfdcacc3e02daef632bf  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc
! bd7768ddaf466c5575af81be714ab52a  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/typedefs.cc
! 29794cf50de761667351cffb7b9fee3b  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc
! 7a204bcd01e6feaba9c13543f5df8ff8  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/parms.cc
! d40f287be0c9855a0a1e7f12478ea567  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/equal.cc
! 8f6f50fdfbceaa5ee06e323eca9960cb  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/inequal.cc
! 2fe403dd992b9cdaa8449456ec12c4df  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/serialize.cc
! dd4ca201520edc50ac1da8ea63c9fa3b  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc
! e5f8c38d09869af614fc218a78a4a865  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/typedefs.cc
! 5ea442d73cdba88361cb136688bd696f  libstdc++-v3/testsuite/26_numerics/reduce/1.cc
! 360bbad4873fabe0f43b42bd8a990e5c  libstdc++-v3/testsuite/26_numerics/reduce/2.cc
  51f14806bbec80c2d5883800a91dfc2e  libstdc++-v3/testsuite/26_numerics/reduce/95833.cc
! 4080bb04fa19dafb42d8c2ef706b184d  libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc
! 6bb58f9b93a31777eaa590f067c50cc1  libstdc++-v3/testsuite/26_numerics/saturation/add.cc
! 5be1ca6a5d00473905a4f368a38b7f1d  libstdc++-v3/testsuite/26_numerics/saturation/cast.cc
! 64f614494e0dd24586ed97ac2ae00b92  libstdc++-v3/testsuite/26_numerics/saturation/div.cc
! 776511df4abf99defad25c6424876f05  libstdc++-v3/testsuite/26_numerics/saturation/mul.cc
! 952a33bca1e57c78c0a4003723e8399a  libstdc++-v3/testsuite/26_numerics/saturation/sub.cc
! f9e438a747cc86dc8b59ed2ec2243bc8  libstdc++-v3/testsuite/26_numerics/saturation/version.cc
! ac2c2e993d2f52b33ebc1bca88500eeb  libstdc++-v3/testsuite/26_numerics/slice/1.cc
! 610f0a03b2dbb1d9a1abcbed8291795a  libstdc++-v3/testsuite/26_numerics/slice/compare.cc
! 06d08fc72dca5267716b538e28d586c0  libstdc++-v3/testsuite/26_numerics/slice_array/array_assignment.cc
! 74ae82fe433da6ef83fb71cae20c5cf0  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/explicit_instantiation.cc
! 61f053ddfa648c8008f186f556bbfccd  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/typedefs.cc
! 3f792c54287a955c10b0ce10e9b13a40  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/1.cc
! 02dc1b1b9ab240870cc09a96dae03422  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc
! e2ef1b16c022e7d6a5c3f0c482cbbcc5  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/1.cc
! a4983c1fe66b47635da49492c67f4581  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc
! ed0baa85e5c7d497c342bf1d12e9c7a1  libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc
! 9c17b09b571ceae8433226957a63cfbb  libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc
  525e5798867d708e7cc13551760f93c8  libstdc++-v3/testsuite/26_numerics/valarray/103022.cc
! 93d19541c8f75be4fc688456295c73b3  libstdc++-v3/testsuite/26_numerics/valarray/27867.cc
! ee1f1dc2b4a72901badb224e8a810a85  libstdc++-v3/testsuite/26_numerics/valarray/28277.cc
! 5088337565ded1c1bd192cc165448049  libstdc++-v3/testsuite/26_numerics/valarray/30416.cc
! c65350fc7f7dadd231d9f0026f22ea77  libstdc++-v3/testsuite/26_numerics/valarray/33084.cc
! d1e448f099ce379c6c8a162abb25c199  libstdc++-v3/testsuite/26_numerics/valarray/40691.cc
! 16f56370ce0fa1a6ff1134022355e0d4  libstdc++-v3/testsuite/26_numerics/valarray/69116.cc
! 662adf7261c27fbcaafb3b9eb5bf3e5f  libstdc++-v3/testsuite/26_numerics/valarray/83860.cc
! 9128a985c36900ceb8215e20a507ab89  libstdc++-v3/testsuite/26_numerics/valarray/87641.cc
! adaef97378f37cae015238d72438a57a  libstdc++-v3/testsuite/26_numerics/valarray/95592.cc
! 660f003ff214d812c5b64389a98e24fa  libstdc++-v3/testsuite/26_numerics/valarray/99117.cc
! 87c1db27b2d982abd69d5bdb1d3cff2b  libstdc++-v3/testsuite/26_numerics/valarray/algo.cc
  3e191d68e11822f58de5e4bd15365ca5  libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
! 22e7cd2532f731e5c4450dba4d4e3e93  libstdc++-v3/testsuite/26_numerics/valarray/const_bracket.cc
! 1c3e3d94194bf3a499f09b36fa2136f2  libstdc++-v3/testsuite/26_numerics/valarray/deduction.cc
! c65d442158d6d207d4922e75035cc57f  libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc
! 37331b5a59cb9dca9c24f4c62bb90e3b  libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc
! 3f76d7dab34cd393e37de7f26c4b07d1  libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc
! 1f1f52aa41047ffaa5ec076de3a31c6e  libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc
! 70ecd8b29668572600a4149eb6e34a6c  libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc
  92989179308d98e75a76c225b10da0be  libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc
  989404228c79ae94725c36342fe840d7  libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc
  03eb7e42a8c3f54875026dd4540970b1  libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc
*************** d7d40b53cc9eccab2f4add4a3767074a  libstd
*** 120136,122021 ****
  69530b581e1f96f9614208c43d0c9854  libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc
  3f797cc15e7e8d36add18ade39f64ccd  libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc
  0750f0a7a2c692d4ce110fab2faa8583  libstdc++-v3/testsuite/26_numerics/valarray/mask.cc
! d41fb005fc16e6ec8b191c3652a872d7  libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc
! edc93b263fd9f9882ade2441d86eb426  libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc
! e1da3667580fcba4875307f5730dafef  libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc
! 2bf26a9dea0bdc7a758ec34656aa2085  libstdc++-v3/testsuite/26_numerics/valarray/operators.cc
! 48a34ede6c78e22c0f75b2997bfca483  libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc
! d6fff2d97cbc427620be0cc23956dd89  libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc
! 5aa5610fbc312b565cca7ce949359de0  libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc
! 8f0eeb4634d2903755c3706703579c3e  libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc
! b2a64c22302a3e71437c9333e97a5936  libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc
! 687fc725b5a2aa3a263b60a4706c8cb8  libstdc++-v3/testsuite/26_numerics/valarray/swap.cc
! d37a22e7ef1ae2a0941fe127d175aaf4  libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc
! 8c906a179c531a8dff1509504acb96b8  libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc
! 7b819a6f641a0e40d952e2e0860fc2a2  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc
! 32ec6350d273b1218d8b2be34e067955  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc
! 36b3c199e8014ac968b8800bcae6d571  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc
! d23de6b9ad81891d6be78438eab6b050  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-3.cc
! 2866b3618f9b9df80d636d866fe04df1  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-4.cc
! a965feb25cf5361c34a06d5f3e4ba085  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc
! bb29349fd02f077ca63b0fb89d833ddf  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc
! bafd040e2b3dfb317e228ee4c5dcc62e  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc
! 553b91f7b25aaf8ffd651298f06a03e3  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc
! b384e9f0fcad6560d4e9d4e8096591e6  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc
! f1e718516ca664daf3bfe6892065d6b5  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc
! a41e5638baef4771ac2fdfa1ca5a3b50  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc
! db8c6499e6cbbffa7781996a7d078c3e  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc
! 5f72b88dd80617bc02552f9802b5a428  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc
! ce41a3a4e644388720bfa033a2bf4ea2  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc
! 1ba7bb454bfd5644de72bb8967787885  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc
! 97828589991fb38999d75bfd62d19dd8  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc
! 5b737a49fd2761108fbe364b78a9c3b6  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/1.cc
! e2a94f0ec8ea104190fb896b05e9f339  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc
! 7f9320af888a37853cc3c2f03cdd1530  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc
! 24e9bce98ddd44c0fa9fd593db42e8cb  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/10132-1.cc
! e28e36625b9a6754041a0f980713c764  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/12206.cc
! 7dd5a44bfee2e34f2b23b01c6b98122b  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/1.cc
! 33a38ae337cb1813bfacd9ed21c0ff7e  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13007.cc
! 08632567b6cde83424e3556bf7ba6690  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc
! e37aa9d3a39e008e6850027c6d3f9320  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc
! 03a9abe2446fbaa4ca976762611032ce  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc
! 2472967059f53705a691b55678dc4b34  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc
! 51c572c390ca70e98d2344b1a91b87d5  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc
! bf8e935e012188bbe4a6f675f715287a  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/2.cc
! 0d04cd1536b9e701ef034094c3c5a0f6  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/3.cc
! 3cf738a4b1079d8846598ff3e974a0d9  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/9322.cc
! 176aef31213fde715f80b93abab379cd  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/1.cc
! 6cc1d6582f680aede9c87de5f97bf375  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc
! fed4e6e829bd231673d6fd6e83f102a5  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc
! c37e8350f8935f5ad710f5a4a016bfc3  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc
! 5b5167c3b7dba6bc5ae3307ea18845e4  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc
! 58159d759e86ec0469a80e6fd0fbd9d9  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc
! af91fc4d21cdcc0ff991da73b036891c  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc
! 39e271e210aa546d6e23b140948d3096  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc
! 5923580aa035d49d9048546aaa585bcb  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc
! aa6a864d5aee69781f69d24a01b75a11  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc
! 6ee1c245e94b004a106cb3857c22e118  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc
! 8e0125a2295e158e82a7b9d5187ee297  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc
! 8f4a9b8410d5fd1c7af3325a4a8ce9a9  libstdc++-v3/testsuite/27_io/basic_filebuf/is_open/char/1.cc
! 033b2b3115d6e9c627ac2ff46aa20192  libstdc++-v3/testsuite/27_io/basic_filebuf/open/12790-1.cc
! 8e2cf79c2b82b04ea41dec46d18ef9f1  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc
! 1685545f3046e4370e67e2885f9f64b1  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc
! 4ebcede3ed4612d12afb07a430223342  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/3.cc
! b999613e396ff2292fe71366782484a2  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
! ad4bc4081b0b33794bfc6b7d2ae0a338  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/5.cc
! 413b334b5bd2407dc09373779fcde193  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/9507.cc
! 13d24c173672fa2b5db0a07c58a00fe6  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/path.cc
! 86b46656f7d9cda97ecae35269ffabfe  libstdc++-v3/testsuite/27_io/basic_filebuf/open/wchar_t/1.cc
! 0cc1bb7c99008bb6dcac3a8a753f0cb3  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/1.cc
! db33017bfe1a47ad6fbaa03f0550061b  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/13858.cc
! c45a48b893adefacf1cfe50b468cf17a  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2-unbuf.cc
! b3a4acd919b8ea44035f11ad05e7a586  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2.cc
! c8ae9dde77a884d774a2a57b5284c7e1  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/3599.cc
! db797a6314ff483a422d74fd48d24753  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9169.cc
! 9f1b5d37b71832d5b153e13447183126  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc
! 3951fb07bb3e7a34c49d6e4074b8ad9f  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9988.cc
! d8eac9c74e3d06a652b62f1a29eb5ca2  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1.cc
! 20dec37395b19fd717b429f0e9678a3d  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2.cc
! 532231c471e9dc846a47afc2b1df5bea  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3.cc
! cbe9533060d422ed17023b64219c008e  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4.cc
! 3fc40d7d07a5559755f401a2420d377c  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc
! 3f68c481ebc624e9b24f4c5f5dd82b69  libstdc++-v3/testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc
! d4e6efc6f0a75b831e0aea8adb4d743c  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc
! b324aed7d24e3bea084cc88277b8cb86  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc
! 74ed20d0c8b54a4ab605ec2101daca13  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc
! 1ba01c57714e2f812c8f144c0a1d8acf  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc
! 28e00b594ba01e48d7588c5748960d36  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc
! 107845bb896aa96640c18935406a26ea  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc
! 4c18c036abf629d78538b28fc06b7f6f  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc
! 1d29d568fde12a6cd8aeca4aa3e9959e  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc
! a3665ea2bb1dc7e33e24bb207f1d1de5  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc
! e9077c3a06faa22b1e09094e7b934585  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/9825.cc
! 2de5a57ca0500180f678993a30c4912e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/10132-2.cc
! db3d913f3c9bbefb984c6d30baf8d19b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-1.cc
! 4864e6181fd3ff016e86efa33c2f12e1  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-2.cc
! 5463a81e00b2df60a862a18176c001b6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-3.cc
! fda6b922975055a1dea548a1e28f6da0  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-4.cc
! 60792bb745d67fdc6160ba1ea2912ead  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/45628-2.cc
! 06253b712c08d6d85a5a157f7ba32691  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc
! 2c7a3c3f23cf8ae3679427f697629980  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
! e15c96fc857b4cb7bae753f0438961a6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc
! f9d41405cf21f3fc5bb3f60b05faccc6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/11543.cc
! ee46efb68c7fc087218f2550c2efc38f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12232.cc
! 833725f9f0ebe9b716d6efb82792a52d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc
! 81d0ff274e0aeb14030b2c443298b897  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc
! bb8dbcf5bcca9a0403e4fc3ddd373232  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc
! 80c16b2dc2fe8a601447a96900f6d8dd  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc
! 7433b6f0af8ebaa4cc5edc145d421355  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc
! 5b25dd5ded1ae32259d5bf153c275086  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
! 857e7d18fb3b31438ee40352ab777cf7  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc
! 45d358f1822436527feec43ef94a7f29  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc
! 1525d22ca88ae4dfb66e674fbe23781d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc
! 718600f635013c7a9862a02bc3957149  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc
! 17136c6bfd8b9a3727942f561041f955  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-out.cc
! f1b320cf7be5ecc67aff11b6bff8fa4e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/4.cc
! 605a85e680b21a9787d06335edb5a153  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc
! 27a53a11d712cf3b3d3ab6290c936a01  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc
! e4a3556c5a5c4156294ba3fd7f833ddf  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc
! 9b66a6e3ae9fdcf2e79d608d73b90a55  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc
! d42458f1803265ca86130811590716c1  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc
! 48ff75bbcea054000a7bac2d9b80b055  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc
! 03953888d3e3c2979ee68a7d85431e41  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc
! 4b6f6b245810f5936158a08a29590113  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc
! 71bdfc199f411a71bf0370ee411302a5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc
! c4ea8533af6c1418b61f92922b3b7a3f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc
! e4d891482564d22691b040e644d4f7d4  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
! 1d76c4c6ebc98aac7c073f3da052febe  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/10132-3.cc
! 763e3a36c5405f5c11920ec508ac4dd3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-1.cc
! 8338a622f15396806f303b90b369ced4  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-2.cc
! e3ef6901551d09346aa9b00c443a08d5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-3.cc
! 55b276b0b8120f072e8da687ebc469cb  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc
! c745ae2280621a6e948b25729436db85  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc
! ee2f9ba15eb1ee26472ee4ab03f5a90d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc
! f9b7cd0a0f93e38806e30fb0ad1d9a60  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc
! b3bd36bb05e7c9e90960b8629e52c600  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc
! 0264a1c67628c6c4ef0b2513cb3b03ac  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-3.cc
! a655841711aa97022963954e9043c70b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc
! 4770e666eb2b0854e9a0c9062edc1a10  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc
! 6f0852911baa819b264517971de62662  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc
! 68b27eb85ce22c3948a0d38e6b97c494  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc
! 0c79ccc0ffeac7bbc11f26a4f9cddea2  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc
! bed61f2254d30ef52032a298e3cf9145  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc
! d0ea5ba8fad0aa5424ae943e6a5c3c7b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-out.cc
! 4b24e89b9e7b641c47fc0fbf32473a39  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc
! f1b6b8b1ebbbe639bebcbb157e2fe5e0  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc
! fb70eadce900fee5d96c71aa11ff6573  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc
! 5c783a0835b7c34c37f0a155b081e288  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc
! cd5b60f8b48d89d549aacd514caa8cea  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc
! 2eea22d0706227454d86a4a1c1a140a0  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc
! 1150a8842b433d84fd4641e2d0080a49  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc
! 0a9a5fa64881c094fe73acf0d8aebe93  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/1.cc
! 6286c977c1139730fa0929e99c481882  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc
! 8dfeb3d31af0fe178c0fa6a53315badd  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc
! d7b769b690669c8530de964168edef97  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/2.cc
! 2e6f7fcec809af36b25d746f0b331518  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/3.cc
! c3febcdcb2a4715966072dcc4a78d797  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc
! 81abfbbdad9c90a707df579a5aee44da  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc
! 730d75b5efe6361f2e27fc2a982245bc  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc
! 9467911874a0e32d8e5fdeb5e4cc0022  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc
! 90b9f2f3e39ef8671a67a488e09601f5  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc
! 146cd490c18b08bfe431896f80f22176  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc
! 97fe5e7fd83633841ca74fa33c98295d  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc
! 907c67d55e54206148a542e1cc822b8a  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc
! 21eee7d80883b8f4c2d11fae24b4f111  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc
! 4a23785693db25229b8e690ce49ce377  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc
! faaf362e473ef3ce77f8cb0ace6c7b47  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc
! f040ea6d7f37b82b3dfc48a125fe790a  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc
! 713f00ee39c9bafdb24b2a43886334eb  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/3.cc
! bbb22ee222e6b6793d4d806c0b51d549  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/81395.cc
! 69d735c7db2423015dec449991359561  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc
! 35eeac62d422832fa0302b014830e50f  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc
! 166dc78d890d52017718a3fe72dc58f0  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc
! 87af0d6b18d1cba230abd90daa77f7f0  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc
! cdc16b7ea8ef91a744592b66abb61a98  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc
! 3a0e8ff11ea05c15cb1a9f7a1416dd7a  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc
! afe9f503eafd7dbc27db86f8522966f5  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc
! 29fdbd7483c5b7480ee3f81ad6971aa5  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-out.cc
! 11cb7387ad6f95c677fcbb5bcdea3bf2  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc
! 4a5c1449f80ad83a7707a0638a6a27d7  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc
! 4b9acf65ff856ce288a1c02f6e31ce6d  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc
! 1e97c6a8dd71f3f4182a511046abbd20  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc
! bdbef8c75276ddd624695aff1ac019d4  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc
! 233cef22d736d2a55a05a06847837e5c  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc
! 287a5bd965331097946bfcab35bac2de  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/9425.cc
! 9c9ffe6d4428a7f1698cce1020606133  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc
! 17748e758c38a114aa54b591ae29f721  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-io.cc
! 398cbc0f49342eb68f49948f815d3ce4  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-out.cc
! cb95e8233e289fcd7d8d61cedcf59477  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1057.cc
! 5d08848639571c2059c42622b3ca01bc  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc
! 941b3f02ffa484e97a34277986b99f32  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc
! 0c188d63741860b1df78508bc605970b  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-out.cc
! a531fdbd6d1924d5f5198212e1c95ff4  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/59427.cc
! 5cf2d21b9c21ec42902b20af9152439c  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/9701-2.cc
! b238dbc49db963d37c7ad404c8c06699  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc
! f83a2568e76c4596934fa64cc330a1d9  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc
! 1ef1ce34a2e1f0c6559411f8e94cf0a6  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-out.cc
! 5daa6b6886c44a3d2b11b7ec92c84429  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1057.cc
! 904adad5eff4854d2e1a5cf0fee41384  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc
! 85c32c219b2a21a0455b2e512685dbcb  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-io.cc
! 1ae3be90c07414ce4f649121a26063f7  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-out.cc
! a4eecf7d3c3d5c2cc84bcac2d6998eec  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/59427.cc
  73d4eb67443415996209b1af2dbebbc1  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/63746.cc
! 4494d1dc75a10054d7751e2cb3fced44  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9339.cc
! 0c53cabcc6fede9f96535e88fffa6067  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9701-1.cc
! 8973daa1d4fc364f3d0fc2e1f74b7345  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc
! 4ac960d1a40c8c8176cd4b60c6cdf473  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc
! 01acdf42475790d6a9ba5361d2ce5f8a  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc
! 9e8b2fbea333f591ca58de36c6b932af  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc
! c73fb82c72ef98a9adc443acc7d86325  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc
! 3afa8a3ecf29ef5d4568e669379a3c23  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc
! 982cf91b5c325247d70eef098f68d30b  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/1057.cc
! f35224a97a96b22c950051f6c0bb39dc  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/9182-1.cc
! f52a91b762a8573bfcba88d78ee06296  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/10096.cc
! 65421bdea8aea164840fa968447c1fbb  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc
! 170325c679e09cfc4cb0c8d9d9dfb769  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
! e32b19baa8d7e82411fc8bdb02a6321c  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/2.cc
! b5ea0cce51f46559467c2f08cbc84bf9  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/3.cc
! 0c105df0c517cfa5f8d3070a6348303a  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/45841.cc
! 297dd2e7904435e7f896c81c7364d689  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/9027.cc
! c4870c4ed4ce73e626a5d387bb9f08ad  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc
! e9498dbb9a604e7c8a62acb65b137c39  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-1.cc
! e9d0d91b2f0b26088b902aada424d1f8  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-2.cc
! 6906f1ac7e44722fc271c12d480e654b  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-3.cc
! 0a6540e804f617959880717cd799be62  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc
! e97a20354fe10a65949253962c17a719  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc
! e0ddf7ccf1d3eff209e8883a23c9d954  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc
! 6f664b0e2b325f6e6b253a8b16140cd9  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
! 629d68f224691bf30387c64efc04ca6a  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc
! b0cfc43370806c98f424fbdd3aab4f82  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc
! 3fd28f2c467e1c3ae7a0be5970637c8a  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc
! 5cee96ebc6c8bbf21244df3351f0aa6d  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/45841.cc
! 5a88d7e4ecf3c3ff0926cd03b4af38e7  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc
! 4ba19fcb1531ec00cf507eab763f1061  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc
! 0ec8ad9010f6d9483365e48368d5e18c  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc
! a4aadb616cb9fd540b5b502518f72352  libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc
! f664281906bcfb4031b53f1aed918ee7  libstdc++-v3/testsuite/27_io/basic_fstream/assign/1.cc
! b37bf537ad6ce2c231a0126ec588ce24  libstdc++-v3/testsuite/27_io/basic_fstream/cons/1.cc
! 70f83f768e34cbb55d9ca72c41b9c7fa  libstdc++-v3/testsuite/27_io/basic_fstream/cons/base.cc
! 3a38b1d5c71bd1dc6aa8b0c4d4beec2a  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/1.cc
! 184299fc5591f5c424382d6dcb6bf828  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/path.cc
! 89c5f68be55b589c41a71b8f7068e8df  libstdc++-v3/testsuite/27_io/basic_fstream/cons/move.cc
! 91bed6a6f2aa8ae4cefd84ba4825c6a8  libstdc++-v3/testsuite/27_io/basic_fstream/cons/wchar_t/1.cc
! ba951fdbaa51416578d2dc0a70ea5ae6  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/1.cc
! 94c2bb04973cad3299ca723d6bbdb2e2  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/path.cc
! 19f8dc35db78d13a0480b5d1013137ee  libstdc++-v3/testsuite/27_io/basic_fstream/open/wchar_t/1.cc
! 3466f5f5149abd1cb308e9915e6e190e  libstdc++-v3/testsuite/27_io/basic_fstream/rdbuf/char/2832.cc
! 34fce277cf5221f00e69b7d6bae6aab5  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc
! 36a7f064ff255b10d98328af3edd4358  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc
! 116fc75b6ea5fb9ca8a058134f87c44d  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc
! 1b9e8e0398f91af16439d8c4c18129c2  libstdc++-v3/testsuite/27_io/basic_ifstream/assign/1.cc
! b8f34a4347fd9707dcc0d22c86a1b46f  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc
! a23365a8f66d0d737b226714934540d3  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc
! 95d091e7d11c5b91fa8b3fe1ec9fa217  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/2.cc
! aa0b906fbad9fc68b8e1c990076c56cc  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/path.cc
! b25bf460ab53c330da81431739866977  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/move.cc
! 41edeb9a5c4eff6793f2b55b5dbc5ff6  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc
! f7547db6aeb0096a332e98445de0101e  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
! 3a934e2f45e715197efa0c5cc9c57fa6  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/2.cc
! b64f81724794eee3f2d28338813402fa  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/path.cc
! 45709f3f75219ffbf8d1daf5292e62cb  libstdc++-v3/testsuite/27_io/basic_ifstream/open/wchar_t/1.cc
! b8d16d79441f93c90119d3160bc618e3  libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc
! 62df1b70c14814ac3a62a656b2ad3421  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc
! b2cceb7b8ce67f54f6677a0607c3bd4a  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc
! 6cbc52fb92dac507f10737612e1abb08  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc
! e3f5226d1911323ce2ea5b9343c7e22f  libstdc++-v3/testsuite/27_io/basic_ios/clear/char/1.cc
! d88625aa94e2133558a4252a29a9fdde  libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc
! 2af35b82d5606f4ab961a1ef0d9d7807  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/1.cc
! 6fdcb8d03c1f87dd928347c69c01c035  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/2.cc
! b12e7e0fbabeb99159a0c5547975d1dc  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/3.cc
! 6203a5962a57139415f443d3261bbef0  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool.cc
! ca9758899b750aaa7bce82673e4204b5  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool_neg.cc
! 71c1653e6708c8317f03b3bd9c434b47  libstdc++-v3/testsuite/27_io/basic_ios/conv/voidptr.cc
! 0d33c8b2fa3630359d707cf9e3b7ca4e  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc
! c8268b714451c3648ac6b9de63ea155e  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/2.cc
! 7c9bf8176216e77aaa63d7c2eff3b2c4  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc
! 574484ab45e99464ec19ad45063a5fa6  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/2.cc
! e69b956a0c68f2c2327cbfd6c9b57563  libstdc++-v3/testsuite/27_io/basic_ios/imbue/14072.cc
! 0e52998a4f54982a4c64b0b42a902d81  libstdc++-v3/testsuite/27_io/basic_ios/locales/char/1.cc
! 1f9897c432dd90d8eea3ef3ac58cd408  libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc
! b5074a5a119f46a7103db727be111b26  libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc
! 21ed5af809e3273d417f38fc80d7a3f4  libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc
! c30dc4ecd7579c1a5d953613dd1db0b5  libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc
! 8d9d42cff86bd9922ddd6c45ed27ed70  libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc
! aac5ce923354761d075f3c44e7c26bd3  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc
! 918fbad80a79c275979b0f0a90b2728d  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc
! d08919c16355f8cfb161daf8fcc8dce9  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc
! 2626898a02fcb4c956b3a49111bfc798  libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc
! 322b93fb434a4d94673c6e8577047ed6  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/char/9561.cc
! 6ccbd9d130e1ab93f2d896561ca20037  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/wchar_t/9561.cc
! 8ffaf295e5cd82edee1113b368eb5cf1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc
! a5c6f1f79b96d1ec901d98db8206c562  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc
! 992bce1b723c79cf144eeec1d6df6c78  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc
! 3c4867cdba8f9c0b72a0a1a31e9d706e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc
! 72f2f1f2cbc8edb9378b331e1fc58523  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc
! c565f9517b2740062174b9a49050c2b9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc
! 046f9926448b8decc72e95fcabb1bf88  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc
! d4eb686a6863495ef8fd9f64b866f8dd  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc
! 2c040aa24c8e12fc6edf107288215a55  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc
! 22706702bc8d258c200edaf4576e3da6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc
! cd20f37dbebf31fcf085c46f1073be7b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc
! 393ab4eefba5563bea6e9ae0c0ce9dfb  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/9555-ia.cc
! 1b1e42c1a044de35205bd0957e9f8e7b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc
! 4e08384dfdead0687553b15f8c525373  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_badbit_throw.cc
! 0805bc4f0ba2a3cc0423b2ab95b25aef  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc
! 8ed1893f2add28cae6b40c9b06a26e94  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit_throw.cc
! e5ac428dc8f5c7a5ad19f0424315f764  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/pod/3983-1.cc
! e10d3e223cd3192864eec621e2b44855  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc
! 7e9d795aeddf6a1c4b9c05f6ce41f8b9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/02.cc
! 8a3dd1a3ac1ff39fd18d6f44602cdb36  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/03.cc
! 59343a001b2aa57dd3aa5b61cefebf84  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/06.cc
! 97ed09a8bcf5966d1b82458b11ae4470  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/07.cc
! 8d7ccd7ca12eaf47d131cd0deba9a036  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/08.cc
! e1d81bd3f8d4b9aa3cc2a2aba7646766  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc
! fb63c77fbb988e6027c62c454f2e0c3e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc
! e1fd727230c24e9d87e87e1b89a3e713  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/11.cc
! 387c5fb2ed1169849d5a8f130ddaf4a5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc
! 502dc71ad873d890ee73396e50a6815c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc
! ceb25bb9571be946f8ac3c1be23ab347  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/9555-ia.cc
! a099d6d43be3ec67af59015b765a6c1c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc
! c0a9d1159e1d34f626fc436a236cd07d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 6451deddf0989f792953abeec7546e76  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc
! d72b61e064b50928efa982ef8f30341a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit_throw.cc
! 2efea36ba116786dd78f58f8feee0fe7  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/1.cc
! a981303d0096b6e1dff7e04064eb7004  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/11095-i.cc
! 72a5a1b165124bb5370be66c3ce9ba6d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/2.cc
! b3aaa7909f5468900f0f7c68139d493f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/3.cc
! eac396a0ff2575bffa662b403f13fe8d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/4.cc
! b63a564fd2fa7393eb572b0f0d8fc53d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/5.cc
! 681e1449326ad522561c492014ba6ad5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc
! 247ba04becc9dc1faf701c9b8edc4713  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9826.cc
! d9c9847fa563df6ad7c35802ac201664  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
! 673563679c3a06ebf94e56f744f09f2b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
! e9b8dfd566f79cb2b2e24454309ccb98  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/overflow.cc
  4f3d3110437af7e4f5208a2434cf525b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc
! 74311d05dd5711bd6796e70017ead2b0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/pod/3983-2.cc
! d8158abeb0d618a957cb4c7ecdf44c25  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/1.cc
! bb02e5d74df5a8781a0e67c0646a9983  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/11095-i.cc
! 28c01584464bb0a854283825110b02cd  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/2.cc
! d5dcc51280d2647a7d90167de1223507  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc
! 6f86f6b011eea017ed9bb59d42cddf50  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc
! ce44b449d2cec49df16926229fbefca9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc
! d6dd9874218ccab40be19a7bb6a5400e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc
! b05f89a92d1a0f438b39375992d924cb  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
! 022a41b6a11b009d10d1d8a0ef5b0842  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
! f8635a0eb17fcf423383f37e9a3cf079  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc
  b4f815b9c39f208740f02123c6525269  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc
! 3f8dd0bbc0176c9c40e76a16f065c23f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc
! d0bfbc2f7c3154a8bd53eda859341ecd  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/2.cc
! f866945f11d9f7c70f610e54254bbf30  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/26181.cc
! 2949ef7dbeb1ea157a9f66033ac7c887  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/3.cc
! 33c62b12ec82e41f67d53a249d25b6a4  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/4.cc
! e17129001a53d6226b00e23c3b26635c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc
! f2a3ed6c547cc20551298ec8887e2d20  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9424-in.cc
! 6e15dd4bdafde0a31cbb737773f088af  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9555-io.cc
! 3aa34d0059d8786a0d7f1e6b61bc0a08  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/error_failbit.cc
! c105a885cf0bdde9b95228c20d95dff2  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_badbit_throw.cc
! 79402c503ae3475cfde41964f29bc50a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_failbit_throw.cc
! c4a621925686e1bdb2c19cd2f9eaa84e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc
! 860227f714c3964b028aa6aabfd95376  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/pod/3983-3.cc
! 7e8c233d9ab18b43ac4c89a2a0c1dbeb  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/1.cc
! 8b95f97476c985ed835a1525896950f4  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc
! 52bf2817d1470b2b838b14db304c3f1d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/26181.cc
! 8ae1bb5da7e54b30d247d96cce0cf365  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/3.cc
! 23afbedca44ef3d040bab03c02fc60e4  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc
! 7ec9dd50ad3036de841aa5400415dddc  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9318-in.cc
! 3f6fc368a5af5099ea3453ba24cfcf87  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9424-in.cc
! 4c45e8b8d6aaa4ff7ed1a8f3f16af07a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9555-io.cc
! 4ab83d16b1de4530fdf4417afc537108  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/error_failbit.cc
! fa56afe1497e2247027e09c40055edbe  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_badbit_throw.cc
! 43d2dc729ba73d947fb80e2c4cf0d164  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_failbit_throw.cc
! eab32ca45385d9d822f0fda237290a27  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc
! e43c27934998c966e42f0c83419666e6  libstdc++-v3/testsuite/27_io/basic_istream/get/char/1.cc
! 146baf9c2376ff72bd297498c73b7343  libstdc++-v3/testsuite/27_io/basic_istream/get/char/2.cc
! d3e93dac38b82c15e84acb799a7a2950  libstdc++-v3/testsuite/27_io/basic_istream/get/char/3.cc
! abdf393ac167285356c12e7336be4c22  libstdc++-v3/testsuite/27_io/basic_istream/get/char/lwg3464.cc
! 92badcdca833f9fa9e1d9c90a668854b  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/1.cc
! 544908cba6709f8077dffdb469f31123  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/2.cc
! dda228ef89041578a7d986b031acb948  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/3.cc
! fcf24c49e720dcb1b43212ef93f37f6b  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc
! 8fb3999c04d9bc76b22904b3c7c18048  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/1.cc
! 060807e84c795285df50295a5a0d4476  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/2.cc
! 97c8fcb1769429b1edcf9c22556050a2  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/3.cc
! da5ab9ede693c161197a19fcad381e85  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/4.cc
! 7c4338a1e7a5c3862d466479d93bd566  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/5.cc
! ee529075ef12c74098b45d0b72e18042  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/6.cc
! 0a56d331240d862debec08372376d8d0  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/1.cc
! e2a4c70cae1c25b8b42bc6402d8b9243  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/2.cc
! ac27193b277ac72f4cbd65ed3588acf8  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/3.cc
! 8549f89a25af56b7ff2146756d67214d  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/4.cc
! 2cf07456279b13aacb1b183e86955cfe  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/5.cc
! 60063b31d506079a1f7631e90f3c9dc3  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/6.cc
! 143c2415b13b61133cf90b1127030d53  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/1.cc
! 3314ea0cb8d77d792130193a005a2121  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/2.cc
! db213265eb248764b3ce5a4e64aa2b1c  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/3.cc
! 105237436138c55ef1eae35666f14ca7  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/6360.cc
! 07da7e62d328b1734dd526a45400c1b1  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/7220.cc
! c43802050eadf25b4e20d68807976b89  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/94749.cc
! 8f8dd2c48a52ac9a475b6ae904554425  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/96161.cc
! 8ff345f4f5c717eff0915f85a585dcbb  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/1.cc
! bec1927c27f3426873b0a0d76e721250  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/2.cc
! 2388b499666e48fba40ef4f6b133ba2c  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/3.cc
! ab8cc8657b41218bd6fd9a45809155e5  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/6360.cc
! 36efa2f194a4a53944dc9a163ca577ce  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/7220.cc
! ed3a44eae1c9f0b249f3527ca6c964db  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc
! 0229b8e24818b3039eed912f7328b314  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc
! 5b7c578eb4cf4345ed5b6f83c20cd2dc  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/1.cc
! a06889e55f382ee90ab9396e586497e6  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/12296.cc
! ac851d1e1481fb72970505f25bcca2dc  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/6414.cc
! 7f3fd68726a49cd6cd4c699a3eed56af  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/1.cc
! 488d621d7f86faf995d743be51b45b6a  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/12296.cc
! fadef7dd354c96b9b8681063bbafc889  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/6414.cc
! b2b21a958bab2a13f4792c46895a7e49  libstdc++-v3/testsuite/27_io/basic_istream/putback/char/1.cc
! 357adc6c1a5ebaa865fea62da23ea24d  libstdc++-v3/testsuite/27_io/basic_istream/putback/wchar_t/1.cc
! 73dc3a02c8c75db581b9ccf79ea4d8e0  libstdc++-v3/testsuite/27_io/basic_istream/read/char/1.cc
! e152203494f6ef679e105ac660ae3422  libstdc++-v3/testsuite/27_io/basic_istream/read/char/2.cc
! d98f9a76b0651cff357110492be61a55  libstdc++-v3/testsuite/27_io/basic_istream/read/char/3.cc
! 33227fcebae5297425b422ff5ddb27c0  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/1.cc
! 555ca7561cbf703e3decf25595bd7ee5  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/2.cc
! a88e7baf2fa31b11086a3b0a71fd170e  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/3.cc
! 9309754edc65887e089d1863668055f4  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-1.cc
! 75afe06400cb0a8217b023b51765d01f  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc
! 80feb7ca54ba118fe53a6fff6f4a4592  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/8258.cc
! 4d469d0188682876509f039d7f98b5da  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-1.cc
! 37d804997e0db99b694b1c3fe16af6f9  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc
! 5338f9d7beb6fa07da1c43603d7d342e  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/8258.cc
! d42eabee0ed2d3c223ffd796810113a3  libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc
! 26572b08e81d566f11550083c145c734  libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc
! 4507be84a4cce0a331f38b88715968a9  libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc
! cd8a15ad2d548074fa4917b92f71a62a  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/2.cc
! dccc355241883053c3f10fb5c6b0ea4f  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/26211.cc
! 7a19d21ba39eedf8a623a9b0beda6b03  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-1.cc
! 19026e309bda9a09165f7d326a3ba46c  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-2.cc
! 83a66c857ac1032e055a33b7d2a29094  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc
! 7661d35f47941064d17ffbfa4a8fcc86  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/fstream.cc
! 39847628b5a0e7a50b7d3db0cfe742ce  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc
! d2f4ab0771e6e7114f670c34529bace5  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/2.cc
! 006e711c505a137bb1c86bf0c75f6da3  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc
! 17203c69a53d2a744ba7dc31c33814e4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-1.cc
! 47e087f09f447d5c7abe8f3eee528ea0  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-2.cc
! 9d5832dce771a6e69f90a61d7d443337  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/exceptions_badbit_throw.cc
! 4217ce4c24125dda552c8d5bd24356de  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc
! 2361875e0ce5fb24d34b83fe5c112466  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc
! e891885328c8fd63161aced9b0b4f6a3  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/1.cc
! dd8b2ab2cd20ec3a9413affe7f6c9585  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc
! b0f79008f689c4ca33858e0979935c52  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/2.cc
! 1875b70c51ddcc9aa03c0ccdd439d54b  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/3.cc
! 44e962a9a8e023d78b6620519c7ca40f  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/53984.cc
! 607a5f7e106ab25bb91f13ea13182f4f  libstdc++-v3/testsuite/27_io/basic_istream/sentry/pod/1.cc
! b42ac9c27403c2a1d7267b5c328eba29  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/1.cc
! bc7ed71274a55cefeeaded5f3482527f  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc
! 6cad96647c07fddee4f8e02a4d17119a  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/2.cc
! f8e76c9fda67f9acc36501946b2cdf8b  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/3.cc
! 43800be1da9fe68070e4bc963712fe7c  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc
! 3ef61bc9d6295f74b2c8e96af081144f  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/2.cc
! 9422a79205207708336f91ecd6a49180  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/26211.cc
! c41e62d172ddb57d54c2ac65dbac44a1  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/8348.cc
! 3a33b6ef590422f8e567036f1143aa60  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/exceptions_badbit_throw.cc
! b05cee5d683efc04925817adaa15bb76  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/fstream.cc
! e80a36c46270e075b899c94a70011091  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc
! d21c70076a3e9dd61408eed30221c3b6  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc
! 3b641d807e36e5e2d344f20d5b48c880  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/2.cc
! c5030e38f56c74af3a48a9afeb5ce29a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc
! b0b9549ca09fd972e97cdb2b359bd4d6  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/8348.cc
! 8a1f3cd9d95ec36ad3ae2dc30ba7efa4  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/exceptions_badbit_throw.cc
! 7b00e8de5873dee69da0dd09c1a1a6a6  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc
! 5469bd70b8036b0198cf6887856999e0  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc
! acefbce8a749ee074688c8e5f1a17059  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/1.cc
  f839f1109e54bd94ee7c87d858176de5  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc
! 3642af0f318b49f786a56e54f68b17b4  libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/1.cc
  b9907ab1fd112fa27bbaea52ca154a99  libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc
! e28fc50f74abac594a278ed8df7674f2  libstdc++-v3/testsuite/27_io/basic_istringstream/assign/1.cc
! a68f384e0ebc667d2f7dd04d2faf0b2d  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc
! ca90f5696b58534e094cb4489f613328  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc
! 20b29dafb1a4a01dfb81a883c545ed3f  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/default.cc
! b0c3f5b4de41746af8c1c2ccb75d3007  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/move.cc
! 78696eec1a470f7efe9c5c7da2f46192  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc
! 864057b8f3d6bc003ca652d4f06f17d2  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc
! cbba6a0ba2771c80612f9769fb6a7b39  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc
! 0d4629bd7c6ec6d5de638477ffdb1188  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc
! f2feaeffa88fc6c769200de3e04c4a7c  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc
! 310adefac65b073aac5756a1c1f1fc53  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc
! bca769349f8bae382b9d7fde2d862d5a  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/1.cc
! 2d40e1e2d9dcd5b59347a57c108c92ed  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc
! b8916a68d1fcd93e314b35e95efdc583  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/1.cc
! a094495cfd178295b62b67997aee9560  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc
! 4451f627e4a7f7c39dfad81f66597c92  libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc
! 4870d4a10d7f17f38db6ed94f346a3b2  libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc
! 026f92774e031a42232e19cc022f987e  libstdc++-v3/testsuite/27_io/basic_ofstream/assign/1.cc
! 64272bdfe5d702fd395079fe511fc934  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc
! 1b6cfd965773481d71d4a78567aef9c9  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc
! 34b6e34ff4baa69cfa143292f98f383f  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/2.cc
! 22d2af08eca64e44663fedc7b3f99b81  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/path.cc
! 042061dc3d4301888cec8846d27732fb  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/move.cc
! b7e6adf74f35a5fd97daa97186ea8628  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc
! 542519e700e4ff88f847b929c84136ff  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
! 038dd05a83d8765ef4fb04007a123efd  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/2.cc
! bd57356c73f5af6665ab95e52c45986e  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc
! 996adf9df4171a084f5a96a99c709abf  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/path.cc
! 5ddcd960fea69402f2b90105112959a6  libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/1.cc
! 56d62a1e757505deead6456d4f8d9619  libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc
! 5b0f32819873f459403c430d002e187b  libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc
! a87cd2ee9da5f1631486a3a77c0dcb35  libstdc++-v3/testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc
! 6f076d5090dacc922ac6d8320d796c6f  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc
! 622914058143d7ab09d421a9e8c81e47  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiation.cc
! 944ac866badad4be8cb6af32575779ce  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc
! 2f24beba68751557586127fc083bbcab  libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc
! 84a3a27c7510083281074ee2a3ba8871  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/9827.cc
! a910ce3c7af523d0fc370e5b86d9438b  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/null.cc
! 2bbe0afd2777c7d3207ac904c79c333e  libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc
! ca2d3b46138d58bcd067f646b38db9b8  libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc
! 96969c696dc387f500916eca3d7902a2  libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc
! 9ae494fec27ceb16f6aac29183c80bdf  libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc
! f02fbb6c4d3c50bc0e86196e7413bf37  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc
! abb37b7eeb7caae07998fcf017452a68  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/2.cc
! 392d8a6c6391851e20e788005c99abc8  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc
! defa3ff0b0e46790fcaaf170d5064e2b  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc
! e2d4f7e2e3ddfe5ae856baa32beb68e8  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc
! 57981eec98ffc5feadf4f4072404d4ba  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc
! 8f1424b21b94896ddb4c7da11d286f78  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc
! 41f1b489a2b3b52f4cc80f80f24a21a8  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
! 21b730203e28970d8fd0b4a26f146043  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc
! 816bd08b4eadb023cedc8b49bcf2cd1e  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc
! f6b7a2e0ddc32142e0f6936e09d89dc4  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
! 72329a4bdbf4444308b3f0a42f8228de  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc
! e47cb5e2d16e336ef809158f3bce1a88  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc
! c9fbfe4003a349edc9b25a2c23c2db8d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc
! eb53233e9bf4f1c6622328e15ba377b4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/23871.cc
! 31af335a0ccfa8a00f303257bf2294ce  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc
! b002bad936efa96e1447478ddd546a6d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/31031.cc
! 52ed22ebabb452e224453d96f3c70017  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc
! c97e3677aa3232ca73f7a4b3f2b6a21c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc
! 37f856486364c85467bd50e2416bc077  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc
! 3ff1616f9299b49617fb8c5388b3a6cd  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc
! da8e804d366808ea4e1efc1baf07ac7a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/7.cc
! 4400c6d4b7b167b03c6f4ef9c202f368  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/9555-oa.cc
! c9a570df35f1acde1bbf2c3e8784fc40  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc
! 488bae8de856eeaace6155b6fe363093  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc
! bffda09cccc425990cee1908636c692f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc
! 2e206ff2bede183ce79062eeeff8b6c5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/pod/23875.cc
! 8d27047666477233abeeba5c409ec935  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc
! d7a562fffd0803040211b6bd91cc709b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc
! 5830fb5a1735a1d9f03107f6fc2a97a5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc
! c7dd2a09230d4f505ce137ddcd0db57e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/31031.cc
! ea5a5243986a796865846399b893a15b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc
! b4db50d2dfe1284702dd83cf1f7f5eb6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
! 28e77015a91cf6666c456a45ceec3052  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc
! d4b87a724c3154423a021f6ebbb0d980  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc
! 391e3654f92257d22e9a63a8f5a205c4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/7.cc
! 54b4580d2a1c01fbdacbdaf530264a26  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc
! 6483d50f0a674942528d1ec518d36fd8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 5a80a7a3e8afde07bc0eabdb3b9904bf  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc
! f0431529d5874bc0a283003bdfda79a8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/1.cc
! 649692e28d63949d5c299b38f12d018b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oa.cc
! 85b92bf9929758261af6a6c4ee8452cc  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-ob.cc
! 362f441e441ef050723b9c2cd006fca5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oc.cc
! 6af7179d16458476e009c183dccec96c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/2.cc
! 33ad2fcf5a37c338aabbcb77e4e99fb7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-3.cc
! 29316160d36e8c9436cd4db12dcf5dbc  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-4.cc
! 5cf20b22551865d50beeee432f11947a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/3.cc
! 16284fbb8dc1ca3cf76001b56f99b53e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc
! 2b4c908675fe6d93fa045032732ebc76  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/5.cc
! 6c31408b25c6417eab8f42251a26f0a9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/6.cc
! 9c96c33157ce711a0391ceb9a6f2f992  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/8.cc
! 73f843bb4a3788b469f0297aeb12d07a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/9555-oc.cc
! 5df49509e113c4cc0b40a9f9bda4cac2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
! fa2ad17c0f3313dc5f96d39cd1e78582  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc
! bbf549c0d71432c843be309058dbb034  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-od.cc
! c6bdf3a88cec8dc6755103c21aa4552c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-oe.cc
! 9b3ceb0e719562e15426d0440cc74cd3  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-of.cc
! 322934fb1b71f4df2cb9916441570242  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc
! 5f21d61849b3f9553f9704c9b71c0e60  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-1.cc
! ae8c37577d969eab4847dfbce24f556f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-2.cc
! 2fefab205cdff1fa4081c947bf04ca4e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-3.cc
! 1240e5fffc1bd7fa5856101c8419b071  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-4.cc
! 81640bc489d9ef94bcf1a180a060edbd  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc
! 925434234c0553edce950c927c30cc4e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc
! 013a586cc391d4b30ad279b090a72d58  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc
! deeec1523c261589c1a0db6f79555324  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc
! 5aa3a51e947567f06ce870e88cfa8e8c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc
! 316b0a5e6b580cf9321170f188cf5596  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc
! e71c14786d9af3b6c5d027ac17e7cee8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc
! e237c146127cda2a1049d849b94d8de6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
! ce2e28596172bd6a95d70a3cf0715d79  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/1.cc
! 9e279221bba4d1d458d7c22ece7ab1ec  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc
! 342a5f147e41464fa90754bd03ff77cd  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/3.cc
! e526e44b375d522e5feb7b5d9c7f16f8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/4.cc
! 641c7a7a55782e76cc526e5b4de809ff  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc
! 5fb49a89c729866dda7e3089e7717c8a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc
! 31168bc641f640052c396c7c3023aca8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9318-out.cc
! c124fb347b426275373acdbd7f449895  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9424-out.cc
! 394f6d631cd610cae19f106a4cb7f40a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9555-oo.cc
  d175b74cdf90be7b308276fabe9bfedc  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/99692.cc
! fcc28d4f8ceea206feda45fd78d2b60d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc
! 7f012cdc8a993c9378ef428248c46b05  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc
! da7fed6515bc4cae23f6feede607e09d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc
! 400abb30e927cb14981f120f0c93ba4f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc
! 810e4ed9758515e5ce9becbf428145e8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc
  ebb7447c68529f67037c0007369c17ae  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc
! f2e7cbd42cfa0407bf2ad4408fc38cc6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc
! c2a814cc0208f1023cbca54a95b3e1de  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc
! 1051fe0947c5290e879f65b6486306de  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
! ff31c527c5a64663e1493327de25732c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc
! 91b46b486a88a1937b68eb2707d529b9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc
! 0c88cd5a644026b418b2bef9d778429b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc
! 2cba9542aede3d8871cc0a89faf47848  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc
! 873b461840ee6949363aa4658a647a99  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc
! 2a94759c66ebc056bfb117b505c57608  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc
! a4b03aa28b8d9bcfa02151bb2c44c309  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc
! f925cac963fdcb50dfe2857ef36e9aa2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc
! ef76dd62bf390665033b51901d1163af  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc
! 5b02541ce2cc7d15b2eba74cf0030e3a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc
! ee13dc6cb252100ca1d2c786bab32e51  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc
! 23f59ea10af34b802f88cc66df2392b2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc
! 990c52d19f98e26266bd1d10435961e6  libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc
! 3db52bde322a7165bda7791d568ed98d  libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc
! 62180b2e81d7284af36ef89642e2dd22  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc
! 14935c3facc9c08b64f886e6c7e426c4  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc
! 89ac3287bb1f1eac244aa9f2c5760a10  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc
! 85ce2592a5ad3d440efd762ff7c279e9  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-fstream.cc
! 8190a8f03f6723ac7556cf6760cf9433  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-sstream.cc
! ff7792486b4836a3b17176a5ed69d2cf  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc
  83ecf48decd6af498e926fc3a67f113b  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/n3168.cc
! 4cae41aac60f102fdcc3f92a0a9a264e  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc
! 2f7d7740853d9eb92351d45c17ab27e1  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc
! 3a572dc73569891a8368bb7e4a95afc0  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc
  7ddb76aa072349435f647b2c8021dbd9  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc
! 365fe01a3926f8349d08f019cb5951af  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/1.cc
! 967760e63295eb7b4997d1b93c58fa74  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc
! 55322f2a801c510b6518947810054296  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/pod/1.cc
! f43bef3d40f8854b0f47d239d99489ee  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc
! bf925d20e55c4dbec22f5e4d18f2f731  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc
! a562bf802786332f7ea20b3969b0beee  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc
! 6c418cb78d31230eef423e5b182bb88c  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/2.cc
! b9b53a08534714899c66324579c7c591  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc
  34b746c25af9062ff603699f54f8417c  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/n3168.cc
! a1c28cf973d79f8074bdf93e707b2e8d  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc
! 584d467fe476a81de0e5ce20e47e78b5  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc
! e8ec8d9061da458ca69f4c5737e997c5  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc
  374b556b2a046b8a0b8b251715467b42  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc
! d6bf611d94f96fb26711845eaea2cd22  libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc
! dfdac436ae2dc3cc950a84900e60e6d0  libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc
! a994a4918bcf5430fe00e2b648a9e08e  libstdc++-v3/testsuite/27_io/basic_ostringstream/assign/1.cc
! c15bc1b4f4286ab95a43f388eab66879  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc
! 935a9d25b4ded2a791cd2b0dd29c2099  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc
! 2a1e9ad714c2a508223ba9a447530a41  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/3.cc
! c5e94404e656b5d9b2871b4c7d5b3dcb  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/default.cc
! b2bae9ffeee95d457064f2b94d81687b  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/move.cc
! 9f37b6cf8d47af43b20f0f6abc78fa0b  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc
! 488e0cb3fa259e5b4773cdc9fe2bd576  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc
! 364860073399d11cc0f5f1a5250c76c3  libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc
! 2a5aea8b8637cbe3720eaad611c8aaa9  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc
! a09961289fe3551026fefbfa270baea3  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc
! be5680dae96acbbc37bea3e27de9fbdc  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc
! 3d4cf3d201ee479a4b98e95d79f449fa  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc
! 1cdec7c4d7a5bd4d325f8ff3cb0b0ee3  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc
! 5fd17b2f34789a12d7da34944404ac0a  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/1.cc
! bffcf7c0d3f25a678f387ea7e5a39049  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/2.cc
! e42357e64db7e0e63bbc744577d4733e  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc
! 2523c7921df3cafbfd88e232b368e122  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc
! 75294bbab6444755364a5dad05ebc071  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc
! 9df2a59b0c16eb2e16a479c01583b430  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc
! 2199be7d0d68ec85148cd223de809a3f  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc
! 6f3fcff3474d8167a0d3d4c1d2e1b5cb  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc
! 0276cfc934bf116ecf35ad1b837b3f3b  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc
! c54567ba820a95e6c57e96cae061cb61  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/57394.cc
! 6516012e816453bc040fb56b8e604b94  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc
! 9c15da8bd068c8a1f03929f01b4c18b8  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc
! 485e6b98435e5ee598bba69a6369cb87  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/1.cc
! 591a6a24dc20bbf7f5af70ef1e796813  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc
! 9bf3cd15cc246de6d5fec95521dfecbd  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc
! 268fa48fdb997a66bbffac2c4e3f49ea  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/9322.cc
! 0750f6627aa4127075826c4a20d98167  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc
! 60bf78fa60fa8d57efd35edbb1a89bd2  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc
! 000467b6a5a93f1fff1d1437641411a5  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc
! a934f39a1ec477c8d6653a6f06331df5  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc
! 1cb884e812e0bf06460a2614a39d94da  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/1.cc
! 0ecc4919fdbdb06da99b74280386e391  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc
! 6e87aad95681157c7db874269b612e1f  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc
! 7290403c81d7b1f97f4ef6747a55d7ac  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/2.cc
! 3357c5be1782720f0c69bff2536f3c8e  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/3599.cc
! 195df35c4d51ddb1085a591a6b8ebeae  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc
! ef047bd72229e013219636dcc8231bee  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/2.cc
! 5776d2f299ddd05179ae8fce63bad2a0  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/3599.cc
! aaeaf9be3ba05385a1743cda8f163832  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc
! bec00c2127a74acebdeb1bd9fbc60deb  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc
! 06730aac1f2d9ceb26f46ed0eee96cb2  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc
! 8e33fca9c247590cc53a6aa9936472fd  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc
! 678414044d518babfaeffd75d2825103  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc
! 7444ee824603bd6a48473c5888059941  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc
! 148af8b00123d85338c03ceb603e742d  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc
! e5f7488c943731c702cda33c99e039fd  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/char/9538.cc
! 178c2d5e6450a907a8cb76e794b39a4d  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc
! a1ef6f9cdd2010ac2fb1b4e233a28f9b  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char/1057.cc
! ab2e16d5a29c1dfdce9efaef96edbc34  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc
! 90f7f2adb5775def9e0a26da1da6aa34  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc
! 28746939ffeaabd28ba7736cf28f1aba  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc
! d0a9b8307669b37e585bb54a3d12f3aa  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1057.cc
! e369d8250e152fb5bd7d9f45e01cc9e0  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc
! a0aed91ec3c9b7b342aaf4dfb3614920  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1057.cc
! 093b7f4c01df820008c9869a1e2c8cd6  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/char/1057.cc
! d0feafe91efb1382acdca26ef49dfc78  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc
! e24b29c50c2bf7e05abb584c9ea88942  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc
! 50432c3fe38b9a872357aef77e8f17b3  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/81381.cc
! 5e0dfad7906699c4409146e831223b58  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/1.cc
! d73fcaaeae5dea2e614f1763567d33ed  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc
! 97f26044fdab3fca304388f9fb6c99cd  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/default.cc
! 6f791f7eda8260d468cc44a7800efdef  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc
! 477e204645e18b0d87a209550317da94  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc
! 982e812904e1bcaab8402165487add59  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc
! 2772d92cc2523b86a8406cd738367065  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/1.cc
! 5624bd64a39dff2b75af92572750863a  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/9322.cc
! 5a032f500661317fc4eadd0eed0c0af1  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc
! 95df000dd4a33f056c6e2f425fdc1365  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc
! 8aefcad07fd541e403603ce8f98372ad  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc
! 75c41ee893a664c8685ce9dc761768ec  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc
! d6b666b111e022cd5eedd7c7f313812d  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc
! bd637a4e2d185242d2f786e56fc27726  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/1.cc
! 9daae362e0530e879218613c5742f65c  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/2.cc
! ea16fdb4cbbaded71e5e0d871fb3c433  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/26250.cc
! 25eb2d4fb460db559bd1b4a8ad8bb4eb  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/3599.cc
! 2fb8256114c4502f75ea4b755f398eb8  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/9988.cc
! fbd106ebbd106a5ea7d0d001b6a9c7fb  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc
! de869004648e446f1d0c86bbd0b7983f  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/2.cc
! 4a4598fd3043c29b39c9867aa4b04a71  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/26250.cc
! 4b7d4010b8f56f382b985b4ce6324ea4  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/3599.cc
! b272fe451dc3505f442b599431b71db5  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/9988.cc
! f41856699688d403e42bf7efc23be269  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc
! ef70e194058b28d1015f08eeed219e05  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc
! f7013be031a00d7f78a8557be0ead3fc  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc
! 08ed04ded161d5e447544b4b8dbcf8c2  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc
! 605fb454ba4f6c012e158fd780328336  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc
! 33aff8b74e139f9987337d91ee7557bd  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
! b82e4c3cdc77d1140a74dbb58ae5eb68  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
! 2946ace861baf8215bbb9dbc1d7b8c69  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc
! 1d154f62478ed0e0eb62d55ad0d64c29  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc
! 6582031c5b2a2633da9de493e01ad053  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/9825.cc
! 4cc58a9285c905645d0f521545e2c26b  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc
! a0ab202375d699cdca574c0ee394905a  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/9825.cc
! 4d187e75d15b235fcc9c8409ece69d73  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/1.cc
! c0d2b0b19acd67ceb9b705e5f2224eb6  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc
! 091e294cfe09780edaba5648b13a3e71  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc
! 265cc99d704fe57c0c587b030de85a51  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/2.cc
! d970a89cbd1c9a13777454d3215e7f9b  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc
! 27fb65a311793ebd6f6daf9c739bced6  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc
! bbee3d8a23d59d41b9c55346ec819ccc  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc
! 0ddc5da4c9059483149fbcceeb82db72  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/2.cc
! 83f0bdc34b96aa0be83c8b4a409e5d96  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/1.cc
! 61c5cb8c6232505d42a3ff4db6b8a8a4  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/2.cc
! bd8393e5eb322180859f2418f94bf458  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc
! 30e95598727b1ee0b9acce7738d59488  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/3.cc
! 1eacb8ddd0cd53f437f3042b41aaad8f  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc
! 2253b074c7ed484b31d9166b7fd1df55  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/2.cc
! abb73902f1b0410b5538b1f92a13a505  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc
! 432ee07a211e5e847c5ad3351aa3533d  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/3.cc
! 84b114cc5a912cbf8c3ab91a5533c5cc  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/1.cc
! b2e8eb728e38d47f95859b60336ad4fe  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/2.cc
! 35bc9b42e93afd9f02788dae0dc65e5c  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/3.cc
! eee66e8dd3721950a4023527084a02d7  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/4.cc
! b540e6b6a9c7100a59927a27804141b0  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc
! 3c50c93d2d2c379b6e5878c23efcb584  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/2.cc
! 4ca50fc4c5c916aa29ff5480930683da  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/3.cc
! 32900e69a1c767ef09d8a416aa366bed  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc
! 9785f82610b3efbd78f9c376fb369321  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/char/1.cc
! ecb98992166c667ae8a3988138984d65  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc
! fdb7e3f699452c0c527606683e485657  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/char/1.cc
! eaf657a4c1bdeb5328c6549cc28a3862  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc
! 7520531559898f532ab3b78a67e0d890  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/char/1.cc
! 96eadc1a676d62ee35e5ddc758ce0a2c  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc
! ea4a4551684c9fcf5d5d22913f7c4171  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc
! 76307b451842395479635b024257326c  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/9425.cc
! ff6282531907a0b2fba18aabae2f9c0e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc
! 324646b27803f9a8b6afeaab2d032fa2  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc
! da3114c0303144ed5b3e583a7a761e7a  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1.cc
! c32127a79e771943cf78b865836dd775  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1057.cc
! ec114cb9cfce4317031848babec5cd1c  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/9404-1.cc
! 862b79bb84d2420fb55bf2c99b2034f6  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc
! 0465e63172f02f53a2f3851d599c4e70  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1057.cc
! 0e3d46f8e74d028a3bd3566e58185c9e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/9404-1.cc
! 07d77f5e44771023dc3a0aecfa28ed86  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1.cc
! d99ade6067d7f908f970d1e1cbd8a3a8  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1057.cc
! 607f6d1f6374ab5b4453e830a4ce6510  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/9404-2.cc
! b8939124765ab9270338e83358b3ac2b  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc
! c208c8de494bf32d878da5e4c9b204af  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1057.cc
! ca62659f7a645bedde2eca769be9962a  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/9404-2.cc
! 8622720c9345ba21912feea8824bdc15  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
! 336990ae2489df97e50305d0ed3f7c27  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/2.cc
! 4b0f93f8b1f2c857573d6de9b3ff2517  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3.cc
! 5ca6a228218b7685c57f8087d179c4b3  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3955.cc
! f8800b8378da24e15ec0df55a2ae157a  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc
! 3e3b1ad2513cae4102f00d0e864869ce  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc
! 0c5cc1f290c67a763a7a892485689b60  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/2.cc
! 78537bfc630911a98ad19e4284c3340f  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3.cc
! e025319f9831d49f9931d12f309552e7  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3955.cc
! 51382a0e1de0ef9a061f4b4158b2afce  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc
! 23615a1dad69ac451e3d945b08020b7d  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/char/1.cc
! bf38993af2cb61d29383522454ae824f  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc
! edad207cc8a6bdae305bfc8bb163dd33  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/char/1057.cc
! e1b988a60252c7d4e628c4df772964d5  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc
! 475403091400fd5580b35d6aeaefb3f4  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc
! eb24e2e048d93a1f590b90332efbdad1  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc
! 4416c6f79fb077d966226f44edc64d03  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/1.cc
! ee61c0f1123479e316431eca500fbbde  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/81338.cc
! aba71181e260c63b9ba4f590db907045  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc
! 286d65b3a5df3d8ecc84f7fefe33e68c  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc
! f272b0faf9b33fa5ad5175846d0e8224  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc
! 5db4c3df6f4595fd2bb334d968c4734b  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/default.cc
! f7dc180d5f73c5ad1cb58b9c47a3918b  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/move.cc
! 21c5be7e4842ad1fe08eca5335d9534c  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc
! f36e0a6be6818d60bb84203d1d741d67  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc
! e01c8ebfbf622fa4c101d515a6f690dc  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc
! 09caf2705eefd7665e3710c1942c2f83  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc
! e14077b970778ee173dd74649ef46214  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc
! b8fc347350bcb022ad9550e4c81ff7f2  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc
! c152c9dc9e51ab39a7098c7dd21564c0  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/1.cc
! 5f35cee8ce0f293b76f2e4ab8bbdc293  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/2.cc
! 8c542e5c37e34942a8969849fd5eef2a  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/3.cc
! 8e3634212145a81fa4dcf3f996622c3f  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/4.cc
! a64f8aa9729497390b401852ae47a530  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc
! 43ba0da7febe2168091036af4803bb32  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/1.cc
! f8bb493d444ba306c96dc56051ce82a8  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/2.cc
! 42cbfd1f4ebdc293bbf15b1a7ec78cd0  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/3.cc
! 3205172d68284131ff652d5da9da170d  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc
! 4caa7dbfa5c90becb170251c0247a4f7  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc
! 5d72c554e79712112813d57ae5e6cb92  libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc
! b962c25698ce97bb90aa72593f8dda06  libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc
! 3add8d595c63d1ab2eb211b5ac8146f5  libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc
! 6afa1db753ba2e8fc4646dcc9ac5adeb  libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc
! 32026cea9b57b7386e63464ab5c54bdb  libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc
! 6b28e4f6652786f6449c64c48a244268  libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc
! 3bae5c11da4a08e7336ab3ff947ae923  libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc
! 3add8d595c63d1ab2eb211b5ac8146f5  libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc
! 6afa1db753ba2e8fc4646dcc9ac5adeb  libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc
! db8502ea43af702115a75d2c7082059a  libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc
! e5e125dfcbba010e0951ef33630e73c9  libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc
! dc7bcbd222dff525ddb77ae7674869c8  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc
! 3e4d6fd3c2d600bc93f5c42a50aba719  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/lwg3171.cc
! c4bccf786912c3a2b0aaf2591088baee  libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc
! 9c311428734ec9c8511538e1a13ec90c  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/cons.cc
! 32c5658b054c0c92fe1fa0bd951bda71  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc
! 1f6a2ba53ef78ca2bf02d4ad80d092d2  libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc
! c08d6d11a73ba34f4b8033c727e408d5  libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc
! d587f0a010ee52da14e4291740ea9e88  libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc
! fb9bd68e33aa6488c7aed84aa97fe981  libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc
! d377ea6c61fb7fb1fa2c4001a830da11  libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
! dcd882a17587b064a50fa3897aca0e32  libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc
! c45fc7189824b4a01ce3d6ad049d44d4  libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc
! ea42cb0d3f5239983a65e71ffc4032e5  libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc
! 57277e79141b7a52b38a49c5f3f4ce58  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc
! c0f916777909ec31862f1c1598826016  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
! a758fd957636105227fc87a9661db9cc  libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc
! 045e16e4aeda74a97373f2bdf807b39c  libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc
! 9fdcddf0081f3acb01e9e3aa40cb7294  libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc
! a42f2f8bc28c4671f94b1ccf937795ea  libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
! 9a472855ba191981b089cc12907f9f33  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
  10b6e95add9984bd29138cd25bc3a19f  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc
! acc8cbac48528e1912d33385e5aa6809  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc
! 8c33f78dd03e730cfd6fb6e7f071d069  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc
! 249621220bf58b3b82d949a916f27c38  libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc
! b21feaf3945442a938ec54a4401d86e7  libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc
! 910e5781be110c3e15ed3bdf4d4dbb05  libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc
! 174c747425f2c8a8a5af6df0c12b933b  libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc
! 22ed45f524883e23e793351cf4019f14  libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc
! 70241ed0411548125d4c89de6fc437a1  libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc
! f35204011be3068a8f812b54872d4610  libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc
! a6ef8cf8069a17c91e4f975d33e75ca7  libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc
! 5a82feb397d738850290d5651301a11f  libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc
! aa12f3ad5d07760fdef4c7f8339e1ea7  libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc
! 0c6c07a9c9dbccc7719497b85201d9a6  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
! 128c6f5ee47456ecc936373f2f323f1b  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
! 42594b5cbf9a6ffadf5b6cb9b0895ce1  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
! 3ab7106fa9baea760ffb1735f2edbdd1  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
! 93258c1d01aa8dc2bfecf035e136dbca  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
! 3faa5845a51c8d6c5755eed607cc8697  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
! 9f4e4355672050d1fd8eb5a7524deeb4  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
! 1583f8daa9759aa939ffd5f229ee9688  libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc
! 2ca07c3423d647fdf0be18fd26ba9438  libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc
! 09c608f10b3d0f70c15ef68c41af4521  libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc
! 9897c7912c7b47987d118515b02ab561  libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc
! 3b10bf3958ef0e9907c552b848b5f14a  libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc
! 650ed7e70ba1dbf164c8e81dcf17e802  libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc
! e2ca87600c4d8aa5eeed7099f196b1bf  libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc
! dffd9d7799c604c3bce57aae4d879e6f  libstdc++-v3/testsuite/27_io/filesystem/path/assign/copy.cc
! adc6839881d66900bdb4afec1183fee6  libstdc++-v3/testsuite/27_io/filesystem/path/compare/compare.cc
! 76d9cd4f874777f208df909f580d633b  libstdc++-v3/testsuite/27_io/filesystem/path/compare/lwg2936.cc
! f96fd6968fd5dc0a924d195a63fd0f01  libstdc++-v3/testsuite/27_io/filesystem/path/compare/path.cc
! 71dece1f73b5dfe83d3feeccea213e26  libstdc++-v3/testsuite/27_io/filesystem/path/compare/strings.cc
! 645545a2827964059e41fbf8a38f3610  libstdc++-v3/testsuite/27_io/filesystem/path/concat/92853.cc
! 08d3a01e742eaf2deea882236be3a404  libstdc++-v3/testsuite/27_io/filesystem/path/concat/94063.cc
! b9c63e25d0a6079a7198ceb1e34281aa  libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc
! 03128b92092f24a385c32f721bc76620  libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc
  a22e69eb2c027825b8fb3e0e6df6a97d  libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc
  3bc7c7fa91cdfae8b85e98c050b994cc  libstdc++-v3/testsuite/27_io/filesystem/path/construct/102592.cc
! 784d57a5366a20e7e27f90e28eef53ac  libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc
! b479d71692400e6f0bf7753dffcdcdf4  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc
! 1b5d6720e22335fe7b9b10909cbfad06  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc
  7e3f9d185f69161e92a1fe6e162069f3  libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc
! 9ee288435d56887bc9e59c7e475e1688  libstdc++-v3/testsuite/27_io/filesystem/path/construct/copy.cc
! a89f190425a59f5643505be45a681c0c  libstdc++-v3/testsuite/27_io/filesystem/path/construct/default.cc
! aeb93083bb7772788b6c6a71067423d5  libstdc++-v3/testsuite/27_io/filesystem/path/construct/format.cc
! e9c92c5fb8996343b7126f064f6612cc  libstdc++-v3/testsuite/27_io/filesystem/path/construct/locale.cc
! bd02d852b173fe4c97501d48e665ebcd  libstdc++-v3/testsuite/27_io/filesystem/path/construct/range.cc
! 2f1c3aa84331fe7c40735f4c422784e2  libstdc++-v3/testsuite/27_io/filesystem/path/construct/string_view.cc
! 1725c3eddbfa05fd17dfacb6951bbbac  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/extension.cc
! eefbf8a66b82ecd55aa92cb8eef60f6c  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/filename.cc
! c8126f632c63e81e365288fbc058d73d  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/parent_path.cc
! 04634080878f96cf58d2a1f3d99ce346  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc
! 299b016b4d538318f15976165c6f9567  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc
! bfacfade96c3529c93b276fb07862927  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc
! d72d3c9c5a29f8928067d4de163102d3  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_path.cc
! 7fa41dd5fa5525f50579c767218c6782  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/stem.cc
! 5e70624ba8ed61fd7555f1417bcc4a93  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc
! 7d95852b1f2e3b85df5e4bdc322b3eec  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
! 94999a5ebc3e4dbc24351f2ddddc12c7  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path.cc
! 9eef10d022d997816154519956b543ca  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal.cc
! c99b1b75451161836f971782bd0a356a  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal2.cc
! a81b276e5230b9b1b833e72b51716a22  libstdc++-v3/testsuite/27_io/filesystem/path/generation/proximate.cc
! a94eb971c8c9e0e3819a801f88e642a1  libstdc++-v3/testsuite/27_io/filesystem/path/generation/relative.cc
! 61e8518fa43c1f9f8402ba26ddeda302  libstdc++-v3/testsuite/27_io/filesystem/path/generic/94242.cc
! 5d7470ee8b77c18c0c89fa79ca850b4f  libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc
! 2ceb6e31230c89d453bc9e346b19e0dd  libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc
! 4859840bcf14e93725af4d38a795fdf7  libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc
! 51dbca1a7ec4f4a6b9c7c03502042bd4  libstdc++-v3/testsuite/27_io/filesystem/path/io/dr2989.cc
! e0097244ecbddfc34ec4390c101890a0  libstdc++-v3/testsuite/27_io/filesystem/path/itr/components.cc
! 3c51e8d1f2c2887ca4c5b02984991a4f  libstdc++-v3/testsuite/27_io/filesystem/path/itr/traversal.cc
! efe6f83f656d23b4e39013e66fa0ae2f  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/clear.cc
! f9a5560522638ebdc5b628e0ccac98d1  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/make_preferred.cc
! f406c2709cc46dd31af3014ddfd6e46a  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/remove_filename.cc
! 110967e2bedd4fcf3d0685b4de8fc61f  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_extension.cc
! 2957e341a41624090fbb252bcafa7fc6  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_filename.cc
! 598686c9ddd749040cc19c9e0d07b92b  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/swap.cc
! 32fa2b3d91d6572aa99f51d7dd1210f9  libstdc++-v3/testsuite/27_io/filesystem/path/native/alloc.cc
! 697f6ac048e02e33ef8e766bd5eecec9  libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc
! f53d701f6eda4a39c2ce04016ff1692d  libstdc++-v3/testsuite/27_io/filesystem/path/native/string-char8_t.cc
! 0ab87015f2efbe3b2dc35b4066df0389  libstdc++-v3/testsuite/27_io/filesystem/path/native/string.cc
! 77f2e6dca048746f286670399f0bff83  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc
! 8b92198e3df944b8ddc7c018ce7c2674  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc
! 586fd36bbd93fe14b3a3f67a74b77566  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
! f7efd6da348473ee63b3ea3b7813f92b  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc
! 863d56baf0749dfaf6e8ec1eaf95c813  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc
! fce24f9078146c2f6c4c48647378ee7d  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc
! c9dfe323a318a981c2d5fcee561ea1a1  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc
! cd185f9a390ed805bd60161bac9ab5c4  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_filename.cc
! 0b17c2303cfc36ce0c05e6f28916f191  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_parent_path.cc
! 44ae0e413c05dd4c96057ee8f67edd68  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_relative_path.cc
! 8b758624ffd6f0eabf3a1c8859f4d014  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_directory.cc
! 91f0ed1a1f66491e0e2f13fd594c2677  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_name.cc
! f46a9a3e2f282502de58cfec2326a04d  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_path.cc
! f234a4f769acf0b573d7ed50523d9b35  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_stem.cc
! b0f9513bb405da689246e1bcf7751de4  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_absolute.cc
! 82fc1dabd68e8a785347bd9c6664216e  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_relative.cc
! a595e3cb83e2b12f86dd0dd253265a72  libstdc++-v3/testsuite/27_io/fpos/11450.cc
! e921c998ecd3a5eb0ed92f46b34549a5  libstdc++-v3/testsuite/27_io/fpos/14252.cc
! 6cfa33171912a62e7ad8c058e4ee60d7  libstdc++-v3/testsuite/27_io/fpos/14320-1.cc
! a537236e607c7deaaa9f494b5e145b74  libstdc++-v3/testsuite/27_io/fpos/14320-2.cc
! dae8878b827da621dce515e317a2a6fc  libstdc++-v3/testsuite/27_io/fpos/14320-3.cc
! ee170ca26fb5977f75a5cab7001a9c2a  libstdc++-v3/testsuite/27_io/fpos/14320-4.cc
! bd41cc523ad1aeda21d725824af8b13a  libstdc++-v3/testsuite/27_io/fpos/14320-5.cc
! f2261ada9418561175620cc555e8fa87  libstdc++-v3/testsuite/27_io/fpos/14775.cc
! 1b953e841504dedafccbbcfe16f98298  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc
! 3a51bd5e409973eea5ac55591f3bff4e  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc
! fe5490b17d6b0f171f89903e0a2a6c9b  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc
! 58b1b8325d999089df38990dc6bdb6ba  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc
! cda1b26874aec90b4cdb742f5bc0f49b  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc
! a45caa878ca2b306bd708d9c27846d22  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc
! 1d927436cde9dae4c78826c69174a038  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc
! 92e105614a3acbb31127f22e8e1bc336  libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc
! 34c0fa7f43587295a24b70034c7add72  libstdc++-v3/testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc
! 1b9b6b9db058436ec03f805bfcdaa842  libstdc++-v3/testsuite/27_io/headers/cinttypes/types_std_c++0x.cc
! b5b9fd2dcfcb7e7a1c354ba1b1ae8d8d  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_neg.cc
! c9dc645cab8ab24be21fa617c67ea851  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc
! ee6fd5d7880dda57a778c084c944a563  libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc
! 887721e99732d2c03d805e25d7f543cd  libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc
! d233d7a90143e430ac247232fc6db46d  libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc
! 0fae57397607e2c84ed3428df64e2bf0  libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc
! 5e76251d31a9fac3343f02dfbfc62d9b  libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc
! 0d7f5e52b483404c02b3c794738231b3  libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc
! ec05ba8627c9370cf6bfbd523b7a75fc  libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc
! 722716e9f5f601441363916ea2ede7f1  libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
  16eebae0b45ab9320a5df94e03dfa4e7  libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc
! badd7aa716938b9a669eb37591b6661d  libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc
! d4450bf67ef8de8d510faff4b5bc2fd7  libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
! a5d4e6fc55b15bb3b4446dccfa21ea2a  libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc
! 9954782adb514968c49e12fc9fa38607  libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc
! 383a77601fd26ffbe852c0ff3ec775ec  libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc
! 7a654a1145558f502c1fb64aeea87803  libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc
! 07b4b6124ade937c3079097108b7729f  libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc
! 052f583b7b4fc392bb9ceb7e43a14cb8  libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc
! 0b7f672e220eb186c3983a01a6c14b57  libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc
! 7a946c8a03629d2c6a475184f3b3add0  libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc
! 9fe37969b2fd59d950c35701c2c16f90  libstdc++-v3/testsuite/27_io/ios_base/callbacks/1.cc
! f706bd6c77239da59cbf20344f06e22a  libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
! f6ef117aaba6f94ac85da73a1bf30476  libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
! 5d26ffd3c875195c6ef25632f2de8447  libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc
! 5ef4b099c4f8084bd96962084b7bdf4d  libstdc++-v3/testsuite/27_io/ios_base/failure/cxx11.cc
! b36e11dfa0c01776c1e7ab3c0959ae4c  libstdc++-v3/testsuite/27_io/ios_base/failure/dual_abi.cc
! de32b6757c945b9f220add1142bc47e6  libstdc++-v3/testsuite/27_io/ios_base/failure/error_code.cc
! a40b8a1bbeac85fe3775b5c7da638c6c  libstdc++-v3/testsuite/27_io/ios_base/failure/what-1.cc
! 912d0b928d4ff8efce42f57bb4e0f8fe  libstdc++-v3/testsuite/27_io/ios_base/failure/what-2.cc
! 6fe116b48eb9c8dad7395518683db69a  libstdc++-v3/testsuite/27_io/ios_base/failure/what-3.cc
! 09b2b986ddcaa1933020562ea0c6bbc4  libstdc++-v3/testsuite/27_io/ios_base/failure/what-big.cc
! 2119d93147fecf9c3bd1e0e9cd5dd195  libstdc++-v3/testsuite/27_io/ios_base/state/1.cc
! 7e42c1d3c4af35ea6a10b94e265d31b5  libstdc++-v3/testsuite/27_io/ios_base/storage/1.cc
! 5317b1ec46a59286c37bad1cc6fe1eda  libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc
! ceeae3a7cfa67f9c3fc7f2f068419f94  libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc
! 8ddf84317137a906dddd13d4c4a9bb8d  libstdc++-v3/testsuite/27_io/ios_base/storage/3.cc
! 9d2906f030bb6f9dd73cf64ae5ea83c2  libstdc++-v3/testsuite/27_io/ios_base/storage/68197.cc
! d474bf0354a95a9aa7eb56fb8a85e846  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc
! 4a99b69a5f725a91a12b4105a3638ffc  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc
! e284ebaa1d2fc408e6b990fe9bd53fe5  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/2.cc
! e92ac2c557c76cbffe5671d6efaadb3c  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/9523.cc
! 68c9f2c325299bd3587633827db8feb3  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
! 853ea062e38523c7d2c80843d74707e9  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc
! db9311939a4c18b4f20fe776b5a409d5  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc
! 05cd194a684c13c51ec8b520b4d0db61  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
! 728bd50d65287f147b8ed783242cba03  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc
! dd154256cdac263d91fe254bedbe71c5  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc
! 7de77834d288b853b6a84cd1f26d031f  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
! 49b2c0c5d12a520c3a131f4a53522cb2  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc
! c77e47ea6af40295832536d4f384ffc4  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc
! 5dad4e0271322f505f9533bfbd06f261  libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc
! 864e2e7d76210772b4d7cf47c413bd08  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/1.cc
! 5246772a2b67e311d898b8167faee4bb  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/2.cc
! 55849f4a751ffc2069a9811a25af9f81  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc
! 6888a77159b5fb4f3e5f7ec327bb8a71  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc
! 27571825c4a661f35b7cf4082c6e69fa  libstdc++-v3/testsuite/27_io/manipulators/basefield/char/1.cc
! 68ffbf18dd0bc65add92302ce689435d  libstdc++-v3/testsuite/27_io/manipulators/basefield/wchar_t/1.cc
! 0b2d5767905786d2c052fa3caf1baa26  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/1.cc
! ac25223683bd9bfbeb0c713014c9f177  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/51288.cc
! 49495b3830d9d41d5dc6a1026ef360c4  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc
! 96adade7e7bc0bfae9d2472877564f7d  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/51288.cc
! 0686394db480badce555ad6ba3b8b4c7  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/1.cc
! a8ad0894e95c6f38f03d12a427ad0eb8  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
! 77a741f349cde3730ed5f145b8b0b25c  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
! c8f5b51f87a86fe2a5dc6ec47471f8fa  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
! 4ee8c021c3d31874263d6699143c55db  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/1.cc
! 93d3bcf1cce225aae491bbeb9c752fa6  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/51288.cc
! d36cce5a6bd2686d389fafec3dad89f2  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc
! b3235712cf78da1b9cdb4ae5ad075f00  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/51288.cc
! 4e167ba4d53ee8a90ba322a4631ab4a8  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/1.cc
! 4020da3df83bc6382925f135f125e03f  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/2.cc
! d3bb9db09caa10fc75458593131265a6  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/1.cc
! aa9ce3e7fc9a8fc93fa4f269bc01beca  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc
! 7ac35a2a2f0e9e2f8b7f87afda933b9a  libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc
! 7058c6b18ea394cd7820f2e623032f9a  libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc
! 7fa6e8fff68ec9afcab5ce5f3649e529  libstdc++-v3/testsuite/27_io/manipulators/standard/char/60270.cc
! 6fdc858c25f791d638011bd9d4d523c3  libstdc++-v3/testsuite/27_io/manipulators/standard/char/dr2344.cc
! e6d16fd6a5d74657d5f87a96a8c203db  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted.cc
! d8b481bf0427f2eda05e292a91618109  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted_sv.cc
! 27dffbe93e54b93f02f43df85362b530  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc
! d702e9f477b4777771cc49275b3c52a6  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc
! 940c5ff17db9a5914a2359fa197c7c03  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/dr2344.cc
! 02808db95e7e616d5c93744ac30fa03f  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted.cc
! dcdfadc4575bf566afb87351d2d6785b  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc
! 990fb7a43e100c7b2fcb85f79e4dd56f  libstdc++-v3/testsuite/27_io/objects/char/1.cc
! ec69cbc9c8c7c9241c5cfee548cedcb3  libstdc++-v3/testsuite/27_io/objects/char/10.cc
! acf83cea024e3abfe315cfcefa7da502  libstdc++-v3/testsuite/27_io/objects/char/12048-1.cc
! 8fd2c7b430f7a6bf2a0465ab47fb352f  libstdc++-v3/testsuite/27_io/objects/char/12048-2.cc
! b301e2e3db8372b168b854f5e1bb9058  libstdc++-v3/testsuite/27_io/objects/char/12048-3.cc
! 0abf709d86e49e94a9afd45fb3712ee7  libstdc++-v3/testsuite/27_io/objects/char/12048-4.cc
! ff8780a4567d8e7d8f7f9e93e379445e  libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc
! 79ecd86c188e8d5540bc6c9850e1b946  libstdc++-v3/testsuite/27_io/objects/char/2.cc
! 21cd69be2e74e82e8ed9037e4ce5d06e  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.in
! 344ca1bf488cd5a63450ec65277e57a5  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.in
! 7652bdcffc8f32471bc7396ccf693140  libstdc++-v3/testsuite/27_io/objects/char/3045.cc
! 4fd47b26a69bf1b633ebac23ea3b0c4c  libstdc++-v3/testsuite/27_io/objects/char/3647.cc
! 9186084e1e5aa209c3b2c7e9a91de3a6  libstdc++-v3/testsuite/27_io/objects/char/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/char/3_xin.in
! 7b55cf412018d9fc7ce68deaf44f9ebe  libstdc++-v3/testsuite/27_io/objects/char/41037.cc
! 7224b25fffb1080bacc32806a326d2ea  libstdc++-v3/testsuite/27_io/objects/char/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/char/4_xin.in
! 65c51e1ce99fe6962bbe501e7e35c5b9  libstdc++-v3/testsuite/27_io/objects/char/5.cc
! fa0e5b12da7b4fc93251a53292cc94d4  libstdc++-v3/testsuite/27_io/objects/char/5268.cc
! 8f0ba5b680ba72c1a51f438505cfab85  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.cc
  81dc9bdb52d04dc20036dbd8313ed055  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.in
! ecef787bda5a36cda90a75c2aaccfe52  libstdc++-v3/testsuite/27_io/objects/char/6.cc
! 3dcfb86be02c4d084b23a6edf7911248  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.in
! 0b7ecf3e42742010836fe581b20fe124  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.in
! 09065e74746a56d5b499a7285ea9d9ac  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.in
! 7b2c74c9153c8ba009a6e78be71ee230  libstdc++-v3/testsuite/27_io/objects/char/7.cc
! bc8afb39e764984b6c9794ed76eb861a  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.in
! 8bd2bb73a9d6049aad44030ec6c8fe0e  libstdc++-v3/testsuite/27_io/objects/char/8.cc
! 2d44aa2f4f389e6b5f8ec9d459db5d8b  libstdc++-v3/testsuite/27_io/objects/char/9.cc
! 875c7224c298dd605ddfdc8c7a5dcfad  libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
! faca64e297142683c7b948813a47bb90  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.in
! 8199815ab2e9297216c1bb84ed59f3ce  libstdc++-v3/testsuite/27_io/objects/char/dr455.cc
! 308a1901ff9e217b76283cd5457d79a3  libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc
! 2aa8b8235c40cf43bc1ab22be805cc26  libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc
! 5d51b6804db0a896e31dd2b9ae225423  libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc
! 5378d1d7abd98e52335b2cafea8eed0a  libstdc++-v3/testsuite/27_io/objects/wchar_t/12.cc
! 4946fa4c0eb7d0bf81e25877cfc5219d  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-1.cc
! a1f472f0c72a3fcef941cfb060a4bb77  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-2.cc
! bfdc22d5379cd18afb992419c2eba17c  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-3.cc
! f8d5f902c9b4926dd2a3c48b4e1f311e  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-4.cc
! bff66c006f13290c0f3b963de18143b4  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-5.cc
! 461b26edbed4e48bb982fcd98bb19c69  libstdc++-v3/testsuite/27_io/objects/wchar_t/13.cc
! 77cd2138ed9bbb3bfcbd2d17e7e543e1  libstdc++-v3/testsuite/27_io/objects/wchar_t/13582-1_xin.cc
  d577273ff885c3f84dadb8578bb41399  libstdc++-v3/testsuite/27_io/objects/wchar_t/13582-1_xin.in
! 27a842c6eab7fb4404687ce471e04d30  libstdc++-v3/testsuite/27_io/objects/wchar_t/2.cc
! 99ff7aba49fc831f1500ef0885b54959  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-1_xin.in
! c96b638c0afdb1582c1843f6a24f2f24  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-2_xin.in
! 066f59e3d6b405aa81d15de41c19f61c  libstdc++-v3/testsuite/27_io/objects/wchar_t/3045.cc
! 743a85c3baf13f6afe26906b1cafa640  libstdc++-v3/testsuite/27_io/objects/wchar_t/3647.cc
! d427c49b0b0afaa2c1d2654a3a62224a  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.in
! 70a0d78c99ae220d1181620c3f23ea52  libstdc++-v3/testsuite/27_io/objects/wchar_t/41037.cc
! 18d35e229a9ff632642a6c6ffdb10c4e  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.in
! 09350c7b9c4b9c5ee8d0c5254463e3d3  libstdc++-v3/testsuite/27_io/objects/wchar_t/5.cc
! 4f564b0e2ff565c35ea9a6a78ce4e006  libstdc++-v3/testsuite/27_io/objects/wchar_t/5268.cc
! 086c1ac1fb1e8ad2eb004b54b2a74f63  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.cc
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.in
! d98f178a89a7ff807037e13db8ee6905  libstdc++-v3/testsuite/27_io/objects/wchar_t/6.cc
! 5309cfb056a669ab30c7a149b13a083d  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.in
! 67caa576e53ecc3ede93e4e896b5f744  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-1_xin.in
! 7aac8170ec61a14a206d08c641cb81d1  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-2_xin.in
! 526408ea693c508e6e5da66c939d55e5  libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc
! 67cf41c49df3b28398a6aee71ffbc3b8  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.in
! e0a2afcf2bad49ad6d7a006ff32a800b  libstdc++-v3/testsuite/27_io/objects/wchar_t/8.cc
! 36c38fdbdb5c88f6e00e5594e9a773f5  libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc
! 0de66b638a53f7b5540b7a02bcda6e91  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
! b963d915f38cdaba1fc28d9a91841634  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-2_xin.in
! c2845d055df3a3c9eec7f34915b6f63f  libstdc++-v3/testsuite/27_io/objects/wchar_t/9662.cc
! 8692377c825f5c865832d97dcb1c75c3  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.in
! 21bf0a355267bc047924f3412f3dd8ee  libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc
! 4efed1789a62f6991adff97279bcd1f4  libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc
! d1dfe55fd3a5885b95cd86dc0498bee0  libstdc++-v3/testsuite/27_io/rvalue_streams.cc
! fe40135327d86460d13b734f54db39ec  libstdc++-v3/testsuite/27_io/spanstream/1.cc
! 44feabe2b97157af832bd4b647727182  libstdc++-v3/testsuite/27_io/spanstream/2.cc
! 54572175dfa1a1c5dd980cde76230006  libstdc++-v3/testsuite/27_io/spanstream/version.cc
! 900d1a060a2d7ff7077bef529057baa5  libstdc++-v3/testsuite/27_io/types/1.cc
! 12d00547ea05cdb0aa00f444814b4b79  libstdc++-v3/testsuite/27_io/types/2.cc
! 8f10a32b825f351ef20177f7f7bfde26  libstdc++-v3/testsuite/27_io/types/3.cc
! 9b752080c89af82b1227755787aa67f9  libstdc++-v3/testsuite/27_io/types/4.cc
  2311cea628cce5b052734c24d5a5cae9  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/107376.cc
! 99308e5cc7cf2e6e83459c0586733bb6  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc
! def61be5cb7cd2d58c403fbaf26e8ab7  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc
! 16e00c660d9077b148750b122aa0a168  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_01.cc
! edebfd9c30920b2e47e4ecb689c2572c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc
! d3177977b809d974e0092910628afe27  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc
! d6f8a7ff53c1d010bf0a1002a5469d16  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc
! 63868ea878b595d52fb3f8e3b4d23f5b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc
! 64c5767e82061103f1f0c52732978d52  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc
! bf6b1ef0be947e3e77740a828d14577e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc
! 4e119433288a9834638b7b53321fdea5  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc
! 293938c1efdad0deeca479952b8c83af  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc
! f19fc800e09f6023303f55bcbc0ff5f6  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc
! 6b1ded049facaa0497dfe3f1398e65c5  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc
! 7de41fc21ffa137340e54f4735f22322  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc
! abbb5c4a2d68d4e288ac8997198eb9a5  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc
! c3bebed2811c2a6243f9cf71158f2370  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc
! 9a925bc656adb35b738be48b92131ea1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc
! 65302ceb22818b991b95e0bb1f56ed47  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc
! acb6297829b89cc51a11d2be5b225056  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc
! a9132db470a14eb7e2e0dafe659ca41e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc
! 9ef212152644e81c360d2164a35e6165  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc
! 70d985cfa0807fde67a37abb2af43385  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc
! 4fb6c38d7f204481e1715979923117cf  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc
! 2d20035fa8b9a99bdee743d2e043cdb2  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc
! aa502063da53134ac6678684ce8720d9  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc
! a9d5b8e029d5c8d6b2d218b19199db37  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_questionmark.cc
! 7de98a1e5ef746308c4a466e51e7ee17  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc
! 038bce7126f936b0441bde80f393e62c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_any.cc
! 0d22cc8a01e213d927ca613dd4ff1c12  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc
! 78270654f0611e0bb84ea65ebe690081  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc
! 5e3b413bb20aa7eb8998742f63af2a81  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc
! 9afdc1b06b1e51486f815a95833c24e6  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc
  738353c203eb8b056c97aefd696b8662  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
  2b65ead41cca6c486af5b12cb9181709  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc
! 3b8f9fdd1c20802a8450711be3e545ec  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
! ba6ba3391be864dd1eae88ed20201864  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc
! db8e62954cc51426c76f1e0c07859262  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc
! ee9c8fc14df7a72b35e8c8d337c00393  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc
! 6897a5ad926ed46ad3ce4e5e2778c0b8  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc
! e56a6e437fb012ae6e2fac902f23691e  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc
! b8de687a1921d554039080edb93b3222  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61424.cc
! 22b5217d65a7f86ea1775840e4c127a0  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61720.cc
! bc707db4ed975efa199db3cea4ca98e8  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/basic/string_01.cc
! 0b73855cc64e571cf92d026badf08c45  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/dr2332_neg.cc
! 450325c0f679e53342fd709515dc480a  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc
! fa38f55a780c1f90582968d4e19ec9d0  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/flags.cc
! dbc6734c0f5cbb5fd8d2360906e798c2  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc
! f4616b64e14186e8384a28d971e93b7e  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc
  5a7641749deafb9050db1a58a28b53ec  libstdc++-v3/testsuite/28_regex/basic_regex/106607.cc
  be5036bc868f3f3488b30d40a412c9c5  libstdc++-v3/testsuite/28_regex/basic_regex/84110.cc
! 52fa987f8405358bd13ae12cf9948543  libstdc++-v3/testsuite/28_regex/basic_regex/85098.cc
! f222a922624415205277f66f07649151  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc
! d889d18d8827aef72e52d93064dac41a  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc
! 2df49617c1c40820134fb6953e9a9d7e  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/lwg3296.cc
! fb42df6f1161ec548396b8f01bb6edff  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc
! 858cdee035a773980bde56fc08a6e0db  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc
! 7f1ee6930ecc528b9385f7ab5df89ab8  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc
! fa8f4d6d931b2bf58f92475d4ecfcadc  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc
! a43cbbf46084c52ee347dd0b0d1f4f2d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc
  195cadd08b447221da1077de685740f9  libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc
! ab99ac4a34e6ee4a58b2928d9af22f80  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc
! 087675162c12629519567b3d56d13812  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc
! 25c30fc8975e935a63155559e89033b8  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc
! 09a9a4b6add3ba47552df17bb4df06ca  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
! 876a469d3a3da9c9567bf490d7507cb1  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc
! 1c14d5c7ffeebbb09bda6b9906700433  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc
! df8592e9fb24a69efc76d6552d97dc08  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc
! 776ad556b963dccd1a84af2fc00bb2fd  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc
! 205de3cff2bf1e76cf4c5974108c3a55  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/83598.cc
! 7752c16f7db398fd05254e6f5757be50  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc
! cd65d07d644bbb80bbbbebae05bc3edb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/default.cc
! afa5dfaf75451f05fa64f03a62a4a833  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/iter.cc
! 69dddb31e3d833a2d1c79871be5f2bb0  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc
! ab3e834474ee64a2f42bbaeefa42395e  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc
! e01ec70844360b57a9015eeba44c03e4  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc
! 78fa1fc718f1b4c1a8295769552d78fd  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc
! cbd0c9500e25d3f66fba5f3fcb739017  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc
! 974fec54777fe3e75eeeaeeb3a2b2131  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc
! 2488171a6846952dc3e377120500f432  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc
! d67e8759783bdb5695586ffbfea21412  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc
! 72a22978b12429a83bb704c6928bf487  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc
! 28dac2791ba2adb0ed9c0e132f0bdf17  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc
  9c80b6a78eb2b9bd9362289c681a9cfb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc
! 60deb33f1f333ed2779c3cde34589db0  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc
! 757d05fbb7686bbdcc5f2f8896e0a5ed  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc
! f9d642f08a9293d886c68e549163ab93  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/deduction.cc
! 81ead07665b0389960b032a7c9b259cd  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc
! a770f5b101a22c0fccd37a6b9f17ea8c  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc
  2e401c1bf8aabcb389e6eb25f1356cc9  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/grammar.cc
! 3a74889b6a223508db855c8f6fcf9751  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc
! 276c61830762a723e334085bc089bd28  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc
! 833feea043ea99e5905c9d702f39d196  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc
! 7d839724a885d14fa2b0b319b8f65c09  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc
! 167b6a4b1d6518e1710de1a36da6f15d  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc
! caab65d5d5afac987468c06453214d3f  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc
! c4a338f0aafded25a285ae0f93aee908  libstdc++-v3/testsuite/28_regex/basic_regex/imbue/string.cc
! cb175fdb25a8687c006e5d2af0d5c931  libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc
! 904b45e1e1322123eb69c0692977c31d  libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc
! 738c53bd0c6c281008acb1a77aaa38dd  libstdc++-v3/testsuite/28_regex/constants/constexpr.cc
! 152083f8bc9df246ec146ccdbae11585  libstdc++-v3/testsuite/28_regex/constants/error_type.cc
! 4aaa50e3516feb90679dcb097c320314  libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc
! a377dee637a103a0c7da541a4c6bd03d  libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
! 52233bb72f8a3513ff1de211bd0f4d37  libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc
! 0561c146379e6d8e1911a9daf90adc52  libstdc++-v3/testsuite/28_regex/init-list.cc
! 5507dbdc22edf86111013ac9a2b242af  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/64140.cc
! f62df2102c8bf8bdc50010bf2cfc28d6  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_01.cc
! cfb58a604fd097834633c4d3e3155324  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_position_01.cc
! de83599c5fc2cde887d859e41c1b9ae6  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc
! f48d2ff95890051504e05364e9a99ec8  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/dr2332_neg.cc
! ba5c8d1c184391bce632b943903058c5  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc
! 0a3bdd5e53f0d0694d433c2c81879b6e  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc
! b9141b95278eb063ac4a8012aa877f2d  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc
! 02a20a1295e3040ff8f283815b8383f0  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_01.cc
! a35fc24f08dedc2abe18587da76d8517  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc
! 016a552c6019eeb960dc866b2ef354bf  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/64303.cc
! 69e5cda1f0be315ab091672ccc48feb3  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/char/string_01.cc
! 99c10f6bc3e73ffa113065ee15399186  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc
! cef2bac66bb24eafff7c5e6a4b8d006f  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/dr2332_neg.cc
! 4d06dfd88414df10148f90698fc4812d  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/wchar_t/default.cc
! fb122acef0bbf0fc9a70c958cb5bc819  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc
! 9474ab00213c114397ec87dd396a87c3  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc
! 1e472d2a0b685e8b63065a054ba5e4fd  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc
! 165979500099ba208200468fc4b26526  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc
  e50868497a6eac9c6a7e389f3cda11ef  libstdc++-v3/testsuite/28_regex/match_results/102667.cc
! ba98ba8993963b2cd9174ffa3d4a6bd7  libstdc++-v3/testsuite/28_regex/match_results/94627.cc
  ae3c69a2af41b63301190a3e8902a808  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/alloc.cc
! 9f23f50a8ed9a5001695ddff75f8318d  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc
! c4f584955d8dd63673baee13f148286c  libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc
! 47bcbfce41476b778cd3da7a12e71fcf  libstdc++-v3/testsuite/28_regex/match_results/format.cc
! 0f338d28321b3ddf08f40792a38f8886  libstdc++-v3/testsuite/28_regex/match_results/out_of_range_submatches.cc
! 0af1b8a486166b70fde29bf6eeb43845  libstdc++-v3/testsuite/28_regex/match_results/pmr_typedefs.cc
! 787b7b6a739b71e53648ff2d8b60b055  libstdc++-v3/testsuite/28_regex/match_results/swap.cc
! ffde007c6938bc8cec1639560e1d558a  libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc
! b3592a04373d2aba0ab067b22e4d21e7  libstdc++-v3/testsuite/28_regex/range_access.cc
! 2aec2ddce80eaa4ab845630e47e4ac06  libstdc++-v3/testsuite/28_regex/regex_error/base.cc
! 27cd8d506184650b1d8b65992457307d  libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc
! 366ac702b56bba428fc570f067d08310  libstdc++-v3/testsuite/28_regex/regression.cc
! e9b10ff8efc646eabf72fef859d601d9  libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc
! 09bff016ca5654efbf2791a07b82fa32  libstdc++-v3/testsuite/28_regex/simple_c++11.cc
! f50e09064215940e5e82916365d568ff  libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc
! 07ddc4933ed5fbbf1cdb5328596e1445  libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc
! ba7c47e76e4c1d27713f9a985588697a  libstdc++-v3/testsuite/28_regex/sub_match/compare.cc
! 03ab7943fcf6ee4d4b664616522fde62  libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc
! 6f9f743d4b9fcb2854915e3a8a617e24  libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc
! c603b8fb7aec5ae63924812dc1edf032  libstdc++-v3/testsuite/28_regex/sub_match/length.cc
  491895502310c40d3c4fac8105f3662c  libstdc++-v3/testsuite/28_regex/sub_match/lwg3204.cc
! ec10e30afdbacf87bcd3810af3e74ffe  libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc
! 404dcfbc3b8a41674f638e61308bd59b  libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc
! 86ea626f6cc0aba336fce42f1c31f91e  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
! a23c74f3155c08ed15b94ccef0110648  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
! e65c86e35aa98d89af2d0d4821849d13  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! e0eaeb2070d51ed1a2fa6e0335ebae58  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
! f11d706b509d8544d627e0c42c82bcec  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
! 7f45c98e5c6216d6c9043c6fee8abc77  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
! ec11d74cd5b5a85eeadfa2d29822974c  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
! 1696d6bfc28dbb3578a1397e4c922ff0  libstdc++-v3/testsuite/28_regex/traits/char/translate.cc
! c229441a6b9412a411af92df8cb9fcff  libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc
! 0983ef4814bf100d6b95cc38d0623749  libstdc++-v3/testsuite/28_regex/traits/char/user_defined.cc
! 79995d5b106f992f1fd4ab711c7b206e  libstdc++-v3/testsuite/28_regex/traits/char/value.cc
! 93e01bdb645b166795c7c8ddb019a10b  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
! a89c9f8cd50d68ecaf126b9858f7995b  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
! 9384b252022c8d9da6684804800cdda0  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! cd5126f9c5ad6b8cb535bfd57cbe8b52  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
! cd3e4277112dedc21b28652e82be6e19  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
! 1a5028cf454360f77c96426e858ccc00  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
! 7c2d4a83ca9ff19a609bc50bb7e23d5e  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
! 063ffe93d88ee0d34eee4602aaff3059  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc
! ca19e1aa05d042daa70d8056273a0365  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc
! 5f37c2890889bd9914bc2c927ad6ab25  libstdc++-v3/testsuite/28_regex/traits/wchar_t/user_defined.cc
! 525e6f65e38780eb1e10717152c66da9  libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc
! a0437ffd2251147e9eaea75fd0ed2725  libstdc++-v3/testsuite/29_atomics/atomic/60658.cc
! 0cc61c74f1d0b0d73e48a42e5227e48f  libstdc++-v3/testsuite/29_atomics/atomic/60695.cc
! 11febc4b27be85720e5c991a85d43891  libstdc++-v3/testsuite/29_atomics/atomic/62259.cc
! 1ec7c4740ccb77eb6dd43301102d1be1  libstdc++-v3/testsuite/29_atomics/atomic/64658.cc
! bb1893529216ccfd448782acac5863b8  libstdc++-v3/testsuite/29_atomics/atomic/65147.cc
! 8fb9419833f256eb9527c8a84d8e23e2  libstdc++-v3/testsuite/29_atomics/atomic/65913.cc
! f1800adc0fc13bc4af222b5b2c2667e7  libstdc++-v3/testsuite/29_atomics/atomic/69301.cc
! bac63bc83699602fe139dbfa683b9402  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
! fa7c4f369fca094c91b1defc0937aa75  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
! 546783f34bc4e159f0dde6b2f07be089  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
! fc6d3820caef39ab514f64ef5ba6f4a3  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
! bb4c8750d06e6cbcf2c116c8d2fdd3d1  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
! 79087b369afb5044402aed88e633298f  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
! 609e231d71e19df297467442a3bb556e  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_list.cc
! 1c41272a2ddf74ee20eea5e6e0a80361  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
! 38a06c2593b607e31f11cec14f32feb9  libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc
! 145dd9b0c05cb08436356c84fd5bcb9b  libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
! 4251989d2e19682c01faed5c294409d4  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
! b3d7e6cfe8b8bd01758e4c07a4c28005  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
! 13669ce9c3b9fc155b9c347927c5d6f9  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! cbcc81eb663d244bc37286ed070abed1  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
! 1405fe779f482abe4dfd50e50b9f6d04  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
! b098b856e7a62fed0201c9aa38383951  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
! 49a2da10533da4b97b0808d9c2d3476b  libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc
! 4984e72a7e9e5b2604b5f175792732f6  libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc
! 2e187cdda2c2f790f393d8d699b92fb7  libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc
! ae840ccf0af6934dbbde738ec809e02f  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc
! a887400bb1e9f2b6ea05c843123dffa3  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc
! 4d40225805917ecbab6ad4fc04fbe293  libstdc++-v3/testsuite/29_atomics/atomic/operators/pointer_partial_void.cc
! 685fd3c2905d08a140af306a519828d6  libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc
! 396165438b8a4127ed17303af33b9805  libstdc++-v3/testsuite/29_atomics/atomic/requirements/compare_exchange_lowering.cc
! 325950efaaee2874f71eb8c19dd3bfe4  libstdc++-v3/testsuite/29_atomics/atomic/requirements/explicit_instantiation/1.cc
! 3884efa49f4fb2439133884c8c195478  libstdc++-v3/testsuite/29_atomics/atomic/requirements/typedefs.cc
! d96bcc0a78598ed793ff143f25a183cd  libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
! 8332d787e8d046d4161b52f1a9bac432  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
! ef205a3cdab3bfc44fb84b6b02ff9601  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
! 966de3089cb547ed08693d8cb66636e5  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
! c4c61c274e2c6ab8851f938bccf1530e  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
! c9c5687b83d5e66a805ffe950cac83d5  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
! 3cd35f0fb4be1f9d955b300649eece97  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
! 2e708678e0222d474e226cf7e3e2480c  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc
! a481f362621516d6e7f08e7c27f9f0be  libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc
! 64912eb65ab12d178201345f15f6d007  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
! ade1e711ab9abf2c4deed333f3319a06  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/56012.cc
! 7f1c3cad47e3e3599b3aa70f611ef10f  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/aggregate.cc
! e02acd19680af8b02c79639a67fbe589  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc
! 31359feb76943d0b77ee31ee232aab33  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc
! 91de152c96e55b31684845b480bf75a6  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/default.cc
! d65584f859fd3f5d44fd0ea0eef8521a  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
! a3996d054f45a5d39813fa14a1913062  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
! 9b717a09a21802342a6ffa37174854a9  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc
! 8a4149d17511a47d1dd7ad18c9a940df  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
! 6518d104b0a1540997f3363ef444f78b  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
! a7e842dc57d00f08640205c0afdf1ef0  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc
! 70c717ede6f035458e5fe901c2ca036e  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc
! 70c717ede6f035458e5fe901c2ca036e  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc
! ba055235b4019b20e51a055808cd5185  libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
! 4bcf4eb632a05014b615f94fc21a8b1e  libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
! 468d28b2af26b209bc54a51ab61651e8  libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
! f4bf6e41d3315cb24f0f3f54aa7fab2d  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
! 86adafba8fcc53fcf11ad93ba1567b43  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
! 5953dc5c5d12c38e65115bb78350edb6  libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
! e88e2a7e86fbab56f8131d3b1d7a5965  libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
! 973ac4e1dddb4df7b2741790d2116e12  libstdc++-v3/testsuite/29_atomics/atomic_integral/60940.cc
! c12f4d2f7bf992fa705068b8c88fdd16  libstdc++-v3/testsuite/29_atomics/atomic_integral/65147.cc
! 203869e1aca18fc2d01ac78c0818162e  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
! a57d62b54106add4ce5f78f9b5901b3e  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/constexpr.cc
! 7a13e3f2b6f5cc5f7887f17d50ae2c3c  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc
! 9854d7b3ef012233b67dfaa40a09461b  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
! 32c002f1f7663b0d110b8d76fd958bcd  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/default.cc
! 13f22896a0868af4c59b25e209a40762  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc
! 3386f4a287cd39f5dcb21f016448fb7a  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc
! a2723c5c19b1b7f69742051c26cd873f  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
! d02c9a98e792a4c791cc5a80f72372a7  libstdc++-v3/testsuite/29_atomics/atomic_integral/is_always_lock_free.cc
! 37d61df3cb659fa4a996968f22f05dbf  libstdc++-v3/testsuite/29_atomics/atomic_integral/nonmembers.cc
! c8087fda6e1c29a30a26d21be01b9589  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc
! 55c0702f57ccbd329c11e713b5b26ccb  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
! 5830e14e6bf4dc3059291b072316cf8e  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc
! 2e573630ca8e5b62279c7a1653b061dc  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
! f69f133908f507fbd2530f48eac95511  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc
! 63c5321a69f2ccdf7ec2e98303a764c3  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
! 344f8151bf31e1a9eb9df8290405f1dd  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc
! dba5c3315f2fbdc692a08cf8c0787753  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc
! cad933dc6b8d28e8f17d1aa09d35416b  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc
! a302b840589967dccba2f05e0a5ee9a7  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/trivial.cc
! d7a5877c1aef09d115633f941ef5ca14  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/typedefs.cc
! 412190e554579a434cafd4a213125119  libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
! 5ee3f4d73ee435a85ab465063c47674c  libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
! 5810f61a2ac185ef5f7a713d103bd3cc  libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
! 52249e8886c8bb5b8296790eb58868bf  libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
! 8f49986e56627fbfd4c35c35fab2db46  libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
! 1a4fb50cf97e848d6a245df8db7c57ba  libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
! e57f2e6f9ad1caa6f0ee98233fe4f403  libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
! e1136a1bde5040c5511cbef83b6780f6  libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
! e23b2883804b35ac5891e75b0a975de3  libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc
! 931d165ceeb9375465cbf872d0ba3677  libstdc++-v3/testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc
! 3f68fda9475eca1efb2fbdde19efb570  libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc
! 87f3f98420393aba0d685628df54dc38  libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc
! 3c155684b5be2643ba914135ca9a8730  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
! 0a5cad4cdf4a2fae69b7c6faa1eb90b6  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc
! 4566576dc6d6bae28ae5974d8a469277  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc
! fd9969b7cdd62fd1e119db8e8bdf6cdf  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
! 5af271ea2712313f414c78333645649b  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
! 50832c30dfcca0b9130dbc556cd6e491  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc
! 8f793a0a8dcd336f7edd48cf780787d8  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc
! 0b170396131d3e657e1f9d0dcec3429f  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc
  5b1af9fe172aee7236f683fc11c916e0  libstdc++-v3/testsuite/30_threads/async/106695.cc
! ffcc8c4853db30645b820c1a263751cb  libstdc++-v3/testsuite/30_threads/async/42819.cc
! 263623dedc1de7b9d585b4aa8594c77e  libstdc++-v3/testsuite/30_threads/async/49668.cc
! 03132a26b252877999bb0d0e841f1c00  libstdc++-v3/testsuite/30_threads/async/54297.cc
! c3fc4b756843551c6f1f5eb4c62e1a85  libstdc++-v3/testsuite/30_threads/async/69724.cc
! 448edb9844b3be90825f224e4363b01a  libstdc++-v3/testsuite/30_threads/async/84532.cc
! cb80031d15eb196e1ed5f00fc82098bf  libstdc++-v3/testsuite/30_threads/async/any.cc
! 0b96dbc4029ee80e7808034acd4760e3  libstdc++-v3/testsuite/30_threads/async/async.cc
! 40e72df985a688c5960cf0a8d916fe39  libstdc++-v3/testsuite/30_threads/async/except.cc
! 668b3a3df0c2023b5121dc6aabfdb977  libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
! 0b976ad7ba419d327a3687fdc831b06a  libstdc++-v3/testsuite/30_threads/async/launch.cc
! 6163a48c3b6d2d3e29eceb8b7576dccf  libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
! 6bb72c92e1d307fb2cfa22c14bc81bd6  libstdc++-v3/testsuite/30_threads/async/sync.cc
! d21888c76834f1e0d69c38892db35d5a  libstdc++-v3/testsuite/30_threads/barrier/1.cc
! c6f2c6d43c16d733f7fe93b63babda0a  libstdc++-v3/testsuite/30_threads/barrier/2.cc
! 61a7b444609803c910d0089b5bb1034d  libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
! 6b594ad80145c0807af236d062f038fe  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
! 82d7dd313b57bd9f33d4b2013c2ef74a  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
! 36a81fe851bd52ede03c24093cd2537d  libstdc++-v3/testsuite/30_threads/barrier/completion.cc
! 209ee176c1842eee44e4d7f77602f492  libstdc++-v3/testsuite/30_threads/call_once/39909.cc
! 2de4b237e5d37c469f06bb76aac2c2a2  libstdc++-v3/testsuite/30_threads/call_once/49668.cc
! bb0de3ec38266058e4de074e5d2e61f9  libstdc++-v3/testsuite/30_threads/call_once/60497.cc
! 67fbdc30a7feafe06947b9c9f6a0141a  libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc
! c055c3f3ac8e6b70eed6f739372ad6d6  libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc
! c09fcc585a91aaa0233f074071e8c9cb  libstdc++-v3/testsuite/30_threads/call_once/once_flag.cc
! 5e4b00c95d0da1d5c8dcd6b26774c0e5  libstdc++-v3/testsuite/30_threads/condition_variable/54185.cc
! f26ef8b7dacacbb88c5c6f1c2c6bfe13  libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc
! 4a763d993b570fe7b7e8c8965c538af5  libstdc++-v3/testsuite/30_threads/condition_variable/cons/assign_neg.cc
! 4ee8381167ad5a1c77d0a571decd83fd  libstdc++-v3/testsuite/30_threads/condition_variable/cons/copy_neg.cc
! cca1064a1b1bdae45d1453fb7037bfb2  libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc
  a22ffec2ff77db41215e429fe83d58ac  libstdc++-v3/testsuite/30_threads/condition_variable/members/103382.cc
! 7a8c459926189b53330189fea1f51bfc  libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc
! c15ff674be5b5716e8d924f4ac34a306  libstdc++-v3/testsuite/30_threads/condition_variable/members/3.cc
! 197dee9efcd5950c956753cbfd0b90bc  libstdc++-v3/testsuite/30_threads/condition_variable/members/53841.cc
! 6df6f9662a69a06410e0df4851478219  libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc
! f5e8503613f99f30b107d4945dca5a94  libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc
! 7a1f3eccdae7c14f76919552dce0b4d3  libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc
! 8c542429c0da9e6d6fe48ab98e82adc3  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/standard_layout.cc
! a964d36a769e06049de6b0296c99a2cc  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/typedefs.cc
! c4e515a8d877609e444900a380a1d313  libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc
! 97c4ef5ba606e04f75d41bcd5796f8b0  libstdc++-v3/testsuite/30_threads/condition_variable_any/53830.cc
! eacc56e431f150339366c1f2aa030e5b  libstdc++-v3/testsuite/30_threads/condition_variable_any/cond.cc
! 3a6cb6c2c11645630959a29fd77231c2  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc
! 3874784a675a87f52c3cf9be2943ab10  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/assign_neg.cc
! 34cfa82c8c4b2ba9a91ab47b27ab569d  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/copy_neg.cc
! 426b99caa56de16f92a3adb370827e79  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc
! 092db35be8819041f386b2b64e9efbc6  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc
! 84c36c19d107c6ccf38fce9419c9af37  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc
! b370e389987ae545dd0048935e7790ac  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc
! 0de668e76a677e1315b6bb90f6a6395e  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc
! 4a57724fa7a485af69d8ced4e34e588f  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc
! 784196ef44aec4b61177ee46d46ee075  libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
! 92e88ca50c9ce6d130f6176648cd6c30  libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
! eed866b1ac338410533c7f661a852403  libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
! 6c56a64c4dd0499b61fdb652de802c08  libstdc++-v3/testsuite/30_threads/future/cons/default.cc
! 9384933ea2bd7be29e855c357593d3bc  libstdc++-v3/testsuite/30_threads/future/cons/move.cc
! 4ad4a80615e7c82771546bf3b43d3ce7  libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
! 7ef0128f3cce4588b2583ceb2e953abb  libstdc++-v3/testsuite/30_threads/future/members/45133.cc
! 9755ccefb356c567fde1743d0a2ea121  libstdc++-v3/testsuite/30_threads/future/members/93456.cc
! a0a58329eb9d9453778ff24db5dd3451  libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc
! 5cb1b7c2729f362633f9b019ea19e6a0  libstdc++-v3/testsuite/30_threads/future/members/get.cc
! 9dfd942dce0dc1bd1f0491e970d2878a  libstdc++-v3/testsuite/30_threads/future/members/get2.cc
! 12d8d96e5ad239ef2947364f480e7510  libstdc++-v3/testsuite/30_threads/future/members/poll.cc
! fb80ff24016082f93ea5ed8af9ab8f43  libstdc++-v3/testsuite/30_threads/future/members/share.cc
! 7222a6f6b24ddc131daee74bb4093c22  libstdc++-v3/testsuite/30_threads/future/members/valid.cc
! 22ca09e23a0f4eba2bccd60f1c657c16  libstdc++-v3/testsuite/30_threads/future/members/wait.cc
! 8dfa76cf9a249e02b072a18d8688dc3d  libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
! c0953edc97b2cce3b7450880e5b57c68  libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
! 4f923423f2c2aa258a0abfb2758e51cf  libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
! f0837e422ad34b14fb14ab1231a3fbe5  libstdc++-v3/testsuite/30_threads/future/requirements/lwg3458.cc
! e6dd2c4c3601e62fb50e5766be10e109  libstdc++-v3/testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc
! 78a5a6624c1e0134273cbb46eeef9b38  libstdc++-v3/testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc
! 7e6c64f16cd03019e9eb06acd426bfde  libstdc++-v3/testsuite/30_threads/headers/future/std_c++0x_neg.cc
! 9512dedbdc4d824d1a24e60afa169e74  libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
! 40adc7b3600df120586684f37984abc4  libstdc++-v3/testsuite/30_threads/headers/mutex/std_c++0x_neg.cc
! 69226a77329fde66ee492fe3c0eba086  libstdc++-v3/testsuite/30_threads/headers/mutex/types_std_c++0x.cc
! 704bf53546f1483a37f923d91c7e519b  libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc
! a529c81d9506cbd07a3c44d27944f78d  libstdc++-v3/testsuite/30_threads/headers/thread/std_c++0x_neg.cc
! cd46cb1e509db2784e008dcd552f1d1f  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++0x.cc
! 4bfc2095ddba98c8379fab02a4bd5e05  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc
! 57f12556d2bc7671f104392326f3fe00  libstdc++-v3/testsuite/30_threads/jthread/1.cc
! 0e687b9098ebccb04a9238c84c6e0cac  libstdc++-v3/testsuite/30_threads/jthread/100612.cc
! eb655a74d23211131b40198e74bf5ac5  libstdc++-v3/testsuite/30_threads/jthread/3.cc
! 7320055d0474be214f5b9caef955bc2a  libstdc++-v3/testsuite/30_threads/jthread/95989.cc
! 1eb133b88e71c9f0088aa94823f3f6c7  libstdc++-v3/testsuite/30_threads/jthread/jthread.cc
! 7759ba790304c4c11074747c2a309aa3  libstdc++-v3/testsuite/30_threads/jthread/version.cc
! b5307f946d4d5c76cd6865ea5c13f605  libstdc++-v3/testsuite/30_threads/latch/1.cc
! 91d76d25f75d3cc7b9cd52134767a6b5  libstdc++-v3/testsuite/30_threads/latch/2.cc
! 12a25206e3d7c891dd20e703fcb63ae6  libstdc++-v3/testsuite/30_threads/latch/3.cc
! 87783bf1126576f55dfb160043fd8b5d  libstdc++-v3/testsuite/30_threads/lock/1.cc
! 13ff6e4d8adef46cf486938ef59e98c6  libstdc++-v3/testsuite/30_threads/lock/2.cc
! 6bf3a8fece9ef76190e32d71c14bb8ca  libstdc++-v3/testsuite/30_threads/lock/3.cc
! 2b501fd8cf8fe1fdc488158643c33564  libstdc++-v3/testsuite/30_threads/lock/4.cc
! d0f45f86fb443e086c5822f1ab7d0be8  libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc
! 85f7f853de14bb76a7f6d5cd13ee269b  libstdc++-v3/testsuite/30_threads/lock_guard/cons/deduction.cc
! 70b54ece564842f8a336d73ae0ca5d8f  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/explicit_instantiation.cc
! f0530fdc4a9aa38fb91cf8cdf32d488f  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/typedefs.cc
! 4cb68f02d9c60cb46453a1784aa46115  libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc
! 6eec158688ba2dad98b053982f054ff9  libstdc++-v3/testsuite/30_threads/mutex/cons/assign_neg.cc
! e319a9328b30baba4390d55067cdf788  libstdc++-v3/testsuite/30_threads/mutex/cons/constexpr.cc
! 62acfd53c8f1f356a9a4f222e53da2ec  libstdc++-v3/testsuite/30_threads/mutex/cons/copy_neg.cc
! 0bb82c55b25e0fdca73d8316886d3fcb  libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc
! 300e68b8cf5d2b1a1289076b2d9de6bb  libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc
! ea5456a36c5e0fd843924cf56ac6333f  libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc
! e1f6cf6ba1e075806e5b2223faec6054  libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc
! f2928557ecb99f426e7d40db5831f57f  libstdc++-v3/testsuite/30_threads/mutex/requirements/standard_layout.cc
! a93f51049e87a73f29a0894b4a30e400  libstdc++-v3/testsuite/30_threads/mutex/requirements/typedefs.cc
! 9fc16624a1b36aa33f103840fae3f72a  libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc
! 3dac7d2ff7fb574fd3ad1628af3e0959  libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc
! f9a4d939bd720a555163f5c47d37d488  libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc
! 53c8dba809f1ca2fb9b27528571e3540  libstdc++-v3/testsuite/30_threads/mutex/unlock/2.cc
! 319730e80ce0570dee2fb76fdffe905b  libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
! 3ad33b1d63641d99703f45e33ecbb1de  libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
! d295bc565cae92788933a37be483686a  libstdc++-v3/testsuite/30_threads/packaged_task/79486.cc
! 23a997c8dff827979cece71e19b9ab2e  libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
! 7f73e37273e82b149d7d6397aaf6130e  libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
! e38333052664e69b29cdcf94b5c40e9a  libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
! ec9742c4ebf3ebbb44b749d2531a5663  libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
! 41db274d023976fa92f9e00ac282e603  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
! 01e5dd9389bb2c88f912f541f748990d  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
! 7540f2b341063052e4df53869279ee45  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
! dddb363f2af857ee886931090f04a0e9  libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
! fffd1a2ac1e1511f07758374b0a52634  libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
  61b6c7d530f3a7caba002211060c13d2  libstdc++-v3/testsuite/30_threads/packaged_task/cons/dangling_ref.cc
! 48cc935edc69d935cca8954e4fbdd516  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc
! ffd14d059aa80609474213055ab81174  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc
! 8d56e36cfac6fcb25640519b5ee5516a  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
! 2ad6881c9f55bafe44a395de405b4846  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
! 401e3736e1d81418394c9af80040d8ed  libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
! 77ab0dac1cb6ae7a33c1ac501c35db3b  libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
! 4bfc6f7d44026e32d9b7e60c4b15d000  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
! 5c89453159dda652263c1e02e397ccd0  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
! be2cd560585eb1bc5721d9d70f12990d  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
! 355453e8f5200d484e0bada5813bae95  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
! f632e1066062ae8f9a66ad8f3bf3e8fc  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
! 3c6a5e7c8352a9bc104e18eb895bf387  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
! a607b7e878fdc71132224eb1a9c5ffd1  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
! 6442d1b19b5d8b6e335208c9fb7b54ec  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
! 2b8aad9585033ef635da957eaa7825b7  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
! 9df22703391b827627eb90a200d4aad4  libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
! 776b912922cce57a3f338adcbdb4a7d2  libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
! c1e53279255bca2de37cbe1aca91dbae  libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
! 1d3965631e1e2bfa6021762732eb2e53  libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
! 8eb06bf809a2325a29d7e1e049915d1b  libstdc++-v3/testsuite/30_threads/promise/60966.cc
! 42fe33491000d70497b31453690aa23e  libstdc++-v3/testsuite/30_threads/promise/69106.cc
! 929ed15bb9170a9c4031c26bb2f77b6b  libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
! f2e3d672664c345c337b1d5a1612f3c6  libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
! 3cd1fe7f5fb4b980eb2c4b91d19296cb  libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
! 973fdff82010a4b1d838b2125840915f  libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
! 2f21c9373f67fd7a8f2847ef2a12c746  libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
! 6b57cfca5f9064a7bbddcc71d9d317db  libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
! 2da3b66a3c4a81898e8a709635ae722d  libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
! 8d297bf36b4cf9757aad9e92bde5d81f  libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
! 28b546a83f50e7e78f6bc0caea181280  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
! 5c0ad3ed19b9e32ad4809188423193e0  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc
! 223170d7c395845b8fc57870d9514620  libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
! d278acb344f1bc7a31754309d49e42a1  libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
! 094d41429cff642200c91916bad4ba8c  libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
! ec5db04c1fffce07ae932290792044ee  libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
  8d747bcd5afe04faffaed0b4915aa245  libstdc++-v3/testsuite/30_threads/promise/members/set_exception_neg.cc
! a879a3e6de7d8c01ca16336ed3f484e1  libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
! b41e71c238a50b30de82867e0622ebfd  libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
! f917687bf6fa06afd10be857365f2bd0  libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
! 149fcc953d0ce014720ddf7713267fc6  libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
! 894d58b5c76667584973c4cbd8ddf7f8  libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
! 3ad8116e82bd32874bdb889e7bc28bef  libstdc++-v3/testsuite/30_threads/promise/requirements/lwg3466.cc
! ca3dfd9df276cb51bc90b9024a0860c0  libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
! daa6d64fb61bb23c4cc4d2f3c895122b  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc
! caf1eadaf9248723e16661df6194ad7d  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/assign_neg.cc
! 4f1a70ccf8a5c8a8ea622acc672dfb39  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/copy_neg.cc
! 10369c9f95ed400734c995ec675dddb9  libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc
! 5c08ea06629a96ffbbca6cb53cefb1f6  libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc
! e9caa71d475ce002da5764c8db234b4c  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc
! f0d27838adca2938ca3bc002e9186f17  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc
! 8a4403d237e3f3d791dba4f858e79ca8  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc
! 2734060b3641755682aa76d0988080cd  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/typedefs.cc
! 5c543ea1513631a0b9a4eec47c4c8eb0  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc
! 55a3d28db42b4d107cd490c015578044  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc
! 01c1111264da989837d2bc3e97262b0c  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc
! 118214f6f0a0f1f4abc07eecd09c26db  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/2.cc
! 87efbd42b165477d1919a5fd9333fc72  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc
! 7a80f63a5d70276943b843b7024cb9a4  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc
! 3605707c3d69fd4325dabbd42bbc24e5  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc
! cdc1ea21812cdc36e50ae8bfc4d48932  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc
! 690242e25ffd3fa29fdc74a435957b65  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc
! b6cea0ebd41b2b7f2d568e455d815006  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc
! 6a692c56f743c4de71cbddd7caf985ee  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc
! 9d522ac822d28e1f4993a9ee45b92419  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc
! cafcf76480010d500f7c63bbea5b10f0  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc
! b08574c2ff191cde3982e41f02b89c4a  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc
! 3d0fec1516eadbd1621bd470a4c676ec  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc
! 8b9dbcaeb9793f9314e1c968de602c82  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc
! 700aebafb55ea807007ca87a36c06883  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc
! 821bcea29af61b640e6e8580e69c74ca  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc
! b08574c2ff191cde3982e41f02b89c4a  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc
! 5a67b196ea798a3ea8293c9bfe0b1207  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc
! 6a5d0ce2f0356df870382b9802f9c811  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc
! dc2f156789e19d7f663e7ce437a42ac3  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc
! 4939a8080fafdbddf9ec11859e5976bf  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc
! e9ae4f829ca3eb545adae850492f8b4c  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/2.cc
! a282820a0376fb2a5c75778814d234bf  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/1.cc
! 1bb2dc042de69b616c169fda99e13e2f  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc
! dbb1eb85ab8ef4aa20bfccb8983f6a79  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc
! 9ce137558b4103147d95832715a99038  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc
! 347276b499f6275bb1db3d73c2446b2e  libstdc++-v3/testsuite/30_threads/semaphore/1.cc
! aa7e8d9c8ac0cac38e0e7e2928bb61b6  libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
! ca60625ef2b8bce5e88dd420f7c92e1d  libstdc++-v3/testsuite/30_threads/semaphore/2.cc
! 33301c1f259fd92cffb84261825c9f2d  libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
! 160645eb27139dd244bdb974bdcb5be7  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
! d8aed3a57ddcf8c0c915e04cdacbb3af  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
! e37ecc03c6b285a832c5651df3c8766c  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc
! 40e8ca89f7592d092d5ab9ffbd3783e5  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
! 3b6234623cd2d5aea8027df87bd63bc3  libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
! 10f0b74d28839bca94a42583336efd8a  libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
! 2c4a657a6d9aafc8c82d0fa7cb00a11d  libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
! 46fd13ec525d006f4061240911c815f8  libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
! 759041a5dcfc0f13a4d0185ab06f25ec  libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
! ce1186b44421ec97cec50b5dd896b29d  libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
! 0f309063726209c9a0759b8b9a9e48d5  libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
! 78f739a85a5949e03db51739e34058fd  libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc
! 17d0cc2712ee9a1c8e0e2779d517d97f  libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
! 412a6d9c6e2ae4933c03b44f64253642  libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
! d7a9b0e411b9465dc51771d31591bb04  libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
! c755a7c59c57a7c7cdae41619b59491f  libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
! 545e6c7148cd5a5020171b00671115d9  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
! 25a57e6c50b6babcdc692c6cfe1d606d  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
! 6155dc57560feae6c3602b0c8d3e3fe1  libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
! 9f91160a648844384aefff2ecd72e871  libstdc++-v3/testsuite/30_threads/shared_future/requirements/lwg3458.cc
! 82804c7994f5f89a3a8eee6d5b25c1db  libstdc++-v3/testsuite/30_threads/shared_lock/70766.cc
! a73856d4590ce538fe9edc4673e03c3b  libstdc++-v3/testsuite/30_threads/shared_lock/cons/1.cc
! 7db0ca067ce0b28ef59d70ee8f130c21  libstdc++-v3/testsuite/30_threads/shared_lock/cons/2.cc
! f13b5a07a73e3b6c2df9424c8b36e909  libstdc++-v3/testsuite/30_threads/shared_lock/cons/3.cc
! 4448ddaea1028453996a7968ac1b96af  libstdc++-v3/testsuite/30_threads/shared_lock/cons/4.cc
! d3736bf6f48b71609b1301f1ebb54f82  libstdc++-v3/testsuite/30_threads/shared_lock/cons/5.cc
! 194232fd1b1d36b985a7d9832ced43fa  libstdc++-v3/testsuite/30_threads/shared_lock/cons/6.cc
! 28d0ef9dfd21aea280f633c17b86b470  libstdc++-v3/testsuite/30_threads/shared_lock/locking/1.cc
! cd2f5fee7ce458a17272a6eb673c6483  libstdc++-v3/testsuite/30_threads/shared_lock/locking/2.cc
! 6420d168bbee85da48953721f64710f9  libstdc++-v3/testsuite/30_threads/shared_lock/locking/3.cc
! 174db1fe9624895ca5551e0a01b2f4bf  libstdc++-v3/testsuite/30_threads/shared_lock/locking/4.cc
! 21467e78b84c85fdbb8bc6d5c0d82458  libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc
! ebe6478fe59180b007236461166a29d4  libstdc++-v3/testsuite/30_threads/shared_lock/modifiers/1.cc
! b40fcefa29ec4ad26d5eea628a2d46b0  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/explicit_instantiation.cc
! dd6c05626e5b23d2f8590dd069b21f85  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/typedefs.cc
! a5f59a7daf88f2f4da887aa835d96d4b  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/1.cc
! 959b0197d9dd04e3ad3a865e5b0bc0e9  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/assign_neg.cc
! aa7a07bacd480044cc828812d0e04a06  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/copy_neg.cc
! e06b54bce12a8923e328886af7c52d78  libstdc++-v3/testsuite/30_threads/shared_mutex/requirements/standard_layout.cc
! 6320be6c45e051cc087aa4e2e6c3e528  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/1.cc
! 8f871de48c4ef30a59f415055dbb675c  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/2.cc
! 0f590d4a4728802758f1bc7a134d2251  libstdc++-v3/testsuite/30_threads/shared_mutex/unlock/1.cc
! 89fb9132c80fa7fecf7ecf6f3a3b1ed8  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/94069.cc
! cbbfa779ac0d43725b7eb70df13be243  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/1.cc
! 97eb9bfc7b1233406edf4fbf5b06ef3f  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc
! 983bfd2c75bd29682ea6873b76b5b447  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc
! 5f0c2fdd33d74c73aaf18e7907942eaf  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/requirements/standard_layout.cc
! bf9b136ec2da2774b1a8fbe5b58c5677  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/1.cc
! e1447cd7ddf030835e84d64fa2a2b76f  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/2.cc
! 4acdd401e186fbdec7a6a6030387fb5f  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/3.cc
! 8671e8175cf4c838c7e06d3fec9f9fd1  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc
! a70a30f3044b9969b5d9012598cac710  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc
! b832b69270c0dc70de20ad98d594b284  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc
! 32561ba523def82147f7879d9e7f40dd  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/unlock/1.cc
! 4d20a098c0c2ffb247a7749548e9c419  libstdc++-v3/testsuite/30_threads/stop_token/1.cc
! 0de668e76a677e1315b6bb90f6a6395e  libstdc++-v3/testsuite/30_threads/stop_token/2.cc
! 97a7a3908977ed614c442d9dda08f615  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc
! 900777c86cb887116afbf73b39b04599  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc
! ca5ea0d4f1639bebc02764d75ccec1b3  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc
! 799ca72423b12340daedb73a726e5751  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc
! 6efb33da6fea19035fd00a38b8708a4b  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc
! ddf5294bb099b70e7b310463338473ef  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc
! 8f6c19ea21b900be5e035e78fac19594  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc
! afc6b4ad3e3b3d2f09badfb84af5dde3  libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc
  97c265fb2eb60646be155e18f47b2f61  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/109339.cc
! 4814676637506565d26a38a087f28aa4  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc
! 3980a43b221b630dce5c25ed7c53fdb2  libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc
! 6e0e0ff6622cbde030019c06fce3cf5b  libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc
! db9d3657a1f041c772cfd718ecd78491  libstdc++-v3/testsuite/30_threads/this_thread/1.cc
! 6a9bcbaec8b8e87bf17fa130cf9e0b9d  libstdc++-v3/testsuite/30_threads/this_thread/57060.cc
! 47609628c5931a56cf4680e03f7a90dd  libstdc++-v3/testsuite/30_threads/this_thread/58038.cc
! 79e8d9bf933c053c2c17a46cc40032ed  libstdc++-v3/testsuite/30_threads/this_thread/60421.cc
! 8bfdeb31ee7d83ef100663f6e4814f94  libstdc++-v3/testsuite/30_threads/this_thread/95989.cc
! 0a475139000aa581670ab577b06db3b5  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for-mt.cc
! 8b26e96b2e73049da8704eeb829d24d4  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for.cc
! b62f79b06aa1c48084b077d8b16867ce  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until-mt.cc
! 4cc055b5def70b3cee96f79ff213c4c8  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until.cc
! e6cffeeebc401c19fe573650ee7a5693  libstdc++-v3/testsuite/30_threads/this_thread/yield.cc
  01f0a9872e8d09e04052489193a9e1e9  libstdc++-v3/testsuite/30_threads/thread/106695.cc
! dc417d3a01537dea2db09f884905467e  libstdc++-v3/testsuite/30_threads/thread/70503.cc
! d841e0041ecfddb9d29b807d94e74ac2  libstdc++-v3/testsuite/30_threads/thread/84532.cc
! 9d915ec47e4e81f922aa5217972175e8  libstdc++-v3/testsuite/30_threads/thread/adl.cc
! 8c6057524171adaddc4b9cf316346249  libstdc++-v3/testsuite/30_threads/thread/cons/1.cc
! 39c96bb91f85d9ba70c522ee1e3ec448  libstdc++-v3/testsuite/30_threads/thread/cons/2.cc
! 7dea5d1bd956ad721e4a52779c77bc63  libstdc++-v3/testsuite/30_threads/thread/cons/3.cc
! 5dce39ea91616793dfd1495f294a8fd4  libstdc++-v3/testsuite/30_threads/thread/cons/4.cc
! 68e5b03a401e173ac505cb0aff805bb8  libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc
! d7578226c8be446afbfbec1f0a5b6af8  libstdc++-v3/testsuite/30_threads/thread/cons/5.cc
! 23228bbe64451c4bf9bb12ee87e01021  libstdc++-v3/testsuite/30_threads/thread/cons/6.cc
! e9d98b9d112bdc23acf24b0c6a8fe664  libstdc++-v3/testsuite/30_threads/thread/cons/69724.cc
! 7786f5f64596b427ec27b7d9ed6fe5a1  libstdc++-v3/testsuite/30_threads/thread/cons/7.cc
! 2fe59ce9b720abed1df8625a52399cd3  libstdc++-v3/testsuite/30_threads/thread/cons/8.cc
! 17bfa85f4fd8e328f0dd226104c318fd  libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc
! c859ed06961f7d125318dac70dce0b96  libstdc++-v3/testsuite/30_threads/thread/cons/9.cc
! 66a67ea33fe2cbf6d4377c56de3a3407  libstdc++-v3/testsuite/30_threads/thread/cons/assign_neg.cc
! 302743bcdd820851791c78c37b88ef85  libstdc++-v3/testsuite/30_threads/thread/cons/copy_neg.cc
! ff4dfbf5cc8b0a174e1b3d95e911845c  libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
! 4e597bcb6ad30fc219849f3877f42a5d  libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc
! 9c9aea582f985e1916ba3b3bb7676624  libstdc++-v3/testsuite/30_threads/thread/cons/terminate.cc
! 56f1c0f8e6701ac7ca444bb10ca2f3e4  libstdc++-v3/testsuite/30_threads/thread/id/70294.cc
! 1535110f819f1bb8efaa5f9881075623  libstdc++-v3/testsuite/30_threads/thread/id/hash.cc
! f55f3d4d76334f312bb784856412ddc3  libstdc++-v3/testsuite/30_threads/thread/id/operators.cc
! 38dfd7a91fe4e47b27e9b06324d45734  libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc
! db344abefdb1eeb2df75255576af76a4  libstdc++-v3/testsuite/30_threads/thread/members/1.cc
! e8e16ab68a8c711c5b692d62448065f7  libstdc++-v3/testsuite/30_threads/thread/members/2.cc
! 8253359e2b21e03205e29d40798938ea  libstdc++-v3/testsuite/30_threads/thread/members/3.cc
! 353fd7f051e340295cc743b20e5840ab  libstdc++-v3/testsuite/30_threads/thread/members/4.cc
! 1f9e09480aa4dad31ea582542070d679  libstdc++-v3/testsuite/30_threads/thread/members/5.cc
! cde573b8e567f54299d995a60395bd64  libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc
! 0b98b406fed44375754500fc54d3bcc1  libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc
! 898cf178f8235e82b1660e275a1b92e2  libstdc++-v3/testsuite/30_threads/thread/native_handle/typesizes.cc
! 1b693d27042fbaeca3ae6e263f549ee2  libstdc++-v3/testsuite/30_threads/thread/swap/1.cc
! 60ecf52b9588c3621edee604280599e9  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc
! 9dbcc2adcc61fce99049a7b7b8a03e71  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/assign_neg.cc
! cd0ed7a6d0242be6cdf5d05f30bd8f37  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/copy_neg.cc
! 8dead1f595dbb4630c0179f132535f64  libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc
! 84c7589ea1ecd3ff2e04adb63e6477dd  libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc
! 797abf524c9151271742c87c69663580  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc
! 1100de8b124477a50d81a0006145dd4d  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc
! ffc2fe83a409412a4b1e0f66a49a8635  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/standard_layout.cc
! 4272ff59c2dac131138c4c493647e150  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/typedefs.cc
! 70a6be0f6d86e78d15a9d9a32e0196e4  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc
! 0360ac18a392e797580fe0a6ba2bbaa9  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc
! eedd3eb90a3c07d04187bd1e542d2a89  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc
! 04512aad31032c79d01add557c5fa51c  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc
! e2dce81add19fd66003e3dd52ef31f0d  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc
! 70a6be0f6d86e78d15a9d9a32e0196e4  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc
! 0360ac18a392e797580fe0a6ba2bbaa9  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc
! 4d3f63c52743669e8f3bb77343379f82  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/3.cc
! 833436416d54616ac9692f21fe3e69de  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/4.cc
! 972023d0bdd0992a8e5a722cc164dd0f  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/57641.cc
! 99b351971d9dd88403f93c83baea30b6  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc
! 73948f21906c8a7552beb82bcd74b848  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc
! 0a57a5032edbd498cc9ed78ab43a35c4  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/2.cc
! 29bba6cf1e89d0255f2a0679e2794d0e  libstdc++-v3/testsuite/30_threads/try_lock/1.cc
! 72005cf9cea5fe4d47a88da9e7052365  libstdc++-v3/testsuite/30_threads/try_lock/2.cc
! 658a64f38ab6b70d6848d6790d38034c  libstdc++-v3/testsuite/30_threads/try_lock/3.cc
! 4874bd5061e95c920cb36474d116d514  libstdc++-v3/testsuite/30_threads/try_lock/4.cc
  84b7f4186aa09b29885c62c89d8b8d64  libstdc++-v3/testsuite/30_threads/try_lock/5.cc
! 065b312987d7a0eb251f89727ce98b23  libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc
! 34320f18fe82eb8ba67acc68975ccb11  libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc
! 035bbcebbb1617c201f3431940043435  libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc
! b93a2914719629d2d7dc80ed8baf1652  libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc
! 69bc7f340f78fdd895604e9779a6a888  libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc
! 9d4eee8abb16ab3b8843b2a7fc93ee85  libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc
! 1535967ce4f58d16ba93cb6b0e5b7c1d  libstdc++-v3/testsuite/30_threads/unique_lock/cons/60497.cc
! dada56792b3d9098289b4cb31c5a5f58  libstdc++-v3/testsuite/30_threads/unique_lock/cons/deduction.cc
! 1a19f3f149a73c857c34594f4df755b3  libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc
! bc9bc5b762395acedd19a7ded971a74f  libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc
! 5cdfbe4a78bf17db5fa5a9630fe489fa  libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc
! ba1294b44c35707dfaec771192c6869c  libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc
! 0e0e9ba5a5d548aa175c50d9dba7d343  libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc
! 2160c66e42606f304489714e7a84a6d8  libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc
! c0df45f661af103efb1a3ef2db4243db  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc
! 7f4572bc077f247a3e89fde5dc804bbf  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc
! b739797a5e475d6a45ed7eeb4337c44f  libstdc++-v3/testsuite/Makefile.am
! 930c9e6cdbf96f3e44a1d10bce2e043e  libstdc++-v3/testsuite/Makefile.in
! dae9f04aa5bcd27d004c11142f21bb9d  libstdc++-v3/testsuite/abi/30586.cc
! eef3d284abe5f6cc5921fc12dab944f2  libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc
! 9ecbaa41f08c1ddf84d1c7be6cc26ff7  libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
! a3a867db670933fc9feb912320498750  libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc
! 6ca6f92bd1207550ec4202331e098419  libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc
! 676cf95fa326c9d5bc43fa32a85d49ae  libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc
! a6eaeb248869aeb5b9d5276d56f53a24  libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc
! b5daf5d86ceafc8755e865f5ce4e4c69  libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc
! 2da735b24c9f3a2fb9921483a3be7814  libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc
! af0e73e07d49504566b2f6a2631eda18  libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc
! 31d0eb9adae0cf54e0d07c939e29c03e  libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc
! 894854e567fc36d5beedaa3539d3548e  libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc
! 80ce85beb25ca44e49ef086df87a8f12  libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc
! f5b1ec7b53f88a4cc5b14fb6d891e2d6  libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc
! e056d8310892b63f2499648076e0be25  libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc
! 35c87a541b97e3982c87da448839cd22  libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc
! 7388b5ce6e48dc1f335afd35e7ff2113  libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc
! 11102d6df9db7c460d605183953953f4  libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc
! 7c48643bb3b258c4a2aa185d28d70412  libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc
! bc78fc6e03c0aaec89ef0285fefc8585  libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc
! 57f81e413afb9fabf84f8d54069127d1  libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc
! 083e87a617c10c744c97e79ec6989058  libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc
! e58500e4082ea6d3ab0fa1ae074ccd98  libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc
! e58500e4082ea6d3ab0fa1ae074ccd98  libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc
! 0d2613259b70c4c7754dbc5e6aba05ea  libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc
! 6544b7007b939e6e9de03fd0c1a23901  libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc
! 63f4ce46a83d6f1bf10060ee78e2c763  libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc
! 4484ecb566e6787ac77af034852f4715  libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc
! 645f3af70b6dee74e48d5ba419be8c42  libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc
! 26e9b8386a62855ad455e65294e34ca5  libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc
! feb094404df275ed1e57558c3312d248  libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc
! cf1187f7239ec4478998ee4ee830f198  libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc
! a705ae0edcf71000a3b9eb469f3dac1c  libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc
! 90d9edfe0c3267c893460ca38544a124  libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc
! 52d977ff49a63a1929f823c0524b4f8a  libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc
! 2b0590bbfc4108769d69ec158400dd7c  libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc
! 12c5b1abd5f08a0bdffca117f719e240  libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc
! 0560e110b80487aee93a70ac7dca2267  libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc
! 6806049a68ed3edfed97601c7e314c99  libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc
! 5ba0a4f0c8ff63260a64f0b529700262  libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc
! 40e0531aa9775cb39e6d53d1a00c165e  libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc
! 363cfef130d7fa2230fcf0db3f7daac3  libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc
! 896dac8b70ef4a8e8242992bfb03fab0  libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc
! 18db4bafe4e5ce0d64c2d9af686fd501  libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc
! 561e7c93768cfcbd57e244707ca4c5e4  libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc
! 09e33ac666c383934272f57ea69039bf  libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc
! 8ef28216e00adde956fbac1d3d772aee  libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc
! 11fb4afa1e60e567181a18697b98b599  libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc
! 5b3686dd68b0851a24192c67889de010  libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc
! 9e0a098005fd70c5df1b21e12cd319f2  libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc
! ad4562c351e836a64ea268e129c054d9  libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc
! fcd2876f3d8801f27326cd0b56770327  libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc
! 68ba594b85693c4f9d46297205b68b4c  libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc
! c2a0ce4b4e9cccf6bafaf4e2282596ee  libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc
! a4c34f3a892e23eaa015f784ceea4e3b  libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc
! 855821126fd028fadb915a7927abf9ee  libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc
! 50eb8b96ba9ce323613ff0418e762f54  libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc
! bcbe243fd2cdabd1a992d467369ade8d  libstdc++-v3/testsuite/abi/demangle/regression/7986.cc
! e63e73134d651e5e48cd711ed7cd8a3d  libstdc++-v3/testsuite/abi/demangle/regression/8897.cc
! 34288b7c06ea6e4b736ee4432dc12779  libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc
! 88fb6287997efb6e6295c95e9ba0144a  libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc
! 4c55109f98317964def8329c034c2947  libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc
! 0fcd36facf37e302f152f6a2571fbbd6  libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc
! cee6f371e83a25a94a582682b7bcb5ba  libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc
! 5dbd5d7cc08e2f5f5fe14c720713dedb  libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc
! 6f30706e80d9343dabfe982b8f332e86  libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc
! a172bf75bfa7635279b878b538ec7804  libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc
! 21ff48c7ccfee6b0fd0324fa1602b317  libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc
! 4ad2ee7b6bcdb760d91b0ae5b894f170  libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc
! 0d3a42f8d514ef10695d605e30456cb0  libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc
! 7d398b6c6f7852af6919c5830978bb40  libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc
! b9b8ecfe1e7d363e6b2ac2734c2fd7f8  libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc
! 487b435ecc261a54415d24b773faee6a  libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc
! 25c05d8d7e5f3fe20e9a351e9c398be4  libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc
! c3592d5b3277e0be323d5781f721ffca  libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc
! c69b39b3c7025600b4d75f05e8661be4  libstdc++-v3/testsuite/abi/demangle/regression/old.cc
! cddc1fdc4b38fde93ad02aa120ed46b9  libstdc++-v3/testsuite/abi/header_cxxabi.c
  026f7646f4161e79273f7580a661c0cc  libstdc++-v3/testsuite/abi/pr42230.cc
! 84989b42eee1320f95c21da079273801  libstdc++-v3/testsuite/backward/11460.cc
! 9c45fcf91151015f417c938470e0e47a  libstdc++-v3/testsuite/backward/hash_map/1.cc
! 995e2e9135ed4a558a24c0b9fe2492cf  libstdc++-v3/testsuite/backward/hash_map/14648.cc
! 178ce783fd08f833d051616dadd0f82f  libstdc++-v3/testsuite/backward/hash_map/23528.cc
! 42a198bf9a358cfbdb232e8a375df6a9  libstdc++-v3/testsuite/backward/hash_map/25896.cc
! ff7443140f86745a2541bdb67674b537  libstdc++-v3/testsuite/backward/hash_map/requirements/explicit_instantiation.cc
! c597972e3e8cd6262fd847bc2867ee05  libstdc++-v3/testsuite/backward/hash_set/1.cc
! a34de0d8d7e82a11a5ac26aca9679cf7  libstdc++-v3/testsuite/backward/hash_set/25896.cc
  2c091597008357e678007f407f299a24  libstdc++-v3/testsuite/backward/hash_set/49060.cc
! b50f7b321b2fe24b18a96f6cb90be514  libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc
! d7e0c3a740f84a38fc897d2c79e82d54  libstdc++-v3/testsuite/backward/hash_set/requirements/explicit_instantiation.cc
! 2db761d7855449f6ec325d0f85bd6702  libstdc++-v3/testsuite/backward/strstream_members.cc
! 264b9e706c4036face402ab9b63e8259  libstdc++-v3/testsuite/backward/strstream_move.cc
! a1be675d67363a31b7077da24f907f64  libstdc++-v3/testsuite/config/default.exp
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/data/cin_unget-1.txt
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/filebuf_members-1.tst
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/filebuf_members-1.txt
--- 130313,132221 ----
  69530b581e1f96f9614208c43d0c9854  libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc
  3f797cc15e7e8d36add18ade39f64ccd  libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc
  0750f0a7a2c692d4ce110fab2faa8583  libstdc++-v3/testsuite/26_numerics/valarray/mask.cc
! da11dc004df68e1018f9a6c1da884043  libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc
! 8ea91255c501a7c4aa28bbcc1320e8cb  libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc
! 04d9bce5d36bcc7c2a914c671250cc49  libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc
! efa4320d6e6e8ef2dee71606d5cf8bf5  libstdc++-v3/testsuite/26_numerics/valarray/operators.cc
! a4dff501a334d5dba67aa71d5c71a4b7  libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc
! 2c1469cd1906a2ad2c08ebdfc86c3a0f  libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc
! 78d8f0aad877f85099a06d2f30ea291c  libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc
! 55f6d77a6b07843e9d997ab786738e1c  libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc
! ad3ef24435ba6b9f6e8979d1f4bff7b0  libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc
! 50e8fa822f437c669082362f4d1121d7  libstdc++-v3/testsuite/26_numerics/valarray/swap.cc
! 2dce0a2ccef0186a0756d2b2ea5d3087  libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc
! f7ff4ff31a9d00c5b7a41ab25adb581e  libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc
! 429f4fb9a500d72f6a061d17457b16db  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc
! 050d94953403d9c3cc8dcd2c60c8813c  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc
! f6e8646471e5311fd88f48fd1179850d  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc
! c2b031829b8cfb45cd127e3e9226cb81  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-3.cc
! f3917468dba98c033cde8fa6714e645d  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-4.cc
! 0db09749867606b4ce6f7886df193f79  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc
! 93aaeda445e1a6c560d0bdd38db38055  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc
! f2c1648d38c6699876ba0ffa8b0ce17a  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc
! b9f7287816fa96318fcb4232dc04e795  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc
! a905a7f8e1655e570ffc0a7719aae77b  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc
! e4a06d8316f5d8f323d30d3c9b065845  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc
! 678fa24d1586b42272514250f650292b  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc
! 7824d932368cadc9754c7a25a4557507  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc
! a5d712b06328d9a85d58cfee97576a89  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc
! 959e03dd250589a49b0b67900c68a00e  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc
! 70070ec47b793e65c0b9de72a4ea2a2b  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc
! 954bad5c6e80bcd4a72f7f04f0e1ea46  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc
! 495df4a01a26af8d1236957cf990e129  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/1.cc
! 03c06805359de6be6b08e51cebf009e2  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc
! 881e95cebb9ea939283f2c5db0bb9787  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc
! 995648c7fccbea92e07d3c859df5acfe  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/10132-1.cc
! 82c47c568f14025e816a0eb9380666ca  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/12206.cc
! 45638160e863109a0bb2edb879222b72  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/1.cc
! f43f2f9b778ed6a5103c81ad07e9f255  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13007.cc
! d67ae6d56686c3ed6f5bc11f53a411b0  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc
! b7782aa36783b433e49f67755e327264  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc
! 3f2f6fd02fa042c21684e434917e5eb5  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc
! 097e34f33eecef3a85beff3df4239be3  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc
! d165e27e1146dab544425d6bbfe28073  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc
! 9e38ac6f2a07478106cf6a2b150b206d  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/2.cc
! 189ba6a6bbc0ad9f8127403c4a8dcdfa  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/3.cc
! fa4121aa000b19ff075cb5d65cc941d7  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/9322.cc
! 8b4d9f1b6654ff6ef363dd0b2486dca7  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/1.cc
! 31c24e95817b519ca9e8868c1d57a2fa  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc
! 3858a38cbab883ada398f7693889ba1e  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc
! a70743309d8eba2c3d1c734c19a11c74  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc
! 7fe7c493bac85effe63c694dbc73f182  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc
! 792bdced77470d63ed872da2d310dec6  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc
! 6de06ca1425584b87e04e45de9f2543b  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc
! 4db15dd5abcf611a5cd32b856130d3a7  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc
! b77d4d5dcc62faba8acb0715ada6d39f  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc
! 394133ac25c2c2de5a8b01faf1de318d  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc
! 0c7a6b154146a8e8fbe020e0b1a4a82f  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc
! bf3faa066b712f0515cfd19c379bb269  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc
! a99973db1743fe6863990bdf8bd0a281  libstdc++-v3/testsuite/27_io/basic_filebuf/is_open/char/1.cc
! 9ea3052b628709239f02165e8ce7b838  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc
! 7f227dd30a9b0bb4fbd5e2e64716e5f7  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc
! 3df31280d906ad4697c37209af10e1a0  libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc
! ecb7b12c293d158219ff1c56c614542f  libstdc++-v3/testsuite/27_io/basic_filebuf/open/12790-1.cc
! 1d0b7027230602414565bd727f0042e6  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc
! ad81b8320848ebc9365dffaa60cf273f  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc
! a2d94c3886be4da2d349aa978de82d60  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/3.cc
! 575beb4e018ed7700f607c647b82d208  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
! f57aa735f50d8bc864c88137c03bc04f  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/5.cc
! 9e76ec85d975a3e9dcf0ddf1ca0ec9b0  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/9507.cc
! 6e5c337c305a1299776fea09286cdfbc  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/path.cc
! 30630608cb3c531567da758d9a078a7b  libstdc++-v3/testsuite/27_io/basic_filebuf/open/wchar_t/1.cc
! e48e94af4b019ec54e19e84ccdd4b8c6  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/1.cc
! 5001b6b73b7479d6557a5ae52eacc40a  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/13858.cc
! fadf5dcd532876825c69ec9a049c1383  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2-unbuf.cc
! ccd77a8441f22f63caa5d69e629fd4de  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2.cc
! 1bb06be66c6876a372b34cc3efde195e  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/3599.cc
! 241f3703bd268e2a408a2ddd9dedad74  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9169.cc
! 72118936ae85845f417359ee7d541d02  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc
! f8a2c3f3281e602b5cfabe89fbfacedd  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9988.cc
! ef0c0e07b04dbee178a1660fc7c230d0  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1.cc
! 82eb3ef23a2c8c888434fabd0b82ae25  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2.cc
! a1ba4c785f32ddf899a2da4755e77952  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3.cc
! 25cda67291ea93f9ac7a04ac77692329  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4.cc
! 443ef6c2e7073d0333befe198cbd95f0  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc
! 1acdba37a99cdfdd7aec205d0d678927  libstdc++-v3/testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc
! 7ffba8d4047a98b8453c4ea554bb206f  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc
! ba842e1f57cdd2d6f9567647ba369d1c  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc
! 6dbf178b5a215f12d46dac67452de4dd  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc
! d92e60bbcebf487a9abd85e3b42f6d2e  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc
! b61417666b935f3e583388c6e14ed350  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc
! fd6ae7e1587d1ce3049f29a7eb6ee49c  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc
! 23ad7bc147b7f8fa3401d2b7d3579194  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc
! 17c4a7c52b732aecb974d4bedc57adde  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc
! 97bfaf75a2fb0b5fef4d9a7fd8fa9ea4  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc
! e9a84b2cca2ffb9b49d1c907f9ce8215  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/9825.cc
! 660d10d84ce488c5742bc463eee25a14  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/10132-2.cc
! 9de54b8947969f5a01e86cba40a6ff57  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-1.cc
! 998df9d99ec6e6b1d6d9edafd41dcee0  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-2.cc
! 98572b10d11849496c3f1c000f701f7f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-3.cc
! 994a117587147966a37dbe726276d779  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-4.cc
! 99050d4acba117d66b03f582688bd079  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/45628-2.cc
! b29c80a752438900f19552cd22c50782  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc
! 758f178cf2856c1c17934633ab7868aa  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
! dc4764b957ec8a97949b74821947c859  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc
! b6bbfc091a43ad89e85157f5808a3302  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/11543.cc
! 5204c554f0c2e92b36f5a44e933114cf  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12232.cc
! 12fc6f2c1d6d06c521a7dff5c7da0c9a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc
! aa17b5adf335f3cd0b846748dbe891c8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc
! ea100d472e125509f26123ea451e3681  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc
! b174c3c9f3402f0c443a8fa954fd12f3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc
! 2721188ffb84eded4bddc8769d17a14b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc
! 43658b2d5f7165f69d6a00934b084e20  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
! 9a0c9d15316709362c19a68e971887d1  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc
! 28571df29e3b33f27b2dafa2b69fbe13  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc
! fbe291506e8a5f6955e41d12fba47866  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc
! 2f4ccc6c9f92a179a9c90fe2f905713c  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc
! 69406c18e9eba4aaee1b59bb78085d79  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-out.cc
! 71e71a10c00b0bb58d4c37517ed082cd  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/4.cc
! e7cd32ec749af7f82039c8f75d0542fa  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc
! f06f4eaf713110f05667550068a5ebee  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc
! 3f6901c9bb51ca98385b5f8d5381f8f8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc
! 2b88ac046b5e685cfc0c67c617b586a3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc
! 16a08f7ace859f46dd4a4ba6db3058d7  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc
! c523721612e245379501f0e7aaaff9e7  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc
! c9cf29d6bfca7ae83f265f6023dc073e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc
! f07b43bfb50d11a92dcc363084a5a946  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc
! 1211ea2d770db670143cd89eacabc454  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc
! 6cde23d0d17fe1f2e0e2819cb9fcee6f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc
! a0270dbe06e6ec9267907a828d491ccd  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
! cf349ab5733e210b9ec44b657daa428e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/10132-3.cc
! 4673285e12fcadde8d339cc67adb50e3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-1.cc
! eeb0a64a187b397a9ab29feddbb99f8f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-2.cc
! 468832c910a97c51720889f5f5c1040e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-3.cc
! cd529a8c7fb01449efb3a1d90e76c3f5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc
! d4a5ce3aeb9cde4b4bf5cf39f5950e43  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc
! c4eed83ef169477d9454d909a2ae273a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc
! 0350d2f86e2486bc90cbe9164ad6e2d4  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc
! 414be34c92535e6d570feeb29738ab78  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc
! 1f111103b5b15aabe119589b359bb363  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-3.cc
! ad26f9aee916449010178d4ba339ad59  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc
! 4acc1565f2236a6fc87e09a776dc6a98  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc
! 214158beb36d2388af1b05c019b41e7d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc
! b702c10047afae978c4248003674fdd8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc
! 02f4e5e65b68ee457c81141cbe0d3cb5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc
! e5bab524f7348222ef6fd6dbde5c0c43  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc
! 6726e19a67b4edb520a19f2abb8a7e6a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-out.cc
! 093dae68a99b577a1e19cf9d5735bdc3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc
! 0841066541d53a38a5f49c6929fa5673  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc
! 5a2745a81c04871d41b621f35661edb2  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc
! 7787db9d9ef704e9e7b9377fc2906efe  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc
! dc43ed4cbf601856bd14fc1c60d7e8fa  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc
! 0aaf33ec0ccc1556ac96ad80a981e709  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc
! a21722a0836f44820a22cf1eed59d2d8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc
! 06f7f1b1b8fcf6b4c64a1929e1c52f35  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/1.cc
! a58132bf7d5514764c3e3dbf426071d4  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc
! 07d651ee3351cfa59253f48951426ab9  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc
! 1a4af0f7af7539598649f0153af63257  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/2.cc
! bddd1d0f3867f01fb6ec511e96e48e2f  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/3.cc
! 404bd35e7e59d9fb1bf2071f517cb2ab  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc
! eb13ae1a123483c3d16952fa08994ba6  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc
! ec561a9da2cf800f567489f0bde3c8e9  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc
! 59f582df42b27233c3d0ff06a20f0cf2  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc
! 48b9048a850f9261b7a9e829ea19f98d  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc
! abe94d6adac959fd05eee373e598eeee  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc
! 21c8b5e44ca99096e97f4309a75f64d6  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc
! 3fc29c67406cc843e3dd564d1485fd52  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc
! eb3ba858f5b6ca47fa720420cfab215a  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc
! a48a7735d6c73b33a00bef28c5cfc398  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc
! afcdcb01390086d8ca683ca49c08822c  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc
! 4f3da793b6b345b9ed3eae6d0f156885  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc
! 465c907b32f58e03573d36a4febfe3f1  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/3.cc
! 43c86a2c0b4d58a7f29da2faa782bd97  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/81395.cc
! a63fa7f7222b5b61676a600418bbb088  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc
! 6664c45ebdbd4a3214a6851c12806e65  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc
! c66ed4cf28a31aae2630a90ff37e6cce  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc
! 1c40e5b12aa981d25ecdf1e7f3fba0ef  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc
! 8ede788a747b18ded9e1f09d27d68bcf  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc
! 79059d41e8a7dae6293cc89de1342152  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc
! 3be8bf95763e8f57ade64b148ec2d43e  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc
! 2dcca170dc8e00d757d50d9ff9833d48  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-out.cc
! 9a5913646d93dbb50bdc8b83eed6c08a  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc
! ba168c74264740fb178fb6101de715de  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc
! 950f847b2e6034b39eeaad891111fb9e  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc
! cda2f1aba9421c1ae383f271c1a99217  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc
! 77ba322acd6aa37be33f18e34fc6e385  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc
! 59dcbd1126443fffebdfe75d517936de  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc
! 7d2d509d8d6271d7c9a02d0379d23999  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/9425.cc
! 35f4c849309b23926288de694c9565df  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc
! 552df726e0b388b977573c4fc6bc0a34  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-io.cc
! f9e408eafecb84392c913e0c8c57eb80  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-out.cc
! 74cc6c2a939dc88c7ac01c50749103f0  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1057.cc
! 48611affd1e0ecce2489f3e57d130233  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc
! c1093bccbbf3514ba6c35fff46c45fe0  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc
! c4d54464fd1953fa82e6cfb7b851a853  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-out.cc
! 828e33bfc3e771b6070fe4b15fdbb418  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/59427.cc
! 809a1d4e2db02bddae1d73024a06bd82  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/9701-2.cc
! 52945370a8d2658665cec03307554726  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc
! c5710b13b346d648a9ad28cbd10121b1  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc
! 142c37852f23eb9bb9858f0a42378ddb  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-out.cc
! 8912ce0c0802fe98a39c7beded2a0237  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1057.cc
! 24d1dc141638edeb8379e0825a5917ee  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc
! 7bd34085d715a5da4951c63d01995348  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-io.cc
! bc396d32148765ec483582b3f4c0c66b  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-out.cc
! b5887fdb771e96c7877d2268924a23a3  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/59427.cc
  73d4eb67443415996209b1af2dbebbc1  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/63746.cc
! 812efe5f94099c8a88f55a4bfd105426  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9339.cc
! 7e317d29b3fa890b99b1efba78c17422  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9701-1.cc
! 9eb9a2af5b9fa79e410de371d0e06e77  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc
! f99b518db3fe450b7de61fe3114bc503  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc
! 2578897223480d27d3fe4c125c53cc5f  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc
! 601833352c8def339138582d3d8705ff  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc
! 225918d86e05622f35c55430c92701c3  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc
! 526310f60246a336898800776eab0c2d  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc
! a45707d3a15e47c5847fdbda507b2c04  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/1057.cc
! 00541668ae9bd05e523d8e57d4e5fe66  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/9182-1.cc
! 767bc72b6ba96038cf741caf4f383cb5  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/10096.cc
! ff378fce60ab980c113cc93c313b1a26  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc
! a8e7a4eff23d7fbb69d1b82025fa2c32  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
! 50d42192f65a49abf0dfb7530f5611d1  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/2.cc
! a6b847ab314b1ec91fc1c107eb9fa8f4  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/3.cc
! b209213d0aa339617be8ea074be4948b  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/45841.cc
! 11515737174bca4a5b6b76253eb5f771  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/9027.cc
! 2d859c9d3b0b24b67617c1e76e3babab  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc
! e88742cdece39027be36fb8fddb224d8  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-1.cc
! b06faefb4c9a6efb32f6fc34b66e9a97  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-2.cc
! 4c1639c4843c46cbb2383d634181de7d  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-3.cc
! 1434259d766c113c02c3e8615b596a55  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc
! 444f96238408f8a7db772baa5689fbc1  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc
! 5ac52688824ed2479cce7ef5502fca76  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc
! 76ab32db78b8f78381661f6abc9799a0  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
! 5e261d2019a314e22d3f9dbfb511f6c5  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc
! 5678a7a89f9aba79371834e4419f33e5  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc
! d276d6eac532397ca8f124455b4f67f4  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc
! 1511b5d00a045e74d994124d7b2d8eeb  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/45841.cc
! daec1db185e151e3ecf24af1ad74d6c5  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc
! 6dcc4ddfa595d558014af02148de7fb4  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc
! 7c7df4f87708cafe2d44eb31999326d8  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc
! 7f51e1897b272360a5c4c966661fa61e  libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc
! f648d80753d1a6d500534e2c88060316  libstdc++-v3/testsuite/27_io/basic_fstream/assign/1.cc
! a9adf02124ff691a80f281ab9e11e80c  libstdc++-v3/testsuite/27_io/basic_fstream/cons/1.cc
! 64f0b47dbafe8d9f7123dfa9fc22a405  libstdc++-v3/testsuite/27_io/basic_fstream/cons/base.cc
! 435cbcfff35af502e9e9b829c6ef3f9c  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/1.cc
! e316de1cc92e4bc42ad4b1ff5dc0bff3  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/path.cc
! 3c6c7ddcc0caf4aed360fc488cdbfb17  libstdc++-v3/testsuite/27_io/basic_fstream/cons/move.cc
! 04fbbb2802b2a00eef35971a3e7293f6  libstdc++-v3/testsuite/27_io/basic_fstream/cons/wchar_t/1.cc
! 69980d2bcbecc6a5a4729e3ac50e8b66  libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/char/1.cc
! 14126d2598e6c553f9daec41ad04cfac  libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc
! ab17c5b837a902bea4abdda52e0fe50f  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/1.cc
! f2bf217a59f323f77cf1756bb7ae322a  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/path.cc
! 3220a3cb423032ddea9dbf8355074753  libstdc++-v3/testsuite/27_io/basic_fstream/open/wchar_t/1.cc
! 233c7357e99cf5bf9e10b862c2c0372a  libstdc++-v3/testsuite/27_io/basic_fstream/rdbuf/char/2832.cc
! de440ddfb2a635ab5bcfbf60c4ad5e28  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc
! 854139b8eac748c35f25a9be1fd18264  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc
! c68e1dcc237b4de405955aae357bc6c9  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc
! 2f84362f18faecab947b6af5932c655a  libstdc++-v3/testsuite/27_io/basic_ifstream/assign/1.cc
! fc9f97e80be11bb7a0f7153c8ff69b92  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc
! 1be7f73f093047ba1fdbbe96f1652429  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc
! eed6b18826b26bfc289f9164f1ae5281  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/2.cc
! 14785f62dfdf57ee9a995c5680285c80  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/path.cc
! e843feb23255bfc4fab9dab4b475127c  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/move.cc
! 11738e7d04ef42180fd1bb8bf072c7c8  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc
! d1dbfb61d085bf5907b5a0f89443ccf7  libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/char/1.cc
! e1d62403868e87c75c61c1c45f275fc4  libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc
! 95f468f2f7b7cc5f996ccb7921a0477c  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
! 8fb83f69afe5382c75290eafea63be04  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/2.cc
! 10f45935dad1039fdc73135a11a7039b  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/path.cc
! dc16f87997f0d618043c5352506e5a8a  libstdc++-v3/testsuite/27_io/basic_ifstream/open/wchar_t/1.cc
! a056d6928b779f5b7ea19c11b7133b67  libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc
! d896bfbc55f453471a9f0af5d200cd9a  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc
! 0664cb584a97c60350f9f1f56dda3861  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc
! 993736b9e13be9c973fe68b50d220bfa  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc
! 02a8fdf8a9cecd3061ac574836d10d9e  libstdc++-v3/testsuite/27_io/basic_ios/clear/char/1.cc
! 75a5b340f335876b99e612907b26ad26  libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc
! 59331829b302895f83dbd23c5695519d  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/1.cc
! 80e7e39365f003fec6852e119334831a  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/2.cc
! 4f716633996d3deb4a00756a4d6f4ba5  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/3.cc
! 1af030c22c4ecf5b1db89e1156b324e8  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool.cc
! 8b1e485a53f91b0b997d244fa9617130  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool_neg.cc
! 66085574036005709f2a3a386276a8d7  libstdc++-v3/testsuite/27_io/basic_ios/conv/voidptr.cc
! d9039a6e57082ae6d15db1ece79ba69a  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc
! 3f00af58c39e5421455651466f66d619  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/2.cc
! 51d8cc88134ed762be9caa11387ecb75  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc
! 028f60505d59b8e1737ad9a74efe3808  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/2.cc
! df2b94a65201843f100ecc7c01ad4341  libstdc++-v3/testsuite/27_io/basic_ios/imbue/14072.cc
! 3b7b379195abd1915722e50605e0925e  libstdc++-v3/testsuite/27_io/basic_ios/locales/char/1.cc
! a3e37a31c2f4c5ed307201e37bf979d0  libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc
! 051d93f5d2a98947be484fb4be9e3b47  libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc
! 8a9f6b1437340b43ddf88f118d147894  libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc
! e35c3697de2a647e9e9279210561ac22  libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc
! e7fa6eb1d6456c1b90e748e8188bc8bc  libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc
! 13b5ea6065b4177a98f57df1f45e3e85  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc
! cb3287081e7e309b46d6b46c45f0ae87  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc
! a0beabcb5cde9b3f6b62a669290c76ad  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc
! a1017d458d1e8b1e314bf3ec73967684  libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc
! f92fb497429964ebf530ae8cc145d916  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/char/9561.cc
! 5dfe57d962ccb9596e24c2621738de02  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/wchar_t/9561.cc
! e1b9f19e2c144354de2f8ebdc3b524b0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc
! 52c91e3c6465e75104c5b0b6668561eb  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc
! b8eba289adbf87e4d0ed1c7eb78bb922  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc
! 6bc1f56c7eb865efce471395de4e9add  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc
! d0f20da2d4e762a7c5bdf09580f0bbb3  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc
! d5ea9c9b4f057900abc3f75f196ab67b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc
! 024ab2e2cd734de3ff40b13e07810093  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc
! 775464300c1f1046f8199314ccffb636  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc
! 9c36a631577c4ec73a859c2c613ef8d8  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc
! 78806c8b061b568d57c849c65cee2c21  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc
! b29f92de53071845313d2f38ea1b723d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc
! f3210a41d0d07ad120b255b77d049cce  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/9555-ia.cc
! e08387ed3e0111fea3620bfb2069cda9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc
! 5423488bb5710a05917346c94045149d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_badbit_throw.cc
! 757158def78efbbd4525bc25914a4117  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc
! 26da6967ee5da63e7f86f263e101e2a6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit_throw.cc
! f457bb5367be2d5d845e97e699501400  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/pod/3983-1.cc
! 77fe1947e4eecfee99abbf32c2768689  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc
! 3aee65a8cdf901f666797796cdfba385  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/02.cc
! 80cb30ddd6fc782c452abb8787c4afec  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/03.cc
! 3ba05bcfb1441d5f0ce2920d2bbc5582  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/06.cc
! 749053a4e5716fef67991aaaaf406546  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/07.cc
! dbe09d00a014aa612f23f0275ad9cd47  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/08.cc
! 8338dc2977f5f86ed6c086ec237a09e0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc
! 8324c7731c4544e4066562d9f4af2264  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc
! ab8bd3774b858add62af06f02a7599d2  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/11.cc
! 3ed1ab05d03c3c5ebc8ae872a58d764b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc
! cf0ae74e51fc659cc944bc18a93aa02c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc
! ca8878ee0534b80b368c3431614d3aa1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/9555-ia.cc
! aef1c50b3c941b4b5d6c6fbd1608886d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc
! 4c1b2fb8a2f879b6731bcf329c223f66  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 23c1262369d901a5a1f2c0b152e1ce61  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc
! ade31a097abbf43d3b02b248642a98d6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit_throw.cc
! a5462cdc328502de011e05be15679228  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/1.cc
! 50ff02404800a89163d9d15d0b9a8b39  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/11095-i.cc
! f5a93fa7eb4517b7ba1ef53b1e1335df  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/2.cc
! 00269d04b6a4b321fb37d6df18690dcd  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/3.cc
! c19e2de9bf9a33f8ec1d1df18e6eb056  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/4.cc
! 2776dc3830c3e01c4d54b3d93631b772  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/5.cc
! 7692896576baa833ab8ead25da61d8e3  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc
! e7ac0ad19369e55ba1d14ea523deaee6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9826.cc
! 084bbcfe70bd706211e807b355b39b7e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
! af89a74ae3910bb4d9b56b98e2e0e3c9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
! baa3c83fc719925b0e352f6e0c374854  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/overflow.cc
  4f3d3110437af7e4f5208a2434cf525b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc
! bc1b38a3bd76a9791420c8552860c837  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/pod/3983-2.cc
! 8ec71123c05116d3d61952876c025088  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/1.cc
! 514700613e8b769aa739f9e49d93a8bf  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/11095-i.cc
! eb2cabc4a775c182511a2b82114ebff2  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/2.cc
! 6060449cb9cdae3825b2544c12c433e0  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc
! 300b81e44315736c3f50e0c872989792  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc
! 02dcf90edec454012b55666b9740564d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc
! b7fb037f4aeb0d87ea69271ba0f28019  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc
! e258d88b65d16872f3ab7ba1b363e981  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
! b2602ba94e9b422672c0a4694ef4e1d7  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
! 356aa6d2a0d7c9913b74e65497287a8f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc
  b4f815b9c39f208740f02123c6525269  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc
! 0890d37aadba8a19fc5e643803d7ee26  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc
! 295dcc550b7dfd1137b0cb526f0bb13b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/2.cc
! 21ee5f8204dbfa106da9ce8f4d00f29a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/26181.cc
! 7774e442753fe678c5fdbe5419398ea5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/3.cc
! f992c058fa1d199b25ce6ea180592475  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/4.cc
! a64796673f98cbfa6c6bd299bcb73e4a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc
! f90ca27fbf0f44a8021744176f3ae097  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9424-in.cc
! ffc6498a0f8d8fb9f7e27d19e53cae47  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9555-io.cc
! 4d52142541b4e95b8980e19173181175  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/error_failbit.cc
! 94e6c0eb93062d6a822cfef22f817c5e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_badbit_throw.cc
! 1dadc1d71400b3deb8bf52b1b38373d7  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_failbit_throw.cc
! 8a8921229052f7849e7c33301de94a7d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc
! f329ec33ce2920c52bf54f52f60cc560  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/pod/3983-3.cc
! bd0faf0a5b434022c36e9e12b2b09d0d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/1.cc
! 35d3a83790eca5f6c0867dc6fb0fdda4  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc
! 438cc7bb95452f9c7e1e50065d995dce  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/26181.cc
! 2d8eb740c3ac45c4abb4f7edd478429d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/3.cc
! 4d948121f6711bca8952b57d7c367572  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc
! 256bcf6a3b378683fc9c0a5fb41c84f5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9318-in.cc
! 5ca3dcfacc55198019feec85fc0b4943  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9424-in.cc
! e9c9c93b1a5dd85a53f6c222daae6809  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9555-io.cc
! f5e8fc37c4463743892cba5ce55ff277  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/error_failbit.cc
! 76e7e434d19f47bcd9846a5a86e883e6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_badbit_throw.cc
! 0f826c55ff46a22bf36c772ad11e5f3a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_failbit_throw.cc
! 8a03f1924459e302de628b96ef944e95  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc
! 590847d1dad6bbb4002f274dcaeabfdb  libstdc++-v3/testsuite/27_io/basic_istream/get/char/1.cc
! f962e76f50c8ffa81286a9b5992475b5  libstdc++-v3/testsuite/27_io/basic_istream/get/char/2.cc
! 27f934eb7b7e149b45dec78b61fab22d  libstdc++-v3/testsuite/27_io/basic_istream/get/char/3.cc
! 8881a34ddc461b815b338ae7751158b0  libstdc++-v3/testsuite/27_io/basic_istream/get/char/lwg3464.cc
! fc10ee0bf789cd7bf7c483190cc2cff8  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/1.cc
! 984aa0cb008e20732e96fce32dfb8a80  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/2.cc
! 424652c4bf7a4f9f4fb8f8e5b1961e0c  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/3.cc
! 7258b581feadacb85aded98ec1fb4daa  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc
! b804df65e05dad3ce47738b296e5b5bf  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/1.cc
! 6dfd935bd32cc38e9fb6fafbf912e8db  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/2.cc
! 19f8b5a97fb3131ca400c2ccd70c7c91  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/3.cc
! 477c7b96acc76e61f838f1fe3baf60af  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/4.cc
! edeaa244d276ad2b52aa313800dbe15f  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/5.cc
! d2dd88426ba2ea219141988930532830  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/6.cc
! 51cc04793547e67c3b06ea6fcf355e2f  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/1.cc
! 64b347d69605874b11f6422c78b3d9e8  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/2.cc
! ae2eae0c22279f67833e759ddf6b0be2  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/3.cc
! 4ab65b8ebae88de3c7e70870f85a6885  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/4.cc
! bcc7fec4da4ae7e9e69e8a36b549a413  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/5.cc
! 45f8f7b4ce4a4da5394a432977e5d3de  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/6.cc
! 3ac751d7e9bac8bf4a06b614ad8d629d  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/1.cc
! f4e4af310ad8eed1cc87e193b208ec58  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/2.cc
! ee57988e32136812c8904a74c90f9815  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/3.cc
! ec4cb86a244eae739fe29bb38ec066c8  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/6360.cc
! 50f2ed1613e963e8fc6e85b674d20aa5  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/7220.cc
! e0b8c86bd25f4fc4a5f4baa02e810d07  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/93672.cc
! 99c3ccbcde65bcb9df3e7af4c2538c94  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/94749.cc
! 4538bf850c058fe29f5ab1944b998313  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/96161.cc
! ac48218a4e75d446b91fbde721c2d309  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/1.cc
! adea77d2df62275a5a5ecd4479b594de  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/2.cc
! 87e751975400e07c1851386f59d1f270  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/3.cc
! 5e45107eebf830790cde32edd13ff9f0  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/6360.cc
! 8ce46f153302fa2d071a54a7225f6121  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/7220.cc
! b970ffcefa492a97a5e8206924debd61  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc
! 3a0415c2cd93afec259e0f61a797d0bc  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc
! 07b11b266832214d1dcfced08268e6b6  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc
! 48f6c25ba0b6a31a2c26c331cb9ed03c  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/1.cc
! 8a348bcc5087470158b3e6af65d579fa  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/12296.cc
! 00e951e9a4cb6549348cf04f06571b82  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/6414.cc
! 705009a9bfd3d2208dc78d423efda1bd  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/1.cc
! cf8386f9381837f90cb836bcb42bf67f  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/12296.cc
! 38a86c0d7d6a2173db51bd2952c10d4b  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/6414.cc
! 6874a9103ec6a285d4c19540b9933c6b  libstdc++-v3/testsuite/27_io/basic_istream/putback/char/1.cc
! d5f6c6f982706a1f87916d4c0fb2f421  libstdc++-v3/testsuite/27_io/basic_istream/putback/wchar_t/1.cc
! ce2d0377fab6cae113e55da72b5fb91d  libstdc++-v3/testsuite/27_io/basic_istream/read/char/1.cc
! d2687fb66dcab6d749ec9c745016e9e5  libstdc++-v3/testsuite/27_io/basic_istream/read/char/2.cc
! ef31bd432f13e098238267129255982d  libstdc++-v3/testsuite/27_io/basic_istream/read/char/3.cc
! 10f658644c7acff9d16eac2107112f3d  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/1.cc
! 27f8eec747b3ad4b754090ddb1fc0d33  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/2.cc
! c98aa31780e4b74b83dc095d8c717381  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/3.cc
! a2f69a9db56acb584de53e31d7b6dc64  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-1.cc
! d1af0e24285bf295717fccec1f602d06  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc
! 41a3d76035d9fe3e933ec8e6857e89e8  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/8258.cc
! 10a82a126fe2ad06f6e8d3643218c9bb  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-1.cc
! 9e20ab61ad14915321978b19034c8697  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc
! 585db93d2cff09c76fa78d5a2f78242b  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/8258.cc
! 052a277fecd7c1092db8b9d886eb4c57  libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc
! afcde2d5ac34e2f0fb6f85061d7aa07e  libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc
! 962e4ddf84b4df4768d9a24ee303f20e  libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc
! 323f1f4de526118eef8358cf66683eb7  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/2.cc
! 5a8044a1164f673a9e711161de9ec94c  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/26211.cc
! e42823b440d492b82a7c7bf627adc3f4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-1.cc
! f527504366db55ac91a698dfcc6f1ad2  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-2.cc
! a2c562da6172670a0fddabac016abc41  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc
! bded178c01979bf524d647abe2a8f287  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/fstream.cc
! 3d7fad662b7722fc83935a6adf44bf71  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc
! 6216ba815cf872814092ddf37b5fb3de  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/2.cc
! cf7731a2cd69ecf02ec8df15d81df185  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc
! 767654e64f54d55be8c58bd3f3d63fb4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-1.cc
! 41d0c38bf0c9a86659aae0dde6ca7ec8  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-2.cc
! 63c513423979a845ccdb7705065548e4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/exceptions_badbit_throw.cc
! 3588a5f72ed35bb18f86a5a316b767f7  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc
! 522a9f6f4d41b6e4188247f94d845f98  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc
! c381a5ea79c0b7609e6f27c5b4e06d22  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/1.cc
! 61b9b14339b89a1652a2b75e3429526c  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc
! b8bd9d39d970a4364aec84b02020d57d  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/2.cc
! 11982287dff6345952cae6a8263798bf  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/3.cc
! 22c7c9736a7a4495226d77ff01c58a73  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/53984.cc
! 3c6795d14041aee88627f3762082e6c9  libstdc++-v3/testsuite/27_io/basic_istream/sentry/pod/1.cc
! ddd398fac4c07e3c398023ae81ddf927  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/1.cc
! 47b048c57eb78ac9bb0f56fa16c164ff  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc
! df97aeab8c9640848f222ccf2ad47535  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/2.cc
! 8beca44b9cf88967bd49ae13a0d23bdb  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/3.cc
! 89cd54064798e5c7e6abd7062d9bfaae  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc
! 5485f914c985129f482988e0eeda485e  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/2.cc
! 780c683ab59e22524e4f18c9373516a7  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/26211.cc
! 804d63f24dd536d3fda802aced437f0a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/8348.cc
! 8c0b2e527b0887e88b9a265e191792ef  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/exceptions_badbit_throw.cc
! 11ca488466de6c06655d1a92eee01fd5  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/fstream.cc
! 1ec4df542e2ffed0fee91423f6ce969a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc
! 6980b2463b3922e99dd428bcc04ac956  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc
! 14f4a3ac22ffab3564feea5768aa39ad  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/2.cc
! 267920418138228cb40e9526e0bdd479  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc
! 3babe5ed508a5f42a32ba144bafba55a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/8348.cc
! 08726315316063946ad9a15b0ed477c5  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/exceptions_badbit_throw.cc
! c83921c82b5f9111bdb89d652235d3a0  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc
! c8803c0a6dcf6e29d22537051760521a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc
! c6b93ab60b2e1a2a673d842db91952f0  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/1.cc
  f839f1109e54bd94ee7c87d858176de5  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc
! a9b28dba5270c171f449a26a90597e93  libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/1.cc
  b9907ab1fd112fa27bbaea52ca154a99  libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc
! bfe054b9e363c20aea5951e680aa8d51  libstdc++-v3/testsuite/27_io/basic_istringstream/assign/1.cc
! 0f1753b7e9d3533f1e1599a8975874eb  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc
! 436077dc979b5f63140826a85a570368  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc
! b142377a744868669aa38f423cce3a51  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/default.cc
! 567171237fad29602ad97f7c73911548  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/move.cc
! 066e7620560dc44c25e31eb43f312883  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc
! 8b83b6540442b8f6935024b2cae39781  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc
! 628ac96b9e0af3c16ed12ee3fbfead14  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc
! 8a2c6907ee692fc19446d8ea168a9d7c  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc
! 0c6d94b1203ac0fb5ec4b826873fe674  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc
! 100272418277b9e02c48269fe1c4a69a  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc
! 584e8a7d035bcc8f4755a326641bea25  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/1.cc
! 84b696f84a6f503e0fe664c12ff871c6  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc
! 38577f59b738ec691645649f1605f994  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/1.cc
! cbc573822158f7103cde46dd539a92a4  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc
! 5f1fcaded2e1a4dce842e3a6c98b6d61  libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc
! 49fb6c61d2d4ac075b9c9324f6316501  libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc
! 9259d1341c0fd0bc78ffab0a58982e48  libstdc++-v3/testsuite/27_io/basic_ofstream/assign/1.cc
! 34f8925cb11be4f37bbd5b24fa727fc8  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc
! d59825a5eda2125b9d570240044a260e  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc
! 269e7e6f7eb97c705f248cb6299c8b0a  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/2.cc
! 57bb998b85ccff0ace0cfbc4323b745a  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/path.cc
! baf42a331a14c049dc50bab4682cc024  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/move.cc
! d243d73d06eb6de76b76bae56e04bd4c  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc
! 58b32fcc6d893b14587659de8f2a4882  libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/char/1.cc
! efe6976e6c85b407572c5d0d1f555a7d  libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc
! 670d3749f2b04712e622bf374dc919ea  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
! 7dc3f8031e79785a94ebc55862d94d81  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/2.cc
! 888ecdebb025b2ab4a82eb0b6f4d859a  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc
! 29301843cc669b8bd53222bf79ded8d5  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/path.cc
! a72c94dbfaf939f14e687132d8a9479f  libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/1.cc
! f07ec8dae6b45db16185451bfc562fb7  libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc
! cf2ecac498a793576291d268578c39ed  libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc
! 443f209bf1f7c71798807e7b23ca7810  libstdc++-v3/testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc
! 0e93e8474bca29ae2b537e1f994b8463  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc
! 21a749756b8d7b2aece5bfbe2f27d9b6  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiation.cc
! 5d7fce728347f722ac87b0f5f0f2e95f  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc
! 43f00f3f33c5a4d028c151d6876f5e38  libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc
! 1c76ba6ff5f930edaab224892c4c87dc  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/9827.cc
! f7757e85064fb36a23ef7c81dd08af32  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/null.cc
! 975c6253a1e04fa29dca2c8f0c85f5e4  libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc
! 7c5eadfe77a6edefb45268dde53983df  libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc
! 2ab0ce668a0433d5fd5c3301dbe5c965  libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc
! afff1bf83adf2efa9e19bd7bfe7eb98d  libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc
! 088778b1f21d84eea91a945111cefd33  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc
! 85c1aa773d4410614457e398cb93aca4  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/2.cc
! 41d7f0eaf6d495fe9e363ef50983be9b  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc
! 7d8c930cedffef830feb89601a95b1ac  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc
! fbd2f48c048ce177036fa0f130283e71  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc
! 5ea7ed2dedf5aa07e97a058d397f12e6  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc
! fcfa76ea9fca94bde4f26de05e1fcb3b  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc
! c85d6a5e43b3f42c42f779af3af63675  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
! 0bb7a34cb87e75cb678ac0504c4bdbc3  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc
! c07bcc86717d0c345fa6d00da68124a7  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc
! c085c03c9513cefc75323939c311bf19  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
! e5970835fe5b6dbedd12d947cbe55499  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc
! 5caf9a7fb44c15f26eabc12f122c926f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc
! d54d9bbaa4a72a5cb3015aee745b2582  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc
! 0fcf5441bfe9086ac14775cb6f5a42a0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/23871.cc
! b680ac2c02a1c166cd397a5b25911dcd  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc
! 2b69744679cee5a8ce1949f940620fb9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/31031.cc
! 4ee7cbb1a4d6f9485899670509c938ac  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc
! 6b7e62fd0a14dd35cb850545632417ee  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc
! 7e6a247ce6a73e534438cfa5be82713c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc
! 2096a7c23da6b9160b5affa019268001  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc
! 026e6c43f9d380f6ac5e8c613e39b7f8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/7.cc
! 666ff1dbd6d3fdd2e95eef11271abe77  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/9555-oa.cc
! d34dafeeea51a1c87483ffd566dc6967  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc
! c86b5e77c0b3bca2a13b57f04c03c8ea  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc
! 3d5cd81ca3fc7b9383f4c90f9f69bc82  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc
! 07592a82a8ba8a94f7f7b0d08c769b16  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/pod/23875.cc
! d1ac6507509348e488dd2eaea1a641e8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc
! b47702728be476494f24467c77f1e136  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc
! e4f3857ab19f32dc656e8191d55910c8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc
! dfbfed812b557ff91b416008eda1c220  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/31031.cc
! 0feea3a6c14100fbf0ee1e48d1e22f33  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc
! c517e97cfaa8d9152f0f3a57ed9b50d8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
! 0366f5d8ed6bb445d53d2fbd4ee62a80  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc
! baf86460c6fbc153e6da83315bca33d9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc
! f3654875d91e6f353c0daa2af906a419  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/7.cc
! 1d4d28ccbe53d2fb7c81247f0ac8b358  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc
! e705c76a5343aa34dbbe58164052e95f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 67b8cfc86233d9fa42e04d71e64a5402  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc
! 244bc3f28743cb60c639f618765286ae  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/1.cc
! f9713430ab7cc69d35b040406d449201  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oa.cc
! be04879a065986a93902619a7650ebff  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-ob.cc
! 3ef60606677004a4cbe2b7838d8f497f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oc.cc
! 8e6c2eb5a5beb45d23b9639422e36415  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/2.cc
! f26b19b128799459abae881c15336f3d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-3.cc
! 4885a5aabd70e5b9f0ae9d44c612cf73  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-4.cc
! 3cc1bca8978a0f7b1090631f78a7f07c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/3.cc
! d2dfbd4f26874dd88649258222dd2462  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc
! 6ddef508b715f6a83f2a51ff2bbbc9a2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/5.cc
! aaac341846d66a6fff7e14b3ebcac9d9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/6.cc
! 4a975fded8faddf98260d1092e65e138  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/8.cc
! 20b0fc3c41fb9926b8ee452bada0f254  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/9555-oc.cc
! f79ab87350d8e994c29f00a1c040a5cf  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
! 376dc492548aa433709db0eca0c23ac4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc
! 48dbc63de8dd66e1531d5b71c321ca44  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-od.cc
! d8274667a28dda06c953019327c872e5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-oe.cc
! 046b97e58ec5d50f7ad61bc593fa49fe  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-of.cc
! 688b55f686887a0de44b4392e7308c31  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc
! 063f9c172cc3936fb470ce11784060e6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-1.cc
! 26e7a3f7f28b0cebafff7d4da472d42c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-2.cc
! 5a70312fe40879032033f4e0a1575961  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-3.cc
! 0983b6e4161453e27728e6b822881907  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-4.cc
! f02ed3fefe81a202bb284bbb9edb2995  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc
! f60112cb71605daf3c263c65c544b76a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc
! 97dbf532d6d02b3a26604f7ff060113d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc
! 27f437ccf72b172129d7e9afa9d6a772  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc
! 3b590ff6ac2d977511aac77948e91868  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc
! 128d597961073c195198de89b77099c1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc
! 124aaa12c980cf7a44ea7a75447317bf  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc
! d7e1a9804d95500b8e7849271290c83f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
! 384074c961ac89f82355911ea1235c18  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/1.cc
! 0885eb618a5e5678325b80e619560ea9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc
! 0f09ec2948288ba23ce25797043429c7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/3.cc
! 4155c69ee05d24c96a73266e6ff6a8a0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/4.cc
! da2db59e8931a215c9112eeb1767f80c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc
! d12bfd066b19a5b5d7d37d13bdeb8e66  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc
! 2668bc343bc7ad7b5e927013e7f443f7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9318-out.cc
! 991f40504d8c548f76dfc7f5e99a73b7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9424-out.cc
! e3d490903daf2ab18e0e1d285a40a462  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9555-oo.cc
  d175b74cdf90be7b308276fabe9bfedc  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/99692.cc
! 284a3c771ffb29597fab5acc816bdabd  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc
! ddc58db7278116c62e7a1bed7488bc30  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc
! d9b55a9f91e4ecf148e18d6480e439ce  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc
! 5cbd5a55c578dbe781db7cbb421ba3f1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc
! d22b9bfd19ee7bb25ff4aa2f802031c6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc
  ebb7447c68529f67037c0007369c17ae  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc
! 8ca312efc1bacdd7f01c7bde4387eed5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc
! 38f307c55c7fc7635bd5cac376061fac  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc
! 0104a3e4e111565cb5ff369b4f349f1d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
! 450bbb05a82ef30e64cef5d157e85074  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc
! 753092a89e3b0db834ca2aa06a05930d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc
! 73d7739a2325ed34200a7054b1c7a1bf  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc
! bb35a97b0bf6deaa33a3445bc401721c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc
! 931f9bcdda95954fcaed8103b7b1209d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc
! 26ad7b6de5121cf8f6d27114da2495b2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc
! e21d0460ea1157d2a4109cc325703576  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc
! 77f6257bb8c158d50548459c2763727b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc
! e030e602bf65bbf522ed5b697d40cfba  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc
! 9bd655446864cf9e9fc6446bbcadf77d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc
! 7e16484af17fe56e0a07270428adb206  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc
! 4d291bb59f97fe20e9721d54871daaf9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc
! ac682c2043e9f5fc3a0e22d30cafad60  libstdc++-v3/testsuite/27_io/basic_ostream/print/1.cc
! 1bae61507a695195b3563ba6ac5c932a  libstdc++-v3/testsuite/27_io/basic_ostream/print/2.cc
! 98917a45d90775e48daba4392f9c50ce  libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc
! e737403a217039d6412b935805ac208e  libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc
! 6761144917798e8086ff84fa686dcf3f  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc
! 3d0186a663b22210e415ecc3a2d070f2  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc
! 0fafae3698d47ea2f3d14f135b957a0a  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc
! dc1846b8b07b091fe89ca5ef4e7e96fd  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-fstream.cc
! 63db9cc79c51db62caaeb3d39be7d5e8  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-sstream.cc
! 518f53b105338a62ccb8ff81c11dd811  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc
  83ecf48decd6af498e926fc3a67f113b  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/n3168.cc
! e9c7b7add78051c64797e2e527db534d  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc
! 5116634f6cf1876ddabf27add7b9b83b  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc
! d911af62f2914b553b745cb1364a94e4  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc
  7ddb76aa072349435f647b2c8021dbd9  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc
! 5de08763b35e784900ed1fe9f02a20cd  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/1.cc
! 696153b0da3e0752b488398d96b48347  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc
! 85e7ae065169a15745d2b34c3863408f  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/pod/1.cc
! 186f6cfc08c1d03d902a14631bd6673d  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc
! c26ee47f0c7cf10abf91912d29f7a9bf  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc
! 31363ebe07dfad8db311b063ba970fa8  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc
! 667d4517eeb3959228bfae80f8692ce0  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/2.cc
! 6a27403a5f3ac7be78dc91f6f4740c26  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc
  34b746c25af9062ff603699f54f8417c  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/n3168.cc
! 5a62b0121837865fee8209de5f302902  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc
! 708ea29bca763b0ca0abd521ea1bd797  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc
! 5bf7241d1ea1cf55d36a2094d2400370  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc
  374b556b2a046b8a0b8b251715467b42  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc
! 54370549e396565079b1fae043f59ce9  libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc
! a1fa87d6fa1b8cb88b65721a3d487bc4  libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc
! 9318d0e9198e86639508dfbdb7c8345b  libstdc++-v3/testsuite/27_io/basic_ostringstream/assign/1.cc
! 7da7bbe9584204d50bad13bc59fdd51a  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc
! fc110be4affbd5c2d1b7a853b3693c99  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc
! a7fadd5678cc29e01b4a2494fdcb6580  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/3.cc
! 9397614c03df4ea321aeddb4c93e0e4d  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/default.cc
! e22d752b857bfac62e53185e65adb8b6  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/move.cc
! 264916498255d19707e5afa87fa7b576  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc
! b2e5eabc65e3119bbe96a0cfb47c9446  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc
! 6381161a1ba2f414ef8b58793a75d73d  libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc
! fececbb274eea54d247254c759b081cd  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc
! a77ad9e71fd0d59205bda274bef164c0  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc
! 8b11b63540da5eb5926712697412a5ad  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc
! 18d08896b82c25325d0c6f5f21954e6a  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc
! 81436307e1e7c49ae8b806a2c0b21613  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc
! 52e7b8f86ff7736f867ab4bfffb2c454  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/1.cc
! 912ed4a3730fde378aa1b10219f6ead4  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/2.cc
! 9f6be055886e580ffdd15ece0623164f  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc
! bb0b461ca2e60ca6dfa807c0b34b41bf  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc
! 48d98dab972c17d444ea8b1a5b3b5b5e  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc
! abe6ac2af7e814cd6355f9bcd92a06bc  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc
! 443d94581b4b4b420ec7a3c64e90cded  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc
! 9a976a6e81179742acfbcf17f1112915  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc
! 7603a1474a23e65b9ae0734efb780035  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc
! 4b1125f236db2184809a85600dd073d2  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/57394.cc
! 5f545e9523116cb78ca3e1b5cb899e53  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc
! d13093c634777465e0eca7353ee8e228  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc
! 3c3862d037c530ea4a4d5cf804251074  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/1.cc
! b88586ad4bfd167ac9de54cc512eb045  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc
! d1c19cf8de7116c4adb52c3de1966d5f  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc
! 3a38ff16b10568d7c80b5bd3966b71b4  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/9322.cc
! 01ff92cfe2659b8fed96ec58d1a1b132  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc
! 2d5fb6510863676f18b4a30873f5f586  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc
! de7cb1612d2e2cf6c8203cd3b1577777  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc
! b1dd6cd26263c1f2538ca9207d12ec8d  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc
! f187adfda46b1f9bfc601c3f72dfbd51  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/1.cc
! 05c64164ba17fba87d1676d35979a4c9  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc
! 2d263aef0140ac5d426d7a01e198312c  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc
! c123ea9a1e81ae5c5c63a1fd048d400e  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/2.cc
! 081339cc4957402efe7a46d3a8fc3032  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/3599.cc
! 3e16e599f9556575e715dae9fe02569c  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc
! ebdeced53942e6822268be853bc0f8df  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/2.cc
! 8d299e7ae28727f4792b51e7409ba080  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/3599.cc
! 6102d7b86f32c83993fd93530e370fed  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc
! ed24e64a2966d05e7a34f6805d7061d1  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc
! 2e5e1f2ece3ebb9c883e735b6d9fb07a  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc
! 6a0067733b4f1f558ec3fe81bd2dd1a3  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc
! abee036f0add6198a6d8c0cf3da162da  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc
! 2f9564c766dd63d9172fc9a2ecc775c4  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc
! 42674d67aa9650a8cf3f223638cb88fc  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc
! e668a8bf365d4a2115dad23e4be9a0cf  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/char/9538.cc
! 253cd1a929c6970fa037af67c2ce19d5  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc
! d3f179052eee74b0bf78480d9ad1f987  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char/1057.cc
! c1dca2b92015bfa63d9ae1043daf30d2  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc
! ffce028a929e681e4ed93d81fef2bcd6  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc
! c6a9882210ea9aa92253c5f8e3b35f89  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc
! 3ab9f474d998ad8b45f9c53b89c4b0aa  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1057.cc
! 77f5f45c53ec71e409e3208789ef8384  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc
! 0db342a0eebd385989ab02ac00188709  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1057.cc
! bc081fae65da75bab94fe6ff3c31d946  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/char/1057.cc
! 3604b61650b385850d6cc9e3d23555b1  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc
! b33b4e8112db1644cdf8223fb0ee61a5  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc
! a8cc33fb968e9bee9082500586c32ebc  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/81381.cc
! c665b53b740376b0349e9f57789cbc12  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/1.cc
! afc5e1061cf2c2b663cd0e772a87a7d1  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc
! 0502d1f2f2837dd919b2cae6e21c2aff  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/default.cc
! a84eeb8b5f149b281e1e36025db8b460  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc
! 13267c9b67720320c0b79da42824959f  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc
! 51c3cc1c826b664be1ed51b75a3db1d2  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc
! 2371c77506d528d08d0499c648a7ea5f  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/1.cc
! 1eb43ec6f74fd2ed2d6dc9646dc43b39  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/9322.cc
! 5a5596ccb6564a24ad032739b1e1e718  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc
! d4f9a65fc9235dbd17598942f7a62f9d  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc
! 6b365d398229587482a9cf10d254f8ad  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc
! 6e561ba0909cd20dd5e358237f30ad4b  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc
! aaf9c2cbcb8f4dbf9b3d5e21b903d792  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc
! 2271ff89560d03dd382d5353e49bb24c  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/1.cc
! 0f8901fea5f0a8735dd9da8049c55c8b  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/2.cc
! 95484678a14bde42f2b93a506da390e8  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/26250.cc
! 651f70f02bd7b8ec6d791b1ffc9899aa  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/3599.cc
! cbd8f0a0a2badcfc3f04bb4b6e9b5c6d  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/9988.cc
! 134033e6af44a9bc50dc31f4c6d0b98c  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc
! 4d2e9b29735130465e76e060403d3ae0  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/2.cc
! b749237ed411f7afbd09e2ae040047c6  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/26250.cc
! ac06dc0f2b3031b75b1f89d20e53b8e0  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/3599.cc
! 011a9cc8d678d42b71cdac8b742c8392  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/9988.cc
! 19d257547b5ca67d030c268048bcba41  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc
! 5b0a10790884927403c3034c46edbd71  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc
! eb34a480768a8aae8a305470598461dc  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc
! f842253eadf3142c50947cca2e3faef6  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc
! 4fdc02e95d50c67e41c3dbf6cab14a8d  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc
! d75cc0bf9e2f7c90e8e5a0bc4241c863  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
! cabfd6ad384617828e085d9b8d9dec4f  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
! 3b6bfcee44df10926a9ea461670a1afa  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc
! 9431ae6599137378d6d29612e80087e4  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc
! 39b0328ff87fdd27f2ce89bc787fe627  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/9825.cc
! d8ffc517bc00988722fd45601242c344  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc
! 1bd801326378216da2d766aa064b2064  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/9825.cc
! 47df229b20d86324d583ae9b81e2cd72  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/1.cc
! 51a91fa313e89b22edd09122f84fd108  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc
! eddc229c1f6e1d0c474b353f8d9c3cc7  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc
! 74e29b4870f68505b92075ba5744587f  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/2.cc
! f37f26db3d575ea01ca5aa5213c971ca  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc
! 14c3656d20aa48d0724fe0835f629409  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc
! 6984a88a739af2d78b9b074b0b788f5e  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc
! 6e0ec9dc1e630c54c8ce23119bf6dc3c  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/2.cc
! 9f5706de1e0ec1798b6d7fd7b4798cfd  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/1.cc
! b1c2308eeb4786b2dbd033ee1322a5f6  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/2.cc
! cc15d3c5001271468a9c3b906e40a6df  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc
! 3e8c0cd801232d311ab7b163d348c2fc  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/3.cc
! 487f8db87cd5b782292ff5615d371b90  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc
! 36e21cc4ee533b786108d3e67d24ede9  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/2.cc
! 072ec78bf59a24111b6454bfd7ea02ec  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc
! 5355046f0412d8b7776dd6e34964e3d8  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/3.cc
! 59c5cde557ee84e3b75638a17fac7ba1  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/1.cc
! 00f7182ff6b9728958db17baf6c551c3  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/2.cc
! 577e2d4b593e40f908ea0733450fae7c  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/3.cc
! 3c164357a75ed1b1492e13c797b5b8c2  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/4.cc
! 666faa804df4f2bda4bed77ec04dc506  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc
! 38f7b34b8d04056fb5834b4f482781a8  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/2.cc
! e1ebb2d8ceb9b647a161d7d6deab690a  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/3.cc
! 9ff8b6340328ca6dae0795807e9ab3ef  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc
! 472ad0fbfcec23cfab73867c72568288  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/char/1.cc
! ecf72762010ea2a4ce0f38d52a57ff7e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc
! da91572bd197e777f777bee9591865db  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/char/1.cc
! 72ca1b4dfd506d28e939838e9e1575c3  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc
! ece25ea10b68992757110686ec234b77  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/char/1.cc
! 3cf5cf86408cb05cb3c691e0fea6ca7d  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc
! ed0f181319c2dc5f7739740080d22ab8  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc
! 200eb3978227aad19c2bfa19999dd611  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/9425.cc
! 0c431d60e2bd178aafb2824e1bab93d2  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc
! 851bace4232050a2432323f9f58ce65f  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc
! 2d6488c4aac9714a66a7905149279876  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1.cc
! f29827d70bd1698ee80d925b76f0a59d  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1057.cc
! fa958f44e3eb02c6ea510cd4f6693cd9  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/9404-1.cc
! 1cbf8c9228dc249bcb2cc027ca862bf3  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc
! 322eeb36fe6ffc30a12441c053adc2f2  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1057.cc
! cd9ecd04e1c6aeb91d7d9385c0b1a567  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/9404-1.cc
! c11bb47da89752795c346b70af2ffa4e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1.cc
! 136c3e66549511567b0a515936dc6e38  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1057.cc
! 328be2838b0efbba1b553bdcb47cd2e7  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/9404-2.cc
! d02768a383f43d2bdb10cada8328b159  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc
! 56eb8885b97731c8e480469c9fca4246  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1057.cc
! cca2d2ccbbea4dda9fb5c4f3c39267d6  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/9404-2.cc
! b3ae8704753579a0002195a186322a0d  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
! 6096791a50e73fccc36caa94a9c87920  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/2.cc
! 161ab5a9afddbade1f0f4cc148e37a14  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3.cc
! 5b154da1ad402e6b2ae093911748ac19  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3955.cc
! 49f43ed26b9e86829e2b4ecbcc905af2  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc
! 540cf3a303cebdaa21588babde0fa5f5  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc
! c029ff2402e43ff03c95740c9c110aec  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/2.cc
! 03ff572bd9c885eb5a5cd1f663138e21  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3.cc
! 80632d158bf7a1514ef89261415607a6  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3955.cc
! ae0de236ea76e97ef4f86d4ed76d4658  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc
! 38a0e5b5dd223f7122b3d8f865df1342  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/char/1.cc
! 6bbd85a9b71390eb727c59a118deb142  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc
! 3225d815db363824124d132b2bdff13e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/char/1057.cc
! efb5367f054d0e2b7a02a043bfad66c9  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc
! 246a8bc222f0a55d87b3e0ae70cd9dec  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc
! 18870d492751518ae14a82b1ea8569d8  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc
! 752a6617e90399af3848ff4b02bf5d4a  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/1.cc
! 4cf1022e96b965865fb2152857a30b5b  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/81338.cc
! 72855916cff4bba8ddeacc2d31cafe68  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc
! 7a8d48fa4d01da5584009e5106e4426e  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc
! ff3fa85936367b095a25742cb145294b  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc
! 4208616181dc58a38d28f9ea7f7dbcdd  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/default.cc
! 89d74fe0c3c616bee86ecafa85136995  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/move.cc
! c6f88dc75377dcb84e96a20839692a73  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc
! 14b094b241a9866f0a786c200225bf11  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc
! 0cc2f375e9c6ce532c3d8cd9bd06b149  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc
! f58329cc90221048baf1a06fac07aec0  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc
! 86561f853f8b836e1b63059aefae1940  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc
! 0ab0d1791494f7dc9eb077444ed268b6  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc
! 227fe67d475de3c69dc3dfc268913884  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/1.cc
! c17bb65332ab3dd45398c827fe6a3d9a  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/2.cc
! 2687eb0a0f2122843ab0aeefb9814a34  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/3.cc
! 18f97aaeb26747270dbce26681ab7ace  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/4.cc
! 70dd63b6b0dfced2ad188de08bd7ee8d  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc
! 877a98b17e1b87f84d02c723452e6d9e  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/1.cc
! 9a591d5b551043d3cd2f07d71ecec9f1  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/2.cc
! b37ef7e1949fc8fe4eaaa5bfdc996a71  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/3.cc
! 8d398f7ca6f9d3813f183d6bae3dc13a  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc
! 29e4e848f478fc39a466ccdb95c2c8cf  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc
! 2ff67c28bdba24c793f838239dde6575  libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc
! 5fba12f7aca4a1edf33ab22b8d4b6e55  libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc
! 70baaedcd3cade5a5c25f209871efe04  libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc
! d88e4a9fd8846a7dca861ebe0aa3d571  libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc
! ff79380afa0728303212c22208a63e68  libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc
! a4614d392b5acbb3796b79939cb5e5a5  libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc
! 9ad457ceb040dcec2f98cedb74a6f5ab  libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc
! 70baaedcd3cade5a5c25f209871efe04  libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc
! d88e4a9fd8846a7dca861ebe0aa3d571  libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc
! b9398dc263155ad5a384297bf5673834  libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc
! f089f6d79280ba27d5970728c9547b24  libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc
! 196ee909c6aea9f701cc4a963a164d7c  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc
! ec756ea61fc3041c9e9a8651108196e9  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/lwg3171.cc
! dcaa17c99fca79cfaec0b231fb64c21a  libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc
! c5a5f4054d918d25389a38e43e598870  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/cons.cc
! 33940d3d4a781effc1b43653a4f377d8  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc
! 332c803edbdff9c841b88227cc22332e  libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc
! 49bf86eac7b5b6a8d21b39a0c214af81  libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc
! b8deaa8852d28886d65d3159b18583b8  libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc
! 87387d500b0dcbaff00f6481f75c1773  libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc
! 8b77320325e081868ebcaac6f7831105  libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
! 5e4c6c3080b949018ddcc973e07a09d4  libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc
! 46997fabaf4a1fd147c82cc9004cf051  libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc
! c3004b2333f0602855ef3fea926469af  libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc
! 1790fb9cb40a1f0f720b3fc15e69f789  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc
! 8e02e46740c761022f6f32bfa2166c1d  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
! f114cc7a36247c423c6ac8a561782d50  libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc
! cc97f63a43df384b6daadef4016481b0  libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc
! c4a0f1988ab64c05d8acb1647b35c6b6  libstdc++-v3/testsuite/27_io/filesystem/operations/bitmask_types.cc
! cb4b3d456ead29d94bf3b5767d4b6877  libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc
! 1d1b4b77926114fce38d0b0b554b15a0  libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
! 4f37dad736d5830dcf3282c65c29c238  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
  10b6e95add9984bd29138cd25bc3a19f  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc
! 109310d29e04f76e6b1ff071033cc77e  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc
! e352fdad70e1a6320e74ba1e9fd4a706  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc
! b1f8b3755d5e961b4c0964b36eb92914  libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc
! 1f18e7971e7b3cd2f6175956cafe0e41  libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc
! c8bdaff70360a60269d6e8a996aca443  libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc
! 69965d0015b9d203a1cfbfaaac52c1f7  libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc
! 04c86b3afacdc145261be0d64532227b  libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc
! ec03f03a8b2b9270baa4037f7a176e20  libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc
! 76e17e2212f83c5585729e958147caab  libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc
! 09b9e11e72efa1a08e2d8572058d1f0c  libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc
! cecb46fce2cba2e40d35bdb10f5f2047  libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc
! 79b89b081feab625ec98a379d0affc15  libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc
! 3758fee1ba06fba8ecf9ea5789a4f69d  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
! 40ddc534166b73723cb3cf2f17775536  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
! 18abd8c8f676eee660331074eeb24b46  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
! c562c13d312277dd683218b9c8293552  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
! 3ffca5f28a466d05823facdae80f605d  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
! 8328a09db3e4efe031a6a2ba359d1c7b  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
! 641661017a1404a9d3867cbb09e3b531  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
! 6368c9e9607057138337981ed1424216  libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc
! b2df1f29a4d5c0a766252c28fb48c690  libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc
! e4272894265d6a0c5e1f3f39aea705dd  libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc
! b2970ce50b620a0f99e06931534c3d14  libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc
! b354aec57495879f12015eeedca7bd3e  libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc
! 6aef0c5f9d0d8a832b7c2868db251cba  libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc
! 9204b3e9caaba97beb7202b881a2082c  libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc
! 5ea2a27db7c0138d09dc975fdbc21f51  libstdc++-v3/testsuite/27_io/filesystem/path/assign/copy.cc
! bd0b3ffbf0b5d42a3102341682967b7f  libstdc++-v3/testsuite/27_io/filesystem/path/compare/compare.cc
! 69a1e1cd94571e915ecad1418d14dbef  libstdc++-v3/testsuite/27_io/filesystem/path/compare/lwg2936.cc
! d9c79dd452a58cfd063e49ff476fe370  libstdc++-v3/testsuite/27_io/filesystem/path/compare/path.cc
! 841597b8188f1acb8cd097ab51e19134  libstdc++-v3/testsuite/27_io/filesystem/path/compare/strings.cc
! 0bab77a18fa3ca7723e4133a41f95bbf  libstdc++-v3/testsuite/27_io/filesystem/path/concat/92853.cc
! a2763ee4993b7a1eb74183a35b05454b  libstdc++-v3/testsuite/27_io/filesystem/path/concat/94063.cc
! d6cf66594b90a2255355df35b0276d5f  libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc
! 8dc6bdd998bb023e72c439e2cdb12dfd  libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc
  a22e69eb2c027825b8fb3e0e6df6a97d  libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc
  3bc7c7fa91cdfae8b85e98c050b994cc  libstdc++-v3/testsuite/27_io/filesystem/path/construct/102592.cc
! d97498f04c005f4a31da7e2972e0c26b  libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc
! bd9c5f697a418a609546d19eb4e3dcff  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc
! 1e4d3a8d363e35b211f3ec4dcce1fbb0  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc
  7e3f9d185f69161e92a1fe6e162069f3  libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc
! 2680a78d2f852fba3c2fc535cfc55d86  libstdc++-v3/testsuite/27_io/filesystem/path/construct/copy.cc
! ece59cd95a760acb397eab8866beeeb7  libstdc++-v3/testsuite/27_io/filesystem/path/construct/default.cc
! 7e47e2b4ee076be43e7ef1e068603ab7  libstdc++-v3/testsuite/27_io/filesystem/path/construct/format.cc
! a328cfa8c9e6f44df8b1b3db7d98afe3  libstdc++-v3/testsuite/27_io/filesystem/path/construct/locale.cc
! 556b316187bf945dd03cd31223f4aeb9  libstdc++-v3/testsuite/27_io/filesystem/path/construct/range.cc
! cffd1d3a38d2fa6c467bd78c7493bba4  libstdc++-v3/testsuite/27_io/filesystem/path/construct/string_view.cc
! ad821503f4290f68de6737d9645f2ca2  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/extension.cc
! fd22923740f046e7d35f4450b7e8665d  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/filename.cc
! 5a846cb1a4e9009ae5691a24540f0dd1  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/parent_path.cc
! 9e41ad44ce0986d6f2cdfbd76674b532  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc
! 5d547bb36a475e482ae08a6cd72c38b4  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc
! 95e3d7c436c02bee323437d82be3d14a  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc
! 08051fd61f98309f5322ec33d7a9b83e  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_path.cc
! 2b0fec0d2cb6169bf98d54ba19a6ca28  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/stem.cc
! 5949d91392f0f47b291992a5d8870eb9  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc
! 8f37bcc6544c96dc14a1dda07d716d75  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
! 2c32782c98ff7bd0d7c28f954da5e523  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path.cc
! 37f45d2abe6ac580fed0d4704de88a51  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal.cc
! 782387a3994c980d729fe8a9fbed0fe6  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal2.cc
! 5df411a80fee492b1c9fa0e0ef2fbfa7  libstdc++-v3/testsuite/27_io/filesystem/path/generation/proximate.cc
! e2537955c7c695b6ee57ad0d3f1600e8  libstdc++-v3/testsuite/27_io/filesystem/path/generation/relative.cc
! af0d0eff128a7d415f016b32526dda9d  libstdc++-v3/testsuite/27_io/filesystem/path/generic/94242.cc
! c2c07f3547501abfd5bdaef06ad1a5cf  libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc
! 5a2ebda0faf2a038840d0cf1502429e6  libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc
! fbf5f0e67e282961f7342c8ecabd8c41  libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc
! 6ad06eaf4da562555c6f24e8caf32ad1  libstdc++-v3/testsuite/27_io/filesystem/path/io/dr2989.cc
! 5e630c490ff113924221b5f76acb8644  libstdc++-v3/testsuite/27_io/filesystem/path/itr/components.cc
! 25515fb226c1c25f386bf3bb563fd3bc  libstdc++-v3/testsuite/27_io/filesystem/path/itr/traversal.cc
! 87ef6ea550704f9fb38783baf979bfe5  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/clear.cc
! 346aeeb5766f625d868a66e4c2f1bca3  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/make_preferred.cc
! 9d5b779a9adaf271e13799afc86bd567  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/remove_filename.cc
! 301983a4df5f74a8927a99c85ab5bc50  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_extension.cc
! f2137d1f94e085dea015de968a9ff931  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_filename.cc
! 70e104f0be5fd586be7a7f16adc0f8fa  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/swap.cc
! 718937e90cd08658c91f8d28b0bbe607  libstdc++-v3/testsuite/27_io/filesystem/path/native/alloc.cc
! 18be18b6013e71480b71b201979f3916  libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc
! 5a9fed39fc27423161826ebdc588c669  libstdc++-v3/testsuite/27_io/filesystem/path/native/string-char8_t.cc
! 426b1ac4a6278ab70bfd9d3806818cd3  libstdc++-v3/testsuite/27_io/filesystem/path/native/string.cc
! a29a48e3f573f8b543e5d5b289dbc5f9  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc
! 51c2bdb85adbc7ea64554994a5bfbca6  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc
! cfa1f7460adf99767a32176a2ff3419c  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
! 794f9379dd4188162c675ab78b4c9d12  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc
! c26d3cb3091abc69924e9d05c61d3449  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc
! 3c35b0a1830350f041d6e3338db874cd  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc
! 765a0327b22ef182d6a20ff7338a3175  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc
! 641aee17653a2301baf0cb761b712432  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_filename.cc
! b1a52a15da8fd5f103c6b34f1c82e29d  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_parent_path.cc
! 17ab412838cff3abdcf7c8460ddc0fed  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_relative_path.cc
! f75d4bedcd47e132d9cd3292998c249a  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_directory.cc
! 463319c6e69919334899e3a1ce808d80  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_name.cc
! 38929a67ea1192381d1978376d9ac119  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_path.cc
! fc51cbee843135bad383ca5f9dce6a84  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_stem.cc
! 0e1d985a533d63983e7297ab15b87936  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_absolute.cc
! f99f5a9d705861a26c3704ca5da3f5c3  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_relative.cc
! ecf760b26e8f3c7bcb2933c88f9b12ed  libstdc++-v3/testsuite/27_io/fpos/11450.cc
! e6bd3b1841bec35d5d3fd71479f84877  libstdc++-v3/testsuite/27_io/fpos/14252.cc
! 7fb10435866d20f35e76be32e50f7aca  libstdc++-v3/testsuite/27_io/fpos/14320-1.cc
! c9bb816dd7b87793a6cd45feb2ca985a  libstdc++-v3/testsuite/27_io/fpos/14320-2.cc
! 253b5440033964af24cf52b336af8b09  libstdc++-v3/testsuite/27_io/fpos/14320-3.cc
! c6dedb73ca096bca1f623173c3886efb  libstdc++-v3/testsuite/27_io/fpos/14320-4.cc
! c2df050d95f20a950ee57a4a0a1b6bc9  libstdc++-v3/testsuite/27_io/fpos/14320-5.cc
! 5008c8e32f7d6074268a97843dd8b0fc  libstdc++-v3/testsuite/27_io/fpos/14775.cc
! c706d77bec2ac8ebe91d4460d2f8eb48  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc
! 94165b861d4864537b011f5b8cafc3fb  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc
! 645dd90ed07b1afe960553ad095e2b62  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc
! 771fff6a1c8c6d4762e8cf514cc50046  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc
! f3c27efb11f4bf989eccef8b4cbde896  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc
! 762672f7a1cb153a5372e50979a71672  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc
! 0af9131581942ac99f5fa920fb7c1f3b  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc
! 7e1ec3f8521d863c6e587017dfe1f513  libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc
! 98cdd88a4322de3761fe42bc7b6fb9a5  libstdc++-v3/testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc
! 3a0d5c7ee1067340549da7c775dd6f5b  libstdc++-v3/testsuite/27_io/headers/cinttypes/types_std_c++0x.cc
! fd1d8c2194d13eb73972815e3df9fdc4  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_neg.cc
! 04ce95bc69fb361f0b9ed6b6a61c76a1  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc
! 7fbfa82907331a706544a4cb85c12354  libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc
! 5827abfa7a3b1f921f26aa9bc1089f54  libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc
! 7e510b9ed7a26c95dc0fe343b459bc9e  libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc
! f422a6d7ea1042a43b0576a7f30b6f3d  libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc
! 3d5323867286a267c237c8687ec08f11  libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc
! 22d5b1264ec60efcac5396e705a59687  libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc
! dff476a40260ea1d41499a4d9a1dc431  libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc
! 563e1beef4d8fc03f62916396fccea88  libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
  16eebae0b45ab9320a5df94e03dfa4e7  libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc
! dc62241fce8c23c4083b7ec1f29b49e2  libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc
! 8cce5d350646ba2d98abe6abc18dff47  libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
! d3814d3d47f1342e0ef519e0420dfab5  libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc
! 4c1cc797e3baf6f7d95261b91e4023ec  libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc
! 950cc6ae6462e9fc8a2b7de673a1db45  libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc
! fee5dcd00f0f05fb8bde8d7a71652f4e  libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc
! 7644308dbe39cf5314a6618f540802c8  libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc
! 37bb88e75c045567d0c8170261853697  libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc
! 1df81c0672cc34f5e7914e1cdfe08b8e  libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc
! e84e149e766157a466f9c374285213e2  libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc
! 6dbde6b146666f55d5f0a16c23d27ca2  libstdc++-v3/testsuite/27_io/ios_base/callbacks/1.cc
! a2a28bce7b4b617997b4ef0a9a049662  libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
! 94be1e9ee572ecce699779f18a14f6a6  libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
! 1f3fbf4ee8970f9391ecdcaaad82bf8e  libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc
! c355cecef1ea32072fafc285f4ff7524  libstdc++-v3/testsuite/27_io/ios_base/failure/cxx11.cc
! 89cc2ff868d8169b86ba811a146d0831  libstdc++-v3/testsuite/27_io/ios_base/failure/dual_abi.cc
! a0d3de10c0fe38daacbcfc317ba2b821  libstdc++-v3/testsuite/27_io/ios_base/failure/error_code.cc
! 2e932fd1df6980792958f2fc6b51cdc8  libstdc++-v3/testsuite/27_io/ios_base/failure/what-1.cc
! b545ff35fdf2d4cdfa03486b9139322d  libstdc++-v3/testsuite/27_io/ios_base/failure/what-2.cc
! 60e6e7160fe2b4430797a630d5b25fa3  libstdc++-v3/testsuite/27_io/ios_base/failure/what-3.cc
! b105c33626efa976a9440b8fe2910033  libstdc++-v3/testsuite/27_io/ios_base/failure/what-big.cc
! a3e44ac248231f649765705f687050fe  libstdc++-v3/testsuite/27_io/ios_base/state/1.cc
! b3ef0bc9b48f109224671e83615d03d4  libstdc++-v3/testsuite/27_io/ios_base/storage/1.cc
! 346223f26498d5826a9a896c17128847  libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc
! c11b4bc4dc5c6a94355b4b436ccfc132  libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc
! 9a82223397ef26de3cb2450ea05ee035  libstdc++-v3/testsuite/27_io/ios_base/storage/3.cc
! fb4d081c152e35e33c7936c2bca59241  libstdc++-v3/testsuite/27_io/ios_base/storage/68197.cc
! 0316685c64248173f75ec670964b9708  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc
! d801d2dcdf9fa1051a74f9ee571c7672  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc
! 3ea969b549da25ad4dfaf0bf81b5537f  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/2.cc
! 6aa1911658c5e48634b522a5183a075a  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/9523.cc
! b3c32a6314dc1e38acc88c932945e3e0  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
! 9925c6c11280a8f3350089c5a088c4f4  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc
! bd993ab72b9c76da098b0a30d9c7a2d2  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc
! 00b2aad84a5b789eb902576004fa1f4d  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
! 97523a0fcfb8904bab7dd4434d185d76  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc
! b96cfc1e0656069fc8c71dc3c445a713  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc
! ded7eef52c8e0c46d4c8e0bc3305c4a0  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
! a02ea99f6be016fe4e75204f57b441ad  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc
! 1e325a3744482f71eb9dbd0ee970942e  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc
! 3c1501ff9250c065753deb5659db5199  libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc
! 6262d8d581e3ebe7a8217362432bc5cd  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/1.cc
! d67e4c466523e8aa8c81798e76f1d843  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/2.cc
! 1a734624013ed784004fbcd885e75687  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc
! a6c35ee770858821661385d72e57ac4a  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc
! 9828a7df6a3a56a45fc99f0322809b3d  libstdc++-v3/testsuite/27_io/manipulators/basefield/char/1.cc
! f2c7f4f9afb593d8b185495e7e03fa65  libstdc++-v3/testsuite/27_io/manipulators/basefield/wchar_t/1.cc
! 454865e0034c8074585a62ff5023ca35  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/1.cc
! 91d4eaaf5970272a9eb14032fa97a49b  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/51288.cc
! 056c5da0a526df04d25b1ff452a5e4eb  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc
! ce3eb3ccc7b339b74aa03f2b94010be8  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/51288.cc
! 58432a08c48f1fbf89d1cb539bdff636  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/1.cc
! 4419be4cb2e37bb9739fe691ad1912b4  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
! 498df9b93ace141c21d16e312b974096  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
! 0fb63863eac23591b14c8ae12f829c15  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
! 09ee7844da1ec460b05d5a58956c6c38  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/1.cc
! 37ed6e2db4109dd40a983a2087cc718b  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/51288.cc
! 3fc4676d0454161e6cd285791cd97d43  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc
! 22732f0533bcd2f507b2f24bbcecd006  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/51288.cc
! 7afcc5b1171f079dfb7e0da6d949e719  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/1.cc
! 4df62e8671ab311533feb977690d66e1  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/2.cc
! f14e0316bebefb6f125fc071b2ead9e6  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/1.cc
! fe373fc9aaca598bcb3fdafa3ceb676c  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc
! cac688919b1669f2c78ab76f12086624  libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc
! d8a570bc7cd144dd526a653777686a0a  libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc
! b44e9e5800c82bfc1dc35ed5cd255d0a  libstdc++-v3/testsuite/27_io/manipulators/standard/char/60270.cc
! 4179785abf4325bf96011bed619d0f07  libstdc++-v3/testsuite/27_io/manipulators/standard/char/dr2344.cc
! b31ccd2d8df0c4099fc4071f2f8cd7ab  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted.cc
! dbe9390f64c1120ce8e10ab15fde1df4  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted_sv.cc
! ef4b08ff502d09b5638ebc18885e40ab  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc
! 005a69c959272b2f0dbdef76006faea8  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc
! e422f00620e6f0cfd05e714e5f41f7da  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/dr2344.cc
! 9f39fa78b26fa7c978868bbe71b684fd  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted.cc
! 561330c438a11e61ffa3cd99b647f71a  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc
! bc77ca8307ff2d75a7ea2fb8a68c914a  libstdc++-v3/testsuite/27_io/objects/char/1.cc
! 2e8caca5047404ba5cbea55d67fd3236  libstdc++-v3/testsuite/27_io/objects/char/10.cc
! be875f448476c6aa3944364998add9db  libstdc++-v3/testsuite/27_io/objects/char/12048-1.cc
! e01b9aed2fac661dd73dc334277d1117  libstdc++-v3/testsuite/27_io/objects/char/12048-2.cc
! 8fbb0f9a91916f45c746b6d95b8b386e  libstdc++-v3/testsuite/27_io/objects/char/12048-3.cc
! 9970976f17cd8f1dee2d99a1d605b265  libstdc++-v3/testsuite/27_io/objects/char/12048-4.cc
! 53aef638ee05d69df4851c71dbb9dd79  libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc
! ba5ca57940e57f3201108f6d8c965a0d  libstdc++-v3/testsuite/27_io/objects/char/2.cc
! eb1956b75e4e6831b720f55cabdc746f  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.in
! ad805f32baa23dadbbc2679f30818fe3  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.in
! b6335102d1fa1f8bf34cbd680953aa41  libstdc++-v3/testsuite/27_io/objects/char/3045.cc
! 2eb77add287d3b6360dc6b94c669aa0e  libstdc++-v3/testsuite/27_io/objects/char/3647.cc
! c9ce44908dcf6f707686a56e35c17e4c  libstdc++-v3/testsuite/27_io/objects/char/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/char/3_xin.in
! d482b1dd2d3c95c7e35583b9949c7cc8  libstdc++-v3/testsuite/27_io/objects/char/41037.cc
! 94e4e1722efadc984bc506490bf9470f  libstdc++-v3/testsuite/27_io/objects/char/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/char/4_xin.in
! c55e4b8f60ce19ac4ffab683e5fbe0f8  libstdc++-v3/testsuite/27_io/objects/char/5.cc
! 7206810e8c8c95350a97b5fafe69f039  libstdc++-v3/testsuite/27_io/objects/char/5268.cc
! ee629dc62ac6e038ab7337340d9712ca  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.cc
  81dc9bdb52d04dc20036dbd8313ed055  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.in
! 5b4c5cd27a0687fcd7f9318496fd5cff  libstdc++-v3/testsuite/27_io/objects/char/6.cc
! b3799b5b0f6b22d2b064ebc7ec99e8ca  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.in
! 763a66863b06acda295113c48c8dc178  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.in
! 9fa89b61318218da818315f8c3efe6b5  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.in
! 41d214157756b1bdb9180fc85c202965  libstdc++-v3/testsuite/27_io/objects/char/7.cc
! 88dda9b7f210da516090e1832e1f303d  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.in
! b98e1a5d9443ed64ce5a1d4f434cae58  libstdc++-v3/testsuite/27_io/objects/char/8.cc
! 128e3394d260c4856914a4c0675aebab  libstdc++-v3/testsuite/27_io/objects/char/9.cc
! 603d094ed1412a65d5f783371231d9e0  libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
! b644773ce18330031bc0d59c6167effa  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.in
! 981685daae4267a6ea20fcad49578e4f  libstdc++-v3/testsuite/27_io/objects/char/dr455.cc
! a56170dbdba99b4b8e86f8481d678867  libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc
! 4be31e3fe71986c1b7b15f7069e239a8  libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc
! 9d0565e4f5c893a6ad890bfc059cbdff  libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc
! caeb0b79c91e1ae6648df83a33eb3880  libstdc++-v3/testsuite/27_io/objects/wchar_t/12.cc
! 0c16a44430524adfad94d7017b9d6ca7  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-1.cc
! ce886be14ead17f197543cea7225dc31  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-2.cc
! b6f1b9c78b41b69c1bc54e6badd772ee  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-3.cc
! 7ee5bcb6f6f1396a3ecfad2be26d9cb8  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-4.cc
! 1550ddfdab5a82f6198941cb62a69cf9  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-5.cc
! 1ccee35a4e01556fca83999ff88810d3  libstdc++-v3/testsuite/27_io/objects/wchar_t/13.cc
! 0bc29860ce1a43a1ffaee14df048c217  libstdc++-v3/testsuite/27_io/objects/wchar_t/13582-1_xin.cc
  d577273ff885c3f84dadb8578bb41399  libstdc++-v3/testsuite/27_io/objects/wchar_t/13582-1_xin.in
! d5123b18d47c5f525af13e04272ca512  libstdc++-v3/testsuite/27_io/objects/wchar_t/2.cc
! e8f3cc6052c3f66b569193e3708eeba0  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-1_xin.in
! 4e8ea3305744c531ca0440fb0dc2cb3c  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/wchar_t/2523-2_xin.in
! ba109b2a60d16f6cbd4f8eb739154a3a  libstdc++-v3/testsuite/27_io/objects/wchar_t/3045.cc
! ab90b05934492349f10b018902efed20  libstdc++-v3/testsuite/27_io/objects/wchar_t/3647.cc
! 7bfa4a9009a0521864cdbf838df533bc  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.in
! a0a6fd4ad5e7e3e08857c64c4555e61d  libstdc++-v3/testsuite/27_io/objects/wchar_t/41037.cc
! 942a79f6f076f065ac365e2870f56f7f  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.in
! 856f519e964b48a4aa22119ef021a6c9  libstdc++-v3/testsuite/27_io/objects/wchar_t/5.cc
! 24710b7d1278af14382a18281a5900e0  libstdc++-v3/testsuite/27_io/objects/wchar_t/5268.cc
! aef7cbdaa4c241a4c2a8169c5c9a1a19  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.cc
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.in
! 51562ebf4246cb3095d639b7b78b942f  libstdc++-v3/testsuite/27_io/objects/wchar_t/6.cc
! 86659accee41cee13a174d1198d17de1  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.in
! 5ce858cca41ecda9c0d1ffc234b0ca95  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-1_xin.in
! 986f795d3d9486f60dd71ad5c14fbe47  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/wchar_t/6648-2_xin.in
! 4e1432f3e91f50e1d413cd43b67f9fae  libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc
! be8eef6e9ddb10cf16fa321ffc92c9a9  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.in
! 2fb0a71b5f670c5e67662e8ca73ba20f  libstdc++-v3/testsuite/27_io/objects/wchar_t/8.cc
! 6c6a93755a669dcfc3609cdf99d4067a  libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc
! 96a11dfa332bfb13ca3027bdf6c8213a  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
! b40de0dc8675fe32a019df24e85b8328  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-2_xin.in
! cd4006f591d8b40dedddd2cbdaa5ab4c  libstdc++-v3/testsuite/27_io/objects/wchar_t/9662.cc
! 28613ae2987acee0efe4f1ea6a3768b2  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.in
! b16ca97a127484dafe83aa10e1ba1de6  libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc
! f3927c1ad189aef93b673255bda6e2ea  libstdc++-v3/testsuite/27_io/print/1.cc
! a439eaf7ea52a89548ecd3344bd3c08d  libstdc++-v3/testsuite/27_io/print/2.cc
! 802c2d2f005dfe50ca9dc609b585af68  libstdc++-v3/testsuite/27_io/print/3.cc
! 288394f5bb6a16ebf7b629b2ecd1d30c  libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc
! 73a09176587eb419ed50762ec5d35b69  libstdc++-v3/testsuite/27_io/rvalue_streams.cc
! 9f91196bd2ee848a8c2cfc4258d112cb  libstdc++-v3/testsuite/27_io/spanstream/1.cc
! d8cec34c2a6b668a6dc232e2f6df1ff5  libstdc++-v3/testsuite/27_io/spanstream/2.cc
! 33aa6ce2c2e3d3959e5a01a4971407e1  libstdc++-v3/testsuite/27_io/spanstream/version.cc
! 543694372788e31d27b953c35a5cb3d8  libstdc++-v3/testsuite/27_io/types/1.cc
! 0e9f1451a64852d166a2a1d862bf4c3c  libstdc++-v3/testsuite/27_io/types/2.cc
! 5d3c1a17c72f684739f4a3dfb9d0e92c  libstdc++-v3/testsuite/27_io/types/3.cc
! ecbcdc3c6d5d5c9f9a454b3e3ffbd567  libstdc++-v3/testsuite/27_io/types/4.cc
  2311cea628cce5b052734c24d5a5cae9  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/107376.cc
! 67ccf2b0cee8cb5525edbeae7a75d962  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc
! 89fedef6923835de46f9300172708c19  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc
! 0dc8e7a56ad12a214604946a079d4964  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_01.cc
! a78a0425021466a319741f5048cabbb6  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc
! fea8ffebaf73727632118301a7828d4b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc
! 9e1fd06ec6be193a1293f7d6328a1934  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc
! 3d41b941cf9432ea7eb9ce360f9ec308  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc
! 586405c03e6abe6151a225f2cedf502e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc
! 5df24d8ded15bf0cae9ab45fd0f586a1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc
! d5169eb7b84675c8ff235ac98c0b919e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc
! 87f987f4a0cd88a014cb0be4ddf256eb  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc
! c4fb6e8b6452b7000ca7a5147b56eadd  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc
! 0f3702702a01a689f2b815cce37a8383  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc
! 1e14cfbad58b6316f76d585f9ca7fb6b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc
! 4f84df250a7ba7566a859dbeb091fdc1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc
! 86e38bfc1fb67219849e7eeabae4e56c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc
! 08979870608f4706134c47637d81168c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc
! 2eed31c9d4cca1f2665b339c572daace  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc
! d297b4df1e74511a34e980410132dea2  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc
! fa67b0a0d287c6cce3b7ca625c776daf  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc
! 8699264521bbaa383329e3bd6933da5e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc
! 9b266d0ebb7bbcca0bb60242ef064a55  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc
! fe9baee95159e232fcd8d675cb2535d2  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc
! 23a2395313e6c4f6b174a5e68df28305  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc
! aeaed531d2ac57cd592d87441f38333d  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc
! 7325843bada76716fc297710e77a33a0  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_questionmark.cc
! d49926b6010365fe905bae97388193db  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc
! 3547b16dc26554ea2e0d01b8708b0233  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_any.cc
! b14f43ffd390fae3081df8babaa1beb1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc
! 898ab4310f59b5fb27127bba2a26b229  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc
! 9ea10c17c5eccb678c6d6db14adce3f1  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc
! fd50b117bc67e4d2e29a395db585083b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc
  738353c203eb8b056c97aefd696b8662  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
  2b65ead41cca6c486af5b12cb9181709  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc
! 7c0f0425102d045e3baf95aa3e878b06  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
! bfe0e8a522c01ae62d4d05cd55fa509d  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc
! 2e8156cd00d216594eff35aaba36feca  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc
! 95d9ffc344116112e7b2e97e1afa2d7c  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc
! c1ecc73aebc0f04ea3b7031c1ca1a551  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc
! 8f25a8df1670ed8d8301f67bbcd92dbe  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc
! afc52c23ced9f8cbb01214824e155092  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61424.cc
! 677e33b8c07fedd41a84557ec0ab36da  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61720.cc
! 8ae139f046f47f6fe355c45f37058fa4  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/basic/string_01.cc
! f941b4d6c4655efd20cdeb702c3b932c  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/dr2332_neg.cc
! c1ba40d4db9f00669d868b073317f2de  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc
! d6d1cbfec95c6727f054468112ade45f  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/flags.cc
! 7ac246b75a6168f8baf6178b9aed7615  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc
! 9c9b7310d908eb726dc8e4570b6c8f18  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc
  5a7641749deafb9050db1a58a28b53ec  libstdc++-v3/testsuite/28_regex/basic_regex/106607.cc
  be5036bc868f3f3488b30d40a412c9c5  libstdc++-v3/testsuite/28_regex/basic_regex/84110.cc
! ac4a1c2b53a40e9c9017c876f7102ef8  libstdc++-v3/testsuite/28_regex/basic_regex/85098.cc
! 05b339ad6b0f4ef8ea291be13c900a59  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc
! d8d2bbe0f112853de1bc3dd7c1c188d1  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc
! e74444eb7fe42fd71e25a707c105f68c  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/lwg3296.cc
! cd00d3b63468e36de414a20db6e86d7d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc
! 90a462330abefa274ba7fa7e6747793c  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc
! 51a4aece9828cc5de70f690394ffa7f7  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc
! 2d5246801ff7d76e94798701be6173d1  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc
! 7febe845c22b414c0f5a06bacfd19ac0  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc
  195cadd08b447221da1077de685740f9  libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc
! bd48582bf864e39142d6b53183e873d3  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc
! a32fef1bcbf45d70f775aba1a876e0a7  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc
! 106be44dbeb073dd48eecce16f4410c6  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc
! a3532e5e4026e9d6a2aaf3cfc943d05d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
! 0c4fb84b79af690246baf1014b94f2be  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc
! db92b4bc54851b993244debb28e5e4db  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc
! 5cea5225eb1a8f653aa885df18563f63  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc
! 0b8e2546eb7145c3deb826dc36201ce1  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc
! 018ee70b096d931b6290bd834626d5d3  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/83598.cc
! a1f3a835e515cdc0806e242eb6bda3cd  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc
! 800d2e0f38340ac52f5d51c209ac95eb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/default.cc
! 3bb5ac71f5f21ff753dc2f06718a1556  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/iter.cc
! f9bebe952a736a6d0e46f6e7cd8ef785  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc
! 718af06e59504167d7fe17e9a9587b20  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc
! e979cd95f8714d518c72f7dd7f5bf988  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc
! c83b053f5675c25842644093b64dd949  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc
! e1c273a7866a2a017117d5ca059a09a1  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc
! 2e7803b3bd67fc1d5dc614118ed55f9b  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc
! f600bfb2d4563a66d4486d480e9958ad  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc
! 92c4893620bf241518518f58b06e5aac  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc
! 6d9b53308d4a5487197bc2cc66ae4835  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc
! 3411876f8b5cd6ab5fbe5698dd2d2e0a  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc
  9c80b6a78eb2b9bd9362289c681a9cfb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc
! 1c550190e63267b3730c1640ec717ff2  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc
! 821deec40b5e0780707a423ab7c4e7d4  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc
! 3d9a0e4347b9d3b3a0182c01805d6fd6  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/deduction.cc
! 0eaf1abb8c3efb36c91245d97d308f1c  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc
! 6ab64b744e051f74d168529b41cd33b0  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/string_range_01_02_03.cc
  2e401c1bf8aabcb389e6eb25f1356cc9  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/grammar.cc
! eb1d30f92a477545f2db54192121ab5e  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc
! 641971b443944c669932669477e25e08  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc
! 531505043f5fc82c66acde5097de7d6b  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc
! 270f500ff1ea9cbfdc90ff323a789e64  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc
! aeeaf1fbffbb51849df77447eef14807  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc
! 7d7f86e780ecc9e9ac02b3bb5d7aa240  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc
! bbbbcde1c2bc33ad975c00702f6a4074  libstdc++-v3/testsuite/28_regex/basic_regex/imbue/string.cc
! d89325abc678c37e95268fa2d0a32781  libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc
! 0d33d3835bbad0506c7c81bdd0870c74  libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc
! 29e588546ae55518491aaf6dda3ec4e6  libstdc++-v3/testsuite/28_regex/constants/constexpr.cc
! 82beccf3a11a58e5b6c4f63c8727c6c2  libstdc++-v3/testsuite/28_regex/constants/error_type.cc
! 73b2478b4dcd7ff666e59ccef506c135  libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc
! 6deb9f90d0027c1a5a8ec88ffe62ff0c  libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
! 94b340c411aab5949b69bfb6a4823bf6  libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc
! a5ceffc6aaecea9db0dc01fa0987367c  libstdc++-v3/testsuite/28_regex/init-list.cc
! a56081012e8f95a86e73ee2fbfefaac1  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/64140.cc
! 8d7016c54aeda32441d9ed2fd9156497  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_01.cc
! ecd58b21a14d6d933189bbf7f26630a2  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_position_01.cc
! 31fede9d5d97bb613154261888c44946  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc
! 803d24fbd295e630c8acddafec4cfb83  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/dr2332_neg.cc
! aae38c8cc21f8f96d58288f255b3ce0a  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc
! fb837b2517e3a52c0fd562c8a8f23065  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc
! 0a3077a646e7248fdb489b2dd88b0a77  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc
! 3ad54b65b841cf4de70e9064a9f125ea  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_01.cc
! c3af139f4778bf923fe5ee3d5e69c0c8  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc
! 8fe9c48450c81ccc602ac4380fd0b744  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/64303.cc
! 2f0781b6fc98431136f55d9580e99279  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/char/string_01.cc
! 7c59b6606f631b4cb6d6432251e108ee  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc
! 33f59e85f0bbd5bcf8a6157886523c1e  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/dr2332_neg.cc
! 27130408c4867dd6efc98f85a5a6bc18  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/wchar_t/default.cc
! 01b6adc11e3690db0828583cec9212dd  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc
! 6c379aeebd35f098b8452981af205296  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc
! a3d7ef0ffc77bf19528c95e5d5255f5c  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc
! 8d08e03f4d1049493c17577ee9db1863  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc
  e50868497a6eac9c6a7e389f3cda11ef  libstdc++-v3/testsuite/28_regex/match_results/102667.cc
! 665e1b4c53da1a80a21079f67d0a2084  libstdc++-v3/testsuite/28_regex/match_results/94627.cc
  ae3c69a2af41b63301190a3e8902a808  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/alloc.cc
! 986e933ae22427cb3166e6b31e4aad0d  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc
! c86f2b93735f09c40c0c93e2bc440277  libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc
! 2389aabd9e29a0002ddfda88a74f6fe6  libstdc++-v3/testsuite/28_regex/match_results/format.cc
! b8eaecc509771e1d8e8cb5cf76ef0957  libstdc++-v3/testsuite/28_regex/match_results/out_of_range_submatches.cc
! 08fed7de8839f6b0178547f3942b9466  libstdc++-v3/testsuite/28_regex/match_results/pmr_typedefs.cc
! f1e59c573ea9d71965009bba4feb3c5c  libstdc++-v3/testsuite/28_regex/match_results/swap.cc
! 041b8944bc2507a2e187ccb5f3e62321  libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc
! 0497fdeaccadcb66595886be7957f27d  libstdc++-v3/testsuite/28_regex/range_access.cc
! fcc188ef45d47a174ef60f7aa3d19d7b  libstdc++-v3/testsuite/28_regex/regex_error/base.cc
! 680ae3c09d299dd0078606d77993f3eb  libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc
! 28a8ed6cd224c61c0f99d86309d987c3  libstdc++-v3/testsuite/28_regex/regression.cc
! bef62820b8089b47129b3ebe26b785e8  libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc
! 873a3b5b678a835402cf480aaeade5f6  libstdc++-v3/testsuite/28_regex/simple_c++11.cc
! 2a56e9bb700fd7d65c0452de278f50c2  libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc
! a3082440e761a710608140f721a3a1ed  libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc
! fdb05068ea0ec2e2c054e5452fe22597  libstdc++-v3/testsuite/28_regex/sub_match/compare.cc
! 14d73926675e8a4db27298255924bb7b  libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc
! d6491c3bafb893669df1ab0292e9d4ec  libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc
! e1fbe99956156f30edffc8da221e8c96  libstdc++-v3/testsuite/28_regex/sub_match/length.cc
  491895502310c40d3c4fac8105f3662c  libstdc++-v3/testsuite/28_regex/sub_match/lwg3204.cc
! d7e5ad2427185dd498303cf15e8de1f4  libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc
! b246f46b68179ba914e94a9258d1db10  libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc
! 305fec0ea6dc6505efe171a6aefc6f11  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
! 2ac6ce850770c5c6cb93284b1b8dccdc  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
! 7fb853dc002b50b2eb4714ebf5bdb67a  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! f24a884cd3db25e10e69a6ba477b25ba  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
! 348dfcb394253d690606477b5446fbc6  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
! 0c99372df756a6818ac70263545c3400  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
! ac26a772516974da4124fd9b826718e3  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
! 874f6cc840e61b604213a2de6f261761  libstdc++-v3/testsuite/28_regex/traits/char/translate.cc
! ade0a19d59885ad2a4df3d368ebd9322  libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc
! 01550adfd621ad02461d767a23dc5956  libstdc++-v3/testsuite/28_regex/traits/char/user_defined.cc
! 9fa70773f3353e1a16a2ea23be1608a6  libstdc++-v3/testsuite/28_regex/traits/char/value.cc
! 75c050a5686aad9a653242f961ded161  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
! 278d80d81838cf9f47305845f6720fe6  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
! b9e0110a970800a36eb2e14f778cc923  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! c49d94b1060905e2d079c460f16b27b9  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
! 368decb5b5fb608898729b9d6c0b1b1c  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
! 7661bf4824b90173f9d846214053387e  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
! fe1c01b152a90c37809c40d2a3881220  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
! 61940d952d5d43d4699a90db69f9e48b  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc
! 3f8f7aadbb227dd1f785d5677d11114c  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc
! df5b2cb318209984b9465ddeeaba3ab3  libstdc++-v3/testsuite/28_regex/traits/wchar_t/user_defined.cc
! 16cb1edb5347d3f7e2ca01ce0946c42b  libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc
! b025cc6ec4d7ae3132d67fe05cf5ddfa  libstdc++-v3/testsuite/29_atomics/atomic/60658.cc
! b33a0b3c7995f3e74ada63272f838776  libstdc++-v3/testsuite/29_atomics/atomic/60695.cc
! ebb5372907fa94af6f3064722cd0e28b  libstdc++-v3/testsuite/29_atomics/atomic/62259.cc
! a4690afe44b2057dd036b2e2992cb9fd  libstdc++-v3/testsuite/29_atomics/atomic/64658.cc
! 2f7fa86e7336bfde7c856a56e9fd74d0  libstdc++-v3/testsuite/29_atomics/atomic/65147.cc
! f34c13e0eef44f80fc10f6cc39105956  libstdc++-v3/testsuite/29_atomics/atomic/65913.cc
! 72abcb446eb40e0bc7c2435bf03cbfb9  libstdc++-v3/testsuite/29_atomics/atomic/69301.cc
! 7de4e52d03fe19c0a05d5a8cd6bc8267  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
! 5e2e08488f2a545f948bd16834cf8ee5  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
! ce997c946b9d815d3b58c18b6822f7d2  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
! c7cee233a1d080b1dffc7cd5311d27c3  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
! 8a3545374cb8fbbd33dd2b2906c3cbf8  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
! b27d4e8f6e45d96e8ec5c36abd854471  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
! 89506cbcfdeb38f8e35caedaaa9e4ef5  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_list.cc
! 99ef9f92e611ce2e395838d3e9bd94eb  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
! c0881d1e2eb764c023ab5b7d8a6c85b7  libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc
! 9c92ca4b4eb03e692afb6da704017d10  libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
! 66bdc51662fd70d30902211a53dedff4  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
! 9e2a8388686f3e26628f06d374c98d11  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
! 6eaa7fecae6788d01a20ae43260848b9  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! 4c8038b479383b8690e30cb9dd1b7a3a  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
! f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
! 467103d8d6f668882b30ac0653e0cd90  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
! 91f812389d5388048921088248621c59  libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc
! e60e491db955c40476864016c325c635  libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc
! 4e5e9095b57fccee6acb88d48375653e  libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc
! 6b80e06d1316952c42182ee6870618d4  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc
! a6d61ece14a2ac1cb88f202e320d2678  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc
! 5077e2998a3075360a362dda91ad489c  libstdc++-v3/testsuite/29_atomics/atomic/operators/pointer_partial_void.cc
! 88cb63e8f111a7a3c727598a518674a1  libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc
! 177ade384daee9305258f2accf7ea158  libstdc++-v3/testsuite/29_atomics/atomic/requirements/compare_exchange_lowering.cc
! 1a12382ca32ebb7250ad7d1e14ef6c1c  libstdc++-v3/testsuite/29_atomics/atomic/requirements/explicit_instantiation/1.cc
! 505dd15440cb5d45a0724da46b456b8b  libstdc++-v3/testsuite/29_atomics/atomic/requirements/typedefs.cc
! 5df3afcb07ceba496b30c2bf5cab7652  libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
! 177f19872718e6be3ff6a938b901d418  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
! 603a9bdfeed5c8fbc884b5989a359352  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
! 0c57c2f91f968ace2a2fc16b2f362a94  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
! 4929ac2c85cf10722d91cd94d2a40f74  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
! 689ee25b236678d2608d182f55db8e83  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
! d8c124c3976f32b4028068c4882f8b64  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
! a310e6ac9c3f1069f17e468a934dbdcb  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc
! e124e1d049bc76694ed1c7ad25f0b579  libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc
! 177e11249ea9e911009de658b3e9d647  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
! 8848824dce5b83e4138cc75e21f8c5bb  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/56012.cc
! 892e2552c2ffe823f6d8f513b49fe93e  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/aggregate.cc
! 35300e5206de081cc58207f2d5a50871  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc
! 359672c77a286c14a8eebc0332fc2b22  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc
! 799154660ac32ed68ca0d753e645f511  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/default.cc
! 20f380377b6b4588dba90162c91f303d  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
! 69e99c0275b12c847c3e114852880789  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
! 3c4c1168ad305955669c68695bcf8122  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc
! 1e7ab1c41ded8c11d3d951929d654a43  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
! f23277f91a5462d108bbb8c36abffb5b  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
! c03755c748cd79d2f18930432ba91482  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc
! ba0c2f92ca85222415ae789d073932ba  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc
! ba0c2f92ca85222415ae789d073932ba  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc
! 091d9f43e76b044f3069a396b381d632  libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
! 93e5e28db009c5727ec4b0ac5d9c9a96  libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
! 4728c3d1b5c8622a7398bcf8c0d893da  libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
! f6824be47c343a93b5129a8d40cd5f37  libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc
! d0fa9f13b49567ec79d8ace05baf270b  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
! e9c3082d95bdcf75d84e17829bbbce4f  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
! 01b9626b2a289a1c31a5803746520cf9  libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
! 4f98204db054b6051e78a00723ddf115  libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
! 280689977a79a773378a128fd3d6cbf0  libstdc++-v3/testsuite/29_atomics/atomic_integral/60940.cc
! 9367b35ad862e3e55260981438b3b938  libstdc++-v3/testsuite/29_atomics/atomic_integral/65147.cc
! d673595a1a9a4a12208c70e0c4f4b145  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
! 8177929e78257450ccc9df5ebf88610d  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/constexpr.cc
! b38d23bc6eacaf7c44d40cf190e2f104  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc
! 8a1cc4b7510f4c90bf41561dc7d8f574  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
! 718e6878a13955b223a15b299671cbf9  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/default.cc
! d8eea151c2fd2aedb74e5530b1df0d08  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc
! d64c4c553d4e1bf29f0e390d9ff5d80c  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc
! 7da2aa321d8bb557180b9d32be608164  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
! 7f941fab7bb0c54db1be80a9030a53d5  libstdc++-v3/testsuite/29_atomics/atomic_integral/is_always_lock_free.cc
! 117450186430e3536aaae592f522d885  libstdc++-v3/testsuite/29_atomics/atomic_integral/nonmembers.cc
! f8c19ad65ca561ee0980e34056243fd7  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc
! 9516b1153c672e2f24c0f7d43bd0e64f  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
! bffb4ba3d70a201725705b2a117609c5  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc
! 8ff505d4da86551e1a422778bd6a743c  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
! b613b29a45f740249b6a97ad605318f6  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc
! d7c4fe8b050c99dcbc313d2e581cc57b  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
! f12b4cd8034ec2be8b3951e9260ef478  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc
! c2b340ae85167955a4cefe1ab002f1f3  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc
! 781eb89b54963b1d08ee551685a9e043  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc
! fd5147c87752ada7d90ac3c0b95cc7e7  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/trivial.cc
! c1d47867efc3a286c5a601bf09a43fd5  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/typedefs.cc
! 1c70aa111d7667f9283747d8fc055164  libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
! 32c306fa56643321c7e2c4c7920c2990  libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
! c397af515fc1a3e276eb45babe9e462d  libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
! ed6031f056a036d9938658afb24bdf10  libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
! f13dc9fc9e9e41a376d161fb6c616e97  libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
! 6a9f1eacf3142959967040a7c33ddeff  libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
! 6f69a8423361e514f214826d16e3c887  libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
! 77996fe80215b22e165eaf28b9c54dc9  libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
! da7ff50e767743cb9456b0b105d2bd8e  libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc
! 8ca9720bb5ce81b0fa0a343f608414d9  libstdc++-v3/testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc
! 2884492cb153f766a77d6f244504ad36  libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc
! eca21dd52ebcaa048c261b1567df7804  libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc
! 0ccec6a9f86c068f7813f641aca828c1  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
! cc1ad51ca0bad13f42121bcdde44bb3c  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc
! aa6e6b5b03fcb5974c9ba9385d5ab4a8  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc
! 92d0b980ed0ed0d635f068b216140f9c  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
! 160c9cce728d3532664306f302ce9799  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
! 293de47313edd0de99234b5deabb661d  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc
! a99cb8b3fa386993e78051b226f5f4eb  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc
! 94ba8a23b5b0d9459ea5daebd6c365de  libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc
  5b1af9fe172aee7236f683fc11c916e0  libstdc++-v3/testsuite/30_threads/async/106695.cc
! b56a7c152180627a1a4eebd325c0e9d4  libstdc++-v3/testsuite/30_threads/async/42819.cc
! 935fe85325c34bb67efa739f31c69c33  libstdc++-v3/testsuite/30_threads/async/49668.cc
! 3022274c68f63cca2818dd7672c41729  libstdc++-v3/testsuite/30_threads/async/54297.cc
! e329123b794c7804fbbed67119db204d  libstdc++-v3/testsuite/30_threads/async/69724.cc
! 07c3f4b2577bb65ad06b1ba020256968  libstdc++-v3/testsuite/30_threads/async/84532.cc
! bbf286c401f7b4709857d0c356d3ccd2  libstdc++-v3/testsuite/30_threads/async/any.cc
! 9aa507615e12b771467e3672cb4ad2b5  libstdc++-v3/testsuite/30_threads/async/async.cc
! 829a2caa69c72a087dfda23e3c2679e9  libstdc++-v3/testsuite/30_threads/async/except.cc
! b533d9e7848801846157b017b6e2fafc  libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
! b1c936f984ea3d1315ffd5d9b71960e3  libstdc++-v3/testsuite/30_threads/async/launch.cc
! f35501275c528fa526c58620c77307ea  libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
! 875f766167b6514813a764ab76a20e84  libstdc++-v3/testsuite/30_threads/async/sync.cc
! 5c790818aaafb1bfdd6cee05af4f9feb  libstdc++-v3/testsuite/30_threads/barrier/1.cc
! 4fdb67ac9bfd4fe05b380ff7de19b755  libstdc++-v3/testsuite/30_threads/barrier/2.cc
! 6e444b5db71fbc4899e3ce7daa07037e  libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
! 1cf2bd96cfcde6d36ab2e25e7a01a7ef  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
! 27206a60a1f14de792699938df2d7cc4  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
! eee35c0538bd349ce45e52ce0338fe1e  libstdc++-v3/testsuite/30_threads/barrier/completion.cc
! 9b8e1d581000511da78bed8ccd1adfe7  libstdc++-v3/testsuite/30_threads/call_once/39909.cc
! d599e4b54769eacb8533318544a8c772  libstdc++-v3/testsuite/30_threads/call_once/49668.cc
! 605c219d961c3c97d429cd61ca40074b  libstdc++-v3/testsuite/30_threads/call_once/60497.cc
! 6ba76b1734d2f181296d2c89b8836290  libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc
! 637ea4365d5fac875d8ce02a80d921d4  libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc
! 90dd2bb6891e45c90caf55d0f8fe2527  libstdc++-v3/testsuite/30_threads/call_once/once_flag.cc
! 22850cefe1a9055d059c235b4a7a116e  libstdc++-v3/testsuite/30_threads/condition_variable/54185.cc
! 07520cea1050424b352ef808d44a7c3f  libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc
! 51474d0634bd0e70414d2a7e2b1f2934  libstdc++-v3/testsuite/30_threads/condition_variable/cons/assign_neg.cc
! b41e46681b5bee5448420b1097b71fb7  libstdc++-v3/testsuite/30_threads/condition_variable/cons/copy_neg.cc
! a9e2dc4ea6537f6f20958845f0c65e5e  libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc
  a22ffec2ff77db41215e429fe83d58ac  libstdc++-v3/testsuite/30_threads/condition_variable/members/103382.cc
! 56b82a33c656565141f6bd0d146bd995  libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc
! 9f32e431e9950f7abfe418dc932dcc80  libstdc++-v3/testsuite/30_threads/condition_variable/members/3.cc
! 827ea68d7fffaa475ae582c07ae4a7ae  libstdc++-v3/testsuite/30_threads/condition_variable/members/53841.cc
! 099bdf8306135e556aae2ab9fdccb5a2  libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc
! 664fd6f7494caf73869dc8c57b5bf8eb  libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc
! a730707dad757b88658bfc3a4bc978f7  libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc
! 6ab1384f78f614b5077d2fbb05f8a4a2  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/standard_layout.cc
! e973722a4219dd88725eee08936d5128  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/typedefs.cc
! 034b9ca72d20a555a9ccf0ab4b19bbdf  libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc
! f8515f2639db47f73b2a2d281b9a5e06  libstdc++-v3/testsuite/30_threads/condition_variable_any/53830.cc
! 94bacf4182881787b1ae6a4ded49bd97  libstdc++-v3/testsuite/30_threads/condition_variable_any/cond.cc
! 8c68875668de468bd230fd7d2d47c1e8  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc
! d2612f234f7cea484da04fa80a60d13c  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/assign_neg.cc
! 0fe0c13df0226ee94f33044fdbd5f07a  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/copy_neg.cc
! 8af68a092629755c341c5c857503fad5  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc
! e8003a26f1e3b36eb36eaa5d7bbe908a  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc
! 797227249c68c7aac2289b09f69bab1d  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc
! 863f985e0618ddcc16560c5a603c753a  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc
! a7572567aa68408b244fa68516a98615  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc
! 255e39c2e7d6462eb3583dc99526e2c1  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc
! 1c020fed6823719f6e3b7cfb2abd7521  libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
! f5fd7a6bb614212d964981006b412c04  libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
! 7e5ffe2750ab52f11e8e9f8d68585c74  libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
! a95d1d17735e24dcba75b5a82e875180  libstdc++-v3/testsuite/30_threads/future/cons/default.cc
! cd7af11cb78dd409cbe18f1d31412eaa  libstdc++-v3/testsuite/30_threads/future/cons/move.cc
! 780a26ab136385db3fb6e1b33805c539  libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
! a684a5cea61484e168c2f2a8d515f033  libstdc++-v3/testsuite/30_threads/future/members/45133.cc
! 67da8d4e775dbe2d1a407e8e7698c2e2  libstdc++-v3/testsuite/30_threads/future/members/93456.cc
! cf72fd0b2c85d0af6bde40f612f010c1  libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc
! eda46f0ea185d0de7ca92039d856badc  libstdc++-v3/testsuite/30_threads/future/members/get.cc
! 6c3ea16660c6f270cc68299666705c02  libstdc++-v3/testsuite/30_threads/future/members/get2.cc
! a0c58f98f90b97a33ed618f2bdb7a173  libstdc++-v3/testsuite/30_threads/future/members/poll.cc
! 1467d3e516a7e7937f6ac4210f91947a  libstdc++-v3/testsuite/30_threads/future/members/share.cc
! 8ac0efeda8ed2e437f8bfa755049aa90  libstdc++-v3/testsuite/30_threads/future/members/valid.cc
! 2c3f8b5d92fda591bbc8bd0e7aaa3cd0  libstdc++-v3/testsuite/30_threads/future/members/wait.cc
! 98b8af2b3f22fc554a607c4b6518f18f  libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
! af621b2c1d2b03d8b5120ea092441c09  libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
! ae97a5456f1624af8f2eea613b8b2558  libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
! d3e4262159584590d045f01be921f8c9  libstdc++-v3/testsuite/30_threads/future/requirements/lwg3458.cc
! 4c8ee8af6560fc67962d2291b1377f06  libstdc++-v3/testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc
! 37c00c30e3c3185f9d2bbfaa03122fee  libstdc++-v3/testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc
! 86e1100d896626df0c34321951e54d07  libstdc++-v3/testsuite/30_threads/headers/future/std_c++0x_neg.cc
! 5382f2ee12b47989a7540f012a38e64e  libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
! 5189f2455244c4e77a109ddb51cb23df  libstdc++-v3/testsuite/30_threads/headers/mutex/std_c++0x_neg.cc
! c44e07655ea02876aea46dc83dd90b82  libstdc++-v3/testsuite/30_threads/headers/mutex/types_std_c++0x.cc
! 1dc590994be53b3b8d805de5febc4638  libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc
! 555c696e5d5e5b1fffcc301b677612a4  libstdc++-v3/testsuite/30_threads/headers/thread/std_c++0x_neg.cc
! 479daa667c5231ba3627b755241f98a0  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++0x.cc
! d515c97ac58b887460354aa3fade24a0  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc
! 69829dac053eebed2533437071478e7a  libstdc++-v3/testsuite/30_threads/jthread/1.cc
! 7bcf5ad4022b2e3087ff5f773e489144  libstdc++-v3/testsuite/30_threads/jthread/100612.cc
! c5404633def8935cc6302f7acd9b83ab  libstdc++-v3/testsuite/30_threads/jthread/3.cc
! 75c775fedbe86bfdb2966bf7fcfd7d52  libstdc++-v3/testsuite/30_threads/jthread/95989.cc
! 5da4af74e0c6974ea771423ae341543a  libstdc++-v3/testsuite/30_threads/jthread/jthread.cc
! 4e0cf6182b9cde2130e24a3bf55c3ee6  libstdc++-v3/testsuite/30_threads/jthread/version.cc
! 4e2f631502ae2e089dba2a1f003ac784  libstdc++-v3/testsuite/30_threads/latch/1.cc
! 7b7fc29e872e3d53f126127ad49a58fa  libstdc++-v3/testsuite/30_threads/latch/2.cc
! 483782a7e197606708ab15a79d634d80  libstdc++-v3/testsuite/30_threads/latch/3.cc
! 9c0199b409f0208c7065f8ae30d5dc6b  libstdc++-v3/testsuite/30_threads/lock/1.cc
! e0afff7f308453ea46d7cbc8b965d15f  libstdc++-v3/testsuite/30_threads/lock/2.cc
! 7557240ab3f451df449a22ec4350aab6  libstdc++-v3/testsuite/30_threads/lock/3.cc
! 5d88f6eeffc54e03fbcfc36604419e6a  libstdc++-v3/testsuite/30_threads/lock/4.cc
! 712a27ba2aa4b2f8c1dab6146fd670fd  libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc
! b5bca1f4b3eb3965a31482b3e20a812f  libstdc++-v3/testsuite/30_threads/lock_guard/cons/deduction.cc
! 462211b16f32c8238aeef8f418897b81  libstdc++-v3/testsuite/30_threads/lock_guard/cons/nodiscard.cc
! 7c533f8fbd189be75fa31a45cac1753e  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/explicit_instantiation.cc
! ac23aa7d8da2195d5d35ead8d2507ba6  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/typedefs.cc
! ea7acc05c24bb1056619c93183bd9fff  libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc
! 03517cb95b5bc27889cd83a6e0815bbf  libstdc++-v3/testsuite/30_threads/mutex/cons/assign_neg.cc
! 4dbea691583d27c6f3d4405e29da226c  libstdc++-v3/testsuite/30_threads/mutex/cons/constexpr.cc
! 59b91e41ff20069563ae10fb0815e85a  libstdc++-v3/testsuite/30_threads/mutex/cons/copy_neg.cc
! 6f348987d310bef6c7070ee9bac34681  libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc
! ab62f8e8e537a0cee641e5db24a98035  libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc
! 8d8e9422c561acc0205ebd45e609f808  libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc
! 9aff91d830f451677d1105315c19128b  libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc
! 2d8f3045cf702110bf0c39be1b719c04  libstdc++-v3/testsuite/30_threads/mutex/requirements/standard_layout.cc
! a57d043b05536b36f47ef5c9d72d769e  libstdc++-v3/testsuite/30_threads/mutex/requirements/typedefs.cc
! c169f466802ba739e96645cb9ce1a970  libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc
! c47b0d14ae766859a5fbcff2d5b5cf97  libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc
! dfba526c53d45281b4a8a0705b84a7a9  libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc
! 7d052f763e7eaae56b1615cbd44119d7  libstdc++-v3/testsuite/30_threads/mutex/unlock/2.cc
! bf232f51fa1e4ce50181933caa5eeff7  libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
! e7a3e0aea1d629a0bf61e4344ba22554  libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
! 9f0622b13d700645659f19d3172c5c44  libstdc++-v3/testsuite/30_threads/packaged_task/79486.cc
! ed9bf282f10701802f70b3ccc5f81605  libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
! d5d98f7ec1f3a2787cbfc1245031dcee  libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
! a7d0e139e7cf75f203affb2f639330d2  libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
! 976bb856fade892f9565e998c0b6ef18  libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
! c0b583c748f7e9df1b6ba57eef003a5b  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
! 581655b703eabf53f6883b00d3e15351  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
! 0f43f445c9cf91ce838cd370e936cd3c  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
! b0a3fa6c14115f4485e5f5fa4d3e5208  libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
! d76d953b956682a1e65caf48cfd059be  libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
  61b6c7d530f3a7caba002211060c13d2  libstdc++-v3/testsuite/30_threads/packaged_task/cons/dangling_ref.cc
! bf572723301e0723551ea63a282f2671  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc
! ba4413ab6f8707eecf7439c419b333f6  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc
! 64636ad096f7bd22a64e7b6419331587  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
! f586c36d7cb7cea0b7731b1925eda445  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
! d0fe1d77375b002a8eb13e71c921e640  libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
! 2d9962d14f386b63009118fa430b9118  libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
! 789ab6c07edb10d1a0c2c47c850b5b36  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
! ae93971360629d95df9b999aa4d6aee5  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
! 9c10728176fb9cc910c97756247dfbc4  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
! 6b4dd003bbce7fdbd5aafdf8a56deb91  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
! 4162acb8f0d0b00bf8e94e8d9be64c49  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
! 362d354b4ad37d97e9ede6e4d6c6a560  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
! 8a36e2c362d30d154ca6669583eb7296  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
! d46002a3fcdd79d3b291d455b5fa67e1  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
! b483b642b02c8473a616171c7efd36ef  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
! 0136766f8d6f4fd6f5182e5267ffcb1f  libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
! 85f48521363a92572c6306ba266091d4  libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
! b86e427d0a03daab736fd07020ca9dc2  libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
! 0ed9fd4ea78c0a315d4cf133fc9238fe  libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
! 39637c63e0cf57aa86242ed82f645090  libstdc++-v3/testsuite/30_threads/promise/60966.cc
! a6a25ebda7b227300b249fe48c9ece6c  libstdc++-v3/testsuite/30_threads/promise/69106.cc
! ecedde4d8dd5d8ecc022e58006e94ad6  libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
! b05971f94b6956aa6fc73869d72582f4  libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
! d9212fc04e0911a3edbbd496d412f53a  libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
! c1fb3b5aba13eff708e8c3179d8b5954  libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
! 0363dc5baf8b151ddb6dbf6e1b8b5d61  libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
! 9682f912cff810353ed682aa75414965  libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
! f871eab6b8c49421cf800a501e1f1449  libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
! 58238b004e3e96ca708e7f341300a2b1  libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
! 763f5b1b454fab8acf38de87c7353183  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
! 2090c8fd3db4ef545dcf70e7252f1ee8  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc
! 8b8f73d228c70a663cdc9e870bb2d02a  libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
! 3e452f9671cec4d121ec418bf70f3127  libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
! d5e05bac351a6eac7ab4ae5ed522ebb6  libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
! a1f49a32fc11236c82ca09294f9c976d  libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
  8d747bcd5afe04faffaed0b4915aa245  libstdc++-v3/testsuite/30_threads/promise/members/set_exception_neg.cc
! dc344c9b20c6287d7e19b2ae4238145c  libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
! 91b02daefa7da725788a987eaa373a82  libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
! 21cda9e2c8633a28835fb5f4ca4c2c3d  libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
! 78c3c09c895eeece7d422f39cba77007  libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
! 55c1b02837c721fca1d1804f5f97fc88  libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
! 06ac543c9818e27285ddc0ab2d6aa999  libstdc++-v3/testsuite/30_threads/promise/requirements/lwg3466.cc
! 2f651d33af46b62cbe56f127239fa37d  libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
! 7828b318d3a0238d54a3adb0a3879dab  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc
! 307ec8240393e410184f69f8b23faf51  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/assign_neg.cc
! 4ca0daad2be0eaf44f989c045df12a34  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/copy_neg.cc
! 9c0ba02dd1479fd451f5daa35622cec2  libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc
! cf08cacaecdc44204da3c9746ecf5768  libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc
! 317aec315bb8b27281e8ddf456e7e231  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc
! 2e1e1ed5c5f8d4e828104be0e6a49c12  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc
! d4edd326964bc804d167247657253671  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc
! 44a3ba9d03c6d599c941eb811ed95223  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/typedefs.cc
! 4371c7737e1bd3e9cae1b0a791c7517a  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc
! 5b99b09084e7674e5428a231458e0b85  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc
! df949e0648c564cb6ff46af3646ad3d1  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc
! c90c08c4566ce2d77ca6afc0a6d7918b  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/2.cc
! a23166fdbbdad2dbb8c6d6eae915c2b9  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc
! f28defee3b337c20a5e8fca19ede2288  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc
! 05411b46428e983e2a4e7cd9de940c45  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc
! cab317f3f1250c9c00c3f722c0799e24  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc
! 518f4e876e33242cd5c88f1e785016d8  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc
! 767bd4858c68f545a39d96016f2434f0  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc
! 8506ff0618dd8f5b65ee270024bd3667  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc
! 0b5456ac7263577605dab7407dc1e8a7  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc
! 52bf8bbbd71281f16ad159b33f4e9d87  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc
! eaa5d4c0a427bcd0b1d1c9f58dcaf66b  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc
! c542d14f6df89c6691ad7f97f789cccf  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc
! 64167b66a231e846679a46d829384d48  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc
! aa8b73eac2df5cadf2e77b143b8e7d7a  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc
! 05693e36690dd3b01e15d922c1c0a69d  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc
! eaa5d4c0a427bcd0b1d1c9f58dcaf66b  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc
! d88db28ec1a30d641693477c0d8fa974  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc
! 23c5306de0bd895284584750ebe0acf0  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc
! 462654fffc3ecd3a30023956e456ccec  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc
! 920a7d46bcca8a0833b2835991290063  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc
! ec2d916d29f41eebdfbc81ea79b0a8a4  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/2.cc
! b9e8970e7d57e4de969143926bc08cbd  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/1.cc
! 23e1fb2b4450d6c2fa8b07c29fdfc7fa  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc
! 6d91a3500350913fb0ad2c995ac5c8b5  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/nodiscard.cc
! 348d44238d6d182ae0833dab91bd7f5a  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc
! 6969786caeadffcbffb81e51f43699cd  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc
! ed9bdd9b73d78e1002dffec5e3823b86  libstdc++-v3/testsuite/30_threads/semaphore/1.cc
! e7a6c2bc00e156939f96d542373fea2d  libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
! 7e0d9d03a7b2b56e626e592af5a44b25  libstdc++-v3/testsuite/30_threads/semaphore/2.cc
! 5f980b1d07f3c14e740169962dfc7d20  libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
! e6bf030c5738d42cf7405d07d059f3dd  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
! 3dc0ec45cd6df87919befaf6d3f3c369  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
! 9e6151027c6ebc2c1f94b60ed1dbffd4  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc
! b3f9f817b11f04094a30b5e79b585010  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
! b666c4b1ea6dca829e3f76aa76faf6a5  libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
! 5fc65eb55075b13146abc23fde80435f  libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
! 625c9395fb8356e43424d11a43b7a09f  libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
! 7c61c7830df31ffd1b34a58584d18f2c  libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
! b200e1f24664aec90db487ef6143dc65  libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
! ee217541aa14a1cadcf4fd5d96dc29c4  libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
! cf9283e3f5056d53bdbdd64861284506  libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
! d79bcb72e6c22bfc480b723c5109c6ad  libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc
! 66ef15a8856244376b40bfd4faa2dae0  libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
! a7dab9556827a045f9c1a54a27ea6690  libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
! 2691a9d71869e02618c9a7beed973c87  libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
! 7f2d60c1dce61c37b983367d8d82088e  libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
! d43c21798bfb7939162c99438f6b9beb  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
! 28778fd9f5cdc6aea99ba53370bbf8c1  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
! 5c0049f09643b3a071246aaecdbf1c70  libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
! 685e4ab24040cf2935bf5708c71a3b73  libstdc++-v3/testsuite/30_threads/shared_future/requirements/lwg3458.cc
! 492a58f031c290268e2e64012a1f5f01  libstdc++-v3/testsuite/30_threads/shared_lock/70766.cc
! 9f25737a0fee31d693ee6aec98cc12bb  libstdc++-v3/testsuite/30_threads/shared_lock/cons/1.cc
! b364db1f288786edc41d68a0283fe6d2  libstdc++-v3/testsuite/30_threads/shared_lock/cons/2.cc
! f0b0bde2b46d16c1794fef97225c99b6  libstdc++-v3/testsuite/30_threads/shared_lock/cons/3.cc
! 98ff49432075611b28090e1bfc634f99  libstdc++-v3/testsuite/30_threads/shared_lock/cons/4.cc
! 2965775f624b12a0b93099e4b7beee34  libstdc++-v3/testsuite/30_threads/shared_lock/cons/5.cc
! ac171a66254686b1e6256f4082c88f1f  libstdc++-v3/testsuite/30_threads/shared_lock/cons/6.cc
! b040f05c38f3f53f4a61b3e39cbd7c84  libstdc++-v3/testsuite/30_threads/shared_lock/locking/1.cc
! f73343e4c89cb77298874c0578e423c3  libstdc++-v3/testsuite/30_threads/shared_lock/locking/112089.cc
! a89aba43b6f1c88526344e0172b5fac0  libstdc++-v3/testsuite/30_threads/shared_lock/locking/2.cc
! cc6de8d0a5fdd21a4c7fe9022ddfe48e  libstdc++-v3/testsuite/30_threads/shared_lock/locking/3.cc
! 513ef91fcdb79e39c3a326d4c77cfb34  libstdc++-v3/testsuite/30_threads/shared_lock/locking/4.cc
! 7ec40d6ac385abdb030f594668a5e98e  libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc
! 3cd597c0c9f6e004d9d30c5d650db232  libstdc++-v3/testsuite/30_threads/shared_lock/modifiers/1.cc
! 2b51638034c7d3ed40b3274684eb7975  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/explicit_instantiation.cc
! 3542fffe66ceeb67256b18210f64fd51  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/typedefs.cc
! 699090ca9e76f7c8d44a22bd792a0ddd  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/1.cc
! 9e91ab2d4387642ac3756f88e6793778  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/assign_neg.cc
! f15e8916a902ef813e1dbc3940ec2b40  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/copy_neg.cc
! e5c08074e5b38d40a9dd495532aa28ae  libstdc++-v3/testsuite/30_threads/shared_mutex/requirements/standard_layout.cc
! 7a41e50589dd7dc6a178a668a13c2628  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/1.cc
! 45b0b2c7f269a16d2d124ec09c8772fb  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/2.cc
! 66bdd64d5c95f73a2000bd55c152e23b  libstdc++-v3/testsuite/30_threads/shared_mutex/unlock/1.cc
! 69e3ea0fa8d9c2ce7fa036833d7d969d  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/94069.cc
! fa724cffb394749e139023790f2977d7  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/1.cc
! dea039c393c9575879d845152e1b328f  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc
! 694e1573532a465b3ac1219d631db29a  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc
! 26452292cbf0726dd62c4f30946ee024  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/requirements/standard_layout.cc
! dd74a9966d4192a7ad4212aff2b878a9  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/1.cc
! 8bb8d4635fa38d86029e60f11f88fb5c  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/2.cc
! e2a5b01fb570ed22ed1508503d747c3d  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/3.cc
! 7809609bdcef74d700ef15274aa70dc7  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc
! 50019f9570f9919ac9d9aebb1c0c6b10  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc
! e018b6914fd18f39493a964915211546  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc
! a11a02a270613855e48d9388f12a11d8  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/unlock/1.cc
! 1b078069a680a7db39e6f9843c070b70  libstdc++-v3/testsuite/30_threads/stop_token/1.cc
! a7572567aa68408b244fa68516a98615  libstdc++-v3/testsuite/30_threads/stop_token/2.cc
! 910e319a32d8946418965d4a135c3510  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc
! 4ab430725d8819d5bf90e054bd4cfeb1  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc
! 89e01ca0de91d82b135beec1d57e4319  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc
! 5b6abafb7e5a0cad4d78f1aa36150ae7  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc
! a3ede982d0b6c7ff474162a8eb20236e  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc
! 48b0ba0b6a6f6828a7c279ac46016e9a  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc
! f3c3d01778e6cc6995daf255dd3e4c69  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc
! 8ef567ae352ded7e364eedfe7ee4f88d  libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc
  97c265fb2eb60646be155e18f47b2f61  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/109339.cc
! eaabd4096f9dd500bdd39bf72c974e0a  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc
! 92d9f248e0cd8c1af766139f375d75bc  libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc
! 26c64612e0ee0c80bf403fbf4db2a6a3  libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc
! 53e7b776b3754f0f5930d9ba5d416779  libstdc++-v3/testsuite/30_threads/this_thread/1.cc
! 9cc9b74b912dac52db610498ac2d7533  libstdc++-v3/testsuite/30_threads/this_thread/57060.cc
! 2be94e9e6520264376434815a4d2bd83  libstdc++-v3/testsuite/30_threads/this_thread/58038.cc
! 96a4fcafe0452ca0718fcb3c952ffb86  libstdc++-v3/testsuite/30_threads/this_thread/60421.cc
! 764f93292965e9460a4f0afe1eb9f406  libstdc++-v3/testsuite/30_threads/this_thread/95989.cc
! 133b82de690c0811129a185962a8c549  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for-mt.cc
! 464a4c1fd66b701c66e8d46c37c4bfb0  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for.cc
! b8db07e438a16b575a90f1c193ac0b4c  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until-mt.cc
! c4ced7918354143463b45aac707471db  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until.cc
! 66d9bafeca119610f296c0b36200e3e8  libstdc++-v3/testsuite/30_threads/this_thread/yield.cc
  01f0a9872e8d09e04052489193a9e1e9  libstdc++-v3/testsuite/30_threads/thread/106695.cc
! 30f4712f8ae2528d02755f7f24ea57be  libstdc++-v3/testsuite/30_threads/thread/70503.cc
! fe46f311f7f3028c871b97ccedc0f815  libstdc++-v3/testsuite/30_threads/thread/84532.cc
! 616e61bbfbaec34d089b08bb85ff9a13  libstdc++-v3/testsuite/30_threads/thread/adl.cc
! 063d4361a7ad7073fa16c45950c6aa77  libstdc++-v3/testsuite/30_threads/thread/cons/1.cc
! e62775ee7ded9cf710abdc819cc59509  libstdc++-v3/testsuite/30_threads/thread/cons/2.cc
! f89ecfd8b8185a2438fa32c5b7a03ee9  libstdc++-v3/testsuite/30_threads/thread/cons/3.cc
! dcd5e227de268763a0be4583b2caaab6  libstdc++-v3/testsuite/30_threads/thread/cons/4.cc
! ff2c947b19383c5e420de6687401d042  libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc
! 1bf9e31c14cbaf7eed10d3423f81482c  libstdc++-v3/testsuite/30_threads/thread/cons/5.cc
! 05d8a1c865f5f17aa9d4192d063d87b6  libstdc++-v3/testsuite/30_threads/thread/cons/6.cc
! 4e1a85234955e9751c0a9c9d582505d3  libstdc++-v3/testsuite/30_threads/thread/cons/69724.cc
! f1927d0a164262cfcf7ebd73d75e59b6  libstdc++-v3/testsuite/30_threads/thread/cons/7.cc
! 7cacaee911d31115b4411c611e140fdd  libstdc++-v3/testsuite/30_threads/thread/cons/8.cc
! 1c81d0a2040d551acf717ba04647c623  libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc
! 6eb7802734f775cc5f9f2ef9f869c22c  libstdc++-v3/testsuite/30_threads/thread/cons/9.cc
! 6012f92dfa19fcdcf961cb5cbb891834  libstdc++-v3/testsuite/30_threads/thread/cons/assign_neg.cc
! 51a69d1d0435619d52b8fc72927dab79  libstdc++-v3/testsuite/30_threads/thread/cons/copy_neg.cc
! 8d4b26d6ccd59f9322bd2a7661782e43  libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
! bf5a37d74c3ac41544ae9380538e05fc  libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc
! c17cb67d1a666b35e571d75d942dc1b8  libstdc++-v3/testsuite/30_threads/thread/cons/terminate.cc
! fe40d214fcf9bd99323f5f870876a1c8  libstdc++-v3/testsuite/30_threads/thread/id/70294.cc
! 8535fc8e830b6f0e891cb1cff044b943  libstdc++-v3/testsuite/30_threads/thread/id/hash.cc
! 6eaa7183d66159aaa1a4d8bec32f9b54  libstdc++-v3/testsuite/30_threads/thread/id/operators.cc
! 2a9a501b9654131b46c92cfe702500a4  libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc
! 31d0ce7cb15d0d0c5e3b30658ea9084f  libstdc++-v3/testsuite/30_threads/thread/id/output.cc
! 80eb200cb5c204fcbec51a4f5febad0c  libstdc++-v3/testsuite/30_threads/thread/members/1.cc
! 2860e9fdf84916f3f96261f846390f00  libstdc++-v3/testsuite/30_threads/thread/members/2.cc
! 0d97c988fac2a69e90ea7023ac8466ad  libstdc++-v3/testsuite/30_threads/thread/members/3.cc
! ee5f3203fc97276db56370642ab22958  libstdc++-v3/testsuite/30_threads/thread/members/4.cc
! 9b995d2484dc7127240e1ed09a37b8da  libstdc++-v3/testsuite/30_threads/thread/members/5.cc
! a9371eca1def310151c76a30b432f8f4  libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc
! 6edcba06b4872175448a92ca927140ee  libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc
! 5da0087b1f4c4a37321692aea903ee72  libstdc++-v3/testsuite/30_threads/thread/native_handle/typesizes.cc
! 85650ea69acc8067542b3ba070aafbab  libstdc++-v3/testsuite/30_threads/thread/swap/1.cc
! b30217126b0de99c06b6b3f01a010427  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc
! 3ac0b06cbdce363a1e834490f371a3ee  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/assign_neg.cc
! e5da47bb4a87780f44f63cce05d2c93c  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/copy_neg.cc
! 96a34d203e40630802c50616bc911454  libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc
! 24190046e4b4c0d71c000d7008981912  libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc
! 2f6f62321f64b7739b7567cef0d132d7  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc
! 99163cb4b0e8d0b7f0c9ba6291e1096f  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc
! e5278f00fc79d6caba515fbc5b324fb2  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/standard_layout.cc
! 57729e8fc125335b81000348ae0bc9ef  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/typedefs.cc
! 2600eb51c949a5ee12ad7ec6787c9a43  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc
! e8a48fef525c4d6d45456910c7fecbff  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc
! 0926e28b18d47785ad71c6a2a7526e18  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc
! a490a4ab0473324ba7338a9984339294  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc
! 6e4dfa0c290f2fa1e05d7719ed5f8901  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc
! 2600eb51c949a5ee12ad7ec6787c9a43  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc
! e8a48fef525c4d6d45456910c7fecbff  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc
! 7a2e1ecad93b6ee9ea71b71c9525b6ca  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/3.cc
! ca48cfb3d026cb5904c2d42f11495dbc  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/4.cc
! 0dd8bdea6177fd9687992a8e4698a0dc  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/57641.cc
! 76827572d87d37622e6ff3247578f16b  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc
! 142d000e106f9fc49da65a75aba54112  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc
! 2a7f733b2670e777d231aa58e5649768  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/2.cc
! 0c54985bf483ff823516fdf0853980f5  libstdc++-v3/testsuite/30_threads/try_lock/1.cc
! 9f6701ad5f460a06f15046e85bd67a8b  libstdc++-v3/testsuite/30_threads/try_lock/2.cc
! 7020b7cc620bb7ddaace768e1e777c67  libstdc++-v3/testsuite/30_threads/try_lock/3.cc
! a8ad217f1997ea0ca03c36a62421e116  libstdc++-v3/testsuite/30_threads/try_lock/4.cc
  84b7f4186aa09b29885c62c89d8b8d64  libstdc++-v3/testsuite/30_threads/try_lock/5.cc
! 52fbabf5536d93fdb17888856781555e  libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc
! 9d09a28b1197f9a29b588206967a42da  libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc
! 2d37566b1bd07f43dcb62c4b841ecab0  libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc
! d825fcff2860ff5f4efb91e56edf6a80  libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc
! 5056f817b57aecd95ab4bf8a7590c1a9  libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc
! d4301f9aa19eadb217620d1419eb3b45  libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc
! 926c1d752f206dce64864f8b47287322  libstdc++-v3/testsuite/30_threads/unique_lock/cons/60497.cc
! 4e5b375f24a94f0c59ce66caafe9eaea  libstdc++-v3/testsuite/30_threads/unique_lock/cons/deduction.cc
! 4065ead73235836622eebbd59a14b63c  libstdc++-v3/testsuite/30_threads/unique_lock/cons/nodiscard.cc
! eb0a04afdaf0cf458540c25a68065477  libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc
! 6a6ede452ebc03ccb6c165d02fa4f914  libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc
! ae0e98aff1de08939972e6e8f368c5db  libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc
! 352afe80af5a248bd9dfdde68d3e6c0a  libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc
! 69b1200ecdc753bff3e04f2eb07ea577  libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc
! e31ffb0a2c9c6d74f548a8bdb533b08c  libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc
! b2b6cec0887fb57fce89d4355e01d242  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc
! 57cb308a7b58073a3e2b741333da5582  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc
! cacd0f423defbb1862cdba18e3dc08be  libstdc++-v3/testsuite/Makefile.am
! 87ec6e49ebcf181e6a1c9ee1225c8951  libstdc++-v3/testsuite/Makefile.in
! 460bc8cdd256ab295bcf16003349fbc0  libstdc++-v3/testsuite/abi/30586.cc
! 2163ef79d59e1fd6b61c3f6b6b2c54bd  libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc
! 7a8c331ed81908083ee0f491a838b7d7  libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
! 8effa067cf6c81055227d0072f428687  libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc
! 582119e8819ad8c81e11910310e3c2de  libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc
! eee89e2d2984e34fd9da239210c686b2  libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc
! b90dbb30cd5be3e51266ff4538b313c0  libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc
! 67f05fc3be2092d774409f1a7c902ea5  libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc
! fcb3310f27b8f143f6df28ac63e347bd  libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc
! c035f4d78d9cd6ab3b5de9547158e190  libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc
! d60eec9b0cb9f3c4c91bad646903e6a9  libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc
! 2980363ddc0810b12a82a7381b5f43b8  libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc
! 320b832f954bf0ecb7df77000191fcdf  libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc
! 37c9984f49fe5084ecf8ff4dc9d551f2  libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc
! ba1fd7edf5c425e6ebb4b7f19c6159db  libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc
! 5ad368fb90b3099f12d680e0b196aff4  libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc
! f729cc7dfce450395607d11394624827  libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc
! 7a4c54cbe3eadbc36c4e92df7e8f8918  libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc
! 98e198f88dc2a67ff7f5f27f73467817  libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc
! 119bad403b636cb8012b0da7ba354c89  libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc
! 5736210ba45d2228eaed42bc0c43b960  libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc
! b1cef2ef8a3f3a5b1e3d452975b1d7c8  libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc
! 0c00e6710e71dc558c3d5823b3385642  libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc
! 0c00e6710e71dc558c3d5823b3385642  libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc
! 5920150ba01ffa72447c7f98150d2ff2  libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc
! a8643521b77f3a5ea501bfad370130eb  libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc
! 8b53cc27a24219889849896bb5c93257  libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc
! 61af9652e5eb23bcd2d2d7cb5440b1bd  libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc
! d5e72b6227d117a314266993018a1628  libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc
! 7e9486eff201d26afd271f8cbadbbfd2  libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc
! 73119e866e2cf1b02a9ba4c242a3704a  libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc
! 841acf7406450c8023f88d02fb6408fa  libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc
! 9d94b62ce8e8dd78909e9ded1a397fdc  libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc
! 1c4c56e5d6a83120d33076771b5de948  libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc
! b22ad8fc8b739e16e0ce3ecb76fd75ac  libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc
! 9c52a1526399fc14eeaa66849188ece0  libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc
! 6b0adc3d8e5994267837dc47dd83f0fa  libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc
! ad2779cf6ac51bad85de015a1d7ec58d  libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc
! 76130ea1cd8588c7cf816356a6176157  libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc
! 7503bbc34d4cf7dbe64f135b1b07583c  libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc
! 779656ff39087f6880878c1e8cec369f  libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc
! 72892275295dea79a122ea0df570111e  libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc
! ce1ff1d0688e4a09d578f712ab8f78a9  libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc
! f12be4ca07e7b297fc92802c92015a0e  libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc
! 2a7332635bc60b4c4957de8c8a5c4913  libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc
! bc011f9e641701731821259c835a7fcc  libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc
! 6f36c344e18d61f633456271d38c2613  libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc
! 985211755cbaa4c3e6b2fa759bd34c14  libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc
! 4c19897d3f615d683f1df2ee3278a6b4  libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc
! 25f995145bc51e63c9e77e6ebcdb8180  libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc
! 4620c4682b554fe045e5d94ddb7b7524  libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc
! 6499731ebd14ee374b40d95c20def705  libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc
! 8138b3afef78b4c49f91dafc98a49e48  libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc
! 2aef50af28a0f9f7343000ffc20d7a1d  libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc
! 6e5791ed3866b8e515f4be1c0fbe7a6e  libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc
! da654aeb25105e35955d52be8576e51e  libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc
! 757528c57599ff582ca092136c092249  libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc
! 7e6ec4a86d4a4a937a22f845abe02f61  libstdc++-v3/testsuite/abi/demangle/regression/7986.cc
! ce4282dce3bf9521b7dceea4031ad1f7  libstdc++-v3/testsuite/abi/demangle/regression/8897.cc
! 64395d304f18dae8a690a2f0056e232d  libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc
! 936076114d10f499deff58e0824c5c6b  libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc
! 750f1b27b86a328b5eb9772c40268a43  libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc
! 8e88369aadbab74fbbde533302e053f5  libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc
! 2abab643b18b980c4f82e1c0d3053772  libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc
! 5d47c7334becd67f6f9e813e4c6fad8f  libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc
! e6256ef6f2b57f8f3b0aaf3a4a6e8cbe  libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc
! ea327c1979b7ec2b9c9599e036468d46  libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc
! 782f726590c440609eeb68d77f3a72b5  libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc
! 91807139bda6e3a3a23d807972b0e795  libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc
! 9b93127b03314d1fe8e6253a70f0222a  libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc
! b95e29835e70f667c4ffab42096ada6d  libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc
! 5bd6b2492b1a51a7c8f20b5dabf9b030  libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc
! d4c543133407930845e00d71f0703bed  libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc
! 5245470ade0e616e4916cb8a6a37fcb6  libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc
! efd4c67d637b221742fe4248d47fed66  libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc
! 33b72d209fee162ff6d97ba6cd9abc44  libstdc++-v3/testsuite/abi/demangle/regression/old.cc
! 6c60c202e95f7265577dd2db8d715fa6  libstdc++-v3/testsuite/abi/header_cxxabi.c
  026f7646f4161e79273f7580a661c0cc  libstdc++-v3/testsuite/abi/pr42230.cc
! 364f867dbac080b401875e42c07d7b1b  libstdc++-v3/testsuite/backward/11460.cc
! 81d8d654eaee65ab7265a01afddde7e5  libstdc++-v3/testsuite/backward/hash_map/1.cc
! 3f6848cede1ffc1bc45cb23558058bec  libstdc++-v3/testsuite/backward/hash_map/14648.cc
! 756e07b85f61d3ba3dbc156082abde01  libstdc++-v3/testsuite/backward/hash_map/23528.cc
! 83bc46552258f697fa3dde0b1be65e6a  libstdc++-v3/testsuite/backward/hash_map/25896.cc
! 1498e2e461711390c6314b8c19e5f913  libstdc++-v3/testsuite/backward/hash_map/requirements/explicit_instantiation.cc
! cdf3ccdd510207748f101f6478638db9  libstdc++-v3/testsuite/backward/hash_set/1.cc
! a7b8c9fe054fcdca3d423c045c72171c  libstdc++-v3/testsuite/backward/hash_set/25896.cc
  2c091597008357e678007f407f299a24  libstdc++-v3/testsuite/backward/hash_set/49060.cc
! 879596921400555f43b6a4ba0ff7ec36  libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc
! c92b9786603b94690d2cf39f66fb11e4  libstdc++-v3/testsuite/backward/hash_set/requirements/explicit_instantiation.cc
! f3d7a910f0170b61f3a70077acd25f65  libstdc++-v3/testsuite/backward/strstream_members.cc
! d96a1e87bb7bfbfcead85c1d0166038b  libstdc++-v3/testsuite/backward/strstream_move.cc
! 21c0a93b61537b3cab0bf2b3dd238106  libstdc++-v3/testsuite/config/default.exp
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/data/cin_unget-1.txt
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/filebuf_members-1.tst
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/filebuf_members-1.txt
*************** c301fea40cf8411c67e670f55107c746  libstd
*** 122068,124033 ****
  ccd8d09610bb1187b124063e4b7d62b2  libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst
  ccd8d09610bb1187b124063e4b7d62b2  libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/wostream_seeks-1.tst
! 0899eb73b45709e4e3e39237865b3243  libstdc++-v3/testsuite/decimal/binary-arith.cc
! c3757c2efcc9e8125359e7686a0d9df4  libstdc++-v3/testsuite/decimal/cast_neg.cc
! 3670a2279af803d507969eb1411d5d0c  libstdc++-v3/testsuite/decimal/comparison.cc
! cb571b3ed880be280b47a2e8e72f44b2  libstdc++-v3/testsuite/decimal/compound-assignment-memfunc.cc
! d46a912c3bc15a1b44bdcaee72dead86  libstdc++-v3/testsuite/decimal/compound-assignment.cc
! 1d579ac3ec02e92ffeeb45c8d6b8812d  libstdc++-v3/testsuite/decimal/conversion-from-float.cc
! 12744f1be5393bccee9734ec9ac2a7a8  libstdc++-v3/testsuite/decimal/conversion-from-integral.cc
! 516025e3aed9ff03da64bf0387f6805e  libstdc++-v3/testsuite/decimal/conversion-to-generic-float.cc
! 732370aa62bc0ad094263df0c8250ec2  libstdc++-v3/testsuite/decimal/conversion-to-integral.cc
! e18865cfe24e9250bcee8f62c4dea96f  libstdc++-v3/testsuite/decimal/ctor.cc
! 0af71ba4d890b7ff2115b340ecfafd8e  libstdc++-v3/testsuite/decimal/incdec-memfunc.cc
! 7804cd37599e3432e5470143110514a9  libstdc++-v3/testsuite/decimal/incdec.cc
! b83562e30adfd4c9b27d4666e1e8c5bc  libstdc++-v3/testsuite/decimal/make-decimal.cc
! 0c5670e906989b64ecaed7825a175616  libstdc++-v3/testsuite/decimal/mixed-mode-arith_neg.cc
! d927465e5086a39d637355baa2545041  libstdc++-v3/testsuite/decimal/mixed-mode-cmp_neg.cc
! d415f792df8f1623bad5483c9692b371  libstdc++-v3/testsuite/decimal/operator_neg.cc
! 980448dec5dbc0e8ec83bde6a685ce6e  libstdc++-v3/testsuite/decimal/pr54036-1.cc
! 269c9111da02ed0f9478d8fec2340f92  libstdc++-v3/testsuite/decimal/pr54036-2.cc
! 33d6c6a0b8a4e1e6e62f03b25132fb09  libstdc++-v3/testsuite/decimal/pr54036-3.cc
! 53f7bf25172468de6b98b606ce34793c  libstdc++-v3/testsuite/decimal/pr58815.cc
! 469356fe9982fe649ee15e4393e0a2cc  libstdc++-v3/testsuite/decimal/unary-arith.cc
! b21c9e4ab47988772a045a7df5d147ef  libstdc++-v3/testsuite/experimental/algorithm/sample-2.cc
! d43f4b5870f6ab97d55685f930561653  libstdc++-v3/testsuite/experimental/algorithm/sample.cc
! 4cebd7b9ad4629fe5cd24215dcf28c84  libstdc++-v3/testsuite/experimental/algorithm/search.cc
! b74d8216a0098e6fd0d431a2a150fae7  libstdc++-v3/testsuite/experimental/algorithm/shuffle.cc
! 9cc03e92145473ff1bc0a83db549aa04  libstdc++-v3/testsuite/experimental/any/assign/1.cc
! 61bdad27bf33141abd644611b7677cd9  libstdc++-v3/testsuite/experimental/any/assign/2.cc
! 36522611855bfc690eecb3ceeff12114  libstdc++-v3/testsuite/experimental/any/assign/exception.cc
! 45c7f130eaff4a34066fcba0a7cdbb7a  libstdc++-v3/testsuite/experimental/any/assign/self.cc
! ef9062aef099130592194d3f42a38465  libstdc++-v3/testsuite/experimental/any/cons/1.cc
! 43486b96f8ffa5d871a88c57c48342ad  libstdc++-v3/testsuite/experimental/any/cons/2.cc
! 42feb84e5a238c008667ebffdceaf98e  libstdc++-v3/testsuite/experimental/any/cons/aligned.cc
! d103a3eea23d76a3c5ba52888aa14d9e  libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc
! 10f4f1476593026a772610b08b9f49f8  libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc
! b308bfc9b7535e655673ee853146bba1  libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc
! f81cc30baae1e9ba25561fea01d160e7  libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc
! 27280da4073b8883ad754833467afc68  libstdc++-v3/testsuite/experimental/any/misc/swap.cc
! 4f6ddbce03894a6ee8b1b1fb9c20806c  libstdc++-v3/testsuite/experimental/any/modifiers/1.cc
! ff64ed2737df66b1b45d8006c4ea133a  libstdc++-v3/testsuite/experimental/any/observers/type.cc
! 2a0e9019735eb5196958fbde28a4bf8f  libstdc++-v3/testsuite/experimental/any/typedefs.cc
! 5604a1652a3a1ce31f79231fecc73141  libstdc++-v3/testsuite/experimental/array/make_array.cc
! 95d4f16ddc93164a26af1e704ac80be7  libstdc++-v3/testsuite/experimental/array/neg.cc
! 455926214358b9d6a504f8deb49e4d56  libstdc++-v3/testsuite/experimental/chrono/value.cc
! dfea9d6cddea3a6f5178113aa8e8ce4d  libstdc++-v3/testsuite/experimental/deque/erasure.cc
! 486c6490ca99880768c8a8d443ad1c02  libstdc++-v3/testsuite/experimental/feat-char8_t.cc
! 1e40b25f41d84c78c0074f58858cbdb3  libstdc++-v3/testsuite/experimental/feat-cxx14.cc
  f754118861b851f83334813d834cb200  libstdc++-v3/testsuite/experimental/feat-lib-fund.cc
! 522219a29285a47737a79f3702afcd16  libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc
! d0b3e568dab7b9def3b75bddea641044  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
! 4152958ada9a123344757a6ba5a358bc  libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc
! 4847b15793bdddaf1befc3cdaac67728  libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc
! 379f9d308596c0109b4b52cf65391629  libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
! fba30be717493830fdcf7cd331fb300c  libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc
! 00a53bcfc5c041286dd247485a74c4b2  libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc
! 88dd5572b162348bfcb2c7af2f2ed706  libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
! a2be19985f4562200b534aa694b76eaa  libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc
! 9bca09eb6007906cec9927cb95f003e6  libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc
! 3d52359115da663d700810684c3accca  libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc
! 6c6612f6cc3b207e9437efc4f1f33b32  libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc
! 7a49144eff94312a5776f95b7df0c79d  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc
! 8d4b8ad9c1375f3ddf3de53ecc47697a  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc
! 59c0ce0953c46136062ebe263e8e8cca  libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc
! e0e82e042394c1849c5f00bd1775e91c  libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc
! 394bff3243bfa3a81f3f0f45ef2661e9  libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc
! 1b6e183c01c177bd99d5c23db2df60f5  libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc
! 80f2753ac2ff8390885b254380917d60  libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc
! cf4e61341b6797efd1e85f0ac1f2f6f2  libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc
! aeb03545e987083e0162ed1e321e6bbd  libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc
! 3275210e900a167286ace7ddb69c32df  libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc
! 7d24a21f41d52ce2167ec3c6f5696697  libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc
! c683e99def760c911eec2928e1c07e1c  libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc
! 42572c97975abff83c484d865250acfc  libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc
! 8599bc5d5ceb4f5b64b567c74d91217d  libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc
! 6a4fb72204aa2703924609f08522d17b  libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc
! b98948c551bee5cc7d9c094747ddba4a  libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc
! 611dc3d0c27ed2c4755e2623ad755d39  libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc
! 83926f9215a01d63eeab0639b3767fe6  libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc
! 5c728240ac6f9d3cb554e6c8b1426e86  libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc
! 51cde83307e75390b27e9a01c6d64dab  libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc
! 7a96d873382d822fd330b3b81ce412c1  libstdc++-v3/testsuite/experimental/filesystem/path/compare/compare.cc
! 9781d2ddc7dcd407841d5aa8e364b349  libstdc++-v3/testsuite/experimental/filesystem/path/compare/path.cc
! 751386fe94f215b9517c877cdc28e958  libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc
! 918b69aab461293cc241390a9b1479dc  libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc
! 1b7d15b79bbcf73d77ef62f090e14db4  libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc
  c06b01e19066f0d4ffa4faa5202f4e3e  libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc
! 1831ec74b205501c0cfadc0b0cfc0838  libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc
! b849b8365f4d258441640b2be925f033  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90281.cc
! bf71941ff41a1d34a50279f920135216  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc
  bc0c58037ed5ab6415d0899ccc8799af  libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc
! 896325f60ba773a54e592ae9465a5a9b  libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc
! 7e663f40515584a5738f1f38dd4ac07b  libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc
! a6dee22ea3e36ca15c2c6dbd547dc7d0  libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc
! 758500eb7a7ece83d230981dffb50423  libstdc++-v3/testsuite/experimental/filesystem/path/construct/range.cc
! d595cf87b5abe7ea23eeb37d2a52073d  libstdc++-v3/testsuite/experimental/filesystem/path/construct/string_view.cc
! ce0d1c84982e9b4a308a106208fc95fa  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/extension.cc
! 3907f3c12781afd85ca23f1543d77086  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/filename.cc
! d68e91ac82b8266c2b48a1d2becc808d  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/parent_path.cc
! a2c9a58153ced4f573a50a3efe6e2bba  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/relative_path.cc
! 24ce1ac544f879a544b9944bdc446674  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_directory.cc
! 2f03e652c645eb28af45d53c378f287f  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_name.cc
! dfb0cf0ea36578103bde01e6e29df8f8  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_path.cc
! b240ea81eab3884c0d6fcb7805f31378  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/stem.cc
! 81d7460c456e64319ef7a22dcb5ce22b  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc
! 2ca40835b36367645cca96a10e861e53  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path.cc
! d8f64f9b4c89779046f5939e7028c11f  libstdc++-v3/testsuite/experimental/filesystem/path/generic/generic_string.cc
! 48cdcbc47b9f43daac29c981108b386f  libstdc++-v3/testsuite/experimental/filesystem/path/itr/traversal.cc
! a51b0f2eac71825bc07e7067f401e681  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/clear.cc
! 61800d5934d8d8bac72d22372e88497f  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/make_preferred.cc
! d2d6d74d9ec1de4ef2f6a5dc4a732d26  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/remove_filename.cc
! 89763777f4a97d195d7bc45aa330d08b  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_extension.cc
! e924b0bac6bc21d4f6452d67269c560d  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_filename.cc
! 83dfc63047be204631b76c1f79aeafbe  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/swap.cc
! 58dcedf114beee5dc802acac26182fad  libstdc++-v3/testsuite/experimental/filesystem/path/native/alloc.cc
! 6972da7c2da200c073d985ccbd580534  libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc
! 3f9b36bece574407636b373f7a936b2d  libstdc++-v3/testsuite/experimental/filesystem/path/native/string-char8_t.cc
! fd0ebe88beda531188b9f184015dbdb7  libstdc++-v3/testsuite/experimental/filesystem/path/native/string.cc
! 3433e155045f0404f76e570a5326ff9d  libstdc++-v3/testsuite/experimental/filesystem/path/nonmember/hash_value.cc
! ac948cf002a4879aa4198ec80d25f71b  libstdc++-v3/testsuite/experimental/filesystem/path/preferred_separator.cc
! fd83332d9b95c0914ec94ee1ef3856c3  libstdc++-v3/testsuite/experimental/filesystem/path/query/empty.cc
! 846298a982b9a2eaa470c4a90459da33  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_extension.cc
! 985eba672eadde3b4ef047f4b46c2a00  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_filename.cc
! c38fefbba653dd7abd177aaa1332c6d5  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_parent_path.cc
! 500923f17e4e77297facf2eb83a88494  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_relative_path.cc
! 8f98d5d2ea8c5fecfefce35bf5310bfb  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_directory.cc
! a1032403ab3fc27503ffaa6587ea190c  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_name.cc
! e6366876f0e1eb911c30d90500ce559f  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_path.cc
! 13eef7d59d9939686386f3544558fda3  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_stem.cc
! 4f631f286617289fe95b25f68dc698cc  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_absolute.cc
! bc806fdc9c37b91050896f713630ce2f  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_relative.cc
! 2ab53cdfd49b41a0473e43c1cf17e3b2  libstdc++-v3/testsuite/experimental/forward_list/erasure.cc
! 654ab6bfa67fb1d4012d057690c8365e  libstdc++-v3/testsuite/experimental/functional/87538.cc
! 7d9018e1d9bb21e3de433b7247de51d9  libstdc++-v3/testsuite/experimental/functional/not_fn.cc
! d3d7424a2d97d981e86b389a686c51b8  libstdc++-v3/testsuite/experimental/functional/searchers.cc
! 485fff0bbb4df3adfb27294ee269c983  libstdc++-v3/testsuite/experimental/functional/value.cc
! 329c499e7688741c65e2c85090d47c8b  libstdc++-v3/testsuite/experimental/iterator/make_ostream_joiner.cc
! 6f9fadd2257261189fdb672fb2144cc2  libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc
! 7c50675b7ca730a17da55b2c525eb4e2  libstdc++-v3/testsuite/experimental/iterator/requirements.cc
! 0358f9865bb62a91bf6219c128db8754  libstdc++-v3/testsuite/experimental/list/erasure.cc
! 7d2998827c275af623f699cc91788fa1  libstdc++-v3/testsuite/experimental/map/erasure.cc
! cad095354a57722acb19d0f87c3fce07  libstdc++-v3/testsuite/experimental/memory/observer_ptr/assignment/assign.cc
! d3ab83cbe4502b619d8d47c64035e6d0  libstdc++-v3/testsuite/experimental/memory/observer_ptr/cons/cons.cc
! 8650476cb09a847d87a9ca4cd63f03a4  libstdc++-v3/testsuite/experimental/memory/observer_ptr/hash/hash.cc
! b01b2f7b4659b9e39b594fe9777e1c52  libstdc++-v3/testsuite/experimental/memory/observer_ptr/make_observer.cc
! 47817faf5b5da67414eaf948fffb85ac  libstdc++-v3/testsuite/experimental/memory/observer_ptr/relops/relops.cc
! ce6378cd957909904db1a175ffb9b2bc  libstdc++-v3/testsuite/experimental/memory/observer_ptr/requirements.cc
! 4cb1ae823d22084f6eb4bab2d10321d7  libstdc++-v3/testsuite/experimental/memory/observer_ptr/swap/swap.cc
! fe88c7666a4d1f08196341f692cc8ab6  libstdc++-v3/testsuite/experimental/memory/observer_ptr/typedefs.cc
! aea5fafebc86567bc21ba1e3c1c52bf3  libstdc++-v3/testsuite/experimental/memory/shared_ptr/assign/assign.cc
! 61991e40dc1def7162a5292f6505daad  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cast/cast.cc
! 5ad519586d4aec194c00cd4453776a91  libstdc++-v3/testsuite/experimental/memory/shared_ptr/comparison/comparison.cc
! c6608c0cca1b5e77ce3fdc4cc466625a  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc
! 93789230a057de0e81d761a0bb45ea9c  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc
! 01d6a6eb8c93b59c947e7f89b8820770  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc
! 6806d024f8bbafdc2381eaec6a9e47fa  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc
! d7077943a58664d9115139169e763576  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc
! 2913cf38887422c9902d761f2044a8ca  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/enable_shared_from_this.cc
! b3cfd215a11d7a90ea80b48db602f9ec  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc
! d61a70ab5f2aa3c3f3d58749b8366b94  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc
! edabd22e9ae30136653c09824d621558  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc
! e164581f8f300512dc7b5ccfb2cb7304  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/torture.cc
! fc07f7199d4f22333b4560d9ac6ad446  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc
! 7db25689858d52353f909336a3ab1139  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc
! cb6af3dd482dce2bc5bba119f46792b8  libstdc++-v3/testsuite/experimental/memory/shared_ptr/dest/dest.cc
! fff997d617db4900cc17b680dd2e7f9a  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset.cc
! bded9d3cb5cca933997a0491246908d0  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc
! 83aaab22e6a7af712f237d824708cd32  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/swap.cc
! 3906a45c8f3c756cebf96e7f0ae1ad26  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc
! 9d5ee4c8319ab066b206a80778b065fd  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/operators.cc
! eff51606ddd3dff29b281d2958f3ea8d  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/owner_before.cc
! ec3bff12199ac38da41024d97326147b  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/use_count.cc
! fab953b7e638848911c0b8ebc5d0e886  libstdc++-v3/testsuite/experimental/memory_resource/1.cc
! c06cabecddd12c29bbfc20dc258c969b  libstdc++-v3/testsuite/experimental/memory_resource/70966.cc
! 90551c65e072883f90b15e3f306e6283  libstdc++-v3/testsuite/experimental/memory_resource/new_delete_resource.cc
! acd8ca1a310e616ec2a3b386b894ea0b  libstdc++-v3/testsuite/experimental/memory_resource/null_memory_resource.cc
! d77670cdb9f2bd50de9187a9d516cc2b  libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
! 161ecb6efe26f04e9f48748611ad1b81  libstdc++-v3/testsuite/experimental/names.cc
! ecb0982f4535b7125712d5ad0de82e55  libstdc++-v3/testsuite/experimental/net/buffer/arithmetic.cc
! 5fb863a919a539fa1a09b7039ffb05a8  libstdc++-v3/testsuite/experimental/net/buffer/const.cc
! 6ff9104ee97e3724518501e62b87a32e  libstdc++-v3/testsuite/experimental/net/buffer/creation.cc
! 6b8f3f46e23b4d3e5707aa8c2ea18bac  libstdc++-v3/testsuite/experimental/net/buffer/mutable.cc
! fe59d57a0b5db9b95a4e184d8bf16bf3  libstdc++-v3/testsuite/experimental/net/buffer/size.cc
! e6b9ef986bde4fcf5efbd9814469aac2  libstdc++-v3/testsuite/experimental/net/buffer/traits.cc
! b3a2a09188b6fcc1eab73c094a4112a0  libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc
! 99d0aa01a77fb1d2515f401446bb2c93  libstdc++-v3/testsuite/experimental/net/execution_context/use_service.cc
! 8a239431b9425b7d24e9dc16854cfb8a  libstdc++-v3/testsuite/experimental/net/executor/1.cc
! 725d11c6bfbcbad81869aef83c74ebe8  libstdc++-v3/testsuite/experimental/net/headers.cc
! bbebc77d7a8a445ac20f8e367a947fde  libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc
! d1bc00caac713b8fe8bbdddd891307b8  libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc
! 01af0feae4dd90d205e9632d443da047  libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc
! d9ca43dd39698879243b609aa2642725  libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc
! e578851fde3c165b0a65d0a489ad81fe  libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc
  c5933a59fa35123b5f7476b94a3b153c  libstdc++-v3/testsuite/experimental/net/internet/endpoint/cons.cc
  2ebb41182bd0ccc894c6ea518d3ea2eb  libstdc++-v3/testsuite/experimental/net/internet/endpoint/extensible.cc
  ec468421255febe9f30c0b08480f9b93  libstdc++-v3/testsuite/experimental/net/internet/network/v4/cons.cc
  effbee31a73742de94b337a743054276  libstdc++-v3/testsuite/experimental/net/internet/network/v4/members.cc
! 24c60b07806057560068df299d0c0c43  libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc
! 62a69b0e6f6cd8d597e4aa7e9c49b1f6  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
! 241eed295598dba2c9847a7e798c8f4c  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
  760dec58bec2534cd56103a2710b1e16  libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc
  47ab303b0324b578953893e188a1c4e8  libstdc++-v3/testsuite/experimental/net/internet/tcp.cc
  31837180dee34f479c2c7eaafac7b04a  libstdc++-v3/testsuite/experimental/net/internet/udp.cc
! af1b2322771cc51ed702ffa5fd336944  libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc
! dabc1dd91e6527a7383e191326f4c191  libstdc++-v3/testsuite/experimental/net/socket/socket_base.cc
! 1dbbe9b4c533cfa88663e95828ec10b4  libstdc++-v3/testsuite/experimental/net/system_context/1.cc
! 100745b7679c81cd30ba27dfa2fc741e  libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc
! 1cf1b4fa699227af1ff34864f60f2ed9  libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
! ad9a12dee28fdce0cc1bd8d66949b43e  libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
! 1a1477ec11c31238279f1b5c28237109  libstdc++-v3/testsuite/experimental/numeric/77801.cc
! 5478974afa877681d65896cce4c25aee  libstdc++-v3/testsuite/experimental/numeric/92978.cc
! 01107ef1ece180cc0db13bfbf1d0ffeb  libstdc++-v3/testsuite/experimental/numeric/gcd.cc
! a9959f8592827755af79e49dd0be6a47  libstdc++-v3/testsuite/experimental/numeric/lcm.cc
! 78e606aa8a35e5d3708bd0ed8ed9171c  libstdc++-v3/testsuite/experimental/optional/77288.cc
! 1c24119517239471809665aa59b293c2  libstdc++-v3/testsuite/experimental/optional/assignment/1.cc
! 24f1dc658609ab8b16c4df81643acae5  libstdc++-v3/testsuite/experimental/optional/assignment/2.cc
! 64114bc8f8bea761be7b28c209b53034  libstdc++-v3/testsuite/experimental/optional/assignment/3.cc
! 82602fe0af7ace8d9476b9b29b20da62  libstdc++-v3/testsuite/experimental/optional/assignment/4.cc
! 04e58aad1a16058d79cd36a4bae5d765  libstdc++-v3/testsuite/experimental/optional/assignment/5.cc
! 2c0c2b4ebde3d2adfc88076cbc36884d  libstdc++-v3/testsuite/experimental/optional/assignment/6.cc
! 8b42e9e3fbfa20a5febcd27ee615dc09  libstdc++-v3/testsuite/experimental/optional/cons/77727.cc
! eca83dbaeb76f1eea590dcfb249d4851  libstdc++-v3/testsuite/experimental/optional/cons/copy.cc
! a9efcfc089b94a3cac2d8b887fd96cbd  libstdc++-v3/testsuite/experimental/optional/cons/default.cc
! fe016bfa42da310b2ad295be4b863ab7  libstdc++-v3/testsuite/experimental/optional/cons/move.cc
! 22152b7a432cceaffc7a8f1f5bb90ae5  libstdc++-v3/testsuite/experimental/optional/cons/value.cc
! 4a41ae866cf1197a6957490a6148413d  libstdc++-v3/testsuite/experimental/optional/cons/value_neg.cc
! 96715d807d08a79230e9e95c96aeb134  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/default.cc
! 5c1c820a9fd4a9405ee2fa2159f34813  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/value.cc
! c568a48f11e5e9f1d29396c7210d0d95  libstdc++-v3/testsuite/experimental/optional/constexpr/in_place.cc
! 4cd192a46d8b1ffdf8e67fbf9dd1c014  libstdc++-v3/testsuite/experimental/optional/constexpr/make_optional.cc
! 652ab4d2944a63681cccdfa457b10b03  libstdc++-v3/testsuite/experimental/optional/constexpr/nullopt.cc
! 3ff2e4803febd2748e97d2c0703ad521  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/1.cc
! 142a2aeb014d62784e7ff6aa9e661586  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/2.cc
! 3a0e6212b9f563ff7892439449697645  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/3.cc
! 6fe2eae990863962a8a27b25fd44abff  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/4.cc
! acef86378b576e33f4247eadd26adc29  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/5.cc
! f97128776e874f58f735b508d41f2f71  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/1.cc
! aec60cf2147ef1e0bc78c2f04b08668a  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/2.cc
! 17eb83116582826ce3bbaf64cc71ce68  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/3.cc
! d21f1ad199dc5f3d85e74d1e30ebd688  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/4.cc
! a949033f1c3e9bc51ddcefdaff5947e7  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/5.cc
! 098f94848e0d5465bd0d32b0c8a1aece  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/6.cc
! a2d5e91ac72e10b57c6b67091e498a78  libstdc++-v3/testsuite/experimental/optional/in_place.cc
! a9c0dd4118e0088fdd6aa17bb28380d5  libstdc++-v3/testsuite/experimental/optional/make_optional.cc
! dc888dfab921461654a96f0845171615  libstdc++-v3/testsuite/experimental/optional/nullopt.cc
! 93a22c84c90c60faa1f8b464aadecc79  libstdc++-v3/testsuite/experimental/optional/observers/1.cc
! ada53cf9231516121635676d6ef3cf73  libstdc++-v3/testsuite/experimental/optional/observers/2.cc
! bebc2fe80934c9197755f4e08e4a8db8  libstdc++-v3/testsuite/experimental/optional/observers/3.cc
! 2a674a9eef497dd037568c4dbd277c90  libstdc++-v3/testsuite/experimental/optional/observers/4.cc
! cce9615cb690b1c6314bcf0998e3f954  libstdc++-v3/testsuite/experimental/optional/observers/5.cc
! eb07901cff837d70fd48fda464f4de7c  libstdc++-v3/testsuite/experimental/optional/relops/1.cc
! b8a8d510c773d87a25aff9ed77772c1e  libstdc++-v3/testsuite/experimental/optional/relops/2.cc
! 2eab058475e6f8d708c0afab3ab07db7  libstdc++-v3/testsuite/experimental/optional/relops/3.cc
! 5551e719feb346c35e8040f5593b1276  libstdc++-v3/testsuite/experimental/optional/relops/4.cc
! 924457569ae2ab6f30980c1f0448c432  libstdc++-v3/testsuite/experimental/optional/relops/5.cc
! 9531bbc3fdd81a784dc82ada10c40773  libstdc++-v3/testsuite/experimental/optional/relops/6.cc
! 74fa0bd74b2fbb2429416d76536da193  libstdc++-v3/testsuite/experimental/optional/requirements.cc
! e7a189777ddbb48bee2c238d2c92e425  libstdc++-v3/testsuite/experimental/optional/swap/1.cc
! b453a0df7cf07904091a825415adeb89  libstdc++-v3/testsuite/experimental/optional/typedefs.cc
! 71835f922c1bc542ef99cb645a4ad6e6  libstdc++-v3/testsuite/experimental/polymorphic_allocator/1.cc
! 25fa5d19acf0ddc565b4237b974b4e3a  libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
! edfdbd00dfe021bd59aefb613d5d7369  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc
! a1d760a8e565a627b2e6dfb191a92f48  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc
! b0c1ce763caa163f7eee7fb2586dd800  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc
! 9de019d1ad768798f9833b8e53d2ead6  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc
! d11a31927a8ad1a2b0d5a1e02460c175  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc
! 06c4ac7fac83a7eb34c6141426ee5b38  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc
! 10f16a245913e6bb129436b86220d085  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc
! 0a72ca0172000e236c935d50010355c3  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc
! 8c48bf9263ecc4b214b70cb4cdbfe040  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc
! 4706fe33d2f00f9c275aafe0f4f1e9d0  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc
! 65eb1cc42fd27e5359330b426a57199e  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc
! 08fe4dae317bbbba2ad74f0979127335  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc
! 9e0d0fdd6934fe1a8727f1378114022c  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_set.cc
! f985834aa6c818956a8e74874ec2daf0  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc
! 4cb6672f0dfb344f5df9668d89c1844f  libstdc++-v3/testsuite/experimental/propagate_const/assignment/copy.cc
! 545203480ef665355af6be60876a3711  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move.cc
! 11e7b7fe88eac55698f6811631e6f02b  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
! 0020096c78ab9f27fbf6d197031aa13e  libstdc++-v3/testsuite/experimental/propagate_const/cons/copy.cc
! aa60b9b85f34d51d464a947cfcbd8db1  libstdc++-v3/testsuite/experimental/propagate_const/cons/default.cc
! 2935abfe0eccdf62e6ac2755363d5ac6  libstdc++-v3/testsuite/experimental/propagate_const/cons/move.cc
! aa7d50b62b6dbb1fe0d25ede0024b6bc  libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc
! 5cc69080cb8073fcc257f7edfe5fff5e  libstdc++-v3/testsuite/experimental/propagate_const/hash/1.cc
! c336119b97548f2620759c280d362131  libstdc++-v3/testsuite/experimental/propagate_const/observers/1.cc
  04b09dce4e740e5b8a2e2620eb6b3ef4  libstdc++-v3/testsuite/experimental/propagate_const/observers/107525.cc
! 016be79cd08241bf57e3dd195b3b8227  libstdc++-v3/testsuite/experimental/propagate_const/relops/1.cc
! b3b6f85219901a59de86800e997f0a9c  libstdc++-v3/testsuite/experimental/propagate_const/requirements1.cc
! c677cd775ff2fae7d1a4d45658be0699  libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
! 67206ad43319545c05a37dae37c0312f  libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc
! e3950456fe095673e60ef94031608ce1  libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc
! e41dd87e80d67e6b8e651b78e7e3ab75  libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc
! 8308f286dc794f1f541ffcf1536eeecc  libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc
  f622008c5ec7680a2ac920136d22446f  libstdc++-v3/testsuite/experimental/propagate_const/swap/lwg3413.cc
! e155a009b2335cbb1d5dbec61a48178f  libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc
! 604640f7d96bea98e0ab1fb0b28aa71e  libstdc++-v3/testsuite/experimental/random/randint.cc
! 56e02397ebefff69c8ba22a52ab0ab37  libstdc++-v3/testsuite/experimental/ratio/value.cc
! 97b562b4ea6fc1f0be023106d56bcc79  libstdc++-v3/testsuite/experimental/scopeguard/exit.cc
! 97af52a589fe5083b653ed57d72e004b  libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc
! a63e3ed06f23d2ca257b8e6528aaebc3  libstdc++-v3/testsuite/experimental/set/erasure.cc
  d6f0083479e5097ec27151965ff89e5d  libstdc++-v3/testsuite/experimental/simd/README.md
  2c666451450a60415a52ed94723ea1a6  libstdc++-v3/testsuite/experimental/simd/driver.sh
  2653d8586849bef6493c2e5b408777ae  libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh
  03e8f51d7ef48b8a37325dad25e551ed  libstdc++-v3/testsuite/experimental/simd/pr109261_constexpr_simd.cc
  40516291f4d97883db23570b8f0c38a0  libstdc++-v3/testsuite/experimental/simd/pr109822_cast_functions.cc
! 0b0eeba3af6dbb041b7ca3773f781cda  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable.cc
  3718cfdb2ca6d6f1e0fb585a7350e074  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable_2.cc
! 5e5d595bd073d01ac2c22da1f7fe3ccb  libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
! 4e0afa62c78befd1071bdf8b7226a7d3  libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc
! 6488adb1bbcc967e5fea5fd30006a297  libstdc++-v3/testsuite/experimental/simd/tests/bits/conversions.h
! 7c51301313efec39cf1c90e9c0d97ca0  libstdc++-v3/testsuite/experimental/simd/tests/bits/main.h
! 8691ea5fc0d2ff1f5f934f0558e590b1  libstdc++-v3/testsuite/experimental/simd/tests/bits/make_vec.h
! 69d6d68ffc02fae4c0a9deaba122d74f  libstdc++-v3/testsuite/experimental/simd/tests/bits/mathreference.h
! 045c0964f3d985284f5a96c0a3664c4d  libstdc++-v3/testsuite/experimental/simd/tests/bits/metahelpers.h
! 5f8e6dadde711efd66691ecb3b79aa09  libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h
! 2faafc75ac2aa206ede06b910640d315  libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h
! 38f3c8d8c0e22e845747869fc0905e6e  libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h
! 9fe72ba9408476a0c7998b0610c974d5  libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h
! 5b1a0e706e38a1299047ba7db61cbcb5  libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
! 2e0686ab4047544484a1ce14a60eaa06  libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
! f99fbfde13782a509279f253f00b934a  libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
! 52af4640d96e3515b5d2a052d13bb9d2  libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
! 090aeb2c99147a01a14ea9993c7ff54e  libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
! 6f48d598891cbfa39af416612e384d81  libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
! 37fb7b4c9cee06b401e98d6c26a5c90c  libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
! ca4c6f1f738efb02a596490cb2d2b520  libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
! 27da12013f659c66cb7893b99c3d821c  libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
! edc18e5482db906aa1ba4dbe451e88b7  libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
! b022debb6f0ae2626693f6b18ba9ac0a  libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
! eb19809be6764e4d1ce9d9e0ec92920c  libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
! cc22fd2ebe4c0c3b057e7c60c6c7b2cf  libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
! cdb8a8c748d23e33538cec15fca431cf  libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc
! dde99dce982783fb743b7acfbcf859e5  libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc
! 134151f225a98f654375b3749e61e0f2  libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc
! 04c5a5772607a1622262acfa1d17942d  libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc
! 799cbcef977349282bd77f3673058c6f  libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
! 1fb08ff0420b0df375290804f7ad863d  libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
! 9eee2a688b63027d1d0ae8ef865e817c  libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
! 7bd9a6cad39c196f72527df8643b33dd  libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
! 8dd4b34adaad4e669108711605b12863  libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
! db3a1e78df9d85ae5926f026ab126f42  libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
! 9fe2e068c2dc933389fab452e63e86ad  libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
! 706e2e00fc885ad2560c3139029dec1a  libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
! 04f4dbbf414e688b229fff70a1850f17  libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
! 2e2e1916c3c0e15dcc35afe4af9d535d  libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
! 4a08c68edeea55e4ada85fc22f816db7  libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
! b38a62f0e98950521befab50ed59d336  libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
! 01d11dad77fb06b8f2fcb49fd5af0751  libstdc++-v3/testsuite/experimental/simd/tests/where.cc
! 092a43ef25590042c4bb384958ceb1d1  libstdc++-v3/testsuite/experimental/source_location/1.cc
! 95f4f79a722a76ed0159d2b86ad6a3c0  libstdc++-v3/testsuite/experimental/string/erasure.cc
! b1cf0b61561e1e96038a91c0bd330c7e  libstdc++-v3/testsuite/experimental/string_view/capacity/1.cc
! 046914b8b5764c34d6edcd6d727bf07d  libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc
! 920b0c1d4b9aeb84ec64cf8c671aa0ff  libstdc++-v3/testsuite/experimental/string_view/cons/char/2.cc
! be6f4adb70eee6199203f4dd650fa0d2  libstdc++-v3/testsuite/experimental/string_view/cons/char/3.cc
! a70c6a96dd90c3cc441aba00207c16c5  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc
! f7e6a9b0ce48b9f5aa70974ffb2c0799  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/2.cc
! 61680d0751aae4fa66a62c4c1964478e  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/3.cc
! a0a8ad2e8a69d113af5fbefd024b280f  libstdc++-v3/testsuite/experimental/string_view/element_access/char/1.cc
! 80be15d9d4a330b7233498ad76d2b85d  libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc
! e82fe8f3b37c1590d0c51f057d386755  libstdc++-v3/testsuite/experimental/string_view/element_access/char/empty.cc
! 6ed88e45453801ecf6e266fd09581364  libstdc++-v3/testsuite/experimental/string_view/element_access/char/front_back.cc
! 526d6819af6b861551183b2cca0ec481  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/1.cc
! 354a6d38b426bb506e313ca0c8900ecc  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc
! f2386d305a839f9bf20cf7d5dadee0e2  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/empty.cc
! fa5b0139d02431072cb92414af4ad7a9  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/front_back.cc
! ebdeae822715efcbd75e8748899657bb  libstdc++-v3/testsuite/experimental/string_view/include.cc
! 3ac78dfe90431649bfaf3da191a81d35  libstdc++-v3/testsuite/experimental/string_view/inserters/char/1.cc
! c377f73f5fc6a9b399cbfe665a866abf  libstdc++-v3/testsuite/experimental/string_view/inserters/char/2.cc
! 5289403e4c84f9471aeacce929e3ae1b  libstdc++-v3/testsuite/experimental/string_view/inserters/char/3.cc
! 6b25dbd911e56a9a02d765890cd93961  libstdc++-v3/testsuite/experimental/string_view/inserters/pod/10081-out.cc
! f7719fea132f5a8a4554d5542cb2da4b  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/1.cc
! b05ba5892bfe19085b1ac44ea959264e  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/2.cc
! c3039cc9b211b1f5c123329e644aec08  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/3.cc
! a4ebbebe165f841514dcd73330a5bc31  libstdc++-v3/testsuite/experimental/string_view/literals/types-char8_t.cc
! 3eb6e683285437458cf74f36bba2fe75  libstdc++-v3/testsuite/experimental/string_view/literals/types.cc
! c30da2523ca73fc68b4ec3fde819df81  libstdc++-v3/testsuite/experimental/string_view/literals/values-char8_t.cc
! 8cc30f34d8bfc3deb9a6f0b58bc9dcbb  libstdc++-v3/testsuite/experimental/string_view/literals/values.cc
! ee410221ed995add86cb06ba8dd3cade  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc
! 65710efa94373ed6ff36274b8b7f05b4  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/1.cc
! 15996bd978eaeb24d1883f99bf16f16d  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc
! aaebc4021177ed8513c5640297494850  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/1.cc
! bcef78581c01394a1806a57a2e2899cc  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc
! 6ff8326cadd4d7a61b80857ed5cddaa8  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc
! dbdcae9075e004336da4aae3c894d684  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc
! 04985f70d63647deaee385ce137fdf32  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc
! 711e74b813c61933df32a157477a6746  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc
! 64e7c8cc3297f1bc21169bb41c7a151b  libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc
! 1e10e56609f315653c0a724fb1cc4bce  libstdc++-v3/testsuite/experimental/string_view/operations/copy/wchar_t/1.cc
  672cb4f94c8a852e6bdb846e926365f9  libstdc++-v3/testsuite/experimental/string_view/operations/data/char/1.cc
  3500b68ff8c9b68295a6f4a0a348e9d8  libstdc++-v3/testsuite/experimental/string_view/operations/data/wchar_t/1.cc
! 1487700164c0fb52a99116229f826612  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/1.cc
! 1e37a58d3abbc8b31de9fbf441cd1f9f  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/2.cc
! 0f5eaac232c709a65b53878a49da282b  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/3.cc
! c02aecdab8f46660b6a7197df7377165  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/4.cc
! ea2bfe3079d6388c44fe4cd6bbb86de1  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/1.cc
! ce82050f8b4cd5c977a3a6dced066f7b  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/2.cc
! f85cfe617dd314a381b5b3184aa2bce9  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/3.cc
! 282b25715e55645d740ac8b9560dfc86  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/4.cc
! d42e319b75b0d7b9fdb2af97db3ccddb  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/1.cc
! ba07fa94e4c428c560c53dcc88d5b20a  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/2.cc
! 8488167892d04812204dcb264684d7d7  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/3.cc
! ea5e39f0b788b3598b5328728edf90f3  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc
! c459cdf89d33ac04e8b69e2b27929a94  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc
! 3ee997048ad3fd8f15c8093470b88534  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc
! b93f6cb53dbe756e6e6cfc8ba96de4c8  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/1.cc
! 22e0ff2f00e3bbda1c46e7341b300438  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/83511.cc
! 76a910a854d935e5bc967d1a1424c862  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/1.cc
! fa747df13c227e12411779440955ae96  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc
! 3eb3d6bdac1de5f9508243431702c6d7  libstdc++-v3/testsuite/experimental/string_view/operations/to_string/1.cc
! 529fdb3bbae7364a9cf00454865e6f10  libstdc++-v3/testsuite/experimental/string_view/operators/char/2.cc
! 23ea44baada5dd01cc262ba53b4f72d6  libstdc++-v3/testsuite/experimental/string_view/operators/wchar_t/2.cc
! 587f64c1e6a3b94a7b982d750cfccb21  libstdc++-v3/testsuite/experimental/string_view/range_access/char/1.cc
! 6549be9fedc662368da2ca05a3b50537  libstdc++-v3/testsuite/experimental/string_view/range_access/wchar_t/1.cc
! 59b6a2633c1ea21fba26dc8300749fe8  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/1.cc
! 9e6a04a677e98a8532773f175ae991bd  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char/1.cc
! 0a431931d83b78cfef29aa582cd5f138  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char16_t/1.cc
! 785ac87f0f6ccf07478c7e071b4eae87  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char32_t/1.cc
! cdf80773d5ce562f867139996fd11eb1  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char8_t/1.cc
! d69f487e5e17118bab84b664d2c7c6fe  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/wchar_t/1.cc
! b0a482cadf3bf01496b6bba83fd170a8  libstdc++-v3/testsuite/experimental/string_view/requirements/typedefs.cc
! 11a0c814141c363f8c050b102d247b5a  libstdc++-v3/testsuite/experimental/string_view/typedefs.cc
! 206408e88c6d60f7c1f7964fd2dca895  libstdc++-v3/testsuite/experimental/string_view/types/1.cc
  b89c4bdefa0bf886e09684838214bb81  libstdc++-v3/testsuite/experimental/synchronized_value.cc
! e60190126c74d5ba55ff713c865abf87  libstdc++-v3/testsuite/experimental/system_error/value.cc
! c2fffbeb57664d2e1f01bda5a2994663  libstdc++-v3/testsuite/experimental/tuple/apply.cc
! 190ccf8d418f66af02265b61b9c7fa8f  libstdc++-v3/testsuite/experimental/tuple/tuple_size.cc
! 92c17a6f1bdf23dff5451ea1e1859fb3  libstdc++-v3/testsuite/experimental/type_erased_allocator/2.cc
! 264615baf4d8a292f378374c441b93bc  libstdc++-v3/testsuite/experimental/type_erased_allocator/uses_allocator.cc
! 1c5b0cf140895dfd1035ba1df403b0f7  libstdc++-v3/testsuite/experimental/type_traits/detection.cc
! 6be2f71ba175709d12034c58a8adbd73  libstdc++-v3/testsuite/experimental/type_traits/nonesuch.cc
! 1bbd687ac0bc32884ef78666ec1e6de8  libstdc++-v3/testsuite/experimental/type_traits/value.cc
! ac8deac2e95f3487688cdca323967544  libstdc++-v3/testsuite/experimental/unordered_map/erasure.cc
! 12ab3728c7054394764fe34a87d48655  libstdc++-v3/testsuite/experimental/unordered_set/erasure.cc
! 90bebec8264814179b24e83d7a2ba800  libstdc++-v3/testsuite/experimental/vector/erasure.cc
! 13c8adb8595b8fa60ca0edb8c78dffef  libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
! f48bf2de1921d03c3db5868c6cae9024  libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc
! 4ec6d50ccf2e1eaab5ee483209efbcb1  libstdc++-v3/testsuite/ext/bitmap_allocator/check_delete.cc
! 777f334ed9e63c3d4f527f0f2369dde0  libstdc++-v3/testsuite/ext/bitmap_allocator/check_new.cc
! 94f7407e42db81e385e01ef262d469b9  libstdc++-v3/testsuite/ext/bitmap_allocator/overaligned.cc
! 1e00161c7108a027d6d8b10268aca38b  libstdc++-v3/testsuite/ext/bitmap_allocator/variadic_construct.cc
  846dc8224edb857bb6953efa8b4cdb2d  libstdc++-v3/testsuite/ext/char8_t/atomic-1.cc
! 2ad55534952d6c0f2b0f3121ca3572c6  libstdc++-v3/testsuite/ext/codecvt/1.cc
! 7ee8f4df2f0599f057eaebeb5ac6256e  libstdc++-v3/testsuite/ext/codecvt/char-1.cc
! 1be266c176b34b7d53b68cf1feed3bcc  libstdc++-v3/testsuite/ext/codecvt/char-2.cc
! 8569af866a1a86439e146a18759d5a60  libstdc++-v3/testsuite/ext/codecvt/wchar_t.cc
! 8aa4b439537a3559127b224460910a3c  libstdc++-v3/testsuite/ext/concept_checks.cc
! fec387d9ae6a26680ae39b2f49530080  libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc
! 9a3879980289f28d2bb77d9ff6974bd2  libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc
! 3801a5670257eeade743b4c1a5175613  libstdc++-v3/testsuite/ext/debug_allocator/56170.cc
! 11890b398ee08dda413e078a62a225fa  libstdc++-v3/testsuite/ext/debug_allocator/check_deallocate_null.cc
! cc939ed525297c7b294de68b2abcabc8  libstdc++-v3/testsuite/ext/debug_allocator/check_delete.cc
! f510868642e96d6606e324673b52a908  libstdc++-v3/testsuite/ext/debug_allocator/check_new.cc
! 7b11f9c06149d50328aa50e34d439d71  libstdc++-v3/testsuite/ext/debug_allocator/eq.cc
! 65d384c33c9c9ca30e155fde868b8221  libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc
! 17f96199ff0ed995b6e1153ec929fd8b  libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc
! a4059f7446104c4d156fcb534e8434bd  libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc
! 545ff0feed6552368e3b838ec43c3ef5  libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc
! 31e50b8f1131f377cc2c78fd614235b0  libstdc++-v3/testsuite/ext/ext_pointer/1.cc
! 114d94ed1178cc3db153adbfa3481a03  libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc
! 6f90fe2c49d68f62c993adc794e53428  libstdc++-v3/testsuite/ext/ext_pointer/alloc_eq.cc
! 9f47c1fb33a8cc8b170f41bcabb7ad88  libstdc++-v3/testsuite/ext/forced_error/cons_virtual_derivation.cc
! b59caba3274de1a6fcbd3b3a474552eb  libstdc++-v3/testsuite/ext/headers.cc
! 8756f104966b52508184f669e35e33ee  libstdc++-v3/testsuite/ext/iota/cxx0x.cc
! 6efdf09d9c281e4f51fb08a7e590e6ce  libstdc++-v3/testsuite/ext/is_heap/1.cc
! bfdfedb2a607cd8e0656f0f8bd655895  libstdc++-v3/testsuite/ext/is_heap/47709.cc
! 1ff45ca1492405c30c99e8bce3f50a85  libstdc++-v3/testsuite/ext/is_heap/check_type.cc
! 7fee6a7ece7dfd2fbc8f5c75179da5d8  libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc
! 924ea5c02de07fd32ccaf1faf0349bb1  libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc
! fbe8b91dc45fd74f173523a836664111  libstdc++-v3/testsuite/ext/malloc_allocator/check_allocate_max_size.cc
! 3d375aa3d6511c03ac144178a985c320  libstdc++-v3/testsuite/ext/malloc_allocator/check_deallocate_null.cc
! d4e980107949c790765cba7cc66f5caa  libstdc++-v3/testsuite/ext/malloc_allocator/check_delete.cc
! d86325bec182b3de5dd122f90d50d765  libstdc++-v3/testsuite/ext/malloc_allocator/check_new.cc
! 18f4df9d41618701887578ce55455b43  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_global.cc
! f886a4229830ceb424844f62f10a9b2a  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_local.cc
! 365634adbc1d60f6b47268a300dea21b  libstdc++-v3/testsuite/ext/malloc_allocator/eq.cc
! 157bbb6410291b5819d989558b231413  libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc
! 62e0c238c7e179d4a7d2dfdeccfee833  libstdc++-v3/testsuite/ext/malloc_allocator/overaligned.cc
! cad08676e74f3ff508ae109a2d62c25b  libstdc++-v3/testsuite/ext/malloc_allocator/sanity.cc
! e35ade510e4132ef8aa03cec5ef5c2af  libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
! 097c4ad109f397c54c8e9a2efb3dc6b3  libstdc++-v3/testsuite/ext/median.cc
! e56578b83796065d1ac79ba6ddbd092b  libstdc++-v3/testsuite/ext/mt_allocator/22309_thread.cc
! e6ba12751f3f64d54383ea5ab240d79f  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_big_per_type.cc
! ce2a9a6735d751851ec19ab2d93e6d34  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_max_size.cc
! 9026375a2398e660c283c059331d73ac  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null.cc
! 7135f41e98d0e387c434be6a8934ddb4  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null_thread.cc
! 09fb39bccd599395c381b3271513de87  libstdc++-v3/testsuite/ext/mt_allocator/check_delete.cc
! 362caad05f3e13230310a2781f77f1d6  libstdc++-v3/testsuite/ext/mt_allocator/check_new.cc
! f810f93d194205fa257f01dba82e0f9a  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-2.cc
! cb1432e7359b68a8ad2830dd97b6e68e  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-4.cc
! bcc60ef3a30cd78789f44186f585614c  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-1.cc
! 981ee9e63e600c4beb24059d626824f7  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-3.cc
! 05836fcb46a07d87ac05f2c0e2bafef5  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-2.cc
! 822b986dae4affe6186bf91dec799648  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-4.cc
! 777e3c39ec85afb1772ce9a37ffced97  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc
! 682899ed593ae2358edc3a49103c703b  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-8.cc
! 2369e2618b621e7a5602730d0b72dbb5  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-1.cc
! 4721be44f48a6654a85d829c507e88cc  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-3.cc
! cd3c34945bf15ace9e68a3aef3dc1c59  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-5.cc
! b3bfcb31c8e83f6bae2bd61c6826188d  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-7.cc
! baf3561c81b2801ba4ed790f35c4d1f0  libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc
! 5d23db230306b856a07e5317ead68c02  libstdc++-v3/testsuite/ext/mt_allocator/overaligned.cc
! f019992d4ceb038187186b72fd7d1610  libstdc++-v3/testsuite/ext/mt_allocator/tune-1.cc
! 0d61a51f3f958dffc101712b04b76b47  libstdc++-v3/testsuite/ext/mt_allocator/tune-2.cc
! 7b7cb6009b413127c8be4a9bb92d03fa  libstdc++-v3/testsuite/ext/mt_allocator/tune-3.cc
! 9196d6a4a76218cad39f9d49f5765e77  libstdc++-v3/testsuite/ext/mt_allocator/tune-4.cc
! 88dc29bab8ed2798adf69a4cfca76665  libstdc++-v3/testsuite/ext/mt_allocator/variadic_construct.cc
! e4ff219a5123dcc2dd8bc3befc23bb54  libstdc++-v3/testsuite/ext/new_allocator/89510.cc
! ab3b4460a4e41c56f197c8144daf4f23  libstdc++-v3/testsuite/ext/new_allocator/check_allocate_max_size.cc
! 624774935de29968291f9a3aba6d30b1  libstdc++-v3/testsuite/ext/new_allocator/check_deallocate_null.cc
! aae02e06a575372197e6c062ccd63c12  libstdc++-v3/testsuite/ext/new_allocator/check_delete.cc
! d9e2f676d53b6206c8ec49e31769762b  libstdc++-v3/testsuite/ext/new_allocator/check_new.cc
! 587e6e70b83b8fe5c91c0effe4884de9  libstdc++-v3/testsuite/ext/new_allocator/deallocate_global.cc
! 23c829f7c509d25281b099da04e0ad48  libstdc++-v3/testsuite/ext/new_allocator/deallocate_local.cc
! 63963c7894e58c6c68b9551db019f0be  libstdc++-v3/testsuite/ext/new_allocator/eq.cc
! 2fb68e5db92f5717909717f4325c6f1a  libstdc++-v3/testsuite/ext/new_allocator/instantiate.cc
! edb462ec4e549dedd05ce181f2d0a080  libstdc++-v3/testsuite/ext/new_allocator/overaligned.cc
! 8bd3d44be0ce2330fd1569a70dcb9e21  libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
! 4bd84b4ba5546d6f7672b7e081f67cfe  libstdc++-v3/testsuite/ext/numeric_traits/numeric_traits.cc
! 2660d253053c7806df3905b3a3ebaef5  libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc
! deabc6e67e07e3e27a5521fd3249dfc3  libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc
! 58a85f9491c78fa6e635fcfbcf667666  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc
! 8740cfe3b81c4dbd284fc898ed1318cd  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc
! 9129f04e9bc2755c054072b111eabd24  libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc
! 2aaf3c53ee3ffd9047980df84daa34fe  libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc
! 835584fcda4d477b4892eb5a056a01fc  libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc
! 8ad436a1f5199c303faef4aaf84b21ea  libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc
! f9d3dde735bb5c7da9d3ec47ca72df10  libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc
! 0755bb346752f48dc5d362f211957351  libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc
! 2ffd71769724c02260d2176e0dd6dbb4  libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc
! 2cf595548fff4f1bc487c4b5961c8186  libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc
! 590ef1208e48b736fe69e1bc35dfba5a  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc
! 2453a753dae026fee65c3f618ba30df5  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
! f9d6725233c9f39e79125e651152bac1  libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc
! 5b4492796b4f5427ab93ca90dc5127af  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc
! 4b01d5eda555c6fe7101d5b16a2fd542  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
! aa6126371f002647b0bc9523b1f0d6e4  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc
! 9a6e815e44fef79ae61b6fa962ef6c51  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc
! acf7ec0b85c8cf9e32b897a5c943ebc3  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc
! 1b45b9d0caa6d9cf3e7e04e3f1645187  libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc
! ffc51f49d186662ebbd4cd7f79f42d83  libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc
! 6c97588a92144c29734187b807ce9d40  libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc
! 71a705eb08e0c767325ab4d4bcd4998e  libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc
! 8f89642cbf0b78166cc7aeab67fd1bac  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc
! 87def898d16fd6d595f16704912f241e  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc
! ade27c3766b60c1f15be386e9bfaecd2  libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc
! 35d5bc5b89219d08738715df0cb897c1  libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc
! d5d572b119346433722966110611dace  libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc
! fa89892f72ad233f61c7070191500644  libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc
! 6a8089825f8a7313368a9a3421791695  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand.cc
! b73173ffc1d8450e524ee9b53bc668e5  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand_debug.cc
! bbc22f35ccb3d253ca3e3e595ec86c1e  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand.cc
! 2e4f13b9f2281624bb8013ebcd2b532e  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand_debug.cc
! 4edec61aaefacc954ea996ecbfe5be6e  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand.cc
! e3ae7092c96780e6c872aee6254ff8f8  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand_debug.cc
! 55e0bbb239333d557a459de471d518b8  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand.cc
! 53c312f7cb923b628a2fbcd81f6dea3e  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand_debug.cc
! fee29f8af90ed6d12a8201adf8bf6a17  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc
! 17c3b58f7d2bd466b9fe8c20a3e1abd8  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
! c1364935601af63025765874b3ff52c2  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc
! c2b79a5c3a316cdc7e1bbd856207fdec  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc
! 358fbe3afc938cfd67436aae30f9d10e  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand.cc
! 353863309678cccf073c4ecd023ac1aa  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc
! 67d5430b23d2539f77415f3589a63057  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand.cc
! 152758b41e002559b4aa9ebce83a777e  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc
! 89be9989444580c34ed60cc1203b6a4c  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand.cc
! 90a618300ea5ee692110c4f621444f66  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand_debug.cc
! 695b30a8244fedbff29747acbf920a04  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand.cc
! 93a1cb7b13344694f6e23bb921ca3554  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand_debug.cc
! 122a3dd315280031779f76579c0e38aa  libstdc++-v3/testsuite/ext/pod_char_traits.cc
! 5da9166ac86a48f2da612c9876cbcc19  libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc
! f5b0d5d12af0377d2a5c67dfc5f15add  libstdc++-v3/testsuite/ext/pool_allocator/check_allocate_max_size.cc
! 45d3dec10530afb59ea03ad3a8556c6d  libstdc++-v3/testsuite/ext/pool_allocator/check_deallocate_null.cc
! 27ced25418f1859b14ed70dee7120d37  libstdc++-v3/testsuite/ext/pool_allocator/check_delete.cc
! 31e32b10fe5d4843747abc227fe79044  libstdc++-v3/testsuite/ext/pool_allocator/check_new.cc
! e1063b711daf27d58fccd587da43c348  libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc
! b8d08b4c8bb1daeeb9c7c47b690d8d90  libstdc++-v3/testsuite/ext/pool_allocator/overaligned.cc
! 03c733f789290b7de69439d2a20aaeb9  libstdc++-v3/testsuite/ext/pool_allocator/variadic_construct.cc
! 9785a16e818f0b724932010d0f0d8d36  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc
! 1e1423f759e80dc2a000b14c8ec323f7  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/parms.cc
! 0f68443f201a1669594a97be922f39f2  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/equal.cc
! d65986e1f42a6e99cb76d0ebd5d32f4b  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/inequal.cc
! 62321b49ad751b710544c5b82e12d338  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/serialize.cc
! 7c5385614df50f9ed6ef55b07efa2d7c  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/explicit_instantiation/1.cc
! f4134576ab2a6dd4e52066cc6259437d  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/typedefs.cc
! a83368cc551b142d15563a3346b3ae09  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc
! b1ff3499a1650f600f133e999c1ea646  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/parms.cc
! cd889830e1296213e346eaf4d6904f07  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/equal.cc
! 36a88f59fb04dd8e7b0022402e961303  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/inequal.cc
! 4f23dfd4ce7876ec2bf3028b1ee0e13d  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/serialize.cc
! a50eec5667a699344bbd9ac73808ade8  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/explicit_instantiation/1.cc
! 36b1a8f0e9e429927d497764eefdc99f  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/typedefs.cc
! 664ffb2d3b957b17640c9f3a57f88b83  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc
! a779769018117a7e3c5f3e1171c0111a  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc
! e601f2785d7af65dc490aa9f6aef503c  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/equal.cc
! 6e05c66f99c3564757288cb7fb3245a3  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/inequal.cc
! 857f0ba6150045c367edc5cbb32a8eb0  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/serialize.cc
! 8f5bb5b5f193ff88142686eba8a8b98f  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/explicit_instantiation/1.cc
! a39aec5f380ddeb80538b28b7fdc51fe  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/typedefs.cc
! b6bcb55b1d9ddd682f6f0d1523d05eb6  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc
! 2420d8619fba6b8fd6a3ffa76760fcf2  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/parms.cc
! c28c1e96c54e8909e74b972a79f924a1  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/equal.cc
! 478dadadeb2c032755c891ebb6050906  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/inequal.cc
! ffd81476c503a7cff42502090ab42356  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/serialize.cc
! 51527f00b560b5a60c46fcbdb99a004e  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/values.cc
  5310d63384a16aab3ca0056f2cb3b3dc  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/pr60037.cc
! 9ce8c550478ce3835d51315cfcf66a40  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/explicit_instantiation/1.cc
! 3a5b62bc5e36871892ade656a808de45  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/typedefs.cc
! 9f31ad98cc7bb2601bc0387cadb57ef9  libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc
! 900e887e0806d402037e63d14f32dc11  libstdc++-v3/testsuite/ext/random/k_distribution/cons/parms.cc
! a9d7c949f1ef2751b8ec2b9c9a9d308d  libstdc++-v3/testsuite/ext/random/k_distribution/operators/equal.cc
! e793098a933c3ffeb2d8bafff90d2928  libstdc++-v3/testsuite/ext/random/k_distribution/operators/inequal.cc
! 4defc3a78763411506a78ff44d21e377  libstdc++-v3/testsuite/ext/random/k_distribution/operators/serialize.cc
! 422456acb442a2f1c3fb1382508632db  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/explicit_instantiation/1.cc
! 576d7f6445769e83351aa04d3019fe76  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/typedefs.cc
! a12cfb76babaaf33bc48aa6341e22d21  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc
! 599fdbaa4fc0ccb638f10b474c810540  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/parms.cc
! e327c63b2ee24cacebd79d61d6d5154b  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/equal.cc
! 714b869d399555af5c7494a7ec49e2a6  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/inequal.cc
! 3d5d55ff0448bbb1d26fae26ceb72b5d  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/serialize.cc
! 501e7b231f12fac5996b3d2686fba248  libstdc++-v3/testsuite/ext/random/logistic_distribution/requirements/typedefs.cc
! aacbed82285863389707cf95221bc50a  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc
! ade7b3fa34d71d30a5364d1d58f9dec9  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc
! a3c3075df62c774c34d662eb3577c363  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc
! 4c010c94b298a00fbecff45d55f3baa2  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc
! ed93c5fcf2bf0ec2b19d9f63ad9fa307  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc
! 99b98cac1d9fe2d7d6df8cb49a7e07bd  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc
! aca7a5695585f61614c6924f3a881efa  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc
! d240e4ea2faecfce918152aae4888067  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc
! 90e4d75f77280435edb599a5b0ed8558  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc
! 629867c8ae3d3026fd5f7f4f9bddec38  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/equal.cc
! 9447af8ab17a8f0cd46211ee1fe35eaa  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/inequal.cc
! 3d4f28216ebb743fdb5ea8128a7d1e6d  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/serialize.cc
! f37c022703f65e973edb3f13c5f2592d  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/explicit_instantiation/1.cc
! 857dfe6e7de1db0cabb976e84fd31275  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/typedefs.cc
! b5e51145ea844b88e3d23a59a720eec0  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc
! c91b37053a1c36ec75113ae73bf60f4b  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc
! ab73fe02584c340f7bfab932769c1646  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc
! 5a435ecd1175b73b289d3455f6c80b55  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc
! 564351e10377bf130a2241083195dd89  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc
! fdd3cbddf94b67e44ddae108be75c8e2  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc
! 66814d8a852c2dae3c08d6cb83e13625  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc
! e52b806948b64a668b9844aaf3fb7835  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc
! ceb4e66abfd88981177cdcfd9e3f3a8d  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/parms.cc
! 5ad79bbf53746ea75fc94ada66f38214  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/equal.cc
! 450dd87849f5b462bbe4aa400c90dd20  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/inequal.cc
! 43e189c4ae9b91cd4fa3eca289265b9b  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/serialize.cc
! 950ff87d1d1666639e4d0132a53433eb  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/explicit_instantiation/1.cc
! 8e481953ab7d16616b623b8432860b4e  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/typedefs.cc
! 9cc8dba105890da15f716635e195bf4e  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/copy.cc
! b048937efa646f36a39ec9dcf9154ccc  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/default.cc
! 262f911b99c24ceb21c3855e77a0ceae  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed1.cc
! b1699d8cf56ce53f08a1fa4a11a1ce60  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed2.cc
! 33b205701dc45dc126f7b832a9bd91cd  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq.cc
! 78c19769fd04e495de5db9d5b426987d  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc
! 2a0cb44eed2d1bf0fc38de21069c9afa  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/equal.cc
! cdc60bc62465bc62358b2ca984a1c7e5  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/inequal.cc
! a2af3d36ad78ede25967086ea7479593  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/serialize.cc
! 6810541decec3990e3a13c320b997326  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc
! 505f7c4c402bf55a96eff506b072e6c3  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc
! 03a198f1cda31bde5a290c3bab4d7ef5  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc
! 2b114c2b071d71546a0674d9899f5c9c  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc
! b23a04c2548a95b77b067edea6fbd287  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc
! e821ba8780883c7204a4c8bf94ce4b25  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc
! df4bfa6d9a1a66a1d23cc7e7a293de11  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc
! 1030cb79d985bde1dd6d65d5f9f114ae  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc
! 6a2f1cb47ea940dac26d22d829c25d12  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/parms.cc
! 6dcf0bc186a1af926ce9c964fbb69734  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/equal.cc
! 2f7750b0cef5410cb9e8769de280ceae  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/generate.cc
! 234e67d968a8aaedb5eefc099b8f1d61  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/inequal.cc
! 0c2512637dfeda778da5a8381d42ba77  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/serialize.cc
! b90e25bd9dc928cf5bb44637bbeb1bbd  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc
! 14d9c2574cc097a6441032234b59cfd3  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/equal.cc
! d28a3c080f61ebd60120ad655b538ef4  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/generate.cc
! ade4dba125f79ae1cc6c1bdf1bb1f0f3  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/inequal.cc
! d51250fb5039241018fede693a539020  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/serialize.cc
! 2fa7aa249aebd47d5e42b0b499ce9fc8  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc
! c2072d72bd457fe52769b5c1cc3af84f  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc
! 7d8341f5cdf6c2d63281b23e272f9107  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc
! c447a84e65391cc9ae71af0dec568a28  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc
! 97519846ec7571a3adaf9a1f850c7ac2  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc
! e61ee31bb64f1e60c0080ec30bd6a17b  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc
! 9facbe5f5050a74d42c86fbe8f70155a  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc
! ac095289e422766359180ae5746bf5e6  libstdc++-v3/testsuite/ext/rope/1.cc
  4b4043d9b7ee0d0043f2c34bac5eae23  libstdc++-v3/testsuite/ext/rope/101542.cc
! ff48e7e04f8e3654ce9605a70c2ffb90  libstdc++-v3/testsuite/ext/rope/2.cc
! d08bdcabe502c7373ef1b569118d1dbe  libstdc++-v3/testsuite/ext/rope/3.cc
! 554f7fd75c4a0d76cfb3f02ac7a2dcd0  libstdc++-v3/testsuite/ext/rope/36832.cc
! 2c6b328776794263296f290581c26e32  libstdc++-v3/testsuite/ext/rope/4.cc
! 79f4147fe340d0e054a9e7331fe5652f  libstdc++-v3/testsuite/ext/rope/40299.cc
! 4f542b7939e3e5711575ebfdfcff9e9f  libstdc++-v3/testsuite/ext/rope/44708.cc
! 090824c784117742731007b1c0ef997e  libstdc++-v3/testsuite/ext/rope/44963.cc
! 1d08bf877d751a9592b4b4a77d20c484  libstdc++-v3/testsuite/ext/rope/5.cc
! 1751e1a12d2be892501cd8aff69fda23  libstdc++-v3/testsuite/ext/rope/6.cc
! 2b519c93084afe4159accba4e886137f  libstdc++-v3/testsuite/ext/rope/61946.cc
! 4a399bfda529a1f82719c3d5bb113c6a  libstdc++-v3/testsuite/ext/rope/7.cc
! 42f0979df3545a25f4d1ace478e0a88f  libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
! 999a8d37e6951f5f271d878ab2dee65a  libstdc++-v3/testsuite/ext/shared_ptr/1.cc
! be806ad049e921935cd200431eab3240  libstdc++-v3/testsuite/ext/slist/23781_neg.cc
! d2a7c985dd48d8f79e99414c69a2cea3  libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc
! 3dbb5be1efa9ab6143b7949056879926  libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc
! 694fbc074847a0d74af149283afdd9f0  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_nan.cc
! 666157d1346c2aaa3b71f0f4a07740b2  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_value.cc
! 3186aac0325bbab889a509718e4d12b5  libstdc++-v3/testsuite/ext/special_functions/airy_ai/compile.cc
! 7e9e56ad15728bd2b1c75952cf8f6400  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_nan.cc
! ee04b1d738c403d7f721fb95507cbb24  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_value.cc
! 158cd5f95389fa96d28e6aa446c46b73  libstdc++-v3/testsuite/ext/special_functions/airy_bi/compile.cc
! 9afc8612b67c06790a9d79a2b82d53c6  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_nan.cc
! 0fc6084b175df673e2290d39aa0b2e76  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_value.cc
! 77221b6e609bb1f987f143753566b909  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/compile.cc
! b15b2383f109d920726be4d973eedca7  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_nan.cc
! 68b39d5f7442d3a5f2c5334856fc4dfd  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_value.cc
! 23ce19ab24896e11ff2c43dd346e4221  libstdc++-v3/testsuite/ext/special_functions/hyperg/compile.cc
! 3a3f51ce99e01350b6af30ea14a8646e  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-1.cc
! c353316083e610a7a79851cd20426a76  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-2.cc
! 7873cd90b5d34fce096993669371accd  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-3.cc
! a13877c1e8f807f2fdb6426621bbc1a4  libstdc++-v3/testsuite/ext/stdio_filebuf/char/2.cc
! abca88808812fc8907d2cd460d1c336f  libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc
! cd932244fffb9a9ba5d997e6a7f7f10e  libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
! 7f5b6d41ee78b6be74152fa8fc00c688  libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc
! cb4fb91cdee15b8f9b385d2fb51ef147  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/1.cc
! a2ecf5292e7338985489aeb7aa21fcb8  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-1.cc
! 06d64f6581712bda8bed7f2dc11fd9a9  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-2.cc
! acc600256cfec87a45764a0c5a37be71  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-3.cc
! 2b3fba669026e39deb3846bd89d99a8b  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-4.cc
! c54e82f65a8b7d6395ec003ece404345  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc
! 74b6b4c9395537bd08951df88cc58d1f  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc
! 993797bd40309f135cdec7f02bc1d450  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc
! 04fc4776a7d5d8d398e64411816ccd68  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc
! 164baa814448902f15aea77fc3db10b7  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc
! fdaddef38910614d19a156473e9bbf9d  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc
! 26a7ddeebc85cfb1ced6d23d28b383da  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc
! 33fcd105c7620f779e2477f69908dfe0  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc
! 449a398feb69bb7b2386b228f5298857  libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
! 164bf738735726e3e4b56e61f8d0e382  libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
! 04ffb052ea291d61eab19f8710cff430  libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
! 97b3564d70d98020874ebc7567fd4865  libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
! d7eab5a41da86c599d266cfc74269bf1  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
! e9a49a592a3d6e62dcf471de3e546198  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
! 6796ba8c70f3f598f6874fca3cf33f02  libstdc++-v3/testsuite/ext/throw_allocator/explicit_instantiation.cc
! 9694aa3fd8c1ea06ae40536a30619ad7  libstdc++-v3/testsuite/ext/throw_allocator/variadic_construct.cc
! e5588258015ca3ee4cc7b0fde957bda1  libstdc++-v3/testsuite/ext/throw_value/cons.cc
! 890cccfd78270206d697b67631851ea1  libstdc++-v3/testsuite/ext/type_traits/add_unsigned.cc
! 2998590c8b1e73baa7a374b07637b430  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
! bc66988c9135adcbcd2a5452df5ead47  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
! 0d82e755eccba65acc8296d49bc97bac  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned.cc
! 865d36cd1e32c2c27c514f78bd8d4ad6  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
! d6d0da3cffed61638abd794e39ecc4c4  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
! 60ee5032adf2c29c8b2db5077fcdf61a  libstdc++-v3/testsuite/ext/vstring/capacity/29134.cc
! 8cca2f183e56b3a9d2b5749aba5cecfd  libstdc++-v3/testsuite/ext/vstring/capacity/shrink_to_fit.cc
! 211e19dd59c798a56855394a74097c9e  libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc
! 701c3610d9253728a7a35ee2df1f9388  libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc
! 8f14190e40aac07a8a7766f57ea5a08f  libstdc++-v3/testsuite/ext/vstring/cons/moveable.cc
! 5be682f0116a4cae14b7a3a240a056e6  libstdc++-v3/testsuite/ext/vstring/cons/noexcept_move_construct.cc
! e7ad52d8d3f0a2ee2dcd397df6b37f92  libstdc++-v3/testsuite/ext/vstring/element_access/char/58163.cc
! 077e2c8397af83b26efcb94789b045aa  libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc
! 3527a805f80fb4ae03faf57ee24bd44b  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/58163.cc
! d331a41caff0d690d11098473e929071  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc
! 7e39fea4ffcb92af9ba5cb6984757d1c  libstdc++-v3/testsuite/ext/vstring/hash/char/1.cc
! ea4df1b73fdec225434fc86ec7e9757f  libstdc++-v3/testsuite/ext/vstring/hash/wchar_t/1.cc
! b0b95b4d762a82bff5524b3bed7cbac8  libstdc++-v3/testsuite/ext/vstring/init-list.cc
! 8300706b1b4d16a4ef6c5d42f5e8fa49  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/char/28277.cc
! 5967aea34d7783e1acc7121ec4a34de0  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/wchar_t/28277.cc
! 1e28fd9580038824a95d6706e52d930f  libstdc++-v3/testsuite/ext/vstring/modifiers/assign/move_assign.cc
! 6801395c8605745196131c413a645a8d  libstdc++-v3/testsuite/ext/vstring/modifiers/clear/56166.cc
! e0acc7b80171853f2054a954cd10adcf  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/char/54577.cc
! faea9f6f20fb3f2be5214562905c9f39  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/wchar_t/54577.cc
! 7930b86780138200855cc538ff43d529  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc
! 0a035c0faf9445f33795401afb4c46db  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc
! fb8b90767248af649fe1dcde41024c97  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/char/1.cc
! 4edcaaf354128f75fd31088c05900a5c  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/wchar_t/1.cc
! e08f80a6935a9e39a8340de848be9e90  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc
! 1e24c71a5bee56f28c326336cd590f67  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc
! 8f313e783d46c284cf2ac5a219d11e2b  libstdc++-v3/testsuite/ext/vstring/operators/1.cc
! b42f3899f2f05398d9bab69a798198cd  libstdc++-v3/testsuite/ext/vstring/operators/2.cc
! 5707f5385b952263171dc2c87aabf38e  libstdc++-v3/testsuite/ext/vstring/range_access.cc
! fbd0f3f735840960951f7dc3ed4ae91e  libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc
! 3fc4dd8b34d9370f75320408a3a7c9d7  libstdc++-v3/testsuite/ext/vstring/requirements/do_the_right_thing.cc
! 60b0df0b6090b26e33b1995a9e1f6806  libstdc++-v3/testsuite/ext/vstring/requirements/dr438/constructor.cc
! 210ba3cedd0769b806bf815b5984bae4  libstdc++-v3/testsuite/ext/vstring/requirements/exception/basic.cc
! 384fdc5cb21bb4168103a2f12dd6cf42  libstdc++-v3/testsuite/ext/vstring/requirements/exception/generation_prohibited.cc
! 6f4cba68d16f0198ad925c6aec880d99  libstdc++-v3/testsuite/ext/vstring/requirements/exception/propagation_consistent.cc
! cb63c1b6f81a7c8fdce31ced3d5ddc45  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc
! 557193a7166cb97a52dca0459742af6a  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc
! 4f8efd870426351b8ea2ef150203e30e  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc
! 109ccb53183252199a1fa38adb0553e1  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc
! a90de596d241a2c6c6c89e4eba4155a7  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc
! 7d800a0049ff7dc0ec5c6b7c527079ba  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc
! 08ad86590480de2a39443788392fc77a  libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc
! 8fa674bc953a01c1fa271914aefe2034  libstdc++-v3/testsuite/ext/vstring/types/23767.cc
! a6f1a27d8f3d66e9588f4ce7e251994d  libstdc++-v3/testsuite/lib/dg-options.exp
! ed5847591437c095665f6661ed099d14  libstdc++-v3/testsuite/lib/gdb-test.exp
! f1f5990b533d0d65cf18eff47771634a  libstdc++-v3/testsuite/lib/libstdc++.exp
! 60624a8d8c9bf2d79f3555d37737721e  libstdc++-v3/testsuite/lib/prune.exp
! a4885d40248bdb0a84a21ff15cf98b24  libstdc++-v3/testsuite/libstdc++-abi/abi.exp
! 03fb9dda0c4aeecf928fb0fd162aa4ea  libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
! fbce0fa761037a93203e0670a5f48f4a  libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc
! d8b8aa7a79fd9276794c9921ca369a5e  libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc
! 2278383a69b32f51aee94ecf72217e2b  libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc
! df972cf7eac7c53650a70738c13461a5  libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc
! 41976b8866417aaf90287761326acfa0  libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
! 1c11f52e1c36b17f597c9fcad886e716  libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
! 72e5ff3de3f2b4e67fc3f89ee6fd706f  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
! 106c0ffdc802ec9705125cf3d5053699  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
! 30a3f3fa9ef37d32dca9f7af1e3eda22  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
! f87b9609d2bd7a82b882d0575ee859cb  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
! dfe27a67d003eb7e13f54526884098df  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc
! f7a779a4fb2e70d728e58e1adab5ad3a  libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
! 26803887d8b667d13bce70d5f80074d5  libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
! 4df588303bc50f5e2072cda19ee7e859  libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp
! a84840509203967b4e0062b15f542bce  libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc
! 47065c46959fca678deeac21e7e23706  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc
! 7548dd933f94781cabf65902774f82c3  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc
! 082e47745543ba3971296c2f38b87ca0  libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc
! 2899e2b993902b684a458c2843640345  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc
! 8becdf5719f7bfb40f736521750884e6  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc
! 1d7de84d95236a56cde807d758eed08c  libstdc++-v3/testsuite/libstdc++-xmethods/array.cc
! 079d181d7b5f7edc9d9dd450034a6443  libstdc++-v3/testsuite/libstdc++-xmethods/associative-containers.cc
! aeea32cba6dbe72ed07203dc5cb152a2  libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc
! 1fb7bf97872016d5f8680b70cc1edfd9  libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc
! 2fcc43982b817fb10d67eb9d352f532f  libstdc++-v3/testsuite/libstdc++-xmethods/list.cc
! 5d63c64f055942dcb4449a2c61f87216  libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc
! d90bf13a68e5bd922fde2619ffc0a234  libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc
! 1e45da4b2c5a18f598b42d5a945de6b1  libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc
! 50bd0059be969a74197d39df410ee36f  libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp
  af003639dee7c3edb68531616f1c3b8c  libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc
! 2368ecc745f4b5b585d8a2f1267ea9e3  libstdc++-v3/testsuite/performance/21_strings/append-1.cc
! 0be74ed23ebf92603f2dcb6bdc5976c7  libstdc++-v3/testsuite/performance/21_strings/append-2.cc
! 93443486a39fcf64054675ae10eba128  libstdc++-v3/testsuite/performance/21_strings/cons_input_iterator.cc
! afb17b53637099990743b8f56d43b926  libstdc++-v3/testsuite/performance/21_strings/copy_cons_and_dest.cc
! 3cf22bf4f9d386e1a1ba9214af0a8ab3  libstdc++-v3/testsuite/performance/21_strings/find.cc
  efa1608e1841a10bba94a6d4de361846  libstdc++-v3/testsuite/performance/21_strings/hash.cc
! 8f0b5d2406f47ef8db8c5997bd862b28  libstdc++-v3/testsuite/performance/22_locale/is_wchar_t.cc
! 18515fe17c5792b56822c0d4cf703428  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_char.cc
! 5b73b23660412b77375cfd29a7c1423a  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_wchar_t.cc
! f00805ef9e4a314a2086a105c3af481a  libstdc++-v3/testsuite/performance/22_locale/wchar_t_in.cc
! 03aa84ef40f7f2deea7d5d90ee28c5b6  libstdc++-v3/testsuite/performance/22_locale/wchar_t_length.cc
! c2df0052d82cd13bc244882f69ba6acc  libstdc++-v3/testsuite/performance/22_locale/wchar_t_out.cc
! e5802cc569dd92185a2e0cff6284f455  libstdc++-v3/testsuite/performance/23_containers/copy_construct/unordered_set.cc
! 9b32de23943f6be031a997ef7c7cbcb9  libstdc++-v3/testsuite/performance/23_containers/copy_construct/vector_bool.cc
! b01e7236be08d8de41b8d9e414537d1d  libstdc++-v3/testsuite/performance/23_containers/create/map.cc
! 8f3147b2c2aa94ac0c493730f4314621  libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc
! 9a82b4387f2ba5d89276d323514553a7  libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc
! 34f17639a2921d15f204e951813c7d1a  libstdc++-v3/testsuite/performance/23_containers/find/map.cc
! e83587a6f228c88f24d9c3afae984a23  libstdc++-v3/testsuite/performance/23_containers/index/map.cc
! a3d3e9372682b31e40ce0a41d63b92fb  libstdc++-v3/testsuite/performance/23_containers/insert/54075.cc
! 6be364dd5e8453747d0d7136f2ba887a  libstdc++-v3/testsuite/performance/23_containers/insert/81476.cc
! 166918f088740fbd382a86749921d03d  libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc
! b9082c04156e1a04fe3520f0a722af6e  libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc
! 8f8b67cfe4e9d33953081eda847cee09  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc
! 5136a50afd22297f04ed7d05efc92375  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc
! 82ac63a0c82e6c5a838edf5d772e3c8c  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set.cc
! 231703ed66dd3385797ee9445b942bfc  libstdc++-v3/testsuite/performance/23_containers/insert_erase/41975.cc
! bdf33ff5dcd0593309984f7e269eeecb  libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc
! b60752406b76bbd9fe4de44bac6b0f93  libstdc++-v3/testsuite/performance/23_containers/insert_erase/unordered_small_size.cc
! 0d058f397e1475b1242f4d34aa4d440c  libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc
! ca9df70442e36a44e739791e1d61a454  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc
! 3d3968a7a5df8a03ca93806937a905c0  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc
! 3797d515c87eedf218878226f7cd0c64  libstdc++-v3/testsuite/performance/23_containers/range_construct/deque_construct.cc
! a86a1764619721e1d71498b2894364d5  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct1.cc
! 36888fdfb208cfc29bad547976a9e6bd  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct2.cc
! ea0bbde6705562736e5a16ad26e18d3c  libstdc++-v3/testsuite/performance/23_containers/range_construct/vector_construct.cc
! fab8c07d8c601901d10c99768af6eb9c  libstdc++-v3/testsuite/performance/23_containers/resize/vector_bool.cc
! a6906a36cc76379e4bd72436ca3c5758  libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc
  9d1d6439b2e93ebc48779237c0969b25  libstdc++-v3/testsuite/performance/25_algorithms/copy_backward_deque_iterators.cc
  ab09b2da7335847dccf2fd63d8b8fd89  libstdc++-v3/testsuite/performance/25_algorithms/copy_deque_iterators.cc
! 33395cb449921a0e8e3111c10a9ac341  libstdc++-v3/testsuite/performance/25_algorithms/copy_streambuf_iterators.cc
! 783b4fca614e3d47ab226e49c3efab39  libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc
! e6795b246083f22d7b1dda0e3749d1fa  libstdc++-v3/testsuite/performance/25_algorithms/find_istreambuf_iterators.cc
! b9fcbe4205a1f0907c693001944d104b  libstdc++-v3/testsuite/performance/25_algorithms/inplace_merge.cc
! 924e8997566ce2c833e471ec6405a665  libstdc++-v3/testsuite/performance/25_algorithms/lexicographical_compare.cc
! c4db1230b31b31312a89984c7a429bfb  libstdc++-v3/testsuite/performance/25_algorithms/nth_element_worst_case.cc
! 6d7353a11b7a56cfa6c75a18aadd4e90  libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc
! b8bb128164cabf5d5b34563b0bee55bf  libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
! dc110d0ff9ee893776c72fb0c1affaa3  libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
! cdf751dde7443740766b29fb71513f35  libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
! 57f0fdf8a14a3a99e59e162730945982  libstdc++-v3/testsuite/performance/26_numerics/complex_norm.cc
! af4d2403f06b68ebe97f9226b206d694  libstdc++-v3/testsuite/performance/26_numerics/random_dist.cc
! ad6b57dd4867d2e01069fd01662c37bd  libstdc++-v3/testsuite/performance/26_numerics/valarray_gslice_to_index.cc
! 2e3bc6b4c09d9a1ba60606788dba413b  libstdc++-v3/testsuite/performance/27_io/cout_insert_int.cc
! ef9bd29d305818a66fd60b8631b65dd7  libstdc++-v3/testsuite/performance/27_io/filebuf_copy.cc
! 45dd4de16e1b5aea23e02cce7655be8c  libstdc++-v3/testsuite/performance/27_io/filebuf_sgetn_unbuf.cc
! c3f0a8f6168678cdb4f10458ef86729a  libstdc++-v3/testsuite/performance/27_io/filebuf_sputc.cc
! f2c02594504e2abf6a8106dd4dfcd2a9  libstdc++-v3/testsuite/performance/27_io/filebuf_sputn_unbuf.cc
! a168e01e34e607a2e5efda99ed97bfa2  libstdc++-v3/testsuite/performance/27_io/fmtflags_manipulators.cc
! cc90e306ad49021b3a19ef21c2791db3  libstdc++-v3/testsuite/performance/27_io/fstream_seek_write.cc
! bed88eb4c7bd181e3093c8032e14c6cc  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_chars.cc
! e9d2b051803fb81beee9a40d16288bca  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_float.cc
! 723565bd40c15516fcd4ffd0856b0911  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_int.cc
! 8aacd9cff0d567c3dc1b6a908ab39c08  libstdc++-v3/testsuite/performance/27_io/ifstream_getline-2.cc
! 79bf6c9e6b8d00706947e5e1376e5f5e  libstdc++-v3/testsuite/performance/27_io/ifstream_getline.cc
! 4a90ed07f6e96d6558e66dd62867d119  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_float.cc
! 2e1ac4beeaeec6caf99063ccc23f6e3c  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_int.cc
! 437ed85c04d854aca14dfed28cf95446  libstdc++-v3/testsuite/performance/27_io/stringbuf_overflow.cc
! 09823e880c22cbfd149704eb7cb9c736  libstdc++-v3/testsuite/performance/28_regex/range.cc
! f1dd49a8dc95e0ce64cb63783a3a603f  libstdc++-v3/testsuite/performance/28_regex/split.cc
! 51b42d8c55d0d98470365cc34f22fbb1  libstdc++-v3/testsuite/performance/28_regex/split.h
! 83ee5d768cec126243fb544f1169d84a  libstdc++-v3/testsuite/performance/28_regex/split_bfs.cc
! e7bc97f9886f9aeb543bc96136342596  libstdc++-v3/testsuite/performance/29_atomics/atomic_flag.cc
! 1c5ba0aebf70f7cd77a2c1a09c222a35  libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
! 6932595605389c7ba05a58e5ba6dee08  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_find.cc
! f84f1fb1eb8fcb8daef45c80f258f23a  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_find.cc
! 5d73df1fb1ef82c569fe0a69775fbc51  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_insert.cc
! 936f86826cce44d1c9d821e516876320  libstdc++-v3/testsuite/performance/ext/pb_ds/all_text_find.cc
! 9b31203f62661b8a7fa0e513702e0c72  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_int_erase_mem.cc
! f0874f7cb09cb315cb4401faf731092b  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_int_find.cc
! f4d1444822c5de258bb52679a293d56f  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find.hpp
! b018dfa32a5f1829241431931501e934  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_large.cc
! a231d797b81b8473b3f498e36da99e65  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_small.cc
! 76ee7395bf42c26c7b8c1c017e89a263  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert.hpp
! c8c701f3681d4b8a19becb7f6ddca144  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_large.cc
! cf8eb2fcbd57f585ad87ef3ee70f0e1d  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp
! 090f5b9d193b1a59a13f535c39a4baec  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_large.cc
! 056f404c3e9f8cf5f41f67d6fec0e920  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_small.cc
! db92db4b86a5d81d9ac3e3fae15f8f82  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_small.cc
! 4ce40f8b536a4fa4ca71edf68dbc1a01  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push.cc
! f0c4ab1ec9dd3d90e6473570fbd66884  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push_pop.cc
! ef3b3fa3c29ddea0785b1853780dd8b9  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join.cc
! 33dce5366c7c2f3fd1000de01de4f894  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp
! 33b90f225c088ec39db25acb5158b653  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down.cc
! 30d580c058b12ff2319cab0ac31ce7ad  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up.cc
! af5b6b24a91eb0d4c8f04fe16ba1eede  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc
! 2873ecff156dbd4f5a2b6b9cc1f1e5c1  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push.cc
! 5daadbb49165e8422845087b36d6b373  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc
! e50186f17cc0b911598a71dd6dfd704b  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics.cc
! 22762d0371c17ab722e5f038e462d489  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join.cc
! 795aaeb37f3b0fb5ec4a22b9d7f6d72f  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert.cc
! 0cb8a29f64379235faf3d4b3084582cd  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find.cc
! 9d94d995585835edc554004265e0fc30  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_nan.cc
! d6e5d70d555377be03f5d0cc87bb03e6  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_value.cc
! 46891ac803c2e16b97fcd1bf3e0eafe6  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile.cc
! 176699403093121e0ff8ccba82d6110f  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile_2.cc
! ad51d7a0ec82d341d499b3b3d2d08193  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_nan.cc
! 224a5559c40aec494c5d5ecc7b9fe7e5  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_value.cc
! 8ff5caa5769e80a74c90f739d83b8043  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile.cc
! e1583ea84df0e81288bb663e729df088  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile_2.cc
! c4703fffe0dfefb92116d529b2e99f2b  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/pr86655.cc
! 35e3e4d1523382319a66feeb9d43e7ab  libstdc++-v3/testsuite/special_functions/03_beta/check_nan.cc
! dd5c010aa31e229060d61f0722acceac  libstdc++-v3/testsuite/special_functions/03_beta/check_value.cc
! a944fc281660ae8af19c006f97c18911  libstdc++-v3/testsuite/special_functions/03_beta/compile.cc
! 87b255abfe5a30c95f4d64301cf20644  libstdc++-v3/testsuite/special_functions/03_beta/compile_2.cc
! 9b66defa40b653b61ad38ce4efbb04a0  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_nan.cc
! 4704024eca8078a63919661d20d0374f  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_value.cc
! b27411df74ccee488316f99aa3e6cb20  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile.cc
! 4ce97286f774f8d683774bfec74a9442  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile_2.cc
! 2ffacefcfd3afdaa51094ff5e40d8e47  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_nan.cc
! bab418419701496b117c4196a32481e1  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_value.cc
! d4ed637e1b10f6a13506727d7445a7f1  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile.cc
! ccd34047ee8315e3a67716ebac348e00  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile_2.cc
! 760b0684fc002cdf7bc05eec24d547c1  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_nan.cc
! dd27be7e347b4399a268c67fee14db38  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_value.cc
! 9476ebb8e507034d414b680f97467580  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile.cc
! 326373fb6cfeac6393007b9b22e14d40  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile_2.cc
  d40969d8e7a8973cde9b227f9ce95961  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/pr66689.cc
! 480daabd5c4b6ce15d7f22cdb6eb3d78  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_nan.cc
! df47451be9f559cac6485c17c79d3e66  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_value.cc
! 799d98d125d1ade4cf16a352bab142b8  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile.cc
! 5726315947f8db1fa9f407a2afee5eb8  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile_2.cc
! 52c1b26861cccbe05cac583407573c8e  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/pr56216.cc
! d8156e5e032ce492dfb044cd71c59888  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_nan.cc
! 9462b6b6665f74fff0c360663e3c8d59  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_value.cc
! c5f61de8e683579853a5ff77fe27ca26  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile.cc
! 48a04e2ded56b94178022d200447d77d  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile_2.cc
! eac0e5568ab15f43be8094a371684c3e  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_nan.cc
! e0adf39ed4bf7387f672f4dafa4a4e3a  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_value.cc
! 6664c86a9cb3479ca4b07cc701a73ccc  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile.cc
! 403b405ca848c01cbe60b32a698b4ef7  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile_2.cc
! 48f83826c6ad194005289a5fc5f7df82  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_nan.cc
! ab523b095961787f6d3df06c62aa129f  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_value.cc
! f9e018b2cc4aa22fd9c4f125e4d0fb5c  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile.cc
! 6223b0af9d0eb6420153a3a599c7c260  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile_2.cc
! eb1ec644a916516aadc6428843b6478e  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_nan.cc
! de2e99c5b6f84d1abafe6ce70ffdaa33  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_value.cc
! 03d6f32b2bd0e2deea73eb1dd45981ce  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile.cc
! dc6e0cbfef6285a99f04588eb074026d  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile_2.cc
! 0a10253f34096d44fc393ad781f22784  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_nan.cc
! e105668c3f4e39db9ac8cc7aca7d6c38  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_value.cc
! bcff99bba6c19c90533a4901dc2b0677  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile.cc
! 962654b407ce5e26520c1db86c6b3d99  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile_2.cc
! 71ee3597d025de96a2a8d031a6571b13  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_nan.cc
! 6b36d444c7d75b08e87f0488a1c9b27f  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_value.cc
! e6bfc2595ed3967926b1b86552a07107  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile.cc
! 9a747f2c2b2aea9b4b206e654b83c87f  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile_2.cc
  51586062b3eeaebd7af37c198695dc60  libstdc++-v3/testsuite/special_functions/13_ellint_3/pr66689.cc
! 610cca638e6ce664a3a8875994590487  libstdc++-v3/testsuite/special_functions/14_expint/check_nan.cc
! 5ca509cdce2a445cfeb3b1a96198fc95  libstdc++-v3/testsuite/special_functions/14_expint/check_value.cc
! a3ad2e38fb2cca0709fd6cb7fe560c18  libstdc++-v3/testsuite/special_functions/14_expint/compile.cc
! 44b686a0a25d37035582e8ca9156cd9f  libstdc++-v3/testsuite/special_functions/14_expint/compile_2.cc
! d4cbd0aa9b197c41dc3e4e08f94afcbf  libstdc++-v3/testsuite/special_functions/14_expint/pr68397.cc
! eb4c040547701834b403628838002447  libstdc++-v3/testsuite/special_functions/15_hermite/check_nan.cc
! 957025ea935469cdf77e3ab89fe257e7  libstdc++-v3/testsuite/special_functions/15_hermite/check_value.cc
! 18c9264ca3a1c46c6cb01c63712e97e0  libstdc++-v3/testsuite/special_functions/15_hermite/compile.cc
! 48f29e0187971752e69a8eb1f13b1cc3  libstdc++-v3/testsuite/special_functions/15_hermite/compile_2.cc
! 10006854a98730af911947ec4e42fbee  libstdc++-v3/testsuite/special_functions/16_laguerre/check_nan.cc
! 96899f7f7825558c4ecea43bb2451bf1  libstdc++-v3/testsuite/special_functions/16_laguerre/check_value.cc
! 6fb945d898cdd436d669d46f6d00f250  libstdc++-v3/testsuite/special_functions/16_laguerre/compile.cc
! 2888f84a67448d9a5bfcd85d8706ce57  libstdc++-v3/testsuite/special_functions/16_laguerre/compile_2.cc
! 25569e5fba43c5b3626f8e7ffa14c106  libstdc++-v3/testsuite/special_functions/17_legendre/check_nan.cc
! b505e3dee2fa7b3450429ea4807aa7c4  libstdc++-v3/testsuite/special_functions/17_legendre/check_value.cc
! 361c8f5222044b04f9d7258875a68c19  libstdc++-v3/testsuite/special_functions/17_legendre/compile.cc
! 470cb829cdb2749ab7fd70ada5f3529c  libstdc++-v3/testsuite/special_functions/17_legendre/compile_2.cc
! 92de00f85d402fd2552d83002beb3f7f  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_nan.cc
! 95387f53fd9dc47f009ccc05afac56e3  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_value.cc
! 79b4593b1797bd497b9892bf79d729f6  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile.cc
! 56ee6b11932b210ff15f675a4e9cc950  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile_2.cc
! 6df6b925c56194d776c8530122127335  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_nan.cc
! baaf65e4b0a9287db23ddb108a3aa7cd  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_value.cc
! 4586263b7f3f844004b53d6a27f30a39  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile.cc
! 2b6ece0d505ca7302b1da1255f6592d2  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile_2.cc
! 4e384e015e04c1982f5dbf96e94df6fc  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_nan.cc
! 3b024a0dad41e87ef0d55c7b0d86a627  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_value.cc
! 1df9f65223da5e2ae31bebada123a7db  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile.cc
! 47885b6556dc883903c3eeb8666fc758  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile_2.cc
! 036bca5e0aa054f6908faa6e1bc0bdd6  libstdc++-v3/testsuite/special_functions/20_sph_legendre/pr86655.cc
! 510961d91d27c2ae7b4f66a9c3d9ad15  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_nan.cc
! 3ca88950dd1dc1325348a8a02ef4f923  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_value.cc
! 978e1b2c80785959c0f89544675742be  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile.cc
! 01922f7490d7ae98d8e6d3d1e81c6ef2  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile_2.cc
! 27e07ee1a195f2f654fa8e946e32fa3b  libstdc++-v3/testsuite/std/concepts/1.cc
! 8aa9d4ce299cd6f9cdb568211b325010  libstdc++-v3/testsuite/std/concepts/2.cc
! dd2f5454eee21598a0f9503ec06fcd31  libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc
! b29d95b6b056c3d16a256e3e359e1d1b  libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc
! 30510e95db4e34fb17b84ba05dcd7551  libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc
! b417a29740017612527c88f60e5c31ce  libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc
! 60387cfe14b8ff045a4dbe84a1a1027c  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc
! d3be1128b394f49459d747f04ad91a16  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc
! 3e5a9710b992295322c4d5c3e0ecae89  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc
! 72ce45b24b13b0ebddf1395cf0c3bd93  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc
! ba8cbf6be44e86f397bb882aa48f0e20  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc
! 96b853c98cda5b7345bf59975122d14b  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc
! c2dc79a145019d2340a3e1ffa7696637  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc
! df90fe7ce52dab2ce7830a7080045f8c  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc
! 8cc5fbc78e1dcbfe2dbbd5d7090b12ec  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc
! ea8b4f02c5ad259be6a84df454b243e6  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc
! e663ca204b3daa1368e4e5a6f39c4fdc  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc
! a51ebb2e4adc9af4172ea2691232748e  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc
! 819c990908c1b4ad2594db2580cdf054  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc
! 08fe7780ed22dbe2c2f7fc696f53e05a  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc
! ef95f62a34b7e8f9d49e0dc784a4dda5  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc
! abb4b87be7872f758755ab9eec91e602  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc
! 65f3cb09cd4b497d80ccb53125caf601  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc
! 03c2318d4d3ffff90f8b9227b53c4182  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc
! d37bafcbfa7bea609005ec3362618995  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc
! b50f7790625af70d2584bce7448797a3  libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc
! 7c33090d5221d00fb69f073eb3a39e01  libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc
! dee3f965ae51e534527b2ab57de6173c  libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc
! e5c73ec71149072c79be3cd39964fc84  libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc
! 046f33d2ff84e5fae2abfd2e7e10afa0  libstdc++-v3/testsuite/std/format/arguments/args.cc
! cb2b08cb95c43b796a8c818d17beea18  libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc
! 26cb34ad3aa73e01fb7d018f1b97e73e  libstdc++-v3/testsuite/std/format/error.cc
! c4026a6d0520e4329e27fe92fdd65a86  libstdc++-v3/testsuite/std/format/format_string.cc
! 5477cf5cf0d83c16c3641c1ba9a1fca9  libstdc++-v3/testsuite/std/format/formatter/concept.cc
! 912a5a69faf2558c407722cee5b26879  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
! 926f89ddc54be9fcf8daa5c0a5f35b88  libstdc++-v3/testsuite/std/format/functions/107871.cc
! 539b9f6e3e0e98e6a078213706cb9e5d  libstdc++-v3/testsuite/std/format/functions/format.cc
! adea3692874c12de1ef302342290acad  libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
! f2b7be2affed39b62b231f2ae4daa238  libstdc++-v3/testsuite/std/format/functions/size.cc
! 61c3ceb1139d985da2be137364958d61  libstdc++-v3/testsuite/std/format/functions/vformat_to.cc
! f38f22350a146242f27e6c8a18672de9  libstdc++-v3/testsuite/std/format/parse_ctx.cc
! 2adae010f2b81109f77fcf0d51c52313  libstdc++-v3/testsuite/std/format/string.cc
! e7cae8900990c6d06575306162ce472a  libstdc++-v3/testsuite/std/format/string_neg.cc
! 724a6ad5cf32f4b761c837d18aebb201  libstdc++-v3/testsuite/std/ranges/97600.cc
! 098cf5ff316bfa8fe61f6c4ef6c78d37  libstdc++-v3/testsuite/std/ranges/access/101782.cc
! 6dfe4ad5c1e864eb4a9d55041969d034  libstdc++-v3/testsuite/std/ranges/access/begin.cc
! 84132b2a3ba455db776fc5d65e9bd942  libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc
! 6fd8f62479163b59244883aa14c7f3bd  libstdc++-v3/testsuite/std/ranges/access/cbegin.cc
! 0a864311190284b07444881cc8f2f638  libstdc++-v3/testsuite/std/ranges/access/cdata.cc
! 362b5b9b9797f0eacc6ad3a4da7cce0e  libstdc++-v3/testsuite/std/ranges/access/cend.cc
! 8186091df999bd29c3782292d9cd74b3  libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
! efb0460ff81175790bb357a2f4f63cc8  libstdc++-v3/testsuite/std/ranges/access/crend.cc
! 69cc7d4bbb03987954c1abe208628b26  libstdc++-v3/testsuite/std/ranges/access/data.cc
! 3f9cfdef06a863d09eb916cdb7ced4e9  libstdc++-v3/testsuite/std/ranges/access/empty.cc
! deaeda562877c360b6978dace7444efc  libstdc++-v3/testsuite/std/ranges/access/end.cc
! ed11f840da1be3d4ecfa75aeae0513f5  libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
! 02ff4399c5bb44c172ccd6cef03cd076  libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
! d8de22e11865298b12fbdf6994e787e6  libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
! 8fad561c42832147f7e81948017ec88d  libstdc++-v3/testsuite/std/ranges/access/rend.cc
! ed9a7e364c2c427ed9b851a017e9c85c  libstdc++-v3/testsuite/std/ranges/access/size.cc
! 09fdaa45b7a6d80883f323e3a0ecc0bf  libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
! 8f9973bc541c8a5744edf31714ce62eb  libstdc++-v3/testsuite/std/ranges/access/ssize.cc
! 225f5dfe84807b46c5965fb6537ce664  libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
! 9eb4f71904ccc6c682c770a069ba7dfd  libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc
! eb0f19121d6dbffa13f3700d5b0b2c1c  libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc
! cd4ce629f1afc64f2802727bd7e3e4d1  libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc
! efe074fd50fae87fcfe4de707f8c07a0  libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc
! 202e17626aff79b167a4884d4674e795  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
! dfaace835421177fca7beffe48564885  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
! 627ec2851e5a9ef14fa7f85fde916815  libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
! bfcf1004a149342f80da7950ca8df7e1  libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
! 87ba957cd4433e77a0cb6227da3d374f  libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc
! 86881fe316fe3dddbf1fdcb5446a4d28  libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
! 1fccda8f7a1de96c8ccb844d90976182  libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc
! 437195379fed4370a088e7972cb85a89  libstdc++-v3/testsuite/std/ranges/adaptors/common.cc
! 01493f9520b1a8c2d7672ccb6169b37e  libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
! b6a927b256eb5eab0f3abcd01a2c8c31  libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc
! c2b2be0c1640a49df2db13de9010388c  libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc
! 600b9066effca126cddab6467daee09e  libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
! 601a50c193fb8ba7a88242946e976753  libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
! c0a8eb7862d860bdd0ca173629ed25af  libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
! 3fcb281a03409e43294f77c1e7809391  libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc
! 715164a8fdb0e7b2f13f73a21381a935  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
! 478708e87b892e31651caba269b0838d  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
! bcc7903b7a89796e9818e9c0116b1435  libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
! 902f1ee9399b2ed96d885cbcd863a0ec  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
! e1d466b40d9885d8928dda45157c5f42  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
! 2b23cb82c0ae1e6ce4a6e6b7c4f6de51  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
! 48328c8f626251645b58f2e0bc1d1b20  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
! bf7c03ebee01d59eaf1fa89f586b8e28  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
! 60cd2dfcfe3a1d1046302ce0ed742ce0  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc
! e78df47c8e0f5c4242d92d6380834426  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc
! ddd799ac1c30d9c11dbaeb456b8f2010  libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc
! a2b359cd686875e1f3336637607af035  libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc
! dfdb166ecf980f7c484ece7c109d3dd9  libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc
! 0e608159bff8b4f63d1a43888c1c05af  libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
! bb6c72f5a2c15d9476c31cdf41e6ab0d  libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
! bd67d76104555a7de62866a1baff7ed3  libstdc++-v3/testsuite/std/ranges/adaptors/split.cc
! 1229ac38c7f1dd6e1799edab32d470de  libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
! f5e5bb8391ba02b0e327a14148fb1ac8  libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
! ef73229904799aeb3dae759b2b1506fd  libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
! 24fb3ae41a8df557c3a6d329c76b8bf4  libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
! 1b6e66801e47197c0377da8fde3b1372  libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
! 305712b194a813db5b31eff4849e104f  libstdc++-v3/testsuite/std/ranges/empty_view.cc
! 8d78702ca001ddafb85b0d93417f76eb  libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
! fbe0c8c2b69ba1b4bbb1acb0b57446ef  libstdc++-v3/testsuite/std/ranges/iota/93267.cc
! 94a3b2152def8c1b3bf698bfdd494d64  libstdc++-v3/testsuite/std/ranges/iota/96042.cc
! 92bd2e658d724eddc026b928729cb2af  libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
! b0e801f51482c5128148a84afa8ad1a2  libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
! 5f4f4d10653c8554eb7abe7448816e18  libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
! c4c9f3c3d7a7e40b3ed559c255d3c4db  libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
! fed5d150d99273758f5d77acaddfcf68  libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
! 2c630e1efad2da1f8f66e2d6e8c02e2c  libstdc++-v3/testsuite/std/ranges/iota/size.cc
! ffd1e161360542a85035e61017a148be  libstdc++-v3/testsuite/std/ranges/istream_view.cc
! 1451ff29f4fda6d96579803764fcc33e  libstdc++-v3/testsuite/std/ranges/p2259.cc
! 1dd70d499650e8ad4637a8c3e7340206  libstdc++-v3/testsuite/std/ranges/p2325.cc
! 6fdbb2b63654acd70477f608bbd22caa  libstdc++-v3/testsuite/std/ranges/p2367.cc
! 64917713313546d047b2ca481245d6db  libstdc++-v3/testsuite/std/ranges/range.cc
! e27e6cc700eea1e8f56568af51b68894  libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc
! 52223be05a4253d92d8435166f662346  libstdc++-v3/testsuite/std/ranges/refinements.cc
! f418fc948884e46ba7a08b985ec3c9ce  libstdc++-v3/testsuite/std/ranges/repeat/1.cc
! bdce08f2fd8fced9e4b963933e9a7751  libstdc++-v3/testsuite/std/ranges/safe_range.cc
! 4688551914e08aa4be4428c79a1308fa  libstdc++-v3/testsuite/std/ranges/safe_range_types.cc
! 116d0cf0585a091738f4cd379682ce98  libstdc++-v3/testsuite/std/ranges/single_view.cc
! d8ca7990dfbb17794aaa2cb6f3f9029b  libstdc++-v3/testsuite/std/ranges/sized.cc
! 3b43079628213bcfeda0d10685ba810f  libstdc++-v3/testsuite/std/ranges/subrange/1.cc
! aa9b5d321d5828991047eebe29838127  libstdc++-v3/testsuite/std/ranges/subrange/96042.cc
! 3ccf34bd2bf97b2cd71e28104381c67f  libstdc++-v3/testsuite/std/ranges/subrange/97512.cc
! 1296c3e0f2c2c6e1cbf08f5653d24b2d  libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc
! b0d0511fba3555c80fa2d60aef381210  libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc
! 2e166bf1580c1e7a5a1d27912b1203fa  libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc
! 7bc7369b71669085e15c29a0fc70c3d4  libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc
! 62dfabaa87afd998a8749dc6ef82e8ba  libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc
! aeb9eaadef4893f7af9121e729b30082  libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
! e558156d543990fd7ffedd413e678c0f  libstdc++-v3/testsuite/std/ranges/version_c++23.cc
! 6cd4bc58902113776271473a39e74ec7  libstdc++-v3/testsuite/std/ranges/view.cc
! be195a164d7b231d7be0ceceab7d53c7  libstdc++-v3/testsuite/std/ranges/zip/1.cc
! 2f16a173debd2e7c50247b158bd4cbf1  libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
! ee7652ea42e5031327abb4f8315facae  libstdc++-v3/testsuite/std/time/clock/file/io.cc
! de019e281cdaf6075e762790102dc210  libstdc++-v3/testsuite/std/time/clock/file/members.cc
! 345478b5ce7c143f57ec487df78d136d  libstdc++-v3/testsuite/std/time/clock/file/overview.cc
! 17f8bff974757122a65883e7c33d9d80  libstdc++-v3/testsuite/std/time/clock/gps/1.cc
! ee3357c7e618ae304cc7c077ad99250e  libstdc++-v3/testsuite/std/time/clock/gps/io.cc
! 49612e52ca75c4984719066184c838f2  libstdc++-v3/testsuite/std/time/clock/system/io.cc
! 001b9c894be15711431b32cf6934f07e  libstdc++-v3/testsuite/std/time/clock/tai/1.cc
! 4581186923bfee1ff082d1623439b7b2  libstdc++-v3/testsuite/std/time/clock/tai/io.cc
! 7e3e7a495e0c19958f10682f7b49296d  libstdc++-v3/testsuite/std/time/clock/utc/1.cc
! d7a2ab596a1b06482b061042f5198b80  libstdc++-v3/testsuite/std/time/clock/utc/io.cc
! ff09d6a4a1def92f6d35e9fe30514c86  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
! 0a3070814d79652e6b1fe27f7015a3ac  libstdc++-v3/testsuite/std/time/day/1.cc
! 3234fda9c7db00142a0a6e1c968827bc  libstdc++-v3/testsuite/std/time/day/io.cc
! e59bae3ab8463e3865786e0a60bdd79a  libstdc++-v3/testsuite/std/time/exceptions.cc
! e340d9c94f55b0de854ab174c7b77be1  libstdc++-v3/testsuite/std/time/format.cc
! 41f97e07a76cb7a65bc750e893046837  libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
! d285919b86280431458a01fecc206b78  libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc
! a065073fed0dc7a95626c6b2486f9c90  libstdc++-v3/testsuite/std/time/is_am/1.cc
! 934d22cca880b0654a2f723d66d222c5  libstdc++-v3/testsuite/std/time/is_pm/1.cc
! 1aa818c227a28fca2d3c2e546b6014d6  libstdc++-v3/testsuite/std/time/make12/1.cc
! 87596ab8b1810f739b3d2c858bfda056  libstdc++-v3/testsuite/std/time/make24/1.cc
! 6d13629702dec4ce25a5515a54a2cb12  libstdc++-v3/testsuite/std/time/month/1.cc
! c263683a0a820e1160b863dab1f8b4bb  libstdc++-v3/testsuite/std/time/month/io.cc
! 1fbdb236aee5632defb6a49d0a7f2343  libstdc++-v3/testsuite/std/time/month_day/1.cc
! a55cb85e3f700d5c08d894894bcbf732  libstdc++-v3/testsuite/std/time/month_day/io.cc
! 06d533d7768fc8578d8eda6d088e4d80  libstdc++-v3/testsuite/std/time/month_day_last/1.cc
! f8137cf2b7268deca445b608b724582f  libstdc++-v3/testsuite/std/time/month_day_last/io.cc
! 30329d39dbdea7d9e594efa4ec789ca8  libstdc++-v3/testsuite/std/time/month_weekday/1.cc
! 3871c80ed0308e9fce0afefa2705ad05  libstdc++-v3/testsuite/std/time/month_weekday/io.cc
! 71b488ba190e1fd6939837bf46203724  libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc
! 8b41016f0391e12fce69c8a18b514136  libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc
! 27e853caa7b6fdb3f25f35a90139dbaf  libstdc++-v3/testsuite/std/time/syn_c++20.cc
! ac082744b5a33ad2dcb6eff594cf3d6f  libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
! 678f61b38f9d54cc6d494cbe2b1ddcb2  libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
! 61384ef28db3a8798c62cac5d1d159f0  libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
! 75d0e4e06ccb5ac2db3d6835ab3af815  libstdc++-v3/testsuite/std/time/traits/is_clock.cc
! 0d9016886ac8724855b531f459418ee9  libstdc++-v3/testsuite/std/time/tzdb/1.cc
! 5a22aa736979185867e205d90f4958eb  libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
! 017128485d4a5d97449c74cacee711c0  libstdc++-v3/testsuite/std/time/tzdb_list/1.cc
! b2c3486444c7d0802d426b76e32fd654  libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc
! dadc3869fe5d7d3c56bdcfdcecd6afce  libstdc++-v3/testsuite/std/time/weekday/1.cc
! f95d58231c9339ff36200d9e92765348  libstdc++-v3/testsuite/std/time/weekday/io.cc
! 642869ce92d47849ba692534f16ca9b1  libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc
! 566653ecac04b9b7a4fb0d9d16bd24f8  libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc
! e85706a5d088f27116f5313bab867832  libstdc++-v3/testsuite/std/time/weekday_last/1.cc
! 5f7a4e4cd05140c68efc33aab7a3dfbd  libstdc++-v3/testsuite/std/time/weekday_last/io.cc
! 2f522b2d1539ef4d4c5830b531383128  libstdc++-v3/testsuite/std/time/year/1.cc
! b4b5555eed9f72e596d8a47999c8c22a  libstdc++-v3/testsuite/std/time/year/2.cc
! 7fb9ca3717478c0ad0785144b32a2eac  libstdc++-v3/testsuite/std/time/year/io.cc
! 7007e8b8d8525993a75f7579ea2df82e  libstdc++-v3/testsuite/std/time/year_month/1.cc
! 42f6d1ee26de877196c319656c04d2be  libstdc++-v3/testsuite/std/time/year_month/2.cc
! 96a5d4378aff8aba076297e13844bd8f  libstdc++-v3/testsuite/std/time/year_month/io.cc
! dcf0c2c567cc3e430a238302b4a54311  libstdc++-v3/testsuite/std/time/year_month_day/1.cc
! 129d33645a33168bdf2fd41ea190d6c7  libstdc++-v3/testsuite/std/time/year_month_day/2.cc
! 51be2d08488e21c716ad13896b4096c9  libstdc++-v3/testsuite/std/time/year_month_day/3.cc
! 7c4a781d2180605515afd61852d8da8e  libstdc++-v3/testsuite/std/time/year_month_day/4.cc
! 06b10a26f0594d9a9ae8c53a97016b05  libstdc++-v3/testsuite/std/time/year_month_day/io.cc
! 56115e8f7ded83190b923d482cee7547  libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc
! a1ed8b68cdfcdb0dc062a4188ce8089e  libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc
! 192de95caad18b1d43f6bb426673e66e  libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc
! 59f5e3a26d088b2572b275760e6eb6f4  libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc
! a28a57366dd5cc54848fd6ed5db6aac8  libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc
! 3072dc16557cfa068725f8eb64cd1641  libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc
! b200e472d215b490fa5c593ea10ba637  libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc
! ed486cc2e31c6afcdde6ef9f6c13f745  libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc
! 15b706df86afb798c79dd4393c23886e  libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc
! 73dc43c0f73dbf82ea1f2c0272d4f4ed  libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc
! 30bc9b2fd2b40e8027fe0054e4a38fe7  libstdc++-v3/testsuite/std/time/zoned_time/1.cc
! c5b4f50004a5d67e4537e73a7737a3b1  libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
! 189c09d558551ffe49e3d2dc9834b8a4  libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
! 2efed5bb6e9bdea0ea3cd7fb040c1711  libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
! a486e4fae5e727ed071c66c4751798e5  libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
! 2e901ad2401971034cd40a777684dcf6  libstdc++-v3/testsuite/std/time/zoned_traits.cc
! d7ca6a93cc03cd5a7c6b3c616eb1e735  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/1.cc
! 516295413cb21d660f9eeb4a09fd27d1  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared.cc
! 6b410f755929c32a4947d9ed1ddfd080  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared2.cc
! 96ccadcd492b8dfb12482ddcabfce561  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared3.cc
! c0e1cfaec7bf7711ebeef70de5f51b69  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/requirements/explicit_instantiation/1.cc
! 894fed7dd62125a853143602113cd160  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/shared.cc
! e8304fbe33a9a6f92d148c9a2b1e620b  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/still_shared.cc
! ef313ebfbee2281c66296822f90192f0  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
! 664e251cfed606d01c919572511a6ed2  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
! 7b54dee90203d2c144a981334365c230  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
! f1f91927e23772f2054723e01d8c857d  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/assign.cc
! 6f8781d4af6d68a452cde9064ec12714  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc
! cec82870839525eb5658add1924567b1  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc
! 1c576eb2c7e9dd7dc71c6f3b14a0a2e7  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc
! c2f975ad8b298614b2a02d3404921ca6  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/dr541.cc
! c449530d31e96ee57de16ef70a3ca143  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr.cc
! 46d1a6f222acfc0b08614bad9fbe1f24  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc
! abade16994fe246d5046d34f3c00c84c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/casts/1.cc
! 12aeba3326e14db25e04bcf1d4dd2f30  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/comparison/cmp.cc
! 27e0c8430c392cba7752529ee0b9755e  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc
! d3932dcac0c20361e2c7678921a72fe4  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc
! af2592ea13a8943370750f025e398bc4  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc
! a2983948c76baee7a53b032f5455b23d  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc
! f41bbee3c555a06c20cd8086680a23ab  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/copy.cc
! 56cd79cd41bd4858d67251f0bb63e578  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/default.cc
! 1065d8b5731abfaeabdce4a885228982  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/pointer.cc
! 923b63c2421e739ae1620dc60e53fdb5  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr.cc
! 13d73c3c612391941e40b63ebaa912a2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr_expired.cc
! 77f2ed2edc91c2483b5453e125f0d14a  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/dest/dest.cc
! 46a5811001f5f32473fb748decaa764a  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/24595.cc
! 4e58dd416b6482a632a9522cf81d57d6  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/42019.cc
! 7d966fe04cac2a9ea97396f4ac194f4b  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/io.cc
! 4b67f28e14faae49e3538376ae1587ee  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/swap.cc
! 9560f060f48d0503407fc3b53f5bf1ab  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/24805.cc
! 2f436b70b0ddbb26cd075e115d6e2563  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset.cc
! c30a15ad02718074d49968606e90a1a4  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc
! 0586310387e8c2d2d14f37719129439f  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap.cc
! 6064d1948313720e71ce4ce1de968f5f  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap_neg.cc
! 8d291d61332258757183f82ccf5e8f77  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc
! a879d038e5f4e10a5ff19448cb5a1123  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/get.cc
! 4c81646fdf5ac46afd7da9a2b0c6e9be  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/unique.cc
! 79fbc8c404c624aad6a676cb45643fd0  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/use_count.cc
! cf1dd71985586872f51b82dd79ba2c08  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/1.cc
! 28aa72be30d9a488f5a48d3bc3c5cb5b  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/2.cc
! 73dbfc3a00338771ce8a5ff6c40689fc  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc
! 2b70e8a6cca47b0153eb227c4188f4d0  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc
! 97c8bdee72d689b207f23e6750d3f183  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/lock/1.cc
! db56b659ddd4e9b8374a03187c193a47  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/1.cc
! 700eb6f4ae4b84e882ecea02d51b32e5  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/2.cc
! 0bbfd9f5acf573228176ea0b0586f317  libstdc++-v3/testsuite/tr1/3_function_objects/bind/all_bound.cc
! 7625d7d2914bf9829764de25943f930f  libstdc++-v3/testsuite/tr1/3_function_objects/bind/cv_quals.cc
! b329a4ffbb1459c7b5cc3674592fb545  libstdc++-v3/testsuite/tr1/3_function_objects/bind/mixed.cc
! 4b25c7707fac2bd8dbe3490ea9cf5cf8  libstdc++-v3/testsuite/tr1/3_function_objects/bind/nested.cc
! b45512258787cd927cc2eed04faf037b  libstdc++-v3/testsuite/tr1/3_function_objects/bind/placeholders.cc
! bc2e512fd62be53d4ba973f8ae636af7  libstdc++-v3/testsuite/tr1/3_function_objects/bind/ref.cc
! 4cd03407f4b7863ad313c98b3bc309d6  libstdc++-v3/testsuite/tr1/3_function_objects/function/1.cc
! ec76ae3fd812dab108d1f4b7f0a1982c  libstdc++-v3/testsuite/tr1/3_function_objects/function/10.cc
! 2a887cfa7ef611418ddd51198b39647e  libstdc++-v3/testsuite/tr1/3_function_objects/function/2.cc
! a112204ee12ee2cb8f5f8655eb561419  libstdc++-v3/testsuite/tr1/3_function_objects/function/3.cc
! 48512e2d6dfb7b636008106237c8ab7f  libstdc++-v3/testsuite/tr1/3_function_objects/function/4.cc
! 6e35037e7be81e84bab8df46d9ea27da  libstdc++-v3/testsuite/tr1/3_function_objects/function/5.cc
! b4332eb9a831a35ab9418f70ae99c4e1  libstdc++-v3/testsuite/tr1/3_function_objects/function/6.cc
! 64f76d67310eb4dc25b656e2ff45165e  libstdc++-v3/testsuite/tr1/3_function_objects/function/63840.cc
! 4e8dc7db0420979db6604a6550dc0018  libstdc++-v3/testsuite/tr1/3_function_objects/function/7.cc
! a77a2b7d2c2f4b8b94bc82d3767bf8e2  libstdc++-v3/testsuite/tr1/3_function_objects/function/8.cc
! 016c6192314d947532a8f4715df205f1  libstdc++-v3/testsuite/tr1/3_function_objects/function/9.cc
! c941cdb0af36a1890b63d4654a6e5b5c  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
! 15f4d9d8a87296e153cc44e4a9913316  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
! a51ef0e2844b08dd909a1842f60351f4  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
! 5992bd801260cebae60aec2bd0747edc  libstdc++-v3/testsuite/tr1/3_function_objects/mem_fn.cc
! 77c274da6e3094bdd1759c71c8738e11  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc
! f6f2f6d2cc412a2848213356990d7de5  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc
! be8f3b9516c76fb11636526edf56f78b  libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
! d12c52e98fd6e241754c770ebfb8a19d  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/requirements/explicit_instantiation.cc
! 59ce35a1ab4e063a41dded3b65ea1ed3  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/value.cc
! 9d61f296fb78f27f664e284c434bc3ae  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/requirements/explicit_instantiation.cc
! 4c0d80f2e48e35dea92993dafea80f1d  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/value.cc
! efa10b23e467d07ce4839170968f8824  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/requirements/explicit_instantiation.cc
! 02dbd9075544ea84a8e6e77ed3634400  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/value.cc
! 7a1529b49f2bdc4b25106cb73e87759f  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/requirements/explicit_instantiation.cc
! f5d64769bd7521424646d2fbb9db27c9  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/value.cc
! 45ad9d36cebc63e6ef4dd7d348076686  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/requirements/explicit_instantiation.cc
! d949890eccc3b8737992c768f31e0451  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/value.cc
! db325f496690394b19df06a584631d37  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/requirements/explicit_instantiation.cc
! f0db38bc118677efb79730bce24399f0  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/value.cc
! 296c0e64a909164d390294724be80d2d  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/explicit_instantiation.cc
! 8f397b6d7156d1d0e8e7044f96524f4d  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/typedefs.cc
! f63f4208d68cb0ee06c83024adab21b2  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/value.cc
! d64ba054a51bd38c0346743435ae61d5  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/explicit_instantiation.cc
! eea957d8b8577144656065142be41ada  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/typedefs.cc
! 2bddffb5f6e6dcebe9367874ec19cc20  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/value.cc
! 10618fa3bcb950560c53ba8da3dc4841  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/explicit_instantiation.cc
! b7c0bba36977843acb5ebbe462052413  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/typedefs.cc
! eeb34d1fc252f812a97bd2109a404245  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/value.cc
! 864b59c64bd129c27be132d90e49b13b  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/explicit_instantiation.cc
! b9695361b4aa2ead2f9e24d1bbbf77df  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/typedefs.cc
! 3c0efe0c4e11409eb70ec3a5c946f993  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/value.cc
! 22e533a9c98ae4e1440d66ebcb1f4250  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/explicit_instantiation.cc
! ffa0fc22d0ca3703d37f1a814fc59fcb  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/typedefs.cc
! 99f1ad057e3564c171e58526b757aa78  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/value.cc
! 3a97856e44d000c5e1687fd68e3efe64  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/explicit_instantiation.cc
! bb0adf82ea06bc19035679f84e353b63  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/typedefs.cc
! e4d4eb40f589190d047dd0cae974c37a  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/value.cc
! eab0ab5948f4167eef67166641d17a2d  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/explicit_instantiation.cc
! 71bb8b9996efb6e71e9390bfcc8c243f  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/typedefs.cc
! c85566579ba82e0b79bbd07dc8e26642  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/value.cc
! 9e6aeca60b592cc6ea166a6d7f4f14b6  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/explicit_instantiation.cc
! ca62bf1607e261b5d067b118ddd475fa  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/typedefs.cc
! f12aaf6f19d3e30f4b31ea44c462f035  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/value.cc
! 1746c810ffab2998622e2e540032d1df  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/explicit_instantiation.cc
! 49a28a225ea2edaab5220d53251dceb9  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/typedefs.cc
! b9112bfd6a1c035fc1305643fa07d2b4  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/value.cc
! 32c078359c347cc319407e498eb1dcbb  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/explicit_instantiation.cc
! def810599466fda4906b10a4efefd70b  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/typedefs.cc
! 1f14870b273c4bbed0c01b0746b5ac64  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/value.cc
! b867b6a63938a204fc1ffa5c1995e958  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
! a0cd6599cbe46b23d5bc7b02081a8075  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
! f7646533226800152382b756074c43fc  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/explicit_instantiation.cc
! 0b8684bc204fc375d6011083b60f6811  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/typedefs.cc
! 48abb4c9638c0052645e20a869166aea  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/static_definition.cc
! e83299ccea52c57ff338a421cfb9d172  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_type_typedefs.cc
! ed03dfdc5c8de3dc5a70044f3666307d  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_value.cc
! 3d3fbdd48bef531951122f21907f4abe  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/explicit_instantiation.cc
! 1f97264398baf675cab4cbc6cac0a522  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/typedefs.cc
! 5bf34a6a4946e5f4ac30724016a7d5ab  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/value.cc
! 6bab0215e37bb648b73f4c3b9f9cca85  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/explicit_instantiation.cc
! 0460b233a9c35d86698963c582966c20  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/typedefs.cc
! 74159d38a1afb81c7fe9a0d7a2068b7d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc
! 6ecd213a18633a20f1c10eaec132d418  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/explicit_instantiation.cc
! 2cd0b7aad8982adf8b6c95394f2372e6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/typedefs.cc
! 3829fd90f7270b36c7d0414100e44375  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/value.cc
! 1a52d97d8289607fea76f164d2169967  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/explicit_instantiation.cc
! 872ff60a21345e69b9aeb3780422318f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/typedefs.cc
! 35e2e6972229b01531b16bba8d622224  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/value.cc
! 5606116775306feb54d8ba4ffa4c1378  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/explicit_instantiation.cc
! a94701dbe5bbe00d8e1c033c4a6e72f2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/typedefs.cc
! 13d31924663a1bb2af71a21e29d6a3a5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/value.cc
! d53e9d22158fb20f1ca07b9be51ed59b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/explicit_instantiation.cc
! a6df92a65a1e0c8eb7e97fe3182d8aa5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/typedefs.cc
! a0a1f61f890f35a9521977906a1788bf  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/value.cc
! 2936d39c65516c5f495beb8a5b1858a0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/explicit_instantiation.cc
! 4f2f3cdd09b754012589f11bcf2e23fd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/typedefs.cc
! 6f4f7c16a1a42724fe3bcbec32596b5b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/value.cc
! 73e765be87054e9a6fae570f4807e74c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/explicit_instantiation.cc
! fae1abe250bb63c793fa84ff804455d6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/typedefs.cc
! e9a548d5c7ca087406c13875327d0d0f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/value.cc
! 52bdcdd3d4e56ce81a7b8783fbd78f73  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/explicit_instantiation.cc
! 43e976bba68e0a3afd85ba0f35e3eaea  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/typedefs.cc
! 2903ad503ff626924fa16204d10e0ea8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/value.cc
! 9f3bdbb6d5a29ddc3497a9922d1faba4  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/24808.cc
! fda35e44756aaddad4b81c351303e5fa  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/explicit_instantiation.cc
! b125958aae29314762c09372a496dd51  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/typedefs.cc
! 2014e601c46d3f0988fc027987d025a6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/value.cc
! 11d3c2705b65848dc71e2bee7dd43b27  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/explicit_instantiation.cc
! fbe955d676fcbce104c3bfd93b8def20  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/typedefs.cc
! d77806db75717cf75df7cea7fb6c6bcb  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/value.cc
! 1c73d86079c79378f439d389d1bc933e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/24808.cc
! 8f6e330a1a7a15489b1fe56894c90677  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/35637.cc
! b334c07c9c3ecbddae0d8ac32d3b2fc2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/explicit_instantiation.cc
! ebcc13b7efd9a456aba172e8ba758f48  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/typedefs.cc
! ae8300f652e8b2422d48bdd9e1ec05df  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/value.cc
! c7f02b3cf4172f430037047e447f6e2c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/explicit_instantiation.cc
! 936988ed410897ed9fcce17c056b3344  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/typedefs.cc
! d5d81580e917bdb1336da3d4c9e3250d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/value.cc
! 8c7b72ccbf7b2e05816132220906c29a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/explicit_instantiation.cc
! 5dd3011cd80272986f9b5f0bc9950206  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/typedefs.cc
! 61f2a66fe9d4152d6cafcc8229b380dd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/value.cc
! 6c7707ac99b444ad0ca1c3c59c34f760  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/explicit_instantiation.cc
! e044c3eeec726745ad5d5dbf17ccf366  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/typedefs.cc
! d1556ea7978bc0283285a508b737fa95  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/value.cc
! f5a27796c7a058151c82ecb2594ee148  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/explicit_instantiation.cc
! f9b2a6102f091899b922615fe90b3550  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/typedefs.cc
! 852bb338908c0a16942657462df77d92  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/value.cc
! 37437d916eeb5ff0e303a5ce8ce1e82f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/explicit_instantiation.cc
! 0f484a1d470b7c6e646cea38237553c5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/typedefs.cc
! fbf173442b216764573497f045b6f0c0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/value.cc
! 26297aa442c9afb50a604fea3dc13c48  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/24808.cc
! 986f74c6d3591d6b18f8c4155b3ad9b1  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/explicit_instantiation.cc
! ba393c0110db762ddcfd05e961b0ebc8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/typedefs.cc
! 56e2f73fd29621f2c2f68188d292bb13  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/value.cc
! 16fc1af4ed368249b8811c48ea9c746d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/explicit_instantiation.cc
! b762d620d355a25aa81f1436c4d53cad  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/typedefs.cc
! fd3c0181ff9c6a5a65d36582aac6968c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/value.cc
! 1a688631706117537a84f14e6b17e44f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/explicit_instantiation.cc
! 8e360df4f7499439da0054f39c6ad397  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/typedefs.cc
! f635f783d465bf2d099d5361303ceba0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/value.cc
! 7fe5b9b5f849f6b4bd360576c5c0763b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/24809.cc
! 9446cfcee32ccb5b909d5aecdc7feb92  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/explicit_instantiation.cc
! 354c14e23dd18050985dfa8d52a0a960  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/typedefs.cc
! f1b8be82621cd705de83b1788f948fcb  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/value.cc
! d37cf7310d9cb464c89135a87a452b84  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/explicit_instantiation.cc
! 44117f44629764742fff6acb00459649  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/typedefs.cc
! 3817a4760e9c560736f2b2fa5809fbe0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/value.cc
! 4c502a778b7c1df10e1dd6529265fac8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/explicit_instantiation.cc
! 91224c14eb5518832d2a1369eb75fa39  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/typedefs.cc
! 39ae206826bdea27c70c95404dd0b0e9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/value.cc
! d5247058c4f4e43312ec301c9d12efc2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/explicit_instantiation.cc
! c862d53c241557c1936bfed8f5be0182  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/typedefs.cc
! 447c5fd2dd9409a5c9b0a42603bbde8c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/value.cc
! 4155086863a3908645bf3e28a52bace7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/explicit_instantiation.cc
! 568a9d4968300b10878a185b6639a27b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/typedefs.cc
! 18ac313a8fac2248e0aa8f7fe09e8592  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/value.cc
! 05ea7acf6af27d2cde05cbd503100d88  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/explicit_instantiation.cc
! 4f2a20e7bd6d7ec27487c57f66941fd0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/typedefs.cc
! f463db6cca7a3006a39bc1dedf2a869b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/value.cc
! 9a72ec6ee99f2968fb7d7e889a5fff08  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/explicit_instantiation.cc
! b3b3ee4cacd57c029673d3ad074d6c50  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/typedefs.cc
! bd566b9142e856005a5dca71ced526a9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/value.cc
! ec3b7acc792777fe06a22935174d8aec  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/explicit_instantiation.cc
! a69c458821ce3fe494000e66a2c3a2a6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/typedefs.cc
! 20b4af4a0adea1e42c87d147554ceb13  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/value.cc
! 5dcb529cf3ce982f211ba95ed7229964  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/explicit_instantiation.cc
! 2201e138e16867cd909db31e8b0679a3  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/typedefs.cc
! 9e74a720bfd83bb24816359eef835dc5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/value.cc
! c5405bb3a9b6e234a68a9f24db9e9b79  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/explicit_instantiation.cc
! a25c42207af1741dced435c9b0132073  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/typedefs.cc
! 2726e6ea91e7d68560320fe86982f9e8  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/value.cc
! 66be288edf4f953e69fd3e832a881218  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/requirements/explicit_instantiation.cc
! e02e679d493c78d9fb9e07216635d4db  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/value.cc
! 8fc12f2d0502bc90d7dcdb09ab602b34  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/requirements/explicit_instantiation.cc
! 9e1d6d68ec9ab9e1aeffafa418a9df8d  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/value.cc
! 94ab72d15b5fa848b5fc09734f7a718d  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/requirements/explicit_instantiation.cc
! 207c7ed2926339accc71246913a32c8f  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/value.cc
! 12d4e39971be2da5b012115e5a1682a3  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/requirements/explicit_instantiation.cc
! 40737e17f150c0bc9604add5e535edb8  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/value.cc
! 8f9e024723e466c6fba482c60c7240ec  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/requirements/explicit_instantiation.cc
! 4f8565edca2321b287f2dea9fb2d723e  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/value.cc
! b12f208a35de58ce8ab07cf0dfc3f56f  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/requirements/explicit_instantiation.cc
! 349857a8837c4dd1b5b43547e3404120  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/value.cc
! 9ea3cd2a00ee0234886a66d2bf82baea  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/requirements/explicit_instantiation.cc
! b46729c61f05f0a167fef467530dea16  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/value.cc
! d52f7c9d20dab52ba73ce8220d535729  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
! 1f795037976540dee63d356d17f9afe7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
! c993b23ffdd54888f22047e500865667  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/bernoulli_distribution/requirements/typedefs.cc
! c97e6cd462dddd34eef1854c8c7d6432  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/binomial_distribution/requirements/typedefs.cc
! d7a8c7d5eba720981b0b1de95293ad93  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/equal.cc
! f1a7d1e9239691fd36bd36722e6eea24  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/not_equal.cc
! 69c5aea7e124b50a5c984c30e1371c23  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/serialize.cc
! 18a464b7c316af8e4e840e7eda8154cf  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/constants.cc
! 82d62ed2677f7ef23251ed2a8ffb9bb9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc
! 1073c68ab6643da5cd8539e86938a723  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/exponential_distribution/requirements/typedefs.cc
! f14ec4c2197214e7e9015b08845dd0ea  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/gamma_distribution/requirements/typedefs.cc
! 69039560fbbaf6412f508025de31464e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/geometric_distribution/requirements/typedefs.cc
! 2e3d7e26f3cf348cb625e4268ea95a73  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/default.cc
! 9ea719c8878747a1524591ac0f37b044  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
! bd77a861dcb65ffc002a3a68ef1cab1d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed1.cc
! 5a1955ba319164dc71002d42676286c0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed2.cc
! 0c19a9de03f899d71beae92ab3fdb023  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/equal.cc
! dd29a7f37c42724335d0543b5058ab28  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/not_equal.cc
! 3837f37806390e5860ca2ab3cd03bb60  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/serialize.cc
! 14d35b1254f2f3b44f81c5cf98dad00e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/constants.cc
! 10aab7e1929ebeb80d3d4792194b2095  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc
! 9e81bb809b2a809212dd1f015a831e5c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/typedefs.cc
! 7429df71913da369e394dbd81b915ad6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/default.cc
! a17019f62c5ffaf9f409f472d979c2c8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
! e323fddb755a0e511f514214e829665d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed1.cc
! 00d5b3cfc91265581e45663c5a98d951  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed2.cc
! cb238676f11d50b6699f14dfd99d3366  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/equal.cc
! aa664367cd299cb25e4f78012d40487c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/not_equal.cc
! 760b7333a868c3ae22ae0d8028aafb96  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/serialize.cc
! 547e4a9a65fc0861f3cb49f7c015229e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/constants.cc
! 16537a877d5284d1f974403f81172e0b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/typedefs.cc
! 2c8b7768e9f6beef6b5b777de5a526d0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand.cc
! 825c591884f193fa2ed73873cb0e290c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand0.cc
! a289c5c90ce84fa43f50198c639ecec3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mt19937.cc
! cae52f0eb3b5acfb8289dae9ece14379  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/normal_distribution/requirements/typedefs.cc
! 89235830bc4c2000c724b37b1859027d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/poisson_distribution/requirements/typedefs.cc
! 9f3feeede2895220f5addd6ab3787ba5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/default.cc
! 93953db6d4e341588c3e6b02ed2e7056  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/token.cc
! 4d7bf92687f6a32f3296049f4f899009  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/requirements/typedefs.cc
! 27c500d4f5a5d077e015712ef6602799  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3.cc
! e76d2971777c6ea4427de9e18f7c099b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3_01.cc
! af1103c2980fbbf0a8c0620700937cbe  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4.cc
! 61b255c7d10f078f6af248cf1a344167  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4_01.cc
! 018e0800618ab9a25d85d6bf4fbdb258  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc
! 3d988c6690b9263ed8b725c49a590b0a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
! d2a2af71204713457cc524cbeee9280b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed1.cc
! 7ed1f634f553c2176a61233b0d894970  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed2.cc
! c8bcb8015b93c66d4b487dbaf837984a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/equal.cc
! 89931a151feb7dd0c5a6b7267fb009f0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/not_equal.cc
! 00dcc79ef422250223e2ed7cc66ca96f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/serialize.cc
! 906d850517696657476465fc30f5f3ba  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/constants.cc
! 3465c9d316d17a9274a72753d2fa2945  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/typedefs.cc
! 90950300d35a35dd9171c63c92a946f5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/default.cc
! 0b908d4e61fa4408a68f8a4cd507b7e5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc
! e98e9cd7c687ae3af947ab162ab1b4be  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed1.cc
! c82cf295058b0bc8ee6330e305a8067c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed2.cc
! 59c8c6fe5cf848cce47c41ad96310764  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/equal.cc
! fa59195b0a564413347e1d3cf2e91ab6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/not_equal.cc
! dc64b888a543848688a5f30393be3a02  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/serialize.cc
! b12207b3cdb637241a191daa034b76d6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/constants.cc
! 66118337a7068252273af7bd0aa575cc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/typedefs.cc
! 836b1eaab79858d55e57070f21df6cab  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/33128.cc
! 3a9bcdd570878f2257ec117b31a513a4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/default.cc
! 7106cf18c6aede08e4d319c8e3e659fb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/range.cc
! c697870ae4962854731738cff41b34ea  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/requirements/typedefs.cc
! 4af0c80ade2677b3592cf9e52f3f0e38  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_real/requirements/typedefs.cc
! f0c51a03506f67d413278eb0309e5c35  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc
! 22b921b81fbd7d878cafef8993557619  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc
! 501aee062bcee1c5ab0ad737a676f82d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/cons/default.cc
! d3b41bb05fc0daa1852afcba6810f072  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/equal.cc
! f7b81062c5a438dc7b42978d62c0da61  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/not_equal.cc
! 82d9ebcd0c4d4eb4797f9f71d6d550eb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/serialize.cc
! 9b1c0830c72084f07de5f608f113a3a2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/constants.cc
! 7a453c0fbfaef2c3d4ea35d06738bc92  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/typedefs.cc
! 15b6b02579b69a89c95416cb4fa1ffe5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_nan.cc
! 8f94ddf365e720a83ea27046e9fe0086  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc
! 1836708cc832ef7ff41a58896a081c48  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile.cc
! 667d386f40eafb26dcb3e2d47f1f6388  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile_2.cc
! 7b65db7a6ce96ab4aba766cc555cafb6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_nan.cc
! d0689cc0b0c28b4fd17d62e3b14dcb9d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc
! 461a154eb8508e5d7c07c6fd0f30dcbe  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile.cc
! f8ec134b01542bbcd11ab34f605a99cb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile_2.cc
! 011a4874fdae81382b9a9059b3d880f1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/pr86655.cc
! b38dd111195c95fbc29c788a9138a2bd  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_nan.cc
! 2e663a0c4ab1e7af05dffbbded4b932a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_value.cc
! 9fd5f724d67af99d55ca8f7cb6b90cea  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile.cc
! 3aefd1d639272121a6bfaa963024f59f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile_2.cc
! ead8ebabcac1647427fe0a0ad37c3cfa  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_nan.cc
! f53e3f4965f4f9f92c93908ccb4fcbed  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_value.cc
! e21ab5ca8900b4c1d50c343e021c686c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile.cc
! 7ec6bccf58c6f9da98545ed061275d7f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile_2.cc
! e5b50b81b6e49d35883c9868a5d233ff  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_nan.cc
! 2b33c8bcc29bf5b2906b02ab8a0cd2f6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_value.cc
! 5f4cb585a7eab9df95797fb99bdd0b90  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile.cc
! 34f6ac12b03cfc31cc4bb6fcdcf15af5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile_2.cc
! 9ada681393cff70dd73ee122d6ff7fb1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_nan.cc
! 01af67b3b90ac6bd82e5fb4d4cc4ac16  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_value.cc
! 601fff5c3155817064ae368e5e7c5220  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile.cc
! f5d0db563f638ec87ef3dd8972262438  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile_2.cc
  4618aff82312f2efbcdba760637d68b5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/pr66689.cc
! 8b2c9b05e2c02b037296ebdb01c71b36  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_nan.cc
! 004c0ca2c04df9c2860f2530751044fd  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_value.cc
! e2ca7f4ee28d4fe923309d80fedf6975  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile.cc
! b6cce13b0bfe81b1ec483b08cc26bee0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_2.cc
! ffda97fa797c57eb01f6bf4de8335ede  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc
! 8ca73da5b34b9f1185ed5c424ca495ea  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_nan.cc
! 00131c4790e397a490f7d08b13e5e625  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc
! 121f5b2d2f03038dfb48c40ce391ac87  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile.cc
! efd8a5ad5182f593b0316d051fd87557  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile_2.cc
! 300019d4b346f64a1969b7f944d312d7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/pr56216.cc
! cd47ff596642f706a2fc1df1f58cf7f3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_nan.cc
! c87e0d41799364a2a5679d30bbf963ed  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc
! b5a65d03581dd5613c54deef73a3e9e2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile.cc
! e9c3afd475afbae6a776fa2e94cae4ff  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile_2.cc
! 5d299ba7a06f8fc7543d67c896f527ab  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/airy.cc
! 9cbaa75a6b466c3af9295139558e60fc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_nan.cc
! a073e696b8add04dbab23c2dd6dc61a5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc
! d9ab084763923c0415d9ab3ffe454cc9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile.cc
! acde18a68febdcbacc0e3d829fe6335a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile_2.cc
! 65daf9e8baf27f6d02ba24c91c633a8d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_nan.cc
! 5cb6e9b16ed37e522c403c7e13fb16d6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc
! 4942abada236f950f96d8e8c87ba2c3c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile.cc
! 540f5142b1c12e9715f0c5c79de96408  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile_2.cc
! bb488bfd848462ba29fb113d3aef8dc5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_nan.cc
! d5b45e0b50c0ebc82d98791ad1ee3ca9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_value.cc
! fe2405bd67a0ed59800c3e53f1dd6535  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile.cc
! d240c274479556198b2d4cbdc274607f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile_2.cc
! 48560b5a77a5caf55d6a29483424ba44  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_nan.cc
! 47346ecbaaf5d9de140f2767ceea3d4e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_value.cc
! b32c970c04b658c3b7d2f115510f827e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile.cc
! a1d59ef59e2604f3b6e0ee8aa4946d4e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile_2.cc
! b039356732174485ff11f8e9ab0b17b7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_nan.cc
! 727414dc724dae73966e9b13483ffd62  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_value.cc
! 2873e91903d3de20e926c0a9938cd750  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile.cc
! 1fe98a2d03a214aed0917c0e57e34da5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile_2.cc
  b780a349356e83ff98346ea066a7c8c7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/pr66689.cc
! 849ca91052bea174ba6776f4af774150  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_nan.cc
! 3317a6fccdfb776b85c48e21580360a1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_neg.cc
! 8457bad2fc2e05f0e7a5e37d0a6792c4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_pos.cc
! 041135f920541adfa1fa8065d23bd965  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile.cc
! 045c7dd069fcca9c8a9a37392d1cfb5e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile_2.cc
! 25f2db269e7581c808f125d736b9523f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/pr68397.cc
! 9cb52fae2fc8a92ae878ec07272fe505  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_nan.cc
! 702e7353e02e9ee393f44dd5f25dd2f4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc
! f394b67002b8e9b9d9611f818a74068e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile.cc
! a7d5adab06594324002fca503e48098c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile_2.cc
! 99d8fc6275d87fcc757e0b6a7042dd8d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_nan.cc
! 245fef560008846aae4ba2434bcbfa2f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc
! 1db89a000d271fc1015dd0010f9d37bc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile.cc
! c90195d5e76a8e2930cdbd953a5dbca0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_2.cc
! 2557826c185381f08e9c747e16620955  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc
! 76949072e51f1f68b0301eb4ab69bfc6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_nan.cc
! c7fccfddd74740e649a4fb6f7ae225ec  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc
! 8f2559285a3bfb85282fbefe5b020924  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile.cc
! 3d6e8716f013621698a05af50c9fd7b1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile_2.cc
! 1b2f47b4dad1c4c2f0b2c3dad3d905c6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_nan.cc
! 2a646ff0c917cc7ffcbc494de5d08390  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_value.cc
! 0f257091da9bac754463af1804cf2e56  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile.cc
! ff47eda95fecbe971ed42a47ed897e13  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile_2.cc
! 2fe63db73d112fe886a84096e25bfad8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_nan.cc
! 5336ef78090381e7a85fa1bb0dee42bc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_neg.cc
! b3dc325e1a9f1e6526889a3f868d4c1d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_pos.cc
! bb23a1f1e632ab0d4d43559b804ee2cc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile.cc
! e9eca6a7dfe1c5e2b4ac043d5b2fa406  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile_2.cc
! 87bd30cffb9348985e00c51ece8361f7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_nan.cc
! 804d7ff62db2a3a2ab4c69225a03c3cc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc
! a6e61185c2e54cf83ed9f9da9185c40d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile.cc
! 92c90573d53672065daef29b64367ce0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile_2.cc
! 721df13c753605bf68c3cb6b06de916b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_nan.cc
! 5eba616317c70e0d0a83894ef197fe93  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc
! ca99fba86b785f77b7ce05f8fbc7f5d2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile.cc
! 4c31b1aef427212feee79357ac61f447  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile_2.cc
! b489829a0287b2e5a96415678dec97ad  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/pr86655.cc
! 8aa2c618146451a478b93ec84fecdd19  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_nan.cc
! c9189ff5dc480b65c9e78bd054f8cd85  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc
! d6575e2ab9282f8a811d7e3de4d92d3c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile.cc
! 0bbaeded01e1622eba911efe37cf047c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile_2.cc
! 0b2db919272f2a816d62c6dca8952531  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/testcase.h
! c97b20cf50f0407525561a3818772153  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/empty.cc
! 1b6ec953104029db18e1642120d202e0  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/max_size.cc
! 21e8f70b93f924189867ff9db17a142b  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/size.cc
! cdd36c1d7744a1faa7ab9ee0ff555b7a  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/equal.cc
! 4a77c77f67d9ac43c435d42834d540f5  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater.cc
! 2ebe1b7144abf15f6087afb5ef53e60d  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater_or_equal.cc
! 46c0ecd7f7f0071bbb7e9665706dbe85  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less.cc
! 1e6f4bb1a83f36ecc479e527cd9546f2  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less_or_equal.cc
! a89e40f38ce7b9e0edc1de7ac77b2c31  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/not_equal.cc
! fc615717180e021e797a27c02327d945  libstdc++-v3/testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc
! f0179c1ee83535762877734f806163cc  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/at_out_of_range.cc
! 4084127f5bc5aee306e2ff665fe889db  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/back.cc
! 109b77949425cf1a1e89f01dc38be982  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/data.cc
! 262a3b1c34d44ce3ccccccb9538e21c6  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/front.cc
! baf0fd785d2a5355a0a8b41871459ebf  libstdc++-v3/testsuite/tr1/6_containers/array/iterators/end_is_one_past.cc
! 6ce66d1bddbc1e3181b0e8ca5b865d56  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/assign.cc
! 3d4e56e0b7bb350934eb87eac563d317  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/contiguous.cc
! 50b522f8337d6f122542b738baf9c31d  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
! 22348cd51a4cc109d067a74847d346a0  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/member_swap.cc
! 0ff4c0302ece1a23bfb5865c6d57bb7b  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/typedefs.cc
! 760913b314efd9aae7b1ef76e38df391  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/zero_sized_arrays.cc
! 1ab349cf52f723aa18b53ee97da64af7  libstdc++-v3/testsuite/tr1/6_containers/array/specialized_algorithms/swap.cc
! 2a6067660c3801319c0288b3d33b1c5f  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/get.cc
! b2a7a550d494e8f07ef221806ad1f959  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_element.cc
! 5ab145daf93c1ff4d746133ade919c2a  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_size.cc
! 3905ee6b2a310dd54a3ad551cada9d63  libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
! 44587f0ced32fc6627759eaed9490cbd  libstdc++-v3/testsuite/tr1/6_containers/hash/operators/size_t.cc
! 3ce2b9308b9e39d39cb350d94cb16d19  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
! 57d7a97978655f6ed7daccadc8e6bd89  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
! 54f821f8d1d54891c097e2b65b246313  libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
! abd70356ce91c0bec81b4fc2bd5c0ddc  libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
! c514330660711f953b7b695df98dfdc5  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
! 923c2d793fb6b2304f7bf02f62af7252  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
! fc37ab952c471a2b457586f9316588ff  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
! 60802663572dbf136bf2e97a7dfed9d8  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
! 7be336723ccc0f15ebb226c6755ed2cd  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/35480_neg.cc
! 80e210a62bab653dbd0e46631730d2ec  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/comparisons.cc
! 5f4837b9ff40308e9274fdbcc7b27c9e  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/assignment.cc
! 0dac26ca043843abf610a7c6999623ba  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/big_tuples.cc
! 0c29d6c73970972a90020308a157b8b8  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/constructor.cc
! 9fe6af352fcb44c59903076d62cd64cd  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/23978.cc
! cf9caafae8ab89114757475127b92cdd  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/make_tuple.cc
! 7dd80089197c0ed99232f34e66a5b21b  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie.cc
! 27f7d4994dc110ef61bf1edf1e0164e4  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc
! 03ff1a042e401d7e3189b027d7246c81  libstdc++-v3/testsuite/tr1/6_containers/tuple/element_access/get.cc
! 59b57a610c21e67f8031f5896df0077e  libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
! 017e3ffc79ab0292785ae72a163b42ab  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_element.cc
! 3d297798c3e14b685df038443b05f0a2  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_size.cc
! 540e5ce4411fd727e5ecbd07c200a49c  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
! c2703e182d073bf0071c3fba40215d85  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
! fec92508b7d60adfda01877ac8657d19  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/1.cc
! 2d7d5cb2e032bb7d0c52d295d8fdb755  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
! 65bfcbd0142200ea63496852eb26f0e4  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
! b40c278a472e3be47bdf7ffcc43f4d1c  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
! c9fe5807713232ecb985a431fbebfbaf  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
! b393d48bf568d67c171ddaa53b5fa7f9  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
! 99b6e7bc8477ab6e92ebbe849178b897  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
! dd14f18fbf5e2626116680cc37ba456b  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
! 730e5ddea71ec3e10d69e703a88156f5  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
! 94a0341de686878b9c0dedaac4eb08b2  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
! 1bf5caa3d5eb13489b1b64f0c85499c5  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/typedefs.cc
! e60debb50dd3395b8892ea69e599b869  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
! 132c5c6cd10e1f182ae263618617f3f0  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
! 32d3f4fe822c46f9a23ec50b844bef43  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
! 8f94bafd77a0e59da55836457b1e68f2  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/1.cc
! 541b44145403152af87168612b11bff9  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
! dbfe5ffd2509b432db340afdbcc1d3c4  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
! 3632312e07dc581dd9af6b18352a0828  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
! 62640f4c51920ca22c89c46084e11b88  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
! 77a9b2531b66b4947feb853739437403  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
! 451f01705619762333e279092debe42e  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
! 93c16ef8d5eaa242b6aeb14b3cdcd114  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
! 8bbf753862bd90780f77518b53eeb293  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
! 05658e4d74ff97f223e6cae28085fe6e  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/typedefs.cc
! 818707e831fd6d38bc1a3e8bf9ec1b70  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
! 128cef1174167dfa0bc5117fde991237  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
! 6877909ad925eedea29e7ba149781c4a  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
! 9bb09138eb156c7b738f78ac580a1adb  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
! 697b1f8e7f9ce13da530d11fbbe08547  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/1.cc
! 4742e14b4cf1ee2c70914a199aab4415  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
! 83c631367c84eac0d93f5de4cf32f25c  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
! fe6552c4e4a2fba3ab41e0a65bcd56d5  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
! 7d70f2bae41f20818e61764373894ec6  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
! 769b7b7c54b9fa85314e40dde2e73003  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
! 61bb83a22c41e07cff444358815bbdaf  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
! ac1809d64970bd8b7162ab78acfbd578  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
! d6afe94f06b150aaf46358f29b34cb4f  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
! bbc16822d02405603d78c5864f4fac93  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/typedefs.cc
! ae5c7537536b7d9a065b7cc32de625ed  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
! e489d9e5d61dc9080645229c8d62ef1e  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
! 0d2d5f533eee53c212e5cab10803496f  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
! 95d27539e1be8a1fb49ea37e21d19bd7  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
! 57ef7d0ba631c3d6194198e778077666  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
! e38214bca20b66a163cd39c217a3dd60  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
! ab3e8d489955b2247451d93a9f80f20d  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
! 56bbf9762e4f5079dcc01deb158d4cc9  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/1.cc
! 68bde0bdeef7283a6f40941ac15cd59e  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
! 18aef85eb886d530457c6b28534013de  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
! 69aac7e3eb3a04821a8be89eba62c535  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
! 9b54a89767e5311930fd240fbdfdc979  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
! e56b295302675e68a7bcffe3bf5693b7  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
! e18a4f79e623eaaaeedc5333e6311b34  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
! a732de28b5ea1d1c2378eb4217d4c448  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
! 814c44a94bae8d6e3f3752c7e49af925  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
! c4940abbd68f01a70f7b360ca911faeb  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
! 28bfd9023139617788e4e22cdafacd90  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/typedefs.cc
! 28e94e115cf551615f94fc0ea2fd6940  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
! 7992034d95a0b5e310bb4cc0af63bb68  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
! f14981238ba63abef3fb7cb47fe42325  libstdc++-v3/testsuite/tr1/6_containers/utility/19535.cc
! 7528d8b1823a31b724c3cf4385655125  libstdc++-v3/testsuite/tr1/6_containers/utility/pair.cc
! 7ba73b03c893911d154bb4744c04e4d5  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc
! 540dbf0f5e074e0fc5d743f961767eae  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc
! d0cdca158110c91fde157265b9d0427a  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc
! 97369f08a497e7e3d1fabe4e30c18549  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc
! cc99e3ed7d9c99b051bc8a2ca039d2df  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc
! 4e1a9bbe64f218651533e48fa681fb65  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc
! ee687101172f416be6c7e21b2f3c3e28  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc
! 6a36add87eaff695d356b883f8356188  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc
! 2329be1c05ffda7b202d3d1c3965aba1  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc
! 6f2d51ee56e0059e28cd1467b4f21bfb  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc
! d98d6c2fdd87d1617adf41723f658605  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc
! 1f1b6e19b34416ce2bad8ad5ca15cee6  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc
! 287aa03ff995902b891314f5e0ea9e5d  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc
! a87f8e0c5b35c854dd1b30a6bfeec831  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc
! 081523d63ee68a08c182d8abc6fd3a46  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc
! 00c0151181fd785a89ce144e0c98f0c6  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc
! 83b6d9bd3712f190b34f6b7db4392fc2  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
! 817d9fdf3fef78a2d3b66e0d8158c4c9  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc
! 67a93a5ec0ac0a84140bbe2aab8cff91  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc
! 14aeb466c56b5ef88dba2bdc6d544fc7  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc
! 7deaf71ac028d710a98a37e367d89171  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc
! dabd7ae6443ee2401e5cefb479dc4dec  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
! a3ad7629b4fb27cd8aaeaf054c5c506e  libstdc++-v3/testsuite/tr1/7_regular_expressions/match_results/ctors/char/default.cc
! c7d50d35f5607f5bb0a41c83ddd398b4  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_awk.cc
! edc0e908a90ddadb492f18186ced61fc  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_basic.cc
! ea20b26705df65809b755d8943c7be35  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_ecma.cc
! 2e4c6c2cc33aa70d850bdb31d8a703ba  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_egrep.cc
! 6fc2c41a92d6c8bbf002739bdbff2ad8  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_grep.cc
! e04d682a77ea2e5dd2e7305b0a8d364b  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/default.cc
! c0201ca6abe73b7d9971048ab9052fa9  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/ctor.cc
! 419f5b756457ea0abc8b15db794f7e31  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/translate_nocase.cc
! 1a3780b4500b15e1d77e1da946a6f85b  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/value.cc
! 80fcb3f4321daf610410db31f1ca9136  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/ctor.cc
! b05ed4ec529c539c2465010d65c66998  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/translate_nocase.cc
! 1a3780b4500b15e1d77e1da946a6f85b  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/value.cc
! fb8002d6c09c9e4337458ed0ff720929  libstdc++-v3/testsuite/tr1/8_c_compatibility/cctype/functions.cc
! 8d314ab80f452405e2c0c0af0bde8590  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/functions.cc
! 23f9ad491edbb1a4f93dcfc57a203e5c  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/types_std_tr1.cc
! 87bd293c05814ae27e09c298f721e938  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/functions.cc
! 64d1d202ee26d857abe40d08e0461065  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/types_std_tr1.cc
! 4f3fb7fbec5015d02c230c6f1f746387  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc
! e56647e507e63081b0372bb252186e39  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/functions.cc
! 61c1ec2d4fcae9dfc5fe8caeef63bedf  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads.cc
! 711e1516131a3a36659ad3188b0d7d86  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc
! 8cb861b69da009191b27d6b057ec8a73  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc
! 1f3a03c56a35a98cddff7ec3bb8ca6db  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/templates.cc
! 6878ec20759f5b7ff3234b47b1b0f057  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/types_std_tr1.cc
! c70125d5f0c71e0af9e85c575f2f3327  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc
! b36931db2a8f2b0fe9543bf899bd089c  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc
! 0b46348343649f4817111ad796f6fc6b  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/functions.cc
! 58a7a25705a4dc2eeedb71b6867bf2b2  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_float.cc
! 098e517e607a3ae60f690522686fe6f6  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_int.cc
! 923d578796e122e41680bd2c7cca18cb  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc
! 39c70452fd974ac86d42b9e592591d34  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc
! b5c2fe211bf9c84c66acf4afbde06aad  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/functions.cc
! 24a14db0197d6212e136d74c00505284  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc
! 741dec65d3f782e773d6b874e82f3ad5  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc
! 673034f98e0c0ddb0d3fa6247d97253e  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwctype/functions.cc
! 5686228503838b011542541d6082196d  libstdc++-v3/testsuite/tr1/headers/all.cc
! 12659d21f3b223bcae119a9ecee4a916  libstdc++-v3/testsuite/tr1/headers/c++200x/complex.cc
! d1be406936dafbf31d506c295a8d8a0b  libstdc++-v3/testsuite/tr1/headers/c++200x/math.cc
! 6301ac6d501902fbf066e6bbb6a582b3  libstdc++-v3/testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc
! 4c6c54e61832da4571c50d11394e203f  libstdc++-v3/testsuite/tr1/headers/using_namespace_std_tr1.cc
! 6a0a3846fe33d05d7350ec04ac463ecf  libstdc++-v3/testsuite/tr2/bases/requirements/explicit_instantiation.cc
! 49e7cc7eb9ca6d8ab7e9f9958154692c  libstdc++-v3/testsuite/tr2/bases/requirements/typedefs.cc
! d4a3c3afa8bf0a0975b7818d38995d2c  libstdc++-v3/testsuite/tr2/bases/value.cc
! a01a1569cbc17b299bb2f6eedbeef2f0  libstdc++-v3/testsuite/tr2/direct_bases/requirements/explicit_instantiation.cc
! 11ff82af7d53ad16f0f7ce8a512d881e  libstdc++-v3/testsuite/tr2/direct_bases/requirements/typedefs.cc
! 754d9c55ac62934f6c356ab5147e03ef  libstdc++-v3/testsuite/tr2/direct_bases/value.cc
! 7d49f9fc0d84432efafb9c0c5862ea85  libstdc++-v3/testsuite/tr2/dynamic_bitset/cmp.cc
! 6a469f89e183263aab103a432ec9b121  libstdc++-v3/testsuite/tr2/dynamic_bitset/cons.cc
! ccb783ef723de026936a15dcfbcc4637  libstdc++-v3/testsuite/tr2/dynamic_bitset/copy.cc
! e0c8e7f7937cda5b1dda18c9ecff0912  libstdc++-v3/testsuite/tr2/dynamic_bitset/move.cc
! f2b2ba6e35c391e64f6d50df18097cc6  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr58729.cc
! 71669505661c2946ee4dafce7d8bfe1c  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr87784.cc
! 0c8a30db56f78f068645e9dd357dde96  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr92059.cc
! 42a9adc5cccf273cb201a29046ab15d3  libstdc++-v3/testsuite/tr2/headers/all.cc
! 39e9038df96f7174d951bfb99b668705  libstdc++-v3/testsuite/tr2/headers/using_namespace_std_tr2.cc
! 3f504b564e8bbb68660e8b348c364550  libstdc++-v3/testsuite/util/atomic/wait_notify_util.h
! d9c74b8bddb9a246f1c49e82610e8c7e  libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
! 99a166efe84d1e733ead2dfdec08fb0d  libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp
! 3481866ff52fa19534d446159fdea3bc  libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp
! 7c72e86d2ded3c98226cc0640f658611  libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp
! fa3522d9ccd1930eb14404366a7bffe2  libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp
! 9a806e5bbef3987f76f529cf6d70722f  libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp
! b813138d117e06adcb440f3b1018217e  libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp
! 846846f6dda9238d75841f5758515b85  libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp
! 36596e8c86e27c445b1f4fe4bbf20ae0  libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp
! 6e95fbf063485938ec2509a24cd693f6  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp
! 86cd22d3683d8e00dc39615659cd2ca2  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp
! 44d3fbdddbd2f941407e7dcab1a58f6a  libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp
! b23a6cda13732e57a616e3fea1620c9f  libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp
! 1e2b428022ebe6ca2ebd8910ead98fe2  libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
! 6b1f8cbb921fafb0cdc2c5e1e4957d1d  libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
! 0149ed000db64032460f0e1b2e61b55f  libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
! c0f511173d1b94a42952bbace4490b06  libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp
! 514c8422e615a146568921e10ca01cc2  libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp
! c5529c872f3f6397340fcf2d156310bf  libstdc++-v3/testsuite/util/debug/checks.h
! bdf25af6c5db489a9f8532b27906a526  libstdc++-v3/testsuite/util/debug/unordered_checks.h
! 48d5fe7f1bfe0ffa0c843a6cb449fe06  libstdc++-v3/testsuite/util/exception/safety.h
! 85d1c120dc67e2618d61316b3e5f0212  libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp
! 7db8d02e2232f238ede798d1c4d93a9d  libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp
! 55d4f29b85f7a0d1b4e0f08dd6320450  libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp
! 92461ba7f479e6363f3b5d68e5f8776d  libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp
! 2c120a3304bdaa0fff950dbe8cff9770  libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp
! 06dc43e29b374d124ccf50853d67342f  libstdc++-v3/testsuite/util/io/illegal_input_error.hpp
! e940d2290b430b0e07e6c60854c14bdf  libstdc++-v3/testsuite/util/io/prog_bar.cc
! 2be9794e2fd6b09f6f20e917769ba7b4  libstdc++-v3/testsuite/util/io/prog_bar.hpp
! 73ed2280d5888e3cc13c28f8ad8fb0d7  libstdc++-v3/testsuite/util/io/text_populate.hpp
! 797c3f65a8bf4d4658c002e91ee0dc4b  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc
! c898b6573609a233f981c10f97ef476e  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp
! 125a318185595c8727269154cf78f7b1  libstdc++-v3/testsuite/util/io/xml.hpp
! a130f7561691d0bcc4a1c3b3ac3dc87d  libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp
! 7df06367c68da8c66668d2783d467d73  libstdc++-v3/testsuite/util/native_type/native_hash_map.hpp
! 032a86af26913c8f539b5f0e9c42e35c  libstdc++-v3/testsuite/util/native_type/native_hash_multimap.hpp
! b291c5a86abfdf01298c36746ec8e7da  libstdc++-v3/testsuite/util/native_type/native_hash_set.hpp
! 2c3dbb20b405fbdf8406f2b42aa6827e  libstdc++-v3/testsuite/util/native_type/native_hash_tag.hpp
! 562d9f4fafd3d3cb9d80618c62a5e112  libstdc++-v3/testsuite/util/native_type/native_map.hpp
! 57eb038db291f3e4f1ca50b6c2710fb2  libstdc++-v3/testsuite/util/native_type/native_multimap.hpp
! ff5b51c306af21c37cc58976a57effbe  libstdc++-v3/testsuite/util/native_type/native_priority_queue.hpp
! e88305ff48c6dcac5a94d2997c13ffc1  libstdc++-v3/testsuite/util/native_type/native_set.hpp
! e4dd375ffabec56f2e6addd04b3a745e  libstdc++-v3/testsuite/util/native_type/native_tree_tag.hpp
! 6d0a11b1b6652f95f100eda357564ef2  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
! 3ce2be3b519dfd014b03f59232b89388  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
! 9a9e942b361f867e2f98bd51ddffff7a  libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
! 024b671670c15e8ceab6578c82f58566  libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
! fba27195cc407e7a19472caa65035b68  libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
! 6344bffbf3fc4b73e77484e1831fcd04  libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
! 4e6e2b4b038ff702000ddf5cb92d8629  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
! 8fb2ab7ea50d209497ec675b6d68f14b  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
! b13f8cd37bf251034c753399102dc45e  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
! 44c76d3aec6fe09ca02ddd6bc46adb9a  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
! 05d895d0a30bdd3b1c71827af3baa511  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
! 4f9311dae9e74f4d00d1aad766708f85  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
! 30300cdd7c19ca3b963e756d90e72129  libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp
! d3c680017eb9135cfa0ba1b318fef82b  libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
! 20f1e23cc466d28cd55814527ee0c85d  libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
! 1f09a11ef8e85ad7e3b46eab0bbcda46  libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
! 76d0d09d5c47c8c45cef0ea05ae55e80  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
! 3d0c2b9d567028e788ebfaac45cf0c32  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
! b959f4a7cd4f5ad3d325768dde446db1  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc
! 0d4fa178cfcc2fb96dd7c399e198834b  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp
! 52c6900722ee67ff558b822970db27a3  libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
  f229f005fb6b0edfab2a25224f4aa670  libstdc++-v3/testsuite/util/pstl/pstl_test_config.h
! 315ea42a1d905634a70b6bfebf2b60e4  libstdc++-v3/testsuite/util/pstl/test_utils.h
! 003844f55573cc118124d116805c1adc  libstdc++-v3/testsuite/util/regression/basic_type.hpp
! 46c4a74fef4d84afbb0cfc2f849dc12f  libstdc++-v3/testsuite/util/regression/common_type.hpp
! fff8cf1d581ff764a0de843c83a778de  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.h
! 222b45d5aa06314c29b46e4e7966b08c  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc
! 1095686157ef80453bc9caf88d0f1170  libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
! b6bcaadb715d0fc12e063879e5fcbc75  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.h
! b4fc074f481503e501f08509a6089a3b  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.tcc
! da48ab0d40cee39692b6e1ad3e870d0d  libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
! feb666e7caddc2ff5637dbcb1a8efa7e  libstdc++-v3/testsuite/util/regression/rand/xml_formatter.hpp
! 76b21dacb70581f1c1a928c92fae4edf  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp
! 3906874777eb71852c52d7224f6a2f05  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp
! b5650516e9d5e1ed76cb3fa79e375a23  libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp
! f5219d56c14bc97e63165c9cd441ea6d  libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp
! 5e3c2973a9d35871254587784321b42d  libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp
! f3bb2c9f547b10c68ccd56c91abce154  libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp
! 5a0fa696154ddbf409362984ee297d76  libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
! 8f98c9a37639187379e5692f38671c4c  libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
! 84028524f31c149e8f99ba188ae3f995  libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
! 38f023b60d5876856b1e7e4c80734169  libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
! 7f533f5240143e6a4f28ca8deb1471ce  libstdc++-v3/testsuite/util/replacement_memory_operators.h
! 271bce45b78ddfbe32de469ee4899718  libstdc++-v3/testsuite/util/slow_clock.h
! 7d39f683553d457efed6e6b13846cd25  libstdc++-v3/testsuite/util/specfun_testcase.h
! 7ed7a83561ea00e9f8da50ffddb8fc14  libstdc++-v3/testsuite/util/statistic/result_recorder.hpp
! a0256bc795839e425e35702572f2f8bc  libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
! 918a6e1bcff57b8e89cb264f52b88e74  libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
! b8b1c2808eb70c03c963b4a62269d1cc  libstdc++-v3/testsuite/util/statistic/sample_variance.hpp
! 62e8a95d7243d1413a5cb97217a68400  libstdc++-v3/testsuite/util/testsuite_abi.cc
! 181feb52eb8dcfa7f8dfa030bc4514b5  libstdc++-v3/testsuite/util/testsuite_abi.h
! 3208b7061a80358262b38cd5bf2218bf  libstdc++-v3/testsuite/util/testsuite_abi_check.cc
! 263b373c9fe52e8b875a12a883c95d86  libstdc++-v3/testsuite/util/testsuite_allocator.cc
! a1394a71fb37e9b2c08ee6b8be030492  libstdc++-v3/testsuite/util/testsuite_allocator.h
! 4da3c8f6f248cd98402f19e6c49995ce  libstdc++-v3/testsuite/util/testsuite_api.h
! 97fbe89d20ac641bef8e2676e4c8f626  libstdc++-v3/testsuite/util/testsuite_character.cc
! a36fc20999f54183117d7846a06feeaf  libstdc++-v3/testsuite/util/testsuite_character.h
! 2cf2d222e97cac514057036d83ded594  libstdc++-v3/testsuite/util/testsuite_common_types.h
! 46f6a8139639a62062a57402cb530530  libstdc++-v3/testsuite/util/testsuite_container_traits.h
! 29e2e70b94364ec963cab27bfaacc780  libstdc++-v3/testsuite/util/testsuite_containergen.h
! 91c439a16f639ace83f1fd35b49bf93d  libstdc++-v3/testsuite/util/testsuite_containers.h
! 30fb4f0591bc177fc6b9234b90276d6d  libstdc++-v3/testsuite/util/testsuite_counter_type.h
! 1908260a1cb38a2ee6ee7202054acf39  libstdc++-v3/testsuite/util/testsuite_error.h
! 4668b08aa7ab360835185086b4bb4b9f  libstdc++-v3/testsuite/util/testsuite_fs.h
! af4eb2624c32e3bea7c0de5799b33eed  libstdc++-v3/testsuite/util/testsuite_greedy_ops.h
! a35c2255ea5214961ff4081b94e09730  libstdc++-v3/testsuite/util/testsuite_hooks.cc
! 2aee120d46b5f35fe78cf5e966badf9d  libstdc++-v3/testsuite/util/testsuite_hooks.h
! 625d778f1f66c43960648fdd07b7b7bc  libstdc++-v3/testsuite/util/testsuite_io.h
! 9b8f11313b72d34bc1517462349bfa39  libstdc++-v3/testsuite/util/testsuite_iterators.h
! 11ae45f476a871567cb1b477497ee4aa  libstdc++-v3/testsuite/util/testsuite_new_operators.h
! bbaafce7b0ab41c5ac26c28a18c1dec6  libstdc++-v3/testsuite/util/testsuite_performance.h
! eeddd49c5e0a43c6ba48826801307e3f  libstdc++-v3/testsuite/util/testsuite_random.h
! 49face3c31126da3ec67e58e2cc8a00e  libstdc++-v3/testsuite/util/testsuite_regex.h
! d706579031a63c180248a9f8f73f0a68  libstdc++-v3/testsuite/util/testsuite_rng.h
! 6a64053bd0587e795259515dbae7b5f9  libstdc++-v3/testsuite/util/testsuite_rvalref.h
! 7c34acacecb8c52c8527c05b7f7e5759  libstdc++-v3/testsuite/util/testsuite_shared.cc
  529d22babbd76400264568f2be0d13df  libstdc++-v3/testsuite/util/testsuite_string.h
! abd3b6f8114b664454ef48f05d7112b1  libstdc++-v3/testsuite/util/testsuite_tr1.h
! 8a7ff78e20c170bc7e06e28ee78d2d12  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
! 2e824852870b4611099b99dcf89b981b  libtool.m4
! 8d6c7f95d77131088936948e299a43f4  libvtv/ChangeLog
! 6250d856c456725aa05b120686976895  libvtv/Makefile.am
  b1170aae9472f26fdc8326737dc22aba  libvtv/Makefile.in
  3b765c4f4a0a0f606db1472bce2b8d29  libvtv/acinclude.m4
  84c8143a9310ea291315dcd0c276df5d  libvtv/aclocal.m4
! 3eed93867e11860304a348397008d035  libvtv/configure
! cc9f6a09cf2db980b7d7119fd0748406  libvtv/configure.ac
! 026d3bef66fa0462fd7d25cc3167ff9f  libvtv/configure.tgt
  2caccd848c579fcddd2a8c8106cfaff9  libvtv/scripts/run-testsuite.sh
  09a6150d1619f2508d7844f860b3382c  libvtv/scripts/sum-vtv-counts.c
  4835ec70e1fbcd9acd3c280c0060afa4  libvtv/testsuite/Makefile.am
  fda4739e0005be93900b671246d786ff  libvtv/testsuite/Makefile.in
! 8efd5b4b14988c1ceaee293ac878e9d0  libvtv/testsuite/config/default.exp
  f2f173b97a24edb63425420b6dafac67  libvtv/testsuite/lib/libvtv-dg.exp
  b01596489f4e825c77d9429f5bd51424  libvtv/testsuite/lib/libvtv.exp
  dc26824f08dd227e0cba7e7ebc8f4d3a  libvtv/testsuite/libvtv.cc/bb_tests.cc
--- 132268,134271 ----
  ccd8d09610bb1187b124063e4b7d62b2  libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst
  ccd8d09610bb1187b124063e4b7d62b2  libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst
  d41d8cd98f00b204e9800998ecf8427e  libstdc++-v3/testsuite/data/wostream_seeks-1.tst
! 516eeabbc099f74b6c068d49c67a485f  libstdc++-v3/testsuite/decimal/binary-arith.cc
! c2754de4aa8696b8036d4c0c3e9f3e94  libstdc++-v3/testsuite/decimal/cast_neg.cc
! e1fec4fb56e33656126897adb0161b8b  libstdc++-v3/testsuite/decimal/comparison.cc
! 1910cbc379d1211fe9684f250684376c  libstdc++-v3/testsuite/decimal/compound-assignment-memfunc.cc
! 25b9558e66c98e69723725d96d5384ac  libstdc++-v3/testsuite/decimal/compound-assignment.cc
! a7245eac0dc17bf7d1ada58ffc03a363  libstdc++-v3/testsuite/decimal/conversion-from-float.cc
! 534e94a113094be92f50024b0548f639  libstdc++-v3/testsuite/decimal/conversion-from-integral.cc
! 8f8094bfa1e93078fdf5bfad0c1cf4a6  libstdc++-v3/testsuite/decimal/conversion-to-generic-float.cc
! 436de9da19cae822d7c1bc04cc709a91  libstdc++-v3/testsuite/decimal/conversion-to-integral.cc
! 9a62ddcf8b506674345ee1987efba0df  libstdc++-v3/testsuite/decimal/ctor.cc
! a7c8fd5c48dd10275e65a0815500d3ba  libstdc++-v3/testsuite/decimal/incdec-memfunc.cc
! 63c695621a9f7d791e9d25d60a433e4d  libstdc++-v3/testsuite/decimal/incdec.cc
! 5300eda63cb91f7d2a2ce973d07f874a  libstdc++-v3/testsuite/decimal/make-decimal.cc
! a5febb7da036ba69f176fb01a0f61749  libstdc++-v3/testsuite/decimal/mixed-mode-arith_neg.cc
! c84ac8879d56f54be6170fd7dc5a8ecd  libstdc++-v3/testsuite/decimal/mixed-mode-cmp_neg.cc
! 6399aa03d23fc60ec3594aeebfe04f72  libstdc++-v3/testsuite/decimal/operator_neg.cc
! cb1163ea7e874ff4488260540a2a6f14  libstdc++-v3/testsuite/decimal/pr54036-1.cc
! 2699a4cae75c4c8a0dfe8c218ddcdd06  libstdc++-v3/testsuite/decimal/pr54036-2.cc
! 52b7dcf0fb073eeec75b5c72b8e0ad62  libstdc++-v3/testsuite/decimal/pr54036-3.cc
! a23ff432f43b6319e7f9200f672418d9  libstdc++-v3/testsuite/decimal/pr58815.cc
! 8e4ffb76cbca7392ad9bcc9558508e20  libstdc++-v3/testsuite/decimal/unary-arith.cc
! 4ff6921cc44e52b17465a825d2a41d6c  libstdc++-v3/testsuite/experimental/algorithm/sample-2.cc
! a2dd153c02b22fc69215f106c60d8c4c  libstdc++-v3/testsuite/experimental/algorithm/sample.cc
! 4b58bc750c2d0e3d9bf3bc617f69f9d2  libstdc++-v3/testsuite/experimental/algorithm/search.cc
! 84d43b255910c9089f4558252299c525  libstdc++-v3/testsuite/experimental/algorithm/shuffle.cc
! dd0fb9146c229c391d5aacf222cff252  libstdc++-v3/testsuite/experimental/any/assign/1.cc
! 84e8a5f65a487da0ae8c39c2cf2d3aa1  libstdc++-v3/testsuite/experimental/any/assign/2.cc
! 0c728ce0d65f20bd9487e7a943213d59  libstdc++-v3/testsuite/experimental/any/assign/exception.cc
! 37d04db089283e152e86c4ce596cc723  libstdc++-v3/testsuite/experimental/any/assign/self.cc
! 01fa8c094ec0ab5619cd7e002215460e  libstdc++-v3/testsuite/experimental/any/cons/1.cc
! 5416e2b9e55cfd63ade9e31ed5b1cb6f  libstdc++-v3/testsuite/experimental/any/cons/2.cc
! 953ea0c00790a91cdc3ed0b0f6a28065  libstdc++-v3/testsuite/experimental/any/cons/aligned.cc
! 32cdcfbaad80e84a5918a6e8c7dcd106  libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc
! adef7f7a1605752093d06d98a7219158  libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc
! 3dc37489dd65c42d1f33cb2ce1d0b400  libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc
! a96c75503f70fec6091fe7a58189ac25  libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc
! ab41b5dcc43f802014b86c64d572a2b0  libstdc++-v3/testsuite/experimental/any/misc/swap.cc
! 84524dda386a67df935ded48e501c6ff  libstdc++-v3/testsuite/experimental/any/modifiers/1.cc
! d394c2c7b00c588bdaed93ff4221183c  libstdc++-v3/testsuite/experimental/any/observers/type.cc
! 53c2dbc5176aaaf96a8b6bb637e8123a  libstdc++-v3/testsuite/experimental/any/typedefs.cc
! 87509d6dea9ddc50347d2ba2482d765a  libstdc++-v3/testsuite/experimental/array/make_array.cc
! 33d2c4667286e2a4a6069dc9b7b0b082  libstdc++-v3/testsuite/experimental/array/neg.cc
! 6c87999b8c8ad337449642653c31be43  libstdc++-v3/testsuite/experimental/chrono/value.cc
! 37a0c560aa30d1b00e15bbfdd92f1619  libstdc++-v3/testsuite/experimental/deque/erasure.cc
! 188e3c11b011fe3f38bba18280fb6fcc  libstdc++-v3/testsuite/experimental/feat-char8_t.cc
! f34b212f23de6dcc11255fe68924e1e3  libstdc++-v3/testsuite/experimental/feat-cxx14.cc
  f754118861b851f83334813d834cb200  libstdc++-v3/testsuite/experimental/feat-lib-fund.cc
! 490e699866a0afc805e801dfcd7102dc  libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc
! affd44df47a6f466b71d26637038d217  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
! 9f02c90fb45915ed51e3b5fc2dff19df  libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc
! 01bcf48cff8913b398ff1ad6b86481b4  libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc
! 92c93df8b10926f3221cb48cd1d10993  libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
! 43ec43ea7c1e2d56774b386974f2bcfd  libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc
! 5f6b0668f68666545619552a8156304e  libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc
! 3e7a4dff246b26a4980ade424540a024  libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
! 3778ee7aac6d742cf30a1a0b1261efa5  libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc
! 2286877b6c223a67d1ee1ca76dee6c59  libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc
! 04cbd205862315ca4bc7166ea5d326c9  libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc
! 4105a8dd62fd05902829c925b0e5a54b  libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc
! 8ec5bb7e9cb8d6ff34b6602ab5a8b878  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc
! 124caf76154b94e6a5b1ece1bd9bb1e6  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc
! 708f758d8fff81d5bce1dd9525f58d25  libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc
! 4a32621a9df3de84e8cf31b5db5ebb05  libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc
! 6d7cf2cca9cb0a5185c47d5d3c18dbf3  libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc
! f691b4d741a58e928ecae6ba92c5aedf  libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc
! 6f15ca3b4d6d2781430a66dd05adc1c1  libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc
! 79afa5d352b88d7d1abe46e9d9f4ac22  libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc
! d36cc04e0dc02cac98563042ed3506ba  libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc
! 0d032918fb304ca47492fc7b81d66c92  libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc
! 8dfb2e37f163f51c828d46b906d8466d  libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc
! 37fb018bb51b60878ba7b54b488a369d  libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc
! b8d1d4fe6560d29cd9f99177502c855f  libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc
! 4456f08d27f488532c5cba8eeb0026c7  libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc
! cc7125bc60e34f68540efd871dda5640  libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc
! 70871937b64c5b4523eb8717ee956dd0  libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc
! 3bb0215d6834f3e3070b6ea1bc38486f  libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc
! 3eb7b7ffa06f78daf7eea828fc4d7d6f  libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc
! 6d353d9ded4c460a24b4fcd62618fdcf  libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc
! 345628ead60c6094fefe8b7916ceb564  libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc
! ba96c96e39c464f5314b33a61dfdefd1  libstdc++-v3/testsuite/experimental/filesystem/path/compare/compare.cc
! 1091b8690897ed9ab62fbefdcf505667  libstdc++-v3/testsuite/experimental/filesystem/path/compare/path.cc
! ba07232a1772681c7223e5d244165c9b  libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc
! 8cc01c2bd70482e4228fdd50255efa6f  libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc
! dfe8fa5ece3b1045a958f3f2744f6537  libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc
  c06b01e19066f0d4ffa4faa5202f4e3e  libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc
! af566a6e9dca44de14ad8f5ec825186c  libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc
! 9036719c335e605196831ccec902942a  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90281.cc
! 6a97f79a857cd806808b47973f5eeab9  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc
  bc0c58037ed5ab6415d0899ccc8799af  libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc
! 367240ce5278016d6611d393dc976721  libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc
! 552df30edfe997123984a5bee809d0a7  libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc
! 850de3f9a95725a2e9cd31bae1a2b70c  libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc
! f3f0028458166ddfab8f69e717bc6a45  libstdc++-v3/testsuite/experimental/filesystem/path/construct/range.cc
! 768144627429c64582c85fe8ad92fde8  libstdc++-v3/testsuite/experimental/filesystem/path/construct/string_view.cc
! ab3cda30bf9a3a4046fad19a0f4c1603  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/extension.cc
! efcd43b9b3cd1afad38bcbb03e728571  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/filename.cc
! 527f6ef6cc2aeacdc90a813a7aae62d9  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/parent_path.cc
! 65c1dab514dbde099089b545bf3145e6  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/relative_path.cc
! 1e29fdc072ffbb767219e6806d94d2bc  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_directory.cc
! a5007968bf93eb4d90eebfce5da0f300  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_name.cc
! 78c24f65213dc0ee79b92f60de781630  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_path.cc
! 6271e5788df29ff8bf447027a2cdaf3a  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/stem.cc
! 5abb8b16194a8741e6b8a1572e91deb7  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc
! dbe8b303373dc5f789f9704ded0b2c31  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path.cc
! b11c36d0860c06799dc191b8b4dbb2ac  libstdc++-v3/testsuite/experimental/filesystem/path/generic/generic_string.cc
! fd5a860ccb8249cce18ece300746b738  libstdc++-v3/testsuite/experimental/filesystem/path/itr/traversal.cc
! 618472eb98f90223e69df8028e7dcb33  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/clear.cc
! 2cb294e115a39b784fa27d57ee02ac10  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/make_preferred.cc
! d9a09dac43ff798098e3a2a842f70a3d  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/remove_filename.cc
! 18690b3cbba50f53aa0d401b90109ff7  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_extension.cc
! db4ee59e04c8266009ef2e15b51d91fc  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_filename.cc
! 4e0c7d7dc3c8ba61c5d7ee26cec5a303  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/swap.cc
! 4e117acd9b409a8d5faa7a60b6cb832f  libstdc++-v3/testsuite/experimental/filesystem/path/native/alloc.cc
! 9dd0c350cd1f231c2cf27e190e15b473  libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc
! e2fd417cb75d9f1a0c40cb1660296781  libstdc++-v3/testsuite/experimental/filesystem/path/native/string-char8_t.cc
! b6a539ca6dffe06f195dcbdc457eaa17  libstdc++-v3/testsuite/experimental/filesystem/path/native/string.cc
! 8ef741019ef1aa28b1f61c9b8de96038  libstdc++-v3/testsuite/experimental/filesystem/path/nonmember/hash_value.cc
! 3b68f49aacc291aa7cf5e62648a79d94  libstdc++-v3/testsuite/experimental/filesystem/path/preferred_separator.cc
! c90bc6d314335104476809c69374739f  libstdc++-v3/testsuite/experimental/filesystem/path/query/empty.cc
! edee04ed688a8fd56604e8e8919bbc9b  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_extension.cc
! e10b0a9f6e6fd08fc09224881ec8bff5  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_filename.cc
! 897be1854386c48c8ac6aebbea2eeaa5  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_parent_path.cc
! a11f30ee25df0a059a17ca706d2166cb  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_relative_path.cc
! df9b895dfc35be056ba1649d90d95277  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_directory.cc
! b2d178ca08bb9b02827e939e77de0500  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_name.cc
! ff480bc840b148b84b424ff5743a9a95  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_path.cc
! e4a9231a3325c67ccd074f860b53abe4  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_stem.cc
! 5bfe3fd444b23dffa62714361296bfec  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_absolute.cc
! 85a1c4e0c679ba7aaa2c77e2e02a283c  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_relative.cc
! bb61877e6e05188fb7f1d1d41ff67b68  libstdc++-v3/testsuite/experimental/forward_list/erasure.cc
! a33fd156a0c917c1c6c44ffda11d8699  libstdc++-v3/testsuite/experimental/functional/87538.cc
! 6ad6915c3bdc7b387f5ea261d9917eb2  libstdc++-v3/testsuite/experimental/functional/not_fn.cc
! e9a3c70eb2ff298f50c7d5ef6ac6bd01  libstdc++-v3/testsuite/experimental/functional/searchers.cc
! 3627a8fce414bf5183114e6f4d92fce4  libstdc++-v3/testsuite/experimental/functional/value.cc
! 438b058e9374f5375bdc531ff356dd8a  libstdc++-v3/testsuite/experimental/iterator/make_ostream_joiner.cc
! 11e294792d331afd10d33673a0ea8944  libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc
! bd6e280fc47ff9c29d90137dc2792ee6  libstdc++-v3/testsuite/experimental/iterator/requirements.cc
! fa02909e76d5e171d9b40adae230dabb  libstdc++-v3/testsuite/experimental/list/erasure.cc
! 8937d26052cefcddbb45546d3d72957d  libstdc++-v3/testsuite/experimental/map/erasure.cc
! 39f17418467664274f4539e5a056e6af  libstdc++-v3/testsuite/experimental/memory/observer_ptr/assignment/assign.cc
! 5ba37d924bc9af2df2629d251aab9d4c  libstdc++-v3/testsuite/experimental/memory/observer_ptr/cons/cons.cc
! cd426da31a88efa280bece2cc0bb6b78  libstdc++-v3/testsuite/experimental/memory/observer_ptr/hash/hash.cc
! a6d41b050f7c60926d196f2084647b72  libstdc++-v3/testsuite/experimental/memory/observer_ptr/make_observer.cc
! e3e3da7b4600fa7010084c35e8140d99  libstdc++-v3/testsuite/experimental/memory/observer_ptr/relops/relops.cc
! 58c29f565a3f10e5a52a611831d4f8ad  libstdc++-v3/testsuite/experimental/memory/observer_ptr/requirements.cc
! 6f4c213a7074987ccc5f650f2c33740a  libstdc++-v3/testsuite/experimental/memory/observer_ptr/swap/swap.cc
! 6f956835416e434f9cdc134f0279bf3e  libstdc++-v3/testsuite/experimental/memory/observer_ptr/typedefs.cc
! abae1b9fab2e9b4162da5bf48c8ce0a6  libstdc++-v3/testsuite/experimental/memory/shared_ptr/assign/assign.cc
! 4c18f805b48ca8d3e66544516aed237a  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cast/cast.cc
! a7583ea412de47395596e7831a719422  libstdc++-v3/testsuite/experimental/memory/shared_ptr/comparison/comparison.cc
! b1790c90d1068983e242cb6b3fa34ac9  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc
! c06d858ba6f5401050ba153162f2f6dc  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc
! 0074d1251cccd4898251f963907c9c3a  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc
! 32848f4a858003c582dc5da5bb65918e  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc
! 1c89145db15b68cda3dd80a42bff2e69  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc
! 5c5970cd29c136cb3d755f15ff717cf6  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/enable_shared_from_this.cc
! d20690a23b45d655329feb4637d367d4  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc
! 6b97173107c0a521c32976a68c7509c3  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc
! a314ced7c399bec1a62ac55e1d3f5a43  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc
! 650a7bd1a63e9ae96c05cb5840b7dca4  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/torture.cc
! a51178bb332ee8228fc33556f6d41c49  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc
! e1d4b411f7cf08482135603a9d56b2ea  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc
! 843e63913effdb03fb7e4f316db7af6e  libstdc++-v3/testsuite/experimental/memory/shared_ptr/dest/dest.cc
! cfa21ca72e32c666be126165a348134e  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset.cc
! ef1c8f4f7b3f19a3bebbb78d40d4fefa  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc
! 72de3a9c204b06196d63c1d005e7becd  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/swap.cc
! c75ddc931685176099259c3c505578f8  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc
! b71e33814bdc18b8064e5cbcd54f7d8d  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/operators.cc
! 9641835cf1b7476610b6be4271ea6c1f  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/owner_before.cc
! 8630cbcbfdfc9d5b1a8f465002fac855  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/use_count.cc
! ac9046ac92f5930a8a2c51b5bef53377  libstdc++-v3/testsuite/experimental/memory_resource/1.cc
! d33a6f078d9ce70ff56e4e27a6eb91c5  libstdc++-v3/testsuite/experimental/memory_resource/70966.cc
! 4cc2e29b1d267fe87dbe9dc486c54668  libstdc++-v3/testsuite/experimental/memory_resource/new_delete_resource.cc
! 1e0c9f1ac15332275005b3823879e468  libstdc++-v3/testsuite/experimental/memory_resource/null_memory_resource.cc
! 95ba58e6a6d0b9229fef873c16e37696  libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
! 2450a6c34421cec2b2cef2cf194d3160  libstdc++-v3/testsuite/experimental/names.cc
! 00b86d58e696a6eba510a1389afbd000  libstdc++-v3/testsuite/experimental/net/buffer/arithmetic.cc
! f591cb02f022c8c06f8298a867c89ecc  libstdc++-v3/testsuite/experimental/net/buffer/const.cc
! 60819500fe46be4bb4be4ba768522d17  libstdc++-v3/testsuite/experimental/net/buffer/creation.cc
! ffd127bc0c341e1a8ffb10b3f9168823  libstdc++-v3/testsuite/experimental/net/buffer/mutable.cc
! f20707a50d9c100ece45a9ab5c50372b  libstdc++-v3/testsuite/experimental/net/buffer/size.cc
! dcea1da4cc2c9ba90dc5aa5863900722  libstdc++-v3/testsuite/experimental/net/buffer/traits.cc
! ffa8a5a47ad3cf9103c4dafbfde7b8ce  libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc
! 89c40946965df4431d12cdd521f1e19c  libstdc++-v3/testsuite/experimental/net/execution_context/use_service.cc
! c8b43bb7bd07c41486431d2ba06d360e  libstdc++-v3/testsuite/experimental/net/executor/1.cc
! 0c7593ad5936f76bd011783766a0a456  libstdc++-v3/testsuite/experimental/net/headers.cc
! f77789a18aecafc6f0d5e6c29393de3f  libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc
! 8515e32a82ccd07947b2d738e5a561f7  libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc
! 807117cbe64f77d9574dd4c5abdb9353  libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc
! 01a7048ff8b76e3953ef4e544956d0a7  libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc
! e9cc185b9c85c45a9731e23dc6c65ae4  libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc
  c5933a59fa35123b5f7476b94a3b153c  libstdc++-v3/testsuite/experimental/net/internet/endpoint/cons.cc
  2ebb41182bd0ccc894c6ea518d3ea2eb  libstdc++-v3/testsuite/experimental/net/internet/endpoint/extensible.cc
  ec468421255febe9f30c0b08480f9b93  libstdc++-v3/testsuite/experimental/net/internet/network/v4/cons.cc
  effbee31a73742de94b337a743054276  libstdc++-v3/testsuite/experimental/net/internet/network/v4/members.cc
! b289bacb72f52125d6995bdc98f9a336  libstdc++-v3/testsuite/experimental/net/internet/network/v6/cons.cc
! 8a397cbc36ef94b1f642dfaa70d5eb23  libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc
! fedfb02508c56c0b3da088ad03384176  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
! 80420cd4cae95346d4b4b7b3c228936d  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
  760dec58bec2534cd56103a2710b1e16  libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc
  47ab303b0324b578953893e188a1c4e8  libstdc++-v3/testsuite/experimental/net/internet/tcp.cc
  31837180dee34f479c2c7eaafac7b04a  libstdc++-v3/testsuite/experimental/net/internet/udp.cc
! 7da5a885d165aa4852258bd8c5f9283d  libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc
! 8f65b6c0de57cce2be5cb3074c48002f  libstdc++-v3/testsuite/experimental/net/socket/socket_base.cc
! 777c41a94f602cc4d2ae3010e81fa1a7  libstdc++-v3/testsuite/experimental/net/system_context/1.cc
! 02dfa28d6ff8dfb6ba6dc1076d92ed60  libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc
! 5dbe3b7e0cc1c4aacb417162777fc673  libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
! b6c1ecb6459bd82f37f8d54beeca63b0  libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
! 6b6159970397e10355293691e7e1537e  libstdc++-v3/testsuite/experimental/numeric/77801.cc
! f97256bab708393ae015bafb1da7ca86  libstdc++-v3/testsuite/experimental/numeric/92978.cc
! 3f00a3d44bc9e30301b7e308484e6af1  libstdc++-v3/testsuite/experimental/numeric/gcd.cc
! 447e67b4bf794ce87715c9a75cc6a291  libstdc++-v3/testsuite/experimental/numeric/lcm.cc
! 713149b786e2bde7d9f1ebd994122a43  libstdc++-v3/testsuite/experimental/optional/77288.cc
! 9ed3992aa11a9bd9de0cb4e017496f16  libstdc++-v3/testsuite/experimental/optional/assignment/1.cc
! 39dbee18d8624bda450ec27e0c6c8458  libstdc++-v3/testsuite/experimental/optional/assignment/2.cc
! 1cbc2353426ff299200a4c5eaa18a3fa  libstdc++-v3/testsuite/experimental/optional/assignment/3.cc
! 8a2849566a3783ff2ef6248b2e312500  libstdc++-v3/testsuite/experimental/optional/assignment/4.cc
! 54adc42d88a8ca484c0dd1fdbc266f2e  libstdc++-v3/testsuite/experimental/optional/assignment/5.cc
! f7b40a872b1d205c7cc5debbb319c6eb  libstdc++-v3/testsuite/experimental/optional/assignment/6.cc
! a2f3e56445130583d68347441a13d06a  libstdc++-v3/testsuite/experimental/optional/cons/77727.cc
! 6870d82c4b1e875418286204e6bddeb4  libstdc++-v3/testsuite/experimental/optional/cons/copy.cc
! 91f4060d01831534c55cc6eaaf6f02b6  libstdc++-v3/testsuite/experimental/optional/cons/default.cc
! bbdeeae83f76da6681d67bdd88628bdd  libstdc++-v3/testsuite/experimental/optional/cons/move.cc
! e8a722dd57f90d4fc51bcdf01510d4c1  libstdc++-v3/testsuite/experimental/optional/cons/value.cc
! c035d0afc0d8c87058028348549754e2  libstdc++-v3/testsuite/experimental/optional/cons/value_neg.cc
! d069fddb48e6073e0303e9f4b6eeb147  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/default.cc
! 3c00ec5d7c075a4ce3a2bb26a7d9dbb3  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/value.cc
! ad75f821ea70801dbf4c9fcfe1314992  libstdc++-v3/testsuite/experimental/optional/constexpr/in_place.cc
! 3a89c2fcfab548798c50fe173f6b5d6e  libstdc++-v3/testsuite/experimental/optional/constexpr/make_optional.cc
! 0916246303c1f816f71f3f72003e4709  libstdc++-v3/testsuite/experimental/optional/constexpr/nullopt.cc
! 463471309cd86bcfc83377d260a88434  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/1.cc
! aac4263db94d99b89b9dc4a90bd6878f  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/2.cc
! 215610e798ef993f14dc7f9c37943cb1  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/3.cc
! b7a42ab84c80e20d00753ce5ed4e1a8c  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/4.cc
! a72f5a0df59153e67727d97b56c05ba0  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/5.cc
! a7ade8a780a635d57b50a0f4af090ff8  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/1.cc
! 856ac67d96bf3973ee411874935f341d  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/2.cc
! f51189f15607d647662323116a269ab2  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/3.cc
! dcf281044d19d5c47c5284f86143f6d3  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/4.cc
! 75a6cee0d53d6697e2703883480ad196  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/5.cc
! 4fb3f3c9c62b5538473ecba1fd36ff28  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/6.cc
! 5761456f6613175dbe07273bd9c7e982  libstdc++-v3/testsuite/experimental/optional/in_place.cc
! 5cf6ca4e79c8e815fede0ec6071918d3  libstdc++-v3/testsuite/experimental/optional/make_optional.cc
! b18a3f35e614d27f6b78be2779255529  libstdc++-v3/testsuite/experimental/optional/nullopt.cc
! 486167f8a6bcca0036c3240518506266  libstdc++-v3/testsuite/experimental/optional/observers/1.cc
! 87629bab56f97857398cf1ffba1650b4  libstdc++-v3/testsuite/experimental/optional/observers/2.cc
! 7da75cfb57a160a6b5284a46174f88c4  libstdc++-v3/testsuite/experimental/optional/observers/3.cc
! 822e36e8656842ba3546150ff1b2b579  libstdc++-v3/testsuite/experimental/optional/observers/4.cc
! 160a07e1c77b741f57340d7e0ef09e21  libstdc++-v3/testsuite/experimental/optional/observers/5.cc
! 9b01efb44709d7ffdc228a2a8d48bf2d  libstdc++-v3/testsuite/experimental/optional/relops/1.cc
! b041e707a633492ba9d26794937b6c28  libstdc++-v3/testsuite/experimental/optional/relops/2.cc
! ee87f258b0fe10fc3cc9c69cb49d3d60  libstdc++-v3/testsuite/experimental/optional/relops/3.cc
! 6e8a04d2e29433f9480d382864227066  libstdc++-v3/testsuite/experimental/optional/relops/4.cc
! bfa9317f4e7fc8dfd10b6180e6483190  libstdc++-v3/testsuite/experimental/optional/relops/5.cc
! b8121cd7fa60b7227268c92134f2ec87  libstdc++-v3/testsuite/experimental/optional/relops/6.cc
! e65d9068c19a685aaa182e5717bdd56f  libstdc++-v3/testsuite/experimental/optional/requirements.cc
! 1dad8d881991978d2a29116679c88493  libstdc++-v3/testsuite/experimental/optional/swap/1.cc
! 034a582277abf45b43faab644000eb89  libstdc++-v3/testsuite/experimental/optional/typedefs.cc
! 3f227bc1f298357e436d5d2d1c37b622  libstdc++-v3/testsuite/experimental/polymorphic_allocator/1.cc
! 5cae0ae8c704caad406fe3798ffedd81  libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
! b9af7a571d5eaaa6ef34763c35fd7d25  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc
! d8d2eccd1435586e41710d2feebae1c4  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc
! 9312548f664201ed773936c48c086889  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc
! 4dd1bf4cd172f5eaf083fd1d55201698  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc
! ae3d1f92780049bf67cf133361d29abc  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc
! a5e3524975e05e64443f00b970899a4b  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc
! 7c67db18140b6fd0c6a81bb04df0457e  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc
! 5f395f142dfc85b7166a7b89c0196ef8  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc
! 089360b991ecc94e30ba27bdda9a1a47  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc
! 5f4ef486f53ceae719a18c951cd74eb9  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc
! 82a36e4711006720583025580105e8db  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc
! 836ef625bb0f30d368cff1082d99d270  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc
! 30c6afdcc811fcce344eaeeb3b6b0c61  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_set.cc
! 7b22f1e2e23bada2d7830f71896291f2  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc
! 706361eabf5e9e5a9cc9eb814d2c4af3  libstdc++-v3/testsuite/experimental/propagate_const/assignment/copy.cc
! c89839207e0babb6d6ddcc2a14940475  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move.cc
! b1649d67f6501b7ed6b59a125e95efec  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
! eb774e949f401323c019daeb0a35f88d  libstdc++-v3/testsuite/experimental/propagate_const/cons/copy.cc
! 32c5b720510072f70f375fe900c4aeee  libstdc++-v3/testsuite/experimental/propagate_const/cons/default.cc
! ddb9f18e2ef3c5586bc485e53ce0617e  libstdc++-v3/testsuite/experimental/propagate_const/cons/move.cc
! 86803d701b4f4b15bfdc6c153ccf92d7  libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc
! 2e9897976662a6a2d5f7f0231a4217a9  libstdc++-v3/testsuite/experimental/propagate_const/hash/1.cc
! 0ba3859a0d3e05064e4c52269efd285f  libstdc++-v3/testsuite/experimental/propagate_const/observers/1.cc
  04b09dce4e740e5b8a2e2620eb6b3ef4  libstdc++-v3/testsuite/experimental/propagate_const/observers/107525.cc
! 2b01b2f2fd9ad4c731a1dddd039ba570  libstdc++-v3/testsuite/experimental/propagate_const/relops/1.cc
! b2ee3fa44c8407e56099123ffd2390c5  libstdc++-v3/testsuite/experimental/propagate_const/requirements1.cc
! 2ad66ded2adda652ce596f22f25a6e39  libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
! bcb82f93d055961d43ca32692acf3cff  libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc
! 4b93c641557e9ab53e8fc0ab80b4d3ba  libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc
! 2f072b9556f1500d379d644e7ecad640  libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc
! 11b29db57a0e3ba43f7a6b30012f9e79  libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc
  f622008c5ec7680a2ac920136d22446f  libstdc++-v3/testsuite/experimental/propagate_const/swap/lwg3413.cc
! 72d6f91270b24452a08b38315dd5365e  libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc
! 926ae755b5001104ff1265489a621615  libstdc++-v3/testsuite/experimental/random/randint.cc
! 03d474b16204d94d7dd6656ce59b5fb0  libstdc++-v3/testsuite/experimental/ratio/value.cc
! 18f1edf3ab8b0c093f8d5f79063f64d3  libstdc++-v3/testsuite/experimental/scopeguard/114152.cc
! 9196640538c8c2a7906a7a61af7e0409  libstdc++-v3/testsuite/experimental/scopeguard/exit.cc
! 256696a1234796126b8e5234f58103b1  libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc
! f225333d3063d4bcaa8d22f44576a8dd  libstdc++-v3/testsuite/experimental/set/erasure.cc
  d6f0083479e5097ec27151965ff89e5d  libstdc++-v3/testsuite/experimental/simd/README.md
  2c666451450a60415a52ed94723ea1a6  libstdc++-v3/testsuite/experimental/simd/driver.sh
  2653d8586849bef6493c2e5b408777ae  libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh
  03e8f51d7ef48b8a37325dad25e551ed  libstdc++-v3/testsuite/experimental/simd/pr109261_constexpr_simd.cc
  40516291f4d97883db23570b8f0c38a0  libstdc++-v3/testsuite/experimental/simd/pr109822_cast_functions.cc
! 4abe9d75da280cd5bcef090bd6898210  libstdc++-v3/testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc
! 3e961970c7fe3e69976dce41fddd9c4d  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable.cc
  3718cfdb2ca6d6f1e0fb585a7350e074  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable_2.cc
! afa8f491cd900276be54b014f00662fd  libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
! fd19b38ef277c6083a0bee8c3b14c0ea  libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc
! 4fa3713ba286da7bcdd58ef6041071df  libstdc++-v3/testsuite/experimental/simd/tests/bits/conversions.h
! eda11a21a6a432499ebb6b43743aac6a  libstdc++-v3/testsuite/experimental/simd/tests/bits/main.h
! efe3a49ce9344aede87b25916b214e75  libstdc++-v3/testsuite/experimental/simd/tests/bits/make_vec.h
! 24843dcbd95330d97d0bf60c9e1c3070  libstdc++-v3/testsuite/experimental/simd/tests/bits/mathreference.h
! e1d57f3e7ce571e632173df379e6d8e4  libstdc++-v3/testsuite/experimental/simd/tests/bits/metahelpers.h
! 4277769251ff496c56aab1dd05df4486  libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h
! c06cabe123ccc2d94723061ce076025f  libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h
! 370603caac3d752098f5d54267c5bfb6  libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h
! 4e24710acfe7b2d1fb7f6145e2da1950  libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h
! 94757d8a1078d2300f60e06d4b5eff22  libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
! 555ec4467d71c5589dae3e8828e7b5cc  libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
! 13b16433b3d00accf9256bd61dba394f  libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
! 9c757f90994752dbc22b25cd0d6f64e7  libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
! 22996b1a85454f69656afa3f0135603d  libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
! 5447a25fc7938ed3c9536ba6f8a64382  libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
! de575075e584830625efd6ad4893fef6  libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
! 0222600c2ee8943561c4ce555d048d9a  libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
! d84adcfc2f26d1cd98054604aed2495b  libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
! cbf394cf8e55fabaffb9867ed595b2cd  libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
! b0c9fe6eee6617e4bf74fb9ffc652a72  libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
! bec46d931379c37366e273a3b5e2e4d1  libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
! 452a584ebcc5578bf262dcc1a603e159  libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
! bea6b9132e2e42b08ebda0bedbe8d5d5  libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc
! bc0482cb65c4e139d0f0d429f38d7a8e  libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc
! cad789e0b5faa8fcc5b52c4dfe1b6bdd  libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc
! 47bacc2b4c739e36e510d11d28606724  libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc
! 84d9baebc9c351aa97af9bf6a8076206  libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
! f6a98f333bcf78f233b9462f19f9aa86  libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
! a3398c918f36f9e5a0992a467c21c6ce  libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
! 346aba77ed98edbe9b9c1ba97cea523d  libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
! ae8371bfe6affbe2a4178419a18d1ef7  libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
! 5d9815ceaad1f0df352691c80b43debd  libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
! 25e7a7507cb9f72e732fef012701da12  libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
! 67d76ba48c00fcf9c034fa39005907c6  libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
! cddbb0157e160fa621192721155dba11  libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
! 23df0fa43883722ed48f7a95e5230bcb  libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
! 545e4fd1ed6ee2c70980722ae22259cc  libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
! a40cd96cd2e94180dbbbe8b8b55992c4  libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
! 1f22f3c54ea8964ab6df8d7fd55c4ba5  libstdc++-v3/testsuite/experimental/simd/tests/where.cc
! f0416b05f0296272da7f75ae013a26e1  libstdc++-v3/testsuite/experimental/source_location/1.cc
! 8644f4f1c9a0d7b59077f6417da203fa  libstdc++-v3/testsuite/experimental/string/erasure.cc
! 7128e2d84a6a6524f6cb76969b7b1f3f  libstdc++-v3/testsuite/experimental/string_view/capacity/1.cc
! 8faaf282d51e444cc37b6a6abba89af6  libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc
! 26fbd9036a12166e1056c953f0e37da2  libstdc++-v3/testsuite/experimental/string_view/cons/char/2.cc
! 535bf955888216ca562396dbf98dac0c  libstdc++-v3/testsuite/experimental/string_view/cons/char/3.cc
! 54e859359161804392acf881bb6399d8  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc
! 459cc57216788e52e49ab2459a680301  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/2.cc
! 772804fccda4e8ec0e7fa020a238ea2e  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/3.cc
! fc4ae83d20ee2a313fc9674895be986c  libstdc++-v3/testsuite/experimental/string_view/element_access/char/1.cc
! d840b159d2e305dd65946a77e7d4fec3  libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc
! e7558edb710ce0efe8d2e6068a7b4c48  libstdc++-v3/testsuite/experimental/string_view/element_access/char/empty.cc
! b117c26f44048f13115f98b4496b7ca6  libstdc++-v3/testsuite/experimental/string_view/element_access/char/front_back.cc
! 2640f808d33494318553434d92d27e6e  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/1.cc
! 9df8f6276c0bcd6b3e676c1c04d3b5a5  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc
! a8455caa89e70fffd3a18dce0652f36d  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/empty.cc
! 14b58f3edbd4371be818f73e0f1bcaa5  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/front_back.cc
! ca350cf216a2ab5a87ab507fa06b69b2  libstdc++-v3/testsuite/experimental/string_view/include.cc
! 3a76ebacad4cae15870f114b016c1ceb  libstdc++-v3/testsuite/experimental/string_view/inserters/char/1.cc
! bd9733512da7d70393e58d9060b5c7ca  libstdc++-v3/testsuite/experimental/string_view/inserters/char/2.cc
! 6d3768476b4e92744d09b6a1b7de9dc3  libstdc++-v3/testsuite/experimental/string_view/inserters/char/3.cc
! bac7ac0fd4715f941c44e9025ebf01d9  libstdc++-v3/testsuite/experimental/string_view/inserters/pod/10081-out.cc
! 3cfa70b957b3d87984db0a3103c73888  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/1.cc
! 514a497340285d46a45428bd20887b66  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/2.cc
! 202065f333f51fe3d6e31deebccaf756  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/3.cc
! d26e08ec2fc0928f8cf05ba2de080797  libstdc++-v3/testsuite/experimental/string_view/literals/types-char8_t.cc
! d082cde8775a2b192bde8b25a097576e  libstdc++-v3/testsuite/experimental/string_view/literals/types.cc
! d93cd1fb1157e3b731cf6df09d0bdfbd  libstdc++-v3/testsuite/experimental/string_view/literals/values-char8_t.cc
! 50147d70f18565e21d5b954a4994861a  libstdc++-v3/testsuite/experimental/string_view/literals/values.cc
! 94a7dbe1790d65ffa9c8c8f866e37797  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc
! a160d6da79d75b975ac4b4014e9b2436  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/1.cc
! 0e54664f85b163f7a8da45e6234f70a0  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc
! 3cf214a5f87e8e6938f1e1887da04f36  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/1.cc
! 68b1de1931154422d0622418d28c2698  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc
! 421c295dc654e60bbcf40981fb190179  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc
! 0d408bde3f977e1eb5b380d06afccdb8  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc
! 5cd506244446cc370f064312a673ae3d  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc
! 9b4fd3188ce547dcdeb4a6e64b00626a  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc
! 6eac2fd4f85ca279a932f42a9bd4037f  libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc
! cf624f677c08460f302c6ca585d5132c  libstdc++-v3/testsuite/experimental/string_view/operations/copy/wchar_t/1.cc
  672cb4f94c8a852e6bdb846e926365f9  libstdc++-v3/testsuite/experimental/string_view/operations/data/char/1.cc
  3500b68ff8c9b68295a6f4a0a348e9d8  libstdc++-v3/testsuite/experimental/string_view/operations/data/wchar_t/1.cc
! 1f60ec6270f8028cedfb9f19a2c3d431  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/1.cc
! 642aadb2a1095691dfa3640f7adabfee  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/2.cc
! e5190871d31804b89079485f39d50d44  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/3.cc
! 0fad588e35e7b2777cdceffa085f57fe  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/4.cc
! 1d552dd3b911f55cbfeaca49048a0264  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/1.cc
! 2c0be4305521835ca719b99b51fb6af6  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/2.cc
! c34172e178c0a1bf0b7beab9694ae1e8  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/3.cc
! 4dfb98e5286e986d900cb82041872045  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/4.cc
! 75909a90ab8656aa6f4f9f6ac5fbe62e  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/1.cc
! 8a49166c1889dd67f0681e2ee20c56b4  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/2.cc
! f6baefd6edd06292a7c26cc0e60fbd86  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/3.cc
! a75ed26aceb5c3be08a1df5062db3710  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc
! 6dcca2c81fab535cf69bca794a12d264  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc
! d84f9019477a99bd3d1855f650131981  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc
! 55e0fa5b6a7b58bc4b6bf1745d2d1035  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/1.cc
! c579ee57d30f9d054b3f25b3ef60d9e1  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/83511.cc
! 9653f03eedc12439800f12f2e637492c  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/1.cc
! 1dc507de5b97f234d568a6097ae71693  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc
! 7fe989d39390876fa389a14fcf9b6d5a  libstdc++-v3/testsuite/experimental/string_view/operations/to_string/1.cc
! d5d12142702429438016e9c5b1d2aa82  libstdc++-v3/testsuite/experimental/string_view/operators/char/2.cc
! a1f7deb57bcbafc1abc1fbfe16423a5a  libstdc++-v3/testsuite/experimental/string_view/operators/wchar_t/2.cc
! 534d94b9bf408bc35082b5d242ee3b3a  libstdc++-v3/testsuite/experimental/string_view/range_access/char/1.cc
! c6ad9e6b9452e5157d42ee9f81f231af  libstdc++-v3/testsuite/experimental/string_view/range_access/wchar_t/1.cc
! b2fdb996433df930cf4bf9dd534bb9db  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/1.cc
! 95738ad1337ffd096e78c2925022dee3  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char/1.cc
! 0848a9814bc643f61dc6e41f8ac403df  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char16_t/1.cc
! 4b5479cb00c1801338569fc38cfb3434  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char32_t/1.cc
! 9698cee6e975f12a80fa20eb9e483fd3  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char8_t/1.cc
! 3ae802ac422a41b06d4c7c659afa9d50  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/wchar_t/1.cc
! a670512e3978e9719e315e77aa2a874d  libstdc++-v3/testsuite/experimental/string_view/requirements/typedefs.cc
! 805c0c13d309b33a7d9487710e539b86  libstdc++-v3/testsuite/experimental/string_view/typedefs.cc
! ca275565fa5e6fbd8009b06004f7a2b6  libstdc++-v3/testsuite/experimental/string_view/types/1.cc
  b89c4bdefa0bf886e09684838214bb81  libstdc++-v3/testsuite/experimental/synchronized_value.cc
! 925081e93ee74ae226a3f3963487f531  libstdc++-v3/testsuite/experimental/system_error/value.cc
! 5a652a0810ddfd01a5b120fe230bcdc8  libstdc++-v3/testsuite/experimental/tuple/apply.cc
! 9f09565a23a676c0b2efc8be2edffd5e  libstdc++-v3/testsuite/experimental/tuple/tuple_size.cc
! 34431a5b3cc28c411b9d64bee1c24eab  libstdc++-v3/testsuite/experimental/type_erased_allocator/2.cc
! b03d7c1e0f00761e66e02198e12c533d  libstdc++-v3/testsuite/experimental/type_erased_allocator/uses_allocator.cc
! 958f0b51872c8efc53f3061cfb0866bb  libstdc++-v3/testsuite/experimental/type_traits/detection.cc
! 5e2e4c14718ce9496f286b5cb11b5841  libstdc++-v3/testsuite/experimental/type_traits/nonesuch.cc
! b985e2bf090b671eb3af9aa055aab0fc  libstdc++-v3/testsuite/experimental/type_traits/value.cc
! c0b70966ba4e67c2f0019ab179b355f8  libstdc++-v3/testsuite/experimental/unordered_map/erasure.cc
! 2b777f319efe6df3e515ca0a6dca1c4a  libstdc++-v3/testsuite/experimental/unordered_set/erasure.cc
! 98d4f7e37b4c0675f8b4bb7eff0f23a8  libstdc++-v3/testsuite/experimental/vector/erasure.cc
! 175a2fbce2494716ab1d5423ad550a32  libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
! 71f6074037a228e4e2606fc1d616c1f1  libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc
! b10fc8741903fe9ab188c1190798ecfc  libstdc++-v3/testsuite/ext/bitmap_allocator/check_delete.cc
! 75de7cbd33a2fed465c50c4e83e0c415  libstdc++-v3/testsuite/ext/bitmap_allocator/check_new.cc
! f74c0beba9e0204823b89c85d8f846b4  libstdc++-v3/testsuite/ext/bitmap_allocator/overaligned.cc
! a43fd9651d22c3cdb7bdf422e09ce5a9  libstdc++-v3/testsuite/ext/bitmap_allocator/variadic_construct.cc
  846dc8224edb857bb6953efa8b4cdb2d  libstdc++-v3/testsuite/ext/char8_t/atomic-1.cc
! 04a141c840396002e14155d8fb295506  libstdc++-v3/testsuite/ext/codecvt/1.cc
! 2d4b424089b3e97c4ffd66845a29d487  libstdc++-v3/testsuite/ext/codecvt/char-1.cc
! f214857eed61ac6ac3c9165810bf3164  libstdc++-v3/testsuite/ext/codecvt/char-2.cc
! c8c41f34b4f2266688170ff634c29b73  libstdc++-v3/testsuite/ext/codecvt/wchar_t.cc
! 4a62417fd14e77e8d141e75927d3fd55  libstdc++-v3/testsuite/ext/concept_checks.cc
! 12c5f06e314bbdaf4b27721b43a8080a  libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc
! e0aeaf490321207b19e1d9ae4efe390e  libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc
! 2f5904ae29b61219638619a768200057  libstdc++-v3/testsuite/ext/debug_allocator/56170.cc
! 24bd5baaa290c3572c887b71e4450483  libstdc++-v3/testsuite/ext/debug_allocator/check_deallocate_null.cc
! 312dd618d89e49af6ba8248ec8d1b660  libstdc++-v3/testsuite/ext/debug_allocator/check_delete.cc
! af9908c2dc9978a5410ffe2cb5298d34  libstdc++-v3/testsuite/ext/debug_allocator/check_new.cc
! f24dc6855a9efc6c5cca0c38116df054  libstdc++-v3/testsuite/ext/debug_allocator/eq.cc
! 503bcc85806df75a9468f57318131709  libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc
! 725b444e9d5fd9c6862c1964fedaaa82  libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc
! bc54e40d5d54ea20f07f2d0df098dd9d  libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc
! 34cffddd12a60846ab1321f0cb13056d  libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc
! a9097c81f657f928d6c44de116d3943a  libstdc++-v3/testsuite/ext/ext_pointer/1.cc
! 79b3606275b3d5ab9e0bebd09aa738f4  libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc
! d38a1fa157fc099131e6f911942a10a4  libstdc++-v3/testsuite/ext/ext_pointer/alloc_eq.cc
! 69c0a9cccc5e8f79fd1c046fe93f0c8a  libstdc++-v3/testsuite/ext/forced_error/cons_virtual_derivation.cc
! 2385a751995c9f41e713ed60ae02beaf  libstdc++-v3/testsuite/ext/headers.cc
! 8674884c4c7f3695dd7aefb030fac66c  libstdc++-v3/testsuite/ext/iota/cxx0x.cc
! 63787c3843b5e77c108a0c1f7aee8134  libstdc++-v3/testsuite/ext/is_heap/1.cc
! 158a9f3ded2c30a4f3f85c9e31663598  libstdc++-v3/testsuite/ext/is_heap/47709.cc
! 0218d88c8edfcdd98aa4d72742de2229  libstdc++-v3/testsuite/ext/is_heap/check_type.cc
! 1be67aa6cbda44aab81871a7facad480  libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc
! 2085f50d2ab6328f892f7c69413571bb  libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc
! 6e6fc46bf1e64c1d0eb1dbe96f73e407  libstdc++-v3/testsuite/ext/malloc_allocator/check_allocate_max_size.cc
! 5f7a533138f0acdaf4b92d97958dac38  libstdc++-v3/testsuite/ext/malloc_allocator/check_deallocate_null.cc
! a9ff6783072c4aa754834c0500082538  libstdc++-v3/testsuite/ext/malloc_allocator/check_delete.cc
! 7e07c6387f0f4fc28905c1a66fb9ca17  libstdc++-v3/testsuite/ext/malloc_allocator/check_new.cc
! e473ba09893caafa090c61707e3dbb3a  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_global.cc
! c1c52f8d5f61a2a06912faffea03ad8b  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_local.cc
! 4b7397ba113655a293a59f95c907f1f2  libstdc++-v3/testsuite/ext/malloc_allocator/eq.cc
! 67e9c59e01f5e4226284bfc36244d171  libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc
! 038b56db8d826511a9defdb7fde30124  libstdc++-v3/testsuite/ext/malloc_allocator/overaligned.cc
! 76a6ad93b202c31c6a97cb61b8c9a905  libstdc++-v3/testsuite/ext/malloc_allocator/sanity.cc
! c8b3ff2b62dc8c2545bff5f83363fddf  libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
! 6c5a6131fb877b2ea4d2141eceafde28  libstdc++-v3/testsuite/ext/median.cc
! c2aa3e6faf134821b44321853c795a6d  libstdc++-v3/testsuite/ext/mt_allocator/22309_thread.cc
! 6bb0fe59bffd57c67f889c77d5d22d76  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_big_per_type.cc
! c381454915bdf40fb104aead1c2c580b  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_max_size.cc
! ad3d83b2aa597013cac2a5b890aeb2d2  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null.cc
! c1c2febce55b08466267b22dfef83094  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null_thread.cc
! 0ffa75df8a2296663dc75977d305784f  libstdc++-v3/testsuite/ext/mt_allocator/check_delete.cc
! fa7acc5bc8947c26bf8f624b7dc00bfc  libstdc++-v3/testsuite/ext/mt_allocator/check_new.cc
! 582df058b25edb95a1b25b5c7cbe6f2e  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-2.cc
! 030033c625e7473e31de86bda0e43849  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-4.cc
! 4a0b5777720a0aef46f062aab5e186f7  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-1.cc
! 3cef910264a8b13eb832a5734d81600b  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-3.cc
! 5653055eef0667e247aad226baa0db4a  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-2.cc
! 3fbbc6fbe5ef78276d4e70ec16bb4a74  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-4.cc
! 5e229f98914026ec385b76a1bdf10b20  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc
! 06483a072a6c087d3ba03e0a40510c84  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-8.cc
! 24d1f4239835006cf53ede15b296e4d9  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-1.cc
! 3703a33bd07511e893604b0aeab4756c  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-3.cc
! 52a5383d3165a79581923677c8232d4e  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-5.cc
! 660a5d9135f55793bfb04cde59d7012d  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-7.cc
! f98d3bb6439519d837dc92663a5998fd  libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc
! 00a44c03babac69ee36781df8d2e598b  libstdc++-v3/testsuite/ext/mt_allocator/overaligned.cc
! ab839655cad3d93ae361cc9c36f3e282  libstdc++-v3/testsuite/ext/mt_allocator/tune-1.cc
! 0bd80f857e0b8ea86149769a4986fd36  libstdc++-v3/testsuite/ext/mt_allocator/tune-2.cc
! 8e590ac7776f11f0b4dea625cc867800  libstdc++-v3/testsuite/ext/mt_allocator/tune-3.cc
! a86934f05babe252bf91e6fd6b79b97b  libstdc++-v3/testsuite/ext/mt_allocator/tune-4.cc
! 4bba8d2b415650fc0d88944bc49cc843  libstdc++-v3/testsuite/ext/mt_allocator/variadic_construct.cc
! a027768bf7ff00816742c0ff0631e675  libstdc++-v3/testsuite/ext/new_allocator/89510.cc
! 7d6e75ebb27950c9ca87627f2b183f2a  libstdc++-v3/testsuite/ext/new_allocator/check_allocate_max_size.cc
! a2b477f1fa5d394e37c483f96b8bab7c  libstdc++-v3/testsuite/ext/new_allocator/check_deallocate_null.cc
! dae17fa7c9f00171ce02a0882f4f919d  libstdc++-v3/testsuite/ext/new_allocator/check_delete.cc
! ad386a28605722f39afcd60c366f3e77  libstdc++-v3/testsuite/ext/new_allocator/check_new.cc
! eff5eee86699ac5a2e0d6d6a7b89b5bf  libstdc++-v3/testsuite/ext/new_allocator/deallocate_global.cc
! 6039a74cf325fb748d3b473614e1db2b  libstdc++-v3/testsuite/ext/new_allocator/deallocate_local.cc
! 80f19b8099b5e236da37e5f6f760e064  libstdc++-v3/testsuite/ext/new_allocator/eq.cc
! 6fb4872e60873de35c149b6691f2b882  libstdc++-v3/testsuite/ext/new_allocator/instantiate.cc
! 33fd335390014c6b0237f17a365f14c5  libstdc++-v3/testsuite/ext/new_allocator/overaligned.cc
! 24b29541f650ba6bd84c3f30743571cf  libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
! 2928b4d91e58e277eac83f942b4dba5a  libstdc++-v3/testsuite/ext/numeric_traits/numeric_traits.cc
! 3dd1ecdeaaf8256eefbfe77950dd1efa  libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc
! 16104a4b369990e11a5ba24eb97aaad5  libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc
! 905ce42ee323b0b0d077e11bb9e48512  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc
! 3d66478d333a7f92e9981b1dac0ba51b  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc
! 946e57e33a33ec69c7eebe74d8e9ff9c  libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc
! f16ab6649f8351a6fa31c26c71e35cd1  libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc
! 6855c3b239519d35055270f810686b04  libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc
! b829b8d7d869907272a08fe9b6ea7d47  libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc
! 3cb119bb36f47088244e6cbccb5389ae  libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc
! 72853f4134c3c692443cb1244b8fb298  libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc
! 0099ad85be05f2fb556a480ba6b14625  libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc
! 3819ee45ff414d635617d445f5d0cbb0  libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc
! 56af7c883159fe4cf3578f0078653fc0  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc
! 3bd7e7fa33d6cfc1b99c99b10aee74ca  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
! ed3942007ad9191baba8c7602642220a  libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc
! 21e1fcf49c6eb81dff9df4245ccb4851  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc
! 8c65715c9c8943cfee312aeb062fddd8  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
! 0cf94620b2475be260be314f9d809ac2  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc
! cff09db96ace28a2f6dec827c6d547e4  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc
! d980fcb378378742d703c68d3accb387  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc
! 0effcde26861cc61d98aad61b47be689  libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc
! 3cde76eca60839b5df09480f1b28b19e  libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc
! d928b317a608165e677ce71739b92282  libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc
! a35317621fa1832c5493eff06852cc08  libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc
! 38f5ff2fa58ba77b8b3c66352af4077d  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc
! 2f3efdaea9029198890a337126e478d0  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc
! c328de18a5ebf3b2dd1052e0e82015b8  libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc
! 00d2ee96f19c7a5da0af9a2d47369e67  libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc
! 1833fbdfb751ce281576bee9bf70c880  libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc
! 37e55dff22aaad2b9e501e8079729625  libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc
! 4ef12c3fddfce9aca32fa9b79cc90126  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand.cc
! cc8a72a08ad5bfce6fbfb4adeb667119  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand_debug.cc
! 844cb83a201ef49d5f96084c8f7180b2  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand.cc
! 618c59e240405f45664136dd16605052  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand_debug.cc
! f547214985ee447a8e25b1c69fa24282  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand.cc
! 4d6f4eb96895a0becc068f946779633b  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand_debug.cc
! efd61932082c136b008a17fc9de5bff5  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand.cc
! 7c76306e0348d344f2f1aa85eefc3a77  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand_debug.cc
! 41d1eac0a88988003e4b47d146babd2c  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc
! dd87a163735d111b3e87a3b1f79a63e4  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
! dd136abb33774b747a7a0e18a38c89dd  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc
! 3782c221cd322638bbf25d8ad934c518  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc
! c493810bb9950b5f4402626d726ca382  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand.cc
! 28d860022aed717b0acff11d80893498  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc
! 26efc6e1cbbc053d7dfae397f2a8c826  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand.cc
! 89a9215526d8b48c6ec657e496eaaf85  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc
! 621b6e8368c5bf75b0008353e0bc5211  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand.cc
! f6f071bd25a6b4363880a223360a20a9  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand_debug.cc
! 3b4d2e0ab6b02271c4d8f22a878033c5  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand.cc
! 9b4b5b94fe60d848b2591308f179d466  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand_debug.cc
! 364b766333582f357003e3c6100ce9d3  libstdc++-v3/testsuite/ext/pod_char_traits.cc
! baa85df416608ad613b47c8a34e73709  libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc
! 12c71d3fc14831cd041763451ea8c711  libstdc++-v3/testsuite/ext/pool_allocator/check_allocate_max_size.cc
! 54d4dc0abf2d02bc98dbf0369519a790  libstdc++-v3/testsuite/ext/pool_allocator/check_deallocate_null.cc
! 9c243b27a9c773c5975eff7900a97abc  libstdc++-v3/testsuite/ext/pool_allocator/check_delete.cc
! 061b0c2eee3050711f314cbb0ec07104  libstdc++-v3/testsuite/ext/pool_allocator/check_new.cc
! d7a7719535d92e6efd713aedea805ea1  libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc
! d972abcfebbe0eb4349dc5f94314ab7a  libstdc++-v3/testsuite/ext/pool_allocator/overaligned.cc
! 55e107e4f70c8f735dfdafa623b3e776  libstdc++-v3/testsuite/ext/pool_allocator/variadic_construct.cc
! c4400adc9736395db83774f81ff73970  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc
! 73f84e5f6425b27b289b865b5c4d776d  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/parms.cc
! e1d551d185a87431b9d3add32e6b85c8  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/equal.cc
! 9538f2d8bdc073340ff16c385b26c213  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/inequal.cc
! b85824808defc49dc2a0fbcabe0db5a1  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/serialize.cc
! 220eadf328ff001fcac83798cab892c1  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/explicit_instantiation/1.cc
! fc556f22d131847ab07cb71290614e5b  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/typedefs.cc
! a14b2bd4365b06b7a84d6a47a7b77b09  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc
! e528334a44cbc9006383041d809fbedc  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/parms.cc
! 0f3d240881d85400e880f8295ce40796  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/equal.cc
! 1cd48fd1e7ab9bd9984f9309c3a91b9a  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/inequal.cc
! cb983fc57a619d4e39dea743aa6e2b91  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/serialize.cc
! c4986534c13492af2deac28d8611f697  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/explicit_instantiation/1.cc
! 47b6d59ffdb3a477986460fcd6708211  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/typedefs.cc
! e41693616850b0f250cd2d92268dddca  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc
! 3dd6e40f98902ac9571cc399c8a01a8a  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc
! 0e37162d89e255bbe725fe5e4dcb0119  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/equal.cc
! 6aeb14f6c15795597de0b0e535b8d02e  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/inequal.cc
! f419c15b48fc8b981d01011f783fb5b4  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/serialize.cc
! 9e8de72c7c49a7129939c5e7898d5dbb  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/explicit_instantiation/1.cc
! 8b90b68ac64be5d4c846b7fdac302e53  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/typedefs.cc
! 3d8972fd6c9176e33ca96a4e89c7aa21  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc
! 41c962cb42700045b4db241917d7a52d  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/parms.cc
! 025c6c958352bb9c0600faac8050ed90  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/equal.cc
! cc04ee467c2d871c985fb3b6e23651a0  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/inequal.cc
! 3447881bc6aabfdc4fcdc85ba71bdbb3  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/serialize.cc
! bb4ee68014e03feca49578182c76e695  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/values.cc
  5310d63384a16aab3ca0056f2cb3b3dc  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/pr60037.cc
! 76f573fdb1e4dfdea5418875eedab2c4  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/explicit_instantiation/1.cc
! d1c17b79eaa18910871def8d7b3d5896  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/typedefs.cc
! 169d2b1c04e1ec87dea7ab6cd83fb1cc  libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc
! a47fb5c249451aa7d41dfbfd360dc280  libstdc++-v3/testsuite/ext/random/k_distribution/cons/parms.cc
! b55167220646f35e4eb243d717819291  libstdc++-v3/testsuite/ext/random/k_distribution/operators/equal.cc
! f8cb185ec54eb0cc1197880961776eb7  libstdc++-v3/testsuite/ext/random/k_distribution/operators/inequal.cc
! 2daee8069b5be648a4b538b1b4b25713  libstdc++-v3/testsuite/ext/random/k_distribution/operators/serialize.cc
! d9fc453a466404ed91899d7c3f7f653b  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/explicit_instantiation/1.cc
! f59e724dec3b48798d84ea48e6562c9c  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/typedefs.cc
! f043a5200c6583a20bd99b4ee4ca2420  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc
! 3d5daef403c38da27ee262a97300d343  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/parms.cc
! c282dfb18ce28b4f21aad91f57660cff  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/equal.cc
! b5a6a135b35bdd47f0112394719d413f  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/inequal.cc
! 600b492a58b5ef5f80eba603cb6c5a55  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/serialize.cc
! a29a8f7c1dc2593b3120b475b2b33b6d  libstdc++-v3/testsuite/ext/random/logistic_distribution/requirements/typedefs.cc
! 2c609b368ae62d245e131aa14dcc7fac  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc
! 3fdb42810117945afd79b751d3ca65e3  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc
! 90339df9938602088427ba1380f174e7  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc
! 7ba3844af7d49acf79ebf12aa3b3c561  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc
! 5b758de578e048b1c93d80cac1cb7939  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc
! 26bc6af4760e1a48b6e153cc58b1cf07  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc
! 00136ef1d1e45da50029d9de4c1792bc  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc
! 41492077b50b1f4bc3334b83490ced01  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc
! f68a8a2bf1949a3b87721ef68957a536  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc
! 2a5d52cccc820bdc5ca2089453f87484  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/equal.cc
! 11b3d6cadef4b37b0ede0bb00f9bc40e  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/inequal.cc
! 409567d05f3567eabe1f0a5d2b42825d  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/serialize.cc
! fcede63dcc0a61ae71204f01f25c3faa  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/explicit_instantiation/1.cc
! 3d4938236ee0f340dcf3c23b984ad909  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/typedefs.cc
! df69f74d1b45dbc2f41e0f4bc5fddfd8  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc
! 0c253d5afde34b5ad22bfc3851ff4fbe  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc
! 1b2782cc5d80ddbdd9fa2ae26a791343  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc
! 25d5696e678ff6ccd32c9fa9b454e738  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc
! 4d8ddc03f9d41ddbe0c72dc97fd847fa  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc
! 5a2ba704f253617e89fba0dc7fcc5041  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc
! a757be26655f9d19ded270ceb8965df1  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc
! cd88c678db781ac2e82dd1f2deb70d73  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc
! 7ea1d79f33c44b98c5f46075eae695ef  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/parms.cc
! ad767662a68fb2c2aaa2a3a64238737a  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/equal.cc
! 9311da7793b1012b705fe25d10f51ed8  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/inequal.cc
! a7938fd3239212aec94da0bc8a959f52  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/serialize.cc
! f967a590e666bb51384bf2bc36b8aac4  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/explicit_instantiation/1.cc
! 7140957ae63a103f4e0086e74ece3743  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/typedefs.cc
! a8b729a5d65fc6ab48b8c7ccdec00fdd  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/copy.cc
! 3edb1ddcf410dc4f18847798391f9cbd  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/default.cc
! 4a2647100bf1a6f53f4eb6f3c3bb3c28  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed1.cc
! 7bd8afad2d90a7a0de6d042c2dda08c0  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed2.cc
! 249c0d51579db0c3350981e490cc5e50  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq.cc
! 667be932f7638bd11f7c4987a256a7d6  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc
! bda96ea0eaf321d57d7cba4011dbff99  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/equal.cc
! 15277cabda8447911e147c2b663c3b25  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/inequal.cc
! d37a913c5fa17c0eca9f095e0a58ce20  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/serialize.cc
! e6e0ee1be87a21ed872b8e912dbfc0b1  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc
! ffc5b65893f6f3ce63648bd0b314d562  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc
! 60a1a090e9ef27f8893ba0c53279de14  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc
! 3c39b6d1620c9ccd88e219524837bad3  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc
! e8982c3d9a4b5736f926cfbc96e3d040  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc
! 1765fc69e8849ae9b76f26e97fb06bb6  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc
! 65625d96f4f9602b2e783e39b4b2d78c  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc
! d0880fc8250642367a189454f76648d1  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc
! 762c1854faad6dbe416a8136ff0377a4  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/parms.cc
! 287aed0094cefa58e132249f53e599ee  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/equal.cc
! 8b55cec82110d122769589078bee5fa9  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/generate.cc
! 58ac688b41544cf9623eb5a125bdcea2  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/inequal.cc
! 2faa9e8f7284dd70b7db4799d89635b6  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/serialize.cc
! af2d7fee5d2809090459266a538c21e4  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc
! 4eedb956803bbd59d1b9ee469dcb1da0  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/equal.cc
! 4edf62ed010af11404b269e56b91bb40  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/generate.cc
! c0493ded0814bc3055ede5bc22fe8d3a  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/inequal.cc
! 8a6df5759cbd94a2b9af7c726af10993  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/serialize.cc
! 309e24078832604fa65ec9a9a734fdab  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc
! e5bc7d66edc9d582c5b2ee80a8f39026  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc
! ea12d1d69dde3be7c64fb31d11395d1c  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc
! 7ff64a14b4cad1d17005fc76f4c6085c  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc
! d88cb49b2b87b0c1aaecdbf49eda10ff  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc
! d2f8c148167468ee10add9bb8e1e8513  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc
! e2f0e32f81271e1afb724b1feccb2a69  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc
! ac420d9d05b7ef256c3e57c1b3267828  libstdc++-v3/testsuite/ext/rope/1.cc
  4b4043d9b7ee0d0043f2c34bac5eae23  libstdc++-v3/testsuite/ext/rope/101542.cc
! b34a6952f072be849566b21140f0d202  libstdc++-v3/testsuite/ext/rope/2.cc
! 43b71428966be8ce5c3ba0b4f3bb6ff0  libstdc++-v3/testsuite/ext/rope/3.cc
! e56e53bc3e2599c937f0d529429b96e8  libstdc++-v3/testsuite/ext/rope/36832.cc
! 54a826b4228a2953cafb5917d91cf78f  libstdc++-v3/testsuite/ext/rope/4.cc
! d53ca637c2d4ae154fd9c2a31136ec96  libstdc++-v3/testsuite/ext/rope/40299.cc
! 2fbcd508088d272d08bcce7057314634  libstdc++-v3/testsuite/ext/rope/44708.cc
! 40f561506826bae964b4011d9bafe8c8  libstdc++-v3/testsuite/ext/rope/44963.cc
! 08c6451319e4873b570853ec6d2cfdd7  libstdc++-v3/testsuite/ext/rope/5.cc
! dc0d9a3d1570fdb94c620f8ca4d2fbb1  libstdc++-v3/testsuite/ext/rope/6.cc
! e59747c55d6449284204cff5b115d721  libstdc++-v3/testsuite/ext/rope/61946.cc
! cf53af5a72e452c7cc25004b8ba47d34  libstdc++-v3/testsuite/ext/rope/7.cc
! a9f7b362e4c09252708353053761be90  libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
! 1e9b508f2355fd7f33db06371fbb4666  libstdc++-v3/testsuite/ext/shared_ptr/1.cc
! 3ce6c6b8f579329e5380944833f824b0  libstdc++-v3/testsuite/ext/slist/23781_neg.cc
! 8b0a1925cd366c40c12cc0998e57c609  libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc
! 84efe9542f84fef881cfb255b1f0d94f  libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc
! 3314b4388c0c255a9dfbd2c58547cd3a  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_nan.cc
! 8f47e8ec65522650be4c631af74cdfe1  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_value.cc
! 29ffbed49a3e6135634551166044256b  libstdc++-v3/testsuite/ext/special_functions/airy_ai/compile.cc
! 5b62696f0e7bff99fd63cc4c3366c653  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_nan.cc
! 2b57da12cce79b2b2c2f045cb6d2f732  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_value.cc
! 1368777491a2c9bf00f3a58496bc94a0  libstdc++-v3/testsuite/ext/special_functions/airy_bi/compile.cc
! 87fd9c3ec819152814a664e2f4c89101  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_nan.cc
! 74050466475dee0f665fec627ad90d92  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_value.cc
! dde00cd680d2ea622e242ae09d70f3f4  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/compile.cc
! 09a430a4141c41e9d71915aae26b4486  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_nan.cc
! 90bf88134e73bc1b30c4c93b9e113165  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_value.cc
! 48e99ee385311ac462fc32b2cb1abcf3  libstdc++-v3/testsuite/ext/special_functions/hyperg/compile.cc
! faf06217f04d316a17ba152875056a00  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-1.cc
! e5b0cf6567f16dd60b74cbbe6162cdaf  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-2.cc
! 96d8bcd1b3c08e439d6cb7f2c061c503  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-3.cc
! 6928635c3596aa09a63b59926adb9077  libstdc++-v3/testsuite/ext/stdio_filebuf/char/2.cc
! e65e0d921cd13e13da47b9ed1df44168  libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc
! 16677596cd26982b3b5238b25aed76ff  libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
! 2ba335d5f925e93a6cdc391fe327184d  libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc
! ce40a92882f321cc8830c8a5c7dfcec3  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/1.cc
! f330aa11e701f5549a116c314f239c5d  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-1.cc
! f20f8cc9b5c4a704acc9ddff166b3729  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-2.cc
! 1395d4404829a5567e1facf1e93af2a8  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-3.cc
! 138b917098d85ea6f4804a854a4bf488  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-4.cc
! b8f6e193cd3ec2ef2bd9b0f05cad50f6  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc
! 5f5e5c61274d2962a437417aeea13e09  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc
! ad8df3215ee3582bdc271325c15db565  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc
! 777961a17af48109c8bb2e7f071cd239  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc
! b15782ba5c9dff87da0e7db28b0e8b88  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc
! c59afa1bc4a7753ebfe2ade851e9d084  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc
! 445c62fb7b92e31eeabddc89d99a87ab  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc
! bd63dab79a0be36c1d0c533ee00b91c2  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc
! 8f69b73285d62ca8c1dd0ce08e662cff  libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
! 6d61a05564519825572488f9ea13f3b0  libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
! 09a14824e68677eff276c633c131d240  libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
! 8d4d7b0a6a61774dc9731f6622bd4ceb  libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
! 683ce1b3400af7fb06e983e06f19453c  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
! 52b4402aac4ae7d776e5fbb2cc3c41db  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
! a5ba39ae968e794c9a303540f7cbe902  libstdc++-v3/testsuite/ext/throw_allocator/explicit_instantiation.cc
! f3a5e6c692e51d7278cf83d714c7444c  libstdc++-v3/testsuite/ext/throw_allocator/variadic_construct.cc
! 675e339de3f6674d4b73e0ba2e709306  libstdc++-v3/testsuite/ext/throw_value/cons.cc
! 88721543a85bf99f9943a99512dcd7b8  libstdc++-v3/testsuite/ext/type_traits/add_unsigned.cc
! 1b38e78de335a55a863ceb848c570446  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
! cdd5afa57e6fbd30eaca9075a125c2de  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
! 040056d2eb9dd8c39280d2b690f9b6ff  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned.cc
! a5968f3f5270de8ee1e81dbf7dfbe643  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
! c3acc27c38a3f5ce39fc64a8886c882d  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
! 53e931d667b5351e2c83d9753880deca  libstdc++-v3/testsuite/ext/unicode/charset_alias_match.cc
! 0f6a07b882559746af3ae9fc12d28c83  libstdc++-v3/testsuite/ext/unicode/grapheme_view.cc
! 16680f8139883e38254462313d50ba4a  libstdc++-v3/testsuite/ext/unicode/properties.cc
! 7f1da2df0ff86feb20fd6f6a14dec1c6  libstdc++-v3/testsuite/ext/unicode/view.cc
! 83e9a215a42e28b13cfc24a2385f6549  libstdc++-v3/testsuite/ext/vstring/capacity/29134.cc
! a323f59c881aaaa781fc9faccd347f53  libstdc++-v3/testsuite/ext/vstring/capacity/shrink_to_fit.cc
! a204d2965a3fa381099f78c9e4683f8c  libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc
! 59124794a8be9e28fe755aa2ee87cac5  libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc
! b28a8d199296833aa0a8a2ec5c6990e5  libstdc++-v3/testsuite/ext/vstring/cons/moveable.cc
! 7128df84ac48001cb4d9aa13eea5371d  libstdc++-v3/testsuite/ext/vstring/cons/noexcept_move_construct.cc
! 9cb5bb5ccee57d6696f296349e50081d  libstdc++-v3/testsuite/ext/vstring/element_access/char/58163.cc
! ba71e335afed54080f47390001b1472c  libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc
! ceab910f974856a57268ca4e39a432a4  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/58163.cc
! 16b99f997c579217c09cb8fc2644a34b  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc
! 9e064ca0c8d3273e763488b183079a6b  libstdc++-v3/testsuite/ext/vstring/hash/char/1.cc
! f4b4deead4f08ba9be4b8d41357372cf  libstdc++-v3/testsuite/ext/vstring/hash/wchar_t/1.cc
! b9d5b76e15d929362e67ed91398da678  libstdc++-v3/testsuite/ext/vstring/init-list.cc
! c6712ef691aacd1a688a8ccc59abfd9d  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/char/28277.cc
! 3764dcf9c7aac0fea03c636f321c9129  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/wchar_t/28277.cc
! d50baa6f63a5292cc9891ef63aadb926  libstdc++-v3/testsuite/ext/vstring/modifiers/assign/move_assign.cc
! cc4bfcacb1998b63bdf457fc990867e2  libstdc++-v3/testsuite/ext/vstring/modifiers/clear/56166.cc
! 7f0d4564c2a5e2929a43eaa0db7074bd  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/char/54577.cc
! 0c853bf4b4fba78653beec96b74b3156  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/wchar_t/54577.cc
! 1cf842027a8746859f1291268ca28ba5  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc
! 506c5a7e632806a86214f9f2392bc627  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc
! c36518e86aaa890d31b0d38f5877a8bb  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/char/1.cc
! fe1bb9353fd725715fa38869fb928b3c  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/wchar_t/1.cc
! 24f5acf9c8dfc1977aa5620516bfd08f  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc
! 8b9d6c84a9ee4088288b5a821a555e37  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc
! 9aad7555bbdcdfd2b3205fc1e0d9735e  libstdc++-v3/testsuite/ext/vstring/operators/1.cc
! 297225366128de41cf101415ec9c36c4  libstdc++-v3/testsuite/ext/vstring/operators/2.cc
! 28de0d4173e79a309ec8e732f0f704ae  libstdc++-v3/testsuite/ext/vstring/range_access.cc
! 2c40a55a32a24146c993b1694a568cee  libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc
! f7577f56b3a0cb443e68085535a421ec  libstdc++-v3/testsuite/ext/vstring/requirements/do_the_right_thing.cc
! 756930a676197504b88551d9c17a0215  libstdc++-v3/testsuite/ext/vstring/requirements/dr438/constructor.cc
! 0916eb17d6395439202ed4bc34a50329  libstdc++-v3/testsuite/ext/vstring/requirements/exception/basic.cc
! 3bf46b5f337915db2ea3c4fec4200952  libstdc++-v3/testsuite/ext/vstring/requirements/exception/generation_prohibited.cc
! c08b52e80bf8037a708520802f4e039f  libstdc++-v3/testsuite/ext/vstring/requirements/exception/propagation_consistent.cc
! fb312d1079a7b9cc13c13c7abb7529d2  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc
! 80aad0a8a672cc18748af4a53cbe129f  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc
! 9b5c920874fb6593144b5ec0bdcdbc02  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc
! d4e1a02ec10d770d5a15da3be32a6ead  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc
! 74227cd9177345a07c2a659fcfb4d20a  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc
! 0f0176d6e244a7600fc15398150420ac  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc
! c893d8deea738e2cbab248ee750a4c96  libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc
! ab66f3fa4dc139afcc156c59a479336f  libstdc++-v3/testsuite/ext/vstring/types/23767.cc
! 7d11f440e59011cd0bc021ec389521c9  libstdc++-v3/testsuite/lib/dg-options.exp
! d7309c84b46425cbe14dfc56cd4fd2c4  libstdc++-v3/testsuite/lib/gdb-test.exp
! 4c7b663155b9ca86ed02bd0385249e31  libstdc++-v3/testsuite/lib/libstdc++.exp
! f0a7b9635ac2bde028508eae4e1b07d1  libstdc++-v3/testsuite/lib/prune.exp
! e99f7b2b082ed0e08179c7c2b4da912e  libstdc++-v3/testsuite/libstdc++-abi/abi.exp
! 69f91895143eb7ed5f04fbed3b016005  libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
! 02cb850acc68ebacaf65996eeb322953  libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc
! 4a7005723aba171d6dc38b97f367aca8  libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc
! bd459b2405184515770436b1c9b29467  libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc
! aba4c7e81e8846a459dfbd114df7467e  libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc
! d7c372bf46cc2da8c3399d8fdc2381dc  libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
! 8ae0f980c8c289e6ab3fb7c9e6623159  libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
! 95f44c2c268c1afd8ff06a167af8a17b  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
! 78942c400579aee275bcb264e4e0cfd2  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
! cc5c06bbfa825451a60d72a69657a567  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
! 9fba74ff569ae0d1101e0ff41a0f9302  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
! 9923979e44c8c0fa551ad9de36eb0e2b  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc
! 0778d54e5b3ed11c4356b07a025b87d5  libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
! 8416ca7175755b4fae784319ff376413  libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
! 6a9ac7f69736076c75da48c32d9d24b2  libstdc++-v3/testsuite/libstdc++-prettyprinters/locale.cc
! 3e638c6cfcf1ff6dd7adf57423f9b908  libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp
! b76c54fb311880eaa87c2c522955762d  libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc
! caa15067b7cb67df38cfc6c999e75cfe  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc
! ce27adb45c9045b7c69ee1c0cf20a6d0  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc
! a8471d5938c5b0cb5fbcc89d9e87eccb  libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc
! ade8ebf8618da64de638b06a53ca946e  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc
! 32276e183fc175387c9340c3adb7d472  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc
! 95c4ef31ac778daf058103390ad8f6ea  libstdc++-v3/testsuite/libstdc++-xmethods/array.cc
! 7d6ae39fad149c75623b1e0204488ea8  libstdc++-v3/testsuite/libstdc++-xmethods/associative-containers.cc
! c6ab465b2f1968cf6359d44943b9f5cc  libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc
! 873e8e1c0af51a1b03289c782f81fb69  libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc
! f3402a028f00c9be1794b14dc16ea8bd  libstdc++-v3/testsuite/libstdc++-xmethods/list.cc
! 8d8c1ae5e7d0dbac783086cee2a56cc3  libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc
! dad8fd6d8c77217b54a8a030ace3401d  libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc
! 0eb7d518763164ec18ff43f2b6ade7d0  libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc
! d2c2f17f37bd37fa24c1ef2724024a84  libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp
  af003639dee7c3edb68531616f1c3b8c  libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc
! bdc3656ece824440e00788c227197c34  libstdc++-v3/testsuite/performance/21_strings/append-1.cc
! 0827ca1ef6db0d7439f412ea40721c1c  libstdc++-v3/testsuite/performance/21_strings/append-2.cc
! ef3d31fe5d4ef2502c1b2320ff9d7766  libstdc++-v3/testsuite/performance/21_strings/cons_input_iterator.cc
! a9ae3adfcb49108e0d8d6ea9c8bf16ba  libstdc++-v3/testsuite/performance/21_strings/copy_cons_and_dest.cc
! 9ee6bcf4acb38c3e6a7ab0b455040c7f  libstdc++-v3/testsuite/performance/21_strings/find.cc
  efa1608e1841a10bba94a6d4de361846  libstdc++-v3/testsuite/performance/21_strings/hash.cc
! 5f105132a7f4e319c6cc15c4b8ff8287  libstdc++-v3/testsuite/performance/22_locale/is_wchar_t.cc
! a9e498f0942eddf6d40630a65866ccff  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_char.cc
! bdbad1885ef1925edb9b4578833861d1  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_wchar_t.cc
! 70cb67b83b16543a8908b5cdfc0ae782  libstdc++-v3/testsuite/performance/22_locale/wchar_t_in.cc
! c49c9016dfa5e74856ac2add444a8efd  libstdc++-v3/testsuite/performance/22_locale/wchar_t_length.cc
! 53238143d1b2a642801ba2c29f66261a  libstdc++-v3/testsuite/performance/22_locale/wchar_t_out.cc
! 5fe40b71fc2b8e5f66bd213c632d2368  libstdc++-v3/testsuite/performance/23_containers/copy_construct/unordered_set.cc
! 908957505767ec3ae331636b74ad20b4  libstdc++-v3/testsuite/performance/23_containers/copy_construct/vector_bool.cc
! a1b6808123e900f9d53871346147524d  libstdc++-v3/testsuite/performance/23_containers/create/map.cc
! ef47ceaca678652a25b2cf48b284f7ed  libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc
! e236e0574b7cd78a24133afdf0ae4bc5  libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc
! ea34635073f644e52b8abc14c821f754  libstdc++-v3/testsuite/performance/23_containers/find/map.cc
! 37e5c54c42958cc488823dfe658d50bd  libstdc++-v3/testsuite/performance/23_containers/index/map.cc
! 787102477b32e44b26bacd2b6f5afd7e  libstdc++-v3/testsuite/performance/23_containers/insert/54075.cc
! 0e55d76e6a564eeea8145e4dc1858c9c  libstdc++-v3/testsuite/performance/23_containers/insert/81476.cc
! bc06c88e5bc9fee635e7ecd018836c2c  libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc
! b240fffa987eaaab64c4274e29cebb3d  libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc
! 37ce49fec1014a153e1687f955d05923  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc
! 7071af5721d1fc018a13ccc3700a792f  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc
! 31c20f39493a3542012eb8be50afcc0a  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set.cc
! d2d15ac0b6856da21290a976e7d429ce  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set_hint.cc
! 7e3d3c58207071b4938472807b23589a  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_set_range_insert.cc
! 781e2e4e4c310c6041160904df14b22c  libstdc++-v3/testsuite/performance/23_containers/insert_erase/41975.cc
! b4c57a1aa1545ffe055da5f5c8c8156b  libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc
! b1a6d8e0ca1dc0145ba9df31f5948d1d  libstdc++-v3/testsuite/performance/23_containers/insert_erase/unordered_small_size.cc
! 9ac3a72ae03e319b4062677dda9f0a58  libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc
! 152d84e7a5c3ce22c846774c729803ea  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc
! 0287ba17ee6c18095eb2672967162691  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc
! f533561753d6139dd4825fe432e443ab  libstdc++-v3/testsuite/performance/23_containers/range_construct/deque_construct.cc
! 48614e97a77a9c1d7a0c528783e4aa02  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct1.cc
! 918b1fd6217fa127b04354a8cd374b86  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct2.cc
! c0e022b9d384608a474b9c1c98a77cb8  libstdc++-v3/testsuite/performance/23_containers/range_construct/vector_construct.cc
! aefe4e6d039254142c7f266ba1bc9de5  libstdc++-v3/testsuite/performance/23_containers/resize/vector_bool.cc
! d467b0e54729076a2b4caf869c4ce71e  libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc
  9d1d6439b2e93ebc48779237c0969b25  libstdc++-v3/testsuite/performance/25_algorithms/copy_backward_deque_iterators.cc
  ab09b2da7335847dccf2fd63d8b8fd89  libstdc++-v3/testsuite/performance/25_algorithms/copy_deque_iterators.cc
! 8eb4946306c54ea72d6140266e5f73d6  libstdc++-v3/testsuite/performance/25_algorithms/copy_streambuf_iterators.cc
! cb16ffb11755a0c11eb7c0b2d2b3d536  libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc
! 5459591142440720d856a569f74dbe3f  libstdc++-v3/testsuite/performance/25_algorithms/find_istreambuf_iterators.cc
! 37d5b8cb1e4cd8eb7702d29d4c748703  libstdc++-v3/testsuite/performance/25_algorithms/inplace_merge.cc
! a528982fc287e8d0d675100b30e5b351  libstdc++-v3/testsuite/performance/25_algorithms/lexicographical_compare.cc
! 782aa587c2afb3930ea3c3e1980691da  libstdc++-v3/testsuite/performance/25_algorithms/nth_element_worst_case.cc
! ccca909e8be7d120956a91b1760ed73f  libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc
! f2e1968833249d37eebc648f94e9b3a3  libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
! 89b3ba901b6422ccac7f30ab39b795ea  libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
! fa4ec411468b0a1a4d033c168d59cb15  libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
! b970041db4c38e1319b1625b64379a18  libstdc++-v3/testsuite/performance/26_numerics/complex_norm.cc
! 7586203c658f8d5d506114e6375f90bb  libstdc++-v3/testsuite/performance/26_numerics/random_dist.cc
! d498b55a3afcb21ac781f541e7b9bc6e  libstdc++-v3/testsuite/performance/26_numerics/valarray_gslice_to_index.cc
! cc01cc457a322f3f95d104aa253f863b  libstdc++-v3/testsuite/performance/27_io/cout_insert_int.cc
! 473a1dfe2fe1744b6122266460c8c6a3  libstdc++-v3/testsuite/performance/27_io/filebuf_copy.cc
! 35418a7e5a167624524ac0c3ced39996  libstdc++-v3/testsuite/performance/27_io/filebuf_sgetn_unbuf.cc
! 964e35586ab7caf44d13c40a7418610f  libstdc++-v3/testsuite/performance/27_io/filebuf_sputc.cc
! 72fc0a4bdbf74d69ff53d191260fa2b1  libstdc++-v3/testsuite/performance/27_io/filebuf_sputn_unbuf.cc
! cd5b3aa43c0974cb6db0ca28f5066b98  libstdc++-v3/testsuite/performance/27_io/fmtflags_manipulators.cc
! d4e5538a7d5fc3030fd8c3d043e2470e  libstdc++-v3/testsuite/performance/27_io/fstream_seek_write.cc
! 72eb961da56682d109f4ffc31241f29c  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_chars.cc
! 6826e74588ded944bd21398be93174a4  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_float.cc
! 42dc7181d91372e117a1624934120641  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_int.cc
! de58bfdeea084923fb7a069094b834db  libstdc++-v3/testsuite/performance/27_io/ifstream_getline-2.cc
! 57f640d635c8de3315cab3390fe4efbc  libstdc++-v3/testsuite/performance/27_io/ifstream_getline.cc
! 63129bcb8661758aa8ea24cbda5fef38  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_float.cc
! bd85ee843fc88a7877ccbcb9ed82ca5b  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_int.cc
! cb443f1f1e650ed64b245b32171165ab  libstdc++-v3/testsuite/performance/27_io/stringbuf_overflow.cc
! 5ca231d29cee16fa58356166c8fded11  libstdc++-v3/testsuite/performance/28_regex/range.cc
! 56acfc5a844715f4ee8a763f65ad807f  libstdc++-v3/testsuite/performance/28_regex/split.cc
! 97c6eb130dc5a7ca6dad802595da8755  libstdc++-v3/testsuite/performance/28_regex/split.h
! 9dd4aba49c7f0acc6774f745703fc42a  libstdc++-v3/testsuite/performance/28_regex/split_bfs.cc
! 263b3d3db7954ed831d249a2fe1a5da5  libstdc++-v3/testsuite/performance/29_atomics/atomic_flag.cc
! e713f78981bf83d4c4eb9cceee9fe9d7  libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
! ad765e80eaff9914d81449f7c135684d  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_find.cc
! 6f12bfbb34450d27e8ce772ac0b3f329  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_find.cc
! 5da7e7697d1fc4dff007008d875ab685  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_insert.cc
! bf766d9e32489ce5bd390471178153aa  libstdc++-v3/testsuite/performance/ext/pb_ds/all_text_find.cc
! ee61c9c3f9cd1a2ef47fdf7d8c69880f  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_int_erase_mem.cc
! b69e29ee50e4f2005a145b038bc87529  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_int_find.cc
! 71a9c07d962ab5104dcb7814eea7fee2  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find.hpp
! 7cadde52e93308407ddb7c1c21aac18c  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_large.cc
! 8d80b9a6f7ed92ca36c086d0bfc1f0ff  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_small.cc
! abb8829657b0aa82f195c9b51d6dc6f1  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert.hpp
! f1b084a9f5e73a74fa8c4e7daa13e5af  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_large.cc
! 1cc80d79cbd177a732989cb4d6f5f224  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp
! 1128e12c169f6d6b7140eaeffa9d4b34  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_large.cc
! 743e5ea364281c1a9a45fd6e26bf34f6  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_small.cc
! 278eecc1340372ff92aaa519e2051961  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_small.cc
! 358ae81fcc7e57377433dd6138bb4e1b  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push.cc
! c65a55663a4a93ac3a817b57e330475a  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push_pop.cc
! 3f45ead3f5fec9293dbfbbe2ab4fcf8b  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join.cc
! 902bd8c3eac5d6018a9f5d94dccbb333  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp
! 109412ec8d685a2550643015c12f146b  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down.cc
! f39fea305153716dda65c1251f61519a  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up.cc
! 8f9d666eff3931376538686f3f189018  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc
! cc1abc3be23022ea0ee8c3f5c1b0ef94  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push.cc
! 3c59f0cbf67d3e84cc88fbc835cb1b56  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc
! 072282163c80911a8e8cf08503881a47  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics.cc
! 2d8097a4870ab09d14cedc7f9d947e7e  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join.cc
! d2b06132803bc8e5c64ca40bb9543ca0  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert.cc
! 5b676d6471ad0e6b72f011bd974a9c03  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find.cc
! 322d949c0ff7622494ad9bf8c4585f08  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_nan.cc
! 85a49284cfd0f095a71bcf9f1d2b1a01  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_value.cc
! aec663bac758ae86ab69d83556a7d286  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile.cc
! 16eef9241e951025a974d5e33c87f12f  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile_2.cc
! bfbb0aac19d1a8673ace4f1255bda74e  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_nan.cc
! c2dda6b2d88524f1aae2e8e21fbfb881  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_value.cc
! ba7a09441aad74fb267b5912d6db7246  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile.cc
! c0f1b032915f6010c5ce472fe734039f  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile_2.cc
! b6b2752daefdf995caee3ee0a6c83431  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/pr86655.cc
! 6b9fc3bc344c2bb3dbd17ae179c5138b  libstdc++-v3/testsuite/special_functions/03_beta/check_nan.cc
! 84e6bb803d99e9c4d57433877975a6de  libstdc++-v3/testsuite/special_functions/03_beta/check_value.cc
! 3accd94fd3d8d2c2dbd1fdc1dcf8f3f8  libstdc++-v3/testsuite/special_functions/03_beta/compile.cc
! e230bef9d33e26ca15ea6cbab88c3bdd  libstdc++-v3/testsuite/special_functions/03_beta/compile_2.cc
! 7e7401cd63b3b09e03789b5bffcf1a8a  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_nan.cc
! 44311d609961d98ef8f827d7721fb201  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_value.cc
! b09aa8e0cd121024bdd0aa4a28b6fd99  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile.cc
! 2fd69a77d824254451770c7c4f7689e6  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile_2.cc
! 02a2452b21716d65fcc03945863b7dc1  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_nan.cc
! 0c54bd695d2a16b08a25e46675b4eea0  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_value.cc
! c54b2ab2f0801071fc60c89c38c48bd3  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile.cc
! 4dde0ea3204262551afc27d931228f7f  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile_2.cc
! 5d2355b21af296d46fd79b62dfa75f55  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_nan.cc
! 7a6e99d4f3b73731695164570b740ea6  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_value.cc
! 9ce1438778d3b2b7c5ea11d0d68a6cf4  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile.cc
! 6d54c2ee04ead60be906e5293e2cd310  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile_2.cc
  d40969d8e7a8973cde9b227f9ce95961  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/pr66689.cc
! 82f64eef74e595526db8889e3e95ff5b  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_nan.cc
! 5319ffcccd1f0e0646e42216ff4808c7  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_value.cc
! c81bd0b710fc4b8023d849b808fb6815  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile.cc
! 992c1e5e080aae85d0ef4aee25aa5a5a  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile_2.cc
! 03f705be710edf2f5a1c24464b447571  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/pr56216.cc
! f4f71ffee348470a87eab046ab49e0bd  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_nan.cc
! c8813f60653258369183847641e4bbcc  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_value.cc
! c88e99d4c30711138ee2eb686156626b  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile.cc
! 3b1baa4b25d4d4ec4d9b073ff6122c21  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile_2.cc
! c9e579f451e933ecef074188f59588bb  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_nan.cc
! 818c7e6de98dc2f11a74c7f5808d4a6c  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_value.cc
! 798b78a8e45d1769835ad9771e1b4b3b  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile.cc
! 325644405accd46b6d29c681e68b5a74  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile_2.cc
! 46e1cf7e9e40f084db86e1258e76ade1  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_nan.cc
! 487ebd11cfef3324a14f02a0205da56f  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_value.cc
! 92c6935411830483214f30dcb601bd34  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile.cc
! 01f98e33cff443ad49867e66b1ebf3b5  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile_2.cc
! b8e323e5fe8b4c8a1cfe5086b4a9f60d  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_nan.cc
! 68174ec39c4e084fc1a041dc0810f501  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_value.cc
! 4932f0a4be7e672751f95f1c2810bb0b  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile.cc
! 7b7fc81e2d779d85f40d272c3c0d8210  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile_2.cc
! d74154617b48a50eb830f0673629a5f1  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_nan.cc
! 5991044db8bb075dd97ed52137fece98  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_value.cc
! 0c367b21f3150af060ec2f2885988fb6  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile.cc
! 6f6a7e2ea8957a562af98758f37fd40b  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile_2.cc
! 2ba22a5101e8ef1696907630c4d825e1  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_nan.cc
! 070ea8642c0289661055fa3e96789e21  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_value.cc
! ad73df55f4cb2e69df328c9bb70728ab  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile.cc
! e3e332eb4c67d155524900fa87ab986e  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile_2.cc
  51586062b3eeaebd7af37c198695dc60  libstdc++-v3/testsuite/special_functions/13_ellint_3/pr66689.cc
! ac178606cd18a429917f97a863132f09  libstdc++-v3/testsuite/special_functions/14_expint/check_nan.cc
! 91c3a39b15c9c73906f16f7d46a72b00  libstdc++-v3/testsuite/special_functions/14_expint/check_value.cc
! 5784cdbf142a3cb522dfd86ba09d6804  libstdc++-v3/testsuite/special_functions/14_expint/compile.cc
! 9f565d1209529ece9ac8c3de0f315a37  libstdc++-v3/testsuite/special_functions/14_expint/compile_2.cc
! abaada8a9ed4d1f02e45b3049b98bfc4  libstdc++-v3/testsuite/special_functions/14_expint/pr68397.cc
! d9ad19ca123942bdd9bdd95c1197733c  libstdc++-v3/testsuite/special_functions/15_hermite/check_nan.cc
! d61d1e6dede1b8937d4b7c3d2b368317  libstdc++-v3/testsuite/special_functions/15_hermite/check_value.cc
! 09616f7f0ecbc4089fcfdade07ad12f6  libstdc++-v3/testsuite/special_functions/15_hermite/compile.cc
! af2f8c6691f369f94424ea0f139f816c  libstdc++-v3/testsuite/special_functions/15_hermite/compile_2.cc
! 2604636c2260f0d7a96bfd0168a00de7  libstdc++-v3/testsuite/special_functions/16_laguerre/check_nan.cc
! 53a4b1ef930c812c8d1150fb261cc7e7  libstdc++-v3/testsuite/special_functions/16_laguerre/check_value.cc
! ff2eb5b4821979676750e40644aeb9ed  libstdc++-v3/testsuite/special_functions/16_laguerre/compile.cc
! 674744a201153ad79a6fee5570de5c4e  libstdc++-v3/testsuite/special_functions/16_laguerre/compile_2.cc
! 3db0a6f2173306f172a98d745d519971  libstdc++-v3/testsuite/special_functions/17_legendre/check_nan.cc
! d4a4a70db3e3122998597cdb1f9a386e  libstdc++-v3/testsuite/special_functions/17_legendre/check_value.cc
! 21f054a9151d7d824a1030b8716dcf5b  libstdc++-v3/testsuite/special_functions/17_legendre/compile.cc
! 9110e8b8cf4f231453a09d0350daa405  libstdc++-v3/testsuite/special_functions/17_legendre/compile_2.cc
! 6c061fba18df9e8efa5546aa40a8659b  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_nan.cc
! ea6b24bdc092cc7e2f605dbe6970c105  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_value.cc
! f834e3015287750bc2b16c48c58a02f0  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile.cc
! e3072f56e14f201a1b93bfe316663dcf  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile_2.cc
! 9954f363e001169ba1b7363bd11dab0f  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_nan.cc
! 053d36d2af55b9a835252e4a6854e527  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_value.cc
! a39e63fee6506397ef216be84c12da87  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile.cc
! d85374a4f6eccfc2404f9361294b1cc2  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile_2.cc
! 793f053fccb9a9824d278115457ec6ab  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_nan.cc
! 99517cc9cca87837e2d2220194ba961e  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_value.cc
! 0fdf0c6f1c0088a75eaf18142bb9ebb8  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile.cc
! 2ada03a94aa7f735a4eb021c4d74dc25  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile_2.cc
! df8b1f34ef8422966fcac88d335adb20  libstdc++-v3/testsuite/special_functions/20_sph_legendre/pr86655.cc
! 8741131d3a7dd5c5fee90115f601ebbe  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_nan.cc
! 958b54b4438b998699650258bb949e6c  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_value.cc
! d3c5f77ed4efbc797c4fd3f795dc86da  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile.cc
! 9bb30db6e1f848d8f348ba5bbc578c99  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile_2.cc
! 8c392e6642db56e1e7542b41656debb3  libstdc++-v3/testsuite/std/concepts/1.cc
! d674f1865ea1991ab7ee8b95ff5fb508  libstdc++-v3/testsuite/std/concepts/2.cc
! 050f8067ced712aefe9b05657c3f1bf3  libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc
! 8547d5a7a04e4c2bf28f182c6ac722bc  libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc
! e5e363ca45366fb3727be9805800b4dc  libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc
! e96d5c59ddf322bd97adb09733c52a99  libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc
! 2b8a591c767dc68731dc1f9e83a60fb4  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc
! c64b00afc776cdc70fb6cf215d913c72  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc
! 1c8e3fed4324417e6b18e1bbe2a28eeb  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc
! 52ba792a56531bf792b82df6e020074d  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc
! e0e050d86ea22cc21657a6198c2d27ac  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc
! e8abcd9d0c697885e2f0bee80291c0c0  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc
! 04da095c8d51c2ce1890089b77f37b0f  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc
! 410457b3e1a3dad167705fca87bddc71  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc
! 0b451397818c6ebe1283a868035c518c  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc
! 282d2ad4d1f484aefd50f11a211aeec2  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc
! f7e278a975942effac7d6a10d118f9b1  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc
! d1e0c1b7a1dcc92bd457b92369781f7c  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc
! 03d9075f77bbfaa8e7aafe00a547742e  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc
! 626abedb92ab6448b1458c5217e37625  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc
! 3ca8f7afc0e2b5428de405c013346fe3  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc
! e0cfe8f00496d148828d8dfeaea1ba96  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc
! e82430670f2416915510c235a029b731  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc
! 077c05f5fa93fc2e3eec6f4a6f51ed61  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc
! 8b2dd214e9a7e6ed92546425b75be4e0  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc
! f119c46c763c18261f9a88800bd83075  libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc
! 70cd06e484ddd6b1578bbfb4b69f6884  libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc
! 729eea6a2f231316f6bb8f309c497bd9  libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc
! 1616b8467812379b3a70b9cb7998152e  libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc
! 576d75aaf7d2aae28e341cda63776ff9  libstdc++-v3/testsuite/std/format/arguments/112607.cc
! 21af34769376f807e34e898c6b2b96d6  libstdc++-v3/testsuite/std/format/arguments/args.cc
! d52aff2e6dfd886a32da7955635ed09e  libstdc++-v3/testsuite/std/format/arguments/args_neg.cc
! 0ae0aa3194832d790df652a9ef7d17c7  libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc
! 3f84148bfc5153a2278f3c8c413dad98  libstdc++-v3/testsuite/std/format/error.cc
! 6425de3f85b700ce40dd3b11d934ee43  libstdc++-v3/testsuite/std/format/format_string.cc
! 6fa5a2c92632d72f763333e89659d4a5  libstdc++-v3/testsuite/std/format/formatter/112832.cc
! 6dfab89727d04a1035aba73afcf4d6a8  libstdc++-v3/testsuite/std/format/formatter/basic.cc
! ded8934ce957f586a60f8704fba49c77  libstdc++-v3/testsuite/std/format/formatter/concept.cc
! 43cc21b94d247227b33bbccce8e28b07  libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
! aff20c8c5cf69b2711343c5d3b008187  libstdc++-v3/testsuite/std/format/formatter/lwg3944.cc
! 0ed1eb1472a411af201d54f2c88b04b5  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
! a1d452e66d840a306985b18ad9ae0a8e  libstdc++-v3/testsuite/std/format/functions/107871.cc
! a7244ffd437f4addc853cfdd012c5cba  libstdc++-v3/testsuite/std/format/functions/114519.cc
! 66b0f2294a4671acc9ae4487ca64726c  libstdc++-v3/testsuite/std/format/functions/format.cc
! 8ee425f04d2e4782e67ab2eb62208b7f  libstdc++-v3/testsuite/std/format/functions/format_to.cc
! c5e2b63672ec2df6fdcba9b4e1ba3ba0  libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
! f859e29ec6cd7017c9d0abc60ed4b8ce  libstdc++-v3/testsuite/std/format/functions/size.cc
! fc7c0a7a8dd0259caaa437eac20a9eca  libstdc++-v3/testsuite/std/format/functions/vformat_to.cc
! 10bb9a11a9d12bb96629f93bede794d2  libstdc++-v3/testsuite/std/format/parse_ctx.cc
! 22af3c8593871c64b40b11663417f80a  libstdc++-v3/testsuite/std/format/runtime_format.cc
! ed909591d843b27ed408293b14d4c393  libstdc++-v3/testsuite/std/format/string.cc
! cf134684ab65cd2ba549ffca0640fb98  libstdc++-v3/testsuite/std/format/string_neg.cc
! 781bf327eea561eaa1fa7002dba90223  libstdc++-v3/testsuite/std/ranges/97600.cc
! adf951476b71b82d5b9c948b4a722885  libstdc++-v3/testsuite/std/ranges/access/101782.cc
! 210ac4a231ec17fb9a070c7981ba29ef  libstdc++-v3/testsuite/std/ranges/access/begin.cc
! 6c9c13d6ff776ca4e793c7ee906a1ed0  libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc
! 66a5ef2aabbf504b1d59bde113ab5e66  libstdc++-v3/testsuite/std/ranges/access/cbegin.cc
! bf36dbf46d04b0f6baeb7acbda70343b  libstdc++-v3/testsuite/std/ranges/access/cdata.cc
! 41559c4d6a630d6ef81c1018bdba7066  libstdc++-v3/testsuite/std/ranges/access/cend.cc
! 78aa0964159f240b50b1631d76dad66e  libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
! 3f05bfcce99b1cb617e95addda53e1c5  libstdc++-v3/testsuite/std/ranges/access/crend.cc
! d2128b0082102a1cb5c2165cea8c1391  libstdc++-v3/testsuite/std/ranges/access/data.cc
! 20c3074a30d80bcc84bd6f1d3eded3e3  libstdc++-v3/testsuite/std/ranges/access/empty.cc
! 51299ab6655c15d166ed637184750b43  libstdc++-v3/testsuite/std/ranges/access/end.cc
! eea7c955ef3e6b9443c1a0d2f4631219  libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
! 41d0b8968c5879e827b42f15acff7a65  libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
! e542ec9539e3379d7c1a274e65589907  libstdc++-v3/testsuite/std/ranges/access/p2602.cc
! dfbe3f07d5ef1b5a0ecf8c5541e9c585  libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
! 10eb9e12cce30d20e49378eb1aa386f8  libstdc++-v3/testsuite/std/ranges/access/rend.cc
! 3ebe851f7ca2c7e6a6d627e388794013  libstdc++-v3/testsuite/std/ranges/access/size.cc
! 9bb1627982cec8c218a5cf6925b44f60  libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
! 56652dfd2f2ff9e60dbfdc5f777d848f  libstdc++-v3/testsuite/std/ranges/access/ssize.cc
! 077949dcb13c6a3e5447afa8a0c2d1ce  libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
! b98ad4cb2f356d14ec886501b9508d6a  libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc
! f69b53c2e0ab4241f2517f4b538bcfaa  libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc
! 13af79d383c1236ee7f65dd9cdd5af10  libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc
! cfaa9427b7a5c76a0759a48568317d9a  libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc
! 4ec327b61b35210be440da8a50f34177  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
! 4c3528bf1beeb7852061eecb524666a4  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
! 45fb48998b5ebce2a1181761e55573d5  libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
! af0834ac3d4fc37e237a2705519a343a  libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
! 0139b03b03632380b03a6ab7c2b27a55  libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc
! 3330317b4977d57cb724b80ca0486283  libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
! ca1524a8471629f0f7af342981b490ce  libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc
! 277035d0fb9e4f122a6fe651df769f25  libstdc++-v3/testsuite/std/ranges/adaptors/common.cc
! 05fc7e7e5275f19c4719ce9034ddf93c  libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
! 1036dfed79c22fd6875cf771537a10b4  libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc
! 68d9f76622b0297752461f42f4941d3c  libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc
! 0a54dd9c0925351f6d52122e46ff5b7d  libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
! ee65a6de8ad143105b408542046b3555  libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
! 594f3e5faa8dc7e429e999cdd162ac2d  libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
! f73af39b33a64ba02dc022a734aab875  libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc
! 5109b35cb89a31b5279ae5b25082e778  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
! 50c1180f3aca9863af474d8de23e11a6  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
! 037c6e0dbd2e478a74843d86dddc6737  libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
! 8b18ce8c4ce0aaa7f3ba523452a0939d  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
! 21ecf6ed24c7b5d99de05b75bbf93812  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
! 9af77ee410180a897ccbc264412203f7  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
! eacfe85a80a9510edb9e0d5b76db2f13  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
! 1771c9c860ea3bad649896228f807cb0  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
! e3c6aebe3533413c75b0ebb7ab7e9b9d  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc
! 917e7f710623226ae63dac580aab687b  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc
! adfcabf1da0146163b35a934650cc5fd  libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc
! 764b867de641a0070ae8aa3eccdb1469  libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc
! c48ca1c4effaac34b1f94b789c370533  libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc
! fea229b0b5fff81228e3cac486b97db3  libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc
! ea54d220ca18f153ec158224b3c21f3a  libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
! 4cccc1e8c6b56e98b49336a4896929d4  libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
! 90c2335f48a47534d686b693e690bdc5  libstdc++-v3/testsuite/std/ranges/adaptors/split.cc
! a0e630899068a41f2ddf2c81cbd386a4  libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
! 013c5d59b1d7d98320fd7d7586e0fca9  libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
! bbebb8997ec35b5c8b696a0f0d25c54e  libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
! 9075847b05663784945b48dc9af43dd6  libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
! c1b23609040e813a09294f54b708a162  libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
! 41be7290c02060700426245314eda0c2  libstdc++-v3/testsuite/std/ranges/conv/1.cc
! 30b021647d63542228568a19a21f2fd4  libstdc++-v3/testsuite/std/ranges/conv/2_neg.cc
! 7fdf1d111e43ff7fc5474a37da96e300  libstdc++-v3/testsuite/std/ranges/conv/version.cc
! 40f87faf1107f4929a6a5b29da2fbecc  libstdc++-v3/testsuite/std/ranges/empty_view.cc
! 4f66bbf6c34947742227195084675b7a  libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
! 3bc8ca3c41434fe8f2555d0080e50958  libstdc++-v3/testsuite/std/ranges/iota/93267.cc
! 45ec8eac0b9eefa7a17dfb3dfb0e5d8a  libstdc++-v3/testsuite/std/ranges/iota/96042.cc
! 71b15342137e0432e3db2bd576953876  libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
! d8d26963b24f98a9126e6ab1740f57a2  libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
! e2ab64fd21884cc9fc62d54bf850247d  libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
! 3214de3067064c7001fa7f02445406fc  libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
! fec9952b3846d37e2efd2b41b8070d18  libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
! e7828f3ea357891a499d33268599b1c5  libstdc++-v3/testsuite/std/ranges/iota/size.cc
! c9a80ec838a578b3d98b3744d73acd9e  libstdc++-v3/testsuite/std/ranges/istream_view.cc
! c8087d896f789370e3f336013dde6d88  libstdc++-v3/testsuite/std/ranges/p2259.cc
! 69defd43e76475db81c3e8bb6e87fcb0  libstdc++-v3/testsuite/std/ranges/p2325.cc
! caf6a0f4cd8a45e6290dd386dfff06ec  libstdc++-v3/testsuite/std/ranges/p2367.cc
! 7e558c74e0fde8897665deacbbc1c44f  libstdc++-v3/testsuite/std/ranges/range.cc
! db3ad291e2e791f736d68a27e4606352  libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc
! e00025521226baba8157db26eefe4302  libstdc++-v3/testsuite/std/ranges/refinements.cc
! 3b8d326d22eac8026ea4c2e42ea72c52  libstdc++-v3/testsuite/std/ranges/repeat/1.cc
! 3a41f0854e4356c3f7b3bbbc43761ee1  libstdc++-v3/testsuite/std/ranges/safe_range.cc
! 5e2101b443aa972e410625def599521b  libstdc++-v3/testsuite/std/ranges/safe_range_types.cc
! 5613c6ae4806002db6c6b60eebe05724  libstdc++-v3/testsuite/std/ranges/single_view.cc
! 0be250aaf015c572323e4d9310e74c15  libstdc++-v3/testsuite/std/ranges/sized.cc
! 8d1ae5cbc51b66963081b4178b295a2d  libstdc++-v3/testsuite/std/ranges/subrange/1.cc
! 1b1867dca54804ebf61ac12f0ff3e7fc  libstdc++-v3/testsuite/std/ranges/subrange/111948.cc
! f30152467737cd46d83e6535d156dec5  libstdc++-v3/testsuite/std/ranges/subrange/96042.cc
! de8e991189ee21fe3d84d568bd7e1957  libstdc++-v3/testsuite/std/ranges/subrange/97512.cc
! deebf06a9086f7bbf73404c005fcee70  libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc
! 449421e97ab330e845dad45930a47104  libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc
! a0ca51f2e6eb88eb1dea2e806241b2d1  libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc
! 31b9a654ceaa7773051736053800bc10  libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc
! 2554aeff366fbe1639a4aa984841f206  libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc
! fd6ec7a01ca1f369cac087641b882804  libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
! e7a573aac90ab8bf072b662618be108c  libstdc++-v3/testsuite/std/ranges/version_c++23.cc
! 9fad6c4340450aec86dc902526e38fbc  libstdc++-v3/testsuite/std/ranges/view.cc
! e9dd29c8ada0e4f7673523df4dc8c5e7  libstdc++-v3/testsuite/std/ranges/zip/1.cc
! 49863faa867396e029bc4a3a9ddcc50a  libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
! a0efc42f3d3e1e881d69063fe7f2c586  libstdc++-v3/testsuite/std/text_encoding/cons.cc
! 5fefea08d07771a5195a2976d3b20615  libstdc++-v3/testsuite/std/text_encoding/members.cc
! e9ef3f2b572f799b265913487f27690b  libstdc++-v3/testsuite/std/text_encoding/requirements.cc
! 829f62feba3a8d88bdba61776f8980da  libstdc++-v3/testsuite/std/time/clock/file/io.cc
! 80a2961c5977de8c0d12064222e4427c  libstdc++-v3/testsuite/std/time/clock/file/members.cc
! bb27fc01a394046e2e420e57a1e6925f  libstdc++-v3/testsuite/std/time/clock/file/overview.cc
! 811bf06fb6123b7a4dc922fa36ba8a06  libstdc++-v3/testsuite/std/time/clock/gps/1.cc
! 0a79f149c67bc35f2c5afa5f6504446d  libstdc++-v3/testsuite/std/time/clock/gps/io.cc
! 35bb731208c0d393e6eb642440f3a663  libstdc++-v3/testsuite/std/time/clock/local/io.cc
! 423a8d821e5306daefaa2d142a56c137  libstdc++-v3/testsuite/std/time/clock/system/io.cc
! b3cda48993495a5d2ff69f7f1ad2c695  libstdc++-v3/testsuite/std/time/clock/tai/1.cc
! 0f2ad290eb91c08f3de238b60ddafc29  libstdc++-v3/testsuite/std/time/clock/tai/io.cc
! 33b0f61f2113641c61ba5cd53d9a52a3  libstdc++-v3/testsuite/std/time/clock/utc/1.cc
! 0d059ebbdaaad044ee1ede6c816c555f  libstdc++-v3/testsuite/std/time/clock/utc/io.cc
! 01f8f5b7e0644716179c7a0f95af5d9d  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
! 2bf53d186ffb828ec6dc3552076ba23e  libstdc++-v3/testsuite/std/time/day/1.cc
! 9b5b79c912b11d4f48e1fb35fb111742  libstdc++-v3/testsuite/std/time/day/io.cc
! 1cfa2f31c3dde7297b8ca55ba69d3f47  libstdc++-v3/testsuite/std/time/exceptions.cc
! 90714e66b9741259bb9b9cd2ea23288c  libstdc++-v3/testsuite/std/time/format.cc
! 72592157c99ae9026101f0e0c545c14e  libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
! 4ba93d13314c788e419728411ae7229d  libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc
! 6c6293d902ac026c41fc45336767194d  libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc
! d63a04c2619e7f9df1d20e82508f63af  libstdc++-v3/testsuite/std/time/is_am/1.cc
! e392f16e8eb2d68a77adc2d2df60f81f  libstdc++-v3/testsuite/std/time/is_pm/1.cc
! 6e488c817855559a4ed1760ba594c3d5  libstdc++-v3/testsuite/std/time/make12/1.cc
! f29bcbc066033ca2819b05175b8dee01  libstdc++-v3/testsuite/std/time/make24/1.cc
! 03eba64bb4cfa00c17b58c9eaee89fc6  libstdc++-v3/testsuite/std/time/month/1.cc
! b7a5373ed0797aa495f69436f1939726  libstdc++-v3/testsuite/std/time/month/2.cc
! a95c6365a674d691a5049d10b94bd3f0  libstdc++-v3/testsuite/std/time/month/io.cc
! 8a95ef041c00b8fa37e0b546df95bd51  libstdc++-v3/testsuite/std/time/month_day/1.cc
! bb39685baac5f09d22f4582faf8cb04f  libstdc++-v3/testsuite/std/time/month_day/io.cc
! afae455a190b352d4f6c554aef5f1fab  libstdc++-v3/testsuite/std/time/month_day_last/1.cc
! dcb9d587d1738c8bdb50039c6928431e  libstdc++-v3/testsuite/std/time/month_day_last/io.cc
! 8eeb04dc9e558a5c02e77e5538112a75  libstdc++-v3/testsuite/std/time/month_weekday/1.cc
! 993b5f3ea8c445dcd9622633b93de2cf  libstdc++-v3/testsuite/std/time/month_weekday/io.cc
! f954da011c6ea0feb7c2873b94f28bf2  libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc
! 54378d7890a365088cc6292493caf83d  libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc
! 60231b6bb71cc9175500ebf6d9f92ceb  libstdc++-v3/testsuite/std/time/parse/114240.cc
! a0be85b8053be995a48a4cfec6a5b675  libstdc++-v3/testsuite/std/time/parse/114279.cc
! a62052228d6df7ad716017e0526fa955  libstdc++-v3/testsuite/std/time/parse/parse.cc
! 8c45e082cd6e5a390fe00acc45db4e51  libstdc++-v3/testsuite/std/time/syn_c++20.cc
! f9d9d1cb483f1731762a8e5787c8020b  libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
! d041367e20c424ad627fce102335edd0  libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
! efdc68d548df15089ce510e6bf1c33c7  libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
! 177951f44d73c4d37968affebeee98f5  libstdc++-v3/testsuite/std/time/traits/is_clock.cc
! f09a06d086ac0cfcb07b8557e5e4316c  libstdc++-v3/testsuite/std/time/tzdb/1.cc
! c142573e06d5c52d53f0f20e1e72e973  libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
! 6950b88828afb2cebccd6617fe0d64a5  libstdc++-v3/testsuite/std/time/tzdb/links.cc
! fbaa899641d17201d9f891486537af1b  libstdc++-v3/testsuite/std/time/tzdb_list/1.cc
! 3f7dc336d0ee3feaddb94ae16964cbf1  libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc
! f475943f7d01e9a226fe3ce2eeb4d1dd  libstdc++-v3/testsuite/std/time/weekday/1.cc
! d6cb5f0804c9bd14e047294d47decf33  libstdc++-v3/testsuite/std/time/weekday/2.cc
! 28074137f005d49856c15e773a2debf7  libstdc++-v3/testsuite/std/time/weekday/io.cc
! 5420288d2f546a1c8860a407458efbd5  libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc
! f1130e870851ec40302fbaceeb797501  libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc
! a84241eb0f284b6cdac20d12b2284cb5  libstdc++-v3/testsuite/std/time/weekday_last/1.cc
! 4143eb043bbe78b96a20fd85b2d9457c  libstdc++-v3/testsuite/std/time/weekday_last/io.cc
! 7aea2d5455b311e4467dd7d40943bef4  libstdc++-v3/testsuite/std/time/year/1.cc
! 546f49413ee2c0bd433b6b3e33d8f215  libstdc++-v3/testsuite/std/time/year/2.cc
! 31aee8f1dc8300b4c3ce95f8b013467a  libstdc++-v3/testsuite/std/time/year/io.cc
! 79c901c993fe91f2b7b60f8f46d51a51  libstdc++-v3/testsuite/std/time/year_month/1.cc
! 02a1d8c016bfce2c1cb04173d82a8417  libstdc++-v3/testsuite/std/time/year_month/2.cc
! f3bc72e48f5192cf9f187425e1bc3ab2  libstdc++-v3/testsuite/std/time/year_month/io.cc
! 20b09edf842b465e9969b36376d275fa  libstdc++-v3/testsuite/std/time/year_month_day/1.cc
! 84ac9bd6208676c3345e74082227b6c9  libstdc++-v3/testsuite/std/time/year_month_day/2.cc
! 1e11ce47f84e6c8da04be592b6dc2ed7  libstdc++-v3/testsuite/std/time/year_month_day/3.cc
! 424cc6975bc213ed3ae494f63b8f0038  libstdc++-v3/testsuite/std/time/year_month_day/4.cc
! d12b1ce84dd8aa47821e932aa1466dec  libstdc++-v3/testsuite/std/time/year_month_day/io.cc
! b45e93cfd476a8a03b097389f9351046  libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc
! 7c31940411f0afc337273cdf6b011921  libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc
! 88d90bf0d08da6a2546594d62c819008  libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc
! 6b76147293a3944728699839a3568d4c  libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc
! 31ea8b0b7c2e9cfaa7716b51f55a721a  libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc
! db2342ab5aa62775fcff2371992f119d  libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc
! 7f6baff837825ddad9bedd5582dfab64  libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc
! 87daeaa88e2f3d911785507d88a44563  libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc
! c2f53197b596c13f15dfe63dd08f77dc  libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc
! e794c3c683b129a1bc27715ff3ee3b37  libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc
! 728832c3eb4e89e18aaf1a2ed1be2271  libstdc++-v3/testsuite/std/time/zoned_time/1.cc
! 6e26d84ca6efe0ea496ba2fcc8ee280b  libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
! 6abf80ca9a7f01e8d061066eecdd2022  libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
! 2af126843677c397f37d0ec04aab8ffe  libstdc++-v3/testsuite/std/time/zoned_time/io.cc
! 1ffbda059634e8047ba1c3ed8ea40cdf  libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
! 46d6b45f45908ebc179f768a8757f7de  libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
! a666cbbccdbd1212e56956d4d552eceb  libstdc++-v3/testsuite/std/time/zoned_traits.cc
! cdd1cc41e1d24fd592fdc294519969b3  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/1.cc
! 0ccdc67242ac7ff3b0fbc0b2d18b43d7  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared.cc
! 9d5b08867dc8775a3b8eb63d2cebdde2  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared2.cc
! 6e21cb30cb6adf388bf03ae7160403f7  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared3.cc
! f68f6d09bcbe6eab7bf3797b416a2365  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/requirements/explicit_instantiation/1.cc
! 6cf78c58bd5f50381a1a39f30f76d679  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/shared.cc
! b94495d34f1b472e02b758b916c3764f  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/still_shared.cc
! 396f64bdad4a0594e3edfe9e8ef70ce6  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
! a1ea5967e5eb9c2d2cc98b7ace23f55e  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
! 7cf65e5c0db829129b174e85a0046240  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
! 49992fc0f9882e269469819af4c22268  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/assign.cc
! 2050eb8a98ddc9f2e4ebb0ed82ede668  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc
! 7d9298ea3cb4a13840b2ade368c8a50c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc
! 776733f779d72854fb52027bcc983c42  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc
! 101c8d0b7f67dcba4b65c142e87806bc  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/dr541.cc
! 5f05fed3f866b6932b4e9ae4f791988f  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr.cc
! 54fc39ab7de32dd4349ab9b6d7731ad8  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc
! e6633293a08a874648c0be1efe990d97  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/casts/1.cc
! 968325ca046eb7f045de26e30a79dbea  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/comparison/cmp.cc
! 6b53585367070122a53f7022c542d65b  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc
! 9d26e11b0b9b71a626684d0890137ab7  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc
! 3c35daef08631c97558f78892a443e48  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc
! ef160a657b604cfbc7817275eb1a30c7  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc
! e235a6adb63b54d53640b31ef4411ace  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/copy.cc
! 2a86dd7568a0fab1d65ea4d143205780  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/default.cc
! 3ab923cddb10fa840468fa4193b6f315  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/pointer.cc
! b0f3e58ac67b00442b4bdd7a8ff24664  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr.cc
! 91d99f711d09f94df5747f744bbcaae2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr_expired.cc
! e380a63d5be20afe85a811f09aa35762  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/dest/dest.cc
! ec99099d0fecdf08a960d6d4f1eff8e6  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/24595.cc
! b81d8e58c28367dbe38f36f2558ce42d  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/42019.cc
! e6a8a0b3787cfda9761e27a71aa1c51c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/io.cc
! 44a51628f8ad30f998690276b2e32148  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/swap.cc
! db06be1894465a7326a1b1e04fabdf9e  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/24805.cc
! 9be259d4d206c57fca29d8071f398bc2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset.cc
! 2276c0672cb03d5dbc278efac964ee45  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc
! a2a903e02fc80d3250ecbffcf2287331  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap.cc
! 53cb766a283505fe787614aa8fd236f1  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap_neg.cc
! 2ea47c0b09c6f9dac541f31ebddde2f0  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc
! 2a05fd0b69ab7cece63adf9866d84e2c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/get.cc
! 1de3e5da494606b30634fa1e32f735cd  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/unique.cc
! f696cc68ef7e47cda0e9148c9a82a7cb  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/use_count.cc
! 214f0a81b01325b16a1935dc2bd0379a  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/1.cc
! 7c4cca3a3e0b56735e49179e0ecc4e80  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/2.cc
! f4f523c2e352f37653dbcfc038a32643  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc
! 34ecf5e5a5c08311bc65e2778c1dca14  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc
! d116ea4af549980401ba531754ed0734  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/lock/1.cc
! 57a45cc12fd282e02038b979131c047f  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/1.cc
! b60f0694d27d470837c4ec706ef9a55b  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/2.cc
! 25a6ecb01fa7e75a6f4df34539c34eef  libstdc++-v3/testsuite/tr1/3_function_objects/bind/all_bound.cc
! 58df1b6c8d4df58d1e8218b272166c51  libstdc++-v3/testsuite/tr1/3_function_objects/bind/cv_quals.cc
! 1d44e4e50fb9755ea689fa8db1399295  libstdc++-v3/testsuite/tr1/3_function_objects/bind/mixed.cc
! a86b6302e4eb0290580f6f85518e14ec  libstdc++-v3/testsuite/tr1/3_function_objects/bind/nested.cc
! 2c6b161d03f89f66e81f891e03a18dae  libstdc++-v3/testsuite/tr1/3_function_objects/bind/placeholders.cc
! 2bf15c5d342df9edb4479bea25a1bca3  libstdc++-v3/testsuite/tr1/3_function_objects/bind/ref.cc
! 58dcfa7047501c065f0f0f17f13dcb28  libstdc++-v3/testsuite/tr1/3_function_objects/function/1.cc
! f072bbb599e0cfce303d0d0e9e8dc7cf  libstdc++-v3/testsuite/tr1/3_function_objects/function/10.cc
! 009c9a506d8d8ed94501e72186fcfa3d  libstdc++-v3/testsuite/tr1/3_function_objects/function/2.cc
! 732c2e75ea1bd2a946238671e89e25f2  libstdc++-v3/testsuite/tr1/3_function_objects/function/3.cc
! 36d8f2ded6ce3b311e3bd18bdaa3379e  libstdc++-v3/testsuite/tr1/3_function_objects/function/4.cc
! c32d71d9eac414f48115da7a9bcd8d43  libstdc++-v3/testsuite/tr1/3_function_objects/function/5.cc
! f5fcd5e8a4b37d1e145e65e049a3e467  libstdc++-v3/testsuite/tr1/3_function_objects/function/6.cc
! 5910f524843c9904e0abd8ad97852a1a  libstdc++-v3/testsuite/tr1/3_function_objects/function/63840.cc
! e8303f20a9a014397d2bd77f8ffca8a4  libstdc++-v3/testsuite/tr1/3_function_objects/function/7.cc
! 86ecab34fc8b4f3688652d0b05c1768d  libstdc++-v3/testsuite/tr1/3_function_objects/function/8.cc
! d812f5d4f2733908194632a27a348a42  libstdc++-v3/testsuite/tr1/3_function_objects/function/9.cc
! d7be6e00392da1f8e1e32c708fea47a3  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
! 7a59a9461295e957be6e84f7ee6dd686  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
! 645fd8e08d189d0d0d5db50430c62035  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
! bf5a5208660a193fd39b9b091c3b8231  libstdc++-v3/testsuite/tr1/3_function_objects/mem_fn.cc
! 7f07c5f964a6e894b30c6aa1504e18c3  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc
! a5c75cad33cd9ae410fdf1458b0e5e96  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc
! 08edcdf994c83aac22cb27995de1da53  libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
! 5a64b661fa2d78e9144292f592a9e411  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/requirements/explicit_instantiation.cc
! d59df283158fcefd4425e47a95773bda  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/value.cc
! f729818c5ba712f63139a36f11ac7598  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/requirements/explicit_instantiation.cc
! bd4f08e7af33439021893325a7130a7e  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/value.cc
! 0044115b30fe47b04e50d09bd893d93d  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/requirements/explicit_instantiation.cc
! e1ebdfe48fe8f331b9771db3b14eabc2  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/value.cc
! 670c63dcddf6fa535a36360e0ac1d6ba  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/requirements/explicit_instantiation.cc
! df0cd33ebc45a663b152675b45d920f7  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/value.cc
! 4f4e7fe6386f9ac73deff7ebaa2b6ce6  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/requirements/explicit_instantiation.cc
! 877f5628d098934625d828b823dd829c  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/value.cc
! fa59a782e6ba52a83882d679e7b149e9  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/requirements/explicit_instantiation.cc
! e9343c6971d22039ef9c79c6b3c90c61  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/value.cc
! 2126259c3709a386b7a751f8c5ad287d  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/explicit_instantiation.cc
! c4c03afd6fa7c864e6d990f615e612ff  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/typedefs.cc
! 6cb82988bb85772acab5c653916a137d  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/value.cc
! ee34dc859eeb13748c743a9de030a8ae  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/explicit_instantiation.cc
! c7d67a312ad1d584ad08245179ff4d12  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/typedefs.cc
! bb8f39b9b75af1e8b7758683d998210e  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/value.cc
! cdbde41ac560e26d5acbcc05fe24c8a9  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/explicit_instantiation.cc
! dc554df86155f9f1c08848813dc8678d  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/typedefs.cc
! ccf26a9848db2be20fcffb77b6b0f5de  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/value.cc
! 22b1c271721fd3192ca0daf164361c98  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/explicit_instantiation.cc
! 1a4bfc69cd186a801c1fbcefc7253a7e  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/typedefs.cc
! 115484fbc3dd49d6563b5ec2a1dc748c  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/value.cc
! 4527daa7ab5239ea006bfafa4083d4b5  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/explicit_instantiation.cc
! 4c636feb7b51c5d4fe9fa445b190e462  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/typedefs.cc
! ff438a1be3fe27bc96dcbb2e50f5c93a  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/value.cc
! afc56fce02babb92da9401ba4ac65821  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/explicit_instantiation.cc
! 571185caac964eb5b29ee71b23c74e31  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/typedefs.cc
! a234522f06e8d96ead6550da5efacb99  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/value.cc
! 92d274b2c4d49f4341e2584808eb6cd6  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/explicit_instantiation.cc
! e31a12d237af56530de985df9a3707bd  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/typedefs.cc
! c0c1e7f180de0ab8e9bd470e29857b7b  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/value.cc
! 7f54af455bc2249836e301c8a05d3a3b  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/explicit_instantiation.cc
! c55ab7f87d8a8f69724418373c843dc0  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/typedefs.cc
! 68f99008e1740e5aa404f1d15fe61d5f  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/value.cc
! 64f3f24c334dff2ca084b7c0fda5596d  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/explicit_instantiation.cc
! 004a1cebe2a8b4592ab6603cd6eba9a2  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/typedefs.cc
! 8d851dca14797dd07e700c5475966687  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/value.cc
! 9bd9139d4c370a660bb56c2cbdef9dd7  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/explicit_instantiation.cc
! 65883a6c94f4fdd63154be4a345a5b31  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/typedefs.cc
! 5ff0b6a2b2f5a659df312522b126eb52  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/value.cc
! a15ea2fc8486ae61c9f2609bae897b56  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
! 973126063df62b1df18be1c808494cfc  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
! 83f684ef62920e602179511400292024  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/explicit_instantiation.cc
! 30b4458773c4685710bae06686f8b3e3  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/typedefs.cc
! 88202a29a1e80970d72e48e6c694c6b8  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/static_definition.cc
! 87120a60de98234b7ce55a4d084e4426  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_type_typedefs.cc
! 1d19ab88e514817212699f6d836bc70e  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_value.cc
! cd93e041f203aee37ffc96593bd2e09b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/explicit_instantiation.cc
! bfc0a4ed1d0818fad49c2b958dc49429  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/typedefs.cc
! ea13a90ae3bbcf25b3cd58c93bb08d72  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/value.cc
! cbf84eeb7e010b0c97454f93f33a8068  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/explicit_instantiation.cc
! 25206d78134c0e34929ab1a9400b4b7e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/typedefs.cc
! ad8bea98978e159a24423a16388b6fb7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc
! 247143bc4e1aa2c600d40429564fdc42  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/explicit_instantiation.cc
! 71980341d47fbc84b6f5d95602598eb7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/typedefs.cc
! 3df7cc73abd0e365d9807b0be3c6fcec  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/value.cc
! 5a910e523914e92a46d2db10bb92ada7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/explicit_instantiation.cc
! 3ec2f21c29d66d55af155987e0bc78c7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/typedefs.cc
! 531f50b68f110d0e3dba5d19f5f8bf22  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/value.cc
! a839981b2cd3626f3eec9820f515e8f0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/explicit_instantiation.cc
! 3c3ffcbc77fc5daba6b60dc8158b7510  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/typedefs.cc
! 4ad9bc466faee3582d35baef21b1318c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/value.cc
! 42a17b40671285338e3a32e49dc43fd5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/explicit_instantiation.cc
! 2df2320c3549dd36f45e1c8a0a7311f9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/typedefs.cc
! 306a500ba109fc1d7ea476da1f1c23cd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/value.cc
! 8e31cadbe676e40950a3cbb0deec3697  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/explicit_instantiation.cc
! cfbb35a5559999da01a3fae30159bc1c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/typedefs.cc
! b47267b4fee54d96a953191e704ae8a2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/value.cc
! 0f5c5f73f7c4ce70f92973b6db690269  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/explicit_instantiation.cc
! 68d69929a7a5d731cd8b32e4de9280cb  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/typedefs.cc
! c2a7c7485d6b780e71a7b484bf601750  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/value.cc
! 2a787b74cf94873d2b7325aeba675b9c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/explicit_instantiation.cc
! 935f450d5fdebaa73e9b598550dcb716  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/typedefs.cc
! 5a160dea9c02ebeb1022f85583e30ba6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/value.cc
! 3ae4f62a9c53c745fbdda9f80f7595b4  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/24808.cc
! 5e1d8bd5bed5d61f041ce64b8d1c35e9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/explicit_instantiation.cc
! abaa8bc1dba3d282390f956541005821  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/typedefs.cc
! 3964402d09fc1db951d4732ed1ec16d7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/value.cc
! 004d821a2531f07ab341846a187e7de6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/explicit_instantiation.cc
! 68f9911985e88eb3f17c3ef5ea1f1019  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/typedefs.cc
! e597db86e2d399a7802b770cbc8bb85f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/value.cc
! 9d41f02c8817c6d8a20d70f22f030e3b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/24808.cc
! 29ac31457248d90ce534cf0f5428ec44  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/35637.cc
! 4308685240bef8da36413b6c69369642  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/explicit_instantiation.cc
! 5eaaa7d2f1ab3dc672d1aa5337f03014  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/typedefs.cc
! 051cb7e659068c1c5fbc0915d308ae8d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/value.cc
! 9ea75e6f3e7f4215ccf6de2c3889cc51  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/explicit_instantiation.cc
! 1ea7eb9b18a880107c6b83e9ca340eed  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/typedefs.cc
! 15e146a833d8a0554ce2a863d804fcca  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/value.cc
! 79c6fe497acc6504768f4c5587ecb7d4  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/explicit_instantiation.cc
! ac7ef1e95565936e5ebd4ad9d32cb6b2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/typedefs.cc
! 7e109016fd3676144983802d58d378ea  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/value.cc
! 854e624df4aa1fb304b5d55a83dafd27  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/explicit_instantiation.cc
! 8625a3d891d1931899083ee73e4a8abc  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/typedefs.cc
! 68ac1fd60be6b5bc9792ad306197513d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/value.cc
! b483a9fff13165fb02af65f2e2598028  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/explicit_instantiation.cc
! b50d20a07ee7200c697cbc22f86af9d8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/typedefs.cc
! e29daf40cb4609f2a22d977466a3a6da  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/value.cc
! c49cf95db3a87d0f03c840059ad0a48c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/explicit_instantiation.cc
! 7a21b97caf4a0b80b02613788f8d2e1e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/typedefs.cc
! 3cac8d2eaa5a38f83145dd6ef8056956  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/value.cc
! beef8b0c11f0cba18d1b8f473874c185  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/24808.cc
! 3042964318a76bf7f625e43014c18061  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/explicit_instantiation.cc
! 299c1971a65a715922d46f22c478a0d5  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/typedefs.cc
! 63d261910d64b0782cf7f491c52691d8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/value.cc
! a4520d1fa282459f2274720f977166c9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/explicit_instantiation.cc
! 6f54aac0596a8528c17762824efc3ccd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/typedefs.cc
! c47bdd3b5c522295a7fcc746982caa7a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/value.cc
! c762d9dc941ee74bc71d663da582acbc  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/explicit_instantiation.cc
! 1ef584c143ace6c876e59c4339cb96f1  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/typedefs.cc
! 72b05d77f361527a187b05b39058a335  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/value.cc
! f0c3d32ff31f70def1a689d2d9c1d6d6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/24809.cc
! 6ca35707e71264d5a3f9aa56af38a0ab  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/explicit_instantiation.cc
! 9eca54e60b32883a4c203047731a374e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/typedefs.cc
! 94908ac7856232e0ce30506fcd1e0f3a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/value.cc
! 9383fa65a66b09f1415fe71cddb7748a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/explicit_instantiation.cc
! 6107fa7ad9fb92633da99a05fd4d3298  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/typedefs.cc
! 0fc6f0623483829f121ad1e5872b20df  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/value.cc
! 093c083e31b4ddbbc2a13c0f84197f77  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/explicit_instantiation.cc
! ea186a82d29b9f20a62e8840831219be  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/typedefs.cc
! 00ba16b784d0c16778895b18c58c1cae  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/value.cc
! e495feae47d868cb6260d143ce7217c8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/explicit_instantiation.cc
! 175eb402079d449fb22df49d28afbcdd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/typedefs.cc
! b6c2035758098fad731b6c2a7bb9ee33  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/value.cc
! e3abc7b12a86bbb04caf17abac060faf  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/explicit_instantiation.cc
! 0f6e8d909fbe34b22aa28d26cd66e835  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/typedefs.cc
! b4b32fc8eb68428aba3691a406b7db91  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/value.cc
! 9df9779824862fd9604111a0ac035b7d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/explicit_instantiation.cc
! 75790598d8ed931a9bda043fd9b0b8d2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/typedefs.cc
! c4486dc81712d27df28e31e779e49183  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/value.cc
! 2d5d6b20b39f23268ffb1985284efcd7  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/explicit_instantiation.cc
! ddc0222ca042cd61e002279168f1d612  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/typedefs.cc
! 96caca9b767a35eafee2a56bb7994e69  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/value.cc
! 9377b607fedf644482d795262d744739  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/explicit_instantiation.cc
! f926dd25ff787eaae55d6b8c8ec991af  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/typedefs.cc
! 7cc6619e588e4b04e302e6098aee259b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/value.cc
! f44dd3cae40a0c4b006e407d881c7378  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/explicit_instantiation.cc
! f0163c46d09fce19b7ae4106d6c71a10  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/typedefs.cc
! 2d59f85b67d3a17b7b39564f9bb133f6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/value.cc
! 64b8e69dbc47cda54fc0cc8268bed4bf  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/explicit_instantiation.cc
! 1ee4be7bdc7877cf67399a19bc54512a  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/typedefs.cc
! 003d32c7778a96500e6c21e7418f51f9  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/value.cc
! 3a4d25c176cda7954372823d8c0ad91a  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/requirements/explicit_instantiation.cc
! 5a9f4d65211e0cd01fa8b957175b3a80  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/value.cc
! a17953b7261572c042ca98c1ca44b1ec  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/requirements/explicit_instantiation.cc
! 79b5d274e9771537f75733999e0e9ab7  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/value.cc
! f7b2b94d38bc39112582dd7e341db45d  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/requirements/explicit_instantiation.cc
! 014b382bf853f568c242fa6ab907c18e  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/value.cc
! 49ceb60e85bab58f179c1f2a9f0ca84c  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/requirements/explicit_instantiation.cc
! 8bd41087983fa4b645c833b8b5aabcbc  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/value.cc
! 56cc9bf9aa4000621690eb6c5de32af2  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/requirements/explicit_instantiation.cc
! 1134f58462296f6453ee5b75159c1dd2  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/value.cc
! f7b52cd9f3b030bd108127082aef0db5  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/requirements/explicit_instantiation.cc
! be546b1d32d8ca86637b112f4903d45e  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/value.cc
! 07cf20c848bf4826be2c0a787c1648ed  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/requirements/explicit_instantiation.cc
! 45e67dd183bfa1bd1d38981d7d6c3c8c  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/value.cc
! b61d4eb5e8b55b70a57139a1590ad802  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
! 85c01c1d539f1ea23bd4dd676bd8e7ba  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
! aa30eea4102e0fe75f72d11091552f12  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/bernoulli_distribution/requirements/typedefs.cc
! e3c413571cde6db9f27a66d85b65b0e6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/binomial_distribution/requirements/typedefs.cc
! 7e368934cbb8368c9ba3aa74c0aa6b78  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/equal.cc
! 022960b32b5d3fddbcfd746cb9c437f7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/not_equal.cc
! 7228c0f69a5ffbe5265fa0ec7e3115cb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/serialize.cc
! ce1f617d4692cfb9941d60f3ad8eba03  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/constants.cc
! 56bd367c121ffbca95d68a4b3bc425d0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc
! ae77ba612b4710270e31215927bdadb7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/exponential_distribution/requirements/typedefs.cc
! 075e787576bbcd4c2b8459377b462829  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/gamma_distribution/requirements/typedefs.cc
! e588fcaa521261c55caab2194dc1e2d8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/geometric_distribution/requirements/typedefs.cc
! 2b4a77776176765796509e58f9fbe4d5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/default.cc
! e400c1b3a4a06a6ccc900a1ba7ac8515  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
! c6ff0de9024f7bbfec3440a52f8b9341  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed1.cc
! 92a404e0c7e79da4ea3864f10e76585b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed2.cc
! 36613c9555a75883ae031e395d33ad1d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/equal.cc
! adf9545c24f71afdd8f2bb7608fb4402  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/not_equal.cc
! 694cbd2d5deb2828ee68e20c0bf94319  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/serialize.cc
! 881f6c8f51b8d34c45168359586f822b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/constants.cc
! 1cf2bfd3a42742e8df1cadd203eaabbe  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc
! 6ef8af6b4013825b1a9460c4ca7b76f1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/typedefs.cc
! 2fde750903d6077d00cc4f737f17e45e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/default.cc
! 0d621d7050bb8d6653f6f2d59a990391  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
! 206a183a4d6d4d9ada506570972e7221  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed1.cc
! 3f9b34192aab49c53c440a9f249880d3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed2.cc
! 65a05a78313501714f39f2a76331ca19  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/equal.cc
! 589c29770325eabfa5748ad8cf411a35  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/not_equal.cc
! 1f1055fab9d207a31d743add5068c97a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/serialize.cc
! 35ef834eb8f6e2ff38c29dd191cc1acd  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/constants.cc
! 4453ec657399cfd1b8c7347aedf46db2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/typedefs.cc
! fab7b686159819520c25eaf7df893b1e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand.cc
! 45949d381b6fc0a4fed481a12bbd237a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand0.cc
! ae9c9bbff2ef31c37eba85a256e8a7e9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mt19937.cc
! 0bcb66040072b500a1bf5f13f071d500  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/normal_distribution/requirements/typedefs.cc
! f5d04fe6180d3d6097cb2ec7513a8b4c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/poisson_distribution/requirements/typedefs.cc
! 2b390b76076c2a11fb04139aa526f94b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/default.cc
! e10a5244a1366f6c7b13cc5bb640795e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/token.cc
! 9fab0e1890ebfce3f88c99b457402758  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/requirements/typedefs.cc
! 587ae5105dc0992b0752b58a577dbc56  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3.cc
! 2b55a539ed453cb83e3403db27ab2c95  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3_01.cc
! b82aad15ee5166ab0b32538a4184c0ef  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4.cc
! 7bfe3303e0757e1dae99049e328a1e7c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4_01.cc
! 1da93ec0d5157972f3581f381bc5eb28  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc
! f20d984edc554cbaba19d2effc5903c3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
! 63f8ddcc344bc456faf40d564b9a0ead  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed1.cc
! 2e0078fc803e7cf36ae0dd0f65e6b98d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed2.cc
! d1286363f45c639efcb2bfad7fcb741b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/equal.cc
! da8e103623bcd350fc18514b52970bab  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/not_equal.cc
! d88b75220aa2c2ce77d03f77d012e314  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/serialize.cc
! d033dc9ca27d6e3cbd1566734ebce1b6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/constants.cc
! de0e19c547c34d0c4fe750e3df8c1d9a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/typedefs.cc
! bd66c00277de9d35581d64c3653edbc6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/default.cc
! a3553703c85e047c62bcf48bea989ebb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc
! 793cffdb15a3a2a933d9fcd44cdb96ca  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed1.cc
! 1ac6c2f28749dbb191b325e701164373  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed2.cc
! 8c91ec1a93669bb4c858975a16a0b55c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/equal.cc
! 029c2853a424cc02bfaf4e6c984b6438  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/not_equal.cc
! 844cb0fe95ea7c1d0a4798f9045d50ec  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/serialize.cc
! fe8666d6531aec6bb9e822a00cabab88  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/constants.cc
! edef5b00bbc6ec6b39f87bd474edca9e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/typedefs.cc
! f4643869052f9df5f9be696998ecc232  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/33128.cc
! 9c904436885d040e07e4d5038e4fd1cc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/default.cc
! 4aab2b682d719d0facd5cae8e0b1cc09  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/range.cc
! 5094067ad4775e593a243d9285073b6d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/requirements/typedefs.cc
! 536e8eeeb358554d31f60055bebbfaca  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_real/requirements/typedefs.cc
! 3a02a2070e71e09adb0d959a86c3cc43  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc
! 75ab9d5dd6d4e889634103da316ddd63  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc
! 58312b673857344c2dd17c135b228777  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/cons/default.cc
! 5e7248d9bc2c54c0f4d7aa6836367ef7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/equal.cc
! d6e464776ff329427cfb66270716767e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/not_equal.cc
! c5e6d49ae9be09b65c5cda3af8cbccf2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/serialize.cc
! 9c33141c803ff670a24ef3b28b9086c8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/constants.cc
! 0f68bd65614d6adb7b397b14b100e6d4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/typedefs.cc
! f6bb745be1293956c9a8b41bf06babd7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_nan.cc
! 813f218b3d57b91c571efef0a281fe6c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc
! c63ddd767cade32cd3dbcf860a027960  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile.cc
! 5323cae1855ca8cf687dc229a8805136  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile_2.cc
! 84441a8392ec888365e5b4d30b403ad6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_nan.cc
! 54609ef34f4cbc84e01e62a15031e01d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc
! ca08a5ea440afd5dfc331086370a8354  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile.cc
! b425c697fea950bda5d234883d4d1836  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile_2.cc
! d9d2930908e1e6b800cac38ca9b55064  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/pr86655.cc
! b0a9c916e74749f27144234584f65341  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_nan.cc
! 688511e4cb448128ce064dc88b59f90d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_value.cc
! 4a3b9c1b50aab2720488bd57b5047ee3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile.cc
! 4b9edd0b629ef08e3892ba36e873512d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile_2.cc
! 89ff95178c4b98798629504770014cc0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_nan.cc
! c0e4d940a40ca4b9e1cff8fcec38e547  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_value.cc
! 2d8871cd92fbb66758800569642468e0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile.cc
! afb38524b3181033aeda70bd528cf0b4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile_2.cc
! 7d8cc0a68a2201f94b737d60635083cb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_nan.cc
! 5f8edc5b7051360e9191c4b2c4c3ed44  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_value.cc
! a130de8f87a8f3b0294a4f38b4de53b9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile.cc
! fa382baf110e994b9828806905d44385  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile_2.cc
! 6ae49ed3246cf5b4a614b165040c6b9a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_nan.cc
! 06121657d81c0317fbe4498e20c5a10e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_value.cc
! 43034d1634691ac1f0cd197b85aa8cb6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile.cc
! 4024c7d36b6930ae251ba9dad1e0964c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile_2.cc
  4618aff82312f2efbcdba760637d68b5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/pr66689.cc
! 9b3078a504bb5b8a9bf8b01fb8b3c406  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_nan.cc
! ab72a53398eb16486b0be25de3a52526  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_value.cc
! 81615480ca415783a545c33daf39b62f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile.cc
! 3aeab951ea9edcd6dea55a9fdef9305e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_2.cc
! 4e05f780e46585a3a2103c457e6d5a53  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc
! 615425c2c246d87b0a7104abe20f3781  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_nan.cc
! 84dfabcdea67ba72904fe956902f1ca5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc
! af4b17f9eadf9403b79e8f9a892b0daf  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile.cc
! 6861d4aeb7d9caf4b08e9ef8cf690ec5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile_2.cc
! 03e7994b25793f8b114a962031648950  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/pr56216.cc
! 23805067e85e8988289bc867c0d3e036  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_nan.cc
! dc67ceb3e161a0faf694c1395a95c6c2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc
! 2b2497a11570c07363fb525727cbf7c1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile.cc
! 1b9a69162f9f5945d38579ca696f99b8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile_2.cc
! 0d4e7141907693c074205ffad67e48e3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/airy.cc
! 7cb6363fd8ad69531fa5a73f5b9a6e7e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_nan.cc
! 1ec6e906ed2b1dd7d40857d6c38e7df2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc
! eeb12daa44b40c4c83a4d0b2a934885f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile.cc
! d6723af964441f356e35dd8d522f0cb4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile_2.cc
! 3205afe019df3f7a2d805147b8d4d5f5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_nan.cc
! 0e0fe39ced48f5834122c725295e548c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc
! e66f160b65d522f5956e6eecfd545e8f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile.cc
! ead4f416e44792949e31814bee49a967  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile_2.cc
! 65389ebf4b1c36e6a5ee32026f15e947  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_nan.cc
! 826e5102f6b89ea852e0f417b7476cf4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_value.cc
! 89137219f1586c91c030db53d1c68aa5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile.cc
! aaae8059b814330fcb3a80e769121a18  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile_2.cc
! 9d9cc1fa26e0ab0b202fd702b8d9c02d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_nan.cc
! 2dda9d321f984682ea247c0186b18cdd  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_value.cc
! c0fbbbb77dd3e950e20c00bd8074b25a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile.cc
! cd3cc0e4f01fdebe209b5abfb66bf998  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile_2.cc
! 493009d3835525aef4a610f390ee602d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_nan.cc
! d656a0b8adb6f127e47d576a34697aa8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_value.cc
! cda4d3ed8c6c56c3cda0ba5a3eda426e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile.cc
! 446ea60821522d9d638f8cb2ecf08776  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile_2.cc
  b780a349356e83ff98346ea066a7c8c7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/pr66689.cc
! 9359b7406e3da42f7060cb04dd23a0ee  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_nan.cc
! 9e83beb0808db318f00f028150ff2c3e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_neg.cc
! eb002834bb5d9487df58f88b4b369c97  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_pos.cc
! 03f1aa7fccfac99a7e1a5db0e4fee972  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile.cc
! e5224bfbf8a611e85648640b84384bb7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile_2.cc
! 15e9ee1bf758177636f00cd70790f4e4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/pr68397.cc
! 4c1f6111be708b4e593d1abe482310c6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_nan.cc
! 256c9affc33d80442af1b66bdb467252  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc
! 29eb3f8b16f7796e9417c57c8c43cc7f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile.cc
! 7099e5b0fa4c49516b96a71809b2a9e0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile_2.cc
! 51ad997535d975cc7fce2cd68dc8ec82  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_nan.cc
! 228bfc53b2fbdeaa7385737b2b89aa38  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc
! 42ff434209508e124dcf144a744a03f5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile.cc
! cba9b33462e78f0db5956c1da6744bc3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_2.cc
! 1b3e571fe6d50946ecdf08ca5b96b7f8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc
! 05196b8104adc119296f417f5508957b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_nan.cc
! e504cd442141b58dade42f3ceb2e3bda  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc
! fe89b55d92d3aa5a933c33a850887498  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile.cc
! e946a0b7840eb4d90ce9cad5f9b706d7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile_2.cc
! 2d7e33896db2fe74f68d9c8568ef0d72  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_nan.cc
! 22f21c503d835059cd9ebfd77292fbfc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_value.cc
! e9b731803333ad79a24e42336b68edd7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile.cc
! 6636ef8d9d86981908456ad00f0a663e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile_2.cc
! 7709d62eb7ee48a1ac5cc44ae56b63db  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_nan.cc
! f7db16f2a2928aa9162e69def4796851  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_neg.cc
! a1853878f1ffcdc3f807a84267f7e072  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_pos.cc
! a4540ea0f33d4378730a105599f77267  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile.cc
! f97c61bdb1c9cefbafb5c5a0fd060047  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile_2.cc
! 5021800b06c0d8b00b825e2d4c177256  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_nan.cc
! 87f954cf4fa248bacfb274423f4510b0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc
! e6e6ad06e66c4188945ff08d757be312  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile.cc
! fab680d4e1028403a939991d0e515320  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile_2.cc
! 54945f7b82e466ab598d87e48a93472e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_nan.cc
! 68ab45718e56dbbb4810b66b3a71b7b3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc
! 00391a08dc9ed784eb6807674c4c2fc6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile.cc
! 0845786c25d9d39e62e7b380d92d34d5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile_2.cc
! 553e0e0ad1de286eec12ff25cc8708ea  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/pr86655.cc
! f0a648b1e06a4564caaae81550c67e5e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_nan.cc
! 843ab7fcec5ebc1eadc3464bcd6eb87d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc
! 0a31101ff4df59742d3b55a18c5cc072  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile.cc
! d1cf98c2c9ed769ff8cefebf642381a1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile_2.cc
! 3e59c3ad89db9937998cb65f34b065e1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/testcase.h
! 616bbdef9ca0aacc8afe1212bc819d80  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/empty.cc
! 8b5c50064c527dd833cdd4b749541547  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/max_size.cc
! 7d539e4b5dad5b607b4275ccb3c8a28d  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/size.cc
! a724af4d253dbb3f6eaccc9e7b706ade  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/equal.cc
! 90711837f390f035d1225c93887b90c5  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater.cc
! f07c66860613a5cbb28afcfd2ccb4785  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater_or_equal.cc
! cde4479fc278d81686a77d4bf6cbe31e  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less.cc
! 3c997881bea8f8a3a56ed5cc8dfaf2f9  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less_or_equal.cc
! f65e8e0c7a17562c364beb436c121561  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/not_equal.cc
! aa662ca80c14de06c3cf760e18a6b556  libstdc++-v3/testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc
! 4f1b06ea782f0dc53aef99c1eba8bcb4  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/at_out_of_range.cc
! 8f2b9f81f60b98732a9d09aa34a33653  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/back.cc
! 91c5fa85d892c41b068d9047d59513f8  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/data.cc
! 858fc15f2f5fb8d19da277a2a6440694  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/front.cc
! 3fd02fcf63a2aa5b71f4013ddc23753a  libstdc++-v3/testsuite/tr1/6_containers/array/iterators/end_is_one_past.cc
! 49e80b9407a4a2f706d61a4f22721c91  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/assign.cc
! 1d694425a0a5e8aad6b99fdfd37443df  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/contiguous.cc
! d1fadb43a390380a13fd6717d1b80e32  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
! 335e22f7f9a89ba996a9d9a9d1f5e226  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/member_swap.cc
! c580d9414ef0b6ab49c6f7205d8a97c2  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/typedefs.cc
! 7d6b12604f66282b00592dc4e9afc4a1  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/zero_sized_arrays.cc
! 303e98dc4c11589d34e4cc18c5415159  libstdc++-v3/testsuite/tr1/6_containers/array/specialized_algorithms/swap.cc
! 372cc1a42f908d640f39f700f986e3b3  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/get.cc
! 68b2caadc52a4c25684e2fce1b67e110  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_element.cc
! 74b2443072bbc996a18979b377ef4069  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_size.cc
! 6fdbd80ee18a3fe9d10a30a0931c7d9f  libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
! 1a09f0a08e00c8b5d142a8aef9368e2b  libstdc++-v3/testsuite/tr1/6_containers/hash/operators/size_t.cc
! dc7db6a5d600e5d7b08c027ccac31227  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
! 759c2ebd72bd00917dae8380daceac0f  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
! 702cc460514538a89aa372599d9a7b7c  libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
! 7912bbdc150724ab997e3e1ba80507e8  libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
! 9986e87e7cb2655b13f097210de78a0b  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
! 9851e7ac0320b58f5ab8e501a0c30d09  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
! eb08310a8597a2a1baf10c223c073388  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
! efbbcd740c7018f6e51cda7ffc828754  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
! c11e76eac82b960c95066e6b3dee3d20  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/35480_neg.cc
! 267f2a7ffdb8591e5416ef924e6c5262  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/comparisons.cc
! c04206e75ba28a407a3b957584a3f057  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/assignment.cc
! 76a8aa17024cffcbe7101ba25e48d88b  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/big_tuples.cc
! 6d6363ee48045984ee3074ff10a6b9aa  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/constructor.cc
! 009f478bb1202eac06bc97f8d4b73837  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/23978.cc
! 77d348268af07651eb27705617eb3dd2  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/make_tuple.cc
! fe191197f136e39e57b04b169c2651a8  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie.cc
! ffeada877190c8787e771abead14f03a  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc
! db07f4e7f8cb9088b92b7ff0791b7294  libstdc++-v3/testsuite/tr1/6_containers/tuple/element_access/get.cc
! 5c72e135bf411ff0e055adec57494589  libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
! 411b3957ca65401551eedae5f39b118f  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_element.cc
! 916ef61b2fc9de6d0077c0ecf42ee33f  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_size.cc
! 9def57126749156333ff15e1dd6b8b3f  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
! 97f6168cda6bb9bbe311d7aadee8a379  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
! adfe3f2cb9ead12a3012007657c62a24  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/1.cc
! 5a4b798f7b52a3f7fe81c0f7556101de  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
! 1b4f221bba0a830488f70f433d3ebcf2  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
! 370c9351120aa452edeb1518a7fa80a2  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
! 7deb57662684f3a4a1b2d9b40fa49914  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
! e9a400ad6d077e7af0c7378d2a409a90  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
! 535d72069ca8bb694b2bac18d0d34196  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
! 9c040f338629674ee574221af03ab469  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
! 064938eee7132c06197a0adcde256c14  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
! 631821f7d84761f1fb6e808725bf8001  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
! 1e2bb619a27bfe0780fc114a14ce04ac  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/typedefs.cc
! fe32a20673e1fd7a885543cc8b97e1ab  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
! b7273250f5a0e5d66fee19c28a9ccb79  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
! d7fd821aacfb2dfdeebc2a97b4a5fd0c  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
! e3edff883c85e65fd5613a4b70284260  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/1.cc
! a79b73ae036e67355049bd5d0f9f9359  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
! e27d6cc3b4b3841f52c2bf92a7d887da  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
! fde52ce4bc0f02c20dfd81ec979e23a5  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
! a4948ca282ee07fb0c6602059e4d9ab3  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
! fd32686bfc48133f678367065a580ed1  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
! 24673621f07a7e6ae0e920cf0148d3f5  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
! 578251d832dddc3f24872afcb42f900d  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
! fa8705557710bf24cf421f3f4a6fe9b5  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
! bfa9664696a8de57b2507c0d01b42530  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/typedefs.cc
! 20c6a8b95a193231d230a4a0c8d9b4ae  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
! 12786bdeb91aa8994f512cde04c44fe3  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
! 296dcd4f26c093e2e42aeb49819978f2  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
! 2a4a4e9275f66cd14a95f3d2128f56c7  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
! e6bda74230a30df0b2dfca96e128d546  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/1.cc
! 6c0793b572c90e136539c5bd28171b78  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
! 55ffe2dbf5aa8c080b75e753f1ac731f  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
! 21bb6ba828a6da798ad023290b3bd664  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
! d2db6ebff6a11db260dd066d481fba47  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
! db8830c24675d6eab14d6d7baa2c84eb  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
! fc8c94078a2b6c65f1e1ad0d0fe46a94  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
! 7e128179582d579f440c43753e5672aa  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
! 7ccf023e8a69958f88818465b2c7d689  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
! 282675ff5048f756fa9213b93b441b63  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/typedefs.cc
! 68c99ab8cea079051259b0b5508a6663  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
! e254d2bfdc3c8d070590411db48e3215  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
! be51765caa691f72d48357bfbf60c934  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
! 993a5e935635f4ffcb4da1120484c88a  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
! e9ac6b60dfdc6b6338260048f661224f  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
! 5a98a9724acb86c10d08ffc173f389e2  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
! 358e8d90f4c1d9a2b991b75bc1c22b53  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
! 83158ed1561b4c9274017b3f234e4c3a  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/1.cc
! d2ec42944df0263dfb4c3748ebdcd915  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
! a3d2fed65bf447f7b3585ced0d5a4e6c  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
! 6753235092c1badfcc620f54d894c9fb  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
! 7b55e191c60a68085cf9bbcf849da3e7  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
! 8d8ae54530583239ec43cd1618b0f2a7  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
! 6d3888e86191137db1f344126d758075  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
! 999e6eeb2c8f2ea1d04cd05e3328a555  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
! 8e7580e68b0b380f7b304a037aaf1b56  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
! 52ed91dbee687f937dc753013c70f42c  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
! 07d80b4c89e753068ef14d696047a077  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/typedefs.cc
! 09be7294c1ef525c2bb56fc9d729689f  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
! 8e04d42cf887fe84ea3116b3b827e665  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
! 1aa144a49fa8012d1096c0ee6e5b1089  libstdc++-v3/testsuite/tr1/6_containers/utility/19535.cc
! 73f0dcd556b3a1f012e59f28fde6b9d5  libstdc++-v3/testsuite/tr1/6_containers/utility/pair.cc
! f25cd81c7336002e8e521a5468f137dd  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc
! 4c88aa7ac9fd7248ff45a2987fa4c319  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc
! b04d83c706b5acc7da05e2f44ee7d110  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc
! dd4e771a4847bbb26d632bf812a0cac9  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc
! 193fb59b72ab73a12151745a2b7c9197  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc
! 30c2e6b94311d2dd1e0e637a78b3e3f6  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc
! 00e07b0d94c67a74ddb23f25b279ff82  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc
! 1f062e5df54794b8cc4c6f4d774bd293  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc
! 3a058ce81628588018303df0194793ad  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc
! 68989ff85614588a085718a66603e0d0  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc
! fca13ef03a81bb74ec3c23f20dbdff50  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc
! a202c62a0f7ca4d4d124f7e4e153599c  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc
! a516ff7b72db9cb1ca7628e6efbf3d2e  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc
! 68fa1f9bb87e818ba4b32456724e36b7  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc
! 0acb6e270cbde19b3c6646603b88345d  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc
! c661a58eff05b83ed553e716e02a1e0a  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc
! a47c6bc5d66e0937d04618e0b46cd6f7  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
! 83c44ca5cac275e043e2bb4fa5856d2a  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc
! 8fe63700c4cb15328faf4ae3d7a9854b  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc
! fc0802d52c970727aee9ebc3af441f28  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc
! 0358ffc730f5e5480ceefdc28b93c3ca  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc
! df9e28f9a9778d519dc0968f62340809  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
! f6d0c2ac551696ccbe8ae63b76b028be  libstdc++-v3/testsuite/tr1/7_regular_expressions/match_results/ctors/char/default.cc
! 099830806962c5060ac92d8cc1bd34a7  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_awk.cc
! 6ee3e1fde8e766b19d544309a9ee189a  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_basic.cc
! 9823ba9c79eff631b19f9629054cade6  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_ecma.cc
! f699e2cf899c389e1e83b59c65e774c3  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_egrep.cc
! 26ff94c75c2d3c1e7c8ddc0c38c8a4d4  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_grep.cc
! bfa46934ca3deb2dd281d852a22d8eb5  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/default.cc
! 5006fb939259dd9232e21d0d2d815663  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/ctor.cc
! 8fe781dd386f89a89769f0ea478c7816  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/translate_nocase.cc
! 71dc2def7fa8d3f152350b678f752aaf  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/value.cc
! a23bd179b0aae20831a2479b43e99fda  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/ctor.cc
! 9a9ae404dd82f8391f943fd3f2db66f6  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/translate_nocase.cc
! 71dc2def7fa8d3f152350b678f752aaf  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/value.cc
! 9b2e49a89c28669fcca44d241d9a4757  libstdc++-v3/testsuite/tr1/8_c_compatibility/cctype/functions.cc
! a2e4acd9512313de8aabee94ef7ef185  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/functions.cc
! 005949128aa3c85dad43e13c2820e950  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/types_std_tr1.cc
! 2ba56ea4eb8346be96f4749ac3f4d268  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/functions.cc
! ecf09f1199d66024befa29f54e7a97d2  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/types_std_tr1.cc
! 66a4c8927d3863fb1a5fe99c4d6d0243  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc
! 907a034cc1aa108abcff46acc527aa6c  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/functions.cc
! cc4599f56a2397b5d648298cc8e08210  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads.cc
! e9ca77e828334b2941c279e802ff9337  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc
! 1f59d838f34067b9bd8779be6ed9781f  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc
! 87b7584c4486ba9c2daca2d5fed7b797  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/templates.cc
! 07173bd5ef90db2732281625b9712d23  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/types_std_tr1.cc
! 9955b7af9587a692fc0943aed897e8f5  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc
! 9fb9c3a6ade4d68056f73972a68ea8ae  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc
! 96b452eeba25592ebdef0e1bb3254066  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/functions.cc
! 9b6e63ec0f69adb963d1e8bb8cc113ed  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_float.cc
! d605b42925a0aeabcfb2fac64b2205e5  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_int.cc
! 4adc9ee9857a1a01a8c8aa166692b47f  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc
! ae956c96576c060f0e7609a758ff2677  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc
! ce8b761e796d57e18fd979461a9d51b0  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/functions.cc
! 29a13641d6d75bf5f29927933c98e00f  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc
! ef78729b7b710ad0bdf168d4d0a85e81  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc
! 176058424d673e00ab0e12b0b008ce12  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwctype/functions.cc
! d2cfb8ae709159b1f5abf17070d0f22d  libstdc++-v3/testsuite/tr1/headers/all.cc
! 4357683b098e992b9d90e74e2350bd5a  libstdc++-v3/testsuite/tr1/headers/c++200x/complex.cc
! 42deafd73807af3399d8362dabe033bb  libstdc++-v3/testsuite/tr1/headers/c++200x/math.cc
! 77aa6ac4bb3f27ea7131745b408fe094  libstdc++-v3/testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc
! aae313eaada14bd7e2f458a4f4694b7c  libstdc++-v3/testsuite/tr1/headers/using_namespace_std_tr1.cc
! a2533fa33e3d8eaad7622f1ef5a4e6a2  libstdc++-v3/testsuite/tr2/bases/requirements/explicit_instantiation.cc
! 50abc487de7d4c082dd45ecbc020c623  libstdc++-v3/testsuite/tr2/bases/requirements/typedefs.cc
! fe6b20ff4b3a1e1fef1a7eb53360b2d4  libstdc++-v3/testsuite/tr2/bases/value.cc
! 84ebc6e8da6db557169d943ecb353058  libstdc++-v3/testsuite/tr2/direct_bases/requirements/explicit_instantiation.cc
! 3c8832af88e2f2b58a465685512a69b4  libstdc++-v3/testsuite/tr2/direct_bases/requirements/typedefs.cc
! 1a487f58cf23d9c99d3efb6f8ece4882  libstdc++-v3/testsuite/tr2/direct_bases/value.cc
! beddee4ddf76972fd3cd4c246b60de53  libstdc++-v3/testsuite/tr2/dynamic_bitset/cmp.cc
! 991e9187e5e2cfb410895e6d00cc6e12  libstdc++-v3/testsuite/tr2/dynamic_bitset/cons.cc
! 918442f8cb806d175ad7e90bff1b5f93  libstdc++-v3/testsuite/tr2/dynamic_bitset/copy.cc
! 6d0f596c7637a7dca4069a595bc97257  libstdc++-v3/testsuite/tr2/dynamic_bitset/move.cc
! 4b9ed47580b8051f43b32cf90e355182  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr58729.cc
! 0f300523abb3f1c3ab8923732e24f61c  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr87784.cc
! f1cec99a51a8234b7abe366632c71ea3  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr92059.cc
! ecda9a957b2187c0e03c98357f9a8f67  libstdc++-v3/testsuite/tr2/dynamic_bitset/string.cc
! f02828a41d8c22f0029695cd5bd910ab  libstdc++-v3/testsuite/tr2/headers/all.cc
! d534009d336b70640a526636a626afb6  libstdc++-v3/testsuite/tr2/headers/using_namespace_std_tr2.cc
! b39c43d5015f1f270658bd8500c593d5  libstdc++-v3/testsuite/util/atomic/wait_notify_util.h
! 345fa38037e1e41ba97bd9b0c69ec865  libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
! 8d46d186ab96b2a14d972d7669ef8acc  libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp
! 6214c494c7b11194224c0e841bf9f8ea  libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp
! 7b6e7777ea7b8ca821f33623cbfe9d24  libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp
! 5a59940a27d9fafbfbf8bdefe4a771d5  libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp
! 2a68f2141f4bcfda16db43919d285ad1  libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp
! 40aa3cf01abc87a1a553f447cef883be  libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp
! f6cea26b5fdd408783af0ddcbd1e7f20  libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp
! 3e68edd033f1bb93bb5e98257d5d846b  libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp
! 056fb216cfb45779291c3fe7a5d7a122  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp
! 57c981337f2e0a7ec9db29030e1bf33f  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp
! 89aa65aa30fc75c3dbd41d70db31448c  libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp
! 7760499a7f7d0f2709d063ad5a600a1c  libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp
! 35ed8a78a1d9de6d4cc5f23619c806e3  libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
! 9279c8bee756495d0586b8c49e70fa4f  libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
! 8a834527a3937ab48259ae405783e49c  libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
! b046a9e5c806246eef8dd12c7342e002  libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp
! ea549679a7956f2ca903e14a82b9c6a4  libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp
! 8fe21adf94591a5f22cfda89cb18d4bb  libstdc++-v3/testsuite/util/debug/checks.h
! fd640809991afaf2fc92b95e2bdf4745  libstdc++-v3/testsuite/util/debug/unordered_checks.h
! 145f00653ba9a908cd7de0825f3a8c4a  libstdc++-v3/testsuite/util/exception/safety.h
! 8ac874976beccb71befb2c9cba8cd01f  libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp
! 3a7c6661667450891118eb33649d2337  libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp
! eebfe965d66f3bce1a45046f1458c198  libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp
! 44291324acabcfb5d0b112c619990ea7  libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp
! adf5e8704e31363e1d0b7991327be582  libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp
! 101bc5912f7a377574a3f5caabff3d89  libstdc++-v3/testsuite/util/io/illegal_input_error.hpp
! 8d4c20ce00cd34faefb3f8efac021f61  libstdc++-v3/testsuite/util/io/prog_bar.cc
! 847a32679c6a7dfc56a67ffef0f55f7b  libstdc++-v3/testsuite/util/io/prog_bar.hpp
! 3313872a376471d10580ce14455759c4  libstdc++-v3/testsuite/util/io/text_populate.hpp
! d16f05449c415ae1d15205c3286a302d  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc
! 425eb79c521812fe3b85505de8399f7d  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp
! 13d1b601a74115d9ffcc48eeaa206d6b  libstdc++-v3/testsuite/util/io/xml.hpp
! a76f029535daf1b9ac2ad4860a17f368  libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp
! 945e0f36c8bd478c6df4b5940becc093  libstdc++-v3/testsuite/util/native_type/native_hash_map.hpp
! c9fdd801b14956a878c85e31be742813  libstdc++-v3/testsuite/util/native_type/native_hash_multimap.hpp
! ca0ffcbe920a1c7737435c540719326f  libstdc++-v3/testsuite/util/native_type/native_hash_set.hpp
! 7e1a54cd67d13020f3f579e8775f7294  libstdc++-v3/testsuite/util/native_type/native_hash_tag.hpp
! 257912d53fed20be9b246654d363cf67  libstdc++-v3/testsuite/util/native_type/native_map.hpp
! c2cf0a8359fd6e26e1bd2985e067d95e  libstdc++-v3/testsuite/util/native_type/native_multimap.hpp
! a3e3f3bef2af5c3e67098ca4b62543a9  libstdc++-v3/testsuite/util/native_type/native_priority_queue.hpp
! 277edfcc86672f5993c56da1008a4a86  libstdc++-v3/testsuite/util/native_type/native_set.hpp
! f22cd5c9b8c9dbb8802255454339d7ee  libstdc++-v3/testsuite/util/native_type/native_tree_tag.hpp
! 77c2cc2cf251d8c2c4f6861dfd2b20bc  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
! e6e2f5950532d49c6954f17257f26932  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
! e10057391e675fed5c8306f1951366b1  libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
! e043570662f16d239a5306dd48c9c1e4  libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
! e08e5a619b686fc978a47595f91a3358  libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
! 3f95c9a2692278195af8d14aada2e785  libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
! 4ff146ae1073842453524930ef07d5fd  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
! 666e76dee701994bec661720224661f0  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
! 80fbdb3c5d9ba03d0b2e93d9ce77ab34  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
! bd55241cc55c614d740167e07158ab81  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
! fa9d57006b3088b0ea184c0792b85cf9  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
! 04deb115feea1593d8a61e03585d78cc  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
! 31455c48789b9e94003ab3ec9ed22a35  libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp
! c979ce99082f8fe3724c54c0af46262f  libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
! c9f85fb996fc49bd10884c12199b4de9  libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
! 603826eaad7df65c6b69a375337bb4f6  libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
! 851c0043b97785293e9221a6ff2fee9d  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
! 27a0df38ff41cfa2301f739da97dd946  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
! 0410968211b0676ee2b888396bfc80bb  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc
! 249843e0a4ebff6546e745c45787bc0a  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp
! 7da44b26d82ba663aa935423bb50b1f5  libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
  f229f005fb6b0edfab2a25224f4aa670  libstdc++-v3/testsuite/util/pstl/pstl_test_config.h
! c9e37353b8b63e5ef350dccbc4776562  libstdc++-v3/testsuite/util/pstl/test_utils.h
! 9aeb604488c18b1363edef186f6dc0d4  libstdc++-v3/testsuite/util/regression/basic_type.hpp
! 2b30586c706a0803b0c7b0b5340c3b09  libstdc++-v3/testsuite/util/regression/common_type.hpp
! 90f5844c133f111e44f96033010b670c  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.h
! 6fdc6896d3864ab50cafa6a5c87114d0  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc
! 82d3d2eae951077b5e10e86b3ea8bd2d  libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
! 19a39ad91a74ecc4619a6099d9a9ee1d  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.h
! 21b2a8b35d48082f5be1de1089450aec  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.tcc
! 4e95e26c69102e90542378fcbf6db2bb  libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
! 344d2c395dd08b3ba3eceac864ded2f7  libstdc++-v3/testsuite/util/regression/rand/xml_formatter.hpp
! ba25b32db39d7a9e6456dde308758028  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp
! 578e9a4c1a17518d2bdbeba90a937b26  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp
! 257bfeec27adc369b0e62d41b8ba9b54  libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp
! f303bcbc15176a080e3bed2777181197  libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp
! 5a04d3854d2791d3fb3af3d781a836f0  libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp
! 5f601c1eab8b2500a95d7797813e48b1  libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp
! 0263e41e8228b1655fbe9bed0657a529  libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
! 059fc4cbbb6aa0e7688b38d9f6577685  libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
! 9667c25af29b9f4810f7db76ecf8d47d  libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
! 70777027278d4c3ee2722f74b1b4e4da  libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
! a78d6e28346bcd5f6da00992fbcec516  libstdc++-v3/testsuite/util/replacement_memory_operators.h
! b118360dc53729081653af920dc53983  libstdc++-v3/testsuite/util/slow_clock.h
! dc7e1c2d35ebb40191dc796454b3474a  libstdc++-v3/testsuite/util/specfun_testcase.h
! 51bbc5037f917aa59b4899000102dc99  libstdc++-v3/testsuite/util/statistic/result_recorder.hpp
! 7a47e183ee0fd183832654cb3a3f2a03  libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
! 4be0434bdafb55fc91f65c96548b1c11  libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
! 1168103a2b0dd6ad7ad775b13d83f642  libstdc++-v3/testsuite/util/statistic/sample_variance.hpp
! dd2d5f26057339b2ec8893dc733e2a42  libstdc++-v3/testsuite/util/testsuite_abi.cc
! c6987513d2eef3e10efc78b4c1aabffa  libstdc++-v3/testsuite/util/testsuite_abi.h
! b15d0bf0655a1bd7218a612eeb242a71  libstdc++-v3/testsuite/util/testsuite_abi_check.cc
! 2c7d42c55d24d2cb66c15a8cd6b896dd  libstdc++-v3/testsuite/util/testsuite_allocator.cc
! cb33cbf800f972cf0ed4b0c7d0c358d2  libstdc++-v3/testsuite/util/testsuite_allocator.h
! 3406f1b8a71fea2b28ce19cf8a6faf5c  libstdc++-v3/testsuite/util/testsuite_api.h
! 082749bdffa5cfed38ca7609044e405c  libstdc++-v3/testsuite/util/testsuite_character.cc
! 34cf9127fd7fbbec37b752c3460e7ed7  libstdc++-v3/testsuite/util/testsuite_character.h
! deeb0ac4fe1897a26b55b44220d68712  libstdc++-v3/testsuite/util/testsuite_common_types.h
! 87cdaf1a3d907e96defc6af2cd5eb212  libstdc++-v3/testsuite/util/testsuite_container_traits.h
! 3c13371cde57856ebe6c5f438c97e47b  libstdc++-v3/testsuite/util/testsuite_containergen.h
! 1b7eaae8691b77441a8aeabab38e19cd  libstdc++-v3/testsuite/util/testsuite_containers.h
! 9e66b0ae033d72daff2cad1b4555ef20  libstdc++-v3/testsuite/util/testsuite_counter_type.h
! 2f7b070ba10750e78d46a356704fee0a  libstdc++-v3/testsuite/util/testsuite_error.h
! 126e6fe772371247f4add2cf892e5d92  libstdc++-v3/testsuite/util/testsuite_fs.h
! a8bcb944757bcc7f605ed53ad91f03a3  libstdc++-v3/testsuite/util/testsuite_greedy_ops.h
! 0ad473ca78a70f73efb816533566bfac  libstdc++-v3/testsuite/util/testsuite_hooks.cc
! 6ed57c26205928f2b0b236d9babe2c16  libstdc++-v3/testsuite/util/testsuite_hooks.h
! ccc8dfd3f357e398a838d554ef4a98bf  libstdc++-v3/testsuite/util/testsuite_io.h
! 038c40a42fb90be7627e50dbdedb5e17  libstdc++-v3/testsuite/util/testsuite_iterators.h
! ec325974543a8838d03b1e894caa3ca8  libstdc++-v3/testsuite/util/testsuite_new_operators.h
! 8fdbc9c4bd37cfa3e9b88de93100118d  libstdc++-v3/testsuite/util/testsuite_performance.h
! cdb7e49f89752ff0e4f7cb6cdbb48e25  libstdc++-v3/testsuite/util/testsuite_random.h
! ef79296d08438958b9946bfc8ec1c943  libstdc++-v3/testsuite/util/testsuite_regex.h
! 967ba1f8adc4f1ffca6625d5d7e8bf22  libstdc++-v3/testsuite/util/testsuite_rng.h
! d7779feb385e2abd3a9fa02c408e7fd0  libstdc++-v3/testsuite/util/testsuite_rvalref.h
! e6ddb60824e5d886b176ccc72c7d224b  libstdc++-v3/testsuite/util/testsuite_shared.cc
  529d22babbd76400264568f2be0d13df  libstdc++-v3/testsuite/util/testsuite_string.h
! 6fd0e670469f359b4992751da4f672a8  libstdc++-v3/testsuite/util/testsuite_tr1.h
! 684ba2644f92fb0e41e873a71397783a  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
! 39cc83ca69ddbbe398dd79a2ba6b5499  libtool.m4
! 1432259ed0b6dcef3c57724e3ad93bfe  libvtv/ChangeLog
! 88dfe796542bb4167f39d24ca10de5b1  libvtv/Makefile.am
  b1170aae9472f26fdc8326737dc22aba  libvtv/Makefile.in
  3b765c4f4a0a0f606db1472bce2b8d29  libvtv/acinclude.m4
  84c8143a9310ea291315dcd0c276df5d  libvtv/aclocal.m4
! 469c28bea4ff3f61901f851a93dd6e75  libvtv/configure
! aef48e6e222ecdfc5d416dc52541151f  libvtv/configure.ac
! 0b9f020da784c8393d762557e818283b  libvtv/configure.tgt
  2caccd848c579fcddd2a8c8106cfaff9  libvtv/scripts/run-testsuite.sh
  09a6150d1619f2508d7844f860b3382c  libvtv/scripts/sum-vtv-counts.c
  4835ec70e1fbcd9acd3c280c0060afa4  libvtv/testsuite/Makefile.am
  fda4739e0005be93900b671246d786ff  libvtv/testsuite/Makefile.in
! b0372e2489a3791e6ebc0c0c8b0b1861  libvtv/testsuite/config/default.exp
  f2f173b97a24edb63425420b6dafac67  libvtv/testsuite/lib/libvtv-dg.exp
  b01596489f4e825c77d9429f5bd51424  libvtv/testsuite/lib/libvtv.exp
  dc26824f08dd227e0cba7e7ebc8f4d3a  libvtv/testsuite/libvtv.cc/bb_tests.cc
*************** e18c427700b2de867318b8dfb4ccdc4e  libvtv
*** 124063,124069 ****
  1af090cb318f05dcac1de1af35049bf3  libvtv/testsuite/libvtv.cc/thunk.cc
  4342d1f35d7a127cbf072aea14c40ca4  libvtv/testsuite/libvtv.cc/thunk_vtable_map_attack.cc
  af622745e9d1ebd1a80806c6a477adda  libvtv/testsuite/libvtv.cc/v8-test-2.cc
! 7aeae81412bda1037d76741536189a90  libvtv/testsuite/libvtv.cc/virtfunc-test.cc
  02687d81e25b3d8b61f75737f0a618a9  libvtv/testsuite/libvtv.cc/virtual_inheritance.cc
  85e4bee8e57399ebf8c098da2a829dd0  libvtv/testsuite/libvtv.cc/vtv.exp
  85942493419912cb30bceeaf62d53da8  libvtv/testsuite/libvtv.cc/xlan-test.cc
--- 134301,134307 ----
  1af090cb318f05dcac1de1af35049bf3  libvtv/testsuite/libvtv.cc/thunk.cc
  4342d1f35d7a127cbf072aea14c40ca4  libvtv/testsuite/libvtv.cc/thunk_vtable_map_attack.cc
  af622745e9d1ebd1a80806c6a477adda  libvtv/testsuite/libvtv.cc/v8-test-2.cc
! c1c127e3d2356071466b33c87fb7f461  libvtv/testsuite/libvtv.cc/virtfunc-test.cc
  02687d81e25b3d8b61f75737f0a618a9  libvtv/testsuite/libvtv.cc/virtual_inheritance.cc
  85e4bee8e57399ebf8c098da2a829dd0  libvtv/testsuite/libvtv.cc/vtv.exp
  85942493419912cb30bceeaf62d53da8  libvtv/testsuite/libvtv.cc/xlan-test.cc
*************** dc2332c7582cf3d236d0ee930f63eca3  libvtv
*** 124073,124079 ****
  8ef0aa7efe1764eeb6f68dbd51e6d4b5  libvtv/testsuite/libvtv.mt.cc/mt.exp
  bb4ece037690dc6ecdd0c04662562123  libvtv/testsuite/libvtv.mt.cc/register_set_pair_inserts_mt.cc
  4028191848aead5f1025ef6d51d6460e  libvtv/testsuite/libvtv.mt.cc/register_set_pair_mt.cc
! 9014db843d5e89c18aa8e6ded502be3c  libvtv/testsuite/other-tests/Makefile.am
  481aa959d973aa72ca282a2b6db129e3  libvtv/testsuite/other-tests/Makefile.in
  ed7bc4ea169d6384a32fd76063d7af7f  libvtv/testsuite/other-tests/README
  32bbdc8e2683c298b41d8d68281dd6ea  libvtv/testsuite/other-tests/dlopen.cc
--- 134311,134317 ----
  8ef0aa7efe1764eeb6f68dbd51e6d4b5  libvtv/testsuite/libvtv.mt.cc/mt.exp
  bb4ece037690dc6ecdd0c04662562123  libvtv/testsuite/libvtv.mt.cc/register_set_pair_inserts_mt.cc
  4028191848aead5f1025ef6d51d6460e  libvtv/testsuite/libvtv.mt.cc/register_set_pair_mt.cc
! 8718882bbc6bab92e7d80bfbcfc1bdcd  libvtv/testsuite/other-tests/Makefile.am
  481aa959d973aa72ca282a2b6db129e3  libvtv/testsuite/other-tests/Makefile.in
  ed7bc4ea169d6384a32fd76063d7af7f  libvtv/testsuite/other-tests/README
  32bbdc8e2683c298b41d8d68281dd6ea  libvtv/testsuite/other-tests/dlopen.cc
*************** a39c1926ca0a1bac2ffa3e5389fe2eb2  libvtv
*** 124086,124127 ****
  fd1ee5c194e5759320643df81103775d  libvtv/testsuite/other-tests/temp_deriv.cc
  a28f0d44162e9d978de21ea4c82b411e  libvtv/testsuite/other-tests/temp_deriv2.cc
  fd44dfd4ba421163f0a14a74988ea97a  libvtv/testsuite/other-tests/temp_deriv3.cc
! ca773e958a92621f402ce40526b8ab2b  libvtv/vtv_fail.cc
! 825ea1f61a7d5815ea1d63eab87d7630  libvtv/vtv_fail.h
! 098af0c75c008639bdc6818aa0df70ba  libvtv/vtv_malloc.cc
! 6482a87d219f2d4395cff4406255547a  libvtv/vtv_malloc.h
! fc7cc8a97cca4b2e64d08187622d3e30  libvtv/vtv_map.h
! c9cd02479c9f4c081d88190334e65fae  libvtv/vtv_rts.cc
! 371b70e0175e05ae51172c8e1b5c471a  libvtv/vtv_rts.h
! 9cb11996056223e156b3a077e0fcc41b  libvtv/vtv_set.h
! 777bb2eb8b5e982608e6675b702cfd62  libvtv/vtv_utils.cc
! 76849f682e2cb5f9c2866e45ce1e9d83  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  06c2854f9cfe5864b2885e0d0e9c512f  ltmain.sh
! 8bdd2eafb4c8572f29fbcbdc23300068  lto-plugin/ChangeLog
  aced0d5ba993307440be577533b64eb3  lto-plugin/Makefile.am
! 9e1d03259c911094d39831e7e86546d8  lto-plugin/Makefile.in
  75fc65b35d0a47ac098f7a278d37060b  lto-plugin/aclocal.m4
  26e3d7e6d62bd000d0ad9db3b610e91c  lto-plugin/config.h.in
! 815979436db4965bd4a87ff0659944de  lto-plugin/configure
! cdd46cf8d2e0c0a1209d16991a77a392  lto-plugin/configure.ac
! bc9e6187a4c8f9229109bb779e9cdfde  lto-plugin/lto-plugin.c
  d00a1ca9cd8ba450f1a1028fd3e60dc3  lto-plugin/lto-plugin.map
  dee72a6a60e99528b0d17bf3ff9a1e15  ltoptions.m4
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! bb02e1040b6fc69b0f32837c8393872b  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  507e832af5f2d63b8a78eef217c807a7  maintainer-scripts/branch_changer.py
  c819510f0d438149c1518bda7b165ac4  maintainer-scripts/bugzilla-close-candidate.py
! 2d4e95a61eda25c1f45ddc43b2e7aa50  maintainer-scripts/crontab
! 0f7c07bd35bff7baf8ddba1df6142ab8  maintainer-scripts/gcc_release
  262d529ab10d5bd398f14fc1ec9fed1a  maintainer-scripts/generate_libstdcxx_web_docs
  33d97164a8610c7abf67eff7d28f47ff  maintainer-scripts/maintainer-addresses
  1fcc4f18e9f9043eaea6c3c990d96d9b  maintainer-scripts/setup.cfg
  1012437849cecda6e54b3948f279ae93  maintainer-scripts/update_version_git
! 63500dd3025c4bf2dc79fa8c83bfe867  maintainer-scripts/update_web_docs_git
  89960da3ee98bea76c62bf0bf235d1f9  maintainer-scripts/update_web_docs_libstdcxx_git
  5f2a276ee7b8decec541391229d03591  missing
  fbe2467afef81c41c166173adeb0ee20  mkdep
--- 134324,134365 ----
  fd1ee5c194e5759320643df81103775d  libvtv/testsuite/other-tests/temp_deriv.cc
  a28f0d44162e9d978de21ea4c82b411e  libvtv/testsuite/other-tests/temp_deriv2.cc
  fd44dfd4ba421163f0a14a74988ea97a  libvtv/testsuite/other-tests/temp_deriv3.cc
! 88870f63b78f08eedfa71c929cda9989  libvtv/vtv_fail.cc
! 5e3d7333363a763d2f51dff7fb2e6f04  libvtv/vtv_fail.h
! e8c3a50e00723ff3af14b3bffe87e621  libvtv/vtv_malloc.cc
! 9ac847eeceec83fbe23b9a0e532704b9  libvtv/vtv_malloc.h
! 25f5f96cb0b1e5ef4282b29a0ad0b548  libvtv/vtv_map.h
! e6d3e9b6f3d0315207ff8d39a58b5883  libvtv/vtv_rts.cc
! a937e32b16998a00acabb213ae6ea637  libvtv/vtv_rts.h
! 44bc0a6622cf27dda03030f9e4f87e7e  libvtv/vtv_set.h
! e425b1ea462f3c529b34b9ff001bbf9a  libvtv/vtv_utils.cc
! cd4cfb8e65a8423c9c7dd4fc50514f25  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  06c2854f9cfe5864b2885e0d0e9c512f  ltmain.sh
! 3bc92573bf58448a8a9da783bc6ce44b  lto-plugin/ChangeLog
  aced0d5ba993307440be577533b64eb3  lto-plugin/Makefile.am
! 18a64561ab77c015f8c0e477b147509f  lto-plugin/Makefile.in
  75fc65b35d0a47ac098f7a278d37060b  lto-plugin/aclocal.m4
  26e3d7e6d62bd000d0ad9db3b610e91c  lto-plugin/config.h.in
! 6f24f162e9f694a5bcafc58c82a5e3fb  lto-plugin/configure
! 40efd97088318d4823aab5e72c85acd0  lto-plugin/configure.ac
! 9dfea491b8578d0e7ca53f900f5d5c6b  lto-plugin/lto-plugin.c
  d00a1ca9cd8ba450f1a1028fd3e60dc3  lto-plugin/lto-plugin.map
  dee72a6a60e99528b0d17bf3ff9a1e15  ltoptions.m4
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! 077341724059032b39a079a86a5b874e  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  507e832af5f2d63b8a78eef217c807a7  maintainer-scripts/branch_changer.py
  c819510f0d438149c1518bda7b165ac4  maintainer-scripts/bugzilla-close-candidate.py
! 7e28134a228d7e3d37cc3f4d1e04a082  maintainer-scripts/crontab
! 1658fae6d4e2e516394d6b3a24f43cd4  maintainer-scripts/gcc_release
  262d529ab10d5bd398f14fc1ec9fed1a  maintainer-scripts/generate_libstdcxx_web_docs
  33d97164a8610c7abf67eff7d28f47ff  maintainer-scripts/maintainer-addresses
  1fcc4f18e9f9043eaea6c3c990d96d9b  maintainer-scripts/setup.cfg
  1012437849cecda6e54b3948f279ae93  maintainer-scripts/update_version_git
! b06e088f73db888cd627fb23eaa2a58d  maintainer-scripts/update_web_docs_git
  89960da3ee98bea76c62bf0bf235d1f9  maintainer-scripts/update_web_docs_libstdcxx_git
  5f2a276ee7b8decec541391229d03591  missing
  fbe2467afef81c41c166173adeb0ee20  mkdep
*************** cf2baa0854f564a7785307e79f155efc  symlin
*** 124132,124144 ****
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! 04230e4f0c0b3e77f38f85c28b45b2de  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
  3b6b6f9e88f2319b75e6ccb8c2823b13  zlib/INDEX
  9e808ecd2d75fc797d09e47f0982c345  zlib/Makefile.am
! 389276a3490f1041d8979296ec0dc597  zlib/Makefile.in
  26a915e4bc7d8d65872c524a4716e51e  zlib/README
  004a8c34eba1b805f836a09dd4759f34  zlib/acinclude.m4
  5560350998c7f1171b2e343d788f5355  zlib/aclocal.m4
--- 134370,134382 ----
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! cd0d232ea58f19b5f1f308338d8d4c84  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
  3b6b6f9e88f2319b75e6ccb8c2823b13  zlib/INDEX
  9e808ecd2d75fc797d09e47f0982c345  zlib/Makefile.am
! a9750311dd8298b1b33c3af114dea33e  zlib/Makefile.in
  26a915e4bc7d8d65872c524a4716e51e  zlib/README
  004a8c34eba1b805f836a09dd4759f34  zlib/acinclude.m4
  5560350998c7f1171b2e343d788f5355  zlib/aclocal.m4
*************** b7a1991f01daea3efe108a215c5514a5  zlib/F
*** 124146,124153 ****
  f16cd4621f5561cf147b5e56a8af1946  zlib/amiga/Makefile.pup
  315c9e3e7dd1d24aeb9d6bc55b7de5fd  zlib/amiga/Makefile.sas
  68c4c1f6c737d307d372130351b123a6  zlib/compress.c
! bfce875a25cea2e2cc4acfb854b6f079  zlib/configure
! 490e6b2cbb61562488945b0807a88053  zlib/configure.ac
  417c6b266549b949b958733f95d075ef  zlib/contrib/README.contrib
  cd14a97dd8a0613bb1244a68c0c764d6  zlib/contrib/ada/buffer_demo.adb
  20f2b8d64f3507ea0eb67bf4be048599  zlib/contrib/ada/mtest.adb
--- 134384,134391 ----
  f16cd4621f5561cf147b5e56a8af1946  zlib/amiga/Makefile.pup
  315c9e3e7dd1d24aeb9d6bc55b7de5fd  zlib/amiga/Makefile.sas
  68c4c1f6c737d307d372130351b123a6  zlib/compress.c
! 79b30f4e79e7a435fae2d0ac9d92508f  zlib/configure
! 43b576b2873debe331e0f5f81468efe2  zlib/configure.ac
  417c6b266549b949b958733f95d075ef  zlib/contrib/README.contrib
  cd14a97dd8a0613bb1244a68c0c764d6  zlib/contrib/ada/buffer_demo.adb
  20f2b8d64f3507ea0eb67bf4be048599  zlib/contrib/ada/mtest.adb
diff -Nrcpad gcc-13.2.0/Makefile.def gcc-14.1.0/Makefile.def
*** gcc-13.2.0/Makefile.def	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/Makefile.def	Tue May  7 06:51:37 2024
*************** host_modules= { module= fixincludes; boo
*** 47,53 ****
  host_modules= { module= flex; no_check_cross= true; };
  host_modules= { module= gas; bootstrap=true; };
  host_modules= { module= gcc; bootstrap=true; 
! 		extra_make_flags="$(EXTRA_GCC_FLAGS)"; };
  host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
  		// Work around in-tree gmp configure bug with missing flex.
  		extra_configure_flags='--disable-shared LEX="touch lex.yy.c" @host_libs_picflag@';
--- 47,54 ----
  host_modules= { module= flex; no_check_cross= true; };
  host_modules= { module= gas; bootstrap=true; };
  host_modules= { module= gcc; bootstrap=true; 
! 		extra_make_flags="$(EXTRA_GCC_FLAGS)";
! 		extra_configure_flags='@gcc_host_pie@'; };
  host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
  		// Work around in-tree gmp configure bug with missing flex.
  		extra_configure_flags='--disable-shared LEX="touch lex.yy.c" @host_libs_picflag@';
*************** host_modules= { module= isl; lib_path=.l
*** 72,79 ****
  		no_install= true; };
  host_modules= { module= gold; bootstrap=true; };
  host_modules= { module= gprof; };
! // intl acts on 'host_shared' directly, and does not support --with-pic.
! host_modules= { module= intl; bootstrap=true; };
  host_modules= { module= tcl;
                  missing=mostlyclean; };
  host_modules= { module= itcl; };
--- 73,96 ----
  		no_install= true; };
  host_modules= { module= gold; bootstrap=true; };
  host_modules= { module= gprof; };
! host_modules= { module= gprofng; };
! host_modules= { module= gettext; bootstrap=true; no_install=true;
!                 module_srcdir= "gettext/gettext-runtime";
! 		// We always build gettext with pic, because some packages (e.g. gdbserver)
! 		// need it in some configuratons, which is determined via nontrivial tests.
! 		// Always enabling pic seems to make sense for something tied to
! 		// user-facing output.
! 		extra_configure_flags='--disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf';
! 		missing= pdf;
! 		missing= html;
! 		missing= info;
! 		missing= dvi;
! 		missing= install-pdf;
! 		missing= install-html;
! 		missing= install-info;
! 		missing= install-dvi;
! 		missing= TAGS;
! 		no_install= true; };
  host_modules= { module= tcl;
                  missing=mostlyclean; };
  host_modules= { module= itcl; };
*************** host_modules= { module= libcc1; extra_co
*** 147,152 ****
--- 164,170 ----
  host_modules= { module= gotools; };
  host_modules= { module= libctf; bootstrap=true; };
  host_modules= { module= libsframe; bootstrap=true; };
+ host_modules= { module= libgrust; bootstrap=true; };
  
  target_modules = { module= libstdc++-v3;
  		   bootstrap=true;
*************** target_modules = { module= libgm2; lib_p
*** 190,195 ****
--- 208,214 ----
  target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
  target_modules = { module= libitm; lib_path=.libs; };
  target_modules = { module= libatomic; bootstrap=true; lib_path=.libs; };
+ target_modules = { module= libgrust; };
  
  // These are (some of) the make targets to be done in each subdirectory.
  // Not all; these are the ones which don't have special options.
*************** flags_to_pass = { flag= GNATBIND ; };
*** 293,298 ****
--- 312,318 ----
  flags_to_pass = { flag= GNATMAKE ; };
  flags_to_pass = { flag= GDC ; };
  flags_to_pass = { flag= GDCFLAGS ; };
+ flags_to_pass = { flag= GUILE ; };
  
  // Target tools
  flags_to_pass = { flag= AR_FOR_TARGET ; };
*************** dependencies = { module=all-build-fixinc
*** 343,349 ****
  dependencies = { module=all-build-libcpp; on=all-build-libiberty; };
  
  // Host modules specific to gcc.
! dependencies = { module=configure-gcc; on=configure-intl; };
  dependencies = { module=configure-gcc; on=all-gmp; };
  dependencies = { module=configure-gcc; on=all-mpfr; };
  dependencies = { module=configure-gcc; on=all-mpc; };
--- 363,369 ----
  dependencies = { module=all-build-libcpp; on=all-build-libiberty; };
  
  // Host modules specific to gcc.
! dependencies = { module=configure-gcc; on=configure-gettext; };
  dependencies = { module=configure-gcc; on=all-gmp; };
  dependencies = { module=configure-gcc; on=all-mpfr; };
  dependencies = { module=configure-gcc; on=all-mpc; };
*************** dependencies = { module=configure-gcc; o
*** 355,361 ****
  dependencies = { module=configure-gcc; on=all-gold; };
  dependencies = { module=configure-gcc; on=all-libiconv; };
  dependencies = { module=all-gcc; on=all-libiberty; hard=true; };
! dependencies = { module=all-gcc; on=all-intl; };
  dependencies = { module=all-gcc; on=all-mpfr; };
  dependencies = { module=all-gcc; on=all-mpc; };
  dependencies = { module=all-gcc; on=all-isl; };
--- 375,382 ----
  dependencies = { module=configure-gcc; on=all-gold; };
  dependencies = { module=configure-gcc; on=all-libiconv; };
  dependencies = { module=all-gcc; on=all-libiberty; hard=true; };
! dependencies = { module=all-gcc; on=all-libgrust; };
! dependencies = { module=all-gcc; on=all-gettext; };
  dependencies = { module=all-gcc; on=all-mpfr; };
  dependencies = { module=all-gcc; on=all-mpc; };
  dependencies = { module=all-gcc; on=all-isl; };
*************** dependencies = { module=install-strip-gc
*** 384,393 ****
  dependencies = { module=install-strip-gcc ; on=install-strip-lto-plugin; };
  
  dependencies = { module=configure-libcpp; on=configure-libiberty; hard=true; };
! dependencies = { module=configure-libcpp; on=configure-intl; };
  dependencies = { module=configure-libcpp; on=all-libiconv; };
  dependencies = { module=all-libcpp; on=all-libiberty; hard=true; };
! dependencies = { module=all-libcpp; on=all-intl; };
  dependencies = { module=all-libcpp; on=all-libiconv; };
  
  dependencies = { module=all-fixincludes; on=all-libiberty; };
--- 405,414 ----
  dependencies = { module=install-strip-gcc ; on=install-strip-lto-plugin; };
  
  dependencies = { module=configure-libcpp; on=configure-libiberty; hard=true; };
! dependencies = { module=configure-libcpp; on=configure-gettext; };
  dependencies = { module=configure-libcpp; on=all-libiconv; };
  dependencies = { module=all-libcpp; on=all-libiberty; hard=true; };
! dependencies = { module=all-libcpp; on=all-gettext; };
  dependencies = { module=all-libcpp; on=all-libiconv; };
  
  dependencies = { module=all-fixincludes; on=all-libiberty; };
*************** dependencies = { module=all-gotools; on=
*** 409,424 ****
  
  dependencies = { module=all-utils; on=all-libiberty; };
  
! dependencies = { module=configure-intl; on=all-libiconv; };
  dependencies = { module=configure-mpfr; on=all-gmp; };
  dependencies = { module=configure-mpc; on=all-mpfr; };
  dependencies = { module=configure-isl; on=all-gmp; };
! dependencies = { module=all-intl; on=all-libiconv; };
  
  // Host modules specific to gdb.
  dependencies = { module=configure-gdb; on=all-gmp; };
  dependencies = { module=configure-gdb; on=all-mpfr; };
! dependencies = { module=configure-gdb; on=all-intl; };
  dependencies = { module=configure-gdb; on=configure-sim; };
  dependencies = { module=configure-gdb; on=all-bfd; };
  dependencies = { module=configure-gdb; on=all-gnulib; };
--- 430,445 ----
  
  dependencies = { module=all-utils; on=all-libiberty; };
  
! dependencies = { module=configure-gettext; on=all-libiconv; };
  dependencies = { module=configure-mpfr; on=all-gmp; };
  dependencies = { module=configure-mpc; on=all-mpfr; };
  dependencies = { module=configure-isl; on=all-gmp; };
! dependencies = { module=all-gettext; on=all-libiconv; };
  
  // Host modules specific to gdb.
  dependencies = { module=configure-gdb; on=all-gmp; };
  dependencies = { module=configure-gdb; on=all-mpfr; };
! dependencies = { module=configure-gdb; on=all-gettext; };
  dependencies = { module=configure-gdb; on=configure-sim; };
  dependencies = { module=configure-gdb; on=all-bfd; };
  dependencies = { module=configure-gdb; on=all-gnulib; };
*************** dependencies = { module=all-libgui; on=a
*** 452,480 ****
  dependencies = { module=all-libgui; on=all-itcl; };
  
  dependencies = { module=configure-gdbsupport; on=configure-gnulib; };
! dependencies = { module=configure-gdbsupport; on=configure-intl; };
  dependencies = { module=all-gdbsupport; on=all-gnulib; };
! dependencies = { module=all-gdbsupport; on=all-intl; };
  
  // Host modules specific to binutils.
  dependencies = { module=configure-bfd; on=configure-libiberty; hard=true; };
! dependencies = { module=configure-bfd; on=configure-intl; };
  dependencies = { module=all-bfd; on=all-libiberty; };
! dependencies = { module=all-bfd; on=all-intl; };
  dependencies = { module=all-bfd; on=all-zlib; };
  dependencies = { module=configure-opcodes; on=configure-libiberty; hard=true; };
  dependencies = { module=all-opcodes; on=all-libiberty; };
  
  // We must build gas before binutils, gprof, ld and gold to avoid race
  // condition in the prev-gcc/as script during bootstrap of combined tree
  // with GCC and binutils.  See PR gas/14899 for details.
! dependencies = { module=configure-binutils; on=configure-intl; };
  dependencies = { module=all-binutils; on=all-libiberty; };
  dependencies = { module=all-binutils; on=all-opcodes; };
  dependencies = { module=all-binutils; on=all-bfd; };
  dependencies = { module=all-binutils; on=all-build-flex; };
  dependencies = { module=all-binutils; on=all-build-bison; };
! dependencies = { module=all-binutils; on=all-intl; };
  dependencies = { module=all-binutils; on=all-gas; };
  dependencies = { module=all-binutils; on=all-libctf; };
  dependencies = { module=all-ld; on=all-libctf; };
--- 473,504 ----
  dependencies = { module=all-libgui; on=all-itcl; };
  
  dependencies = { module=configure-gdbsupport; on=configure-gnulib; };
! dependencies = { module=configure-gdbsupport; on=configure-gettext; };
  dependencies = { module=all-gdbsupport; on=all-gnulib; };
! dependencies = { module=all-gdbsupport; on=all-gettext; };
  
  // Host modules specific to binutils.
+ // build libsframe before bfd for encoder/decoder support for linking
+ // SFrame sections
  dependencies = { module=configure-bfd; on=configure-libiberty; hard=true; };
! dependencies = { module=configure-bfd; on=configure-gettext; };
  dependencies = { module=all-bfd; on=all-libiberty; };
! dependencies = { module=all-bfd; on=all-gettext; };
  dependencies = { module=all-bfd; on=all-zlib; };
+ dependencies = { module=all-bfd; on=all-libsframe; };
  dependencies = { module=configure-opcodes; on=configure-libiberty; hard=true; };
  dependencies = { module=all-opcodes; on=all-libiberty; };
  
  // We must build gas before binutils, gprof, ld and gold to avoid race
  // condition in the prev-gcc/as script during bootstrap of combined tree
  // with GCC and binutils.  See PR gas/14899 for details.
! dependencies = { module=configure-binutils; on=configure-gettext; };
  dependencies = { module=all-binutils; on=all-libiberty; };
  dependencies = { module=all-binutils; on=all-opcodes; };
  dependencies = { module=all-binutils; on=all-bfd; };
  dependencies = { module=all-binutils; on=all-build-flex; };
  dependencies = { module=all-binutils; on=all-build-bison; };
! dependencies = { module=all-binutils; on=all-gettext; };
  dependencies = { module=all-binutils; on=all-gas; };
  dependencies = { module=all-binutils; on=all-libctf; };
  dependencies = { module=all-ld; on=all-libctf; };
*************** dependencies = { module=install-strip-li
*** 494,539 ****
  dependencies = { module=install-strip-ld; on=install-strip-bfd; };
  dependencies = { module=install-strip-ld; on=install-strip-libctf; };
  
  // libopcodes depends on libbfd
  dependencies = { module=configure-opcodes; on=configure-bfd; hard=true; };
  dependencies = { module=install-opcodes; on=install-bfd; };
  dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
  
! dependencies = { module=configure-gas; on=configure-intl; };
  dependencies = { module=all-gas; on=all-libiberty; };
  dependencies = { module=all-gas; on=all-opcodes; };
  dependencies = { module=all-gas; on=all-bfd; };
! dependencies = { module=all-gas; on=all-intl; };
! dependencies = { module=configure-gprof; on=configure-intl; };
  dependencies = { module=all-gprof; on=all-libiberty; };
  dependencies = { module=all-gprof; on=all-bfd; };
  dependencies = { module=all-gprof; on=all-opcodes; };
! dependencies = { module=all-gprof; on=all-intl; };
  dependencies = { module=all-gprof; on=all-gas; };
! dependencies = { module=configure-ld; on=configure-intl; };
  dependencies = { module=all-ld; on=all-libiberty; };
  dependencies = { module=all-ld; on=all-bfd; };
  dependencies = { module=all-ld; on=all-opcodes; };
  dependencies = { module=all-ld; on=all-build-bison; };
  dependencies = { module=all-ld; on=all-build-flex; };
! dependencies = { module=all-ld; on=all-intl; };
  dependencies = { module=all-ld; on=all-gas; };
  dependencies = { module=all-ld; on=all-binutils; };
  dependencies = { module=install-ld; on=install-gold; };
  dependencies = { module=install-strip-ld; on=install-strip-gold; };
! dependencies = { module=configure-gold; on=configure-intl; };
  dependencies = { module=all-gold; on=all-libiberty; };
! dependencies = { module=all-gold; on=all-intl; };
  dependencies = { module=all-gold; on=all-bfd; };
  dependencies = { module=all-gold; on=all-build-bison; };
  dependencies = { module=all-gold; on=all-gas; };
  dependencies = { module=check-gold; on=all-binutils; };
  dependencies = { module=check-gold; on=all-gas; };
  
! dependencies = { module=configure-opcodes; on=configure-intl; };
  dependencies = { module=all-opcodes; on=all-bfd; };
  dependencies = { module=all-opcodes; on=all-libiberty; };
! dependencies = { module=all-opcodes; on=all-intl; };
  
  // Other host modules in the 'src' repository.
  dependencies = { module=all-dejagnu; on=all-tcl; };
--- 518,577 ----
  dependencies = { module=install-strip-ld; on=install-strip-bfd; };
  dependencies = { module=install-strip-ld; on=install-strip-libctf; };
  
+ // libbfd depends on libsframe
+ dependencies = { module=install-bfd; on=install-libsframe; };
+ dependencies = { module=install-strip-bfd; on=install-strip-libsframe; };
+ 
  // libopcodes depends on libbfd
  dependencies = { module=configure-opcodes; on=configure-bfd; hard=true; };
  dependencies = { module=install-opcodes; on=install-bfd; };
  dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
  
! dependencies = { module=configure-gas; on=configure-gettext; };
  dependencies = { module=all-gas; on=all-libiberty; };
  dependencies = { module=all-gas; on=all-opcodes; };
  dependencies = { module=all-gas; on=all-bfd; };
! dependencies = { module=all-gas; on=all-gettext; };
! dependencies = { module=configure-gprof; on=configure-gettext; };
  dependencies = { module=all-gprof; on=all-libiberty; };
  dependencies = { module=all-gprof; on=all-bfd; };
  dependencies = { module=all-gprof; on=all-opcodes; };
! dependencies = { module=all-gprof; on=all-gettext; };
  dependencies = { module=all-gprof; on=all-gas; };
! 
! dependencies = { module=configure-gprofng; on=configure-gettext; };
! dependencies = { module=all-gprofng; on=all-libiberty; };
! dependencies = { module=all-gprofng; on=all-bfd; };
! dependencies = { module=all-gprofng; on=all-opcodes; };
! dependencies = { module=all-gprofng; on=all-gettext; };
! dependencies = { module=all-gprofng; on=all-gas; };
! dependencies = { module=install-gprofng; on=install-opcodes; };
! dependencies = { module=install-gprofng; on=install-bfd; };
! 
! dependencies = { module=configure-ld; on=configure-gettext; };
  dependencies = { module=all-ld; on=all-libiberty; };
  dependencies = { module=all-ld; on=all-bfd; };
  dependencies = { module=all-ld; on=all-opcodes; };
  dependencies = { module=all-ld; on=all-build-bison; };
  dependencies = { module=all-ld; on=all-build-flex; };
! dependencies = { module=all-ld; on=all-gettext; };
  dependencies = { module=all-ld; on=all-gas; };
  dependencies = { module=all-ld; on=all-binutils; };
  dependencies = { module=install-ld; on=install-gold; };
  dependencies = { module=install-strip-ld; on=install-strip-gold; };
! dependencies = { module=configure-gold; on=configure-gettext; };
  dependencies = { module=all-gold; on=all-libiberty; };
! dependencies = { module=all-gold; on=all-gettext; };
  dependencies = { module=all-gold; on=all-bfd; };
  dependencies = { module=all-gold; on=all-build-bison; };
  dependencies = { module=all-gold; on=all-gas; };
  dependencies = { module=check-gold; on=all-binutils; };
  dependencies = { module=check-gold; on=all-gas; };
  
! dependencies = { module=configure-opcodes; on=configure-gettext; };
  dependencies = { module=all-opcodes; on=all-bfd; };
  dependencies = { module=all-opcodes; on=all-libiberty; };
! dependencies = { module=all-opcodes; on=all-gettext; };
  
  // Other host modules in the 'src' repository.
  dependencies = { module=all-dejagnu; on=all-tcl; };
*************** dependencies = { module=install-sid; on=
*** 567,574 ****
  dependencies = { module=install-strip-sid; on=install-strip-tk; };
  
  dependencies = { module=configure-sim; on=all-gnulib; };
! dependencies = { module=configure-sim; on=configure-intl; };
! dependencies = { module=all-sim; on=all-intl; };
  dependencies = { module=all-sim; on=all-libiberty; };
  dependencies = { module=all-sim; on=all-bfd; };
  dependencies = { module=all-sim; on=all-opcodes; };
--- 605,612 ----
  dependencies = { module=install-strip-sid; on=install-strip-tk; };
  
  dependencies = { module=configure-sim; on=all-gnulib; };
! dependencies = { module=configure-sim; on=configure-gettext; };
! dependencies = { module=all-sim; on=all-gettext; };
  dependencies = { module=all-sim; on=all-libiberty; };
  dependencies = { module=all-sim; on=all-bfd; };
  dependencies = { module=all-sim; on=all-opcodes; };
*************** dependencies = { module=all-libctf; on=a
*** 583,589 ****
  dependencies = { module=all-libctf; on=all-zlib; };
  // So that checking for ELF support in BFD from libctf configure is possible.
  dependencies = { module=configure-libctf; on=all-bfd; };
! dependencies = { module=configure-libctf; on=all-intl; };
  dependencies = { module=configure-libctf; on=all-zlib; };
  dependencies = { module=configure-libctf; on=all-libiconv; };
  dependencies = { module=check-libctf; on=all-ld; };
--- 621,627 ----
  dependencies = { module=all-libctf; on=all-zlib; };
  // So that checking for ELF support in BFD from libctf configure is possible.
  dependencies = { module=configure-libctf; on=all-bfd; };
! dependencies = { module=configure-libctf; on=all-gettext; };
  dependencies = { module=configure-libctf; on=all-zlib; };
  dependencies = { module=configure-libctf; on=all-libiconv; };
  dependencies = { module=check-libctf; on=all-ld; };
*************** dependencies = { module=check-libctf; on
*** 593,607 ****
  // gdb and gdbserver.
  dependencies = { module=distclean-gnulib; on=distclean-gdb; };
  dependencies = { module=distclean-gnulib; on=distclean-gdbserver; };
  
  // Warning, these are not well tested.
! dependencies = { module=all-bison; on=all-intl; };
  dependencies = { module=all-bison; on=all-build-texinfo; };
  dependencies = { module=all-flex; on=all-build-bison; };
! dependencies = { module=all-flex; on=all-intl; };
  dependencies = { module=all-flex; on=all-m4; };
  dependencies = { module=all-flex; on=all-build-texinfo; };
! dependencies = { module=all-m4; on=all-intl; };
  dependencies = { module=all-m4; on=all-build-texinfo; };
  
  // Target modules.  These can also have dependencies on the language
--- 631,646 ----
  // gdb and gdbserver.
  dependencies = { module=distclean-gnulib; on=distclean-gdb; };
  dependencies = { module=distclean-gnulib; on=distclean-gdbserver; };
+ dependencies = { module=distclean-gnulib; on=distclean-sim; };
  
  // Warning, these are not well tested.
! dependencies = { module=all-bison; on=all-gettext; };
  dependencies = { module=all-bison; on=all-build-texinfo; };
  dependencies = { module=all-flex; on=all-build-bison; };
! dependencies = { module=all-flex; on=all-gettext; };
  dependencies = { module=all-flex; on=all-m4; };
  dependencies = { module=all-flex; on=all-build-texinfo; };
! dependencies = { module=all-m4; on=all-gettext; };
  dependencies = { module=all-m4; on=all-build-texinfo; };
  
  // Target modules.  These can also have dependencies on the language
*************** dependencies = { module=all-target-libph
*** 634,639 ****
--- 673,679 ----
  dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
  dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; };
  dependencies = { module=configure-target-libvtv; on=all-target-libstdc++-v3; };
+ dependencies = { module=configure-target-libgrust; on=all-target-libstdc++-v3; };
  // parallel_list.o and parallel_settings.o depend on omp.h, which is
  // generated by the libgomp configure.  Unfortunately, due to the use of
  //  recursive make, we can't be that specific.
diff -Nrcpad gcc-13.2.0/Makefile.in gcc-14.1.0/Makefile.in
*** gcc-13.2.0/Makefile.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/Makefile.in	Tue May  7 06:52:51 2024
***************
*** 3,9 ****
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
--- 3,9 ----
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2023
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
*************** BASE_EXPORTS = \
*** 143,149 ****
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
--- 143,150 ----
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO; \
! 	GUILE="$(GUILE)"; export GUILE;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
*************** HOST_EXPORTS = \
*** 221,226 ****
--- 222,228 ----
  	OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
  	OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
  	OTOOL="$(OTOOL)"; export OTOOL; \
+ 	PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)"; export PKG_CONFIG_PATH; \
  	READELF="$(READELF)"; export READELF; \
  	AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \
  	AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \
*************** BASE_TARGET_EXPORTS = \
*** 320,325 ****
--- 322,328 ----
  	RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
  	READELF="$(READELF_FOR_TARGET)"; export READELF; \
  	STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
+ 	SYSROOT_CFLAGS_FOR_TARGET="$(SYSROOT_CFLAGS_FOR_TARGET)"; export SYSROOT_CFLAGS_FOR_TARGET; \
  	WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
  	WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
  @if gcc-bootstrap
*************** MAKEINFO = @MAKEINFO@
*** 404,410 ****
  EXPECT = @EXPECT@
  RUNTEST = @RUNTEST@
  
! AUTO_PROFILE = gcc-auto-profile -c 10000000
  
  # This just becomes part of the MAKEINFO definition passed down to
  # sub-makes.  It lets flags be given on the command line while still
--- 407,413 ----
  EXPECT = @EXPECT@
  RUNTEST = @RUNTEST@
  
! AUTO_PROFILE = gcc-auto-profile --all -c 10000000
  
  # This just becomes part of the MAKEINFO definition passed down to
  # sub-makes.  It lets flags be given on the command line while still
*************** MAKEINFOFLAGS = --split-size=5000000
*** 417,423 ****
  # ---------------------------------------------
  
  AS = @AS@
! AR = @AR@
  AR_FLAGS = rc
  CC = @CC@
  CXX = @CXX@
--- 420,426 ----
  # ---------------------------------------------
  
  AS = @AS@
! AR = @AR@ @AR_PLUGIN_OPTION@
  AR_FLAGS = rc
  CC = @CC@
  CXX = @CXX@
*************** LIPO = @LIPO@
*** 428,434 ****
  NM = @NM@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
! RANLIB = @RANLIB@
  READELF = @READELF@
  STRIP = @STRIP@
  WINDRES = @WINDRES@
--- 431,437 ----
  NM = @NM@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
! RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
  READELF = @READELF@
  STRIP = @STRIP@
  WINDRES = @WINDRES@
*************** LIBCFLAGS = $(CFLAGS)
*** 444,452 ****
  CXXFLAGS = @CXXFLAGS@
  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
  GOCFLAGS = $(CFLAGS)
! GDCFLAGS = $(CFLAGS)
  GM2FLAGS = $(CFLAGS)
  
  # Pass additional PGO and LTO compiler options to the PGO build.
  BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
  override CFLAGS += $(BUILD_CFLAGS)
--- 447,459 ----
  CXXFLAGS = @CXXFLAGS@
  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
  GOCFLAGS = $(CFLAGS)
! GDCFLAGS = @GDCFLAGS@
  GM2FLAGS = $(CFLAGS)
  
+ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+ 
+ GUILE = guile
+ 
  # Pass additional PGO and LTO compiler options to the PGO build.
  BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
  override CFLAGS += $(BUILD_CFLAGS)
*************** PGO-TRAINING-TARGETS = binutils gas gdb
*** 491,496 ****
--- 498,504 ----
  PGO_BUILD_TRAINING = $(addprefix maybe-check-,$(PGO-TRAINING-TARGETS))
  
  CREATE_GCOV = create_gcov
+ PROFILE_MERGER = profile_merger
  
  TFLAGS =
  
*************** STAGEtrain_TFLAGS = $(filter-out -fcheck
*** 633,644 ****
  
  STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use -fprofile-reproducible=parallel-runs
  STAGEfeedback_TFLAGS = $(STAGE4_TFLAGS)
  
! STAGEautoprofile_CFLAGS = $(STAGE2_CFLAGS) -g
  STAGEautoprofile_TFLAGS = $(STAGE2_TFLAGS)
  
  STAGEautofeedback_CFLAGS = $(STAGE3_CFLAGS)
  STAGEautofeedback_TFLAGS = $(STAGE3_TFLAGS)
  
  do-compare = @do_compare@
  do-compare3 = $(do-compare)
--- 641,659 ----
  
  STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use -fprofile-reproducible=parallel-runs
  STAGEfeedback_TFLAGS = $(STAGE4_TFLAGS)
+ # Disable warnings as errors for a few reasons:
+ # - sources for gen* binaries do not have .gcda files available
+ # - inlining decisions generate extra warnings
+ STAGEfeedback_CONFIGURE_FLAGS = $(filter-out --enable-werror-always,$(STAGE_CONFIGURE_FLAGS))
  
! STAGEautoprofile_CFLAGS = $(filter-out -gtoggle,$(STAGE2_CFLAGS)) -g
  STAGEautoprofile_TFLAGS = $(STAGE2_TFLAGS)
  
  STAGEautofeedback_CFLAGS = $(STAGE3_CFLAGS)
  STAGEautofeedback_TFLAGS = $(STAGE3_TFLAGS)
+ # Disable warnings as errors since inlining decisions with -fauto-profile
+ # may result in additional warnings.
+ STAGEautofeedback_CONFIGURE_FLAGS = $(filter-out --enable-werror-always,$(STAGE_CONFIGURE_FLAGS))
  
  do-compare = @do_compare@
  do-compare3 = $(do-compare)
*************** BASE_FLAGS_TO_PASS = \
*** 871,876 ****
--- 886,892 ----
  	"GNATMAKE=$(GNATMAKE)" \
  	"GDC=$(GDC)" \
  	"GDCFLAGS=$(GDCFLAGS)" \
+ 	"GUILE=$(GUILE)" \
  	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
  	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
  	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
*************** EXTRA_HOST_FLAGS = \
*** 971,977 ****
  	'STRIP=$(STRIP)' \
  	'WINDRES=$(WINDRES)' \
  	'WINDMC=$(WINDMC)' \
! 	'CREATE_GCOV=$(CREATE_GCOV)'
  
  FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
  
--- 987,994 ----
  	'STRIP=$(STRIP)' \
  	'WINDRES=$(WINDRES)' \
  	'WINDMC=$(WINDMC)' \
! 	'CREATE_GCOV=$(CREATE_GCOV)' \
! 	'PROFILE_MERGER=$(PROFILE_MERGER)'
  
  FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
  
*************** configure-host:  \
*** 1084,1090 ****
      maybe-configure-isl \
      maybe-configure-gold \
      maybe-configure-gprof \
!     maybe-configure-intl \
      maybe-configure-tcl \
      maybe-configure-itcl \
      maybe-configure-ld \
--- 1101,1108 ----
      maybe-configure-isl \
      maybe-configure-gold \
      maybe-configure-gprof \
!     maybe-configure-gprofng \
!     maybe-configure-gettext \
      maybe-configure-tcl \
      maybe-configure-itcl \
      maybe-configure-ld \
*************** configure-host:  \
*** 1117,1123 ****
      maybe-configure-libcc1 \
      maybe-configure-gotools \
      maybe-configure-libctf \
!     maybe-configure-libsframe
  .PHONY: configure-target
  configure-target:  \
      maybe-configure-target-libstdc++-v3 \
--- 1135,1142 ----
      maybe-configure-libcc1 \
      maybe-configure-gotools \
      maybe-configure-libctf \
!     maybe-configure-libsframe \
!     maybe-configure-libgrust
  .PHONY: configure-target
  configure-target:  \
      maybe-configure-target-libstdc++-v3 \
*************** configure-target:  \
*** 1142,1148 ****
      maybe-configure-target-libgm2 \
      maybe-configure-target-libgomp \
      maybe-configure-target-libitm \
!     maybe-configure-target-libatomic
  
  # The target built for a native non-bootstrap build.
  .PHONY: all
--- 1161,1168 ----
      maybe-configure-target-libgm2 \
      maybe-configure-target-libgomp \
      maybe-configure-target-libitm \
!     maybe-configure-target-libatomic \
!     maybe-configure-target-libgrust
  
  # The target built for a native non-bootstrap build.
  .PHONY: all
*************** all-host: maybe-all-isl
*** 1237,1245 ****
  all-host: maybe-all-gold
  @endif gold-no-bootstrap
  all-host: maybe-all-gprof
! @if intl-no-bootstrap
! all-host: maybe-all-intl
! @endif intl-no-bootstrap
  all-host: maybe-all-tcl
  all-host: maybe-all-itcl
  @if ld-no-bootstrap
--- 1257,1266 ----
  all-host: maybe-all-gold
  @endif gold-no-bootstrap
  all-host: maybe-all-gprof
! all-host: maybe-all-gprofng
! @if gettext-no-bootstrap
! all-host: maybe-all-gettext
! @endif gettext-no-bootstrap
  all-host: maybe-all-tcl
  all-host: maybe-all-itcl
  @if ld-no-bootstrap
*************** all-host: maybe-all-libctf
*** 1297,1302 ****
--- 1318,1326 ----
  @if libsframe-no-bootstrap
  all-host: maybe-all-libsframe
  @endif libsframe-no-bootstrap
+ @if libgrust-no-bootstrap
+ all-host: maybe-all-libgrust
+ @endif libgrust-no-bootstrap
  
  .PHONY: all-target
  
*************** all-target: maybe-all-target-libitm
*** 1341,1346 ****
--- 1365,1371 ----
  @if target-libatomic-no-bootstrap
  all-target: maybe-all-target-libatomic
  @endif target-libatomic-no-bootstrap
+ all-target: maybe-all-target-libgrust
  
  # Do a target for all the subdirectories.  A ``make do-X'' will do a
  # ``make X'' in all subdirectories (because, in general, there is a
*************** info-host: maybe-info-mpc
*** 1376,1382 ****
  info-host: maybe-info-isl
  info-host: maybe-info-gold
  info-host: maybe-info-gprof
! info-host: maybe-info-intl
  info-host: maybe-info-tcl
  info-host: maybe-info-itcl
  info-host: maybe-info-ld
--- 1401,1408 ----
  info-host: maybe-info-isl
  info-host: maybe-info-gold
  info-host: maybe-info-gprof
! info-host: maybe-info-gprofng
! info-host: maybe-info-gettext
  info-host: maybe-info-tcl
  info-host: maybe-info-itcl
  info-host: maybe-info-ld
*************** info-host: maybe-info-libcc1
*** 1410,1415 ****
--- 1436,1442 ----
  info-host: maybe-info-gotools
  info-host: maybe-info-libctf
  info-host: maybe-info-libsframe
+ info-host: maybe-info-libgrust
  
  .PHONY: info-target
  
*************** info-target: maybe-info-target-libgm2
*** 1436,1441 ****
--- 1463,1469 ----
  info-target: maybe-info-target-libgomp
  info-target: maybe-info-target-libitm
  info-target: maybe-info-target-libatomic
+ info-target: maybe-info-target-libgrust
  
  .PHONY: do-dvi
  do-dvi:
*************** dvi-host: maybe-dvi-mpc
*** 1466,1472 ****
  dvi-host: maybe-dvi-isl
  dvi-host: maybe-dvi-gold
  dvi-host: maybe-dvi-gprof
! dvi-host: maybe-dvi-intl
  dvi-host: maybe-dvi-tcl
  dvi-host: maybe-dvi-itcl
  dvi-host: maybe-dvi-ld
--- 1494,1501 ----
  dvi-host: maybe-dvi-isl
  dvi-host: maybe-dvi-gold
  dvi-host: maybe-dvi-gprof
! dvi-host: maybe-dvi-gprofng
! dvi-host: maybe-dvi-gettext
  dvi-host: maybe-dvi-tcl
  dvi-host: maybe-dvi-itcl
  dvi-host: maybe-dvi-ld
*************** dvi-host: maybe-dvi-libcc1
*** 1500,1505 ****
--- 1529,1535 ----
  dvi-host: maybe-dvi-gotools
  dvi-host: maybe-dvi-libctf
  dvi-host: maybe-dvi-libsframe
+ dvi-host: maybe-dvi-libgrust
  
  .PHONY: dvi-target
  
*************** dvi-target: maybe-dvi-target-libgm2
*** 1526,1531 ****
--- 1556,1562 ----
  dvi-target: maybe-dvi-target-libgomp
  dvi-target: maybe-dvi-target-libitm
  dvi-target: maybe-dvi-target-libatomic
+ dvi-target: maybe-dvi-target-libgrust
  
  .PHONY: do-pdf
  do-pdf:
*************** pdf-host: maybe-pdf-mpc
*** 1556,1562 ****
  pdf-host: maybe-pdf-isl
  pdf-host: maybe-pdf-gold
  pdf-host: maybe-pdf-gprof
! pdf-host: maybe-pdf-intl
  pdf-host: maybe-pdf-tcl
  pdf-host: maybe-pdf-itcl
  pdf-host: maybe-pdf-ld
--- 1587,1594 ----
  pdf-host: maybe-pdf-isl
  pdf-host: maybe-pdf-gold
  pdf-host: maybe-pdf-gprof
! pdf-host: maybe-pdf-gprofng
! pdf-host: maybe-pdf-gettext
  pdf-host: maybe-pdf-tcl
  pdf-host: maybe-pdf-itcl
  pdf-host: maybe-pdf-ld
*************** pdf-host: maybe-pdf-libcc1
*** 1590,1595 ****
--- 1622,1628 ----
  pdf-host: maybe-pdf-gotools
  pdf-host: maybe-pdf-libctf
  pdf-host: maybe-pdf-libsframe
+ pdf-host: maybe-pdf-libgrust
  
  .PHONY: pdf-target
  
*************** pdf-target: maybe-pdf-target-libgm2
*** 1616,1621 ****
--- 1649,1655 ----
  pdf-target: maybe-pdf-target-libgomp
  pdf-target: maybe-pdf-target-libitm
  pdf-target: maybe-pdf-target-libatomic
+ pdf-target: maybe-pdf-target-libgrust
  
  .PHONY: do-html
  do-html:
*************** html-host: maybe-html-mpc
*** 1646,1652 ****
  html-host: maybe-html-isl
  html-host: maybe-html-gold
  html-host: maybe-html-gprof
! html-host: maybe-html-intl
  html-host: maybe-html-tcl
  html-host: maybe-html-itcl
  html-host: maybe-html-ld
--- 1680,1687 ----
  html-host: maybe-html-isl
  html-host: maybe-html-gold
  html-host: maybe-html-gprof
! html-host: maybe-html-gprofng
! html-host: maybe-html-gettext
  html-host: maybe-html-tcl
  html-host: maybe-html-itcl
  html-host: maybe-html-ld
*************** html-host: maybe-html-libcc1
*** 1680,1685 ****
--- 1715,1721 ----
  html-host: maybe-html-gotools
  html-host: maybe-html-libctf
  html-host: maybe-html-libsframe
+ html-host: maybe-html-libgrust
  
  .PHONY: html-target
  
*************** html-target: maybe-html-target-libgm2
*** 1706,1711 ****
--- 1742,1748 ----
  html-target: maybe-html-target-libgomp
  html-target: maybe-html-target-libitm
  html-target: maybe-html-target-libatomic
+ html-target: maybe-html-target-libgrust
  
  .PHONY: do-TAGS
  do-TAGS:
*************** TAGS-host: maybe-TAGS-mpc
*** 1736,1742 ****
  TAGS-host: maybe-TAGS-isl
  TAGS-host: maybe-TAGS-gold
  TAGS-host: maybe-TAGS-gprof
! TAGS-host: maybe-TAGS-intl
  TAGS-host: maybe-TAGS-tcl
  TAGS-host: maybe-TAGS-itcl
  TAGS-host: maybe-TAGS-ld
--- 1773,1780 ----
  TAGS-host: maybe-TAGS-isl
  TAGS-host: maybe-TAGS-gold
  TAGS-host: maybe-TAGS-gprof
! TAGS-host: maybe-TAGS-gprofng
! TAGS-host: maybe-TAGS-gettext
  TAGS-host: maybe-TAGS-tcl
  TAGS-host: maybe-TAGS-itcl
  TAGS-host: maybe-TAGS-ld
*************** TAGS-host: maybe-TAGS-libcc1
*** 1770,1775 ****
--- 1808,1814 ----
  TAGS-host: maybe-TAGS-gotools
  TAGS-host: maybe-TAGS-libctf
  TAGS-host: maybe-TAGS-libsframe
+ TAGS-host: maybe-TAGS-libgrust
  
  .PHONY: TAGS-target
  
*************** TAGS-target: maybe-TAGS-target-libgm2
*** 1796,1801 ****
--- 1835,1841 ----
  TAGS-target: maybe-TAGS-target-libgomp
  TAGS-target: maybe-TAGS-target-libitm
  TAGS-target: maybe-TAGS-target-libatomic
+ TAGS-target: maybe-TAGS-target-libgrust
  
  .PHONY: do-install-info
  do-install-info:
*************** install-info-host: maybe-install-info-mp
*** 1826,1832 ****
  install-info-host: maybe-install-info-isl
  install-info-host: maybe-install-info-gold
  install-info-host: maybe-install-info-gprof
! install-info-host: maybe-install-info-intl
  install-info-host: maybe-install-info-tcl
  install-info-host: maybe-install-info-itcl
  install-info-host: maybe-install-info-ld
--- 1866,1873 ----
  install-info-host: maybe-install-info-isl
  install-info-host: maybe-install-info-gold
  install-info-host: maybe-install-info-gprof
! install-info-host: maybe-install-info-gprofng
! install-info-host: maybe-install-info-gettext
  install-info-host: maybe-install-info-tcl
  install-info-host: maybe-install-info-itcl
  install-info-host: maybe-install-info-ld
*************** install-info-host: maybe-install-info-li
*** 1860,1865 ****
--- 1901,1907 ----
  install-info-host: maybe-install-info-gotools
  install-info-host: maybe-install-info-libctf
  install-info-host: maybe-install-info-libsframe
+ install-info-host: maybe-install-info-libgrust
  
  .PHONY: install-info-target
  
*************** install-info-target: maybe-install-info-
*** 1886,1891 ****
--- 1928,1934 ----
  install-info-target: maybe-install-info-target-libgomp
  install-info-target: maybe-install-info-target-libitm
  install-info-target: maybe-install-info-target-libatomic
+ install-info-target: maybe-install-info-target-libgrust
  
  .PHONY: do-install-dvi
  do-install-dvi:
*************** install-dvi-host: maybe-install-dvi-mpc
*** 1916,1922 ****
  install-dvi-host: maybe-install-dvi-isl
  install-dvi-host: maybe-install-dvi-gold
  install-dvi-host: maybe-install-dvi-gprof
! install-dvi-host: maybe-install-dvi-intl
  install-dvi-host: maybe-install-dvi-tcl
  install-dvi-host: maybe-install-dvi-itcl
  install-dvi-host: maybe-install-dvi-ld
--- 1959,1966 ----
  install-dvi-host: maybe-install-dvi-isl
  install-dvi-host: maybe-install-dvi-gold
  install-dvi-host: maybe-install-dvi-gprof
! install-dvi-host: maybe-install-dvi-gprofng
! install-dvi-host: maybe-install-dvi-gettext
  install-dvi-host: maybe-install-dvi-tcl
  install-dvi-host: maybe-install-dvi-itcl
  install-dvi-host: maybe-install-dvi-ld
*************** install-dvi-host: maybe-install-dvi-libc
*** 1950,1955 ****
--- 1994,2000 ----
  install-dvi-host: maybe-install-dvi-gotools
  install-dvi-host: maybe-install-dvi-libctf
  install-dvi-host: maybe-install-dvi-libsframe
+ install-dvi-host: maybe-install-dvi-libgrust
  
  .PHONY: install-dvi-target
  
*************** install-dvi-target: maybe-install-dvi-ta
*** 1976,1981 ****
--- 2021,2027 ----
  install-dvi-target: maybe-install-dvi-target-libgomp
  install-dvi-target: maybe-install-dvi-target-libitm
  install-dvi-target: maybe-install-dvi-target-libatomic
+ install-dvi-target: maybe-install-dvi-target-libgrust
  
  .PHONY: do-install-pdf
  do-install-pdf:
*************** install-pdf-host: maybe-install-pdf-mpc
*** 2006,2012 ****
  install-pdf-host: maybe-install-pdf-isl
  install-pdf-host: maybe-install-pdf-gold
  install-pdf-host: maybe-install-pdf-gprof
! install-pdf-host: maybe-install-pdf-intl
  install-pdf-host: maybe-install-pdf-tcl
  install-pdf-host: maybe-install-pdf-itcl
  install-pdf-host: maybe-install-pdf-ld
--- 2052,2059 ----
  install-pdf-host: maybe-install-pdf-isl
  install-pdf-host: maybe-install-pdf-gold
  install-pdf-host: maybe-install-pdf-gprof
! install-pdf-host: maybe-install-pdf-gprofng
! install-pdf-host: maybe-install-pdf-gettext
  install-pdf-host: maybe-install-pdf-tcl
  install-pdf-host: maybe-install-pdf-itcl
  install-pdf-host: maybe-install-pdf-ld
*************** install-pdf-host: maybe-install-pdf-libc
*** 2040,2045 ****
--- 2087,2093 ----
  install-pdf-host: maybe-install-pdf-gotools
  install-pdf-host: maybe-install-pdf-libctf
  install-pdf-host: maybe-install-pdf-libsframe
+ install-pdf-host: maybe-install-pdf-libgrust
  
  .PHONY: install-pdf-target
  
*************** install-pdf-target: maybe-install-pdf-ta
*** 2066,2071 ****
--- 2114,2120 ----
  install-pdf-target: maybe-install-pdf-target-libgomp
  install-pdf-target: maybe-install-pdf-target-libitm
  install-pdf-target: maybe-install-pdf-target-libatomic
+ install-pdf-target: maybe-install-pdf-target-libgrust
  
  .PHONY: do-install-html
  do-install-html:
*************** install-html-host: maybe-install-html-mp
*** 2096,2102 ****
  install-html-host: maybe-install-html-isl
  install-html-host: maybe-install-html-gold
  install-html-host: maybe-install-html-gprof
! install-html-host: maybe-install-html-intl
  install-html-host: maybe-install-html-tcl
  install-html-host: maybe-install-html-itcl
  install-html-host: maybe-install-html-ld
--- 2145,2152 ----
  install-html-host: maybe-install-html-isl
  install-html-host: maybe-install-html-gold
  install-html-host: maybe-install-html-gprof
! install-html-host: maybe-install-html-gprofng
! install-html-host: maybe-install-html-gettext
  install-html-host: maybe-install-html-tcl
  install-html-host: maybe-install-html-itcl
  install-html-host: maybe-install-html-ld
*************** install-html-host: maybe-install-html-li
*** 2130,2135 ****
--- 2180,2186 ----
  install-html-host: maybe-install-html-gotools
  install-html-host: maybe-install-html-libctf
  install-html-host: maybe-install-html-libsframe
+ install-html-host: maybe-install-html-libgrust
  
  .PHONY: install-html-target
  
*************** install-html-target: maybe-install-html-
*** 2156,2161 ****
--- 2207,2213 ----
  install-html-target: maybe-install-html-target-libgomp
  install-html-target: maybe-install-html-target-libitm
  install-html-target: maybe-install-html-target-libatomic
+ install-html-target: maybe-install-html-target-libgrust
  
  .PHONY: do-installcheck
  do-installcheck:
*************** installcheck-host: maybe-installcheck-mp
*** 2186,2192 ****
  installcheck-host: maybe-installcheck-isl
  installcheck-host: maybe-installcheck-gold
  installcheck-host: maybe-installcheck-gprof
! installcheck-host: maybe-installcheck-intl
  installcheck-host: maybe-installcheck-tcl
  installcheck-host: maybe-installcheck-itcl
  installcheck-host: maybe-installcheck-ld
--- 2238,2245 ----
  installcheck-host: maybe-installcheck-isl
  installcheck-host: maybe-installcheck-gold
  installcheck-host: maybe-installcheck-gprof
! installcheck-host: maybe-installcheck-gprofng
! installcheck-host: maybe-installcheck-gettext
  installcheck-host: maybe-installcheck-tcl
  installcheck-host: maybe-installcheck-itcl
  installcheck-host: maybe-installcheck-ld
*************** installcheck-host: maybe-installcheck-li
*** 2220,2225 ****
--- 2273,2279 ----
  installcheck-host: maybe-installcheck-gotools
  installcheck-host: maybe-installcheck-libctf
  installcheck-host: maybe-installcheck-libsframe
+ installcheck-host: maybe-installcheck-libgrust
  
  .PHONY: installcheck-target
  
*************** installcheck-target: maybe-installcheck-
*** 2246,2251 ****
--- 2300,2306 ----
  installcheck-target: maybe-installcheck-target-libgomp
  installcheck-target: maybe-installcheck-target-libitm
  installcheck-target: maybe-installcheck-target-libatomic
+ installcheck-target: maybe-installcheck-target-libgrust
  
  .PHONY: do-mostlyclean
  do-mostlyclean:
*************** mostlyclean-host: maybe-mostlyclean-mpc
*** 2276,2282 ****
  mostlyclean-host: maybe-mostlyclean-isl
  mostlyclean-host: maybe-mostlyclean-gold
  mostlyclean-host: maybe-mostlyclean-gprof
! mostlyclean-host: maybe-mostlyclean-intl
  mostlyclean-host: maybe-mostlyclean-tcl
  mostlyclean-host: maybe-mostlyclean-itcl
  mostlyclean-host: maybe-mostlyclean-ld
--- 2331,2338 ----
  mostlyclean-host: maybe-mostlyclean-isl
  mostlyclean-host: maybe-mostlyclean-gold
  mostlyclean-host: maybe-mostlyclean-gprof
! mostlyclean-host: maybe-mostlyclean-gprofng
! mostlyclean-host: maybe-mostlyclean-gettext
  mostlyclean-host: maybe-mostlyclean-tcl
  mostlyclean-host: maybe-mostlyclean-itcl
  mostlyclean-host: maybe-mostlyclean-ld
*************** mostlyclean-host: maybe-mostlyclean-libc
*** 2310,2315 ****
--- 2366,2372 ----
  mostlyclean-host: maybe-mostlyclean-gotools
  mostlyclean-host: maybe-mostlyclean-libctf
  mostlyclean-host: maybe-mostlyclean-libsframe
+ mostlyclean-host: maybe-mostlyclean-libgrust
  
  .PHONY: mostlyclean-target
  
*************** mostlyclean-target: maybe-mostlyclean-ta
*** 2336,2341 ****
--- 2393,2399 ----
  mostlyclean-target: maybe-mostlyclean-target-libgomp
  mostlyclean-target: maybe-mostlyclean-target-libitm
  mostlyclean-target: maybe-mostlyclean-target-libatomic
+ mostlyclean-target: maybe-mostlyclean-target-libgrust
  
  .PHONY: do-clean
  do-clean:
*************** clean-host: maybe-clean-mpc
*** 2366,2372 ****
  clean-host: maybe-clean-isl
  clean-host: maybe-clean-gold
  clean-host: maybe-clean-gprof
! clean-host: maybe-clean-intl
  clean-host: maybe-clean-tcl
  clean-host: maybe-clean-itcl
  clean-host: maybe-clean-ld
--- 2424,2431 ----
  clean-host: maybe-clean-isl
  clean-host: maybe-clean-gold
  clean-host: maybe-clean-gprof
! clean-host: maybe-clean-gprofng
! clean-host: maybe-clean-gettext
  clean-host: maybe-clean-tcl
  clean-host: maybe-clean-itcl
  clean-host: maybe-clean-ld
*************** clean-host: maybe-clean-libcc1
*** 2400,2405 ****
--- 2459,2465 ----
  clean-host: maybe-clean-gotools
  clean-host: maybe-clean-libctf
  clean-host: maybe-clean-libsframe
+ clean-host: maybe-clean-libgrust
  
  .PHONY: clean-target
  
*************** clean-target: maybe-clean-target-libgm2
*** 2426,2431 ****
--- 2486,2492 ----
  clean-target: maybe-clean-target-libgomp
  clean-target: maybe-clean-target-libitm
  clean-target: maybe-clean-target-libatomic
+ clean-target: maybe-clean-target-libgrust
  
  .PHONY: do-distclean
  do-distclean:
*************** distclean-host: maybe-distclean-mpc
*** 2456,2462 ****
  distclean-host: maybe-distclean-isl
  distclean-host: maybe-distclean-gold
  distclean-host: maybe-distclean-gprof
! distclean-host: maybe-distclean-intl
  distclean-host: maybe-distclean-tcl
  distclean-host: maybe-distclean-itcl
  distclean-host: maybe-distclean-ld
--- 2517,2524 ----
  distclean-host: maybe-distclean-isl
  distclean-host: maybe-distclean-gold
  distclean-host: maybe-distclean-gprof
! distclean-host: maybe-distclean-gprofng
! distclean-host: maybe-distclean-gettext
  distclean-host: maybe-distclean-tcl
  distclean-host: maybe-distclean-itcl
  distclean-host: maybe-distclean-ld
*************** distclean-host: maybe-distclean-libcc1
*** 2490,2495 ****
--- 2552,2558 ----
  distclean-host: maybe-distclean-gotools
  distclean-host: maybe-distclean-libctf
  distclean-host: maybe-distclean-libsframe
+ distclean-host: maybe-distclean-libgrust
  
  .PHONY: distclean-target
  
*************** distclean-target: maybe-distclean-target
*** 2516,2521 ****
--- 2579,2585 ----
  distclean-target: maybe-distclean-target-libgomp
  distclean-target: maybe-distclean-target-libitm
  distclean-target: maybe-distclean-target-libatomic
+ distclean-target: maybe-distclean-target-libgrust
  
  .PHONY: do-maintainer-clean
  do-maintainer-clean:
*************** maintainer-clean-host: maybe-maintainer-
*** 2546,2552 ****
  maintainer-clean-host: maybe-maintainer-clean-isl
  maintainer-clean-host: maybe-maintainer-clean-gold
  maintainer-clean-host: maybe-maintainer-clean-gprof
! maintainer-clean-host: maybe-maintainer-clean-intl
  maintainer-clean-host: maybe-maintainer-clean-tcl
  maintainer-clean-host: maybe-maintainer-clean-itcl
  maintainer-clean-host: maybe-maintainer-clean-ld
--- 2610,2617 ----
  maintainer-clean-host: maybe-maintainer-clean-isl
  maintainer-clean-host: maybe-maintainer-clean-gold
  maintainer-clean-host: maybe-maintainer-clean-gprof
! maintainer-clean-host: maybe-maintainer-clean-gprofng
! maintainer-clean-host: maybe-maintainer-clean-gettext
  maintainer-clean-host: maybe-maintainer-clean-tcl
  maintainer-clean-host: maybe-maintainer-clean-itcl
  maintainer-clean-host: maybe-maintainer-clean-ld
*************** maintainer-clean-host: maybe-maintainer-
*** 2580,2585 ****
--- 2645,2651 ----
  maintainer-clean-host: maybe-maintainer-clean-gotools
  maintainer-clean-host: maybe-maintainer-clean-libctf
  maintainer-clean-host: maybe-maintainer-clean-libsframe
+ maintainer-clean-host: maybe-maintainer-clean-libgrust
  
  .PHONY: maintainer-clean-target
  
*************** maintainer-clean-target: maybe-maintaine
*** 2606,2611 ****
--- 2672,2678 ----
  maintainer-clean-target: maybe-maintainer-clean-target-libgomp
  maintainer-clean-target: maybe-maintainer-clean-target-libitm
  maintainer-clean-target: maybe-maintainer-clean-target-libatomic
+ maintainer-clean-target: maybe-maintainer-clean-target-libgrust
  
  
  # Here are the targets which correspond to the do-X targets.
*************** check-host:  \
*** 2694,2700 ****
      maybe-check-isl \
      maybe-check-gold \
      maybe-check-gprof \
!     maybe-check-intl \
      maybe-check-tcl \
      maybe-check-itcl \
      maybe-check-ld \
--- 2761,2768 ----
      maybe-check-isl \
      maybe-check-gold \
      maybe-check-gprof \
!     maybe-check-gprofng \
!     maybe-check-gettext \
      maybe-check-tcl \
      maybe-check-itcl \
      maybe-check-ld \
*************** check-host:  \
*** 2727,2733 ****
      maybe-check-libcc1 \
      maybe-check-gotools \
      maybe-check-libctf \
!     maybe-check-libsframe
  
  .PHONY: check-target
  check-target:  \
--- 2795,2802 ----
      maybe-check-libcc1 \
      maybe-check-gotools \
      maybe-check-libctf \
!     maybe-check-libsframe \
!     maybe-check-libgrust
  
  .PHONY: check-target
  check-target:  \
*************** check-target:  \
*** 2753,2759 ****
      maybe-check-target-libgm2 \
      maybe-check-target-libgomp \
      maybe-check-target-libitm \
!     maybe-check-target-libatomic
  
  do-check:
  	@: $(MAKE); $(unstage)
--- 2822,2829 ----
      maybe-check-target-libgm2 \
      maybe-check-target-libgomp \
      maybe-check-target-libitm \
!     maybe-check-target-libatomic \
!     maybe-check-target-libgrust
  
  do-check:
  	@: $(MAKE); $(unstage)
*************** install-host-nogcc:  \
*** 2831,2837 ****
      maybe-install-isl \
      maybe-install-gold \
      maybe-install-gprof \
!     maybe-install-intl \
      maybe-install-tcl \
      maybe-install-itcl \
      maybe-install-ld \
--- 2901,2908 ----
      maybe-install-isl \
      maybe-install-gold \
      maybe-install-gprof \
!     maybe-install-gprofng \
!     maybe-install-gettext \
      maybe-install-tcl \
      maybe-install-itcl \
      maybe-install-ld \
*************** install-host-nogcc:  \
*** 2864,2870 ****
      maybe-install-libcc1 \
      maybe-install-gotools \
      maybe-install-libctf \
!     maybe-install-libsframe
  
  .PHONY: install-host
  install-host:  \
--- 2935,2942 ----
      maybe-install-libcc1 \
      maybe-install-gotools \
      maybe-install-libctf \
!     maybe-install-libsframe \
!     maybe-install-libgrust
  
  .PHONY: install-host
  install-host:  \
*************** install-host:  \
*** 2886,2892 ****
      maybe-install-isl \
      maybe-install-gold \
      maybe-install-gprof \
!     maybe-install-intl \
      maybe-install-tcl \
      maybe-install-itcl \
      maybe-install-ld \
--- 2958,2965 ----
      maybe-install-isl \
      maybe-install-gold \
      maybe-install-gprof \
!     maybe-install-gprofng \
!     maybe-install-gettext \
      maybe-install-tcl \
      maybe-install-itcl \
      maybe-install-ld \
*************** install-host:  \
*** 2919,2925 ****
      maybe-install-libcc1 \
      maybe-install-gotools \
      maybe-install-libctf \
!     maybe-install-libsframe
  
  .PHONY: install-target
  install-target:  \
--- 2992,2999 ----
      maybe-install-libcc1 \
      maybe-install-gotools \
      maybe-install-libctf \
!     maybe-install-libsframe \
!     maybe-install-libgrust
  
  .PHONY: install-target
  install-target:  \
*************** install-target:  \
*** 2945,2951 ****
      maybe-install-target-libgm2 \
      maybe-install-target-libgomp \
      maybe-install-target-libitm \
!     maybe-install-target-libatomic
  
  uninstall:
  	@echo "the uninstall target is not supported in this tree"
--- 3019,3026 ----
      maybe-install-target-libgm2 \
      maybe-install-target-libgomp \
      maybe-install-target-libitm \
!     maybe-install-target-libatomic \
!     maybe-install-target-libgrust
  
  uninstall:
  	@echo "the uninstall target is not supported in this tree"
*************** install-strip-host:  \
*** 2996,3002 ****
      maybe-install-strip-isl \
      maybe-install-strip-gold \
      maybe-install-strip-gprof \
!     maybe-install-strip-intl \
      maybe-install-strip-tcl \
      maybe-install-strip-itcl \
      maybe-install-strip-ld \
--- 3071,3078 ----
      maybe-install-strip-isl \
      maybe-install-strip-gold \
      maybe-install-strip-gprof \
!     maybe-install-strip-gprofng \
!     maybe-install-strip-gettext \
      maybe-install-strip-tcl \
      maybe-install-strip-itcl \
      maybe-install-strip-ld \
*************** install-strip-host:  \
*** 3029,3035 ****
      maybe-install-strip-libcc1 \
      maybe-install-strip-gotools \
      maybe-install-strip-libctf \
!     maybe-install-strip-libsframe
  
  .PHONY: install-strip-target
  install-strip-target:  \
--- 3105,3112 ----
      maybe-install-strip-libcc1 \
      maybe-install-strip-gotools \
      maybe-install-strip-libctf \
!     maybe-install-strip-libsframe \
!     maybe-install-strip-libgrust
  
  .PHONY: install-strip-target
  install-strip-target:  \
*************** install-strip-target:  \
*** 3055,3061 ****
      maybe-install-strip-target-libgm2 \
      maybe-install-strip-target-libgomp \
      maybe-install-strip-target-libitm \
!     maybe-install-strip-target-libatomic
  
  
  ### other supporting targets
--- 3132,3139 ----
      maybe-install-strip-target-libgm2 \
      maybe-install-strip-target-libgomp \
      maybe-install-strip-target-libitm \
!     maybe-install-strip-target-libatomic \
!     maybe-install-strip-target-libgrust
  
  
  ### other supporting targets
*************** configure-gcc:
*** 12016,12022 ****
  	  $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
! 	  --target=${target_alias}  \
  	  || exit 1
  @endif gcc
  
--- 12094,12100 ----
  	  $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
! 	  --target=${target_alias} @gcc_host_pie@ \
  	  || exit 1
  @endif gcc
  
*************** configure-stage1-gcc:
*** 12051,12057 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	   \
! 	  $(STAGE1_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  .PHONY: configure-stage2-gcc maybe-configure-stage2-gcc
--- 12129,12136 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	   \
! 	  $(STAGE1_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  .PHONY: configure-stage2-gcc maybe-configure-stage2-gcc
*************** configure-stage2-gcc:
*** 12084,12090 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE2_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  .PHONY: configure-stage3-gcc maybe-configure-stage3-gcc
--- 12163,12170 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE2_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  .PHONY: configure-stage3-gcc maybe-configure-stage3-gcc
*************** configure-stage3-gcc:
*** 12117,12123 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE3_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  .PHONY: configure-stage4-gcc maybe-configure-stage4-gcc
--- 12197,12204 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE3_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  .PHONY: configure-stage4-gcc maybe-configure-stage4-gcc
*************** configure-stage4-gcc:
*** 12150,12156 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE4_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  .PHONY: configure-stageprofile-gcc maybe-configure-stageprofile-gcc
--- 12231,12238 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE4_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  .PHONY: configure-stageprofile-gcc maybe-configure-stageprofile-gcc
*************** configure-stageprofile-gcc:
*** 12183,12189 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEprofile_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  .PHONY: configure-stagetrain-gcc maybe-configure-stagetrain-gcc
--- 12265,12272 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEprofile_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  .PHONY: configure-stagetrain-gcc maybe-configure-stagetrain-gcc
*************** configure-stagetrain-gcc:
*** 12216,12222 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEtrain_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  .PHONY: configure-stagefeedback-gcc maybe-configure-stagefeedback-gcc
--- 12299,12306 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEtrain_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  .PHONY: configure-stagefeedback-gcc maybe-configure-stagefeedback-gcc
*************** configure-stagefeedback-gcc:
*** 12249,12255 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEfeedback_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  .PHONY: configure-stageautoprofile-gcc maybe-configure-stageautoprofile-gcc
--- 12333,12340 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEfeedback_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  .PHONY: configure-stageautoprofile-gcc maybe-configure-stageautoprofile-gcc
*************** configure-stageautoprofile-gcc:
*** 12282,12288 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEautoprofile_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  .PHONY: configure-stageautofeedback-gcc maybe-configure-stageautofeedback-gcc
--- 12367,12374 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  .PHONY: configure-stageautofeedback-gcc maybe-configure-stageautofeedback-gcc
*************** configure-stageautofeedback-gcc:
*** 12315,12321 ****
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEautofeedback_CONFIGURE_FLAGS)
  @endif gcc-bootstrap
  
  
--- 12401,12408 ----
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
! 	  @gcc_host_pie@
  @endif gcc-bootstrap
  
  
*************** maintainer-clean-gprof:
*** 19287,19657 ****
  
  
  
! .PHONY: configure-intl maybe-configure-intl
! maybe-configure-intl:
  @if gcc-bootstrap
! configure-intl: stage_current
  @endif gcc-bootstrap
! @if intl
! maybe-configure-intl: configure-intl
! configure-intl: 
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
  	$(HOST_EXPORTS)  \
! 	echo Configuring in $(HOST_SUBDIR)/intl; \
! 	cd "$(HOST_SUBDIR)/intl" || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) \
  	  $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias}  \
  	  || exit 1
! @endif intl
  
  
  
! .PHONY: configure-stage1-intl maybe-configure-stage1-intl
! maybe-configure-stage1-intl:
! @if intl-bootstrap
! maybe-configure-stage1-intl: configure-stage1-intl
! configure-stage1-intl:
  	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE1_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage 1 in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	   \
! 	  $(STAGE1_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
! .PHONY: configure-stage2-intl maybe-configure-stage2-intl
! maybe-configure-stage2-intl:
! @if intl-bootstrap
! maybe-configure-stage2-intl: configure-stage2-intl
! configure-stage2-intl:
  	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE2_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage 2 in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE2_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
! .PHONY: configure-stage3-intl maybe-configure-stage3-intl
! maybe-configure-stage3-intl:
! @if intl-bootstrap
! maybe-configure-stage3-intl: configure-stage3-intl
! configure-stage3-intl:
  	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE3_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage 3 in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE3_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
! .PHONY: configure-stage4-intl maybe-configure-stage4-intl
! maybe-configure-stage4-intl:
! @if intl-bootstrap
! maybe-configure-stage4-intl: configure-stage4-intl
! configure-stage4-intl:
  	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE4_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage 4 in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE4_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
! .PHONY: configure-stageprofile-intl maybe-configure-stageprofile-intl
! maybe-configure-stageprofile-intl:
! @if intl-bootstrap
! maybe-configure-stageprofile-intl: configure-stageprofile-intl
! configure-stageprofile-intl:
  	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEprofile_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage profile in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEprofile_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
! .PHONY: configure-stagetrain-intl maybe-configure-stagetrain-intl
! maybe-configure-stagetrain-intl:
! @if intl-bootstrap
! maybe-configure-stagetrain-intl: configure-stagetrain-intl
! configure-stagetrain-intl:
  	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEtrain_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage train in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEtrain_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
! .PHONY: configure-stagefeedback-intl maybe-configure-stagefeedback-intl
! maybe-configure-stagefeedback-intl:
! @if intl-bootstrap
! maybe-configure-stagefeedback-intl: configure-stagefeedback-intl
! configure-stagefeedback-intl:
  	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage feedback in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEfeedback_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
! .PHONY: configure-stageautoprofile-intl maybe-configure-stageautoprofile-intl
! maybe-configure-stageautoprofile-intl:
! @if intl-bootstrap
! maybe-configure-stageautoprofile-intl: configure-stageautoprofile-intl
! configure-stageautoprofile-intl:
  	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage autoprofile in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEautoprofile_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
! .PHONY: configure-stageautofeedback-intl maybe-configure-stageautofeedback-intl
! maybe-configure-stageautofeedback-intl:
! @if intl-bootstrap
! maybe-configure-stageautofeedback-intl: configure-stageautofeedback-intl
! configure-stageautofeedback-intl:
  	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage autofeedback in $(HOST_SUBDIR)/intl; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
! 	cd $(HOST_SUBDIR)/intl || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=intl; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEautofeedback_CONFIGURE_FLAGS)
! @endif intl-bootstrap
  
  
  
  
  
! .PHONY: all-intl maybe-all-intl
! maybe-all-intl:
  @if gcc-bootstrap
! all-intl: stage_current
  @endif gcc-bootstrap
! @if intl
! TARGET-intl=all
! maybe-all-intl: all-intl
! all-intl: configure-intl
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS)  \
! 	(cd $(HOST_SUBDIR)/intl && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
! 		$(TARGET-intl))
! @endif intl
  
  
  
! .PHONY: all-stage1-intl maybe-all-stage1-intl
! .PHONY: clean-stage1-intl maybe-clean-stage1-intl
! maybe-all-stage1-intl:
! maybe-clean-stage1-intl:
! @if intl-bootstrap
! maybe-all-stage1-intl: all-stage1-intl
! all-stage1: all-stage1-intl
! TARGET-stage1-intl = $(TARGET-intl)
! all-stage1-intl: configure-stage1-intl
  	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE1_TFLAGS)"; \
  	$(HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGE1_CFLAGS)" \
--- 19374,20221 ----
  
  
  
! .PHONY: configure-gprofng maybe-configure-gprofng
! maybe-configure-gprofng:
  @if gcc-bootstrap
! configure-gprofng: stage_current
  @endif gcc-bootstrap
! @if gprofng
! maybe-configure-gprofng: configure-gprofng
! configure-gprofng: 
! 	@: $(MAKE); $(unstage)
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	test ! -f $(HOST_SUBDIR)/gprofng/Makefile || exit 0; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gprofng; \
  	$(HOST_EXPORTS)  \
! 	echo Configuring in $(HOST_SUBDIR)/gprofng; \
! 	cd "$(HOST_SUBDIR)/gprofng" || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gprofng/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gprofng; \
  	$(SHELL) \
  	  $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias}  \
  	  || exit 1
! @endif gprofng
  
  
  
! 
! 
! .PHONY: all-gprofng maybe-all-gprofng
! maybe-all-gprofng:
! @if gcc-bootstrap
! all-gprofng: stage_current
! @endif gcc-bootstrap
! @if gprofng
! TARGET-gprofng=all
! maybe-all-gprofng: all-gprofng
! all-gprofng: configure-gprofng
! 	@: $(MAKE); $(unstage)
! 	@r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS)  \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
! 		$(TARGET-gprofng))
! @endif gprofng
! 
! 
! 
! 
! .PHONY: check-gprofng maybe-check-gprofng
! maybe-check-gprofng:
! @if gprofng
! maybe-check-gprofng: check-gprofng
! 
! check-gprofng:
! 	@: $(MAKE); $(unstage)
! 	@r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS)  \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(FLAGS_TO_PASS)  check)
! 
! @endif gprofng
! 
! .PHONY: install-gprofng maybe-install-gprofng
! maybe-install-gprofng:
! @if gprofng
! maybe-install-gprofng: install-gprofng
! 
! install-gprofng: installdirs
! 	@: $(MAKE); $(unstage)
! 	@r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(FLAGS_TO_PASS)  install)
! 
! @endif gprofng
! 
! .PHONY: install-strip-gprofng maybe-install-strip-gprofng
! maybe-install-strip-gprofng:
! @if gprofng
! maybe-install-strip-gprofng: install-strip-gprofng
! 
! install-strip-gprofng: installdirs
! 	@: $(MAKE); $(unstage)
! 	@r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)
! 
! @endif gprofng
! 
! # Other targets (info, dvi, pdf, etc.)
! 
! .PHONY: maybe-info-gprofng info-gprofng
! maybe-info-gprofng:
! @if gprofng
! maybe-info-gprofng: info-gprofng
! 
! info-gprofng: \
!     configure-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing info in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          info) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-dvi-gprofng dvi-gprofng
! maybe-dvi-gprofng:
! @if gprofng
! maybe-dvi-gprofng: dvi-gprofng
! 
! dvi-gprofng: \
!     configure-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing dvi in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          dvi) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-pdf-gprofng pdf-gprofng
! maybe-pdf-gprofng:
! @if gprofng
! maybe-pdf-gprofng: pdf-gprofng
! 
! pdf-gprofng: \
!     configure-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing pdf in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          pdf) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-html-gprofng html-gprofng
! maybe-html-gprofng:
! @if gprofng
! maybe-html-gprofng: html-gprofng
! 
! html-gprofng: \
!     configure-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing html in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          html) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-TAGS-gprofng TAGS-gprofng
! maybe-TAGS-gprofng:
! @if gprofng
! maybe-TAGS-gprofng: TAGS-gprofng
! 
! TAGS-gprofng: \
!     configure-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing TAGS in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          TAGS) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-install-info-gprofng install-info-gprofng
! maybe-install-info-gprofng:
! @if gprofng
! maybe-install-info-gprofng: install-info-gprofng
! 
! install-info-gprofng: \
!     configure-gprofng \
!     info-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing install-info in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          install-info) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-install-dvi-gprofng install-dvi-gprofng
! maybe-install-dvi-gprofng:
! @if gprofng
! maybe-install-dvi-gprofng: install-dvi-gprofng
! 
! install-dvi-gprofng: \
!     configure-gprofng \
!     dvi-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing install-dvi in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          install-dvi) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-install-pdf-gprofng install-pdf-gprofng
! maybe-install-pdf-gprofng:
! @if gprofng
! maybe-install-pdf-gprofng: install-pdf-gprofng
! 
! install-pdf-gprofng: \
!     configure-gprofng \
!     pdf-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing install-pdf in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          install-pdf) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-install-html-gprofng install-html-gprofng
! maybe-install-html-gprofng:
! @if gprofng
! maybe-install-html-gprofng: install-html-gprofng
! 
! install-html-gprofng: \
!     configure-gprofng \
!     html-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing install-html in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          install-html) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-installcheck-gprofng installcheck-gprofng
! maybe-installcheck-gprofng:
! @if gprofng
! maybe-installcheck-gprofng: installcheck-gprofng
! 
! installcheck-gprofng: \
!     configure-gprofng 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing installcheck in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          installcheck) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-mostlyclean-gprofng mostlyclean-gprofng
! maybe-mostlyclean-gprofng:
! @if gprofng
! maybe-mostlyclean-gprofng: mostlyclean-gprofng
! 
! mostlyclean-gprofng: 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing mostlyclean in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          mostlyclean) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-clean-gprofng clean-gprofng
! maybe-clean-gprofng:
! @if gprofng
! maybe-clean-gprofng: clean-gprofng
! 
! clean-gprofng: 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing clean in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          clean) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-distclean-gprofng distclean-gprofng
! maybe-distclean-gprofng:
! @if gprofng
! maybe-distclean-gprofng: distclean-gprofng
! 
! distclean-gprofng: 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing distclean in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          distclean) \
! 	  || exit 1
! 
! @endif gprofng
! 
! .PHONY: maybe-maintainer-clean-gprofng maintainer-clean-gprofng
! maybe-maintainer-clean-gprofng:
! @if gprofng
! maybe-maintainer-clean-gprofng: maintainer-clean-gprofng
! 
! maintainer-clean-gprofng: 
! 	@: $(MAKE); $(unstage)
! 	@[ -f ./gprofng/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing maintainer-clean in gprofng"; \
! 	(cd $(HOST_SUBDIR)/gprofng && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          maintainer-clean) \
! 	  || exit 1
! 
! @endif gprofng
! 
! 
! 
! .PHONY: configure-gettext maybe-configure-gettext
! maybe-configure-gettext:
! @if gcc-bootstrap
! configure-gettext: stage_current
! @endif gcc-bootstrap
! @if gettext
! maybe-configure-gettext: configure-gettext
! configure-gettext: 
! 	@r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	$(HOST_EXPORTS)  \
! 	echo Configuring in $(HOST_SUBDIR)/gettext; \
! 	cd "$(HOST_SUBDIR)/gettext" || exit 1; \
! 	case $(srcdir) in \
! 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
! 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
! 	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
! 	$(SHELL) \
! 	  $$s/$$module_srcdir/configure \
! 	  --srcdir=$${topdir}/$$module_srcdir \
! 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
! 	  --target=${target_alias} --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf \
! 	  || exit 1
! @endif gettext
! 
! 
! 
! .PHONY: configure-stage1-gettext maybe-configure-stage1-gettext
! maybe-configure-stage1-gettext:
! @if gettext-bootstrap
! maybe-configure-stage1-gettext: configure-stage1-gettext
! configure-stage1-gettext:
  	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE1_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage 1 in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	   \
! 	  $(STAGE1_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
! .PHONY: configure-stage2-gettext maybe-configure-stage2-gettext
! maybe-configure-stage2-gettext:
! @if gettext-bootstrap
! maybe-configure-stage2-gettext: configure-stage2-gettext
! configure-stage2-gettext:
  	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE2_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage 2 in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE2_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
! .PHONY: configure-stage3-gettext maybe-configure-stage3-gettext
! maybe-configure-stage3-gettext:
! @if gettext-bootstrap
! maybe-configure-stage3-gettext: configure-stage3-gettext
! configure-stage3-gettext:
  	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE3_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage 3 in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE3_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
! .PHONY: configure-stage4-gettext maybe-configure-stage4-gettext
! maybe-configure-stage4-gettext:
! @if gettext-bootstrap
! maybe-configure-stage4-gettext: configure-stage4-gettext
! configure-stage4-gettext:
  	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE4_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage 4 in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGE4_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
! .PHONY: configure-stageprofile-gettext maybe-configure-stageprofile-gettext
! maybe-configure-stageprofile-gettext:
! @if gettext-bootstrap
! maybe-configure-stageprofile-gettext: configure-stageprofile-gettext
! configure-stageprofile-gettext:
  	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEprofile_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage profile in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEprofile_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
! .PHONY: configure-stagetrain-gettext maybe-configure-stagetrain-gettext
! maybe-configure-stagetrain-gettext:
! @if gettext-bootstrap
! maybe-configure-stagetrain-gettext: configure-stagetrain-gettext
! configure-stagetrain-gettext:
  	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEtrain_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage train in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEtrain_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
! .PHONY: configure-stagefeedback-gettext maybe-configure-stagefeedback-gettext
! maybe-configure-stagefeedback-gettext:
! @if gettext-bootstrap
! maybe-configure-stagefeedback-gettext: configure-stagefeedback-gettext
! configure-stagefeedback-gettext:
  	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage feedback in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEfeedback_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
! .PHONY: configure-stageautoprofile-gettext maybe-configure-stageautoprofile-gettext
! maybe-configure-stageautoprofile-gettext:
! @if gettext-bootstrap
! maybe-configure-stageautoprofile-gettext: configure-stageautoprofile-gettext
! configure-stageautoprofile-gettext:
  	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage autoprofile in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
! .PHONY: configure-stageautofeedback-gettext maybe-configure-stageautofeedback-gettext
! maybe-configure-stageautofeedback-gettext:
! @if gettext-bootstrap
! maybe-configure-stageautofeedback-gettext: configure-stageautofeedback-gettext
! configure-stageautofeedback-gettext:
  	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
! 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
! 	test ! -f $(HOST_SUBDIR)/gettext/Makefile || exit 0; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
  	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
! 	echo Configuring stage autofeedback in $(HOST_SUBDIR)/gettext; \
! 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gettext; \
! 	cd $(HOST_SUBDIR)/gettext || exit 1; \
  	case $(srcdir) in \
  	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
! 	  *) topdir=`echo $(HOST_SUBDIR)/gettext/ | \
  		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
  	esac; \
! 	module_srcdir=gettext/gettext-runtime; \
  	$(SHELL) $$s/$$module_srcdir/configure \
  	  --srcdir=$${topdir}/$$module_srcdir \
  	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
  	  --target=${target_alias} \
  	  --with-build-libsubdir=$(HOST_SUBDIR) \
! 	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
! 	  --disable-shared --disable-threads --disable-java --disable-csharp --with-pic --disable-libasprintf
! @endif gettext-bootstrap
  
  
  
  
  
! .PHONY: all-gettext maybe-all-gettext
! maybe-all-gettext:
  @if gcc-bootstrap
! all-gettext: stage_current
  @endif gcc-bootstrap
! @if gettext
! TARGET-gettext=all
! maybe-all-gettext: all-gettext
! all-gettext: configure-gettext
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS)  \
! 	(cd $(HOST_SUBDIR)/gettext && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
! 		$(TARGET-gettext))
! @endif gettext
  
  
  
! .PHONY: all-stage1-gettext maybe-all-stage1-gettext
! .PHONY: clean-stage1-gettext maybe-clean-stage1-gettext
! maybe-all-stage1-gettext:
! maybe-clean-stage1-gettext:
! @if gettext-bootstrap
! maybe-all-stage1-gettext: all-stage1-gettext
! all-stage1: all-stage1-gettext
! TARGET-stage1-gettext = $(TARGET-gettext)
! all-stage1-gettext: configure-stage1-gettext
  	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE1_TFLAGS)"; \
  	$(HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGE1_CFLAGS)" \
*************** all-stage1-intl: configure-stage1-intl
*** 19664,19702 ****
  		$(EXTRA_HOST_FLAGS)  \
  		$(STAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGE1_TFLAGS)"  \
! 		$(TARGET-stage1-intl)
  
! maybe-clean-stage1-intl: clean-stage1-intl
! clean-stage1: clean-stage1-intl
! clean-stage1-intl:
  	@if [ $(current_stage) = stage1 ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stage1-intl/Makefile ] || exit 0; \
  	  $(MAKE) stage1-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS)  \
  	$(STAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
! .PHONY: all-stage2-intl maybe-all-stage2-intl
! .PHONY: clean-stage2-intl maybe-clean-stage2-intl
! maybe-all-stage2-intl:
! maybe-clean-stage2-intl:
! @if intl-bootstrap
! maybe-all-stage2-intl: all-stage2-intl
! all-stage2: all-stage2-intl
! TARGET-stage2-intl = $(TARGET-intl)
! all-stage2-intl: configure-stage2-intl
  	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE2_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGE2_CFLAGS)" \
--- 20228,20266 ----
  		$(EXTRA_HOST_FLAGS)  \
  		$(STAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGE1_TFLAGS)"  \
! 		$(TARGET-stage1-gettext)
  
! maybe-clean-stage1-gettext: clean-stage1-gettext
! clean-stage1: clean-stage1-gettext
! clean-stage1-gettext:
  	@if [ $(current_stage) = stage1 ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stage1-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stage1-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS)  \
  	$(STAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
! .PHONY: all-stage2-gettext maybe-all-stage2-gettext
! .PHONY: clean-stage2-gettext maybe-clean-stage2-gettext
! maybe-all-stage2-gettext:
! maybe-clean-stage2-gettext:
! @if gettext-bootstrap
! maybe-all-stage2-gettext: all-stage2-gettext
! all-stage2: all-stage2-gettext
! TARGET-stage2-gettext = $(TARGET-gettext)
! all-stage2-gettext: configure-stage2-gettext
  	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE2_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGE2_CFLAGS)" \
*************** all-stage2-intl: configure-stage2-intl
*** 19708,19745 ****
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGE2_TFLAGS)"  \
! 		$(TARGET-stage2-intl)
  
! maybe-clean-stage2-intl: clean-stage2-intl
! clean-stage2: clean-stage2-intl
! clean-stage2-intl:
  	@if [ $(current_stage) = stage2 ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stage2-intl/Makefile ] || exit 0; \
  	  $(MAKE) stage2-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
! .PHONY: all-stage3-intl maybe-all-stage3-intl
! .PHONY: clean-stage3-intl maybe-clean-stage3-intl
! maybe-all-stage3-intl:
! maybe-clean-stage3-intl:
! @if intl-bootstrap
! maybe-all-stage3-intl: all-stage3-intl
! all-stage3: all-stage3-intl
! TARGET-stage3-intl = $(TARGET-intl)
! all-stage3-intl: configure-stage3-intl
  	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE3_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGE3_CFLAGS)" \
--- 20272,20309 ----
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGE2_TFLAGS)"  \
! 		$(TARGET-stage2-gettext)
  
! maybe-clean-stage2-gettext: clean-stage2-gettext
! clean-stage2: clean-stage2-gettext
! clean-stage2-gettext:
  	@if [ $(current_stage) = stage2 ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stage2-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stage2-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
! .PHONY: all-stage3-gettext maybe-all-stage3-gettext
! .PHONY: clean-stage3-gettext maybe-clean-stage3-gettext
! maybe-all-stage3-gettext:
! maybe-clean-stage3-gettext:
! @if gettext-bootstrap
! maybe-all-stage3-gettext: all-stage3-gettext
! all-stage3: all-stage3-gettext
! TARGET-stage3-gettext = $(TARGET-gettext)
! all-stage3-gettext: configure-stage3-gettext
  	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE3_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGE3_CFLAGS)" \
*************** all-stage3-intl: configure-stage3-intl
*** 19751,19788 ****
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGE3_TFLAGS)"  \
! 		$(TARGET-stage3-intl)
  
! maybe-clean-stage3-intl: clean-stage3-intl
! clean-stage3: clean-stage3-intl
! clean-stage3-intl:
  	@if [ $(current_stage) = stage3 ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stage3-intl/Makefile ] || exit 0; \
  	  $(MAKE) stage3-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
! .PHONY: all-stage4-intl maybe-all-stage4-intl
! .PHONY: clean-stage4-intl maybe-clean-stage4-intl
! maybe-all-stage4-intl:
! maybe-clean-stage4-intl:
! @if intl-bootstrap
! maybe-all-stage4-intl: all-stage4-intl
! all-stage4: all-stage4-intl
! TARGET-stage4-intl = $(TARGET-intl)
! all-stage4-intl: configure-stage4-intl
  	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE4_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGE4_CFLAGS)" \
--- 20315,20352 ----
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGE3_TFLAGS)"  \
! 		$(TARGET-stage3-gettext)
  
! maybe-clean-stage3-gettext: clean-stage3-gettext
! clean-stage3: clean-stage3-gettext
! clean-stage3-gettext:
  	@if [ $(current_stage) = stage3 ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stage3-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stage3-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
! .PHONY: all-stage4-gettext maybe-all-stage4-gettext
! .PHONY: clean-stage4-gettext maybe-clean-stage4-gettext
! maybe-all-stage4-gettext:
! maybe-clean-stage4-gettext:
! @if gettext-bootstrap
! maybe-all-stage4-gettext: all-stage4-gettext
! all-stage4: all-stage4-gettext
! TARGET-stage4-gettext = $(TARGET-gettext)
! all-stage4-gettext: configure-stage4-gettext
  	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGE4_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGE4_CFLAGS)" \
*************** all-stage4-intl: configure-stage4-intl
*** 19794,19831 ****
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGE4_TFLAGS)"  \
! 		$(TARGET-stage4-intl)
  
! maybe-clean-stage4-intl: clean-stage4-intl
! clean-stage4: clean-stage4-intl
! clean-stage4-intl:
  	@if [ $(current_stage) = stage4 ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stage4-intl/Makefile ] || exit 0; \
  	  $(MAKE) stage4-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
! .PHONY: all-stageprofile-intl maybe-all-stageprofile-intl
! .PHONY: clean-stageprofile-intl maybe-clean-stageprofile-intl
! maybe-all-stageprofile-intl:
! maybe-clean-stageprofile-intl:
! @if intl-bootstrap
! maybe-all-stageprofile-intl: all-stageprofile-intl
! all-stageprofile: all-stageprofile-intl
! TARGET-stageprofile-intl = $(TARGET-intl)
! all-stageprofile-intl: configure-stageprofile-intl
  	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEprofile_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEprofile_CFLAGS)" \
--- 20358,20395 ----
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGE4_TFLAGS)"  \
! 		$(TARGET-stage4-gettext)
  
! maybe-clean-stage4-gettext: clean-stage4-gettext
! clean-stage4: clean-stage4-gettext
! clean-stage4-gettext:
  	@if [ $(current_stage) = stage4 ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stage4-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stage4-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
! .PHONY: all-stageprofile-gettext maybe-all-stageprofile-gettext
! .PHONY: clean-stageprofile-gettext maybe-clean-stageprofile-gettext
! maybe-all-stageprofile-gettext:
! maybe-clean-stageprofile-gettext:
! @if gettext-bootstrap
! maybe-all-stageprofile-gettext: all-stageprofile-gettext
! all-stageprofile: all-stageprofile-gettext
! TARGET-stageprofile-gettext = $(TARGET-gettext)
! all-stageprofile-gettext: configure-stageprofile-gettext
  	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEprofile_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEprofile_CFLAGS)" \
*************** all-stageprofile-intl: configure-stagepr
*** 19837,19874 ****
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEprofile_TFLAGS)"  \
! 		$(TARGET-stageprofile-intl)
  
! maybe-clean-stageprofile-intl: clean-stageprofile-intl
! clean-stageprofile: clean-stageprofile-intl
! clean-stageprofile-intl:
  	@if [ $(current_stage) = stageprofile ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stageprofile-intl/Makefile ] || exit 0; \
  	  $(MAKE) stageprofile-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
! .PHONY: all-stagetrain-intl maybe-all-stagetrain-intl
! .PHONY: clean-stagetrain-intl maybe-clean-stagetrain-intl
! maybe-all-stagetrain-intl:
! maybe-clean-stagetrain-intl:
! @if intl-bootstrap
! maybe-all-stagetrain-intl: all-stagetrain-intl
! all-stagetrain: all-stagetrain-intl
! TARGET-stagetrain-intl = $(TARGET-intl)
! all-stagetrain-intl: configure-stagetrain-intl
  	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEtrain_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEtrain_CFLAGS)" \
--- 20401,20438 ----
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEprofile_TFLAGS)"  \
! 		$(TARGET-stageprofile-gettext)
  
! maybe-clean-stageprofile-gettext: clean-stageprofile-gettext
! clean-stageprofile: clean-stageprofile-gettext
! clean-stageprofile-gettext:
  	@if [ $(current_stage) = stageprofile ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stageprofile-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stageprofile-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
! .PHONY: all-stagetrain-gettext maybe-all-stagetrain-gettext
! .PHONY: clean-stagetrain-gettext maybe-clean-stagetrain-gettext
! maybe-all-stagetrain-gettext:
! maybe-clean-stagetrain-gettext:
! @if gettext-bootstrap
! maybe-all-stagetrain-gettext: all-stagetrain-gettext
! all-stagetrain: all-stagetrain-gettext
! TARGET-stagetrain-gettext = $(TARGET-gettext)
! all-stagetrain-gettext: configure-stagetrain-gettext
  	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEtrain_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEtrain_CFLAGS)" \
*************** all-stagetrain-intl: configure-stagetrai
*** 19880,19917 ****
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEtrain_TFLAGS)"  \
! 		$(TARGET-stagetrain-intl)
  
! maybe-clean-stagetrain-intl: clean-stagetrain-intl
! clean-stagetrain: clean-stagetrain-intl
! clean-stagetrain-intl:
  	@if [ $(current_stage) = stagetrain ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stagetrain-intl/Makefile ] || exit 0; \
  	  $(MAKE) stagetrain-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
! .PHONY: all-stagefeedback-intl maybe-all-stagefeedback-intl
! .PHONY: clean-stagefeedback-intl maybe-clean-stagefeedback-intl
! maybe-all-stagefeedback-intl:
! maybe-clean-stagefeedback-intl:
! @if intl-bootstrap
! maybe-all-stagefeedback-intl: all-stagefeedback-intl
! all-stagefeedback: all-stagefeedback-intl
! TARGET-stagefeedback-intl = $(TARGET-intl)
! all-stagefeedback-intl: configure-stagefeedback-intl
  	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEfeedback_CFLAGS)" \
--- 20444,20481 ----
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEtrain_TFLAGS)"  \
! 		$(TARGET-stagetrain-gettext)
  
! maybe-clean-stagetrain-gettext: clean-stagetrain-gettext
! clean-stagetrain: clean-stagetrain-gettext
! clean-stagetrain-gettext:
  	@if [ $(current_stage) = stagetrain ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stagetrain-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stagetrain-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
! .PHONY: all-stagefeedback-gettext maybe-all-stagefeedback-gettext
! .PHONY: clean-stagefeedback-gettext maybe-clean-stagefeedback-gettext
! maybe-all-stagefeedback-gettext:
! maybe-clean-stagefeedback-gettext:
! @if gettext-bootstrap
! maybe-all-stagefeedback-gettext: all-stagefeedback-gettext
! all-stagefeedback: all-stagefeedback-gettext
! TARGET-stagefeedback-gettext = $(TARGET-gettext)
! all-stagefeedback-gettext: configure-stagefeedback-gettext
  	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEfeedback_CFLAGS)" \
*************** all-stagefeedback-intl: configure-stagef
*** 19923,19960 ****
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
! 		$(TARGET-stagefeedback-intl)
  
! maybe-clean-stagefeedback-intl: clean-stagefeedback-intl
! clean-stagefeedback: clean-stagefeedback-intl
! clean-stagefeedback-intl:
  	@if [ $(current_stage) = stagefeedback ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stagefeedback-intl/Makefile ] || exit 0; \
  	  $(MAKE) stagefeedback-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
! .PHONY: all-stageautoprofile-intl maybe-all-stageautoprofile-intl
! .PHONY: clean-stageautoprofile-intl maybe-clean-stageautoprofile-intl
! maybe-all-stageautoprofile-intl:
! maybe-clean-stageautoprofile-intl:
! @if intl-bootstrap
! maybe-all-stageautoprofile-intl: all-stageautoprofile-intl
! all-stageautoprofile: all-stageautoprofile-intl
! TARGET-stageautoprofile-intl = $(TARGET-intl)
! all-stageautoprofile-intl: configure-stageautoprofile-intl
  	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
--- 20487,20524 ----
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
! 		$(TARGET-stagefeedback-gettext)
  
! maybe-clean-stagefeedback-gettext: clean-stagefeedback-gettext
! clean-stagefeedback: clean-stagefeedback-gettext
! clean-stagefeedback-gettext:
  	@if [ $(current_stage) = stagefeedback ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stagefeedback-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stagefeedback-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
! .PHONY: all-stageautoprofile-gettext maybe-all-stageautoprofile-gettext
! .PHONY: clean-stageautoprofile-gettext maybe-clean-stageautoprofile-gettext
! maybe-all-stageautoprofile-gettext:
! maybe-clean-stageautoprofile-gettext:
! @if gettext-bootstrap
! maybe-all-stageautoprofile-gettext: all-stageautoprofile-gettext
! all-stageautoprofile: all-stageautoprofile-gettext
! TARGET-stageautoprofile-gettext = $(TARGET-gettext)
! all-stageautoprofile-gettext: configure-stageautoprofile-gettext
  	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
*************** all-stageautoprofile-intl: configure-sta
*** 19966,20003 ****
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
! 		$(TARGET-stageautoprofile-intl)
  
! maybe-clean-stageautoprofile-intl: clean-stageautoprofile-intl
! clean-stageautoprofile: clean-stageautoprofile-intl
! clean-stageautoprofile-intl:
  	@if [ $(current_stage) = stageautoprofile ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stageautoprofile-intl/Makefile ] || exit 0; \
  	  $(MAKE) stageautoprofile-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
! .PHONY: all-stageautofeedback-intl maybe-all-stageautofeedback-intl
! .PHONY: clean-stageautofeedback-intl maybe-clean-stageautofeedback-intl
! maybe-all-stageautofeedback-intl:
! maybe-clean-stageautofeedback-intl:
! @if intl-bootstrap
! maybe-all-stageautofeedback-intl: all-stageautofeedback-intl
! all-stageautofeedback: all-stageautofeedback-intl
! TARGET-stageautofeedback-intl = $(TARGET-intl)
! all-stageautofeedback-intl: configure-stageautofeedback-intl
  	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/intl && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
--- 20530,20567 ----
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
! 		$(TARGET-stageautoprofile-gettext)
  
! maybe-clean-stageautoprofile-gettext: clean-stageautoprofile-gettext
! clean-stageautoprofile: clean-stageautoprofile-gettext
! clean-stageautoprofile-gettext:
  	@if [ $(current_stage) = stageautoprofile ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stageautoprofile-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stageautoprofile-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
! .PHONY: all-stageautofeedback-gettext maybe-all-stageautofeedback-gettext
! .PHONY: clean-stageautofeedback-gettext maybe-clean-stageautofeedback-gettext
! maybe-all-stageautofeedback-gettext:
! maybe-clean-stageautofeedback-gettext:
! @if gettext-bootstrap
! maybe-all-stageautofeedback-gettext: all-stageautofeedback-gettext
! all-stageautofeedback: all-stageautofeedback-gettext
! TARGET-stageautofeedback-gettext = $(TARGET-gettext)
! all-stageautofeedback-gettext: configure-stageautofeedback-gettext
  	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
! 	cd $(HOST_SUBDIR)/gettext && \
  	 \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
*************** all-stageautofeedback-intl: configure-st
*** 20009,20325 ****
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
! 		$(TARGET-stageautofeedback-intl)
  
! maybe-clean-stageautofeedback-intl: clean-stageautofeedback-intl
! clean-stageautofeedback: clean-stageautofeedback-intl
! clean-stageautofeedback-intl:
  	@if [ $(current_stage) = stageautofeedback ]; then \
! 	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stageautofeedback-intl/Makefile ] || exit 0; \
  	  $(MAKE) stageautofeedback-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/intl && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif intl-bootstrap
  
  
  
  
  
! .PHONY: check-intl maybe-check-intl
! maybe-check-intl:
! @if intl
! maybe-check-intl: check-intl
  
! check-intl:
  	@: $(MAKE); $(unstage)
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
! 	(cd $(HOST_SUBDIR)/intl && \
  	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)
  
! @endif intl
  
! .PHONY: install-intl maybe-install-intl
! maybe-install-intl:
! @if intl
! maybe-install-intl: install-intl
  
! install-intl: installdirs
! 	@: $(MAKE); $(unstage)
! 	@r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(FLAGS_TO_PASS)  install)
  
! @endif intl
  
! .PHONY: install-strip-intl maybe-install-strip-intl
! maybe-install-strip-intl:
! @if intl
! maybe-install-strip-intl: install-strip-intl
  
! install-strip-intl: installdirs
! 	@: $(MAKE); $(unstage)
! 	@r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)
  
! @endif intl
  
  # Other targets (info, dvi, pdf, etc.)
  
! .PHONY: maybe-info-intl info-intl
! maybe-info-intl:
! @if intl
! maybe-info-intl: info-intl
  
! info-intl: \
!     configure-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing info in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          info) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-dvi-intl dvi-intl
! maybe-dvi-intl:
! @if intl
! maybe-dvi-intl: dvi-intl
  
! dvi-intl: \
!     configure-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing dvi in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          dvi) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-pdf-intl pdf-intl
! maybe-pdf-intl:
! @if intl
! maybe-pdf-intl: pdf-intl
  
! pdf-intl: \
!     configure-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing pdf in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          pdf) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-html-intl html-intl
! maybe-html-intl:
! @if intl
! maybe-html-intl: html-intl
  
! html-intl: \
!     configure-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing html in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          html) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-TAGS-intl TAGS-intl
! maybe-TAGS-intl:
! @if intl
! maybe-TAGS-intl: TAGS-intl
  
! TAGS-intl: \
!     configure-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing TAGS in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          TAGS) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-install-info-intl install-info-intl
! maybe-install-info-intl:
! @if intl
! maybe-install-info-intl: install-info-intl
  
! install-info-intl: \
!     configure-intl \
!     info-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing install-info in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          install-info) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-install-dvi-intl install-dvi-intl
! maybe-install-dvi-intl:
! @if intl
! maybe-install-dvi-intl: install-dvi-intl
  
! install-dvi-intl: \
!     configure-intl \
!     dvi-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing install-dvi in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          install-dvi) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-install-pdf-intl install-pdf-intl
! maybe-install-pdf-intl:
! @if intl
! maybe-install-pdf-intl: install-pdf-intl
  
! install-pdf-intl: \
!     configure-intl \
!     pdf-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing install-pdf in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          install-pdf) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-install-html-intl install-html-intl
! maybe-install-html-intl:
! @if intl
! maybe-install-html-intl: install-html-intl
  
! install-html-intl: \
!     configure-intl \
!     html-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
! 	r=`${PWD_COMMAND}`; export r; \
! 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
! 	$(HOST_EXPORTS) \
! 	for flag in $(EXTRA_HOST_FLAGS) ; do \
! 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
! 	done; \
! 	echo "Doing install-html in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
! 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
! 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
! 	          "RANLIB=$${RANLIB}" \
! 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
! 	          install-html) \
! 	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-installcheck-intl installcheck-intl
! maybe-installcheck-intl:
! @if intl
! maybe-installcheck-intl: installcheck-intl
  
! installcheck-intl: \
!     configure-intl 
! 	@[ -f ./intl/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing installcheck in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
--- 20573,20738 ----
  		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
  		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
  		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
! 		$(TARGET-stageautofeedback-gettext)
  
! maybe-clean-stageautofeedback-gettext: clean-stageautofeedback-gettext
! clean-stageautofeedback: clean-stageautofeedback-gettext
! clean-stageautofeedback-gettext:
  	@if [ $(current_stage) = stageautofeedback ]; then \
! 	  [ -f $(HOST_SUBDIR)/gettext/Makefile ] || exit 0; \
  	else \
! 	  [ -f $(HOST_SUBDIR)/stageautofeedback-gettext/Makefile ] || exit 0; \
  	  $(MAKE) stageautofeedback-start; \
  	fi; \
! 	cd $(HOST_SUBDIR)/gettext && \
  	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
! @endif gettext-bootstrap
  
  
  
  
  
! .PHONY: check-gettext maybe-check-gettext
! maybe-check-gettext:
! @if gettext
! maybe-check-gettext: check-gettext
  
! check-gettext:
  	@: $(MAKE); $(unstage)
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
! 	(cd $(HOST_SUBDIR)/gettext && \
  	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)
  
! @endif gettext
  
! .PHONY: install-gettext maybe-install-gettext
! maybe-install-gettext:
! @if gettext
! maybe-install-gettext: install-gettext
  
! install-gettext:
  
! @endif gettext
  
! .PHONY: install-strip-gettext maybe-install-strip-gettext
! maybe-install-strip-gettext:
! @if gettext
! maybe-install-strip-gettext: install-strip-gettext
  
! install-strip-gettext:
  
! @endif gettext
  
  # Other targets (info, dvi, pdf, etc.)
  
! .PHONY: maybe-info-gettext info-gettext
! maybe-info-gettext:
! @if gettext
! maybe-info-gettext: info-gettext
  
! # gettext doesn't support info.
! info-gettext:
  
! @endif gettext
  
! .PHONY: maybe-dvi-gettext dvi-gettext
! maybe-dvi-gettext:
! @if gettext
! maybe-dvi-gettext: dvi-gettext
  
! # gettext doesn't support dvi.
! dvi-gettext:
  
! @endif gettext
  
! .PHONY: maybe-pdf-gettext pdf-gettext
! maybe-pdf-gettext:
! @if gettext
! maybe-pdf-gettext: pdf-gettext
  
! # gettext doesn't support pdf.
! pdf-gettext:
  
! @endif gettext
  
! .PHONY: maybe-html-gettext html-gettext
! maybe-html-gettext:
! @if gettext
! maybe-html-gettext: html-gettext
  
! # gettext doesn't support html.
! html-gettext:
  
! @endif gettext
  
! .PHONY: maybe-TAGS-gettext TAGS-gettext
! maybe-TAGS-gettext:
! @if gettext
! maybe-TAGS-gettext: TAGS-gettext
  
! # gettext doesn't support TAGS.
! TAGS-gettext:
  
! @endif gettext
  
! .PHONY: maybe-install-info-gettext install-info-gettext
! maybe-install-info-gettext:
! @if gettext
! maybe-install-info-gettext: install-info-gettext
  
! # gettext doesn't support install-info.
! install-info-gettext:
  
! @endif gettext
  
! .PHONY: maybe-install-dvi-gettext install-dvi-gettext
! maybe-install-dvi-gettext:
! @if gettext
! maybe-install-dvi-gettext: install-dvi-gettext
  
! # gettext doesn't support install-dvi.
! install-dvi-gettext:
  
! @endif gettext
  
! .PHONY: maybe-install-pdf-gettext install-pdf-gettext
! maybe-install-pdf-gettext:
! @if gettext
! maybe-install-pdf-gettext: install-pdf-gettext
  
! # gettext doesn't support install-pdf.
! install-pdf-gettext:
  
! @endif gettext
  
! .PHONY: maybe-install-html-gettext install-html-gettext
! maybe-install-html-gettext:
! @if gettext
! maybe-install-html-gettext: install-html-gettext
  
! # gettext doesn't support install-html.
! install-html-gettext:
  
! @endif gettext
  
! .PHONY: maybe-installcheck-gettext installcheck-gettext
! maybe-installcheck-gettext:
! @if gettext
! maybe-installcheck-gettext: installcheck-gettext
  
! installcheck-gettext: \
!     configure-gettext 
! 	@[ -f ./gettext/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing installcheck in gettext"; \
! 	(cd $(HOST_SUBDIR)/gettext && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
*************** installcheck-intl: \
*** 20327,20349 ****
  	          installcheck) \
  	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-mostlyclean-intl mostlyclean-intl
! maybe-mostlyclean-intl:
! @if intl
! maybe-mostlyclean-intl: mostlyclean-intl
  
! mostlyclean-intl: 
! 	@[ -f ./intl/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing mostlyclean in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
--- 20740,20762 ----
  	          installcheck) \
  	  || exit 1
  
! @endif gettext
  
! .PHONY: maybe-mostlyclean-gettext mostlyclean-gettext
! maybe-mostlyclean-gettext:
! @if gettext
! maybe-mostlyclean-gettext: mostlyclean-gettext
  
! mostlyclean-gettext: 
! 	@[ -f ./gettext/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing mostlyclean in gettext"; \
! 	(cd $(HOST_SUBDIR)/gettext && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
*************** mostlyclean-intl:
*** 20351,20373 ****
  	          mostlyclean) \
  	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-clean-intl clean-intl
! maybe-clean-intl:
! @if intl
! maybe-clean-intl: clean-intl
  
! clean-intl: 
! 	@[ -f ./intl/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing clean in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
--- 20764,20786 ----
  	          mostlyclean) \
  	  || exit 1
  
! @endif gettext
  
! .PHONY: maybe-clean-gettext clean-gettext
! maybe-clean-gettext:
! @if gettext
! maybe-clean-gettext: clean-gettext
  
! clean-gettext: 
! 	@[ -f ./gettext/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing clean in gettext"; \
! 	(cd $(HOST_SUBDIR)/gettext && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
*************** clean-intl:
*** 20375,20397 ****
  	          clean) \
  	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-distclean-intl distclean-intl
! maybe-distclean-intl:
! @if intl
! maybe-distclean-intl: distclean-intl
  
! distclean-intl: 
! 	@[ -f ./intl/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing distclean in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
--- 20788,20810 ----
  	          clean) \
  	  || exit 1
  
! @endif gettext
  
! .PHONY: maybe-distclean-gettext distclean-gettext
! maybe-distclean-gettext:
! @if gettext
! maybe-distclean-gettext: distclean-gettext
  
! distclean-gettext: 
! 	@[ -f ./gettext/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing distclean in gettext"; \
! 	(cd $(HOST_SUBDIR)/gettext && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
*************** distclean-intl:
*** 20399,20421 ****
  	          distclean) \
  	  || exit 1
  
! @endif intl
  
! .PHONY: maybe-maintainer-clean-intl maintainer-clean-intl
! maybe-maintainer-clean-intl:
! @if intl
! maybe-maintainer-clean-intl: maintainer-clean-intl
  
! maintainer-clean-intl: 
! 	@[ -f ./intl/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing maintainer-clean in intl"; \
! 	(cd $(HOST_SUBDIR)/intl && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
--- 20812,20834 ----
  	          distclean) \
  	  || exit 1
  
! @endif gettext
  
! .PHONY: maybe-maintainer-clean-gettext maintainer-clean-gettext
! maybe-maintainer-clean-gettext:
! @if gettext
! maybe-maintainer-clean-gettext: maintainer-clean-gettext
  
! maintainer-clean-gettext: 
! 	@[ -f ./gettext/Makefile ] || exit 0; \
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
  	for flag in $(EXTRA_HOST_FLAGS) ; do \
  	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
  	done; \
! 	echo "Doing maintainer-clean in gettext"; \
! 	(cd $(HOST_SUBDIR)/gettext && \
  	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  	          "RANLIB=$${RANLIB}" \
*************** maintainer-clean-intl:
*** 20423,20429 ****
  	          maintainer-clean) \
  	  || exit 1
  
! @endif intl
  
  
  
--- 20836,20842 ----
  	          maintainer-clean) \
  	  || exit 1
  
! @endif gettext
  
  
  
*************** maintainer-clean-libsframe:
*** 43576,43581 ****
--- 43989,45134 ----
  
  
  
+ .PHONY: configure-libgrust maybe-configure-libgrust
+ maybe-configure-libgrust:
+ @if gcc-bootstrap
+ configure-libgrust: stage_current
+ @endif gcc-bootstrap
+ @if libgrust
+ maybe-configure-libgrust: configure-libgrust
+ configure-libgrust: 
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	$(HOST_EXPORTS)  \
+ 	echo Configuring in $(HOST_SUBDIR)/libgrust; \
+ 	cd "$(HOST_SUBDIR)/libgrust" || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) \
+ 	  $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias}  \
+ 	  || exit 1
+ @endif libgrust
+ 
+ 
+ 
+ .PHONY: configure-stage1-libgrust maybe-configure-stage1-libgrust
+ maybe-configure-stage1-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stage1-libgrust: configure-stage1-libgrust
+ configure-stage1-libgrust:
+ 	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGE1_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	   \
+ 	  $(STAGE1_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ .PHONY: configure-stage2-libgrust maybe-configure-stage2-libgrust
+ maybe-configure-stage2-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stage2-libgrust: configure-stage2-libgrust
+ configure-stage2-libgrust:
+ 	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGE2_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+ 	  $(STAGE2_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ .PHONY: configure-stage3-libgrust maybe-configure-stage3-libgrust
+ maybe-configure-stage3-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stage3-libgrust: configure-stage3-libgrust
+ configure-stage3-libgrust:
+ 	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGE3_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+ 	  $(STAGE3_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ .PHONY: configure-stage4-libgrust maybe-configure-stage4-libgrust
+ maybe-configure-stage4-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stage4-libgrust: configure-stage4-libgrust
+ configure-stage4-libgrust:
+ 	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGE4_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+ 	  $(STAGE4_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ .PHONY: configure-stageprofile-libgrust maybe-configure-stageprofile-libgrust
+ maybe-configure-stageprofile-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stageprofile-libgrust: configure-stageprofile-libgrust
+ configure-stageprofile-libgrust:
+ 	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEprofile_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+ 	  $(STAGEprofile_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ .PHONY: configure-stagetrain-libgrust maybe-configure-stagetrain-libgrust
+ maybe-configure-stagetrain-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stagetrain-libgrust: configure-stagetrain-libgrust
+ configure-stagetrain-libgrust:
+ 	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEtrain_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage train in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+ 	  $(STAGEtrain_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ .PHONY: configure-stagefeedback-libgrust maybe-configure-stagefeedback-libgrust
+ maybe-configure-stagefeedback-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stagefeedback-libgrust: configure-stagefeedback-libgrust
+ configure-stagefeedback-libgrust:
+ 	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+ 	  $(STAGEfeedback_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ .PHONY: configure-stageautoprofile-libgrust maybe-configure-stageautoprofile-libgrust
+ maybe-configure-stageautoprofile-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stageautoprofile-libgrust: configure-stageautoprofile-libgrust
+ configure-stageautoprofile-libgrust:
+ 	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage autoprofile in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+ 	  $(STAGEautoprofile_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ .PHONY: configure-stageautofeedback-libgrust maybe-configure-stageautofeedback-libgrust
+ maybe-configure-stageautofeedback-libgrust:
+ @if libgrust-bootstrap
+ maybe-configure-stageautofeedback-libgrust: configure-stageautofeedback-libgrust
+ configure-stageautofeedback-libgrust:
+ 	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
+ 	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
+ 	test ! -f $(HOST_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
+ 	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
+ 	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
+ 	echo Configuring stage autofeedback in $(HOST_SUBDIR)/libgrust; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgrust; \
+ 	cd $(HOST_SUBDIR)/libgrust || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(HOST_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	$(SHELL) $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ 	  --target=${target_alias} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+ 	  $(STAGEautofeedback_CONFIGURE_FLAGS)
+ @endif libgrust-bootstrap
+ 
+ 
+ 
+ 
+ 
+ .PHONY: all-libgrust maybe-all-libgrust
+ maybe-all-libgrust:
+ @if gcc-bootstrap
+ all-libgrust: stage_current
+ @endif gcc-bootstrap
+ @if libgrust
+ TARGET-libgrust=all
+ maybe-all-libgrust: all-libgrust
+ all-libgrust: configure-libgrust
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS)  \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-libgrust))
+ @endif libgrust
+ 
+ 
+ 
+ .PHONY: all-stage1-libgrust maybe-all-stage1-libgrust
+ .PHONY: clean-stage1-libgrust maybe-clean-stage1-libgrust
+ maybe-all-stage1-libgrust:
+ maybe-clean-stage1-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stage1-libgrust: all-stage1-libgrust
+ all-stage1: all-stage1-libgrust
+ TARGET-stage1-libgrust = $(TARGET-libgrust)
+ all-stage1-libgrust: configure-stage1-libgrust
+ 	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGE1_TFLAGS)"; \
+ 	$(HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	 \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGE1_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
+ 		LIBCFLAGS="$(LIBCFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS)  \
+ 		$(STAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGE1_TFLAGS)"  \
+ 		$(TARGET-stage1-libgrust)
+ 
+ maybe-clean-stage1-libgrust: clean-stage1-libgrust
+ clean-stage1: clean-stage1-libgrust
+ clean-stage1-libgrust:
+ 	@if [ $(current_stage) = stage1 ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stage1-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 	$(STAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ .PHONY: all-stage2-libgrust maybe-all-stage2-libgrust
+ .PHONY: clean-stage2-libgrust maybe-clean-stage2-libgrust
+ maybe-all-stage2-libgrust:
+ maybe-clean-stage2-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stage2-libgrust: all-stage2-libgrust
+ all-stage2: all-stage2-libgrust
+ TARGET-stage2-libgrust = $(TARGET-libgrust)
+ all-stage2-libgrust: configure-stage2-libgrust
+ 	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGE2_TFLAGS)"; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	 \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGE2_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
+ 		LIBCFLAGS="$(STAGE2_CFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGE2_TFLAGS)"  \
+ 		$(TARGET-stage2-libgrust)
+ 
+ maybe-clean-stage2-libgrust: clean-stage2-libgrust
+ clean-stage2: clean-stage2-libgrust
+ clean-stage2-libgrust:
+ 	@if [ $(current_stage) = stage2 ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stage2-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ .PHONY: all-stage3-libgrust maybe-all-stage3-libgrust
+ .PHONY: clean-stage3-libgrust maybe-clean-stage3-libgrust
+ maybe-all-stage3-libgrust:
+ maybe-clean-stage3-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stage3-libgrust: all-stage3-libgrust
+ all-stage3: all-stage3-libgrust
+ TARGET-stage3-libgrust = $(TARGET-libgrust)
+ all-stage3-libgrust: configure-stage3-libgrust
+ 	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGE3_TFLAGS)"; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	 \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGE3_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
+ 		LIBCFLAGS="$(STAGE3_CFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGE3_TFLAGS)"  \
+ 		$(TARGET-stage3-libgrust)
+ 
+ maybe-clean-stage3-libgrust: clean-stage3-libgrust
+ clean-stage3: clean-stage3-libgrust
+ clean-stage3-libgrust:
+ 	@if [ $(current_stage) = stage3 ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stage3-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ .PHONY: all-stage4-libgrust maybe-all-stage4-libgrust
+ .PHONY: clean-stage4-libgrust maybe-clean-stage4-libgrust
+ maybe-all-stage4-libgrust:
+ maybe-clean-stage4-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stage4-libgrust: all-stage4-libgrust
+ all-stage4: all-stage4-libgrust
+ TARGET-stage4-libgrust = $(TARGET-libgrust)
+ all-stage4-libgrust: configure-stage4-libgrust
+ 	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGE4_TFLAGS)"; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	 \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGE4_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
+ 		LIBCFLAGS="$(STAGE4_CFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGE4_TFLAGS)"  \
+ 		$(TARGET-stage4-libgrust)
+ 
+ maybe-clean-stage4-libgrust: clean-stage4-libgrust
+ clean-stage4: clean-stage4-libgrust
+ clean-stage4-libgrust:
+ 	@if [ $(current_stage) = stage4 ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stage4-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ .PHONY: all-stageprofile-libgrust maybe-all-stageprofile-libgrust
+ .PHONY: clean-stageprofile-libgrust maybe-clean-stageprofile-libgrust
+ maybe-all-stageprofile-libgrust:
+ maybe-clean-stageprofile-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stageprofile-libgrust: all-stageprofile-libgrust
+ all-stageprofile: all-stageprofile-libgrust
+ TARGET-stageprofile-libgrust = $(TARGET-libgrust)
+ all-stageprofile-libgrust: configure-stageprofile-libgrust
+ 	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEprofile_TFLAGS)"; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	 \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGEprofile_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
+ 		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGEprofile_TFLAGS)"  \
+ 		$(TARGET-stageprofile-libgrust)
+ 
+ maybe-clean-stageprofile-libgrust: clean-stageprofile-libgrust
+ clean-stageprofile: clean-stageprofile-libgrust
+ clean-stageprofile-libgrust:
+ 	@if [ $(current_stage) = stageprofile ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stageprofile-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ .PHONY: all-stagetrain-libgrust maybe-all-stagetrain-libgrust
+ .PHONY: clean-stagetrain-libgrust maybe-clean-stagetrain-libgrust
+ maybe-all-stagetrain-libgrust:
+ maybe-clean-stagetrain-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stagetrain-libgrust: all-stagetrain-libgrust
+ all-stagetrain: all-stagetrain-libgrust
+ TARGET-stagetrain-libgrust = $(TARGET-libgrust)
+ all-stagetrain-libgrust: configure-stagetrain-libgrust
+ 	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEtrain_TFLAGS)"; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	 \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGEtrain_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
+ 		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGEtrain_TFLAGS)"  \
+ 		$(TARGET-stagetrain-libgrust)
+ 
+ maybe-clean-stagetrain-libgrust: clean-stagetrain-libgrust
+ clean-stagetrain: clean-stagetrain-libgrust
+ clean-stagetrain-libgrust:
+ 	@if [ $(current_stage) = stagetrain ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stagetrain-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stagetrain-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ .PHONY: all-stagefeedback-libgrust maybe-all-stagefeedback-libgrust
+ .PHONY: clean-stagefeedback-libgrust maybe-clean-stagefeedback-libgrust
+ maybe-all-stagefeedback-libgrust:
+ maybe-clean-stagefeedback-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stagefeedback-libgrust: all-stagefeedback-libgrust
+ all-stagefeedback: all-stagefeedback-libgrust
+ TARGET-stagefeedback-libgrust = $(TARGET-libgrust)
+ all-stagefeedback-libgrust: configure-stagefeedback-libgrust
+ 	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	 \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGEfeedback_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
+ 		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
+ 		$(TARGET-stagefeedback-libgrust)
+ 
+ maybe-clean-stagefeedback-libgrust: clean-stagefeedback-libgrust
+ clean-stagefeedback: clean-stagefeedback-libgrust
+ clean-stagefeedback-libgrust:
+ 	@if [ $(current_stage) = stagefeedback ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stagefeedback-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ .PHONY: all-stageautoprofile-libgrust maybe-all-stageautoprofile-libgrust
+ .PHONY: clean-stageautoprofile-libgrust maybe-clean-stageautoprofile-libgrust
+ maybe-all-stageautoprofile-libgrust:
+ maybe-clean-stageautoprofile-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stageautoprofile-libgrust: all-stageautoprofile-libgrust
+ all-stageautoprofile: all-stageautoprofile-libgrust
+ TARGET-stageautoprofile-libgrust = $(TARGET-libgrust)
+ all-stageautoprofile-libgrust: configure-stageautoprofile-libgrust
+ 	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
+ 		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
+ 		$(TARGET-stageautoprofile-libgrust)
+ 
+ maybe-clean-stageautoprofile-libgrust: clean-stageautoprofile-libgrust
+ clean-stageautoprofile: clean-stageautoprofile-libgrust
+ clean-stageautoprofile-libgrust:
+ 	@if [ $(current_stage) = stageautoprofile ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stageautoprofile-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stageautoprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ .PHONY: all-stageautofeedback-libgrust maybe-all-stageautofeedback-libgrust
+ .PHONY: clean-stageautofeedback-libgrust maybe-clean-stageautofeedback-libgrust
+ maybe-all-stageautofeedback-libgrust:
+ maybe-clean-stageautofeedback-libgrust:
+ @if libgrust-bootstrap
+ maybe-all-stageautofeedback-libgrust: all-stageautofeedback-libgrust
+ all-stageautofeedback: all-stageautofeedback-libgrust
+ TARGET-stageautofeedback-libgrust = $(TARGET-libgrust)
+ all-stageautofeedback-libgrust: configure-stageautofeedback-libgrust
+ 	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	 \
+ 	$(MAKE) $(BASE_FLAGS_TO_PASS) \
+ 		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
+ 		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
+ 		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
+ 		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
+ 		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ 		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ 		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ 		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
+ 		$(TARGET-stageautofeedback-libgrust)
+ 
+ maybe-clean-stageautofeedback-libgrust: clean-stageautofeedback-libgrust
+ clean-stageautofeedback: clean-stageautofeedback-libgrust
+ clean-stageautofeedback-libgrust:
+ 	@if [ $(current_stage) = stageautofeedback ]; then \
+ 	  [ -f $(HOST_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	else \
+ 	  [ -f $(HOST_SUBDIR)/stageautofeedback-libgrust/Makefile ] || exit 0; \
+ 	  $(MAKE) stageautofeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libgrust && \
+ 	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
+ @endif libgrust-bootstrap
+ 
+ 
+ 
+ 
+ 
+ .PHONY: check-libgrust maybe-check-libgrust
+ maybe-check-libgrust:
+ @if libgrust
+ maybe-check-libgrust: check-libgrust
+ 
+ check-libgrust:
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)
+ 
+ @endif libgrust
+ 
+ .PHONY: install-libgrust maybe-install-libgrust
+ maybe-install-libgrust:
+ @if libgrust
+ maybe-install-libgrust: install-libgrust
+ 
+ install-libgrust: installdirs
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(FLAGS_TO_PASS)  install)
+ 
+ @endif libgrust
+ 
+ .PHONY: install-strip-libgrust maybe-install-strip-libgrust
+ maybe-install-strip-libgrust:
+ @if libgrust
+ maybe-install-strip-libgrust: install-strip-libgrust
+ 
+ install-strip-libgrust: installdirs
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)
+ 
+ @endif libgrust
+ 
+ # Other targets (info, dvi, pdf, etc.)
+ 
+ .PHONY: maybe-info-libgrust info-libgrust
+ maybe-info-libgrust:
+ @if libgrust
+ maybe-info-libgrust: info-libgrust
+ 
+ info-libgrust: \
+     configure-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing info in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          info) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-dvi-libgrust dvi-libgrust
+ maybe-dvi-libgrust:
+ @if libgrust
+ maybe-dvi-libgrust: dvi-libgrust
+ 
+ dvi-libgrust: \
+     configure-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing dvi in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          dvi) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-pdf-libgrust pdf-libgrust
+ maybe-pdf-libgrust:
+ @if libgrust
+ maybe-pdf-libgrust: pdf-libgrust
+ 
+ pdf-libgrust: \
+     configure-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing pdf in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          pdf) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-html-libgrust html-libgrust
+ maybe-html-libgrust:
+ @if libgrust
+ maybe-html-libgrust: html-libgrust
+ 
+ html-libgrust: \
+     configure-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing html in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          html) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-TAGS-libgrust TAGS-libgrust
+ maybe-TAGS-libgrust:
+ @if libgrust
+ maybe-TAGS-libgrust: TAGS-libgrust
+ 
+ TAGS-libgrust: \
+     configure-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing TAGS in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          TAGS) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-install-info-libgrust install-info-libgrust
+ maybe-install-info-libgrust:
+ @if libgrust
+ maybe-install-info-libgrust: install-info-libgrust
+ 
+ install-info-libgrust: \
+     configure-libgrust \
+     info-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing install-info in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          install-info) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-install-dvi-libgrust install-dvi-libgrust
+ maybe-install-dvi-libgrust:
+ @if libgrust
+ maybe-install-dvi-libgrust: install-dvi-libgrust
+ 
+ install-dvi-libgrust: \
+     configure-libgrust \
+     dvi-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing install-dvi in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          install-dvi) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-install-pdf-libgrust install-pdf-libgrust
+ maybe-install-pdf-libgrust:
+ @if libgrust
+ maybe-install-pdf-libgrust: install-pdf-libgrust
+ 
+ install-pdf-libgrust: \
+     configure-libgrust \
+     pdf-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing install-pdf in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          install-pdf) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-install-html-libgrust install-html-libgrust
+ maybe-install-html-libgrust:
+ @if libgrust
+ maybe-install-html-libgrust: install-html-libgrust
+ 
+ install-html-libgrust: \
+     configure-libgrust \
+     html-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing install-html in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          install-html) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-installcheck-libgrust installcheck-libgrust
+ maybe-installcheck-libgrust:
+ @if libgrust
+ maybe-installcheck-libgrust: installcheck-libgrust
+ 
+ installcheck-libgrust: \
+     configure-libgrust 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing installcheck in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          installcheck) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-mostlyclean-libgrust mostlyclean-libgrust
+ maybe-mostlyclean-libgrust:
+ @if libgrust
+ maybe-mostlyclean-libgrust: mostlyclean-libgrust
+ 
+ mostlyclean-libgrust: 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing mostlyclean in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          mostlyclean) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-clean-libgrust clean-libgrust
+ maybe-clean-libgrust:
+ @if libgrust
+ maybe-clean-libgrust: clean-libgrust
+ 
+ clean-libgrust: 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing clean in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          clean) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-distclean-libgrust distclean-libgrust
+ maybe-distclean-libgrust:
+ @if libgrust
+ maybe-distclean-libgrust: distclean-libgrust
+ 
+ distclean-libgrust: 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing distclean in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          distclean) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ .PHONY: maybe-maintainer-clean-libgrust maintainer-clean-libgrust
+ maybe-maintainer-clean-libgrust:
+ @if libgrust
+ maybe-maintainer-clean-libgrust: maintainer-clean-libgrust
+ 
+ maintainer-clean-libgrust: 
+ 	@[ -f ./libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	for flag in $(EXTRA_HOST_FLAGS) ; do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	echo "Doing maintainer-clean in libgrust"; \
+ 	(cd $(HOST_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	          maintainer-clean) \
+ 	  || exit 1
+ 
+ @endif libgrust
+ 
+ 
+ 
  # ---------------------------------------
  # Modules which run on the target machine
  # ---------------------------------------
*************** maintainer-clean-target-libatomic:
*** 61650,61655 ****
--- 63203,63693 ----
  
  
  
+ 
+ 
+ .PHONY: configure-target-libgrust maybe-configure-target-libgrust
+ maybe-configure-target-libgrust:
+ @if gcc-bootstrap
+ configure-target-libgrust: stage_current
+ @endif gcc-bootstrap
+ @if target-libgrust
+ maybe-configure-target-libgrust: configure-target-libgrust
+ configure-target-libgrust: 
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	echo "Checking multilib configuration for libgrust..."; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgrust; \
+ 	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgrust/multilib.tmp 2> /dev/null; \
+ 	if test -r $(TARGET_SUBDIR)/libgrust/multilib.out; then \
+ 	  if cmp -s $(TARGET_SUBDIR)/libgrust/multilib.tmp $(TARGET_SUBDIR)/libgrust/multilib.out; then \
+ 	    rm -f $(TARGET_SUBDIR)/libgrust/multilib.tmp; \
+ 	  else \
+ 	    rm -f $(TARGET_SUBDIR)/libgrust/Makefile; \
+ 	    mv $(TARGET_SUBDIR)/libgrust/multilib.tmp $(TARGET_SUBDIR)/libgrust/multilib.out; \
+ 	  fi; \
+ 	else \
+ 	  mv $(TARGET_SUBDIR)/libgrust/multilib.tmp $(TARGET_SUBDIR)/libgrust/multilib.out; \
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgrust/Makefile || exit 0; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgrust; \
+ 	$(NORMAL_TARGET_EXPORTS)  \
+ 	echo Configuring in $(TARGET_SUBDIR)/libgrust; \
+ 	cd "$(TARGET_SUBDIR)/libgrust" || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(TARGET_SUBDIR)/libgrust/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libgrust; \
+ 	rm -f no-such-file || : ; \
+ 	CONFIG_SITE=no-such-file $(SHELL) \
+ 	  $$s/$$module_srcdir/configure \
+ 	  --srcdir=$${topdir}/$$module_srcdir \
+ 	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+ 	  --target=${target_alias}  \
+ 	  || exit 1
+ @endif target-libgrust
+ 
+ 
+ 
+ 
+ 
+ .PHONY: all-target-libgrust maybe-all-target-libgrust
+ maybe-all-target-libgrust:
+ @if gcc-bootstrap
+ all-target-libgrust: stage_current
+ @endif gcc-bootstrap
+ @if target-libgrust
+ TARGET-target-libgrust=all
+ maybe-all-target-libgrust: all-target-libgrust
+ all-target-libgrust: configure-target-libgrust
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS)  \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-target-libgrust))
+ @endif target-libgrust
+ 
+ 
+ 
+ 
+ 
+ .PHONY: check-target-libgrust maybe-check-target-libgrust
+ maybe-check-target-libgrust:
+ @if target-libgrust
+ maybe-check-target-libgrust: check-target-libgrust
+ 
+ check-target-libgrust:
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)
+ 
+ @endif target-libgrust
+ 
+ .PHONY: install-target-libgrust maybe-install-target-libgrust
+ maybe-install-target-libgrust:
+ @if target-libgrust
+ maybe-install-target-libgrust: install-target-libgrust
+ 
+ install-target-libgrust: installdirs
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
+ 
+ @endif target-libgrust
+ 
+ .PHONY: install-strip-target-libgrust maybe-install-strip-target-libgrust
+ maybe-install-strip-target-libgrust:
+ @if target-libgrust
+ maybe-install-strip-target-libgrust: install-strip-target-libgrust
+ 
+ install-strip-target-libgrust: installdirs
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
+ 
+ @endif target-libgrust
+ 
+ # Other targets (info, dvi, pdf, etc.)
+ 
+ .PHONY: maybe-info-target-libgrust info-target-libgrust
+ maybe-info-target-libgrust:
+ @if target-libgrust
+ maybe-info-target-libgrust: info-target-libgrust
+ 
+ info-target-libgrust: \
+     configure-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing info in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           info) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-dvi-target-libgrust dvi-target-libgrust
+ maybe-dvi-target-libgrust:
+ @if target-libgrust
+ maybe-dvi-target-libgrust: dvi-target-libgrust
+ 
+ dvi-target-libgrust: \
+     configure-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing dvi in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           dvi) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-pdf-target-libgrust pdf-target-libgrust
+ maybe-pdf-target-libgrust:
+ @if target-libgrust
+ maybe-pdf-target-libgrust: pdf-target-libgrust
+ 
+ pdf-target-libgrust: \
+     configure-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing pdf in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           pdf) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-html-target-libgrust html-target-libgrust
+ maybe-html-target-libgrust:
+ @if target-libgrust
+ maybe-html-target-libgrust: html-target-libgrust
+ 
+ html-target-libgrust: \
+     configure-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing html in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           html) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-TAGS-target-libgrust TAGS-target-libgrust
+ maybe-TAGS-target-libgrust:
+ @if target-libgrust
+ maybe-TAGS-target-libgrust: TAGS-target-libgrust
+ 
+ TAGS-target-libgrust: \
+     configure-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing TAGS in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           TAGS) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-install-info-target-libgrust install-info-target-libgrust
+ maybe-install-info-target-libgrust:
+ @if target-libgrust
+ maybe-install-info-target-libgrust: install-info-target-libgrust
+ 
+ install-info-target-libgrust: \
+     configure-target-libgrust \
+     info-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing install-info in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           install-info) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-install-dvi-target-libgrust install-dvi-target-libgrust
+ maybe-install-dvi-target-libgrust:
+ @if target-libgrust
+ maybe-install-dvi-target-libgrust: install-dvi-target-libgrust
+ 
+ install-dvi-target-libgrust: \
+     configure-target-libgrust \
+     dvi-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing install-dvi in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           install-dvi) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-install-pdf-target-libgrust install-pdf-target-libgrust
+ maybe-install-pdf-target-libgrust:
+ @if target-libgrust
+ maybe-install-pdf-target-libgrust: install-pdf-target-libgrust
+ 
+ install-pdf-target-libgrust: \
+     configure-target-libgrust \
+     pdf-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing install-pdf in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           install-pdf) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-install-html-target-libgrust install-html-target-libgrust
+ maybe-install-html-target-libgrust:
+ @if target-libgrust
+ maybe-install-html-target-libgrust: install-html-target-libgrust
+ 
+ install-html-target-libgrust: \
+     configure-target-libgrust \
+     html-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing install-html in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           install-html) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-installcheck-target-libgrust installcheck-target-libgrust
+ maybe-installcheck-target-libgrust:
+ @if target-libgrust
+ maybe-installcheck-target-libgrust: installcheck-target-libgrust
+ 
+ installcheck-target-libgrust: \
+     configure-target-libgrust 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing installcheck in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           installcheck) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-mostlyclean-target-libgrust mostlyclean-target-libgrust
+ maybe-mostlyclean-target-libgrust:
+ @if target-libgrust
+ maybe-mostlyclean-target-libgrust: mostlyclean-target-libgrust
+ 
+ mostlyclean-target-libgrust: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           mostlyclean) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-clean-target-libgrust clean-target-libgrust
+ maybe-clean-target-libgrust:
+ @if target-libgrust
+ maybe-clean-target-libgrust: clean-target-libgrust
+ 
+ clean-target-libgrust: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing clean in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           clean) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-distclean-target-libgrust distclean-target-libgrust
+ maybe-distclean-target-libgrust:
+ @if target-libgrust
+ maybe-distclean-target-libgrust: distclean-target-libgrust
+ 
+ distclean-target-libgrust: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing distclean in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           distclean) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ .PHONY: maybe-maintainer-clean-target-libgrust maintainer-clean-target-libgrust
+ maybe-maintainer-clean-target-libgrust:
+ @if target-libgrust
+ maybe-maintainer-clean-target-libgrust: maintainer-clean-target-libgrust
+ 
+ maintainer-clean-target-libgrust: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgrust"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libgrust && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ 	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ 	          "RANLIB=$${RANLIB}" \
+ 	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ 	           maintainer-clean) \
+ 	  || exit 1
+ 
+ @endif target-libgrust
+ 
+ 
+ 
  @if target-libgomp
  .PHONY: check-target-libgomp-c++
  check-target-libgomp-c++:
*************** cross: all-build all-gas all-ld
*** 61688,61695 ****
  
  @if gcc
  
  .PHONY: check-gcc-c check-c
! check-gcc-c:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63726,63741 ----
  
  @if gcc
  
+ .PHONY: gcc-site.exp
+ gcc-site.exp:
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) site.exp);
+ 
+ 
  .PHONY: check-gcc-c check-c
! check-gcc-c: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-c:
*** 61697,61703 ****
  check-c: check-gcc-c
  
  .PHONY: check-gcc-c++ check-c++
! check-gcc-c++:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63743,63749 ----
  check-c: check-gcc-c
  
  .PHONY: check-gcc-c++ check-c++
! check-gcc-c++: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-c++:
*** 61705,61711 ****
  check-c++: check-gcc-c++ check-target-libstdc++-v3 check-target-libitm-c++ check-target-libgomp-c++
  
  .PHONY: check-gcc-fortran check-fortran
! check-gcc-fortran:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63751,63757 ----
  check-c++: check-gcc-c++ check-target-libstdc++-v3 check-target-libitm-c++ check-target-libgomp-c++
  
  .PHONY: check-gcc-fortran check-fortran
! check-gcc-fortran: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-fortran:
*** 61713,61719 ****
  check-fortran: check-gcc-fortran check-target-libquadmath check-target-libgfortran check-target-libgomp-fortran
  
  .PHONY: check-gcc-ada check-ada
! check-gcc-ada:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63759,63765 ----
  check-fortran: check-gcc-fortran check-target-libquadmath check-target-libgfortran check-target-libgomp-fortran
  
  .PHONY: check-gcc-ada check-ada
! check-gcc-ada: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-ada:
*** 61721,61727 ****
  check-ada: check-gcc-ada check-target-libada
  
  .PHONY: check-gcc-objc check-objc
! check-gcc-objc:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63767,63773 ----
  check-ada: check-gcc-ada check-target-libada
  
  .PHONY: check-gcc-objc check-objc
! check-gcc-objc: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-objc:
*** 61729,61735 ****
  check-objc: check-gcc-objc check-target-libobjc
  
  .PHONY: check-gcc-obj-c++ check-obj-c++
! check-gcc-obj-c++:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63775,63781 ----
  check-objc: check-gcc-objc check-target-libobjc
  
  .PHONY: check-gcc-obj-c++ check-obj-c++
! check-gcc-obj-c++: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-obj-c++:
*** 61737,61743 ****
  check-obj-c++: check-gcc-obj-c++
  
  .PHONY: check-gcc-go check-go
! check-gcc-go:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63783,63789 ----
  check-obj-c++: check-gcc-obj-c++
  
  .PHONY: check-gcc-go check-go
! check-gcc-go: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-go:
*** 61745,61751 ****
  check-go: check-gcc-go check-target-libgo check-gotools
  
  .PHONY: check-gcc-m2 check-m2
! check-gcc-m2:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63791,63797 ----
  check-go: check-gcc-go check-target-libgo check-gotools
  
  .PHONY: check-gcc-m2 check-m2
! check-gcc-m2: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-m2:
*** 61753,61759 ****
  check-m2: check-gcc-m2 check-target-libgm2
  
  .PHONY: check-gcc-d check-d
! check-gcc-d:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63799,63805 ----
  check-m2: check-gcc-m2 check-target-libgm2
  
  .PHONY: check-gcc-d check-d
! check-gcc-d: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-d:
*** 61761,61767 ****
  check-d: check-gcc-d check-target-libphobos
  
  .PHONY: check-gcc-jit check-jit
! check-gcc-jit:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63807,63813 ----
  check-d: check-gcc-d check-target-libphobos
  
  .PHONY: check-gcc-jit check-jit
! check-gcc-jit: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** check-gcc-jit:
*** 61769,61775 ****
  check-jit: check-gcc-jit
  
  .PHONY: check-gcc-rust check-rust
! check-gcc-rust:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 63815,63821 ----
  check-jit: check-gcc-jit
  
  .PHONY: check-gcc-rust check-rust
! check-gcc-rust: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** stage1-start::
*** 61903,61913 ****
  	  mkdir stage1-gold; \
  	mv stage1-gold gold
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stage1-intl ] || \
! 	  mkdir stage1-intl; \
! 	mv stage1-intl intl
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stage1-ld ] || \
  	  mkdir stage1-ld; \
--- 63949,63959 ----
  	  mkdir stage1-gold; \
  	mv stage1-gold gold
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stage1-gettext ] || \
! 	  mkdir stage1-gettext; \
! 	mv stage1-gettext gettext
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stage1-ld ] || \
  	  mkdir stage1-ld; \
*************** stage1-start::
*** 61968,61973 ****
--- 64014,64024 ----
  	  mkdir stage1-libsframe; \
  	mv stage1-libsframe libsframe
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stage1-libgrust ] || \
+ 	  mkdir stage1-libgrust; \
+ 	mv stage1-libgrust libgrust
+ @endif libgrust
  	@[ -d stage1-$(TARGET_SUBDIR) ] || \
  	  mkdir stage1-$(TARGET_SUBDIR); \
  	mv stage1-$(TARGET_SUBDIR) $(TARGET_SUBDIR)
*************** stage1-end::
*** 62028,62038 ****
  	  cd $(HOST_SUBDIR); mv gold stage1-gold; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stage1-intl; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stage1-ld; \
--- 64079,64089 ----
  	  cd $(HOST_SUBDIR); mv gold stage1-gold; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stage1-gettext; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stage1-ld; \
*************** stage1-end::
*** 62093,62098 ****
--- 64144,64154 ----
  	  cd $(HOST_SUBDIR); mv libsframe stage1-libsframe; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stage1-libgrust; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR); \
  	fi
*************** stage2-start::
*** 62207,62218 ****
  	mv stage2-gold gold; \
  	mv stage1-gold prev-gold || test -f stage1-lean 
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stage2-intl ] || \
! 	  mkdir stage2-intl; \
! 	mv stage2-intl intl; \
! 	mv stage1-intl prev-intl || test -f stage1-lean 
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stage2-ld ] || \
  	  mkdir stage2-ld; \
--- 64263,64274 ----
  	mv stage2-gold gold; \
  	mv stage1-gold prev-gold || test -f stage1-lean 
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stage2-gettext ] || \
! 	  mkdir stage2-gettext; \
! 	mv stage2-gettext gettext; \
! 	mv stage1-gettext prev-gettext || test -f stage1-lean 
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stage2-ld ] || \
  	  mkdir stage2-ld; \
*************** stage2-start::
*** 62285,62290 ****
--- 64341,64352 ----
  	mv stage2-libsframe libsframe; \
  	mv stage1-libsframe prev-libsframe || test -f stage1-lean 
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stage2-libgrust ] || \
+ 	  mkdir stage2-libgrust; \
+ 	mv stage2-libgrust libgrust; \
+ 	mv stage1-libgrust prev-libgrust || test -f stage1-lean 
+ @endif libgrust
  	@[ -d stage2-$(TARGET_SUBDIR) ] || \
  	  mkdir stage2-$(TARGET_SUBDIR); \
  	mv stage2-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
*************** stage2-end::
*** 62357,62368 ****
  	  mv prev-gold stage1-gold; : ; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stage2-intl; \
! 	  mv prev-intl stage1-intl; : ; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stage2-ld; \
--- 64419,64430 ----
  	  mv prev-gold stage1-gold; : ; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stage2-gettext; \
! 	  mv prev-gettext stage1-gettext; : ; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stage2-ld; \
*************** stage2-end::
*** 62435,62440 ****
--- 64497,64508 ----
  	  mv prev-libsframe stage1-libsframe; : ; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stage2-libgrust; \
+ 	  mv prev-libgrust stage1-libgrust; : ; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stage2-$(TARGET_SUBDIR); \
  	  mv prev-$(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR); : ; \
*************** stage3-start::
*** 62573,62584 ****
  	mv stage3-gold gold; \
  	mv stage2-gold prev-gold || test -f stage2-lean 
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stage3-intl ] || \
! 	  mkdir stage3-intl; \
! 	mv stage3-intl intl; \
! 	mv stage2-intl prev-intl || test -f stage2-lean 
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stage3-ld ] || \
  	  mkdir stage3-ld; \
--- 64641,64652 ----
  	mv stage3-gold gold; \
  	mv stage2-gold prev-gold || test -f stage2-lean 
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stage3-gettext ] || \
! 	  mkdir stage3-gettext; \
! 	mv stage3-gettext gettext; \
! 	mv stage2-gettext prev-gettext || test -f stage2-lean 
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stage3-ld ] || \
  	  mkdir stage3-ld; \
*************** stage3-start::
*** 62651,62656 ****
--- 64719,64730 ----
  	mv stage3-libsframe libsframe; \
  	mv stage2-libsframe prev-libsframe || test -f stage2-lean 
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stage3-libgrust ] || \
+ 	  mkdir stage3-libgrust; \
+ 	mv stage3-libgrust libgrust; \
+ 	mv stage2-libgrust prev-libgrust || test -f stage2-lean 
+ @endif libgrust
  	@[ -d stage3-$(TARGET_SUBDIR) ] || \
  	  mkdir stage3-$(TARGET_SUBDIR); \
  	mv stage3-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
*************** stage3-end::
*** 62723,62734 ****
  	  mv prev-gold stage2-gold; : ; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stage3-intl; \
! 	  mv prev-intl stage2-intl; : ; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stage3-ld; \
--- 64797,64808 ----
  	  mv prev-gold stage2-gold; : ; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stage3-gettext; \
! 	  mv prev-gettext stage2-gettext; : ; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stage3-ld; \
*************** stage3-end::
*** 62801,62806 ****
--- 64875,64886 ----
  	  mv prev-libsframe stage2-libsframe; : ; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stage3-libgrust; \
+ 	  mv prev-libgrust stage2-libgrust; : ; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stage3-$(TARGET_SUBDIR); \
  	  mv prev-$(TARGET_SUBDIR) stage2-$(TARGET_SUBDIR); : ; \
*************** stage4-start::
*** 62995,63006 ****
  	mv stage4-gold gold; \
  	mv stage3-gold prev-gold || test -f stage3-lean 
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stage4-intl ] || \
! 	  mkdir stage4-intl; \
! 	mv stage4-intl intl; \
! 	mv stage3-intl prev-intl || test -f stage3-lean 
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stage4-ld ] || \
  	  mkdir stage4-ld; \
--- 65075,65086 ----
  	mv stage4-gold gold; \
  	mv stage3-gold prev-gold || test -f stage3-lean 
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stage4-gettext ] || \
! 	  mkdir stage4-gettext; \
! 	mv stage4-gettext gettext; \
! 	mv stage3-gettext prev-gettext || test -f stage3-lean 
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stage4-ld ] || \
  	  mkdir stage4-ld; \
*************** stage4-start::
*** 63073,63078 ****
--- 65153,65164 ----
  	mv stage4-libsframe libsframe; \
  	mv stage3-libsframe prev-libsframe || test -f stage3-lean 
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stage4-libgrust ] || \
+ 	  mkdir stage4-libgrust; \
+ 	mv stage4-libgrust libgrust; \
+ 	mv stage3-libgrust prev-libgrust || test -f stage3-lean 
+ @endif libgrust
  	@[ -d stage4-$(TARGET_SUBDIR) ] || \
  	  mkdir stage4-$(TARGET_SUBDIR); \
  	mv stage4-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
*************** stage4-end::
*** 63145,63156 ****
  	  mv prev-gold stage3-gold; : ; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stage4-intl; \
! 	  mv prev-intl stage3-intl; : ; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stage4-ld; \
--- 65231,65242 ----
  	  mv prev-gold stage3-gold; : ; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stage4-gettext; \
! 	  mv prev-gettext stage3-gettext; : ; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stage4-ld; \
*************** stage4-end::
*** 63223,63228 ****
--- 65309,65320 ----
  	  mv prev-libsframe stage3-libsframe; : ; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stage4-libgrust; \
+ 	  mv prev-libgrust stage3-libgrust; : ; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stage4-$(TARGET_SUBDIR); \
  	  mv prev-$(TARGET_SUBDIR) stage3-$(TARGET_SUBDIR); : ; \
*************** stageprofile-start::
*** 63405,63416 ****
  	mv stageprofile-gold gold; \
  	mv stage1-gold prev-gold || test -f stage1-lean 
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stageprofile-intl ] || \
! 	  mkdir stageprofile-intl; \
! 	mv stageprofile-intl intl; \
! 	mv stage1-intl prev-intl || test -f stage1-lean 
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stageprofile-ld ] || \
  	  mkdir stageprofile-ld; \
--- 65497,65508 ----
  	mv stageprofile-gold gold; \
  	mv stage1-gold prev-gold || test -f stage1-lean 
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stageprofile-gettext ] || \
! 	  mkdir stageprofile-gettext; \
! 	mv stageprofile-gettext gettext; \
! 	mv stage1-gettext prev-gettext || test -f stage1-lean 
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stageprofile-ld ] || \
  	  mkdir stageprofile-ld; \
*************** stageprofile-start::
*** 63483,63488 ****
--- 65575,65586 ----
  	mv stageprofile-libsframe libsframe; \
  	mv stage1-libsframe prev-libsframe || test -f stage1-lean 
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stageprofile-libgrust ] || \
+ 	  mkdir stageprofile-libgrust; \
+ 	mv stageprofile-libgrust libgrust; \
+ 	mv stage1-libgrust prev-libgrust || test -f stage1-lean 
+ @endif libgrust
  	@[ -d stageprofile-$(TARGET_SUBDIR) ] || \
  	  mkdir stageprofile-$(TARGET_SUBDIR); \
  	mv stageprofile-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
*************** stageprofile-end::
*** 63555,63566 ****
  	  mv prev-gold stage1-gold; : ; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stageprofile-intl; \
! 	  mv prev-intl stage1-intl; : ; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stageprofile-ld; \
--- 65653,65664 ----
  	  mv prev-gold stage1-gold; : ; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stageprofile-gettext; \
! 	  mv prev-gettext stage1-gettext; : ; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stageprofile-ld; \
*************** stageprofile-end::
*** 63633,63638 ****
--- 65731,65742 ----
  	  mv prev-libsframe stage1-libsframe; : ; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stageprofile-libgrust; \
+ 	  mv prev-libgrust stage1-libgrust; : ; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stageprofile-$(TARGET_SUBDIR); \
  	  mv prev-$(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR); : ; \
*************** stagetrain-start::
*** 63748,63759 ****
  	mv stagetrain-gold gold; \
  	mv stageprofile-gold prev-gold || test -f stageprofile-lean 
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stagetrain-intl ] || \
! 	  mkdir stagetrain-intl; \
! 	mv stagetrain-intl intl; \
! 	mv stageprofile-intl prev-intl || test -f stageprofile-lean 
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stagetrain-ld ] || \
  	  mkdir stagetrain-ld; \
--- 65852,65863 ----
  	mv stagetrain-gold gold; \
  	mv stageprofile-gold prev-gold || test -f stageprofile-lean 
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stagetrain-gettext ] || \
! 	  mkdir stagetrain-gettext; \
! 	mv stagetrain-gettext gettext; \
! 	mv stageprofile-gettext prev-gettext || test -f stageprofile-lean 
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stagetrain-ld ] || \
  	  mkdir stagetrain-ld; \
*************** stagetrain-start::
*** 63826,63831 ****
--- 65930,65941 ----
  	mv stagetrain-libsframe libsframe; \
  	mv stageprofile-libsframe prev-libsframe || test -f stageprofile-lean 
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stagetrain-libgrust ] || \
+ 	  mkdir stagetrain-libgrust; \
+ 	mv stagetrain-libgrust libgrust; \
+ 	mv stageprofile-libgrust prev-libgrust || test -f stageprofile-lean 
+ @endif libgrust
  	@[ -d stagetrain-$(TARGET_SUBDIR) ] || \
  	  mkdir stagetrain-$(TARGET_SUBDIR); \
  	mv stagetrain-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
*************** stagetrain-end::
*** 63898,63909 ****
  	  mv prev-gold stageprofile-gold; : ; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stagetrain-intl; \
! 	  mv prev-intl stageprofile-intl; : ; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stagetrain-ld; \
--- 66008,66019 ----
  	  mv prev-gold stageprofile-gold; : ; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stagetrain-gettext; \
! 	  mv prev-gettext stageprofile-gettext; : ; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stagetrain-ld; \
*************** stagetrain-end::
*** 63976,63981 ****
--- 66086,66097 ----
  	  mv prev-libsframe stageprofile-libsframe; : ; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stagetrain-libgrust; \
+ 	  mv prev-libgrust stageprofile-libgrust; : ; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stagetrain-$(TARGET_SUBDIR); \
  	  mv prev-$(TARGET_SUBDIR) stageprofile-$(TARGET_SUBDIR); : ; \
*************** stagefeedback-start::
*** 64091,64102 ****
  	mv stagefeedback-gold gold; \
  	mv stagetrain-gold prev-gold || test -f stagetrain-lean 
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stagefeedback-intl ] || \
! 	  mkdir stagefeedback-intl; \
! 	mv stagefeedback-intl intl; \
! 	mv stagetrain-intl prev-intl || test -f stagetrain-lean 
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stagefeedback-ld ] || \
  	  mkdir stagefeedback-ld; \
--- 66207,66218 ----
  	mv stagefeedback-gold gold; \
  	mv stagetrain-gold prev-gold || test -f stagetrain-lean 
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stagefeedback-gettext ] || \
! 	  mkdir stagefeedback-gettext; \
! 	mv stagefeedback-gettext gettext; \
! 	mv stagetrain-gettext prev-gettext || test -f stagetrain-lean 
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stagefeedback-ld ] || \
  	  mkdir stagefeedback-ld; \
*************** stagefeedback-start::
*** 64169,64174 ****
--- 66285,66296 ----
  	mv stagefeedback-libsframe libsframe; \
  	mv stagetrain-libsframe prev-libsframe || test -f stagetrain-lean 
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stagefeedback-libgrust ] || \
+ 	  mkdir stagefeedback-libgrust; \
+ 	mv stagefeedback-libgrust libgrust; \
+ 	mv stagetrain-libgrust prev-libgrust || test -f stagetrain-lean 
+ @endif libgrust
  	@[ -d stagefeedback-$(TARGET_SUBDIR) ] || \
  	  mkdir stagefeedback-$(TARGET_SUBDIR); \
  	mv stagefeedback-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
*************** stagefeedback-end::
*** 64241,64252 ****
  	  mv prev-gold stagetrain-gold; : ; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stagefeedback-intl; \
! 	  mv prev-intl stagetrain-intl; : ; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stagefeedback-ld; \
--- 66363,66374 ----
  	  mv prev-gold stagetrain-gold; : ; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stagefeedback-gettext; \
! 	  mv prev-gettext stagetrain-gettext; : ; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stagefeedback-ld; \
*************** stagefeedback-end::
*** 64319,64324 ****
--- 66441,66452 ----
  	  mv prev-libsframe stagetrain-libsframe; : ; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stagefeedback-libgrust; \
+ 	  mv prev-libgrust stagetrain-libgrust; : ; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stagefeedback-$(TARGET_SUBDIR); \
  	  mv prev-$(TARGET_SUBDIR) stagetrain-$(TARGET_SUBDIR); : ; \
*************** stageautoprofile-start::
*** 64457,64468 ****
  	mv stageautoprofile-gold gold; \
  	mv stage1-gold prev-gold || test -f stage1-lean 
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stageautoprofile-intl ] || \
! 	  mkdir stageautoprofile-intl; \
! 	mv stageautoprofile-intl intl; \
! 	mv stage1-intl prev-intl || test -f stage1-lean 
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stageautoprofile-ld ] || \
  	  mkdir stageautoprofile-ld; \
--- 66585,66596 ----
  	mv stageautoprofile-gold gold; \
  	mv stage1-gold prev-gold || test -f stage1-lean 
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stageautoprofile-gettext ] || \
! 	  mkdir stageautoprofile-gettext; \
! 	mv stageautoprofile-gettext gettext; \
! 	mv stage1-gettext prev-gettext || test -f stage1-lean 
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stageautoprofile-ld ] || \
  	  mkdir stageautoprofile-ld; \
*************** stageautoprofile-start::
*** 64535,64540 ****
--- 66663,66674 ----
  	mv stageautoprofile-libsframe libsframe; \
  	mv stage1-libsframe prev-libsframe || test -f stage1-lean 
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libgrust ] || \
+ 	  mkdir stageautoprofile-libgrust; \
+ 	mv stageautoprofile-libgrust libgrust; \
+ 	mv stage1-libgrust prev-libgrust || test -f stage1-lean 
+ @endif libgrust
  	@[ -d stageautoprofile-$(TARGET_SUBDIR) ] || \
  	  mkdir stageautoprofile-$(TARGET_SUBDIR); \
  	mv stageautoprofile-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
*************** stageautoprofile-end::
*** 64607,64618 ****
  	  mv prev-gold stage1-gold; : ; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stageautoprofile-intl; \
! 	  mv prev-intl stage1-intl; : ; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stageautoprofile-ld; \
--- 66741,66752 ----
  	  mv prev-gold stage1-gold; : ; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stageautoprofile-gettext; \
! 	  mv prev-gettext stage1-gettext; : ; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stageautoprofile-ld; \
*************** stageautoprofile-end::
*** 64685,64690 ****
--- 66819,66830 ----
  	  mv prev-libsframe stage1-libsframe; : ; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stageautoprofile-libgrust; \
+ 	  mv prev-libgrust stage1-libgrust; : ; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stageautoprofile-$(TARGET_SUBDIR); \
  	  mv prev-$(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR); : ; \
*************** stageautofeedback-start::
*** 64800,64811 ****
  	mv stageautofeedback-gold gold; \
  	mv stageautoprofile-gold prev-gold || test -f stageautoprofile-lean 
  @endif gold
! @if intl
! 	@cd $(HOST_SUBDIR); [ -d stageautofeedback-intl ] || \
! 	  mkdir stageautofeedback-intl; \
! 	mv stageautofeedback-intl intl; \
! 	mv stageautoprofile-intl prev-intl || test -f stageautoprofile-lean 
! @endif intl
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stageautofeedback-ld ] || \
  	  mkdir stageautofeedback-ld; \
--- 66940,66951 ----
  	mv stageautofeedback-gold gold; \
  	mv stageautoprofile-gold prev-gold || test -f stageautoprofile-lean 
  @endif gold
! @if gettext
! 	@cd $(HOST_SUBDIR); [ -d stageautofeedback-gettext ] || \
! 	  mkdir stageautofeedback-gettext; \
! 	mv stageautofeedback-gettext gettext; \
! 	mv stageautoprofile-gettext prev-gettext || test -f stageautoprofile-lean 
! @endif gettext
  @if ld
  	@cd $(HOST_SUBDIR); [ -d stageautofeedback-ld ] || \
  	  mkdir stageautofeedback-ld; \
*************** stageautofeedback-start::
*** 64878,64883 ****
--- 67018,67029 ----
  	mv stageautofeedback-libsframe libsframe; \
  	mv stageautoprofile-libsframe prev-libsframe || test -f stageautoprofile-lean 
  @endif libsframe
+ @if libgrust
+ 	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libgrust ] || \
+ 	  mkdir stageautofeedback-libgrust; \
+ 	mv stageautofeedback-libgrust libgrust; \
+ 	mv stageautoprofile-libgrust prev-libgrust || test -f stageautoprofile-lean 
+ @endif libgrust
  	@[ -d stageautofeedback-$(TARGET_SUBDIR) ] || \
  	  mkdir stageautofeedback-$(TARGET_SUBDIR); \
  	mv stageautofeedback-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
*************** stageautofeedback-end::
*** 64950,64961 ****
  	  mv prev-gold stageautoprofile-gold; : ; \
  	fi
  @endif gold
! @if intl
! 	@if test -d $(HOST_SUBDIR)/intl; then \
! 	  cd $(HOST_SUBDIR); mv intl stageautofeedback-intl; \
! 	  mv prev-intl stageautoprofile-intl; : ; \
  	fi
! @endif intl
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stageautofeedback-ld; \
--- 67096,67107 ----
  	  mv prev-gold stageautoprofile-gold; : ; \
  	fi
  @endif gold
! @if gettext
! 	@if test -d $(HOST_SUBDIR)/gettext; then \
! 	  cd $(HOST_SUBDIR); mv gettext stageautofeedback-gettext; \
! 	  mv prev-gettext stageautoprofile-gettext; : ; \
  	fi
! @endif gettext
  @if ld
  	@if test -d $(HOST_SUBDIR)/ld; then \
  	  cd $(HOST_SUBDIR); mv ld stageautofeedback-ld; \
*************** stageautofeedback-end::
*** 65028,65033 ****
--- 67174,67185 ----
  	  mv prev-libsframe stageautoprofile-libsframe; : ; \
  	fi
  @endif libsframe
+ @if libgrust
+ 	@if test -d $(HOST_SUBDIR)/libgrust; then \
+ 	  cd $(HOST_SUBDIR); mv libgrust stageautofeedback-libgrust; \
+ 	  mv prev-libgrust stageautoprofile-libgrust; : ; \
+ 	fi
+ @endif libgrust
  	@if test -d $(TARGET_SUBDIR); then \
  	  mv $(TARGET_SUBDIR) stageautofeedback-$(TARGET_SUBDIR); \
  	  mv prev-$(TARGET_SUBDIR) stageautoprofile-$(TARGET_SUBDIR); : ; \
*************** configure-stagetrain-target-libatomic: m
*** 65230,65235 ****
--- 67382,67388 ----
  configure-stagefeedback-target-libatomic: maybe-all-stagefeedback-gcc
  configure-stageautoprofile-target-libatomic: maybe-all-stageautoprofile-gcc
  configure-stageautofeedback-target-libatomic: maybe-all-stageautofeedback-gcc
+ configure-target-libgrust: stage_last
  @endif gcc-bootstrap
  
  @if gcc-no-bootstrap
*************** configure-target-libgm2: maybe-all-gcc
*** 65256,65261 ****
--- 67409,67415 ----
  configure-target-libgomp: maybe-all-gcc
  configure-target-libitm: maybe-all-gcc
  configure-target-libatomic: maybe-all-gcc
+ configure-target-libgrust: maybe-all-gcc
  @endif gcc-no-bootstrap
  
  
*************** all-build-libiberty: maybe-all-build-tex
*** 65284,65299 ****
  all-build-m4: maybe-all-build-texinfo
  all-build-fixincludes: maybe-all-build-libiberty
  all-build-libcpp: maybe-all-build-libiberty
! configure-gcc: maybe-configure-intl
! configure-stage1-gcc: maybe-configure-stage1-intl
! configure-stage2-gcc: maybe-configure-stage2-intl
! configure-stage3-gcc: maybe-configure-stage3-intl
! configure-stage4-gcc: maybe-configure-stage4-intl
! configure-stageprofile-gcc: maybe-configure-stageprofile-intl
! configure-stagetrain-gcc: maybe-configure-stagetrain-intl
! configure-stagefeedback-gcc: maybe-configure-stagefeedback-intl
! configure-stageautoprofile-gcc: maybe-configure-stageautoprofile-intl
! configure-stageautofeedback-gcc: maybe-configure-stageautofeedback-intl
  configure-gcc: maybe-all-gmp
  configure-stage1-gcc: maybe-all-stage1-gmp
  configure-stage2-gcc: maybe-all-stage2-gmp
--- 67438,67453 ----
  all-build-m4: maybe-all-build-texinfo
  all-build-fixincludes: maybe-all-build-libiberty
  all-build-libcpp: maybe-all-build-libiberty
! configure-gcc: maybe-configure-gettext
! configure-stage1-gcc: maybe-configure-stage1-gettext
! configure-stage2-gcc: maybe-configure-stage2-gettext
! configure-stage3-gcc: maybe-configure-stage3-gettext
! configure-stage4-gcc: maybe-configure-stage4-gettext
! configure-stageprofile-gcc: maybe-configure-stageprofile-gettext
! configure-stagetrain-gcc: maybe-configure-stagetrain-gettext
! configure-stagefeedback-gcc: maybe-configure-stagefeedback-gettext
! configure-stageautoprofile-gcc: maybe-configure-stageautoprofile-gettext
! configure-stageautofeedback-gcc: maybe-configure-stageautofeedback-gettext
  configure-gcc: maybe-all-gmp
  configure-stage1-gcc: maybe-all-stage1-gmp
  configure-stage2-gcc: maybe-all-stage2-gmp
*************** all-stagetrain-gcc: all-stagetrain-libib
*** 65404,65419 ****
  all-stagefeedback-gcc: all-stagefeedback-libiberty
  all-stageautoprofile-gcc: all-stageautoprofile-libiberty
  all-stageautofeedback-gcc: all-stageautofeedback-libiberty
! all-gcc: maybe-all-intl
! all-stage1-gcc: maybe-all-stage1-intl
! all-stage2-gcc: maybe-all-stage2-intl
! all-stage3-gcc: maybe-all-stage3-intl
! all-stage4-gcc: maybe-all-stage4-intl
! all-stageprofile-gcc: maybe-all-stageprofile-intl
! all-stagetrain-gcc: maybe-all-stagetrain-intl
! all-stagefeedback-gcc: maybe-all-stagefeedback-intl
! all-stageautoprofile-gcc: maybe-all-stageautoprofile-intl
! all-stageautofeedback-gcc: maybe-all-stageautofeedback-intl
  all-gcc: maybe-all-mpfr
  all-stage1-gcc: maybe-all-stage1-mpfr
  all-stage2-gcc: maybe-all-stage2-mpfr
--- 67558,67583 ----
  all-stagefeedback-gcc: all-stagefeedback-libiberty
  all-stageautoprofile-gcc: all-stageautoprofile-libiberty
  all-stageautofeedback-gcc: all-stageautofeedback-libiberty
! all-gcc: maybe-all-libgrust
! all-stage1-gcc: maybe-all-stage1-libgrust
! all-stage2-gcc: maybe-all-stage2-libgrust
! all-stage3-gcc: maybe-all-stage3-libgrust
! all-stage4-gcc: maybe-all-stage4-libgrust
! all-stageprofile-gcc: maybe-all-stageprofile-libgrust
! all-stagetrain-gcc: maybe-all-stagetrain-libgrust
! all-stagefeedback-gcc: maybe-all-stagefeedback-libgrust
! all-stageautoprofile-gcc: maybe-all-stageautoprofile-libgrust
! all-stageautofeedback-gcc: maybe-all-stageautofeedback-libgrust
! all-gcc: maybe-all-gettext
! all-stage1-gcc: maybe-all-stage1-gettext
! all-stage2-gcc: maybe-all-stage2-gettext
! all-stage3-gcc: maybe-all-stage3-gettext
! all-stage4-gcc: maybe-all-stage4-gettext
! all-stageprofile-gcc: maybe-all-stageprofile-gettext
! all-stagetrain-gcc: maybe-all-stagetrain-gettext
! all-stagefeedback-gcc: maybe-all-stagefeedback-gettext
! all-stageautoprofile-gcc: maybe-all-stageautoprofile-gettext
! all-stageautofeedback-gcc: maybe-all-stageautofeedback-gettext
  all-gcc: maybe-all-mpfr
  all-stage1-gcc: maybe-all-stage1-mpfr
  all-stage2-gcc: maybe-all-stage2-mpfr
*************** configure-stagetrain-libcpp: configure-s
*** 65648,65663 ****
  configure-stagefeedback-libcpp: configure-stagefeedback-libiberty
  configure-stageautoprofile-libcpp: configure-stageautoprofile-libiberty
  configure-stageautofeedback-libcpp: configure-stageautofeedback-libiberty
! configure-libcpp: maybe-configure-intl
! configure-stage1-libcpp: maybe-configure-stage1-intl
! configure-stage2-libcpp: maybe-configure-stage2-intl
! configure-stage3-libcpp: maybe-configure-stage3-intl
! configure-stage4-libcpp: maybe-configure-stage4-intl
! configure-stageprofile-libcpp: maybe-configure-stageprofile-intl
! configure-stagetrain-libcpp: maybe-configure-stagetrain-intl
! configure-stagefeedback-libcpp: maybe-configure-stagefeedback-intl
! configure-stageautoprofile-libcpp: maybe-configure-stageautoprofile-intl
! configure-stageautofeedback-libcpp: maybe-configure-stageautofeedback-intl
  configure-libcpp: maybe-all-libiconv
  configure-stage1-libcpp: maybe-all-stage1-libiconv
  configure-stage2-libcpp: maybe-all-stage2-libiconv
--- 67812,67827 ----
  configure-stagefeedback-libcpp: configure-stagefeedback-libiberty
  configure-stageautoprofile-libcpp: configure-stageautoprofile-libiberty
  configure-stageautofeedback-libcpp: configure-stageautofeedback-libiberty
! configure-libcpp: maybe-configure-gettext
! configure-stage1-libcpp: maybe-configure-stage1-gettext
! configure-stage2-libcpp: maybe-configure-stage2-gettext
! configure-stage3-libcpp: maybe-configure-stage3-gettext
! configure-stage4-libcpp: maybe-configure-stage4-gettext
! configure-stageprofile-libcpp: maybe-configure-stageprofile-gettext
! configure-stagetrain-libcpp: maybe-configure-stagetrain-gettext
! configure-stagefeedback-libcpp: maybe-configure-stagefeedback-gettext
! configure-stageautoprofile-libcpp: maybe-configure-stageautoprofile-gettext
! configure-stageautofeedback-libcpp: maybe-configure-stageautofeedback-gettext
  configure-libcpp: maybe-all-libiconv
  configure-stage1-libcpp: maybe-all-stage1-libiconv
  configure-stage2-libcpp: maybe-all-stage2-libiconv
*************** all-stagetrain-libcpp: all-stagetrain-li
*** 65678,65693 ****
  all-stagefeedback-libcpp: all-stagefeedback-libiberty
  all-stageautoprofile-libcpp: all-stageautoprofile-libiberty
  all-stageautofeedback-libcpp: all-stageautofeedback-libiberty
! all-libcpp: maybe-all-intl
! all-stage1-libcpp: maybe-all-stage1-intl
! all-stage2-libcpp: maybe-all-stage2-intl
! all-stage3-libcpp: maybe-all-stage3-intl
! all-stage4-libcpp: maybe-all-stage4-intl
! all-stageprofile-libcpp: maybe-all-stageprofile-intl
! all-stagetrain-libcpp: maybe-all-stagetrain-intl
! all-stagefeedback-libcpp: maybe-all-stagefeedback-intl
! all-stageautoprofile-libcpp: maybe-all-stageautoprofile-intl
! all-stageautofeedback-libcpp: maybe-all-stageautofeedback-intl
  all-libcpp: maybe-all-libiconv
  all-stage1-libcpp: maybe-all-stage1-libiconv
  all-stage2-libcpp: maybe-all-stage2-libiconv
--- 67842,67857 ----
  all-stagefeedback-libcpp: all-stagefeedback-libiberty
  all-stageautoprofile-libcpp: all-stageautoprofile-libiberty
  all-stageautofeedback-libcpp: all-stageautofeedback-libiberty
! all-libcpp: maybe-all-gettext
! all-stage1-libcpp: maybe-all-stage1-gettext
! all-stage2-libcpp: maybe-all-stage2-gettext
! all-stage3-libcpp: maybe-all-stage3-gettext
! all-stage4-libcpp: maybe-all-stage4-gettext
! all-stageprofile-libcpp: maybe-all-stageprofile-gettext
! all-stagetrain-libcpp: maybe-all-stagetrain-gettext
! all-stagefeedback-libcpp: maybe-all-stagefeedback-gettext
! all-stageautoprofile-libcpp: maybe-all-stageautoprofile-gettext
! all-stageautofeedback-libcpp: maybe-all-stageautofeedback-gettext
  all-libcpp: maybe-all-libiconv
  all-stage1-libcpp: maybe-all-stage1-libiconv
  all-stage2-libcpp: maybe-all-stage2-libiconv
*************** all-stagefeedback-lto-plugin: maybe-all-
*** 65730,65745 ****
  all-stageautoprofile-lto-plugin: maybe-all-stageautoprofile-libiberty-linker-plugin
  all-stageautofeedback-lto-plugin: maybe-all-stageautofeedback-libiberty-linker-plugin
  all-gotools: maybe-all-target-libgo
! configure-intl: maybe-all-libiconv
! configure-stage1-intl: maybe-all-stage1-libiconv
! configure-stage2-intl: maybe-all-stage2-libiconv
! configure-stage3-intl: maybe-all-stage3-libiconv
! configure-stage4-intl: maybe-all-stage4-libiconv
! configure-stageprofile-intl: maybe-all-stageprofile-libiconv
! configure-stagetrain-intl: maybe-all-stagetrain-libiconv
! configure-stagefeedback-intl: maybe-all-stagefeedback-libiconv
! configure-stageautoprofile-intl: maybe-all-stageautoprofile-libiconv
! configure-stageautofeedback-intl: maybe-all-stageautofeedback-libiconv
  configure-mpfr: maybe-all-gmp
  configure-stage1-mpfr: maybe-all-stage1-gmp
  configure-stage2-mpfr: maybe-all-stage2-gmp
--- 67894,67909 ----
  all-stageautoprofile-lto-plugin: maybe-all-stageautoprofile-libiberty-linker-plugin
  all-stageautofeedback-lto-plugin: maybe-all-stageautofeedback-libiberty-linker-plugin
  all-gotools: maybe-all-target-libgo
! configure-gettext: maybe-all-libiconv
! configure-stage1-gettext: maybe-all-stage1-libiconv
! configure-stage2-gettext: maybe-all-stage2-libiconv
! configure-stage3-gettext: maybe-all-stage3-libiconv
! configure-stage4-gettext: maybe-all-stage4-libiconv
! configure-stageprofile-gettext: maybe-all-stageprofile-libiconv
! configure-stagetrain-gettext: maybe-all-stagetrain-libiconv
! configure-stagefeedback-gettext: maybe-all-stagefeedback-libiconv
! configure-stageautoprofile-gettext: maybe-all-stageautoprofile-libiconv
! configure-stageautofeedback-gettext: maybe-all-stageautofeedback-libiconv
  configure-mpfr: maybe-all-gmp
  configure-stage1-mpfr: maybe-all-stage1-gmp
  configure-stage2-mpfr: maybe-all-stage2-gmp
*************** configure-stagetrain-isl: maybe-all-stag
*** 65770,65785 ****
  configure-stagefeedback-isl: maybe-all-stagefeedback-gmp
  configure-stageautoprofile-isl: maybe-all-stageautoprofile-gmp
  configure-stageautofeedback-isl: maybe-all-stageautofeedback-gmp
! all-intl: maybe-all-libiconv
! all-stage1-intl: maybe-all-stage1-libiconv
! all-stage2-intl: maybe-all-stage2-libiconv
! all-stage3-intl: maybe-all-stage3-libiconv
! all-stage4-intl: maybe-all-stage4-libiconv
! all-stageprofile-intl: maybe-all-stageprofile-libiconv
! all-stagetrain-intl: maybe-all-stagetrain-libiconv
! all-stagefeedback-intl: maybe-all-stagefeedback-libiconv
! all-stageautoprofile-intl: maybe-all-stageautoprofile-libiconv
! all-stageautofeedback-intl: maybe-all-stageautofeedback-libiconv
  configure-gdb: maybe-configure-sim
  configure-gdb: maybe-all-gnulib
  configure-gdb: maybe-all-gdbsupport
--- 67934,67949 ----
  configure-stagefeedback-isl: maybe-all-stagefeedback-gmp
  configure-stageautoprofile-isl: maybe-all-stageautoprofile-gmp
  configure-stageautofeedback-isl: maybe-all-stageautofeedback-gmp
! all-gettext: maybe-all-libiconv
! all-stage1-gettext: maybe-all-stage1-libiconv
! all-stage2-gettext: maybe-all-stage2-libiconv
! all-stage3-gettext: maybe-all-stage3-libiconv
! all-stage4-gettext: maybe-all-stage4-libiconv
! all-stageprofile-gettext: maybe-all-stageprofile-libiconv
! all-stagetrain-gettext: maybe-all-stagetrain-libiconv
! all-stagefeedback-gettext: maybe-all-stagefeedback-libiconv
! all-stageautoprofile-gettext: maybe-all-stageautoprofile-libiconv
! all-stageautofeedback-gettext: maybe-all-stageautofeedback-libiconv
  configure-gdb: maybe-configure-sim
  configure-gdb: maybe-all-gnulib
  configure-gdb: maybe-all-gdbsupport
*************** configure-stagetrain-bfd: configure-stag
*** 65809,65824 ****
  configure-stagefeedback-bfd: configure-stagefeedback-libiberty
  configure-stageautoprofile-bfd: configure-stageautoprofile-libiberty
  configure-stageautofeedback-bfd: configure-stageautofeedback-libiberty
! configure-bfd: maybe-configure-intl
! configure-stage1-bfd: maybe-configure-stage1-intl
! configure-stage2-bfd: maybe-configure-stage2-intl
! configure-stage3-bfd: maybe-configure-stage3-intl
! configure-stage4-bfd: maybe-configure-stage4-intl
! configure-stageprofile-bfd: maybe-configure-stageprofile-intl
! configure-stagetrain-bfd: maybe-configure-stagetrain-intl
! configure-stagefeedback-bfd: maybe-configure-stagefeedback-intl
! configure-stageautoprofile-bfd: maybe-configure-stageautoprofile-intl
! configure-stageautofeedback-bfd: maybe-configure-stageautofeedback-intl
  all-bfd: maybe-all-libiberty
  all-stage1-bfd: maybe-all-stage1-libiberty
  all-stage2-bfd: maybe-all-stage2-libiberty
--- 67973,67988 ----
  configure-stagefeedback-bfd: configure-stagefeedback-libiberty
  configure-stageautoprofile-bfd: configure-stageautoprofile-libiberty
  configure-stageautofeedback-bfd: configure-stageautofeedback-libiberty
! configure-bfd: maybe-configure-gettext
! configure-stage1-bfd: maybe-configure-stage1-gettext
! configure-stage2-bfd: maybe-configure-stage2-gettext
! configure-stage3-bfd: maybe-configure-stage3-gettext
! configure-stage4-bfd: maybe-configure-stage4-gettext
! configure-stageprofile-bfd: maybe-configure-stageprofile-gettext
! configure-stagetrain-bfd: maybe-configure-stagetrain-gettext
! configure-stagefeedback-bfd: maybe-configure-stagefeedback-gettext
! configure-stageautoprofile-bfd: maybe-configure-stageautoprofile-gettext
! configure-stageautofeedback-bfd: maybe-configure-stageautofeedback-gettext
  all-bfd: maybe-all-libiberty
  all-stage1-bfd: maybe-all-stage1-libiberty
  all-stage2-bfd: maybe-all-stage2-libiberty
*************** all-stagetrain-bfd: maybe-all-stagetrain
*** 65829,65844 ****
  all-stagefeedback-bfd: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-bfd: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-bfd: maybe-all-stageautofeedback-libiberty
! all-bfd: maybe-all-intl
! all-stage1-bfd: maybe-all-stage1-intl
! all-stage2-bfd: maybe-all-stage2-intl
! all-stage3-bfd: maybe-all-stage3-intl
! all-stage4-bfd: maybe-all-stage4-intl
! all-stageprofile-bfd: maybe-all-stageprofile-intl
! all-stagetrain-bfd: maybe-all-stagetrain-intl
! all-stagefeedback-bfd: maybe-all-stagefeedback-intl
! all-stageautoprofile-bfd: maybe-all-stageautoprofile-intl
! all-stageautofeedback-bfd: maybe-all-stageautofeedback-intl
  all-bfd: maybe-all-zlib
  all-stage1-bfd: maybe-all-stage1-zlib
  all-stage2-bfd: maybe-all-stage2-zlib
--- 67993,68008 ----
  all-stagefeedback-bfd: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-bfd: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-bfd: maybe-all-stageautofeedback-libiberty
! all-bfd: maybe-all-gettext
! all-stage1-bfd: maybe-all-stage1-gettext
! all-stage2-bfd: maybe-all-stage2-gettext
! all-stage3-bfd: maybe-all-stage3-gettext
! all-stage4-bfd: maybe-all-stage4-gettext
! all-stageprofile-bfd: maybe-all-stageprofile-gettext
! all-stagetrain-bfd: maybe-all-stagetrain-gettext
! all-stagefeedback-bfd: maybe-all-stagefeedback-gettext
! all-stageautoprofile-bfd: maybe-all-stageautoprofile-gettext
! all-stageautofeedback-bfd: maybe-all-stageautofeedback-gettext
  all-bfd: maybe-all-zlib
  all-stage1-bfd: maybe-all-stage1-zlib
  all-stage2-bfd: maybe-all-stage2-zlib
*************** all-stagetrain-bfd: maybe-all-stagetrain
*** 65849,65854 ****
--- 68013,68028 ----
  all-stagefeedback-bfd: maybe-all-stagefeedback-zlib
  all-stageautoprofile-bfd: maybe-all-stageautoprofile-zlib
  all-stageautofeedback-bfd: maybe-all-stageautofeedback-zlib
+ all-bfd: maybe-all-libsframe
+ all-stage1-bfd: maybe-all-stage1-libsframe
+ all-stage2-bfd: maybe-all-stage2-libsframe
+ all-stage3-bfd: maybe-all-stage3-libsframe
+ all-stage4-bfd: maybe-all-stage4-libsframe
+ all-stageprofile-bfd: maybe-all-stageprofile-libsframe
+ all-stagetrain-bfd: maybe-all-stagetrain-libsframe
+ all-stagefeedback-bfd: maybe-all-stagefeedback-libsframe
+ all-stageautoprofile-bfd: maybe-all-stageautoprofile-libsframe
+ all-stageautofeedback-bfd: maybe-all-stageautofeedback-libsframe
  configure-opcodes: configure-libiberty
  configure-stage1-opcodes: configure-stage1-libiberty
  configure-stage2-opcodes: configure-stage2-libiberty
*************** all-stagetrain-opcodes: maybe-all-staget
*** 65869,65884 ****
  all-stagefeedback-opcodes: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-opcodes: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-opcodes: maybe-all-stageautofeedback-libiberty
! configure-binutils: maybe-configure-intl
! configure-stage1-binutils: maybe-configure-stage1-intl
! configure-stage2-binutils: maybe-configure-stage2-intl
! configure-stage3-binutils: maybe-configure-stage3-intl
! configure-stage4-binutils: maybe-configure-stage4-intl
! configure-stageprofile-binutils: maybe-configure-stageprofile-intl
! configure-stagetrain-binutils: maybe-configure-stagetrain-intl
! configure-stagefeedback-binutils: maybe-configure-stagefeedback-intl
! configure-stageautoprofile-binutils: maybe-configure-stageautoprofile-intl
! configure-stageautofeedback-binutils: maybe-configure-stageautofeedback-intl
  all-binutils: maybe-all-libiberty
  all-stage1-binutils: maybe-all-stage1-libiberty
  all-stage2-binutils: maybe-all-stage2-libiberty
--- 68043,68058 ----
  all-stagefeedback-opcodes: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-opcodes: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-opcodes: maybe-all-stageautofeedback-libiberty
! configure-binutils: maybe-configure-gettext
! configure-stage1-binutils: maybe-configure-stage1-gettext
! configure-stage2-binutils: maybe-configure-stage2-gettext
! configure-stage3-binutils: maybe-configure-stage3-gettext
! configure-stage4-binutils: maybe-configure-stage4-gettext
! configure-stageprofile-binutils: maybe-configure-stageprofile-gettext
! configure-stagetrain-binutils: maybe-configure-stagetrain-gettext
! configure-stagefeedback-binutils: maybe-configure-stagefeedback-gettext
! configure-stageautoprofile-binutils: maybe-configure-stageautoprofile-gettext
! configure-stageautofeedback-binutils: maybe-configure-stageautofeedback-gettext
  all-binutils: maybe-all-libiberty
  all-stage1-binutils: maybe-all-stage1-libiberty
  all-stage2-binutils: maybe-all-stage2-libiberty
*************** all-stagetrain-binutils: maybe-all-build
*** 65929,65944 ****
  all-stagefeedback-binutils: maybe-all-build-bison
  all-stageautoprofile-binutils: maybe-all-build-bison
  all-stageautofeedback-binutils: maybe-all-build-bison
! all-binutils: maybe-all-intl
! all-stage1-binutils: maybe-all-stage1-intl
! all-stage2-binutils: maybe-all-stage2-intl
! all-stage3-binutils: maybe-all-stage3-intl
! all-stage4-binutils: maybe-all-stage4-intl
! all-stageprofile-binutils: maybe-all-stageprofile-intl
! all-stagetrain-binutils: maybe-all-stagetrain-intl
! all-stagefeedback-binutils: maybe-all-stagefeedback-intl
! all-stageautoprofile-binutils: maybe-all-stageautoprofile-intl
! all-stageautofeedback-binutils: maybe-all-stageautofeedback-intl
  all-binutils: maybe-all-gas
  all-stage1-binutils: maybe-all-stage1-gas
  all-stage2-binutils: maybe-all-stage2-gas
--- 68103,68118 ----
  all-stagefeedback-binutils: maybe-all-build-bison
  all-stageautoprofile-binutils: maybe-all-build-bison
  all-stageautofeedback-binutils: maybe-all-build-bison
! all-binutils: maybe-all-gettext
! all-stage1-binutils: maybe-all-stage1-gettext
! all-stage2-binutils: maybe-all-stage2-gettext
! all-stage3-binutils: maybe-all-stage3-gettext
! all-stage4-binutils: maybe-all-stage4-gettext
! all-stageprofile-binutils: maybe-all-stageprofile-gettext
! all-stagetrain-binutils: maybe-all-stagetrain-gettext
! all-stagefeedback-binutils: maybe-all-stagefeedback-gettext
! all-stageautoprofile-binutils: maybe-all-stageautoprofile-gettext
! all-stageautofeedback-binutils: maybe-all-stageautofeedback-gettext
  all-binutils: maybe-all-gas
  all-stage1-binutils: maybe-all-stage1-gas
  all-stage2-binutils: maybe-all-stage2-gas
*************** install-ld: maybe-install-libctf
*** 65987,65992 ****
--- 68161,68168 ----
  install-strip-libctf: maybe-install-strip-bfd
  install-strip-ld: maybe-install-strip-bfd
  install-strip-ld: maybe-install-strip-libctf
+ install-bfd: maybe-install-libsframe
+ install-strip-bfd: maybe-install-strip-libsframe
  configure-opcodes: configure-bfd
  configure-stage1-opcodes: configure-stage1-bfd
  configure-stage2-opcodes: configure-stage2-bfd
*************** configure-stageautoprofile-opcodes: conf
*** 65999,66014 ****
  configure-stageautofeedback-opcodes: configure-stageautofeedback-bfd
  install-opcodes: maybe-install-bfd
  install-strip-opcodes: maybe-install-strip-bfd
! configure-gas: maybe-configure-intl
! configure-stage1-gas: maybe-configure-stage1-intl
! configure-stage2-gas: maybe-configure-stage2-intl
! configure-stage3-gas: maybe-configure-stage3-intl
! configure-stage4-gas: maybe-configure-stage4-intl
! configure-stageprofile-gas: maybe-configure-stageprofile-intl
! configure-stagetrain-gas: maybe-configure-stagetrain-intl
! configure-stagefeedback-gas: maybe-configure-stagefeedback-intl
! configure-stageautoprofile-gas: maybe-configure-stageautoprofile-intl
! configure-stageautofeedback-gas: maybe-configure-stageautofeedback-intl
  all-gas: maybe-all-libiberty
  all-stage1-gas: maybe-all-stage1-libiberty
  all-stage2-gas: maybe-all-stage2-libiberty
--- 68175,68190 ----
  configure-stageautofeedback-opcodes: configure-stageautofeedback-bfd
  install-opcodes: maybe-install-bfd
  install-strip-opcodes: maybe-install-strip-bfd
! configure-gas: maybe-configure-gettext
! configure-stage1-gas: maybe-configure-stage1-gettext
! configure-stage2-gas: maybe-configure-stage2-gettext
! configure-stage3-gas: maybe-configure-stage3-gettext
! configure-stage4-gas: maybe-configure-stage4-gettext
! configure-stageprofile-gas: maybe-configure-stageprofile-gettext
! configure-stagetrain-gas: maybe-configure-stagetrain-gettext
! configure-stagefeedback-gas: maybe-configure-stagefeedback-gettext
! configure-stageautoprofile-gas: maybe-configure-stageautoprofile-gettext
! configure-stageautofeedback-gas: maybe-configure-stageautofeedback-gettext
  all-gas: maybe-all-libiberty
  all-stage1-gas: maybe-all-stage1-libiberty
  all-stage2-gas: maybe-all-stage2-libiberty
*************** all-stagetrain-gas: maybe-all-stagetrain
*** 66039,66064 ****
  all-stagefeedback-gas: maybe-all-stagefeedback-bfd
  all-stageautoprofile-gas: maybe-all-stageautoprofile-bfd
  all-stageautofeedback-gas: maybe-all-stageautofeedback-bfd
! all-gas: maybe-all-intl
! all-stage1-gas: maybe-all-stage1-intl
! all-stage2-gas: maybe-all-stage2-intl
! all-stage3-gas: maybe-all-stage3-intl
! all-stage4-gas: maybe-all-stage4-intl
! all-stageprofile-gas: maybe-all-stageprofile-intl
! all-stagetrain-gas: maybe-all-stagetrain-intl
! all-stagefeedback-gas: maybe-all-stagefeedback-intl
! all-stageautoprofile-gas: maybe-all-stageautoprofile-intl
! all-stageautofeedback-gas: maybe-all-stageautofeedback-intl
! configure-ld: maybe-configure-intl
! configure-stage1-ld: maybe-configure-stage1-intl
! configure-stage2-ld: maybe-configure-stage2-intl
! configure-stage3-ld: maybe-configure-stage3-intl
! configure-stage4-ld: maybe-configure-stage4-intl
! configure-stageprofile-ld: maybe-configure-stageprofile-intl
! configure-stagetrain-ld: maybe-configure-stagetrain-intl
! configure-stagefeedback-ld: maybe-configure-stagefeedback-intl
! configure-stageautoprofile-ld: maybe-configure-stageautoprofile-intl
! configure-stageautofeedback-ld: maybe-configure-stageautofeedback-intl
  all-ld: maybe-all-libiberty
  all-stage1-ld: maybe-all-stage1-libiberty
  all-stage2-ld: maybe-all-stage2-libiberty
--- 68215,68242 ----
  all-stagefeedback-gas: maybe-all-stagefeedback-bfd
  all-stageautoprofile-gas: maybe-all-stageautoprofile-bfd
  all-stageautofeedback-gas: maybe-all-stageautofeedback-bfd
! all-gas: maybe-all-gettext
! all-stage1-gas: maybe-all-stage1-gettext
! all-stage2-gas: maybe-all-stage2-gettext
! all-stage3-gas: maybe-all-stage3-gettext
! all-stage4-gas: maybe-all-stage4-gettext
! all-stageprofile-gas: maybe-all-stageprofile-gettext
! all-stagetrain-gas: maybe-all-stagetrain-gettext
! all-stagefeedback-gas: maybe-all-stagefeedback-gettext
! all-stageautoprofile-gas: maybe-all-stageautoprofile-gettext
! all-stageautofeedback-gas: maybe-all-stageautofeedback-gettext
! install-gprofng: maybe-install-opcodes
! install-gprofng: maybe-install-bfd
! configure-ld: maybe-configure-gettext
! configure-stage1-ld: maybe-configure-stage1-gettext
! configure-stage2-ld: maybe-configure-stage2-gettext
! configure-stage3-ld: maybe-configure-stage3-gettext
! configure-stage4-ld: maybe-configure-stage4-gettext
! configure-stageprofile-ld: maybe-configure-stageprofile-gettext
! configure-stagetrain-ld: maybe-configure-stagetrain-gettext
! configure-stagefeedback-ld: maybe-configure-stagefeedback-gettext
! configure-stageautoprofile-ld: maybe-configure-stageautoprofile-gettext
! configure-stageautofeedback-ld: maybe-configure-stageautofeedback-gettext
  all-ld: maybe-all-libiberty
  all-stage1-ld: maybe-all-stage1-libiberty
  all-stage2-ld: maybe-all-stage2-libiberty
*************** all-stagetrain-ld: maybe-all-build-flex
*** 66109,66124 ****
  all-stagefeedback-ld: maybe-all-build-flex
  all-stageautoprofile-ld: maybe-all-build-flex
  all-stageautofeedback-ld: maybe-all-build-flex
! all-ld: maybe-all-intl
! all-stage1-ld: maybe-all-stage1-intl
! all-stage2-ld: maybe-all-stage2-intl
! all-stage3-ld: maybe-all-stage3-intl
! all-stage4-ld: maybe-all-stage4-intl
! all-stageprofile-ld: maybe-all-stageprofile-intl
! all-stagetrain-ld: maybe-all-stagetrain-intl
! all-stagefeedback-ld: maybe-all-stagefeedback-intl
! all-stageautoprofile-ld: maybe-all-stageautoprofile-intl
! all-stageautofeedback-ld: maybe-all-stageautofeedback-intl
  all-ld: maybe-all-gas
  all-stage1-ld: maybe-all-stage1-gas
  all-stage2-ld: maybe-all-stage2-gas
--- 68287,68302 ----
  all-stagefeedback-ld: maybe-all-build-flex
  all-stageautoprofile-ld: maybe-all-build-flex
  all-stageautofeedback-ld: maybe-all-build-flex
! all-ld: maybe-all-gettext
! all-stage1-ld: maybe-all-stage1-gettext
! all-stage2-ld: maybe-all-stage2-gettext
! all-stage3-ld: maybe-all-stage3-gettext
! all-stage4-ld: maybe-all-stage4-gettext
! all-stageprofile-ld: maybe-all-stageprofile-gettext
! all-stagetrain-ld: maybe-all-stagetrain-gettext
! all-stagefeedback-ld: maybe-all-stagefeedback-gettext
! all-stageautoprofile-ld: maybe-all-stageautoprofile-gettext
! all-stageautofeedback-ld: maybe-all-stageautofeedback-gettext
  all-ld: maybe-all-gas
  all-stage1-ld: maybe-all-stage1-gas
  all-stage2-ld: maybe-all-stage2-gas
*************** all-stageautoprofile-ld: maybe-all-stage
*** 66141,66156 ****
  all-stageautofeedback-ld: maybe-all-stageautofeedback-binutils
  install-ld: maybe-install-gold
  install-strip-ld: maybe-install-strip-gold
! configure-gold: maybe-configure-intl
! configure-stage1-gold: maybe-configure-stage1-intl
! configure-stage2-gold: maybe-configure-stage2-intl
! configure-stage3-gold: maybe-configure-stage3-intl
! configure-stage4-gold: maybe-configure-stage4-intl
! configure-stageprofile-gold: maybe-configure-stageprofile-intl
! configure-stagetrain-gold: maybe-configure-stagetrain-intl
! configure-stagefeedback-gold: maybe-configure-stagefeedback-intl
! configure-stageautoprofile-gold: maybe-configure-stageautoprofile-intl
! configure-stageautofeedback-gold: maybe-configure-stageautofeedback-intl
  all-gold: maybe-all-libiberty
  all-stage1-gold: maybe-all-stage1-libiberty
  all-stage2-gold: maybe-all-stage2-libiberty
--- 68319,68334 ----
  all-stageautofeedback-ld: maybe-all-stageautofeedback-binutils
  install-ld: maybe-install-gold
  install-strip-ld: maybe-install-strip-gold
! configure-gold: maybe-configure-gettext
! configure-stage1-gold: maybe-configure-stage1-gettext
! configure-stage2-gold: maybe-configure-stage2-gettext
! configure-stage3-gold: maybe-configure-stage3-gettext
! configure-stage4-gold: maybe-configure-stage4-gettext
! configure-stageprofile-gold: maybe-configure-stageprofile-gettext
! configure-stagetrain-gold: maybe-configure-stagetrain-gettext
! configure-stagefeedback-gold: maybe-configure-stagefeedback-gettext
! configure-stageautoprofile-gold: maybe-configure-stageautoprofile-gettext
! configure-stageautofeedback-gold: maybe-configure-stageautofeedback-gettext
  all-gold: maybe-all-libiberty
  all-stage1-gold: maybe-all-stage1-libiberty
  all-stage2-gold: maybe-all-stage2-libiberty
*************** all-stagetrain-gold: maybe-all-stagetrai
*** 66161,66176 ****
  all-stagefeedback-gold: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-gold: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-gold: maybe-all-stageautofeedback-libiberty
! all-gold: maybe-all-intl
! all-stage1-gold: maybe-all-stage1-intl
! all-stage2-gold: maybe-all-stage2-intl
! all-stage3-gold: maybe-all-stage3-intl
! all-stage4-gold: maybe-all-stage4-intl
! all-stageprofile-gold: maybe-all-stageprofile-intl
! all-stagetrain-gold: maybe-all-stagetrain-intl
! all-stagefeedback-gold: maybe-all-stagefeedback-intl
! all-stageautoprofile-gold: maybe-all-stageautoprofile-intl
! all-stageautofeedback-gold: maybe-all-stageautofeedback-intl
  all-gold: maybe-all-bfd
  all-stage1-gold: maybe-all-stage1-bfd
  all-stage2-gold: maybe-all-stage2-bfd
--- 68339,68354 ----
  all-stagefeedback-gold: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-gold: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-gold: maybe-all-stageautofeedback-libiberty
! all-gold: maybe-all-gettext
! all-stage1-gold: maybe-all-stage1-gettext
! all-stage2-gold: maybe-all-stage2-gettext
! all-stage3-gold: maybe-all-stage3-gettext
! all-stage4-gold: maybe-all-stage4-gettext
! all-stageprofile-gold: maybe-all-stageprofile-gettext
! all-stagetrain-gold: maybe-all-stagetrain-gettext
! all-stagefeedback-gold: maybe-all-stagefeedback-gettext
! all-stageautoprofile-gold: maybe-all-stageautoprofile-gettext
! all-stageautofeedback-gold: maybe-all-stageautofeedback-gettext
  all-gold: maybe-all-bfd
  all-stage1-gold: maybe-all-stage1-bfd
  all-stage2-gold: maybe-all-stage2-bfd
*************** check-stagetrain-gold: maybe-all-stagetr
*** 66221,66236 ****
  check-stagefeedback-gold: maybe-all-stagefeedback-gas
  check-stageautoprofile-gold: maybe-all-stageautoprofile-gas
  check-stageautofeedback-gold: maybe-all-stageautofeedback-gas
! configure-opcodes: maybe-configure-intl
! configure-stage1-opcodes: maybe-configure-stage1-intl
! configure-stage2-opcodes: maybe-configure-stage2-intl
! configure-stage3-opcodes: maybe-configure-stage3-intl
! configure-stage4-opcodes: maybe-configure-stage4-intl
! configure-stageprofile-opcodes: maybe-configure-stageprofile-intl
! configure-stagetrain-opcodes: maybe-configure-stagetrain-intl
! configure-stagefeedback-opcodes: maybe-configure-stagefeedback-intl
! configure-stageautoprofile-opcodes: maybe-configure-stageautoprofile-intl
! configure-stageautofeedback-opcodes: maybe-configure-stageautofeedback-intl
  all-opcodes: maybe-all-bfd
  all-stage1-opcodes: maybe-all-stage1-bfd
  all-stage2-opcodes: maybe-all-stage2-bfd
--- 68399,68414 ----
  check-stagefeedback-gold: maybe-all-stagefeedback-gas
  check-stageautoprofile-gold: maybe-all-stageautoprofile-gas
  check-stageautofeedback-gold: maybe-all-stageautofeedback-gas
! configure-opcodes: maybe-configure-gettext
! configure-stage1-opcodes: maybe-configure-stage1-gettext
! configure-stage2-opcodes: maybe-configure-stage2-gettext
! configure-stage3-opcodes: maybe-configure-stage3-gettext
! configure-stage4-opcodes: maybe-configure-stage4-gettext
! configure-stageprofile-opcodes: maybe-configure-stageprofile-gettext
! configure-stagetrain-opcodes: maybe-configure-stagetrain-gettext
! configure-stagefeedback-opcodes: maybe-configure-stagefeedback-gettext
! configure-stageautoprofile-opcodes: maybe-configure-stageautoprofile-gettext
! configure-stageautofeedback-opcodes: maybe-configure-stageautofeedback-gettext
  all-opcodes: maybe-all-bfd
  all-stage1-opcodes: maybe-all-stage1-bfd
  all-stage2-opcodes: maybe-all-stage2-bfd
*************** all-stagetrain-opcodes: maybe-all-staget
*** 66251,66266 ****
  all-stagefeedback-opcodes: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-opcodes: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-opcodes: maybe-all-stageautofeedback-libiberty
! all-opcodes: maybe-all-intl
! all-stage1-opcodes: maybe-all-stage1-intl
! all-stage2-opcodes: maybe-all-stage2-intl
! all-stage3-opcodes: maybe-all-stage3-intl
! all-stage4-opcodes: maybe-all-stage4-intl
! all-stageprofile-opcodes: maybe-all-stageprofile-intl
! all-stagetrain-opcodes: maybe-all-stagetrain-intl
! all-stagefeedback-opcodes: maybe-all-stagefeedback-intl
! all-stageautoprofile-opcodes: maybe-all-stageautoprofile-intl
! all-stageautofeedback-opcodes: maybe-all-stageautofeedback-intl
  all-dejagnu: maybe-all-tcl
  all-dejagnu: maybe-all-expect
  all-dejagnu: maybe-all-tk
--- 68429,68444 ----
  all-stagefeedback-opcodes: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-opcodes: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-opcodes: maybe-all-stageautofeedback-libiberty
! all-opcodes: maybe-all-gettext
! all-stage1-opcodes: maybe-all-stage1-gettext
! all-stage2-opcodes: maybe-all-stage2-gettext
! all-stage3-opcodes: maybe-all-stage3-gettext
! all-stage4-opcodes: maybe-all-stage4-gettext
! all-stageprofile-opcodes: maybe-all-stageprofile-gettext
! all-stagetrain-opcodes: maybe-all-stagetrain-gettext
! all-stagefeedback-opcodes: maybe-all-stagefeedback-gettext
! all-stageautoprofile-opcodes: maybe-all-stageautoprofile-gettext
! all-stageautofeedback-opcodes: maybe-all-stageautofeedback-gettext
  all-dejagnu: maybe-all-tcl
  all-dejagnu: maybe-all-expect
  all-dejagnu: maybe-all-tk
*************** configure-stagetrain-libctf: maybe-all-s
*** 66325,66340 ****
  configure-stagefeedback-libctf: maybe-all-stagefeedback-bfd
  configure-stageautoprofile-libctf: maybe-all-stageautoprofile-bfd
  configure-stageautofeedback-libctf: maybe-all-stageautofeedback-bfd
! configure-libctf: maybe-all-intl
! configure-stage1-libctf: maybe-all-stage1-intl
! configure-stage2-libctf: maybe-all-stage2-intl
! configure-stage3-libctf: maybe-all-stage3-intl
! configure-stage4-libctf: maybe-all-stage4-intl
! configure-stageprofile-libctf: maybe-all-stageprofile-intl
! configure-stagetrain-libctf: maybe-all-stagetrain-intl
! configure-stagefeedback-libctf: maybe-all-stagefeedback-intl
! configure-stageautoprofile-libctf: maybe-all-stageautoprofile-intl
! configure-stageautofeedback-libctf: maybe-all-stageautofeedback-intl
  configure-libctf: maybe-all-zlib
  configure-stage1-libctf: maybe-all-stage1-zlib
  configure-stage2-libctf: maybe-all-stage2-zlib
--- 68503,68518 ----
  configure-stagefeedback-libctf: maybe-all-stagefeedback-bfd
  configure-stageautoprofile-libctf: maybe-all-stageautoprofile-bfd
  configure-stageautofeedback-libctf: maybe-all-stageautofeedback-bfd
! configure-libctf: maybe-all-gettext
! configure-stage1-libctf: maybe-all-stage1-gettext
! configure-stage2-libctf: maybe-all-stage2-gettext
! configure-stage3-libctf: maybe-all-stage3-gettext
! configure-stage4-libctf: maybe-all-stage4-gettext
! configure-stageprofile-libctf: maybe-all-stageprofile-gettext
! configure-stagetrain-libctf: maybe-all-stagetrain-gettext
! configure-stagefeedback-libctf: maybe-all-stagefeedback-gettext
! configure-stageautoprofile-libctf: maybe-all-stageautoprofile-gettext
! configure-stageautofeedback-libctf: maybe-all-stageautofeedback-gettext
  configure-libctf: maybe-all-zlib
  configure-stage1-libctf: maybe-all-stage1-zlib
  configure-stage2-libctf: maybe-all-stage2-zlib
*************** check-stageautoprofile-libctf: maybe-all
*** 66367,66372 ****
--- 68545,68551 ----
  check-stageautofeedback-libctf: maybe-all-stageautofeedback-ld
  distclean-gnulib: maybe-distclean-gdb
  distclean-gnulib: maybe-distclean-gdbserver
+ distclean-gnulib: maybe-distclean-sim
  all-bison: maybe-all-build-texinfo
  all-flex: maybe-all-build-bison
  all-flex: maybe-all-m4
*************** configure-gdb: stage_last
*** 66489,66494 ****
--- 68668,68674 ----
  configure-gdbserver: stage_last
  configure-gdbsupport: stage_last
  configure-gprof: stage_last
+ configure-gprofng: stage_last
  configure-sid: stage_last
  configure-sim: stage_last
  configure-fastjar: stage_last
*************** configure-flex: stage_last
*** 66497,66502 ****
--- 68677,68715 ----
  configure-m4: stage_last
  @endif gcc-bootstrap
  
+ @if gcc-bootstrap
+ @unless target-zlib-bootstrap
+ configure-target-fastjar: maybe-configure-target-zlib
+ @endunless target-zlib-bootstrap
+ @unless target-zlib-bootstrap
+ all-target-fastjar: maybe-all-target-zlib
+ @endunless target-zlib-bootstrap
+ @unless target-libstdc++-v3-bootstrap
+ configure-target-libgo: maybe-all-target-libstdc++-v3
+ @endunless target-libstdc++-v3-bootstrap
+ @unless target-libbacktrace-bootstrap
+ all-target-libgo: maybe-all-target-libbacktrace
+ @endunless target-libbacktrace-bootstrap
+ @unless target-libatomic-bootstrap
+ all-target-libgo: maybe-all-target-libatomic
+ @endunless target-libatomic-bootstrap
+ @unless target-libstdc++-v3-bootstrap
+ configure-target-libgm2: maybe-all-target-libstdc++-v3
+ @endunless target-libstdc++-v3-bootstrap
+ @unless target-libatomic-bootstrap
+ all-target-libgm2: maybe-all-target-libatomic
+ @endunless target-libatomic-bootstrap
+ @unless target-libstdc++-v3-bootstrap
+ configure-target-libgrust: maybe-all-target-libstdc++-v3
+ @endunless target-libstdc++-v3-bootstrap
+ @unless target-libbacktrace-bootstrap
+ configure-target-libgfortran: maybe-all-target-libbacktrace
+ @endunless target-libbacktrace-bootstrap
+ @unless target-libbacktrace-bootstrap
+ configure-target-libgo: maybe-all-target-libbacktrace
+ @endunless target-libbacktrace-bootstrap
+ @endif gcc-bootstrap
+ 
  @unless gcc-bootstrap
  all-gnattools: maybe-all-target-libstdc++-v3
  configure-libcc1: maybe-configure-gcc
*************** all-c++tools: maybe-all-gcc
*** 66505,66511 ****
  all-utils: maybe-all-libiberty
  configure-gdb: maybe-all-gmp
  configure-gdb: maybe-all-mpfr
! configure-gdb: maybe-all-intl
  configure-gdb: maybe-all-bfd
  configure-gdb: maybe-all-libiconv
  all-gdb: maybe-all-libiberty
--- 68718,68724 ----
  all-utils: maybe-all-libiberty
  configure-gdb: maybe-all-gmp
  configure-gdb: maybe-all-mpfr
! configure-gdb: maybe-all-gettext
  configure-gdb: maybe-all-bfd
  configure-gdb: maybe-all-libiconv
  all-gdb: maybe-all-libiberty
*************** all-gdb: maybe-all-libdecnumber
*** 66515,66541 ****
  all-gdb: maybe-all-libctf
  all-gdb: maybe-all-libbacktrace
  all-gdbserver: maybe-all-libiberty
! configure-gdbsupport: maybe-configure-intl
! all-gdbsupport: maybe-all-intl
! configure-gprof: maybe-configure-intl
  all-gprof: maybe-all-libiberty
  all-gprof: maybe-all-bfd
  all-gprof: maybe-all-opcodes
! all-gprof: maybe-all-intl
  all-gprof: maybe-all-gas
  all-sid: maybe-all-libiberty
  all-sid: maybe-all-bfd
  all-sid: maybe-all-opcodes
! configure-sim: maybe-configure-intl
! all-sim: maybe-all-intl
  all-sim: maybe-all-libiberty
  all-sim: maybe-all-bfd
  all-sim: maybe-all-opcodes
  all-fastjar: maybe-all-zlib
  all-fastjar: maybe-all-libiberty
! all-bison: maybe-all-intl
! all-flex: maybe-all-intl
! all-m4: maybe-all-intl
  configure-target-fastjar: maybe-configure-target-zlib
  all-target-fastjar: maybe-all-target-zlib
  configure-target-libgo: maybe-all-target-libstdc++-v3
--- 68728,68760 ----
  all-gdb: maybe-all-libctf
  all-gdb: maybe-all-libbacktrace
  all-gdbserver: maybe-all-libiberty
! configure-gdbsupport: maybe-configure-gettext
! all-gdbsupport: maybe-all-gettext
! configure-gprof: maybe-configure-gettext
  all-gprof: maybe-all-libiberty
  all-gprof: maybe-all-bfd
  all-gprof: maybe-all-opcodes
! all-gprof: maybe-all-gettext
  all-gprof: maybe-all-gas
+ configure-gprofng: maybe-configure-gettext
+ all-gprofng: maybe-all-libiberty
+ all-gprofng: maybe-all-bfd
+ all-gprofng: maybe-all-opcodes
+ all-gprofng: maybe-all-gettext
+ all-gprofng: maybe-all-gas
  all-sid: maybe-all-libiberty
  all-sid: maybe-all-bfd
  all-sid: maybe-all-opcodes
! configure-sim: maybe-configure-gettext
! all-sim: maybe-all-gettext
  all-sim: maybe-all-libiberty
  all-sim: maybe-all-bfd
  all-sim: maybe-all-opcodes
  all-fastjar: maybe-all-zlib
  all-fastjar: maybe-all-libiberty
! all-bison: maybe-all-gettext
! all-flex: maybe-all-gettext
! all-m4: maybe-all-gettext
  configure-target-fastjar: maybe-configure-target-zlib
  all-target-fastjar: maybe-all-target-zlib
  configure-target-libgo: maybe-all-target-libstdc++-v3
*************** all-target-libgo: maybe-all-target-libba
*** 66543,66548 ****
--- 68762,68768 ----
  all-target-libgo: maybe-all-target-libatomic
  configure-target-libgm2: maybe-all-target-libstdc++-v3
  all-target-libgm2: maybe-all-target-libatomic
+ configure-target-libgrust: maybe-all-target-libstdc++-v3
  configure-target-newlib: maybe-all-binutils
  configure-target-newlib: maybe-all-ld
  configure-target-libgfortran: maybe-all-target-libbacktrace
*************** configure-target-libgm2: maybe-all-targe
*** 66652,66657 ****
--- 68872,68878 ----
  configure-target-libgomp: maybe-all-target-libgcc
  configure-target-libitm: maybe-all-target-libgcc
  configure-target-libatomic: maybe-all-target-libgcc
+ configure-target-libgrust: maybe-all-target-libgcc
  @endif gcc-no-bootstrap
  
  
*************** configure-target-libitm: maybe-all-targe
*** 66700,66705 ****
--- 68921,68928 ----
  
  configure-target-libatomic: maybe-all-target-newlib maybe-all-target-libgloss
  
+ configure-target-libgrust: maybe-all-target-newlib maybe-all-target-libgloss
+ 
  
  CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@
  GDB_TK = @GDB_TK@
*************** AUTOCONF = autoconf
*** 66734,66739 ****
--- 68957,68963 ----
  $(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/config/acx.m4 \
  	$(srcdir)/config/override.m4 $(srcdir)/config/proginstall.m4 \
  	$(srcdir)/config/elf.m4 $(srcdir)/config/isl.m4 \
+ 	$(srcdir)/config/gcc-plugin.m4 \
  	$(srcdir)/libtool.m4 $(srcdir)/ltoptions.m4 $(srcdir)/ltsugar.m4 \
  	$(srcdir)/ltversion.m4 $(srcdir)/lt~obsolete.m4
  	cd $(srcdir) && $(AUTOCONF)
diff -Nrcpad gcc-13.2.0/Makefile.tpl gcc-14.1.0/Makefile.tpl
*** gcc-13.2.0/Makefile.tpl	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/Makefile.tpl	Tue May  7 06:51:37 2024
*************** in
*** 6,12 ****
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
--- 6,12 ----
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2023
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
*************** BASE_EXPORTS = \
*** 146,152 ****
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
--- 146,153 ----
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO; \
! 	GUILE="$(GUILE)"; export GUILE;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
*************** HOST_EXPORTS = \
*** 224,229 ****
--- 225,231 ----
  	OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
  	OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
  	OTOOL="$(OTOOL)"; export OTOOL; \
+ 	PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)"; export PKG_CONFIG_PATH; \
  	READELF="$(READELF)"; export READELF; \
  	AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \
  	AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \
*************** BASE_TARGET_EXPORTS = \
*** 323,328 ****
--- 325,331 ----
  	RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
  	READELF="$(READELF_FOR_TARGET)"; export READELF; \
  	STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
+ 	SYSROOT_CFLAGS_FOR_TARGET="$(SYSROOT_CFLAGS_FOR_TARGET)"; export SYSROOT_CFLAGS_FOR_TARGET; \
  	WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
  	WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
  @if gcc-bootstrap
*************** MAKEINFO = @MAKEINFO@
*** 407,413 ****
  EXPECT = @EXPECT@
  RUNTEST = @RUNTEST@
  
! AUTO_PROFILE = gcc-auto-profile -c 10000000
  
  # This just becomes part of the MAKEINFO definition passed down to
  # sub-makes.  It lets flags be given on the command line while still
--- 410,416 ----
  EXPECT = @EXPECT@
  RUNTEST = @RUNTEST@
  
! AUTO_PROFILE = gcc-auto-profile --all -c 10000000
  
  # This just becomes part of the MAKEINFO definition passed down to
  # sub-makes.  It lets flags be given on the command line while still
*************** MAKEINFOFLAGS = --split-size=5000000
*** 420,426 ****
  # ---------------------------------------------
  
  AS = @AS@
! AR = @AR@
  AR_FLAGS = rc
  CC = @CC@
  CXX = @CXX@
--- 423,429 ----
  # ---------------------------------------------
  
  AS = @AS@
! AR = @AR@ @AR_PLUGIN_OPTION@
  AR_FLAGS = rc
  CC = @CC@
  CXX = @CXX@
*************** LIPO = @LIPO@
*** 431,437 ****
  NM = @NM@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
! RANLIB = @RANLIB@
  READELF = @READELF@
  STRIP = @STRIP@
  WINDRES = @WINDRES@
--- 434,440 ----
  NM = @NM@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
! RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
  READELF = @READELF@
  STRIP = @STRIP@
  WINDRES = @WINDRES@
*************** LIBCFLAGS = $(CFLAGS)
*** 447,455 ****
  CXXFLAGS = @CXXFLAGS@
  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
  GOCFLAGS = $(CFLAGS)
! GDCFLAGS = $(CFLAGS)
  GM2FLAGS = $(CFLAGS)
  
  # Pass additional PGO and LTO compiler options to the PGO build.
  BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
  override CFLAGS += $(BUILD_CFLAGS)
--- 450,462 ----
  CXXFLAGS = @CXXFLAGS@
  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
  GOCFLAGS = $(CFLAGS)
! GDCFLAGS = @GDCFLAGS@
  GM2FLAGS = $(CFLAGS)
  
+ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+ 
+ GUILE = guile
+ 
  # Pass additional PGO and LTO compiler options to the PGO build.
  BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
  override CFLAGS += $(BUILD_CFLAGS)
*************** PGO-TRAINING-TARGETS = binutils gas gdb
*** 494,499 ****
--- 501,507 ----
  PGO_BUILD_TRAINING = $(addprefix maybe-check-,$(PGO-TRAINING-TARGETS))
  
  CREATE_GCOV = create_gcov
+ PROFILE_MERGER = profile_merger
  
  TFLAGS =
  
*************** STAGEtrain_TFLAGS = $(filter-out -fcheck
*** 556,567 ****
  
  STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use -fprofile-reproducible=parallel-runs
  STAGEfeedback_TFLAGS = $(STAGE4_TFLAGS)
  
! STAGEautoprofile_CFLAGS = $(STAGE2_CFLAGS) -g
  STAGEautoprofile_TFLAGS = $(STAGE2_TFLAGS)
  
  STAGEautofeedback_CFLAGS = $(STAGE3_CFLAGS)
  STAGEautofeedback_TFLAGS = $(STAGE3_TFLAGS)
  
  do-compare = @do_compare@
  do-compare3 = $(do-compare)
--- 564,582 ----
  
  STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use -fprofile-reproducible=parallel-runs
  STAGEfeedback_TFLAGS = $(STAGE4_TFLAGS)
+ # Disable warnings as errors for a few reasons:
+ # - sources for gen* binaries do not have .gcda files available
+ # - inlining decisions generate extra warnings
+ STAGEfeedback_CONFIGURE_FLAGS = $(filter-out --enable-werror-always,$(STAGE_CONFIGURE_FLAGS))
  
! STAGEautoprofile_CFLAGS = $(filter-out -gtoggle,$(STAGE2_CFLAGS)) -g
  STAGEautoprofile_TFLAGS = $(STAGE2_TFLAGS)
  
  STAGEautofeedback_CFLAGS = $(STAGE3_CFLAGS)
  STAGEautofeedback_TFLAGS = $(STAGE3_TFLAGS)
+ # Disable warnings as errors since inlining decisions with -fauto-profile
+ # may result in additional warnings.
+ STAGEautofeedback_CONFIGURE_FLAGS = $(filter-out --enable-werror-always,$(STAGE_CONFIGURE_FLAGS))
  
  do-compare = @do_compare@
  do-compare3 = $(do-compare)
*************** EXTRA_HOST_FLAGS = \
*** 728,734 ****
  	'STRIP=$(STRIP)' \
  	'WINDRES=$(WINDRES)' \
  	'WINDMC=$(WINDMC)' \
! 	'CREATE_GCOV=$(CREATE_GCOV)'
  
  FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
  
--- 743,750 ----
  	'STRIP=$(STRIP)' \
  	'WINDRES=$(WINDRES)' \
  	'WINDMC=$(WINDMC)' \
! 	'CREATE_GCOV=$(CREATE_GCOV)' \
! 	'PROFILE_MERGER=$(PROFILE_MERGER)'
  
  FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
  
*************** cross: all-build all-gas all-ld
*** 1626,1634 ****
  @endif gcc-no-bootstrap
  
  @if gcc
  [+ FOR languages +]
  .PHONY: check-gcc-[+language+] check-[+language+]
! check-gcc-[+language+]:
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
--- 1642,1658 ----
  @endif gcc-no-bootstrap
  
  @if gcc
+ 
+ .PHONY: gcc-site.exp
+ gcc-site.exp:
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) site.exp);
+ 
  [+ FOR languages +]
  .PHONY: check-gcc-[+language+] check-[+language+]
! check-gcc-[+language+]: gcc-site.exp
  	r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(HOST_EXPORTS) \
*************** configure-target-[+module+]: maybe-all-g
*** 1952,1958 ****
     (define dep-maybe (lambda ()
        (if (exist? "hard") "" "maybe-")))
  
!    ;; dep-kind returns returns "prebootstrap" for configure or build
     ;; dependencies of bootstrapped modules on a build module
     ;; (e.g. all-gcc on all-build-bison); "normal" if the dependency is
     ;; on an "install" target, or if the dependence module is not
--- 1976,1982 ----
     (define dep-maybe (lambda ()
        (if (exist? "hard") "" "maybe-")))
  
!    ;; dep-kind returns "prebootstrap" for configure or build
     ;; dependencies of bootstrapped modules on a build module
     ;; (e.g. all-gcc on all-build-bison); "normal" if the dependency is
     ;; on an "install" target, or if the dependence module is not
*************** configure-target-[+module+]: maybe-all-g
*** 1989,1994 ****
--- 2013,2037 ----
  	 (unless (=* target "target-")
             (string-append "configure-" target ": " dep "\n"))))))
  
+    ;; Dependencies in between target modules if the dependencies
+    ;; are bootstrap target modules and the target modules which
+    ;; depend on them are emitted inside of @unless gcc-bootstrap.
+    ;; Unfortunately, some target modules like libatomic or libbacktrace
+    ;; have bootstrap flag set, but whether they are actually built
+    ;; during bootstrap or after bootstrap depends on e.g. enabled languages;
+    ;; if d is enabled, libphobos is built as target module and depends
+    ;; on libatomic and libbacktrace, which are therefore also built as
+    ;; bootstrap modules.  If d is not enabled but go is, libatomic and
+    ;; libbacktrace are just dependencies of libgo which is not a bootstrap
+    ;; target module, but we need dependencies on libatomic and libbacktrace
+    ;; in that case even when gcc-bootstrap.  This lambda emits those.
+    (define make-postboot-target-dep (lambda ()
+      (let ((target (dep-module "module")) (on (dep-module "on")))
+        (when (=* on "target-")
+ 	 (when (=* target "target-")
+ 	   (string-append "@unless " on "-bootstrap\n" (make-dep "" "")
+ 			  "\n@endunless " on "-bootstrap\n"))))))
+ 
     ;; We now build the hash table that is used by dep-kind.
     (define boot-modules (make-hash-table 113))
     (define postboot-targets (make-hash-table 113))
*************** configure-target-[+module+]: maybe-all-g
*** 2021,2026 ****
--- 2064,2074 ----
  [+ == "postbootstrap" +][+ (make-postboot-dep) +][+ ESAC +][+
  ENDFOR dependencies +]@endif gcc-bootstrap
  
+ @if gcc-bootstrap
+ [+ FOR dependencies +][+ CASE (dep-kind) +]
+ [+ == "postbootstrap" +][+ (make-postboot-target-dep) +][+ ESAC +][+
+ ENDFOR dependencies +]@endif gcc-bootstrap
+ 
  @unless gcc-bootstrap
  [+ FOR dependencies +][+ CASE (dep-kind) +]
  [+ == "postbootstrap" +][+ (make-dep "" "") +]
*************** AUTOCONF = autoconf
*** 2101,2106 ****
--- 2149,2155 ----
  $(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/config/acx.m4 \
  	$(srcdir)/config/override.m4 $(srcdir)/config/proginstall.m4 \
  	$(srcdir)/config/elf.m4 $(srcdir)/config/isl.m4 \
+ 	$(srcdir)/config/gcc-plugin.m4 \
  	$(srcdir)/libtool.m4 $(srcdir)/ltoptions.m4 $(srcdir)/ltsugar.m4 \
  	$(srcdir)/ltversion.m4 $(srcdir)/lt~obsolete.m4
  	cd $(srcdir) && $(AUTOCONF)
diff -Nrcpad gcc-13.2.0/NEWS gcc-14.1.0/NEWS
*** gcc-13.2.0/NEWS	Thu Jul 27 08:17:40 2023
--- gcc-14.1.0/NEWS	Tue May  7 06:53:45 2024
*************** that led to GCC 3. For information on GC
*** 5,10 ****
--- 5,1222 ----
  see ONEWS.
  
  ======================================================================
+ http://gcc.gnu.org/gcc-14/index.html
+                              GCC 14 Release Series
+ 
+    May 7, 2024
+ 
+    The GCC developers are pleased to announce the release of GCC 14.1.
+ 
+    This release is a major release, containing new features (as well as
+    many other improvements) relative to GCC 13.x.
+ 
+ Release History
+ 
+    GCC 14.1
+           May 7, 2024 ([1]changes, [2]documentation)
+ 
+ References and Acknowledgements
+ 
+    GCC used to stand for the GNU C Compiler, but since the compiler
+    supports several other languages aside from C, it now stands for the
+    GNU Compiler Collection.
+ 
+    The GCC developers would like to thank the numerous people that have
+    contributed new features, improvements, bug fixes, and other changes as
+    well as test results to GCC. This [3]amazing group of volunteers is
+    what makes GCC successful.
+ 
+    For additional information about GCC please refer to the [4]GCC project
+    web site or contact the [5]GCC development mailing list.
+ 
+    To obtain GCC please use [6]our mirror sites or [7]our version control
+    system.
+ 
+ 
+     For questions related to the use of GCC, please consult these web
+     pages and the [8]GCC manuals. If that fails, the
+     [9]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+     web pages and the development of GCC are welcome on our developer
+     list at [10]gcc@gcc.gnu.org. All of [11]our lists have public
+     archives.
+ 
+    Copyright (C) [12]Free Software Foundation, Inc. Verbatim copying and
+    distribution of this entire article is permitted in any medium,
+    provided this notice is preserved.
+ 
+    These pages are [13]maintained by the GCC team. Last modified
+    2024-05-07.
+ 
+ References
+ 
+    1. https://gcc.gnu.org/gcc-14/changes.html
+    2. http://gcc.gnu.org/onlinedocs/14.1.0/
+    3. http://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Contributors.html
+    4. https://gcc.gnu.org/index.html
+    5. mailto:gcc@gcc.gnu.org
+    6. https://gcc.gnu.org/mirrors.html
+    7. https://gcc.gnu.org/git.html
+    8. https://gcc.gnu.org/onlinedocs/
+    9. mailto:gcc-help@gcc.gnu.org
+   10. mailto:gcc@gcc.gnu.org
+   11. https://gcc.gnu.org/lists.html
+   12. https://www.fsf.org/
+   13. https://gcc.gnu.org/about.html
+ ======================================================================
+ http://gcc.gnu.org/gcc-14/changes.html
+                              GCC 14 Release Series
+                         Changes, New Features, and Fixes
+ 
+    This page is a "brief" summary of some of the huge number of
+    improvements in GCC 14. You may also want to check out our [1]Porting
+    to GCC 14 page and the [2]full GCC documentation.
+ 
+ Caveats
+ 
+      * C: Support for the GCC extension, a structure containing a C99
+        flexible array member, or a union containing such a structure, is
+        not the last field of another structure, is deprecated. Refer to
+        [3]Zero Length Arrays. Any code relying on this extension should be
+        modifed to ensure that C99 flexible array members only end up at
+        the ends of structures. Please use the warning option
+        [4]-Wflex-array-member-not-at-end to identify all such cases in the
+        source code and modify them.
+      * C: Certain warnings about are now errors, see [5]Porting to GCC 14
+        for details.
+      * [6]-fcf-protection=[full|branch|return|none|check] is refactored,
+        to override -fcf-protection, -fcf-protection=none needs to be added
+        and then with -fcf-protection=xxx.
+      * Support for the ia64*-*- target ports which have been unmaintained
+        for quite a while has been declared obsolete in GCC 14. The next
+        release of GCC will have their sources permanently removed.
+      * Support for the nios2*-*- target ports has also been declared
+        obsolete in GCC 14, and the sources will also be removed in the
+        next release of GCC.
+      * [7]-fanalyzer is still only suitable for analyzing C code. In
+        particular, using it on C++ is unlikely to give meaningful output.
+ 
+ General Improvements
+ 
+      * For offload-device code generated via OpenMP and OpenACC, the math
+        and the Fortran runtime libraries will now automatically be linked,
+        when the user or compiler links them on the host side. Thus, it is
+        no longer required to explicitly pass -lm and/or -lgfortran to the
+        offload-device linker using the [8]-foffload-options= flag.
+      * New configure options: --enable-host-pie, to build the compiler
+        executables as PIE; and --enable-host-bind-now, to link the
+        compiler executables with -Wl,-z,now in order to enable additional
+        hardening.
+      * New option [9]-fhardened, an umbrella option that enables a set of
+        hardening flags. The options it enables can be displayed using the
+        --help=hardened option.
+      * New option [10]-fharden-control-flow-redundancy, to verify, at the
+        end of functions, that the visited basic blocks correspond to a
+        legitimate execution path, so as to detect and prevent attacks that
+        transfer control into the middle of functions.
+      * New type attribute [11]hardbool, for C and Ada. Hardened booleans
+        take user-specified representations for true and false, presumably
+        with higher hamming distance than standard booleans, and get
+        verified at every use, detecting memory corruption and some
+        malicious attacks.
+      * New type attribute [12]strub to control stack scrubbing properties
+        of functions and variables. The stack frame used by functions
+        marked with the attribute gets zeroed-out upon returning or
+        exception escaping. Scalar variables marked with the attribute
+        cause functions contaning or accessing them to get stack scrubbing
+        enabled implicitly.
+      * New option [13]-finline-stringops, to force inline expansion of
+        memcmp, memcpy, memmove and memset, even when that is not an
+        optimization, to avoid relying on library implementations.
+      * New function attribute [14]null_terminated_string_arg(PARAM_IDX)
+        for indicating parameters that are expected to be null-terminated
+        strings.
+      * The vectorizer now supports vectorizing loops which contain any
+        number of early breaks. This means loops such as:
+             int z[100], y[100], x[100];
+             int foo (int n)
+             {
+               int res = 0;
+               for (int i = 0; i < n; i++)
+                 {
+                    y[i] = x[i] * 2;
+                    res += x[i] + y[i];
+ 
+                    if (x[i] > 5)
+                      break;
+ 
+                    if (z[i] > 5)
+                      break;
+ 
+                 }
+               return res;
+             }
+ 
+        can now be vectorized on a number of targets. In this first version
+        any input data sources must either have a statically known size at
+        compile time or the vectorizer must be able to determine based on
+        auxillary information that the accesses are aligned.
+ 
+ New Languages and Language specific improvements
+ 
+      * [15]OpenMP
+           + The [16]GNU Offloading and Multi Processing Runtime Library
+             Manual has been updated and extended, improving especially the
+             description of ICVs, memory allocation, environment variables
+             and OpenMP routines.
+           + The requires directive's unified_address requirement is now
+             fulfilled by both AMD GCN and nvptx devices. AMD GCN and nvptx
+             devices now support low-latency allocators as [17]detailed in
+             the manual. Initial support for pinned-memory allocators has
+             been added and, on Linux, [18]libnuma is now used for
+             allocators requesting the nearest-partition trait (both is
+             described in the [19]memory allocation section of the manual).
+           + OpenMP 5.0: The allocate directive is now supported for stack
+             variables in C and Fortran, including the OpenMP 5.1 align
+             modifier. In C and C++ the map clause now accepts lvalue
+             expressions. For Fortran, OpenMP allocators can now be used
+             for allocatables and pointers using the allocate directive and
+             its OpenMP 5.2 replacement, the allocators directive; files
+             using this allocator and all files that might directly or
+             indirectly (intrinisic assignment, intent(out), ...) de- or
+             reallocate such-allocated variables must be compiled with the
+             [20]-fopenmp-allocators option.
+           + OpenMP 5.1: Support was added for collapsing imperfectly
+             nested loops and using present as map-type modifier and in
+             defaultmap. The indirect clause is now supported. The
+             performance of copying strided data from or to nvptx and AMD
+             GPU devices using the OpenMP 5.1 routine
+             omp_target_memcpy_rect has been improved.
+           + OpenMP 5.2: The OMP_TARGET_OFFLOAD=mandatory handling has been
+             updated for the clarifications and changes of the 5.2
+             specification. For Fortran, the list of directives permitted
+             in Fortran pure procedures was extended. Additionally, the
+             spec change has been implemented for default implicit mapping
+             of C/C++ pointers pointing to unmapped storage. The destroy
+             clause now optionally accepts the depend object as argument.
+           + OpenMP 6.0 preview (TR11/TR12): The decl attribute is now
+             supported in C++ 11 and the directive, sequence and decl
+             attributes are now supported in C 23.
+      * [21]OpenACC
+           + OpenACC 2.7: The self clause was added to be used on compute
+             constructs and the default clause for data constructs.
+             Additionally, the readonly modifier is now handled in the
+             copyin clause and cache directive.
+           + OpenACC 3.2: The following API routines are now available in
+             Fortran using the openacc module or the openacc_lib.h header
+             file: acc_malloc, acc_free, acc_map_data, acc_unmap_data,
+             acc_deviceptr, acc_hostptr, acc_memcpy_to_device,
+             acc_memcpy_to_device_async, acc_memcpy_from_device, and
+             acc_memcpy_from_device_async.
+ 
+   Ada
+ 
+      * New implementation-defined aspects and pragmas:
+           + [22]Local_Restrictions, which specifies that a particular
+             subprogram does not violate one or more local restrictions,
+             nor can it call a subprogram that is not subject to the same
+             requirements.
+           + [23]User_Aspect_Definition and [24]User_Aspect, which provide
+             a mechanism for avoiding textual duplication if some set of
+             aspect specifications is needed in multiple places.
+      * New implementation-defined aspects and pragmas for verification of
+        the SPARK 2014 subset of Ada:
+           + [25]Always_Terminates, which provides a condition for a
+             subprogram to necessarily complete (either return normally or
+             raise an exception).
+           + [26]Ghost_Predicate, which introduces a subtype predicate that
+             can reference Ghost entities.
+           + [27]Exceptional_Cases, which lists exceptions that might be
+             propagated by the subprogram with side effects in the context
+             of its precondition and associates them with a specific
+             postcondition.
+           + [28]Side_Effects, which indicates that a function should be
+             handled like a procedure with respect to parameter modes,
+             Global contract, exceptional contract and termination: it may
+             have output parameters, write global variables, raise
+             exceptions and not terminate.
+      * The new attributes and contracts have been applied to the relevant
+        parts of the Ada runtime library, which has been subsequently
+        proven to be correct with SPARK 2014.
+      * Support for the LoongArch architecture.
+      * Support for vxWorks 7 Cert RTP has been removed.
+      * Additional hardening improvements. For more information reltated to
+        hardening options, refer to the [29]GCC Instrumentation Options and
+        the [30]GNAT Reference Manual, Security and Hardening Features.
+      * Improve style checking for redundant parentheses with [31]-gnatyz
+      * New switch [32]-gnateH to force reverse Bit_Order threshold to 64.
+      * Experimental features:
+           + [33]Storage Model: this feature proposes to redesign the
+             concepts of Storage Pools into a more efficient model allowing
+             higher performances and easier integration with low footprint
+             embedded run-times.
+           + [34]String Interpolation: allows for easier string formatting.
+      * Further clean up and improvements to the GNAT code.
+ 
+   C family
+ 
+      * The Clang language extensions __has_feature and __has_extension
+        have been implemented in GCC. These are available from C, C++, and
+        Objective-C(++). This is primarily intended to aid the portability
+        of code written against Clang.
+ 
+   C
+ 
+      * Some more C23 features have been implemented:
+           + Bit-precise integer types (_BitInt (N) and unsigned _BitInt
+             (N)): integer types with a specified number of bits. These are
+             only supported on IA-32, x86-64 and AArch64 at present.
+           + Structure, union and enumeration types may be defined more
+             than once in the same scope with the same contents and the
+             same tag; if such types are defined with the same contents and
+             the same tag in different scopes, the types are compatible.
+           + The <stdckdint.h> header for checked integer arithmetic.
+      * In addition to those C23 features, there are new command-line
+        options -std=c23, -std=gnu23 and -Wc11-c23-compat. These are
+        equivalent to the previous options -std=c2x, -std=gnu2x and
+        -Wc11-c2x-compat, which are deprecated but remain supported.
+      * GCC supports a new pragma #pragma GCC novector to indicate to the
+        vectorizer not to vectorize the loop annotated with the pragma.
+ 
+   C++
+ 
+      * Several C++26 features have been implemented:
+           + [35]P1854R4, Making non-encodable string literals ill-formed
+             ([36]PR110341)
+           + [37]P2752R3, Static storage for braced initializers
+             ([38]PR110346)
+           + [39]P2361R6, Unevaluated strings ([40]PR110342)
+           + [41]P2738R1, constexpr cast from void* ([42]PR110344)
+           + [43]P2741R3, User-generated static_assert messages
+             ([44]PR110348)
+           + [45]P2169R4, Placeholder variables with no name ([46]PR110349)
+           + [47]P2864R2, Removing deprecated arithmetic conversion on
+             enumerations
+           + [48]P2748R5, Disallow binding a returned reference to a
+             temporary ([49]PR114455)
+           + [50]P2809R3, Trivial infinite loops are not undefined behavior
+             ([51]PR114462)
+      * Several C++23 features have been implemented:
+           + [52]P0847R7, Deducing this ([53]PR102609)
+           + [54]P2280R4, Using unknown references in constant expressions
+             ([55]PR106650)
+           + [56]P2564R3, consteval needs to propagate up ([57]PR107687)
+           + [58]P2582R1, Class template argument deduction from inherited
+             constructors ([59]PR106653)
+      * Several C++ Defect Reports have been resolved, e.g.:
+           + [60]DR 532, Member/nonmember operator template partial
+             ordering
+           + [61]DR 976, Deduction for const T& conversion operators
+           + [62]DR 2262, Attributes for asm-definition
+           + [63]DR 2359, Unintended copy initialization with designated
+             initializers
+           + [64]DR 2386, tuple_size requirements for structured binding
+           + [65]DR 2406, [[fallthrough]] attribute and iteration
+             statements
+           + [66]DR 2543, constinit and optimized dynamic initialization
+           + [67]DR 2586, Explicit object parameter for assignment and
+             comparison
+           + [68]DR 2735, List-initialization and conversions in overload
+             resolution
+           + [69]DR 2799, Inheriting default constructors
+      * When a diagnostic occurrs involving a C++ template, GCC will now
+        quote the source code of the context at which the template is
+        instantiated ("required from here"), rather than just print
+        filename and line/column numbers.
+      * New built-in __type_pack_element to speed up traits such as
+        std::tuple_element ([70]PR100157)
+      * goto can cross the initialization of a trivially initialized object
+        with a non-trivial destructor ([71]DR 2256)
+      * -Wdangling-reference false positives have been reduced. The warning
+        does not warn about std::span-like classes; there is also a new
+        attribute gnu::no_dangling to suppress the warning. See [72]the
+        manual for more info.
+      * noexcept(expr) is now mangled as per the Itanium ABI
+      * the named return value optimization can now be performed even for
+        variables declared in an inner block of a function, see the
+        [73]test
+      * New -Wnrvo warning, to warn if the named return value optimization
+        is not performed although it is allowed by [class.copy.elision].
+        See [74]the manual for more info.
+      * The backing array for std::initializer_list has been made static,
+        allowing combining multiple equivalent initializer-lists ([75]git)
+      * New -Welaborated-enum-base warning, to warn if an additional
+        enum-base is used in an elaborated-type-specifier
+      * Better #include hints for missing headers ([76]PR110164)
+      * The arguments of a variable template-id are coerced earlier than
+        before, so various problems are detected earlier ([77]PR89442)
+      * -Wmissing-field-initializers is no longer emitted for empty classes
+        ([78]PR110064)
+      * The constexpr code now tracks lifetimes in constant evaluation;
+        this change helps to detect bugs such as accessing a variable whose
+        lifetime has ended ([79]PR70331, [80]PR96630, [81]PR98675)
+      * Array destruction can now be devirtualized
+      * In-class member variable template partial specializations are now
+        accepted ([82]PR71954)
+      * Improved diagnostic for explicit conversion functions: when a
+        conversion doesn't work out only because the conversion function
+        necessary to do the conversion couldn't be used because it was
+        marked explicit, explain that to the user ([83]git)
+      * Corrected mangling of static/thread_local structured bindings at
+        function/block scope ([84]PR111069)
+      * [basic.scope.block]/2 violations are detected even in compound-stmt
+        of function-try-block and for block-scope external variables
+        ([85]PR52953)
+      * Improved "not a constant expression" diagnostic when taking the
+        address of a non-static constexpr variable ([86]PR91483)
+      * Non-dependent simple assignments are checked even in templates
+        ([87]PR18474)
+      * Attributes hot and cold can be applied to classes as well. See
+        [88]the manual for more info.
+      * Function template constraints, as well as CTAD placeholders, are
+        now mangled
+      * Various decltype fixes: [89]PR79620, [90]PR79378, [91]PR83167,
+        [92]PR96917
+      * New option -fdiagnostics-all-candidates to note all candidates
+        during overload resolution failure
+      * -Walloc-size and -Wcalloc-transposed-args warnings are enabled for
+        C++ as well
+      * The DR 2237 code no longer gives an error, it emits a
+        -Wtemplate-id-cdtor warning instead
+      * GCC supports a new pragma #pragma GCC novector to indicate to the
+        vectorizer not to vectorize the loop annotated with the pragma.
+ 
+     Runtime Library (libstdc++)
+ 
+      * The libstdc++exp.a library now includes all the Filesystem TS
+        symbols from the libstdc++fs.a library. The experimental symbols
+        for the C++23 std::stacktrace class are also in libstdc++exp.a,
+        replacing the libstdc++_libbacktrace.a library that GCC 13
+        provides. This means that -lstdc++exp is the only library needed
+        for all experimental libstdc++ features.
+      * Improved experimental support for C++20, including:
+           + std::chrono::parse.
+           + Unicode-aware string handling in std::format.
+      * Improved experimental support for C++23, including:
+           + The std::ranges::to function for converting ranges to
+             containers.
+           + The std::generator view for getting results from coroutines.
+           + The <stacktrace> header is supported by default.
+           + std::print and std::println (requires linking with -lstdc++exp
+             on Windows).
+           + Formatters for std::thread::id and std::stacktrace.
+           + Smart pointer adaptors, std::out_ptr and std::inout_ptr.
+           + Some range adaptors now support move-only types.
+      * Experimental support for C++26, including:
+           + Native handles for filebuf, fstream, etc.
+           + Functions for saturation arithmetic on integers.
+           + std::to_string now uses std::format.
+           + Enhanced formatting of pointers with std::format.
+           + The std::runtime_format function to allow using non-literal
+             format strings with std::format.
+           + Testable result types for <charconv> functions.
+           + The std::text_encoding class for identifying character sets
+             (requires linking with -lstdc++exp for some member functions).
+      * Faster numeric conversions using std::to_string and
+        std::to_wstring.
+      * Updated parallel algorithms that are compatible with oneTBB.
+      * std::numeric_limits<_Float32> and std::numeric_limits<_Float64> are
+        now defined for all standard modes, not only for C++23.
+      * Added missing functions for float and long double to <cmath>.
+      * Using the std::setfill manipulator with std::istream is deprecated.
+ 
+   Fortran
+ 
+      * The compiler now accepts the -std=f2023 option, which has been
+        added in preparation of support of Fortran 2023. This option
+        increases the line-length limit for source in free-form to 10000,
+        and statements may have up to 1 million characters.
+      * With the -save-temps option, preprocessed files with the .fii
+        extension will be generated from free-form source files such as
+        .F90 and .fi from fixed-form files such as .F.
+ 
+   Modula-2
+ 
+      * The automatic dependency generation options: -M, -MD, -MF, -MMD,
+        -MP, -MQ and -MT have been implemented in the compiler.
+      * The -Wcase-enum and -Wuninit-variable-checking= options have been
+        implemented to provide compile time warnings against missing case
+        clauses and uninitialized variables respectively.
+ 
+ libgccjit
+ 
+      * The libgccjit API gained 6 new entry points:
+           + [93]gcc_jit_type_get_restrict for adding restrict to types
+             ([94]LIBGCCJIT_ABI_25).
+           + 4 functions for setting attributes on functions and variables
+             ([95]LIBGCCJIT_ABI_26):
+                o gcc_jit_function_add_attribute
+                o gcc_jit_function_add_string_attribute
+                o gcc_jit_function_add_integer_array_attribute
+                o gcc_jit_lvalue_add_string_attribute
+           + [96]gcc_jit_context_new_sizeof for accessing the size of a
+             type ([97]LIBGCCJIT_ABI_27).
+ 
+ New Targets and Target Specific Improvements
+ 
+   AArch64
+ 
+      * A number of new CPUs are supported through the -mcpu and -mtune
+        options (GCC identifiers in parentheses).
+           + Ampere-1B (ampere1b).
+           + Arm Cortex-A520 (cortex-a520).
+           + Arm Cortex-A720 (cortex-a720).
+           + Arm Cortex-X4 (cortex-x4).
+           + Microsoft Cobalt-100 (cobalt-100).
+      * Additionally, the identifiers generic, generic-armv8-a and
+        generic-armv9-a are added as arguments to -mcpu= and -mtune= to
+        optimize code generation aimed at a good blend of CPUs of a
+        particular architecture version. These tunings are also used as the
+        default optimization targets when compiling with the -march=armv8-a
+        or -march=armv9-a options and their point releases e.g.
+        -march=armv8.2-a or -march=armv9.3-a.
+      * New features in the Arm architecture are supported in a number of
+        ways:
+           + Support is added for the Arm Streaming Matrix Extensions SME
+             and SME2 through the +sme and +sme2 extensions to -march=. In
+             particular, this includes support for the Beta state of the
+             [98]SME ACLE in the form of a new intrinsics arm_sme.h
+             intrinsics header and a number of new keyword attributes to
+             manage use of the new Streaming SVE state. For more
+             information please refer to the ACLE documentation.
+           + Libatomic is updated to implement 128-bit atomic operations
+             locklessly on systems with FEAT_LSE2.
+           + Support for FEAT_LRCPC3 is added through ACLE intrinsics in
+             arm_neon.h header and enabled through the +rcpc3 extension to
+             -march=.
+      * As well as numerous AArch64 code generation improvements, the
+        following optimization enhancements are noteworthy:
+           + A new AArch64-specific register allocation pass is added. It
+             runs in addition to standard register allocation. The pass's
+             main purpose is to make use of strided vector register
+             operands in SME instructions. However, it can also remove
+             redundant moves in normal Advanced SIMD and SVE code. The pass
+             is controlled by the new option -mearly-ra= that takes the
+             arguments all, strided, none. -mearly-ra=all is enabled by
+             default at optimization levels -O2 and above.
+           + A new optimization pass to fuse loads and stores to adjacent
+             memory locations into load and store-pair AArch64
+             instructions. The pass is enabled by default when compiling
+             with optimization and runs twice in the optimization pipeline:
+             before and after register allocation. This can be controlled
+             with the options -mearly-ldp-fusion and -mlate-ldp-fusion.
+      * Conformance with the ACLE specification is improved and a number of
+        features aimed at helping developers deploy Arm architecture
+        features are added:
+           + Support for the Beta version of the [99]Function
+             Multiversioning Specification. This feature provides
+             facilities to annotate functions with attributes that allow
+             the compiler to generate multiple versions of the function,
+             selected at runtime based on the architecture features
+             available in the system. Please refer to the ACLE
+             specification for more details.
+           + Support for more ACLE intrinsics in the arm_acle.h header,
+             including the [100]Memory prefetch intrinsics and the
+             [101]Special register intrinsics. This also includes
+             intrinsics for the extension to 128-bit system registers,
+             enabled through the +d128 extension to -march=.
+           + Intrinsics enabled by the +dotprod, +fp16, +fp16fml, +i8mm,
+             +sha3 and +sm4 extensions to -march= no longer require
+             -march=armv8.2-a or higher to be specified. Likewise, the
+             intrinsics enabled by +memtag no longer require
+             -march=armv8.5-a.
+           + Support for the [102]NEON-SVE Bridge intrinsics. These are
+             intrinsics that allow conversions between NEON and SVE
+             vectors, enabled through the inclusion of the
+             arm_neon_sve_bridge.h header.
+      * The option -mtp= is now supported for changing the TPIDR register
+        used for TLS accesses. For more details please refer to the
+        [103]documentation.
+ 
+   AMD Radeon (GCN)
+ 
+      * Initial support for the AMD Radeon gfx90c (GCN5), gfx1030, gfx1036
+        (RDNA2), gfx1100 and gfx1103 (RDNA3) devices has been added. LLVM
+        15+ (assembler and linker) is [104]required to support GFX11.
+      * Improved register usage and performance on CDNA Instinct MI100 and
+        MI200 series devices.
+      * The default device architecture is now gfx900 (Vega).
+      * Fiji (gfx803) device support is now deprecated and will be removed
+        from a future release. The default compiler configuration no longer
+        uses Fiji as the default device, and no longer includes the Fiji
+        libraries. Both can be restored by configuring with
+        [105]--with-arch=fiji .
+ 
+   arm
+ 
+      * The Cortex-M52 CPU is now supported through the cortex-m52 argument
+        to the -mcpu and -mtune options.
+ 
+   AVR
+ 
+      * On AVR64* and AVR128* devices, read-only data is now located in
+        program memory per default and no longer in RAM.
+           + Only a 32 KiB block of program memory can be used to store and
+             access .rodata in that way. Which block is used can be
+             selected by defining the symbol __flmap. As an alternative,
+             the byte address of the block can be specified by the symbol
+             __RODATA_FLASH_START__ which takes precedence over __flmap.
+             For example, linking with
+             -Wl,--defsym,__RODATA_FLASH_START__=32k chooses the second
+             32 KiB block.
+           + The default uses the last 32 KiB block, which is also the
+             hardware default for bit-field NVMCTRL_CTRLB.FLMAP.
+           + When a non-default block is used, then NVMCTRL_CTRLB.FLMAP
+             must be initialized accordingly by hand, or AVR-LibC v2.2 that
+             implements [106]#931 can be used. The latter initializes
+             NVMCTRL_CTRLB.FLMAP in the startup code and according to the
+             value of __flmap or __RODATA_FLASH_START__.
+           + When AVR-LibC with #931 is used, then defining the symbol
+             __flmap_lock to a non-zero value will set bit
+             NVMCTRL_CTRLB.FLMAPLOCK. This will protect NVMCTRL_CTRLB.FLMAP
+             from any further changes — which would be Undefined Behaviour
+             in C/C++. If you prefer to define the symbol in a C/C++ file,
+             an asm statement can be used:
+ __asm (".global __flmap_lock"  "\n\t"
+        "__flmap_lock = 1");
+           + When you do not want the code from #931, then define a global
+             symbol __do_flmap_init and the linker will not pull in that
+             code from libmcu.a any more.
+           + In order to return to the old placement of read-only data in
+             RAM, the new compiler option -mrodata-in-ram can be used. This
+             is required on devices where the hardware revision is affected
+             by a silicon bug concerning the FLMAP functionality.
+           + Read-only data is located in output section .rodata, whereas
+             it is part of .text when located in RAM.
+           + The feature is only available when the compiler is configured
+             with a version of Binutils that implements [107]PR31124, which
+             is the case for Binutils v2.42 and up.
+           + The implementation consists of two parts:
+               1. Binutils support new emulations avrxmega2_flmap and
+                  avrxmega4_flmap. The sole purpose of these emulations is
+                  to provide adjusted default linker description files.
+                  Apart from that, these emulations behave exactly the same
+                  like avrxmega2 resp. avrxmega4.
+               2. The compiler uses a [108]device-specs file which links
+                  the program with -mavrxmega2_flmap or -mavrxmega2
+                  depending on -m[no-]rodata-in-ram; and similar for
+                  -mavrxmega4[_flmap].
+             This means the feature can be used with older compiler or
+             Binutils versions; all what's needed is an adjusted linker
+             script and a custom device-specs file.
+      * A new compiler option -m[no-]rodata-in-ram has been added. The
+        default is to locate read-only data in program memory for devices
+        that support it, e.g. for AVR64* and AVR128* devices as explained
+        above, and for devices from the [109]avrxmega3 and [110]avrtiny
+        families.
+      * The new built-in macro __AVR_RODATA_IN_RAM__ is supported on all
+        devices. It's defined to 0 or 1.
+      * A new optimization tries to improve code generation for indirect
+        memory accesses on [111]Reduced Tiny devices. It can be controlled
+        by the new compiler option -mfuse-add=level where level may be 0, 1
+        or 2.
+      * On the Reduced Tiny devices, the meaning of register constraint "w"
+        has been changed. It now constrains the registers R24…R31 as is the
+        case for all the other devices.
+ 
+   IA-32/x86-64
+ 
+      * New compiler option -m[no-]evex512 was added. The compiler switch
+        enables/disables 512-bit vector. It will be default on if AVX512F
+        is enabled.
+      * Part of new feature support for Intel APX was added, including
+        EGPR, NDD, PPX and PUSH2POP2. APX support is available via the
+        -mapxf compiler switch.
+      * For inline asm support with APX, by default the EGPR feature was
+        disabled to prevent potential illegal instruction with EGPR occurs.
+        To invoke egpr usage in inline asm, use new compiler option
+        -mapx-inline-asm-use-gpr32 and user should ensure the instruction
+        supports EGPR.
+      * New ISA extension support for Intel AVX10.1 was added. AVX10.1
+        intrinsics are available via the -mavx10.1 or -mavx10.1-256
+        compiler switch with 256-bit vector size support. 512-bit vector
+        size support for AVX10.1 intrinsics are available via the
+        -mavx10.1-512 compiler switch.
+      * New ISA extension support for Intel AVX-VNNI-INT16 was added.
+        AVX-VNNI-INT16 intrinsics are available via the -mavxvnniint16
+        compiler switch.
+      * New ISA extension support for Intel SHA512 was added. SHA512
+        intrinsics are available via the -msha512 compiler switch.
+      * New ISA extension support for Intel SM3 was added. SM3 intrinsics
+        are available via the -msm3 compiler switch.
+      * New ISA extension support for Intel SM4 was added. SM4 intrinsics
+        are available via the -msm4 compiler switch.
+      * New ISA extension support for Intel USER_MSR was added. USER_MSR
+        intrinsics are available via the -muser_msr compiler switch.
+      * GCC now supports the Intel CPU named Clearwater Forest through
+        -march=clearwaterforest. Based on Sierra Forest, the switch further
+        enables the AVX-VNNI-INT16, PREFETCHI, SHA512, SM3, SM4 and
+        USER_MSR ISA extensions.
+      * GCC now supports the Intel CPU named Arrow Lake through
+        -march=arrowlake. Based on Alder Lake, the switch further enables
+        the AVX-IFMA, AVX-NE-CONVERT, AVX-VNNI-INT8 and CMPccXADD ISA
+        extensions.
+      * GCC now supports the Intel CPU named Arrow Lake S through
+        -march=arrowlake-s. Based on Arrow Lake, the switch further enables
+        the AVX-VNNI-INT16, SHA512, SM3 and SM4 ISA extensions.
+      * GCC now supports the Intel CPU named Lunar Lake through
+        -march=lunarlake. Lunar Lake is based on Arrow Lake S.
+      * GCC now supports the Intel CPU named Panther Lake through
+        -march=pantherlake. Based on Arrow Lake S, the switch further
+        enables the PREFETCHI ISA extensions.
+      * Xeon Phi CPUs support (a.k.a. Knight Landing and Knight Mill) are
+        marked as deprecated. GCC will emit a warning when using the
+        -mavx5124fmaps, -mavx5124vnniw, -mavx512er, -mavx512pf,
+        -mprefetchwt1, -march=knl, -march=knm, -mtune=knl or -mtune=knm
+        compiler switches. Support will be removed in GCC 15.
+      * [112]Hardware-assisted AddressSanitizer now works for the x86-64
+        target with LAM_U57. -fsanitize=hwaddress will enable -mlam=u57 by
+        default.
+      * GCC now supports AMD CPUs based on the znver5 core via
+        -march=znver5. In addition to the ISA extensions enabled on a
+        znver4 core, this switch further enables the AVX512VP2INTERSECT,
+        AVXVNNI, MOVDIR64B, MOVDIRI, and PREFETCHI ISA extensions.
+ 
+   MCore
+ 
+      * Bitfields are now signed by default per GCC policy. If you need
+        bitfields to be unsigned, use -funsigned-bitfields.
+ 
+   LoongArch
+ 
+      * Support for the following [113]-march parameters has been added:
+           + la64v1.0
+           + la64v1.1
+           + la664
+        It is now recommended to use -march=la64v1.0 as the only compiler
+        option to describe the target ISA when building binaries for
+        distribution. For more information on LoongArch ISA versions, see
+        [114]Toolchain Conventions of the LoongArch™ Architecture.
+      * Support for the following [115]-mtune parameters has been added:
+           + generic
+           + la664
+      * New ISA Extension
+           + LSX (Loongson SIMD Extension): Support 128-bit vector
+             instructions and the intrinsics.
+           + LASX (Loongson Advanced SIMD Extension): Support 256-bit
+             vector instructions and the intrinsics.
+           + FRECIPE: Support frecipe.{s/d} and frsqrte.{s/d} instructions
+             and the intrinsics.
+           + DIV32: Support div.w[u] and mod.w[u] instructions with inputs
+             not sign-extended.
+           + LAM_BH: Support am{swap/add}[_db].{b/h} instructions.
+           + LAMCAS: Support amcas[_db].{b/h/w/d} instructions.
+      * New Built-in Macros
+           + __loongarch_arch: Target ISA preset as specified by -march=.
+             For example, compiling with -march=la64v1.0, the value of
+             __loongarch_arch is "la64v1.0".
+           + __loongarch_tune: Processor model as specified by -mtune or
+             its default value.
+           + __loongarch_{simd,sx,asx}: These macros are not defined, or
+             defined as 1.
+           + __loongarch_simd_width: The maximum SIMD bit-width enabled by
+             the compiler. (128 for lsx, and 256 for lasx).
+           + __loongarch_frecipe: It's defined to 1 or undefined.
+           + __loongarch_div32: It's defined to 1 or undefined.
+           + __loongarch_lam_bh: It's defined to 1 or undefined.
+           + __loongarch_lamcas: It's defined to 1 or undefined.
+           + __loongarch_ld_seq_sa: It's defined to 1 or undefined.
+           + __loongarch_version_major: The minimally required LoongArch
+             ISA version (major) to run the compiled program, defined to 1
+             or undefined (iff no such version is known to the compiler).
+           + __loongarch_version_minor: The minimally required LoongArch
+             ISA version (minor) to run the compiled program, defined to 0
+             1 or undefined (iff __loongarch_version_major is undefined).
+           + __FLOAT128_TYPE: It's defined to 1.
+      * New Intrinsics
+           + [116]__builtin_thread_pointer
+           + [117]__lsx_*
+           + [118]__lasx_*
+           + [119]__frecipe_{s/d} and __frsqrte_{s/d}
+      * New Compiler Option
+           + [120]-m[no-]lsx
+           + [121]-m[no-]lasx
+           + [122]-m[no-]frecipe
+           + [123]-m[no-]div32
+           + [124]-m[no-]lam-bh
+           + [125]-m[no-]lamcas
+           + [126]-m[no-]ld-seq-sa
+           + [127]-mrecip=
+           + [128]-m[no-]recip
+           + [129]-mexplicit-relocs={none,always,auto}
+           + [130]-m[no-]relax
+           + [131]-m[no-]pass-mrelax-to-as
+           + [132]-mtls-dialect={trad,desc}
+      * Support for Ada and D.
+      * Support for libffi.
+      * Enable -free by default at -O2 or higher.
+      * Enable -fsched-pressure by default at -O1 or higher.
+      * Support the extreme code model using macro instructions (under
+        -mno-explicit-relocs).
+      * Support call36.
+      * Optimizing built-in functions for memory-model-aware atomic
+        operations using hierarchical dbar instructions.
+      * TLS descriptors support. It is not enabled by default, and can be
+        enabled with [133]-mtls-dialect=desc. The default behavior can be
+        configured with --with-tls=[trad|desc].
+ 
+   RISC-V
+ 
+      * The SLP and loop vectorizer are now enabled for RISC-V when the
+        vector extension is enabled, thanks to Ju-Zhe Zhong from
+        [134]RiVAI, Pan Li from [135]Intel, and Robin Dapp from
+        [136]Ventana Micro for contributing most of the implementation!
+      * The -mrvv-max-lmul= option has been introduced for performance
+        tuning of the loop vectorizer. The default value is
+        -mrvv-max-lmul=m1, which limits the maximum LMUL to 1. The
+        -mrvv-max-lmul=dynamic setting can dynamically select the maximum
+        LMUL value based on register pressure.
+      * Atomic code generation has been improved and is now in conformance
+        with the latest psABI specification, thanks to Patrick O'Neill from
+        [137]Rivos.
+      * Support for the vector intrinsics as specified in [138]version 1.0
+        of the RISC-V vector intrinsic specification.
+      * Support for the experimental vector crypto intrinsics as specified
+        in [139]RISC-V vector intrinsic specification, thanks to Feng Wang
+        et al. from [140]ESWIN Computing
+      * Support for the T-head vector intrinsics.
+      * Support for the scalar bitmanip and scalar crypto intrinsics,
+        thanks to Liao Shihua from [141]PLCT.
+      * Support for the large code model via option -mcmodel=large, thanks
+        to Kuan-Lin Chen from [142]Andes Technology.
+      * Support for the standard vector calling convention variant, thanks
+        to Lehua Ding from [143]RiVAI.
+      * Supports the target attribute, which allows users to compile a
+        function with specific extensions.
+      * -march= option no longer requires the architecture string to be in
+        canonical order, with only a few constraints remaining: the
+        architecture string must start with rv[32|64][i|g|e], and must use
+        an underscore as the separator after a multi-letter extension.
+      * -march=help option has been introduced to dump all supported
+        extensions.
+      * Added experimental support for the -mrvv-vector-bits=zvl option and
+        the riscv_rvv_vector_bits attribute, which specify a fixed length
+        for scalable vector types. This option is optimized for specific
+        vector core implementations; however, the code generated with this
+        option is NOT portable between the core with different VLEN, thanks
+        to Pan Li from [144]Intel.
+      * Support for TLS descriptors has been introduced, which can be
+        enabled by the -mtls-dialect=desc option. The default behavior can
+        be configured with --with-tls=[trad|desc].
+      * Support for the TLS descriptors, this can be enabled by
+        -mtls-dialect=desc and the default behavior can be configure by
+        --with-tls=[trad|desc], and this feature require glibc 2.40, thanks
+        to Tatsuyuki Ishi from [145]Blue Whale Systems
+      * Support for the following standard extensions has been added:
+           + Vector crypto extensions:
+                o Zvbb
+                o Zvkb
+                o Zvbc
+                o Zvkg
+                o Zvkned
+                o Zvkhna
+                o Zvkhnb
+                o Zvksed
+                o Zvksh
+                o Zvkn
+                o Zvknc
+                o Zvkng
+                o Zvks
+                o Zvksc
+                o Zvksg
+                o Zvkt
+           + Code size reduction extensions:
+                o Zca
+                o Zcb
+                o Zce
+                o Zcf
+                o Zcd
+                o Zcmp
+                o Zcmt
+           + Zicond
+           + Zfa
+           + Ztso
+           + Zvfbfmin
+           + Zvfhmin
+           + Zvfh
+           + Za64rs
+           + Za128rs
+           + Ziccif
+           + Ziccrse
+           + Ziccamoa
+           + Zicclsm
+           + Zic64b
+           + Smaia
+           + Smepmp
+           + Smstateen
+           + Ssaia
+           + Sscofpmf
+           + Ssstateen
+           + Sstc
+           + Svinval
+           + Svnapot
+           + Svpbmt
+      * Support for the following vendor extensions has been added:
+           + T-Head:
+                o XTheadVector
+           + CORE-V:
+                o XCVmac
+                o XCValu
+                o XCVelw
+                o XCVsimd
+                o XCVbi
+           + Ventana Micro:
+                o XVentanaCondops
+      * The following new CPUs are supported through the -mcpu option (GCC
+        identifiers in parentheses).
+           + SiFive's X280 (sifive-x280).
+           + SiFive's P450 (sifive-p450).
+           + SiFive's P670 (sifive-p670).
+      * The following new CPUs are supported through the -mtune option (GCC
+        identifiers in parentheses).
+           + Generic out-of-order core (generic-ooo).
+           + SiFive's P400 series (sifive-p400-series).
+           + SiFive's P600 series (sifive-p600-series).
+           + XiangShan's Nanhu microarchitecture (xiangshan-nanhu).
+ 
+   SPARC
+ 
+      * The implementation of calling conventions for small structures
+        containing arrays of floating-point components has been changed in
+        64-bit mode for the Solaris port to match the implementation of the
+        vendor compiler (and the ABI). As a result, the code generated will
+        not be binary compatible with earlier releases in these cases.
+ 
+ Documentation improvements
+ 
+      * GCC's ability to provide clickable hyperlinks to the documentation
+        has been extended, so that whenever GCC refers to a command-line
+        option in quotes in a diagnostic message, the option is a clickable
+        hyperlink (assuming a suitably capable terminal).
+ 
+ Improvements to Static Analyzer
+ 
+      * New warnings:
+           + [146]-Wanalyzer-infinite-loop warns about paths through the
+             code which appear to lead to an infinite loop.
+           + [147]-Wanalyzer-overlapping-buffers warns for paths through
+             the code in which overlapping buffers are passed to an API for
+             which the behavior on such buffers is undefined.
+           + [148]-Wanalyzer-undefined-behavior-strtok warns for paths
+             through the code in which a call is made to strtok with
+             undefined behavior.
+      * Previously, the analyzer's "taint" tracking to be explicitly
+        enabled via [149]-fanalyzer-checker=taint (along with
+        [150]-fanalyzer). This is now enabled by default when
+        [151]-fanalyzer is selected, thus also enabling the 6 taint-based
+        warnings:
+           + [152]-Wanalyzer-tainted-allocation-size
+           + [153]-Wanalyzer-tainted-array-index
+           + [154]-Wanalyzer-tainted-assertion
+           + [155]-Wanalyzer-tainted-divisor
+           + [156]-Wanalyzer-tainted-offset
+           + [157]-Wanalyzer-tainted-size
+      * The analyzer will now simulate API calls that expect
+        null-terminated string arguments, and will warn about code paths in
+        which such a call is made with a buffer that isn't properly
+        terminated, either due to a read of an uninitialized byte or an
+        out-of-range accesses seen before any zero byte is seen. This
+        applies to functions that use the new
+        [158]null_terminated_string_arg(PARAM_IDX) attribute, functions
+        that use the [159]format attribute, and to the library functions
+        error (parameter 3), error_at_line (parameter 5), putenv, strchr
+        (parameter 1), and strcpy (parameter 2).
+      * The analyzer now makes use of the function attribute
+        [160]alloc_size allowing [161]-fanalyzer to emit
+        [162]-Wanalyzer-allocation-size, [163]-Wanalyzer-out-of-bounds, and
+        [164]-Wanalyzer-tainted-allocation-size on execution paths
+        involving allocations using such functions.
+      * The analyzer's knowledge about the behavior of the standard library
+        has been extended to cover fopen, strcat, strncpy, and strstr. The
+        analyzer will also more precisely model the behavior of memcpy,
+        memmove, strcpy, strdup, strlen, and of various atomic built-in
+        functions.
+      * The warning [165]-Wanalyzer-out-of-bounds has been extended so
+        that, where possible, it will emit a text-based diagram visualizing
+        the spatial relationship between
+          1. the memory region that the analyzer predicts would be
+             accessed, versus
+          2. the range of memory that is valid to access
+        whether they overlap, are touching, are close or far apart; which
+        one is before or after in memory, the relative sizes involved, the
+        direction of the access (read vs write), and, in some cases, the
+        values of data involved.
+        Such "text art" diagrams can be controlled (or suppressed) via a
+        new [166]-fdiagnostics-text-art-charset= option.
+        For example, given the out-of-bounds write in strcat in:
+ void test (void)
+ {
+    char buf[10];
+    strcpy (buf, "hello");
+    strcat (buf, " world!");
+ }
+ 
+        it emits:
+                                  ┌────┬────┬────┬────┬────┐┌─────┬─────┬─────┐
+                                  │[0] │[1] │[2] │[3] │[4] ││ [5] │ [6] │ [7] │
+                                  ├────┼────┼────┼────┼────┤├─────┼─────┼─────┤
+                                  │' ' │'w' │'o' │'r' │'l' ││ 'd' │ '!' │ NUL │
+                                  ├────┴────┴────┴────┴────┴┴─────┴─────┴─────┤
+                                  │     string literal (type: 'char[8]')      │
+                                  └───────────────────────────────────────────┘
+                                    │    │    │    │    │      │     │     │
+                                    │    │    │    │    │      │     │     │
+                                    v    v    v    v    v      v     v     v
+       ┌─────┬────────────────────┬────┬──────────────┬────┐┌─────────────────┐
+       │ [0] │        ...         │[5] │     ...      │[9] ││                 │
+       ├─────┼────┬────┬────┬────┬┼────┼──────────────┴────┘│                 │
+       │ 'h' │'e' │'l' │'l' │'o' ││NUL │                    │after valid range│
+       ├─────┴────┴────┴────┴────┴┴────┴───────────────────┐│                 │
+       │             'buf' (type: 'char[10]')              ││                 │
+       └───────────────────────────────────────────────────┘└─────────────────┘
+       ├─────────────────────────┬─────────────────────────┤├────────┬────────┤
+                                 │                                   │
+                       ╭─────────┴────────╮                ╭─────────┴─────────
+ ╮
+                       │capacity: 10 bytes│                │overflow of 3 bytes
+ │
+                       ╰──────────────────╯                ╰───────────────────
+ ╯
+ 
+        showing that the overflow occurs partway through the second string
+        fragment.
+      * The analyzer will now attempt to track execution paths involving
+        computed gotos, whereas previously it gave up on such paths.
+ 
+ Improvements to SARIF support
+ 
+      * The SARIF output from [167]-fdiagnostics-format= now adds
+        indentation and newlines to reflect the logical JSON structure of
+        the data. The previous compact behavior can be restored via the new
+        option [168]-fno-diagnostics-json-formatting. This also applies to
+        the older output format named "json".
+      * If profiling information about the compiler itself is requested via
+        [169]-ftime-report, and a SARIF output format is requested via
+        [170]-fdiagnostics-format=, then the timing and memory usage data
+        is now written in JSON form into the SARIF output, rather than as
+        plain text to stderr.
+ 
+ Improvements for plugin authors
+ 
+      * GCC diagnostics have been able to have execution paths associated
+        with them since GCC 10, but previously these were required to be
+        single-threaded. As of GCC 14, these execution paths can have
+        multipled named threads associated with them, with each event being
+        associated with one of the threads. No existing GCC diagnostics
+        take advantage of this, but GCC plugins may find this useful for
+        their own diagnostics; an [171]example is provided in the
+        testsuite.
+      * GCC's diagnostics can now optionally add per-diagnostic property
+        bags to the SARIF output, allowing plugins to capture custom data
+        as needed with their diagnostics.
+ 
+ GCC 14.1
+ 
+    This is the [172]list of problem reports (PRs) from GCC's bug tracking
+    system that are known to be fixed in the 14.1 release. This list might
+    not be complete (that is, it is possible that some PRs that have been
+    fixed are not listed here).
+ 
+ 
+     For questions related to the use of GCC, please consult these web
+     pages and the [173]GCC manuals. If that fails, the
+     [174]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+     web pages and the development of GCC are welcome on our developer
+     list at [175]gcc@gcc.gnu.org. All of [176]our lists have public
+     archives.
+ 
+    Copyright (C) [177]Free Software Foundation, Inc. Verbatim copying and
+    distribution of this entire article is permitted in any medium,
+    provided this notice is preserved.
+ 
+    These pages are [178]maintained by the GCC team. Last modified
+    2024-05-07.
+ 
+ References
+ 
+    1. https://gcc.gnu.org/gcc-14/porting_to.html
+    2. https://gcc.gnu.org/onlinedocs/index.html#current
+    3. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Zero-Length.html
+    4. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Warning-Options.html#index-Wflex-array-member-not-at-end
+    5. https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors
+    6. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html
+    7. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html
+    8. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C-Dialect-Options.html#index-foffload-options
+    9. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fhardened
+   10. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fharden-control-flow-redundancy
+   11. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Type-Attributes.html#index-hardbool-type-attribute
+   12. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Type-Attributes.html#index-strub-type-attribute
+   13. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Optimize-Options.html#index-finline-stringops
+   14. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-null_005fterminated_005fstring_005farg-function-attribute
+   15. https://gcc.gnu.org/projects/gomp/
+   16. https://gcc.gnu.org/onlinedocs/libgomp/
+   17. https://gcc.gnu.org/onlinedocs/libgomp/Offload-Target-Specifics.html
+   18. https://github.com/numactl/numactl
+   19. https://gcc.gnu.org/onlinedocs/libgomp/Memory-allocation.html
+   20. https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-fopenmp-allocators
+   21. https://gcc.gnu.org/wiki/OpenACC
+   22. https://gcc.gnu.org/onlinedocs/gnat_rm/Aspect-Local_005fRestrictions.html
+   23. https://gcc.gnu.org/onlinedocs/gnat_rm/Pragma-User_005fAspect_005fDefinition.html
+   24. https://gcc.gnu.org/onlinedocs/gnat_rm/Aspect-User_005fAspect.html
+   25. https://gcc.gnu.org/onlinedocs/gnat_rm/Aspect-Always_005fTerminates.html
+   26. https://gcc.gnu.org/onlinedocs/gnat_rm/Aspect-Ghost_005fPredicate.html
+   27. https://gcc.gnu.org/onlinedocs/gnat_rm/Aspect-Exceptional_005fCases.html
+   28. https://gcc.gnu.org/onlinedocs/gnat_rm/Aspect-Side_005fEffects.html
+   29. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#index-fharden-compares
+   30. https://gcc.gnu.org/onlinedocs/gnat_rm/Security-Hardening-Features.html
+   31. https://gcc.gnu.org/onlinedocs/gnat_ugn/Style-Checking.html#index--gnatyz-_0028gcc_0029
+   32. https://gcc.gnu.org/onlinedocs/gnat_ugn/Alphabetical-List-of-All-Switches.html#index--gnateH-_0028gcc_0029
+   33. https://gcc.gnu.org/onlinedocs/gnat_rm/Pragma-Storage_005fModel.html
+   34. https://gcc.gnu.org/onlinedocs/gnat_rm/String-interpolation.html
+   35. https://wg21.link/P1854R4
+   36. https://gcc.gnu.org/PR110341
+   37. https://wg21.link/P2752R3
+   38. https://gcc.gnu.org/PR110346
+   39. https://wg21.link/P2361R6
+   40. https://gcc.gnu.org/PR110342
+   41. https://wg21.link/P2738R1
+   42. https://gcc.gnu.org/PR110344
+   43. https://wg21.link/P2741R3
+   44. https://gcc.gnu.org/PR110348
+   45. https://wg21.link/P2169R4
+   46. https://gcc.gnu.org/PR110349
+   47. https://wg21.link/P2864R2
+   48. https://wg21.link/P2748R5
+   49. https://gcc.gnu.org/PR114455
+   50. https://wg21.link/P2809R3
+   51. https://gcc.gnu.org/PR114462
+   52. https://wg21.link/P0847R7
+   53. https://gcc.gnu.org/PR102609
+   54. https://wg21.link/P2280R4
+   55. https://gcc.gnu.org/PR106650
+   56. https://wg21.link/P2564R3
+   57. https://gcc.gnu.org/PR107687
+   58. https://wg21.link/P2582R1
+   59. https://gcc.gnu.org/PR106653
+   60. https://wg21.link/cwg532
+   61. https://wg21.link/cwg976
+   62. https://wg21.link/cwg2262
+   63. https://wg21.link/cwg2359
+   64. https://wg21.link/cwg2386
+   65. https://wg21.link/cwg2406
+   66. https://wg21.link/cwg2543
+   67. https://wg21.link/cwg2586
+   68. https://wg21.link/cwg2735
+   69. https://wg21.link/cwg2799
+   70. https://gcc.gnu.org/PR100157
+   71. https://cplusplus.github.io/CWG/issues/2256.html
+   72. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
+   73. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/testsuite/g++.dg/opt/nrv23.C;h=9e1253cd830a84ad4de5ff3076a07c543afe344f;hb=7e0b65b239c3a0d68ce94896b236b03de666ffd6
+   74. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Warning-Options.html#index-Wnrvo
+   75. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=4d935f52b0d5c00fcc154461b87415ebd8791a94
+   76. https://gcc.gnu.org/PR110164
+   77. https://gcc.gnu.org/PR89442
+   78. https://gcc.gnu.org/PR110064
+   79. https://gcc.gnu.org/PR70331
+   80. https://gcc.gnu.org/PR96630
+   81. https://gcc.gnu.org/PR98675
+   82. https://gcc.gnu.org/PR71954
+   83. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=85ad41a494e31311f8a6b2dbe930a128c5e85840
+   84. https://gcc.gnu.org/PR111069
+   85. https://gcc.gnu.org/PR52953
+   86. https://gcc.gnu.org/PR91483
+   87. https://gcc.gnu.org/PR18474
+   88. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C_002b_002b-Attributes.html#index-cold-type-attribute
+   89. https://gcc.gnu.org/PR79620
+   90. https://gcc.gnu.org/PR79378
+   91. https://gcc.gnu.org/PR83167
+   92. https://gcc.gnu.org/PR96917
+   93. https://gcc.gnu.org/onlinedocs/jit/topics/types.html#c.gcc_jit_type_get_restrict
+   94. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-25
+   95. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-26
+   96. https://gcc.gnu.org/onlinedocs/jit/topics/expressions.html#c.gcc_jit_context_new_sizeof
+   97. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-27
+   98. https://github.com/ARM-software/acle/blob/main/main/acle.md#sme-language-extensions-and-intrinsics
+   99. https://github.com/ARM-software/acle/blob/main/main/acle.md#function-multi-versioning
+  100. https://github.com/ARM-software/acle/blob/main/main/acle.md#memory-prefetch-intrinsics
+  101. https://github.com/ARM-software/acle/blob/main/main/acle.md#special-register-intrinsics
+  102. https://github.com/ARM-software/acle/blob/main/main/acle.md#neon-sve-bridge
+  103. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AArch64-Options.html
+  104. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
+  105. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
+  106. https://github.com/avrdudes/avr-libc/issues/931
+  107. https://sourceware.org/PR31124
+  108. https://gcc.gnu.org/wiki/avr-gcc#spec-files
+  109. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrxmega3
+  110. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrtiny
+  111. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrtiny
+  112. https://gcc.gnu.org/gcc-11/changes.html
+  113. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-march-7
+  114. https://github.com/loongson/la-toolchain-conventions/
+  115. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtune-8
+  116. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Base-Built-in-Functions.html
+  117. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-SX-Vector-Intrinsics.html
+  118. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-ASX-Vector-Intrinsics.html
+  119. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Base-Built-in-Functions.html
+  120. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-ml_005ba_005dsx
+  121. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-ml_005ba_005dsx
+  122. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mfrecipe
+  123. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mdiv32
+  124. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mlam-bh
+  125. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mlamcas
+  126. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mld-seq-sa
+  127. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrecip_003dopt
+  128. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrecip
+  129. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mexplicit-relocs-1
+  130. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrelax-2
+  131. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mpass-mrelax-to-as
+  132. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtls-dialect-1
+  133. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtls-dialect-1
+  134. https://rivai-ic.com.cn/
+  135. https://www.intel.com/
+  136. https://www.ventanamicro.com/
+  137. https://www.rivosinc.com/
+  138. https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v1.0.x
+  139. https://github.com/riscv-non-isa/rvv-intrinsic-doc/pull/234
+  140. https://eswincomputing.com/
+  141. https://plctlab.org/
+  142. https://www.andestech.com/
+  143. https://rivai-ic.com.cn/
+  144. https://www.intel.com/
+  145. https://bluewhale.systems/
+  146. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-loop
+  147. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-overlapping-buffers
+  148. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-strtok
+  149. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer-checker
+  150. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
+  151. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
+  152. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size
+  153. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-array-index
+  154. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-assertion
+  155. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-divisor
+  156. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-offset
+  157. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size
+  158. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-null_005fterminated_005fstring_005farg-function-attribute
+  159. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-format-function-attribute
+  160. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute
+  161. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer
+  162. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-allocation-size
+  163. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
+  164. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size
+  165. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
+  166. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-text-art-charset
+  167. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
+  168. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fno-diagnostics-json-formatting
+  169. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Developer-Options.html#index-ftime-report
+  170. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
+  171. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3a1e9f3ed7aa49adad02190ace0614e0b37fc089
+  172. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=14.0
+  173. https://gcc.gnu.org/onlinedocs/
+  174. mailto:gcc-help@gcc.gnu.org
+  175. mailto:gcc@gcc.gnu.org
+  176. https://gcc.gnu.org/lists.html
+  177. https://www.fsf.org/
+  178. https://gcc.gnu.org/about.html
+ ======================================================================
  http://gcc.gnu.org/gcc-13/index.html
                               GCC 13 Release Series
  
*************** References and Acknowledgements
*** 29,81 ****
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
-    A list of [5]successful builds is updated as new information becomes
-    available.
- 
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [6]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [7]GCC project
!    web site or contact the [8]GCC development mailing list.
  
!    To obtain GCC please use [9]our mirror sites or [10]our version control
     system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [11]GCC manuals. If that fails, the
!     [12]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [13]gcc@gcc.gnu.org. All of [14]our lists have public
      archives.
  
!    Copyright (C) [15]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [16]maintained by the GCC team. Last modified
!    2023-07-27.
  
  References
  
!    1. http://gcc.gnu.org/gcc-13/changes.html
     2. http://gcc.gnu.org/onlinedocs/13.2.0/
!    3. http://gcc.gnu.org/gcc-13/changes.html
     4. http://gcc.gnu.org/onlinedocs/13.1.0/
!    5. http://gcc.gnu.org/gcc-13/buildstat.html
!    6. http://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Contributors.html
!    7. http://gcc.gnu.org/index.html
!    8. mailto:gcc@gcc.gnu.org
!    9. http://gcc.gnu.org/mirrors.html
!   10. http://gcc.gnu.org/git.html
!   11. https://gcc.gnu.org/onlinedocs/
!   12. mailto:gcc-help@gcc.gnu.org
!   13. mailto:gcc@gcc.gnu.org
!   14. https://gcc.gnu.org/lists.html
!   15. https://www.fsf.org/
!   16. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-13/changes.html
                               GCC 13 Release Series
--- 1241,1289 ----
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [5]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [6]GCC project
!    web site or contact the [7]GCC development mailing list.
  
!    To obtain GCC please use [8]our mirror sites or [9]our version control
     system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [10]GCC manuals. If that fails, the
!     [11]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [12]gcc@gcc.gnu.org. All of [13]our lists have public
      archives.
  
!    Copyright (C) [14]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [15]maintained by the GCC team. Last modified
!    2023-10-15.
  
  References
  
!    1. https://gcc.gnu.org/gcc-13/changes.html
     2. http://gcc.gnu.org/onlinedocs/13.2.0/
!    3. https://gcc.gnu.org/gcc-13/changes.html
     4. http://gcc.gnu.org/onlinedocs/13.1.0/
!    5. http://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Contributors.html
!    6. https://gcc.gnu.org/index.html
!    7. mailto:gcc@gcc.gnu.org
!    8. https://gcc.gnu.org/mirrors.html
!    9. https://gcc.gnu.org/git.html
!   10. https://gcc.gnu.org/onlinedocs/
!   11. mailto:gcc-help@gcc.gnu.org
!   12. mailto:gcc@gcc.gnu.org
!   13. https://gcc.gnu.org/lists.html
!   14. https://www.fsf.org/
!   15. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-13/changes.html
                               GCC 13 Release Series
*************** Caveats
*** 102,113 ****
       * [4]-Warray-bounds=2 will no longer issue warnings for out of bounds
         accesses to trailing struct members of one-element array type
         anymore. Instead it diagnoses accesses to trailing arrays according
!        to -fstrict-flex-arrays.
!      * [5]-fanalyzer is still only suitable for analyzing C code. In
         particular, using it on C++ is unlikely to give meaningful output.
       * In the arm port, support for the iWMMXt extensions, enabled through
         -mcpu=iwmmxt, has been deprecated and will be removed in a future
!        release. This includes support for the [6]iWMMXt built-in
         functions.
       * For C++, construction of the global iostream objects std::cout,
         std::cin, etc. is now done inside the standard library, instead of
--- 1310,1321 ----
       * [4]-Warray-bounds=2 will no longer issue warnings for out of bounds
         accesses to trailing struct members of one-element array type
         anymore. Instead it diagnoses accesses to trailing arrays according
!        to [5]-fstrict-flex-arrays.
!      * [6]-fanalyzer is still only suitable for analyzing C code. In
         particular, using it on C++ is unlikely to give meaningful output.
       * In the arm port, support for the iWMMXt extensions, enabled through
         -mcpu=iwmmxt, has been deprecated and will be removed in a future
!        release. This includes support for the [7]iWMMXt built-in
         functions.
       * For C++, construction of the global iostream objects std::cout,
         std::cin, etc. is now done inside the standard library, instead of
*************** Caveats
*** 115,127 ****
         change improves the start-up performance of C++ programs, but it
         means that code compiled with GCC 13.1 will crash if the correct
         version of libstdc++.so is not used at runtime. See the
!        [7]documentation about using the right libstdc++.so at runtime.
         Future GCC releases will mitigate the problem so that the program
         cannot be run at all with an older libstdc++.so.
  
  General Improvements
  
!      * [8]OpenMP
            + Reverse offload is now supported with AMD GCN and nvptx
              devices. Additionally, the requires handling has been improved
              and all clauses are now accepted. If a requirement cannot be
--- 1323,1335 ----
         change improves the start-up performance of C++ programs, but it
         means that code compiled with GCC 13.1 will crash if the correct
         version of libstdc++.so is not used at runtime. See the
!        [8]documentation about using the right libstdc++.so at runtime.
         Future GCC releases will mitigate the problem so that the program
         cannot be run at all with an older libstdc++.so.
  
  General Improvements
  
!      * [9]OpenMP
            + Reverse offload is now supported with AMD GCN and nvptx
              devices. Additionally, the requires handling has been improved
              and all clauses are now accepted. If a requirement cannot be
*************** General Improvements
*** 152,159 ****
            + The _ALL suffix to the device-scope environment variables
              added in Technical Report (TR11) is already handled.
            + For user defined allocators requesting high bandwidth or large
!             capacity memspaces or interleaved partitioning, the [9]memkind
!             library is used, if available at run time.
       * AddressSanitizer defaults to detect_stack_use_after_return=1 on
         GNU/Linux targets. For compatibility, it can be disabled with env
         ASAN_OPTIONS=detect_stack_use_after_return=0.
--- 1360,1367 ----
            + The _ALL suffix to the device-scope environment variables
              added in Technical Report (TR11) is already handled.
            + For user defined allocators requesting high bandwidth or large
!             capacity memspaces or interleaved partitioning, the
!             [10]memkind library is used, if available at run time.
       * AddressSanitizer defaults to detect_stack_use_after_return=1 on
         GNU/Linux targets. For compatibility, it can be disabled with env
         ASAN_OPTIONS=detect_stack_use_after_return=0.
*************** General Improvements
*** 166,176 ****
       * -Ofast, -ffast-math and -funsafe-math-optimizations will no longer
         add startup code to alter the floating-point environment when
         producing a shared object with -shared.
!      * GCC can now emit its diagnostics using [10]SARIF. This is a
         JSON-based format suited for capturing the results of static
!        analysis tools (like GCC's [11]-fanalyzer), but it can also be used
         to capture other GCC warnings and errors in a machine-readable
!        format. Specifically, the [12]-fdiagnostics-format= option has been
         extended to support these new values:
            + -fdiagnostics-format=sarif-stderr
            + -fdiagnostics-format=sarif-file
--- 1374,1384 ----
       * -Ofast, -ffast-math and -funsafe-math-optimizations will no longer
         add startup code to alter the floating-point environment when
         producing a shared object with -shared.
!      * GCC can now emit its diagnostics using [11]SARIF. This is a
         JSON-based format suited for capturing the results of static
!        analysis tools (like GCC's [12]-fanalyzer), but it can also be used
         to capture other GCC warnings and errors in a machine-readable
!        format. Specifically, the [13]-fdiagnostics-format= option has been
         extended to support these new values:
            + -fdiagnostics-format=sarif-stderr
            + -fdiagnostics-format=sarif-file
*************** General Improvements
*** 180,187 ****
         where the json-prefixed variants refer to GCC's own JSON diagnostic
         format.
       * Support for profiling and test coverage in freestanding
!        environments has been added, see also [13]Profiling and Test
         Coverage in Freestanding Environments.
  
  New Languages and Language specific improvements
  
--- 1388,1398 ----
         where the json-prefixed variants refer to GCC's own JSON diagnostic
         format.
       * Support for profiling and test coverage in freestanding
!        environments has been added, see also [14]Profiling and Test
         Coverage in Freestanding Environments.
+      * New options -fharden-compares and -fharden-conditional-branches to
+        verify compares and conditional branches, to detect some
+        power-deprivation hardware attacks, using reversed conditions.
  
  New Languages and Language specific improvements
  
*************** New Languages and Language specific impr
*** 200,255 ****
    C family
  
       * New warnings:
!           + [14]-Wxor-used-as-pow warns about uses of ^, the exclusive or
              operator, where it appears the user meant exponentiation
!             ([15]PR90885)
       * Three new function attributes for documenting int arguments that
         are file descriptors:
!           + [16]__attribute__((fd_arg(N)))
!           + [17]__attribute__((fd_arg_read(N)))
!           + [18]__attribute__((fd_arg_write(N)))
!        These are used by [19]-fanalyzer to detect misuses of file
         descriptors.
!      * A new statement attribute for C++23 [20]P1774R8 Portable
         assumptions support also in C or older C++:
!        [21]__attribute__((assume(EXPR)));
       * GCC can now control when to treat the trailing array of a structure
         as a flexible array member for the purpose of accessing the
         elements of such an array. By default, all trailing arrays in
         aggregates are treated as flexible array members. Use the new
!        command-line option [22]-fstrict-flex-arrays to control which array
         members are treated as flexible arrays.
  
    C
  
       * Several C23 features have been implemented:
!           + [23]N3042, Introduce the nullptr constant
!           + [24]N2963, Enhanced Enumerations (fixed underlying types)
!           + [25]N2975, Relax requirements for variadic parameter lists
!           + [26]N3007, Type inference for object definitions (auto)
!           + [27]N3018, The constexpr specifier for object definitions
!           + [28]N3038, Introduce storage-class specifiers for compound
              literals
            + typeof (previously supported as an extension) and
              typeof_unqual
            + New keywords alignas, alignof, bool, false, static_assert,
              thread_local, true
!           + [29]N2764, The noreturn attribute
            + Support for empty initializer braces
            + __STDC_VERSION_*_H__ header version macros
            + Removal of ATOMIC_VAR_INIT
            + unreachable macro in <stddef.h>
            + Removal of trigraphs
            + Removal of unprototyped functions
!           + printf and scanf format checking with [30]-Wformat for %wN and
              %wfN format length modifiers
!           + [31]N2836, Identifier Syntax using Unicode Standard Annex 31
       * In addition to those C23 features, existing features adopted in C23
         have been adjusted to follow C23 requirements and are not diagnosed
         with -std=c2x -Wpedantic.
       * New warnings:
!           + [32]-Wenum-int-mismatch warns about mismatches between an
!             enumerated type and an integer type ([33]PR105131)
  
    C++
  
--- 1411,1466 ----
    C family
  
       * New warnings:
!           + [15]-Wxor-used-as-pow warns about uses of ^, the exclusive or
              operator, where it appears the user meant exponentiation
!             ([16]PR90885)
       * Three new function attributes for documenting int arguments that
         are file descriptors:
!           + [17]__attribute__((fd_arg(N)))
!           + [18]__attribute__((fd_arg_read(N)))
!           + [19]__attribute__((fd_arg_write(N)))
!        These are used by [20]-fanalyzer to detect misuses of file
         descriptors.
!      * A new statement attribute for C++23 [21]P1774R8 Portable
         assumptions support also in C or older C++:
!        [22]__attribute__((assume(EXPR)));
       * GCC can now control when to treat the trailing array of a structure
         as a flexible array member for the purpose of accessing the
         elements of such an array. By default, all trailing arrays in
         aggregates are treated as flexible array members. Use the new
!        command-line option [23]-fstrict-flex-arrays to control which array
         members are treated as flexible arrays.
  
    C
  
       * Several C23 features have been implemented:
!           + [24]N3042, Introduce the nullptr constant
!           + [25]N2963, Enhanced Enumerations (fixed underlying types)
!           + [26]N2975, Relax requirements for variadic parameter lists
!           + [27]N3007, Type inference for object definitions (auto)
!           + [28]N3018, The constexpr specifier for object definitions
!           + [29]N3038, Introduce storage-class specifiers for compound
              literals
            + typeof (previously supported as an extension) and
              typeof_unqual
            + New keywords alignas, alignof, bool, false, static_assert,
              thread_local, true
!           + [30]N2764, The noreturn attribute
            + Support for empty initializer braces
            + __STDC_VERSION_*_H__ header version macros
            + Removal of ATOMIC_VAR_INIT
            + unreachable macro in <stddef.h>
            + Removal of trigraphs
            + Removal of unprototyped functions
!           + printf and scanf format checking with [31]-Wformat for %wN and
              %wfN format length modifiers
!           + [32]N2836, Identifier Syntax using Unicode Standard Annex 31
       * In addition to those C23 features, existing features adopted in C23
         have been adjusted to follow C23 requirements and are not diagnosed
         with -std=c2x -Wpedantic.
       * New warnings:
!           + [33]-Wenum-int-mismatch warns about mismatches between an
!             enumerated type and an integer type ([34]PR105131)
  
    C++
  
*************** New Languages and Language specific impr
*** 266,304 ****
         are supported those are evaluated in float precision.
         -fexcess-precision=fast restores previous behavior.
       * Several C++23 features have been implemented:
!           + [34]P2324R1, Labels at the end of compound statements
!             ([35]PR103539)
!           + [36]P2255R2, A type trait to detect reference binding to
!             temporary ([37]PR104477)
!           + [38]P2327R1, De-deprecating volatile compound operations
!           + [39]P2437R1, Support for #warning ([40]PR106646)
!           + [41]P2290R3, Delimited escape sequences ([42]PR106645)
!           + [43]P2071R2, Named universal character escapes ([44]PR106648)
!           + [45]P2513R3, char8_t Compatibility and Portability Fix
!             ([46]PR106656)
!           + [47]P1169R4, static operator() ([48]PR106651)
!           + [49]P2266R3, Simpler implicit move ([50]PR101165)
!           + [51]P2468R2, The Equality Operator You Are Looking For
!             ([52]PR106644)
!           + [53]P2362R3, Remove non-encodable
              wide character literals and multicharacter wide character lite
!             rals ([54]PR106647)
!           + [55]P2448R2, Relaxing some constexpr restrictions
!             ([56]PR106649)
!           + [57]P1467R9, Extended floating-point types and standard names
!             ([58]PR106652)
!           + [59]P1774R8, Portable assumptions ([60]PR106654)
!           + [61]P2295R6, Support for
!             UTF-8 as a portable source file encoding ([62]PR106655)
!           + [63]P2589R1, static operator[] ([64]PR107684)
       * New warnings:
!           + [65]-Wself-move warns when a value is moved to itself with
!             std::move ([66]PR81159)
!           + [67]-Wdangling-reference warns when a reference is bound to a
!             temporary whose lifetime has ended ([68]PR106393)
!      * The [69]-Wpessimizing-move and [70]-Wredundant-move warnings have
         been extended to warn in more contexts.
!      * The [71]-nostdlib++ option has been added, to enable linking with
         g++ without implicitly linking in the C++ standard library.
  
      Runtime Library (libstdc++)
--- 1477,1515 ----
         are supported those are evaluated in float precision.
         -fexcess-precision=fast restores previous behavior.
       * Several C++23 features have been implemented:
!           + [35]P2324R1, Labels at the end of compound statements
!             ([36]PR103539)
!           + [37]P2255R2, A type trait to detect reference binding to
!             temporary ([38]PR104477)
!           + [39]P2327R1, De-deprecating volatile compound operations
!           + [40]P2437R1, Support for #warning ([41]PR106646)
!           + [42]P2290R3, Delimited escape sequences ([43]PR106645)
!           + [44]P2071R2, Named universal character escapes ([45]PR106648)
!           + [46]P2513R3, char8_t Compatibility and Portability Fix
!             ([47]PR106656)
!           + [48]P1169R4, static operator() ([49]PR106651)
!           + [50]P2266R3, Simpler implicit move ([51]PR101165)
!           + [52]P2468R2, The Equality Operator You Are Looking For
!             ([53]PR106644)
!           + [54]P2362R3, Remove non-encodable
              wide character literals and multicharacter wide character lite
!             rals ([55]PR106647)
!           + [56]P2448R2, Relaxing some constexpr restrictions
!             ([57]PR106649)
!           + [58]P1467R9, Extended floating-point types and standard names
!             ([59]PR106652)
!           + [60]P1774R8, Portable assumptions ([61]PR106654)
!           + [62]P2295R6, Support for
!             UTF-8 as a portable source file encoding ([63]PR106655)
!           + [64]P2589R1, static operator[] ([65]PR107684)
       * New warnings:
!           + [66]-Wself-move warns when a value is moved to itself with
!             std::move ([67]PR81159)
!           + [68]-Wdangling-reference warns when a reference is bound to a
!             temporary whose lifetime has ended ([69]PR106393)
!      * The [70]-Wpessimizing-move and [71]-Wredundant-move warnings have
         been extended to warn in more contexts.
!      * The [72]-nostdlib++ option has been added, to enable linking with
         g++ without implicitly linking in the C++ standard library.
  
      Runtime Library (libstdc++)
*************** New Languages and Language specific impr
*** 331,337 ****
       * Support for many previously unavailable features in freestanding
         mode, thanks to Arsen Arsenović. For example, std::tuple is now
         available for freestanding compilation. The freestanding subset
!        contains all the components made freestanding by [72]P1642, but
         libstdc++ adds more components to the freestanding subset, such as
         std::array and std::string_view. Additionally, libstdc++ now
         respects the -ffreestanding compiler option and so it is not
--- 1542,1548 ----
       * Support for many previously unavailable features in freestanding
         mode, thanks to Arsen Arsenović. For example, std::tuple is now
         available for freestanding compilation. The freestanding subset
!        contains all the components made freestanding by [73]P1642, but
         libstdc++ adds more components to the freestanding subset, such as
         std::array and std::string_view. Additionally, libstdc++ now
         respects the -ffreestanding compiler option and so it is not
*************** New Languages and Language specific impr
*** 357,363 ****
         support for the ISO/IEC 10514-1, PIM2, PIM3, PIM4 dialects together
         with a complete set of ISO/IEC 10514-1 and PIM libraries.
       * The <* noreturn *> attribute is supported with the -Wreturn-type
!        [73]option.
  
  New Targets and Target Specific Improvements
  
--- 1568,1574 ----
         support for the ISO/IEC 10514-1, PIM2, PIM3, PIM4 dialects together
         with a complete set of ISO/IEC 10514-1 and PIM libraries.
       * The <* noreturn *> attribute is supported with the -Wreturn-type
!        [74]option.
  
  New Targets and Target Specific Improvements
  
*************** New Targets and Target Specific Improvem
*** 388,397 ****
  
    AMD Radeon (GCN)
  
!      * Support for the Instinct MI200 series devices ([74] gfx90a) has
         been added.
       * SIMD vectorization support has been improved; this and
!        stack-handling changes [75]require newlib 4.3.0 (or newer).
  
    arm
  
--- 1599,1608 ----
  
    AMD Radeon (GCN)
  
!      * Support for the Instinct MI200 series devices ([75] gfx90a) has
         been added.
       * SIMD vectorization support has been improved; this and
!        stack-handling changes [76]require newlib 4.3.0 (or newer).
  
    arm
  
*************** New Targets and Target Specific Improvem
*** 413,455 ****
         __bfloat16 which is typedef of short. Now we introduced real __bf16
         type to x86 psABI. Users need to adjust their AVX512BF16-related
         source code when upgrading GCC12 to GCC13.
       * New ISA extension support for Intel AVX-IFMA was added. AVX-IFMA
         intrinsics are available via the -mavxifma compiler switch.
-      * New ISA extension support for Intel AVX-VNNI-INT8 was added.
-        AVX-VNNI-INT8 intrinsics are available via the -mavxvnniint8
-        compiler switch.
       * New ISA extension support for Intel AVX-NE-CONVERT was added.
         AVX-NE-CONVERT intrinsics are available via the -mavxneconvert
         compiler switch.
       * New ISA extension support for Intel CMPccXADD was added. CMPccXADD
         intrinsics are available via the -mcmpccxadd compiler switch.
-      * New ISA extension support for Intel AMX-FP16 was added. AMX-FP16
-        intrinsics are available via the -mamx-fp16 compiler switch.
       * New ISA extension support for Intel PREFETCHI was added. PREFETCHI
         intrinsics are available via the -mprefetchi compiler switch.
       * New ISA extension support for Intel RAO-INT was added. RAO-INT
         intrinsics are available via the -mraoint compiler switch.
-      * New ISA extension support for Intel AMX-COMPLEX was added.
-        AMX-COMPLEX intrinsics are available via the -mamx-complex compiler
-        switch.
       * GCC now supports the Intel CPU named Raptor Lake through
         -march=raptorlake. Raptor Lake is based on Alder Lake.
       * GCC now supports the Intel CPU named Meteor Lake through
         -march=meteorlake. Meteor Lake is based on Alder Lake.
       * GCC now supports the Intel CPU named Sierra Forest through
!        -march=sierraforest. The switch enables the AVX-IFMA,
!        AVX-VNNI-INT8, AVX-NE-CONVERT and CMPccXADD ISA extensions.
       * GCC now supports the Intel CPU named Grand Ridge through
!        -march=grandridge. The switch enables the AVX-IFMA, AVX-VNNI-INT8,
!        AVX-NE-CONVERT, CMPccXADD and RAO-INT ISA extensions.
       * GCC now supports the Intel CPU named Emerald Rapids through
         -march=emeraldrapids. Emerald Rapids is based on Sapphire Rapids.
       * GCC now supports the Intel CPU named Granite Rapids through
!        -march=graniterapids. The switch enables the AMX-FP16, PREFETCHI
!        ISA extensions.
       * GCC now supports the Intel CPU named Granite Rapids D through
!        -march=graniterapids-d. The switch enables the AMX-FP16, PREFETCHI
!        and AMX-COMPLEX ISA extensions.
       * GCC now supports AMD CPUs based on the znver4 core via
         -march=znver4. The switch makes GCC consider using 512 bit vectors
         when auto-vectorizing.
--- 1624,1666 ----
         __bfloat16 which is typedef of short. Now we introduced real __bf16
         type to x86 psABI. Users need to adjust their AVX512BF16-related
         source code when upgrading GCC12 to GCC13.
+      * New ISA extension support for Intel AMX-COMPLEX was added.
+        AMX-COMPLEX intrinsics are available via the -mamx-complex compiler
+        switch.
+      * New ISA extension support for Intel AMX-FP16 was added. AMX-FP16
+        intrinsics are available via the -mamx-fp16 compiler switch.
       * New ISA extension support for Intel AVX-IFMA was added. AVX-IFMA
         intrinsics are available via the -mavxifma compiler switch.
       * New ISA extension support for Intel AVX-NE-CONVERT was added.
         AVX-NE-CONVERT intrinsics are available via the -mavxneconvert
         compiler switch.
+      * New ISA extension support for Intel AVX-VNNI-INT8 was added.
+        AVX-VNNI-INT8 intrinsics are available via the -mavxvnniint8
+        compiler switch.
       * New ISA extension support for Intel CMPccXADD was added. CMPccXADD
         intrinsics are available via the -mcmpccxadd compiler switch.
       * New ISA extension support for Intel PREFETCHI was added. PREFETCHI
         intrinsics are available via the -mprefetchi compiler switch.
       * New ISA extension support for Intel RAO-INT was added. RAO-INT
         intrinsics are available via the -mraoint compiler switch.
       * GCC now supports the Intel CPU named Raptor Lake through
         -march=raptorlake. Raptor Lake is based on Alder Lake.
       * GCC now supports the Intel CPU named Meteor Lake through
         -march=meteorlake. Meteor Lake is based on Alder Lake.
       * GCC now supports the Intel CPU named Sierra Forest through
!        -march=sierraforest. Based on ISA extensions enabled on Alder Lake,
!        the switch further enables the AVX-IFMA, AVX-NE-CONVERT,
!        AVX-VNNI-INT8, CMPccXADD, ENQCMD and UINTR ISA extensions.
       * GCC now supports the Intel CPU named Grand Ridge through
!        -march=grandridge. Grand Ridge is based on Sierra Forest.
       * GCC now supports the Intel CPU named Emerald Rapids through
         -march=emeraldrapids. Emerald Rapids is based on Sapphire Rapids.
       * GCC now supports the Intel CPU named Granite Rapids through
!        -march=graniterapids. Based on Sapphire Rapids, the switch further
!        enables the AMX-FP16 and PREFETCHI ISA extensions.
       * GCC now supports the Intel CPU named Granite Rapids D through
!        -march=graniterapids-d. Based on Granite Rapids, the switch further
!        enables the AMX-COMPLEX ISA extensions.
       * GCC now supports AMD CPUs based on the znver4 core via
         -march=znver4. The switch makes GCC consider using 512 bit vectors
         when auto-vectorizing.
*************** New Targets and Target Specific Improvem
*** 464,470 ****
              time.
            + The new command-line option -mdirect-extern-access can be used
              to prevent accessing external symbols through GOT.
!           + The new variable attribute [76]model has been added.
       * Built-in functions
            + The rint and copysign mathematical builtins (and their float
              variants) are now implemented as inline LoongArch intrinsics.
--- 1675,1681 ----
              time.
            + The new command-line option -mdirect-extern-access can be used
              to prevent accessing external symbols through GOT.
!           + The new variable attribute [77]model has been added.
       * Built-in functions
            + The rint and copysign mathematical builtins (and their float
              variants) are now implemented as inline LoongArch intrinsics.
*************** New Targets and Target Specific Improvem
*** 482,497 ****
  
    NVPTX
  
!      * The default value for the [77]-march option can be now changed when
!        [78]building GCC using the [79]--with-arch= configure option. GCC's
         target libraries are then build both with sm_30 and the specified
         target architecture. If not specified, GCC defaults to sm_30.
  
    RISC-V
  
!      * Support for vector intrinsics as specified in [80]version 0.11 of
         the RISC-V vector intrinsic specification, thanks Ju-Zhe Zhong from
!        [81]RiVAI for contributing most of implementation.
       * Support for the following standard extensions has been added:
            + Zawrs
            + Zbkb
--- 1693,1708 ----
  
    NVPTX
  
!      * The default value for the [78]-march option can be now changed when
!        [79]building GCC using the [80]--with-arch= configure option. GCC's
         target libraries are then build both with sm_30 and the specified
         target architecture. If not specified, GCC defaults to sm_30.
  
    RISC-V
  
!      * Support for vector intrinsics as specified in [81]version 0.11 of
         the RISC-V vector intrinsic specification, thanks Ju-Zhe Zhong from
!        [82]RiVAI for contributing most of implementation.
       * Support for the following standard extensions has been added:
            + Zawrs
            + Zbkb
*************** Operating Systems
*** 537,729 ****
  Improvements to Static Analyzer
  
       * The analyzer has gained 20 new warnings:
!           + [82]-Wanalyzer-allocation-size
!           + [83]-Wanalyzer-deref-before-check
!           + [84]-Wanalyzer-exposure-through-uninit-copy
            + Seven new warnings relating to misuse of file descriptors:
!                o [85]-Wanalyzer-fd-access-mode-mismatch
!                o [86]-Wanalyzer-fd-double-close
!                o [87]-Wanalyzer-fd-leak
!                o [88]-Wanalyzer-fd-phase-mismatch (e.g. calling accept on
                   a socket before calling listen on it)
!                o [89]-Wanalyzer-fd-type-mismatch (e.g. using a stream
                   socket operation on a datagram socket)
!                o [90]-Wanalyzer-fd-use-after-close
!                o [91]-Wanalyzer-fd-use-without-check
              along with special-casing handling of the behavior of open,
              close, creat, dup, dup2, dup3, pipe, pipe2, read, and write.
!           + [92]-Wanalyzer-imprecise-fp-arithmetic
!           + [93]-Wanalyzer-infinite-recursion
!           + [94]-Wanalyzer-jump-through-null
!           + [95]-Wanalyzer-out-of-bounds
!           + [96]-Wanalyzer-putenv-of-auto-var
!           + [97]-Wanalyzer-tainted-assertion
            + Four new warnings for misuses of <stdarg.h>:
!                o [98]-Wanalyzer-va-list-leak for complaining about missing
                   va_end after a va_start or va_copy
!                o [99]-Wanalyzer-va-list-use-after-va-end for complaining
                   about va_arg or va_copy used on a va_list that's had
                   va_end called on it
!                o [100]-Wanalyzer-va-arg-type-mismatch for type-checking of
                   va_arg usage in interprocedural execution paths against
                   the types of the parameters that were actually passed to
                   the variadic call
!                o [101]-Wanalyzer-va-list-exhausted for complaining in
                   interprocedural execution paths if va_arg is used too
                   many times on a va_list
         along with numerous other improvements.
  
  Improvements for plugin authors
  
!      * GCC diagnostics can now be [102]associated with rules such as from
         coding standards documents, or specifications. Such rules have a
         code name and can have a URL, which GCC can print in text form or
!        capture in its [103]SARIF output when emitting diagnostics.
  
  Other significant improvements
  
  GCC 13.1
  
!    This is the [104]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  GCC 13.2
  
!    This is the [105]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [106]GCC manuals. If that fails, the
!     [107]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [108]gcc@gcc.gnu.org. All of [109]our lists have public
      archives.
  
!    Copyright (C) [110]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [111]maintained by the GCC team. Last modified
!    2023-07-27.
  
  References
  
!    1. http://gcc.gnu.org/gcc-13/porting_to.html
!    2. http://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/pipermail/gcc/2022-December/240322.html
     4. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Warray-bounds
!    5. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!    6. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/ARM-iWMMXt-Built-in-Functions.html
!    7. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic
!    8. https://gcc.gnu.org/projects/gomp/
!    9. http://memkind.github.io/memkind/
!   10. https://sarifweb.azurewebsites.net/
!   11. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!   12. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   13. https://gcc.gnu.org/onlinedocs/gcc/Freestanding-Environments.html
!   14. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wxor-used-as-pow
!   15. https://gcc.gnu.org/PR90885
!   16. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg-function-attribute
!   17. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg_005fread-function-attribute
!   18. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg_005fwrite-function-attribute
!   19. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!   20. https://wg21.link/p1774r8
!   21. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Statement-Attributes.html#index-assume-statement-attribute
!   22. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wstrict-flex-arrays
!   23. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3042.htm
!   24. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2963.htm
!   25. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2975.pdf
!   26. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3007.htm
!   27. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3018.htm
!   28. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3038.htm
!   29. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf
!   30. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wformat
!   31. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2836.pdf
!   32. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wenum-int-mismatch
!   33. https://gcc.gnu.org/PR105131
!   34. https://wg21.link/p2324
!   35. https://gcc.gnu.org/PR103539
!   36. https://wg21.link/p2255
!   37. https://gcc.gnu.org/PR104477
!   38. https://wg21.link/p2327
!   39. https://wg21.link/p2437
!   40. https://gcc.gnu.org/PR106646
!   41. https://wg21.link/p2290
!   42. https://gcc.gnu.org/PR106645
!   43. https://wg21.link/p2071
!   44. https://gcc.gnu.org/PR106648
!   45. https://wg21.link/p2513
!   46. https://gcc.gnu.org/PR106656
!   47. https://wg21.link/p1169r4
!   48. https://gcc.gnu.org/PR106651
!   49. https://wg21.link/p2266r3
!   50. https://gcc.gnu.org/PR101165
!   51. https://wg21.link/p2468r2
!   52. https://gcc.gnu.org/PR106644
!   53. https://wg21.link/p2362r3
!   54. https://gcc.gnu.org/PR106647
!   55. https://wg21.link/p2448r2
!   56. https://gcc.gnu.org/PR106649
!   57. https://wg21.link/p1467r9
!   58. https://gcc.gnu.org/PR106652
!   59. https://wg21.link/p1774r8
!   60. https://gcc.gnu.org/PR106654
!   61. https://wg21.link/p2295r6
!   62. https://gcc.gnu.org/PR106655
!   63. https://wg21.link/p2589r1
!   64. https://gcc.gnu.org/PR107684
!   65. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wself-move
!   66. https://gcc.gnu.org/PR81159
!   67. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!   68. https://gcc.gnu.org/PR106393
!   69. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move
!   70. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move
!   71. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Link_Options.html#index-nostdlib_002b_002b
!   72. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1642r11.html
!   73. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gm2/Compiler-options.html
!   74. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/AMD-GCN-Options.html
!   75. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!   76. https://gcc.gnu.org/onlinedocs/gcc/LoongArch-Variable-Attributes.html#LoongArch-Variable-Attributes
!   77. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Nvidia-PTX-Options.html
!   78. https://gcc.gnu.org/install/
!   79. https://gcc.gnu.org/install/specific.html#nvptx-x-none
!   80. https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v0.11.x
!   81. https://rivai-ic.com.cn/
!   82. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-allocation-size
!   83. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-deref-before-check
!   84. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-exposure-through-uninit-copy
!   85. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-access-mode-mismatch
!   86. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-double-close
!   87. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-leak
!   88. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-phase-mismatch
!   89. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-type-mismatch
!   90. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-after-close
!   91. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-without-check
!   92. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-imprecise-fp-arithmetic
!   93. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-recursion
!   94. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-jump-through-null
!   95. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
!   96. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-putenv-of-auto-var
!   97. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-assertion
!   98. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-leak
!   99. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-use-after-va-end
!  100. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-arg-type-mismatch
!  101. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-exhausted
!  102. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=0b14f590e3e9d95b8211b77d992589d5ab4c25f0
!  103. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!  104. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.0
!  105. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.2
!  106. https://gcc.gnu.org/onlinedocs/
!  107. mailto:gcc-help@gcc.gnu.org
!  108. mailto:gcc@gcc.gnu.org
!  109. https://gcc.gnu.org/lists.html
!  110. https://www.fsf.org/
!  111. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-12/index.html
                               GCC 12 Release Series
--- 1748,1962 ----
  Improvements to Static Analyzer
  
       * The analyzer has gained 20 new warnings:
!           + [83]-Wanalyzer-allocation-size
!           + [84]-Wanalyzer-deref-before-check
!           + [85]-Wanalyzer-exposure-through-uninit-copy
            + Seven new warnings relating to misuse of file descriptors:
!                o [86]-Wanalyzer-fd-access-mode-mismatch
!                o [87]-Wanalyzer-fd-double-close
!                o [88]-Wanalyzer-fd-leak
!                o [89]-Wanalyzer-fd-phase-mismatch (e.g. calling accept on
                   a socket before calling listen on it)
!                o [90]-Wanalyzer-fd-type-mismatch (e.g. using a stream
                   socket operation on a datagram socket)
!                o [91]-Wanalyzer-fd-use-after-close
!                o [92]-Wanalyzer-fd-use-without-check
              along with special-casing handling of the behavior of open,
              close, creat, dup, dup2, dup3, pipe, pipe2, read, and write.
!           + [93]-Wanalyzer-imprecise-fp-arithmetic
!           + [94]-Wanalyzer-infinite-recursion
!           + [95]-Wanalyzer-jump-through-null
!           + [96]-Wanalyzer-out-of-bounds
!           + [97]-Wanalyzer-putenv-of-auto-var
!           + [98]-Wanalyzer-tainted-assertion
            + Four new warnings for misuses of <stdarg.h>:
!                o [99]-Wanalyzer-va-list-leak for complaining about missing
                   va_end after a va_start or va_copy
!                o [100]-Wanalyzer-va-list-use-after-va-end for complaining
                   about va_arg or va_copy used on a va_list that's had
                   va_end called on it
!                o [101]-Wanalyzer-va-arg-type-mismatch for type-checking of
                   va_arg usage in interprocedural execution paths against
                   the types of the parameters that were actually passed to
                   the variadic call
!                o [102]-Wanalyzer-va-list-exhausted for complaining in
                   interprocedural execution paths if va_arg is used too
                   many times on a va_list
         along with numerous other improvements.
  
  Improvements for plugin authors
  
!      * GCC diagnostics can now be [103]associated with rules such as from
         coding standards documents, or specifications. Such rules have a
         code name and can have a URL, which GCC can print in text form or
!        capture in its [104]SARIF output when emitting diagnostics.
  
  Other significant improvements
  
  GCC 13.1
  
!    This is the [105]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.1 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
  GCC 13.2
  
!    This is the [106]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 13.2 release. This list might
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
+ GCC 13.3
+ 
+    Note: GCC 13.3 has not been released yet, so this section is a
+    work-in-progress.
+ 
+    This is the [107]list of problem reports (PRs) from GCC's bug tracking
+    system that are known to be fixed in the 13.3 release. This list might
+    not be complete (that is, it is possible that some PRs that have been
+    fixed are not listed here).
+ 
+   Language Specific Changes
+ 
+   C++
+ 
+      * The libstdc++exp.a library now includes all the Filesystem TS
+        symbols from the libstdc++fs.a library, and the experimental
+        symbols for the C++23 std::stacktrace class from the
+        libstdc++_libbacktrace.a library. This means that -lstdc++exp is
+        the only library needed for all experimental libstdc++ features.
+ 
  
      For questions related to the use of GCC, please consult these web
!     pages and the [108]GCC manuals. If that fails, the
!     [109]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [110]gcc@gcc.gnu.org. All of [111]our lists have public
      archives.
  
!    Copyright (C) [112]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [113]maintained by the GCC team. Last modified
!    2024-04-22.
  
  References
  
!    1. https://gcc.gnu.org/gcc-13/porting_to.html
!    2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/pipermail/gcc/2022-December/240322.html
     4. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Warray-bounds
!    5. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C-Dialect-Options.html#index-fstrict-flex-arrays
!    6. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!    7. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/ARM-iWMMXt-Built-in-Functions.html
!    8. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic
!    9. https://gcc.gnu.org/projects/gomp/
!   10. http://memkind.github.io/memkind/
!   11. https://sarifweb.azurewebsites.net/
!   12. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!   13. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   14. https://gcc.gnu.org/onlinedocs/gcc/Freestanding-Environments.html
!   15. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wxor-used-as-pow
!   16. https://gcc.gnu.org/PR90885
!   17. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg-function-attribute
!   18. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg_005fread-function-attribute
!   19. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Common-Function-Attributes.html#index-fd_005farg_005fwrite-function-attribute
!   20. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html
!   21. https://wg21.link/p1774r8
!   22. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Statement-Attributes.html#index-assume-statement-attribute
!   23. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C-Dialect-Options.html#index-fstrict-flex-arrays
!   24. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3042.htm
!   25. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2963.htm
!   26. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2975.pdf
!   27. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3007.htm
!   28. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3018.htm
!   29. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3038.htm
!   30. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf
!   31. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wformat
!   32. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2836.pdf
!   33. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wenum-int-mismatch
!   34. https://gcc.gnu.org/PR105131
!   35. https://wg21.link/p2324
!   36. https://gcc.gnu.org/PR103539
!   37. https://wg21.link/p2255
!   38. https://gcc.gnu.org/PR104477
!   39. https://wg21.link/p2327
!   40. https://wg21.link/p2437
!   41. https://gcc.gnu.org/PR106646
!   42. https://wg21.link/p2290
!   43. https://gcc.gnu.org/PR106645
!   44. https://wg21.link/p2071
!   45. https://gcc.gnu.org/PR106648
!   46. https://wg21.link/p2513
!   47. https://gcc.gnu.org/PR106656
!   48. https://wg21.link/p1169r4
!   49. https://gcc.gnu.org/PR106651
!   50. https://wg21.link/p2266r3
!   51. https://gcc.gnu.org/PR101165
!   52. https://wg21.link/p2468r2
!   53. https://gcc.gnu.org/PR106644
!   54. https://wg21.link/p2362r3
!   55. https://gcc.gnu.org/PR106647
!   56. https://wg21.link/p2448r2
!   57. https://gcc.gnu.org/PR106649
!   58. https://wg21.link/p1467r9
!   59. https://gcc.gnu.org/PR106652
!   60. https://wg21.link/p1774r8
!   61. https://gcc.gnu.org/PR106654
!   62. https://wg21.link/p2295r6
!   63. https://gcc.gnu.org/PR106655
!   64. https://wg21.link/p2589r1
!   65. https://gcc.gnu.org/PR107684
!   66. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Warning-Options.html#index-Wself-move
!   67. https://gcc.gnu.org/PR81159
!   68. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!   69. https://gcc.gnu.org/PR106393
!   70. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move
!   71. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move
!   72. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Link-Options.html#index-nostdlib_002b_002b
!   73. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1642r11.html
!   74. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gm2/Compiler-options.html
!   75. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/AMD-GCN-Options.html
!   76. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!   77. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/LoongArch-Variable-Attributes.html#LoongArch-Variable-Attributes
!   78. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Nvidia-PTX-Options.html
!   79. https://gcc.gnu.org/install/
!   80. https://gcc.gnu.org/install/specific.html#nvptx-x-none
!   81. https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v0.11.x
!   82. https://rivai-ic.com.cn/
!   83. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-allocation-size
!   84. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-deref-before-check
!   85. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-exposure-through-uninit-copy
!   86. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-access-mode-mismatch
!   87. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-double-close
!   88. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-leak
!   89. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-phase-mismatch
!   90. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-type-mismatch
!   91. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-after-close
!   92. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-without-check
!   93. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-imprecise-fp-arithmetic
!   94. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-recursion
!   95. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-jump-through-null
!   96. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds
!   97. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-putenv-of-auto-var
!   98. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-assertion
!   99. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-leak
!  100. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-use-after-va-end
!  101. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-arg-type-mismatch
!  102. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-exhausted
!  103. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=0b14f590e3e9d95b8211b77d992589d5ab4c25f0
!  104. https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!  105. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.0
!  106. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.2
!  107. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.3
!  108. https://gcc.gnu.org/onlinedocs/
!  109. mailto:gcc-help@gcc.gnu.org
!  110. mailto:gcc@gcc.gnu.org
!  111. https://gcc.gnu.org/lists.html
!  112. https://www.fsf.org/
!  113. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-12/index.html
                               GCC 12 Release Series
*************** References and Acknowledgements
*** 752,806 ****
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
-    A list of [7]successful builds is updated as new information becomes
-    available.
- 
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [8]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [9]GCC project
!    web site or contact the [10]GCC development mailing list.
  
!    To obtain GCC please use [11]our mirror sites or [12]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [13]GCC manuals. If that fails, the
!     [14]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [15]gcc@gcc.gnu.org. All of [16]our lists have public
      archives.
  
!    Copyright (C) [17]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [18]maintained by the GCC team. Last modified
!    2023-05-08.
  
  References
  
!    1. http://gcc.gnu.org/gcc-12/changes.html
     2. http://gcc.gnu.org/onlinedocs/12.3.0/
!    3. http://gcc.gnu.org/gcc-12/changes.html
     4. http://gcc.gnu.org/onlinedocs/12.2.0/
!    5. http://gcc.gnu.org/gcc-12/changes.html
     6. http://gcc.gnu.org/onlinedocs/12.1.0/
!    7. http://gcc.gnu.org/gcc-12/buildstat.html
!    8. http://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Contributors.html
!    9. http://gcc.gnu.org/index.html
!   10. mailto:gcc@gcc.gnu.org
!   11. http://gcc.gnu.org/mirrors.html
!   12. http://gcc.gnu.org/git.html
!   13. https://gcc.gnu.org/onlinedocs/
!   14. mailto:gcc-help@gcc.gnu.org
!   15. mailto:gcc@gcc.gnu.org
!   16. https://gcc.gnu.org/lists.html
!   17. https://www.fsf.org/
!   18. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-12/changes.html
                               GCC 12 Release Series
--- 1985,2035 ----
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [7]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [8]GCC project
!    web site or contact the [9]GCC development mailing list.
  
!    To obtain GCC please use [10]our mirror sites or [11]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [12]GCC manuals. If that fails, the
!     [13]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [14]gcc@gcc.gnu.org. All of [15]our lists have public
      archives.
  
!    Copyright (C) [16]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [17]maintained by the GCC team. Last modified
!    2023-10-15.
  
  References
  
!    1. https://gcc.gnu.org/gcc-12/changes.html
     2. http://gcc.gnu.org/onlinedocs/12.3.0/
!    3. https://gcc.gnu.org/gcc-12/changes.html
     4. http://gcc.gnu.org/onlinedocs/12.2.0/
!    5. https://gcc.gnu.org/gcc-12/changes.html
     6. http://gcc.gnu.org/onlinedocs/12.1.0/
!    7. http://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Contributors.html
!    8. https://gcc.gnu.org/index.html
!    9. mailto:gcc@gcc.gnu.org
!   10. https://gcc.gnu.org/mirrors.html
!   11. https://gcc.gnu.org/git.html
!   12. https://gcc.gnu.org/onlinedocs/
!   13. mailto:gcc-help@gcc.gnu.org
!   14. mailto:gcc@gcc.gnu.org
!   15. https://gcc.gnu.org/lists.html
!   16. https://www.fsf.org/
!   17. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-12/changes.html
                               GCC 12 Release Series
*************** Caveats
*** 879,888 ****
  
  General Improvements
  
!      * Vectorization is enabled at -O2 which is now equivalent to the
!        original -O2 -ftree-vectorize -fvect-cost-model=very-cheap. Note
!        that default vectorizer cost model has been changed which used to
!        behave as -fvect-cost-model=cheap were specified.
       * GCC now supports the [7]ShadowCallStack sanitizer, which can be
         enabled using the command-line option
         [8]-fsanitize=shadow-call-stack. This sanitizer currently only
--- 2108,2118 ----
  
  General Improvements
  
!      * Vectorization is enabled at -O2 which is now equivalent to what
!        would have been -O2 -ftree-vectorize -fvect-cost-model=very-cheap
!        in the past. Note that the default vectorizer cost model has been
!        changed; it used to behave as if -fvect-cost-model=cheap had been
!        specified.
       * GCC now supports the [7]ShadowCallStack sanitizer, which can be
         enabled using the command-line option
         [8]-fsanitize=shadow-call-stack. This sanitizer currently only
*************** New Targets and Target Specific Improvem
*** 1295,1302 ****
    BPF
  
       * Support for CO-RE (compile-once, run-everywhere) has been added to
!        the BPF backend. CO-RE allows to compile portable BPF programs that
!        are able to run among different versions of the Linux kernel.
  
    IA-32/x86-64
  
--- 2525,2532 ----
    BPF
  
       * Support for CO-RE (compile-once, run-everywhere) has been added to
!        the BPF back end. CO-RE allows to compile portable BPF programs
!        that are able to run among different versions of the Linux kernel.
  
    IA-32/x86-64
  
*************** GCC 12.4
*** 1573,1587 ****
     provided this notice is preserved.
  
     These pages are [148]maintained by the GCC team. Last modified
!    2023-05-08.
  
  References
  
!    1. http://gcc.gnu.org/gcc-12/porting_to.html
!    2. http://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/PR102024
     4. https://gcc.gnu.org/PR42217
!    5. http://gcc.gnu.org/gcc-12/changes.html#mips_zero_width_fields
     6. https://gcc.gnu.org/install/specific.html
     7. https://clang.llvm.org/docs/ShadowCallStack.html
     8. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Instrumentation-Options.html#index-fsanitize_003dshadow-call-stack
--- 2803,2817 ----
     provided this notice is preserved.
  
     These pages are [148]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
!    1. https://gcc.gnu.org/gcc-12/porting_to.html
!    2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/PR102024
     4. https://gcc.gnu.org/PR42217
!    5. https://gcc.gnu.org/gcc-12/changes.html#mips_zero_width_fields
     6. https://gcc.gnu.org/install/specific.html
     7. https://clang.llvm.org/docs/ShadowCallStack.html
     8. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Instrumentation-Options.html#index-fsanitize_003dshadow-call-stack
*************** References
*** 1589,1596 ****
    10. https://www.openacc.org/
    11. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-12
    12. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/libgomp/Enabling-OpenACC.html
!   13. http://gcc.gnu.org/gcc-12/changes.html#amdgcn
!   14. http://gcc.gnu.org/gcc-12/changes.html#nvptx
    15. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-param
    16. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wopenacc-parallelism
    17. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/C-Dialect-Options.html#index-foffload-options
--- 2819,2826 ----
    10. https://www.openacc.org/
    11. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-12
    12. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/libgomp/Enabling-OpenACC.html
!   13. https://gcc.gnu.org/gcc-12/changes.html#amdgcn
!   14. https://gcc.gnu.org/gcc-12/changes.html#nvptx
    15. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-param
    16. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wopenacc-parallelism
    17. https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/C-Dialect-Options.html#index-foffload-options
*************** References and Acknowledgements
*** 1756,1812 ****
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
-    A list of [9]successful builds is updated as new information becomes
-    available.
- 
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [10]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [11]GCC
!    project web site or contact the [12]GCC development mailing list.
  
!    To obtain GCC please use [13]our mirror sites or [14]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [15]GCC manuals. If that fails, the
!     [16]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [17]gcc@gcc.gnu.org. All of [18]our lists have public
      archives.
  
!    Copyright (C) [19]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [20]maintained by the GCC team. Last modified
!    2023-05-29.
  
  References
  
!    1. http://gcc.gnu.org/gcc-11/changes.html
     2. http://gcc.gnu.org/onlinedocs/11.4.0/
!    3. http://gcc.gnu.org/gcc-11/changes.html
     4. http://gcc.gnu.org/onlinedocs/11.3.0/
!    5. http://gcc.gnu.org/gcc-11/changes.html
     6. http://gcc.gnu.org/onlinedocs/11.2.0/
!    7. http://gcc.gnu.org/gcc-11/changes.html
     8. http://gcc.gnu.org/onlinedocs/11.1.0/
!    9. http://gcc.gnu.org/gcc-11/buildstat.html
!   10. http://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Contributors.html
!   11. http://gcc.gnu.org/index.html
!   12. mailto:gcc@gcc.gnu.org
!   13. http://gcc.gnu.org/mirrors.html
!   14. http://gcc.gnu.org/git.html
!   15. https://gcc.gnu.org/onlinedocs/
!   16. mailto:gcc-help@gcc.gnu.org
!   17. mailto:gcc@gcc.gnu.org
!   18. https://gcc.gnu.org/lists.html
!   19. https://www.fsf.org/
!   20. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-11/changes.html
                               GCC 11 Release Series
--- 2986,3038 ----
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [9]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [10]GCC
!    project web site or contact the [11]GCC development mailing list.
  
!    To obtain GCC please use [12]our mirror sites or [13]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [14]GCC manuals. If that fails, the
!     [15]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [16]gcc@gcc.gnu.org. All of [17]our lists have public
      archives.
  
!    Copyright (C) [18]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [19]maintained by the GCC team. Last modified
!    2023-10-15.
  
  References
  
!    1. https://gcc.gnu.org/gcc-11/changes.html
     2. http://gcc.gnu.org/onlinedocs/11.4.0/
!    3. https://gcc.gnu.org/gcc-11/changes.html
     4. http://gcc.gnu.org/onlinedocs/11.3.0/
!    5. https://gcc.gnu.org/gcc-11/changes.html
     6. http://gcc.gnu.org/onlinedocs/11.2.0/
!    7. https://gcc.gnu.org/gcc-11/changes.html
     8. http://gcc.gnu.org/onlinedocs/11.1.0/
!    9. http://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Contributors.html
!   10. https://gcc.gnu.org/index.html
!   11. mailto:gcc@gcc.gnu.org
!   12. https://gcc.gnu.org/mirrors.html
!   13. https://gcc.gnu.org/git.html
!   14. https://gcc.gnu.org/onlinedocs/
!   15. mailto:gcc-help@gcc.gnu.org
!   16. mailto:gcc@gcc.gnu.org
!   17. https://gcc.gnu.org/lists.html
!   18. https://www.fsf.org/
!   19. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-11/changes.html
                               GCC 11 Release Series
*************** New Targets and Target Specific Improvem
*** 2296,2302 ****
    AArch64 & arm
  
       * A number of new CPUs are supported through arguments to the -mcpu
!        and -mtune options in both the arm and aarch64 backends (GCC
         identifiers in parentheses):
            + Arm Cortex-A78 (cortex-a78).
            + Arm Cortex-A78AE (cortex-a78ae).
--- 3522,3528 ----
    AArch64 & arm
  
       * A number of new CPUs are supported through arguments to the -mcpu
!        and -mtune options in both the arm and aarch64 back ends (GCC
         identifiers in parentheses):
            + Arm Cortex-A78 (cortex-a78).
            + Arm Cortex-A78AE (cortex-a78ae).
*************** GCC 11.4
*** 2541,2552 ****
     provided this notice is preserved.
  
     These pages are [76]maintained by the GCC team. Last modified
!    2023-05-29.
  
  References
  
!    1. http://gcc.gnu.org/gcc-11/porting_to.html
!    2. http://gcc.gnu.org/onlinedocs/index.html#current
     3. https://wg21.link/p0522r0
     4. https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546494.html
     5. https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual
--- 3767,3778 ----
     provided this notice is preserved.
  
     These pages are [76]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
!    1. https://gcc.gnu.org/gcc-11/porting_to.html
!    2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://wg21.link/p0522r0
     4. https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546494.html
     5. https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual
*************** References
*** 2581,2588 ****
    34. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wuninitialized
    35. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Warray-parameter
    36. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wvla-parameter
!   37. http://gcc.gnu.org/projects/cxx-status.html#cxx20
!   38. http://gcc.gnu.org/projects/cxx-status.html#cxx23
    39. https://gcc.gnu.org/PR41437
    40. https://gcc.gnu.org/PR95307
    41. https://gcc.gnu.org/PR97518
--- 3807,3814 ----
    34. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wuninitialized
    35. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Warray-parameter
    36. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wvla-parameter
!   37. https://gcc.gnu.org/projects/cxx-status.html#cxx20
!   38. https://gcc.gnu.org/projects/cxx-status.html#cxx23
    39. https://gcc.gnu.org/PR41437
    40. https://gcc.gnu.org/PR95307
    41. https://gcc.gnu.org/PR97518
*************** References
*** 2593,2599 ****
    46. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete
    47. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wvexing-parse
    48. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wnonnull
!   49. http://gcc.gnu.org/gcc-5/changes.html#jit
    50. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/compatibility.html
    51. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/expressions.html#c.gcc_jit_global_set_initializer
    52. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/asm.html
--- 3819,3825 ----
    46. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete
    47. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wvexing-parse
    48. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wnonnull
!   49. https://gcc.gnu.org/gcc-5/changes.html#jit
    50. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/compatibility.html
    51. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/expressions.html#c.gcc_jit_global_set_initializer
    52. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/asm.html
*************** References and Acknowledgements
*** 2658,2717 ****
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
-    A list of [12]successful builds is updated as new information becomes
-    available.
- 
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [13]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [14]GCC
!    project web site or contact the [15]GCC development mailing list.
  
!    To obtain GCC please use [16]our mirror sites or [17]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [18]GCC manuals. If that fails, the
!     [19]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [20]gcc@gcc.gnu.org. All of [21]our lists have public
      archives.
  
!    Copyright (C) [22]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [23]maintained by the GCC team. Last modified
!    2023-07-07.
  
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-10/changes.html
     3. http://gcc.gnu.org/onlinedocs/10.5.0/
!    4. http://gcc.gnu.org/gcc-10/changes.html
     5. http://gcc.gnu.org/onlinedocs/10.4.0/
!    6. http://gcc.gnu.org/gcc-10/changes.html
     7. http://gcc.gnu.org/onlinedocs/10.3.0/
!    8. http://gcc.gnu.org/gcc-10/changes.html
     9. http://gcc.gnu.org/onlinedocs/10.2.0/
!   10. http://gcc.gnu.org/gcc-10/changes.html
    11. http://gcc.gnu.org/onlinedocs/10.1.0/
!   12. http://gcc.gnu.org/gcc-10/buildstat.html
!   13. http://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
!   15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
!   18. https://gcc.gnu.org/onlinedocs/
!   19. mailto:gcc-help@gcc.gnu.org
!   20. mailto:gcc@gcc.gnu.org
!   21. https://gcc.gnu.org/lists.html
!   22. https://www.fsf.org/
!   23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-10/changes.html
                               GCC 10 Release Series
--- 3884,3939 ----
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [12]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [13]GCC
!    project web site or contact the [14]GCC development mailing list.
  
!    To obtain GCC please use [15]our mirror sites or [16]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [17]GCC manuals. If that fails, the
!     [18]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [19]gcc@gcc.gnu.org. All of [20]our lists have public
      archives.
  
!    Copyright (C) [21]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [22]maintained by the GCC team. Last modified
!    2023-10-15.
  
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-10/changes.html
     3. http://gcc.gnu.org/onlinedocs/10.5.0/
!    4. https://gcc.gnu.org/gcc-10/changes.html
     5. http://gcc.gnu.org/onlinedocs/10.4.0/
!    6. https://gcc.gnu.org/gcc-10/changes.html
     7. http://gcc.gnu.org/onlinedocs/10.3.0/
!    8. https://gcc.gnu.org/gcc-10/changes.html
     9. http://gcc.gnu.org/onlinedocs/10.2.0/
!   10. https://gcc.gnu.org/gcc-10/changes.html
    11. http://gcc.gnu.org/onlinedocs/10.1.0/
!   12. http://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Contributors.html
!   13. https://gcc.gnu.org/index.html
!   14. mailto:gcc@gcc.gnu.org
!   15. https://gcc.gnu.org/mirrors.html
!   16. https://gcc.gnu.org/git.html
!   17. https://gcc.gnu.org/onlinedocs/
!   18. mailto:gcc-help@gcc.gnu.org
!   19. mailto:gcc@gcc.gnu.org
!   20. https://gcc.gnu.org/lists.html
!   21. https://www.fsf.org/
!   22. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-10/changes.html
                               GCC 10 Release Series
*************** GCC 10.5
*** 3476,3486 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-10/porting_to.html
!    2. http://gcc.gnu.org/onlinedocs/index.html#current
!    3. http://gcc.gnu.org/gcc-10/changes.html#empty_base
     4. https://www.mpfr.org/
!    5. http://gcc.gnu.org/gcc-10/changes.html#iterator_base
     6. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/cpp/_005f_005fhas_005fbuiltin.html#g_t_005f_005fhas_005fbuiltin
     7. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fno-allocation-dce
     8. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-partial-training
--- 4698,4708 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-10/porting_to.html
!    2. https://gcc.gnu.org/onlinedocs/index.html#current
!    3. https://gcc.gnu.org/gcc-10/changes.html#empty_base
     4. https://www.mpfr.org/
!    5. https://gcc.gnu.org/gcc-10/changes.html#iterator_base
     6. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/cpp/_005f_005fhas_005fbuiltin.html#g_t_005f_005fhas_005fbuiltin
     7. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fno-allocation-dce
     8. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-partial-training
*************** References and Acknowledgements
*** 3580,3639 ****
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
-    A list of [12]successful builds is updated as new information becomes
-    available.
- 
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [13]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [14]GCC
!    project web site or contact the [15]GCC development mailing list.
  
!    To obtain GCC please use [16]our mirror sites or [17]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [18]GCC manuals. If that fails, the
!     [19]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [20]gcc@gcc.gnu.org. All of [21]our lists have public
      archives.
  
!    Copyright (C) [22]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [23]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-9/changes.html
     3. http://gcc.gnu.org/onlinedocs/9.5.0/
!    4. http://gcc.gnu.org/gcc-9/changes.html
     5. http://gcc.gnu.org/onlinedocs/9.4.0/
!    6. http://gcc.gnu.org/gcc-9/changes.html
     7. http://gcc.gnu.org/onlinedocs/9.3.0/
!    8. http://gcc.gnu.org/gcc-9/changes.html
     9. http://gcc.gnu.org/onlinedocs/9.2.0/
!   10. http://gcc.gnu.org/gcc-9/changes.html
    11. http://gcc.gnu.org/onlinedocs/9.1.0/
!   12. http://gcc.gnu.org/gcc-9/buildstat.html
!   13. http://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
!   15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
!   18. https://gcc.gnu.org/onlinedocs/
!   19. mailto:gcc-help@gcc.gnu.org
!   20. mailto:gcc@gcc.gnu.org
!   21. https://gcc.gnu.org/lists.html
!   22. https://www.fsf.org/
!   23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-9/changes.html
                                GCC 9 Release Series
--- 4802,4857 ----
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [12]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [13]GCC
!    project web site or contact the [14]GCC development mailing list.
  
!    To obtain GCC please use [15]our mirror sites or [16]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [17]GCC manuals. If that fails, the
!     [18]gcc-help@gcc.gnu.org mailing list might help. Comments on these
      web pages and the development of GCC are welcome on our developer
!     list at [19]gcc@gcc.gnu.org. All of [20]our lists have public
      archives.
  
!    Copyright (C) [21]Free Software Foundation, Inc. Verbatim copying and
     distribution of this entire article is permitted in any medium,
     provided this notice is preserved.
  
!    These pages are [22]maintained by the GCC team. Last modified
!    2023-10-15.
  
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-9/changes.html
     3. http://gcc.gnu.org/onlinedocs/9.5.0/
!    4. https://gcc.gnu.org/gcc-9/changes.html
     5. http://gcc.gnu.org/onlinedocs/9.4.0/
!    6. https://gcc.gnu.org/gcc-9/changes.html
     7. http://gcc.gnu.org/onlinedocs/9.3.0/
!    8. https://gcc.gnu.org/gcc-9/changes.html
     9. http://gcc.gnu.org/onlinedocs/9.2.0/
!   10. https://gcc.gnu.org/gcc-9/changes.html
    11. http://gcc.gnu.org/onlinedocs/9.1.0/
!   12. http://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Contributors.html
!   13. https://gcc.gnu.org/index.html
!   14. mailto:gcc@gcc.gnu.org
!   15. https://gcc.gnu.org/mirrors.html
!   16. https://gcc.gnu.org/git.html
!   17. https://gcc.gnu.org/onlinedocs/
!   18. mailto:gcc-help@gcc.gnu.org
!   19. mailto:gcc@gcc.gnu.org
!   20. https://gcc.gnu.org/lists.html
!   21. https://www.fsf.org/
!   22. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-9/changes.html
                                GCC 9 Release Series
*************** GCC 9.5
*** 4439,4446 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-9/porting_to.html
!    2. http://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469
     4. https://gcc.gnu.org/ml/gcc/2018-10/msg00139.html
     5. https://gcc.gnu.org/ml/gcc/2019-04/msg00023.html
--- 5657,5664 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-9/porting_to.html
!    2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469
     4. https://gcc.gnu.org/ml/gcc/2018-10/msg00139.html
     5. https://gcc.gnu.org/ml/gcc/2019-04/msg00023.html
*************** References
*** 4491,4497 ****
    50. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move
    51. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move
    52. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion
!   53. http://gcc.gnu.org/projects/cxx-status.html#cxx2a
    54. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat
    55. https://github.com/oneapi-src/oneTBB
    56. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/Fortran-Dialect-Options.html#index-fdec-include
--- 5709,5715 ----
    50. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move
    51. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move
    52. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion
!   53. https://gcc.gnu.org/projects/cxx-status.html#cxx2a
    54. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat
    55. https://github.com/oneapi-src/oneTBB
    56. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/Fortran-Dialect-Options.html#index-fdec-include
*************** References and Acknowledgements
*** 4583,4604 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-8/changes.html
     3. http://gcc.gnu.org/onlinedocs/8.5.0/
!    4. http://gcc.gnu.org/gcc-8/changes.html
     5. http://gcc.gnu.org/onlinedocs/8.4.0/
!    6. http://gcc.gnu.org/gcc-8/changes.html
     7. http://gcc.gnu.org/onlinedocs/8.3.0/
!    8. http://gcc.gnu.org/gcc-8/changes.html
     9. http://gcc.gnu.org/onlinedocs/8.2.0/
!   10. http://gcc.gnu.org/gcc-8/changes.html
    11. http://gcc.gnu.org/onlinedocs/8.1.0/
!   12. http://gcc.gnu.org/gcc-8/buildstat.html
    13. http://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
--- 5801,5822 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-8/changes.html
     3. http://gcc.gnu.org/onlinedocs/8.5.0/
!    4. https://gcc.gnu.org/gcc-8/changes.html
     5. http://gcc.gnu.org/onlinedocs/8.4.0/
!    6. https://gcc.gnu.org/gcc-8/changes.html
     7. http://gcc.gnu.org/onlinedocs/8.3.0/
!    8. https://gcc.gnu.org/gcc-8/changes.html
     9. http://gcc.gnu.org/onlinedocs/8.2.0/
!   10. https://gcc.gnu.org/gcc-8/changes.html
    11. http://gcc.gnu.org/onlinedocs/8.1.0/
!   12. https://gcc.gnu.org/gcc-8/buildstat.html
    13. http://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Contributors.html
!   14. https://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. https://gcc.gnu.org/mirrors.html
!   17. https://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
*************** GCC 8.5
*** 5690,5697 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-8/porting_to.html
!    2. http://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
     4. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wmultistatement-macros
     5. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wstringop-truncation
--- 6908,6915 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-8/porting_to.html
!    2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
     4. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wmultistatement-macros
     5. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wstringop-truncation
*************** References
*** 5706,5712 ****
    14. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wformat-truncation
    15. https://gcc.gnu.org/PR86094
    16. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess
!   17. http://gcc.gnu.org/projects/cxx-status.html#cxx2a
    18. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_vector
    19. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/expressions.html#gcc_jit_context_new_rvalue_from_vector
    20. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_aligned
--- 6924,6930 ----
    14. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wformat-truncation
    15. https://gcc.gnu.org/PR86094
    16. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess
!   17. https://gcc.gnu.org/projects/cxx-status.html#cxx2a
    18. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_vector
    19. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/expressions.html#gcc_jit_context_new_rvalue_from_vector
    20. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_aligned
*************** References
*** 5722,5728 ****
    30. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.0
    31. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.2
    32. https://gcc.gnu.org/PR86094
!   33. http://gcc.gnu.org/gcc-8/changes.html#cxx
    34. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84413
    35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.3
    36. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137
--- 6940,6946 ----
    30. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.0
    31. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.2
    32. https://gcc.gnu.org/PR86094
!   33. https://gcc.gnu.org/gcc-8/changes.html#cxx
    34. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84413
    35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.3
    36. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137
*************** References and Acknowledgements
*** 5803,5824 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-7/changes.html
     3. http://gcc.gnu.org/onlinedocs/7.5.0/
!    4. http://gcc.gnu.org/gcc-7/changes.html
     5. http://gcc.gnu.org/onlinedocs/7.4.0/
!    6. http://gcc.gnu.org/gcc-7/changes.html
     7. http://gcc.gnu.org/onlinedocs/7.3.0/
!    8. http://gcc.gnu.org/gcc-7/changes.html
     9. http://gcc.gnu.org/onlinedocs/7.2.0/
!   10. http://gcc.gnu.org/gcc-7/changes.html
    11. http://gcc.gnu.org/onlinedocs/7.1.0/
!   12. http://gcc.gnu.org/gcc-7/buildstat.html
    13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
--- 7021,7042 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-7/changes.html
     3. http://gcc.gnu.org/onlinedocs/7.5.0/
!    4. https://gcc.gnu.org/gcc-7/changes.html
     5. http://gcc.gnu.org/onlinedocs/7.4.0/
!    6. https://gcc.gnu.org/gcc-7/changes.html
     7. http://gcc.gnu.org/onlinedocs/7.3.0/
!    8. https://gcc.gnu.org/gcc-7/changes.html
     9. http://gcc.gnu.org/onlinedocs/7.2.0/
!   10. https://gcc.gnu.org/gcc-7/changes.html
    11. http://gcc.gnu.org/onlinedocs/7.1.0/
!   12. https://gcc.gnu.org/gcc-7/buildstat.html
    13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. https://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. https://gcc.gnu.org/mirrors.html
!   17. https://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
*************** GCC 7.5
*** 6898,6905 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-7/porting_to.html
!    2. http://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/wiki/LRAIsDefault
     4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html
     5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
--- 8116,8123 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-7/porting_to.html
!    2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/wiki/LRAIsDefault
     4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html
     5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
*************** References and Acknowledgements
*** 7000,7021 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-6/changes.html
     3. http://gcc.gnu.org/onlinedocs/6.5.0/
!    4. http://gcc.gnu.org/gcc-6/changes.html
     5. http://gcc.gnu.org/onlinedocs/6.4.0/
!    6. http://gcc.gnu.org/gcc-6/changes.html
     7. http://gcc.gnu.org/onlinedocs/6.3.0/
!    8. http://gcc.gnu.org/gcc-6/changes.html
     9. http://gcc.gnu.org/onlinedocs/6.2.0/
!   10. http://gcc.gnu.org/gcc-6/changes.html
    11. http://gcc.gnu.org/onlinedocs/6.1.0/
!   12. http://gcc.gnu.org/gcc-6/buildstat.html
    13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
--- 8218,8239 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-6/changes.html
     3. http://gcc.gnu.org/onlinedocs/6.5.0/
!    4. https://gcc.gnu.org/gcc-6/changes.html
     5. http://gcc.gnu.org/onlinedocs/6.4.0/
!    6. https://gcc.gnu.org/gcc-6/changes.html
     7. http://gcc.gnu.org/onlinedocs/6.3.0/
!    8. https://gcc.gnu.org/gcc-6/changes.html
     9. http://gcc.gnu.org/onlinedocs/6.2.0/
!   10. https://gcc.gnu.org/gcc-6/changes.html
    11. http://gcc.gnu.org/onlinedocs/6.1.0/
!   12. https://gcc.gnu.org/gcc-6/buildstat.html
    13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. https://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. https://gcc.gnu.org/mirrors.html
!   17. https://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
*************** Operating Systems
*** 7736,7743 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-6/porting_to.html
!    2. http://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/ml/gcc/2015-08/msg00101.html
     4. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71151
     5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87822
--- 8954,8961 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-6/porting_to.html
!    2. https://gcc.gnu.org/onlinedocs/index.html#current
     3. https://gcc.gnu.org/ml/gcc/2015-08/msg00101.html
     4. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71151
     5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87822
*************** References and Acknowledgements
*** 7837,7858 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-5/changes.html
     3. http://gcc.gnu.org/onlinedocs/5.5.0/
!    4. http://gcc.gnu.org/gcc-5/changes.html
     5. http://gcc.gnu.org/onlinedocs/5.4.0/
!    6. http://gcc.gnu.org/gcc-5/changes.html
     7. http://gcc.gnu.org/onlinedocs/5.3.0/
!    8. http://gcc.gnu.org/gcc-5/changes.html
     9. http://gcc.gnu.org/onlinedocs/5.2.0/
!   10. http://gcc.gnu.org/gcc-5/changes.html
    11. http://gcc.gnu.org/onlinedocs/5.1.0/
!   12. http://gcc.gnu.org/gcc-5/buildstat.html
    13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
--- 9055,9076 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-5/changes.html
     3. http://gcc.gnu.org/onlinedocs/5.5.0/
!    4. https://gcc.gnu.org/gcc-5/changes.html
     5. http://gcc.gnu.org/onlinedocs/5.4.0/
!    6. https://gcc.gnu.org/gcc-5/changes.html
     7. http://gcc.gnu.org/onlinedocs/5.3.0/
!    8. https://gcc.gnu.org/gcc-5/changes.html
     9. http://gcc.gnu.org/onlinedocs/5.2.0/
!   10. https://gcc.gnu.org/gcc-5/changes.html
    11. http://gcc.gnu.org/onlinedocs/5.1.0/
!   12. https://gcc.gnu.org/gcc-5/buildstat.html
    13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. https://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. https://gcc.gnu.org/mirrors.html
!   17. https://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
*************** New Targets and Target Specific Improvem
*** 8395,8401 ****
         Using -mcpu=cortex-a72 requires a version of GNU binutils that has
         support for the Cortex-A72.
       * The transitional options -mlra and -mno-lra have been removed. The
!        AArch64 backend now uses the local register allocator (LRA) only.
  
    ARM
  
--- 9613,9619 ----
         Using -mcpu=cortex-a72 requires a version of GNU binutils that has
         support for the Cortex-A72.
       * The transitional options -mlra and -mno-lra have been removed. The
!        AArch64 back end now uses the local register allocator (LRA) only.
  
    ARM
  
*************** New Targets and Target Specific Improvem
*** 8428,8434 ****
         -mtpcs-leaf-frame which are only applicable to the old ABI have
         been deprecated.
       * The transitional options -mlra and -mno-lra have been removed. The
!        ARM backend now uses the local register allocator (LRA) only.
  
    AVR
  
--- 9646,9652 ----
         -mtpcs-leaf-frame which are only applicable to the old ABI have
         been deprecated.
       * The transitional options -mlra and -mno-lra have been removed. The
!        ARM back end now uses the local register allocator (LRA) only.
  
    AVR
  
*************** Target Specific Changes
*** 8740,8750 ****
     provided this notice is preserved.
  
     These pages are [49]maintained by the GCC team. Last modified
!    2023-02-20.
  
  References
  
!    1. http://gcc.gnu.org/gcc-5/changes.html#libstdcxx
     2. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
     3. https://savannah.nongnu.org/bugs/?44574
     4. https://gcc.gnu.org/wiki/Intel MPX support in the GCC compiler
--- 9958,9968 ----
     provided this notice is preserved.
  
     These pages are [49]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
!    1. https://gcc.gnu.org/gcc-5/changes.html#libstdcxx
     2. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
     3. https://savannah.nongnu.org/bugs/?44574
     4. https://gcc.gnu.org/wiki/Intel MPX support in the GCC compiler
*************** References
*** 8753,8765 ****
     7. https://gcc.gnu.org/wiki/OpenACC
     8. https://gcc.gnu.org/install/configure.html
     9. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
!   10. http://gcc.gnu.org/projects/cxx1y.html
    11. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
!   12. http://gcc.gnu.org/projects/cxx1y.html
!   13. http://gcc.gnu.org/projects/cxx1y.html
!   14. http://gcc.gnu.org/projects/cxx1y.html
    15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html
!   16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
    17. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011
    18. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014
    19. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014
--- 9971,9983 ----
     7. https://gcc.gnu.org/wiki/OpenACC
     8. https://gcc.gnu.org/install/configure.html
     9. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
!   10. https://gcc.gnu.org/projects/cxx1y.html
    11. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
!   12. https://gcc.gnu.org/projects/cxx1y.html
!   13. https://gcc.gnu.org/projects/cxx1y.html
!   14. https://gcc.gnu.org/projects/cxx1y.html
    15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html
!   16. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
    17. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011
    18. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014
    19. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014
*************** References and Acknowledgements
*** 8862,8883 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.9/changes.html
     3. http://gcc.gnu.org/onlinedocs/4.9.4/
!    4. http://gcc.gnu.org/gcc-4.9/changes.html
     5. http://gcc.gnu.org/onlinedocs/4.9.3/
!    6. http://gcc.gnu.org/gcc-4.9/changes.html
     7. http://gcc.gnu.org/onlinedocs/4.9.2/
!    8. http://gcc.gnu.org/gcc-4.9/changes.html
     9. http://gcc.gnu.org/onlinedocs/4.9.1/
!   10. http://gcc.gnu.org/gcc-4.9/changes.html
    11. https://gcc.gnu.org/onlinedocs/4.9.0/
!   12. http://gcc.gnu.org/gcc-4.9/buildstat.html
    13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
--- 10080,10101 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.9/changes.html
     3. http://gcc.gnu.org/onlinedocs/4.9.4/
!    4. https://gcc.gnu.org/gcc-4.9/changes.html
     5. http://gcc.gnu.org/onlinedocs/4.9.3/
!    6. https://gcc.gnu.org/gcc-4.9/changes.html
     7. http://gcc.gnu.org/onlinedocs/4.9.2/
!    8. https://gcc.gnu.org/gcc-4.9/changes.html
     9. http://gcc.gnu.org/onlinedocs/4.9.1/
!   10. https://gcc.gnu.org/gcc-4.9/changes.html
    11. https://gcc.gnu.org/onlinedocs/4.9.0/
!   12. https://gcc.gnu.org/gcc-4.9/buildstat.html
    13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. https://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. https://gcc.gnu.org/mirrors.html
!   17. https://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
*************** New Targets and Target Specific Improvem
*** 9260,9274 ****
       * Coverage of more of the ISA including the SIMD extensions has been
         added. The Advanced SIMD intrinsics have also been improved.
       * The new local register allocator (LRA) is now on by default for the
!        AArch64 backend.
       * The REE (Redundant extension elimination) pass has now been enabled
!        by default for the AArch64 backend.
       * Tuning for the Cortex-A53 and Cortex-A57 has been improved.
       * Initial big.LITTLE tuning support for the combination of Cortex-A57
         and Cortex-A53 was added through the -mcpu=cortex-a57.cortex-a53
         option.
       * A number of structural changes have been made to both the ARM and
!        AArch64 backends to facilitate improved code-generation.
       * As of GCC 4.9.2 a workaround for the ARM Cortex-A53 erratum 835769
         has been added and can be enabled by giving the
         -mfix-cortex-a53-835769 option. Alternatively it can be enabled by
--- 10478,10492 ----
       * Coverage of more of the ISA including the SIMD extensions has been
         added. The Advanced SIMD intrinsics have also been improved.
       * The new local register allocator (LRA) is now on by default for the
!        AArch64 back end.
       * The REE (Redundant extension elimination) pass has now been enabled
!        by default for the AArch64 back end.
       * Tuning for the Cortex-A53 and Cortex-A57 has been improved.
       * Initial big.LITTLE tuning support for the combination of Cortex-A57
         and Cortex-A53 was added through the -mcpu=cortex-a57.cortex-a53
         option.
       * A number of structural changes have been made to both the ARM and
!        AArch64 back ends to facilitate improved code-generation.
       * As of GCC 4.9.2 a workaround for the ARM Cortex-A53 erratum 835769
         has been added and can be enabled by giving the
         -mfix-cortex-a53-835769 option. Alternatively it can be enabled by
*************** New Targets and Target Specific Improvem
*** 9309,9315 ****
         data segments to be relative to text segments has been added. This
         is on by default for all targets except VxWorks RTP.
       * A number of infrastructural changes have been made to both the ARM
!        and AArch64 backends to facilitate improved code-generation.
       * GCC now supports Cortex-A12 and the Cortex-R7 through the
         -mcpu=cortex-a12 and -mcpu=cortex-r7 options.
       * GCC now has tuning for the Cortex-A57 and Cortex-A53 through the
--- 10527,10533 ----
         data segments to be relative to text segments has been added. This
         is on by default for all targets except VxWorks RTP.
       * A number of infrastructural changes have been made to both the ARM
!        and AArch64 back ends to facilitate improved code-generation.
       * GCC now supports Cortex-A12 and the Cortex-R7 through the
         -mcpu=cortex-a12 and -mcpu=cortex-r7 options.
       * GCC now has tuning for the Cortex-A57 and Cortex-A53 through the
*************** New Targets and Target Specific Improvem
*** 9371,9384 ****
  
    MSP430
  
!      * A new command-line option -mcpu= has been added to the MSP430
!        backend. This option is used to specify the ISA to be used.
!        Accepted values are msp430 (the default), msp430x and msp430xv2.
!        The ISA is no longer deduced from the -mmcu= option as there are
!        far too many different MCU names. The -mmcu= option is still
!        supported, and this is still used to select linker scripts and
!        generate a C preprocessor symbol that will be recognised by the
!        msp430.h header file.
  
    NDS32
  
--- 10589,10602 ----
  
    MSP430
  
!      * A new command-line option -mcpu= has been added to the MSP430 back
!        end. This option is used to specify the ISA to be used. Accepted
!        values are msp430 (the default), msp430x and msp430xv2. The ISA is
!        no longer deduced from the -mmcu= option as there are far too many
!        different MCU names. The -mmcu= option is still supported, and this
!        is still used to select linker scripts and generate a C
!        preprocessor symbol that will be recognised by the msp430.h header
!        file.
  
    NDS32
  
*************** GCC 4.9.4
*** 9495,9501 ****
     provided this notice is preserved.
  
     These pages are [33]maintained by the GCC team. Last modified
!    2023-01-19.
  
  References
  
--- 10713,10719 ----
     provided this notice is preserved.
  
     These pages are [33]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
*************** References
*** 9506,9518 ****
     5. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html#index-fsimd-cost-model-908
     6. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252
     7. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html
!    8. http://gcc.gnu.org/projects/cxx1y.html
     9. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html
!   10. http://gcc.gnu.org/projects/cxx1y.html
!   11. http://gcc.gnu.org/projects/cxx1y.html
!   12. http://gcc.gnu.org/projects/cxx1y.html
!   13. http://gcc.gnu.org/projects/cxx1y.html
!   14. http://gcc.gnu.org/projects/cxx1y.html
    15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3889.pdf
    16. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/libstdc++/manual/manual/status.html#status.iso.2011
    17. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014
--- 10724,10736 ----
     5. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html#index-fsimd-cost-model-908
     6. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252
     7. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html
!    8. https://gcc.gnu.org/projects/cxx1y.html
     9. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html
!   10. https://gcc.gnu.org/projects/cxx1y.html
!   11. https://gcc.gnu.org/projects/cxx1y.html
!   12. https://gcc.gnu.org/projects/cxx1y.html
!   13. https://gcc.gnu.org/projects/cxx1y.html
!   14. https://gcc.gnu.org/projects/cxx1y.html
    15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3889.pdf
    16. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/libstdc++/manual/manual/status.html#status.iso.2011
    17. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014
*************** References and Acknowledgements
*** 9604,9627 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.8/changes.html
     3. https://gcc.gnu.org/onlinedocs/4.8.5/
!    4. http://gcc.gnu.org/gcc-4.8/changes.html
     5. https://gcc.gnu.org/onlinedocs/4.8.4/
!    6. http://gcc.gnu.org/gcc-4.8/changes.html
     7. https://gcc.gnu.org/onlinedocs/4.8.3/
!    8. http://gcc.gnu.org/gcc-4.8/changes.html
     9. https://gcc.gnu.org/onlinedocs/4.8.2/
!   10. http://gcc.gnu.org/gcc-4.8/changes.html
    11. https://gcc.gnu.org/onlinedocs/4.8.1/
!   12. http://gcc.gnu.org/gcc-4.8/changes.html
    13. https://gcc.gnu.org/onlinedocs/4.8.0/
!   14. http://gcc.gnu.org/gcc-4.8/buildstat.html
    15. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   16. http://gcc.gnu.org/index.html
    17. mailto:gcc@gcc.gnu.org
!   18. http://gcc.gnu.org/mirrors.html
!   19. http://gcc.gnu.org/git.html
    20. https://gcc.gnu.org/onlinedocs/
    21. mailto:gcc-help@gcc.gnu.org
    22. mailto:gcc@gcc.gnu.org
--- 10822,10845 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.8/changes.html
     3. https://gcc.gnu.org/onlinedocs/4.8.5/
!    4. https://gcc.gnu.org/gcc-4.8/changes.html
     5. https://gcc.gnu.org/onlinedocs/4.8.4/
!    6. https://gcc.gnu.org/gcc-4.8/changes.html
     7. https://gcc.gnu.org/onlinedocs/4.8.3/
!    8. https://gcc.gnu.org/gcc-4.8/changes.html
     9. https://gcc.gnu.org/onlinedocs/4.8.2/
!   10. https://gcc.gnu.org/gcc-4.8/changes.html
    11. https://gcc.gnu.org/onlinedocs/4.8.1/
!   12. https://gcc.gnu.org/gcc-4.8/changes.html
    13. https://gcc.gnu.org/onlinedocs/4.8.0/
!   14. https://gcc.gnu.org/gcc-4.8/buildstat.html
    15. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   16. https://gcc.gnu.org/index.html
    17. mailto:gcc@gcc.gnu.org
!   18. https://gcc.gnu.org/mirrors.html
!   19. https://gcc.gnu.org/git.html
    20. https://gcc.gnu.org/onlinedocs/
    21. mailto:gcc-help@gcc.gnu.org
    22. mailto:gcc@gcc.gnu.org
*************** References
*** 10365,10377 ****
     6. https://github.com/google/sanitizers
     7. https://code.google.com/archive/p/data-race-test/wikis/ThreadSanitizer.wiki
     8. https://lkml.org/lkml/2006/11/28/239
!    9. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   10. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   11. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
    12. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
!   13. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
    14. https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html
!   15. http://gcc.gnu.org/projects/cxx1y.html
    16. https://gcc.gnu.org/onlinedocs/gcc-4.8.4/libstdc++/manual/manual/status.html#status.iso.2011
    17. https://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html
    18. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
--- 11583,11595 ----
     6. https://github.com/google/sanitizers
     7. https://code.google.com/archive/p/data-race-test/wikis/ThreadSanitizer.wiki
     8. https://lkml.org/lkml/2006/11/28/239
!    9. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   10. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   11. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
    12. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
!   13. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html
    14. https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html
!   15. https://gcc.gnu.org/projects/cxx1y.html
    16. https://gcc.gnu.org/onlinedocs/gcc-4.8.4/libstdc++/manual/manual/status.html#status.iso.2011
    17. https://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html
    18. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
*************** References and Acknowledgements
*** 10469,10490 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.7/changes.html
     3. https://gcc.gnu.org/onlinedocs/4.7.4/
!    4. http://gcc.gnu.org/gcc-4.7/changes.html
     5. https://gcc.gnu.org/onlinedocs/4.7.3/
!    6. http://gcc.gnu.org/gcc-4.7/changes.html
     7. https://gcc.gnu.org/onlinedocs/4.7.2/
!    8. http://gcc.gnu.org/gcc-4.7/changes.html
     9. https://gcc.gnu.org/onlinedocs/4.7.1/
!   10. http://gcc.gnu.org/gcc-4.7/changes.html
    11. https://gcc.gnu.org/onlinedocs/4.7.0/
!   12. http://gcc.gnu.org/gcc-4.7/buildstat.html
    13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
--- 11687,11708 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.7/changes.html
     3. https://gcc.gnu.org/onlinedocs/4.7.4/
!    4. https://gcc.gnu.org/gcc-4.7/changes.html
     5. https://gcc.gnu.org/onlinedocs/4.7.3/
!    6. https://gcc.gnu.org/gcc-4.7/changes.html
     7. https://gcc.gnu.org/onlinedocs/4.7.2/
!    8. https://gcc.gnu.org/gcc-4.7/changes.html
     9. https://gcc.gnu.org/onlinedocs/4.7.1/
!   10. https://gcc.gnu.org/gcc-4.7/changes.html
    11. https://gcc.gnu.org/onlinedocs/4.7.0/
!   12. https://gcc.gnu.org/gcc-4.7/buildstat.html
    13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. https://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. https://gcc.gnu.org/mirrors.html
!   17. https://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
*************** References
*** 11294,11305 ****
     4. https://gcc.gnu.org/gcc-4.7/porting_to.html
     5. https://gcc.gnu.org/wiki/TransactionalMemory
     6. https://gcc.gnu.org/wiki/Atomic/GCCMM
!    7. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!    8. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!    9. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   10. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   11. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   12. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    13. https://gcc.gnu.org/PR14258
    14. https://gcc.gnu.org/PR35688
    15. https://gcc.gnu.org/onlinedocs/gcc-4.7.4/libstdc++/manual/manual/status.html#status.iso.2011
--- 12512,12523 ----
     4. https://gcc.gnu.org/gcc-4.7/porting_to.html
     5. https://gcc.gnu.org/wiki/TransactionalMemory
     6. https://gcc.gnu.org/wiki/Atomic/GCCMM
!    7. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!    8. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!    9. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   10. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   11. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   12. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    13. https://gcc.gnu.org/PR14258
    14. https://gcc.gnu.org/PR35688
    15. https://gcc.gnu.org/onlinedocs/gcc-4.7.4/libstdc++/manual/manual/status.html#status.iso.2011
*************** References and Acknowledgements
*** 11411,11432 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.6/changes.html
     3. https://gcc.gnu.org/onlinedocs/4.6.4/
!    4. http://gcc.gnu.org/gcc-4.6/changes.html
     5. https://gcc.gnu.org/onlinedocs/4.6.3/
!    6. http://gcc.gnu.org/gcc-4.6/changes.html
     7. https://gcc.gnu.org/onlinedocs/4.6.2/
!    8. http://gcc.gnu.org/gcc-4.6/changes.html
     9. https://gcc.gnu.org/onlinedocs/4.6.1/
!   10. http://gcc.gnu.org/gcc-4.6/changes.html
    11. https://gcc.gnu.org/onlinedocs/4.6.0/
!   12. http://gcc.gnu.org/gcc-4.6/buildstat.html
    13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
--- 12629,12650 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.6/changes.html
     3. https://gcc.gnu.org/onlinedocs/4.6.4/
!    4. https://gcc.gnu.org/gcc-4.6/changes.html
     5. https://gcc.gnu.org/onlinedocs/4.6.3/
!    6. https://gcc.gnu.org/gcc-4.6/changes.html
     7. https://gcc.gnu.org/onlinedocs/4.6.2/
!    8. https://gcc.gnu.org/gcc-4.6/changes.html
     9. https://gcc.gnu.org/onlinedocs/4.6.1/
!   10. https://gcc.gnu.org/gcc-4.6/changes.html
    11. https://gcc.gnu.org/onlinedocs/4.6.0/
!   12. https://gcc.gnu.org/gcc-4.6/buildstat.html
    13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. https://gcc.gnu.org/index.html
    15. mailto:gcc@gcc.gnu.org
!   16. https://gcc.gnu.org/mirrors.html
!   17. https://gcc.gnu.org/git.html
    18. https://gcc.gnu.org/onlinedocs/
    19. mailto:gcc-help@gcc.gnu.org
    20. mailto:gcc@gcc.gnu.org
*************** GCC 4.6.4
*** 12334,12345 ****
  References
  
     1. https://sourceware.org/bugzilla/show_bug.cgi?id=10401
!    2. http://gcc.gnu.org/gcc-4.5/changes.html
!    3. http://gcc.gnu.org/gcc-4.5/changes.html#obsoleted
!    4. http://gcc.gnu.org/gcc-4.6/porting_to.html
!    5. http://gcc.gnu.org/projects/lto/whopr.pdf
     6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
!    7. http://gcc.gnu.org/gcc-4.6/cxx0x_status.html
     8. https://gcc.gnu.org/PR43145
     9. https://gcc.gnu.org/PR43680
    10. https://gcc.gnu.org/PR33558
--- 13552,13563 ----
  References
  
     1. https://sourceware.org/bugzilla/show_bug.cgi?id=10401
!    2. https://gcc.gnu.org/gcc-4.5/changes.html
!    3. https://gcc.gnu.org/gcc-4.5/changes.html#obsoleted
!    4. https://gcc.gnu.org/gcc-4.6/porting_to.html
!    5. https://gcc.gnu.org/projects/lto/whopr.pdf
     6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
!    7. https://gcc.gnu.org/gcc-4.6/cxx0x_status.html
     8. https://gcc.gnu.org/PR43145
     9. https://gcc.gnu.org/PR43680
    10. https://gcc.gnu.org/PR33558
*************** References and Acknowledgements
*** 12430,12446 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.5/changes.html
!    3. http://gcc.gnu.org/gcc-4.5/changes.html
!    4. http://gcc.gnu.org/gcc-4.5/changes.html
!    5. http://gcc.gnu.org/gcc-4.5/changes.html
!    6. http://gcc.gnu.org/gcc-4.5/changes.html
!    7. http://gcc.gnu.org/gcc-4.5/buildstat.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    9. http://gcc.gnu.org/index.html
    10. mailto:gcc@gcc.gnu.org
!   11. http://gcc.gnu.org/mirrors.html
!   12. http://gcc.gnu.org/git.html
    13. https://gcc.gnu.org/onlinedocs/
    14. mailto:gcc-help@gcc.gnu.org
    15. mailto:gcc@gcc.gnu.org
--- 13648,13664 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.5/changes.html
!    3. https://gcc.gnu.org/gcc-4.5/changes.html
!    4. https://gcc.gnu.org/gcc-4.5/changes.html
!    5. https://gcc.gnu.org/gcc-4.5/changes.html
!    6. https://gcc.gnu.org/gcc-4.5/changes.html
!    7. https://gcc.gnu.org/gcc-4.5/buildstat.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    9. https://gcc.gnu.org/index.html
    10. mailto:gcc@gcc.gnu.org
!   11. https://gcc.gnu.org/mirrors.html
!   12. https://gcc.gnu.org/git.html
    13. https://gcc.gnu.org/onlinedocs/
    14. mailto:gcc-help@gcc.gnu.org
    15. mailto:gcc@gcc.gnu.org
*************** GCC 4.5.4
*** 13096,13122 ****
     provided this notice is preserved.
  
     These pages are [32]maintained by the GCC team. Last modified
!    2023-01-15.
  
  References
  
!    1. https://www.multiprecision.org/mpc/
     2. https://gcc.gnu.org/install/prerequisites.html
     3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html
!    4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted
!    5. http://gcc.gnu.org/gcc-4.5/changes.html#x86
     6. https://gcc.gnu.org/PR30789
     7. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
     8. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802
     9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800
    10. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html
!   11. http://gcc.gnu.org/gcc-4.5/cxx0x_status.html
    12. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757
    13. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176
    14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html
    15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733
    16. https://sourceware.org/gdb/wiki/STLSupport
!   17. http://gcc.gnu.org/gcc-4.4/changes.html
    18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html
    19. https://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html
    20. https://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html
--- 14314,14340 ----
     provided this notice is preserved.
  
     These pages are [32]maintained by the GCC team. Last modified
!    2023-07-30.
  
  References
  
!    1. https://www.multiprecision.org/
     2. https://gcc.gnu.org/install/prerequisites.html
     3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html
!    4. https://gcc.gnu.org/gcc-4.4/changes.html#obsoleted
!    5. https://gcc.gnu.org/gcc-4.5/changes.html#x86
     6. https://gcc.gnu.org/PR30789
     7. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
     8. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802
     9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800
    10. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html
!   11. https://gcc.gnu.org/gcc-4.5/cxx0x_status.html
    12. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757
    13. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176
    14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html
    15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733
    16. https://sourceware.org/gdb/wiki/STLSupport
!   17. https://gcc.gnu.org/gcc-4.4/changes.html
    18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html
    19. https://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html
    20. https://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html
*************** References and Acknowledgements
*** 13210,13229 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.4/changes.html
!    3. http://gcc.gnu.org/gcc-4.4/changes.html
!    4. http://gcc.gnu.org/gcc-4.4/changes.html
!    5. http://gcc.gnu.org/gcc-4.4/changes.html
!    6. http://gcc.gnu.org/gcc-4.4/changes.html
!    7. http://gcc.gnu.org/gcc-4.4/changes.html
!    8. http://gcc.gnu.org/gcc-4.4/changes.html
!    9. http://gcc.gnu.org/gcc-4.4/changes.html
!   10. http://gcc.gnu.org/gcc-4.4/buildstat.html
    11. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   12. http://gcc.gnu.org/index.html
    13. mailto:gcc@gcc.gnu.org
!   14. http://gcc.gnu.org/mirrors.html
!   15. http://gcc.gnu.org/git.html
    16. https://gcc.gnu.org/onlinedocs/
    17. mailto:gcc-help@gcc.gnu.org
    18. mailto:gcc@gcc.gnu.org
--- 14428,14447 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.4/changes.html
!    3. https://gcc.gnu.org/gcc-4.4/changes.html
!    4. https://gcc.gnu.org/gcc-4.4/changes.html
!    5. https://gcc.gnu.org/gcc-4.4/changes.html
!    6. https://gcc.gnu.org/gcc-4.4/changes.html
!    7. https://gcc.gnu.org/gcc-4.4/changes.html
!    8. https://gcc.gnu.org/gcc-4.4/changes.html
!    9. https://gcc.gnu.org/gcc-4.4/changes.html
!   10. https://gcc.gnu.org/gcc-4.4/buildstat.html
    11. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   12. https://gcc.gnu.org/index.html
    13. mailto:gcc@gcc.gnu.org
!   14. https://gcc.gnu.org/mirrors.html
!   15. https://gcc.gnu.org/git.html
    16. https://gcc.gnu.org/onlinedocs/
    17. mailto:gcc-help@gcc.gnu.org
    18. mailto:gcc@gcc.gnu.org
*************** GCC 4.4.7
*** 13838,13849 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.7
!    2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted
!    3. http://gcc.gnu.org/gcc-4.4/porting_to.html
     4. https://gcc.gnu.org/wiki/Graphite
     5. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf
!    6. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html
     7. https://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html
     8. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125
     9. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221
--- 15056,15067 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-4.4/changes.html#4.4.7
!    2. https://gcc.gnu.org/gcc-4.3/changes.html#obsoleted
!    3. https://gcc.gnu.org/gcc-4.4/porting_to.html
     4. https://gcc.gnu.org/wiki/Graphite
     5. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf
!    6. https://gcc.gnu.org/gcc-4.4/cxx0x_status.html
     7. https://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html
     8. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125
     9. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221
*************** References and Acknowledgements
*** 13936,13954 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.3/changes.html
!    3. http://gcc.gnu.org/gcc-4.3/changes.html
!    4. http://gcc.gnu.org/gcc-4.3/changes.html
!    5. http://gcc.gnu.org/gcc-4.3/changes.html
!    6. http://gcc.gnu.org/gcc-4.3/changes.html
!    7. http://gcc.gnu.org/gcc-4.3/changes.html
!    8. http://gcc.gnu.org/gcc-4.3/changes.html
!    9. http://gcc.gnu.org/gcc-4.3/buildstat.html
    10. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   11. http://gcc.gnu.org/index.html
    12. mailto:gcc@gcc.gnu.org
!   13. http://gcc.gnu.org/mirrors.html
!   14. http://gcc.gnu.org/git.html
    15. https://gcc.gnu.org/onlinedocs/
    16. mailto:gcc-help@gcc.gnu.org
    17. mailto:gcc@gcc.gnu.org
--- 15154,15172 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.3/changes.html
!    3. https://gcc.gnu.org/gcc-4.3/changes.html
!    4. https://gcc.gnu.org/gcc-4.3/changes.html
!    5. https://gcc.gnu.org/gcc-4.3/changes.html
!    6. https://gcc.gnu.org/gcc-4.3/changes.html
!    7. https://gcc.gnu.org/gcc-4.3/changes.html
!    8. https://gcc.gnu.org/gcc-4.3/changes.html
!    9. https://gcc.gnu.org/gcc-4.3/buildstat.html
    10. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   11. https://gcc.gnu.org/index.html
    12. mailto:gcc@gcc.gnu.org
!   13. https://gcc.gnu.org/mirrors.html
!   14. https://gcc.gnu.org/git.html
    15. https://gcc.gnu.org/onlinedocs/
    16. mailto:gcc-help@gcc.gnu.org
    17. mailto:gcc@gcc.gnu.org
*************** GCC 4.3.6
*** 14739,14754 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.5
     2. https://gmplib.org/
     3. https://www.mpfr.org/
     4. https://gcc.gnu.org/install/prerequisites.html
     5. https://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html
     6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
!    7. http://gcc.gnu.org/gcc-4.3/porting_to.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
!    9. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
!   10. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
    11. https://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html
    12. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options
    13. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167
--- 15957,15972 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-4.3/changes.html#4.3.5
     2. https://gmplib.org/
     3. https://www.mpfr.org/
     4. https://gcc.gnu.org/install/prerequisites.html
     5. https://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html
     6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
!    7. https://gcc.gnu.org/gcc-4.3/porting_to.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
!    9. https://gcc.gnu.org/gcc-4.3/cxx0x_status.html
!   10. https://gcc.gnu.org/gcc-4.3/cxx0x_status.html
    11. https://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html
    12. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options
    13. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167
*************** References and Acknowledgements
*** 14838,14854 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.2/changes.html
!    3. http://gcc.gnu.org/gcc-4.2/changes.html
!    4. http://gcc.gnu.org/gcc-4.2/changes.html
!    5. http://gcc.gnu.org/gcc-4.2/changes.html
!    6. http://gcc.gnu.org/gcc-4.2/changes.html
!    7. http://gcc.gnu.org/gcc-4.2/buildstat.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    9. http://gcc.gnu.org/index.html
    10. mailto:gcc@gcc.gnu.org
!   11. http://gcc.gnu.org/mirrors.html
!   12. http://gcc.gnu.org/git.html
    13. https://gcc.gnu.org/onlinedocs/
    14. mailto:gcc-help@gcc.gnu.org
    15. mailto:gcc@gcc.gnu.org
--- 16056,16072 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.2/changes.html
!    3. https://gcc.gnu.org/gcc-4.2/changes.html
!    4. https://gcc.gnu.org/gcc-4.2/changes.html
!    5. https://gcc.gnu.org/gcc-4.2/changes.html
!    6. https://gcc.gnu.org/gcc-4.2/changes.html
!    7. https://gcc.gnu.org/gcc-4.2/buildstat.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    9. https://gcc.gnu.org/index.html
    10. mailto:gcc@gcc.gnu.org
!   11. https://gcc.gnu.org/mirrors.html
!   12. https://gcc.gnu.org/git.html
    13. https://gcc.gnu.org/onlinedocs/
    14. mailto:gcc-help@gcc.gnu.org
    15. mailto:gcc@gcc.gnu.org
*************** Other significant improvements
*** 15164,15170 ****
  
  References
  
!    1. http://gcc.gnu.org/projects/gomp/
     2. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
     3. https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
     4. https://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
--- 16382,16388 ----
  
  References
  
!    1. https://gcc.gnu.org/projects/gomp/
     2. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
     3. https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
     4. https://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
*************** References and Acknowledgements
*** 15238,15252 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
!    3. http://gcc.gnu.org/gcc-4.1/changes.html
!    4. http://gcc.gnu.org/gcc-4.1/changes.html
!    5. http://gcc.gnu.org/gcc-4.1/buildstat.html
     6. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    7. http://gcc.gnu.org/index.html
     8. mailto:gcc@gcc.gnu.org
!    9. http://gcc.gnu.org/mirrors.html
!   10. http://gcc.gnu.org/git.html
    11. https://gcc.gnu.org/onlinedocs/
    12. mailto:gcc-help@gcc.gnu.org
    13. mailto:gcc@gcc.gnu.org
--- 16456,16470 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
!    3. https://gcc.gnu.org/gcc-4.1/changes.html
!    4. https://gcc.gnu.org/gcc-4.1/changes.html
!    5. https://gcc.gnu.org/gcc-4.1/buildstat.html
     6. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    7. https://gcc.gnu.org/index.html
     8. mailto:gcc@gcc.gnu.org
!    9. https://gcc.gnu.org/mirrors.html
!   10. https://gcc.gnu.org/git.html
    11. https://gcc.gnu.org/onlinedocs/
    12. mailto:gcc-help@gcc.gnu.org
    13. mailto:gcc@gcc.gnu.org
*************** GCC 4.1.2
*** 15795,15801 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
     2. https://gcc.gnu.org/ml/java/2005-05/msg00260.html
     3. https://developer.classpath.org/doc/
     4. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
--- 17013,17019 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
     2. https://gcc.gnu.org/ml/java/2005-05/msg00260.html
     3. https://developer.classpath.org/doc/
     4. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
*************** References and Acknowledgements
*** 15875,15891 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
!    3. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.3
!    4. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.2
!    5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1
!    6. http://gcc.gnu.org/gcc-4.0/changes.html
!    7. http://gcc.gnu.org/gcc-4.0/buildstat.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    9. http://gcc.gnu.org/index.html
    10. mailto:gcc@gcc.gnu.org
!   11. http://gcc.gnu.org/mirrors.html
!   12. http://gcc.gnu.org/git.html
    13. https://gcc.gnu.org/onlinedocs/
    14. mailto:gcc-help@gcc.gnu.org
    15. mailto:gcc@gcc.gnu.org
--- 17093,17109 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
!    3. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.3
!    4. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.2
!    5. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.1
!    6. https://gcc.gnu.org/gcc-4.0/changes.html
!    7. https://gcc.gnu.org/gcc-4.0/buildstat.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    9. https://gcc.gnu.org/index.html
    10. mailto:gcc@gcc.gnu.org
!   11. https://gcc.gnu.org/mirrors.html
!   12. https://gcc.gnu.org/git.html
    13. https://gcc.gnu.org/onlinedocs/
    14. mailto:gcc-help@gcc.gnu.org
    15. mailto:gcc@gcc.gnu.org
*************** GCC 4.0.4
*** 16399,16413 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
     2. https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
!    3. http://gcc.gnu.org/projects/tree-ssa/
!    4. http://gcc.gnu.org/projects/tree-ssa/vectorization.html
!    5. http://gcc.gnu.org/news/sms.html
     6. https://www.akkadia.org/drepper/dsohowto.pdf
!    7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility
     8. https://itanium-cxx-abi.github.io/cxx-abi/
!    9. http://gcc.gnu.org/fortran/
    10. https://gcc.gnu.org/install/
    11. https://gcc.gnu.org/wiki/Visibility
    12. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1
--- 17617,17631 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
     2. https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
!    3. https://gcc.gnu.org/projects/tree-ssa/
!    4. https://gcc.gnu.org/projects/tree-ssa/vectorization.html
!    5. https://gcc.gnu.org/news/sms.html
     6. https://www.akkadia.org/drepper/dsohowto.pdf
!    7. https://gcc.gnu.org/gcc-4.0/changes.html#visibility
     8. https://itanium-cxx-abi.github.io/cxx-abi/
!    9. https://gcc.gnu.org/fortran/
    10. https://gcc.gnu.org/install/
    11. https://gcc.gnu.org/wiki/Visibility
    12. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1
*************** References and Acknowledgements
*** 16500,16520 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-3.4/changes.html
     3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
!    5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5
!    6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4
!    7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3
!    8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2
!    9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1
!   10. http://gcc.gnu.org/gcc-3.4/changes.html
!   11. http://gcc.gnu.org/gcc-3.4/buildstat.html
    12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   13. http://gcc.gnu.org/index.html
    14. mailto:gcc@gcc.gnu.org
!   15. http://gcc.gnu.org/mirrors.html
!   16. http://gcc.gnu.org/git.html
    17. https://gcc.gnu.org/onlinedocs/
    18. mailto:gcc-help@gcc.gnu.org
    19. mailto:gcc@gcc.gnu.org
--- 17718,17738 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-3.4/changes.html
     3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    4. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
!    5. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.5
!    6. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.4
!    7. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.3
!    8. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.2
!    9. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.1
!   10. https://gcc.gnu.org/gcc-3.4/changes.html
!   11. https://gcc.gnu.org/gcc-3.4/buildstat.html
    12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   13. https://gcc.gnu.org/index.html
    14. mailto:gcc@gcc.gnu.org
!   15. https://gcc.gnu.org/mirrors.html
!   16. https://gcc.gnu.org/git.html
    17. https://gcc.gnu.org/onlinedocs/
    18. mailto:gcc-help@gcc.gnu.org
    19. mailto:gcc@gcc.gnu.org
*************** GCC 3.4.6
*** 18286,18303 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
!    2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
!    3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
!    4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems
!    5. http://gcc.gnu.org/gcc-3.4/mips-abi.html
!    6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
     7. https://www.boost.org/
     8. https://gcc.gnu.org/PR11953
     9. https://gcc.gnu.org/PR8361
    10. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other Builtins
    11. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
!   12. http://gcc.gnu.org/bugs/#cxx_rvalbind
    13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
    14. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
    15. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
--- 19504,19521 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
!    2. https://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
!    3. https://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
!    4. https://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems
!    5. https://gcc.gnu.org/gcc-3.4/mips-abi.html
!    6. https://gcc.gnu.org/gcc-3.4/sparc-abi.html
     7. https://www.boost.org/
     8. https://gcc.gnu.org/PR11953
     9. https://gcc.gnu.org/PR8361
    10. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other Builtins
    11. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
!   12. https://gcc.gnu.org/bugs/#cxx_rvalbind
    13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
    14. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
    15. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
*************** References
*** 18308,18316 ****
    20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
    21. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html
    22. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
!   23. http://gcc.gnu.org/gcc-3.4/mips-abi.html
!   24. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html
!   25. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
    26. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=\[3\.4.*[Rr]egression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED
    27. https://gcc.gnu.org/PR10129
    28. https://gcc.gnu.org/PR14576
--- 19526,19534 ----
    20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
    21. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html
    22. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
!   23. https://gcc.gnu.org/gcc-3.4/mips-abi.html
!   24. https://gcc.gnu.org/gcc-3.4/powerpc-abi.html
!   25. https://gcc.gnu.org/gcc-3.4/sparc-abi.html
    26. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=\[3\.4.*[Rr]egression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED
    27. https://gcc.gnu.org/PR10129
    28. https://gcc.gnu.org/PR14576
*************** References and Acknowledgements
*** 18782,18801 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-3.3/changes.html
     3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
!    5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5
!    6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4
!    7. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
!    8. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2
!    9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1
!   10. http://gcc.gnu.org/gcc-3.3/changes.html
!   11. http://gcc.gnu.org/gcc-3.3/buildstat.html
    12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   13. http://gcc.gnu.org/index.html
    14. mailto:gcc@gcc.gnu.org
!   15. http://gcc.gnu.org/mirrors.html
    16. https://gcc.gnu.org/onlinedocs/
    17. mailto:gcc-help@gcc.gnu.org
    18. mailto:gcc@gcc.gnu.org
--- 20000,20019 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-3.3/changes.html
     3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    4. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
!    5. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.5
!    6. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.4
!    7. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
!    8. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.2
!    9. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.1
!   10. https://gcc.gnu.org/gcc-3.3/changes.html
!   11. https://gcc.gnu.org/gcc-3.3/buildstat.html
    12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   13. https://gcc.gnu.org/index.html
    14. mailto:gcc@gcc.gnu.org
!   15. https://gcc.gnu.org/mirrors.html
    16. https://gcc.gnu.org/onlinedocs/
    17. mailto:gcc-help@gcc.gnu.org
    18. mailto:gcc@gcc.gnu.org
*************** GCC 3.3.6
*** 20155,20166 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
!    2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems
!    3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
!    4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute
!    5. http://gcc.gnu.org/news/dfa.html
!    6. http://gcc.gnu.org/c99status.html
     7. https://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html
     8. https://gcc.gnu.org/PR10140
     9. https://gcc.gnu.org/PR10198
--- 21373,21384 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
!    2. https://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems
!    3. https://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
!    4. https://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute
!    5. https://gcc.gnu.org/news/dfa.html
!    6. https://gcc.gnu.org/c99status.html
     7. https://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html
     8. https://gcc.gnu.org/PR10140
     9. https://gcc.gnu.org/PR10198
*************** References and Acknowledgements
*** 20785,20800 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-3.2/changes.html
!    3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
!    4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2
!    5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1
!    6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2
!    7. http://gcc.gnu.org/gcc-3.2/buildstat.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    9. http://gcc.gnu.org/index.html
    10. mailto:gcc@gcc.gnu.org
!   11. http://gcc.gnu.org/mirrors.html
    12. https://gcc.gnu.org/onlinedocs/
    13. mailto:gcc-help@gcc.gnu.org
    14. mailto:gcc@gcc.gnu.org
--- 22003,22018 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-3.2/changes.html
!    3. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
!    4. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.2
!    5. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.1
!    6. https://gcc.gnu.org/gcc-3.2/changes.html#3.2
!    7. https://gcc.gnu.org/gcc-3.2/buildstat.html
     8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    9. https://gcc.gnu.org/index.html
    10. mailto:gcc@gcc.gnu.org
!   11. https://gcc.gnu.org/mirrors.html
    12. https://gcc.gnu.org/onlinedocs/
    13. mailto:gcc-help@gcc.gnu.org
    14. mailto:gcc@gcc.gnu.org
*************** GCC 3.2
*** 21406,21414 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
!    2. http://gcc.gnu.org/gcc-3.1/changes.html
!    3. http://gcc.gnu.org/gcc-3.2/c++-abi.html
     4. https://gcc.gnu.org/PR3782
     5. https://gcc.gnu.org/PR6440
     6. https://gcc.gnu.org/PR7050
--- 22624,22632 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
!    2. https://gcc.gnu.org/gcc-3.1/changes.html
!    3. https://gcc.gnu.org/gcc-3.2/c++-abi.html
     4. https://gcc.gnu.org/PR3782
     5. https://gcc.gnu.org/PR6440
     6. https://gcc.gnu.org/PR7050
*************** References
*** 21712,21723 ****
  
     1. http://www.gnu.org/
     2. http://www.gnu.org/
!    3. http://gcc.gnu.org/gcc-3.1/buildstat.html
!    4. http://gcc.gnu.org/gcc-3.1/changes.html
     5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    6. http://gcc.gnu.org/index.html
     7. mailto:gcc@gcc.gnu.org
!    8. http://gcc.gnu.org/mirrors.html
     9. https://gcc.gnu.org/onlinedocs/
    10. mailto:gcc-help@gcc.gnu.org
    11. mailto:gcc@gcc.gnu.org
--- 22930,22941 ----
  
     1. http://www.gnu.org/
     2. http://www.gnu.org/
!    3. https://gcc.gnu.org/gcc-3.1/buildstat.html
!    4. https://gcc.gnu.org/gcc-3.1/changes.html
     5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    6. https://gcc.gnu.org/index.html
     7. mailto:gcc@gcc.gnu.org
!    8. https://gcc.gnu.org/mirrors.html
     9. https://gcc.gnu.org/onlinedocs/
    10. mailto:gcc-help@gcc.gnu.org
    11. mailto:gcc@gcc.gnu.org
*************** Documentation improvements
*** 22064,22072 ****
  References
  
     1. https://gcc.gnu.org/ml/gcc/2002-07/msg01208.html
!    2. http://gcc.gnu.org/news/profiledriven.html
!    3. http://gcc.gnu.org/benchmarks/
!    4. http://gcc.gnu.org/c99status.html
     5. https://gcc.gnu.org/onlinedocs/libstdc++/faq.html
     6. https://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html
     7. https://www.adacore.com/
--- 23282,23290 ----
  References
  
     1. https://gcc.gnu.org/ml/gcc/2002-07/msg01208.html
!    2. https://gcc.gnu.org/news/profiledriven.html
!    3. https://gcc.gnu.org/benchmarks/
!    4. https://gcc.gnu.org/c99status.html
     5. https://gcc.gnu.org/onlinedocs/libstdc++/faq.html
     6. https://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html
     7. https://www.adacore.com/
*************** Previous 3.0.x Releases
*** 22137,22149 ****
  References
  
     1. http://www.gnu.org/
!    2. http://gcc.gnu.org/gcc-3.0/features.html
!    3. http://gcc.gnu.org/gcc-3.0/buildstat.html
     4. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    5. http://gcc.gnu.org/gcc-3.0/caveats.html
!    6. http://gcc.gnu.org/index.html
     7. mailto:gcc@gcc.gnu.org
!    8. http://gcc.gnu.org/mirrors.html
     9. https://gcc.gnu.org/onlinedocs/
    10. mailto:gcc-help@gcc.gnu.org
    11. mailto:gcc@gcc.gnu.org
--- 23355,23367 ----
  References
  
     1. http://www.gnu.org/
!    2. https://gcc.gnu.org/gcc-3.0/features.html
!    3. https://gcc.gnu.org/gcc-3.0/buildstat.html
     4. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    5. https://gcc.gnu.org/gcc-3.0/caveats.html
!    6. https://gcc.gnu.org/index.html
     7. mailto:gcc@gcc.gnu.org
!    8. https://gcc.gnu.org/mirrors.html
     9. https://gcc.gnu.org/onlinedocs/
    10. mailto:gcc-help@gcc.gnu.org
    11. mailto:gcc@gcc.gnu.org
*************** Other significant improvements
*** 22327,22343 ****
  References
  
     1. http://www.netbsd.org/
!    2. http://gcc.gnu.org/news/reorder.html
!    3. http://gcc.gnu.org/news/ssa.html
!    4. http://gcc.gnu.org/news/null.html
!    5. http://gcc.gnu.org/news/unify.html
!    6. http://gcc.gnu.org/gcc-3.0/c++features.html
!    7. http://gcc.gnu.org/news/inlining.html
!    8. http://gcc.gnu.org/news/dependencies.html
!    9. http://gcc.gnu.org/c99status.html
    10. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html
!   11. http://gcc.gnu.org/gcc-3.0/libgcc.html
!   12. http://gcc.gnu.org/gcc-2.95/features.html
    13. https://gcc.gnu.org/onlinedocs/
    14. mailto:gcc-help@gcc.gnu.org
    15. mailto:gcc@gcc.gnu.org
--- 23545,23561 ----
  References
  
     1. http://www.netbsd.org/
!    2. https://gcc.gnu.org/news/reorder.html
!    3. https://gcc.gnu.org/news/ssa.html
!    4. https://gcc.gnu.org/news/null.html
!    5. https://gcc.gnu.org/news/unify.html
!    6. https://gcc.gnu.org/gcc-3.0/c++features.html
!    7. https://gcc.gnu.org/news/inlining.html
!    8. https://gcc.gnu.org/news/dependencies.html
!    9. https://gcc.gnu.org/c99status.html
    10. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html
!   11. https://gcc.gnu.org/gcc-3.0/libgcc.html
!   12. https://gcc.gnu.org/gcc-2.95/features.html
    13. https://gcc.gnu.org/onlinedocs/
    14. mailto:gcc-help@gcc.gnu.org
    15. mailto:gcc@gcc.gnu.org
*************** References and Acknowledgements
*** 22477,22490 ****
  
  References
  
!    1. http://gcc.gnu.org/gcc-2.95/regress.html
!    2. http://gcc.gnu.org/gcc-2.95/othertest.html
!    3. http://gcc.gnu.org/gcc-2.95/features.html
!    4. http://gcc.gnu.org/gcc-2.95/buildstat.html
     5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    6. http://gcc.gnu.org/gcc-2.95/caveats.html
!    7. http://gcc.gnu.org/mirrors.html
!    8. http://gcc.gnu.org/index.html
     9. mailto:gcc@gcc.gnu.org
    10. https://gcc.gnu.org/onlinedocs/
    11. mailto:gcc-help@gcc.gnu.org
--- 23695,23708 ----
  
  References
  
!    1. https://gcc.gnu.org/gcc-2.95/regress.html
!    2. https://gcc.gnu.org/gcc-2.95/othertest.html
!    3. https://gcc.gnu.org/gcc-2.95/features.html
!    4. https://gcc.gnu.org/gcc-2.95/buildstat.html
     5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    6. https://gcc.gnu.org/gcc-2.95/caveats.html
!    7. https://gcc.gnu.org/mirrors.html
!    8. https://gcc.gnu.org/index.html
     9. mailto:gcc@gcc.gnu.org
    10. https://gcc.gnu.org/onlinedocs/
    11. mailto:gcc-help@gcc.gnu.org
*************** http://gcc.gnu.org/gcc-2.95/features.htm
*** 22522,22528 ****
            + More support for various pragmas which appear in vendor
              include files
       * New Targets and Target Specific Improvements
!           + [14]SPARC backend rewrite.
            + -mschedule=8000 will optimize code for PA8000 class
              processors; -mpa-risc-2-0 will generate code for PA2.0
              processors
--- 23740,23746 ----
            + More support for various pragmas which appear in vendor
              include files
       * New Targets and Target Specific Improvements
!           + [14]SPARC back end rewrite.
            + -mschedule=8000 will optimize code for PA8000 class
              processors; -mpa-risc-2-0 will generate code for PA2.0
              processors
*************** Additional Changes in GCC 2.95.2
*** 22662,22668 ****
       * Platform specific bugfixes and improvements
            + Work around bug in Sun V5.0 compilers which caused bootstrap
              comparison failures on SPARC targets.
!           + Fix SPARC backend bug which caused aborts in final.c.
            + Fix sparc-hal-solaris2* configuration fragments.
            + Fix bug in sparc block profiling.
            + Fix obscure code generation bug for the PARISC targets.
--- 23880,23886 ----
       * Platform specific bugfixes and improvements
            + Work around bug in Sun V5.0 compilers which caused bootstrap
              comparison failures on SPARC targets.
!           + Fix SPARC back end bug which caused aborts in final.c.
            + Fix sparc-hal-solaris2* configuration fragments.
            + Fix bug in sparc block profiling.
            + Fix obscure code generation bug for the PARISC targets.
*************** Additional Changes in GCC 2.95.3
*** 22737,22762 ****
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
!    1. http://gcc.gnu.org/news/spill.html
!    2. http://gcc.gnu.org/news/lcm.html
!    3. http://gcc.gnu.org/news/cprop.html
!    4. http://gcc.gnu.org/news/cfg.html
!    5. http://gcc.gnu.org/news/dse.html
!    6. http://gcc.gnu.org/news/hoist.html
!    7. http://gcc.gnu.org/news/alias.html
!    8. http://gcc.gnu.org/gcc-2.95/c++features.html
     9. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html
!   10. http://gcc.gnu.org/news/gcj-announce.txt
!   11. http://gcc.gnu.org/news/javaannounce.html
!   12. http://gcc.gnu.org/c99status.html
!   13. http://gcc.gnu.org/news/chill.html
!   14. http://gcc.gnu.org/news/sparc.html
!   15. http://gcc.gnu.org/news/egcs-vcg.html
!   16. http://gcc.gnu.org/egcs-1.0/features-2.8.html
    17. https://gcc.gnu.org/onlinedocs/
    18. mailto:gcc-help@gcc.gnu.org
    19. mailto:gcc@gcc.gnu.org
--- 23955,23980 ----
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
!    1. https://gcc.gnu.org/news/spill.html
!    2. https://gcc.gnu.org/news/lcm.html
!    3. https://gcc.gnu.org/news/cprop.html
!    4. https://gcc.gnu.org/news/cfg.html
!    5. https://gcc.gnu.org/news/dse.html
!    6. https://gcc.gnu.org/news/hoist.html
!    7. https://gcc.gnu.org/news/alias.html
!    8. https://gcc.gnu.org/gcc-2.95/c++features.html
     9. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html
!   10. https://gcc.gnu.org/news/gcj-announce.txt
!   11. https://gcc.gnu.org/news/javaannounce.html
!   12. https://gcc.gnu.org/c99status.html
!   13. https://gcc.gnu.org/news/chill.html
!   14. https://gcc.gnu.org/news/sparc.html
!   15. https://gcc.gnu.org/news/egcs-vcg.html
!   16. https://gcc.gnu.org/egcs-1.0/features-2.8.html
    17. https://gcc.gnu.org/onlinedocs/
    18. mailto:gcc-help@gcc.gnu.org
    19. mailto:gcc@gcc.gnu.org
*************** http://gcc.gnu.org/egcs-1.1/index.html
*** 22902,22908 ****
            + Fix a few arm code generation bugs.
            + Fixincludes will fix additional broken SCO OpenServer header
              files.
!           + Fix a m68k backend bug which caused invalid offsets in reg+d
              addresses.
            + Fix problems with 64bit AIX 4.3 support.
            + Fix handling of long longs for varargs/stdarg functions on the
--- 24120,24126 ----
            + Fix a few arm code generation bugs.
            + Fixincludes will fix additional broken SCO OpenServer header
              files.
!           + Fix a m68k back end bug which caused invalid offsets in reg+d
              addresses.
            + Fix problems with 64bit AIX 4.3 support.
            + Fix handling of long longs for varargs/stdarg functions on the
*************** http://gcc.gnu.org/egcs-1.1/index.html
*** 23039,23057 ****
     provided this notice is preserved.
  
     These pages are [15]maintained by the GCC team. Last modified
!    2023-01-21.
  
  References
  
!    1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html
!    2. http://gcc.gnu.org/news/gcse.html
!    3. http://gcc.gnu.org/news/alias.html
!    4. http://gcc.gnu.org/egcs-1.1/c++features.html
!    5. http://gcc.gnu.org/egcs-1.1/features.html
!    6. http://gcc.gnu.org/egcs-1.1/buildstat.html
     7. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    8. http://gcc.gnu.org/egcs-1.1/caveats.html
!    9. http://gcc.gnu.org/mirrors.html
    10. https://gcc.gnu.org/onlinedocs/
    11. mailto:gcc-help@gcc.gnu.org
    12. mailto:gcc@gcc.gnu.org
--- 24257,24275 ----
     provided this notice is preserved.
  
     These pages are [15]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
!    1. https://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html
!    2. https://gcc.gnu.org/news/gcse.html
!    3. https://gcc.gnu.org/news/alias.html
!    4. https://gcc.gnu.org/egcs-1.1/c++features.html
!    5. https://gcc.gnu.org/egcs-1.1/features.html
!    6. https://gcc.gnu.org/egcs-1.1/buildstat.html
     7. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!    8. https://gcc.gnu.org/egcs-1.1/caveats.html
!    9. https://gcc.gnu.org/mirrors.html
    10. https://gcc.gnu.org/onlinedocs/
    11. mailto:gcc-help@gcc.gnu.org
    12. mailto:gcc@gcc.gnu.org
*************** http://gcc.gnu.org/egcs-1.1/features.htm
*** 23114,23120 ****
              Intel recommendations now. Various improvements throughout the
              x86 port to improve performance on Pentium processors
              (including improved epilogue sequences for Pentium chips and
!             backend improvements which should help register allocation on
              all x86 variants. Conditional move support has been fixed and
              enabled for PPro processors. The x86 port also better supports
              64bit operations now. Unixware 7, a System V Release 5 target,
--- 24332,24338 ----
              Intel recommendations now. Various improvements throughout the
              x86 port to improve performance on Pentium processors
              (including improved epilogue sequences for Pentium chips and
!             back end improvements which should help register allocation on
              all x86 variants. Conditional move support has been fixed and
              enabled for PPro processors. The x86 port also better supports
              64bit operations now. Unixware 7, a System V Release 5 target,
*************** http://gcc.gnu.org/egcs-1.1/features.htm
*** 23137,23150 ****
     provided this notice is preserved.
  
     These pages are [10]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
!    1. http://gcc.gnu.org/egcs-1.1/c++features.html
!    2. http://gcc.gnu.org/news/gcse.html
!    3. http://gcc.gnu.org/news/alias.html
!    4. http://gcc.gnu.org/egcs-1.0/features-2.8.html
     5. https://gcc.gnu.org/onlinedocs/
     6. mailto:gcc-help@gcc.gnu.org
     7. mailto:gcc@gcc.gnu.org
--- 24355,24368 ----
     provided this notice is preserved.
  
     These pages are [10]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
!    1. https://gcc.gnu.org/egcs-1.1/c++features.html
!    2. https://gcc.gnu.org/news/gcse.html
!    3. https://gcc.gnu.org/news/alias.html
!    4. https://gcc.gnu.org/egcs-1.0/features-2.8.html
     5. https://gcc.gnu.org/onlinedocs/
     6. mailto:gcc-help@gcc.gnu.org
     7. mailto:gcc@gcc.gnu.org
*************** http://gcc.gnu.org/egcs-1.0/index.html
*** 23310,23316 ****
            + Add missing entries to g77 lang-options.
            + Fix problem with -fpedantic in the g77 compiler.
            + Fix "backspace" problem with g77 on alphas.
!           + Fix x86 backend problem with Fortran literals and -fpic.
            + Fix some of the problems with negative subscripts for g77 on
              alphas.
            + Fixes for Fortran builds on cygwin32/mingw32.
--- 24528,24534 ----
            + Add missing entries to g77 lang-options.
            + Fix problem with -fpedantic in the g77 compiler.
            + Fix "backspace" problem with g77 on alphas.
!           + Fix x86 back end problem with Fortran literals and -fpic.
            + Fix some of the problems with negative subscripts for g77 on
              alphas.
            + Fixes for Fortran builds on cygwin32/mingw32.
*************** http://gcc.gnu.org/egcs-1.0/index.html
*** 23385,23398 ****
     provided this notice is preserved.
  
     These pages are [10]maintained by the GCC team. Last modified
!    2023-01-21.
  
  References
  
!    1. http://gcc.gnu.org/egcs-1.0/features.html
!    2. http://gcc.gnu.org/egcs-1.0/buildstat.html
!    3. http://gcc.gnu.org/egcs-1.0/caveats.html
!    4. http://gcc.gnu.org/mirrors.html
     5. https://gcc.gnu.org/onlinedocs/
     6. mailto:gcc-help@gcc.gnu.org
     7. mailto:gcc@gcc.gnu.org
--- 24603,24616 ----
     provided this notice is preserved.
  
     These pages are [10]maintained by the GCC team. Last modified
!    2023-09-02.
  
  References
  
!    1. https://gcc.gnu.org/egcs-1.0/features.html
!    2. https://gcc.gnu.org/egcs-1.0/buildstat.html
!    3. https://gcc.gnu.org/egcs-1.0/caveats.html
!    4. https://gcc.gnu.org/mirrors.html
     5. https://gcc.gnu.org/onlinedocs/
     6. mailto:gcc-help@gcc.gnu.org
     7. mailto:gcc@gcc.gnu.org
*************** http://gcc.gnu.org/egcs-1.0/features.htm
*** 23454,23461 ****
  
  References
  
!    1. http://gcc.gnu.org/egcs-1.0/features-2.8.html
!    2. http://gcc.gnu.org/egcs-1.0/c++features.html
     3. https://gcc.gnu.org/onlinedocs/
     4. mailto:gcc-help@gcc.gnu.org
     5. mailto:gcc@gcc.gnu.org
--- 24672,24679 ----
  
  References
  
!    1. https://gcc.gnu.org/egcs-1.0/features-2.8.html
!    2. https://gcc.gnu.org/egcs-1.0/c++features.html
     3. https://gcc.gnu.org/onlinedocs/
     4. mailto:gcc-help@gcc.gnu.org
     5. mailto:gcc@gcc.gnu.org
diff -Nrcpad gcc-13.2.0/SECURITY.txt gcc-14.1.0/SECURITY.txt
*** gcc-13.2.0/SECURITY.txt	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/SECURITY.txt	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,205 ----
+ What is a GCC security bug?
+ ===========================
+ 
+     A security bug is one that threatens the security of a system or
+     network, or might compromise the security of data stored on it.
+     In the context of GCC, there are multiple ways in which this might
+     happen and some common scenarios are detailed below.
+ 
+     If you're reporting a security issue and feel like it does not fit
+     into any of the descriptions below, you're encouraged to reach out
+     through the GCC bugzilla or, if needed, privately, by following the
+     instructions in the last two sections of this document.
+ 
+ Compiler drivers, programs, libgccjit and support libraries
+ -----------------------------------------------------------
+ 
+     The compiler driver processes source code, invokes other programs
+     such as the assembler and linker and generates the output result,
+     which may be assembly code or machine code.  Compiling untrusted
+     sources can result in arbitrary code execution and unconstrained
+     resource consumption in the compiler. As a result, compilation of
+     such code should be done inside a sandboxed environment to ensure
+     that it does not compromise the host environment.
+ 
+     The libgccjit library can, despite the name, be used both for
+     ahead-of-time compilation and for just-in-compilation.  In both
+     cases, it can be used to translate input representations (such as
+     source code) in the application context; in the latter case, the
+     generated code is also run in the application context.
+ 
+     Limitations that apply to the compiler driver apply here too in
+     terms of trusting inputs and it is recommended that both the
+     compilation *and* execution context of the code are appropriately
+     sandboxed to contain the effects of any bugs in libgccjit, the
+     application code using it, or its generated code to the sandboxed
+     environment.
+ 
+     Libraries such as libiberty, libcc1 and libcpp are not distributed
+     for runtime support and have similar challenges to compiler drivers.
+     While they are expected to be robust against arbitrary input, they
+     should only be used with trusted inputs when linked into the
+     compiler.
+ 
+     Libraries such as zlib that are bundled with GCC to build it will be
+     treated the same as the compiler drivers and programs as far as
+     security coverage is concerned.  However, if you find an issue in
+     these libraries independent of their use in GCC, you should reach
+     out to their upstream projects to report them.
+ 
+     As a result, the only case for a potential security issue in the
+     compiler is when it generates vulnerable application code for
+     trusted input source code that is conforming to the relevant
+     programming standard or extensions documented as supported by GCC
+     and the algorithm expressed in the source code does not have the
+     vulnerability.  The output application code could be considered
+     vulnerable if it produces an actual vulnerability in the target
+     application, for example:
+ 
+     - The application dereferences an invalid memory location despite
+       the application sources being valid.
+     - The application reads from or writes to a valid but incorrect
+       memory location, resulting in an information integrity issue or an
+       information leak.
+     - The application ends up running in an infinite loop or with
+       severe degradation in performance despite the input sources having
+       no such issue, resulting in a Denial of Service.  Note that
+       correct but non-performant code is not a security issue candidate,
+       this only applies to incorrect code that may result in performance
+       degradation severe enough to amount to a denial of service.
+     - The application crashes due to the generated incorrect code,
+       resulting in a Denial of Service.
+ 
+ Language runtime libraries
+ --------------------------
+ 
+     GCC also builds and distributes libraries that are intended to be
+     used widely to implement runtime support for various programming
+     languages.  These include the following:
+ 
+     * libada
+     * libatomic
+     * libbacktrace
+     * libcc1
+     * libcody
+     * libcpp
+     * libdecnumber
+     * libffi
+     * libgcc
+     * libgfortran
+     * libgm2
+     * libgo
+     * libgomp
+     * libitm
+     * libobjc
+     * libphobos
+     * libquadmath
+     * libssp
+     * libstdc++
+ 
+     These libraries are intended to be used in arbitrary contexts and, as
+     a result, bugs in these libraries may be evaluated for security
+     impact.  However, some of these libraries, e.g. libgo, libphobos,
+     etc.  are not maintained in the GCC project, due to which the GCC
+     project may not be the correct point of contact for them.  You are
+     encouraged to look at README files within those library directories
+     to locate the canonical security contact point for those projects
+     and include them in the report.  Once the issue is fixed in the
+     upstream project, the fix will be synced into GCC in a future
+     release.
+ 
+     Most security vulnerabilities in these runtime libraries arise when
+     an application uses functionality in a specific way.  As a result,
+     not all bugs qualify as security relevant.  The following guidelines
+     can help with the decision:
+ 
+     - Buffer overflows and integer overflows should be treated as
+       security issues if it is conceivable that the data triggering them
+       can come from an untrusted source.
+     - Bugs that cause memory corruption which is likely exploitable
+       should be treated as security bugs.
+     - Information disclosure can be security bugs, especially if
+       exposure through applications can be determined.
+     - Memory leaks and races are security bugs if they cause service
+       breakage.
+     - Stack overflow through unbounded alloca calls or variable-length
+       arrays are security bugs if it is conceivable that the data
+       triggering the overflow could come from an untrusted source.
+     - Stack overflow through deep recursion and other crashes are
+       security bugs if they cause service breakage.
+     - Bugs that cripple the whole system (so that it doesn't even boot
+       or does not run most applications) are not security bugs because
+       they will not be exploitable in practice, due to general system
+       instability.
+ 
+ Diagnostic libraries
+ --------------------
+ 
+     Libraries like libvtv and the sanitizers are intended to be used in
+     diagnostic cases and not intended for use in sensitive environments.
+     As a result, bugs in these libraries will not be considered security
+     sensitive.
+ 
+ GCC plugins
+ -----------
+ 
+     It should be noted that GCC may execute arbitrary code loaded by a
+     user through the GCC plugin mechanism or through system preloading
+     mechanism.  Such custom code should be vetted by the user for safety,
+     as bugs exposed through such code will not be considered security
+     issues.
+ 
+ Security features implemented in GCC
+ ------------------------------------
+ 
+     GCC implements a number of security features that reduce the impact
+     of security issues in applications, such as -fstack-protector,
+     -fstack-clash-protection, _FORTIFY_SOURCE and so on.  A failure of
+     these features to function perfectly in all situations is not a
+     vulnerability in itself since it does not affect the correctness of
+     programs.  Further, they're dependent on heuristics and may not
+     always have full coverage for protection.
+ 
+     Similarly, GCC may transform code in a way that the correctness of
+     the expressed algorithm is preserved, but supplementary properties
+     that are not specifically expressible in a high-level language
+     are not preserved. Examples of such supplementary properties
+     include absence of sensitive data in the program's address space
+     after an attempt to wipe it, or data-independent timing of code.
+     When the source code attempts to express such properties, failure
+     to preserve them in resulting machine code is not a security issue
+     in GCC.
+ 
+ Reporting private security bugs
+ ===============================
+ 
+     *All bugs reported in the GCC Bugzilla are public.*
+ 
+     In order to report a private security bug that is not immediately
+     public, please contact one of the downstream distributions with
+     security teams.  The following teams have volunteered to handle
+     such bugs:
+ 
+       Debian:  security@debian.org
+       Red Hat: secalert@redhat.com
+       SUSE:    security@suse.de
+       AdaCore: product-security@adacore.com
+ 
+     Please report the bug to just one of these teams.  It will be shared
+     with other teams as necessary.
+ 
+     The team contacted will take care of details such as vulnerability
+     rating and CVE assignment (http://cve.mitre.org/about/).  It is likely
+     that the team will ask to file a public bug because the issue is
+     sufficiently minor and does not warrant an embargo.  An embargo is not
+     a requirement for being credited with the discovery of a security
+     vulnerability.
+ 
+ Reporting public security bugs
+ ==============================
+ 
+     It is expected that critical security bugs will be rare, and that most
+     security bugs can be reported in GCC, thus making
+     them public immediately.  The system can be found here:
+ 
+       https://gcc.gnu.org/bugzilla/
diff -Nrcpad gcc-13.2.0/c++tools/ChangeLog gcc-14.1.0/c++tools/ChangeLog
*** gcc-13.2.0/c++tools/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/c++tools/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,10 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
  
--- 1,19 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2023-06-22  Marek Polacek  <polacek@redhat.com>
  
! 	* configure.ac (--enable-host-bind-now): New check.
! 	* configure: Regenerate.
! 
! 2023-06-15  Marek Polacek  <polacek@redhat.com>
! 
! 	* Makefile.in: Rename PIEFLAG to PICFLAG.  Set LD_PICFLAG.  Use it.
! 	Use pic/libiberty.a if PICFLAG is set.
! 	* configure.ac (--enable-default-pie): Set PICFLAG instead of PIEFLAG.
! 	(--enable-host-pie): New check.
! 	* configure: Regenerate.
  
  2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
  
***************
*** 193,199 ****
  	* server.cc: New.
  
  
! Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 202,208 ----
  	* server.cc: New.
  
  
! Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/c++tools/Makefile.in gcc-14.1.0/c++tools/Makefile.in
*** gcc-13.2.0/c++tools/Makefile.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/c++tools/Makefile.in	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Makefile for c++tools
! #   Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,5 ----
  # Makefile for c++tools
! #   Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
*************** AUTOCONF := @AUTOCONF@
*** 29,36 ****
  AUTOHEADER := @AUTOHEADER@
  CXX := @CXX@
  CXXFLAGS := @CXXFLAGS@
! PIEFLAG := @PIEFLAG@
! CXXOPTS := $(CXXFLAGS) $(PIEFLAG) -fno-exceptions -fno-rtti
  LDFLAGS := @LDFLAGS@
  exeext := @EXEEXT@
  LIBIBERTY := ../libiberty/libiberty.a
--- 29,37 ----
  AUTOHEADER := @AUTOHEADER@
  CXX := @CXX@
  CXXFLAGS := @CXXFLAGS@
! PICFLAG := @PICFLAG@
! LD_PICFLAG := @LD_PICFLAG@
! CXXOPTS := $(CXXFLAGS) $(PICFLAG) -fno-exceptions -fno-rtti
  LDFLAGS := @LDFLAGS@
  exeext := @EXEEXT@
  LIBIBERTY := ../libiberty/libiberty.a
*************** ifeq (@CXX_AUX_TOOLS@,yes)
*** 90,100 ****
  
  all::g++-mapper-server$(exeext)
  
  MAPPER.O := server.o resolver.o
  CODYLIB = ../libcody/libcody.a
  CXXINC += -I$(srcdir)/../libcody -I$(srcdir)/../include -I$(srcdir)/../gcc -I. -I../gcc
  g++-mapper-server$(exeext): $(MAPPER.O) $(CODYLIB)
! 	+$(CXX) $(LDFLAGS) $(PIEFLAG) -o $@ $^ $(LIBIBERTY) $(NETLIBS)
  
  # copy to gcc dir so tests there can run
  all::../gcc/g++-mapper-server$(exeext)
--- 91,105 ----
  
  all::g++-mapper-server$(exeext)
  
+ ifneq ($(PICFLAG),)
+ override LIBIBERTY := ../libiberty/pic/libiberty.a
+ endif
+ 
  MAPPER.O := server.o resolver.o
  CODYLIB = ../libcody/libcody.a
  CXXINC += -I$(srcdir)/../libcody -I$(srcdir)/../include -I$(srcdir)/../gcc -I. -I../gcc
  g++-mapper-server$(exeext): $(MAPPER.O) $(CODYLIB)
! 	+$(CXX) $(LDFLAGS) $(PICFLAG) $(LD_PICFLAG) -o $@ $^ $(LIBIBERTY) $(NETLIBS)
  
  # copy to gcc dir so tests there can run
  all::../gcc/g++-mapper-server$(exeext)
diff -Nrcpad gcc-13.2.0/c++tools/configure gcc-14.1.0/c++tools/configure
*** gcc-13.2.0/c++tools/configure	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/c++tools/configure	Tue May  7 06:51:37 2024
*************** get_gcc_base_ver
*** 627,633 ****
  EGREP
  GREP
  CXXCPP
! PIEFLAG
  MAINTAINER
  CXX_AUX_TOOLS
  AUTOHEADER
--- 627,635 ----
  EGREP
  GREP
  CXXCPP
! LD_PICFLAG
! enable_host_bind_now
! PICFLAG
  MAINTAINER
  CXX_AUX_TOOLS
  AUTOHEADER
*************** enable_c___tools
*** 700,705 ****
--- 702,709 ----
  enable_maintainer_mode
  enable_checking
  enable_default_pie
+ enable_host_pie
+ enable_host_bind_now
  with_gcc_major_version_only
  '
        ac_precious_vars='build_alias
*************** Optional Features:
*** 1333,1338 ****
--- 1337,1344 ----
                            only specific categories of checks. Categories are:
                            yes,no,all,none,release.
    --enable-default-pie    enable Position Independent Executable as default
+   --enable-host-pie       build host code as PIE
+   --enable-host-bind-now  link host code as BIND_NOW
  
  Optional Packages:
    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
*************** fi
*** 2990,3002 ****
  # Check whether --enable-default-pie was given.
  # Check whether --enable-default-pie was given.
  if test "${enable_default_pie+set}" = set; then :
!   enableval=$enable_default_pie; PIEFLAG=-fPIE
  else
!   PIEFLAG=
  fi
  
  
  
  # Check if O_CLOEXEC is defined by fcntl
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5
--- 2996,3024 ----
  # Check whether --enable-default-pie was given.
  # Check whether --enable-default-pie was given.
  if test "${enable_default_pie+set}" = set; then :
!   enableval=$enable_default_pie; PICFLAG=-fPIE
  else
!   PICFLAG=
! fi
! 
! 
! # Enable --enable-host-pie
! # Check whether --enable-host-pie was given.
! if test "${enable_host_pie+set}" = set; then :
!   enableval=$enable_host_pie; PICFLAG=-fPIE; LD_PICFLAG=-pie
! fi
! 
! 
! 
! # Enable --enable-host-bind-now
! # Check whether --enable-host-bind-now was given.
! if test "${enable_host_bind_now+set}" = set; then :
!   enableval=$enable_host_bind_now; LD_PICFLAG="$LD_PICFLAG -Wl,-z,now"
  fi
  
  
  
+ 
  # Check if O_CLOEXEC is defined by fcntl
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5
diff -Nrcpad gcc-13.2.0/c++tools/configure.ac gcc-14.1.0/c++tools/configure.ac
*** gcc-13.2.0/c++tools/configure.ac	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/c++tools/configure.ac	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Configure script for c++tools
! #   Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #   Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  #
  # This file is free software; you can redistribute it and/or modify it
--- 1,5 ----
  # Configure script for c++tools
! #   Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #   Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  #
  # This file is free software; you can redistribute it and/or modify it
*************** fi
*** 102,109 ****
  AC_ARG_ENABLE(default-pie,
  [AS_HELP_STRING([--enable-default-pie],
  		  [enable Position Independent Executable as default])],
! [PIEFLAG=-fPIE], [PIEFLAG=])
! AC_SUBST([PIEFLAG])
  
  # Check if O_CLOEXEC is defined by fcntl
  AC_CACHE_CHECK(for O_CLOEXEC, ac_cv_o_cloexec, [
--- 102,123 ----
  AC_ARG_ENABLE(default-pie,
  [AS_HELP_STRING([--enable-default-pie],
  		  [enable Position Independent Executable as default])],
! [PICFLAG=-fPIE], [PICFLAG=])
! 
! # Enable --enable-host-pie
! AC_ARG_ENABLE(host-pie,
! [AS_HELP_STRING([--enable-host-pie],
! 		[build host code as PIE])],
! [PICFLAG=-fPIE; LD_PICFLAG=-pie], [])
! AC_SUBST(PICFLAG)
! 
! # Enable --enable-host-bind-now
! AC_ARG_ENABLE(host-bind-now,
! [AS_HELP_STRING([--enable-host-bind-now],
!        [link host code as BIND_NOW])],
! [LD_PICFLAG="$LD_PICFLAG -Wl,-z,now"], [])
! AC_SUBST(enable_host_bind_now)
! AC_SUBST(LD_PICFLAG)
  
  # Check if O_CLOEXEC is defined by fcntl
  AC_CACHE_CHECK(for O_CLOEXEC, ac_cv_o_cloexec, [
diff -Nrcpad gcc-13.2.0/c++tools/resolver.cc gcc-14.1.0/c++tools/resolver.cc
*** gcc-13.2.0/c++tools/resolver.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/c++tools/resolver.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
--- 1,5 ----
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/c++tools/resolver.h gcc-14.1.0/c++tools/resolver.h
*** gcc-13.2.0/c++tools/resolver.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/c++tools/resolver.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
--- 1,5 ----
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/c++tools/server.cc gcc-14.1.0/c++tools/server.cc
*** gcc-13.2.0/c++tools/server.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/c++tools/server.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* C++ modules.  Experimental!
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
--- 1,5 ----
  /* C++ modules.  Experimental!
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
*************** static void ATTRIBUTE_NORETURN
*** 319,325 ****
  print_version (void)
  {
    fnotice (stdout, "%s %s%s\n", progname, pkgversion_string, version_string);
!   fprintf (stdout, "Copyright %s 2018-2023 Free Software Foundation, Inc.\n",
  	   ("(C)"));
    fnotice (stdout,
  	   ("This is free software; see the source for copying conditions.\n"
--- 319,325 ----
  print_version (void)
  {
    fnotice (stdout, "%s %s%s\n", progname, pkgversion_string, version_string);
!   fprintf (stdout, "Copyright %s 2018-2024 Free Software Foundation, Inc.\n",
  	   ("(C)"));
    fnotice (stdout,
  	   ("This is free software; see the source for copying conditions.\n"
diff -Nrcpad gcc-13.2.0/config/ChangeLog gcc-14.1.0/config/ChangeLog
*** gcc-13.2.0/config/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/config/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,10 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2022-11-14  Martin Liska  <mliska@suse.cz>
  
--- 1,95 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* acx.m4 (ACX_PROG_CARGO): Use 'AC_CHECK_PROGS'.
! 
! 2024-04-15  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 
! 	* acx.m4: Add a macro to check for rust
! 	components.
! 
! 2024-04-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* lcmessage.m4: Fix duplicated words; can can -> can,
! 	package package -> package.
! 
! 2024-01-11  Mike Frysinger  <vapier@gentoo.org>
! 
! 	* acinclude.m4 (CYG_AC_PATH_LIBERTY): Delete.
! 
! 2023-11-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): Require
! 	AC_CANONICAL_TARGET.
! 
! 2023-11-13  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* intlmacosx.m4: Import from gettext-0.22 (serial 8).
! 	* gettext.m4: Sync with gettext-0.22 (serial 77).
! 	* gettext-sister.m4 (ZW_GNU_GETTEXT_SISTER_DIR): Load gettext's
! 	uninstalled-config.sh, or call AM_GNU_GETTEXT if missing.
! 	* iconv.m4: Sync with gettext-0.22 (serial 26).
! 
! 2023-09-15  Yang Yujie  <yangyujie@loongson.cn>
! 
! 	* mt-loongarch-mlib: New file.  Pass -fmultiflags when building
! 	target libraries (FLAGS_FOR_TARGET).
! 	* mt-loongarch-elf: New file.
! 	* mt-loongarch-gnu: New file.
! 
! 2023-08-11  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* gcc-plugin.m4 (GCC_ENABLE_PLUGINS): Use
! 	export_sym_check="$ac_cv_prog_OBJDUMP -T" also when host is not
! 	build or target.
! 
! 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	* pkg.m4 (PKG_CHECK_MODULES): Use AC_TRY_LINK only if
! 	$pkg_failed = no.
! 
! 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	* pkg.m4 (PKG_CHECK_MODULES): Add AC_TRY_LINK to check if
! 	$pkg_cv_[]$1[]_LIBS works.
! 
! 2023-08-07  John Ericson  <git@JohnEricson.me>
! 
! 	* picflag.m4: Simplify SHmedia NetBSD match by presuming ELF.
! 
! 2023-08-07  Alan Modra  <amodra@gmail.com>
! 
! 	* override.m4: Correct comment grammar.
! 
! 2023-08-07  Alan Modra  <amodra@gmail.com>
! 
! 	* lib-ld.m4 (AC_LIB_PROG_LD_GNU): Require AC_PROG_EGREP and
! 	invoke $EGREP.
! 	(AC_LIB_PROG_LD): Likewise.
! 
! 2023-08-07  Christophe Lyon  <christophe.lyon@arm.com>
! 
! 	* zstd.m4: Add minimum version requirement of 1.4.0.
! 
! 2023-08-07  Fangrui Song  <maskray@google.com>
! 
! 	* zstd.m4: New file.
! 
! 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	* gcc-plugin.m4 (GCC_PLUGIN_OPTION): Check if AR works with
! 	--plugin and rc before enabling --plugin.
! 
! 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	* gcc-plugin.m4 (GCC_PLUGIN_OPTION): New.
! 
! 2023-07-21  Sergei Trofimovich  <siarheit@google.com>
! 
! 	* mh-mingw: Drop assignment of unused BOOT_CXXFLAGS variable.
  
  2022-11-14  Martin Liska  <mliska@suse.cz>
  
diff -Nrcpad gcc-13.2.0/config/acinclude.m4 gcc-14.1.0/config/acinclude.m4
*** gcc-13.2.0/config/acinclude.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/acinclude.m4	Tue May  7 06:51:37 2024
*************** AC_SUBST(BFDLIB)
*** 239,266 ****
  ])
  
  dnl ====================================================================
- dnl Find the libiberty library. This defines many commonly used C
- dnl functions that exists in various states based on the underlying OS.
- AC_DEFUN([CYG_AC_PATH_LIBERTY], [
- AC_MSG_CHECKING(for the liberty library in the build tree)
- dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
- AC_CACHE_VAL(ac_cv_c_liberty,[
- for i in $dirlist; do
-     if test -f "$i/libiberty/Makefile" ; then
- 	ac_cv_c_liberty=`(cd $i/libiberty; ${PWDCMD-pwd})`
-     fi
- done
- ])
- if test x"${ac_cv_c_liberty}" != x; then
-     LIBERTY="-L${ac_cv_c_liberty}"
-     AC_MSG_RESULT(${ac_cv_c_liberty})
- else
-     AC_MSG_RESULT(none)
- fi
- AC_SUBST(LIBERTY)
- ])
- 
- dnl ====================================================================
  dnl Find the opcodes library. This is used to do dissasemblies.
  AC_DEFUN([CYG_AC_PATH_OPCODES], [
  AC_MSG_CHECKING(for the opcodes library in the build tree)
--- 239,244 ----
diff -Nrcpad gcc-13.2.0/config/acx.m4 gcc-14.1.0/config/acx.m4
*** gcc-13.2.0/config/acx.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/acx.m4	Tue May  7 06:51:37 2024
*************** else
*** 424,429 ****
--- 424,439 ----
  fi
  ])
  
+ # Test for Rust
+ # We require cargo and rustc for some parts of the rust compiler.
+ AC_DEFUN([ACX_PROG_CARGO],
+ [AC_CHECK_PROGS(CARGO, cargo, no)
+ if test "x$CARGO" != xno; then
+   have_cargo=yes
+ else
+   have_cargo=no
+ fi])
+ 
  # Test for D.
  AC_DEFUN([ACX_PROG_GDC],
  [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
diff -Nrcpad gcc-13.2.0/config/gcc-plugin.m4 gcc-14.1.0/config/gcc-plugin.m4
*** gcc-13.2.0/config/gcc-plugin.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/gcc-plugin.m4	Tue May  7 06:51:37 2024
*************** AC_DEFUN([GCC_ENABLE_PLUGINS],
*** 49,55 ****
         elif test x$host = x$target; then
  	 export_sym_check="$gcc_cv_objdump -T"
         else
! 	 export_sym_check=
         fi
       ;;
     esac
--- 49,55 ----
         elif test x$host = x$target; then
  	 export_sym_check="$gcc_cv_objdump -T"
         else
! 	 export_sym_check="$ac_cv_prog_OBJDUMP -T"
         fi
       ;;
     esac
*************** AC_DEFUN([GCC_ENABLE_PLUGINS],
*** 129,131 ****
--- 129,171 ----
       fi
     fi
  ])
+ 
+ dnl
+ dnl
+ dnl GCC_PLUGIN_OPTION
+ dnl    (SHELL-CODE_HANDLER)
+ dnl
+ AC_DEFUN([GCC_PLUGIN_OPTION],[dnl
+ AC_MSG_CHECKING([for -plugin option])
+ 
+ plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
+ for plugin in $plugin_names; do
+   plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
+   if test x$plugin_so = x$plugin; then
+     plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
+   fi
+   if test x$plugin_so != x$plugin; then
+     plugin_option="--plugin $plugin_so"
+     break
+   fi
+ done
+ dnl Check if ${AR} $plugin_option rc works.
+ AC_CHECK_TOOL(AR, ar)
+ if test "${AR}" = "" ; then
+   AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.])
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   AC_MSG_WARN([Failed: $AR $plugin_option rc])
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   $1="$plugin_option"
+   AC_MSG_RESULT($plugin_option)
+ else
+   AC_MSG_RESULT([no])
+ fi
+ ])
diff -Nrcpad gcc-13.2.0/config/gettext-sister.m4 gcc-14.1.0/config/gettext-sister.m4
*** gcc-13.2.0/config/gettext-sister.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/gettext-sister.m4	Tue May  7 06:51:37 2024
***************
*** 10,28 ****
  # the necessary substitutions and definitions for this directory.
  
  AC_DEFUN([ZW_GNU_GETTEXT_SISTER_DIR],
! [# If we haven't got the data from the intl directory,
! # assume NLS is disabled.
! USE_NLS=no	AC_SUBST(USE_NLS)
! LIBINTL=	AC_SUBST(LIBINTL)
! LIBINTL_DEP=	AC_SUBST(LIBINTL_DEP)
! INCINTL=	AC_SUBST(INCINTL)
! XGETTEXT=	AC_SUBST(XGETTEXT)
! GMSGFMT=	AC_SUBST(GMSGFMT)
! POSUB=		AC_SUBST(POSUB)
! 
! if test -f  ifelse([$1],,[../intl],[$1])/config.intl; then
!   .  ifelse([$1],,[../intl],[$1])/config.intl
  fi
  AC_MSG_CHECKING([whether NLS is requested])
  if test x"$USE_NLS" != xyes; then
    AC_MSG_RESULT(no)
--- 10,39 ----
  # the necessary substitutions and definitions for this directory.
  
  AC_DEFUN([ZW_GNU_GETTEXT_SISTER_DIR],
! [
! m4_pushdef([gettext_builddir],
!            m4_default([$1], [../gettext]))
! m4_pushdef([gettext_cfg],
!            gettext_builddir[/uninstalled-config.sh])
! if test -f gettext_cfg; then
!   relative_builddir='[$(top_builddir)/]gettext_builddir'
!   .  gettext_cfg
! else
!   # The sister gettext directory doesn't exist and won't collect information on
!   # using gettext for us.  Call a bundled AM_GNU_GETTEXT.
!   AM_GNU_GETTEXT([external])
  fi
+ m4_popdef([gettext_cfg])
+ m4_popdef([gettext_builddir])
+ 
+ AC_SUBST([USE_NLS])
+ AC_SUBST([LIBINTL])
+ AC_SUBST([LIBINTL_DEP])
+ AC_SUBST([INCINTL])
+ AC_SUBST([XGETTEXT])
+ AC_SUBST([GMSGFMT])
+ AC_SUBST([POSUB])
+ 
  AC_MSG_CHECKING([whether NLS is requested])
  if test x"$USE_NLS" != xyes; then
    AC_MSG_RESULT(no)
diff -Nrcpad gcc-13.2.0/config/gettext.m4 gcc-14.1.0/config/gettext.m4
*** gcc-13.2.0/config/gettext.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/gettext.m4	Tue May  7 06:51:37 2024
***************
*** 1,43 ****
! # gettext.m4 serial 20 (gettext-0.12)
! dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
! dnl This file is free software, distributed under the terms of the GNU
! dnl General Public License.  As a special exception to the GNU General
! dnl Public License, this file may be distributed as part of a program
! dnl that contains a configuration script generated by Autoconf, under
! dnl the same distribution terms as the rest of that program.
  dnl
! dnl This file can can be used in projects which are not available under
! dnl the GNU General Public License or the GNU Library General Public
  dnl License but which still want to provide support for the GNU gettext
  dnl functionality.
  dnl Please note that the actual code of the GNU gettext library is covered
! dnl by the GNU Library General Public License, and the rest of the GNU
! dnl gettext package package is covered by the GNU General Public License.
  dnl They are *not* in the public domain.
  
  dnl Authors:
  dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
! dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
  
  dnl Macro to add for using GNU gettext.
  
  dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
! dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
! dnl    default (if it is not specified or empty) is 'no-libtool'.
! dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
! dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
  dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
  dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
  dnl    depending on --{enable,disable}-{shared,static} and on the presence of
! dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
! dnl    $(top_builddir)/intl/libintl.a will be created.
  dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
  dnl    implementations (in libc or libintl) without the ngettext() function
  dnl    will be ignored.  If NEEDSYMBOL is specified and is
  dnl    'need-formatstring-macros', then GNU gettext implementations that don't
  dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
  dnl INTLDIR is used to find the intl libraries.  If empty,
! dnl    the value `$(top_builddir)/intl/' is used.
  dnl
  dnl The result of the configuration is one of three cases:
  dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
--- 1,39 ----
! # gettext.m4 serial 72 (gettext-0.21.1)
! dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc.
! dnl This file is free software; the Free Software Foundation
! dnl gives unlimited permission to copy and/or distribute it,
! dnl with or without modifications, as long as this notice is preserved.
  dnl
! dnl This file can be used in projects which are not available under
! dnl the GNU General Public License or the GNU Lesser General Public
  dnl License but which still want to provide support for the GNU gettext
  dnl functionality.
  dnl Please note that the actual code of the GNU gettext library is covered
! dnl by the GNU Lesser General Public License, and the rest of the GNU
! dnl gettext package is covered by the GNU General Public License.
  dnl They are *not* in the public domain.
  
  dnl Authors:
  dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
! dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
  
  dnl Macro to add for using GNU gettext.
  
  dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
! dnl INTLSYMBOL must be one of 'external', 'use-libtool'.
! dnl    INTLSYMBOL should be 'external' for packages other than GNU gettext, and
! dnl    'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'.
  dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
  dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
  dnl    depending on --{enable,disable}-{shared,static} and on the presence of
! dnl    AM-DISABLE-SHARED).
  dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
  dnl    implementations (in libc or libintl) without the ngettext() function
  dnl    will be ignored.  If NEEDSYMBOL is specified and is
  dnl    'need-formatstring-macros', then GNU gettext implementations that don't
  dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
  dnl INTLDIR is used to find the intl libraries.  If empty,
! dnl    the value '$(top_builddir)/intl/' is used.
  dnl
  dnl The result of the configuration is one of three cases:
  dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
*************** dnl
*** 59,75 ****
  AC_DEFUN([AM_GNU_GETTEXT],
  [
    dnl Argument checking.
!   ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
      [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
! ])])])])])
!   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
      [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
  ])])])])
!   define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
!   define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
  
    AC_REQUIRE([AM_PO_SUBDIRS])dnl
!   ifelse(gt_included_intl, yes, [
      AC_REQUIRE([AM_INTL_SUBDIR])dnl
    ])
  
--- 55,76 ----
  AC_DEFUN([AM_GNU_GETTEXT],
  [
    dnl Argument checking.
!   m4_if([$1], [], , [m4_if([$1], [external], , [m4_if([$1], [use-libtool], ,
      [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
! ])])])])
!   m4_if(m4_if([$1], [], [old])[]m4_if([$1], [no-libtool], [old]), [old],
!     [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.
! ])])
!   m4_if([$2], [], , [m4_if([$2], [need-ngettext], , [m4_if([$2], [need-formatstring-macros], ,
      [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
  ])])])])
!   define([gt_included_intl],
!     m4_if([$1], [external], [no], [yes]))
!   gt_NEEDS_INIT
!   AM_GNU_GETTEXT_NEED([$2])
  
    AC_REQUIRE([AM_PO_SUBDIRS])dnl
!   m4_if(gt_included_intl, yes, [
      AC_REQUIRE([AM_INTL_SUBDIR])dnl
    ])
  
*************** AC_DEFUN([AM_GNU_GETTEXT],
*** 80,101 ****
    dnl Sometimes libintl requires libiconv, so first search for libiconv.
    dnl Ideally we would do this search only after the
    dnl      if test "$USE_NLS" = "yes"; then
!   dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
!   dnl tests. But if configure.ac invokes AM_ICONV after AM_GNU_GETTEXT
    dnl the configure script would need to contain the same shell code
    dnl again, outside any 'if'. There are two solutions:
    dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
    dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
!   dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
!   dnl documented, we avoid it.
!   ifelse(gt_included_intl, yes, , [
      AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
    ])
  
    dnl Set USE_NLS.
!   AM_NLS
  
!   ifelse(gt_included_intl, yes, [
      BUILD_INCLUDED_LIBINTL=no
      USE_INCLUDED_LIBINTL=no
    ])
--- 81,104 ----
    dnl Sometimes libintl requires libiconv, so first search for libiconv.
    dnl Ideally we would do this search only after the
    dnl      if test "$USE_NLS" = "yes"; then
!   dnl        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
!   dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
    dnl the configure script would need to contain the same shell code
    dnl again, outside any 'if'. There are two solutions:
    dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
    dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
!   dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it.
!   m4_if(gt_included_intl, yes, , [
      AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
    ])
  
+   dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation.
+   gt_INTL_MACOSX
+ 
    dnl Set USE_NLS.
!   AC_REQUIRE([AM_NLS])
  
!   m4_if(gt_included_intl, yes, [
      BUILD_INCLUDED_LIBINTL=no
      USE_INCLUDED_LIBINTL=no
    ])
*************** AC_DEFUN([AM_GNU_GETTEXT],
*** 103,118 ****
    LTLIBINTL=
    POSUB=
  
    dnl If we use NLS figure out what method
    if test "$USE_NLS" = "yes"; then
      gt_use_preinstalled_gnugettext=no
!     ifelse(gt_included_intl, yes, [
        AC_MSG_CHECKING([whether included gettext is requested])
!       AC_ARG_WITH(included-gettext,
          [  --with-included-gettext use the GNU gettext library included here],
          nls_cv_force_use_gnu_gettext=$withval,
          nls_cv_force_use_gnu_gettext=no)
!       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
  
        nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
        if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
--- 106,130 ----
    LTLIBINTL=
    POSUB=
  
+   dnl Add a version number to the cache macros.
+   case " $gt_needs " in
+     *" need-formatstring-macros "*) gt_api_version=3 ;;
+     *" need-ngettext "*) gt_api_version=2 ;;
+     *) gt_api_version=1 ;;
+   esac
+   gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+   gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+ 
    dnl If we use NLS figure out what method
    if test "$USE_NLS" = "yes"; then
      gt_use_preinstalled_gnugettext=no
!     m4_if(gt_included_intl, yes, [
        AC_MSG_CHECKING([whether included gettext is requested])
!       AC_ARG_WITH([included-gettext],
          [  --with-included-gettext use the GNU gettext library included here],
          nls_cv_force_use_gnu_gettext=$withval,
          nls_cv_force_use_gnu_gettext=no)
!       AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
  
        nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
        if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
*************** AC_DEFUN([AM_GNU_GETTEXT],
*** 121,133 ****
          dnl to use.  If GNU gettext is available we use this.  Else we have
          dnl to fall back to GNU NLS library.
  
!         dnl Add a version number to the cache macros.
!         define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
!         define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
!         define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
  
!         AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
!          [AC_TRY_LINK([#include <libintl.h>
  #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  extern int _nl_msg_cat_cntr;
  extern int *_nl_domain_bindings;
--- 133,161 ----
          dnl to use.  If GNU gettext is available we use this.  Else we have
          dnl to fall back to GNU NLS library.
  
!         if test $gt_api_version -ge 3; then
!           gt_revision_test_code='
! #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
! #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
! #endif
! changequote(,)dnl
! typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
! changequote([,])dnl
! '
!         else
!           gt_revision_test_code=
!         fi
!         if test $gt_api_version -ge 2; then
!           gt_expression_test_code=' + * ngettext ("", "", 0)'
!         else
!           gt_expression_test_code=
!         fi
  
!         AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
!          [AC_LINK_IFELSE(
!             [AC_LANG_PROGRAM(
!                [[
! #include <libintl.h>
  #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  extern int _nl_msg_cat_cntr;
  extern int *_nl_domain_bindings;
*************** extern int *_nl_domain_bindings;
*** 135,156 ****
  #else
  #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
  #endif
! ]ifelse([$2], [need-formatstring-macros],
! [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
! #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
! #endif
! changequote(,)dnl
! typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
! changequote([,])dnl
! ], []),
!             [bindtextdomain ("", "");
! return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + __GNU_GETTEXT_SYMBOL_EXPRESSION],
!             gt_cv_func_gnugettext_libc=yes,
!             gt_cv_func_gnugettext_libc=no)])
  
!         if test "$gt_cv_func_gnugettext_libc" != "yes"; then
            dnl Sometimes libintl requires libiconv, so first search for libiconv.
!           ifelse(gt_included_intl, yes, , [
              AM_ICONV_LINK
            ])
            dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
--- 163,180 ----
  #else
  #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
  #endif
! $gt_revision_test_code
!                ]],
!                [[
! bindtextdomain ("", "");
! return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
!                ]])],
!             [eval "$gt_func_gnugettext_libc=yes"],
!             [eval "$gt_func_gnugettext_libc=no"])])
  
!         if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
            dnl Sometimes libintl requires libiconv, so first search for libiconv.
!           m4_if(gt_included_intl, yes, , [
              AM_ICONV_LINK
            ])
            dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
*************** return (int) gettext ("")]ifelse([$2], [
*** 159,223 ****
            dnl even if libiconv doesn't exist.
            AC_LIB_LINKFLAGS_BODY([intl])
            AC_CACHE_CHECK([for GNU gettext in libintl],
!             gt_cv_func_gnugettext_libintl,
             [gt_save_CPPFLAGS="$CPPFLAGS"
              CPPFLAGS="$CPPFLAGS $INCINTL"
              gt_save_LIBS="$LIBS"
              LIBS="$LIBS $LIBINTL"
              dnl Now see whether libintl exists and does not depend on libiconv.
!             AC_TRY_LINK([#include <libintl.h>
  #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  extern int _nl_msg_cat_cntr;
  extern
  #ifdef __cplusplus
  "C"
  #endif
! const char *_nl_expand_alias ();
! #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (0))
  #else
  #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
  #endif
! ]ifelse([$2], [need-formatstring-macros],
! [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
! #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
! #endif
! changequote(,)dnl
! typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
! changequote([,])dnl
! ], []),
!               [bindtextdomain ("", "");
! return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + __GNU_GETTEXT_SYMBOL_EXPRESSION],
!               gt_cv_func_gnugettext_libintl=yes,
!               gt_cv_func_gnugettext_libintl=no)
              dnl Now see whether libintl exists and depends on libiconv.
!             if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
                LIBS="$LIBS $LIBICONV"
!               AC_TRY_LINK([#include <libintl.h>
  #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  extern int _nl_msg_cat_cntr;
  extern
  #ifdef __cplusplus
  "C"
  #endif
! const char *_nl_expand_alias ();
! #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (0))
  #else
  #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
  #endif
! ]ifelse([$2], [need-formatstring-macros],
! [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
! #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
! #endif
! changequote(,)dnl
! typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
! changequote([,])dnl
! ], []),
!                 [bindtextdomain ("", "");
! return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + __GNU_GETTEXT_SYMBOL_EXPRESSION],
!                [LIBINTL="$LIBINTL $LIBICONV"
!                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
!                 gt_cv_func_gnugettext_libintl=yes
!                ])
              fi
              CPPFLAGS="$gt_save_CPPFLAGS"
              LIBS="$gt_save_LIBS"])
--- 183,245 ----
            dnl even if libiconv doesn't exist.
            AC_LIB_LINKFLAGS_BODY([intl])
            AC_CACHE_CHECK([for GNU gettext in libintl],
!             [$gt_func_gnugettext_libintl],
             [gt_save_CPPFLAGS="$CPPFLAGS"
              CPPFLAGS="$CPPFLAGS $INCINTL"
              gt_save_LIBS="$LIBS"
              LIBS="$LIBS $LIBINTL"
              dnl Now see whether libintl exists and does not depend on libiconv.
!             AC_LINK_IFELSE(
!               [AC_LANG_PROGRAM(
!                  [[
! #include <libintl.h>
  #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  extern int _nl_msg_cat_cntr;
  extern
  #ifdef __cplusplus
  "C"
  #endif
! const char *_nl_expand_alias (const char *);
! #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
  #else
  #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
  #endif
! $gt_revision_test_code
!                  ]],
!                  [[
! bindtextdomain ("", "");
! return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
!                  ]])],
!               [eval "$gt_func_gnugettext_libintl=yes"],
!               [eval "$gt_func_gnugettext_libintl=no"])
              dnl Now see whether libintl exists and depends on libiconv.
!             if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
                LIBS="$LIBS $LIBICONV"
!               AC_LINK_IFELSE(
!                 [AC_LANG_PROGRAM(
!                    [[
! #include <libintl.h>
  #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  extern int _nl_msg_cat_cntr;
  extern
  #ifdef __cplusplus
  "C"
  #endif
! const char *_nl_expand_alias (const char *);
! #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
  #else
  #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
  #endif
! $gt_revision_test_code
!                    ]],
!                    [[
! bindtextdomain ("", "");
! return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
!                    ]])],
!                 [LIBINTL="$LIBINTL $LIBICONV"
!                  LTLIBINTL="$LTLIBINTL $LTLIBICONV"
!                  eval "$gt_func_gnugettext_libintl=yes"
!                 ])
              fi
              CPPFLAGS="$gt_save_CPPFLAGS"
              LIBS="$gt_save_LIBS"])
*************** return (int) gettext ("")]ifelse([$2], [
*** 227,234 ****
          dnl use it.  But if this macro is used in GNU gettext, and GNU
          dnl gettext is already preinstalled in libintl, we update this
          dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
!         if test "$gt_cv_func_gnugettext_libc" = "yes" \
!            || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
                  && test "$PACKAGE" != gettext-runtime \
                  && test "$PACKAGE" != gettext-tools; }; then
            gt_use_preinstalled_gnugettext=yes
--- 249,256 ----
          dnl use it.  But if this macro is used in GNU gettext, and GNU
          dnl gettext is already preinstalled in libintl, we update this
          dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
!         if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
!            || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
                  && test "$PACKAGE" != gettext-runtime \
                  && test "$PACKAGE" != gettext-tools; }; then
            gt_use_preinstalled_gnugettext=yes
*************** return (int) gettext ("")]ifelse([$2], [
*** 239,245 ****
            INCINTL=
          fi
  
!     ifelse(gt_included_intl, yes, [
          if test "$gt_use_preinstalled_gnugettext" != "yes"; then
            dnl GNU gettext is not found in the C library.
            dnl Fall back on included GNU gettext library.
--- 261,267 ----
            INCINTL=
          fi
  
!     m4_if(gt_included_intl, yes, [
          if test "$gt_use_preinstalled_gnugettext" != "yes"; then
            dnl GNU gettext is not found in the C library.
            dnl Fall back on included GNU gettext library.
*************** return (int) gettext ("")]ifelse([$2], [
*** 251,261 ****
          dnl Mark actions used to generate GNU NLS library.
          BUILD_INCLUDED_LIBINTL=yes
          USE_INCLUDED_LIBINTL=yes
!         LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
!         LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
          LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
        fi
  
        if test "$gt_use_preinstalled_gnugettext" = "yes" \
           || test "$nls_cv_use_gnu_gettext" = "yes"; then
          dnl Mark actions to use GNU gettext tools.
--- 273,284 ----
          dnl Mark actions used to generate GNU NLS library.
          BUILD_INCLUDED_LIBINTL=yes
          USE_INCLUDED_LIBINTL=yes
!         LIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD"
!         LTLIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD"
          LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
        fi
  
+       CATOBJEXT=
        if test "$gt_use_preinstalled_gnugettext" = "yes" \
           || test "$nls_cv_use_gnu_gettext" = "yes"; then
          dnl Mark actions to use GNU gettext tools.
*************** return (int) gettext ("")]ifelse([$2], [
*** 263,271 ****
        fi
      ])
  
      if test "$gt_use_preinstalled_gnugettext" = "yes" \
         || test "$nls_cv_use_gnu_gettext" = "yes"; then
!       AC_DEFINE(ENABLE_NLS, 1,
          [Define to 1 if translation of program messages to the user's native language
     is requested.])
      else
--- 286,303 ----
        fi
      ])
  
+     if test -n "$INTL_MACOSX_LIBS"; then
+       if test "$gt_use_preinstalled_gnugettext" = "yes" \
+          || test "$nls_cv_use_gnu_gettext" = "yes"; then
+         dnl Some extra flags are needed during linking.
+         LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+         LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+       fi
+     fi
+ 
      if test "$gt_use_preinstalled_gnugettext" = "yes" \
         || test "$nls_cv_use_gnu_gettext" = "yes"; then
!       AC_DEFINE([ENABLE_NLS], [1],
          [Define to 1 if translation of program messages to the user's native language
     is requested.])
      else
*************** return (int) gettext ("")]ifelse([$2], [
*** 278,284 ****
    if test "$USE_NLS" = "yes"; then
      AC_MSG_CHECKING([where the gettext function comes from])
      if test "$gt_use_preinstalled_gnugettext" = "yes"; then
!       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
          gt_source="external libintl"
        else
          gt_source="libc"
--- 310,316 ----
    if test "$USE_NLS" = "yes"; then
      AC_MSG_CHECKING([where the gettext function comes from])
      if test "$gt_use_preinstalled_gnugettext" = "yes"; then
!       if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
          gt_source="external libintl"
        else
          gt_source="libc"
*************** return (int) gettext ("")]ifelse([$2], [
*** 292,307 ****
    if test "$USE_NLS" = "yes"; then
  
      if test "$gt_use_preinstalled_gnugettext" = "yes"; then
!       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
          AC_MSG_CHECKING([how to link with libintl])
          AC_MSG_RESULT([$LIBINTL])
          AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
        fi
  
        dnl For backward compatibility. Some packages may be using this.
!       AC_DEFINE(HAVE_GETTEXT, 1,
         [Define if the GNU gettext() function is already present or preinstalled.])
!       AC_DEFINE(HAVE_DCGETTEXT, 1,
         [Define if the GNU dcgettext() function is already present or preinstalled.])
      fi
  
--- 324,339 ----
    if test "$USE_NLS" = "yes"; then
  
      if test "$gt_use_preinstalled_gnugettext" = "yes"; then
!       if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
          AC_MSG_CHECKING([how to link with libintl])
          AC_MSG_RESULT([$LIBINTL])
          AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
        fi
  
        dnl For backward compatibility. Some packages may be using this.
!       AC_DEFINE([HAVE_GETTEXT], [1],
         [Define if the GNU gettext() function is already present or preinstalled.])
!       AC_DEFINE([HAVE_DCGETTEXT], [1],
         [Define if the GNU dcgettext() function is already present or preinstalled.])
      fi
  
*************** return (int) gettext ("")]ifelse([$2], [
*** 309,433 ****
      POSUB=po
    fi
  
!   ifelse(gt_included_intl, yes, [
!     dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
!     dnl to 'yes' because some of the testsuite requires it.
!     if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
!       BUILD_INCLUDED_LIBINTL=yes
!     fi
  
      dnl Make all variables we use known to autoconf.
!     AC_SUBST(BUILD_INCLUDED_LIBINTL)
!     AC_SUBST(USE_INCLUDED_LIBINTL)
!     AC_SUBST(CATOBJEXT)
! 
!     dnl For backward compatibility. Some configure.acs may be using this.
!     nls_cv_header_intl=
!     nls_cv_header_libgt=
! 
!     dnl For backward compatibility. Some Makefiles may be using this.
!     DATADIRNAME=share
!     AC_SUBST(DATADIRNAME)
! 
!     dnl For backward compatibility. Some Makefiles may be using this.
!     INSTOBJEXT=.mo
!     AC_SUBST(INSTOBJEXT)
! 
!     dnl For backward compatibility. Some Makefiles may be using this.
!     GENCAT=gencat
!     AC_SUBST(GENCAT)
! 
!     dnl For backward compatibility. Some Makefiles may be using this.
!     if test "$USE_INCLUDED_LIBINTL" = yes; then
!       INTLOBJS="\$(GETTOBJS)"
!     fi
!     AC_SUBST(INTLOBJS)
! 
!     dnl Enable libtool support if the surrounding package wishes it.
!     INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
!     AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
    ])
  
    dnl For backward compatibility. Some Makefiles may be using this.
    INTLLIBS="$LIBINTL"
!   AC_SUBST(INTLLIBS)
  
    dnl Make all documented variables known to autoconf.
!   AC_SUBST(LIBINTL)
!   AC_SUBST(LTLIBINTL)
!   AC_SUBST(POSUB)
  ])
  
  
! dnl Checks for all prerequisites of the intl subdirectory,
! dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
! dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
! AC_DEFUN([AM_INTL_SUBDIR],
  [
!   AC_REQUIRE([AC_PROG_INSTALL])dnl
!   AC_REQUIRE([AM_MKINSTALLDIRS])dnl
!   AC_REQUIRE([AC_PROG_CC])dnl
!   AC_REQUIRE([AC_CANONICAL_HOST])dnl
!   AC_REQUIRE([AC_PROG_RANLIB])dnl
!   AC_REQUIRE([AC_ISC_POSIX])dnl
!   AC_REQUIRE([AC_HEADER_STDC])dnl
!   AC_REQUIRE([AC_C_CONST])dnl
!   AC_REQUIRE([AC_C_INLINE])dnl
!   AC_REQUIRE([AC_TYPE_OFF_T])dnl
!   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
!   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
!   AC_REQUIRE([AC_FUNC_MMAP])dnl
!   AC_REQUIRE([jm_GLIBC21])dnl
!   AC_REQUIRE([gt_INTDIV0])dnl
!   AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
!   AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
!   AC_REQUIRE([gt_INTTYPES_PRI])dnl
! 
!   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
! stdlib.h string.h unistd.h sys/param.h])
!   AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
! geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
! strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \
! __fsetlocking])
  
-   AM_ICONV
-   AM_LANGINFO_CODESET
-   if test $ac_cv_header_locale_h = yes; then
-     AM_LC_MESSAGES
-   fi
  
!   dnl intl/plural.c is generated from intl/plural.y. It requires bison,
!   dnl because plural.y uses bison specific features. It requires at least
!   dnl bison-1.26 because earlier versions generate a plural.c that doesn't
!   dnl compile.
!   dnl bison is only needed for the maintainer (who touches plural.y). But in
!   dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
!   dnl the rule in general Makefile. Now, some people carelessly touch the
!   dnl files or have a broken "make" program, hence the plural.c rule will
!   dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
!   dnl present or too old.
!   AC_CHECK_PROGS([INTLBISON], [bison])
!   if test -z "$INTLBISON"; then
!     ac_verc_fail=yes
!   else
!     dnl Found it, now check the version.
!     AC_MSG_CHECKING([version of bison])
! changequote(<<,>>)dnl
!     ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
!     case $ac_prog_version in
!       '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
!       1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
! changequote([,])dnl
!          ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
!       *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
!     esac
!     AC_MSG_RESULT([$ac_prog_version])
!   fi
!   if test $ac_verc_fail = yes; then
!     INTLBISON=:
!   fi
  ])
  
  
  dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
  AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
--- 341,386 ----
      POSUB=po
    fi
  
!   m4_if(gt_included_intl, yes, [
!     dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes'
!     dnl because some of the testsuite requires it.
!     BUILD_INCLUDED_LIBINTL=yes
  
      dnl Make all variables we use known to autoconf.
!     AC_SUBST([BUILD_INCLUDED_LIBINTL])
!     AC_SUBST([USE_INCLUDED_LIBINTL])
!     AC_SUBST([CATOBJEXT])
    ])
  
    dnl For backward compatibility. Some Makefiles may be using this.
    INTLLIBS="$LIBINTL"
!   AC_SUBST([INTLLIBS])
  
    dnl Make all documented variables known to autoconf.
!   AC_SUBST([LIBINTL])
!   AC_SUBST([LTLIBINTL])
!   AC_SUBST([POSUB])
  ])
  
  
! dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
! m4_define([gt_NEEDS_INIT],
  [
!   m4_divert_text([DEFAULTS], [gt_needs=])
!   m4_define([gt_NEEDS_INIT], [])
! ])
  
  
! dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
! AC_DEFUN([AM_GNU_GETTEXT_NEED],
! [
!   m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
  ])
  
  
  dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
  AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+ 
+ 
+ dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version])
+ AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], [])
diff -Nrcpad gcc-13.2.0/config/hwcaps.m4 gcc-14.1.0/config/hwcaps.m4
*** gcc-13.2.0/config/hwcaps.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/hwcaps.m4	Tue May  7 06:51:37 2024
*************** dnl  HWCAP_CFLAGS='-Wa,-nH' if possible.
*** 7,12 ****
--- 7,13 ----
  dnl
  AC_DEFUN([GCC_CHECK_ASSEMBLER_HWCAP], [
    test -z "$HWCAP_CFLAGS" && HWCAP_CFLAGS=''
+   AC_REQUIRE([AC_CANONICAL_TARGET])
  
    # Restrict the test to Solaris, other assemblers (e.g. AIX as) have -nH
    # with a different meaning.
diff -Nrcpad gcc-13.2.0/config/iconv.m4 gcc-14.1.0/config/iconv.m4
*** gcc-13.2.0/config/iconv.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/iconv.m4	Tue May  7 06:51:37 2024
***************
*** 1,13 ****
! # iconv.m4 serial AM4 (gettext-0.11.3)
! dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
! dnl This file is free software, distributed under the terms of the GNU
! dnl General Public License.  As a special exception to the GNU General
! dnl Public License, this file may be distributed as part of a program
! dnl that contains a configuration script generated by Autoconf, under
! dnl the same distribution terms as the rest of that program.
  
  dnl From Bruno Haible.
! dnl with modifications to support building with in-tree libiconv
  
  AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
  [
--- 1,17 ----
! # iconv.m4 serial 26
! dnl Copyright (C) 2000-2002, 2007-2014, 2016-2023 Free Software Foundation,
! dnl Inc.
! dnl This file is free software; the Free Software Foundation
! dnl gives unlimited permission to copy and/or distribute it,
! dnl with or without modifications, as long as this notice is preserved.
  
  dnl From Bruno Haible.
! 
! AC_PREREQ([2.64])
! 
! dnl Note: AM_ICONV is documented in the GNU gettext manual
! dnl <https://www.gnu.org/software/gettext/manual/html_node/AM_005fICONV.html>.
! dnl Don't make changes that are incompatible with that documentation!
  
  AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
  [
*************** AC_DEFUN([AM_ICONV_LINK],
*** 24,130 ****
  [
    dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
    dnl those with the standalone portable GNU libiconv installed).
  
    dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
    dnl accordingly.
    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
  
!   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
      am_cv_func_iconv="no, consider installing GNU libiconv"
      am_cv_lib_iconv=no
!     dnl Add $INCICONV to CPPFLAGS before performing the first check,
!     dnl because if the user has installed libiconv and not disabled its use
!     dnl via --without-libiconv-prefix, he wants to use it. This first
!     dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
!     am_save_CPPFLAGS="$CPPFLAGS"
!     CPPFLAGS="$CPPFLAGS $INCICONV"
!     AC_TRY_LINK([#include <stdlib.h>
! #include <iconv.h>],
!       [iconv_t cd = iconv_open("","");
!        iconv(cd,NULL,NULL,NULL,NULL);
!        iconv_close(cd);],
!       am_cv_func_iconv=yes)
!     CPPFLAGS="$am_save_CPPFLAGS"
! 
!     if test "$am_cv_func_iconv" != yes && test -d ../libiconv; then
!       for _libs in .libs _libs; do
!         am_save_CPPFLAGS="$CPPFLAGS"
!         am_save_LIBS="$LIBS"
!         CPPFLAGS="$CPPFLAGS -I../libiconv/include"
!         LIBS="$LIBS ../libiconv/lib/$_libs/libiconv.a"
!         AC_TRY_LINK([#include <stdlib.h>
! #include <iconv.h>],
!           [iconv_t cd = iconv_open("","");
             iconv(cd,NULL,NULL,NULL,NULL);
!            iconv_close(cd);],
!           INCICONV="-I../libiconv/include"
!           LIBICONV='${top_builddir}'/../libiconv/lib/$_libs/libiconv.a
!           LTLIBICONV='${top_builddir}'/../libiconv/lib/libiconv.la
!           am_cv_lib_iconv=yes
!           am_cv_func_iconv=yes)
!         CPPFLAGS="$am_save_CPPFLAGS"
!         LIBS="$am_save_LIBS"
!         if test "$am_cv_func_iconv" = "yes"; then
!           break
!         fi
!       done
!     fi
! 
      if test "$am_cv_func_iconv" != yes; then
-       am_save_CPPFLAGS="$CPPFLAGS"
        am_save_LIBS="$LIBS"
-       CPPFLAGS="$CPPFLAGS $INCICONV"
        LIBS="$LIBS $LIBICONV"
!       AC_TRY_LINK([#include <stdlib.h>
! #include <iconv.h>],
!         [iconv_t cd = iconv_open("","");
!          iconv(cd,NULL,NULL,NULL,NULL);
!          iconv_close(cd);],
!         am_cv_lib_iconv=yes
!         am_cv_func_iconv=yes)
!       CPPFLAGS="$am_save_CPPFLAGS"
        LIBS="$am_save_LIBS"
      fi
    ])
    if test "$am_cv_func_iconv" = yes; then
!     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
    fi
    if test "$am_cv_lib_iconv" = yes; then
-     AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
      AC_MSG_CHECKING([how to link with libiconv])
      AC_MSG_RESULT([$LIBICONV])
    else
      LIBICONV=
      LTLIBICONV=
    fi
!   AC_SUBST(LIBICONV)
!   AC_SUBST(LTLIBICONV)
  ])
  
! AC_DEFUN([AM_ICONV],
  [
    AM_ICONV_LINK
    if test "$am_cv_func_iconv" = yes; then
!     AC_MSG_CHECKING([for iconv declaration])
!     AC_CACHE_VAL(am_cv_proto_iconv, [
!       AC_TRY_COMPILE([
  #include <stdlib.h>
  #include <iconv.h>
  extern
  #ifdef __cplusplus
  "C"
  #endif
- #if defined(__STDC__) || defined(__cplusplus)
  size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
! #else
! size_t iconv();
! #endif
! ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
!       am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
!     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
!     AC_MSG_RESULT([$]{ac_t:-
!          }[$]am_cv_proto_iconv)
!     AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
!       [Define as const if the declaration of iconv() needs const.])
    fi
  ])
--- 28,293 ----
  [
    dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
    dnl those with the standalone portable GNU libiconv installed).
+   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
  
    dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
    dnl accordingly.
    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
  
!   dnl Add $INCICONV to CPPFLAGS before performing the following checks,
!   dnl because if the user has installed libiconv and not disabled its use
!   dnl via --without-libiconv-prefix, he wants to use it. The first
!   dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
!   am_save_CPPFLAGS="$CPPFLAGS"
!   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
! 
!   AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
      am_cv_func_iconv="no, consider installing GNU libiconv"
      am_cv_lib_iconv=no
!     AC_LINK_IFELSE(
!       [AC_LANG_PROGRAM(
!          [[
! #include <stdlib.h>
! #include <iconv.h>
!          ]],
!          [[iconv_t cd = iconv_open("","");
             iconv(cd,NULL,NULL,NULL,NULL);
!            iconv_close(cd);]])],
!       [am_cv_func_iconv=yes])
      if test "$am_cv_func_iconv" != yes; then
        am_save_LIBS="$LIBS"
        LIBS="$LIBS $LIBICONV"
!       AC_LINK_IFELSE(
!         [AC_LANG_PROGRAM(
!            [[
! #include <stdlib.h>
! #include <iconv.h>
!            ]],
!            [[iconv_t cd = iconv_open("","");
!              iconv(cd,NULL,NULL,NULL,NULL);
!              iconv_close(cd);]])],
!         [am_cv_lib_iconv=yes]
!         [am_cv_func_iconv=yes])
        LIBS="$am_save_LIBS"
      fi
    ])
    if test "$am_cv_func_iconv" = yes; then
!     AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
!       dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11,
!       dnl Solaris 10.
!       am_save_LIBS="$LIBS"
!       if test $am_cv_lib_iconv = yes; then
!         LIBS="$LIBS $LIBICONV"
!       fi
!       am_cv_func_iconv_works=no
!       for ac_iconv_const in '' 'const'; do
!         AC_RUN_IFELSE(
!           [AC_LANG_PROGRAM(
!              [[
! #include <iconv.h>
! #include <string.h>
! 
! #ifndef ICONV_CONST
! # define ICONV_CONST $ac_iconv_const
! #endif
!              ]],
!              [[int result = 0;
!   /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from
!      successful returns.  This is even documented in
!      <https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_bostechref/iconv.html> */
!   {
!     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
!     if (cd_utf8_to_88591 != (iconv_t)(-1))
!       {
!         static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
!         char buf[10];
!         ICONV_CONST char *inptr = input;
!         size_t inbytesleft = strlen (input);
!         char *outptr = buf;
!         size_t outbytesleft = sizeof (buf);
!         size_t res = iconv (cd_utf8_to_88591,
!                             &inptr, &inbytesleft,
!                             &outptr, &outbytesleft);
!         if (res == 0)
!           result |= 1;
!         iconv_close (cd_utf8_to_88591);
!       }
!   }
!   /* Test against Solaris 10 bug: Failures are not distinguishable from
!      successful returns.  */
!   {
!     iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
!     if (cd_ascii_to_88591 != (iconv_t)(-1))
!       {
!         static ICONV_CONST char input[] = "\263";
!         char buf[10];
!         ICONV_CONST char *inptr = input;
!         size_t inbytesleft = strlen (input);
!         char *outptr = buf;
!         size_t outbytesleft = sizeof (buf);
!         size_t res = iconv (cd_ascii_to_88591,
!                             &inptr, &inbytesleft,
!                             &outptr, &outbytesleft);
!         if (res == 0)
!           result |= 2;
!         iconv_close (cd_ascii_to_88591);
!       }
!   }
!   /* Test against AIX 6.1..7.1 bug: Buffer overrun.  */
!   {
!     iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
!     if (cd_88591_to_utf8 != (iconv_t)(-1))
!       {
!         static ICONV_CONST char input[] = "\304";
!         static char buf[2] = { (char)0xDE, (char)0xAD };
!         ICONV_CONST char *inptr = input;
!         size_t inbytesleft = 1;
!         char *outptr = buf;
!         size_t outbytesleft = 1;
!         size_t res = iconv (cd_88591_to_utf8,
!                             &inptr, &inbytesleft,
!                             &outptr, &outbytesleft);
!         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
!           result |= 4;
!         iconv_close (cd_88591_to_utf8);
!       }
!   }
! #if 0 /* This bug could be worked around by the caller.  */
!   /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
!   {
!     iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
!     if (cd_88591_to_utf8 != (iconv_t)(-1))
!       {
!         static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
!         char buf[50];
!         ICONV_CONST char *inptr = input;
!         size_t inbytesleft = strlen (input);
!         char *outptr = buf;
!         size_t outbytesleft = sizeof (buf);
!         size_t res = iconv (cd_88591_to_utf8,
!                             &inptr, &inbytesleft,
!                             &outptr, &outbytesleft);
!         if ((int)res > 0)
!           result |= 8;
!         iconv_close (cd_88591_to_utf8);
!       }
!   }
! #endif
!   /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
!      provided.  */
!   {
!     /* Try standardized names.  */
!     iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
!     /* Try IRIX, OSF/1 names.  */
!     iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
!     /* Try AIX names.  */
!     iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
!     /* Try HP-UX names.  */
!     iconv_t cd4 = iconv_open ("utf8", "eucJP");
!     if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
!         && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
!       result |= 16;
!     if (cd1 != (iconv_t)(-1))
!       iconv_close (cd1);
!     if (cd2 != (iconv_t)(-1))
!       iconv_close (cd2);
!     if (cd3 != (iconv_t)(-1))
!       iconv_close (cd3);
!     if (cd4 != (iconv_t)(-1))
!       iconv_close (cd4);
!   }
!   return result;
! ]])],
!           [am_cv_func_iconv_works=yes], ,
!           [case "$host_os" in
!              aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
!              *)            am_cv_func_iconv_works="guessing yes" ;;
!            esac])
!         test "$am_cv_func_iconv_works" = no || break
!       done
!       LIBS="$am_save_LIBS"
!     ])
!     case "$am_cv_func_iconv_works" in
!       *no) am_func_iconv=no am_cv_lib_iconv=no ;;
!       *)   am_func_iconv=yes ;;
!     esac
!   else
!     am_func_iconv=no am_cv_lib_iconv=no
!   fi
!   if test "$am_func_iconv" = yes; then
!     AC_DEFINE([HAVE_ICONV], [1],
!       [Define if you have the iconv() function and it works.])
    fi
    if test "$am_cv_lib_iconv" = yes; then
      AC_MSG_CHECKING([how to link with libiconv])
      AC_MSG_RESULT([$LIBICONV])
    else
+     dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+     dnl either.
+     CPPFLAGS="$am_save_CPPFLAGS"
      LIBICONV=
      LTLIBICONV=
    fi
!   AC_SUBST([LIBICONV])
!   AC_SUBST([LTLIBICONV])
  ])
  
! dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like
! dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
! AC_DEFUN_ONCE([AM_ICONV],
  [
    AM_ICONV_LINK
    if test "$am_cv_func_iconv" = yes; then
!     AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature],
!       [gl_cv_iconv_nonconst],
!       [AC_COMPILE_IFELSE(
!          [AC_LANG_PROGRAM(
!             [[
  #include <stdlib.h>
  #include <iconv.h>
  extern
  #ifdef __cplusplus
  "C"
  #endif
  size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
!             ]],
!             [[]])],
!          [gl_cv_iconv_nonconst=yes],
!          [gl_cv_iconv_nonconst=no])
!       ])
!   else
!     dnl When compiling GNU libiconv on a system that does not have iconv yet,
!     dnl pick the POSIX compliant declaration without 'const'.
!     gl_cv_iconv_nonconst=yes
!   fi
!   if test $gl_cv_iconv_nonconst = yes; then
!     iconv_arg1=""
!   else
!     iconv_arg1="const"
!   fi
!   AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1],
!     [Define as const if the declaration of iconv() needs const.])
!   dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
!   m4_ifdef([gl_ICONV_H_DEFAULTS],
!     [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
!      if test $gl_cv_iconv_nonconst != yes; then
!        ICONV_CONST="const"
!      fi
!     ])
! 
!   dnl A summary result, for those packages which want to print a summary at the
!   dnl end of the configuration.
!   if test "$am_func_iconv" = yes; then
!     if test -n "$LIBICONV"; then
!       am_cv_func_iconv_summary='yes, in libiconv'
!     else
!       am_cv_func_iconv_summary='yes, in libc'
!     fi
!   else
!     if test "$am_cv_func_iconv" = yes; then
!       am_cv_func_iconv_summary='not working, consider installing GNU libiconv'
!     else
!       am_cv_func_iconv_summary='no, consider installing GNU libiconv'
!     fi
    fi
  ])
diff -Nrcpad gcc-13.2.0/config/intlmacosx.m4 gcc-14.1.0/config/intlmacosx.m4
*** gcc-13.2.0/config/intlmacosx.m4	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/config/intlmacosx.m4	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,69 ----
+ # intlmacosx.m4 serial 9 (gettext-0.22.3)
+ dnl Copyright (C) 2004-2014, 2016, 2019-2023 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ dnl
+ dnl This file can be used in projects which are not available under
+ dnl the GNU General Public License or the GNU Lesser General Public
+ dnl License but which still want to provide support for the GNU gettext
+ dnl functionality.
+ dnl Please note that the actual code of the GNU gettext library is covered
+ dnl by the GNU Lesser General Public License, and the rest of the GNU
+ dnl gettext package is covered by the GNU General Public License.
+ dnl They are *not* in the public domain.
+ 
+ dnl Checks for special options needed on Mac OS X.
+ dnl Defines INTL_MACOSX_LIBS.
+ AC_DEFUN([gt_INTL_MACOSX],
+ [
+   dnl Check for API introduced in Mac OS X 10.4.
+   AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+     [gt_cv_func_CFPreferencesCopyAppValue],
+     [gt_save_LIBS="$LIBS"
+      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <CoreFoundation/CFPreferences.h>]],
+           [[CFPreferencesCopyAppValue(NULL, NULL)]])],
+        [gt_cv_func_CFPreferencesCopyAppValue=yes],
+        [gt_cv_func_CFPreferencesCopyAppValue=no])
+      LIBS="$gt_save_LIBS"])
+   if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+     AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
+       [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+   fi
+   dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent,
+   dnl because in macOS 10.13.4 it has the following behaviour:
+   dnl When two or more languages are specified in the
+   dnl "System Preferences > Language & Region > Preferred Languages" panel,
+   dnl it returns en_CC where CC is the territory (even when English is not among
+   dnl the preferred languages!).  What we want instead is what
+   dnl CFLocaleCopyCurrent returned in earlier macOS releases and what
+   dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the
+   dnl first among the preferred languages and CC is the territory.
+   AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages],
+     [gt_save_LIBS="$LIBS"
+      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <CoreFoundation/CFLocale.h>]],
+           [[CFLocaleCopyPreferredLanguages();]])],
+        [gt_cv_func_CFLocaleCopyPreferredLanguages=yes],
+        [gt_cv_func_CFLocaleCopyPreferredLanguages=no])
+      LIBS="$gt_save_LIBS"])
+   if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
+     AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1],
+       [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.])
+   fi
+   INTL_MACOSX_LIBS=
+   if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
+      || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
+     dnl Starting with macOS version 14, CoreFoundation relies on CoreServices,
+     dnl and we have to link it in explicitly, otherwise an exception
+     dnl NSInvalidArgumentException "unrecognized selector sent to instance"
+     dnl occurs.
+     INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices"
+   fi
+   AC_SUBST([INTL_MACOSX_LIBS])
+ ])
diff -Nrcpad gcc-13.2.0/config/lcmessage.m4 gcc-14.1.0/config/lcmessage.m4
*** gcc-13.2.0/config/lcmessage.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/lcmessage.m4	Tue May  7 06:51:37 2024
*************** dnl Public License, this file may be dis
*** 6,18 ****
  dnl that contains a configuration script generated by Autoconf, under
  dnl the same distribution terms as the rest of that program.
  dnl
! dnl This file can can be used in projects which are not available under
  dnl the GNU General Public License or the GNU Library General Public
  dnl License but which still want to provide support for the GNU gettext
  dnl functionality.
  dnl Please note that the actual code of the GNU gettext library is covered
  dnl by the GNU Library General Public License, and the rest of the GNU
! dnl gettext package package is covered by the GNU General Public License.
  dnl They are *not* in the public domain.
  
  dnl Authors:
--- 6,18 ----
  dnl that contains a configuration script generated by Autoconf, under
  dnl the same distribution terms as the rest of that program.
  dnl
! dnl This file can be used in projects which are not available under
  dnl the GNU General Public License or the GNU Library General Public
  dnl License but which still want to provide support for the GNU gettext
  dnl functionality.
  dnl Please note that the actual code of the GNU gettext library is covered
  dnl by the GNU Library General Public License, and the rest of the GNU
! dnl gettext package is covered by the GNU General Public License.
  dnl They are *not* in the public domain.
  
  dnl Authors:
diff -Nrcpad gcc-13.2.0/config/lib-ld.m4 gcc-14.1.0/config/lib-ld.m4
*** gcc-13.2.0/config/lib-ld.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/lib-ld.m4	Tue May  7 06:51:37 2024
*************** dnl with libtool.m4.
*** 12,20 ****
  
  dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
  AC_DEFUN([AC_LIB_PROG_LD_GNU],
! [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
  [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
! if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
    acl_cv_prog_gnu_ld=yes
  else
    acl_cv_prog_gnu_ld=no
--- 12,21 ----
  
  dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
  AC_DEFUN([AC_LIB_PROG_LD_GNU],
! [AC_REQUIRE([AC_PROG_EGREP])dnl
! AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
  [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
! if $LD -v 2>&1 </dev/null | $EGREP '(GNU|with BFD)' 1>&5; then
    acl_cv_prog_gnu_ld=yes
  else
    acl_cv_prog_gnu_ld=no
*************** AC_DEFUN([AC_LIB_PROG_LD],
*** 29,34 ****
--- 30,36 ----
  test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
  AC_REQUIRE([AC_PROG_CC])dnl
  AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([AC_PROG_EGREP])dnl
  # Prepare PATH_SEPARATOR.
  # The user is always right.
  if test "${PATH_SEPARATOR+set}" != set; then
*************** AC_CACHE_VAL(acl_cv_path_LD,
*** 88,94 ****
        # Check to see if the program is GNU ld.  I'd rather use --version,
        # but apparently some GNU ld's only accept -v.
        # Break only if it was the GNU/non-GNU ld that we prefer.
!       if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
  	test "$with_gnu_ld" != no && break
        else
  	test "$with_gnu_ld" != yes && break
--- 90,96 ----
        # Check to see if the program is GNU ld.  I'd rather use --version,
        # but apparently some GNU ld's only accept -v.
        # Break only if it was the GNU/non-GNU ld that we prefer.
!       if "$acl_cv_path_LD" -v 2>&1 < /dev/null | $EGREP '(GNU|with BFD)' > /dev/null; then
  	test "$with_gnu_ld" != no && break
        else
  	test "$with_gnu_ld" != yes && break
diff -Nrcpad gcc-13.2.0/config/mh-mingw gcc-14.1.0/config/mh-mingw
*** gcc-13.2.0/config/mh-mingw	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/mh-mingw	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  # Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows
  # Vista (see PR33281 for details).
  BOOT_CFLAGS += -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format
- BOOT_CXXFLAGS += -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format
  CFLAGS += -D__USE_MINGW_ACCESS
  CXXFLAGS += -D__USE_MINGW_ACCESS
  STAGE1_CXXFLAGS += -D__USE_MINGW_ACCESS
--- 1,6 ----
diff -Nrcpad gcc-13.2.0/config/mt-loongarch-elf gcc-14.1.0/config/mt-loongarch-elf
*** gcc-13.2.0/config/mt-loongarch-elf	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/config/mt-loongarch-elf	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1 ----
+ include $(srcdir)/config/mt-loongarch-mlib
diff -Nrcpad gcc-13.2.0/config/mt-loongarch-gnu gcc-14.1.0/config/mt-loongarch-gnu
*** gcc-13.2.0/config/mt-loongarch-gnu	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/config/mt-loongarch-gnu	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2 ----
+ include $(srcdir)/config/mt-gnu
+ include $(srcdir)/config/mt-loongarch-mlib
diff -Nrcpad gcc-13.2.0/config/mt-loongarch-mlib gcc-14.1.0/config/mt-loongarch-mlib
*** gcc-13.2.0/config/mt-loongarch-mlib	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/config/mt-loongarch-mlib	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1 ----
+ FLAGS_FOR_TARGET += -fmultiflags
diff -Nrcpad gcc-13.2.0/config/override.m4 gcc-14.1.0/config/override.m4
*** gcc-13.2.0/config/override.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/override.m4	Tue May  7 06:51:37 2024
*************** m4_ifndef([_GCC_AUTOCONF_VERSION],
*** 32,38 ****
    [m4_define([_GCC_AUTOCONF_VERSION], [2.69])])
  
  dnl Test for the exact version when AC_INIT is expanded.
! dnl This allows to update the tree in steps (for testing)
  dnl by putting
  dnl   m4_define([_GCC_AUTOCONF_VERSION], [X.Y])
  dnl in configure.ac before AC_INIT,
--- 32,38 ----
    [m4_define([_GCC_AUTOCONF_VERSION], [2.69])])
  
  dnl Test for the exact version when AC_INIT is expanded.
! dnl This allows one to update the tree in steps (for testing)
  dnl by putting
  dnl   m4_define([_GCC_AUTOCONF_VERSION], [X.Y])
  dnl in configure.ac before AC_INIT,
diff -Nrcpad gcc-13.2.0/config/picflag.m4 gcc-14.1.0/config/picflag.m4
*** gcc-13.2.0/config/picflag.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/picflag.m4	Tue May  7 06:51:37 2024
*************** case "${$2}" in
*** 63,71 ****
      sh-*-linux* | sh[[2346lbe]]*-*-linux*)
  	$1=-fpic
  	;;
!     # FIXME: Simplify to sh*-*-netbsd*?
!     sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
!       sh64-*-netbsd* | sh64l*-*-netbsd*)
  	$1=-fpic
  	;;
      # Default to -fPIC unless specified otherwise.
--- 63,69 ----
      sh-*-linux* | sh[[2346lbe]]*-*-linux*)
  	$1=-fpic
  	;;
!     sh*-*-netbsd*)
  	$1=-fpic
  	;;
      # Default to -fPIC unless specified otherwise.
diff -Nrcpad gcc-13.2.0/config/pkg.m4 gcc-14.1.0/config/pkg.m4
*** gcc-13.2.0/config/pkg.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/config/pkg.m4	Tue May  7 06:51:37 2024
*************** AC_MSG_CHECKING([for $2])
*** 147,152 ****
--- 147,160 ----
  _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
  _PKG_CONFIG([$1][_LIBS], [libs], [$2])
  
+ dnl Check whether $pkg_cv_[]$1[]_LIBS works.
+ if test $pkg_failed = no; then
+   pkg_save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $pkg_cv_[]$1[]_LIBS"
+   AC_TRY_LINK([],[], [], [pkg_failed=yes])
+   LDFLAGS=$pkg_save_LDFLAGS
+ fi
+ 
  m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
  and $1[]_LIBS to avoid the need to call pkg-config.
  See the pkg-config man page for more details.])
diff -Nrcpad gcc-13.2.0/config/zstd.m4 gcc-14.1.0/config/zstd.m4
*** gcc-13.2.0/config/zstd.m4	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/config/zstd.m4	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,23 ----
+ dnl Copyright (C) 2022 Free Software Foundation, Inc.
+ dnl This file is free software, distributed under the terms of the GNU
+ dnl General Public License.  As a special exception to the GNU General
+ dnl Public License, this file may be distributed as part of a program
+ dnl that contains a configuration script generated by Autoconf, under
+ dnl the same distribution terms as the rest of that program.
+ 
+ dnl Enable features using the zstd library.
+ AC_DEFUN([AC_ZSTD], [
+ AC_ARG_WITH(zstd,
+   [AS_HELP_STRING([--with-zstd], [support zstd compressed debug sections (default=auto)])],
+   [], [with_zstd=auto])
+ 
+ AS_IF([test "$with_zstd" != no],
+   [PKG_CHECK_MODULES(ZSTD, [libzstd >= 1.4.0], [
+     AC_DEFINE(HAVE_ZSTD, 1, [Define to 1 if zstd is enabled.])
+   ], [
+     if test "$with_zstd" = yes; then
+       AC_MSG_ERROR([--with-zstd was given, but pkgconfig/libzstd.pc is not found])
+     fi
+   ])
+   ])
+ ])
diff -Nrcpad gcc-13.2.0/configure gcc-14.1.0/configure
*** gcc-13.2.0/configure	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/configure	Tue May  7 06:52:51 2024
*************** GFORTRAN_FOR_TARGET
*** 620,625 ****
--- 620,628 ----
  GCC_FOR_TARGET
  CXX_FOR_TARGET
  CC_FOR_TARGET
+ RANLIB_PLUGIN_OPTION
+ AR_PLUGIN_OPTION
+ PKG_CONFIG_PATH
  GDCFLAGS
  READELF
  OTOOL
*************** extra_host_zlib_configure_flags
*** 687,693 ****
--- 690,699 ----
  extra_host_libiberty_configure_flags
  stage1_languages
  host_libs_picflag
+ PICFLAG
  host_shared
+ gcc_host_pie
+ host_pie
  extra_linker_plugin_flags
  extra_linker_plugin_configure_flags
  islinc
*************** PGO_BUILD_GEN_CFLAGS
*** 708,713 ****
--- 714,720 ----
  HAVE_CXX11_FOR_BUILD
  HAVE_CXX11
  do_compare
+ CARGO
  GDC
  GNATMAKE
  GNATBIND
*************** ac_user_opts='
*** 795,806 ****
--- 802,817 ----
  enable_option_checking
  with_build_libsubdir
  with_system_zlib
+ with_zstd
  enable_as_accelerator_for
  enable_offload_targets
  enable_offload_defaulted
  enable_gold
  enable_ld
+ enable_gprofng
  enable_compressed_debug_sections
+ enable_default_compressed_debug_sections_algorithm
+ enable_year2038
  enable_libquadmath
  enable_libquadmath_support
  enable_libada
*************** enable_isl_version_check
*** 830,835 ****
--- 841,847 ----
  enable_lto
  enable_linker_plugin_configure_flags
  enable_linker_plugin_flags
+ enable_host_pie
  enable_host_shared
  enable_stage1_languages
  enable_objc_gc
*************** Optional Features:
*** 1536,1544 ****
--- 1548,1561 ----
  
    --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
    --enable-ld[=ARG]       build ld [ARG={default,yes,no}]
+   --enable-gprofng[=ARG]  build gprofng [ARG={yes,no}]
    --enable-compressed-debug-sections={all,gas,gold,ld,none}
                            Enable compressed debug sections for gas, gold or ld
                            by default
+   --enable-default-compressed-debug-sections-algorithm={zlib,zstd}
+                           Default compression algorithm for
+                           --enable-compressed-debug-sections.
+   --enable-year2038       enable support for timestamps past the year 2038
    --disable-libquadmath   do not build libquadmath directory
    --disable-libquadmath-support
                            disable libquadmath support for Fortran
*************** Optional Features:
*** 1558,1563 ****
--- 1575,1581 ----
    --enable-linker-plugin-flags=FLAGS
                            additional flags for configuring and building linker
                            plugins [none]
+   --enable-host-pie       build position independent host executables
    --enable-host-shared    build host code as shared libraries
    --enable-stage1-languages[=all]
                            choose additional languages to build during stage1.
*************** Optional Packages:
*** 1582,1587 ****
--- 1600,1607 ----
    --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
    --with-build-libsubdir=DIR  Directory where to find libraries for build system
    --with-system-zlib      use installed libz
+   --with-zstd             Support zstd compressed debug sections
+                           (default=auto)
    --with-mpc=PATH         specify prefix directory for installed MPC package.
                            Equivalent to --with-mpc-include=PATH/include plus
                            --with-mpc-lib=PATH/lib
*************** build_tools="build-texinfo build-flex bu
*** 2810,2816 ****
  
  # these libraries are used by various programs built for the host environment
  #f
! host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libcody libdecnumber gmp mpfr mpc isl libiconv libctf libsframe"
  
  # these tools are built for the host environment
  # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
--- 2830,2836 ----
  
  # these libraries are used by various programs built for the host environment
  #f
! host_libs="gettext libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libcody libdecnumber gmp mpfr mpc isl libiconv libctf libsframe libgrust "
  
  # these tools are built for the host environment
  # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
*************** target_libraries="target-libgcc \
*** 2841,2846 ****
--- 2861,2867 ----
  		target-libada \
  		target-libgm2 \
  		target-libgo \
+ 		target-libgrust \
  		target-libphobos \
  		target-zlib"
  
*************** if test x$with_system_readline = xyes ;
*** 2955,2960 ****
--- 2976,2988 ----
    noconfigdirs="$noconfigdirs readline"
  fi
  
+ 
+ # Check whether --with-zstd was given.
+ if test "${with_zstd+set}" = set; then :
+   withval=$with_zstd;
+ fi
+ 
+ 
  # some tools are so dependent upon X11 that if we're not building with X,
  # it's not even worth trying to configure, much less build, that tool.
  
*************** case "${ENABLE_GOLD}" in
*** 3051,3057 ****
        *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
        | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
        | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
!       | *-*-solaris2* | *-*-nto* | *-*-nacl*)
          case "${target}" in
            *-*-linux*aout* | *-*-linux*oldld*)
              ;;
--- 3079,3085 ----
        *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
        | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
        | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
!       | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-haiku*)
          case "${target}" in
            *-*-linux*aout* | *-*-linux*oldld*)
              ;;
*************** case "${ENABLE_GOLD}" in
*** 3065,3071 ****
        # Check for target supported by gold.
        case "${target}" in
          i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
!         | aarch64*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*)
  	  configdirs="$configdirs gold"
  	  if test x${ENABLE_GOLD} = xdefault; then
  	    default_ld=gold
--- 3093,3099 ----
        # Check for target supported by gold.
        case "${target}" in
          i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
!         | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-*)
  	  configdirs="$configdirs gold"
  	  if test x${ENABLE_GOLD} = xdefault; then
  	    default_ld=gold
*************** $as_echo "$as_me: WARNING: neither ld no
*** 3110,3115 ****
--- 3138,3159 ----
      ;;
  esac
  
+ # Check whether --enable-gprofng was given.
+ if test "${enable_gprofng+set}" = set; then :
+   enableval=$enable_gprofng; enable_gprofng=$enableval
+ else
+   enable_gprofng=yes
+ fi
+ 
+ if test "$enable_gprofng" = "yes"; then
+   case "${target}" in
+     x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
+     configdirs="$configdirs gprofng"
+     ;;
+   esac
+ fi
+ 
+ 
  # PR gas/19109
  # Decide the default method for compressing debug sections.
  # Provide a configure time option to override our default.
*************** else
*** 3125,3130 ****
--- 3169,3183 ----
  fi
  
  
+ # Select default compression algorithm.
+ # Check whether --enable-default_compressed_debug_sections_algorithm was given.
+ if test "${enable_default_compressed_debug_sections_algorithm+set}" = set; then :
+   enableval=$enable_default_compressed_debug_sections_algorithm;
+ else
+   default_compressed_debug_sections_algorithm=
+ fi
+ 
+ 
  # Configure extra directories which are host specific
  
  case "${host}" in
*************** case "${host}" in
*** 3146,3151 ****
--- 3199,3218 ----
      ;;
  esac
  
+ # Default to --disable-year2038 until we can handle differences between
+ # projects that use gnulib (which understands year 2038) and projects that
+ # do not (like BFD).
+ # Check whether --enable-year2038 was given.
+ if test "${enable_year2038+set}" = set; then :
+   enableval=$enable_year2038; ENABLE_YEAR2038=$enableval
+ else
+   ENABLE_YEAR2038=no
+ fi
+ 
+ enable_year2038=
+ if test "${ENABLE_YEAR2038}" = "no" ; then
+   enable_year2038=no
+ fi
  
  # Check whether --enable-libquadmath was given.
  if test "${enable_libquadmath+set}" = set; then :
*************** case "${target}" in
*** 3507,3512 ****
--- 3574,3584 ----
    hppa*64*-*-hpux*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
+   hppa*-hp-hpux11*)
+     ;;
+   hppa*-*-hpux*)
+     noconfigdirs="$noconfigdirs target-libffi"
+     ;;
    ia64*-*-*vms*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
*************** case "${target}" in
*** 3813,3821 ****
--- 3885,3898 ----
    h8500-*-*)
      noconfigdirs="$noconfigdirs target-libgloss"
      ;;
+   hppa1.1-*-osf* | hppa1.1-*-bsd* )
+     ;;
    hppa*64*-*-hpux*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
+   hppa*-*-hpux11*)
+     noconfigdirs="$noconfigdirs gdb ld"
+     ;;
    hppa*64*-*-linux*)
      ;;
    hppa*-*-linux*)
*************** case "${target}" in
*** 3970,3975 ****
--- 4047,4055 ----
    tic6x-*-*)
      noconfigdirs="$noconfigdirs sim"
      ;;
+   tilepro*-*-* | tilegx*-*-*)
+     noconfigdirs="$noconfigdirs sim"
+     ;;
    v810-*-*)
      noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
      ;;
*************** else
*** 5707,5712 ****
--- 5787,5840 ----
    have_gdc=no
  fi
  
+ for ac_prog in cargo
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_CARGO+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CARGO"; then
+   ac_cv_prog_CARGO="$CARGO" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CARGO="$ac_prog"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ CARGO=$ac_cv_prog_CARGO
+ if test -n "$CARGO"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CARGO" >&5
+ $as_echo "$CARGO" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+   test -n "$CARGO" && break
+ done
+ test -n "$CARGO" || CARGO="no"
+ 
+ if test "x$CARGO" != xno; then
+   have_cargo=yes
+ else
+   have_cargo=no
+ fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to compare bootstrapped objects" >&5
  $as_echo_n "checking how to compare bootstrapped objects... " >&6; }
  if ${gcc_cv_prog_cmp_skip+:} false; then :
*************** else
*** 8414,8419 ****
--- 8542,8561 ----
   fi
  fi
  
+ case $target in
+   *-darwin2* | *-darwin1[56789]*)
+     # For these versions, we default to using embedded rpaths.
+     if test "x$enable_darwin_at_rpath" != "xno"; then
+       poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths"
+     fi
+   ;;
+   *-darwin*)
+     # For these versions, we only use embedded rpaths on demand.
+     if test "x$enable_darwin_at_rpath" = "xyes"; then
+       poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths"
+     fi
+   ;;
+ esac
  
  
  # GCC GRAPHITE dependency isl.
*************** fi
*** 8645,8650 ****
--- 8787,8825 ----
  
  
  
+ # Handle --enable-host-pie
+ # If host PIE executables are the default (or must be forced on) for some host,
+ # we must pass that configuration to the gcc directory.
+ gcc_host_pie=
+ # Check whether --enable-host-pie was given.
+ if test "${enable_host_pie+set}" = set; then :
+   enableval=$enable_host_pie; host_pie=$enableval
+  case $host in
+    *-*-darwin2*)
+      if test x$host_pie != xyes ; then
+        # for Darwin20+ this is required.
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PIE executables are required for the configured host, host-pie setting ignored." >&5
+ $as_echo "$as_me: WARNING: PIE executables are required for the configured host, host-pie setting ignored." >&2;}
+        host_pie=yes
+        gcc_host_pie=--enable-host-pie
+      fi ;;
+   *) ;;
+  esac
+ else
+   case $host in
+   *-*-darwin2*)
+     # Default to PIE (mandatory for aarch64).
+     host_pie=yes
+     gcc_host_pie=--enable-host-pie
+     ;;
+   *) host_pie=no ;;
+  esac
+ fi
+ 
+ 
+ 
+ 
+ 
  # Enable --enable-host-shared.
  # Checked early to determine whether jit is an 'all' language
  # Check whether --enable-host-shared was given.
*************** if test "${enable_host_shared+set}" = se
*** 8654,8679 ****
     x86_64-*-darwin* | aarch64-*-darwin*)
       if test x$host_shared != xyes ; then
         # PIC is the default, and actually cannot be switched off.
!        echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2
         host_shared=yes
       fi ;;
    *) ;;
   esac
  else
    case $host in
    x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
!   *) host_shared=no ;;
   esac
  fi
  
  
  
  
  # If we are building PIC/PIE host executables, and we are building dependent
  # libs (e.g. GMP) in-tree those libs need to be configured to generate PIC
  # code.
  host_libs_picflag=
! if test "$host_shared" = "yes";then
  host_libs_picflag='--with-pic'
  fi
  
--- 8829,8885 ----
     x86_64-*-darwin* | aarch64-*-darwin*)
       if test x$host_shared != xyes ; then
         # PIC is the default, and actually cannot be switched off.
!        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PIC code is required for the configured host; host-shared setting ignored." >&5
! $as_echo "$as_me: WARNING: PIC code is required for the configured host; host-shared setting ignored." >&2;}
!        host_shared=yes
!      fi ;;
!    *-*-darwin*)
!      if test x$host_pie = xyes -a x$host_shared != xyes ; then
!        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PIC code is required for PIE host executables host-shared setting ignored." >&5
! $as_echo "$as_me: WARNING: PIC code is required for PIE host executables host-shared setting ignored." >&2;}
         host_shared=yes
       fi ;;
    *) ;;
   esac
  else
    case $host in
+   # 64B x86_64 and Aarch64 Darwin default to PIC.
    x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
!   # 32B and powerpc64 Darwin must use PIC to link PIE exes.
!   *-*-darwin*) host_shared=$host_pie ;;
!   *) host_shared=no;;
   esac
  fi
  
  
  
  
+ if test x$host_shared = xyes; then
+   case $host in
+     *-*-darwin*)
+       # Since host shared is the default for 64b Darwin, and also enabled for
+       # host_pie, ensure that we present the PIE flag when host_pie is active.
+       if test x$host_pie = xyes; then
+         PICFLAG=-fPIE
+       fi
+       ;;
+     *)
+       PICFLAG=-fPIC
+       ;;
+   esac
+ elif test x$host_pie = xyes; then
+   PICFLAG=-fPIE
+ else
+   PICFLAG=
+ fi
+ 
+ 
+ 
  # If we are building PIC/PIE host executables, and we are building dependent
  # libs (e.g. GMP) in-tree those libs need to be configured to generate PIC
  # code.
  host_libs_picflag=
! if test "$host_shared" = "yes" -o "$host_pie" = "yes"; then
  host_libs_picflag='--with-pic'
  fi
  
*************** $as_echo "$as_me: WARNING: GDC is requir
*** 8909,8926 ****
              ;;
          esac
  
-         # Disable Rust for GCC 13 release.
-         case ${add_this_lang}:${language} in
-           yes:rust)
-             # Specifically requested language; tell them.
-             as_fn_error $? "Rust is not supported in GCC 13 release" "$LINENO" 5
-            ;;
-           *:rust)
-             # Silently disable.
-             add_this_lang=unsupported
-             ;;
-         esac
- 
          # Disable jit if -enable-host-shared not specified
          # but not if building for Mingw. All code in Windows
          # is position independent code (PIC).
--- 9115,9120 ----
*************** $as_echo "$as_me: WARNING: --enable-host
*** 8954,8959 ****
--- 9148,9184 ----
            ;;
          esac
  
+         # Pre-conditions to consider whether cargo being supported.
+         if test x"$have_cargo" = xyes \
+           && test x"$build" != x"$host"; then
+           # Until <https://github.com/Rust-GCC/gccrs/issues/2898>
+           # "'cargo' should build for the host system" is resolved:
+           { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: use of cargo not yet supported here in Canadian cross configurations" >&5
+ $as_echo "$as_me: WARNING: use of cargo not yet supported here in Canadian cross configurations" >&2;}
+           have_cargo=no
+         else
+           # Assume that cargo-produced object files are compatible with what
+           # we're going to build here.
+           :
+         fi
+         # Disable Rust if cargo is unavailable.
+         case ${add_this_lang}:${language}:${have_cargo} in
+           yes:rust:no)
+             # Specifically requested language; tell them.
+             as_fn_error $? "cargo is required to build $language" "$LINENO" 5
+             ;;
+           all:rust:no)
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cargo is required to build $language" >&5
+ $as_echo "$as_me: WARNING: cargo is required to build $language" >&2;}
+             add_this_lang=unsupported
+             ;;
+           *:rust:no)
+             # Silently disable.
+             add_this_lang=unsupported
+             ;;
+         esac
+ 
+ 
          # Disable a language that is unsupported by the target.
  	case "${add_this_lang}: $unsupported_languages " in
  	  no:*) ;;
*************** case ,${enable_languages}, in
*** 9131,9136 ****
--- 9356,9372 ----
      ;;
  esac
  
+ case ,${enable_languages}, in
+   *,rust,*)
+     case " ${noconfigdirs} " in
+       *\ target-libstdc++-v3\ *)
+         # Disable target libgrust if we're not building target libstdc++.
+         noconfigdirs="$noconfigdirs target-libgrust"
+         ;;
+     esac
+     ;;
+ esac
+ 
  # If gcc/ is not in the source tree then we'll not be building a
  # target compiler, assume in that case we don't want to build any
  # target libraries or tools.
*************** case "${target}" in
*** 9553,9558 ****
--- 9789,9800 ----
    spu-*-*)
      target_makefile_frag="config/mt-spu"
      ;;
+   loongarch*-*linux* | loongarch*-*gnu*)
+     target_makefile_frag="config/mt-loongarch-gnu"
+     ;;
+   loongarch*-*elf*)
+     target_makefile_frag="config/mt-loongarch-elf"
+     ;;
    mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
      target_makefile_frag="config/mt-sde"
      ;;
*************** esac
*** 9930,9936 ****
--- 10172,10180 ----
  # These force 'configure's to be done one at a time, to avoid problems
  # with contention over a shared config.cache.
  rm -f serdep.tmp
+ if test "x${enable_serial_build_configure}" = xyes || test "x${enable_serial_host_configure}" = xyes || test "x${enable_serial_target_configure}" = xyes; then
  echo '# serdep.tmp' > serdep.tmp
+ fi
  olditem=
  test "x${enable_serial_build_configure}" = xyes &&
  for item in ${build_configdirs} ; do
*************** serialization_dependencies=serdep.tmp
*** 9968,9974 ****
  # files altogether, and which should be passed on to subconfigures.
  # Also strip program-prefix, program-suffix, and program-transform-name,
  # so that we can pass down a consistent program-transform-name.
! baseargs=
  tbaseargs=
  keep_next=no
  skip_next=no
--- 10212,10219 ----
  # files altogether, and which should be passed on to subconfigures.
  # Also strip program-prefix, program-suffix, and program-transform-name,
  # so that we can pass down a consistent program-transform-name.
! hbaseargs=
! bbaseargs=
  tbaseargs=
  keep_next=no
  skip_next=no
*************** do
*** 9984,9990 ****
        *\'*)
  	ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
      esac
!     baseargs="$baseargs '$ac_arg'"
      tbaseargs="$tbaseargs '$ac_arg'"
      keep_next=no
      continue
--- 10229,10236 ----
        *\'*)
  	ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
      esac
!     hbaseargs="$hbaseargs '$ac_arg'"
!     bbaseargs="$bbaseargs '$ac_arg'"
      tbaseargs="$tbaseargs '$ac_arg'"
      keep_next=no
      continue
*************** do
*** 10008,10013 ****
--- 10254,10260 ----
    esac
  
    skip_targ=no
+   skip_barg=no
    case $ac_arg in
  
    --with-* | --without-*)
*************** do
*** 10020,10025 ****
--- 10267,10278 ----
      *[-_]lib)
        lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
        ;;
+     *[-_]prefix)
+       lib=`echo "$libopt" | sed 's,[-_]prefix$,,'`
+       ;;
+     *[-_]type)
+       lib=`echo "$libopt" | sed 's,[-_]type$,,'`
+       ;;
      *)
        lib=$libopt
        ;;
*************** do
*** 10036,10041 ****
--- 10289,10299 ----
          skip_targ=yes
        fi
        ;;
+     libintl | libiconv)
+       # We don't want libintl (and co.) in anything but the host arguments.
+       skip_targ=yes
+       skip_barg=yes
+       ;;
      esac
      ;;
    esac
*************** do
*** 10044,10050 ****
      --cache-file=/dev/null | \
      -cache-file=/dev/null )
        # Handled here to avoid the test to skip args below.
!       baseargs="$baseargs '$ac_arg'"
        tbaseargs="$tbaseargs '$ac_arg'"
        # Assert: $separate_arg should always be no.
        keep_next=$separate_arg
--- 10302,10309 ----
      --cache-file=/dev/null | \
      -cache-file=/dev/null )
        # Handled here to avoid the test to skip args below.
!       hbaseargs="$hbaseargs '$ac_arg'"
!       bbaseargs="$bbaseargs '$ac_arg'"
        tbaseargs="$tbaseargs '$ac_arg'"
        # Assert: $separate_arg should always be no.
        keep_next=$separate_arg
*************** do
*** 10075,10081 ****
  	*\'*)
  	  ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
        esac
!       baseargs="$baseargs '$ac_arg'"
        if test X"$skip_targ" = Xno; then
          tbaseargs="$tbaseargs '$ac_arg'"
        fi
--- 10334,10343 ----
  	*\'*)
  	  ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
        esac
!       hbaseargs="$hbaseargs '$ac_arg'"
!       if test X"$skip_barg" = Xno; then
! 	bbaseargs="$bbaseargs '$ac_arg'"
!       fi
        if test X"$skip_targ" = Xno; then
          tbaseargs="$tbaseargs '$ac_arg'"
        fi
*************** do
*** 10090,10096 ****
  done
  # Remove the initial space we just introduced and, as these will be
  # expanded by make, quote '$'.
! baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
  
  # Add in --program-transform-name, after --program-prefix and
  # --program-suffix have been applied to it.  Autoconf has already
--- 10352,10359 ----
  done
  # Remove the initial space we just introduced and, as these will be
  # expanded by make, quote '$'.
! hbaseargs=`echo "x$hbaseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
! bbaseargs=`echo "x$bbaseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
  
  # Add in --program-transform-name, after --program-prefix and
  # --program-suffix have been applied to it.  Autoconf has already
*************** ${program_transform_name}
*** 10104,10118 ****
  EOF_SED
  gcc_transform_name=`cat conftestsed.out`
  rm -f conftestsed.out
! baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
  tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
  if test "$silent" = yes; then
!   baseargs="$baseargs --silent"
    tbaseargs="$tbaseargs --silent"
  fi
! baseargs="$baseargs --disable-option-checking"
  tbaseargs="$tbaseargs --disable-option-checking"
  
  # Record and document user additions to sub configure arguments.
  
  
--- 10367,10390 ----
  EOF_SED
  gcc_transform_name=`cat conftestsed.out`
  rm -f conftestsed.out
! hbaseargs="$hbaseargs --program-transform-name='${gcc_transform_name}'"
! bbaseargs="$bbaseargs --program-transform-name='${gcc_transform_name}'"
  tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
  if test "$silent" = yes; then
!   bbaseargs="$bbaseargs --silent"
!   hbaseargs="$hbaseargs --silent"
    tbaseargs="$tbaseargs --silent"
  fi
! 
! bbaseargs="$bbaseargs --disable-option-checking"
! hbaseargs="$hbaseargs --disable-option-checking"
  tbaseargs="$tbaseargs --disable-option-checking"
  
+ if test "$enable_year2038" = no; then
+   baseargs="$baseargs --disable-year2038"
+   tbaseargs="$tbaseargs --disable-year2038"
+ fi
+ 
  # Record and document user additions to sub configure arguments.
  
  
*************** tbaseargs="$tbaseargs --disable-option-c
*** 10123,10129 ****
  # desired.  We can't even use the same cache file for all build-side
  # libraries, as they're compiled differently; some with C, some with
  # C++ or with different feature-enabling options.
! build_configargs="$build_configargs --cache-file=./config.cache ${baseargs}"
  
  # For host modules, accept cache file option, or specification as blank.
  case "${cache_file}" in
--- 10395,10401 ----
  # desired.  We can't even use the same cache file for all build-side
  # libraries, as they're compiled differently; some with C, some with
  # C++ or with different feature-enabling options.
! build_configargs="$build_configargs --cache-file=./config.cache ${bbaseargs}"
  
  # For host modules, accept cache file option, or specification as blank.
  case "${cache_file}" in
*************** esac
*** 10137,10143 ****
  
  # Host dirs don't like to share a cache file either, horribly enough.
  # This seems to be due to autoconf 2.5x stupidity.
! host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
  
  target_configargs="$target_configargs ${tbaseargs}"
  
--- 10409,10415 ----
  
  # Host dirs don't like to share a cache file either, horribly enough.
  # This seems to be due to autoconf 2.5x stupidity.
! host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${hbaseargs}"
  
  target_configargs="$target_configargs ${tbaseargs}"
  
*************** fi
*** 12888,12893 ****
--- 13160,13307 ----
  
  
  
+ GDCFLAGS=${GDCFLAGS-${CFLAGS}}
+ 
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+ $as_echo_n "checking for -plugin option... " >&6; }
+ 
+ plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
+ for plugin in $plugin_names; do
+   plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
+   if test x$plugin_so = x$plugin; then
+     plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
+   fi
+   if test x$plugin_so != x$plugin; then
+     plugin_option="--plugin $plugin_so"
+     break
+   fi
+ done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   PLUGIN_OPTION="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ AR_PLUGIN_OPTION=
+ RANLIB_PLUGIN_OPTION=
+ if test -n "$PLUGIN_OPTION"; then
+   if $AR --help 2>&1 | grep -q "\--plugin"; then
+     AR_PLUGIN_OPTION="$PLUGIN_OPTION"
+   fi
+   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+     RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
+   fi
+ fi
+ 
+ 
  
  # Target tools.
  
diff -Nrcpad gcc-13.2.0/configure.ac gcc-14.1.0/configure.ac
*** gcc-13.2.0/configure.ac	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/configure.ac	Tue May  7 06:51:37 2024
*************** m4_include(config/override.m4)
*** 24,29 ****
--- 24,30 ----
  m4_include(config/proginstall.m4)
  m4_include(config/elf.m4)
  m4_include(config/ax_cxx_compile_stdcxx.m4)
+ m4_include(config/gcc-plugin.m4)
  m4_include([libtool.m4])
  m4_include([ltoptions.m4])
  m4_include([ltsugar.m4])
*************** build_tools="build-texinfo build-flex bu
*** 132,138 ****
  
  # these libraries are used by various programs built for the host environment
  #f
! host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libcody libdecnumber gmp mpfr mpc isl libiconv libctf libsframe"
  
  # these tools are built for the host environment
  # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
--- 133,139 ----
  
  # these libraries are used by various programs built for the host environment
  #f
! host_libs="gettext libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libcody libdecnumber gmp mpfr mpc isl libiconv libctf libsframe libgrust "
  
  # these tools are built for the host environment
  # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
*************** target_libraries="target-libgcc \
*** 163,168 ****
--- 164,170 ----
  		target-libada \
  		target-libgm2 \
  		target-libgo \
+ 		target-libgrust \
  		target-libphobos \
  		target-zlib"
  
*************** if test x$with_system_readline = xyes ;
*** 253,258 ****
--- 255,263 ----
    noconfigdirs="$noconfigdirs readline"
  fi
  
+ AC_ARG_WITH(zstd,
+ [AS_HELP_STRING([--with-zstd], [Support zstd compressed debug sections (default=auto)])])
+ 
  # some tools are so dependent upon X11 that if we're not building with X, 
  # it's not even worth trying to configure, much less build, that tool.
  
*************** case "${ENABLE_GOLD}" in
*** 345,351 ****
        *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
        | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
        | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
!       | *-*-solaris2* | *-*-nto* | *-*-nacl*)
          case "${target}" in
            *-*-linux*aout* | *-*-linux*oldld*)
              ;;
--- 350,356 ----
        *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
        | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
        | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
!       | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-haiku*)
          case "${target}" in
            *-*-linux*aout* | *-*-linux*oldld*)
              ;;
*************** case "${ENABLE_GOLD}" in
*** 359,365 ****
        # Check for target supported by gold.
        case "${target}" in
          i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
!         | aarch64*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*)
  	  configdirs="$configdirs gold"
  	  if test x${ENABLE_GOLD} = xdefault; then
  	    default_ld=gold
--- 364,370 ----
        # Check for target supported by gold.
        case "${target}" in
          i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
!         | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-*)
  	  configdirs="$configdirs gold"
  	  if test x${ENABLE_GOLD} = xdefault; then
  	    default_ld=gold
*************** case "${ENABLE_LD}" in
*** 401,406 ****
--- 406,425 ----
      ;;
  esac
  
+ AC_ARG_ENABLE(gprofng,
+ [AS_HELP_STRING([[--enable-gprofng[=ARG]]],
+ 		[build gprofng @<:@ARG={yes,no}@:>@])],
+ enable_gprofng=$enableval,
+ enable_gprofng=yes)
+ if test "$enable_gprofng" = "yes"; then
+   case "${target}" in
+     x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
+     configdirs="$configdirs gprofng"
+     ;;
+   esac
+ fi
+ 
+ 
  # PR gas/19109
  # Decide the default method for compressing debug sections.
  # Provide a configure time option to override our default.
*************** AC_ARG_ENABLE(compressed_debug_sections,
*** 414,419 ****
--- 433,444 ----
    fi
  ], [enable_compressed_debug_sections=])
  
+ # Select default compression algorithm.
+ AC_ARG_ENABLE(default_compressed_debug_sections_algorithm,
+ [AS_HELP_STRING([--enable-default-compressed-debug-sections-algorithm={zlib,zstd}],
+ 		[Default compression algorithm for --enable-compressed-debug-sections.])],
+ [], [default_compressed_debug_sections_algorithm=])
+ 
  # Configure extra directories which are host specific
  
  case "${host}" in
*************** case "${host}" in
*** 435,440 ****
--- 460,477 ----
      ;;
  esac
  
+ # Default to --disable-year2038 until we can handle differences between
+ # projects that use gnulib (which understands year 2038) and projects that
+ # do not (like BFD).
+ AC_ARG_ENABLE(year2038,
+ AS_HELP_STRING([--enable-year2038],
+   [enable support for timestamps past the year 2038]),
+ ENABLE_YEAR2038=$enableval,
+ ENABLE_YEAR2038=no)
+ enable_year2038=
+ if test "${ENABLE_YEAR2038}" = "no" ; then
+   enable_year2038=no
+ fi
  
  AC_ARG_ENABLE(libquadmath,
  AS_HELP_STRING([--disable-libquadmath],
*************** case "${target}" in
*** 766,771 ****
--- 803,813 ----
    hppa*64*-*-hpux*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
+   hppa*-hp-hpux11*)
+     ;;
+   hppa*-*-hpux*)
+     noconfigdirs="$noconfigdirs target-libffi"
+     ;;
    ia64*-*-*vms*)
      noconfigdirs="$noconfigdirs target-libffi"
      ;;
*************** case "${target}" in
*** 1069,1077 ****
--- 1111,1124 ----
    h8500-*-*)
      noconfigdirs="$noconfigdirs target-libgloss"
      ;;
+   hppa1.1-*-osf* | hppa1.1-*-bsd* )
+     ;;
    hppa*64*-*-hpux*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
+   hppa*-*-hpux11*)
+     noconfigdirs="$noconfigdirs gdb ld"
+     ;;
    hppa*64*-*-linux*)
      ;;
    hppa*-*-linux*)
*************** case "${target}" in
*** 1226,1231 ****
--- 1273,1281 ----
    tic6x-*-*)
      noconfigdirs="$noconfigdirs sim"
      ;;
+   tilepro*-*-* | tilegx*-*-*)
+     noconfigdirs="$noconfigdirs sim"
+     ;;
    v810-*-*)
      noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
      ;;
*************** fi
*** 1361,1366 ****
--- 1411,1417 ----
  
  ACX_PROG_GNAT
  ACX_PROG_GDC
+ ACX_PROG_CARGO
  ACX_PROG_CMP_IGNORE_INITIAL
  
  AC_ARG_ENABLE([bootstrap],
*************** AC_ARG_WITH(boot-ldflags,
*** 1806,1811 ****
--- 1857,1876 ----
   if test "$poststage1_libs" = ""; then
     poststage1_ldflags="-static-libstdc++ -static-libgcc"
   fi])
+ case $target in
+   *-darwin2* | *-darwin1[[56789]]*)
+     # For these versions, we default to using embedded rpaths.
+     if test "x$enable_darwin_at_rpath" != "xno"; then
+       poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths"
+     fi
+   ;;
+   *-darwin*)
+     # For these versions, we only use embedded rpaths on demand.
+     if test "x$enable_darwin_at_rpath" = "xyes"; then
+       poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths"
+     fi
+   ;;
+ esac
  AC_SUBST(poststage1_ldflags)
  
  # GCC GRAPHITE dependency isl.
*************** AC_ARG_ENABLE(linker-plugin-flags,
*** 1891,1896 ****
--- 1956,1991 ----
    extra_linker_plugin_flags=)
  AC_SUBST(extra_linker_plugin_flags)
  
+ # Handle --enable-host-pie
+ # If host PIE executables are the default (or must be forced on) for some host,
+ # we must pass that configuration to the gcc directory.
+ gcc_host_pie=
+ AC_ARG_ENABLE(host-pie,
+ [AS_HELP_STRING([--enable-host-pie],
+ 		[build position independent host executables])],
+ [host_pie=$enableval
+  case $host in
+    *-*-darwin2*)
+      if test x$host_pie != xyes ; then
+        # for Darwin20+ this is required.
+        AC_MSG_WARN([PIE executables are required for the configured host, host-pie setting ignored.])
+        host_pie=yes
+        gcc_host_pie=--enable-host-pie
+      fi ;;
+   *) ;;
+  esac],
+ [case $host in
+   *-*-darwin2*)
+     # Default to PIE (mandatory for aarch64).
+     host_pie=yes
+     gcc_host_pie=--enable-host-pie
+     ;;
+   *) host_pie=no ;;
+  esac])
+ 
+ AC_SUBST(host_pie)
+ AC_SUBST(gcc_host_pie)
+ 
  # Enable --enable-host-shared.
  # Checked early to determine whether jit is an 'all' language
  AC_ARG_ENABLE(host-shared,
*************** AC_ARG_ENABLE(host-shared,
*** 1901,1923 ****
     x86_64-*-darwin* | aarch64-*-darwin*)
       if test x$host_shared != xyes ; then
         # PIC is the default, and actually cannot be switched off.
!        echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2
         host_shared=yes
       fi ;;
    *) ;;
   esac],
  [case $host in
    x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
!   *) host_shared=no ;;
   esac])
  
  AC_SUBST(host_shared)
  
  # If we are building PIC/PIE host executables, and we are building dependent
  # libs (e.g. GMP) in-tree those libs need to be configured to generate PIC
  # code.
  host_libs_picflag=
! if test "$host_shared" = "yes";then
  host_libs_picflag='--with-pic'
  fi
  AC_SUBST(host_libs_picflag)
--- 1996,2047 ----
     x86_64-*-darwin* | aarch64-*-darwin*)
       if test x$host_shared != xyes ; then
         # PIC is the default, and actually cannot be switched off.
!        AC_MSG_WARN([PIC code is required for the configured host; host-shared setting ignored.])
!        host_shared=yes
!      fi ;;
!    *-*-darwin*)
!      if test x$host_pie = xyes -a x$host_shared != xyes ; then
!        AC_MSG_WARN([PIC code is required for PIE host executables host-shared setting ignored.])
         host_shared=yes
       fi ;;
    *) ;;
   esac],
  [case $host in
+   # 64B x86_64 and Aarch64 Darwin default to PIC.
    x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
!   # 32B and powerpc64 Darwin must use PIC to link PIE exes.
!   *-*-darwin*) host_shared=$host_pie ;;
!   *) host_shared=no;;
   esac])
  
  AC_SUBST(host_shared)
  
+ if test x$host_shared = xyes; then
+   case $host in
+     *-*-darwin*)
+       # Since host shared is the default for 64b Darwin, and also enabled for
+       # host_pie, ensure that we present the PIE flag when host_pie is active.
+       if test x$host_pie = xyes; then
+         PICFLAG=-fPIE
+       fi
+       ;;
+     *)
+       PICFLAG=-fPIC
+       ;;
+   esac
+ elif test x$host_pie = xyes; then
+   PICFLAG=-fPIE
+ else
+   PICFLAG=
+ fi
+ 
+ AC_SUBST(PICFLAG)
+ 
  # If we are building PIC/PIE host executables, and we are building dependent
  # libs (e.g. GMP) in-tree those libs need to be configured to generate PIC
  # code.
  host_libs_picflag=
! if test "$host_shared" = "yes" -o "$host_pie" = "yes"; then
  host_libs_picflag='--with-pic'
  fi
  AC_SUBST(host_libs_picflag)
*************** if test -d ${srcdir}/gcc; then
*** 2150,2167 ****
              ;;
          esac
  
-         # Disable Rust for GCC 13 release.
-         case ${add_this_lang}:${language} in
-           yes:rust)
-             # Specifically requested language; tell them.
-             AC_MSG_ERROR([Rust is not supported in GCC 13 release])
-            ;;
-           *:rust)
-             # Silently disable.
-             add_this_lang=unsupported
-             ;;
-         esac
- 
          # Disable jit if -enable-host-shared not specified
          # but not if building for Mingw. All code in Windows
          # is position independent code (PIC).
--- 2274,2279 ----
*************** directories, to avoid imposing the perfo
*** 2194,2199 ****
--- 2306,2340 ----
            ;;
          esac
  
+         # Pre-conditions to consider whether cargo being supported.
+         if test x"$have_cargo" = xyes \
+           && test x"$build" != x"$host"; then
+           # Until <https://github.com/Rust-GCC/gccrs/issues/2898>
+           # "'cargo' should build for the host system" is resolved:
+           AC_MSG_WARN([use of cargo not yet supported here in Canadian cross configurations])
+           have_cargo=no
+         else
+           # Assume that cargo-produced object files are compatible with what
+           # we're going to build here.
+           :
+         fi
+         # Disable Rust if cargo is unavailable.
+         case ${add_this_lang}:${language}:${have_cargo} in
+           yes:rust:no)
+             # Specifically requested language; tell them.
+             AC_MSG_ERROR([cargo is required to build $language])
+             ;;
+           all:rust:no)
+             AC_MSG_WARN([cargo is required to build $language])
+             add_this_lang=unsupported
+             ;;
+           *:rust:no)
+             # Silently disable.
+             add_this_lang=unsupported
+             ;;
+         esac
+ 
+ 
          # Disable a language that is unsupported by the target.
  	case "${add_this_lang}: $unsupported_languages " in
  	  no:*) ;;
*************** case ,${enable_languages}, in
*** 2361,2366 ****
--- 2502,2518 ----
      ;;
  esac
  
+ case ,${enable_languages}, in
+   *,rust,*)
+     case " ${noconfigdirs} " in
+       *\ target-libstdc++-v3\ *)
+         # Disable target libgrust if we're not building target libstdc++.
+         noconfigdirs="$noconfigdirs target-libgrust"
+         ;;
+     esac
+     ;;
+ esac
+ 
  # If gcc/ is not in the source tree then we'll not be building a
  # target compiler, assume in that case we don't want to build any
  # target libraries or tools.
*************** case "${target}" in
*** 2714,2719 ****
--- 2866,2877 ----
    spu-*-*)
      target_makefile_frag="config/mt-spu"
      ;;
+   loongarch*-*linux* | loongarch*-*gnu*)
+     target_makefile_frag="config/mt-loongarch-gnu"
+     ;;
+   loongarch*-*elf*)
+     target_makefile_frag="config/mt-loongarch-elf"
+     ;;
    mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
      target_makefile_frag="config/mt-sde"
      ;;
*************** esac
*** 3083,3089 ****
--- 3241,3249 ----
  # These force 'configure's to be done one at a time, to avoid problems
  # with contention over a shared config.cache.
  rm -f serdep.tmp
+ if test "x${enable_serial_build_configure}" = xyes || test "x${enable_serial_host_configure}" = xyes || test "x${enable_serial_target_configure}" = xyes; then
  echo '# serdep.tmp' > serdep.tmp
+ fi
  olditem=
  test "x${enable_serial_build_configure}" = xyes &&
  for item in ${build_configdirs} ; do
*************** AC_SUBST_FILE(serialization_dependencies
*** 3121,3127 ****
  # files altogether, and which should be passed on to subconfigures.
  # Also strip program-prefix, program-suffix, and program-transform-name,
  # so that we can pass down a consistent program-transform-name.
! baseargs=
  tbaseargs=
  keep_next=no
  skip_next=no
--- 3281,3288 ----
  # files altogether, and which should be passed on to subconfigures.
  # Also strip program-prefix, program-suffix, and program-transform-name,
  # so that we can pass down a consistent program-transform-name.
! hbaseargs=
! bbaseargs=
  tbaseargs=
  keep_next=no
  skip_next=no
*************** do
*** 3137,3143 ****
        *\'*)
  	ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
      esac
!     baseargs="$baseargs '$ac_arg'"
      tbaseargs="$tbaseargs '$ac_arg'"
      keep_next=no
      continue
--- 3298,3305 ----
        *\'*)
  	ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
      esac
!     hbaseargs="$hbaseargs '$ac_arg'"
!     bbaseargs="$bbaseargs '$ac_arg'"
      tbaseargs="$tbaseargs '$ac_arg'"
      keep_next=no
      continue
*************** do
*** 3161,3166 ****
--- 3323,3329 ----
    esac
  
    skip_targ=no
+   skip_barg=no
    case $ac_arg in
  changequote(,)
    --with-* | --without-*)
*************** changequote(,)
*** 3173,3178 ****
--- 3336,3347 ----
      *[-_]lib)
        lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
        ;;
+     *[-_]prefix)
+       lib=`echo "$libopt" | sed 's,[-_]prefix$,,'`
+       ;;
+     *[-_]type)
+       lib=`echo "$libopt" | sed 's,[-_]type$,,'`
+       ;;
      *)
        lib=$libopt
        ;;
*************** changequote([,])
*** 3189,3194 ****
--- 3358,3368 ----
          skip_targ=yes
        fi
        ;;
+     libintl | libiconv)
+       # We don't want libintl (and co.) in anything but the host arguments.
+       skip_targ=yes
+       skip_barg=yes
+       ;;
      esac
      ;;
    esac
*************** changequote([,])
*** 3197,3203 ****
      --cache-file=/dev/null | \
      -cache-file=/dev/null )
        # Handled here to avoid the test to skip args below.
!       baseargs="$baseargs '$ac_arg'"
        tbaseargs="$tbaseargs '$ac_arg'"
        # Assert: $separate_arg should always be no.
        keep_next=$separate_arg
--- 3371,3378 ----
      --cache-file=/dev/null | \
      -cache-file=/dev/null )
        # Handled here to avoid the test to skip args below.
!       hbaseargs="$hbaseargs '$ac_arg'"
!       bbaseargs="$bbaseargs '$ac_arg'"
        tbaseargs="$tbaseargs '$ac_arg'"
        # Assert: $separate_arg should always be no.
        keep_next=$separate_arg
*************** changequote([,])
*** 3228,3234 ****
  	*\'*)
  	  ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
        esac
!       baseargs="$baseargs '$ac_arg'"
        if test X"$skip_targ" = Xno; then
          tbaseargs="$tbaseargs '$ac_arg'"
        fi
--- 3403,3412 ----
  	*\'*)
  	  ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
        esac
!       hbaseargs="$hbaseargs '$ac_arg'"
!       if test X"$skip_barg" = Xno; then
! 	bbaseargs="$bbaseargs '$ac_arg'"
!       fi
        if test X"$skip_targ" = Xno; then
          tbaseargs="$tbaseargs '$ac_arg'"
        fi
*************** changequote([,])
*** 3243,3249 ****
  done
  # Remove the initial space we just introduced and, as these will be
  # expanded by make, quote '$'.
! baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
  
  # Add in --program-transform-name, after --program-prefix and
  # --program-suffix have been applied to it.  Autoconf has already
--- 3421,3428 ----
  done
  # Remove the initial space we just introduced and, as these will be
  # expanded by make, quote '$'.
! hbaseargs=`echo "x$hbaseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
! bbaseargs=`echo "x$bbaseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
  
  # Add in --program-transform-name, after --program-prefix and
  # --program-suffix have been applied to it.  Autoconf has already
*************** ${program_transform_name}
*** 3257,3271 ****
  EOF_SED
  gcc_transform_name=`cat conftestsed.out`
  rm -f conftestsed.out
! baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
  tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
  if test "$silent" = yes; then
!   baseargs="$baseargs --silent"
    tbaseargs="$tbaseargs --silent"
  fi
! baseargs="$baseargs --disable-option-checking"
  tbaseargs="$tbaseargs --disable-option-checking"
  
  # Record and document user additions to sub configure arguments.
  AC_ARG_VAR([build_configargs],
  	   [additional configure arguments for build directories])
--- 3436,3459 ----
  EOF_SED
  gcc_transform_name=`cat conftestsed.out`
  rm -f conftestsed.out
! hbaseargs="$hbaseargs --program-transform-name='${gcc_transform_name}'"
! bbaseargs="$bbaseargs --program-transform-name='${gcc_transform_name}'"
  tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
  if test "$silent" = yes; then
!   bbaseargs="$bbaseargs --silent"
!   hbaseargs="$hbaseargs --silent"
    tbaseargs="$tbaseargs --silent"
  fi
! 
! bbaseargs="$bbaseargs --disable-option-checking"
! hbaseargs="$hbaseargs --disable-option-checking"
  tbaseargs="$tbaseargs --disable-option-checking"
  
+ if test "$enable_year2038" = no; then
+   baseargs="$baseargs --disable-year2038"
+   tbaseargs="$tbaseargs --disable-year2038"
+ fi
+ 
  # Record and document user additions to sub configure arguments.
  AC_ARG_VAR([build_configargs],
  	   [additional configure arguments for build directories])
*************** AC_ARG_VAR([target_configargs],
*** 3279,3285 ****
  # desired.  We can't even use the same cache file for all build-side
  # libraries, as they're compiled differently; some with C, some with
  # C++ or with different feature-enabling options.
! build_configargs="$build_configargs --cache-file=./config.cache ${baseargs}"
  
  # For host modules, accept cache file option, or specification as blank.
  case "${cache_file}" in
--- 3467,3473 ----
  # desired.  We can't even use the same cache file for all build-side
  # libraries, as they're compiled differently; some with C, some with
  # C++ or with different feature-enabling options.
! build_configargs="$build_configargs --cache-file=./config.cache ${bbaseargs}"
  
  # For host modules, accept cache file option, or specification as blank.
  case "${cache_file}" in
*************** esac
*** 3293,3299 ****
  
  # Host dirs don't like to share a cache file either, horribly enough.
  # This seems to be due to autoconf 2.5x stupidity.
! host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
  
  target_configargs="$target_configargs ${tbaseargs}"
  
--- 3481,3487 ----
  
  # Host dirs don't like to share a cache file either, horribly enough.
  # This seems to be due to autoconf 2.5x stupidity.
! host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${hbaseargs}"
  
  target_configargs="$target_configargs ${tbaseargs}"
  
*************** AC_SUBST(CFLAGS)
*** 3613,3618 ****
--- 3801,3822 ----
  AC_SUBST(CXXFLAGS)
  AC_SUBST(GDC)
  AC_SUBST(GDCFLAGS)
+ GDCFLAGS=${GDCFLAGS-${CFLAGS}}
+ AC_SUBST(PKG_CONFIG_PATH)
+ 
+ GCC_PLUGIN_OPTION(PLUGIN_OPTION)
+ AR_PLUGIN_OPTION=
+ RANLIB_PLUGIN_OPTION=
+ if test -n "$PLUGIN_OPTION"; then
+   if $AR --help 2>&1 | grep -q "\--plugin"; then
+     AR_PLUGIN_OPTION="$PLUGIN_OPTION"
+   fi
+   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+     RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
+   fi
+ fi
+ AC_SUBST(AR_PLUGIN_OPTION)
+ AC_SUBST(RANLIB_PLUGIN_OPTION)
  
  # Target tools.
  AC_ARG_WITH([build-time-tools], 
diff -Nrcpad gcc-13.2.0/contrib/ChangeLog gcc-14.1.0/contrib/ChangeLog
*** gcc-13.2.0/contrib/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/contrib/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,17 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-04-26  Jakub Jelinek  <jakub@redhat.com>
  
  	* gennews (files): Add files for GCC 13.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2023-03-16  Jakub Jelinek  <jakub@redhat.com>
  
--- 1,387 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-04-18  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* config-list.mk (LIST): --enable-obsolete for nios2*-*-*.
! 
! 2024-04-12  Filip Kastl  <fkastl@suse.cz>
! 
! 	* check-params-in-docs.py: Ignore target specific params.
! 
! 2024-04-11  Martin Jambor  <mjambor@suse.cz>
! 
! 	* check-params-in-docs.py (ignored): Add
! 	gcn-preferred-vectorization-factor.
! 
! 2024-04-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py: Add
! 	8057f9aa1f7e70490064de796d7a8d42d446caf8 to IGNORED_COMMITS.
! 
! 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* unicode/gen_libstdcxx_unicode_data.py: Fix header of generated
! 	file to name the correct script.
! 
! 2024-03-18  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* gcc_update: Add more generated files in libcc1, lto-plugin,
! 	fixincludes, and libstdc++-v3.
! 
! 2024-03-08  Sam James  <sam@gentoo.org>
! 
! 	PR other/109668
! 	* dg-extract-results.sh: Check for python3 before python. Check for
! 	python2 last.
! 
! 2024-03-07  Filip Kastl  <fkastl@suse.cz>
! 
! 	* test_mklog.py: "Moved to..." -> "Move to..."
! 
! 2024-03-01  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
! 
! 	* mklog.py: Use present tense in ChangeLog.
! 
! 2024-02-29  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	* gcc-changelog/git_commit.py (bug_components): Add libcc1.
! 
! 2024-02-23  Richard Biener  <rguenther@suse.de>
! 
! 	PR target/90785
! 	* config-list.mk (LIST): --enable-obsolete for ia64*-*-*.
! 
! 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* test_installed: Fill in HOSTCC, HOSTCXX, HOSTCFLAGS and
! 	HOSTCXXFLAGS.
! 
! 2024-02-04  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* unicode/gen_libstdcxx_unicode_data.py: Add copyright and
! 	license text to the output.
! 
! 2024-01-11  Paul Iannetta  <piannetta@kalrayinc.com>
! 
! 	* dg-extract-results.py: Make the test_run regex case
! 	insensitive.
! 
! 2024-01-09  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* unicode/gen_libstdcxx_unicode_data.py: Print out Gcb_property
! 	enumerators in the order they're seen, not alphabetical order.
! 
! 2024-01-08  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* unicode/README: Add notes about generating libstdc++ tables.
! 	* unicode/GraphemeBreakProperty.txt: New file.
! 	* unicode/emoji-data.txt: New file.
! 	* unicode/gen_libstdcxx_unicode_data.py: New file.
! 
! 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* analyze_brprob.py: Remove stray text at end of comment.
! 	* analyze_brprob_spec.py: Likewise.
! 	* check-params-in-docs.py: Likewise.
! 	* check_GNU_style.py: Likewise.
! 	* check_GNU_style_lib.py: Likewise.
! 	* filter-clang-warnings.py: Likewise.
! 	* gcc-changelog/git_check_commit.py: Likewise.
! 	* gcc-changelog/git_commit.py: Likewise.
! 	* gcc-changelog/git_email.py: Likewise.
! 	* gcc-changelog/git_repository.py: Likewise.
! 	* gcc-changelog/git_update_version.py: Likewise.
! 	* gcc-changelog/test_email.py: Likewise.
! 	* gen_autofdo_event.py: Likewise.
! 	* mark_spam.py: Likewise.
! 	* unicode/gen-box-drawing-chars.py: Likewise.
! 	* unicode/gen-combining-chars.py: Likewise.
! 	* unicode/gen-printable-chars.py: Likewise.
! 	* unicode/gen_wcwidth.py: Likewise.
! 
! 2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* unicode/gen_wcwidth.py: Add sys.argv[0] to usage error.
! 
! 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* update-copyright.py (GenericFilter): Skip gpl_v3_without_node.texi.
! 	(GCCFilter): Skip GmcOptions.cc.
! 
! 2023-12-21  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* compare_tests: Add tool to test lines.  Match tabs besides
! 	blanks to insert tool and target.  Don't print undefined fname.
! 
! 2023-12-20  Jason Merrill  <jason@redhat.com>
! 
! 	* gcc-git-customization.sh: Add git gcc-style alias.
! 
! 2023-12-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 	    Arthur Cohen  <arthur.cohen@embecosm.com>
! 
! 	* gcc_update: Add libgrust file dependencies.
! 
! 2023-12-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 	    Arthur Cohen  <arthur.cohen@embecosm.com>
! 
! 	* gcc-changelog/git_commit.py: Add libgrust.
! 
! 2023-12-13  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* download_prerequisites
! 	<arg parse>: Parse --only-gettext.
! 	(echo_archives): Check only_gettext and stop early if true.
! 	(helptext): Document --only-gettext.
! 
! 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* config-list.mk (OPT_IN_LANGUAGES): New variable.
! 	($(LIST)): Replace --enable-languages=all with a specifc list.
! 	Disable fortran on bpf and mmix.  Enable the languages in
! 	OPT_IN_LANGUAGES.
! 
! 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* unicode/README: Adjust glibc git commit hash, number of Unicode
! 	data files to be updated and latest Unicode version.
! 	* unicode/from_glibc/utf8_gen.py: Update from glibc.
! 	* unicode/UnicodeData.txt: Update from Unicode 15.1.
! 	* unicode/EastAsianWidth.txt: Likewise.
! 	* unicode/DerivedNormalizationProps.txt: Likewise.
! 	* unicode/NameAliases.txt: Likewise.
! 	* unicode/DerivedCoreProperties.txt: Likewise.
! 	* unicode/PropList.txt: Likewise.
! 
! 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py: Add
! 	040e5b0edbca861196d9e2ea2af5e805769c8d5d to ignored commits.
! 
! 2023-11-13  Arsen Arsenović  <arsen@aarsen.me>
! 
! 	* prerequisites.sha512: Add gettext.
! 	* prerequisites.md5: Add gettext.
! 	* download_prerequisites: Add gettext.
! 
! 2023-10-05  Andrea Corallo  <andrea.corallo@arm.com>
! 
! 	* mdcompact/mdcompact-testsuite.el: New file.
! 	* mdcompact/mdcompact.el: Likewise.
! 	* mdcompact/tests/1.md: Likewise.
! 	* mdcompact/tests/1.md.out: Likewise.
! 	* mdcompact/tests/2.md: Likewise.
! 	* mdcompact/tests/2.md.out: Likewise.
! 	* mdcompact/tests/3.md: Likewise.
! 	* mdcompact/tests/3.md.out: Likewise.
! 	* mdcompact/tests/4.md: Likewise.
! 	* mdcompact/tests/4.md.out: Likewise.
! 	* mdcompact/tests/5.md: Likewise.
! 	* mdcompact/tests/5.md.out: Likewise.
! 	* mdcompact/tests/6.md: Likewise.
! 	* mdcompact/tests/6.md.out: Likewise.
! 	* mdcompact/tests/7.md: Likewise.
! 	* mdcompact/tests/7.md.out: Likewise.
! 
! 2023-10-03  Martin Jambor  <mjambor@suse.cz>
! 
! 	* mklog.py (skip_line_in_changelog): Compare to None using is instead
! 	of ==, add an extra newline after the function.
! 
! 2023-10-02  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* config-list.mk: Add newer Darwin versions, trim one older.
! 	Remove cases with no OS version, which is not supported for cross-
! 	compilers.
! 
! 2023-09-29  Patrick O'Neill  <patrick@rivosinc.com>
! 
! 	* check_GNU_style_lib.py: Skip machine description file bracket linting.
! 
! 2023-09-29  Paul Iannetta  <piannetta@kalrayinc.com>
! 
! 	* dg-extract-results.py: Print the "Test run" line.
! 	* dg-extract-results.sh: Print the "Host" line.
! 
! 2023-09-12  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	PR other/111360
! 	* gcc_update: Quote variable.
! 
! 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	PR other/111359
! 	* gcc-git-customization.sh: Check for getent before using it.
! 	Use id on macOS.
! 
! 2023-09-07  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* gcc-changelog/git_commit.py (GitCommit.__init__,
! 	to_changelog_entries): Fix lost wording fix.
! 
! 2023-09-07  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* gcc-changelog/git_commit.py (GitCommit.__init__):
! 	Handle commit_to_info_hook = None; otherwise, if None,
! 	regard it as error.
! 	(to_changelog_entries): Handle commit_to_info_hook = None;
! 	if info is None, create a warning for it.
! 	* gcc-changelog/git_email.py (GitEmail.__init__):
! 	call super() with commit_to_info_hook=None instead
! 	of a lambda function.
! 
! 2023-09-07  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	Revert:
! 	2023-09-07  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* gcc-changelog/git_commit.py (GitCommit.__init__):
! 	Handle commit_to_info_hook = None; otherwise, if None,
! 	regard it as error.
! 	(to_changelog_entries): Handle commit_to_info_hook = None;
! 	if info is None, create a warning for it.
! 	* gcc-changelog/git_email.py (GitEmail.__init__):
! 	call super() with commit_to_info_hook=None instead
! 	of a lamda function.
! 
! 2023-09-07  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* gcc-changelog/git_commit.py (GitCommit.__init__):
! 	Handle commit_to_info_hook = None; otherwise, if None,
! 	regard it as error.
! 	(to_changelog_entries): Handle commit_to_info_hook = None;
! 	if info is None, create a warning for it.
! 	* gcc-changelog/git_email.py (GitEmail.__init__):
! 	call super() with commit_to_info_hook=None instead
! 	of a lamda function.
! 
! 2023-09-04  Marc Poulhiès  <dkm@kataplop.net>
! 
! 	* mklog.py: Leave SOB lines after changelog.
! 	* prepare-commit-msg: Apply most shellcheck suggestions.
! 
! 2023-08-29  Lehua Ding  <lehua.ding@rivai.ai>
! 
! 	* mklog.py: Fix bugs.
! 
! 2023-08-16  Andrew Pinski  <apinski@marvell.com>
! 
! 	* gcc_update: Add libstdc++-v3/include/bits/version.h.
! 
! 2023-07-13  Lehua Ding  <lehua.ding@rivai.ai>
! 
! 	* mklog.py: Add --append option.
! 
! 2023-07-07  Richard Biener  <rguenther@suse.de>
! 
! 	* gcc-changelog/git_update_version.py: Remove GCC 10 from
! 	active_refs.
! 
! 2023-06-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* unicode/gen-box-drawing-chars.py: New file.
! 	* unicode/gen-combining-chars.py: New file.
! 	* unicode/gen-printable-chars.py: New file.
! 
! 2023-06-17  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (IsInterestingResult):
! 	Add result_set argument and use it.  Adjust callers.
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (TestResult,)
! 	(ParseManifestWorker, ParseSummary, Main): Handle new option
! 	"--srcpath <regex>".
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (TestResult): Update.
! 	(Main): Handle new option "--expiry_date YYYYMMDD".
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (ResultSet.update,)
! 	(ResultSet.HasTestsuite): New methods.
! 	(GetResults): Update.
! 	(ParseSummary, CompareResults, PerformComparison, Main): Handle new
! 	option --invert_match.
! 
! 2023-06-14  Thiago Bauermann  <thiago.bauermann@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (TestResult): Improve error
! 	output.
! 
! 2023-06-14  Christophe Lyon  <christophe.lyon@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (_EXP_LINE_FORMAT,)
! 	(_EXP_LINE_REX, ResultSet): Support "$tool:" prefix in exp names.
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (Main): Use exit code "2"
! 	to indicate regression.
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (_VALID_TEST_RESULTS_REX):
! 	Update.
! 	(TestResult): Use _VALID_TEST_RESULTS_REX.
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py: Add more verbosity levels.
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py: Simplify GetManifestPath().
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (GetResults): Update.
! 	(CompareBuilds): Read in manifest.
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py (ParseManifestWorker):
! 	Support expiry attributes in manifests.
! 	(ParseSummary): Add a comment.
! 
! 2023-06-14  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
! 
! 	* testsuite-management/validate_failures.py: Avoid testsuite
! 	aliasing.
! 
! 2023-06-13  Andi Kleen  <ak@linux.intel.com>
! 
! 	* gen_autofdo_event.py: Update for download server changes
! 
! 2023-06-03  Lehua Ding  <lehua.ding@rivai.ai>
! 
! 	* clang-format (ForEachMacros): Add missing cases
! 	for EXECUTE_IF_... macros.
! 
! 2023-05-18  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	PR bootstrap/105831
! 	* bench-stringop: Use = operator instead of ==.
! 	* repro_fail: Likewise.
! 
! 2023-04-28  Martin Liska  <mliska@suse.cz>
! 
! 	* filter_gcc_for_doxygen: Use python3 and not python2.
! 	* filter_params.py: Likewise.
! 
! 2023-04-26  Jakub Jelinek  <jakub@redhat.com>
  
  	* gennews (files): Add files for GCC 13.
  
! 2023-04-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gcc-changelog/git_update_version.py (active_refs): Add
! 	releases/gcc-13.
  
  2023-03-16  Jakub Jelinek  <jakub@redhat.com>
  
diff -Nrcpad gcc-13.2.0/contrib/analyze_brprob.py gcc-14.1.0/contrib/analyze_brprob.py
*** gcc-13.2.0/contrib/analyze_brprob.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/analyze_brprob.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # Script to analyze results of our branch prediction heuristics
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # Script to analyze results of our branch prediction heuristics
  #
***************
*** 18,24 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  #
  #
  #
--- 18,24 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  #
  #
  #
diff -Nrcpad gcc-13.2.0/contrib/analyze_brprob_spec.py gcc-14.1.0/contrib/analyze_brprob_spec.py
*** gcc-13.2.0/contrib/analyze_brprob_spec.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/analyze_brprob_spec.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 16,22 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  import sys
  import os
--- 16,22 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  import sys
  import os
diff -Nrcpad gcc-13.2.0/contrib/bench-stringop gcc-14.1.0/contrib/bench-stringop
*** gcc-13.2.0/contrib/bench-stringop	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/bench-stringop	Tue May  7 06:51:37 2024
***************
*** 4,10 ****
  #
  # Contributed by Jan Hubicka <jh@suse.cz>
  #
! # Copyright (C) 2019-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 4,10 ----
  #
  # Contributed by Jan Hubicka <jh@suse.cz>
  #
! # Copyright (C) 2019-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** test "$2" "$3" "-mstringop-strategy=rep_
*** 87,93 ****
  test "$2" "$3" "-mstringop-strategy=rep_byte -mno-align-stringops" rep1noalign
  test "$2" "$3" "-mstringop-strategy=rep_4byte -malign-stringops" rep4
  test "$2" "$3" "-mstringop-strategy=rep_4byte -mno-align-stringops" rep4noalign
! if [ "$mode" == 64 ]
  then
  test "$2" "$3" "-mstringop-strategy=rep_8byte -malign-stringops" rep8
  test "$2" "$3" "-mstringop-strategy=rep_8byte -mno-align-stringops" rep8noalign
--- 87,93 ----
  test "$2" "$3" "-mstringop-strategy=rep_byte -mno-align-stringops" rep1noalign
  test "$2" "$3" "-mstringop-strategy=rep_4byte -malign-stringops" rep4
  test "$2" "$3" "-mstringop-strategy=rep_4byte -mno-align-stringops" rep4noalign
! if [ "$mode" = 64 ]
  then
  test "$2" "$3" "-mstringop-strategy=rep_8byte -malign-stringops" rep8
  test "$2" "$3" "-mstringop-strategy=rep_8byte -mno-align-stringops" rep8noalign
*************** echo "    $best"
*** 109,115 ****
  
  test_all_sizes()
  {
! if [ "$mode" == 64 ]
  then
  echo "  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop    noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST"
  else
--- 109,115 ----
  
  test_all_sizes()
  {
! if [ "$mode" = 64 ]
  then
  echo "  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop    noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST"
  else
diff -Nrcpad gcc-13.2.0/contrib/check-MAINTAINERS.py gcc-14.1.0/contrib/check-MAINTAINERS.py
*** gcc-13.2.0/contrib/check-MAINTAINERS.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/check-MAINTAINERS.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2022-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2022-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/check-params-in-docs.py gcc-14.1.0/contrib/check-params-in-docs.py
*** gcc-13.2.0/contrib/check-params-in-docs.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/check-params-in-docs.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  #
  # Find missing and extra parameters in documentation compared to
  # output of: gcc --help=params.
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  #
  # Find missing and extra parameters in documentation compared to
  # output of: gcc --help=params.
***************
*** 19,25 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  #
  #
  #
--- 19,25 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  #
  #
  #
*************** def get_param_tuple(line):
*** 38,43 ****
--- 38,46 ----
      description = line[i:].strip()
      return (name, description)
  
+ def target_specific(param):
+     return param.split('-')[0] in ('aarch64', 'gcn', 'x86')
+ 
  
  parser = argparse.ArgumentParser()
  parser.add_argument('texi_file')
*************** parser.add_argument('params_output')
*** 46,57 ****
  args = parser.parse_args()
  
  ignored = {'logical-op-non-short-circuit'}
! params = {}
  
  for line in open(args.params_output).readlines():
      if line.startswith(' ' * 2) and not line.startswith(' ' * 8):
          r = get_param_tuple(line)
!         params[r[0]] = r[1]
  
  # Find section in .texi manual with parameters
  texi = ([x.strip() for x in open(args.texi_file).readlines()])
--- 49,63 ----
  args = parser.parse_args()
  
  ignored = {'logical-op-non-short-circuit'}
! help_params = {}
  
  for line in open(args.params_output).readlines():
      if line.startswith(' ' * 2) and not line.startswith(' ' * 8):
          r = get_param_tuple(line)
!         help_params[r[0]] = r[1]
! 
! # Skip target-specific params
! help_params = [x for x in help_params.keys() if not target_specific(x)]
  
  # Find section in .texi manual with parameters
  texi = ([x.strip() for x in open(args.texi_file).readlines()])
*************** for line in texi:
*** 66,79 ****
              texi_params.append(line[len(token):])
              break
  
! # skip digits
  texi_params = [x for x in texi_params if not x[0].isdigit()]
! # skip aarch64 params
! texi_params = [x for x in texi_params if not x.startswith('aarch64')]
! sorted_params = sorted(texi_params)
  
  texi_set = set(texi_params) - ignored
! params_set = set(params.keys()) - ignored
  
  success = True
  extra = texi_set - params_set
--- 72,84 ----
              texi_params.append(line[len(token):])
              break
  
! # Skip digits
  texi_params = [x for x in texi_params if not x[0].isdigit()]
! # Skip target-specific params
! texi_params = [x for x in texi_params if not target_specific(x)]
  
  texi_set = set(texi_params) - ignored
! params_set = set(help_params) - ignored
  
  success = True
  extra = texi_set - params_set
diff -Nrcpad gcc-13.2.0/contrib/check_GNU_style.py gcc-14.1.0/contrib/check_GNU_style.py
*** gcc-13.2.0/contrib/check_GNU_style.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/check_GNU_style.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2023 Free Software Foundation, Inc.
  #
  # Checks some of the GNU style formatting rules in a set of patches.
  # The script is a rewritten of the same bash script and should eventually
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2024 Free Software Foundation, Inc.
  #
  # Checks some of the GNU style formatting rules in a set of patches.
  # The script is a rewritten of the same bash script and should eventually
***************
*** 20,26 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  import argparse
  import sys
--- 20,26 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  import argparse
  import sys
diff -Nrcpad gcc-13.2.0/contrib/check_GNU_style.sh gcc-14.1.0/contrib/check_GNU_style.sh
*** gcc-13.2.0/contrib/check_GNU_style.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/check_GNU_style.sh	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  #!/bin/sh
  
  # Checks some of the GNU style formatting rules in a set of patches.
! # Copyright (C) 2010-2023 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  #!/bin/sh
  
  # Checks some of the GNU style formatting rules in a set of patches.
! # Copyright (C) 2010-2024 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-13.2.0/contrib/check_GNU_style_lib.py gcc-14.1.0/contrib/check_GNU_style_lib.py
*** gcc-13.2.0/contrib/check_GNU_style_lib.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/check_GNU_style_lib.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2023 Free Software Foundation, Inc.
  #
  # Checks some of the GNU style formatting rules in a set of patches.
  # The script is a rewritten of the same bash script and should eventually
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2024 Free Software Foundation, Inc.
  #
  # Checks some of the GNU style formatting rules in a set of patches.
  # The script is a rewritten of the same bash script and should eventually
***************
*** 20,26 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  #
  # The script requires python packages, which can be installed via pip3
  # like this:
--- 20,26 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  #
  # The script requires python packages, which can be installed via pip3
  # like this:
*************** class SquareBracketCheck:
*** 182,187 ****
--- 182,190 ----
          self.re = re.compile('\w\s+(\[)')
  
      def check(self, filename, lineno, line):
+         if filename.endswith('.md'):
+             return None
+ 
          m = self.re.search(line)
          if m != None:
              return CheckError(filename, lineno,
diff -Nrcpad gcc-13.2.0/contrib/check_makefile_deps.sh gcc-14.1.0/contrib/check_makefile_deps.sh
*** gcc-13.2.0/contrib/check_makefile_deps.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/check_makefile_deps.sh	Tue May  7 06:51:37 2024
***************
*** 2,8 ****
  #
  # Check for accurate dependencies in gcc/Makefile.in.
  #
! # Copyright (C) 2008-2023 Free Software Foundation, Inc.
  # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
  #
  # This script is Free Software, and it can be copied, distributed and
--- 2,8 ----
  #
  # Check for accurate dependencies in gcc/Makefile.in.
  #
! # Copyright (C) 2008-2024 Free Software Foundation, Inc.
  # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
  #
  # This script is Free Software, and it can be copied, distributed and
diff -Nrcpad gcc-13.2.0/contrib/check_warning_flags.sh gcc-14.1.0/contrib/check_warning_flags.sh
*** gcc-13.2.0/contrib/check_warning_flags.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/check_warning_flags.sh	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Check that the warning flags documented in invoke.texi match up
  # with what the compiler accepts.
  #
! # Copyright (C) 2008-2023 Free Software Foundation, Inc.
  # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
  #
  # This script is Free Software, and it can be copied, distributed and
--- 3,9 ----
  # Check that the warning flags documented in invoke.texi match up
  # with what the compiler accepts.
  #
! # Copyright (C) 2008-2024 Free Software Foundation, Inc.
  # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
  #
  # This script is Free Software, and it can be copied, distributed and
diff -Nrcpad gcc-13.2.0/contrib/clang-format gcc-14.1.0/contrib/clang-format
*** gcc-13.2.0/contrib/clang-format	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/clang-format	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2015-2023 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,4 ----
! # Copyright (C) 2015-2024 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
*************** ForEachMacros: [
*** 194,200 ****
  'FOR_EACH_WIDER_MODE',
  'FOR_EXPR',
  'FOR_INIT_STMT',
! 'FOR_SCOPE'
  ]
  IndentCaseLabels: false
  NamespaceIndentation: None
--- 194,208 ----
  'FOR_EACH_WIDER_MODE',
  'FOR_EXPR',
  'FOR_INIT_STMT',
! 'FOR_SCOPE',
! 'EXECUTE_IF_SET_IN_BITMAP',
! 'EXECUTE_IF_AND_IN_BITMAP',
! 'EXECUTE_IF_AND_COMPL_IN_BITMAP',
! 'EXECUTE_IF_SET_IN_REG_SET',
! 'EXECUTE_IF_SET_IN_HARD_REG_SET',
! 'EXECUTE_IF_AND_COMPL_IN_REG_SET',
! 'EXECUTE_IF_AND_IN_REG_SET',
! 'EXECUTE_IF_SET_IN_SPARSESET'
  ]
  IndentCaseLabels: false
  NamespaceIndentation: None
diff -Nrcpad gcc-13.2.0/contrib/compare-all-tests gcc-14.1.0/contrib/compare-all-tests
*** gcc-13.2.0/contrib/compare-all-tests	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/compare-all-tests	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  #! /bin/bash
  
  # Compare the assembly language output for all the gcc tests.
! # Copyright (C) 2009-2023 Free Software Foundation, Inc.
  # Contributed by Paolo Bonzini.
  #
  # Invoke it as "bash compare-all-tests target1 target2 ... targetN".
--- 1,7 ----
  #! /bin/bash
  
  # Compare the assembly language output for all the gcc tests.
! # Copyright (C) 2009-2024 Free Software Foundation, Inc.
  # Contributed by Paolo Bonzini.
  #
  # Invoke it as "bash compare-all-tests target1 target2 ... targetN".
diff -Nrcpad gcc-13.2.0/contrib/compare-debug gcc-14.1.0/contrib/compare-debug
*** gcc-13.2.0/contrib/compare-debug	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/compare-debug	Tue May  7 06:51:37 2024
***************
*** 2,8 ****
  
  # Compare stripped copies of two given object files.
  
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  
  # This file is part of GCC.
--- 2,8 ----
  
  # Compare stripped copies of two given object files.
  
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/contrib/compare-lto gcc-14.1.0/contrib/compare-lto
*** gcc-13.2.0/contrib/compare-lto	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/compare-lto	Tue May  7 06:51:37 2024
***************
*** 2,8 ****
  
  # Compare copies of two given object files.
  
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  # Modified for LTO bootstrap by Richard Biener <rguenther@suse.de>
  
--- 2,8 ----
  
  # Compare copies of two given object files.
  
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  # Modified for LTO bootstrap by Richard Biener <rguenther@suse.de>
  
diff -Nrcpad gcc-13.2.0/contrib/compareSumTests3 gcc-14.1.0/contrib/compareSumTests3
*** gcc-13.2.0/contrib/compareSumTests3	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/compareSumTests3	Tue May  7 06:51:37 2024
***************
*** 5,11 ****
  #
  # Author: Matthew Sachs <msachs@apple.com>
  #
! # Copyright (C) 2006-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  #
  # Author: Matthew Sachs <msachs@apple.com>
  #
! # Copyright (C) 2006-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/compare_tests gcc-14.1.0/contrib/compare_tests
*** gcc-13.2.0/contrib/compare_tests	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/compare_tests	Tue May  7 06:51:37 2024
*************** if [ -d "$1" -a -d "$2" ] ; then
*** 96,102 ****
  	ret=$?
  	if [ $ret -ne 0 ]; then
  		exit_status=`expr $exit_status + 1`
! 		echo "## Differences found: $fname"
  	fi
  	if [ $exit_status -ne 0 ]; then
  		echo "# $exit_status differences in $cmnsums common sum files found"
--- 96,102 ----
  	ret=$?
  	if [ $ret -ne 0 ]; then
  		exit_status=`expr $exit_status + 1`
! 		echo "## Differences found"
  	fi
  	if [ $exit_status -ne 0 ]; then
  		echo "# $exit_status differences in $cmnsums common sum files found"
*************** elif [ -d "$1" -o -d "$2" ] ; then
*** 108,115 ****
  	usage "Must specify either two directories or two files"
  fi
  
! sed 's/^XFAIL/FAIL/; s/^ERROR/FAIL/; s/^XPASS/PASS/' < "$1" | awk '/^Running target / {target = $3} { if (target != "unix") { sub(/: /, "&"target": " ); }; print $0; }' | cut -c1-2000 >$tmp1
! sed 's/^XFAIL/FAIL/; s/^ERROR/FAIL/; s/^XPASS/PASS/' < "$2" | awk '/^Running target / {target = $3} { if (target != "unix") { sub(/: /, "&"target": " ); }; print $0; }' | cut -c1-2000 >$tmp2
  
  before=$tmp1
  now=$tmp2
--- 108,115 ----
  	usage "Must specify either two directories or two files"
  fi
  
! sed 's/^XFAIL/FAIL/; s/^ERROR/FAIL/; s/^XPASS/PASS/' < "$1" | awk '/^[	 ]*=== [^ ]* tests ===$/ {tool = $2} /^Running target / {target = $3} { if (tool != "") { sub(/:[ 	]/, "&"tool": " ); }; if (target != "unix") { sub(/:[ 	]/, "&"target": " ); }; print $0; }' | cut -c1-2000 >$tmp1
! sed 's/^XFAIL/FAIL/; s/^ERROR/FAIL/; s/^XPASS/PASS/' < "$2" | awk '/^[	 ]*=== [^ ]* tests ===$/ {tool = $2} /^Running target / {target = $3} { if (tool != "") { sub(/:[ 	]/, "&"tool": " ); }; if (target != "unix") { sub(/:[ 	]/, "&"target": " ); }; print $0; }' | cut -c1-2000 >$tmp2
  
  before=$tmp1
  now=$tmp2
diff -Nrcpad gcc-13.2.0/contrib/compare_two_ftime_report_sets gcc-14.1.0/contrib/compare_two_ftime_report_sets
*** gcc-13.2.0/contrib/compare_two_ftime_report_sets	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/compare_two_ftime_report_sets	Tue May  7 06:51:37 2024
***************
*** 5,11 ****
  
  # Contributed by Lawrence Crowl <crowl@google.com>
  #
! # Copyright (C) 2012-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  
  # Contributed by Lawrence Crowl <crowl@google.com>
  #
! # Copyright (C) 2012-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/config-list.mk gcc-14.1.0/contrib/config-list.mk
*** gcc-13.2.0/contrib/config-list.mk	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/config-list.mk	Tue May  7 06:51:37 2024
*************** TEST=all-gcc
*** 12,17 ****
--- 12,22 ----
  # supply an absolute path.
  GCC_SRC_DIR=../../gcc
  
+ # Define this to ,m2 if you want to build Modula-2.  Modula-2 builds target
+ # objects during all-gcc, so it can only be included if you've installed
+ # binutils (or an equivalent) for each target.
+ OPT_IN_LANGUAGES=
+ 
  # Use -j / -l make arguments and nice to assure a smooth resource-efficient
  # load on the build machine, e.g. for 24 cores:
  # svn co svn://gcc.gnu.org/svn/gcc/branches/foo-branch gcc
*************** GCC_SRC_DIR=../../gcc
*** 29,35 ****
  #     > make.out 2>&1 &
  #
  
! LIST = aarch64-elf aarch64-freebsd13 aarch64-linux-gnu aarch64-rtems \
    alpha-linux-gnu alpha-netbsd alpha-openbsd \
    alpha64-dec-vms alpha-dec-vms \
    amdgcn-amdhsa \
--- 34,41 ----
  #     > make.out 2>&1 &
  #
  
! LIST = \
!   aarch64-elf aarch64-freebsd13 aarch64-linux-gnu aarch64-rtems \
    alpha-linux-gnu alpha-netbsd alpha-openbsd \
    alpha64-dec-vms alpha-dec-vms \
    amdgcn-amdhsa \
*************** LIST = aarch64-elf aarch64-freebsd13 aar
*** 47,61 ****
    hppa-linux-gnuOPT-enable-sjlj-exceptions=yes hppa64-linux-gnu \
    hppa64-hpux11.3 \
    hppa64-hpux11.0OPT-enable-sjlj-exceptions=yes \
!   i686-pc-linux-gnu i686-apple-darwin i686-apple-darwin9 i686-apple-darwin10 \
    i686-freebsd13 i686-kfreebsd-gnu \
    i686-netbsdelf9 \
    i686-openbsd i686-elf i686-kopensolaris-gnu i686-gnu \
!   i686-pc-msdosdjgpp i686-lynxos i686-nto-qnx \
    i686-rtems i686-solaris2.11 i686-wrs-vxworks \
    i686-wrs-vxworksae \
!   i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elf \
!   ia64-linux ia64-hpux ia64-hp-vms iq2000-elf lm32-elf \
    lm32-rtems lm32-uclinux \
    loongarch64-linux-gnuf64 loongarch64-linux-gnuf32 loongarch64-linux-gnusf \
    m32c-elf m32r-elf m32rle-elf \
--- 53,68 ----
    hppa-linux-gnuOPT-enable-sjlj-exceptions=yes hppa64-linux-gnu \
    hppa64-hpux11.3 \
    hppa64-hpux11.0OPT-enable-sjlj-exceptions=yes \
!   i686-apple-darwin9 i686-apple-darwin13 i686-apple-darwin17 \
    i686-freebsd13 i686-kfreebsd-gnu \
    i686-netbsdelf9 \
    i686-openbsd i686-elf i686-kopensolaris-gnu i686-gnu \
!   i686-pc-linux-gnu i686-pc-msdosdjgpp i686-lynxos i686-nto-qnx \
    i686-rtems i686-solaris2.11 i686-wrs-vxworks \
    i686-wrs-vxworksae \
!   i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elfOPT-enable-obsolete \
!   ia64-linuxOPT-enable-obsolete ia64-hpuxOPT-enable-obsolete \
!   ia64-hp-vmsOPT-enable-obsolete iq2000-elf lm32-elf \
    lm32-rtems lm32-uclinux \
    loongarch64-linux-gnuf64 loongarch64-linux-gnuf32 loongarch64-linux-gnusf \
    m32c-elf m32r-elf m32rle-elf \
*************** LIST = aarch64-elf aarch64-freebsd13 aar
*** 71,82 ****
    moxie-uclinux moxie-rtems \
    msp430-elf msp430-elfbare \
    nds32le-elf nds32be-elf \
!   nios2-elf nios2-linux-gnu nios2-rtems \
    nvptx-none \
    or1k-elf or1k-linux-uclibc or1k-linux-musl or1k-rtems \
    pdp11-aout \
!   powerpc-darwin8 \
!   powerpc-darwin7 powerpc64-darwin powerpc-freebsd13 powerpc-netbsd \
    powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
    powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \
    powerpc-rtems \
--- 78,90 ----
    moxie-uclinux moxie-rtems \
    msp430-elf msp430-elfbare \
    nds32le-elf nds32be-elf \
!   nios2-elfOPT-enable-obsolete nios2-linux-gnuOPT-enable-obsolete \
!   nios2-rtemsOPT-enable-obsolete \
    nvptx-none \
    or1k-elf or1k-linux-uclibc or1k-linux-musl or1k-rtems \
    pdp11-aout \
!   powerpc-apple-darwin9 powerpc64-apple-darwin9 powerpc-apple-darwin8 \
!   powerpc-freebsd13 powerpc-netbsd \
    powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
    powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \
    powerpc-rtems \
*************** LIST = aarch64-elf aarch64-freebsd13 aar
*** 96,103 ****
    sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux \
    sparc64-netbsd sparc64-openbsd \
    v850e1-elf v850e-elf v850-elf v850-rtems vax-linux-gnu \
!   vax-netbsdelf visium-elf x86_64-apple-darwin x86_64-gnu \
!   x86_64-pc-linux-gnuOPT-with-fpmath=avx \
    x86_64-elfOPT-with-fpmath=sse x86_64-freebsd13 x86_64-netbsd \
    x86_64-w64-mingw32 \
    x86_64-mingw32OPT-enable-sjlj-exceptions=yes x86_64-rtems \
--- 104,112 ----
    sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux \
    sparc64-netbsd sparc64-openbsd \
    v850e1-elf v850e-elf v850-elf v850-rtems vax-linux-gnu \
!   vax-netbsdelf visium-elf \
!   x86_64-apple-darwin10 x86_64-apple-darwin15 x86_64-apple-darwin21 \
!   x86_64-gnu x86_64-pc-linux-gnuOPT-with-fpmath=avx \
    x86_64-elfOPT-with-fpmath=sse x86_64-freebsd13 x86_64-netbsd \
    x86_64-w64-mingw32 \
    x86_64-mingw32OPT-enable-sjlj-exceptions=yes x86_64-rtems \
*************** $(LIST): make-log-dir
*** 126,142 ****
  		TGT=`echo $@ | awk 'BEGIN { FS = "OPT" }; { print $$1 }'` &&			\
  		TGT=`$(GCC_SRC_DIR)/config.sub $$TGT` &&					\
  		case $$TGT in									\
! 			*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix* | bpf-*-*)			\
  				ADDITIONAL_LANGUAGES="";					\
  				;;								\
! 			*)									\
  				ADDITIONAL_LANGUAGES=",go";					\
  				;;								\
  		esac &&										\
  		$(GCC_SRC_DIR)/configure							\
  			--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@))	\
  			--enable-werror-always ${host_options}					\
! 			--enable-languages=all,ada$$ADDITIONAL_LANGUAGES;			\
  	) > log/$@-config.out 2>&1
  
  $(LOGFILES) : log/%-make.out : %
--- 135,157 ----
  		TGT=`echo $@ | awk 'BEGIN { FS = "OPT" }; { print $$1 }'` &&			\
  		TGT=`$(GCC_SRC_DIR)/config.sub $$TGT` &&					\
  		case $$TGT in									\
! 			bpf-*-*)								\
  				ADDITIONAL_LANGUAGES="";					\
  				;;								\
! 			*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix*)			\
! 				ADDITIONAL_LANGUAGES=",fortran";				\
! 				;;								\
! 			mmix-*-*)								\
  				ADDITIONAL_LANGUAGES=",go";					\
  				;;								\
+ 			*)									\
+ 				ADDITIONAL_LANGUAGES=",fortran,go";				\
+ 				;;								\
  		esac &&										\
  		$(GCC_SRC_DIR)/configure							\
  			--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@))	\
  			--enable-werror-always ${host_options}					\
! 			--enable-languages=c,ada,c++,d,lto,objc,obj-c++,rust$$ADDITIONAL_LANGUAGES$(OPT_IN_LANGUAGES); \
  	) > log/$@-config.out 2>&1
  
  $(LOGFILES) : log/%-make.out : %
diff -Nrcpad gcc-13.2.0/contrib/dg-cmp-results.sh gcc-14.1.0/contrib/dg-cmp-results.sh
*** gcc-13.2.0/contrib/dg-cmp-results.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/dg-cmp-results.sh	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  #!/bin/bash
! # Copyright (C) 2006-2023 Free Software Foundation, Inc.
  #
  # Analyze changes in GCC DejaGNU test logs for binutils, gcc, gdb, etc.
  # Original version written in 2005 by James Lemke <jwlemke@wasabisystems.com>.
--- 1,5 ----
  #!/bin/bash
! # Copyright (C) 2006-2024 Free Software Foundation, Inc.
  #
  # Analyze changes in GCC DejaGNU test logs for binutils, gcc, gdb, etc.
  # Original version written in 2005 by James Lemke <jwlemke@wasabisystems.com>.
diff -Nrcpad gcc-13.2.0/contrib/dg-extract-results.py gcc-14.1.0/contrib/dg-extract-results.py
*** gcc-13.2.0/contrib/dg-extract-results.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/dg-extract-results.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/python
  #
! # Copyright (C) 2014-2023 Free Software Foundation, Inc.
  #
  # This script is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,6 ----
  #!/usr/bin/python
  #
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  #
  # This script is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
*************** class Prog:
*** 113,119 ****
          # Whether to create .sum rather than .log output.
          self.do_sum = True
          # Regexps used while parsing.
!         self.test_run_re = re.compile (r'^Test Run By (\S+) on (.*)$')
          self.tool_re = re.compile (r'^\t\t=== (.*) tests ===$')
          self.result_re = re.compile (r'^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED'
                                       r'|WARNING|ERROR|UNSUPPORTED|UNTESTED'
--- 113,120 ----
          # Whether to create .sum rather than .log output.
          self.do_sum = True
          # Regexps used while parsing.
!         self.test_run_re = re.compile (r'^Test run by (\S+) on (.*)$',
!                                        re.IGNORECASE)
          self.tool_re = re.compile (r'^\t\t=== (.*) tests ===$')
          self.result_re = re.compile (r'^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED'
                                       r'|WARNING|ERROR|UNSUPPORTED|UNTESTED'
diff -Nrcpad gcc-13.2.0/contrib/dg-extract-results.sh gcc-14.1.0/contrib/dg-extract-results.sh
*** gcc-13.2.0/contrib/dg-extract-results.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/dg-extract-results.sh	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  # The resulting file can be used with test result comparison scripts for
  # results from tests that were run in parallel.  See usage() below.
  
! # Copyright (C) 2008-2023 Free Software Foundation, Inc.
  # Contributed by Janis Johnson <janis187@us.ibm.com>
  #
  # This file is part of GCC.
--- 6,12 ----
  # The resulting file can be used with test result comparison scripts for
  # results from tests that were run in parallel.  See usage() below.
  
! # Copyright (C) 2008-2024 Free Software Foundation, Inc.
  # Contributed by Janis Johnson <janis187@us.ibm.com>
  #
  # This file is part of GCC.
***************
*** 28,41 ****
  
  PROGNAME=dg-extract-results.sh
  
! # Try to use the python version if possible, since it tends to be faster.
  PYTHON_VER=`echo "$0" | sed 's/sh$/py/'`
! if test "$PYTHON_VER" != "$0" &&
!    test -f "$PYTHON_VER" &&
!    python -c 'import sys, getopt, re, io, datetime, operator; sys.exit (0 if sys.version_info >= (2, 6) else 1)' \
!      > /dev/null 2> /dev/null; then
!   exec python $PYTHON_VER "$@"
! fi
  
  usage() {
    cat <<EOF >&2
--- 28,44 ----
  
  PROGNAME=dg-extract-results.sh
  
! # Try to use the python version if possible, since it tends to be faster and
! # produces more stable results.
  PYTHON_VER=`echo "$0" | sed 's/sh$/py/'`
! for python in python3 python python2 ; do
!   if test "$PYTHON_VER" != "$0" &&
!      test -f "$PYTHON_VER" &&
!      ${python} -c 'import sys, getopt, re, io, datetime, operator; sys.exit (0 if sys.version_info >= (2, 6) else 1)' \
!        > /dev/null 2> /dev/null; then
!     exec ${python} $PYTHON_VER "$@"
!   fi
! done
  
  usage() {
    cat <<EOF >&2
*************** cat $SUM_FILES \
*** 271,277 ****
  
  # Write the begining of the combined summary file.
  
! head -n 2 $FIRST_SUM
  echo
  echo "		=== $TOOL tests ==="
  echo
--- 274,280 ----
  
  # Write the begining of the combined summary file.
  
! head -n 3 $FIRST_SUM
  echo
  echo "		=== $TOOL tests ==="
  echo
diff -Nrcpad gcc-13.2.0/contrib/dg-out-generator.pl gcc-14.1.0/contrib/dg-out-generator.pl
*** gcc-13.2.0/contrib/dg-out-generator.pl	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/dg-out-generator.pl	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env perl
  #
! # Copyright (C) 2022-2023 Free Software Foundation, Inc.
  # Contributed by Arsen Arsenović.
  #
  # This script is free software; you can redistribute it and/or modify
--- 1,6 ----
  #!/usr/bin/env perl
  #
! # Copyright (C) 2022-2024 Free Software Foundation, Inc.
  # Contributed by Arsen Arsenović.
  #
  # This script is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-13.2.0/contrib/dglib.pm gcc-14.1.0/contrib/dglib.pm
*** gcc-13.2.0/contrib/dglib.pm	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/dglib.pm	Tue May  7 06:51:37 2024
***************
*** 10,16 ****
  #		true if and only if it is a passing result (PASS, XFAIL, or
  #		KFAIL.)
  #
! # Copyright (C) 2006-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 10,16 ----
  #		true if and only if it is a passing result (PASS, XFAIL, or
  #		KFAIL.)
  #
! # Copyright (C) 2006-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/download_prerequisites gcc-14.1.0/contrib/download_prerequisites
*** gcc-13.2.0/contrib/download_prerequisites	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/download_prerequisites	Tue May  7 06:51:37 2024
*************** gmp='gmp-6.2.1.tar.bz2'
*** 31,40 ****
--- 31,43 ----
  mpfr='mpfr-4.1.0.tar.bz2'
  mpc='mpc-1.2.1.tar.gz'
  isl='isl-0.24.tar.bz2'
+ gettext='gettext-0.22.tar.gz'
  
  base_url='http://gcc.gnu.org/pub/gcc/infrastructure/'
  
  echo_archives() {
+     echo "${gettext}"
+     if "${only_gettext}"; then return; fi
      echo "${gmp}"
      echo "${mpfr}"
      echo "${mpc}"
*************** echo_archives() {
*** 44,49 ****
--- 47,53 ----
  graphite=1
  verify=1
  force=0
+ only_gettext=false
  OS=$(uname)
  
  if type wget > /dev/null ; then
*************** The following options are available:
*** 72,83 ****
   --no-verify      don't verify package integrity
   --sha512         use SHA512 checksum to verify package integrity (default)
   --md5            use MD5 checksum to verify package integrity
   --help           show this text and exit
   --version        show version information and exit
  "
  
  versiontext="${program} ${version}
! Copyright (C) 2016-2023 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  
--- 76,88 ----
   --no-verify      don't verify package integrity
   --sha512         use SHA512 checksum to verify package integrity (default)
   --md5            use MD5 checksum to verify package integrity
+  --only-gettext   inhibit downloading any package but gettext
   --help           show this text and exit
   --version        show version information and exit
  "
  
  versiontext="${program} ${version}
! Copyright (C) 2016-2024 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  
*************** do
*** 157,162 ****
--- 162,170 ----
                  chksum_extension='md5'
                  verify=1
                  ;;
+             --only-gettext)
+                 only_gettext=true
+                 ;;
              -*)
                  die "unknown option: ${arg}"
                  ;;
diff -Nrcpad gcc-13.2.0/contrib/filter-clang-warnings.py gcc-14.1.0/contrib/filter-clang-warnings.py
*** gcc-13.2.0/contrib/filter-clang-warnings.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/filter-clang-warnings.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  #
  # Script to analyze warnings produced by clang.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  #
  # Script to analyze warnings produced by clang.
  #
***************
*** 18,24 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  #
  #
  #
--- 18,24 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  #
  #
  #
diff -Nrcpad gcc-13.2.0/contrib/filter_gcc_for_doxygen gcc-14.1.0/contrib/filter_gcc_for_doxygen
*** gcc-13.2.0/contrib/filter_gcc_for_doxygen	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/filter_gcc_for_doxygen	Tue May  7 06:51:37 2024
***************
*** 8,12 ****
  # process is put on stdout.
  
  dir=`dirname $0`
! python $dir/filter_params.py $1
  exit 0
--- 8,12 ----
  # process is put on stdout.
  
  dir=`dirname $0`
! env python3 $dir/filter_params.py $1
  exit 0
diff -Nrcpad gcc-13.2.0/contrib/filter_params.py gcc-14.1.0/contrib/filter_params.py
*** gcc-13.2.0/contrib/filter_params.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/filter_params.py	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! #!/usr/bin/python
  """
  Filters out some of the #defines used throughout the GCC sources:
  - GTY(()) marks declarations for gengtype.c
--- 1,4 ----
! #!/usr/bin/env python3
  """
  Filters out some of the #defines used throughout the GCC sources:
  - GTY(()) marks declarations for gengtype.c
diff -Nrcpad gcc-13.2.0/contrib/gcc-changelog/git_check_commit.py gcc-14.1.0/contrib/gcc-changelog/git_check_commit.py
*** gcc-13.2.0/contrib/gcc-changelog/git_check_commit.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc-changelog/git_check_commit.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 16,22 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  import argparse
  
--- 16,22 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  import argparse
  
diff -Nrcpad gcc-13.2.0/contrib/gcc-changelog/git_commit.py gcc-14.1.0/contrib/gcc-changelog/git_commit.py
*** gcc-13.2.0/contrib/gcc-changelog/git_commit.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc-changelog/git_commit.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 16,22 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  import difflib
  import os
--- 16,22 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  import difflib
  import os
*************** default_changelog_locations = {
*** 69,74 ****
--- 69,75 ----
      'libgfortran',
      'libgm2',
      'libgomp',
+     'libgrust',
      'libhsail-rt',
      'libiberty',
      'libitm',
*************** bug_components = {
*** 104,109 ****
--- 105,111 ----
      'java',
      'jit',
      'libbacktrace',
+     'libcc1',
      'libf2c',
      'libffi',
      'libfortran',
*************** class GitCommit:
*** 329,339 ****
                  self.revert_commit = m.group('hash')
                  break
          if self.revert_commit:
              self.info = self.commit_to_info_hook(self.revert_commit)
! 
!         # The following happens for get_email.py:
!         if not self.info:
!             return
  
          self.check_commit_email()
  
--- 331,345 ----
                  self.revert_commit = m.group('hash')
                  break
          if self.revert_commit:
+             # The following happens for get_email.py:
+             if not self.commit_to_info_hook:
+                 self.warnings.append(f"Invoked script can not obtain info about "
+                                      f"reverted commits such as '{self.revert_commit}'")
+                 return
              self.info = self.commit_to_info_hook(self.revert_commit)
!             if not self.info:
!                 self.errors.append(Error('Cannot find to-be-reverted commit', self.revert_commit))
!                 return
  
          self.check_commit_email()
  
*************** class GitCommit:
*** 796,807 ****
                  orig_date = self.original_info.date
                  current_timestamp = orig_date.strftime(DATE_FORMAT)
              elif self.cherry_pick_commit:
!                 info = self.commit_to_info_hook(self.cherry_pick_commit)
                  # it can happen that it is a cherry-pick for a different
                  # repository
                  if info:
                      timestamp = info.date.strftime(DATE_FORMAT)
                  else:
                      timestamp = current_timestamp
              elif not timestamp or use_commit_ts:
                  timestamp = current_timestamp
--- 802,819 ----
                  orig_date = self.original_info.date
                  current_timestamp = orig_date.strftime(DATE_FORMAT)
              elif self.cherry_pick_commit:
!                 info = (self.commit_to_info_hook
!                         and self.commit_to_info_hook(self.cherry_pick_commit))
                  # it can happen that it is a cherry-pick for a different
                  # repository
                  if info:
                      timestamp = info.date.strftime(DATE_FORMAT)
                  else:
+                     if self.commit_to_info_hook:
+                         self.warnings.append(f"Cherry-picked commit not found: '{self.cherry_pick_commit}'")
+                     else:
+                         self.warnings.append(f"Invoked script can not obtain info about "
+                                              f"cherry-picked commits such as '{self.revert_commit}'")
                      timestamp = current_timestamp
              elif not timestamp or use_commit_ts:
                  timestamp = current_timestamp
diff -Nrcpad gcc-13.2.0/contrib/gcc-changelog/git_email.py gcc-14.1.0/contrib/gcc-changelog/git_email.py
*** gcc-13.2.0/contrib/gcc-changelog/git_email.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc-changelog/git_email.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 16,22 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  import os
  import re
--- 16,22 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  import os
  import re
*************** class GitEmail(GitCommit):
*** 89,96 ****
                  t = 'M'
              modified_files.append((target if t != 'D' else source, t))
          git_info = GitInfo(None, date, author, message, modified_files)
!         super().__init__(git_info,
!                          commit_to_info_hook=lambda x: None)
  
  
  def show_help():
--- 89,95 ----
                  t = 'M'
              modified_files.append((target if t != 'D' else source, t))
          git_info = GitInfo(None, date, author, message, modified_files)
!         super().__init__(git_info, commit_to_info_hook=None)
  
  
  def show_help():
diff -Nrcpad gcc-13.2.0/contrib/gcc-changelog/git_repository.py gcc-14.1.0/contrib/gcc-changelog/git_repository.py
*** gcc-13.2.0/contrib/gcc-changelog/git_repository.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc-changelog/git_repository.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 16,22 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  from datetime import datetime
  
--- 16,22 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  from datetime import datetime
  
diff -Nrcpad gcc-13.2.0/contrib/gcc-changelog/git_update_version.py gcc-14.1.0/contrib/gcc-changelog/git_update_version.py
*** gcc-13.2.0/contrib/gcc-changelog/git_update_version.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc-changelog/git_update_version.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 16,22 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  import argparse
  import datetime
--- 16,22 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  import argparse
  import datetime
*************** IGNORED_COMMITS = (
*** 37,43 ****
          '3ab5c8cd03d92bf4ec41e351820349d92fbc40c4',
          '86d8e0c0652ef5236a460b75c25e4f7093cc0651',
          'e4cba49413ca429dc82f6aa2e88129ecb3fdd943',
!         '1957bedf29a1b2cc231972aba680fe80199d5498')
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
--- 37,45 ----
          '3ab5c8cd03d92bf4ec41e351820349d92fbc40c4',
          '86d8e0c0652ef5236a460b75c25e4f7093cc0651',
          'e4cba49413ca429dc82f6aa2e88129ecb3fdd943',
!         '1957bedf29a1b2cc231972aba680fe80199d5498',
!         '040e5b0edbca861196d9e2ea2af5e805769c8d5d',
!         '8057f9aa1f7e70490064de796d7a8d42d446caf8')
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
*************** def prepend_to_changelog_files(repo, fol
*** 74,81 ****
              repo.git.add(full_path)
  
  
! active_refs = ['master', 'releases/gcc-10',
!                'releases/gcc-11', 'releases/gcc-12']
  
  parser = argparse.ArgumentParser(description='Update DATESTAMP and generate '
                                   'ChangeLog entries')
--- 76,83 ----
              repo.git.add(full_path)
  
  
! active_refs = ['master',
!                'releases/gcc-11', 'releases/gcc-12', 'releases/gcc-13']
  
  parser = argparse.ArgumentParser(description='Update DATESTAMP and generate '
                                   'ChangeLog entries')
diff -Nrcpad gcc-13.2.0/contrib/gcc-changelog/test_email.py gcc-14.1.0/contrib/gcc-changelog/test_email.py
*** gcc-13.2.0/contrib/gcc-changelog/test_email.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc-changelog/test_email.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 16,22 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  import os
  import tempfile
--- 16,22 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  import os
  import tempfile
diff -Nrcpad gcc-13.2.0/contrib/gcc-git-customization.sh gcc-14.1.0/contrib/gcc-git-customization.sh
*** gcc-13.2.0/contrib/gcc-git-customization.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc-git-customization.sh	Tue May  7 06:51:37 2024
*************** git config alias.gcc-backport '!f() { "`
*** 30,35 ****
--- 30,40 ----
  git config alias.gcc-fix-changelog '!f() { "`git rev-parse --show-toplevel`/contrib/git-fix-changelog.py" $@; } ; f'
  git config alias.gcc-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/mklog.py" $@; } ; f'
  git config alias.gcc-commit-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/git-commit-mklog.py" "$@"; }; f'
+ git config alias.gcc-style '!f() {
+     check=`git rev-parse --show-toplevel`/contrib/check_GNU_style.py;
+     arg=; if [ $# -ge 1 ] && [ "$1" != "-f" ]; then arg="$1"; shift;
+     elif [ $# -eq 3 ]; then arg="$3"; set -- "$1" "$2"; fi
+     git show $arg | $check "$@" -; }; f'
  
  # Make diff on MD files use "(define" as a function marker.
  # Use this in conjunction with a .gitattributes file containing
*************** set_email=$(git config --get "user.email
*** 46,52 ****
  if [ "x$set_user" = "x" ]
  then
      # Try to guess the user's name by looking it up in the password file
!     new_user=$(getent passwd $(whoami) | awk -F: '{ print $5 }')
      if [ "x$new_user" = "x" ]
      then
         new_user="(no default)"
--- 51,61 ----
  if [ "x$set_user" = "x" ]
  then
      # Try to guess the user's name by looking it up in the password file
!     if type getent >/dev/null 2>&1; then
!       new_user=$(getent passwd $(whoami) | awk -F: '{ print $5 }')
!     elif [ $(uname -s) = Darwin ]; then
!       new_user=$(id -F 2>/dev/null)
!     fi
      if [ "x$new_user" = "x" ]
      then
         new_user="(no default)"
diff -Nrcpad gcc-13.2.0/contrib/gcc_build gcc-14.1.0/contrib/gcc_build
*** gcc-13.2.0/contrib/gcc_build	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc_build	Tue May  7 06:51:37 2024
***************
*** 11,17 ****
  # Contents:
  #   Script to automatically download and build GCC.
  #
! # Copyright (C) 2000-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 11,17 ----
  # Contents:
  #   Script to automatically download and build GCC.
  #
! # Copyright (C) 2000-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/gcc_update gcc-14.1.0/contrib/gcc_update
*** gcc-13.2.0/contrib/gcc_update	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gcc_update	Tue May  7 06:51:37 2024
*************** files_and_dependencies () {
*** 70,75 ****
--- 70,76 ----
  # fixincludes
  fixincludes/configure: fixincludes/configure.ac fixincludes/aclocal.m4
  fixincludes/config.h.in: fixincludes/configure.ac fixincludes/aclocal.m4
+ fixincludes/fixincl.x: fixincludes/inclhack.def fixincludes/fixincl.tpl
  # intl library
  intl/plural.c: intl/plural.y
  intl/plural-config.h: intl/plural.y
*************** gcc/testsuite/gcc.dg/cpp/_Pragma3.c: gcc
*** 106,111 ****
--- 107,113 ----
  # direct2s.c:35: warning: current file is older than direct2.c
  gcc/testsuite/gcc.dg/cpp/direct2s.c: gcc/testsuite/gcc.dg/cpp/direct2.c
  # lto-plugin
+ lto-plugin/aclocal.m4: lto-plugin/configure.ac
  lto-plugin/configure: lto-plugin/configure.ac lto-plugin/aclocal.m4
  lto-plugin/Makefile.in: lto-plugin/Makefile.am lto-plugin/aclocal.m4
  # tools
*************** libgomp/testsuite/Makefile.in: libgomp/t
*** 153,158 ****
--- 155,164 ----
  libgomp/configure.ac: libgomp/plugin/configfrag.ac
  libgomp/configure: libgomp/configure.ac libgomp/aclocal.m4
  libgomp/config.h.in: libgomp/configure.ac libgomp/aclocal.m4
+ libgrust/Makefile.in: libgrust/Makefile.am libgrust/aclocal.m4
+ libgrust/aclocal.m4: libgrust/configure.ac
+ libgrust/configure: libgrust/configure.ac libgrust/aclocal.m4
+ libgrust/libproc_macro_internal/Makefile.in: libgrust/libproc_macro_internal/Makefile.am libgrust/aclocal.m4
  libitm/aclocal.m4: libitm/configure.ac libitm/acinclude.m4
  libitm/Makefile.in: libitm/Makefile.am libitm/aclocal.m4
  libitm/testsuite/Makefile.in: libitm/testsuite/Makefile.am libitm/aclocal.m4
*************** libphobos/config.h.in: libphobos/configu
*** 182,187 ****
--- 188,200 ----
  libphobos/configure: libphobos/configure.ac libphobos/aclocal.m4
  libphobos/src/Makefile.in: libphobos/src/Makefile.am libphobos/aclocal.m4
  libphobos/testsuite/Makefile.in: libphobos/testsuite/Makefile.am libphobos/aclocal.m4
+ libstdc++-v3/aclocal.m4: libstdc++-v3/configure.ac libstdc++-v3/acinclude.m4
+ libstdc++-v3/Makefile.in: libstdc++-v3/Makefile.am libstdc++-v3/aclocal.m4
+ libstdc++-v3/configure: libstdc++-v3/configure.ac libstdc++-v3/acinclude.m4
+ libstdc++-v3/include/bits/version.h: libstdc++-v3/include/bits/version.def libstdc++-v3/include/bits/version.tpl
+ libcc1/aclocal.m4: libcc1/configure.ac
+ libcc1/Makefile.in: libcc1/Makefile.am libcc1/configure.ac libcc1/aclocal.m4
+ libcc1/configure: libcc1/configure.ac
  # Top level
  Makefile.in: Makefile.tpl Makefile.def
  configure: configure.ac config/acx.m4
*************** case $vcs_type in
*** 342,348 ****
  	revision=`$GCC_GIT log -n1 --pretty=tformat:%h`
  	r=`$GCC_GIT describe --all --match 'basepoints/gcc-[0-9]*' HEAD \
  	   | sed -n 's,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)-\([0-9]\+\)-g[0-9a-f]*$,r\2-\3,p;s,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)$,r\2-0,p'`;
! 	if test -n $r; then
  		o=`$GCC_GIT config --get gcc-config.upstream`;
  		rr=`echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'`;
  		if $GCC_GIT rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then
--- 355,361 ----
  	revision=`$GCC_GIT log -n1 --pretty=tformat:%h`
  	r=`$GCC_GIT describe --all --match 'basepoints/gcc-[0-9]*' HEAD \
  	   | sed -n 's,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)-\([0-9]\+\)-g[0-9a-f]*$,r\2-\3,p;s,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)$,r\2-0,p'`;
! 	if test -n "$r"; then
  		o=`$GCC_GIT config --get gcc-config.upstream`;
  		rr=`echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'`;
  		if $GCC_GIT rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then
diff -Nrcpad gcc-13.2.0/contrib/gen_autofdo_event.py gcc-14.1.0/contrib/gen_autofdo_event.py
*** gcc-13.2.0/contrib/gen_autofdo_event.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gen_autofdo_event.py	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  #!/usr/bin/python3
  # Generate Intel taken branches Linux perf event script for autofdo profiling.
  
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # GCC is free software; you can redistribute it and/or modify it under
  # the terms of the GNU General Public License as published by the Free
--- 1,7 ----
  #!/usr/bin/python3
  # Generate Intel taken branches Linux perf event script for autofdo profiling.
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # GCC is free software; you can redistribute it and/or modify it under
  # the terms of the GNU General Public License as published by the Free
***************
*** 15,21 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  # Run it with perf record -b -e EVENT program ...
  # The Linux Kernel needs to support the PMU of the current CPU, and
--- 15,21 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  # Run it with perf record -b -e EVENT program ...
  # The Linux Kernel needs to support the PMU of the current CPU, and
*************** import json
*** 32,39 ****
  import argparse
  import collections
  import os
  
! baseurl = "https://download.01.org/perfmon"
  
  target_events = ('BR_INST_RETIRED.NEAR_TAKEN',
                   'BR_INST_EXEC.TAKEN',
--- 32,40 ----
  import argparse
  import collections
  import os
+ import fnmatch
  
! baseurl = "https://raw.githubusercontent.com/intel/perfmon/main"
  
  target_events = ('BR_INST_RETIRED.NEAR_TAKEN',
                   'BR_INST_EXEC.TAKEN',
*************** def get_cpustr():
*** 74,80 ****
  def find_event(eventurl, model):
      print("Downloading", eventurl, file = sys.stderr)
      u = urllib.request.urlopen(eventurl)
!     events = json.loads(u.read())
      u.close()
  
      found = 0
--- 75,81 ----
  def find_event(eventurl, model):
      print("Downloading", eventurl, file = sys.stderr)
      u = urllib.request.urlopen(eventurl)
!     events = json.loads(u.read())["Events"]
      u.close()
  
      found = 0
*************** found = 0
*** 102,108 ****
  cpufound = 0
  for j in u:
      n = j.rstrip().decode().split(',')
!     if len(n) >= 4 and (args.all or n[0] == cpu) and n[3] == "core":
          components = n[0].split("-")
          model = components[2]
          model = int(model, 16)
--- 103,109 ----
  cpufound = 0
  for j in u:
      n = j.rstrip().decode().split(',')
!     if len(n) >= 4 and (args.all or fnmatch.fnmatch(cpu, n[0])) and n[3] == "core":
          components = n[0].split("-")
          model = components[2]
          model = int(model, 16)
diff -Nrcpad gcc-13.2.0/contrib/gennews gcc-14.1.0/contrib/gennews
*** gcc-13.2.0/contrib/gennews	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/gennews	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Script to generate the NEWS file from online release notes.
  # Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  #
! # Copyright (C) 2000-2023 Free Software Foundation, Inc.
  # This file is part of GCC.
  #
  # GCC is free software; you can redistribute it and/or modify
--- 3,9 ----
  # Script to generate the NEWS file from online release notes.
  # Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  #
! # Copyright (C) 2000-2024 Free Software Foundation, Inc.
  # This file is part of GCC.
  #
  # GCC is free software; you can redistribute it and/or modify
***************
*** 23,28 ****
--- 23,29 ----
  
  website=http://gcc.gnu.org/
  files="
+     gcc-14/index.html gcc-14/changes.html
      gcc-13/index.html gcc-13/changes.html
      gcc-12/index.html gcc-12/changes.html
      gcc-11/index.html gcc-11/changes.html
diff -Nrcpad gcc-13.2.0/contrib/git-backport.py gcc-14.1.0/contrib/git-backport.py
*** gcc-13.2.0/contrib/git-backport.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/git-backport.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/git-commit-mklog.py gcc-14.1.0/contrib/git-commit-mklog.py
*** gcc-13.2.0/contrib/git-commit-mklog.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/git-commit-mklog.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/git-fix-changelog.py gcc-14.1.0/contrib/git-fix-changelog.py
*** gcc-13.2.0/contrib/git-fix-changelog.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/git-fix-changelog.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/header-tools/ChangeLog gcc-14.1.0/contrib/header-tools/ChangeLog
*** gcc-13.2.0/contrib/header-tools/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/contrib/header-tools/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,10 ****
! 2023-07-27  Release Manager
! 
! 	* GCC 13.2.0 released.
! 
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2022-08-31  Martin Liska  <mliska@suse.cz>
  
--- 1,6 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
  2022-08-31  Martin Liska  <mliska@suse.cz>
  
diff -Nrcpad gcc-13.2.0/contrib/jit-coverage-report.py gcc-14.1.0/contrib/jit-coverage-report.py
*** gcc-13.2.0/contrib/jit-coverage-report.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/jit-coverage-report.py	Tue May  7 06:51:37 2024
***************
*** 4,10 ****
  # cases, and which lack test coverage.  Tested with Python 2.7 and 3.2
  # To be run from the root directory of the source tree.
  #
! # Copyright (C) 2014-2023 Free Software Foundation, Inc.
  # Written by David Malcolm <dmalcolm@redhat.com>.
  #
  # This script is Free Software, and it can be copied, distributed and
--- 4,10 ----
  # cases, and which lack test coverage.  Tested with Python 2.7 and 3.2
  # To be run from the root directory of the source tree.
  #
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  # Written by David Malcolm <dmalcolm@redhat.com>.
  #
  # This script is Free Software, and it can be copied, distributed and
diff -Nrcpad gcc-13.2.0/contrib/legacy/mklog gcc-14.1.0/contrib/legacy/mklog
*** gcc-13.2.0/contrib/legacy/mklog	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/legacy/mklog	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/legacy/mklog.pl gcc-14.1.0/contrib/legacy/mklog.pl
*** gcc-13.2.0/contrib/legacy/mklog.pl	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/legacy/mklog.pl	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  #!/usr/bin/perl
! # Copyright (C) 2012-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,5 ----
  #!/usr/bin/perl
! # Copyright (C) 2012-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/contrib/mark_spam.py gcc-14.1.0/contrib/mark_spam.py
*** gcc-13.2.0/contrib/mark_spam.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/mark_spam.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # Script to mark bunch of PRs as spam 
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # Script to mark bunch of PRs as spam 
  #
***************
*** 18,24 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  #
  #
  #
--- 18,24 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  #
  #
  #
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/mdcompact-testsuite.el gcc-14.1.0/contrib/mdcompact/mdcompact-testsuite.el
*** gcc-13.2.0/contrib/mdcompact/mdcompact-testsuite.el	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/mdcompact-testsuite.el	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,56 ----
+ ;;; -*- lexical-binding: t; -*-
+ 
+ ;; This file is part of GCC.
+ 
+ ;; GCC is free software: you can redistribute it and/or modify it
+ ;; under the terms of the GNU General Public License as published by
+ ;; the Free Software Foundation, either version 3 of the License, or
+ ;; (at your option) any later version.
+ 
+ ;; GCC is distributed in the hope that it will be useful, but WITHOUT
+ ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ ;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+ ;; License for more details.
+ 
+ ;; You should have received a copy of the GNU General Public License
+ ;; along with GCC.  If not, see <https://www.gnu.org/licenses/>.
+ 
+ ;;; Commentary:
+ 
+ ;;; Usage:
+ ;; $ emacs -batch -l mdcompact.el -l mdcompact-testsuite.el -f ert-run-tests-batch-and-exit 
+ 
+ ;;; Code:
+ 
+ (require 'mdcompact)
+ (require 'ert)
+ 
+ (defconst mdcompat-test-directory (concat (file-name-directory
+ 					   (or load-file-name
+                                                buffer-file-name))
+ 					  "tests/"))
+ 
+ (defun mdcompat-test-run (f)
+   (with-temp-buffer
+     (insert-file-contents f)
+     (mdcomp-run-at-point)
+     (let ((a (buffer-string))
+ 	  (b (with-temp-buffer
+ 	       (insert-file-contents (concat f ".out"))
+ 	       (buffer-string))))
+       (should (string= a b)))))
+ 
+ (defmacro mdcompat-gen-tests ()
+   `(progn
+      ,@(cl-loop
+       for f in (directory-files mdcompat-test-directory t "md$")
+       collect
+       `(ert-deftest ,(intern (concat "mdcompat-test-"
+ 				     (file-name-sans-extension
+ 				      (file-name-nondirectory f))))
+ 	   ()
+ 	 (mdcompat-test-run ,f)))))
+ 
+ (mdcompat-gen-tests)
+ 
+ ;;; mdcompact-testsuite.el ends here
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/mdcompact.el gcc-14.1.0/contrib/mdcompact/mdcompact.el
*** gcc-13.2.0/contrib/mdcompact/mdcompact.el	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/mdcompact.el	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,296 ----
+ ;;; -*- lexical-binding: t; -*-
+ 
+ ;; Author: Andrea Corallo <andrea.corallo@arm.com>
+ ;; Package: mdcompact
+ ;; Keywords: languages, extensions
+ ;; Package-Requires: ((emacs "29"))
+ 
+ ;; This file is part of GCC.
+ 
+ ;; GCC is free software: you can redistribute it and/or modify it
+ ;; under the terms of the GNU General Public License as published by
+ ;; the Free Software Foundation, either version 3 of the License, or
+ ;; (at your option) any later version.
+ 
+ ;; GCC is distributed in the hope that it will be useful, but WITHOUT
+ ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ ;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+ ;; License for more details.
+ 
+ ;; You should have received a copy of the GNU General Public License
+ ;; along with GCC.  If not, see <https://www.gnu.org/licenses/>.
+ 
+ ;;; Commentary:
+ 
+ ;; Convert multi choice GCC machine description patterns to compact
+ ;; syntax.
+ 
+ ;;; Usage:
+ 
+ ;; With the point on a pattern run 'M-x mdcomp-run-at-point' to
+ ;; convert that pattern.
+ 
+ ;; Run 'M-x mdcomp-run-buffer' to convert all convertible patterns in
+ ;; the current buffer.
+ 
+ ;; Run 'M-x mdcomp-run-directory' to convert all convertible patterns
+ ;; in a directory.
+ 
+ ;; One can invoke the tool from shell as well, ex for running it on
+ ;; the arm backend from the GCC checkout directory:
+ ;; emacs -batch -l ./contrib/mdcompact/mdcompact.el -f mdcomp-run-directory ./gcc/config/arm/
+ 
+ ;;; Code:
+ 
+ (require 'cl-lib)
+ (require 'rx)
+ 
+ (defconst
+   mdcomp-constr-rx
+   (rx "(match_operand" (? ":" (1+ (or punct alnum)))
+       (1+ space) (group-n 1 num) (1+ space) "\""
+       (1+ (or alnum "_" "<" ">")) "\""
+       (group-n 2 (1+ space) "\"" (group-n 3 (0+ (not "\""))) "\"")
+       ")"))
+ 
+ (cl-defstruct mdcomp-operand
+   num
+   cstr)
+ 
+ (cl-defstruct mdcomp-attr
+   name
+   vals)
+ 
+ ;; A reasonable name
+ (rx-define mdcomp-name (1+ (or alnum "_")))
+ 
+ (defconst mdcomp-attr-rx
+   (rx "(set_attr" (1+ space) "\""
+       (group-n 1 mdcomp-name)
+       "\"" (1+ space) "\""
+       (group-n 2 (1+ (not ")")))
+       "\"" (0+ space) ")"))
+ 
+ (defun mdcomp-parse-delete-attr ()
+   (save-match-data
+     (when (re-search-forward mdcomp-attr-rx nil t)
+       (let ((res (save-match-data
+ 		   (make-mdcomp-attr
+ 		    :name (match-string-no-properties 1)
+ 		    :vals (cl-delete-if #'string-empty-p
+ 					(split-string
+ 					 (replace-regexp-in-string
+ 					  (rx "\\") ""
+ 					  (match-string-no-properties 2))
+ 						      (rx (1+ (or space ",")))))))))
+ 	(if (length= (mdcomp-attr-vals res) 1)
+ 	    'short
+ 	  (delete-region (match-beginning 0) (match-end 0))
+ 	  res)))))
+ 
+ (defun mdcomp-parse-attrs ()
+   (save-excursion
+     (let* ((res (cl-loop for x = (mdcomp-parse-delete-attr)
+ 			 while x
+ 			 collect x))
+ 	   (beg (re-search-backward (rx bol (1+ space) "["))))
+       (unless (memq 'short res)
+ 	(when res
+ 	  (delete-region beg (re-search-forward (rx "]")))))
+       (cl-delete 'short res))))
+ 
+ (defun mdcomp-remove-quoting (beg)
+   (save-excursion
+     (save-match-data
+       (replace-regexp-in-region (regexp-quote "\\\\") "\\\\" beg (point-max))
+       (replace-regexp-in-region (regexp-quote "\\\"") "\"" beg (point-max)))))
+ 
+ (defun mdcomp-remove-escaped-newlines (beg)
+   (save-excursion
+     (save-match-data
+       (replace-regexp-in-region (rx "\\" eol (0+ space)) " " beg (point-max)))))
+ 
+ (defun mdcomp-parse-delete-cstr ()
+   (cl-loop while (re-search-forward mdcomp-constr-rx nil t)
+ 	   unless (string= "" (match-string-no-properties 3))
+ 	     collect (save-match-data
+ 		       (make-mdcomp-operand
+ 			:num (string-to-number (match-string-no-properties 1))
+ 			:cstr (cl-delete-if #'string-empty-p
+ 					    (split-string
+ 					     (replace-regexp-in-string " " ""
+ 								       (match-string-no-properties 3))
+ 					     (rx (1+ ","))))))
+ 	   do (delete-region (match-beginning 2) (match-end 2))))
+ 
+ (defun mdcomp-run* ()
+   (let* ((ops (mdcomp-parse-delete-cstr))
+ 	     (attrs (mdcomp-parse-attrs))
+ 	     (beg (re-search-forward "\"@")))
+ 	(cl-sort ops (lambda (x y)
+ 		       (< (mdcomp-operand-num x) (mdcomp-operand-num y))))
+ 	(mdcomp-remove-escaped-newlines beg)
+ 	(save-match-data
+ 	  (save-excursion
+ 	    (left-char 2)
+ 	    (forward-sexp)
+ 	    (left-char 1)
+ 	    (delete-char 1)
+ 	    (insert "\n  }")))
+ 	(mdcomp-remove-quoting beg)
+ 	(replace-match "{@")
+ 	(re-search-forward (rx (or "\"" ")")))
+ 	(re-search-backward "@")
+ 	(right-char 1)
+ 	(insert "[ cons: ")
+ 	(cl-loop
+ 	 for op in ops
+ 	 when (string-match "=" (cl-first (mdcomp-operand-cstr op)))
+ 	 do (insert "=")
+ 	 do (insert (number-to-string (mdcomp-operand-num op)) ", ")
+ 	 finally
+ 	 (progn
+ 	   ;; In case add attributes names
+ 	   (when attrs
+ 	     (delete-char -2)
+ 	     (insert "; attrs: ")
+ 	     (cl-loop for attr in attrs
+ 		      do (insert (mdcomp-attr-name attr) ", ")))
+ 	   (delete-char -2)
+ 	   (insert "]")))
+ 	(cl-loop
+ 	 while (re-search-forward (rx bol (0+ space) (or (group-n 1 "* return")
+ 							 (group-n 2 "}")
+ 							 "#" alpha "<"))
+ 				  nil t)
+ 	 for i from 0
+ 	 when (match-string 2)
+ 	   do (cl-return)
+ 	 when (match-string 1)
+ 	   do (progn
+ 		(delete-region (match-beginning 1) (+ (match-beginning 1) (length "* return")))
+ 		(insert "<<")
+ 		(left-char 1))
+ 	 do
+ 	 (progn
+ 	   (left-char 1)
+ 	   (cl-loop
+ 	    initially (insert " [ ")
+ 	    for op in ops
+ 	    for c = (nth i (mdcomp-operand-cstr op))
+ 	    unless c
+ 	      do (cl-return)
+ 	    do (insert (if (string-match "=" c)
+ 			   (substring c 1 nil)
+ 			 c)
+ 		       ", ")
+ 	    finally (progn
+ 		      (when attrs
+ 			(delete-char -2)
+ 			(insert "; ")
+ 			(cl-loop for attr in attrs
+ 				 for str = (nth i (mdcomp-attr-vals attr))
+ 				 when str
+ 				   do (insert str)
+ 				 do (insert ", ")))
+ 		      (delete-char -2)
+ 		      (insert " ] ")
+ 		      (move-end-of-line 1)))))
+ 	;; remove everything after ] align what needs to be aligned
+ 	;; and re-add the asm template
+ 	(re-search-backward (regexp-quote "@[ cons:"))
+ 	(let* ((n (length (mdcomp-operand-cstr (car ops))))
+ 	       (asms (cl-loop
+ 		      initially (re-search-forward "]")
+ 		      repeat n
+ 		      collect (let* ((beg (re-search-forward "]"))
+ 				     (end (re-search-forward (rx eol)))
+ 				     (str (buffer-substring-no-properties beg end)))
+ 				(delete-region beg end)
+ 				str)))
+ 	       (beg (re-search-backward (regexp-quote "@[ cons:")))
+ 	       (indent-tabs-mode nil))
+ 	  (re-search-forward "}")
+ 	  (align-regexp beg (point) (rx  (group-n 1 "") "["))
+ 	  (align-regexp beg (point) (rx  (group-n 1 "") (or "," ";")) nil nil t)
+ 	  (align-regexp beg (point) (rx  (group-n 1 "") "]"))
+ 	  (goto-char beg)
+ 	  (cl-loop
+ 	   initially (re-search-forward "]")
+ 	   for i below n
+ 	   do (progn
+ 		(re-search-forward "]")
+ 		(insert (nth i asms))))
+ 	  (when (re-search-forward (rx (1+ (or space eol)) ")") nil t)
+ 	    (replace-match "\n)" nil t)))))
+ 
+ (defun mdcomp-narrow-to-md-pattern ()
+   (condition-case nil
+       (let ((beg (re-search-forward "\n("))
+ 	    (end (re-search-forward (rx bol (1+ ")")))))
+ 	(narrow-to-region beg end))
+     (error
+      (narrow-to-defun))))
+ 
+ (defun mdcomp-run-at-point ()
+   "Convert the multi choice top-level form around point to compact syntax."
+   (interactive)
+   (save-restriction
+     (save-mark-and-excursion
+       (mdcomp-narrow-to-md-pattern)
+       (goto-char (point-min))
+       (let ((pattern-name (save-excursion
+ 			    (re-search-forward (rx "\"" (group-n 1 (1+ (not "\""))) "\""))
+ 			    (match-string-no-properties 1)))
+ 	    (orig-text (buffer-substring-no-properties (point-min) (point-max))))
+ 	(condition-case nil
+ 	    (progn
+ 	      (mdcomp-run*)
+ 	      (message "Converted: %s" pattern-name))
+ 	  (error
+ 	   (message "Skipping convertion for: %s" pattern-name)
+ 	   (delete-region (point-min) (point-max))
+ 	   (insert orig-text)
+ 	   'fail))))))
+ 
+ (defun mdcomp-run-buffer ()
+   "Convert the multi choice top-level forms in the buffer to compact syntax."
+   (interactive)
+   (save-excursion
+     (message "Conversion for buffer %s started" (buffer-file-name))
+     (goto-char (point-min))
+     (while (re-search-forward
+ 	    (rx "match_operand" (1+ any) letter (0+ space) "," (0+ space) letter) nil t)
+       (when (eq (mdcomp-run-at-point) 'fail)
+ 	(condition-case nil
+ 	    (forward-sexp)
+ 	  (error
+ 	   ;; If forward-sexp fails falls back.
+ 	   (re-search-forward (rx ")" eol eol))))))
+     (message "Conversion done")))
+ 
+ (defconst mdcomp-file-rx (rx bol alpha (0+ not-newline) ".md" eol))
+ 
+ (defun mdcomp-run-directory (folder &optional recursive)
+   "Run el mdcompact on a FOLDER possibly in a RECURSIVE fashion."
+   (interactive "D")
+   (let ((before-save-hook nil)
+ 	(init-time (current-time)))
+     (mapc (lambda (f)
+ 	    (with-temp-file f
+ 	      (message "Working on %s" f)
+ 	      (insert-file-contents f)
+ 	      (mdcomp-run-buffer)
+ 	      (message "Done with %s" f)))
+ 	  (if recursive
+ 	      (directory-files-recursively folder mdcomp-file-rx)
+ 	    (directory-files folder t mdcomp-file-rx)))
+     (message "Converted in %f sec" (float-time (time-since init-time)))))
+ 
+ (defun mdcomp-batch-run-directory ()
+   "Same as `mdcomp-run-directory' but use cmd line args."
+   (mdcomp-run-directory (nth 0 argv) (nth 1 argv)))
+ 
+ (provide 'mdcompact)
+ 
+ ;;; mdcompact.el ends here
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/1.md gcc-14.1.0/contrib/mdcompact/tests/1.md
*** gcc-13.2.0/contrib/mdcompact/tests/1.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/1.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,36 ----
+ (define_insn_and_split "*movsi_aarch64"
+   [(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r, r,w, m, m,  r,  r,  r, w,r,w, w")
+ 	(match_operand:SI 1 "aarch64_mov_operand"  " r,r,k,M,n,Usv,m,m,rZ,w,Usw,Usa,Ush,rZ,w,w,Ds"))]
+   "(register_operand (operands[0], SImode)
+     || aarch64_reg_or_zero (operands[1], SImode))"
+   "@
+    mov\\t%w0, %w1
+    mov\\t%w0, %w1
+    mov\\t%w0, %w1
+    mov\\t%w0, %1
+    #
+    * return aarch64_output_sve_cnt_immediate (\"cnt\", \"%x0\", operands[1]);
+    ldr\\t%w0, %1
+    ldr\\t%s0, %1
+    str\\t%w1, %0
+    str\\t%s1, %0
+    adrp\\t%x0, %A1\;ldr\\t%w0, [%x0, %L1]
+    adr\\t%x0, %c1
+    adrp\\t%x0, %A1
+    fmov\\t%s0, %w1
+    fmov\\t%w0, %s1
+    fmov\\t%s0, %s1
+    * return aarch64_output_scalar_simd_mov_immediate (operands[1], SImode);"
+   "CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), SImode)
+     && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
+    [(const_int 0)]
+    "{
+        aarch64_expand_mov_immediate (operands[0], operands[1]);
+        DONE;
+     }"
+   [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,mov_imm,load_4,
+ 		    load_4,store_4,store_4,load_4,adr,adr,f_mcr,f_mrc,fmov,neon_move")
+    (set_attr "arch"   "*,*,*,*,*,sve,*,fp,*,fp,*,*,*,fp,fp,fp,simd")
+    (set_attr "length" "4,4,4,4,*,  4,4, 4,4, 4,8,4,4, 4, 4, 4,   4")
+ ]
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/1.md.out gcc-14.1.0/contrib/mdcompact/tests/1.md.out
*** gcc-13.2.0/contrib/mdcompact/tests/1.md.out	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/1.md.out	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,32 ----
+ (define_insn_and_split "*movsi_aarch64"
+   [(set (match_operand:SI 0 "nonimmediate_operand")
+ 	(match_operand:SI 1 "aarch64_mov_operand"))]
+   "(register_operand (operands[0], SImode)
+     || aarch64_reg_or_zero (operands[1], SImode))"
+   {@ [ cons: =0 , 1   ; attrs: type , arch , length ]
+      [ r        , r   ; mov_reg     , *    , 4      ] mov\t%w0, %w1
+      [ k        , r   ; mov_reg     , *    , 4      ] mov\t%w0, %w1
+      [ r        , k   ; mov_reg     , *    , 4      ] mov\t%w0, %w1
+      [ r        , M   ; mov_imm     , *    , 4      ] mov\t%w0, %1
+      [ r        , n   ; mov_imm     , *    , *      ] #
+      [ r        , Usv ; mov_imm     , sve  , 4      ] << aarch64_output_sve_cnt_immediate ("cnt", "%x0", operands[1]);
+      [ r        , m   ; load_4      , *    , 4      ] ldr\t%w0, %1
+      [ w        , m   ; load_4      , fp   , 4      ] ldr\t%s0, %1
+      [ m        , rZ  ; store_4     , *    , 4      ] str\t%w1, %0
+      [ m        , w   ; store_4     , fp   , 4      ] str\t%s1, %0
+      [ r        , Usw ; load_4      , *    , 8      ] adrp\t%x0, %A1\;ldr\t%w0, [%x0, %L1]
+      [ r        , Usa ; adr         , *    , 4      ] adr\t%x0, %c1
+      [ r        , Ush ; adr         , *    , 4      ] adrp\t%x0, %A1
+      [ w        , rZ  ; f_mcr       , fp   , 4      ] fmov\t%s0, %w1
+      [ r        , w   ; f_mrc       , fp   , 4      ] fmov\t%w0, %s1
+      [ w        , w   ; fmov        , fp   , 4      ] fmov\t%s0, %s1
+      [ w        , Ds  ; neon_move   , simd , 4      ] << aarch64_output_scalar_simd_mov_immediate (operands[1], SImode);
+   }
+   "CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), SImode)
+     && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
+    [(const_int 0)]
+    "{
+        aarch64_expand_mov_immediate (operands[0], operands[1]);
+        DONE;
+     }"
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/2.md gcc-14.1.0/contrib/mdcompact/tests/2.md
*** gcc-13.2.0/contrib/mdcompact/tests/2.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/2.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,25 ----
+ (define_insn "*movti_aarch64"
+   [(set (match_operand:TI 0
+ 	 "nonimmediate_operand"  "=   r,w,w,w, r,w,r,m,m,w,m")
+ 	(match_operand:TI 1
+ 	 "aarch64_movti_operand" " rUti,Z,Z,r, w,w,m,r,Z,m,w"))]
+   "(register_operand (operands[0], TImode)
+     || aarch64_reg_or_zero (operands[1], TImode))"
+   "@
+    #
+    movi\\t%0.2d, #0
+    fmov\t%d0, xzr
+    #
+    #
+    mov\\t%0.16b, %1.16b
+    ldp\\t%0, %H0, %1
+    stp\\t%1, %H1, %0
+    stp\\txzr, xzr, %0
+    ldr\\t%q0, %1
+    str\\t%q1, %0"
+   [(set_attr "type" "multiple,neon_move,f_mcr,f_mcr,f_mrc,neon_logic_q, \
+ 		             load_16,store_16,store_16,\
+                              load_16,store_16")
+    (set_attr "length" "8,4,4,8,8,4,4,4,4,4,4")
+    (set_attr "arch" "*,simd,*,*,*,simd,*,*,*,fp,fp")]
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/2.md.out gcc-14.1.0/contrib/mdcompact/tests/2.md.out
*** gcc-13.2.0/contrib/mdcompact/tests/2.md.out	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/2.md.out	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,21 ----
+ (define_insn "*movti_aarch64"
+   [(set (match_operand:TI 0
+ 	 "nonimmediate_operand")
+ 	(match_operand:TI 1
+ 	 "aarch64_movti_operand"))]
+   "(register_operand (operands[0], TImode)
+     || aarch64_reg_or_zero (operands[1], TImode))"
+   {@ [ cons: =0 , 1    ; attrs: type  , length , arch  ]
+      [ r        , rUti ; multiple     , 8      , *     ] #
+      [ w        , Z    ; neon_move    , 4      , simd  ] movi\t%0.2d, #0
+      [ w        , Z    ; f_mcr        , 4      , *     ] fmov\t%d0, xzr
+      [ w        , r    ; f_mcr        , 8      , *     ] #
+      [ r        , w    ; f_mrc        , 8      , *     ] #
+      [ w        , w    ; neon_logic_q , 4      , simd  ] mov\t%0.16b, %1.16b
+      [ r        , m    ; load_16      , 4      , *     ] ldp\t%0, %H0, %1
+      [ m        , r    ; store_16     , 4      , *     ] stp\t%1, %H1, %0
+      [ m        , Z    ; store_16     , 4      , *     ] stp\txzr, xzr, %0
+      [ w        , m    ; load_16      , 4      , fp    ] ldr\t%q0, %1
+      [ m        , w    ; store_16     , 4      , fp    ] str\t%q1, %0
+   }
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/3.md gcc-14.1.0/contrib/mdcompact/tests/3.md
*** gcc-13.2.0/contrib/mdcompact/tests/3.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/3.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,16 ----
+ (define_insn "*add<mode>3_compareV_cconly_imm"
+   [(set (reg:CC_V CC_REGNUM)
+ 	(compare:CC_V
+ 	  (plus:<DWI>
+ 	    (sign_extend:<DWI> (match_operand:GPI 0 "register_operand" "r,r"))
+ 	    (match_operand:<DWI> 1 "const_scalar_int_operand" ""))
+ 	  (sign_extend:<DWI>
+ 	   (plus:GPI
+ 	    (match_dup 0)
+ 	    (match_operand:GPI 2 "aarch64_plus_immediate" "I,J")))))]
+   "INTVAL (operands[1]) == INTVAL (operands[2])"
+   "@
+   cmn\\t%<w>0, %<w>1
+   cmp\\t%<w>0, #%n1"
+   [(set_attr "type" "alus_imm")]
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/3.md.out gcc-14.1.0/contrib/mdcompact/tests/3.md.out
*** gcc-13.2.0/contrib/mdcompact/tests/3.md.out	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/3.md.out	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,17 ----
+ (define_insn "*add<mode>3_compareV_cconly_imm"
+   [(set (reg:CC_V CC_REGNUM)
+ 	(compare:CC_V
+ 	  (plus:<DWI>
+ 	    (sign_extend:<DWI> (match_operand:GPI 0 "register_operand"))
+ 	    (match_operand:<DWI> 1 "const_scalar_int_operand"))
+ 	  (sign_extend:<DWI>
+ 	   (plus:GPI
+ 	    (match_dup 0)
+ 	    (match_operand:GPI 2 "aarch64_plus_immediate")))))]
+   "INTVAL (operands[1]) == INTVAL (operands[2])"
+   {@ [ cons: 0 , 2  ]
+      [ r       , I  ] cmn\t%<w>0, %<w>1
+      [ r       , J  ] cmp\t%<w>0, #%n1
+   }
+   [(set_attr "type" "alus_imm")]
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/4.md gcc-14.1.0/contrib/mdcompact/tests/4.md
*** gcc-13.2.0/contrib/mdcompact/tests/4.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/4.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,17 ----
+ (define_insn "*sibcall_insn"
+   [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucs, Usf"))
+ 	 (match_operand 1 ""))
+    (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
+    (return)]
+   "SIBLING_CALL_P (insn)"
+   {
+     if (which_alternative == 0)
+       {
+ 	output_asm_insn ("br\\t%0", operands);
+ 	return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
+       }
+     return "b\\t%c0";
+   }
+   [(set_attr "type" "branch, branch")
+    (set_attr "sls_length" "retbr,none")]
+ )
\ No newline at end of file
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/4.md.out gcc-14.1.0/contrib/mdcompact/tests/4.md.out
*** gcc-13.2.0/contrib/mdcompact/tests/4.md.out	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/4.md.out	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,17 ----
+ (define_insn "*sibcall_insn"
+   [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucs, Usf"))
+ 	 (match_operand 1 ""))
+    (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
+    (return)]
+   "SIBLING_CALL_P (insn)"
+   {
+     if (which_alternative == 0)
+       {
+ 	output_asm_insn ("br\\t%0", operands);
+ 	return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
+       }
+     return "b\\t%c0";
+   }
+   [(set_attr "type" "branch, branch")
+    (set_attr "sls_length" "retbr,none")]
+ )
\ No newline at end of file
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/5.md gcc-14.1.0/contrib/mdcompact/tests/5.md
*** gcc-13.2.0/contrib/mdcompact/tests/5.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/5.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,12 ----
+ (define_insn "<optab><mode>3"
+   [(set (match_operand:GPI 0 "register_operand" "=r,rk,w")
+ 	(LOGICAL:GPI (match_operand:GPI 1 "register_operand" "%r,r,w")
+ 		     (match_operand:GPI 2 "aarch64_logical_operand" "r,<lconst>,w")))]
+   ""
+   "@
+   <logical>\\t%<w>0, %<w>1, %<w>2
+   <logical>\\t%<w>0, %<w>1, %2
+   <logical>\\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>"
+   [(set_attr "type" "logic_reg,logic_imm,neon_logic")
+    (set_attr "arch" "*,*,simd")]
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/5.md.out gcc-14.1.0/contrib/mdcompact/tests/5.md.out
*** gcc-13.2.0/contrib/mdcompact/tests/5.md.out	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/5.md.out	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,11 ----
+ (define_insn "<optab><mode>3"
+   [(set (match_operand:GPI 0 "register_operand")
+ 	(LOGICAL:GPI (match_operand:GPI 1 "register_operand")
+ 		     (match_operand:GPI 2 "aarch64_logical_operand")))]
+   ""
+   {@ [ cons: =0 , 1  , 2        ; attrs: type , arch  ]
+      [ r        , %r , r        ; logic_reg   , *     ] <logical>\t%<w>0, %<w>1, %<w>2
+      [ rk       , r  , <lconst> ; logic_imm   , *     ] <logical>\t%<w>0, %<w>1, %2
+      [ w        , w  , w        ; neon_logic  , simd  ] <logical>\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>
+   }
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/6.md gcc-14.1.0/contrib/mdcompact/tests/6.md
*** gcc-13.2.0/contrib/mdcompact/tests/6.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/6.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,11 ----
+ (define_insn "aarch64_wrffr"
+   [(set (reg:VNx16BI FFR_REGNUM)
+ 	(match_operand:VNx16BI 0 "aarch64_simd_reg_or_minus_one"))
+    (set (reg:VNx16BI FFRT_REGNUM)
+ 	(unspec:VNx16BI [(match_dup 0)] UNSPEC_WRFFR))]
+   "TARGET_SVE"
+   {@ [ cons: 0 ]
+      [ Dm      ] setffr
+      [ Upa     ] wrffr\t%0.b
+   }
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/6.md.out gcc-14.1.0/contrib/mdcompact/tests/6.md.out
*** gcc-13.2.0/contrib/mdcompact/tests/6.md.out	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/6.md.out	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,11 ----
+ (define_insn "aarch64_wrffr"
+   [(set (reg:VNx16BI FFR_REGNUM)
+ 	(match_operand:VNx16BI 0 "aarch64_simd_reg_or_minus_one"))
+    (set (reg:VNx16BI FFRT_REGNUM)
+ 	(unspec:VNx16BI [(match_dup 0)] UNSPEC_WRFFR))]
+   "TARGET_SVE"
+   {@ [ cons: 0 ]
+      [ Dm      ] setffr
+      [ Upa     ] wrffr\t%0.b
+   }
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/7.md gcc-14.1.0/contrib/mdcompact/tests/7.md
*** gcc-13.2.0/contrib/mdcompact/tests/7.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/7.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,11 ----
+ (define_insn "and<mode>3<vczle><vczbe>"
+   [(set (match_operand:VDQ_I 0 "register_operand" "=w,w")
+ 	(and:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w,0")
+ 		   (match_operand:VDQ_I 2 "aarch64_reg_or_bic_imm" "w,Db")))]
+   "TARGET_SIMD"
+   "@
+    and\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>
+    * return aarch64_output_simd_mov_immediate (operands[2], <bitsize>,\
+ 					       AARCH64_CHECK_BIC);"
+   [(set_attr "type" "neon_logic<q>")]
+ )
diff -Nrcpad gcc-13.2.0/contrib/mdcompact/tests/7.md.out gcc-14.1.0/contrib/mdcompact/tests/7.md.out
*** gcc-13.2.0/contrib/mdcompact/tests/7.md.out	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/mdcompact/tests/7.md.out	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,11 ----
+ (define_insn "and<mode>3<vczle><vczbe>"
+   [(set (match_operand:VDQ_I 0 "register_operand")
+ 	(and:VDQ_I (match_operand:VDQ_I 1 "register_operand")
+ 		   (match_operand:VDQ_I 2 "aarch64_reg_or_bic_imm")))]
+   "TARGET_SIMD"
+   {@ [ cons: =0 , 1 , 2   ]
+      [ w        , w , w   ] and\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>
+      [ w        , 0 , Db  ] << aarch64_output_simd_mov_immediate (operands[2], <bitsize>, AARCH64_CHECK_BIC);
+   }
+   [(set_attr "type" "neon_logic<q>")]
+ )
diff -Nrcpad gcc-13.2.0/contrib/mklog.py gcc-14.1.0/contrib/mklog.py
*** gcc-13.2.0/contrib/mklog.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/mklog.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** from unidiff import PatchSet
*** 41,47 ****
  
  LINE_LIMIT = 100
  TAB_WIDTH = 8
! CO_AUTHORED_BY_PREFIX = 'co-authored-by: '
  
  pr_regex = re.compile(r'(\/(\/|\*)|[Cc*!])\s+(?P<pr>PR [a-z+-]+\/[0-9]+)')
  prnum_regex = re.compile(r'PR (?P<comp>[a-z+-]+)/(?P<num>[0-9]+)')
--- 41,74 ----
  
  LINE_LIMIT = 100
  TAB_WIDTH = 8
! 
! # Initial commit:
! #   +--------------------------------------------------+
! #   | gccrs: Some title                                |
! #   |                                                  | This is the "start"
! #   | This is some text explaining the commit.         |
! #   | There can be several lines.                      |
! #   |                                                  |<------------------->
! #   | Signed-off-by: My Name <my@mail.com>             | This is the "end"
! #   +--------------------------------------------------+
! #
! # Results in:
! #   +--------------------------------------------------+
! #   | gccrs: Some title                                |
! #   |                                                  |
! #   | This is some text explaining the commit.         | This is the "start"
! #   | There can be several lines.                      |
! #   |                                                  |<------------------->
! #   | gcc/rust/ChangeLog:                              |
! #   |                                                  | This is the generated
! #   |         * some_file (bla):                       | ChangeLog part
! #   |         (foo):                                   |
! #   |                                                  |<------------------->
! #   | Signed-off-by: My Name <my@mail.com>             | This is the "end"
! #   +--------------------------------------------------+
! 
! # this regex matches the first line of the "end" in the initial commit message
! FIRST_LINE_OF_END_RE = re.compile('(?i)^(signed-off-by:|co-authored-by:|#)')
  
  pr_regex = re.compile(r'(\/(\/|\*)|[Cc*!])\s+(?P<pr>PR [a-z+-]+\/[0-9]+)')
  prnum_regex = re.compile(r'PR (?P<comp>[a-z+-]+)/(?P<num>[0-9]+)')
*************** def generate_changelog(data, no_function
*** 250,256 ****
                  # it used to be path.source_file[2:]
                  relative_path = get_rel_path_if_prefixed(file.source_file[2:],
                                                           changelog)
!                 out = append_changelog_line(out, relative_path, 'Moved to...')
                  new_path = get_rel_path_if_prefixed(file.target_file[2:],
                                                      changelog)
                  out += f'\t* {new_path}: ...here.\n'
--- 277,283 ----
                  # it used to be path.source_file[2:]
                  relative_path = get_rel_path_if_prefixed(file.source_file[2:],
                                                           changelog)
!                 out = append_changelog_line(out, relative_path, 'Move to...')
                  new_path = get_rel_path_if_prefixed(file.target_file[2:],
                                                      changelog)
                  out += f'\t* {new_path}: ...here.\n'
*************** def update_copyright(data):
*** 330,338 ****
  
  
  def skip_line_in_changelog(line):
!     if line.lower().startswith(CO_AUTHORED_BY_PREFIX) or line.startswith('#'):
!         return False
!     return True
  
  
  if __name__ == '__main__':
--- 357,363 ----
  
  
  def skip_line_in_changelog(line):
!     return FIRST_LINE_OF_END_RE.match(line) is None
  
  
  if __name__ == '__main__':
*************** if __name__ == '__main__':
*** 358,363 ****
--- 383,390 ----
                               'file')
      parser.add_argument('--update-copyright', action='store_true',
                          help='Update copyright in ChangeLog files')
+     parser.add_argument('-a', '--append', action='store_true',
+                         help='Append the generate ChangeLog to the patch file')
      args = parser.parse_args()
      if args.input == '-':
          args.input = None
*************** if __name__ == '__main__':
*** 370,376 ****
      else:
          output = generate_changelog(data, args.no_functions,
                                      args.fill_up_bug_titles, args.pr_numbers)
!         if args.changelog:
              lines = open(args.changelog).read().split('\n')
              start = list(takewhile(skip_line_in_changelog, lines))
              end = lines[len(start):]
--- 397,428 ----
      else:
          output = generate_changelog(data, args.no_functions,
                                      args.fill_up_bug_titles, args.pr_numbers)
!         if args.append:
!             if (not args.input):
!                 raise Exception("`-a or --append` option not support standard "
!                                 "input")
!             lines = []
!             with open(args.input, 'r', newline='\n') as f:
!                 # 1 -> not find the possible start of diff log
!                 # 2 -> find the possible start of diff log
!                 # 3 -> finish add ChangeLog to the patch file
!                 maybe_diff_log = 1
!                 for line in f:
!                     if maybe_diff_log == 1 and line == "---\n":
!                         maybe_diff_log = 2
!                     elif (maybe_diff_log == 2 and
!                           re.match(r"\s[^\s]+\s+\|\s+\d+\s[+\-]+\n", line)):
!                         lines += [output, "---\n", line]
!                         maybe_diff_log = 3
!                     else:
!                         # the possible start is not the true start.
!                         if maybe_diff_log == 2:
!                             lines.append("---\n")
!                             maybe_diff_log = 1
!                         lines.append(line)
!             with open(args.input, "w") as f:
!                 f.writelines(lines)
!         elif args.changelog:
              lines = open(args.changelog).read().split('\n')
              start = list(takewhile(skip_line_in_changelog, lines))
              end = lines[len(start):]
diff -Nrcpad gcc-13.2.0/contrib/patch_tester.sh gcc-14.1.0/contrib/patch_tester.sh
*** gcc-13.2.0/contrib/patch_tester.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/patch_tester.sh	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  #!/bin/sh
  
  # Tests a set of patches from a directory.
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  #!/bin/sh
  
  # Tests a set of patches from a directory.
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-13.2.0/contrib/prepare-commit-msg gcc-14.1.0/contrib/prepare-commit-msg
*** gcc-13.2.0/contrib/prepare-commit-msg	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/prepare-commit-msg	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/bin/sh
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/bin/sh
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** if ! [ -f "$COMMIT_MSG_FILE" ]; then exi
*** 32,42 ****
  # Don't do anything unless requested to.
  if [ -z "$GCC_FORCE_MKLOG" ]; then exit 0; fi
  
! if [ -z "$COMMIT_SOURCE" ] || [ $COMMIT_SOURCE = template ]; then
      # No source or "template" means new commit.
      cmd="diff --cached"
  
! elif [ $COMMIT_SOURCE = message ]; then
      # "message" means -m; assume a new commit if there are any changes staged.
      if ! git diff --cached --quiet; then
  	cmd="diff --cached"
--- 32,42 ----
  # Don't do anything unless requested to.
  if [ -z "$GCC_FORCE_MKLOG" ]; then exit 0; fi
  
! if [ -z "$COMMIT_SOURCE" ] || [ "$COMMIT_SOURCE" = template ]; then
      # No source or "template" means new commit.
      cmd="diff --cached"
  
! elif [ "$COMMIT_SOURCE" = message ]; then
      # "message" means -m; assume a new commit if there are any changes staged.
      if ! git diff --cached --quiet; then
  	cmd="diff --cached"
*************** elif [ $COMMIT_SOURCE = message ]; then
*** 44,66 ****
  	cmd="diff --cached HEAD^"
      fi
  
! elif [ $COMMIT_SOURCE = commit ]; then
      # The message of an existing commit.  If it's HEAD, assume --amend;
      # otherwise, assume a new commit with -C.
!     if [ $SHA1 = HEAD ]; then
  	cmd="diff --cached HEAD^"
  	if [ "$(git config gcc-config.mklog-hook-type)" = "smart-amend" ]; then
  	    # Check if the existing message still describes the staged changes.
  	    f=$(mktemp /tmp/git-commit.XXXXXX) || exit 1
! 	    git log -1 --pretty=email HEAD > $f
! 	    printf '\n---\n\n' >> $f
! 	    git $cmd >> $f
  	    if contrib/gcc-changelog/git_email.py "$f" >/dev/null 2>&1; then
  		# Existing commit message is still OK for amended commit.
! 		rm $f
  		exit 0
  	    fi
! 	    rm $f
  	fi
      else
  	cmd="diff --cached"
--- 44,66 ----
  	cmd="diff --cached HEAD^"
      fi
  
! elif [ "$COMMIT_SOURCE" = commit ]; then
      # The message of an existing commit.  If it's HEAD, assume --amend;
      # otherwise, assume a new commit with -C.
!     if [ "$SHA1" = HEAD ]; then
  	cmd="diff --cached HEAD^"
  	if [ "$(git config gcc-config.mklog-hook-type)" = "smart-amend" ]; then
  	    # Check if the existing message still describes the staged changes.
  	    f=$(mktemp /tmp/git-commit.XXXXXX) || exit 1
! 	    git log -1 --pretty=email HEAD > "$f"
! 	    printf '\n---\n\n' >> "$f"
! 	    git $cmd >> "$f"
  	    if contrib/gcc-changelog/git_email.py "$f" >/dev/null 2>&1; then
  		# Existing commit message is still OK for amended commit.
! 		rm "$f"
  		exit 0
  	    fi
! 	    rm "$f"
  	fi
      else
  	cmd="diff --cached"
*************** fi
*** 72,78 ****
  
  # Save diff to a file if requested.
  DIFF_FILE=$(git config gcc-config.diff-file)
! if ! [ -z "$DIFF_FILE" ]; then
      tee="tee $DIFF_FILE"
  else
      tee="cat"
--- 72,78 ----
  
  # Save diff to a file if requested.
  DIFF_FILE=$(git config gcc-config.diff-file)
! if [ -n "$DIFF_FILE" ]; then
      tee="tee $DIFF_FILE"
  else
      tee="cat"
diff -Nrcpad gcc-13.2.0/contrib/prepare_patch.sh gcc-14.1.0/contrib/prepare_patch.sh
*** gcc-13.2.0/contrib/prepare_patch.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/prepare_patch.sh	Tue May  7 06:51:37 2024
***************
*** 2,8 ****
  #set -x
  
  # Prepares a patch for the patch tester.
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
--- 2,8 ----
  #set -x
  
  # Prepares a patch for the patch tester.
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # Contributed by Sebastian Pop <sebastian.pop@amd.com>
  
  # This program is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-13.2.0/contrib/prerequisites.md5 gcc-14.1.0/contrib/prerequisites.md5
*** gcc-13.2.0/contrib/prerequisites.md5	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/prerequisites.md5	Tue May  7 06:51:37 2024
***************
*** 2,4 ****
--- 2,5 ----
  44b892bc5a45bafb4294d134e13aad1d  mpfr-4.1.0.tar.bz2
  9f16c976c25bb0f76b50be749cd7a3a8  mpc-1.2.1.tar.gz
  dd2f7b78e118c25bd96134a52aae7f4d  isl-0.24.tar.bz2
+ c092102240f8f66134d22718421d5115  gettext-0.22.tar.gz
diff -Nrcpad gcc-13.2.0/contrib/prerequisites.sha512 gcc-14.1.0/contrib/prerequisites.sha512
*** gcc-13.2.0/contrib/prerequisites.sha512	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/prerequisites.sha512	Tue May  7 06:51:37 2024
***************
*** 2,4 ****
--- 2,5 ----
  410208ee0d48474c1c10d3d4a59decd2dfa187064183b09358ec4c4666e34d74383128436b404123b831e585d81a9176b24c7ced9d913967c5fce35d4040a0b4  mpfr-4.1.0.tar.bz2
  3279f813ab37f47fdcc800e4ac5f306417d07f539593ca715876e43e04896e1d5bceccfb288ef2908a3f24b760747d0dbd0392a24b9b341bc3e12082e5c836ee  mpc-1.2.1.tar.gz
  aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95  isl-0.24.tar.bz2
+ e2a58dde1cae3e6b79c03e7ef3d888f7577c1f4cba283b3b0f31123ceea8c33d7c9700e83de57104644de23e5f5c374868caa0e091f9c45edbbe87b98ee51c04  gettext-0.22.tar.gz
diff -Nrcpad gcc-13.2.0/contrib/reghunt/ChangeLog gcc-14.1.0/contrib/reghunt/ChangeLog
*** gcc-13.2.0/contrib/reghunt/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/contrib/reghunt/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,10 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2010-06-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
--- 1,11 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2023-05-18  Jonathan Wakely  <jwakely@redhat.com>
  
! 	PR bootstrap/105831
! 	* bin/reg-hunt: Use = operator instead of ==.
  
  2010-06-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-build-full gcc-14.1.0/contrib/reghunt/bin/gcc-build-full
*** gcc-13.2.0/contrib/reghunt/bin/gcc-build-full	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-build-full	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Perform a simple build of GCC for a particular language, using several
  # environment variables defined by reghunt scripts and config files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Perform a simple build of GCC for a particular language, using several
  # environment variables defined by reghunt scripts and config files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-build-simple gcc-14.1.0/contrib/reghunt/bin/gcc-build-simple
*** gcc-13.2.0/contrib/reghunt/bin/gcc-build-simple	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-build-simple	Tue May  7 06:51:37 2024
***************
*** 5,11 ****
  #
  # This doesn't work for sources earlier than about 2003-02-25.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 5,11 ----
  #
  # This doesn't work for sources earlier than about 2003-02-25.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-svn-patchlist gcc-14.1.0/contrib/reghunt/bin/gcc-svn-patchlist
*** gcc-13.2.0/contrib/reghunt/bin/gcc-svn-patchlist	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-svn-patchlist	Tue May  7 06:51:37 2024
***************
*** 4,10 ****
  # by default) between the specified dates.  This skips commits that do
  # not modify any existing files and changes by gccadmin.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 4,10 ----
  # by default) between the specified dates.  This skips commits that do
  # not modify any existing files and changes by gccadmin.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-svn-update gcc-14.1.0/contrib/reghunt/bin/gcc-svn-update
*** gcc-13.2.0/contrib/reghunt/bin/gcc-svn-update	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-svn-update	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Update or check out GCC sources for a particular Subversion revision
  # and a particular branch.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Update or check out GCC sources for a particular Subversion revision
  # and a particular branch.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-accepts-invalid gcc-14.1.0/contrib/reghunt/bin/gcc-test-accepts-invalid
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-accepts-invalid	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-accepts-invalid	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Test an "accepts-invalid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test an "accepts-invalid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-bogus-warning gcc-14.1.0/contrib/reghunt/bin/gcc-test-bogus-warning
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-bogus-warning	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-bogus-warning	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Test a "bogus-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a "bogus-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-compiler-hangs gcc-14.1.0/contrib/reghunt/bin/gcc-test-compiler-hangs
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-compiler-hangs	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-compiler-hangs	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Test a bug for which the compiler hangs, using environment variables
  # set in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a bug for which the compiler hangs, using environment variables
  # set in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code gcc-14.1.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Test an "ice-on-invalid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test an "ice-on-invalid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code gcc-14.1.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Test an "ice-on-valid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test an "ice-on-valid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-missing-warning gcc-14.1.0/contrib/reghunt/bin/gcc-test-missing-warning
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-missing-warning	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-missing-warning	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Test a "missing-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a "missing-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-rejects-valid gcc-14.1.0/contrib/reghunt/bin/gcc-test-rejects-valid
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-rejects-valid	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-rejects-valid	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Test a "rejects-valid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a "rejects-valid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code gcc-14.1.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code	Tue May  7 06:51:37 2024
***************
*** 4,10 ****
  # segfault, using environment variables set in several reghunt scripts
  # and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 4,10 ----
  # segfault, using environment variables set in several reghunt scripts
  # and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/gcc-test-wrong-code gcc-14.1.0/contrib/reghunt/bin/gcc-test-wrong-code
*** gcc-13.2.0/contrib/reghunt/bin/gcc-test-wrong-code	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/gcc-test-wrong-code	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Test a "wrong-code" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 3,9 ----
  # Test a "wrong-code" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/reg-hunt gcc-14.1.0/contrib/reghunt/bin/reg-hunt
*** gcc-13.2.0/contrib/reghunt/bin/reg-hunt	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/reg-hunt	Tue May  7 06:51:37 2024
***************
*** 47,53 ****
  #
  #
  #
! # Copyright (C) 2002-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 47,53 ----
  #
  #
  #
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
*************** process_patch () {
*** 142,148 ****
      # build failures, quit now.
  
      if [ ${SKIP} -eq 0 ]; then
!       if [ "x${REG_NEWMID}" == "x" \
             -o ${TEST_ID} -eq ${LATER_THAN} \
             -o ${TEST_ID} -eq ${EARLIER_THAN} ]; then
          error "build failed for ${TEST_ID}"
--- 142,148 ----
      # build failures, quit now.
  
      if [ ${SKIP} -eq 0 ]; then
!       if [ "x${REG_NEWMID}" = "x" \
             -o ${TEST_ID} -eq ${LATER_THAN} \
             -o ${TEST_ID} -eq ${EARLIER_THAN} ]; then
          error "build failed for ${TEST_ID}"
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/reg-newmid gcc-14.1.0/contrib/reghunt/bin/reg-newmid
*** gcc-13.2.0/contrib/reghunt/bin/reg-newmid	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/reg-newmid	Tue May  7 06:51:37 2024
***************
*** 10,16 ****
  # A nifty improvement would be to record known ranges of failure as
  # ranges, and then pick revisions just before and just after the range.
  #
! # Copyright (C) 2006-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 10,16 ----
  # A nifty improvement would be to record known ranges of failure as
  # ranges, and then pick revisions just before and just after the range.
  #
! # Copyright (C) 2006-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/bin/reg-test gcc-14.1.0/contrib/reghunt/bin/reg-test
*** gcc-13.2.0/contrib/reghunt/bin/reg-test	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/bin/reg-test	Tue May  7 06:51:37 2024
***************
*** 25,31 ****
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 25,31 ----
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/date_based/reg_periodic gcc-14.1.0/contrib/reghunt/date_based/reg_periodic
*** gcc-13.2.0/contrib/reghunt/date_based/reg_periodic	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/date_based/reg_periodic	Tue May  7 06:51:37 2024
***************
*** 25,31 ****
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 25,31 ----
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/reghunt/date_based/reg_search gcc-14.1.0/contrib/reghunt/date_based/reg_search
*** gcc-13.2.0/contrib/reghunt/date_based/reg_search	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/reghunt/date_based/reg_search	Tue May  7 06:51:37 2024
***************
*** 45,51 ****
  #
  #
  #
! # Copyright (C) 2002-2023 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 45,51 ----
  #
  #
  #
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/regression/ChangeLog gcc-14.1.0/contrib/regression/ChangeLog
*** gcc-13.2.0/contrib/regression/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/contrib/regression/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,10 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2023-02-16  Hans-Peter Nilsson  <hp@axis.com>
  
--- 1,19 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2023-11-23  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* btest-gcc.sh (--handle-xpass-as-fail): New option.
! 
! 2023-11-23  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* btest-gcc.sh (Option handling): Break out shifts from each
! 	option alternative.
! 
! 2023-11-23  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* btest-gcc.sh (Option handling): Handle multiple options.
  
  2023-02-16  Hans-Peter Nilsson  <hp@axis.com>
  
diff -Nrcpad gcc-13.2.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html gcc-14.1.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html
*** gcc-13.2.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  <!-- Get and update the GCC regression tester's web page.
!      Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  <!-- Get and update the GCC regression tester's web page.
!      Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/contrib/regression/btest-gcc.sh gcc-14.1.0/contrib/regression/btest-gcc.sh
*** gcc-13.2.0/contrib/regression/btest-gcc.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/regression/btest-gcc.sh	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  #!/bin/sh
  
  #  Test GCC.
! #  Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  #  This program is free software; you can redistribute it and/or modify
  #  it under the terms of the GNU General Public License as published by
--- 1,7 ----
  #!/bin/sh
  
  #  Test GCC.
! #  Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  #  This program is free software; you can redistribute it and/or modify
  #  it under the terms of the GNU General Public License as published by
***************
*** 22,41 ****
  
  add_passes_despite_regression=0
  dashj=''
  
  # <options> can be
  # --add-passes-despite-regression:
  #  Add new "PASSes" despite there being some regressions.
  # -j<n>:
  #  Pass '-j<n>' to make.
  
! case "$1" in
!  --add-passes-despite-regression)
!   add_passes_despite_regression=1; shift;;
!  -j*)
!   dashj=$1; shift;;
!  -*) echo "Invalid option: $1"; exit 2;;
! esac
  
  # TARGET is the target triplet.  It should be the same one as used in
  # constructing PREFIX.  Or it can be the keyword 'native', indicating
--- 22,50 ----
  
  add_passes_despite_regression=0
  dashj=''
+ handle_xpass_as_fail=false
  
  # <options> can be
  # --add-passes-despite-regression:
  #  Add new "PASSes" despite there being some regressions.
  # -j<n>:
  #  Pass '-j<n>' to make.
+ # --handle-xpass-as-fail:
+ #  Count XPASS as a FAIL (default ignored).
  
! while : ; do
!   case "$1" in
!    --add-passes-despite-regression)
!     add_passes_despite_regression=1;;
!    --handle-xpass-as-fail)
!     handle_xpass_as_fail=true;;
!    -j*)
!     dashj=$1;;
!    -*) echo "Invalid option: $1"; exit 2;;
!    *) break;;
!   esac
!   shift
! done
  
  # TARGET is the target triplet.  It should be the same one as used in
  # constructing PREFIX.  Or it can be the keyword 'native', indicating
*************** done
*** 199,205 ****
  # Work out what failed
  for LOG in $TESTLOGS ; do
    L=`basename $LOG`
!   awk '/^FAIL: / { print "'$L'",$2; }' $LOG || exit 1
  done | sort | uniq > $FAILED || exit 1
  comm -12 $FAILED $PASSES >> $REGRESS || exit 1
  NUMREGRESS=`wc -l < $REGRESS | tr -d ' '`
--- 208,218 ----
  # Work out what failed
  for LOG in $TESTLOGS ; do
    L=`basename $LOG`
!   if $handle_xpass_as_fail ; then
!    awk '/^(FAIL|XPASS): / { print "'$L'",$2; }' $LOG || exit 1
!   else
!    awk '/^FAIL: / { print "'$L'",$2; }' $LOG || exit 1
!   fi
  done | sort | uniq > $FAILED || exit 1
  comm -12 $FAILED $PASSES >> $REGRESS || exit 1
  NUMREGRESS=`wc -l < $REGRESS | tr -d ' '`
diff -Nrcpad gcc-13.2.0/contrib/regression/mkindex.pl gcc-14.1.0/contrib/regression/mkindex.pl
*** gcc-13.2.0/contrib/regression/mkindex.pl	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/regression/mkindex.pl	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  #!/usr/bin/perl
  
  # Copy log files from a GCC build for HTTP access.
! # Copyright (C) 2008-2023 Free Software Foundation, Inc.
  # 
  # This program is free software: you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,7 ----
  #!/usr/bin/perl
  
  # Copy log files from a GCC build for HTTP access.
! # Copyright (C) 2008-2024 Free Software Foundation, Inc.
  # 
  # This program is free software: you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/regression/objs-gcc.sh gcc-14.1.0/contrib/regression/objs-gcc.sh
*** gcc-13.2.0/contrib/regression/objs-gcc.sh	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/regression/objs-gcc.sh	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  #!/bin/sh
  
  #  Build tools for testing GCC.
! #  Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  #  This program is free software; you can redistribute it and/or modify
  #  it under the terms of the GNU General Public License as published by
--- 1,7 ----
  #!/bin/sh
  
  #  Build tools for testing GCC.
! #  Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  #  This program is free software; you can redistribute it and/or modify
  #  it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/repro_fail gcc-14.1.0/contrib/repro_fail
*** gcc-13.2.0/contrib/repro_fail	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/repro_fail	Tue May  7 06:51:37 2024
*************** if [ $# -lt 2 ] ; then
*** 42,51 ****
      exit 1
  fi
  
! if [ "$1" == "--debug" ] ; then
      debug_args="-wrapper gdb,--args"
      shift
! elif [ "$1" == "--debug-tui" ] ; then
      debug_args="-wrapper gdb,--tui,--args"
      shift
  else
--- 42,51 ----
      exit 1
  fi
  
! if [ "$1" = "--debug" ] ; then
      debug_args="-wrapper gdb,--args"
      shift
! elif [ "$1" = "--debug-tui" ] ; then
      debug_args="-wrapper gdb,--tui,--args"
      shift
  else
diff -Nrcpad gcc-13.2.0/contrib/test_installed gcc-14.1.0/contrib/test_installed
*** gcc-13.2.0/contrib/test_installed	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/test_installed	Tue May  7 06:51:37 2024
*************** while true; do
*** 60,66 ****
  
    --help) cat <<\EOF
  Runs the testsuite for an installed version of gcc/g++/gfortran/objc
! Copyright (C) 1998-2023 Free Software Foundation, Inc.
  by Alexandre Oliva <oliva@dcc.unicamp.br>
  
  Supported arguments:
--- 60,66 ----
  
    --help) cat <<\EOF
  Runs the testsuite for an installed version of gcc/g++/gfortran/objc
! Copyright (C) 1998-2024 Free Software Foundation, Inc.
  by Alexandre Oliva <oliva@dcc.unicamp.br>
  
  Supported arguments:
*************** set GCC_UNDER_TEST "${GCC_UNDER_TEST-${p
*** 114,119 ****
--- 114,123 ----
  set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}g++}"
  set GFORTRAN_UNDER_TEST "${GFORTRAN_UNDER_TEST-${prefix}${prefix+/bin/}gfortran}"
  set OBJC_UNDER_TEST "${OBJC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
+ set HOSTCC "${HOSTCC-cc}"
+ set HOSTCXX "${HOSTCXX-c++}"
+ set HOSTCFLAGS ""
+ set HOSTCXXFLAGS ""
  EOF
  if test x${target} != x; then
    echo "set target_triplet $target" >> site.exp
diff -Nrcpad gcc-13.2.0/contrib/test_mklog.py gcc-14.1.0/contrib/test_mklog.py
*** gcc-13.2.0/contrib/test_mklog.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/test_mklog.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** index aab79492357..f0df1002488 100644
*** 155,161 ****
  +
  +
   /* Interprocedural Identical Code Folding pass
!     Copyright (C) 2014-2023 Free Software Foundation, Inc.
   
  diff --git a/gcc/testsuite/gcc.dg/pr32374.c b/gcc/testsuite/gcc.dg/pr32374.c
  deleted file mode 100644
--- 155,161 ----
  +
  +
   /* Interprocedural Identical Code Folding pass
!     Copyright (C) 2014-2024 Free Software Foundation, Inc.
   
  diff --git a/gcc/testsuite/gcc.dg/pr32374.c b/gcc/testsuite/gcc.dg/pr32374.c
  deleted file mode 100644
*************** index f062e48071f..fd3c7ca8cf3 100644
*** 222,228 ****
  +
  +
   /* Output variables, constants and external declarations, for GNU compiler.
!     Copyright (C) 1987-2023 Free Software Foundation, Inc.
   
  diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c
  index 4ad78c1f77b..6687b368038 100644
--- 222,228 ----
  +
  +
   /* Output variables, constants and external declarations, for GNU compiler.
!     Copyright (C) 1987-2024 Free Software Foundation, Inc.
   
  diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c
  index 4ad78c1f77b..6687b368038 100644
*************** rename to gcc/ipa-icf2.c
*** 400,406 ****
  EXPECTED8 = '''\
  gcc/ChangeLog:
  
! 	* ipa-icf.c: Moved to...
  	* ipa-icf2.c: ...here.
  
  '''
--- 400,406 ----
  EXPECTED8 = '''\
  gcc/ChangeLog:
  
! 	* ipa-icf.c: Move to...
  	* ipa-icf2.c: ...here.
  
  '''
diff -Nrcpad gcc-13.2.0/contrib/testsuite-management/validate_failures.py gcc-14.1.0/contrib/testsuite-management/validate_failures.py
*** gcc-13.2.0/contrib/testsuite-management/validate_failures.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/testsuite-management/validate_failures.py	Tue May  7 06:51:37 2024
***************
*** 5,11 ****
  
  # Contributed by Diego Novillo <dnovillo@google.com>
  #
! # Copyright (C) 2011-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  
  # Contributed by Diego Novillo <dnovillo@google.com>
  #
! # Copyright (C) 2011-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** import os
*** 60,68 ****
  import re
  import sys
  
- # Handled test results.
  _VALID_TEST_RESULTS = [ 'FAIL', 'UNRESOLVED', 'XPASS', 'ERROR' ]
! _VALID_TEST_RESULTS_REX = re.compile("%s" % "|".join(_VALID_TEST_RESULTS))
  
  # Subdirectory of srcdir in which to find the manifest file.
  _MANIFEST_SUBDIR = 'contrib/testsuite-management'
--- 60,81 ----
  import re
  import sys
  
  _VALID_TEST_RESULTS = [ 'FAIL', 'UNRESOLVED', 'XPASS', 'ERROR' ]
! # <STATE>: <NAME> <DESCRIPTION"
! _VALID_TEST_RESULTS_REX = re.compile('(%s):\s*(\S+)\s*(.*)'
!                                      % "|".join(_VALID_TEST_RESULTS))
! 
! # Formats of .sum file sections
! _TOOL_LINE_FORMAT = '\t\t=== %s tests ===\n'
! _EXP_LINE_FORMAT = '\nRunning %s:%s ...\n'
! _SUMMARY_LINE_FORMAT = '\n\t\t=== %s Summary ===\n'
! 
! # ... and their compiled regexs.
! _TOOL_LINE_REX = re.compile('^\t\t=== (.*) tests ===\n')
! # Match .exp file name, optionally prefixed by a "tool:" name and a
! # path ending with "testsuite/"
! _EXP_LINE_REX = re.compile('^Running (?:.*:)?(.*) \.\.\.\n')
! _SUMMARY_LINE_REX = re.compile('^\t\t=== (.*) Summary ===\n')
  
  # Subdirectory of srcdir in which to find the manifest file.
  _MANIFEST_SUBDIR = 'contrib/testsuite-management'
*************** class TestResult(object):
*** 111,130 ****
      ordinal: Monotonically increasing integer.
               It is used to keep results for one .exp file sorted
               by the order the tests were run.
    """
  
!   def __init__(self, summary_line, ordinal=-1):
      try:
        (self.attrs, summary_line) = SplitAttributesFromSummaryLine(summary_line)
        try:
          (self.state,
           self.name,
!          self.description) = re.match(r'([A-Z]+):\s*(\S+)\s*(.*)',
!                                       summary_line).groups()
        except:
!         print('Failed to parse summary line: "%s"' % summary_line)
          raise
        self.ordinal = ordinal
      except ValueError:
        Error('Cannot parse summary line "%s"' % summary_line)
  
--- 124,156 ----
      ordinal: Monotonically increasing integer.
               It is used to keep results for one .exp file sorted
               by the order the tests were run.
+     tool: Top-level testsuite name (aka "tool" in DejaGnu parlance) of the test.
+     exp: Name of .exp testsuite file.
    """
  
!   def __init__(self, summary_line, ordinal, tool, exp):
      try:
        (self.attrs, summary_line) = SplitAttributesFromSummaryLine(summary_line)
        try:
          (self.state,
           self.name,
!          self.description) = _VALID_TEST_RESULTS_REX.match(summary_line).groups()
!         if _OPTIONS.srcpath_regex and _OPTIONS.srcpath_regex != '':
!           self.description = re.sub(_OPTIONS.srcpath_regex, '',
!                                     self.description)
        except:
!         print('Failed to parse summary line: "%s"' % summary_line,
!               file=sys.stderr)
          raise
        self.ordinal = ordinal
+       if tool == None or exp == None:
+         # .sum file seem to be broken.  There was no "tool" and/or "exp"
+         # lines preceding this result.
+         print(f'.sum file seems to be broken: tool="{tool}", exp="{exp}", summary_line="{summary_line}"',
+               file=sys.stderr)
+         raise
+       self.tool = tool
+       self.exp = exp
      except ValueError:
        Error('Cannot parse summary line "%s"' % summary_line)
  
*************** class TestResult(object):
*** 133,146 ****
              self.state, summary_line, self))
  
    def __lt__(self, other):
!     return (self.name < other.name or
!             (self.name == other.name and self.ordinal < other.ordinal))
  
    def __hash__(self):
!     return hash(self.state) ^ hash(self.name) ^ hash(self.description)
  
    def __eq__(self, other):
      return (self.state == other.state and
              self.name == other.name and
              self.description == other.description)
  
--- 159,185 ----
              self.state, summary_line, self))
  
    def __lt__(self, other):
!     if (self.tool != other.tool):
!       return self.tool < other.tool
!     if (self.exp != other.exp):
!       return self.exp < other.exp
!     if (self.name != other.name):
!       return self.name < other.name
!     return self.ordinal < other.ordinal
  
    def __hash__(self):
!     return (hash(self.state) ^ hash(self.tool) ^ hash(self.exp)
!             ^ hash(self.name) ^ hash(self.description))
  
+   # Note that we don't include "attrs" in this comparison.  This means that
+   # result entries "FAIL: test" and "flaky | FAIL: test" are considered
+   # the same.  Therefore the ResultSet will preserve only the first occurence.
+   # In practice this means that flaky entries should preceed expected fails
+   # entries.
    def __eq__(self, other):
      return (self.state == other.state and
+             self.tool == other.tool and
+             self.exp == other.exp and
              self.name == other.name and
              self.description == other.description)
  
*************** class TestResult(object):
*** 170,178 ****
      # Return True if the expiration date of this result has passed.
      expiration_date = self.ExpirationDate()
      if expiration_date:
!       now = datetime.date.today()
!       return now > expiration_date
  
  
  def GetMakefileValue(makefile_name, value_name):
    if os.path.exists(makefile_name):
--- 209,263 ----
      # Return True if the expiration date of this result has passed.
      expiration_date = self.ExpirationDate()
      if expiration_date:
!       return _OPTIONS.expiry_today_date > expiration_date
! 
! 
! class ResultSet(set):
!   """Describes a set of DejaGNU test results.
!   This set can be read in from .sum files or emitted as a manifest.
  
+   Attributes:
+     current_tool: Name of the current top-level DejaGnu testsuite.
+     current_exp: Name of the current .exp testsuite file.
+     testsuites: A set of (tool, exp) tuples representing encountered testsuites.
+   """
+ 
+   def __init__(self):
+     super().__init__()
+     self.ResetToolExp()
+     self.testsuites=set()
+ 
+   def update(self, other):
+     super().update(other)
+     self.testsuites.update(other.testsuites)
+ 
+   def ResetToolExp(self):
+     self.current_tool = None
+     self.current_exp = None
+ 
+   def MakeTestResult(self, summary_line, ordinal=-1):
+     return TestResult(summary_line, ordinal,
+                       self.current_tool, self.current_exp)
+ 
+   def Print(self, outfile=sys.stdout):
+     current_tool = None
+     current_exp = None
+ 
+     for result in sorted(self):
+       if current_tool != result.tool:
+         current_tool = result.tool
+         outfile.write(_TOOL_LINE_FORMAT % current_tool)
+       if current_exp != result.exp:
+         current_exp = result.exp
+         outfile.write(_EXP_LINE_FORMAT % (current_tool, current_exp))
+       outfile.write('%s\n' % result)
+ 
+     outfile.write(_SUMMARY_LINE_FORMAT % 'Results')
+ 
+   # Check if testsuite of expected_result is present in current results.
+   # This is used to compare partial test results against a full manifest.
+   def HasTestsuite(self, expected_result):
+     return (expected_result.tool, expected_result.exp) in self.testsuites
  
  def GetMakefileValue(makefile_name, value_name):
    if os.path.exists(makefile_name):
*************** def SplitAttributesFromSummaryLine(line)
*** 210,219 ****
    return (attrs, line)
  
  
! def IsInterestingResult(line):
    """Return True if line is one of the summary lines we care about."""
    (_, line) = SplitAttributesFromSummaryLine(line)
!   return bool(_VALID_TEST_RESULTS_REX.match(line))
  
  
  def IsInclude(line):
--- 295,329 ----
    return (attrs, line)
  
  
! def IsInterestingResult(result_set, line):
    """Return True if line is one of the summary lines we care about."""
    (_, line) = SplitAttributesFromSummaryLine(line)
!   valid_result = bool(_VALID_TEST_RESULTS_REX.match(line))
! 
!   # If there's no tool defined it means that either the results section hasn't
!   # started yet, or it is already over.
!   if valid_result and result_set.current_tool is None:
!     if _OPTIONS.verbosity >= 3:
!       print(f'WARNING: Result "{line}" found outside sum file boundaries.',
!             file=sys.stderr)
!     return False
! 
!   return valid_result
! 
! 
! def IsToolLine(line):
!   """Return True if line mentions the tool (in DejaGnu terms) for the following tests."""
!   return bool(_TOOL_LINE_REX.match(line))
! 
! 
! def IsExpLine(line):
!   """Return True if line mentions the .exp file for the following tests."""
!   return bool(_EXP_LINE_REX.match(line))
! 
! 
! def IsSummaryLine(line):
!   """Return True if line starts .sum footer."""
!   return bool(_SUMMARY_LINE_REX.match(line))
  
  
  def IsInclude(line):
*************** def GetNegativeResult(line):
*** 241,261 ****
  
  def ParseManifestWorker(result_set, manifest_path):
    """Read manifest_path, adding the contents to result_set."""
!   if _OPTIONS.verbosity >= 1:
      print('Parsing manifest file %s.' % manifest_path)
    manifest_file = open(manifest_path, encoding='latin-1', mode='r')
!   for line in manifest_file:
!     line = line.strip()
      if line == "":
        pass
      elif IsComment(line):
        pass
      elif IsNegativeResult(line):
!       result_set.remove(TestResult(GetNegativeResult(line)))
      elif IsInclude(line):
        ParseManifestWorker(result_set, GetIncludeFile(line, manifest_path))
!     elif IsInterestingResult(line):
!       result_set.add(TestResult(line))
      else:
        Error('Unrecognized line in manifest file: %s' % line)
    manifest_file.close()
--- 351,386 ----
  
  def ParseManifestWorker(result_set, manifest_path):
    """Read manifest_path, adding the contents to result_set."""
!   if _OPTIONS.verbosity >= 5:
      print('Parsing manifest file %s.' % manifest_path)
    manifest_file = open(manifest_path, encoding='latin-1', mode='r')
!   for orig_line in manifest_file:
!     line = orig_line.strip()
      if line == "":
        pass
      elif IsComment(line):
        pass
      elif IsNegativeResult(line):
!       result_set.remove(result_set.MakeTestResult(GetNegativeResult(line)))
      elif IsInclude(line):
        ParseManifestWorker(result_set, GetIncludeFile(line, manifest_path))
!     elif IsInterestingResult(result_set, line):
!       result = result_set.MakeTestResult(line)
!       if result.HasExpired():
!         # Ignore expired manifest entries.
!         if _OPTIONS.verbosity >= 4:
!           print('WARNING: Expected failure "%s" has expired.' % line.strip())
!         continue
!       result_set.add(result)
!     elif IsExpLine(orig_line):
!       result_set.current_exp = _EXP_LINE_REX.match(orig_line).groups()[0]
!       if _OPTIONS.srcpath_regex and _OPTIONS.srcpath_regex != '':
!         result_set.current_exp = re.sub(_OPTIONS.srcpath_regex, '',
!                                         result_set.current_exp)
!     elif IsToolLine(orig_line):
!       result_set.current_tool = _TOOL_LINE_REX.match(orig_line).groups()[0]
!     elif IsSummaryLine(orig_line):
!       result_set.ResetToolExp()
      else:
        Error('Unrecognized line in manifest file: %s' % line)
    manifest_file.close()
*************** def ParseManifestWorker(result_set, mani
*** 263,291 ****
  
  def ParseManifest(manifest_path):
    """Create a set of TestResult instances from the given manifest file."""
!   result_set = set()
    ParseManifestWorker(result_set, manifest_path)
    return result_set
  
  
  def ParseSummary(sum_fname):
    """Create a set of TestResult instances from the given summary file."""
!   result_set = set()
    # ordinal is used when sorting the results so that tests within each
    # .exp file are kept sorted.
    ordinal=0
    sum_file = open(sum_fname, encoding='latin-1', mode='r')
    for line in sum_file:
!     if IsInterestingResult(line):
!       result = TestResult(line, ordinal)
        ordinal += 1
        if result.HasExpired():
          # Tests that have expired are not added to the set of expected
          # results. If they are still present in the set of actual results,
          # they will cause an error to be reported.
!         print('WARNING: Expected failure "%s" has expired.' % line.strip())
          continue
        result_set.add(result)
    sum_file.close()
    return result_set
  
--- 388,431 ----
  
  def ParseManifest(manifest_path):
    """Create a set of TestResult instances from the given manifest file."""
!   result_set = ResultSet()
    ParseManifestWorker(result_set, manifest_path)
    return result_set
  
  
  def ParseSummary(sum_fname):
    """Create a set of TestResult instances from the given summary file."""
!   result_set = ResultSet()
    # ordinal is used when sorting the results so that tests within each
    # .exp file are kept sorted.
    ordinal=0
    sum_file = open(sum_fname, encoding='latin-1', mode='r')
    for line in sum_file:
!     if IsInterestingResult(result_set, line):
!       result = result_set.MakeTestResult(line, ordinal)
        ordinal += 1
        if result.HasExpired():
+         # ??? What is the use-case for this?  How "expiry" annotations are
+         # ??? supposed to be added to .sum results?
          # Tests that have expired are not added to the set of expected
          # results. If they are still present in the set of actual results,
          # they will cause an error to be reported.
!         if _OPTIONS.verbosity >= 4:
!           print('WARNING: Expected failure "%s" has expired.' % line.strip())
          continue
        result_set.add(result)
+     elif IsExpLine(line):
+       result_set.current_exp = _EXP_LINE_REX.match(line).groups()[0]
+       if _OPTIONS.srcpath_regex and _OPTIONS.srcpath_regex != '':
+         result_set.current_exp = re.sub(_OPTIONS.srcpath_regex, '',
+                                         result_set.current_exp)
+       result_set.testsuites.add((result_set.current_tool,
+                                  result_set.current_exp))
+     elif IsToolLine(line):
+       result_set.current_tool = _TOOL_LINE_REX.match(line).groups()[0]
+       result_set.current_exp = None
+     elif IsSummaryLine(line):
+       result_set.ResetToolExp()
    sum_file.close()
    return result_set
  
*************** def GetManifest(manifest_path):
*** 301,307 ****
    if os.path.exists(manifest_path):
      return ParseManifest(manifest_path)
    else:
!     return set()
  
  
  def CollectSumFiles(builddir):
--- 441,447 ----
    if os.path.exists(manifest_path):
      return ParseManifest(manifest_path)
    else:
!     return ResultSet()
  
  
  def CollectSumFiles(builddir):
*************** def CollectSumFiles(builddir):
*** 316,327 ****
    return sum_files
  
  
! def GetResults(sum_files):
    """Collect all the test results from the given .sum files."""
!   build_results = set()
    for sum_fname in sum_files:
!     print('\t%s' % sum_fname)
!     build_results |= ParseSummary(sum_fname)
    return build_results
  
  
--- 456,469 ----
    return sum_files
  
  
! def GetResults(sum_files, build_results = None):
    """Collect all the test results from the given .sum files."""
!   if build_results == None:
!     build_results = ResultSet()
    for sum_fname in sum_files:
!     if _OPTIONS.verbosity >= 3:
!       print('\t%s' % sum_fname)
!     build_results.update(ParseSummary(sum_fname))
    return build_results
  
  
*************** def CompareResults(manifest, actual):
*** 332,338 ****
    """
    # Collect all the actual results not present in the manifest.
    # Results in this set will be reported as errors.
!   actual_vs_manifest = set()
    for actual_result in actual:
      if actual_result not in manifest:
        actual_vs_manifest.add(actual_result)
--- 474,480 ----
    """
    # Collect all the actual results not present in the manifest.
    # Results in this set will be reported as errors.
!   actual_vs_manifest = ResultSet()
    for actual_result in actual:
      if actual_result not in manifest:
        actual_vs_manifest.add(actual_result)
*************** def CompareResults(manifest, actual):
*** 341,358 ****
    # in the actual results.
    # Results in this set will be reported as warnings (since
    # they are expected failures that are not failing anymore).
!   manifest_vs_actual = set()
    for expected_result in manifest:
      # Ignore tests marked flaky.
      if 'flaky' in expected_result.attrs:
        continue
!     if expected_result not in actual:
        manifest_vs_actual.add(expected_result)
  
    return actual_vs_manifest, manifest_vs_actual
  
  
! def GetManifestPath(srcdir, target, user_provided_must_exist):
    """Return the full path to the manifest file."""
    manifest_path = _OPTIONS.manifest
    if manifest_path:
--- 483,504 ----
    # in the actual results.
    # Results in this set will be reported as warnings (since
    # they are expected failures that are not failing anymore).
!   manifest_vs_actual = ResultSet()
    for expected_result in manifest:
      # Ignore tests marked flaky.
      if 'flaky' in expected_result.attrs:
        continue
!     # We try to support comparing partial results vs full manifest
!     # (e.g., manifest has failures for gcc, g++, gfortran, but we ran only
!     # g++ testsuite).  To achieve this we record encountered testsuites in
!     # actual.testsuites set, and then we check it here using HasTestsuite().
!     if expected_result not in actual and actual.HasTestsuite(expected_result):
        manifest_vs_actual.add(expected_result)
  
    return actual_vs_manifest, manifest_vs_actual
  
  
! def GetManifestPath(user_provided_must_exist):
    """Return the full path to the manifest file."""
    manifest_path = _OPTIONS.manifest
    if manifest_path:
*************** def GetManifestPath(srcdir, target, user
*** 360,365 ****
--- 506,512 ----
        Error('Manifest does not exist: %s' % manifest_path)
      return manifest_path
    else:
+     (srcdir, target) = GetBuildData()
      if not srcdir:
        Error('Could not determine the location of GCC\'s source tree. '
              'The Makefile does not contain a definition for "srcdir".')
*************** def GetBuildData():
*** 383,450 ****
        return None, None
    srcdir = GetMakefileValue('%s/Makefile' % _OPTIONS.build_dir, 'srcdir =')
    target = GetMakefileValue('%s/Makefile' % _OPTIONS.build_dir, 'target_alias=')
!   print('Source directory: %s' % srcdir)
!   print('Build target:     %s' % target)
    return srcdir, target
  
  
! def PrintSummary(msg, summary):
!   print('\n\n%s' % msg)
!   for result in sorted(summary):
!     print(result)
! 
  
  def GetSumFiles(results, build_dir):
    if not results:
!     print('Getting actual results from build directory %s' % build_dir)
      sum_files = CollectSumFiles(build_dir)
    else:
!     print('Getting actual results from user-provided results')
      sum_files = results.split()
    return sum_files
  
  
! def PerformComparison(expected, actual, ignore_missing_failures):
    actual_vs_expected, expected_vs_actual = CompareResults(expected, actual)
  
    tests_ok = True
    if len(actual_vs_expected) > 0:
!     PrintSummary('Unexpected results in this build (new failures)',
!                  actual_vs_expected)
      tests_ok = False
  
!   if not ignore_missing_failures and len(expected_vs_actual) > 0:
!     PrintSummary('Expected results not present in this build (fixed tests)'
!                  '\n\nNOTE: This is not a failure.  It just means that these '
!                  'tests were expected\nto fail, but either they worked in '
!                  'this configuration or they were not\npresent at all.\n',
!                  expected_vs_actual)
  
!   if tests_ok:
      print('\nSUCCESS: No unexpected failures.')
  
    return tests_ok
  
  
  def CheckExpectedResults():
!   srcdir, target = GetBuildData()
!   manifest_path = GetManifestPath(srcdir, target, True)
!   print('Manifest:         %s' % manifest_path)
    manifest = GetManifest(manifest_path)
    sum_files = GetSumFiles(_OPTIONS.results, _OPTIONS.build_dir)
    actual = GetResults(sum_files)
  
!   if _OPTIONS.verbosity >= 1:
!     PrintSummary('Tests expected to fail', manifest)
!     PrintSummary('\nActual test results', actual)
  
!   return PerformComparison(manifest, actual, _OPTIONS.ignore_missing_failures)
  
  
  def ProduceManifest():
!   (srcdir, target) = GetBuildData()
!   manifest_path = GetManifestPath(srcdir, target, False)
!   print('Manifest:         %s' % manifest_path)
    if os.path.exists(manifest_path) and not _OPTIONS.force:
      Error('Manifest file %s already exists.\nUse --force to overwrite.' %
            manifest_path)
--- 530,608 ----
        return None, None
    srcdir = GetMakefileValue('%s/Makefile' % _OPTIONS.build_dir, 'srcdir =')
    target = GetMakefileValue('%s/Makefile' % _OPTIONS.build_dir, 'target_alias=')
!   if _OPTIONS.verbosity >= 3:
!     print('Source directory: %s' % srcdir)
!     print('Build target:     %s' % target)
    return srcdir, target
  
  
! def PrintSummary(summary):
!   summary.Print()
  
  def GetSumFiles(results, build_dir):
    if not results:
!     if _OPTIONS.verbosity >= 3:
!       print('Getting actual results from build directory %s' % build_dir)
      sum_files = CollectSumFiles(build_dir)
    else:
!     if _OPTIONS.verbosity >= 3:
!       print('Getting actual results from user-provided results')
      sum_files = results.split()
    return sum_files
  
  
! def PerformComparison(expected, actual):
    actual_vs_expected, expected_vs_actual = CompareResults(expected, actual)
  
+   if _OPTIONS.inverse_match:
+     # Switch results if inverse comparison is requested.
+     # This is useful in detecting flaky tests that FAILed in expected set,
+     # but PASSed in actual set.
+     actual_vs_expected, expected_vs_actual \
+       = expected_vs_actual, actual_vs_expected
+ 
    tests_ok = True
    if len(actual_vs_expected) > 0:
!     if _OPTIONS.verbosity >= 3:
!       print('\n\nUnexpected results in this build (new failures)')
!     if _OPTIONS.verbosity >= 1:
!       PrintSummary(actual_vs_expected)
      tests_ok = False
  
!   if _OPTIONS.verbosity >= 2 and len(expected_vs_actual) > 0:
!     print('\n\nExpected results not present in this build (fixed tests)'
!           '\n\nNOTE: This is not a failure.  It just means that these '
!           'tests were expected\nto fail, but either they worked in '
!           'this configuration or they were not\npresent at all.\n')
!     PrintSummary(expected_vs_actual)
  
!   if tests_ok and _OPTIONS.verbosity >= 3:
      print('\nSUCCESS: No unexpected failures.')
  
    return tests_ok
  
  
  def CheckExpectedResults():
!   manifest_path = GetManifestPath(True)
!   if _OPTIONS.verbosity >= 3:
!     print('Manifest:         %s' % manifest_path)
    manifest = GetManifest(manifest_path)
    sum_files = GetSumFiles(_OPTIONS.results, _OPTIONS.build_dir)
    actual = GetResults(sum_files)
  
!   if _OPTIONS.verbosity >= 5:
!     print('\n\nTests expected to fail')
!     PrintSummary(manifest)
!     print('\n\nActual test results')
!     PrintSummary(actual)
  
!   return PerformComparison(manifest, actual)
  
  
  def ProduceManifest():
!   manifest_path = GetManifestPath(False)
!   if _OPTIONS.verbosity >= 3:
!     print('Manifest:         %s' % manifest_path)
    if os.path.exists(manifest_path) and not _OPTIONS.force:
      Error('Manifest file %s already exists.\nUse --force to overwrite.' %
            manifest_path)
*************** def ProduceManifest():
*** 452,475 ****
    sum_files = GetSumFiles(_OPTIONS.results, _OPTIONS.build_dir)
    actual = GetResults(sum_files)
    manifest_file = open(manifest_path, encoding='latin-1', mode='w')
!   for result in sorted(actual):
!     print(result)
!     manifest_file.write('%s\n' % result)
    manifest_file.close()
  
    return True
  
  
  def CompareBuilds():
-   (srcdir, target) = GetBuildData()
- 
    sum_files = GetSumFiles(_OPTIONS.results, _OPTIONS.build_dir)
    actual = GetResults(sum_files)
  
    clean_sum_files = GetSumFiles(_OPTIONS.results, _OPTIONS.clean_build)
!   clean = GetResults(clean_sum_files)
  
!   return PerformComparison(clean, actual, _OPTIONS.ignore_missing_failures)
  
  
  def Main(argv):
--- 610,638 ----
    sum_files = GetSumFiles(_OPTIONS.results, _OPTIONS.build_dir)
    actual = GetResults(sum_files)
    manifest_file = open(manifest_path, encoding='latin-1', mode='w')
!   actual.Print(manifest_file)
!   actual.Print()
    manifest_file.close()
  
    return True
  
  
  def CompareBuilds():
    sum_files = GetSumFiles(_OPTIONS.results, _OPTIONS.build_dir)
    actual = GetResults(sum_files)
  
+   clean = ResultSet()
+ 
+   if _OPTIONS.manifest:
+     manifest_path = GetManifestPath(True)
+     if _OPTIONS.verbosity >= 3:
+       print('Manifest:         %s' % manifest_path)
+     clean = GetManifest(manifest_path)
+ 
    clean_sum_files = GetSumFiles(_OPTIONS.results, _OPTIONS.clean_build)
!   clean = GetResults(clean_sum_files, clean)
  
!   return PerformComparison(clean, actual)
  
  
  def Main(argv):
*************** def Main(argv):
*** 491,503 ****
                      default=False, help='When used with --produce_manifest, '
                      'it will overwrite an existing manifest file '
                      '(default = False)')
!   parser.add_option('--ignore_missing_failures', action='store_true',
!                     dest='ignore_missing_failures', default=False,
!                     help='When a failure is expected in the manifest but '
!                     'it is not found in the actual results, the script '
!                     'produces a note alerting to this fact. This means '
!                     'that the expected failure has been fixed, or '
!                     'it did not run, or it may simply be flaky '
                      '(default = False)')
    parser.add_option('--manifest', action='store', type='string',
                      dest='manifest', default=None,
--- 654,676 ----
                      default=False, help='When used with --produce_manifest, '
                      'it will overwrite an existing manifest file '
                      '(default = False)')
!   parser.add_option('--expiry_date', action='store',
!                     dest='expiry_today_date', default=None,
!                     help='Use provided date YYYYMMDD to decide whether '
!                     'manifest entries with expiry settings have expired '
!                     'or not. (default = Use today date)')
!   parser.add_option('--srcpath', action='store', type='string',
!                     dest='srcpath_regex', default='[^ ]+/testsuite/',
!                     help='Remove provided path (can be a regex) from '
!                     'the result entries.  This is useful to remove '
!                     'occasional filesystem path from the results. '
!                     '(default = "[^ ]+/testsuite/")')
!   parser.add_option('--inverse_match', action='store_true',
!                     dest='inverse_match', default=False,
!                     help='Inverse result sets in comparison. '
!                     'Output unexpected passes as unexpected failures and '
!                     'unexpected failures as unexpected passes. '
!                     'This is used to catch FAIL->PASS flaky tests. '
                      '(default = False)')
    parser.add_option('--manifest', action='store', type='string',
                      dest='manifest', default=None,
*************** def Main(argv):
*** 515,524 ****
                      'starting with FAIL, XPASS or UNRESOLVED (default = '
                      '.sum files collected from the build directory).')
    parser.add_option('--verbosity', action='store', dest='verbosity',
!                     type='int', default=0, help='Verbosity level (default = 0)')
    global _OPTIONS
    (_OPTIONS, _) = parser.parse_args(argv[1:])
  
    if _OPTIONS.produce_manifest:
      retval = ProduceManifest()
    elif _OPTIONS.clean_build:
--- 688,720 ----
                      'starting with FAIL, XPASS or UNRESOLVED (default = '
                      '.sum files collected from the build directory).')
    parser.add_option('--verbosity', action='store', dest='verbosity',
!                     type='int', default=3, help='Verbosity level '
!                     '(default = 3). Level 0: only error output, this is '
!                     'useful in scripting when only the exit code is used. '
!                     'Level 1: output unexpected failures. '
!                     'Level 2: output unexpected passes. '
!                     'Level 3: output helpful information. '
!                     'Level 4: output notification on expired entries. '
!                     'Level 5: output debug information.')
    global _OPTIONS
    (_OPTIONS, _) = parser.parse_args(argv[1:])
  
+   # Set "today" date to compare expiration entries against.
+   # Setting expiration date into the future allows re-detection of flaky
+   # tests and creating fresh entries for them before the current flaky entries
+   # expire.
+   if _OPTIONS.expiry_today_date:
+     today_date = re.search(r'(\d\d\d\d)(\d\d)(\d\d)',
+                            _OPTIONS.expiry_today_date)
+     if not today_date:
+         Error('Invalid --expiry_today_date format "%s".  Must be of the form '
+               '"expire=YYYYMMDD"' % _OPTIONS.expiry_today_date)
+     _OPTIONS.expiry_today_date=datetime.date(int(today_date.group(1)),
+                                              int(today_date.group(2)),
+                                              int(today_date.group(3)))
+   else:
+     _OPTIONS.expiry_today_date = datetime.date.today()
+ 
    if _OPTIONS.produce_manifest:
      retval = ProduceManifest()
    elif _OPTIONS.clean_build:
*************** def Main(argv):
*** 529,535 ****
    if retval:
      return 0
    else:
!     return 1
  
  
  if __name__ == '__main__':
--- 725,731 ----
    if retval:
      return 0
    else:
!     return 2
  
  
  if __name__ == '__main__':
diff -Nrcpad gcc-13.2.0/contrib/texi2pod.pl gcc-14.1.0/contrib/texi2pod.pl
*** gcc-13.2.0/contrib/texi2pod.pl	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/texi2pod.pl	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #! /usr/bin/perl -w
  
! #   Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  # This file is part of GCC.
  
--- 1,6 ----
  #! /usr/bin/perl -w
  
! #   Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  # This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/contrib/unicode/DerivedCoreProperties.txt gcc-14.1.0/contrib/unicode/DerivedCoreProperties.txt
*** gcc-13.2.0/contrib/unicode/DerivedCoreProperties.txt	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/DerivedCoreProperties.txt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
! # DerivedCoreProperties-15.0.0.txt
! # Date: 2022-08-05, 22:17:05 GMT
! # © 2022 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
--- 1,6 ----
! # DerivedCoreProperties-15.1.0.txt
! # Date: 2023-08-07, 15:21:24 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1397,1407 ****
  2B740..2B81D  ; Alphabetic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; Alphabetic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Alphabetic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2F800..2FA1D  ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Alphabetic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Alphabetic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 137765
  
  # ================================================
  
--- 1397,1408 ----
  2B740..2B81D  ; Alphabetic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; Alphabetic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Alphabetic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; Alphabetic # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Alphabetic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Alphabetic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 138387
  
  # ================================================
  
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6853,6863 ****
  2B740..2B81D  ; ID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; ID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; ID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2F800..2FA1D  ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; ID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; ID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 136345
  
  # ================================================
  
--- 6854,6865 ----
  2B740..2B81D  ; ID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; ID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; ID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; ID_Start # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; ID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; ID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 136967
  
  # ================================================
  
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 7438,7443 ****
--- 7440,7446 ----
  1FE0..1FEC    ; ID_Continue # L&  [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
  1FF2..1FF4    ; ID_Continue # L&   [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
  1FF6..1FFC    ; ID_Continue # L&   [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+ 200C..200D    ; ID_Continue # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
  203F..2040    ; ID_Continue # Pc   [2] UNDERTIE..CHARACTER TIE
  2054          ; ID_Continue # Pc       INVERTED UNDERTIE
  2071          ; ID_Continue # Lm       SUPERSCRIPT LATIN SMALL LETTER I
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 7504,7509 ****
--- 7507,7513 ----
  309D..309E    ; ID_Continue # Lm   [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
  309F          ; ID_Continue # Lo       HIRAGANA DIGRAPH YORI
  30A1..30FA    ; ID_Continue # Lo  [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+ 30FB          ; ID_Continue # Po       KATAKANA MIDDLE DOT
  30FC..30FE    ; ID_Continue # Lm   [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
  30FF          ; ID_Continue # Lo       KATAKANA DIGRAPH KOTO
  3105..312F    ; ID_Continue # Lo  [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
*************** FF10..FF19    ; ID_Continue # Nd  [10] F
*** 7683,7688 ****
--- 7687,7693 ----
  FF21..FF3A    ; ID_Continue # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
  FF3F          ; ID_Continue # Pc       FULLWIDTH LOW LINE
  FF41..FF5A    ; ID_Continue # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+ FF65          ; ID_Continue # Po       HALFWIDTH KATAKANA MIDDLE DOT
  FF66..FF6F    ; ID_Continue # Lo  [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
  FF70          ; ID_Continue # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
  FF71..FF9D    ; ID_Continue # Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8207,8218 ****
  2B740..2B81D  ; ID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; ID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; ID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2F800..2FA1D  ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; ID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; ID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 139482
  
  # ================================================
  
--- 8212,8224 ----
  2B740..2B81D  ; ID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; ID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; ID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; ID_Continue # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; ID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; ID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 140108
  
  # ================================================
  
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8962,8972 ****
  2B740..2B81D  ; XID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; XID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; XID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2F800..2FA1D  ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; XID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; XID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 136322
  
  # ================================================
  
--- 8968,8979 ----
  2B740..2B81D  ; XID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; XID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; XID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; XID_Start # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; XID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; XID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 136944
  
  # ================================================
  
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9543,9548 ****
--- 9550,9556 ----
  1FE0..1FEC    ; XID_Continue # L&  [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
  1FF2..1FF4    ; XID_Continue # L&   [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
  1FF6..1FFC    ; XID_Continue # L&   [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+ 200C..200D    ; XID_Continue # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
  203F..2040    ; XID_Continue # Pc   [2] UNDERTIE..CHARACTER TIE
  2054          ; XID_Continue # Pc       INVERTED UNDERTIE
  2071          ; XID_Continue # Lm       SUPERSCRIPT LATIN SMALL LETTER I
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9608,9613 ****
--- 9616,9622 ----
  309D..309E    ; XID_Continue # Lm   [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
  309F          ; XID_Continue # Lo       HIRAGANA DIGRAPH YORI
  30A1..30FA    ; XID_Continue # Lo  [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+ 30FB          ; XID_Continue # Po       KATAKANA MIDDLE DOT
  30FC..30FE    ; XID_Continue # Lm   [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
  30FF          ; XID_Continue # Lo       KATAKANA DIGRAPH KOTO
  3105..312F    ; XID_Continue # Lo  [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
*************** FF10..FF19    ; XID_Continue # Nd  [10]
*** 9793,9798 ****
--- 9802,9808 ----
  FF21..FF3A    ; XID_Continue # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
  FF3F          ; XID_Continue # Pc       FULLWIDTH LOW LINE
  FF41..FF5A    ; XID_Continue # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+ FF65          ; XID_Continue # Po       HALFWIDTH KATAKANA MIDDLE DOT
  FF66..FF6F    ; XID_Continue # Lo  [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
  FF70          ; XID_Continue # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
  FF71..FF9D    ; XID_Continue # Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10317,10328 ****
  2B740..2B81D  ; XID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; XID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; XID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2F800..2FA1D  ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; XID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; XID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  E0100..E01EF  ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 139463
  
  # ================================================
  
--- 10327,10339 ----
  2B740..2B81D  ; XID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; XID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; XID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; XID_Continue # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; XID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; XID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  E0100..E01EF  ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 140089
  
  # ================================================
  
*************** E0100..E01EF  ; XID_Continue # Mn [240]
*** 10335,10340 ****
--- 10346,10360 ----
  #  - FFF9..FFFB (Interlinear annotation format characters)
  #  - 13430..13440 (Egyptian hieroglyph format characters)
  #  - Prepended_Concatenation_Mark (Exceptional format characters that should be visible)
+ #
+ # There are currently no stability guarantees for DICP. However, the
+ # values of DICP interact with the derivation of XID_Continue
+ # and NFKC_CF, for which there are stability guarantees.
+ # Maintainers of this property should note that in the
+ # unlikely case that the DICP value changes for an existing character
+ # which is also XID_Continue=Yes, then exceptions must be put
+ # in place to ensure that the NFKC_CF mapping value for that
+ # existing character does not change.
  
  00AD          ; Default_Ignorable_Code_Point # Cf       SOFT HYPHEN
  034F          ; Default_Ignorable_Code_Point # Mn       COMBINING GRAPHEME JOINER
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11602,11608 ****
  2E80..2E99    ; Grapheme_Base # So  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
  2E9B..2EF3    ; Grapheme_Base # So  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
  2F00..2FD5    ; Grapheme_Base # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
! 2FF0..2FFB    ; Grapheme_Base # So  [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
  3000          ; Grapheme_Base # Zs       IDEOGRAPHIC SPACE
  3001..3003    ; Grapheme_Base # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
  3004          ; Grapheme_Base # So       JAPANESE INDUSTRIAL STANDARD SYMBOL
--- 11622,11628 ----
  2E80..2E99    ; Grapheme_Base # So  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
  2E9B..2EF3    ; Grapheme_Base # So  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
  2F00..2FD5    ; Grapheme_Base # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
! 2FF0..2FFF    ; Grapheme_Base # So  [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
  3000          ; Grapheme_Base # Zs       IDEOGRAPHIC SPACE
  3001..3003    ; Grapheme_Base # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
  3004          ; Grapheme_Base # So       JAPANESE INDUSTRIAL STANDARD SYMBOL
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11657,11662 ****
--- 11677,11683 ----
  3196..319F    ; Grapheme_Base # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
  31A0..31BF    ; Grapheme_Base # Lo  [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
  31C0..31E3    ; Grapheme_Base # So  [36] CJK STROKE T..CJK STROKE Q
+ 31EF          ; Grapheme_Base # So       IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
  31F0..31FF    ; Grapheme_Base # Lo  [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
  3200..321E    ; Grapheme_Base # So  [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
  3220..3229    ; Grapheme_Base # No  [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12497,12507 ****
  2B740..2B81D  ; Grapheme_Base # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; Grapheme_Base # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Grapheme_Base # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2F800..2FA1D  ; Grapheme_Base # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Grapheme_Base # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Grapheme_Base # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 146986
  
  # ================================================
  
--- 12518,12529 ----
  2B740..2B81D  ; Grapheme_Base # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; Grapheme_Base # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Grapheme_Base # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; Grapheme_Base # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Grapheme_Base # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Grapheme_Base # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Grapheme_Base # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 147613
  
  # ================================================
  
*************** ABED          ; Grapheme_Link # Mn
*** 12572,12575 ****
--- 12594,12832 ----
  
  # Total code points: 65
  
+ # ================================================
+ 
+ # Derived Property: Indic_Conjunct_Break
+ #  Generated from the Grapheme_Cluster_Break, Indic_Syllabic_Category,
+ #  Canonical_Combining_Class, and Script properties as described in UAX #44:
+ #  https://www.unicode.org/reports/tr44/.
+ 
+ #  All code points not explicitly listed for Indic_Conjunct_Break
+ #  have the value None.
+ 
+ # @missing: 0000..10FFFF; InCB; None
+ 
+ # ================================================
+ 
+ # Indic_Conjunct_Break=Linker
+ 
+ 094D          ; InCB; Linker # Mn       DEVANAGARI SIGN VIRAMA
+ 09CD          ; InCB; Linker # Mn       BENGALI SIGN VIRAMA
+ 0ACD          ; InCB; Linker # Mn       GUJARATI SIGN VIRAMA
+ 0B4D          ; InCB; Linker # Mn       ORIYA SIGN VIRAMA
+ 0C4D          ; InCB; Linker # Mn       TELUGU SIGN VIRAMA
+ 0D4D          ; InCB; Linker # Mn       MALAYALAM SIGN VIRAMA
+ 
+ # Total code points: 6
+ 
+ # ================================================
+ 
+ # Indic_Conjunct_Break=Consonant
+ 
+ 0915..0939    ; InCB; Consonant # Lo  [37] DEVANAGARI LETTER KA..DEVANAGARI LETTER HA
+ 0958..095F    ; InCB; Consonant # Lo   [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+ 0978..097F    ; InCB; Consonant # Lo   [8] DEVANAGARI LETTER MARWARI DDA..DEVANAGARI LETTER BBA
+ 0995..09A8    ; InCB; Consonant # Lo  [20] BENGALI LETTER KA..BENGALI LETTER NA
+ 09AA..09B0    ; InCB; Consonant # Lo   [7] BENGALI LETTER PA..BENGALI LETTER RA
+ 09B2          ; InCB; Consonant # Lo       BENGALI LETTER LA
+ 09B6..09B9    ; InCB; Consonant # Lo   [4] BENGALI LETTER SHA..BENGALI LETTER HA
+ 09DC..09DD    ; InCB; Consonant # Lo   [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+ 09DF          ; InCB; Consonant # Lo       BENGALI LETTER YYA
+ 09F0..09F1    ; InCB; Consonant # Lo   [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+ 0A95..0AA8    ; InCB; Consonant # Lo  [20] GUJARATI LETTER KA..GUJARATI LETTER NA
+ 0AAA..0AB0    ; InCB; Consonant # Lo   [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+ 0AB2..0AB3    ; InCB; Consonant # Lo   [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+ 0AB5..0AB9    ; InCB; Consonant # Lo   [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+ 0AF9          ; InCB; Consonant # Lo       GUJARATI LETTER ZHA
+ 0B15..0B28    ; InCB; Consonant # Lo  [20] ORIYA LETTER KA..ORIYA LETTER NA
+ 0B2A..0B30    ; InCB; Consonant # Lo   [7] ORIYA LETTER PA..ORIYA LETTER RA
+ 0B32..0B33    ; InCB; Consonant # Lo   [2] ORIYA LETTER LA..ORIYA LETTER LLA
+ 0B35..0B39    ; InCB; Consonant # Lo   [5] ORIYA LETTER VA..ORIYA LETTER HA
+ 0B5C..0B5D    ; InCB; Consonant # Lo   [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+ 0B5F          ; InCB; Consonant # Lo       ORIYA LETTER YYA
+ 0B71          ; InCB; Consonant # Lo       ORIYA LETTER WA
+ 0C15..0C28    ; InCB; Consonant # Lo  [20] TELUGU LETTER KA..TELUGU LETTER NA
+ 0C2A..0C39    ; InCB; Consonant # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
+ 0C58..0C5A    ; InCB; Consonant # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+ 0D15..0D3A    ; InCB; Consonant # Lo  [38] MALAYALAM LETTER KA..MALAYALAM LETTER TTTA
+ 
+ # Total code points: 240
+ 
+ # ================================================
+ 
+ # Indic_Conjunct_Break=Extend
+ 
+ 0300..034E    ; InCB; Extend # Mn  [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW
+ 0350..036F    ; InCB; Extend # Mn  [32] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING LATIN SMALL LETTER X
+ 0483..0487    ; InCB; Extend # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+ 0591..05BD    ; InCB; Extend # Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+ 05BF          ; InCB; Extend # Mn       HEBREW POINT RAFE
+ 05C1..05C2    ; InCB; Extend # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+ 05C4..05C5    ; InCB; Extend # Mn   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+ 05C7          ; InCB; Extend # Mn       HEBREW POINT QAMATS QATAN
+ 0610..061A    ; InCB; Extend # Mn  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+ 064B..065F    ; InCB; Extend # Mn  [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+ 0670          ; InCB; Extend # Mn       ARABIC LETTER SUPERSCRIPT ALEF
+ 06D6..06DC    ; InCB; Extend # Mn   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+ 06DF..06E4    ; InCB; Extend # Mn   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+ 06E7..06E8    ; InCB; Extend # Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+ 06EA..06ED    ; InCB; Extend # Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+ 0711          ; InCB; Extend # Mn       SYRIAC LETTER SUPERSCRIPT ALAPH
+ 0730..074A    ; InCB; Extend # Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+ 07EB..07F3    ; InCB; Extend # Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+ 07FD          ; InCB; Extend # Mn       NKO DANTAYALAN
+ 0816..0819    ; InCB; Extend # Mn   [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+ 081B..0823    ; InCB; Extend # Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+ 0825..0827    ; InCB; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+ 0829..082D    ; InCB; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+ 0859..085B    ; InCB; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+ 0898..089F    ; InCB; Extend # Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+ 08CA..08E1    ; InCB; Extend # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
+ 08E3..08FF    ; InCB; Extend # Mn  [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
+ 093C          ; InCB; Extend # Mn       DEVANAGARI SIGN NUKTA
+ 0951..0954    ; InCB; Extend # Mn   [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
+ 09BC          ; InCB; Extend # Mn       BENGALI SIGN NUKTA
+ 09FE          ; InCB; Extend # Mn       BENGALI SANDHI MARK
+ 0A3C          ; InCB; Extend # Mn       GURMUKHI SIGN NUKTA
+ 0ABC          ; InCB; Extend # Mn       GUJARATI SIGN NUKTA
+ 0B3C          ; InCB; Extend # Mn       ORIYA SIGN NUKTA
+ 0C3C          ; InCB; Extend # Mn       TELUGU SIGN NUKTA
+ 0C55..0C56    ; InCB; Extend # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+ 0CBC          ; InCB; Extend # Mn       KANNADA SIGN NUKTA
+ 0D3B..0D3C    ; InCB; Extend # Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+ 0E38..0E3A    ; InCB; Extend # Mn   [3] THAI CHARACTER SARA U..THAI CHARACTER PHINTHU
+ 0E48..0E4B    ; InCB; Extend # Mn   [4] THAI CHARACTER MAI EK..THAI CHARACTER MAI CHATTAWA
+ 0EB8..0EBA    ; InCB; Extend # Mn   [3] LAO VOWEL SIGN U..LAO SIGN PALI VIRAMA
+ 0EC8..0ECB    ; InCB; Extend # Mn   [4] LAO TONE MAI EK..LAO TONE MAI CATAWA
+ 0F18..0F19    ; InCB; Extend # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+ 0F35          ; InCB; Extend # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
+ 0F37          ; InCB; Extend # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
+ 0F39          ; InCB; Extend # Mn       TIBETAN MARK TSA -PHRU
+ 0F71..0F72    ; InCB; Extend # Mn   [2] TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I
+ 0F74          ; InCB; Extend # Mn       TIBETAN VOWEL SIGN U
+ 0F7A..0F7D    ; InCB; Extend # Mn   [4] TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN OO
+ 0F80          ; InCB; Extend # Mn       TIBETAN VOWEL SIGN REVERSED I
+ 0F82..0F84    ; InCB; Extend # Mn   [3] TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA
+ 0F86..0F87    ; InCB; Extend # Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+ 0FC6          ; InCB; Extend # Mn       TIBETAN SYMBOL PADMA GDAN
+ 1037          ; InCB; Extend # Mn       MYANMAR SIGN DOT BELOW
+ 1039..103A    ; InCB; Extend # Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+ 108D          ; InCB; Extend # Mn       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+ 135D..135F    ; InCB; Extend # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+ 1714          ; InCB; Extend # Mn       TAGALOG SIGN VIRAMA
+ 17D2          ; InCB; Extend # Mn       KHMER SIGN COENG
+ 17DD          ; InCB; Extend # Mn       KHMER SIGN ATTHACAN
+ 18A9          ; InCB; Extend # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
+ 1939..193B    ; InCB; Extend # Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+ 1A17..1A18    ; InCB; Extend # Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+ 1A60          ; InCB; Extend # Mn       TAI THAM SIGN SAKOT
+ 1A75..1A7C    ; InCB; Extend # Mn   [8] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN-LUE KARAN
+ 1A7F          ; InCB; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+ 1AB0..1ABD    ; InCB; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+ 1ABF..1ACE    ; InCB; Extend # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
+ 1B34          ; InCB; Extend # Mn       BALINESE SIGN REREKAN
+ 1B6B..1B73    ; InCB; Extend # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+ 1BAB          ; InCB; Extend # Mn       SUNDANESE SIGN VIRAMA
+ 1BE6          ; InCB; Extend # Mn       BATAK SIGN TOMPI
+ 1C37          ; InCB; Extend # Mn       LEPCHA SIGN NUKTA
+ 1CD0..1CD2    ; InCB; Extend # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+ 1CD4..1CE0    ; InCB; Extend # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+ 1CE2..1CE8    ; InCB; Extend # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+ 1CED          ; InCB; Extend # Mn       VEDIC SIGN TIRYAK
+ 1CF4          ; InCB; Extend # Mn       VEDIC TONE CANDRA ABOVE
+ 1CF8..1CF9    ; InCB; Extend # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+ 1DC0..1DFF    ; InCB; Extend # Mn  [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+ 200D          ; InCB; Extend # Cf       ZERO WIDTH JOINER
+ 20D0..20DC    ; InCB; Extend # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+ 20E1          ; InCB; Extend # Mn       COMBINING LEFT RIGHT ARROW ABOVE
+ 20E5..20F0    ; InCB; Extend # Mn  [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+ 2CEF..2CF1    ; InCB; Extend # Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+ 2D7F          ; InCB; Extend # Mn       TIFINAGH CONSONANT JOINER
+ 2DE0..2DFF    ; InCB; Extend # Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+ 302A..302D    ; InCB; Extend # Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+ 302E..302F    ; InCB; Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+ 3099..309A    ; InCB; Extend # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ A66F          ; InCB; Extend # Mn       COMBINING CYRILLIC VZMET
+ A674..A67D    ; InCB; Extend # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+ A69E..A69F    ; InCB; Extend # Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
+ A6F0..A6F1    ; InCB; Extend # Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+ A82C          ; InCB; Extend # Mn       SYLOTI NAGRI SIGN ALTERNATE HASANTA
+ A8E0..A8F1    ; InCB; Extend # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+ A92B..A92D    ; InCB; Extend # Mn   [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU
+ A9B3          ; InCB; Extend # Mn       JAVANESE SIGN CECAK TELU
+ AAB0          ; InCB; Extend # Mn       TAI VIET MAI KANG
+ AAB2..AAB4    ; InCB; Extend # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+ AAB7..AAB8    ; InCB; Extend # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+ AABE..AABF    ; InCB; Extend # Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+ AAC1          ; InCB; Extend # Mn       TAI VIET TONE MAI THO
+ AAF6          ; InCB; Extend # Mn       MEETEI MAYEK VIRAMA
+ ABED          ; InCB; Extend # Mn       MEETEI MAYEK APUN IYEK
+ FB1E          ; InCB; Extend # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
+ FE20..FE2F    ; InCB; Extend # Mn  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+ 101FD         ; InCB; Extend # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+ 102E0         ; InCB; Extend # Mn       COPTIC EPACT THOUSANDS MARK
+ 10376..1037A  ; InCB; Extend # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+ 10A0D         ; InCB; Extend # Mn       KHAROSHTHI SIGN DOUBLE RING BELOW
+ 10A0F         ; InCB; Extend # Mn       KHAROSHTHI SIGN VISARGA
+ 10A38..10A3A  ; InCB; Extend # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+ 10A3F         ; InCB; Extend # Mn       KHAROSHTHI VIRAMA
+ 10AE5..10AE6  ; InCB; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+ 10D24..10D27  ; InCB; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10EAB..10EAC  ; InCB; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+ 10EFD..10EFF  ; InCB; Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
+ 10F46..10F50  ; InCB; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+ 10F82..10F85  ; InCB; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
+ 11070         ; InCB; Extend # Mn       BRAHMI SIGN OLD TAMIL VIRAMA
+ 1107F         ; InCB; Extend # Mn       BRAHMI NUMBER JOINER
+ 110BA         ; InCB; Extend # Mn       KAITHI SIGN NUKTA
+ 11100..11102  ; InCB; Extend # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+ 11133..11134  ; InCB; Extend # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
+ 11173         ; InCB; Extend # Mn       MAHAJANI SIGN NUKTA
+ 111CA         ; InCB; Extend # Mn       SHARADA SIGN NUKTA
+ 11236         ; InCB; Extend # Mn       KHOJKI SIGN NUKTA
+ 112E9..112EA  ; InCB; Extend # Mn   [2] KHUDAWADI SIGN NUKTA..KHUDAWADI SIGN VIRAMA
+ 1133B..1133C  ; InCB; Extend # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+ 11366..1136C  ; InCB; Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+ 11370..11374  ; InCB; Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 11446         ; InCB; Extend # Mn       NEWA SIGN NUKTA
+ 1145E         ; InCB; Extend # Mn       NEWA SANDHI MARK
+ 114C3         ; InCB; Extend # Mn       TIRHUTA SIGN NUKTA
+ 115C0         ; InCB; Extend # Mn       SIDDHAM SIGN NUKTA
+ 116B7         ; InCB; Extend # Mn       TAKRI SIGN NUKTA
+ 1172B         ; InCB; Extend # Mn       AHOM SIGN KILLER
+ 1183A         ; InCB; Extend # Mn       DOGRA SIGN NUKTA
+ 1193E         ; InCB; Extend # Mn       DIVES AKURU VIRAMA
+ 11943         ; InCB; Extend # Mn       DIVES AKURU SIGN NUKTA
+ 11A34         ; InCB; Extend # Mn       ZANABAZAR SQUARE SIGN VIRAMA
+ 11A47         ; InCB; Extend # Mn       ZANABAZAR SQUARE SUBJOINER
+ 11A99         ; InCB; Extend # Mn       SOYOMBO SUBJOINER
+ 11D42         ; InCB; Extend # Mn       MASARAM GONDI SIGN NUKTA
+ 11D44..11D45  ; InCB; Extend # Mn   [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
+ 11D97         ; InCB; Extend # Mn       GUNJALA GONDI VIRAMA
+ 11F42         ; InCB; Extend # Mn       KAWI CONJOINER
+ 16AF0..16AF4  ; InCB; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+ 16B30..16B36  ; InCB; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+ 1BC9E         ; InCB; Extend # Mn       DUPLOYAN DOUBLE MARK
+ 1D165         ; InCB; Extend # Mc       MUSICAL SYMBOL COMBINING STEM
+ 1D167..1D169  ; InCB; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+ 1D16E..1D172  ; InCB; Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
+ 1D17B..1D182  ; InCB; Extend # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+ 1D185..1D18B  ; InCB; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+ 1D1AA..1D1AD  ; InCB; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+ 1D242..1D244  ; InCB; Extend # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+ 1E000..1E006  ; InCB; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+ 1E008..1E018  ; InCB; Extend # Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+ 1E01B..1E021  ; InCB; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+ 1E023..1E024  ; InCB; Extend # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+ 1E026..1E02A  ; InCB; Extend # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+ 1E08F         ; InCB; Extend # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ 1E130..1E136  ; InCB; Extend # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+ 1E2AE         ; InCB; Extend # Mn       TOTO SIGN RISING TONE
+ 1E2EC..1E2EF  ; InCB; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+ 1E4EC..1E4EF  ; InCB; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+ 1E8D0..1E8D6  ; InCB; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+ 1E944..1E94A  ; InCB; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+ 
+ # Total code points: 884
+ 
  # EOF
diff -Nrcpad gcc-13.2.0/contrib/unicode/DerivedNormalizationProps.txt gcc-14.1.0/contrib/unicode/DerivedNormalizationProps.txt
*** gcc-13.2.0/contrib/unicode/DerivedNormalizationProps.txt	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/DerivedNormalizationProps.txt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
! # DerivedNormalizationProps-15.0.0.txt
! # Date: 2022-04-02, 01:29:03 GMT
! # © 2022 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
--- 1,6 ----
! # DerivedNormalizationProps-15.1.0.txt
! # Date: 2023-05-02, 13:20:58 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
*************** FFE3          ; Expands_On_NFKC # Sk
*** 2907,2913 ****
  # @missing: 0000..10FFFF; NFKC_CF; <code point>
  
  #  All code points not explicitly listed for NFKC_Casefold
! #  have the value <codepoint>.
  
  0041          ; NFKC_CF; 0061           # L&       LATIN CAPITAL LETTER A
  0042          ; NFKC_CF; 0062           # L&       LATIN CAPITAL LETTER B
--- 2907,2913 ----
  # @missing: 0000..10FFFF; NFKC_CF; <code point>
  
  #  All code points not explicitly listed for NFKC_Casefold
! #  have the value <code point>.
  
  0041          ; NFKC_CF; 0061           # L&       LATIN CAPITAL LETTER A
  0042          ; NFKC_CF; 0062           # L&       LATIN CAPITAL LETTER B
*************** E01F0..E0FFF  ; NFKC_CF;
*** 9005,9010 ****
--- 9005,15081 ----
  
  # ================================================
  
+ # Derived Property:   NFKC_Simple_Casefold (NFKC_SCF)
+ #   This property removes certain variations from characters: case, compatibility, and default-ignorables.
+ #   It is used for loose matching and certain types of identifiers.
+ #   It is constructed by applying NFKC, simple CaseFolding, and removal of Default_Ignorable_Code_Points.
+ #   The process of applying these transformations is repeated until a stable result is produced.
+ #   WARNING: Application to STRINGS must apply NFC after mapping each character, because characters may interact.
+ #            For more information, see [https://www.unicode.org/reports/tr44/]
+ # Omitted code points are unchanged by this mapping.
+ # @missing: 0000..10FFFF; NFKC_SCF; <code point>
+ 
+ #  All code points not explicitly listed for NFKC_Simple_Casefold
+ #  have the value <code point>.
+ 
+ 0041          ; NFKC_SCF; 0061           # L&       LATIN CAPITAL LETTER A
+ 0042          ; NFKC_SCF; 0062           # L&       LATIN CAPITAL LETTER B
+ 0043          ; NFKC_SCF; 0063           # L&       LATIN CAPITAL LETTER C
+ 0044          ; NFKC_SCF; 0064           # L&       LATIN CAPITAL LETTER D
+ 0045          ; NFKC_SCF; 0065           # L&       LATIN CAPITAL LETTER E
+ 0046          ; NFKC_SCF; 0066           # L&       LATIN CAPITAL LETTER F
+ 0047          ; NFKC_SCF; 0067           # L&       LATIN CAPITAL LETTER G
+ 0048          ; NFKC_SCF; 0068           # L&       LATIN CAPITAL LETTER H
+ 0049          ; NFKC_SCF; 0069           # L&       LATIN CAPITAL LETTER I
+ 004A          ; NFKC_SCF; 006A           # L&       LATIN CAPITAL LETTER J
+ 004B          ; NFKC_SCF; 006B           # L&       LATIN CAPITAL LETTER K
+ 004C          ; NFKC_SCF; 006C           # L&       LATIN CAPITAL LETTER L
+ 004D          ; NFKC_SCF; 006D           # L&       LATIN CAPITAL LETTER M
+ 004E          ; NFKC_SCF; 006E           # L&       LATIN CAPITAL LETTER N
+ 004F          ; NFKC_SCF; 006F           # L&       LATIN CAPITAL LETTER O
+ 0050          ; NFKC_SCF; 0070           # L&       LATIN CAPITAL LETTER P
+ 0051          ; NFKC_SCF; 0071           # L&       LATIN CAPITAL LETTER Q
+ 0052          ; NFKC_SCF; 0072           # L&       LATIN CAPITAL LETTER R
+ 0053          ; NFKC_SCF; 0073           # L&       LATIN CAPITAL LETTER S
+ 0054          ; NFKC_SCF; 0074           # L&       LATIN CAPITAL LETTER T
+ 0055          ; NFKC_SCF; 0075           # L&       LATIN CAPITAL LETTER U
+ 0056          ; NFKC_SCF; 0076           # L&       LATIN CAPITAL LETTER V
+ 0057          ; NFKC_SCF; 0077           # L&       LATIN CAPITAL LETTER W
+ 0058          ; NFKC_SCF; 0078           # L&       LATIN CAPITAL LETTER X
+ 0059          ; NFKC_SCF; 0079           # L&       LATIN CAPITAL LETTER Y
+ 005A          ; NFKC_SCF; 007A           # L&       LATIN CAPITAL LETTER Z
+ 00A0          ; NFKC_SCF; 0020           # Zs       NO-BREAK SPACE
+ 00A8          ; NFKC_SCF; 0020 0308      # Sk       DIAERESIS
+ 00AA          ; NFKC_SCF; 0061           # Lo       FEMININE ORDINAL INDICATOR
+ 00AD          ; NFKC_SCF;                # Cf       SOFT HYPHEN
+ 00AF          ; NFKC_SCF; 0020 0304      # Sk       MACRON
+ 00B2          ; NFKC_SCF; 0032           # No       SUPERSCRIPT TWO
+ 00B3          ; NFKC_SCF; 0033           # No       SUPERSCRIPT THREE
+ 00B4          ; NFKC_SCF; 0020 0301      # Sk       ACUTE ACCENT
+ 00B5          ; NFKC_SCF; 03BC           # L&       MICRO SIGN
+ 00B8          ; NFKC_SCF; 0020 0327      # Sk       CEDILLA
+ 00B9          ; NFKC_SCF; 0031           # No       SUPERSCRIPT ONE
+ 00BA          ; NFKC_SCF; 006F           # Lo       MASCULINE ORDINAL INDICATOR
+ 00BC          ; NFKC_SCF; 0031 2044 0034 # No       VULGAR FRACTION ONE QUARTER
+ 00BD          ; NFKC_SCF; 0031 2044 0032 # No       VULGAR FRACTION ONE HALF
+ 00BE          ; NFKC_SCF; 0033 2044 0034 # No       VULGAR FRACTION THREE QUARTERS
+ 00C0          ; NFKC_SCF; 00E0           # L&       LATIN CAPITAL LETTER A WITH GRAVE
+ 00C1          ; NFKC_SCF; 00E1           # L&       LATIN CAPITAL LETTER A WITH ACUTE
+ 00C2          ; NFKC_SCF; 00E2           # L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 00C3          ; NFKC_SCF; 00E3           # L&       LATIN CAPITAL LETTER A WITH TILDE
+ 00C4          ; NFKC_SCF; 00E4           # L&       LATIN CAPITAL LETTER A WITH DIAERESIS
+ 00C5          ; NFKC_SCF; 00E5           # L&       LATIN CAPITAL LETTER A WITH RING ABOVE
+ 00C6          ; NFKC_SCF; 00E6           # L&       LATIN CAPITAL LETTER AE
+ 00C7          ; NFKC_SCF; 00E7           # L&       LATIN CAPITAL LETTER C WITH CEDILLA
+ 00C8          ; NFKC_SCF; 00E8           # L&       LATIN CAPITAL LETTER E WITH GRAVE
+ 00C9          ; NFKC_SCF; 00E9           # L&       LATIN CAPITAL LETTER E WITH ACUTE
+ 00CA          ; NFKC_SCF; 00EA           # L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 00CB          ; NFKC_SCF; 00EB           # L&       LATIN CAPITAL LETTER E WITH DIAERESIS
+ 00CC          ; NFKC_SCF; 00EC           # L&       LATIN CAPITAL LETTER I WITH GRAVE
+ 00CD          ; NFKC_SCF; 00ED           # L&       LATIN CAPITAL LETTER I WITH ACUTE
+ 00CE          ; NFKC_SCF; 00EE           # L&       LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 00CF          ; NFKC_SCF; 00EF           # L&       LATIN CAPITAL LETTER I WITH DIAERESIS
+ 00D0          ; NFKC_SCF; 00F0           # L&       LATIN CAPITAL LETTER ETH
+ 00D1          ; NFKC_SCF; 00F1           # L&       LATIN CAPITAL LETTER N WITH TILDE
+ 00D2          ; NFKC_SCF; 00F2           # L&       LATIN CAPITAL LETTER O WITH GRAVE
+ 00D3          ; NFKC_SCF; 00F3           # L&       LATIN CAPITAL LETTER O WITH ACUTE
+ 00D4          ; NFKC_SCF; 00F4           # L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ 00D5          ; NFKC_SCF; 00F5           # L&       LATIN CAPITAL LETTER O WITH TILDE
+ 00D6          ; NFKC_SCF; 00F6           # L&       LATIN CAPITAL LETTER O WITH DIAERESIS
+ 00D8          ; NFKC_SCF; 00F8           # L&       LATIN CAPITAL LETTER O WITH STROKE
+ 00D9          ; NFKC_SCF; 00F9           # L&       LATIN CAPITAL LETTER U WITH GRAVE
+ 00DA          ; NFKC_SCF; 00FA           # L&       LATIN CAPITAL LETTER U WITH ACUTE
+ 00DB          ; NFKC_SCF; 00FB           # L&       LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ 00DC          ; NFKC_SCF; 00FC           # L&       LATIN CAPITAL LETTER U WITH DIAERESIS
+ 00DD          ; NFKC_SCF; 00FD           # L&       LATIN CAPITAL LETTER Y WITH ACUTE
+ 00DE          ; NFKC_SCF; 00FE           # L&       LATIN CAPITAL LETTER THORN
+ 0100          ; NFKC_SCF; 0101           # L&       LATIN CAPITAL LETTER A WITH MACRON
+ 0102          ; NFKC_SCF; 0103           # L&       LATIN CAPITAL LETTER A WITH BREVE
+ 0104          ; NFKC_SCF; 0105           # L&       LATIN CAPITAL LETTER A WITH OGONEK
+ 0106          ; NFKC_SCF; 0107           # L&       LATIN CAPITAL LETTER C WITH ACUTE
+ 0108          ; NFKC_SCF; 0109           # L&       LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+ 010A          ; NFKC_SCF; 010B           # L&       LATIN CAPITAL LETTER C WITH DOT ABOVE
+ 010C          ; NFKC_SCF; 010D           # L&       LATIN CAPITAL LETTER C WITH CARON
+ 010E          ; NFKC_SCF; 010F           # L&       LATIN CAPITAL LETTER D WITH CARON
+ 0110          ; NFKC_SCF; 0111           # L&       LATIN CAPITAL LETTER D WITH STROKE
+ 0112          ; NFKC_SCF; 0113           # L&       LATIN CAPITAL LETTER E WITH MACRON
+ 0114          ; NFKC_SCF; 0115           # L&       LATIN CAPITAL LETTER E WITH BREVE
+ 0116          ; NFKC_SCF; 0117           # L&       LATIN CAPITAL LETTER E WITH DOT ABOVE
+ 0118          ; NFKC_SCF; 0119           # L&       LATIN CAPITAL LETTER E WITH OGONEK
+ 011A          ; NFKC_SCF; 011B           # L&       LATIN CAPITAL LETTER E WITH CARON
+ 011C          ; NFKC_SCF; 011D           # L&       LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+ 011E          ; NFKC_SCF; 011F           # L&       LATIN CAPITAL LETTER G WITH BREVE
+ 0120          ; NFKC_SCF; 0121           # L&       LATIN CAPITAL LETTER G WITH DOT ABOVE
+ 0122          ; NFKC_SCF; 0123           # L&       LATIN CAPITAL LETTER G WITH CEDILLA
+ 0124          ; NFKC_SCF; 0125           # L&       LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+ 0126          ; NFKC_SCF; 0127           # L&       LATIN CAPITAL LETTER H WITH STROKE
+ 0128          ; NFKC_SCF; 0129           # L&       LATIN CAPITAL LETTER I WITH TILDE
+ 012A          ; NFKC_SCF; 012B           # L&       LATIN CAPITAL LETTER I WITH MACRON
+ 012C          ; NFKC_SCF; 012D           # L&       LATIN CAPITAL LETTER I WITH BREVE
+ 012E          ; NFKC_SCF; 012F           # L&       LATIN CAPITAL LETTER I WITH OGONEK
+ 0132..0133    ; NFKC_SCF; 0069 006A      # L&   [2] LATIN CAPITAL LIGATURE IJ..LATIN SMALL LIGATURE IJ
+ 0134          ; NFKC_SCF; 0135           # L&       LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+ 0136          ; NFKC_SCF; 0137           # L&       LATIN CAPITAL LETTER K WITH CEDILLA
+ 0139          ; NFKC_SCF; 013A           # L&       LATIN CAPITAL LETTER L WITH ACUTE
+ 013B          ; NFKC_SCF; 013C           # L&       LATIN CAPITAL LETTER L WITH CEDILLA
+ 013D          ; NFKC_SCF; 013E           # L&       LATIN CAPITAL LETTER L WITH CARON
+ 013F..0140    ; NFKC_SCF; 006C 00B7      # L&   [2] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT
+ 0141          ; NFKC_SCF; 0142           # L&       LATIN CAPITAL LETTER L WITH STROKE
+ 0143          ; NFKC_SCF; 0144           # L&       LATIN CAPITAL LETTER N WITH ACUTE
+ 0145          ; NFKC_SCF; 0146           # L&       LATIN CAPITAL LETTER N WITH CEDILLA
+ 0147          ; NFKC_SCF; 0148           # L&       LATIN CAPITAL LETTER N WITH CARON
+ 0149          ; NFKC_SCF; 02BC 006E      # L&       LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ 014A          ; NFKC_SCF; 014B           # L&       LATIN CAPITAL LETTER ENG
+ 014C          ; NFKC_SCF; 014D           # L&       LATIN CAPITAL LETTER O WITH MACRON
+ 014E          ; NFKC_SCF; 014F           # L&       LATIN CAPITAL LETTER O WITH BREVE
+ 0150          ; NFKC_SCF; 0151           # L&       LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ 0152          ; NFKC_SCF; 0153           # L&       LATIN CAPITAL LIGATURE OE
+ 0154          ; NFKC_SCF; 0155           # L&       LATIN CAPITAL LETTER R WITH ACUTE
+ 0156          ; NFKC_SCF; 0157           # L&       LATIN CAPITAL LETTER R WITH CEDILLA
+ 0158          ; NFKC_SCF; 0159           # L&       LATIN CAPITAL LETTER R WITH CARON
+ 015A          ; NFKC_SCF; 015B           # L&       LATIN CAPITAL LETTER S WITH ACUTE
+ 015C          ; NFKC_SCF; 015D           # L&       LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+ 015E          ; NFKC_SCF; 015F           # L&       LATIN CAPITAL LETTER S WITH CEDILLA
+ 0160          ; NFKC_SCF; 0161           # L&       LATIN CAPITAL LETTER S WITH CARON
+ 0162          ; NFKC_SCF; 0163           # L&       LATIN CAPITAL LETTER T WITH CEDILLA
+ 0164          ; NFKC_SCF; 0165           # L&       LATIN CAPITAL LETTER T WITH CARON
+ 0166          ; NFKC_SCF; 0167           # L&       LATIN CAPITAL LETTER T WITH STROKE
+ 0168          ; NFKC_SCF; 0169           # L&       LATIN CAPITAL LETTER U WITH TILDE
+ 016A          ; NFKC_SCF; 016B           # L&       LATIN CAPITAL LETTER U WITH MACRON
+ 016C          ; NFKC_SCF; 016D           # L&       LATIN CAPITAL LETTER U WITH BREVE
+ 016E          ; NFKC_SCF; 016F           # L&       LATIN CAPITAL LETTER U WITH RING ABOVE
+ 0170          ; NFKC_SCF; 0171           # L&       LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ 0172          ; NFKC_SCF; 0173           # L&       LATIN CAPITAL LETTER U WITH OGONEK
+ 0174          ; NFKC_SCF; 0175           # L&       LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+ 0176          ; NFKC_SCF; 0177           # L&       LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+ 0178          ; NFKC_SCF; 00FF           # L&       LATIN CAPITAL LETTER Y WITH DIAERESIS
+ 0179          ; NFKC_SCF; 017A           # L&       LATIN CAPITAL LETTER Z WITH ACUTE
+ 017B          ; NFKC_SCF; 017C           # L&       LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ 017D          ; NFKC_SCF; 017E           # L&       LATIN CAPITAL LETTER Z WITH CARON
+ 017F          ; NFKC_SCF; 0073           # L&       LATIN SMALL LETTER LONG S
+ 0181          ; NFKC_SCF; 0253           # L&       LATIN CAPITAL LETTER B WITH HOOK
+ 0182          ; NFKC_SCF; 0183           # L&       LATIN CAPITAL LETTER B WITH TOPBAR
+ 0184          ; NFKC_SCF; 0185           # L&       LATIN CAPITAL LETTER TONE SIX
+ 0186          ; NFKC_SCF; 0254           # L&       LATIN CAPITAL LETTER OPEN O
+ 0187          ; NFKC_SCF; 0188           # L&       LATIN CAPITAL LETTER C WITH HOOK
+ 0189          ; NFKC_SCF; 0256           # L&       LATIN CAPITAL LETTER AFRICAN D
+ 018A          ; NFKC_SCF; 0257           # L&       LATIN CAPITAL LETTER D WITH HOOK
+ 018B          ; NFKC_SCF; 018C           # L&       LATIN CAPITAL LETTER D WITH TOPBAR
+ 018E          ; NFKC_SCF; 01DD           # L&       LATIN CAPITAL LETTER REVERSED E
+ 018F          ; NFKC_SCF; 0259           # L&       LATIN CAPITAL LETTER SCHWA
+ 0190          ; NFKC_SCF; 025B           # L&       LATIN CAPITAL LETTER OPEN E
+ 0191          ; NFKC_SCF; 0192           # L&       LATIN CAPITAL LETTER F WITH HOOK
+ 0193          ; NFKC_SCF; 0260           # L&       LATIN CAPITAL LETTER G WITH HOOK
+ 0194          ; NFKC_SCF; 0263           # L&       LATIN CAPITAL LETTER GAMMA
+ 0196          ; NFKC_SCF; 0269           # L&       LATIN CAPITAL LETTER IOTA
+ 0197          ; NFKC_SCF; 0268           # L&       LATIN CAPITAL LETTER I WITH STROKE
+ 0198          ; NFKC_SCF; 0199           # L&       LATIN CAPITAL LETTER K WITH HOOK
+ 019C          ; NFKC_SCF; 026F           # L&       LATIN CAPITAL LETTER TURNED M
+ 019D          ; NFKC_SCF; 0272           # L&       LATIN CAPITAL LETTER N WITH LEFT HOOK
+ 019F          ; NFKC_SCF; 0275           # L&       LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+ 01A0          ; NFKC_SCF; 01A1           # L&       LATIN CAPITAL LETTER O WITH HORN
+ 01A2          ; NFKC_SCF; 01A3           # L&       LATIN CAPITAL LETTER OI
+ 01A4          ; NFKC_SCF; 01A5           # L&       LATIN CAPITAL LETTER P WITH HOOK
+ 01A6          ; NFKC_SCF; 0280           # L&       LATIN LETTER YR
+ 01A7          ; NFKC_SCF; 01A8           # L&       LATIN CAPITAL LETTER TONE TWO
+ 01A9          ; NFKC_SCF; 0283           # L&       LATIN CAPITAL LETTER ESH
+ 01AC          ; NFKC_SCF; 01AD           # L&       LATIN CAPITAL LETTER T WITH HOOK
+ 01AE          ; NFKC_SCF; 0288           # L&       LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+ 01AF          ; NFKC_SCF; 01B0           # L&       LATIN CAPITAL LETTER U WITH HORN
+ 01B1          ; NFKC_SCF; 028A           # L&       LATIN CAPITAL LETTER UPSILON
+ 01B2          ; NFKC_SCF; 028B           # L&       LATIN CAPITAL LETTER V WITH HOOK
+ 01B3          ; NFKC_SCF; 01B4           # L&       LATIN CAPITAL LETTER Y WITH HOOK
+ 01B5          ; NFKC_SCF; 01B6           # L&       LATIN CAPITAL LETTER Z WITH STROKE
+ 01B7          ; NFKC_SCF; 0292           # L&       LATIN CAPITAL LETTER EZH
+ 01B8          ; NFKC_SCF; 01B9           # L&       LATIN CAPITAL LETTER EZH REVERSED
+ 01BC          ; NFKC_SCF; 01BD           # L&       LATIN CAPITAL LETTER TONE FIVE
+ 01C4..01C6    ; NFKC_SCF; 0064 017E      # L&   [3] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER DZ WITH CARON
+ 01C7..01C9    ; NFKC_SCF; 006C 006A      # L&   [3] LATIN CAPITAL LETTER LJ..LATIN SMALL LETTER LJ
+ 01CA..01CC    ; NFKC_SCF; 006E 006A      # L&   [3] LATIN CAPITAL LETTER NJ..LATIN SMALL LETTER NJ
+ 01CD          ; NFKC_SCF; 01CE           # L&       LATIN CAPITAL LETTER A WITH CARON
+ 01CF          ; NFKC_SCF; 01D0           # L&       LATIN CAPITAL LETTER I WITH CARON
+ 01D1          ; NFKC_SCF; 01D2           # L&       LATIN CAPITAL LETTER O WITH CARON
+ 01D3          ; NFKC_SCF; 01D4           # L&       LATIN CAPITAL LETTER U WITH CARON
+ 01D5          ; NFKC_SCF; 01D6           # L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+ 01D7          ; NFKC_SCF; 01D8           # L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+ 01D9          ; NFKC_SCF; 01DA           # L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ 01DB          ; NFKC_SCF; 01DC           # L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+ 01DE          ; NFKC_SCF; 01DF           # L&       LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+ 01E0          ; NFKC_SCF; 01E1           # L&       LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+ 01E2          ; NFKC_SCF; 01E3           # L&       LATIN CAPITAL LETTER AE WITH MACRON
+ 01E4          ; NFKC_SCF; 01E5           # L&       LATIN CAPITAL LETTER G WITH STROKE
+ 01E6          ; NFKC_SCF; 01E7           # L&       LATIN CAPITAL LETTER G WITH CARON
+ 01E8          ; NFKC_SCF; 01E9           # L&       LATIN CAPITAL LETTER K WITH CARON
+ 01EA          ; NFKC_SCF; 01EB           # L&       LATIN CAPITAL LETTER O WITH OGONEK
+ 01EC          ; NFKC_SCF; 01ED           # L&       LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+ 01EE          ; NFKC_SCF; 01EF           # L&       LATIN CAPITAL LETTER EZH WITH CARON
+ 01F1..01F3    ; NFKC_SCF; 0064 007A      # L&   [3] LATIN CAPITAL LETTER DZ..LATIN SMALL LETTER DZ
+ 01F4          ; NFKC_SCF; 01F5           # L&       LATIN CAPITAL LETTER G WITH ACUTE
+ 01F6          ; NFKC_SCF; 0195           # L&       LATIN CAPITAL LETTER HWAIR
+ 01F7          ; NFKC_SCF; 01BF           # L&       LATIN CAPITAL LETTER WYNN
+ 01F8          ; NFKC_SCF; 01F9           # L&       LATIN CAPITAL LETTER N WITH GRAVE
+ 01FA          ; NFKC_SCF; 01FB           # L&       LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+ 01FC          ; NFKC_SCF; 01FD           # L&       LATIN CAPITAL LETTER AE WITH ACUTE
+ 01FE          ; NFKC_SCF; 01FF           # L&       LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ 0200          ; NFKC_SCF; 0201           # L&       LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+ 0202          ; NFKC_SCF; 0203           # L&       LATIN CAPITAL LETTER A WITH INVERTED BREVE
+ 0204          ; NFKC_SCF; 0205           # L&       LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+ 0206          ; NFKC_SCF; 0207           # L&       LATIN CAPITAL LETTER E WITH INVERTED BREVE
+ 0208          ; NFKC_SCF; 0209           # L&       LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+ 020A          ; NFKC_SCF; 020B           # L&       LATIN CAPITAL LETTER I WITH INVERTED BREVE
+ 020C          ; NFKC_SCF; 020D           # L&       LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+ 020E          ; NFKC_SCF; 020F           # L&       LATIN CAPITAL LETTER O WITH INVERTED BREVE
+ 0210          ; NFKC_SCF; 0211           # L&       LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+ 0212          ; NFKC_SCF; 0213           # L&       LATIN CAPITAL LETTER R WITH INVERTED BREVE
+ 0214          ; NFKC_SCF; 0215           # L&       LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+ 0216          ; NFKC_SCF; 0217           # L&       LATIN CAPITAL LETTER U WITH INVERTED BREVE
+ 0218          ; NFKC_SCF; 0219           # L&       LATIN CAPITAL LETTER S WITH COMMA BELOW
+ 021A          ; NFKC_SCF; 021B           # L&       LATIN CAPITAL LETTER T WITH COMMA BELOW
+ 021C          ; NFKC_SCF; 021D           # L&       LATIN CAPITAL LETTER YOGH
+ 021E          ; NFKC_SCF; 021F           # L&       LATIN CAPITAL LETTER H WITH CARON
+ 0220          ; NFKC_SCF; 019E           # L&       LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+ 0222          ; NFKC_SCF; 0223           # L&       LATIN CAPITAL LETTER OU
+ 0224          ; NFKC_SCF; 0225           # L&       LATIN CAPITAL LETTER Z WITH HOOK
+ 0226          ; NFKC_SCF; 0227           # L&       LATIN CAPITAL LETTER A WITH DOT ABOVE
+ 0228          ; NFKC_SCF; 0229           # L&       LATIN CAPITAL LETTER E WITH CEDILLA
+ 022A          ; NFKC_SCF; 022B           # L&       LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+ 022C          ; NFKC_SCF; 022D           # L&       LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+ 022E          ; NFKC_SCF; 022F           # L&       LATIN CAPITAL LETTER O WITH DOT ABOVE
+ 0230          ; NFKC_SCF; 0231           # L&       LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+ 0232          ; NFKC_SCF; 0233           # L&       LATIN CAPITAL LETTER Y WITH MACRON
+ 023A          ; NFKC_SCF; 2C65           # L&       LATIN CAPITAL LETTER A WITH STROKE
+ 023B          ; NFKC_SCF; 023C           # L&       LATIN CAPITAL LETTER C WITH STROKE
+ 023D          ; NFKC_SCF; 019A           # L&       LATIN CAPITAL LETTER L WITH BAR
+ 023E          ; NFKC_SCF; 2C66           # L&       LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+ 0241          ; NFKC_SCF; 0242           # L&       LATIN CAPITAL LETTER GLOTTAL STOP
+ 0243          ; NFKC_SCF; 0180           # L&       LATIN CAPITAL LETTER B WITH STROKE
+ 0244          ; NFKC_SCF; 0289           # L&       LATIN CAPITAL LETTER U BAR
+ 0245          ; NFKC_SCF; 028C           # L&       LATIN CAPITAL LETTER TURNED V
+ 0246          ; NFKC_SCF; 0247           # L&       LATIN CAPITAL LETTER E WITH STROKE
+ 0248          ; NFKC_SCF; 0249           # L&       LATIN CAPITAL LETTER J WITH STROKE
+ 024A          ; NFKC_SCF; 024B           # L&       LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+ 024C          ; NFKC_SCF; 024D           # L&       LATIN CAPITAL LETTER R WITH STROKE
+ 024E          ; NFKC_SCF; 024F           # L&       LATIN CAPITAL LETTER Y WITH STROKE
+ 02B0          ; NFKC_SCF; 0068           # Lm       MODIFIER LETTER SMALL H
+ 02B1          ; NFKC_SCF; 0266           # Lm       MODIFIER LETTER SMALL H WITH HOOK
+ 02B2          ; NFKC_SCF; 006A           # Lm       MODIFIER LETTER SMALL J
+ 02B3          ; NFKC_SCF; 0072           # Lm       MODIFIER LETTER SMALL R
+ 02B4          ; NFKC_SCF; 0279           # Lm       MODIFIER LETTER SMALL TURNED R
+ 02B5          ; NFKC_SCF; 027B           # Lm       MODIFIER LETTER SMALL TURNED R WITH HOOK
+ 02B6          ; NFKC_SCF; 0281           # Lm       MODIFIER LETTER SMALL CAPITAL INVERTED R
+ 02B7          ; NFKC_SCF; 0077           # Lm       MODIFIER LETTER SMALL W
+ 02B8          ; NFKC_SCF; 0079           # Lm       MODIFIER LETTER SMALL Y
+ 02D8          ; NFKC_SCF; 0020 0306      # Sk       BREVE
+ 02D9          ; NFKC_SCF; 0020 0307      # Sk       DOT ABOVE
+ 02DA          ; NFKC_SCF; 0020 030A      # Sk       RING ABOVE
+ 02DB          ; NFKC_SCF; 0020 0328      # Sk       OGONEK
+ 02DC          ; NFKC_SCF; 0020 0303      # Sk       SMALL TILDE
+ 02DD          ; NFKC_SCF; 0020 030B      # Sk       DOUBLE ACUTE ACCENT
+ 02E0          ; NFKC_SCF; 0263           # Lm       MODIFIER LETTER SMALL GAMMA
+ 02E1          ; NFKC_SCF; 006C           # Lm       MODIFIER LETTER SMALL L
+ 02E2          ; NFKC_SCF; 0073           # Lm       MODIFIER LETTER SMALL S
+ 02E3          ; NFKC_SCF; 0078           # Lm       MODIFIER LETTER SMALL X
+ 02E4          ; NFKC_SCF; 0295           # Lm       MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+ 0340          ; NFKC_SCF; 0300           # Mn       COMBINING GRAVE TONE MARK
+ 0341          ; NFKC_SCF; 0301           # Mn       COMBINING ACUTE TONE MARK
+ 0343          ; NFKC_SCF; 0313           # Mn       COMBINING GREEK KORONIS
+ 0344          ; NFKC_SCF; 0308 0301      # Mn       COMBINING GREEK DIALYTIKA TONOS
+ 0345          ; NFKC_SCF; 03B9           # Mn       COMBINING GREEK YPOGEGRAMMENI
+ 034F          ; NFKC_SCF;                # Mn       COMBINING GRAPHEME JOINER
+ 0370          ; NFKC_SCF; 0371           # L&       GREEK CAPITAL LETTER HETA
+ 0372          ; NFKC_SCF; 0373           # L&       GREEK CAPITAL LETTER ARCHAIC SAMPI
+ 0374          ; NFKC_SCF; 02B9           # Lm       GREEK NUMERAL SIGN
+ 0376          ; NFKC_SCF; 0377           # L&       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+ 037A          ; NFKC_SCF; 0020 03B9      # Lm       GREEK YPOGEGRAMMENI
+ 037E          ; NFKC_SCF; 003B           # Po       GREEK QUESTION MARK
+ 037F          ; NFKC_SCF; 03F3           # L&       GREEK CAPITAL LETTER YOT
+ 0384          ; NFKC_SCF; 0020 0301      # Sk       GREEK TONOS
+ 0385          ; NFKC_SCF; 0020 0308 0301 # Sk       GREEK DIALYTIKA TONOS
+ 0386          ; NFKC_SCF; 03AC           # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
+ 0387          ; NFKC_SCF; 00B7           # Po       GREEK ANO TELEIA
+ 0388          ; NFKC_SCF; 03AD           # L&       GREEK CAPITAL LETTER EPSILON WITH TONOS
+ 0389          ; NFKC_SCF; 03AE           # L&       GREEK CAPITAL LETTER ETA WITH TONOS
+ 038A          ; NFKC_SCF; 03AF           # L&       GREEK CAPITAL LETTER IOTA WITH TONOS
+ 038C          ; NFKC_SCF; 03CC           # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
+ 038E          ; NFKC_SCF; 03CD           # L&       GREEK CAPITAL LETTER UPSILON WITH TONOS
+ 038F          ; NFKC_SCF; 03CE           # L&       GREEK CAPITAL LETTER OMEGA WITH TONOS
+ 0391          ; NFKC_SCF; 03B1           # L&       GREEK CAPITAL LETTER ALPHA
+ 0392          ; NFKC_SCF; 03B2           # L&       GREEK CAPITAL LETTER BETA
+ 0393          ; NFKC_SCF; 03B3           # L&       GREEK CAPITAL LETTER GAMMA
+ 0394          ; NFKC_SCF; 03B4           # L&       GREEK CAPITAL LETTER DELTA
+ 0395          ; NFKC_SCF; 03B5           # L&       GREEK CAPITAL LETTER EPSILON
+ 0396          ; NFKC_SCF; 03B6           # L&       GREEK CAPITAL LETTER ZETA
+ 0397          ; NFKC_SCF; 03B7           # L&       GREEK CAPITAL LETTER ETA
+ 0398          ; NFKC_SCF; 03B8           # L&       GREEK CAPITAL LETTER THETA
+ 0399          ; NFKC_SCF; 03B9           # L&       GREEK CAPITAL LETTER IOTA
+ 039A          ; NFKC_SCF; 03BA           # L&       GREEK CAPITAL LETTER KAPPA
+ 039B          ; NFKC_SCF; 03BB           # L&       GREEK CAPITAL LETTER LAMDA
+ 039C          ; NFKC_SCF; 03BC           # L&       GREEK CAPITAL LETTER MU
+ 039D          ; NFKC_SCF; 03BD           # L&       GREEK CAPITAL LETTER NU
+ 039E          ; NFKC_SCF; 03BE           # L&       GREEK CAPITAL LETTER XI
+ 039F          ; NFKC_SCF; 03BF           # L&       GREEK CAPITAL LETTER OMICRON
+ 03A0          ; NFKC_SCF; 03C0           # L&       GREEK CAPITAL LETTER PI
+ 03A1          ; NFKC_SCF; 03C1           # L&       GREEK CAPITAL LETTER RHO
+ 03A3          ; NFKC_SCF; 03C3           # L&       GREEK CAPITAL LETTER SIGMA
+ 03A4          ; NFKC_SCF; 03C4           # L&       GREEK CAPITAL LETTER TAU
+ 03A5          ; NFKC_SCF; 03C5           # L&       GREEK CAPITAL LETTER UPSILON
+ 03A6          ; NFKC_SCF; 03C6           # L&       GREEK CAPITAL LETTER PHI
+ 03A7          ; NFKC_SCF; 03C7           # L&       GREEK CAPITAL LETTER CHI
+ 03A8          ; NFKC_SCF; 03C8           # L&       GREEK CAPITAL LETTER PSI
+ 03A9          ; NFKC_SCF; 03C9           # L&       GREEK CAPITAL LETTER OMEGA
+ 03AA          ; NFKC_SCF; 03CA           # L&       GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+ 03AB          ; NFKC_SCF; 03CB           # L&       GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+ 03C2          ; NFKC_SCF; 03C3           # L&       GREEK SMALL LETTER FINAL SIGMA
+ 03CF          ; NFKC_SCF; 03D7           # L&       GREEK CAPITAL KAI SYMBOL
+ 03D0          ; NFKC_SCF; 03B2           # L&       GREEK BETA SYMBOL
+ 03D1          ; NFKC_SCF; 03B8           # L&       GREEK THETA SYMBOL
+ 03D2          ; NFKC_SCF; 03C5           # L&       GREEK UPSILON WITH HOOK SYMBOL
+ 03D3          ; NFKC_SCF; 03CD           # L&       GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+ 03D4          ; NFKC_SCF; 03CB           # L&       GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+ 03D5          ; NFKC_SCF; 03C6           # L&       GREEK PHI SYMBOL
+ 03D6          ; NFKC_SCF; 03C0           # L&       GREEK PI SYMBOL
+ 03D8          ; NFKC_SCF; 03D9           # L&       GREEK LETTER ARCHAIC KOPPA
+ 03DA          ; NFKC_SCF; 03DB           # L&       GREEK LETTER STIGMA
+ 03DC          ; NFKC_SCF; 03DD           # L&       GREEK LETTER DIGAMMA
+ 03DE          ; NFKC_SCF; 03DF           # L&       GREEK LETTER KOPPA
+ 03E0          ; NFKC_SCF; 03E1           # L&       GREEK LETTER SAMPI
+ 03E2          ; NFKC_SCF; 03E3           # L&       COPTIC CAPITAL LETTER SHEI
+ 03E4          ; NFKC_SCF; 03E5           # L&       COPTIC CAPITAL LETTER FEI
+ 03E6          ; NFKC_SCF; 03E7           # L&       COPTIC CAPITAL LETTER KHEI
+ 03E8          ; NFKC_SCF; 03E9           # L&       COPTIC CAPITAL LETTER HORI
+ 03EA          ; NFKC_SCF; 03EB           # L&       COPTIC CAPITAL LETTER GANGIA
+ 03EC          ; NFKC_SCF; 03ED           # L&       COPTIC CAPITAL LETTER SHIMA
+ 03EE          ; NFKC_SCF; 03EF           # L&       COPTIC CAPITAL LETTER DEI
+ 03F0          ; NFKC_SCF; 03BA           # L&       GREEK KAPPA SYMBOL
+ 03F1          ; NFKC_SCF; 03C1           # L&       GREEK RHO SYMBOL
+ 03F2          ; NFKC_SCF; 03C3           # L&       GREEK LUNATE SIGMA SYMBOL
+ 03F4          ; NFKC_SCF; 03B8           # L&       GREEK CAPITAL THETA SYMBOL
+ 03F5          ; NFKC_SCF; 03B5           # L&       GREEK LUNATE EPSILON SYMBOL
+ 03F7          ; NFKC_SCF; 03F8           # L&       GREEK CAPITAL LETTER SHO
+ 03F9          ; NFKC_SCF; 03C3           # L&       GREEK CAPITAL LUNATE SIGMA SYMBOL
+ 03FA          ; NFKC_SCF; 03FB           # L&       GREEK CAPITAL LETTER SAN
+ 03FD          ; NFKC_SCF; 037B           # L&       GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+ 03FE          ; NFKC_SCF; 037C           # L&       GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+ 03FF          ; NFKC_SCF; 037D           # L&       GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+ 0400          ; NFKC_SCF; 0450           # L&       CYRILLIC CAPITAL LETTER IE WITH GRAVE
+ 0401          ; NFKC_SCF; 0451           # L&       CYRILLIC CAPITAL LETTER IO
+ 0402          ; NFKC_SCF; 0452           # L&       CYRILLIC CAPITAL LETTER DJE
+ 0403          ; NFKC_SCF; 0453           # L&       CYRILLIC CAPITAL LETTER GJE
+ 0404          ; NFKC_SCF; 0454           # L&       CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ 0405          ; NFKC_SCF; 0455           # L&       CYRILLIC CAPITAL LETTER DZE
+ 0406          ; NFKC_SCF; 0456           # L&       CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ 0407          ; NFKC_SCF; 0457           # L&       CYRILLIC CAPITAL LETTER YI
+ 0408          ; NFKC_SCF; 0458           # L&       CYRILLIC CAPITAL LETTER JE
+ 0409          ; NFKC_SCF; 0459           # L&       CYRILLIC CAPITAL LETTER LJE
+ 040A          ; NFKC_SCF; 045A           # L&       CYRILLIC CAPITAL LETTER NJE
+ 040B          ; NFKC_SCF; 045B           # L&       CYRILLIC CAPITAL LETTER TSHE
+ 040C          ; NFKC_SCF; 045C           # L&       CYRILLIC CAPITAL LETTER KJE
+ 040D          ; NFKC_SCF; 045D           # L&       CYRILLIC CAPITAL LETTER I WITH GRAVE
+ 040E          ; NFKC_SCF; 045E           # L&       CYRILLIC CAPITAL LETTER SHORT U
+ 040F          ; NFKC_SCF; 045F           # L&       CYRILLIC CAPITAL LETTER DZHE
+ 0410          ; NFKC_SCF; 0430           # L&       CYRILLIC CAPITAL LETTER A
+ 0411          ; NFKC_SCF; 0431           # L&       CYRILLIC CAPITAL LETTER BE
+ 0412          ; NFKC_SCF; 0432           # L&       CYRILLIC CAPITAL LETTER VE
+ 0413          ; NFKC_SCF; 0433           # L&       CYRILLIC CAPITAL LETTER GHE
+ 0414          ; NFKC_SCF; 0434           # L&       CYRILLIC CAPITAL LETTER DE
+ 0415          ; NFKC_SCF; 0435           # L&       CYRILLIC CAPITAL LETTER IE
+ 0416          ; NFKC_SCF; 0436           # L&       CYRILLIC CAPITAL LETTER ZHE
+ 0417          ; NFKC_SCF; 0437           # L&       CYRILLIC CAPITAL LETTER ZE
+ 0418          ; NFKC_SCF; 0438           # L&       CYRILLIC CAPITAL LETTER I
+ 0419          ; NFKC_SCF; 0439           # L&       CYRILLIC CAPITAL LETTER SHORT I
+ 041A          ; NFKC_SCF; 043A           # L&       CYRILLIC CAPITAL LETTER KA
+ 041B          ; NFKC_SCF; 043B           # L&       CYRILLIC CAPITAL LETTER EL
+ 041C          ; NFKC_SCF; 043C           # L&       CYRILLIC CAPITAL LETTER EM
+ 041D          ; NFKC_SCF; 043D           # L&       CYRILLIC CAPITAL LETTER EN
+ 041E          ; NFKC_SCF; 043E           # L&       CYRILLIC CAPITAL LETTER O
+ 041F          ; NFKC_SCF; 043F           # L&       CYRILLIC CAPITAL LETTER PE
+ 0420          ; NFKC_SCF; 0440           # L&       CYRILLIC CAPITAL LETTER ER
+ 0421          ; NFKC_SCF; 0441           # L&       CYRILLIC CAPITAL LETTER ES
+ 0422          ; NFKC_SCF; 0442           # L&       CYRILLIC CAPITAL LETTER TE
+ 0423          ; NFKC_SCF; 0443           # L&       CYRILLIC CAPITAL LETTER U
+ 0424          ; NFKC_SCF; 0444           # L&       CYRILLIC CAPITAL LETTER EF
+ 0425          ; NFKC_SCF; 0445           # L&       CYRILLIC CAPITAL LETTER HA
+ 0426          ; NFKC_SCF; 0446           # L&       CYRILLIC CAPITAL LETTER TSE
+ 0427          ; NFKC_SCF; 0447           # L&       CYRILLIC CAPITAL LETTER CHE
+ 0428          ; NFKC_SCF; 0448           # L&       CYRILLIC CAPITAL LETTER SHA
+ 0429          ; NFKC_SCF; 0449           # L&       CYRILLIC CAPITAL LETTER SHCHA
+ 042A          ; NFKC_SCF; 044A           # L&       CYRILLIC CAPITAL LETTER HARD SIGN
+ 042B          ; NFKC_SCF; 044B           # L&       CYRILLIC CAPITAL LETTER YERU
+ 042C          ; NFKC_SCF; 044C           # L&       CYRILLIC CAPITAL LETTER SOFT SIGN
+ 042D          ; NFKC_SCF; 044D           # L&       CYRILLIC CAPITAL LETTER E
+ 042E          ; NFKC_SCF; 044E           # L&       CYRILLIC CAPITAL LETTER YU
+ 042F          ; NFKC_SCF; 044F           # L&       CYRILLIC CAPITAL LETTER YA
+ 0460          ; NFKC_SCF; 0461           # L&       CYRILLIC CAPITAL LETTER OMEGA
+ 0462          ; NFKC_SCF; 0463           # L&       CYRILLIC CAPITAL LETTER YAT
+ 0464          ; NFKC_SCF; 0465           # L&       CYRILLIC CAPITAL LETTER IOTIFIED E
+ 0466          ; NFKC_SCF; 0467           # L&       CYRILLIC CAPITAL LETTER LITTLE YUS
+ 0468          ; NFKC_SCF; 0469           # L&       CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+ 046A          ; NFKC_SCF; 046B           # L&       CYRILLIC CAPITAL LETTER BIG YUS
+ 046C          ; NFKC_SCF; 046D           # L&       CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+ 046E          ; NFKC_SCF; 046F           # L&       CYRILLIC CAPITAL LETTER KSI
+ 0470          ; NFKC_SCF; 0471           # L&       CYRILLIC CAPITAL LETTER PSI
+ 0472          ; NFKC_SCF; 0473           # L&       CYRILLIC CAPITAL LETTER FITA
+ 0474          ; NFKC_SCF; 0475           # L&       CYRILLIC CAPITAL LETTER IZHITSA
+ 0476          ; NFKC_SCF; 0477           # L&       CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ 0478          ; NFKC_SCF; 0479           # L&       CYRILLIC CAPITAL LETTER UK
+ 047A          ; NFKC_SCF; 047B           # L&       CYRILLIC CAPITAL LETTER ROUND OMEGA
+ 047C          ; NFKC_SCF; 047D           # L&       CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+ 047E          ; NFKC_SCF; 047F           # L&       CYRILLIC CAPITAL LETTER OT
+ 0480          ; NFKC_SCF; 0481           # L&       CYRILLIC CAPITAL LETTER KOPPA
+ 048A          ; NFKC_SCF; 048B           # L&       CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+ 048C          ; NFKC_SCF; 048D           # L&       CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+ 048E          ; NFKC_SCF; 048F           # L&       CYRILLIC CAPITAL LETTER ER WITH TICK
+ 0490          ; NFKC_SCF; 0491           # L&       CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+ 0492          ; NFKC_SCF; 0493           # L&       CYRILLIC CAPITAL LETTER GHE WITH STROKE
+ 0494          ; NFKC_SCF; 0495           # L&       CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+ 0496          ; NFKC_SCF; 0497           # L&       CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+ 0498          ; NFKC_SCF; 0499           # L&       CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+ 049A          ; NFKC_SCF; 049B           # L&       CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+ 049C          ; NFKC_SCF; 049D           # L&       CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+ 049E          ; NFKC_SCF; 049F           # L&       CYRILLIC CAPITAL LETTER KA WITH STROKE
+ 04A0          ; NFKC_SCF; 04A1           # L&       CYRILLIC CAPITAL LETTER BASHKIR KA
+ 04A2          ; NFKC_SCF; 04A3           # L&       CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+ 04A4          ; NFKC_SCF; 04A5           # L&       CYRILLIC CAPITAL LIGATURE EN GHE
+ 04A6          ; NFKC_SCF; 04A7           # L&       CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+ 04A8          ; NFKC_SCF; 04A9           # L&       CYRILLIC CAPITAL LETTER ABKHASIAN HA
+ 04AA          ; NFKC_SCF; 04AB           # L&       CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+ 04AC          ; NFKC_SCF; 04AD           # L&       CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+ 04AE          ; NFKC_SCF; 04AF           # L&       CYRILLIC CAPITAL LETTER STRAIGHT U
+ 04B0          ; NFKC_SCF; 04B1           # L&       CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+ 04B2          ; NFKC_SCF; 04B3           # L&       CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+ 04B4          ; NFKC_SCF; 04B5           # L&       CYRILLIC CAPITAL LIGATURE TE TSE
+ 04B6          ; NFKC_SCF; 04B7           # L&       CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+ 04B8          ; NFKC_SCF; 04B9           # L&       CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+ 04BA          ; NFKC_SCF; 04BB           # L&       CYRILLIC CAPITAL LETTER SHHA
+ 04BC          ; NFKC_SCF; 04BD           # L&       CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+ 04BE          ; NFKC_SCF; 04BF           # L&       CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+ 04C0          ; NFKC_SCF; 04CF           # L&       CYRILLIC LETTER PALOCHKA
+ 04C1          ; NFKC_SCF; 04C2           # L&       CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+ 04C3          ; NFKC_SCF; 04C4           # L&       CYRILLIC CAPITAL LETTER KA WITH HOOK
+ 04C5          ; NFKC_SCF; 04C6           # L&       CYRILLIC CAPITAL LETTER EL WITH TAIL
+ 04C7          ; NFKC_SCF; 04C8           # L&       CYRILLIC CAPITAL LETTER EN WITH HOOK
+ 04C9          ; NFKC_SCF; 04CA           # L&       CYRILLIC CAPITAL LETTER EN WITH TAIL
+ 04CB          ; NFKC_SCF; 04CC           # L&       CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+ 04CD          ; NFKC_SCF; 04CE           # L&       CYRILLIC CAPITAL LETTER EM WITH TAIL
+ 04D0          ; NFKC_SCF; 04D1           # L&       CYRILLIC CAPITAL LETTER A WITH BREVE
+ 04D2          ; NFKC_SCF; 04D3           # L&       CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+ 04D4          ; NFKC_SCF; 04D5           # L&       CYRILLIC CAPITAL LIGATURE A IE
+ 04D6          ; NFKC_SCF; 04D7           # L&       CYRILLIC CAPITAL LETTER IE WITH BREVE
+ 04D8          ; NFKC_SCF; 04D9           # L&       CYRILLIC CAPITAL LETTER SCHWA
+ 04DA          ; NFKC_SCF; 04DB           # L&       CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+ 04DC          ; NFKC_SCF; 04DD           # L&       CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+ 04DE          ; NFKC_SCF; 04DF           # L&       CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+ 04E0          ; NFKC_SCF; 04E1           # L&       CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+ 04E2          ; NFKC_SCF; 04E3           # L&       CYRILLIC CAPITAL LETTER I WITH MACRON
+ 04E4          ; NFKC_SCF; 04E5           # L&       CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+ 04E6          ; NFKC_SCF; 04E7           # L&       CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+ 04E8          ; NFKC_SCF; 04E9           # L&       CYRILLIC CAPITAL LETTER BARRED O
+ 04EA          ; NFKC_SCF; 04EB           # L&       CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+ 04EC          ; NFKC_SCF; 04ED           # L&       CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+ 04EE          ; NFKC_SCF; 04EF           # L&       CYRILLIC CAPITAL LETTER U WITH MACRON
+ 04F0          ; NFKC_SCF; 04F1           # L&       CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+ 04F2          ; NFKC_SCF; 04F3           # L&       CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+ 04F4          ; NFKC_SCF; 04F5           # L&       CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+ 04F6          ; NFKC_SCF; 04F7           # L&       CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+ 04F8          ; NFKC_SCF; 04F9           # L&       CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+ 04FA          ; NFKC_SCF; 04FB           # L&       CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+ 04FC          ; NFKC_SCF; 04FD           # L&       CYRILLIC CAPITAL LETTER HA WITH HOOK
+ 04FE          ; NFKC_SCF; 04FF           # L&       CYRILLIC CAPITAL LETTER HA WITH STROKE
+ 0500          ; NFKC_SCF; 0501           # L&       CYRILLIC CAPITAL LETTER KOMI DE
+ 0502          ; NFKC_SCF; 0503           # L&       CYRILLIC CAPITAL LETTER KOMI DJE
+ 0504          ; NFKC_SCF; 0505           # L&       CYRILLIC CAPITAL LETTER KOMI ZJE
+ 0506          ; NFKC_SCF; 0507           # L&       CYRILLIC CAPITAL LETTER KOMI DZJE
+ 0508          ; NFKC_SCF; 0509           # L&       CYRILLIC CAPITAL LETTER KOMI LJE
+ 050A          ; NFKC_SCF; 050B           # L&       CYRILLIC CAPITAL LETTER KOMI NJE
+ 050C          ; NFKC_SCF; 050D           # L&       CYRILLIC CAPITAL LETTER KOMI SJE
+ 050E          ; NFKC_SCF; 050F           # L&       CYRILLIC CAPITAL LETTER KOMI TJE
+ 0510          ; NFKC_SCF; 0511           # L&       CYRILLIC CAPITAL LETTER REVERSED ZE
+ 0512          ; NFKC_SCF; 0513           # L&       CYRILLIC CAPITAL LETTER EL WITH HOOK
+ 0514          ; NFKC_SCF; 0515           # L&       CYRILLIC CAPITAL LETTER LHA
+ 0516          ; NFKC_SCF; 0517           # L&       CYRILLIC CAPITAL LETTER RHA
+ 0518          ; NFKC_SCF; 0519           # L&       CYRILLIC CAPITAL LETTER YAE
+ 051A          ; NFKC_SCF; 051B           # L&       CYRILLIC CAPITAL LETTER QA
+ 051C          ; NFKC_SCF; 051D           # L&       CYRILLIC CAPITAL LETTER WE
+ 051E          ; NFKC_SCF; 051F           # L&       CYRILLIC CAPITAL LETTER ALEUT KA
+ 0520          ; NFKC_SCF; 0521           # L&       CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+ 0522          ; NFKC_SCF; 0523           # L&       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+ 0524          ; NFKC_SCF; 0525           # L&       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
+ 0526          ; NFKC_SCF; 0527           # L&       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+ 0528          ; NFKC_SCF; 0529           # L&       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+ 052A          ; NFKC_SCF; 052B           # L&       CYRILLIC CAPITAL LETTER DZZHE
+ 052C          ; NFKC_SCF; 052D           # L&       CYRILLIC CAPITAL LETTER DCHE
+ 052E          ; NFKC_SCF; 052F           # L&       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+ 0531          ; NFKC_SCF; 0561           # L&       ARMENIAN CAPITAL LETTER AYB
+ 0532          ; NFKC_SCF; 0562           # L&       ARMENIAN CAPITAL LETTER BEN
+ 0533          ; NFKC_SCF; 0563           # L&       ARMENIAN CAPITAL LETTER GIM
+ 0534          ; NFKC_SCF; 0564           # L&       ARMENIAN CAPITAL LETTER DA
+ 0535          ; NFKC_SCF; 0565           # L&       ARMENIAN CAPITAL LETTER ECH
+ 0536          ; NFKC_SCF; 0566           # L&       ARMENIAN CAPITAL LETTER ZA
+ 0537          ; NFKC_SCF; 0567           # L&       ARMENIAN CAPITAL LETTER EH
+ 0538          ; NFKC_SCF; 0568           # L&       ARMENIAN CAPITAL LETTER ET
+ 0539          ; NFKC_SCF; 0569           # L&       ARMENIAN CAPITAL LETTER TO
+ 053A          ; NFKC_SCF; 056A           # L&       ARMENIAN CAPITAL LETTER ZHE
+ 053B          ; NFKC_SCF; 056B           # L&       ARMENIAN CAPITAL LETTER INI
+ 053C          ; NFKC_SCF; 056C           # L&       ARMENIAN CAPITAL LETTER LIWN
+ 053D          ; NFKC_SCF; 056D           # L&       ARMENIAN CAPITAL LETTER XEH
+ 053E          ; NFKC_SCF; 056E           # L&       ARMENIAN CAPITAL LETTER CA
+ 053F          ; NFKC_SCF; 056F           # L&       ARMENIAN CAPITAL LETTER KEN
+ 0540          ; NFKC_SCF; 0570           # L&       ARMENIAN CAPITAL LETTER HO
+ 0541          ; NFKC_SCF; 0571           # L&       ARMENIAN CAPITAL LETTER JA
+ 0542          ; NFKC_SCF; 0572           # L&       ARMENIAN CAPITAL LETTER GHAD
+ 0543          ; NFKC_SCF; 0573           # L&       ARMENIAN CAPITAL LETTER CHEH
+ 0544          ; NFKC_SCF; 0574           # L&       ARMENIAN CAPITAL LETTER MEN
+ 0545          ; NFKC_SCF; 0575           # L&       ARMENIAN CAPITAL LETTER YI
+ 0546          ; NFKC_SCF; 0576           # L&       ARMENIAN CAPITAL LETTER NOW
+ 0547          ; NFKC_SCF; 0577           # L&       ARMENIAN CAPITAL LETTER SHA
+ 0548          ; NFKC_SCF; 0578           # L&       ARMENIAN CAPITAL LETTER VO
+ 0549          ; NFKC_SCF; 0579           # L&       ARMENIAN CAPITAL LETTER CHA
+ 054A          ; NFKC_SCF; 057A           # L&       ARMENIAN CAPITAL LETTER PEH
+ 054B          ; NFKC_SCF; 057B           # L&       ARMENIAN CAPITAL LETTER JHEH
+ 054C          ; NFKC_SCF; 057C           # L&       ARMENIAN CAPITAL LETTER RA
+ 054D          ; NFKC_SCF; 057D           # L&       ARMENIAN CAPITAL LETTER SEH
+ 054E          ; NFKC_SCF; 057E           # L&       ARMENIAN CAPITAL LETTER VEW
+ 054F          ; NFKC_SCF; 057F           # L&       ARMENIAN CAPITAL LETTER TIWN
+ 0550          ; NFKC_SCF; 0580           # L&       ARMENIAN CAPITAL LETTER REH
+ 0551          ; NFKC_SCF; 0581           # L&       ARMENIAN CAPITAL LETTER CO
+ 0552          ; NFKC_SCF; 0582           # L&       ARMENIAN CAPITAL LETTER YIWN
+ 0553          ; NFKC_SCF; 0583           # L&       ARMENIAN CAPITAL LETTER PIWR
+ 0554          ; NFKC_SCF; 0584           # L&       ARMENIAN CAPITAL LETTER KEH
+ 0555          ; NFKC_SCF; 0585           # L&       ARMENIAN CAPITAL LETTER OH
+ 0556          ; NFKC_SCF; 0586           # L&       ARMENIAN CAPITAL LETTER FEH
+ 0587          ; NFKC_SCF; 0565 0582      # L&       ARMENIAN SMALL LIGATURE ECH YIWN
+ 061C          ; NFKC_SCF;                # Cf       ARABIC LETTER MARK
+ 0675          ; NFKC_SCF; 0627 0674      # Lo       ARABIC LETTER HIGH HAMZA ALEF
+ 0676          ; NFKC_SCF; 0648 0674      # Lo       ARABIC LETTER HIGH HAMZA WAW
+ 0677          ; NFKC_SCF; 06C7 0674      # Lo       ARABIC LETTER U WITH HAMZA ABOVE
+ 0678          ; NFKC_SCF; 064A 0674      # Lo       ARABIC LETTER HIGH HAMZA YEH
+ 0958          ; NFKC_SCF; 0915 093C      # Lo       DEVANAGARI LETTER QA
+ 0959          ; NFKC_SCF; 0916 093C      # Lo       DEVANAGARI LETTER KHHA
+ 095A          ; NFKC_SCF; 0917 093C      # Lo       DEVANAGARI LETTER GHHA
+ 095B          ; NFKC_SCF; 091C 093C      # Lo       DEVANAGARI LETTER ZA
+ 095C          ; NFKC_SCF; 0921 093C      # Lo       DEVANAGARI LETTER DDDHA
+ 095D          ; NFKC_SCF; 0922 093C      # Lo       DEVANAGARI LETTER RHA
+ 095E          ; NFKC_SCF; 092B 093C      # Lo       DEVANAGARI LETTER FA
+ 095F          ; NFKC_SCF; 092F 093C      # Lo       DEVANAGARI LETTER YYA
+ 09DC          ; NFKC_SCF; 09A1 09BC      # Lo       BENGALI LETTER RRA
+ 09DD          ; NFKC_SCF; 09A2 09BC      # Lo       BENGALI LETTER RHA
+ 09DF          ; NFKC_SCF; 09AF 09BC      # Lo       BENGALI LETTER YYA
+ 0A33          ; NFKC_SCF; 0A32 0A3C      # Lo       GURMUKHI LETTER LLA
+ 0A36          ; NFKC_SCF; 0A38 0A3C      # Lo       GURMUKHI LETTER SHA
+ 0A59          ; NFKC_SCF; 0A16 0A3C      # Lo       GURMUKHI LETTER KHHA
+ 0A5A          ; NFKC_SCF; 0A17 0A3C      # Lo       GURMUKHI LETTER GHHA
+ 0A5B          ; NFKC_SCF; 0A1C 0A3C      # Lo       GURMUKHI LETTER ZA
+ 0A5E          ; NFKC_SCF; 0A2B 0A3C      # Lo       GURMUKHI LETTER FA
+ 0B5C          ; NFKC_SCF; 0B21 0B3C      # Lo       ORIYA LETTER RRA
+ 0B5D          ; NFKC_SCF; 0B22 0B3C      # Lo       ORIYA LETTER RHA
+ 0E33          ; NFKC_SCF; 0E4D 0E32      # Lo       THAI CHARACTER SARA AM
+ 0EB3          ; NFKC_SCF; 0ECD 0EB2      # Lo       LAO VOWEL SIGN AM
+ 0EDC          ; NFKC_SCF; 0EAB 0E99      # Lo       LAO HO NO
+ 0EDD          ; NFKC_SCF; 0EAB 0EA1      # Lo       LAO HO MO
+ 0F0C          ; NFKC_SCF; 0F0B           # Po       TIBETAN MARK DELIMITER TSHEG BSTAR
+ 0F43          ; NFKC_SCF; 0F42 0FB7      # Lo       TIBETAN LETTER GHA
+ 0F4D          ; NFKC_SCF; 0F4C 0FB7      # Lo       TIBETAN LETTER DDHA
+ 0F52          ; NFKC_SCF; 0F51 0FB7      # Lo       TIBETAN LETTER DHA
+ 0F57          ; NFKC_SCF; 0F56 0FB7      # Lo       TIBETAN LETTER BHA
+ 0F5C          ; NFKC_SCF; 0F5B 0FB7      # Lo       TIBETAN LETTER DZHA
+ 0F69          ; NFKC_SCF; 0F40 0FB5      # Lo       TIBETAN LETTER KSSA
+ 0F73          ; NFKC_SCF; 0F71 0F72      # Mn       TIBETAN VOWEL SIGN II
+ 0F75          ; NFKC_SCF; 0F71 0F74      # Mn       TIBETAN VOWEL SIGN UU
+ 0F76          ; NFKC_SCF; 0FB2 0F80      # Mn       TIBETAN VOWEL SIGN VOCALIC R
+ 0F77          ; NFKC_SCF; 0FB2 0F71 0F80 # Mn       TIBETAN VOWEL SIGN VOCALIC RR
+ 0F78          ; NFKC_SCF; 0FB3 0F80      # Mn       TIBETAN VOWEL SIGN VOCALIC L
+ 0F79          ; NFKC_SCF; 0FB3 0F71 0F80 # Mn       TIBETAN VOWEL SIGN VOCALIC LL
+ 0F81          ; NFKC_SCF; 0F71 0F80      # Mn       TIBETAN VOWEL SIGN REVERSED II
+ 0F93          ; NFKC_SCF; 0F92 0FB7      # Mn       TIBETAN SUBJOINED LETTER GHA
+ 0F9D          ; NFKC_SCF; 0F9C 0FB7      # Mn       TIBETAN SUBJOINED LETTER DDHA
+ 0FA2          ; NFKC_SCF; 0FA1 0FB7      # Mn       TIBETAN SUBJOINED LETTER DHA
+ 0FA7          ; NFKC_SCF; 0FA6 0FB7      # Mn       TIBETAN SUBJOINED LETTER BHA
+ 0FAC          ; NFKC_SCF; 0FAB 0FB7      # Mn       TIBETAN SUBJOINED LETTER DZHA
+ 0FB9          ; NFKC_SCF; 0F90 0FB5      # Mn       TIBETAN SUBJOINED LETTER KSSA
+ 10A0          ; NFKC_SCF; 2D00           # L&       GEORGIAN CAPITAL LETTER AN
+ 10A1          ; NFKC_SCF; 2D01           # L&       GEORGIAN CAPITAL LETTER BAN
+ 10A2          ; NFKC_SCF; 2D02           # L&       GEORGIAN CAPITAL LETTER GAN
+ 10A3          ; NFKC_SCF; 2D03           # L&       GEORGIAN CAPITAL LETTER DON
+ 10A4          ; NFKC_SCF; 2D04           # L&       GEORGIAN CAPITAL LETTER EN
+ 10A5          ; NFKC_SCF; 2D05           # L&       GEORGIAN CAPITAL LETTER VIN
+ 10A6          ; NFKC_SCF; 2D06           # L&       GEORGIAN CAPITAL LETTER ZEN
+ 10A7          ; NFKC_SCF; 2D07           # L&       GEORGIAN CAPITAL LETTER TAN
+ 10A8          ; NFKC_SCF; 2D08           # L&       GEORGIAN CAPITAL LETTER IN
+ 10A9          ; NFKC_SCF; 2D09           # L&       GEORGIAN CAPITAL LETTER KAN
+ 10AA          ; NFKC_SCF; 2D0A           # L&       GEORGIAN CAPITAL LETTER LAS
+ 10AB          ; NFKC_SCF; 2D0B           # L&       GEORGIAN CAPITAL LETTER MAN
+ 10AC          ; NFKC_SCF; 2D0C           # L&       GEORGIAN CAPITAL LETTER NAR
+ 10AD          ; NFKC_SCF; 2D0D           # L&       GEORGIAN CAPITAL LETTER ON
+ 10AE          ; NFKC_SCF; 2D0E           # L&       GEORGIAN CAPITAL LETTER PAR
+ 10AF          ; NFKC_SCF; 2D0F           # L&       GEORGIAN CAPITAL LETTER ZHAR
+ 10B0          ; NFKC_SCF; 2D10           # L&       GEORGIAN CAPITAL LETTER RAE
+ 10B1          ; NFKC_SCF; 2D11           # L&       GEORGIAN CAPITAL LETTER SAN
+ 10B2          ; NFKC_SCF; 2D12           # L&       GEORGIAN CAPITAL LETTER TAR
+ 10B3          ; NFKC_SCF; 2D13           # L&       GEORGIAN CAPITAL LETTER UN
+ 10B4          ; NFKC_SCF; 2D14           # L&       GEORGIAN CAPITAL LETTER PHAR
+ 10B5          ; NFKC_SCF; 2D15           # L&       GEORGIAN CAPITAL LETTER KHAR
+ 10B6          ; NFKC_SCF; 2D16           # L&       GEORGIAN CAPITAL LETTER GHAN
+ 10B7          ; NFKC_SCF; 2D17           # L&       GEORGIAN CAPITAL LETTER QAR
+ 10B8          ; NFKC_SCF; 2D18           # L&       GEORGIAN CAPITAL LETTER SHIN
+ 10B9          ; NFKC_SCF; 2D19           # L&       GEORGIAN CAPITAL LETTER CHIN
+ 10BA          ; NFKC_SCF; 2D1A           # L&       GEORGIAN CAPITAL LETTER CAN
+ 10BB          ; NFKC_SCF; 2D1B           # L&       GEORGIAN CAPITAL LETTER JIL
+ 10BC          ; NFKC_SCF; 2D1C           # L&       GEORGIAN CAPITAL LETTER CIL
+ 10BD          ; NFKC_SCF; 2D1D           # L&       GEORGIAN CAPITAL LETTER CHAR
+ 10BE          ; NFKC_SCF; 2D1E           # L&       GEORGIAN CAPITAL LETTER XAN
+ 10BF          ; NFKC_SCF; 2D1F           # L&       GEORGIAN CAPITAL LETTER JHAN
+ 10C0          ; NFKC_SCF; 2D20           # L&       GEORGIAN CAPITAL LETTER HAE
+ 10C1          ; NFKC_SCF; 2D21           # L&       GEORGIAN CAPITAL LETTER HE
+ 10C2          ; NFKC_SCF; 2D22           # L&       GEORGIAN CAPITAL LETTER HIE
+ 10C3          ; NFKC_SCF; 2D23           # L&       GEORGIAN CAPITAL LETTER WE
+ 10C4          ; NFKC_SCF; 2D24           # L&       GEORGIAN CAPITAL LETTER HAR
+ 10C5          ; NFKC_SCF; 2D25           # L&       GEORGIAN CAPITAL LETTER HOE
+ 10C7          ; NFKC_SCF; 2D27           # L&       GEORGIAN CAPITAL LETTER YN
+ 10CD          ; NFKC_SCF; 2D2D           # L&       GEORGIAN CAPITAL LETTER AEN
+ 10FC          ; NFKC_SCF; 10DC           # Lm       MODIFIER LETTER GEORGIAN NAR
+ 115F..1160    ; NFKC_SCF;                # Lo   [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
+ 13F8          ; NFKC_SCF; 13F0           # L&       CHEROKEE SMALL LETTER YE
+ 13F9          ; NFKC_SCF; 13F1           # L&       CHEROKEE SMALL LETTER YI
+ 13FA          ; NFKC_SCF; 13F2           # L&       CHEROKEE SMALL LETTER YO
+ 13FB          ; NFKC_SCF; 13F3           # L&       CHEROKEE SMALL LETTER YU
+ 13FC          ; NFKC_SCF; 13F4           # L&       CHEROKEE SMALL LETTER YV
+ 13FD          ; NFKC_SCF; 13F5           # L&       CHEROKEE SMALL LETTER MV
+ 17B4..17B5    ; NFKC_SCF;                # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+ 180B..180D    ; NFKC_SCF;                # Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+ 180E          ; NFKC_SCF;                # Cf       MONGOLIAN VOWEL SEPARATOR
+ 180F          ; NFKC_SCF;                # Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR
+ 1C80          ; NFKC_SCF; 0432           # L&       CYRILLIC SMALL LETTER ROUNDED VE
+ 1C81          ; NFKC_SCF; 0434           # L&       CYRILLIC SMALL LETTER LONG-LEGGED DE
+ 1C82          ; NFKC_SCF; 043E           # L&       CYRILLIC SMALL LETTER NARROW O
+ 1C83          ; NFKC_SCF; 0441           # L&       CYRILLIC SMALL LETTER WIDE ES
+ 1C84..1C85    ; NFKC_SCF; 0442           # L&   [2] CYRILLIC SMALL LETTER TALL TE..CYRILLIC SMALL LETTER THREE-LEGGED TE
+ 1C86          ; NFKC_SCF; 044A           # L&       CYRILLIC SMALL LETTER TALL HARD SIGN
+ 1C87          ; NFKC_SCF; 0463           # L&       CYRILLIC SMALL LETTER TALL YAT
+ 1C88          ; NFKC_SCF; A64B           # L&       CYRILLIC SMALL LETTER UNBLENDED UK
+ 1C90          ; NFKC_SCF; 10D0           # L&       GEORGIAN MTAVRULI CAPITAL LETTER AN
+ 1C91          ; NFKC_SCF; 10D1           # L&       GEORGIAN MTAVRULI CAPITAL LETTER BAN
+ 1C92          ; NFKC_SCF; 10D2           # L&       GEORGIAN MTAVRULI CAPITAL LETTER GAN
+ 1C93          ; NFKC_SCF; 10D3           # L&       GEORGIAN MTAVRULI CAPITAL LETTER DON
+ 1C94          ; NFKC_SCF; 10D4           # L&       GEORGIAN MTAVRULI CAPITAL LETTER EN
+ 1C95          ; NFKC_SCF; 10D5           # L&       GEORGIAN MTAVRULI CAPITAL LETTER VIN
+ 1C96          ; NFKC_SCF; 10D6           # L&       GEORGIAN MTAVRULI CAPITAL LETTER ZEN
+ 1C97          ; NFKC_SCF; 10D7           # L&       GEORGIAN MTAVRULI CAPITAL LETTER TAN
+ 1C98          ; NFKC_SCF; 10D8           # L&       GEORGIAN MTAVRULI CAPITAL LETTER IN
+ 1C99          ; NFKC_SCF; 10D9           # L&       GEORGIAN MTAVRULI CAPITAL LETTER KAN
+ 1C9A          ; NFKC_SCF; 10DA           # L&       GEORGIAN MTAVRULI CAPITAL LETTER LAS
+ 1C9B          ; NFKC_SCF; 10DB           # L&       GEORGIAN MTAVRULI CAPITAL LETTER MAN
+ 1C9C          ; NFKC_SCF; 10DC           # L&       GEORGIAN MTAVRULI CAPITAL LETTER NAR
+ 1C9D          ; NFKC_SCF; 10DD           # L&       GEORGIAN MTAVRULI CAPITAL LETTER ON
+ 1C9E          ; NFKC_SCF; 10DE           # L&       GEORGIAN MTAVRULI CAPITAL LETTER PAR
+ 1C9F          ; NFKC_SCF; 10DF           # L&       GEORGIAN MTAVRULI CAPITAL LETTER ZHAR
+ 1CA0          ; NFKC_SCF; 10E0           # L&       GEORGIAN MTAVRULI CAPITAL LETTER RAE
+ 1CA1          ; NFKC_SCF; 10E1           # L&       GEORGIAN MTAVRULI CAPITAL LETTER SAN
+ 1CA2          ; NFKC_SCF; 10E2           # L&       GEORGIAN MTAVRULI CAPITAL LETTER TAR
+ 1CA3          ; NFKC_SCF; 10E3           # L&       GEORGIAN MTAVRULI CAPITAL LETTER UN
+ 1CA4          ; NFKC_SCF; 10E4           # L&       GEORGIAN MTAVRULI CAPITAL LETTER PHAR
+ 1CA5          ; NFKC_SCF; 10E5           # L&       GEORGIAN MTAVRULI CAPITAL LETTER KHAR
+ 1CA6          ; NFKC_SCF; 10E6           # L&       GEORGIAN MTAVRULI CAPITAL LETTER GHAN
+ 1CA7          ; NFKC_SCF; 10E7           # L&       GEORGIAN MTAVRULI CAPITAL LETTER QAR
+ 1CA8          ; NFKC_SCF; 10E8           # L&       GEORGIAN MTAVRULI CAPITAL LETTER SHIN
+ 1CA9          ; NFKC_SCF; 10E9           # L&       GEORGIAN MTAVRULI CAPITAL LETTER CHIN
+ 1CAA          ; NFKC_SCF; 10EA           # L&       GEORGIAN MTAVRULI CAPITAL LETTER CAN
+ 1CAB          ; NFKC_SCF; 10EB           # L&       GEORGIAN MTAVRULI CAPITAL LETTER JIL
+ 1CAC          ; NFKC_SCF; 10EC           # L&       GEORGIAN MTAVRULI CAPITAL LETTER CIL
+ 1CAD          ; NFKC_SCF; 10ED           # L&       GEORGIAN MTAVRULI CAPITAL LETTER CHAR
+ 1CAE          ; NFKC_SCF; 10EE           # L&       GEORGIAN MTAVRULI CAPITAL LETTER XAN
+ 1CAF          ; NFKC_SCF; 10EF           # L&       GEORGIAN MTAVRULI CAPITAL LETTER JHAN
+ 1CB0          ; NFKC_SCF; 10F0           # L&       GEORGIAN MTAVRULI CAPITAL LETTER HAE
+ 1CB1          ; NFKC_SCF; 10F1           # L&       GEORGIAN MTAVRULI CAPITAL LETTER HE
+ 1CB2          ; NFKC_SCF; 10F2           # L&       GEORGIAN MTAVRULI CAPITAL LETTER HIE
+ 1CB3          ; NFKC_SCF; 10F3           # L&       GEORGIAN MTAVRULI CAPITAL LETTER WE
+ 1CB4          ; NFKC_SCF; 10F4           # L&       GEORGIAN MTAVRULI CAPITAL LETTER HAR
+ 1CB5          ; NFKC_SCF; 10F5           # L&       GEORGIAN MTAVRULI CAPITAL LETTER HOE
+ 1CB6          ; NFKC_SCF; 10F6           # L&       GEORGIAN MTAVRULI CAPITAL LETTER FI
+ 1CB7          ; NFKC_SCF; 10F7           # L&       GEORGIAN MTAVRULI CAPITAL LETTER YN
+ 1CB8          ; NFKC_SCF; 10F8           # L&       GEORGIAN MTAVRULI CAPITAL LETTER ELIFI
+ 1CB9          ; NFKC_SCF; 10F9           # L&       GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN
+ 1CBA          ; NFKC_SCF; 10FA           # L&       GEORGIAN MTAVRULI CAPITAL LETTER AIN
+ 1CBD          ; NFKC_SCF; 10FD           # L&       GEORGIAN MTAVRULI CAPITAL LETTER AEN
+ 1CBE          ; NFKC_SCF; 10FE           # L&       GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN
+ 1CBF          ; NFKC_SCF; 10FF           # L&       GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
+ 1D2C          ; NFKC_SCF; 0061           # Lm       MODIFIER LETTER CAPITAL A
+ 1D2D          ; NFKC_SCF; 00E6           # Lm       MODIFIER LETTER CAPITAL AE
+ 1D2E          ; NFKC_SCF; 0062           # Lm       MODIFIER LETTER CAPITAL B
+ 1D30          ; NFKC_SCF; 0064           # Lm       MODIFIER LETTER CAPITAL D
+ 1D31          ; NFKC_SCF; 0065           # Lm       MODIFIER LETTER CAPITAL E
+ 1D32          ; NFKC_SCF; 01DD           # Lm       MODIFIER LETTER CAPITAL REVERSED E
+ 1D33          ; NFKC_SCF; 0067           # Lm       MODIFIER LETTER CAPITAL G
+ 1D34          ; NFKC_SCF; 0068           # Lm       MODIFIER LETTER CAPITAL H
+ 1D35          ; NFKC_SCF; 0069           # Lm       MODIFIER LETTER CAPITAL I
+ 1D36          ; NFKC_SCF; 006A           # Lm       MODIFIER LETTER CAPITAL J
+ 1D37          ; NFKC_SCF; 006B           # Lm       MODIFIER LETTER CAPITAL K
+ 1D38          ; NFKC_SCF; 006C           # Lm       MODIFIER LETTER CAPITAL L
+ 1D39          ; NFKC_SCF; 006D           # Lm       MODIFIER LETTER CAPITAL M
+ 1D3A          ; NFKC_SCF; 006E           # Lm       MODIFIER LETTER CAPITAL N
+ 1D3C          ; NFKC_SCF; 006F           # Lm       MODIFIER LETTER CAPITAL O
+ 1D3D          ; NFKC_SCF; 0223           # Lm       MODIFIER LETTER CAPITAL OU
+ 1D3E          ; NFKC_SCF; 0070           # Lm       MODIFIER LETTER CAPITAL P
+ 1D3F          ; NFKC_SCF; 0072           # Lm       MODIFIER LETTER CAPITAL R
+ 1D40          ; NFKC_SCF; 0074           # Lm       MODIFIER LETTER CAPITAL T
+ 1D41          ; NFKC_SCF; 0075           # Lm       MODIFIER LETTER CAPITAL U
+ 1D42          ; NFKC_SCF; 0077           # Lm       MODIFIER LETTER CAPITAL W
+ 1D43          ; NFKC_SCF; 0061           # Lm       MODIFIER LETTER SMALL A
+ 1D44          ; NFKC_SCF; 0250           # Lm       MODIFIER LETTER SMALL TURNED A
+ 1D45          ; NFKC_SCF; 0251           # Lm       MODIFIER LETTER SMALL ALPHA
+ 1D46          ; NFKC_SCF; 1D02           # Lm       MODIFIER LETTER SMALL TURNED AE
+ 1D47          ; NFKC_SCF; 0062           # Lm       MODIFIER LETTER SMALL B
+ 1D48          ; NFKC_SCF; 0064           # Lm       MODIFIER LETTER SMALL D
+ 1D49          ; NFKC_SCF; 0065           # Lm       MODIFIER LETTER SMALL E
+ 1D4A          ; NFKC_SCF; 0259           # Lm       MODIFIER LETTER SMALL SCHWA
+ 1D4B          ; NFKC_SCF; 025B           # Lm       MODIFIER LETTER SMALL OPEN E
+ 1D4C          ; NFKC_SCF; 025C           # Lm       MODIFIER LETTER SMALL TURNED OPEN E
+ 1D4D          ; NFKC_SCF; 0067           # Lm       MODIFIER LETTER SMALL G
+ 1D4F          ; NFKC_SCF; 006B           # Lm       MODIFIER LETTER SMALL K
+ 1D50          ; NFKC_SCF; 006D           # Lm       MODIFIER LETTER SMALL M
+ 1D51          ; NFKC_SCF; 014B           # Lm       MODIFIER LETTER SMALL ENG
+ 1D52          ; NFKC_SCF; 006F           # Lm       MODIFIER LETTER SMALL O
+ 1D53          ; NFKC_SCF; 0254           # Lm       MODIFIER LETTER SMALL OPEN O
+ 1D54          ; NFKC_SCF; 1D16           # Lm       MODIFIER LETTER SMALL TOP HALF O
+ 1D55          ; NFKC_SCF; 1D17           # Lm       MODIFIER LETTER SMALL BOTTOM HALF O
+ 1D56          ; NFKC_SCF; 0070           # Lm       MODIFIER LETTER SMALL P
+ 1D57          ; NFKC_SCF; 0074           # Lm       MODIFIER LETTER SMALL T
+ 1D58          ; NFKC_SCF; 0075           # Lm       MODIFIER LETTER SMALL U
+ 1D59          ; NFKC_SCF; 1D1D           # Lm       MODIFIER LETTER SMALL SIDEWAYS U
+ 1D5A          ; NFKC_SCF; 026F           # Lm       MODIFIER LETTER SMALL TURNED M
+ 1D5B          ; NFKC_SCF; 0076           # Lm       MODIFIER LETTER SMALL V
+ 1D5C          ; NFKC_SCF; 1D25           # Lm       MODIFIER LETTER SMALL AIN
+ 1D5D          ; NFKC_SCF; 03B2           # Lm       MODIFIER LETTER SMALL BETA
+ 1D5E          ; NFKC_SCF; 03B3           # Lm       MODIFIER LETTER SMALL GREEK GAMMA
+ 1D5F          ; NFKC_SCF; 03B4           # Lm       MODIFIER LETTER SMALL DELTA
+ 1D60          ; NFKC_SCF; 03C6           # Lm       MODIFIER LETTER SMALL GREEK PHI
+ 1D61          ; NFKC_SCF; 03C7           # Lm       MODIFIER LETTER SMALL CHI
+ 1D62          ; NFKC_SCF; 0069           # Lm       LATIN SUBSCRIPT SMALL LETTER I
+ 1D63          ; NFKC_SCF; 0072           # Lm       LATIN SUBSCRIPT SMALL LETTER R
+ 1D64          ; NFKC_SCF; 0075           # Lm       LATIN SUBSCRIPT SMALL LETTER U
+ 1D65          ; NFKC_SCF; 0076           # Lm       LATIN SUBSCRIPT SMALL LETTER V
+ 1D66          ; NFKC_SCF; 03B2           # Lm       GREEK SUBSCRIPT SMALL LETTER BETA
+ 1D67          ; NFKC_SCF; 03B3           # Lm       GREEK SUBSCRIPT SMALL LETTER GAMMA
+ 1D68          ; NFKC_SCF; 03C1           # Lm       GREEK SUBSCRIPT SMALL LETTER RHO
+ 1D69          ; NFKC_SCF; 03C6           # Lm       GREEK SUBSCRIPT SMALL LETTER PHI
+ 1D6A          ; NFKC_SCF; 03C7           # Lm       GREEK SUBSCRIPT SMALL LETTER CHI
+ 1D78          ; NFKC_SCF; 043D           # Lm       MODIFIER LETTER CYRILLIC EN
+ 1D9B          ; NFKC_SCF; 0252           # Lm       MODIFIER LETTER SMALL TURNED ALPHA
+ 1D9C          ; NFKC_SCF; 0063           # Lm       MODIFIER LETTER SMALL C
+ 1D9D          ; NFKC_SCF; 0255           # Lm       MODIFIER LETTER SMALL C WITH CURL
+ 1D9E          ; NFKC_SCF; 00F0           # Lm       MODIFIER LETTER SMALL ETH
+ 1D9F          ; NFKC_SCF; 025C           # Lm       MODIFIER LETTER SMALL REVERSED OPEN E
+ 1DA0          ; NFKC_SCF; 0066           # Lm       MODIFIER LETTER SMALL F
+ 1DA1          ; NFKC_SCF; 025F           # Lm       MODIFIER LETTER SMALL DOTLESS J WITH STROKE
+ 1DA2          ; NFKC_SCF; 0261           # Lm       MODIFIER LETTER SMALL SCRIPT G
+ 1DA3          ; NFKC_SCF; 0265           # Lm       MODIFIER LETTER SMALL TURNED H
+ 1DA4          ; NFKC_SCF; 0268           # Lm       MODIFIER LETTER SMALL I WITH STROKE
+ 1DA5          ; NFKC_SCF; 0269           # Lm       MODIFIER LETTER SMALL IOTA
+ 1DA6          ; NFKC_SCF; 026A           # Lm       MODIFIER LETTER SMALL CAPITAL I
+ 1DA7          ; NFKC_SCF; 1D7B           # Lm       MODIFIER LETTER SMALL CAPITAL I WITH STROKE
+ 1DA8          ; NFKC_SCF; 029D           # Lm       MODIFIER LETTER SMALL J WITH CROSSED-TAIL
+ 1DA9          ; NFKC_SCF; 026D           # Lm       MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
+ 1DAA          ; NFKC_SCF; 1D85           # Lm       MODIFIER LETTER SMALL L WITH PALATAL HOOK
+ 1DAB          ; NFKC_SCF; 029F           # Lm       MODIFIER LETTER SMALL CAPITAL L
+ 1DAC          ; NFKC_SCF; 0271           # Lm       MODIFIER LETTER SMALL M WITH HOOK
+ 1DAD          ; NFKC_SCF; 0270           # Lm       MODIFIER LETTER SMALL TURNED M WITH LONG LEG
+ 1DAE          ; NFKC_SCF; 0272           # Lm       MODIFIER LETTER SMALL N WITH LEFT HOOK
+ 1DAF          ; NFKC_SCF; 0273           # Lm       MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
+ 1DB0          ; NFKC_SCF; 0274           # Lm       MODIFIER LETTER SMALL CAPITAL N
+ 1DB1          ; NFKC_SCF; 0275           # Lm       MODIFIER LETTER SMALL BARRED O
+ 1DB2          ; NFKC_SCF; 0278           # Lm       MODIFIER LETTER SMALL PHI
+ 1DB3          ; NFKC_SCF; 0282           # Lm       MODIFIER LETTER SMALL S WITH HOOK
+ 1DB4          ; NFKC_SCF; 0283           # Lm       MODIFIER LETTER SMALL ESH
+ 1DB5          ; NFKC_SCF; 01AB           # Lm       MODIFIER LETTER SMALL T WITH PALATAL HOOK
+ 1DB6          ; NFKC_SCF; 0289           # Lm       MODIFIER LETTER SMALL U BAR
+ 1DB7          ; NFKC_SCF; 028A           # Lm       MODIFIER LETTER SMALL UPSILON
+ 1DB8          ; NFKC_SCF; 1D1C           # Lm       MODIFIER LETTER SMALL CAPITAL U
+ 1DB9          ; NFKC_SCF; 028B           # Lm       MODIFIER LETTER SMALL V WITH HOOK
+ 1DBA          ; NFKC_SCF; 028C           # Lm       MODIFIER LETTER SMALL TURNED V
+ 1DBB          ; NFKC_SCF; 007A           # Lm       MODIFIER LETTER SMALL Z
+ 1DBC          ; NFKC_SCF; 0290           # Lm       MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
+ 1DBD          ; NFKC_SCF; 0291           # Lm       MODIFIER LETTER SMALL Z WITH CURL
+ 1DBE          ; NFKC_SCF; 0292           # Lm       MODIFIER LETTER SMALL EZH
+ 1DBF          ; NFKC_SCF; 03B8           # Lm       MODIFIER LETTER SMALL THETA
+ 1E00          ; NFKC_SCF; 1E01           # L&       LATIN CAPITAL LETTER A WITH RING BELOW
+ 1E02          ; NFKC_SCF; 1E03           # L&       LATIN CAPITAL LETTER B WITH DOT ABOVE
+ 1E04          ; NFKC_SCF; 1E05           # L&       LATIN CAPITAL LETTER B WITH DOT BELOW
+ 1E06          ; NFKC_SCF; 1E07           # L&       LATIN CAPITAL LETTER B WITH LINE BELOW
+ 1E08          ; NFKC_SCF; 1E09           # L&       LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+ 1E0A          ; NFKC_SCF; 1E0B           # L&       LATIN CAPITAL LETTER D WITH DOT ABOVE
+ 1E0C          ; NFKC_SCF; 1E0D           # L&       LATIN CAPITAL LETTER D WITH DOT BELOW
+ 1E0E          ; NFKC_SCF; 1E0F           # L&       LATIN CAPITAL LETTER D WITH LINE BELOW
+ 1E10          ; NFKC_SCF; 1E11           # L&       LATIN CAPITAL LETTER D WITH CEDILLA
+ 1E12          ; NFKC_SCF; 1E13           # L&       LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+ 1E14          ; NFKC_SCF; 1E15           # L&       LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+ 1E16          ; NFKC_SCF; 1E17           # L&       LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+ 1E18          ; NFKC_SCF; 1E19           # L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+ 1E1A          ; NFKC_SCF; 1E1B           # L&       LATIN CAPITAL LETTER E WITH TILDE BELOW
+ 1E1C          ; NFKC_SCF; 1E1D           # L&       LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+ 1E1E          ; NFKC_SCF; 1E1F           # L&       LATIN CAPITAL LETTER F WITH DOT ABOVE
+ 1E20          ; NFKC_SCF; 1E21           # L&       LATIN CAPITAL LETTER G WITH MACRON
+ 1E22          ; NFKC_SCF; 1E23           # L&       LATIN CAPITAL LETTER H WITH DOT ABOVE
+ 1E24          ; NFKC_SCF; 1E25           # L&       LATIN CAPITAL LETTER H WITH DOT BELOW
+ 1E26          ; NFKC_SCF; 1E27           # L&       LATIN CAPITAL LETTER H WITH DIAERESIS
+ 1E28          ; NFKC_SCF; 1E29           # L&       LATIN CAPITAL LETTER H WITH CEDILLA
+ 1E2A          ; NFKC_SCF; 1E2B           # L&       LATIN CAPITAL LETTER H WITH BREVE BELOW
+ 1E2C          ; NFKC_SCF; 1E2D           # L&       LATIN CAPITAL LETTER I WITH TILDE BELOW
+ 1E2E          ; NFKC_SCF; 1E2F           # L&       LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+ 1E30          ; NFKC_SCF; 1E31           # L&       LATIN CAPITAL LETTER K WITH ACUTE
+ 1E32          ; NFKC_SCF; 1E33           # L&       LATIN CAPITAL LETTER K WITH DOT BELOW
+ 1E34          ; NFKC_SCF; 1E35           # L&       LATIN CAPITAL LETTER K WITH LINE BELOW
+ 1E36          ; NFKC_SCF; 1E37           # L&       LATIN CAPITAL LETTER L WITH DOT BELOW
+ 1E38          ; NFKC_SCF; 1E39           # L&       LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+ 1E3A          ; NFKC_SCF; 1E3B           # L&       LATIN CAPITAL LETTER L WITH LINE BELOW
+ 1E3C          ; NFKC_SCF; 1E3D           # L&       LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+ 1E3E          ; NFKC_SCF; 1E3F           # L&       LATIN CAPITAL LETTER M WITH ACUTE
+ 1E40          ; NFKC_SCF; 1E41           # L&       LATIN CAPITAL LETTER M WITH DOT ABOVE
+ 1E42          ; NFKC_SCF; 1E43           # L&       LATIN CAPITAL LETTER M WITH DOT BELOW
+ 1E44          ; NFKC_SCF; 1E45           # L&       LATIN CAPITAL LETTER N WITH DOT ABOVE
+ 1E46          ; NFKC_SCF; 1E47           # L&       LATIN CAPITAL LETTER N WITH DOT BELOW
+ 1E48          ; NFKC_SCF; 1E49           # L&       LATIN CAPITAL LETTER N WITH LINE BELOW
+ 1E4A          ; NFKC_SCF; 1E4B           # L&       LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+ 1E4C          ; NFKC_SCF; 1E4D           # L&       LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+ 1E4E          ; NFKC_SCF; 1E4F           # L&       LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+ 1E50          ; NFKC_SCF; 1E51           # L&       LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+ 1E52          ; NFKC_SCF; 1E53           # L&       LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+ 1E54          ; NFKC_SCF; 1E55           # L&       LATIN CAPITAL LETTER P WITH ACUTE
+ 1E56          ; NFKC_SCF; 1E57           # L&       LATIN CAPITAL LETTER P WITH DOT ABOVE
+ 1E58          ; NFKC_SCF; 1E59           # L&       LATIN CAPITAL LETTER R WITH DOT ABOVE
+ 1E5A          ; NFKC_SCF; 1E5B           # L&       LATIN CAPITAL LETTER R WITH DOT BELOW
+ 1E5C          ; NFKC_SCF; 1E5D           # L&       LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+ 1E5E          ; NFKC_SCF; 1E5F           # L&       LATIN CAPITAL LETTER R WITH LINE BELOW
+ 1E60          ; NFKC_SCF; 1E61           # L&       LATIN CAPITAL LETTER S WITH DOT ABOVE
+ 1E62          ; NFKC_SCF; 1E63           # L&       LATIN CAPITAL LETTER S WITH DOT BELOW
+ 1E64          ; NFKC_SCF; 1E65           # L&       LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+ 1E66          ; NFKC_SCF; 1E67           # L&       LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+ 1E68          ; NFKC_SCF; 1E69           # L&       LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+ 1E6A          ; NFKC_SCF; 1E6B           # L&       LATIN CAPITAL LETTER T WITH DOT ABOVE
+ 1E6C          ; NFKC_SCF; 1E6D           # L&       LATIN CAPITAL LETTER T WITH DOT BELOW
+ 1E6E          ; NFKC_SCF; 1E6F           # L&       LATIN CAPITAL LETTER T WITH LINE BELOW
+ 1E70          ; NFKC_SCF; 1E71           # L&       LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+ 1E72          ; NFKC_SCF; 1E73           # L&       LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+ 1E74          ; NFKC_SCF; 1E75           # L&       LATIN CAPITAL LETTER U WITH TILDE BELOW
+ 1E76          ; NFKC_SCF; 1E77           # L&       LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+ 1E78          ; NFKC_SCF; 1E79           # L&       LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+ 1E7A          ; NFKC_SCF; 1E7B           # L&       LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+ 1E7C          ; NFKC_SCF; 1E7D           # L&       LATIN CAPITAL LETTER V WITH TILDE
+ 1E7E          ; NFKC_SCF; 1E7F           # L&       LATIN CAPITAL LETTER V WITH DOT BELOW
+ 1E80          ; NFKC_SCF; 1E81           # L&       LATIN CAPITAL LETTER W WITH GRAVE
+ 1E82          ; NFKC_SCF; 1E83           # L&       LATIN CAPITAL LETTER W WITH ACUTE
+ 1E84          ; NFKC_SCF; 1E85           # L&       LATIN CAPITAL LETTER W WITH DIAERESIS
+ 1E86          ; NFKC_SCF; 1E87           # L&       LATIN CAPITAL LETTER W WITH DOT ABOVE
+ 1E88          ; NFKC_SCF; 1E89           # L&       LATIN CAPITAL LETTER W WITH DOT BELOW
+ 1E8A          ; NFKC_SCF; 1E8B           # L&       LATIN CAPITAL LETTER X WITH DOT ABOVE
+ 1E8C          ; NFKC_SCF; 1E8D           # L&       LATIN CAPITAL LETTER X WITH DIAERESIS
+ 1E8E          ; NFKC_SCF; 1E8F           # L&       LATIN CAPITAL LETTER Y WITH DOT ABOVE
+ 1E90          ; NFKC_SCF; 1E91           # L&       LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+ 1E92          ; NFKC_SCF; 1E93           # L&       LATIN CAPITAL LETTER Z WITH DOT BELOW
+ 1E94          ; NFKC_SCF; 1E95           # L&       LATIN CAPITAL LETTER Z WITH LINE BELOW
+ 1E9A          ; NFKC_SCF; 0061 02BE      # L&       LATIN SMALL LETTER A WITH RIGHT HALF RING
+ 1E9B          ; NFKC_SCF; 1E61           # L&       LATIN SMALL LETTER LONG S WITH DOT ABOVE
+ 1E9E          ; NFKC_SCF; 00DF           # L&       LATIN CAPITAL LETTER SHARP S
+ 1EA0          ; NFKC_SCF; 1EA1           # L&       LATIN CAPITAL LETTER A WITH DOT BELOW
+ 1EA2          ; NFKC_SCF; 1EA3           # L&       LATIN CAPITAL LETTER A WITH HOOK ABOVE
+ 1EA4          ; NFKC_SCF; 1EA5           # L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+ 1EA6          ; NFKC_SCF; 1EA7           # L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+ 1EA8          ; NFKC_SCF; 1EA9           # L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+ 1EAA          ; NFKC_SCF; 1EAB           # L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+ 1EAC          ; NFKC_SCF; 1EAD           # L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ 1EAE          ; NFKC_SCF; 1EAF           # L&       LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+ 1EB0          ; NFKC_SCF; 1EB1           # L&       LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+ 1EB2          ; NFKC_SCF; 1EB3           # L&       LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+ 1EB4          ; NFKC_SCF; 1EB5           # L&       LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+ 1EB6          ; NFKC_SCF; 1EB7           # L&       LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+ 1EB8          ; NFKC_SCF; 1EB9           # L&       LATIN CAPITAL LETTER E WITH DOT BELOW
+ 1EBA          ; NFKC_SCF; 1EBB           # L&       LATIN CAPITAL LETTER E WITH HOOK ABOVE
+ 1EBC          ; NFKC_SCF; 1EBD           # L&       LATIN CAPITAL LETTER E WITH TILDE
+ 1EBE          ; NFKC_SCF; 1EBF           # L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+ 1EC0          ; NFKC_SCF; 1EC1           # L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+ 1EC2          ; NFKC_SCF; 1EC3           # L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+ 1EC4          ; NFKC_SCF; 1EC5           # L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+ 1EC6          ; NFKC_SCF; 1EC7           # L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ 1EC8          ; NFKC_SCF; 1EC9           # L&       LATIN CAPITAL LETTER I WITH HOOK ABOVE
+ 1ECA          ; NFKC_SCF; 1ECB           # L&       LATIN CAPITAL LETTER I WITH DOT BELOW
+ 1ECC          ; NFKC_SCF; 1ECD           # L&       LATIN CAPITAL LETTER O WITH DOT BELOW
+ 1ECE          ; NFKC_SCF; 1ECF           # L&       LATIN CAPITAL LETTER O WITH HOOK ABOVE
+ 1ED0          ; NFKC_SCF; 1ED1           # L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+ 1ED2          ; NFKC_SCF; 1ED3           # L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+ 1ED4          ; NFKC_SCF; 1ED5           # L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+ 1ED6          ; NFKC_SCF; 1ED7           # L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+ 1ED8          ; NFKC_SCF; 1ED9           # L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ 1EDA          ; NFKC_SCF; 1EDB           # L&       LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+ 1EDC          ; NFKC_SCF; 1EDD           # L&       LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+ 1EDE          ; NFKC_SCF; 1EDF           # L&       LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+ 1EE0          ; NFKC_SCF; 1EE1           # L&       LATIN CAPITAL LETTER O WITH HORN AND TILDE
+ 1EE2          ; NFKC_SCF; 1EE3           # L&       LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+ 1EE4          ; NFKC_SCF; 1EE5           # L&       LATIN CAPITAL LETTER U WITH DOT BELOW
+ 1EE6          ; NFKC_SCF; 1EE7           # L&       LATIN CAPITAL LETTER U WITH HOOK ABOVE
+ 1EE8          ; NFKC_SCF; 1EE9           # L&       LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+ 1EEA          ; NFKC_SCF; 1EEB           # L&       LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+ 1EEC          ; NFKC_SCF; 1EED           # L&       LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+ 1EEE          ; NFKC_SCF; 1EEF           # L&       LATIN CAPITAL LETTER U WITH HORN AND TILDE
+ 1EF0          ; NFKC_SCF; 1EF1           # L&       LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+ 1EF2          ; NFKC_SCF; 1EF3           # L&       LATIN CAPITAL LETTER Y WITH GRAVE
+ 1EF4          ; NFKC_SCF; 1EF5           # L&       LATIN CAPITAL LETTER Y WITH DOT BELOW
+ 1EF6          ; NFKC_SCF; 1EF7           # L&       LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+ 1EF8          ; NFKC_SCF; 1EF9           # L&       LATIN CAPITAL LETTER Y WITH TILDE
+ 1EFA          ; NFKC_SCF; 1EFB           # L&       LATIN CAPITAL LETTER MIDDLE-WELSH LL
+ 1EFC          ; NFKC_SCF; 1EFD           # L&       LATIN CAPITAL LETTER MIDDLE-WELSH V
+ 1EFE          ; NFKC_SCF; 1EFF           # L&       LATIN CAPITAL LETTER Y WITH LOOP
+ 1F08          ; NFKC_SCF; 1F00           # L&       GREEK CAPITAL LETTER ALPHA WITH PSILI
+ 1F09          ; NFKC_SCF; 1F01           # L&       GREEK CAPITAL LETTER ALPHA WITH DASIA
+ 1F0A          ; NFKC_SCF; 1F02           # L&       GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+ 1F0B          ; NFKC_SCF; 1F03           # L&       GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+ 1F0C          ; NFKC_SCF; 1F04           # L&       GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+ 1F0D          ; NFKC_SCF; 1F05           # L&       GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+ 1F0E          ; NFKC_SCF; 1F06           # L&       GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+ 1F0F          ; NFKC_SCF; 1F07           # L&       GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+ 1F18          ; NFKC_SCF; 1F10           # L&       GREEK CAPITAL LETTER EPSILON WITH PSILI
+ 1F19          ; NFKC_SCF; 1F11           # L&       GREEK CAPITAL LETTER EPSILON WITH DASIA
+ 1F1A          ; NFKC_SCF; 1F12           # L&       GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+ 1F1B          ; NFKC_SCF; 1F13           # L&       GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+ 1F1C          ; NFKC_SCF; 1F14           # L&       GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+ 1F1D          ; NFKC_SCF; 1F15           # L&       GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+ 1F28          ; NFKC_SCF; 1F20           # L&       GREEK CAPITAL LETTER ETA WITH PSILI
+ 1F29          ; NFKC_SCF; 1F21           # L&       GREEK CAPITAL LETTER ETA WITH DASIA
+ 1F2A          ; NFKC_SCF; 1F22           # L&       GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+ 1F2B          ; NFKC_SCF; 1F23           # L&       GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+ 1F2C          ; NFKC_SCF; 1F24           # L&       GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+ 1F2D          ; NFKC_SCF; 1F25           # L&       GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+ 1F2E          ; NFKC_SCF; 1F26           # L&       GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+ 1F2F          ; NFKC_SCF; 1F27           # L&       GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+ 1F38          ; NFKC_SCF; 1F30           # L&       GREEK CAPITAL LETTER IOTA WITH PSILI
+ 1F39          ; NFKC_SCF; 1F31           # L&       GREEK CAPITAL LETTER IOTA WITH DASIA
+ 1F3A          ; NFKC_SCF; 1F32           # L&       GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+ 1F3B          ; NFKC_SCF; 1F33           # L&       GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+ 1F3C          ; NFKC_SCF; 1F34           # L&       GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+ 1F3D          ; NFKC_SCF; 1F35           # L&       GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+ 1F3E          ; NFKC_SCF; 1F36           # L&       GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+ 1F3F          ; NFKC_SCF; 1F37           # L&       GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+ 1F48          ; NFKC_SCF; 1F40           # L&       GREEK CAPITAL LETTER OMICRON WITH PSILI
+ 1F49          ; NFKC_SCF; 1F41           # L&       GREEK CAPITAL LETTER OMICRON WITH DASIA
+ 1F4A          ; NFKC_SCF; 1F42           # L&       GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+ 1F4B          ; NFKC_SCF; 1F43           # L&       GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+ 1F4C          ; NFKC_SCF; 1F44           # L&       GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+ 1F4D          ; NFKC_SCF; 1F45           # L&       GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+ 1F59          ; NFKC_SCF; 1F51           # L&       GREEK CAPITAL LETTER UPSILON WITH DASIA
+ 1F5B          ; NFKC_SCF; 1F53           # L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+ 1F5D          ; NFKC_SCF; 1F55           # L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+ 1F5F          ; NFKC_SCF; 1F57           # L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+ 1F68          ; NFKC_SCF; 1F60           # L&       GREEK CAPITAL LETTER OMEGA WITH PSILI
+ 1F69          ; NFKC_SCF; 1F61           # L&       GREEK CAPITAL LETTER OMEGA WITH DASIA
+ 1F6A          ; NFKC_SCF; 1F62           # L&       GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+ 1F6B          ; NFKC_SCF; 1F63           # L&       GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+ 1F6C          ; NFKC_SCF; 1F64           # L&       GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+ 1F6D          ; NFKC_SCF; 1F65           # L&       GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+ 1F6E          ; NFKC_SCF; 1F66           # L&       GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+ 1F6F          ; NFKC_SCF; 1F67           # L&       GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+ 1F71          ; NFKC_SCF; 03AC           # L&       GREEK SMALL LETTER ALPHA WITH OXIA
+ 1F73          ; NFKC_SCF; 03AD           # L&       GREEK SMALL LETTER EPSILON WITH OXIA
+ 1F75          ; NFKC_SCF; 03AE           # L&       GREEK SMALL LETTER ETA WITH OXIA
+ 1F77          ; NFKC_SCF; 03AF           # L&       GREEK SMALL LETTER IOTA WITH OXIA
+ 1F79          ; NFKC_SCF; 03CC           # L&       GREEK SMALL LETTER OMICRON WITH OXIA
+ 1F7B          ; NFKC_SCF; 03CD           # L&       GREEK SMALL LETTER UPSILON WITH OXIA
+ 1F7D          ; NFKC_SCF; 03CE           # L&       GREEK SMALL LETTER OMEGA WITH OXIA
+ 1F88          ; NFKC_SCF; 1F80           # L&       GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+ 1F89          ; NFKC_SCF; 1F81           # L&       GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+ 1F8A          ; NFKC_SCF; 1F82           # L&       GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+ 1F8B          ; NFKC_SCF; 1F83           # L&       GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+ 1F8C          ; NFKC_SCF; 1F84           # L&       GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+ 1F8D          ; NFKC_SCF; 1F85           # L&       GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+ 1F8E          ; NFKC_SCF; 1F86           # L&       GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+ 1F8F          ; NFKC_SCF; 1F87           # L&       GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+ 1F98          ; NFKC_SCF; 1F90           # L&       GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+ 1F99          ; NFKC_SCF; 1F91           # L&       GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+ 1F9A          ; NFKC_SCF; 1F92           # L&       GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+ 1F9B          ; NFKC_SCF; 1F93           # L&       GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+ 1F9C          ; NFKC_SCF; 1F94           # L&       GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+ 1F9D          ; NFKC_SCF; 1F95           # L&       GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+ 1F9E          ; NFKC_SCF; 1F96           # L&       GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+ 1F9F          ; NFKC_SCF; 1F97           # L&       GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+ 1FA8          ; NFKC_SCF; 1FA0           # L&       GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+ 1FA9          ; NFKC_SCF; 1FA1           # L&       GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+ 1FAA          ; NFKC_SCF; 1FA2           # L&       GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+ 1FAB          ; NFKC_SCF; 1FA3           # L&       GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+ 1FAC          ; NFKC_SCF; 1FA4           # L&       GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+ 1FAD          ; NFKC_SCF; 1FA5           # L&       GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+ 1FAE          ; NFKC_SCF; 1FA6           # L&       GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+ 1FAF          ; NFKC_SCF; 1FA7           # L&       GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+ 1FB8          ; NFKC_SCF; 1FB0           # L&       GREEK CAPITAL LETTER ALPHA WITH VRACHY
+ 1FB9          ; NFKC_SCF; 1FB1           # L&       GREEK CAPITAL LETTER ALPHA WITH MACRON
+ 1FBA          ; NFKC_SCF; 1F70           # L&       GREEK CAPITAL LETTER ALPHA WITH VARIA
+ 1FBB          ; NFKC_SCF; 03AC           # L&       GREEK CAPITAL LETTER ALPHA WITH OXIA
+ 1FBC          ; NFKC_SCF; 1FB3           # L&       GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+ 1FBD          ; NFKC_SCF; 0020 0313      # Sk       GREEK KORONIS
+ 1FBE          ; NFKC_SCF; 03B9           # L&       GREEK PROSGEGRAMMENI
+ 1FBF          ; NFKC_SCF; 0020 0313      # Sk       GREEK PSILI
+ 1FC0          ; NFKC_SCF; 0020 0342      # Sk       GREEK PERISPOMENI
+ 1FC1          ; NFKC_SCF; 0020 0308 0342 # Sk       GREEK DIALYTIKA AND PERISPOMENI
+ 1FC8          ; NFKC_SCF; 1F72           # L&       GREEK CAPITAL LETTER EPSILON WITH VARIA
+ 1FC9          ; NFKC_SCF; 03AD           # L&       GREEK CAPITAL LETTER EPSILON WITH OXIA
+ 1FCA          ; NFKC_SCF; 1F74           # L&       GREEK CAPITAL LETTER ETA WITH VARIA
+ 1FCB          ; NFKC_SCF; 03AE           # L&       GREEK CAPITAL LETTER ETA WITH OXIA
+ 1FCC          ; NFKC_SCF; 1FC3           # L&       GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+ 1FCD          ; NFKC_SCF; 0020 0313 0300 # Sk       GREEK PSILI AND VARIA
+ 1FCE          ; NFKC_SCF; 0020 0313 0301 # Sk       GREEK PSILI AND OXIA
+ 1FCF          ; NFKC_SCF; 0020 0313 0342 # Sk       GREEK PSILI AND PERISPOMENI
+ 1FD3          ; NFKC_SCF; 0390           # L&       GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+ 1FD8          ; NFKC_SCF; 1FD0           # L&       GREEK CAPITAL LETTER IOTA WITH VRACHY
+ 1FD9          ; NFKC_SCF; 1FD1           # L&       GREEK CAPITAL LETTER IOTA WITH MACRON
+ 1FDA          ; NFKC_SCF; 1F76           # L&       GREEK CAPITAL LETTER IOTA WITH VARIA
+ 1FDB          ; NFKC_SCF; 03AF           # L&       GREEK CAPITAL LETTER IOTA WITH OXIA
+ 1FDD          ; NFKC_SCF; 0020 0314 0300 # Sk       GREEK DASIA AND VARIA
+ 1FDE          ; NFKC_SCF; 0020 0314 0301 # Sk       GREEK DASIA AND OXIA
+ 1FDF          ; NFKC_SCF; 0020 0314 0342 # Sk       GREEK DASIA AND PERISPOMENI
+ 1FE3          ; NFKC_SCF; 03B0           # L&       GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+ 1FE8          ; NFKC_SCF; 1FE0           # L&       GREEK CAPITAL LETTER UPSILON WITH VRACHY
+ 1FE9          ; NFKC_SCF; 1FE1           # L&       GREEK CAPITAL LETTER UPSILON WITH MACRON
+ 1FEA          ; NFKC_SCF; 1F7A           # L&       GREEK CAPITAL LETTER UPSILON WITH VARIA
+ 1FEB          ; NFKC_SCF; 03CD           # L&       GREEK CAPITAL LETTER UPSILON WITH OXIA
+ 1FEC          ; NFKC_SCF; 1FE5           # L&       GREEK CAPITAL LETTER RHO WITH DASIA
+ 1FED          ; NFKC_SCF; 0020 0308 0300 # Sk       GREEK DIALYTIKA AND VARIA
+ 1FEE          ; NFKC_SCF; 0020 0308 0301 # Sk       GREEK DIALYTIKA AND OXIA
+ 1FEF          ; NFKC_SCF; 0060           # Sk       GREEK VARIA
+ 1FF8          ; NFKC_SCF; 1F78           # L&       GREEK CAPITAL LETTER OMICRON WITH VARIA
+ 1FF9          ; NFKC_SCF; 03CC           # L&       GREEK CAPITAL LETTER OMICRON WITH OXIA
+ 1FFA          ; NFKC_SCF; 1F7C           # L&       GREEK CAPITAL LETTER OMEGA WITH VARIA
+ 1FFB          ; NFKC_SCF; 03CE           # L&       GREEK CAPITAL LETTER OMEGA WITH OXIA
+ 1FFC          ; NFKC_SCF; 1FF3           # L&       GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+ 1FFD          ; NFKC_SCF; 0020 0301      # Sk       GREEK OXIA
+ 1FFE          ; NFKC_SCF; 0020 0314      # Sk       GREEK DASIA
+ 2000..200A    ; NFKC_SCF; 0020           # Zs  [11] EN QUAD..HAIR SPACE
+ 200B..200F    ; NFKC_SCF;                # Cf   [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
+ 2011          ; NFKC_SCF; 2010           # Pd       NON-BREAKING HYPHEN
+ 2017          ; NFKC_SCF; 0020 0333      # Po       DOUBLE LOW LINE
+ 2024          ; NFKC_SCF; 002E           # Po       ONE DOT LEADER
+ 2025          ; NFKC_SCF; 002E 002E      # Po       TWO DOT LEADER
+ 2026          ; NFKC_SCF; 002E 002E 002E # Po       HORIZONTAL ELLIPSIS
+ 202A..202E    ; NFKC_SCF;                # Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+ 202F          ; NFKC_SCF; 0020           # Zs       NARROW NO-BREAK SPACE
+ 2033          ; NFKC_SCF; 2032 2032      # Po       DOUBLE PRIME
+ 2034          ; NFKC_SCF; 2032 2032 2032 # Po       TRIPLE PRIME
+ 2036          ; NFKC_SCF; 2035 2035      # Po       REVERSED DOUBLE PRIME
+ 2037          ; NFKC_SCF; 2035 2035 2035 # Po       REVERSED TRIPLE PRIME
+ 203C          ; NFKC_SCF; 0021 0021      # Po       DOUBLE EXCLAMATION MARK
+ 203E          ; NFKC_SCF; 0020 0305      # Po       OVERLINE
+ 2047          ; NFKC_SCF; 003F 003F      # Po       DOUBLE QUESTION MARK
+ 2048          ; NFKC_SCF; 003F 0021      # Po       QUESTION EXCLAMATION MARK
+ 2049          ; NFKC_SCF; 0021 003F      # Po       EXCLAMATION QUESTION MARK
+ 2057          ; NFKC_SCF; 2032 2032 2032 2032 #Po   QUADRUPLE PRIME
+ 205F          ; NFKC_SCF; 0020           # Zs       MEDIUM MATHEMATICAL SPACE
+ 2060..2064    ; NFKC_SCF;                # Cf   [5] WORD JOINER..INVISIBLE PLUS
+ 2065          ; NFKC_SCF;                # Cn       <reserved-2065>
+ 2066..206F    ; NFKC_SCF;                # Cf  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+ 2070          ; NFKC_SCF; 0030           # No       SUPERSCRIPT ZERO
+ 2071          ; NFKC_SCF; 0069           # Lm       SUPERSCRIPT LATIN SMALL LETTER I
+ 2074          ; NFKC_SCF; 0034           # No       SUPERSCRIPT FOUR
+ 2075          ; NFKC_SCF; 0035           # No       SUPERSCRIPT FIVE
+ 2076          ; NFKC_SCF; 0036           # No       SUPERSCRIPT SIX
+ 2077          ; NFKC_SCF; 0037           # No       SUPERSCRIPT SEVEN
+ 2078          ; NFKC_SCF; 0038           # No       SUPERSCRIPT EIGHT
+ 2079          ; NFKC_SCF; 0039           # No       SUPERSCRIPT NINE
+ 207A          ; NFKC_SCF; 002B           # Sm       SUPERSCRIPT PLUS SIGN
+ 207B          ; NFKC_SCF; 2212           # Sm       SUPERSCRIPT MINUS
+ 207C          ; NFKC_SCF; 003D           # Sm       SUPERSCRIPT EQUALS SIGN
+ 207D          ; NFKC_SCF; 0028           # Ps       SUPERSCRIPT LEFT PARENTHESIS
+ 207E          ; NFKC_SCF; 0029           # Pe       SUPERSCRIPT RIGHT PARENTHESIS
+ 207F          ; NFKC_SCF; 006E           # Lm       SUPERSCRIPT LATIN SMALL LETTER N
+ 2080          ; NFKC_SCF; 0030           # No       SUBSCRIPT ZERO
+ 2081          ; NFKC_SCF; 0031           # No       SUBSCRIPT ONE
+ 2082          ; NFKC_SCF; 0032           # No       SUBSCRIPT TWO
+ 2083          ; NFKC_SCF; 0033           # No       SUBSCRIPT THREE
+ 2084          ; NFKC_SCF; 0034           # No       SUBSCRIPT FOUR
+ 2085          ; NFKC_SCF; 0035           # No       SUBSCRIPT FIVE
+ 2086          ; NFKC_SCF; 0036           # No       SUBSCRIPT SIX
+ 2087          ; NFKC_SCF; 0037           # No       SUBSCRIPT SEVEN
+ 2088          ; NFKC_SCF; 0038           # No       SUBSCRIPT EIGHT
+ 2089          ; NFKC_SCF; 0039           # No       SUBSCRIPT NINE
+ 208A          ; NFKC_SCF; 002B           # Sm       SUBSCRIPT PLUS SIGN
+ 208B          ; NFKC_SCF; 2212           # Sm       SUBSCRIPT MINUS
+ 208C          ; NFKC_SCF; 003D           # Sm       SUBSCRIPT EQUALS SIGN
+ 208D          ; NFKC_SCF; 0028           # Ps       SUBSCRIPT LEFT PARENTHESIS
+ 208E          ; NFKC_SCF; 0029           # Pe       SUBSCRIPT RIGHT PARENTHESIS
+ 2090          ; NFKC_SCF; 0061           # Lm       LATIN SUBSCRIPT SMALL LETTER A
+ 2091          ; NFKC_SCF; 0065           # Lm       LATIN SUBSCRIPT SMALL LETTER E
+ 2092          ; NFKC_SCF; 006F           # Lm       LATIN SUBSCRIPT SMALL LETTER O
+ 2093          ; NFKC_SCF; 0078           # Lm       LATIN SUBSCRIPT SMALL LETTER X
+ 2094          ; NFKC_SCF; 0259           # Lm       LATIN SUBSCRIPT SMALL LETTER SCHWA
+ 2095          ; NFKC_SCF; 0068           # Lm       LATIN SUBSCRIPT SMALL LETTER H
+ 2096          ; NFKC_SCF; 006B           # Lm       LATIN SUBSCRIPT SMALL LETTER K
+ 2097          ; NFKC_SCF; 006C           # Lm       LATIN SUBSCRIPT SMALL LETTER L
+ 2098          ; NFKC_SCF; 006D           # Lm       LATIN SUBSCRIPT SMALL LETTER M
+ 2099          ; NFKC_SCF; 006E           # Lm       LATIN SUBSCRIPT SMALL LETTER N
+ 209A          ; NFKC_SCF; 0070           # Lm       LATIN SUBSCRIPT SMALL LETTER P
+ 209B          ; NFKC_SCF; 0073           # Lm       LATIN SUBSCRIPT SMALL LETTER S
+ 209C          ; NFKC_SCF; 0074           # Lm       LATIN SUBSCRIPT SMALL LETTER T
+ 20A8          ; NFKC_SCF; 0072 0073      # Sc       RUPEE SIGN
+ 2100          ; NFKC_SCF; 0061 002F 0063 # So       ACCOUNT OF
+ 2101          ; NFKC_SCF; 0061 002F 0073 # So       ADDRESSED TO THE SUBJECT
+ 2102          ; NFKC_SCF; 0063           # L&       DOUBLE-STRUCK CAPITAL C
+ 2103          ; NFKC_SCF; 00B0 0063      # So       DEGREE CELSIUS
+ 2105          ; NFKC_SCF; 0063 002F 006F # So       CARE OF
+ 2106          ; NFKC_SCF; 0063 002F 0075 # So       CADA UNA
+ 2107          ; NFKC_SCF; 025B           # L&       EULER CONSTANT
+ 2109          ; NFKC_SCF; 00B0 0066      # So       DEGREE FAHRENHEIT
+ 210A          ; NFKC_SCF; 0067           # L&       SCRIPT SMALL G
+ 210B..210E    ; NFKC_SCF; 0068           # L&   [4] SCRIPT CAPITAL H..PLANCK CONSTANT
+ 210F          ; NFKC_SCF; 0127           # L&       PLANCK CONSTANT OVER TWO PI
+ 2110..2111    ; NFKC_SCF; 0069           # L&   [2] SCRIPT CAPITAL I..BLACK-LETTER CAPITAL I
+ 2112..2113    ; NFKC_SCF; 006C           # L&   [2] SCRIPT CAPITAL L..SCRIPT SMALL L
+ 2115          ; NFKC_SCF; 006E           # L&       DOUBLE-STRUCK CAPITAL N
+ 2116          ; NFKC_SCF; 006E 006F      # So       NUMERO SIGN
+ 2119          ; NFKC_SCF; 0070           # L&       DOUBLE-STRUCK CAPITAL P
+ 211A          ; NFKC_SCF; 0071           # L&       DOUBLE-STRUCK CAPITAL Q
+ 211B..211D    ; NFKC_SCF; 0072           # L&   [3] SCRIPT CAPITAL R..DOUBLE-STRUCK CAPITAL R
+ 2120          ; NFKC_SCF; 0073 006D      # So       SERVICE MARK
+ 2121          ; NFKC_SCF; 0074 0065 006C # So       TELEPHONE SIGN
+ 2122          ; NFKC_SCF; 0074 006D      # So       TRADE MARK SIGN
+ 2124          ; NFKC_SCF; 007A           # L&       DOUBLE-STRUCK CAPITAL Z
+ 2126          ; NFKC_SCF; 03C9           # L&       OHM SIGN
+ 2128          ; NFKC_SCF; 007A           # L&       BLACK-LETTER CAPITAL Z
+ 212A          ; NFKC_SCF; 006B           # L&       KELVIN SIGN
+ 212B          ; NFKC_SCF; 00E5           # L&       ANGSTROM SIGN
+ 212C          ; NFKC_SCF; 0062           # L&       SCRIPT CAPITAL B
+ 212D          ; NFKC_SCF; 0063           # L&       BLACK-LETTER CAPITAL C
+ 212F..2130    ; NFKC_SCF; 0065           # L&   [2] SCRIPT SMALL E..SCRIPT CAPITAL E
+ 2131          ; NFKC_SCF; 0066           # L&       SCRIPT CAPITAL F
+ 2132          ; NFKC_SCF; 214E           # L&       TURNED CAPITAL F
+ 2133          ; NFKC_SCF; 006D           # L&       SCRIPT CAPITAL M
+ 2134          ; NFKC_SCF; 006F           # L&       SCRIPT SMALL O
+ 2135          ; NFKC_SCF; 05D0           # Lo       ALEF SYMBOL
+ 2136          ; NFKC_SCF; 05D1           # Lo       BET SYMBOL
+ 2137          ; NFKC_SCF; 05D2           # Lo       GIMEL SYMBOL
+ 2138          ; NFKC_SCF; 05D3           # Lo       DALET SYMBOL
+ 2139          ; NFKC_SCF; 0069           # L&       INFORMATION SOURCE
+ 213B          ; NFKC_SCF; 0066 0061 0078 # So       FACSIMILE SIGN
+ 213C          ; NFKC_SCF; 03C0           # L&       DOUBLE-STRUCK SMALL PI
+ 213D..213E    ; NFKC_SCF; 03B3           # L&   [2] DOUBLE-STRUCK SMALL GAMMA..DOUBLE-STRUCK CAPITAL GAMMA
+ 213F          ; NFKC_SCF; 03C0           # L&       DOUBLE-STRUCK CAPITAL PI
+ 2140          ; NFKC_SCF; 2211           # Sm       DOUBLE-STRUCK N-ARY SUMMATION
+ 2145..2146    ; NFKC_SCF; 0064           # L&   [2] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL D
+ 2147          ; NFKC_SCF; 0065           # L&       DOUBLE-STRUCK ITALIC SMALL E
+ 2148          ; NFKC_SCF; 0069           # L&       DOUBLE-STRUCK ITALIC SMALL I
+ 2149          ; NFKC_SCF; 006A           # L&       DOUBLE-STRUCK ITALIC SMALL J
+ 2150          ; NFKC_SCF; 0031 2044 0037 # No       VULGAR FRACTION ONE SEVENTH
+ 2151          ; NFKC_SCF; 0031 2044 0039 # No       VULGAR FRACTION ONE NINTH
+ 2152          ; NFKC_SCF; 0031 2044 0031 0030 #No   VULGAR FRACTION ONE TENTH
+ 2153          ; NFKC_SCF; 0031 2044 0033 # No       VULGAR FRACTION ONE THIRD
+ 2154          ; NFKC_SCF; 0032 2044 0033 # No       VULGAR FRACTION TWO THIRDS
+ 2155          ; NFKC_SCF; 0031 2044 0035 # No       VULGAR FRACTION ONE FIFTH
+ 2156          ; NFKC_SCF; 0032 2044 0035 # No       VULGAR FRACTION TWO FIFTHS
+ 2157          ; NFKC_SCF; 0033 2044 0035 # No       VULGAR FRACTION THREE FIFTHS
+ 2158          ; NFKC_SCF; 0034 2044 0035 # No       VULGAR FRACTION FOUR FIFTHS
+ 2159          ; NFKC_SCF; 0031 2044 0036 # No       VULGAR FRACTION ONE SIXTH
+ 215A          ; NFKC_SCF; 0035 2044 0036 # No       VULGAR FRACTION FIVE SIXTHS
+ 215B          ; NFKC_SCF; 0031 2044 0038 # No       VULGAR FRACTION ONE EIGHTH
+ 215C          ; NFKC_SCF; 0033 2044 0038 # No       VULGAR FRACTION THREE EIGHTHS
+ 215D          ; NFKC_SCF; 0035 2044 0038 # No       VULGAR FRACTION FIVE EIGHTHS
+ 215E          ; NFKC_SCF; 0037 2044 0038 # No       VULGAR FRACTION SEVEN EIGHTHS
+ 215F          ; NFKC_SCF; 0031 2044      # No       FRACTION NUMERATOR ONE
+ 2160          ; NFKC_SCF; 0069           # Nl       ROMAN NUMERAL ONE
+ 2161          ; NFKC_SCF; 0069 0069      # Nl       ROMAN NUMERAL TWO
+ 2162          ; NFKC_SCF; 0069 0069 0069 # Nl       ROMAN NUMERAL THREE
+ 2163          ; NFKC_SCF; 0069 0076      # Nl       ROMAN NUMERAL FOUR
+ 2164          ; NFKC_SCF; 0076           # Nl       ROMAN NUMERAL FIVE
+ 2165          ; NFKC_SCF; 0076 0069      # Nl       ROMAN NUMERAL SIX
+ 2166          ; NFKC_SCF; 0076 0069 0069 # Nl       ROMAN NUMERAL SEVEN
+ 2167          ; NFKC_SCF; 0076 0069 0069 0069 #Nl   ROMAN NUMERAL EIGHT
+ 2168          ; NFKC_SCF; 0069 0078      # Nl       ROMAN NUMERAL NINE
+ 2169          ; NFKC_SCF; 0078           # Nl       ROMAN NUMERAL TEN
+ 216A          ; NFKC_SCF; 0078 0069      # Nl       ROMAN NUMERAL ELEVEN
+ 216B          ; NFKC_SCF; 0078 0069 0069 # Nl       ROMAN NUMERAL TWELVE
+ 216C          ; NFKC_SCF; 006C           # Nl       ROMAN NUMERAL FIFTY
+ 216D          ; NFKC_SCF; 0063           # Nl       ROMAN NUMERAL ONE HUNDRED
+ 216E          ; NFKC_SCF; 0064           # Nl       ROMAN NUMERAL FIVE HUNDRED
+ 216F          ; NFKC_SCF; 006D           # Nl       ROMAN NUMERAL ONE THOUSAND
+ 2170          ; NFKC_SCF; 0069           # Nl       SMALL ROMAN NUMERAL ONE
+ 2171          ; NFKC_SCF; 0069 0069      # Nl       SMALL ROMAN NUMERAL TWO
+ 2172          ; NFKC_SCF; 0069 0069 0069 # Nl       SMALL ROMAN NUMERAL THREE
+ 2173          ; NFKC_SCF; 0069 0076      # Nl       SMALL ROMAN NUMERAL FOUR
+ 2174          ; NFKC_SCF; 0076           # Nl       SMALL ROMAN NUMERAL FIVE
+ 2175          ; NFKC_SCF; 0076 0069      # Nl       SMALL ROMAN NUMERAL SIX
+ 2176          ; NFKC_SCF; 0076 0069 0069 # Nl       SMALL ROMAN NUMERAL SEVEN
+ 2177          ; NFKC_SCF; 0076 0069 0069 0069 #Nl   SMALL ROMAN NUMERAL EIGHT
+ 2178          ; NFKC_SCF; 0069 0078      # Nl       SMALL ROMAN NUMERAL NINE
+ 2179          ; NFKC_SCF; 0078           # Nl       SMALL ROMAN NUMERAL TEN
+ 217A          ; NFKC_SCF; 0078 0069      # Nl       SMALL ROMAN NUMERAL ELEVEN
+ 217B          ; NFKC_SCF; 0078 0069 0069 # Nl       SMALL ROMAN NUMERAL TWELVE
+ 217C          ; NFKC_SCF; 006C           # Nl       SMALL ROMAN NUMERAL FIFTY
+ 217D          ; NFKC_SCF; 0063           # Nl       SMALL ROMAN NUMERAL ONE HUNDRED
+ 217E          ; NFKC_SCF; 0064           # Nl       SMALL ROMAN NUMERAL FIVE HUNDRED
+ 217F          ; NFKC_SCF; 006D           # Nl       SMALL ROMAN NUMERAL ONE THOUSAND
+ 2183          ; NFKC_SCF; 2184           # L&       ROMAN NUMERAL REVERSED ONE HUNDRED
+ 2189          ; NFKC_SCF; 0030 2044 0033 # No       VULGAR FRACTION ZERO THIRDS
+ 222C          ; NFKC_SCF; 222B 222B      # Sm       DOUBLE INTEGRAL
+ 222D          ; NFKC_SCF; 222B 222B 222B # Sm       TRIPLE INTEGRAL
+ 222F          ; NFKC_SCF; 222E 222E      # Sm       SURFACE INTEGRAL
+ 2230          ; NFKC_SCF; 222E 222E 222E # Sm       VOLUME INTEGRAL
+ 2329          ; NFKC_SCF; 3008           # Ps       LEFT-POINTING ANGLE BRACKET
+ 232A          ; NFKC_SCF; 3009           # Pe       RIGHT-POINTING ANGLE BRACKET
+ 2460          ; NFKC_SCF; 0031           # No       CIRCLED DIGIT ONE
+ 2461          ; NFKC_SCF; 0032           # No       CIRCLED DIGIT TWO
+ 2462          ; NFKC_SCF; 0033           # No       CIRCLED DIGIT THREE
+ 2463          ; NFKC_SCF; 0034           # No       CIRCLED DIGIT FOUR
+ 2464          ; NFKC_SCF; 0035           # No       CIRCLED DIGIT FIVE
+ 2465          ; NFKC_SCF; 0036           # No       CIRCLED DIGIT SIX
+ 2466          ; NFKC_SCF; 0037           # No       CIRCLED DIGIT SEVEN
+ 2467          ; NFKC_SCF; 0038           # No       CIRCLED DIGIT EIGHT
+ 2468          ; NFKC_SCF; 0039           # No       CIRCLED DIGIT NINE
+ 2469          ; NFKC_SCF; 0031 0030      # No       CIRCLED NUMBER TEN
+ 246A          ; NFKC_SCF; 0031 0031      # No       CIRCLED NUMBER ELEVEN
+ 246B          ; NFKC_SCF; 0031 0032      # No       CIRCLED NUMBER TWELVE
+ 246C          ; NFKC_SCF; 0031 0033      # No       CIRCLED NUMBER THIRTEEN
+ 246D          ; NFKC_SCF; 0031 0034      # No       CIRCLED NUMBER FOURTEEN
+ 246E          ; NFKC_SCF; 0031 0035      # No       CIRCLED NUMBER FIFTEEN
+ 246F          ; NFKC_SCF; 0031 0036      # No       CIRCLED NUMBER SIXTEEN
+ 2470          ; NFKC_SCF; 0031 0037      # No       CIRCLED NUMBER SEVENTEEN
+ 2471          ; NFKC_SCF; 0031 0038      # No       CIRCLED NUMBER EIGHTEEN
+ 2472          ; NFKC_SCF; 0031 0039      # No       CIRCLED NUMBER NINETEEN
+ 2473          ; NFKC_SCF; 0032 0030      # No       CIRCLED NUMBER TWENTY
+ 2474          ; NFKC_SCF; 0028 0031 0029 # No       PARENTHESIZED DIGIT ONE
+ 2475          ; NFKC_SCF; 0028 0032 0029 # No       PARENTHESIZED DIGIT TWO
+ 2476          ; NFKC_SCF; 0028 0033 0029 # No       PARENTHESIZED DIGIT THREE
+ 2477          ; NFKC_SCF; 0028 0034 0029 # No       PARENTHESIZED DIGIT FOUR
+ 2478          ; NFKC_SCF; 0028 0035 0029 # No       PARENTHESIZED DIGIT FIVE
+ 2479          ; NFKC_SCF; 0028 0036 0029 # No       PARENTHESIZED DIGIT SIX
+ 247A          ; NFKC_SCF; 0028 0037 0029 # No       PARENTHESIZED DIGIT SEVEN
+ 247B          ; NFKC_SCF; 0028 0038 0029 # No       PARENTHESIZED DIGIT EIGHT
+ 247C          ; NFKC_SCF; 0028 0039 0029 # No       PARENTHESIZED DIGIT NINE
+ 247D          ; NFKC_SCF; 0028 0031 0030 0029 #No   PARENTHESIZED NUMBER TEN
+ 247E          ; NFKC_SCF; 0028 0031 0031 0029 #No   PARENTHESIZED NUMBER ELEVEN
+ 247F          ; NFKC_SCF; 0028 0031 0032 0029 #No   PARENTHESIZED NUMBER TWELVE
+ 2480          ; NFKC_SCF; 0028 0031 0033 0029 #No   PARENTHESIZED NUMBER THIRTEEN
+ 2481          ; NFKC_SCF; 0028 0031 0034 0029 #No   PARENTHESIZED NUMBER FOURTEEN
+ 2482          ; NFKC_SCF; 0028 0031 0035 0029 #No   PARENTHESIZED NUMBER FIFTEEN
+ 2483          ; NFKC_SCF; 0028 0031 0036 0029 #No   PARENTHESIZED NUMBER SIXTEEN
+ 2484          ; NFKC_SCF; 0028 0031 0037 0029 #No   PARENTHESIZED NUMBER SEVENTEEN
+ 2485          ; NFKC_SCF; 0028 0031 0038 0029 #No   PARENTHESIZED NUMBER EIGHTEEN
+ 2486          ; NFKC_SCF; 0028 0031 0039 0029 #No   PARENTHESIZED NUMBER NINETEEN
+ 2487          ; NFKC_SCF; 0028 0032 0030 0029 #No   PARENTHESIZED NUMBER TWENTY
+ 2488          ; NFKC_SCF; 0031 002E      # No       DIGIT ONE FULL STOP
+ 2489          ; NFKC_SCF; 0032 002E      # No       DIGIT TWO FULL STOP
+ 248A          ; NFKC_SCF; 0033 002E      # No       DIGIT THREE FULL STOP
+ 248B          ; NFKC_SCF; 0034 002E      # No       DIGIT FOUR FULL STOP
+ 248C          ; NFKC_SCF; 0035 002E      # No       DIGIT FIVE FULL STOP
+ 248D          ; NFKC_SCF; 0036 002E      # No       DIGIT SIX FULL STOP
+ 248E          ; NFKC_SCF; 0037 002E      # No       DIGIT SEVEN FULL STOP
+ 248F          ; NFKC_SCF; 0038 002E      # No       DIGIT EIGHT FULL STOP
+ 2490          ; NFKC_SCF; 0039 002E      # No       DIGIT NINE FULL STOP
+ 2491          ; NFKC_SCF; 0031 0030 002E # No       NUMBER TEN FULL STOP
+ 2492          ; NFKC_SCF; 0031 0031 002E # No       NUMBER ELEVEN FULL STOP
+ 2493          ; NFKC_SCF; 0031 0032 002E # No       NUMBER TWELVE FULL STOP
+ 2494          ; NFKC_SCF; 0031 0033 002E # No       NUMBER THIRTEEN FULL STOP
+ 2495          ; NFKC_SCF; 0031 0034 002E # No       NUMBER FOURTEEN FULL STOP
+ 2496          ; NFKC_SCF; 0031 0035 002E # No       NUMBER FIFTEEN FULL STOP
+ 2497          ; NFKC_SCF; 0031 0036 002E # No       NUMBER SIXTEEN FULL STOP
+ 2498          ; NFKC_SCF; 0031 0037 002E # No       NUMBER SEVENTEEN FULL STOP
+ 2499          ; NFKC_SCF; 0031 0038 002E # No       NUMBER EIGHTEEN FULL STOP
+ 249A          ; NFKC_SCF; 0031 0039 002E # No       NUMBER NINETEEN FULL STOP
+ 249B          ; NFKC_SCF; 0032 0030 002E # No       NUMBER TWENTY FULL STOP
+ 249C          ; NFKC_SCF; 0028 0061 0029 # So       PARENTHESIZED LATIN SMALL LETTER A
+ 249D          ; NFKC_SCF; 0028 0062 0029 # So       PARENTHESIZED LATIN SMALL LETTER B
+ 249E          ; NFKC_SCF; 0028 0063 0029 # So       PARENTHESIZED LATIN SMALL LETTER C
+ 249F          ; NFKC_SCF; 0028 0064 0029 # So       PARENTHESIZED LATIN SMALL LETTER D
+ 24A0          ; NFKC_SCF; 0028 0065 0029 # So       PARENTHESIZED LATIN SMALL LETTER E
+ 24A1          ; NFKC_SCF; 0028 0066 0029 # So       PARENTHESIZED LATIN SMALL LETTER F
+ 24A2          ; NFKC_SCF; 0028 0067 0029 # So       PARENTHESIZED LATIN SMALL LETTER G
+ 24A3          ; NFKC_SCF; 0028 0068 0029 # So       PARENTHESIZED LATIN SMALL LETTER H
+ 24A4          ; NFKC_SCF; 0028 0069 0029 # So       PARENTHESIZED LATIN SMALL LETTER I
+ 24A5          ; NFKC_SCF; 0028 006A 0029 # So       PARENTHESIZED LATIN SMALL LETTER J
+ 24A6          ; NFKC_SCF; 0028 006B 0029 # So       PARENTHESIZED LATIN SMALL LETTER K
+ 24A7          ; NFKC_SCF; 0028 006C 0029 # So       PARENTHESIZED LATIN SMALL LETTER L
+ 24A8          ; NFKC_SCF; 0028 006D 0029 # So       PARENTHESIZED LATIN SMALL LETTER M
+ 24A9          ; NFKC_SCF; 0028 006E 0029 # So       PARENTHESIZED LATIN SMALL LETTER N
+ 24AA          ; NFKC_SCF; 0028 006F 0029 # So       PARENTHESIZED LATIN SMALL LETTER O
+ 24AB          ; NFKC_SCF; 0028 0070 0029 # So       PARENTHESIZED LATIN SMALL LETTER P
+ 24AC          ; NFKC_SCF; 0028 0071 0029 # So       PARENTHESIZED LATIN SMALL LETTER Q
+ 24AD          ; NFKC_SCF; 0028 0072 0029 # So       PARENTHESIZED LATIN SMALL LETTER R
+ 24AE          ; NFKC_SCF; 0028 0073 0029 # So       PARENTHESIZED LATIN SMALL LETTER S
+ 24AF          ; NFKC_SCF; 0028 0074 0029 # So       PARENTHESIZED LATIN SMALL LETTER T
+ 24B0          ; NFKC_SCF; 0028 0075 0029 # So       PARENTHESIZED LATIN SMALL LETTER U
+ 24B1          ; NFKC_SCF; 0028 0076 0029 # So       PARENTHESIZED LATIN SMALL LETTER V
+ 24B2          ; NFKC_SCF; 0028 0077 0029 # So       PARENTHESIZED LATIN SMALL LETTER W
+ 24B3          ; NFKC_SCF; 0028 0078 0029 # So       PARENTHESIZED LATIN SMALL LETTER X
+ 24B4          ; NFKC_SCF; 0028 0079 0029 # So       PARENTHESIZED LATIN SMALL LETTER Y
+ 24B5          ; NFKC_SCF; 0028 007A 0029 # So       PARENTHESIZED LATIN SMALL LETTER Z
+ 24B6          ; NFKC_SCF; 0061           # So       CIRCLED LATIN CAPITAL LETTER A
+ 24B7          ; NFKC_SCF; 0062           # So       CIRCLED LATIN CAPITAL LETTER B
+ 24B8          ; NFKC_SCF; 0063           # So       CIRCLED LATIN CAPITAL LETTER C
+ 24B9          ; NFKC_SCF; 0064           # So       CIRCLED LATIN CAPITAL LETTER D
+ 24BA          ; NFKC_SCF; 0065           # So       CIRCLED LATIN CAPITAL LETTER E
+ 24BB          ; NFKC_SCF; 0066           # So       CIRCLED LATIN CAPITAL LETTER F
+ 24BC          ; NFKC_SCF; 0067           # So       CIRCLED LATIN CAPITAL LETTER G
+ 24BD          ; NFKC_SCF; 0068           # So       CIRCLED LATIN CAPITAL LETTER H
+ 24BE          ; NFKC_SCF; 0069           # So       CIRCLED LATIN CAPITAL LETTER I
+ 24BF          ; NFKC_SCF; 006A           # So       CIRCLED LATIN CAPITAL LETTER J
+ 24C0          ; NFKC_SCF; 006B           # So       CIRCLED LATIN CAPITAL LETTER K
+ 24C1          ; NFKC_SCF; 006C           # So       CIRCLED LATIN CAPITAL LETTER L
+ 24C2          ; NFKC_SCF; 006D           # So       CIRCLED LATIN CAPITAL LETTER M
+ 24C3          ; NFKC_SCF; 006E           # So       CIRCLED LATIN CAPITAL LETTER N
+ 24C4          ; NFKC_SCF; 006F           # So       CIRCLED LATIN CAPITAL LETTER O
+ 24C5          ; NFKC_SCF; 0070           # So       CIRCLED LATIN CAPITAL LETTER P
+ 24C6          ; NFKC_SCF; 0071           # So       CIRCLED LATIN CAPITAL LETTER Q
+ 24C7          ; NFKC_SCF; 0072           # So       CIRCLED LATIN CAPITAL LETTER R
+ 24C8          ; NFKC_SCF; 0073           # So       CIRCLED LATIN CAPITAL LETTER S
+ 24C9          ; NFKC_SCF; 0074           # So       CIRCLED LATIN CAPITAL LETTER T
+ 24CA          ; NFKC_SCF; 0075           # So       CIRCLED LATIN CAPITAL LETTER U
+ 24CB          ; NFKC_SCF; 0076           # So       CIRCLED LATIN CAPITAL LETTER V
+ 24CC          ; NFKC_SCF; 0077           # So       CIRCLED LATIN CAPITAL LETTER W
+ 24CD          ; NFKC_SCF; 0078           # So       CIRCLED LATIN CAPITAL LETTER X
+ 24CE          ; NFKC_SCF; 0079           # So       CIRCLED LATIN CAPITAL LETTER Y
+ 24CF          ; NFKC_SCF; 007A           # So       CIRCLED LATIN CAPITAL LETTER Z
+ 24D0          ; NFKC_SCF; 0061           # So       CIRCLED LATIN SMALL LETTER A
+ 24D1          ; NFKC_SCF; 0062           # So       CIRCLED LATIN SMALL LETTER B
+ 24D2          ; NFKC_SCF; 0063           # So       CIRCLED LATIN SMALL LETTER C
+ 24D3          ; NFKC_SCF; 0064           # So       CIRCLED LATIN SMALL LETTER D
+ 24D4          ; NFKC_SCF; 0065           # So       CIRCLED LATIN SMALL LETTER E
+ 24D5          ; NFKC_SCF; 0066           # So       CIRCLED LATIN SMALL LETTER F
+ 24D6          ; NFKC_SCF; 0067           # So       CIRCLED LATIN SMALL LETTER G
+ 24D7          ; NFKC_SCF; 0068           # So       CIRCLED LATIN SMALL LETTER H
+ 24D8          ; NFKC_SCF; 0069           # So       CIRCLED LATIN SMALL LETTER I
+ 24D9          ; NFKC_SCF; 006A           # So       CIRCLED LATIN SMALL LETTER J
+ 24DA          ; NFKC_SCF; 006B           # So       CIRCLED LATIN SMALL LETTER K
+ 24DB          ; NFKC_SCF; 006C           # So       CIRCLED LATIN SMALL LETTER L
+ 24DC          ; NFKC_SCF; 006D           # So       CIRCLED LATIN SMALL LETTER M
+ 24DD          ; NFKC_SCF; 006E           # So       CIRCLED LATIN SMALL LETTER N
+ 24DE          ; NFKC_SCF; 006F           # So       CIRCLED LATIN SMALL LETTER O
+ 24DF          ; NFKC_SCF; 0070           # So       CIRCLED LATIN SMALL LETTER P
+ 24E0          ; NFKC_SCF; 0071           # So       CIRCLED LATIN SMALL LETTER Q
+ 24E1          ; NFKC_SCF; 0072           # So       CIRCLED LATIN SMALL LETTER R
+ 24E2          ; NFKC_SCF; 0073           # So       CIRCLED LATIN SMALL LETTER S
+ 24E3          ; NFKC_SCF; 0074           # So       CIRCLED LATIN SMALL LETTER T
+ 24E4          ; NFKC_SCF; 0075           # So       CIRCLED LATIN SMALL LETTER U
+ 24E5          ; NFKC_SCF; 0076           # So       CIRCLED LATIN SMALL LETTER V
+ 24E6          ; NFKC_SCF; 0077           # So       CIRCLED LATIN SMALL LETTER W
+ 24E7          ; NFKC_SCF; 0078           # So       CIRCLED LATIN SMALL LETTER X
+ 24E8          ; NFKC_SCF; 0079           # So       CIRCLED LATIN SMALL LETTER Y
+ 24E9          ; NFKC_SCF; 007A           # So       CIRCLED LATIN SMALL LETTER Z
+ 24EA          ; NFKC_SCF; 0030           # No       CIRCLED DIGIT ZERO
+ 2A0C          ; NFKC_SCF; 222B 222B 222B 222B #Sm   QUADRUPLE INTEGRAL OPERATOR
+ 2A74          ; NFKC_SCF; 003A 003A 003D # Sm       DOUBLE COLON EQUAL
+ 2A75          ; NFKC_SCF; 003D 003D      # Sm       TWO CONSECUTIVE EQUALS SIGNS
+ 2A76          ; NFKC_SCF; 003D 003D 003D # Sm       THREE CONSECUTIVE EQUALS SIGNS
+ 2ADC          ; NFKC_SCF; 2ADD 0338      # Sm       FORKING
+ 2C00          ; NFKC_SCF; 2C30           # L&       GLAGOLITIC CAPITAL LETTER AZU
+ 2C01          ; NFKC_SCF; 2C31           # L&       GLAGOLITIC CAPITAL LETTER BUKY
+ 2C02          ; NFKC_SCF; 2C32           # L&       GLAGOLITIC CAPITAL LETTER VEDE
+ 2C03          ; NFKC_SCF; 2C33           # L&       GLAGOLITIC CAPITAL LETTER GLAGOLI
+ 2C04          ; NFKC_SCF; 2C34           # L&       GLAGOLITIC CAPITAL LETTER DOBRO
+ 2C05          ; NFKC_SCF; 2C35           # L&       GLAGOLITIC CAPITAL LETTER YESTU
+ 2C06          ; NFKC_SCF; 2C36           # L&       GLAGOLITIC CAPITAL LETTER ZHIVETE
+ 2C07          ; NFKC_SCF; 2C37           # L&       GLAGOLITIC CAPITAL LETTER DZELO
+ 2C08          ; NFKC_SCF; 2C38           # L&       GLAGOLITIC CAPITAL LETTER ZEMLJA
+ 2C09          ; NFKC_SCF; 2C39           # L&       GLAGOLITIC CAPITAL LETTER IZHE
+ 2C0A          ; NFKC_SCF; 2C3A           # L&       GLAGOLITIC CAPITAL LETTER INITIAL IZHE
+ 2C0B          ; NFKC_SCF; 2C3B           # L&       GLAGOLITIC CAPITAL LETTER I
+ 2C0C          ; NFKC_SCF; 2C3C           # L&       GLAGOLITIC CAPITAL LETTER DJERVI
+ 2C0D          ; NFKC_SCF; 2C3D           # L&       GLAGOLITIC CAPITAL LETTER KAKO
+ 2C0E          ; NFKC_SCF; 2C3E           # L&       GLAGOLITIC CAPITAL LETTER LJUDIJE
+ 2C0F          ; NFKC_SCF; 2C3F           # L&       GLAGOLITIC CAPITAL LETTER MYSLITE
+ 2C10          ; NFKC_SCF; 2C40           # L&       GLAGOLITIC CAPITAL LETTER NASHI
+ 2C11          ; NFKC_SCF; 2C41           # L&       GLAGOLITIC CAPITAL LETTER ONU
+ 2C12          ; NFKC_SCF; 2C42           # L&       GLAGOLITIC CAPITAL LETTER POKOJI
+ 2C13          ; NFKC_SCF; 2C43           # L&       GLAGOLITIC CAPITAL LETTER RITSI
+ 2C14          ; NFKC_SCF; 2C44           # L&       GLAGOLITIC CAPITAL LETTER SLOVO
+ 2C15          ; NFKC_SCF; 2C45           # L&       GLAGOLITIC CAPITAL LETTER TVRIDO
+ 2C16          ; NFKC_SCF; 2C46           # L&       GLAGOLITIC CAPITAL LETTER UKU
+ 2C17          ; NFKC_SCF; 2C47           # L&       GLAGOLITIC CAPITAL LETTER FRITU
+ 2C18          ; NFKC_SCF; 2C48           # L&       GLAGOLITIC CAPITAL LETTER HERU
+ 2C19          ; NFKC_SCF; 2C49           # L&       GLAGOLITIC CAPITAL LETTER OTU
+ 2C1A          ; NFKC_SCF; 2C4A           # L&       GLAGOLITIC CAPITAL LETTER PE
+ 2C1B          ; NFKC_SCF; 2C4B           # L&       GLAGOLITIC CAPITAL LETTER SHTA
+ 2C1C          ; NFKC_SCF; 2C4C           # L&       GLAGOLITIC CAPITAL LETTER TSI
+ 2C1D          ; NFKC_SCF; 2C4D           # L&       GLAGOLITIC CAPITAL LETTER CHRIVI
+ 2C1E          ; NFKC_SCF; 2C4E           # L&       GLAGOLITIC CAPITAL LETTER SHA
+ 2C1F          ; NFKC_SCF; 2C4F           # L&       GLAGOLITIC CAPITAL LETTER YERU
+ 2C20          ; NFKC_SCF; 2C50           # L&       GLAGOLITIC CAPITAL LETTER YERI
+ 2C21          ; NFKC_SCF; 2C51           # L&       GLAGOLITIC CAPITAL LETTER YATI
+ 2C22          ; NFKC_SCF; 2C52           # L&       GLAGOLITIC CAPITAL LETTER SPIDERY HA
+ 2C23          ; NFKC_SCF; 2C53           # L&       GLAGOLITIC CAPITAL LETTER YU
+ 2C24          ; NFKC_SCF; 2C54           # L&       GLAGOLITIC CAPITAL LETTER SMALL YUS
+ 2C25          ; NFKC_SCF; 2C55           # L&       GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
+ 2C26          ; NFKC_SCF; 2C56           # L&       GLAGOLITIC CAPITAL LETTER YO
+ 2C27          ; NFKC_SCF; 2C57           # L&       GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
+ 2C28          ; NFKC_SCF; 2C58           # L&       GLAGOLITIC CAPITAL LETTER BIG YUS
+ 2C29          ; NFKC_SCF; 2C59           # L&       GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
+ 2C2A          ; NFKC_SCF; 2C5A           # L&       GLAGOLITIC CAPITAL LETTER FITA
+ 2C2B          ; NFKC_SCF; 2C5B           # L&       GLAGOLITIC CAPITAL LETTER IZHITSA
+ 2C2C          ; NFKC_SCF; 2C5C           # L&       GLAGOLITIC CAPITAL LETTER SHTAPIC
+ 2C2D          ; NFKC_SCF; 2C5D           # L&       GLAGOLITIC CAPITAL LETTER TROKUTASTI A
+ 2C2E          ; NFKC_SCF; 2C5E           # L&       GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+ 2C2F          ; NFKC_SCF; 2C5F           # L&       GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
+ 2C60          ; NFKC_SCF; 2C61           # L&       LATIN CAPITAL LETTER L WITH DOUBLE BAR
+ 2C62          ; NFKC_SCF; 026B           # L&       LATIN CAPITAL LETTER L WITH MIDDLE TILDE
+ 2C63          ; NFKC_SCF; 1D7D           # L&       LATIN CAPITAL LETTER P WITH STROKE
+ 2C64          ; NFKC_SCF; 027D           # L&       LATIN CAPITAL LETTER R WITH TAIL
+ 2C67          ; NFKC_SCF; 2C68           # L&       LATIN CAPITAL LETTER H WITH DESCENDER
+ 2C69          ; NFKC_SCF; 2C6A           # L&       LATIN CAPITAL LETTER K WITH DESCENDER
+ 2C6B          ; NFKC_SCF; 2C6C           # L&       LATIN CAPITAL LETTER Z WITH DESCENDER
+ 2C6D          ; NFKC_SCF; 0251           # L&       LATIN CAPITAL LETTER ALPHA
+ 2C6E          ; NFKC_SCF; 0271           # L&       LATIN CAPITAL LETTER M WITH HOOK
+ 2C6F          ; NFKC_SCF; 0250           # L&       LATIN CAPITAL LETTER TURNED A
+ 2C70          ; NFKC_SCF; 0252           # L&       LATIN CAPITAL LETTER TURNED ALPHA
+ 2C72          ; NFKC_SCF; 2C73           # L&       LATIN CAPITAL LETTER W WITH HOOK
+ 2C75          ; NFKC_SCF; 2C76           # L&       LATIN CAPITAL LETTER HALF H
+ 2C7C          ; NFKC_SCF; 006A           # Lm       LATIN SUBSCRIPT SMALL LETTER J
+ 2C7D          ; NFKC_SCF; 0076           # Lm       MODIFIER LETTER CAPITAL V
+ 2C7E          ; NFKC_SCF; 023F           # L&       LATIN CAPITAL LETTER S WITH SWASH TAIL
+ 2C7F          ; NFKC_SCF; 0240           # L&       LATIN CAPITAL LETTER Z WITH SWASH TAIL
+ 2C80          ; NFKC_SCF; 2C81           # L&       COPTIC CAPITAL LETTER ALFA
+ 2C82          ; NFKC_SCF; 2C83           # L&       COPTIC CAPITAL LETTER VIDA
+ 2C84          ; NFKC_SCF; 2C85           # L&       COPTIC CAPITAL LETTER GAMMA
+ 2C86          ; NFKC_SCF; 2C87           # L&       COPTIC CAPITAL LETTER DALDA
+ 2C88          ; NFKC_SCF; 2C89           # L&       COPTIC CAPITAL LETTER EIE
+ 2C8A          ; NFKC_SCF; 2C8B           # L&       COPTIC CAPITAL LETTER SOU
+ 2C8C          ; NFKC_SCF; 2C8D           # L&       COPTIC CAPITAL LETTER ZATA
+ 2C8E          ; NFKC_SCF; 2C8F           # L&       COPTIC CAPITAL LETTER HATE
+ 2C90          ; NFKC_SCF; 2C91           # L&       COPTIC CAPITAL LETTER THETHE
+ 2C92          ; NFKC_SCF; 2C93           # L&       COPTIC CAPITAL LETTER IAUDA
+ 2C94          ; NFKC_SCF; 2C95           # L&       COPTIC CAPITAL LETTER KAPA
+ 2C96          ; NFKC_SCF; 2C97           # L&       COPTIC CAPITAL LETTER LAULA
+ 2C98          ; NFKC_SCF; 2C99           # L&       COPTIC CAPITAL LETTER MI
+ 2C9A          ; NFKC_SCF; 2C9B           # L&       COPTIC CAPITAL LETTER NI
+ 2C9C          ; NFKC_SCF; 2C9D           # L&       COPTIC CAPITAL LETTER KSI
+ 2C9E          ; NFKC_SCF; 2C9F           # L&       COPTIC CAPITAL LETTER O
+ 2CA0          ; NFKC_SCF; 2CA1           # L&       COPTIC CAPITAL LETTER PI
+ 2CA2          ; NFKC_SCF; 2CA3           # L&       COPTIC CAPITAL LETTER RO
+ 2CA4          ; NFKC_SCF; 2CA5           # L&       COPTIC CAPITAL LETTER SIMA
+ 2CA6          ; NFKC_SCF; 2CA7           # L&       COPTIC CAPITAL LETTER TAU
+ 2CA8          ; NFKC_SCF; 2CA9           # L&       COPTIC CAPITAL LETTER UA
+ 2CAA          ; NFKC_SCF; 2CAB           # L&       COPTIC CAPITAL LETTER FI
+ 2CAC          ; NFKC_SCF; 2CAD           # L&       COPTIC CAPITAL LETTER KHI
+ 2CAE          ; NFKC_SCF; 2CAF           # L&       COPTIC CAPITAL LETTER PSI
+ 2CB0          ; NFKC_SCF; 2CB1           # L&       COPTIC CAPITAL LETTER OOU
+ 2CB2          ; NFKC_SCF; 2CB3           # L&       COPTIC CAPITAL LETTER DIALECT-P ALEF
+ 2CB4          ; NFKC_SCF; 2CB5           # L&       COPTIC CAPITAL LETTER OLD COPTIC AIN
+ 2CB6          ; NFKC_SCF; 2CB7           # L&       COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+ 2CB8          ; NFKC_SCF; 2CB9           # L&       COPTIC CAPITAL LETTER DIALECT-P KAPA
+ 2CBA          ; NFKC_SCF; 2CBB           # L&       COPTIC CAPITAL LETTER DIALECT-P NI
+ 2CBC          ; NFKC_SCF; 2CBD           # L&       COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+ 2CBE          ; NFKC_SCF; 2CBF           # L&       COPTIC CAPITAL LETTER OLD COPTIC OOU
+ 2CC0          ; NFKC_SCF; 2CC1           # L&       COPTIC CAPITAL LETTER SAMPI
+ 2CC2          ; NFKC_SCF; 2CC3           # L&       COPTIC CAPITAL LETTER CROSSED SHEI
+ 2CC4          ; NFKC_SCF; 2CC5           # L&       COPTIC CAPITAL LETTER OLD COPTIC SHEI
+ 2CC6          ; NFKC_SCF; 2CC7           # L&       COPTIC CAPITAL LETTER OLD COPTIC ESH
+ 2CC8          ; NFKC_SCF; 2CC9           # L&       COPTIC CAPITAL LETTER AKHMIMIC KHEI
+ 2CCA          ; NFKC_SCF; 2CCB           # L&       COPTIC CAPITAL LETTER DIALECT-P HORI
+ 2CCC          ; NFKC_SCF; 2CCD           # L&       COPTIC CAPITAL LETTER OLD COPTIC HORI
+ 2CCE          ; NFKC_SCF; 2CCF           # L&       COPTIC CAPITAL LETTER OLD COPTIC HA
+ 2CD0          ; NFKC_SCF; 2CD1           # L&       COPTIC CAPITAL LETTER L-SHAPED HA
+ 2CD2          ; NFKC_SCF; 2CD3           # L&       COPTIC CAPITAL LETTER OLD COPTIC HEI
+ 2CD4          ; NFKC_SCF; 2CD5           # L&       COPTIC CAPITAL LETTER OLD COPTIC HAT
+ 2CD6          ; NFKC_SCF; 2CD7           # L&       COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+ 2CD8          ; NFKC_SCF; 2CD9           # L&       COPTIC CAPITAL LETTER OLD COPTIC DJA
+ 2CDA          ; NFKC_SCF; 2CDB           # L&       COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+ 2CDC          ; NFKC_SCF; 2CDD           # L&       COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+ 2CDE          ; NFKC_SCF; 2CDF           # L&       COPTIC CAPITAL LETTER OLD NUBIAN NGI
+ 2CE0          ; NFKC_SCF; 2CE1           # L&       COPTIC CAPITAL LETTER OLD NUBIAN NYI
+ 2CE2          ; NFKC_SCF; 2CE3           # L&       COPTIC CAPITAL LETTER OLD NUBIAN WAU
+ 2CEB          ; NFKC_SCF; 2CEC           # L&       COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
+ 2CED          ; NFKC_SCF; 2CEE           # L&       COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
+ 2CF2          ; NFKC_SCF; 2CF3           # L&       COPTIC CAPITAL LETTER BOHAIRIC KHEI
+ 2D6F          ; NFKC_SCF; 2D61           # Lm       TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+ 2E9F          ; NFKC_SCF; 6BCD           # So       CJK RADICAL MOTHER
+ 2EF3          ; NFKC_SCF; 9F9F           # So       CJK RADICAL C-SIMPLIFIED TURTLE
+ 2F00          ; NFKC_SCF; 4E00           # So       KANGXI RADICAL ONE
+ 2F01          ; NFKC_SCF; 4E28           # So       KANGXI RADICAL LINE
+ 2F02          ; NFKC_SCF; 4E36           # So       KANGXI RADICAL DOT
+ 2F03          ; NFKC_SCF; 4E3F           # So       KANGXI RADICAL SLASH
+ 2F04          ; NFKC_SCF; 4E59           # So       KANGXI RADICAL SECOND
+ 2F05          ; NFKC_SCF; 4E85           # So       KANGXI RADICAL HOOK
+ 2F06          ; NFKC_SCF; 4E8C           # So       KANGXI RADICAL TWO
+ 2F07          ; NFKC_SCF; 4EA0           # So       KANGXI RADICAL LID
+ 2F08          ; NFKC_SCF; 4EBA           # So       KANGXI RADICAL MAN
+ 2F09          ; NFKC_SCF; 513F           # So       KANGXI RADICAL LEGS
+ 2F0A          ; NFKC_SCF; 5165           # So       KANGXI RADICAL ENTER
+ 2F0B          ; NFKC_SCF; 516B           # So       KANGXI RADICAL EIGHT
+ 2F0C          ; NFKC_SCF; 5182           # So       KANGXI RADICAL DOWN BOX
+ 2F0D          ; NFKC_SCF; 5196           # So       KANGXI RADICAL COVER
+ 2F0E          ; NFKC_SCF; 51AB           # So       KANGXI RADICAL ICE
+ 2F0F          ; NFKC_SCF; 51E0           # So       KANGXI RADICAL TABLE
+ 2F10          ; NFKC_SCF; 51F5           # So       KANGXI RADICAL OPEN BOX
+ 2F11          ; NFKC_SCF; 5200           # So       KANGXI RADICAL KNIFE
+ 2F12          ; NFKC_SCF; 529B           # So       KANGXI RADICAL POWER
+ 2F13          ; NFKC_SCF; 52F9           # So       KANGXI RADICAL WRAP
+ 2F14          ; NFKC_SCF; 5315           # So       KANGXI RADICAL SPOON
+ 2F15          ; NFKC_SCF; 531A           # So       KANGXI RADICAL RIGHT OPEN BOX
+ 2F16          ; NFKC_SCF; 5338           # So       KANGXI RADICAL HIDING ENCLOSURE
+ 2F17          ; NFKC_SCF; 5341           # So       KANGXI RADICAL TEN
+ 2F18          ; NFKC_SCF; 535C           # So       KANGXI RADICAL DIVINATION
+ 2F19          ; NFKC_SCF; 5369           # So       KANGXI RADICAL SEAL
+ 2F1A          ; NFKC_SCF; 5382           # So       KANGXI RADICAL CLIFF
+ 2F1B          ; NFKC_SCF; 53B6           # So       KANGXI RADICAL PRIVATE
+ 2F1C          ; NFKC_SCF; 53C8           # So       KANGXI RADICAL AGAIN
+ 2F1D          ; NFKC_SCF; 53E3           # So       KANGXI RADICAL MOUTH
+ 2F1E          ; NFKC_SCF; 56D7           # So       KANGXI RADICAL ENCLOSURE
+ 2F1F          ; NFKC_SCF; 571F           # So       KANGXI RADICAL EARTH
+ 2F20          ; NFKC_SCF; 58EB           # So       KANGXI RADICAL SCHOLAR
+ 2F21          ; NFKC_SCF; 5902           # So       KANGXI RADICAL GO
+ 2F22          ; NFKC_SCF; 590A           # So       KANGXI RADICAL GO SLOWLY
+ 2F23          ; NFKC_SCF; 5915           # So       KANGXI RADICAL EVENING
+ 2F24          ; NFKC_SCF; 5927           # So       KANGXI RADICAL BIG
+ 2F25          ; NFKC_SCF; 5973           # So       KANGXI RADICAL WOMAN
+ 2F26          ; NFKC_SCF; 5B50           # So       KANGXI RADICAL CHILD
+ 2F27          ; NFKC_SCF; 5B80           # So       KANGXI RADICAL ROOF
+ 2F28          ; NFKC_SCF; 5BF8           # So       KANGXI RADICAL INCH
+ 2F29          ; NFKC_SCF; 5C0F           # So       KANGXI RADICAL SMALL
+ 2F2A          ; NFKC_SCF; 5C22           # So       KANGXI RADICAL LAME
+ 2F2B          ; NFKC_SCF; 5C38           # So       KANGXI RADICAL CORPSE
+ 2F2C          ; NFKC_SCF; 5C6E           # So       KANGXI RADICAL SPROUT
+ 2F2D          ; NFKC_SCF; 5C71           # So       KANGXI RADICAL MOUNTAIN
+ 2F2E          ; NFKC_SCF; 5DDB           # So       KANGXI RADICAL RIVER
+ 2F2F          ; NFKC_SCF; 5DE5           # So       KANGXI RADICAL WORK
+ 2F30          ; NFKC_SCF; 5DF1           # So       KANGXI RADICAL ONESELF
+ 2F31          ; NFKC_SCF; 5DFE           # So       KANGXI RADICAL TURBAN
+ 2F32          ; NFKC_SCF; 5E72           # So       KANGXI RADICAL DRY
+ 2F33          ; NFKC_SCF; 5E7A           # So       KANGXI RADICAL SHORT THREAD
+ 2F34          ; NFKC_SCF; 5E7F           # So       KANGXI RADICAL DOTTED CLIFF
+ 2F35          ; NFKC_SCF; 5EF4           # So       KANGXI RADICAL LONG STRIDE
+ 2F36          ; NFKC_SCF; 5EFE           # So       KANGXI RADICAL TWO HANDS
+ 2F37          ; NFKC_SCF; 5F0B           # So       KANGXI RADICAL SHOOT
+ 2F38          ; NFKC_SCF; 5F13           # So       KANGXI RADICAL BOW
+ 2F39          ; NFKC_SCF; 5F50           # So       KANGXI RADICAL SNOUT
+ 2F3A          ; NFKC_SCF; 5F61           # So       KANGXI RADICAL BRISTLE
+ 2F3B          ; NFKC_SCF; 5F73           # So       KANGXI RADICAL STEP
+ 2F3C          ; NFKC_SCF; 5FC3           # So       KANGXI RADICAL HEART
+ 2F3D          ; NFKC_SCF; 6208           # So       KANGXI RADICAL HALBERD
+ 2F3E          ; NFKC_SCF; 6236           # So       KANGXI RADICAL DOOR
+ 2F3F          ; NFKC_SCF; 624B           # So       KANGXI RADICAL HAND
+ 2F40          ; NFKC_SCF; 652F           # So       KANGXI RADICAL BRANCH
+ 2F41          ; NFKC_SCF; 6534           # So       KANGXI RADICAL RAP
+ 2F42          ; NFKC_SCF; 6587           # So       KANGXI RADICAL SCRIPT
+ 2F43          ; NFKC_SCF; 6597           # So       KANGXI RADICAL DIPPER
+ 2F44          ; NFKC_SCF; 65A4           # So       KANGXI RADICAL AXE
+ 2F45          ; NFKC_SCF; 65B9           # So       KANGXI RADICAL SQUARE
+ 2F46          ; NFKC_SCF; 65E0           # So       KANGXI RADICAL NOT
+ 2F47          ; NFKC_SCF; 65E5           # So       KANGXI RADICAL SUN
+ 2F48          ; NFKC_SCF; 66F0           # So       KANGXI RADICAL SAY
+ 2F49          ; NFKC_SCF; 6708           # So       KANGXI RADICAL MOON
+ 2F4A          ; NFKC_SCF; 6728           # So       KANGXI RADICAL TREE
+ 2F4B          ; NFKC_SCF; 6B20           # So       KANGXI RADICAL LACK
+ 2F4C          ; NFKC_SCF; 6B62           # So       KANGXI RADICAL STOP
+ 2F4D          ; NFKC_SCF; 6B79           # So       KANGXI RADICAL DEATH
+ 2F4E          ; NFKC_SCF; 6BB3           # So       KANGXI RADICAL WEAPON
+ 2F4F          ; NFKC_SCF; 6BCB           # So       KANGXI RADICAL DO NOT
+ 2F50          ; NFKC_SCF; 6BD4           # So       KANGXI RADICAL COMPARE
+ 2F51          ; NFKC_SCF; 6BDB           # So       KANGXI RADICAL FUR
+ 2F52          ; NFKC_SCF; 6C0F           # So       KANGXI RADICAL CLAN
+ 2F53          ; NFKC_SCF; 6C14           # So       KANGXI RADICAL STEAM
+ 2F54          ; NFKC_SCF; 6C34           # So       KANGXI RADICAL WATER
+ 2F55          ; NFKC_SCF; 706B           # So       KANGXI RADICAL FIRE
+ 2F56          ; NFKC_SCF; 722A           # So       KANGXI RADICAL CLAW
+ 2F57          ; NFKC_SCF; 7236           # So       KANGXI RADICAL FATHER
+ 2F58          ; NFKC_SCF; 723B           # So       KANGXI RADICAL DOUBLE X
+ 2F59          ; NFKC_SCF; 723F           # So       KANGXI RADICAL HALF TREE TRUNK
+ 2F5A          ; NFKC_SCF; 7247           # So       KANGXI RADICAL SLICE
+ 2F5B          ; NFKC_SCF; 7259           # So       KANGXI RADICAL FANG
+ 2F5C          ; NFKC_SCF; 725B           # So       KANGXI RADICAL COW
+ 2F5D          ; NFKC_SCF; 72AC           # So       KANGXI RADICAL DOG
+ 2F5E          ; NFKC_SCF; 7384           # So       KANGXI RADICAL PROFOUND
+ 2F5F          ; NFKC_SCF; 7389           # So       KANGXI RADICAL JADE
+ 2F60          ; NFKC_SCF; 74DC           # So       KANGXI RADICAL MELON
+ 2F61          ; NFKC_SCF; 74E6           # So       KANGXI RADICAL TILE
+ 2F62          ; NFKC_SCF; 7518           # So       KANGXI RADICAL SWEET
+ 2F63          ; NFKC_SCF; 751F           # So       KANGXI RADICAL LIFE
+ 2F64          ; NFKC_SCF; 7528           # So       KANGXI RADICAL USE
+ 2F65          ; NFKC_SCF; 7530           # So       KANGXI RADICAL FIELD
+ 2F66          ; NFKC_SCF; 758B           # So       KANGXI RADICAL BOLT OF CLOTH
+ 2F67          ; NFKC_SCF; 7592           # So       KANGXI RADICAL SICKNESS
+ 2F68          ; NFKC_SCF; 7676           # So       KANGXI RADICAL DOTTED TENT
+ 2F69          ; NFKC_SCF; 767D           # So       KANGXI RADICAL WHITE
+ 2F6A          ; NFKC_SCF; 76AE           # So       KANGXI RADICAL SKIN
+ 2F6B          ; NFKC_SCF; 76BF           # So       KANGXI RADICAL DISH
+ 2F6C          ; NFKC_SCF; 76EE           # So       KANGXI RADICAL EYE
+ 2F6D          ; NFKC_SCF; 77DB           # So       KANGXI RADICAL SPEAR
+ 2F6E          ; NFKC_SCF; 77E2           # So       KANGXI RADICAL ARROW
+ 2F6F          ; NFKC_SCF; 77F3           # So       KANGXI RADICAL STONE
+ 2F70          ; NFKC_SCF; 793A           # So       KANGXI RADICAL SPIRIT
+ 2F71          ; NFKC_SCF; 79B8           # So       KANGXI RADICAL TRACK
+ 2F72          ; NFKC_SCF; 79BE           # So       KANGXI RADICAL GRAIN
+ 2F73          ; NFKC_SCF; 7A74           # So       KANGXI RADICAL CAVE
+ 2F74          ; NFKC_SCF; 7ACB           # So       KANGXI RADICAL STAND
+ 2F75          ; NFKC_SCF; 7AF9           # So       KANGXI RADICAL BAMBOO
+ 2F76          ; NFKC_SCF; 7C73           # So       KANGXI RADICAL RICE
+ 2F77          ; NFKC_SCF; 7CF8           # So       KANGXI RADICAL SILK
+ 2F78          ; NFKC_SCF; 7F36           # So       KANGXI RADICAL JAR
+ 2F79          ; NFKC_SCF; 7F51           # So       KANGXI RADICAL NET
+ 2F7A          ; NFKC_SCF; 7F8A           # So       KANGXI RADICAL SHEEP
+ 2F7B          ; NFKC_SCF; 7FBD           # So       KANGXI RADICAL FEATHER
+ 2F7C          ; NFKC_SCF; 8001           # So       KANGXI RADICAL OLD
+ 2F7D          ; NFKC_SCF; 800C           # So       KANGXI RADICAL AND
+ 2F7E          ; NFKC_SCF; 8012           # So       KANGXI RADICAL PLOW
+ 2F7F          ; NFKC_SCF; 8033           # So       KANGXI RADICAL EAR
+ 2F80          ; NFKC_SCF; 807F           # So       KANGXI RADICAL BRUSH
+ 2F81          ; NFKC_SCF; 8089           # So       KANGXI RADICAL MEAT
+ 2F82          ; NFKC_SCF; 81E3           # So       KANGXI RADICAL MINISTER
+ 2F83          ; NFKC_SCF; 81EA           # So       KANGXI RADICAL SELF
+ 2F84          ; NFKC_SCF; 81F3           # So       KANGXI RADICAL ARRIVE
+ 2F85          ; NFKC_SCF; 81FC           # So       KANGXI RADICAL MORTAR
+ 2F86          ; NFKC_SCF; 820C           # So       KANGXI RADICAL TONGUE
+ 2F87          ; NFKC_SCF; 821B           # So       KANGXI RADICAL OPPOSE
+ 2F88          ; NFKC_SCF; 821F           # So       KANGXI RADICAL BOAT
+ 2F89          ; NFKC_SCF; 826E           # So       KANGXI RADICAL STOPPING
+ 2F8A          ; NFKC_SCF; 8272           # So       KANGXI RADICAL COLOR
+ 2F8B          ; NFKC_SCF; 8278           # So       KANGXI RADICAL GRASS
+ 2F8C          ; NFKC_SCF; 864D           # So       KANGXI RADICAL TIGER
+ 2F8D          ; NFKC_SCF; 866B           # So       KANGXI RADICAL INSECT
+ 2F8E          ; NFKC_SCF; 8840           # So       KANGXI RADICAL BLOOD
+ 2F8F          ; NFKC_SCF; 884C           # So       KANGXI RADICAL WALK ENCLOSURE
+ 2F90          ; NFKC_SCF; 8863           # So       KANGXI RADICAL CLOTHES
+ 2F91          ; NFKC_SCF; 897E           # So       KANGXI RADICAL WEST
+ 2F92          ; NFKC_SCF; 898B           # So       KANGXI RADICAL SEE
+ 2F93          ; NFKC_SCF; 89D2           # So       KANGXI RADICAL HORN
+ 2F94          ; NFKC_SCF; 8A00           # So       KANGXI RADICAL SPEECH
+ 2F95          ; NFKC_SCF; 8C37           # So       KANGXI RADICAL VALLEY
+ 2F96          ; NFKC_SCF; 8C46           # So       KANGXI RADICAL BEAN
+ 2F97          ; NFKC_SCF; 8C55           # So       KANGXI RADICAL PIG
+ 2F98          ; NFKC_SCF; 8C78           # So       KANGXI RADICAL BADGER
+ 2F99          ; NFKC_SCF; 8C9D           # So       KANGXI RADICAL SHELL
+ 2F9A          ; NFKC_SCF; 8D64           # So       KANGXI RADICAL RED
+ 2F9B          ; NFKC_SCF; 8D70           # So       KANGXI RADICAL RUN
+ 2F9C          ; NFKC_SCF; 8DB3           # So       KANGXI RADICAL FOOT
+ 2F9D          ; NFKC_SCF; 8EAB           # So       KANGXI RADICAL BODY
+ 2F9E          ; NFKC_SCF; 8ECA           # So       KANGXI RADICAL CART
+ 2F9F          ; NFKC_SCF; 8F9B           # So       KANGXI RADICAL BITTER
+ 2FA0          ; NFKC_SCF; 8FB0           # So       KANGXI RADICAL MORNING
+ 2FA1          ; NFKC_SCF; 8FB5           # So       KANGXI RADICAL WALK
+ 2FA2          ; NFKC_SCF; 9091           # So       KANGXI RADICAL CITY
+ 2FA3          ; NFKC_SCF; 9149           # So       KANGXI RADICAL WINE
+ 2FA4          ; NFKC_SCF; 91C6           # So       KANGXI RADICAL DISTINGUISH
+ 2FA5          ; NFKC_SCF; 91CC           # So       KANGXI RADICAL VILLAGE
+ 2FA6          ; NFKC_SCF; 91D1           # So       KANGXI RADICAL GOLD
+ 2FA7          ; NFKC_SCF; 9577           # So       KANGXI RADICAL LONG
+ 2FA8          ; NFKC_SCF; 9580           # So       KANGXI RADICAL GATE
+ 2FA9          ; NFKC_SCF; 961C           # So       KANGXI RADICAL MOUND
+ 2FAA          ; NFKC_SCF; 96B6           # So       KANGXI RADICAL SLAVE
+ 2FAB          ; NFKC_SCF; 96B9           # So       KANGXI RADICAL SHORT TAILED BIRD
+ 2FAC          ; NFKC_SCF; 96E8           # So       KANGXI RADICAL RAIN
+ 2FAD          ; NFKC_SCF; 9751           # So       KANGXI RADICAL BLUE
+ 2FAE          ; NFKC_SCF; 975E           # So       KANGXI RADICAL WRONG
+ 2FAF          ; NFKC_SCF; 9762           # So       KANGXI RADICAL FACE
+ 2FB0          ; NFKC_SCF; 9769           # So       KANGXI RADICAL LEATHER
+ 2FB1          ; NFKC_SCF; 97CB           # So       KANGXI RADICAL TANNED LEATHER
+ 2FB2          ; NFKC_SCF; 97ED           # So       KANGXI RADICAL LEEK
+ 2FB3          ; NFKC_SCF; 97F3           # So       KANGXI RADICAL SOUND
+ 2FB4          ; NFKC_SCF; 9801           # So       KANGXI RADICAL LEAF
+ 2FB5          ; NFKC_SCF; 98A8           # So       KANGXI RADICAL WIND
+ 2FB6          ; NFKC_SCF; 98DB           # So       KANGXI RADICAL FLY
+ 2FB7          ; NFKC_SCF; 98DF           # So       KANGXI RADICAL EAT
+ 2FB8          ; NFKC_SCF; 9996           # So       KANGXI RADICAL HEAD
+ 2FB9          ; NFKC_SCF; 9999           # So       KANGXI RADICAL FRAGRANT
+ 2FBA          ; NFKC_SCF; 99AC           # So       KANGXI RADICAL HORSE
+ 2FBB          ; NFKC_SCF; 9AA8           # So       KANGXI RADICAL BONE
+ 2FBC          ; NFKC_SCF; 9AD8           # So       KANGXI RADICAL TALL
+ 2FBD          ; NFKC_SCF; 9ADF           # So       KANGXI RADICAL HAIR
+ 2FBE          ; NFKC_SCF; 9B25           # So       KANGXI RADICAL FIGHT
+ 2FBF          ; NFKC_SCF; 9B2F           # So       KANGXI RADICAL SACRIFICIAL WINE
+ 2FC0          ; NFKC_SCF; 9B32           # So       KANGXI RADICAL CAULDRON
+ 2FC1          ; NFKC_SCF; 9B3C           # So       KANGXI RADICAL GHOST
+ 2FC2          ; NFKC_SCF; 9B5A           # So       KANGXI RADICAL FISH
+ 2FC3          ; NFKC_SCF; 9CE5           # So       KANGXI RADICAL BIRD
+ 2FC4          ; NFKC_SCF; 9E75           # So       KANGXI RADICAL SALT
+ 2FC5          ; NFKC_SCF; 9E7F           # So       KANGXI RADICAL DEER
+ 2FC6          ; NFKC_SCF; 9EA5           # So       KANGXI RADICAL WHEAT
+ 2FC7          ; NFKC_SCF; 9EBB           # So       KANGXI RADICAL HEMP
+ 2FC8          ; NFKC_SCF; 9EC3           # So       KANGXI RADICAL YELLOW
+ 2FC9          ; NFKC_SCF; 9ECD           # So       KANGXI RADICAL MILLET
+ 2FCA          ; NFKC_SCF; 9ED1           # So       KANGXI RADICAL BLACK
+ 2FCB          ; NFKC_SCF; 9EF9           # So       KANGXI RADICAL EMBROIDERY
+ 2FCC          ; NFKC_SCF; 9EFD           # So       KANGXI RADICAL FROG
+ 2FCD          ; NFKC_SCF; 9F0E           # So       KANGXI RADICAL TRIPOD
+ 2FCE          ; NFKC_SCF; 9F13           # So       KANGXI RADICAL DRUM
+ 2FCF          ; NFKC_SCF; 9F20           # So       KANGXI RADICAL RAT
+ 2FD0          ; NFKC_SCF; 9F3B           # So       KANGXI RADICAL NOSE
+ 2FD1          ; NFKC_SCF; 9F4A           # So       KANGXI RADICAL EVEN
+ 2FD2          ; NFKC_SCF; 9F52           # So       KANGXI RADICAL TOOTH
+ 2FD3          ; NFKC_SCF; 9F8D           # So       KANGXI RADICAL DRAGON
+ 2FD4          ; NFKC_SCF; 9F9C           # So       KANGXI RADICAL TURTLE
+ 2FD5          ; NFKC_SCF; 9FA0           # So       KANGXI RADICAL FLUTE
+ 3000          ; NFKC_SCF; 0020           # Zs       IDEOGRAPHIC SPACE
+ 3036          ; NFKC_SCF; 3012           # So       CIRCLED POSTAL MARK
+ 3038          ; NFKC_SCF; 5341           # Nl       HANGZHOU NUMERAL TEN
+ 3039          ; NFKC_SCF; 5344           # Nl       HANGZHOU NUMERAL TWENTY
+ 303A          ; NFKC_SCF; 5345           # Nl       HANGZHOU NUMERAL THIRTY
+ 309B          ; NFKC_SCF; 0020 3099      # Sk       KATAKANA-HIRAGANA VOICED SOUND MARK
+ 309C          ; NFKC_SCF; 0020 309A      # Sk       KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ 309F          ; NFKC_SCF; 3088 308A      # Lo       HIRAGANA DIGRAPH YORI
+ 30FF          ; NFKC_SCF; 30B3 30C8      # Lo       KATAKANA DIGRAPH KOTO
+ 3131          ; NFKC_SCF; 1100           # Lo       HANGUL LETTER KIYEOK
+ 3132          ; NFKC_SCF; 1101           # Lo       HANGUL LETTER SSANGKIYEOK
+ 3133          ; NFKC_SCF; 11AA           # Lo       HANGUL LETTER KIYEOK-SIOS
+ 3134          ; NFKC_SCF; 1102           # Lo       HANGUL LETTER NIEUN
+ 3135          ; NFKC_SCF; 11AC           # Lo       HANGUL LETTER NIEUN-CIEUC
+ 3136          ; NFKC_SCF; 11AD           # Lo       HANGUL LETTER NIEUN-HIEUH
+ 3137          ; NFKC_SCF; 1103           # Lo       HANGUL LETTER TIKEUT
+ 3138          ; NFKC_SCF; 1104           # Lo       HANGUL LETTER SSANGTIKEUT
+ 3139          ; NFKC_SCF; 1105           # Lo       HANGUL LETTER RIEUL
+ 313A          ; NFKC_SCF; 11B0           # Lo       HANGUL LETTER RIEUL-KIYEOK
+ 313B          ; NFKC_SCF; 11B1           # Lo       HANGUL LETTER RIEUL-MIEUM
+ 313C          ; NFKC_SCF; 11B2           # Lo       HANGUL LETTER RIEUL-PIEUP
+ 313D          ; NFKC_SCF; 11B3           # Lo       HANGUL LETTER RIEUL-SIOS
+ 313E          ; NFKC_SCF; 11B4           # Lo       HANGUL LETTER RIEUL-THIEUTH
+ 313F          ; NFKC_SCF; 11B5           # Lo       HANGUL LETTER RIEUL-PHIEUPH
+ 3140          ; NFKC_SCF; 111A           # Lo       HANGUL LETTER RIEUL-HIEUH
+ 3141          ; NFKC_SCF; 1106           # Lo       HANGUL LETTER MIEUM
+ 3142          ; NFKC_SCF; 1107           # Lo       HANGUL LETTER PIEUP
+ 3143          ; NFKC_SCF; 1108           # Lo       HANGUL LETTER SSANGPIEUP
+ 3144          ; NFKC_SCF; 1121           # Lo       HANGUL LETTER PIEUP-SIOS
+ 3145          ; NFKC_SCF; 1109           # Lo       HANGUL LETTER SIOS
+ 3146          ; NFKC_SCF; 110A           # Lo       HANGUL LETTER SSANGSIOS
+ 3147          ; NFKC_SCF; 110B           # Lo       HANGUL LETTER IEUNG
+ 3148          ; NFKC_SCF; 110C           # Lo       HANGUL LETTER CIEUC
+ 3149          ; NFKC_SCF; 110D           # Lo       HANGUL LETTER SSANGCIEUC
+ 314A          ; NFKC_SCF; 110E           # Lo       HANGUL LETTER CHIEUCH
+ 314B          ; NFKC_SCF; 110F           # Lo       HANGUL LETTER KHIEUKH
+ 314C          ; NFKC_SCF; 1110           # Lo       HANGUL LETTER THIEUTH
+ 314D          ; NFKC_SCF; 1111           # Lo       HANGUL LETTER PHIEUPH
+ 314E          ; NFKC_SCF; 1112           # Lo       HANGUL LETTER HIEUH
+ 314F          ; NFKC_SCF; 1161           # Lo       HANGUL LETTER A
+ 3150          ; NFKC_SCF; 1162           # Lo       HANGUL LETTER AE
+ 3151          ; NFKC_SCF; 1163           # Lo       HANGUL LETTER YA
+ 3152          ; NFKC_SCF; 1164           # Lo       HANGUL LETTER YAE
+ 3153          ; NFKC_SCF; 1165           # Lo       HANGUL LETTER EO
+ 3154          ; NFKC_SCF; 1166           # Lo       HANGUL LETTER E
+ 3155          ; NFKC_SCF; 1167           # Lo       HANGUL LETTER YEO
+ 3156          ; NFKC_SCF; 1168           # Lo       HANGUL LETTER YE
+ 3157          ; NFKC_SCF; 1169           # Lo       HANGUL LETTER O
+ 3158          ; NFKC_SCF; 116A           # Lo       HANGUL LETTER WA
+ 3159          ; NFKC_SCF; 116B           # Lo       HANGUL LETTER WAE
+ 315A          ; NFKC_SCF; 116C           # Lo       HANGUL LETTER OE
+ 315B          ; NFKC_SCF; 116D           # Lo       HANGUL LETTER YO
+ 315C          ; NFKC_SCF; 116E           # Lo       HANGUL LETTER U
+ 315D          ; NFKC_SCF; 116F           # Lo       HANGUL LETTER WEO
+ 315E          ; NFKC_SCF; 1170           # Lo       HANGUL LETTER WE
+ 315F          ; NFKC_SCF; 1171           # Lo       HANGUL LETTER WI
+ 3160          ; NFKC_SCF; 1172           # Lo       HANGUL LETTER YU
+ 3161          ; NFKC_SCF; 1173           # Lo       HANGUL LETTER EU
+ 3162          ; NFKC_SCF; 1174           # Lo       HANGUL LETTER YI
+ 3163          ; NFKC_SCF; 1175           # Lo       HANGUL LETTER I
+ 3164          ; NFKC_SCF;                # Lo       HANGUL FILLER
+ 3165          ; NFKC_SCF; 1114           # Lo       HANGUL LETTER SSANGNIEUN
+ 3166          ; NFKC_SCF; 1115           # Lo       HANGUL LETTER NIEUN-TIKEUT
+ 3167          ; NFKC_SCF; 11C7           # Lo       HANGUL LETTER NIEUN-SIOS
+ 3168          ; NFKC_SCF; 11C8           # Lo       HANGUL LETTER NIEUN-PANSIOS
+ 3169          ; NFKC_SCF; 11CC           # Lo       HANGUL LETTER RIEUL-KIYEOK-SIOS
+ 316A          ; NFKC_SCF; 11CE           # Lo       HANGUL LETTER RIEUL-TIKEUT
+ 316B          ; NFKC_SCF; 11D3           # Lo       HANGUL LETTER RIEUL-PIEUP-SIOS
+ 316C          ; NFKC_SCF; 11D7           # Lo       HANGUL LETTER RIEUL-PANSIOS
+ 316D          ; NFKC_SCF; 11D9           # Lo       HANGUL LETTER RIEUL-YEORINHIEUH
+ 316E          ; NFKC_SCF; 111C           # Lo       HANGUL LETTER MIEUM-PIEUP
+ 316F          ; NFKC_SCF; 11DD           # Lo       HANGUL LETTER MIEUM-SIOS
+ 3170          ; NFKC_SCF; 11DF           # Lo       HANGUL LETTER MIEUM-PANSIOS
+ 3171          ; NFKC_SCF; 111D           # Lo       HANGUL LETTER KAPYEOUNMIEUM
+ 3172          ; NFKC_SCF; 111E           # Lo       HANGUL LETTER PIEUP-KIYEOK
+ 3173          ; NFKC_SCF; 1120           # Lo       HANGUL LETTER PIEUP-TIKEUT
+ 3174          ; NFKC_SCF; 1122           # Lo       HANGUL LETTER PIEUP-SIOS-KIYEOK
+ 3175          ; NFKC_SCF; 1123           # Lo       HANGUL LETTER PIEUP-SIOS-TIKEUT
+ 3176          ; NFKC_SCF; 1127           # Lo       HANGUL LETTER PIEUP-CIEUC
+ 3177          ; NFKC_SCF; 1129           # Lo       HANGUL LETTER PIEUP-THIEUTH
+ 3178          ; NFKC_SCF; 112B           # Lo       HANGUL LETTER KAPYEOUNPIEUP
+ 3179          ; NFKC_SCF; 112C           # Lo       HANGUL LETTER KAPYEOUNSSANGPIEUP
+ 317A          ; NFKC_SCF; 112D           # Lo       HANGUL LETTER SIOS-KIYEOK
+ 317B          ; NFKC_SCF; 112E           # Lo       HANGUL LETTER SIOS-NIEUN
+ 317C          ; NFKC_SCF; 112F           # Lo       HANGUL LETTER SIOS-TIKEUT
+ 317D          ; NFKC_SCF; 1132           # Lo       HANGUL LETTER SIOS-PIEUP
+ 317E          ; NFKC_SCF; 1136           # Lo       HANGUL LETTER SIOS-CIEUC
+ 317F          ; NFKC_SCF; 1140           # Lo       HANGUL LETTER PANSIOS
+ 3180          ; NFKC_SCF; 1147           # Lo       HANGUL LETTER SSANGIEUNG
+ 3181          ; NFKC_SCF; 114C           # Lo       HANGUL LETTER YESIEUNG
+ 3182          ; NFKC_SCF; 11F1           # Lo       HANGUL LETTER YESIEUNG-SIOS
+ 3183          ; NFKC_SCF; 11F2           # Lo       HANGUL LETTER YESIEUNG-PANSIOS
+ 3184          ; NFKC_SCF; 1157           # Lo       HANGUL LETTER KAPYEOUNPHIEUPH
+ 3185          ; NFKC_SCF; 1158           # Lo       HANGUL LETTER SSANGHIEUH
+ 3186          ; NFKC_SCF; 1159           # Lo       HANGUL LETTER YEORINHIEUH
+ 3187          ; NFKC_SCF; 1184           # Lo       HANGUL LETTER YO-YA
+ 3188          ; NFKC_SCF; 1185           # Lo       HANGUL LETTER YO-YAE
+ 3189          ; NFKC_SCF; 1188           # Lo       HANGUL LETTER YO-I
+ 318A          ; NFKC_SCF; 1191           # Lo       HANGUL LETTER YU-YEO
+ 318B          ; NFKC_SCF; 1192           # Lo       HANGUL LETTER YU-YE
+ 318C          ; NFKC_SCF; 1194           # Lo       HANGUL LETTER YU-I
+ 318D          ; NFKC_SCF; 119E           # Lo       HANGUL LETTER ARAEA
+ 318E          ; NFKC_SCF; 11A1           # Lo       HANGUL LETTER ARAEAE
+ 3192          ; NFKC_SCF; 4E00           # No       IDEOGRAPHIC ANNOTATION ONE MARK
+ 3193          ; NFKC_SCF; 4E8C           # No       IDEOGRAPHIC ANNOTATION TWO MARK
+ 3194          ; NFKC_SCF; 4E09           # No       IDEOGRAPHIC ANNOTATION THREE MARK
+ 3195          ; NFKC_SCF; 56DB           # No       IDEOGRAPHIC ANNOTATION FOUR MARK
+ 3196          ; NFKC_SCF; 4E0A           # So       IDEOGRAPHIC ANNOTATION TOP MARK
+ 3197          ; NFKC_SCF; 4E2D           # So       IDEOGRAPHIC ANNOTATION MIDDLE MARK
+ 3198          ; NFKC_SCF; 4E0B           # So       IDEOGRAPHIC ANNOTATION BOTTOM MARK
+ 3199          ; NFKC_SCF; 7532           # So       IDEOGRAPHIC ANNOTATION FIRST MARK
+ 319A          ; NFKC_SCF; 4E59           # So       IDEOGRAPHIC ANNOTATION SECOND MARK
+ 319B          ; NFKC_SCF; 4E19           # So       IDEOGRAPHIC ANNOTATION THIRD MARK
+ 319C          ; NFKC_SCF; 4E01           # So       IDEOGRAPHIC ANNOTATION FOURTH MARK
+ 319D          ; NFKC_SCF; 5929           # So       IDEOGRAPHIC ANNOTATION HEAVEN MARK
+ 319E          ; NFKC_SCF; 5730           # So       IDEOGRAPHIC ANNOTATION EARTH MARK
+ 319F          ; NFKC_SCF; 4EBA           # So       IDEOGRAPHIC ANNOTATION MAN MARK
+ 3200          ; NFKC_SCF; 0028 1100 0029 # So       PARENTHESIZED HANGUL KIYEOK
+ 3201          ; NFKC_SCF; 0028 1102 0029 # So       PARENTHESIZED HANGUL NIEUN
+ 3202          ; NFKC_SCF; 0028 1103 0029 # So       PARENTHESIZED HANGUL TIKEUT
+ 3203          ; NFKC_SCF; 0028 1105 0029 # So       PARENTHESIZED HANGUL RIEUL
+ 3204          ; NFKC_SCF; 0028 1106 0029 # So       PARENTHESIZED HANGUL MIEUM
+ 3205          ; NFKC_SCF; 0028 1107 0029 # So       PARENTHESIZED HANGUL PIEUP
+ 3206          ; NFKC_SCF; 0028 1109 0029 # So       PARENTHESIZED HANGUL SIOS
+ 3207          ; NFKC_SCF; 0028 110B 0029 # So       PARENTHESIZED HANGUL IEUNG
+ 3208          ; NFKC_SCF; 0028 110C 0029 # So       PARENTHESIZED HANGUL CIEUC
+ 3209          ; NFKC_SCF; 0028 110E 0029 # So       PARENTHESIZED HANGUL CHIEUCH
+ 320A          ; NFKC_SCF; 0028 110F 0029 # So       PARENTHESIZED HANGUL KHIEUKH
+ 320B          ; NFKC_SCF; 0028 1110 0029 # So       PARENTHESIZED HANGUL THIEUTH
+ 320C          ; NFKC_SCF; 0028 1111 0029 # So       PARENTHESIZED HANGUL PHIEUPH
+ 320D          ; NFKC_SCF; 0028 1112 0029 # So       PARENTHESIZED HANGUL HIEUH
+ 320E          ; NFKC_SCF; 0028 AC00 0029 # So       PARENTHESIZED HANGUL KIYEOK A
+ 320F          ; NFKC_SCF; 0028 B098 0029 # So       PARENTHESIZED HANGUL NIEUN A
+ 3210          ; NFKC_SCF; 0028 B2E4 0029 # So       PARENTHESIZED HANGUL TIKEUT A
+ 3211          ; NFKC_SCF; 0028 B77C 0029 # So       PARENTHESIZED HANGUL RIEUL A
+ 3212          ; NFKC_SCF; 0028 B9C8 0029 # So       PARENTHESIZED HANGUL MIEUM A
+ 3213          ; NFKC_SCF; 0028 BC14 0029 # So       PARENTHESIZED HANGUL PIEUP A
+ 3214          ; NFKC_SCF; 0028 C0AC 0029 # So       PARENTHESIZED HANGUL SIOS A
+ 3215          ; NFKC_SCF; 0028 C544 0029 # So       PARENTHESIZED HANGUL IEUNG A
+ 3216          ; NFKC_SCF; 0028 C790 0029 # So       PARENTHESIZED HANGUL CIEUC A
+ 3217          ; NFKC_SCF; 0028 CC28 0029 # So       PARENTHESIZED HANGUL CHIEUCH A
+ 3218          ; NFKC_SCF; 0028 CE74 0029 # So       PARENTHESIZED HANGUL KHIEUKH A
+ 3219          ; NFKC_SCF; 0028 D0C0 0029 # So       PARENTHESIZED HANGUL THIEUTH A
+ 321A          ; NFKC_SCF; 0028 D30C 0029 # So       PARENTHESIZED HANGUL PHIEUPH A
+ 321B          ; NFKC_SCF; 0028 D558 0029 # So       PARENTHESIZED HANGUL HIEUH A
+ 321C          ; NFKC_SCF; 0028 C8FC 0029 # So       PARENTHESIZED HANGUL CIEUC U
+ 321D          ; NFKC_SCF; 0028 C624 C804 0029 #So   PARENTHESIZED KOREAN CHARACTER OJEON
+ 321E          ; NFKC_SCF; 0028 C624 D6C4 0029 #So   PARENTHESIZED KOREAN CHARACTER O HU
+ 3220          ; NFKC_SCF; 0028 4E00 0029 # No       PARENTHESIZED IDEOGRAPH ONE
+ 3221          ; NFKC_SCF; 0028 4E8C 0029 # No       PARENTHESIZED IDEOGRAPH TWO
+ 3222          ; NFKC_SCF; 0028 4E09 0029 # No       PARENTHESIZED IDEOGRAPH THREE
+ 3223          ; NFKC_SCF; 0028 56DB 0029 # No       PARENTHESIZED IDEOGRAPH FOUR
+ 3224          ; NFKC_SCF; 0028 4E94 0029 # No       PARENTHESIZED IDEOGRAPH FIVE
+ 3225          ; NFKC_SCF; 0028 516D 0029 # No       PARENTHESIZED IDEOGRAPH SIX
+ 3226          ; NFKC_SCF; 0028 4E03 0029 # No       PARENTHESIZED IDEOGRAPH SEVEN
+ 3227          ; NFKC_SCF; 0028 516B 0029 # No       PARENTHESIZED IDEOGRAPH EIGHT
+ 3228          ; NFKC_SCF; 0028 4E5D 0029 # No       PARENTHESIZED IDEOGRAPH NINE
+ 3229          ; NFKC_SCF; 0028 5341 0029 # No       PARENTHESIZED IDEOGRAPH TEN
+ 322A          ; NFKC_SCF; 0028 6708 0029 # So       PARENTHESIZED IDEOGRAPH MOON
+ 322B          ; NFKC_SCF; 0028 706B 0029 # So       PARENTHESIZED IDEOGRAPH FIRE
+ 322C          ; NFKC_SCF; 0028 6C34 0029 # So       PARENTHESIZED IDEOGRAPH WATER
+ 322D          ; NFKC_SCF; 0028 6728 0029 # So       PARENTHESIZED IDEOGRAPH WOOD
+ 322E          ; NFKC_SCF; 0028 91D1 0029 # So       PARENTHESIZED IDEOGRAPH METAL
+ 322F          ; NFKC_SCF; 0028 571F 0029 # So       PARENTHESIZED IDEOGRAPH EARTH
+ 3230          ; NFKC_SCF; 0028 65E5 0029 # So       PARENTHESIZED IDEOGRAPH SUN
+ 3231          ; NFKC_SCF; 0028 682A 0029 # So       PARENTHESIZED IDEOGRAPH STOCK
+ 3232          ; NFKC_SCF; 0028 6709 0029 # So       PARENTHESIZED IDEOGRAPH HAVE
+ 3233          ; NFKC_SCF; 0028 793E 0029 # So       PARENTHESIZED IDEOGRAPH SOCIETY
+ 3234          ; NFKC_SCF; 0028 540D 0029 # So       PARENTHESIZED IDEOGRAPH NAME
+ 3235          ; NFKC_SCF; 0028 7279 0029 # So       PARENTHESIZED IDEOGRAPH SPECIAL
+ 3236          ; NFKC_SCF; 0028 8CA1 0029 # So       PARENTHESIZED IDEOGRAPH FINANCIAL
+ 3237          ; NFKC_SCF; 0028 795D 0029 # So       PARENTHESIZED IDEOGRAPH CONGRATULATION
+ 3238          ; NFKC_SCF; 0028 52B4 0029 # So       PARENTHESIZED IDEOGRAPH LABOR
+ 3239          ; NFKC_SCF; 0028 4EE3 0029 # So       PARENTHESIZED IDEOGRAPH REPRESENT
+ 323A          ; NFKC_SCF; 0028 547C 0029 # So       PARENTHESIZED IDEOGRAPH CALL
+ 323B          ; NFKC_SCF; 0028 5B66 0029 # So       PARENTHESIZED IDEOGRAPH STUDY
+ 323C          ; NFKC_SCF; 0028 76E3 0029 # So       PARENTHESIZED IDEOGRAPH SUPERVISE
+ 323D          ; NFKC_SCF; 0028 4F01 0029 # So       PARENTHESIZED IDEOGRAPH ENTERPRISE
+ 323E          ; NFKC_SCF; 0028 8CC7 0029 # So       PARENTHESIZED IDEOGRAPH RESOURCE
+ 323F          ; NFKC_SCF; 0028 5354 0029 # So       PARENTHESIZED IDEOGRAPH ALLIANCE
+ 3240          ; NFKC_SCF; 0028 796D 0029 # So       PARENTHESIZED IDEOGRAPH FESTIVAL
+ 3241          ; NFKC_SCF; 0028 4F11 0029 # So       PARENTHESIZED IDEOGRAPH REST
+ 3242          ; NFKC_SCF; 0028 81EA 0029 # So       PARENTHESIZED IDEOGRAPH SELF
+ 3243          ; NFKC_SCF; 0028 81F3 0029 # So       PARENTHESIZED IDEOGRAPH REACH
+ 3244          ; NFKC_SCF; 554F           # So       CIRCLED IDEOGRAPH QUESTION
+ 3245          ; NFKC_SCF; 5E7C           # So       CIRCLED IDEOGRAPH KINDERGARTEN
+ 3246          ; NFKC_SCF; 6587           # So       CIRCLED IDEOGRAPH SCHOOL
+ 3247          ; NFKC_SCF; 7B8F           # So       CIRCLED IDEOGRAPH KOTO
+ 3250          ; NFKC_SCF; 0070 0074 0065 # So       PARTNERSHIP SIGN
+ 3251          ; NFKC_SCF; 0032 0031      # No       CIRCLED NUMBER TWENTY ONE
+ 3252          ; NFKC_SCF; 0032 0032      # No       CIRCLED NUMBER TWENTY TWO
+ 3253          ; NFKC_SCF; 0032 0033      # No       CIRCLED NUMBER TWENTY THREE
+ 3254          ; NFKC_SCF; 0032 0034      # No       CIRCLED NUMBER TWENTY FOUR
+ 3255          ; NFKC_SCF; 0032 0035      # No       CIRCLED NUMBER TWENTY FIVE
+ 3256          ; NFKC_SCF; 0032 0036      # No       CIRCLED NUMBER TWENTY SIX
+ 3257          ; NFKC_SCF; 0032 0037      # No       CIRCLED NUMBER TWENTY SEVEN
+ 3258          ; NFKC_SCF; 0032 0038      # No       CIRCLED NUMBER TWENTY EIGHT
+ 3259          ; NFKC_SCF; 0032 0039      # No       CIRCLED NUMBER TWENTY NINE
+ 325A          ; NFKC_SCF; 0033 0030      # No       CIRCLED NUMBER THIRTY
+ 325B          ; NFKC_SCF; 0033 0031      # No       CIRCLED NUMBER THIRTY ONE
+ 325C          ; NFKC_SCF; 0033 0032      # No       CIRCLED NUMBER THIRTY TWO
+ 325D          ; NFKC_SCF; 0033 0033      # No       CIRCLED NUMBER THIRTY THREE
+ 325E          ; NFKC_SCF; 0033 0034      # No       CIRCLED NUMBER THIRTY FOUR
+ 325F          ; NFKC_SCF; 0033 0035      # No       CIRCLED NUMBER THIRTY FIVE
+ 3260          ; NFKC_SCF; 1100           # So       CIRCLED HANGUL KIYEOK
+ 3261          ; NFKC_SCF; 1102           # So       CIRCLED HANGUL NIEUN
+ 3262          ; NFKC_SCF; 1103           # So       CIRCLED HANGUL TIKEUT
+ 3263          ; NFKC_SCF; 1105           # So       CIRCLED HANGUL RIEUL
+ 3264          ; NFKC_SCF; 1106           # So       CIRCLED HANGUL MIEUM
+ 3265          ; NFKC_SCF; 1107           # So       CIRCLED HANGUL PIEUP
+ 3266          ; NFKC_SCF; 1109           # So       CIRCLED HANGUL SIOS
+ 3267          ; NFKC_SCF; 110B           # So       CIRCLED HANGUL IEUNG
+ 3268          ; NFKC_SCF; 110C           # So       CIRCLED HANGUL CIEUC
+ 3269          ; NFKC_SCF; 110E           # So       CIRCLED HANGUL CHIEUCH
+ 326A          ; NFKC_SCF; 110F           # So       CIRCLED HANGUL KHIEUKH
+ 326B          ; NFKC_SCF; 1110           # So       CIRCLED HANGUL THIEUTH
+ 326C          ; NFKC_SCF; 1111           # So       CIRCLED HANGUL PHIEUPH
+ 326D          ; NFKC_SCF; 1112           # So       CIRCLED HANGUL HIEUH
+ 326E          ; NFKC_SCF; AC00           # So       CIRCLED HANGUL KIYEOK A
+ 326F          ; NFKC_SCF; B098           # So       CIRCLED HANGUL NIEUN A
+ 3270          ; NFKC_SCF; B2E4           # So       CIRCLED HANGUL TIKEUT A
+ 3271          ; NFKC_SCF; B77C           # So       CIRCLED HANGUL RIEUL A
+ 3272          ; NFKC_SCF; B9C8           # So       CIRCLED HANGUL MIEUM A
+ 3273          ; NFKC_SCF; BC14           # So       CIRCLED HANGUL PIEUP A
+ 3274          ; NFKC_SCF; C0AC           # So       CIRCLED HANGUL SIOS A
+ 3275          ; NFKC_SCF; C544           # So       CIRCLED HANGUL IEUNG A
+ 3276          ; NFKC_SCF; C790           # So       CIRCLED HANGUL CIEUC A
+ 3277          ; NFKC_SCF; CC28           # So       CIRCLED HANGUL CHIEUCH A
+ 3278          ; NFKC_SCF; CE74           # So       CIRCLED HANGUL KHIEUKH A
+ 3279          ; NFKC_SCF; D0C0           # So       CIRCLED HANGUL THIEUTH A
+ 327A          ; NFKC_SCF; D30C           # So       CIRCLED HANGUL PHIEUPH A
+ 327B          ; NFKC_SCF; D558           # So       CIRCLED HANGUL HIEUH A
+ 327C          ; NFKC_SCF; CC38 ACE0      # So       CIRCLED KOREAN CHARACTER CHAMKO
+ 327D          ; NFKC_SCF; C8FC C758      # So       CIRCLED KOREAN CHARACTER JUEUI
+ 327E          ; NFKC_SCF; C6B0           # So       CIRCLED HANGUL IEUNG U
+ 3280          ; NFKC_SCF; 4E00           # No       CIRCLED IDEOGRAPH ONE
+ 3281          ; NFKC_SCF; 4E8C           # No       CIRCLED IDEOGRAPH TWO
+ 3282          ; NFKC_SCF; 4E09           # No       CIRCLED IDEOGRAPH THREE
+ 3283          ; NFKC_SCF; 56DB           # No       CIRCLED IDEOGRAPH FOUR
+ 3284          ; NFKC_SCF; 4E94           # No       CIRCLED IDEOGRAPH FIVE
+ 3285          ; NFKC_SCF; 516D           # No       CIRCLED IDEOGRAPH SIX
+ 3286          ; NFKC_SCF; 4E03           # No       CIRCLED IDEOGRAPH SEVEN
+ 3287          ; NFKC_SCF; 516B           # No       CIRCLED IDEOGRAPH EIGHT
+ 3288          ; NFKC_SCF; 4E5D           # No       CIRCLED IDEOGRAPH NINE
+ 3289          ; NFKC_SCF; 5341           # No       CIRCLED IDEOGRAPH TEN
+ 328A          ; NFKC_SCF; 6708           # So       CIRCLED IDEOGRAPH MOON
+ 328B          ; NFKC_SCF; 706B           # So       CIRCLED IDEOGRAPH FIRE
+ 328C          ; NFKC_SCF; 6C34           # So       CIRCLED IDEOGRAPH WATER
+ 328D          ; NFKC_SCF; 6728           # So       CIRCLED IDEOGRAPH WOOD
+ 328E          ; NFKC_SCF; 91D1           # So       CIRCLED IDEOGRAPH METAL
+ 328F          ; NFKC_SCF; 571F           # So       CIRCLED IDEOGRAPH EARTH
+ 3290          ; NFKC_SCF; 65E5           # So       CIRCLED IDEOGRAPH SUN
+ 3291          ; NFKC_SCF; 682A           # So       CIRCLED IDEOGRAPH STOCK
+ 3292          ; NFKC_SCF; 6709           # So       CIRCLED IDEOGRAPH HAVE
+ 3293          ; NFKC_SCF; 793E           # So       CIRCLED IDEOGRAPH SOCIETY
+ 3294          ; NFKC_SCF; 540D           # So       CIRCLED IDEOGRAPH NAME
+ 3295          ; NFKC_SCF; 7279           # So       CIRCLED IDEOGRAPH SPECIAL
+ 3296          ; NFKC_SCF; 8CA1           # So       CIRCLED IDEOGRAPH FINANCIAL
+ 3297          ; NFKC_SCF; 795D           # So       CIRCLED IDEOGRAPH CONGRATULATION
+ 3298          ; NFKC_SCF; 52B4           # So       CIRCLED IDEOGRAPH LABOR
+ 3299          ; NFKC_SCF; 79D8           # So       CIRCLED IDEOGRAPH SECRET
+ 329A          ; NFKC_SCF; 7537           # So       CIRCLED IDEOGRAPH MALE
+ 329B          ; NFKC_SCF; 5973           # So       CIRCLED IDEOGRAPH FEMALE
+ 329C          ; NFKC_SCF; 9069           # So       CIRCLED IDEOGRAPH SUITABLE
+ 329D          ; NFKC_SCF; 512A           # So       CIRCLED IDEOGRAPH EXCELLENT
+ 329E          ; NFKC_SCF; 5370           # So       CIRCLED IDEOGRAPH PRINT
+ 329F          ; NFKC_SCF; 6CE8           # So       CIRCLED IDEOGRAPH ATTENTION
+ 32A0          ; NFKC_SCF; 9805           # So       CIRCLED IDEOGRAPH ITEM
+ 32A1          ; NFKC_SCF; 4F11           # So       CIRCLED IDEOGRAPH REST
+ 32A2          ; NFKC_SCF; 5199           # So       CIRCLED IDEOGRAPH COPY
+ 32A3          ; NFKC_SCF; 6B63           # So       CIRCLED IDEOGRAPH CORRECT
+ 32A4          ; NFKC_SCF; 4E0A           # So       CIRCLED IDEOGRAPH HIGH
+ 32A5          ; NFKC_SCF; 4E2D           # So       CIRCLED IDEOGRAPH CENTRE
+ 32A6          ; NFKC_SCF; 4E0B           # So       CIRCLED IDEOGRAPH LOW
+ 32A7          ; NFKC_SCF; 5DE6           # So       CIRCLED IDEOGRAPH LEFT
+ 32A8          ; NFKC_SCF; 53F3           # So       CIRCLED IDEOGRAPH RIGHT
+ 32A9          ; NFKC_SCF; 533B           # So       CIRCLED IDEOGRAPH MEDICINE
+ 32AA          ; NFKC_SCF; 5B97           # So       CIRCLED IDEOGRAPH RELIGION
+ 32AB          ; NFKC_SCF; 5B66           # So       CIRCLED IDEOGRAPH STUDY
+ 32AC          ; NFKC_SCF; 76E3           # So       CIRCLED IDEOGRAPH SUPERVISE
+ 32AD          ; NFKC_SCF; 4F01           # So       CIRCLED IDEOGRAPH ENTERPRISE
+ 32AE          ; NFKC_SCF; 8CC7           # So       CIRCLED IDEOGRAPH RESOURCE
+ 32AF          ; NFKC_SCF; 5354           # So       CIRCLED IDEOGRAPH ALLIANCE
+ 32B0          ; NFKC_SCF; 591C           # So       CIRCLED IDEOGRAPH NIGHT
+ 32B1          ; NFKC_SCF; 0033 0036      # No       CIRCLED NUMBER THIRTY SIX
+ 32B2          ; NFKC_SCF; 0033 0037      # No       CIRCLED NUMBER THIRTY SEVEN
+ 32B3          ; NFKC_SCF; 0033 0038      # No       CIRCLED NUMBER THIRTY EIGHT
+ 32B4          ; NFKC_SCF; 0033 0039      # No       CIRCLED NUMBER THIRTY NINE
+ 32B5          ; NFKC_SCF; 0034 0030      # No       CIRCLED NUMBER FORTY
+ 32B6          ; NFKC_SCF; 0034 0031      # No       CIRCLED NUMBER FORTY ONE
+ 32B7          ; NFKC_SCF; 0034 0032      # No       CIRCLED NUMBER FORTY TWO
+ 32B8          ; NFKC_SCF; 0034 0033      # No       CIRCLED NUMBER FORTY THREE
+ 32B9          ; NFKC_SCF; 0034 0034      # No       CIRCLED NUMBER FORTY FOUR
+ 32BA          ; NFKC_SCF; 0034 0035      # No       CIRCLED NUMBER FORTY FIVE
+ 32BB          ; NFKC_SCF; 0034 0036      # No       CIRCLED NUMBER FORTY SIX
+ 32BC          ; NFKC_SCF; 0034 0037      # No       CIRCLED NUMBER FORTY SEVEN
+ 32BD          ; NFKC_SCF; 0034 0038      # No       CIRCLED NUMBER FORTY EIGHT
+ 32BE          ; NFKC_SCF; 0034 0039      # No       CIRCLED NUMBER FORTY NINE
+ 32BF          ; NFKC_SCF; 0035 0030      # No       CIRCLED NUMBER FIFTY
+ 32C0          ; NFKC_SCF; 0031 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+ 32C1          ; NFKC_SCF; 0032 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+ 32C2          ; NFKC_SCF; 0033 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+ 32C3          ; NFKC_SCF; 0034 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+ 32C4          ; NFKC_SCF; 0035 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+ 32C5          ; NFKC_SCF; 0036 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+ 32C6          ; NFKC_SCF; 0037 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+ 32C7          ; NFKC_SCF; 0038 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+ 32C8          ; NFKC_SCF; 0039 6708      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+ 32C9          ; NFKC_SCF; 0031 0030 6708 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+ 32CA          ; NFKC_SCF; 0031 0031 6708 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+ 32CB          ; NFKC_SCF; 0031 0032 6708 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+ 32CC          ; NFKC_SCF; 0068 0067      # So       SQUARE HG
+ 32CD          ; NFKC_SCF; 0065 0072 0067 # So       SQUARE ERG
+ 32CE          ; NFKC_SCF; 0065 0076      # So       SQUARE EV
+ 32CF          ; NFKC_SCF; 006C 0074 0064 # So       LIMITED LIABILITY SIGN
+ 32D0          ; NFKC_SCF; 30A2           # So       CIRCLED KATAKANA A
+ 32D1          ; NFKC_SCF; 30A4           # So       CIRCLED KATAKANA I
+ 32D2          ; NFKC_SCF; 30A6           # So       CIRCLED KATAKANA U
+ 32D3          ; NFKC_SCF; 30A8           # So       CIRCLED KATAKANA E
+ 32D4          ; NFKC_SCF; 30AA           # So       CIRCLED KATAKANA O
+ 32D5          ; NFKC_SCF; 30AB           # So       CIRCLED KATAKANA KA
+ 32D6          ; NFKC_SCF; 30AD           # So       CIRCLED KATAKANA KI
+ 32D7          ; NFKC_SCF; 30AF           # So       CIRCLED KATAKANA KU
+ 32D8          ; NFKC_SCF; 30B1           # So       CIRCLED KATAKANA KE
+ 32D9          ; NFKC_SCF; 30B3           # So       CIRCLED KATAKANA KO
+ 32DA          ; NFKC_SCF; 30B5           # So       CIRCLED KATAKANA SA
+ 32DB          ; NFKC_SCF; 30B7           # So       CIRCLED KATAKANA SI
+ 32DC          ; NFKC_SCF; 30B9           # So       CIRCLED KATAKANA SU
+ 32DD          ; NFKC_SCF; 30BB           # So       CIRCLED KATAKANA SE
+ 32DE          ; NFKC_SCF; 30BD           # So       CIRCLED KATAKANA SO
+ 32DF          ; NFKC_SCF; 30BF           # So       CIRCLED KATAKANA TA
+ 32E0          ; NFKC_SCF; 30C1           # So       CIRCLED KATAKANA TI
+ 32E1          ; NFKC_SCF; 30C4           # So       CIRCLED KATAKANA TU
+ 32E2          ; NFKC_SCF; 30C6           # So       CIRCLED KATAKANA TE
+ 32E3          ; NFKC_SCF; 30C8           # So       CIRCLED KATAKANA TO
+ 32E4          ; NFKC_SCF; 30CA           # So       CIRCLED KATAKANA NA
+ 32E5          ; NFKC_SCF; 30CB           # So       CIRCLED KATAKANA NI
+ 32E6          ; NFKC_SCF; 30CC           # So       CIRCLED KATAKANA NU
+ 32E7          ; NFKC_SCF; 30CD           # So       CIRCLED KATAKANA NE
+ 32E8          ; NFKC_SCF; 30CE           # So       CIRCLED KATAKANA NO
+ 32E9          ; NFKC_SCF; 30CF           # So       CIRCLED KATAKANA HA
+ 32EA          ; NFKC_SCF; 30D2           # So       CIRCLED KATAKANA HI
+ 32EB          ; NFKC_SCF; 30D5           # So       CIRCLED KATAKANA HU
+ 32EC          ; NFKC_SCF; 30D8           # So       CIRCLED KATAKANA HE
+ 32ED          ; NFKC_SCF; 30DB           # So       CIRCLED KATAKANA HO
+ 32EE          ; NFKC_SCF; 30DE           # So       CIRCLED KATAKANA MA
+ 32EF          ; NFKC_SCF; 30DF           # So       CIRCLED KATAKANA MI
+ 32F0          ; NFKC_SCF; 30E0           # So       CIRCLED KATAKANA MU
+ 32F1          ; NFKC_SCF; 30E1           # So       CIRCLED KATAKANA ME
+ 32F2          ; NFKC_SCF; 30E2           # So       CIRCLED KATAKANA MO
+ 32F3          ; NFKC_SCF; 30E4           # So       CIRCLED KATAKANA YA
+ 32F4          ; NFKC_SCF; 30E6           # So       CIRCLED KATAKANA YU
+ 32F5          ; NFKC_SCF; 30E8           # So       CIRCLED KATAKANA YO
+ 32F6          ; NFKC_SCF; 30E9           # So       CIRCLED KATAKANA RA
+ 32F7          ; NFKC_SCF; 30EA           # So       CIRCLED KATAKANA RI
+ 32F8          ; NFKC_SCF; 30EB           # So       CIRCLED KATAKANA RU
+ 32F9          ; NFKC_SCF; 30EC           # So       CIRCLED KATAKANA RE
+ 32FA          ; NFKC_SCF; 30ED           # So       CIRCLED KATAKANA RO
+ 32FB          ; NFKC_SCF; 30EF           # So       CIRCLED KATAKANA WA
+ 32FC          ; NFKC_SCF; 30F0           # So       CIRCLED KATAKANA WI
+ 32FD          ; NFKC_SCF; 30F1           # So       CIRCLED KATAKANA WE
+ 32FE          ; NFKC_SCF; 30F2           # So       CIRCLED KATAKANA WO
+ 32FF          ; NFKC_SCF; 4EE4 548C      # So       SQUARE ERA NAME REIWA
+ 3300          ; NFKC_SCF; 30A2 30D1 30FC 30C8 #So   SQUARE APAATO
+ 3301          ; NFKC_SCF; 30A2 30EB 30D5 30A1 #So   SQUARE ARUHUA
+ 3302          ; NFKC_SCF; 30A2 30F3 30DA 30A2 #So   SQUARE ANPEA
+ 3303          ; NFKC_SCF; 30A2 30FC 30EB # So       SQUARE AARU
+ 3304          ; NFKC_SCF; 30A4 30CB 30F3 30B0 #So   SQUARE ININGU
+ 3305          ; NFKC_SCF; 30A4 30F3 30C1 # So       SQUARE INTI
+ 3306          ; NFKC_SCF; 30A6 30A9 30F3 # So       SQUARE UON
+ 3307          ; NFKC_SCF; 30A8 30B9 30AF 30FC 30C9 #So SQUARE ESUKUUDO
+ 3308          ; NFKC_SCF; 30A8 30FC 30AB 30FC #So   SQUARE EEKAA
+ 3309          ; NFKC_SCF; 30AA 30F3 30B9 # So       SQUARE ONSU
+ 330A          ; NFKC_SCF; 30AA 30FC 30E0 # So       SQUARE OOMU
+ 330B          ; NFKC_SCF; 30AB 30A4 30EA # So       SQUARE KAIRI
+ 330C          ; NFKC_SCF; 30AB 30E9 30C3 30C8 #So   SQUARE KARATTO
+ 330D          ; NFKC_SCF; 30AB 30ED 30EA 30FC #So   SQUARE KARORII
+ 330E          ; NFKC_SCF; 30AC 30ED 30F3 # So       SQUARE GARON
+ 330F          ; NFKC_SCF; 30AC 30F3 30DE # So       SQUARE GANMA
+ 3310          ; NFKC_SCF; 30AE 30AC      # So       SQUARE GIGA
+ 3311          ; NFKC_SCF; 30AE 30CB 30FC # So       SQUARE GINII
+ 3312          ; NFKC_SCF; 30AD 30E5 30EA 30FC #So   SQUARE KYURII
+ 3313          ; NFKC_SCF; 30AE 30EB 30C0 30FC #So   SQUARE GIRUDAA
+ 3314          ; NFKC_SCF; 30AD 30ED      # So       SQUARE KIRO
+ 3315          ; NFKC_SCF; 30AD 30ED 30B0 30E9 30E0 #So SQUARE KIROGURAMU
+ 3316          ; NFKC_SCF; 30AD 30ED 30E1 30FC 30C8 30EB #So SQUARE KIROMEETORU
+ 3317          ; NFKC_SCF; 30AD 30ED 30EF 30C3 30C8 #So SQUARE KIROWATTO
+ 3318          ; NFKC_SCF; 30B0 30E9 30E0 # So       SQUARE GURAMU
+ 3319          ; NFKC_SCF; 30B0 30E9 30E0 30C8 30F3 #So SQUARE GURAMUTON
+ 331A          ; NFKC_SCF; 30AF 30EB 30BC 30A4 30ED #So SQUARE KURUZEIRO
+ 331B          ; NFKC_SCF; 30AF 30ED 30FC 30CD #So   SQUARE KUROONE
+ 331C          ; NFKC_SCF; 30B1 30FC 30B9 # So       SQUARE KEESU
+ 331D          ; NFKC_SCF; 30B3 30EB 30CA # So       SQUARE KORUNA
+ 331E          ; NFKC_SCF; 30B3 30FC 30DD # So       SQUARE KOOPO
+ 331F          ; NFKC_SCF; 30B5 30A4 30AF 30EB #So   SQUARE SAIKURU
+ 3320          ; NFKC_SCF; 30B5 30F3 30C1 30FC 30E0 #So SQUARE SANTIIMU
+ 3321          ; NFKC_SCF; 30B7 30EA 30F3 30B0 #So   SQUARE SIRINGU
+ 3322          ; NFKC_SCF; 30BB 30F3 30C1 # So       SQUARE SENTI
+ 3323          ; NFKC_SCF; 30BB 30F3 30C8 # So       SQUARE SENTO
+ 3324          ; NFKC_SCF; 30C0 30FC 30B9 # So       SQUARE DAASU
+ 3325          ; NFKC_SCF; 30C7 30B7      # So       SQUARE DESI
+ 3326          ; NFKC_SCF; 30C9 30EB      # So       SQUARE DORU
+ 3327          ; NFKC_SCF; 30C8 30F3      # So       SQUARE TON
+ 3328          ; NFKC_SCF; 30CA 30CE      # So       SQUARE NANO
+ 3329          ; NFKC_SCF; 30CE 30C3 30C8 # So       SQUARE NOTTO
+ 332A          ; NFKC_SCF; 30CF 30A4 30C4 # So       SQUARE HAITU
+ 332B          ; NFKC_SCF; 30D1 30FC 30BB 30F3 30C8 #So SQUARE PAASENTO
+ 332C          ; NFKC_SCF; 30D1 30FC 30C4 # So       SQUARE PAATU
+ 332D          ; NFKC_SCF; 30D0 30FC 30EC 30EB #So   SQUARE BAARERU
+ 332E          ; NFKC_SCF; 30D4 30A2 30B9 30C8 30EB #So SQUARE PIASUTORU
+ 332F          ; NFKC_SCF; 30D4 30AF 30EB # So       SQUARE PIKURU
+ 3330          ; NFKC_SCF; 30D4 30B3      # So       SQUARE PIKO
+ 3331          ; NFKC_SCF; 30D3 30EB      # So       SQUARE BIRU
+ 3332          ; NFKC_SCF; 30D5 30A1 30E9 30C3 30C9 #So SQUARE HUARADDO
+ 3333          ; NFKC_SCF; 30D5 30A3 30FC 30C8 #So   SQUARE HUIITO
+ 3334          ; NFKC_SCF; 30D6 30C3 30B7 30A7 30EB #So SQUARE BUSSYERU
+ 3335          ; NFKC_SCF; 30D5 30E9 30F3 # So       SQUARE HURAN
+ 3336          ; NFKC_SCF; 30D8 30AF 30BF 30FC 30EB #So SQUARE HEKUTAARU
+ 3337          ; NFKC_SCF; 30DA 30BD      # So       SQUARE PESO
+ 3338          ; NFKC_SCF; 30DA 30CB 30D2 # So       SQUARE PENIHI
+ 3339          ; NFKC_SCF; 30D8 30EB 30C4 # So       SQUARE HERUTU
+ 333A          ; NFKC_SCF; 30DA 30F3 30B9 # So       SQUARE PENSU
+ 333B          ; NFKC_SCF; 30DA 30FC 30B8 # So       SQUARE PEEZI
+ 333C          ; NFKC_SCF; 30D9 30FC 30BF # So       SQUARE BEETA
+ 333D          ; NFKC_SCF; 30DD 30A4 30F3 30C8 #So   SQUARE POINTO
+ 333E          ; NFKC_SCF; 30DC 30EB 30C8 # So       SQUARE BORUTO
+ 333F          ; NFKC_SCF; 30DB 30F3      # So       SQUARE HON
+ 3340          ; NFKC_SCF; 30DD 30F3 30C9 # So       SQUARE PONDO
+ 3341          ; NFKC_SCF; 30DB 30FC 30EB # So       SQUARE HOORU
+ 3342          ; NFKC_SCF; 30DB 30FC 30F3 # So       SQUARE HOON
+ 3343          ; NFKC_SCF; 30DE 30A4 30AF 30ED #So   SQUARE MAIKURO
+ 3344          ; NFKC_SCF; 30DE 30A4 30EB # So       SQUARE MAIRU
+ 3345          ; NFKC_SCF; 30DE 30C3 30CF # So       SQUARE MAHHA
+ 3346          ; NFKC_SCF; 30DE 30EB 30AF # So       SQUARE MARUKU
+ 3347          ; NFKC_SCF; 30DE 30F3 30B7 30E7 30F3 #So SQUARE MANSYON
+ 3348          ; NFKC_SCF; 30DF 30AF 30ED 30F3 #So   SQUARE MIKURON
+ 3349          ; NFKC_SCF; 30DF 30EA      # So       SQUARE MIRI
+ 334A          ; NFKC_SCF; 30DF 30EA 30D0 30FC 30EB #So SQUARE MIRIBAARU
+ 334B          ; NFKC_SCF; 30E1 30AC      # So       SQUARE MEGA
+ 334C          ; NFKC_SCF; 30E1 30AC 30C8 30F3 #So   SQUARE MEGATON
+ 334D          ; NFKC_SCF; 30E1 30FC 30C8 30EB #So   SQUARE MEETORU
+ 334E          ; NFKC_SCF; 30E4 30FC 30C9 # So       SQUARE YAADO
+ 334F          ; NFKC_SCF; 30E4 30FC 30EB # So       SQUARE YAARU
+ 3350          ; NFKC_SCF; 30E6 30A2 30F3 # So       SQUARE YUAN
+ 3351          ; NFKC_SCF; 30EA 30C3 30C8 30EB #So   SQUARE RITTORU
+ 3352          ; NFKC_SCF; 30EA 30E9      # So       SQUARE RIRA
+ 3353          ; NFKC_SCF; 30EB 30D4 30FC # So       SQUARE RUPII
+ 3354          ; NFKC_SCF; 30EB 30FC 30D6 30EB #So   SQUARE RUUBURU
+ 3355          ; NFKC_SCF; 30EC 30E0      # So       SQUARE REMU
+ 3356          ; NFKC_SCF; 30EC 30F3 30C8 30B2 30F3 #So SQUARE RENTOGEN
+ 3357          ; NFKC_SCF; 30EF 30C3 30C8 # So       SQUARE WATTO
+ 3358          ; NFKC_SCF; 0030 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+ 3359          ; NFKC_SCF; 0031 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+ 335A          ; NFKC_SCF; 0032 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+ 335B          ; NFKC_SCF; 0033 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+ 335C          ; NFKC_SCF; 0034 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+ 335D          ; NFKC_SCF; 0035 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+ 335E          ; NFKC_SCF; 0036 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+ 335F          ; NFKC_SCF; 0037 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+ 3360          ; NFKC_SCF; 0038 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+ 3361          ; NFKC_SCF; 0039 70B9      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+ 3362          ; NFKC_SCF; 0031 0030 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+ 3363          ; NFKC_SCF; 0031 0031 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+ 3364          ; NFKC_SCF; 0031 0032 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+ 3365          ; NFKC_SCF; 0031 0033 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+ 3366          ; NFKC_SCF; 0031 0034 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+ 3367          ; NFKC_SCF; 0031 0035 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+ 3368          ; NFKC_SCF; 0031 0036 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+ 3369          ; NFKC_SCF; 0031 0037 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+ 336A          ; NFKC_SCF; 0031 0038 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+ 336B          ; NFKC_SCF; 0031 0039 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+ 336C          ; NFKC_SCF; 0032 0030 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+ 336D          ; NFKC_SCF; 0032 0031 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+ 336E          ; NFKC_SCF; 0032 0032 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+ 336F          ; NFKC_SCF; 0032 0033 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+ 3370          ; NFKC_SCF; 0032 0034 70B9 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+ 3371          ; NFKC_SCF; 0068 0070 0061 # So       SQUARE HPA
+ 3372          ; NFKC_SCF; 0064 0061      # So       SQUARE DA
+ 3373          ; NFKC_SCF; 0061 0075      # So       SQUARE AU
+ 3374          ; NFKC_SCF; 0062 0061 0072 # So       SQUARE BAR
+ 3375          ; NFKC_SCF; 006F 0076      # So       SQUARE OV
+ 3376          ; NFKC_SCF; 0070 0063      # So       SQUARE PC
+ 3377          ; NFKC_SCF; 0064 006D      # So       SQUARE DM
+ 3378          ; NFKC_SCF; 0064 006D 0032 # So       SQUARE DM SQUARED
+ 3379          ; NFKC_SCF; 0064 006D 0033 # So       SQUARE DM CUBED
+ 337A          ; NFKC_SCF; 0069 0075      # So       SQUARE IU
+ 337B          ; NFKC_SCF; 5E73 6210      # So       SQUARE ERA NAME HEISEI
+ 337C          ; NFKC_SCF; 662D 548C      # So       SQUARE ERA NAME SYOUWA
+ 337D          ; NFKC_SCF; 5927 6B63      # So       SQUARE ERA NAME TAISYOU
+ 337E          ; NFKC_SCF; 660E 6CBB      # So       SQUARE ERA NAME MEIZI
+ 337F          ; NFKC_SCF; 682A 5F0F 4F1A 793E #So   SQUARE CORPORATION
+ 3380          ; NFKC_SCF; 0070 0061      # So       SQUARE PA AMPS
+ 3381          ; NFKC_SCF; 006E 0061      # So       SQUARE NA
+ 3382          ; NFKC_SCF; 03BC 0061      # So       SQUARE MU A
+ 3383          ; NFKC_SCF; 006D 0061      # So       SQUARE MA
+ 3384          ; NFKC_SCF; 006B 0061      # So       SQUARE KA
+ 3385          ; NFKC_SCF; 006B 0062      # So       SQUARE KB
+ 3386          ; NFKC_SCF; 006D 0062      # So       SQUARE MB
+ 3387          ; NFKC_SCF; 0067 0062      # So       SQUARE GB
+ 3388          ; NFKC_SCF; 0063 0061 006C # So       SQUARE CAL
+ 3389          ; NFKC_SCF; 006B 0063 0061 006C #So   SQUARE KCAL
+ 338A          ; NFKC_SCF; 0070 0066      # So       SQUARE PF
+ 338B          ; NFKC_SCF; 006E 0066      # So       SQUARE NF
+ 338C          ; NFKC_SCF; 03BC 0066      # So       SQUARE MU F
+ 338D          ; NFKC_SCF; 03BC 0067      # So       SQUARE MU G
+ 338E          ; NFKC_SCF; 006D 0067      # So       SQUARE MG
+ 338F          ; NFKC_SCF; 006B 0067      # So       SQUARE KG
+ 3390          ; NFKC_SCF; 0068 007A      # So       SQUARE HZ
+ 3391          ; NFKC_SCF; 006B 0068 007A # So       SQUARE KHZ
+ 3392          ; NFKC_SCF; 006D 0068 007A # So       SQUARE MHZ
+ 3393          ; NFKC_SCF; 0067 0068 007A # So       SQUARE GHZ
+ 3394          ; NFKC_SCF; 0074 0068 007A # So       SQUARE THZ
+ 3395          ; NFKC_SCF; 03BC 006C      # So       SQUARE MU L
+ 3396          ; NFKC_SCF; 006D 006C      # So       SQUARE ML
+ 3397          ; NFKC_SCF; 0064 006C      # So       SQUARE DL
+ 3398          ; NFKC_SCF; 006B 006C      # So       SQUARE KL
+ 3399          ; NFKC_SCF; 0066 006D      # So       SQUARE FM
+ 339A          ; NFKC_SCF; 006E 006D      # So       SQUARE NM
+ 339B          ; NFKC_SCF; 03BC 006D      # So       SQUARE MU M
+ 339C          ; NFKC_SCF; 006D 006D      # So       SQUARE MM
+ 339D          ; NFKC_SCF; 0063 006D      # So       SQUARE CM
+ 339E          ; NFKC_SCF; 006B 006D      # So       SQUARE KM
+ 339F          ; NFKC_SCF; 006D 006D 0032 # So       SQUARE MM SQUARED
+ 33A0          ; NFKC_SCF; 0063 006D 0032 # So       SQUARE CM SQUARED
+ 33A1          ; NFKC_SCF; 006D 0032      # So       SQUARE M SQUARED
+ 33A2          ; NFKC_SCF; 006B 006D 0032 # So       SQUARE KM SQUARED
+ 33A3          ; NFKC_SCF; 006D 006D 0033 # So       SQUARE MM CUBED
+ 33A4          ; NFKC_SCF; 0063 006D 0033 # So       SQUARE CM CUBED
+ 33A5          ; NFKC_SCF; 006D 0033      # So       SQUARE M CUBED
+ 33A6          ; NFKC_SCF; 006B 006D 0033 # So       SQUARE KM CUBED
+ 33A7          ; NFKC_SCF; 006D 2215 0073 # So       SQUARE M OVER S
+ 33A8          ; NFKC_SCF; 006D 2215 0073 0032 #So   SQUARE M OVER S SQUARED
+ 33A9          ; NFKC_SCF; 0070 0061      # So       SQUARE PA
+ 33AA          ; NFKC_SCF; 006B 0070 0061 # So       SQUARE KPA
+ 33AB          ; NFKC_SCF; 006D 0070 0061 # So       SQUARE MPA
+ 33AC          ; NFKC_SCF; 0067 0070 0061 # So       SQUARE GPA
+ 33AD          ; NFKC_SCF; 0072 0061 0064 # So       SQUARE RAD
+ 33AE          ; NFKC_SCF; 0072 0061 0064 2215 0073 #So SQUARE RAD OVER S
+ 33AF          ; NFKC_SCF; 0072 0061 0064 2215 0073 0032 #So SQUARE RAD OVER S SQUARED
+ 33B0          ; NFKC_SCF; 0070 0073      # So       SQUARE PS
+ 33B1          ; NFKC_SCF; 006E 0073      # So       SQUARE NS
+ 33B2          ; NFKC_SCF; 03BC 0073      # So       SQUARE MU S
+ 33B3          ; NFKC_SCF; 006D 0073      # So       SQUARE MS
+ 33B4          ; NFKC_SCF; 0070 0076      # So       SQUARE PV
+ 33B5          ; NFKC_SCF; 006E 0076      # So       SQUARE NV
+ 33B6          ; NFKC_SCF; 03BC 0076      # So       SQUARE MU V
+ 33B7          ; NFKC_SCF; 006D 0076      # So       SQUARE MV
+ 33B8          ; NFKC_SCF; 006B 0076      # So       SQUARE KV
+ 33B9          ; NFKC_SCF; 006D 0076      # So       SQUARE MV MEGA
+ 33BA          ; NFKC_SCF; 0070 0077      # So       SQUARE PW
+ 33BB          ; NFKC_SCF; 006E 0077      # So       SQUARE NW
+ 33BC          ; NFKC_SCF; 03BC 0077      # So       SQUARE MU W
+ 33BD          ; NFKC_SCF; 006D 0077      # So       SQUARE MW
+ 33BE          ; NFKC_SCF; 006B 0077      # So       SQUARE KW
+ 33BF          ; NFKC_SCF; 006D 0077      # So       SQUARE MW MEGA
+ 33C0          ; NFKC_SCF; 006B 03C9      # So       SQUARE K OHM
+ 33C1          ; NFKC_SCF; 006D 03C9      # So       SQUARE M OHM
+ 33C2          ; NFKC_SCF; 0061 002E 006D 002E #So   SQUARE AM
+ 33C3          ; NFKC_SCF; 0062 0071      # So       SQUARE BQ
+ 33C4          ; NFKC_SCF; 0063 0063      # So       SQUARE CC
+ 33C5          ; NFKC_SCF; 0063 0064      # So       SQUARE CD
+ 33C6          ; NFKC_SCF; 0063 2215 006B 0067 #So   SQUARE C OVER KG
+ 33C7          ; NFKC_SCF; 0063 006F 002E # So       SQUARE CO
+ 33C8          ; NFKC_SCF; 0064 0062      # So       SQUARE DB
+ 33C9          ; NFKC_SCF; 0067 0079      # So       SQUARE GY
+ 33CA          ; NFKC_SCF; 0068 0061      # So       SQUARE HA
+ 33CB          ; NFKC_SCF; 0068 0070      # So       SQUARE HP
+ 33CC          ; NFKC_SCF; 0069 006E      # So       SQUARE IN
+ 33CD          ; NFKC_SCF; 006B 006B      # So       SQUARE KK
+ 33CE          ; NFKC_SCF; 006B 006D      # So       SQUARE KM CAPITAL
+ 33CF          ; NFKC_SCF; 006B 0074      # So       SQUARE KT
+ 33D0          ; NFKC_SCF; 006C 006D      # So       SQUARE LM
+ 33D1          ; NFKC_SCF; 006C 006E      # So       SQUARE LN
+ 33D2          ; NFKC_SCF; 006C 006F 0067 # So       SQUARE LOG
+ 33D3          ; NFKC_SCF; 006C 0078      # So       SQUARE LX
+ 33D4          ; NFKC_SCF; 006D 0062      # So       SQUARE MB SMALL
+ 33D5          ; NFKC_SCF; 006D 0069 006C # So       SQUARE MIL
+ 33D6          ; NFKC_SCF; 006D 006F 006C # So       SQUARE MOL
+ 33D7          ; NFKC_SCF; 0070 0068      # So       SQUARE PH
+ 33D8          ; NFKC_SCF; 0070 002E 006D 002E #So   SQUARE PM
+ 33D9          ; NFKC_SCF; 0070 0070 006D # So       SQUARE PPM
+ 33DA          ; NFKC_SCF; 0070 0072      # So       SQUARE PR
+ 33DB          ; NFKC_SCF; 0073 0072      # So       SQUARE SR
+ 33DC          ; NFKC_SCF; 0073 0076      # So       SQUARE SV
+ 33DD          ; NFKC_SCF; 0077 0062      # So       SQUARE WB
+ 33DE          ; NFKC_SCF; 0076 2215 006D # So       SQUARE V OVER M
+ 33DF          ; NFKC_SCF; 0061 2215 006D # So       SQUARE A OVER M
+ 33E0          ; NFKC_SCF; 0031 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+ 33E1          ; NFKC_SCF; 0032 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+ 33E2          ; NFKC_SCF; 0033 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+ 33E3          ; NFKC_SCF; 0034 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+ 33E4          ; NFKC_SCF; 0035 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+ 33E5          ; NFKC_SCF; 0036 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+ 33E6          ; NFKC_SCF; 0037 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+ 33E7          ; NFKC_SCF; 0038 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+ 33E8          ; NFKC_SCF; 0039 65E5      # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+ 33E9          ; NFKC_SCF; 0031 0030 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+ 33EA          ; NFKC_SCF; 0031 0031 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+ 33EB          ; NFKC_SCF; 0031 0032 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+ 33EC          ; NFKC_SCF; 0031 0033 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+ 33ED          ; NFKC_SCF; 0031 0034 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+ 33EE          ; NFKC_SCF; 0031 0035 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+ 33EF          ; NFKC_SCF; 0031 0036 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+ 33F0          ; NFKC_SCF; 0031 0037 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+ 33F1          ; NFKC_SCF; 0031 0038 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+ 33F2          ; NFKC_SCF; 0031 0039 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+ 33F3          ; NFKC_SCF; 0032 0030 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+ 33F4          ; NFKC_SCF; 0032 0031 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+ 33F5          ; NFKC_SCF; 0032 0032 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+ 33F6          ; NFKC_SCF; 0032 0033 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+ 33F7          ; NFKC_SCF; 0032 0034 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+ 33F8          ; NFKC_SCF; 0032 0035 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+ 33F9          ; NFKC_SCF; 0032 0036 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+ 33FA          ; NFKC_SCF; 0032 0037 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+ 33FB          ; NFKC_SCF; 0032 0038 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+ 33FC          ; NFKC_SCF; 0032 0039 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+ 33FD          ; NFKC_SCF; 0033 0030 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+ 33FE          ; NFKC_SCF; 0033 0031 65E5 # So       IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+ 33FF          ; NFKC_SCF; 0067 0061 006C # So       SQUARE GAL
+ A640          ; NFKC_SCF; A641           # L&       CYRILLIC CAPITAL LETTER ZEMLYA
+ A642          ; NFKC_SCF; A643           # L&       CYRILLIC CAPITAL LETTER DZELO
+ A644          ; NFKC_SCF; A645           # L&       CYRILLIC CAPITAL LETTER REVERSED DZE
+ A646          ; NFKC_SCF; A647           # L&       CYRILLIC CAPITAL LETTER IOTA
+ A648          ; NFKC_SCF; A649           # L&       CYRILLIC CAPITAL LETTER DJERV
+ A64A          ; NFKC_SCF; A64B           # L&       CYRILLIC CAPITAL LETTER MONOGRAPH UK
+ A64C          ; NFKC_SCF; A64D           # L&       CYRILLIC CAPITAL LETTER BROAD OMEGA
+ A64E          ; NFKC_SCF; A64F           # L&       CYRILLIC CAPITAL LETTER NEUTRAL YER
+ A650          ; NFKC_SCF; A651           # L&       CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+ A652          ; NFKC_SCF; A653           # L&       CYRILLIC CAPITAL LETTER IOTIFIED YAT
+ A654          ; NFKC_SCF; A655           # L&       CYRILLIC CAPITAL LETTER REVERSED YU
+ A656          ; NFKC_SCF; A657           # L&       CYRILLIC CAPITAL LETTER IOTIFIED A
+ A658          ; NFKC_SCF; A659           # L&       CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+ A65A          ; NFKC_SCF; A65B           # L&       CYRILLIC CAPITAL LETTER BLENDED YUS
+ A65C          ; NFKC_SCF; A65D           # L&       CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+ A65E          ; NFKC_SCF; A65F           # L&       CYRILLIC CAPITAL LETTER YN
+ A660          ; NFKC_SCF; A661           # L&       CYRILLIC CAPITAL LETTER REVERSED TSE
+ A662          ; NFKC_SCF; A663           # L&       CYRILLIC CAPITAL LETTER SOFT DE
+ A664          ; NFKC_SCF; A665           # L&       CYRILLIC CAPITAL LETTER SOFT EL
+ A666          ; NFKC_SCF; A667           # L&       CYRILLIC CAPITAL LETTER SOFT EM
+ A668          ; NFKC_SCF; A669           # L&       CYRILLIC CAPITAL LETTER MONOCULAR O
+ A66A          ; NFKC_SCF; A66B           # L&       CYRILLIC CAPITAL LETTER BINOCULAR O
+ A66C          ; NFKC_SCF; A66D           # L&       CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+ A680          ; NFKC_SCF; A681           # L&       CYRILLIC CAPITAL LETTER DWE
+ A682          ; NFKC_SCF; A683           # L&       CYRILLIC CAPITAL LETTER DZWE
+ A684          ; NFKC_SCF; A685           # L&       CYRILLIC CAPITAL LETTER ZHWE
+ A686          ; NFKC_SCF; A687           # L&       CYRILLIC CAPITAL LETTER CCHE
+ A688          ; NFKC_SCF; A689           # L&       CYRILLIC CAPITAL LETTER DZZE
+ A68A          ; NFKC_SCF; A68B           # L&       CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+ A68C          ; NFKC_SCF; A68D           # L&       CYRILLIC CAPITAL LETTER TWE
+ A68E          ; NFKC_SCF; A68F           # L&       CYRILLIC CAPITAL LETTER TSWE
+ A690          ; NFKC_SCF; A691           # L&       CYRILLIC CAPITAL LETTER TSSE
+ A692          ; NFKC_SCF; A693           # L&       CYRILLIC CAPITAL LETTER TCHE
+ A694          ; NFKC_SCF; A695           # L&       CYRILLIC CAPITAL LETTER HWE
+ A696          ; NFKC_SCF; A697           # L&       CYRILLIC CAPITAL LETTER SHWE
+ A698          ; NFKC_SCF; A699           # L&       CYRILLIC CAPITAL LETTER DOUBLE O
+ A69A          ; NFKC_SCF; A69B           # L&       CYRILLIC CAPITAL LETTER CROSSED O
+ A69C          ; NFKC_SCF; 044A           # Lm       MODIFIER LETTER CYRILLIC HARD SIGN
+ A69D          ; NFKC_SCF; 044C           # Lm       MODIFIER LETTER CYRILLIC SOFT SIGN
+ A722          ; NFKC_SCF; A723           # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+ A724          ; NFKC_SCF; A725           # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+ A726          ; NFKC_SCF; A727           # L&       LATIN CAPITAL LETTER HENG
+ A728          ; NFKC_SCF; A729           # L&       LATIN CAPITAL LETTER TZ
+ A72A          ; NFKC_SCF; A72B           # L&       LATIN CAPITAL LETTER TRESILLO
+ A72C          ; NFKC_SCF; A72D           # L&       LATIN CAPITAL LETTER CUATRILLO
+ A72E          ; NFKC_SCF; A72F           # L&       LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+ A732          ; NFKC_SCF; A733           # L&       LATIN CAPITAL LETTER AA
+ A734          ; NFKC_SCF; A735           # L&       LATIN CAPITAL LETTER AO
+ A736          ; NFKC_SCF; A737           # L&       LATIN CAPITAL LETTER AU
+ A738          ; NFKC_SCF; A739           # L&       LATIN CAPITAL LETTER AV
+ A73A          ; NFKC_SCF; A73B           # L&       LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+ A73C          ; NFKC_SCF; A73D           # L&       LATIN CAPITAL LETTER AY
+ A73E          ; NFKC_SCF; A73F           # L&       LATIN CAPITAL LETTER REVERSED C WITH DOT
+ A740          ; NFKC_SCF; A741           # L&       LATIN CAPITAL LETTER K WITH STROKE
+ A742          ; NFKC_SCF; A743           # L&       LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+ A744          ; NFKC_SCF; A745           # L&       LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+ A746          ; NFKC_SCF; A747           # L&       LATIN CAPITAL LETTER BROKEN L
+ A748          ; NFKC_SCF; A749           # L&       LATIN CAPITAL LETTER L WITH HIGH STROKE
+ A74A          ; NFKC_SCF; A74B           # L&       LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+ A74C          ; NFKC_SCF; A74D           # L&       LATIN CAPITAL LETTER O WITH LOOP
+ A74E          ; NFKC_SCF; A74F           # L&       LATIN CAPITAL LETTER OO
+ A750          ; NFKC_SCF; A751           # L&       LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+ A752          ; NFKC_SCF; A753           # L&       LATIN CAPITAL LETTER P WITH FLOURISH
+ A754          ; NFKC_SCF; A755           # L&       LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+ A756          ; NFKC_SCF; A757           # L&       LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+ A758          ; NFKC_SCF; A759           # L&       LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+ A75A          ; NFKC_SCF; A75B           # L&       LATIN CAPITAL LETTER R ROTUNDA
+ A75C          ; NFKC_SCF; A75D           # L&       LATIN CAPITAL LETTER RUM ROTUNDA
+ A75E          ; NFKC_SCF; A75F           # L&       LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+ A760          ; NFKC_SCF; A761           # L&       LATIN CAPITAL LETTER VY
+ A762          ; NFKC_SCF; A763           # L&       LATIN CAPITAL LETTER VISIGOTHIC Z
+ A764          ; NFKC_SCF; A765           # L&       LATIN CAPITAL LETTER THORN WITH STROKE
+ A766          ; NFKC_SCF; A767           # L&       LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+ A768          ; NFKC_SCF; A769           # L&       LATIN CAPITAL LETTER VEND
+ A76A          ; NFKC_SCF; A76B           # L&       LATIN CAPITAL LETTER ET
+ A76C          ; NFKC_SCF; A76D           # L&       LATIN CAPITAL LETTER IS
+ A76E          ; NFKC_SCF; A76F           # L&       LATIN CAPITAL LETTER CON
+ A770          ; NFKC_SCF; A76F           # Lm       MODIFIER LETTER US
+ A779          ; NFKC_SCF; A77A           # L&       LATIN CAPITAL LETTER INSULAR D
+ A77B          ; NFKC_SCF; A77C           # L&       LATIN CAPITAL LETTER INSULAR F
+ A77D          ; NFKC_SCF; 1D79           # L&       LATIN CAPITAL LETTER INSULAR G
+ A77E          ; NFKC_SCF; A77F           # L&       LATIN CAPITAL LETTER TURNED INSULAR G
+ A780          ; NFKC_SCF; A781           # L&       LATIN CAPITAL LETTER TURNED L
+ A782          ; NFKC_SCF; A783           # L&       LATIN CAPITAL LETTER INSULAR R
+ A784          ; NFKC_SCF; A785           # L&       LATIN CAPITAL LETTER INSULAR S
+ A786          ; NFKC_SCF; A787           # L&       LATIN CAPITAL LETTER INSULAR T
+ A78B          ; NFKC_SCF; A78C           # L&       LATIN CAPITAL LETTER SALTILLO
+ A78D          ; NFKC_SCF; 0265           # L&       LATIN CAPITAL LETTER TURNED H
+ A790          ; NFKC_SCF; A791           # L&       LATIN CAPITAL LETTER N WITH DESCENDER
+ A792          ; NFKC_SCF; A793           # L&       LATIN CAPITAL LETTER C WITH BAR
+ A796          ; NFKC_SCF; A797           # L&       LATIN CAPITAL LETTER B WITH FLOURISH
+ A798          ; NFKC_SCF; A799           # L&       LATIN CAPITAL LETTER F WITH STROKE
+ A79A          ; NFKC_SCF; A79B           # L&       LATIN CAPITAL LETTER VOLAPUK AE
+ A79C          ; NFKC_SCF; A79D           # L&       LATIN CAPITAL LETTER VOLAPUK OE
+ A79E          ; NFKC_SCF; A79F           # L&       LATIN CAPITAL LETTER VOLAPUK UE
+ A7A0          ; NFKC_SCF; A7A1           # L&       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
+ A7A2          ; NFKC_SCF; A7A3           # L&       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
+ A7A4          ; NFKC_SCF; A7A5           # L&       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
+ A7A6          ; NFKC_SCF; A7A7           # L&       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
+ A7A8          ; NFKC_SCF; A7A9           # L&       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
+ A7AA          ; NFKC_SCF; 0266           # L&       LATIN CAPITAL LETTER H WITH HOOK
+ A7AB          ; NFKC_SCF; 025C           # L&       LATIN CAPITAL LETTER REVERSED OPEN E
+ A7AC          ; NFKC_SCF; 0261           # L&       LATIN CAPITAL LETTER SCRIPT G
+ A7AD          ; NFKC_SCF; 026C           # L&       LATIN CAPITAL LETTER L WITH BELT
+ A7AE          ; NFKC_SCF; 026A           # L&       LATIN CAPITAL LETTER SMALL CAPITAL I
+ A7B0          ; NFKC_SCF; 029E           # L&       LATIN CAPITAL LETTER TURNED K
+ A7B1          ; NFKC_SCF; 0287           # L&       LATIN CAPITAL LETTER TURNED T
+ A7B2          ; NFKC_SCF; 029D           # L&       LATIN CAPITAL LETTER J WITH CROSSED-TAIL
+ A7B3          ; NFKC_SCF; AB53           # L&       LATIN CAPITAL LETTER CHI
+ A7B4          ; NFKC_SCF; A7B5           # L&       LATIN CAPITAL LETTER BETA
+ A7B6          ; NFKC_SCF; A7B7           # L&       LATIN CAPITAL LETTER OMEGA
+ A7B8          ; NFKC_SCF; A7B9           # L&       LATIN CAPITAL LETTER U WITH STROKE
+ A7BA          ; NFKC_SCF; A7BB           # L&       LATIN CAPITAL LETTER GLOTTAL A
+ A7BC          ; NFKC_SCF; A7BD           # L&       LATIN CAPITAL LETTER GLOTTAL I
+ A7BE          ; NFKC_SCF; A7BF           # L&       LATIN CAPITAL LETTER GLOTTAL U
+ A7C0          ; NFKC_SCF; A7C1           # L&       LATIN CAPITAL LETTER OLD POLISH O
+ A7C2          ; NFKC_SCF; A7C3           # L&       LATIN CAPITAL LETTER ANGLICANA W
+ A7C4          ; NFKC_SCF; A794           # L&       LATIN CAPITAL LETTER C WITH PALATAL HOOK
+ A7C5          ; NFKC_SCF; 0282           # L&       LATIN CAPITAL LETTER S WITH HOOK
+ A7C6          ; NFKC_SCF; 1D8E           # L&       LATIN CAPITAL LETTER Z WITH PALATAL HOOK
+ A7C7          ; NFKC_SCF; A7C8           # L&       LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
+ A7C9          ; NFKC_SCF; A7CA           # L&       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+ A7D0          ; NFKC_SCF; A7D1           # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D6          ; NFKC_SCF; A7D7           # L&       LATIN CAPITAL LETTER MIDDLE SCOTS S
+ A7D8          ; NFKC_SCF; A7D9           # L&       LATIN CAPITAL LETTER SIGMOID S
+ A7F2          ; NFKC_SCF; 0063           # Lm       MODIFIER LETTER CAPITAL C
+ A7F3          ; NFKC_SCF; 0066           # Lm       MODIFIER LETTER CAPITAL F
+ A7F4          ; NFKC_SCF; 0071           # Lm       MODIFIER LETTER CAPITAL Q
+ A7F5          ; NFKC_SCF; A7F6           # L&       LATIN CAPITAL LETTER REVERSED HALF H
+ A7F8          ; NFKC_SCF; 0127           # Lm       MODIFIER LETTER CAPITAL H WITH STROKE
+ A7F9          ; NFKC_SCF; 0153           # Lm       MODIFIER LETTER SMALL LIGATURE OE
+ AB5C          ; NFKC_SCF; A727           # Lm       MODIFIER LETTER SMALL HENG
+ AB5D          ; NFKC_SCF; AB37           # Lm       MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+ AB5E          ; NFKC_SCF; 026B           # Lm       MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+ AB5F          ; NFKC_SCF; AB52           # Lm       MODIFIER LETTER SMALL U WITH LEFT HOOK
+ AB69          ; NFKC_SCF; 028D           # Lm       MODIFIER LETTER SMALL TURNED W
+ AB70          ; NFKC_SCF; 13A0           # L&       CHEROKEE SMALL LETTER A
+ AB71          ; NFKC_SCF; 13A1           # L&       CHEROKEE SMALL LETTER E
+ AB72          ; NFKC_SCF; 13A2           # L&       CHEROKEE SMALL LETTER I
+ AB73          ; NFKC_SCF; 13A3           # L&       CHEROKEE SMALL LETTER O
+ AB74          ; NFKC_SCF; 13A4           # L&       CHEROKEE SMALL LETTER U
+ AB75          ; NFKC_SCF; 13A5           # L&       CHEROKEE SMALL LETTER V
+ AB76          ; NFKC_SCF; 13A6           # L&       CHEROKEE SMALL LETTER GA
+ AB77          ; NFKC_SCF; 13A7           # L&       CHEROKEE SMALL LETTER KA
+ AB78          ; NFKC_SCF; 13A8           # L&       CHEROKEE SMALL LETTER GE
+ AB79          ; NFKC_SCF; 13A9           # L&       CHEROKEE SMALL LETTER GI
+ AB7A          ; NFKC_SCF; 13AA           # L&       CHEROKEE SMALL LETTER GO
+ AB7B          ; NFKC_SCF; 13AB           # L&       CHEROKEE SMALL LETTER GU
+ AB7C          ; NFKC_SCF; 13AC           # L&       CHEROKEE SMALL LETTER GV
+ AB7D          ; NFKC_SCF; 13AD           # L&       CHEROKEE SMALL LETTER HA
+ AB7E          ; NFKC_SCF; 13AE           # L&       CHEROKEE SMALL LETTER HE
+ AB7F          ; NFKC_SCF; 13AF           # L&       CHEROKEE SMALL LETTER HI
+ AB80          ; NFKC_SCF; 13B0           # L&       CHEROKEE SMALL LETTER HO
+ AB81          ; NFKC_SCF; 13B1           # L&       CHEROKEE SMALL LETTER HU
+ AB82          ; NFKC_SCF; 13B2           # L&       CHEROKEE SMALL LETTER HV
+ AB83          ; NFKC_SCF; 13B3           # L&       CHEROKEE SMALL LETTER LA
+ AB84          ; NFKC_SCF; 13B4           # L&       CHEROKEE SMALL LETTER LE
+ AB85          ; NFKC_SCF; 13B5           # L&       CHEROKEE SMALL LETTER LI
+ AB86          ; NFKC_SCF; 13B6           # L&       CHEROKEE SMALL LETTER LO
+ AB87          ; NFKC_SCF; 13B7           # L&       CHEROKEE SMALL LETTER LU
+ AB88          ; NFKC_SCF; 13B8           # L&       CHEROKEE SMALL LETTER LV
+ AB89          ; NFKC_SCF; 13B9           # L&       CHEROKEE SMALL LETTER MA
+ AB8A          ; NFKC_SCF; 13BA           # L&       CHEROKEE SMALL LETTER ME
+ AB8B          ; NFKC_SCF; 13BB           # L&       CHEROKEE SMALL LETTER MI
+ AB8C          ; NFKC_SCF; 13BC           # L&       CHEROKEE SMALL LETTER MO
+ AB8D          ; NFKC_SCF; 13BD           # L&       CHEROKEE SMALL LETTER MU
+ AB8E          ; NFKC_SCF; 13BE           # L&       CHEROKEE SMALL LETTER NA
+ AB8F          ; NFKC_SCF; 13BF           # L&       CHEROKEE SMALL LETTER HNA
+ AB90          ; NFKC_SCF; 13C0           # L&       CHEROKEE SMALL LETTER NAH
+ AB91          ; NFKC_SCF; 13C1           # L&       CHEROKEE SMALL LETTER NE
+ AB92          ; NFKC_SCF; 13C2           # L&       CHEROKEE SMALL LETTER NI
+ AB93          ; NFKC_SCF; 13C3           # L&       CHEROKEE SMALL LETTER NO
+ AB94          ; NFKC_SCF; 13C4           # L&       CHEROKEE SMALL LETTER NU
+ AB95          ; NFKC_SCF; 13C5           # L&       CHEROKEE SMALL LETTER NV
+ AB96          ; NFKC_SCF; 13C6           # L&       CHEROKEE SMALL LETTER QUA
+ AB97          ; NFKC_SCF; 13C7           # L&       CHEROKEE SMALL LETTER QUE
+ AB98          ; NFKC_SCF; 13C8           # L&       CHEROKEE SMALL LETTER QUI
+ AB99          ; NFKC_SCF; 13C9           # L&       CHEROKEE SMALL LETTER QUO
+ AB9A          ; NFKC_SCF; 13CA           # L&       CHEROKEE SMALL LETTER QUU
+ AB9B          ; NFKC_SCF; 13CB           # L&       CHEROKEE SMALL LETTER QUV
+ AB9C          ; NFKC_SCF; 13CC           # L&       CHEROKEE SMALL LETTER SA
+ AB9D          ; NFKC_SCF; 13CD           # L&       CHEROKEE SMALL LETTER S
+ AB9E          ; NFKC_SCF; 13CE           # L&       CHEROKEE SMALL LETTER SE
+ AB9F          ; NFKC_SCF; 13CF           # L&       CHEROKEE SMALL LETTER SI
+ ABA0          ; NFKC_SCF; 13D0           # L&       CHEROKEE SMALL LETTER SO
+ ABA1          ; NFKC_SCF; 13D1           # L&       CHEROKEE SMALL LETTER SU
+ ABA2          ; NFKC_SCF; 13D2           # L&       CHEROKEE SMALL LETTER SV
+ ABA3          ; NFKC_SCF; 13D3           # L&       CHEROKEE SMALL LETTER DA
+ ABA4          ; NFKC_SCF; 13D4           # L&       CHEROKEE SMALL LETTER TA
+ ABA5          ; NFKC_SCF; 13D5           # L&       CHEROKEE SMALL LETTER DE
+ ABA6          ; NFKC_SCF; 13D6           # L&       CHEROKEE SMALL LETTER TE
+ ABA7          ; NFKC_SCF; 13D7           # L&       CHEROKEE SMALL LETTER DI
+ ABA8          ; NFKC_SCF; 13D8           # L&       CHEROKEE SMALL LETTER TI
+ ABA9          ; NFKC_SCF; 13D9           # L&       CHEROKEE SMALL LETTER DO
+ ABAA          ; NFKC_SCF; 13DA           # L&       CHEROKEE SMALL LETTER DU
+ ABAB          ; NFKC_SCF; 13DB           # L&       CHEROKEE SMALL LETTER DV
+ ABAC          ; NFKC_SCF; 13DC           # L&       CHEROKEE SMALL LETTER DLA
+ ABAD          ; NFKC_SCF; 13DD           # L&       CHEROKEE SMALL LETTER TLA
+ ABAE          ; NFKC_SCF; 13DE           # L&       CHEROKEE SMALL LETTER TLE
+ ABAF          ; NFKC_SCF; 13DF           # L&       CHEROKEE SMALL LETTER TLI
+ ABB0          ; NFKC_SCF; 13E0           # L&       CHEROKEE SMALL LETTER TLO
+ ABB1          ; NFKC_SCF; 13E1           # L&       CHEROKEE SMALL LETTER TLU
+ ABB2          ; NFKC_SCF; 13E2           # L&       CHEROKEE SMALL LETTER TLV
+ ABB3          ; NFKC_SCF; 13E3           # L&       CHEROKEE SMALL LETTER TSA
+ ABB4          ; NFKC_SCF; 13E4           # L&       CHEROKEE SMALL LETTER TSE
+ ABB5          ; NFKC_SCF; 13E5           # L&       CHEROKEE SMALL LETTER TSI
+ ABB6          ; NFKC_SCF; 13E6           # L&       CHEROKEE SMALL LETTER TSO
+ ABB7          ; NFKC_SCF; 13E7           # L&       CHEROKEE SMALL LETTER TSU
+ ABB8          ; NFKC_SCF; 13E8           # L&       CHEROKEE SMALL LETTER TSV
+ ABB9          ; NFKC_SCF; 13E9           # L&       CHEROKEE SMALL LETTER WA
+ ABBA          ; NFKC_SCF; 13EA           # L&       CHEROKEE SMALL LETTER WE
+ ABBB          ; NFKC_SCF; 13EB           # L&       CHEROKEE SMALL LETTER WI
+ ABBC          ; NFKC_SCF; 13EC           # L&       CHEROKEE SMALL LETTER WO
+ ABBD          ; NFKC_SCF; 13ED           # L&       CHEROKEE SMALL LETTER WU
+ ABBE          ; NFKC_SCF; 13EE           # L&       CHEROKEE SMALL LETTER WV
+ ABBF          ; NFKC_SCF; 13EF           # L&       CHEROKEE SMALL LETTER YA
+ F900          ; NFKC_SCF; 8C48           # Lo       CJK COMPATIBILITY IDEOGRAPH-F900
+ F901          ; NFKC_SCF; 66F4           # Lo       CJK COMPATIBILITY IDEOGRAPH-F901
+ F902          ; NFKC_SCF; 8ECA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F902
+ F903          ; NFKC_SCF; 8CC8           # Lo       CJK COMPATIBILITY IDEOGRAPH-F903
+ F904          ; NFKC_SCF; 6ED1           # Lo       CJK COMPATIBILITY IDEOGRAPH-F904
+ F905          ; NFKC_SCF; 4E32           # Lo       CJK COMPATIBILITY IDEOGRAPH-F905
+ F906          ; NFKC_SCF; 53E5           # Lo       CJK COMPATIBILITY IDEOGRAPH-F906
+ F907..F908    ; NFKC_SCF; 9F9C           # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-F907..CJK COMPATIBILITY IDEOGRAPH-F908
+ F909          ; NFKC_SCF; 5951           # Lo       CJK COMPATIBILITY IDEOGRAPH-F909
+ F90A          ; NFKC_SCF; 91D1           # Lo       CJK COMPATIBILITY IDEOGRAPH-F90A
+ F90B          ; NFKC_SCF; 5587           # Lo       CJK COMPATIBILITY IDEOGRAPH-F90B
+ F90C          ; NFKC_SCF; 5948           # Lo       CJK COMPATIBILITY IDEOGRAPH-F90C
+ F90D          ; NFKC_SCF; 61F6           # Lo       CJK COMPATIBILITY IDEOGRAPH-F90D
+ F90E          ; NFKC_SCF; 7669           # Lo       CJK COMPATIBILITY IDEOGRAPH-F90E
+ F90F          ; NFKC_SCF; 7F85           # Lo       CJK COMPATIBILITY IDEOGRAPH-F90F
+ F910          ; NFKC_SCF; 863F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F910
+ F911          ; NFKC_SCF; 87BA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F911
+ F912          ; NFKC_SCF; 88F8           # Lo       CJK COMPATIBILITY IDEOGRAPH-F912
+ F913          ; NFKC_SCF; 908F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F913
+ F914          ; NFKC_SCF; 6A02           # Lo       CJK COMPATIBILITY IDEOGRAPH-F914
+ F915          ; NFKC_SCF; 6D1B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F915
+ F916          ; NFKC_SCF; 70D9           # Lo       CJK COMPATIBILITY IDEOGRAPH-F916
+ F917          ; NFKC_SCF; 73DE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F917
+ F918          ; NFKC_SCF; 843D           # Lo       CJK COMPATIBILITY IDEOGRAPH-F918
+ F919          ; NFKC_SCF; 916A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F919
+ F91A          ; NFKC_SCF; 99F1           # Lo       CJK COMPATIBILITY IDEOGRAPH-F91A
+ F91B          ; NFKC_SCF; 4E82           # Lo       CJK COMPATIBILITY IDEOGRAPH-F91B
+ F91C          ; NFKC_SCF; 5375           # Lo       CJK COMPATIBILITY IDEOGRAPH-F91C
+ F91D          ; NFKC_SCF; 6B04           # Lo       CJK COMPATIBILITY IDEOGRAPH-F91D
+ F91E          ; NFKC_SCF; 721B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F91E
+ F91F          ; NFKC_SCF; 862D           # Lo       CJK COMPATIBILITY IDEOGRAPH-F91F
+ F920          ; NFKC_SCF; 9E1E           # Lo       CJK COMPATIBILITY IDEOGRAPH-F920
+ F921          ; NFKC_SCF; 5D50           # Lo       CJK COMPATIBILITY IDEOGRAPH-F921
+ F922          ; NFKC_SCF; 6FEB           # Lo       CJK COMPATIBILITY IDEOGRAPH-F922
+ F923          ; NFKC_SCF; 85CD           # Lo       CJK COMPATIBILITY IDEOGRAPH-F923
+ F924          ; NFKC_SCF; 8964           # Lo       CJK COMPATIBILITY IDEOGRAPH-F924
+ F925          ; NFKC_SCF; 62C9           # Lo       CJK COMPATIBILITY IDEOGRAPH-F925
+ F926          ; NFKC_SCF; 81D8           # Lo       CJK COMPATIBILITY IDEOGRAPH-F926
+ F927          ; NFKC_SCF; 881F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F927
+ F928          ; NFKC_SCF; 5ECA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F928
+ F929          ; NFKC_SCF; 6717           # Lo       CJK COMPATIBILITY IDEOGRAPH-F929
+ F92A          ; NFKC_SCF; 6D6A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F92A
+ F92B          ; NFKC_SCF; 72FC           # Lo       CJK COMPATIBILITY IDEOGRAPH-F92B
+ F92C          ; NFKC_SCF; 90CE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F92C
+ F92D          ; NFKC_SCF; 4F86           # Lo       CJK COMPATIBILITY IDEOGRAPH-F92D
+ F92E          ; NFKC_SCF; 51B7           # Lo       CJK COMPATIBILITY IDEOGRAPH-F92E
+ F92F          ; NFKC_SCF; 52DE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F92F
+ F930          ; NFKC_SCF; 64C4           # Lo       CJK COMPATIBILITY IDEOGRAPH-F930
+ F931          ; NFKC_SCF; 6AD3           # Lo       CJK COMPATIBILITY IDEOGRAPH-F931
+ F932          ; NFKC_SCF; 7210           # Lo       CJK COMPATIBILITY IDEOGRAPH-F932
+ F933          ; NFKC_SCF; 76E7           # Lo       CJK COMPATIBILITY IDEOGRAPH-F933
+ F934          ; NFKC_SCF; 8001           # Lo       CJK COMPATIBILITY IDEOGRAPH-F934
+ F935          ; NFKC_SCF; 8606           # Lo       CJK COMPATIBILITY IDEOGRAPH-F935
+ F936          ; NFKC_SCF; 865C           # Lo       CJK COMPATIBILITY IDEOGRAPH-F936
+ F937          ; NFKC_SCF; 8DEF           # Lo       CJK COMPATIBILITY IDEOGRAPH-F937
+ F938          ; NFKC_SCF; 9732           # Lo       CJK COMPATIBILITY IDEOGRAPH-F938
+ F939          ; NFKC_SCF; 9B6F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F939
+ F93A          ; NFKC_SCF; 9DFA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F93A
+ F93B          ; NFKC_SCF; 788C           # Lo       CJK COMPATIBILITY IDEOGRAPH-F93B
+ F93C          ; NFKC_SCF; 797F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F93C
+ F93D          ; NFKC_SCF; 7DA0           # Lo       CJK COMPATIBILITY IDEOGRAPH-F93D
+ F93E          ; NFKC_SCF; 83C9           # Lo       CJK COMPATIBILITY IDEOGRAPH-F93E
+ F93F          ; NFKC_SCF; 9304           # Lo       CJK COMPATIBILITY IDEOGRAPH-F93F
+ F940          ; NFKC_SCF; 9E7F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F940
+ F941          ; NFKC_SCF; 8AD6           # Lo       CJK COMPATIBILITY IDEOGRAPH-F941
+ F942          ; NFKC_SCF; 58DF           # Lo       CJK COMPATIBILITY IDEOGRAPH-F942
+ F943          ; NFKC_SCF; 5F04           # Lo       CJK COMPATIBILITY IDEOGRAPH-F943
+ F944          ; NFKC_SCF; 7C60           # Lo       CJK COMPATIBILITY IDEOGRAPH-F944
+ F945          ; NFKC_SCF; 807E           # Lo       CJK COMPATIBILITY IDEOGRAPH-F945
+ F946          ; NFKC_SCF; 7262           # Lo       CJK COMPATIBILITY IDEOGRAPH-F946
+ F947          ; NFKC_SCF; 78CA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F947
+ F948          ; NFKC_SCF; 8CC2           # Lo       CJK COMPATIBILITY IDEOGRAPH-F948
+ F949          ; NFKC_SCF; 96F7           # Lo       CJK COMPATIBILITY IDEOGRAPH-F949
+ F94A          ; NFKC_SCF; 58D8           # Lo       CJK COMPATIBILITY IDEOGRAPH-F94A
+ F94B          ; NFKC_SCF; 5C62           # Lo       CJK COMPATIBILITY IDEOGRAPH-F94B
+ F94C          ; NFKC_SCF; 6A13           # Lo       CJK COMPATIBILITY IDEOGRAPH-F94C
+ F94D          ; NFKC_SCF; 6DDA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F94D
+ F94E          ; NFKC_SCF; 6F0F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F94E
+ F94F          ; NFKC_SCF; 7D2F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F94F
+ F950          ; NFKC_SCF; 7E37           # Lo       CJK COMPATIBILITY IDEOGRAPH-F950
+ F951          ; NFKC_SCF; 964B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F951
+ F952          ; NFKC_SCF; 52D2           # Lo       CJK COMPATIBILITY IDEOGRAPH-F952
+ F953          ; NFKC_SCF; 808B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F953
+ F954          ; NFKC_SCF; 51DC           # Lo       CJK COMPATIBILITY IDEOGRAPH-F954
+ F955          ; NFKC_SCF; 51CC           # Lo       CJK COMPATIBILITY IDEOGRAPH-F955
+ F956          ; NFKC_SCF; 7A1C           # Lo       CJK COMPATIBILITY IDEOGRAPH-F956
+ F957          ; NFKC_SCF; 7DBE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F957
+ F958          ; NFKC_SCF; 83F1           # Lo       CJK COMPATIBILITY IDEOGRAPH-F958
+ F959          ; NFKC_SCF; 9675           # Lo       CJK COMPATIBILITY IDEOGRAPH-F959
+ F95A          ; NFKC_SCF; 8B80           # Lo       CJK COMPATIBILITY IDEOGRAPH-F95A
+ F95B          ; NFKC_SCF; 62CF           # Lo       CJK COMPATIBILITY IDEOGRAPH-F95B
+ F95C          ; NFKC_SCF; 6A02           # Lo       CJK COMPATIBILITY IDEOGRAPH-F95C
+ F95D          ; NFKC_SCF; 8AFE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F95D
+ F95E          ; NFKC_SCF; 4E39           # Lo       CJK COMPATIBILITY IDEOGRAPH-F95E
+ F95F          ; NFKC_SCF; 5BE7           # Lo       CJK COMPATIBILITY IDEOGRAPH-F95F
+ F960          ; NFKC_SCF; 6012           # Lo       CJK COMPATIBILITY IDEOGRAPH-F960
+ F961          ; NFKC_SCF; 7387           # Lo       CJK COMPATIBILITY IDEOGRAPH-F961
+ F962          ; NFKC_SCF; 7570           # Lo       CJK COMPATIBILITY IDEOGRAPH-F962
+ F963          ; NFKC_SCF; 5317           # Lo       CJK COMPATIBILITY IDEOGRAPH-F963
+ F964          ; NFKC_SCF; 78FB           # Lo       CJK COMPATIBILITY IDEOGRAPH-F964
+ F965          ; NFKC_SCF; 4FBF           # Lo       CJK COMPATIBILITY IDEOGRAPH-F965
+ F966          ; NFKC_SCF; 5FA9           # Lo       CJK COMPATIBILITY IDEOGRAPH-F966
+ F967          ; NFKC_SCF; 4E0D           # Lo       CJK COMPATIBILITY IDEOGRAPH-F967
+ F968          ; NFKC_SCF; 6CCC           # Lo       CJK COMPATIBILITY IDEOGRAPH-F968
+ F969          ; NFKC_SCF; 6578           # Lo       CJK COMPATIBILITY IDEOGRAPH-F969
+ F96A          ; NFKC_SCF; 7D22           # Lo       CJK COMPATIBILITY IDEOGRAPH-F96A
+ F96B          ; NFKC_SCF; 53C3           # Lo       CJK COMPATIBILITY IDEOGRAPH-F96B
+ F96C          ; NFKC_SCF; 585E           # Lo       CJK COMPATIBILITY IDEOGRAPH-F96C
+ F96D          ; NFKC_SCF; 7701           # Lo       CJK COMPATIBILITY IDEOGRAPH-F96D
+ F96E          ; NFKC_SCF; 8449           # Lo       CJK COMPATIBILITY IDEOGRAPH-F96E
+ F96F          ; NFKC_SCF; 8AAA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F96F
+ F970          ; NFKC_SCF; 6BBA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F970
+ F971          ; NFKC_SCF; 8FB0           # Lo       CJK COMPATIBILITY IDEOGRAPH-F971
+ F972          ; NFKC_SCF; 6C88           # Lo       CJK COMPATIBILITY IDEOGRAPH-F972
+ F973          ; NFKC_SCF; 62FE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F973
+ F974          ; NFKC_SCF; 82E5           # Lo       CJK COMPATIBILITY IDEOGRAPH-F974
+ F975          ; NFKC_SCF; 63A0           # Lo       CJK COMPATIBILITY IDEOGRAPH-F975
+ F976          ; NFKC_SCF; 7565           # Lo       CJK COMPATIBILITY IDEOGRAPH-F976
+ F977          ; NFKC_SCF; 4EAE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F977
+ F978          ; NFKC_SCF; 5169           # Lo       CJK COMPATIBILITY IDEOGRAPH-F978
+ F979          ; NFKC_SCF; 51C9           # Lo       CJK COMPATIBILITY IDEOGRAPH-F979
+ F97A          ; NFKC_SCF; 6881           # Lo       CJK COMPATIBILITY IDEOGRAPH-F97A
+ F97B          ; NFKC_SCF; 7CE7           # Lo       CJK COMPATIBILITY IDEOGRAPH-F97B
+ F97C          ; NFKC_SCF; 826F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F97C
+ F97D          ; NFKC_SCF; 8AD2           # Lo       CJK COMPATIBILITY IDEOGRAPH-F97D
+ F97E          ; NFKC_SCF; 91CF           # Lo       CJK COMPATIBILITY IDEOGRAPH-F97E
+ F97F          ; NFKC_SCF; 52F5           # Lo       CJK COMPATIBILITY IDEOGRAPH-F97F
+ F980          ; NFKC_SCF; 5442           # Lo       CJK COMPATIBILITY IDEOGRAPH-F980
+ F981          ; NFKC_SCF; 5973           # Lo       CJK COMPATIBILITY IDEOGRAPH-F981
+ F982          ; NFKC_SCF; 5EEC           # Lo       CJK COMPATIBILITY IDEOGRAPH-F982
+ F983          ; NFKC_SCF; 65C5           # Lo       CJK COMPATIBILITY IDEOGRAPH-F983
+ F984          ; NFKC_SCF; 6FFE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F984
+ F985          ; NFKC_SCF; 792A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F985
+ F986          ; NFKC_SCF; 95AD           # Lo       CJK COMPATIBILITY IDEOGRAPH-F986
+ F987          ; NFKC_SCF; 9A6A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F987
+ F988          ; NFKC_SCF; 9E97           # Lo       CJK COMPATIBILITY IDEOGRAPH-F988
+ F989          ; NFKC_SCF; 9ECE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F989
+ F98A          ; NFKC_SCF; 529B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F98A
+ F98B          ; NFKC_SCF; 66C6           # Lo       CJK COMPATIBILITY IDEOGRAPH-F98B
+ F98C          ; NFKC_SCF; 6B77           # Lo       CJK COMPATIBILITY IDEOGRAPH-F98C
+ F98D          ; NFKC_SCF; 8F62           # Lo       CJK COMPATIBILITY IDEOGRAPH-F98D
+ F98E          ; NFKC_SCF; 5E74           # Lo       CJK COMPATIBILITY IDEOGRAPH-F98E
+ F98F          ; NFKC_SCF; 6190           # Lo       CJK COMPATIBILITY IDEOGRAPH-F98F
+ F990          ; NFKC_SCF; 6200           # Lo       CJK COMPATIBILITY IDEOGRAPH-F990
+ F991          ; NFKC_SCF; 649A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F991
+ F992          ; NFKC_SCF; 6F23           # Lo       CJK COMPATIBILITY IDEOGRAPH-F992
+ F993          ; NFKC_SCF; 7149           # Lo       CJK COMPATIBILITY IDEOGRAPH-F993
+ F994          ; NFKC_SCF; 7489           # Lo       CJK COMPATIBILITY IDEOGRAPH-F994
+ F995          ; NFKC_SCF; 79CA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F995
+ F996          ; NFKC_SCF; 7DF4           # Lo       CJK COMPATIBILITY IDEOGRAPH-F996
+ F997          ; NFKC_SCF; 806F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F997
+ F998          ; NFKC_SCF; 8F26           # Lo       CJK COMPATIBILITY IDEOGRAPH-F998
+ F999          ; NFKC_SCF; 84EE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F999
+ F99A          ; NFKC_SCF; 9023           # Lo       CJK COMPATIBILITY IDEOGRAPH-F99A
+ F99B          ; NFKC_SCF; 934A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F99B
+ F99C          ; NFKC_SCF; 5217           # Lo       CJK COMPATIBILITY IDEOGRAPH-F99C
+ F99D          ; NFKC_SCF; 52A3           # Lo       CJK COMPATIBILITY IDEOGRAPH-F99D
+ F99E          ; NFKC_SCF; 54BD           # Lo       CJK COMPATIBILITY IDEOGRAPH-F99E
+ F99F          ; NFKC_SCF; 70C8           # Lo       CJK COMPATIBILITY IDEOGRAPH-F99F
+ F9A0          ; NFKC_SCF; 88C2           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A0
+ F9A1          ; NFKC_SCF; 8AAA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A1
+ F9A2          ; NFKC_SCF; 5EC9           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A2
+ F9A3          ; NFKC_SCF; 5FF5           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A3
+ F9A4          ; NFKC_SCF; 637B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A4
+ F9A5          ; NFKC_SCF; 6BAE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A5
+ F9A6          ; NFKC_SCF; 7C3E           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A6
+ F9A7          ; NFKC_SCF; 7375           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A7
+ F9A8          ; NFKC_SCF; 4EE4           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A8
+ F9A9          ; NFKC_SCF; 56F9           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9A9
+ F9AA          ; NFKC_SCF; 5BE7           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9AA
+ F9AB          ; NFKC_SCF; 5DBA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9AB
+ F9AC          ; NFKC_SCF; 601C           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9AC
+ F9AD          ; NFKC_SCF; 73B2           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9AD
+ F9AE          ; NFKC_SCF; 7469           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9AE
+ F9AF          ; NFKC_SCF; 7F9A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9AF
+ F9B0          ; NFKC_SCF; 8046           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B0
+ F9B1          ; NFKC_SCF; 9234           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B1
+ F9B2          ; NFKC_SCF; 96F6           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B2
+ F9B3          ; NFKC_SCF; 9748           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B3
+ F9B4          ; NFKC_SCF; 9818           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B4
+ F9B5          ; NFKC_SCF; 4F8B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B5
+ F9B6          ; NFKC_SCF; 79AE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B6
+ F9B7          ; NFKC_SCF; 91B4           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B7
+ F9B8          ; NFKC_SCF; 96B8           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B8
+ F9B9          ; NFKC_SCF; 60E1           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B9
+ F9BA          ; NFKC_SCF; 4E86           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9BA
+ F9BB          ; NFKC_SCF; 50DA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9BB
+ F9BC          ; NFKC_SCF; 5BEE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9BC
+ F9BD          ; NFKC_SCF; 5C3F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9BD
+ F9BE          ; NFKC_SCF; 6599           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9BE
+ F9BF          ; NFKC_SCF; 6A02           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9BF
+ F9C0          ; NFKC_SCF; 71CE           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C0
+ F9C1          ; NFKC_SCF; 7642           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C1
+ F9C2          ; NFKC_SCF; 84FC           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C2
+ F9C3          ; NFKC_SCF; 907C           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C3
+ F9C4          ; NFKC_SCF; 9F8D           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C4
+ F9C5          ; NFKC_SCF; 6688           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C5
+ F9C6          ; NFKC_SCF; 962E           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C6
+ F9C7          ; NFKC_SCF; 5289           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C7
+ F9C8          ; NFKC_SCF; 677B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C8
+ F9C9          ; NFKC_SCF; 67F3           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9C9
+ F9CA          ; NFKC_SCF; 6D41           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9CA
+ F9CB          ; NFKC_SCF; 6E9C           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9CB
+ F9CC          ; NFKC_SCF; 7409           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9CC
+ F9CD          ; NFKC_SCF; 7559           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9CD
+ F9CE          ; NFKC_SCF; 786B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9CE
+ F9CF          ; NFKC_SCF; 7D10           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9CF
+ F9D0          ; NFKC_SCF; 985E           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D0
+ F9D1          ; NFKC_SCF; 516D           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D1
+ F9D2          ; NFKC_SCF; 622E           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D2
+ F9D3          ; NFKC_SCF; 9678           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D3
+ F9D4          ; NFKC_SCF; 502B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D4
+ F9D5          ; NFKC_SCF; 5D19           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D5
+ F9D6          ; NFKC_SCF; 6DEA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D6
+ F9D7          ; NFKC_SCF; 8F2A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D7
+ F9D8          ; NFKC_SCF; 5F8B           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D8
+ F9D9          ; NFKC_SCF; 6144           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D9
+ F9DA          ; NFKC_SCF; 6817           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9DA
+ F9DB          ; NFKC_SCF; 7387           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9DB
+ F9DC          ; NFKC_SCF; 9686           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9DC
+ F9DD          ; NFKC_SCF; 5229           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9DD
+ F9DE          ; NFKC_SCF; 540F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9DE
+ F9DF          ; NFKC_SCF; 5C65           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9DF
+ F9E0          ; NFKC_SCF; 6613           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E0
+ F9E1          ; NFKC_SCF; 674E           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E1
+ F9E2          ; NFKC_SCF; 68A8           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E2
+ F9E3          ; NFKC_SCF; 6CE5           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E3
+ F9E4          ; NFKC_SCF; 7406           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E4
+ F9E5          ; NFKC_SCF; 75E2           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E5
+ F9E6          ; NFKC_SCF; 7F79           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E6
+ F9E7          ; NFKC_SCF; 88CF           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E7
+ F9E8          ; NFKC_SCF; 88E1           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E8
+ F9E9          ; NFKC_SCF; 91CC           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9E9
+ F9EA          ; NFKC_SCF; 96E2           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9EA
+ F9EB          ; NFKC_SCF; 533F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9EB
+ F9EC          ; NFKC_SCF; 6EBA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9EC
+ F9ED          ; NFKC_SCF; 541D           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9ED
+ F9EE          ; NFKC_SCF; 71D0           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9EE
+ F9EF          ; NFKC_SCF; 7498           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9EF
+ F9F0          ; NFKC_SCF; 85FA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F0
+ F9F1          ; NFKC_SCF; 96A3           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F1
+ F9F2          ; NFKC_SCF; 9C57           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F2
+ F9F3          ; NFKC_SCF; 9E9F           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F3
+ F9F4          ; NFKC_SCF; 6797           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F4
+ F9F5          ; NFKC_SCF; 6DCB           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F5
+ F9F6          ; NFKC_SCF; 81E8           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F6
+ F9F7          ; NFKC_SCF; 7ACB           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F7
+ F9F8          ; NFKC_SCF; 7B20           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F8
+ F9F9          ; NFKC_SCF; 7C92           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9F9
+ F9FA          ; NFKC_SCF; 72C0           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FA
+ F9FB          ; NFKC_SCF; 7099           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FB
+ F9FC          ; NFKC_SCF; 8B58           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FC
+ F9FD          ; NFKC_SCF; 4EC0           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
+ F9FE          ; NFKC_SCF; 8336           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FE
+ F9FF          ; NFKC_SCF; 523A           # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FF
+ FA00          ; NFKC_SCF; 5207           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA00
+ FA01          ; NFKC_SCF; 5EA6           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA01
+ FA02          ; NFKC_SCF; 62D3           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA02
+ FA03          ; NFKC_SCF; 7CD6           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA03
+ FA04          ; NFKC_SCF; 5B85           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA04
+ FA05          ; NFKC_SCF; 6D1E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA05
+ FA06          ; NFKC_SCF; 66B4           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA06
+ FA07          ; NFKC_SCF; 8F3B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA07
+ FA08          ; NFKC_SCF; 884C           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA08
+ FA09          ; NFKC_SCF; 964D           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA09
+ FA0A          ; NFKC_SCF; 898B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA0A
+ FA0B          ; NFKC_SCF; 5ED3           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA0B
+ FA0C          ; NFKC_SCF; 5140           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA0C
+ FA0D          ; NFKC_SCF; 55C0           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA0D
+ FA10          ; NFKC_SCF; 585A           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA10
+ FA12          ; NFKC_SCF; 6674           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA12
+ FA15          ; NFKC_SCF; 51DE           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA15
+ FA16          ; NFKC_SCF; 732A           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA16
+ FA17          ; NFKC_SCF; 76CA           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA17
+ FA18          ; NFKC_SCF; 793C           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA18
+ FA19          ; NFKC_SCF; 795E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA19
+ FA1A          ; NFKC_SCF; 7965           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA1A
+ FA1B          ; NFKC_SCF; 798F           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA1B
+ FA1C          ; NFKC_SCF; 9756           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA1C
+ FA1D          ; NFKC_SCF; 7CBE           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA1D
+ FA1E          ; NFKC_SCF; 7FBD           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA1E
+ FA20          ; NFKC_SCF; 8612           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA20
+ FA22          ; NFKC_SCF; 8AF8           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA22
+ FA25          ; NFKC_SCF; 9038           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA25
+ FA26          ; NFKC_SCF; 90FD           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA26
+ FA2A          ; NFKC_SCF; 98EF           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA2A
+ FA2B          ; NFKC_SCF; 98FC           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA2B
+ FA2C          ; NFKC_SCF; 9928           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA2C
+ FA2D          ; NFKC_SCF; 9DB4           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA2D
+ FA2E          ; NFKC_SCF; 90DE           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA2E
+ FA2F          ; NFKC_SCF; 96B7           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA2F
+ FA30          ; NFKC_SCF; 4FAE           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA30
+ FA31          ; NFKC_SCF; 50E7           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA31
+ FA32          ; NFKC_SCF; 514D           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA32
+ FA33          ; NFKC_SCF; 52C9           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA33
+ FA34          ; NFKC_SCF; 52E4           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA34
+ FA35          ; NFKC_SCF; 5351           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA35
+ FA36          ; NFKC_SCF; 559D           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA36
+ FA37          ; NFKC_SCF; 5606           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA37
+ FA38          ; NFKC_SCF; 5668           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA38
+ FA39          ; NFKC_SCF; 5840           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA39
+ FA3A          ; NFKC_SCF; 58A8           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA3A
+ FA3B          ; NFKC_SCF; 5C64           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA3B
+ FA3C          ; NFKC_SCF; 5C6E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA3C
+ FA3D          ; NFKC_SCF; 6094           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA3D
+ FA3E          ; NFKC_SCF; 6168           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA3E
+ FA3F          ; NFKC_SCF; 618E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA3F
+ FA40          ; NFKC_SCF; 61F2           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA40
+ FA41          ; NFKC_SCF; 654F           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA41
+ FA42          ; NFKC_SCF; 65E2           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA42
+ FA43          ; NFKC_SCF; 6691           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA43
+ FA44          ; NFKC_SCF; 6885           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA44
+ FA45          ; NFKC_SCF; 6D77           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA45
+ FA46          ; NFKC_SCF; 6E1A           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA46
+ FA47          ; NFKC_SCF; 6F22           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA47
+ FA48          ; NFKC_SCF; 716E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA48
+ FA49          ; NFKC_SCF; 722B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA49
+ FA4A          ; NFKC_SCF; 7422           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA4A
+ FA4B          ; NFKC_SCF; 7891           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA4B
+ FA4C          ; NFKC_SCF; 793E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA4C
+ FA4D          ; NFKC_SCF; 7949           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA4D
+ FA4E          ; NFKC_SCF; 7948           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA4E
+ FA4F          ; NFKC_SCF; 7950           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA4F
+ FA50          ; NFKC_SCF; 7956           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA50
+ FA51          ; NFKC_SCF; 795D           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA51
+ FA52          ; NFKC_SCF; 798D           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA52
+ FA53          ; NFKC_SCF; 798E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA53
+ FA54          ; NFKC_SCF; 7A40           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA54
+ FA55          ; NFKC_SCF; 7A81           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA55
+ FA56          ; NFKC_SCF; 7BC0           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA56
+ FA57          ; NFKC_SCF; 7DF4           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA57
+ FA58          ; NFKC_SCF; 7E09           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA58
+ FA59          ; NFKC_SCF; 7E41           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA59
+ FA5A          ; NFKC_SCF; 7F72           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA5A
+ FA5B          ; NFKC_SCF; 8005           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA5B
+ FA5C          ; NFKC_SCF; 81ED           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA5C
+ FA5D..FA5E    ; NFKC_SCF; 8279           # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA5D..CJK COMPATIBILITY IDEOGRAPH-FA5E
+ FA5F          ; NFKC_SCF; 8457           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA5F
+ FA60          ; NFKC_SCF; 8910           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA60
+ FA61          ; NFKC_SCF; 8996           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA61
+ FA62          ; NFKC_SCF; 8B01           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA62
+ FA63          ; NFKC_SCF; 8B39           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA63
+ FA64          ; NFKC_SCF; 8CD3           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA64
+ FA65          ; NFKC_SCF; 8D08           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA65
+ FA66          ; NFKC_SCF; 8FB6           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA66
+ FA67          ; NFKC_SCF; 9038           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA67
+ FA68          ; NFKC_SCF; 96E3           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA68
+ FA69          ; NFKC_SCF; 97FF           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA69
+ FA6A          ; NFKC_SCF; 983B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA6A
+ FA6B          ; NFKC_SCF; 6075           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA6B
+ FA6C          ; NFKC_SCF; 242EE          # Lo       CJK COMPATIBILITY IDEOGRAPH-FA6C
+ FA6D          ; NFKC_SCF; 8218           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA6D
+ FA70          ; NFKC_SCF; 4E26           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA70
+ FA71          ; NFKC_SCF; 51B5           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA71
+ FA72          ; NFKC_SCF; 5168           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA72
+ FA73          ; NFKC_SCF; 4F80           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA73
+ FA74          ; NFKC_SCF; 5145           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA74
+ FA75          ; NFKC_SCF; 5180           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA75
+ FA76          ; NFKC_SCF; 52C7           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA76
+ FA77          ; NFKC_SCF; 52FA           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA77
+ FA78          ; NFKC_SCF; 559D           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA78
+ FA79          ; NFKC_SCF; 5555           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA79
+ FA7A          ; NFKC_SCF; 5599           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA7A
+ FA7B          ; NFKC_SCF; 55E2           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA7B
+ FA7C          ; NFKC_SCF; 585A           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA7C
+ FA7D          ; NFKC_SCF; 58B3           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA7D
+ FA7E          ; NFKC_SCF; 5944           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA7E
+ FA7F          ; NFKC_SCF; 5954           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA7F
+ FA80          ; NFKC_SCF; 5A62           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA80
+ FA81          ; NFKC_SCF; 5B28           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA81
+ FA82          ; NFKC_SCF; 5ED2           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA82
+ FA83          ; NFKC_SCF; 5ED9           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA83
+ FA84          ; NFKC_SCF; 5F69           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA84
+ FA85          ; NFKC_SCF; 5FAD           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA85
+ FA86          ; NFKC_SCF; 60D8           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA86
+ FA87          ; NFKC_SCF; 614E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA87
+ FA88          ; NFKC_SCF; 6108           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA88
+ FA89          ; NFKC_SCF; 618E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA89
+ FA8A          ; NFKC_SCF; 6160           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA8A
+ FA8B          ; NFKC_SCF; 61F2           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA8B
+ FA8C          ; NFKC_SCF; 6234           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA8C
+ FA8D          ; NFKC_SCF; 63C4           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA8D
+ FA8E          ; NFKC_SCF; 641C           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA8E
+ FA8F          ; NFKC_SCF; 6452           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA8F
+ FA90          ; NFKC_SCF; 6556           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA90
+ FA91          ; NFKC_SCF; 6674           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA91
+ FA92          ; NFKC_SCF; 6717           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA92
+ FA93          ; NFKC_SCF; 671B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA93
+ FA94          ; NFKC_SCF; 6756           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA94
+ FA95          ; NFKC_SCF; 6B79           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA95
+ FA96          ; NFKC_SCF; 6BBA           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA96
+ FA97          ; NFKC_SCF; 6D41           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA97
+ FA98          ; NFKC_SCF; 6EDB           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA98
+ FA99          ; NFKC_SCF; 6ECB           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA99
+ FA9A          ; NFKC_SCF; 6F22           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA9A
+ FA9B          ; NFKC_SCF; 701E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA9B
+ FA9C          ; NFKC_SCF; 716E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA9C
+ FA9D          ; NFKC_SCF; 77A7           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA9D
+ FA9E          ; NFKC_SCF; 7235           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA9E
+ FA9F          ; NFKC_SCF; 72AF           # Lo       CJK COMPATIBILITY IDEOGRAPH-FA9F
+ FAA0          ; NFKC_SCF; 732A           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA0
+ FAA1          ; NFKC_SCF; 7471           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA1
+ FAA2          ; NFKC_SCF; 7506           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA2
+ FAA3          ; NFKC_SCF; 753B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA3
+ FAA4          ; NFKC_SCF; 761D           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA4
+ FAA5          ; NFKC_SCF; 761F           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA5
+ FAA6          ; NFKC_SCF; 76CA           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA6
+ FAA7          ; NFKC_SCF; 76DB           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA7
+ FAA8          ; NFKC_SCF; 76F4           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA8
+ FAA9          ; NFKC_SCF; 774A           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAA9
+ FAAA          ; NFKC_SCF; 7740           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAAA
+ FAAB          ; NFKC_SCF; 78CC           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAAB
+ FAAC          ; NFKC_SCF; 7AB1           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAAC
+ FAAD          ; NFKC_SCF; 7BC0           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAAD
+ FAAE          ; NFKC_SCF; 7C7B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAAE
+ FAAF          ; NFKC_SCF; 7D5B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAAF
+ FAB0          ; NFKC_SCF; 7DF4           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB0
+ FAB1          ; NFKC_SCF; 7F3E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB1
+ FAB2          ; NFKC_SCF; 8005           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB2
+ FAB3          ; NFKC_SCF; 8352           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB3
+ FAB4          ; NFKC_SCF; 83EF           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB4
+ FAB5          ; NFKC_SCF; 8779           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB5
+ FAB6          ; NFKC_SCF; 8941           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB6
+ FAB7          ; NFKC_SCF; 8986           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB7
+ FAB8          ; NFKC_SCF; 8996           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB8
+ FAB9          ; NFKC_SCF; 8ABF           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAB9
+ FABA          ; NFKC_SCF; 8AF8           # Lo       CJK COMPATIBILITY IDEOGRAPH-FABA
+ FABB          ; NFKC_SCF; 8ACB           # Lo       CJK COMPATIBILITY IDEOGRAPH-FABB
+ FABC          ; NFKC_SCF; 8B01           # Lo       CJK COMPATIBILITY IDEOGRAPH-FABC
+ FABD          ; NFKC_SCF; 8AFE           # Lo       CJK COMPATIBILITY IDEOGRAPH-FABD
+ FABE          ; NFKC_SCF; 8AED           # Lo       CJK COMPATIBILITY IDEOGRAPH-FABE
+ FABF          ; NFKC_SCF; 8B39           # Lo       CJK COMPATIBILITY IDEOGRAPH-FABF
+ FAC0          ; NFKC_SCF; 8B8A           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC0
+ FAC1          ; NFKC_SCF; 8D08           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC1
+ FAC2          ; NFKC_SCF; 8F38           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC2
+ FAC3          ; NFKC_SCF; 9072           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC3
+ FAC4          ; NFKC_SCF; 9199           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC4
+ FAC5          ; NFKC_SCF; 9276           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC5
+ FAC6          ; NFKC_SCF; 967C           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC6
+ FAC7          ; NFKC_SCF; 96E3           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC7
+ FAC8          ; NFKC_SCF; 9756           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC8
+ FAC9          ; NFKC_SCF; 97DB           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAC9
+ FACA          ; NFKC_SCF; 97FF           # Lo       CJK COMPATIBILITY IDEOGRAPH-FACA
+ FACB          ; NFKC_SCF; 980B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FACB
+ FACC          ; NFKC_SCF; 983B           # Lo       CJK COMPATIBILITY IDEOGRAPH-FACC
+ FACD          ; NFKC_SCF; 9B12           # Lo       CJK COMPATIBILITY IDEOGRAPH-FACD
+ FACE          ; NFKC_SCF; 9F9C           # Lo       CJK COMPATIBILITY IDEOGRAPH-FACE
+ FACF          ; NFKC_SCF; 2284A          # Lo       CJK COMPATIBILITY IDEOGRAPH-FACF
+ FAD0          ; NFKC_SCF; 22844          # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD0
+ FAD1          ; NFKC_SCF; 233D5          # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD1
+ FAD2          ; NFKC_SCF; 3B9D           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD2
+ FAD3          ; NFKC_SCF; 4018           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD3
+ FAD4          ; NFKC_SCF; 4039           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD4
+ FAD5          ; NFKC_SCF; 25249          # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD5
+ FAD6          ; NFKC_SCF; 25CD0          # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD6
+ FAD7          ; NFKC_SCF; 27ED3          # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD7
+ FAD8          ; NFKC_SCF; 9F43           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD8
+ FAD9          ; NFKC_SCF; 9F8E           # Lo       CJK COMPATIBILITY IDEOGRAPH-FAD9
+ FB00          ; NFKC_SCF; 0066 0066      # L&       LATIN SMALL LIGATURE FF
+ FB01          ; NFKC_SCF; 0066 0069      # L&       LATIN SMALL LIGATURE FI
+ FB02          ; NFKC_SCF; 0066 006C      # L&       LATIN SMALL LIGATURE FL
+ FB03          ; NFKC_SCF; 0066 0066 0069 # L&       LATIN SMALL LIGATURE FFI
+ FB04          ; NFKC_SCF; 0066 0066 006C # L&       LATIN SMALL LIGATURE FFL
+ FB05..FB06    ; NFKC_SCF; 0073 0074      # L&   [2] LATIN SMALL LIGATURE LONG S T..LATIN SMALL LIGATURE ST
+ FB13          ; NFKC_SCF; 0574 0576      # L&       ARMENIAN SMALL LIGATURE MEN NOW
+ FB14          ; NFKC_SCF; 0574 0565      # L&       ARMENIAN SMALL LIGATURE MEN ECH
+ FB15          ; NFKC_SCF; 0574 056B      # L&       ARMENIAN SMALL LIGATURE MEN INI
+ FB16          ; NFKC_SCF; 057E 0576      # L&       ARMENIAN SMALL LIGATURE VEW NOW
+ FB17          ; NFKC_SCF; 0574 056D      # L&       ARMENIAN SMALL LIGATURE MEN XEH
+ FB1D          ; NFKC_SCF; 05D9 05B4      # Lo       HEBREW LETTER YOD WITH HIRIQ
+ FB1F          ; NFKC_SCF; 05F2 05B7      # Lo       HEBREW LIGATURE YIDDISH YOD YOD PATAH
+ FB20          ; NFKC_SCF; 05E2           # Lo       HEBREW LETTER ALTERNATIVE AYIN
+ FB21          ; NFKC_SCF; 05D0           # Lo       HEBREW LETTER WIDE ALEF
+ FB22          ; NFKC_SCF; 05D3           # Lo       HEBREW LETTER WIDE DALET
+ FB23          ; NFKC_SCF; 05D4           # Lo       HEBREW LETTER WIDE HE
+ FB24          ; NFKC_SCF; 05DB           # Lo       HEBREW LETTER WIDE KAF
+ FB25          ; NFKC_SCF; 05DC           # Lo       HEBREW LETTER WIDE LAMED
+ FB26          ; NFKC_SCF; 05DD           # Lo       HEBREW LETTER WIDE FINAL MEM
+ FB27          ; NFKC_SCF; 05E8           # Lo       HEBREW LETTER WIDE RESH
+ FB28          ; NFKC_SCF; 05EA           # Lo       HEBREW LETTER WIDE TAV
+ FB29          ; NFKC_SCF; 002B           # Sm       HEBREW LETTER ALTERNATIVE PLUS SIGN
+ FB2A          ; NFKC_SCF; 05E9 05C1      # Lo       HEBREW LETTER SHIN WITH SHIN DOT
+ FB2B          ; NFKC_SCF; 05E9 05C2      # Lo       HEBREW LETTER SHIN WITH SIN DOT
+ FB2C          ; NFKC_SCF; 05E9 05BC 05C1 # Lo       HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+ FB2D          ; NFKC_SCF; 05E9 05BC 05C2 # Lo       HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+ FB2E          ; NFKC_SCF; 05D0 05B7      # Lo       HEBREW LETTER ALEF WITH PATAH
+ FB2F          ; NFKC_SCF; 05D0 05B8      # Lo       HEBREW LETTER ALEF WITH QAMATS
+ FB30          ; NFKC_SCF; 05D0 05BC      # Lo       HEBREW LETTER ALEF WITH MAPIQ
+ FB31          ; NFKC_SCF; 05D1 05BC      # Lo       HEBREW LETTER BET WITH DAGESH
+ FB32          ; NFKC_SCF; 05D2 05BC      # Lo       HEBREW LETTER GIMEL WITH DAGESH
+ FB33          ; NFKC_SCF; 05D3 05BC      # Lo       HEBREW LETTER DALET WITH DAGESH
+ FB34          ; NFKC_SCF; 05D4 05BC      # Lo       HEBREW LETTER HE WITH MAPIQ
+ FB35          ; NFKC_SCF; 05D5 05BC      # Lo       HEBREW LETTER VAV WITH DAGESH
+ FB36          ; NFKC_SCF; 05D6 05BC      # Lo       HEBREW LETTER ZAYIN WITH DAGESH
+ FB38          ; NFKC_SCF; 05D8 05BC      # Lo       HEBREW LETTER TET WITH DAGESH
+ FB39          ; NFKC_SCF; 05D9 05BC      # Lo       HEBREW LETTER YOD WITH DAGESH
+ FB3A          ; NFKC_SCF; 05DA 05BC      # Lo       HEBREW LETTER FINAL KAF WITH DAGESH
+ FB3B          ; NFKC_SCF; 05DB 05BC      # Lo       HEBREW LETTER KAF WITH DAGESH
+ FB3C          ; NFKC_SCF; 05DC 05BC      # Lo       HEBREW LETTER LAMED WITH DAGESH
+ FB3E          ; NFKC_SCF; 05DE 05BC      # Lo       HEBREW LETTER MEM WITH DAGESH
+ FB40          ; NFKC_SCF; 05E0 05BC      # Lo       HEBREW LETTER NUN WITH DAGESH
+ FB41          ; NFKC_SCF; 05E1 05BC      # Lo       HEBREW LETTER SAMEKH WITH DAGESH
+ FB43          ; NFKC_SCF; 05E3 05BC      # Lo       HEBREW LETTER FINAL PE WITH DAGESH
+ FB44          ; NFKC_SCF; 05E4 05BC      # Lo       HEBREW LETTER PE WITH DAGESH
+ FB46          ; NFKC_SCF; 05E6 05BC      # Lo       HEBREW LETTER TSADI WITH DAGESH
+ FB47          ; NFKC_SCF; 05E7 05BC      # Lo       HEBREW LETTER QOF WITH DAGESH
+ FB48          ; NFKC_SCF; 05E8 05BC      # Lo       HEBREW LETTER RESH WITH DAGESH
+ FB49          ; NFKC_SCF; 05E9 05BC      # Lo       HEBREW LETTER SHIN WITH DAGESH
+ FB4A          ; NFKC_SCF; 05EA 05BC      # Lo       HEBREW LETTER TAV WITH DAGESH
+ FB4B          ; NFKC_SCF; 05D5 05B9      # Lo       HEBREW LETTER VAV WITH HOLAM
+ FB4C          ; NFKC_SCF; 05D1 05BF      # Lo       HEBREW LETTER BET WITH RAFE
+ FB4D          ; NFKC_SCF; 05DB 05BF      # Lo       HEBREW LETTER KAF WITH RAFE
+ FB4E          ; NFKC_SCF; 05E4 05BF      # Lo       HEBREW LETTER PE WITH RAFE
+ FB4F          ; NFKC_SCF; 05D0 05DC      # Lo       HEBREW LIGATURE ALEF LAMED
+ FB50..FB51    ; NFKC_SCF; 0671           # Lo   [2] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER ALEF WASLA FINAL FORM
+ FB52..FB55    ; NFKC_SCF; 067B           # Lo   [4] ARABIC LETTER BEEH ISOLATED FORM..ARABIC LETTER BEEH MEDIAL FORM
+ FB56..FB59    ; NFKC_SCF; 067E           # Lo   [4] ARABIC LETTER PEH ISOLATED FORM..ARABIC LETTER PEH MEDIAL FORM
+ FB5A..FB5D    ; NFKC_SCF; 0680           # Lo   [4] ARABIC LETTER BEHEH ISOLATED FORM..ARABIC LETTER BEHEH MEDIAL FORM
+ FB5E..FB61    ; NFKC_SCF; 067A           # Lo   [4] ARABIC LETTER TTEHEH ISOLATED FORM..ARABIC LETTER TTEHEH MEDIAL FORM
+ FB62..FB65    ; NFKC_SCF; 067F           # Lo   [4] ARABIC LETTER TEHEH ISOLATED FORM..ARABIC LETTER TEHEH MEDIAL FORM
+ FB66..FB69    ; NFKC_SCF; 0679           # Lo   [4] ARABIC LETTER TTEH ISOLATED FORM..ARABIC LETTER TTEH MEDIAL FORM
+ FB6A..FB6D    ; NFKC_SCF; 06A4           # Lo   [4] ARABIC LETTER VEH ISOLATED FORM..ARABIC LETTER VEH MEDIAL FORM
+ FB6E..FB71    ; NFKC_SCF; 06A6           # Lo   [4] ARABIC LETTER PEHEH ISOLATED FORM..ARABIC LETTER PEHEH MEDIAL FORM
+ FB72..FB75    ; NFKC_SCF; 0684           # Lo   [4] ARABIC LETTER DYEH ISOLATED FORM..ARABIC LETTER DYEH MEDIAL FORM
+ FB76..FB79    ; NFKC_SCF; 0683           # Lo   [4] ARABIC LETTER NYEH ISOLATED FORM..ARABIC LETTER NYEH MEDIAL FORM
+ FB7A..FB7D    ; NFKC_SCF; 0686           # Lo   [4] ARABIC LETTER TCHEH ISOLATED FORM..ARABIC LETTER TCHEH MEDIAL FORM
+ FB7E..FB81    ; NFKC_SCF; 0687           # Lo   [4] ARABIC LETTER TCHEHEH ISOLATED FORM..ARABIC LETTER TCHEHEH MEDIAL FORM
+ FB82..FB83    ; NFKC_SCF; 068D           # Lo   [2] ARABIC LETTER DDAHAL ISOLATED FORM..ARABIC LETTER DDAHAL FINAL FORM
+ FB84..FB85    ; NFKC_SCF; 068C           # Lo   [2] ARABIC LETTER DAHAL ISOLATED FORM..ARABIC LETTER DAHAL FINAL FORM
+ FB86..FB87    ; NFKC_SCF; 068E           # Lo   [2] ARABIC LETTER DUL ISOLATED FORM..ARABIC LETTER DUL FINAL FORM
+ FB88..FB89    ; NFKC_SCF; 0688           # Lo   [2] ARABIC LETTER DDAL ISOLATED FORM..ARABIC LETTER DDAL FINAL FORM
+ FB8A..FB8B    ; NFKC_SCF; 0698           # Lo   [2] ARABIC LETTER JEH ISOLATED FORM..ARABIC LETTER JEH FINAL FORM
+ FB8C..FB8D    ; NFKC_SCF; 0691           # Lo   [2] ARABIC LETTER RREH ISOLATED FORM..ARABIC LETTER RREH FINAL FORM
+ FB8E..FB91    ; NFKC_SCF; 06A9           # Lo   [4] ARABIC LETTER KEHEH ISOLATED FORM..ARABIC LETTER KEHEH MEDIAL FORM
+ FB92..FB95    ; NFKC_SCF; 06AF           # Lo   [4] ARABIC LETTER GAF ISOLATED FORM..ARABIC LETTER GAF MEDIAL FORM
+ FB96..FB99    ; NFKC_SCF; 06B3           # Lo   [4] ARABIC LETTER GUEH ISOLATED FORM..ARABIC LETTER GUEH MEDIAL FORM
+ FB9A..FB9D    ; NFKC_SCF; 06B1           # Lo   [4] ARABIC LETTER NGOEH ISOLATED FORM..ARABIC LETTER NGOEH MEDIAL FORM
+ FB9E..FB9F    ; NFKC_SCF; 06BA           # Lo   [2] ARABIC LETTER NOON GHUNNA ISOLATED FORM..ARABIC LETTER NOON GHUNNA FINAL FORM
+ FBA0..FBA3    ; NFKC_SCF; 06BB           # Lo   [4] ARABIC LETTER RNOON ISOLATED FORM..ARABIC LETTER RNOON MEDIAL FORM
+ FBA4..FBA5    ; NFKC_SCF; 06C0           # Lo   [2] ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM..ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+ FBA6..FBA9    ; NFKC_SCF; 06C1           # Lo   [4] ARABIC LETTER HEH GOAL ISOLATED FORM..ARABIC LETTER HEH GOAL MEDIAL FORM
+ FBAA..FBAD    ; NFKC_SCF; 06BE           # Lo   [4] ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM..ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+ FBAE..FBAF    ; NFKC_SCF; 06D2           # Lo   [2] ARABIC LETTER YEH BARREE ISOLATED FORM..ARABIC LETTER YEH BARREE FINAL FORM
+ FBB0..FBB1    ; NFKC_SCF; 06D3           # Lo   [2] ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+ FBD3..FBD6    ; NFKC_SCF; 06AD           # Lo   [4] ARABIC LETTER NG ISOLATED FORM..ARABIC LETTER NG MEDIAL FORM
+ FBD7..FBD8    ; NFKC_SCF; 06C7           # Lo   [2] ARABIC LETTER U ISOLATED FORM..ARABIC LETTER U FINAL FORM
+ FBD9..FBDA    ; NFKC_SCF; 06C6           # Lo   [2] ARABIC LETTER OE ISOLATED FORM..ARABIC LETTER OE FINAL FORM
+ FBDB..FBDC    ; NFKC_SCF; 06C8           # Lo   [2] ARABIC LETTER YU ISOLATED FORM..ARABIC LETTER YU FINAL FORM
+ FBDD          ; NFKC_SCF; 06C7 0674      # Lo       ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+ FBDE..FBDF    ; NFKC_SCF; 06CB           # Lo   [2] ARABIC LETTER VE ISOLATED FORM..ARABIC LETTER VE FINAL FORM
+ FBE0..FBE1    ; NFKC_SCF; 06C5           # Lo   [2] ARABIC LETTER KIRGHIZ OE ISOLATED FORM..ARABIC LETTER KIRGHIZ OE FINAL FORM
+ FBE2..FBE3    ; NFKC_SCF; 06C9           # Lo   [2] ARABIC LETTER KIRGHIZ YU ISOLATED FORM..ARABIC LETTER KIRGHIZ YU FINAL FORM
+ FBE4..FBE7    ; NFKC_SCF; 06D0           # Lo   [4] ARABIC LETTER E ISOLATED FORM..ARABIC LETTER E MEDIAL FORM
+ FBE8..FBE9    ; NFKC_SCF; 0649           # Lo   [2] ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM..ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+ FBEA..FBEB    ; NFKC_SCF; 0626 0627      # Lo   [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+ FBEC..FBED    ; NFKC_SCF; 0626 06D5      # Lo   [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+ FBEE..FBEF    ; NFKC_SCF; 0626 0648      # Lo   [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+ FBF0..FBF1    ; NFKC_SCF; 0626 06C7      # Lo   [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+ FBF2..FBF3    ; NFKC_SCF; 0626 06C6      # Lo   [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+ FBF4..FBF5    ; NFKC_SCF; 0626 06C8      # Lo   [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+ FBF6..FBF8    ; NFKC_SCF; 0626 06D0      # Lo   [3] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+ FBF9..FBFB    ; NFKC_SCF; 0626 0649      # Lo   [3] ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM..ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+ FBFC..FBFF    ; NFKC_SCF; 06CC           # Lo   [4] ARABIC LETTER FARSI YEH ISOLATED FORM..ARABIC LETTER FARSI YEH MEDIAL FORM
+ FC00          ; NFKC_SCF; 0626 062C      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+ FC01          ; NFKC_SCF; 0626 062D      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+ FC02          ; NFKC_SCF; 0626 0645      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+ FC03          ; NFKC_SCF; 0626 0649      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+ FC04          ; NFKC_SCF; 0626 064A      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+ FC05          ; NFKC_SCF; 0628 062C      # Lo       ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+ FC06          ; NFKC_SCF; 0628 062D      # Lo       ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+ FC07          ; NFKC_SCF; 0628 062E      # Lo       ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+ FC08          ; NFKC_SCF; 0628 0645      # Lo       ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+ FC09          ; NFKC_SCF; 0628 0649      # Lo       ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+ FC0A          ; NFKC_SCF; 0628 064A      # Lo       ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+ FC0B          ; NFKC_SCF; 062A 062C      # Lo       ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+ FC0C          ; NFKC_SCF; 062A 062D      # Lo       ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+ FC0D          ; NFKC_SCF; 062A 062E      # Lo       ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+ FC0E          ; NFKC_SCF; 062A 0645      # Lo       ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+ FC0F          ; NFKC_SCF; 062A 0649      # Lo       ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+ FC10          ; NFKC_SCF; 062A 064A      # Lo       ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+ FC11          ; NFKC_SCF; 062B 062C      # Lo       ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+ FC12          ; NFKC_SCF; 062B 0645      # Lo       ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+ FC13          ; NFKC_SCF; 062B 0649      # Lo       ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+ FC14          ; NFKC_SCF; 062B 064A      # Lo       ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+ FC15          ; NFKC_SCF; 062C 062D      # Lo       ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+ FC16          ; NFKC_SCF; 062C 0645      # Lo       ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+ FC17          ; NFKC_SCF; 062D 062C      # Lo       ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+ FC18          ; NFKC_SCF; 062D 0645      # Lo       ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+ FC19          ; NFKC_SCF; 062E 062C      # Lo       ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+ FC1A          ; NFKC_SCF; 062E 062D      # Lo       ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+ FC1B          ; NFKC_SCF; 062E 0645      # Lo       ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+ FC1C          ; NFKC_SCF; 0633 062C      # Lo       ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+ FC1D          ; NFKC_SCF; 0633 062D      # Lo       ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+ FC1E          ; NFKC_SCF; 0633 062E      # Lo       ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+ FC1F          ; NFKC_SCF; 0633 0645      # Lo       ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+ FC20          ; NFKC_SCF; 0635 062D      # Lo       ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+ FC21          ; NFKC_SCF; 0635 0645      # Lo       ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+ FC22          ; NFKC_SCF; 0636 062C      # Lo       ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+ FC23          ; NFKC_SCF; 0636 062D      # Lo       ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+ FC24          ; NFKC_SCF; 0636 062E      # Lo       ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+ FC25          ; NFKC_SCF; 0636 0645      # Lo       ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+ FC26          ; NFKC_SCF; 0637 062D      # Lo       ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+ FC27          ; NFKC_SCF; 0637 0645      # Lo       ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+ FC28          ; NFKC_SCF; 0638 0645      # Lo       ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+ FC29          ; NFKC_SCF; 0639 062C      # Lo       ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+ FC2A          ; NFKC_SCF; 0639 0645      # Lo       ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+ FC2B          ; NFKC_SCF; 063A 062C      # Lo       ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+ FC2C          ; NFKC_SCF; 063A 0645      # Lo       ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+ FC2D          ; NFKC_SCF; 0641 062C      # Lo       ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+ FC2E          ; NFKC_SCF; 0641 062D      # Lo       ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+ FC2F          ; NFKC_SCF; 0641 062E      # Lo       ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+ FC30          ; NFKC_SCF; 0641 0645      # Lo       ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+ FC31          ; NFKC_SCF; 0641 0649      # Lo       ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+ FC32          ; NFKC_SCF; 0641 064A      # Lo       ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+ FC33          ; NFKC_SCF; 0642 062D      # Lo       ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+ FC34          ; NFKC_SCF; 0642 0645      # Lo       ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+ FC35          ; NFKC_SCF; 0642 0649      # Lo       ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+ FC36          ; NFKC_SCF; 0642 064A      # Lo       ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+ FC37          ; NFKC_SCF; 0643 0627      # Lo       ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+ FC38          ; NFKC_SCF; 0643 062C      # Lo       ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+ FC39          ; NFKC_SCF; 0643 062D      # Lo       ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+ FC3A          ; NFKC_SCF; 0643 062E      # Lo       ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+ FC3B          ; NFKC_SCF; 0643 0644      # Lo       ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+ FC3C          ; NFKC_SCF; 0643 0645      # Lo       ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+ FC3D          ; NFKC_SCF; 0643 0649      # Lo       ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+ FC3E          ; NFKC_SCF; 0643 064A      # Lo       ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+ FC3F          ; NFKC_SCF; 0644 062C      # Lo       ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+ FC40          ; NFKC_SCF; 0644 062D      # Lo       ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+ FC41          ; NFKC_SCF; 0644 062E      # Lo       ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+ FC42          ; NFKC_SCF; 0644 0645      # Lo       ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+ FC43          ; NFKC_SCF; 0644 0649      # Lo       ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+ FC44          ; NFKC_SCF; 0644 064A      # Lo       ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+ FC45          ; NFKC_SCF; 0645 062C      # Lo       ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+ FC46          ; NFKC_SCF; 0645 062D      # Lo       ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+ FC47          ; NFKC_SCF; 0645 062E      # Lo       ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+ FC48          ; NFKC_SCF; 0645 0645      # Lo       ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+ FC49          ; NFKC_SCF; 0645 0649      # Lo       ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+ FC4A          ; NFKC_SCF; 0645 064A      # Lo       ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+ FC4B          ; NFKC_SCF; 0646 062C      # Lo       ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+ FC4C          ; NFKC_SCF; 0646 062D      # Lo       ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+ FC4D          ; NFKC_SCF; 0646 062E      # Lo       ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+ FC4E          ; NFKC_SCF; 0646 0645      # Lo       ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+ FC4F          ; NFKC_SCF; 0646 0649      # Lo       ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+ FC50          ; NFKC_SCF; 0646 064A      # Lo       ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+ FC51          ; NFKC_SCF; 0647 062C      # Lo       ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+ FC52          ; NFKC_SCF; 0647 0645      # Lo       ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+ FC53          ; NFKC_SCF; 0647 0649      # Lo       ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+ FC54          ; NFKC_SCF; 0647 064A      # Lo       ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+ FC55          ; NFKC_SCF; 064A 062C      # Lo       ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+ FC56          ; NFKC_SCF; 064A 062D      # Lo       ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+ FC57          ; NFKC_SCF; 064A 062E      # Lo       ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+ FC58          ; NFKC_SCF; 064A 0645      # Lo       ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+ FC59          ; NFKC_SCF; 064A 0649      # Lo       ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+ FC5A          ; NFKC_SCF; 064A 064A      # Lo       ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+ FC5B          ; NFKC_SCF; 0630 0670      # Lo       ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+ FC5C          ; NFKC_SCF; 0631 0670      # Lo       ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+ FC5D          ; NFKC_SCF; 0649 0670      # Lo       ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+ FC5E          ; NFKC_SCF; 0020 064C 0651 # Lo       ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
+ FC5F          ; NFKC_SCF; 0020 064D 0651 # Lo       ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
+ FC60          ; NFKC_SCF; 0020 064E 0651 # Lo       ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
+ FC61          ; NFKC_SCF; 0020 064F 0651 # Lo       ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
+ FC62          ; NFKC_SCF; 0020 0650 0651 # Lo       ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
+ FC63          ; NFKC_SCF; 0020 0651 0670 # Lo       ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+ FC64          ; NFKC_SCF; 0626 0631      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+ FC65          ; NFKC_SCF; 0626 0632      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+ FC66          ; NFKC_SCF; 0626 0645      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+ FC67          ; NFKC_SCF; 0626 0646      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+ FC68          ; NFKC_SCF; 0626 0649      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+ FC69          ; NFKC_SCF; 0626 064A      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+ FC6A          ; NFKC_SCF; 0628 0631      # Lo       ARABIC LIGATURE BEH WITH REH FINAL FORM
+ FC6B          ; NFKC_SCF; 0628 0632      # Lo       ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+ FC6C          ; NFKC_SCF; 0628 0645      # Lo       ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+ FC6D          ; NFKC_SCF; 0628 0646      # Lo       ARABIC LIGATURE BEH WITH NOON FINAL FORM
+ FC6E          ; NFKC_SCF; 0628 0649      # Lo       ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+ FC6F          ; NFKC_SCF; 0628 064A      # Lo       ARABIC LIGATURE BEH WITH YEH FINAL FORM
+ FC70          ; NFKC_SCF; 062A 0631      # Lo       ARABIC LIGATURE TEH WITH REH FINAL FORM
+ FC71          ; NFKC_SCF; 062A 0632      # Lo       ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+ FC72          ; NFKC_SCF; 062A 0645      # Lo       ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+ FC73          ; NFKC_SCF; 062A 0646      # Lo       ARABIC LIGATURE TEH WITH NOON FINAL FORM
+ FC74          ; NFKC_SCF; 062A 0649      # Lo       ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+ FC75          ; NFKC_SCF; 062A 064A      # Lo       ARABIC LIGATURE TEH WITH YEH FINAL FORM
+ FC76          ; NFKC_SCF; 062B 0631      # Lo       ARABIC LIGATURE THEH WITH REH FINAL FORM
+ FC77          ; NFKC_SCF; 062B 0632      # Lo       ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+ FC78          ; NFKC_SCF; 062B 0645      # Lo       ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+ FC79          ; NFKC_SCF; 062B 0646      # Lo       ARABIC LIGATURE THEH WITH NOON FINAL FORM
+ FC7A          ; NFKC_SCF; 062B 0649      # Lo       ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+ FC7B          ; NFKC_SCF; 062B 064A      # Lo       ARABIC LIGATURE THEH WITH YEH FINAL FORM
+ FC7C          ; NFKC_SCF; 0641 0649      # Lo       ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+ FC7D          ; NFKC_SCF; 0641 064A      # Lo       ARABIC LIGATURE FEH WITH YEH FINAL FORM
+ FC7E          ; NFKC_SCF; 0642 0649      # Lo       ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+ FC7F          ; NFKC_SCF; 0642 064A      # Lo       ARABIC LIGATURE QAF WITH YEH FINAL FORM
+ FC80          ; NFKC_SCF; 0643 0627      # Lo       ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+ FC81          ; NFKC_SCF; 0643 0644      # Lo       ARABIC LIGATURE KAF WITH LAM FINAL FORM
+ FC82          ; NFKC_SCF; 0643 0645      # Lo       ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+ FC83          ; NFKC_SCF; 0643 0649      # Lo       ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+ FC84          ; NFKC_SCF; 0643 064A      # Lo       ARABIC LIGATURE KAF WITH YEH FINAL FORM
+ FC85          ; NFKC_SCF; 0644 0645      # Lo       ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+ FC86          ; NFKC_SCF; 0644 0649      # Lo       ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+ FC87          ; NFKC_SCF; 0644 064A      # Lo       ARABIC LIGATURE LAM WITH YEH FINAL FORM
+ FC88          ; NFKC_SCF; 0645 0627      # Lo       ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+ FC89          ; NFKC_SCF; 0645 0645      # Lo       ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+ FC8A          ; NFKC_SCF; 0646 0631      # Lo       ARABIC LIGATURE NOON WITH REH FINAL FORM
+ FC8B          ; NFKC_SCF; 0646 0632      # Lo       ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+ FC8C          ; NFKC_SCF; 0646 0645      # Lo       ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+ FC8D          ; NFKC_SCF; 0646 0646      # Lo       ARABIC LIGATURE NOON WITH NOON FINAL FORM
+ FC8E          ; NFKC_SCF; 0646 0649      # Lo       ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+ FC8F          ; NFKC_SCF; 0646 064A      # Lo       ARABIC LIGATURE NOON WITH YEH FINAL FORM
+ FC90          ; NFKC_SCF; 0649 0670      # Lo       ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+ FC91          ; NFKC_SCF; 064A 0631      # Lo       ARABIC LIGATURE YEH WITH REH FINAL FORM
+ FC92          ; NFKC_SCF; 064A 0632      # Lo       ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+ FC93          ; NFKC_SCF; 064A 0645      # Lo       ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+ FC94          ; NFKC_SCF; 064A 0646      # Lo       ARABIC LIGATURE YEH WITH NOON FINAL FORM
+ FC95          ; NFKC_SCF; 064A 0649      # Lo       ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+ FC96          ; NFKC_SCF; 064A 064A      # Lo       ARABIC LIGATURE YEH WITH YEH FINAL FORM
+ FC97          ; NFKC_SCF; 0626 062C      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+ FC98          ; NFKC_SCF; 0626 062D      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+ FC99          ; NFKC_SCF; 0626 062E      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+ FC9A          ; NFKC_SCF; 0626 0645      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+ FC9B          ; NFKC_SCF; 0626 0647      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+ FC9C          ; NFKC_SCF; 0628 062C      # Lo       ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+ FC9D          ; NFKC_SCF; 0628 062D      # Lo       ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+ FC9E          ; NFKC_SCF; 0628 062E      # Lo       ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+ FC9F          ; NFKC_SCF; 0628 0645      # Lo       ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+ FCA0          ; NFKC_SCF; 0628 0647      # Lo       ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+ FCA1          ; NFKC_SCF; 062A 062C      # Lo       ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+ FCA2          ; NFKC_SCF; 062A 062D      # Lo       ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+ FCA3          ; NFKC_SCF; 062A 062E      # Lo       ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+ FCA4          ; NFKC_SCF; 062A 0645      # Lo       ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+ FCA5          ; NFKC_SCF; 062A 0647      # Lo       ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+ FCA6          ; NFKC_SCF; 062B 0645      # Lo       ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+ FCA7          ; NFKC_SCF; 062C 062D      # Lo       ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+ FCA8          ; NFKC_SCF; 062C 0645      # Lo       ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+ FCA9          ; NFKC_SCF; 062D 062C      # Lo       ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+ FCAA          ; NFKC_SCF; 062D 0645      # Lo       ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+ FCAB          ; NFKC_SCF; 062E 062C      # Lo       ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+ FCAC          ; NFKC_SCF; 062E 0645      # Lo       ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+ FCAD          ; NFKC_SCF; 0633 062C      # Lo       ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+ FCAE          ; NFKC_SCF; 0633 062D      # Lo       ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+ FCAF          ; NFKC_SCF; 0633 062E      # Lo       ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+ FCB0          ; NFKC_SCF; 0633 0645      # Lo       ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+ FCB1          ; NFKC_SCF; 0635 062D      # Lo       ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+ FCB2          ; NFKC_SCF; 0635 062E      # Lo       ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+ FCB3          ; NFKC_SCF; 0635 0645      # Lo       ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+ FCB4          ; NFKC_SCF; 0636 062C      # Lo       ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+ FCB5          ; NFKC_SCF; 0636 062D      # Lo       ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+ FCB6          ; NFKC_SCF; 0636 062E      # Lo       ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+ FCB7          ; NFKC_SCF; 0636 0645      # Lo       ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+ FCB8          ; NFKC_SCF; 0637 062D      # Lo       ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+ FCB9          ; NFKC_SCF; 0638 0645      # Lo       ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+ FCBA          ; NFKC_SCF; 0639 062C      # Lo       ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+ FCBB          ; NFKC_SCF; 0639 0645      # Lo       ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+ FCBC          ; NFKC_SCF; 063A 062C      # Lo       ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+ FCBD          ; NFKC_SCF; 063A 0645      # Lo       ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+ FCBE          ; NFKC_SCF; 0641 062C      # Lo       ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+ FCBF          ; NFKC_SCF; 0641 062D      # Lo       ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+ FCC0          ; NFKC_SCF; 0641 062E      # Lo       ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+ FCC1          ; NFKC_SCF; 0641 0645      # Lo       ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+ FCC2          ; NFKC_SCF; 0642 062D      # Lo       ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+ FCC3          ; NFKC_SCF; 0642 0645      # Lo       ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+ FCC4          ; NFKC_SCF; 0643 062C      # Lo       ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+ FCC5          ; NFKC_SCF; 0643 062D      # Lo       ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+ FCC6          ; NFKC_SCF; 0643 062E      # Lo       ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+ FCC7          ; NFKC_SCF; 0643 0644      # Lo       ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+ FCC8          ; NFKC_SCF; 0643 0645      # Lo       ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+ FCC9          ; NFKC_SCF; 0644 062C      # Lo       ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+ FCCA          ; NFKC_SCF; 0644 062D      # Lo       ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+ FCCB          ; NFKC_SCF; 0644 062E      # Lo       ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+ FCCC          ; NFKC_SCF; 0644 0645      # Lo       ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+ FCCD          ; NFKC_SCF; 0644 0647      # Lo       ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+ FCCE          ; NFKC_SCF; 0645 062C      # Lo       ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+ FCCF          ; NFKC_SCF; 0645 062D      # Lo       ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+ FCD0          ; NFKC_SCF; 0645 062E      # Lo       ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+ FCD1          ; NFKC_SCF; 0645 0645      # Lo       ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+ FCD2          ; NFKC_SCF; 0646 062C      # Lo       ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+ FCD3          ; NFKC_SCF; 0646 062D      # Lo       ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+ FCD4          ; NFKC_SCF; 0646 062E      # Lo       ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+ FCD5          ; NFKC_SCF; 0646 0645      # Lo       ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+ FCD6          ; NFKC_SCF; 0646 0647      # Lo       ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+ FCD7          ; NFKC_SCF; 0647 062C      # Lo       ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+ FCD8          ; NFKC_SCF; 0647 0645      # Lo       ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+ FCD9          ; NFKC_SCF; 0647 0670      # Lo       ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+ FCDA          ; NFKC_SCF; 064A 062C      # Lo       ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+ FCDB          ; NFKC_SCF; 064A 062D      # Lo       ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+ FCDC          ; NFKC_SCF; 064A 062E      # Lo       ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+ FCDD          ; NFKC_SCF; 064A 0645      # Lo       ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+ FCDE          ; NFKC_SCF; 064A 0647      # Lo       ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+ FCDF          ; NFKC_SCF; 0626 0645      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+ FCE0          ; NFKC_SCF; 0626 0647      # Lo       ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+ FCE1          ; NFKC_SCF; 0628 0645      # Lo       ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+ FCE2          ; NFKC_SCF; 0628 0647      # Lo       ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+ FCE3          ; NFKC_SCF; 062A 0645      # Lo       ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+ FCE4          ; NFKC_SCF; 062A 0647      # Lo       ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+ FCE5          ; NFKC_SCF; 062B 0645      # Lo       ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+ FCE6          ; NFKC_SCF; 062B 0647      # Lo       ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+ FCE7          ; NFKC_SCF; 0633 0645      # Lo       ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+ FCE8          ; NFKC_SCF; 0633 0647      # Lo       ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+ FCE9          ; NFKC_SCF; 0634 0645      # Lo       ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+ FCEA          ; NFKC_SCF; 0634 0647      # Lo       ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+ FCEB          ; NFKC_SCF; 0643 0644      # Lo       ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+ FCEC          ; NFKC_SCF; 0643 0645      # Lo       ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+ FCED          ; NFKC_SCF; 0644 0645      # Lo       ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+ FCEE          ; NFKC_SCF; 0646 0645      # Lo       ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+ FCEF          ; NFKC_SCF; 0646 0647      # Lo       ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+ FCF0          ; NFKC_SCF; 064A 0645      # Lo       ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+ FCF1          ; NFKC_SCF; 064A 0647      # Lo       ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+ FCF2          ; NFKC_SCF; 0640 064E 0651 # Lo       ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
+ FCF3          ; NFKC_SCF; 0640 064F 0651 # Lo       ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
+ FCF4          ; NFKC_SCF; 0640 0650 0651 # Lo       ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
+ FCF5          ; NFKC_SCF; 0637 0649      # Lo       ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+ FCF6          ; NFKC_SCF; 0637 064A      # Lo       ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+ FCF7          ; NFKC_SCF; 0639 0649      # Lo       ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+ FCF8          ; NFKC_SCF; 0639 064A      # Lo       ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+ FCF9          ; NFKC_SCF; 063A 0649      # Lo       ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+ FCFA          ; NFKC_SCF; 063A 064A      # Lo       ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+ FCFB          ; NFKC_SCF; 0633 0649      # Lo       ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+ FCFC          ; NFKC_SCF; 0633 064A      # Lo       ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+ FCFD          ; NFKC_SCF; 0634 0649      # Lo       ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+ FCFE          ; NFKC_SCF; 0634 064A      # Lo       ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+ FCFF          ; NFKC_SCF; 062D 0649      # Lo       ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+ FD00          ; NFKC_SCF; 062D 064A      # Lo       ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+ FD01          ; NFKC_SCF; 062C 0649      # Lo       ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+ FD02          ; NFKC_SCF; 062C 064A      # Lo       ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+ FD03          ; NFKC_SCF; 062E 0649      # Lo       ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+ FD04          ; NFKC_SCF; 062E 064A      # Lo       ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+ FD05          ; NFKC_SCF; 0635 0649      # Lo       ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+ FD06          ; NFKC_SCF; 0635 064A      # Lo       ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+ FD07          ; NFKC_SCF; 0636 0649      # Lo       ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+ FD08          ; NFKC_SCF; 0636 064A      # Lo       ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+ FD09          ; NFKC_SCF; 0634 062C      # Lo       ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+ FD0A          ; NFKC_SCF; 0634 062D      # Lo       ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+ FD0B          ; NFKC_SCF; 0634 062E      # Lo       ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+ FD0C          ; NFKC_SCF; 0634 0645      # Lo       ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+ FD0D          ; NFKC_SCF; 0634 0631      # Lo       ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+ FD0E          ; NFKC_SCF; 0633 0631      # Lo       ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+ FD0F          ; NFKC_SCF; 0635 0631      # Lo       ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+ FD10          ; NFKC_SCF; 0636 0631      # Lo       ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+ FD11          ; NFKC_SCF; 0637 0649      # Lo       ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+ FD12          ; NFKC_SCF; 0637 064A      # Lo       ARABIC LIGATURE TAH WITH YEH FINAL FORM
+ FD13          ; NFKC_SCF; 0639 0649      # Lo       ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+ FD14          ; NFKC_SCF; 0639 064A      # Lo       ARABIC LIGATURE AIN WITH YEH FINAL FORM
+ FD15          ; NFKC_SCF; 063A 0649      # Lo       ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+ FD16          ; NFKC_SCF; 063A 064A      # Lo       ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+ FD17          ; NFKC_SCF; 0633 0649      # Lo       ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+ FD18          ; NFKC_SCF; 0633 064A      # Lo       ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+ FD19          ; NFKC_SCF; 0634 0649      # Lo       ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+ FD1A          ; NFKC_SCF; 0634 064A      # Lo       ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+ FD1B          ; NFKC_SCF; 062D 0649      # Lo       ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+ FD1C          ; NFKC_SCF; 062D 064A      # Lo       ARABIC LIGATURE HAH WITH YEH FINAL FORM
+ FD1D          ; NFKC_SCF; 062C 0649      # Lo       ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+ FD1E          ; NFKC_SCF; 062C 064A      # Lo       ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+ FD1F          ; NFKC_SCF; 062E 0649      # Lo       ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+ FD20          ; NFKC_SCF; 062E 064A      # Lo       ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+ FD21          ; NFKC_SCF; 0635 0649      # Lo       ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+ FD22          ; NFKC_SCF; 0635 064A      # Lo       ARABIC LIGATURE SAD WITH YEH FINAL FORM
+ FD23          ; NFKC_SCF; 0636 0649      # Lo       ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+ FD24          ; NFKC_SCF; 0636 064A      # Lo       ARABIC LIGATURE DAD WITH YEH FINAL FORM
+ FD25          ; NFKC_SCF; 0634 062C      # Lo       ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+ FD26          ; NFKC_SCF; 0634 062D      # Lo       ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+ FD27          ; NFKC_SCF; 0634 062E      # Lo       ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+ FD28          ; NFKC_SCF; 0634 0645      # Lo       ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+ FD29          ; NFKC_SCF; 0634 0631      # Lo       ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+ FD2A          ; NFKC_SCF; 0633 0631      # Lo       ARABIC LIGATURE SEEN WITH REH FINAL FORM
+ FD2B          ; NFKC_SCF; 0635 0631      # Lo       ARABIC LIGATURE SAD WITH REH FINAL FORM
+ FD2C          ; NFKC_SCF; 0636 0631      # Lo       ARABIC LIGATURE DAD WITH REH FINAL FORM
+ FD2D          ; NFKC_SCF; 0634 062C      # Lo       ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+ FD2E          ; NFKC_SCF; 0634 062D      # Lo       ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+ FD2F          ; NFKC_SCF; 0634 062E      # Lo       ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+ FD30          ; NFKC_SCF; 0634 0645      # Lo       ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+ FD31          ; NFKC_SCF; 0633 0647      # Lo       ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+ FD32          ; NFKC_SCF; 0634 0647      # Lo       ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+ FD33          ; NFKC_SCF; 0637 0645      # Lo       ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+ FD34          ; NFKC_SCF; 0633 062C      # Lo       ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+ FD35          ; NFKC_SCF; 0633 062D      # Lo       ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+ FD36          ; NFKC_SCF; 0633 062E      # Lo       ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+ FD37          ; NFKC_SCF; 0634 062C      # Lo       ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+ FD38          ; NFKC_SCF; 0634 062D      # Lo       ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+ FD39          ; NFKC_SCF; 0634 062E      # Lo       ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+ FD3A          ; NFKC_SCF; 0637 0645      # Lo       ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+ FD3B          ; NFKC_SCF; 0638 0645      # Lo       ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+ FD3C..FD3D    ; NFKC_SCF; 0627 064B      # Lo   [2] ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+ FD50          ; NFKC_SCF; 062A 062C 0645 # Lo       ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+ FD51..FD52    ; NFKC_SCF; 062A 062D 062C # Lo   [2] ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM..ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+ FD53          ; NFKC_SCF; 062A 062D 0645 # Lo       ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+ FD54          ; NFKC_SCF; 062A 062E 0645 # Lo       ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+ FD55          ; NFKC_SCF; 062A 0645 062C # Lo       ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+ FD56          ; NFKC_SCF; 062A 0645 062D # Lo       ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+ FD57          ; NFKC_SCF; 062A 0645 062E # Lo       ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+ FD58..FD59    ; NFKC_SCF; 062C 0645 062D # Lo   [2] ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+ FD5A          ; NFKC_SCF; 062D 0645 064A # Lo       ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+ FD5B          ; NFKC_SCF; 062D 0645 0649 # Lo       ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+ FD5C          ; NFKC_SCF; 0633 062D 062C # Lo       ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+ FD5D          ; NFKC_SCF; 0633 062C 062D # Lo       ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+ FD5E          ; NFKC_SCF; 0633 062C 0649 # Lo       ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+ FD5F..FD60    ; NFKC_SCF; 0633 0645 062D # Lo   [2] ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+ FD61          ; NFKC_SCF; 0633 0645 062C # Lo       ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+ FD62..FD63    ; NFKC_SCF; 0633 0645 0645 # Lo   [2] ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+ FD64..FD65    ; NFKC_SCF; 0635 062D 062D # Lo   [2] ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM..ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+ FD66          ; NFKC_SCF; 0635 0645 0645 # Lo       ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+ FD67..FD68    ; NFKC_SCF; 0634 062D 0645 # Lo   [2] ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+ FD69          ; NFKC_SCF; 0634 062C 064A # Lo       ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+ FD6A..FD6B    ; NFKC_SCF; 0634 0645 062E # Lo   [2] ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+ FD6C..FD6D    ; NFKC_SCF; 0634 0645 0645 # Lo   [2] ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+ FD6E          ; NFKC_SCF; 0636 062D 0649 # Lo       ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+ FD6F..FD70    ; NFKC_SCF; 0636 062E 0645 # Lo   [2] ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+ FD71..FD72    ; NFKC_SCF; 0637 0645 062D # Lo   [2] ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+ FD73          ; NFKC_SCF; 0637 0645 0645 # Lo       ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+ FD74          ; NFKC_SCF; 0637 0645 064A # Lo       ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+ FD75          ; NFKC_SCF; 0639 062C 0645 # Lo       ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+ FD76..FD77    ; NFKC_SCF; 0639 0645 0645 # Lo   [2] ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+ FD78          ; NFKC_SCF; 0639 0645 0649 # Lo       ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+ FD79          ; NFKC_SCF; 063A 0645 0645 # Lo       ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+ FD7A          ; NFKC_SCF; 063A 0645 064A # Lo       ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+ FD7B          ; NFKC_SCF; 063A 0645 0649 # Lo       ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+ FD7C..FD7D    ; NFKC_SCF; 0641 062E 0645 # Lo   [2] ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+ FD7E          ; NFKC_SCF; 0642 0645 062D # Lo       ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+ FD7F          ; NFKC_SCF; 0642 0645 0645 # Lo       ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+ FD80          ; NFKC_SCF; 0644 062D 0645 # Lo       ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+ FD81          ; NFKC_SCF; 0644 062D 064A # Lo       ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+ FD82          ; NFKC_SCF; 0644 062D 0649 # Lo       ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+ FD83..FD84    ; NFKC_SCF; 0644 062C 062C # Lo   [2] ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM..ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+ FD85..FD86    ; NFKC_SCF; 0644 062E 0645 # Lo   [2] ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+ FD87..FD88    ; NFKC_SCF; 0644 0645 062D # Lo   [2] ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+ FD89          ; NFKC_SCF; 0645 062D 062C # Lo       ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+ FD8A          ; NFKC_SCF; 0645 062D 0645 # Lo       ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+ FD8B          ; NFKC_SCF; 0645 062D 064A # Lo       ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+ FD8C          ; NFKC_SCF; 0645 062C 062D # Lo       ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+ FD8D          ; NFKC_SCF; 0645 062C 0645 # Lo       ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+ FD8E          ; NFKC_SCF; 0645 062E 062C # Lo       ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+ FD8F          ; NFKC_SCF; 0645 062E 0645 # Lo       ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+ FD92          ; NFKC_SCF; 0645 062C 062E # Lo       ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+ FD93          ; NFKC_SCF; 0647 0645 062C # Lo       ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+ FD94          ; NFKC_SCF; 0647 0645 0645 # Lo       ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+ FD95          ; NFKC_SCF; 0646 062D 0645 # Lo       ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+ FD96          ; NFKC_SCF; 0646 062D 0649 # Lo       ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+ FD97..FD98    ; NFKC_SCF; 0646 062C 0645 # Lo   [2] ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+ FD99          ; NFKC_SCF; 0646 062C 0649 # Lo       ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+ FD9A          ; NFKC_SCF; 0646 0645 064A # Lo       ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+ FD9B          ; NFKC_SCF; 0646 0645 0649 # Lo       ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+ FD9C..FD9D    ; NFKC_SCF; 064A 0645 0645 # Lo   [2] ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+ FD9E          ; NFKC_SCF; 0628 062E 064A # Lo       ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+ FD9F          ; NFKC_SCF; 062A 062C 064A # Lo       ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+ FDA0          ; NFKC_SCF; 062A 062C 0649 # Lo       ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+ FDA1          ; NFKC_SCF; 062A 062E 064A # Lo       ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+ FDA2          ; NFKC_SCF; 062A 062E 0649 # Lo       ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+ FDA3          ; NFKC_SCF; 062A 0645 064A # Lo       ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+ FDA4          ; NFKC_SCF; 062A 0645 0649 # Lo       ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+ FDA5          ; NFKC_SCF; 062C 0645 064A # Lo       ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+ FDA6          ; NFKC_SCF; 062C 062D 0649 # Lo       ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+ FDA7          ; NFKC_SCF; 062C 0645 0649 # Lo       ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+ FDA8          ; NFKC_SCF; 0633 062E 0649 # Lo       ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+ FDA9          ; NFKC_SCF; 0635 062D 064A # Lo       ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+ FDAA          ; NFKC_SCF; 0634 062D 064A # Lo       ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+ FDAB          ; NFKC_SCF; 0636 062D 064A # Lo       ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+ FDAC          ; NFKC_SCF; 0644 062C 064A # Lo       ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+ FDAD          ; NFKC_SCF; 0644 0645 064A # Lo       ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+ FDAE          ; NFKC_SCF; 064A 062D 064A # Lo       ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+ FDAF          ; NFKC_SCF; 064A 062C 064A # Lo       ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+ FDB0          ; NFKC_SCF; 064A 0645 064A # Lo       ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+ FDB1          ; NFKC_SCF; 0645 0645 064A # Lo       ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+ FDB2          ; NFKC_SCF; 0642 0645 064A # Lo       ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+ FDB3          ; NFKC_SCF; 0646 062D 064A # Lo       ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+ FDB4          ; NFKC_SCF; 0642 0645 062D # Lo       ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+ FDB5          ; NFKC_SCF; 0644 062D 0645 # Lo       ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+ FDB6          ; NFKC_SCF; 0639 0645 064A # Lo       ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+ FDB7          ; NFKC_SCF; 0643 0645 064A # Lo       ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+ FDB8          ; NFKC_SCF; 0646 062C 062D # Lo       ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+ FDB9          ; NFKC_SCF; 0645 062E 064A # Lo       ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+ FDBA          ; NFKC_SCF; 0644 062C 0645 # Lo       ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+ FDBB          ; NFKC_SCF; 0643 0645 0645 # Lo       ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+ FDBC          ; NFKC_SCF; 0644 062C 0645 # Lo       ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+ FDBD          ; NFKC_SCF; 0646 062C 062D # Lo       ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+ FDBE          ; NFKC_SCF; 062C 062D 064A # Lo       ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+ FDBF          ; NFKC_SCF; 062D 062C 064A # Lo       ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+ FDC0          ; NFKC_SCF; 0645 062C 064A # Lo       ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+ FDC1          ; NFKC_SCF; 0641 0645 064A # Lo       ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+ FDC2          ; NFKC_SCF; 0628 062D 064A # Lo       ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+ FDC3          ; NFKC_SCF; 0643 0645 0645 # Lo       ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+ FDC4          ; NFKC_SCF; 0639 062C 0645 # Lo       ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+ FDC5          ; NFKC_SCF; 0635 0645 0645 # Lo       ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+ FDC6          ; NFKC_SCF; 0633 062E 064A # Lo       ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+ FDC7          ; NFKC_SCF; 0646 062C 064A # Lo       ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+ FDF0          ; NFKC_SCF; 0635 0644 06D2 # Lo       ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+ FDF1          ; NFKC_SCF; 0642 0644 06D2 # Lo       ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+ FDF2          ; NFKC_SCF; 0627 0644 0644 0647 #Lo   ARABIC LIGATURE ALLAH ISOLATED FORM
+ FDF3          ; NFKC_SCF; 0627 0643 0628 0631 #Lo   ARABIC LIGATURE AKBAR ISOLATED FORM
+ FDF4          ; NFKC_SCF; 0645 062D 0645 062F #Lo   ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+ FDF5          ; NFKC_SCF; 0635 0644 0639 0645 #Lo   ARABIC LIGATURE SALAM ISOLATED FORM
+ FDF6          ; NFKC_SCF; 0631 0633 0648 0644 #Lo   ARABIC LIGATURE RASOUL ISOLATED FORM
+ FDF7          ; NFKC_SCF; 0639 0644 064A 0647 #Lo   ARABIC LIGATURE ALAYHE ISOLATED FORM
+ FDF8          ; NFKC_SCF; 0648 0633 0644 0645 #Lo   ARABIC LIGATURE WASALLAM ISOLATED FORM
+ FDF9          ; NFKC_SCF; 0635 0644 0649 # Lo       ARABIC LIGATURE SALLA ISOLATED FORM
+ FDFA          ; NFKC_SCF; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 #Lo ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+ FDFB          ; NFKC_SCF; 062C 0644 0020 062C 0644 0627 0644 0647 #Lo ARABIC LIGATURE JALLAJALALOUHOU
+ FDFC          ; NFKC_SCF; 0631 06CC 0627 0644 #Sc   RIAL SIGN
+ FE00..FE0F    ; NFKC_SCF;                # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+ FE10          ; NFKC_SCF; 002C           # Po       PRESENTATION FORM FOR VERTICAL COMMA
+ FE11          ; NFKC_SCF; 3001           # Po       PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
+ FE12          ; NFKC_SCF; 3002           # Po       PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+ FE13          ; NFKC_SCF; 003A           # Po       PRESENTATION FORM FOR VERTICAL COLON
+ FE14          ; NFKC_SCF; 003B           # Po       PRESENTATION FORM FOR VERTICAL SEMICOLON
+ FE15          ; NFKC_SCF; 0021           # Po       PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
+ FE16          ; NFKC_SCF; 003F           # Po       PRESENTATION FORM FOR VERTICAL QUESTION MARK
+ FE17          ; NFKC_SCF; 3016           # Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+ FE18          ; NFKC_SCF; 3017           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+ FE19          ; NFKC_SCF; 002E 002E 002E # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+ FE30          ; NFKC_SCF; 002E 002E      # Po       PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+ FE31          ; NFKC_SCF; 2014           # Pd       PRESENTATION FORM FOR VERTICAL EM DASH
+ FE32          ; NFKC_SCF; 2013           # Pd       PRESENTATION FORM FOR VERTICAL EN DASH
+ FE33..FE34    ; NFKC_SCF; 005F           # Pc   [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+ FE35          ; NFKC_SCF; 0028           # Ps       PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+ FE36          ; NFKC_SCF; 0029           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+ FE37          ; NFKC_SCF; 007B           # Ps       PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+ FE38          ; NFKC_SCF; 007D           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+ FE39          ; NFKC_SCF; 3014           # Ps       PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+ FE3A          ; NFKC_SCF; 3015           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+ FE3B          ; NFKC_SCF; 3010           # Ps       PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+ FE3C          ; NFKC_SCF; 3011           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+ FE3D          ; NFKC_SCF; 300A           # Ps       PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+ FE3E          ; NFKC_SCF; 300B           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+ FE3F          ; NFKC_SCF; 3008           # Ps       PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+ FE40          ; NFKC_SCF; 3009           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+ FE41          ; NFKC_SCF; 300C           # Ps       PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+ FE42          ; NFKC_SCF; 300D           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+ FE43          ; NFKC_SCF; 300E           # Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+ FE44          ; NFKC_SCF; 300F           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+ FE47          ; NFKC_SCF; 005B           # Ps       PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+ FE48          ; NFKC_SCF; 005D           # Pe       PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+ FE49..FE4C    ; NFKC_SCF; 0020 0305      # Po   [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+ FE4D..FE4F    ; NFKC_SCF; 005F           # Pc   [3] DASHED LOW LINE..WAVY LOW LINE
+ FE50          ; NFKC_SCF; 002C           # Po       SMALL COMMA
+ FE51          ; NFKC_SCF; 3001           # Po       SMALL IDEOGRAPHIC COMMA
+ FE52          ; NFKC_SCF; 002E           # Po       SMALL FULL STOP
+ FE54          ; NFKC_SCF; 003B           # Po       SMALL SEMICOLON
+ FE55          ; NFKC_SCF; 003A           # Po       SMALL COLON
+ FE56          ; NFKC_SCF; 003F           # Po       SMALL QUESTION MARK
+ FE57          ; NFKC_SCF; 0021           # Po       SMALL EXCLAMATION MARK
+ FE58          ; NFKC_SCF; 2014           # Pd       SMALL EM DASH
+ FE59          ; NFKC_SCF; 0028           # Ps       SMALL LEFT PARENTHESIS
+ FE5A          ; NFKC_SCF; 0029           # Pe       SMALL RIGHT PARENTHESIS
+ FE5B          ; NFKC_SCF; 007B           # Ps       SMALL LEFT CURLY BRACKET
+ FE5C          ; NFKC_SCF; 007D           # Pe       SMALL RIGHT CURLY BRACKET
+ FE5D          ; NFKC_SCF; 3014           # Ps       SMALL LEFT TORTOISE SHELL BRACKET
+ FE5E          ; NFKC_SCF; 3015           # Pe       SMALL RIGHT TORTOISE SHELL BRACKET
+ FE5F          ; NFKC_SCF; 0023           # Po       SMALL NUMBER SIGN
+ FE60          ; NFKC_SCF; 0026           # Po       SMALL AMPERSAND
+ FE61          ; NFKC_SCF; 002A           # Po       SMALL ASTERISK
+ FE62          ; NFKC_SCF; 002B           # Sm       SMALL PLUS SIGN
+ FE63          ; NFKC_SCF; 002D           # Pd       SMALL HYPHEN-MINUS
+ FE64          ; NFKC_SCF; 003C           # Sm       SMALL LESS-THAN SIGN
+ FE65          ; NFKC_SCF; 003E           # Sm       SMALL GREATER-THAN SIGN
+ FE66          ; NFKC_SCF; 003D           # Sm       SMALL EQUALS SIGN
+ FE68          ; NFKC_SCF; 005C           # Po       SMALL REVERSE SOLIDUS
+ FE69          ; NFKC_SCF; 0024           # Sc       SMALL DOLLAR SIGN
+ FE6A          ; NFKC_SCF; 0025           # Po       SMALL PERCENT SIGN
+ FE6B          ; NFKC_SCF; 0040           # Po       SMALL COMMERCIAL AT
+ FE70          ; NFKC_SCF; 0020 064B      # Lo       ARABIC FATHATAN ISOLATED FORM
+ FE71          ; NFKC_SCF; 0640 064B      # Lo       ARABIC TATWEEL WITH FATHATAN ABOVE
+ FE72          ; NFKC_SCF; 0020 064C      # Lo       ARABIC DAMMATAN ISOLATED FORM
+ FE74          ; NFKC_SCF; 0020 064D      # Lo       ARABIC KASRATAN ISOLATED FORM
+ FE76          ; NFKC_SCF; 0020 064E      # Lo       ARABIC FATHA ISOLATED FORM
+ FE77          ; NFKC_SCF; 0640 064E      # Lo       ARABIC FATHA MEDIAL FORM
+ FE78          ; NFKC_SCF; 0020 064F      # Lo       ARABIC DAMMA ISOLATED FORM
+ FE79          ; NFKC_SCF; 0640 064F      # Lo       ARABIC DAMMA MEDIAL FORM
+ FE7A          ; NFKC_SCF; 0020 0650      # Lo       ARABIC KASRA ISOLATED FORM
+ FE7B          ; NFKC_SCF; 0640 0650      # Lo       ARABIC KASRA MEDIAL FORM
+ FE7C          ; NFKC_SCF; 0020 0651      # Lo       ARABIC SHADDA ISOLATED FORM
+ FE7D          ; NFKC_SCF; 0640 0651      # Lo       ARABIC SHADDA MEDIAL FORM
+ FE7E          ; NFKC_SCF; 0020 0652      # Lo       ARABIC SUKUN ISOLATED FORM
+ FE7F          ; NFKC_SCF; 0640 0652      # Lo       ARABIC SUKUN MEDIAL FORM
+ FE80          ; NFKC_SCF; 0621           # Lo       ARABIC LETTER HAMZA ISOLATED FORM
+ FE81..FE82    ; NFKC_SCF; 0622           # Lo   [2] ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+ FE83..FE84    ; NFKC_SCF; 0623           # Lo   [2] ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+ FE85..FE86    ; NFKC_SCF; 0624           # Lo   [2] ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+ FE87..FE88    ; NFKC_SCF; 0625           # Lo   [2] ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+ FE89..FE8C    ; NFKC_SCF; 0626           # Lo   [4] ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+ FE8D..FE8E    ; NFKC_SCF; 0627           # Lo   [2] ARABIC LETTER ALEF ISOLATED FORM..ARABIC LETTER ALEF FINAL FORM
+ FE8F..FE92    ; NFKC_SCF; 0628           # Lo   [4] ARABIC LETTER BEH ISOLATED FORM..ARABIC LETTER BEH MEDIAL FORM
+ FE93..FE94    ; NFKC_SCF; 0629           # Lo   [2] ARABIC LETTER TEH MARBUTA ISOLATED FORM..ARABIC LETTER TEH MARBUTA FINAL FORM
+ FE95..FE98    ; NFKC_SCF; 062A           # Lo   [4] ARABIC LETTER TEH ISOLATED FORM..ARABIC LETTER TEH MEDIAL FORM
+ FE99..FE9C    ; NFKC_SCF; 062B           # Lo   [4] ARABIC LETTER THEH ISOLATED FORM..ARABIC LETTER THEH MEDIAL FORM
+ FE9D..FEA0    ; NFKC_SCF; 062C           # Lo   [4] ARABIC LETTER JEEM ISOLATED FORM..ARABIC LETTER JEEM MEDIAL FORM
+ FEA1..FEA4    ; NFKC_SCF; 062D           # Lo   [4] ARABIC LETTER HAH ISOLATED FORM..ARABIC LETTER HAH MEDIAL FORM
+ FEA5..FEA8    ; NFKC_SCF; 062E           # Lo   [4] ARABIC LETTER KHAH ISOLATED FORM..ARABIC LETTER KHAH MEDIAL FORM
+ FEA9..FEAA    ; NFKC_SCF; 062F           # Lo   [2] ARABIC LETTER DAL ISOLATED FORM..ARABIC LETTER DAL FINAL FORM
+ FEAB..FEAC    ; NFKC_SCF; 0630           # Lo   [2] ARABIC LETTER THAL ISOLATED FORM..ARABIC LETTER THAL FINAL FORM
+ FEAD..FEAE    ; NFKC_SCF; 0631           # Lo   [2] ARABIC LETTER REH ISOLATED FORM..ARABIC LETTER REH FINAL FORM
+ FEAF..FEB0    ; NFKC_SCF; 0632           # Lo   [2] ARABIC LETTER ZAIN ISOLATED FORM..ARABIC LETTER ZAIN FINAL FORM
+ FEB1..FEB4    ; NFKC_SCF; 0633           # Lo   [4] ARABIC LETTER SEEN ISOLATED FORM..ARABIC LETTER SEEN MEDIAL FORM
+ FEB5..FEB8    ; NFKC_SCF; 0634           # Lo   [4] ARABIC LETTER SHEEN ISOLATED FORM..ARABIC LETTER SHEEN MEDIAL FORM
+ FEB9..FEBC    ; NFKC_SCF; 0635           # Lo   [4] ARABIC LETTER SAD ISOLATED FORM..ARABIC LETTER SAD MEDIAL FORM
+ FEBD..FEC0    ; NFKC_SCF; 0636           # Lo   [4] ARABIC LETTER DAD ISOLATED FORM..ARABIC LETTER DAD MEDIAL FORM
+ FEC1..FEC4    ; NFKC_SCF; 0637           # Lo   [4] ARABIC LETTER TAH ISOLATED FORM..ARABIC LETTER TAH MEDIAL FORM
+ FEC5..FEC8    ; NFKC_SCF; 0638           # Lo   [4] ARABIC LETTER ZAH ISOLATED FORM..ARABIC LETTER ZAH MEDIAL FORM
+ FEC9..FECC    ; NFKC_SCF; 0639           # Lo   [4] ARABIC LETTER AIN ISOLATED FORM..ARABIC LETTER AIN MEDIAL FORM
+ FECD..FED0    ; NFKC_SCF; 063A           # Lo   [4] ARABIC LETTER GHAIN ISOLATED FORM..ARABIC LETTER GHAIN MEDIAL FORM
+ FED1..FED4    ; NFKC_SCF; 0641           # Lo   [4] ARABIC LETTER FEH ISOLATED FORM..ARABIC LETTER FEH MEDIAL FORM
+ FED5..FED8    ; NFKC_SCF; 0642           # Lo   [4] ARABIC LETTER QAF ISOLATED FORM..ARABIC LETTER QAF MEDIAL FORM
+ FED9..FEDC    ; NFKC_SCF; 0643           # Lo   [4] ARABIC LETTER KAF ISOLATED FORM..ARABIC LETTER KAF MEDIAL FORM
+ FEDD..FEE0    ; NFKC_SCF; 0644           # Lo   [4] ARABIC LETTER LAM ISOLATED FORM..ARABIC LETTER LAM MEDIAL FORM
+ FEE1..FEE4    ; NFKC_SCF; 0645           # Lo   [4] ARABIC LETTER MEEM ISOLATED FORM..ARABIC LETTER MEEM MEDIAL FORM
+ FEE5..FEE8    ; NFKC_SCF; 0646           # Lo   [4] ARABIC LETTER NOON ISOLATED FORM..ARABIC LETTER NOON MEDIAL FORM
+ FEE9..FEEC    ; NFKC_SCF; 0647           # Lo   [4] ARABIC LETTER HEH ISOLATED FORM..ARABIC LETTER HEH MEDIAL FORM
+ FEED..FEEE    ; NFKC_SCF; 0648           # Lo   [2] ARABIC LETTER WAW ISOLATED FORM..ARABIC LETTER WAW FINAL FORM
+ FEEF..FEF0    ; NFKC_SCF; 0649           # Lo   [2] ARABIC LETTER ALEF MAKSURA ISOLATED FORM..ARABIC LETTER ALEF MAKSURA FINAL FORM
+ FEF1..FEF4    ; NFKC_SCF; 064A           # Lo   [4] ARABIC LETTER YEH ISOLATED FORM..ARABIC LETTER YEH MEDIAL FORM
+ FEF5..FEF6    ; NFKC_SCF; 0644 0622      # Lo   [2] ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+ FEF7..FEF8    ; NFKC_SCF; 0644 0623      # Lo   [2] ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+ FEF9..FEFA    ; NFKC_SCF; 0644 0625      # Lo   [2] ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+ FEFB..FEFC    ; NFKC_SCF; 0644 0627      # Lo   [2] ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+ FEFF          ; NFKC_SCF;                # Cf       ZERO WIDTH NO-BREAK SPACE
+ FF01          ; NFKC_SCF; 0021           # Po       FULLWIDTH EXCLAMATION MARK
+ FF02          ; NFKC_SCF; 0022           # Po       FULLWIDTH QUOTATION MARK
+ FF03          ; NFKC_SCF; 0023           # Po       FULLWIDTH NUMBER SIGN
+ FF04          ; NFKC_SCF; 0024           # Sc       FULLWIDTH DOLLAR SIGN
+ FF05          ; NFKC_SCF; 0025           # Po       FULLWIDTH PERCENT SIGN
+ FF06          ; NFKC_SCF; 0026           # Po       FULLWIDTH AMPERSAND
+ FF07          ; NFKC_SCF; 0027           # Po       FULLWIDTH APOSTROPHE
+ FF08          ; NFKC_SCF; 0028           # Ps       FULLWIDTH LEFT PARENTHESIS
+ FF09          ; NFKC_SCF; 0029           # Pe       FULLWIDTH RIGHT PARENTHESIS
+ FF0A          ; NFKC_SCF; 002A           # Po       FULLWIDTH ASTERISK
+ FF0B          ; NFKC_SCF; 002B           # Sm       FULLWIDTH PLUS SIGN
+ FF0C          ; NFKC_SCF; 002C           # Po       FULLWIDTH COMMA
+ FF0D          ; NFKC_SCF; 002D           # Pd       FULLWIDTH HYPHEN-MINUS
+ FF0E          ; NFKC_SCF; 002E           # Po       FULLWIDTH FULL STOP
+ FF0F          ; NFKC_SCF; 002F           # Po       FULLWIDTH SOLIDUS
+ FF10          ; NFKC_SCF; 0030           # Nd       FULLWIDTH DIGIT ZERO
+ FF11          ; NFKC_SCF; 0031           # Nd       FULLWIDTH DIGIT ONE
+ FF12          ; NFKC_SCF; 0032           # Nd       FULLWIDTH DIGIT TWO
+ FF13          ; NFKC_SCF; 0033           # Nd       FULLWIDTH DIGIT THREE
+ FF14          ; NFKC_SCF; 0034           # Nd       FULLWIDTH DIGIT FOUR
+ FF15          ; NFKC_SCF; 0035           # Nd       FULLWIDTH DIGIT FIVE
+ FF16          ; NFKC_SCF; 0036           # Nd       FULLWIDTH DIGIT SIX
+ FF17          ; NFKC_SCF; 0037           # Nd       FULLWIDTH DIGIT SEVEN
+ FF18          ; NFKC_SCF; 0038           # Nd       FULLWIDTH DIGIT EIGHT
+ FF19          ; NFKC_SCF; 0039           # Nd       FULLWIDTH DIGIT NINE
+ FF1A          ; NFKC_SCF; 003A           # Po       FULLWIDTH COLON
+ FF1B          ; NFKC_SCF; 003B           # Po       FULLWIDTH SEMICOLON
+ FF1C          ; NFKC_SCF; 003C           # Sm       FULLWIDTH LESS-THAN SIGN
+ FF1D          ; NFKC_SCF; 003D           # Sm       FULLWIDTH EQUALS SIGN
+ FF1E          ; NFKC_SCF; 003E           # Sm       FULLWIDTH GREATER-THAN SIGN
+ FF1F          ; NFKC_SCF; 003F           # Po       FULLWIDTH QUESTION MARK
+ FF20          ; NFKC_SCF; 0040           # Po       FULLWIDTH COMMERCIAL AT
+ FF21          ; NFKC_SCF; 0061           # L&       FULLWIDTH LATIN CAPITAL LETTER A
+ FF22          ; NFKC_SCF; 0062           # L&       FULLWIDTH LATIN CAPITAL LETTER B
+ FF23          ; NFKC_SCF; 0063           # L&       FULLWIDTH LATIN CAPITAL LETTER C
+ FF24          ; NFKC_SCF; 0064           # L&       FULLWIDTH LATIN CAPITAL LETTER D
+ FF25          ; NFKC_SCF; 0065           # L&       FULLWIDTH LATIN CAPITAL LETTER E
+ FF26          ; NFKC_SCF; 0066           # L&       FULLWIDTH LATIN CAPITAL LETTER F
+ FF27          ; NFKC_SCF; 0067           # L&       FULLWIDTH LATIN CAPITAL LETTER G
+ FF28          ; NFKC_SCF; 0068           # L&       FULLWIDTH LATIN CAPITAL LETTER H
+ FF29          ; NFKC_SCF; 0069           # L&       FULLWIDTH LATIN CAPITAL LETTER I
+ FF2A          ; NFKC_SCF; 006A           # L&       FULLWIDTH LATIN CAPITAL LETTER J
+ FF2B          ; NFKC_SCF; 006B           # L&       FULLWIDTH LATIN CAPITAL LETTER K
+ FF2C          ; NFKC_SCF; 006C           # L&       FULLWIDTH LATIN CAPITAL LETTER L
+ FF2D          ; NFKC_SCF; 006D           # L&       FULLWIDTH LATIN CAPITAL LETTER M
+ FF2E          ; NFKC_SCF; 006E           # L&       FULLWIDTH LATIN CAPITAL LETTER N
+ FF2F          ; NFKC_SCF; 006F           # L&       FULLWIDTH LATIN CAPITAL LETTER O
+ FF30          ; NFKC_SCF; 0070           # L&       FULLWIDTH LATIN CAPITAL LETTER P
+ FF31          ; NFKC_SCF; 0071           # L&       FULLWIDTH LATIN CAPITAL LETTER Q
+ FF32          ; NFKC_SCF; 0072           # L&       FULLWIDTH LATIN CAPITAL LETTER R
+ FF33          ; NFKC_SCF; 0073           # L&       FULLWIDTH LATIN CAPITAL LETTER S
+ FF34          ; NFKC_SCF; 0074           # L&       FULLWIDTH LATIN CAPITAL LETTER T
+ FF35          ; NFKC_SCF; 0075           # L&       FULLWIDTH LATIN CAPITAL LETTER U
+ FF36          ; NFKC_SCF; 0076           # L&       FULLWIDTH LATIN CAPITAL LETTER V
+ FF37          ; NFKC_SCF; 0077           # L&       FULLWIDTH LATIN CAPITAL LETTER W
+ FF38          ; NFKC_SCF; 0078           # L&       FULLWIDTH LATIN CAPITAL LETTER X
+ FF39          ; NFKC_SCF; 0079           # L&       FULLWIDTH LATIN CAPITAL LETTER Y
+ FF3A          ; NFKC_SCF; 007A           # L&       FULLWIDTH LATIN CAPITAL LETTER Z
+ FF3B          ; NFKC_SCF; 005B           # Ps       FULLWIDTH LEFT SQUARE BRACKET
+ FF3C          ; NFKC_SCF; 005C           # Po       FULLWIDTH REVERSE SOLIDUS
+ FF3D          ; NFKC_SCF; 005D           # Pe       FULLWIDTH RIGHT SQUARE BRACKET
+ FF3E          ; NFKC_SCF; 005E           # Sk       FULLWIDTH CIRCUMFLEX ACCENT
+ FF3F          ; NFKC_SCF; 005F           # Pc       FULLWIDTH LOW LINE
+ FF40          ; NFKC_SCF; 0060           # Sk       FULLWIDTH GRAVE ACCENT
+ FF41          ; NFKC_SCF; 0061           # L&       FULLWIDTH LATIN SMALL LETTER A
+ FF42          ; NFKC_SCF; 0062           # L&       FULLWIDTH LATIN SMALL LETTER B
+ FF43          ; NFKC_SCF; 0063           # L&       FULLWIDTH LATIN SMALL LETTER C
+ FF44          ; NFKC_SCF; 0064           # L&       FULLWIDTH LATIN SMALL LETTER D
+ FF45          ; NFKC_SCF; 0065           # L&       FULLWIDTH LATIN SMALL LETTER E
+ FF46          ; NFKC_SCF; 0066           # L&       FULLWIDTH LATIN SMALL LETTER F
+ FF47          ; NFKC_SCF; 0067           # L&       FULLWIDTH LATIN SMALL LETTER G
+ FF48          ; NFKC_SCF; 0068           # L&       FULLWIDTH LATIN SMALL LETTER H
+ FF49          ; NFKC_SCF; 0069           # L&       FULLWIDTH LATIN SMALL LETTER I
+ FF4A          ; NFKC_SCF; 006A           # L&       FULLWIDTH LATIN SMALL LETTER J
+ FF4B          ; NFKC_SCF; 006B           # L&       FULLWIDTH LATIN SMALL LETTER K
+ FF4C          ; NFKC_SCF; 006C           # L&       FULLWIDTH LATIN SMALL LETTER L
+ FF4D          ; NFKC_SCF; 006D           # L&       FULLWIDTH LATIN SMALL LETTER M
+ FF4E          ; NFKC_SCF; 006E           # L&       FULLWIDTH LATIN SMALL LETTER N
+ FF4F          ; NFKC_SCF; 006F           # L&       FULLWIDTH LATIN SMALL LETTER O
+ FF50          ; NFKC_SCF; 0070           # L&       FULLWIDTH LATIN SMALL LETTER P
+ FF51          ; NFKC_SCF; 0071           # L&       FULLWIDTH LATIN SMALL LETTER Q
+ FF52          ; NFKC_SCF; 0072           # L&       FULLWIDTH LATIN SMALL LETTER R
+ FF53          ; NFKC_SCF; 0073           # L&       FULLWIDTH LATIN SMALL LETTER S
+ FF54          ; NFKC_SCF; 0074           # L&       FULLWIDTH LATIN SMALL LETTER T
+ FF55          ; NFKC_SCF; 0075           # L&       FULLWIDTH LATIN SMALL LETTER U
+ FF56          ; NFKC_SCF; 0076           # L&       FULLWIDTH LATIN SMALL LETTER V
+ FF57          ; NFKC_SCF; 0077           # L&       FULLWIDTH LATIN SMALL LETTER W
+ FF58          ; NFKC_SCF; 0078           # L&       FULLWIDTH LATIN SMALL LETTER X
+ FF59          ; NFKC_SCF; 0079           # L&       FULLWIDTH LATIN SMALL LETTER Y
+ FF5A          ; NFKC_SCF; 007A           # L&       FULLWIDTH LATIN SMALL LETTER Z
+ FF5B          ; NFKC_SCF; 007B           # Ps       FULLWIDTH LEFT CURLY BRACKET
+ FF5C          ; NFKC_SCF; 007C           # Sm       FULLWIDTH VERTICAL LINE
+ FF5D          ; NFKC_SCF; 007D           # Pe       FULLWIDTH RIGHT CURLY BRACKET
+ FF5E          ; NFKC_SCF; 007E           # Sm       FULLWIDTH TILDE
+ FF5F          ; NFKC_SCF; 2985           # Ps       FULLWIDTH LEFT WHITE PARENTHESIS
+ FF60          ; NFKC_SCF; 2986           # Pe       FULLWIDTH RIGHT WHITE PARENTHESIS
+ FF61          ; NFKC_SCF; 3002           # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
+ FF62          ; NFKC_SCF; 300C           # Ps       HALFWIDTH LEFT CORNER BRACKET
+ FF63          ; NFKC_SCF; 300D           # Pe       HALFWIDTH RIGHT CORNER BRACKET
+ FF64          ; NFKC_SCF; 3001           # Po       HALFWIDTH IDEOGRAPHIC COMMA
+ FF65          ; NFKC_SCF; 30FB           # Po       HALFWIDTH KATAKANA MIDDLE DOT
+ FF66          ; NFKC_SCF; 30F2           # Lo       HALFWIDTH KATAKANA LETTER WO
+ FF67          ; NFKC_SCF; 30A1           # Lo       HALFWIDTH KATAKANA LETTER SMALL A
+ FF68          ; NFKC_SCF; 30A3           # Lo       HALFWIDTH KATAKANA LETTER SMALL I
+ FF69          ; NFKC_SCF; 30A5           # Lo       HALFWIDTH KATAKANA LETTER SMALL U
+ FF6A          ; NFKC_SCF; 30A7           # Lo       HALFWIDTH KATAKANA LETTER SMALL E
+ FF6B          ; NFKC_SCF; 30A9           # Lo       HALFWIDTH KATAKANA LETTER SMALL O
+ FF6C          ; NFKC_SCF; 30E3           # Lo       HALFWIDTH KATAKANA LETTER SMALL YA
+ FF6D          ; NFKC_SCF; 30E5           # Lo       HALFWIDTH KATAKANA LETTER SMALL YU
+ FF6E          ; NFKC_SCF; 30E7           # Lo       HALFWIDTH KATAKANA LETTER SMALL YO
+ FF6F          ; NFKC_SCF; 30C3           # Lo       HALFWIDTH KATAKANA LETTER SMALL TU
+ FF70          ; NFKC_SCF; 30FC           # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+ FF71          ; NFKC_SCF; 30A2           # Lo       HALFWIDTH KATAKANA LETTER A
+ FF72          ; NFKC_SCF; 30A4           # Lo       HALFWIDTH KATAKANA LETTER I
+ FF73          ; NFKC_SCF; 30A6           # Lo       HALFWIDTH KATAKANA LETTER U
+ FF74          ; NFKC_SCF; 30A8           # Lo       HALFWIDTH KATAKANA LETTER E
+ FF75          ; NFKC_SCF; 30AA           # Lo       HALFWIDTH KATAKANA LETTER O
+ FF76          ; NFKC_SCF; 30AB           # Lo       HALFWIDTH KATAKANA LETTER KA
+ FF77          ; NFKC_SCF; 30AD           # Lo       HALFWIDTH KATAKANA LETTER KI
+ FF78          ; NFKC_SCF; 30AF           # Lo       HALFWIDTH KATAKANA LETTER KU
+ FF79          ; NFKC_SCF; 30B1           # Lo       HALFWIDTH KATAKANA LETTER KE
+ FF7A          ; NFKC_SCF; 30B3           # Lo       HALFWIDTH KATAKANA LETTER KO
+ FF7B          ; NFKC_SCF; 30B5           # Lo       HALFWIDTH KATAKANA LETTER SA
+ FF7C          ; NFKC_SCF; 30B7           # Lo       HALFWIDTH KATAKANA LETTER SI
+ FF7D          ; NFKC_SCF; 30B9           # Lo       HALFWIDTH KATAKANA LETTER SU
+ FF7E          ; NFKC_SCF; 30BB           # Lo       HALFWIDTH KATAKANA LETTER SE
+ FF7F          ; NFKC_SCF; 30BD           # Lo       HALFWIDTH KATAKANA LETTER SO
+ FF80          ; NFKC_SCF; 30BF           # Lo       HALFWIDTH KATAKANA LETTER TA
+ FF81          ; NFKC_SCF; 30C1           # Lo       HALFWIDTH KATAKANA LETTER TI
+ FF82          ; NFKC_SCF; 30C4           # Lo       HALFWIDTH KATAKANA LETTER TU
+ FF83          ; NFKC_SCF; 30C6           # Lo       HALFWIDTH KATAKANA LETTER TE
+ FF84          ; NFKC_SCF; 30C8           # Lo       HALFWIDTH KATAKANA LETTER TO
+ FF85          ; NFKC_SCF; 30CA           # Lo       HALFWIDTH KATAKANA LETTER NA
+ FF86          ; NFKC_SCF; 30CB           # Lo       HALFWIDTH KATAKANA LETTER NI
+ FF87          ; NFKC_SCF; 30CC           # Lo       HALFWIDTH KATAKANA LETTER NU
+ FF88          ; NFKC_SCF; 30CD           # Lo       HALFWIDTH KATAKANA LETTER NE
+ FF89          ; NFKC_SCF; 30CE           # Lo       HALFWIDTH KATAKANA LETTER NO
+ FF8A          ; NFKC_SCF; 30CF           # Lo       HALFWIDTH KATAKANA LETTER HA
+ FF8B          ; NFKC_SCF; 30D2           # Lo       HALFWIDTH KATAKANA LETTER HI
+ FF8C          ; NFKC_SCF; 30D5           # Lo       HALFWIDTH KATAKANA LETTER HU
+ FF8D          ; NFKC_SCF; 30D8           # Lo       HALFWIDTH KATAKANA LETTER HE
+ FF8E          ; NFKC_SCF; 30DB           # Lo       HALFWIDTH KATAKANA LETTER HO
+ FF8F          ; NFKC_SCF; 30DE           # Lo       HALFWIDTH KATAKANA LETTER MA
+ FF90          ; NFKC_SCF; 30DF           # Lo       HALFWIDTH KATAKANA LETTER MI
+ FF91          ; NFKC_SCF; 30E0           # Lo       HALFWIDTH KATAKANA LETTER MU
+ FF92          ; NFKC_SCF; 30E1           # Lo       HALFWIDTH KATAKANA LETTER ME
+ FF93          ; NFKC_SCF; 30E2           # Lo       HALFWIDTH KATAKANA LETTER MO
+ FF94          ; NFKC_SCF; 30E4           # Lo       HALFWIDTH KATAKANA LETTER YA
+ FF95          ; NFKC_SCF; 30E6           # Lo       HALFWIDTH KATAKANA LETTER YU
+ FF96          ; NFKC_SCF; 30E8           # Lo       HALFWIDTH KATAKANA LETTER YO
+ FF97          ; NFKC_SCF; 30E9           # Lo       HALFWIDTH KATAKANA LETTER RA
+ FF98          ; NFKC_SCF; 30EA           # Lo       HALFWIDTH KATAKANA LETTER RI
+ FF99          ; NFKC_SCF; 30EB           # Lo       HALFWIDTH KATAKANA LETTER RU
+ FF9A          ; NFKC_SCF; 30EC           # Lo       HALFWIDTH KATAKANA LETTER RE
+ FF9B          ; NFKC_SCF; 30ED           # Lo       HALFWIDTH KATAKANA LETTER RO
+ FF9C          ; NFKC_SCF; 30EF           # Lo       HALFWIDTH KATAKANA LETTER WA
+ FF9D          ; NFKC_SCF; 30F3           # Lo       HALFWIDTH KATAKANA LETTER N
+ FF9E          ; NFKC_SCF; 3099           # Lm       HALFWIDTH KATAKANA VOICED SOUND MARK
+ FF9F          ; NFKC_SCF; 309A           # Lm       HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+ FFA0          ; NFKC_SCF;                # Lo       HALFWIDTH HANGUL FILLER
+ FFA1          ; NFKC_SCF; 1100           # Lo       HALFWIDTH HANGUL LETTER KIYEOK
+ FFA2          ; NFKC_SCF; 1101           # Lo       HALFWIDTH HANGUL LETTER SSANGKIYEOK
+ FFA3          ; NFKC_SCF; 11AA           # Lo       HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+ FFA4          ; NFKC_SCF; 1102           # Lo       HALFWIDTH HANGUL LETTER NIEUN
+ FFA5          ; NFKC_SCF; 11AC           # Lo       HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+ FFA6          ; NFKC_SCF; 11AD           # Lo       HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+ FFA7          ; NFKC_SCF; 1103           # Lo       HALFWIDTH HANGUL LETTER TIKEUT
+ FFA8          ; NFKC_SCF; 1104           # Lo       HALFWIDTH HANGUL LETTER SSANGTIKEUT
+ FFA9          ; NFKC_SCF; 1105           # Lo       HALFWIDTH HANGUL LETTER RIEUL
+ FFAA          ; NFKC_SCF; 11B0           # Lo       HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+ FFAB          ; NFKC_SCF; 11B1           # Lo       HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+ FFAC          ; NFKC_SCF; 11B2           # Lo       HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+ FFAD          ; NFKC_SCF; 11B3           # Lo       HALFWIDTH HANGUL LETTER RIEUL-SIOS
+ FFAE          ; NFKC_SCF; 11B4           # Lo       HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+ FFAF          ; NFKC_SCF; 11B5           # Lo       HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+ FFB0          ; NFKC_SCF; 111A           # Lo       HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+ FFB1          ; NFKC_SCF; 1106           # Lo       HALFWIDTH HANGUL LETTER MIEUM
+ FFB2          ; NFKC_SCF; 1107           # Lo       HALFWIDTH HANGUL LETTER PIEUP
+ FFB3          ; NFKC_SCF; 1108           # Lo       HALFWIDTH HANGUL LETTER SSANGPIEUP
+ FFB4          ; NFKC_SCF; 1121           # Lo       HALFWIDTH HANGUL LETTER PIEUP-SIOS
+ FFB5          ; NFKC_SCF; 1109           # Lo       HALFWIDTH HANGUL LETTER SIOS
+ FFB6          ; NFKC_SCF; 110A           # Lo       HALFWIDTH HANGUL LETTER SSANGSIOS
+ FFB7          ; NFKC_SCF; 110B           # Lo       HALFWIDTH HANGUL LETTER IEUNG
+ FFB8          ; NFKC_SCF; 110C           # Lo       HALFWIDTH HANGUL LETTER CIEUC
+ FFB9          ; NFKC_SCF; 110D           # Lo       HALFWIDTH HANGUL LETTER SSANGCIEUC
+ FFBA          ; NFKC_SCF; 110E           # Lo       HALFWIDTH HANGUL LETTER CHIEUCH
+ FFBB          ; NFKC_SCF; 110F           # Lo       HALFWIDTH HANGUL LETTER KHIEUKH
+ FFBC          ; NFKC_SCF; 1110           # Lo       HALFWIDTH HANGUL LETTER THIEUTH
+ FFBD          ; NFKC_SCF; 1111           # Lo       HALFWIDTH HANGUL LETTER PHIEUPH
+ FFBE          ; NFKC_SCF; 1112           # Lo       HALFWIDTH HANGUL LETTER HIEUH
+ FFC2          ; NFKC_SCF; 1161           # Lo       HALFWIDTH HANGUL LETTER A
+ FFC3          ; NFKC_SCF; 1162           # Lo       HALFWIDTH HANGUL LETTER AE
+ FFC4          ; NFKC_SCF; 1163           # Lo       HALFWIDTH HANGUL LETTER YA
+ FFC5          ; NFKC_SCF; 1164           # Lo       HALFWIDTH HANGUL LETTER YAE
+ FFC6          ; NFKC_SCF; 1165           # Lo       HALFWIDTH HANGUL LETTER EO
+ FFC7          ; NFKC_SCF; 1166           # Lo       HALFWIDTH HANGUL LETTER E
+ FFCA          ; NFKC_SCF; 1167           # Lo       HALFWIDTH HANGUL LETTER YEO
+ FFCB          ; NFKC_SCF; 1168           # Lo       HALFWIDTH HANGUL LETTER YE
+ FFCC          ; NFKC_SCF; 1169           # Lo       HALFWIDTH HANGUL LETTER O
+ FFCD          ; NFKC_SCF; 116A           # Lo       HALFWIDTH HANGUL LETTER WA
+ FFCE          ; NFKC_SCF; 116B           # Lo       HALFWIDTH HANGUL LETTER WAE
+ FFCF          ; NFKC_SCF; 116C           # Lo       HALFWIDTH HANGUL LETTER OE
+ FFD2          ; NFKC_SCF; 116D           # Lo       HALFWIDTH HANGUL LETTER YO
+ FFD3          ; NFKC_SCF; 116E           # Lo       HALFWIDTH HANGUL LETTER U
+ FFD4          ; NFKC_SCF; 116F           # Lo       HALFWIDTH HANGUL LETTER WEO
+ FFD5          ; NFKC_SCF; 1170           # Lo       HALFWIDTH HANGUL LETTER WE
+ FFD6          ; NFKC_SCF; 1171           # Lo       HALFWIDTH HANGUL LETTER WI
+ FFD7          ; NFKC_SCF; 1172           # Lo       HALFWIDTH HANGUL LETTER YU
+ FFDA          ; NFKC_SCF; 1173           # Lo       HALFWIDTH HANGUL LETTER EU
+ FFDB          ; NFKC_SCF; 1174           # Lo       HALFWIDTH HANGUL LETTER YI
+ FFDC          ; NFKC_SCF; 1175           # Lo       HALFWIDTH HANGUL LETTER I
+ FFE0          ; NFKC_SCF; 00A2           # Sc       FULLWIDTH CENT SIGN
+ FFE1          ; NFKC_SCF; 00A3           # Sc       FULLWIDTH POUND SIGN
+ FFE2          ; NFKC_SCF; 00AC           # Sm       FULLWIDTH NOT SIGN
+ FFE3          ; NFKC_SCF; 0020 0304      # Sk       FULLWIDTH MACRON
+ FFE4          ; NFKC_SCF; 00A6           # So       FULLWIDTH BROKEN BAR
+ FFE5          ; NFKC_SCF; 00A5           # Sc       FULLWIDTH YEN SIGN
+ FFE6          ; NFKC_SCF; 20A9           # Sc       FULLWIDTH WON SIGN
+ FFE8          ; NFKC_SCF; 2502           # So       HALFWIDTH FORMS LIGHT VERTICAL
+ FFE9          ; NFKC_SCF; 2190           # Sm       HALFWIDTH LEFTWARDS ARROW
+ FFEA          ; NFKC_SCF; 2191           # Sm       HALFWIDTH UPWARDS ARROW
+ FFEB          ; NFKC_SCF; 2192           # Sm       HALFWIDTH RIGHTWARDS ARROW
+ FFEC          ; NFKC_SCF; 2193           # Sm       HALFWIDTH DOWNWARDS ARROW
+ FFED          ; NFKC_SCF; 25A0           # So       HALFWIDTH BLACK SQUARE
+ FFEE          ; NFKC_SCF; 25CB           # So       HALFWIDTH WHITE CIRCLE
+ FFF0..FFF8    ; NFKC_SCF;                # Cn   [9] <reserved-FFF0>..<reserved-FFF8>
+ 10400         ; NFKC_SCF; 10428          # L&       DESERET CAPITAL LETTER LONG I
+ 10401         ; NFKC_SCF; 10429          # L&       DESERET CAPITAL LETTER LONG E
+ 10402         ; NFKC_SCF; 1042A          # L&       DESERET CAPITAL LETTER LONG A
+ 10403         ; NFKC_SCF; 1042B          # L&       DESERET CAPITAL LETTER LONG AH
+ 10404         ; NFKC_SCF; 1042C          # L&       DESERET CAPITAL LETTER LONG O
+ 10405         ; NFKC_SCF; 1042D          # L&       DESERET CAPITAL LETTER LONG OO
+ 10406         ; NFKC_SCF; 1042E          # L&       DESERET CAPITAL LETTER SHORT I
+ 10407         ; NFKC_SCF; 1042F          # L&       DESERET CAPITAL LETTER SHORT E
+ 10408         ; NFKC_SCF; 10430          # L&       DESERET CAPITAL LETTER SHORT A
+ 10409         ; NFKC_SCF; 10431          # L&       DESERET CAPITAL LETTER SHORT AH
+ 1040A         ; NFKC_SCF; 10432          # L&       DESERET CAPITAL LETTER SHORT O
+ 1040B         ; NFKC_SCF; 10433          # L&       DESERET CAPITAL LETTER SHORT OO
+ 1040C         ; NFKC_SCF; 10434          # L&       DESERET CAPITAL LETTER AY
+ 1040D         ; NFKC_SCF; 10435          # L&       DESERET CAPITAL LETTER OW
+ 1040E         ; NFKC_SCF; 10436          # L&       DESERET CAPITAL LETTER WU
+ 1040F         ; NFKC_SCF; 10437          # L&       DESERET CAPITAL LETTER YEE
+ 10410         ; NFKC_SCF; 10438          # L&       DESERET CAPITAL LETTER H
+ 10411         ; NFKC_SCF; 10439          # L&       DESERET CAPITAL LETTER PEE
+ 10412         ; NFKC_SCF; 1043A          # L&       DESERET CAPITAL LETTER BEE
+ 10413         ; NFKC_SCF; 1043B          # L&       DESERET CAPITAL LETTER TEE
+ 10414         ; NFKC_SCF; 1043C          # L&       DESERET CAPITAL LETTER DEE
+ 10415         ; NFKC_SCF; 1043D          # L&       DESERET CAPITAL LETTER CHEE
+ 10416         ; NFKC_SCF; 1043E          # L&       DESERET CAPITAL LETTER JEE
+ 10417         ; NFKC_SCF; 1043F          # L&       DESERET CAPITAL LETTER KAY
+ 10418         ; NFKC_SCF; 10440          # L&       DESERET CAPITAL LETTER GAY
+ 10419         ; NFKC_SCF; 10441          # L&       DESERET CAPITAL LETTER EF
+ 1041A         ; NFKC_SCF; 10442          # L&       DESERET CAPITAL LETTER VEE
+ 1041B         ; NFKC_SCF; 10443          # L&       DESERET CAPITAL LETTER ETH
+ 1041C         ; NFKC_SCF; 10444          # L&       DESERET CAPITAL LETTER THEE
+ 1041D         ; NFKC_SCF; 10445          # L&       DESERET CAPITAL LETTER ES
+ 1041E         ; NFKC_SCF; 10446          # L&       DESERET CAPITAL LETTER ZEE
+ 1041F         ; NFKC_SCF; 10447          # L&       DESERET CAPITAL LETTER ESH
+ 10420         ; NFKC_SCF; 10448          # L&       DESERET CAPITAL LETTER ZHEE
+ 10421         ; NFKC_SCF; 10449          # L&       DESERET CAPITAL LETTER ER
+ 10422         ; NFKC_SCF; 1044A          # L&       DESERET CAPITAL LETTER EL
+ 10423         ; NFKC_SCF; 1044B          # L&       DESERET CAPITAL LETTER EM
+ 10424         ; NFKC_SCF; 1044C          # L&       DESERET CAPITAL LETTER EN
+ 10425         ; NFKC_SCF; 1044D          # L&       DESERET CAPITAL LETTER ENG
+ 10426         ; NFKC_SCF; 1044E          # L&       DESERET CAPITAL LETTER OI
+ 10427         ; NFKC_SCF; 1044F          # L&       DESERET CAPITAL LETTER EW
+ 104B0         ; NFKC_SCF; 104D8          # L&       OSAGE CAPITAL LETTER A
+ 104B1         ; NFKC_SCF; 104D9          # L&       OSAGE CAPITAL LETTER AI
+ 104B2         ; NFKC_SCF; 104DA          # L&       OSAGE CAPITAL LETTER AIN
+ 104B3         ; NFKC_SCF; 104DB          # L&       OSAGE CAPITAL LETTER AH
+ 104B4         ; NFKC_SCF; 104DC          # L&       OSAGE CAPITAL LETTER BRA
+ 104B5         ; NFKC_SCF; 104DD          # L&       OSAGE CAPITAL LETTER CHA
+ 104B6         ; NFKC_SCF; 104DE          # L&       OSAGE CAPITAL LETTER EHCHA
+ 104B7         ; NFKC_SCF; 104DF          # L&       OSAGE CAPITAL LETTER E
+ 104B8         ; NFKC_SCF; 104E0          # L&       OSAGE CAPITAL LETTER EIN
+ 104B9         ; NFKC_SCF; 104E1          # L&       OSAGE CAPITAL LETTER HA
+ 104BA         ; NFKC_SCF; 104E2          # L&       OSAGE CAPITAL LETTER HYA
+ 104BB         ; NFKC_SCF; 104E3          # L&       OSAGE CAPITAL LETTER I
+ 104BC         ; NFKC_SCF; 104E4          # L&       OSAGE CAPITAL LETTER KA
+ 104BD         ; NFKC_SCF; 104E5          # L&       OSAGE CAPITAL LETTER EHKA
+ 104BE         ; NFKC_SCF; 104E6          # L&       OSAGE CAPITAL LETTER KYA
+ 104BF         ; NFKC_SCF; 104E7          # L&       OSAGE CAPITAL LETTER LA
+ 104C0         ; NFKC_SCF; 104E8          # L&       OSAGE CAPITAL LETTER MA
+ 104C1         ; NFKC_SCF; 104E9          # L&       OSAGE CAPITAL LETTER NA
+ 104C2         ; NFKC_SCF; 104EA          # L&       OSAGE CAPITAL LETTER O
+ 104C3         ; NFKC_SCF; 104EB          # L&       OSAGE CAPITAL LETTER OIN
+ 104C4         ; NFKC_SCF; 104EC          # L&       OSAGE CAPITAL LETTER PA
+ 104C5         ; NFKC_SCF; 104ED          # L&       OSAGE CAPITAL LETTER EHPA
+ 104C6         ; NFKC_SCF; 104EE          # L&       OSAGE CAPITAL LETTER SA
+ 104C7         ; NFKC_SCF; 104EF          # L&       OSAGE CAPITAL LETTER SHA
+ 104C8         ; NFKC_SCF; 104F0          # L&       OSAGE CAPITAL LETTER TA
+ 104C9         ; NFKC_SCF; 104F1          # L&       OSAGE CAPITAL LETTER EHTA
+ 104CA         ; NFKC_SCF; 104F2          # L&       OSAGE CAPITAL LETTER TSA
+ 104CB         ; NFKC_SCF; 104F3          # L&       OSAGE CAPITAL LETTER EHTSA
+ 104CC         ; NFKC_SCF; 104F4          # L&       OSAGE CAPITAL LETTER TSHA
+ 104CD         ; NFKC_SCF; 104F5          # L&       OSAGE CAPITAL LETTER DHA
+ 104CE         ; NFKC_SCF; 104F6          # L&       OSAGE CAPITAL LETTER U
+ 104CF         ; NFKC_SCF; 104F7          # L&       OSAGE CAPITAL LETTER WA
+ 104D0         ; NFKC_SCF; 104F8          # L&       OSAGE CAPITAL LETTER KHA
+ 104D1         ; NFKC_SCF; 104F9          # L&       OSAGE CAPITAL LETTER GHA
+ 104D2         ; NFKC_SCF; 104FA          # L&       OSAGE CAPITAL LETTER ZA
+ 104D3         ; NFKC_SCF; 104FB          # L&       OSAGE CAPITAL LETTER ZHA
+ 10570         ; NFKC_SCF; 10597          # L&       VITHKUQI CAPITAL LETTER A
+ 10571         ; NFKC_SCF; 10598          # L&       VITHKUQI CAPITAL LETTER BBE
+ 10572         ; NFKC_SCF; 10599          # L&       VITHKUQI CAPITAL LETTER BE
+ 10573         ; NFKC_SCF; 1059A          # L&       VITHKUQI CAPITAL LETTER CE
+ 10574         ; NFKC_SCF; 1059B          # L&       VITHKUQI CAPITAL LETTER CHE
+ 10575         ; NFKC_SCF; 1059C          # L&       VITHKUQI CAPITAL LETTER DE
+ 10576         ; NFKC_SCF; 1059D          # L&       VITHKUQI CAPITAL LETTER DHE
+ 10577         ; NFKC_SCF; 1059E          # L&       VITHKUQI CAPITAL LETTER EI
+ 10578         ; NFKC_SCF; 1059F          # L&       VITHKUQI CAPITAL LETTER E
+ 10579         ; NFKC_SCF; 105A0          # L&       VITHKUQI CAPITAL LETTER FE
+ 1057A         ; NFKC_SCF; 105A1          # L&       VITHKUQI CAPITAL LETTER GA
+ 1057C         ; NFKC_SCF; 105A3          # L&       VITHKUQI CAPITAL LETTER HA
+ 1057D         ; NFKC_SCF; 105A4          # L&       VITHKUQI CAPITAL LETTER HHA
+ 1057E         ; NFKC_SCF; 105A5          # L&       VITHKUQI CAPITAL LETTER I
+ 1057F         ; NFKC_SCF; 105A6          # L&       VITHKUQI CAPITAL LETTER IJE
+ 10580         ; NFKC_SCF; 105A7          # L&       VITHKUQI CAPITAL LETTER JE
+ 10581         ; NFKC_SCF; 105A8          # L&       VITHKUQI CAPITAL LETTER KA
+ 10582         ; NFKC_SCF; 105A9          # L&       VITHKUQI CAPITAL LETTER LA
+ 10583         ; NFKC_SCF; 105AA          # L&       VITHKUQI CAPITAL LETTER LLA
+ 10584         ; NFKC_SCF; 105AB          # L&       VITHKUQI CAPITAL LETTER ME
+ 10585         ; NFKC_SCF; 105AC          # L&       VITHKUQI CAPITAL LETTER NE
+ 10586         ; NFKC_SCF; 105AD          # L&       VITHKUQI CAPITAL LETTER NJE
+ 10587         ; NFKC_SCF; 105AE          # L&       VITHKUQI CAPITAL LETTER O
+ 10588         ; NFKC_SCF; 105AF          # L&       VITHKUQI CAPITAL LETTER PE
+ 10589         ; NFKC_SCF; 105B0          # L&       VITHKUQI CAPITAL LETTER QA
+ 1058A         ; NFKC_SCF; 105B1          # L&       VITHKUQI CAPITAL LETTER RE
+ 1058C         ; NFKC_SCF; 105B3          # L&       VITHKUQI CAPITAL LETTER SE
+ 1058D         ; NFKC_SCF; 105B4          # L&       VITHKUQI CAPITAL LETTER SHE
+ 1058E         ; NFKC_SCF; 105B5          # L&       VITHKUQI CAPITAL LETTER TE
+ 1058F         ; NFKC_SCF; 105B6          # L&       VITHKUQI CAPITAL LETTER THE
+ 10590         ; NFKC_SCF; 105B7          # L&       VITHKUQI CAPITAL LETTER U
+ 10591         ; NFKC_SCF; 105B8          # L&       VITHKUQI CAPITAL LETTER VE
+ 10592         ; NFKC_SCF; 105B9          # L&       VITHKUQI CAPITAL LETTER XE
+ 10594         ; NFKC_SCF; 105BB          # L&       VITHKUQI CAPITAL LETTER Y
+ 10595         ; NFKC_SCF; 105BC          # L&       VITHKUQI CAPITAL LETTER ZE
+ 10781         ; NFKC_SCF; 02D0           # Lm       MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON
+ 10782         ; NFKC_SCF; 02D1           # Lm       MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
+ 10783         ; NFKC_SCF; 00E6           # Lm       MODIFIER LETTER SMALL AE
+ 10784         ; NFKC_SCF; 0299           # Lm       MODIFIER LETTER SMALL CAPITAL B
+ 10785         ; NFKC_SCF; 0253           # Lm       MODIFIER LETTER SMALL B WITH HOOK
+ 10787         ; NFKC_SCF; 02A3           # Lm       MODIFIER LETTER SMALL DZ DIGRAPH
+ 10788         ; NFKC_SCF; AB66           # Lm       MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK
+ 10789         ; NFKC_SCF; 02A5           # Lm       MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL
+ 1078A         ; NFKC_SCF; 02A4           # Lm       MODIFIER LETTER SMALL DEZH DIGRAPH
+ 1078B         ; NFKC_SCF; 0256           # Lm       MODIFIER LETTER SMALL D WITH TAIL
+ 1078C         ; NFKC_SCF; 0257           # Lm       MODIFIER LETTER SMALL D WITH HOOK
+ 1078D         ; NFKC_SCF; 1D91           # Lm       MODIFIER LETTER SMALL D WITH HOOK AND TAIL
+ 1078E         ; NFKC_SCF; 0258           # Lm       MODIFIER LETTER SMALL REVERSED E
+ 1078F         ; NFKC_SCF; 025E           # Lm       MODIFIER LETTER SMALL CLOSED REVERSED OPEN E
+ 10790         ; NFKC_SCF; 02A9           # Lm       MODIFIER LETTER SMALL FENG DIGRAPH
+ 10791         ; NFKC_SCF; 0264           # Lm       MODIFIER LETTER SMALL RAMS HORN
+ 10792         ; NFKC_SCF; 0262           # Lm       MODIFIER LETTER SMALL CAPITAL G
+ 10793         ; NFKC_SCF; 0260           # Lm       MODIFIER LETTER SMALL G WITH HOOK
+ 10794         ; NFKC_SCF; 029B           # Lm       MODIFIER LETTER SMALL CAPITAL G WITH HOOK
+ 10795         ; NFKC_SCF; 0127           # Lm       MODIFIER LETTER SMALL H WITH STROKE
+ 10796         ; NFKC_SCF; 029C           # Lm       MODIFIER LETTER SMALL CAPITAL H
+ 10797         ; NFKC_SCF; 0267           # Lm       MODIFIER LETTER SMALL HENG WITH HOOK
+ 10798         ; NFKC_SCF; 0284           # Lm       MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK
+ 10799         ; NFKC_SCF; 02AA           # Lm       MODIFIER LETTER SMALL LS DIGRAPH
+ 1079A         ; NFKC_SCF; 02AB           # Lm       MODIFIER LETTER SMALL LZ DIGRAPH
+ 1079B         ; NFKC_SCF; 026C           # Lm       MODIFIER LETTER SMALL L WITH BELT
+ 1079C         ; NFKC_SCF; 1DF04          # Lm       MODIFIER LETTER SMALL CAPITAL L WITH BELT
+ 1079D         ; NFKC_SCF; A78E           # Lm       MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT
+ 1079E         ; NFKC_SCF; 026E           # Lm       MODIFIER LETTER SMALL LEZH
+ 1079F         ; NFKC_SCF; 1DF05          # Lm       MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK
+ 107A0         ; NFKC_SCF; 028E           # Lm       MODIFIER LETTER SMALL TURNED Y
+ 107A1         ; NFKC_SCF; 1DF06          # Lm       MODIFIER LETTER SMALL TURNED Y WITH BELT
+ 107A2         ; NFKC_SCF; 00F8           # Lm       MODIFIER LETTER SMALL O WITH STROKE
+ 107A3         ; NFKC_SCF; 0276           # Lm       MODIFIER LETTER SMALL CAPITAL OE
+ 107A4         ; NFKC_SCF; 0277           # Lm       MODIFIER LETTER SMALL CLOSED OMEGA
+ 107A5         ; NFKC_SCF; 0071           # Lm       MODIFIER LETTER SMALL Q
+ 107A6         ; NFKC_SCF; 027A           # Lm       MODIFIER LETTER SMALL TURNED R WITH LONG LEG
+ 107A7         ; NFKC_SCF; 1DF08          # Lm       MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK
+ 107A8         ; NFKC_SCF; 027D           # Lm       MODIFIER LETTER SMALL R WITH TAIL
+ 107A9         ; NFKC_SCF; 027E           # Lm       MODIFIER LETTER SMALL R WITH FISHHOOK
+ 107AA         ; NFKC_SCF; 0280           # Lm       MODIFIER LETTER SMALL CAPITAL R
+ 107AB         ; NFKC_SCF; 02A8           # Lm       MODIFIER LETTER SMALL TC DIGRAPH WITH CURL
+ 107AC         ; NFKC_SCF; 02A6           # Lm       MODIFIER LETTER SMALL TS DIGRAPH
+ 107AD         ; NFKC_SCF; AB67           # Lm       MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK
+ 107AE         ; NFKC_SCF; 02A7           # Lm       MODIFIER LETTER SMALL TESH DIGRAPH
+ 107AF         ; NFKC_SCF; 0288           # Lm       MODIFIER LETTER SMALL T WITH RETROFLEX HOOK
+ 107B0         ; NFKC_SCF; 2C71           # Lm       MODIFIER LETTER SMALL V WITH RIGHT HOOK
+ 107B2         ; NFKC_SCF; 028F           # Lm       MODIFIER LETTER SMALL CAPITAL Y
+ 107B3         ; NFKC_SCF; 02A1           # Lm       MODIFIER LETTER GLOTTAL STOP WITH STROKE
+ 107B4         ; NFKC_SCF; 02A2           # Lm       MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE
+ 107B5         ; NFKC_SCF; 0298           # Lm       MODIFIER LETTER BILABIAL CLICK
+ 107B6         ; NFKC_SCF; 01C0           # Lm       MODIFIER LETTER DENTAL CLICK
+ 107B7         ; NFKC_SCF; 01C1           # Lm       MODIFIER LETTER LATERAL CLICK
+ 107B8         ; NFKC_SCF; 01C2           # Lm       MODIFIER LETTER ALVEOLAR CLICK
+ 107B9         ; NFKC_SCF; 1DF0A          # Lm       MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+ 107BA         ; NFKC_SCF; 1DF1E          # Lm       MODIFIER LETTER SMALL S WITH CURL
+ 10C80         ; NFKC_SCF; 10CC0          # L&       OLD HUNGARIAN CAPITAL LETTER A
+ 10C81         ; NFKC_SCF; 10CC1          # L&       OLD HUNGARIAN CAPITAL LETTER AA
+ 10C82         ; NFKC_SCF; 10CC2          # L&       OLD HUNGARIAN CAPITAL LETTER EB
+ 10C83         ; NFKC_SCF; 10CC3          # L&       OLD HUNGARIAN CAPITAL LETTER AMB
+ 10C84         ; NFKC_SCF; 10CC4          # L&       OLD HUNGARIAN CAPITAL LETTER EC
+ 10C85         ; NFKC_SCF; 10CC5          # L&       OLD HUNGARIAN CAPITAL LETTER ENC
+ 10C86         ; NFKC_SCF; 10CC6          # L&       OLD HUNGARIAN CAPITAL LETTER ECS
+ 10C87         ; NFKC_SCF; 10CC7          # L&       OLD HUNGARIAN CAPITAL LETTER ED
+ 10C88         ; NFKC_SCF; 10CC8          # L&       OLD HUNGARIAN CAPITAL LETTER AND
+ 10C89         ; NFKC_SCF; 10CC9          # L&       OLD HUNGARIAN CAPITAL LETTER E
+ 10C8A         ; NFKC_SCF; 10CCA          # L&       OLD HUNGARIAN CAPITAL LETTER CLOSE E
+ 10C8B         ; NFKC_SCF; 10CCB          # L&       OLD HUNGARIAN CAPITAL LETTER EE
+ 10C8C         ; NFKC_SCF; 10CCC          # L&       OLD HUNGARIAN CAPITAL LETTER EF
+ 10C8D         ; NFKC_SCF; 10CCD          # L&       OLD HUNGARIAN CAPITAL LETTER EG
+ 10C8E         ; NFKC_SCF; 10CCE          # L&       OLD HUNGARIAN CAPITAL LETTER EGY
+ 10C8F         ; NFKC_SCF; 10CCF          # L&       OLD HUNGARIAN CAPITAL LETTER EH
+ 10C90         ; NFKC_SCF; 10CD0          # L&       OLD HUNGARIAN CAPITAL LETTER I
+ 10C91         ; NFKC_SCF; 10CD1          # L&       OLD HUNGARIAN CAPITAL LETTER II
+ 10C92         ; NFKC_SCF; 10CD2          # L&       OLD HUNGARIAN CAPITAL LETTER EJ
+ 10C93         ; NFKC_SCF; 10CD3          # L&       OLD HUNGARIAN CAPITAL LETTER EK
+ 10C94         ; NFKC_SCF; 10CD4          # L&       OLD HUNGARIAN CAPITAL LETTER AK
+ 10C95         ; NFKC_SCF; 10CD5          # L&       OLD HUNGARIAN CAPITAL LETTER UNK
+ 10C96         ; NFKC_SCF; 10CD6          # L&       OLD HUNGARIAN CAPITAL LETTER EL
+ 10C97         ; NFKC_SCF; 10CD7          # L&       OLD HUNGARIAN CAPITAL LETTER ELY
+ 10C98         ; NFKC_SCF; 10CD8          # L&       OLD HUNGARIAN CAPITAL LETTER EM
+ 10C99         ; NFKC_SCF; 10CD9          # L&       OLD HUNGARIAN CAPITAL LETTER EN
+ 10C9A         ; NFKC_SCF; 10CDA          # L&       OLD HUNGARIAN CAPITAL LETTER ENY
+ 10C9B         ; NFKC_SCF; 10CDB          # L&       OLD HUNGARIAN CAPITAL LETTER O
+ 10C9C         ; NFKC_SCF; 10CDC          # L&       OLD HUNGARIAN CAPITAL LETTER OO
+ 10C9D         ; NFKC_SCF; 10CDD          # L&       OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE
+ 10C9E         ; NFKC_SCF; 10CDE          # L&       OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE
+ 10C9F         ; NFKC_SCF; 10CDF          # L&       OLD HUNGARIAN CAPITAL LETTER OEE
+ 10CA0         ; NFKC_SCF; 10CE0          # L&       OLD HUNGARIAN CAPITAL LETTER EP
+ 10CA1         ; NFKC_SCF; 10CE1          # L&       OLD HUNGARIAN CAPITAL LETTER EMP
+ 10CA2         ; NFKC_SCF; 10CE2          # L&       OLD HUNGARIAN CAPITAL LETTER ER
+ 10CA3         ; NFKC_SCF; 10CE3          # L&       OLD HUNGARIAN CAPITAL LETTER SHORT ER
+ 10CA4         ; NFKC_SCF; 10CE4          # L&       OLD HUNGARIAN CAPITAL LETTER ES
+ 10CA5         ; NFKC_SCF; 10CE5          # L&       OLD HUNGARIAN CAPITAL LETTER ESZ
+ 10CA6         ; NFKC_SCF; 10CE6          # L&       OLD HUNGARIAN CAPITAL LETTER ET
+ 10CA7         ; NFKC_SCF; 10CE7          # L&       OLD HUNGARIAN CAPITAL LETTER ENT
+ 10CA8         ; NFKC_SCF; 10CE8          # L&       OLD HUNGARIAN CAPITAL LETTER ETY
+ 10CA9         ; NFKC_SCF; 10CE9          # L&       OLD HUNGARIAN CAPITAL LETTER ECH
+ 10CAA         ; NFKC_SCF; 10CEA          # L&       OLD HUNGARIAN CAPITAL LETTER U
+ 10CAB         ; NFKC_SCF; 10CEB          # L&       OLD HUNGARIAN CAPITAL LETTER UU
+ 10CAC         ; NFKC_SCF; 10CEC          # L&       OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE
+ 10CAD         ; NFKC_SCF; 10CED          # L&       OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE
+ 10CAE         ; NFKC_SCF; 10CEE          # L&       OLD HUNGARIAN CAPITAL LETTER EV
+ 10CAF         ; NFKC_SCF; 10CEF          # L&       OLD HUNGARIAN CAPITAL LETTER EZ
+ 10CB0         ; NFKC_SCF; 10CF0          # L&       OLD HUNGARIAN CAPITAL LETTER EZS
+ 10CB1         ; NFKC_SCF; 10CF1          # L&       OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN
+ 10CB2         ; NFKC_SCF; 10CF2          # L&       OLD HUNGARIAN CAPITAL LETTER US
+ 118A0         ; NFKC_SCF; 118C0          # L&       WARANG CITI CAPITAL LETTER NGAA
+ 118A1         ; NFKC_SCF; 118C1          # L&       WARANG CITI CAPITAL LETTER A
+ 118A2         ; NFKC_SCF; 118C2          # L&       WARANG CITI CAPITAL LETTER WI
+ 118A3         ; NFKC_SCF; 118C3          # L&       WARANG CITI CAPITAL LETTER YU
+ 118A4         ; NFKC_SCF; 118C4          # L&       WARANG CITI CAPITAL LETTER YA
+ 118A5         ; NFKC_SCF; 118C5          # L&       WARANG CITI CAPITAL LETTER YO
+ 118A6         ; NFKC_SCF; 118C6          # L&       WARANG CITI CAPITAL LETTER II
+ 118A7         ; NFKC_SCF; 118C7          # L&       WARANG CITI CAPITAL LETTER UU
+ 118A8         ; NFKC_SCF; 118C8          # L&       WARANG CITI CAPITAL LETTER E
+ 118A9         ; NFKC_SCF; 118C9          # L&       WARANG CITI CAPITAL LETTER O
+ 118AA         ; NFKC_SCF; 118CA          # L&       WARANG CITI CAPITAL LETTER ANG
+ 118AB         ; NFKC_SCF; 118CB          # L&       WARANG CITI CAPITAL LETTER GA
+ 118AC         ; NFKC_SCF; 118CC          # L&       WARANG CITI CAPITAL LETTER KO
+ 118AD         ; NFKC_SCF; 118CD          # L&       WARANG CITI CAPITAL LETTER ENY
+ 118AE         ; NFKC_SCF; 118CE          # L&       WARANG CITI CAPITAL LETTER YUJ
+ 118AF         ; NFKC_SCF; 118CF          # L&       WARANG CITI CAPITAL LETTER UC
+ 118B0         ; NFKC_SCF; 118D0          # L&       WARANG CITI CAPITAL LETTER ENN
+ 118B1         ; NFKC_SCF; 118D1          # L&       WARANG CITI CAPITAL LETTER ODD
+ 118B2         ; NFKC_SCF; 118D2          # L&       WARANG CITI CAPITAL LETTER TTE
+ 118B3         ; NFKC_SCF; 118D3          # L&       WARANG CITI CAPITAL LETTER NUNG
+ 118B4         ; NFKC_SCF; 118D4          # L&       WARANG CITI CAPITAL LETTER DA
+ 118B5         ; NFKC_SCF; 118D5          # L&       WARANG CITI CAPITAL LETTER AT
+ 118B6         ; NFKC_SCF; 118D6          # L&       WARANG CITI CAPITAL LETTER AM
+ 118B7         ; NFKC_SCF; 118D7          # L&       WARANG CITI CAPITAL LETTER BU
+ 118B8         ; NFKC_SCF; 118D8          # L&       WARANG CITI CAPITAL LETTER PU
+ 118B9         ; NFKC_SCF; 118D9          # L&       WARANG CITI CAPITAL LETTER HIYO
+ 118BA         ; NFKC_SCF; 118DA          # L&       WARANG CITI CAPITAL LETTER HOLO
+ 118BB         ; NFKC_SCF; 118DB          # L&       WARANG CITI CAPITAL LETTER HORR
+ 118BC         ; NFKC_SCF; 118DC          # L&       WARANG CITI CAPITAL LETTER HAR
+ 118BD         ; NFKC_SCF; 118DD          # L&       WARANG CITI CAPITAL LETTER SSUU
+ 118BE         ; NFKC_SCF; 118DE          # L&       WARANG CITI CAPITAL LETTER SII
+ 118BF         ; NFKC_SCF; 118DF          # L&       WARANG CITI CAPITAL LETTER VIYO
+ 16E40         ; NFKC_SCF; 16E60          # L&       MEDEFAIDRIN CAPITAL LETTER M
+ 16E41         ; NFKC_SCF; 16E61          # L&       MEDEFAIDRIN CAPITAL LETTER S
+ 16E42         ; NFKC_SCF; 16E62          # L&       MEDEFAIDRIN CAPITAL LETTER V
+ 16E43         ; NFKC_SCF; 16E63          # L&       MEDEFAIDRIN CAPITAL LETTER W
+ 16E44         ; NFKC_SCF; 16E64          # L&       MEDEFAIDRIN CAPITAL LETTER ATIU
+ 16E45         ; NFKC_SCF; 16E65          # L&       MEDEFAIDRIN CAPITAL LETTER Z
+ 16E46         ; NFKC_SCF; 16E66          # L&       MEDEFAIDRIN CAPITAL LETTER KP
+ 16E47         ; NFKC_SCF; 16E67          # L&       MEDEFAIDRIN CAPITAL LETTER P
+ 16E48         ; NFKC_SCF; 16E68          # L&       MEDEFAIDRIN CAPITAL LETTER T
+ 16E49         ; NFKC_SCF; 16E69          # L&       MEDEFAIDRIN CAPITAL LETTER G
+ 16E4A         ; NFKC_SCF; 16E6A          # L&       MEDEFAIDRIN CAPITAL LETTER F
+ 16E4B         ; NFKC_SCF; 16E6B          # L&       MEDEFAIDRIN CAPITAL LETTER I
+ 16E4C         ; NFKC_SCF; 16E6C          # L&       MEDEFAIDRIN CAPITAL LETTER K
+ 16E4D         ; NFKC_SCF; 16E6D          # L&       MEDEFAIDRIN CAPITAL LETTER A
+ 16E4E         ; NFKC_SCF; 16E6E          # L&       MEDEFAIDRIN CAPITAL LETTER J
+ 16E4F         ; NFKC_SCF; 16E6F          # L&       MEDEFAIDRIN CAPITAL LETTER E
+ 16E50         ; NFKC_SCF; 16E70          # L&       MEDEFAIDRIN CAPITAL LETTER B
+ 16E51         ; NFKC_SCF; 16E71          # L&       MEDEFAIDRIN CAPITAL LETTER C
+ 16E52         ; NFKC_SCF; 16E72          # L&       MEDEFAIDRIN CAPITAL LETTER U
+ 16E53         ; NFKC_SCF; 16E73          # L&       MEDEFAIDRIN CAPITAL LETTER YU
+ 16E54         ; NFKC_SCF; 16E74          # L&       MEDEFAIDRIN CAPITAL LETTER L
+ 16E55         ; NFKC_SCF; 16E75          # L&       MEDEFAIDRIN CAPITAL LETTER Q
+ 16E56         ; NFKC_SCF; 16E76          # L&       MEDEFAIDRIN CAPITAL LETTER HP
+ 16E57         ; NFKC_SCF; 16E77          # L&       MEDEFAIDRIN CAPITAL LETTER NY
+ 16E58         ; NFKC_SCF; 16E78          # L&       MEDEFAIDRIN CAPITAL LETTER X
+ 16E59         ; NFKC_SCF; 16E79          # L&       MEDEFAIDRIN CAPITAL LETTER D
+ 16E5A         ; NFKC_SCF; 16E7A          # L&       MEDEFAIDRIN CAPITAL LETTER OE
+ 16E5B         ; NFKC_SCF; 16E7B          # L&       MEDEFAIDRIN CAPITAL LETTER N
+ 16E5C         ; NFKC_SCF; 16E7C          # L&       MEDEFAIDRIN CAPITAL LETTER R
+ 16E5D         ; NFKC_SCF; 16E7D          # L&       MEDEFAIDRIN CAPITAL LETTER O
+ 16E5E         ; NFKC_SCF; 16E7E          # L&       MEDEFAIDRIN CAPITAL LETTER AI
+ 16E5F         ; NFKC_SCF; 16E7F          # L&       MEDEFAIDRIN CAPITAL LETTER Y
+ 1BCA0..1BCA3  ; NFKC_SCF;                # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+ 1D15E         ; NFKC_SCF; 1D157 1D165    # So       MUSICAL SYMBOL HALF NOTE
+ 1D15F         ; NFKC_SCF; 1D158 1D165    # So       MUSICAL SYMBOL QUARTER NOTE
+ 1D160         ; NFKC_SCF; 1D158 1D165 1D16E #So     MUSICAL SYMBOL EIGHTH NOTE
+ 1D161         ; NFKC_SCF; 1D158 1D165 1D16F #So     MUSICAL SYMBOL SIXTEENTH NOTE
+ 1D162         ; NFKC_SCF; 1D158 1D165 1D170 #So     MUSICAL SYMBOL THIRTY-SECOND NOTE
+ 1D163         ; NFKC_SCF; 1D158 1D165 1D171 #So     MUSICAL SYMBOL SIXTY-FOURTH NOTE
+ 1D164         ; NFKC_SCF; 1D158 1D165 1D172 #So     MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+ 1D173..1D17A  ; NFKC_SCF;                # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+ 1D1BB         ; NFKC_SCF; 1D1B9 1D165    # So       MUSICAL SYMBOL MINIMA
+ 1D1BC         ; NFKC_SCF; 1D1BA 1D165    # So       MUSICAL SYMBOL MINIMA BLACK
+ 1D1BD         ; NFKC_SCF; 1D1B9 1D165 1D16E #So     MUSICAL SYMBOL SEMIMINIMA WHITE
+ 1D1BE         ; NFKC_SCF; 1D1BA 1D165 1D16E #So     MUSICAL SYMBOL SEMIMINIMA BLACK
+ 1D1BF         ; NFKC_SCF; 1D1B9 1D165 1D16F #So     MUSICAL SYMBOL FUSA WHITE
+ 1D1C0         ; NFKC_SCF; 1D1BA 1D165 1D16F #So     MUSICAL SYMBOL FUSA BLACK
+ 1D400         ; NFKC_SCF; 0061           # L&       MATHEMATICAL BOLD CAPITAL A
+ 1D401         ; NFKC_SCF; 0062           # L&       MATHEMATICAL BOLD CAPITAL B
+ 1D402         ; NFKC_SCF; 0063           # L&       MATHEMATICAL BOLD CAPITAL C
+ 1D403         ; NFKC_SCF; 0064           # L&       MATHEMATICAL BOLD CAPITAL D
+ 1D404         ; NFKC_SCF; 0065           # L&       MATHEMATICAL BOLD CAPITAL E
+ 1D405         ; NFKC_SCF; 0066           # L&       MATHEMATICAL BOLD CAPITAL F
+ 1D406         ; NFKC_SCF; 0067           # L&       MATHEMATICAL BOLD CAPITAL G
+ 1D407         ; NFKC_SCF; 0068           # L&       MATHEMATICAL BOLD CAPITAL H
+ 1D408         ; NFKC_SCF; 0069           # L&       MATHEMATICAL BOLD CAPITAL I
+ 1D409         ; NFKC_SCF; 006A           # L&       MATHEMATICAL BOLD CAPITAL J
+ 1D40A         ; NFKC_SCF; 006B           # L&       MATHEMATICAL BOLD CAPITAL K
+ 1D40B         ; NFKC_SCF; 006C           # L&       MATHEMATICAL BOLD CAPITAL L
+ 1D40C         ; NFKC_SCF; 006D           # L&       MATHEMATICAL BOLD CAPITAL M
+ 1D40D         ; NFKC_SCF; 006E           # L&       MATHEMATICAL BOLD CAPITAL N
+ 1D40E         ; NFKC_SCF; 006F           # L&       MATHEMATICAL BOLD CAPITAL O
+ 1D40F         ; NFKC_SCF; 0070           # L&       MATHEMATICAL BOLD CAPITAL P
+ 1D410         ; NFKC_SCF; 0071           # L&       MATHEMATICAL BOLD CAPITAL Q
+ 1D411         ; NFKC_SCF; 0072           # L&       MATHEMATICAL BOLD CAPITAL R
+ 1D412         ; NFKC_SCF; 0073           # L&       MATHEMATICAL BOLD CAPITAL S
+ 1D413         ; NFKC_SCF; 0074           # L&       MATHEMATICAL BOLD CAPITAL T
+ 1D414         ; NFKC_SCF; 0075           # L&       MATHEMATICAL BOLD CAPITAL U
+ 1D415         ; NFKC_SCF; 0076           # L&       MATHEMATICAL BOLD CAPITAL V
+ 1D416         ; NFKC_SCF; 0077           # L&       MATHEMATICAL BOLD CAPITAL W
+ 1D417         ; NFKC_SCF; 0078           # L&       MATHEMATICAL BOLD CAPITAL X
+ 1D418         ; NFKC_SCF; 0079           # L&       MATHEMATICAL BOLD CAPITAL Y
+ 1D419         ; NFKC_SCF; 007A           # L&       MATHEMATICAL BOLD CAPITAL Z
+ 1D41A         ; NFKC_SCF; 0061           # L&       MATHEMATICAL BOLD SMALL A
+ 1D41B         ; NFKC_SCF; 0062           # L&       MATHEMATICAL BOLD SMALL B
+ 1D41C         ; NFKC_SCF; 0063           # L&       MATHEMATICAL BOLD SMALL C
+ 1D41D         ; NFKC_SCF; 0064           # L&       MATHEMATICAL BOLD SMALL D
+ 1D41E         ; NFKC_SCF; 0065           # L&       MATHEMATICAL BOLD SMALL E
+ 1D41F         ; NFKC_SCF; 0066           # L&       MATHEMATICAL BOLD SMALL F
+ 1D420         ; NFKC_SCF; 0067           # L&       MATHEMATICAL BOLD SMALL G
+ 1D421         ; NFKC_SCF; 0068           # L&       MATHEMATICAL BOLD SMALL H
+ 1D422         ; NFKC_SCF; 0069           # L&       MATHEMATICAL BOLD SMALL I
+ 1D423         ; NFKC_SCF; 006A           # L&       MATHEMATICAL BOLD SMALL J
+ 1D424         ; NFKC_SCF; 006B           # L&       MATHEMATICAL BOLD SMALL K
+ 1D425         ; NFKC_SCF; 006C           # L&       MATHEMATICAL BOLD SMALL L
+ 1D426         ; NFKC_SCF; 006D           # L&       MATHEMATICAL BOLD SMALL M
+ 1D427         ; NFKC_SCF; 006E           # L&       MATHEMATICAL BOLD SMALL N
+ 1D428         ; NFKC_SCF; 006F           # L&       MATHEMATICAL BOLD SMALL O
+ 1D429         ; NFKC_SCF; 0070           # L&       MATHEMATICAL BOLD SMALL P
+ 1D42A         ; NFKC_SCF; 0071           # L&       MATHEMATICAL BOLD SMALL Q
+ 1D42B         ; NFKC_SCF; 0072           # L&       MATHEMATICAL BOLD SMALL R
+ 1D42C         ; NFKC_SCF; 0073           # L&       MATHEMATICAL BOLD SMALL S
+ 1D42D         ; NFKC_SCF; 0074           # L&       MATHEMATICAL BOLD SMALL T
+ 1D42E         ; NFKC_SCF; 0075           # L&       MATHEMATICAL BOLD SMALL U
+ 1D42F         ; NFKC_SCF; 0076           # L&       MATHEMATICAL BOLD SMALL V
+ 1D430         ; NFKC_SCF; 0077           # L&       MATHEMATICAL BOLD SMALL W
+ 1D431         ; NFKC_SCF; 0078           # L&       MATHEMATICAL BOLD SMALL X
+ 1D432         ; NFKC_SCF; 0079           # L&       MATHEMATICAL BOLD SMALL Y
+ 1D433         ; NFKC_SCF; 007A           # L&       MATHEMATICAL BOLD SMALL Z
+ 1D434         ; NFKC_SCF; 0061           # L&       MATHEMATICAL ITALIC CAPITAL A
+ 1D435         ; NFKC_SCF; 0062           # L&       MATHEMATICAL ITALIC CAPITAL B
+ 1D436         ; NFKC_SCF; 0063           # L&       MATHEMATICAL ITALIC CAPITAL C
+ 1D437         ; NFKC_SCF; 0064           # L&       MATHEMATICAL ITALIC CAPITAL D
+ 1D438         ; NFKC_SCF; 0065           # L&       MATHEMATICAL ITALIC CAPITAL E
+ 1D439         ; NFKC_SCF; 0066           # L&       MATHEMATICAL ITALIC CAPITAL F
+ 1D43A         ; NFKC_SCF; 0067           # L&       MATHEMATICAL ITALIC CAPITAL G
+ 1D43B         ; NFKC_SCF; 0068           # L&       MATHEMATICAL ITALIC CAPITAL H
+ 1D43C         ; NFKC_SCF; 0069           # L&       MATHEMATICAL ITALIC CAPITAL I
+ 1D43D         ; NFKC_SCF; 006A           # L&       MATHEMATICAL ITALIC CAPITAL J
+ 1D43E         ; NFKC_SCF; 006B           # L&       MATHEMATICAL ITALIC CAPITAL K
+ 1D43F         ; NFKC_SCF; 006C           # L&       MATHEMATICAL ITALIC CAPITAL L
+ 1D440         ; NFKC_SCF; 006D           # L&       MATHEMATICAL ITALIC CAPITAL M
+ 1D441         ; NFKC_SCF; 006E           # L&       MATHEMATICAL ITALIC CAPITAL N
+ 1D442         ; NFKC_SCF; 006F           # L&       MATHEMATICAL ITALIC CAPITAL O
+ 1D443         ; NFKC_SCF; 0070           # L&       MATHEMATICAL ITALIC CAPITAL P
+ 1D444         ; NFKC_SCF; 0071           # L&       MATHEMATICAL ITALIC CAPITAL Q
+ 1D445         ; NFKC_SCF; 0072           # L&       MATHEMATICAL ITALIC CAPITAL R
+ 1D446         ; NFKC_SCF; 0073           # L&       MATHEMATICAL ITALIC CAPITAL S
+ 1D447         ; NFKC_SCF; 0074           # L&       MATHEMATICAL ITALIC CAPITAL T
+ 1D448         ; NFKC_SCF; 0075           # L&       MATHEMATICAL ITALIC CAPITAL U
+ 1D449         ; NFKC_SCF; 0076           # L&       MATHEMATICAL ITALIC CAPITAL V
+ 1D44A         ; NFKC_SCF; 0077           # L&       MATHEMATICAL ITALIC CAPITAL W
+ 1D44B         ; NFKC_SCF; 0078           # L&       MATHEMATICAL ITALIC CAPITAL X
+ 1D44C         ; NFKC_SCF; 0079           # L&       MATHEMATICAL ITALIC CAPITAL Y
+ 1D44D         ; NFKC_SCF; 007A           # L&       MATHEMATICAL ITALIC CAPITAL Z
+ 1D44E         ; NFKC_SCF; 0061           # L&       MATHEMATICAL ITALIC SMALL A
+ 1D44F         ; NFKC_SCF; 0062           # L&       MATHEMATICAL ITALIC SMALL B
+ 1D450         ; NFKC_SCF; 0063           # L&       MATHEMATICAL ITALIC SMALL C
+ 1D451         ; NFKC_SCF; 0064           # L&       MATHEMATICAL ITALIC SMALL D
+ 1D452         ; NFKC_SCF; 0065           # L&       MATHEMATICAL ITALIC SMALL E
+ 1D453         ; NFKC_SCF; 0066           # L&       MATHEMATICAL ITALIC SMALL F
+ 1D454         ; NFKC_SCF; 0067           # L&       MATHEMATICAL ITALIC SMALL G
+ 1D456         ; NFKC_SCF; 0069           # L&       MATHEMATICAL ITALIC SMALL I
+ 1D457         ; NFKC_SCF; 006A           # L&       MATHEMATICAL ITALIC SMALL J
+ 1D458         ; NFKC_SCF; 006B           # L&       MATHEMATICAL ITALIC SMALL K
+ 1D459         ; NFKC_SCF; 006C           # L&       MATHEMATICAL ITALIC SMALL L
+ 1D45A         ; NFKC_SCF; 006D           # L&       MATHEMATICAL ITALIC SMALL M
+ 1D45B         ; NFKC_SCF; 006E           # L&       MATHEMATICAL ITALIC SMALL N
+ 1D45C         ; NFKC_SCF; 006F           # L&       MATHEMATICAL ITALIC SMALL O
+ 1D45D         ; NFKC_SCF; 0070           # L&       MATHEMATICAL ITALIC SMALL P
+ 1D45E         ; NFKC_SCF; 0071           # L&       MATHEMATICAL ITALIC SMALL Q
+ 1D45F         ; NFKC_SCF; 0072           # L&       MATHEMATICAL ITALIC SMALL R
+ 1D460         ; NFKC_SCF; 0073           # L&       MATHEMATICAL ITALIC SMALL S
+ 1D461         ; NFKC_SCF; 0074           # L&       MATHEMATICAL ITALIC SMALL T
+ 1D462         ; NFKC_SCF; 0075           # L&       MATHEMATICAL ITALIC SMALL U
+ 1D463         ; NFKC_SCF; 0076           # L&       MATHEMATICAL ITALIC SMALL V
+ 1D464         ; NFKC_SCF; 0077           # L&       MATHEMATICAL ITALIC SMALL W
+ 1D465         ; NFKC_SCF; 0078           # L&       MATHEMATICAL ITALIC SMALL X
+ 1D466         ; NFKC_SCF; 0079           # L&       MATHEMATICAL ITALIC SMALL Y
+ 1D467         ; NFKC_SCF; 007A           # L&       MATHEMATICAL ITALIC SMALL Z
+ 1D468         ; NFKC_SCF; 0061           # L&       MATHEMATICAL BOLD ITALIC CAPITAL A
+ 1D469         ; NFKC_SCF; 0062           # L&       MATHEMATICAL BOLD ITALIC CAPITAL B
+ 1D46A         ; NFKC_SCF; 0063           # L&       MATHEMATICAL BOLD ITALIC CAPITAL C
+ 1D46B         ; NFKC_SCF; 0064           # L&       MATHEMATICAL BOLD ITALIC CAPITAL D
+ 1D46C         ; NFKC_SCF; 0065           # L&       MATHEMATICAL BOLD ITALIC CAPITAL E
+ 1D46D         ; NFKC_SCF; 0066           # L&       MATHEMATICAL BOLD ITALIC CAPITAL F
+ 1D46E         ; NFKC_SCF; 0067           # L&       MATHEMATICAL BOLD ITALIC CAPITAL G
+ 1D46F         ; NFKC_SCF; 0068           # L&       MATHEMATICAL BOLD ITALIC CAPITAL H
+ 1D470         ; NFKC_SCF; 0069           # L&       MATHEMATICAL BOLD ITALIC CAPITAL I
+ 1D471         ; NFKC_SCF; 006A           # L&       MATHEMATICAL BOLD ITALIC CAPITAL J
+ 1D472         ; NFKC_SCF; 006B           # L&       MATHEMATICAL BOLD ITALIC CAPITAL K
+ 1D473         ; NFKC_SCF; 006C           # L&       MATHEMATICAL BOLD ITALIC CAPITAL L
+ 1D474         ; NFKC_SCF; 006D           # L&       MATHEMATICAL BOLD ITALIC CAPITAL M
+ 1D475         ; NFKC_SCF; 006E           # L&       MATHEMATICAL BOLD ITALIC CAPITAL N
+ 1D476         ; NFKC_SCF; 006F           # L&       MATHEMATICAL BOLD ITALIC CAPITAL O
+ 1D477         ; NFKC_SCF; 0070           # L&       MATHEMATICAL BOLD ITALIC CAPITAL P
+ 1D478         ; NFKC_SCF; 0071           # L&       MATHEMATICAL BOLD ITALIC CAPITAL Q
+ 1D479         ; NFKC_SCF; 0072           # L&       MATHEMATICAL BOLD ITALIC CAPITAL R
+ 1D47A         ; NFKC_SCF; 0073           # L&       MATHEMATICAL BOLD ITALIC CAPITAL S
+ 1D47B         ; NFKC_SCF; 0074           # L&       MATHEMATICAL BOLD ITALIC CAPITAL T
+ 1D47C         ; NFKC_SCF; 0075           # L&       MATHEMATICAL BOLD ITALIC CAPITAL U
+ 1D47D         ; NFKC_SCF; 0076           # L&       MATHEMATICAL BOLD ITALIC CAPITAL V
+ 1D47E         ; NFKC_SCF; 0077           # L&       MATHEMATICAL BOLD ITALIC CAPITAL W
+ 1D47F         ; NFKC_SCF; 0078           # L&       MATHEMATICAL BOLD ITALIC CAPITAL X
+ 1D480         ; NFKC_SCF; 0079           # L&       MATHEMATICAL BOLD ITALIC CAPITAL Y
+ 1D481         ; NFKC_SCF; 007A           # L&       MATHEMATICAL BOLD ITALIC CAPITAL Z
+ 1D482         ; NFKC_SCF; 0061           # L&       MATHEMATICAL BOLD ITALIC SMALL A
+ 1D483         ; NFKC_SCF; 0062           # L&       MATHEMATICAL BOLD ITALIC SMALL B
+ 1D484         ; NFKC_SCF; 0063           # L&       MATHEMATICAL BOLD ITALIC SMALL C
+ 1D485         ; NFKC_SCF; 0064           # L&       MATHEMATICAL BOLD ITALIC SMALL D
+ 1D486         ; NFKC_SCF; 0065           # L&       MATHEMATICAL BOLD ITALIC SMALL E
+ 1D487         ; NFKC_SCF; 0066           # L&       MATHEMATICAL BOLD ITALIC SMALL F
+ 1D488         ; NFKC_SCF; 0067           # L&       MATHEMATICAL BOLD ITALIC SMALL G
+ 1D489         ; NFKC_SCF; 0068           # L&       MATHEMATICAL BOLD ITALIC SMALL H
+ 1D48A         ; NFKC_SCF; 0069           # L&       MATHEMATICAL BOLD ITALIC SMALL I
+ 1D48B         ; NFKC_SCF; 006A           # L&       MATHEMATICAL BOLD ITALIC SMALL J
+ 1D48C         ; NFKC_SCF; 006B           # L&       MATHEMATICAL BOLD ITALIC SMALL K
+ 1D48D         ; NFKC_SCF; 006C           # L&       MATHEMATICAL BOLD ITALIC SMALL L
+ 1D48E         ; NFKC_SCF; 006D           # L&       MATHEMATICAL BOLD ITALIC SMALL M
+ 1D48F         ; NFKC_SCF; 006E           # L&       MATHEMATICAL BOLD ITALIC SMALL N
+ 1D490         ; NFKC_SCF; 006F           # L&       MATHEMATICAL BOLD ITALIC SMALL O
+ 1D491         ; NFKC_SCF; 0070           # L&       MATHEMATICAL BOLD ITALIC SMALL P
+ 1D492         ; NFKC_SCF; 0071           # L&       MATHEMATICAL BOLD ITALIC SMALL Q
+ 1D493         ; NFKC_SCF; 0072           # L&       MATHEMATICAL BOLD ITALIC SMALL R
+ 1D494         ; NFKC_SCF; 0073           # L&       MATHEMATICAL BOLD ITALIC SMALL S
+ 1D495         ; NFKC_SCF; 0074           # L&       MATHEMATICAL BOLD ITALIC SMALL T
+ 1D496         ; NFKC_SCF; 0075           # L&       MATHEMATICAL BOLD ITALIC SMALL U
+ 1D497         ; NFKC_SCF; 0076           # L&       MATHEMATICAL BOLD ITALIC SMALL V
+ 1D498         ; NFKC_SCF; 0077           # L&       MATHEMATICAL BOLD ITALIC SMALL W
+ 1D499         ; NFKC_SCF; 0078           # L&       MATHEMATICAL BOLD ITALIC SMALL X
+ 1D49A         ; NFKC_SCF; 0079           # L&       MATHEMATICAL BOLD ITALIC SMALL Y
+ 1D49B         ; NFKC_SCF; 007A           # L&       MATHEMATICAL BOLD ITALIC SMALL Z
+ 1D49C         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SCRIPT CAPITAL A
+ 1D49E         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SCRIPT CAPITAL C
+ 1D49F         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SCRIPT CAPITAL D
+ 1D4A2         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SCRIPT CAPITAL G
+ 1D4A5         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SCRIPT CAPITAL J
+ 1D4A6         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SCRIPT CAPITAL K
+ 1D4A9         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SCRIPT CAPITAL N
+ 1D4AA         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SCRIPT CAPITAL O
+ 1D4AB         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SCRIPT CAPITAL P
+ 1D4AC         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SCRIPT CAPITAL Q
+ 1D4AE         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SCRIPT CAPITAL S
+ 1D4AF         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SCRIPT CAPITAL T
+ 1D4B0         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SCRIPT CAPITAL U
+ 1D4B1         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SCRIPT CAPITAL V
+ 1D4B2         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SCRIPT CAPITAL W
+ 1D4B3         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SCRIPT CAPITAL X
+ 1D4B4         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SCRIPT CAPITAL Y
+ 1D4B5         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SCRIPT CAPITAL Z
+ 1D4B6         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SCRIPT SMALL A
+ 1D4B7         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SCRIPT SMALL B
+ 1D4B8         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SCRIPT SMALL C
+ 1D4B9         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SCRIPT SMALL D
+ 1D4BB         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SCRIPT SMALL F
+ 1D4BD         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SCRIPT SMALL H
+ 1D4BE         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SCRIPT SMALL I
+ 1D4BF         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SCRIPT SMALL J
+ 1D4C0         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SCRIPT SMALL K
+ 1D4C1         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SCRIPT SMALL L
+ 1D4C2         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SCRIPT SMALL M
+ 1D4C3         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SCRIPT SMALL N
+ 1D4C5         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SCRIPT SMALL P
+ 1D4C6         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SCRIPT SMALL Q
+ 1D4C7         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SCRIPT SMALL R
+ 1D4C8         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SCRIPT SMALL S
+ 1D4C9         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SCRIPT SMALL T
+ 1D4CA         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SCRIPT SMALL U
+ 1D4CB         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SCRIPT SMALL V
+ 1D4CC         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SCRIPT SMALL W
+ 1D4CD         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SCRIPT SMALL X
+ 1D4CE         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SCRIPT SMALL Y
+ 1D4CF         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SCRIPT SMALL Z
+ 1D4D0         ; NFKC_SCF; 0061           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL A
+ 1D4D1         ; NFKC_SCF; 0062           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL B
+ 1D4D2         ; NFKC_SCF; 0063           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL C
+ 1D4D3         ; NFKC_SCF; 0064           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL D
+ 1D4D4         ; NFKC_SCF; 0065           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL E
+ 1D4D5         ; NFKC_SCF; 0066           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL F
+ 1D4D6         ; NFKC_SCF; 0067           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL G
+ 1D4D7         ; NFKC_SCF; 0068           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL H
+ 1D4D8         ; NFKC_SCF; 0069           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL I
+ 1D4D9         ; NFKC_SCF; 006A           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL J
+ 1D4DA         ; NFKC_SCF; 006B           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL K
+ 1D4DB         ; NFKC_SCF; 006C           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL L
+ 1D4DC         ; NFKC_SCF; 006D           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL M
+ 1D4DD         ; NFKC_SCF; 006E           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL N
+ 1D4DE         ; NFKC_SCF; 006F           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL O
+ 1D4DF         ; NFKC_SCF; 0070           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL P
+ 1D4E0         ; NFKC_SCF; 0071           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL Q
+ 1D4E1         ; NFKC_SCF; 0072           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL R
+ 1D4E2         ; NFKC_SCF; 0073           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL S
+ 1D4E3         ; NFKC_SCF; 0074           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL T
+ 1D4E4         ; NFKC_SCF; 0075           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL U
+ 1D4E5         ; NFKC_SCF; 0076           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL V
+ 1D4E6         ; NFKC_SCF; 0077           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL W
+ 1D4E7         ; NFKC_SCF; 0078           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL X
+ 1D4E8         ; NFKC_SCF; 0079           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL Y
+ 1D4E9         ; NFKC_SCF; 007A           # L&       MATHEMATICAL BOLD SCRIPT CAPITAL Z
+ 1D4EA         ; NFKC_SCF; 0061           # L&       MATHEMATICAL BOLD SCRIPT SMALL A
+ 1D4EB         ; NFKC_SCF; 0062           # L&       MATHEMATICAL BOLD SCRIPT SMALL B
+ 1D4EC         ; NFKC_SCF; 0063           # L&       MATHEMATICAL BOLD SCRIPT SMALL C
+ 1D4ED         ; NFKC_SCF; 0064           # L&       MATHEMATICAL BOLD SCRIPT SMALL D
+ 1D4EE         ; NFKC_SCF; 0065           # L&       MATHEMATICAL BOLD SCRIPT SMALL E
+ 1D4EF         ; NFKC_SCF; 0066           # L&       MATHEMATICAL BOLD SCRIPT SMALL F
+ 1D4F0         ; NFKC_SCF; 0067           # L&       MATHEMATICAL BOLD SCRIPT SMALL G
+ 1D4F1         ; NFKC_SCF; 0068           # L&       MATHEMATICAL BOLD SCRIPT SMALL H
+ 1D4F2         ; NFKC_SCF; 0069           # L&       MATHEMATICAL BOLD SCRIPT SMALL I
+ 1D4F3         ; NFKC_SCF; 006A           # L&       MATHEMATICAL BOLD SCRIPT SMALL J
+ 1D4F4         ; NFKC_SCF; 006B           # L&       MATHEMATICAL BOLD SCRIPT SMALL K
+ 1D4F5         ; NFKC_SCF; 006C           # L&       MATHEMATICAL BOLD SCRIPT SMALL L
+ 1D4F6         ; NFKC_SCF; 006D           # L&       MATHEMATICAL BOLD SCRIPT SMALL M
+ 1D4F7         ; NFKC_SCF; 006E           # L&       MATHEMATICAL BOLD SCRIPT SMALL N
+ 1D4F8         ; NFKC_SCF; 006F           # L&       MATHEMATICAL BOLD SCRIPT SMALL O
+ 1D4F9         ; NFKC_SCF; 0070           # L&       MATHEMATICAL BOLD SCRIPT SMALL P
+ 1D4FA         ; NFKC_SCF; 0071           # L&       MATHEMATICAL BOLD SCRIPT SMALL Q
+ 1D4FB         ; NFKC_SCF; 0072           # L&       MATHEMATICAL BOLD SCRIPT SMALL R
+ 1D4FC         ; NFKC_SCF; 0073           # L&       MATHEMATICAL BOLD SCRIPT SMALL S
+ 1D4FD         ; NFKC_SCF; 0074           # L&       MATHEMATICAL BOLD SCRIPT SMALL T
+ 1D4FE         ; NFKC_SCF; 0075           # L&       MATHEMATICAL BOLD SCRIPT SMALL U
+ 1D4FF         ; NFKC_SCF; 0076           # L&       MATHEMATICAL BOLD SCRIPT SMALL V
+ 1D500         ; NFKC_SCF; 0077           # L&       MATHEMATICAL BOLD SCRIPT SMALL W
+ 1D501         ; NFKC_SCF; 0078           # L&       MATHEMATICAL BOLD SCRIPT SMALL X
+ 1D502         ; NFKC_SCF; 0079           # L&       MATHEMATICAL BOLD SCRIPT SMALL Y
+ 1D503         ; NFKC_SCF; 007A           # L&       MATHEMATICAL BOLD SCRIPT SMALL Z
+ 1D504         ; NFKC_SCF; 0061           # L&       MATHEMATICAL FRAKTUR CAPITAL A
+ 1D505         ; NFKC_SCF; 0062           # L&       MATHEMATICAL FRAKTUR CAPITAL B
+ 1D507         ; NFKC_SCF; 0064           # L&       MATHEMATICAL FRAKTUR CAPITAL D
+ 1D508         ; NFKC_SCF; 0065           # L&       MATHEMATICAL FRAKTUR CAPITAL E
+ 1D509         ; NFKC_SCF; 0066           # L&       MATHEMATICAL FRAKTUR CAPITAL F
+ 1D50A         ; NFKC_SCF; 0067           # L&       MATHEMATICAL FRAKTUR CAPITAL G
+ 1D50D         ; NFKC_SCF; 006A           # L&       MATHEMATICAL FRAKTUR CAPITAL J
+ 1D50E         ; NFKC_SCF; 006B           # L&       MATHEMATICAL FRAKTUR CAPITAL K
+ 1D50F         ; NFKC_SCF; 006C           # L&       MATHEMATICAL FRAKTUR CAPITAL L
+ 1D510         ; NFKC_SCF; 006D           # L&       MATHEMATICAL FRAKTUR CAPITAL M
+ 1D511         ; NFKC_SCF; 006E           # L&       MATHEMATICAL FRAKTUR CAPITAL N
+ 1D512         ; NFKC_SCF; 006F           # L&       MATHEMATICAL FRAKTUR CAPITAL O
+ 1D513         ; NFKC_SCF; 0070           # L&       MATHEMATICAL FRAKTUR CAPITAL P
+ 1D514         ; NFKC_SCF; 0071           # L&       MATHEMATICAL FRAKTUR CAPITAL Q
+ 1D516         ; NFKC_SCF; 0073           # L&       MATHEMATICAL FRAKTUR CAPITAL S
+ 1D517         ; NFKC_SCF; 0074           # L&       MATHEMATICAL FRAKTUR CAPITAL T
+ 1D518         ; NFKC_SCF; 0075           # L&       MATHEMATICAL FRAKTUR CAPITAL U
+ 1D519         ; NFKC_SCF; 0076           # L&       MATHEMATICAL FRAKTUR CAPITAL V
+ 1D51A         ; NFKC_SCF; 0077           # L&       MATHEMATICAL FRAKTUR CAPITAL W
+ 1D51B         ; NFKC_SCF; 0078           # L&       MATHEMATICAL FRAKTUR CAPITAL X
+ 1D51C         ; NFKC_SCF; 0079           # L&       MATHEMATICAL FRAKTUR CAPITAL Y
+ 1D51E         ; NFKC_SCF; 0061           # L&       MATHEMATICAL FRAKTUR SMALL A
+ 1D51F         ; NFKC_SCF; 0062           # L&       MATHEMATICAL FRAKTUR SMALL B
+ 1D520         ; NFKC_SCF; 0063           # L&       MATHEMATICAL FRAKTUR SMALL C
+ 1D521         ; NFKC_SCF; 0064           # L&       MATHEMATICAL FRAKTUR SMALL D
+ 1D522         ; NFKC_SCF; 0065           # L&       MATHEMATICAL FRAKTUR SMALL E
+ 1D523         ; NFKC_SCF; 0066           # L&       MATHEMATICAL FRAKTUR SMALL F
+ 1D524         ; NFKC_SCF; 0067           # L&       MATHEMATICAL FRAKTUR SMALL G
+ 1D525         ; NFKC_SCF; 0068           # L&       MATHEMATICAL FRAKTUR SMALL H
+ 1D526         ; NFKC_SCF; 0069           # L&       MATHEMATICAL FRAKTUR SMALL I
+ 1D527         ; NFKC_SCF; 006A           # L&       MATHEMATICAL FRAKTUR SMALL J
+ 1D528         ; NFKC_SCF; 006B           # L&       MATHEMATICAL FRAKTUR SMALL K
+ 1D529         ; NFKC_SCF; 006C           # L&       MATHEMATICAL FRAKTUR SMALL L
+ 1D52A         ; NFKC_SCF; 006D           # L&       MATHEMATICAL FRAKTUR SMALL M
+ 1D52B         ; NFKC_SCF; 006E           # L&       MATHEMATICAL FRAKTUR SMALL N
+ 1D52C         ; NFKC_SCF; 006F           # L&       MATHEMATICAL FRAKTUR SMALL O
+ 1D52D         ; NFKC_SCF; 0070           # L&       MATHEMATICAL FRAKTUR SMALL P
+ 1D52E         ; NFKC_SCF; 0071           # L&       MATHEMATICAL FRAKTUR SMALL Q
+ 1D52F         ; NFKC_SCF; 0072           # L&       MATHEMATICAL FRAKTUR SMALL R
+ 1D530         ; NFKC_SCF; 0073           # L&       MATHEMATICAL FRAKTUR SMALL S
+ 1D531         ; NFKC_SCF; 0074           # L&       MATHEMATICAL FRAKTUR SMALL T
+ 1D532         ; NFKC_SCF; 0075           # L&       MATHEMATICAL FRAKTUR SMALL U
+ 1D533         ; NFKC_SCF; 0076           # L&       MATHEMATICAL FRAKTUR SMALL V
+ 1D534         ; NFKC_SCF; 0077           # L&       MATHEMATICAL FRAKTUR SMALL W
+ 1D535         ; NFKC_SCF; 0078           # L&       MATHEMATICAL FRAKTUR SMALL X
+ 1D536         ; NFKC_SCF; 0079           # L&       MATHEMATICAL FRAKTUR SMALL Y
+ 1D537         ; NFKC_SCF; 007A           # L&       MATHEMATICAL FRAKTUR SMALL Z
+ 1D538         ; NFKC_SCF; 0061           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+ 1D539         ; NFKC_SCF; 0062           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+ 1D53B         ; NFKC_SCF; 0064           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+ 1D53C         ; NFKC_SCF; 0065           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+ 1D53D         ; NFKC_SCF; 0066           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+ 1D53E         ; NFKC_SCF; 0067           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+ 1D540         ; NFKC_SCF; 0069           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+ 1D541         ; NFKC_SCF; 006A           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+ 1D542         ; NFKC_SCF; 006B           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+ 1D543         ; NFKC_SCF; 006C           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+ 1D544         ; NFKC_SCF; 006D           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+ 1D546         ; NFKC_SCF; 006F           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+ 1D54A         ; NFKC_SCF; 0073           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+ 1D54B         ; NFKC_SCF; 0074           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+ 1D54C         ; NFKC_SCF; 0075           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+ 1D54D         ; NFKC_SCF; 0076           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+ 1D54E         ; NFKC_SCF; 0077           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+ 1D54F         ; NFKC_SCF; 0078           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+ 1D550         ; NFKC_SCF; 0079           # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+ 1D552         ; NFKC_SCF; 0061           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL A
+ 1D553         ; NFKC_SCF; 0062           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL B
+ 1D554         ; NFKC_SCF; 0063           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL C
+ 1D555         ; NFKC_SCF; 0064           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL D
+ 1D556         ; NFKC_SCF; 0065           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL E
+ 1D557         ; NFKC_SCF; 0066           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL F
+ 1D558         ; NFKC_SCF; 0067           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL G
+ 1D559         ; NFKC_SCF; 0068           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL H
+ 1D55A         ; NFKC_SCF; 0069           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL I
+ 1D55B         ; NFKC_SCF; 006A           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL J
+ 1D55C         ; NFKC_SCF; 006B           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL K
+ 1D55D         ; NFKC_SCF; 006C           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL L
+ 1D55E         ; NFKC_SCF; 006D           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL M
+ 1D55F         ; NFKC_SCF; 006E           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL N
+ 1D560         ; NFKC_SCF; 006F           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL O
+ 1D561         ; NFKC_SCF; 0070           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL P
+ 1D562         ; NFKC_SCF; 0071           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL Q
+ 1D563         ; NFKC_SCF; 0072           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL R
+ 1D564         ; NFKC_SCF; 0073           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL S
+ 1D565         ; NFKC_SCF; 0074           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL T
+ 1D566         ; NFKC_SCF; 0075           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL U
+ 1D567         ; NFKC_SCF; 0076           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL V
+ 1D568         ; NFKC_SCF; 0077           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL W
+ 1D569         ; NFKC_SCF; 0078           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL X
+ 1D56A         ; NFKC_SCF; 0079           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL Y
+ 1D56B         ; NFKC_SCF; 007A           # L&       MATHEMATICAL DOUBLE-STRUCK SMALL Z
+ 1D56C         ; NFKC_SCF; 0061           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL A
+ 1D56D         ; NFKC_SCF; 0062           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL B
+ 1D56E         ; NFKC_SCF; 0063           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL C
+ 1D56F         ; NFKC_SCF; 0064           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL D
+ 1D570         ; NFKC_SCF; 0065           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL E
+ 1D571         ; NFKC_SCF; 0066           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL F
+ 1D572         ; NFKC_SCF; 0067           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL G
+ 1D573         ; NFKC_SCF; 0068           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL H
+ 1D574         ; NFKC_SCF; 0069           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL I
+ 1D575         ; NFKC_SCF; 006A           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL J
+ 1D576         ; NFKC_SCF; 006B           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL K
+ 1D577         ; NFKC_SCF; 006C           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL L
+ 1D578         ; NFKC_SCF; 006D           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL M
+ 1D579         ; NFKC_SCF; 006E           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL N
+ 1D57A         ; NFKC_SCF; 006F           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL O
+ 1D57B         ; NFKC_SCF; 0070           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL P
+ 1D57C         ; NFKC_SCF; 0071           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+ 1D57D         ; NFKC_SCF; 0072           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL R
+ 1D57E         ; NFKC_SCF; 0073           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL S
+ 1D57F         ; NFKC_SCF; 0074           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL T
+ 1D580         ; NFKC_SCF; 0075           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL U
+ 1D581         ; NFKC_SCF; 0076           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL V
+ 1D582         ; NFKC_SCF; 0077           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL W
+ 1D583         ; NFKC_SCF; 0078           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL X
+ 1D584         ; NFKC_SCF; 0079           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+ 1D585         ; NFKC_SCF; 007A           # L&       MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+ 1D586         ; NFKC_SCF; 0061           # L&       MATHEMATICAL BOLD FRAKTUR SMALL A
+ 1D587         ; NFKC_SCF; 0062           # L&       MATHEMATICAL BOLD FRAKTUR SMALL B
+ 1D588         ; NFKC_SCF; 0063           # L&       MATHEMATICAL BOLD FRAKTUR SMALL C
+ 1D589         ; NFKC_SCF; 0064           # L&       MATHEMATICAL BOLD FRAKTUR SMALL D
+ 1D58A         ; NFKC_SCF; 0065           # L&       MATHEMATICAL BOLD FRAKTUR SMALL E
+ 1D58B         ; NFKC_SCF; 0066           # L&       MATHEMATICAL BOLD FRAKTUR SMALL F
+ 1D58C         ; NFKC_SCF; 0067           # L&       MATHEMATICAL BOLD FRAKTUR SMALL G
+ 1D58D         ; NFKC_SCF; 0068           # L&       MATHEMATICAL BOLD FRAKTUR SMALL H
+ 1D58E         ; NFKC_SCF; 0069           # L&       MATHEMATICAL BOLD FRAKTUR SMALL I
+ 1D58F         ; NFKC_SCF; 006A           # L&       MATHEMATICAL BOLD FRAKTUR SMALL J
+ 1D590         ; NFKC_SCF; 006B           # L&       MATHEMATICAL BOLD FRAKTUR SMALL K
+ 1D591         ; NFKC_SCF; 006C           # L&       MATHEMATICAL BOLD FRAKTUR SMALL L
+ 1D592         ; NFKC_SCF; 006D           # L&       MATHEMATICAL BOLD FRAKTUR SMALL M
+ 1D593         ; NFKC_SCF; 006E           # L&       MATHEMATICAL BOLD FRAKTUR SMALL N
+ 1D594         ; NFKC_SCF; 006F           # L&       MATHEMATICAL BOLD FRAKTUR SMALL O
+ 1D595         ; NFKC_SCF; 0070           # L&       MATHEMATICAL BOLD FRAKTUR SMALL P
+ 1D596         ; NFKC_SCF; 0071           # L&       MATHEMATICAL BOLD FRAKTUR SMALL Q
+ 1D597         ; NFKC_SCF; 0072           # L&       MATHEMATICAL BOLD FRAKTUR SMALL R
+ 1D598         ; NFKC_SCF; 0073           # L&       MATHEMATICAL BOLD FRAKTUR SMALL S
+ 1D599         ; NFKC_SCF; 0074           # L&       MATHEMATICAL BOLD FRAKTUR SMALL T
+ 1D59A         ; NFKC_SCF; 0075           # L&       MATHEMATICAL BOLD FRAKTUR SMALL U
+ 1D59B         ; NFKC_SCF; 0076           # L&       MATHEMATICAL BOLD FRAKTUR SMALL V
+ 1D59C         ; NFKC_SCF; 0077           # L&       MATHEMATICAL BOLD FRAKTUR SMALL W
+ 1D59D         ; NFKC_SCF; 0078           # L&       MATHEMATICAL BOLD FRAKTUR SMALL X
+ 1D59E         ; NFKC_SCF; 0079           # L&       MATHEMATICAL BOLD FRAKTUR SMALL Y
+ 1D59F         ; NFKC_SCF; 007A           # L&       MATHEMATICAL BOLD FRAKTUR SMALL Z
+ 1D5A0         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SANS-SERIF CAPITAL A
+ 1D5A1         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SANS-SERIF CAPITAL B
+ 1D5A2         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SANS-SERIF CAPITAL C
+ 1D5A3         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SANS-SERIF CAPITAL D
+ 1D5A4         ; NFKC_SCF; 0065           # L&       MATHEMATICAL SANS-SERIF CAPITAL E
+ 1D5A5         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SANS-SERIF CAPITAL F
+ 1D5A6         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SANS-SERIF CAPITAL G
+ 1D5A7         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SANS-SERIF CAPITAL H
+ 1D5A8         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SANS-SERIF CAPITAL I
+ 1D5A9         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SANS-SERIF CAPITAL J
+ 1D5AA         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SANS-SERIF CAPITAL K
+ 1D5AB         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SANS-SERIF CAPITAL L
+ 1D5AC         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SANS-SERIF CAPITAL M
+ 1D5AD         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SANS-SERIF CAPITAL N
+ 1D5AE         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SANS-SERIF CAPITAL O
+ 1D5AF         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SANS-SERIF CAPITAL P
+ 1D5B0         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SANS-SERIF CAPITAL Q
+ 1D5B1         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SANS-SERIF CAPITAL R
+ 1D5B2         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SANS-SERIF CAPITAL S
+ 1D5B3         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SANS-SERIF CAPITAL T
+ 1D5B4         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SANS-SERIF CAPITAL U
+ 1D5B5         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SANS-SERIF CAPITAL V
+ 1D5B6         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SANS-SERIF CAPITAL W
+ 1D5B7         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SANS-SERIF CAPITAL X
+ 1D5B8         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SANS-SERIF CAPITAL Y
+ 1D5B9         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SANS-SERIF CAPITAL Z
+ 1D5BA         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SANS-SERIF SMALL A
+ 1D5BB         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SANS-SERIF SMALL B
+ 1D5BC         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SANS-SERIF SMALL C
+ 1D5BD         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SANS-SERIF SMALL D
+ 1D5BE         ; NFKC_SCF; 0065           # L&       MATHEMATICAL SANS-SERIF SMALL E
+ 1D5BF         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SANS-SERIF SMALL F
+ 1D5C0         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SANS-SERIF SMALL G
+ 1D5C1         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SANS-SERIF SMALL H
+ 1D5C2         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SANS-SERIF SMALL I
+ 1D5C3         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SANS-SERIF SMALL J
+ 1D5C4         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SANS-SERIF SMALL K
+ 1D5C5         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SANS-SERIF SMALL L
+ 1D5C6         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SANS-SERIF SMALL M
+ 1D5C7         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SANS-SERIF SMALL N
+ 1D5C8         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SANS-SERIF SMALL O
+ 1D5C9         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SANS-SERIF SMALL P
+ 1D5CA         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SANS-SERIF SMALL Q
+ 1D5CB         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SANS-SERIF SMALL R
+ 1D5CC         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SANS-SERIF SMALL S
+ 1D5CD         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SANS-SERIF SMALL T
+ 1D5CE         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SANS-SERIF SMALL U
+ 1D5CF         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SANS-SERIF SMALL V
+ 1D5D0         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SANS-SERIF SMALL W
+ 1D5D1         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SANS-SERIF SMALL X
+ 1D5D2         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SANS-SERIF SMALL Y
+ 1D5D3         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SANS-SERIF SMALL Z
+ 1D5D4         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+ 1D5D5         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+ 1D5D6         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+ 1D5D7         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+ 1D5D8         ; NFKC_SCF; 0065           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+ 1D5D9         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+ 1D5DA         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+ 1D5DB         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+ 1D5DC         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+ 1D5DD         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+ 1D5DE         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+ 1D5DF         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+ 1D5E0         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+ 1D5E1         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+ 1D5E2         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+ 1D5E3         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+ 1D5E4         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+ 1D5E5         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+ 1D5E6         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+ 1D5E7         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+ 1D5E8         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+ 1D5E9         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+ 1D5EA         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+ 1D5EB         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+ 1D5EC         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+ 1D5ED         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+ 1D5EE         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL A
+ 1D5EF         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL B
+ 1D5F0         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL C
+ 1D5F1         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL D
+ 1D5F2         ; NFKC_SCF; 0065           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL E
+ 1D5F3         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL F
+ 1D5F4         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL G
+ 1D5F5         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL H
+ 1D5F6         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL I
+ 1D5F7         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL J
+ 1D5F8         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL K
+ 1D5F9         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL L
+ 1D5FA         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL M
+ 1D5FB         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL N
+ 1D5FC         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL O
+ 1D5FD         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL P
+ 1D5FE         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL Q
+ 1D5FF         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL R
+ 1D600         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL S
+ 1D601         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL T
+ 1D602         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL U
+ 1D603         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL V
+ 1D604         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL W
+ 1D605         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL X
+ 1D606         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL Y
+ 1D607         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL Z
+ 1D608         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+ 1D609         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+ 1D60A         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+ 1D60B         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+ 1D60C         ; NFKC_SCF; 0065           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+ 1D60D         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+ 1D60E         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+ 1D60F         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+ 1D610         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+ 1D611         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+ 1D612         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+ 1D613         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+ 1D614         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+ 1D615         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+ 1D616         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+ 1D617         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+ 1D618         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+ 1D619         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+ 1D61A         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+ 1D61B         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+ 1D61C         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+ 1D61D         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+ 1D61E         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+ 1D61F         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+ 1D620         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+ 1D621         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+ 1D622         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL A
+ 1D623         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL B
+ 1D624         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL C
+ 1D625         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL D
+ 1D626         ; NFKC_SCF; 0065           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL E
+ 1D627         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL F
+ 1D628         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL G
+ 1D629         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL H
+ 1D62A         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL I
+ 1D62B         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL J
+ 1D62C         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL K
+ 1D62D         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL L
+ 1D62E         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL M
+ 1D62F         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL N
+ 1D630         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL O
+ 1D631         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL P
+ 1D632         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL Q
+ 1D633         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL R
+ 1D634         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL S
+ 1D635         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL T
+ 1D636         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL U
+ 1D637         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL V
+ 1D638         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL W
+ 1D639         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL X
+ 1D63A         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL Y
+ 1D63B         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+ 1D63C         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+ 1D63D         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+ 1D63E         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+ 1D63F         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+ 1D640         ; NFKC_SCF; 0065           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+ 1D641         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+ 1D642         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+ 1D643         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+ 1D644         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+ 1D645         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+ 1D646         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+ 1D647         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+ 1D648         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+ 1D649         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+ 1D64A         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+ 1D64B         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+ 1D64C         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+ 1D64D         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+ 1D64E         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+ 1D64F         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+ 1D650         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+ 1D651         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+ 1D652         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+ 1D653         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+ 1D654         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+ 1D655         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+ 1D656         ; NFKC_SCF; 0061           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
+ 1D657         ; NFKC_SCF; 0062           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
+ 1D658         ; NFKC_SCF; 0063           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
+ 1D659         ; NFKC_SCF; 0064           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
+ 1D65A         ; NFKC_SCF; 0065           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
+ 1D65B         ; NFKC_SCF; 0066           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
+ 1D65C         ; NFKC_SCF; 0067           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
+ 1D65D         ; NFKC_SCF; 0068           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
+ 1D65E         ; NFKC_SCF; 0069           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
+ 1D65F         ; NFKC_SCF; 006A           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
+ 1D660         ; NFKC_SCF; 006B           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
+ 1D661         ; NFKC_SCF; 006C           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
+ 1D662         ; NFKC_SCF; 006D           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
+ 1D663         ; NFKC_SCF; 006E           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
+ 1D664         ; NFKC_SCF; 006F           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
+ 1D665         ; NFKC_SCF; 0070           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
+ 1D666         ; NFKC_SCF; 0071           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
+ 1D667         ; NFKC_SCF; 0072           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
+ 1D668         ; NFKC_SCF; 0073           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
+ 1D669         ; NFKC_SCF; 0074           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
+ 1D66A         ; NFKC_SCF; 0075           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
+ 1D66B         ; NFKC_SCF; 0076           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
+ 1D66C         ; NFKC_SCF; 0077           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
+ 1D66D         ; NFKC_SCF; 0078           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
+ 1D66E         ; NFKC_SCF; 0079           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
+ 1D66F         ; NFKC_SCF; 007A           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+ 1D670         ; NFKC_SCF; 0061           # L&       MATHEMATICAL MONOSPACE CAPITAL A
+ 1D671         ; NFKC_SCF; 0062           # L&       MATHEMATICAL MONOSPACE CAPITAL B
+ 1D672         ; NFKC_SCF; 0063           # L&       MATHEMATICAL MONOSPACE CAPITAL C
+ 1D673         ; NFKC_SCF; 0064           # L&       MATHEMATICAL MONOSPACE CAPITAL D
+ 1D674         ; NFKC_SCF; 0065           # L&       MATHEMATICAL MONOSPACE CAPITAL E
+ 1D675         ; NFKC_SCF; 0066           # L&       MATHEMATICAL MONOSPACE CAPITAL F
+ 1D676         ; NFKC_SCF; 0067           # L&       MATHEMATICAL MONOSPACE CAPITAL G
+ 1D677         ; NFKC_SCF; 0068           # L&       MATHEMATICAL MONOSPACE CAPITAL H
+ 1D678         ; NFKC_SCF; 0069           # L&       MATHEMATICAL MONOSPACE CAPITAL I
+ 1D679         ; NFKC_SCF; 006A           # L&       MATHEMATICAL MONOSPACE CAPITAL J
+ 1D67A         ; NFKC_SCF; 006B           # L&       MATHEMATICAL MONOSPACE CAPITAL K
+ 1D67B         ; NFKC_SCF; 006C           # L&       MATHEMATICAL MONOSPACE CAPITAL L
+ 1D67C         ; NFKC_SCF; 006D           # L&       MATHEMATICAL MONOSPACE CAPITAL M
+ 1D67D         ; NFKC_SCF; 006E           # L&       MATHEMATICAL MONOSPACE CAPITAL N
+ 1D67E         ; NFKC_SCF; 006F           # L&       MATHEMATICAL MONOSPACE CAPITAL O
+ 1D67F         ; NFKC_SCF; 0070           # L&       MATHEMATICAL MONOSPACE CAPITAL P
+ 1D680         ; NFKC_SCF; 0071           # L&       MATHEMATICAL MONOSPACE CAPITAL Q
+ 1D681         ; NFKC_SCF; 0072           # L&       MATHEMATICAL MONOSPACE CAPITAL R
+ 1D682         ; NFKC_SCF; 0073           # L&       MATHEMATICAL MONOSPACE CAPITAL S
+ 1D683         ; NFKC_SCF; 0074           # L&       MATHEMATICAL MONOSPACE CAPITAL T
+ 1D684         ; NFKC_SCF; 0075           # L&       MATHEMATICAL MONOSPACE CAPITAL U
+ 1D685         ; NFKC_SCF; 0076           # L&       MATHEMATICAL MONOSPACE CAPITAL V
+ 1D686         ; NFKC_SCF; 0077           # L&       MATHEMATICAL MONOSPACE CAPITAL W
+ 1D687         ; NFKC_SCF; 0078           # L&       MATHEMATICAL MONOSPACE CAPITAL X
+ 1D688         ; NFKC_SCF; 0079           # L&       MATHEMATICAL MONOSPACE CAPITAL Y
+ 1D689         ; NFKC_SCF; 007A           # L&       MATHEMATICAL MONOSPACE CAPITAL Z
+ 1D68A         ; NFKC_SCF; 0061           # L&       MATHEMATICAL MONOSPACE SMALL A
+ 1D68B         ; NFKC_SCF; 0062           # L&       MATHEMATICAL MONOSPACE SMALL B
+ 1D68C         ; NFKC_SCF; 0063           # L&       MATHEMATICAL MONOSPACE SMALL C
+ 1D68D         ; NFKC_SCF; 0064           # L&       MATHEMATICAL MONOSPACE SMALL D
+ 1D68E         ; NFKC_SCF; 0065           # L&       MATHEMATICAL MONOSPACE SMALL E
+ 1D68F         ; NFKC_SCF; 0066           # L&       MATHEMATICAL MONOSPACE SMALL F
+ 1D690         ; NFKC_SCF; 0067           # L&       MATHEMATICAL MONOSPACE SMALL G
+ 1D691         ; NFKC_SCF; 0068           # L&       MATHEMATICAL MONOSPACE SMALL H
+ 1D692         ; NFKC_SCF; 0069           # L&       MATHEMATICAL MONOSPACE SMALL I
+ 1D693         ; NFKC_SCF; 006A           # L&       MATHEMATICAL MONOSPACE SMALL J
+ 1D694         ; NFKC_SCF; 006B           # L&       MATHEMATICAL MONOSPACE SMALL K
+ 1D695         ; NFKC_SCF; 006C           # L&       MATHEMATICAL MONOSPACE SMALL L
+ 1D696         ; NFKC_SCF; 006D           # L&       MATHEMATICAL MONOSPACE SMALL M
+ 1D697         ; NFKC_SCF; 006E           # L&       MATHEMATICAL MONOSPACE SMALL N
+ 1D698         ; NFKC_SCF; 006F           # L&       MATHEMATICAL MONOSPACE SMALL O
+ 1D699         ; NFKC_SCF; 0070           # L&       MATHEMATICAL MONOSPACE SMALL P
+ 1D69A         ; NFKC_SCF; 0071           # L&       MATHEMATICAL MONOSPACE SMALL Q
+ 1D69B         ; NFKC_SCF; 0072           # L&       MATHEMATICAL MONOSPACE SMALL R
+ 1D69C         ; NFKC_SCF; 0073           # L&       MATHEMATICAL MONOSPACE SMALL S
+ 1D69D         ; NFKC_SCF; 0074           # L&       MATHEMATICAL MONOSPACE SMALL T
+ 1D69E         ; NFKC_SCF; 0075           # L&       MATHEMATICAL MONOSPACE SMALL U
+ 1D69F         ; NFKC_SCF; 0076           # L&       MATHEMATICAL MONOSPACE SMALL V
+ 1D6A0         ; NFKC_SCF; 0077           # L&       MATHEMATICAL MONOSPACE SMALL W
+ 1D6A1         ; NFKC_SCF; 0078           # L&       MATHEMATICAL MONOSPACE SMALL X
+ 1D6A2         ; NFKC_SCF; 0079           # L&       MATHEMATICAL MONOSPACE SMALL Y
+ 1D6A3         ; NFKC_SCF; 007A           # L&       MATHEMATICAL MONOSPACE SMALL Z
+ 1D6A4         ; NFKC_SCF; 0131           # L&       MATHEMATICAL ITALIC SMALL DOTLESS I
+ 1D6A5         ; NFKC_SCF; 0237           # L&       MATHEMATICAL ITALIC SMALL DOTLESS J
+ 1D6A8         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL BOLD CAPITAL ALPHA
+ 1D6A9         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL BOLD CAPITAL BETA
+ 1D6AA         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL BOLD CAPITAL GAMMA
+ 1D6AB         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL BOLD CAPITAL DELTA
+ 1D6AC         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL BOLD CAPITAL EPSILON
+ 1D6AD         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL BOLD CAPITAL ZETA
+ 1D6AE         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL BOLD CAPITAL ETA
+ 1D6AF         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL BOLD CAPITAL THETA
+ 1D6B0         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL BOLD CAPITAL IOTA
+ 1D6B1         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL BOLD CAPITAL KAPPA
+ 1D6B2         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL BOLD CAPITAL LAMDA
+ 1D6B3         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL BOLD CAPITAL MU
+ 1D6B4         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL BOLD CAPITAL NU
+ 1D6B5         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL BOLD CAPITAL XI
+ 1D6B6         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL BOLD CAPITAL OMICRON
+ 1D6B7         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL BOLD CAPITAL PI
+ 1D6B8         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL BOLD CAPITAL RHO
+ 1D6B9         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL BOLD CAPITAL THETA SYMBOL
+ 1D6BA         ; NFKC_SCF; 03C3           # L&       MATHEMATICAL BOLD CAPITAL SIGMA
+ 1D6BB         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL BOLD CAPITAL TAU
+ 1D6BC         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL BOLD CAPITAL UPSILON
+ 1D6BD         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL BOLD CAPITAL PHI
+ 1D6BE         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL BOLD CAPITAL CHI
+ 1D6BF         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL BOLD CAPITAL PSI
+ 1D6C0         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL BOLD CAPITAL OMEGA
+ 1D6C1         ; NFKC_SCF; 2207           # Sm       MATHEMATICAL BOLD NABLA
+ 1D6C2         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL BOLD SMALL ALPHA
+ 1D6C3         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL BOLD SMALL BETA
+ 1D6C4         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL BOLD SMALL GAMMA
+ 1D6C5         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL BOLD SMALL DELTA
+ 1D6C6         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL BOLD SMALL EPSILON
+ 1D6C7         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL BOLD SMALL ZETA
+ 1D6C8         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL BOLD SMALL ETA
+ 1D6C9         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL BOLD SMALL THETA
+ 1D6CA         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL BOLD SMALL IOTA
+ 1D6CB         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL BOLD SMALL KAPPA
+ 1D6CC         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL BOLD SMALL LAMDA
+ 1D6CD         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL BOLD SMALL MU
+ 1D6CE         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL BOLD SMALL NU
+ 1D6CF         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL BOLD SMALL XI
+ 1D6D0         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL BOLD SMALL OMICRON
+ 1D6D1         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL BOLD SMALL PI
+ 1D6D2         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL BOLD SMALL RHO
+ 1D6D3..1D6D4  ; NFKC_SCF; 03C3           # L&   [2] MATHEMATICAL BOLD SMALL FINAL SIGMA..MATHEMATICAL BOLD SMALL SIGMA
+ 1D6D5         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL BOLD SMALL TAU
+ 1D6D6         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL BOLD SMALL UPSILON
+ 1D6D7         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL BOLD SMALL PHI
+ 1D6D8         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL BOLD SMALL CHI
+ 1D6D9         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL BOLD SMALL PSI
+ 1D6DA         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL BOLD SMALL OMEGA
+ 1D6DB         ; NFKC_SCF; 2202           # Sm       MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+ 1D6DC         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL BOLD EPSILON SYMBOL
+ 1D6DD         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL BOLD THETA SYMBOL
+ 1D6DE         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL BOLD KAPPA SYMBOL
+ 1D6DF         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL BOLD PHI SYMBOL
+ 1D6E0         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL BOLD RHO SYMBOL
+ 1D6E1         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL BOLD PI SYMBOL
+ 1D6E2         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL ITALIC CAPITAL ALPHA
+ 1D6E3         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL ITALIC CAPITAL BETA
+ 1D6E4         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL ITALIC CAPITAL GAMMA
+ 1D6E5         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL ITALIC CAPITAL DELTA
+ 1D6E6         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL ITALIC CAPITAL EPSILON
+ 1D6E7         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL ITALIC CAPITAL ZETA
+ 1D6E8         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL ITALIC CAPITAL ETA
+ 1D6E9         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL ITALIC CAPITAL THETA
+ 1D6EA         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL ITALIC CAPITAL IOTA
+ 1D6EB         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL ITALIC CAPITAL KAPPA
+ 1D6EC         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL ITALIC CAPITAL LAMDA
+ 1D6ED         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL ITALIC CAPITAL MU
+ 1D6EE         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL ITALIC CAPITAL NU
+ 1D6EF         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL ITALIC CAPITAL XI
+ 1D6F0         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL ITALIC CAPITAL OMICRON
+ 1D6F1         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL ITALIC CAPITAL PI
+ 1D6F2         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL ITALIC CAPITAL RHO
+ 1D6F3         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
+ 1D6F4         ; NFKC_SCF; 03C3           # L&       MATHEMATICAL ITALIC CAPITAL SIGMA
+ 1D6F5         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL ITALIC CAPITAL TAU
+ 1D6F6         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL ITALIC CAPITAL UPSILON
+ 1D6F7         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL ITALIC CAPITAL PHI
+ 1D6F8         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL ITALIC CAPITAL CHI
+ 1D6F9         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL ITALIC CAPITAL PSI
+ 1D6FA         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL ITALIC CAPITAL OMEGA
+ 1D6FB         ; NFKC_SCF; 2207           # Sm       MATHEMATICAL ITALIC NABLA
+ 1D6FC         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL ITALIC SMALL ALPHA
+ 1D6FD         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL ITALIC SMALL BETA
+ 1D6FE         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL ITALIC SMALL GAMMA
+ 1D6FF         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL ITALIC SMALL DELTA
+ 1D700         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL ITALIC SMALL EPSILON
+ 1D701         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL ITALIC SMALL ZETA
+ 1D702         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL ITALIC SMALL ETA
+ 1D703         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL ITALIC SMALL THETA
+ 1D704         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL ITALIC SMALL IOTA
+ 1D705         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL ITALIC SMALL KAPPA
+ 1D706         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL ITALIC SMALL LAMDA
+ 1D707         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL ITALIC SMALL MU
+ 1D708         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL ITALIC SMALL NU
+ 1D709         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL ITALIC SMALL XI
+ 1D70A         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL ITALIC SMALL OMICRON
+ 1D70B         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL ITALIC SMALL PI
+ 1D70C         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL ITALIC SMALL RHO
+ 1D70D..1D70E  ; NFKC_SCF; 03C3           # L&   [2] MATHEMATICAL ITALIC SMALL FINAL SIGMA..MATHEMATICAL ITALIC SMALL SIGMA
+ 1D70F         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL ITALIC SMALL TAU
+ 1D710         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL ITALIC SMALL UPSILON
+ 1D711         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL ITALIC SMALL PHI
+ 1D712         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL ITALIC SMALL CHI
+ 1D713         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL ITALIC SMALL PSI
+ 1D714         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL ITALIC SMALL OMEGA
+ 1D715         ; NFKC_SCF; 2202           # Sm       MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+ 1D716         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL ITALIC EPSILON SYMBOL
+ 1D717         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL ITALIC THETA SYMBOL
+ 1D718         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL ITALIC KAPPA SYMBOL
+ 1D719         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL ITALIC PHI SYMBOL
+ 1D71A         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL ITALIC RHO SYMBOL
+ 1D71B         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL ITALIC PI SYMBOL
+ 1D71C         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
+ 1D71D         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL BOLD ITALIC CAPITAL BETA
+ 1D71E         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
+ 1D71F         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL BOLD ITALIC CAPITAL DELTA
+ 1D720         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
+ 1D721         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL BOLD ITALIC CAPITAL ZETA
+ 1D722         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL BOLD ITALIC CAPITAL ETA
+ 1D723         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL BOLD ITALIC CAPITAL THETA
+ 1D724         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL BOLD ITALIC CAPITAL IOTA
+ 1D725         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
+ 1D726         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
+ 1D727         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL BOLD ITALIC CAPITAL MU
+ 1D728         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL BOLD ITALIC CAPITAL NU
+ 1D729         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL BOLD ITALIC CAPITAL XI
+ 1D72A         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
+ 1D72B         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL BOLD ITALIC CAPITAL PI
+ 1D72C         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL BOLD ITALIC CAPITAL RHO
+ 1D72D         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
+ 1D72E         ; NFKC_SCF; 03C3           # L&       MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
+ 1D72F         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL BOLD ITALIC CAPITAL TAU
+ 1D730         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
+ 1D731         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL BOLD ITALIC CAPITAL PHI
+ 1D732         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL BOLD ITALIC CAPITAL CHI
+ 1D733         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL BOLD ITALIC CAPITAL PSI
+ 1D734         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+ 1D735         ; NFKC_SCF; 2207           # Sm       MATHEMATICAL BOLD ITALIC NABLA
+ 1D736         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL BOLD ITALIC SMALL ALPHA
+ 1D737         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL BOLD ITALIC SMALL BETA
+ 1D738         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL BOLD ITALIC SMALL GAMMA
+ 1D739         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL BOLD ITALIC SMALL DELTA
+ 1D73A         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL BOLD ITALIC SMALL EPSILON
+ 1D73B         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL BOLD ITALIC SMALL ZETA
+ 1D73C         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL BOLD ITALIC SMALL ETA
+ 1D73D         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL BOLD ITALIC SMALL THETA
+ 1D73E         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL BOLD ITALIC SMALL IOTA
+ 1D73F         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL BOLD ITALIC SMALL KAPPA
+ 1D740         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL BOLD ITALIC SMALL LAMDA
+ 1D741         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL BOLD ITALIC SMALL MU
+ 1D742         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL BOLD ITALIC SMALL NU
+ 1D743         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL BOLD ITALIC SMALL XI
+ 1D744         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL BOLD ITALIC SMALL OMICRON
+ 1D745         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL BOLD ITALIC SMALL PI
+ 1D746         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL BOLD ITALIC SMALL RHO
+ 1D747..1D748  ; NFKC_SCF; 03C3           # L&   [2] MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL BOLD ITALIC SMALL SIGMA
+ 1D749         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL BOLD ITALIC SMALL TAU
+ 1D74A         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL BOLD ITALIC SMALL UPSILON
+ 1D74B         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL BOLD ITALIC SMALL PHI
+ 1D74C         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL BOLD ITALIC SMALL CHI
+ 1D74D         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL BOLD ITALIC SMALL PSI
+ 1D74E         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL BOLD ITALIC SMALL OMEGA
+ 1D74F         ; NFKC_SCF; 2202           # Sm       MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+ 1D750         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
+ 1D751         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL BOLD ITALIC THETA SYMBOL
+ 1D752         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
+ 1D753         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL BOLD ITALIC PHI SYMBOL
+ 1D754         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL BOLD ITALIC RHO SYMBOL
+ 1D755         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL BOLD ITALIC PI SYMBOL
+ 1D756         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
+ 1D757         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
+ 1D758         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
+ 1D759         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
+ 1D75A         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
+ 1D75B         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
+ 1D75C         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
+ 1D75D         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
+ 1D75E         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
+ 1D75F         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
+ 1D760         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
+ 1D761         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
+ 1D762         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
+ 1D763         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
+ 1D764         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
+ 1D765         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
+ 1D766         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
+ 1D767         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
+ 1D768         ; NFKC_SCF; 03C3           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
+ 1D769         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
+ 1D76A         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
+ 1D76B         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
+ 1D76C         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
+ 1D76D         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
+ 1D76E         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+ 1D76F         ; NFKC_SCF; 2207           # Sm       MATHEMATICAL SANS-SERIF BOLD NABLA
+ 1D770         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
+ 1D771         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL BETA
+ 1D772         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
+ 1D773         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
+ 1D774         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
+ 1D775         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
+ 1D776         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL ETA
+ 1D777         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL THETA
+ 1D778         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
+ 1D779         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
+ 1D77A         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
+ 1D77B         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL MU
+ 1D77C         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL NU
+ 1D77D         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL XI
+ 1D77E         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
+ 1D77F         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL PI
+ 1D780         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL RHO
+ 1D781..1D782  ; NFKC_SCF; 03C3           # L&   [2] MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
+ 1D783         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL TAU
+ 1D784         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
+ 1D785         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL PHI
+ 1D786         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL CHI
+ 1D787         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL PSI
+ 1D788         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+ 1D789         ; NFKC_SCF; 2202           # Sm       MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+ 1D78A         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
+ 1D78B         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
+ 1D78C         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
+ 1D78D         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
+ 1D78E         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
+ 1D78F         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+ 1D790         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+ 1D791         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
+ 1D792         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+ 1D793         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
+ 1D794         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+ 1D795         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
+ 1D796         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
+ 1D797         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
+ 1D798         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
+ 1D799         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+ 1D79A         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+ 1D79B         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
+ 1D79C         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
+ 1D79D         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
+ 1D79E         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+ 1D79F         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
+ 1D7A0         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
+ 1D7A1         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+ 1D7A2         ; NFKC_SCF; 03C3           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+ 1D7A3         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
+ 1D7A4         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+ 1D7A5         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
+ 1D7A6         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
+ 1D7A7         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
+ 1D7A8         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+ 1D7A9         ; NFKC_SCF; 2207           # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+ 1D7AA         ; NFKC_SCF; 03B1           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
+ 1D7AB         ; NFKC_SCF; 03B2           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
+ 1D7AC         ; NFKC_SCF; 03B3           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
+ 1D7AD         ; NFKC_SCF; 03B4           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
+ 1D7AE         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
+ 1D7AF         ; NFKC_SCF; 03B6           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
+ 1D7B0         ; NFKC_SCF; 03B7           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
+ 1D7B1         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
+ 1D7B2         ; NFKC_SCF; 03B9           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
+ 1D7B3         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
+ 1D7B4         ; NFKC_SCF; 03BB           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
+ 1D7B5         ; NFKC_SCF; 03BC           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
+ 1D7B6         ; NFKC_SCF; 03BD           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
+ 1D7B7         ; NFKC_SCF; 03BE           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
+ 1D7B8         ; NFKC_SCF; 03BF           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
+ 1D7B9         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
+ 1D7BA         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
+ 1D7BB..1D7BC  ; NFKC_SCF; 03C3           # L&   [2] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
+ 1D7BD         ; NFKC_SCF; 03C4           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
+ 1D7BE         ; NFKC_SCF; 03C5           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
+ 1D7BF         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
+ 1D7C0         ; NFKC_SCF; 03C7           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
+ 1D7C1         ; NFKC_SCF; 03C8           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
+ 1D7C2         ; NFKC_SCF; 03C9           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+ 1D7C3         ; NFKC_SCF; 2202           # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+ 1D7C4         ; NFKC_SCF; 03B5           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
+ 1D7C5         ; NFKC_SCF; 03B8           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
+ 1D7C6         ; NFKC_SCF; 03BA           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
+ 1D7C7         ; NFKC_SCF; 03C6           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
+ 1D7C8         ; NFKC_SCF; 03C1           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
+ 1D7C9         ; NFKC_SCF; 03C0           # L&       MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+ 1D7CA..1D7CB  ; NFKC_SCF; 03DD           # L&   [2] MATHEMATICAL BOLD CAPITAL DIGAMMA..MATHEMATICAL BOLD SMALL DIGAMMA
+ 1D7CE         ; NFKC_SCF; 0030           # Nd       MATHEMATICAL BOLD DIGIT ZERO
+ 1D7CF         ; NFKC_SCF; 0031           # Nd       MATHEMATICAL BOLD DIGIT ONE
+ 1D7D0         ; NFKC_SCF; 0032           # Nd       MATHEMATICAL BOLD DIGIT TWO
+ 1D7D1         ; NFKC_SCF; 0033           # Nd       MATHEMATICAL BOLD DIGIT THREE
+ 1D7D2         ; NFKC_SCF; 0034           # Nd       MATHEMATICAL BOLD DIGIT FOUR
+ 1D7D3         ; NFKC_SCF; 0035           # Nd       MATHEMATICAL BOLD DIGIT FIVE
+ 1D7D4         ; NFKC_SCF; 0036           # Nd       MATHEMATICAL BOLD DIGIT SIX
+ 1D7D5         ; NFKC_SCF; 0037           # Nd       MATHEMATICAL BOLD DIGIT SEVEN
+ 1D7D6         ; NFKC_SCF; 0038           # Nd       MATHEMATICAL BOLD DIGIT EIGHT
+ 1D7D7         ; NFKC_SCF; 0039           # Nd       MATHEMATICAL BOLD DIGIT NINE
+ 1D7D8         ; NFKC_SCF; 0030           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
+ 1D7D9         ; NFKC_SCF; 0031           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
+ 1D7DA         ; NFKC_SCF; 0032           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
+ 1D7DB         ; NFKC_SCF; 0033           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
+ 1D7DC         ; NFKC_SCF; 0034           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
+ 1D7DD         ; NFKC_SCF; 0035           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
+ 1D7DE         ; NFKC_SCF; 0036           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
+ 1D7DF         ; NFKC_SCF; 0037           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
+ 1D7E0         ; NFKC_SCF; 0038           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
+ 1D7E1         ; NFKC_SCF; 0039           # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
+ 1D7E2         ; NFKC_SCF; 0030           # Nd       MATHEMATICAL SANS-SERIF DIGIT ZERO
+ 1D7E3         ; NFKC_SCF; 0031           # Nd       MATHEMATICAL SANS-SERIF DIGIT ONE
+ 1D7E4         ; NFKC_SCF; 0032           # Nd       MATHEMATICAL SANS-SERIF DIGIT TWO
+ 1D7E5         ; NFKC_SCF; 0033           # Nd       MATHEMATICAL SANS-SERIF DIGIT THREE
+ 1D7E6         ; NFKC_SCF; 0034           # Nd       MATHEMATICAL SANS-SERIF DIGIT FOUR
+ 1D7E7         ; NFKC_SCF; 0035           # Nd       MATHEMATICAL SANS-SERIF DIGIT FIVE
+ 1D7E8         ; NFKC_SCF; 0036           # Nd       MATHEMATICAL SANS-SERIF DIGIT SIX
+ 1D7E9         ; NFKC_SCF; 0037           # Nd       MATHEMATICAL SANS-SERIF DIGIT SEVEN
+ 1D7EA         ; NFKC_SCF; 0038           # Nd       MATHEMATICAL SANS-SERIF DIGIT EIGHT
+ 1D7EB         ; NFKC_SCF; 0039           # Nd       MATHEMATICAL SANS-SERIF DIGIT NINE
+ 1D7EC         ; NFKC_SCF; 0030           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
+ 1D7ED         ; NFKC_SCF; 0031           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
+ 1D7EE         ; NFKC_SCF; 0032           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
+ 1D7EF         ; NFKC_SCF; 0033           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
+ 1D7F0         ; NFKC_SCF; 0034           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
+ 1D7F1         ; NFKC_SCF; 0035           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
+ 1D7F2         ; NFKC_SCF; 0036           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
+ 1D7F3         ; NFKC_SCF; 0037           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
+ 1D7F4         ; NFKC_SCF; 0038           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
+ 1D7F5         ; NFKC_SCF; 0039           # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
+ 1D7F6         ; NFKC_SCF; 0030           # Nd       MATHEMATICAL MONOSPACE DIGIT ZERO
+ 1D7F7         ; NFKC_SCF; 0031           # Nd       MATHEMATICAL MONOSPACE DIGIT ONE
+ 1D7F8         ; NFKC_SCF; 0032           # Nd       MATHEMATICAL MONOSPACE DIGIT TWO
+ 1D7F9         ; NFKC_SCF; 0033           # Nd       MATHEMATICAL MONOSPACE DIGIT THREE
+ 1D7FA         ; NFKC_SCF; 0034           # Nd       MATHEMATICAL MONOSPACE DIGIT FOUR
+ 1D7FB         ; NFKC_SCF; 0035           # Nd       MATHEMATICAL MONOSPACE DIGIT FIVE
+ 1D7FC         ; NFKC_SCF; 0036           # Nd       MATHEMATICAL MONOSPACE DIGIT SIX
+ 1D7FD         ; NFKC_SCF; 0037           # Nd       MATHEMATICAL MONOSPACE DIGIT SEVEN
+ 1D7FE         ; NFKC_SCF; 0038           # Nd       MATHEMATICAL MONOSPACE DIGIT EIGHT
+ 1D7FF         ; NFKC_SCF; 0039           # Nd       MATHEMATICAL MONOSPACE DIGIT NINE
+ 1E030         ; NFKC_SCF; 0430           # Lm       MODIFIER LETTER CYRILLIC SMALL A
+ 1E031         ; NFKC_SCF; 0431           # Lm       MODIFIER LETTER CYRILLIC SMALL BE
+ 1E032         ; NFKC_SCF; 0432           # Lm       MODIFIER LETTER CYRILLIC SMALL VE
+ 1E033         ; NFKC_SCF; 0433           # Lm       MODIFIER LETTER CYRILLIC SMALL GHE
+ 1E034         ; NFKC_SCF; 0434           # Lm       MODIFIER LETTER CYRILLIC SMALL DE
+ 1E035         ; NFKC_SCF; 0435           # Lm       MODIFIER LETTER CYRILLIC SMALL IE
+ 1E036         ; NFKC_SCF; 0436           # Lm       MODIFIER LETTER CYRILLIC SMALL ZHE
+ 1E037         ; NFKC_SCF; 0437           # Lm       MODIFIER LETTER CYRILLIC SMALL ZE
+ 1E038         ; NFKC_SCF; 0438           # Lm       MODIFIER LETTER CYRILLIC SMALL I
+ 1E039         ; NFKC_SCF; 043A           # Lm       MODIFIER LETTER CYRILLIC SMALL KA
+ 1E03A         ; NFKC_SCF; 043B           # Lm       MODIFIER LETTER CYRILLIC SMALL EL
+ 1E03B         ; NFKC_SCF; 043C           # Lm       MODIFIER LETTER CYRILLIC SMALL EM
+ 1E03C         ; NFKC_SCF; 043E           # Lm       MODIFIER LETTER CYRILLIC SMALL O
+ 1E03D         ; NFKC_SCF; 043F           # Lm       MODIFIER LETTER CYRILLIC SMALL PE
+ 1E03E         ; NFKC_SCF; 0440           # Lm       MODIFIER LETTER CYRILLIC SMALL ER
+ 1E03F         ; NFKC_SCF; 0441           # Lm       MODIFIER LETTER CYRILLIC SMALL ES
+ 1E040         ; NFKC_SCF; 0442           # Lm       MODIFIER LETTER CYRILLIC SMALL TE
+ 1E041         ; NFKC_SCF; 0443           # Lm       MODIFIER LETTER CYRILLIC SMALL U
+ 1E042         ; NFKC_SCF; 0444           # Lm       MODIFIER LETTER CYRILLIC SMALL EF
+ 1E043         ; NFKC_SCF; 0445           # Lm       MODIFIER LETTER CYRILLIC SMALL HA
+ 1E044         ; NFKC_SCF; 0446           # Lm       MODIFIER LETTER CYRILLIC SMALL TSE
+ 1E045         ; NFKC_SCF; 0447           # Lm       MODIFIER LETTER CYRILLIC SMALL CHE
+ 1E046         ; NFKC_SCF; 0448           # Lm       MODIFIER LETTER CYRILLIC SMALL SHA
+ 1E047         ; NFKC_SCF; 044B           # Lm       MODIFIER LETTER CYRILLIC SMALL YERU
+ 1E048         ; NFKC_SCF; 044D           # Lm       MODIFIER LETTER CYRILLIC SMALL E
+ 1E049         ; NFKC_SCF; 044E           # Lm       MODIFIER LETTER CYRILLIC SMALL YU
+ 1E04A         ; NFKC_SCF; A689           # Lm       MODIFIER LETTER CYRILLIC SMALL DZZE
+ 1E04B         ; NFKC_SCF; 04D9           # Lm       MODIFIER LETTER CYRILLIC SMALL SCHWA
+ 1E04C         ; NFKC_SCF; 0456           # Lm       MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+ 1E04D         ; NFKC_SCF; 0458           # Lm       MODIFIER LETTER CYRILLIC SMALL JE
+ 1E04E         ; NFKC_SCF; 04E9           # Lm       MODIFIER LETTER CYRILLIC SMALL BARRED O
+ 1E04F         ; NFKC_SCF; 04AF           # Lm       MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+ 1E050         ; NFKC_SCF; 04CF           # Lm       MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+ 1E051         ; NFKC_SCF; 0430           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER A
+ 1E052         ; NFKC_SCF; 0431           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER BE
+ 1E053         ; NFKC_SCF; 0432           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER VE
+ 1E054         ; NFKC_SCF; 0433           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER GHE
+ 1E055         ; NFKC_SCF; 0434           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER DE
+ 1E056         ; NFKC_SCF; 0435           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER IE
+ 1E057         ; NFKC_SCF; 0436           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+ 1E058         ; NFKC_SCF; 0437           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER ZE
+ 1E059         ; NFKC_SCF; 0438           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER I
+ 1E05A         ; NFKC_SCF; 043A           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER KA
+ 1E05B         ; NFKC_SCF; 043B           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER EL
+ 1E05C         ; NFKC_SCF; 043E           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER O
+ 1E05D         ; NFKC_SCF; 043F           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER PE
+ 1E05E         ; NFKC_SCF; 0441           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER ES
+ 1E05F         ; NFKC_SCF; 0443           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER U
+ 1E060         ; NFKC_SCF; 0444           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER EF
+ 1E061         ; NFKC_SCF; 0445           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER HA
+ 1E062         ; NFKC_SCF; 0446           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER TSE
+ 1E063         ; NFKC_SCF; 0447           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER CHE
+ 1E064         ; NFKC_SCF; 0448           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER SHA
+ 1E065         ; NFKC_SCF; 044A           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+ 1E066         ; NFKC_SCF; 044B           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER YERU
+ 1E067         ; NFKC_SCF; 0491           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+ 1E068         ; NFKC_SCF; 0456           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ 1E069         ; NFKC_SCF; 0455           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER DZE
+ 1E06A         ; NFKC_SCF; 045F           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+ 1E06B         ; NFKC_SCF; 04AB           # Lm       MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+ 1E06C         ; NFKC_SCF; A651           # Lm       MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+ 1E06D         ; NFKC_SCF; 04B1           # Lm       MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+ 1E900         ; NFKC_SCF; 1E922          # L&       ADLAM CAPITAL LETTER ALIF
+ 1E901         ; NFKC_SCF; 1E923          # L&       ADLAM CAPITAL LETTER DAALI
+ 1E902         ; NFKC_SCF; 1E924          # L&       ADLAM CAPITAL LETTER LAAM
+ 1E903         ; NFKC_SCF; 1E925          # L&       ADLAM CAPITAL LETTER MIIM
+ 1E904         ; NFKC_SCF; 1E926          # L&       ADLAM CAPITAL LETTER BA
+ 1E905         ; NFKC_SCF; 1E927          # L&       ADLAM CAPITAL LETTER SINNYIIYHE
+ 1E906         ; NFKC_SCF; 1E928          # L&       ADLAM CAPITAL LETTER PE
+ 1E907         ; NFKC_SCF; 1E929          # L&       ADLAM CAPITAL LETTER BHE
+ 1E908         ; NFKC_SCF; 1E92A          # L&       ADLAM CAPITAL LETTER RA
+ 1E909         ; NFKC_SCF; 1E92B          # L&       ADLAM CAPITAL LETTER E
+ 1E90A         ; NFKC_SCF; 1E92C          # L&       ADLAM CAPITAL LETTER FA
+ 1E90B         ; NFKC_SCF; 1E92D          # L&       ADLAM CAPITAL LETTER I
+ 1E90C         ; NFKC_SCF; 1E92E          # L&       ADLAM CAPITAL LETTER O
+ 1E90D         ; NFKC_SCF; 1E92F          # L&       ADLAM CAPITAL LETTER DHA
+ 1E90E         ; NFKC_SCF; 1E930          # L&       ADLAM CAPITAL LETTER YHE
+ 1E90F         ; NFKC_SCF; 1E931          # L&       ADLAM CAPITAL LETTER WAW
+ 1E910         ; NFKC_SCF; 1E932          # L&       ADLAM CAPITAL LETTER NUN
+ 1E911         ; NFKC_SCF; 1E933          # L&       ADLAM CAPITAL LETTER KAF
+ 1E912         ; NFKC_SCF; 1E934          # L&       ADLAM CAPITAL LETTER YA
+ 1E913         ; NFKC_SCF; 1E935          # L&       ADLAM CAPITAL LETTER U
+ 1E914         ; NFKC_SCF; 1E936          # L&       ADLAM CAPITAL LETTER JIIM
+ 1E915         ; NFKC_SCF; 1E937          # L&       ADLAM CAPITAL LETTER CHI
+ 1E916         ; NFKC_SCF; 1E938          # L&       ADLAM CAPITAL LETTER HA
+ 1E917         ; NFKC_SCF; 1E939          # L&       ADLAM CAPITAL LETTER QAAF
+ 1E918         ; NFKC_SCF; 1E93A          # L&       ADLAM CAPITAL LETTER GA
+ 1E919         ; NFKC_SCF; 1E93B          # L&       ADLAM CAPITAL LETTER NYA
+ 1E91A         ; NFKC_SCF; 1E93C          # L&       ADLAM CAPITAL LETTER TU
+ 1E91B         ; NFKC_SCF; 1E93D          # L&       ADLAM CAPITAL LETTER NHA
+ 1E91C         ; NFKC_SCF; 1E93E          # L&       ADLAM CAPITAL LETTER VA
+ 1E91D         ; NFKC_SCF; 1E93F          # L&       ADLAM CAPITAL LETTER KHA
+ 1E91E         ; NFKC_SCF; 1E940          # L&       ADLAM CAPITAL LETTER GBE
+ 1E91F         ; NFKC_SCF; 1E941          # L&       ADLAM CAPITAL LETTER ZAL
+ 1E920         ; NFKC_SCF; 1E942          # L&       ADLAM CAPITAL LETTER KPO
+ 1E921         ; NFKC_SCF; 1E943          # L&       ADLAM CAPITAL LETTER SHA
+ 1EE00         ; NFKC_SCF; 0627           # Lo       ARABIC MATHEMATICAL ALEF
+ 1EE01         ; NFKC_SCF; 0628           # Lo       ARABIC MATHEMATICAL BEH
+ 1EE02         ; NFKC_SCF; 062C           # Lo       ARABIC MATHEMATICAL JEEM
+ 1EE03         ; NFKC_SCF; 062F           # Lo       ARABIC MATHEMATICAL DAL
+ 1EE05         ; NFKC_SCF; 0648           # Lo       ARABIC MATHEMATICAL WAW
+ 1EE06         ; NFKC_SCF; 0632           # Lo       ARABIC MATHEMATICAL ZAIN
+ 1EE07         ; NFKC_SCF; 062D           # Lo       ARABIC MATHEMATICAL HAH
+ 1EE08         ; NFKC_SCF; 0637           # Lo       ARABIC MATHEMATICAL TAH
+ 1EE09         ; NFKC_SCF; 064A           # Lo       ARABIC MATHEMATICAL YEH
+ 1EE0A         ; NFKC_SCF; 0643           # Lo       ARABIC MATHEMATICAL KAF
+ 1EE0B         ; NFKC_SCF; 0644           # Lo       ARABIC MATHEMATICAL LAM
+ 1EE0C         ; NFKC_SCF; 0645           # Lo       ARABIC MATHEMATICAL MEEM
+ 1EE0D         ; NFKC_SCF; 0646           # Lo       ARABIC MATHEMATICAL NOON
+ 1EE0E         ; NFKC_SCF; 0633           # Lo       ARABIC MATHEMATICAL SEEN
+ 1EE0F         ; NFKC_SCF; 0639           # Lo       ARABIC MATHEMATICAL AIN
+ 1EE10         ; NFKC_SCF; 0641           # Lo       ARABIC MATHEMATICAL FEH
+ 1EE11         ; NFKC_SCF; 0635           # Lo       ARABIC MATHEMATICAL SAD
+ 1EE12         ; NFKC_SCF; 0642           # Lo       ARABIC MATHEMATICAL QAF
+ 1EE13         ; NFKC_SCF; 0631           # Lo       ARABIC MATHEMATICAL REH
+ 1EE14         ; NFKC_SCF; 0634           # Lo       ARABIC MATHEMATICAL SHEEN
+ 1EE15         ; NFKC_SCF; 062A           # Lo       ARABIC MATHEMATICAL TEH
+ 1EE16         ; NFKC_SCF; 062B           # Lo       ARABIC MATHEMATICAL THEH
+ 1EE17         ; NFKC_SCF; 062E           # Lo       ARABIC MATHEMATICAL KHAH
+ 1EE18         ; NFKC_SCF; 0630           # Lo       ARABIC MATHEMATICAL THAL
+ 1EE19         ; NFKC_SCF; 0636           # Lo       ARABIC MATHEMATICAL DAD
+ 1EE1A         ; NFKC_SCF; 0638           # Lo       ARABIC MATHEMATICAL ZAH
+ 1EE1B         ; NFKC_SCF; 063A           # Lo       ARABIC MATHEMATICAL GHAIN
+ 1EE1C         ; NFKC_SCF; 066E           # Lo       ARABIC MATHEMATICAL DOTLESS BEH
+ 1EE1D         ; NFKC_SCF; 06BA           # Lo       ARABIC MATHEMATICAL DOTLESS NOON
+ 1EE1E         ; NFKC_SCF; 06A1           # Lo       ARABIC MATHEMATICAL DOTLESS FEH
+ 1EE1F         ; NFKC_SCF; 066F           # Lo       ARABIC MATHEMATICAL DOTLESS QAF
+ 1EE21         ; NFKC_SCF; 0628           # Lo       ARABIC MATHEMATICAL INITIAL BEH
+ 1EE22         ; NFKC_SCF; 062C           # Lo       ARABIC MATHEMATICAL INITIAL JEEM
+ 1EE24         ; NFKC_SCF; 0647           # Lo       ARABIC MATHEMATICAL INITIAL HEH
+ 1EE27         ; NFKC_SCF; 062D           # Lo       ARABIC MATHEMATICAL INITIAL HAH
+ 1EE29         ; NFKC_SCF; 064A           # Lo       ARABIC MATHEMATICAL INITIAL YEH
+ 1EE2A         ; NFKC_SCF; 0643           # Lo       ARABIC MATHEMATICAL INITIAL KAF
+ 1EE2B         ; NFKC_SCF; 0644           # Lo       ARABIC MATHEMATICAL INITIAL LAM
+ 1EE2C         ; NFKC_SCF; 0645           # Lo       ARABIC MATHEMATICAL INITIAL MEEM
+ 1EE2D         ; NFKC_SCF; 0646           # Lo       ARABIC MATHEMATICAL INITIAL NOON
+ 1EE2E         ; NFKC_SCF; 0633           # Lo       ARABIC MATHEMATICAL INITIAL SEEN
+ 1EE2F         ; NFKC_SCF; 0639           # Lo       ARABIC MATHEMATICAL INITIAL AIN
+ 1EE30         ; NFKC_SCF; 0641           # Lo       ARABIC MATHEMATICAL INITIAL FEH
+ 1EE31         ; NFKC_SCF; 0635           # Lo       ARABIC MATHEMATICAL INITIAL SAD
+ 1EE32         ; NFKC_SCF; 0642           # Lo       ARABIC MATHEMATICAL INITIAL QAF
+ 1EE34         ; NFKC_SCF; 0634           # Lo       ARABIC MATHEMATICAL INITIAL SHEEN
+ 1EE35         ; NFKC_SCF; 062A           # Lo       ARABIC MATHEMATICAL INITIAL TEH
+ 1EE36         ; NFKC_SCF; 062B           # Lo       ARABIC MATHEMATICAL INITIAL THEH
+ 1EE37         ; NFKC_SCF; 062E           # Lo       ARABIC MATHEMATICAL INITIAL KHAH
+ 1EE39         ; NFKC_SCF; 0636           # Lo       ARABIC MATHEMATICAL INITIAL DAD
+ 1EE3B         ; NFKC_SCF; 063A           # Lo       ARABIC MATHEMATICAL INITIAL GHAIN
+ 1EE42         ; NFKC_SCF; 062C           # Lo       ARABIC MATHEMATICAL TAILED JEEM
+ 1EE47         ; NFKC_SCF; 062D           # Lo       ARABIC MATHEMATICAL TAILED HAH
+ 1EE49         ; NFKC_SCF; 064A           # Lo       ARABIC MATHEMATICAL TAILED YEH
+ 1EE4B         ; NFKC_SCF; 0644           # Lo       ARABIC MATHEMATICAL TAILED LAM
+ 1EE4D         ; NFKC_SCF; 0646           # Lo       ARABIC MATHEMATICAL TAILED NOON
+ 1EE4E         ; NFKC_SCF; 0633           # Lo       ARABIC MATHEMATICAL TAILED SEEN
+ 1EE4F         ; NFKC_SCF; 0639           # Lo       ARABIC MATHEMATICAL TAILED AIN
+ 1EE51         ; NFKC_SCF; 0635           # Lo       ARABIC MATHEMATICAL TAILED SAD
+ 1EE52         ; NFKC_SCF; 0642           # Lo       ARABIC MATHEMATICAL TAILED QAF
+ 1EE54         ; NFKC_SCF; 0634           # Lo       ARABIC MATHEMATICAL TAILED SHEEN
+ 1EE57         ; NFKC_SCF; 062E           # Lo       ARABIC MATHEMATICAL TAILED KHAH
+ 1EE59         ; NFKC_SCF; 0636           # Lo       ARABIC MATHEMATICAL TAILED DAD
+ 1EE5B         ; NFKC_SCF; 063A           # Lo       ARABIC MATHEMATICAL TAILED GHAIN
+ 1EE5D         ; NFKC_SCF; 06BA           # Lo       ARABIC MATHEMATICAL TAILED DOTLESS NOON
+ 1EE5F         ; NFKC_SCF; 066F           # Lo       ARABIC MATHEMATICAL TAILED DOTLESS QAF
+ 1EE61         ; NFKC_SCF; 0628           # Lo       ARABIC MATHEMATICAL STRETCHED BEH
+ 1EE62         ; NFKC_SCF; 062C           # Lo       ARABIC MATHEMATICAL STRETCHED JEEM
+ 1EE64         ; NFKC_SCF; 0647           # Lo       ARABIC MATHEMATICAL STRETCHED HEH
+ 1EE67         ; NFKC_SCF; 062D           # Lo       ARABIC MATHEMATICAL STRETCHED HAH
+ 1EE68         ; NFKC_SCF; 0637           # Lo       ARABIC MATHEMATICAL STRETCHED TAH
+ 1EE69         ; NFKC_SCF; 064A           # Lo       ARABIC MATHEMATICAL STRETCHED YEH
+ 1EE6A         ; NFKC_SCF; 0643           # Lo       ARABIC MATHEMATICAL STRETCHED KAF
+ 1EE6C         ; NFKC_SCF; 0645           # Lo       ARABIC MATHEMATICAL STRETCHED MEEM
+ 1EE6D         ; NFKC_SCF; 0646           # Lo       ARABIC MATHEMATICAL STRETCHED NOON
+ 1EE6E         ; NFKC_SCF; 0633           # Lo       ARABIC MATHEMATICAL STRETCHED SEEN
+ 1EE6F         ; NFKC_SCF; 0639           # Lo       ARABIC MATHEMATICAL STRETCHED AIN
+ 1EE70         ; NFKC_SCF; 0641           # Lo       ARABIC MATHEMATICAL STRETCHED FEH
+ 1EE71         ; NFKC_SCF; 0635           # Lo       ARABIC MATHEMATICAL STRETCHED SAD
+ 1EE72         ; NFKC_SCF; 0642           # Lo       ARABIC MATHEMATICAL STRETCHED QAF
+ 1EE74         ; NFKC_SCF; 0634           # Lo       ARABIC MATHEMATICAL STRETCHED SHEEN
+ 1EE75         ; NFKC_SCF; 062A           # Lo       ARABIC MATHEMATICAL STRETCHED TEH
+ 1EE76         ; NFKC_SCF; 062B           # Lo       ARABIC MATHEMATICAL STRETCHED THEH
+ 1EE77         ; NFKC_SCF; 062E           # Lo       ARABIC MATHEMATICAL STRETCHED KHAH
+ 1EE79         ; NFKC_SCF; 0636           # Lo       ARABIC MATHEMATICAL STRETCHED DAD
+ 1EE7A         ; NFKC_SCF; 0638           # Lo       ARABIC MATHEMATICAL STRETCHED ZAH
+ 1EE7B         ; NFKC_SCF; 063A           # Lo       ARABIC MATHEMATICAL STRETCHED GHAIN
+ 1EE7C         ; NFKC_SCF; 066E           # Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+ 1EE7E         ; NFKC_SCF; 06A1           # Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+ 1EE80         ; NFKC_SCF; 0627           # Lo       ARABIC MATHEMATICAL LOOPED ALEF
+ 1EE81         ; NFKC_SCF; 0628           # Lo       ARABIC MATHEMATICAL LOOPED BEH
+ 1EE82         ; NFKC_SCF; 062C           # Lo       ARABIC MATHEMATICAL LOOPED JEEM
+ 1EE83         ; NFKC_SCF; 062F           # Lo       ARABIC MATHEMATICAL LOOPED DAL
+ 1EE84         ; NFKC_SCF; 0647           # Lo       ARABIC MATHEMATICAL LOOPED HEH
+ 1EE85         ; NFKC_SCF; 0648           # Lo       ARABIC MATHEMATICAL LOOPED WAW
+ 1EE86         ; NFKC_SCF; 0632           # Lo       ARABIC MATHEMATICAL LOOPED ZAIN
+ 1EE87         ; NFKC_SCF; 062D           # Lo       ARABIC MATHEMATICAL LOOPED HAH
+ 1EE88         ; NFKC_SCF; 0637           # Lo       ARABIC MATHEMATICAL LOOPED TAH
+ 1EE89         ; NFKC_SCF; 064A           # Lo       ARABIC MATHEMATICAL LOOPED YEH
+ 1EE8B         ; NFKC_SCF; 0644           # Lo       ARABIC MATHEMATICAL LOOPED LAM
+ 1EE8C         ; NFKC_SCF; 0645           # Lo       ARABIC MATHEMATICAL LOOPED MEEM
+ 1EE8D         ; NFKC_SCF; 0646           # Lo       ARABIC MATHEMATICAL LOOPED NOON
+ 1EE8E         ; NFKC_SCF; 0633           # Lo       ARABIC MATHEMATICAL LOOPED SEEN
+ 1EE8F         ; NFKC_SCF; 0639           # Lo       ARABIC MATHEMATICAL LOOPED AIN
+ 1EE90         ; NFKC_SCF; 0641           # Lo       ARABIC MATHEMATICAL LOOPED FEH
+ 1EE91         ; NFKC_SCF; 0635           # Lo       ARABIC MATHEMATICAL LOOPED SAD
+ 1EE92         ; NFKC_SCF; 0642           # Lo       ARABIC MATHEMATICAL LOOPED QAF
+ 1EE93         ; NFKC_SCF; 0631           # Lo       ARABIC MATHEMATICAL LOOPED REH
+ 1EE94         ; NFKC_SCF; 0634           # Lo       ARABIC MATHEMATICAL LOOPED SHEEN
+ 1EE95         ; NFKC_SCF; 062A           # Lo       ARABIC MATHEMATICAL LOOPED TEH
+ 1EE96         ; NFKC_SCF; 062B           # Lo       ARABIC MATHEMATICAL LOOPED THEH
+ 1EE97         ; NFKC_SCF; 062E           # Lo       ARABIC MATHEMATICAL LOOPED KHAH
+ 1EE98         ; NFKC_SCF; 0630           # Lo       ARABIC MATHEMATICAL LOOPED THAL
+ 1EE99         ; NFKC_SCF; 0636           # Lo       ARABIC MATHEMATICAL LOOPED DAD
+ 1EE9A         ; NFKC_SCF; 0638           # Lo       ARABIC MATHEMATICAL LOOPED ZAH
+ 1EE9B         ; NFKC_SCF; 063A           # Lo       ARABIC MATHEMATICAL LOOPED GHAIN
+ 1EEA1         ; NFKC_SCF; 0628           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
+ 1EEA2         ; NFKC_SCF; 062C           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
+ 1EEA3         ; NFKC_SCF; 062F           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+ 1EEA5         ; NFKC_SCF; 0648           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
+ 1EEA6         ; NFKC_SCF; 0632           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
+ 1EEA7         ; NFKC_SCF; 062D           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
+ 1EEA8         ; NFKC_SCF; 0637           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
+ 1EEA9         ; NFKC_SCF; 064A           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+ 1EEAB         ; NFKC_SCF; 0644           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
+ 1EEAC         ; NFKC_SCF; 0645           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
+ 1EEAD         ; NFKC_SCF; 0646           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
+ 1EEAE         ; NFKC_SCF; 0633           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
+ 1EEAF         ; NFKC_SCF; 0639           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
+ 1EEB0         ; NFKC_SCF; 0641           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
+ 1EEB1         ; NFKC_SCF; 0635           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
+ 1EEB2         ; NFKC_SCF; 0642           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
+ 1EEB3         ; NFKC_SCF; 0631           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK REH
+ 1EEB4         ; NFKC_SCF; 0634           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
+ 1EEB5         ; NFKC_SCF; 062A           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
+ 1EEB6         ; NFKC_SCF; 062B           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
+ 1EEB7         ; NFKC_SCF; 062E           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
+ 1EEB8         ; NFKC_SCF; 0630           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
+ 1EEB9         ; NFKC_SCF; 0636           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
+ 1EEBA         ; NFKC_SCF; 0638           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
+ 1EEBB         ; NFKC_SCF; 063A           # Lo       ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+ 1F100         ; NFKC_SCF; 0030 002E      # No       DIGIT ZERO FULL STOP
+ 1F101         ; NFKC_SCF; 0030 002C      # No       DIGIT ZERO COMMA
+ 1F102         ; NFKC_SCF; 0031 002C      # No       DIGIT ONE COMMA
+ 1F103         ; NFKC_SCF; 0032 002C      # No       DIGIT TWO COMMA
+ 1F104         ; NFKC_SCF; 0033 002C      # No       DIGIT THREE COMMA
+ 1F105         ; NFKC_SCF; 0034 002C      # No       DIGIT FOUR COMMA
+ 1F106         ; NFKC_SCF; 0035 002C      # No       DIGIT FIVE COMMA
+ 1F107         ; NFKC_SCF; 0036 002C      # No       DIGIT SIX COMMA
+ 1F108         ; NFKC_SCF; 0037 002C      # No       DIGIT SEVEN COMMA
+ 1F109         ; NFKC_SCF; 0038 002C      # No       DIGIT EIGHT COMMA
+ 1F10A         ; NFKC_SCF; 0039 002C      # No       DIGIT NINE COMMA
+ 1F110         ; NFKC_SCF; 0028 0061 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER A
+ 1F111         ; NFKC_SCF; 0028 0062 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER B
+ 1F112         ; NFKC_SCF; 0028 0063 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER C
+ 1F113         ; NFKC_SCF; 0028 0064 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER D
+ 1F114         ; NFKC_SCF; 0028 0065 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER E
+ 1F115         ; NFKC_SCF; 0028 0066 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER F
+ 1F116         ; NFKC_SCF; 0028 0067 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER G
+ 1F117         ; NFKC_SCF; 0028 0068 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER H
+ 1F118         ; NFKC_SCF; 0028 0069 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER I
+ 1F119         ; NFKC_SCF; 0028 006A 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER J
+ 1F11A         ; NFKC_SCF; 0028 006B 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER K
+ 1F11B         ; NFKC_SCF; 0028 006C 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER L
+ 1F11C         ; NFKC_SCF; 0028 006D 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER M
+ 1F11D         ; NFKC_SCF; 0028 006E 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER N
+ 1F11E         ; NFKC_SCF; 0028 006F 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER O
+ 1F11F         ; NFKC_SCF; 0028 0070 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER P
+ 1F120         ; NFKC_SCF; 0028 0071 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER Q
+ 1F121         ; NFKC_SCF; 0028 0072 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER R
+ 1F122         ; NFKC_SCF; 0028 0073 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER S
+ 1F123         ; NFKC_SCF; 0028 0074 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER T
+ 1F124         ; NFKC_SCF; 0028 0075 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER U
+ 1F125         ; NFKC_SCF; 0028 0076 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER V
+ 1F126         ; NFKC_SCF; 0028 0077 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER W
+ 1F127         ; NFKC_SCF; 0028 0078 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER X
+ 1F128         ; NFKC_SCF; 0028 0079 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER Y
+ 1F129         ; NFKC_SCF; 0028 007A 0029 # So       PARENTHESIZED LATIN CAPITAL LETTER Z
+ 1F12A         ; NFKC_SCF; 3014 0073 3015 # So       TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
+ 1F12B         ; NFKC_SCF; 0063           # So       CIRCLED ITALIC LATIN CAPITAL LETTER C
+ 1F12C         ; NFKC_SCF; 0072           # So       CIRCLED ITALIC LATIN CAPITAL LETTER R
+ 1F12D         ; NFKC_SCF; 0063 0064      # So       CIRCLED CD
+ 1F12E         ; NFKC_SCF; 0077 007A      # So       CIRCLED WZ
+ 1F130         ; NFKC_SCF; 0061           # So       SQUARED LATIN CAPITAL LETTER A
+ 1F131         ; NFKC_SCF; 0062           # So       SQUARED LATIN CAPITAL LETTER B
+ 1F132         ; NFKC_SCF; 0063           # So       SQUARED LATIN CAPITAL LETTER C
+ 1F133         ; NFKC_SCF; 0064           # So       SQUARED LATIN CAPITAL LETTER D
+ 1F134         ; NFKC_SCF; 0065           # So       SQUARED LATIN CAPITAL LETTER E
+ 1F135         ; NFKC_SCF; 0066           # So       SQUARED LATIN CAPITAL LETTER F
+ 1F136         ; NFKC_SCF; 0067           # So       SQUARED LATIN CAPITAL LETTER G
+ 1F137         ; NFKC_SCF; 0068           # So       SQUARED LATIN CAPITAL LETTER H
+ 1F138         ; NFKC_SCF; 0069           # So       SQUARED LATIN CAPITAL LETTER I
+ 1F139         ; NFKC_SCF; 006A           # So       SQUARED LATIN CAPITAL LETTER J
+ 1F13A         ; NFKC_SCF; 006B           # So       SQUARED LATIN CAPITAL LETTER K
+ 1F13B         ; NFKC_SCF; 006C           # So       SQUARED LATIN CAPITAL LETTER L
+ 1F13C         ; NFKC_SCF; 006D           # So       SQUARED LATIN CAPITAL LETTER M
+ 1F13D         ; NFKC_SCF; 006E           # So       SQUARED LATIN CAPITAL LETTER N
+ 1F13E         ; NFKC_SCF; 006F           # So       SQUARED LATIN CAPITAL LETTER O
+ 1F13F         ; NFKC_SCF; 0070           # So       SQUARED LATIN CAPITAL LETTER P
+ 1F140         ; NFKC_SCF; 0071           # So       SQUARED LATIN CAPITAL LETTER Q
+ 1F141         ; NFKC_SCF; 0072           # So       SQUARED LATIN CAPITAL LETTER R
+ 1F142         ; NFKC_SCF; 0073           # So       SQUARED LATIN CAPITAL LETTER S
+ 1F143         ; NFKC_SCF; 0074           # So       SQUARED LATIN CAPITAL LETTER T
+ 1F144         ; NFKC_SCF; 0075           # So       SQUARED LATIN CAPITAL LETTER U
+ 1F145         ; NFKC_SCF; 0076           # So       SQUARED LATIN CAPITAL LETTER V
+ 1F146         ; NFKC_SCF; 0077           # So       SQUARED LATIN CAPITAL LETTER W
+ 1F147         ; NFKC_SCF; 0078           # So       SQUARED LATIN CAPITAL LETTER X
+ 1F148         ; NFKC_SCF; 0079           # So       SQUARED LATIN CAPITAL LETTER Y
+ 1F149         ; NFKC_SCF; 007A           # So       SQUARED LATIN CAPITAL LETTER Z
+ 1F14A         ; NFKC_SCF; 0068 0076      # So       SQUARED HV
+ 1F14B         ; NFKC_SCF; 006D 0076      # So       SQUARED MV
+ 1F14C         ; NFKC_SCF; 0073 0064      # So       SQUARED SD
+ 1F14D         ; NFKC_SCF; 0073 0073      # So       SQUARED SS
+ 1F14E         ; NFKC_SCF; 0070 0070 0076 # So       SQUARED PPV
+ 1F14F         ; NFKC_SCF; 0077 0063      # So       SQUARED WC
+ 1F16A         ; NFKC_SCF; 006D 0063      # So       RAISED MC SIGN
+ 1F16B         ; NFKC_SCF; 006D 0064      # So       RAISED MD SIGN
+ 1F16C         ; NFKC_SCF; 006D 0072      # So       RAISED MR SIGN
+ 1F190         ; NFKC_SCF; 0064 006A      # So       SQUARE DJ
+ 1F200         ; NFKC_SCF; 307B 304B      # So       SQUARE HIRAGANA HOKA
+ 1F201         ; NFKC_SCF; 30B3 30B3      # So       SQUARED KATAKANA KOKO
+ 1F202         ; NFKC_SCF; 30B5           # So       SQUARED KATAKANA SA
+ 1F210         ; NFKC_SCF; 624B           # So       SQUARED CJK UNIFIED IDEOGRAPH-624B
+ 1F211         ; NFKC_SCF; 5B57           # So       SQUARED CJK UNIFIED IDEOGRAPH-5B57
+ 1F212         ; NFKC_SCF; 53CC           # So       SQUARED CJK UNIFIED IDEOGRAPH-53CC
+ 1F213         ; NFKC_SCF; 30C7           # So       SQUARED KATAKANA DE
+ 1F214         ; NFKC_SCF; 4E8C           # So       SQUARED CJK UNIFIED IDEOGRAPH-4E8C
+ 1F215         ; NFKC_SCF; 591A           # So       SQUARED CJK UNIFIED IDEOGRAPH-591A
+ 1F216         ; NFKC_SCF; 89E3           # So       SQUARED CJK UNIFIED IDEOGRAPH-89E3
+ 1F217         ; NFKC_SCF; 5929           # So       SQUARED CJK UNIFIED IDEOGRAPH-5929
+ 1F218         ; NFKC_SCF; 4EA4           # So       SQUARED CJK UNIFIED IDEOGRAPH-4EA4
+ 1F219         ; NFKC_SCF; 6620           # So       SQUARED CJK UNIFIED IDEOGRAPH-6620
+ 1F21A         ; NFKC_SCF; 7121           # So       SQUARED CJK UNIFIED IDEOGRAPH-7121
+ 1F21B         ; NFKC_SCF; 6599           # So       SQUARED CJK UNIFIED IDEOGRAPH-6599
+ 1F21C         ; NFKC_SCF; 524D           # So       SQUARED CJK UNIFIED IDEOGRAPH-524D
+ 1F21D         ; NFKC_SCF; 5F8C           # So       SQUARED CJK UNIFIED IDEOGRAPH-5F8C
+ 1F21E         ; NFKC_SCF; 518D           # So       SQUARED CJK UNIFIED IDEOGRAPH-518D
+ 1F21F         ; NFKC_SCF; 65B0           # So       SQUARED CJK UNIFIED IDEOGRAPH-65B0
+ 1F220         ; NFKC_SCF; 521D           # So       SQUARED CJK UNIFIED IDEOGRAPH-521D
+ 1F221         ; NFKC_SCF; 7D42           # So       SQUARED CJK UNIFIED IDEOGRAPH-7D42
+ 1F222         ; NFKC_SCF; 751F           # So       SQUARED CJK UNIFIED IDEOGRAPH-751F
+ 1F223         ; NFKC_SCF; 8CA9           # So       SQUARED CJK UNIFIED IDEOGRAPH-8CA9
+ 1F224         ; NFKC_SCF; 58F0           # So       SQUARED CJK UNIFIED IDEOGRAPH-58F0
+ 1F225         ; NFKC_SCF; 5439           # So       SQUARED CJK UNIFIED IDEOGRAPH-5439
+ 1F226         ; NFKC_SCF; 6F14           # So       SQUARED CJK UNIFIED IDEOGRAPH-6F14
+ 1F227         ; NFKC_SCF; 6295           # So       SQUARED CJK UNIFIED IDEOGRAPH-6295
+ 1F228         ; NFKC_SCF; 6355           # So       SQUARED CJK UNIFIED IDEOGRAPH-6355
+ 1F229         ; NFKC_SCF; 4E00           # So       SQUARED CJK UNIFIED IDEOGRAPH-4E00
+ 1F22A         ; NFKC_SCF; 4E09           # So       SQUARED CJK UNIFIED IDEOGRAPH-4E09
+ 1F22B         ; NFKC_SCF; 904A           # So       SQUARED CJK UNIFIED IDEOGRAPH-904A
+ 1F22C         ; NFKC_SCF; 5DE6           # So       SQUARED CJK UNIFIED IDEOGRAPH-5DE6
+ 1F22D         ; NFKC_SCF; 4E2D           # So       SQUARED CJK UNIFIED IDEOGRAPH-4E2D
+ 1F22E         ; NFKC_SCF; 53F3           # So       SQUARED CJK UNIFIED IDEOGRAPH-53F3
+ 1F22F         ; NFKC_SCF; 6307           # So       SQUARED CJK UNIFIED IDEOGRAPH-6307
+ 1F230         ; NFKC_SCF; 8D70           # So       SQUARED CJK UNIFIED IDEOGRAPH-8D70
+ 1F231         ; NFKC_SCF; 6253           # So       SQUARED CJK UNIFIED IDEOGRAPH-6253
+ 1F232         ; NFKC_SCF; 7981           # So       SQUARED CJK UNIFIED IDEOGRAPH-7981
+ 1F233         ; NFKC_SCF; 7A7A           # So       SQUARED CJK UNIFIED IDEOGRAPH-7A7A
+ 1F234         ; NFKC_SCF; 5408           # So       SQUARED CJK UNIFIED IDEOGRAPH-5408
+ 1F235         ; NFKC_SCF; 6E80           # So       SQUARED CJK UNIFIED IDEOGRAPH-6E80
+ 1F236         ; NFKC_SCF; 6709           # So       SQUARED CJK UNIFIED IDEOGRAPH-6709
+ 1F237         ; NFKC_SCF; 6708           # So       SQUARED CJK UNIFIED IDEOGRAPH-6708
+ 1F238         ; NFKC_SCF; 7533           # So       SQUARED CJK UNIFIED IDEOGRAPH-7533
+ 1F239         ; NFKC_SCF; 5272           # So       SQUARED CJK UNIFIED IDEOGRAPH-5272
+ 1F23A         ; NFKC_SCF; 55B6           # So       SQUARED CJK UNIFIED IDEOGRAPH-55B6
+ 1F23B         ; NFKC_SCF; 914D           # So       SQUARED CJK UNIFIED IDEOGRAPH-914D
+ 1F240         ; NFKC_SCF; 3014 672C 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+ 1F241         ; NFKC_SCF; 3014 4E09 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+ 1F242         ; NFKC_SCF; 3014 4E8C 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+ 1F243         ; NFKC_SCF; 3014 5B89 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+ 1F244         ; NFKC_SCF; 3014 70B9 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+ 1F245         ; NFKC_SCF; 3014 6253 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+ 1F246         ; NFKC_SCF; 3014 76D7 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+ 1F247         ; NFKC_SCF; 3014 52DD 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+ 1F248         ; NFKC_SCF; 3014 6557 3015 # So       TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+ 1F250         ; NFKC_SCF; 5F97           # So       CIRCLED IDEOGRAPH ADVANTAGE
+ 1F251         ; NFKC_SCF; 53EF           # So       CIRCLED IDEOGRAPH ACCEPT
+ 1FBF0         ; NFKC_SCF; 0030           # Nd       SEGMENTED DIGIT ZERO
+ 1FBF1         ; NFKC_SCF; 0031           # Nd       SEGMENTED DIGIT ONE
+ 1FBF2         ; NFKC_SCF; 0032           # Nd       SEGMENTED DIGIT TWO
+ 1FBF3         ; NFKC_SCF; 0033           # Nd       SEGMENTED DIGIT THREE
+ 1FBF4         ; NFKC_SCF; 0034           # Nd       SEGMENTED DIGIT FOUR
+ 1FBF5         ; NFKC_SCF; 0035           # Nd       SEGMENTED DIGIT FIVE
+ 1FBF6         ; NFKC_SCF; 0036           # Nd       SEGMENTED DIGIT SIX
+ 1FBF7         ; NFKC_SCF; 0037           # Nd       SEGMENTED DIGIT SEVEN
+ 1FBF8         ; NFKC_SCF; 0038           # Nd       SEGMENTED DIGIT EIGHT
+ 1FBF9         ; NFKC_SCF; 0039           # Nd       SEGMENTED DIGIT NINE
+ 2F800         ; NFKC_SCF; 4E3D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F800
+ 2F801         ; NFKC_SCF; 4E38           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F801
+ 2F802         ; NFKC_SCF; 4E41           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F802
+ 2F803         ; NFKC_SCF; 20122          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F803
+ 2F804         ; NFKC_SCF; 4F60           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F804
+ 2F805         ; NFKC_SCF; 4FAE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F805
+ 2F806         ; NFKC_SCF; 4FBB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F806
+ 2F807         ; NFKC_SCF; 5002           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F807
+ 2F808         ; NFKC_SCF; 507A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F808
+ 2F809         ; NFKC_SCF; 5099           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F809
+ 2F80A         ; NFKC_SCF; 50E7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F80A
+ 2F80B         ; NFKC_SCF; 50CF           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F80B
+ 2F80C         ; NFKC_SCF; 349E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F80C
+ 2F80D         ; NFKC_SCF; 2063A          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F80D
+ 2F80E         ; NFKC_SCF; 514D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F80E
+ 2F80F         ; NFKC_SCF; 5154           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F80F
+ 2F810         ; NFKC_SCF; 5164           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F810
+ 2F811         ; NFKC_SCF; 5177           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F811
+ 2F812         ; NFKC_SCF; 2051C          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F812
+ 2F813         ; NFKC_SCF; 34B9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F813
+ 2F814         ; NFKC_SCF; 5167           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F814
+ 2F815         ; NFKC_SCF; 518D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F815
+ 2F816         ; NFKC_SCF; 2054B          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F816
+ 2F817         ; NFKC_SCF; 5197           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F817
+ 2F818         ; NFKC_SCF; 51A4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F818
+ 2F819         ; NFKC_SCF; 4ECC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F819
+ 2F81A         ; NFKC_SCF; 51AC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F81A
+ 2F81B         ; NFKC_SCF; 51B5           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F81B
+ 2F81C         ; NFKC_SCF; 291DF          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F81C
+ 2F81D         ; NFKC_SCF; 51F5           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F81D
+ 2F81E         ; NFKC_SCF; 5203           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F81E
+ 2F81F         ; NFKC_SCF; 34DF           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F81F
+ 2F820         ; NFKC_SCF; 523B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F820
+ 2F821         ; NFKC_SCF; 5246           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F821
+ 2F822         ; NFKC_SCF; 5272           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F822
+ 2F823         ; NFKC_SCF; 5277           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F823
+ 2F824         ; NFKC_SCF; 3515           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F824
+ 2F825         ; NFKC_SCF; 52C7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F825
+ 2F826         ; NFKC_SCF; 52C9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F826
+ 2F827         ; NFKC_SCF; 52E4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F827
+ 2F828         ; NFKC_SCF; 52FA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F828
+ 2F829         ; NFKC_SCF; 5305           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F829
+ 2F82A         ; NFKC_SCF; 5306           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F82A
+ 2F82B         ; NFKC_SCF; 5317           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F82B
+ 2F82C         ; NFKC_SCF; 5349           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F82C
+ 2F82D         ; NFKC_SCF; 5351           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F82D
+ 2F82E         ; NFKC_SCF; 535A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F82E
+ 2F82F         ; NFKC_SCF; 5373           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F82F
+ 2F830         ; NFKC_SCF; 537D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F830
+ 2F831..2F833  ; NFKC_SCF; 537F           # Lo   [3] CJK COMPATIBILITY IDEOGRAPH-2F831..CJK COMPATIBILITY IDEOGRAPH-2F833
+ 2F834         ; NFKC_SCF; 20A2C          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F834
+ 2F835         ; NFKC_SCF; 7070           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F835
+ 2F836         ; NFKC_SCF; 53CA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F836
+ 2F837         ; NFKC_SCF; 53DF           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F837
+ 2F838         ; NFKC_SCF; 20B63          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F838
+ 2F839         ; NFKC_SCF; 53EB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F839
+ 2F83A         ; NFKC_SCF; 53F1           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F83A
+ 2F83B         ; NFKC_SCF; 5406           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F83B
+ 2F83C         ; NFKC_SCF; 549E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F83C
+ 2F83D         ; NFKC_SCF; 5438           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F83D
+ 2F83E         ; NFKC_SCF; 5448           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F83E
+ 2F83F         ; NFKC_SCF; 5468           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F83F
+ 2F840         ; NFKC_SCF; 54A2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F840
+ 2F841         ; NFKC_SCF; 54F6           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F841
+ 2F842         ; NFKC_SCF; 5510           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F842
+ 2F843         ; NFKC_SCF; 5553           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F843
+ 2F844         ; NFKC_SCF; 5563           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F844
+ 2F845..2F846  ; NFKC_SCF; 5584           # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-2F845..CJK COMPATIBILITY IDEOGRAPH-2F846
+ 2F847         ; NFKC_SCF; 5599           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F847
+ 2F848         ; NFKC_SCF; 55AB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F848
+ 2F849         ; NFKC_SCF; 55B3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F849
+ 2F84A         ; NFKC_SCF; 55C2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F84A
+ 2F84B         ; NFKC_SCF; 5716           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F84B
+ 2F84C         ; NFKC_SCF; 5606           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F84C
+ 2F84D         ; NFKC_SCF; 5717           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F84D
+ 2F84E         ; NFKC_SCF; 5651           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F84E
+ 2F84F         ; NFKC_SCF; 5674           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F84F
+ 2F850         ; NFKC_SCF; 5207           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F850
+ 2F851         ; NFKC_SCF; 58EE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F851
+ 2F852         ; NFKC_SCF; 57CE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F852
+ 2F853         ; NFKC_SCF; 57F4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F853
+ 2F854         ; NFKC_SCF; 580D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F854
+ 2F855         ; NFKC_SCF; 578B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F855
+ 2F856         ; NFKC_SCF; 5832           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F856
+ 2F857         ; NFKC_SCF; 5831           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F857
+ 2F858         ; NFKC_SCF; 58AC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F858
+ 2F859         ; NFKC_SCF; 214E4          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F859
+ 2F85A         ; NFKC_SCF; 58F2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F85A
+ 2F85B         ; NFKC_SCF; 58F7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F85B
+ 2F85C         ; NFKC_SCF; 5906           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F85C
+ 2F85D         ; NFKC_SCF; 591A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F85D
+ 2F85E         ; NFKC_SCF; 5922           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F85E
+ 2F85F         ; NFKC_SCF; 5962           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F85F
+ 2F860         ; NFKC_SCF; 216A8          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F860
+ 2F861         ; NFKC_SCF; 216EA          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F861
+ 2F862         ; NFKC_SCF; 59EC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F862
+ 2F863         ; NFKC_SCF; 5A1B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F863
+ 2F864         ; NFKC_SCF; 5A27           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F864
+ 2F865         ; NFKC_SCF; 59D8           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F865
+ 2F866         ; NFKC_SCF; 5A66           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F866
+ 2F867         ; NFKC_SCF; 36EE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F867
+ 2F868         ; NFKC_SCF; 36FC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F868
+ 2F869         ; NFKC_SCF; 5B08           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F869
+ 2F86A..2F86B  ; NFKC_SCF; 5B3E           # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-2F86A..CJK COMPATIBILITY IDEOGRAPH-2F86B
+ 2F86C         ; NFKC_SCF; 219C8          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F86C
+ 2F86D         ; NFKC_SCF; 5BC3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F86D
+ 2F86E         ; NFKC_SCF; 5BD8           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F86E
+ 2F86F         ; NFKC_SCF; 5BE7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F86F
+ 2F870         ; NFKC_SCF; 5BF3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F870
+ 2F871         ; NFKC_SCF; 21B18          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F871
+ 2F872         ; NFKC_SCF; 5BFF           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F872
+ 2F873         ; NFKC_SCF; 5C06           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F873
+ 2F874         ; NFKC_SCF; 5F53           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F874
+ 2F875         ; NFKC_SCF; 5C22           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F875
+ 2F876         ; NFKC_SCF; 3781           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F876
+ 2F877         ; NFKC_SCF; 5C60           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F877
+ 2F878         ; NFKC_SCF; 5C6E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F878
+ 2F879         ; NFKC_SCF; 5CC0           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F879
+ 2F87A         ; NFKC_SCF; 5C8D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F87A
+ 2F87B         ; NFKC_SCF; 21DE4          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F87B
+ 2F87C         ; NFKC_SCF; 5D43           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F87C
+ 2F87D         ; NFKC_SCF; 21DE6          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F87D
+ 2F87E         ; NFKC_SCF; 5D6E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F87E
+ 2F87F         ; NFKC_SCF; 5D6B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F87F
+ 2F880         ; NFKC_SCF; 5D7C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F880
+ 2F881         ; NFKC_SCF; 5DE1           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F881
+ 2F882         ; NFKC_SCF; 5DE2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F882
+ 2F883         ; NFKC_SCF; 382F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F883
+ 2F884         ; NFKC_SCF; 5DFD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F884
+ 2F885         ; NFKC_SCF; 5E28           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F885
+ 2F886         ; NFKC_SCF; 5E3D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F886
+ 2F887         ; NFKC_SCF; 5E69           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F887
+ 2F888         ; NFKC_SCF; 3862           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F888
+ 2F889         ; NFKC_SCF; 22183          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F889
+ 2F88A         ; NFKC_SCF; 387C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F88A
+ 2F88B         ; NFKC_SCF; 5EB0           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F88B
+ 2F88C         ; NFKC_SCF; 5EB3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F88C
+ 2F88D         ; NFKC_SCF; 5EB6           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F88D
+ 2F88E         ; NFKC_SCF; 5ECA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F88E
+ 2F88F         ; NFKC_SCF; 2A392          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F88F
+ 2F890         ; NFKC_SCF; 5EFE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F890
+ 2F891..2F892  ; NFKC_SCF; 22331          # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-2F891..CJK COMPATIBILITY IDEOGRAPH-2F892
+ 2F893         ; NFKC_SCF; 8201           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F893
+ 2F894..2F895  ; NFKC_SCF; 5F22           # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-2F894..CJK COMPATIBILITY IDEOGRAPH-2F895
+ 2F896         ; NFKC_SCF; 38C7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F896
+ 2F897         ; NFKC_SCF; 232B8          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F897
+ 2F898         ; NFKC_SCF; 261DA          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F898
+ 2F899         ; NFKC_SCF; 5F62           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F899
+ 2F89A         ; NFKC_SCF; 5F6B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F89A
+ 2F89B         ; NFKC_SCF; 38E3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F89B
+ 2F89C         ; NFKC_SCF; 5F9A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F89C
+ 2F89D         ; NFKC_SCF; 5FCD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F89D
+ 2F89E         ; NFKC_SCF; 5FD7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F89E
+ 2F89F         ; NFKC_SCF; 5FF9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F89F
+ 2F8A0         ; NFKC_SCF; 6081           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A0
+ 2F8A1         ; NFKC_SCF; 393A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A1
+ 2F8A2         ; NFKC_SCF; 391C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A2
+ 2F8A3         ; NFKC_SCF; 6094           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A3
+ 2F8A4         ; NFKC_SCF; 226D4          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A4
+ 2F8A5         ; NFKC_SCF; 60C7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A5
+ 2F8A6         ; NFKC_SCF; 6148           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A6
+ 2F8A7         ; NFKC_SCF; 614C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A7
+ 2F8A8         ; NFKC_SCF; 614E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A8
+ 2F8A9         ; NFKC_SCF; 614C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8A9
+ 2F8AA         ; NFKC_SCF; 617A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8AA
+ 2F8AB         ; NFKC_SCF; 618E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8AB
+ 2F8AC         ; NFKC_SCF; 61B2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8AC
+ 2F8AD         ; NFKC_SCF; 61A4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8AD
+ 2F8AE         ; NFKC_SCF; 61AF           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8AE
+ 2F8AF         ; NFKC_SCF; 61DE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8AF
+ 2F8B0         ; NFKC_SCF; 61F2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B0
+ 2F8B1         ; NFKC_SCF; 61F6           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B1
+ 2F8B2         ; NFKC_SCF; 6210           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B2
+ 2F8B3         ; NFKC_SCF; 621B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B3
+ 2F8B4         ; NFKC_SCF; 625D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B4
+ 2F8B5         ; NFKC_SCF; 62B1           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B5
+ 2F8B6         ; NFKC_SCF; 62D4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B6
+ 2F8B7         ; NFKC_SCF; 6350           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B7
+ 2F8B8         ; NFKC_SCF; 22B0C          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B8
+ 2F8B9         ; NFKC_SCF; 633D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8B9
+ 2F8BA         ; NFKC_SCF; 62FC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8BA
+ 2F8BB         ; NFKC_SCF; 6368           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8BB
+ 2F8BC         ; NFKC_SCF; 6383           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8BC
+ 2F8BD         ; NFKC_SCF; 63E4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8BD
+ 2F8BE         ; NFKC_SCF; 22BF1          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8BE
+ 2F8BF         ; NFKC_SCF; 6422           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8BF
+ 2F8C0         ; NFKC_SCF; 63C5           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C0
+ 2F8C1         ; NFKC_SCF; 63A9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C1
+ 2F8C2         ; NFKC_SCF; 3A2E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C2
+ 2F8C3         ; NFKC_SCF; 6469           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C3
+ 2F8C4         ; NFKC_SCF; 647E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C4
+ 2F8C5         ; NFKC_SCF; 649D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C5
+ 2F8C6         ; NFKC_SCF; 6477           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C6
+ 2F8C7         ; NFKC_SCF; 3A6C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C7
+ 2F8C8         ; NFKC_SCF; 654F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C8
+ 2F8C9         ; NFKC_SCF; 656C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8C9
+ 2F8CA         ; NFKC_SCF; 2300A          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8CA
+ 2F8CB         ; NFKC_SCF; 65E3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8CB
+ 2F8CC         ; NFKC_SCF; 66F8           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8CC
+ 2F8CD         ; NFKC_SCF; 6649           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8CD
+ 2F8CE         ; NFKC_SCF; 3B19           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8CE
+ 2F8CF         ; NFKC_SCF; 6691           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8CF
+ 2F8D0         ; NFKC_SCF; 3B08           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D0
+ 2F8D1         ; NFKC_SCF; 3AE4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D1
+ 2F8D2         ; NFKC_SCF; 5192           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D2
+ 2F8D3         ; NFKC_SCF; 5195           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D3
+ 2F8D4         ; NFKC_SCF; 6700           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D4
+ 2F8D5         ; NFKC_SCF; 669C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D5
+ 2F8D6         ; NFKC_SCF; 80AD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D6
+ 2F8D7         ; NFKC_SCF; 43D9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D7
+ 2F8D8         ; NFKC_SCF; 6717           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D8
+ 2F8D9         ; NFKC_SCF; 671B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8D9
+ 2F8DA         ; NFKC_SCF; 6721           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8DA
+ 2F8DB         ; NFKC_SCF; 675E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8DB
+ 2F8DC         ; NFKC_SCF; 6753           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8DC
+ 2F8DD         ; NFKC_SCF; 233C3          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8DD
+ 2F8DE         ; NFKC_SCF; 3B49           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8DE
+ 2F8DF         ; NFKC_SCF; 67FA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8DF
+ 2F8E0         ; NFKC_SCF; 6785           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E0
+ 2F8E1         ; NFKC_SCF; 6852           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E1
+ 2F8E2         ; NFKC_SCF; 6885           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E2
+ 2F8E3         ; NFKC_SCF; 2346D          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E3
+ 2F8E4         ; NFKC_SCF; 688E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E4
+ 2F8E5         ; NFKC_SCF; 681F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E5
+ 2F8E6         ; NFKC_SCF; 6914           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E6
+ 2F8E7         ; NFKC_SCF; 3B9D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E7
+ 2F8E8         ; NFKC_SCF; 6942           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E8
+ 2F8E9         ; NFKC_SCF; 69A3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8E9
+ 2F8EA         ; NFKC_SCF; 69EA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8EA
+ 2F8EB         ; NFKC_SCF; 6AA8           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8EB
+ 2F8EC         ; NFKC_SCF; 236A3          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8EC
+ 2F8ED         ; NFKC_SCF; 6ADB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8ED
+ 2F8EE         ; NFKC_SCF; 3C18           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8EE
+ 2F8EF         ; NFKC_SCF; 6B21           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8EF
+ 2F8F0         ; NFKC_SCF; 238A7          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F0
+ 2F8F1         ; NFKC_SCF; 6B54           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F1
+ 2F8F2         ; NFKC_SCF; 3C4E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F2
+ 2F8F3         ; NFKC_SCF; 6B72           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F3
+ 2F8F4         ; NFKC_SCF; 6B9F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F4
+ 2F8F5         ; NFKC_SCF; 6BBA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F5
+ 2F8F6         ; NFKC_SCF; 6BBB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F6
+ 2F8F7         ; NFKC_SCF; 23A8D          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F7
+ 2F8F8         ; NFKC_SCF; 21D0B          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F8
+ 2F8F9         ; NFKC_SCF; 23AFA          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8F9
+ 2F8FA         ; NFKC_SCF; 6C4E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8FA
+ 2F8FB         ; NFKC_SCF; 23CBC          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8FB
+ 2F8FC         ; NFKC_SCF; 6CBF           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8FC
+ 2F8FD         ; NFKC_SCF; 6CCD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8FD
+ 2F8FE         ; NFKC_SCF; 6C67           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8FE
+ 2F8FF         ; NFKC_SCF; 6D16           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F8FF
+ 2F900         ; NFKC_SCF; 6D3E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F900
+ 2F901         ; NFKC_SCF; 6D77           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F901
+ 2F902         ; NFKC_SCF; 6D41           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F902
+ 2F903         ; NFKC_SCF; 6D69           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F903
+ 2F904         ; NFKC_SCF; 6D78           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F904
+ 2F905         ; NFKC_SCF; 6D85           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F905
+ 2F906         ; NFKC_SCF; 23D1E          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F906
+ 2F907         ; NFKC_SCF; 6D34           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F907
+ 2F908         ; NFKC_SCF; 6E2F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F908
+ 2F909         ; NFKC_SCF; 6E6E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F909
+ 2F90A         ; NFKC_SCF; 3D33           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F90A
+ 2F90B         ; NFKC_SCF; 6ECB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F90B
+ 2F90C         ; NFKC_SCF; 6EC7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F90C
+ 2F90D         ; NFKC_SCF; 23ED1          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F90D
+ 2F90E         ; NFKC_SCF; 6DF9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F90E
+ 2F90F         ; NFKC_SCF; 6F6E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F90F
+ 2F910         ; NFKC_SCF; 23F5E          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F910
+ 2F911         ; NFKC_SCF; 23F8E          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F911
+ 2F912         ; NFKC_SCF; 6FC6           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F912
+ 2F913         ; NFKC_SCF; 7039           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F913
+ 2F914         ; NFKC_SCF; 701E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F914
+ 2F915         ; NFKC_SCF; 701B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F915
+ 2F916         ; NFKC_SCF; 3D96           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F916
+ 2F917         ; NFKC_SCF; 704A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F917
+ 2F918         ; NFKC_SCF; 707D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F918
+ 2F919         ; NFKC_SCF; 7077           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F919
+ 2F91A         ; NFKC_SCF; 70AD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F91A
+ 2F91B         ; NFKC_SCF; 20525          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F91B
+ 2F91C         ; NFKC_SCF; 7145           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F91C
+ 2F91D         ; NFKC_SCF; 24263          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F91D
+ 2F91E         ; NFKC_SCF; 719C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F91E
+ 2F91F         ; NFKC_SCF; 243AB          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F91F
+ 2F920         ; NFKC_SCF; 7228           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F920
+ 2F921         ; NFKC_SCF; 7235           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F921
+ 2F922         ; NFKC_SCF; 7250           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F922
+ 2F923         ; NFKC_SCF; 24608          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F923
+ 2F924         ; NFKC_SCF; 7280           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F924
+ 2F925         ; NFKC_SCF; 7295           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F925
+ 2F926         ; NFKC_SCF; 24735          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F926
+ 2F927         ; NFKC_SCF; 24814          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F927
+ 2F928         ; NFKC_SCF; 737A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F928
+ 2F929         ; NFKC_SCF; 738B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F929
+ 2F92A         ; NFKC_SCF; 3EAC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F92A
+ 2F92B         ; NFKC_SCF; 73A5           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F92B
+ 2F92C..2F92D  ; NFKC_SCF; 3EB8           # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-2F92C..CJK COMPATIBILITY IDEOGRAPH-2F92D
+ 2F92E         ; NFKC_SCF; 7447           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F92E
+ 2F92F         ; NFKC_SCF; 745C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F92F
+ 2F930         ; NFKC_SCF; 7471           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F930
+ 2F931         ; NFKC_SCF; 7485           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F931
+ 2F932         ; NFKC_SCF; 74CA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F932
+ 2F933         ; NFKC_SCF; 3F1B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F933
+ 2F934         ; NFKC_SCF; 7524           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F934
+ 2F935         ; NFKC_SCF; 24C36          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F935
+ 2F936         ; NFKC_SCF; 753E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F936
+ 2F937         ; NFKC_SCF; 24C92          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F937
+ 2F938         ; NFKC_SCF; 7570           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F938
+ 2F939         ; NFKC_SCF; 2219F          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F939
+ 2F93A         ; NFKC_SCF; 7610           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F93A
+ 2F93B         ; NFKC_SCF; 24FA1          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F93B
+ 2F93C         ; NFKC_SCF; 24FB8          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F93C
+ 2F93D         ; NFKC_SCF; 25044          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F93D
+ 2F93E         ; NFKC_SCF; 3FFC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F93E
+ 2F93F         ; NFKC_SCF; 4008           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F93F
+ 2F940         ; NFKC_SCF; 76F4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F940
+ 2F941         ; NFKC_SCF; 250F3          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F941
+ 2F942         ; NFKC_SCF; 250F2          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F942
+ 2F943         ; NFKC_SCF; 25119          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F943
+ 2F944         ; NFKC_SCF; 25133          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F944
+ 2F945         ; NFKC_SCF; 771E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F945
+ 2F946..2F947  ; NFKC_SCF; 771F           # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-2F946..CJK COMPATIBILITY IDEOGRAPH-2F947
+ 2F948         ; NFKC_SCF; 774A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F948
+ 2F949         ; NFKC_SCF; 4039           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F949
+ 2F94A         ; NFKC_SCF; 778B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F94A
+ 2F94B         ; NFKC_SCF; 4046           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F94B
+ 2F94C         ; NFKC_SCF; 4096           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F94C
+ 2F94D         ; NFKC_SCF; 2541D          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F94D
+ 2F94E         ; NFKC_SCF; 784E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F94E
+ 2F94F         ; NFKC_SCF; 788C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F94F
+ 2F950         ; NFKC_SCF; 78CC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F950
+ 2F951         ; NFKC_SCF; 40E3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F951
+ 2F952         ; NFKC_SCF; 25626          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F952
+ 2F953         ; NFKC_SCF; 7956           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F953
+ 2F954         ; NFKC_SCF; 2569A          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F954
+ 2F955         ; NFKC_SCF; 256C5          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F955
+ 2F956         ; NFKC_SCF; 798F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F956
+ 2F957         ; NFKC_SCF; 79EB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F957
+ 2F958         ; NFKC_SCF; 412F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F958
+ 2F959         ; NFKC_SCF; 7A40           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F959
+ 2F95A         ; NFKC_SCF; 7A4A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F95A
+ 2F95B         ; NFKC_SCF; 7A4F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F95B
+ 2F95C         ; NFKC_SCF; 2597C          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F95C
+ 2F95D..2F95E  ; NFKC_SCF; 25AA7          # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-2F95D..CJK COMPATIBILITY IDEOGRAPH-2F95E
+ 2F95F         ; NFKC_SCF; 7AEE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F95F
+ 2F960         ; NFKC_SCF; 4202           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F960
+ 2F961         ; NFKC_SCF; 25BAB          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F961
+ 2F962         ; NFKC_SCF; 7BC6           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F962
+ 2F963         ; NFKC_SCF; 7BC9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F963
+ 2F964         ; NFKC_SCF; 4227           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F964
+ 2F965         ; NFKC_SCF; 25C80          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F965
+ 2F966         ; NFKC_SCF; 7CD2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F966
+ 2F967         ; NFKC_SCF; 42A0           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F967
+ 2F968         ; NFKC_SCF; 7CE8           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F968
+ 2F969         ; NFKC_SCF; 7CE3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F969
+ 2F96A         ; NFKC_SCF; 7D00           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F96A
+ 2F96B         ; NFKC_SCF; 25F86          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F96B
+ 2F96C         ; NFKC_SCF; 7D63           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F96C
+ 2F96D         ; NFKC_SCF; 4301           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F96D
+ 2F96E         ; NFKC_SCF; 7DC7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F96E
+ 2F96F         ; NFKC_SCF; 7E02           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F96F
+ 2F970         ; NFKC_SCF; 7E45           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F970
+ 2F971         ; NFKC_SCF; 4334           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F971
+ 2F972         ; NFKC_SCF; 26228          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F972
+ 2F973         ; NFKC_SCF; 26247          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F973
+ 2F974         ; NFKC_SCF; 4359           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F974
+ 2F975         ; NFKC_SCF; 262D9          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F975
+ 2F976         ; NFKC_SCF; 7F7A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F976
+ 2F977         ; NFKC_SCF; 2633E          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F977
+ 2F978         ; NFKC_SCF; 7F95           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F978
+ 2F979         ; NFKC_SCF; 7FFA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F979
+ 2F97A         ; NFKC_SCF; 8005           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F97A
+ 2F97B         ; NFKC_SCF; 264DA          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F97B
+ 2F97C         ; NFKC_SCF; 26523          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F97C
+ 2F97D         ; NFKC_SCF; 8060           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F97D
+ 2F97E         ; NFKC_SCF; 265A8          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F97E
+ 2F97F         ; NFKC_SCF; 8070           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F97F
+ 2F980         ; NFKC_SCF; 2335F          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F980
+ 2F981         ; NFKC_SCF; 43D5           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F981
+ 2F982         ; NFKC_SCF; 80B2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F982
+ 2F983         ; NFKC_SCF; 8103           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F983
+ 2F984         ; NFKC_SCF; 440B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F984
+ 2F985         ; NFKC_SCF; 813E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F985
+ 2F986         ; NFKC_SCF; 5AB5           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F986
+ 2F987         ; NFKC_SCF; 267A7          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F987
+ 2F988         ; NFKC_SCF; 267B5          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F988
+ 2F989         ; NFKC_SCF; 23393          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F989
+ 2F98A         ; NFKC_SCF; 2339C          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F98A
+ 2F98B         ; NFKC_SCF; 8201           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F98B
+ 2F98C         ; NFKC_SCF; 8204           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F98C
+ 2F98D         ; NFKC_SCF; 8F9E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F98D
+ 2F98E         ; NFKC_SCF; 446B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F98E
+ 2F98F         ; NFKC_SCF; 8291           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F98F
+ 2F990         ; NFKC_SCF; 828B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F990
+ 2F991         ; NFKC_SCF; 829D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F991
+ 2F992         ; NFKC_SCF; 52B3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F992
+ 2F993         ; NFKC_SCF; 82B1           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F993
+ 2F994         ; NFKC_SCF; 82B3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F994
+ 2F995         ; NFKC_SCF; 82BD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F995
+ 2F996         ; NFKC_SCF; 82E6           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F996
+ 2F997         ; NFKC_SCF; 26B3C          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F997
+ 2F998         ; NFKC_SCF; 82E5           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F998
+ 2F999         ; NFKC_SCF; 831D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F999
+ 2F99A         ; NFKC_SCF; 8363           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F99A
+ 2F99B         ; NFKC_SCF; 83AD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F99B
+ 2F99C         ; NFKC_SCF; 8323           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F99C
+ 2F99D         ; NFKC_SCF; 83BD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F99D
+ 2F99E         ; NFKC_SCF; 83E7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F99E
+ 2F99F         ; NFKC_SCF; 8457           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F99F
+ 2F9A0         ; NFKC_SCF; 8353           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A0
+ 2F9A1         ; NFKC_SCF; 83CA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A1
+ 2F9A2         ; NFKC_SCF; 83CC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A2
+ 2F9A3         ; NFKC_SCF; 83DC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A3
+ 2F9A4         ; NFKC_SCF; 26C36          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A4
+ 2F9A5         ; NFKC_SCF; 26D6B          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A5
+ 2F9A6         ; NFKC_SCF; 26CD5          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A6
+ 2F9A7         ; NFKC_SCF; 452B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A7
+ 2F9A8         ; NFKC_SCF; 84F1           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A8
+ 2F9A9         ; NFKC_SCF; 84F3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9A9
+ 2F9AA         ; NFKC_SCF; 8516           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9AA
+ 2F9AB         ; NFKC_SCF; 273CA          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9AB
+ 2F9AC         ; NFKC_SCF; 8564           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9AC
+ 2F9AD         ; NFKC_SCF; 26F2C          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9AD
+ 2F9AE         ; NFKC_SCF; 455D           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9AE
+ 2F9AF         ; NFKC_SCF; 4561           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9AF
+ 2F9B0         ; NFKC_SCF; 26FB1          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B0
+ 2F9B1         ; NFKC_SCF; 270D2          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B1
+ 2F9B2         ; NFKC_SCF; 456B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B2
+ 2F9B3         ; NFKC_SCF; 8650           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B3
+ 2F9B4         ; NFKC_SCF; 865C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B4
+ 2F9B5         ; NFKC_SCF; 8667           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B5
+ 2F9B6         ; NFKC_SCF; 8669           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B6
+ 2F9B7         ; NFKC_SCF; 86A9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B7
+ 2F9B8         ; NFKC_SCF; 8688           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B8
+ 2F9B9         ; NFKC_SCF; 870E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9B9
+ 2F9BA         ; NFKC_SCF; 86E2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9BA
+ 2F9BB         ; NFKC_SCF; 8779           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9BB
+ 2F9BC         ; NFKC_SCF; 8728           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9BC
+ 2F9BD         ; NFKC_SCF; 876B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9BD
+ 2F9BE         ; NFKC_SCF; 8786           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9BE
+ 2F9BF         ; NFKC_SCF; 45D7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9BF
+ 2F9C0         ; NFKC_SCF; 87E1           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C0
+ 2F9C1         ; NFKC_SCF; 8801           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C1
+ 2F9C2         ; NFKC_SCF; 45F9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C2
+ 2F9C3         ; NFKC_SCF; 8860           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C3
+ 2F9C4         ; NFKC_SCF; 8863           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C4
+ 2F9C5         ; NFKC_SCF; 27667          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C5
+ 2F9C6         ; NFKC_SCF; 88D7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C6
+ 2F9C7         ; NFKC_SCF; 88DE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C7
+ 2F9C8         ; NFKC_SCF; 4635           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C8
+ 2F9C9         ; NFKC_SCF; 88FA           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9C9
+ 2F9CA         ; NFKC_SCF; 34BB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9CA
+ 2F9CB         ; NFKC_SCF; 278AE          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9CB
+ 2F9CC         ; NFKC_SCF; 27966          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9CC
+ 2F9CD         ; NFKC_SCF; 46BE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9CD
+ 2F9CE         ; NFKC_SCF; 46C7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9CE
+ 2F9CF         ; NFKC_SCF; 8AA0           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9CF
+ 2F9D0         ; NFKC_SCF; 8AED           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D0
+ 2F9D1         ; NFKC_SCF; 8B8A           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D1
+ 2F9D2         ; NFKC_SCF; 8C55           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D2
+ 2F9D3         ; NFKC_SCF; 27CA8          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D3
+ 2F9D4         ; NFKC_SCF; 8CAB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D4
+ 2F9D5         ; NFKC_SCF; 8CC1           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D5
+ 2F9D6         ; NFKC_SCF; 8D1B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D6
+ 2F9D7         ; NFKC_SCF; 8D77           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D7
+ 2F9D8         ; NFKC_SCF; 27F2F          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D8
+ 2F9D9         ; NFKC_SCF; 20804          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9D9
+ 2F9DA         ; NFKC_SCF; 8DCB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9DA
+ 2F9DB         ; NFKC_SCF; 8DBC           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9DB
+ 2F9DC         ; NFKC_SCF; 8DF0           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9DC
+ 2F9DD         ; NFKC_SCF; 208DE          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9DD
+ 2F9DE         ; NFKC_SCF; 8ED4           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9DE
+ 2F9DF         ; NFKC_SCF; 8F38           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9DF
+ 2F9E0         ; NFKC_SCF; 285D2          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E0
+ 2F9E1         ; NFKC_SCF; 285ED          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E1
+ 2F9E2         ; NFKC_SCF; 9094           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E2
+ 2F9E3         ; NFKC_SCF; 90F1           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E3
+ 2F9E4         ; NFKC_SCF; 9111           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E4
+ 2F9E5         ; NFKC_SCF; 2872E          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E5
+ 2F9E6         ; NFKC_SCF; 911B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E6
+ 2F9E7         ; NFKC_SCF; 9238           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E7
+ 2F9E8         ; NFKC_SCF; 92D7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E8
+ 2F9E9         ; NFKC_SCF; 92D8           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9E9
+ 2F9EA         ; NFKC_SCF; 927C           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9EA
+ 2F9EB         ; NFKC_SCF; 93F9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9EB
+ 2F9EC         ; NFKC_SCF; 9415           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9EC
+ 2F9ED         ; NFKC_SCF; 28BFA          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9ED
+ 2F9EE         ; NFKC_SCF; 958B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9EE
+ 2F9EF         ; NFKC_SCF; 4995           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9EF
+ 2F9F0         ; NFKC_SCF; 95B7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F0
+ 2F9F1         ; NFKC_SCF; 28D77          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F1
+ 2F9F2         ; NFKC_SCF; 49E6           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F2
+ 2F9F3         ; NFKC_SCF; 96C3           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F3
+ 2F9F4         ; NFKC_SCF; 5DB2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F4
+ 2F9F5         ; NFKC_SCF; 9723           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F5
+ 2F9F6         ; NFKC_SCF; 29145          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F6
+ 2F9F7         ; NFKC_SCF; 2921A          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F7
+ 2F9F8         ; NFKC_SCF; 4A6E           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F8
+ 2F9F9         ; NFKC_SCF; 4A76           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9F9
+ 2F9FA         ; NFKC_SCF; 97E0           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9FA
+ 2F9FB         ; NFKC_SCF; 2940A          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9FB
+ 2F9FC         ; NFKC_SCF; 4AB2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9FC
+ 2F9FD         ; NFKC_SCF; 29496          # Lo       CJK COMPATIBILITY IDEOGRAPH-2F9FD
+ 2F9FE..2F9FF  ; NFKC_SCF; 980B           # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-2F9FE..CJK COMPATIBILITY IDEOGRAPH-2F9FF
+ 2FA00         ; NFKC_SCF; 9829           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA00
+ 2FA01         ; NFKC_SCF; 295B6          # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA01
+ 2FA02         ; NFKC_SCF; 98E2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA02
+ 2FA03         ; NFKC_SCF; 4B33           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA03
+ 2FA04         ; NFKC_SCF; 9929           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA04
+ 2FA05         ; NFKC_SCF; 99A7           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA05
+ 2FA06         ; NFKC_SCF; 99C2           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA06
+ 2FA07         ; NFKC_SCF; 99FE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA07
+ 2FA08         ; NFKC_SCF; 4BCE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA08
+ 2FA09         ; NFKC_SCF; 29B30          # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA09
+ 2FA0A         ; NFKC_SCF; 9B12           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA0A
+ 2FA0B         ; NFKC_SCF; 9C40           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA0B
+ 2FA0C         ; NFKC_SCF; 9CFD           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA0C
+ 2FA0D         ; NFKC_SCF; 4CCE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA0D
+ 2FA0E         ; NFKC_SCF; 4CED           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA0E
+ 2FA0F         ; NFKC_SCF; 9D67           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA0F
+ 2FA10         ; NFKC_SCF; 2A0CE          # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA10
+ 2FA11         ; NFKC_SCF; 4CF8           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA11
+ 2FA12         ; NFKC_SCF; 2A105          # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA12
+ 2FA13         ; NFKC_SCF; 2A20E          # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA13
+ 2FA14         ; NFKC_SCF; 2A291          # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA14
+ 2FA15         ; NFKC_SCF; 9EBB           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA15
+ 2FA16         ; NFKC_SCF; 4D56           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA16
+ 2FA17         ; NFKC_SCF; 9EF9           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA17
+ 2FA18         ; NFKC_SCF; 9EFE           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA18
+ 2FA19         ; NFKC_SCF; 9F05           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA19
+ 2FA1A         ; NFKC_SCF; 9F0F           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA1A
+ 2FA1B         ; NFKC_SCF; 9F16           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA1B
+ 2FA1C         ; NFKC_SCF; 9F3B           # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA1C
+ 2FA1D         ; NFKC_SCF; 2A600          # Lo       CJK COMPATIBILITY IDEOGRAPH-2FA1D
+ E0000         ; NFKC_SCF;                # Cn       <reserved-E0000>
+ E0001         ; NFKC_SCF;                # Cf       LANGUAGE TAG
+ E0002..E001F  ; NFKC_SCF;                # Cn  [30] <reserved-E0002>..<reserved-E001F>
+ E0020..E007F  ; NFKC_SCF;                # Cf  [96] TAG SPACE..CANCEL TAG
+ E0080..E00FF  ; NFKC_SCF;                # Cn [128] <reserved-E0080>..<reserved-E00FF>
+ E0100..E01EF  ; NFKC_SCF;                # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+ E01F0..E0FFF  ; NFKC_SCF;                # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
+ 
+ # Total code points: 10453
+ 
+ # ================================================
+ 
  # Derived Property:   Changes_When_NFKC_Casefolded (CWKCF)
  #  Characters that are not stable under an NFKC_Casefold mapping.
  #  As defined by cp != NFKC_Casefold(cp)
diff -Nrcpad gcc-13.2.0/contrib/unicode/EastAsianWidth.txt gcc-14.1.0/contrib/unicode/EastAsianWidth.txt
*** gcc-13.2.0/contrib/unicode/EastAsianWidth.txt	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/EastAsianWidth.txt	Tue May  7 06:51:37 2024
***************
*** 1,11 ****
! # EastAsianWidth-15.0.0.txt
! # Date: 2022-05-24, 17:40:20 GMT [KW, LI]
! # © 2022 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
! # For documentation, see https://www.unicode.org/reports/tr44/
  #
  # East_Asian_Width Property
  #
--- 1,11 ----
! # EastAsianWidth-15.1.0.txt
! # Date: 2023-07-28, 23:34:08 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
! #   For documentation, see https://www.unicode.org/reports/tr44/
  #
  # East_Asian_Width Property
  #
***************
*** 30,2619 ****
  # Character ranges are specified as for other property files in the
  # Unicode Character Database.
  #
! # For legacy reasons, there are no spaces before or after the semicolon
! # which separates the two fields. The comments following the number sign
! # "#" list the General_Category property value or the L& alias of the
! # derived value LC, the Unicode character name or names, and, in lines
! # with ranges of code points, the code point count in square brackets.
  #
  # For more information, see UAX #11: East Asian Width,
  # at https://www.unicode.org/reports/tr11/
  #
  # @missing: 0000..10FFFF; N
! 0000..001F;N     # Cc    [32] <control-0000>..<control-001F>
! 0020;Na          # Zs         SPACE
! 0021..0023;Na    # Po     [3] EXCLAMATION MARK..NUMBER SIGN
! 0024;Na          # Sc         DOLLAR SIGN
! 0025..0027;Na    # Po     [3] PERCENT SIGN..APOSTROPHE
! 0028;Na          # Ps         LEFT PARENTHESIS
! 0029;Na          # Pe         RIGHT PARENTHESIS
! 002A;Na          # Po         ASTERISK
! 002B;Na          # Sm         PLUS SIGN
! 002C;Na          # Po         COMMA
! 002D;Na          # Pd         HYPHEN-MINUS
! 002E..002F;Na    # Po     [2] FULL STOP..SOLIDUS
! 0030..0039;Na    # Nd    [10] DIGIT ZERO..DIGIT NINE
! 003A..003B;Na    # Po     [2] COLON..SEMICOLON
! 003C..003E;Na    # Sm     [3] LESS-THAN SIGN..GREATER-THAN SIGN
! 003F..0040;Na    # Po     [2] QUESTION MARK..COMMERCIAL AT
! 0041..005A;Na    # Lu    [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
! 005B;Na          # Ps         LEFT SQUARE BRACKET
! 005C;Na          # Po         REVERSE SOLIDUS
! 005D;Na          # Pe         RIGHT SQUARE BRACKET
! 005E;Na          # Sk         CIRCUMFLEX ACCENT
! 005F;Na          # Pc         LOW LINE
! 0060;Na          # Sk         GRAVE ACCENT
! 0061..007A;Na    # Ll    [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
! 007B;Na          # Ps         LEFT CURLY BRACKET
! 007C;Na          # Sm         VERTICAL LINE
! 007D;Na          # Pe         RIGHT CURLY BRACKET
! 007E;Na          # Sm         TILDE
! 007F;N           # Cc         <control-007F>
! 0080..009F;N     # Cc    [32] <control-0080>..<control-009F>
! 00A0;N           # Zs         NO-BREAK SPACE
! 00A1;A           # Po         INVERTED EXCLAMATION MARK
! 00A2..00A3;Na    # Sc     [2] CENT SIGN..POUND SIGN
! 00A4;A           # Sc         CURRENCY SIGN
! 00A5;Na          # Sc         YEN SIGN
! 00A6;Na          # So         BROKEN BAR
! 00A7;A           # Po         SECTION SIGN
! 00A8;A           # Sk         DIAERESIS
! 00A9;N           # So         COPYRIGHT SIGN
! 00AA;A           # Lo         FEMININE ORDINAL INDICATOR
! 00AB;N           # Pi         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
! 00AC;Na          # Sm         NOT SIGN
! 00AD;A           # Cf         SOFT HYPHEN
! 00AE;A           # So         REGISTERED SIGN
! 00AF;Na          # Sk         MACRON
! 00B0;A           # So         DEGREE SIGN
! 00B1;A           # Sm         PLUS-MINUS SIGN
! 00B2..00B3;A     # No     [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
! 00B4;A           # Sk         ACUTE ACCENT
! 00B5;N           # Ll         MICRO SIGN
! 00B6..00B7;A     # Po     [2] PILCROW SIGN..MIDDLE DOT
! 00B8;A           # Sk         CEDILLA
! 00B9;A           # No         SUPERSCRIPT ONE
! 00BA;A           # Lo         MASCULINE ORDINAL INDICATOR
! 00BB;N           # Pf         RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
! 00BC..00BE;A     # No     [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
! 00BF;A           # Po         INVERTED QUESTION MARK
! 00C0..00C5;N     # Lu     [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
! 00C6;A           # Lu         LATIN CAPITAL LETTER AE
! 00C7..00CF;N     # Lu     [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
! 00D0;A           # Lu         LATIN CAPITAL LETTER ETH
! 00D1..00D6;N     # Lu     [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
! 00D7;A           # Sm         MULTIPLICATION SIGN
! 00D8;A           # Lu         LATIN CAPITAL LETTER O WITH STROKE
! 00D9..00DD;N     # Lu     [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
! 00DE..00E1;A     # L&     [4] LATIN CAPITAL LETTER THORN..LATIN SMALL LETTER A WITH ACUTE
! 00E2..00E5;N     # Ll     [4] LATIN SMALL LETTER A WITH CIRCUMFLEX..LATIN SMALL LETTER A WITH RING ABOVE
! 00E6;A           # Ll         LATIN SMALL LETTER AE
! 00E7;N           # Ll         LATIN SMALL LETTER C WITH CEDILLA
! 00E8..00EA;A     # Ll     [3] LATIN SMALL LETTER E WITH GRAVE..LATIN SMALL LETTER E WITH CIRCUMFLEX
! 00EB;N           # Ll         LATIN SMALL LETTER E WITH DIAERESIS
! 00EC..00ED;A     # Ll     [2] LATIN SMALL LETTER I WITH GRAVE..LATIN SMALL LETTER I WITH ACUTE
! 00EE..00EF;N     # Ll     [2] LATIN SMALL LETTER I WITH CIRCUMFLEX..LATIN SMALL LETTER I WITH DIAERESIS
! 00F0;A           # Ll         LATIN SMALL LETTER ETH
! 00F1;N           # Ll         LATIN SMALL LETTER N WITH TILDE
! 00F2..00F3;A     # Ll     [2] LATIN SMALL LETTER O WITH GRAVE..LATIN SMALL LETTER O WITH ACUTE
! 00F4..00F6;N     # Ll     [3] LATIN SMALL LETTER O WITH CIRCUMFLEX..LATIN SMALL LETTER O WITH DIAERESIS
! 00F7;A           # Sm         DIVISION SIGN
! 00F8..00FA;A     # Ll     [3] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER U WITH ACUTE
! 00FB;N           # Ll         LATIN SMALL LETTER U WITH CIRCUMFLEX
! 00FC;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS
! 00FD;N           # Ll         LATIN SMALL LETTER Y WITH ACUTE
! 00FE;A           # Ll         LATIN SMALL LETTER THORN
! 00FF;N           # Ll         LATIN SMALL LETTER Y WITH DIAERESIS
! 0100;N           # Lu         LATIN CAPITAL LETTER A WITH MACRON
! 0101;A           # Ll         LATIN SMALL LETTER A WITH MACRON
! 0102..0110;N     # L&    [15] LATIN CAPITAL LETTER A WITH BREVE..LATIN CAPITAL LETTER D WITH STROKE
! 0111;A           # Ll         LATIN SMALL LETTER D WITH STROKE
! 0112;N           # Lu         LATIN CAPITAL LETTER E WITH MACRON
! 0113;A           # Ll         LATIN SMALL LETTER E WITH MACRON
! 0114..011A;N     # L&     [7] LATIN CAPITAL LETTER E WITH BREVE..LATIN CAPITAL LETTER E WITH CARON
! 011B;A           # Ll         LATIN SMALL LETTER E WITH CARON
! 011C..0125;N     # L&    [10] LATIN CAPITAL LETTER G WITH CIRCUMFLEX..LATIN SMALL LETTER H WITH CIRCUMFLEX
! 0126..0127;A     # L&     [2] LATIN CAPITAL LETTER H WITH STROKE..LATIN SMALL LETTER H WITH STROKE
! 0128..012A;N     # L&     [3] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH MACRON
! 012B;A           # Ll         LATIN SMALL LETTER I WITH MACRON
! 012C..0130;N     # L&     [5] LATIN CAPITAL LETTER I WITH BREVE..LATIN CAPITAL LETTER I WITH DOT ABOVE
! 0131..0133;A     # L&     [3] LATIN SMALL LETTER DOTLESS I..LATIN SMALL LIGATURE IJ
! 0134..0137;N     # L&     [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA
! 0138;A           # Ll         LATIN SMALL LETTER KRA
! 0139..013E;N     # L&     [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON
! 013F..0142;A     # L&     [4] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH STROKE
! 0143;N           # Lu         LATIN CAPITAL LETTER N WITH ACUTE
! 0144;A           # Ll         LATIN SMALL LETTER N WITH ACUTE
! 0145..0147;N     # L&     [3] LATIN CAPITAL LETTER N WITH CEDILLA..LATIN CAPITAL LETTER N WITH CARON
! 0148..014B;A     # L&     [4] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER ENG
! 014C;N           # Lu         LATIN CAPITAL LETTER O WITH MACRON
! 014D;A           # Ll         LATIN SMALL LETTER O WITH MACRON
! 014E..0151;N     # L&     [4] LATIN CAPITAL LETTER O WITH BREVE..LATIN SMALL LETTER O WITH DOUBLE ACUTE
! 0152..0153;A     # L&     [2] LATIN CAPITAL LIGATURE OE..LATIN SMALL LIGATURE OE
! 0154..0165;N     # L&    [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
! 0166..0167;A     # L&     [2] LATIN CAPITAL LETTER T WITH STROKE..LATIN SMALL LETTER T WITH STROKE
! 0168..016A;N     # L&     [3] LATIN CAPITAL LETTER U WITH TILDE..LATIN CAPITAL LETTER U WITH MACRON
! 016B;A           # Ll         LATIN SMALL LETTER U WITH MACRON
! 016C..017F;N     # L&    [20] LATIN CAPITAL LETTER U WITH BREVE..LATIN SMALL LETTER LONG S
! 0180..01BA;N     # L&    [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
! 01BB;N           # Lo         LATIN LETTER TWO WITH STROKE
! 01BC..01BF;N     # L&     [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
! 01C0..01C3;N     # Lo     [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
! 01C4..01CD;N     # L&    [10] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
! 01CE;A           # Ll         LATIN SMALL LETTER A WITH CARON
! 01CF;N           # Lu         LATIN CAPITAL LETTER I WITH CARON
! 01D0;A           # Ll         LATIN SMALL LETTER I WITH CARON
! 01D1;N           # Lu         LATIN CAPITAL LETTER O WITH CARON
! 01D2;A           # Ll         LATIN SMALL LETTER O WITH CARON
! 01D3;N           # Lu         LATIN CAPITAL LETTER U WITH CARON
! 01D4;A           # Ll         LATIN SMALL LETTER U WITH CARON
! 01D5;N           # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
! 01D6;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
! 01D7;N           # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
! 01D8;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
! 01D9;N           # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
! 01DA;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND CARON
! 01DB;N           # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
! 01DC;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
! 01DD..024F;N     # L&   [115] LATIN SMALL LETTER TURNED E..LATIN SMALL LETTER Y WITH STROKE
! 0250;N           # Ll         LATIN SMALL LETTER TURNED A
! 0251;A           # Ll         LATIN SMALL LETTER ALPHA
! 0252..0260;N     # Ll    [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK
! 0261;A           # Ll         LATIN SMALL LETTER SCRIPT G
! 0262..0293;N     # Ll    [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL
! 0294;N           # Lo         LATIN LETTER GLOTTAL STOP
! 0295..02AF;N     # Ll    [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
! 02B0..02C1;N     # Lm    [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
! 02C2..02C3;N     # Sk     [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD
! 02C4;A           # Sk         MODIFIER LETTER UP ARROWHEAD
! 02C5;N           # Sk         MODIFIER LETTER DOWN ARROWHEAD
! 02C6;N           # Lm         MODIFIER LETTER CIRCUMFLEX ACCENT
! 02C7;A           # Lm         CARON
! 02C8;N           # Lm         MODIFIER LETTER VERTICAL LINE
! 02C9..02CB;A     # Lm     [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
! 02CC;N           # Lm         MODIFIER LETTER LOW VERTICAL LINE
! 02CD;A           # Lm         MODIFIER LETTER LOW MACRON
! 02CE..02CF;N     # Lm     [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
! 02D0;A           # Lm         MODIFIER LETTER TRIANGULAR COLON
! 02D1;N           # Lm         MODIFIER LETTER HALF TRIANGULAR COLON
! 02D2..02D7;N     # Sk     [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
! 02D8..02DB;A     # Sk     [4] BREVE..OGONEK
! 02DC;N           # Sk         SMALL TILDE
! 02DD;A           # Sk         DOUBLE ACUTE ACCENT
! 02DE;N           # Sk         MODIFIER LETTER RHOTIC HOOK
! 02DF;A           # Sk         MODIFIER LETTER CROSS ACCENT
! 02E0..02E4;N     # Lm     [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
! 02E5..02EB;N     # Sk     [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
! 02EC;N           # Lm         MODIFIER LETTER VOICING
! 02ED;N           # Sk         MODIFIER LETTER UNASPIRATED
! 02EE;N           # Lm         MODIFIER LETTER DOUBLE APOSTROPHE
! 02EF..02FF;N     # Sk    [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
! 0300..036F;A     # Mn   [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
! 0370..0373;N     # L&     [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
! 0374;N           # Lm         GREEK NUMERAL SIGN
! 0375;N           # Sk         GREEK LOWER NUMERAL SIGN
! 0376..0377;N     # L&     [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
! 037A;N           # Lm         GREEK YPOGEGRAMMENI
! 037B..037D;N     # Ll     [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
! 037E;N           # Po         GREEK QUESTION MARK
! 037F;N           # Lu         GREEK CAPITAL LETTER YOT
! 0384..0385;N     # Sk     [2] GREEK TONOS..GREEK DIALYTIKA TONOS
! 0386;N           # Lu         GREEK CAPITAL LETTER ALPHA WITH TONOS
! 0387;N           # Po         GREEK ANO TELEIA
! 0388..038A;N     # Lu     [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
! 038C;N           # Lu         GREEK CAPITAL LETTER OMICRON WITH TONOS
! 038E..0390;N     # L&     [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
! 0391..03A1;A     # Lu    [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
! 03A3..03A9;A     # Lu     [7] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER OMEGA
! 03AA..03B0;N     # L&     [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
! 03B1..03C1;A     # Ll    [17] GREEK SMALL LETTER ALPHA..GREEK SMALL LETTER RHO
! 03C2;N           # Ll         GREEK SMALL LETTER FINAL SIGMA
! 03C3..03C9;A     # Ll     [7] GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA
! 03CA..03F5;N     # L&    [44] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK LUNATE EPSILON SYMBOL
! 03F6;N           # Sm         GREEK REVERSED LUNATE EPSILON SYMBOL
! 03F7..03FF;N     # L&     [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
! 0400;N           # Lu         CYRILLIC CAPITAL LETTER IE WITH GRAVE
! 0401;A           # Lu         CYRILLIC CAPITAL LETTER IO
! 0402..040F;N     # Lu    [14] CYRILLIC CAPITAL LETTER DJE..CYRILLIC CAPITAL LETTER DZHE
! 0410..044F;A     # L&    [64] CYRILLIC CAPITAL LETTER A..CYRILLIC SMALL LETTER YA
! 0450;N           # Ll         CYRILLIC SMALL LETTER IE WITH GRAVE
! 0451;A           # Ll         CYRILLIC SMALL LETTER IO
! 0452..0481;N     # L&    [48] CYRILLIC SMALL LETTER DJE..CYRILLIC SMALL LETTER KOPPA
! 0482;N           # So         CYRILLIC THOUSANDS SIGN
! 0483..0487;N     # Mn     [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
! 0488..0489;N     # Me     [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
! 048A..04FF;N     # L&   [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE
! 0500..052F;N     # L&    [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER
! 0531..0556;N     # Lu    [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
! 0559;N           # Lm         ARMENIAN MODIFIER LETTER LEFT HALF RING
! 055A..055F;N     # Po     [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
! 0560..0588;N     # Ll    [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
! 0589;N           # Po         ARMENIAN FULL STOP
! 058A;N           # Pd         ARMENIAN HYPHEN
! 058D..058E;N     # So     [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
! 058F;N           # Sc         ARMENIAN DRAM SIGN
! 0591..05BD;N     # Mn    [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
! 05BE;N           # Pd         HEBREW PUNCTUATION MAQAF
! 05BF;N           # Mn         HEBREW POINT RAFE
! 05C0;N           # Po         HEBREW PUNCTUATION PASEQ
! 05C1..05C2;N     # Mn     [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
! 05C3;N           # Po         HEBREW PUNCTUATION SOF PASUQ
! 05C4..05C5;N     # Mn     [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
! 05C6;N           # Po         HEBREW PUNCTUATION NUN HAFUKHA
! 05C7;N           # Mn         HEBREW POINT QAMATS QATAN
! 05D0..05EA;N     # Lo    [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
! 05EF..05F2;N     # Lo     [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
! 05F3..05F4;N     # Po     [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
! 0600..0605;N     # Cf     [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
! 0606..0608;N     # Sm     [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
! 0609..060A;N     # Po     [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
! 060B;N           # Sc         AFGHANI SIGN
! 060C..060D;N     # Po     [2] ARABIC COMMA..ARABIC DATE SEPARATOR
! 060E..060F;N     # So     [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
! 0610..061A;N     # Mn    [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
! 061B;N           # Po         ARABIC SEMICOLON
! 061C;N           # Cf         ARABIC LETTER MARK
! 061D..061F;N     # Po     [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
! 0620..063F;N     # Lo    [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
! 0640;N           # Lm         ARABIC TATWEEL
! 0641..064A;N     # Lo    [10] ARABIC LETTER FEH..ARABIC LETTER YEH
! 064B..065F;N     # Mn    [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
! 0660..0669;N     # Nd    [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
! 066A..066D;N     # Po     [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
! 066E..066F;N     # Lo     [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
! 0670;N           # Mn         ARABIC LETTER SUPERSCRIPT ALEF
! 0671..06D3;N     # Lo    [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
! 06D4;N           # Po         ARABIC FULL STOP
! 06D5;N           # Lo         ARABIC LETTER AE
! 06D6..06DC;N     # Mn     [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
! 06DD;N           # Cf         ARABIC END OF AYAH
! 06DE;N           # So         ARABIC START OF RUB EL HIZB
! 06DF..06E4;N     # Mn     [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
! 06E5..06E6;N     # Lm     [2] ARABIC SMALL WAW..ARABIC SMALL YEH
! 06E7..06E8;N     # Mn     [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
! 06E9;N           # So         ARABIC PLACE OF SAJDAH
! 06EA..06ED;N     # Mn     [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
! 06EE..06EF;N     # Lo     [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
! 06F0..06F9;N     # Nd    [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
! 06FA..06FC;N     # Lo     [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
! 06FD..06FE;N     # So     [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
! 06FF;N           # Lo         ARABIC LETTER HEH WITH INVERTED V
! 0700..070D;N     # Po    [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
! 070F;N           # Cf         SYRIAC ABBREVIATION MARK
! 0710;N           # Lo         SYRIAC LETTER ALAPH
! 0711;N           # Mn         SYRIAC LETTER SUPERSCRIPT ALAPH
! 0712..072F;N     # Lo    [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
! 0730..074A;N     # Mn    [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
! 074D..074F;N     # Lo     [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
! 0750..077F;N     # Lo    [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
! 0780..07A5;N     # Lo    [38] THAANA LETTER HAA..THAANA LETTER WAAVU
! 07A6..07B0;N     # Mn    [11] THAANA ABAFILI..THAANA SUKUN
! 07B1;N           # Lo         THAANA LETTER NAA
! 07C0..07C9;N     # Nd    [10] NKO DIGIT ZERO..NKO DIGIT NINE
! 07CA..07EA;N     # Lo    [33] NKO LETTER A..NKO LETTER JONA RA
! 07EB..07F3;N     # Mn     [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
! 07F4..07F5;N     # Lm     [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
! 07F6;N           # So         NKO SYMBOL OO DENNEN
! 07F7..07F9;N     # Po     [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
! 07FA;N           # Lm         NKO LAJANYALAN
! 07FD;N           # Mn         NKO DANTAYALAN
! 07FE..07FF;N     # Sc     [2] NKO DOROME SIGN..NKO TAMAN SIGN
! 0800..0815;N     # Lo    [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
! 0816..0819;N     # Mn     [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
! 081A;N           # Lm         SAMARITAN MODIFIER LETTER EPENTHETIC YUT
! 081B..0823;N     # Mn     [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
! 0824;N           # Lm         SAMARITAN MODIFIER LETTER SHORT A
! 0825..0827;N     # Mn     [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
! 0828;N           # Lm         SAMARITAN MODIFIER LETTER I
! 0829..082D;N     # Mn     [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
! 0830..083E;N     # Po    [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
! 0840..0858;N     # Lo    [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
! 0859..085B;N     # Mn     [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
! 085E;N           # Po         MANDAIC PUNCTUATION
! 0860..086A;N     # Lo    [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
! 0870..0887;N     # Lo    [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
! 0888;N           # Sk         ARABIC RAISED ROUND DOT
! 0889..088E;N     # Lo     [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
! 0890..0891;N     # Cf     [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
! 0898..089F;N     # Mn     [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
! 08A0..08C8;N     # Lo    [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
! 08C9;N           # Lm         ARABIC SMALL FARSI YEH
! 08CA..08E1;N     # Mn    [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
! 08E2;N           # Cf         ARABIC DISPUTED END OF AYAH
! 08E3..08FF;N     # Mn    [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
! 0900..0902;N     # Mn     [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
! 0903;N           # Mc         DEVANAGARI SIGN VISARGA
! 0904..0939;N     # Lo    [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
! 093A;N           # Mn         DEVANAGARI VOWEL SIGN OE
! 093B;N           # Mc         DEVANAGARI VOWEL SIGN OOE
! 093C;N           # Mn         DEVANAGARI SIGN NUKTA
! 093D;N           # Lo         DEVANAGARI SIGN AVAGRAHA
! 093E..0940;N     # Mc     [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
! 0941..0948;N     # Mn     [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
! 0949..094C;N     # Mc     [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
! 094D;N           # Mn         DEVANAGARI SIGN VIRAMA
! 094E..094F;N     # Mc     [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
! 0950;N           # Lo         DEVANAGARI OM
! 0951..0957;N     # Mn     [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
! 0958..0961;N     # Lo    [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
! 0962..0963;N     # Mn     [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
! 0964..0965;N     # Po     [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
! 0966..096F;N     # Nd    [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
! 0970;N           # Po         DEVANAGARI ABBREVIATION SIGN
! 0971;N           # Lm         DEVANAGARI SIGN HIGH SPACING DOT
! 0972..097F;N     # Lo    [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
! 0980;N           # Lo         BENGALI ANJI
! 0981;N           # Mn         BENGALI SIGN CANDRABINDU
! 0982..0983;N     # Mc     [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
! 0985..098C;N     # Lo     [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
! 098F..0990;N     # Lo     [2] BENGALI LETTER E..BENGALI LETTER AI
! 0993..09A8;N     # Lo    [22] BENGALI LETTER O..BENGALI LETTER NA
! 09AA..09B0;N     # Lo     [7] BENGALI LETTER PA..BENGALI LETTER RA
! 09B2;N           # Lo         BENGALI LETTER LA
! 09B6..09B9;N     # Lo     [4] BENGALI LETTER SHA..BENGALI LETTER HA
! 09BC;N           # Mn         BENGALI SIGN NUKTA
! 09BD;N           # Lo         BENGALI SIGN AVAGRAHA
! 09BE..09C0;N     # Mc     [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
! 09C1..09C4;N     # Mn     [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
! 09C7..09C8;N     # Mc     [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
! 09CB..09CC;N     # Mc     [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
! 09CD;N           # Mn         BENGALI SIGN VIRAMA
! 09CE;N           # Lo         BENGALI LETTER KHANDA TA
! 09D7;N           # Mc         BENGALI AU LENGTH MARK
! 09DC..09DD;N     # Lo     [2] BENGALI LETTER RRA..BENGALI LETTER RHA
! 09DF..09E1;N     # Lo     [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
! 09E2..09E3;N     # Mn     [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
! 09E6..09EF;N     # Nd    [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
! 09F0..09F1;N     # Lo     [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
! 09F2..09F3;N     # Sc     [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
! 09F4..09F9;N     # No     [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
! 09FA;N           # So         BENGALI ISSHAR
! 09FB;N           # Sc         BENGALI GANDA MARK
! 09FC;N           # Lo         BENGALI LETTER VEDIC ANUSVARA
! 09FD;N           # Po         BENGALI ABBREVIATION SIGN
! 09FE;N           # Mn         BENGALI SANDHI MARK
! 0A01..0A02;N     # Mn     [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
! 0A03;N           # Mc         GURMUKHI SIGN VISARGA
! 0A05..0A0A;N     # Lo     [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
! 0A0F..0A10;N     # Lo     [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
! 0A13..0A28;N     # Lo    [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
! 0A2A..0A30;N     # Lo     [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
! 0A32..0A33;N     # Lo     [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
! 0A35..0A36;N     # Lo     [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
! 0A38..0A39;N     # Lo     [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
! 0A3C;N           # Mn         GURMUKHI SIGN NUKTA
! 0A3E..0A40;N     # Mc     [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
! 0A41..0A42;N     # Mn     [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
! 0A47..0A48;N     # Mn     [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
! 0A4B..0A4D;N     # Mn     [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
! 0A51;N           # Mn         GURMUKHI SIGN UDAAT
! 0A59..0A5C;N     # Lo     [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
! 0A5E;N           # Lo         GURMUKHI LETTER FA
! 0A66..0A6F;N     # Nd    [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
! 0A70..0A71;N     # Mn     [2] GURMUKHI TIPPI..GURMUKHI ADDAK
! 0A72..0A74;N     # Lo     [3] GURMUKHI IRI..GURMUKHI EK ONKAR
! 0A75;N           # Mn         GURMUKHI SIGN YAKASH
! 0A76;N           # Po         GURMUKHI ABBREVIATION SIGN
! 0A81..0A82;N     # Mn     [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
! 0A83;N           # Mc         GUJARATI SIGN VISARGA
! 0A85..0A8D;N     # Lo     [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
! 0A8F..0A91;N     # Lo     [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
! 0A93..0AA8;N     # Lo    [22] GUJARATI LETTER O..GUJARATI LETTER NA
! 0AAA..0AB0;N     # Lo     [7] GUJARATI LETTER PA..GUJARATI LETTER RA
! 0AB2..0AB3;N     # Lo     [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
! 0AB5..0AB9;N     # Lo     [5] GUJARATI LETTER VA..GUJARATI LETTER HA
! 0ABC;N           # Mn         GUJARATI SIGN NUKTA
! 0ABD;N           # Lo         GUJARATI SIGN AVAGRAHA
! 0ABE..0AC0;N     # Mc     [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
! 0AC1..0AC5;N     # Mn     [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
! 0AC7..0AC8;N     # Mn     [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
! 0AC9;N           # Mc         GUJARATI VOWEL SIGN CANDRA O
! 0ACB..0ACC;N     # Mc     [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
! 0ACD;N           # Mn         GUJARATI SIGN VIRAMA
! 0AD0;N           # Lo         GUJARATI OM
! 0AE0..0AE1;N     # Lo     [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
! 0AE2..0AE3;N     # Mn     [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
! 0AE6..0AEF;N     # Nd    [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
! 0AF0;N           # Po         GUJARATI ABBREVIATION SIGN
! 0AF1;N           # Sc         GUJARATI RUPEE SIGN
! 0AF9;N           # Lo         GUJARATI LETTER ZHA
! 0AFA..0AFF;N     # Mn     [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
! 0B01;N           # Mn         ORIYA SIGN CANDRABINDU
! 0B02..0B03;N     # Mc     [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
! 0B05..0B0C;N     # Lo     [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
! 0B0F..0B10;N     # Lo     [2] ORIYA LETTER E..ORIYA LETTER AI
! 0B13..0B28;N     # Lo    [22] ORIYA LETTER O..ORIYA LETTER NA
! 0B2A..0B30;N     # Lo     [7] ORIYA LETTER PA..ORIYA LETTER RA
! 0B32..0B33;N     # Lo     [2] ORIYA LETTER LA..ORIYA LETTER LLA
! 0B35..0B39;N     # Lo     [5] ORIYA LETTER VA..ORIYA LETTER HA
! 0B3C;N           # Mn         ORIYA SIGN NUKTA
! 0B3D;N           # Lo         ORIYA SIGN AVAGRAHA
! 0B3E;N           # Mc         ORIYA VOWEL SIGN AA
! 0B3F;N           # Mn         ORIYA VOWEL SIGN I
! 0B40;N           # Mc         ORIYA VOWEL SIGN II
! 0B41..0B44;N     # Mn     [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
! 0B47..0B48;N     # Mc     [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
! 0B4B..0B4C;N     # Mc     [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
! 0B4D;N           # Mn         ORIYA SIGN VIRAMA
! 0B55..0B56;N     # Mn     [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
! 0B57;N           # Mc         ORIYA AU LENGTH MARK
! 0B5C..0B5D;N     # Lo     [2] ORIYA LETTER RRA..ORIYA LETTER RHA
! 0B5F..0B61;N     # Lo     [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
! 0B62..0B63;N     # Mn     [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
! 0B66..0B6F;N     # Nd    [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
! 0B70;N           # So         ORIYA ISSHAR
! 0B71;N           # Lo         ORIYA LETTER WA
! 0B72..0B77;N     # No     [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
! 0B82;N           # Mn         TAMIL SIGN ANUSVARA
! 0B83;N           # Lo         TAMIL SIGN VISARGA
! 0B85..0B8A;N     # Lo     [6] TAMIL LETTER A..TAMIL LETTER UU
! 0B8E..0B90;N     # Lo     [3] TAMIL LETTER E..TAMIL LETTER AI
! 0B92..0B95;N     # Lo     [4] TAMIL LETTER O..TAMIL LETTER KA
! 0B99..0B9A;N     # Lo     [2] TAMIL LETTER NGA..TAMIL LETTER CA
! 0B9C;N           # Lo         TAMIL LETTER JA
! 0B9E..0B9F;N     # Lo     [2] TAMIL LETTER NYA..TAMIL LETTER TTA
! 0BA3..0BA4;N     # Lo     [2] TAMIL LETTER NNA..TAMIL LETTER TA
! 0BA8..0BAA;N     # Lo     [3] TAMIL LETTER NA..TAMIL LETTER PA
! 0BAE..0BB9;N     # Lo    [12] TAMIL LETTER MA..TAMIL LETTER HA
! 0BBE..0BBF;N     # Mc     [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
! 0BC0;N           # Mn         TAMIL VOWEL SIGN II
! 0BC1..0BC2;N     # Mc     [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
! 0BC6..0BC8;N     # Mc     [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
! 0BCA..0BCC;N     # Mc     [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
! 0BCD;N           # Mn         TAMIL SIGN VIRAMA
! 0BD0;N           # Lo         TAMIL OM
! 0BD7;N           # Mc         TAMIL AU LENGTH MARK
! 0BE6..0BEF;N     # Nd    [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
! 0BF0..0BF2;N     # No     [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
! 0BF3..0BF8;N     # So     [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
! 0BF9;N           # Sc         TAMIL RUPEE SIGN
! 0BFA;N           # So         TAMIL NUMBER SIGN
! 0C00;N           # Mn         TELUGU SIGN COMBINING CANDRABINDU ABOVE
! 0C01..0C03;N     # Mc     [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
! 0C04;N           # Mn         TELUGU SIGN COMBINING ANUSVARA ABOVE
! 0C05..0C0C;N     # Lo     [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
! 0C0E..0C10;N     # Lo     [3] TELUGU LETTER E..TELUGU LETTER AI
! 0C12..0C28;N     # Lo    [23] TELUGU LETTER O..TELUGU LETTER NA
! 0C2A..0C39;N     # Lo    [16] TELUGU LETTER PA..TELUGU LETTER HA
! 0C3C;N           # Mn         TELUGU SIGN NUKTA
! 0C3D;N           # Lo         TELUGU SIGN AVAGRAHA
! 0C3E..0C40;N     # Mn     [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
! 0C41..0C44;N     # Mc     [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
! 0C46..0C48;N     # Mn     [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
! 0C4A..0C4D;N     # Mn     [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
! 0C55..0C56;N     # Mn     [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
! 0C58..0C5A;N     # Lo     [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D;N           # Lo         TELUGU LETTER NAKAARA POLLU
! 0C60..0C61;N     # Lo     [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
! 0C62..0C63;N     # Mn     [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
! 0C66..0C6F;N     # Nd    [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
! 0C77;N           # Po         TELUGU SIGN SIDDHAM
! 0C78..0C7E;N     # No     [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
! 0C7F;N           # So         TELUGU SIGN TUUMU
! 0C80;N           # Lo         KANNADA SIGN SPACING CANDRABINDU
! 0C81;N           # Mn         KANNADA SIGN CANDRABINDU
! 0C82..0C83;N     # Mc     [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
! 0C84;N           # Po         KANNADA SIGN SIDDHAM
! 0C85..0C8C;N     # Lo     [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
! 0C8E..0C90;N     # Lo     [3] KANNADA LETTER E..KANNADA LETTER AI
! 0C92..0CA8;N     # Lo    [23] KANNADA LETTER O..KANNADA LETTER NA
! 0CAA..0CB3;N     # Lo    [10] KANNADA LETTER PA..KANNADA LETTER LLA
! 0CB5..0CB9;N     # Lo     [5] KANNADA LETTER VA..KANNADA LETTER HA
! 0CBC;N           # Mn         KANNADA SIGN NUKTA
! 0CBD;N           # Lo         KANNADA SIGN AVAGRAHA
! 0CBE;N           # Mc         KANNADA VOWEL SIGN AA
! 0CBF;N           # Mn         KANNADA VOWEL SIGN I
! 0CC0..0CC4;N     # Mc     [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
! 0CC6;N           # Mn         KANNADA VOWEL SIGN E
! 0CC7..0CC8;N     # Mc     [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
! 0CCA..0CCB;N     # Mc     [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
! 0CCC..0CCD;N     # Mn     [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
! 0CD5..0CD6;N     # Mc     [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDD..0CDE;N     # Lo     [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
! 0CE0..0CE1;N     # Lo     [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
! 0CE2..0CE3;N     # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
! 0CE6..0CEF;N     # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
! 0CF1..0CF2;N     # Lo     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
! 0CF3;N           # Mc         KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
! 0D00..0D01;N     # Mn     [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
! 0D02..0D03;N     # Mc     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
! 0D04..0D0C;N     # Lo     [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
! 0D0E..0D10;N     # Lo     [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
! 0D12..0D3A;N     # Lo    [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
! 0D3B..0D3C;N     # Mn     [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
! 0D3D;N           # Lo         MALAYALAM SIGN AVAGRAHA
! 0D3E..0D40;N     # Mc     [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
! 0D41..0D44;N     # Mn     [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
! 0D46..0D48;N     # Mc     [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
! 0D4A..0D4C;N     # Mc     [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
! 0D4D;N           # Mn         MALAYALAM SIGN VIRAMA
! 0D4E;N           # Lo         MALAYALAM LETTER DOT REPH
! 0D4F;N           # So         MALAYALAM SIGN PARA
! 0D54..0D56;N     # Lo     [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
! 0D57;N           # Mc         MALAYALAM AU LENGTH MARK
! 0D58..0D5E;N     # No     [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
! 0D5F..0D61;N     # Lo     [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
! 0D62..0D63;N     # Mn     [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
! 0D66..0D6F;N     # Nd    [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
! 0D70..0D78;N     # No     [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS
! 0D79;N           # So         MALAYALAM DATE MARK
! 0D7A..0D7F;N     # Lo     [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
! 0D81;N           # Mn         SINHALA SIGN CANDRABINDU
! 0D82..0D83;N     # Mc     [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
! 0D85..0D96;N     # Lo    [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
! 0D9A..0DB1;N     # Lo    [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
! 0DB3..0DBB;N     # Lo     [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
! 0DBD;N           # Lo         SINHALA LETTER DANTAJA LAYANNA
! 0DC0..0DC6;N     # Lo     [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
! 0DCA;N           # Mn         SINHALA SIGN AL-LAKUNA
! 0DCF..0DD1;N     # Mc     [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
! 0DD2..0DD4;N     # Mn     [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
! 0DD6;N           # Mn         SINHALA VOWEL SIGN DIGA PAA-PILLA
! 0DD8..0DDF;N     # Mc     [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
! 0DE6..0DEF;N     # Nd    [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
! 0DF2..0DF3;N     # Mc     [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
! 0DF4;N           # Po         SINHALA PUNCTUATION KUNDDALIYA
! 0E01..0E30;N     # Lo    [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
! 0E31;N           # Mn         THAI CHARACTER MAI HAN-AKAT
! 0E32..0E33;N     # Lo     [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
! 0E34..0E3A;N     # Mn     [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
! 0E3F;N           # Sc         THAI CURRENCY SYMBOL BAHT
! 0E40..0E45;N     # Lo     [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
! 0E46;N           # Lm         THAI CHARACTER MAIYAMOK
! 0E47..0E4E;N     # Mn     [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
! 0E4F;N           # Po         THAI CHARACTER FONGMAN
! 0E50..0E59;N     # Nd    [10] THAI DIGIT ZERO..THAI DIGIT NINE
! 0E5A..0E5B;N     # Po     [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
! 0E81..0E82;N     # Lo     [2] LAO LETTER KO..LAO LETTER KHO SUNG
! 0E84;N           # Lo         LAO LETTER KHO TAM
! 0E86..0E8A;N     # Lo     [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
! 0E8C..0EA3;N     # Lo    [24] LAO LETTER PALI JHA..LAO LETTER LO LING
! 0EA5;N           # Lo         LAO LETTER LO LOOT
! 0EA7..0EB0;N     # Lo    [10] LAO LETTER WO..LAO VOWEL SIGN A
! 0EB1;N           # Mn         LAO VOWEL SIGN MAI KAN
! 0EB2..0EB3;N     # Lo     [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
! 0EB4..0EBC;N     # Mn     [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
! 0EBD;N           # Lo         LAO SEMIVOWEL SIGN NYO
! 0EC0..0EC4;N     # Lo     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
! 0EC6;N           # Lm         LAO KO LA
! 0EC8..0ECE;N     # Mn     [7] LAO TONE MAI EK..LAO YAMAKKAN
! 0ED0..0ED9;N     # Nd    [10] LAO DIGIT ZERO..LAO DIGIT NINE
! 0EDC..0EDF;N     # Lo     [4] LAO HO NO..LAO LETTER KHMU NYO
! 0F00;N           # Lo         TIBETAN SYLLABLE OM
! 0F01..0F03;N     # So     [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
! 0F04..0F12;N     # Po    [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
! 0F13;N           # So         TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
! 0F14;N           # Po         TIBETAN MARK GTER TSHEG
! 0F15..0F17;N     # So     [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
! 0F18..0F19;N     # Mn     [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
! 0F1A..0F1F;N     # So     [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
! 0F20..0F29;N     # Nd    [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
! 0F2A..0F33;N     # No    [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
! 0F34;N           # So         TIBETAN MARK BSDUS RTAGS
! 0F35;N           # Mn         TIBETAN MARK NGAS BZUNG NYI ZLA
! 0F36;N           # So         TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
! 0F37;N           # Mn         TIBETAN MARK NGAS BZUNG SGOR RTAGS
! 0F38;N           # So         TIBETAN MARK CHE MGO
! 0F39;N           # Mn         TIBETAN MARK TSA -PHRU
! 0F3A;N           # Ps         TIBETAN MARK GUG RTAGS GYON
! 0F3B;N           # Pe         TIBETAN MARK GUG RTAGS GYAS
! 0F3C;N           # Ps         TIBETAN MARK ANG KHANG GYON
! 0F3D;N           # Pe         TIBETAN MARK ANG KHANG GYAS
! 0F3E..0F3F;N     # Mc     [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
! 0F40..0F47;N     # Lo     [8] TIBETAN LETTER KA..TIBETAN LETTER JA
! 0F49..0F6C;N     # Lo    [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
! 0F71..0F7E;N     # Mn    [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
! 0F7F;N           # Mc         TIBETAN SIGN RNAM BCAD
! 0F80..0F84;N     # Mn     [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
! 0F85;N           # Po         TIBETAN MARK PALUTA
! 0F86..0F87;N     # Mn     [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
! 0F88..0F8C;N     # Lo     [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
! 0F8D..0F97;N     # Mn    [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
! 0F99..0FBC;N     # Mn    [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
! 0FBE..0FC5;N     # So     [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
! 0FC6;N           # Mn         TIBETAN SYMBOL PADMA GDAN
! 0FC7..0FCC;N     # So     [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
! 0FCE..0FCF;N     # So     [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
! 0FD0..0FD4;N     # Po     [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
! 0FD5..0FD8;N     # So     [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
! 0FD9..0FDA;N     # Po     [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
! 1000..102A;N     # Lo    [43] MYANMAR LETTER KA..MYANMAR LETTER AU
! 102B..102C;N     # Mc     [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
! 102D..1030;N     # Mn     [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
! 1031;N           # Mc         MYANMAR VOWEL SIGN E
! 1032..1037;N     # Mn     [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
! 1038;N           # Mc         MYANMAR SIGN VISARGA
! 1039..103A;N     # Mn     [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
! 103B..103C;N     # Mc     [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
! 103D..103E;N     # Mn     [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
! 103F;N           # Lo         MYANMAR LETTER GREAT SA
! 1040..1049;N     # Nd    [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
! 104A..104F;N     # Po     [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
! 1050..1055;N     # Lo     [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
! 1056..1057;N     # Mc     [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
! 1058..1059;N     # Mn     [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
! 105A..105D;N     # Lo     [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
! 105E..1060;N     # Mn     [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
! 1061;N           # Lo         MYANMAR LETTER SGAW KAREN SHA
! 1062..1064;N     # Mc     [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
! 1065..1066;N     # Lo     [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
! 1067..106D;N     # Mc     [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
! 106E..1070;N     # Lo     [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
! 1071..1074;N     # Mn     [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
! 1075..1081;N     # Lo    [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
! 1082;N           # Mn         MYANMAR CONSONANT SIGN SHAN MEDIAL WA
! 1083..1084;N     # Mc     [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
! 1085..1086;N     # Mn     [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
! 1087..108C;N     # Mc     [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
! 108D;N           # Mn         MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
! 108E;N           # Lo         MYANMAR LETTER RUMAI PALAUNG FA
! 108F;N           # Mc         MYANMAR SIGN RUMAI PALAUNG TONE-5
! 1090..1099;N     # Nd    [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
! 109A..109C;N     # Mc     [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
! 109D;N           # Mn         MYANMAR VOWEL SIGN AITON AI
! 109E..109F;N     # So     [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
! 10A0..10C5;N     # Lu    [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
! 10C7;N           # Lu         GEORGIAN CAPITAL LETTER YN
! 10CD;N           # Lu         GEORGIAN CAPITAL LETTER AEN
! 10D0..10FA;N     # Ll    [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
! 10FB;N           # Po         GEORGIAN PARAGRAPH SEPARATOR
! 10FC;N           # Lm         MODIFIER LETTER GEORGIAN NAR
! 10FD..10FF;N     # Ll     [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
! 1100..115F;W     # Lo    [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
! 1160..11FF;N     # Lo   [160] HANGUL JUNGSEONG FILLER..HANGUL JONGSEONG SSANGNIEUN
! 1200..1248;N     # Lo    [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
! 124A..124D;N     # Lo     [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
! 1250..1256;N     # Lo     [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
! 1258;N           # Lo         ETHIOPIC SYLLABLE QHWA
! 125A..125D;N     # Lo     [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
! 1260..1288;N     # Lo    [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
! 128A..128D;N     # Lo     [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
! 1290..12B0;N     # Lo    [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
! 12B2..12B5;N     # Lo     [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
! 12B8..12BE;N     # Lo     [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
! 12C0;N           # Lo         ETHIOPIC SYLLABLE KXWA
! 12C2..12C5;N     # Lo     [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
! 12C8..12D6;N     # Lo    [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
! 12D8..1310;N     # Lo    [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
! 1312..1315;N     # Lo     [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
! 1318..135A;N     # Lo    [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
! 135D..135F;N     # Mn     [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
! 1360..1368;N     # Po     [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
! 1369..137C;N     # No    [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
! 1380..138F;N     # Lo    [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
! 1390..1399;N     # So    [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
! 13A0..13F5;N     # Lu    [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
! 13F8..13FD;N     # Ll     [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
! 1400;N           # Pd         CANADIAN SYLLABICS HYPHEN
! 1401..166C;N     # Lo   [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
! 166D;N           # So         CANADIAN SYLLABICS CHI SIGN
! 166E;N           # Po         CANADIAN SYLLABICS FULL STOP
! 166F..167F;N     # Lo    [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
! 1680;N           # Zs         OGHAM SPACE MARK
! 1681..169A;N     # Lo    [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
! 169B;N           # Ps         OGHAM FEATHER MARK
! 169C;N           # Pe         OGHAM REVERSED FEATHER MARK
! 16A0..16EA;N     # Lo    [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
! 16EB..16ED;N     # Po     [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
! 16EE..16F0;N     # Nl     [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
! 16F1..16F8;N     # Lo     [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
! 1700..1711;N     # Lo    [18] TAGALOG LETTER A..TAGALOG LETTER HA
! 1712..1714;N     # Mn     [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
! 1715;N           # Mc         TAGALOG SIGN PAMUDPOD
! 171F;N           # Lo         TAGALOG LETTER ARCHAIC RA
! 1720..1731;N     # Lo    [18] HANUNOO LETTER A..HANUNOO LETTER HA
! 1732..1733;N     # Mn     [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
! 1734;N           # Mc         HANUNOO SIGN PAMUDPOD
! 1735..1736;N     # Po     [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
! 1740..1751;N     # Lo    [18] BUHID LETTER A..BUHID LETTER HA
! 1752..1753;N     # Mn     [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
! 1760..176C;N     # Lo    [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
! 176E..1770;N     # Lo     [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
! 1772..1773;N     # Mn     [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
! 1780..17B3;N     # Lo    [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
! 17B4..17B5;N     # Mn     [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
! 17B6;N           # Mc         KHMER VOWEL SIGN AA
! 17B7..17BD;N     # Mn     [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
! 17BE..17C5;N     # Mc     [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
! 17C6;N           # Mn         KHMER SIGN NIKAHIT
! 17C7..17C8;N     # Mc     [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
! 17C9..17D3;N     # Mn    [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
! 17D4..17D6;N     # Po     [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
! 17D7;N           # Lm         KHMER SIGN LEK TOO
! 17D8..17DA;N     # Po     [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
! 17DB;N           # Sc         KHMER CURRENCY SYMBOL RIEL
! 17DC;N           # Lo         KHMER SIGN AVAKRAHASANYA
! 17DD;N           # Mn         KHMER SIGN ATTHACAN
! 17E0..17E9;N     # Nd    [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
! 17F0..17F9;N     # No    [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
! 1800..1805;N     # Po     [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
! 1806;N           # Pd         MONGOLIAN TODO SOFT HYPHEN
! 1807..180A;N     # Po     [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
! 180B..180D;N     # Mn     [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
! 180E;N           # Cf         MONGOLIAN VOWEL SEPARATOR
! 180F;N           # Mn         MONGOLIAN FREE VARIATION SELECTOR FOUR
! 1810..1819;N     # Nd    [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
! 1820..1842;N     # Lo    [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
! 1843;N           # Lm         MONGOLIAN LETTER TODO LONG VOWEL SIGN
! 1844..1878;N     # Lo    [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
! 1880..1884;N     # Lo     [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
! 1885..1886;N     # Mn     [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
! 1887..18A8;N     # Lo    [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
! 18A9;N           # Mn         MONGOLIAN LETTER ALI GALI DAGALGA
! 18AA;N           # Lo         MONGOLIAN LETTER MANCHU ALI GALI LHA
! 18B0..18F5;N     # Lo    [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
! 1900..191E;N     # Lo    [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
! 1920..1922;N     # Mn     [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
! 1923..1926;N     # Mc     [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
! 1927..1928;N     # Mn     [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
! 1929..192B;N     # Mc     [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
! 1930..1931;N     # Mc     [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
! 1932;N           # Mn         LIMBU SMALL LETTER ANUSVARA
! 1933..1938;N     # Mc     [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
! 1939..193B;N     # Mn     [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
! 1940;N           # So         LIMBU SIGN LOO
! 1944..1945;N     # Po     [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
! 1946..194F;N     # Nd    [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
! 1950..196D;N     # Lo    [30] TAI LE LETTER KA..TAI LE LETTER AI
! 1970..1974;N     # Lo     [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
! 1980..19AB;N     # Lo    [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
! 19B0..19C9;N     # Lo    [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
! 19D0..19D9;N     # Nd    [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
! 19DA;N           # No         NEW TAI LUE THAM DIGIT ONE
! 19DE..19DF;N     # So     [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
! 19E0..19FF;N     # So    [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
! 1A00..1A16;N     # Lo    [23] BUGINESE LETTER KA..BUGINESE LETTER HA
! 1A17..1A18;N     # Mn     [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
! 1A19..1A1A;N     # Mc     [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
! 1A1B;N           # Mn         BUGINESE VOWEL SIGN AE
! 1A1E..1A1F;N     # Po     [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
! 1A20..1A54;N     # Lo    [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
! 1A55;N           # Mc         TAI THAM CONSONANT SIGN MEDIAL RA
! 1A56;N           # Mn         TAI THAM CONSONANT SIGN MEDIAL LA
! 1A57;N           # Mc         TAI THAM CONSONANT SIGN LA TANG LAI
! 1A58..1A5E;N     # Mn     [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
! 1A60;N           # Mn         TAI THAM SIGN SAKOT
! 1A61;N           # Mc         TAI THAM VOWEL SIGN A
! 1A62;N           # Mn         TAI THAM VOWEL SIGN MAI SAT
! 1A63..1A64;N     # Mc     [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
! 1A65..1A6C;N     # Mn     [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
! 1A6D..1A72;N     # Mc     [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
! 1A73..1A7C;N     # Mn    [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
! 1A7F;N           # Mn         TAI THAM COMBINING CRYPTOGRAMMIC DOT
! 1A80..1A89;N     # Nd    [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
! 1A90..1A99;N     # Nd    [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
! 1AA0..1AA6;N     # Po     [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
! 1AA7;N           # Lm         TAI THAM SIGN MAI YAMOK
! 1AA8..1AAD;N     # Po     [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
! 1AB0..1ABD;N     # Mn    [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
! 1ABE;N           # Me         COMBINING PARENTHESES OVERLAY
! 1ABF..1ACE;N     # Mn    [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
! 1B00..1B03;N     # Mn     [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
! 1B04;N           # Mc         BALINESE SIGN BISAH
! 1B05..1B33;N     # Lo    [47] BALINESE LETTER AKARA..BALINESE LETTER HA
! 1B34;N           # Mn         BALINESE SIGN REREKAN
! 1B35;N           # Mc         BALINESE VOWEL SIGN TEDUNG
! 1B36..1B3A;N     # Mn     [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
! 1B3B;N           # Mc         BALINESE VOWEL SIGN RA REPA TEDUNG
! 1B3C;N           # Mn         BALINESE VOWEL SIGN LA LENGA
! 1B3D..1B41;N     # Mc     [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
! 1B42;N           # Mn         BALINESE VOWEL SIGN PEPET
! 1B43..1B44;N     # Mc     [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
! 1B45..1B4C;N     # Lo     [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
! 1B50..1B59;N     # Nd    [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
! 1B5A..1B60;N     # Po     [7] BALINESE PANTI..BALINESE PAMENENG
! 1B61..1B6A;N     # So    [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
! 1B6B..1B73;N     # Mn     [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
! 1B74..1B7C;N     # So     [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
! 1B7D..1B7E;N     # Po     [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
! 1B80..1B81;N     # Mn     [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
! 1B82;N           # Mc         SUNDANESE SIGN PANGWISAD
! 1B83..1BA0;N     # Lo    [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
! 1BA1;N           # Mc         SUNDANESE CONSONANT SIGN PAMINGKAL
! 1BA2..1BA5;N     # Mn     [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
! 1BA6..1BA7;N     # Mc     [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
! 1BA8..1BA9;N     # Mn     [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
! 1BAA;N           # Mc         SUNDANESE SIGN PAMAAEH
! 1BAB..1BAD;N     # Mn     [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
! 1BAE..1BAF;N     # Lo     [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
! 1BB0..1BB9;N     # Nd    [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
! 1BBA..1BBF;N     # Lo     [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
! 1BC0..1BE5;N     # Lo    [38] BATAK LETTER A..BATAK LETTER U
! 1BE6;N           # Mn         BATAK SIGN TOMPI
! 1BE7;N           # Mc         BATAK VOWEL SIGN E
! 1BE8..1BE9;N     # Mn     [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
! 1BEA..1BEC;N     # Mc     [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
! 1BED;N           # Mn         BATAK VOWEL SIGN KARO O
! 1BEE;N           # Mc         BATAK VOWEL SIGN U
! 1BEF..1BF1;N     # Mn     [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
! 1BF2..1BF3;N     # Mc     [2] BATAK PANGOLAT..BATAK PANONGONAN
! 1BFC..1BFF;N     # Po     [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
! 1C00..1C23;N     # Lo    [36] LEPCHA LETTER KA..LEPCHA LETTER A
! 1C24..1C2B;N     # Mc     [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
! 1C2C..1C33;N     # Mn     [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
! 1C34..1C35;N     # Mc     [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
! 1C36..1C37;N     # Mn     [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
! 1C3B..1C3F;N     # Po     [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
! 1C40..1C49;N     # Nd    [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
! 1C4D..1C4F;N     # Lo     [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
! 1C50..1C59;N     # Nd    [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
! 1C5A..1C77;N     # Lo    [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
! 1C78..1C7D;N     # Lm     [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C7E..1C7F;N     # Po     [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
! 1C80..1C88;N     # Ll     [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
! 1C90..1CBA;N     # Lu    [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
! 1CBD..1CBF;N     # Lu     [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
! 1CC0..1CC7;N     # Po     [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
! 1CD0..1CD2;N     # Mn     [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
! 1CD3;N           # Po         VEDIC SIGN NIHSHVASA
! 1CD4..1CE0;N     # Mn    [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
! 1CE1;N           # Mc         VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
! 1CE2..1CE8;N     # Mn     [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
! 1CE9..1CEC;N     # Lo     [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
! 1CED;N           # Mn         VEDIC SIGN TIRYAK
! 1CEE..1CF3;N     # Lo     [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
! 1CF4;N           # Mn         VEDIC TONE CANDRA ABOVE
! 1CF5..1CF6;N     # Lo     [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
! 1CF7;N           # Mc         VEDIC SIGN ATIKRAMA
! 1CF8..1CF9;N     # Mn     [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
! 1CFA;N           # Lo         VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
! 1D00..1D2B;N     # Ll    [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
! 1D2C..1D6A;N     # Lm    [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
! 1D6B..1D77;N     # Ll    [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
! 1D78;N           # Lm         MODIFIER LETTER CYRILLIC EN
! 1D79..1D7F;N     # Ll     [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
! 1D80..1D9A;N     # Ll    [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
! 1D9B..1DBF;N     # Lm    [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
! 1DC0..1DFF;N     # Mn    [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
! 1E00..1EFF;N     # L&   [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
! 1F00..1F15;N     # L&    [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
! 1F18..1F1D;N     # Lu     [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
! 1F20..1F45;N     # L&    [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
! 1F48..1F4D;N     # Lu     [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
! 1F50..1F57;N     # Ll     [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
! 1F59;N           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA
! 1F5B;N           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
! 1F5D;N           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
! 1F5F..1F7D;N     # L&    [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
! 1F80..1FB4;N     # L&    [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
! 1FB6..1FBC;N     # L&     [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
! 1FBD;N           # Sk         GREEK KORONIS
! 1FBE;N           # Ll         GREEK PROSGEGRAMMENI
! 1FBF..1FC1;N     # Sk     [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
! 1FC2..1FC4;N     # Ll     [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
! 1FC6..1FCC;N     # L&     [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
! 1FCD..1FCF;N     # Sk     [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
! 1FD0..1FD3;N     # Ll     [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
! 1FD6..1FDB;N     # L&     [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
! 1FDD..1FDF;N     # Sk     [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
! 1FE0..1FEC;N     # L&    [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
! 1FED..1FEF;N     # Sk     [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
! 1FF2..1FF4;N     # Ll     [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
! 1FF6..1FFC;N     # L&     [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
! 1FFD..1FFE;N     # Sk     [2] GREEK OXIA..GREEK DASIA
! 2000..200A;N     # Zs    [11] EN QUAD..HAIR SPACE
! 200B..200F;N     # Cf     [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
! 2010;A           # Pd         HYPHEN
! 2011..2012;N     # Pd     [2] NON-BREAKING HYPHEN..FIGURE DASH
! 2013..2015;A     # Pd     [3] EN DASH..HORIZONTAL BAR
! 2016;A           # Po         DOUBLE VERTICAL LINE
! 2017;N           # Po         DOUBLE LOW LINE
! 2018;A           # Pi         LEFT SINGLE QUOTATION MARK
! 2019;A           # Pf         RIGHT SINGLE QUOTATION MARK
! 201A;N           # Ps         SINGLE LOW-9 QUOTATION MARK
! 201B;N           # Pi         SINGLE HIGH-REVERSED-9 QUOTATION MARK
! 201C;A           # Pi         LEFT DOUBLE QUOTATION MARK
! 201D;A           # Pf         RIGHT DOUBLE QUOTATION MARK
! 201E;N           # Ps         DOUBLE LOW-9 QUOTATION MARK
! 201F;N           # Pi         DOUBLE HIGH-REVERSED-9 QUOTATION MARK
! 2020..2022;A     # Po     [3] DAGGER..BULLET
! 2023;N           # Po         TRIANGULAR BULLET
! 2024..2027;A     # Po     [4] ONE DOT LEADER..HYPHENATION POINT
! 2028;N           # Zl         LINE SEPARATOR
! 2029;N           # Zp         PARAGRAPH SEPARATOR
! 202A..202E;N     # Cf     [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
! 202F;N           # Zs         NARROW NO-BREAK SPACE
! 2030;A           # Po         PER MILLE SIGN
! 2031;N           # Po         PER TEN THOUSAND SIGN
! 2032..2033;A     # Po     [2] PRIME..DOUBLE PRIME
! 2034;N           # Po         TRIPLE PRIME
! 2035;A           # Po         REVERSED PRIME
! 2036..2038;N     # Po     [3] REVERSED DOUBLE PRIME..CARET
! 2039;N           # Pi         SINGLE LEFT-POINTING ANGLE QUOTATION MARK
! 203A;N           # Pf         SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
! 203B;A           # Po         REFERENCE MARK
! 203C..203D;N     # Po     [2] DOUBLE EXCLAMATION MARK..INTERROBANG
! 203E;A           # Po         OVERLINE
! 203F..2040;N     # Pc     [2] UNDERTIE..CHARACTER TIE
! 2041..2043;N     # Po     [3] CARET INSERTION POINT..HYPHEN BULLET
! 2044;N           # Sm         FRACTION SLASH
! 2045;N           # Ps         LEFT SQUARE BRACKET WITH QUILL
! 2046;N           # Pe         RIGHT SQUARE BRACKET WITH QUILL
! 2047..2051;N     # Po    [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
! 2052;N           # Sm         COMMERCIAL MINUS SIGN
! 2053;N           # Po         SWUNG DASH
! 2054;N           # Pc         INVERTED UNDERTIE
! 2055..205E;N     # Po    [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
! 205F;N           # Zs         MEDIUM MATHEMATICAL SPACE
! 2060..2064;N     # Cf     [5] WORD JOINER..INVISIBLE PLUS
! 2066..206F;N     # Cf    [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
! 2070;N           # No         SUPERSCRIPT ZERO
! 2071;N           # Lm         SUPERSCRIPT LATIN SMALL LETTER I
! 2074;A           # No         SUPERSCRIPT FOUR
! 2075..2079;N     # No     [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
! 207A..207C;N     # Sm     [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
! 207D;N           # Ps         SUPERSCRIPT LEFT PARENTHESIS
! 207E;N           # Pe         SUPERSCRIPT RIGHT PARENTHESIS
! 207F;A           # Lm         SUPERSCRIPT LATIN SMALL LETTER N
! 2080;N           # No         SUBSCRIPT ZERO
! 2081..2084;A     # No     [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
! 2085..2089;N     # No     [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
! 208A..208C;N     # Sm     [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
! 208D;N           # Ps         SUBSCRIPT LEFT PARENTHESIS
! 208E;N           # Pe         SUBSCRIPT RIGHT PARENTHESIS
! 2090..209C;N     # Lm    [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
! 20A0..20A8;N     # Sc     [9] EURO-CURRENCY SIGN..RUPEE SIGN
! 20A9;H           # Sc         WON SIGN
! 20AA..20AB;N     # Sc     [2] NEW SHEQEL SIGN..DONG SIGN
! 20AC;A           # Sc         EURO SIGN
! 20AD..20C0;N     # Sc    [20] KIP SIGN..SOM SIGN
! 20D0..20DC;N     # Mn    [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
! 20DD..20E0;N     # Me     [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
! 20E1;N           # Mn         COMBINING LEFT RIGHT ARROW ABOVE
! 20E2..20E4;N     # Me     [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
! 20E5..20F0;N     # Mn    [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
! 2100..2101;N     # So     [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
! 2102;N           # Lu         DOUBLE-STRUCK CAPITAL C
! 2103;A           # So         DEGREE CELSIUS
! 2104;N           # So         CENTRE LINE SYMBOL
! 2105;A           # So         CARE OF
! 2106;N           # So         CADA UNA
! 2107;N           # Lu         EULER CONSTANT
! 2108;N           # So         SCRUPLE
! 2109;A           # So         DEGREE FAHRENHEIT
! 210A..2112;N     # L&     [9] SCRIPT SMALL G..SCRIPT CAPITAL L
! 2113;A           # Ll         SCRIPT SMALL L
! 2114;N           # So         L B BAR SYMBOL
! 2115;N           # Lu         DOUBLE-STRUCK CAPITAL N
! 2116;A           # So         NUMERO SIGN
! 2117;N           # So         SOUND RECORDING COPYRIGHT
! 2118;N           # Sm         SCRIPT CAPITAL P
! 2119..211D;N     # Lu     [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
! 211E..2120;N     # So     [3] PRESCRIPTION TAKE..SERVICE MARK
! 2121..2122;A     # So     [2] TELEPHONE SIGN..TRADE MARK SIGN
! 2123;N           # So         VERSICLE
! 2124;N           # Lu         DOUBLE-STRUCK CAPITAL Z
! 2125;N           # So         OUNCE SIGN
! 2126;A           # Lu         OHM SIGN
! 2127;N           # So         INVERTED OHM SIGN
! 2128;N           # Lu         BLACK-LETTER CAPITAL Z
! 2129;N           # So         TURNED GREEK SMALL LETTER IOTA
! 212A;N           # Lu         KELVIN SIGN
! 212B;A           # Lu         ANGSTROM SIGN
! 212C..212D;N     # Lu     [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
! 212E;N           # So         ESTIMATED SYMBOL
! 212F..2134;N     # L&     [6] SCRIPT SMALL E..SCRIPT SMALL O
! 2135..2138;N     # Lo     [4] ALEF SYMBOL..DALET SYMBOL
! 2139;N           # Ll         INFORMATION SOURCE
! 213A..213B;N     # So     [2] ROTATED CAPITAL Q..FACSIMILE SIGN
! 213C..213F;N     # L&     [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
! 2140..2144;N     # Sm     [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
! 2145..2149;N     # L&     [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
! 214A;N           # So         PROPERTY LINE
! 214B;N           # Sm         TURNED AMPERSAND
! 214C..214D;N     # So     [2] PER SIGN..AKTIESELSKAB
! 214E;N           # Ll         TURNED SMALL F
! 214F;N           # So         SYMBOL FOR SAMARITAN SOURCE
! 2150..2152;N     # No     [3] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE TENTH
! 2153..2154;A     # No     [2] VULGAR FRACTION ONE THIRD..VULGAR FRACTION TWO THIRDS
! 2155..215A;N     # No     [6] VULGAR FRACTION ONE FIFTH..VULGAR FRACTION FIVE SIXTHS
! 215B..215E;A     # No     [4] VULGAR FRACTION ONE EIGHTH..VULGAR FRACTION SEVEN EIGHTHS
! 215F;N           # No         FRACTION NUMERATOR ONE
! 2160..216B;A     # Nl    [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
! 216C..216F;N     # Nl     [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
! 2170..2179;A     # Nl    [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
! 217A..2182;N     # Nl     [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
! 2183..2184;N     # L&     [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
! 2185..2188;N     # Nl     [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
! 2189;A           # No         VULGAR FRACTION ZERO THIRDS
! 218A..218B;N     # So     [2] TURNED DIGIT TWO..TURNED DIGIT THREE
! 2190..2194;A     # Sm     [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
! 2195..2199;A     # So     [5] UP DOWN ARROW..SOUTH WEST ARROW
! 219A..219B;N     # Sm     [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
! 219C..219F;N     # So     [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
! 21A0;N           # Sm         RIGHTWARDS TWO HEADED ARROW
! 21A1..21A2;N     # So     [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
! 21A3;N           # Sm         RIGHTWARDS ARROW WITH TAIL
! 21A4..21A5;N     # So     [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
! 21A6;N           # Sm         RIGHTWARDS ARROW FROM BAR
! 21A7..21AD;N     # So     [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
! 21AE;N           # Sm         LEFT RIGHT ARROW WITH STROKE
! 21AF..21B7;N     # So     [9] DOWNWARDS ZIGZAG ARROW..CLOCKWISE TOP SEMICIRCLE ARROW
! 21B8..21B9;A     # So     [2] NORTH WEST ARROW TO LONG BAR..LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
! 21BA..21CD;N     # So    [20] ANTICLOCKWISE OPEN CIRCLE ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
! 21CE..21CF;N     # Sm     [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
! 21D0..21D1;N     # So     [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
! 21D2;A           # Sm         RIGHTWARDS DOUBLE ARROW
! 21D3;N           # So         DOWNWARDS DOUBLE ARROW
! 21D4;A           # Sm         LEFT RIGHT DOUBLE ARROW
! 21D5..21E6;N     # So    [18] UP DOWN DOUBLE ARROW..LEFTWARDS WHITE ARROW
! 21E7;A           # So         UPWARDS WHITE ARROW
! 21E8..21F3;N     # So    [12] RIGHTWARDS WHITE ARROW..UP DOWN WHITE ARROW
! 21F4..21FF;N     # Sm    [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
! 2200;A           # Sm         FOR ALL
! 2201;N           # Sm         COMPLEMENT
! 2202..2203;A     # Sm     [2] PARTIAL DIFFERENTIAL..THERE EXISTS
! 2204..2206;N     # Sm     [3] THERE DOES NOT EXIST..INCREMENT
! 2207..2208;A     # Sm     [2] NABLA..ELEMENT OF
! 2209..220A;N     # Sm     [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
! 220B;A           # Sm         CONTAINS AS MEMBER
! 220C..220E;N     # Sm     [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
! 220F;A           # Sm         N-ARY PRODUCT
! 2210;N           # Sm         N-ARY COPRODUCT
! 2211;A           # Sm         N-ARY SUMMATION
! 2212..2214;N     # Sm     [3] MINUS SIGN..DOT PLUS
! 2215;A           # Sm         DIVISION SLASH
! 2216..2219;N     # Sm     [4] SET MINUS..BULLET OPERATOR
! 221A;A           # Sm         SQUARE ROOT
! 221B..221C;N     # Sm     [2] CUBE ROOT..FOURTH ROOT
! 221D..2220;A     # Sm     [4] PROPORTIONAL TO..ANGLE
! 2221..2222;N     # Sm     [2] MEASURED ANGLE..SPHERICAL ANGLE
! 2223;A           # Sm         DIVIDES
! 2224;N           # Sm         DOES NOT DIVIDE
! 2225;A           # Sm         PARALLEL TO
! 2226;N           # Sm         NOT PARALLEL TO
! 2227..222C;A     # Sm     [6] LOGICAL AND..DOUBLE INTEGRAL
! 222D;N           # Sm         TRIPLE INTEGRAL
! 222E;A           # Sm         CONTOUR INTEGRAL
! 222F..2233;N     # Sm     [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
! 2234..2237;A     # Sm     [4] THEREFORE..PROPORTION
! 2238..223B;N     # Sm     [4] DOT MINUS..HOMOTHETIC
! 223C..223D;A     # Sm     [2] TILDE OPERATOR..REVERSED TILDE
! 223E..2247;N     # Sm    [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
! 2248;A           # Sm         ALMOST EQUAL TO
! 2249..224B;N     # Sm     [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
! 224C;A           # Sm         ALL EQUAL TO
! 224D..2251;N     # Sm     [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
! 2252;A           # Sm         APPROXIMATELY EQUAL TO OR THE IMAGE OF
! 2253..225F;N     # Sm    [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
! 2260..2261;A     # Sm     [2] NOT EQUAL TO..IDENTICAL TO
! 2262..2263;N     # Sm     [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
! 2264..2267;A     # Sm     [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
! 2268..2269;N     # Sm     [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
! 226A..226B;A     # Sm     [2] MUCH LESS-THAN..MUCH GREATER-THAN
! 226C..226D;N     # Sm     [2] BETWEEN..NOT EQUIVALENT TO
! 226E..226F;A     # Sm     [2] NOT LESS-THAN..NOT GREATER-THAN
! 2270..2281;N     # Sm    [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
! 2282..2283;A     # Sm     [2] SUBSET OF..SUPERSET OF
! 2284..2285;N     # Sm     [2] NOT A SUBSET OF..NOT A SUPERSET OF
! 2286..2287;A     # Sm     [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
! 2288..2294;N     # Sm    [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
! 2295;A           # Sm         CIRCLED PLUS
! 2296..2298;N     # Sm     [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
! 2299;A           # Sm         CIRCLED DOT OPERATOR
! 229A..22A4;N     # Sm    [11] CIRCLED RING OPERATOR..DOWN TACK
! 22A5;A           # Sm         UP TACK
! 22A6..22BE;N     # Sm    [25] ASSERTION..RIGHT ANGLE WITH ARC
! 22BF;A           # Sm         RIGHT TRIANGLE
! 22C0..22FF;N     # Sm    [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP
! 2300..2307;N     # So     [8] DIAMETER SIGN..WAVY LINE
! 2308;N           # Ps         LEFT CEILING
! 2309;N           # Pe         RIGHT CEILING
! 230A;N           # Ps         LEFT FLOOR
! 230B;N           # Pe         RIGHT FLOOR
! 230C..2311;N     # So     [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
! 2312;A           # So         ARC
! 2313..2319;N     # So     [7] SEGMENT..TURNED NOT SIGN
! 231A..231B;W     # So     [2] WATCH..HOURGLASS
! 231C..231F;N     # So     [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
! 2320..2321;N     # Sm     [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
! 2322..2328;N     # So     [7] FROWN..KEYBOARD
! 2329;W           # Ps         LEFT-POINTING ANGLE BRACKET
! 232A;W           # Pe         RIGHT-POINTING ANGLE BRACKET
! 232B..237B;N     # So    [81] ERASE TO THE LEFT..NOT CHECK MARK
! 237C;N           # Sm         RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
! 237D..239A;N     # So    [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
! 239B..23B3;N     # Sm    [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
! 23B4..23DB;N     # So    [40] TOP SQUARE BRACKET..FUSE
! 23DC..23E1;N     # Sm     [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
! 23E2..23E8;N     # So     [7] WHITE TRAPEZIUM..DECIMAL EXPONENT SYMBOL
! 23E9..23EC;W     # So     [4] BLACK RIGHT-POINTING DOUBLE TRIANGLE..BLACK DOWN-POINTING DOUBLE TRIANGLE
! 23ED..23EF;N     # So     [3] BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
! 23F0;W           # So         ALARM CLOCK
! 23F1..23F2;N     # So     [2] STOPWATCH..TIMER CLOCK
! 23F3;W           # So         HOURGLASS WITH FLOWING SAND
! 23F4..23FF;N     # So    [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL
! 2400..2426;N     # So    [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
! 2440..244A;N     # So    [11] OCR HOOK..OCR DOUBLE BACKSLASH
! 2460..249B;A     # No    [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
! 249C..24E9;A     # So    [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
! 24EA;N           # No         CIRCLED DIGIT ZERO
! 24EB..24FF;A     # No    [21] NEGATIVE CIRCLED NUMBER ELEVEN..NEGATIVE CIRCLED DIGIT ZERO
! 2500..254B;A     # So    [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
! 254C..254F;N     # So     [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
! 2550..2573;A     # So    [36] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT DIAGONAL CROSS
! 2574..257F;N     # So    [12] BOX DRAWINGS LIGHT LEFT..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
! 2580..258F;A     # So    [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
! 2590..2591;N     # So     [2] RIGHT HALF BLOCK..LIGHT SHADE
! 2592..2595;A     # So     [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
! 2596..259F;N     # So    [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
! 25A0..25A1;A     # So     [2] BLACK SQUARE..WHITE SQUARE
! 25A2;N           # So         WHITE SQUARE WITH ROUNDED CORNERS
! 25A3..25A9;A     # So     [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
! 25AA..25B1;N     # So     [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
! 25B2..25B3;A     # So     [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
! 25B4..25B5;N     # So     [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
! 25B6;A           # So         BLACK RIGHT-POINTING TRIANGLE
! 25B7;A           # Sm         WHITE RIGHT-POINTING TRIANGLE
! 25B8..25BB;N     # So     [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
! 25BC..25BD;A     # So     [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
! 25BE..25BF;N     # So     [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
! 25C0;A           # So         BLACK LEFT-POINTING TRIANGLE
! 25C1;A           # Sm         WHITE LEFT-POINTING TRIANGLE
! 25C2..25C5;N     # So     [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
! 25C6..25C8;A     # So     [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
! 25C9..25CA;N     # So     [2] FISHEYE..LOZENGE
! 25CB;A           # So         WHITE CIRCLE
! 25CC..25CD;N     # So     [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
! 25CE..25D1;A     # So     [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
! 25D2..25E1;N     # So    [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
! 25E2..25E5;A     # So     [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
! 25E6..25EE;N     # So     [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
! 25EF;A           # So         LARGE CIRCLE
! 25F0..25F7;N     # So     [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
! 25F8..25FC;N     # Sm     [5] UPPER LEFT TRIANGLE..BLACK MEDIUM SQUARE
! 25FD..25FE;W     # Sm     [2] WHITE MEDIUM SMALL SQUARE..BLACK MEDIUM SMALL SQUARE
! 25FF;N           # Sm         LOWER RIGHT TRIANGLE
! 2600..2604;N     # So     [5] BLACK SUN WITH RAYS..COMET
! 2605..2606;A     # So     [2] BLACK STAR..WHITE STAR
! 2607..2608;N     # So     [2] LIGHTNING..THUNDERSTORM
! 2609;A           # So         SUN
! 260A..260D;N     # So     [4] ASCENDING NODE..OPPOSITION
! 260E..260F;A     # So     [2] BLACK TELEPHONE..WHITE TELEPHONE
! 2610..2613;N     # So     [4] BALLOT BOX..SALTIRE
! 2614..2615;W     # So     [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
! 2616..261B;N     # So     [6] WHITE SHOGI PIECE..BLACK RIGHT POINTING INDEX
! 261C;A           # So         WHITE LEFT POINTING INDEX
! 261D;N           # So         WHITE UP POINTING INDEX
! 261E;A           # So         WHITE RIGHT POINTING INDEX
! 261F..263F;N     # So    [33] WHITE DOWN POINTING INDEX..MERCURY
! 2640;A           # So         FEMALE SIGN
! 2641;N           # So         EARTH
! 2642;A           # So         MALE SIGN
! 2643..2647;N     # So     [5] JUPITER..PLUTO
! 2648..2653;W     # So    [12] ARIES..PISCES
! 2654..265F;N     # So    [12] WHITE CHESS KING..BLACK CHESS PAWN
! 2660..2661;A     # So     [2] BLACK SPADE SUIT..WHITE HEART SUIT
! 2662;N           # So         WHITE DIAMOND SUIT
! 2663..2665;A     # So     [3] BLACK CLUB SUIT..BLACK HEART SUIT
! 2666;N           # So         BLACK DIAMOND SUIT
! 2667..266A;A     # So     [4] WHITE CLUB SUIT..EIGHTH NOTE
! 266B;N           # So         BEAMED EIGHTH NOTES
! 266C..266D;A     # So     [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
! 266E;N           # So         MUSIC NATURAL SIGN
! 266F;A           # Sm         MUSIC SHARP SIGN
! 2670..267E;N     # So    [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
! 267F;W           # So         WHEELCHAIR SYMBOL
! 2680..2692;N     # So    [19] DIE FACE-1..HAMMER AND PICK
! 2693;W           # So         ANCHOR
! 2694..269D;N     # So    [10] CROSSED SWORDS..OUTLINED WHITE STAR
! 269E..269F;A     # So     [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
! 26A0;N           # So         WARNING SIGN
! 26A1;W           # So         HIGH VOLTAGE SIGN
! 26A2..26A9;N     # So     [8] DOUBLED FEMALE SIGN..HORIZONTAL MALE WITH STROKE SIGN
! 26AA..26AB;W     # So     [2] MEDIUM WHITE CIRCLE..MEDIUM BLACK CIRCLE
! 26AC..26BC;N     # So    [17] MEDIUM SMALL WHITE CIRCLE..SESQUIQUADRATE
! 26BD..26BE;W     # So     [2] SOCCER BALL..BASEBALL
! 26BF;A           # So         SQUARED KEY
! 26C0..26C3;N     # So     [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
! 26C4..26C5;W     # So     [2] SNOWMAN WITHOUT SNOW..SUN BEHIND CLOUD
! 26C6..26CD;A     # So     [8] RAIN..DISABLED CAR
! 26CE;W           # So         OPHIUCHUS
! 26CF..26D3;A     # So     [5] PICK..CHAINS
! 26D4;W           # So         NO ENTRY
! 26D5..26E1;A     # So    [13] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..RESTRICTED LEFT ENTRY-2
! 26E2;N           # So         ASTRONOMICAL SYMBOL FOR URANUS
! 26E3;A           # So         HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
! 26E4..26E7;N     # So     [4] PENTAGRAM..INVERTED PENTAGRAM
! 26E8..26E9;A     # So     [2] BLACK CROSS ON SHIELD..SHINTO SHRINE
! 26EA;W           # So         CHURCH
! 26EB..26F1;A     # So     [7] CASTLE..UMBRELLA ON GROUND
! 26F2..26F3;W     # So     [2] FOUNTAIN..FLAG IN HOLE
! 26F4;A           # So         FERRY
! 26F5;W           # So         SAILBOAT
! 26F6..26F9;A     # So     [4] SQUARE FOUR CORNERS..PERSON WITH BALL
! 26FA;W           # So         TENT
! 26FB..26FC;A     # So     [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
! 26FD;W           # So         FUEL PUMP
! 26FE..26FF;A     # So     [2] CUP ON BLACK SQUARE..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
! 2700..2704;N     # So     [5] BLACK SAFETY SCISSORS..WHITE SCISSORS
! 2705;W           # So         WHITE HEAVY CHECK MARK
! 2706..2709;N     # So     [4] TELEPHONE LOCATION SIGN..ENVELOPE
! 270A..270B;W     # So     [2] RAISED FIST..RAISED HAND
! 270C..2727;N     # So    [28] VICTORY HAND..WHITE FOUR POINTED STAR
! 2728;W           # So         SPARKLES
! 2729..273C;N     # So    [20] STRESS OUTLINED WHITE STAR..OPEN CENTRE TEARDROP-SPOKED ASTERISK
! 273D;A           # So         HEAVY TEARDROP-SPOKED ASTERISK
! 273E..274B;N     # So    [14] SIX PETALLED BLACK AND WHITE FLORETTE..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
! 274C;W           # So         CROSS MARK
! 274D;N           # So         SHADOWED WHITE CIRCLE
! 274E;W           # So         NEGATIVE SQUARED CROSS MARK
! 274F..2752;N     # So     [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
! 2753..2755;W     # So     [3] BLACK QUESTION MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT
! 2756;N           # So         BLACK DIAMOND MINUS WHITE X
! 2757;W           # So         HEAVY EXCLAMATION MARK SYMBOL
! 2758..2767;N     # So    [16] LIGHT VERTICAL BAR..ROTATED FLORAL HEART BULLET
! 2768;N           # Ps         MEDIUM LEFT PARENTHESIS ORNAMENT
! 2769;N           # Pe         MEDIUM RIGHT PARENTHESIS ORNAMENT
! 276A;N           # Ps         MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
! 276B;N           # Pe         MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
! 276C;N           # Ps         MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
! 276D;N           # Pe         MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
! 276E;N           # Ps         HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
! 276F;N           # Pe         HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
! 2770;N           # Ps         HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
! 2771;N           # Pe         HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
! 2772;N           # Ps         LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
! 2773;N           # Pe         LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
! 2774;N           # Ps         MEDIUM LEFT CURLY BRACKET ORNAMENT
! 2775;N           # Pe         MEDIUM RIGHT CURLY BRACKET ORNAMENT
! 2776..277F;A     # No    [10] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED NUMBER TEN
! 2780..2793;N     # No    [20] DINGBAT CIRCLED SANS-SERIF DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
! 2794;N           # So         HEAVY WIDE-HEADED RIGHTWARDS ARROW
! 2795..2797;W     # So     [3] HEAVY PLUS SIGN..HEAVY DIVISION SIGN
! 2798..27AF;N     # So    [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
! 27B0;W           # So         CURLY LOOP
! 27B1..27BE;N     # So    [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
! 27BF;W           # So         DOUBLE CURLY LOOP
! 27C0..27C4;N     # Sm     [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
! 27C5;N           # Ps         LEFT S-SHAPED BAG DELIMITER
! 27C6;N           # Pe         RIGHT S-SHAPED BAG DELIMITER
! 27C7..27E5;N     # Sm    [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
! 27E6;Na          # Ps         MATHEMATICAL LEFT WHITE SQUARE BRACKET
! 27E7;Na          # Pe         MATHEMATICAL RIGHT WHITE SQUARE BRACKET
! 27E8;Na          # Ps         MATHEMATICAL LEFT ANGLE BRACKET
! 27E9;Na          # Pe         MATHEMATICAL RIGHT ANGLE BRACKET
! 27EA;Na          # Ps         MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
! 27EB;Na          # Pe         MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
! 27EC;Na          # Ps         MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
! 27ED;Na          # Pe         MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
! 27EE;N           # Ps         MATHEMATICAL LEFT FLATTENED PARENTHESIS
! 27EF;N           # Pe         MATHEMATICAL RIGHT FLATTENED PARENTHESIS
! 27F0..27FF;N     # Sm    [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
! 2800..28FF;N     # So   [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
! 2900..297F;N     # Sm   [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL
! 2980..2982;N     # Sm     [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON
! 2983;N           # Ps         LEFT WHITE CURLY BRACKET
! 2984;N           # Pe         RIGHT WHITE CURLY BRACKET
! 2985;Na          # Ps         LEFT WHITE PARENTHESIS
! 2986;Na          # Pe         RIGHT WHITE PARENTHESIS
! 2987;N           # Ps         Z NOTATION LEFT IMAGE BRACKET
! 2988;N           # Pe         Z NOTATION RIGHT IMAGE BRACKET
! 2989;N           # Ps         Z NOTATION LEFT BINDING BRACKET
! 298A;N           # Pe         Z NOTATION RIGHT BINDING BRACKET
! 298B;N           # Ps         LEFT SQUARE BRACKET WITH UNDERBAR
! 298C;N           # Pe         RIGHT SQUARE BRACKET WITH UNDERBAR
! 298D;N           # Ps         LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
! 298E;N           # Pe         RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
! 298F;N           # Ps         LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
! 2990;N           # Pe         RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
! 2991;N           # Ps         LEFT ANGLE BRACKET WITH DOT
! 2992;N           # Pe         RIGHT ANGLE BRACKET WITH DOT
! 2993;N           # Ps         LEFT ARC LESS-THAN BRACKET
! 2994;N           # Pe         RIGHT ARC GREATER-THAN BRACKET
! 2995;N           # Ps         DOUBLE LEFT ARC GREATER-THAN BRACKET
! 2996;N           # Pe         DOUBLE RIGHT ARC LESS-THAN BRACKET
! 2997;N           # Ps         LEFT BLACK TORTOISE SHELL BRACKET
! 2998;N           # Pe         RIGHT BLACK TORTOISE SHELL BRACKET
! 2999..29D7;N     # Sm    [63] DOTTED FENCE..BLACK HOURGLASS
! 29D8;N           # Ps         LEFT WIGGLY FENCE
! 29D9;N           # Pe         RIGHT WIGGLY FENCE
! 29DA;N           # Ps         LEFT DOUBLE WIGGLY FENCE
! 29DB;N           # Pe         RIGHT DOUBLE WIGGLY FENCE
! 29DC..29FB;N     # Sm    [32] INCOMPLETE INFINITY..TRIPLE PLUS
! 29FC;N           # Ps         LEFT-POINTING CURVED ANGLE BRACKET
! 29FD;N           # Pe         RIGHT-POINTING CURVED ANGLE BRACKET
! 29FE..29FF;N     # Sm     [2] TINY..MINY
! 2A00..2AFF;N     # Sm   [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR
! 2B00..2B1A;N     # So    [27] NORTH EAST WHITE ARROW..DOTTED SQUARE
! 2B1B..2B1C;W     # So     [2] BLACK LARGE SQUARE..WHITE LARGE SQUARE
! 2B1D..2B2F;N     # So    [19] BLACK VERY SMALL SQUARE..WHITE VERTICAL ELLIPSE
! 2B30..2B44;N     # Sm    [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
! 2B45..2B46;N     # So     [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
! 2B47..2B4C;N     # Sm     [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
! 2B4D..2B4F;N     # So     [3] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW
! 2B50;W           # So         WHITE MEDIUM STAR
! 2B51..2B54;N     # So     [4] BLACK SMALL STAR..WHITE RIGHT-POINTING PENTAGON
! 2B55;W           # So         HEAVY LARGE CIRCLE
! 2B56..2B59;A     # So     [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE
! 2B5A..2B73;N     # So    [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
! 2B76..2B95;N     # So    [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
! 2B97..2BFF;N     # So   [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
! 2C00..2C5F;N     # L&    [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
! 2C60..2C7B;N     # L&    [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
! 2C7C..2C7D;N     # Lm     [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
! 2C7E..2C7F;N     # Lu     [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
! 2C80..2CE4;N     # L&   [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
! 2CE5..2CEA;N     # So     [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
! 2CEB..2CEE;N     # L&     [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
! 2CEF..2CF1;N     # Mn     [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
! 2CF2..2CF3;N     # L&     [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
! 2CF9..2CFC;N     # Po     [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
! 2CFD;N           # No         COPTIC FRACTION ONE HALF
! 2CFE..2CFF;N     # Po     [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
! 2D00..2D25;N     # Ll    [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
! 2D27;N           # Ll         GEORGIAN SMALL LETTER YN
! 2D2D;N           # Ll         GEORGIAN SMALL LETTER AEN
! 2D30..2D67;N     # Lo    [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
! 2D6F;N           # Lm         TIFINAGH MODIFIER LETTER LABIALIZATION MARK
! 2D70;N           # Po         TIFINAGH SEPARATOR MARK
! 2D7F;N           # Mn         TIFINAGH CONSONANT JOINER
! 2D80..2D96;N     # Lo    [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
! 2DA0..2DA6;N     # Lo     [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
! 2DA8..2DAE;N     # Lo     [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
! 2DB0..2DB6;N     # Lo     [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
! 2DB8..2DBE;N     # Lo     [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
! 2DC0..2DC6;N     # Lo     [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
! 2DC8..2DCE;N     # Lo     [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
! 2DD0..2DD6;N     # Lo     [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
! 2DD8..2DDE;N     # Lo     [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
! 2DE0..2DFF;N     # Mn    [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
! 2E00..2E01;N     # Po     [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
! 2E02;N           # Pi         LEFT SUBSTITUTION BRACKET
! 2E03;N           # Pf         RIGHT SUBSTITUTION BRACKET
! 2E04;N           # Pi         LEFT DOTTED SUBSTITUTION BRACKET
! 2E05;N           # Pf         RIGHT DOTTED SUBSTITUTION BRACKET
! 2E06..2E08;N     # Po     [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
! 2E09;N           # Pi         LEFT TRANSPOSITION BRACKET
! 2E0A;N           # Pf         RIGHT TRANSPOSITION BRACKET
! 2E0B;N           # Po         RAISED SQUARE
! 2E0C;N           # Pi         LEFT RAISED OMISSION BRACKET
! 2E0D;N           # Pf         RIGHT RAISED OMISSION BRACKET
! 2E0E..2E16;N     # Po     [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
! 2E17;N           # Pd         DOUBLE OBLIQUE HYPHEN
! 2E18..2E19;N     # Po     [2] INVERTED INTERROBANG..PALM BRANCH
! 2E1A;N           # Pd         HYPHEN WITH DIAERESIS
! 2E1B;N           # Po         TILDE WITH RING ABOVE
! 2E1C;N           # Pi         LEFT LOW PARAPHRASE BRACKET
! 2E1D;N           # Pf         RIGHT LOW PARAPHRASE BRACKET
! 2E1E..2E1F;N     # Po     [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
! 2E20;N           # Pi         LEFT VERTICAL BAR WITH QUILL
! 2E21;N           # Pf         RIGHT VERTICAL BAR WITH QUILL
! 2E22;N           # Ps         TOP LEFT HALF BRACKET
! 2E23;N           # Pe         TOP RIGHT HALF BRACKET
! 2E24;N           # Ps         BOTTOM LEFT HALF BRACKET
! 2E25;N           # Pe         BOTTOM RIGHT HALF BRACKET
! 2E26;N           # Ps         LEFT SIDEWAYS U BRACKET
! 2E27;N           # Pe         RIGHT SIDEWAYS U BRACKET
! 2E28;N           # Ps         LEFT DOUBLE PARENTHESIS
! 2E29;N           # Pe         RIGHT DOUBLE PARENTHESIS
! 2E2A..2E2E;N     # Po     [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
! 2E2F;N           # Lm         VERTICAL TILDE
! 2E30..2E39;N     # Po    [10] RING POINT..TOP HALF SECTION SIGN
! 2E3A..2E3B;N     # Pd     [2] TWO-EM DASH..THREE-EM DASH
! 2E3C..2E3F;N     # Po     [4] STENOGRAPHIC FULL STOP..CAPITULUM
! 2E40;N           # Pd         DOUBLE HYPHEN
! 2E41;N           # Po         REVERSED COMMA
! 2E42;N           # Ps         DOUBLE LOW-REVERSED-9 QUOTATION MARK
! 2E43..2E4F;N     # Po    [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
! 2E50..2E51;N     # So     [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
! 2E52..2E54;N     # Po     [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
! 2E55;N           # Ps         LEFT SQUARE BRACKET WITH STROKE
! 2E56;N           # Pe         RIGHT SQUARE BRACKET WITH STROKE
! 2E57;N           # Ps         LEFT SQUARE BRACKET WITH DOUBLE STROKE
! 2E58;N           # Pe         RIGHT SQUARE BRACKET WITH DOUBLE STROKE
! 2E59;N           # Ps         TOP HALF LEFT PARENTHESIS
! 2E5A;N           # Pe         TOP HALF RIGHT PARENTHESIS
! 2E5B;N           # Ps         BOTTOM HALF LEFT PARENTHESIS
! 2E5C;N           # Pe         BOTTOM HALF RIGHT PARENTHESIS
! 2E5D;N           # Pd         OBLIQUE HYPHEN
! 2E80..2E99;W     # So    [26] CJK RADICAL REPEAT..CJK RADICAL RAP
! 2E9B..2EF3;W     # So    [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
! 2F00..2FD5;W     # So   [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
! 2FF0..2FFB;W     # So    [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
! 3000;F           # Zs         IDEOGRAPHIC SPACE
! 3001..3003;W     # Po     [3] IDEOGRAPHIC COMMA..DITTO MARK
! 3004;W           # So         JAPANESE INDUSTRIAL STANDARD SYMBOL
! 3005;W           # Lm         IDEOGRAPHIC ITERATION MARK
! 3006;W           # Lo         IDEOGRAPHIC CLOSING MARK
! 3007;W           # Nl         IDEOGRAPHIC NUMBER ZERO
! 3008;W           # Ps         LEFT ANGLE BRACKET
! 3009;W           # Pe         RIGHT ANGLE BRACKET
! 300A;W           # Ps         LEFT DOUBLE ANGLE BRACKET
! 300B;W           # Pe         RIGHT DOUBLE ANGLE BRACKET
! 300C;W           # Ps         LEFT CORNER BRACKET
! 300D;W           # Pe         RIGHT CORNER BRACKET
! 300E;W           # Ps         LEFT WHITE CORNER BRACKET
! 300F;W           # Pe         RIGHT WHITE CORNER BRACKET
! 3010;W           # Ps         LEFT BLACK LENTICULAR BRACKET
! 3011;W           # Pe         RIGHT BLACK LENTICULAR BRACKET
! 3012..3013;W     # So     [2] POSTAL MARK..GETA MARK
! 3014;W           # Ps         LEFT TORTOISE SHELL BRACKET
! 3015;W           # Pe         RIGHT TORTOISE SHELL BRACKET
! 3016;W           # Ps         LEFT WHITE LENTICULAR BRACKET
! 3017;W           # Pe         RIGHT WHITE LENTICULAR BRACKET
! 3018;W           # Ps         LEFT WHITE TORTOISE SHELL BRACKET
! 3019;W           # Pe         RIGHT WHITE TORTOISE SHELL BRACKET
! 301A;W           # Ps         LEFT WHITE SQUARE BRACKET
! 301B;W           # Pe         RIGHT WHITE SQUARE BRACKET
! 301C;W           # Pd         WAVE DASH
! 301D;W           # Ps         REVERSED DOUBLE PRIME QUOTATION MARK
! 301E..301F;W     # Pe     [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
! 3020;W           # So         POSTAL MARK FACE
! 3021..3029;W     # Nl     [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
! 302A..302D;W     # Mn     [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
! 302E..302F;W     # Mc     [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
! 3030;W           # Pd         WAVY DASH
! 3031..3035;W     # Lm     [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
! 3036..3037;W     # So     [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
! 3038..303A;W     # Nl     [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
! 303B;W           # Lm         VERTICAL IDEOGRAPHIC ITERATION MARK
! 303C;W           # Lo         MASU MARK
! 303D;W           # Po         PART ALTERNATION MARK
! 303E;W           # So         IDEOGRAPHIC VARIATION INDICATOR
! 303F;N           # So         IDEOGRAPHIC HALF FILL SPACE
! 3041..3096;W     # Lo    [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
! 3099..309A;W     # Mn     [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
! 309B..309C;W     # Sk     [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
! 309D..309E;W     # Lm     [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
! 309F;W           # Lo         HIRAGANA DIGRAPH YORI
! 30A0;W           # Pd         KATAKANA-HIRAGANA DOUBLE HYPHEN
! 30A1..30FA;W     # Lo    [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
! 30FB;W           # Po         KATAKANA MIDDLE DOT
! 30FC..30FE;W     # Lm     [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
! 30FF;W           # Lo         KATAKANA DIGRAPH KOTO
! 3105..312F;W     # Lo    [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
! 3131..318E;W     # Lo    [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
! 3190..3191;W     # So     [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
! 3192..3195;W     # No     [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
! 3196..319F;W     # So    [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
! 31A0..31BF;W     # Lo    [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
! 31C0..31E3;W     # So    [36] CJK STROKE T..CJK STROKE Q
! 31F0..31FF;W     # Lo    [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
! 3200..321E;W     # So    [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
! 3220..3229;W     # No    [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
! 322A..3247;W     # So    [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
! 3248..324F;A     # No     [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
! 3250;W           # So         PARTNERSHIP SIGN
! 3251..325F;W     # No    [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
! 3260..327F;W     # So    [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
! 3280..3289;W     # No    [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
! 328A..32B0;W     # So    [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
! 32B1..32BF;W     # No    [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
! 32C0..32FF;W     # So    [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA
! 3300..33FF;W     # So   [256] SQUARE APAATO..SQUARE GAL
! 3400..4DBF;W     # Lo  [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
! 4DC0..4DFF;N     # So    [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
! 4E00..9FFF;W     # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
! A000..A014;W     # Lo    [21] YI SYLLABLE IT..YI SYLLABLE E
! A015;W           # Lm         YI SYLLABLE WU
! A016..A48C;W     # Lo  [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
! A490..A4C6;W     # So    [55] YI RADICAL QOT..YI RADICAL KE
! A4D0..A4F7;N     # Lo    [40] LISU LETTER BA..LISU LETTER OE
! A4F8..A4FD;N     # Lm     [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
! A4FE..A4FF;N     # Po     [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
! A500..A60B;N     # Lo   [268] VAI SYLLABLE EE..VAI SYLLABLE NG
! A60C;N           # Lm         VAI SYLLABLE LENGTHENER
! A60D..A60F;N     # Po     [3] VAI COMMA..VAI QUESTION MARK
! A610..A61F;N     # Lo    [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
! A620..A629;N     # Nd    [10] VAI DIGIT ZERO..VAI DIGIT NINE
! A62A..A62B;N     # Lo     [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
! A640..A66D;N     # L&    [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
! A66E;N           # Lo         CYRILLIC LETTER MULTIOCULAR O
! A66F;N           # Mn         COMBINING CYRILLIC VZMET
! A670..A672;N     # Me     [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
! A673;N           # Po         SLAVONIC ASTERISK
! A674..A67D;N     # Mn    [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
! A67E;N           # Po         CYRILLIC KAVYKA
! A67F;N           # Lm         CYRILLIC PAYEROK
! A680..A69B;N     # L&    [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
! A69C..A69D;N     # Lm     [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
! A69E..A69F;N     # Mn     [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
! A6A0..A6E5;N     # Lo    [70] BAMUM LETTER A..BAMUM LETTER KI
! A6E6..A6EF;N     # Nl    [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
! A6F0..A6F1;N     # Mn     [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
! A6F2..A6F7;N     # Po     [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
! A700..A716;N     # Sk    [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
! A717..A71F;N     # Lm     [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
! A720..A721;N     # Sk     [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
! A722..A76F;N     # L&    [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
! A770;N           # Lm         MODIFIER LETTER US
! A771..A787;N     # L&    [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
! A788;N           # Lm         MODIFIER LETTER LOW CIRCUMFLEX ACCENT
! A789..A78A;N     # Sk     [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
! A78B..A78E;N     # L&     [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
! A78F;N           # Lo         LATIN LETTER SINOLOGICAL DOT
! A790..A7CA;N     # L&    [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
! A7D0..A7D1;N     # L&     [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
! A7D3;N           # Ll         LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9;N     # L&     [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
! A7F2..A7F4;N     # Lm     [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
! A7F5..A7F6;N     # L&     [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
! A7F7;N           # Lo         LATIN EPIGRAPHIC LETTER SIDEWAYS I
! A7F8..A7F9;N     # Lm     [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
! A7FA;N           # Ll         LATIN LETTER SMALL CAPITAL TURNED M
! A7FB..A7FF;N     # Lo     [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
! A800..A801;N     # Lo     [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
! A802;N           # Mn         SYLOTI NAGRI SIGN DVISVARA
! A803..A805;N     # Lo     [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
! A806;N           # Mn         SYLOTI NAGRI SIGN HASANTA
! A807..A80A;N     # Lo     [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
! A80B;N           # Mn         SYLOTI NAGRI SIGN ANUSVARA
! A80C..A822;N     # Lo    [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
! A823..A824;N     # Mc     [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
! A825..A826;N     # Mn     [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
! A827;N           # Mc         SYLOTI NAGRI VOWEL SIGN OO
! A828..A82B;N     # So     [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
! A82C;N           # Mn         SYLOTI NAGRI SIGN ALTERNATE HASANTA
! A830..A835;N     # No     [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
! A836..A837;N     # So     [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
! A838;N           # Sc         NORTH INDIC RUPEE MARK
! A839;N           # So         NORTH INDIC QUANTITY MARK
! A840..A873;N     # Lo    [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
! A874..A877;N     # Po     [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
! A880..A881;N     # Mc     [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
! A882..A8B3;N     # Lo    [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
! A8B4..A8C3;N     # Mc    [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
! A8C4..A8C5;N     # Mn     [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
! A8CE..A8CF;N     # Po     [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
! A8D0..A8D9;N     # Nd    [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
! A8E0..A8F1;N     # Mn    [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
! A8F2..A8F7;N     # Lo     [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
! A8F8..A8FA;N     # Po     [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
! A8FB;N           # Lo         DEVANAGARI HEADSTROKE
! A8FC;N           # Po         DEVANAGARI SIGN SIDDHAM
! A8FD..A8FE;N     # Lo     [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
! A8FF;N           # Mn         DEVANAGARI VOWEL SIGN AY
! A900..A909;N     # Nd    [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
! A90A..A925;N     # Lo    [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
! A926..A92D;N     # Mn     [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
! A92E..A92F;N     # Po     [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
! A930..A946;N     # Lo    [23] REJANG LETTER KA..REJANG LETTER A
! A947..A951;N     # Mn    [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
! A952..A953;N     # Mc     [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
! A95F;N           # Po         REJANG SECTION MARK
! A960..A97C;W     # Lo    [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
! A980..A982;N     # Mn     [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
! A983;N           # Mc         JAVANESE SIGN WIGNYAN
! A984..A9B2;N     # Lo    [47] JAVANESE LETTER A..JAVANESE LETTER HA
! A9B3;N           # Mn         JAVANESE SIGN CECAK TELU
! A9B4..A9B5;N     # Mc     [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
! A9B6..A9B9;N     # Mn     [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
! A9BA..A9BB;N     # Mc     [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
! A9BC..A9BD;N     # Mn     [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
! A9BE..A9C0;N     # Mc     [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
! A9C1..A9CD;N     # Po    [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
! A9CF;N           # Lm         JAVANESE PANGRANGKEP
! A9D0..A9D9;N     # Nd    [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
! A9DE..A9DF;N     # Po     [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
! A9E0..A9E4;N     # Lo     [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
! A9E5;N           # Mn         MYANMAR SIGN SHAN SAW
! A9E6;N           # Lm         MYANMAR MODIFIER LETTER SHAN REDUPLICATION
! A9E7..A9EF;N     # Lo     [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
! A9F0..A9F9;N     # Nd    [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
! A9FA..A9FE;N     # Lo     [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
! AA00..AA28;N     # Lo    [41] CHAM LETTER A..CHAM LETTER HA
! AA29..AA2E;N     # Mn     [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
! AA2F..AA30;N     # Mc     [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
! AA31..AA32;N     # Mn     [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
! AA33..AA34;N     # Mc     [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
! AA35..AA36;N     # Mn     [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
! AA40..AA42;N     # Lo     [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
! AA43;N           # Mn         CHAM CONSONANT SIGN FINAL NG
! AA44..AA4B;N     # Lo     [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
! AA4C;N           # Mn         CHAM CONSONANT SIGN FINAL M
! AA4D;N           # Mc         CHAM CONSONANT SIGN FINAL H
! AA50..AA59;N     # Nd    [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
! AA5C..AA5F;N     # Po     [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
! AA60..AA6F;N     # Lo    [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
! AA70;N           # Lm         MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
! AA71..AA76;N     # Lo     [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
! AA77..AA79;N     # So     [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
! AA7A;N           # Lo         MYANMAR LETTER AITON RA
! AA7B;N           # Mc         MYANMAR SIGN PAO KAREN TONE
! AA7C;N           # Mn         MYANMAR SIGN TAI LAING TONE-2
! AA7D;N           # Mc         MYANMAR SIGN TAI LAING TONE-5
! AA7E..AA7F;N     # Lo     [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
! AA80..AAAF;N     # Lo    [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
! AAB0;N           # Mn         TAI VIET MAI KANG
! AAB1;N           # Lo         TAI VIET VOWEL AA
! AAB2..AAB4;N     # Mn     [3] TAI VIET VOWEL I..TAI VIET VOWEL U
! AAB5..AAB6;N     # Lo     [2] TAI VIET VOWEL E..TAI VIET VOWEL O
! AAB7..AAB8;N     # Mn     [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
! AAB9..AABD;N     # Lo     [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
! AABE..AABF;N     # Mn     [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
! AAC0;N           # Lo         TAI VIET TONE MAI NUENG
! AAC1;N           # Mn         TAI VIET TONE MAI THO
! AAC2;N           # Lo         TAI VIET TONE MAI SONG
! AADB..AADC;N     # Lo     [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
! AADD;N           # Lm         TAI VIET SYMBOL SAM
! AADE..AADF;N     # Po     [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
! AAE0..AAEA;N     # Lo    [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
! AAEB;N           # Mc         MEETEI MAYEK VOWEL SIGN II
! AAEC..AAED;N     # Mn     [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
! AAEE..AAEF;N     # Mc     [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
! AAF0..AAF1;N     # Po     [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
! AAF2;N           # Lo         MEETEI MAYEK ANJI
! AAF3..AAF4;N     # Lm     [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
! AAF5;N           # Mc         MEETEI MAYEK VOWEL SIGN VISARGA
! AAF6;N           # Mn         MEETEI MAYEK VIRAMA
! AB01..AB06;N     # Lo     [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
! AB09..AB0E;N     # Lo     [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
! AB11..AB16;N     # Lo     [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
! AB20..AB26;N     # Lo     [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
! AB28..AB2E;N     # Lo     [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
! AB30..AB5A;N     # Ll    [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
! AB5B;N           # Sk         MODIFIER BREVE WITH INVERTED BREVE
! AB5C..AB5F;N     # Lm     [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
! AB60..AB68;N     # Ll     [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
! AB69;N           # Lm         MODIFIER LETTER SMALL TURNED W
! AB6A..AB6B;N     # Sk     [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
! AB70..ABBF;N     # Ll    [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
! ABC0..ABE2;N     # Lo    [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
! ABE3..ABE4;N     # Mc     [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
! ABE5;N           # Mn         MEETEI MAYEK VOWEL SIGN ANAP
! ABE6..ABE7;N     # Mc     [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
! ABE8;N           # Mn         MEETEI MAYEK VOWEL SIGN UNAP
! ABE9..ABEA;N     # Mc     [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
! ABEB;N           # Po         MEETEI MAYEK CHEIKHEI
! ABEC;N           # Mc         MEETEI MAYEK LUM IYEK
! ABED;N           # Mn         MEETEI MAYEK APUN IYEK
! ABF0..ABF9;N     # Nd    [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
! AC00..D7A3;W     # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
! D7B0..D7C6;N     # Lo    [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
! D7CB..D7FB;N     # Lo    [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
! D800..DB7F;N     # Cs   [896] <surrogate-D800>..<surrogate-DB7F>
! DB80..DBFF;N     # Cs   [128] <surrogate-DB80>..<surrogate-DBFF>
! DC00..DFFF;N     # Cs  [1024] <surrogate-DC00>..<surrogate-DFFF>
! E000..F8FF;A     # Co  [6400] <private-use-E000>..<private-use-F8FF>
! F900..FA6D;W     # Lo   [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
! FA6E..FA6F;W     # Cn     [2] <reserved-FA6E>..<reserved-FA6F>
! FA70..FAD9;W     # Lo   [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
! FADA..FAFF;W     # Cn    [38] <reserved-FADA>..<reserved-FAFF>
! FB00..FB06;N     # Ll     [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
! FB13..FB17;N     # Ll     [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
! FB1D;N           # Lo         HEBREW LETTER YOD WITH HIRIQ
! FB1E;N           # Mn         HEBREW POINT JUDEO-SPANISH VARIKA
! FB1F..FB28;N     # Lo    [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
! FB29;N           # Sm         HEBREW LETTER ALTERNATIVE PLUS SIGN
! FB2A..FB36;N     # Lo    [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
! FB38..FB3C;N     # Lo     [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
! FB3E;N           # Lo         HEBREW LETTER MEM WITH DAGESH
! FB40..FB41;N     # Lo     [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
! FB43..FB44;N     # Lo     [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
! FB46..FB4F;N     # Lo    [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
! FB50..FBB1;N     # Lo    [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
! FBB2..FBC2;N     # Sk    [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
! FBD3..FD3D;N     # Lo   [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
! FD3E;N           # Pe         ORNATE LEFT PARENTHESIS
! FD3F;N           # Ps         ORNATE RIGHT PARENTHESIS
! FD40..FD4F;N     # So    [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
! FD50..FD8F;N     # Lo    [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
! FD92..FDC7;N     # Lo    [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
! FDCF;N           # So         ARABIC LIGATURE SALAAMUHU ALAYNAA
! FDF0..FDFB;N     # Lo    [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
! FDFC;N           # Sc         RIAL SIGN
! FDFD..FDFF;N     # So     [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
! FE00..FE0F;A     # Mn    [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
! FE10..FE16;W     # Po     [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
! FE17;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
! FE18;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
! FE19;W           # Po         PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
! FE20..FE2F;N     # Mn    [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
! FE30;W           # Po         PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
! FE31..FE32;W     # Pd     [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
! FE33..FE34;W     # Pc     [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
! FE35;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
! FE36;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
! FE37;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
! FE38;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
! FE39;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
! FE3A;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
! FE3B;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
! FE3C;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
! FE3D;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
! FE3E;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
! FE3F;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
! FE40;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
! FE41;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
! FE42;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
! FE43;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
! FE44;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
! FE45..FE46;W     # Po     [2] SESAME DOT..WHITE SESAME DOT
! FE47;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
! FE48;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
! FE49..FE4C;W     # Po     [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
! FE4D..FE4F;W     # Pc     [3] DASHED LOW LINE..WAVY LOW LINE
! FE50..FE52;W     # Po     [3] SMALL COMMA..SMALL FULL STOP
! FE54..FE57;W     # Po     [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
! FE58;W           # Pd         SMALL EM DASH
! FE59;W           # Ps         SMALL LEFT PARENTHESIS
! FE5A;W           # Pe         SMALL RIGHT PARENTHESIS
! FE5B;W           # Ps         SMALL LEFT CURLY BRACKET
! FE5C;W           # Pe         SMALL RIGHT CURLY BRACKET
! FE5D;W           # Ps         SMALL LEFT TORTOISE SHELL BRACKET
! FE5E;W           # Pe         SMALL RIGHT TORTOISE SHELL BRACKET
! FE5F..FE61;W     # Po     [3] SMALL NUMBER SIGN..SMALL ASTERISK
! FE62;W           # Sm         SMALL PLUS SIGN
! FE63;W           # Pd         SMALL HYPHEN-MINUS
! FE64..FE66;W     # Sm     [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
! FE68;W           # Po         SMALL REVERSE SOLIDUS
! FE69;W           # Sc         SMALL DOLLAR SIGN
! FE6A..FE6B;W     # Po     [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
! FE70..FE74;N     # Lo     [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
! FE76..FEFC;N     # Lo   [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
! FEFF;N           # Cf         ZERO WIDTH NO-BREAK SPACE
! FF01..FF03;F     # Po     [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
! FF04;F           # Sc         FULLWIDTH DOLLAR SIGN
! FF05..FF07;F     # Po     [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
! FF08;F           # Ps         FULLWIDTH LEFT PARENTHESIS
! FF09;F           # Pe         FULLWIDTH RIGHT PARENTHESIS
! FF0A;F           # Po         FULLWIDTH ASTERISK
! FF0B;F           # Sm         FULLWIDTH PLUS SIGN
! FF0C;F           # Po         FULLWIDTH COMMA
! FF0D;F           # Pd         FULLWIDTH HYPHEN-MINUS
! FF0E..FF0F;F     # Po     [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
! FF10..FF19;F     # Nd    [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
! FF1A..FF1B;F     # Po     [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
! FF1C..FF1E;F     # Sm     [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
! FF1F..FF20;F     # Po     [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
! FF21..FF3A;F     # Lu    [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
! FF3B;F           # Ps         FULLWIDTH LEFT SQUARE BRACKET
! FF3C;F           # Po         FULLWIDTH REVERSE SOLIDUS
! FF3D;F           # Pe         FULLWIDTH RIGHT SQUARE BRACKET
! FF3E;F           # Sk         FULLWIDTH CIRCUMFLEX ACCENT
! FF3F;F           # Pc         FULLWIDTH LOW LINE
! FF40;F           # Sk         FULLWIDTH GRAVE ACCENT
! FF41..FF5A;F     # Ll    [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
! FF5B;F           # Ps         FULLWIDTH LEFT CURLY BRACKET
! FF5C;F           # Sm         FULLWIDTH VERTICAL LINE
! FF5D;F           # Pe         FULLWIDTH RIGHT CURLY BRACKET
! FF5E;F           # Sm         FULLWIDTH TILDE
! FF5F;F           # Ps         FULLWIDTH LEFT WHITE PARENTHESIS
! FF60;F           # Pe         FULLWIDTH RIGHT WHITE PARENTHESIS
! FF61;H           # Po         HALFWIDTH IDEOGRAPHIC FULL STOP
! FF62;H           # Ps         HALFWIDTH LEFT CORNER BRACKET
! FF63;H           # Pe         HALFWIDTH RIGHT CORNER BRACKET
! FF64..FF65;H     # Po     [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
! FF66..FF6F;H     # Lo    [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
! FF70;H           # Lm         HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
! FF71..FF9D;H     # Lo    [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
! FF9E..FF9F;H     # Lm     [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
! FFA0..FFBE;H     # Lo    [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
! FFC2..FFC7;H     # Lo     [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
! FFCA..FFCF;H     # Lo     [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
! FFD2..FFD7;H     # Lo     [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
! FFDA..FFDC;H     # Lo     [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
! FFE0..FFE1;F     # Sc     [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
! FFE2;F           # Sm         FULLWIDTH NOT SIGN
! FFE3;F           # Sk         FULLWIDTH MACRON
! FFE4;F           # So         FULLWIDTH BROKEN BAR
! FFE5..FFE6;F     # Sc     [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
! FFE8;H           # So         HALFWIDTH FORMS LIGHT VERTICAL
! FFE9..FFEC;H     # Sm     [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
! FFED..FFEE;H     # So     [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
! FFF9..FFFB;N     # Cf     [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
! FFFC;N           # So         OBJECT REPLACEMENT CHARACTER
! FFFD;A           # So         REPLACEMENT CHARACTER
! 10000..1000B;N   # Lo    [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
! 1000D..10026;N   # Lo    [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
! 10028..1003A;N   # Lo    [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
! 1003C..1003D;N   # Lo     [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
! 1003F..1004D;N   # Lo    [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
! 10050..1005D;N   # Lo    [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
! 10080..100FA;N   # Lo   [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
! 10100..10102;N   # Po     [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
! 10107..10133;N   # No    [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
! 10137..1013F;N   # So     [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
! 10140..10174;N   # Nl    [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
! 10175..10178;N   # No     [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
! 10179..10189;N   # So    [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
! 1018A..1018B;N   # No     [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
! 1018C..1018E;N   # So     [3] GREEK SINUSOID SIGN..NOMISMA SIGN
! 10190..1019C;N   # So    [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
! 101A0;N          # So         GREEK SYMBOL TAU RHO
! 101D0..101FC;N   # So    [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
! 101FD;N          # Mn         PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
! 10280..1029C;N   # Lo    [29] LYCIAN LETTER A..LYCIAN LETTER X
! 102A0..102D0;N   # Lo    [49] CARIAN LETTER A..CARIAN LETTER UUU3
! 102E0;N          # Mn         COPTIC EPACT THOUSANDS MARK
! 102E1..102FB;N   # No    [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
! 10300..1031F;N   # Lo    [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
! 10320..10323;N   # No     [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
! 1032D..1032F;N   # Lo     [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE
! 10330..10340;N   # Lo    [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
! 10341;N          # Nl         GOTHIC LETTER NINETY
! 10342..10349;N   # Lo     [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
! 1034A;N          # Nl         GOTHIC LETTER NINE HUNDRED
! 10350..10375;N   # Lo    [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
! 10376..1037A;N   # Mn     [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
! 10380..1039D;N   # Lo    [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
! 1039F;N          # Po         UGARITIC WORD DIVIDER
! 103A0..103C3;N   # Lo    [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
! 103C8..103CF;N   # Lo     [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
! 103D0;N          # Po         OLD PERSIAN WORD DIVIDER
! 103D1..103D5;N   # Nl     [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
! 10400..1044F;N   # L&    [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
! 10450..1047F;N   # Lo    [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
! 10480..1049D;N   # Lo    [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
! 104A0..104A9;N   # Nd    [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
! 104B0..104D3;N   # Lu    [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
! 104D8..104FB;N   # Ll    [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
! 10500..10527;N   # Lo    [40] ELBASAN LETTER A..ELBASAN LETTER KHE
! 10530..10563;N   # Lo    [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
! 1056F;N          # Po         CAUCASIAN ALBANIAN CITATION MARK
! 10570..1057A;N   # Lu    [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
! 1057C..1058A;N   # Lu    [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
! 1058C..10592;N   # Lu     [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
! 10594..10595;N   # Lu     [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
! 10597..105A1;N   # Ll    [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
! 105A3..105B1;N   # Ll    [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
! 105B3..105B9;N   # Ll     [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
! 105BB..105BC;N   # Ll     [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
! 10600..10736;N   # Lo   [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
! 10740..10755;N   # Lo    [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
! 10760..10767;N   # Lo     [8] LINEAR A SIGN A800..LINEAR A SIGN A807
! 10780..10785;N   # Lm     [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
! 10787..107B0;N   # Lm    [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
! 107B2..107BA;N   # Lm     [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
! 10800..10805;N   # Lo     [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
! 10808;N          # Lo         CYPRIOT SYLLABLE JO
! 1080A..10835;N   # Lo    [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
! 10837..10838;N   # Lo     [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
! 1083C;N          # Lo         CYPRIOT SYLLABLE ZA
! 1083F;N          # Lo         CYPRIOT SYLLABLE ZO
! 10840..10855;N   # Lo    [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
! 10857;N          # Po         IMPERIAL ARAMAIC SECTION SIGN
! 10858..1085F;N   # No     [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
! 10860..10876;N   # Lo    [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
! 10877..10878;N   # So     [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
! 10879..1087F;N   # No     [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
! 10880..1089E;N   # Lo    [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
! 108A7..108AF;N   # No     [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
! 108E0..108F2;N   # Lo    [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
! 108F4..108F5;N   # Lo     [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
! 108FB..108FF;N   # No     [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
! 10900..10915;N   # Lo    [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
! 10916..1091B;N   # No     [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
! 1091F;N          # Po         PHOENICIAN WORD SEPARATOR
! 10920..10939;N   # Lo    [26] LYDIAN LETTER A..LYDIAN LETTER C
! 1093F;N          # Po         LYDIAN TRIANGULAR MARK
! 10980..1099F;N   # Lo    [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
! 109A0..109B7;N   # Lo    [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
! 109BC..109BD;N   # No     [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
! 109BE..109BF;N   # Lo     [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
! 109C0..109CF;N   # No    [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
! 109D2..109FF;N   # No    [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
! 10A00;N          # Lo         KHAROSHTHI LETTER A
! 10A01..10A03;N   # Mn     [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
! 10A05..10A06;N   # Mn     [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
! 10A0C..10A0F;N   # Mn     [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
! 10A10..10A13;N   # Lo     [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
! 10A15..10A17;N   # Lo     [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
! 10A19..10A35;N   # Lo    [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
! 10A38..10A3A;N   # Mn     [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
! 10A3F;N          # Mn         KHAROSHTHI VIRAMA
! 10A40..10A48;N   # No     [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
! 10A50..10A58;N   # Po     [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
! 10A60..10A7C;N   # Lo    [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
! 10A7D..10A7E;N   # No     [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
! 10A7F;N          # Po         OLD SOUTH ARABIAN NUMERIC INDICATOR
! 10A80..10A9C;N   # Lo    [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
! 10A9D..10A9F;N   # No     [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
! 10AC0..10AC7;N   # Lo     [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
! 10AC8;N          # So         MANICHAEAN SIGN UD
! 10AC9..10AE4;N   # Lo    [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
! 10AE5..10AE6;N   # Mn     [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
! 10AEB..10AEF;N   # No     [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
! 10AF0..10AF6;N   # Po     [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
! 10B00..10B35;N   # Lo    [54] AVESTAN LETTER A..AVESTAN LETTER HE
! 10B39..10B3F;N   # Po     [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
! 10B40..10B55;N   # Lo    [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
! 10B58..10B5F;N   # No     [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
! 10B60..10B72;N   # Lo    [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
! 10B78..10B7F;N   # No     [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
! 10B80..10B91;N   # Lo    [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
! 10B99..10B9C;N   # Po     [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
! 10BA9..10BAF;N   # No     [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
! 10C00..10C48;N   # Lo    [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
! 10C80..10CB2;N   # Lu    [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
! 10CC0..10CF2;N   # Ll    [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
! 10CFA..10CFF;N   # No     [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
! 10D00..10D23;N   # Lo    [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
! 10D24..10D27;N   # Mn     [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
! 10D30..10D39;N   # Nd    [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
! 10E60..10E7E;N   # No    [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
! 10E80..10EA9;N   # Lo    [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
! 10EAB..10EAC;N   # Mn     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EAD;N          # Pd         YEZIDI HYPHENATION MARK
! 10EB0..10EB1;N   # Lo     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
! 10EFD..10EFF;N   # Mn     [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
! 10F00..10F1C;N   # Lo    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
! 10F1D..10F26;N   # No    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
! 10F27;N          # Lo         OLD SOGDIAN LIGATURE AYIN-DALETH
! 10F30..10F45;N   # Lo    [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
! 10F46..10F50;N   # Mn    [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
! 10F51..10F54;N   # No     [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
! 10F55..10F59;N   # Po     [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
! 10F70..10F81;N   # Lo    [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
! 10F82..10F85;N   # Mn     [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
! 10F86..10F89;N   # Po     [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
! 10FB0..10FC4;N   # Lo    [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
! 10FC5..10FCB;N   # No     [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
! 10FE0..10FF6;N   # Lo    [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
! 11000;N          # Mc         BRAHMI SIGN CANDRABINDU
! 11001;N          # Mn         BRAHMI SIGN ANUSVARA
! 11002;N          # Mc         BRAHMI SIGN VISARGA
! 11003..11037;N   # Lo    [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
! 11038..11046;N   # Mn    [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
! 11047..1104D;N   # Po     [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
! 11052..11065;N   # No    [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
! 11066..1106F;N   # Nd    [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
! 11070;N          # Mn         BRAHMI SIGN OLD TAMIL VIRAMA
! 11071..11072;N   # Lo     [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
! 11073..11074;N   # Mn     [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
! 11075;N          # Lo         BRAHMI LETTER OLD TAMIL LLA
! 1107F;N          # Mn         BRAHMI NUMBER JOINER
! 11080..11081;N   # Mn     [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
! 11082;N          # Mc         KAITHI SIGN VISARGA
! 11083..110AF;N   # Lo    [45] KAITHI LETTER A..KAITHI LETTER HA
! 110B0..110B2;N   # Mc     [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
! 110B3..110B6;N   # Mn     [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
! 110B7..110B8;N   # Mc     [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
! 110B9..110BA;N   # Mn     [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
! 110BB..110BC;N   # Po     [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
! 110BD;N          # Cf         KAITHI NUMBER SIGN
! 110BE..110C1;N   # Po     [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
! 110C2;N          # Mn         KAITHI VOWEL SIGN VOCALIC R
! 110CD;N          # Cf         KAITHI NUMBER SIGN ABOVE
! 110D0..110E8;N   # Lo    [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
! 110F0..110F9;N   # Nd    [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
! 11100..11102;N   # Mn     [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
! 11103..11126;N   # Lo    [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
! 11127..1112B;N   # Mn     [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
! 1112C;N          # Mc         CHAKMA VOWEL SIGN E
! 1112D..11134;N   # Mn     [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
! 11136..1113F;N   # Nd    [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
! 11140..11143;N   # Po     [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
! 11144;N          # Lo         CHAKMA LETTER LHAA
! 11145..11146;N   # Mc     [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
! 11147;N          # Lo         CHAKMA LETTER VAA
! 11150..11172;N   # Lo    [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
! 11173;N          # Mn         MAHAJANI SIGN NUKTA
! 11174..11175;N   # Po     [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
! 11176;N          # Lo         MAHAJANI LIGATURE SHRI
! 11180..11181;N   # Mn     [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
! 11182;N          # Mc         SHARADA SIGN VISARGA
! 11183..111B2;N   # Lo    [48] SHARADA LETTER A..SHARADA LETTER HA
! 111B3..111B5;N   # Mc     [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
! 111B6..111BE;N   # Mn     [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
! 111BF..111C0;N   # Mc     [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
! 111C1..111C4;N   # Lo     [4] SHARADA SIGN AVAGRAHA..SHARADA OM
! 111C5..111C8;N   # Po     [4] SHARADA DANDA..SHARADA SEPARATOR
! 111C9..111CC;N   # Mn     [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
! 111CD;N          # Po         SHARADA SUTRA MARK
! 111CE;N          # Mc         SHARADA VOWEL SIGN PRISHTHAMATRA E
! 111CF;N          # Mn         SHARADA SIGN INVERTED CANDRABINDU
! 111D0..111D9;N   # Nd    [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
! 111DA;N          # Lo         SHARADA EKAM
! 111DB;N          # Po         SHARADA SIGN SIDDHAM
! 111DC;N          # Lo         SHARADA HEADSTROKE
! 111DD..111DF;N   # Po     [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
! 111E1..111F4;N   # No    [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
! 11200..11211;N   # Lo    [18] KHOJKI LETTER A..KHOJKI LETTER JJA
! 11213..1122B;N   # Lo    [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
! 1122C..1122E;N   # Mc     [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
! 1122F..11231;N   # Mn     [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
! 11232..11233;N   # Mc     [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
! 11234;N          # Mn         KHOJKI SIGN ANUSVARA
! 11235;N          # Mc         KHOJKI SIGN VIRAMA
! 11236..11237;N   # Mn     [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
! 11238..1123D;N   # Po     [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
! 1123E;N          # Mn         KHOJKI SIGN SUKUN
! 1123F..11240;N   # Lo     [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
! 11241;N          # Mn         KHOJKI VOWEL SIGN VOCALIC R
! 11280..11286;N   # Lo     [7] MULTANI LETTER A..MULTANI LETTER GA
! 11288;N          # Lo         MULTANI LETTER GHA
! 1128A..1128D;N   # Lo     [4] MULTANI LETTER CA..MULTANI LETTER JJA
! 1128F..1129D;N   # Lo    [15] MULTANI LETTER NYA..MULTANI LETTER BA
! 1129F..112A8;N   # Lo    [10] MULTANI LETTER BHA..MULTANI LETTER RHA
! 112A9;N          # Po         MULTANI SECTION MARK
! 112B0..112DE;N   # Lo    [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
! 112DF;N          # Mn         KHUDAWADI SIGN ANUSVARA
! 112E0..112E2;N   # Mc     [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
! 112E3..112EA;N   # Mn     [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
! 112F0..112F9;N   # Nd    [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
! 11300..11301;N   # Mn     [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
! 11302..11303;N   # Mc     [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
! 11305..1130C;N   # Lo     [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
! 1130F..11310;N   # Lo     [2] GRANTHA LETTER EE..GRANTHA LETTER AI
! 11313..11328;N   # Lo    [22] GRANTHA LETTER OO..GRANTHA LETTER NA
! 1132A..11330;N   # Lo     [7] GRANTHA LETTER PA..GRANTHA LETTER RA
! 11332..11333;N   # Lo     [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
! 11335..11339;N   # Lo     [5] GRANTHA LETTER VA..GRANTHA LETTER HA
! 1133B..1133C;N   # Mn     [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
! 1133D;N          # Lo         GRANTHA SIGN AVAGRAHA
! 1133E..1133F;N   # Mc     [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
! 11340;N          # Mn         GRANTHA VOWEL SIGN II
! 11341..11344;N   # Mc     [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
! 11347..11348;N   # Mc     [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
! 1134B..1134D;N   # Mc     [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
! 11350;N          # Lo         GRANTHA OM
! 11357;N          # Mc         GRANTHA AU LENGTH MARK
! 1135D..11361;N   # Lo     [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
! 11362..11363;N   # Mc     [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
! 11366..1136C;N   # Mn     [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
! 11370..11374;N   # Mn     [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
! 11400..11434;N   # Lo    [53] NEWA LETTER A..NEWA LETTER HA
! 11435..11437;N   # Mc     [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
! 11438..1143F;N   # Mn     [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
! 11440..11441;N   # Mc     [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
! 11442..11444;N   # Mn     [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
! 11445;N          # Mc         NEWA SIGN VISARGA
! 11446;N          # Mn         NEWA SIGN NUKTA
! 11447..1144A;N   # Lo     [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
! 1144B..1144F;N   # Po     [5] NEWA DANDA..NEWA ABBREVIATION SIGN
! 11450..11459;N   # Nd    [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
! 1145A..1145B;N   # Po     [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
! 1145D;N          # Po         NEWA INSERTION SIGN
! 1145E;N          # Mn         NEWA SANDHI MARK
! 1145F..11461;N   # Lo     [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
! 11480..114AF;N   # Lo    [48] TIRHUTA ANJI..TIRHUTA LETTER HA
! 114B0..114B2;N   # Mc     [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
! 114B3..114B8;N   # Mn     [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
! 114B9;N          # Mc         TIRHUTA VOWEL SIGN E
! 114BA;N          # Mn         TIRHUTA VOWEL SIGN SHORT E
! 114BB..114BE;N   # Mc     [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
! 114BF..114C0;N   # Mn     [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
! 114C1;N          # Mc         TIRHUTA SIGN VISARGA
! 114C2..114C3;N   # Mn     [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
! 114C4..114C5;N   # Lo     [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
! 114C6;N          # Po         TIRHUTA ABBREVIATION SIGN
! 114C7;N          # Lo         TIRHUTA OM
! 114D0..114D9;N   # Nd    [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
! 11580..115AE;N   # Lo    [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
! 115AF..115B1;N   # Mc     [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
! 115B2..115B5;N   # Mn     [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
! 115B8..115BB;N   # Mc     [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
! 115BC..115BD;N   # Mn     [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
! 115BE;N          # Mc         SIDDHAM SIGN VISARGA
! 115BF..115C0;N   # Mn     [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
! 115C1..115D7;N   # Po    [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
! 115D8..115DB;N   # Lo     [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
! 115DC..115DD;N   # Mn     [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
! 11600..1162F;N   # Lo    [48] MODI LETTER A..MODI LETTER LLA
! 11630..11632;N   # Mc     [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
! 11633..1163A;N   # Mn     [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
! 1163B..1163C;N   # Mc     [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
! 1163D;N          # Mn         MODI SIGN ANUSVARA
! 1163E;N          # Mc         MODI SIGN VISARGA
! 1163F..11640;N   # Mn     [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
! 11641..11643;N   # Po     [3] MODI DANDA..MODI ABBREVIATION SIGN
! 11644;N          # Lo         MODI SIGN HUVA
! 11650..11659;N   # Nd    [10] MODI DIGIT ZERO..MODI DIGIT NINE
! 11660..1166C;N   # Po    [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
! 11680..116AA;N   # Lo    [43] TAKRI LETTER A..TAKRI LETTER RRA
! 116AB;N          # Mn         TAKRI SIGN ANUSVARA
! 116AC;N          # Mc         TAKRI SIGN VISARGA
! 116AD;N          # Mn         TAKRI VOWEL SIGN AA
! 116AE..116AF;N   # Mc     [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
! 116B0..116B5;N   # Mn     [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
! 116B6;N          # Mc         TAKRI SIGN VIRAMA
! 116B7;N          # Mn         TAKRI SIGN NUKTA
! 116B8;N          # Lo         TAKRI LETTER ARCHAIC KHA
! 116B9;N          # Po         TAKRI ABBREVIATION SIGN
! 116C0..116C9;N   # Nd    [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
! 11700..1171A;N   # Lo    [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D..1171F;N   # Mn     [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
! 11720..11721;N   # Mc     [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
! 11722..11725;N   # Mn     [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
! 11726;N          # Mc         AHOM VOWEL SIGN E
! 11727..1172B;N   # Mn     [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
! 11730..11739;N   # Nd    [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
! 1173A..1173B;N   # No     [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
! 1173C..1173E;N   # Po     [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
! 1173F;N          # So         AHOM SYMBOL VI
! 11740..11746;N   # Lo     [7] AHOM LETTER CA..AHOM LETTER LLA
! 11800..1182B;N   # Lo    [44] DOGRA LETTER A..DOGRA LETTER RRA
! 1182C..1182E;N   # Mc     [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
! 1182F..11837;N   # Mn     [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
! 11838;N          # Mc         DOGRA SIGN VISARGA
! 11839..1183A;N   # Mn     [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
! 1183B;N          # Po         DOGRA ABBREVIATION SIGN
! 118A0..118DF;N   # L&    [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
! 118E0..118E9;N   # Nd    [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
! 118EA..118F2;N   # No     [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
! 118FF;N          # Lo         WARANG CITI OM
! 11900..11906;N   # Lo     [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E
! 11909;N          # Lo         DIVES AKURU LETTER O
! 1190C..11913;N   # Lo     [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
! 11915..11916;N   # Lo     [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
! 11918..1192F;N   # Lo    [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
! 11930..11935;N   # Mc     [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
! 11937..11938;N   # Mc     [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
! 1193B..1193C;N   # Mn     [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
! 1193D;N          # Mc         DIVES AKURU SIGN HALANTA
! 1193E;N          # Mn         DIVES AKURU VIRAMA
! 1193F;N          # Lo         DIVES AKURU PREFIXED NASAL SIGN
! 11940;N          # Mc         DIVES AKURU MEDIAL YA
! 11941;N          # Lo         DIVES AKURU INITIAL RA
! 11942;N          # Mc         DIVES AKURU MEDIAL RA
! 11943;N          # Mn         DIVES AKURU SIGN NUKTA
! 11944..11946;N   # Po     [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
! 11950..11959;N   # Nd    [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
! 119A0..119A7;N   # Lo     [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
! 119AA..119D0;N   # Lo    [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
! 119D1..119D3;N   # Mc     [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
! 119D4..119D7;N   # Mn     [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
! 119DA..119DB;N   # Mn     [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
! 119DC..119DF;N   # Mc     [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
! 119E0;N          # Mn         NANDINAGARI SIGN VIRAMA
! 119E1;N          # Lo         NANDINAGARI SIGN AVAGRAHA
! 119E2;N          # Po         NANDINAGARI SIGN SIDDHAM
! 119E3;N          # Lo         NANDINAGARI HEADSTROKE
! 119E4;N          # Mc         NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
! 11A00;N          # Lo         ZANABAZAR SQUARE LETTER A
! 11A01..11A0A;N   # Mn    [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
! 11A0B..11A32;N   # Lo    [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
! 11A33..11A38;N   # Mn     [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
! 11A39;N          # Mc         ZANABAZAR SQUARE SIGN VISARGA
! 11A3A;N          # Lo         ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
! 11A3B..11A3E;N   # Mn     [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
! 11A3F..11A46;N   # Po     [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
! 11A47;N          # Mn         ZANABAZAR SQUARE SUBJOINER
! 11A50;N          # Lo         SOYOMBO LETTER A
! 11A51..11A56;N   # Mn     [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
! 11A57..11A58;N   # Mc     [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
! 11A59..11A5B;N   # Mn     [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
! 11A5C..11A89;N   # Lo    [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
! 11A8A..11A96;N   # Mn    [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
! 11A97;N          # Mc         SOYOMBO SIGN VISARGA
! 11A98..11A99;N   # Mn     [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
! 11A9A..11A9C;N   # Po     [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
! 11A9D;N          # Lo         SOYOMBO MARK PLUTA
! 11A9E..11AA2;N   # Po     [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
! 11AB0..11ABF;N   # Lo    [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
! 11AC0..11AF8;N   # Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
! 11B00..11B09;N   # Po    [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
! 11C00..11C08;N   # Lo     [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
! 11C0A..11C2E;N   # Lo    [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
! 11C2F;N          # Mc         BHAIKSUKI VOWEL SIGN AA
! 11C30..11C36;N   # Mn     [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
! 11C38..11C3D;N   # Mn     [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
! 11C3E;N          # Mc         BHAIKSUKI SIGN VISARGA
! 11C3F;N          # Mn         BHAIKSUKI SIGN VIRAMA
! 11C40;N          # Lo         BHAIKSUKI SIGN AVAGRAHA
! 11C41..11C45;N   # Po     [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
! 11C50..11C59;N   # Nd    [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
! 11C5A..11C6C;N   # No    [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
! 11C70..11C71;N   # Po     [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
! 11C72..11C8F;N   # Lo    [30] MARCHEN LETTER KA..MARCHEN LETTER A
! 11C92..11CA7;N   # Mn    [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
! 11CA9;N          # Mc         MARCHEN SUBJOINED LETTER YA
! 11CAA..11CB0;N   # Mn     [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
! 11CB1;N          # Mc         MARCHEN VOWEL SIGN I
! 11CB2..11CB3;N   # Mn     [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
! 11CB4;N          # Mc         MARCHEN VOWEL SIGN O
! 11CB5..11CB6;N   # Mn     [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
! 11D00..11D06;N   # Lo     [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
! 11D08..11D09;N   # Lo     [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
! 11D0B..11D30;N   # Lo    [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
! 11D31..11D36;N   # Mn     [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
! 11D3A;N          # Mn         MASARAM GONDI VOWEL SIGN E
! 11D3C..11D3D;N   # Mn     [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
! 11D3F..11D45;N   # Mn     [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
! 11D46;N          # Lo         MASARAM GONDI REPHA
! 11D47;N          # Mn         MASARAM GONDI RA-KARA
! 11D50..11D59;N   # Nd    [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
! 11D60..11D65;N   # Lo     [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
! 11D67..11D68;N   # Lo     [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
! 11D6A..11D89;N   # Lo    [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
! 11D8A..11D8E;N   # Mc     [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
! 11D90..11D91;N   # Mn     [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
! 11D93..11D94;N   # Mc     [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
! 11D95;N          # Mn         GUNJALA GONDI SIGN ANUSVARA
! 11D96;N          # Mc         GUNJALA GONDI SIGN VISARGA
! 11D97;N          # Mn         GUNJALA GONDI VIRAMA
! 11D98;N          # Lo         GUNJALA GONDI OM
! 11DA0..11DA9;N   # Nd    [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
! 11EE0..11EF2;N   # Lo    [19] MAKASAR LETTER KA..MAKASAR ANGKA
! 11EF3..11EF4;N   # Mn     [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
! 11EF5..11EF6;N   # Mc     [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
! 11EF7..11EF8;N   # Po     [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
! 11F00..11F01;N   # Mn     [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
! 11F02;N          # Lo         KAWI SIGN REPHA
! 11F03;N          # Mc         KAWI SIGN VISARGA
! 11F04..11F10;N   # Lo    [13] KAWI LETTER A..KAWI LETTER O
! 11F12..11F33;N   # Lo    [34] KAWI LETTER KA..KAWI LETTER JNYA
! 11F34..11F35;N   # Mc     [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
! 11F36..11F3A;N   # Mn     [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
! 11F3E..11F3F;N   # Mc     [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
! 11F40;N          # Mn         KAWI VOWEL SIGN EU
! 11F41;N          # Mc         KAWI SIGN KILLER
! 11F42;N          # Mn         KAWI CONJOINER
! 11F43..11F4F;N   # Po    [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
! 11F50..11F59;N   # Nd    [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
! 11FB0;N          # Lo         LISU LETTER YHA
! 11FC0..11FD4;N   # No    [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
! 11FD5..11FDC;N   # So     [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
! 11FDD..11FE0;N   # Sc     [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
! 11FE1..11FF1;N   # So    [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
! 11FFF;N          # Po         TAMIL PUNCTUATION END OF TEXT
! 12000..12399;N   # Lo   [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
! 12400..1246E;N   # Nl   [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
! 12470..12474;N   # Po     [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
! 12480..12543;N   # Lo   [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
! 12F90..12FF0;N   # Lo    [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
! 12FF1..12FF2;N   # Po     [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
! 13000..1342F;N   # Lo  [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
! 13430..1343F;N   # Cf    [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
! 13440;N          # Mn         EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
! 13441..13446;N   # Lo     [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
! 13447..13455;N   # Mn    [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
! 14400..14646;N   # Lo   [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
! 16800..16A38;N   # Lo   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
! 16A40..16A5E;N   # Lo    [31] MRO LETTER TA..MRO LETTER TEK
! 16A60..16A69;N   # Nd    [10] MRO DIGIT ZERO..MRO DIGIT NINE
! 16A6E..16A6F;N   # Po     [2] MRO DANDA..MRO DOUBLE DANDA
! 16A70..16ABE;N   # Lo    [79] TANGSA LETTER OZ..TANGSA LETTER ZA
! 16AC0..16AC9;N   # Nd    [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
! 16AD0..16AED;N   # Lo    [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
! 16AF0..16AF4;N   # Mn     [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
! 16AF5;N          # Po         BASSA VAH FULL STOP
! 16B00..16B2F;N   # Lo    [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
! 16B30..16B36;N   # Mn     [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
! 16B37..16B3B;N   # Po     [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
! 16B3C..16B3F;N   # So     [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
! 16B40..16B43;N   # Lm     [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
! 16B44;N          # Po         PAHAWH HMONG SIGN XAUS
! 16B45;N          # So         PAHAWH HMONG SIGN CIM TSOV ROG
! 16B50..16B59;N   # Nd    [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
! 16B5B..16B61;N   # No     [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
! 16B63..16B77;N   # Lo    [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
! 16B7D..16B8F;N   # Lo    [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
! 16E40..16E7F;N   # L&    [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
! 16E80..16E96;N   # No    [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
! 16E97..16E9A;N   # Po     [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
! 16F00..16F4A;N   # Lo    [75] MIAO LETTER PA..MIAO LETTER RTE
! 16F4F;N          # Mn         MIAO SIGN CONSONANT MODIFIER BAR
! 16F50;N          # Lo         MIAO LETTER NASALIZATION
! 16F51..16F87;N   # Mc    [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
! 16F8F..16F92;N   # Mn     [4] MIAO TONE RIGHT..MIAO TONE BELOW
! 16F93..16F9F;N   # Lm    [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
! 16FE0..16FE1;W   # Lm     [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
! 16FE2;W          # Po         OLD CHINESE HOOK MARK
! 16FE3;W          # Lm         OLD CHINESE ITERATION MARK
! 16FE4;W          # Mn         KHITAN SMALL SCRIPT FILLER
! 16FF0..16FF1;W   # Mc     [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 17000..187F7;W   # Lo  [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
! 18800..18AFF;W   # Lo   [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768
! 18B00..18CD5;W   # Lo   [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08;W   # Lo     [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
! 1AFF0..1AFF3;W   # Lm     [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
! 1AFF5..1AFFB;W   # Lm     [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
! 1AFFD..1AFFE;W   # Lm     [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
! 1B000..1B0FF;W   # Lo   [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
! 1B100..1B122;W   # Lo    [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
! 1B132;W          # Lo         HIRAGANA LETTER SMALL KO
! 1B150..1B152;W   # Lo     [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
! 1B155;W          # Lo         KATAKANA LETTER SMALL KO
! 1B164..1B167;W   # Lo     [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
! 1B170..1B2FB;W   # Lo   [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
! 1BC00..1BC6A;N   # Lo   [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
! 1BC70..1BC7C;N   # Lo    [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
! 1BC80..1BC88;N   # Lo     [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
! 1BC90..1BC99;N   # Lo    [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
! 1BC9C;N          # So         DUPLOYAN SIGN O WITH CROSS
! 1BC9D..1BC9E;N   # Mn     [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
! 1BC9F;N          # Po         DUPLOYAN PUNCTUATION CHINOOK FULL STOP
! 1BCA0..1BCA3;N   # Cf     [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
! 1CF00..1CF2D;N   # Mn    [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
! 1CF30..1CF46;N   # Mn    [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
! 1CF50..1CFC3;N   # So   [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
! 1D000..1D0F5;N   # So   [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
! 1D100..1D126;N   # So    [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
! 1D129..1D164;N   # So    [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
! 1D165..1D166;N   # Mc     [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
! 1D167..1D169;N   # Mn     [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
! 1D16A..1D16C;N   # So     [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
! 1D16D..1D172;N   # Mc     [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
! 1D173..1D17A;N   # Cf     [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
! 1D17B..1D182;N   # Mn     [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
! 1D183..1D184;N   # So     [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
! 1D185..1D18B;N   # Mn     [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
! 1D18C..1D1A9;N   # So    [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
! 1D1AA..1D1AD;N   # Mn     [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
! 1D1AE..1D1EA;N   # So    [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
! 1D200..1D241;N   # So    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
! 1D242..1D244;N   # Mn     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
! 1D245;N          # So         GREEK MUSICAL LEIMMA
! 1D2C0..1D2D3;N   # No    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
! 1D2E0..1D2F3;N   # No    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
! 1D300..1D356;N   # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
! 1D360..1D378;N   # No    [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
! 1D400..1D454;N   # L&    [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
! 1D456..1D49C;N   # L&    [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
! 1D49E..1D49F;N   # Lu     [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
! 1D4A2;N          # Lu         MATHEMATICAL SCRIPT CAPITAL G
! 1D4A5..1D4A6;N   # Lu     [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
! 1D4A9..1D4AC;N   # Lu     [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
! 1D4AE..1D4B9;N   # L&    [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
! 1D4BB;N          # Ll         MATHEMATICAL SCRIPT SMALL F
! 1D4BD..1D4C3;N   # Ll     [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
! 1D4C5..1D505;N   # L&    [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
! 1D507..1D50A;N   # Lu     [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
! 1D50D..1D514;N   # Lu     [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
! 1D516..1D51C;N   # Lu     [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
! 1D51E..1D539;N   # L&    [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
! 1D53B..1D53E;N   # Lu     [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
! 1D540..1D544;N   # Lu     [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
! 1D546;N          # Lu         MATHEMATICAL DOUBLE-STRUCK CAPITAL O
! 1D54A..1D550;N   # Lu     [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
! 1D552..1D6A5;N   # L&   [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
! 1D6A8..1D6C0;N   # Lu    [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
! 1D6C1;N          # Sm         MATHEMATICAL BOLD NABLA
! 1D6C2..1D6DA;N   # Ll    [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
! 1D6DB;N          # Sm         MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
! 1D6DC..1D6FA;N   # L&    [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
! 1D6FB;N          # Sm         MATHEMATICAL ITALIC NABLA
! 1D6FC..1D714;N   # Ll    [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
! 1D715;N          # Sm         MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
! 1D716..1D734;N   # L&    [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
! 1D735;N          # Sm         MATHEMATICAL BOLD ITALIC NABLA
! 1D736..1D74E;N   # Ll    [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
! 1D74F;N          # Sm         MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
! 1D750..1D76E;N   # L&    [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
! 1D76F;N          # Sm         MATHEMATICAL SANS-SERIF BOLD NABLA
! 1D770..1D788;N   # Ll    [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
! 1D789;N          # Sm         MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
! 1D78A..1D7A8;N   # L&    [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
! 1D7A9;N          # Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
! 1D7AA..1D7C2;N   # Ll    [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
! 1D7C3;N          # Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
! 1D7C4..1D7CB;N   # L&     [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
! 1D7CE..1D7FF;N   # Nd    [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
! 1D800..1D9FF;N   # So   [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
! 1DA00..1DA36;N   # Mn    [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
! 1DA37..1DA3A;N   # So     [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
! 1DA3B..1DA6C;N   # Mn    [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
! 1DA6D..1DA74;N   # So     [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
! 1DA75;N          # Mn         SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
! 1DA76..1DA83;N   # So    [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
! 1DA84;N          # Mn         SIGNWRITING LOCATION HEAD NECK
! 1DA85..1DA86;N   # So     [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
! 1DA87..1DA8B;N   # Po     [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
! 1DA9B..1DA9F;N   # Mn     [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
! 1DAA1..1DAAF;N   # Mn    [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
! 1DF00..1DF09;N   # Ll    [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
! 1DF0A;N          # Lo         LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
! 1DF0B..1DF1E;N   # Ll    [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
! 1DF25..1DF2A;N   # Ll     [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
! 1E000..1E006;N   # Mn     [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
! 1E008..1E018;N   # Mn    [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
! 1E01B..1E021;N   # Mn     [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
! 1E023..1E024;N   # Mn     [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
! 1E026..1E02A;N   # Mn     [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
! 1E030..1E06D;N   # Lm    [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
! 1E08F;N          # Mn         COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
! 1E100..1E12C;N   # Lo    [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
! 1E130..1E136;N   # Mn     [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
! 1E137..1E13D;N   # Lm     [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
! 1E140..1E149;N   # Nd    [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
! 1E14E;N          # Lo         NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
! 1E14F;N          # So         NYIAKENG PUACHUE HMONG CIRCLED CA
! 1E290..1E2AD;N   # Lo    [30] TOTO LETTER PA..TOTO LETTER A
! 1E2AE;N          # Mn         TOTO SIGN RISING TONE
! 1E2C0..1E2EB;N   # Lo    [44] WANCHO LETTER AA..WANCHO LETTER YIH
! 1E2EC..1E2EF;N   # Mn     [4] WANCHO TONE TUP..WANCHO TONE KOINI
! 1E2F0..1E2F9;N   # Nd    [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
! 1E2FF;N          # Sc         WANCHO NGUN SIGN
! 1E4D0..1E4EA;N   # Lo    [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
! 1E4EB;N          # Lm         NAG MUNDARI SIGN OJOD
! 1E4EC..1E4EF;N   # Mn     [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
! 1E4F0..1E4F9;N   # Nd    [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
! 1E7E0..1E7E6;N   # Lo     [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
! 1E7E8..1E7EB;N   # Lo     [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
! 1E7ED..1E7EE;N   # Lo     [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
! 1E7F0..1E7FE;N   # Lo    [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
! 1E800..1E8C4;N   # Lo   [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
! 1E8C7..1E8CF;N   # No     [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
! 1E8D0..1E8D6;N   # Mn     [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
! 1E900..1E943;N   # L&    [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
! 1E944..1E94A;N   # Mn     [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
! 1E94B;N          # Lm         ADLAM NASALIZATION MARK
! 1E950..1E959;N   # Nd    [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
! 1E95E..1E95F;N   # Po     [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
! 1EC71..1ECAB;N   # No    [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
! 1ECAC;N          # So         INDIC SIYAQ PLACEHOLDER
! 1ECAD..1ECAF;N   # No     [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
! 1ECB0;N          # Sc         INDIC SIYAQ RUPEE MARK
! 1ECB1..1ECB4;N   # No     [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
! 1ED01..1ED2D;N   # No    [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
! 1ED2E;N          # So         OTTOMAN SIYAQ MARRATAN
! 1ED2F..1ED3D;N   # No    [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
! 1EE00..1EE03;N   # Lo     [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
! 1EE05..1EE1F;N   # Lo    [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
! 1EE21..1EE22;N   # Lo     [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
! 1EE24;N          # Lo         ARABIC MATHEMATICAL INITIAL HEH
! 1EE27;N          # Lo         ARABIC MATHEMATICAL INITIAL HAH
! 1EE29..1EE32;N   # Lo    [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
! 1EE34..1EE37;N   # Lo     [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
! 1EE39;N          # Lo         ARABIC MATHEMATICAL INITIAL DAD
! 1EE3B;N          # Lo         ARABIC MATHEMATICAL INITIAL GHAIN
! 1EE42;N          # Lo         ARABIC MATHEMATICAL TAILED JEEM
! 1EE47;N          # Lo         ARABIC MATHEMATICAL TAILED HAH
! 1EE49;N          # Lo         ARABIC MATHEMATICAL TAILED YEH
! 1EE4B;N          # Lo         ARABIC MATHEMATICAL TAILED LAM
! 1EE4D..1EE4F;N   # Lo     [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
! 1EE51..1EE52;N   # Lo     [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
! 1EE54;N          # Lo         ARABIC MATHEMATICAL TAILED SHEEN
! 1EE57;N          # Lo         ARABIC MATHEMATICAL TAILED KHAH
! 1EE59;N          # Lo         ARABIC MATHEMATICAL TAILED DAD
! 1EE5B;N          # Lo         ARABIC MATHEMATICAL TAILED GHAIN
! 1EE5D;N          # Lo         ARABIC MATHEMATICAL TAILED DOTLESS NOON
! 1EE5F;N          # Lo         ARABIC MATHEMATICAL TAILED DOTLESS QAF
! 1EE61..1EE62;N   # Lo     [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
! 1EE64;N          # Lo         ARABIC MATHEMATICAL STRETCHED HEH
! 1EE67..1EE6A;N   # Lo     [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
! 1EE6C..1EE72;N   # Lo     [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
! 1EE74..1EE77;N   # Lo     [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
! 1EE79..1EE7C;N   # Lo     [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
! 1EE7E;N          # Lo         ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
! 1EE80..1EE89;N   # Lo    [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
! 1EE8B..1EE9B;N   # Lo    [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
! 1EEA1..1EEA3;N   # Lo     [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
! 1EEA5..1EEA9;N   # Lo     [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
! 1EEAB..1EEBB;N   # Lo    [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
! 1EEF0..1EEF1;N   # Sm     [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
! 1F000..1F003;N   # So     [4] MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND
! 1F004;W          # So         MAHJONG TILE RED DRAGON
! 1F005..1F02B;N   # So    [39] MAHJONG TILE GREEN DRAGON..MAHJONG TILE BACK
! 1F030..1F093;N   # So   [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
! 1F0A0..1F0AE;N   # So    [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
! 1F0B1..1F0BF;N   # So    [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
! 1F0C1..1F0CE;N   # So    [14] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD KING OF DIAMONDS
! 1F0CF;W          # So         PLAYING CARD BLACK JOKER
! 1F0D1..1F0F5;N   # So    [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
! 1F100..1F10A;A   # No    [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
! 1F10B..1F10C;N   # No     [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
! 1F10D..1F10F;N   # So     [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
! 1F110..1F12D;A   # So    [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
! 1F12E..1F12F;N   # So     [2] CIRCLED WZ..COPYLEFT SYMBOL
! 1F130..1F169;A   # So    [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
! 1F16A..1F16F;N   # So     [6] RAISED MC SIGN..CIRCLED HUMAN FIGURE
! 1F170..1F18D;A   # So    [30] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED SA
! 1F18E;W          # So         NEGATIVE SQUARED AB
! 1F18F..1F190;A   # So     [2] NEGATIVE SQUARED WC..SQUARE DJ
! 1F191..1F19A;W   # So    [10] SQUARED CL..SQUARED VS
! 1F19B..1F1AC;A   # So    [18] SQUARED THREE D..SQUARED VOD
! 1F1AD;N          # So         MASK WORK SYMBOL
! 1F1E6..1F1FF;N   # So    [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
! 1F200..1F202;W   # So     [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
! 1F210..1F23B;W   # So    [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
! 1F240..1F248;W   # So     [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
! 1F250..1F251;W   # So     [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
! 1F260..1F265;W   # So     [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
! 1F300..1F320;W   # So    [33] CYCLONE..SHOOTING STAR
! 1F321..1F32C;N   # So    [12] THERMOMETER..WIND BLOWING FACE
! 1F32D..1F335;W   # So     [9] HOT DOG..CACTUS
! 1F336;N          # So         HOT PEPPER
! 1F337..1F37C;W   # So    [70] TULIP..BABY BOTTLE
! 1F37D;N          # So         FORK AND KNIFE WITH PLATE
! 1F37E..1F393;W   # So    [22] BOTTLE WITH POPPING CORK..GRADUATION CAP
! 1F394..1F39F;N   # So    [12] HEART WITH TIP ON THE LEFT..ADMISSION TICKETS
! 1F3A0..1F3CA;W   # So    [43] CAROUSEL HORSE..SWIMMER
! 1F3CB..1F3CE;N   # So     [4] WEIGHT LIFTER..RACING CAR
! 1F3CF..1F3D3;W   # So     [5] CRICKET BAT AND BALL..TABLE TENNIS PADDLE AND BALL
! 1F3D4..1F3DF;N   # So    [12] SNOW CAPPED MOUNTAIN..STADIUM
! 1F3E0..1F3F0;W   # So    [17] HOUSE BUILDING..EUROPEAN CASTLE
! 1F3F1..1F3F3;N   # So     [3] WHITE PENNANT..WAVING WHITE FLAG
! 1F3F4;W          # So         WAVING BLACK FLAG
! 1F3F5..1F3F7;N   # So     [3] ROSETTE..LABEL
! 1F3F8..1F3FA;W   # So     [3] BADMINTON RACQUET AND SHUTTLECOCK..AMPHORA
! 1F3FB..1F3FF;W   # Sk     [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
! 1F400..1F43E;W   # So    [63] RAT..PAW PRINTS
! 1F43F;N          # So         CHIPMUNK
! 1F440;W          # So         EYES
! 1F441;N          # So         EYE
! 1F442..1F4FC;W   # So   [187] EAR..VIDEOCASSETTE
! 1F4FD..1F4FE;N   # So     [2] FILM PROJECTOR..PORTABLE STEREO
! 1F4FF..1F53D;W   # So    [63] PRAYER BEADS..DOWN-POINTING SMALL RED TRIANGLE
! 1F53E..1F54A;N   # So    [13] LOWER RIGHT SHADOWED WHITE CIRCLE..DOVE OF PEACE
! 1F54B..1F54E;W   # So     [4] KAABA..MENORAH WITH NINE BRANCHES
! 1F54F;N          # So         BOWL OF HYGIEIA
! 1F550..1F567;W   # So    [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
! 1F568..1F579;N   # So    [18] RIGHT SPEAKER..JOYSTICK
! 1F57A;W          # So         MAN DANCING
! 1F57B..1F594;N   # So    [26] LEFT HAND TELEPHONE RECEIVER..REVERSED VICTORY HAND
! 1F595..1F596;W   # So     [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
! 1F597..1F5A3;N   # So    [13] WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX
! 1F5A4;W          # So         BLACK HEART
! 1F5A5..1F5FA;N   # So    [86] DESKTOP COMPUTER..WORLD MAP
! 1F5FB..1F5FF;W   # So     [5] MOUNT FUJI..MOYAI
! 1F600..1F64F;W   # So    [80] GRINNING FACE..PERSON WITH FOLDED HANDS
! 1F650..1F67F;N   # So    [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
! 1F680..1F6C5;W   # So    [70] ROCKET..LEFT LUGGAGE
! 1F6C6..1F6CB;N   # So     [6] TRIANGLE WITH ROUNDED CORNERS..COUCH AND LAMP
! 1F6CC;W          # So         SLEEPING ACCOMMODATION
! 1F6CD..1F6CF;N   # So     [3] SHOPPING BAGS..BED
! 1F6D0..1F6D2;W   # So     [3] PLACE OF WORSHIP..SHOPPING TROLLEY
! 1F6D3..1F6D4;N   # So     [2] STUPA..PAGODA
! 1F6D5..1F6D7;W   # So     [3] HINDU TEMPLE..ELEVATOR
! 1F6DC..1F6DF;W   # So     [4] WIRELESS..RING BUOY
! 1F6E0..1F6EA;N   # So    [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
! 1F6EB..1F6EC;W   # So     [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
! 1F6F0..1F6F3;N   # So     [4] SATELLITE..PASSENGER SHIP
! 1F6F4..1F6FC;W   # So     [9] SCOOTER..ROLLER SKATE
! 1F700..1F776;N   # So   [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
! 1F77B..1F77F;N   # So     [5] HAUMEA..ORCUS
! 1F780..1F7D9;N   # So    [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR
! 1F7E0..1F7EB;W   # So    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
! 1F7F0;W          # So         HEAVY EQUALS SIGN
! 1F800..1F80B;N   # So    [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
! 1F810..1F847;N   # So    [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
! 1F850..1F859;N   # So    [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
! 1F860..1F887;N   # So    [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
! 1F890..1F8AD;N   # So    [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
! 1F8B0..1F8B1;N   # So     [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
! 1F900..1F90B;N   # So    [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
! 1F90C..1F93A;W   # So    [47] PINCHED FINGERS..FENCER
! 1F93B;N          # So         MODERN PENTATHLON
! 1F93C..1F945;W   # So    [10] WRESTLERS..GOAL NET
! 1F946;N          # So         RIFLE
! 1F947..1F9FF;W   # So   [185] FIRST PLACE MEDAL..NAZAR AMULET
! 1FA00..1FA53;N   # So    [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
! 1FA60..1FA6D;N   # So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
! 1FA70..1FA7C;W   # So    [13] BALLET SHOES..CRUTCH
! 1FA80..1FA88;W   # So     [9] YO-YO..FLUTE
! 1FA90..1FABD;W   # So    [46] RINGED PLANET..WING
! 1FABF..1FAC5;W   # So     [7] GOOSE..PERSON WITH CROWN
! 1FACE..1FADB;W   # So    [14] MOOSE..PEA POD
! 1FAE0..1FAE8;W   # So     [9] MELTING FACE..SHAKING FACE
! 1FAF0..1FAF8;W   # So     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
! 1FB00..1FB92;N   # So   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
! 1FB94..1FBCA;N   # So    [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
! 1FBF0..1FBF9;N   # Nd    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
! 20000..2A6DF;W   # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A6E0..2A6FF;W   # Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>
! 2A700..2B739;W   # Lo  [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B73A..2B73F;W   # Cn     [6] <reserved-2B73A>..<reserved-2B73F>
! 2B740..2B81D;W   # Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B81E..2B81F;W   # Cn     [2] <reserved-2B81E>..<reserved-2B81F>
! 2B820..2CEA1;W   # Lo  [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
! 2CEA2..2CEAF;W   # Cn    [14] <reserved-2CEA2>..<reserved-2CEAF>
! 2CEB0..2EBE0;W   # Lo  [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
! 2EBE1..2F7FF;W   # Cn  [3103] <reserved-2EBE1>..<reserved-2F7FF>
! 2F800..2FA1D;W   # Lo   [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
! 2FA1E..2FA1F;W   # Cn     [2] <reserved-2FA1E>..<reserved-2FA1F>
! 2FA20..2FFFD;W   # Cn  [1502] <reserved-2FA20>..<reserved-2FFFD>
! 30000..3134A;W   # Lo  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 3134B..3134F;W   # Cn     [5] <reserved-3134B>..<reserved-3134F>
! 31350..323AF;W   # Lo  [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
! 323B0..3FFFD;W   # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
! E0001;N          # Cf         LANGUAGE TAG
! E0020..E007F;N   # Cf    [96] TAG SPACE..CANCEL TAG
! E0100..E01EF;A   # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
! F0000..FFFFD;A   # Co [65534] <private-use-F0000>..<private-use-FFFFD>
! 100000..10FFFD;A # Co [65534] <private-use-100000>..<private-use-10FFFD>
  
  # EOF
--- 30,2621 ----
  # Character ranges are specified as for other property files in the
  # Unicode Character Database.
  #
! # The comments following the number sign "#" list the General_Category
! # property value or the L& alias of the derived value LC, the Unicode
! # character name or names, and, in lines with ranges of code points,
! # the code point count in square brackets.
  #
  # For more information, see UAX #11: East Asian Width,
  # at https://www.unicode.org/reports/tr11/
  #
  # @missing: 0000..10FFFF; N
! 0000..001F     ; N  # Cc    [32] <control-0000>..<control-001F>
! 0020           ; Na # Zs         SPACE
! 0021..0023     ; Na # Po     [3] EXCLAMATION MARK..NUMBER SIGN
! 0024           ; Na # Sc         DOLLAR SIGN
! 0025..0027     ; Na # Po     [3] PERCENT SIGN..APOSTROPHE
! 0028           ; Na # Ps         LEFT PARENTHESIS
! 0029           ; Na # Pe         RIGHT PARENTHESIS
! 002A           ; Na # Po         ASTERISK
! 002B           ; Na # Sm         PLUS SIGN
! 002C           ; Na # Po         COMMA
! 002D           ; Na # Pd         HYPHEN-MINUS
! 002E..002F     ; Na # Po     [2] FULL STOP..SOLIDUS
! 0030..0039     ; Na # Nd    [10] DIGIT ZERO..DIGIT NINE
! 003A..003B     ; Na # Po     [2] COLON..SEMICOLON
! 003C..003E     ; Na # Sm     [3] LESS-THAN SIGN..GREATER-THAN SIGN
! 003F..0040     ; Na # Po     [2] QUESTION MARK..COMMERCIAL AT
! 0041..005A     ; Na # Lu    [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
! 005B           ; Na # Ps         LEFT SQUARE BRACKET
! 005C           ; Na # Po         REVERSE SOLIDUS
! 005D           ; Na # Pe         RIGHT SQUARE BRACKET
! 005E           ; Na # Sk         CIRCUMFLEX ACCENT
! 005F           ; Na # Pc         LOW LINE
! 0060           ; Na # Sk         GRAVE ACCENT
! 0061..007A     ; Na # Ll    [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
! 007B           ; Na # Ps         LEFT CURLY BRACKET
! 007C           ; Na # Sm         VERTICAL LINE
! 007D           ; Na # Pe         RIGHT CURLY BRACKET
! 007E           ; Na # Sm         TILDE
! 007F           ; N  # Cc         <control-007F>
! 0080..009F     ; N  # Cc    [32] <control-0080>..<control-009F>
! 00A0           ; N  # Zs         NO-BREAK SPACE
! 00A1           ; A  # Po         INVERTED EXCLAMATION MARK
! 00A2..00A3     ; Na # Sc     [2] CENT SIGN..POUND SIGN
! 00A4           ; A  # Sc         CURRENCY SIGN
! 00A5           ; Na # Sc         YEN SIGN
! 00A6           ; Na # So         BROKEN BAR
! 00A7           ; A  # Po         SECTION SIGN
! 00A8           ; A  # Sk         DIAERESIS
! 00A9           ; N  # So         COPYRIGHT SIGN
! 00AA           ; A  # Lo         FEMININE ORDINAL INDICATOR
! 00AB           ; N  # Pi         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
! 00AC           ; Na # Sm         NOT SIGN
! 00AD           ; A  # Cf         SOFT HYPHEN
! 00AE           ; A  # So         REGISTERED SIGN
! 00AF           ; Na # Sk         MACRON
! 00B0           ; A  # So         DEGREE SIGN
! 00B1           ; A  # Sm         PLUS-MINUS SIGN
! 00B2..00B3     ; A  # No     [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
! 00B4           ; A  # Sk         ACUTE ACCENT
! 00B5           ; N  # Ll         MICRO SIGN
! 00B6..00B7     ; A  # Po     [2] PILCROW SIGN..MIDDLE DOT
! 00B8           ; A  # Sk         CEDILLA
! 00B9           ; A  # No         SUPERSCRIPT ONE
! 00BA           ; A  # Lo         MASCULINE ORDINAL INDICATOR
! 00BB           ; N  # Pf         RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
! 00BC..00BE     ; A  # No     [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
! 00BF           ; A  # Po         INVERTED QUESTION MARK
! 00C0..00C5     ; N  # Lu     [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
! 00C6           ; A  # Lu         LATIN CAPITAL LETTER AE
! 00C7..00CF     ; N  # Lu     [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
! 00D0           ; A  # Lu         LATIN CAPITAL LETTER ETH
! 00D1..00D6     ; N  # Lu     [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
! 00D7           ; A  # Sm         MULTIPLICATION SIGN
! 00D8           ; A  # Lu         LATIN CAPITAL LETTER O WITH STROKE
! 00D9..00DD     ; N  # Lu     [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
! 00DE..00E1     ; A  # L&     [4] LATIN CAPITAL LETTER THORN..LATIN SMALL LETTER A WITH ACUTE
! 00E2..00E5     ; N  # Ll     [4] LATIN SMALL LETTER A WITH CIRCUMFLEX..LATIN SMALL LETTER A WITH RING ABOVE
! 00E6           ; A  # Ll         LATIN SMALL LETTER AE
! 00E7           ; N  # Ll         LATIN SMALL LETTER C WITH CEDILLA
! 00E8..00EA     ; A  # Ll     [3] LATIN SMALL LETTER E WITH GRAVE..LATIN SMALL LETTER E WITH CIRCUMFLEX
! 00EB           ; N  # Ll         LATIN SMALL LETTER E WITH DIAERESIS
! 00EC..00ED     ; A  # Ll     [2] LATIN SMALL LETTER I WITH GRAVE..LATIN SMALL LETTER I WITH ACUTE
! 00EE..00EF     ; N  # Ll     [2] LATIN SMALL LETTER I WITH CIRCUMFLEX..LATIN SMALL LETTER I WITH DIAERESIS
! 00F0           ; A  # Ll         LATIN SMALL LETTER ETH
! 00F1           ; N  # Ll         LATIN SMALL LETTER N WITH TILDE
! 00F2..00F3     ; A  # Ll     [2] LATIN SMALL LETTER O WITH GRAVE..LATIN SMALL LETTER O WITH ACUTE
! 00F4..00F6     ; N  # Ll     [3] LATIN SMALL LETTER O WITH CIRCUMFLEX..LATIN SMALL LETTER O WITH DIAERESIS
! 00F7           ; A  # Sm         DIVISION SIGN
! 00F8..00FA     ; A  # Ll     [3] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER U WITH ACUTE
! 00FB           ; N  # Ll         LATIN SMALL LETTER U WITH CIRCUMFLEX
! 00FC           ; A  # Ll         LATIN SMALL LETTER U WITH DIAERESIS
! 00FD           ; N  # Ll         LATIN SMALL LETTER Y WITH ACUTE
! 00FE           ; A  # Ll         LATIN SMALL LETTER THORN
! 00FF           ; N  # Ll         LATIN SMALL LETTER Y WITH DIAERESIS
! 0100           ; N  # Lu         LATIN CAPITAL LETTER A WITH MACRON
! 0101           ; A  # Ll         LATIN SMALL LETTER A WITH MACRON
! 0102..0110     ; N  # L&    [15] LATIN CAPITAL LETTER A WITH BREVE..LATIN CAPITAL LETTER D WITH STROKE
! 0111           ; A  # Ll         LATIN SMALL LETTER D WITH STROKE
! 0112           ; N  # Lu         LATIN CAPITAL LETTER E WITH MACRON
! 0113           ; A  # Ll         LATIN SMALL LETTER E WITH MACRON
! 0114..011A     ; N  # L&     [7] LATIN CAPITAL LETTER E WITH BREVE..LATIN CAPITAL LETTER E WITH CARON
! 011B           ; A  # Ll         LATIN SMALL LETTER E WITH CARON
! 011C..0125     ; N  # L&    [10] LATIN CAPITAL LETTER G WITH CIRCUMFLEX..LATIN SMALL LETTER H WITH CIRCUMFLEX
! 0126..0127     ; A  # L&     [2] LATIN CAPITAL LETTER H WITH STROKE..LATIN SMALL LETTER H WITH STROKE
! 0128..012A     ; N  # L&     [3] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH MACRON
! 012B           ; A  # Ll         LATIN SMALL LETTER I WITH MACRON
! 012C..0130     ; N  # L&     [5] LATIN CAPITAL LETTER I WITH BREVE..LATIN CAPITAL LETTER I WITH DOT ABOVE
! 0131..0133     ; A  # L&     [3] LATIN SMALL LETTER DOTLESS I..LATIN SMALL LIGATURE IJ
! 0134..0137     ; N  # L&     [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA
! 0138           ; A  # Ll         LATIN SMALL LETTER KRA
! 0139..013E     ; N  # L&     [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON
! 013F..0142     ; A  # L&     [4] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH STROKE
! 0143           ; N  # Lu         LATIN CAPITAL LETTER N WITH ACUTE
! 0144           ; A  # Ll         LATIN SMALL LETTER N WITH ACUTE
! 0145..0147     ; N  # L&     [3] LATIN CAPITAL LETTER N WITH CEDILLA..LATIN CAPITAL LETTER N WITH CARON
! 0148..014B     ; A  # L&     [4] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER ENG
! 014C           ; N  # Lu         LATIN CAPITAL LETTER O WITH MACRON
! 014D           ; A  # Ll         LATIN SMALL LETTER O WITH MACRON
! 014E..0151     ; N  # L&     [4] LATIN CAPITAL LETTER O WITH BREVE..LATIN SMALL LETTER O WITH DOUBLE ACUTE
! 0152..0153     ; A  # L&     [2] LATIN CAPITAL LIGATURE OE..LATIN SMALL LIGATURE OE
! 0154..0165     ; N  # L&    [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
! 0166..0167     ; A  # L&     [2] LATIN CAPITAL LETTER T WITH STROKE..LATIN SMALL LETTER T WITH STROKE
! 0168..016A     ; N  # L&     [3] LATIN CAPITAL LETTER U WITH TILDE..LATIN CAPITAL LETTER U WITH MACRON
! 016B           ; A  # Ll         LATIN SMALL LETTER U WITH MACRON
! 016C..017F     ; N  # L&    [20] LATIN CAPITAL LETTER U WITH BREVE..LATIN SMALL LETTER LONG S
! 0180..01BA     ; N  # L&    [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
! 01BB           ; N  # Lo         LATIN LETTER TWO WITH STROKE
! 01BC..01BF     ; N  # L&     [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
! 01C0..01C3     ; N  # Lo     [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
! 01C4..01CD     ; N  # L&    [10] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
! 01CE           ; A  # Ll         LATIN SMALL LETTER A WITH CARON
! 01CF           ; N  # Lu         LATIN CAPITAL LETTER I WITH CARON
! 01D0           ; A  # Ll         LATIN SMALL LETTER I WITH CARON
! 01D1           ; N  # Lu         LATIN CAPITAL LETTER O WITH CARON
! 01D2           ; A  # Ll         LATIN SMALL LETTER O WITH CARON
! 01D3           ; N  # Lu         LATIN CAPITAL LETTER U WITH CARON
! 01D4           ; A  # Ll         LATIN SMALL LETTER U WITH CARON
! 01D5           ; N  # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
! 01D6           ; A  # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
! 01D7           ; N  # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
! 01D8           ; A  # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
! 01D9           ; N  # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
! 01DA           ; A  # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND CARON
! 01DB           ; N  # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
! 01DC           ; A  # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
! 01DD..024F     ; N  # L&   [115] LATIN SMALL LETTER TURNED E..LATIN SMALL LETTER Y WITH STROKE
! 0250           ; N  # Ll         LATIN SMALL LETTER TURNED A
! 0251           ; A  # Ll         LATIN SMALL LETTER ALPHA
! 0252..0260     ; N  # Ll    [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK
! 0261           ; A  # Ll         LATIN SMALL LETTER SCRIPT G
! 0262..0293     ; N  # Ll    [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL
! 0294           ; N  # Lo         LATIN LETTER GLOTTAL STOP
! 0295..02AF     ; N  # Ll    [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
! 02B0..02C1     ; N  # Lm    [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
! 02C2..02C3     ; N  # Sk     [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD
! 02C4           ; A  # Sk         MODIFIER LETTER UP ARROWHEAD
! 02C5           ; N  # Sk         MODIFIER LETTER DOWN ARROWHEAD
! 02C6           ; N  # Lm         MODIFIER LETTER CIRCUMFLEX ACCENT
! 02C7           ; A  # Lm         CARON
! 02C8           ; N  # Lm         MODIFIER LETTER VERTICAL LINE
! 02C9..02CB     ; A  # Lm     [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
! 02CC           ; N  # Lm         MODIFIER LETTER LOW VERTICAL LINE
! 02CD           ; A  # Lm         MODIFIER LETTER LOW MACRON
! 02CE..02CF     ; N  # Lm     [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
! 02D0           ; A  # Lm         MODIFIER LETTER TRIANGULAR COLON
! 02D1           ; N  # Lm         MODIFIER LETTER HALF TRIANGULAR COLON
! 02D2..02D7     ; N  # Sk     [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
! 02D8..02DB     ; A  # Sk     [4] BREVE..OGONEK
! 02DC           ; N  # Sk         SMALL TILDE
! 02DD           ; A  # Sk         DOUBLE ACUTE ACCENT
! 02DE           ; N  # Sk         MODIFIER LETTER RHOTIC HOOK
! 02DF           ; A  # Sk         MODIFIER LETTER CROSS ACCENT
! 02E0..02E4     ; N  # Lm     [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
! 02E5..02EB     ; N  # Sk     [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
! 02EC           ; N  # Lm         MODIFIER LETTER VOICING
! 02ED           ; N  # Sk         MODIFIER LETTER UNASPIRATED
! 02EE           ; N  # Lm         MODIFIER LETTER DOUBLE APOSTROPHE
! 02EF..02FF     ; N  # Sk    [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
! 0300..036F     ; A  # Mn   [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
! 0370..0373     ; N  # L&     [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
! 0374           ; N  # Lm         GREEK NUMERAL SIGN
! 0375           ; N  # Sk         GREEK LOWER NUMERAL SIGN
! 0376..0377     ; N  # L&     [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
! 037A           ; N  # Lm         GREEK YPOGEGRAMMENI
! 037B..037D     ; N  # Ll     [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
! 037E           ; N  # Po         GREEK QUESTION MARK
! 037F           ; N  # Lu         GREEK CAPITAL LETTER YOT
! 0384..0385     ; N  # Sk     [2] GREEK TONOS..GREEK DIALYTIKA TONOS
! 0386           ; N  # Lu         GREEK CAPITAL LETTER ALPHA WITH TONOS
! 0387           ; N  # Po         GREEK ANO TELEIA
! 0388..038A     ; N  # Lu     [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
! 038C           ; N  # Lu         GREEK CAPITAL LETTER OMICRON WITH TONOS
! 038E..0390     ; N  # L&     [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
! 0391..03A1     ; A  # Lu    [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
! 03A3..03A9     ; A  # Lu     [7] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER OMEGA
! 03AA..03B0     ; N  # L&     [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
! 03B1..03C1     ; A  # Ll    [17] GREEK SMALL LETTER ALPHA..GREEK SMALL LETTER RHO
! 03C2           ; N  # Ll         GREEK SMALL LETTER FINAL SIGMA
! 03C3..03C9     ; A  # Ll     [7] GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA
! 03CA..03F5     ; N  # L&    [44] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK LUNATE EPSILON SYMBOL
! 03F6           ; N  # Sm         GREEK REVERSED LUNATE EPSILON SYMBOL
! 03F7..03FF     ; N  # L&     [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
! 0400           ; N  # Lu         CYRILLIC CAPITAL LETTER IE WITH GRAVE
! 0401           ; A  # Lu         CYRILLIC CAPITAL LETTER IO
! 0402..040F     ; N  # Lu    [14] CYRILLIC CAPITAL LETTER DJE..CYRILLIC CAPITAL LETTER DZHE
! 0410..044F     ; A  # L&    [64] CYRILLIC CAPITAL LETTER A..CYRILLIC SMALL LETTER YA
! 0450           ; N  # Ll         CYRILLIC SMALL LETTER IE WITH GRAVE
! 0451           ; A  # Ll         CYRILLIC SMALL LETTER IO
! 0452..0481     ; N  # L&    [48] CYRILLIC SMALL LETTER DJE..CYRILLIC SMALL LETTER KOPPA
! 0482           ; N  # So         CYRILLIC THOUSANDS SIGN
! 0483..0487     ; N  # Mn     [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
! 0488..0489     ; N  # Me     [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
! 048A..04FF     ; N  # L&   [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE
! 0500..052F     ; N  # L&    [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER
! 0531..0556     ; N  # Lu    [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
! 0559           ; N  # Lm         ARMENIAN MODIFIER LETTER LEFT HALF RING
! 055A..055F     ; N  # Po     [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
! 0560..0588     ; N  # Ll    [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
! 0589           ; N  # Po         ARMENIAN FULL STOP
! 058A           ; N  # Pd         ARMENIAN HYPHEN
! 058D..058E     ; N  # So     [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
! 058F           ; N  # Sc         ARMENIAN DRAM SIGN
! 0591..05BD     ; N  # Mn    [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
! 05BE           ; N  # Pd         HEBREW PUNCTUATION MAQAF
! 05BF           ; N  # Mn         HEBREW POINT RAFE
! 05C0           ; N  # Po         HEBREW PUNCTUATION PASEQ
! 05C1..05C2     ; N  # Mn     [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
! 05C3           ; N  # Po         HEBREW PUNCTUATION SOF PASUQ
! 05C4..05C5     ; N  # Mn     [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
! 05C6           ; N  # Po         HEBREW PUNCTUATION NUN HAFUKHA
! 05C7           ; N  # Mn         HEBREW POINT QAMATS QATAN
! 05D0..05EA     ; N  # Lo    [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
! 05EF..05F2     ; N  # Lo     [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
! 05F3..05F4     ; N  # Po     [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
! 0600..0605     ; N  # Cf     [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
! 0606..0608     ; N  # Sm     [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
! 0609..060A     ; N  # Po     [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
! 060B           ; N  # Sc         AFGHANI SIGN
! 060C..060D     ; N  # Po     [2] ARABIC COMMA..ARABIC DATE SEPARATOR
! 060E..060F     ; N  # So     [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
! 0610..061A     ; N  # Mn    [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
! 061B           ; N  # Po         ARABIC SEMICOLON
! 061C           ; N  # Cf         ARABIC LETTER MARK
! 061D..061F     ; N  # Po     [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
! 0620..063F     ; N  # Lo    [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
! 0640           ; N  # Lm         ARABIC TATWEEL
! 0641..064A     ; N  # Lo    [10] ARABIC LETTER FEH..ARABIC LETTER YEH
! 064B..065F     ; N  # Mn    [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
! 0660..0669     ; N  # Nd    [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
! 066A..066D     ; N  # Po     [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
! 066E..066F     ; N  # Lo     [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
! 0670           ; N  # Mn         ARABIC LETTER SUPERSCRIPT ALEF
! 0671..06D3     ; N  # Lo    [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
! 06D4           ; N  # Po         ARABIC FULL STOP
! 06D5           ; N  # Lo         ARABIC LETTER AE
! 06D6..06DC     ; N  # Mn     [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
! 06DD           ; N  # Cf         ARABIC END OF AYAH
! 06DE           ; N  # So         ARABIC START OF RUB EL HIZB
! 06DF..06E4     ; N  # Mn     [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
! 06E5..06E6     ; N  # Lm     [2] ARABIC SMALL WAW..ARABIC SMALL YEH
! 06E7..06E8     ; N  # Mn     [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
! 06E9           ; N  # So         ARABIC PLACE OF SAJDAH
! 06EA..06ED     ; N  # Mn     [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
! 06EE..06EF     ; N  # Lo     [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
! 06F0..06F9     ; N  # Nd    [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
! 06FA..06FC     ; N  # Lo     [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
! 06FD..06FE     ; N  # So     [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
! 06FF           ; N  # Lo         ARABIC LETTER HEH WITH INVERTED V
! 0700..070D     ; N  # Po    [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
! 070F           ; N  # Cf         SYRIAC ABBREVIATION MARK
! 0710           ; N  # Lo         SYRIAC LETTER ALAPH
! 0711           ; N  # Mn         SYRIAC LETTER SUPERSCRIPT ALAPH
! 0712..072F     ; N  # Lo    [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
! 0730..074A     ; N  # Mn    [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
! 074D..074F     ; N  # Lo     [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
! 0750..077F     ; N  # Lo    [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
! 0780..07A5     ; N  # Lo    [38] THAANA LETTER HAA..THAANA LETTER WAAVU
! 07A6..07B0     ; N  # Mn    [11] THAANA ABAFILI..THAANA SUKUN
! 07B1           ; N  # Lo         THAANA LETTER NAA
! 07C0..07C9     ; N  # Nd    [10] NKO DIGIT ZERO..NKO DIGIT NINE
! 07CA..07EA     ; N  # Lo    [33] NKO LETTER A..NKO LETTER JONA RA
! 07EB..07F3     ; N  # Mn     [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
! 07F4..07F5     ; N  # Lm     [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
! 07F6           ; N  # So         NKO SYMBOL OO DENNEN
! 07F7..07F9     ; N  # Po     [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
! 07FA           ; N  # Lm         NKO LAJANYALAN
! 07FD           ; N  # Mn         NKO DANTAYALAN
! 07FE..07FF     ; N  # Sc     [2] NKO DOROME SIGN..NKO TAMAN SIGN
! 0800..0815     ; N  # Lo    [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
! 0816..0819     ; N  # Mn     [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
! 081A           ; N  # Lm         SAMARITAN MODIFIER LETTER EPENTHETIC YUT
! 081B..0823     ; N  # Mn     [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
! 0824           ; N  # Lm         SAMARITAN MODIFIER LETTER SHORT A
! 0825..0827     ; N  # Mn     [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
! 0828           ; N  # Lm         SAMARITAN MODIFIER LETTER I
! 0829..082D     ; N  # Mn     [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
! 0830..083E     ; N  # Po    [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
! 0840..0858     ; N  # Lo    [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
! 0859..085B     ; N  # Mn     [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
! 085E           ; N  # Po         MANDAIC PUNCTUATION
! 0860..086A     ; N  # Lo    [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
! 0870..0887     ; N  # Lo    [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
! 0888           ; N  # Sk         ARABIC RAISED ROUND DOT
! 0889..088E     ; N  # Lo     [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
! 0890..0891     ; N  # Cf     [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
! 0898..089F     ; N  # Mn     [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
! 08A0..08C8     ; N  # Lo    [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
! 08C9           ; N  # Lm         ARABIC SMALL FARSI YEH
! 08CA..08E1     ; N  # Mn    [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
! 08E2           ; N  # Cf         ARABIC DISPUTED END OF AYAH
! 08E3..08FF     ; N  # Mn    [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
! 0900..0902     ; N  # Mn     [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
! 0903           ; N  # Mc         DEVANAGARI SIGN VISARGA
! 0904..0939     ; N  # Lo    [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
! 093A           ; N  # Mn         DEVANAGARI VOWEL SIGN OE
! 093B           ; N  # Mc         DEVANAGARI VOWEL SIGN OOE
! 093C           ; N  # Mn         DEVANAGARI SIGN NUKTA
! 093D           ; N  # Lo         DEVANAGARI SIGN AVAGRAHA
! 093E..0940     ; N  # Mc     [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
! 0941..0948     ; N  # Mn     [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
! 0949..094C     ; N  # Mc     [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
! 094D           ; N  # Mn         DEVANAGARI SIGN VIRAMA
! 094E..094F     ; N  # Mc     [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
! 0950           ; N  # Lo         DEVANAGARI OM
! 0951..0957     ; N  # Mn     [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
! 0958..0961     ; N  # Lo    [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
! 0962..0963     ; N  # Mn     [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
! 0964..0965     ; N  # Po     [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
! 0966..096F     ; N  # Nd    [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
! 0970           ; N  # Po         DEVANAGARI ABBREVIATION SIGN
! 0971           ; N  # Lm         DEVANAGARI SIGN HIGH SPACING DOT
! 0972..097F     ; N  # Lo    [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
! 0980           ; N  # Lo         BENGALI ANJI
! 0981           ; N  # Mn         BENGALI SIGN CANDRABINDU
! 0982..0983     ; N  # Mc     [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
! 0985..098C     ; N  # Lo     [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
! 098F..0990     ; N  # Lo     [2] BENGALI LETTER E..BENGALI LETTER AI
! 0993..09A8     ; N  # Lo    [22] BENGALI LETTER O..BENGALI LETTER NA
! 09AA..09B0     ; N  # Lo     [7] BENGALI LETTER PA..BENGALI LETTER RA
! 09B2           ; N  # Lo         BENGALI LETTER LA
! 09B6..09B9     ; N  # Lo     [4] BENGALI LETTER SHA..BENGALI LETTER HA
! 09BC           ; N  # Mn         BENGALI SIGN NUKTA
! 09BD           ; N  # Lo         BENGALI SIGN AVAGRAHA
! 09BE..09C0     ; N  # Mc     [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
! 09C1..09C4     ; N  # Mn     [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
! 09C7..09C8     ; N  # Mc     [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
! 09CB..09CC     ; N  # Mc     [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
! 09CD           ; N  # Mn         BENGALI SIGN VIRAMA
! 09CE           ; N  # Lo         BENGALI LETTER KHANDA TA
! 09D7           ; N  # Mc         BENGALI AU LENGTH MARK
! 09DC..09DD     ; N  # Lo     [2] BENGALI LETTER RRA..BENGALI LETTER RHA
! 09DF..09E1     ; N  # Lo     [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
! 09E2..09E3     ; N  # Mn     [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
! 09E6..09EF     ; N  # Nd    [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
! 09F0..09F1     ; N  # Lo     [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
! 09F2..09F3     ; N  # Sc     [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
! 09F4..09F9     ; N  # No     [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
! 09FA           ; N  # So         BENGALI ISSHAR
! 09FB           ; N  # Sc         BENGALI GANDA MARK
! 09FC           ; N  # Lo         BENGALI LETTER VEDIC ANUSVARA
! 09FD           ; N  # Po         BENGALI ABBREVIATION SIGN
! 09FE           ; N  # Mn         BENGALI SANDHI MARK
! 0A01..0A02     ; N  # Mn     [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
! 0A03           ; N  # Mc         GURMUKHI SIGN VISARGA
! 0A05..0A0A     ; N  # Lo     [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
! 0A0F..0A10     ; N  # Lo     [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
! 0A13..0A28     ; N  # Lo    [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
! 0A2A..0A30     ; N  # Lo     [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
! 0A32..0A33     ; N  # Lo     [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
! 0A35..0A36     ; N  # Lo     [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
! 0A38..0A39     ; N  # Lo     [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
! 0A3C           ; N  # Mn         GURMUKHI SIGN NUKTA
! 0A3E..0A40     ; N  # Mc     [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
! 0A41..0A42     ; N  # Mn     [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
! 0A47..0A48     ; N  # Mn     [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
! 0A4B..0A4D     ; N  # Mn     [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
! 0A51           ; N  # Mn         GURMUKHI SIGN UDAAT
! 0A59..0A5C     ; N  # Lo     [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
! 0A5E           ; N  # Lo         GURMUKHI LETTER FA
! 0A66..0A6F     ; N  # Nd    [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
! 0A70..0A71     ; N  # Mn     [2] GURMUKHI TIPPI..GURMUKHI ADDAK
! 0A72..0A74     ; N  # Lo     [3] GURMUKHI IRI..GURMUKHI EK ONKAR
! 0A75           ; N  # Mn         GURMUKHI SIGN YAKASH
! 0A76           ; N  # Po         GURMUKHI ABBREVIATION SIGN
! 0A81..0A82     ; N  # Mn     [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
! 0A83           ; N  # Mc         GUJARATI SIGN VISARGA
! 0A85..0A8D     ; N  # Lo     [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
! 0A8F..0A91     ; N  # Lo     [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
! 0A93..0AA8     ; N  # Lo    [22] GUJARATI LETTER O..GUJARATI LETTER NA
! 0AAA..0AB0     ; N  # Lo     [7] GUJARATI LETTER PA..GUJARATI LETTER RA
! 0AB2..0AB3     ; N  # Lo     [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
! 0AB5..0AB9     ; N  # Lo     [5] GUJARATI LETTER VA..GUJARATI LETTER HA
! 0ABC           ; N  # Mn         GUJARATI SIGN NUKTA
! 0ABD           ; N  # Lo         GUJARATI SIGN AVAGRAHA
! 0ABE..0AC0     ; N  # Mc     [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
! 0AC1..0AC5     ; N  # Mn     [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
! 0AC7..0AC8     ; N  # Mn     [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
! 0AC9           ; N  # Mc         GUJARATI VOWEL SIGN CANDRA O
! 0ACB..0ACC     ; N  # Mc     [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
! 0ACD           ; N  # Mn         GUJARATI SIGN VIRAMA
! 0AD0           ; N  # Lo         GUJARATI OM
! 0AE0..0AE1     ; N  # Lo     [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
! 0AE2..0AE3     ; N  # Mn     [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
! 0AE6..0AEF     ; N  # Nd    [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
! 0AF0           ; N  # Po         GUJARATI ABBREVIATION SIGN
! 0AF1           ; N  # Sc         GUJARATI RUPEE SIGN
! 0AF9           ; N  # Lo         GUJARATI LETTER ZHA
! 0AFA..0AFF     ; N  # Mn     [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
! 0B01           ; N  # Mn         ORIYA SIGN CANDRABINDU
! 0B02..0B03     ; N  # Mc     [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
! 0B05..0B0C     ; N  # Lo     [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
! 0B0F..0B10     ; N  # Lo     [2] ORIYA LETTER E..ORIYA LETTER AI
! 0B13..0B28     ; N  # Lo    [22] ORIYA LETTER O..ORIYA LETTER NA
! 0B2A..0B30     ; N  # Lo     [7] ORIYA LETTER PA..ORIYA LETTER RA
! 0B32..0B33     ; N  # Lo     [2] ORIYA LETTER LA..ORIYA LETTER LLA
! 0B35..0B39     ; N  # Lo     [5] ORIYA LETTER VA..ORIYA LETTER HA
! 0B3C           ; N  # Mn         ORIYA SIGN NUKTA
! 0B3D           ; N  # Lo         ORIYA SIGN AVAGRAHA
! 0B3E           ; N  # Mc         ORIYA VOWEL SIGN AA
! 0B3F           ; N  # Mn         ORIYA VOWEL SIGN I
! 0B40           ; N  # Mc         ORIYA VOWEL SIGN II
! 0B41..0B44     ; N  # Mn     [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
! 0B47..0B48     ; N  # Mc     [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
! 0B4B..0B4C     ; N  # Mc     [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
! 0B4D           ; N  # Mn         ORIYA SIGN VIRAMA
! 0B55..0B56     ; N  # Mn     [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
! 0B57           ; N  # Mc         ORIYA AU LENGTH MARK
! 0B5C..0B5D     ; N  # Lo     [2] ORIYA LETTER RRA..ORIYA LETTER RHA
! 0B5F..0B61     ; N  # Lo     [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
! 0B62..0B63     ; N  # Mn     [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
! 0B66..0B6F     ; N  # Nd    [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
! 0B70           ; N  # So         ORIYA ISSHAR
! 0B71           ; N  # Lo         ORIYA LETTER WA
! 0B72..0B77     ; N  # No     [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
! 0B82           ; N  # Mn         TAMIL SIGN ANUSVARA
! 0B83           ; N  # Lo         TAMIL SIGN VISARGA
! 0B85..0B8A     ; N  # Lo     [6] TAMIL LETTER A..TAMIL LETTER UU
! 0B8E..0B90     ; N  # Lo     [3] TAMIL LETTER E..TAMIL LETTER AI
! 0B92..0B95     ; N  # Lo     [4] TAMIL LETTER O..TAMIL LETTER KA
! 0B99..0B9A     ; N  # Lo     [2] TAMIL LETTER NGA..TAMIL LETTER CA
! 0B9C           ; N  # Lo         TAMIL LETTER JA
! 0B9E..0B9F     ; N  # Lo     [2] TAMIL LETTER NYA..TAMIL LETTER TTA
! 0BA3..0BA4     ; N  # Lo     [2] TAMIL LETTER NNA..TAMIL LETTER TA
! 0BA8..0BAA     ; N  # Lo     [3] TAMIL LETTER NA..TAMIL LETTER PA
! 0BAE..0BB9     ; N  # Lo    [12] TAMIL LETTER MA..TAMIL LETTER HA
! 0BBE..0BBF     ; N  # Mc     [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
! 0BC0           ; N  # Mn         TAMIL VOWEL SIGN II
! 0BC1..0BC2     ; N  # Mc     [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
! 0BC6..0BC8     ; N  # Mc     [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
! 0BCA..0BCC     ; N  # Mc     [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
! 0BCD           ; N  # Mn         TAMIL SIGN VIRAMA
! 0BD0           ; N  # Lo         TAMIL OM
! 0BD7           ; N  # Mc         TAMIL AU LENGTH MARK
! 0BE6..0BEF     ; N  # Nd    [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
! 0BF0..0BF2     ; N  # No     [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
! 0BF3..0BF8     ; N  # So     [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
! 0BF9           ; N  # Sc         TAMIL RUPEE SIGN
! 0BFA           ; N  # So         TAMIL NUMBER SIGN
! 0C00           ; N  # Mn         TELUGU SIGN COMBINING CANDRABINDU ABOVE
! 0C01..0C03     ; N  # Mc     [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
! 0C04           ; N  # Mn         TELUGU SIGN COMBINING ANUSVARA ABOVE
! 0C05..0C0C     ; N  # Lo     [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
! 0C0E..0C10     ; N  # Lo     [3] TELUGU LETTER E..TELUGU LETTER AI
! 0C12..0C28     ; N  # Lo    [23] TELUGU LETTER O..TELUGU LETTER NA
! 0C2A..0C39     ; N  # Lo    [16] TELUGU LETTER PA..TELUGU LETTER HA
! 0C3C           ; N  # Mn         TELUGU SIGN NUKTA
! 0C3D           ; N  # Lo         TELUGU SIGN AVAGRAHA
! 0C3E..0C40     ; N  # Mn     [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
! 0C41..0C44     ; N  # Mc     [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
! 0C46..0C48     ; N  # Mn     [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
! 0C4A..0C4D     ; N  # Mn     [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
! 0C55..0C56     ; N  # Mn     [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
! 0C58..0C5A     ; N  # Lo     [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D           ; N  # Lo         TELUGU LETTER NAKAARA POLLU
! 0C60..0C61     ; N  # Lo     [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
! 0C62..0C63     ; N  # Mn     [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
! 0C66..0C6F     ; N  # Nd    [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
! 0C77           ; N  # Po         TELUGU SIGN SIDDHAM
! 0C78..0C7E     ; N  # No     [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
! 0C7F           ; N  # So         TELUGU SIGN TUUMU
! 0C80           ; N  # Lo         KANNADA SIGN SPACING CANDRABINDU
! 0C81           ; N  # Mn         KANNADA SIGN CANDRABINDU
! 0C82..0C83     ; N  # Mc     [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
! 0C84           ; N  # Po         KANNADA SIGN SIDDHAM
! 0C85..0C8C     ; N  # Lo     [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
! 0C8E..0C90     ; N  # Lo     [3] KANNADA LETTER E..KANNADA LETTER AI
! 0C92..0CA8     ; N  # Lo    [23] KANNADA LETTER O..KANNADA LETTER NA
! 0CAA..0CB3     ; N  # Lo    [10] KANNADA LETTER PA..KANNADA LETTER LLA
! 0CB5..0CB9     ; N  # Lo     [5] KANNADA LETTER VA..KANNADA LETTER HA
! 0CBC           ; N  # Mn         KANNADA SIGN NUKTA
! 0CBD           ; N  # Lo         KANNADA SIGN AVAGRAHA
! 0CBE           ; N  # Mc         KANNADA VOWEL SIGN AA
! 0CBF           ; N  # Mn         KANNADA VOWEL SIGN I
! 0CC0..0CC4     ; N  # Mc     [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
! 0CC6           ; N  # Mn         KANNADA VOWEL SIGN E
! 0CC7..0CC8     ; N  # Mc     [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
! 0CCA..0CCB     ; N  # Mc     [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
! 0CCC..0CCD     ; N  # Mn     [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
! 0CD5..0CD6     ; N  # Mc     [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDD..0CDE     ; N  # Lo     [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
! 0CE0..0CE1     ; N  # Lo     [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
! 0CE2..0CE3     ; N  # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
! 0CE6..0CEF     ; N  # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
! 0CF1..0CF2     ; N  # Lo     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
! 0CF3           ; N  # Mc         KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
! 0D00..0D01     ; N  # Mn     [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
! 0D02..0D03     ; N  # Mc     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
! 0D04..0D0C     ; N  # Lo     [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
! 0D0E..0D10     ; N  # Lo     [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
! 0D12..0D3A     ; N  # Lo    [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
! 0D3B..0D3C     ; N  # Mn     [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
! 0D3D           ; N  # Lo         MALAYALAM SIGN AVAGRAHA
! 0D3E..0D40     ; N  # Mc     [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
! 0D41..0D44     ; N  # Mn     [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
! 0D46..0D48     ; N  # Mc     [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
! 0D4A..0D4C     ; N  # Mc     [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
! 0D4D           ; N  # Mn         MALAYALAM SIGN VIRAMA
! 0D4E           ; N  # Lo         MALAYALAM LETTER DOT REPH
! 0D4F           ; N  # So         MALAYALAM SIGN PARA
! 0D54..0D56     ; N  # Lo     [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
! 0D57           ; N  # Mc         MALAYALAM AU LENGTH MARK
! 0D58..0D5E     ; N  # No     [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
! 0D5F..0D61     ; N  # Lo     [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
! 0D62..0D63     ; N  # Mn     [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
! 0D66..0D6F     ; N  # Nd    [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
! 0D70..0D78     ; N  # No     [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS
! 0D79           ; N  # So         MALAYALAM DATE MARK
! 0D7A..0D7F     ; N  # Lo     [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
! 0D81           ; N  # Mn         SINHALA SIGN CANDRABINDU
! 0D82..0D83     ; N  # Mc     [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
! 0D85..0D96     ; N  # Lo    [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
! 0D9A..0DB1     ; N  # Lo    [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
! 0DB3..0DBB     ; N  # Lo     [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
! 0DBD           ; N  # Lo         SINHALA LETTER DANTAJA LAYANNA
! 0DC0..0DC6     ; N  # Lo     [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
! 0DCA           ; N  # Mn         SINHALA SIGN AL-LAKUNA
! 0DCF..0DD1     ; N  # Mc     [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
! 0DD2..0DD4     ; N  # Mn     [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
! 0DD6           ; N  # Mn         SINHALA VOWEL SIGN DIGA PAA-PILLA
! 0DD8..0DDF     ; N  # Mc     [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
! 0DE6..0DEF     ; N  # Nd    [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
! 0DF2..0DF3     ; N  # Mc     [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
! 0DF4           ; N  # Po         SINHALA PUNCTUATION KUNDDALIYA
! 0E01..0E30     ; N  # Lo    [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
! 0E31           ; N  # Mn         THAI CHARACTER MAI HAN-AKAT
! 0E32..0E33     ; N  # Lo     [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
! 0E34..0E3A     ; N  # Mn     [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
! 0E3F           ; N  # Sc         THAI CURRENCY SYMBOL BAHT
! 0E40..0E45     ; N  # Lo     [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
! 0E46           ; N  # Lm         THAI CHARACTER MAIYAMOK
! 0E47..0E4E     ; N  # Mn     [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
! 0E4F           ; N  # Po         THAI CHARACTER FONGMAN
! 0E50..0E59     ; N  # Nd    [10] THAI DIGIT ZERO..THAI DIGIT NINE
! 0E5A..0E5B     ; N  # Po     [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
! 0E81..0E82     ; N  # Lo     [2] LAO LETTER KO..LAO LETTER KHO SUNG
! 0E84           ; N  # Lo         LAO LETTER KHO TAM
! 0E86..0E8A     ; N  # Lo     [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
! 0E8C..0EA3     ; N  # Lo    [24] LAO LETTER PALI JHA..LAO LETTER LO LING
! 0EA5           ; N  # Lo         LAO LETTER LO LOOT
! 0EA7..0EB0     ; N  # Lo    [10] LAO LETTER WO..LAO VOWEL SIGN A
! 0EB1           ; N  # Mn         LAO VOWEL SIGN MAI KAN
! 0EB2..0EB3     ; N  # Lo     [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
! 0EB4..0EBC     ; N  # Mn     [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
! 0EBD           ; N  # Lo         LAO SEMIVOWEL SIGN NYO
! 0EC0..0EC4     ; N  # Lo     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
! 0EC6           ; N  # Lm         LAO KO LA
! 0EC8..0ECE     ; N  # Mn     [7] LAO TONE MAI EK..LAO YAMAKKAN
! 0ED0..0ED9     ; N  # Nd    [10] LAO DIGIT ZERO..LAO DIGIT NINE
! 0EDC..0EDF     ; N  # Lo     [4] LAO HO NO..LAO LETTER KHMU NYO
! 0F00           ; N  # Lo         TIBETAN SYLLABLE OM
! 0F01..0F03     ; N  # So     [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
! 0F04..0F12     ; N  # Po    [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
! 0F13           ; N  # So         TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
! 0F14           ; N  # Po         TIBETAN MARK GTER TSHEG
! 0F15..0F17     ; N  # So     [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
! 0F18..0F19     ; N  # Mn     [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
! 0F1A..0F1F     ; N  # So     [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
! 0F20..0F29     ; N  # Nd    [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
! 0F2A..0F33     ; N  # No    [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
! 0F34           ; N  # So         TIBETAN MARK BSDUS RTAGS
! 0F35           ; N  # Mn         TIBETAN MARK NGAS BZUNG NYI ZLA
! 0F36           ; N  # So         TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
! 0F37           ; N  # Mn         TIBETAN MARK NGAS BZUNG SGOR RTAGS
! 0F38           ; N  # So         TIBETAN MARK CHE MGO
! 0F39           ; N  # Mn         TIBETAN MARK TSA -PHRU
! 0F3A           ; N  # Ps         TIBETAN MARK GUG RTAGS GYON
! 0F3B           ; N  # Pe         TIBETAN MARK GUG RTAGS GYAS
! 0F3C           ; N  # Ps         TIBETAN MARK ANG KHANG GYON
! 0F3D           ; N  # Pe         TIBETAN MARK ANG KHANG GYAS
! 0F3E..0F3F     ; N  # Mc     [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
! 0F40..0F47     ; N  # Lo     [8] TIBETAN LETTER KA..TIBETAN LETTER JA
! 0F49..0F6C     ; N  # Lo    [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
! 0F71..0F7E     ; N  # Mn    [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
! 0F7F           ; N  # Mc         TIBETAN SIGN RNAM BCAD
! 0F80..0F84     ; N  # Mn     [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
! 0F85           ; N  # Po         TIBETAN MARK PALUTA
! 0F86..0F87     ; N  # Mn     [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
! 0F88..0F8C     ; N  # Lo     [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
! 0F8D..0F97     ; N  # Mn    [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
! 0F99..0FBC     ; N  # Mn    [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
! 0FBE..0FC5     ; N  # So     [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
! 0FC6           ; N  # Mn         TIBETAN SYMBOL PADMA GDAN
! 0FC7..0FCC     ; N  # So     [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
! 0FCE..0FCF     ; N  # So     [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
! 0FD0..0FD4     ; N  # Po     [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
! 0FD5..0FD8     ; N  # So     [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
! 0FD9..0FDA     ; N  # Po     [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
! 1000..102A     ; N  # Lo    [43] MYANMAR LETTER KA..MYANMAR LETTER AU
! 102B..102C     ; N  # Mc     [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
! 102D..1030     ; N  # Mn     [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
! 1031           ; N  # Mc         MYANMAR VOWEL SIGN E
! 1032..1037     ; N  # Mn     [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
! 1038           ; N  # Mc         MYANMAR SIGN VISARGA
! 1039..103A     ; N  # Mn     [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
! 103B..103C     ; N  # Mc     [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
! 103D..103E     ; N  # Mn     [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
! 103F           ; N  # Lo         MYANMAR LETTER GREAT SA
! 1040..1049     ; N  # Nd    [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
! 104A..104F     ; N  # Po     [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
! 1050..1055     ; N  # Lo     [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
! 1056..1057     ; N  # Mc     [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
! 1058..1059     ; N  # Mn     [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
! 105A..105D     ; N  # Lo     [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
! 105E..1060     ; N  # Mn     [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
! 1061           ; N  # Lo         MYANMAR LETTER SGAW KAREN SHA
! 1062..1064     ; N  # Mc     [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
! 1065..1066     ; N  # Lo     [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
! 1067..106D     ; N  # Mc     [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
! 106E..1070     ; N  # Lo     [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
! 1071..1074     ; N  # Mn     [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
! 1075..1081     ; N  # Lo    [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
! 1082           ; N  # Mn         MYANMAR CONSONANT SIGN SHAN MEDIAL WA
! 1083..1084     ; N  # Mc     [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
! 1085..1086     ; N  # Mn     [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
! 1087..108C     ; N  # Mc     [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
! 108D           ; N  # Mn         MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
! 108E           ; N  # Lo         MYANMAR LETTER RUMAI PALAUNG FA
! 108F           ; N  # Mc         MYANMAR SIGN RUMAI PALAUNG TONE-5
! 1090..1099     ; N  # Nd    [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
! 109A..109C     ; N  # Mc     [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
! 109D           ; N  # Mn         MYANMAR VOWEL SIGN AITON AI
! 109E..109F     ; N  # So     [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
! 10A0..10C5     ; N  # Lu    [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
! 10C7           ; N  # Lu         GEORGIAN CAPITAL LETTER YN
! 10CD           ; N  # Lu         GEORGIAN CAPITAL LETTER AEN
! 10D0..10FA     ; N  # Ll    [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
! 10FB           ; N  # Po         GEORGIAN PARAGRAPH SEPARATOR
! 10FC           ; N  # Lm         MODIFIER LETTER GEORGIAN NAR
! 10FD..10FF     ; N  # Ll     [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
! 1100..115F     ; W  # Lo    [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
! 1160..11FF     ; N  # Lo   [160] HANGUL JUNGSEONG FILLER..HANGUL JONGSEONG SSANGNIEUN
! 1200..1248     ; N  # Lo    [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
! 124A..124D     ; N  # Lo     [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
! 1250..1256     ; N  # Lo     [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
! 1258           ; N  # Lo         ETHIOPIC SYLLABLE QHWA
! 125A..125D     ; N  # Lo     [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
! 1260..1288     ; N  # Lo    [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
! 128A..128D     ; N  # Lo     [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
! 1290..12B0     ; N  # Lo    [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
! 12B2..12B5     ; N  # Lo     [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
! 12B8..12BE     ; N  # Lo     [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
! 12C0           ; N  # Lo         ETHIOPIC SYLLABLE KXWA
! 12C2..12C5     ; N  # Lo     [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
! 12C8..12D6     ; N  # Lo    [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
! 12D8..1310     ; N  # Lo    [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
! 1312..1315     ; N  # Lo     [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
! 1318..135A     ; N  # Lo    [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
! 135D..135F     ; N  # Mn     [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
! 1360..1368     ; N  # Po     [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
! 1369..137C     ; N  # No    [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
! 1380..138F     ; N  # Lo    [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
! 1390..1399     ; N  # So    [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
! 13A0..13F5     ; N  # Lu    [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
! 13F8..13FD     ; N  # Ll     [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
! 1400           ; N  # Pd         CANADIAN SYLLABICS HYPHEN
! 1401..166C     ; N  # Lo   [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
! 166D           ; N  # So         CANADIAN SYLLABICS CHI SIGN
! 166E           ; N  # Po         CANADIAN SYLLABICS FULL STOP
! 166F..167F     ; N  # Lo    [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
! 1680           ; N  # Zs         OGHAM SPACE MARK
! 1681..169A     ; N  # Lo    [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
! 169B           ; N  # Ps         OGHAM FEATHER MARK
! 169C           ; N  # Pe         OGHAM REVERSED FEATHER MARK
! 16A0..16EA     ; N  # Lo    [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
! 16EB..16ED     ; N  # Po     [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
! 16EE..16F0     ; N  # Nl     [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
! 16F1..16F8     ; N  # Lo     [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
! 1700..1711     ; N  # Lo    [18] TAGALOG LETTER A..TAGALOG LETTER HA
! 1712..1714     ; N  # Mn     [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
! 1715           ; N  # Mc         TAGALOG SIGN PAMUDPOD
! 171F           ; N  # Lo         TAGALOG LETTER ARCHAIC RA
! 1720..1731     ; N  # Lo    [18] HANUNOO LETTER A..HANUNOO LETTER HA
! 1732..1733     ; N  # Mn     [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
! 1734           ; N  # Mc         HANUNOO SIGN PAMUDPOD
! 1735..1736     ; N  # Po     [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
! 1740..1751     ; N  # Lo    [18] BUHID LETTER A..BUHID LETTER HA
! 1752..1753     ; N  # Mn     [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
! 1760..176C     ; N  # Lo    [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
! 176E..1770     ; N  # Lo     [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
! 1772..1773     ; N  # Mn     [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
! 1780..17B3     ; N  # Lo    [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
! 17B4..17B5     ; N  # Mn     [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
! 17B6           ; N  # Mc         KHMER VOWEL SIGN AA
! 17B7..17BD     ; N  # Mn     [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
! 17BE..17C5     ; N  # Mc     [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
! 17C6           ; N  # Mn         KHMER SIGN NIKAHIT
! 17C7..17C8     ; N  # Mc     [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
! 17C9..17D3     ; N  # Mn    [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
! 17D4..17D6     ; N  # Po     [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
! 17D7           ; N  # Lm         KHMER SIGN LEK TOO
! 17D8..17DA     ; N  # Po     [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
! 17DB           ; N  # Sc         KHMER CURRENCY SYMBOL RIEL
! 17DC           ; N  # Lo         KHMER SIGN AVAKRAHASANYA
! 17DD           ; N  # Mn         KHMER SIGN ATTHACAN
! 17E0..17E9     ; N  # Nd    [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
! 17F0..17F9     ; N  # No    [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
! 1800..1805     ; N  # Po     [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
! 1806           ; N  # Pd         MONGOLIAN TODO SOFT HYPHEN
! 1807..180A     ; N  # Po     [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
! 180B..180D     ; N  # Mn     [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
! 180E           ; N  # Cf         MONGOLIAN VOWEL SEPARATOR
! 180F           ; N  # Mn         MONGOLIAN FREE VARIATION SELECTOR FOUR
! 1810..1819     ; N  # Nd    [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
! 1820..1842     ; N  # Lo    [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
! 1843           ; N  # Lm         MONGOLIAN LETTER TODO LONG VOWEL SIGN
! 1844..1878     ; N  # Lo    [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
! 1880..1884     ; N  # Lo     [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
! 1885..1886     ; N  # Mn     [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
! 1887..18A8     ; N  # Lo    [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
! 18A9           ; N  # Mn         MONGOLIAN LETTER ALI GALI DAGALGA
! 18AA           ; N  # Lo         MONGOLIAN LETTER MANCHU ALI GALI LHA
! 18B0..18F5     ; N  # Lo    [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
! 1900..191E     ; N  # Lo    [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
! 1920..1922     ; N  # Mn     [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
! 1923..1926     ; N  # Mc     [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
! 1927..1928     ; N  # Mn     [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
! 1929..192B     ; N  # Mc     [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
! 1930..1931     ; N  # Mc     [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
! 1932           ; N  # Mn         LIMBU SMALL LETTER ANUSVARA
! 1933..1938     ; N  # Mc     [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
! 1939..193B     ; N  # Mn     [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
! 1940           ; N  # So         LIMBU SIGN LOO
! 1944..1945     ; N  # Po     [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
! 1946..194F     ; N  # Nd    [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
! 1950..196D     ; N  # Lo    [30] TAI LE LETTER KA..TAI LE LETTER AI
! 1970..1974     ; N  # Lo     [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
! 1980..19AB     ; N  # Lo    [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
! 19B0..19C9     ; N  # Lo    [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
! 19D0..19D9     ; N  # Nd    [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
! 19DA           ; N  # No         NEW TAI LUE THAM DIGIT ONE
! 19DE..19DF     ; N  # So     [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
! 19E0..19FF     ; N  # So    [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
! 1A00..1A16     ; N  # Lo    [23] BUGINESE LETTER KA..BUGINESE LETTER HA
! 1A17..1A18     ; N  # Mn     [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
! 1A19..1A1A     ; N  # Mc     [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
! 1A1B           ; N  # Mn         BUGINESE VOWEL SIGN AE
! 1A1E..1A1F     ; N  # Po     [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
! 1A20..1A54     ; N  # Lo    [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
! 1A55           ; N  # Mc         TAI THAM CONSONANT SIGN MEDIAL RA
! 1A56           ; N  # Mn         TAI THAM CONSONANT SIGN MEDIAL LA
! 1A57           ; N  # Mc         TAI THAM CONSONANT SIGN LA TANG LAI
! 1A58..1A5E     ; N  # Mn     [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
! 1A60           ; N  # Mn         TAI THAM SIGN SAKOT
! 1A61           ; N  # Mc         TAI THAM VOWEL SIGN A
! 1A62           ; N  # Mn         TAI THAM VOWEL SIGN MAI SAT
! 1A63..1A64     ; N  # Mc     [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
! 1A65..1A6C     ; N  # Mn     [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
! 1A6D..1A72     ; N  # Mc     [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
! 1A73..1A7C     ; N  # Mn    [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
! 1A7F           ; N  # Mn         TAI THAM COMBINING CRYPTOGRAMMIC DOT
! 1A80..1A89     ; N  # Nd    [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
! 1A90..1A99     ; N  # Nd    [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
! 1AA0..1AA6     ; N  # Po     [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
! 1AA7           ; N  # Lm         TAI THAM SIGN MAI YAMOK
! 1AA8..1AAD     ; N  # Po     [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
! 1AB0..1ABD     ; N  # Mn    [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
! 1ABE           ; N  # Me         COMBINING PARENTHESES OVERLAY
! 1ABF..1ACE     ; N  # Mn    [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
! 1B00..1B03     ; N  # Mn     [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
! 1B04           ; N  # Mc         BALINESE SIGN BISAH
! 1B05..1B33     ; N  # Lo    [47] BALINESE LETTER AKARA..BALINESE LETTER HA
! 1B34           ; N  # Mn         BALINESE SIGN REREKAN
! 1B35           ; N  # Mc         BALINESE VOWEL SIGN TEDUNG
! 1B36..1B3A     ; N  # Mn     [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
! 1B3B           ; N  # Mc         BALINESE VOWEL SIGN RA REPA TEDUNG
! 1B3C           ; N  # Mn         BALINESE VOWEL SIGN LA LENGA
! 1B3D..1B41     ; N  # Mc     [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
! 1B42           ; N  # Mn         BALINESE VOWEL SIGN PEPET
! 1B43..1B44     ; N  # Mc     [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
! 1B45..1B4C     ; N  # Lo     [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
! 1B50..1B59     ; N  # Nd    [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
! 1B5A..1B60     ; N  # Po     [7] BALINESE PANTI..BALINESE PAMENENG
! 1B61..1B6A     ; N  # So    [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
! 1B6B..1B73     ; N  # Mn     [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
! 1B74..1B7C     ; N  # So     [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
! 1B7D..1B7E     ; N  # Po     [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
! 1B80..1B81     ; N  # Mn     [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
! 1B82           ; N  # Mc         SUNDANESE SIGN PANGWISAD
! 1B83..1BA0     ; N  # Lo    [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
! 1BA1           ; N  # Mc         SUNDANESE CONSONANT SIGN PAMINGKAL
! 1BA2..1BA5     ; N  # Mn     [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
! 1BA6..1BA7     ; N  # Mc     [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
! 1BA8..1BA9     ; N  # Mn     [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
! 1BAA           ; N  # Mc         SUNDANESE SIGN PAMAAEH
! 1BAB..1BAD     ; N  # Mn     [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
! 1BAE..1BAF     ; N  # Lo     [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
! 1BB0..1BB9     ; N  # Nd    [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
! 1BBA..1BBF     ; N  # Lo     [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
! 1BC0..1BE5     ; N  # Lo    [38] BATAK LETTER A..BATAK LETTER U
! 1BE6           ; N  # Mn         BATAK SIGN TOMPI
! 1BE7           ; N  # Mc         BATAK VOWEL SIGN E
! 1BE8..1BE9     ; N  # Mn     [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
! 1BEA..1BEC     ; N  # Mc     [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
! 1BED           ; N  # Mn         BATAK VOWEL SIGN KARO O
! 1BEE           ; N  # Mc         BATAK VOWEL SIGN U
! 1BEF..1BF1     ; N  # Mn     [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
! 1BF2..1BF3     ; N  # Mc     [2] BATAK PANGOLAT..BATAK PANONGONAN
! 1BFC..1BFF     ; N  # Po     [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
! 1C00..1C23     ; N  # Lo    [36] LEPCHA LETTER KA..LEPCHA LETTER A
! 1C24..1C2B     ; N  # Mc     [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
! 1C2C..1C33     ; N  # Mn     [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
! 1C34..1C35     ; N  # Mc     [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
! 1C36..1C37     ; N  # Mn     [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
! 1C3B..1C3F     ; N  # Po     [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
! 1C40..1C49     ; N  # Nd    [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
! 1C4D..1C4F     ; N  # Lo     [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
! 1C50..1C59     ; N  # Nd    [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
! 1C5A..1C77     ; N  # Lo    [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
! 1C78..1C7D     ; N  # Lm     [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
! 1C7E..1C7F     ; N  # Po     [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
! 1C80..1C88     ; N  # Ll     [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
! 1C90..1CBA     ; N  # Lu    [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
! 1CBD..1CBF     ; N  # Lu     [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
! 1CC0..1CC7     ; N  # Po     [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
! 1CD0..1CD2     ; N  # Mn     [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
! 1CD3           ; N  # Po         VEDIC SIGN NIHSHVASA
! 1CD4..1CE0     ; N  # Mn    [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
! 1CE1           ; N  # Mc         VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
! 1CE2..1CE8     ; N  # Mn     [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
! 1CE9..1CEC     ; N  # Lo     [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
! 1CED           ; N  # Mn         VEDIC SIGN TIRYAK
! 1CEE..1CF3     ; N  # Lo     [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
! 1CF4           ; N  # Mn         VEDIC TONE CANDRA ABOVE
! 1CF5..1CF6     ; N  # Lo     [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
! 1CF7           ; N  # Mc         VEDIC SIGN ATIKRAMA
! 1CF8..1CF9     ; N  # Mn     [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
! 1CFA           ; N  # Lo         VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
! 1D00..1D2B     ; N  # Ll    [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
! 1D2C..1D6A     ; N  # Lm    [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
! 1D6B..1D77     ; N  # Ll    [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
! 1D78           ; N  # Lm         MODIFIER LETTER CYRILLIC EN
! 1D79..1D7F     ; N  # Ll     [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
! 1D80..1D9A     ; N  # Ll    [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
! 1D9B..1DBF     ; N  # Lm    [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
! 1DC0..1DFF     ; N  # Mn    [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
! 1E00..1EFF     ; N  # L&   [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
! 1F00..1F15     ; N  # L&    [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
! 1F18..1F1D     ; N  # Lu     [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
! 1F20..1F45     ; N  # L&    [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
! 1F48..1F4D     ; N  # Lu     [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
! 1F50..1F57     ; N  # Ll     [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
! 1F59           ; N  # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA
! 1F5B           ; N  # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
! 1F5D           ; N  # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
! 1F5F..1F7D     ; N  # L&    [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
! 1F80..1FB4     ; N  # L&    [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
! 1FB6..1FBC     ; N  # L&     [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
! 1FBD           ; N  # Sk         GREEK KORONIS
! 1FBE           ; N  # Ll         GREEK PROSGEGRAMMENI
! 1FBF..1FC1     ; N  # Sk     [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
! 1FC2..1FC4     ; N  # Ll     [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
! 1FC6..1FCC     ; N  # L&     [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
! 1FCD..1FCF     ; N  # Sk     [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
! 1FD0..1FD3     ; N  # Ll     [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
! 1FD6..1FDB     ; N  # L&     [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
! 1FDD..1FDF     ; N  # Sk     [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
! 1FE0..1FEC     ; N  # L&    [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
! 1FED..1FEF     ; N  # Sk     [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
! 1FF2..1FF4     ; N  # Ll     [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
! 1FF6..1FFC     ; N  # L&     [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
! 1FFD..1FFE     ; N  # Sk     [2] GREEK OXIA..GREEK DASIA
! 2000..200A     ; N  # Zs    [11] EN QUAD..HAIR SPACE
! 200B..200F     ; N  # Cf     [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
! 2010           ; A  # Pd         HYPHEN
! 2011..2012     ; N  # Pd     [2] NON-BREAKING HYPHEN..FIGURE DASH
! 2013..2015     ; A  # Pd     [3] EN DASH..HORIZONTAL BAR
! 2016           ; A  # Po         DOUBLE VERTICAL LINE
! 2017           ; N  # Po         DOUBLE LOW LINE
! 2018           ; A  # Pi         LEFT SINGLE QUOTATION MARK
! 2019           ; A  # Pf         RIGHT SINGLE QUOTATION MARK
! 201A           ; N  # Ps         SINGLE LOW-9 QUOTATION MARK
! 201B           ; N  # Pi         SINGLE HIGH-REVERSED-9 QUOTATION MARK
! 201C           ; A  # Pi         LEFT DOUBLE QUOTATION MARK
! 201D           ; A  # Pf         RIGHT DOUBLE QUOTATION MARK
! 201E           ; N  # Ps         DOUBLE LOW-9 QUOTATION MARK
! 201F           ; N  # Pi         DOUBLE HIGH-REVERSED-9 QUOTATION MARK
! 2020..2022     ; A  # Po     [3] DAGGER..BULLET
! 2023           ; N  # Po         TRIANGULAR BULLET
! 2024..2027     ; A  # Po     [4] ONE DOT LEADER..HYPHENATION POINT
! 2028           ; N  # Zl         LINE SEPARATOR
! 2029           ; N  # Zp         PARAGRAPH SEPARATOR
! 202A..202E     ; N  # Cf     [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
! 202F           ; N  # Zs         NARROW NO-BREAK SPACE
! 2030           ; A  # Po         PER MILLE SIGN
! 2031           ; N  # Po         PER TEN THOUSAND SIGN
! 2032..2033     ; A  # Po     [2] PRIME..DOUBLE PRIME
! 2034           ; N  # Po         TRIPLE PRIME
! 2035           ; A  # Po         REVERSED PRIME
! 2036..2038     ; N  # Po     [3] REVERSED DOUBLE PRIME..CARET
! 2039           ; N  # Pi         SINGLE LEFT-POINTING ANGLE QUOTATION MARK
! 203A           ; N  # Pf         SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
! 203B           ; A  # Po         REFERENCE MARK
! 203C..203D     ; N  # Po     [2] DOUBLE EXCLAMATION MARK..INTERROBANG
! 203E           ; A  # Po         OVERLINE
! 203F..2040     ; N  # Pc     [2] UNDERTIE..CHARACTER TIE
! 2041..2043     ; N  # Po     [3] CARET INSERTION POINT..HYPHEN BULLET
! 2044           ; N  # Sm         FRACTION SLASH
! 2045           ; N  # Ps         LEFT SQUARE BRACKET WITH QUILL
! 2046           ; N  # Pe         RIGHT SQUARE BRACKET WITH QUILL
! 2047..2051     ; N  # Po    [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
! 2052           ; N  # Sm         COMMERCIAL MINUS SIGN
! 2053           ; N  # Po         SWUNG DASH
! 2054           ; N  # Pc         INVERTED UNDERTIE
! 2055..205E     ; N  # Po    [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
! 205F           ; N  # Zs         MEDIUM MATHEMATICAL SPACE
! 2060..2064     ; N  # Cf     [5] WORD JOINER..INVISIBLE PLUS
! 2066..206F     ; N  # Cf    [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
! 2070           ; N  # No         SUPERSCRIPT ZERO
! 2071           ; N  # Lm         SUPERSCRIPT LATIN SMALL LETTER I
! 2074           ; A  # No         SUPERSCRIPT FOUR
! 2075..2079     ; N  # No     [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
! 207A..207C     ; N  # Sm     [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
! 207D           ; N  # Ps         SUPERSCRIPT LEFT PARENTHESIS
! 207E           ; N  # Pe         SUPERSCRIPT RIGHT PARENTHESIS
! 207F           ; A  # Lm         SUPERSCRIPT LATIN SMALL LETTER N
! 2080           ; N  # No         SUBSCRIPT ZERO
! 2081..2084     ; A  # No     [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
! 2085..2089     ; N  # No     [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
! 208A..208C     ; N  # Sm     [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
! 208D           ; N  # Ps         SUBSCRIPT LEFT PARENTHESIS
! 208E           ; N  # Pe         SUBSCRIPT RIGHT PARENTHESIS
! 2090..209C     ; N  # Lm    [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
! 20A0..20A8     ; N  # Sc     [9] EURO-CURRENCY SIGN..RUPEE SIGN
! 20A9           ; H  # Sc         WON SIGN
! 20AA..20AB     ; N  # Sc     [2] NEW SHEQEL SIGN..DONG SIGN
! 20AC           ; A  # Sc         EURO SIGN
! 20AD..20C0     ; N  # Sc    [20] KIP SIGN..SOM SIGN
! 20D0..20DC     ; N  # Mn    [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
! 20DD..20E0     ; N  # Me     [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
! 20E1           ; N  # Mn         COMBINING LEFT RIGHT ARROW ABOVE
! 20E2..20E4     ; N  # Me     [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
! 20E5..20F0     ; N  # Mn    [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
! 2100..2101     ; N  # So     [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
! 2102           ; N  # Lu         DOUBLE-STRUCK CAPITAL C
! 2103           ; A  # So         DEGREE CELSIUS
! 2104           ; N  # So         CENTRE LINE SYMBOL
! 2105           ; A  # So         CARE OF
! 2106           ; N  # So         CADA UNA
! 2107           ; N  # Lu         EULER CONSTANT
! 2108           ; N  # So         SCRUPLE
! 2109           ; A  # So         DEGREE FAHRENHEIT
! 210A..2112     ; N  # L&     [9] SCRIPT SMALL G..SCRIPT CAPITAL L
! 2113           ; A  # Ll         SCRIPT SMALL L
! 2114           ; N  # So         L B BAR SYMBOL
! 2115           ; N  # Lu         DOUBLE-STRUCK CAPITAL N
! 2116           ; A  # So         NUMERO SIGN
! 2117           ; N  # So         SOUND RECORDING COPYRIGHT
! 2118           ; N  # Sm         SCRIPT CAPITAL P
! 2119..211D     ; N  # Lu     [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
! 211E..2120     ; N  # So     [3] PRESCRIPTION TAKE..SERVICE MARK
! 2121..2122     ; A  # So     [2] TELEPHONE SIGN..TRADE MARK SIGN
! 2123           ; N  # So         VERSICLE
! 2124           ; N  # Lu         DOUBLE-STRUCK CAPITAL Z
! 2125           ; N  # So         OUNCE SIGN
! 2126           ; A  # Lu         OHM SIGN
! 2127           ; N  # So         INVERTED OHM SIGN
! 2128           ; N  # Lu         BLACK-LETTER CAPITAL Z
! 2129           ; N  # So         TURNED GREEK SMALL LETTER IOTA
! 212A           ; N  # Lu         KELVIN SIGN
! 212B           ; A  # Lu         ANGSTROM SIGN
! 212C..212D     ; N  # Lu     [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
! 212E           ; N  # So         ESTIMATED SYMBOL
! 212F..2134     ; N  # L&     [6] SCRIPT SMALL E..SCRIPT SMALL O
! 2135..2138     ; N  # Lo     [4] ALEF SYMBOL..DALET SYMBOL
! 2139           ; N  # Ll         INFORMATION SOURCE
! 213A..213B     ; N  # So     [2] ROTATED CAPITAL Q..FACSIMILE SIGN
! 213C..213F     ; N  # L&     [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
! 2140..2144     ; N  # Sm     [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
! 2145..2149     ; N  # L&     [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
! 214A           ; N  # So         PROPERTY LINE
! 214B           ; N  # Sm         TURNED AMPERSAND
! 214C..214D     ; N  # So     [2] PER SIGN..AKTIESELSKAB
! 214E           ; N  # Ll         TURNED SMALL F
! 214F           ; N  # So         SYMBOL FOR SAMARITAN SOURCE
! 2150..2152     ; N  # No     [3] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE TENTH
! 2153..2154     ; A  # No     [2] VULGAR FRACTION ONE THIRD..VULGAR FRACTION TWO THIRDS
! 2155..215A     ; N  # No     [6] VULGAR FRACTION ONE FIFTH..VULGAR FRACTION FIVE SIXTHS
! 215B..215E     ; A  # No     [4] VULGAR FRACTION ONE EIGHTH..VULGAR FRACTION SEVEN EIGHTHS
! 215F           ; N  # No         FRACTION NUMERATOR ONE
! 2160..216B     ; A  # Nl    [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
! 216C..216F     ; N  # Nl     [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
! 2170..2179     ; A  # Nl    [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
! 217A..2182     ; N  # Nl     [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
! 2183..2184     ; N  # L&     [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
! 2185..2188     ; N  # Nl     [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
! 2189           ; A  # No         VULGAR FRACTION ZERO THIRDS
! 218A..218B     ; N  # So     [2] TURNED DIGIT TWO..TURNED DIGIT THREE
! 2190..2194     ; A  # Sm     [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
! 2195..2199     ; A  # So     [5] UP DOWN ARROW..SOUTH WEST ARROW
! 219A..219B     ; N  # Sm     [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
! 219C..219F     ; N  # So     [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
! 21A0           ; N  # Sm         RIGHTWARDS TWO HEADED ARROW
! 21A1..21A2     ; N  # So     [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
! 21A3           ; N  # Sm         RIGHTWARDS ARROW WITH TAIL
! 21A4..21A5     ; N  # So     [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
! 21A6           ; N  # Sm         RIGHTWARDS ARROW FROM BAR
! 21A7..21AD     ; N  # So     [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
! 21AE           ; N  # Sm         LEFT RIGHT ARROW WITH STROKE
! 21AF..21B7     ; N  # So     [9] DOWNWARDS ZIGZAG ARROW..CLOCKWISE TOP SEMICIRCLE ARROW
! 21B8..21B9     ; A  # So     [2] NORTH WEST ARROW TO LONG BAR..LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
! 21BA..21CD     ; N  # So    [20] ANTICLOCKWISE OPEN CIRCLE ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
! 21CE..21CF     ; N  # Sm     [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
! 21D0..21D1     ; N  # So     [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
! 21D2           ; A  # Sm         RIGHTWARDS DOUBLE ARROW
! 21D3           ; N  # So         DOWNWARDS DOUBLE ARROW
! 21D4           ; A  # Sm         LEFT RIGHT DOUBLE ARROW
! 21D5..21E6     ; N  # So    [18] UP DOWN DOUBLE ARROW..LEFTWARDS WHITE ARROW
! 21E7           ; A  # So         UPWARDS WHITE ARROW
! 21E8..21F3     ; N  # So    [12] RIGHTWARDS WHITE ARROW..UP DOWN WHITE ARROW
! 21F4..21FF     ; N  # Sm    [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
! 2200           ; A  # Sm         FOR ALL
! 2201           ; N  # Sm         COMPLEMENT
! 2202..2203     ; A  # Sm     [2] PARTIAL DIFFERENTIAL..THERE EXISTS
! 2204..2206     ; N  # Sm     [3] THERE DOES NOT EXIST..INCREMENT
! 2207..2208     ; A  # Sm     [2] NABLA..ELEMENT OF
! 2209..220A     ; N  # Sm     [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
! 220B           ; A  # Sm         CONTAINS AS MEMBER
! 220C..220E     ; N  # Sm     [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
! 220F           ; A  # Sm         N-ARY PRODUCT
! 2210           ; N  # Sm         N-ARY COPRODUCT
! 2211           ; A  # Sm         N-ARY SUMMATION
! 2212..2214     ; N  # Sm     [3] MINUS SIGN..DOT PLUS
! 2215           ; A  # Sm         DIVISION SLASH
! 2216..2219     ; N  # Sm     [4] SET MINUS..BULLET OPERATOR
! 221A           ; A  # Sm         SQUARE ROOT
! 221B..221C     ; N  # Sm     [2] CUBE ROOT..FOURTH ROOT
! 221D..2220     ; A  # Sm     [4] PROPORTIONAL TO..ANGLE
! 2221..2222     ; N  # Sm     [2] MEASURED ANGLE..SPHERICAL ANGLE
! 2223           ; A  # Sm         DIVIDES
! 2224           ; N  # Sm         DOES NOT DIVIDE
! 2225           ; A  # Sm         PARALLEL TO
! 2226           ; N  # Sm         NOT PARALLEL TO
! 2227..222C     ; A  # Sm     [6] LOGICAL AND..DOUBLE INTEGRAL
! 222D           ; N  # Sm         TRIPLE INTEGRAL
! 222E           ; A  # Sm         CONTOUR INTEGRAL
! 222F..2233     ; N  # Sm     [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
! 2234..2237     ; A  # Sm     [4] THEREFORE..PROPORTION
! 2238..223B     ; N  # Sm     [4] DOT MINUS..HOMOTHETIC
! 223C..223D     ; A  # Sm     [2] TILDE OPERATOR..REVERSED TILDE
! 223E..2247     ; N  # Sm    [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
! 2248           ; A  # Sm         ALMOST EQUAL TO
! 2249..224B     ; N  # Sm     [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
! 224C           ; A  # Sm         ALL EQUAL TO
! 224D..2251     ; N  # Sm     [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
! 2252           ; A  # Sm         APPROXIMATELY EQUAL TO OR THE IMAGE OF
! 2253..225F     ; N  # Sm    [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
! 2260..2261     ; A  # Sm     [2] NOT EQUAL TO..IDENTICAL TO
! 2262..2263     ; N  # Sm     [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
! 2264..2267     ; A  # Sm     [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
! 2268..2269     ; N  # Sm     [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
! 226A..226B     ; A  # Sm     [2] MUCH LESS-THAN..MUCH GREATER-THAN
! 226C..226D     ; N  # Sm     [2] BETWEEN..NOT EQUIVALENT TO
! 226E..226F     ; A  # Sm     [2] NOT LESS-THAN..NOT GREATER-THAN
! 2270..2281     ; N  # Sm    [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
! 2282..2283     ; A  # Sm     [2] SUBSET OF..SUPERSET OF
! 2284..2285     ; N  # Sm     [2] NOT A SUBSET OF..NOT A SUPERSET OF
! 2286..2287     ; A  # Sm     [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
! 2288..2294     ; N  # Sm    [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
! 2295           ; A  # Sm         CIRCLED PLUS
! 2296..2298     ; N  # Sm     [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
! 2299           ; A  # Sm         CIRCLED DOT OPERATOR
! 229A..22A4     ; N  # Sm    [11] CIRCLED RING OPERATOR..DOWN TACK
! 22A5           ; A  # Sm         UP TACK
! 22A6..22BE     ; N  # Sm    [25] ASSERTION..RIGHT ANGLE WITH ARC
! 22BF           ; A  # Sm         RIGHT TRIANGLE
! 22C0..22FF     ; N  # Sm    [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP
! 2300..2307     ; N  # So     [8] DIAMETER SIGN..WAVY LINE
! 2308           ; N  # Ps         LEFT CEILING
! 2309           ; N  # Pe         RIGHT CEILING
! 230A           ; N  # Ps         LEFT FLOOR
! 230B           ; N  # Pe         RIGHT FLOOR
! 230C..2311     ; N  # So     [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
! 2312           ; A  # So         ARC
! 2313..2319     ; N  # So     [7] SEGMENT..TURNED NOT SIGN
! 231A..231B     ; W  # So     [2] WATCH..HOURGLASS
! 231C..231F     ; N  # So     [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
! 2320..2321     ; N  # Sm     [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
! 2322..2328     ; N  # So     [7] FROWN..KEYBOARD
! 2329           ; W  # Ps         LEFT-POINTING ANGLE BRACKET
! 232A           ; W  # Pe         RIGHT-POINTING ANGLE BRACKET
! 232B..237B     ; N  # So    [81] ERASE TO THE LEFT..NOT CHECK MARK
! 237C           ; N  # Sm         RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
! 237D..239A     ; N  # So    [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
! 239B..23B3     ; N  # Sm    [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
! 23B4..23DB     ; N  # So    [40] TOP SQUARE BRACKET..FUSE
! 23DC..23E1     ; N  # Sm     [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
! 23E2..23E8     ; N  # So     [7] WHITE TRAPEZIUM..DECIMAL EXPONENT SYMBOL
! 23E9..23EC     ; W  # So     [4] BLACK RIGHT-POINTING DOUBLE TRIANGLE..BLACK DOWN-POINTING DOUBLE TRIANGLE
! 23ED..23EF     ; N  # So     [3] BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
! 23F0           ; W  # So         ALARM CLOCK
! 23F1..23F2     ; N  # So     [2] STOPWATCH..TIMER CLOCK
! 23F3           ; W  # So         HOURGLASS WITH FLOWING SAND
! 23F4..23FF     ; N  # So    [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL
! 2400..2426     ; N  # So    [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
! 2440..244A     ; N  # So    [11] OCR HOOK..OCR DOUBLE BACKSLASH
! 2460..249B     ; A  # No    [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
! 249C..24E9     ; A  # So    [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
! 24EA           ; N  # No         CIRCLED DIGIT ZERO
! 24EB..24FF     ; A  # No    [21] NEGATIVE CIRCLED NUMBER ELEVEN..NEGATIVE CIRCLED DIGIT ZERO
! 2500..254B     ; A  # So    [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
! 254C..254F     ; N  # So     [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
! 2550..2573     ; A  # So    [36] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT DIAGONAL CROSS
! 2574..257F     ; N  # So    [12] BOX DRAWINGS LIGHT LEFT..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
! 2580..258F     ; A  # So    [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
! 2590..2591     ; N  # So     [2] RIGHT HALF BLOCK..LIGHT SHADE
! 2592..2595     ; A  # So     [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
! 2596..259F     ; N  # So    [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
! 25A0..25A1     ; A  # So     [2] BLACK SQUARE..WHITE SQUARE
! 25A2           ; N  # So         WHITE SQUARE WITH ROUNDED CORNERS
! 25A3..25A9     ; A  # So     [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
! 25AA..25B1     ; N  # So     [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
! 25B2..25B3     ; A  # So     [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
! 25B4..25B5     ; N  # So     [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
! 25B6           ; A  # So         BLACK RIGHT-POINTING TRIANGLE
! 25B7           ; A  # Sm         WHITE RIGHT-POINTING TRIANGLE
! 25B8..25BB     ; N  # So     [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
! 25BC..25BD     ; A  # So     [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
! 25BE..25BF     ; N  # So     [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
! 25C0           ; A  # So         BLACK LEFT-POINTING TRIANGLE
! 25C1           ; A  # Sm         WHITE LEFT-POINTING TRIANGLE
! 25C2..25C5     ; N  # So     [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
! 25C6..25C8     ; A  # So     [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
! 25C9..25CA     ; N  # So     [2] FISHEYE..LOZENGE
! 25CB           ; A  # So         WHITE CIRCLE
! 25CC..25CD     ; N  # So     [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
! 25CE..25D1     ; A  # So     [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
! 25D2..25E1     ; N  # So    [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
! 25E2..25E5     ; A  # So     [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
! 25E6..25EE     ; N  # So     [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
! 25EF           ; A  # So         LARGE CIRCLE
! 25F0..25F7     ; N  # So     [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
! 25F8..25FC     ; N  # Sm     [5] UPPER LEFT TRIANGLE..BLACK MEDIUM SQUARE
! 25FD..25FE     ; W  # Sm     [2] WHITE MEDIUM SMALL SQUARE..BLACK MEDIUM SMALL SQUARE
! 25FF           ; N  # Sm         LOWER RIGHT TRIANGLE
! 2600..2604     ; N  # So     [5] BLACK SUN WITH RAYS..COMET
! 2605..2606     ; A  # So     [2] BLACK STAR..WHITE STAR
! 2607..2608     ; N  # So     [2] LIGHTNING..THUNDERSTORM
! 2609           ; A  # So         SUN
! 260A..260D     ; N  # So     [4] ASCENDING NODE..OPPOSITION
! 260E..260F     ; A  # So     [2] BLACK TELEPHONE..WHITE TELEPHONE
! 2610..2613     ; N  # So     [4] BALLOT BOX..SALTIRE
! 2614..2615     ; W  # So     [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
! 2616..261B     ; N  # So     [6] WHITE SHOGI PIECE..BLACK RIGHT POINTING INDEX
! 261C           ; A  # So         WHITE LEFT POINTING INDEX
! 261D           ; N  # So         WHITE UP POINTING INDEX
! 261E           ; A  # So         WHITE RIGHT POINTING INDEX
! 261F..263F     ; N  # So    [33] WHITE DOWN POINTING INDEX..MERCURY
! 2640           ; A  # So         FEMALE SIGN
! 2641           ; N  # So         EARTH
! 2642           ; A  # So         MALE SIGN
! 2643..2647     ; N  # So     [5] JUPITER..PLUTO
! 2648..2653     ; W  # So    [12] ARIES..PISCES
! 2654..265F     ; N  # So    [12] WHITE CHESS KING..BLACK CHESS PAWN
! 2660..2661     ; A  # So     [2] BLACK SPADE SUIT..WHITE HEART SUIT
! 2662           ; N  # So         WHITE DIAMOND SUIT
! 2663..2665     ; A  # So     [3] BLACK CLUB SUIT..BLACK HEART SUIT
! 2666           ; N  # So         BLACK DIAMOND SUIT
! 2667..266A     ; A  # So     [4] WHITE CLUB SUIT..EIGHTH NOTE
! 266B           ; N  # So         BEAMED EIGHTH NOTES
! 266C..266D     ; A  # So     [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
! 266E           ; N  # So         MUSIC NATURAL SIGN
! 266F           ; A  # Sm         MUSIC SHARP SIGN
! 2670..267E     ; N  # So    [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
! 267F           ; W  # So         WHEELCHAIR SYMBOL
! 2680..2692     ; N  # So    [19] DIE FACE-1..HAMMER AND PICK
! 2693           ; W  # So         ANCHOR
! 2694..269D     ; N  # So    [10] CROSSED SWORDS..OUTLINED WHITE STAR
! 269E..269F     ; A  # So     [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
! 26A0           ; N  # So         WARNING SIGN
! 26A1           ; W  # So         HIGH VOLTAGE SIGN
! 26A2..26A9     ; N  # So     [8] DOUBLED FEMALE SIGN..HORIZONTAL MALE WITH STROKE SIGN
! 26AA..26AB     ; W  # So     [2] MEDIUM WHITE CIRCLE..MEDIUM BLACK CIRCLE
! 26AC..26BC     ; N  # So    [17] MEDIUM SMALL WHITE CIRCLE..SESQUIQUADRATE
! 26BD..26BE     ; W  # So     [2] SOCCER BALL..BASEBALL
! 26BF           ; A  # So         SQUARED KEY
! 26C0..26C3     ; N  # So     [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
! 26C4..26C5     ; W  # So     [2] SNOWMAN WITHOUT SNOW..SUN BEHIND CLOUD
! 26C6..26CD     ; A  # So     [8] RAIN..DISABLED CAR
! 26CE           ; W  # So         OPHIUCHUS
! 26CF..26D3     ; A  # So     [5] PICK..CHAINS
! 26D4           ; W  # So         NO ENTRY
! 26D5..26E1     ; A  # So    [13] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..RESTRICTED LEFT ENTRY-2
! 26E2           ; N  # So         ASTRONOMICAL SYMBOL FOR URANUS
! 26E3           ; A  # So         HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
! 26E4..26E7     ; N  # So     [4] PENTAGRAM..INVERTED PENTAGRAM
! 26E8..26E9     ; A  # So     [2] BLACK CROSS ON SHIELD..SHINTO SHRINE
! 26EA           ; W  # So         CHURCH
! 26EB..26F1     ; A  # So     [7] CASTLE..UMBRELLA ON GROUND
! 26F2..26F3     ; W  # So     [2] FOUNTAIN..FLAG IN HOLE
! 26F4           ; A  # So         FERRY
! 26F5           ; W  # So         SAILBOAT
! 26F6..26F9     ; A  # So     [4] SQUARE FOUR CORNERS..PERSON WITH BALL
! 26FA           ; W  # So         TENT
! 26FB..26FC     ; A  # So     [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
! 26FD           ; W  # So         FUEL PUMP
! 26FE..26FF     ; A  # So     [2] CUP ON BLACK SQUARE..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
! 2700..2704     ; N  # So     [5] BLACK SAFETY SCISSORS..WHITE SCISSORS
! 2705           ; W  # So         WHITE HEAVY CHECK MARK
! 2706..2709     ; N  # So     [4] TELEPHONE LOCATION SIGN..ENVELOPE
! 270A..270B     ; W  # So     [2] RAISED FIST..RAISED HAND
! 270C..2727     ; N  # So    [28] VICTORY HAND..WHITE FOUR POINTED STAR
! 2728           ; W  # So         SPARKLES
! 2729..273C     ; N  # So    [20] STRESS OUTLINED WHITE STAR..OPEN CENTRE TEARDROP-SPOKED ASTERISK
! 273D           ; A  # So         HEAVY TEARDROP-SPOKED ASTERISK
! 273E..274B     ; N  # So    [14] SIX PETALLED BLACK AND WHITE FLORETTE..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
! 274C           ; W  # So         CROSS MARK
! 274D           ; N  # So         SHADOWED WHITE CIRCLE
! 274E           ; W  # So         NEGATIVE SQUARED CROSS MARK
! 274F..2752     ; N  # So     [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
! 2753..2755     ; W  # So     [3] BLACK QUESTION MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT
! 2756           ; N  # So         BLACK DIAMOND MINUS WHITE X
! 2757           ; W  # So         HEAVY EXCLAMATION MARK SYMBOL
! 2758..2767     ; N  # So    [16] LIGHT VERTICAL BAR..ROTATED FLORAL HEART BULLET
! 2768           ; N  # Ps         MEDIUM LEFT PARENTHESIS ORNAMENT
! 2769           ; N  # Pe         MEDIUM RIGHT PARENTHESIS ORNAMENT
! 276A           ; N  # Ps         MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
! 276B           ; N  # Pe         MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
! 276C           ; N  # Ps         MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
! 276D           ; N  # Pe         MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
! 276E           ; N  # Ps         HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
! 276F           ; N  # Pe         HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
! 2770           ; N  # Ps         HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
! 2771           ; N  # Pe         HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
! 2772           ; N  # Ps         LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
! 2773           ; N  # Pe         LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
! 2774           ; N  # Ps         MEDIUM LEFT CURLY BRACKET ORNAMENT
! 2775           ; N  # Pe         MEDIUM RIGHT CURLY BRACKET ORNAMENT
! 2776..277F     ; A  # No    [10] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED NUMBER TEN
! 2780..2793     ; N  # No    [20] DINGBAT CIRCLED SANS-SERIF DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
! 2794           ; N  # So         HEAVY WIDE-HEADED RIGHTWARDS ARROW
! 2795..2797     ; W  # So     [3] HEAVY PLUS SIGN..HEAVY DIVISION SIGN
! 2798..27AF     ; N  # So    [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
! 27B0           ; W  # So         CURLY LOOP
! 27B1..27BE     ; N  # So    [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
! 27BF           ; W  # So         DOUBLE CURLY LOOP
! 27C0..27C4     ; N  # Sm     [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
! 27C5           ; N  # Ps         LEFT S-SHAPED BAG DELIMITER
! 27C6           ; N  # Pe         RIGHT S-SHAPED BAG DELIMITER
! 27C7..27E5     ; N  # Sm    [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
! 27E6           ; Na # Ps         MATHEMATICAL LEFT WHITE SQUARE BRACKET
! 27E7           ; Na # Pe         MATHEMATICAL RIGHT WHITE SQUARE BRACKET
! 27E8           ; Na # Ps         MATHEMATICAL LEFT ANGLE BRACKET
! 27E9           ; Na # Pe         MATHEMATICAL RIGHT ANGLE BRACKET
! 27EA           ; Na # Ps         MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
! 27EB           ; Na # Pe         MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
! 27EC           ; Na # Ps         MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
! 27ED           ; Na # Pe         MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
! 27EE           ; N  # Ps         MATHEMATICAL LEFT FLATTENED PARENTHESIS
! 27EF           ; N  # Pe         MATHEMATICAL RIGHT FLATTENED PARENTHESIS
! 27F0..27FF     ; N  # Sm    [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
! 2800..28FF     ; N  # So   [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
! 2900..297F     ; N  # Sm   [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL
! 2980..2982     ; N  # Sm     [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON
! 2983           ; N  # Ps         LEFT WHITE CURLY BRACKET
! 2984           ; N  # Pe         RIGHT WHITE CURLY BRACKET
! 2985           ; Na # Ps         LEFT WHITE PARENTHESIS
! 2986           ; Na # Pe         RIGHT WHITE PARENTHESIS
! 2987           ; N  # Ps         Z NOTATION LEFT IMAGE BRACKET
! 2988           ; N  # Pe         Z NOTATION RIGHT IMAGE BRACKET
! 2989           ; N  # Ps         Z NOTATION LEFT BINDING BRACKET
! 298A           ; N  # Pe         Z NOTATION RIGHT BINDING BRACKET
! 298B           ; N  # Ps         LEFT SQUARE BRACKET WITH UNDERBAR
! 298C           ; N  # Pe         RIGHT SQUARE BRACKET WITH UNDERBAR
! 298D           ; N  # Ps         LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
! 298E           ; N  # Pe         RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
! 298F           ; N  # Ps         LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
! 2990           ; N  # Pe         RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
! 2991           ; N  # Ps         LEFT ANGLE BRACKET WITH DOT
! 2992           ; N  # Pe         RIGHT ANGLE BRACKET WITH DOT
! 2993           ; N  # Ps         LEFT ARC LESS-THAN BRACKET
! 2994           ; N  # Pe         RIGHT ARC GREATER-THAN BRACKET
! 2995           ; N  # Ps         DOUBLE LEFT ARC GREATER-THAN BRACKET
! 2996           ; N  # Pe         DOUBLE RIGHT ARC LESS-THAN BRACKET
! 2997           ; N  # Ps         LEFT BLACK TORTOISE SHELL BRACKET
! 2998           ; N  # Pe         RIGHT BLACK TORTOISE SHELL BRACKET
! 2999..29D7     ; N  # Sm    [63] DOTTED FENCE..BLACK HOURGLASS
! 29D8           ; N  # Ps         LEFT WIGGLY FENCE
! 29D9           ; N  # Pe         RIGHT WIGGLY FENCE
! 29DA           ; N  # Ps         LEFT DOUBLE WIGGLY FENCE
! 29DB           ; N  # Pe         RIGHT DOUBLE WIGGLY FENCE
! 29DC..29FB     ; N  # Sm    [32] INCOMPLETE INFINITY..TRIPLE PLUS
! 29FC           ; N  # Ps         LEFT-POINTING CURVED ANGLE BRACKET
! 29FD           ; N  # Pe         RIGHT-POINTING CURVED ANGLE BRACKET
! 29FE..29FF     ; N  # Sm     [2] TINY..MINY
! 2A00..2AFF     ; N  # Sm   [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR
! 2B00..2B1A     ; N  # So    [27] NORTH EAST WHITE ARROW..DOTTED SQUARE
! 2B1B..2B1C     ; W  # So     [2] BLACK LARGE SQUARE..WHITE LARGE SQUARE
! 2B1D..2B2F     ; N  # So    [19] BLACK VERY SMALL SQUARE..WHITE VERTICAL ELLIPSE
! 2B30..2B44     ; N  # Sm    [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
! 2B45..2B46     ; N  # So     [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
! 2B47..2B4C     ; N  # Sm     [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
! 2B4D..2B4F     ; N  # So     [3] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW
! 2B50           ; W  # So         WHITE MEDIUM STAR
! 2B51..2B54     ; N  # So     [4] BLACK SMALL STAR..WHITE RIGHT-POINTING PENTAGON
! 2B55           ; W  # So         HEAVY LARGE CIRCLE
! 2B56..2B59     ; A  # So     [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE
! 2B5A..2B73     ; N  # So    [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
! 2B76..2B95     ; N  # So    [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
! 2B97..2BFF     ; N  # So   [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
! 2C00..2C5F     ; N  # L&    [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
! 2C60..2C7B     ; N  # L&    [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
! 2C7C..2C7D     ; N  # Lm     [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
! 2C7E..2C7F     ; N  # Lu     [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
! 2C80..2CE4     ; N  # L&   [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
! 2CE5..2CEA     ; N  # So     [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
! 2CEB..2CEE     ; N  # L&     [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
! 2CEF..2CF1     ; N  # Mn     [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
! 2CF2..2CF3     ; N  # L&     [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
! 2CF9..2CFC     ; N  # Po     [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
! 2CFD           ; N  # No         COPTIC FRACTION ONE HALF
! 2CFE..2CFF     ; N  # Po     [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
! 2D00..2D25     ; N  # Ll    [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
! 2D27           ; N  # Ll         GEORGIAN SMALL LETTER YN
! 2D2D           ; N  # Ll         GEORGIAN SMALL LETTER AEN
! 2D30..2D67     ; N  # Lo    [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
! 2D6F           ; N  # Lm         TIFINAGH MODIFIER LETTER LABIALIZATION MARK
! 2D70           ; N  # Po         TIFINAGH SEPARATOR MARK
! 2D7F           ; N  # Mn         TIFINAGH CONSONANT JOINER
! 2D80..2D96     ; N  # Lo    [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
! 2DA0..2DA6     ; N  # Lo     [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
! 2DA8..2DAE     ; N  # Lo     [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
! 2DB0..2DB6     ; N  # Lo     [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
! 2DB8..2DBE     ; N  # Lo     [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
! 2DC0..2DC6     ; N  # Lo     [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
! 2DC8..2DCE     ; N  # Lo     [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
! 2DD0..2DD6     ; N  # Lo     [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
! 2DD8..2DDE     ; N  # Lo     [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
! 2DE0..2DFF     ; N  # Mn    [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
! 2E00..2E01     ; N  # Po     [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
! 2E02           ; N  # Pi         LEFT SUBSTITUTION BRACKET
! 2E03           ; N  # Pf         RIGHT SUBSTITUTION BRACKET
! 2E04           ; N  # Pi         LEFT DOTTED SUBSTITUTION BRACKET
! 2E05           ; N  # Pf         RIGHT DOTTED SUBSTITUTION BRACKET
! 2E06..2E08     ; N  # Po     [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
! 2E09           ; N  # Pi         LEFT TRANSPOSITION BRACKET
! 2E0A           ; N  # Pf         RIGHT TRANSPOSITION BRACKET
! 2E0B           ; N  # Po         RAISED SQUARE
! 2E0C           ; N  # Pi         LEFT RAISED OMISSION BRACKET
! 2E0D           ; N  # Pf         RIGHT RAISED OMISSION BRACKET
! 2E0E..2E16     ; N  # Po     [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
! 2E17           ; N  # Pd         DOUBLE OBLIQUE HYPHEN
! 2E18..2E19     ; N  # Po     [2] INVERTED INTERROBANG..PALM BRANCH
! 2E1A           ; N  # Pd         HYPHEN WITH DIAERESIS
! 2E1B           ; N  # Po         TILDE WITH RING ABOVE
! 2E1C           ; N  # Pi         LEFT LOW PARAPHRASE BRACKET
! 2E1D           ; N  # Pf         RIGHT LOW PARAPHRASE BRACKET
! 2E1E..2E1F     ; N  # Po     [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
! 2E20           ; N  # Pi         LEFT VERTICAL BAR WITH QUILL
! 2E21           ; N  # Pf         RIGHT VERTICAL BAR WITH QUILL
! 2E22           ; N  # Ps         TOP LEFT HALF BRACKET
! 2E23           ; N  # Pe         TOP RIGHT HALF BRACKET
! 2E24           ; N  # Ps         BOTTOM LEFT HALF BRACKET
! 2E25           ; N  # Pe         BOTTOM RIGHT HALF BRACKET
! 2E26           ; N  # Ps         LEFT SIDEWAYS U BRACKET
! 2E27           ; N  # Pe         RIGHT SIDEWAYS U BRACKET
! 2E28           ; N  # Ps         LEFT DOUBLE PARENTHESIS
! 2E29           ; N  # Pe         RIGHT DOUBLE PARENTHESIS
! 2E2A..2E2E     ; N  # Po     [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
! 2E2F           ; N  # Lm         VERTICAL TILDE
! 2E30..2E39     ; N  # Po    [10] RING POINT..TOP HALF SECTION SIGN
! 2E3A..2E3B     ; N  # Pd     [2] TWO-EM DASH..THREE-EM DASH
! 2E3C..2E3F     ; N  # Po     [4] STENOGRAPHIC FULL STOP..CAPITULUM
! 2E40           ; N  # Pd         DOUBLE HYPHEN
! 2E41           ; N  # Po         REVERSED COMMA
! 2E42           ; N  # Ps         DOUBLE LOW-REVERSED-9 QUOTATION MARK
! 2E43..2E4F     ; N  # Po    [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
! 2E50..2E51     ; N  # So     [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
! 2E52..2E54     ; N  # Po     [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
! 2E55           ; N  # Ps         LEFT SQUARE BRACKET WITH STROKE
! 2E56           ; N  # Pe         RIGHT SQUARE BRACKET WITH STROKE
! 2E57           ; N  # Ps         LEFT SQUARE BRACKET WITH DOUBLE STROKE
! 2E58           ; N  # Pe         RIGHT SQUARE BRACKET WITH DOUBLE STROKE
! 2E59           ; N  # Ps         TOP HALF LEFT PARENTHESIS
! 2E5A           ; N  # Pe         TOP HALF RIGHT PARENTHESIS
! 2E5B           ; N  # Ps         BOTTOM HALF LEFT PARENTHESIS
! 2E5C           ; N  # Pe         BOTTOM HALF RIGHT PARENTHESIS
! 2E5D           ; N  # Pd         OBLIQUE HYPHEN
! 2E80..2E99     ; W  # So    [26] CJK RADICAL REPEAT..CJK RADICAL RAP
! 2E9B..2EF3     ; W  # So    [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
! 2F00..2FD5     ; W  # So   [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
! 2FF0..2FFF     ; W  # So    [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
! 3000           ; F  # Zs         IDEOGRAPHIC SPACE
! 3001..3003     ; W  # Po     [3] IDEOGRAPHIC COMMA..DITTO MARK
! 3004           ; W  # So         JAPANESE INDUSTRIAL STANDARD SYMBOL
! 3005           ; W  # Lm         IDEOGRAPHIC ITERATION MARK
! 3006           ; W  # Lo         IDEOGRAPHIC CLOSING MARK
! 3007           ; W  # Nl         IDEOGRAPHIC NUMBER ZERO
! 3008           ; W  # Ps         LEFT ANGLE BRACKET
! 3009           ; W  # Pe         RIGHT ANGLE BRACKET
! 300A           ; W  # Ps         LEFT DOUBLE ANGLE BRACKET
! 300B           ; W  # Pe         RIGHT DOUBLE ANGLE BRACKET
! 300C           ; W  # Ps         LEFT CORNER BRACKET
! 300D           ; W  # Pe         RIGHT CORNER BRACKET
! 300E           ; W  # Ps         LEFT WHITE CORNER BRACKET
! 300F           ; W  # Pe         RIGHT WHITE CORNER BRACKET
! 3010           ; W  # Ps         LEFT BLACK LENTICULAR BRACKET
! 3011           ; W  # Pe         RIGHT BLACK LENTICULAR BRACKET
! 3012..3013     ; W  # So     [2] POSTAL MARK..GETA MARK
! 3014           ; W  # Ps         LEFT TORTOISE SHELL BRACKET
! 3015           ; W  # Pe         RIGHT TORTOISE SHELL BRACKET
! 3016           ; W  # Ps         LEFT WHITE LENTICULAR BRACKET
! 3017           ; W  # Pe         RIGHT WHITE LENTICULAR BRACKET
! 3018           ; W  # Ps         LEFT WHITE TORTOISE SHELL BRACKET
! 3019           ; W  # Pe         RIGHT WHITE TORTOISE SHELL BRACKET
! 301A           ; W  # Ps         LEFT WHITE SQUARE BRACKET
! 301B           ; W  # Pe         RIGHT WHITE SQUARE BRACKET
! 301C           ; W  # Pd         WAVE DASH
! 301D           ; W  # Ps         REVERSED DOUBLE PRIME QUOTATION MARK
! 301E..301F     ; W  # Pe     [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
! 3020           ; W  # So         POSTAL MARK FACE
! 3021..3029     ; W  # Nl     [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
! 302A..302D     ; W  # Mn     [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
! 302E..302F     ; W  # Mc     [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
! 3030           ; W  # Pd         WAVY DASH
! 3031..3035     ; W  # Lm     [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
! 3036..3037     ; W  # So     [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
! 3038..303A     ; W  # Nl     [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
! 303B           ; W  # Lm         VERTICAL IDEOGRAPHIC ITERATION MARK
! 303C           ; W  # Lo         MASU MARK
! 303D           ; W  # Po         PART ALTERNATION MARK
! 303E           ; W  # So         IDEOGRAPHIC VARIATION INDICATOR
! 303F           ; N  # So         IDEOGRAPHIC HALF FILL SPACE
! 3041..3096     ; W  # Lo    [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
! 3099..309A     ; W  # Mn     [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
! 309B..309C     ; W  # Sk     [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
! 309D..309E     ; W  # Lm     [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
! 309F           ; W  # Lo         HIRAGANA DIGRAPH YORI
! 30A0           ; W  # Pd         KATAKANA-HIRAGANA DOUBLE HYPHEN
! 30A1..30FA     ; W  # Lo    [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
! 30FB           ; W  # Po         KATAKANA MIDDLE DOT
! 30FC..30FE     ; W  # Lm     [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
! 30FF           ; W  # Lo         KATAKANA DIGRAPH KOTO
! 3105..312F     ; W  # Lo    [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
! 3131..318E     ; W  # Lo    [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
! 3190..3191     ; W  # So     [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
! 3192..3195     ; W  # No     [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
! 3196..319F     ; W  # So    [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
! 31A0..31BF     ; W  # Lo    [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
! 31C0..31E3     ; W  # So    [36] CJK STROKE T..CJK STROKE Q
! 31EF           ; W  # So         IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
! 31F0..31FF     ; W  # Lo    [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
! 3200..321E     ; W  # So    [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
! 3220..3229     ; W  # No    [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
! 322A..3247     ; W  # So    [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
! 3248..324F     ; A  # No     [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
! 3250           ; W  # So         PARTNERSHIP SIGN
! 3251..325F     ; W  # No    [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
! 3260..327F     ; W  # So    [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
! 3280..3289     ; W  # No    [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
! 328A..32B0     ; W  # So    [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
! 32B1..32BF     ; W  # No    [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
! 32C0..32FF     ; W  # So    [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA
! 3300..33FF     ; W  # So   [256] SQUARE APAATO..SQUARE GAL
! 3400..4DBF     ; W  # Lo  [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
! 4DC0..4DFF     ; N  # So    [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
! 4E00..9FFF     ; W  # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
! A000..A014     ; W  # Lo    [21] YI SYLLABLE IT..YI SYLLABLE E
! A015           ; W  # Lm         YI SYLLABLE WU
! A016..A48C     ; W  # Lo  [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
! A490..A4C6     ; W  # So    [55] YI RADICAL QOT..YI RADICAL KE
! A4D0..A4F7     ; N  # Lo    [40] LISU LETTER BA..LISU LETTER OE
! A4F8..A4FD     ; N  # Lm     [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
! A4FE..A4FF     ; N  # Po     [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
! A500..A60B     ; N  # Lo   [268] VAI SYLLABLE EE..VAI SYLLABLE NG
! A60C           ; N  # Lm         VAI SYLLABLE LENGTHENER
! A60D..A60F     ; N  # Po     [3] VAI COMMA..VAI QUESTION MARK
! A610..A61F     ; N  # Lo    [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
! A620..A629     ; N  # Nd    [10] VAI DIGIT ZERO..VAI DIGIT NINE
! A62A..A62B     ; N  # Lo     [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
! A640..A66D     ; N  # L&    [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
! A66E           ; N  # Lo         CYRILLIC LETTER MULTIOCULAR O
! A66F           ; N  # Mn         COMBINING CYRILLIC VZMET
! A670..A672     ; N  # Me     [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
! A673           ; N  # Po         SLAVONIC ASTERISK
! A674..A67D     ; N  # Mn    [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
! A67E           ; N  # Po         CYRILLIC KAVYKA
! A67F           ; N  # Lm         CYRILLIC PAYEROK
! A680..A69B     ; N  # L&    [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
! A69C..A69D     ; N  # Lm     [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
! A69E..A69F     ; N  # Mn     [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
! A6A0..A6E5     ; N  # Lo    [70] BAMUM LETTER A..BAMUM LETTER KI
! A6E6..A6EF     ; N  # Nl    [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
! A6F0..A6F1     ; N  # Mn     [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
! A6F2..A6F7     ; N  # Po     [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
! A700..A716     ; N  # Sk    [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
! A717..A71F     ; N  # Lm     [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
! A720..A721     ; N  # Sk     [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
! A722..A76F     ; N  # L&    [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
! A770           ; N  # Lm         MODIFIER LETTER US
! A771..A787     ; N  # L&    [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
! A788           ; N  # Lm         MODIFIER LETTER LOW CIRCUMFLEX ACCENT
! A789..A78A     ; N  # Sk     [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
! A78B..A78E     ; N  # L&     [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
! A78F           ; N  # Lo         LATIN LETTER SINOLOGICAL DOT
! A790..A7CA     ; N  # L&    [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
! A7D0..A7D1     ; N  # L&     [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
! A7D3           ; N  # Ll         LATIN SMALL LETTER DOUBLE THORN
! A7D5..A7D9     ; N  # L&     [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
! A7F2..A7F4     ; N  # Lm     [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
! A7F5..A7F6     ; N  # L&     [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
! A7F7           ; N  # Lo         LATIN EPIGRAPHIC LETTER SIDEWAYS I
! A7F8..A7F9     ; N  # Lm     [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
! A7FA           ; N  # Ll         LATIN LETTER SMALL CAPITAL TURNED M
! A7FB..A7FF     ; N  # Lo     [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
! A800..A801     ; N  # Lo     [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
! A802           ; N  # Mn         SYLOTI NAGRI SIGN DVISVARA
! A803..A805     ; N  # Lo     [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
! A806           ; N  # Mn         SYLOTI NAGRI SIGN HASANTA
! A807..A80A     ; N  # Lo     [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
! A80B           ; N  # Mn         SYLOTI NAGRI SIGN ANUSVARA
! A80C..A822     ; N  # Lo    [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
! A823..A824     ; N  # Mc     [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
! A825..A826     ; N  # Mn     [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
! A827           ; N  # Mc         SYLOTI NAGRI VOWEL SIGN OO
! A828..A82B     ; N  # So     [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
! A82C           ; N  # Mn         SYLOTI NAGRI SIGN ALTERNATE HASANTA
! A830..A835     ; N  # No     [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
! A836..A837     ; N  # So     [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
! A838           ; N  # Sc         NORTH INDIC RUPEE MARK
! A839           ; N  # So         NORTH INDIC QUANTITY MARK
! A840..A873     ; N  # Lo    [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
! A874..A877     ; N  # Po     [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
! A880..A881     ; N  # Mc     [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
! A882..A8B3     ; N  # Lo    [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
! A8B4..A8C3     ; N  # Mc    [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
! A8C4..A8C5     ; N  # Mn     [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
! A8CE..A8CF     ; N  # Po     [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
! A8D0..A8D9     ; N  # Nd    [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
! A8E0..A8F1     ; N  # Mn    [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
! A8F2..A8F7     ; N  # Lo     [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
! A8F8..A8FA     ; N  # Po     [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
! A8FB           ; N  # Lo         DEVANAGARI HEADSTROKE
! A8FC           ; N  # Po         DEVANAGARI SIGN SIDDHAM
! A8FD..A8FE     ; N  # Lo     [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
! A8FF           ; N  # Mn         DEVANAGARI VOWEL SIGN AY
! A900..A909     ; N  # Nd    [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
! A90A..A925     ; N  # Lo    [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
! A926..A92D     ; N  # Mn     [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
! A92E..A92F     ; N  # Po     [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
! A930..A946     ; N  # Lo    [23] REJANG LETTER KA..REJANG LETTER A
! A947..A951     ; N  # Mn    [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
! A952..A953     ; N  # Mc     [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
! A95F           ; N  # Po         REJANG SECTION MARK
! A960..A97C     ; W  # Lo    [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
! A980..A982     ; N  # Mn     [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
! A983           ; N  # Mc         JAVANESE SIGN WIGNYAN
! A984..A9B2     ; N  # Lo    [47] JAVANESE LETTER A..JAVANESE LETTER HA
! A9B3           ; N  # Mn         JAVANESE SIGN CECAK TELU
! A9B4..A9B5     ; N  # Mc     [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
! A9B6..A9B9     ; N  # Mn     [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
! A9BA..A9BB     ; N  # Mc     [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
! A9BC..A9BD     ; N  # Mn     [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
! A9BE..A9C0     ; N  # Mc     [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
! A9C1..A9CD     ; N  # Po    [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
! A9CF           ; N  # Lm         JAVANESE PANGRANGKEP
! A9D0..A9D9     ; N  # Nd    [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
! A9DE..A9DF     ; N  # Po     [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
! A9E0..A9E4     ; N  # Lo     [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
! A9E5           ; N  # Mn         MYANMAR SIGN SHAN SAW
! A9E6           ; N  # Lm         MYANMAR MODIFIER LETTER SHAN REDUPLICATION
! A9E7..A9EF     ; N  # Lo     [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
! A9F0..A9F9     ; N  # Nd    [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
! A9FA..A9FE     ; N  # Lo     [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
! AA00..AA28     ; N  # Lo    [41] CHAM LETTER A..CHAM LETTER HA
! AA29..AA2E     ; N  # Mn     [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
! AA2F..AA30     ; N  # Mc     [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
! AA31..AA32     ; N  # Mn     [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
! AA33..AA34     ; N  # Mc     [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
! AA35..AA36     ; N  # Mn     [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
! AA40..AA42     ; N  # Lo     [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
! AA43           ; N  # Mn         CHAM CONSONANT SIGN FINAL NG
! AA44..AA4B     ; N  # Lo     [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
! AA4C           ; N  # Mn         CHAM CONSONANT SIGN FINAL M
! AA4D           ; N  # Mc         CHAM CONSONANT SIGN FINAL H
! AA50..AA59     ; N  # Nd    [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
! AA5C..AA5F     ; N  # Po     [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
! AA60..AA6F     ; N  # Lo    [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
! AA70           ; N  # Lm         MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
! AA71..AA76     ; N  # Lo     [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
! AA77..AA79     ; N  # So     [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
! AA7A           ; N  # Lo         MYANMAR LETTER AITON RA
! AA7B           ; N  # Mc         MYANMAR SIGN PAO KAREN TONE
! AA7C           ; N  # Mn         MYANMAR SIGN TAI LAING TONE-2
! AA7D           ; N  # Mc         MYANMAR SIGN TAI LAING TONE-5
! AA7E..AA7F     ; N  # Lo     [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
! AA80..AAAF     ; N  # Lo    [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
! AAB0           ; N  # Mn         TAI VIET MAI KANG
! AAB1           ; N  # Lo         TAI VIET VOWEL AA
! AAB2..AAB4     ; N  # Mn     [3] TAI VIET VOWEL I..TAI VIET VOWEL U
! AAB5..AAB6     ; N  # Lo     [2] TAI VIET VOWEL E..TAI VIET VOWEL O
! AAB7..AAB8     ; N  # Mn     [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
! AAB9..AABD     ; N  # Lo     [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
! AABE..AABF     ; N  # Mn     [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
! AAC0           ; N  # Lo         TAI VIET TONE MAI NUENG
! AAC1           ; N  # Mn         TAI VIET TONE MAI THO
! AAC2           ; N  # Lo         TAI VIET TONE MAI SONG
! AADB..AADC     ; N  # Lo     [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
! AADD           ; N  # Lm         TAI VIET SYMBOL SAM
! AADE..AADF     ; N  # Po     [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
! AAE0..AAEA     ; N  # Lo    [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
! AAEB           ; N  # Mc         MEETEI MAYEK VOWEL SIGN II
! AAEC..AAED     ; N  # Mn     [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
! AAEE..AAEF     ; N  # Mc     [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
! AAF0..AAF1     ; N  # Po     [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
! AAF2           ; N  # Lo         MEETEI MAYEK ANJI
! AAF3..AAF4     ; N  # Lm     [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
! AAF5           ; N  # Mc         MEETEI MAYEK VOWEL SIGN VISARGA
! AAF6           ; N  # Mn         MEETEI MAYEK VIRAMA
! AB01..AB06     ; N  # Lo     [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
! AB09..AB0E     ; N  # Lo     [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
! AB11..AB16     ; N  # Lo     [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
! AB20..AB26     ; N  # Lo     [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
! AB28..AB2E     ; N  # Lo     [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
! AB30..AB5A     ; N  # Ll    [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
! AB5B           ; N  # Sk         MODIFIER BREVE WITH INVERTED BREVE
! AB5C..AB5F     ; N  # Lm     [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
! AB60..AB68     ; N  # Ll     [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
! AB69           ; N  # Lm         MODIFIER LETTER SMALL TURNED W
! AB6A..AB6B     ; N  # Sk     [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
! AB70..ABBF     ; N  # Ll    [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
! ABC0..ABE2     ; N  # Lo    [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
! ABE3..ABE4     ; N  # Mc     [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
! ABE5           ; N  # Mn         MEETEI MAYEK VOWEL SIGN ANAP
! ABE6..ABE7     ; N  # Mc     [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
! ABE8           ; N  # Mn         MEETEI MAYEK VOWEL SIGN UNAP
! ABE9..ABEA     ; N  # Mc     [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
! ABEB           ; N  # Po         MEETEI MAYEK CHEIKHEI
! ABEC           ; N  # Mc         MEETEI MAYEK LUM IYEK
! ABED           ; N  # Mn         MEETEI MAYEK APUN IYEK
! ABF0..ABF9     ; N  # Nd    [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
! AC00..D7A3     ; W  # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
! D7B0..D7C6     ; N  # Lo    [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
! D7CB..D7FB     ; N  # Lo    [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
! D800..DB7F     ; N  # Cs   [896] <surrogate-D800>..<surrogate-DB7F>
! DB80..DBFF     ; N  # Cs   [128] <surrogate-DB80>..<surrogate-DBFF>
! DC00..DFFF     ; N  # Cs  [1024] <surrogate-DC00>..<surrogate-DFFF>
! E000..F8FF     ; A  # Co  [6400] <private-use-E000>..<private-use-F8FF>
! F900..FA6D     ; W  # Lo   [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
! FA6E..FA6F     ; W  # Cn     [2] <reserved-FA6E>..<reserved-FA6F>
! FA70..FAD9     ; W  # Lo   [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
! FADA..FAFF     ; W  # Cn    [38] <reserved-FADA>..<reserved-FAFF>
! FB00..FB06     ; N  # Ll     [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
! FB13..FB17     ; N  # Ll     [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
! FB1D           ; N  # Lo         HEBREW LETTER YOD WITH HIRIQ
! FB1E           ; N  # Mn         HEBREW POINT JUDEO-SPANISH VARIKA
! FB1F..FB28     ; N  # Lo    [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
! FB29           ; N  # Sm         HEBREW LETTER ALTERNATIVE PLUS SIGN
! FB2A..FB36     ; N  # Lo    [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
! FB38..FB3C     ; N  # Lo     [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
! FB3E           ; N  # Lo         HEBREW LETTER MEM WITH DAGESH
! FB40..FB41     ; N  # Lo     [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
! FB43..FB44     ; N  # Lo     [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
! FB46..FB4F     ; N  # Lo    [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
! FB50..FBB1     ; N  # Lo    [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
! FBB2..FBC2     ; N  # Sk    [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
! FBD3..FD3D     ; N  # Lo   [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
! FD3E           ; N  # Pe         ORNATE LEFT PARENTHESIS
! FD3F           ; N  # Ps         ORNATE RIGHT PARENTHESIS
! FD40..FD4F     ; N  # So    [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
! FD50..FD8F     ; N  # Lo    [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
! FD92..FDC7     ; N  # Lo    [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
! FDCF           ; N  # So         ARABIC LIGATURE SALAAMUHU ALAYNAA
! FDF0..FDFB     ; N  # Lo    [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
! FDFC           ; N  # Sc         RIAL SIGN
! FDFD..FDFF     ; N  # So     [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
! FE00..FE0F     ; A  # Mn    [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
! FE10..FE16     ; W  # Po     [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
! FE17           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
! FE18           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
! FE19           ; W  # Po         PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
! FE20..FE2F     ; N  # Mn    [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
! FE30           ; W  # Po         PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
! FE31..FE32     ; W  # Pd     [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
! FE33..FE34     ; W  # Pc     [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
! FE35           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
! FE36           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
! FE37           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
! FE38           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
! FE39           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
! FE3A           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
! FE3B           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
! FE3C           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
! FE3D           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
! FE3E           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
! FE3F           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
! FE40           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
! FE41           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
! FE42           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
! FE43           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
! FE44           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
! FE45..FE46     ; W  # Po     [2] SESAME DOT..WHITE SESAME DOT
! FE47           ; W  # Ps         PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
! FE48           ; W  # Pe         PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
! FE49..FE4C     ; W  # Po     [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
! FE4D..FE4F     ; W  # Pc     [3] DASHED LOW LINE..WAVY LOW LINE
! FE50..FE52     ; W  # Po     [3] SMALL COMMA..SMALL FULL STOP
! FE54..FE57     ; W  # Po     [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
! FE58           ; W  # Pd         SMALL EM DASH
! FE59           ; W  # Ps         SMALL LEFT PARENTHESIS
! FE5A           ; W  # Pe         SMALL RIGHT PARENTHESIS
! FE5B           ; W  # Ps         SMALL LEFT CURLY BRACKET
! FE5C           ; W  # Pe         SMALL RIGHT CURLY BRACKET
! FE5D           ; W  # Ps         SMALL LEFT TORTOISE SHELL BRACKET
! FE5E           ; W  # Pe         SMALL RIGHT TORTOISE SHELL BRACKET
! FE5F..FE61     ; W  # Po     [3] SMALL NUMBER SIGN..SMALL ASTERISK
! FE62           ; W  # Sm         SMALL PLUS SIGN
! FE63           ; W  # Pd         SMALL HYPHEN-MINUS
! FE64..FE66     ; W  # Sm     [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
! FE68           ; W  # Po         SMALL REVERSE SOLIDUS
! FE69           ; W  # Sc         SMALL DOLLAR SIGN
! FE6A..FE6B     ; W  # Po     [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
! FE70..FE74     ; N  # Lo     [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
! FE76..FEFC     ; N  # Lo   [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
! FEFF           ; N  # Cf         ZERO WIDTH NO-BREAK SPACE
! FF01..FF03     ; F  # Po     [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
! FF04           ; F  # Sc         FULLWIDTH DOLLAR SIGN
! FF05..FF07     ; F  # Po     [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
! FF08           ; F  # Ps         FULLWIDTH LEFT PARENTHESIS
! FF09           ; F  # Pe         FULLWIDTH RIGHT PARENTHESIS
! FF0A           ; F  # Po         FULLWIDTH ASTERISK
! FF0B           ; F  # Sm         FULLWIDTH PLUS SIGN
! FF0C           ; F  # Po         FULLWIDTH COMMA
! FF0D           ; F  # Pd         FULLWIDTH HYPHEN-MINUS
! FF0E..FF0F     ; F  # Po     [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
! FF10..FF19     ; F  # Nd    [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
! FF1A..FF1B     ; F  # Po     [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
! FF1C..FF1E     ; F  # Sm     [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
! FF1F..FF20     ; F  # Po     [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
! FF21..FF3A     ; F  # Lu    [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
! FF3B           ; F  # Ps         FULLWIDTH LEFT SQUARE BRACKET
! FF3C           ; F  # Po         FULLWIDTH REVERSE SOLIDUS
! FF3D           ; F  # Pe         FULLWIDTH RIGHT SQUARE BRACKET
! FF3E           ; F  # Sk         FULLWIDTH CIRCUMFLEX ACCENT
! FF3F           ; F  # Pc         FULLWIDTH LOW LINE
! FF40           ; F  # Sk         FULLWIDTH GRAVE ACCENT
! FF41..FF5A     ; F  # Ll    [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
! FF5B           ; F  # Ps         FULLWIDTH LEFT CURLY BRACKET
! FF5C           ; F  # Sm         FULLWIDTH VERTICAL LINE
! FF5D           ; F  # Pe         FULLWIDTH RIGHT CURLY BRACKET
! FF5E           ; F  # Sm         FULLWIDTH TILDE
! FF5F           ; F  # Ps         FULLWIDTH LEFT WHITE PARENTHESIS
! FF60           ; F  # Pe         FULLWIDTH RIGHT WHITE PARENTHESIS
! FF61           ; H  # Po         HALFWIDTH IDEOGRAPHIC FULL STOP
! FF62           ; H  # Ps         HALFWIDTH LEFT CORNER BRACKET
! FF63           ; H  # Pe         HALFWIDTH RIGHT CORNER BRACKET
! FF64..FF65     ; H  # Po     [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
! FF66..FF6F     ; H  # Lo    [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
! FF70           ; H  # Lm         HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
! FF71..FF9D     ; H  # Lo    [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
! FF9E..FF9F     ; H  # Lm     [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
! FFA0..FFBE     ; H  # Lo    [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
! FFC2..FFC7     ; H  # Lo     [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
! FFCA..FFCF     ; H  # Lo     [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
! FFD2..FFD7     ; H  # Lo     [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
! FFDA..FFDC     ; H  # Lo     [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
! FFE0..FFE1     ; F  # Sc     [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
! FFE2           ; F  # Sm         FULLWIDTH NOT SIGN
! FFE3           ; F  # Sk         FULLWIDTH MACRON
! FFE4           ; F  # So         FULLWIDTH BROKEN BAR
! FFE5..FFE6     ; F  # Sc     [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
! FFE8           ; H  # So         HALFWIDTH FORMS LIGHT VERTICAL
! FFE9..FFEC     ; H  # Sm     [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
! FFED..FFEE     ; H  # So     [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
! FFF9..FFFB     ; N  # Cf     [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
! FFFC           ; N  # So         OBJECT REPLACEMENT CHARACTER
! FFFD           ; A  # So         REPLACEMENT CHARACTER
! 10000..1000B   ; N  # Lo    [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
! 1000D..10026   ; N  # Lo    [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
! 10028..1003A   ; N  # Lo    [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
! 1003C..1003D   ; N  # Lo     [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
! 1003F..1004D   ; N  # Lo    [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
! 10050..1005D   ; N  # Lo    [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
! 10080..100FA   ; N  # Lo   [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
! 10100..10102   ; N  # Po     [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
! 10107..10133   ; N  # No    [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
! 10137..1013F   ; N  # So     [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
! 10140..10174   ; N  # Nl    [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
! 10175..10178   ; N  # No     [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
! 10179..10189   ; N  # So    [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
! 1018A..1018B   ; N  # No     [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
! 1018C..1018E   ; N  # So     [3] GREEK SINUSOID SIGN..NOMISMA SIGN
! 10190..1019C   ; N  # So    [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
! 101A0          ; N  # So         GREEK SYMBOL TAU RHO
! 101D0..101FC   ; N  # So    [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
! 101FD          ; N  # Mn         PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
! 10280..1029C   ; N  # Lo    [29] LYCIAN LETTER A..LYCIAN LETTER X
! 102A0..102D0   ; N  # Lo    [49] CARIAN LETTER A..CARIAN LETTER UUU3
! 102E0          ; N  # Mn         COPTIC EPACT THOUSANDS MARK
! 102E1..102FB   ; N  # No    [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
! 10300..1031F   ; N  # Lo    [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
! 10320..10323   ; N  # No     [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
! 1032D..1032F   ; N  # Lo     [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE
! 10330..10340   ; N  # Lo    [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
! 10341          ; N  # Nl         GOTHIC LETTER NINETY
! 10342..10349   ; N  # Lo     [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
! 1034A          ; N  # Nl         GOTHIC LETTER NINE HUNDRED
! 10350..10375   ; N  # Lo    [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
! 10376..1037A   ; N  # Mn     [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
! 10380..1039D   ; N  # Lo    [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
! 1039F          ; N  # Po         UGARITIC WORD DIVIDER
! 103A0..103C3   ; N  # Lo    [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
! 103C8..103CF   ; N  # Lo     [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
! 103D0          ; N  # Po         OLD PERSIAN WORD DIVIDER
! 103D1..103D5   ; N  # Nl     [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
! 10400..1044F   ; N  # L&    [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
! 10450..1047F   ; N  # Lo    [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
! 10480..1049D   ; N  # Lo    [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
! 104A0..104A9   ; N  # Nd    [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
! 104B0..104D3   ; N  # Lu    [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
! 104D8..104FB   ; N  # Ll    [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
! 10500..10527   ; N  # Lo    [40] ELBASAN LETTER A..ELBASAN LETTER KHE
! 10530..10563   ; N  # Lo    [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
! 1056F          ; N  # Po         CAUCASIAN ALBANIAN CITATION MARK
! 10570..1057A   ; N  # Lu    [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
! 1057C..1058A   ; N  # Lu    [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
! 1058C..10592   ; N  # Lu     [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
! 10594..10595   ; N  # Lu     [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
! 10597..105A1   ; N  # Ll    [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
! 105A3..105B1   ; N  # Ll    [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
! 105B3..105B9   ; N  # Ll     [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
! 105BB..105BC   ; N  # Ll     [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
! 10600..10736   ; N  # Lo   [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
! 10740..10755   ; N  # Lo    [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
! 10760..10767   ; N  # Lo     [8] LINEAR A SIGN A800..LINEAR A SIGN A807
! 10780..10785   ; N  # Lm     [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
! 10787..107B0   ; N  # Lm    [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
! 107B2..107BA   ; N  # Lm     [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
! 10800..10805   ; N  # Lo     [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
! 10808          ; N  # Lo         CYPRIOT SYLLABLE JO
! 1080A..10835   ; N  # Lo    [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
! 10837..10838   ; N  # Lo     [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
! 1083C          ; N  # Lo         CYPRIOT SYLLABLE ZA
! 1083F          ; N  # Lo         CYPRIOT SYLLABLE ZO
! 10840..10855   ; N  # Lo    [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
! 10857          ; N  # Po         IMPERIAL ARAMAIC SECTION SIGN
! 10858..1085F   ; N  # No     [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
! 10860..10876   ; N  # Lo    [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
! 10877..10878   ; N  # So     [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
! 10879..1087F   ; N  # No     [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
! 10880..1089E   ; N  # Lo    [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
! 108A7..108AF   ; N  # No     [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
! 108E0..108F2   ; N  # Lo    [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
! 108F4..108F5   ; N  # Lo     [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
! 108FB..108FF   ; N  # No     [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
! 10900..10915   ; N  # Lo    [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
! 10916..1091B   ; N  # No     [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
! 1091F          ; N  # Po         PHOENICIAN WORD SEPARATOR
! 10920..10939   ; N  # Lo    [26] LYDIAN LETTER A..LYDIAN LETTER C
! 1093F          ; N  # Po         LYDIAN TRIANGULAR MARK
! 10980..1099F   ; N  # Lo    [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
! 109A0..109B7   ; N  # Lo    [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
! 109BC..109BD   ; N  # No     [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
! 109BE..109BF   ; N  # Lo     [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
! 109C0..109CF   ; N  # No    [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
! 109D2..109FF   ; N  # No    [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
! 10A00          ; N  # Lo         KHAROSHTHI LETTER A
! 10A01..10A03   ; N  # Mn     [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
! 10A05..10A06   ; N  # Mn     [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
! 10A0C..10A0F   ; N  # Mn     [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
! 10A10..10A13   ; N  # Lo     [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
! 10A15..10A17   ; N  # Lo     [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
! 10A19..10A35   ; N  # Lo    [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
! 10A38..10A3A   ; N  # Mn     [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
! 10A3F          ; N  # Mn         KHAROSHTHI VIRAMA
! 10A40..10A48   ; N  # No     [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
! 10A50..10A58   ; N  # Po     [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
! 10A60..10A7C   ; N  # Lo    [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
! 10A7D..10A7E   ; N  # No     [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
! 10A7F          ; N  # Po         OLD SOUTH ARABIAN NUMERIC INDICATOR
! 10A80..10A9C   ; N  # Lo    [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
! 10A9D..10A9F   ; N  # No     [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
! 10AC0..10AC7   ; N  # Lo     [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
! 10AC8          ; N  # So         MANICHAEAN SIGN UD
! 10AC9..10AE4   ; N  # Lo    [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
! 10AE5..10AE6   ; N  # Mn     [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
! 10AEB..10AEF   ; N  # No     [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
! 10AF0..10AF6   ; N  # Po     [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
! 10B00..10B35   ; N  # Lo    [54] AVESTAN LETTER A..AVESTAN LETTER HE
! 10B39..10B3F   ; N  # Po     [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
! 10B40..10B55   ; N  # Lo    [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
! 10B58..10B5F   ; N  # No     [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
! 10B60..10B72   ; N  # Lo    [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
! 10B78..10B7F   ; N  # No     [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
! 10B80..10B91   ; N  # Lo    [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
! 10B99..10B9C   ; N  # Po     [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
! 10BA9..10BAF   ; N  # No     [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
! 10C00..10C48   ; N  # Lo    [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
! 10C80..10CB2   ; N  # Lu    [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
! 10CC0..10CF2   ; N  # Ll    [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
! 10CFA..10CFF   ; N  # No     [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
! 10D00..10D23   ; N  # Lo    [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
! 10D24..10D27   ; N  # Mn     [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
! 10D30..10D39   ; N  # Nd    [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
! 10E60..10E7E   ; N  # No    [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
! 10E80..10EA9   ; N  # Lo    [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
! 10EAB..10EAC   ; N  # Mn     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
! 10EAD          ; N  # Pd         YEZIDI HYPHENATION MARK
! 10EB0..10EB1   ; N  # Lo     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
! 10EFD..10EFF   ; N  # Mn     [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
! 10F00..10F1C   ; N  # Lo    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
! 10F1D..10F26   ; N  # No    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
! 10F27          ; N  # Lo         OLD SOGDIAN LIGATURE AYIN-DALETH
! 10F30..10F45   ; N  # Lo    [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
! 10F46..10F50   ; N  # Mn    [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
! 10F51..10F54   ; N  # No     [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
! 10F55..10F59   ; N  # Po     [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
! 10F70..10F81   ; N  # Lo    [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
! 10F82..10F85   ; N  # Mn     [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
! 10F86..10F89   ; N  # Po     [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
! 10FB0..10FC4   ; N  # Lo    [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
! 10FC5..10FCB   ; N  # No     [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
! 10FE0..10FF6   ; N  # Lo    [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
! 11000          ; N  # Mc         BRAHMI SIGN CANDRABINDU
! 11001          ; N  # Mn         BRAHMI SIGN ANUSVARA
! 11002          ; N  # Mc         BRAHMI SIGN VISARGA
! 11003..11037   ; N  # Lo    [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
! 11038..11046   ; N  # Mn    [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
! 11047..1104D   ; N  # Po     [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
! 11052..11065   ; N  # No    [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
! 11066..1106F   ; N  # Nd    [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
! 11070          ; N  # Mn         BRAHMI SIGN OLD TAMIL VIRAMA
! 11071..11072   ; N  # Lo     [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
! 11073..11074   ; N  # Mn     [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
! 11075          ; N  # Lo         BRAHMI LETTER OLD TAMIL LLA
! 1107F          ; N  # Mn         BRAHMI NUMBER JOINER
! 11080..11081   ; N  # Mn     [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
! 11082          ; N  # Mc         KAITHI SIGN VISARGA
! 11083..110AF   ; N  # Lo    [45] KAITHI LETTER A..KAITHI LETTER HA
! 110B0..110B2   ; N  # Mc     [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
! 110B3..110B6   ; N  # Mn     [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
! 110B7..110B8   ; N  # Mc     [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
! 110B9..110BA   ; N  # Mn     [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
! 110BB..110BC   ; N  # Po     [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
! 110BD          ; N  # Cf         KAITHI NUMBER SIGN
! 110BE..110C1   ; N  # Po     [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
! 110C2          ; N  # Mn         KAITHI VOWEL SIGN VOCALIC R
! 110CD          ; N  # Cf         KAITHI NUMBER SIGN ABOVE
! 110D0..110E8   ; N  # Lo    [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
! 110F0..110F9   ; N  # Nd    [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
! 11100..11102   ; N  # Mn     [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
! 11103..11126   ; N  # Lo    [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
! 11127..1112B   ; N  # Mn     [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
! 1112C          ; N  # Mc         CHAKMA VOWEL SIGN E
! 1112D..11134   ; N  # Mn     [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
! 11136..1113F   ; N  # Nd    [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
! 11140..11143   ; N  # Po     [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
! 11144          ; N  # Lo         CHAKMA LETTER LHAA
! 11145..11146   ; N  # Mc     [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
! 11147          ; N  # Lo         CHAKMA LETTER VAA
! 11150..11172   ; N  # Lo    [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
! 11173          ; N  # Mn         MAHAJANI SIGN NUKTA
! 11174..11175   ; N  # Po     [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
! 11176          ; N  # Lo         MAHAJANI LIGATURE SHRI
! 11180..11181   ; N  # Mn     [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
! 11182          ; N  # Mc         SHARADA SIGN VISARGA
! 11183..111B2   ; N  # Lo    [48] SHARADA LETTER A..SHARADA LETTER HA
! 111B3..111B5   ; N  # Mc     [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
! 111B6..111BE   ; N  # Mn     [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
! 111BF..111C0   ; N  # Mc     [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
! 111C1..111C4   ; N  # Lo     [4] SHARADA SIGN AVAGRAHA..SHARADA OM
! 111C5..111C8   ; N  # Po     [4] SHARADA DANDA..SHARADA SEPARATOR
! 111C9..111CC   ; N  # Mn     [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
! 111CD          ; N  # Po         SHARADA SUTRA MARK
! 111CE          ; N  # Mc         SHARADA VOWEL SIGN PRISHTHAMATRA E
! 111CF          ; N  # Mn         SHARADA SIGN INVERTED CANDRABINDU
! 111D0..111D9   ; N  # Nd    [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
! 111DA          ; N  # Lo         SHARADA EKAM
! 111DB          ; N  # Po         SHARADA SIGN SIDDHAM
! 111DC          ; N  # Lo         SHARADA HEADSTROKE
! 111DD..111DF   ; N  # Po     [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
! 111E1..111F4   ; N  # No    [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
! 11200..11211   ; N  # Lo    [18] KHOJKI LETTER A..KHOJKI LETTER JJA
! 11213..1122B   ; N  # Lo    [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
! 1122C..1122E   ; N  # Mc     [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
! 1122F..11231   ; N  # Mn     [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
! 11232..11233   ; N  # Mc     [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
! 11234          ; N  # Mn         KHOJKI SIGN ANUSVARA
! 11235          ; N  # Mc         KHOJKI SIGN VIRAMA
! 11236..11237   ; N  # Mn     [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
! 11238..1123D   ; N  # Po     [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
! 1123E          ; N  # Mn         KHOJKI SIGN SUKUN
! 1123F..11240   ; N  # Lo     [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
! 11241          ; N  # Mn         KHOJKI VOWEL SIGN VOCALIC R
! 11280..11286   ; N  # Lo     [7] MULTANI LETTER A..MULTANI LETTER GA
! 11288          ; N  # Lo         MULTANI LETTER GHA
! 1128A..1128D   ; N  # Lo     [4] MULTANI LETTER CA..MULTANI LETTER JJA
! 1128F..1129D   ; N  # Lo    [15] MULTANI LETTER NYA..MULTANI LETTER BA
! 1129F..112A8   ; N  # Lo    [10] MULTANI LETTER BHA..MULTANI LETTER RHA
! 112A9          ; N  # Po         MULTANI SECTION MARK
! 112B0..112DE   ; N  # Lo    [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
! 112DF          ; N  # Mn         KHUDAWADI SIGN ANUSVARA
! 112E0..112E2   ; N  # Mc     [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
! 112E3..112EA   ; N  # Mn     [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
! 112F0..112F9   ; N  # Nd    [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
! 11300..11301   ; N  # Mn     [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
! 11302..11303   ; N  # Mc     [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
! 11305..1130C   ; N  # Lo     [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
! 1130F..11310   ; N  # Lo     [2] GRANTHA LETTER EE..GRANTHA LETTER AI
! 11313..11328   ; N  # Lo    [22] GRANTHA LETTER OO..GRANTHA LETTER NA
! 1132A..11330   ; N  # Lo     [7] GRANTHA LETTER PA..GRANTHA LETTER RA
! 11332..11333   ; N  # Lo     [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
! 11335..11339   ; N  # Lo     [5] GRANTHA LETTER VA..GRANTHA LETTER HA
! 1133B..1133C   ; N  # Mn     [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
! 1133D          ; N  # Lo         GRANTHA SIGN AVAGRAHA
! 1133E..1133F   ; N  # Mc     [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
! 11340          ; N  # Mn         GRANTHA VOWEL SIGN II
! 11341..11344   ; N  # Mc     [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
! 11347..11348   ; N  # Mc     [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
! 1134B..1134D   ; N  # Mc     [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
! 11350          ; N  # Lo         GRANTHA OM
! 11357          ; N  # Mc         GRANTHA AU LENGTH MARK
! 1135D..11361   ; N  # Lo     [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
! 11362..11363   ; N  # Mc     [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
! 11366..1136C   ; N  # Mn     [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
! 11370..11374   ; N  # Mn     [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
! 11400..11434   ; N  # Lo    [53] NEWA LETTER A..NEWA LETTER HA
! 11435..11437   ; N  # Mc     [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
! 11438..1143F   ; N  # Mn     [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
! 11440..11441   ; N  # Mc     [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
! 11442..11444   ; N  # Mn     [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
! 11445          ; N  # Mc         NEWA SIGN VISARGA
! 11446          ; N  # Mn         NEWA SIGN NUKTA
! 11447..1144A   ; N  # Lo     [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
! 1144B..1144F   ; N  # Po     [5] NEWA DANDA..NEWA ABBREVIATION SIGN
! 11450..11459   ; N  # Nd    [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
! 1145A..1145B   ; N  # Po     [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
! 1145D          ; N  # Po         NEWA INSERTION SIGN
! 1145E          ; N  # Mn         NEWA SANDHI MARK
! 1145F..11461   ; N  # Lo     [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
! 11480..114AF   ; N  # Lo    [48] TIRHUTA ANJI..TIRHUTA LETTER HA
! 114B0..114B2   ; N  # Mc     [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
! 114B3..114B8   ; N  # Mn     [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
! 114B9          ; N  # Mc         TIRHUTA VOWEL SIGN E
! 114BA          ; N  # Mn         TIRHUTA VOWEL SIGN SHORT E
! 114BB..114BE   ; N  # Mc     [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
! 114BF..114C0   ; N  # Mn     [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
! 114C1          ; N  # Mc         TIRHUTA SIGN VISARGA
! 114C2..114C3   ; N  # Mn     [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
! 114C4..114C5   ; N  # Lo     [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
! 114C6          ; N  # Po         TIRHUTA ABBREVIATION SIGN
! 114C7          ; N  # Lo         TIRHUTA OM
! 114D0..114D9   ; N  # Nd    [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
! 11580..115AE   ; N  # Lo    [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
! 115AF..115B1   ; N  # Mc     [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
! 115B2..115B5   ; N  # Mn     [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
! 115B8..115BB   ; N  # Mc     [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
! 115BC..115BD   ; N  # Mn     [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
! 115BE          ; N  # Mc         SIDDHAM SIGN VISARGA
! 115BF..115C0   ; N  # Mn     [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
! 115C1..115D7   ; N  # Po    [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
! 115D8..115DB   ; N  # Lo     [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
! 115DC..115DD   ; N  # Mn     [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
! 11600..1162F   ; N  # Lo    [48] MODI LETTER A..MODI LETTER LLA
! 11630..11632   ; N  # Mc     [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
! 11633..1163A   ; N  # Mn     [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
! 1163B..1163C   ; N  # Mc     [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
! 1163D          ; N  # Mn         MODI SIGN ANUSVARA
! 1163E          ; N  # Mc         MODI SIGN VISARGA
! 1163F..11640   ; N  # Mn     [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
! 11641..11643   ; N  # Po     [3] MODI DANDA..MODI ABBREVIATION SIGN
! 11644          ; N  # Lo         MODI SIGN HUVA
! 11650..11659   ; N  # Nd    [10] MODI DIGIT ZERO..MODI DIGIT NINE
! 11660..1166C   ; N  # Po    [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
! 11680..116AA   ; N  # Lo    [43] TAKRI LETTER A..TAKRI LETTER RRA
! 116AB          ; N  # Mn         TAKRI SIGN ANUSVARA
! 116AC          ; N  # Mc         TAKRI SIGN VISARGA
! 116AD          ; N  # Mn         TAKRI VOWEL SIGN AA
! 116AE..116AF   ; N  # Mc     [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
! 116B0..116B5   ; N  # Mn     [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
! 116B6          ; N  # Mc         TAKRI SIGN VIRAMA
! 116B7          ; N  # Mn         TAKRI SIGN NUKTA
! 116B8          ; N  # Lo         TAKRI LETTER ARCHAIC KHA
! 116B9          ; N  # Po         TAKRI ABBREVIATION SIGN
! 116C0..116C9   ; N  # Nd    [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
! 11700..1171A   ; N  # Lo    [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
! 1171D..1171F   ; N  # Mn     [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
! 11720..11721   ; N  # Mc     [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
! 11722..11725   ; N  # Mn     [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
! 11726          ; N  # Mc         AHOM VOWEL SIGN E
! 11727..1172B   ; N  # Mn     [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
! 11730..11739   ; N  # Nd    [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
! 1173A..1173B   ; N  # No     [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
! 1173C..1173E   ; N  # Po     [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
! 1173F          ; N  # So         AHOM SYMBOL VI
! 11740..11746   ; N  # Lo     [7] AHOM LETTER CA..AHOM LETTER LLA
! 11800..1182B   ; N  # Lo    [44] DOGRA LETTER A..DOGRA LETTER RRA
! 1182C..1182E   ; N  # Mc     [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
! 1182F..11837   ; N  # Mn     [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
! 11838          ; N  # Mc         DOGRA SIGN VISARGA
! 11839..1183A   ; N  # Mn     [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
! 1183B          ; N  # Po         DOGRA ABBREVIATION SIGN
! 118A0..118DF   ; N  # L&    [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
! 118E0..118E9   ; N  # Nd    [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
! 118EA..118F2   ; N  # No     [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
! 118FF          ; N  # Lo         WARANG CITI OM
! 11900..11906   ; N  # Lo     [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E
! 11909          ; N  # Lo         DIVES AKURU LETTER O
! 1190C..11913   ; N  # Lo     [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
! 11915..11916   ; N  # Lo     [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
! 11918..1192F   ; N  # Lo    [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
! 11930..11935   ; N  # Mc     [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
! 11937..11938   ; N  # Mc     [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
! 1193B..1193C   ; N  # Mn     [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
! 1193D          ; N  # Mc         DIVES AKURU SIGN HALANTA
! 1193E          ; N  # Mn         DIVES AKURU VIRAMA
! 1193F          ; N  # Lo         DIVES AKURU PREFIXED NASAL SIGN
! 11940          ; N  # Mc         DIVES AKURU MEDIAL YA
! 11941          ; N  # Lo         DIVES AKURU INITIAL RA
! 11942          ; N  # Mc         DIVES AKURU MEDIAL RA
! 11943          ; N  # Mn         DIVES AKURU SIGN NUKTA
! 11944..11946   ; N  # Po     [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
! 11950..11959   ; N  # Nd    [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
! 119A0..119A7   ; N  # Lo     [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
! 119AA..119D0   ; N  # Lo    [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
! 119D1..119D3   ; N  # Mc     [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
! 119D4..119D7   ; N  # Mn     [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
! 119DA..119DB   ; N  # Mn     [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
! 119DC..119DF   ; N  # Mc     [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
! 119E0          ; N  # Mn         NANDINAGARI SIGN VIRAMA
! 119E1          ; N  # Lo         NANDINAGARI SIGN AVAGRAHA
! 119E2          ; N  # Po         NANDINAGARI SIGN SIDDHAM
! 119E3          ; N  # Lo         NANDINAGARI HEADSTROKE
! 119E4          ; N  # Mc         NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
! 11A00          ; N  # Lo         ZANABAZAR SQUARE LETTER A
! 11A01..11A0A   ; N  # Mn    [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
! 11A0B..11A32   ; N  # Lo    [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
! 11A33..11A38   ; N  # Mn     [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
! 11A39          ; N  # Mc         ZANABAZAR SQUARE SIGN VISARGA
! 11A3A          ; N  # Lo         ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
! 11A3B..11A3E   ; N  # Mn     [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
! 11A3F..11A46   ; N  # Po     [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
! 11A47          ; N  # Mn         ZANABAZAR SQUARE SUBJOINER
! 11A50          ; N  # Lo         SOYOMBO LETTER A
! 11A51..11A56   ; N  # Mn     [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
! 11A57..11A58   ; N  # Mc     [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
! 11A59..11A5B   ; N  # Mn     [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
! 11A5C..11A89   ; N  # Lo    [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
! 11A8A..11A96   ; N  # Mn    [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
! 11A97          ; N  # Mc         SOYOMBO SIGN VISARGA
! 11A98..11A99   ; N  # Mn     [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
! 11A9A..11A9C   ; N  # Po     [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
! 11A9D          ; N  # Lo         SOYOMBO MARK PLUTA
! 11A9E..11AA2   ; N  # Po     [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
! 11AB0..11ABF   ; N  # Lo    [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
! 11AC0..11AF8   ; N  # Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
! 11B00..11B09   ; N  # Po    [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
! 11C00..11C08   ; N  # Lo     [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
! 11C0A..11C2E   ; N  # Lo    [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
! 11C2F          ; N  # Mc         BHAIKSUKI VOWEL SIGN AA
! 11C30..11C36   ; N  # Mn     [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
! 11C38..11C3D   ; N  # Mn     [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
! 11C3E          ; N  # Mc         BHAIKSUKI SIGN VISARGA
! 11C3F          ; N  # Mn         BHAIKSUKI SIGN VIRAMA
! 11C40          ; N  # Lo         BHAIKSUKI SIGN AVAGRAHA
! 11C41..11C45   ; N  # Po     [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
! 11C50..11C59   ; N  # Nd    [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
! 11C5A..11C6C   ; N  # No    [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
! 11C70..11C71   ; N  # Po     [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
! 11C72..11C8F   ; N  # Lo    [30] MARCHEN LETTER KA..MARCHEN LETTER A
! 11C92..11CA7   ; N  # Mn    [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
! 11CA9          ; N  # Mc         MARCHEN SUBJOINED LETTER YA
! 11CAA..11CB0   ; N  # Mn     [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
! 11CB1          ; N  # Mc         MARCHEN VOWEL SIGN I
! 11CB2..11CB3   ; N  # Mn     [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
! 11CB4          ; N  # Mc         MARCHEN VOWEL SIGN O
! 11CB5..11CB6   ; N  # Mn     [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
! 11D00..11D06   ; N  # Lo     [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
! 11D08..11D09   ; N  # Lo     [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
! 11D0B..11D30   ; N  # Lo    [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
! 11D31..11D36   ; N  # Mn     [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
! 11D3A          ; N  # Mn         MASARAM GONDI VOWEL SIGN E
! 11D3C..11D3D   ; N  # Mn     [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
! 11D3F..11D45   ; N  # Mn     [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
! 11D46          ; N  # Lo         MASARAM GONDI REPHA
! 11D47          ; N  # Mn         MASARAM GONDI RA-KARA
! 11D50..11D59   ; N  # Nd    [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
! 11D60..11D65   ; N  # Lo     [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
! 11D67..11D68   ; N  # Lo     [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
! 11D6A..11D89   ; N  # Lo    [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
! 11D8A..11D8E   ; N  # Mc     [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
! 11D90..11D91   ; N  # Mn     [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
! 11D93..11D94   ; N  # Mc     [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
! 11D95          ; N  # Mn         GUNJALA GONDI SIGN ANUSVARA
! 11D96          ; N  # Mc         GUNJALA GONDI SIGN VISARGA
! 11D97          ; N  # Mn         GUNJALA GONDI VIRAMA
! 11D98          ; N  # Lo         GUNJALA GONDI OM
! 11DA0..11DA9   ; N  # Nd    [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
! 11EE0..11EF2   ; N  # Lo    [19] MAKASAR LETTER KA..MAKASAR ANGKA
! 11EF3..11EF4   ; N  # Mn     [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
! 11EF5..11EF6   ; N  # Mc     [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
! 11EF7..11EF8   ; N  # Po     [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
! 11F00..11F01   ; N  # Mn     [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
! 11F02          ; N  # Lo         KAWI SIGN REPHA
! 11F03          ; N  # Mc         KAWI SIGN VISARGA
! 11F04..11F10   ; N  # Lo    [13] KAWI LETTER A..KAWI LETTER O
! 11F12..11F33   ; N  # Lo    [34] KAWI LETTER KA..KAWI LETTER JNYA
! 11F34..11F35   ; N  # Mc     [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
! 11F36..11F3A   ; N  # Mn     [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
! 11F3E..11F3F   ; N  # Mc     [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
! 11F40          ; N  # Mn         KAWI VOWEL SIGN EU
! 11F41          ; N  # Mc         KAWI SIGN KILLER
! 11F42          ; N  # Mn         KAWI CONJOINER
! 11F43..11F4F   ; N  # Po    [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
! 11F50..11F59   ; N  # Nd    [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
! 11FB0          ; N  # Lo         LISU LETTER YHA
! 11FC0..11FD4   ; N  # No    [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
! 11FD5..11FDC   ; N  # So     [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
! 11FDD..11FE0   ; N  # Sc     [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
! 11FE1..11FF1   ; N  # So    [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
! 11FFF          ; N  # Po         TAMIL PUNCTUATION END OF TEXT
! 12000..12399   ; N  # Lo   [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
! 12400..1246E   ; N  # Nl   [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
! 12470..12474   ; N  # Po     [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
! 12480..12543   ; N  # Lo   [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
! 12F90..12FF0   ; N  # Lo    [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
! 12FF1..12FF2   ; N  # Po     [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
! 13000..1342F   ; N  # Lo  [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
! 13430..1343F   ; N  # Cf    [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
! 13440          ; N  # Mn         EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
! 13441..13446   ; N  # Lo     [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
! 13447..13455   ; N  # Mn    [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
! 14400..14646   ; N  # Lo   [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
! 16800..16A38   ; N  # Lo   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
! 16A40..16A5E   ; N  # Lo    [31] MRO LETTER TA..MRO LETTER TEK
! 16A60..16A69   ; N  # Nd    [10] MRO DIGIT ZERO..MRO DIGIT NINE
! 16A6E..16A6F   ; N  # Po     [2] MRO DANDA..MRO DOUBLE DANDA
! 16A70..16ABE   ; N  # Lo    [79] TANGSA LETTER OZ..TANGSA LETTER ZA
! 16AC0..16AC9   ; N  # Nd    [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
! 16AD0..16AED   ; N  # Lo    [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
! 16AF0..16AF4   ; N  # Mn     [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
! 16AF5          ; N  # Po         BASSA VAH FULL STOP
! 16B00..16B2F   ; N  # Lo    [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
! 16B30..16B36   ; N  # Mn     [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
! 16B37..16B3B   ; N  # Po     [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
! 16B3C..16B3F   ; N  # So     [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
! 16B40..16B43   ; N  # Lm     [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
! 16B44          ; N  # Po         PAHAWH HMONG SIGN XAUS
! 16B45          ; N  # So         PAHAWH HMONG SIGN CIM TSOV ROG
! 16B50..16B59   ; N  # Nd    [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
! 16B5B..16B61   ; N  # No     [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
! 16B63..16B77   ; N  # Lo    [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
! 16B7D..16B8F   ; N  # Lo    [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
! 16E40..16E7F   ; N  # L&    [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
! 16E80..16E96   ; N  # No    [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
! 16E97..16E9A   ; N  # Po     [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
! 16F00..16F4A   ; N  # Lo    [75] MIAO LETTER PA..MIAO LETTER RTE
! 16F4F          ; N  # Mn         MIAO SIGN CONSONANT MODIFIER BAR
! 16F50          ; N  # Lo         MIAO LETTER NASALIZATION
! 16F51..16F87   ; N  # Mc    [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
! 16F8F..16F92   ; N  # Mn     [4] MIAO TONE RIGHT..MIAO TONE BELOW
! 16F93..16F9F   ; N  # Lm    [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
! 16FE0..16FE1   ; W  # Lm     [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
! 16FE2          ; W  # Po         OLD CHINESE HOOK MARK
! 16FE3          ; W  # Lm         OLD CHINESE ITERATION MARK
! 16FE4          ; W  # Mn         KHITAN SMALL SCRIPT FILLER
! 16FF0..16FF1   ; W  # Mc     [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 17000..187F7   ; W  # Lo  [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
! 18800..18AFF   ; W  # Lo   [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768
! 18B00..18CD5   ; W  # Lo   [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18D00..18D08   ; W  # Lo     [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
! 1AFF0..1AFF3   ; W  # Lm     [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
! 1AFF5..1AFFB   ; W  # Lm     [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
! 1AFFD..1AFFE   ; W  # Lm     [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
! 1B000..1B0FF   ; W  # Lo   [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
! 1B100..1B122   ; W  # Lo    [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
! 1B132          ; W  # Lo         HIRAGANA LETTER SMALL KO
! 1B150..1B152   ; W  # Lo     [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
! 1B155          ; W  # Lo         KATAKANA LETTER SMALL KO
! 1B164..1B167   ; W  # Lo     [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
! 1B170..1B2FB   ; W  # Lo   [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
! 1BC00..1BC6A   ; N  # Lo   [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
! 1BC70..1BC7C   ; N  # Lo    [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
! 1BC80..1BC88   ; N  # Lo     [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
! 1BC90..1BC99   ; N  # Lo    [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
! 1BC9C          ; N  # So         DUPLOYAN SIGN O WITH CROSS
! 1BC9D..1BC9E   ; N  # Mn     [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
! 1BC9F          ; N  # Po         DUPLOYAN PUNCTUATION CHINOOK FULL STOP
! 1BCA0..1BCA3   ; N  # Cf     [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
! 1CF00..1CF2D   ; N  # Mn    [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
! 1CF30..1CF46   ; N  # Mn    [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
! 1CF50..1CFC3   ; N  # So   [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
! 1D000..1D0F5   ; N  # So   [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
! 1D100..1D126   ; N  # So    [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
! 1D129..1D164   ; N  # So    [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
! 1D165..1D166   ; N  # Mc     [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
! 1D167..1D169   ; N  # Mn     [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
! 1D16A..1D16C   ; N  # So     [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
! 1D16D..1D172   ; N  # Mc     [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
! 1D173..1D17A   ; N  # Cf     [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
! 1D17B..1D182   ; N  # Mn     [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
! 1D183..1D184   ; N  # So     [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
! 1D185..1D18B   ; N  # Mn     [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
! 1D18C..1D1A9   ; N  # So    [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
! 1D1AA..1D1AD   ; N  # Mn     [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
! 1D1AE..1D1EA   ; N  # So    [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
! 1D200..1D241   ; N  # So    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
! 1D242..1D244   ; N  # Mn     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
! 1D245          ; N  # So         GREEK MUSICAL LEIMMA
! 1D2C0..1D2D3   ; N  # No    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
! 1D2E0..1D2F3   ; N  # No    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
! 1D300..1D356   ; N  # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
! 1D360..1D378   ; N  # No    [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
! 1D400..1D454   ; N  # L&    [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
! 1D456..1D49C   ; N  # L&    [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
! 1D49E..1D49F   ; N  # Lu     [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
! 1D4A2          ; N  # Lu         MATHEMATICAL SCRIPT CAPITAL G
! 1D4A5..1D4A6   ; N  # Lu     [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
! 1D4A9..1D4AC   ; N  # Lu     [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
! 1D4AE..1D4B9   ; N  # L&    [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
! 1D4BB          ; N  # Ll         MATHEMATICAL SCRIPT SMALL F
! 1D4BD..1D4C3   ; N  # Ll     [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
! 1D4C5..1D505   ; N  # L&    [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
! 1D507..1D50A   ; N  # Lu     [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
! 1D50D..1D514   ; N  # Lu     [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
! 1D516..1D51C   ; N  # Lu     [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
! 1D51E..1D539   ; N  # L&    [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
! 1D53B..1D53E   ; N  # Lu     [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
! 1D540..1D544   ; N  # Lu     [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
! 1D546          ; N  # Lu         MATHEMATICAL DOUBLE-STRUCK CAPITAL O
! 1D54A..1D550   ; N  # Lu     [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
! 1D552..1D6A5   ; N  # L&   [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
! 1D6A8..1D6C0   ; N  # Lu    [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
! 1D6C1          ; N  # Sm         MATHEMATICAL BOLD NABLA
! 1D6C2..1D6DA   ; N  # Ll    [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
! 1D6DB          ; N  # Sm         MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
! 1D6DC..1D6FA   ; N  # L&    [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
! 1D6FB          ; N  # Sm         MATHEMATICAL ITALIC NABLA
! 1D6FC..1D714   ; N  # Ll    [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
! 1D715          ; N  # Sm         MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
! 1D716..1D734   ; N  # L&    [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
! 1D735          ; N  # Sm         MATHEMATICAL BOLD ITALIC NABLA
! 1D736..1D74E   ; N  # Ll    [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
! 1D74F          ; N  # Sm         MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
! 1D750..1D76E   ; N  # L&    [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
! 1D76F          ; N  # Sm         MATHEMATICAL SANS-SERIF BOLD NABLA
! 1D770..1D788   ; N  # Ll    [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
! 1D789          ; N  # Sm         MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
! 1D78A..1D7A8   ; N  # L&    [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
! 1D7A9          ; N  # Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
! 1D7AA..1D7C2   ; N  # Ll    [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
! 1D7C3          ; N  # Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
! 1D7C4..1D7CB   ; N  # L&     [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
! 1D7CE..1D7FF   ; N  # Nd    [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
! 1D800..1D9FF   ; N  # So   [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
! 1DA00..1DA36   ; N  # Mn    [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
! 1DA37..1DA3A   ; N  # So     [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
! 1DA3B..1DA6C   ; N  # Mn    [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
! 1DA6D..1DA74   ; N  # So     [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
! 1DA75          ; N  # Mn         SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
! 1DA76..1DA83   ; N  # So    [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
! 1DA84          ; N  # Mn         SIGNWRITING LOCATION HEAD NECK
! 1DA85..1DA86   ; N  # So     [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
! 1DA87..1DA8B   ; N  # Po     [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
! 1DA9B..1DA9F   ; N  # Mn     [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
! 1DAA1..1DAAF   ; N  # Mn    [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
! 1DF00..1DF09   ; N  # Ll    [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
! 1DF0A          ; N  # Lo         LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
! 1DF0B..1DF1E   ; N  # Ll    [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
! 1DF25..1DF2A   ; N  # Ll     [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
! 1E000..1E006   ; N  # Mn     [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
! 1E008..1E018   ; N  # Mn    [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
! 1E01B..1E021   ; N  # Mn     [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
! 1E023..1E024   ; N  # Mn     [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
! 1E026..1E02A   ; N  # Mn     [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
! 1E030..1E06D   ; N  # Lm    [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
! 1E08F          ; N  # Mn         COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
! 1E100..1E12C   ; N  # Lo    [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
! 1E130..1E136   ; N  # Mn     [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
! 1E137..1E13D   ; N  # Lm     [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
! 1E140..1E149   ; N  # Nd    [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
! 1E14E          ; N  # Lo         NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
! 1E14F          ; N  # So         NYIAKENG PUACHUE HMONG CIRCLED CA
! 1E290..1E2AD   ; N  # Lo    [30] TOTO LETTER PA..TOTO LETTER A
! 1E2AE          ; N  # Mn         TOTO SIGN RISING TONE
! 1E2C0..1E2EB   ; N  # Lo    [44] WANCHO LETTER AA..WANCHO LETTER YIH
! 1E2EC..1E2EF   ; N  # Mn     [4] WANCHO TONE TUP..WANCHO TONE KOINI
! 1E2F0..1E2F9   ; N  # Nd    [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
! 1E2FF          ; N  # Sc         WANCHO NGUN SIGN
! 1E4D0..1E4EA   ; N  # Lo    [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
! 1E4EB          ; N  # Lm         NAG MUNDARI SIGN OJOD
! 1E4EC..1E4EF   ; N  # Mn     [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
! 1E4F0..1E4F9   ; N  # Nd    [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
! 1E7E0..1E7E6   ; N  # Lo     [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
! 1E7E8..1E7EB   ; N  # Lo     [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
! 1E7ED..1E7EE   ; N  # Lo     [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
! 1E7F0..1E7FE   ; N  # Lo    [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
! 1E800..1E8C4   ; N  # Lo   [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
! 1E8C7..1E8CF   ; N  # No     [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
! 1E8D0..1E8D6   ; N  # Mn     [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
! 1E900..1E943   ; N  # L&    [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
! 1E944..1E94A   ; N  # Mn     [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
! 1E94B          ; N  # Lm         ADLAM NASALIZATION MARK
! 1E950..1E959   ; N  # Nd    [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
! 1E95E..1E95F   ; N  # Po     [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
! 1EC71..1ECAB   ; N  # No    [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
! 1ECAC          ; N  # So         INDIC SIYAQ PLACEHOLDER
! 1ECAD..1ECAF   ; N  # No     [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
! 1ECB0          ; N  # Sc         INDIC SIYAQ RUPEE MARK
! 1ECB1..1ECB4   ; N  # No     [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
! 1ED01..1ED2D   ; N  # No    [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
! 1ED2E          ; N  # So         OTTOMAN SIYAQ MARRATAN
! 1ED2F..1ED3D   ; N  # No    [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
! 1EE00..1EE03   ; N  # Lo     [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
! 1EE05..1EE1F   ; N  # Lo    [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
! 1EE21..1EE22   ; N  # Lo     [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
! 1EE24          ; N  # Lo         ARABIC MATHEMATICAL INITIAL HEH
! 1EE27          ; N  # Lo         ARABIC MATHEMATICAL INITIAL HAH
! 1EE29..1EE32   ; N  # Lo    [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
! 1EE34..1EE37   ; N  # Lo     [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
! 1EE39          ; N  # Lo         ARABIC MATHEMATICAL INITIAL DAD
! 1EE3B          ; N  # Lo         ARABIC MATHEMATICAL INITIAL GHAIN
! 1EE42          ; N  # Lo         ARABIC MATHEMATICAL TAILED JEEM
! 1EE47          ; N  # Lo         ARABIC MATHEMATICAL TAILED HAH
! 1EE49          ; N  # Lo         ARABIC MATHEMATICAL TAILED YEH
! 1EE4B          ; N  # Lo         ARABIC MATHEMATICAL TAILED LAM
! 1EE4D..1EE4F   ; N  # Lo     [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
! 1EE51..1EE52   ; N  # Lo     [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
! 1EE54          ; N  # Lo         ARABIC MATHEMATICAL TAILED SHEEN
! 1EE57          ; N  # Lo         ARABIC MATHEMATICAL TAILED KHAH
! 1EE59          ; N  # Lo         ARABIC MATHEMATICAL TAILED DAD
! 1EE5B          ; N  # Lo         ARABIC MATHEMATICAL TAILED GHAIN
! 1EE5D          ; N  # Lo         ARABIC MATHEMATICAL TAILED DOTLESS NOON
! 1EE5F          ; N  # Lo         ARABIC MATHEMATICAL TAILED DOTLESS QAF
! 1EE61..1EE62   ; N  # Lo     [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
! 1EE64          ; N  # Lo         ARABIC MATHEMATICAL STRETCHED HEH
! 1EE67..1EE6A   ; N  # Lo     [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
! 1EE6C..1EE72   ; N  # Lo     [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
! 1EE74..1EE77   ; N  # Lo     [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
! 1EE79..1EE7C   ; N  # Lo     [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
! 1EE7E          ; N  # Lo         ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
! 1EE80..1EE89   ; N  # Lo    [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
! 1EE8B..1EE9B   ; N  # Lo    [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
! 1EEA1..1EEA3   ; N  # Lo     [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
! 1EEA5..1EEA9   ; N  # Lo     [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
! 1EEAB..1EEBB   ; N  # Lo    [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
! 1EEF0..1EEF1   ; N  # Sm     [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
! 1F000..1F003   ; N  # So     [4] MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND
! 1F004          ; W  # So         MAHJONG TILE RED DRAGON
! 1F005..1F02B   ; N  # So    [39] MAHJONG TILE GREEN DRAGON..MAHJONG TILE BACK
! 1F030..1F093   ; N  # So   [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
! 1F0A0..1F0AE   ; N  # So    [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
! 1F0B1..1F0BF   ; N  # So    [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
! 1F0C1..1F0CE   ; N  # So    [14] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD KING OF DIAMONDS
! 1F0CF          ; W  # So         PLAYING CARD BLACK JOKER
! 1F0D1..1F0F5   ; N  # So    [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
! 1F100..1F10A   ; A  # No    [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
! 1F10B..1F10C   ; N  # No     [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
! 1F10D..1F10F   ; N  # So     [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
! 1F110..1F12D   ; A  # So    [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
! 1F12E..1F12F   ; N  # So     [2] CIRCLED WZ..COPYLEFT SYMBOL
! 1F130..1F169   ; A  # So    [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
! 1F16A..1F16F   ; N  # So     [6] RAISED MC SIGN..CIRCLED HUMAN FIGURE
! 1F170..1F18D   ; A  # So    [30] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED SA
! 1F18E          ; W  # So         NEGATIVE SQUARED AB
! 1F18F..1F190   ; A  # So     [2] NEGATIVE SQUARED WC..SQUARE DJ
! 1F191..1F19A   ; W  # So    [10] SQUARED CL..SQUARED VS
! 1F19B..1F1AC   ; A  # So    [18] SQUARED THREE D..SQUARED VOD
! 1F1AD          ; N  # So         MASK WORK SYMBOL
! 1F1E6..1F1FF   ; N  # So    [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
! 1F200..1F202   ; W  # So     [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
! 1F210..1F23B   ; W  # So    [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
! 1F240..1F248   ; W  # So     [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
! 1F250..1F251   ; W  # So     [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
! 1F260..1F265   ; W  # So     [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
! 1F300..1F320   ; W  # So    [33] CYCLONE..SHOOTING STAR
! 1F321..1F32C   ; N  # So    [12] THERMOMETER..WIND BLOWING FACE
! 1F32D..1F335   ; W  # So     [9] HOT DOG..CACTUS
! 1F336          ; N  # So         HOT PEPPER
! 1F337..1F37C   ; W  # So    [70] TULIP..BABY BOTTLE
! 1F37D          ; N  # So         FORK AND KNIFE WITH PLATE
! 1F37E..1F393   ; W  # So    [22] BOTTLE WITH POPPING CORK..GRADUATION CAP
! 1F394..1F39F   ; N  # So    [12] HEART WITH TIP ON THE LEFT..ADMISSION TICKETS
! 1F3A0..1F3CA   ; W  # So    [43] CAROUSEL HORSE..SWIMMER
! 1F3CB..1F3CE   ; N  # So     [4] WEIGHT LIFTER..RACING CAR
! 1F3CF..1F3D3   ; W  # So     [5] CRICKET BAT AND BALL..TABLE TENNIS PADDLE AND BALL
! 1F3D4..1F3DF   ; N  # So    [12] SNOW CAPPED MOUNTAIN..STADIUM
! 1F3E0..1F3F0   ; W  # So    [17] HOUSE BUILDING..EUROPEAN CASTLE
! 1F3F1..1F3F3   ; N  # So     [3] WHITE PENNANT..WAVING WHITE FLAG
! 1F3F4          ; W  # So         WAVING BLACK FLAG
! 1F3F5..1F3F7   ; N  # So     [3] ROSETTE..LABEL
! 1F3F8..1F3FA   ; W  # So     [3] BADMINTON RACQUET AND SHUTTLECOCK..AMPHORA
! 1F3FB..1F3FF   ; W  # Sk     [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
! 1F400..1F43E   ; W  # So    [63] RAT..PAW PRINTS
! 1F43F          ; N  # So         CHIPMUNK
! 1F440          ; W  # So         EYES
! 1F441          ; N  # So         EYE
! 1F442..1F4FC   ; W  # So   [187] EAR..VIDEOCASSETTE
! 1F4FD..1F4FE   ; N  # So     [2] FILM PROJECTOR..PORTABLE STEREO
! 1F4FF..1F53D   ; W  # So    [63] PRAYER BEADS..DOWN-POINTING SMALL RED TRIANGLE
! 1F53E..1F54A   ; N  # So    [13] LOWER RIGHT SHADOWED WHITE CIRCLE..DOVE OF PEACE
! 1F54B..1F54E   ; W  # So     [4] KAABA..MENORAH WITH NINE BRANCHES
! 1F54F          ; N  # So         BOWL OF HYGIEIA
! 1F550..1F567   ; W  # So    [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
! 1F568..1F579   ; N  # So    [18] RIGHT SPEAKER..JOYSTICK
! 1F57A          ; W  # So         MAN DANCING
! 1F57B..1F594   ; N  # So    [26] LEFT HAND TELEPHONE RECEIVER..REVERSED VICTORY HAND
! 1F595..1F596   ; W  # So     [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
! 1F597..1F5A3   ; N  # So    [13] WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX
! 1F5A4          ; W  # So         BLACK HEART
! 1F5A5..1F5FA   ; N  # So    [86] DESKTOP COMPUTER..WORLD MAP
! 1F5FB..1F5FF   ; W  # So     [5] MOUNT FUJI..MOYAI
! 1F600..1F64F   ; W  # So    [80] GRINNING FACE..PERSON WITH FOLDED HANDS
! 1F650..1F67F   ; N  # So    [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
! 1F680..1F6C5   ; W  # So    [70] ROCKET..LEFT LUGGAGE
! 1F6C6..1F6CB   ; N  # So     [6] TRIANGLE WITH ROUNDED CORNERS..COUCH AND LAMP
! 1F6CC          ; W  # So         SLEEPING ACCOMMODATION
! 1F6CD..1F6CF   ; N  # So     [3] SHOPPING BAGS..BED
! 1F6D0..1F6D2   ; W  # So     [3] PLACE OF WORSHIP..SHOPPING TROLLEY
! 1F6D3..1F6D4   ; N  # So     [2] STUPA..PAGODA
! 1F6D5..1F6D7   ; W  # So     [3] HINDU TEMPLE..ELEVATOR
! 1F6DC..1F6DF   ; W  # So     [4] WIRELESS..RING BUOY
! 1F6E0..1F6EA   ; N  # So    [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
! 1F6EB..1F6EC   ; W  # So     [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
! 1F6F0..1F6F3   ; N  # So     [4] SATELLITE..PASSENGER SHIP
! 1F6F4..1F6FC   ; W  # So     [9] SCOOTER..ROLLER SKATE
! 1F700..1F776   ; N  # So   [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
! 1F77B..1F77F   ; N  # So     [5] HAUMEA..ORCUS
! 1F780..1F7D9   ; N  # So    [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR
! 1F7E0..1F7EB   ; W  # So    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
! 1F7F0          ; W  # So         HEAVY EQUALS SIGN
! 1F800..1F80B   ; N  # So    [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
! 1F810..1F847   ; N  # So    [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
! 1F850..1F859   ; N  # So    [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
! 1F860..1F887   ; N  # So    [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
! 1F890..1F8AD   ; N  # So    [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
! 1F8B0..1F8B1   ; N  # So     [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
! 1F900..1F90B   ; N  # So    [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
! 1F90C..1F93A   ; W  # So    [47] PINCHED FINGERS..FENCER
! 1F93B          ; N  # So         MODERN PENTATHLON
! 1F93C..1F945   ; W  # So    [10] WRESTLERS..GOAL NET
! 1F946          ; N  # So         RIFLE
! 1F947..1F9FF   ; W  # So   [185] FIRST PLACE MEDAL..NAZAR AMULET
! 1FA00..1FA53   ; N  # So    [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
! 1FA60..1FA6D   ; N  # So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
! 1FA70..1FA7C   ; W  # So    [13] BALLET SHOES..CRUTCH
! 1FA80..1FA88   ; W  # So     [9] YO-YO..FLUTE
! 1FA90..1FABD   ; W  # So    [46] RINGED PLANET..WING
! 1FABF..1FAC5   ; W  # So     [7] GOOSE..PERSON WITH CROWN
! 1FACE..1FADB   ; W  # So    [14] MOOSE..PEA POD
! 1FAE0..1FAE8   ; W  # So     [9] MELTING FACE..SHAKING FACE
! 1FAF0..1FAF8   ; W  # So     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
! 1FB00..1FB92   ; N  # So   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
! 1FB94..1FBCA   ; N  # So    [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
! 1FBF0..1FBF9   ; N  # Nd    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
! 20000..2A6DF   ; W  # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A6E0..2A6FF   ; W  # Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>
! 2A700..2B739   ; W  # Lo  [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B73A..2B73F   ; W  # Cn     [6] <reserved-2B73A>..<reserved-2B73F>
! 2B740..2B81D   ; W  # Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B81E..2B81F   ; W  # Cn     [2] <reserved-2B81E>..<reserved-2B81F>
! 2B820..2CEA1   ; W  # Lo  [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
! 2CEA2..2CEAF   ; W  # Cn    [14] <reserved-2CEA2>..<reserved-2CEAF>
! 2CEB0..2EBE0   ; W  # Lo  [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
! 2EBE1..2EBEF   ; W  # Cn    [15] <reserved-2EBE1>..<reserved-2EBEF>
! 2EBF0..2EE5D   ; W  # Lo   [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
! 2EE5E..2F7FF   ; W  # Cn  [2466] <reserved-2EE5E>..<reserved-2F7FF>
! 2F800..2FA1D   ; W  # Lo   [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
! 2FA1E..2FA1F   ; W  # Cn     [2] <reserved-2FA1E>..<reserved-2FA1F>
! 2FA20..2FFFD   ; W  # Cn  [1502] <reserved-2FA20>..<reserved-2FFFD>
! 30000..3134A   ; W  # Lo  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 3134B..3134F   ; W  # Cn     [5] <reserved-3134B>..<reserved-3134F>
! 31350..323AF   ; W  # Lo  [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
! 323B0..3FFFD   ; W  # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
! E0001          ; N  # Cf         LANGUAGE TAG
! E0020..E007F   ; N  # Cf    [96] TAG SPACE..CANCEL TAG
! E0100..E01EF   ; A  # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
! F0000..FFFFD   ; A  # Co [65534] <private-use-F0000>..<private-use-FFFFD>
! 100000..10FFFD ; A  # Co [65534] <private-use-100000>..<private-use-10FFFD>
  
  # EOF
diff -Nrcpad gcc-13.2.0/contrib/unicode/GraphemeBreakProperty.txt gcc-14.1.0/contrib/unicode/GraphemeBreakProperty.txt
*** gcc-13.2.0/contrib/unicode/GraphemeBreakProperty.txt	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/unicode/GraphemeBreakProperty.txt	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1475 ----
+ # GraphemeBreakProperty-15.1.0.txt
+ # Date: 2023-01-05, 20:34:41 GMT
+ # © 2023 Unicode®, Inc.
+ # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+ # For terms of use, see https://www.unicode.org/terms_of_use.html
+ #
+ # Unicode Character Database
+ #   For documentation, see https://www.unicode.org/reports/tr44/
+ 
+ # ================================================
+ 
+ # Property:	Grapheme_Cluster_Break
+ 
+ #  All code points not explicitly listed for Grapheme_Cluster_Break
+ #  have the value Other (XX).
+ 
+ # @missing: 0000..10FFFF; Other
+ 
+ # ================================================
+ 
+ 0600..0605    ; Prepend # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+ 06DD          ; Prepend # Cf       ARABIC END OF AYAH
+ 070F          ; Prepend # Cf       SYRIAC ABBREVIATION MARK
+ 0890..0891    ; Prepend # Cf   [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+ 08E2          ; Prepend # Cf       ARABIC DISPUTED END OF AYAH
+ 0D4E          ; Prepend # Lo       MALAYALAM LETTER DOT REPH
+ 110BD         ; Prepend # Cf       KAITHI NUMBER SIGN
+ 110CD         ; Prepend # Cf       KAITHI NUMBER SIGN ABOVE
+ 111C2..111C3  ; Prepend # Lo   [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA
+ 1193F         ; Prepend # Lo       DIVES AKURU PREFIXED NASAL SIGN
+ 11941         ; Prepend # Lo       DIVES AKURU INITIAL RA
+ 11A3A         ; Prepend # Lo       ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
+ 11A84..11A89  ; Prepend # Lo   [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA
+ 11D46         ; Prepend # Lo       MASARAM GONDI REPHA
+ 11F02         ; Prepend # Lo       KAWI SIGN REPHA
+ 
+ # Total code points: 27
+ 
+ # ================================================
+ 
+ 000D          ; CR # Cc       <control-000D>
+ 
+ # Total code points: 1
+ 
+ # ================================================
+ 
+ 000A          ; LF # Cc       <control-000A>
+ 
+ # Total code points: 1
+ 
+ # ================================================
+ 
+ 0000..0009    ; Control # Cc  [10] <control-0000>..<control-0009>
+ 000B..000C    ; Control # Cc   [2] <control-000B>..<control-000C>
+ 000E..001F    ; Control # Cc  [18] <control-000E>..<control-001F>
+ 007F..009F    ; Control # Cc  [33] <control-007F>..<control-009F>
+ 00AD          ; Control # Cf       SOFT HYPHEN
+ 061C          ; Control # Cf       ARABIC LETTER MARK
+ 180E          ; Control # Cf       MONGOLIAN VOWEL SEPARATOR
+ 200B          ; Control # Cf       ZERO WIDTH SPACE
+ 200E..200F    ; Control # Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+ 2028          ; Control # Zl       LINE SEPARATOR
+ 2029          ; Control # Zp       PARAGRAPH SEPARATOR
+ 202A..202E    ; Control # Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+ 2060..2064    ; Control # Cf   [5] WORD JOINER..INVISIBLE PLUS
+ 2065          ; Control # Cn       <reserved-2065>
+ 2066..206F    ; Control # Cf  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+ FEFF          ; Control # Cf       ZERO WIDTH NO-BREAK SPACE
+ FFF0..FFF8    ; Control # Cn   [9] <reserved-FFF0>..<reserved-FFF8>
+ FFF9..FFFB    ; Control # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+ 13430..1343F  ; Control # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+ 1BCA0..1BCA3  ; Control # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+ 1D173..1D17A  ; Control # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+ E0000         ; Control # Cn       <reserved-E0000>
+ E0001         ; Control # Cf       LANGUAGE TAG
+ E0002..E001F  ; Control # Cn  [30] <reserved-E0002>..<reserved-E001F>
+ E0080..E00FF  ; Control # Cn [128] <reserved-E0080>..<reserved-E00FF>
+ E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
+ 
+ # Total code points: 3893
+ 
+ # ================================================
+ 
+ 0300..036F    ; Extend # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+ 0483..0487    ; Extend # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+ 0488..0489    ; Extend # Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+ 0591..05BD    ; Extend # Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+ 05BF          ; Extend # Mn       HEBREW POINT RAFE
+ 05C1..05C2    ; Extend # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+ 05C4..05C5    ; Extend # Mn   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+ 05C7          ; Extend # Mn       HEBREW POINT QAMATS QATAN
+ 0610..061A    ; Extend # Mn  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+ 064B..065F    ; Extend # Mn  [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+ 0670          ; Extend # Mn       ARABIC LETTER SUPERSCRIPT ALEF
+ 06D6..06DC    ; Extend # Mn   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+ 06DF..06E4    ; Extend # Mn   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+ 06E7..06E8    ; Extend # Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+ 06EA..06ED    ; Extend # Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+ 0711          ; Extend # Mn       SYRIAC LETTER SUPERSCRIPT ALAPH
+ 0730..074A    ; Extend # Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+ 07A6..07B0    ; Extend # Mn  [11] THAANA ABAFILI..THAANA SUKUN
+ 07EB..07F3    ; Extend # Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+ 07FD          ; Extend # Mn       NKO DANTAYALAN
+ 0816..0819    ; Extend # Mn   [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+ 081B..0823    ; Extend # Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+ 0825..0827    ; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+ 0829..082D    ; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+ 0859..085B    ; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+ 0898..089F    ; Extend # Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+ 08CA..08E1    ; Extend # Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
+ 08E3..0902    ; Extend # Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
+ 093A          ; Extend # Mn       DEVANAGARI VOWEL SIGN OE
+ 093C          ; Extend # Mn       DEVANAGARI SIGN NUKTA
+ 0941..0948    ; Extend # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+ 094D          ; Extend # Mn       DEVANAGARI SIGN VIRAMA
+ 0951..0957    ; Extend # Mn   [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+ 0962..0963    ; Extend # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+ 0981          ; Extend # Mn       BENGALI SIGN CANDRABINDU
+ 09BC          ; Extend # Mn       BENGALI SIGN NUKTA
+ 09BE          ; Extend # Mc       BENGALI VOWEL SIGN AA
+ 09C1..09C4    ; Extend # Mn   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+ 09CD          ; Extend # Mn       BENGALI SIGN VIRAMA
+ 09D7          ; Extend # Mc       BENGALI AU LENGTH MARK
+ 09E2..09E3    ; Extend # Mn   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+ 09FE          ; Extend # Mn       BENGALI SANDHI MARK
+ 0A01..0A02    ; Extend # Mn   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+ 0A3C          ; Extend # Mn       GURMUKHI SIGN NUKTA
+ 0A41..0A42    ; Extend # Mn   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+ 0A47..0A48    ; Extend # Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+ 0A4B..0A4D    ; Extend # Mn   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+ 0A51          ; Extend # Mn       GURMUKHI SIGN UDAAT
+ 0A70..0A71    ; Extend # Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+ 0A75          ; Extend # Mn       GURMUKHI SIGN YAKASH
+ 0A81..0A82    ; Extend # Mn   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+ 0ABC          ; Extend # Mn       GUJARATI SIGN NUKTA
+ 0AC1..0AC5    ; Extend # Mn   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+ 0AC7..0AC8    ; Extend # Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+ 0ACD          ; Extend # Mn       GUJARATI SIGN VIRAMA
+ 0AE2..0AE3    ; Extend # Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+ 0AFA..0AFF    ; Extend # Mn   [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+ 0B01          ; Extend # Mn       ORIYA SIGN CANDRABINDU
+ 0B3C          ; Extend # Mn       ORIYA SIGN NUKTA
+ 0B3E          ; Extend # Mc       ORIYA VOWEL SIGN AA
+ 0B3F          ; Extend # Mn       ORIYA VOWEL SIGN I
+ 0B41..0B44    ; Extend # Mn   [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+ 0B4D          ; Extend # Mn       ORIYA SIGN VIRAMA
+ 0B55..0B56    ; Extend # Mn   [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
+ 0B57          ; Extend # Mc       ORIYA AU LENGTH MARK
+ 0B62..0B63    ; Extend # Mn   [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+ 0B82          ; Extend # Mn       TAMIL SIGN ANUSVARA
+ 0BBE          ; Extend # Mc       TAMIL VOWEL SIGN AA
+ 0BC0          ; Extend # Mn       TAMIL VOWEL SIGN II
+ 0BCD          ; Extend # Mn       TAMIL SIGN VIRAMA
+ 0BD7          ; Extend # Mc       TAMIL AU LENGTH MARK
+ 0C00          ; Extend # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
+ 0C04          ; Extend # Mn       TELUGU SIGN COMBINING ANUSVARA ABOVE
+ 0C3C          ; Extend # Mn       TELUGU SIGN NUKTA
+ 0C3E..0C40    ; Extend # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+ 0C46..0C48    ; Extend # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+ 0C4A..0C4D    ; Extend # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+ 0C55..0C56    ; Extend # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+ 0C62..0C63    ; Extend # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+ 0C81          ; Extend # Mn       KANNADA SIGN CANDRABINDU
+ 0CBC          ; Extend # Mn       KANNADA SIGN NUKTA
+ 0CBF          ; Extend # Mn       KANNADA VOWEL SIGN I
+ 0CC2          ; Extend # Mc       KANNADA VOWEL SIGN UU
+ 0CC6          ; Extend # Mn       KANNADA VOWEL SIGN E
+ 0CCC..0CCD    ; Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+ 0CD5..0CD6    ; Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+ 0CE2..0CE3    ; Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+ 0D00..0D01    ; Extend # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
+ 0D3B..0D3C    ; Extend # Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+ 0D3E          ; Extend # Mc       MALAYALAM VOWEL SIGN AA
+ 0D41..0D44    ; Extend # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+ 0D4D          ; Extend # Mn       MALAYALAM SIGN VIRAMA
+ 0D57          ; Extend # Mc       MALAYALAM AU LENGTH MARK
+ 0D62..0D63    ; Extend # Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+ 0D81          ; Extend # Mn       SINHALA SIGN CANDRABINDU
+ 0DCA          ; Extend # Mn       SINHALA SIGN AL-LAKUNA
+ 0DCF          ; Extend # Mc       SINHALA VOWEL SIGN AELA-PILLA
+ 0DD2..0DD4    ; Extend # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+ 0DD6          ; Extend # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
+ 0DDF          ; Extend # Mc       SINHALA VOWEL SIGN GAYANUKITTA
+ 0E31          ; Extend # Mn       THAI CHARACTER MAI HAN-AKAT
+ 0E34..0E3A    ; Extend # Mn   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+ 0E47..0E4E    ; Extend # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+ 0EB1          ; Extend # Mn       LAO VOWEL SIGN MAI KAN
+ 0EB4..0EBC    ; Extend # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
+ 0EC8..0ECE    ; Extend # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
+ 0F18..0F19    ; Extend # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+ 0F35          ; Extend # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
+ 0F37          ; Extend # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
+ 0F39          ; Extend # Mn       TIBETAN MARK TSA -PHRU
+ 0F71..0F7E    ; Extend # Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+ 0F80..0F84    ; Extend # Mn   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+ 0F86..0F87    ; Extend # Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+ 0F8D..0F97    ; Extend # Mn  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+ 0F99..0FBC    ; Extend # Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+ 0FC6          ; Extend # Mn       TIBETAN SYMBOL PADMA GDAN
+ 102D..1030    ; Extend # Mn   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+ 1032..1037    ; Extend # Mn   [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+ 1039..103A    ; Extend # Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+ 103D..103E    ; Extend # Mn   [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+ 1058..1059    ; Extend # Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+ 105E..1060    ; Extend # Mn   [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+ 1071..1074    ; Extend # Mn   [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+ 1082          ; Extend # Mn       MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+ 1085..1086    ; Extend # Mn   [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+ 108D          ; Extend # Mn       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+ 109D          ; Extend # Mn       MYANMAR VOWEL SIGN AITON AI
+ 135D..135F    ; Extend # Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+ 1712..1714    ; Extend # Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+ 1732..1733    ; Extend # Mn   [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+ 1752..1753    ; Extend # Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+ 1772..1773    ; Extend # Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+ 17B4..17B5    ; Extend # Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+ 17B7..17BD    ; Extend # Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+ 17C6          ; Extend # Mn       KHMER SIGN NIKAHIT
+ 17C9..17D3    ; Extend # Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+ 17DD          ; Extend # Mn       KHMER SIGN ATTHACAN
+ 180B..180D    ; Extend # Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+ 180F          ; Extend # Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR
+ 1885..1886    ; Extend # Mn   [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
+ 18A9          ; Extend # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
+ 1920..1922    ; Extend # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+ 1927..1928    ; Extend # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+ 1932          ; Extend # Mn       LIMBU SMALL LETTER ANUSVARA
+ 1939..193B    ; Extend # Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+ 1A17..1A18    ; Extend # Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+ 1A1B          ; Extend # Mn       BUGINESE VOWEL SIGN AE
+ 1A56          ; Extend # Mn       TAI THAM CONSONANT SIGN MEDIAL LA
+ 1A58..1A5E    ; Extend # Mn   [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+ 1A60          ; Extend # Mn       TAI THAM SIGN SAKOT
+ 1A62          ; Extend # Mn       TAI THAM VOWEL SIGN MAI SAT
+ 1A65..1A6C    ; Extend # Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+ 1A73..1A7C    ; Extend # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+ 1A7F          ; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+ 1AB0..1ABD    ; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+ 1ABE          ; Extend # Me       COMBINING PARENTHESES OVERLAY
+ 1ABF..1ACE    ; Extend # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
+ 1B00..1B03    ; Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+ 1B34          ; Extend # Mn       BALINESE SIGN REREKAN
+ 1B35          ; Extend # Mc       BALINESE VOWEL SIGN TEDUNG
+ 1B36..1B3A    ; Extend # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+ 1B3C          ; Extend # Mn       BALINESE VOWEL SIGN LA LENGA
+ 1B42          ; Extend # Mn       BALINESE VOWEL SIGN PEPET
+ 1B6B..1B73    ; Extend # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+ 1B80..1B81    ; Extend # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+ 1BA2..1BA5    ; Extend # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+ 1BA8..1BA9    ; Extend # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+ 1BAB..1BAD    ; Extend # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+ 1BE6          ; Extend # Mn       BATAK SIGN TOMPI
+ 1BE8..1BE9    ; Extend # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+ 1BED          ; Extend # Mn       BATAK VOWEL SIGN KARO O
+ 1BEF..1BF1    ; Extend # Mn   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+ 1C2C..1C33    ; Extend # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+ 1C36..1C37    ; Extend # Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+ 1CD0..1CD2    ; Extend # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+ 1CD4..1CE0    ; Extend # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+ 1CE2..1CE8    ; Extend # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+ 1CED          ; Extend # Mn       VEDIC SIGN TIRYAK
+ 1CF4          ; Extend # Mn       VEDIC TONE CANDRA ABOVE
+ 1CF8..1CF9    ; Extend # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+ 1DC0..1DFF    ; Extend # Mn  [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+ 200C          ; Extend # Cf       ZERO WIDTH NON-JOINER
+ 20D0..20DC    ; Extend # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+ 20DD..20E0    ; Extend # Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+ 20E1          ; Extend # Mn       COMBINING LEFT RIGHT ARROW ABOVE
+ 20E2..20E4    ; Extend # Me   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+ 20E5..20F0    ; Extend # Mn  [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+ 2CEF..2CF1    ; Extend # Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+ 2D7F          ; Extend # Mn       TIFINAGH CONSONANT JOINER
+ 2DE0..2DFF    ; Extend # Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+ 302A..302D    ; Extend # Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+ 302E..302F    ; Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+ 3099..309A    ; Extend # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ A66F          ; Extend # Mn       COMBINING CYRILLIC VZMET
+ A670..A672    ; Extend # Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+ A674..A67D    ; Extend # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+ A69E..A69F    ; Extend # Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
+ A6F0..A6F1    ; Extend # Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+ A802          ; Extend # Mn       SYLOTI NAGRI SIGN DVISVARA
+ A806          ; Extend # Mn       SYLOTI NAGRI SIGN HASANTA
+ A80B          ; Extend # Mn       SYLOTI NAGRI SIGN ANUSVARA
+ A825..A826    ; Extend # Mn   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+ A82C          ; Extend # Mn       SYLOTI NAGRI SIGN ALTERNATE HASANTA
+ A8C4..A8C5    ; Extend # Mn   [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
+ A8E0..A8F1    ; Extend # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+ A8FF          ; Extend # Mn       DEVANAGARI VOWEL SIGN AY
+ A926..A92D    ; Extend # Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+ A947..A951    ; Extend # Mn  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+ A980..A982    ; Extend # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+ A9B3          ; Extend # Mn       JAVANESE SIGN CECAK TELU
+ A9B6..A9B9    ; Extend # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+ A9BC..A9BD    ; Extend # Mn   [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+ A9E5          ; Extend # Mn       MYANMAR SIGN SHAN SAW
+ AA29..AA2E    ; Extend # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+ AA31..AA32    ; Extend # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+ AA35..AA36    ; Extend # Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+ AA43          ; Extend # Mn       CHAM CONSONANT SIGN FINAL NG
+ AA4C          ; Extend # Mn       CHAM CONSONANT SIGN FINAL M
+ AA7C          ; Extend # Mn       MYANMAR SIGN TAI LAING TONE-2
+ AAB0          ; Extend # Mn       TAI VIET MAI KANG
+ AAB2..AAB4    ; Extend # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+ AAB7..AAB8    ; Extend # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+ AABE..AABF    ; Extend # Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+ AAC1          ; Extend # Mn       TAI VIET TONE MAI THO
+ AAEC..AAED    ; Extend # Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+ AAF6          ; Extend # Mn       MEETEI MAYEK VIRAMA
+ ABE5          ; Extend # Mn       MEETEI MAYEK VOWEL SIGN ANAP
+ ABE8          ; Extend # Mn       MEETEI MAYEK VOWEL SIGN UNAP
+ ABED          ; Extend # Mn       MEETEI MAYEK APUN IYEK
+ FB1E          ; Extend # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
+ FE00..FE0F    ; Extend # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+ FE20..FE2F    ; Extend # Mn  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+ FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+ 101FD         ; Extend # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+ 102E0         ; Extend # Mn       COPTIC EPACT THOUSANDS MARK
+ 10376..1037A  ; Extend # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+ 10A01..10A03  ; Extend # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+ 10A05..10A06  ; Extend # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+ 10A0C..10A0F  ; Extend # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+ 10A38..10A3A  ; Extend # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+ 10A3F         ; Extend # Mn       KHAROSHTHI VIRAMA
+ 10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+ 10D24..10D27  ; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+ 10EAB..10EAC  ; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+ 10EFD..10EFF  ; Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
+ 10F46..10F50  ; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+ 10F82..10F85  ; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
+ 11001         ; Extend # Mn       BRAHMI SIGN ANUSVARA
+ 11038..11046  ; Extend # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+ 11070         ; Extend # Mn       BRAHMI SIGN OLD TAMIL VIRAMA
+ 11073..11074  ; Extend # Mn   [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
+ 1107F..11081  ; Extend # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
+ 110B3..110B6  ; Extend # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+ 110B9..110BA  ; Extend # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+ 110C2         ; Extend # Mn       KAITHI VOWEL SIGN VOCALIC R
+ 11100..11102  ; Extend # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+ 11127..1112B  ; Extend # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+ 1112D..11134  ; Extend # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+ 11173         ; Extend # Mn       MAHAJANI SIGN NUKTA
+ 11180..11181  ; Extend # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+ 111B6..111BE  ; Extend # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+ 111C9..111CC  ; Extend # Mn   [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
+ 111CF         ; Extend # Mn       SHARADA SIGN INVERTED CANDRABINDU
+ 1122F..11231  ; Extend # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+ 11234         ; Extend # Mn       KHOJKI SIGN ANUSVARA
+ 11236..11237  ; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+ 1123E         ; Extend # Mn       KHOJKI SIGN SUKUN
+ 11241         ; Extend # Mn       KHOJKI VOWEL SIGN VOCALIC R
+ 112DF         ; Extend # Mn       KHUDAWADI SIGN ANUSVARA
+ 112E3..112EA  ; Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+ 11300..11301  ; Extend # Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
+ 1133B..1133C  ; Extend # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+ 1133E         ; Extend # Mc       GRANTHA VOWEL SIGN AA
+ 11340         ; Extend # Mn       GRANTHA VOWEL SIGN II
+ 11357         ; Extend # Mc       GRANTHA AU LENGTH MARK
+ 11366..1136C  ; Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+ 11370..11374  ; Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+ 11438..1143F  ; Extend # Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+ 11442..11444  ; Extend # Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
+ 11446         ; Extend # Mn       NEWA SIGN NUKTA
+ 1145E         ; Extend # Mn       NEWA SANDHI MARK
+ 114B0         ; Extend # Mc       TIRHUTA VOWEL SIGN AA
+ 114B3..114B8  ; Extend # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+ 114BA         ; Extend # Mn       TIRHUTA VOWEL SIGN SHORT E
+ 114BD         ; Extend # Mc       TIRHUTA VOWEL SIGN SHORT O
+ 114BF..114C0  ; Extend # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+ 114C2..114C3  ; Extend # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+ 115AF         ; Extend # Mc       SIDDHAM VOWEL SIGN AA
+ 115B2..115B5  ; Extend # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+ 115BC..115BD  ; Extend # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+ 115BF..115C0  ; Extend # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+ 115DC..115DD  ; Extend # Mn   [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
+ 11633..1163A  ; Extend # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+ 1163D         ; Extend # Mn       MODI SIGN ANUSVARA
+ 1163F..11640  ; Extend # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+ 116AB         ; Extend # Mn       TAKRI SIGN ANUSVARA
+ 116AD         ; Extend # Mn       TAKRI VOWEL SIGN AA
+ 116B0..116B5  ; Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+ 116B7         ; Extend # Mn       TAKRI SIGN NUKTA
+ 1171D..1171F  ; Extend # Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
+ 11722..11725  ; Extend # Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
+ 11727..1172B  ; Extend # Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
+ 1182F..11837  ; Extend # Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
+ 11839..1183A  ; Extend # Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+ 11930         ; Extend # Mc       DIVES AKURU VOWEL SIGN AA
+ 1193B..1193C  ; Extend # Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
+ 1193E         ; Extend # Mn       DIVES AKURU VIRAMA
+ 11943         ; Extend # Mn       DIVES AKURU SIGN NUKTA
+ 119D4..119D7  ; Extend # Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+ 119DA..119DB  ; Extend # Mn   [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+ 119E0         ; Extend # Mn       NANDINAGARI SIGN VIRAMA
+ 11A01..11A0A  ; Extend # Mn  [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+ 11A33..11A38  ; Extend # Mn   [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
+ 11A3B..11A3E  ; Extend # Mn   [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+ 11A47         ; Extend # Mn       ZANABAZAR SQUARE SUBJOINER
+ 11A51..11A56  ; Extend # Mn   [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
+ 11A59..11A5B  ; Extend # Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
+ 11A8A..11A96  ; Extend # Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
+ 11A98..11A99  ; Extend # Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+ 11C30..11C36  ; Extend # Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
+ 11C38..11C3D  ; Extend # Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
+ 11C3F         ; Extend # Mn       BHAIKSUKI SIGN VIRAMA
+ 11C92..11CA7  ; Extend # Mn  [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+ 11CAA..11CB0  ; Extend # Mn   [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
+ 11CB2..11CB3  ; Extend # Mn   [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
+ 11CB5..11CB6  ; Extend # Mn   [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
+ 11D31..11D36  ; Extend # Mn   [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
+ 11D3A         ; Extend # Mn       MASARAM GONDI VOWEL SIGN E
+ 11D3C..11D3D  ; Extend # Mn   [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+ 11D3F..11D45  ; Extend # Mn   [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
+ 11D47         ; Extend # Mn       MASARAM GONDI RA-KARA
+ 11D90..11D91  ; Extend # Mn   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+ 11D95         ; Extend # Mn       GUNJALA GONDI SIGN ANUSVARA
+ 11D97         ; Extend # Mn       GUNJALA GONDI VIRAMA
+ 11EF3..11EF4  ; Extend # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+ 11F00..11F01  ; Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+ 11F36..11F3A  ; Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+ 11F40         ; Extend # Mn       KAWI VOWEL SIGN EU
+ 11F42         ; Extend # Mn       KAWI CONJOINER
+ 13440         ; Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+ 13447..13455  ; Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+ 16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+ 16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+ 16F4F         ; Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
+ 16F8F..16F92  ; Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+ 16FE4         ; Extend # Mn       KHITAN SMALL SCRIPT FILLER
+ 1BC9D..1BC9E  ; Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+ 1CF00..1CF2D  ; Extend # Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+ 1CF30..1CF46  ; Extend # Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
+ 1D165         ; Extend # Mc       MUSICAL SYMBOL COMBINING STEM
+ 1D167..1D169  ; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+ 1D16E..1D172  ; Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
+ 1D17B..1D182  ; Extend # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+ 1D185..1D18B  ; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+ 1D1AA..1D1AD  ; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+ 1D242..1D244  ; Extend # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+ 1DA00..1DA36  ; Extend # Mn  [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+ 1DA3B..1DA6C  ; Extend # Mn  [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+ 1DA75         ; Extend # Mn       SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+ 1DA84         ; Extend # Mn       SIGNWRITING LOCATION HEAD NECK
+ 1DA9B..1DA9F  ; Extend # Mn   [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+ 1DAA1..1DAAF  ; Extend # Mn  [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+ 1E000..1E006  ; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+ 1E008..1E018  ; Extend # Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+ 1E01B..1E021  ; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+ 1E023..1E024  ; Extend # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+ 1E026..1E02A  ; Extend # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+ 1E08F         ; Extend # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ 1E130..1E136  ; Extend # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+ 1E2AE         ; Extend # Mn       TOTO SIGN RISING TONE
+ 1E2EC..1E2EF  ; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+ 1E4EC..1E4EF  ; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+ 1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+ 1E944..1E94A  ; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+ 1F3FB..1F3FF  ; Extend # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
+ E0020..E007F  ; Extend # Cf  [96] TAG SPACE..CANCEL TAG
+ E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+ 
+ # Total code points: 2130
+ 
+ # ================================================
+ 
+ 1F1E6..1F1FF  ; Regional_Indicator # So  [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+ 
+ # Total code points: 26
+ 
+ # ================================================
+ 
+ 0903          ; SpacingMark # Mc       DEVANAGARI SIGN VISARGA
+ 093B          ; SpacingMark # Mc       DEVANAGARI VOWEL SIGN OOE
+ 093E..0940    ; SpacingMark # Mc   [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+ 0949..094C    ; SpacingMark # Mc   [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+ 094E..094F    ; SpacingMark # Mc   [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+ 0982..0983    ; SpacingMark # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+ 09BF..09C0    ; SpacingMark # Mc   [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II
+ 09C7..09C8    ; SpacingMark # Mc   [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+ 09CB..09CC    ; SpacingMark # Mc   [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+ 0A03          ; SpacingMark # Mc       GURMUKHI SIGN VISARGA
+ 0A3E..0A40    ; SpacingMark # Mc   [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+ 0A83          ; SpacingMark # Mc       GUJARATI SIGN VISARGA
+ 0ABE..0AC0    ; SpacingMark # Mc   [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+ 0AC9          ; SpacingMark # Mc       GUJARATI VOWEL SIGN CANDRA O
+ 0ACB..0ACC    ; SpacingMark # Mc   [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+ 0B02..0B03    ; SpacingMark # Mc   [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+ 0B40          ; SpacingMark # Mc       ORIYA VOWEL SIGN II
+ 0B47..0B48    ; SpacingMark # Mc   [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+ 0B4B..0B4C    ; SpacingMark # Mc   [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+ 0BBF          ; SpacingMark # Mc       TAMIL VOWEL SIGN I
+ 0BC1..0BC2    ; SpacingMark # Mc   [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+ 0BC6..0BC8    ; SpacingMark # Mc   [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+ 0BCA..0BCC    ; SpacingMark # Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+ 0C01..0C03    ; SpacingMark # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+ 0C41..0C44    ; SpacingMark # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+ 0C82..0C83    ; SpacingMark # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+ 0CBE          ; SpacingMark # Mc       KANNADA VOWEL SIGN AA
+ 0CC0..0CC1    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U
+ 0CC3..0CC4    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
+ 0CC7..0CC8    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+ 0CCA..0CCB    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+ 0CF3          ; SpacingMark # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+ 0D02..0D03    ; SpacingMark # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+ 0D3F..0D40    ; SpacingMark # Mc   [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
+ 0D46..0D48    ; SpacingMark # Mc   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+ 0D4A..0D4C    ; SpacingMark # Mc   [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+ 0D82..0D83    ; SpacingMark # Mc   [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+ 0DD0..0DD1    ; SpacingMark # Mc   [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+ 0DD8..0DDE    ; SpacingMark # Mc   [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+ 0DF2..0DF3    ; SpacingMark # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+ 0E33          ; SpacingMark # Lo       THAI CHARACTER SARA AM
+ 0EB3          ; SpacingMark # Lo       LAO VOWEL SIGN AM
+ 0F3E..0F3F    ; SpacingMark # Mc   [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+ 0F7F          ; SpacingMark # Mc       TIBETAN SIGN RNAM BCAD
+ 1031          ; SpacingMark # Mc       MYANMAR VOWEL SIGN E
+ 103B..103C    ; SpacingMark # Mc   [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+ 1056..1057    ; SpacingMark # Mc   [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+ 1084          ; SpacingMark # Mc       MYANMAR VOWEL SIGN SHAN E
+ 1715          ; SpacingMark # Mc       TAGALOG SIGN PAMUDPOD
+ 1734          ; SpacingMark # Mc       HANUNOO SIGN PAMUDPOD
+ 17B6          ; SpacingMark # Mc       KHMER VOWEL SIGN AA
+ 17BE..17C5    ; SpacingMark # Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+ 17C7..17C8    ; SpacingMark # Mc   [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+ 1923..1926    ; SpacingMark # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+ 1929..192B    ; SpacingMark # Mc   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+ 1930..1931    ; SpacingMark # Mc   [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+ 1933..1938    ; SpacingMark # Mc   [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+ 1A19..1A1A    ; SpacingMark # Mc   [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+ 1A55          ; SpacingMark # Mc       TAI THAM CONSONANT SIGN MEDIAL RA
+ 1A57          ; SpacingMark # Mc       TAI THAM CONSONANT SIGN LA TANG LAI
+ 1A6D..1A72    ; SpacingMark # Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+ 1B04          ; SpacingMark # Mc       BALINESE SIGN BISAH
+ 1B3B          ; SpacingMark # Mc       BALINESE VOWEL SIGN RA REPA TEDUNG
+ 1B3D..1B41    ; SpacingMark # Mc   [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+ 1B43..1B44    ; SpacingMark # Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+ 1B82          ; SpacingMark # Mc       SUNDANESE SIGN PANGWISAD
+ 1BA1          ; SpacingMark # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
+ 1BA6..1BA7    ; SpacingMark # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+ 1BAA          ; SpacingMark # Mc       SUNDANESE SIGN PAMAAEH
+ 1BE7          ; SpacingMark # Mc       BATAK VOWEL SIGN E
+ 1BEA..1BEC    ; SpacingMark # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+ 1BEE          ; SpacingMark # Mc       BATAK VOWEL SIGN U
+ 1BF2..1BF3    ; SpacingMark # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
+ 1C24..1C2B    ; SpacingMark # Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+ 1C34..1C35    ; SpacingMark # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+ 1CE1          ; SpacingMark # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+ 1CF7          ; SpacingMark # Mc       VEDIC SIGN ATIKRAMA
+ A823..A824    ; SpacingMark # Mc   [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+ A827          ; SpacingMark # Mc       SYLOTI NAGRI VOWEL SIGN OO
+ A880..A881    ; SpacingMark # Mc   [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+ A8B4..A8C3    ; SpacingMark # Mc  [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+ A952..A953    ; SpacingMark # Mc   [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+ A983          ; SpacingMark # Mc       JAVANESE SIGN WIGNYAN
+ A9B4..A9B5    ; SpacingMark # Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+ A9BA..A9BB    ; SpacingMark # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+ A9BE..A9C0    ; SpacingMark # Mc   [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
+ AA2F..AA30    ; SpacingMark # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+ AA33..AA34    ; SpacingMark # Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+ AA4D          ; SpacingMark # Mc       CHAM CONSONANT SIGN FINAL H
+ AAEB          ; SpacingMark # Mc       MEETEI MAYEK VOWEL SIGN II
+ AAEE..AAEF    ; SpacingMark # Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+ AAF5          ; SpacingMark # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
+ ABE3..ABE4    ; SpacingMark # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+ ABE6..ABE7    ; SpacingMark # Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+ ABE9..ABEA    ; SpacingMark # Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ ABEC          ; SpacingMark # Mc       MEETEI MAYEK LUM IYEK
+ 11000         ; SpacingMark # Mc       BRAHMI SIGN CANDRABINDU
+ 11002         ; SpacingMark # Mc       BRAHMI SIGN VISARGA
+ 11082         ; SpacingMark # Mc       KAITHI SIGN VISARGA
+ 110B0..110B2  ; SpacingMark # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+ 110B7..110B8  ; SpacingMark # Mc   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+ 1112C         ; SpacingMark # Mc       CHAKMA VOWEL SIGN E
+ 11145..11146  ; SpacingMark # Mc   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
+ 11182         ; SpacingMark # Mc       SHARADA SIGN VISARGA
+ 111B3..111B5  ; SpacingMark # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+ 111BF..111C0  ; SpacingMark # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+ 111CE         ; SpacingMark # Mc       SHARADA VOWEL SIGN PRISHTHAMATRA E
+ 1122C..1122E  ; SpacingMark # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+ 11232..11233  ; SpacingMark # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+ 11235         ; SpacingMark # Mc       KHOJKI SIGN VIRAMA
+ 112E0..112E2  ; SpacingMark # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+ 11302..11303  ; SpacingMark # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+ 1133F         ; SpacingMark # Mc       GRANTHA VOWEL SIGN I
+ 11341..11344  ; SpacingMark # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+ 11347..11348  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+ 1134B..1134D  ; SpacingMark # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+ 11362..11363  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+ 11435..11437  ; SpacingMark # Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
+ 11440..11441  ; SpacingMark # Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
+ 11445         ; SpacingMark # Mc       NEWA SIGN VISARGA
+ 114B1..114B2  ; SpacingMark # Mc   [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
+ 114B9         ; SpacingMark # Mc       TIRHUTA VOWEL SIGN E
+ 114BB..114BC  ; SpacingMark # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+ 114BE         ; SpacingMark # Mc       TIRHUTA VOWEL SIGN AU
+ 114C1         ; SpacingMark # Mc       TIRHUTA SIGN VISARGA
+ 115B0..115B1  ; SpacingMark # Mc   [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II
+ 115B8..115BB  ; SpacingMark # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+ 115BE         ; SpacingMark # Mc       SIDDHAM SIGN VISARGA
+ 11630..11632  ; SpacingMark # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+ 1163B..1163C  ; SpacingMark # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+ 1163E         ; SpacingMark # Mc       MODI SIGN VISARGA
+ 116AC         ; SpacingMark # Mc       TAKRI SIGN VISARGA
+ 116AE..116AF  ; SpacingMark # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+ 116B6         ; SpacingMark # Mc       TAKRI SIGN VIRAMA
+ 11726         ; SpacingMark # Mc       AHOM VOWEL SIGN E
+ 1182C..1182E  ; SpacingMark # Mc   [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
+ 11838         ; SpacingMark # Mc       DOGRA SIGN VISARGA
+ 11931..11935  ; SpacingMark # Mc   [5] DIVES AKURU VOWEL SIGN I..DIVES AKURU VOWEL SIGN E
+ 11937..11938  ; SpacingMark # Mc   [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
+ 1193D         ; SpacingMark # Mc       DIVES AKURU SIGN HALANTA
+ 11940         ; SpacingMark # Mc       DIVES AKURU MEDIAL YA
+ 11942         ; SpacingMark # Mc       DIVES AKURU MEDIAL RA
+ 119D1..119D3  ; SpacingMark # Mc   [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+ 119DC..119DF  ; SpacingMark # Mc   [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+ 119E4         ; SpacingMark # Mc       NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+ 11A39         ; SpacingMark # Mc       ZANABAZAR SQUARE SIGN VISARGA
+ 11A57..11A58  ; SpacingMark # Mc   [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
+ 11A97         ; SpacingMark # Mc       SOYOMBO SIGN VISARGA
+ 11C2F         ; SpacingMark # Mc       BHAIKSUKI VOWEL SIGN AA
+ 11C3E         ; SpacingMark # Mc       BHAIKSUKI SIGN VISARGA
+ 11CA9         ; SpacingMark # Mc       MARCHEN SUBJOINED LETTER YA
+ 11CB1         ; SpacingMark # Mc       MARCHEN VOWEL SIGN I
+ 11CB4         ; SpacingMark # Mc       MARCHEN VOWEL SIGN O
+ 11D8A..11D8E  ; SpacingMark # Mc   [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
+ 11D93..11D94  ; SpacingMark # Mc   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
+ 11D96         ; SpacingMark # Mc       GUNJALA GONDI SIGN VISARGA
+ 11EF5..11EF6  ; SpacingMark # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+ 11F03         ; SpacingMark # Mc       KAWI SIGN VISARGA
+ 11F34..11F35  ; SpacingMark # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+ 11F3E..11F3F  ; SpacingMark # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+ 11F41         ; SpacingMark # Mc       KAWI SIGN KILLER
+ 16F51..16F87  ; SpacingMark # Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
+ 16FF0..16FF1  ; SpacingMark # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
+ 1D166         ; SpacingMark # Mc       MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+ 1D16D         ; SpacingMark # Mc       MUSICAL SYMBOL COMBINING AUGMENTATION DOT
+ 
+ # Total code points: 395
+ 
+ # ================================================
+ 
+ 1100..115F    ; L # Lo  [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
+ A960..A97C    ; L # Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+ 
+ # Total code points: 125
+ 
+ # ================================================
+ 
+ 1160..11A7    ; V # Lo  [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
+ D7B0..D7C6    ; V # Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+ 
+ # Total code points: 95
+ 
+ # ================================================
+ 
+ 11A8..11FF    ; T # Lo  [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
+ D7CB..D7FB    ; T # Lo  [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+ 
+ # Total code points: 137
+ 
+ # ================================================
+ 
+ AC00          ; LV # Lo       HANGUL SYLLABLE GA
+ AC1C          ; LV # Lo       HANGUL SYLLABLE GAE
+ AC38          ; LV # Lo       HANGUL SYLLABLE GYA
+ AC54          ; LV # Lo       HANGUL SYLLABLE GYAE
+ AC70          ; LV # Lo       HANGUL SYLLABLE GEO
+ AC8C          ; LV # Lo       HANGUL SYLLABLE GE
+ ACA8          ; LV # Lo       HANGUL SYLLABLE GYEO
+ ACC4          ; LV # Lo       HANGUL SYLLABLE GYE
+ ACE0          ; LV # Lo       HANGUL SYLLABLE GO
+ ACFC          ; LV # Lo       HANGUL SYLLABLE GWA
+ AD18          ; LV # Lo       HANGUL SYLLABLE GWAE
+ AD34          ; LV # Lo       HANGUL SYLLABLE GOE
+ AD50          ; LV # Lo       HANGUL SYLLABLE GYO
+ AD6C          ; LV # Lo       HANGUL SYLLABLE GU
+ AD88          ; LV # Lo       HANGUL SYLLABLE GWEO
+ ADA4          ; LV # Lo       HANGUL SYLLABLE GWE
+ ADC0          ; LV # Lo       HANGUL SYLLABLE GWI
+ ADDC          ; LV # Lo       HANGUL SYLLABLE GYU
+ ADF8          ; LV # Lo       HANGUL SYLLABLE GEU
+ AE14          ; LV # Lo       HANGUL SYLLABLE GYI
+ AE30          ; LV # Lo       HANGUL SYLLABLE GI
+ AE4C          ; LV # Lo       HANGUL SYLLABLE GGA
+ AE68          ; LV # Lo       HANGUL SYLLABLE GGAE
+ AE84          ; LV # Lo       HANGUL SYLLABLE GGYA
+ AEA0          ; LV # Lo       HANGUL SYLLABLE GGYAE
+ AEBC          ; LV # Lo       HANGUL SYLLABLE GGEO
+ AED8          ; LV # Lo       HANGUL SYLLABLE GGE
+ AEF4          ; LV # Lo       HANGUL SYLLABLE GGYEO
+ AF10          ; LV # Lo       HANGUL SYLLABLE GGYE
+ AF2C          ; LV # Lo       HANGUL SYLLABLE GGO
+ AF48          ; LV # Lo       HANGUL SYLLABLE GGWA
+ AF64          ; LV # Lo       HANGUL SYLLABLE GGWAE
+ AF80          ; LV # Lo       HANGUL SYLLABLE GGOE
+ AF9C          ; LV # Lo       HANGUL SYLLABLE GGYO
+ AFB8          ; LV # Lo       HANGUL SYLLABLE GGU
+ AFD4          ; LV # Lo       HANGUL SYLLABLE GGWEO
+ AFF0          ; LV # Lo       HANGUL SYLLABLE GGWE
+ B00C          ; LV # Lo       HANGUL SYLLABLE GGWI
+ B028          ; LV # Lo       HANGUL SYLLABLE GGYU
+ B044          ; LV # Lo       HANGUL SYLLABLE GGEU
+ B060          ; LV # Lo       HANGUL SYLLABLE GGYI
+ B07C          ; LV # Lo       HANGUL SYLLABLE GGI
+ B098          ; LV # Lo       HANGUL SYLLABLE NA
+ B0B4          ; LV # Lo       HANGUL SYLLABLE NAE
+ B0D0          ; LV # Lo       HANGUL SYLLABLE NYA
+ B0EC          ; LV # Lo       HANGUL SYLLABLE NYAE
+ B108          ; LV # Lo       HANGUL SYLLABLE NEO
+ B124          ; LV # Lo       HANGUL SYLLABLE NE
+ B140          ; LV # Lo       HANGUL SYLLABLE NYEO
+ B15C          ; LV # Lo       HANGUL SYLLABLE NYE
+ B178          ; LV # Lo       HANGUL SYLLABLE NO
+ B194          ; LV # Lo       HANGUL SYLLABLE NWA
+ B1B0          ; LV # Lo       HANGUL SYLLABLE NWAE
+ B1CC          ; LV # Lo       HANGUL SYLLABLE NOE
+ B1E8          ; LV # Lo       HANGUL SYLLABLE NYO
+ B204          ; LV # Lo       HANGUL SYLLABLE NU
+ B220          ; LV # Lo       HANGUL SYLLABLE NWEO
+ B23C          ; LV # Lo       HANGUL SYLLABLE NWE
+ B258          ; LV # Lo       HANGUL SYLLABLE NWI
+ B274          ; LV # Lo       HANGUL SYLLABLE NYU
+ B290          ; LV # Lo       HANGUL SYLLABLE NEU
+ B2AC          ; LV # Lo       HANGUL SYLLABLE NYI
+ B2C8          ; LV # Lo       HANGUL SYLLABLE NI
+ B2E4          ; LV # Lo       HANGUL SYLLABLE DA
+ B300          ; LV # Lo       HANGUL SYLLABLE DAE
+ B31C          ; LV # Lo       HANGUL SYLLABLE DYA
+ B338          ; LV # Lo       HANGUL SYLLABLE DYAE
+ B354          ; LV # Lo       HANGUL SYLLABLE DEO
+ B370          ; LV # Lo       HANGUL SYLLABLE DE
+ B38C          ; LV # Lo       HANGUL SYLLABLE DYEO
+ B3A8          ; LV # Lo       HANGUL SYLLABLE DYE
+ B3C4          ; LV # Lo       HANGUL SYLLABLE DO
+ B3E0          ; LV # Lo       HANGUL SYLLABLE DWA
+ B3FC          ; LV # Lo       HANGUL SYLLABLE DWAE
+ B418          ; LV # Lo       HANGUL SYLLABLE DOE
+ B434          ; LV # Lo       HANGUL SYLLABLE DYO
+ B450          ; LV # Lo       HANGUL SYLLABLE DU
+ B46C          ; LV # Lo       HANGUL SYLLABLE DWEO
+ B488          ; LV # Lo       HANGUL SYLLABLE DWE
+ B4A4          ; LV # Lo       HANGUL SYLLABLE DWI
+ B4C0          ; LV # Lo       HANGUL SYLLABLE DYU
+ B4DC          ; LV # Lo       HANGUL SYLLABLE DEU
+ B4F8          ; LV # Lo       HANGUL SYLLABLE DYI
+ B514          ; LV # Lo       HANGUL SYLLABLE DI
+ B530          ; LV # Lo       HANGUL SYLLABLE DDA
+ B54C          ; LV # Lo       HANGUL SYLLABLE DDAE
+ B568          ; LV # Lo       HANGUL SYLLABLE DDYA
+ B584          ; LV # Lo       HANGUL SYLLABLE DDYAE
+ B5A0          ; LV # Lo       HANGUL SYLLABLE DDEO
+ B5BC          ; LV # Lo       HANGUL SYLLABLE DDE
+ B5D8          ; LV # Lo       HANGUL SYLLABLE DDYEO
+ B5F4          ; LV # Lo       HANGUL SYLLABLE DDYE
+ B610          ; LV # Lo       HANGUL SYLLABLE DDO
+ B62C          ; LV # Lo       HANGUL SYLLABLE DDWA
+ B648          ; LV # Lo       HANGUL SYLLABLE DDWAE
+ B664          ; LV # Lo       HANGUL SYLLABLE DDOE
+ B680          ; LV # Lo       HANGUL SYLLABLE DDYO
+ B69C          ; LV # Lo       HANGUL SYLLABLE DDU
+ B6B8          ; LV # Lo       HANGUL SYLLABLE DDWEO
+ B6D4          ; LV # Lo       HANGUL SYLLABLE DDWE
+ B6F0          ; LV # Lo       HANGUL SYLLABLE DDWI
+ B70C          ; LV # Lo       HANGUL SYLLABLE DDYU
+ B728          ; LV # Lo       HANGUL SYLLABLE DDEU
+ B744          ; LV # Lo       HANGUL SYLLABLE DDYI
+ B760          ; LV # Lo       HANGUL SYLLABLE DDI
+ B77C          ; LV # Lo       HANGUL SYLLABLE RA
+ B798          ; LV # Lo       HANGUL SYLLABLE RAE
+ B7B4          ; LV # Lo       HANGUL SYLLABLE RYA
+ B7D0          ; LV # Lo       HANGUL SYLLABLE RYAE
+ B7EC          ; LV # Lo       HANGUL SYLLABLE REO
+ B808          ; LV # Lo       HANGUL SYLLABLE RE
+ B824          ; LV # Lo       HANGUL SYLLABLE RYEO
+ B840          ; LV # Lo       HANGUL SYLLABLE RYE
+ B85C          ; LV # Lo       HANGUL SYLLABLE RO
+ B878          ; LV # Lo       HANGUL SYLLABLE RWA
+ B894          ; LV # Lo       HANGUL SYLLABLE RWAE
+ B8B0          ; LV # Lo       HANGUL SYLLABLE ROE
+ B8CC          ; LV # Lo       HANGUL SYLLABLE RYO
+ B8E8          ; LV # Lo       HANGUL SYLLABLE RU
+ B904          ; LV # Lo       HANGUL SYLLABLE RWEO
+ B920          ; LV # Lo       HANGUL SYLLABLE RWE
+ B93C          ; LV # Lo       HANGUL SYLLABLE RWI
+ B958          ; LV # Lo       HANGUL SYLLABLE RYU
+ B974          ; LV # Lo       HANGUL SYLLABLE REU
+ B990          ; LV # Lo       HANGUL SYLLABLE RYI
+ B9AC          ; LV # Lo       HANGUL SYLLABLE RI
+ B9C8          ; LV # Lo       HANGUL SYLLABLE MA
+ B9E4          ; LV # Lo       HANGUL SYLLABLE MAE
+ BA00          ; LV # Lo       HANGUL SYLLABLE MYA
+ BA1C          ; LV # Lo       HANGUL SYLLABLE MYAE
+ BA38          ; LV # Lo       HANGUL SYLLABLE MEO
+ BA54          ; LV # Lo       HANGUL SYLLABLE ME
+ BA70          ; LV # Lo       HANGUL SYLLABLE MYEO
+ BA8C          ; LV # Lo       HANGUL SYLLABLE MYE
+ BAA8          ; LV # Lo       HANGUL SYLLABLE MO
+ BAC4          ; LV # Lo       HANGUL SYLLABLE MWA
+ BAE0          ; LV # Lo       HANGUL SYLLABLE MWAE
+ BAFC          ; LV # Lo       HANGUL SYLLABLE MOE
+ BB18          ; LV # Lo       HANGUL SYLLABLE MYO
+ BB34          ; LV # Lo       HANGUL SYLLABLE MU
+ BB50          ; LV # Lo       HANGUL SYLLABLE MWEO
+ BB6C          ; LV # Lo       HANGUL SYLLABLE MWE
+ BB88          ; LV # Lo       HANGUL SYLLABLE MWI
+ BBA4          ; LV # Lo       HANGUL SYLLABLE MYU
+ BBC0          ; LV # Lo       HANGUL SYLLABLE MEU
+ BBDC          ; LV # Lo       HANGUL SYLLABLE MYI
+ BBF8          ; LV # Lo       HANGUL SYLLABLE MI
+ BC14          ; LV # Lo       HANGUL SYLLABLE BA
+ BC30          ; LV # Lo       HANGUL SYLLABLE BAE
+ BC4C          ; LV # Lo       HANGUL SYLLABLE BYA
+ BC68          ; LV # Lo       HANGUL SYLLABLE BYAE
+ BC84          ; LV # Lo       HANGUL SYLLABLE BEO
+ BCA0          ; LV # Lo       HANGUL SYLLABLE BE
+ BCBC          ; LV # Lo       HANGUL SYLLABLE BYEO
+ BCD8          ; LV # Lo       HANGUL SYLLABLE BYE
+ BCF4          ; LV # Lo       HANGUL SYLLABLE BO
+ BD10          ; LV # Lo       HANGUL SYLLABLE BWA
+ BD2C          ; LV # Lo       HANGUL SYLLABLE BWAE
+ BD48          ; LV # Lo       HANGUL SYLLABLE BOE
+ BD64          ; LV # Lo       HANGUL SYLLABLE BYO
+ BD80          ; LV # Lo       HANGUL SYLLABLE BU
+ BD9C          ; LV # Lo       HANGUL SYLLABLE BWEO
+ BDB8          ; LV # Lo       HANGUL SYLLABLE BWE
+ BDD4          ; LV # Lo       HANGUL SYLLABLE BWI
+ BDF0          ; LV # Lo       HANGUL SYLLABLE BYU
+ BE0C          ; LV # Lo       HANGUL SYLLABLE BEU
+ BE28          ; LV # Lo       HANGUL SYLLABLE BYI
+ BE44          ; LV # Lo       HANGUL SYLLABLE BI
+ BE60          ; LV # Lo       HANGUL SYLLABLE BBA
+ BE7C          ; LV # Lo       HANGUL SYLLABLE BBAE
+ BE98          ; LV # Lo       HANGUL SYLLABLE BBYA
+ BEB4          ; LV # Lo       HANGUL SYLLABLE BBYAE
+ BED0          ; LV # Lo       HANGUL SYLLABLE BBEO
+ BEEC          ; LV # Lo       HANGUL SYLLABLE BBE
+ BF08          ; LV # Lo       HANGUL SYLLABLE BBYEO
+ BF24          ; LV # Lo       HANGUL SYLLABLE BBYE
+ BF40          ; LV # Lo       HANGUL SYLLABLE BBO
+ BF5C          ; LV # Lo       HANGUL SYLLABLE BBWA
+ BF78          ; LV # Lo       HANGUL SYLLABLE BBWAE
+ BF94          ; LV # Lo       HANGUL SYLLABLE BBOE
+ BFB0          ; LV # Lo       HANGUL SYLLABLE BBYO
+ BFCC          ; LV # Lo       HANGUL SYLLABLE BBU
+ BFE8          ; LV # Lo       HANGUL SYLLABLE BBWEO
+ C004          ; LV # Lo       HANGUL SYLLABLE BBWE
+ C020          ; LV # Lo       HANGUL SYLLABLE BBWI
+ C03C          ; LV # Lo       HANGUL SYLLABLE BBYU
+ C058          ; LV # Lo       HANGUL SYLLABLE BBEU
+ C074          ; LV # Lo       HANGUL SYLLABLE BBYI
+ C090          ; LV # Lo       HANGUL SYLLABLE BBI
+ C0AC          ; LV # Lo       HANGUL SYLLABLE SA
+ C0C8          ; LV # Lo       HANGUL SYLLABLE SAE
+ C0E4          ; LV # Lo       HANGUL SYLLABLE SYA
+ C100          ; LV # Lo       HANGUL SYLLABLE SYAE
+ C11C          ; LV # Lo       HANGUL SYLLABLE SEO
+ C138          ; LV # Lo       HANGUL SYLLABLE SE
+ C154          ; LV # Lo       HANGUL SYLLABLE SYEO
+ C170          ; LV # Lo       HANGUL SYLLABLE SYE
+ C18C          ; LV # Lo       HANGUL SYLLABLE SO
+ C1A8          ; LV # Lo       HANGUL SYLLABLE SWA
+ C1C4          ; LV # Lo       HANGUL SYLLABLE SWAE
+ C1E0          ; LV # Lo       HANGUL SYLLABLE SOE
+ C1FC          ; LV # Lo       HANGUL SYLLABLE SYO
+ C218          ; LV # Lo       HANGUL SYLLABLE SU
+ C234          ; LV # Lo       HANGUL SYLLABLE SWEO
+ C250          ; LV # Lo       HANGUL SYLLABLE SWE
+ C26C          ; LV # Lo       HANGUL SYLLABLE SWI
+ C288          ; LV # Lo       HANGUL SYLLABLE SYU
+ C2A4          ; LV # Lo       HANGUL SYLLABLE SEU
+ C2C0          ; LV # Lo       HANGUL SYLLABLE SYI
+ C2DC          ; LV # Lo       HANGUL SYLLABLE SI
+ C2F8          ; LV # Lo       HANGUL SYLLABLE SSA
+ C314          ; LV # Lo       HANGUL SYLLABLE SSAE
+ C330          ; LV # Lo       HANGUL SYLLABLE SSYA
+ C34C          ; LV # Lo       HANGUL SYLLABLE SSYAE
+ C368          ; LV # Lo       HANGUL SYLLABLE SSEO
+ C384          ; LV # Lo       HANGUL SYLLABLE SSE
+ C3A0          ; LV # Lo       HANGUL SYLLABLE SSYEO
+ C3BC          ; LV # Lo       HANGUL SYLLABLE SSYE
+ C3D8          ; LV # Lo       HANGUL SYLLABLE SSO
+ C3F4          ; LV # Lo       HANGUL SYLLABLE SSWA
+ C410          ; LV # Lo       HANGUL SYLLABLE SSWAE
+ C42C          ; LV # Lo       HANGUL SYLLABLE SSOE
+ C448          ; LV # Lo       HANGUL SYLLABLE SSYO
+ C464          ; LV # Lo       HANGUL SYLLABLE SSU
+ C480          ; LV # Lo       HANGUL SYLLABLE SSWEO
+ C49C          ; LV # Lo       HANGUL SYLLABLE SSWE
+ C4B8          ; LV # Lo       HANGUL SYLLABLE SSWI
+ C4D4          ; LV # Lo       HANGUL SYLLABLE SSYU
+ C4F0          ; LV # Lo       HANGUL SYLLABLE SSEU
+ C50C          ; LV # Lo       HANGUL SYLLABLE SSYI
+ C528          ; LV # Lo       HANGUL SYLLABLE SSI
+ C544          ; LV # Lo       HANGUL SYLLABLE A
+ C560          ; LV # Lo       HANGUL SYLLABLE AE
+ C57C          ; LV # Lo       HANGUL SYLLABLE YA
+ C598          ; LV # Lo       HANGUL SYLLABLE YAE
+ C5B4          ; LV # Lo       HANGUL SYLLABLE EO
+ C5D0          ; LV # Lo       HANGUL SYLLABLE E
+ C5EC          ; LV # Lo       HANGUL SYLLABLE YEO
+ C608          ; LV # Lo       HANGUL SYLLABLE YE
+ C624          ; LV # Lo       HANGUL SYLLABLE O
+ C640          ; LV # Lo       HANGUL SYLLABLE WA
+ C65C          ; LV # Lo       HANGUL SYLLABLE WAE
+ C678          ; LV # Lo       HANGUL SYLLABLE OE
+ C694          ; LV # Lo       HANGUL SYLLABLE YO
+ C6B0          ; LV # Lo       HANGUL SYLLABLE U
+ C6CC          ; LV # Lo       HANGUL SYLLABLE WEO
+ C6E8          ; LV # Lo       HANGUL SYLLABLE WE
+ C704          ; LV # Lo       HANGUL SYLLABLE WI
+ C720          ; LV # Lo       HANGUL SYLLABLE YU
+ C73C          ; LV # Lo       HANGUL SYLLABLE EU
+ C758          ; LV # Lo       HANGUL SYLLABLE YI
+ C774          ; LV # Lo       HANGUL SYLLABLE I
+ C790          ; LV # Lo       HANGUL SYLLABLE JA
+ C7AC          ; LV # Lo       HANGUL SYLLABLE JAE
+ C7C8          ; LV # Lo       HANGUL SYLLABLE JYA
+ C7E4          ; LV # Lo       HANGUL SYLLABLE JYAE
+ C800          ; LV # Lo       HANGUL SYLLABLE JEO
+ C81C          ; LV # Lo       HANGUL SYLLABLE JE
+ C838          ; LV # Lo       HANGUL SYLLABLE JYEO
+ C854          ; LV # Lo       HANGUL SYLLABLE JYE
+ C870          ; LV # Lo       HANGUL SYLLABLE JO
+ C88C          ; LV # Lo       HANGUL SYLLABLE JWA
+ C8A8          ; LV # Lo       HANGUL SYLLABLE JWAE
+ C8C4          ; LV # Lo       HANGUL SYLLABLE JOE
+ C8E0          ; LV # Lo       HANGUL SYLLABLE JYO
+ C8FC          ; LV # Lo       HANGUL SYLLABLE JU
+ C918          ; LV # Lo       HANGUL SYLLABLE JWEO
+ C934          ; LV # Lo       HANGUL SYLLABLE JWE
+ C950          ; LV # Lo       HANGUL SYLLABLE JWI
+ C96C          ; LV # Lo       HANGUL SYLLABLE JYU
+ C988          ; LV # Lo       HANGUL SYLLABLE JEU
+ C9A4          ; LV # Lo       HANGUL SYLLABLE JYI
+ C9C0          ; LV # Lo       HANGUL SYLLABLE JI
+ C9DC          ; LV # Lo       HANGUL SYLLABLE JJA
+ C9F8          ; LV # Lo       HANGUL SYLLABLE JJAE
+ CA14          ; LV # Lo       HANGUL SYLLABLE JJYA
+ CA30          ; LV # Lo       HANGUL SYLLABLE JJYAE
+ CA4C          ; LV # Lo       HANGUL SYLLABLE JJEO
+ CA68          ; LV # Lo       HANGUL SYLLABLE JJE
+ CA84          ; LV # Lo       HANGUL SYLLABLE JJYEO
+ CAA0          ; LV # Lo       HANGUL SYLLABLE JJYE
+ CABC          ; LV # Lo       HANGUL SYLLABLE JJO
+ CAD8          ; LV # Lo       HANGUL SYLLABLE JJWA
+ CAF4          ; LV # Lo       HANGUL SYLLABLE JJWAE
+ CB10          ; LV # Lo       HANGUL SYLLABLE JJOE
+ CB2C          ; LV # Lo       HANGUL SYLLABLE JJYO
+ CB48          ; LV # Lo       HANGUL SYLLABLE JJU
+ CB64          ; LV # Lo       HANGUL SYLLABLE JJWEO
+ CB80          ; LV # Lo       HANGUL SYLLABLE JJWE
+ CB9C          ; LV # Lo       HANGUL SYLLABLE JJWI
+ CBB8          ; LV # Lo       HANGUL SYLLABLE JJYU
+ CBD4          ; LV # Lo       HANGUL SYLLABLE JJEU
+ CBF0          ; LV # Lo       HANGUL SYLLABLE JJYI
+ CC0C          ; LV # Lo       HANGUL SYLLABLE JJI
+ CC28          ; LV # Lo       HANGUL SYLLABLE CA
+ CC44          ; LV # Lo       HANGUL SYLLABLE CAE
+ CC60          ; LV # Lo       HANGUL SYLLABLE CYA
+ CC7C          ; LV # Lo       HANGUL SYLLABLE CYAE
+ CC98          ; LV # Lo       HANGUL SYLLABLE CEO
+ CCB4          ; LV # Lo       HANGUL SYLLABLE CE
+ CCD0          ; LV # Lo       HANGUL SYLLABLE CYEO
+ CCEC          ; LV # Lo       HANGUL SYLLABLE CYE
+ CD08          ; LV # Lo       HANGUL SYLLABLE CO
+ CD24          ; LV # Lo       HANGUL SYLLABLE CWA
+ CD40          ; LV # Lo       HANGUL SYLLABLE CWAE
+ CD5C          ; LV # Lo       HANGUL SYLLABLE COE
+ CD78          ; LV # Lo       HANGUL SYLLABLE CYO
+ CD94          ; LV # Lo       HANGUL SYLLABLE CU
+ CDB0          ; LV # Lo       HANGUL SYLLABLE CWEO
+ CDCC          ; LV # Lo       HANGUL SYLLABLE CWE
+ CDE8          ; LV # Lo       HANGUL SYLLABLE CWI
+ CE04          ; LV # Lo       HANGUL SYLLABLE CYU
+ CE20          ; LV # Lo       HANGUL SYLLABLE CEU
+ CE3C          ; LV # Lo       HANGUL SYLLABLE CYI
+ CE58          ; LV # Lo       HANGUL SYLLABLE CI
+ CE74          ; LV # Lo       HANGUL SYLLABLE KA
+ CE90          ; LV # Lo       HANGUL SYLLABLE KAE
+ CEAC          ; LV # Lo       HANGUL SYLLABLE KYA
+ CEC8          ; LV # Lo       HANGUL SYLLABLE KYAE
+ CEE4          ; LV # Lo       HANGUL SYLLABLE KEO
+ CF00          ; LV # Lo       HANGUL SYLLABLE KE
+ CF1C          ; LV # Lo       HANGUL SYLLABLE KYEO
+ CF38          ; LV # Lo       HANGUL SYLLABLE KYE
+ CF54          ; LV # Lo       HANGUL SYLLABLE KO
+ CF70          ; LV # Lo       HANGUL SYLLABLE KWA
+ CF8C          ; LV # Lo       HANGUL SYLLABLE KWAE
+ CFA8          ; LV # Lo       HANGUL SYLLABLE KOE
+ CFC4          ; LV # Lo       HANGUL SYLLABLE KYO
+ CFE0          ; LV # Lo       HANGUL SYLLABLE KU
+ CFFC          ; LV # Lo       HANGUL SYLLABLE KWEO
+ D018          ; LV # Lo       HANGUL SYLLABLE KWE
+ D034          ; LV # Lo       HANGUL SYLLABLE KWI
+ D050          ; LV # Lo       HANGUL SYLLABLE KYU
+ D06C          ; LV # Lo       HANGUL SYLLABLE KEU
+ D088          ; LV # Lo       HANGUL SYLLABLE KYI
+ D0A4          ; LV # Lo       HANGUL SYLLABLE KI
+ D0C0          ; LV # Lo       HANGUL SYLLABLE TA
+ D0DC          ; LV # Lo       HANGUL SYLLABLE TAE
+ D0F8          ; LV # Lo       HANGUL SYLLABLE TYA
+ D114          ; LV # Lo       HANGUL SYLLABLE TYAE
+ D130          ; LV # Lo       HANGUL SYLLABLE TEO
+ D14C          ; LV # Lo       HANGUL SYLLABLE TE
+ D168          ; LV # Lo       HANGUL SYLLABLE TYEO
+ D184          ; LV # Lo       HANGUL SYLLABLE TYE
+ D1A0          ; LV # Lo       HANGUL SYLLABLE TO
+ D1BC          ; LV # Lo       HANGUL SYLLABLE TWA
+ D1D8          ; LV # Lo       HANGUL SYLLABLE TWAE
+ D1F4          ; LV # Lo       HANGUL SYLLABLE TOE
+ D210          ; LV # Lo       HANGUL SYLLABLE TYO
+ D22C          ; LV # Lo       HANGUL SYLLABLE TU
+ D248          ; LV # Lo       HANGUL SYLLABLE TWEO
+ D264          ; LV # Lo       HANGUL SYLLABLE TWE
+ D280          ; LV # Lo       HANGUL SYLLABLE TWI
+ D29C          ; LV # Lo       HANGUL SYLLABLE TYU
+ D2B8          ; LV # Lo       HANGUL SYLLABLE TEU
+ D2D4          ; LV # Lo       HANGUL SYLLABLE TYI
+ D2F0          ; LV # Lo       HANGUL SYLLABLE TI
+ D30C          ; LV # Lo       HANGUL SYLLABLE PA
+ D328          ; LV # Lo       HANGUL SYLLABLE PAE
+ D344          ; LV # Lo       HANGUL SYLLABLE PYA
+ D360          ; LV # Lo       HANGUL SYLLABLE PYAE
+ D37C          ; LV # Lo       HANGUL SYLLABLE PEO
+ D398          ; LV # Lo       HANGUL SYLLABLE PE
+ D3B4          ; LV # Lo       HANGUL SYLLABLE PYEO
+ D3D0          ; LV # Lo       HANGUL SYLLABLE PYE
+ D3EC          ; LV # Lo       HANGUL SYLLABLE PO
+ D408          ; LV # Lo       HANGUL SYLLABLE PWA
+ D424          ; LV # Lo       HANGUL SYLLABLE PWAE
+ D440          ; LV # Lo       HANGUL SYLLABLE POE
+ D45C          ; LV # Lo       HANGUL SYLLABLE PYO
+ D478          ; LV # Lo       HANGUL SYLLABLE PU
+ D494          ; LV # Lo       HANGUL SYLLABLE PWEO
+ D4B0          ; LV # Lo       HANGUL SYLLABLE PWE
+ D4CC          ; LV # Lo       HANGUL SYLLABLE PWI
+ D4E8          ; LV # Lo       HANGUL SYLLABLE PYU
+ D504          ; LV # Lo       HANGUL SYLLABLE PEU
+ D520          ; LV # Lo       HANGUL SYLLABLE PYI
+ D53C          ; LV # Lo       HANGUL SYLLABLE PI
+ D558          ; LV # Lo       HANGUL SYLLABLE HA
+ D574          ; LV # Lo       HANGUL SYLLABLE HAE
+ D590          ; LV # Lo       HANGUL SYLLABLE HYA
+ D5AC          ; LV # Lo       HANGUL SYLLABLE HYAE
+ D5C8          ; LV # Lo       HANGUL SYLLABLE HEO
+ D5E4          ; LV # Lo       HANGUL SYLLABLE HE
+ D600          ; LV # Lo       HANGUL SYLLABLE HYEO
+ D61C          ; LV # Lo       HANGUL SYLLABLE HYE
+ D638          ; LV # Lo       HANGUL SYLLABLE HO
+ D654          ; LV # Lo       HANGUL SYLLABLE HWA
+ D670          ; LV # Lo       HANGUL SYLLABLE HWAE
+ D68C          ; LV # Lo       HANGUL SYLLABLE HOE
+ D6A8          ; LV # Lo       HANGUL SYLLABLE HYO
+ D6C4          ; LV # Lo       HANGUL SYLLABLE HU
+ D6E0          ; LV # Lo       HANGUL SYLLABLE HWEO
+ D6FC          ; LV # Lo       HANGUL SYLLABLE HWE
+ D718          ; LV # Lo       HANGUL SYLLABLE HWI
+ D734          ; LV # Lo       HANGUL SYLLABLE HYU
+ D750          ; LV # Lo       HANGUL SYLLABLE HEU
+ D76C          ; LV # Lo       HANGUL SYLLABLE HYI
+ D788          ; LV # Lo       HANGUL SYLLABLE HI
+ 
+ # Total code points: 399
+ 
+ # ================================================
+ 
+ AC01..AC1B    ; LVT # Lo  [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
+ AC1D..AC37    ; LVT # Lo  [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
+ AC39..AC53    ; LVT # Lo  [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
+ AC55..AC6F    ; LVT # Lo  [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
+ AC71..AC8B    ; LVT # Lo  [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
+ AC8D..ACA7    ; LVT # Lo  [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
+ ACA9..ACC3    ; LVT # Lo  [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
+ ACC5..ACDF    ; LVT # Lo  [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
+ ACE1..ACFB    ; LVT # Lo  [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
+ ACFD..AD17    ; LVT # Lo  [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
+ AD19..AD33    ; LVT # Lo  [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
+ AD35..AD4F    ; LVT # Lo  [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
+ AD51..AD6B    ; LVT # Lo  [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
+ AD6D..AD87    ; LVT # Lo  [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
+ AD89..ADA3    ; LVT # Lo  [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
+ ADA5..ADBF    ; LVT # Lo  [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
+ ADC1..ADDB    ; LVT # Lo  [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
+ ADDD..ADF7    ; LVT # Lo  [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
+ ADF9..AE13    ; LVT # Lo  [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
+ AE15..AE2F    ; LVT # Lo  [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
+ AE31..AE4B    ; LVT # Lo  [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
+ AE4D..AE67    ; LVT # Lo  [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
+ AE69..AE83    ; LVT # Lo  [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
+ AE85..AE9F    ; LVT # Lo  [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
+ AEA1..AEBB    ; LVT # Lo  [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
+ AEBD..AED7    ; LVT # Lo  [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
+ AED9..AEF3    ; LVT # Lo  [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
+ AEF5..AF0F    ; LVT # Lo  [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
+ AF11..AF2B    ; LVT # Lo  [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
+ AF2D..AF47    ; LVT # Lo  [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
+ AF49..AF63    ; LVT # Lo  [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
+ AF65..AF7F    ; LVT # Lo  [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
+ AF81..AF9B    ; LVT # Lo  [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
+ AF9D..AFB7    ; LVT # Lo  [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
+ AFB9..AFD3    ; LVT # Lo  [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
+ AFD5..AFEF    ; LVT # Lo  [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
+ AFF1..B00B    ; LVT # Lo  [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
+ B00D..B027    ; LVT # Lo  [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
+ B029..B043    ; LVT # Lo  [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
+ B045..B05F    ; LVT # Lo  [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
+ B061..B07B    ; LVT # Lo  [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
+ B07D..B097    ; LVT # Lo  [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
+ B099..B0B3    ; LVT # Lo  [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
+ B0B5..B0CF    ; LVT # Lo  [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
+ B0D1..B0EB    ; LVT # Lo  [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
+ B0ED..B107    ; LVT # Lo  [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
+ B109..B123    ; LVT # Lo  [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
+ B125..B13F    ; LVT # Lo  [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
+ B141..B15B    ; LVT # Lo  [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
+ B15D..B177    ; LVT # Lo  [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
+ B179..B193    ; LVT # Lo  [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
+ B195..B1AF    ; LVT # Lo  [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
+ B1B1..B1CB    ; LVT # Lo  [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
+ B1CD..B1E7    ; LVT # Lo  [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
+ B1E9..B203    ; LVT # Lo  [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
+ B205..B21F    ; LVT # Lo  [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
+ B221..B23B    ; LVT # Lo  [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
+ B23D..B257    ; LVT # Lo  [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
+ B259..B273    ; LVT # Lo  [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
+ B275..B28F    ; LVT # Lo  [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
+ B291..B2AB    ; LVT # Lo  [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
+ B2AD..B2C7    ; LVT # Lo  [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
+ B2C9..B2E3    ; LVT # Lo  [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
+ B2E5..B2FF    ; LVT # Lo  [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
+ B301..B31B    ; LVT # Lo  [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
+ B31D..B337    ; LVT # Lo  [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
+ B339..B353    ; LVT # Lo  [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
+ B355..B36F    ; LVT # Lo  [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
+ B371..B38B    ; LVT # Lo  [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
+ B38D..B3A7    ; LVT # Lo  [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
+ B3A9..B3C3    ; LVT # Lo  [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
+ B3C5..B3DF    ; LVT # Lo  [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
+ B3E1..B3FB    ; LVT # Lo  [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
+ B3FD..B417    ; LVT # Lo  [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
+ B419..B433    ; LVT # Lo  [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
+ B435..B44F    ; LVT # Lo  [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
+ B451..B46B    ; LVT # Lo  [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
+ B46D..B487    ; LVT # Lo  [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
+ B489..B4A3    ; LVT # Lo  [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
+ B4A5..B4BF    ; LVT # Lo  [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
+ B4C1..B4DB    ; LVT # Lo  [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
+ B4DD..B4F7    ; LVT # Lo  [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
+ B4F9..B513    ; LVT # Lo  [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
+ B515..B52F    ; LVT # Lo  [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
+ B531..B54B    ; LVT # Lo  [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
+ B54D..B567    ; LVT # Lo  [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
+ B569..B583    ; LVT # Lo  [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
+ B585..B59F    ; LVT # Lo  [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
+ B5A1..B5BB    ; LVT # Lo  [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
+ B5BD..B5D7    ; LVT # Lo  [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
+ B5D9..B5F3    ; LVT # Lo  [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
+ B5F5..B60F    ; LVT # Lo  [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
+ B611..B62B    ; LVT # Lo  [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
+ B62D..B647    ; LVT # Lo  [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
+ B649..B663    ; LVT # Lo  [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
+ B665..B67F    ; LVT # Lo  [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
+ B681..B69B    ; LVT # Lo  [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
+ B69D..B6B7    ; LVT # Lo  [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
+ B6B9..B6D3    ; LVT # Lo  [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
+ B6D5..B6EF    ; LVT # Lo  [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
+ B6F1..B70B    ; LVT # Lo  [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
+ B70D..B727    ; LVT # Lo  [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
+ B729..B743    ; LVT # Lo  [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
+ B745..B75F    ; LVT # Lo  [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
+ B761..B77B    ; LVT # Lo  [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
+ B77D..B797    ; LVT # Lo  [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
+ B799..B7B3    ; LVT # Lo  [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
+ B7B5..B7CF    ; LVT # Lo  [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
+ B7D1..B7EB    ; LVT # Lo  [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
+ B7ED..B807    ; LVT # Lo  [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
+ B809..B823    ; LVT # Lo  [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
+ B825..B83F    ; LVT # Lo  [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
+ B841..B85B    ; LVT # Lo  [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
+ B85D..B877    ; LVT # Lo  [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
+ B879..B893    ; LVT # Lo  [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
+ B895..B8AF    ; LVT # Lo  [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
+ B8B1..B8CB    ; LVT # Lo  [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
+ B8CD..B8E7    ; LVT # Lo  [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
+ B8E9..B903    ; LVT # Lo  [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
+ B905..B91F    ; LVT # Lo  [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
+ B921..B93B    ; LVT # Lo  [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
+ B93D..B957    ; LVT # Lo  [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
+ B959..B973    ; LVT # Lo  [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
+ B975..B98F    ; LVT # Lo  [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
+ B991..B9AB    ; LVT # Lo  [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
+ B9AD..B9C7    ; LVT # Lo  [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
+ B9C9..B9E3    ; LVT # Lo  [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
+ B9E5..B9FF    ; LVT # Lo  [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
+ BA01..BA1B    ; LVT # Lo  [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
+ BA1D..BA37    ; LVT # Lo  [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
+ BA39..BA53    ; LVT # Lo  [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
+ BA55..BA6F    ; LVT # Lo  [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
+ BA71..BA8B    ; LVT # Lo  [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
+ BA8D..BAA7    ; LVT # Lo  [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
+ BAA9..BAC3    ; LVT # Lo  [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
+ BAC5..BADF    ; LVT # Lo  [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
+ BAE1..BAFB    ; LVT # Lo  [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
+ BAFD..BB17    ; LVT # Lo  [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
+ BB19..BB33    ; LVT # Lo  [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
+ BB35..BB4F    ; LVT # Lo  [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
+ BB51..BB6B    ; LVT # Lo  [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
+ BB6D..BB87    ; LVT # Lo  [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
+ BB89..BBA3    ; LVT # Lo  [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
+ BBA5..BBBF    ; LVT # Lo  [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
+ BBC1..BBDB    ; LVT # Lo  [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
+ BBDD..BBF7    ; LVT # Lo  [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
+ BBF9..BC13    ; LVT # Lo  [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
+ BC15..BC2F    ; LVT # Lo  [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
+ BC31..BC4B    ; LVT # Lo  [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
+ BC4D..BC67    ; LVT # Lo  [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
+ BC69..BC83    ; LVT # Lo  [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
+ BC85..BC9F    ; LVT # Lo  [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
+ BCA1..BCBB    ; LVT # Lo  [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
+ BCBD..BCD7    ; LVT # Lo  [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
+ BCD9..BCF3    ; LVT # Lo  [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
+ BCF5..BD0F    ; LVT # Lo  [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
+ BD11..BD2B    ; LVT # Lo  [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
+ BD2D..BD47    ; LVT # Lo  [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
+ BD49..BD63    ; LVT # Lo  [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
+ BD65..BD7F    ; LVT # Lo  [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
+ BD81..BD9B    ; LVT # Lo  [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
+ BD9D..BDB7    ; LVT # Lo  [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
+ BDB9..BDD3    ; LVT # Lo  [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
+ BDD5..BDEF    ; LVT # Lo  [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
+ BDF1..BE0B    ; LVT # Lo  [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
+ BE0D..BE27    ; LVT # Lo  [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
+ BE29..BE43    ; LVT # Lo  [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
+ BE45..BE5F    ; LVT # Lo  [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
+ BE61..BE7B    ; LVT # Lo  [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
+ BE7D..BE97    ; LVT # Lo  [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
+ BE99..BEB3    ; LVT # Lo  [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
+ BEB5..BECF    ; LVT # Lo  [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
+ BED1..BEEB    ; LVT # Lo  [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
+ BEED..BF07    ; LVT # Lo  [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
+ BF09..BF23    ; LVT # Lo  [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
+ BF25..BF3F    ; LVT # Lo  [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
+ BF41..BF5B    ; LVT # Lo  [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
+ BF5D..BF77    ; LVT # Lo  [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
+ BF79..BF93    ; LVT # Lo  [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
+ BF95..BFAF    ; LVT # Lo  [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
+ BFB1..BFCB    ; LVT # Lo  [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
+ BFCD..BFE7    ; LVT # Lo  [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
+ BFE9..C003    ; LVT # Lo  [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
+ C005..C01F    ; LVT # Lo  [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
+ C021..C03B    ; LVT # Lo  [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
+ C03D..C057    ; LVT # Lo  [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
+ C059..C073    ; LVT # Lo  [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
+ C075..C08F    ; LVT # Lo  [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
+ C091..C0AB    ; LVT # Lo  [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
+ C0AD..C0C7    ; LVT # Lo  [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
+ C0C9..C0E3    ; LVT # Lo  [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
+ C0E5..C0FF    ; LVT # Lo  [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
+ C101..C11B    ; LVT # Lo  [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
+ C11D..C137    ; LVT # Lo  [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
+ C139..C153    ; LVT # Lo  [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
+ C155..C16F    ; LVT # Lo  [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
+ C171..C18B    ; LVT # Lo  [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
+ C18D..C1A7    ; LVT # Lo  [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
+ C1A9..C1C3    ; LVT # Lo  [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
+ C1C5..C1DF    ; LVT # Lo  [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
+ C1E1..C1FB    ; LVT # Lo  [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
+ C1FD..C217    ; LVT # Lo  [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
+ C219..C233    ; LVT # Lo  [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
+ C235..C24F    ; LVT # Lo  [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
+ C251..C26B    ; LVT # Lo  [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
+ C26D..C287    ; LVT # Lo  [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
+ C289..C2A3    ; LVT # Lo  [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
+ C2A5..C2BF    ; LVT # Lo  [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
+ C2C1..C2DB    ; LVT # Lo  [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
+ C2DD..C2F7    ; LVT # Lo  [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
+ C2F9..C313    ; LVT # Lo  [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
+ C315..C32F    ; LVT # Lo  [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
+ C331..C34B    ; LVT # Lo  [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
+ C34D..C367    ; LVT # Lo  [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
+ C369..C383    ; LVT # Lo  [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
+ C385..C39F    ; LVT # Lo  [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
+ C3A1..C3BB    ; LVT # Lo  [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
+ C3BD..C3D7    ; LVT # Lo  [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
+ C3D9..C3F3    ; LVT # Lo  [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
+ C3F5..C40F    ; LVT # Lo  [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
+ C411..C42B    ; LVT # Lo  [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
+ C42D..C447    ; LVT # Lo  [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
+ C449..C463    ; LVT # Lo  [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
+ C465..C47F    ; LVT # Lo  [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
+ C481..C49B    ; LVT # Lo  [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
+ C49D..C4B7    ; LVT # Lo  [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
+ C4B9..C4D3    ; LVT # Lo  [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
+ C4D5..C4EF    ; LVT # Lo  [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
+ C4F1..C50B    ; LVT # Lo  [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
+ C50D..C527    ; LVT # Lo  [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
+ C529..C543    ; LVT # Lo  [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
+ C545..C55F    ; LVT # Lo  [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
+ C561..C57B    ; LVT # Lo  [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
+ C57D..C597    ; LVT # Lo  [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
+ C599..C5B3    ; LVT # Lo  [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
+ C5B5..C5CF    ; LVT # Lo  [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
+ C5D1..C5EB    ; LVT # Lo  [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
+ C5ED..C607    ; LVT # Lo  [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
+ C609..C623    ; LVT # Lo  [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
+ C625..C63F    ; LVT # Lo  [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
+ C641..C65B    ; LVT # Lo  [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
+ C65D..C677    ; LVT # Lo  [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
+ C679..C693    ; LVT # Lo  [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
+ C695..C6AF    ; LVT # Lo  [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
+ C6B1..C6CB    ; LVT # Lo  [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
+ C6CD..C6E7    ; LVT # Lo  [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
+ C6E9..C703    ; LVT # Lo  [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
+ C705..C71F    ; LVT # Lo  [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
+ C721..C73B    ; LVT # Lo  [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
+ C73D..C757    ; LVT # Lo  [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
+ C759..C773    ; LVT # Lo  [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
+ C775..C78F    ; LVT # Lo  [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
+ C791..C7AB    ; LVT # Lo  [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
+ C7AD..C7C7    ; LVT # Lo  [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
+ C7C9..C7E3    ; LVT # Lo  [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
+ C7E5..C7FF    ; LVT # Lo  [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
+ C801..C81B    ; LVT # Lo  [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
+ C81D..C837    ; LVT # Lo  [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
+ C839..C853    ; LVT # Lo  [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
+ C855..C86F    ; LVT # Lo  [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
+ C871..C88B    ; LVT # Lo  [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
+ C88D..C8A7    ; LVT # Lo  [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
+ C8A9..C8C3    ; LVT # Lo  [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
+ C8C5..C8DF    ; LVT # Lo  [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
+ C8E1..C8FB    ; LVT # Lo  [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
+ C8FD..C917    ; LVT # Lo  [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
+ C919..C933    ; LVT # Lo  [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
+ C935..C94F    ; LVT # Lo  [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
+ C951..C96B    ; LVT # Lo  [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
+ C96D..C987    ; LVT # Lo  [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
+ C989..C9A3    ; LVT # Lo  [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
+ C9A5..C9BF    ; LVT # Lo  [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
+ C9C1..C9DB    ; LVT # Lo  [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
+ C9DD..C9F7    ; LVT # Lo  [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
+ C9F9..CA13    ; LVT # Lo  [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
+ CA15..CA2F    ; LVT # Lo  [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
+ CA31..CA4B    ; LVT # Lo  [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
+ CA4D..CA67    ; LVT # Lo  [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
+ CA69..CA83    ; LVT # Lo  [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
+ CA85..CA9F    ; LVT # Lo  [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
+ CAA1..CABB    ; LVT # Lo  [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
+ CABD..CAD7    ; LVT # Lo  [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
+ CAD9..CAF3    ; LVT # Lo  [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
+ CAF5..CB0F    ; LVT # Lo  [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
+ CB11..CB2B    ; LVT # Lo  [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
+ CB2D..CB47    ; LVT # Lo  [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
+ CB49..CB63    ; LVT # Lo  [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
+ CB65..CB7F    ; LVT # Lo  [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
+ CB81..CB9B    ; LVT # Lo  [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
+ CB9D..CBB7    ; LVT # Lo  [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
+ CBB9..CBD3    ; LVT # Lo  [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
+ CBD5..CBEF    ; LVT # Lo  [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
+ CBF1..CC0B    ; LVT # Lo  [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
+ CC0D..CC27    ; LVT # Lo  [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
+ CC29..CC43    ; LVT # Lo  [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
+ CC45..CC5F    ; LVT # Lo  [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
+ CC61..CC7B    ; LVT # Lo  [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
+ CC7D..CC97    ; LVT # Lo  [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
+ CC99..CCB3    ; LVT # Lo  [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
+ CCB5..CCCF    ; LVT # Lo  [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
+ CCD1..CCEB    ; LVT # Lo  [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
+ CCED..CD07    ; LVT # Lo  [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
+ CD09..CD23    ; LVT # Lo  [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
+ CD25..CD3F    ; LVT # Lo  [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
+ CD41..CD5B    ; LVT # Lo  [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
+ CD5D..CD77    ; LVT # Lo  [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
+ CD79..CD93    ; LVT # Lo  [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
+ CD95..CDAF    ; LVT # Lo  [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
+ CDB1..CDCB    ; LVT # Lo  [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
+ CDCD..CDE7    ; LVT # Lo  [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
+ CDE9..CE03    ; LVT # Lo  [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
+ CE05..CE1F    ; LVT # Lo  [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
+ CE21..CE3B    ; LVT # Lo  [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
+ CE3D..CE57    ; LVT # Lo  [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
+ CE59..CE73    ; LVT # Lo  [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
+ CE75..CE8F    ; LVT # Lo  [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
+ CE91..CEAB    ; LVT # Lo  [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
+ CEAD..CEC7    ; LVT # Lo  [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
+ CEC9..CEE3    ; LVT # Lo  [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
+ CEE5..CEFF    ; LVT # Lo  [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
+ CF01..CF1B    ; LVT # Lo  [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
+ CF1D..CF37    ; LVT # Lo  [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
+ CF39..CF53    ; LVT # Lo  [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
+ CF55..CF6F    ; LVT # Lo  [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
+ CF71..CF8B    ; LVT # Lo  [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
+ CF8D..CFA7    ; LVT # Lo  [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
+ CFA9..CFC3    ; LVT # Lo  [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
+ CFC5..CFDF    ; LVT # Lo  [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
+ CFE1..CFFB    ; LVT # Lo  [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
+ CFFD..D017    ; LVT # Lo  [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
+ D019..D033    ; LVT # Lo  [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
+ D035..D04F    ; LVT # Lo  [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
+ D051..D06B    ; LVT # Lo  [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
+ D06D..D087    ; LVT # Lo  [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
+ D089..D0A3    ; LVT # Lo  [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
+ D0A5..D0BF    ; LVT # Lo  [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
+ D0C1..D0DB    ; LVT # Lo  [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
+ D0DD..D0F7    ; LVT # Lo  [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
+ D0F9..D113    ; LVT # Lo  [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
+ D115..D12F    ; LVT # Lo  [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
+ D131..D14B    ; LVT # Lo  [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
+ D14D..D167    ; LVT # Lo  [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
+ D169..D183    ; LVT # Lo  [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
+ D185..D19F    ; LVT # Lo  [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
+ D1A1..D1BB    ; LVT # Lo  [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
+ D1BD..D1D7    ; LVT # Lo  [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
+ D1D9..D1F3    ; LVT # Lo  [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
+ D1F5..D20F    ; LVT # Lo  [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
+ D211..D22B    ; LVT # Lo  [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
+ D22D..D247    ; LVT # Lo  [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
+ D249..D263    ; LVT # Lo  [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
+ D265..D27F    ; LVT # Lo  [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
+ D281..D29B    ; LVT # Lo  [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
+ D29D..D2B7    ; LVT # Lo  [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
+ D2B9..D2D3    ; LVT # Lo  [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
+ D2D5..D2EF    ; LVT # Lo  [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
+ D2F1..D30B    ; LVT # Lo  [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
+ D30D..D327    ; LVT # Lo  [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
+ D329..D343    ; LVT # Lo  [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
+ D345..D35F    ; LVT # Lo  [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
+ D361..D37B    ; LVT # Lo  [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
+ D37D..D397    ; LVT # Lo  [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
+ D399..D3B3    ; LVT # Lo  [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
+ D3B5..D3CF    ; LVT # Lo  [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
+ D3D1..D3EB    ; LVT # Lo  [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
+ D3ED..D407    ; LVT # Lo  [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
+ D409..D423    ; LVT # Lo  [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
+ D425..D43F    ; LVT # Lo  [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
+ D441..D45B    ; LVT # Lo  [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
+ D45D..D477    ; LVT # Lo  [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
+ D479..D493    ; LVT # Lo  [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
+ D495..D4AF    ; LVT # Lo  [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
+ D4B1..D4CB    ; LVT # Lo  [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
+ D4CD..D4E7    ; LVT # Lo  [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
+ D4E9..D503    ; LVT # Lo  [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
+ D505..D51F    ; LVT # Lo  [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
+ D521..D53B    ; LVT # Lo  [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
+ D53D..D557    ; LVT # Lo  [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
+ D559..D573    ; LVT # Lo  [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
+ D575..D58F    ; LVT # Lo  [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
+ D591..D5AB    ; LVT # Lo  [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
+ D5AD..D5C7    ; LVT # Lo  [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
+ D5C9..D5E3    ; LVT # Lo  [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
+ D5E5..D5FF    ; LVT # Lo  [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
+ D601..D61B    ; LVT # Lo  [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
+ D61D..D637    ; LVT # Lo  [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
+ D639..D653    ; LVT # Lo  [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
+ D655..D66F    ; LVT # Lo  [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
+ D671..D68B    ; LVT # Lo  [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
+ D68D..D6A7    ; LVT # Lo  [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
+ D6A9..D6C3    ; LVT # Lo  [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
+ D6C5..D6DF    ; LVT # Lo  [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
+ D6E1..D6FB    ; LVT # Lo  [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
+ D6FD..D717    ; LVT # Lo  [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
+ D719..D733    ; LVT # Lo  [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
+ D735..D74F    ; LVT # Lo  [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
+ D751..D76B    ; LVT # Lo  [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
+ D76D..D787    ; LVT # Lo  [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
+ D789..D7A3    ; LVT # Lo  [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
+ 
+ # Total code points: 10773
+ 
+ # ================================================
+ 
+ 200D          ; ZWJ # Cf       ZERO WIDTH JOINER
+ 
+ # Total code points: 1
+ 
+ # EOF
diff -Nrcpad gcc-13.2.0/contrib/unicode/NameAliases.txt gcc-14.1.0/contrib/unicode/NameAliases.txt
*** gcc-13.2.0/contrib/unicode/NameAliases.txt	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/NameAliases.txt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
! # NameAliases-15.0.0.txt
! # Date: 2022-07-26, 20:13:00 GMT [KW]
! # © 2022 Unicode®, Inc.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
--- 1,6 ----
! # NameAliases-15.1.0.txt
! # Date: 2023-01-05
! # © 2023 Unicode®, Inc.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
  # Unicode Character Database
diff -Nrcpad gcc-13.2.0/contrib/unicode/PropList.txt gcc-14.1.0/contrib/unicode/PropList.txt
*** gcc-13.2.0/contrib/unicode/PropList.txt	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/PropList.txt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
! # PropList-15.0.0.txt
! # Date: 2022-08-05, 22:17:16 GMT
! # © 2022 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
--- 1,6 ----
! # PropList-15.1.0.txt
! # Date: 2023-08-01, 21:56:53 GMT
! # © 2023 Unicode®, Inc.
  # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
  # For terms of use, see https://www.unicode.org/terms_of_use.html
  #
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 856,866 ****
  2B740..2B81D  ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; Ideographic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2F800..2FA1D  ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Ideographic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 105854
  
  # ================================================
  
--- 856,867 ----
  2B740..2B81D  ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; Ideographic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; Ideographic # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Ideographic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 106476
  
  # ================================================
  
*************** E0020..E007F  ; Other_Grapheme_Extend #
*** 1241,1249 ****
  # ================================================
  
  2FF0..2FF1    ; IDS_Binary_Operator # So   [2] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
! 2FF4..2FFB    ; IDS_Binary_Operator # So   [8] IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
  
! # Total code points: 10
  
  # ================================================
  
--- 1242,1251 ----
  # ================================================
  
  2FF0..2FF1    ; IDS_Binary_Operator # So   [2] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
! 2FF4..2FFD    ; IDS_Binary_Operator # So  [10] IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND..IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER RIGHT
! 31EF          ; IDS_Binary_Operator # So       IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
  
! # Total code points: 13
  
  # ================================================
  
*************** E0020..E007F  ; Other_Grapheme_Extend #
*** 1253,1258 ****
--- 1255,1266 ----
  
  # ================================================
  
+ 2FFE..2FFF    ; IDS_Unary_Operator # So   [2] IDEOGRAPHIC DESCRIPTION CHARACTER HORIZONTAL REFLECTION..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
+ 
+ # Total code points: 2
+ 
+ # ================================================
+ 
  2E80..2E99    ; Radical # So  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
  2E9B..2EF3    ; Radical # So  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
  2F00..2FD5    ; Radical # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
*************** FA27..FA29    ; Unified_Ideograph # Lo
*** 1275,1284 ****
  2B740..2B81D  ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  30000..3134A  ; Unified_Ideograph # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Unified_Ideograph # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 97058
  
  # ================================================
  
--- 1283,1293 ----
  2B740..2B81D  ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B820..2CEA1  ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+ 2EBF0..2EE5D  ; Unified_Ideograph # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  30000..3134A  ; Unified_Ideograph # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  31350..323AF  ; Unified_Ideograph # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 97680
  
  # ================================================
  
*************** AABB..AABC    ; Logical_Order_Exception
*** 1376,1383 ****
  0387          ; Other_ID_Continue # Po       GREEK ANO TELEIA
  1369..1371    ; Other_ID_Continue # No   [9] ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE
  19DA          ; Other_ID_Continue # No       NEW TAI LUE THAM DIGIT ONE
  
! # Total code points: 12
  
  # ================================================
  
--- 1385,1442 ----
  0387          ; Other_ID_Continue # Po       GREEK ANO TELEIA
  1369..1371    ; Other_ID_Continue # No   [9] ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE
  19DA          ; Other_ID_Continue # No       NEW TAI LUE THAM DIGIT ONE
+ 200C..200D    ; Other_ID_Continue # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+ 30FB          ; Other_ID_Continue # Po       KATAKANA MIDDLE DOT
+ FF65          ; Other_ID_Continue # Po       HALFWIDTH KATAKANA MIDDLE DOT
  
! # Total code points: 16
! 
! # ================================================
! 
! 00B2..00B3    ; ID_Compat_Math_Continue # No   [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
! 00B9          ; ID_Compat_Math_Continue # No       SUPERSCRIPT ONE
! 2070          ; ID_Compat_Math_Continue # No       SUPERSCRIPT ZERO
! 2074..2079    ; ID_Compat_Math_Continue # No   [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
! 207A..207C    ; ID_Compat_Math_Continue # Sm   [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
! 207D          ; ID_Compat_Math_Continue # Ps       SUPERSCRIPT LEFT PARENTHESIS
! 207E          ; ID_Compat_Math_Continue # Pe       SUPERSCRIPT RIGHT PARENTHESIS
! 2080..2089    ; ID_Compat_Math_Continue # No  [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
! 208A..208C    ; ID_Compat_Math_Continue # Sm   [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
! 208D          ; ID_Compat_Math_Continue # Ps       SUBSCRIPT LEFT PARENTHESIS
! 208E          ; ID_Compat_Math_Continue # Pe       SUBSCRIPT RIGHT PARENTHESIS
! 2202          ; ID_Compat_Math_Continue # Sm       PARTIAL DIFFERENTIAL
! 2207          ; ID_Compat_Math_Continue # Sm       NABLA
! 221E          ; ID_Compat_Math_Continue # Sm       INFINITY
! 1D6C1         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL BOLD NABLA
! 1D6DB         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
! 1D6FB         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL ITALIC NABLA
! 1D715         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
! 1D735         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL BOLD ITALIC NABLA
! 1D74F         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
! 1D76F         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL SANS-SERIF BOLD NABLA
! 1D789         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
! 1D7A9         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
! 1D7C3         ; ID_Compat_Math_Continue # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
! 
! # Total code points: 43
! 
! # ================================================
! 
! 2202          ; ID_Compat_Math_Start # Sm       PARTIAL DIFFERENTIAL
! 2207          ; ID_Compat_Math_Start # Sm       NABLA
! 221E          ; ID_Compat_Math_Start # Sm       INFINITY
! 1D6C1         ; ID_Compat_Math_Start # Sm       MATHEMATICAL BOLD NABLA
! 1D6DB         ; ID_Compat_Math_Start # Sm       MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
! 1D6FB         ; ID_Compat_Math_Start # Sm       MATHEMATICAL ITALIC NABLA
! 1D715         ; ID_Compat_Math_Start # Sm       MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
! 1D735         ; ID_Compat_Math_Start # Sm       MATHEMATICAL BOLD ITALIC NABLA
! 1D74F         ; ID_Compat_Math_Start # Sm       MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
! 1D76F         ; ID_Compat_Math_Start # Sm       MATHEMATICAL SANS-SERIF BOLD NABLA
! 1D789         ; ID_Compat_Math_Start # Sm       MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
! 1D7A9         ; ID_Compat_Math_Start # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
! 1D7C3         ; ID_Compat_Math_Start # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
! 
! # Total code points: 13
  
  # ================================================
  
*************** AABB..AABC    ; Logical_Order_Exception
*** 1398,1403 ****
--- 1457,1463 ----
  1367..1368    ; Sentence_Terminal # Po   [2] ETHIOPIC QUESTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
  166E          ; Sentence_Terminal # Po       CANADIAN SYLLABICS FULL STOP
  1735..1736    ; Sentence_Terminal # Po   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+ 17D4..17D5    ; Sentence_Terminal # Po   [2] KHMER SIGN KHAN..KHMER SIGN BARIYOOSAN
  1803          ; Sentence_Terminal # Po       MONGOLIAN FULL STOP
  1809          ; Sentence_Terminal # Po       MONGOLIAN MANCHU FULL STOP
  1944..1945    ; Sentence_Terminal # Po   [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
*************** FF61          ; Sentence_Terminal # Po
*** 1462,1468 ****
  1BC9F         ; Sentence_Terminal # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
  1DA88         ; Sentence_Terminal # Po       SIGNWRITING FULL STOP
  
! # Total code points: 154
  
  # ================================================
  
--- 1522,1528 ----
  1BC9F         ; Sentence_Terminal # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
  1DA88         ; Sentence_Terminal # Po       SIGNWRITING FULL STOP
  
! # Total code points: 156
  
  # ================================================
  
diff -Nrcpad gcc-13.2.0/contrib/unicode/README gcc-14.1.0/contrib/unicode/README
*** gcc-13.2.0/contrib/unicode/README	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/README	Tue May  7 06:51:37 2024
*************** ftp://ftp.unicode.org/Public/UNIDATA/Der
*** 16,22 ****
  ftp://ftp.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
  ftp://ftp.unicode.org/Public/UNIDATA/NameAliases.txt
  
! These files have been added to source control in this directory;
  please see unicode-license.txt for the relevant copyright information.
  
  In order to keep in sync with glibc's wcwidth as much as possible, it is
--- 16,27 ----
  ftp://ftp.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
  ftp://ftp.unicode.org/Public/UNIDATA/NameAliases.txt
  
! Two additional files are needed for lookup tables in libstdc++:
! 
! ftp://ftp.unicode.org/Public/UNIDATA/auxiliary/GraphemeBreakProperty.txt
! ftp://ftp.unicode.org/Public/UNIDATA/emoji/emoji-data.txt
! 
! All these files have been added to source control in this directory;
  please see unicode-license.txt for the relevant copyright information.
  
  In order to keep in sync with glibc's wcwidth as much as possible, it is
*************** desirable for the logic that processes t
*** 24,36 ****
  glibc's.  To that end, we also put in this directory, in the from_glibc/
  directory, the glibc python code that implements their logic.  This code was
  copied verbatim from glibc, and it can be updated at any time from the glibc
! source code repository.  The files copied from that respository are:
  
  localedata/unicode-gen/unicode_utils.py
  localedata/unicode-gen/utf8_gen.py
  
  And the most recent versions added to GCC are from glibc git commit:
! 4c721f24fc190d1dc935eb0bab283de7cf13182e
  
  The script gen_wcwidth.py found here contains the GCC-specific code to
  map glibc's output to the lookup tables we require.  This script should not need
--- 29,41 ----
  glibc's.  To that end, we also put in this directory, in the from_glibc/
  directory, the glibc python code that implements their logic.  This code was
  copied verbatim from glibc, and it can be updated at any time from the glibc
! source code repository.  The files copied from that repository are:
  
  localedata/unicode-gen/unicode_utils.py
  localedata/unicode-gen/utf8_gen.py
  
  And the most recent versions added to GCC are from glibc git commit:
! 71de3aead9fffe89556e80ebc94aa918d8ee7bca
  
  The script gen_wcwidth.py found here contains the GCC-specific code to
  map glibc's output to the lookup tables we require.  This script should not need
*************** produce ucnid.h.
*** 40,53 ****
  
  The procedure to update GCC's Unicode support is the following:
  
! 1.  Update the five Unicode data files from the above URLs.
  
  2.  Update the two glibc files in from_glibc/ from glibc's git.  Update
      the commit number above in this README.
  
  3.  Run ./gen_wcwidth.py X.Y > ../../libcpp/generated_cpp_wcwidth.h
      (where X.Y is the version of the Unicode standard corresponding to the
!     Unicode data files being used, most recently, 15.0.0).
  
  4.  Update Unicode Copyright years in libcpp/makeucnid.cc and in
      libcpp/makeuname2c.cc up to the year in which the Unicode
--- 45,58 ----
  
  The procedure to update GCC's Unicode support is the following:
  
! 1.  Update the six Unicode data files from the above URLs.
  
  2.  Update the two glibc files in from_glibc/ from glibc's git.  Update
      the commit number above in this README.
  
  3.  Run ./gen_wcwidth.py X.Y > ../../libcpp/generated_cpp_wcwidth.h
      (where X.Y is the version of the Unicode standard corresponding to the
!     Unicode data files being used, most recently, 15.1.0).
  
  4.  Update Unicode Copyright years in libcpp/makeucnid.cc and in
      libcpp/makeuname2c.cc up to the year in which the Unicode
*************** The procedure to update GCC's Unicode su
*** 71,73 ****
--- 76,81 ----
  9:  Generate uname2c.h as follows:
        ../../libcpp/makeuname2c UnicodeData.txt NameAliases.txt \
  	> ../../libcpp/uname2c.h
+ 
+ See gen_libstdcxx_unicode_data.py for instructions on updating the lookup
+ tables in libstdc++.
diff -Nrcpad gcc-13.2.0/contrib/unicode/UnicodeData.txt gcc-14.1.0/contrib/unicode/UnicodeData.txt
*** gcc-13.2.0/contrib/unicode/UnicodeData.txt	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/UnicodeData.txt	Tue May  7 06:51:37 2024
***************
*** 11231,11236 ****
--- 11231,11240 ----
  2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
  2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
  2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
+ 2FFC;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM RIGHT;So;0;ON;;;;;N;;;;;
+ 2FFD;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER RIGHT;So;0;ON;;;;;N;;;;;
+ 2FFE;IDEOGRAPHIC DESCRIPTION CHARACTER HORIZONTAL REFLECTION;So;0;ON;;;;;N;;;;;
+ 2FFF;IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION;So;0;ON;;;;;N;;;;;
  3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
  3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
  3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
***************
*** 11705,11710 ****
--- 11709,11715 ----
  31E1;CJK STROKE HZZZG;So;0;ON;;;;;N;;;;;
  31E2;CJK STROKE PG;So;0;ON;;;;;N;;;;;
  31E3;CJK STROKE Q;So;0;ON;;;;;N;;;;;
+ 31EF;IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION;So;0;ON;;;;;N;;;;;
  31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
  31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
  31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 34035,34040 ****
--- 34040,34047 ----
  2CEA1;<CJK Ideograph Extension E, Last>;Lo;0;L;;;;;N;;;;;
  2CEB0;<CJK Ideograph Extension F, First>;Lo;0;L;;;;;N;;;;;
  2EBE0;<CJK Ideograph Extension F, Last>;Lo;0;L;;;;;N;;;;;
+ 2EBF0;<CJK Ideograph Extension I, First>;Lo;0;L;;;;;N;;;;;
+ 2EE5D;<CJK Ideograph Extension I, Last>;Lo;0;L;;;;;N;;;;;
  2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;;
  2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;;
  2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;;
diff -Nrcpad gcc-13.2.0/contrib/unicode/emoji-data.txt gcc-14.1.0/contrib/unicode/emoji-data.txt
*** gcc-13.2.0/contrib/unicode/emoji-data.txt	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/unicode/emoji-data.txt	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1320 ----
+ # emoji-data.txt
+ # Date: 2023-02-01, 02:22:54 GMT
+ # © 2023 Unicode®, Inc.
+ # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+ # For terms of use, see https://www.unicode.org/terms_of_use.html
+ #
+ # Emoji Data for UTS #51
+ # Used with Emoji Version 15.1 and subsequent minor revisions (if any)
+ #
+ # For documentation and usage, see https://www.unicode.org/reports/tr51
+ #
+ # Format: 
+ # <codepoint(s)> ; <property> # <comments> 
+ # Note: there is no guarantee as to the structure of whitespace or comments
+ #
+ # Characters and sequences are listed in code point order. Users should be shown a more natural order.
+ # See the CLDR collation order for Emoji.
+ 
+ 
+ # ================================================
+ 
+ # All omitted code points have Emoji=No
+ 
+ 0023          ; Emoji                # E0.0   [1] (#️)       hash sign
+ 002A          ; Emoji                # E0.0   [1] (*️)       asterisk
+ 0030..0039    ; Emoji                # E0.0  [10] (0️..9️)    digit zero..digit nine
+ 00A9          ; Emoji                # E0.6   [1] (©️)       copyright
+ 00AE          ; Emoji                # E0.6   [1] (®️)       registered
+ 203C          ; Emoji                # E0.6   [1] (‼️)       double exclamation mark
+ 2049          ; Emoji                # E0.6   [1] (⁉️)       exclamation question mark
+ 2122          ; Emoji                # E0.6   [1] (™️)       trade mark
+ 2139          ; Emoji                # E0.6   [1] (ℹ️)       information
+ 2194..2199    ; Emoji                # E0.6   [6] (↔️..↙️)    left-right arrow..down-left arrow
+ 21A9..21AA    ; Emoji                # E0.6   [2] (↩️..↪️)    right arrow curving left..left arrow curving right
+ 231A..231B    ; Emoji                # E0.6   [2] (⌚..⌛)    watch..hourglass done
+ 2328          ; Emoji                # E1.0   [1] (⌨️)       keyboard
+ 23CF          ; Emoji                # E1.0   [1] (⏏️)       eject button
+ 23E9..23EC    ; Emoji                # E0.6   [4] (⏩..⏬)    fast-forward button..fast down button
+ 23ED..23EE    ; Emoji                # E0.7   [2] (⏭️..⏮️)    next track button..last track button
+ 23EF          ; Emoji                # E1.0   [1] (⏯️)       play or pause button
+ 23F0          ; Emoji                # E0.6   [1] (⏰)       alarm clock
+ 23F1..23F2    ; Emoji                # E1.0   [2] (⏱️..⏲️)    stopwatch..timer clock
+ 23F3          ; Emoji                # E0.6   [1] (⏳)       hourglass not done
+ 23F8..23FA    ; Emoji                # E0.7   [3] (⏸️..⏺️)    pause button..record button
+ 24C2          ; Emoji                # E0.6   [1] (Ⓜ️)       circled M
+ 25AA..25AB    ; Emoji                # E0.6   [2] (▪️..▫️)    black small square..white small square
+ 25B6          ; Emoji                # E0.6   [1] (▶️)       play button
+ 25C0          ; Emoji                # E0.6   [1] (◀️)       reverse button
+ 25FB..25FE    ; Emoji                # E0.6   [4] (◻️..◾)    white medium square..black medium-small square
+ 2600..2601    ; Emoji                # E0.6   [2] (☀️..☁️)    sun..cloud
+ 2602..2603    ; Emoji                # E0.7   [2] (☂️..☃️)    umbrella..snowman
+ 2604          ; Emoji                # E1.0   [1] (☄️)       comet
+ 260E          ; Emoji                # E0.6   [1] (☎️)       telephone
+ 2611          ; Emoji                # E0.6   [1] (☑️)       check box with check
+ 2614..2615    ; Emoji                # E0.6   [2] (☔..☕)    umbrella with rain drops..hot beverage
+ 2618          ; Emoji                # E1.0   [1] (☘️)       shamrock
+ 261D          ; Emoji                # E0.6   [1] (☝️)       index pointing up
+ 2620          ; Emoji                # E1.0   [1] (☠️)       skull and crossbones
+ 2622..2623    ; Emoji                # E1.0   [2] (☢️..☣️)    radioactive..biohazard
+ 2626          ; Emoji                # E1.0   [1] (☦️)       orthodox cross
+ 262A          ; Emoji                # E0.7   [1] (☪️)       star and crescent
+ 262E          ; Emoji                # E1.0   [1] (☮️)       peace symbol
+ 262F          ; Emoji                # E0.7   [1] (☯️)       yin yang
+ 2638..2639    ; Emoji                # E0.7   [2] (☸️..☹️)    wheel of dharma..frowning face
+ 263A          ; Emoji                # E0.6   [1] (☺️)       smiling face
+ 2640          ; Emoji                # E4.0   [1] (♀️)       female sign
+ 2642          ; Emoji                # E4.0   [1] (♂️)       male sign
+ 2648..2653    ; Emoji                # E0.6  [12] (♈..♓)    Aries..Pisces
+ 265F          ; Emoji                # E11.0  [1] (♟️)       chess pawn
+ 2660          ; Emoji                # E0.6   [1] (♠️)       spade suit
+ 2663          ; Emoji                # E0.6   [1] (♣️)       club suit
+ 2665..2666    ; Emoji                # E0.6   [2] (♥️..♦️)    heart suit..diamond suit
+ 2668          ; Emoji                # E0.6   [1] (♨️)       hot springs
+ 267B          ; Emoji                # E0.6   [1] (♻️)       recycling symbol
+ 267E          ; Emoji                # E11.0  [1] (♾️)       infinity
+ 267F          ; Emoji                # E0.6   [1] (♿)       wheelchair symbol
+ 2692          ; Emoji                # E1.0   [1] (⚒️)       hammer and pick
+ 2693          ; Emoji                # E0.6   [1] (⚓)       anchor
+ 2694          ; Emoji                # E1.0   [1] (⚔️)       crossed swords
+ 2695          ; Emoji                # E4.0   [1] (⚕️)       medical symbol
+ 2696..2697    ; Emoji                # E1.0   [2] (⚖️..⚗️)    balance scale..alembic
+ 2699          ; Emoji                # E1.0   [1] (⚙️)       gear
+ 269B..269C    ; Emoji                # E1.0   [2] (⚛️..⚜️)    atom symbol..fleur-de-lis
+ 26A0..26A1    ; Emoji                # E0.6   [2] (⚠️..⚡)    warning..high voltage
+ 26A7          ; Emoji                # E13.0  [1] (⚧️)       transgender symbol
+ 26AA..26AB    ; Emoji                # E0.6   [2] (⚪..⚫)    white circle..black circle
+ 26B0..26B1    ; Emoji                # E1.0   [2] (⚰️..⚱️)    coffin..funeral urn
+ 26BD..26BE    ; Emoji                # E0.6   [2] (⚽..⚾)    soccer ball..baseball
+ 26C4..26C5    ; Emoji                # E0.6   [2] (⛄..⛅)    snowman without snow..sun behind cloud
+ 26C8          ; Emoji                # E0.7   [1] (⛈️)       cloud with lightning and rain
+ 26CE          ; Emoji                # E0.6   [1] (⛎)       Ophiuchus
+ 26CF          ; Emoji                # E0.7   [1] (⛏️)       pick
+ 26D1          ; Emoji                # E0.7   [1] (⛑️)       rescue worker’s helmet
+ 26D3          ; Emoji                # E0.7   [1] (⛓️)       chains
+ 26D4          ; Emoji                # E0.6   [1] (⛔)       no entry
+ 26E9          ; Emoji                # E0.7   [1] (⛩️)       shinto shrine
+ 26EA          ; Emoji                # E0.6   [1] (⛪)       church
+ 26F0..26F1    ; Emoji                # E0.7   [2] (⛰️..⛱️)    mountain..umbrella on ground
+ 26F2..26F3    ; Emoji                # E0.6   [2] (⛲..⛳)    fountain..flag in hole
+ 26F4          ; Emoji                # E0.7   [1] (⛴️)       ferry
+ 26F5          ; Emoji                # E0.6   [1] (⛵)       sailboat
+ 26F7..26F9    ; Emoji                # E0.7   [3] (⛷️..⛹️)    skier..person bouncing ball
+ 26FA          ; Emoji                # E0.6   [1] (⛺)       tent
+ 26FD          ; Emoji                # E0.6   [1] (⛽)       fuel pump
+ 2702          ; Emoji                # E0.6   [1] (✂️)       scissors
+ 2705          ; Emoji                # E0.6   [1] (✅)       check mark button
+ 2708..270C    ; Emoji                # E0.6   [5] (✈️..✌️)    airplane..victory hand
+ 270D          ; Emoji                # E0.7   [1] (✍️)       writing hand
+ 270F          ; Emoji                # E0.6   [1] (✏️)       pencil
+ 2712          ; Emoji                # E0.6   [1] (✒️)       black nib
+ 2714          ; Emoji                # E0.6   [1] (✔️)       check mark
+ 2716          ; Emoji                # E0.6   [1] (✖️)       multiply
+ 271D          ; Emoji                # E0.7   [1] (✝️)       latin cross
+ 2721          ; Emoji                # E0.7   [1] (✡️)       star of David
+ 2728          ; Emoji                # E0.6   [1] (✨)       sparkles
+ 2733..2734    ; Emoji                # E0.6   [2] (✳️..✴️)    eight-spoked asterisk..eight-pointed star
+ 2744          ; Emoji                # E0.6   [1] (❄️)       snowflake
+ 2747          ; Emoji                # E0.6   [1] (❇️)       sparkle
+ 274C          ; Emoji                # E0.6   [1] (❌)       cross mark
+ 274E          ; Emoji                # E0.6   [1] (❎)       cross mark button
+ 2753..2755    ; Emoji                # E0.6   [3] (❓..❕)    red question mark..white exclamation mark
+ 2757          ; Emoji                # E0.6   [1] (❗)       red exclamation mark
+ 2763          ; Emoji                # E1.0   [1] (❣️)       heart exclamation
+ 2764          ; Emoji                # E0.6   [1] (❤️)       red heart
+ 2795..2797    ; Emoji                # E0.6   [3] (➕..➗)    plus..divide
+ 27A1          ; Emoji                # E0.6   [1] (➡️)       right arrow
+ 27B0          ; Emoji                # E0.6   [1] (➰)       curly loop
+ 27BF          ; Emoji                # E1.0   [1] (➿)       double curly loop
+ 2934..2935    ; Emoji                # E0.6   [2] (⤴️..⤵️)    right arrow curving up..right arrow curving down
+ 2B05..2B07    ; Emoji                # E0.6   [3] (⬅️..⬇️)    left arrow..down arrow
+ 2B1B..2B1C    ; Emoji                # E0.6   [2] (⬛..⬜)    black large square..white large square
+ 2B50          ; Emoji                # E0.6   [1] (⭐)       star
+ 2B55          ; Emoji                # E0.6   [1] (⭕)       hollow red circle
+ 3030          ; Emoji                # E0.6   [1] (〰️)       wavy dash
+ 303D          ; Emoji                # E0.6   [1] (〽️)       part alternation mark
+ 3297          ; Emoji                # E0.6   [1] (㊗️)       Japanese “congratulations” button
+ 3299          ; Emoji                # E0.6   [1] (㊙️)       Japanese “secret” button
+ 1F004         ; Emoji                # E0.6   [1] (🀄)       mahjong red dragon
+ 1F0CF         ; Emoji                # E0.6   [1] (🃏)       joker
+ 1F170..1F171  ; Emoji                # E0.6   [2] (🅰️..🅱️)    A button (blood type)..B button (blood type)
+ 1F17E..1F17F  ; Emoji                # E0.6   [2] (🅾️..🅿️)    O button (blood type)..P button
+ 1F18E         ; Emoji                # E0.6   [1] (🆎)       AB button (blood type)
+ 1F191..1F19A  ; Emoji                # E0.6  [10] (🆑..🆚)    CL button..VS button
+ 1F1E6..1F1FF  ; Emoji                # E0.0  [26] (🇦..🇿)    regional indicator symbol letter a..regional indicator symbol letter z
+ 1F201..1F202  ; Emoji                # E0.6   [2] (🈁..🈂️)    Japanese “here” button..Japanese “service charge” button
+ 1F21A         ; Emoji                # E0.6   [1] (🈚)       Japanese “free of charge” button
+ 1F22F         ; Emoji                # E0.6   [1] (🈯)       Japanese “reserved” button
+ 1F232..1F23A  ; Emoji                # E0.6   [9] (🈲..🈺)    Japanese “prohibited” button..Japanese “open for business” button
+ 1F250..1F251  ; Emoji                # E0.6   [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button
+ 1F300..1F30C  ; Emoji                # E0.6  [13] (🌀..🌌)    cyclone..milky way
+ 1F30D..1F30E  ; Emoji                # E0.7   [2] (🌍..🌎)    globe showing Europe-Africa..globe showing Americas
+ 1F30F         ; Emoji                # E0.6   [1] (🌏)       globe showing Asia-Australia
+ 1F310         ; Emoji                # E1.0   [1] (🌐)       globe with meridians
+ 1F311         ; Emoji                # E0.6   [1] (🌑)       new moon
+ 1F312         ; Emoji                # E1.0   [1] (🌒)       waxing crescent moon
+ 1F313..1F315  ; Emoji                # E0.6   [3] (🌓..🌕)    first quarter moon..full moon
+ 1F316..1F318  ; Emoji                # E1.0   [3] (🌖..🌘)    waning gibbous moon..waning crescent moon
+ 1F319         ; Emoji                # E0.6   [1] (🌙)       crescent moon
+ 1F31A         ; Emoji                # E1.0   [1] (🌚)       new moon face
+ 1F31B         ; Emoji                # E0.6   [1] (🌛)       first quarter moon face
+ 1F31C         ; Emoji                # E0.7   [1] (🌜)       last quarter moon face
+ 1F31D..1F31E  ; Emoji                # E1.0   [2] (🌝..🌞)    full moon face..sun with face
+ 1F31F..1F320  ; Emoji                # E0.6   [2] (🌟..🌠)    glowing star..shooting star
+ 1F321         ; Emoji                # E0.7   [1] (🌡️)       thermometer
+ 1F324..1F32C  ; Emoji                # E0.7   [9] (🌤️..🌬️)    sun behind small cloud..wind face
+ 1F32D..1F32F  ; Emoji                # E1.0   [3] (🌭..🌯)    hot dog..burrito
+ 1F330..1F331  ; Emoji                # E0.6   [2] (🌰..🌱)    chestnut..seedling
+ 1F332..1F333  ; Emoji                # E1.0   [2] (🌲..🌳)    evergreen tree..deciduous tree
+ 1F334..1F335  ; Emoji                # E0.6   [2] (🌴..🌵)    palm tree..cactus
+ 1F336         ; Emoji                # E0.7   [1] (🌶️)       hot pepper
+ 1F337..1F34A  ; Emoji                # E0.6  [20] (🌷..🍊)    tulip..tangerine
+ 1F34B         ; Emoji                # E1.0   [1] (🍋)       lemon
+ 1F34C..1F34F  ; Emoji                # E0.6   [4] (🍌..🍏)    banana..green apple
+ 1F350         ; Emoji                # E1.0   [1] (🍐)       pear
+ 1F351..1F37B  ; Emoji                # E0.6  [43] (🍑..🍻)    peach..clinking beer mugs
+ 1F37C         ; Emoji                # E1.0   [1] (🍼)       baby bottle
+ 1F37D         ; Emoji                # E0.7   [1] (🍽️)       fork and knife with plate
+ 1F37E..1F37F  ; Emoji                # E1.0   [2] (🍾..🍿)    bottle with popping cork..popcorn
+ 1F380..1F393  ; Emoji                # E0.6  [20] (🎀..🎓)    ribbon..graduation cap
+ 1F396..1F397  ; Emoji                # E0.7   [2] (🎖️..🎗️)    military medal..reminder ribbon
+ 1F399..1F39B  ; Emoji                # E0.7   [3] (🎙️..🎛️)    studio microphone..control knobs
+ 1F39E..1F39F  ; Emoji                # E0.7   [2] (🎞️..🎟️)    film frames..admission tickets
+ 1F3A0..1F3C4  ; Emoji                # E0.6  [37] (🎠..🏄)    carousel horse..person surfing
+ 1F3C5         ; Emoji                # E1.0   [1] (🏅)       sports medal
+ 1F3C6         ; Emoji                # E0.6   [1] (🏆)       trophy
+ 1F3C7         ; Emoji                # E1.0   [1] (🏇)       horse racing
+ 1F3C8         ; Emoji                # E0.6   [1] (🏈)       american football
+ 1F3C9         ; Emoji                # E1.0   [1] (🏉)       rugby football
+ 1F3CA         ; Emoji                # E0.6   [1] (🏊)       person swimming
+ 1F3CB..1F3CE  ; Emoji                # E0.7   [4] (🏋️..🏎️)    person lifting weights..racing car
+ 1F3CF..1F3D3  ; Emoji                # E1.0   [5] (🏏..🏓)    cricket game..ping pong
+ 1F3D4..1F3DF  ; Emoji                # E0.7  [12] (🏔️..🏟️)    snow-capped mountain..stadium
+ 1F3E0..1F3E3  ; Emoji                # E0.6   [4] (🏠..🏣)    house..Japanese post office
+ 1F3E4         ; Emoji                # E1.0   [1] (🏤)       post office
+ 1F3E5..1F3F0  ; Emoji                # E0.6  [12] (🏥..🏰)    hospital..castle
+ 1F3F3         ; Emoji                # E0.7   [1] (🏳️)       white flag
+ 1F3F4         ; Emoji                # E1.0   [1] (🏴)       black flag
+ 1F3F5         ; Emoji                # E0.7   [1] (🏵️)       rosette
+ 1F3F7         ; Emoji                # E0.7   [1] (🏷️)       label
+ 1F3F8..1F407  ; Emoji                # E1.0  [16] (🏸..🐇)    badminton..rabbit
+ 1F408         ; Emoji                # E0.7   [1] (🐈)       cat
+ 1F409..1F40B  ; Emoji                # E1.0   [3] (🐉..🐋)    dragon..whale
+ 1F40C..1F40E  ; Emoji                # E0.6   [3] (🐌..🐎)    snail..horse
+ 1F40F..1F410  ; Emoji                # E1.0   [2] (🐏..🐐)    ram..goat
+ 1F411..1F412  ; Emoji                # E0.6   [2] (🐑..🐒)    ewe..monkey
+ 1F413         ; Emoji                # E1.0   [1] (🐓)       rooster
+ 1F414         ; Emoji                # E0.6   [1] (🐔)       chicken
+ 1F415         ; Emoji                # E0.7   [1] (🐕)       dog
+ 1F416         ; Emoji                # E1.0   [1] (🐖)       pig
+ 1F417..1F429  ; Emoji                # E0.6  [19] (🐗..🐩)    boar..poodle
+ 1F42A         ; Emoji                # E1.0   [1] (🐪)       camel
+ 1F42B..1F43E  ; Emoji                # E0.6  [20] (🐫..🐾)    two-hump camel..paw prints
+ 1F43F         ; Emoji                # E0.7   [1] (🐿️)       chipmunk
+ 1F440         ; Emoji                # E0.6   [1] (👀)       eyes
+ 1F441         ; Emoji                # E0.7   [1] (👁️)       eye
+ 1F442..1F464  ; Emoji                # E0.6  [35] (👂..👤)    ear..bust in silhouette
+ 1F465         ; Emoji                # E1.0   [1] (👥)       busts in silhouette
+ 1F466..1F46B  ; Emoji                # E0.6   [6] (👦..👫)    boy..woman and man holding hands
+ 1F46C..1F46D  ; Emoji                # E1.0   [2] (👬..👭)    men holding hands..women holding hands
+ 1F46E..1F4AC  ; Emoji                # E0.6  [63] (👮..💬)    police officer..speech balloon
+ 1F4AD         ; Emoji                # E1.0   [1] (💭)       thought balloon
+ 1F4AE..1F4B5  ; Emoji                # E0.6   [8] (💮..💵)    white flower..dollar banknote
+ 1F4B6..1F4B7  ; Emoji                # E1.0   [2] (💶..💷)    euro banknote..pound banknote
+ 1F4B8..1F4EB  ; Emoji                # E0.6  [52] (💸..📫)    money with wings..closed mailbox with raised flag
+ 1F4EC..1F4ED  ; Emoji                # E0.7   [2] (📬..📭)    open mailbox with raised flag..open mailbox with lowered flag
+ 1F4EE         ; Emoji                # E0.6   [1] (📮)       postbox
+ 1F4EF         ; Emoji                # E1.0   [1] (📯)       postal horn
+ 1F4F0..1F4F4  ; Emoji                # E0.6   [5] (📰..📴)    newspaper..mobile phone off
+ 1F4F5         ; Emoji                # E1.0   [1] (📵)       no mobile phones
+ 1F4F6..1F4F7  ; Emoji                # E0.6   [2] (📶..📷)    antenna bars..camera
+ 1F4F8         ; Emoji                # E1.0   [1] (📸)       camera with flash
+ 1F4F9..1F4FC  ; Emoji                # E0.6   [4] (📹..📼)    video camera..videocassette
+ 1F4FD         ; Emoji                # E0.7   [1] (📽️)       film projector
+ 1F4FF..1F502  ; Emoji                # E1.0   [4] (📿..🔂)    prayer beads..repeat single button
+ 1F503         ; Emoji                # E0.6   [1] (🔃)       clockwise vertical arrows
+ 1F504..1F507  ; Emoji                # E1.0   [4] (🔄..🔇)    counterclockwise arrows button..muted speaker
+ 1F508         ; Emoji                # E0.7   [1] (🔈)       speaker low volume
+ 1F509         ; Emoji                # E1.0   [1] (🔉)       speaker medium volume
+ 1F50A..1F514  ; Emoji                # E0.6  [11] (🔊..🔔)    speaker high volume..bell
+ 1F515         ; Emoji                # E1.0   [1] (🔕)       bell with slash
+ 1F516..1F52B  ; Emoji                # E0.6  [22] (🔖..🔫)    bookmark..water pistol
+ 1F52C..1F52D  ; Emoji                # E1.0   [2] (🔬..🔭)    microscope..telescope
+ 1F52E..1F53D  ; Emoji                # E0.6  [16] (🔮..🔽)    crystal ball..downwards button
+ 1F549..1F54A  ; Emoji                # E0.7   [2] (🕉️..🕊️)    om..dove
+ 1F54B..1F54E  ; Emoji                # E1.0   [4] (🕋..🕎)    kaaba..menorah
+ 1F550..1F55B  ; Emoji                # E0.6  [12] (🕐..🕛)    one o’clock..twelve o’clock
+ 1F55C..1F567  ; Emoji                # E0.7  [12] (🕜..🕧)    one-thirty..twelve-thirty
+ 1F56F..1F570  ; Emoji                # E0.7   [2] (🕯️..🕰️)    candle..mantelpiece clock
+ 1F573..1F579  ; Emoji                # E0.7   [7] (🕳️..🕹️)    hole..joystick
+ 1F57A         ; Emoji                # E3.0   [1] (🕺)       man dancing
+ 1F587         ; Emoji                # E0.7   [1] (🖇️)       linked paperclips
+ 1F58A..1F58D  ; Emoji                # E0.7   [4] (🖊️..🖍️)    pen..crayon
+ 1F590         ; Emoji                # E0.7   [1] (🖐️)       hand with fingers splayed
+ 1F595..1F596  ; Emoji                # E1.0   [2] (🖕..🖖)    middle finger..vulcan salute
+ 1F5A4         ; Emoji                # E3.0   [1] (🖤)       black heart
+ 1F5A5         ; Emoji                # E0.7   [1] (🖥️)       desktop computer
+ 1F5A8         ; Emoji                # E0.7   [1] (🖨️)       printer
+ 1F5B1..1F5B2  ; Emoji                # E0.7   [2] (🖱️..🖲️)    computer mouse..trackball
+ 1F5BC         ; Emoji                # E0.7   [1] (🖼️)       framed picture
+ 1F5C2..1F5C4  ; Emoji                # E0.7   [3] (🗂️..🗄️)    card index dividers..file cabinet
+ 1F5D1..1F5D3  ; Emoji                # E0.7   [3] (🗑️..🗓️)    wastebasket..spiral calendar
+ 1F5DC..1F5DE  ; Emoji                # E0.7   [3] (🗜️..🗞️)    clamp..rolled-up newspaper
+ 1F5E1         ; Emoji                # E0.7   [1] (🗡️)       dagger
+ 1F5E3         ; Emoji                # E0.7   [1] (🗣️)       speaking head
+ 1F5E8         ; Emoji                # E2.0   [1] (🗨️)       left speech bubble
+ 1F5EF         ; Emoji                # E0.7   [1] (🗯️)       right anger bubble
+ 1F5F3         ; Emoji                # E0.7   [1] (🗳️)       ballot box with ballot
+ 1F5FA         ; Emoji                # E0.7   [1] (🗺️)       world map
+ 1F5FB..1F5FF  ; Emoji                # E0.6   [5] (🗻..🗿)    mount fuji..moai
+ 1F600         ; Emoji                # E1.0   [1] (😀)       grinning face
+ 1F601..1F606  ; Emoji                # E0.6   [6] (😁..😆)    beaming face with smiling eyes..grinning squinting face
+ 1F607..1F608  ; Emoji                # E1.0   [2] (😇..😈)    smiling face with halo..smiling face with horns
+ 1F609..1F60D  ; Emoji                # E0.6   [5] (😉..😍)    winking face..smiling face with heart-eyes
+ 1F60E         ; Emoji                # E1.0   [1] (😎)       smiling face with sunglasses
+ 1F60F         ; Emoji                # E0.6   [1] (😏)       smirking face
+ 1F610         ; Emoji                # E0.7   [1] (😐)       neutral face
+ 1F611         ; Emoji                # E1.0   [1] (😑)       expressionless face
+ 1F612..1F614  ; Emoji                # E0.6   [3] (😒..😔)    unamused face..pensive face
+ 1F615         ; Emoji                # E1.0   [1] (😕)       confused face
+ 1F616         ; Emoji                # E0.6   [1] (😖)       confounded face
+ 1F617         ; Emoji                # E1.0   [1] (😗)       kissing face
+ 1F618         ; Emoji                # E0.6   [1] (😘)       face blowing a kiss
+ 1F619         ; Emoji                # E1.0   [1] (😙)       kissing face with smiling eyes
+ 1F61A         ; Emoji                # E0.6   [1] (😚)       kissing face with closed eyes
+ 1F61B         ; Emoji                # E1.0   [1] (😛)       face with tongue
+ 1F61C..1F61E  ; Emoji                # E0.6   [3] (😜..😞)    winking face with tongue..disappointed face
+ 1F61F         ; Emoji                # E1.0   [1] (😟)       worried face
+ 1F620..1F625  ; Emoji                # E0.6   [6] (😠..😥)    angry face..sad but relieved face
+ 1F626..1F627  ; Emoji                # E1.0   [2] (😦..😧)    frowning face with open mouth..anguished face
+ 1F628..1F62B  ; Emoji                # E0.6   [4] (😨..😫)    fearful face..tired face
+ 1F62C         ; Emoji                # E1.0   [1] (😬)       grimacing face
+ 1F62D         ; Emoji                # E0.6   [1] (😭)       loudly crying face
+ 1F62E..1F62F  ; Emoji                # E1.0   [2] (😮..😯)    face with open mouth..hushed face
+ 1F630..1F633  ; Emoji                # E0.6   [4] (😰..😳)    anxious face with sweat..flushed face
+ 1F634         ; Emoji                # E1.0   [1] (😴)       sleeping face
+ 1F635         ; Emoji                # E0.6   [1] (😵)       face with crossed-out eyes
+ 1F636         ; Emoji                # E1.0   [1] (😶)       face without mouth
+ 1F637..1F640  ; Emoji                # E0.6  [10] (😷..🙀)    face with medical mask..weary cat
+ 1F641..1F644  ; Emoji                # E1.0   [4] (🙁..🙄)    slightly frowning face..face with rolling eyes
+ 1F645..1F64F  ; Emoji                # E0.6  [11] (🙅..🙏)    person gesturing NO..folded hands
+ 1F680         ; Emoji                # E0.6   [1] (🚀)       rocket
+ 1F681..1F682  ; Emoji                # E1.0   [2] (🚁..🚂)    helicopter..locomotive
+ 1F683..1F685  ; Emoji                # E0.6   [3] (🚃..🚅)    railway car..bullet train
+ 1F686         ; Emoji                # E1.0   [1] (🚆)       train
+ 1F687         ; Emoji                # E0.6   [1] (🚇)       metro
+ 1F688         ; Emoji                # E1.0   [1] (🚈)       light rail
+ 1F689         ; Emoji                # E0.6   [1] (🚉)       station
+ 1F68A..1F68B  ; Emoji                # E1.0   [2] (🚊..🚋)    tram..tram car
+ 1F68C         ; Emoji                # E0.6   [1] (🚌)       bus
+ 1F68D         ; Emoji                # E0.7   [1] (🚍)       oncoming bus
+ 1F68E         ; Emoji                # E1.0   [1] (🚎)       trolleybus
+ 1F68F         ; Emoji                # E0.6   [1] (🚏)       bus stop
+ 1F690         ; Emoji                # E1.0   [1] (🚐)       minibus
+ 1F691..1F693  ; Emoji                # E0.6   [3] (🚑..🚓)    ambulance..police car
+ 1F694         ; Emoji                # E0.7   [1] (🚔)       oncoming police car
+ 1F695         ; Emoji                # E0.6   [1] (🚕)       taxi
+ 1F696         ; Emoji                # E1.0   [1] (🚖)       oncoming taxi
+ 1F697         ; Emoji                # E0.6   [1] (🚗)       automobile
+ 1F698         ; Emoji                # E0.7   [1] (🚘)       oncoming automobile
+ 1F699..1F69A  ; Emoji                # E0.6   [2] (🚙..🚚)    sport utility vehicle..delivery truck
+ 1F69B..1F6A1  ; Emoji                # E1.0   [7] (🚛..🚡)    articulated lorry..aerial tramway
+ 1F6A2         ; Emoji                # E0.6   [1] (🚢)       ship
+ 1F6A3         ; Emoji                # E1.0   [1] (🚣)       person rowing boat
+ 1F6A4..1F6A5  ; Emoji                # E0.6   [2] (🚤..🚥)    speedboat..horizontal traffic light
+ 1F6A6         ; Emoji                # E1.0   [1] (🚦)       vertical traffic light
+ 1F6A7..1F6AD  ; Emoji                # E0.6   [7] (🚧..🚭)    construction..no smoking
+ 1F6AE..1F6B1  ; Emoji                # E1.0   [4] (🚮..🚱)    litter in bin sign..non-potable water
+ 1F6B2         ; Emoji                # E0.6   [1] (🚲)       bicycle
+ 1F6B3..1F6B5  ; Emoji                # E1.0   [3] (🚳..🚵)    no bicycles..person mountain biking
+ 1F6B6         ; Emoji                # E0.6   [1] (🚶)       person walking
+ 1F6B7..1F6B8  ; Emoji                # E1.0   [2] (🚷..🚸)    no pedestrians..children crossing
+ 1F6B9..1F6BE  ; Emoji                # E0.6   [6] (🚹..🚾)    men’s room..water closet
+ 1F6BF         ; Emoji                # E1.0   [1] (🚿)       shower
+ 1F6C0         ; Emoji                # E0.6   [1] (🛀)       person taking bath
+ 1F6C1..1F6C5  ; Emoji                # E1.0   [5] (🛁..🛅)    bathtub..left luggage
+ 1F6CB         ; Emoji                # E0.7   [1] (🛋️)       couch and lamp
+ 1F6CC         ; Emoji                # E1.0   [1] (🛌)       person in bed
+ 1F6CD..1F6CF  ; Emoji                # E0.7   [3] (🛍️..🛏️)    shopping bags..bed
+ 1F6D0         ; Emoji                # E1.0   [1] (🛐)       place of worship
+ 1F6D1..1F6D2  ; Emoji                # E3.0   [2] (🛑..🛒)    stop sign..shopping cart
+ 1F6D5         ; Emoji                # E12.0  [1] (🛕)       hindu temple
+ 1F6D6..1F6D7  ; Emoji                # E13.0  [2] (🛖..🛗)    hut..elevator
+ 1F6DC         ; Emoji                # E15.0  [1] (🛜)       wireless
+ 1F6DD..1F6DF  ; Emoji                # E14.0  [3] (🛝..🛟)    playground slide..ring buoy
+ 1F6E0..1F6E5  ; Emoji                # E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat
+ 1F6E9         ; Emoji                # E0.7   [1] (🛩️)       small airplane
+ 1F6EB..1F6EC  ; Emoji                # E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival
+ 1F6F0         ; Emoji                # E0.7   [1] (🛰️)       satellite
+ 1F6F3         ; Emoji                # E0.7   [1] (🛳️)       passenger ship
+ 1F6F4..1F6F6  ; Emoji                # E3.0   [3] (🛴..🛶)    kick scooter..canoe
+ 1F6F7..1F6F8  ; Emoji                # E5.0   [2] (🛷..🛸)    sled..flying saucer
+ 1F6F9         ; Emoji                # E11.0  [1] (🛹)       skateboard
+ 1F6FA         ; Emoji                # E12.0  [1] (🛺)       auto rickshaw
+ 1F6FB..1F6FC  ; Emoji                # E13.0  [2] (🛻..🛼)    pickup truck..roller skate
+ 1F7E0..1F7EB  ; Emoji                # E12.0 [12] (🟠..🟫)    orange circle..brown square
+ 1F7F0         ; Emoji                # E14.0  [1] (🟰)       heavy equals sign
+ 1F90C         ; Emoji                # E13.0  [1] (🤌)       pinched fingers
+ 1F90D..1F90F  ; Emoji                # E12.0  [3] (🤍..🤏)    white heart..pinching hand
+ 1F910..1F918  ; Emoji                # E1.0   [9] (🤐..🤘)    zipper-mouth face..sign of the horns
+ 1F919..1F91E  ; Emoji                # E3.0   [6] (🤙..🤞)    call me hand..crossed fingers
+ 1F91F         ; Emoji                # E5.0   [1] (🤟)       love-you gesture
+ 1F920..1F927  ; Emoji                # E3.0   [8] (🤠..🤧)    cowboy hat face..sneezing face
+ 1F928..1F92F  ; Emoji                # E5.0   [8] (🤨..🤯)    face with raised eyebrow..exploding head
+ 1F930         ; Emoji                # E3.0   [1] (🤰)       pregnant woman
+ 1F931..1F932  ; Emoji                # E5.0   [2] (🤱..🤲)    breast-feeding..palms up together
+ 1F933..1F93A  ; Emoji                # E3.0   [8] (🤳..🤺)    selfie..person fencing
+ 1F93C..1F93E  ; Emoji                # E3.0   [3] (🤼..🤾)    people wrestling..person playing handball
+ 1F93F         ; Emoji                # E12.0  [1] (🤿)       diving mask
+ 1F940..1F945  ; Emoji                # E3.0   [6] (🥀..🥅)    wilted flower..goal net
+ 1F947..1F94B  ; Emoji                # E3.0   [5] (🥇..🥋)    1st place medal..martial arts uniform
+ 1F94C         ; Emoji                # E5.0   [1] (🥌)       curling stone
+ 1F94D..1F94F  ; Emoji                # E11.0  [3] (🥍..🥏)    lacrosse..flying disc
+ 1F950..1F95E  ; Emoji                # E3.0  [15] (🥐..🥞)    croissant..pancakes
+ 1F95F..1F96B  ; Emoji                # E5.0  [13] (🥟..🥫)    dumpling..canned food
+ 1F96C..1F970  ; Emoji                # E11.0  [5] (🥬..🥰)    leafy green..smiling face with hearts
+ 1F971         ; Emoji                # E12.0  [1] (🥱)       yawning face
+ 1F972         ; Emoji                # E13.0  [1] (🥲)       smiling face with tear
+ 1F973..1F976  ; Emoji                # E11.0  [4] (🥳..🥶)    partying face..cold face
+ 1F977..1F978  ; Emoji                # E13.0  [2] (🥷..🥸)    ninja..disguised face
+ 1F979         ; Emoji                # E14.0  [1] (🥹)       face holding back tears
+ 1F97A         ; Emoji                # E11.0  [1] (🥺)       pleading face
+ 1F97B         ; Emoji                # E12.0  [1] (🥻)       sari
+ 1F97C..1F97F  ; Emoji                # E11.0  [4] (🥼..🥿)    lab coat..flat shoe
+ 1F980..1F984  ; Emoji                # E1.0   [5] (🦀..🦄)    crab..unicorn
+ 1F985..1F991  ; Emoji                # E3.0  [13] (🦅..🦑)    eagle..squid
+ 1F992..1F997  ; Emoji                # E5.0   [6] (🦒..🦗)    giraffe..cricket
+ 1F998..1F9A2  ; Emoji                # E11.0 [11] (🦘..🦢)    kangaroo..swan
+ 1F9A3..1F9A4  ; Emoji                # E13.0  [2] (🦣..🦤)    mammoth..dodo
+ 1F9A5..1F9AA  ; Emoji                # E12.0  [6] (🦥..🦪)    sloth..oyster
+ 1F9AB..1F9AD  ; Emoji                # E13.0  [3] (🦫..🦭)    beaver..seal
+ 1F9AE..1F9AF  ; Emoji                # E12.0  [2] (🦮..🦯)    guide dog..white cane
+ 1F9B0..1F9B9  ; Emoji                # E11.0 [10] (🦰..🦹)    red hair..supervillain
+ 1F9BA..1F9BF  ; Emoji                # E12.0  [6] (🦺..🦿)    safety vest..mechanical leg
+ 1F9C0         ; Emoji                # E1.0   [1] (🧀)       cheese wedge
+ 1F9C1..1F9C2  ; Emoji                # E11.0  [2] (🧁..🧂)    cupcake..salt
+ 1F9C3..1F9CA  ; Emoji                # E12.0  [8] (🧃..🧊)    beverage box..ice
+ 1F9CB         ; Emoji                # E13.0  [1] (🧋)       bubble tea
+ 1F9CC         ; Emoji                # E14.0  [1] (🧌)       troll
+ 1F9CD..1F9CF  ; Emoji                # E12.0  [3] (🧍..🧏)    person standing..deaf person
+ 1F9D0..1F9E6  ; Emoji                # E5.0  [23] (🧐..🧦)    face with monocle..socks
+ 1F9E7..1F9FF  ; Emoji                # E11.0 [25] (🧧..🧿)    red envelope..nazar amulet
+ 1FA70..1FA73  ; Emoji                # E12.0  [4] (🩰..🩳)    ballet shoes..shorts
+ 1FA74         ; Emoji                # E13.0  [1] (🩴)       thong sandal
+ 1FA75..1FA77  ; Emoji                # E15.0  [3] (🩵..🩷)    light blue heart..pink heart
+ 1FA78..1FA7A  ; Emoji                # E12.0  [3] (🩸..🩺)    drop of blood..stethoscope
+ 1FA7B..1FA7C  ; Emoji                # E14.0  [2] (🩻..🩼)    x-ray..crutch
+ 1FA80..1FA82  ; Emoji                # E12.0  [3] (🪀..🪂)    yo-yo..parachute
+ 1FA83..1FA86  ; Emoji                # E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
+ 1FA87..1FA88  ; Emoji                # E15.0  [2] (🪇..🪈)    maracas..flute
+ 1FA90..1FA95  ; Emoji                # E12.0  [6] (🪐..🪕)    ringed planet..banjo
+ 1FA96..1FAA8  ; Emoji                # E13.0 [19] (🪖..🪨)    military helmet..rock
+ 1FAA9..1FAAC  ; Emoji                # E14.0  [4] (🪩..🪬)    mirror ball..hamsa
+ 1FAAD..1FAAF  ; Emoji                # E15.0  [3] (🪭..🪯)    folding hand fan..khanda
+ 1FAB0..1FAB6  ; Emoji                # E13.0  [7] (🪰..🪶)    fly..feather
+ 1FAB7..1FABA  ; Emoji                # E14.0  [4] (🪷..🪺)    lotus..nest with eggs
+ 1FABB..1FABD  ; Emoji                # E15.0  [3] (🪻..🪽)    hyacinth..wing
+ 1FABF         ; Emoji                # E15.0  [1] (🪿)       goose
+ 1FAC0..1FAC2  ; Emoji                # E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
+ 1FAC3..1FAC5  ; Emoji                # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
+ 1FACE..1FACF  ; Emoji                # E15.0  [2] (🫎..🫏)    moose..donkey
+ 1FAD0..1FAD6  ; Emoji                # E13.0  [7] (🫐..🫖)    blueberries..teapot
+ 1FAD7..1FAD9  ; Emoji                # E14.0  [3] (🫗..🫙)    pouring liquid..jar
+ 1FADA..1FADB  ; Emoji                # E15.0  [2] (🫚..🫛)    ginger root..pea pod
+ 1FAE0..1FAE7  ; Emoji                # E14.0  [8] (🫠..🫧)    melting face..bubbles
+ 1FAE8         ; Emoji                # E15.0  [1] (🫨)       shaking face
+ 1FAF0..1FAF6  ; Emoji                # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
+ 1FAF7..1FAF8  ; Emoji                # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
+ 
+ # Total elements: 1424
+ 
+ # ================================================
+ 
+ # All omitted code points have Emoji_Presentation=No
+ 
+ 231A..231B    ; Emoji_Presentation   # E0.6   [2] (⌚..⌛)    watch..hourglass done
+ 23E9..23EC    ; Emoji_Presentation   # E0.6   [4] (⏩..⏬)    fast-forward button..fast down button
+ 23F0          ; Emoji_Presentation   # E0.6   [1] (⏰)       alarm clock
+ 23F3          ; Emoji_Presentation   # E0.6   [1] (⏳)       hourglass not done
+ 25FD..25FE    ; Emoji_Presentation   # E0.6   [2] (◽..◾)    white medium-small square..black medium-small square
+ 2614..2615    ; Emoji_Presentation   # E0.6   [2] (☔..☕)    umbrella with rain drops..hot beverage
+ 2648..2653    ; Emoji_Presentation   # E0.6  [12] (♈..♓)    Aries..Pisces
+ 267F          ; Emoji_Presentation   # E0.6   [1] (♿)       wheelchair symbol
+ 2693          ; Emoji_Presentation   # E0.6   [1] (⚓)       anchor
+ 26A1          ; Emoji_Presentation   # E0.6   [1] (⚡)       high voltage
+ 26AA..26AB    ; Emoji_Presentation   # E0.6   [2] (⚪..⚫)    white circle..black circle
+ 26BD..26BE    ; Emoji_Presentation   # E0.6   [2] (⚽..⚾)    soccer ball..baseball
+ 26C4..26C5    ; Emoji_Presentation   # E0.6   [2] (⛄..⛅)    snowman without snow..sun behind cloud
+ 26CE          ; Emoji_Presentation   # E0.6   [1] (⛎)       Ophiuchus
+ 26D4          ; Emoji_Presentation   # E0.6   [1] (⛔)       no entry
+ 26EA          ; Emoji_Presentation   # E0.6   [1] (⛪)       church
+ 26F2..26F3    ; Emoji_Presentation   # E0.6   [2] (⛲..⛳)    fountain..flag in hole
+ 26F5          ; Emoji_Presentation   # E0.6   [1] (⛵)       sailboat
+ 26FA          ; Emoji_Presentation   # E0.6   [1] (⛺)       tent
+ 26FD          ; Emoji_Presentation   # E0.6   [1] (⛽)       fuel pump
+ 2705          ; Emoji_Presentation   # E0.6   [1] (✅)       check mark button
+ 270A..270B    ; Emoji_Presentation   # E0.6   [2] (✊..✋)    raised fist..raised hand
+ 2728          ; Emoji_Presentation   # E0.6   [1] (✨)       sparkles
+ 274C          ; Emoji_Presentation   # E0.6   [1] (❌)       cross mark
+ 274E          ; Emoji_Presentation   # E0.6   [1] (❎)       cross mark button
+ 2753..2755    ; Emoji_Presentation   # E0.6   [3] (❓..❕)    red question mark..white exclamation mark
+ 2757          ; Emoji_Presentation   # E0.6   [1] (❗)       red exclamation mark
+ 2795..2797    ; Emoji_Presentation   # E0.6   [3] (➕..➗)    plus..divide
+ 27B0          ; Emoji_Presentation   # E0.6   [1] (➰)       curly loop
+ 27BF          ; Emoji_Presentation   # E1.0   [1] (➿)       double curly loop
+ 2B1B..2B1C    ; Emoji_Presentation   # E0.6   [2] (⬛..⬜)    black large square..white large square
+ 2B50          ; Emoji_Presentation   # E0.6   [1] (⭐)       star
+ 2B55          ; Emoji_Presentation   # E0.6   [1] (⭕)       hollow red circle
+ 1F004         ; Emoji_Presentation   # E0.6   [1] (🀄)       mahjong red dragon
+ 1F0CF         ; Emoji_Presentation   # E0.6   [1] (🃏)       joker
+ 1F18E         ; Emoji_Presentation   # E0.6   [1] (🆎)       AB button (blood type)
+ 1F191..1F19A  ; Emoji_Presentation   # E0.6  [10] (🆑..🆚)    CL button..VS button
+ 1F1E6..1F1FF  ; Emoji_Presentation   # E0.0  [26] (🇦..🇿)    regional indicator symbol letter a..regional indicator symbol letter z
+ 1F201         ; Emoji_Presentation   # E0.6   [1] (🈁)       Japanese “here” button
+ 1F21A         ; Emoji_Presentation   # E0.6   [1] (🈚)       Japanese “free of charge” button
+ 1F22F         ; Emoji_Presentation   # E0.6   [1] (🈯)       Japanese “reserved” button
+ 1F232..1F236  ; Emoji_Presentation   # E0.6   [5] (🈲..🈶)    Japanese “prohibited” button..Japanese “not free of charge” button
+ 1F238..1F23A  ; Emoji_Presentation   # E0.6   [3] (🈸..🈺)    Japanese “application” button..Japanese “open for business” button
+ 1F250..1F251  ; Emoji_Presentation   # E0.6   [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button
+ 1F300..1F30C  ; Emoji_Presentation   # E0.6  [13] (🌀..🌌)    cyclone..milky way
+ 1F30D..1F30E  ; Emoji_Presentation   # E0.7   [2] (🌍..🌎)    globe showing Europe-Africa..globe showing Americas
+ 1F30F         ; Emoji_Presentation   # E0.6   [1] (🌏)       globe showing Asia-Australia
+ 1F310         ; Emoji_Presentation   # E1.0   [1] (🌐)       globe with meridians
+ 1F311         ; Emoji_Presentation   # E0.6   [1] (🌑)       new moon
+ 1F312         ; Emoji_Presentation   # E1.0   [1] (🌒)       waxing crescent moon
+ 1F313..1F315  ; Emoji_Presentation   # E0.6   [3] (🌓..🌕)    first quarter moon..full moon
+ 1F316..1F318  ; Emoji_Presentation   # E1.0   [3] (🌖..🌘)    waning gibbous moon..waning crescent moon
+ 1F319         ; Emoji_Presentation   # E0.6   [1] (🌙)       crescent moon
+ 1F31A         ; Emoji_Presentation   # E1.0   [1] (🌚)       new moon face
+ 1F31B         ; Emoji_Presentation   # E0.6   [1] (🌛)       first quarter moon face
+ 1F31C         ; Emoji_Presentation   # E0.7   [1] (🌜)       last quarter moon face
+ 1F31D..1F31E  ; Emoji_Presentation   # E1.0   [2] (🌝..🌞)    full moon face..sun with face
+ 1F31F..1F320  ; Emoji_Presentation   # E0.6   [2] (🌟..🌠)    glowing star..shooting star
+ 1F32D..1F32F  ; Emoji_Presentation   # E1.0   [3] (🌭..🌯)    hot dog..burrito
+ 1F330..1F331  ; Emoji_Presentation   # E0.6   [2] (🌰..🌱)    chestnut..seedling
+ 1F332..1F333  ; Emoji_Presentation   # E1.0   [2] (🌲..🌳)    evergreen tree..deciduous tree
+ 1F334..1F335  ; Emoji_Presentation   # E0.6   [2] (🌴..🌵)    palm tree..cactus
+ 1F337..1F34A  ; Emoji_Presentation   # E0.6  [20] (🌷..🍊)    tulip..tangerine
+ 1F34B         ; Emoji_Presentation   # E1.0   [1] (🍋)       lemon
+ 1F34C..1F34F  ; Emoji_Presentation   # E0.6   [4] (🍌..🍏)    banana..green apple
+ 1F350         ; Emoji_Presentation   # E1.0   [1] (🍐)       pear
+ 1F351..1F37B  ; Emoji_Presentation   # E0.6  [43] (🍑..🍻)    peach..clinking beer mugs
+ 1F37C         ; Emoji_Presentation   # E1.0   [1] (🍼)       baby bottle
+ 1F37E..1F37F  ; Emoji_Presentation   # E1.0   [2] (🍾..🍿)    bottle with popping cork..popcorn
+ 1F380..1F393  ; Emoji_Presentation   # E0.6  [20] (🎀..🎓)    ribbon..graduation cap
+ 1F3A0..1F3C4  ; Emoji_Presentation   # E0.6  [37] (🎠..🏄)    carousel horse..person surfing
+ 1F3C5         ; Emoji_Presentation   # E1.0   [1] (🏅)       sports medal
+ 1F3C6         ; Emoji_Presentation   # E0.6   [1] (🏆)       trophy
+ 1F3C7         ; Emoji_Presentation   # E1.0   [1] (🏇)       horse racing
+ 1F3C8         ; Emoji_Presentation   # E0.6   [1] (🏈)       american football
+ 1F3C9         ; Emoji_Presentation   # E1.0   [1] (🏉)       rugby football
+ 1F3CA         ; Emoji_Presentation   # E0.6   [1] (🏊)       person swimming
+ 1F3CF..1F3D3  ; Emoji_Presentation   # E1.0   [5] (🏏..🏓)    cricket game..ping pong
+ 1F3E0..1F3E3  ; Emoji_Presentation   # E0.6   [4] (🏠..🏣)    house..Japanese post office
+ 1F3E4         ; Emoji_Presentation   # E1.0   [1] (🏤)       post office
+ 1F3E5..1F3F0  ; Emoji_Presentation   # E0.6  [12] (🏥..🏰)    hospital..castle
+ 1F3F4         ; Emoji_Presentation   # E1.0   [1] (🏴)       black flag
+ 1F3F8..1F407  ; Emoji_Presentation   # E1.0  [16] (🏸..🐇)    badminton..rabbit
+ 1F408         ; Emoji_Presentation   # E0.7   [1] (🐈)       cat
+ 1F409..1F40B  ; Emoji_Presentation   # E1.0   [3] (🐉..🐋)    dragon..whale
+ 1F40C..1F40E  ; Emoji_Presentation   # E0.6   [3] (🐌..🐎)    snail..horse
+ 1F40F..1F410  ; Emoji_Presentation   # E1.0   [2] (🐏..🐐)    ram..goat
+ 1F411..1F412  ; Emoji_Presentation   # E0.6   [2] (🐑..🐒)    ewe..monkey
+ 1F413         ; Emoji_Presentation   # E1.0   [1] (🐓)       rooster
+ 1F414         ; Emoji_Presentation   # E0.6   [1] (🐔)       chicken
+ 1F415         ; Emoji_Presentation   # E0.7   [1] (🐕)       dog
+ 1F416         ; Emoji_Presentation   # E1.0   [1] (🐖)       pig
+ 1F417..1F429  ; Emoji_Presentation   # E0.6  [19] (🐗..🐩)    boar..poodle
+ 1F42A         ; Emoji_Presentation   # E1.0   [1] (🐪)       camel
+ 1F42B..1F43E  ; Emoji_Presentation   # E0.6  [20] (🐫..🐾)    two-hump camel..paw prints
+ 1F440         ; Emoji_Presentation   # E0.6   [1] (👀)       eyes
+ 1F442..1F464  ; Emoji_Presentation   # E0.6  [35] (👂..👤)    ear..bust in silhouette
+ 1F465         ; Emoji_Presentation   # E1.0   [1] (👥)       busts in silhouette
+ 1F466..1F46B  ; Emoji_Presentation   # E0.6   [6] (👦..👫)    boy..woman and man holding hands
+ 1F46C..1F46D  ; Emoji_Presentation   # E1.0   [2] (👬..👭)    men holding hands..women holding hands
+ 1F46E..1F4AC  ; Emoji_Presentation   # E0.6  [63] (👮..💬)    police officer..speech balloon
+ 1F4AD         ; Emoji_Presentation   # E1.0   [1] (💭)       thought balloon
+ 1F4AE..1F4B5  ; Emoji_Presentation   # E0.6   [8] (💮..💵)    white flower..dollar banknote
+ 1F4B6..1F4B7  ; Emoji_Presentation   # E1.0   [2] (💶..💷)    euro banknote..pound banknote
+ 1F4B8..1F4EB  ; Emoji_Presentation   # E0.6  [52] (💸..📫)    money with wings..closed mailbox with raised flag
+ 1F4EC..1F4ED  ; Emoji_Presentation   # E0.7   [2] (📬..📭)    open mailbox with raised flag..open mailbox with lowered flag
+ 1F4EE         ; Emoji_Presentation   # E0.6   [1] (📮)       postbox
+ 1F4EF         ; Emoji_Presentation   # E1.0   [1] (📯)       postal horn
+ 1F4F0..1F4F4  ; Emoji_Presentation   # E0.6   [5] (📰..📴)    newspaper..mobile phone off
+ 1F4F5         ; Emoji_Presentation   # E1.0   [1] (📵)       no mobile phones
+ 1F4F6..1F4F7  ; Emoji_Presentation   # E0.6   [2] (📶..📷)    antenna bars..camera
+ 1F4F8         ; Emoji_Presentation   # E1.0   [1] (📸)       camera with flash
+ 1F4F9..1F4FC  ; Emoji_Presentation   # E0.6   [4] (📹..📼)    video camera..videocassette
+ 1F4FF..1F502  ; Emoji_Presentation   # E1.0   [4] (📿..🔂)    prayer beads..repeat single button
+ 1F503         ; Emoji_Presentation   # E0.6   [1] (🔃)       clockwise vertical arrows
+ 1F504..1F507  ; Emoji_Presentation   # E1.0   [4] (🔄..🔇)    counterclockwise arrows button..muted speaker
+ 1F508         ; Emoji_Presentation   # E0.7   [1] (🔈)       speaker low volume
+ 1F509         ; Emoji_Presentation   # E1.0   [1] (🔉)       speaker medium volume
+ 1F50A..1F514  ; Emoji_Presentation   # E0.6  [11] (🔊..🔔)    speaker high volume..bell
+ 1F515         ; Emoji_Presentation   # E1.0   [1] (🔕)       bell with slash
+ 1F516..1F52B  ; Emoji_Presentation   # E0.6  [22] (🔖..🔫)    bookmark..water pistol
+ 1F52C..1F52D  ; Emoji_Presentation   # E1.0   [2] (🔬..🔭)    microscope..telescope
+ 1F52E..1F53D  ; Emoji_Presentation   # E0.6  [16] (🔮..🔽)    crystal ball..downwards button
+ 1F54B..1F54E  ; Emoji_Presentation   # E1.0   [4] (🕋..🕎)    kaaba..menorah
+ 1F550..1F55B  ; Emoji_Presentation   # E0.6  [12] (🕐..🕛)    one o’clock..twelve o’clock
+ 1F55C..1F567  ; Emoji_Presentation   # E0.7  [12] (🕜..🕧)    one-thirty..twelve-thirty
+ 1F57A         ; Emoji_Presentation   # E3.0   [1] (🕺)       man dancing
+ 1F595..1F596  ; Emoji_Presentation   # E1.0   [2] (🖕..🖖)    middle finger..vulcan salute
+ 1F5A4         ; Emoji_Presentation   # E3.0   [1] (🖤)       black heart
+ 1F5FB..1F5FF  ; Emoji_Presentation   # E0.6   [5] (🗻..🗿)    mount fuji..moai
+ 1F600         ; Emoji_Presentation   # E1.0   [1] (😀)       grinning face
+ 1F601..1F606  ; Emoji_Presentation   # E0.6   [6] (😁..😆)    beaming face with smiling eyes..grinning squinting face
+ 1F607..1F608  ; Emoji_Presentation   # E1.0   [2] (😇..😈)    smiling face with halo..smiling face with horns
+ 1F609..1F60D  ; Emoji_Presentation   # E0.6   [5] (😉..😍)    winking face..smiling face with heart-eyes
+ 1F60E         ; Emoji_Presentation   # E1.0   [1] (😎)       smiling face with sunglasses
+ 1F60F         ; Emoji_Presentation   # E0.6   [1] (😏)       smirking face
+ 1F610         ; Emoji_Presentation   # E0.7   [1] (😐)       neutral face
+ 1F611         ; Emoji_Presentation   # E1.0   [1] (😑)       expressionless face
+ 1F612..1F614  ; Emoji_Presentation   # E0.6   [3] (😒..😔)    unamused face..pensive face
+ 1F615         ; Emoji_Presentation   # E1.0   [1] (😕)       confused face
+ 1F616         ; Emoji_Presentation   # E0.6   [1] (😖)       confounded face
+ 1F617         ; Emoji_Presentation   # E1.0   [1] (😗)       kissing face
+ 1F618         ; Emoji_Presentation   # E0.6   [1] (😘)       face blowing a kiss
+ 1F619         ; Emoji_Presentation   # E1.0   [1] (😙)       kissing face with smiling eyes
+ 1F61A         ; Emoji_Presentation   # E0.6   [1] (😚)       kissing face with closed eyes
+ 1F61B         ; Emoji_Presentation   # E1.0   [1] (😛)       face with tongue
+ 1F61C..1F61E  ; Emoji_Presentation   # E0.6   [3] (😜..😞)    winking face with tongue..disappointed face
+ 1F61F         ; Emoji_Presentation   # E1.0   [1] (😟)       worried face
+ 1F620..1F625  ; Emoji_Presentation   # E0.6   [6] (😠..😥)    angry face..sad but relieved face
+ 1F626..1F627  ; Emoji_Presentation   # E1.0   [2] (😦..😧)    frowning face with open mouth..anguished face
+ 1F628..1F62B  ; Emoji_Presentation   # E0.6   [4] (😨..😫)    fearful face..tired face
+ 1F62C         ; Emoji_Presentation   # E1.0   [1] (😬)       grimacing face
+ 1F62D         ; Emoji_Presentation   # E0.6   [1] (😭)       loudly crying face
+ 1F62E..1F62F  ; Emoji_Presentation   # E1.0   [2] (😮..😯)    face with open mouth..hushed face
+ 1F630..1F633  ; Emoji_Presentation   # E0.6   [4] (😰..😳)    anxious face with sweat..flushed face
+ 1F634         ; Emoji_Presentation   # E1.0   [1] (😴)       sleeping face
+ 1F635         ; Emoji_Presentation   # E0.6   [1] (😵)       face with crossed-out eyes
+ 1F636         ; Emoji_Presentation   # E1.0   [1] (😶)       face without mouth
+ 1F637..1F640  ; Emoji_Presentation   # E0.6  [10] (😷..🙀)    face with medical mask..weary cat
+ 1F641..1F644  ; Emoji_Presentation   # E1.0   [4] (🙁..🙄)    slightly frowning face..face with rolling eyes
+ 1F645..1F64F  ; Emoji_Presentation   # E0.6  [11] (🙅..🙏)    person gesturing NO..folded hands
+ 1F680         ; Emoji_Presentation   # E0.6   [1] (🚀)       rocket
+ 1F681..1F682  ; Emoji_Presentation   # E1.0   [2] (🚁..🚂)    helicopter..locomotive
+ 1F683..1F685  ; Emoji_Presentation   # E0.6   [3] (🚃..🚅)    railway car..bullet train
+ 1F686         ; Emoji_Presentation   # E1.0   [1] (🚆)       train
+ 1F687         ; Emoji_Presentation   # E0.6   [1] (🚇)       metro
+ 1F688         ; Emoji_Presentation   # E1.0   [1] (🚈)       light rail
+ 1F689         ; Emoji_Presentation   # E0.6   [1] (🚉)       station
+ 1F68A..1F68B  ; Emoji_Presentation   # E1.0   [2] (🚊..🚋)    tram..tram car
+ 1F68C         ; Emoji_Presentation   # E0.6   [1] (🚌)       bus
+ 1F68D         ; Emoji_Presentation   # E0.7   [1] (🚍)       oncoming bus
+ 1F68E         ; Emoji_Presentation   # E1.0   [1] (🚎)       trolleybus
+ 1F68F         ; Emoji_Presentation   # E0.6   [1] (🚏)       bus stop
+ 1F690         ; Emoji_Presentation   # E1.0   [1] (🚐)       minibus
+ 1F691..1F693  ; Emoji_Presentation   # E0.6   [3] (🚑..🚓)    ambulance..police car
+ 1F694         ; Emoji_Presentation   # E0.7   [1] (🚔)       oncoming police car
+ 1F695         ; Emoji_Presentation   # E0.6   [1] (🚕)       taxi
+ 1F696         ; Emoji_Presentation   # E1.0   [1] (🚖)       oncoming taxi
+ 1F697         ; Emoji_Presentation   # E0.6   [1] (🚗)       automobile
+ 1F698         ; Emoji_Presentation   # E0.7   [1] (🚘)       oncoming automobile
+ 1F699..1F69A  ; Emoji_Presentation   # E0.6   [2] (🚙..🚚)    sport utility vehicle..delivery truck
+ 1F69B..1F6A1  ; Emoji_Presentation   # E1.0   [7] (🚛..🚡)    articulated lorry..aerial tramway
+ 1F6A2         ; Emoji_Presentation   # E0.6   [1] (🚢)       ship
+ 1F6A3         ; Emoji_Presentation   # E1.0   [1] (🚣)       person rowing boat
+ 1F6A4..1F6A5  ; Emoji_Presentation   # E0.6   [2] (🚤..🚥)    speedboat..horizontal traffic light
+ 1F6A6         ; Emoji_Presentation   # E1.0   [1] (🚦)       vertical traffic light
+ 1F6A7..1F6AD  ; Emoji_Presentation   # E0.6   [7] (🚧..🚭)    construction..no smoking
+ 1F6AE..1F6B1  ; Emoji_Presentation   # E1.0   [4] (🚮..🚱)    litter in bin sign..non-potable water
+ 1F6B2         ; Emoji_Presentation   # E0.6   [1] (🚲)       bicycle
+ 1F6B3..1F6B5  ; Emoji_Presentation   # E1.0   [3] (🚳..🚵)    no bicycles..person mountain biking
+ 1F6B6         ; Emoji_Presentation   # E0.6   [1] (🚶)       person walking
+ 1F6B7..1F6B8  ; Emoji_Presentation   # E1.0   [2] (🚷..🚸)    no pedestrians..children crossing
+ 1F6B9..1F6BE  ; Emoji_Presentation   # E0.6   [6] (🚹..🚾)    men’s room..water closet
+ 1F6BF         ; Emoji_Presentation   # E1.0   [1] (🚿)       shower
+ 1F6C0         ; Emoji_Presentation   # E0.6   [1] (🛀)       person taking bath
+ 1F6C1..1F6C5  ; Emoji_Presentation   # E1.0   [5] (🛁..🛅)    bathtub..left luggage
+ 1F6CC         ; Emoji_Presentation   # E1.0   [1] (🛌)       person in bed
+ 1F6D0         ; Emoji_Presentation   # E1.0   [1] (🛐)       place of worship
+ 1F6D1..1F6D2  ; Emoji_Presentation   # E3.0   [2] (🛑..🛒)    stop sign..shopping cart
+ 1F6D5         ; Emoji_Presentation   # E12.0  [1] (🛕)       hindu temple
+ 1F6D6..1F6D7  ; Emoji_Presentation   # E13.0  [2] (🛖..🛗)    hut..elevator
+ 1F6DC         ; Emoji_Presentation   # E15.0  [1] (🛜)       wireless
+ 1F6DD..1F6DF  ; Emoji_Presentation   # E14.0  [3] (🛝..🛟)    playground slide..ring buoy
+ 1F6EB..1F6EC  ; Emoji_Presentation   # E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival
+ 1F6F4..1F6F6  ; Emoji_Presentation   # E3.0   [3] (🛴..🛶)    kick scooter..canoe
+ 1F6F7..1F6F8  ; Emoji_Presentation   # E5.0   [2] (🛷..🛸)    sled..flying saucer
+ 1F6F9         ; Emoji_Presentation   # E11.0  [1] (🛹)       skateboard
+ 1F6FA         ; Emoji_Presentation   # E12.0  [1] (🛺)       auto rickshaw
+ 1F6FB..1F6FC  ; Emoji_Presentation   # E13.0  [2] (🛻..🛼)    pickup truck..roller skate
+ 1F7E0..1F7EB  ; Emoji_Presentation   # E12.0 [12] (🟠..🟫)    orange circle..brown square
+ 1F7F0         ; Emoji_Presentation   # E14.0  [1] (🟰)       heavy equals sign
+ 1F90C         ; Emoji_Presentation   # E13.0  [1] (🤌)       pinched fingers
+ 1F90D..1F90F  ; Emoji_Presentation   # E12.0  [3] (🤍..🤏)    white heart..pinching hand
+ 1F910..1F918  ; Emoji_Presentation   # E1.0   [9] (🤐..🤘)    zipper-mouth face..sign of the horns
+ 1F919..1F91E  ; Emoji_Presentation   # E3.0   [6] (🤙..🤞)    call me hand..crossed fingers
+ 1F91F         ; Emoji_Presentation   # E5.0   [1] (🤟)       love-you gesture
+ 1F920..1F927  ; Emoji_Presentation   # E3.0   [8] (🤠..🤧)    cowboy hat face..sneezing face
+ 1F928..1F92F  ; Emoji_Presentation   # E5.0   [8] (🤨..🤯)    face with raised eyebrow..exploding head
+ 1F930         ; Emoji_Presentation   # E3.0   [1] (🤰)       pregnant woman
+ 1F931..1F932  ; Emoji_Presentation   # E5.0   [2] (🤱..🤲)    breast-feeding..palms up together
+ 1F933..1F93A  ; Emoji_Presentation   # E3.0   [8] (🤳..🤺)    selfie..person fencing
+ 1F93C..1F93E  ; Emoji_Presentation   # E3.0   [3] (🤼..🤾)    people wrestling..person playing handball
+ 1F93F         ; Emoji_Presentation   # E12.0  [1] (🤿)       diving mask
+ 1F940..1F945  ; Emoji_Presentation   # E3.0   [6] (🥀..🥅)    wilted flower..goal net
+ 1F947..1F94B  ; Emoji_Presentation   # E3.0   [5] (🥇..🥋)    1st place medal..martial arts uniform
+ 1F94C         ; Emoji_Presentation   # E5.0   [1] (🥌)       curling stone
+ 1F94D..1F94F  ; Emoji_Presentation   # E11.0  [3] (🥍..🥏)    lacrosse..flying disc
+ 1F950..1F95E  ; Emoji_Presentation   # E3.0  [15] (🥐..🥞)    croissant..pancakes
+ 1F95F..1F96B  ; Emoji_Presentation   # E5.0  [13] (🥟..🥫)    dumpling..canned food
+ 1F96C..1F970  ; Emoji_Presentation   # E11.0  [5] (🥬..🥰)    leafy green..smiling face with hearts
+ 1F971         ; Emoji_Presentation   # E12.0  [1] (🥱)       yawning face
+ 1F972         ; Emoji_Presentation   # E13.0  [1] (🥲)       smiling face with tear
+ 1F973..1F976  ; Emoji_Presentation   # E11.0  [4] (🥳..🥶)    partying face..cold face
+ 1F977..1F978  ; Emoji_Presentation   # E13.0  [2] (🥷..🥸)    ninja..disguised face
+ 1F979         ; Emoji_Presentation   # E14.0  [1] (🥹)       face holding back tears
+ 1F97A         ; Emoji_Presentation   # E11.0  [1] (🥺)       pleading face
+ 1F97B         ; Emoji_Presentation   # E12.0  [1] (🥻)       sari
+ 1F97C..1F97F  ; Emoji_Presentation   # E11.0  [4] (🥼..🥿)    lab coat..flat shoe
+ 1F980..1F984  ; Emoji_Presentation   # E1.0   [5] (🦀..🦄)    crab..unicorn
+ 1F985..1F991  ; Emoji_Presentation   # E3.0  [13] (🦅..🦑)    eagle..squid
+ 1F992..1F997  ; Emoji_Presentation   # E5.0   [6] (🦒..🦗)    giraffe..cricket
+ 1F998..1F9A2  ; Emoji_Presentation   # E11.0 [11] (🦘..🦢)    kangaroo..swan
+ 1F9A3..1F9A4  ; Emoji_Presentation   # E13.0  [2] (🦣..🦤)    mammoth..dodo
+ 1F9A5..1F9AA  ; Emoji_Presentation   # E12.0  [6] (🦥..🦪)    sloth..oyster
+ 1F9AB..1F9AD  ; Emoji_Presentation   # E13.0  [3] (🦫..🦭)    beaver..seal
+ 1F9AE..1F9AF  ; Emoji_Presentation   # E12.0  [2] (🦮..🦯)    guide dog..white cane
+ 1F9B0..1F9B9  ; Emoji_Presentation   # E11.0 [10] (🦰..🦹)    red hair..supervillain
+ 1F9BA..1F9BF  ; Emoji_Presentation   # E12.0  [6] (🦺..🦿)    safety vest..mechanical leg
+ 1F9C0         ; Emoji_Presentation   # E1.0   [1] (🧀)       cheese wedge
+ 1F9C1..1F9C2  ; Emoji_Presentation   # E11.0  [2] (🧁..🧂)    cupcake..salt
+ 1F9C3..1F9CA  ; Emoji_Presentation   # E12.0  [8] (🧃..🧊)    beverage box..ice
+ 1F9CB         ; Emoji_Presentation   # E13.0  [1] (🧋)       bubble tea
+ 1F9CC         ; Emoji_Presentation   # E14.0  [1] (🧌)       troll
+ 1F9CD..1F9CF  ; Emoji_Presentation   # E12.0  [3] (🧍..🧏)    person standing..deaf person
+ 1F9D0..1F9E6  ; Emoji_Presentation   # E5.0  [23] (🧐..🧦)    face with monocle..socks
+ 1F9E7..1F9FF  ; Emoji_Presentation   # E11.0 [25] (🧧..🧿)    red envelope..nazar amulet
+ 1FA70..1FA73  ; Emoji_Presentation   # E12.0  [4] (🩰..🩳)    ballet shoes..shorts
+ 1FA74         ; Emoji_Presentation   # E13.0  [1] (🩴)       thong sandal
+ 1FA75..1FA77  ; Emoji_Presentation   # E15.0  [3] (🩵..🩷)    light blue heart..pink heart
+ 1FA78..1FA7A  ; Emoji_Presentation   # E12.0  [3] (🩸..🩺)    drop of blood..stethoscope
+ 1FA7B..1FA7C  ; Emoji_Presentation   # E14.0  [2] (🩻..🩼)    x-ray..crutch
+ 1FA80..1FA82  ; Emoji_Presentation   # E12.0  [3] (🪀..🪂)    yo-yo..parachute
+ 1FA83..1FA86  ; Emoji_Presentation   # E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
+ 1FA87..1FA88  ; Emoji_Presentation   # E15.0  [2] (🪇..🪈)    maracas..flute
+ 1FA90..1FA95  ; Emoji_Presentation   # E12.0  [6] (🪐..🪕)    ringed planet..banjo
+ 1FA96..1FAA8  ; Emoji_Presentation   # E13.0 [19] (🪖..🪨)    military helmet..rock
+ 1FAA9..1FAAC  ; Emoji_Presentation   # E14.0  [4] (🪩..🪬)    mirror ball..hamsa
+ 1FAAD..1FAAF  ; Emoji_Presentation   # E15.0  [3] (🪭..🪯)    folding hand fan..khanda
+ 1FAB0..1FAB6  ; Emoji_Presentation   # E13.0  [7] (🪰..🪶)    fly..feather
+ 1FAB7..1FABA  ; Emoji_Presentation   # E14.0  [4] (🪷..🪺)    lotus..nest with eggs
+ 1FABB..1FABD  ; Emoji_Presentation   # E15.0  [3] (🪻..🪽)    hyacinth..wing
+ 1FABF         ; Emoji_Presentation   # E15.0  [1] (🪿)       goose
+ 1FAC0..1FAC2  ; Emoji_Presentation   # E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
+ 1FAC3..1FAC5  ; Emoji_Presentation   # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
+ 1FACE..1FACF  ; Emoji_Presentation   # E15.0  [2] (🫎..🫏)    moose..donkey
+ 1FAD0..1FAD6  ; Emoji_Presentation   # E13.0  [7] (🫐..🫖)    blueberries..teapot
+ 1FAD7..1FAD9  ; Emoji_Presentation   # E14.0  [3] (🫗..🫙)    pouring liquid..jar
+ 1FADA..1FADB  ; Emoji_Presentation   # E15.0  [2] (🫚..🫛)    ginger root..pea pod
+ 1FAE0..1FAE7  ; Emoji_Presentation   # E14.0  [8] (🫠..🫧)    melting face..bubbles
+ 1FAE8         ; Emoji_Presentation   # E15.0  [1] (🫨)       shaking face
+ 1FAF0..1FAF6  ; Emoji_Presentation   # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
+ 1FAF7..1FAF8  ; Emoji_Presentation   # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
+ 
+ # Total elements: 1205
+ 
+ # ================================================
+ 
+ # All omitted code points have Emoji_Modifier=No
+ 
+ 1F3FB..1F3FF  ; Emoji_Modifier       # E1.0   [5] (🏻..🏿)    light skin tone..dark skin tone
+ 
+ # Total elements: 5
+ 
+ # ================================================
+ 
+ # All omitted code points have Emoji_Modifier_Base=No
+ 
+ 261D          ; Emoji_Modifier_Base  # E0.6   [1] (☝️)       index pointing up
+ 26F9          ; Emoji_Modifier_Base  # E0.7   [1] (⛹️)       person bouncing ball
+ 270A..270C    ; Emoji_Modifier_Base  # E0.6   [3] (✊..✌️)    raised fist..victory hand
+ 270D          ; Emoji_Modifier_Base  # E0.7   [1] (✍️)       writing hand
+ 1F385         ; Emoji_Modifier_Base  # E0.6   [1] (🎅)       Santa Claus
+ 1F3C2..1F3C4  ; Emoji_Modifier_Base  # E0.6   [3] (🏂..🏄)    snowboarder..person surfing
+ 1F3C7         ; Emoji_Modifier_Base  # E1.0   [1] (🏇)       horse racing
+ 1F3CA         ; Emoji_Modifier_Base  # E0.6   [1] (🏊)       person swimming
+ 1F3CB..1F3CC  ; Emoji_Modifier_Base  # E0.7   [2] (🏋️..🏌️)    person lifting weights..person golfing
+ 1F442..1F443  ; Emoji_Modifier_Base  # E0.6   [2] (👂..👃)    ear..nose
+ 1F446..1F450  ; Emoji_Modifier_Base  # E0.6  [11] (👆..👐)    backhand index pointing up..open hands
+ 1F466..1F46B  ; Emoji_Modifier_Base  # E0.6   [6] (👦..👫)    boy..woman and man holding hands
+ 1F46C..1F46D  ; Emoji_Modifier_Base  # E1.0   [2] (👬..👭)    men holding hands..women holding hands
+ 1F46E..1F478  ; Emoji_Modifier_Base  # E0.6  [11] (👮..👸)    police officer..princess
+ 1F47C         ; Emoji_Modifier_Base  # E0.6   [1] (👼)       baby angel
+ 1F481..1F483  ; Emoji_Modifier_Base  # E0.6   [3] (💁..💃)    person tipping hand..woman dancing
+ 1F485..1F487  ; Emoji_Modifier_Base  # E0.6   [3] (💅..💇)    nail polish..person getting haircut
+ 1F48F         ; Emoji_Modifier_Base  # E0.6   [1] (💏)       kiss
+ 1F491         ; Emoji_Modifier_Base  # E0.6   [1] (💑)       couple with heart
+ 1F4AA         ; Emoji_Modifier_Base  # E0.6   [1] (💪)       flexed biceps
+ 1F574..1F575  ; Emoji_Modifier_Base  # E0.7   [2] (🕴️..🕵️)    person in suit levitating..detective
+ 1F57A         ; Emoji_Modifier_Base  # E3.0   [1] (🕺)       man dancing
+ 1F590         ; Emoji_Modifier_Base  # E0.7   [1] (🖐️)       hand with fingers splayed
+ 1F595..1F596  ; Emoji_Modifier_Base  # E1.0   [2] (🖕..🖖)    middle finger..vulcan salute
+ 1F645..1F647  ; Emoji_Modifier_Base  # E0.6   [3] (🙅..🙇)    person gesturing NO..person bowing
+ 1F64B..1F64F  ; Emoji_Modifier_Base  # E0.6   [5] (🙋..🙏)    person raising hand..folded hands
+ 1F6A3         ; Emoji_Modifier_Base  # E1.0   [1] (🚣)       person rowing boat
+ 1F6B4..1F6B5  ; Emoji_Modifier_Base  # E1.0   [2] (🚴..🚵)    person biking..person mountain biking
+ 1F6B6         ; Emoji_Modifier_Base  # E0.6   [1] (🚶)       person walking
+ 1F6C0         ; Emoji_Modifier_Base  # E0.6   [1] (🛀)       person taking bath
+ 1F6CC         ; Emoji_Modifier_Base  # E1.0   [1] (🛌)       person in bed
+ 1F90C         ; Emoji_Modifier_Base  # E13.0  [1] (🤌)       pinched fingers
+ 1F90F         ; Emoji_Modifier_Base  # E12.0  [1] (🤏)       pinching hand
+ 1F918         ; Emoji_Modifier_Base  # E1.0   [1] (🤘)       sign of the horns
+ 1F919..1F91E  ; Emoji_Modifier_Base  # E3.0   [6] (🤙..🤞)    call me hand..crossed fingers
+ 1F91F         ; Emoji_Modifier_Base  # E5.0   [1] (🤟)       love-you gesture
+ 1F926         ; Emoji_Modifier_Base  # E3.0   [1] (🤦)       person facepalming
+ 1F930         ; Emoji_Modifier_Base  # E3.0   [1] (🤰)       pregnant woman
+ 1F931..1F932  ; Emoji_Modifier_Base  # E5.0   [2] (🤱..🤲)    breast-feeding..palms up together
+ 1F933..1F939  ; Emoji_Modifier_Base  # E3.0   [7] (🤳..🤹)    selfie..person juggling
+ 1F93C..1F93E  ; Emoji_Modifier_Base  # E3.0   [3] (🤼..🤾)    people wrestling..person playing handball
+ 1F977         ; Emoji_Modifier_Base  # E13.0  [1] (🥷)       ninja
+ 1F9B5..1F9B6  ; Emoji_Modifier_Base  # E11.0  [2] (🦵..🦶)    leg..foot
+ 1F9B8..1F9B9  ; Emoji_Modifier_Base  # E11.0  [2] (🦸..🦹)    superhero..supervillain
+ 1F9BB         ; Emoji_Modifier_Base  # E12.0  [1] (🦻)       ear with hearing aid
+ 1F9CD..1F9CF  ; Emoji_Modifier_Base  # E12.0  [3] (🧍..🧏)    person standing..deaf person
+ 1F9D1..1F9DD  ; Emoji_Modifier_Base  # E5.0  [13] (🧑..🧝)    person..elf
+ 1FAC3..1FAC5  ; Emoji_Modifier_Base  # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
+ 1FAF0..1FAF6  ; Emoji_Modifier_Base  # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
+ 1FAF7..1FAF8  ; Emoji_Modifier_Base  # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
+ 
+ # Total elements: 134
+ 
+ # ================================================
+ 
+ # All omitted code points have Emoji_Component=No
+ 
+ 0023          ; Emoji_Component      # E0.0   [1] (#️)       hash sign
+ 002A          ; Emoji_Component      # E0.0   [1] (*️)       asterisk
+ 0030..0039    ; Emoji_Component      # E0.0  [10] (0️..9️)    digit zero..digit nine
+ 200D          ; Emoji_Component      # E0.0   [1] (‍)        zero width joiner
+ 20E3          ; Emoji_Component      # E0.0   [1] (⃣)       combining enclosing keycap
+ FE0F          ; Emoji_Component      # E0.0   [1] ()        VARIATION SELECTOR-16
+ 1F1E6..1F1FF  ; Emoji_Component      # E0.0  [26] (🇦..🇿)    regional indicator symbol letter a..regional indicator symbol letter z
+ 1F3FB..1F3FF  ; Emoji_Component      # E1.0   [5] (🏻..🏿)    light skin tone..dark skin tone
+ 1F9B0..1F9B3  ; Emoji_Component      # E11.0  [4] (🦰..🦳)    red hair..white hair
+ E0020..E007F  ; Emoji_Component      # E0.0  [96] (󠀠..󠁿)      tag space..cancel tag
+ 
+ # Total elements: 146
+ 
+ # ================================================
+ 
+ # All omitted code points have Extended_Pictographic=No
+ 
+ 00A9          ; Extended_Pictographic# E0.6   [1] (©️)       copyright
+ 00AE          ; Extended_Pictographic# E0.6   [1] (®️)       registered
+ 203C          ; Extended_Pictographic# E0.6   [1] (‼️)       double exclamation mark
+ 2049          ; Extended_Pictographic# E0.6   [1] (⁉️)       exclamation question mark
+ 2122          ; Extended_Pictographic# E0.6   [1] (™️)       trade mark
+ 2139          ; Extended_Pictographic# E0.6   [1] (ℹ️)       information
+ 2194..2199    ; Extended_Pictographic# E0.6   [6] (↔️..↙️)    left-right arrow..down-left arrow
+ 21A9..21AA    ; Extended_Pictographic# E0.6   [2] (↩️..↪️)    right arrow curving left..left arrow curving right
+ 231A..231B    ; Extended_Pictographic# E0.6   [2] (⌚..⌛)    watch..hourglass done
+ 2328          ; Extended_Pictographic# E1.0   [1] (⌨️)       keyboard
+ 2388          ; Extended_Pictographic# E0.0   [1] (⎈)       HELM SYMBOL
+ 23CF          ; Extended_Pictographic# E1.0   [1] (⏏️)       eject button
+ 23E9..23EC    ; Extended_Pictographic# E0.6   [4] (⏩..⏬)    fast-forward button..fast down button
+ 23ED..23EE    ; Extended_Pictographic# E0.7   [2] (⏭️..⏮️)    next track button..last track button
+ 23EF          ; Extended_Pictographic# E1.0   [1] (⏯️)       play or pause button
+ 23F0          ; Extended_Pictographic# E0.6   [1] (⏰)       alarm clock
+ 23F1..23F2    ; Extended_Pictographic# E1.0   [2] (⏱️..⏲️)    stopwatch..timer clock
+ 23F3          ; Extended_Pictographic# E0.6   [1] (⏳)       hourglass not done
+ 23F8..23FA    ; Extended_Pictographic# E0.7   [3] (⏸️..⏺️)    pause button..record button
+ 24C2          ; Extended_Pictographic# E0.6   [1] (Ⓜ️)       circled M
+ 25AA..25AB    ; Extended_Pictographic# E0.6   [2] (▪️..▫️)    black small square..white small square
+ 25B6          ; Extended_Pictographic# E0.6   [1] (▶️)       play button
+ 25C0          ; Extended_Pictographic# E0.6   [1] (◀️)       reverse button
+ 25FB..25FE    ; Extended_Pictographic# E0.6   [4] (◻️..◾)    white medium square..black medium-small square
+ 2600..2601    ; Extended_Pictographic# E0.6   [2] (☀️..☁️)    sun..cloud
+ 2602..2603    ; Extended_Pictographic# E0.7   [2] (☂️..☃️)    umbrella..snowman
+ 2604          ; Extended_Pictographic# E1.0   [1] (☄️)       comet
+ 2605          ; Extended_Pictographic# E0.0   [1] (★)       BLACK STAR
+ 2607..260D    ; Extended_Pictographic# E0.0   [7] (☇..☍)    LIGHTNING..OPPOSITION
+ 260E          ; Extended_Pictographic# E0.6   [1] (☎️)       telephone
+ 260F..2610    ; Extended_Pictographic# E0.0   [2] (☏..☐)    WHITE TELEPHONE..BALLOT BOX
+ 2611          ; Extended_Pictographic# E0.6   [1] (☑️)       check box with check
+ 2612          ; Extended_Pictographic# E0.0   [1] (☒)       BALLOT BOX WITH X
+ 2614..2615    ; Extended_Pictographic# E0.6   [2] (☔..☕)    umbrella with rain drops..hot beverage
+ 2616..2617    ; Extended_Pictographic# E0.0   [2] (☖..☗)    WHITE SHOGI PIECE..BLACK SHOGI PIECE
+ 2618          ; Extended_Pictographic# E1.0   [1] (☘️)       shamrock
+ 2619..261C    ; Extended_Pictographic# E0.0   [4] (☙..☜)    REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX
+ 261D          ; Extended_Pictographic# E0.6   [1] (☝️)       index pointing up
+ 261E..261F    ; Extended_Pictographic# E0.0   [2] (☞..☟)    WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX
+ 2620          ; Extended_Pictographic# E1.0   [1] (☠️)       skull and crossbones
+ 2621          ; Extended_Pictographic# E0.0   [1] (☡)       CAUTION SIGN
+ 2622..2623    ; Extended_Pictographic# E1.0   [2] (☢️..☣️)    radioactive..biohazard
+ 2624..2625    ; Extended_Pictographic# E0.0   [2] (☤..☥)    CADUCEUS..ANKH
+ 2626          ; Extended_Pictographic# E1.0   [1] (☦️)       orthodox cross
+ 2627..2629    ; Extended_Pictographic# E0.0   [3] (☧..☩)    CHI RHO..CROSS OF JERUSALEM
+ 262A          ; Extended_Pictographic# E0.7   [1] (☪️)       star and crescent
+ 262B..262D    ; Extended_Pictographic# E0.0   [3] (☫..☭)    FARSI SYMBOL..HAMMER AND SICKLE
+ 262E          ; Extended_Pictographic# E1.0   [1] (☮️)       peace symbol
+ 262F          ; Extended_Pictographic# E0.7   [1] (☯️)       yin yang
+ 2630..2637    ; Extended_Pictographic# E0.0   [8] (☰..☷)    TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH
+ 2638..2639    ; Extended_Pictographic# E0.7   [2] (☸️..☹️)    wheel of dharma..frowning face
+ 263A          ; Extended_Pictographic# E0.6   [1] (☺️)       smiling face
+ 263B..263F    ; Extended_Pictographic# E0.0   [5] (☻..☿)    BLACK SMILING FACE..MERCURY
+ 2640          ; Extended_Pictographic# E4.0   [1] (♀️)       female sign
+ 2641          ; Extended_Pictographic# E0.0   [1] (♁)       EARTH
+ 2642          ; Extended_Pictographic# E4.0   [1] (♂️)       male sign
+ 2643..2647    ; Extended_Pictographic# E0.0   [5] (♃..♇)    JUPITER..PLUTO
+ 2648..2653    ; Extended_Pictographic# E0.6  [12] (♈..♓)    Aries..Pisces
+ 2654..265E    ; Extended_Pictographic# E0.0  [11] (♔..♞)    WHITE CHESS KING..BLACK CHESS KNIGHT
+ 265F          ; Extended_Pictographic# E11.0  [1] (♟️)       chess pawn
+ 2660          ; Extended_Pictographic# E0.6   [1] (♠️)       spade suit
+ 2661..2662    ; Extended_Pictographic# E0.0   [2] (♡..♢)    WHITE HEART SUIT..WHITE DIAMOND SUIT
+ 2663          ; Extended_Pictographic# E0.6   [1] (♣️)       club suit
+ 2664          ; Extended_Pictographic# E0.0   [1] (♤)       WHITE SPADE SUIT
+ 2665..2666    ; Extended_Pictographic# E0.6   [2] (♥️..♦️)    heart suit..diamond suit
+ 2667          ; Extended_Pictographic# E0.0   [1] (♧)       WHITE CLUB SUIT
+ 2668          ; Extended_Pictographic# E0.6   [1] (♨️)       hot springs
+ 2669..267A    ; Extended_Pictographic# E0.0  [18] (♩..♺)    QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS
+ 267B          ; Extended_Pictographic# E0.6   [1] (♻️)       recycling symbol
+ 267C..267D    ; Extended_Pictographic# E0.0   [2] (♼..♽)    RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL
+ 267E          ; Extended_Pictographic# E11.0  [1] (♾️)       infinity
+ 267F          ; Extended_Pictographic# E0.6   [1] (♿)       wheelchair symbol
+ 2680..2685    ; Extended_Pictographic# E0.0   [6] (⚀..⚅)    DIE FACE-1..DIE FACE-6
+ 2690..2691    ; Extended_Pictographic# E0.0   [2] (⚐..⚑)    WHITE FLAG..BLACK FLAG
+ 2692          ; Extended_Pictographic# E1.0   [1] (⚒️)       hammer and pick
+ 2693          ; Extended_Pictographic# E0.6   [1] (⚓)       anchor
+ 2694          ; Extended_Pictographic# E1.0   [1] (⚔️)       crossed swords
+ 2695          ; Extended_Pictographic# E4.0   [1] (⚕️)       medical symbol
+ 2696..2697    ; Extended_Pictographic# E1.0   [2] (⚖️..⚗️)    balance scale..alembic
+ 2698          ; Extended_Pictographic# E0.0   [1] (⚘)       FLOWER
+ 2699          ; Extended_Pictographic# E1.0   [1] (⚙️)       gear
+ 269A          ; Extended_Pictographic# E0.0   [1] (⚚)       STAFF OF HERMES
+ 269B..269C    ; Extended_Pictographic# E1.0   [2] (⚛️..⚜️)    atom symbol..fleur-de-lis
+ 269D..269F    ; Extended_Pictographic# E0.0   [3] (⚝..⚟)    OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT
+ 26A0..26A1    ; Extended_Pictographic# E0.6   [2] (⚠️..⚡)    warning..high voltage
+ 26A2..26A6    ; Extended_Pictographic# E0.0   [5] (⚢..⚦)    DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN
+ 26A7          ; Extended_Pictographic# E13.0  [1] (⚧️)       transgender symbol
+ 26A8..26A9    ; Extended_Pictographic# E0.0   [2] (⚨..⚩)    VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN
+ 26AA..26AB    ; Extended_Pictographic# E0.6   [2] (⚪..⚫)    white circle..black circle
+ 26AC..26AF    ; Extended_Pictographic# E0.0   [4] (⚬..⚯)    MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL
+ 26B0..26B1    ; Extended_Pictographic# E1.0   [2] (⚰️..⚱️)    coffin..funeral urn
+ 26B2..26BC    ; Extended_Pictographic# E0.0  [11] (⚲..⚼)    NEUTER..SESQUIQUADRATE
+ 26BD..26BE    ; Extended_Pictographic# E0.6   [2] (⚽..⚾)    soccer ball..baseball
+ 26BF..26C3    ; Extended_Pictographic# E0.0   [5] (⚿..⛃)    SQUARED KEY..BLACK DRAUGHTS KING
+ 26C4..26C5    ; Extended_Pictographic# E0.6   [2] (⛄..⛅)    snowman without snow..sun behind cloud
+ 26C6..26C7    ; Extended_Pictographic# E0.0   [2] (⛆..⛇)    RAIN..BLACK SNOWMAN
+ 26C8          ; Extended_Pictographic# E0.7   [1] (⛈️)       cloud with lightning and rain
+ 26C9..26CD    ; Extended_Pictographic# E0.0   [5] (⛉..⛍)    TURNED WHITE SHOGI PIECE..DISABLED CAR
+ 26CE          ; Extended_Pictographic# E0.6   [1] (⛎)       Ophiuchus
+ 26CF          ; Extended_Pictographic# E0.7   [1] (⛏️)       pick
+ 26D0          ; Extended_Pictographic# E0.0   [1] (⛐)       CAR SLIDING
+ 26D1          ; Extended_Pictographic# E0.7   [1] (⛑️)       rescue worker’s helmet
+ 26D2          ; Extended_Pictographic# E0.0   [1] (⛒)       CIRCLED CROSSING LANES
+ 26D3          ; Extended_Pictographic# E0.7   [1] (⛓️)       chains
+ 26D4          ; Extended_Pictographic# E0.6   [1] (⛔)       no entry
+ 26D5..26E8    ; Extended_Pictographic# E0.0  [20] (⛕..⛨)    ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD
+ 26E9          ; Extended_Pictographic# E0.7   [1] (⛩️)       shinto shrine
+ 26EA          ; Extended_Pictographic# E0.6   [1] (⛪)       church
+ 26EB..26EF    ; Extended_Pictographic# E0.0   [5] (⛫..⛯)    CASTLE..MAP SYMBOL FOR LIGHTHOUSE
+ 26F0..26F1    ; Extended_Pictographic# E0.7   [2] (⛰️..⛱️)    mountain..umbrella on ground
+ 26F2..26F3    ; Extended_Pictographic# E0.6   [2] (⛲..⛳)    fountain..flag in hole
+ 26F4          ; Extended_Pictographic# E0.7   [1] (⛴️)       ferry
+ 26F5          ; Extended_Pictographic# E0.6   [1] (⛵)       sailboat
+ 26F6          ; Extended_Pictographic# E0.0   [1] (⛶)       SQUARE FOUR CORNERS
+ 26F7..26F9    ; Extended_Pictographic# E0.7   [3] (⛷️..⛹️)    skier..person bouncing ball
+ 26FA          ; Extended_Pictographic# E0.6   [1] (⛺)       tent
+ 26FB..26FC    ; Extended_Pictographic# E0.0   [2] (⛻..⛼)    JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
+ 26FD          ; Extended_Pictographic# E0.6   [1] (⛽)       fuel pump
+ 26FE..2701    ; Extended_Pictographic# E0.0   [4] (⛾..✁)    CUP ON BLACK SQUARE..UPPER BLADE SCISSORS
+ 2702          ; Extended_Pictographic# E0.6   [1] (✂️)       scissors
+ 2703..2704    ; Extended_Pictographic# E0.0   [2] (✃..✄)    LOWER BLADE SCISSORS..WHITE SCISSORS
+ 2705          ; Extended_Pictographic# E0.6   [1] (✅)       check mark button
+ 2708..270C    ; Extended_Pictographic# E0.6   [5] (✈️..✌️)    airplane..victory hand
+ 270D          ; Extended_Pictographic# E0.7   [1] (✍️)       writing hand
+ 270E          ; Extended_Pictographic# E0.0   [1] (✎)       LOWER RIGHT PENCIL
+ 270F          ; Extended_Pictographic# E0.6   [1] (✏️)       pencil
+ 2710..2711    ; Extended_Pictographic# E0.0   [2] (✐..✑)    UPPER RIGHT PENCIL..WHITE NIB
+ 2712          ; Extended_Pictographic# E0.6   [1] (✒️)       black nib
+ 2714          ; Extended_Pictographic# E0.6   [1] (✔️)       check mark
+ 2716          ; Extended_Pictographic# E0.6   [1] (✖️)       multiply
+ 271D          ; Extended_Pictographic# E0.7   [1] (✝️)       latin cross
+ 2721          ; Extended_Pictographic# E0.7   [1] (✡️)       star of David
+ 2728          ; Extended_Pictographic# E0.6   [1] (✨)       sparkles
+ 2733..2734    ; Extended_Pictographic# E0.6   [2] (✳️..✴️)    eight-spoked asterisk..eight-pointed star
+ 2744          ; Extended_Pictographic# E0.6   [1] (❄️)       snowflake
+ 2747          ; Extended_Pictographic# E0.6   [1] (❇️)       sparkle
+ 274C          ; Extended_Pictographic# E0.6   [1] (❌)       cross mark
+ 274E          ; Extended_Pictographic# E0.6   [1] (❎)       cross mark button
+ 2753..2755    ; Extended_Pictographic# E0.6   [3] (❓..❕)    red question mark..white exclamation mark
+ 2757          ; Extended_Pictographic# E0.6   [1] (❗)       red exclamation mark
+ 2763          ; Extended_Pictographic# E1.0   [1] (❣️)       heart exclamation
+ 2764          ; Extended_Pictographic# E0.6   [1] (❤️)       red heart
+ 2765..2767    ; Extended_Pictographic# E0.0   [3] (❥..❧)    ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET
+ 2795..2797    ; Extended_Pictographic# E0.6   [3] (➕..➗)    plus..divide
+ 27A1          ; Extended_Pictographic# E0.6   [1] (➡️)       right arrow
+ 27B0          ; Extended_Pictographic# E0.6   [1] (➰)       curly loop
+ 27BF          ; Extended_Pictographic# E1.0   [1] (➿)       double curly loop
+ 2934..2935    ; Extended_Pictographic# E0.6   [2] (⤴️..⤵️)    right arrow curving up..right arrow curving down
+ 2B05..2B07    ; Extended_Pictographic# E0.6   [3] (⬅️..⬇️)    left arrow..down arrow
+ 2B1B..2B1C    ; Extended_Pictographic# E0.6   [2] (⬛..⬜)    black large square..white large square
+ 2B50          ; Extended_Pictographic# E0.6   [1] (⭐)       star
+ 2B55          ; Extended_Pictographic# E0.6   [1] (⭕)       hollow red circle
+ 3030          ; Extended_Pictographic# E0.6   [1] (〰️)       wavy dash
+ 303D          ; Extended_Pictographic# E0.6   [1] (〽️)       part alternation mark
+ 3297          ; Extended_Pictographic# E0.6   [1] (㊗️)       Japanese “congratulations” button
+ 3299          ; Extended_Pictographic# E0.6   [1] (㊙️)       Japanese “secret” button
+ 1F000..1F003  ; Extended_Pictographic# E0.0   [4] (🀀..🀃)    MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND
+ 1F004         ; Extended_Pictographic# E0.6   [1] (🀄)       mahjong red dragon
+ 1F005..1F0CE  ; Extended_Pictographic# E0.0 [202] (🀅..🃎)    MAHJONG TILE GREEN DRAGON..PLAYING CARD KING OF DIAMONDS
+ 1F0CF         ; Extended_Pictographic# E0.6   [1] (🃏)       joker
+ 1F0D0..1F0FF  ; Extended_Pictographic# E0.0  [48] (🃐..🃿)    <reserved-1F0D0>..<reserved-1F0FF>
+ 1F10D..1F10F  ; Extended_Pictographic# E0.0   [3] (🄍..🄏)    CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
+ 1F12F         ; Extended_Pictographic# E0.0   [1] (🄯)       COPYLEFT SYMBOL
+ 1F16C..1F16F  ; Extended_Pictographic# E0.0   [4] (🅬..🅯)    RAISED MR SIGN..CIRCLED HUMAN FIGURE
+ 1F170..1F171  ; Extended_Pictographic# E0.6   [2] (🅰️..🅱️)    A button (blood type)..B button (blood type)
+ 1F17E..1F17F  ; Extended_Pictographic# E0.6   [2] (🅾️..🅿️)    O button (blood type)..P button
+ 1F18E         ; Extended_Pictographic# E0.6   [1] (🆎)       AB button (blood type)
+ 1F191..1F19A  ; Extended_Pictographic# E0.6  [10] (🆑..🆚)    CL button..VS button
+ 1F1AD..1F1E5  ; Extended_Pictographic# E0.0  [57] (🆭..🇥)    MASK WORK SYMBOL..<reserved-1F1E5>
+ 1F201..1F202  ; Extended_Pictographic# E0.6   [2] (🈁..🈂️)    Japanese “here” button..Japanese “service charge” button
+ 1F203..1F20F  ; Extended_Pictographic# E0.0  [13] (🈃..🈏)    <reserved-1F203>..<reserved-1F20F>
+ 1F21A         ; Extended_Pictographic# E0.6   [1] (🈚)       Japanese “free of charge” button
+ 1F22F         ; Extended_Pictographic# E0.6   [1] (🈯)       Japanese “reserved” button
+ 1F232..1F23A  ; Extended_Pictographic# E0.6   [9] (🈲..🈺)    Japanese “prohibited” button..Japanese “open for business” button
+ 1F23C..1F23F  ; Extended_Pictographic# E0.0   [4] (🈼..🈿)    <reserved-1F23C>..<reserved-1F23F>
+ 1F249..1F24F  ; Extended_Pictographic# E0.0   [7] (🉉..🉏)    <reserved-1F249>..<reserved-1F24F>
+ 1F250..1F251  ; Extended_Pictographic# E0.6   [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button
+ 1F252..1F2FF  ; Extended_Pictographic# E0.0 [174] (🉒..🋿)    <reserved-1F252>..<reserved-1F2FF>
+ 1F300..1F30C  ; Extended_Pictographic# E0.6  [13] (🌀..🌌)    cyclone..milky way
+ 1F30D..1F30E  ; Extended_Pictographic# E0.7   [2] (🌍..🌎)    globe showing Europe-Africa..globe showing Americas
+ 1F30F         ; Extended_Pictographic# E0.6   [1] (🌏)       globe showing Asia-Australia
+ 1F310         ; Extended_Pictographic# E1.0   [1] (🌐)       globe with meridians
+ 1F311         ; Extended_Pictographic# E0.6   [1] (🌑)       new moon
+ 1F312         ; Extended_Pictographic# E1.0   [1] (🌒)       waxing crescent moon
+ 1F313..1F315  ; Extended_Pictographic# E0.6   [3] (🌓..🌕)    first quarter moon..full moon
+ 1F316..1F318  ; Extended_Pictographic# E1.0   [3] (🌖..🌘)    waning gibbous moon..waning crescent moon
+ 1F319         ; Extended_Pictographic# E0.6   [1] (🌙)       crescent moon
+ 1F31A         ; Extended_Pictographic# E1.0   [1] (🌚)       new moon face
+ 1F31B         ; Extended_Pictographic# E0.6   [1] (🌛)       first quarter moon face
+ 1F31C         ; Extended_Pictographic# E0.7   [1] (🌜)       last quarter moon face
+ 1F31D..1F31E  ; Extended_Pictographic# E1.0   [2] (🌝..🌞)    full moon face..sun with face
+ 1F31F..1F320  ; Extended_Pictographic# E0.6   [2] (🌟..🌠)    glowing star..shooting star
+ 1F321         ; Extended_Pictographic# E0.7   [1] (🌡️)       thermometer
+ 1F322..1F323  ; Extended_Pictographic# E0.0   [2] (🌢..🌣)    BLACK DROPLET..WHITE SUN
+ 1F324..1F32C  ; Extended_Pictographic# E0.7   [9] (🌤️..🌬️)    sun behind small cloud..wind face
+ 1F32D..1F32F  ; Extended_Pictographic# E1.0   [3] (🌭..🌯)    hot dog..burrito
+ 1F330..1F331  ; Extended_Pictographic# E0.6   [2] (🌰..🌱)    chestnut..seedling
+ 1F332..1F333  ; Extended_Pictographic# E1.0   [2] (🌲..🌳)    evergreen tree..deciduous tree
+ 1F334..1F335  ; Extended_Pictographic# E0.6   [2] (🌴..🌵)    palm tree..cactus
+ 1F336         ; Extended_Pictographic# E0.7   [1] (🌶️)       hot pepper
+ 1F337..1F34A  ; Extended_Pictographic# E0.6  [20] (🌷..🍊)    tulip..tangerine
+ 1F34B         ; Extended_Pictographic# E1.0   [1] (🍋)       lemon
+ 1F34C..1F34F  ; Extended_Pictographic# E0.6   [4] (🍌..🍏)    banana..green apple
+ 1F350         ; Extended_Pictographic# E1.0   [1] (🍐)       pear
+ 1F351..1F37B  ; Extended_Pictographic# E0.6  [43] (🍑..🍻)    peach..clinking beer mugs
+ 1F37C         ; Extended_Pictographic# E1.0   [1] (🍼)       baby bottle
+ 1F37D         ; Extended_Pictographic# E0.7   [1] (🍽️)       fork and knife with plate
+ 1F37E..1F37F  ; Extended_Pictographic# E1.0   [2] (🍾..🍿)    bottle with popping cork..popcorn
+ 1F380..1F393  ; Extended_Pictographic# E0.6  [20] (🎀..🎓)    ribbon..graduation cap
+ 1F394..1F395  ; Extended_Pictographic# E0.0   [2] (🎔..🎕)    HEART WITH TIP ON THE LEFT..BOUQUET OF FLOWERS
+ 1F396..1F397  ; Extended_Pictographic# E0.7   [2] (🎖️..🎗️)    military medal..reminder ribbon
+ 1F398         ; Extended_Pictographic# E0.0   [1] (🎘)       MUSICAL KEYBOARD WITH JACKS
+ 1F399..1F39B  ; Extended_Pictographic# E0.7   [3] (🎙️..🎛️)    studio microphone..control knobs
+ 1F39C..1F39D  ; Extended_Pictographic# E0.0   [2] (🎜..🎝)    BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES
+ 1F39E..1F39F  ; Extended_Pictographic# E0.7   [2] (🎞️..🎟️)    film frames..admission tickets
+ 1F3A0..1F3C4  ; Extended_Pictographic# E0.6  [37] (🎠..🏄)    carousel horse..person surfing
+ 1F3C5         ; Extended_Pictographic# E1.0   [1] (🏅)       sports medal
+ 1F3C6         ; Extended_Pictographic# E0.6   [1] (🏆)       trophy
+ 1F3C7         ; Extended_Pictographic# E1.0   [1] (🏇)       horse racing
+ 1F3C8         ; Extended_Pictographic# E0.6   [1] (🏈)       american football
+ 1F3C9         ; Extended_Pictographic# E1.0   [1] (🏉)       rugby football
+ 1F3CA         ; Extended_Pictographic# E0.6   [1] (🏊)       person swimming
+ 1F3CB..1F3CE  ; Extended_Pictographic# E0.7   [4] (🏋️..🏎️)    person lifting weights..racing car
+ 1F3CF..1F3D3  ; Extended_Pictographic# E1.0   [5] (🏏..🏓)    cricket game..ping pong
+ 1F3D4..1F3DF  ; Extended_Pictographic# E0.7  [12] (🏔️..🏟️)    snow-capped mountain..stadium
+ 1F3E0..1F3E3  ; Extended_Pictographic# E0.6   [4] (🏠..🏣)    house..Japanese post office
+ 1F3E4         ; Extended_Pictographic# E1.0   [1] (🏤)       post office
+ 1F3E5..1F3F0  ; Extended_Pictographic# E0.6  [12] (🏥..🏰)    hospital..castle
+ 1F3F1..1F3F2  ; Extended_Pictographic# E0.0   [2] (🏱..🏲)    WHITE PENNANT..BLACK PENNANT
+ 1F3F3         ; Extended_Pictographic# E0.7   [1] (🏳️)       white flag
+ 1F3F4         ; Extended_Pictographic# E1.0   [1] (🏴)       black flag
+ 1F3F5         ; Extended_Pictographic# E0.7   [1] (🏵️)       rosette
+ 1F3F6         ; Extended_Pictographic# E0.0   [1] (🏶)       BLACK ROSETTE
+ 1F3F7         ; Extended_Pictographic# E0.7   [1] (🏷️)       label
+ 1F3F8..1F3FA  ; Extended_Pictographic# E1.0   [3] (🏸..🏺)    badminton..amphora
+ 1F400..1F407  ; Extended_Pictographic# E1.0   [8] (🐀..🐇)    rat..rabbit
+ 1F408         ; Extended_Pictographic# E0.7   [1] (🐈)       cat
+ 1F409..1F40B  ; Extended_Pictographic# E1.0   [3] (🐉..🐋)    dragon..whale
+ 1F40C..1F40E  ; Extended_Pictographic# E0.6   [3] (🐌..🐎)    snail..horse
+ 1F40F..1F410  ; Extended_Pictographic# E1.0   [2] (🐏..🐐)    ram..goat
+ 1F411..1F412  ; Extended_Pictographic# E0.6   [2] (🐑..🐒)    ewe..monkey
+ 1F413         ; Extended_Pictographic# E1.0   [1] (🐓)       rooster
+ 1F414         ; Extended_Pictographic# E0.6   [1] (🐔)       chicken
+ 1F415         ; Extended_Pictographic# E0.7   [1] (🐕)       dog
+ 1F416         ; Extended_Pictographic# E1.0   [1] (🐖)       pig
+ 1F417..1F429  ; Extended_Pictographic# E0.6  [19] (🐗..🐩)    boar..poodle
+ 1F42A         ; Extended_Pictographic# E1.0   [1] (🐪)       camel
+ 1F42B..1F43E  ; Extended_Pictographic# E0.6  [20] (🐫..🐾)    two-hump camel..paw prints
+ 1F43F         ; Extended_Pictographic# E0.7   [1] (🐿️)       chipmunk
+ 1F440         ; Extended_Pictographic# E0.6   [1] (👀)       eyes
+ 1F441         ; Extended_Pictographic# E0.7   [1] (👁️)       eye
+ 1F442..1F464  ; Extended_Pictographic# E0.6  [35] (👂..👤)    ear..bust in silhouette
+ 1F465         ; Extended_Pictographic# E1.0   [1] (👥)       busts in silhouette
+ 1F466..1F46B  ; Extended_Pictographic# E0.6   [6] (👦..👫)    boy..woman and man holding hands
+ 1F46C..1F46D  ; Extended_Pictographic# E1.0   [2] (👬..👭)    men holding hands..women holding hands
+ 1F46E..1F4AC  ; Extended_Pictographic# E0.6  [63] (👮..💬)    police officer..speech balloon
+ 1F4AD         ; Extended_Pictographic# E1.0   [1] (💭)       thought balloon
+ 1F4AE..1F4B5  ; Extended_Pictographic# E0.6   [8] (💮..💵)    white flower..dollar banknote
+ 1F4B6..1F4B7  ; Extended_Pictographic# E1.0   [2] (💶..💷)    euro banknote..pound banknote
+ 1F4B8..1F4EB  ; Extended_Pictographic# E0.6  [52] (💸..📫)    money with wings..closed mailbox with raised flag
+ 1F4EC..1F4ED  ; Extended_Pictographic# E0.7   [2] (📬..📭)    open mailbox with raised flag..open mailbox with lowered flag
+ 1F4EE         ; Extended_Pictographic# E0.6   [1] (📮)       postbox
+ 1F4EF         ; Extended_Pictographic# E1.0   [1] (📯)       postal horn
+ 1F4F0..1F4F4  ; Extended_Pictographic# E0.6   [5] (📰..📴)    newspaper..mobile phone off
+ 1F4F5         ; Extended_Pictographic# E1.0   [1] (📵)       no mobile phones
+ 1F4F6..1F4F7  ; Extended_Pictographic# E0.6   [2] (📶..📷)    antenna bars..camera
+ 1F4F8         ; Extended_Pictographic# E1.0   [1] (📸)       camera with flash
+ 1F4F9..1F4FC  ; Extended_Pictographic# E0.6   [4] (📹..📼)    video camera..videocassette
+ 1F4FD         ; Extended_Pictographic# E0.7   [1] (📽️)       film projector
+ 1F4FE         ; Extended_Pictographic# E0.0   [1] (📾)       PORTABLE STEREO
+ 1F4FF..1F502  ; Extended_Pictographic# E1.0   [4] (📿..🔂)    prayer beads..repeat single button
+ 1F503         ; Extended_Pictographic# E0.6   [1] (🔃)       clockwise vertical arrows
+ 1F504..1F507  ; Extended_Pictographic# E1.0   [4] (🔄..🔇)    counterclockwise arrows button..muted speaker
+ 1F508         ; Extended_Pictographic# E0.7   [1] (🔈)       speaker low volume
+ 1F509         ; Extended_Pictographic# E1.0   [1] (🔉)       speaker medium volume
+ 1F50A..1F514  ; Extended_Pictographic# E0.6  [11] (🔊..🔔)    speaker high volume..bell
+ 1F515         ; Extended_Pictographic# E1.0   [1] (🔕)       bell with slash
+ 1F516..1F52B  ; Extended_Pictographic# E0.6  [22] (🔖..🔫)    bookmark..water pistol
+ 1F52C..1F52D  ; Extended_Pictographic# E1.0   [2] (🔬..🔭)    microscope..telescope
+ 1F52E..1F53D  ; Extended_Pictographic# E0.6  [16] (🔮..🔽)    crystal ball..downwards button
+ 1F546..1F548  ; Extended_Pictographic# E0.0   [3] (🕆..🕈)    WHITE LATIN CROSS..CELTIC CROSS
+ 1F549..1F54A  ; Extended_Pictographic# E0.7   [2] (🕉️..🕊️)    om..dove
+ 1F54B..1F54E  ; Extended_Pictographic# E1.0   [4] (🕋..🕎)    kaaba..menorah
+ 1F54F         ; Extended_Pictographic# E0.0   [1] (🕏)       BOWL OF HYGIEIA
+ 1F550..1F55B  ; Extended_Pictographic# E0.6  [12] (🕐..🕛)    one o’clock..twelve o’clock
+ 1F55C..1F567  ; Extended_Pictographic# E0.7  [12] (🕜..🕧)    one-thirty..twelve-thirty
+ 1F568..1F56E  ; Extended_Pictographic# E0.0   [7] (🕨..🕮)    RIGHT SPEAKER..BOOK
+ 1F56F..1F570  ; Extended_Pictographic# E0.7   [2] (🕯️..🕰️)    candle..mantelpiece clock
+ 1F571..1F572  ; Extended_Pictographic# E0.0   [2] (🕱..🕲)    BLACK SKULL AND CROSSBONES..NO PIRACY
+ 1F573..1F579  ; Extended_Pictographic# E0.7   [7] (🕳️..🕹️)    hole..joystick
+ 1F57A         ; Extended_Pictographic# E3.0   [1] (🕺)       man dancing
+ 1F57B..1F586  ; Extended_Pictographic# E0.0  [12] (🕻..🖆)    LEFT HAND TELEPHONE RECEIVER..PEN OVER STAMPED ENVELOPE
+ 1F587         ; Extended_Pictographic# E0.7   [1] (🖇️)       linked paperclips
+ 1F588..1F589  ; Extended_Pictographic# E0.0   [2] (🖈..🖉)    BLACK PUSHPIN..LOWER LEFT PENCIL
+ 1F58A..1F58D  ; Extended_Pictographic# E0.7   [4] (🖊️..🖍️)    pen..crayon
+ 1F58E..1F58F  ; Extended_Pictographic# E0.0   [2] (🖎..🖏)    LEFT WRITING HAND..TURNED OK HAND SIGN
+ 1F590         ; Extended_Pictographic# E0.7   [1] (🖐️)       hand with fingers splayed
+ 1F591..1F594  ; Extended_Pictographic# E0.0   [4] (🖑..🖔)    REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND
+ 1F595..1F596  ; Extended_Pictographic# E1.0   [2] (🖕..🖖)    middle finger..vulcan salute
+ 1F597..1F5A3  ; Extended_Pictographic# E0.0  [13] (🖗..🖣)    WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX
+ 1F5A4         ; Extended_Pictographic# E3.0   [1] (🖤)       black heart
+ 1F5A5         ; Extended_Pictographic# E0.7   [1] (🖥️)       desktop computer
+ 1F5A6..1F5A7  ; Extended_Pictographic# E0.0   [2] (🖦..🖧)    KEYBOARD AND MOUSE..THREE NETWORKED COMPUTERS
+ 1F5A8         ; Extended_Pictographic# E0.7   [1] (🖨️)       printer
+ 1F5A9..1F5B0  ; Extended_Pictographic# E0.0   [8] (🖩..🖰)    POCKET CALCULATOR..TWO BUTTON MOUSE
+ 1F5B1..1F5B2  ; Extended_Pictographic# E0.7   [2] (🖱️..🖲️)    computer mouse..trackball
+ 1F5B3..1F5BB  ; Extended_Pictographic# E0.0   [9] (🖳..🖻)    OLD PERSONAL COMPUTER..DOCUMENT WITH PICTURE
+ 1F5BC         ; Extended_Pictographic# E0.7   [1] (🖼️)       framed picture
+ 1F5BD..1F5C1  ; Extended_Pictographic# E0.0   [5] (🖽..🗁)    FRAME WITH TILES..OPEN FOLDER
+ 1F5C2..1F5C4  ; Extended_Pictographic# E0.7   [3] (🗂️..🗄️)    card index dividers..file cabinet
+ 1F5C5..1F5D0  ; Extended_Pictographic# E0.0  [12] (🗅..🗐)    EMPTY NOTE..PAGES
+ 1F5D1..1F5D3  ; Extended_Pictographic# E0.7   [3] (🗑️..🗓️)    wastebasket..spiral calendar
+ 1F5D4..1F5DB  ; Extended_Pictographic# E0.0   [8] (🗔..🗛)    DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL
+ 1F5DC..1F5DE  ; Extended_Pictographic# E0.7   [3] (🗜️..🗞️)    clamp..rolled-up newspaper
+ 1F5DF..1F5E0  ; Extended_Pictographic# E0.0   [2] (🗟..🗠)    PAGE WITH CIRCLED TEXT..STOCK CHART
+ 1F5E1         ; Extended_Pictographic# E0.7   [1] (🗡️)       dagger
+ 1F5E2         ; Extended_Pictographic# E0.0   [1] (🗢)       LIPS
+ 1F5E3         ; Extended_Pictographic# E0.7   [1] (🗣️)       speaking head
+ 1F5E4..1F5E7  ; Extended_Pictographic# E0.0   [4] (🗤..🗧)    THREE RAYS ABOVE..THREE RAYS RIGHT
+ 1F5E8         ; Extended_Pictographic# E2.0   [1] (🗨️)       left speech bubble
+ 1F5E9..1F5EE  ; Extended_Pictographic# E0.0   [6] (🗩..🗮)    RIGHT SPEECH BUBBLE..LEFT ANGER BUBBLE
+ 1F5EF         ; Extended_Pictographic# E0.7   [1] (🗯️)       right anger bubble
+ 1F5F0..1F5F2  ; Extended_Pictographic# E0.0   [3] (🗰..🗲)    MOOD BUBBLE..LIGHTNING MOOD
+ 1F5F3         ; Extended_Pictographic# E0.7   [1] (🗳️)       ballot box with ballot
+ 1F5F4..1F5F9  ; Extended_Pictographic# E0.0   [6] (🗴..🗹)    BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK
+ 1F5FA         ; Extended_Pictographic# E0.7   [1] (🗺️)       world map
+ 1F5FB..1F5FF  ; Extended_Pictographic# E0.6   [5] (🗻..🗿)    mount fuji..moai
+ 1F600         ; Extended_Pictographic# E1.0   [1] (😀)       grinning face
+ 1F601..1F606  ; Extended_Pictographic# E0.6   [6] (😁..😆)    beaming face with smiling eyes..grinning squinting face
+ 1F607..1F608  ; Extended_Pictographic# E1.0   [2] (😇..😈)    smiling face with halo..smiling face with horns
+ 1F609..1F60D  ; Extended_Pictographic# E0.6   [5] (😉..😍)    winking face..smiling face with heart-eyes
+ 1F60E         ; Extended_Pictographic# E1.0   [1] (😎)       smiling face with sunglasses
+ 1F60F         ; Extended_Pictographic# E0.6   [1] (😏)       smirking face
+ 1F610         ; Extended_Pictographic# E0.7   [1] (😐)       neutral face
+ 1F611         ; Extended_Pictographic# E1.0   [1] (😑)       expressionless face
+ 1F612..1F614  ; Extended_Pictographic# E0.6   [3] (😒..😔)    unamused face..pensive face
+ 1F615         ; Extended_Pictographic# E1.0   [1] (😕)       confused face
+ 1F616         ; Extended_Pictographic# E0.6   [1] (😖)       confounded face
+ 1F617         ; Extended_Pictographic# E1.0   [1] (😗)       kissing face
+ 1F618         ; Extended_Pictographic# E0.6   [1] (😘)       face blowing a kiss
+ 1F619         ; Extended_Pictographic# E1.0   [1] (😙)       kissing face with smiling eyes
+ 1F61A         ; Extended_Pictographic# E0.6   [1] (😚)       kissing face with closed eyes
+ 1F61B         ; Extended_Pictographic# E1.0   [1] (😛)       face with tongue
+ 1F61C..1F61E  ; Extended_Pictographic# E0.6   [3] (😜..😞)    winking face with tongue..disappointed face
+ 1F61F         ; Extended_Pictographic# E1.0   [1] (😟)       worried face
+ 1F620..1F625  ; Extended_Pictographic# E0.6   [6] (😠..😥)    angry face..sad but relieved face
+ 1F626..1F627  ; Extended_Pictographic# E1.0   [2] (😦..😧)    frowning face with open mouth..anguished face
+ 1F628..1F62B  ; Extended_Pictographic# E0.6   [4] (😨..😫)    fearful face..tired face
+ 1F62C         ; Extended_Pictographic# E1.0   [1] (😬)       grimacing face
+ 1F62D         ; Extended_Pictographic# E0.6   [1] (😭)       loudly crying face
+ 1F62E..1F62F  ; Extended_Pictographic# E1.0   [2] (😮..😯)    face with open mouth..hushed face
+ 1F630..1F633  ; Extended_Pictographic# E0.6   [4] (😰..😳)    anxious face with sweat..flushed face
+ 1F634         ; Extended_Pictographic# E1.0   [1] (😴)       sleeping face
+ 1F635         ; Extended_Pictographic# E0.6   [1] (😵)       face with crossed-out eyes
+ 1F636         ; Extended_Pictographic# E1.0   [1] (😶)       face without mouth
+ 1F637..1F640  ; Extended_Pictographic# E0.6  [10] (😷..🙀)    face with medical mask..weary cat
+ 1F641..1F644  ; Extended_Pictographic# E1.0   [4] (🙁..🙄)    slightly frowning face..face with rolling eyes
+ 1F645..1F64F  ; Extended_Pictographic# E0.6  [11] (🙅..🙏)    person gesturing NO..folded hands
+ 1F680         ; Extended_Pictographic# E0.6   [1] (🚀)       rocket
+ 1F681..1F682  ; Extended_Pictographic# E1.0   [2] (🚁..🚂)    helicopter..locomotive
+ 1F683..1F685  ; Extended_Pictographic# E0.6   [3] (🚃..🚅)    railway car..bullet train
+ 1F686         ; Extended_Pictographic# E1.0   [1] (🚆)       train
+ 1F687         ; Extended_Pictographic# E0.6   [1] (🚇)       metro
+ 1F688         ; Extended_Pictographic# E1.0   [1] (🚈)       light rail
+ 1F689         ; Extended_Pictographic# E0.6   [1] (🚉)       station
+ 1F68A..1F68B  ; Extended_Pictographic# E1.0   [2] (🚊..🚋)    tram..tram car
+ 1F68C         ; Extended_Pictographic# E0.6   [1] (🚌)       bus
+ 1F68D         ; Extended_Pictographic# E0.7   [1] (🚍)       oncoming bus
+ 1F68E         ; Extended_Pictographic# E1.0   [1] (🚎)       trolleybus
+ 1F68F         ; Extended_Pictographic# E0.6   [1] (🚏)       bus stop
+ 1F690         ; Extended_Pictographic# E1.0   [1] (🚐)       minibus
+ 1F691..1F693  ; Extended_Pictographic# E0.6   [3] (🚑..🚓)    ambulance..police car
+ 1F694         ; Extended_Pictographic# E0.7   [1] (🚔)       oncoming police car
+ 1F695         ; Extended_Pictographic# E0.6   [1] (🚕)       taxi
+ 1F696         ; Extended_Pictographic# E1.0   [1] (🚖)       oncoming taxi
+ 1F697         ; Extended_Pictographic# E0.6   [1] (🚗)       automobile
+ 1F698         ; Extended_Pictographic# E0.7   [1] (🚘)       oncoming automobile
+ 1F699..1F69A  ; Extended_Pictographic# E0.6   [2] (🚙..🚚)    sport utility vehicle..delivery truck
+ 1F69B..1F6A1  ; Extended_Pictographic# E1.0   [7] (🚛..🚡)    articulated lorry..aerial tramway
+ 1F6A2         ; Extended_Pictographic# E0.6   [1] (🚢)       ship
+ 1F6A3         ; Extended_Pictographic# E1.0   [1] (🚣)       person rowing boat
+ 1F6A4..1F6A5  ; Extended_Pictographic# E0.6   [2] (🚤..🚥)    speedboat..horizontal traffic light
+ 1F6A6         ; Extended_Pictographic# E1.0   [1] (🚦)       vertical traffic light
+ 1F6A7..1F6AD  ; Extended_Pictographic# E0.6   [7] (🚧..🚭)    construction..no smoking
+ 1F6AE..1F6B1  ; Extended_Pictographic# E1.0   [4] (🚮..🚱)    litter in bin sign..non-potable water
+ 1F6B2         ; Extended_Pictographic# E0.6   [1] (🚲)       bicycle
+ 1F6B3..1F6B5  ; Extended_Pictographic# E1.0   [3] (🚳..🚵)    no bicycles..person mountain biking
+ 1F6B6         ; Extended_Pictographic# E0.6   [1] (🚶)       person walking
+ 1F6B7..1F6B8  ; Extended_Pictographic# E1.0   [2] (🚷..🚸)    no pedestrians..children crossing
+ 1F6B9..1F6BE  ; Extended_Pictographic# E0.6   [6] (🚹..🚾)    men’s room..water closet
+ 1F6BF         ; Extended_Pictographic# E1.0   [1] (🚿)       shower
+ 1F6C0         ; Extended_Pictographic# E0.6   [1] (🛀)       person taking bath
+ 1F6C1..1F6C5  ; Extended_Pictographic# E1.0   [5] (🛁..🛅)    bathtub..left luggage
+ 1F6C6..1F6CA  ; Extended_Pictographic# E0.0   [5] (🛆..🛊)    TRIANGLE WITH ROUNDED CORNERS..GIRLS SYMBOL
+ 1F6CB         ; Extended_Pictographic# E0.7   [1] (🛋️)       couch and lamp
+ 1F6CC         ; Extended_Pictographic# E1.0   [1] (🛌)       person in bed
+ 1F6CD..1F6CF  ; Extended_Pictographic# E0.7   [3] (🛍️..🛏️)    shopping bags..bed
+ 1F6D0         ; Extended_Pictographic# E1.0   [1] (🛐)       place of worship
+ 1F6D1..1F6D2  ; Extended_Pictographic# E3.0   [2] (🛑..🛒)    stop sign..shopping cart
+ 1F6D3..1F6D4  ; Extended_Pictographic# E0.0   [2] (🛓..🛔)    STUPA..PAGODA
+ 1F6D5         ; Extended_Pictographic# E12.0  [1] (🛕)       hindu temple
+ 1F6D6..1F6D7  ; Extended_Pictographic# E13.0  [2] (🛖..🛗)    hut..elevator
+ 1F6D8..1F6DB  ; Extended_Pictographic# E0.0   [4] (🛘..🛛)    <reserved-1F6D8>..<reserved-1F6DB>
+ 1F6DC         ; Extended_Pictographic# E15.0  [1] (🛜)       wireless
+ 1F6DD..1F6DF  ; Extended_Pictographic# E14.0  [3] (🛝..🛟)    playground slide..ring buoy
+ 1F6E0..1F6E5  ; Extended_Pictographic# E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat
+ 1F6E6..1F6E8  ; Extended_Pictographic# E0.0   [3] (🛦..🛨)    UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE
+ 1F6E9         ; Extended_Pictographic# E0.7   [1] (🛩️)       small airplane
+ 1F6EA         ; Extended_Pictographic# E0.0   [1] (🛪)       NORTHEAST-POINTING AIRPLANE
+ 1F6EB..1F6EC  ; Extended_Pictographic# E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival
+ 1F6ED..1F6EF  ; Extended_Pictographic# E0.0   [3] (🛭..🛯)    <reserved-1F6ED>..<reserved-1F6EF>
+ 1F6F0         ; Extended_Pictographic# E0.7   [1] (🛰️)       satellite
+ 1F6F1..1F6F2  ; Extended_Pictographic# E0.0   [2] (🛱..🛲)    ONCOMING FIRE ENGINE..DIESEL LOCOMOTIVE
+ 1F6F3         ; Extended_Pictographic# E0.7   [1] (🛳️)       passenger ship
+ 1F6F4..1F6F6  ; Extended_Pictographic# E3.0   [3] (🛴..🛶)    kick scooter..canoe
+ 1F6F7..1F6F8  ; Extended_Pictographic# E5.0   [2] (🛷..🛸)    sled..flying saucer
+ 1F6F9         ; Extended_Pictographic# E11.0  [1] (🛹)       skateboard
+ 1F6FA         ; Extended_Pictographic# E12.0  [1] (🛺)       auto rickshaw
+ 1F6FB..1F6FC  ; Extended_Pictographic# E13.0  [2] (🛻..🛼)    pickup truck..roller skate
+ 1F6FD..1F6FF  ; Extended_Pictographic# E0.0   [3] (🛽..🛿)    <reserved-1F6FD>..<reserved-1F6FF>
+ 1F774..1F77F  ; Extended_Pictographic# E0.0  [12] (🝴..🝿)    LOT OF FORTUNE..ORCUS
+ 1F7D5..1F7DF  ; Extended_Pictographic# E0.0  [11] (🟕..🟟)    CIRCLED TRIANGLE..<reserved-1F7DF>
+ 1F7E0..1F7EB  ; Extended_Pictographic# E12.0 [12] (🟠..🟫)    orange circle..brown square
+ 1F7EC..1F7EF  ; Extended_Pictographic# E0.0   [4] (🟬..🟯)    <reserved-1F7EC>..<reserved-1F7EF>
+ 1F7F0         ; Extended_Pictographic# E14.0  [1] (🟰)       heavy equals sign
+ 1F7F1..1F7FF  ; Extended_Pictographic# E0.0  [15] (🟱..🟿)    <reserved-1F7F1>..<reserved-1F7FF>
+ 1F80C..1F80F  ; Extended_Pictographic# E0.0   [4] (🠌..🠏)    <reserved-1F80C>..<reserved-1F80F>
+ 1F848..1F84F  ; Extended_Pictographic# E0.0   [8] (🡈..🡏)    <reserved-1F848>..<reserved-1F84F>
+ 1F85A..1F85F  ; Extended_Pictographic# E0.0   [6] (🡚..🡟)    <reserved-1F85A>..<reserved-1F85F>
+ 1F888..1F88F  ; Extended_Pictographic# E0.0   [8] (🢈..🢏)    <reserved-1F888>..<reserved-1F88F>
+ 1F8AE..1F8FF  ; Extended_Pictographic# E0.0  [82] (🢮..🣿)    <reserved-1F8AE>..<reserved-1F8FF>
+ 1F90C         ; Extended_Pictographic# E13.0  [1] (🤌)       pinched fingers
+ 1F90D..1F90F  ; Extended_Pictographic# E12.0  [3] (🤍..🤏)    white heart..pinching hand
+ 1F910..1F918  ; Extended_Pictographic# E1.0   [9] (🤐..🤘)    zipper-mouth face..sign of the horns
+ 1F919..1F91E  ; Extended_Pictographic# E3.0   [6] (🤙..🤞)    call me hand..crossed fingers
+ 1F91F         ; Extended_Pictographic# E5.0   [1] (🤟)       love-you gesture
+ 1F920..1F927  ; Extended_Pictographic# E3.0   [8] (🤠..🤧)    cowboy hat face..sneezing face
+ 1F928..1F92F  ; Extended_Pictographic# E5.0   [8] (🤨..🤯)    face with raised eyebrow..exploding head
+ 1F930         ; Extended_Pictographic# E3.0   [1] (🤰)       pregnant woman
+ 1F931..1F932  ; Extended_Pictographic# E5.0   [2] (🤱..🤲)    breast-feeding..palms up together
+ 1F933..1F93A  ; Extended_Pictographic# E3.0   [8] (🤳..🤺)    selfie..person fencing
+ 1F93C..1F93E  ; Extended_Pictographic# E3.0   [3] (🤼..🤾)    people wrestling..person playing handball
+ 1F93F         ; Extended_Pictographic# E12.0  [1] (🤿)       diving mask
+ 1F940..1F945  ; Extended_Pictographic# E3.0   [6] (🥀..🥅)    wilted flower..goal net
+ 1F947..1F94B  ; Extended_Pictographic# E3.0   [5] (🥇..🥋)    1st place medal..martial arts uniform
+ 1F94C         ; Extended_Pictographic# E5.0   [1] (🥌)       curling stone
+ 1F94D..1F94F  ; Extended_Pictographic# E11.0  [3] (🥍..🥏)    lacrosse..flying disc
+ 1F950..1F95E  ; Extended_Pictographic# E3.0  [15] (🥐..🥞)    croissant..pancakes
+ 1F95F..1F96B  ; Extended_Pictographic# E5.0  [13] (🥟..🥫)    dumpling..canned food
+ 1F96C..1F970  ; Extended_Pictographic# E11.0  [5] (🥬..🥰)    leafy green..smiling face with hearts
+ 1F971         ; Extended_Pictographic# E12.0  [1] (🥱)       yawning face
+ 1F972         ; Extended_Pictographic# E13.0  [1] (🥲)       smiling face with tear
+ 1F973..1F976  ; Extended_Pictographic# E11.0  [4] (🥳..🥶)    partying face..cold face
+ 1F977..1F978  ; Extended_Pictographic# E13.0  [2] (🥷..🥸)    ninja..disguised face
+ 1F979         ; Extended_Pictographic# E14.0  [1] (🥹)       face holding back tears
+ 1F97A         ; Extended_Pictographic# E11.0  [1] (🥺)       pleading face
+ 1F97B         ; Extended_Pictographic# E12.0  [1] (🥻)       sari
+ 1F97C..1F97F  ; Extended_Pictographic# E11.0  [4] (🥼..🥿)    lab coat..flat shoe
+ 1F980..1F984  ; Extended_Pictographic# E1.0   [5] (🦀..🦄)    crab..unicorn
+ 1F985..1F991  ; Extended_Pictographic# E3.0  [13] (🦅..🦑)    eagle..squid
+ 1F992..1F997  ; Extended_Pictographic# E5.0   [6] (🦒..🦗)    giraffe..cricket
+ 1F998..1F9A2  ; Extended_Pictographic# E11.0 [11] (🦘..🦢)    kangaroo..swan
+ 1F9A3..1F9A4  ; Extended_Pictographic# E13.0  [2] (🦣..🦤)    mammoth..dodo
+ 1F9A5..1F9AA  ; Extended_Pictographic# E12.0  [6] (🦥..🦪)    sloth..oyster
+ 1F9AB..1F9AD  ; Extended_Pictographic# E13.0  [3] (🦫..🦭)    beaver..seal
+ 1F9AE..1F9AF  ; Extended_Pictographic# E12.0  [2] (🦮..🦯)    guide dog..white cane
+ 1F9B0..1F9B9  ; Extended_Pictographic# E11.0 [10] (🦰..🦹)    red hair..supervillain
+ 1F9BA..1F9BF  ; Extended_Pictographic# E12.0  [6] (🦺..🦿)    safety vest..mechanical leg
+ 1F9C0         ; Extended_Pictographic# E1.0   [1] (🧀)       cheese wedge
+ 1F9C1..1F9C2  ; Extended_Pictographic# E11.0  [2] (🧁..🧂)    cupcake..salt
+ 1F9C3..1F9CA  ; Extended_Pictographic# E12.0  [8] (🧃..🧊)    beverage box..ice
+ 1F9CB         ; Extended_Pictographic# E13.0  [1] (🧋)       bubble tea
+ 1F9CC         ; Extended_Pictographic# E14.0  [1] (🧌)       troll
+ 1F9CD..1F9CF  ; Extended_Pictographic# E12.0  [3] (🧍..🧏)    person standing..deaf person
+ 1F9D0..1F9E6  ; Extended_Pictographic# E5.0  [23] (🧐..🧦)    face with monocle..socks
+ 1F9E7..1F9FF  ; Extended_Pictographic# E11.0 [25] (🧧..🧿)    red envelope..nazar amulet
+ 1FA00..1FA6F  ; Extended_Pictographic# E0.0 [112] (🨀..🩯)    NEUTRAL CHESS KING..<reserved-1FA6F>
+ 1FA70..1FA73  ; Extended_Pictographic# E12.0  [4] (🩰..🩳)    ballet shoes..shorts
+ 1FA74         ; Extended_Pictographic# E13.0  [1] (🩴)       thong sandal
+ 1FA75..1FA77  ; Extended_Pictographic# E15.0  [3] (🩵..🩷)    light blue heart..pink heart
+ 1FA78..1FA7A  ; Extended_Pictographic# E12.0  [3] (🩸..🩺)    drop of blood..stethoscope
+ 1FA7B..1FA7C  ; Extended_Pictographic# E14.0  [2] (🩻..🩼)    x-ray..crutch
+ 1FA7D..1FA7F  ; Extended_Pictographic# E0.0   [3] (🩽..🩿)    <reserved-1FA7D>..<reserved-1FA7F>
+ 1FA80..1FA82  ; Extended_Pictographic# E12.0  [3] (🪀..🪂)    yo-yo..parachute
+ 1FA83..1FA86  ; Extended_Pictographic# E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
+ 1FA87..1FA88  ; Extended_Pictographic# E15.0  [2] (🪇..🪈)    maracas..flute
+ 1FA89..1FA8F  ; Extended_Pictographic# E0.0   [7] (🪉..🪏)    <reserved-1FA89>..<reserved-1FA8F>
+ 1FA90..1FA95  ; Extended_Pictographic# E12.0  [6] (🪐..🪕)    ringed planet..banjo
+ 1FA96..1FAA8  ; Extended_Pictographic# E13.0 [19] (🪖..🪨)    military helmet..rock
+ 1FAA9..1FAAC  ; Extended_Pictographic# E14.0  [4] (🪩..🪬)    mirror ball..hamsa
+ 1FAAD..1FAAF  ; Extended_Pictographic# E15.0  [3] (🪭..🪯)    folding hand fan..khanda
+ 1FAB0..1FAB6  ; Extended_Pictographic# E13.0  [7] (🪰..🪶)    fly..feather
+ 1FAB7..1FABA  ; Extended_Pictographic# E14.0  [4] (🪷..🪺)    lotus..nest with eggs
+ 1FABB..1FABD  ; Extended_Pictographic# E15.0  [3] (🪻..🪽)    hyacinth..wing
+ 1FABE         ; Extended_Pictographic# E0.0   [1] (🪾)       <reserved-1FABE>
+ 1FABF         ; Extended_Pictographic# E15.0  [1] (🪿)       goose
+ 1FAC0..1FAC2  ; Extended_Pictographic# E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
+ 1FAC3..1FAC5  ; Extended_Pictographic# E14.0  [3] (🫃..🫅)    pregnant man..person with crown
+ 1FAC6..1FACD  ; Extended_Pictographic# E0.0   [8] (🫆..🫍)    <reserved-1FAC6>..<reserved-1FACD>
+ 1FACE..1FACF  ; Extended_Pictographic# E15.0  [2] (🫎..🫏)    moose..donkey
+ 1FAD0..1FAD6  ; Extended_Pictographic# E13.0  [7] (🫐..🫖)    blueberries..teapot
+ 1FAD7..1FAD9  ; Extended_Pictographic# E14.0  [3] (🫗..🫙)    pouring liquid..jar
+ 1FADA..1FADB  ; Extended_Pictographic# E15.0  [2] (🫚..🫛)    ginger root..pea pod
+ 1FADC..1FADF  ; Extended_Pictographic# E0.0   [4] (🫜..🫟)    <reserved-1FADC>..<reserved-1FADF>
+ 1FAE0..1FAE7  ; Extended_Pictographic# E14.0  [8] (🫠..🫧)    melting face..bubbles
+ 1FAE8         ; Extended_Pictographic# E15.0  [1] (🫨)       shaking face
+ 1FAE9..1FAEF  ; Extended_Pictographic# E0.0   [7] (🫩..🫯)    <reserved-1FAE9>..<reserved-1FAEF>
+ 1FAF0..1FAF6  ; Extended_Pictographic# E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
+ 1FAF7..1FAF8  ; Extended_Pictographic# E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
+ 1FAF9..1FAFF  ; Extended_Pictographic# E0.0   [7] (🫹..🫿)    <reserved-1FAF9>..<reserved-1FAFF>
+ 1FC00..1FFFD  ; Extended_Pictographic# E0.0[1022] (🰀..🿽)    <reserved-1FC00>..<reserved-1FFFD>
+ 
+ # Total elements: 3537
+ 
+ #EOF
diff -Nrcpad gcc-13.2.0/contrib/unicode/from_glibc/unicode_utils.py gcc-14.1.0/contrib/unicode/from_glibc/unicode_utils.py
*** gcc-13.2.0/contrib/unicode/from_glibc/unicode_utils.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/from_glibc/unicode_utils.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  # Utilities to generate Unicode data for glibc from upstream Unicode data.
  #
! # Copyright (C) 2014-2023 Free Software Foundation, Inc.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
--- 1,6 ----
  # Utilities to generate Unicode data for glibc from upstream Unicode data.
  #
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
diff -Nrcpad gcc-13.2.0/contrib/unicode/from_glibc/utf8_gen.py gcc-14.1.0/contrib/unicode/from_glibc/utf8_gen.py
*** gcc-13.2.0/contrib/unicode/from_glibc/utf8_gen.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/from_glibc/utf8_gen.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/python3
  # -*- coding: utf-8 -*-
! # Copyright (C) 2014-2023 Free Software Foundation, Inc.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
--- 1,6 ----
  #!/usr/bin/python3
  # -*- coding: utf-8 -*-
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
*************** if __name__ == "__main__":
*** 350,356 ****
              # the EastAsianWidth.txt file.
              if re.match(r'.*<reserved-.+>\.\.<reserved-.+>.*', LINE):
                  continue
!             if re.match(r'^[^;]*;[WF]', LINE):
                  EAST_ASIAN_WIDTH_LINES.append(LINE.strip())
      with open(ARGS.prop_list_file, mode='r') as PROP_LIST_FILE:
          PROP_LIST_LINES = []
--- 350,356 ----
              # the EastAsianWidth.txt file.
              if re.match(r'.*<reserved-.+>\.\.<reserved-.+>.*', LINE):
                  continue
!             if re.match(r'^[^;]*;\s*[WF]\s*', LINE):
                  EAST_ASIAN_WIDTH_LINES.append(LINE.strip())
      with open(ARGS.prop_list_file, mode='r') as PROP_LIST_FILE:
          PROP_LIST_LINES = []
diff -Nrcpad gcc-13.2.0/contrib/unicode/gen-box-drawing-chars.py gcc-14.1.0/contrib/unicode/gen-box-drawing-chars.py
*** gcc-13.2.0/contrib/unicode/gen-box-drawing-chars.py	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/unicode/gen-box-drawing-chars.py	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,94 ----
+ #!/usr/bin/env python3
+ #
+ # Script to generate gcc/text-art/box-drawing-chars.inc
+ #
+ # This file is part of GCC.
+ #
+ # GCC is free software; you can redistribute it and/or modify it under
+ # the terms of the GNU General Public License as published by the Free
+ # Software Foundation; either version 3, or (at your option) any later
+ # version.
+ #
+ # GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ # for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ import unicodedata
+ 
+ def get_box_drawing_char_name(up: bool,
+                               down: bool,
+                               left: bool,
+                               right: bool) -> str:
+     if 0:
+         print(f'{locals()=}')
+     if up and down:
+         vertical = True
+         up = False
+         down = False
+     else:
+         vertical = False
+ 
+     if left and right:
+         horizontal = True
+         left = False
+         right = False
+     else:
+         horizontal = False
+ 
+     weights = []
+     heavy = []
+     light = []
+     dirs = []
+     for dir_name in ('up', 'down', 'vertical', 'left', 'right', 'horizontal'):
+         val = locals()[dir_name]
+         if val:
+             dirs.append(dir_name.upper())
+ 
+     if not dirs:
+         return 'SPACE'
+ 
+     name = 'BOX DRAWINGS'
+     #print(f'{light=} {heavy=}')
+ 
+     if 0:
+         print(dirs)
+ 
+     def weights_frag(weight: str, dirs: list, prefix: bool):
+         """
+         Generate a fragment where all directions share the same weight, e.g.:
+         'HEAVY HORIZONTAL'
+         'DOWN LIGHT'
+         'LEFT DOWN HEAVY'
+         'HEAVY DOWN AND RIGHT'
+         """
+         assert len(dirs) >= 1
+         assert len(dirs) <= 2
+         if prefix:
+             return f' {weight} ' + (' AND '.join(dirs))
+         else:
+             return ' ' + (' '.join(dirs)) + f' {weight}'
+ 
+     assert(len(dirs) >= 1 and len(dirs) <= 2)
+     name += weights_frag('LIGHT', dirs, True)
+ 
+     return name
+ 
+ print('/* Generated by contrib/unicode/gen-box-drawing-chars.py.  */')
+ print()
+ for i in range(16):
+     up = (i & 8)
+     down = (i & 4)
+     left = (i & 2)
+     right = (i & 1)
+     name = get_box_drawing_char_name(up, down, left, right)
+     if i < 15:
+         trailing_comma = ','
+     else:
+         trailing_comma = ' '
+     unichar = unicodedata.lookup(name)
+     print(f'0x{ord(unichar):04X}{trailing_comma} /* "{unichar}": U+{ord(unichar):04X}: {name} */')
diff -Nrcpad gcc-13.2.0/contrib/unicode/gen-combining-chars.py gcc-14.1.0/contrib/unicode/gen-combining-chars.py
*** gcc-13.2.0/contrib/unicode/gen-combining-chars.py	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/unicode/gen-combining-chars.py	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,75 ----
+ #!/usr/bin/env python3
+ #
+ # Script to generate libcpp/combining-chars.inc
+ #
+ # This file is part of GCC.
+ #
+ # GCC is free software; you can redistribute it and/or modify it under
+ # the terms of the GNU General Public License as published by the Free
+ # Software Foundation; either version 3, or (at your option) any later
+ # version.
+ #
+ # GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ # for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ from pprint import pprint
+ import unicodedata
+ 
+ def is_combining_char(code_point) -> bool:
+     return unicodedata.combining(chr(code_point)) != 0
+ 
+ class Range:
+     def __init__(self, start, end, value):
+         self.start = start
+         self.end = end
+         self.value = value
+ 
+     def __repr__(self):
+         return f'Range({self.start:x}, {self.end:x}, {self.value})'
+ 
+ def make_ranges(value_callback):
+     ranges = []
+     for code_point in range(0x10FFFF):
+         value = is_combining_char(code_point)
+         if 0:
+             print(f'{code_point=:x} {value=}')
+         if ranges and ranges[-1].value == value:
+             # Extend current range
+             ranges[-1].end = code_point
+         else:
+             # Start a new range
+             ranges.append(Range(code_point, code_point, value))
+     return ranges
+ 
+ ranges = make_ranges(is_combining_char)
+ if 0:
+     pprint(ranges)
+ 
+ print(f"/* Generated by contrib/unicode/gen-combining-chars.py")
+ print(f"   using version {unicodedata.unidata_version}"
+       " of the Unicode standard.  */")
+ print("\nstatic const cppchar_t combining_range_ends[] = {", end="")
+ for i, r in enumerate(ranges):
+     if i % 8:
+         print(" ", end="")
+     else:
+         print("\n  ", end="")
+     print("0x%x," % r.end, end="")
+ print("\n};\n")
+ print("static const bool is_combining[] = {", end="")
+ for i, r in enumerate(ranges):
+     if i % 24:
+         print(" ", end="")
+     else:
+         print("\n  ", end="")
+     if r.value:
+         print("1,", end="")
+     else:
+         print("0,", end="")
+ print("\n};")
diff -Nrcpad gcc-13.2.0/contrib/unicode/gen-printable-chars.py gcc-14.1.0/contrib/unicode/gen-printable-chars.py
*** gcc-13.2.0/contrib/unicode/gen-printable-chars.py	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/unicode/gen-printable-chars.py	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,77 ----
+ #!/usr/bin/env python3
+ #
+ # Script to generate libcpp/printable-chars.inc
+ #
+ # This file is part of GCC.
+ #
+ # GCC is free software; you can redistribute it and/or modify it under
+ # the terms of the GNU General Public License as published by the Free
+ # Software Foundation; either version 3, or (at your option) any later
+ # version.
+ #
+ # GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ # for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ from pprint import pprint
+ import unicodedata
+ 
+ def is_printable_char(code_point) -> bool:
+     category = unicodedata.category(chr(code_point))
+     # "Cc" is "control" and "Cf" is "format"
+     return category[0] != 'C'
+ 
+ class Range:
+     def __init__(self, start, end, value):
+         self.start = start
+         self.end = end
+         self.value = value
+ 
+     def __repr__(self):
+         return f'Range({self.start:x}, {self.end:x}, {self.value})'
+ 
+ def make_ranges(value_callback):
+     ranges = []
+     for code_point in range(0x10FFFF):
+         value = is_printable_char(code_point)
+         if 0:
+             print(f'{code_point=:x} {value=}')
+         if ranges and ranges[-1].value == value:
+             # Extend current range
+             ranges[-1].end = code_point
+         else:
+             # Start a new range
+             ranges.append(Range(code_point, code_point, value))
+     return ranges
+ 
+ ranges = make_ranges(is_printable_char)
+ if 0:
+     pprint(ranges)
+ 
+ print(f"/* Generated by contrib/unicode/gen-printable-chars.py")
+ print(f"   using version {unicodedata.unidata_version}"
+       " of the Unicode standard.  */")
+ print("\nstatic const cppchar_t printable_range_ends[] = {", end="")
+ for i, r in enumerate(ranges):
+     if i % 8:
+         print(" ", end="")
+     else:
+         print("\n  ", end="")
+     print("0x%x," % r.end, end="")
+ print("\n};\n")
+ print("static const bool is_printable[] = {", end="")
+ for i, r in enumerate(ranges):
+     if i % 24:
+         print(" ", end="")
+     else:
+         print("\n  ", end="")
+     if r.value:
+         print("1,", end="")
+     else:
+         print("0,", end="")
+ print("\n};")
diff -Nrcpad gcc-13.2.0/contrib/unicode/gen_libstdcxx_unicode_data.py gcc-14.1.0/contrib/unicode/gen_libstdcxx_unicode_data.py
*** gcc-13.2.0/contrib/unicode/gen_libstdcxx_unicode_data.py	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/contrib/unicode/gen_libstdcxx_unicode_data.py	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,255 ----
+ #!/usr/bin/env python3
+ #
+ # Script to generate tables for libstdc++ std::format width estimation.
+ #
+ # This file is part of GCC.
+ #
+ # GCC is free software; you can redistribute it and/or modify it under
+ # the terms of the GNU General Public License as published by the Free
+ # Software Foundation; either version 3, or (at your option) any later
+ # version.
+ #
+ # GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ # for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ # To update the Libstdc++ static data in <bits/unicode-data.h> download the latest:
+ # ftp://ftp.unicode.org/Public/UNIDATA/EastAsianWidth.txt
+ # ftp://ftp.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
+ # ftp://ftp.unicode.org/Public/UNIDATA/auxiliary/GraphemeBreakProperty.txt
+ # ftp://ftp.unicode.org/Public/UNIDATA/emoji/emoji-data.txt
+ # Then run this script and save the output to
+ # ../../libstdc++-v3/include/bits/unicode-data.h
+ 
+ import sys
+ import re
+ import math
+ import os
+ 
+ self = os.path.basename(__file__)
+ print("// Generated by contrib/unicode/{}, do not edit.".format(self))
+ print("""
+ // Copyright The GNU Toolchain Authors.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+ // terms of the GNU General Public License as published by the
+ // Free Software Foundation; either version 3, or (at your option)
+ // any later version.
+ 
+ // This library is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ // GNU General Public License for more details.
+ 
+ // Under Section 7 of GPL version 3, you are granted additional
+ // permissions described in the GCC Runtime Library Exception, version
+ // 3.1, as published by the Free Software Foundation.
+ 
+ // You should have received a copy of the GNU General Public License and
+ // a copy of the GCC Runtime Library Exception along with this program;
+ // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ // <http://www.gnu.org/licenses/>.
+ 
+ /** @file bits/unicode-data.h
+  *  This is an internal header file, included by other library headers.
+  *  Do not attempt to use it directly. @headername{format}
+  */
+ """)
+ print("#ifndef _GLIBCXX_GET_UNICODE_DATA")
+ print('# error "This is not a public header, do not include it directly"')
+ print("#elif _GLIBCXX_GET_UNICODE_DATA != 150100")
+ print('# error "Version mismatch for Unicode static data"')
+ print("#endif\n")
+ 
+ # Process a list and return a list of tuples (index, val) which are the elements
+ # in the list that have a different val from the previous element.
+ # e.g. find_edges([a, a, b, b, c, b, b, d]) is [(0,a), (2,b), (4,c), (5,b), (7,d)]
+ # and find_edges([a, a, b, b, c, b, b, d], a) is [(2,b), (4,c), (5,b), (7,d)]
+ def find_edges(vals, init = None):
+     edges = []
+     prev_val = init
+     for i, v in enumerate(vals):
+         if v != prev_val:
+             edges.append((i,v))
+             prev_val = v
+     return edges
+ 
+ all_code_points = []
+ 
+ # Process a code point value or range of code point values with given property.
+ def process_code_points(code_points, val):
+     # Example arguments:
+     # 1100..115F, x
+     # 232A, y
+ 
+     r = code_points.split("..")
+     if len(r) == 1:
+         c = int(r[0], base=16)
+         all_code_points[c] = val
+     elif len(r) == 2:
+         begin = int(r[0], base=16)
+         end = int(r[1], base=16) + 1
+         all_code_points[begin:end] = [val] * (end - begin)
+     else:
+         raise ValueError
+ 
+ # By default every code point has width 1. This is what the C++ standard says,
+ # even though the Unicode standard says some code points have width 0.
+ all_code_points = [1] * (1 + 0x10FFFF)
+ 
+ # Extract all code points with East_Asian_Width=W or East_Asian_Width=F
+ for line in open("EastAsianWidth.txt", "r"):
+     # Example lines:
+     # 3000           ; F
+     # 3001..3003     ; W
+     line = line.split("#")[0]
+     if re.match(r'^[\dA-Fa-f][^;]+;\s*[WF]\s*$', line):
+         process_code_points(line.split(";")[0], 2)
+ 
+ # The C++ standard also gives width 2 to the following ranges:
+ # U+4DC0 – U+4DFF (Yijing Hexagram Symbols)
+ process_code_points("4DC0..4DFF", 2)
+ # U+1F300 – U+1F5FF (Miscellaneous Symbols and Pictographs)
+ process_code_points("1F300..1F5FF", 2)
+ # U+1F900 – U+1F9FF (Supplemental Symbols and Pictographs)
+ process_code_points("1F900..1F9FF", 2)
+ 
+ # Create a list that only contains the code points that have a different width
+ # to the previous code point.
+ edges = find_edges(all_code_points, 1)
+ 
+ # Table for std::__unicode::__format_width(char32_t)
+ 
+ print("  // Table generated by contrib/unicode/gen_std_format_width.py,")
+ print("  // from EastAsianWidth.txt from the Unicode standard.");
+ print("  inline constexpr char32_t __width_edges[] = {", end="")
+ for i, e in enumerate(edges):
+     if i % 8:
+         print(" ", end="")
+     else:
+         print("\n    ", end="")
+     c,_ = e
+     print("{:#x},".format(c), end="")
+ print("\n  };\n")
+ 
+ # By default every code point has Grapheme_Cluster_Break=Other.
+ all_code_points = ["Other"] * (1 + 0x10FFFF)
+ 
+ # Extract Grapheme_Cluster_Break property for all code points.
+ for line in open("GraphemeBreakProperty.txt", "r"):
+     # Example lines:
+     # "0600..0605", "Prepend"
+     # "00AD", "Control"
+     line = line.split("#")[0]
+     if re.match(r'^[\dA-Fa-f][^;]+;', line):
+         code_points, grapheme_property = line.split(";")
+         process_code_points(code_points, grapheme_property.strip())
+ 
+ edges = find_edges(all_code_points)
+ gcb_props = {"Other":0}
+ for c, p in edges:
+     if p not in gcb_props:
+         gcb_props[p] = len(gcb_props)
+ shift_bits = int(math.ceil(math.log2(len(gcb_props))))
+ 
+ # Enum definition for std::__unicode::_Gcb_property
+ 
+ print("  enum class _Gcb_property {")
+ for p in gcb_props.items():
+     print("    _Gcb_{} = {},".format(p[0],p[1]))
+ print("  };\n")
+ 
+ # Tables for std::__unicode::_Grapheme_cluster_state
+ 
+ print("  // Values generated by contrib/unicode/gen_std_format_width.py,")
+ print("  // from GraphemeBreakProperty.txt from the Unicode standard.");
+ print("  // Entries are (code_point << shift_bits) + property.")
+ print("  inline constexpr int __gcb_shift_bits = {:#x};".format(shift_bits))
+ print("  inline constexpr uint32_t __gcb_edges[] = {", end="")
+ for i, e in enumerate(edges):
+     if i % 6:
+         print(" ", end="")
+     else:
+         print("\n    ", end="")
+     c, p = e
+     x = (c << shift_bits) + gcb_props[p]
+     print("{0:#x},".format(x), end="")
+ print("\n  };\n")
+ 
+ # By default every code point has Indic_Conjunct_Break=None.
+ all_code_points = [None] * (1 + 0x10FFFF)
+ 
+ # Extract Indic_Conjunct_Break property for all code points.
+ for line in open("DerivedCoreProperties.txt", "r"):
+     # Example lines:
+     # 094D       ; InCB; Linker
+     # 0B71       ; InCB; Consonant
+     # 0300..034E ; InCB; Extend
+     line = line.split("#")[0]
+     if re.match(r'^[\dA-Fa-f][^;]+; InCB;', line):
+         code_points, _, incb_property = line.split(";")
+         process_code_points(code_points, incb_property.strip())
+ 
+ # Table for std::__unicode::__is_incb_linker
+ # This table is tiny, so just contains the list of code points.
+ print("  inline constexpr char32_t __incb_linkers[] = {\n   ", end="")
+ for i in [i for i,p in enumerate(all_code_points) if p == "Linker"]:
+     print(" 0x{:04x},".format(i), end="")
+     all_code_points[i] = None
+ print("\n  };\n")
+ 
+ edges = find_edges(all_code_points)
+ 
+ incb_props = {None:0, "Consonant":1, "Extend":2}
+ print("  enum class _InCB { _Consonant = 1, _Extend = 2 };\n")
+ # Table for std::__unicode::__incb_property
+ print("  // Values generated by contrib/unicode/gen_std_format_width.py,")
+ print("  // from DerivedCoreProperties.txt from the Unicode standard.");
+ print("  // Entries are (code_point << 2) + property.")
+ print("  inline constexpr uint32_t __incb_edges[] = {", end="")
+ for i, e in enumerate(edges):
+     if i % 6:
+         print(" ", end="")
+     else:
+         print("\n    ", end="")
+     c, p = e
+     x = (c << 2) + incb_props[p]
+     print("{0:#x},".format(x), end="")
+ print("\n  };\n")
+ 
+ # By default every code point has Emoji=No.
+ all_code_points = [False] * (1 + 0x10FFFF)
+ 
+ # Extract Emoji=Extended_Pictographic for all code points.
+ for line in open("emoji-data.txt", "r"):
+     # Example lines:
+     # 1100..115F ; Extended_Pictographic
+     # 232A       ; Extended_Pictographic
+     line = line.split("#")[0]
+     if re.match(r'^[\dA-Fa-f][^;]+; Extended_Pictographic', line):
+         process_code_points(line.split(";")[0], True)
+ 
+ edges = find_edges(all_code_points, False)
+ 
+ # Table for std::__unicode::__is_extended_pictographic
+ print("  // Table generated by contrib/unicode/gen_std_format_width.py,")
+ print("  // from emoji-data.txt from the Unicode standard.");
+ print("  inline constexpr char32_t __xpicto_edges[] = {", end="")
+ for i, e in enumerate(edges):
+     if i % 8:
+         print(" ", end="")
+     else:
+         print("\n    ", end="")
+     c,_ = e
+     print("{:#x},".format(c), end="")
+ print("\n  };\n")
+ 
+ # <bits/unicode.h> gives an error if this macro is left defined.
+ # Do this last, so that the generated output is not usable unless we reach here.
+ print("#undef _GLIBCXX_GET_UNICODE_DATA")
diff -Nrcpad gcc-13.2.0/contrib/unicode/gen_wcwidth.py gcc-14.1.0/contrib/unicode/gen_wcwidth.py
*** gcc-13.2.0/contrib/unicode/gen_wcwidth.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unicode/gen_wcwidth.py	Tue May  7 06:51:37 2024
***************
*** 16,28 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.  */
  
  import sys
  import os
  
  if len(sys.argv) != 2:
!     print("usage: %s <unicode version>", file=sys.stderr)
      sys.exit(1)
  unicode_version = sys.argv[1]
  
--- 16,28 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with GCC; see the file COPYING3.  If not see
! # <http://www.gnu.org/licenses/>.
  
  import sys
  import os
  
  if len(sys.argv) != 2:
!     print("usage: %s <unicode version>" % sys.argv[0], file=sys.stderr)
      sys.exit(1)
  unicode_version = sys.argv[1]
  
diff -Nrcpad gcc-13.2.0/contrib/unused_functions.py gcc-14.1.0/contrib/unused_functions.py
*** gcc-13.2.0/contrib/unused_functions.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/unused_functions.py	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  #
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  # Contributed by Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
  # Inspired by bloat-o-meter from busybox.
  
--- 1,7 ----
  #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  #
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  # Contributed by Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
  # Inspired by bloat-o-meter from busybox.
  
diff -Nrcpad gcc-13.2.0/contrib/update-copyright.py gcc-14.1.0/contrib/update-copyright.py
*** gcc-13.2.0/contrib/update-copyright.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/update-copyright.py	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/usr/bin/env python3
  #
! # Copyright (C) 2013-2023 Free Software Foundation, Inc.
  #
  # This script is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,6 ----
  #!/usr/bin/env python3
  #
! # Copyright (C) 2013-2024 Free Software Foundation, Inc.
  #
  # This script is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
*************** class GenericFilter:
*** 83,88 ****
--- 83,89 ----
                  'gpl_v3.texi',
                  'fdl-1.3.xml',
                  'gpl-3.0.xml',
+                 'gpl_v3_without_node.texi',
  
                  # Skip auto- and libtool-related files
                  'aclocal.m4',
*************** class GCCFilter (GenericFilter):
*** 556,561 ****
--- 557,565 ----
          self.skip_files |= set ([
                  # Not part of GCC
                  'math-68881.h',
+ 
+                 # Weird ways to compose copyright year
+                 'GmcOptions.cc',
                  ])
  
          self.skip_dirs |= set ([
diff -Nrcpad gcc-13.2.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim gcc-14.1.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim
*** gcc-13.2.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  " Vim file type detection rules for GCC development
  "
! " Copyright (C) 2018-2023 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 1,6 ----
  " Vim file type detection rules for GCC development
  "
! " Copyright (C) 2018-2024 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/vim-gcc-dev/syntax/gcc-match.vim gcc-14.1.0/contrib/vim-gcc-dev/syntax/gcc-match.vim
*** gcc-13.2.0/contrib/vim-gcc-dev/syntax/gcc-match.vim	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/vim-gcc-dev/syntax/gcc-match.vim	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  " Vim syntax highlighting rules for GCC match-and-simplify language.
  "
! " Copyright (C) 2018-2023 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 1,6 ----
  " Vim syntax highlighting rules for GCC match-and-simplify language.
  "
! " Copyright (C) 2018-2024 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim gcc-14.1.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim
*** gcc-13.2.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  " Syntax highlighting rules for RTL dump files (for Vim).
  "
! " Copyright (C) 2018-2023 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 1,6 ----
  " Syntax highlighting rules for RTL dump files (for Vim).
  "
! " Copyright (C) 2018-2024 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/vim-gcc-dev/syntax/gimple.vim gcc-14.1.0/contrib/vim-gcc-dev/syntax/gimple.vim
*** gcc-13.2.0/contrib/vim-gcc-dev/syntax/gimple.vim	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/vim-gcc-dev/syntax/gimple.vim	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  " Syntax highlighting rules for GIMPLE dump files (for Vim).
  "
! " Copyright (C) 2015-2023 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 1,6 ----
  " Syntax highlighting rules for GIMPLE dump files (for Vim).
  "
! " Copyright (C) 2015-2024 Free Software Foundation, Inc.
  "
  " This script is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/contrib/vimrc gcc-14.1.0/contrib/vimrc
*** gcc-13.2.0/contrib/vimrc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/contrib/vimrc	Tue May  7 06:51:37 2024
***************
*** 11,17 ****
  "   $ make vimrc
  " from GCC build folder.
  " 
! " Copyright (C) 2014-2023 Free Software Foundation, Inc.
  "
  " This program is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
--- 11,17 ----
  "   $ make vimrc
  " from GCC build folder.
  " 
! " Copyright (C) 2014-2024 Free Software Foundation, Inc.
  "
  " This program is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/fixincludes/ChangeLog gcc-14.1.0/fixincludes/ChangeLog
*** gcc-13.2.0/fixincludes/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/fixincludes/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,10 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2023-03-28  Xi Ruoyao  <xry111@xry111.site>
  
--- 1,32 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2023-11-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
  
! 	* configure: Regenerated.
! 
! 2023-10-30  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* configure: Regenerate.
! 
! 2023-08-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	* inclhack.def (darwin_flt_eval_method): Handle macOS 14 guard
! 	variant.
! 	* fixincl.x: Regenerate.
! 	* tests/base/math.h [DARWIN_FLT_EVAL_METHOD_CHECK]: Update test.
! 
! 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
! 
! 	* configure: Regenerate.
! 
! 2023-06-15  Marek Polacek  <polacek@redhat.com>
! 
! 	* Makefile.in: Set and use PICFLAG and LD_PICFLAG.  Use the "pic"
! 	build of libiberty if PICFLAG is set.
! 	* configure.ac:
! 	* configure: Regenerate.
  
  2023-03-28  Xi Ruoyao  <xry111@xry111.site>
  
diff -Nrcpad gcc-13.2.0/fixincludes/Makefile.in gcc-14.1.0/fixincludes/Makefile.in
*** gcc-13.2.0/fixincludes/Makefile.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/fixincludes/Makefile.in	Tue May  7 06:51:37 2024
*************** default : all
*** 73,79 ****
  # Now figure out from those variables how to compile and link.
  
  .c.o:
! 	$(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $<
  
  # The only suffixes we want for implicit rules are .c and .o.
  .SUFFIXES:
--- 73,79 ----
  # Now figure out from those variables how to compile and link.
  
  .c.o:
! 	$(CC) -c $(CFLAGS) $(PICFLAG) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $<
  
  # The only suffixes we want for implicit rules are .c and .o.
  .SUFFIXES:
*************** default : all
*** 87,93 ****
--- 87,97 ----
  ##
  ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
  
+ ifeq ($(PICFLAG),)
  LIBIBERTY=../libiberty/libiberty.a
+ else
+ LIBIBERTY=../libiberty/pic/libiberty.a
+ endif
  
  ALLOBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o \
        fixlib.o fixopts.o
*************** oneprocess : full-stamp
*** 107,121 ****
  twoprocess : test-stamp $(AF)
  
  full-stamp : $(ALLOBJ) $(LIBIBERTY)
! 	$(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBIBERTY)
  	$(STAMP) $@
  
  test-stamp : $(TESTOBJ) $(LIBIBERTY)
! 	$(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBIBERTY)
  	$(STAMP) $@
  
  $(AF): $(FIXOBJ) $(LIBIBERTY)
! 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(FIXOBJ) $(LIBIBERTY)
  
  $(ALLOBJ)   : $(HDR)
  fixincl.o   : fixincl.c  $(srcdir)/fixincl.x
--- 111,125 ----
  twoprocess : test-stamp $(AF)
  
  full-stamp : $(ALLOBJ) $(LIBIBERTY)
! 	$(CC) $(CFLAGS) $(PICFLAG) $(LDFLAGS) $(LD_PICFLAG) -o $(FI) $(ALLOBJ) $(LIBIBERTY)
  	$(STAMP) $@
  
  test-stamp : $(TESTOBJ) $(LIBIBERTY)
! 	$(CC) $(CFLAGS) $(PICFLAG) $(LDFLAGS) $(LD_PICFLAG) -o $(FI) $(TESTOBJ) $(LIBIBERTY)
  	$(STAMP) $@
  
  $(AF): $(FIXOBJ) $(LIBIBERTY)
! 	$(CC) $(CFLAGS) $(PICFLAG) $(LDFLAGS) $(LD_PICFLAG) -o $@ $(FIXOBJ) $(LIBIBERTY)
  
  $(ALLOBJ)   : $(HDR)
  fixincl.o   : fixincl.c  $(srcdir)/fixincl.x
diff -Nrcpad gcc-13.2.0/fixincludes/configure gcc-14.1.0/fixincludes/configure
*** gcc-13.2.0/fixincludes/configure	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/fixincludes/configure	Tue May  7 06:51:37 2024
*************** ac_subst_vars='LTLIBOBJS
*** 623,628 ****
--- 623,630 ----
  LIBOBJS
  get_gcc_base_ver
  MAINT
+ LD_PICFLAG
+ PICFLAG
  TARGET
  target_noncanonical
  WERROR
*************** enable_option_checking
*** 695,700 ****
--- 697,703 ----
  enable_werror_always
  with_local_prefix
  enable_twoprocess
+ enable_host_pie
  enable_maintainer_mode
  with_gcc_major_version_only
  '
*************** Optional Features:
*** 1323,1328 ****
--- 1326,1332 ----
    --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
    --enable-werror-always  enable -Werror despite compiler version
    --enable-twoprocess       Use a separate process to apply the fixes
+   --enable-host-pie       build host code as PIE
    --enable-maintainer-mode enable make rules and dependencies not useful
                            (and sometimes confusing) to the casual installer
  
*************** ac_configure="$SHELL $ac_aux_dir/configu
*** 2937,2943 ****
  
  # LT_PATH_NM
  # ----------
! # find the pathname to a BSD- or MS-compatible name lister
  # LT_PATH_NM
  
  # Old names:
--- 2941,2948 ----
  
  # LT_PATH_NM
  # ----------
! # find the pathname to a BSD- or MS-compatible name lister, and any flags
! # needed to make it compatible
  # LT_PATH_NM
  
  # Old names:
*************** ac_configure="$SHELL $ac_aux_dir/configu
*** 3044,3050 ****
  # the compiler configuration to `libtool'.
  # _LT_LANG_CXX_CONFIG
  
- 
  # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
  # ---------------------------------
  # Figure out "hidden" library dependencies from verbose
--- 3049,3054 ----
*************** $as_echo "#define SEPARATE_FIX_PROC 1" >
*** 4835,4840 ****
--- 4839,4853 ----
  
  fi
  
+ # Enable --enable-host-pie.
+ # Check whether --enable-host-pie was given.
+ if test "${enable_host_pie+set}" = set; then :
+   enableval=$enable_host_pie; PICFLAG=-fPIE; LD_PICFLAG=-pie
+ fi
+ 
+ 
+ 
+ 
  case $host in
  	vax-dec-bsd* )
  
diff -Nrcpad gcc-13.2.0/fixincludes/configure.ac gcc-14.1.0/fixincludes/configure.ac
*** gcc-13.2.0/fixincludes/configure.ac	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/fixincludes/configure.ac	Tue May  7 06:51:37 2024
*************** if test $TARGET = twoprocess; then
*** 68,73 ****
--- 68,81 ----
  		  [Define if testing and fixing are done by separate process])
  fi
  
+ # Enable --enable-host-pie.
+ AC_ARG_ENABLE(host-pie,
+ [AS_HELP_STRING([--enable-host-pie],
+        [build host code as PIE])],
+ [PICFLAG=-fPIE; LD_PICFLAG=-pie], [])
+ AC_SUBST(PICFLAG)
+ AC_SUBST(LD_PICFLAG)
+ 
  case $host in
  	vax-dec-bsd* )
  		AC_DEFINE(exit, xexit, [Define to xexit if the host system does not support atexit])
diff -Nrcpad gcc-13.2.0/fixincludes/fixincl.x gcc-14.1.0/fixincludes/fixincl.x
*** gcc-13.2.0/fixincludes/fixincl.x	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/fixincludes/fixincl.x	Tue May  7 06:52:51 2024
***************
*** 2,12 ****
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  January 22, 2023 at 09:03:29 PM by AutoGen 5.18.12
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER Sun Jan 22 21:03:29 CET 2023
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
--- 2,12 ----
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  August 17, 2023 at 10:16:38 AM by AutoGen 5.18.12
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER Thu Aug 17 10:16:38 CEST 2023
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
*************** tSCC* apzDarwin_Flt_Eval_MethodMachs[] =
*** 3674,3680 ****
   *  content selection pattern - do fix if pattern found
   */
  tSCC zDarwin_Flt_Eval_MethodSelect0[] =
!        "^#if __FLT_EVAL_METHOD__ == 0$";
  
  #define    DARWIN_FLT_EVAL_METHOD_TEST_CT  1
  static tTestDesc aDarwin_Flt_Eval_MethodTests[] = {
--- 3674,3680 ----
   *  content selection pattern - do fix if pattern found
   */
  tSCC zDarwin_Flt_Eval_MethodSelect0[] =
!        "^#if __FLT_EVAL_METHOD__ == 0( \\|\\| __FLT_EVAL_METHOD__ == -1)?$";
  
  #define    DARWIN_FLT_EVAL_METHOD_TEST_CT  1
  static tTestDesc aDarwin_Flt_Eval_MethodTests[] = {
*************** static tTestDesc aDarwin_Flt_Eval_Method
*** 3685,3691 ****
   */
  static const char* apzDarwin_Flt_Eval_MethodPatch[] = {
      "format",
!     "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16",
      (char*)NULL };
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
--- 3685,3691 ----
   */
  static const char* apzDarwin_Flt_Eval_MethodPatch[] = {
      "format",
!     "%0 || __FLT_EVAL_METHOD__ == 16",
      (char*)NULL };
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
diff -Nrcpad gcc-13.2.0/fixincludes/inclhack.def gcc-14.1.0/fixincludes/inclhack.def
*** gcc-13.2.0/fixincludes/inclhack.def	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/fixincludes/inclhack.def	Tue May  7 06:51:37 2024
*************** fix = {
*** 1819,1828 ****
      hackname  = darwin_flt_eval_method;
      mach      = "*-*-darwin*";
      files     = math.h;
!     select    = "^#if __FLT_EVAL_METHOD__ == 0$";
      c_fix     = format;
!     c_fix_arg = "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16";
!     test_text = "#if __FLT_EVAL_METHOD__ == 0";
  };
  
  /*
--- 1819,1829 ----
      hackname  = darwin_flt_eval_method;
      mach      = "*-*-darwin*";
      files     = math.h;
!     select    = "^#if __FLT_EVAL_METHOD__ == 0( \\|\\| __FLT_EVAL_METHOD__ == -1)?$";
      c_fix     = format;
!     c_fix_arg = "%0 || __FLT_EVAL_METHOD__ == 16";
!     test_text = "#if __FLT_EVAL_METHOD__ == 0\n"
! 		"#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1";
  };
  
  /*
diff -Nrcpad gcc-13.2.0/fixincludes/tests/base/math.h gcc-14.1.0/fixincludes/tests/base/math.h
*** gcc-13.2.0/fixincludes/tests/base/math.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/fixincludes/tests/base/math.h	Tue May  7 06:51:37 2024
***************
*** 32,37 ****
--- 32,38 ----
  
  #if defined( DARWIN_FLT_EVAL_METHOD_CHECK )
  #if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16
+ #if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1 || __FLT_EVAL_METHOD__ == 16
  #endif  /* DARWIN_FLT_EVAL_METHOD_CHECK */
  
  
diff -Nrcpad gcc-13.2.0/gcc/ABOUT-GCC-NLS gcc-14.1.0/gcc/ABOUT-GCC-NLS
*** gcc-13.2.0/gcc/ABOUT-GCC-NLS	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ABOUT-GCC-NLS	Tue May  7 06:51:37 2024
*************** For example, GCC source code should not
*** 23,28 ****
--- 23,44 ----
  ("unterminated comment")' instead, as it is the `error' function's
  responsibility to translate the message before the user sees it.
  
+ In general, use no markup for strings that are the immediate format string
+ argument of a diagnostic function.  Use G_("str") for strings that will be
+ used as the format string for a diagnostic but are e.g. assigned to a
+ variable first.  Use N_("str") for strings that are not diagnostic format
+ strings, but will still be translated later.  Use _("str") for strings that
+ will not be translated elsewhere.  It's important not to use _("str") in
+ the initializer of a statically allocated variable; use one of the others
+ instead and make sure that uses of that variable translate the string,
+ whether directly with _(msg) or by passing it to a diagnostic or other
+ function that performs the translation.
+ 
+ Avoid using %s to compose a diagnostic message from multiple translatable
+ strings; instead, write out the full diagnostic message for each variant.
+ Only use %s for message components that do not need translation, such as
+ keywords.
+ 
  By convention, any function parameter in the GCC sources whose name
  ends in `msgid' is expected to be a message requiring translation.
  If the parameter name ends with `gmsgid', it is assumed to be a GCC
*************** configure GCC with --enable-maintainer-m
*** 49,55 ****
  rebuilt.
  
  
! Copyright (C) 1998-2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 65,71 ----
  rebuilt.
  
  
! Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/gcc/BASE-VER gcc-14.1.0/gcc/BASE-VER
*** gcc-13.2.0/gcc/BASE-VER	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/gcc/BASE-VER	Tue May  7 06:52:34 2024
***************
*** 1 ****
! 13.2.0
--- 1 ----
! 14.1.0
diff -Nrcpad gcc-13.2.0/gcc/ChangeLog gcc-14.1.0/gcc/ChangeLog
*** gcc-13.2.0/gcc/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/gcc/ChangeLog	Tue May  7 06:52:34 2024
***************
*** 1,8767 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-07-20  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.h (TARGET_MEMTAG): Remove armv8.5
! 	dependency.
! 	* config/aarch64/arm_acle.h: Remove unnecessary armv8.x
! 	dependencies from target pragmas.
! 	* config/aarch64/arm_fp16.h (target): Likewise.
! 	* config/aarch64/arm_neon.h (target): Likewise.
  
! 2023-07-20  Richard Biener  <rguenther@suse.de>
  
! 	Revert:
! 	2022-08-09  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	* config/i386/i386-features.cc (scalar_chain::convert_compare):
! 	Create new pseudos only when/if needed.  Add support for TEST,
! 	i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
! 	When broadcasting V2DImode and V4SImode use new pseudo register.
! 	(timode_scalar_chain::convert_op): Do nothing if operand is
! 	already V1TImode.  Avoid generating useless SUBREG conversions,
! 	i.e. (SUBREG:V1TImode (REG:V1TImode) 0).  Handle CONST_WIDE_INT
! 	in addition to CONST_INT by using CONST_SCALAR_INT_P.
! 	(convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
! 	CONST_WIDE_INT and CONST_INT.  Recognize new *testti_doubleword
! 	pattern as an STV candidate.
! 	(timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
! 	operands in binary logic operations.
! 	* config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
! 	for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
! 	as regular PTEST, i.e. cost->sse_op.
! 	* config/i386/i386.md (*testti_doubleword): New pre-reload
! 	define_insn_and_split that recognizes comparison of TI mode AND
! 	against zero.
! 	* config/i386/sse.md (*ptest<mode>_and): New pre-reload
! 	define_insn_and_split that recognizes UNSPEC_PTEST of identical
! 	AND operands.
  
! 2023-07-20  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* doc/invoke.texi: Remove AVX512VP2INTERSECT in
! 	Granite Rapids{, D} from documentation.
  
! 2023-07-19  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
! 	2023-07-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/110731
! 	* wide-int.cc (wi::divmod_internal): Always unpack dividend and
! 	divisor as UNSIGNED regardless of sgn.
  
! 2023-07-19  Iain Sandoe  <iain@sandoe.co.uk>
  
  	Backported from master:
! 	2023-07-13  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR target/110624
! 	* config/darwin.h (DARWIN_PLATFORM_ID): New.
! 	(LINK_COMMAND_A): Use DARWIN_PLATFORM_ID to pass OS, OS version
! 	and SDK data to the static linker.
  
! 2023-07-19  Iain Sandoe  <iain@sandoe.co.uk>
  
  	Backported from master:
! 	2023-07-03  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.h: Avoid duplicate multiply_defined specs on
! 	earlier Darwin versions with shared libgcc.
  
! 2023-07-18  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Add vl parameter.
! 	(change_vsetvl_insn): Ditto.
! 	(change_insn): Add validate change as well as assert.
! 	(pass_vsetvl::backward_demand_fusion): Allow forward.
  
! 2023-07-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/110669
! 	* tree-scalar-evolution.cc (analyze_and_compute_bitop_with_inv_effect):
! 	Check we matched a header PHI.
  
! 2023-07-14  Uros Bizjak  <ubizjak@gmail.com>
  
! 	Backported from master:
! 	2023-07-14  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/110206
! 	* fwprop.cc (contains_paradoxical_subreg_p): Move to ...
! 	* rtlanal.cc (contains_paradoxical_subreg_p): ... here.
! 	* rtlanal.h (contains_paradoxical_subreg_p): Add prototype.
! 	* cprop.cc (try_replace_reg): Do not set REG_EQUAL note
! 	when the original source contains a paradoxical subreg.
  
! 2023-07-14  Oleg Endo  <olegendo@gcc.gnu.org>
  
! 	PR target/101469
! 	* config/sh/sh.md (peephole2): Handle case where eliminated reg
! 	is also	used by the address of the following memory operand.
  
! 2023-07-13  Uros Bizjak  <ubizjak@gmail.com>
  
! 	Backported from master:
! 	2023-07-13  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/106966
! 	* config/alpha/alpha.cc (alpha_emit_set_long_const):
! 	Always use DImode when constructing long const.
  
! 2023-07-12  Mo, Zewei  <zewei.mo@intel.com>
  
! 	* common/config/i386/cpuinfo.h
! 	(get_intel_cpu): Handle Granite Rapids D.
! 	* common/config/i386/i386-common.cc:
! 	(processor_alias_table): Add graniterapids-d.
! 	* common/config/i386/i386-cpuinfo.h
! 	(enum processor_subtypes): Add INTEL_COREI7_GRANITERAPIDS_D.
! 	* config.gcc: Add -march=graniterapids-d.
! 	* config/i386/driver-i386.cc (host_detect_local_cpu):
! 	Handle graniterapids-d.
! 	* config/i386/i386.h: (PTA_GRANITERAPIDS_D): New.
! 	* doc/extend.texi: Add graniterapids-d.
! 	* doc/invoke.texi: Ditto.
  
! 2023-07-10  Xi Ruoyao  <xry111@xry111.site>
  
! 	Backported from master:
! 	2023-07-10  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR tree-optimization/110557
! 	* tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern):
! 	Ensure the output sign-extended if necessary.
  
! 2023-07-08  Jonathan Wakely  <jwakely@redhat.com>
  
! 	PR c++/110595
! 	* doc/invoke.texi (Warning Options): Fix typo.
  
! 2023-07-07  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-07-06  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/110556
! 	* tree-ssa-tail-merge.cc (gimple_equal_p): Check
! 	assign code and all operands of non-stores.
  
! 2023-07-07  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-07-06  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/110515
! 	* tree-ssa-pre.cc (compute_avail): Make code dealing
! 	with hoisting loads with different alias-sets more
! 	robust.
  
! 2023-07-07  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/110392
! 	* gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
! 	Do early exits on true/false predicate only after normalization.
  
! 2023-07-07  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/110381
! 	* tree-vect-slp.cc (vect_optimize_slp_pass::start_choosing_layouts):
! 	Materialize permutes before fold-left reductions.
  
! 2023-07-07  Li Xu  <xuli1@eswincomputing.com>
  
! 	PR target/110560
! 	* config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): Fix bug.
  
! 2023-07-05  Michael Meissner  <meissner@linux.ibm.com>
  
! 	Backported from master:
! 	2023-06-23   Michael Meissner  <meissner@linux.ibm.com>
! 		    Aaron Sawdey   <acsawdey@linux.ibm.com>
  
! 	PR target/105325
! 	* config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): Fix problems that
! 	allowed prefixed lwa to be generated.
! 	* config/rs6000/fusion.md: Regenerate.
! 	* config/rs6000/predicates.md (ds_form_mem_operand): Delete.
! 	* config/rs6000/rs6000.md (prefixed attribute): Add support for load
! 	plus compare immediate fused insns.
! 	(maybe_prefixed): Likewise.
  
! 2023-07-05  Segher Boessenkool  <segher@kernel.crashing.org>
  
! 	Backported from master:
! 	2023-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
  
! 	* config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): New, rewritten and
! 	split out from...
! 	(gen_ld_cmpi_p10): ... this.
  
! 2023-07-05  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-07-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/110228
! 	* tree-ssa-ifcombine.cc (pass_tree_ifcombine::execute):
! 	Mark SSA may-undefs.
! 	(bb_no_side_effects_p): Check stmt uses for undefs.
  
! 2023-07-04  Lili Cui  <lili.cui@intel.com>
  
! 	* config/i386/i386.h: Add PTA_ENQCMD and PTA_UINTR to PTA_SIERRAFOREST.
! 	* doc/invoke.texi: Update new isa to march=sierraforest and grandridge.
  
! 2023-07-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gimple-fold.cc (fold_array_ctor_reference): Fix head comment.
! 	(fold_nonarray_ctor_reference): Likewise.  Specifically deal
! 	with integral bit-fields.
! 	(fold_ctor_reference): Make sure that the constructor uses the
! 	native storage order.
  
! 2023-07-03  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	Backported from master:
! 	2023-07-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR target/108743
! 	* config/darwin.opt: Add fconstant-cfstrings alias to
! 	mconstant-cfstrings.
! 	* doc/invoke.texi: Amend invocation descriptions to reflect
! 	that the fconstant-cfstrings is a target-option alias and to
! 	add the missing mconstant-cfstrings option description to the
! 	Darwin section.
  
! 2023-06-29  liuhongt  <hongtao.liu@intel.com>
  
! 	PR rtl-optimization/110237
! 	* config/i386/sse.md (<avx512>_store<mode>_mask): Refine with
! 	UNSPEC_MASKMOV.
! 	(maskstore<mode><avx512fmaskmodelower): Ditto.
! 	(*<avx512>_store<mode>_mask): New define_insn, it's renamed
! 	from original <avx512>_store<mode>_mask.
  
! 2023-06-29  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/110309
! 	* config/i386/sse.md (maskload<mode><avx512fmaskmodelower>):
! 	Refine pattern with UNSPEC_MASKLOAD.
! 	(maskload<mode><avx512fmaskmodelower>): Ditto.
! 	(*<avx512>_load<mode>_mask): Extend mode iterator to
! 	VI12HFBF_AVX512VL.
! 	(*<avx512>_load<mode>): Ditto.
  
! 2023-06-28  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	Backported from master:
! 	2023-06-26  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	* config/i386/i386-options.cc (ix86_valid_target_attribute_tree):
! 	Override tune_string with arch_string if tune_string is not
! 	explicitly specified.
  
! 2023-06-28  Thomas Schwinge  <thomas@codesourcery.com>
  
! 	Backported from master:
! 	2023-06-02  Thomas Schwinge  <thomas@codesourcery.com>
  
! 	PR testsuite/66005
! 	* doc/install.texi: Document (optional) Perl usage for parallel
! 	testing of libgomp.
  
! 2023-06-28  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386-features.cc (pass_insert_vzeroupper:gate):
! 	Move flag_expensive_optimizations && !optimize_size to ..
! 	* config/i386/i386-options.cc (ix86_option_override_internal):
! 	.. this, it makes -mvzeroupper independent of optimization
! 	level, but still keeps the behavior of architecture
! 	tuning(emit_vzeroupper) unchanged.
  
! 2023-06-28  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386.cc (ix86_invalid_conversion): New function.
! 	(TARGET_INVALID_CONVERSION): Define as
! 	ix86_invalid_conversion.
  
! 2023-06-27  Andrew Pinski  <apinski@marvell.com>
  
! 	Backported from master:
! 	2023-06-27  Andrew Pinski  <apinski@marvell.com>
  
! 	PR middle-end/110420
! 	PR middle-end/103979
! 	PR middle-end/98619
! 	* gimplify.cc (gimplify_asm_expr): Mark asm with labels as volatile.
  
! 2023-06-27  Martin Jambor  <mjambor@suse.cz>
  
! 	Backported from master:
! 	2023-06-27  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/110276
! 	* ipa-sra.cc (struct caller_issues): New field there_is_one.
! 	(check_for_caller_issues): Set it.
! 	(check_all_callers_for_issues): Check it.
  
! 2023-06-27  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	Backported from master:
! 	2023-06-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/110264
! 	* config/riscv/riscv-vsetvl.cc (insert_vsetvl): Fix bug.
  
! 2023-06-27  Andrew Pinski  <apinski@marvell.com>
  
! 	Backported from master:
! 	2023-06-27  Andrew Pinski  <apinski@marvell.com>
  
! 	* doc/extend.texi (__builtin_alloca_with_align_and_max): Fix
! 	defbuiltin usage.
  
! 2023-06-23  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/110298
! 	* tree-ssa-loop-ivcanon.cc (tree_unroll_loops_completely):
! 	Clear number of iterations info before cleaning up the CFG.
  
! 2023-06-23  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-20  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/110295
! 	* dwarf2out.cc (process_scope_var): Continue processing
! 	the decl after setting a parent in case the existing DIE
! 	was in limbo.
  
! 2023-06-23  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-06  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/110055
! 	* gimplify.cc (gimplify_target_expr): Do not emit
! 	CLOBBERs for variables which have static storage duration
! 	after gimplifying their initializers.
  
! 2023-06-23  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-05-31  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/109983
! 	PR tree-optimization/109143
! 	* tree-ssa-structalias.cc (struct topo_info): Remove.
! 	(init_topo_info): Likewise.
! 	(free_topo_info): Likewise.
! 	(compute_topo_order): Simplify API, put the component
! 	with ESCAPED last so it's processed first.
! 	(topo_visit): Adjust.
! 	(solve_graph): Likewise.
  
! 2023-06-20  Alex Coplan  <alex.coplan@arm.com>
  
! 	Backported from master:
! 	2023-06-07  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/110132
! 	* config/aarch64/aarch64-builtins.cc (aarch64_general_simulate_builtin):
! 	New. Use it ...
! 	(aarch64_init_ls64_builtins): ... here. Switch to declaring public ACLE
! 	names for builtins.
! 	(aarch64_general_init_builtins): Ensure we invoke the arm_acle.h
! 	setup if in_lto_p, just like we do for SVE.
! 	* config/aarch64/arm_acle.h: (__arm_ld64b): Delete.
! 	(__arm_st64b): Delete.
! 	(__arm_st64bv): Delete.
! 	(__arm_st64bv0): Delete.
  
! 2023-06-20  Alex Coplan  <alex.coplan@arm.com>
  
! 	Backported from master:
! 	2023-06-07  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/110100
! 	* config/aarch64/aarch64-builtins.cc (aarch64_expand_builtin_ls64):
! 	Use input operand for the destination address.
! 	* config/aarch64/aarch64.md (st64b): Fix constraint on address
! 	operand.
  
! 2023-06-20  Alex Coplan  <alex.coplan@arm.com>
  
! 	Backported from master:
! 	2023-06-07  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/110100
! 	* config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types):
! 	Replace eight consecutive spaces with tabs.
! 	(aarch64_init_ls64_builtins): Likewise.
! 	(aarch64_expand_builtin_ls64): Likewise.
! 	* config/aarch64/aarch64.md (ld64b): Likewise.
! 	(st64b): Likewise.
! 	(st64bv): Likewise
! 	(st64bv0): Likewise.
  
! 2023-06-20  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2023-06-12  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/109932
! 	* config/rs6000/rs6000-builtins.def (__builtin_pack_vector_int128,
! 	__builtin_unpack_vector_int128): Move from stanza power7 to vsx.
  
! 2023-06-20  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2023-06-12  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/110011
! 	* config/rs6000/rs6000.cc (output_toc): Use the mode of the 128-bit
! 	floating constant itself for real_to_target call.
  
! 2023-06-16  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* ira-costs.cc: (find_costs_and_classes): Constrain classes of pic
! 	offset table pseudo to a general reg subset.
  
! 2023-06-15  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	Backported from master:
! 	2023-06-15  Lulu Cheng  <chenglulu@loongson.cn>
! 		    Andrew Pinski  <apinski@marvell.com>
  
! 	PR target/110136
! 	* config/loongarch/loongarch.md: Modify the register constraints for template
! 	"jumptable" and "indirect_jump" from "r" to "e".
  
! 2023-06-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-06-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/i386/i386.cc (standard_sse_constant_opcode): Remove
! 	superfluous spaces around \t for vpcmpeqd.
  
! 2023-06-14  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/110227
! 	* config/i386/sse.md (mov<mode>_internal>): Use x instead of v
! 	for alternative 2 since there's no evex version for vpcmpeqd
! 	ymm, ymm, ymm.
  
! 2023-06-13  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-13  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): For
! 	.MASK_LOAD and friends set the size of the access to unknown.
  
! 2023-06-13  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-12  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-alias.cc (call_may_clobber_ref_p_1): For
! 	.MASK_STORE and friend set the size of the access to
! 	unknown.
  
! 2023-06-13  Alexandre Oliva  <oliva@adacore.com>
  
! 	Backported from master:
! 	2023-06-13  Alexandre Oliva  <oliva@adacore.com>
  
! 	* range-op-float.cc (frange_nextafter): Drop inline.
! 	(frelop_early_resolve): Add static.
! 	(frange_float): Likewise.
  
! 2023-06-12  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-12  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/110200
! 	* genmatch.cc (expr::gen_transform): Put braces around
! 	the if arm for the (convert ...) short-cut.
  
! 2023-06-10  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/109650
! 	PR target/92729
! 	Backport from 2023-05-10 master r14-1688.
! 	* config/avr/avr-passes.def (avr_pass_ifelse): Insert new pass.
! 	* config/avr/avr.cc (avr_pass_ifelse): New RTL pass.
! 	(avr_pass_data_ifelse): New pass_data for it.
! 	(make_avr_pass_ifelse, avr_redundant_compare, avr_cbranch_cost)
! 	(avr_canonicalize_comparison, avr_out_plus_set_ZN)
! 	(avr_out_cmp_ext): New functions.
! 	(compare_condtition): Make sure REG_CC dies in the branch insn.
! 	(avr_rtx_costs_1): Add computation of cbranch costs.
! 	(avr_adjust_insn_length) [ADJUST_LEN_ADD_SET_ZN, ADJUST_LEN_CMP_ZEXT]:
! 	[ADJUST_LEN_CMP_SEXT]Handle them.
! 	(TARGET_CANONICALIZE_COMPARISON): New define.
! 	(avr_simplify_comparison_p, compare_diff_p, avr_compare_pattern)
! 	(avr_reorg_remove_redundant_compare, avr_reorg): Remove functions.
! 	(TARGET_MACHINE_DEPENDENT_REORG): Remove define.
! 	* config/avr/avr-protos.h (avr_simplify_comparison_p): Remove proto.
! 	(make_avr_pass_ifelse, avr_out_plus_set_ZN, cc_reg_rtx)
! 	(avr_out_cmp_zext): New Protos
! 	* config/avr/avr.md (branch, difficult_branch): Don't split insns.
! 	(*cbranchhi.zero-extend.0", *cbranchhi.zero-extend.1")
! 	(*swapped_tst<mode>, *add.for.eqne.<mode>): New insns.
! 	(*cbranch<mode>4): Rename to cbranch<mode>4_insn.
! 	(define_peephole): Add dead_or_set_regno_p(insn,REG_CC) as needed.
! 	(define_deephole2): Add peep2_regno_dead_p(*,REG_CC) as needed.
! 	Add new RTL peepholes for decrement-and-branch and *swapped_tst<mode>.
! 	Rework signtest-and-branch peepholes for *sbrx_branch<mode>.
! 	(adjust_len) [add_set_ZN, cmp_zext]: New.
! 	(QIPSI): New mode iterator.
! 	(ALLs1, ALLs2, ALLs4, ALLs234): New mode iterators.
! 	(gelt): New code iterator.
! 	(gelt_eqne): New code attribute.
! 	(rvbranch, *rvbranch, difficult_rvbranch, *difficult_rvbranch)
! 	(branch_unspec, *negated_tst<mode>, *reversed_tst<mode>)
! 	(*cmpqi_sign_extend): Remove insns.
! 	(define_c_enum "unspec") [UNSPEC_IDENTITY]: Remove.
! 	* config/avr/avr-dimode.md (cbranch<mode>4): Canonicalize comparisons.
! 	* config/avr/predicates.md (scratch_or_d_register_operand): New.
! 	* config/avr/constraints.md (Yxx): New constraint.
  
! 2023-06-09  Andrew Pinski  <apinski@marvell.com>
  
! 	Backported from master:
! 	2023-06-09  Andrew Pinski  <apinski@marvell.com>
  
! 	PR tree-optimization/110165
! 	PR tree-optimization/110166
! 	* match.pd (zero_one_valued_p): Don't accept
! 	signed 1-bit integers.
  
! 2023-06-09  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-06-09  Richard Biener  <rguenther@suse.de>
  
! 	* match.pd (two conversions in a row): Use element_precision
! 	to DTRT for VECTOR_TYPE.
  
! 2023-06-09  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	Backported from master:
! 	2023-06-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR target/110044
! 	* config/rs6000/rs6000.cc (darwin_rs6000_special_round_type_align):
! 	Make sure that we do not have a cap on field alignment before altering
! 	the struct layout based on the type alignment of the first entry.
  
! 2023-06-09  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/110108
! 	* config/i386/i386.cc (ix86_gimple_fold_builtin): Explicitly
! 	view_convert_expr mask to signed type when folding pblendvb
! 	builtins.
  
! 2023-06-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
! 	Backported from master:
! 	2023-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
! 	PR target/109939
! 	* config/arm/arm-builtins.cc (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS): Use
! 	qualifier_none for the return operand.
  
! 2023-06-07  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
  
! 	Backported from master:
! 	2023-06-06  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
  
! 	PR target/106907
! 	* config/rs6000/rs6000.cc (vec_const_128bit_to_bytes): Remove
! 	duplicate expression.
  
! 2023-06-07  Alex Coplan  <alex.coplan@arm.com>
  
! 	Backported from master:
! 	2023-05-25  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/109800
! 	* config/arm/arm.md (movdf): Generate temporary pseudo in DImode
! 	instead of DFmode.
! 	* config/arm/vfp.md (no_literal_pool_df_immediate): Rather than punning an
! 	lvalue DFmode pseudo into DImode, use a DImode pseudo and pun it into
! 	DFmode as an rvalue.
  
! 2023-06-06  Andrew Pinski  <apinski@marvell.com>
  
! 	Backported from master:
! 	2023-06-05  Andrew Pinski  <apinski@marvell.com>
  
! 	PR bootstrap/110085
! 	* Makefile.in (clean): Remove the removing of
! 	MULTILIB_DIR/MULTILIB_OPTIONS directories.
  
! 2023-06-02  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/110088
! 	* config/avr/avr.md: Add an RTL peephole to optimize operations on
! 	non-LD_REGS after a move from LD_REGS.
! 	(piaop): New code iterator.
  
! 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
  
! 	Backported from master:
! 	2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
  
! 	PR target/109954
! 	* doc/invoke.texi (x86 Options): Fix description of -m32 option.
  
! 2023-05-30  Andreas Schwab  <schwab@suse.de>
  
! 	PR target/110036
! 	* config/riscv/riscv.cc (riscv_asan_shadow_offset): Update to
! 	match libsanitizer.
  
! 2023-05-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	Backported from master:
! 	2023-04-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/109547
! 	* config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): New function.
! 	(vector_insn_info::skip_avl_compatible_p): Ditto.
! 	(vector_insn_info::merge): Remove default value.
! 	(pass_vsetvl::compute_local_backward_infos): Ditto.
! 	(pass_vsetvl::cleanup_insns): Add local vsetvl elimination.
! 	* config/riscv/riscv-vsetvl.h: Ditto.
  
! 2023-05-29  Kito Cheng  <kito.cheng@sifive.com>
  
! 	Backported from master:
! 	2023-05-16  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc (riscv_compute_multilib):
! 	Fix wrong select_kind...
  
! 2023-05-29  Kito Cheng  <kito.cheng@sifive.com>
  
! 	Backported from master:
! 	2023-05-12  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi):
! 	Drop unused parameter.
! 	(riscv_select_multilib): Ditto.
! 	(riscv_compute_multilib): Update call site of
! 	riscv_select_multilib_by_abi and riscv_select_multilib_by_abi.
  
! 2023-05-29  Kito Cheng  <kito.cheng@sifive.com>
  
! 	Backported from master:
! 	2023-05-08  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi): New.
! 	(riscv_select_multilib): New.
! 	(riscv_compute_multilib): Extract logic to riscv_select_multilib and
! 	also handle select_by_abi.
! 	* config/riscv/elf.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Change it
! 	to select_by_abi_arch_cmodel from 1.
! 	* config/riscv/linux.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Define.
! 	* config/riscv/riscv-opts.h (enum riscv_multilib_select_kind): New.
  
! 2023-05-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	Backported from master:
! 	2023-05-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Fix vimuladd instruction bug.
  
! 2023-05-25  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/104327
! 	* config/avr/avr.cc (avr_can_inline_p): New static function.
! 	(TARGET_CAN_INLINE_P): Define to that function.
  
! 2023-05-25  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/82931
! 	* config/avr/avr.md (*movbitqi.0): Rename to *movbit<mode>.0-6.
! 	Handle any bit position and use mode QISI.
! 	* config/avr/avr.cc (avr_rtx_costs_1) [IOR]: Return a cost
! 	of 2 insns for bit-transfer of respective style.
  
! 2023-05-23  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_insn_cost): New static function.
! 	(TARGET_INSN_COST): Define to that function.
  
! 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* fold-const.cc (native_encode_initializer) <CONSTRUCTOR>: Apply the
! 	specific treatment for bit-fields only if they have an integral type
! 	and filter out non-integral bit-fields that do not start and end on
! 	a byte boundary.
  
! 2023-05-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-05-21  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109505
! 	* match.pd ((x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2),
! 	Combine successive equal operations with constants,
! 	(A +- CST1) +- CST2 -> A + CST3, (CST1 - A) +- CST2 -> CST3 - A,
! 	CST1 - (CST2 - A) -> CST3 + A): Use ! on ops with 2 CONSTANT_CLASS_P
! 	operands.
  
! 2023-05-22  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2023-05-17  Kewen Lin  <linkw@linux.ibm.com>
  
! 	* tree-vect-loop.cc (vect_analyze_loop_1): Don't retry analysis with
! 	suggested unroll factor once the previous analysis fails.
  
! 2023-05-20  Triffid Hunter  <triffid.hunter@gmail.com>
  
! 	PR target/105753
! 	Backport from 2023-05-20 https://gcc.gnu.org/r14-1016
! 	* config/avr/avr.md (divmodpsi, udivmodpsi, divmodsi, udivmodsi):
! 	Remove superfluous "parallel" in insn pattern.
! 	([u]divmod<mode>4): Tidy code.  Use gcc_unreachable() instead of
! 	printing error text to assembly.
  
! 2023-05-19  Andreas Schwab  <schwab@suse.de>
  
! 	* config/riscv/linux.h (LIB_SPEC): Don't redefine.
  
! 2023-05-18  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
  
! 	* config/arm/arm_mve.h: (__ARM_mve_typeid): Add more pointer types.
! 	(__ARM_mve_coerce1): Remove.
! 	(__ARM_mve_coerce2): Remove.
! 	(__ARM_mve_coerce3): Remove.
! 	(__ARM_mve_coerce_i_scalar): New.
! 	(__ARM_mve_coerce_s8_ptr): New.
! 	(__ARM_mve_coerce_u8_ptr): New.
! 	(__ARM_mve_coerce_s16_ptr): New.
! 	(__ARM_mve_coerce_u16_ptr): New.
! 	(__ARM_mve_coerce_s32_ptr): New.
! 	(__ARM_mve_coerce_u32_ptr): New.
! 	(__ARM_mve_coerce_s64_ptr): New.
! 	(__ARM_mve_coerce_u64_ptr): New.
! 	(__ARM_mve_coerce_f_scalar): New.
! 	(__ARM_mve_coerce_f16_ptr): New.
! 	(__ARM_mve_coerce_f32_ptr): New.
! 	(__arm_vst4q): Change _coerce_ overloads.
! 	(__arm_vbicq): Change _coerce_ overloads.
! 	(__arm_vmulq): Change _coerce_ overloads.
! 	(__arm_vcmpeqq): Change _coerce_ overloads.
! 	(__arm_vcmpneq): Change _coerce_ overloads.
! 	(__arm_vmaxnmavq): Change _coerce_ overloads.
! 	(__arm_vmaxnmvq): Change _coerce_ overloads.
! 	(__arm_vminnmavq): Change _coerce_ overloads.
! 	(__arm_vsubq): Change _coerce_ overloads.
! 	(__arm_vminnmvq): Change _coerce_ overloads.
! 	(__arm_vrshlq): Change _coerce_ overloads.
! 	(__arm_vqsubq): Change _coerce_ overloads.
! 	(__arm_vqdmulltq): Change _coerce_ overloads.
! 	(__arm_vqdmullbq): Change _coerce_ overloads.
! 	(__arm_vqdmulhq): Change _coerce_ overloads.
! 	(__arm_vqaddq): Change _coerce_ overloads.
! 	(__arm_vhaddq): Change _coerce_ overloads.
! 	(__arm_vhsubq): Change _coerce_ overloads.
! 	(__arm_vqdmlashq): Change _coerce_ overloads.
! 	(__arm_vqrdmlahq): Change _coerce_ overloads.
! 	(__arm_vmlasq): Change _coerce_ overloads.
! 	(__arm_vqdmlahq): Change _coerce_ overloads.
! 	(__arm_vmaxnmavq_p): Change _coerce_ overloads.
! 	(__arm_vmaxnmvq_p): Change _coerce_ overloads.
! 	(__arm_vminnmavq_p): Change _coerce_ overloads.
! 	(__arm_vminnmvq_p): Change _coerce_ overloads.
! 	(__arm_vfmasq_m): Change _coerce_ overloads.
! 	(__arm_vld1q): Change _coerce_ overloads.
! 	(__arm_vld1q_z): Change _coerce_ overloads.
! 	(__arm_vld2q): Change _coerce_ overloads.
! 	(__arm_vld4q): Change _coerce_ overloads.
! 	(__arm_vldrhq_gather_offset): Change _coerce_ overloads.
! 	(__arm_vldrhq_gather_offset_z): Change _coerce_ overloads.
! 	(__arm_vldrhq_gather_shifted_offset): Change _coerce_ overloads.
! 	(__arm_vldrhq_gather_shifted_offset_z): Change _coerce_ overloads.
! 	(__arm_vldrwq_gather_offset): Change _coerce_ overloads.
! 	(__arm_vldrwq_gather_offset_z): Change _coerce_ overloads.
! 	(__arm_vldrwq_gather_shifted_offset): Change _coerce_ overloads.
! 	(__arm_vldrwq_gather_shifted_offset_z): Change _coerce_ overloads.
! 	(__arm_vst1q_p): Change _coerce_ overloads.
! 	(__arm_vst2q): Change _coerce_ overloads.
! 	(__arm_vst1q): Change _coerce_ overloads.
! 	(__arm_vstrhq): Change _coerce_ overloads.
! 	(__arm_vstrhq_p): Change _coerce_ overloads.
! 	(__arm_vstrhq_scatter_offset_p): Change _coerce_ overloads.
! 	(__arm_vstrhq_scatter_offset): Change _coerce_ overloads.
! 	(__arm_vstrhq_scatter_shifted_offset_p): Change _coerce_ overloads.
! 	(__arm_vstrhq_scatter_shifted_offset): Change _coerce_ overloads.
! 	(__arm_vstrwq_p): Change _coerce_ overloads.
! 	(__arm_vstrwq): Change _coerce_ overloads.
! 	(__arm_vstrwq_scatter_offset): Change _coerce_ overloads.
! 	(__arm_vstrwq_scatter_offset_p): Change _coerce_ overloads.
! 	(__arm_vstrwq_scatter_shifted_offset): Change _coerce_ overloads.
! 	(__arm_vstrwq_scatter_shifted_offset_p): Change _coerce_ overloads.
! 	(__arm_vsetq_lane): Change _coerce_ overloads.
! 	(__arm_vcmpneq_m): Change _coerce_ overloads.
! 	(__arm_vldrbq_gather_offset): Change _coerce_ overloads.
! 	(__arm_vdwdupq_x_u8): Change _coerce_ overloads.
! 	(__arm_vdwdupq_x_u16): Change _coerce_ overloads.
! 	(__arm_vdwdupq_x_u32): Change _coerce_ overloads.
! 	(__arm_viwdupq_x_u8): Change _coerce_ overloads.
! 	(__arm_viwdupq_x_u16): Change _coerce_ overloads.
! 	(__arm_viwdupq_x_u32): Change _coerce_ overloads.
! 	(__arm_vidupq_x_u8): Change _coerce_ overloads.
! 	(__arm_vddupq_x_u8): Change _coerce_ overloads.
! 	(__arm_vidupq_x_u16): Change _coerce_ overloads.
! 	(__arm_vddupq_x_u16): Change _coerce_ overloads.
! 	(__arm_vidupq_x_u32): Change _coerce_ overloads.
! 	(__arm_vddupq_x_u32): Change _coerce_ overloads.
! 	(__arm_vhaddq_x): Change _coerce_ overloads.
! 	(__arm_vhsubq_x): Change _coerce_ overloads.
! 	(__arm_vldrdq_gather_offset): Change _coerce_ overloads.
! 	(__arm_vldrdq_gather_offset_z): Change _coerce_ overloads.
! 	(__arm_vldrdq_gather_shifted_offset): Change _coerce_ overloads.
! 	(__arm_vldrdq_gather_shifted_offset_z): Change _coerce_ overloads.
! 	(__arm_vldrbq_gather_offset_z): Change _coerce_ overloads.
! 	(__arm_vqrdmlahq_m): Change _coerce_ overloads.
! 	(__arm_vqrdmlashq_m): Change _coerce_ overloads.
! 	(__arm_vqdmlashq_m): Change _coerce_ overloads.
! 	(__arm_vmlaldavaxq_p): Change _coerce_ overloads.
! 	(__arm_vmlasq_m): Change _coerce_ overloads.
! 	(__arm_vqdmulhq_m): Change _coerce_ overloads.
! 	(__arm_vqdmulltq_m): Change _coerce_ overloads.
! 	(__arm_vidupq_u16): Change _coerce_ overloads.
! 	(__arm_vidupq_u32): Change _coerce_ overloads.
! 	(__arm_vidupq_u8): Change _coerce_ overloads.
! 	(__arm_vddupq_u16): Change _coerce_ overloads.
! 	(__arm_vddupq_u32): Change _coerce_ overloads.
! 	(__arm_vddupq_u8): Change _coerce_ overloads.
! 	(__arm_viwdupq_m): Change _coerce_ overloads.
! 	(__arm_viwdupq_u16): Change _coerce_ overloads.
! 	(__arm_viwdupq_u32): Change _coerce_ overloads.
! 	(__arm_viwdupq_u8): Change _coerce_ overloads.
! 	(__arm_vdwdupq_m): Change _coerce_ overloads.
! 	(__arm_vdwdupq_u16): Change _coerce_ overloads.
! 	(__arm_vdwdupq_u32): Change _coerce_ overloads.
! 	(__arm_vdwdupq_u8): Change _coerce_ overloads.
! 	(__arm_vaddlvaq): Change _coerce_ overloads.
! 	(__arm_vaddlvaq_p): Change _coerce_ overloads.
! 	(__arm_vaddvaq): Change _coerce_ overloads.
! 	(__arm_vaddvaq_p): Change _coerce_ overloads.
! 	(__arm_vcmphiq_m): Change _coerce_ overloads.
! 	(__arm_vmladavaq_p): Change _coerce_ overloads.
! 	(__arm_vmladavaxq): Change _coerce_ overloads.
! 	(__arm_vmlaldavaxq): Change _coerce_ overloads.
! 	(__arm_vstrbq): Change _coerce_ overloads.
! 	(__arm_vstrbq_p): Change _coerce_ overloads.
! 	(__arm_vrmlaldavhaq_p): Change _coerce_ overloads.
! 	(__arm_vstrbq_scatter_offset): Change _coerce_ overloads.
! 	(__arm_vstrbq_scatter_offset_p): Change _coerce_ overloads.
! 	(__arm_vstrdq_scatter_offset_p): Change _coerce_ overloads.
! 	(__arm_vstrdq_scatter_offset): Change _coerce_ overloads.
! 	(__arm_vstrdq_scatter_shifted_offset_p): Change _coerce_ overloads.
! 	(__arm_vstrdq_scatter_shifted_offset): Change _coerce_ overloads.
  
! 2023-05-18  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
  
! 	* config/arm/arm_mve.h (__arm_vbicq): Change coerce on
! 	scalar constant.
! 	(__arm_vmvnq_m): Likewise.
  
! 2023-05-18  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
  
! 	* config/arm/arm_mve.h (__arm_vorrq): Add _n variant.
  
! 2023-05-18  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
  
! 	* config/arm/arm_mve.h (__arm_vadcq_s32): Fix arithmetic.
! 	(__arm_vadcq_u32): Likewise.
! 	(__arm_vadcq_m_s32): Likewise.
! 	(__arm_vadcq_m_u32): Likewise.
! 	(__arm_vsbcq_s32): Likewise.
! 	(__arm_vsbcq_u32): Likewise.
! 	(__arm_vsbcq_m_s32): Likewise.
! 	(__arm_vsbcq_m_u32): Likewise.
! 	* config/arm/mve.md (get_fpscr_nzcvqc): Make unspec_volatile.
  
! 2023-05-18  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrev64q_f<mode>)
! 	(mve_vrev32q_fv8hf, mve_vcvttq_f32_f16v4sf)
! 	(mve_vcvtbq_f32_f16v4sf, mve_vcvtq_to_f_<supf><mode>)
! 	(mve_vrev64q_<supf><mode>, mve_vcvtq_from_f_<supf><mode>)
! 	(mve_vmovltq_<supf><mode>, mve_vmovlbq_<supf><mode>)
! 	(mve_vcvtpq_<supf><mode>, mve_vcvtnq_<supf><mode>)
! 	(mve_vcvtmq_<supf><mode>, mve_vcvtaq_<supf><mode>)
! 	(mve_vmvnq_n_<supf><mode>, mve_vrev16q_<supf>v16qi)
! 	(mve_vctp<MVE_vctp>q<MVE_vpred>, mve_vbrsrq_n_f<mode>)
! 	(mve_vbrsrq_n_<supf><mode>, mve_vandq_f<mode>, mve_vbicq_f<mode>)
! 	(mve_vbicq_n_<supf><mode>, mve_vctp<MVE_vctp>q_m<MVE_vpred>)
! 	(mve_vcvtbq_f16_f32v8hf, mve_vcvttq_f16_f32v8hf)
! 	(mve_veorq_f<mode>, mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
! 	(mve_vmlsldavxq_s<mode>, mve_vornq_f<mode>, mve_vorrq_f<mode>)
! 	(mve_vrmlaldavhxq_sv4si, mve_vbicq_m_n_<supf><mode>)
! 	(mve_vcvtq_m_to_f_<supf><mode>, mve_vshlcq_<supf><mode>)
! 	(mve_vmvnq_m_<supf><mode>, mve_vpselq_<supf><mode>)
! 	(mve_vcvtbq_m_f16_f32v8hf, mve_vcvtbq_m_f32_f16v4sf)
! 	(mve_vcvttq_m_f16_f32v8hf, mve_vcvttq_m_f32_f16v4sf)
! 	(mve_vmlaldavq_p_<supf><mode>, mve_vmlsldavaq_s<mode>)
! 	(mve_vmlsldavaxq_s<mode>, mve_vmlsldavq_p_s<mode>)
! 	(mve_vmlsldavxq_p_s<mode>, mve_vmvnq_m_n_<supf><mode>)
! 	(mve_vorrq_m_n_<supf><mode>, mve_vpselq_f<mode>)
! 	(mve_vrev32q_m_fv8hf, mve_vrev32q_m_<supf><mode>)
! 	(mve_vrev64q_m_f<mode>, mve_vrmlaldavhaxq_sv4si)
! 	(mve_vrmlaldavhxq_p_sv4si, mve_vrmlsldavhaxq_sv4si)
! 	(mve_vrmlsldavhq_p_sv4si, mve_vrmlsldavhxq_p_sv4si)
! 	(mve_vrev16q_m_<supf>v16qi, mve_vrmlaldavhq_p_<supf>v4si)
! 	(mve_vrmlsldavhaq_sv4si, mve_vandq_m_<supf><mode>)
! 	(mve_vbicq_m_<supf><mode>, mve_veorq_m_<supf><mode>)
! 	(mve_vornq_m_<supf><mode>, mve_vorrq_m_<supf><mode>)
! 	(mve_vandq_m_f<mode>, mve_vbicq_m_f<mode>, mve_veorq_m_f<mode>)
! 	(mve_vornq_m_f<mode>, mve_vorrq_m_f<mode>)
! 	(mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn)
! 	(mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn)
! 	(mve_vstrdq_scatter_base_wb_p_<supf>v2di) : Fix spacing and
! 	capitalization in the emitted asm.
  
! 2023-05-18  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/constraints.md (mve_vldrd_immediate): Move it to
! 	predicates.md.
! 	(Ri): Move constraint definition from predicates.md.
! 	(Rl): Define new constraint.
! 	* config/arm/mve.md (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Add
! 	missing constraint.
! 	(mve_vstrwq_scatter_base_wb_p_fv4sf): Add missing Up constraint
! 	for op 1, use mve_vstrw_immediate predicate and Rl constraint for
! 	op 2. Fix asm output spacing.
! 	(mve_vstrdq_scatter_base_wb_p_<supf>v2di): Add missing constraint.
! 	* config/arm/predicates.md (Ri) Move constraint to constraints.md
! 	(mve_vldrd_immediate): Move it from
! 	constraints.md.
! 	(mve_vstrw_immediate): New predicate.
  
! 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-05-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/109884
! 	* config/i386/i386-builtin-types.def (FLOAT128): Use
! 	float128t_type_node rather than float128_type_node.
  
! 2023-05-16  Patrick O'Neill  <patrick@rivosinc.com>
  
! 	PR target/104338
! 	* config/riscv/riscv-protos.h: Add helper function stubs.
! 	* config/riscv/riscv.cc: Add helper functions for subword masking.
! 	* config/riscv/riscv.opt: Add command-line flags
! 	-minline-atomics and -mno-inline-atomics.
! 	* config/riscv/sync.md: Add masking logic and inline asm for
! 	fetch_and_op, fetch_and_nand, CAS, and exchange ops.
! 	* doc/invoke.texi: Add blurb regarding new command-line flags
! 	-minline-atomics and -mno-inline-atomics.
  
! 2023-05-16  Tobias Burnus  <tobias@codesourcery.com>
  
! 	Backported from master:
! 	2023-05-12  Tobias Burnus  <tobias@codesourcery.com>
  
! 	PR libstdc++/109816
! 	* lto-cgraph.cc (output_symtab): Guard lto_output_toplevel_asms by
! 	'!lto_stream_offload_p'.
  
! 2023-05-11  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/109661
! 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Remove
! 	assertion.
! 	(aarch64_layout_arg): Likewise.
  
! 2023-05-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-05-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109778
! 	* wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on
! 	wi::zext (x, width) rather than x if width != precision, rather
! 	than using wi::zext (right, width) after the shift.
! 	* tree-ssa-ccp.cc (bit_value_binop): Call wi::ext on the results
! 	of wi::lrotate or wi::rrotate.
  
! 2023-05-09  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2023-04-26  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/108758
! 	* config/rs6000/rs6000-builtins.def
! 	(__builtin_vsx_scalar_cmp_exp_qp_eq, __builtin_vsx_scalar_cmp_exp_qp_gt
! 	__builtin_vsx_scalar_cmp_exp_qp_lt,
! 	__builtin_vsx_scalar_cmp_exp_qp_unordered): Move from stanza ieee128-hw
! 	to power9-vector.
  
! 2023-05-09  Kewen Lin  <linkw@linux.ibm.com>
  
! 	Backported from master:
! 	2023-04-26  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/109069
! 	* config/rs6000/altivec.md (sldoi_to_mov<mode>): Replace predicate
! 	easy_vector_constant with const_vector_each_byte_same, add
! 	handlings in preparation for !easy_vector_constant, and update
! 	VECTOR_UNIT_ALTIVEC_OR_VSX_P with VECTOR_MEM_ALTIVEC_OR_VSX_P.
! 	* config/rs6000/predicates.md (const_vector_each_byte_same): New
! 	predicate.
  
! 2023-05-08  Tobias Burnus  <tobias@codesourcery.com>
  
! 	Backported from master:
! 	2023-05-05  Tobias Burnus  <tobias@codesourcery.com>
! 		    Thomas Schwinge  <thomas@codesourcery.com>
  
! 	PR libgomp/108098
! 	* config/nvptx/mkoffload.cc (process): Emit dummy procedure
! 	alongside reverse-offload function table to prevent NULL values
! 	of the function addresses.
  
! 2023-05-07  Andrew Pinski  <apinski@marvell.com>
  
! 	Backported from master:
! 	2023-05-07  Andrew Pinski  <apinski@marvell.com>
  
! 	PR target/109762
! 	* config/aarch64/aarch64-builtins.cc (aarch64_simd_switcher::aarch64_simd_switcher):
! 	Change argument type to aarch64_feature_flags.
! 	* config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Change
! 	constructor argument type to aarch64_feature_flags.
! 	Change m_old_asm_isa_flags to be aarch64_feature_flags.
  
! 2023-05-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-05-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/109676
! 	* config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
! 	If src is REG, change its mode to V1TImode and call fix_debug_reg_uses
! 	for it only if it still has TImode.  Don't decide whether to call
! 	fix_debug_reg_uses based on whether SRC is ever set or not.
  
! 2023-05-04  Kito Cheng  <kito.cheng@sifive.com>
  
! 	Backported from master:
! 	2023-05-03  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* doc/md.texi (RISC-V): Add vr, vm, vd constarint.
  
! 2023-05-04  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	Backported from master:
! 	2023-04-20  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
! 		    kito-cheng  <kito.cheng@sifive.com>
  
! 	PR target/109535
! 	* config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
! 	(pass_vsetvl::cleanup_insns): Fix bug.
  
! 2023-05-02  Marek Polacek  <polacek@redhat.com>
  
! 	PR c++/109642
! 	PR c++/109640
! 	PR c++/109671
! 	* doc/invoke.texi: Document that -Wdangling-reference is
! 	enabled by -Wextra.
  
! 2023-04-28  Andrew Stubbs  <ams@codesourcery.com>
  
! 	Backported from master:
! 	2023-04-27  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/gcn-valu.md (cmul<conj_op><mode>3): Use gcn_gen_undef.
! 	(cml<addsub_as><mode>4): Likewise.
! 	(vec_addsub<mode>3): Likewise.
! 	(cadd<rot><mode>3): Likewise.
! 	(vec_fmaddsub<mode>4): Likewise.
! 	(vec_fmsubadd<mode>4): Likewise, and use sub for the odd lanes.
  
! 2023-04-26  Andrew Stubbs  <ams@codesourcery.com>
  
! 	Backported from master:
! 	2023-04-20  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes.
! 	(ldexp<mode>3): Delete.
! 	(ldexp<mode>3<exec>): Change "B" to "A".
  
! 2023-04-26  Andrew Stubbs  <ams@codesourcery.com>
  
! 	Backported from master:
! 	2023-04-18  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/gcn-valu.md (SV_SFDF): New iterator.
! 	(SV_FP): New iterator.
! 	(scalar_mode, SCALAR_MODE): Add identity mappings for scalar modes.
! 	(recip<mode>2): Unify the two patterns using SV_FP.
! 	(div_scale<mode><exec_vcc>): New insn.
! 	(div_fmas<mode><exec>): New insn.
! 	(div_fixup<mode><exec>): New insn.
! 	(div<mode>3): Unify the two expanders and rewrite using hardfp.
! 	* config/gcn/gcn.cc (gcn_md_reorg): Support "vccwait" attribute.
! 	* config/gcn/gcn.md (unspec): Add UNSPEC_DIV_SCALE, UNSPEC_DIV_FMAS,
! 	and UNSPEC_DIV_FIXUP.
! 	(vccwait): New attribute.
  
! 2023-04-26  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-04-25  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109609
! 	* attr-fnspec.h (arg_max_access_size_given_by_arg_p):
! 	Clarify semantics.
! 	* tree-ssa-alias.cc (check_fnspec): Correctly interpret
! 	the size given by arg_max_access_size_given_by_arg_p as
! 	maximum, not exact, size.
  
! 2023-04-26  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-04-25  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/109585
! 	* tree-ssa-alias.cc (aliasing_component_refs_p): Fix typo.
  
! 2023-04-26  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-04-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109573
! 	* tree-vect-loop.cc (vectorizable_live_operation): Allow
! 	unhandled SSA copy as well.  Demote assert to checking only.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
! 2023-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/109566
! 	* config/rs6000/rs6000.cc (rs6000_is_valid_rotate_dot_mask): For
! 	!TARGET_64BIT, don't return true if UINTVAL (mask) << (63 - nb)
! 	is larger than signed int maximum.
  
! 2023-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* doc/install.texi: Consistently use Solaris rather than Solaris 2.
! 	Remove explicit Solaris 11 references.
! 	Markup fixes.
! 	(Options specification, --with-gnu-as): as and gas always differ
! 	on Solaris.
! 	Remove /usr/ccs/bin reference.
! 	(Installing GCC: Binaries, Solaris (SPARC, Intel)): Remove.
! 	(i?86-*-solaris2*): Merge assembler, linker recommendations ...
! 	(*-*-solaris2*): ... here.
! 	Update bundled GCC versions.
! 	Don't refer to pre-built binaries.
! 	Remove /bin/sh warning.
! 	Update assembler, linker recommendations.
! 	Document GNAT bootstrap compiler.
! 	(sparc-sun-solaris2*): Remove non-UltraSPARC reference.
! 	(sparc64-*-solaris2*): Move content...
! 	(sparcv9-*-solaris2*): ...here.
! 	Add GDC for 64-bit bootstrap compilers.
  
! 2023-04-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-04-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109583
! 	* match.pd (fneg/fadd simplify): Don't call related_vector_mode
! 	if vec_mode is not VECTOR_MODE_P.
  
! 2023-04-21  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	Backported from master:
! 	2023-04-18  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* doc/extend.texi: Add section for LoongArch Base Built-in functions.
  
! 2023-04-21  Andrew MacLeod  <amacleod@redhat.com>
  
! 	Backported from master:
! 	2023-04-20  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/109564
! 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore
! 	UNDEFINED range names when deciding if all PHI arguments are the same,
  
! 2023-04-20  Alejandro Colomar  <alx.manpages@gmail.com>
  
! 	* doc/extend.texi (Common Function Attributes): Remove duplicate
! 	word.
  
! 2023-04-19  Christophe Lyon  <christophe.lyon@arm.com>
  
! 	Backported from master:
! 	2023-04-19  Christophe Lyon  <christophe.lyon@arm.com>
  
! 	* doc/install.texi (enable-decimal-float): Add AArch64.
  
! 2023-04-18  Kito Cheng  <kito.cheng@sifive.com>
  
! 	Backported from master:
! 	2023-04-18  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* doc/extend.texi (Target Builtins): Add RISC-V Vector
! 	Intrinsics.
! 	(RISC-V Vector Intrinsics): Document GCC implemented which
! 	version of RISC-V vector intrinsics and its reference.
  
! 2023-04-18  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2023-04-18  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109539
! 	* gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
! 	Re-implement pointer relatedness for PHIs.
  
! 2023-04-17  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/107769
! 	PR ipa/109318
! 	* cgraph.h (symtab_node::find_reference): Add parameter use_type.
! 	* ipa-prop.h (ipa_pass_through_data): New flag refdesc_decremented.
! 	(ipa_zap_jf_refdesc): New function.
! 	(ipa_get_jf_pass_through_refdesc_decremented): Likewise.
! 	(ipa_set_jf_pass_through_refdesc_decremented): Likewise.
! 	* ipa-cp.cc (ipcp_discover_new_direct_edges): Provide a value for
! 	the new parameter of find_reference.
! 	(adjust_references_in_caller): Likewise. Make sure the constant jump
! 	function is not used to decrement a refdec counter again.  Only
! 	decrement refdesc counters when the pass_through jump function allows
! 	it.  Added a detailed dump when decrementing refdesc counters.
! 	* ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Dump new flag.
! 	(ipa_set_jf_simple_pass_through): Initialize the new flag.
! 	(ipa_set_jf_unary_pass_through): Likewise.
! 	(ipa_set_jf_arith_pass_through): Likewise.
! 	(remove_described_reference): Provide a value for the new parameter of
! 	find_reference.
! 	(update_jump_functions_after_inlining): Zap refdesc of new jfunc if
! 	the previous pass_through had a flag mandating that we do so.
! 	(propagate_controlled_uses): Likewise.  Only decrement refdesc
! 	counters when the pass_through jump function allows it.
! 	(ipa_edge_args_sum_t::duplicate): Provide a value for the new
! 	parameter of find_reference.
! 	(ipa_write_jump_function): Assert the new flag does not have to be
! 	streamed.
! 	* symtab.cc (symtab_node::find_reference): Add parameter use_type, use
! 	it in searching.
  
! 2023-04-17  Philipp Tomsich  <philipp.tomsich@vrull.eu>
! 	    Di Zhao  <di.zhao@amperecomputing.com>
  
! 	* config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
! 	Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
! 	* config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
! 	Check for the above tuning option when processing loads.
  
! 2023-04-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109524
! 	* tree-vrp.cc (remove_unreachable::m_list): Change to a
! 	vector of pairs of block indices.
! 	(remove_unreachable::maybe_register_block): Adjust.
! 	(remove_unreachable::remove_and_update_globals): Likewise.
! 	Deal with removed blocks.
  
! 2023-04-16  Jeff Law  <jlaw@ventanamicro>
  
! 	PR target/109508
! 	* config/riscv/riscv.cc (riscv_expand_conditional_move): For
! 	TARGET_SFB_ALU, force the true arm into a register.
  
! 2023-04-15  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR target/104989
! 	* config/pa/pa-protos.h (pa_function_arg_size): Update prototype.
! 	* config/pa/pa.cc (pa_function_arg): Return NULL_RTX if argument
! 	size is zero.
! 	(pa_arg_partial_bytes): Don't call pa_function_arg_size twice.
! 	(pa_function_arg_size): Change return type to int.  Return zero
! 	for arguments larger than 1 GB.  Update comments.
  
! 2023-04-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109154
! 	* tree-if-conv.cc (predicate_scalar_phi): For complex PHIs, emit just
! 	args_len - 1 COND_EXPRs rather than args_len.  Formatting fix.
  
! 2023-04-15  Jason Merrill  <jason@redhat.com>
  
! 	PR c++/109514
! 	* gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
! 	Overhaul lhs_ref.ref analysis.
  
! 2023-04-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109502
! 	* tree-vect-stmts.cc (vectorizable_assignment): Fix
! 	check for conversion between mask and non-mask types.
  
! 2023-04-14  Jeff Law  <jlaw@ventanamicro.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/108947
! 	PR target/109040
! 	* combine.cc (simplify_and_const_int_1): Compute nonzero_bits in
! 	word_mode rather than mode if WORD_REGISTER_OPERATIONS and mode is
! 	smaller than word_mode.
! 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
! 	<case AND>: Likewise.
  
! 2023-04-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	* loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
! 	of GEN_INT.
  
! 2023-04-13  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/108139
! 	PR tree-optimization/109462
! 	* gimple-range-cache.cc (ranger_cache::fill_block_cache): Remove
! 	equivalency check for PHI nodes.
! 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Ensure def
! 	does not dominate single-arg equivalency edges.
  
! 2023-04-13  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/108910
! 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
! 	not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
  
! 2023-04-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109491
! 	* tree-ssa-sccvn.cc (expressions_equal_p): Restore the
! 	NULL operands test.
  
! 2023-04-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/109479
! 	* config/riscv/riscv-vector-builtins-types.def (vint8mf8_t): Fix predicate.
! 	(vint16mf4_t): Ditto.
! 	(vint32mf2_t): Ditto.
! 	(vint64m1_t): Ditto.
! 	(vint64m2_t): Ditto.
! 	(vint64m4_t): Ditto.
! 	(vint64m8_t): Ditto.
! 	(vuint8mf8_t): Ditto.
! 	(vuint16mf4_t): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	(vfloat32mf2_t): Ditto.
! 	(vbool64_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (register_builtin_type): Add comments.
! 	(register_vector_type): Ditto.
! 	(check_required_extensions): Fix condition.
! 	* config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ZVE64): Remove it.
! 	(RVV_REQUIRE_ELEN_64): New define.
! 	(RVV_REQUIRE_MIN_VLEN_64): Ditto.
! 	* config/riscv/riscv-vector-switch.def (TARGET_VECTOR_FP32): Remove it.
! 	(TARGET_VECTOR_FP64): Ditto.
! 	(ENTRY): Fix predicate.
! 	* config/riscv/vector-iterators.md: Fix predicate.
  
! 2023-04-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109410
! 	* tree-ssa-reassoc.cc (build_and_add_sum): Split edge from entry
! 	block if first statement of the function is a call to returns_twice
! 	function.
  
! 2023-04-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/109458
! 	* config/i386/i386.cc: Include rtl-error.h.
! 	(ix86_print_operand): For z modifier warning, use warning_for_asm
! 	if this_is_asm_operands.  For Z modifier errors, use %c and code
! 	instead of hardcoded Z.
  
! 2023-04-12  Costas Argyris  <costas.argyris@gmail.com>
  
! 	* config/i386/x-mingw32-utf8: Remove extrataneous $@
  
! 2023-04-12  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/109462
! 	* gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't
! 	check for equivalences if NAME is a phi node.
  
! 2023-04-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109473
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
! 	Convert scalar result to the computation type before performing
! 	the reduction adjustment.
  
! 2023-04-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109469
! 	* tree-vect-slp.cc (vect_slp_function): Skip region starts with
! 	a returns-twice call.
  
! 2023-04-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109434
! 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly
! 	handle possibly throwing calls when processing the LHS
! 	and may-defs are not OK.
  
! 2023-04-11  Lin Sinan  <mynameisxiaou@gmail.com>
  
! 	* config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
! 	predicate to avoid splitting arith constants.
  
! 2023-04-11  Yanzhang Wang  <yanzhang.wang@intel.com>
! 	    Pan Li  <pan2.li@intel.com>
! 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
! 	    Kito Cheng  <kito.cheng@sifive.com>
  
! 	PR target/109104
! 	* config/riscv/riscv-protos.h (emit_hard_vlmax_vsetvl): New.
! 	* config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): New.
! 	(emit_vlmax_vsetvl): Use emit_hard_vlmax_vsetvl.
! 	* config/riscv/riscv.cc (vector_zero_call_used_regs): New.
! 	(riscv_zero_call_used_regs): New.
! 	(TARGET_ZERO_CALL_USED_REGS): New.
  
! 2023-04-11  Martin Liska  <mliska@suse.cz>
  
! 	PR driver/108241
! 	* opts.cc (finish_options): Drop also
! 	x_flag_var_tracking_assignments.
  
! 2023-04-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	PR tree-optimization/108888
! 	* tree-if-conv.cc (predicate_statements): Fix gimple call check.
  
! 2023-04-11  Haochen Gui  <guihaoc@gcc.gnu.org>
  
! 	PR target/108812
! 	* config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
! 	(vsx_sign_extend_v16qi_<mode>): ... this.
! 	(vsx_sign_extend_hi_<mode>): Rename to...
! 	(vsx_sign_extend_v8hi_<mode>): ... this.
! 	(vsx_sign_extend_si_v2di): Rename to...
! 	(vsx_sign_extend_v4si_v2di): ... this.
! 	(vsignextend_qi_<mode>): Remove.
! 	(vsignextend_hi_<mode>): Remove.
! 	(vsignextend_si_v2di): Remove.
! 	(vsignextend_v2di_v1ti): Remove.
! 	(*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
! 	gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
! 	with gen_vsx_sign_extend_v16qi_v4si.
! 	* config/rs6000/rs6000.md (split for DI constant generation):
! 	Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
! 	(split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
! 	with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
! 	with gen_vsx_sign_extend_v16qi_si.
! 	* config/rs6000/rs6000-builtins.def (__builtin_altivec_vsignextsb2d):
! 	Set bif-pattern to vsx_sign_extend_v16qi_v2di.
! 	(__builtin_altivec_vsignextsb2w): Set bif-pattern to
! 	vsx_sign_extend_v16qi_v4si.
! 	(__builtin_altivec_visgnextsh2d): Set bif-pattern to
! 	vsx_sign_extend_v8hi_v2di.
! 	(__builtin_altivec_vsignextsh2w): Set bif-pattern to
! 	vsx_sign_extend_v8hi_v4si.
! 	(__builtin_altivec_vsignextsw2d): Set bif-pattern to
! 	vsx_sign_extend_si_v2di.
! 	(__builtin_altivec_vsignext): Set bif-pattern to
! 	vsx_sign_extend_v2di_v1ti.
! 	* config/rs6000/rs6000-builtin.cc (lxvrse_expand_builtin): Replace
! 	gen_vsx_sign_extend_qi_v2di with gen_vsx_sign_extend_v16qi_v2di,
! 	gen_vsx_sign_extend_hi_v2di with gen_vsx_sign_extend_v8hi_v2di and
! 	gen_vsx_sign_extend_si_v2di with gen_vsx_sign_extend_v4si_v2di.
  
! 2023-04-10   Michael Meissner  <meissner@linux.ibm.com>
  
! 	PR target/70243
! 	* config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
! 	(vsx_nfmsv4sf4): Do not generate vnmsubfp.
  
! 2023-04-10  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
  
! 2023-04-10  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/cpuinfo.h (get_available_features):
! 	Detect AMX-COMPLEX.
! 	* common/config/i386/i386-common.cc
! 	(OPTION_MASK_ISA2_AMX_COMPLEX_SET,
! 	OPTION_MASK_ISA2_AMX_COMPLEX_UNSET): New.
! 	(ix86_handle_option): Handle -mamx-complex.
! 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
! 	Add FEATURE_AMX_COMPLEX.
! 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
! 	amx-complex.
! 	* config.gcc: Add amxcomplexintrin.h.
! 	* config/i386/cpuid.h (bit_AMX_COMPLEX): New.
! 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
! 	__AMX_COMPLEX__.
! 	* config/i386/i386-isa.def (AMX_COMPLEX): Add DEF_PTA(AMX_COMPLEX).
! 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
! 	Handle amx-complex.
! 	* config/i386/i386.opt: Add option -mamx-complex.
! 	* config/i386/immintrin.h: Include amxcomplexintrin.h.
! 	* doc/extend.texi: Document amx-complex.
! 	* doc/invoke.texi: Document -mamx-complex.
! 	* doc/sourcebuild.texi: Document target amx-complex.
! 	* config/i386/amxcomplexintrin.h: New file.
  
! 2023-04-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109392
! 	* tree-vect-generic.cc (tree_vec_extract): Handle failure
! 	of maybe_push_res_to_seq better.
  
! 2023-04-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	* Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
! 	poly-int-types.h.
! 	(SYSTEM_H): Depend on $(HASHTAB_H).
! 	* config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused
! 	dependency on $(RTL_BASE_H), remove redundant dependency on
! 	insn-modes.h.
  
! 2023-04-06  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/107674
! 	* config/arm/arm.cc (arm_effective_regno): New function.
! 	(mve_vector_mem_operand): Use it.
  
! 2023-04-06  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/109417
! 	* gimple-range-gori.cc (gori_compute::may_recompute_p): Check if
! 	dependency is in SSA_NAME_FREE_LIST.
  
! 2023-04-06  Andrew Pinski  <apinski@marvell.com>
  
! 	PR tree-optimization/109427
! 	* params.opt (-param=vect-induction-float=):
! 	Fix option attribute typo for IntegerRange.
  
! 2023-04-05  Jeff Law  <jlaw@ventanamicro>
  
! 	PR target/108892
! 	* combine.cc (combine_instructions): Force re-recognition when
! 	after restoring the body of an insn to its original form.
  
! 2023-04-05  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/108959
! 	* ipa-sra.cc (zap_useless_ipcp_results): New function.
! 	(process_isra_node_results): Call it.
  
! 2023-04-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Fix incorrect operand order.
  
! 2023-04-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc
! 	(pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
! 	demand fusion.
  
! 2023-04-05  Li Xu  <xuli1@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins.def: Fix typo.
! 	* config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
! 	* config/riscv/vector-iterators.md: Ditto.
  
! 2023-04-04  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* doc/md.texi (Including Patterns): Fix page break.
  
! 2023-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109386
! 	* range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
! 	foperator_le::op1_range, foperator_le::op2_range,
! 	foperator_gt::op1_range, foperator_gt::op2_range,
! 	foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
! 	BRS_FALSE case even if the other op is maybe_isnan, not just
! 	known_isnan.
! 	(foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
! 	foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
! 	foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
! 	foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
! 	Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
! 	not just known_isnan.
  
! 2023-04-04  Marek Polacek  <polacek@redhat.com>
  
! 	PR sanitizer/109107
! 	* fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
! 	when associating.
! 	* match.pd: Use TYPE_OVERFLOW_SANITIZED.
  
! 2023-04-04  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
  
! 	* config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
! 	(mve_vcreateq_f<mode>): Swap operands.
  
! 2023-04-04  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
  
! 2023-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/109384
! 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
! 	Reword diagnostics about zfinx conflict with f, formatting fixes.
  
! 2023-04-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* config/sol2.h (LIB_SPEC): Don't link with -lpthread.
  
! 2023-04-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109304
! 	* tree-profile.cc (tree_profiling): Use symtab node
! 	availability to decide whether to skip adjusting calls.
! 	Do not adjust calls to internal functions.
  
! 2023-04-04  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/108807
! 	* config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
! 	function for permutation control vector by considering big endianness.
  
! 2023-04-04  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/108699
! 	* config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
! 	(rs6000_vprtyb<mode>2): ... this.
! 	* config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
! 	rs6000_vprtybv2di2.
! 	(VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
! 	(VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
! 	* config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
! 	popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
  
! 2023-04-04  Hans-Peter Nilsson  <hp@axis.com>
! 	    Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/md.texi (Insn Splitting): Tweak wording for readability.
  
! 2023-04-03  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/109303
! 	* ipa-prop.cc (determine_known_aggregate_parts): Check that the
! 	offset + size will be representable in unsigned int.
  
! 2023-04-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (ZSTD_LIB): Move before zstd.h check.
! 	Unset gcc_cv_header_zstd_h without libzstd.
! 	* configure: Regenerate.
  
! 2023-04-03  Martin Liska  <mliska@suse.cz>
  
! 	* doc/invoke.texi: Document new param.
  
! 2023-04-03  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* doc/sourcebuild.texi (const_volatile_readonly_section): Document
! 	new check_effective_target function.
  
! 2023-04-03  Li Xu  <xuli1@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
! 	(vfloat32m8_t): Likewise
  
! 2023-04-03  liuhongt  <hongtao.liu@intel.com>
  
! 	* doc/md.texi: Document signbitm2.
  
! 2023-04-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 	    kito-cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/vector.md: Fix RA constraint.
  
! 2023-04-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
! 	* config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
! 	* config/riscv/vector.md: Fix scalar move bug.
  
! 2023-04-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	* range-op-float.cc (foperator_equal::fold_range): If at least
! 	one of the op ranges is not singleton and neither is NaN and all
! 	4 bounds are zero, return [1, 1].
! 	(foperator_not_equal::fold_range): In the same case return [0, 0].
  
! 2023-04-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	* range-op-float.cc (foperator_equal::fold_range): Perform the
! 	non-singleton handling regardless of maybe_isnan (op1, op2).
! 	(foperator_not_equal::fold_range): Likewise.
! 	(foperator_lt::fold_range, foperator_le::fold_range,
! 	foperator_gt::fold_range, foperator_ge::fold_range): Perform the
! 	real_* comparison check which results in range_false (type)
! 	even if maybe_isnan (op1, op2).  Simplify.
! 	(foperator_ltgt): New class.
! 	(fop_ltgt): New variable.
! 	(floating_op_table::floating_op_table): Handle LTGT_EXPR using
! 	fop_ltgt.
  
! 2023-04-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/109254
! 	* builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
! 	returns VOIDmode, handle it like if the register isn't used for
! 	passing arguments at all.
! 	(apply_result_size): If targetm.calls.get_raw_result_mode returns
! 	VOIDmode, handle it like if the register isn't used for returning
! 	results at all.
! 	* target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
! 	means to return VOIDmode.
! 	* doc/tm.texi: Regenerated.
! 	* config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
! 	TARGET_SVE for P0_REGNUM.
! 	(aarch64_function_arg_regno_p): Also return true for p0-p3.
! 	(aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
  
! 2023-03-31  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* lra-constraints.cc: (combine_reload_insn): New function.
  
! 2023-03-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/91645
! 	* range-op-float.cc (foperator_unordered_lt::fold_range,
! 	foperator_unordered_le::fold_range,
! 	foperator_unordered_gt::fold_range,
! 	foperator_unordered_ge::fold_range,
! 	foperator_unordered_equal::fold_range): Call the ordered
! 	fold_range on ranges with cleared NaNs.
! 	* value-query.cc (range_query::get_tree_range): Handle also
! 	COMPARISON_CLASS_P trees.
  
! 2023-03-31  Kito Cheng  <kito.cheng@sifive.com>
! 	    Andrew Pinski  <pinskia@gmail.com>
  
! 	PR target/109328
! 	* config/riscv/t-riscv: Add missing dependencies.
  
! 2023-03-31  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386.cc (inline_memory_move_cost): Return 100
! 	for MASK_REGS when MODE_SIZE > 8.
  
! 2023-03-31  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/85048
! 	* config/i386/i386-builtin.def (BDESC): Adjust icode name from
! 	ufloat/ufix to floatuns/fixuns.
! 	* config/i386/i386-expand.cc
! 	(ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
! 	* config/i386/sse.md
! 	(ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
! 	Renamed	to ..
! 	(<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
! 	(<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
! 	Renamed to ..
! 	(<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
! 	.. this.
! 	(<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
! 	Renamed to ..
! 	(fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
! 	(ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
! 	(floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
! 	(ufloatv2siv2df2<mask_name>): Renamed to ..
! 	(<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
! 	(ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
! 	Renamed to ..
! 	(fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
! 	.. this.
! 	(ufix_notruncv2dfv2si2): Renamed to ..
! 	(fixuns_notruncv2dfv2si2):.. this.
! 	(ufix_notruncv2dfv2si2_mask): Renamed to ..
! 	(fixuns_notruncv2dfv2si2_mask): .. this.
! 	(*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
! 	(*fixuns_notruncv2dfv2si2_mask_1): .. this.
! 	(ufix_truncv2dfv2si2): Renamed to ..
! 	(*fixuns_truncv2dfv2si2): .. this.
! 	(ufix_truncv2dfv2si2_mask): Renamed to ..
! 	(fixuns_truncv2dfv2si2_mask): .. this.
! 	(*ufix_truncv2dfv2si2_mask_1): Renamed to ..
! 	(*fixuns_truncv2dfv2si2_mask_1): .. this.
! 	(ufix_truncv4dfv4si2<mask_name>): Renamed to ..
! 	(fixuns_truncv4dfv4si2<mask_name>): .. this.
! 	(ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
! 	Renamed to ..
! 	(fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
! 	.. this.
! 	(ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
! 	(<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
! 	.. this.
  
! 2023-03-30  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/109154
! 	* gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
! 	* gimple-range-gori.h (may_recompute_p): Add depth param.
! 	* params.opt (ranger-recompute-depth): New param.
  
! 2023-03-30  Jason Merrill  <jason@redhat.com>
  
! 	PR c++/107897
! 	PR c++/108887
! 	* cgraph.h: Move reset() from cgraph_node to symtab_node.
! 	* cgraphunit.cc (symtab_node::reset): Adjust.  Also call
! 	remove_from_same_comdat_group.
  
! 2023-03-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/107561
! 	* gimple-ssa-warn-access.cc (get_size_range): Add flags
! 	argument and pass it on.
! 	(check_access): When querying for the size range pass
! 	SR_ALLOW_ZERO when the known destination size is zero.
  
! 2023-03-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109342
! 	* tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
! 	overload for edge.  When that edge is a backedge use
! 	dominated_by_p directly.
  
! 2023-03-30  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
! 	vpblendd instead of vpblendw for V4SI under avx2.
  
! 2023-03-29  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
! 	for many quick operands, for register-sized modes.
  
! 2023-03-29  Jiawei  <jiawei@iscas.ac.cn>
  
  	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
! 	New check.
  
! 2023-03-29  Martin Liska  <mliska@suse.cz>
  
! 	PR bootstrap/109310
! 	* configure.ac: Emit a warning for deprecated option
! 	--enable-link-mutex.
! 	* configure: Regenerate.
  
! 2023-03-29  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109331
! 	* tree-ssa-forwprop.cc (pass_forwprop::execute): When we
! 	discover a taken edge make sure to cleanup the CFG.
  
! 2023-03-29  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109327
! 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
! 	already removed stmts when draining to_remove.
  
! 2023-03-29  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/106124
! 	* dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
! 	so we can re-create the DIE for the type if required.
  
! 2023-03-29  Jakub Jelinek  <jakub@redhat.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109301
! 	* tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
! 	properties_provided from PROP_gimple_opt_math to 0.
! 	(pass_data_expand_powcabs): Change properties_provided from 0 to
! 	PROP_gimple_opt_math.
  
! 2023-03-29  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109154
! 	* tree-if-conv.cc (gen_phi_arg_condition): Handle single
! 	inverted condition specially by inverting at the caller.
! 	(gen_phi_arg_condition): Swap COND_EXPR arms if requested.
  
! 2023-03-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR c/107002
! 	* diagnostic-show-locus.cc (column_range::column_range): Factor
! 	out assertion conditional into...
! 	(column_range::valid_p): ...this new function.
! 	(line_corrections::add_hint): Don't attempt to consolidate hints
! 	if it would lead to invalid column_range instances.
  
! 2023-03-28  Kito Cheng  <kito.cheng@sifive.com>
  
! 	PR target/109312
! 	* config/riscv/riscv-c.cc (riscv_ext_version_value): New.
! 	(riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
! 	minor refactor.
  
! 2023-03-28  Alexander Monakov  <amonakov@ispras.ru>
  
! 	PR rtl-optimization/109187
! 	* haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
! 	subtraction in three-way comparison.
  
! 2023-03-28  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/109265
! 	PR tree-optimization/109274
! 	* gimple-range-gori.cc (gori_compute::compute_operand_range): Do
! 	not create a relation record is op1 and op2 are the same symbol.
! 	(gori_compute::compute_operand1_range): Pass op1 == op2 to the
! 	handler for this stmt, but create a new record only if this statement
! 	generates a relation based on the ranges.
! 	(gori_compute::compute_operand2_range): Ditto.
! 	* value-relation.h (value_relation::set_relation): Always create the
! 	record that is requested.
  
! 2023-03-28  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/107087
! 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Track
! 	executable regions to avoid useless work and to better
! 	propagate degenerate PHIs.
  
! 2023-03-28  Costas Argyris  <costas.argyris@gmail.com>
  
! 	* config/i386/x-mingw32-utf8: update comments.
  
! 2023-03-28  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/109072
! 	* config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
! 	* config/aarch64/aarch64.h (machine_function::vector_load_decls): New
! 	variable.
! 	* config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
! 	New function.
! 	(aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
! 	after inlining.  Record which decls are loaded from.  Fix handling
! 	of vops for loads and stores.
! 	* config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
! 	(aarch64_accesses_vector_load_decl_p): Likewise.
! 	(aarch64_vector_costs::m_stores_to_vector_load_decl): New member
! 	variable.
! 	(aarch64_vector_costs::add_stmt_cost): If the function has a vld1
! 	that loads from a decl, treat vector stores to those decls as
! 	zero cost.
! 	(aarch64_vector_costs::finish_cost): ...and in that case,
! 	if the vector code does nothing more than a store, give the
! 	prologue a zero cost as well.
  
! 2023-03-28  Richard Biener  <rguenther@suse.de>
  
! 	PR bootstrap/84402
! 	PR tree-optimization/108129
! 	* genmatch.cc (lower_for): For (match ...) delay
! 	substituting into the match operator if possible.
! 	(dt_operand::gen_gimple_expr): For user_id look at the
! 	first substitute for determining how to access operands.
! 	(dt_operand::gen_generic_expr): Likewise.
! 	(dt_node::gen_kids): Properly sort user_ids according
! 	to their substitutes.
! 	(dt_node::gen_kids_1): Code-generate user_id matching.
  
! 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
! 	    Jonathan Wakely  <jwakely@redhat.com>
  
! 	* gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
! 	Use subcommand rather than sub-command in function comments.
  
! 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109154
! 	* value-range.h (frange::flush_denormals_to_zero): Make it public
! 	rather than private.
! 	* value-range.cc (frange::set): Don't call flush_denormals_to_zero
! 	here.
! 	* range-op-float.cc (range_operator_float::fold_range): Call
! 	flush_denormals_to_zero.
  
! 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/106190
! 	* sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
! 	of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
  
! 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	* range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
! 	as 4th argument to set to avoid clear_nan and union_ calls.
  
! 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/109276
! 	* config/i386/i386.cc (assign_386_stack_local): For DImode
! 	with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
! 	align 32 rather than 0 to assign_stack_local.
  
! 2023-03-28  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/109140
! 	* config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
! 	on operand #3 to get the final condition code.  Use std::swap.
! 	* config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
! 	(fucmp<gcond:code>8<P:mode>_vis): Move around.
! 	(fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
! 	(vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
  
! 2023-03-28  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* doc/gm2.texi: Add missing Next, Previous and Top fields to most
! 	top-level sections.
  
! 2023-03-28  Costas Argyris  <costas.argyris@gmail.com>
  
! 	* config.host: Pull in i386/x-mingw32-utf8 Makefile
! 	fragment and reference utf8rc-mingw32.o explicitly
! 	for mingw hosts.
! 	* config/i386/sym-mingw32.cc: prevent name mangling of
! 	stub symbol.
! 	* config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
! 	depend on manifest file explicitly.
  
! 2023-03-28  Richard Biener  <rguenther@suse.de>
  
! 	Revert:
! 	2023-03-27  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/109237
! 	* cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
  
! 2023-03-28  Richard Biener  <rguenther@suse.de>
  
! 	* common.opt (gdwarf): Remove Negative(gdwarf-).
  
! 2023-03-28  Richard Biener  <rguenther@suse.de>
  
! 	* common.opt (gdwarf): Add RejectNegative.
! 	(gdwarf-): Likewise.
! 	(ggdb): Likewise.
! 	(gvms): Likewise.
  
! 2023-03-28  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/constraints.md ("T"): Correct to
! 	define_memory_constraint.
  
! 2023-03-28  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/cris.md (BW2): New mode-iterator.
! 	(lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
! 	peephole2s.
  
! 2023-03-28  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
! 	for possible eliminable compares.
  
! 2023-03-28  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/constraints.md ("R"): Remove unused constraint.
  
! 2023-03-27  Jonathan Wakely  <jwakely@redhat.com>
  
! 	PR gcov-profile/109297
! 	* gcov-tool.cc (merge_usage): Fix "subcomand" typo.
! 	(merge_stream_usage): Likewise.
! 	(overlap_usage): Likewise.
  
! 2023-03-27  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	PR target/109296
! 	* config/riscv/thead.md: Add missing mode specifiers.
  
! 2023-03-27  Philipp Tomsich  <philipp.tomsich@vrull.eu>
! 	    Jiangning Liu  <jiangning.liu@amperecomputing.com>
! 	    Manolis Tsamis  <manolis.tsamis@vrull.eu>
  
! 	* config/aarch64/aarch64.cc: Update vector costs for ampere1.
  
! 2023-03-27  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/109237
! 	* cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
  
! 2023-03-27  Richard Biener  <rguenther@suse.de>
  
! 	PR lto/109263
! 	* lto-wrapper.cc (run_gcc): Parse alternate debug options
! 	as well, they always enable debug.
  
! 2023-03-27  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/109167
! 	* config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
! 	from ...
! 	(_mm_slli_si128): ... here.  Change to call _mm_bslli_si128 directly.
  
! 2023-03-27  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/109082
! 	* config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
! 	than zero when calling vec_sld.
! 	(_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
! 	zero when calling vec_sld.
! 	(_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
! 	than zero when calling vec_sld.
  
! 2023-03-27  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
! 	OMP_TASKLOOP, and OMP_LOOP with OMP_FOR.  Document how collapsed
! 	loops are represented and which fields are vectors.  Add
! 	documentation for OMP_FOR_PRE_BODY field.  Document internal
! 	form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
! 	* tree.def (OMP_FOR): Make documentation consistent with the
! 	Texinfo manual, to fill some gaps and correct errors.
  
! 2023-03-26  Andreas Schwab  <schwab@linux-m68k.org>
  
! 	PR target/106282
! 	* config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
! 	* config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
! 	(handle_move_double): Call it before handle_movsi.
! 	* config/m68k/m68k-protos.h: Declare it.
  
! 2023-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109230
! 	* match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
  
! 2023-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/105685
! 	* predict.cc (compute_function_frequency): Don't call
! 	warn_function_cold if function already has cold attribute.
  
! 2023-03-26  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/install.texi: Remove anachronistic note
! 	related to languages built and separate source tarballs.
  
! 2023-03-25  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/109098
! 	* diagnostic-format-sarif.cc (read_until_eof): Delete.
! 	(maybe_read_file): Delete.
! 	(sarif_builder::maybe_make_artifact_content_object): Use
! 	get_source_file_content rather than maybe_read_file.
! 	Reject it if it's not valid UTF-8.
! 	* input.cc (file_cache_slot::get_full_file_content): New.
! 	(get_source_file_content): New.
! 	(selftest::check_cpp_valid_utf8_p): New.
! 	(selftest::test_cpp_valid_utf8_p): New.
! 	(selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
! 	* input.h (get_source_file_content): New prototype.
  
! 2023-03-24  David Malcolm  <dmalcolm@redhat.com>
  
! 	* doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
! 	debugging options.
! 	(Special Functions for Debugging the Analyzer): Convert to a
! 	table, and rewrite in places.
! 	(Other Debugging Techniques): Add notes on how to compare two
! 	different exploded graphs.
  
! 2023-03-24  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR other/109163
! 	* json.cc: Update comments to indicate that we now preserve
! 	insertion order of keys within objects.
! 	(object::print): Traverse keys in insertion order.
! 	(object::set): Preserve insertion order of keys.
! 	(selftest::test_writing_objects): Add an additional key to verify
! 	that we preserve insertion order.
! 	* json.h (object::m_keys): New field.
  
! 2023-03-24  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/109238
! 	* gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
! 	predecessors which this block dominates.
  
! 2023-03-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/106912
! 	* tree-profile.cc (tree_profiling): Update stmts only when
! 	profiling or testing coverage.  Make sure to update calls
! 	fntype, stripping 'const' there.
  
! 2023-03-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/109258
! 	* builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
! 	if target == const0_rtx.
  
! 2023-03-24  Alexandre Oliva  <oliva@adacore.com>
  
! 	* doc/sourcebuild.texi (weak_undefined, posix_memalign):
! 	Document options and effective targets.
  
! 2023-03-24  Costas Argyris  <costas.argyris@gmail.com>
  
! 	* config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
! 	optional.
  
! 2023-03-23  Pat Haugen  <pthaugen@linux.ibm.com>
  
! 	* config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
! 	non-earlyclobber alternative.
  
! 2023-03-23  Andrew Pinski  <apinski@marvell.com>
  
! 	PR c/84900
! 	* fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
! 	as a lvalue.
  
! 2023-03-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/107569
! 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
! 	Do not push SSA names with zero uses as available leader.
! 	(process_bb): Likewise.
  
! 2023-03-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109262
! 	* tree-ssa-forwprop.cc (pass_forwprop::execute): When
! 	combining a piecewise complex load avoid touching loads
! 	that throw internally.  Use fun, not cfun throughout.
  
! 2023-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* value-range.cc (irange::irange_union, irange::intersect): Fix
! 	comment spelling bugs.
! 	* gimple-range-trace.cc (range_tracer::do_header): Likewise.
! 	* gimple-range-trace.h: Likewise.
! 	* gimple-range-edge.cc: Likewise.
! 	(gimple_outgoing_range_stmt_p,
! 	gimple_outgoing_range::switch_edge_range,
! 	gimple_outgoing_range::edge_range_p): Likewise.
! 	* gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
! 	gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
! 	assume_query::assume_query, assume_query::calculate_phi): Likewise.
! 	* gimple-range-edge.h: Likewise.
! 	* value-range.h (Value_Range::set, Value_Range::lower_bound,
! 	Value_Range::upper_bound, frange::set_undefined): Likewise.
! 	* gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
! 	gori_compute): Likewise.
! 	* gimple-range-fold.h (fold_using_range): Likewise.
! 	* gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
! 	Likewise.
! 	* gimple-range-gori.cc (range_def_chain::in_chain_p,
! 	range_def_chain::dump, gori_map::calculate_gori,
! 	gori_compute::compute_operand_range_switch,
! 	gori_compute::logical_combine, gori_compute::refine_using_relation,
! 	gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
! 	Likewise.
! 	* gimple-range.h: Likewise.
! 	(enable_ranger): Likewise.
! 	* range-op.h (empty_range_varying): Likewise.
! 	* value-query.h (value_query): Likewise.
! 	* gimple-range-cache.cc (block_range_cache::set_bb_range,
! 	block_range_cache::dump, ssa_global_cache::clear_global_range,
! 	temporal_cache::temporal_value, temporal_cache::current_p,
! 	ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
! 	ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
! 	Likewise.
! 	* gimple-range-fold.cc (fur_edge::get_phi_operand,
! 	fur_stmt::get_operand, gimple_range_adjustment,
! 	fold_using_range::range_of_phi,
! 	fold_using_range::relation_fold_and_or): Likewise.
! 	* value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
! 	* value-query.cc (range_query::value_of_expr,
! 	range_query::value_on_edge, range_query::query_relation): Likewise.
! 	* tree-vrp.cc (remove_unreachable::remove_and_update_globals,
! 	intersect_range_with_nonzero_bits): Likewise.
! 	* gimple-range-infer.cc (gimple_infer_range::check_assume_func,
! 	exit_range): Likewise.
! 	* value-relation.h: Likewise.
! 	(equiv_oracle, relation_trio::relation_trio, value_relation,
! 	value_relation::value_relation, pe_min): Likewise.
! 	* range-op-float.cc (range_operator_float::rv_fold,
! 	frange_arithmetic, foperator_unordered_equal::op1_range,
! 	foperator_div::rv_fold): Likewise.
! 	* gimple-range-op.cc (cfn_clz::fold_range): Likewise.
! 	* value-relation.cc (equiv_oracle::query_relation,
! 	equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
! 	value_relation::apply_transitive, relation_chain_head::find_relation,
! 	dom_oracle::query_relation, dom_oracle::find_relation_block,
! 	dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
! 	* range-op.cc (range_operator::wi_fold_in_parts_equiv,
! 	create_possibly_reversed_range, adjust_op1_for_overflow,
! 	operator_mult::wi_fold, operator_exact_divide::op1_range,
! 	operator_cast::lhs_op1_relation, operator_cast::fold_pair,
! 	operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
! 	range_op_lshift_tests): Likewise.
  
! 2023-03-23  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
! 	(move_callee_saved_registers): Detect the bug condition early.
  
! 2023-03-23  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
! 	* config/gcn/gcn-valu.md (V_1REG_ALT): New.
! 	(V_2REG_ALT): New.
! 	(vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
! 	(vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
! 	(vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
! 	* config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
! 	* config/gcn/predicates.md (ascending_zero_int_parallel): New.
  
! 2023-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109176
! 	* tree-vect-generic.cc (expand_vector_condition): If a has
! 	vector boolean type and is a comparison, also check if both
! 	the comparison and VEC_COND_EXPR could be successfully expanded
! 	individually.
  
! 2023-03-23  Pan Li  <pan2.li@intel.com>
! 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/108654
! 	PR target/108185
! 	* config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
! 	for vector mask modes.
! 	* config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
! 	* config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
  
! 2023-03-23  Songhe Zhu  <zhusonghe@eswincomputing.com>
  
! 	* config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
  
! 2023-03-23  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/109244
! 	* config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
! 	(emit_vlmax_op): Ditto.
! 	* config/riscv/riscv-v.cc (get_sew): New function.
! 	(emit_vlmax_vsetvl): Adapt function.
! 	(emit_pred_op): Ditto.
! 	(emit_vlmax_op): Ditto.
! 	(emit_nonvlmax_op): Ditto.
! 	(legitimize_move): Fix LRA ICE.
! 	(gen_no_side_effects_vsetvl_rtx): Adapt function.
! 	* config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
! 	(@mov<VB:mode><P:mode>_lra): Ditto.
! 	(*mov<V_FRACT:mode><P:mode>_lra): Ditto.
! 	(*mov<VB:mode><P:mode>_lra): Ditto.
  
! 2023-03-23  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/109228
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
! 	__riscv_vlenb support.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc: Ditto.
  
! 2023-03-23  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
! 	    kito-cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
! 	(pass_vsetvl::compute_local_backward_infos): Fix bugs.
! 	(pass_vsetvl::need_vsetvl): Fix bugs.
! 	(pass_vsetvl::backward_demand_fusion): Fix bugs.
! 	(pass_vsetvl::demand_fusion): Fix bugs.
! 	(eliminate_insn): Fix bugs.
! 	(insert_vsetvl): Ditto.
! 	(pass_vsetvl::emit_local_forward_vsetvls): Ditto.
! 	* config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
! 	* config/riscv/vector.md: Ditto.
  
! 2023-03-23  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
! 	    kito-cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
! 	* config/riscv/vector-iterators.md (nmsac): Ditto.
! 	(nmsub): Ditto.
! 	(msac): Ditto.
! 	(msub): Ditto.
! 	(nmadd): Ditto.
! 	(nmacc): Ditto.
! 	* config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
! 	(@pred_mul_plus<mode>): Ditto.
! 	(*pred_madd<mode>): Ditto.
! 	(*pred_macc<mode>): Ditto.
! 	(*pred_mul_plus<mode>): Ditto.
! 	(@pred_mul_plus<mode>_scalar): Ditto.
! 	(*pred_madd<mode>_scalar): Ditto.
! 	(*pred_macc<mode>_scalar): Ditto.
! 	(*pred_mul_plus<mode>_scalar): Ditto.
! 	(*pred_madd<mode>_extended_scalar): Ditto.
! 	(*pred_macc<mode>_extended_scalar): Ditto.
! 	(*pred_mul_plus<mode>_extended_scalar): Ditto.
! 	(@pred_minus_mul<mode>): Ditto.
! 	(*pred_<madd_nmsub><mode>): Ditto.
! 	(*pred_nmsub<mode>): Ditto.
! 	(*pred_<macc_nmsac><mode>): Ditto.
! 	(*pred_nmsac<mode>): Ditto.
! 	(*pred_mul_<optab><mode>): Ditto.
! 	(*pred_minus_mul<mode>): Ditto.
! 	(@pred_mul_<optab><mode>_scalar): Ditto.
! 	(@pred_minus_mul<mode>_scalar): Ditto.
! 	(*pred_<madd_nmsub><mode>_scalar): Ditto.
! 	(*pred_nmsub<mode>_scalar): Ditto.
! 	(*pred_<macc_nmsac><mode>_scalar): Ditto.
! 	(*pred_nmsac<mode>_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_scalar): Ditto.
! 	(*pred_minus_mul<mode>_scalar): Ditto.
! 	(*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
! 	(*pred_nmsub<mode>_extended_scalar): Ditto.
! 	(*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
! 	(*pred_nmsac<mode>_extended_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_extended_scalar): Ditto.
! 	(*pred_minus_mul<mode>_extended_scalar): Ditto.
! 	(*pred_<madd_msub><mode>): Ditto.
! 	(*pred_<macc_msac><mode>): Ditto.
! 	(*pred_<madd_msub><mode>_scalar): Ditto.
! 	(*pred_<macc_msac><mode>_scalar): Ditto.
! 	(@pred_neg_mul_<optab><mode>): Ditto.
! 	(@pred_mul_neg_<optab><mode>): Ditto.
! 	(*pred_<nmadd_msub><mode>): Ditto.
! 	(*pred_<nmsub_nmadd><mode>): Ditto.
! 	(*pred_<nmacc_msac><mode>): Ditto.
! 	(*pred_<nmsac_nmacc><mode>): Ditto.
! 	(*pred_neg_mul_<optab><mode>): Ditto.
! 	(*pred_mul_neg_<optab><mode>): Ditto.
! 	(@pred_neg_mul_<optab><mode>_scalar): Ditto.
! 	(@pred_mul_neg_<optab><mode>_scalar): Ditto.
! 	(*pred_<nmadd_msub><mode>_scalar): Ditto.
! 	(*pred_<nmsub_nmadd><mode>_scalar): Ditto.
! 	(*pred_<nmacc_msac><mode>_scalar): Ditto.
! 	(*pred_<nmsac_nmacc><mode>_scalar): Ditto.
! 	(*pred_neg_mul_<optab><mode>_scalar): Ditto.
! 	(*pred_mul_neg_<optab><mode>_scalar): Ditto.
! 	(@pred_widen_neg_mul_<optab><mode>): Ditto.
! 	(@pred_widen_mul_neg_<optab><mode>): Ditto.
! 	(@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
! 	(@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
  
! 2023-03-23  liuhongt  <hongtao.liu@intel.com>
  
! 	* builtins.cc (builtin_memset_read_str): Replace
! 	targetm.gen_memset_scratch_rtx with gen_reg_rtx.
! 	(builtin_memset_gen_str): Ditto.
! 	* config/i386/i386-expand.cc
! 	(ix86_convert_const_wide_int_to_broadcast): Replace
! 	ix86_gen_scratch_sse_rtx with gen_reg_rtx.
! 	(ix86_expand_vector_move): Ditto.
! 	* config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
! 	Removed.
! 	* config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
! 	(TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
! 	* doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
! 	* doc/tm.texi.in: Ditto.
! 	* target.def: Ditto.
  
! 2023-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* lra.cc (lra): Do not repeat inheritance and live range splitting
! 	when asm error is found.
  
! 2023-03-22  Andrew Jenner  <andrew@codesourcery.com>
  
! 	* config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
! 	(gcn_expand_dpp_distribute_even_insn)
! 	(gcn_expand_dpp_distribute_odd_insn): Declare.
! 	* config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
! 	(@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
! 	(cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
! 	(cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
! 	(fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
! 	(fms<mode>4_negop2): New patterns.
! 	* config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
! 	(gcn_expand_dpp_distribute_even_insn)
! 	(gcn_expand_dpp_distribute_odd_insn): New functions.
! 	* config/gcn/gcn.md: Add entries to unspec enum.
  
! 2023-03-22  Aldy Hernandez  <aldyh@redhat.com>
  
! 	PR tree-optimization/109008
! 	* value-range.cc (frange::set): Add nan_state argument.
! 	* value-range.h (class nan_state): New.
! 	(frange::get_nan_state): New.
  
! 2023-03-22  Martin Liska  <mliska@suse.cz>
  
! 	* configure: Regenerate.
  
! 2023-03-21  Joseph Myers  <joseph@codesourcery.com>
  
! 	* stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
! 	to variants.
  
! 2023-03-21  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/109192
! 	* gimple-range-gori.cc (gori_compute::compute_operand_range):
! 	Terminate gori calculations if a relation is not relevant.
! 	* value-relation.h (value_relation::set_relation): Allow
! 	equality between op1 and op2 if they are the same.
  
! 2023-03-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109219
! 	* tree-vect-loop.cc (vectorizable_reduction): Check
! 	slp_node, not STMT_SLP_TYPE.
! 	* tree-vect-stmts.cc (vectorizable_condition): Likewise.
! 	* tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
! 	Remove assertion on STMT_SLP_TYPE.
  
! 2023-03-21  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109215
! 	* tree.h (enum special_array_member): Adjust comments for int_0
! 	and trail_0.
! 	* tree.cc (component_ref_sam_type): Clear zero_elts if memtype
! 	has zero sized element type and the array has variable number of
! 	elements or constant one or more elements.
! 	(component_ref_size): Adjust comments, formatting fix.
  
! 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* configure.ac: Add check for the Texinfo 6.8
! 	CONTENTS_OUTPUT_LOCATION customization variable and set it if
! 	supported.
! 	* configure: Regenerate.
! 	* Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable.  Set by
! 	configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
! 	CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
! 	($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
  
! 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* doc/extend.texi: Associate use_hazard_barrier_return index
! 	entry with its attribute.
! 	* doc/invoke.texi: Associate -fcanon-prefix-map index entry with
! 	its attribute
  
! 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* doc/implement-c.texi: Remove usage of @gol.
! 	* doc/invoke.texi: Ditto.
! 	* doc/sourcebuild.texi: Ditto.
! 	* doc/include/gcc-common.texi: Remove @gol.  In new Makeinfo and
! 	texinfo.tex versions, the bug it was working around appears to
! 	be gone.
  
! 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* doc/include/texinfo.tex: Update to 2023-01-17.19.
  
! 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* doc/include/gcc-common.texi: Add @defbuiltin{,x} and
! 	@enddefbuiltin for defining built-in functions.
! 	* doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
! 	places where it should be used.
  
! 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* doc/extend.texi (Formatted Output Function Checking): New
! 	subsection for  grouping together printf et al.
! 	(Exception handling) Fix missing @ sign before copyright
! 	header, which lead to the copyright line leaking into
! 	'(gcc)Exception handling'.
! 	* doc/gcc.texi: Set document language to en_US.
! 	(@copying): Wrap front cover texts in quotations, move in manual
! 	description text.
  
! 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* doc/gcc.texi: Add the Indices appendix, to make texinfo
! 	generate nice indices overview page.
  
! 2023-03-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109170
! 	* gimple-range-op.cc (cfn_pass_through_arg1): New.
! 	(gimple_range_op_handler::maybe_builtin_call): Handle
! 	__builtin_expect via cfn_pass_through_arg1.
  
! 2023-03-20   Michael Meissner  <meissner@linux.ibm.com>
  
! 	PR target/109067
! 	* config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
! 	(init_float128_ieee): Delete code to switch complex multiply and divide
! 	for long double.
! 	(complex_multiply_builtin_code): New helper function.
! 	(complex_divide_builtin_code): Likewise.
! 	(rs6000_mangle_decl_assembler_name): Add support for mangling the name
! 	of complex 128-bit multiply and divide built-in functions.
  
! 2023-03-20  Peter Bergner  <bergner@linux.ibm.com>
  
! 	PR target/109178
! 	* config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
  
! 2023-03-19  Jonny Grant  <jg@jguk.org>
  
! 	* doc/extend.texi (Common Function Attributes) <nonnull>:
! 	Correct typo.
  
! 2023-03-18  Peter Bergner  <bergner@linux.ibm.com>
  
! 	PR rtl-optimization/109179
! 	* lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
! 	insn or note.  Move the tests earlier to guard lra_get_insn_recog_data.
  
! 2023-03-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/105554
! 	* function.h (push_struct_function): Add ABSTRACT_P argument defaulted
! 	to false.
! 	* function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
! 	to allocate_struct_function instead of false.
! 	* tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
! 	nor DECL_RESULT here.  Pass true as ABSTRACT_P to
! 	push_struct_function.  Call targetm.target_option.relayout_function
! 	after it.
! 	(tree_function_versioning): Formatting fix.
  
! 2023-03-17  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* lra-constraints.cc: Include hooks.h.
! 	(combine_reload_insn): New function.
! 	(lra_constraints): Call it.
  
! 2023-03-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
! 	    kito-cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv-v.cc (legitimize_move): Allow undef value
! 	as legitimate value.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
! 	(function_expander::use_widen_ternop_insn): Ditto.
! 	* config/riscv/vector.md (@vundefined<mode>): New pattern.
! 	(pred_mul_<optab><mode>_undef_merge): Remove.
! 	(*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
! 	(pred_neg_mul_<optab><mode>_undef_merge): Ditto.
! 	(*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
  
! 2023-03-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/109092
! 	* config/riscv/riscv.md: Fix subreg bug.
  
! 2023-03-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/108685
! 	* omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
! 	use its loop_father rather than BODY_BB's loop_father.
! 	(expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
! 	If broken_loop with ordered > collapse and at least one of those
! 	extra loops aren't guaranteed to have at least one iteration, change
! 	l0_bb's loop_father to entry_bb's loop_father.  Set cont_bb's
! 	loop_father to l0_bb's loop_father rather than l1_bb's.
  
! 2023-03-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR plugins/108634
! 	* gdbhooks.py (TreePrinter.to_string): Wrap
! 	gdb.parse_and_eval('tree_code_type') in a try block, parse
! 	and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
! 	raises exception.  Update comments for the recent tree_code_type
! 	changes.
  
! 2023-03-17  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/extend.texi (BPF Built-in Functions): Fix numerous markup
! 	issues.  Add more line breaks to example so it doesn't overflow
! 	the margins.
  
! 2023-03-17  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/extend.texi (Common Function Attributes) <access>: Fix bad
! 	line breaks in examples.
! 	<malloc>: Fix bad line breaks in running text, also copy-edit
! 	for consistency.
! 	(Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
! 	* doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
! 	@gol.
! 	(C++ Dialect Options) <-fcontracts>: Add line break in example.
! 	<-Wctad-maybe-unsupported>: Likewise.
! 	<-Winvalid-constexpr>: Likewise.
! 	(Warning Options) <-Wdangling-pointer>: Likewise.
! 	<-Winterference-size>: Likewise.
! 	<-Wvla-parameter>: Likewise.
! 	(Static Analyzer Options): Fix bad line breaks in running text,
! 	plus add some missing markup.
! 	(Optimize Options) <openacc-privatization>: Fix more bad line
! 	breaks in running text.
  
! 2023-03-16  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386-expand.cc (expand_vec_perm_pblendv):
! 	Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
! 	(expand_vec_perm_2perm_pblendv): Ditto.
  
! 2023-03-16  Martin Liska  <mliska@suse.cz>
  
! 	PR middle-end/106133
! 	* gcc.cc (driver_handle_option): Use x_main_input_basename
! 	if x_dump_base_name is null.
! 	* opts.cc (common_handle_option): Likewise.
  
! 2023-03-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109123
! 	* gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
! 	Do not emit -Wuse-after-free late.
! 	(pass_waccess::check_call): Always check call pointer uses.
  
! 2023-03-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109141
! 	* tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
! 	* tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
! 	out from ...
! 	(renumber_gimple_stmt_uids): ... here and
! 	(renumber_gimple_stmt_uids_in_blocks): ... here.
! 	* gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
! 	Use renumber_gimple_stmt_uids_in_block to also assign UIDs
! 	to PHIs.
! 	(pass_waccess::check_pointer_uses): Process all PHIs.
  
! 2023-03-15  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/109097
! 	* diagnostic-format-sarif.cc (class sarif_invocation): New.
! 	(class sarif_ice_notification): New.
! 	(sarif_builder::m_invocation_obj): New field.
! 	(sarif_invocation::add_notification_for_ice): New.
! 	(sarif_invocation::prepare_to_flush): New.
! 	(sarif_ice_notification::sarif_ice_notification): New.
! 	(sarif_builder::sarif_builder): Add m_invocation_obj.
! 	(sarif_builder::end_diagnostic): Special-case DK_ICE and
! 	DK_ICE_NOBT.
! 	(sarif_builder::flush_to_file): Call prepare_to_flush on
! 	m_invocation_obj.  Pass the latter to make_top_level_object.
! 	(sarif_builder::make_result_object): Move creation of "locations"
! 	array to...
! 	(sarif_builder::make_locations_arr): ...this new function.
! 	(sarif_builder::make_top_level_object): Add "invocation_obj" param
! 	and pass it to make_run_object.
! 	(sarif_builder::make_run_object): Add "invocation_obj" param and
! 	use it.
! 	(sarif_ice_handler): New callback.
! 	(diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
! 	* diagnostic.cc (diagnostic_initialize): Initialize new field
! 	"ice_handler_cb".
! 	(diagnostic_action_after_output): If it is set, make one attempt
! 	to call ice_handler_cb.
! 	* diagnostic.h (diagnostic_context::ice_handler_cb): New field.
  
! 2023-03-15  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386-expand.cc (expand_vec_perm_blend):
! 	Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
! 	and fix V2HImode handling.
! 	(expand_vec_perm_1): Try to emit BLEND instruction
! 	before MOVSS/MOVSD.
! 	* config/i386/mmx.md (*mmx_blendps): New insn pattern.
  
! 2023-03-15  Tobias Burnus  <tobias@codesourcery.com>
  
! 	* omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
  
! 2023-03-15  Richard Biener  <rguenther@suse.de>
  
! 	* gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
! 	Do not diagnose clobbers.
  
! 2023-03-15  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109139
! 	* tree-ssa-live.cc (remove_unused_locals): Look at the
! 	base address for unused decls on the LHS of .DEFERRED_INIT.
  
! 2023-03-15  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR other/109086
! 	* builtins.cc (inline_string_cmp): Force the character
! 	difference into "result" pseudo-register, instead of reassign
! 	the pseudo-register.
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config.gcc: Add thead.o to RISC-V extra_objs.
! 	* config/riscv/peephole.md: Add mempair peephole passes.
! 	* config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
  	prototype.
! 	(th_mempair_operands_p): Likewise.
! 	(th_mempair_order_operands): Likewise.
! 	(th_mempair_prepare_save_restore_operands): Likewise.
! 	(th_mempair_save_restore_regs): Likewise.
! 	(th_mempair_output_move): Likewise.
! 	* config/riscv/riscv.cc (riscv_save_reg): Move code.
! 	(riscv_restore_reg): Move code.
! 	(riscv_for_each_saved_reg): Add code to emit mempair insns.
! 	* config/riscv/t-riscv: Add thead.cc.
! 	* config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
! 	New insn.
! 	(*th_mempair_store_<GPR:mode>2): Likewise.
! 	(*th_mempair_load_extendsidi2): Likewise.
! 	(*th_mempair_load_zero_extendsidi2): Likewise.
! 	* config/riscv/thead.cc: New file.
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
! 	New constraint "th_f_fmv".
! 	(TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
! 	"th_r_fmv".
! 	* config/riscv/riscv.cc (riscv_split_doubleword_move):
! 	Add split code for XTheadFmv.
! 	(riscv_secondary_memory_needed): XTheadFmv does not need
! 	secondary memory.
! 	* config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
! 	UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
! 	movdf_hardfloat_rv32.
! 	* config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
! 	(th_fmv_x_w): New INSN.
! 	(th_fmv_x_hw): New INSN.
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv.md (maddhisi4): New expand.
! 	(msubhisi4): New expand.
! 	* config/riscv/thead.md (*th_mula<mode>): New pattern.
! 	(*th_mulawsi): New pattern.
! 	(*th_mulawsi2): New pattern.
! 	(*th_maddhisi4): New pattern.
! 	(*th_sextw_maddhisi4): New pattern.
! 	(*th_muls<mode>): New pattern.
! 	(*th_mulswsi): New pattern.
! 	(*th_mulswsi2): New pattern.
! 	(*th_msubhisi4): New pattern.
! 	(*th_sextw_msubhisi4): New pattern.
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
! 	* config/riscv/riscv-protos.h (riscv_expand_conditional_move):
! 	Add prototype.
! 	* config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
! 	XTheadCondMov.
! 	(riscv_expand_conditional_move): New function.
! 	(riscv_expand_conditional_move_onesided): New function.
! 	* config/riscv/riscv.md: Add support for XTheadCondMov.
! 	* config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
! 	support for XTheadCondMov.
! 	(*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/bitmanip.md (clzdi2): New expand.
! 	(clzsi2): New expand.
! 	(ctz<mode>2): New expand.
! 	(popcount<mode>2): New expand.
! 	(<bitmanip_optab>si2): Rename INSN.
! 	(*<bitmanip_optab>si2): Hide INSN name.
! 	(<bitmanip_optab>di2): Rename INSN.
! 	(*<bitmanip_optab>di2): Hide INSN name.
! 	(rotrsi3): Remove INSN.
! 	(rotr<mode>3): Add expand.
! 	(*rotrsi3): New INSN.
! 	(rotrdi3): Rename INSN.
! 	(*rotrdi3): Hide INSN name.
! 	(rotrsi3_sext): Rename INSN.
! 	(*rotrsi3_sext): Hide INSN name.
! 	(bswap<mode>2): Remove INSN.
! 	(bswapdi2): Add expand.
! 	(bswapsi2): Add expand.
! 	(*bswap<mode>2): Hide INSN name.
! 	* config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
! 	extraction.
! 	* config/riscv/riscv.md (extv<mode>): New expand.
! 	(extzv<mode>): New expand.
! 	* config/riscv/thead.md (*th_srri<mode>3): New INSN.
! 	(*th_ext<mode>): New INSN.
! 	(*th_extu<mode>): New INSN.
! 	(*th_clz<mode>2): New INSN.
! 	(*th_rev<mode>2): New INSN.
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
! 	* config/riscv/thead.md (*th_tst<mode>3): New INSN.
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv.md: Include thead.md
! 	* config/riscv/thead.md: New file.
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
  
! 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* common/config/riscv/riscv-common.cc: Add xthead* extensions.
! 	* config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
! 	(MASK_XTHEADBB): New.
! 	(MASK_XTHEADBS): New.
! 	(MASK_XTHEADCMO): New.
! 	(MASK_XTHEADCONDMOV): New.
! 	(MASK_XTHEADFMEMIDX): New.
! 	(MASK_XTHEADFMV): New.
! 	(MASK_XTHEADINT): New.
! 	(MASK_XTHEADMAC): New.
! 	(MASK_XTHEADMEMIDX): New.
! 	(MASK_XTHEADMEMPAIR): New.
! 	(MASK_XTHEADSYNC): New.
! 	(TARGET_XTHEADBA): New.
! 	(TARGET_XTHEADBB): New.
! 	(TARGET_XTHEADBS): New.
! 	(TARGET_XTHEADCMO): New.
! 	(TARGET_XTHEADCONDMOV): New.
! 	(TARGET_XTHEADFMEMIDX): New.
! 	(TARGET_XTHEADFMV): New.
! 	(TARGET_XTHEADINT): New.
! 	(TARGET_XTHEADMAC): New.
! 	(TARGET_XTHEADMEMIDX): New.
! 	(TARGET_XTHEADMEMPAIR): new.
! 	(TARGET_XTHEADSYNC): New.
! 	* config/riscv/riscv.opt: Add riscv_xthead_subext.
  
! 2023-03-15  Hu, Lin1  <lin1.hu@intel.com>
  
! 	PR target/109117
! 	* config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
! 	__builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
! 	__builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
  
! 2023-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/109109
! 	* config/i386/i386-expand.cc (split_double_concat): Fix splitting
! 	when lo is equal to dhi and hi is a MEM which uses dlo register.
  
! 2023-03-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/107925
! 	* ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
! 	global0 instead of zeroing when it does not have as many counts as
! 	it should.
  
! 2023-03-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/107925
! 	* ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
! 	ipa count, remove assert, lenient_count_portion_handling, dump
! 	also orig_node_count.
  
! 2023-03-14  Uros Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386-expand.cc (expand_vec_perm_movs):
! 	Handle V2SImode for TARGET_MMX_WITH_SSE.
! 	* config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
! 	using V2FI mode iterator to handle both V2SI and V2SF modes.
  
! 2023-03-14  Sam James  <sam@gentoo.org>
  
! 	* config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
! 	including <sstream> earlier.
! 	* system.h: Add INCLUDE_SSTREAM.
  
! 2023-03-14  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-live.cc (remove_unused_locals): Do not treat
! 	the .DEFERRED_INIT of a variable as use, instead remove
! 	that if it is the only use.
  
! 2023-03-14  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR rtl-optimization/107762
! 	* expr.cc (emit_group_store): Revert latest change.
  
! 2023-03-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	PR tree-optimization/109005
! 	* tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
! 	aggregate type check.
  
! 2023-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109115
! 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
! 	r.upper_bound () on r.undefined_p () range.
  
! 2023-03-14  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR tree-optimization/106896
! 	* profile-count.cc (profile_count::to_sreal_scale): Synchronize
! 	implementatoin with probability_in; avoid some asserts.
  
! 2023-03-13  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	* config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
  
! 2023-03-13  Sean Bright  <sean@seanbright.com>
  
! 	* doc/invoke.texi (Warning Options): Remove errant 'See'
! 	before @xref.
  
! 2023-03-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
! 	REG_OK_FOR_BASE_P): Remove.
  
! 2023-03-13  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector-iterators.md (=vd,vr): Fine tune.
! 	(=vd,vd,vr,vr): Ditto.
! 	* config/riscv/vector.md: Ditto.
  
! 2023-03-13  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins.cc
! 	(function_expander::use_compare_insn): Add operand predicate check.
  
! 2023-03-13  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Fine tune RA constraints.
  
! 2023-03-13  Tobias Burnus  <tobias@codesourcery.com>
  
! 	* config/gcn/mkoffload.cc (main): Pass -save-temps on for the
! 	hsaco assemble/link.
  
! 2023-03-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109046
! 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
! 	piecewise complex loads.
  
! 2023-03-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
! 	(aarch64_bf16_ptr_type_node): Adjust comment.
! 	* config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
! 	bfloat16_type_node rather than aarch64_bf16_type_node.
! 	(aarch64_libgcc_floating_mode_supported_p,
! 	aarch64_scalar_mode_supported_p): Also support BFmode.
! 	(aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
! 	(aarch64_invalid_binary_op): Remove BFmode related rejections.
! 	(TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
! 	* config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
! 	(aarch64_int_or_fp_type): Use bfloat16_type_node rather than
! 	aarch64_bf16_type_node.
! 	(aarch64_init_simd_builtin_types): Likewise.
! 	(aarch64_init_bf16_types): Likewise.  Don't create bfloat16_type_node,
! 	which is created in tree.cc already.
! 	* config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
  
! 2023-03-12  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR middle-end/109031
! 	* tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
! 	ensure that the type of x is as wide or wider than the type of a.
  
! 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/108583
! 	* config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
! 	(*bitmask_shift_plus<mode>): New.
! 	* config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
! 	(@aarch64_bitmask_udiv<mode>3): Remove.
! 	* config/aarch64/aarch64.cc
! 	(aarch64_vectorize_can_special_div_by_constant,
! 	TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
! 	(TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
! 	aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
  
! 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/108583
! 	* target.def (preferred_div_as_shifts_over_mult): New.
! 	* doc/tm.texi.in: Document it.
! 	* doc/tm.texi: Regenerate.
! 	* targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
! 	* targhooks.h (default_preferred_div_as_shifts_over_mult): New.
! 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
  
! 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
! 	    Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/108583
! 	* tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
! 	single use.
  
! 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
! 	    Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR target/108583
! 	* gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
! 	* gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
! 	Use it.
! 	(gimple_range_op_handler::maybe_non_standard): New.
! 	* range-op.cc (class operator_widen_plus_signed,
! 	operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
! 	operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
! 	operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
! 	operator_widen_mult_unsigned::wi_fold,
! 	ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
! 	ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
! 	* range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
! 	ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
  
! 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/108583
! 	* doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
! 	* doc/tm.texi.in: Likewise.
! 	* explow.cc (round_push, align_dynamic_address): Revert previous patch.
! 	* expmed.cc (expand_divmod): Likewise.
! 	* expmed.h (expand_divmod): Likewise.
! 	* expr.cc (force_operand, expand_expr_divmod): Likewise.
! 	* optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
! 	* target.def (can_special_div_by_const): Remove.
! 	* target.h: Remove tree-core.h include
! 	* targhooks.cc (default_can_special_div_by_const): Remove.
! 	* targhooks.h (default_can_special_div_by_const): Remove.
! 	* tree-vect-generic.cc (expand_vector_operation): Remove hook.
! 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
! 	* tree-vect-stmts.cc (vectorizable_operation): Remove hook.
  
! 2023-03-12  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/install.texi2html: Fix issue number typo in comment.
  
! 2023-03-12  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	* doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
! 	bool.
  
! 2023-03-12  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/invoke.texi (Optimize Options):  Add markup to
! 	description of asan-kernel-mem-intrinsic-prefix, and clarify
! 	wording slightly.
  
! 2023-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/extend.texi (Named Address Spaces): Drop a redundant link
! 	to AVR-LibC.
  
! 2023-03-11  Jeff Law  <jlaw@ventanamicro>
  
! 	PR web/88860
! 	* doc/extend.texi: Clarify Attribute Syntax a bit.
  
! 2023-03-11  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/install.texi (Prerequisites): Suggest using newer versions
! 	of Texinfo.
! 	(Final install): Clean up and modernize discussion of how to
! 	build or obtain the GCC manuals.
! 	* doc/install.texi2html: Update comment to point to the PR instead
! 	of "makeinfo 4.7 brokenness" (it's not specific to that version).
  
! 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/107703
! 	* optabs.cc (expand_fix): For conversions from BFmode to integral,
! 	use shifts to convert it to SFmode first and then convert SFmode
! 	to integral.
  
! 2023-03-10  Andrew Pinski  <apinski@marvell.com>
  
! 	* config/aarch64/aarch64.md: Add a new define_split
! 	to help combine.
  
! 2023-03-10  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-structalias.cc (solve_graph): Immediately
! 	iterate self-cycles.
  
! 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109008
! 	* range-op-float.cc (float_widen_lhs_range): If not
! 	-frounding-math and not IBM double double format, extend lhs
! 	range just by 0.5ulp rather than 1ulp in each direction.
  
! 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/107998
! 	* config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
! 	$tmake_file.
! 	* config/i386/t-cygwin-w64: Remove.
  
! 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR plugins/108634
! 	* tree-core.h (tree_code_type, tree_code_length): For C++11 or
! 	C++14, don't declare as extern const arrays.
! 	(tree_code_type_tmpl, tree_code_length_tmpl): New types with
! 	static constexpr member arrays for C++11 or C++14.
! 	* tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
! 	tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
! 	(TREE_CODE_LENGTH): For C++11 or C++14 use
! 	tree_code_length_tmpl <0>::tree_code_length instead of
! 	tree_code_length.
! 	* tree.cc (tree_code_type, tree_code_length): Remove.
  
! 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/108464
! 	* common.opt (fcanon-prefix-map): New option.
! 	* opts.cc: Include file-prefix-map.h.
! 	(flag_canon_prefix_map): New variable.
! 	(common_handle_option): Handle OPT_fcanon_prefix_map.
! 	(gen_command_line_string): Ignore OPT_fcanon_prefix_map.
! 	* file-prefix-map.h (flag_canon_prefix_map): Declare.
! 	* file-prefix-map.cc (struct file_prefix_map): Add canonicalize
! 	member.
! 	(add_prefix_map): Initialize canonicalize member from
! 	flag_canon_prefix_map, and if true canonicalize it using lrealpath.
! 	(remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
! 	use lrealpath result only for map->canonicalize map entries.
! 	* lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
! 	* opts-global.cc (handle_common_deferred_options): Clear
! 	flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
! 	* doc/invoke.texi (-fcanon-prefix-map): Document.
! 	(-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
! 	see also for -fcanon-prefix-map.
! 	* doc/cppopts.texi (-fmacro-prefix-map): Likewise.
  
! 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/108079
! 	* cgraphunit.cc (check_global_declaration): Don't warn for unused
! 	variables which have OPT_Wunused_variable warning suppressed.
  
! 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/109008
! 	* range-op-float.cc (float_widen_lhs_range): If lb is
! 	minimum representable finite number or ub is maximum
! 	representable finite number, instead of widening it to
! 	-inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
! 	Temporarily clear flag_finite_math_only when canonicalizing
! 	the widened range.
  
! 2023-03-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
! 	* config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
! 	(gimple_fold_builtin):  Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
! 	(class vleff): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
! 	(vleff): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
! 	(struct fault_load_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(rvv_arg_type_info::get_tree_type): Add size_ptr.
! 	(gimple_folder::gimple_folder): New class.
! 	(gimple_folder::fold): Ditto.
! 	(gimple_fold_builtin): New function.
! 	(get_read_vl_instance): Ditto.
! 	(get_read_vl_decl): Ditto.
! 	* config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
! 	* config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
! 	(get_read_vl_instance): New function.
! 	(get_read_vl_decl):  Ditto.
! 	* config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
! 	(read_vl_insn_p): Ditto.
! 	(available_occurrence_p): Ditto.
! 	(backward_propagate_worthwhile_p): Ditto.
! 	(gen_vsetvl_pat): Adapt for vleff support.
! 	(get_forward_read_vl_insn): New function.
! 	(get_backward_fault_first_load_insn): Ditto.
! 	(source_equal_p): Adapt for vleff support.
! 	(first_ratio_invalid_for_second_sew_p): Remove.
! 	(first_ratio_invalid_for_second_lmul_p): Ditto.
! 	(first_lmul_less_than_second_lmul_p): Ditto.
! 	(first_ratio_less_than_second_ratio_p): Ditto.
! 	(support_relaxed_compatible_p): New function.
! 	(vector_insn_info::operator>): Remove.
! 	(vector_insn_info::operator>=): Refine.
! 	(vector_insn_info::parse_insn): Adapt for vleff support.
! 	(vector_insn_info::compatible_p): Ditto.
! 	(vector_insn_info::update_fault_first_load_avl): New function.
! 	(pass_vsetvl::transfer_after): Adapt for vleff support.
! 	(pass_vsetvl::demand_fusion): Ditto.
! 	(pass_vsetvl::cleanup_insns): Ditto.
! 	* config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
! 	redundant condtions.
! 	* config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
! 	* config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
! 	* config/riscv/riscv.md: Adapt for vleff support.
! 	* config/riscv/t-riscv: Ditto.
! 	* config/riscv/vector-iterators.md: New iterator.
! 	* config/riscv/vector.md (read_vlsi): New pattern.
! 	(read_vldi_zero_extend): Ditto.
! 	(@pred_fault_load<mode>): Ditto.
  
! 2023-03-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins.cc
! 	(function_expander::use_ternop_insn): Use maybe_gen_insn instead.
! 	(function_expander::use_widen_ternop_insn): Ditto.
! 	* optabs.cc (maybe_gen_insn): Extend nops handling.
  
! 2023-03-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
! 	patterns according to RVV ISA.
! 	* config/riscv/vector-iterators.md: New iterators.
! 	* config/riscv/vector.md
! 	(@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
! 	(@pred_indexed_<order>load<mode>_same_eew): New pattern.
! 	(@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
! 	(@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
! 	(@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
! 	(@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
! 	(@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
! 	(@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
! 	(@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
! 	(@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
  
! 2023-03-10  Michael Collison  <collison@rivosinc.com>
  
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Use
! 	result of constant_lower_bound instead of vf for the lower
! 	bound of the epilog loop trip count.
  
! 2023-03-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	* passes.cc (emergency_dump_function): Finish graph generation.
  
! 2023-03-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
! 	and bottom bit only.
  
! 2023-03-09  Andrew Pinski  <apinski@marvell.com>
  
! 	PR tree-optimization/108980
! 	* gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
! 	Reorgnize the call to warning for not strict flexible arrays
! 	to be before the check of warned.
  
! 2023-03-09  Jason Merrill  <jason@redhat.com>
  
! 	* doc/extend.texi: Comment out __is_deducible docs.
  
! 2023-03-09  Jason Merrill  <jason@redhat.com>
  
! 	PR c++/105841
! 	* doc/extend.texi (Type Traits):: Document __is_deducible.
  
! 2023-03-09  Costas Argyris  <costas.argyris@gmail.com>
  
! 	PR driver/108865
! 	* config.host: add object for x86_64-*-mingw*.
! 	* config/i386/sym-mingw32.cc: dummy file to attach
! 	symbol.
! 	* config/i386/utf8-mingw32.rc: windres resource file.
! 	* config/i386/winnt-utf8.manifest: XML manifest to
! 	enable UTF-8.
! 	* config/i386/x-mingw32: reference to x-mingw32-utf8.
! 	* config/i386/x-mingw32-utf8: Makefile fragment to
! 	embed UTF-8 manifest.
  
! 2023-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* lra-constraints.cc (process_alt_operands): Use operand modes for
! 	clobbered regs instead of the biggest access mode.
  
! 2023-03-09  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/108995
! 	* fold-const.cc (extract_muldiv_1): Avoid folding
! 	(CST * b) / CST2 when sanitizing overflow and we rely on
! 	overflow being undefined.
  
! 2023-03-09  Jakub Jelinek  <jakub@redhat.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109008
! 	* range-op-float.cc (float_widen_lhs_range): New function.
! 	(foperator_plus::op1_range, foperator_minus::op1_range,
! 	foperator_minus::op2_range, foperator_mult::op1_range,
! 	foperator_div::op1_range, foperator_div::op2_range): Use it.
  
! 2023-03-07  Jonathan Grant  <jg@jguk.org>
  
! 	PR sanitizer/81649
! 	* doc/invoke.texi (Instrumentation Options):  Clarify
! 	LeakSanitizer behavior.
  
! 2023-03-07  Benson Muite  <benson_muite@emailplus.org>
  
! 	* doc/install.texi (Prerequisites): Add link to gmplib.org.
  
! 2023-03-07  Pan Li  <pan2.li@intel.com>
! 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/108185
! 	PR target/108654
! 	* config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
! 	modes.
! 	* config/riscv/riscv.cc (riscv_v_adjust_precision): New.
! 	* config/riscv/riscv.h (riscv_v_adjust_precision): New.
! 	* genmodes.cc (adj_precision): New.
! 	(ADJUST_PRECISION): New.
! 	(emit_mode_adjustments): Handle ADJUST_PRECISION.
  
! 2023-03-07  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* doc/sourcebuild.texi: Document check_effective_target_tail_call.
  
! 2023-03-06  Paul-Antoine Arras  <pa@codesourcery.com>
  
! 	* config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
! 	{s|u}{max|min} in QI, HI and DI modes.
! 	(<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
! 	(cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
! 	(cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
! 	* config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
! 	saved in SGPRs.
  
! 2023-03-06  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109025
! 	* tree-vect-loop.cc (vect_is_simple_reduction): Verify
! 	the inner LC PHI use is the inner loop PHI latch definition
! 	before classifying an outer PHI as double reduction.
  
! 2023-03-06  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR target/108429
! 	* config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
! 	generic.
! 	(X86_TUNE_USE_SCATTER_4PARTS): Likewise.
! 	(X86_TUNE_USE_SCATTER): Likewise.
  
! 2023-03-06  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/109000
! 	* config/loongarch/loongarch.h (FP_RETURN): Use
! 	TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
! 	(UNITS_PER_FP_ARG): Likewise.
  
! 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
! 	(pass_vsetvl::backward_demand_fusion): Ditto.
  
! 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
! 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
  
! 	* config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
! 	instructions.
! 	(riscv_sm3p1_<mode>): New.
! 	(riscv_sm4ed_<mode>): New.
! 	(riscv_sm4ks_<mode>): New.
! 	* config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
! 	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
! 	ZKSH's built-in functions.
  
! 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
! 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
  
! 	* config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
! 	(riscv_sha256sig1_<mode>): New.
! 	(riscv_sha256sum0_<mode>): New.
! 	(riscv_sha256sum1_<mode>): New.
! 	(riscv_sha512sig0h): New.
! 	(riscv_sha512sig0l): New.
! 	(riscv_sha512sig1h): New.
! 	(riscv_sha512sig1l): New.
! 	(riscv_sha512sum0r): New.
! 	(riscv_sha512sum1r): New.
! 	(riscv_sha512sig0): New.
! 	(riscv_sha512sig1): New.
! 	(riscv_sha512sum0): New.
! 	(riscv_sha512sum1): New.
! 	* config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
! 	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
! 	built-in functions.
! 	(DIRECT_BUILTIN): Add new.
  
! 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
! 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
  
! 	* config/riscv/constraints.md (D03): Add constants of bs and rnum.
! 	(DsA): New.
! 	* config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
! 	(riscv_aes32dsmi): New.
! 	(riscv_aes64ds): New.
! 	(riscv_aes64dsm): New.
! 	(riscv_aes64im): New.
! 	(riscv_aes64ks1i): New.
! 	(riscv_aes64ks2): New.
! 	(riscv_aes32esi): New.
! 	(riscv_aes32esmi): New.
! 	(riscv_aes64es): New.
! 	(riscv_aes64esm): New.
! 	* config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
! 	* config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
! 	ZKNE's built-in functions.
  
! 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
! 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
  
! 	* config/riscv/bitmanip.md: Add ZBKB's instructions.
! 	* config/riscv/riscv-builtins.cc (AVAIL): Add new.
! 	* config/riscv/riscv.md: Add new type for crypto instructions.
! 	* config/riscv/crypto.md: Add Scalar Cryptography extension's machine
! 	description file.
! 	* config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
! 	extension's built-in function file.
  
! 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
! 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
  
! 	* config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
! 	(RISCV_FTYPE_NAME3): New.
! 	(RISCV_ATYPE_QI): New.
! 	(RISCV_ATYPE_HI): New.
! 	(RISCV_FTYPE_ATYPES2): New.
! 	(RISCV_FTYPE_ATYPES3): New.
! 	* config/riscv/riscv-ftypes.def (2): New.
! 	(3): New.
  
! 2023-03-05  Vineet Gupta  <vineetg@rivosinc.com>
  
! 	* config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
! 	use exact_log2().
  
! 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
! 	    kito-cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/predicates.md (vector_any_register_operand): New predicate.
! 	* config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
! 	(riscv_register_pragmas): Add builtin function check call.
! 	* config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
! 	(check_builtin_call): New function.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
! 	(class vreinterpret): Ditto.
! 	(class vlmul_ext): Ditto.
! 	(class vlmul_trunc): Ditto.
! 	(class vset): Ditto.
! 	(class vget): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
! 	(vluxei16): Ditto.
! 	(vluxei32): Ditto.
! 	(vluxei64): Ditto.
! 	(vloxei8): Ditto.
! 	(vloxei16): Ditto.
! 	(vloxei32): Ditto.
! 	(vloxei64): Ditto.
! 	(vsuxei8): Ditto.
! 	(vsuxei16): Ditto.
! 	(vsuxei32): Ditto.
! 	(vsuxei64): Ditto.
! 	(vsoxei8): Ditto.
! 	(vsoxei16): Ditto.
! 	(vsoxei32): Ditto.
! 	(vsoxei64): Ditto.
! 	(vundefined): Add new intrinsic.
! 	(vreinterpret): Ditto.
! 	(vlmul_ext): Ditto.
! 	(vlmul_trunc): Ditto.
! 	(vset): Ditto.
! 	(vget): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
! 	(struct narrow_alu_def): Ditto.
! 	(struct reduc_alu_def): Ditto.
! 	(struct vundefined_def): Ditto.
! 	(struct misc_def): Ditto.
! 	(struct vset_def): Ditto.
! 	(struct vget_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
! 	(DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
! 	(DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
! 	(DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
! 	(DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_LMUL1_OPS): Ditto.
! 	(DEF_RVV_LMUL2_OPS): Ditto.
! 	(DEF_RVV_LMUL4_OPS): Ditto.
! 	(vint16mf4_t): Ditto.
! 	(vint16mf2_t): Ditto.
! 	(vint16m1_t): Ditto.
! 	(vint16m2_t): Ditto.
! 	(vint16m4_t): Ditto.
! 	(vint16m8_t): Ditto.
! 	(vint32mf2_t): Ditto.
! 	(vint32m1_t): Ditto.
! 	(vint32m2_t): Ditto.
! 	(vint32m4_t): Ditto.
! 	(vint32m8_t): Ditto.
! 	(vint64m1_t): Ditto.
! 	(vint64m2_t): Ditto.
! 	(vint64m4_t): Ditto.
! 	(vint64m8_t): Ditto.
! 	(vuint16mf4_t): Ditto.
! 	(vuint16mf2_t): Ditto.
! 	(vuint16m1_t): Ditto.
! 	(vuint16m2_t): Ditto.
! 	(vuint16m4_t): Ditto.
! 	(vuint16m8_t): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	(vint8mf4_t): Ditto.
! 	(vint8mf2_t): Ditto.
! 	(vint8m1_t): Ditto.
! 	(vint8m2_t): Ditto.
! 	(vint8m4_t): Ditto.
! 	(vint8m8_t): Ditto.
! 	(vuint8mf4_t): Ditto.
! 	(vuint8mf2_t): Ditto.
! 	(vuint8m1_t): Ditto.
! 	(vuint8m2_t): Ditto.
! 	(vuint8m4_t): Ditto.
! 	(vuint8m8_t): Ditto.
! 	(vint8mf8_t): Ditto.
! 	(vuint8mf8_t): Ditto.
! 	(vfloat32mf2_t): Ditto.
! 	(vfloat32m1_t): Ditto.
! 	(vfloat32m2_t): Ditto.
! 	(vfloat32m4_t): Ditto.
! 	(vfloat64m1_t): Ditto.
! 	(vfloat64m2_t): Ditto.
! 	(vfloat64m4_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
! 	(DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
! 	(DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
! 	(DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
! 	(DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
! 	(DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
! 	(DEF_RVV_LMUL1_OPS): Ditto.
! 	(DEF_RVV_LMUL2_OPS): Ditto.
! 	(DEF_RVV_LMUL4_OPS): Ditto.
! 	(DEF_RVV_TYPE_INDEX): Ditto.
! 	(required_extensions_p): Adapt for new intrinsic support/
! 	(get_required_extensions): New function.
! 	(check_required_extensions): Ditto.
! 	(unsigned_base_type_p): Remove.
! 	(rvv_arg_type_info::get_scalar_ptr_type): New function.
! 	(get_mode_for_bitsize): Remove.
! 	(rvv_arg_type_info::get_scalar_const_ptr_type): New function.
! 	(rvv_arg_type_info::get_base_vector_type): Ditto.
! 	(rvv_arg_type_info::get_function_type_index): Ditto.
! 	(DEF_RVV_BASE_TYPE): New def.
! 	(function_builder::apply_predication): New class.
! 	(function_expander::mask_mode): Ditto.
! 	(function_checker::function_checker): Ditto.
! 	(function_checker::report_non_ice): Ditto.
! 	(function_checker::report_out_of_range): Ditto.
! 	(function_checker::require_immediate): Ditto.
! 	(function_checker::require_immediate_range): Ditto.
! 	(function_checker::check): Ditto.
! 	(check_builtin_call): Ditto.
! 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
! 	(DEF_RVV_BASE_TYPE): Ditto.
! 	(DEF_RVV_TYPE_INDEX): Ditto.
! 	(vbool64_t): Ditto.
! 	(vbool32_t): Ditto.
! 	(vbool16_t): Ditto.
! 	(vbool8_t): Ditto.
! 	(vbool4_t): Ditto.
! 	(vbool2_t): Ditto.
! 	(vbool1_t): Ditto.
! 	(vuint8mf8_t): Ditto.
! 	(vuint8mf4_t): Ditto.
! 	(vuint8mf2_t): Ditto.
! 	(vuint8m1_t): Ditto.
! 	(vuint8m2_t): Ditto.
! 	(vint8m4_t): Ditto.
! 	(vuint8m4_t): Ditto.
! 	(vint8m8_t): Ditto.
! 	(vuint8m8_t): Ditto.
! 	(vint16mf4_t): Ditto.
! 	(vuint16mf2_t): Ditto.
! 	(vuint16m1_t): Ditto.
! 	(vuint16m2_t): Ditto.
! 	(vuint16m4_t): Ditto.
! 	(vuint16m8_t): Ditto.
! 	(vint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	(vfloat32mf2_t): Ditto.
! 	(vfloat32m1_t): Ditto.
! 	(vfloat32m2_t): Ditto.
! 	(vfloat32m4_t): Ditto.
! 	(vfloat32m8_t): Ditto.
! 	(vfloat64m1_t): Ditto.
! 	(vfloat64m4_t): Ditto.
! 	(vector): Move it def.
! 	(scalar): Ditto.
! 	(mask): Ditto.
! 	(signed_vector): Ditto.
! 	(unsigned_vector): Ditto.
! 	(unsigned_scalar): Ditto.
! 	(vector_ptr): Ditto.
! 	(scalar_ptr): Ditto.
! 	(scalar_const_ptr): Ditto.
! 	(void): Ditto.
! 	(size): Ditto.
! 	(ptrdiff): Ditto.
! 	(unsigned_long): Ditto.
! 	(long): Ditto.
! 	(eew8_index): Ditto.
! 	(eew16_index): Ditto.
! 	(eew32_index): Ditto.
! 	(eew64_index): Ditto.
! 	(shift_vector): Ditto.
! 	(double_trunc_vector): Ditto.
! 	(quad_trunc_vector): Ditto.
! 	(oct_trunc_vector): Ditto.
! 	(double_trunc_scalar): Ditto.
! 	(double_trunc_signed_vector): Ditto.
! 	(double_trunc_unsigned_vector): Ditto.
! 	(double_trunc_unsigned_scalar): Ditto.
! 	(double_trunc_float_vector): Ditto.
! 	(float_vector): Ditto.
! 	(lmul1_vector): Ditto.
! 	(widen_lmul1_vector): Ditto.
! 	(eew8_interpret): Ditto.
! 	(eew16_interpret): Ditto.
! 	(eew32_interpret): Ditto.
! 	(eew64_interpret): Ditto.
! 	(vlmul_ext_x2): Ditto.
! 	(vlmul_ext_x4): Ditto.
! 	(vlmul_ext_x8): Ditto.
! 	(vlmul_ext_x16): Ditto.
! 	(vlmul_ext_x32): Ditto.
! 	(vlmul_ext_x64): Ditto.
! 	* config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
! 	(struct function_type_info): New function.
! 	(struct rvv_arg_type_info): Ditto.
! 	(class function_checker): New class.
! 	(rvv_arg_type_info::get_scalar_type): New function.
! 	(rvv_arg_type_info::get_vector_type): Ditto.
! 	(function_expander::ret_mode): New function.
! 	(function_checker::arg_mode): Ditto.
! 	(function_checker::ret_mode): Ditto.
! 	* config/riscv/t-riscv: Add generator.
! 	* config/riscv/vector-iterators.md: New iterators.
! 	* config/riscv/vector.md (vundefined<mode>): New pattern.
! 	(@vundefined<mode>): Ditto.
! 	(@vreinterpret<mode>): Ditto.
! 	(@vlmul_extx2<mode>): Ditto.
! 	(@vlmul_extx4<mode>): Ditto.
! 	(@vlmul_extx8<mode>): Ditto.
! 	(@vlmul_extx16<mode>): Ditto.
! 	(@vlmul_extx32<mode>): Ditto.
! 	(@vlmul_extx64<mode>): Ditto.
! 	(*vlmul_extx2<mode>): Ditto.
! 	(*vlmul_extx4<mode>): Ditto.
! 	(*vlmul_extx8<mode>): Ditto.
! 	(*vlmul_extx16<mode>): Ditto.
! 	(*vlmul_extx32<mode>): Ditto.
! 	(*vlmul_extx64<mode>): Ditto.
! 	* config/riscv/genrvv-type-indexer.cc: New file.
  
! 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (enum vlen_enum): New enum.
! 	(slide1_sew64_helper): New function.
! 	* config/riscv/riscv-v.cc (compute_vlmax): Ditto.
! 	(get_unknown_min_value): Ditto.
! 	(force_vector_length_operand): Ditto.
! 	(gen_no_side_effects_vsetvl_rtx): Ditto.
! 	(get_vl_x2_rtx): Ditto.
! 	(slide1_sew64_helper): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
! 	(class vrgather): Ditto.
! 	(class vrgatherei16): Ditto.
! 	(class vcompress): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
! 	(vslidedown): Ditto.
! 	(vslide1up): Ditto.
! 	(vslide1down): Ditto.
! 	(vfslide1up): Ditto.
! 	(vfslide1down): Ditto.
! 	(vrgather): Ditto.
! 	(vrgatherei16): Ditto.
! 	(vcompress): Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
! 	(vint8mf8_t): Ditto.
! 	(vint8mf4_t): Ditto.
! 	(vint8mf2_t): Ditto.
! 	(vint8m1_t): Ditto.
! 	(vint8m2_t): Ditto.
! 	(vint8m4_t): Ditto.
! 	(vint16mf4_t): Ditto.
! 	(vint16mf2_t): Ditto.
! 	(vint16m1_t): Ditto.
! 	(vint16m2_t): Ditto.
! 	(vint16m4_t): Ditto.
! 	(vint16m8_t): Ditto.
! 	(vint32mf2_t): Ditto.
! 	(vint32m1_t): Ditto.
! 	(vint32m2_t): Ditto.
! 	(vint32m4_t): Ditto.
! 	(vint32m8_t): Ditto.
! 	(vint64m1_t): Ditto.
! 	(vint64m2_t): Ditto.
! 	(vint64m4_t): Ditto.
! 	(vint64m8_t): Ditto.
! 	(vuint8mf8_t): Ditto.
! 	(vuint8mf4_t): Ditto.
! 	(vuint8mf2_t): Ditto.
! 	(vuint8m1_t): Ditto.
! 	(vuint8m2_t): Ditto.
! 	(vuint8m4_t): Ditto.
! 	(vuint16mf4_t): Ditto.
! 	(vuint16mf2_t): Ditto.
! 	(vuint16m1_t): Ditto.
! 	(vuint16m2_t): Ditto.
! 	(vuint16m4_t): Ditto.
! 	(vuint16m8_t): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	(vfloat32mf2_t): Ditto.
! 	(vfloat32m1_t): Ditto.
! 	(vfloat32m2_t): Ditto.
! 	(vfloat32m4_t): Ditto.
! 	(vfloat32m8_t): Ditto.
! 	(vfloat64m1_t): Ditto.
! 	(vfloat64m2_t): Ditto.
! 	(vfloat64m4_t): Ditto.
! 	(vfloat64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
! 	* config/riscv/riscv.md: Adjust RVV instruction types.
! 	* config/riscv/vector-iterators.md (down): New iterator.
! 	(=vd,vr): New attribute.
! 	(UNSPEC_VSLIDE1UP): New unspec.
! 	* config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
! 	(*pred_slide<ud><mode>): Ditto.
! 	(*pred_slide<ud><mode>_extended): Ditto.
! 	(@pred_gather<mode>): Ditto.
! 	(@pred_gather<mode>_scalar): Ditto.
! 	(@pred_gatherei16<mode>): Ditto.
! 	(@pred_compress<mode>): Ditto.
  
! 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
  
! 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/constraints.md (Wb1): New constraint.
! 	* config/riscv/predicates.md
! 	(vector_least_significant_set_mask_operand): New predicate.
! 	(vector_broadcast_mask_operand): Ditto.
! 	* config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
! 	(gen_scalar_move_mask): New function.
! 	* config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
! 	(class vmv_s): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
! 	(vmv_s): Ditto.
! 	(vfmv_f): Ditto.
! 	(vfmv_s): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
! 	(function_expander::use_exact_insn): New function.
! 	(function_expander::use_contiguous_load_insn): New function.
! 	(function_expander::use_contiguous_store_insn): New function.
! 	(function_expander::use_ternop_insn): New function.
! 	(function_expander::use_widen_ternop_insn): New function.
! 	(function_expander::use_scalar_move_insn): New function.
! 	* config/riscv/riscv-vector-builtins.def (s): New operand suffix.
! 	* config/riscv/riscv-vector-builtins.h
! 	(function_expander::add_scalar_move_mask_operand): New class.
! 	* config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
! 	(scalar_move_insn_p): Ditto.
! 	(has_vsetvl_killed_avl_p): Ditto.
! 	(anticipatable_occurrence_p): Ditto.
! 	(insert_vsetvl): Ditto.
! 	(get_vl_vtype_info): Ditto.
! 	(calculate_sew): Ditto.
! 	(calculate_vlmul): Ditto.
! 	(incompatible_avl_p): Ditto.
! 	(different_sew_p): Ditto.
! 	(different_lmul_p): Ditto.
! 	(different_ratio_p): Ditto.
! 	(different_tail_policy_p): Ditto.
! 	(different_mask_policy_p): Ditto.
! 	(possible_zero_avl_p): Ditto.
! 	(first_ratio_invalid_for_second_sew_p): Ditto.
! 	(first_ratio_invalid_for_second_lmul_p): Ditto.
! 	(second_ratio_invalid_for_first_sew_p): Ditto.
! 	(second_ratio_invalid_for_first_lmul_p): Ditto.
! 	(second_sew_less_than_first_sew_p): Ditto.
! 	(first_sew_less_than_second_sew_p): Ditto.
! 	(compare_lmul): Ditto.
! 	(second_lmul_less_than_first_lmul_p): Ditto.
! 	(first_lmul_less_than_second_lmul_p): Ditto.
! 	(first_ratio_less_than_second_ratio_p): Ditto.
! 	(second_ratio_less_than_first_ratio_p): Ditto.
! 	(DEF_INCOMPATIBLE_COND): Ditto.
! 	(greatest_sew): Ditto.
! 	(first_sew): Ditto.
! 	(second_sew): Ditto.
! 	(first_vlmul): Ditto.
! 	(second_vlmul): Ditto.
! 	(first_ratio): Ditto.
! 	(second_ratio): Ditto.
! 	(vlmul_for_first_sew_second_ratio): Ditto.
! 	(ratio_for_second_sew_first_vlmul): Ditto.
! 	(DEF_SEW_LMUL_FUSE_RULE): Ditto.
! 	(always_unavailable): Ditto.
! 	(avl_unavailable_p): Ditto.
! 	(sew_unavailable_p): Ditto.
! 	(lmul_unavailable_p): Ditto.
! 	(ge_sew_unavailable_p): Ditto.
! 	(ge_sew_lmul_unavailable_p): Ditto.
! 	(ge_sew_ratio_unavailable_p): Ditto.
! 	(DEF_UNAVAILABLE_COND): Ditto.
! 	(same_sew_lmul_demand_p): Ditto.
! 	(propagate_avl_across_demands_p): Ditto.
! 	(reg_available_p): Ditto.
! 	(avl_info::has_non_zero_avl): Ditto.
! 	(vl_vtype_info::has_non_zero_avl): Ditto.
! 	(vector_insn_info::operator>=): Refactor.
! 	(vector_insn_info::parse_insn): Adjust for scalar move.
! 	(vector_insn_info::demand_vl_vtype): Remove.
! 	(vector_insn_info::compatible_p): New function.
! 	(vector_insn_info::compatible_avl_p): Ditto.
! 	(vector_insn_info::compatible_vtype_p): Ditto.
! 	(vector_insn_info::available_p): Ditto.
! 	(vector_insn_info::merge): Ditto.
! 	(vector_insn_info::fuse_avl): Ditto.
! 	(vector_insn_info::fuse_sew_lmul): Ditto.
! 	(vector_insn_info::fuse_tail_policy): Ditto.
! 	(vector_insn_info::fuse_mask_policy): Ditto.
! 	(vector_insn_info::dump): Ditto.
! 	(vector_infos_manager::release): Ditto.
! 	(pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
! 	(pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
! 	(pass_vsetvl::hard_empty_block_p): Ditto.
! 	(pass_vsetvl::backward_demand_fusion): Ditto.
! 	(pass_vsetvl::forward_demand_fusion): Ditto.
! 	(pass_vsetvl::refine_vsetvls): Ditto.
! 	(pass_vsetvl::cleanup_vsetvls): Ditto.
! 	(pass_vsetvl::commit_vsetvls): Ditto.
! 	(pass_vsetvl::propagate_avl): Ditto.
! 	* config/riscv/riscv-vsetvl.h (enum demand_status): New class.
! 	(struct demands_pair): Ditto.
! 	(struct demands_cond): Ditto.
! 	(struct demands_fuse_rule): Ditto.
! 	* config/riscv/vector-iterators.md: New iterator.
! 	* config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
! 	(*pred_broadcast<mode>): Ditto.
! 	(*pred_broadcast<mode>_extended_scalar): Ditto.
! 	(@pred_extract_first<mode>): Ditto.
! 	(*pred_extract_first<mode>): Ditto.
! 	(@pred_extract_first_trunc<mode>): Ditto.
! 	* config/riscv/riscv-vsetvl.def: New file.
  
! 2023-03-05  Lin Sinan  <sinan.lin@linux.alibaba.com>
  
! 	* config/riscv/bitmanip.md: allow 0 constant in max/min
  	pattern.
  
! 2023-03-05  Lin Sinan  <sinan.lin@linux.alibaba.com>
  
! 	* config/riscv/bitmanip.md: Fix wrong index in the check.
  
! 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/109006
! 	* vec.cc (test_auto_alias): Adjust comment for removal of
! 	m_vecdata.
! 	* read-rtl-function.cc (function_reader::parse_block): Likewise.
! 	* gdbhooks.py: Likewise.
  
! 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR testsuite/108973
! 	* selftest-diagnostic.cc
! 	(test_diagnostic_context::test_diagnostic_context): Set
! 	caret_max_width to 80.
  
! 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
  
! 	* gimple-ssa-warn-access.cc
! 	(pass_waccess::check_dangling_stores): Skip non-stores.
  
! 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
  
! 	* config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
! 	after vmsr and vmrs, and lower the case of P0.
  
! 2023-03-03  Jonathan Wakely  <jwakely@redhat.com>
  
! 	PR middle-end/109006
! 	* gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
  
! 2023-03-03  Jonathan Wakely  <jwakely@redhat.com>
  
! 	PR middle-end/109006
! 	* gdbhooks.py (VecPrinter): Adjust for new vec layout.
  
! 2023-03-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/108986
! 	* gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
! 	Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
! 	suppressed on stmt.  For [static %E] warning, print access_nelts
! 	rather than access_size.  Fix up comment wording.
  
! 2023-03-03  Robin Dapp  <rdapp@linux.ibm.com>
  
! 	* config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
! 	arch14 instead of z16.
  
! 2023-03-03  Anthony Green  <green@moxielogic.com>
  
! 	* config/moxie/moxie.cc (TARGET_LRA_P): Remove.
  
! 2023-03-03  Anthony Green  <green@moxielogic.com>
  
! 	* config/moxie/constraints.md (A, B, W): Change
! 	define_constraint to define_memory_constraint.
  
! 2023-03-03  Xi Ruoyao  <xry111@xry111.site>
  
! 	* toplev.cc (process_options): Fix the spelling of
! 	"-fstack-clash-protection".
  
! 2023-03-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109002
! 	* tree-ssa-pre.cc (compute_partial_antic_aux): Properly
! 	PHI-translate ANTIC_IN.
  
! 2023-03-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108988
! 	* gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
! 	size_type_node before passing it as argument to fwrite.  Formatting
! 	fixes.
  
! 2023-03-03  Richard Biener  <rguenther@suse.de>
  
! 	PR target/108738
! 	* config/i386/i386.opt (--param x86-stv-max-visits): New param.
! 	* doc/invoke.texi (--param x86-stv-max-visits): Document it.
! 	* config/i386/i386-features.h (scalar_chain::max_visits): New.
! 	(scalar_chain::build): Add bitmap parameter, return boolean.
! 	(scalar_chain::add_insn): Likewise.
! 	(scalar_chain::analyze_register_chain): Likewise.
! 	* config/i386/i386-features.cc (scalar_chain::scalar_chain):
! 	Initialize max_visits.
! 	(scalar_chain::analyze_register_chain): When we exhaust
! 	max_visits, abort.  Also abort when running into any
! 	disallowed insn.
! 	(scalar_chain::add_insn): Propagate abort.
! 	(scalar_chain::build): Likewise.  When aborting amend
! 	the set of disallowed insn with the insns set.
! 	(convert_scalars_to_vector): Adjust.  Do not convert aborted
! 	chains.
  
! 2023-03-03  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/108772
! 	* dwarf2out.cc (dwarf2out_late_global_decl): Do not
! 	generate a DIE for a function scope static.
  
! 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
  
! 	* config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
  
! 2023-03-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/108883
! 	* target.h (emit_support_tinfos_callback): New typedef.
! 	* targhooks.h (default_emit_support_tinfos): Declare.
! 	* targhooks.cc (default_emit_support_tinfos): New function.
! 	* target.def (emit_support_tinfos): New target hook.
! 	* doc/tm.texi.in (emit_support_tinfos): Document it.
! 	* doc/tm.texi: Regenerated.
! 	* config/i386/i386.cc (ix86_emit_support_tinfos): New function.
! 	(TARGET_EMIT_SUPPORT_TINFOS): Redefine.
  
! 2023-03-02  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* ira-costs.cc: Include print-rtl.h.
! 	(record_reg_classes, scan_one_insn): Add code to print debug info.
! 	(record_operand_costs): Find and use smaller cost for hard reg
! 	move.
  
! 2023-03-02  Kwok Cheung Yeung  <kcy@codesourcery.com>
! 	    Paul-Antoine Arras  <pa@codesourcery.com>
  
! 	* builtins.cc (mathfn_built_in_explicit): New.
! 	* config/gcn/gcn.cc: Include case-cfn-macros.h.
! 	(mathfn_built_in_explicit): Add prototype.
! 	(gcn_vectorize_builtin_vectorized_function): New.
! 	(gcn_libc_has_function): New.
! 	(TARGET_LIBC_HAS_FUNCTION): Define.
! 	(TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
  
! 2023-03-02  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/108979
! 	* tree-vect-stmts.cc (vectorizable_operation): Don't mask
! 	operations on invariants.
  
! 2023-03-02  Robin Dapp  <rdapp@linux.ibm.com>
  
! 	* config/s390/predicates.md (vll_bias_operand): Add -1 bias.
! 	* config/s390/s390.cc (s390_option_override_internal): Make
! 	partial vector usage the default from z13 on.
! 	* config/s390/vector.md (len_load_v16qi): Add.
! 	(len_store_v16qi): Add.
  
! 2023-03-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
! 	of constant 0 offset.
  
! 2023-03-02  Robert Suchanek  <robert.suchanek@imgtec.com>
  
! 	* config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
! 	instead of long.
! 	* config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
  
! 2023-03-02  Junxian Zhu  <zhujunxian@oss.cipunited.com>
  
! 	* config.gcc: add -with-{no-}msa build option.
! 	* config/mips/mips.h: Likewise.
! 	* doc/install.texi: Likewise.
  
! 2023-03-02  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/108603
! 	* explow.cc (convert_memory_address_addr_space_1): Only wrap
! 	the result of a recursive call in a CONST if no instructions
! 	were emitted.
  
! 2023-03-02  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/108430
! 	* tree-vect-stmts.cc (vectorizable_condition): Fix handling
! 	of inverted condition.
  
! 2023-03-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/108934
! 	* fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
! 	comparison copy the bytes from ptr to a temporary buffer and clearing
! 	padding bits in there.
  
! 2023-03-01  Tobias Burnus  <tobias@codesourcery.com>
  
! 	PR middle-end/108545
! 	* gimplify.cc (struct tree_operand_hash_no_se): New.
! 	(omp_index_mapping_groups_1, omp_index_mapping_groups,
! 	omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
! 	omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
! 	oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
! 	gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
! 	of tree_operand_hash.
  
! 2023-03-01  LIU Hao  <lh_mouse@126.com>
  
! 	PR pch/14940
! 	* config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
! 	Remove the size limit `pch_VA_max_size`
  
! 2023-03-01  Tobias Burnus  <tobias@codesourcery.com>
  
! 	PR middle-end/108546
! 	* omp-low.cc (lower_omp_target): Remove optional handling
! 	on the receiver side, i.e. inside target (data), for
! 	use_device_ptr.
  
! 2023-03-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/108967
! 	* cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
! 	and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
  
! 2023-03-01  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108970
! 	* tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
! 	Check we can copy the BBs.
! 	(slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
  	check.
! 	(vect_do_peeling): Streamline error handling.
  
! 2023-03-01  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108950
! 	* tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
! 	Check oprnd0 is defined in the loop.
! 	* tree-vect-loop.cc (vectorizable_reduction): Record all
! 	operands vector types, compute that of invariants and
! 	properly update their SLP nodes.
  
! 2023-03-01  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/108240
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
! 	implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
  
! 2023-02-28  Qing Zhao  <qing.zhao@oracle.com>
  
! 	PR middle-end/107411
! 	PR middle-end/107411
! 	* gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
! 	xasprintf.
! 	* tree-ssa-uninit.cc (warn_uninit): Handle the case when the
! 	LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
  
! 2023-02-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/108894
! 	* ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
! 	comparison rather than index > bound.
! 	* gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
! 	rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
! 	* doc/invoke.texi (-fsanitize=bounds): Document that whether
! 	flexible array member-like arrays are instrumented or not depends
! 	on -fstrict-flex-arrays* options of strict_flex_array attributes.
! 	(-fsanitize=bounds-strict): Document that flexible array members
! 	are not instrumented.
  
! 2023-02-27  Uroš Bizjak  <ubizjak@gmail.com>
  
! 	PR target/108922
! 	Revert:
! 	* config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
! 	(fmod<mode>3): Ditto.
! 	(fpremxf4_i387): Ditto.
! 	(reminderxf3): Ditto.
! 	(reminder<mode>3): Ditto.
! 	(fprem1xf4_i387): Ditto.
  
! 2023-02-27  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	* simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
! 	generating FFS with mismatched operand and result modes, by using
! 	an explicit SIGN_EXTEND/ZERO_EXTEND.
! 	<case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
! 	<case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
  
! 2023-02-27  Patrick Palka  <ppalka@redhat.com>
  
! 	* hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
! 	* lra-int.h (lra_change_class): Likewise.
! 	* recog.h (which_op_alt): Likewise.
! 	* sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
! 	instead of static.
  
! 2023-02-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
! 	New prototype.
! 	* config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
! 	New function.
! 	* config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
! 	* config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
  
! 2023-02-27  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	* config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
! 	(xtensa_get_config_v3): New functions.
  
! 2023-02-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
! 	* config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
  
! 2023-02-27  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
! 	the macro to 0x1000000000.
  
! 2023-02-25  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	PR modula2/108261
! 	* doc/gm2.texi (-fm2-pathname): New option documented.
! 	(-fm2-pathnameI): New option documented.
! 	(-fm2-prefix=): New option documented.
! 	(-fruntime-modules=): Update default module list.
  
! 2023-02-25  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	PR target/108919
! 	* config/xtensa/xtensa-protos.h
! 	(xtensa_prepare_expand_call): Rename to xtensa_expand_call.
! 	* config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
! 	to xtensa_expand_call.
! 	(xtensa_expand_call): Emit the call and add a clobber expression
! 	for the static chain to it in case of windowed ABI.
! 	* config/xtensa/xtensa.md (call, call_value, sibcall)
! 	(sibcall_value): Call xtensa_expand_call and complete expansion
! 	right after that call.
  
! 2023-02-24  Richard Biener  <rguenther@suse.de>
  
! 	* vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
! 	(vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
! 	changing alignment of vec<T, A, vl_embed> and simplifying
! 	address.
! 	(vec<T, A, vl_embed>::address): Compute as this + 1.
! 	(vec<T, A, vl_embed>::embedded_size): Use sizeof the
! 	vector instead of the offset of the m_vecdata member.
! 	(auto_vec<T, N>::m_data): Turn storage into
! 	uninitialized unsigned char.
! 	(auto_vec<T, N>::auto_vec): Allow allocation of one
! 	stack member.  Initialize m_vec in a special way to
! 	avoid later stringop overflow diagnostics.
! 	* vec.cc (test_auto_alias): New.
! 	(vec_cc_tests): Call it.
  
! 2023-02-24  Richard Biener  <rguenther@suse.de>
  
! 	* vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
! 	take a const reference to the object, use address to
! 	access data.
! 	(vec<T, A, vl_embed>::contains): Use address to access data.
! 	(vec<T, A, vl_embed>::operator[]): Use address instead of
! 	m_vecdata to access data.
! 	(vec<T, A, vl_embed>::iterate): Likewise.
! 	(vec<T, A, vl_embed>::copy): Likewise.
! 	(vec<T, A, vl_embed>::quick_push): Likewise.
! 	(vec<T, A, vl_embed>::pop): Likewise.
! 	(vec<T, A, vl_embed>::quick_insert): Likewise.
! 	(vec<T, A, vl_embed>::ordered_remove): Likewise.
! 	(vec<T, A, vl_embed>::unordered_remove): Likewise.
! 	(vec<T, A, vl_embed>::block_remove): Likewise.
! 	(vec<T, A, vl_heap>::address): Likewise.
  
! 2023-02-24  Martin Liska  <mliska@suse.cz>
  
! 	PR sanitizer/108834
! 	* asan.cc (asan_add_global): Use proper TU name for normal
! 	global variables (and aux_base_name for the artificial one).
  
! 2023-02-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/i386/i386-builtin.def: Update description of BDESC
! 	and BDESC_FIRST in file comment to include mask2.
  
! 2023-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
! 	* config/aarch64/aarch64-cores.def (FLAGS): Update comment.
  
! 2023-02-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/108854
! 	* cgraphclones.cc (duplicate_thunk_for_node): If no parameter
! 	changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
! 	nodes and adjust their DECL_CONTEXT.
  
! 2023-02-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/108881
! 	* config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
! 	__builtin_ia32_cvtne2ps2bf16_v16bf_mask,
! 	__builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
! 	__builtin_ia32_cvtne2ps2bf16_v8bf,
! 	__builtin_ia32_cvtne2ps2bf16_v8bf_mask,
! 	__builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
! 	__builtin_ia32_cvtneps2bf16_v8sf_mask,
! 	__builtin_ia32_cvtneps2bf16_v8sf_maskz,
! 	__builtin_ia32_cvtneps2bf16_v4sf_mask,
! 	__builtin_ia32_cvtneps2bf16_v4sf_maskz,
! 	__builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
! 	__builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
! 	__builtin_ia32_dpbf16ps_v4sf_mask,
! 	__builtin_ia32_dpbf16ps_v4sf_maskz): Require also
! 	OPTION_MASK_ISA_AVX512VL.
  
! 2023-02-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
  
! 	* config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
! 	Add non-compact 32-bit multilibs.
  
! 2023-02-24  Junxian Zhu  <zhujunxian@oss.cipunited.com>
  
! 	* config/mips/mips.md (*clo<mode>2): New pattern.
  
! 2023-02-24  Prachi Godbole  <prachi.godbole@imgtec.com>
  
! 	* config/mips/mips.h (machine_function): New variable
! 	use_hazard_barrier_return_p.
! 	* config/mips/mips.md (UNSPEC_JRHB): New unspec.
! 	(mips_hb_return_internal): New insn pattern.
! 	* config/mips/mips.cc (mips_attribute_table): Add attribute
! 	use_hazard_barrier_return.
! 	(mips_use_hazard_barrier_return_p): New static function.
! 	(mips_function_attr_inlinable_p): Likewise.
! 	(mips_compute_frame_info): Set use_hazard_barrier_return_p.
! 	Emit error for unsupported architecture choice.
! 	(mips_function_ok_for_sibcall, mips_can_use_return_insn):
! 	Return false for use_hazard_barrier_return.
! 	(mips_expand_epilogue): Emit hazard barrier return.
! 	* doc/extend.texi: Document use_hazard_barrier_return.
  
! 2023-02-23  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	* config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
! 	(coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
! 	for the gcc-internal headers.
  
! 2023-02-23  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	* config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
! 	and $(POSTCOMPILE) instead of manual dependency listing.
! 	* config/xtensa/xtensa-dynconfig.c: Rename to ...
! 	* config/xtensa/xtensa-dynconfig.cc: ... this.
  
! 2023-02-23  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* doc/cfg.texi: Reorder index entries around @items.
! 	* doc/cpp.texi: Ditto.
! 	* doc/cppenv.texi: Ditto.
! 	* doc/cppopts.texi: Ditto.
! 	* doc/generic.texi: Ditto.
! 	* doc/install.texi: Ditto.
! 	* doc/extend.texi: Ditto.
! 	* doc/invoke.texi: Ditto.
! 	* doc/md.texi: Ditto.
! 	* doc/rtl.texi: Ditto.
! 	* doc/tm.texi.in: Ditto.
! 	* doc/trouble.texi: Ditto.
! 	* doc/tm.texi: Regenerate.
  
! 2023-02-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md: New peephole2 pattern that eliminates
! 	the occurrence of general-purpose register used only once and for
! 	transferring intermediate value.
  
! 2023-02-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (machine_function): Add new member
! 	'eliminated_callee_saved_bmp'.
! 	(xtensa_can_eliminate_callee_saved_reg_p): New function to
! 	determine whether the register can be eliminated or not.
! 	(xtensa_expand_prologue): Add invoking the above function and
! 	elimination the use of callee-saved register by using its stack
! 	slot through the stack pointer (or the frame pointer if needed)
! 	directly.
! 	(xtensa_expand_prologue): Modify to not emit register restoration
! 	insn from its stack slot if the register is already eliminated.
  
! 2023-02-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR translation/108890
! 	* config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
! 	around fatal_error format strings.
  
! 2023-02-23  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-structalias.cc (handle_lhs_call): Do not
! 	re-create rhsc, only truncate it.
  
! 2023-02-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/106258
! 	* ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
! 	BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
  
! 2023-02-23  Richard Biener  <rguenther@suse.de>
  
! 	* tree-if-conv.cc (tree_if_conversion): Properly manage
! 	memory of refs and the contained data references.
  
! 2023-02-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108888
! 	* tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
! 	calls to predicate.
! 	(predicate_statements): Only predicate calls with PLF_2.
  
! 2023-02-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md
! 	(zero_cost_loop_start, zero_cost_loop_end, loop_end):
! 	Add missing "SI:" to PLUS RTXes.
  
! 2023-02-23  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	PR target/108876
! 	* config/xtensa/xtensa.cc (xtensa_expand_epilogue):
! 	Emit (use (reg:SI A0_REG)) at the end in the sibling call
! 	(i.e. the same place as (return) in the normal call).
  
! 2023-02-23  Max Filippov  <jcmvbkbc@gmail.com>
  
  	Revert:
! 	2023-02-21  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	PR target/108876
! 	* config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
! 	for A0_REG.
! 	* config/xtensa/xtensa.md (sibcall, sibcall_internal)
! 	(sibcall_value, sibcall_value_internal): Add 'use' expression
! 	for A0_REG.
  
! 2023-02-23  Arsen Arsenović  <arsen@aarsen.me>
  
! 	* doc/cppdiropts.texi: Reorder @opindex commands to precede
! 	@items they relate to.
! 	* doc/cppopts.texi: Ditto.
! 	* doc/cppwarnopts.texi: Ditto.
! 	* doc/invoke.texi: Ditto.
! 	* doc/lto.texi: Ditto.
  
! 2023-02-22  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* internal-fn.cc (expand_MASK_CALL): New.
! 	* internal-fn.def (MASK_CALL): New.
! 	* internal-fn.h (expand_MASK_CALL): New prototype.
! 	* omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
! 	for mask arguments also.
! 	* tree-if-conv.cc: Include cgraph.h.
! 	(if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
! 	(predicate_statements): Convert functions to IFN_MASK_CALL.
! 	* tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
! 	IFN_MASK_CALL as a SIMD function call.
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
! 	IFN_MASK_CALL as an inbranch SIMD function call.
! 	Generate the mask vector arguments.
  
! 2023-02-22  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
! 	(class widen_reducop): Ditto.
! 	(class freducop): Ditto.
! 	(class widen_freducop): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
! 	(vredmaxu): Ditto.
! 	(vredmax): Ditto.
! 	(vredminu): Ditto.
! 	(vredmin): Ditto.
! 	(vredand): Ditto.
! 	(vredor): Ditto.
! 	(vredxor): Ditto.
! 	(vwredsum): Ditto.
! 	(vwredsumu): Ditto.
! 	(vfredusum): Ditto.
! 	(vfredosum): Ditto.
! 	(vfredmax): Ditto.
! 	(vfredmin): Ditto.
! 	(vfwredosum): Ditto.
! 	(vfwredusum): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
! 	(DEF_RVV_WU_OPS): Ditto.
! 	(DEF_RVV_WF_OPS): Ditto.
! 	(vint8mf8_t): Ditto.
! 	(vint8mf4_t): Ditto.
! 	(vint8mf2_t): Ditto.
! 	(vint8m1_t): Ditto.
! 	(vint8m2_t): Ditto.
! 	(vint8m4_t): Ditto.
! 	(vint8m8_t): Ditto.
! 	(vint16mf4_t): Ditto.
! 	(vint16mf2_t): Ditto.
! 	(vint16m1_t): Ditto.
! 	(vint16m2_t): Ditto.
! 	(vint16m4_t): Ditto.
! 	(vint16m8_t): Ditto.
! 	(vint32mf2_t): Ditto.
! 	(vint32m1_t): Ditto.
! 	(vint32m2_t): Ditto.
! 	(vint32m4_t): Ditto.
! 	(vint32m8_t): Ditto.
! 	(vuint8mf8_t): Ditto.
! 	(vuint8mf4_t): Ditto.
! 	(vuint8mf2_t): Ditto.
! 	(vuint8m1_t): Ditto.
! 	(vuint8m2_t): Ditto.
! 	(vuint8m4_t): Ditto.
! 	(vuint8m8_t): Ditto.
! 	(vuint16mf4_t): Ditto.
! 	(vuint16mf2_t): Ditto.
! 	(vuint16m1_t): Ditto.
! 	(vuint16m2_t): Ditto.
! 	(vuint16m4_t): Ditto.
! 	(vuint16m8_t): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vfloat32mf2_t): Ditto.
! 	(vfloat32m1_t): Ditto.
! 	(vfloat32m2_t): Ditto.
! 	(vfloat32m4_t): Ditto.
! 	(vfloat32m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
! 	(DEF_RVV_WU_OPS): Ditto.
! 	(DEF_RVV_WF_OPS): Ditto.
! 	(required_extensions_p): Add reduction support.
! 	(rvv_arg_type_info::get_base_vector_type): Ditto.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
! 	* config/riscv/riscv.md: Ditto.
! 	* config/riscv/vector-iterators.md (minu): Ditto.
! 	* config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
! 	(@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
! 	(@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
! 	(@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
! 	(@pred_reduc_plus<order><mode><vlmul1>): Ditto.
! 	(@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
! 	(@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
  
! 2023-02-22  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/iterators.md: New iterator.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
! 	(enum ternop_type): New enum.
! 	(class vmacc): New class.
! 	(class imac): Ditto.
! 	(class vnmsac): Ditto.
! 	(enum widen_ternop_type): New enum.
! 	(class vmadd): Ditto.
! 	(class vnmsub): Ditto.
! 	(class iwmac): Ditto.
! 	(class vwmacc): Ditto.
! 	(class vwmaccu): Ditto.
! 	(class vwmaccsu): Ditto.
! 	(class vwmaccus): Ditto.
! 	(class reverse_binop): Ditto.
! 	(class vfmacc): Ditto.
! 	(class vfnmsac): Ditto.
! 	(class vfmadd): Ditto.
! 	(class vfnmsub): Ditto.
! 	(class vfnmacc): Ditto.
! 	(class vfmsac): Ditto.
! 	(class vfnmadd): Ditto.
! 	(class vfmsub): Ditto.
! 	(class vfwmacc): Ditto.
! 	(class vfwnmacc): Ditto.
! 	(class vfwmsac): Ditto.
! 	(class vfwnmsac): Ditto.
! 	(class float_misc): Ditto.
! 	(class fcmp): Ditto.
! 	(class vfclass): Ditto.
! 	(class vfcvt_x): Ditto.
! 	(class vfcvt_rtz_x): Ditto.
! 	(class vfcvt_f): Ditto.
! 	(class vfwcvt_x): Ditto.
! 	(class vfwcvt_rtz_x): Ditto.
! 	(class vfwcvt_f): Ditto.
! 	(class vfncvt_x): Ditto.
! 	(class vfncvt_rtz_x): Ditto.
! 	(class vfncvt_f): Ditto.
! 	(class vfncvt_rod_f): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h:
! 	* config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
! 	(vsext): Ditto.
! 	(vfadd): Ditto.
! 	(vfsub): Ditto.
! 	(vfrsub): Ditto.
! 	(vfwadd): Ditto.
! 	(vfwsub): Ditto.
! 	(vfmul): Ditto.
! 	(vfdiv): Ditto.
! 	(vfrdiv): Ditto.
! 	(vfwmul): Ditto.
! 	(vfmacc): Ditto.
! 	(vfnmsac): Ditto.
! 	(vfmadd): Ditto.
! 	(vfnmsub): Ditto.
! 	(vfnmacc): Ditto.
! 	(vfmsac): Ditto.
! 	(vfnmadd): Ditto.
! 	(vfmsub): Ditto.
! 	(vfwmacc): Ditto.
! 	(vfwnmacc): Ditto.
! 	(vfwmsac): Ditto.
! 	(vfwnmsac): Ditto.
! 	(vfsqrt): Ditto.
! 	(vfrsqrt7): Ditto.
! 	(vfrec7): Ditto.
! 	(vfmin): Ditto.
! 	(vfmax): Ditto.
! 	(vfsgnj): Ditto.
! 	(vfsgnjn): Ditto.
! 	(vfsgnjx): Ditto.
! 	(vfneg): Ditto.
! 	(vfabs): Ditto.
! 	(vmfeq): Ditto.
! 	(vmfne): Ditto.
! 	(vmflt): Ditto.
! 	(vmfle): Ditto.
! 	(vmfgt): Ditto.
! 	(vmfge): Ditto.
! 	(vfclass): Ditto.
! 	(vfmerge): Ditto.
! 	(vfmv_v): Ditto.
! 	(vfcvt_x): Ditto.
! 	(vfcvt_xu): Ditto.
! 	(vfcvt_rtz_x): Ditto.
! 	(vfcvt_rtz_xu): Ditto.
! 	(vfcvt_f): Ditto.
! 	(vfwcvt_x): Ditto.
! 	(vfwcvt_xu): Ditto.
! 	(vfwcvt_rtz_x): Ditto.
! 	(vfwcvt_rtz_xu): Ditto.
! 	(vfwcvt_f): Ditto.
! 	(vfncvt_x): Ditto.
! 	(vfncvt_xu): Ditto.
! 	(vfncvt_rtz_x): Ditto.
! 	(vfncvt_rtz_xu): Ditto.
! 	(vfncvt_f): Ditto.
! 	(vfncvt_rod_f): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
! 	(struct move_def): Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
! 	(DEF_RVV_CONVERT_I_OPS): Ditto.
! 	(DEF_RVV_CONVERT_U_OPS): Ditto.
! 	(DEF_RVV_WCONVERT_I_OPS): Ditto.
! 	(DEF_RVV_WCONVERT_U_OPS): Ditto.
! 	(DEF_RVV_WCONVERT_F_OPS): Ditto.
! 	(vfloat64m1_t): Ditto.
! 	(vfloat64m2_t): Ditto.
! 	(vfloat64m4_t): Ditto.
! 	(vfloat64m8_t): Ditto.
! 	(vint32mf2_t): Ditto.
! 	(vint32m1_t): Ditto.
! 	(vint32m2_t): Ditto.
! 	(vint32m4_t): Ditto.
! 	(vint32m8_t): Ditto.
! 	(vint64m1_t): Ditto.
! 	(vint64m2_t): Ditto.
! 	(vint64m4_t): Ditto.
! 	(vint64m8_t): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
! 	(DEF_RVV_CONVERT_U_OPS): Ditto.
! 	(DEF_RVV_WCONVERT_I_OPS): Ditto.
! 	(DEF_RVV_WCONVERT_U_OPS): Ditto.
! 	(DEF_RVV_WCONVERT_F_OPS): Ditto.
! 	(DEF_RVV_F_OPS): Ditto.
! 	(DEF_RVV_WEXTF_OPS): Ditto.
! 	(required_extensions_p): Adjust for floating-point support.
! 	(check_required_extensions): Ditto.
! 	(unsigned_base_type_p): Ditto.
! 	(get_mode_for_bitsize): Ditto.
! 	(rvv_arg_type_info::get_base_vector_type): Ditto.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	* config/riscv/riscv-vector-builtins.def (v_f): New define.
! 	(f): New define.
! 	(f_v): New define.
! 	(xu_v): New define.
! 	(f_w): New define.
! 	(xu_w): New define.
! 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
! 	(function_expander::arg_mode): New function.
! 	* config/riscv/vector-iterators.md (sof): New iterator.
! 	(vfrecp): Ditto.
! 	(copysign): Ditto.
! 	(n): Ditto.
! 	(msac): Ditto.
! 	(msub): Ditto.
! 	(fixuns_trunc): Ditto.
! 	(floatuns): Ditto.
! 	* config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
! 	(@pred_<optab><mode>): Ditto.
! 	(@pred_<optab><mode>_scalar): Ditto.
! 	(@pred_<optab><mode>_reverse_scalar): Ditto.
! 	(@pred_<copysign><mode>): Ditto.
! 	(@pred_<copysign><mode>_scalar): Ditto.
! 	(@pred_mul_<optab><mode>): Ditto.
! 	(pred_mul_<optab><mode>_undef_merge): Ditto.
! 	(*pred_<madd_nmsub><mode>): Ditto.
! 	(*pred_<macc_nmsac><mode>): Ditto.
! 	(*pred_mul_<optab><mode>): Ditto.
! 	(@pred_mul_<optab><mode>_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
! 	(*pred_<madd_nmsub><mode>_scalar): Ditto.
! 	(*pred_<macc_nmsac><mode>_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_scalar): Ditto.
! 	(@pred_neg_mul_<optab><mode>): Ditto.
! 	(pred_neg_mul_<optab><mode>_undef_merge): Ditto.
! 	(*pred_<nmadd_msub><mode>): Ditto.
! 	(*pred_<nmacc_msac><mode>): Ditto.
! 	(*pred_neg_mul_<optab><mode>): Ditto.
! 	(@pred_neg_mul_<optab><mode>_scalar): Ditto.
! 	(*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
! 	(*pred_<nmadd_msub><mode>_scalar): Ditto.
! 	(*pred_<nmacc_msac><mode>_scalar): Ditto.
! 	(*pred_neg_mul_<optab><mode>_scalar): Ditto.
! 	(@pred_<misc_op><mode>): Ditto.
! 	(@pred_class<mode>): Ditto.
! 	(@pred_dual_widen_<optab><mode>): Ditto.
! 	(@pred_dual_widen_<optab><mode>_scalar): Ditto.
! 	(@pred_single_widen_<plus_minus:optab><mode>): Ditto.
! 	(@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
! 	(@pred_widen_mul_<optab><mode>): Ditto.
! 	(@pred_widen_mul_<optab><mode>_scalar): Ditto.
! 	(@pred_widen_neg_mul_<optab><mode>): Ditto.
! 	(@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
! 	(@pred_cmp<mode>): Ditto.
! 	(*pred_cmp<mode>): Ditto.
! 	(*pred_cmp<mode>_narrow): Ditto.
! 	(@pred_cmp<mode>_scalar): Ditto.
! 	(*pred_cmp<mode>_scalar): Ditto.
! 	(*pred_cmp<mode>_scalar_narrow): Ditto.
! 	(@pred_eqne<mode>_scalar): Ditto.
! 	(*pred_eqne<mode>_scalar): Ditto.
! 	(*pred_eqne<mode>_scalar_narrow): Ditto.
! 	(@pred_merge<mode>_scalar): Ditto.
! 	(@pred_fcvt_x<v_su>_f<mode>): Ditto.
! 	(@pred_<fix_cvt><mode>): Ditto.
! 	(@pred_<float_cvt><mode>): Ditto.
! 	(@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
! 	(@pred_widen_<fix_cvt><mode>): Ditto.
! 	(@pred_widen_<float_cvt><mode>): Ditto.
! 	(@pred_extend<mode>): Ditto.
! 	(@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
! 	(@pred_narrow_<fix_cvt><mode>): Ditto.
! 	(@pred_narrow_<float_cvt><mode>): Ditto.
! 	(@pred_trunc<mode>): Ditto.
! 	(@pred_rod_trunc<mode>): Ditto.
  
! 2023-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/106258
! 	* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
! 	cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
! 	Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
! 	* cgraphclones.cc (cgraph_node::create_clone): Likewise.
  
! 2023-02-22  Thomas Schwinge  <thomas@codesourcery.com>
  
! 	* common.opt (-Wcomplain-wrong-lang): New.
! 	* doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
! 	* opts-common.cc (prune_options): Handle it.
! 	* opts-global.cc (complain_wrong_lang): Use it.
  
! 2023-02-21  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/108830
! 	* doc/invoke.texi: Document -fno-analyzer-suppress-followups.
  
! 2023-02-21  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	PR target/108876
! 	* config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
! 	for A0_REG.
! 	* config/xtensa/xtensa.md (sibcall, sibcall_internal)
! 	(sibcall_value, sibcall_value_internal): Add 'use' expression
! 	for A0_REG.
  
! 2023-02-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108691
! 	* tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
! 	assert about calls_setjmp not becoming true when it was false.
  
! 2023-02-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108793
! 	* tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
! 	Use convert operands to niter_type when computing num.
  
! 2023-02-21  Richard Biener  <rguenther@suse.de>
  
  	Revert:
! 	2023-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108691
! 	* tree-cfg.cc (notice_special_calls): When the CFG is built
! 	honor gimple_call_ctrl_altering_p.
! 	* cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
! 	temporarily if the call is not control-altering.
! 	* calls.cc (emit_call_1): Do not add REG_SETJMP if
! 	cfun->calls_setjmp is not set.  Do not alter cfun->calls_setjmp.
  
! 2023-02-21  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
! 	true if register A0 (return address register) when -Og is specified.
  
! 2023-02-20  Uroš Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/predicates.md
! 	(general_x64constmem_operand): New predicate.
! 	* config/i386/i386.md (*cmpqi_ext<mode>_1):
! 	Use nonimm_x64constmem_operand.
! 	(*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
! 	(*addqi_ext<mode>_1): Ditto.
! 	(*testqi_ext<mode>_1): Ditto.
! 	(*andqi_ext<mode>_1): Ditto.
! 	(*andqi_ext<mode>_1_cc): Ditto.
! 	(*<any_or:code>qi_ext<mode>_1): Ditto.
! 	(*xorqi_ext<mode>_1_cc): Ditto.
  
! 2023-02-20  Jakub Jelinek  <jakub2redhat.com>
  
! 	PR target/108862
! 	* config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
! 	gen_umadddi4_highpart{,_le}.
  
! 2023-02-20  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv.md (prefetch): Use r instead of p for the
! 	address operand.
! 	(riscv_prefetchi_<mode>): Ditto.
  
! 2023-02-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108816
! 	* tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
! 	versioning condition split prerequesite, assert required
! 	invariant.
  
! 2023-02-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108825
! 	* tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
! 	loop-local verfication only verify there's no pending SSA
! 	update.
  
! 2023-02-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108819
! 	* tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
! 	we have an SSA name as iv_2 as expected.
  
! 2023-02-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108819
! 	* tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
  
! 2023-02-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/108832
! 	* config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
! 	* config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
! 	function.
! 	* config/i386/i386.md: Replace replace_rtx calls in all peephole2s
! 	with ix86_replace_reg_with_reg.
  
! 2023-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/invoke.texi (AVR Options): Update link to AVR-LibC.
  
! 2023-02-18  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config.gcc (triplet_abi): Set its value based on $with_abi,
! 	instead of $target.
! 	(la_canonical_triplet): Set it after $triplet_abi is set
! 	correctly.
! 	* config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
! 	multiarch tuple for lp64d "loongarch64-linux-gnu" (without
! 	"f64" suffix).
  
! 2023-02-18  Andrew Pinski  <apinski@marvell.com>
  
! 	* match.pd: Remove #if GIMPLE around the
! 	"1 - a" pattern
  
! 2023-02-18  Andrew Pinski  <apinski@marvell.com>
  
! 	* value-query.h (get_range_query): Return the global ranges
! 	for a nullptr func.
  
! 2023-02-17  Siddhesh Poyarekar  <siddhesh@gotplt.org>
  
! 	* doc/invoke.texi (@item -Wall): Fix typo in
! 	-Wuse-after-free.
  
! 2023-02-17  Uroš Bizjak  <ubizjak@gmail.com>
  
! 	PR target/108831
! 	* config/i386/predicates.md
! 	(nonimm_x64constmem_operand): New predicate.
! 	* config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
! 	(*subqi_ext<mode>_0): Ditto.
! 	(*andqi_ext<mode>_0): Ditto.
! 	(*<any_or:code>qi_ext<mode>_0): Ditto.
  
! 2023-02-17  Uroš Bizjak  <ubizjak@gmail.com>
  
! 	PR target/108805
! 	* simplify-rtx.cc (simplify_context::simplify_subreg): Use
! 	int_outermode instead of GET_MODE (tem) to prevent
! 	VOIDmode from entering simplify_gen_subreg.
  
! 2023-02-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108821
! 	* tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
! 	move volatile accesses.
  
! 2023-02-17  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa.cc (ssa_undefined_value_p): Assert we are not
! 	called on virtual operands.
! 	* tree-ssa-sccvn.cc (vn_phi_lookup): Guard
! 	ssa_undefined_value_p calls.
! 	(vn_phi_insert): Likewise.
! 	(set_ssa_val_to): Likewise.
! 	(visit_phi): Avoid extra work with equivalences for
! 	virtual operand PHIs.
  
! 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
! 	class.
! 	(class mask_nlogic): Ditto.
! 	(class mask_notlogic): Ditto.
! 	(class vmmv): Ditto.
! 	(class vmclr): Ditto.
! 	(class vmset): Ditto.
! 	(class vmnot): Ditto.
! 	(class vcpop): Ditto.
! 	(class vfirst): Ditto.
! 	(class mask_misc): Ditto.
! 	(class viota): Ditto.
! 	(class vid): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
! 	(vmnand): Ditto.
! 	(vmandn): Ditto.
! 	(vmxor): Ditto.
! 	(vmor): Ditto.
! 	(vmnor): Ditto.
! 	(vmorn): Ditto.
! 	(vmxnor): Ditto.
! 	(vmmv): Ditto.
! 	(vmclr): Ditto.
! 	(vmset): Ditto.
! 	(vmnot): Ditto.
! 	(vcpop): Ditto.
! 	(vfirst): Ditto.
! 	(vmsbf): Ditto.
! 	(vmsif): Ditto.
! 	(vmsof): Ditto.
! 	(viota): Ditto.
! 	(vid): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
! 	(struct mask_alu_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc: Ditto.
! 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
! 	for dest it scalar RVV intrinsics.
! 	* config/riscv/vector-iterators.md (sof): New iterator.
! 	* config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
! 	(@pred_<optab>not<mode>): New pattern.
! 	(@pred_popcount<VB:mode><P:mode>): New pattern.
! 	(@pred_ffs<VB:mode><P:mode>): New pattern.
! 	(@pred_<misc_op><mode>): New pattern.
! 	(@pred_iota<mode>): New pattern.
! 	(@pred_series<mode>): New pattern.
  
! 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
! 	(vsbc): Ditto.
! 	(vmerge): Ditto.
! 	(vmv_v): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc: Ditto.
  
! 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
! 	    kito-cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
! 	* config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
! 	(sew64_scalar_helper): New function.
! 	* config/riscv/vector.md: Normalization.
  
! 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
! 	(vsm): Ditto.
! 	(vsse): Ditto.
! 	(vsoxei64): Ditto.
! 	(vsub): Ditto.
! 	(vand): Ditto.
! 	(vor): Ditto.
! 	(vxor): Ditto.
! 	(vsll): Ditto.
! 	(vsra): Ditto.
! 	(vsrl): Ditto.
! 	(vmin): Ditto.
! 	(vmax): Ditto.
! 	(vminu): Ditto.
! 	(vmaxu): Ditto.
! 	(vmul): Ditto.
! 	(vmulh): Ditto.
! 	(vmulhu): Ditto.
! 	(vmulhsu): Ditto.
! 	(vdiv): Ditto.
! 	(vrem): Ditto.
! 	(vdivu): Ditto.
! 	(vremu): Ditto.
! 	(vnot): Ditto.
! 	(vsext): Ditto.
! 	(vzext): Ditto.
! 	(vwadd): Ditto.
! 	(vwsub): Ditto.
! 	(vwmul): Ditto.
! 	(vwmulu): Ditto.
! 	(vwmulsu): Ditto.
! 	(vwaddu): Ditto.
! 	(vwsubu): Ditto.
! 	(vsbc): Ditto.
! 	(vmsbc): Ditto.
! 	(vnsra): Ditto.
! 	(vmerge): Ditto.
! 	(vmv_v): Ditto.
! 	(vmsne): Ditto.
! 	(vmslt): Ditto.
! 	(vmsgt): Ditto.
! 	(vmsle): Ditto.
! 	(vmsge): Ditto.
! 	(vmsltu): Ditto.
! 	(vmsgtu): Ditto.
! 	(vmsleu): Ditto.
! 	(vmsgeu): Ditto.
! 	(vnmsac): Ditto.
! 	(vmadd): Ditto.
! 	(vnmsub): Ditto.
! 	(vwmacc): Ditto.
! 	(vsadd): Ditto.
! 	(vssub): Ditto.
! 	(vssubu): Ditto.
! 	(vaadd): Ditto.
! 	(vasub): Ditto.
! 	(vasubu): Ditto.
! 	(vsmul): Ditto.
! 	(vssra): Ditto.
! 	(vssrl): Ditto.
! 	(vnclip): Ditto.
  
! 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
! 	(@pred_<optab><mode>_scalar): Ditto.
! 	(*pred_<optab><mode>_scalar): Ditto.
! 	(*pred_<optab><mode>_extended_scalar): Ditto.
  
! 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
! 	(init_builtins): Ditto.
! 	(mangle_builtin_type): Ditto.
! 	(verify_type_context): Ditto.
! 	(handle_pragma_vector):  Ditto.
! 	(builtin_decl): Ditto.
! 	(expand_builtin): Ditto.
! 	(const_vec_all_same_in_range_p): Ditto.
! 	(legitimize_move): Ditto.
! 	(emit_vlmax_op): Ditto.
! 	(emit_nonvlmax_op): Ditto.
! 	(get_vlmul): Ditto.
! 	(get_ratio): Ditto.
! 	(get_ta): Ditto.
! 	(get_ma): Ditto.
! 	(get_avl_type): Ditto.
! 	(calculate_ratio): Ditto.
! 	(enum vlmul_type): Ditto.
! 	(simm5_p): Ditto.
! 	(neg_simm5_p): Ditto.
! 	(has_vi_variant_p): Ditto.
  
! 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (simm32_p): Remove.
! 	* config/riscv/riscv-v.cc (simm32_p): Ditto.
! 	* config/riscv/vector.md: Use immediate_operand
! 	instead of riscv_vector::simm32_p.
  
! 2023-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/invoke.texi (Optimize Options): Reword the explanation
! 	getting minimal, maximal and default values of a parameter.
  
! 2023-02-16  Patrick Palka  <ppalka@redhat.com>
  
! 	* addresses.h: Mechanically drop 'static' from 'static inline'
! 	functions via s/^static inline/inline/g.
! 	* asan.h: Likewise.
! 	* attribs.h: Likewise.
! 	* basic-block.h: Likewise.
! 	* bitmap.h: Likewise.
! 	* cfghooks.h: Likewise.
! 	* cfgloop.h: Likewise.
! 	* cgraph.h: Likewise.
! 	* cselib.h: Likewise.
! 	* data-streamer.h: Likewise.
! 	* debug.h: Likewise.
! 	* df.h: Likewise.
! 	* diagnostic.h: Likewise.
! 	* dominance.h: Likewise.
! 	* dumpfile.h: Likewise.
! 	* emit-rtl.h: Likewise.
! 	* except.h: Likewise.
! 	* expmed.h: Likewise.
! 	* expr.h: Likewise.
! 	* fixed-value.h: Likewise.
! 	* gengtype.h: Likewise.
! 	* gimple-expr.h: Likewise.
! 	* gimple-iterator.h: Likewise.
! 	* gimple-predict.h: Likewise.
! 	* gimple-range-fold.h: Likewise.
! 	* gimple-ssa.h: Likewise.
! 	* gimple.h: Likewise.
! 	* graphite.h: Likewise.
! 	* hard-reg-set.h: Likewise.
! 	* hash-map.h: Likewise.
! 	* hash-set.h: Likewise.
! 	* hash-table.h: Likewise.
! 	* hwint.h: Likewise.
! 	* input.h: Likewise.
! 	* insn-addr.h: Likewise.
! 	* internal-fn.h: Likewise.
! 	* ipa-fnsummary.h: Likewise.
! 	* ipa-icf-gimple.h: Likewise.
! 	* ipa-inline.h: Likewise.
! 	* ipa-modref.h: Likewise.
! 	* ipa-prop.h: Likewise.
! 	* ira-int.h: Likewise.
! 	* ira.h: Likewise.
! 	* lra-int.h: Likewise.
! 	* lra.h: Likewise.
! 	* lto-streamer.h: Likewise.
! 	* memmodel.h: Likewise.
! 	* omp-general.h: Likewise.
! 	* optabs-query.h: Likewise.
! 	* optabs.h: Likewise.
! 	* plugin.h: Likewise.
! 	* pretty-print.h: Likewise.
! 	* range.h: Likewise.
! 	* read-md.h: Likewise.
! 	* recog.h: Likewise.
! 	* regs.h: Likewise.
! 	* rtl-iter.h: Likewise.
! 	* rtl.h: Likewise.
! 	* sbitmap.h: Likewise.
! 	* sched-int.h: Likewise.
! 	* sel-sched-ir.h: Likewise.
! 	* sese.h: Likewise.
! 	* sparseset.h: Likewise.
! 	* ssa-iterators.h: Likewise.
! 	* system.h: Likewise.
! 	* target-globals.h: Likewise.
! 	* target.h: Likewise.
! 	* timevar.h: Likewise.
! 	* tree-chrec.h: Likewise.
! 	* tree-data-ref.h: Likewise.
! 	* tree-iterator.h: Likewise.
! 	* tree-outof-ssa.h: Likewise.
! 	* tree-phinodes.h: Likewise.
! 	* tree-scalar-evolution.h: Likewise.
! 	* tree-sra.h: Likewise.
! 	* tree-ssa-alias.h: Likewise.
! 	* tree-ssa-live.h: Likewise.
! 	* tree-ssa-loop-manip.h: Likewise.
! 	* tree-ssa-loop.h: Likewise.
! 	* tree-ssa-operands.h: Likewise.
! 	* tree-ssa-propagate.h: Likewise.
! 	* tree-ssa-sccvn.h: Likewise.
! 	* tree-ssa.h: Likewise.
! 	* tree-ssanames.h: Likewise.
! 	* tree-streamer.h: Likewise.
! 	* tree-switch-conversion.h: Likewise.
! 	* tree-vectorizer.h: Likewise.
! 	* tree.h: Likewise.
! 	* wide-int.h: Likewise.
  
! 2023-02-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108657
! 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
! 	exists and is not a SSA_NAME, call ao_ref_init even if the stmt
! 	is a call to internal or builtin function.
  
! 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/invoke.texi (C++ Dialect Options): Suggest adding a
! 	using-declaration to unhide functions.
  
! 2023-02-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108783
! 	* tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
! 	is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
! 	t to curr->op.  Otherwise, punt if either newop1 or newop2 are
! 	SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
  
! 2023-02-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108791
! 	* tree-ssa-forwprop.cc (optimize_vector_load): Build
! 	the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
! 	type.
  
! 2023-02-15  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/90458
! 	* config/i386/i386.cc (ix86_compute_frame_layout): Disable the
! 	effects of -fstack-clash-protection for TARGET_STACK_PROBE.
! 	(ix86_expand_prologue): Likewise.
  
! 2023-02-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
  
! 	* config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
  
! 2023-02-15  Uroš Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386.md (*cmpqi_ext<mode>_1): Use
! 	int248_register_operand predicate in zero_extract sub-RTX.
! 	(*cmpqi_ext<mode>_2): Ditto.
! 	(*cmpqi_ext<mode>_3): Ditto.
! 	(*cmpqi_ext<mode>_4): Ditto.
! 	(*extzvqi_mem_rex64): Ditto.
! 	(*extzvqi): Ditto.
! 	(*insvqi_1_mem_rex64): Ditto.
! 	(@insv<mode>_1): Ditto.
! 	(*insvqi_1): Ditto.
! 	(*insvqi_2): Ditto.
! 	(*insvqi_3): Ditto.
! 	(*extendqi<SWI24:mode>_ext_1): Ditto.
! 	(*addqi_ext<mode>_1): Ditto.
! 	(*addqi_ext<mode>_2): Ditto.
! 	(*subqi_ext<mode>_2): Ditto.
! 	(*testqi_ext<mode>_1): Ditto.
! 	(*testqi_ext<mode>_2): Ditto.
! 	(*andqi_ext<mode>_1): Ditto.
! 	(*andqi_ext<mode>_1_cc): Ditto.
! 	(*andqi_ext<mode>_2): Ditto.
! 	(*<any_or:code>qi_ext<mode>_1): Ditto.
! 	(*<any_or:code>qi_ext<mode>_2): Ditto.
! 	(*xorqi_ext<mode>_1_cc): Ditto.
! 	(*negqi_ext<mode>_2): Ditto.
! 	(*ashlqi_ext<mode>_2): Ditto.
! 	(*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
  
! 2023-02-15  Uroš Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/predicates.md (int248_register_operand):
! 	Rename from extr_register_operand.
! 	* config/i386/i386.md (*extv<mode>): Update for renamed predicate.
! 	(*extzx<mode>): Ditto.
! 	(*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
! 	(*ashl<mode>3_mask): Ditto.
! 	(*<any_shiftrt:insn><mode>3_mask): Ditto.
! 	(*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
! 	(*<any_rotate:insn><mode>3_mask): Ditto.
! 	(*<btsc><mode>_mask): Ditto.
! 	(*btr<mode>_mask): Ditto.
! 	(*jcc_bt<mode>_mask_1): Ditto.
  
! 2023-02-15  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/26854
! 	* df-core.cc (df_worklist_propagate_forward): Put later
! 	blocks on worklist and only earlier blocks on pending.
! 	(df_worklist_propagate_backward): Likewise.
! 	(df_worklist_dataflow_doublequeue): Change the iteration
! 	to process new blocks in the same iteration if that
! 	maintains the iteration order.
  
! 2023-02-15  Marek Polacek  <polacek@redhat.com>
  
! 	PR middle-end/106080
! 	* gimple-ssa-warn-access.cc (is_auto_decl): Remove.  Use auto_var_p
! 	instead.
  
! 2023-02-15  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/predicates.md: Refine codes.
! 	* config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
! 	* config/riscv/riscv-v.cc: Refine codes.
! 	* config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
! 	enum.
! 	(class imac): New class.
! 	(enum widen_ternop_type): New enum.
! 	(class iwmac): New class.
! 	(BASE): New class.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
! 	(vnmsac): Ditto.
! 	(vmadd): Ditto.
! 	(vnmsub): Ditto.
! 	(vwmacc): Ditto.
! 	(vwmaccu): Ditto.
! 	(vwmaccsu): Ditto.
! 	(vwmaccus): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(function_builder::apply_predication): Adjust for multiply-add support.
! 	(function_expander::add_vundef_operand): Refine codes.
! 	(function_expander::use_ternop_insn): New function.
! 	(function_expander::use_widen_ternop_insn): Ditto.
! 	* config/riscv/riscv-vector-builtins.h: New function.
! 	* config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
! 	(pred_mul_<optab><mode>_undef_merge): Ditto.
! 	(*pred_<madd_nmsub><mode>): Ditto.
! 	(*pred_<macc_nmsac><mode>): Ditto.
! 	(*pred_mul_<optab><mode>): Ditto.
! 	(@pred_mul_<optab><mode>_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
! 	(*pred_<madd_nmsub><mode>_scalar): Ditto.
! 	(*pred_<macc_nmsac><mode>_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
! 	(*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
! 	(*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
! 	(*pred_mul_<optab><mode>_extended_scalar): Ditto.
! 	(@pred_widen_mul_plus<su><mode>): Ditto.
! 	(@pred_widen_mul_plus<su><mode>_scalar): Ditto.
! 	(@pred_widen_mul_plussu<mode>): Ditto.
! 	(@pred_widen_mul_plussu<mode>_scalar): Ditto.
! 	(@pred_widen_mul_plusus<mode>_scalar): Ditto.
  
! 2023-02-15  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/predicates.md (vector_mask_operand): Refine the codes.
! 	(vector_all_trues_mask_operand): New predicate.
! 	(vector_undef_operand): New predicate.
! 	(ltge_operator): New predicate.
! 	(comparison_except_ltge_operator): New predicate.
! 	(comparison_except_eqge_operator): New predicate.
! 	(ge_operator): New predicate.
! 	* config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
! 	(vmsne): Ditto.
! 	(vmslt): Ditto.
! 	(vmsgt): Ditto.
! 	(vmsle): Ditto.
! 	(vmsge): Ditto.
! 	(vmsltu): Ditto.
! 	(vmsgtu): Ditto.
! 	(vmsleu): Ditto.
! 	(vmsgeu): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc
! 	(struct return_mask_def): Adjust for compare support.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(function_expander::use_compare_insn): New function.
! 	* config/riscv/riscv-vector-builtins.h
! 	(function_expander::add_integer_operand): Ditto.
! 	* config/riscv/riscv.cc (riscv_print_operand): Add compare support.
! 	* config/riscv/riscv.md: Add vector min/max attributes.
! 	* config/riscv/vector-iterators.md (xnor): New iterator.
! 	* config/riscv/vector.md (@pred_cmp<mode>): New pattern.
! 	(*pred_cmp<mode>): Ditto.
! 	(*pred_cmp<mode>_narrow): Ditto.
! 	(@pred_ltge<mode>): Ditto.
! 	(*pred_ltge<mode>): Ditto.
! 	(*pred_ltge<mode>_narrow): Ditto.
! 	(@pred_cmp<mode>_scalar): Ditto.
! 	(*pred_cmp<mode>_scalar): Ditto.
! 	(*pred_cmp<mode>_scalar_narrow): Ditto.
! 	(@pred_eqne<mode>_scalar): Ditto.
! 	(*pred_eqne<mode>_scalar): Ditto.
! 	(*pred_eqne<mode>_scalar_narrow): Ditto.
! 	(*pred_cmp<mode>_extended_scalar): Ditto.
! 	(*pred_cmp<mode>_extended_scalar_narrow): Ditto.
! 	(*pred_eqne<mode>_extended_scalar): Ditto.
! 	(*pred_eqne<mode>_extended_scalar_narrow): Ditto.
! 	(@pred_ge<mode>_scalar): Ditto.
! 	(@pred_<optab><mode>): Ditto.
! 	(@pred_n<optab><mode>): Ditto.
! 	(@pred_<optab>n<mode>): Ditto.
! 	(@pred_not<mode>): Ditto.
  
! 2023-02-15  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/108679
! 	* ipa-sra.cc (push_param_adjustments_for_index): Do not omit
! 	creation of non-scalar replacements even if IPA-CP knows their
! 	contents.
  
! 2023-02-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/108787
! 	PR target/103109
! 	* config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
! 	expander, change operand 3 to be TImode, emit maddlddi4 and
! 	umadddi4_highpart{,_le} with its low half and finally add the high
! 	half to the result.
  
! 2023-02-15  Martin Liska  <mliska@suse.cz>
  
! 	* doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
  
! 2023-02-15  Richard Biener  <rguenther@suse.de>
  
! 	* sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
! 	for with_poison and alias worklist to it.
! 	(sanitize_asan_mark_poison): Likewise.
  
! 2023-02-15  Richard Biener  <rguenther@suse.de>
  
! 	PR target/108738
! 	* config/i386/i386-features.cc (scalar_chain::add_to_queue):
! 	Combine bitmap test and set.
! 	(scalar_chain::add_insn): Likewise.
! 	(scalar_chain::analyze_register_chain): Remove redundant
! 	attempt to add to queue and instead strengthen assert.
! 	Sink common attempts to mark the def dual-mode.
! 	(scalar_chain::add_to_queue): Remove redundant insn bitmap
! 	check.
  
! 2023-02-15  Richard Biener  <rguenther@suse.de>
  
! 	PR target/108738
! 	* config/i386/i386-features.cc (convert_scalars_to_vector):
! 	Switch candidates bitmaps to tree view before building the chains.
  
! 2023-02-15  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
! 	"failure trying to reload" call.
  
! 2023-02-15  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* gdbinit.in (phrs): New command.
! 	* sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
! 	* ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
  
! 2023-02-14  David Faust  <david.faust@oracle.com>
  
! 	PR target/108790
! 	* config/bpf/constraints.md (q): New memory constraint.
! 	* config/bpf/bpf.md (zero_extendhidi2): Use it here.
! 	(zero_extendqidi2): Likewise.
! 	(zero_extendsidi2): Likewise.
! 	(*mov<MM:mode>): Likewise.
  
! 2023-02-14  Andrew Pinski  <apinski@marvell.com>
  
! 	PR tree-optimization/108355
! 	PR tree-optimization/96921
! 	* match.pd: Add pattern for "1 - bool_val".
  
! 2023-02-14  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
! 	basic block index hashing on the availability of ->cclhs.
! 	(vn_phi_eq): Avoid re-doing sanity checks for CSE but
! 	rely on ->cclhs availability.
! 	(vn_phi_lookup): Set ->cclhs only when we are eventually
! 	going to CSE the PHI.
! 	(vn_phi_insert): Likewise.
  
! 2023-02-14  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gimplify.cc (gimplify_save_expr): Add missing guard.
  
! 2023-02-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108782
! 	* tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
! 	Make sure we're not vectorizing an inner loop.
  
! 2023-02-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/108777
! 	* params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
! 	* asan.h (asan_memfn_rtl): Declare.
! 	* asan.cc (asan_memfn_rtls): New variable.
! 	(asan_memfn_rtl): New function.
! 	* builtins.cc (expand_builtin): If
! 	param_asan_kernel_mem_intrinsic_prefix and function is
! 	kernel-{,hw}address sanitized, emit calls to
! 	__{,hw}asan_{memcpy,memmove,memset} rather than
! 	{memcpy,memmove,memset}.  Use sanitize_flags_p (SANITIZE_ADDRESS)
! 	instead of flag_sanitize & SANITIZE_ADDRESS to check if
! 	asan_intercepted_p functions shouldn't be expanded inline.
  
! 2023-02-14  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/96373
! 	* tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
! 	operations on the loop mask.  Reject partial vectors if this isn't
! 	possible.
  
! 2023-02-13  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/108681
! 	* lra-spills.cc (lra_final_code_change): Extend subreg replacement
! 	code to handle bare uses and clobbers.
  
! 2023-02-13  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
! 	caller_save_p flag when clearing defined_p flag.
! 	(setup_reg_equiv): Ditto.
! 	* lra-constraints.cc (lra_constraints): Ditto.
  
! 2023-02-13  Uroš Bizjak  <ubizjak@gmail.com>
  
! 	PR target/108516
! 	* config/i386/predicates.md (extr_register_operand):
! 	New special predicate.
! 	* config/i386/i386.md (*extv<mode>): Use extr_register_operand
! 	as operand 1 predicate.
! 	(*exzv<mode>): Ditto.
! 	(*extendqi<SWI24:mode>_ext_1): New insn pattern.
  
! 2023-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/28614
! 	* tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
! 	walking all edges in most cases.
! 	(vn_nary_op_insert_pieces_predicated): Avoid repeated
! 	calls to can_track_predicate_on_edge unless checking is
! 	enabled.
! 	(process_bb): Instead call it once here for each edge
! 	we register possibly multiple predicates on.
  
! 2023-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108691
! 	* tree-cfg.cc (notice_special_calls): When the CFG is built
! 	honor gimple_call_ctrl_altering_p.
! 	* cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
! 	temporarily if the call is not control-altering.
! 	* calls.cc (emit_call_1): Do not add REG_SETJMP if
! 	cfun->calls_setjmp is not set.  Do not alter cfun->calls_setjmp.
  
! 2023-02-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	PR target/108102
! 	* config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
! 	(struct s390_sched_state): Initialise to zero.
! 	(s390_sched_variable_issue): For better debuggability also emit
! 	the current side.
! 	(s390_sched_init): Unconditionally reset scheduler state.
  
! 2023-02-13  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* ifcvt.h (noce_if_info::cond_inverted): New field.
! 	* ifcvt.cc (cond_move_convert_if_block): Swap the then and else
! 	values when cond_inverted is true.
! 	(noce_find_if_block): Allow the condition to be inverted when
! 	handling conditional moves.
  
! 2023-02-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/predicates.md (execute_operation): Use
! 	constrain_operands instead of extract_constrain_insn in order to
! 	determine wheter there exists a valid alternative.
  
! 2023-02-13  Claudiu Zissulescu  <claziss@gmail.com>
  
! 	* common/config/arc/arc-common.cc (arc_option_optimization_table):
! 	Remove millicode from list.
  
! 2023-02-13  Martin Liska  <mliska@suse.cz>
  
! 	* doc/invoke.texi: Document ira-simple-lra-insn-threshold.
  
! 2023-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/106722
! 	* tree-ssa-dce.cc (mark_last_stmt_necessary): Return
! 	whether we marked a stmt.
! 	(mark_control_dependent_edges_necessary): When
! 	mark_last_stmt_necessary didn't mark any stmt make sure
! 	to mark its control dependent edges.
! 	(propagate_necessity): Likewise.
  
! 2023-02-13  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
! 	(DWARF_FRAME_REGISTERS): New.
! 	(DWARF_REG_TO_UNWIND_COLUMN): New.
  
! 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/sourcebuild.texi: Remove (broken) direct reference to
! 	"The GNU configure and build system".
  
! 2023-02-12  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
! 	gen_add3_insn to gen_rtx_SET.
! 	(riscv_adjust_libcall_cfi_epilogue): Likewise.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
! 	(class vnclip): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
! 	(vasub): Ditto.
! 	(vaaddu): Ditto.
! 	(vasubu): Ditto.
! 	(vsmul): Ditto.
! 	(vssra): Ditto.
! 	(vssrl): Ditto.
! 	(vnclipu): Ditto.
! 	(vnclip): Ditto.
! 	* config/riscv/vector-iterators.md (su): Add instruction.
! 	(aadd): Ditto.
! 	(vaalu): Ditto.
! 	* config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
! 	(@pred_<sat_op><mode>_scalar): Ditto.
! 	(*pred_<sat_op><mode>_scalar): Ditto.
! 	(*pred_<sat_op><mode>_extended_scalar): Ditto.
! 	(@pred_narrow_clip<v_su><mode>): Ditto.
! 	(@pred_narrow_clip<v_su><mode>_scalar): Ditto.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/constraints.md (Wbr): Remove unused constraint.
! 	* config/riscv/predicates.md: Fix move operand predicate.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
! 	(class vncvt_x): Ditto.
! 	(class vmerge): Ditto.
! 	(class vmv_v): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
! 	(vsrl): Ditto.
! 	(vnsrl): Ditto.
! 	(vnsra): Ditto.
! 	(vncvt_x): Ditto.
! 	(vmerge): Ditto.
! 	(vmv_v): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
! 	(struct move_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
! 	(DEF_RVV_WEXTU_OPS): Ditto
! 	* config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
! 	(v_v): Ditto.
! 	(v_x): Ditto.
! 	(x_w): Ditto.
! 	(x): Ditto.
! 	* config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
! 	* config/riscv/vector-iterators.md (nmsac):New iterator.
! 	(nmsub): New iterator.
! 	* config/riscv/vector.md (@pred_merge<mode>): New pattern.
! 	(@pred_merge<mode>_scalar): New pattern.
! 	(*pred_merge<mode>_scalar): New pattern.
! 	(*pred_merge<mode>_extended_scalar): New pattern.
! 	(@pred_narrow_<optab><mode>): New pattern.
! 	(@pred_narrow_<optab><mode>_scalar): New pattern.
! 	(@pred_trunc<mode>): New pattern.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
! 	(class vmsbc): Ditto.
! 	(BASE): Define new class.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
! 	(vmsbc): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
! 	New class.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(function_expander::use_exact_insn): Adjust for new support
! 	* config/riscv/riscv-vector-builtins.h
! 	(function_base::has_merge_operand_p): New function.
! 	* config/riscv/vector-iterators.md: New iterator.
! 	* config/riscv/vector.md (@pred_madc<mode>): New pattern.
! 	(@pred_msbc<mode>): Ditto.
! 	(@pred_madc<mode>_scalar): Ditto.
! 	(@pred_msbc<mode>_scalar): Ditto.
! 	(*pred_madc<mode>_scalar): Ditto.
! 	(*pred_madc<mode>_extended_scalar): Ditto.
! 	(*pred_msbc<mode>_scalar): Ditto.
! 	(*pred_msbc<mode>_extended_scalar): Ditto.
! 	(@pred_madc<mode>_overflow): Ditto.
! 	(@pred_msbc<mode>_overflow): Ditto.
! 	(@pred_madc<mode>_overflow_scalar): Ditto.
! 	(@pred_msbc<mode>_overflow_scalar): Ditto.
! 	(*pred_madc<mode>_overflow_scalar): Ditto.
! 	(*pred_madc<mode>_overflow_extended_scalar): Ditto.
! 	(*pred_msbc<mode>_overflow_scalar): Ditto.
! 	(*pred_msbc<mode>_overflow_extended_scalar): Ditto.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
! 	* config/riscv/riscv-v.cc (simm32_p): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
! 	(class vsbc): Ditto.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
! 	(vsbc): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc
! 	(struct no_mask_policy_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	(function_expander::use_exact_insn): Ditto.
! 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
! 	(function_base::use_mask_predication_p): New function.
! 	* config/riscv/vector-iterators.md: New iterator.
! 	* config/riscv/vector.md (@pred_adc<mode>): New pattern.
! 	(@pred_sbc<mode>): Ditto.
! 	(@pred_adc<mode>_scalar): Ditto.
! 	(@pred_sbc<mode>_scalar): Ditto.
! 	(*pred_adc<mode>_scalar): Ditto.
! 	(*pred_adc<mode>_extended_scalar): Ditto.
! 	(*pred_sbc<mode>_scalar): Ditto.
! 	(*pred_sbc<mode>_extended_scalar): Ditto.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: use "zero" reg.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
! 	class.
! 	(class vwmulsu): Ditto.
! 	(class vwcvt): Ditto.
! 	(BASE): Add integer widening support.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto
! 	* config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
! 	(vwsub): New class.
! 	(vwmul): New class.
! 	(vwmulu): New class.
! 	(vwmulsu): New class.
! 	(vwaddu): New class.
! 	(vwsubu): New class.
! 	(vwcvt_x): New class.
! 	(vwcvtu_x): New class.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
! 	class.
! 	(struct widen_alu_def): New class.
! 	(SHAPE): New class.
! 	* config/riscv/riscv-vector-builtins-shapes.h: New class.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(rvv_arg_type_info::get_base_vector_type): Add integer widening support.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	* config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
! 	(x_v): Ditto.
! 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
! 	widening support.
! 	* config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
! 	* config/riscv/riscv.h (X0_REGNUM): New constant.
! 	* config/riscv/vector-iterators.md: New iterators.
! 	* config/riscv/vector.md
! 	(@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
  	pattern.
! 	(@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
! 	Ditto.
! 	(@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
! 	(@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
! 	Ditto.
! 	(@pred_widen_mulsu<mode>): Ditto.
! 	(@pred_widen_mulsu<mode>_scalar): Ditto.
! 	(@pred_<optab><mode>): Ditto.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
! 	    kito-cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
! 	API support.
! 	(vmulhu): Ditto.
! 	(vmulhsu): Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
! 	New macro.
! 	(DEF_RVV_FULL_V_U_OPS): Ditto.
! 	(vint8mf8_t): Ditto.
! 	(vint8mf4_t): Ditto.
! 	(vint8mf2_t): Ditto.
! 	(vint8m1_t): Ditto.
! 	(vint8m2_t): Ditto.
! 	(vint8m4_t): Ditto.
! 	(vint8m8_t): Ditto.
! 	(vint16mf4_t): Ditto.
! 	(vint16mf2_t): Ditto.
! 	(vint16m1_t): Ditto.
! 	(vint16m2_t): Ditto.
! 	(vint16m4_t): Ditto.
! 	(vint16m8_t): Ditto.
! 	(vint32mf2_t): Ditto.
! 	(vint32m1_t): Ditto.
! 	(vint32m2_t): Ditto.
! 	(vint32m4_t): Ditto.
! 	(vint32m8_t): Ditto.
! 	(vint64m1_t): Ditto.
! 	(vint64m2_t): Ditto.
! 	(vint64m4_t): Ditto.
! 	(vint64m8_t): Ditto.
! 	(vuint8mf8_t): Ditto.
! 	(vuint8mf4_t): Ditto.
! 	(vuint8mf2_t): Ditto.
! 	(vuint8m1_t): Ditto.
! 	(vuint8m2_t): Ditto.
! 	(vuint8m4_t): Ditto.
! 	(vuint8m8_t): Ditto.
! 	(vuint16mf4_t): Ditto.
! 	(vuint16mf2_t): Ditto.
! 	(vuint16m1_t): Ditto.
! 	(vuint16m2_t): Ditto.
! 	(vuint16m4_t): Ditto.
! 	(vuint16m8_t): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
! 	(DEF_RVV_FULL_V_U_OPS): Ditto.
! 	(check_required_extensions): Add vmulh support.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	* config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
! 	(enum rvv_base_type): Ditto.
! 	* config/riscv/riscv.opt: Add 'V' extension flag.
! 	* config/riscv/vector-iterators.md (su): New iterator.
! 	* config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
! 	(@pred_mulh<v_su><mode>_scalar): Ditto.
! 	(*pred_mulh<v_su><mode>_scalar): Ditto.
! 	(*pred_mulh<v_su><mode>_extended_scalar): Ditto.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/iterators.md: Add sign_extend/zero_extend.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
! 	* config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
! 	define.
! 	(vzext): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
! 	for vsext/vzext support.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
! 	macro define.
! 	(DEF_RVV_QEXTI_OPS): Ditto.
! 	(DEF_RVV_OEXTI_OPS): Ditto.
! 	(DEF_RVV_WEXTU_OPS): Ditto.
! 	(DEF_RVV_QEXTU_OPS): Ditto.
! 	(DEF_RVV_OEXTU_OPS): Ditto.
! 	(vint16mf4_t): Ditto.
! 	(vint16mf2_t): Ditto.
! 	(vint16m1_t): Ditto.
! 	(vint16m2_t): Ditto.
! 	(vint16m4_t): Ditto.
! 	(vint16m8_t): Ditto.
! 	(vint32mf2_t): Ditto.
! 	(vint32m1_t): Ditto.
! 	(vint32m2_t): Ditto.
! 	(vint32m4_t): Ditto.
! 	(vint32m8_t): Ditto.
! 	(vint64m1_t): Ditto.
! 	(vint64m2_t): Ditto.
! 	(vint64m4_t): Ditto.
! 	(vint64m8_t): Ditto.
! 	(vuint16mf4_t): Ditto.
! 	(vuint16mf2_t): Ditto.
! 	(vuint16m1_t): Ditto.
! 	(vuint16m2_t): Ditto.
! 	(vuint16m4_t): Ditto.
! 	(vuint16m8_t): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
! 	(DEF_RVV_QEXTI_OPS): Ditto.
! 	(DEF_RVV_OEXTI_OPS): Ditto.
! 	(DEF_RVV_WEXTU_OPS): Ditto.
! 	(DEF_RVV_QEXTU_OPS): Ditto.
! 	(DEF_RVV_OEXTU_OPS): Ditto.
! 	(rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
! 	support.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
! 	* config/riscv/vector-iterators.md (z): New attribute.
! 	* config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
! 	(@pred_<optab><mode>_vf4): Ditto.
! 	(@pred_<optab><mode>_vf8): Ditto.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/iterators.md: Add saturating Addition && Subtraction.
! 	* config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
! 	(vssub): Ditto.
! 	(vsaddu): Ditto.
! 	(vssubu): Ditto.
! 	* config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
! 	support.
! 	(sll.vv): Ditto.
! 	(%3,%v4): Ditto.
! 	(%3,%4): Ditto.
! 	* config/riscv/vector.md (@pred_<optab><mode>): New pattern.
! 	(@pred_<optab><mode>_scalar): New pattern.
! 	(*pred_<optab><mode>_scalar): New pattern.
! 	(*pred_<optab><mode>_extended_scalar): New pattern.
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/iterators.md: Add neg and not.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
! 	into alu.
! 	(vsub): Ditto.
! 	(vand): Ditto.
! 	(vor): Ditto.
! 	(vxor): Ditto.
! 	(vsll): Ditto.
! 	(vsra): Ditto.
! 	(vsrl): Ditto.
! 	(vmin): Ditto.
! 	(vmax): Ditto.
! 	(vminu): Ditto.
! 	(vmaxu): Ditto.
! 	(vmul): Ditto.
! 	(vdiv): Ditto.
! 	(vrem): Ditto.
! 	(vdivu): Ditto.
! 	(vremu): Ditto.
! 	(vrsub): Ditto.
! 	(vneg): Ditto.
! 	(vnot): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
! 	(struct alu_def): Ditto.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
! 	* config/riscv/vector-iterators.md: New iterator.
! 	* config/riscv/vector.md (@pred_<optab><mode>): New pattern
  
! 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
  
! 2023-02-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/108605
! 	* ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
! 	item->offset bit position is too large to be representable as
! 	unsigned int byte position.
  
! 2023-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
  
! 2023-02-10  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* ira.cc (update_equiv_regs): Set up ira_reg_equiv for
! 	valid_combine only when ira_use_lra_p is true.
  
! 2023-02-10  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* params.opt (ira-simple-lra-insn-threshold): Add new param.
! 	* ira.cc (ira): Use the param to switch on simple LRA.
  
! 2023-02-10  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/108687
! 	* gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
! 	back to RFD_NONE mode for calculations.
! 	(ranger_cache::propagate_cache): Call the internal edge range API
! 	with RFD_READ_ONLY instead of changing the external routine.
  
! 2023-02-10  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/108520
! 	* gimple-range-infer.cc (check_assume_func): Invoke
! 	gimple_range_global directly instead using global_range_query.
! 	* value-query.cc (get_range_global): Add function context and
! 	avoid calling nonnull_arg_p if not cfun.
! 	(gimple_range_global): Add function context pointer.
! 	* value-query.h (imple_range_global): Add function context.
  
! 2023-02-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/constraints.md (Wdm): Adjust constraint.
! 	(Wbr): New constraint.
! 	* config/riscv/predicates.md (reg_or_int_operand): New predicate.
! 	* config/riscv/riscv-protos.h (emit_pred_op): Remove function.
! 	(emit_vlmax_op): New function.
! 	(emit_nonvlmax_op): Ditto.
! 	(simm32_p): Ditto.
! 	(neg_simm5_p): Ditto.
! 	(has_vi_variant_p): Ditto.
! 	* config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
! 	(emit_vlmax_op): New function.
! 	(emit_nonvlmax_op): Ditto.
! 	(expand_const_vector): Adjust function.
! 	(legitimize_move): Ditto.
! 	(simm32_p): New function.
! 	(simm5_p): Ditto.
! 	(neg_simm5_p): Ditto.
! 	(has_vi_variant_p): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
! 	unsigned cases.
! 	(vmax): Ditto.
! 	(vminu): Remove signed cases.
! 	(vmaxu): Ditto.
! 	(vdiv): Remove unsigned cases.
! 	(vrem): Ditto.
! 	(vdivu): Remove signed cases.
! 	(vremu): Ditto.
! 	(vadd): Adjust.
! 	(vsub): Ditto.
! 	(vrsub): New class.
! 	(vand): Adjust.
! 	(vor): Ditto.
! 	(vxor): Ditto.
! 	(vmul): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
! 	* config/riscv/riscv.h: change VL/VTYPE as fixed reg.
! 	* config/riscv/vector-iterators.md: New iterators.
! 	* config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
! 	support.
! 	(@pred_<optab><mode>_scalar): New pattern.
! 	(@pred_sub<mode>_reverse_scalar): Ditto.
! 	(*pred_<optab><mode>_scalar): Ditto.
! 	(*pred_<optab><mode>_extended_scalar): Ditto.
! 	(*pred_sub<mode>_reverse_scalar): Ditto.
! 	(*pred_sub<mode>_extended_reverse_scalar): Ditto.
  
! 2023-02-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108724
! 	* tree-vect-stmts.cc (vectorizable_operation): Avoid
! 	using word_mode vectors when vector lowering will
! 	decompose them to elementwise operations.
  
! 2023-02-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	Revert:
! 	2023-02-09  Martin Liska  <mliska@suse.cz>
  
! 	PR target/100758
! 	* doc/extend.texi: Document that the function
! 	does not work correctly for old VIA processors.
  
! 2023-02-10  Andrew Pinski  <apinski@marvell.com>
! 	    Andrew Macleod   <amacleod@redhat.com>
  
! 	PR tree-optimization/108684
! 	* tree-ssa-dce.cc (simple_dce_from_worklist):
! 	Check all ssa names and not just non-vdef ones
! 	before accepting the inline-asm.
! 	Call unlink_stmt_vdef on the statement before
! 	removing it.
  
! 2023-02-09  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
! 	* ira.cc (validate_equiv_mem): Check memref address variance.
! 	(no_equiv): Clear caller_save_p flag.
! 	(update_equiv_regs): Define caller save equivalence for
! 	valid_combine.
! 	(setup_reg_equiv): Clear defined_p flag for caller save equivalence.
! 	* lra-constraints.cc (lra_copy_reg_equiv): Add new arg
! 	call_save_p.  Use caller save equivalence depending on the arg.
! 	(split_reg): Adjust the call.
  
! 2023-02-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/100758
! 	* common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
! 	(cpu_indicator_init): Call get_available_features for all CPUs with
! 	max_level >= 1, rather than just Intel, AMD or Zhaoxin.  Formatting
! 	fixes.
  
! 2023-02-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108688
! 	* match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
! 	of BIT_INSERT_EXPR extracting exactly all inserted bits even
! 	when without mode precision.  Formatting fixes.
  
! 2023-02-09  Andrew Pinski  <apinski@marvell.com>
  
! 	PR tree-optimization/108688
! 	* match.pd (bit_field_ref [bit_insert]): Avoid generating
! 	BIT_FIELD_REFs of non-mode-precision integral operands.
  
! 2023-02-09  Martin Liska  <mliska@suse.cz>
  
! 	PR target/100758
! 	* doc/extend.texi: Document that the function
! 	does not work correctly for old VIA processors.
  
! 2023-02-09  Andreas Schwab  <schwab@suse.de>
  
! 	* lto-wrapper.cc (merge_and_complain): Handle
! 	-funwind-tables and -fasynchronous-unwind-tables.
! 	(append_compiler_options): Likewise.
  
! 2023-02-09  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/26854
! 	* tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
! 	view around insert_updated_phi_nodes_for.
! 	* tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
! 	in tree view.
! 	(walk_aliased_vdefs_1): Likewise.
  
! 2023-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
  
! 2023-02-08  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	PR target/108505
! 	* config.gcc (tm_mlib_file): Define new variable.
  
! 2023-02-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108692
! 	* tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
! 	widened_code which is different from code, don't call
! 	vect_look_through_possible_promotion but instead just check op is
! 	SSA_NAME with integral type for which vect_is_simple_use is true
! 	and call set_op on this_unprom.
  
! 2023-02-08  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
! 	declaration.
! 	* config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
! 	definition.
! 	* config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
! 	to 'aarch_ra_sign_key'.
! 	* config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
! 	declaration.
! 	* config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
! 	* config/arm/arm.cc (enum aarch_key_type): Remove definition.
! 	* config/arm/arm.opt: Define.
  
! 2023-02-08  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/108316
! 	* tree-vect-stmts.cc (get_load_store_type): When using
! 	internal functions for gather/scatter, make sure that the type
! 	of the offset argument is consistent with the offset vector type.
  
! 2023-02-08  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	Revert:
! 	2023-02-07  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
! 	* ira.cc (validate_equiv_mem): Check memref address variance.
! 	(update_equiv_regs): Define caller save equivalence for
! 	valid_combine.
! 	(setup_reg_equiv): Clear defined_p flag for caller save equivalence.
! 	* lra-constraints.cc (lra_copy_reg_equiv): Add new arg
! 	call_save_p.  Use caller save equivalence depending on the arg.
! 	(split_reg): Adjust the call.
  
! 2023-02-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree.def (SAD_EXPR): Remove outdated comment about missing
! 	WIDEN_MINUS_EXPR.
  
! 2023-02-07  Marek Polacek  <polacek@redhat.com>
  
! 	* doc/invoke.texi: Update -fchar8_t documentation.
  
! 2023-02-07  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
! 	* ira.cc (validate_equiv_mem): Check memref address variance.
! 	(update_equiv_regs): Define caller save equivalence for
! 	valid_combine.
! 	(setup_reg_equiv): Clear defined_p flag for caller save equivalence.
! 	* lra-constraints.cc (lra_copy_reg_equiv): Add new arg
! 	call_save_p.  Use caller save equivalence depending on the arg.
! 	(split_reg): Adjust the call.
  
! 2023-02-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/26854
! 	* gimple-fold.cc (has_use_on_stmt): Look at stmt operands
! 	instead of immediate uses.
  
! 2023-02-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/106923
! 	* ipa-split.cc (execute_split_functions): Don't split returns_twice
! 	functions.
  
! 2023-02-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/106433
! 	* cgraph.cc (set_const_flag_1): Recurse on simd clones too.
! 	(cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
  
! 2023-02-07  Jan Hubicka  <jh@suse.cz>
  
! 	* config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
! 	for znver4.
  
! 2023-02-06  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
! 	(process_asm): Create a constructor for GCN_STACK_SIZE.
! 	(main): Parse the -mstack-size option.
  
! 2023-02-06  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/104921
! 	* config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
! 	Use correct constraint for operand 3.
  
! 2023-02-06  Martin Jambor  <mjambor@suse.cz>
  
! 	* ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
  
! 2023-02-06  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.md (bytepick_w_ashift_amount):
! 	New define_int_iterator.
! 	(bytepick_d_ashift_amount): Likewise.
! 	(bytepick_imm): New define_int_attr.
! 	(bytepick_w_lshiftrt_amount): Likewise.
! 	(bytepick_d_lshiftrt_amount): Likewise.
! 	(bytepick_w_<bytepick_imm>): New define_insn template.
! 	(bytepick_w_<bytepick_imm>_extend): Likewise.
! 	(bytepick_d_<bytepick_imm>): Likewise.
! 	(bytepick_w): Remove unused define_insn.
! 	(bytepick_d): Likewise.
! 	(UNSPEC_BYTEPICK_W): Remove unused unspec.
! 	(UNSPEC_BYTEPICK_D): Likewise.
! 	* config/loongarch/predicates.md (const_0_to_3_operand):
! 	Remove unused define_predicate.
! 	(const_0_to_7_operand): Likewise.
  
! 2023-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108655
! 	* ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
! 	or -fsanitize=unreachable -fsanitize-trap=unreachable return
! 	BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
  
! 2023-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/install.texi (Specific): Remove PW32.
  
! 2023-02-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108647
! 	* range-op.cc (operator_equal::op1_range,
! 	operator_not_equal::op1_range): Don't test op2 bound
! 	equality if op2.undefined_p (), instead set_varying.
! 	(operator_lt::op1_range, operator_le::op1_range,
! 	operator_gt::op1_range, operator_ge::op1_range): Return false if
! 	op2.undefined_p ().
! 	(operator_lt::op2_range, operator_le::op2_range,
! 	operator_gt::op2_range, operator_ge::op2_range): Return false if
! 	op1.undefined_p ().
  
! 2023-02-03  Aldy Hernandez  <aldyh@redhat.com>
  
! 	PR tree-optimization/108639
! 	* value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
! 	widest_int.
! 	(irange::operator==): Same.
  
! 2023-02-03  Aldy Hernandez  <aldyh@redhat.com>
  
! 	PR tree-optimization/108647
! 	* range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
! 	(foperator_lt::op2_range): Same.
! 	(foperator_le::op1_range): Same.
! 	(foperator_le::op2_range): Same.
! 	(foperator_gt::op1_range): Same.
! 	(foperator_gt::op2_range): Same.
! 	(foperator_ge::op1_range): Same.
! 	(foperator_ge::op2_range): Same.
! 	(foperator_unordered_lt::op1_range): Same.
! 	(foperator_unordered_lt::op2_range): Same.
! 	(foperator_unordered_le::op1_range): Same.
! 	(foperator_unordered_le::op2_range): Same.
! 	(foperator_unordered_gt::op1_range): Same.
! 	(foperator_unordered_gt::op2_range): Same.
! 	(foperator_unordered_ge::op1_range): Same.
! 	(foperator_unordered_ge::op2_range): Same.
  
! 2023-02-03  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/107570
! 	* tree-vrp.cc (remove_and_update_globals): Reset SCEV.
  
! 2023-02-03  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	* doc/gm2.texi (Internals): Remove from menu.
! 	(Using): Comment out ifnohtml conditional.
! 	(Documentation): Use gcc url.
! 	(License): Node simplified.
! 	(Copying): New node.  Include gpl_v3_without_node.
! 	(Contributing): Node simplified.
! 	(Internals): Commented out.
! 	(Libraries): Node simplified.
! 	(Indices): Ditto.
! 	(Contents): Ditto.
! 	(Functions): Ditto.
  
! 2023-02-03  Christophe Lyon  <christophe.lyon@arm.com>
  
! 	* config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
! 	attribute.
! 	(mve_vqshluq_m_n_s<mode>): Likewise.
! 	(mve_vshlq_m_<supf><mode>): Likewise.
! 	(mve_vsriq_m_n_<supf><mode>): Likewise.
! 	(mve_vsubq_m_<supf><mode>): Likewise.
  
! 2023-02-03  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/108384
! 	* ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
! 	when comparing to an IPA-CP value.
! 	(dump_list_of_param_indices): New function.
! 	(adjust_parameter_descriptions): Check for mismatching IPA-CP values.
! 	Dump removed candidates using dump_list_of_param_indices.
! 	* ipa-param-manipulation.cc
! 	(ipa_param_body_adjustments::modify_expression): Add assert checking
! 	sizes of a VIEW_CONVERT_EXPR will match.
! 	(ipa_param_body_adjustments::modify_assignment): Likewise.
  
! 2023-02-03  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
! 	* config/riscv/riscv.cc: Ditto.
  
! 2023-02-03  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
! 	(sll.vv): Ditto.
! 	(%3,%4): Ditto.
! 	(%3,%v4): Ditto.
! 	* config/riscv/vector.md: Ditto.
  
! 2023-02-03  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
! 	* config/riscv/riscv-vector-builtins-bases.cc: New class.
! 	* config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
! 	(vsra): Ditto.
! 	(vsrl): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc: Ditto.
! 	* config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
  
! 2023-02-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* toplev.cc (toplev::main): Only print the version information header
! 	from toplevel main().
  
! 2023-02-02  Paul-Antoine Arras  <pa@codesourcery.com>
  
! 	* config/gcn/gcn-valu.md (cond_<expander><mode>): Add
! 	cond_{ashl|ashr|lshr}
  
! 2023-02-02  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/108086
! 	* rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
! 	Adjust size-related commentary accordingly.
  
! 2023-02-02  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR rtl-optimization/108508
! 	* rtl-ssa/accesses.cc (function_info::split_clobber_group): When
! 	the splay tree search gives the first clobber in the second group,
! 	make sure that the root of the first clobber group is updated
! 	correctly.  Enter the new clobber group into the definition splay
! 	tree.
  
! 2023-02-02  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* common/config/riscv/riscv-common.cc (riscv_compute_multilib):
! 	Fix finding best match score.
  
! 2023-02-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/106746
! 	PR rtl-optimization/108463
! 	PR target/108484
! 	* cselib.cc (cselib_current_insn): Move declaration earlier.
! 	(cselib_hasher::equal): For debug only locs, temporarily override
! 	cselib_current_insn to their l->setting_insn for the
! 	rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
! 	promote some debug locs.
! 	* sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
! 	when using cselib call cselib_lookup_from_insn on the address but
! 	don't substitute it.
  
! 2023-02-02  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/108625
! 	* genmatch.cc (expr::gen_transform): Also disallow resimplification
! 	from pushing to lseq with force_leaf.
! 	(dt_simplify::gen_1): Likewise.
  
! 2023-02-02  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/gcn-run.cc: Include libgomp-gcn.h.
! 	(struct kernargs): Replace the common content with kernargs_abi.
! 	(struct heap): Delete.
! 	(main): Read GCN_STACK_SIZE envvar.
! 	Allocate space for the device stacks.
! 	Write the new kernargs fields.
! 	* config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
! 	(default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
! 	PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
! 	(gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
! 	(gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
! 	Set up the stacks from the values in the kernargs, not private.
! 	(gcn_expand_builtin_1): Match the stack configuration in the prologue.
! 	(gcn_hsa_declare_function_name): Turn off the private segment.
! 	(gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
! 	* config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
! 	* config/gcn/gcn.opt (mstack-size): Change the description.
  
! 2023-02-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	PR target/108443
! 	* config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
! 	* config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
! 	addressing MVE predicate modes.
! 	(mve_bool_vec_to_const): Change to represent correct MVE predicate
! 	format.
! 	(arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
! 	modes.
! 	(arm_vector_mode_supported_p): Likewise.
! 	(arm_mode_to_pred_mode): Add V2QI.
! 	* config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
! 	qualifier.
! 	(UNOP_PRED_PRED_QUALIFIERS): New qualifier
! 	(BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
! 	(v2qi_UP): New macro.
! 	(v4bi_UP): New macro.
! 	(v8bi_UP): New macro.
! 	(v16bi_UP): New macro.
! 	(arm_expand_builtin_args): Make it able to expand the new predicate
! 	modes.
! 	* config/arm/arm-modes.def (V2QI): New mode.
! 	* config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
! 	Pred4x4_t): Remove unused predicate builtin types.
! 	* config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
! 	__arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
! 	__arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
! 	* config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
! 	vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
! 	* config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
! 	of MODE_VECTOR_BOOL.
! 	* config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
! 	(MVE_VPRED): Likewise.
! 	(MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
! 	(MVE_vctp): New mode attribute.
! 	(mode1): Remove.
! 	(VCTPQ): Remove.
! 	(VCTPQ_M): Remove.
! 	* config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
! 	(mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
! 	attributes.
! 	(mve_vpnothi): Rename this...
! 	(mve_vpnotv16bi): ... to this.
! 	(mve_vctp<mode1>q_mhi): Rename this...
! 	(mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
! 	(mve_vldrdq_gather_base_z_<supf>v2di,
! 	mve_vldrdq_gather_offset_z_<supf>v2di,
! 	mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
! 	mve_vstrdq_scatter_base_p_<supf>v2di,
! 	mve_vstrdq_scatter_offset_p_<supf>v2di,
! 	mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
! 	mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
! 	mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
! 	mve_vstrdq_scatter_base_wb_p_<supf>v2di,
! 	mve_vldrdq_gather_base_wb_z_<supf>v2di,
! 	mve_vldrdq_gather_base_nowb_z_<supf>v2di,
! 	mve_vldrdq_gather_base_wb_z_<supf>v2di_insn):  Use V2QI insead of HI for
! 	predicates.
! 	* config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
! 	these...
! 	(VCTP): ... with this.
! 	(VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
! 	(VCTP_M): ... with this.
! 	* config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
! 	VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
  
! 2023-02-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	PR target/107674
! 	* config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
! 	(arm_modes_tieable_p): Make MVE predicate modes tieable.
! 	* config/arm/arm.h (VALID_MVE_PRED_MODE):  New define.
! 	* simplify-rtx.cc (simplify_context::simplify_subreg): Teach
! 	simplify_subreg to simplify subregs where the outermode is not scalar.
  
! 2023-02-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	PR target/107674
! 	* config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
! 	new qualifiers parameter and use unsigned short type for MVE predicate.
! 	(arm_init_builtin): Call arm_simd_builtin_type with qualifiers
! 	parameter.
! 	(arm_init_crypto_builtins): Likewise.
  
! 2023-02-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/107300
! 	* builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
! 	* internal-fn.def (TRAP): Remove.
! 	* internal-fn.cc (expand_TRAP): Remove.
! 	* tree.cc (build_common_builtin_nodes): Define
! 	BUILT_IN_UNREACHABLE_TRAP if not yet defined.
! 	(builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
! 	instead of BUILT_IN_TRAP.
! 	* gimple.cc (gimple_build_builtin_unreachable): Remove
! 	emitting internal function for BUILT_IN_TRAP.
! 	* asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
! 	* cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
! 	BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
! 	* ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
! 	BUILT_IN_UNREACHABLE_TRAP.
! 	* builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
! 	* tree-cfg.cc (verify_gimple_call,
! 	pass_warn_function_return::execute): Likewise.
! 	* attribs.cc (decl_attributes): Don't report exclusions on
! 	BUILT_IN_UNREACHABLE_TRAP either.
  
! 2023-02-02  liuhongt  <hongtao.liu@intel.com>
  
! 	PR tree-optimization/108601
! 	* tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
! 	* tree-vect-loop.cc
! 	(vectorizable_nonlinear_induction): Remove
! 	vect_can_peel_nonlinear_iv_p.
! 	(vect_can_peel_nonlinear_iv_p): Don't peel
! 	nonlinear iv(mult or shift) for epilog when vf is not
! 	constant and moved the defination to ..
! 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
! 	.. Here.
  
! 2023-02-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/108435
! 	* tree-nested.cc (convert_nonlocal_omp_clauses)
! 	<case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
! 	is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
! 	before calling declare_vars.
! 	(convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
! 	with the OMP_CLAUSE_LASTPRIVATE handling except for whether
! 	seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
! 	or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
  
! 2023-02-01  Tamar Christina  <tamar.christina@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc
! 	(struct aarch64_option_extension): Add native_detect and document struct
! 	a bit more.
! 	(all_extensions): Set new field native_detect.
! 	* config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
! 	unused struct.
  
! 2023-02-01  Martin Liska  <mliska@suse.cz>
  
! 	* ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
! 	value if set.
  
! 2023-02-01  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/108356
! 	* gimple-range-cache.cc (ranger_cache::range_on_edge): Always
! 	do a search of the DOM tree for a range.
  
! 2023-02-01  Martin Liska  <mliska@suse.cz>
  
! 	PR ipa/108509
! 	* cgraphunit.cc (walk_polymorphic_call_targets): Insert
! 	ony non-null values.
! 	* ipa.cc (walk_polymorphic_call_targets): Likewise.
  
! 2023-02-01  Martin Liska  <mliska@suse.cz>
  
! 	PR driver/108572
! 	* gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
! 	-gz=zstd.
  
! 2023-02-01  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/108573
! 	* ree.cc (combine_reaching_defs): Don't return false for paradoxical
! 	subregs in DEBUG_INSNs.
  
! 2023-02-01  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
  
! 2023-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_restore_gpr_p): New function.
! 	(s390_preserve_gpr_arg_in_range_p): New function.
! 	(s390_preserve_gpr_arg_p): New function.
! 	(s390_preserve_fpr_arg_p): New function.
! 	(s390_register_info_stdarg_fpr): Rename to ...
! 	(s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
! 	(s390_register_info_stdarg_gpr): Rename to ...
! 	(s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
! 	(s390_register_info): Use the renamed functions above.
! 	(s390_optimize_register_info): Likewise.
! 	(save_fpr): Generate CFI for -mpreserve-args.
! 	(save_gprs): Generate CFI for -mpreserve-args. Drop return value.
! 	(s390_emit_prologue): Adjust to changed calling convention of save_gprs.
! 	(s390_optimize_prologue): Likewise.
! 	* config/s390/s390.opt: New option -mpreserve-args
  
! 2023-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.cc (save_gprs): Use gen_frame_mem.
! 	(restore_gprs): Likewise.
! 	(s390_emit_stack_tie): Make the stack_tie to be dependent on the
! 	frame pointer if a frame-pointer is used.
! 	(s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
! 	* config/s390/s390.md (stack_tie): Add a register operand and
! 	rename to ...
! 	(@stack_tie<mode>): ... this.
  
! 2023-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
! 	EMIT_CFI parameter.
! 	(dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
! 	* reg-notes.def (REG_CFA_NOTE): New reg note definition.
  
! 2023-02-01  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/108500
! 	* dominance.cc (assign_dfs_numbers): Replace recursive DFS
! 	with tree traversal algorithm.
  
! 2023-02-01  Jason Merrill  <jason@redhat.com>
  
! 	* doc/invoke.texi: Document -Wno-changes-meaning.
  
! 2023-02-01  David Malcolm  <dmalcolm@redhat.com>
  
! 	* doc/invoke.texi (Static Analyzer Options): Add notes about
! 	limitations of -fanalyzer.
  
! 2023-01-31  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/constraints.md (vj): New.
! 	(vk): Ditto
! 	* config/riscv/iterators.md: Add more opcode.
! 	* config/riscv/predicates.md (vector_arith_operand): New.
! 	(vector_neg_arith_operand): New.
! 	(vector_shift_operand): New.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
! 	* config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
! 	(vsub): Ditto.
! 	(vand): Ditto.
! 	(vor): Ditto.
! 	(vxor): Ditto.
! 	(vsll): Ditto.
! 	(vsra): Ditto.
! 	(vsrl): Ditto.
! 	(vmin): Ditto.
! 	(vmax): Ditto.
! 	(vminu): Ditto.
! 	(vmaxu): Ditto.
! 	(vmul): Ditto.
! 	(vdiv): Ditto.
! 	(vrem): Ditto.
! 	(vdivu): Ditto.
! 	(vremu): Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vadd): New.
! 	(vsub): Ditto.
! 	(vand): Ditto.
! 	(vor): Ditto.
! 	(vxor): Ditto.
! 	(vsll): Ditto.
! 	(vsra): Ditto.
! 	(vsrl): Ditto.
! 	(vmin): Ditto.
! 	(vmax): Ditto.
! 	(vminu): Ditto.
! 	(vmaxu): Ditto.
! 	(vmul): Ditto.
! 	(vdiv): Ditto.
! 	(vrem): Ditto.
! 	(vdivu): Ditto.
! 	(vremu): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
! 	* config/riscv/riscv-vector-builtins-shapes.h (binop): New.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
! 	(DEF_RVV_U_OPS): New.
! 	(rvv_arg_type_info::get_base_vector_type): Handle
! 	RVV_BASE_shift_vector.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
! 	RVV_BASE_shift_vector.
! 	* config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
! 	* config/riscv/vector-iterators.md: Handle more opcode.
! 	* config/riscv/vector.md (@pred_<optab><mode>): New.
  
! 2023-01-31  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	PR target/108589
! 	* config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
! 	REG_P on SET_DEST.
  
! 2023-01-31  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/108608
! 	* tree-vect-loop.cc (vect_transform_reduction): Handle single
! 	def-use cycles that involve function calls rather than tree codes.
  
! 2023-01-31  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/108385
! 	* gimple-range-gori.cc (gori_compute::compute_operand_range):
! 	Allow VARYING computations to continue if there is a relation.
! 	* range-op.cc (pointer_plus_operator::op2_range): New.
  
! 2023-01-31  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/108359
! 	* range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
! 	(range_operator::fold_range): If op1 is equivalent to op2 then
! 	invoke new fold_in_parts_equiv to operate on sub-components.
! 	* range-op.h (wi_fold_in_parts_equiv): New prototype.
  
! 2023-01-31  Andrew MacLeod  <amacleod@redhat.com>
  
! 	* gimple-range-gori.cc (gori_compute::compute_operand_range): Do
! 	not abort calculations if there is a valid relation available.
! 	(gori_compute::refine_using_relation): Pass correct relation trio.
! 	(gori_compute::compute_operand1_range): Create trio and use it.
! 	(gori_compute::compute_operand2_range): Ditto.
! 	* range-op.cc (operator_plus::op1_range): Use correct trio member.
! 	(operator_minus::op1_range): Use correct trio member.
! 	* value-relation.cc (value_relation::create_trio): New.
! 	* value-relation.h (value_relation::create_trio): New prototype.
  
! 2023-01-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/108599
! 	* config/i386/i386-expand.cc
! 	(ix86_convert_const_wide_int_to_broadcast): Return nullptr if
! 	CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
! 	equal to bitsize of mode.
  
! 2023-01-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/108596
! 	* bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
! 	ends with asm goto and has a crossing fallthrough edge to the same bb
! 	that contains at least one of its labels by restoring EDGE_CROSSING
! 	flag even on possible edge from cur_bb to new_bb successor.
  
! 2023-01-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/105593
! 	* config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
! 	_mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
! 	_mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
! 	_mm512_undefined_pd () or _mm512_undefined_ps () instead of using
! 	uninitialized automatic variable __W.
  
! 2023-01-31  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/include/fdl.texi: Change fsf.org to www.fsf.org.
  
! 2023-01-30  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (get_vector_mode): New function.
! 	* config/riscv/riscv-v.cc (get_vector_mode): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
! 	(class loadstore): Adjust for indexed loads/stores support.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: New function declare.
! 	* config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
! 	(vluxei16): Ditto.
! 	(vluxei32): Ditto.
! 	(vluxei64): Ditto.
! 	(vloxei8): Ditto.
! 	(vloxei16): Ditto.
! 	(vloxei32): Ditto.
! 	(vloxei64): Ditto.
! 	(vsuxei8): Ditto.
! 	(vsuxei16): Ditto.
! 	(vsuxei32): Ditto.
! 	(vsuxei64): Ditto.
! 	(vsoxei8): Ditto.
! 	(vsoxei16): Ditto.
! 	(vsoxei32): Ditto.
! 	(vsoxei64): Ditto.
  	* config/riscv/riscv-vector-builtins-shapes.cc
! 	(struct indexed_loadstore_def): New class.
! 	(SHAPE): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
! 	for indexed loads/stores support.
! 	(check_required_extensions): Ditto.
! 	(rvv_arg_type_info::get_base_vector_type): New function.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	(function_builder::add_unique_function): Adjust for indexed loads/stores
! 	support.
! 	(function_expander::use_exact_insn): New function.
! 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
! 	indexed loads/stores support.
! 	(struct rvv_arg_type_info): Ditto.
! 	(function_expander::index_mode): New function.
! 	(function_base::apply_tail_policy_p): Ditto.
! 	(function_base::apply_mask_policy_p): Ditto.
! 	* config/riscv/vector-iterators.md (unspec): New unspec.
! 	* config/riscv/vector.md (unspec): Ditto.
! 	(@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
! 	pattern.
! 	(@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
! 	(@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
! 	(@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
! 	(@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
! 	(@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
  
! 2023-01-30  Flavio Cruz  <flaviocruz@gmail.com>
  
! 	* config.gcc: Recognize x86_64-*-gnu* targets and include
! 	i386/gnu64.h.
! 	* config/i386/gnu64.h: Define configuration for new target
! 	including ld.so location.
  
! 2023-01-30  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
! 	ampere1a to include SM4.
  
! 2023-01-30  Andrew Pinski  <apinski@marvell.com>
  
! 	PR tree-optimization/108582
! 	* tree-ssa-phiopt.cc (match_simplify_replacement): Add check
! 	for middlebb to have no phi nodes.
  
! 2023-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108574
! 	* tree-ssa-sccvn.cc (visit_phi): Instead of swapping
! 	sameval and def, ignore the equivalence if there's the
! 	danger of oscillating between two values.
  
! 2023-01-30  Andreas Schwab  <schwab@suse.de>
  
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_option_optimization_table)
! 	[TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
! 	-fasynchronous-unwind-tables and -funwind-tables.
! 	* config.gcc (riscv*-*-linux*): Define
! 	TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
  
! 2023-01-30  YunQiang Su  <yunqiang.su@cipunited.com>
  
! 	* Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
! 	value of includedir.
  
! 2023-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/108511
! 	* cgraph.cc (possibly_call_in_translation_unit_p): Relax
! 	assert.
  
! 2023-01-30  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
! 	* doc/invoke.texi: Ditto.
  
! 2023-01-29  Jan Hubicka  <hubicka@ucw.cz>
  
! 	* ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
! 	(stmt_may_terminate_function_p): If assuming return or EH
! 	volatile asm is safe.
! 	(find_always_executed_bbs): Fix handling of terminating BBS and
! 	infinite loops; add debug output.
! 	* tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
  
! 2023-01-28  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	* config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
! 	off-by-one in checking the permissible shift-amount.
  
! 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/extend.texi (Named Address Spaces): Update link to the
! 	AVR-Libc manual.
  
! 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/standards.texi (Standards): Fix markup.
  
! 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/standards.texi (Standards): Update link to Objective-C book.
  
! 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/invoke.texi (Instrumentation Options): Update reference to
! 	AddressSanitizer.
  
! 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/standards.texi: Update Go1 link.
  
! 2023-01-28  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
! 	* config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
! 	Support vlse/vsse.
! 	(BASE): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
! 	(vsse): New class.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(function_expander::use_contiguous_load_insn): Support vlse/vsse.
! 	* config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
! 	(@pred_strided_store<mode>): Ditto.
  
! 2023-01-28  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md (tail_policy_op_idx): Remove.
! 	(mask_policy_op_idx): Remove.
! 	(avl_type_op_idx): Remove.
  
! 2023-01-27  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/96373
! 	* tree.h (sign_mask_for): Declare.
! 	* tree.cc (sign_mask_for): New function.
! 	(signed_or_unsigned_type_for): For vector types, try to use the
! 	related_int_vector_mode.
! 	* genmatch.cc (commutative_op): Handle conditional internal functions.
! 	* match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
  
! 2023-01-27  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
! 	Use the likely minimum VF when bounding the denominators to
! 	the estimated number of iterations.
  
! 2023-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* doc/invoke.texi (-shared): Clarify effect on -ffast-math
! 	and -Ofast FP environment side-effects.
  
! 2023-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
! 	Don't add crtfastmath.o for -shared.
  
! 2023-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
! 	for -shared.
  
! 2023-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* config/alpha/linux.h (ENDFILE_SPEC): Don't add
! 	crtfastmath.o for -shared.
  
! 2023-01-27  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/108306
! 	* range-op.cc (operator_lshift::fold_range): Return [0, 0] not
! 	varying for shifts that are always out of void range.
! 	(operator_rshift::fold_range): Return [0, 0] not
! 	varying for shifts that are always out of void range.
  
! 2023-01-27  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/108447
! 	* gimple-range-fold.cc (old_using_range::relation_fold_and_or):
! 	Do not attempt to fold HONOR_NAN types.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
! 	Remove _m suffix for "vop_m" C++ overloaded API name.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
! 	(vsm): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
! 	(vbool64_t): Ditto.
! 	(vbool32_t): Ditto.
! 	(vbool16_t): Ditto.
! 	(vbool8_t): Ditto.
! 	(vbool4_t): Ditto.
! 	(vbool2_t): Ditto.
! 	(vbool1_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
! 	(rvv_arg_type_info::get_tree_type): Ditto.
! 	(function_expander::use_contiguous_load_insn): Ditto.
! 	* config/riscv/vector.md (@pred_store<mode>): Ditto.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
! 	(vsetvl_discard_result_insn_p): New function.
! 	(reg_killed_by_bb_p): rename to find_reg_killed_by.
! 	(find_reg_killed_by): New name.
! 	(get_vl): allow it to be called by more functions.
! 	(has_vsetvl_killed_avl_p): Add condition.
! 	(get_avl): allow it to be called by more functions.
! 	(insn_should_be_added_p): New function.
! 	(get_all_nonphi_defs): Refine function.
! 	(get_all_sets): Ditto.
! 	(get_same_bb_set): New function.
! 	(any_insn_in_bb_p): Ditto.
! 	(any_set_in_bb_p): Ditto.
! 	(get_vl_vtype_info): Add VLMAX forward optimization.
! 	(source_equal_p): Fix issues.
! 	(extract_single_source): Refine.
! 	(avl_info::multiple_source_equal_p): New function.
! 	(avl_info::operator==): Adjust for final version.
! 	(vl_vtype_info::operator==): Ditto.
! 	(vl_vtype_info::same_avl_p): Ditto.
! 	(vector_insn_info::parse_insn): Ditto.
! 	(vector_insn_info::available_p): New function.
! 	(vector_insn_info::merge): Adjust for final version.
! 	(vector_insn_info::dump): Add hard_empty.
! 	(pass_vsetvl::hard_empty_block_p): New function.
! 	(pass_vsetvl::backward_demand_fusion): Adjust for final version.
! 	(pass_vsetvl::forward_demand_fusion): Ditto.
! 	(pass_vsetvl::demand_fusion): Ditto.
! 	(pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
! 	(pass_vsetvl::compute_local_properties): Adjust for final version.
! 	(pass_vsetvl::can_refine_vsetvl_p): Ditto.
! 	(pass_vsetvl::refine_vsetvls): Ditto.
! 	(pass_vsetvl::commit_vsetvls): Ditto.
! 	(pass_vsetvl::propagate_avl): New function.
! 	(pass_vsetvl::lazy_vsetvl): Adjust for new version.
! 	* config/riscv/riscv-vsetvl.h (enum def_type): New enum.
  
! 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/108560
! 	* doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
! 	from size_t to int.
  
! 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/106061
! 	* cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
! 	redirection of calls to __builtin_trap in addition to redirection
! 	to __builtin_unreachable.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
! 	(emit_vsetvl_insn): Ditto.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Fix constraints.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
  
! 2023-01-27  Patrick Palka  <ppalka@redhat.com>
  	    Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree-core.h (tree_code_type, tree_code_length): For
! 	C++17 and later, add inline keyword, otherwise don't define
! 	the arrays, but declare extern arrays.
! 	* tree.cc (tree_code_type, tree_code_length): Define these
! 	arrays for C++14 and older.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.h: Change it into public.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
! 	pass.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
  
! 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Fix incorrect attributes.
  
! 2023-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
! 	Don't add crtfastmath.o for -shared.
  
! 2023-01-27  Alexandre Oliva  <oliva@gnu.org>
  
! 	* doc/options.texi (option, RejectNegative): Mention that
! 	-g-started options are also implicitly negatable.
  
! 2023-01-26  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv-vector-builtins.cc (register_builtin_types):
! 	Use get_typenode_from_name to get fixed-width integer type
! 	nodes.
! 	* config/riscv/riscv-vector-builtins.def: Update define with
! 	fixed-width integer type nodes.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
! 	(real_insn_and_same_bb_p): New function.
! 	(same_bb_and_after_or_equal_p): Remove it.
! 	(before_p): New function.
! 	(reg_killed_by_bb_p): Ditto.
! 	(has_vsetvl_killed_avl_p): Ditto.
! 	(get_vl): Move location so that we can call it.
! 	(anticipatable_occurrence_p): Fix issue of AVL=REG support.
! 	(available_occurrence_p): Ditto.
! 	(dominate_probability_p): Remove it.
! 	(can_backward_propagate_p): Remove it.
! 	(get_all_nonphi_defs): New function.
! 	(get_all_predecessors): Ditto.
! 	(any_insn_in_bb_p): Ditto.
! 	(insert_vsetvl): Adjust AVL REG.
! 	(source_equal_p): New function.
! 	(extract_single_source): Ditto.
! 	(avl_info::single_source_equal_p): Ditto.
! 	(avl_info::operator==): Adjust for AVL=REG.
! 	(vl_vtype_info::same_avl_p): Ditto.
! 	(vector_insn_info::set_demand_info): Remove it.
! 	(vector_insn_info::compatible_p): Adjust for AVL=REG.
! 	(vector_insn_info::compatible_avl_p): New function.
! 	(vector_insn_info::merge): Adjust AVL=REG.
! 	(vector_insn_info::dump): Ditto.
! 	(pass_vsetvl::merge_successors): Remove it.
! 	(enum fusion_type): New enum.
! 	(pass_vsetvl::get_backward_fusion_type): New function.
! 	(pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
! 	(pass_vsetvl::forward_demand_fusion): Ditto.
! 	(pass_vsetvl::demand_fusion): Ditto.
! 	(pass_vsetvl::prune_expressions): Ditto.
! 	(pass_vsetvl::compute_local_properties): Ditto.
! 	(pass_vsetvl::cleanup_vsetvls): Ditto.
! 	(pass_vsetvl::commit_vsetvls): Ditto.
! 	(pass_vsetvl::init): Ditto.
! 	* config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
! 	(enum merge_type): New enum.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc
! 	(vector_infos_manager::vector_infos_manager): Add probability.
! 	(vector_infos_manager::dump): Ditto.
! 	(pass_vsetvl::compute_probabilities): Ditto.
! 	* config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
! 	(vector_insn_info::merge): Ditto.
! 	(vector_insn_info::dump): Ditto.
! 	(pass_vsetvl::merge_successors): Ditto.
! 	(pass_vsetvl::backward_demand_fusion): Ditto.
! 	(pass_vsetvl::forward_demand_fusion): Ditto.
! 	(pass_vsetvl::commit_vsetvls): Ditto.
! 	* config/riscv/riscv-vsetvl.h: Ditto.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
! 	rinsn.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
! 	Add pre-check for redundant flow.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
! 	(vector_infos_manager::free_bitmap_vectors): Ditto.
! 	(pass_vsetvl::pre_vsetvl): Adjust codes.
! 	* config/riscv/riscv-vsetvl.h: New function declaration.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
! 	(vector_insn_info::set_demand_info): New function.
! 	(pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
! 	(pass_vsetvl::merge_successors): Ditto.
! 	(pass_vsetvl::compute_global_backward_infos): Ditto.
! 	(pass_vsetvl::backward_demand_fusion): Ditto.
! 	(pass_vsetvl::forward_demand_fusion): Ditto.
! 	(pass_vsetvl::demand_fusion): New function.
! 	(pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
! 	* config/riscv/riscv-vsetvl.h: New function declaration.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
! 	(pass_vsetvl::compute_global_backward_infos): Simplify codes.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
! 	(backward_propagate_worthwhile_p): Fix non-worthwhile.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
! 	(pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
! 	(pass_vsetvl::commit_vsetvls): Ditto.
! 	* config/riscv/riscv-vsetvl.h: New function declaration.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md:
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
! 	pred_store for vse.
! 	* config/riscv/riscv-vector-builtins.cc
! 	(function_expander::add_mem_operand): Refine function.
! 	(function_expander::use_contiguous_load_insn): Adjust new
! 	implementation.
! 	(function_expander::use_contiguous_store_insn): Ditto.
! 	* config/riscv/riscv-vector-builtins.h: Refine function.
! 	* config/riscv/vector.md (@pred_store<mode>): New pattern.
  
! 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
  
! 2023-01-26  Marek Polacek  <polacek@redhat.com>
  
! 	PR middle-end/108543
! 	* opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
! 	if it was previously set.
  
! 2023-01-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108540
! 	* range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
! 	are singletons, use range_true even if op1 != op2
! 	when one range is [-0.0, -0.0] and another [0.0, 0.0].  Similarly,
! 	even if intersection of the ranges is empty and one has
! 	zero low bound and another zero high bound, use range_true_and_false
! 	rather than range_false.
! 	(foperator_not_equal::fold_range): If both op1 and op2
! 	are singletons, use range_false even if op1 != op2
! 	when one range is [-0.0, -0.0] and another [0.0, 0.0].  Similarly,
! 	even if intersection of the ranges is empty and one has
! 	zero low bound and another zero high bound, use range_true_and_false
! 	rather than range_true.
  
! 2023-01-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	* value-relation.cc (kind_string): Add const.
! 	(rr_negate_table, rr_swap_table, rr_intersect_table,
! 	rr_union_table, rr_transitive_table): Add static const, change
! 	element type from relation_kind to unsigned char.
! 	(relation_negate, relation_swap, relation_intersect, relation_union,
! 	relation_transitive): Cast rr_*_table element to relation_kind.
! 	(relation_to_code): Add static const.
! 	(relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
  
! 2023-01-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108547
! 	* gimple-predicate-analysis.cc (value_sat_pred_p):
! 	Use widest_int.
  
! 2023-01-26  Siddhesh Poyarekar  <siddhesh@gotplt.org>
  
! 	PR tree-optimization/108522
! 	* tree-object-size.cc (compute_object_offset): Make EXPR
! 	argument non-const.  Call component_ref_field_offset.
  
! 2023-01-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def (cssc): Specify
! 	FEATURE_STRING field.
  
! 2023-01-26  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/sourcebuild.texi: Refer to projects as GCC and GDB.
  
! 2023-01-25  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR modula2/102343
! 	PR modula2/108182
! 	* gcc.cc: Provide default specs for Modula-2 so that when the
! 	language is not built-in better diagnostics are emitted for
! 	attempts to use .mod or .m2i file extensions.
  
! 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
  
! 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
  
! 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
! 	Fix spacing.
  
! 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
  
! 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
  
! 2023-01-25  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108523
! 	* tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
! 	backedge value for the result when using predication to
! 	prove equivalence.
  
! 2023-01-25  Richard Biener  <rguenther@suse.de>
  
! 	* doc/lto.texi (Command line options): Reword and update reference
! 	to removed lto_read_all_file_options.
  
! 2023-01-25  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
! 	tests.
  
! 2023-01-25  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/contrib.texi: Add Jose E. Marchesi.
  
! 2023-01-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108498
! 	* gimple-ssa-store-merging.cc (class store_operand_info):
! 	End coment with full stop rather than comma.
! 	(split_group): Likewise.
! 	(merged_store_group::apply_stores): Clear string_concatenation if
! 	start or end aren't on a byte boundary.
  
! 2023-01-25  Siddhesh Poyarekar  <siddhesh@gotplt.org>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108522
! 	* tree-object-size.cc (compute_object_offset): Use
! 	TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
  
! 2023-01-24  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md:
! 	Fix exit from loops detecting references before overwriting in the
! 	split pattern.
  
! 2023-01-24  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	* lra-constraints.cc (get_hard_regno): Remove final_p arg.  Always
! 	do elimination but only for hard register.
! 	(operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
! 	calls of get_hard_regno.
  
! 2023-01-24  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390-d.cc (s390_d_target_versions): Fix detection
! 	of CPU version.
  
! 2023-01-24  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	PR target/108177
! 	* config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
! 	mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
! 	as input operand.
  
! 2023-01-24  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
  
! 	* config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
! 	and only include 'csky/t-csky-linux' when enable multilib.
! 	* config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
! 	define it when disable multilib.
  
! 2023-01-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108500
! 	* dominance.h (calculate_dominance_info): Add parameter
! 	to indicate fast-query compute, defaulted to true.
! 	* dominance.cc (calculate_dominance_info): Honor
! 	fast-query compute parameter.
! 	* tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
! 	not compute the dominator fast-query DFS numbers.
  
! 2023-01-24  Eric Biggers  <ebiggers@google.com>
  
! 	PR bootstrap/90543
! 	* optc-save-gen.awk: Fix copy-and-paste error.
  
! 2023-01-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/108474
! 	* cgraphbuild.cc: Include gimplify.h.
! 	(record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
! 	their corresponding DECL_VALUE_EXPR expressions after unsharing.
  
! 2023-01-24  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	PR target/108505
! 	* config.gcc (tm_file): Move the variable out of loop.
  
! 2023-01-24  Lulu Cheng  <chenglulu@loongson.cn>
! 	    Yang Yujie  <yangyujie@loongson.cn>
  
! 	PR target/107731
! 	* config/loongarch/loongarch.cc (loongarch_classify_address):
! 	Add precessint for CONST_INT.
! 	(loongarch_print_operand_reloc): Operand modifier 'c' is supported.
! 	(loongarch_print_operand): Increase the processing of '%c'.
! 	* doc/extend.texi: Adds documents for LoongArch operand modifiers.
! 	And port the public operand modifiers information to this document.
  
! 2023-01-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	* doc/invoke.texi (-mbranch-protection): Update documentation.
  
! 2023-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
! 	for -shared.
! 	* config/sparc/linux.h (ENDFILE_SPEC): Likewise.
! 	* config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
! 	* config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
! 	* config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
  
! 2023-01-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	* config/arm/aout.h (ra_auth_code): Add entry in enum.
! 	* config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
! 	to dwarf frame expression.
! 	(arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
! 	(arm_expand_prologue): Update frame related information and reg notes
! 	for pac/pacbit insn.
! 	(arm_regno_class): Check for pac pseudo reigster.
! 	(arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
! 	(arm_init_machine_status): Set pacspval_needed to zero.
! 	(arm_debugger_regno): Check for PAC register.
! 	(arm_unwind_emit_sequence): Print .save directive with ra_auth_code
! 	register.
! 	(arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
! 	(arm_unwind_emit): Update REG_CFA_REGISTER case._
! 	* config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
! 	(DWARF_PAC_REGNUM): Define.
! 	(IS_PAC_REGNUM): Likewise.
! 	(enum reg_class): Add PAC_REG entry.
! 	(machine_function): Add pacbti_needed state to structure.
! 	* config/arm/arm.md (RA_AUTH_CODE): Define.
  
! 2023-01-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	* config.gcc ($tm_file): Update variable.
! 	* config/arm/arm-mlib.h: Create new header file.
! 	* config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
! 	multilib arch directory.
! 	(MULTILIB_REUSE): Add multilib reuse rules.
! 	(MULTILIB_MATCHES): Add multilib match rules.
  
! 2023-01-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	* config/arm/arm-cpus.in (cortex-m85): Define new CPU.
! 	* config/arm/arm-tables.opt: Regenerate.
! 	* config/arm/arm-tune.md: Likewise.
! 	* doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
! 	* (-mfix-cmse-cve-2021-35465): Likewise.
  
! 2023-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108482
! 	* tree-vect-generic.cc (expand_vector_operations): Fold remaining
! 	.LOOP_DIST_ALIAS calls.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
! 	* config/arm/arm-protos.h: Update.
! 	* config/arm/aarch-common-protos.h: Declare
! 	'aarch_bti_arch_check'.
! 	* config/arm/arm.cc (aarch_bti_enabled) Update.
! 	(aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
! 	(aarch_gen_bti_j, aarch_bti_arch_check): New functions.
! 	* config/arm/arm.md (bti_nop): New insn.
! 	* config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
! 	(aarch-bti-insert.o): New target.
! 	* config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
! 	* config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
! 	compatibility.
! 	(gate): Make use of 'aarch_bti_arch_check'.
! 	* config/arm/arm-passes.def: New file.
! 	* config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
! 	'aarch-bti-insert.o'.
! 	* config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
! 	proto.
! 	* config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
! 	(aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
! 	(aarch64_output_mi_thunk)
! 	(aarch64_print_patchable_function_entry)
! 	(aarch64_file_end_indicate_exec_stack): Update renamed function
! 	calls to renamed functions.
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
! 	* config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
! 	target.
! 	* config/aarch64/aarch64-bti-insert.cc: Delete.
! 	* config/arm/aarch-bti-insert.cc: New file including and
! 	generalizing code from aarch64-bti-insert.cc.
! 	* config/arm/aarch-common-protos.h: Update.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/arm.h (arm_arch8m_main): Declare it.
! 	* config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
! 	Declare it.
! 	* config/arm/arm.cc (arm_arch8m_main): Define it.
! 	(arm_option_reconfigure_globals): Set arm_arch8m_main.
! 	(arm_compute_frame_layout, arm_expand_prologue)
! 	(thumb2_expand_return, arm_expand_epilogue)
! 	(arm_conditional_register_usage): Update for pac codegen.
! 	(arm_current_function_pac_enabled_p): New function.
! 	(aarch_bti_enabled) New function.
! 	(use_return_insn): Return zero when pac is enabled.
! 	* config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
! 	Add new patterns.
! 	* config/arm/unspecs.md (UNSPEC_PAC_NOP)
! 	(VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
  
! 	* config/arm/t-rmprofile: Add multilib rules for march +pacbti and
! 	mbranch-protection.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
! 	    Tejas Belagod   <tbelagod@arm.com>
  
! 	* config/arm/arm.cc (arm_file_start): Emit EABI attributes for
! 	Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
! 	    Tejas Belagod   <tbelagod@arm.com>
! 	    Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	* ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
! 	new pseudo register class _UVRSC_PAC.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
! 	    Tejas Belagod   <tbelagod@arm.com>
  
! 	* config/arm/arm-c.cc (arm_cpu_builtins): Define
! 	__ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
! 	__ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
! 	    Tejas Belagod   <tbelagod@arm.com>
  
! 	* doc/sourcebuild.texi: Document arm_pacbti_hw.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
! 	    Tejas Belagod   <tbelagod@arm.com>
! 	    Richard Earnshaw  <Richard.Earnshaw@arm.com>
  
! 	* config/arm/arm.cc (arm_configure_build_target): Parse and validate
! 	-mbranch-protection option and initialize appropriate data structures.
! 	* config/arm/arm.opt (-mbranch-protection): New option.
! 	* doc/invoke.texi (Arm Options): Document it.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
! 	    Tejas Belagod   <tbelagod@arm.com>
  
! 	* config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
! 	* config/arm/arm-cpus.in (pacbti): New feature.
! 	* doc/invoke.texi (Arm Options): Document it.
  
! 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
! 	    Tejas Belagod   <tbelagod@arm.com>
  
! 	* common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
! 	(all_architectures): Fix comment.
! 	(aarch64_parse_extension): Rename return type, enum value names.
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
! 	factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
! 	Also rename corresponding enum values.
! 	* config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
! 	out aarch64_function_type and move it to common code as
! 	aarch_function_type in aarch-common.h.
! 	* config/aarch64/aarch64-protos.h: Include common types header,
! 	move out types aarch64_parse_opt_result and aarch64_key_type to
! 	aarch-common.h
! 	* config/aarch64/aarch64.cc: Move mbranch-protection parsing types
! 	and functions out into aarch-common.h and aarch-common.cc.  Fix up
! 	all the name changes resulting from the move.
! 	* config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
! 	and enum value.
! 	* config/aarch64/aarch64.opt: Include aarch-common.h to import
! 	type move.  Fix up name changes from factoring out common code and
! 	data.
! 	* config/arm/aarch-common-protos.h: Export factored out routines to both
! 	backends.
! 	* config/arm/aarch-common.cc: Include newly factored out types.
! 	Move all mbranch-protection code and data structures from
! 	aarch64.cc.
! 	* config/arm/aarch-common.h: New header that declares types shared
! 	between aarch32 and aarch64 backends.
! 	* config/arm/arm-protos.h: Declare types and variables that are
! 	made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
! 	aarch_ra_sign_scope and aarch_enable_bti.
! 	* config/arm/arm.opt (config/arm/aarch-common.h): Include header.
! 	(aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
! 	* config/arm/arm.cc: Add missing includes.
  
! 2023-01-23  Tobias Burnus  <tobias@codesourcery.com>
  
! 	* doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
  
! 2023-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108449
! 	* cgraphunit.cc (check_global_declaration): Do not turn
! 	undefined statics into externs.
  
! 2023-01-22  Dimitar Dimitrov  <dimitar@dinux.eu>
  
! 	* config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
! 	and HI input modes.
! 	* config/pru/pru.md (clz): Fix generated code for QI and HI
! 	input modes.
  
! 2023-01-22  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/v850/v850.cc (v850_select_section): Put const volatile
! 	objects into read-only sections.
  
! 2023-01-20  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	* config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
! 	vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
! 	(vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
  
! 2023-01-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108457
! 	* tree-ssa-loop-niter.cc (build_cltz_expr): Use
! 	SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
! 	argument instead of a temporary.  Formatting fixes.
  
! 2023-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108447
! 	* value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
! 	(relation_tests): Add self-tests for relation_{intersect,union}
! 	commutativity.
! 	* selftest.h (relation_tests): Declare.
! 	* function-tests.cc (test_ranges): Call it.
  
! 2023-01-19  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/108436
! 	* config/i386/i386-expand.cc (ix86_expand_builtin): Check
! 	invalid third argument to __builtin_ia32_prefetch.
  
! 2023-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/108459
! 	* omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
! 	than fold_unary for NEGATE_EXPR.
  
! 2023-01-19  Christophe Lyon  <christophe.lyon@arm.com>
  
! 	PR target/108411
! 	* config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
! 	comment. Move assert about alignment a bit later.
  
! 2023-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108440
! 	* tree-ssa-forwprop.cc: Include gimple-range.h.
! 	(simplify_rotate): For the forms with T2 wider than T and shift counts of
! 	Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
! 	to B.  For the forms with T2 wider than T and shift counts of
! 	Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
! 	range doesn't guarantee Y < B or Y = N * B.  If range doesn't guarantee
! 	Y < B, also add & (B - 1) masking for the rotate count.  Use lazily created
! 	pass specific ranger instead of get_global_range_query.
! 	(pass_forwprop::execute): Disable that ranger at the end of pass if it has
! 	been created.
  
! 2023-01-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
  
! 	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
! 	exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
! 	the pattern.
! 	(aarch64_simd_vec_copy_lane<mode>): Likewise.
! 	(aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
  
! 2023-01-19  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR debug/106746
! 	* sched-deps.cc (sched_analyze_2): Skip cselib address lookup
! 	within debug insns.
  
! 2023-01-18  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/107944
! 	* cgraph.cc (cgraph_node::remove): Check whether nodes up the
! 	lcone_of chain also do not need the body.
  
! 2023-01-18  Richard Biener  <rguenther@suse.de>
  
! 	Revert:
! 	2022-12-16  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/108086
! 	* tree-inline.cc (remap_ssa_name): Do not unshare the
! 	result from the decl_map.
  
! 2023-01-18  Murray Steele  <murray.steele@arm.com>
  
! 	PR target/108442
! 	* config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
! 	function.
! 	(__arm_vst1q_p_s8): Likewise.
! 	(__arm_vld1q_z_u8): Likewise.
! 	(__arm_vld1q_z_s8): Likewise.
! 	(__arm_vst1q_p_u16): Likewise.
! 	(__arm_vst1q_p_s16): Likewise.
! 	(__arm_vld1q_z_u16): Likewise.
! 	(__arm_vld1q_z_s16): Likewise.
! 	(__arm_vst1q_p_u32): Likewise.
! 	(__arm_vst1q_p_s32): Likewise.
! 	(__arm_vld1q_z_u32): Likewise.
! 	(__arm_vld1q_z_s32): Likewise.
! 	(__arm_vld1q_z_f16): Likewise.
! 	(__arm_vst1q_p_f16): Likewise.
! 	(__arm_vld1q_z_f32): Likewise.
! 	(__arm_vst1q_p_f32): Likewise.
  
! 2023-01-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (xorsi3_internal):
! 	Rename from the original of "xorsi3".
! 	(xorsi3): New expansion pattern that emits addition rather than
! 	bitwise-XOR when the second source is a constant of -2147483648
! 	if TARGET_DENSITY.
  
! 2023-01-18  Kewen Lin  <linkw@linux.ibm.com>
! 	    Andrew Pinski  <apinski@marvell.com>
  
! 	PR target/108396
! 	* config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
! 	vec_vsubcuqP with vec_vsubcuq.
  
! 2023-01-18  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/108348
! 	* config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
! 	support for invalid uses of MMA opaque type in function arguments.
  
! 2023-01-18  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/55522
! 	* config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
! 	whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
! 	-share or -mno-daz-ftz is specified.
! 	* config/i386/darwin.h (ENDFILE_SPEC): Ditto.
! 	* config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
  
! 2023-01-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
  
! 	* config/bpf/bpf.cc (bpf_option_override): Disable
! 	-fstack-protector.
  
! 2023-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/106523
! 	* tree-ssa-forwprop.cc (simplify_rotate): For the
! 	patterns with (-Y) & (B - 1) in one operand's shift
! 	count and Y in another, if T2 has wider precision than T,
! 	punt if Y could have a value in [B, B2 - 1] range.
  
! 2023-01-16  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/105980
! 	* config/i386/i386.cc (x86_output_mi_thunk): Disable
! 	-mforce-indirect-call for PIC in 32-bit mode.
  
! 2023-01-16  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR ipa/106077
! 	* ipa-modref.cc (modref_access_analysis::analyze): Use
! 	find_always_executed_bbs.
! 	* ipa-sra.cc (process_scan_results): Likewise.
! 	* ipa-utils.cc (stmt_may_terminate_function_p): New function.
! 	(find_always_executed_bbs): New function.
! 	* ipa-utils.h (stmt_may_terminate_function_p): Declare.
! 	(find_always_executed_bbs): Declare.
  
! 2023-01-16  Jan Hubicka  <jh@suse.cz>
  
! 	* config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
! 	by TARGET_USE_SCATTER.
! 	* config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
! 	TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
! 	* config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
! 	TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
! 	(X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
! 	for znver4.  (X86_TUNE_USE_GATHER): Disable for zen4.
  
! 2023-01-16  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
  
! 2023-01-16  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
  
! 	PR target/96795
! 	PR target/107515
! 	* config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
! 	(__ARM_mve_coerce3): Likewise.
  
! 2023-01-16  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
  
! 2023-01-16  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
! 	(number_of_iterations_bitcount): Add call to the above.
! 	(number_of_iterations_exit_assumptions): Add EQ_EXPR case for
! 	c[lt]z idiom recognition.
  
! 2023-01-16  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* doc/sourcebuild.texi: Add missing target attributes.
  
! 2023-01-16  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	PR tree-optimization/94793
! 	* tree-scalar-evolution.cc (expression_expensive_p): Add checks
! 	for c[lt]z optabs.
! 	* tree-ssa-loop-niter.cc (build_cltz_expr): New.
! 	(number_of_iterations_cltz_complement): New.
! 	(number_of_iterations_bitcount): Add call to the above.
  
! 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/extend.texi (Common Function Attributes): Fix grammar.
  
! 2023-01-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/108413
! 	* config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
! 	* config/riscv/riscv-vsetvl.cc: Likewise.
  
! 2023-01-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/105593
! 	* config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
! 	disable -Winit-self using pragma GCC diagnostic ignored.
! 	* config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
! 	Likewise.
! 	* config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
! 	_mm256_undefined_si256): Likewise.
! 	* config/i386/avx512fintrin.h (_mm512_undefined_pd,
! 	_mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
! 	* config/i386/avx512fp16intrin.h (_mm_undefined_ph,
! 	_mm256_undefined_ph, _mm512_undefined_ph): Likewise.
  
! 2023-01-16  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/108272
! 	* config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
! 	support for invalid uses in inline asm, factor out the checking and
! 	erroring to lambda function check_and_error_invalid_use.
  
! 2023-01-15  Aldy Hernandez  <aldyh@redhat.com>
  
! 	PR tree-optimization/107608
! 	* range-op-float.cc (range_operator_float::fold_range): Avoid
! 	folding into INF when flag_trapping_math.
! 	* value-range.h (frange::known_isinf): Return false for possible NANs.
  
! 2023-01-15  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
  
! 	* config.gcc (csky-*-*): Support --with-float=softfp.
  
! 2023-01-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
! 	Rename to xtensa_adjust_reg_alloc_order.
! 	* config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
! 	Ditto.  And also remove code to reorder register numbers for
! 	leaf functions, rename the tables, and adjust the allocation
! 	order for the call0 ABI to use register A0 more.
! 	(xtensa_leaf_regs): Remove.
! 	* config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
! 	(order_regs_for_local_alloc): Rename as the above.
! 	(LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
  
! 2023-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
  
! 	* config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
! 	Change to define_insn_and_split to fold ldr+dup to ld1rq.
! 	* config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
  
! 2023-01-14  Alexandre Oliva  <oliva@adacore.com>
  
! 	* hash-table.h (is_deleted): Precheck !is_empty.
! 	(mark_deleted): Postcheck !is_empty.
! 	(copy constructor): Test is_empty before is_deleted.
  
! 2023-01-14  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR target/40457
! 	* config/arm/arm.md (movmisaligndi): Prefer aligned SImode
! 	moves.
  
! 2023-01-13  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR rtl-optimization/108274
! 	* function.cc (thread_prologue_and_epilogue_insns): Also update the
! 	DF information for calls in a few more cases.
  
! 2023-01-13  John David Anglin  <danglin@gcc.gnu.org>
  
! 	* config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
! 	* config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
! 	define.
! 	* config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
! 	(MAX_SYNC_LIBFUNC_SIZE): Define.
! 	(TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
! 	enabled.
! 	* config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
! 	libcall when sync libcalls are disabled.
! 	(atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
! 	(atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
! 	are disabled on 32-bit target.
! 	* config/pa/pa.opt (matomic-libcalls): New option.
! 	* doc/invoke.texi (HPPA Options): Update.
  
! 2023-01-13  Alexander Monakov  <amonakov@ispras.ru>
  
! 	PR rtl-optimization/108117
! 	PR rtl-optimization/108132
! 	* sched-deps.cc (deps_analyze_insn): Do not schedule across
! 	calls before reload.
  
! 2023-01-13  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	* common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
! 	options for -mlibarch.
! 	* config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
! 	* doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
  
! 2023-01-13  Qing Zhao  <qing.zhao@oracle.com>
  
! 	* attribs.cc (strict_flex_array_level_of): Move this function to ...
! 	* attribs.h (strict_flex_array_level_of): Remove the declaration.
! 	* gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
! 	replace the referece to strict_flex_array_level_of with
! 	DECL_NOT_FLEXARRAY.
! 	* tree.cc (component_ref_size): Likewise.
  
! 2023-01-13  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
! 	crtfastmath.o for -shared.
! 	* config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
  
! 2023-01-13  Richard Biener  <rguenther@suse.de>
  
! 	PR target/55522
! 	* config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
! 	crtfastmath.o for -shared.
! 	* config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
! 	Likewise.
! 	* config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
! 	Likewise.
  
! 2023-01-13  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
! 	function.
! 	(TARGET_DWARF_FRAME_REG_MODE): Define.
  
! 2023-01-13  Richard Biener  <rguenther@suse.de>
  
! 	PR target/107209
! 	* config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
! 	update EH info on the fly.
  
! 2023-01-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108387
! 	* tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
! 	value before inserting expression into the tables.
  
! 2023-01-12  Andrew Pinski  <apinski@marvell.com>
! 	    Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR tree-optimization/92342
! 	* match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
! 	Use tcc_comparison and :c for the multiply.
! 	(b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
  
! 2023-01-12  Christophe Lyon  <christophe.lyon@arm.com>
! 	    Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/105549
! 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
! 	Check DECL_PACKED for bitfield.
! 	(aarch64_layout_arg): Warn when parameter passing ABI changes.
! 	(aarch64_function_arg_boundary): Do not warn here.
! 	(aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
! 	changes.
  
! 2023-01-12  Christophe Lyon  <christophe.lyon@arm.com>
! 	    Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
! 	comment.
! 	(aarch64_layout_arg): Factorize warning conditions.
! 	(aarch64_function_arg_boundary): Fix typo.
! 	* function.cc (currently_expanding_function_start): New variable.
! 	(expand_function_start): Handle
! 	currently_expanding_function_start.
! 	* function.h (currently_expanding_function_start): Declare.
  
! 2023-01-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/99412
! 	* tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
! 	(swap_ops_for_binary_stmt): Remove reduction handling.
! 	(rewrite_expr_tree_parallel): Adjust.
! 	(reassociate_bb): Likewise.
! 	* tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
  
! 2023-01-12  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (ctzsi2, ffssi2):
! 	Rearrange the emitting codes.
  
! 2023-01-12  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (*btrue):
! 	Correct value of the attribute "length" that depends on
! 	TARGET_DENSITY and operands, and add '?' character to the register
! 	constraint of the compared operand.
  
! 2023-01-12  Alexandre Oliva  <oliva@adacore.com>
  
! 	* hash-table.h (expand): Check elements and deleted counts.
! 	(verify): Likewise.
  
! 2023-01-11  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR tree-optimization/71343
! 	* tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
! 	the value number of the expression X << C the same as the value
! 	number for the multiplication X * (1<<C).
  
! 2023-01-11  David Faust  <david.faust@oracle.com>
  
! 	PR target/108293
! 	* config/bpf/bpf.cc (bpf_print_operand): Correct handling for
! 	floating point modes.
  
! 2023-01-11  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR tree-optimization/108199
! 	* tree-sra.cc (sra_modify_expr): Deal with reverse storage order
! 	for bit-field references.
  
! 2023-01-11  Kewen Lin  <linkw@linux.ibm.com>
  
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
! 	OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
! 	* config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
! 	OPTION_MASK_P10_FUSION.
  
! 2023-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/107767
! 	* tree-cfgcleanup.cc (phi_alternatives_equal): Export.
! 	* tree-cfgcleanup.h (phi_alternatives_equal): Declare.
! 	* tree-switch-conversion.cc (switch_conversion::collect):
! 	Count unique non-default targets accounting for later
! 	merging opportunities.
  
! 2023-01-11  Martin Liska  <mliska@suse.cz>
  
! 	PR middle-end/107976
! 	* params.opt: Limit JT params.
! 	* stmt.cc (emit_case_dispatch_table): Use auto_vec.
  
! 2023-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108352
! 	* tree-ssa-threadbackward.cc
! 	(back_threader_profitability::profitable_path_p): Adjust
! 	heuristic that allows non-multi-way branch threads creating
! 	irreducible loops.
! 	* doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
! 	(--param fsm-scale-path-stmts): Adjust.
! 	* params.opt (--param=fsm-scale-path-blocks=): Remove.
! 	(-param=fsm-scale-path-stmts=): Adjust description.
  
! 2023-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108353
! 	* tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
! 	Remove.
! 	(add_ssa_edge): Simplify.
! 	(add_control_edge): Likewise.
! 	(ssa_prop_init): Likewise.
! 	(ssa_prop_fini): Likewise.
! 	(ssa_propagation_engine::ssa_propagate): Likewise.
  
! 2023-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.md (*not<mode>): New pattern.
  
! 2023-01-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (xtensa_insn_cost):
! 	Let insn cost for size be obtained by applying COSTS_N_INSNS()
! 	to instruction length and then dividing by 3.
  
! 2023-01-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/106293
! 	* tree-ssa-dse.cc (dse_classify_store): Use a worklist to
! 	process degenerate PHI defs.
  
! 2023-01-10  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR rtl-optimization/106421
! 	* cprop.cc (bypass_block): Check that DEST is local to this
! 	function (non-NULL) before calling find_edge.
  
! 2023-01-10  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/108110
! 	* ipa-param-manipulation.h (ipa_param_body_adjustments): New members
! 	sort_replacements, lookup_first_base_replacement and
! 	m_sorted_replacements_p.
! 	* ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
! 	(ipa_param_body_adjustments::register_replacement): Set
! 	m_sorted_replacements_p to false.
! 	(compare_param_body_replacement): New function.
! 	(ipa_param_body_adjustments::sort_replacements): Likewise.
! 	(ipa_param_body_adjustments::common_initialization): Call
! 	sort_replacements.
! 	(ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
! 	m_sorted_replacements_p.
! 	(ipa_param_body_adjustments::lookup_replacement_1): Rework to use
! 	std::lower_bound.
! 	(ipa_param_body_adjustments::lookup_first_base_replacement): New
! 	function.
! 	(ipa_param_body_adjustments::modify_call_stmt): Use
! 	lookup_first_base_replacement.
! 	* omp-simd-clone.cc (ipa_simd_modify_function_body): Call
! 	adjustments->sort_replacements.
  
! 2023-01-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/108314
! 	* tree-vect-stmts.cc (vectorizable_condition): Do not
! 	perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
  
! 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
  
! 	* config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
  
! 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
  
! 	* config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
  
! 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
  
! 	* config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
! 	defines for soft float abi.
  
! 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
  
! 	* config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
! 	(smart_bclri): Likewise.
! 	(fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
! 	(fast_bclri): Likewise.
! 	(fast_cmpnesi_i): Likewise.
! 	(*fast_cmpltsi_i): Likewise.
! 	(*fast_cmpgeusi_i): Likewise.
  
! 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
  
! 	* config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
! 	flag_fp_int_builtin_inexact || !flag_trapping_math.
! 	(<frm_pattern><mode>2): Likewise.
  
! 2023-01-10  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_register_info): Check call_used_regs
! 	instead of hard-coding the register numbers for call saved
! 	registers.
! 	(s390_optimize_register_info): Likewise.
  
! 2023-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* doc/gm2.texi (Overview): Fix @node markers.
! 	(Using): Likewise.  Remove subsections that were moved to Overview
! 	from the menu and move others around.
  
! 2023-01-09  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/108209
! 	* genmatch.cc (commutative_op): Fix return value for
! 	user-id with non-commutative first replacement.
  
! 2023-01-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/107453
! 	* calls.cc (expand_call): For calls with
! 	TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
! 	Formatting fix.
  
! 2023-01-09  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/69482
! 	* cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
! 	qualified accesses also force objects to memory.
  
! 2023-01-09  Martin Liska  <mliska@suse.cz>
  
! 	PR lto/108330
! 	* lto-cgraph.cc (compute_ltrans_boundary): Do not insert
! 	NULL (deleleted value) to a hash_set.
  
! 2023-01-08  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (*splice_bits):
! 	New insn_and_split pattern.
  
! 2023-01-07  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc
! 	(xtensa_split_imm_two_addends, xtensa_emit_add_imm):
! 	New helper functions.
! 	(xtensa_set_return_address, xtensa_output_mi_thunk):
! 	Change to use the helper function.
! 	(xtensa_emit_adjust_stack_ptr): Ditto.
! 	And also change to try reusing the content of scratch register
! 	A9 if the register is not modified in the function body.
  
! 2023-01-07  LIU Hao  <lh_mouse@126.com>
  
! 	PR middle-end/108300
! 	* config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
! 	before <windows.h>.
! 	* diagnostic-color.cc: Likewise.
! 	* plugin.cc: Likewise.
! 	* prefix.cc: Likewise.
  
! 2023-01-06  Joseph Myers  <joseph@codesourcery.com>
  
! 	* doc/extend.texi (__builtin_tgmath): Do not restate standard rule
! 	for handling real integer types.
  
! 2023-01-06  Tamar Christina  <tamar.christina@arm.com>
  
! 	Revert:
! 	2022-12-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
! 	(mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
! 	aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
! 	@aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
! 	reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
! 	aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
! 	vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
! 	(aarch64_simd_dupv2hf): New.
! 	* config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
! 	Add E_V2HFmode.
! 	* config/aarch64/iterators.md (VHSDF_P): New.
! 	(V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
! 	Vel, q, vp): Add V2HF.
! 	* config/arm/types.md (neon_fp_reduc_add_h): New.
  
! 2023-01-06  Martin Liska  <mliska@suse.cz>
  
! 	PR middle-end/107966
! 	* doc/options.texi: Fix Var documentation in internal manual.
  
! 2023-01-05  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	Revert:
! 	2023-01-03  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	* config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
! 	RTL expansion to allow condition (mask) to be shared/reused,
! 	by avoiding overwriting pseudos and adding REG_EQUAL notes.
  
! 2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* common.opt: Add -static-libgm2.
! 	* config/darwin.h (LINK_SPEC): Handle static-libgm2.
! 	* doc/gm2.texi: Document static-libgm2.
! 	* gcc.cc (driver_handle_option): Allow static-libgm2.
  
! 2023-01-05  Tejas Joshi  <TejasSanjay.Joshi@amd.com>
  
! 	* common/config/i386/i386-common.cc (processor_alias_table):
! 	Use CPU_ZNVER4 for znver4.
! 	* config/i386/i386.md: Add znver4.md.
! 	* config/i386/znver4.md: New.
  
! 2023-01-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/108253
! 	* tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
! 	types.
  
! 2023-01-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/108237
! 	* generic-match-head.cc: Include tree-pass.h.
! 	(canonicalize_math_p, optimize_vectors_before_lowering_p): Define
! 	to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
! 	resp. PROP_gimple_lvec property set.
  
! 2023-01-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/108256
! 	* convert.cc (do_narrow): Punt for MULT_EXPR if original
! 	type doesn't wrap around and -fsanitize=signed-integer-overflow
! 	is on.
! 	* fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
  
! 2023-01-04  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
! 	* common/config/i386/i386-common.cc: Add Emeraldrapids.
  
! 2023-01-04  Hu, Lin1  <lin1.hu@intel.com>
  
! 	* common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
! 	for meteorlake.
  
! 2023-01-03  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
! 	default constructor to initialize it.
! 	* cgraphunit.cc (expand_all_functions): Save gc_candidate functions
! 	for last and iterate to handle recursive calls.  Delete leftover
! 	candidates at the end.
! 	* omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
! 	on local clones.
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
! 	gc_candidate bit when a clone is used.
  
! 2023-01-03  Florian Weimer  <fweimer@redhat.com>
  
  	Revert:
! 	2023-01-02  Florian Weimer  <fweimer@redhat.com>
  
! 	* dwarf2cfi.cc (init_return_column_size): Remove.
! 	(init_one_dwarf_reg_size): Adjust.
! 	(generate_dwarf_reg_sizes): New function.  Extracted
! 	from expand_builtin_init_dwarf_reg_sizes.
! 	(expand_builtin_init_dwarf_reg_sizes): Call
! 	generate_dwarf_reg_sizes.
! 	* target.def (init_dwarf_reg_sizes_extra): Adjust
! 	hook signature.
! 	* config/msp430/msp430.cc
! 	(msp430_init_dwarf_reg_sizes_extra): Adjust.
! 	* config/rs6000/rs6000.cc
! 	(rs6000_init_dwarf_reg_sizes_extra): Likewise.
! 	* doc/tm.texi: Update.
  
! 2023-01-03  Florian Weimer  <fweimer@redhat.com>
  
  	Revert:
! 	2023-01-02  Florian Weimer  <fweimer@redhat.com>
  
! 	* debug.h (dwarf_reg_sizes_constant): Declare.
! 	* dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
  
! 2023-01-03  Siddhesh Poyarekar  <siddhesh@gotplt.org>
  
! 	PR tree-optimization/105043
! 	* doc/extend.texi (Object Size Checking): Split out into two
! 	subsections and mention _FORTIFY_SOURCE.
  
! 2023-01-03  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	* config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
! 	RTL expansion to allow condition (mask) to be shared/reused,
! 	by avoiding overwriting pseudos and adding REG_EQUAL notes.
  
! 2023-01-03  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR target/108229
! 	* config/i386/i386-features.cc
! 	(general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
! 	the gain/cost of converting a MEM operand.
  
! 2023-01-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/108264
! 	* expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
! 	from source which doesn't have scalar integral mode first convert
! 	it to outer_mode.
  
! 2023-01-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/108263
! 	* cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
! 	asm goto to EXIT.
  
! 2023-01-02  Alexander Monakov  <amonakov@ispras.ru>
  
! 	PR target/87832
! 	* config/i386/lujiazui.md (lujiazui_div): New automaton.
! 	(lua_div): New unit.
! 	(lua_idiv_qi): Correct unit in the reservation.
! 	(lua_idiv_qi_load): Ditto.
! 	(lua_idiv_hi): Ditto.
! 	(lua_idiv_hi_load): Ditto.
! 	(lua_idiv_si): Ditto.
! 	(lua_idiv_si_load): Ditto.
! 	(lua_idiv_di): Ditto.
! 	(lua_idiv_di_load): Ditto.
! 	(lua_fdiv_SF): Ditto.
! 	(lua_fdiv_SF_load): Ditto.
! 	(lua_fdiv_DF): Ditto.
! 	(lua_fdiv_DF_load): Ditto.
! 	(lua_fdiv_XF): Ditto.
! 	(lua_fdiv_XF_load): Ditto.
! 	(lua_ssediv_SF): Ditto.
! 	(lua_ssediv_load_SF): Ditto.
! 	(lua_ssediv_V4SF): Ditto.
! 	(lua_ssediv_load_V4SF): Ditto.
! 	(lua_ssediv_V8SF): Ditto.
! 	(lua_ssediv_load_V8SF): Ditto.
! 	(lua_ssediv_SD): Ditto.
! 	(lua_ssediv_load_SD): Ditto.
! 	(lua_ssediv_V2DF): Ditto.
! 	(lua_ssediv_load_V2DF): Ditto.
! 	(lua_ssediv_V4DF): Ditto.
! 	(lua_ssediv_load_V4DF): Ditto.
  
! 2023-01-02  Florian Weimer  <fweimer@redhat.com>
  
! 	* debug.h (dwarf_reg_sizes_constant): Declare.
! 	* dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
  
! 2023-01-02  Florian Weimer  <fweimer@redhat.com>
  
! 	* dwarf2cfi.cc (init_return_column_size): Remove.
! 	(init_one_dwarf_reg_size): Adjust.
! 	(generate_dwarf_reg_sizes): New function.  Extracted
! 	from expand_builtin_init_dwarf_reg_sizes.
! 	(expand_builtin_init_dwarf_reg_sizes): Call
! 	generate_dwarf_reg_sizes.
! 	* target.def (init_dwarf_reg_sizes_extra): Adjust
! 	hook signature.
! 	* config/msp430/msp430.cc
! 	(msp430_init_dwarf_reg_sizes_extra): Adjust.
! 	* config/rs6000/rs6000.cc
! 	(rs6000_init_dwarf_reg_sizes_extra): Likewise.
! 	* doc/tm.texi: Update.
  
! 2023-01-02  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.cc (process_command): Update copyright notice dates.
  	* gcov-dump.cc (print_version): Ditto.
--- 1,9212 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	Revert:
! 	2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114921
! 	* tree-vect-stmts.cc (vectorizable_assignment): Require
! 	same vector component modes for input and output for
! 	CONVERT_EXPR_CODE_P.
  
! 2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2024-04-30  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114734
! 	* internal-fn.cc (expand_call_mem_ref): Use
! 	get_gimple_for_ssa_name to get at the def stmt of the address
! 	argument to honor SSA coalescing constraints.
  
! 2024-05-03  Alex Coplan  <alex.coplan@arm.com>
  
! 	Backported from master:
! 	2024-05-03  Alex Coplan  <alex.coplan@arm.com>
! 
! 	PR rtl-optimization/114924
! 	* cfgrtl.cc (duplicate_insn_chain): When updating MEM_EXPRs,
! 	don't strip (e.g.) ARRAY_REFs from the final MEM_EXPR.
! 
! 2024-05-03  Richard Biener  <rguenther@suse.de>
  
  	Backported from master:
! 	2024-05-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114921
! 	* tree-vect-stmts.cc (vectorizable_assignment): Require
! 	same vector component modes for input and output for
! 	CONVERT_EXPR_CODE_P.
  
! 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
! 	2024-04-30  Jakub Jelinek  <jakub@redhat.com>
! 		    Hongtao Liu  <hongtao.liu@intel.com>
  
! 	PR tree-optimization/114883
! 	* tree-vect-loop.cc (vect_transform_reduction): Allow IFN_COND_MIN and
! 	IFN_COND_MAX in the assert.
  
! 2024-04-29  Pan Li  <pan2.li@intel.com>
  
  	Backported from master:
! 	2024-04-29  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114885
! 	* config/riscv/riscv.cc (riscv_legitimize_subreg_const_poly_move): New
! 	func impl to take care of (const_int_poly:TI 8).
! 	(riscv_legitimize_move): Handle subreg is const_int_poly,
  
! 2024-04-27  Xi Ruoyao  <xry111@xry111.site>
  
! 	Backported from master:
! 	2024-04-27  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/114861
! 	* config/loongarch/loongarch.md (bstrins_<mode>_for_mask): Add
! 	constraints for operands.
! 	(bstrins_<mode>_for_ior_mask): Likewise.
  
! 2024-04-26  Frederik Harwath  <frederik@harwath.name>
  
! 	* config.gcc: Add gfx90c.
! 	* config/gcn/gcn-hsa.h (NO_SRAM_ECC): Likewise.
! 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
! 	(TARGET_GFX90c): New macro.
! 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx90c.
! 	(gcn_omp_device_kind_arch_isa): Likewise.
! 	(output_file_start): Likewise.
! 	* config/gcn/gcn.h: Add gfx90c.
! 	* config/gcn/gcn.opt: Likewise.
! 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90c): New macro.
! 	(get_arch): Handle gfx90c.
! 	(main): Handle EF_AMDGPU_MACH_AMDGCN_GFX90c
! 	* config/gcn/t-omp-device: Add gfx90c.
! 	* doc/install.texi: Likewise.
! 	* doc/invoke.texi: Likewise.
  
! 2024-04-25  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.h (PREFERRED_DEBUGGING_TYPE): Set to BTF_DEBUG.
  
! 2024-04-25  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.cc (bpf_option_override): Improve handling of CO-RE
! 	options to avoid issues with -gtoggle.
  
! 2024-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR fortran/114825
! 	* tree-nested.cc (get_debug_decl): New function.
! 	(get_nonlocal_debug_decl): Use it.
! 	(get_local_debug_decl): Likewise.
  
! 2024-04-25  Jose E. Marchesi  <jose.marchesi@oracle.com>
  
! 	* config/bpf/bpf.opt: Use ASM_PSEUDOC for the default value of
! 	-masm.
! 	* config/bpf/bpf.h (ASM_SPEC): Adapt accordingly.
! 	* doc/invoke.texi (eBPF Options): Update.
  
! 2024-04-25  Richard Ball  <richard.ball@arm.com>
  
! 	PR target/114837
! 	* config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
! 	Add zero/sign extend.
! 	(arm_expand_prologue): Add zero/sign extend.
  
! 2024-04-25  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114792
! 	* tree-ssa-loop-ch.cc (ch_order_loops): New function.
! 	(ch_base::copy_headers): Sort loops to unloop inner-to-outer.
  
! 2024-04-25  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/114416
! 	* config/sparc/sparc.h (SUN_V9_ABI_COMPATIBILITY): New macro.
! 	* config/sparc/sol2.h (SUN_V9_ABI_COMPATIBILITY): Redefine it.
! 	* config/sparc/sparc.cc (fp_type_for_abi): New predicate.
! 	(traverse_record_type): Use it to spot floating-point types.
! 	(compute_fp_layout): Also deal with array types.
  
! 2024-04-25  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/vector-crypto.md: Add early clobber to the
! 	dest operand of vwsll.
  
! 2024-04-25  Haochen Gui  <guihaoc@gcc.gnu.org>
  
! 	* config/rs6000/altivec.md (*bcdinvalid_<mode>): Replace bcdadd
! 	with bcdsub.
! 	(bcdinvalid_<mode>): Likewise.
  
! 2024-04-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/114738
! 	* opts.cc (get_option_url): Revert 2024-04-17 changes.
! 	* gcc-urlifier.cc: Don't include diagnostic-core.h.
! 	(gcc_urlifier::make_doc_url): Revert 2024-04-17 changes.
! 	* configure.ac (documentation-root-url): On release branches
! 	append gcc-MAJOR.MINOR.0/ to the default DOCUMENTATION_ROOT_URL.
! 	* doc/install.texi (--with-documentation-root-url=): Document
! 	the change of the default.
! 	* configure: Regenerate.
  
! 2024-04-24  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-11-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 		    kito-cheng  <kito.cheng@sifive.com>
! 		    kito-cheng  <kito.cheng@gmail.com>
  
! 	PR target/112431
! 	* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): New register filters.
! 	* config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Ditto.
! 	(no,yes): Ditto.
! 	* config/riscv/vector.md: Support highpart register overlap for vwcvt.
  
! 2024-04-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
  
! 	* config.gcc: Add bpf-c.o as a target object for C and C++.
! 	* config/bpf/bpf.cc (bpf_target_macros): Move to bpf-c.cc.
! 	* config/bpf/bpf-c.cc: New file.
! 	(bpf_target_macros): Move from bpf.cc and define BPF CPU
! 	feature	macros.
! 	* config/bpf/t-bpf: Add rules to build bpf-c.o.
  
! 2024-04-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114787
! 	* tree-cfg.cc (remove_edge_and_dominated_blocks): When
! 	removing a loop backedge clear niter info and when removing
! 	the last backedge of a loop mark that loop for removal.
  
! 2024-04-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114832
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Fix dominance check.
  
! 2024-04-24  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/i386-options.cc (ix86_valid_target_attribute_tree):
! 	Check whether AVX512F is explicitly enabled.
  
! 2024-04-24  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Support highpart overlap for vext.vf2
  
! 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114810
! 	* config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Split the =&r,r,ro
! 	alternative into =&r,r,r enabled only for x64 and =&r,r,o.
  
! 2024-04-23  Jan Hubicka  <jh@suse.cz>
  
! 	* doc/invoke.texi (-ftree-loop-distribute-patterns): Remove duplicated
! 	sentence about optimization flags implying this.
  
! 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/darwin.opt (init): Spelling fix: initialiser -> initializer.
  
! 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/epiphany/epiphany.opt (may-round-for-trunc): Spelling fix:
! 	floatig -> floating.
! 	* config/riscv/riscv.opt (mcsr-check): Spelling fix: CRS -> CSR.
! 	* params.opt (-param=ipa-cp-profile-count-base=): Spelling fix:
! 	frequncy -> frequency.
  
! 2024-04-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114799
! 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Properly
! 	update ->any_pattern when swapping operands.
  
! 2024-04-23  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	PR target/114676
! 	* config/s390/s390-c.cc (s390_expand_overloaded_builtin): Use a
! 	MEM_REF with an addend of type ptr_type_node.
  
! 2024-04-23  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config.gcc: Add loongarch-evolution.o.
! 	* config/loongarch/genopts/genstr.sh: Enable generation of
! 	loongarch-evolution.[cc,h].
! 	* config/loongarch/t-loongarch: Likewise.
! 	* config/loongarch/genopts/gen-evolution.awk: New file.
! 	* config/loongarch/genopts/isa-evolution.in: Mark ISA version
! 	of introduction for each ISA evolution feature.
! 	* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
! 	Define builtin macros for enabled ISA evolutions and the ISA
! 	version.
! 	* config/loongarch/loongarch-cpu.cc: Use loongarch-evolution.h.
! 	* config/loongarch/loongarch.h: Likewise.
! 	* config/loongarch/loongarch-cpucfg-map.h: Delete.
! 	* config/loongarch/loongarch-evolution.cc: New file.
! 	* config/loongarch/loongarch-evolution.h: New file.
! 	* config/loongarch/loongarch-opts.h (ISA_HAS_FRECIPE): Define.
! 	(ISA_HAS_DIV32): Likewise.
! 	(ISA_HAS_LAM_BH): Likewise.
! 	(ISA_HAS_LAMCAS): Likewise.
! 	(ISA_HAS_LD_SEQ_SA): Likewise.
  
! 2024-04-23  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config.gcc: Make la64v1.0 the default ISA preset of the lp64d ABI.
! 	* config/loongarch/genopts/loongarch-strings: Define la64v1.0, la64v1.1.
! 	* config/loongarch/genopts/loongarch.opt.in: Likewise.
! 	* config/loongarch/loongarch-c.cc (LARCH_CPP_SET_PROCESSOR): Likewise.
! 	(loongarch_cpu_cpp_builtins): Likewise.
! 	* config/loongarch/loongarch-cpu.cc (get_native_prid): Likewise.
! 	(fill_native_cpu_config): Likewise.
! 	* config/loongarch/loongarch-def.cc (array_tune): Likewise.
! 	* config/loongarch/loongarch-def.h: Likewise.
! 	* config/loongarch/loongarch-driver.cc (driver_set_m_parm): Likewise.
! 	(driver_get_normalized_m_opts): Likewise.
! 	* config/loongarch/loongarch-opts.cc (default_tune_for_arch): Likewise.
! 	(TUNE_FOR_ARCH): Likewise.
! 	(arch_str): Likewise.
! 	(loongarch_target_option_override): Likewise.
! 	* config/loongarch/loongarch-opts.h (TARGET_uARCH_LA464): Likewise.
! 	(TARGET_uARCH_LA664): Likewise.
! 	* config/loongarch/loongarch-str.h (STR_CPU_ABI_DEFAULT): Likewise.
! 	(STR_ARCH_ABI_DEFAULT): Likewise.
! 	(STR_TUNE_GENERIC): Likewise.
! 	(STR_ARCH_LA64V1_0): Likewise.
! 	(STR_ARCH_LA64V1_1): Likewise.
! 	* config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width): Likewise.
! 	(loongarch_asm_code_end): Likewise.
! 	* config/loongarch/loongarch.opt: Likewise.
! 	* doc/invoke.texi: Likewise.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/vector-crypto.md:
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Fix constraint.
! 	* config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Rename vconstraint into group_overlap.
! 	(no,yes): Ditto.
! 	(none,W21,W42,W84,W43,W86,W87): Ditto.
! 	* config/riscv/vector.md: Ditto.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv.md: Rostify the constraints.
  
! 2024-04-22  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* common/config/i386/i386-common.cc (processor_alias_table):
! 	Let Sierra Forest map to CPU_TYPE enum.
  
! 2024-04-22  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_option_override_internal): Check zarch
! 	flag before enabling -mvx.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Add widenning overlap.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Support highpart overlap for indexed load.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Add highest-number overlap support.
  
! 2024-04-22  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Add widening overlap of vf2/vf4.
  
! 2024-04-21  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Support highpart overlap for vx/vf.
  
! 2024-04-20  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Fix incorrect overlap in v0.
  
! 2024-04-20  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112431
! 	* config/riscv/vector.md: Support highest overlap for wv instructions.
  
! 2024-04-20  Pan Li  <pan2.li@intel.com>
  
! 	Revert:
! 	2023-12-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/112432
! 	* config/riscv/riscv.md (none,W21,W42,W84,W43,W86,W87): Add W0.
! 	(none,W21,W42,W84,W43,W86,W87,W0): Ditto.
! 	* config/riscv/vector.md: Ditto.
  
! 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114783
! 	* config/i386/sse.md (*avx2_eq<mode>3): Change last operand's
! 	constraint from "jm" to "xjm".
  
! 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114753
! 	* internal-fn.cc (expand_arith_overflow): Add one missing restore
! 	of flag_trapv before return.
  
! 2024-04-19  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/114769
! 	* tree-vect-patterns.cc:
! 	(vect_recog_absolute_difference): Have only one success condition.
! 	(vect_recog_abd_pattern): Handle further checks if
! 	vect_recog_absolute_difference fails.
  
! 2024-04-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/core-builtins.cc (get_index_for_enum_value): Create
! 	function.
! 	(pack_enum_value): Check for enumerator and error out.
! 	(process_enum_value): Correct string allocation.
  
! 2024-04-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/bpf-protos.h (bpf_add_core_reloc): Renamed function
! 	to bpf_output_move.
! 	* config/bpf/bpf.cc (bpf_legitimate_address_p): Allow
! 	UNSPEC_CORE_RELOC to match an address.
! 	(bpf_insn_cost): Make UNSPEC_CORE_RELOC immediate moves
! 	expensive to prioritize loads and stores.
! 	(TARGET_INSN_COST): Add hook.
! 	(bpf_output_move): Wrapper to call bpf_output_core_reloc.
! 	(bpf_print_operand): Add support to print immediate operands
! 	specified with the UNSPEC_CORE_RELOC.
! 	(bpf_print_operand_address): Likewise, but to support
! 	UNSPEC_CORE_RELOC in addresses.
! 	(bpf_init_builtins): Flag BPF_BUILTIN_CORE_RELOC as NOTHROW.
! 	* config/bpf/bpf.md: Wrap patterns for MOV, LD and ST
! 	instruction with bpf_output_move call.
! 	(mov_reloc_core<MM:mode>): Remove now spurious define_insn.
! 	* config/bpf/constraints.md: Added "c" and "C" constraints to
! 	match immediates represented with UNSPEC_CORE_RELOC.
! 	* config/bpf/core-builtins.cc (bpf_add_core_reloc): Remove
! 	(bpf_output_core_reloc): Add function to create the CO-RE
! 	relocations based on new matching rules.
! 	* config/bpf/core-builtins.h (bpf_output_core_reloc): Add
! 	prototype.
! 	* config/bpf/predicates.md (core_imm_operand) Add predicate.
! 	(mov_src_operand): Add match for core_imm_operand.
  
! 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/114768
! 	* rtlanal.cc (set_noop_p): Don't return true for MEM <- MEM
! 	sets if src has side-effects or for stores into ZERO_EXTRACT
! 	if ZERO_EXTRACT operand has side-effects.
  
! 2024-04-19  Alexandre Oliva  <oliva@adacore.com>
  
! 	* config/t-vxworks (vxw-glimits.h): Don't mangle c23-required
! 	__STDC_VERSION_LIMITS_H__ define.
  
! 2024-04-18  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* config.gcc: Add nios2*-*-* to the list of obsoleted targets.
  
! 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
  
! 	* doc/sourcebuild.texi (strndup): Add effective target.
  
! 2024-04-18  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/114741
! 	* config/aarch64/aarch64.md (<optab><mode>3): Remove ^ from alt 2.
! 	(copysign<GPF:mode>3): Use SIMD version of IOR directly.
  
! 2024-04-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114753
! 	* internal-fn.cc (expand_mul_overflow): Save flag_trapv and
! 	temporarily clear it for the duration of the function, then
! 	restore previous value.
! 	(expand_vector_ubsan_overflow): Likewise.
! 	(expand_arith_overflow): Likewise.
  
! 2024-04-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/114738
! 	* opts.cc (get_option_url): On release branches append
! 	gcc-MAJOR.MINOR.0/ after DOCUMENTATION_ROOT_URL.
! 	* gcc-urlifier.cc (gcc_urlifier::make_doc_url): Likewise.
  
! 2024-04-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114749
! 	* tree-vect-loop.cc (vect_analyze_loop_2): Reset
! 	LOOP_VINFO_USING_PARTIAL_VECTORS_P when re-trying without SLP.
  
! 2024-04-17  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/114752
! 	* config/avr/avr.cc (avr_print_operand) [CONST_DOUBLE_P]: Handle DFmode.
  
! 2024-04-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/114743
! 	* asan.cc (maybe_instrument_call): Don't instrument calls to
! 	.ABNORMAL_DISPATCHER.
  
! 2024-04-16  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR c/92880
! 	* doc/extend.texi (Using Vector Instructions): Add that
! 	the base_types could be a typedef of them.
  
! 2024-04-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114736
! 	* tree-vect-slp.cc (vect_optimize_slp_pass::is_cfg_latch_edge):
! 	Do not consider VEC_PERM_EXPRs as PHI use.
  
! 2024-04-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114733
! 	* tree-vect-loop.cc (vectorizable_nonlinear_induction): Reject
! 	neg induction vectorization of single element vectors.
  
! 2024-04-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree.cc (array_type_nelts): Ensure 2 spaces after . in comment
! 	instead of just one.
! 	(build_variant_type_copy): Likewise.
! 	(tree_check_failed): Likewise.
! 	(build_atomic_base): Likewise.
! 	* ipa-free-lang-data.cc (fld_incomplete_type_of): Use an indefinite
! 	article rather than a.
  
! 2024-04-16  Fei Gao  <gaofei@eswincomputing.com>
  
! 	* config/riscv/riscv.cc (riscv_expand_conditional_move):
! 	replace or with add when expanding zicond if possible.
  
! 2024-04-16  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR middle-end/112938
! 	* ipa-strub.cc (pass_ipa_strub::execute): Drop volatility from
! 	indirected parm.
! 	(maybe_make_indirect): Restore volatility in dereferences.
  
! 2024-04-16  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.opt.urls: Regenerate.
! 	* config/mn10300/mn10300.opt.urls: Likewise.
! 	* config/msp430/msp430.opt.urls: Likewise.
! 	* config/nds32/nds32-elf.opt.urls: Likewise.
! 	* config/nds32/nds32-linux.opt.urls: Likewise.
! 	* config/nds32/nds32.opt.urls: Likewise.
! 	* config/pru/pru.opt.urls: Likewise.
! 	* config/riscv/riscv.opt.urls: Likewise.
! 	* config/rx/rx.opt.urls: Likewise.
! 	* config/sh/sh.opt.urls: Likewise.
! 	* config/sparc/sparc.opt.urls: Likewise.
! 	* doc/invoke.texi: Add indexes for some compilation options.
  
! 2024-04-15  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-mcus.def: Add: avr16du14, avr16du20, avr16du28,
! 	avr16du32, avr32du14, avr32du20, avr32du28,  avr32du32.
! 	* doc/avr-mmcu.texi: Rebuild.
  
! 2024-04-15  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/114668
! 	* config/riscv/autovec.md: Add VLS.
  
! 2024-04-15  Richard Biener  <rguenther@suse.de>
  
! 	PR gcov-profile/114715
! 	* gimplify.cc (gimplify_switch_expr): Set the location of the
! 	GIMPLE switch.
  
! 2024-04-15  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114696
! 	* config/i386/i386.md (isa): Add apx_ndd_64.
! 	(enabled): Likewise.
! 	(*add<dwi>3_doubleword): Change rjO to r,ro,jO with 8-bit
! 	signed integer constant and enable jO only for apx_ndd_64.
! 	(*add<dwi>3_doubleword_cc_overflow_1): Likewise.
! 	(*and<dwi>3_doubleword): Likewise.
! 	(*<code><dwi>3_doubleword): Likewise.
  
! 2024-04-15  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/114403
! 	* tree-vect-loop.cc (vect_transform_loop): Adjust upper bounds for when
! 	peeling for gaps and early break.
  
! 2024-04-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/114634
! 	* attribs.cc (diag_attr_exclusions): Set attrs[1] to NULL_TREE for
! 	decls with NULL TREE_TYPE.
  
! 2024-04-12  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def: Add RCPC to
! 	RCPC3 dependencies.
! 	* config/aarch64/aarch64.h (AARCH64_ISA_RCPC8_4): Add test for
! 	RCPC3 bit
  
! 2024-04-12  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-arches.def: Add CSSC to V8_9A
! 	dependencies.
  
! 2024-04-12  Will Schmidt  <will_schmidt@linux.ibm.com>
! 	    Peter Bergner  <bergner@linux.ibm.com>
  
! 	PR target/101865
! 	* config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use
! 	TARGET_POWER8.
! 	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use
! 	OPTION_MASK_POWER8.
! 	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8.
! 	(ISA_2_7_MASKS_SERVER): Likewise.
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Update
! 	comment.  Use OPTION_MASK_POWER8 and TARGET_POWER8.
! 	* config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8.
! 	* config/rs6000/rs6000.md (define_attr "isa"): Add p8.
! 	(define_attr "enabled"): Handle it.
! 	(define_insn "prefetch"): Use TARGET_POWER8.
! 	* config/rs6000/rs6000.opt (mpower8-internal): New.
  
! 2024-04-12  Jason Merrill  <jason@redhat.com>
! 	    Patrick Palka  <ppalka@redhat.com>
  
! 	PR c++/113141
! 	* doc/invoke.texi: Document -Wcast-user-defined.
  
! 2024-04-12  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
  
! 	* config/riscv/riscv.opt.urls: Regenerated.
  
! 2024-04-12  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/114666
! 	* match.pd (`!a?b:c`): Reject signed types for the condition.
! 	(`a?~t:t`): Likewise.
  
! 2024-04-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Require
! 	all tiles to have the same suffix.
  
! 2024-04-12  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv.cc (riscv_vector_float_type_p): Take int
! 	as the return value instead of unsigned.
! 	(riscv_vector_element_bitsize): Ditto.
! 	(riscv_vector_required_min_vlen): Ditto.
! 	(riscv_validate_vector_type): Take int type for local variable(s).
  
! 2024-04-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree-cfg.cc (gimple_verify_flow_info): Make the misplaced
! 	returns_twice diagnostics translatable.
  
! 2024-04-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/114687
! 	* gimple-iterator.cc (gsi_safe_insert_before): Only use
! 	edge_before_returns_twice_call if bb_has_abnormal_pred.
! 	(gsi_safe_insert_seq_before): Likewise.
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_call): Only
! 	push to m_returns_twice_calls if bb_has_abnormal_pred.
  
! 2024-04-12  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114639
! 	* config/riscv/riscv.cc (riscv_function_value_regno_p): Add
! 	TARGET_VECTOR predicate for V_RETURN regno.
  
! 2024-04-11  David Faust  <david.faust@oracle.com>
  
! 	* btfout.cc (btf_asm_type_ref): Convert IDs to BTF internally and
! 	fix potentially looking up wrong type for asm debug comment info.
! 	Split into...
! 	(btf_asm_datasec_type_ref): ... This. New.
! 	(btf_asm_datasec_entry): Call it here, instead of btf_asm_type_ref.
! 	(btf_asm_type, btf_asm_array, btf_asm_varent, btf_asm_sou_member)
! 	(btf_asm_func_arg, btf_asm_func_type): Adapt btf_asm_type_ref call.
  
! 2024-04-11  David Faust  <david.faust@oracle.com>
  
! 	* btfout.cc (btf_asm_sou_member): Always emit non-representable
! 	bitfield members as having 'void' type.  Refactor slightly.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def:
! 	Remove "memtag", "memtag2", "ssbs", "ssbs2", "ls64", "ls64_v"
! 	and "ls64_accdata" FMV features.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def:
! 	Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt",
! 	"fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16",
! 	"sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and
! 	"wfxt" entries.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def:
! 	Fix "rmd"->"rdm", and add FMV to "rdma".
! 	* config/aarch64/aarch64.cc (FEAT_RDMA): Define as FEAT_RDM.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc (compare_feature_masks):
! 	Use ARRAY_SIZE and >=0 for iteration bounds.
! 	(aarch64_mangle_decl_assembler_name): Use ARRAY_SIZE.
  
! 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def: Reorder FMV entries.
  
! 2024-04-11  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	* doc/standards.texi (Language Standards Supported by GCC):
! 	Add Modula-2 language section.
  
! 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/110027
! 	* asan.cc (asan_emit_stack_protection): Assert offsets[0] is
! 	zero if there is no stack protect guard, otherwise
! 	-ASAN_RED_ZONE_SIZE.  If alignb > ASAN_RED_ZONE_SIZE and there is
! 	stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at
! 	the top of the stack into account when computing base_align_bias.
! 	Recompute use_after_return_class from asan_frame_size + base_align_bias
! 	and set to -1 if that would overflow to 11.
  
! 2024-04-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109596
! 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Propagate
! 	debug stmts to nonexit->dest rather than exit->dest.
  
! 2024-04-11  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114681
! 	* tree-inline.cc (copy_bb): Key on the remapped stmt
! 	to identify gconds to have condition coverage data remapped.
  
! 2024-04-11  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114639
! 	* config/riscv/riscv.cc (riscv_function_value_regno_p): New func
! 	impl for hook TARGET_FUNCTION_VALUE_REGNO_P.
! 	(riscv_get_raw_result_mode): New func imple for hook
! 	TARGET_GET_RAW_RESULT_MODE.
! 	(TARGET_FUNCTION_VALUE_REGNO_P): Impl the hook.
! 	(TARGET_GET_RAW_RESULT_MODE): Ditto.
! 	* config/riscv/riscv.h (V_RETURN): New macro for vector return.
! 	(GP_RETURN_FIRST): New macro for the first GPR in return.
! 	(GP_RETURN_LAST): New macro for the last GPR in return.
! 	(FP_RETURN_FIRST): Diito but for FPR.
! 	(FP_RETURN_LAST): Ditto.
! 	(FUNCTION_VALUE_REGNO_P): Remove as deprecated and replace by
! 	TARGET_FUNCTION_VALUE_REGNO_P.
  
! 2024-04-11  Indu Bhagat  <indu.bhagat@oracle.com>
  
! 	* btfout.cc (btf_asm_type): Do not skip emitting members of
! 	unknown type.
  
! 2024-04-11  Indu Bhagat  <indu.bhagat@oracle.com>
  
! 	PR debug/112878
! 	* dwarf2ctf.cc (gen_ctf_sou_type): Check for conditions before
! 	call to ctf_add_slice.  Use CTF_K_UNKNOWN type if fail.
  
! 2024-04-10  Marek Polacek  <polacek@redhat.com>
  
! 	PR target/114606
! 	* config/i386/i386-options.cc (ix86_option_override_internal): Use
! 	opts_set rather than checking == CF_NONE.
  
! 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
  
! 	* doc/analyzer.texi: Various tweaks.
  
! 2024-04-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114672
! 	* tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only
! 	allow mode-precision results.
  
! 2024-04-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO.
! 	(aarch64_bitint_type_info): New function.
! 	(aarch64_return_in_memory_1): Return large _BitInt's in memory.
! 	(aarch64_function_arg_alignment): Adapt to correctly return the ABI
! 	mandated alignment of _BitInt(N) where N > 128 as the alignment of
! 	TImode.
! 	(aarch64_composite_type_p): Return true for _BitInt(N), where N > 128.
  
! 2024-04-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* config/aarch64/aarch64.cc (bitint_or_aggr_of_bitint_p): New function.
! 	(aarch64_layout_arg): Don't emit diagnostics for types involving
! 	_BitInt(N).
  
! 2024-04-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/114462
! 	* tree-core.h (enum annot_expr_kind): Add
! 	annot_expr_maybe_infinite_kind enumerator.
! 	* gimplify.cc (gimple_boolify): Handle annot_expr_maybe_infinite_kind.
! 	* tree-cfg.cc (replace_loop_annotate_in_block): Likewise.
! 	(replace_loop_annotate): Likewise.  Move loop->finite_p initialization
! 	before the replace_loop_annotate_in_block calls.
! 	* tree-pretty-print.cc (dump_generic_node): Handle
! 	annot_expr_maybe_infinite_kind.
  
! 2024-04-10  Richard Biener  <rguenther@suse.de>
  
! 	Revert:
! 	2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
  
! 	PR rtl-optimization/101523
! 	* combine.cc (try_combine): Don't do a 2-insn combination if
! 	it does not in fact change I2.
  
! 2024-04-10  Peter Bergner  <bergner@linux.ibm.com>
  
! 	PR target/101865
! 	* config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define.
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
! 	OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR.  Delete redundant
! 	OPTION_MASK_DIRECT_MOVE usage.  Delete TARGET_DIRECT_MOVE dead code.
! 	(rs6000_opt_masks): Neuter the "direct-move" option.
! 	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Replace
! 	OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR.  Delete useless
! 	comment.
! 	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
! 	OPTION_MASK_DIRECT_MOVE.
! 	(OTHER_VSX_VECTOR_MASKS): Likewise.
! 	(POWERPC_MASKS): Likewise.
! 	* config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var.
  
! 2024-04-10  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	* config/i386/sse.md (sha1msg1): Use "ja" instead of "Bm" for
! 	memory constraint.
! 	(sha1msg2): Likewise.
! 	(sha1nexte): Likewise.
! 	(sha1rnds4): Likewise.
! 	(sha256msg1): Likewise.
! 	(sha256msg2): Likewise.
! 	(sha256rnds2): Likewise.
! 	(aes<aesklvariant>u8): Use "jm" instead of "m" for memory
! 	constraint.
! 	(*aes<aeswideklvariant>u8): Likewise.
! 	(*encodekey128u32): Use "jr" instead of "r" for register
! 	constraints.
! 	(*encodekey256u32): Likewise.
  
! 2024-04-09  Juergen Christ  <jchrist@linux.ibm.com>
  
! 	* config/s390/s390.cc (expand_perm_as_replicate): Implement.
! 	(vectorize_vec_perm_const_1): Call new function.
! 	* config/s390/vx-builtins.md (vec_splat<mode>): Change to...
! 	(@vec_splat<mode>): ...this.
  
! 2024-04-09  David Faust  <david.faust@oracle.com>
  
! 	PR debug/114608
! 	* btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when
! 	generating BTF for BPF CO-RE target.
  
! 2024-04-09  Richard Ball  <richard.ball@arm.com>
  
! 	* config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64):
! 	Add functions_nulls parameter to pragma_handlers.
! 	* config/aarch64/aarch64-protos.h: Likewise.
! 	* config/aarch64/aarch64-sve-builtins.h
! 	(enum handle_pragma_index): Add enum to count
! 	number of pragmas to be handled.
! 	* config/aarch64/aarch64-sve-builtins.cc
! 	(GTY): Add global variable for initial indexes
! 	and change overload_names to an array.
! 	(function_builder::function_builder):
! 	Add pragma handler information.
! 	(function_builder::add_function):
! 	Add code for overwriting previous
! 	registered_functions entries.
! 	(add_unique_function):
! 	Use an array to register overload_names
! 	for both pragma handler modes.
! 	(add_overloaded_function): Likewise.
! 	(init_builtins):
! 	Add functions_nulls parameter to pragma_handlers.
! 	(handle_arm_sve_h):
! 	Initialize pragma handler information.
! 	(handle_arm_neon_sve_bridge_h): Likewise.
! 	(handle_arm_sme_h): Likewise.
  
! 2024-04-09  Richard Biener  <rguenther@suse.de>
  
! 	PR lto/114655
! 	* lto-wrapper.cc (merge_flto_options): Add force argument.
! 	(merge_and_complain): Do not force here.
! 	(run_gcc): But here to make the link-time -flto option override
! 	any compile-time one.
  
! 2024-04-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
  
! 	* config/rs6000/rtems.h (OS_MISSING_POWERPC64): Define.
  
! 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR gcov-profile/114601
! 	* tree-profile.cc (condition_uid): Guard fn->cond_uids access.
  
! 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114576
! 	* config/i386/i386.md (isa): Remove aes, add vaes_avx512vl.
! 	(enabled): Remove aes isa check, add vaes_avx512vl.
! 	* config/i386/sse.md (aesenc, aesenclast, aesdec, aesdeclast): Use
! 	jm instead of m for second alternative and emit {evex} prefix
! 	for it if !TARGET_AES.  Use noavx,avx,vaes_avx512vl isa attribute.
! 	(vaesdec_<mode>, vaesdeclast_<mode>, vaesenc_<mode>,
! 	vaesenclast_<mode>): Add second alternative with x instead of v
! 	and jm instead of m.
  
! 2024-04-09  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	* doc/gm2.texi (Compiler options): Remove -fdebug-trace-quad.
! 	Remove -fdebug-trace-api.
! 	Add -fm2-debug-trace=.
  
! 2024-04-09  Yang Yujie  <yangyujie@loongson.cn>
  
! 	PR target/113233
! 	* config/loongarch/loongarch.cc (loongarch_reg_init):
! 	Reinitialize the loongarch_regno_mode_ok cache.
! 	(loongarch_option_override): Same.
! 	(loongarch_save_restore_target_globals): Restore target globals.
! 	(loongarch_set_current_function): Restore the target contexts
! 	for functions.
! 	(TARGET_SET_CURRENT_FUNCTION): Define.
! 	* config/loongarch/loongarch.h (SWITCHABLE_TARGET): Enable
! 	switchable target context.
! 	* config/loongarch/loongarch-builtins.cc (loongarch_init_builtins):
! 	Initialize all builtin functions at startup.
! 	(loongarch_expand_builtin): Turn assertion of builtin availability
! 	into a test.
  
! 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR middle-end/114627
! 	* tree-profile.cc (instrument_decisions): Generate constant
! 	at the start of loop.
  
! 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR middle-end/114599
! 	* tree-inline.cc (copy_bb): Copy cond_uids into callee.
! 	(prepend_lexical_block): Remove outdated comment.
! 	(add_local_variables): Remove bad cond_uids copy.
  
! 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* expr.cc (convert_mode_scalar): Fix duplicated words in comment;
! 	into into -> it into.
! 	* function.h (function::cond_uids): Fix duplicated words in comment;
! 	same same -> same.
! 	* config/riscv/riscv-vector-costs.cc
! 	(costs::adjust_vect_cost_per_loop): Fix duplicated words in comment;
! 	model model -> model.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (build_base): Fix
! 	duplicated words in comment; for for -> for.
! 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Fix
! 	duplicated words in comment; more more -> more.
! 	* config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Fix
! 	duplicated words in comment; be be -> be.
! 	* tree-profile.cc (masking_vectors): Fix duplicated words in comment;
! 	has has -> has, the the -> the.
! 	* value-range.cc (irange::set_range_from_bitmask): Fix duplicated
! 	words in comment; the the -> the.
! 	* gcov.cc (add_condition_counts): Fix duplicated words in comment;
! 	to to -> to.
! 	* vr-values.cc (get_scev_info): Fix duplicated words in comment;
! 	the the -> to the.
! 	* tree-vrp.cc (fully_replaceable): Fix duplicated words in comment;
! 	by by -> by.
! 	* mode-switching.cc (single_succ_confluence_n): Fix duplicated words
! 	in comment; the the -> the.
! 	* tree-ssa-phiopt.cc (value_replacement): Fix duplicated words in
! 	comment; can can -> we can.
! 	* gimple-range-phi.cc (phi_analyzer::process_phi): Fix duplicated words
! 	in comment; it it -> it is.
! 	* tree-ssa-sccvn.cc (visit_phi): Fix duplicated words in comment;
! 	to to -> to.
! 	* rtl-ssa/accesses.h (use_info::next_debug_insn_use): Fix duplicated
! 	words in comment; if if -> if.
! 	* doc/options.texi (InverseMask): Fix duplicated words; and and -> and.
! 	Change take to takes.
! 	* doc/invoke.texi (fanalyzer-undo-inlining): Fix duplicated words;
! 	be be -> be.
! 	(-minline-memops-threshold): Likewise.
  
! 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114628
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Keep debug stmts
! 	before returns_twice calls as is, don't push them into arg_stmts
! 	vector/move to edges.
  
! 2024-04-09  Sergey Bugaev  <bugaevc@gmail.com>
  
! 	* config.gcc: Recognize aarch64*-*-gnu* targets.
! 	* config/aarch64/aarch64-gnu.h: New file.
  
! 2024-04-09  Sergey Bugaev  <bugaevc@gmail.com>
  
! 	* config/i386/gnu.h: Move GNU/Hurd STARTFILE_SPEC from here...
! 	* config/gnu.h: ...to here.
  
! 2024-04-09  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114604
! 	* gimple-range.cc (enable_ranger): Initialize the global
! 	bitmap obstack.
! 	(disable_ranger): Release it.
  
! 2024-04-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
  
! 	* config.gcc (aarch64-*-rtems*): Add target makefile fragment
! 	t-aarch64-rtems.
! 	* config/aarch64/t-aarch64-rtems: New file.
  
! 2024-04-09  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114587
! 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
! 	__APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32.
  
! 2024-04-09  Kewen Lin  <linkw@linux.ibm.com>
! 	    Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/88309
! 	* config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Fix
! 	wrong align passed to function build_aligned_type.
! 	* tree-ssa-loop-prefetch.cc (is_miss_rate_acceptable): Add an
! 	assertion to ensure align_unit should be positive.
! 	* tree.cc (build_qualified_type): Update function comments.
  
! 2024-04-08  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR rtl-optimization/112560
! 	* combine.cc (try_combine): Replace cc_use_loc with the entire
! 	new RTX only in case cc_use_loc satisfies COMPARISON_P predicate.
! 	Otherwise scan the entire cc_use_loc RTX for CC reg to be updated
! 	with a new mode.
! 	* config/i386/i386.md (@pushf<mode>2): Allow all CC modes for
! 	operand 1.
  
! 2024-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor):
! 	New.
! 	* config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode) Use it.
! 	* doc/invoke.texi (Optimize Options): Document it.
  
! 2024-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* doc/sourcebuild.texi (Effective-Target Keywords): Document
! 	'asm_goto_with_outputs'.  Add comment to 'lra'.
  
! 2024-04-08  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113359
! 	* ipa-icf-gimple.h (func_checker): New members
! 	safe_for_total_scalarization_p, m_total_scalarization_limit_known_p
! 	and m_total_scalarization_limit.
! 	(func_checker::func_checker): Initialize new member variables.
! 	* ipa-icf-gimple.cc: Include tree-sra.h.
! 	(func_checker::func_checker): Initialize new member variables.
! 	(func_checker::safe_for_total_scalarization_p): New function.
! 	(func_checker::compare_operand): Use the new function.
! 	* tree-sra.h (sra_get_max_scalarization_size): Declare.
! 	(sra_total_scalarization_would_copy_same_data_p): Likewise.
! 	* tree-sra.cc (prepare_iteration_over_array_elts): New function.
! 	(class sra_padding_collecting): New.
! 	(sra_padding_collecting::record_padding): Likewise.
! 	(scalarizable_type_p): Rename to totally_scalarizable_type_p.  Add
! 	ability to record padding when requested.
! 	(totally_scalarize_subtree): Split out gathering information necessary
! 	to iterate over array elements to prepare_iteration_over_array_elts.
! 	Fix errornous early exit.
! 	(analyze_all_variable_accesses): Adjust the call to
! 	totally_scalarizable_type_p.  Move determining of total scalariation
! 	size limit...
! 	(sra_get_max_scalarization_size): ...here.
! 	(check_ts_and_push_padding_to_vec): New function.
! 	(sra_total_scalarization_would_copy_same_data_p): Likewise.
  
! 2024-04-08  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113907
! 	* ipa-prop.h (class ipa_vr): Declare new overload of a member function
! 	equal_p.
! 	(ipa_jump_functions_equivalent_p): Declare.
! 	* ipa-prop.cc (ipa_vr::equal_p): New function.
! 	(ipa_agg_pass_through_jf_equivalent_p): Likewise.
! 	(ipa_agg_jump_functions_equivalent_p): Likewise.
! 	(ipa_jump_functions_equivalent_p): Likewise.
! 	* ipa-cp.h (values_equal_for_ipcp_p): Declare.
! 	* ipa-cp.cc (values_equal_for_ipcp_p): Make function public.
! 	* ipa-icf-gimple.cc: Include alloc-pool.h, symbol-summary.h, sreal.h,
! 	ipa-cp.h and ipa-prop.h.
! 	(func_checker::compare_gimple_call): Comapre jump functions.
  
! 2024-04-08  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/114607
! 	* config/aarch64/aarch64-sve-builtins-base.cc
! 	(svusdot_impl::expand): Fix botched attempt to swap the operands
! 	for svsudot.
  
! 2024-04-08  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
  
! 	* config/riscv/riscv.opt: Add -mtls-dialect to configure TLS flavor.
! 	* config.gcc: Add --with-tls configuration option to change the
! 	default TLS flavor.
! 	* config/riscv/riscv.h: Add TARGET_TLSDESC determined from
! 	-mtls-dialect and with_tls defaults.
! 	* config/riscv/riscv-opts.h: Define enum riscv_tls_type for the
! 	two TLS flavors.
! 	* config/riscv/riscv-protos.h: Define SYMBOL_TLSDESC symbol type.
! 	* config/riscv/riscv.md: Add instruction sequence for TLSDESC.
! 	* config/riscv/riscv.cc (riscv_symbol_insns): Add instruction
! 	sequence length data for TLSDESC.
! 	(riscv_legitimize_tls_address): Add lowering of TLSDESC.
! 	* doc/install.texi: Document --with-tls for RISC-V.
! 	* doc/invoke.texi: Document -mtls-dialect for RISC-V.
  
! 2024-04-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114605
! 	* config/s390/s390.cc (s390_const_int_pool_entry_p): Punt
! 	if mem doesn't have MODE_INT mode, or pool constant doesn't
! 	have MODE_INT mode, or if pool constant mode is smaller than
! 	mem mode.  If mem mode is different from pool constant mode,
! 	try to simplify subreg.  If that doesn't work, punt, if it
! 	does, use the simplified constant instead of the constant pool
! 	constant.
! 	* config/s390/s390.md (movdi from const pool peephole): If
! 	either low or high 32-bit part is zero, just emit move insn
! 	instead of move + ior.
  
! 2024-04-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114624
! 	* tree-scalar-evolution.cc (final_value_replacement_loop):
! 	Get at the PHI arg location before releasing the PHI node.
  
! 2024-04-08  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-vector-builtins-shapes.cc (build_one): Pass
! 	required_ext arg when invoke add function.
! 	(build_th_loadstore): Ditto.
! 	(struct vcreate_def): Ditto.
! 	(struct read_vl_def): Ditto.
! 	(struct vlenb_def): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (function_builder::add_function):
! 	Introduce new arg required_ext to fill in the register func.
! 	(function_builder::add_unique_function): Ditto.
! 	(function_builder::add_overloaded_function): Ditto.
! 	(expand_builtin): Leverage required_extensions_specified to
! 	check if the required extension is provided.
! 	* config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): New
! 	func impl to convert the required_ext enum to the extension name.
! 	(required_extensions_specified): New func impl to predicate if
! 	the required extension is well feeded.
  
! 2024-04-08  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.h (LINK_COMMAND_SPEC_A): Update coverage
! 	specs.
  
! 2024-04-08  demin.han  <demin.han@starfivetech.com>
  
! 	* config/riscv/riscv-vector-costs.cc: Use length()
  
! 2024-04-08  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-c.cc (struct pragma_intrinsic_flags): New
! 	struct to hold all intrinisc related flags.
! 	(riscv_pragma_intrinsic_flags_pollute): New func to pollute
! 	the intrinsic flags and backup original flags.
! 	(riscv_pragma_intrinsic_flags_restore): New func to restore
! 	the flags from the backup intrinsic flags.
! 	(riscv_pragma_intrinsic): Pollute the flags and register all
! 	possible builtin types and functions, then restore and reinit.
! 	* config/riscv/riscv-protos.h (reinit_builtins): New func
! 	decl to reinit after flags pollution.
! 	(riscv_option_override): New extern func decl.
! 	* config/riscv/riscv-vector-builtins.cc (register_builtin_types_on_null):
! 	New func to register builtin types if null.
! 	(DEF_RVV_TYPE): Ditto.
! 	(DEF_RVV_TUPLE_TYPE): Ditto.
! 	(reinit_builtins): New func impl to reinit after flags pollution.
! 	(expand_builtin): Return
! 	target rtx after error_at.
! 	* config/riscv/riscv.cc (riscv_vector_int_type_p): New predicate
! 	func to tell one tree type is integer or not.
! 	(riscv_vector_float_type_p): New predicate func to tell one tree
! 	type is float or not.
! 	(riscv_vector_element_bitsize): New func to get the element bitsize
! 	of a vector tree type.
! 	(riscv_vector_required_min_vlen): New func to get the required min vlen
! 	of a vector tree type.
! 	(riscv_validate_vector_type): New func to validate the tree type
! 	is valid on flags.
! 	(riscv_return_value_is_vector_type_p): Leverage the func
! 	riscv_validate_vector_type to do the tree type validation.
! 	(riscv_arguments_is_vector_type_p): Ditto.
! 	(riscv_override_options_internal): Ditto.
  
! 2024-04-08  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/112919
! 	* config/loongarch/loongarch-def.cc (la664_align): Newly defined
! 	function that sets alignment rules under the LA664 microarchitecture.
! 	* config/loongarch/loongarch-opts.cc
! 	(loongarch_target_option_override): If not optimizing for size, set
! 	the default alignment to what the target wants.
! 	* config/loongarch/loongarch-tune.h (struct loongarch_align): Add
! 	new member variables jump and loop.
  
! 2024-04-06  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114590
! 	* config/i386/i386.md (x86_64_shld): Use explicit shift count in
! 	AT&T syntax.
! 	(x86_64_shld_ndd): Likewise.
! 	(x86_shld): Likewise.
! 	(x86_shld_ndd): Likewise.
! 	(x86_64_shrd): Likewise.
! 	(x86_64_shrd_ndd): Likewise.
! 	(x86_shrd): Likewise.
! 	(x86_shrd_ndd): Likewise.
  
! 2024-04-06  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR middle-end/114599
! 	* tree-inline.cc (add_local_variables): Copy cond_uids mappings.
  
! 2024-04-05  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/114588
! 	* diagnostic-color.cc (color_dict): Add "valid" and "invalid" as
! 	color capability names.
! 	* doc/invoke.texi: Document them in description of GCC_COLORS.
! 	* text-art/style.cc: Include "diagnostic-color.h".
! 	(text_art::get_style_from_color_cap_name): New.
! 	* text-art/types.h (get_style_from_color_cap_name): New decl.
  
! 2024-04-05  Alex Coplan  <alex.coplan@arm.com>
  
! 	* config/aarch64/aarch64-ldp-fusion.cc (struct alias_walker):
! 	Fix double space after const qualifier on valid ().
  
! 2024-04-05  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113964
! 	* ipa-param-manipulation.cc (ipa_param_adjustments::modify_call):
! 	Force values obtined through pass-through maps to the expected
! 	split type.
  
! 2024-04-05  Mark Wielaard  <mark@klomp.org>
  
! 	* common.opt.urls: Regenerate.
  
! 2024-04-05  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/114603
! 	* config/aarch64/aarch64-sve.md (@aarch64_pred_cnot<mode>): Replace
! 	with...
! 	(@aarch64_ptrue_cnot<mode>): ...this, requiring operand 1 to be
! 	a ptrue.
! 	(*cnot<mode>): Require operand 1 to be a ptrue.
! 	* config/aarch64/aarch64-sve-builtins-base.cc (svcnot_impl::expand):
! 	Use aarch64_ptrue_cnot<mode> for _x operations that are predicated
! 	with a ptrue.  Represent other _x operations as fully-defined _m
! 	operations.
  
! 2024-04-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114566
! 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Don't clear
! 	base_misaligned.
  
! 2024-04-05  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114599
! 	PR gcov-profile/114115
! 	* symtab.cc (ifunc_ref_map): Do not use auto_bitmap.
! 	(is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit
! 	pair.
! 	(symtab_node::check_ifunc_callee_symtab_nodes): Properly
! 	allocate ifunc_ref_map here.
  
! 2024-04-04  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/111571
! 	* ipa-param-manipulation.cc
! 	(ipa_param_body_adjustments::common_initialization): Avoid creating
! 	duplicate replacement entries.
  
! 2024-04-04  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/114415
! 	* sched-deps.cc (add_insn_mem_dependence): Add memory check for mem argument.
! 	(sched_analyze_1): Treat stack pointer modification as memory read.
! 	(sched_analyze_2, sched_analyze_insn): Add memory guard for processing pending_read_mems.
! 	* sched-int.h (deps_desc): Add comment to pending_read_mems.
  
! 2024-04-04  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/nvptx/mkoffload.cc (main): Call
! 	gcc_init_libintl and diagnostic_color_init.
  
! 2024-04-04  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114587
! 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
! 	__APX_F__ when APX is enabled.
  
! 2024-04-04  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* builtins.cc (expand_builtin_fork_or_exec): Check
! 	condition_coverage_flag.
! 	* collect2.cc (main): Add -fno-condition-coverage to OBSTACK.
! 	* common.opt: Add new options -fcondition-coverage and
! 	-Wcoverage-too-many-conditions.
! 	* doc/gcov.texi: Add --conditions documentation.
! 	* doc/invoke.texi: Add -fcondition-coverage documentation.
! 	* function.cc (free_after_compilation): Free cond_uids.
! 	* function.h (struct function): Add cond_uids.
! 	* gcc.cc: Link gcov on -fcondition-coverage.
! 	* gcov-counter.def (GCOV_COUNTER_CONDS): New.
! 	* gcov-dump.cc (tag_conditions): New.
! 	* gcov-io.h (GCOV_TAG_CONDS): New.
! 	(GCOV_TAG_CONDS_LENGTH): New.
! 	(GCOV_TAG_CONDS_NUM): New.
! 	* gcov.cc (class condition_info): New.
! 	(condition_info::condition_info): New.
! 	(condition_info::popcount): New.
! 	(struct coverage_info): New.
! 	(add_condition_counts): New.
! 	(output_conditions): New.
! 	(print_usage): Add -g, --conditions.
! 	(process_args): Likewise.
! 	(output_intermediate_json_line): Output conditions.
! 	(read_graph_file): Read condition counters.
! 	(read_count_file): Likewise.
! 	(file_summary): Print conditions.
! 	(accumulate_line_info): Accumulate conditions.
! 	(output_line_details): Print conditions.
! 	* gimplify.cc (next_cond_uid): New.
! 	(reset_cond_uid): New.
! 	(shortcut_cond_r): Set condition discriminator.
! 	(tag_shortcut_cond): New.
! 	(gimple_associate_condition_with_expr): New.
! 	(shortcut_cond_expr): Set condition discriminator.
! 	(gimplify_cond_expr): Likewise.
! 	(gimplify_function_tree): Call reset_cond_uid.
! 	* ipa-inline.cc (can_early_inline_edge_p): Check
! 	condition_coverage_flag.
! 	* ipa-split.cc (pass_split_functions::gate): Likewise.
! 	* passes.cc (finish_optimization_passes): Likewise.
! 	* profile.cc (struct condcov): New declaration.
! 	(cov_length): Likewise.
! 	(cov_blocks): Likewise.
! 	(cov_masks): Likewise.
! 	(cov_maps): Likewise.
! 	(cov_free): Likewise.
! 	(instrument_decisions): New.
! 	(read_thunk_profile): Control output to file.
! 	(branch_prob): Call find_conditions, instrument_decisions.
! 	(init_branch_prob): Add total_num_conds.
! 	(end_branch_prob): Likewise.
! 	* tree-core.h (struct tree_exp): Add condition_uid.
! 	* tree-profile.cc (struct conds_ctx): New.
! 	(CONDITIONS_MAX_TERMS): New.
! 	(EDGE_CONDITION): New.
! 	(topological_cmp): New.
! 	(index_of): New.
! 	(single_p): New.
! 	(single_edge): New.
! 	(contract_edge_up): New.
! 	(struct outcomes): New.
! 	(conditional_succs): New.
! 	(condition_index): New.
! 	(condition_uid): New.
! 	(masking_vectors): New.
! 	(emit_assign): New.
! 	(emit_bitwise_op): New.
! 	(make_top_index_visit): New.
! 	(make_top_index): New.
! 	(paths_between): New.
! 	(struct condcov): New.
! 	(cov_length): New.
! 	(cov_blocks): New.
! 	(cov_masks): New.
! 	(cov_maps): New.
! 	(cov_free): New.
! 	(find_conditions): New.
! 	(struct counters): New.
! 	(find_counters): New.
! 	(resolve_counter): New.
! 	(resolve_counters): New.
! 	(instrument_decisions): New.
! 	(tree_profiling): Check condition_coverage_flag.
! 	(pass_ipa_tree_profile::gate): Likewise.
! 	* tree.h (SET_EXPR_UID): New.
! 	(EXPR_COND_UID): New.
  
! 2024-04-04  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/114577
! 	* config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl):
! 	Declare.
! 	* config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl):
! 	New function.
! 	* config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise.
! 	(svset_neonq_impl::expand): Optimise expansions whose first argument
! 	is undefined.
  
! 2024-04-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114485
! 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
! 	vect_step_op_neg isn't OK for partial vectors but only
! 	for unknown niter.
  
! 2024-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/114537
! 	* fold-const.cc (native_encode_initializer): Look through
! 	NON_LVALUE_EXPR if val is INTEGER_CST.
  
! 2024-04-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114555
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
! 	m_bitfld_load and save_cast_conditional add any needed PHIs
! 	and adjust t4 accordingly.
  
! 2024-04-04  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114551
! 	* tree-ssa-loop-split.cc (split_loop): If the guard is
! 	only conditionally evaluated rewrite computations with
! 	possibly undefined overflow to unsigned arithmetic.
  
! 2024-04-04  Eugene Rozenfeld  <erozen@microsoft.com>
  
! 	PR gcov-profile/113765
! 	* auto-profile.cc (afdo_annotate_cfg): Don't set full_profile to true
  
! 2024-04-03  Mark Wielaard  <mark@klomp.org>
  
! 	* config/i386/i386.opt.urls: Regenerate.
  
! 2024-04-03  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR tree-optimization/114115
! 	* cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes.
! 	(cgraph_node): Add called_by_ifunc_resolver.
! 	* cgraphunit.cc (symbol_table::compile): Call
! 	symtab_node::check_ifunc_callee_symtab_nodes.
! 	* symtab.cc (check_ifunc_resolver): New.
! 	(ifunc_ref_map): Likewise.
! 	(is_caller_ifunc_resolver): Likewise.
! 	(symtab_node::check_ifunc_callee_symtab_nodes): Likewise.
! 	* tree-profile.cc (gimple_gen_ic_func_profiler): Disable indirect
! 	call profiling for IFUNC resolvers and their callees.
  
! 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* lto-wrapper.cc (compile_offload_image): Prefix 'offload_args'
! 	suffix by the target name.
  
! 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* doc/install.texi (amdgcn-*-amdhsa): Update Newlib recommendation
! 	and update wording for LLVM 18 release.
  
! 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR other/111966
! 	* config/gcn/mkoffload.cc (get_arch): New; moved -march= flag
! 	handling from ...
! 	(main): ... here; call it to handle --with-arch config option
! 	and -march= commandline.
  
! 2024-04-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114552
! 	* expr.cc (emit_push_insn): Only use store_constructor for
! 	immediate_const_ctor_p if int_expr_size matches size.
  
! 2024-04-03  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114557
! 	PR tree-optimization/114480
! 	* tree-phinodes.cc (release_phi_node): Return PHIs from
! 	allocation buckets not covered by free_phinodes to GC.
! 	(remove_phi_node): Release the PHI LHS before freeing the
! 	PHI node.
! 	* tree-vect-loop.cc (vectorizable_live_operation): Get PHI lhs
! 	before releasing it.
  
! 2024-04-03  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/lasx.md: Remove unused code.
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_split_lsx_copy_d): Remove.
! 	(loongarch_split_lsx_insert_d): Ditto.
! 	(loongarch_split_lsx_fill_d): Ditto.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_split_lsx_copy_d): Ditto.
! 	(loongarch_split_lsx_insert_d): Ditto.
! 	(loongarch_split_lsx_fill_d): Ditto.
! 	* config/loongarch/lsx.md (lsx_vpickve2gr_du): Remove splitter.
! 	(lsx_vpickve2gr_<lsxfmt_f>): Ditto.
! 	(abs<mode>2): Remove expander.
! 	(vabs<mode>2): Rename 2 abs<mode>2.
  
! 2024-04-02  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	* config/aarch64/aarch64-option-extensions.def: Fix comment.
  
! 2024-04-02  Tom Tromey  <tromey@adacore.com>
  
! 	* dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't
! 	print newline when not recursing.
  
! 2024-04-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.cc (darwin_override_options): Update the
! 	clang major version value in the dsymutil check.
  
! 2024-04-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.cc (darwin_override_options): Reduce the debug
! 	level to 2 if dsymutil cannot handle .macinfo sections.
  
! 2024-04-02  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/t-loongarch: Add loongarch-def-arrays.h
! 	to OPTION_H_EXTRA.
  
! 2024-04-02  mengqinggang  <mengqinggang@loongson.cn>
! 	    Lulu Cheng  <chenglulu@loongson.cn>
! 	    Xi Ruoyao  <xry111@xry111.site>
  
! 	* config.gcc: Add --with-tls option to change TLS flavor.
! 	* config/loongarch/genopts/loongarch.opt.in: Add -mtls-dialect to
! 	configure TLS flavor.
! 	* config/loongarch/loongarch-def.h (struct loongarch_target): Add
! 	tls_dialect.
! 	* config/loongarch/loongarch-driver.cc (la_driver_init): Add tls
! 	flavor.
! 	* config/loongarch/loongarch-opts.cc (loongarch_init_target): Add
! 	tls_dialect.
! 	(loongarch_config_target): Ditto.
! 	(loongarch_update_gcc_opt_status): Ditto.
! 	* config/loongarch/loongarch-opts.h (loongarch_init_target): Ditto.
! 	(TARGET_TLS_DESC): New define.
! 	* config/loongarch/loongarch.cc (loongarch_symbol_insns): Add TLS
! 	DESC instructions sequence length.
! 	(loongarch_legitimize_tls_address): New TLS DESC instruction sequence.
! 	(loongarch_option_override_internal): Add la_opt_tls_dialect.
! 	(loongarch_option_restore): Add la_target.tls_dialect.
! 	* config/loongarch/loongarch.md (@got_load_tls_desc<mode>): Normal
! 	code model for TLS DESC.
! 	(got_load_tls_desc_off64): Extreme cmode model for TLS DESC.
! 	* config/loongarch/loongarch.opt: Regenerate.
! 	* config/loongarch/loongarch.opt.urls: Ditto.
! 	* doc/invoke.texi: Add a description of the compilation option
! 	'-mtls-dialect={trad,desc}'.
  
! 2024-04-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.opt.urls: Regenerate.
  
! 2024-04-01  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]recip as
! 	aliases to -mrecip={all,none}, respectively.
! 	* config/loongarch/loongarch.opt: Regenerate.
! 	* config/loongarch/loongarch-def.h (ABI_FPU_64): Rename to...
! 	(ABI_FPU64_P): ...this.
! 	(ABI_FPU_32): Rename to...
! 	(ABI_FPU32_P): ...this.
! 	(ABI_FPU_NONE): Rename to...
! 	(ABI_NOFPU_P): ...this.
! 	(ABI_LP64_P): Define.
! 	* config/loongarch/loongarch.cc (loongarch_init_print_operand_punct):
! 	Merged into loongarch_global_init.
! 	(loongarch_cpu_option_override): Renamed to
! 	loongarch_target_option_override.
! 	(loongarch_option_override_internal): Move the work after
! 	loongarch_config_target into loongarch_target_option_override.
! 	(loongarch_global_init): Define.
! 	(INIT_TARGET_FLAG): Move to loongarch-opts.cc.
! 	(loongarch_option_override): Call loongarch_global_init
! 	separately.
! 	* config/loongarch/loongarch-opts.cc (loongarch_parse_mrecip_scheme):
! 	Split the parsing of -mrecip=<string> from
! 	loongarch_option_override_internal.
! 	(loongarch_generate_mrecip_scheme): Define. Split from
! 	loongarch_option_override_internal.
! 	(loongarch_target_option_override): Define. Renamed from
! 	loongarch_cpu_option_override.
! 	(loongarch_init_misc_options): Define. Split from
! 	loongarch_option_override_internal.
! 	(INIT_TARGET_FLAG): Move from loongarch.cc.
! 	* config/loongarch/loongarch-opts.h (loongarch_target_option_override):
! 	New prototype.
! 	(loongarch_parse_mrecip_scheme): New prototype.
! 	(loongarch_init_misc_options): New prototype.
! 	(TARGET_ABI_LP64): Simplify with ABI_LP64_P.
! 	* config/loongarch/loongarch.h (TARGET_RECIP_DIV): Simplify.
! 	Do not reference specific CPU architecture (LA664).
! 	(TARGET_RECIP_SQRT): Same.
! 	(TARGET_RECIP_RSQRT): Same.
! 	(TARGET_RECIP_VEC_DIV): Same.
! 	(TARGET_RECIP_VEC_SQRT): Same.
! 	(TARGET_RECIP_VEC_RSQRT): Same.
  
! 2024-04-01  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* doc/invoke.texi: Add descriptions for the compilation
! 	options.
  
! 2024-03-31  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret
! 	and sfb_alu.
  
! 2024-03-31  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-vector-builtins.cc (expand_builtin): Take
! 	the term built-in over builtin.
  
! 2024-03-31  Pan Li  <pan2.li@intel.com>
  
! 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
! 	Remove unused var decl.
  
! 2024-03-30  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/114175
! 	* config/mips/mips.cc (mips_setup_incoming_varargs): Only skip
! 	mips_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
! 	functions if arg.type is NULL.
  
! 2024-03-29  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	* lto-compress.cc (lto_end_uncompression): Use
! 	fatal_error instead of internal_error when ZSTD
! 	is not enabled.
  
! 2024-03-28  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/h8300/extensions.md (zero_extendqihi*): Add output
! 	template for reg->reg case where the regs don't match.
  
! 2024-03-28  Gaius Mulley  <(no_default)>
  
! 	PR modula2/114517
! 	* doc/gm2.texi: Mention gm2 treats a # in the first column
! 	as a preprocessor directive unless -fno-cpp is supplied.
  
! 2024-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	* predict.cc (estimate_bb_frequencies): Fix comment typo,
! 	scalling -> scaling.
  
! 2024-03-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/112303
! 	* profile-count.h (profile_count::operator+): Perform
! 	addition in uint64_t variable and set m_val to MIN of that
! 	val and max_count.
! 	(profile_count::operator+=): Likewise.
! 	(profile_count::operator-=): Formatting fix.
! 	(profile_count::apply_probability): Use safe_scale_64bit
! 	even in the int overload.
  
! 2024-03-28  Jan Hubicka  <jh@suse.cz>
  
! 	PR middle-end/113907
! 	* ipa-icf.cc (sem_function::init): Hash PHI operands
! 	(sem_function::compare_phi_node): Add argument about preserving order
  
! 2024-03-28  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114480
! 	* cfganal.cc (compute_idf): Use simpler bitmap iteration,
! 	touch work_set only when phi_insertion_points changed.
  
! 2024-03-28  Palmer Dabbelt  <palmer@rivosinc.com>
  
! 	* config/riscv/riscv.h (REGISTER_NAMES): Add vxsat.
  
! 2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
  
! 	PR rtl-optimization/101523
! 	* combine.cc (try_combine): Don't do a 2-insn combination if
! 	it does not in fact change I2.
  
! 2024-03-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/invoke.texi (Spec Files): Use @var{S} instead of S,
! 	@var{X} instead of X etc. for other placeholders.
  
! 2024-03-27  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114057
! 	* tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark
! 	BB reduction remain defs as scalar uses.
  
! 2024-03-27  Victor Do Nascimento  <victor.donascimento@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def (rcpc3):
! 	Fix FEATURE_STRING field to "lrcpc3".
  
! 2024-03-27  Victor Do Nascimento  <victor.donascimento@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def: Add LSE128
! 	AARCH64_OPT_EXTENSION, adding it as a dependency for the D128
! 	feature.
! 	* doc/invoke.texi (AArch64 Options): Document +lse128.
  
! 2024-03-26  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64-feature-deps.h: Use constexpr for
! 	out-of-line statics.
  
! 2024-03-26  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	PR target/114431
! 	* btfout.cc (get_name_for_datasec_entry): Add function.
! 	(btf_asm_datasec_entry): Print label when possible.
  
! 2024-03-26  Richard Ball  <richard.ball@arm.com>
  
! 	PR target/114272
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE):
! 	Change SCHEDULER_IDENT from cortexa55 to cortexa53
! 	for Cortex-A510 and Cortex-A520.
  
! 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/111151
! 	* fold-const.cc (extract_muldiv_1) <case MAX_EXPR>: Punt for
! 	MULT_EXPR altogether, or for MAX_EXPR if c is -1.
  
! 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/111736
! 	* tsan.cc (instrument_expr): Punt on non-generic address space
! 	accesses.
  
! 2024-03-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114471
! 	* tree-vect-stmts.cc (vectorizable_operation): Verify operand
! 	types are compatible with the result type.
  
! 2024-03-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114464
! 	* tree-vect-loop.cc (vectorizable_recurr): Verify the latch
! 	vector type is compatible with what we chose for the recurrence.
  
! 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	* cfgloopmanip.cc (update_loop_exit_probability_scale_dom_bbs):
! 	Fix comment typo - multple -> multiple.
! 	* config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
! 	Likewise.
  
! 2024-03-26  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Predefine
! 	__mips_strict_alignment if STRICT_ALIGNMENT.
  
! 2024-03-25  Richard Biener  <rguenther@suse.de>
  
! 	* config.gcc (amdgcn): Add gfx1036 entries.
! 	* config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
! 	(gcn_local_sym_hash): Likewise.
! 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
! 	(TARGET_GFX1036): New macro.
! 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx1036.
! 	(gcn_omp_device_kind_arch_isa): Likewise.
! 	(output_file_start): Likewise.
! 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__.
! 	(TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__.
! 	* config/gcn/gcn.opt: Add gfx1036.
! 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New.
! 	(main): Handle gfx1036.
! 	* config/gcn/t-omp-device: Add gfx1036 isa.
! 	* doc/install.texi (amdgcn): Add gfx1036.
! 	* doc/invoke.texi (-march): Likewise.
  
! 2024-03-25  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Remove error
! 	when V is disabled and init the RVV types and intrinic APIs.
! 	* config/riscv/riscv-vector-builtins.cc (expand_builtin): Report
! 	error if V ext is disabled.
! 	* config/riscv/riscv.cc (riscv_return_value_is_vector_type_p):
! 	Ditto.
! 	(riscv_arguments_is_vector_type_p): Ditto.
! 	(riscv_vector_cc_function_p): Ditto.
! 	* config/riscv/riscv_vector.h: Remove error if V is disable.
  
! 2024-03-23  John David Anglin  <danglin@gcc.gnu.org>
  
! 	* config/pa/pa.cc (pa_output_global_address): Handle
! 	UNSPEC_DLTIND14R addresses.
! 	* config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for
! 	UNSPEC_DLTIND14R address.
  
! 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114433
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
! 	m_bitfld_load check save_first rather than m_first.
  
! 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114425
! 	* gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Handle
! 	_Complex large/huge _BitInt types like the large/huge _BitInt types.
  
! 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/111683
! 	* tree-predcom.cc (pcom_worker::suitable_component_p): If has_write
! 	and comp_step is RS_NONZERO, return false if any reference in the
! 	component doesn't have DR_STEP a multiple of access size.
  
! 2024-03-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md: Add new split pattern described above.
  
! 2024-03-22  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_set_current_function): Adjust diagnostic
! 	for deprecated SIGNAL and INTERRUPT usage without respective header.
  
! 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn.md (*memory_barrier): Split into RDNA and !RDNA.
! 	(atomic_load<mode>): Adjust RDNA cache settings.
! 	(atomic_store<mode>): Likewise.
! 	(atomic_exchange<mode>): Likewise.
  
! 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
! 
! 	* config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode): Prefer V32 on
! 	RDNA devices.
! 
! 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
! 
! 	* config.gcc (amdgcn): Add gfx1103 entries.
! 	* config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
! 	(gcn_local_sym_hash): Likewise.
! 	* config/gcn/gcn-opts.h (enum processor_type): Likewise.
! 	(TARGET_GFX1103): New macro.
! 	* config/gcn/gcn.cc (gcn_option_override): Handle gfx1103.
! 	(gcn_omp_device_kind_arch_isa): Likewise.
! 	(output_file_start): Likewise.
! 	(gcn_hsa_declare_function_name): Use TARGET_RDNA3, not just gfx1100.
! 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1103__.
! 	* config/gcn/gcn.opt: Add gfx1103.
! 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1103): New.
! 	(main): Handle gfx1103.
! 	* config/gcn/t-omp-device: Add gfx1103 isa.
! 	* doc/install.texi (amdgcn): Add gfx1103.
! 	* doc/invoke.texi (-march): Likewise.
! 
! 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
! 
! 	* dojump.cc (do_compare_rtx_and_jump): Clear excess bits in vector
! 	bitmasks.
! 	(do_compare_and_jump): Remove now-redundant similar code.
! 	* internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector
! 	bitmasks.
! 	(add_mask_and_len_args): Likewise.
! 
! 2024-03-22  Pan Li  <pan2.li@intel.com>
  
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add pre-define
+ 	macro __riscv_v_fixed_vlen when zvl.
+ 	* config/riscv/riscv.cc (riscv_handle_rvv_vector_bits_attribute):
+ 	New static func to take care of the RVV types decorated by
+ 	the attributes.
+ 
+ 2024-03-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR c/109619
+ 	* builtins.cc (fold_builtin_1): Use error_operand_p
+ 	instead of checking against ERROR_MARK.
+ 	(fold_builtin_2): Likewise.
+ 	(fold_builtin_3): Likewise.
+ 
+ 2024-03-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/111736
+ 	* ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid
+ 	SANITIZE_NULL instrumentation for non-generic address spaces
+ 	for which targetm.addr_space.zero_address_valid (as) is true.
+ 
+ 2024-03-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/114405
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
+ 	Set rprec to limb_prec rather than 0 if tprec is divisible by
+ 	limb_prec.  In the last bf_cur handling, set rprec to (tprec + bo_bit)
+ 	% limb_prec rather than tprec % limb_prec and use just rprec instead
+ 	of rprec + bo_bit.  For build_bit_field_ref offset, divide
+ 	(tprec + bo_bit) by limb_prec rather than just tprec.
+ 
+ 2024-03-22  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/114194
+ 	* config/riscv/vector-iterators.md: Split VI into VI_FRAC and VI_NOFRAC.
+ 	Only include VI_NOFRAC in V_VLS without TARGET_XTHEADVECTOR.
+ 
+ 2024-03-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_prologue): Add missing stack
+ 	tie for scalable and final stack adjustment if needed.
+ 	Co-authored-by: Raphael Zinsly <rzinsly@ventanamicro.com>
+ 
+ 2024-03-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114352
+ 	* common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
+ 	New struct for func decl and target name.
+ 	(struct riscv_func_target_hasher): New hasher for hash table mapping
+ 	from the fn_decl to fn_target_name.
+ 	(riscv_func_decl_hash): New func to compute the hash for fn_decl.
+ 	(riscv_func_target_hasher::hash): New func to impl hash interface.
+ 	(riscv_func_target_hasher::equal): New func to impl equal interface.
+ 	(riscv_cmdline_subset_list): New static var for cmdline subset list.
+ 	(riscv_func_target_table_lazy_init): New func to lazy init the func
+ 	target hash table.
+ 	(riscv_func_target_get): New func to get target name from hash table.
+ 	(riscv_func_target_put): New func to put target name into hash table.
+ 	(riscv_func_target_remove_and_destory): New func to remove target
+ 	info from the hash table and destory it.
+ 	(riscv_parse_arch_string): Set the static var cmdline_subset_list.
+ 	* config/riscv/riscv-subset.h (riscv_cmdline_subset_list): New static
+ 	var for cmdline subset list.
+ 	(riscv_func_target_get): New func decl.
+ 	(riscv_func_target_put): Ditto.
+ 	(riscv_func_target_remove_and_destory): Ditto.
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
+ 	Take cmdline_subset_list instead of current_subset_list when clone.
+ 	(riscv_process_target_attr): Record the func target info to hash table.
+ 	(riscv_option_valid_attribute_p): Add new arg tree fndel.
+ 	* config/riscv/riscv.cc (riscv_declare_function_name): Consume the
+ 	func target info and print the arch message.
+ 
+ 2024-03-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/114352
  	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
! 	Replace implied, combine and check to func finalize.
! 	(riscv_subset_list::finalize): New func impl to take care of
! 	implied, combine ext and related checks.
! 	* config/riscv/riscv-subset.h: Add func decl for finalize.
! 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
! 	Finalize the ext before return succeed.
! 	* config/riscv/riscv.cc (riscv_set_current_function): Reinit the
! 	machine mode before when set cur function.
  
! 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn.cc (gcn_expand_builtin_1): Comment correction.
  
! 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn-hsa.h (ASM_SPEC): Pass -mattr=+cumode.
  
! 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn-run.cc (main): Add an hsa_memory_free calls for each
! 	device_malloc call.
  
! 2024-03-21  liuhongt  <hongtao.liu@intel.com>
  
! 	PR tree-optimization/114396
! 	* tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Pass utype
! 	and true to wi::from_mpz.
  
! 2024-03-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/111736
! 	* asan.cc (instrument_derefs): Do not instrument accesses
! 	to non-generic address-spaces.
  
! 2024-03-21  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113727
! 	* tree-sra.cc (analyze_access_subtree): Do not allow
! 	replacements in subtrees when grp_partial_lhs.
  
! 2024-03-21  liuhongt  <hongtao.liu@intel.com>
  
! 	PR middle-end/114347
! 	* doc/invoke.texi: Document -fexcess-precision=16.
  
! 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/core-builtins.cc (bpf_core_get_index): Check if
! 	field contains a DECL_NAME.
  
! 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/btfext-out.cc (cpf_core_reloc_add): Correct for new code.
! 	Add assert to validate the string is set.
! 	* config/bpf/core-builtins.cc (cr_final): Make string struct
! 	field as const.
! 	(process_enum_value): Correct for field type change.
! 	(process_type): Set access string to "0".
  
! 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* config/bpf/core-builtins.cc (core_field_info): Add
! 	support for POINTER_PLUS_EXPR in the root of the field expression.
! 	(bpf_core_get_index): Likewise.
! 	(pack_field_expr): Make the BTF type to point to the structure
! 	related node, instead of its pointer type.
! 	(make_core_safe_access_index): Correct to new code.
  
! 2024-03-20  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/114407
! 	* config/loongarch/loongarch-opts.cc (loongarch_config_target):
! 	Fix typo in diagnostic message, enabing -> enabling.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/visium/visium.cc (visium_setup_incoming_varargs): Only skip
! 	TARGET_FUNCTION_ARG_ADVANCE for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/nios2/nios2.cc (nios2_setup_incoming_varargs): Only skip
! 	nios2_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip
! 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/m32r/m32r.cc (m32r_setup_incoming_varargs): Only skip
! 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/ft32/ft32.cc (ft32_setup_incoming_varargs): Only skip
! 	function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): Only
! 	skip function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/csky/csky.cc (csky_setup_incoming_varargs): Only skip
! 	csky_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-20  Yury Khrustalev  <yury.khrustalev@arm.com>
  
! 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114365
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_load): When adding
! 	a PHI node, set iv2 to its result afterwards.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree-ssa-loop-ch.cc (update_profile_after_ch): Fix comment typo:
! 	probabbility -> probability.
! 	(ch_base::copy_headers): Fix comment typo: itrations -> iterations.
  
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR bootstrap/114369
! 	* system.h (vec_step): Define to vec_step_ when compiling
! 	with clang on PowerPC.
  
! 2024-03-20  demin.han  <demin.han@starfivetech.com>
  
! 	PR target/112651
! 	* config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Rename
! 	(enum rvv_max_lmul_enum): Ditto
! 	(TARGET_MAX_LMUL): Ditto
! 	* config/riscv/riscv-v.cc (preferred_simd_mode): Ditto
! 	* config/riscv/riscv-vector-costs.cc (costs::record_potential_unexpected_spills): Ditto
! 	(costs::better_main_loop_than_p): Ditto
! 	* config/riscv/riscv.opt: Replace -param=riscv-autovec-lmul with -mrvv-max-lmul
  
! 2024-03-20  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/113396
! 	* tree-dfa.cc (get_ref_base_and_extent): Use index range
! 	bounds only if they fit within the address-range constraints
! 	of offset_int.
  
! 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
  
! 	* config/loongarch/loongarch.cc
! 	(loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and
! 	UNITS_PER_FPREG macros.
! 	(loongarch_hard_regno_nregs): Ditto.
! 	(loongarch_class_max_nregs): Ditto.
! 	(loongarch_get_separate_components): Ditto.
! 	(loongarch_process_components): Ditto.
! 	* config/loongarch/loongarch.h (UNITS_PER_FPREG): Ditto.
! 	(UNITS_PER_HWFPVALUE): Ditto.
! 	(UNITS_PER_FPVALUE): Ditto.
  
! 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
  
! 	* config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove checking
! 	of loongarch_expand_vec_cmp()'s return value.
! 	(vec_cmpu<ILASX:mode><mode256_i>): Ditto.
! 	* config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Ditto.
! 	(vec_cmpu<ILSX:mode><mode_i>): Ditto.
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_expand_vec_cmp): Change loongarch_expand_vec_cmp()'s return
! 	type from bool to void.
! 	* config/loongarch/loongarch.cc (loongarch_expand_vec_cmp): Ditto.
  
! 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
  
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_cfun_has_cprestore_slot_p): Delete.
! 	(loongarch_adjust_insn_length): Delete.
! 	(current_section_name): Delete.
! 	(loongarch_split_symbol_type): Delete.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_case_values_threshold): Delete.
! 	(loongarch_spill_class): Delete.
! 	(TARGET_OPTAB_SUPPORTED_P): Delete.
! 	(TARGET_CASE_VALUES_THRESHOLD): Delete.
! 	(TARGET_SPILL_CLASS): Delete.
  
! 2024-03-20  Lewis Hyatt  <lhyatt@gmail.com>
  
! 	PR c++/111918
! 	* diagnostic-core.h (enum diagnostic_t): Add DK_ANY special flag.
! 	* diagnostic.cc (diagnostic_option_classifier::classify_diagnostic):
! 	Make use of DK_ANY to indicate a diagnostic was initially enabled.
! 	(diagnostic_context::diagnostic_enabled): Do not change the type of
! 	a diagnostic if the saved classification is type DK_ANY.
  
! 2024-03-19  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/108802
! 	PR ipa/114254
! 	* ipa-prop.cc (ipa_get_stmt_member_ptr_load_param): Fix case looking
! 	at COMPONENT_REFs directly from a PARM_DECL, also recognize loads from
! 	a pointer parameter.
! 	(ipa_analyze_indirect_call_uses): Also recognize loads from a pointer
! 	parameter, also recognize the case when pfn pointer is loaded in its
! 	own BB.
  
! 2024-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/99829
! 	* lra-constraints.cc (lra_constraints): Prevent removing insn
! 	with reverse equivalence to memory if the memory was reloaded.
  
! 2024-03-19  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR middle-end/114348
! 	* diagnostic-format-json.cc
! 	(json_stderr_output_format::machine_readable_stderr_p): New.
! 	(json_file_output_format::machine_readable_stderr_p): New.
! 	* diagnostic-format-sarif.cc
! 	(sarif_stream_output_format::machine_readable_stderr_p): New.
! 	(sarif_file_output_format::machine_readable_stderr_p): New.
! 	* diagnostic.cc (diagnostic_context::action_after_output): Move
! 	"fnotice" to before "finish" call, so that we still have the
! 	diagnostic_context.
! 	(fnotice): Bail out if the user requested one of the
! 	machine-readable diagnostic output formats on stderr.
! 	* diagnostic.h
! 	(diagnostic_output_format::machine_readable_stderr_p): New pure
! 	virtual function.
! 	(diagnostic_text_output_format::machine_readable_stderr_p): New.
! 	(diagnostic_context::get_output_format): New accessor.
  
! 2024-03-19  Edwin Lu  <ewlu@rivosinc.com>
  
! 	PR target/114175
! 	* config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip
! 	riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL
  
! 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/install.texi (Prerequisites): Document use of autogen for
! 	libstdc++.
  
! 2024-03-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114151
! 	PR tree-optimization/114269
! 	PR tree-optimization/114322
! 	PR tree-optimization/114074
! 	* tree-chrec.cc (chrec_fold_multiply): Restrict the use of
! 	unsigned arithmetic when actual overflow on constant operands
! 	is observed.
  
! 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/arc/arc.cc (arc_setup_incoming_varargs): Only skip
! 	arc_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-19  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/114175
! 	* config/loongarch/loongarch.cc
! 	(loongarch_setup_incoming_varargs): Only skip
! 	loongarch_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
! 	functions if arg.type is NULL.
  
! 2024-03-19  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	PR target/114323
! 	* config/arm/arm-mve-builtins.cc
! 	(function_instance::reads_global_state_p): Take CP_READ_MEMORY
! 	into account.
  
! 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/alpha/alpha.cc (alpha_setup_incoming_varargs): Only skip
! 	function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/rs6000/rs6000-call.cc (setup_incoming_varargs): Only skip
! 	rs6000_function_arg_advance_1 for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114375
! 	* tree-vect-slp.cc (vect_build_slp_tree_2): Compute the
! 	load permutation for masked loads but reject it when any
! 	such is necessary.
! 	* tree-vect-stmts.cc (vectorizable_load): Reject masked
! 	VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not
! 	supported.
  
! 2024-03-19  Mary Bennett  <mary.bennett@embecosm.com>
  
! 	* common/config/riscv/riscv-common.cc: Create XCVbi extension
! 	support.
! 	* config/riscv/riscv.opt: Likewise.
! 	* config/riscv/corev.md: Implement cv_branch<mode> pattern
! 	for cv.beqimm and cv.bneimm.
! 	* config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V
! 	branch instruction pattern.
! 	* config/riscv/constraints.md: Implement constraints
! 	cv_bi_s5 - signed 5-bit immediate.
! 	* config/riscv/predicates.md: Implement predicate
! 	const_int5s_operand - signed 5 bit immediate.
! 	* doc/sourcebuild.texi: Add XCVbi documentation.
  
! 2024-03-19  Chen Jiawei  <jiawei@iscas.ac.cn>
  
! 	* config/riscv/riscv-cores.def (RISCV_TUNE): New def.
! 	(RISCV_CORE): Ditto.
! 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New
! 	option.
! 	* config/riscv/riscv.cc: New def.
! 	* config/riscv/riscv.md: New include.
! 	* config/riscv/xiangshan.md: New file.
  
! 2024-03-18  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/110902
! 	PR analyzer/110928
! 	PR analyzer/111305
! 	PR analyzer/111441
! 	* selftest.h (ASSERT_NE_AT): New macro.
  
! 2024-03-18  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/111822
! 	* config/i386/i386-features.cc (smode_convert_cst): New function
! 	to handle SImode, DImode and TImode immediates, generalized from
! 	timode_convert_cst.
! 	(timode_convert_cst): Remove.
! 	(scalar_chain::convert_op): Unify from
! 	general_scalar_chain::convert_op and timode_scalar_chain::convert_op.
! 	(general_scalar_chain::convert_op): Remove.
! 	(timode_scalar_chain::convert_op): Remove.
! 	(timode_scalar_chain::convert_insn): Update the call to
! 	renamed timode_convert_cst.
! 	* config/i386/i386-features.h (class scalar_chain):
! 	Redeclare convert_op as protected class member.
! 	(class general_calar_chain): Remove convert_op.
! 	(class timode_scalar_chain): Ditto.
  
! 2024-03-18  Jan Hubicka  <jh@suse.cz>
  
! 	* config/i386/zn4zn5.md: Add file missed in the previous commit.
  
! 2024-03-18  Jan Hubicka  <jh@suse.cz>
! 	    Karthiban Anbazhagan  <Karthiban.Anbazhagan@amd.com>
  
! 	* common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver5.
! 	* common/config/i386/i386-common.cc (processor_names): Add znver5.
! 	(processor_alias_table): Likewise.
! 	* common/config/i386/i386-cpuinfo.h (processor_types): Add new zen
! 	family.
! 	(processor_subtypes): Add znver5.
! 	* config.gcc (x86_64-*-* |...): Likewise.
! 	* config/i386/driver-i386.cc (host_detect_local_cpu): Let
! 	march=native detect znver5 cpu's.
! 	* config/i386/i386-c.cc (ix86_target_macros_internal): Add
! 	znver5.
! 	* config/i386/i386-options.cc (m_ZNVER5): New definition
! 	(processor_cost_table): Add znver5.
! 	* config/i386/i386.cc (ix86_reassociation_width): Likewise.
! 	* config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER5
! 	(PTA_ZNVER5): New definition.
! 	* config/i386/i386.md (define_attr "cpu"): Add znver5.
! 	(Scheduling descriptions) Add znver5.md.
! 	* config/i386/x86-tune-costs.h (znver5_cost): New definition.
! 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver5.
! 	(ix86_adjust_cost): Likewise.
! 	* config/i386/x86-tune.def (avx512_move_by_pieces): Add m_ZNVER5.
! 	(avx512_store_by_pieces): Add m_ZNVER5.
! 	* doc/extend.texi: Add znver5.
! 	* doc/invoke.texi: Likewise.
! 	* config/i386/znver4.md: Rename to zn4zn5.md; combine znver4 and znver5 Scheduler.
  
! 2024-03-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/constraints.md (CX2, CX3, CX4): New constraints.
! 	* config/avr/avr-protos.h (avr_xor_noclobber_dconst): New proto.
! 	* config/avr/avr.cc (avr_xor_noclobber_dconst): New function.
! 	* config/avr/avr.md (xorhi3, *xorhi3): Add "d,0,CX2,X" alternative.
! 	(xorpsi3, *xorpsi3): Add "d,0,CX3,X" alternative.
! 	(xorsi3, *xorsi3): Add "d,0,CX4,X" alternative.
  
! 2024-03-18  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/114334
! 	* config/i386/i386.md (mode): Add new number V8BF,V16BF,V32BF.
! 	(MODEF248): New mode iterator.
! 	(ssevecmodesuffix): Hanlde BF and HF.
! 	* config/i386/sse.md (andnot<mode>3): Extend to HF/BF.
! 	(<code><mode>3): Ditto.
  
! 2024-03-18  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR rtl-optimization/112415
! 	* config/pa/pa.cc (pa_emit_move_sequence): Revise condition
! 	for symbolic memory operands.
! 	(pa_legitimate_address_p): Revise LO_SUM condition.
! 	* config/pa/pa.h (INT14_OK_STRICT): Revise define.  Move
! 	comment about GNU linker to predicates.md.
! 	* config/pa/predicates.md (floating_point_store_memory_operand):
! 	Revise condition for symbolic memory operands.  Update
! 	comment.
  
! 2024-03-17  John David Anglin  <danglin@gcc.gnu.org>
  
! 	* config/pa/pa.cc (pa_delegitimize_address): Delegitimize UNSPEC_TP.
  
! 2024-03-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114175
! 	* config/i386/i386.cc (ix86_setup_incoming_varargs): Only skip
! 	ix86_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
! 	if arg.type is NULL.
  
! 2024-03-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114329
! 	* gimple-lower-bitint.cc (struct bitint_large_huge): Declare
! 	build_bit_field_ref method.
! 	(bitint_large_huge::build_bit_field_ref): New method.
! 	(bitint_large_huge::lower_mergeable_stmt): Use it.
  
! 2024-03-15  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/riscv/riscv.opt.urls: Regenerated.
! 	* config/rs6000/sysv4.opt.urls: Likewise.
! 	* config/xtensa/xtensa.opt.urls: Likewise.
  
! 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	* lower-subreg.cc (resolve_simple_move): Fix comment typo,
! 	betwee -> between.
! 	* edit-context.cc (class line_event): Fix comment typo,
! 	betweeen -> between.
  
! 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114339
! 	* config/i386/i386-expand.cc (ix86_expand_int_sse_cmp) <case LE>: Fix
! 	a pasto, compare code against LE rather than GE.
  
! 2024-03-15  Joe Ramsay  <Joe.Ramsay@arm.com>
  
! 	* match.pd: Fix truncation pattern for -fno-signed-zeroes
  
! 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114332
! 	* expr.cc (expand_expr_real_1): EXTEND_BITINT also CALL_EXPR results.
  
! 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113466
! 	* gimple-lower-bitint.cc (bitint_large_huge): Add m_returns_twice_calls
! 	member.
! 	(bitint_large_huge::bitint_large_huge): Initialize it.
! 	(bitint_large_huge::~bitint_large_huge): Release it.
! 	(bitint_large_huge::lower_call): Remember ECF_RETURNS_TWICE call stmts
! 	before which at least one statement has been inserted.
! 	(gimple_lower_bitint): Move argument loads before ECF_RETURNS_TWICE
! 	calls to a different block and add corresponding PHIs.
  
! 2024-03-15  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.opt: Support -mstrict-align, and use
! 	TARGET_STRICT_ALIGN as the flag; keep -m(no-)unaligned-access
! 	as alias.
! 	* config/mips/mips.h: Use TARGET_STRICT_ALIGN.
! 	* config/mips/mips.opt.urls: Regenerate.
! 	* doc/invoke.texi: Document -m(no-)strict-algin for MIPSr6.
  
! 2024-03-15  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	PR middle-end/114108
! 	* tree-vect-patterns.cc (vect_recog_abd_pattern): Call
! 	vect_convert_output with the correct vecitype.
  
! 2024-03-15  Chenghui Pan  <panchenghui@loongson.cn>
  
! 	* config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>):
! 	Remove masking of operand 3.
  
! 2024-03-14  Jason Merrill  <jason@redhat.com>
  
! 	* tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_*
! 	comments.
  
! 2024-03-14  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR target/114288
! 	* config/pa/pa.cc (pa_legitimate_address_p): Don't allow
! 	14-bit displacements before reload for modes that may use
! 	a floating-point load or store.
  
! 2024-03-14  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.h (INT8_TYPE): Change to signed char.
  
! 2024-03-14  Max Filippov  <jcmvbkbc@gmail.com>
  
! 	* config/xtensa/xtensa.md (movsi_internal): Move l32i and s32i
! 	patterns ahead of the l32i.n and s32i.n.
  
! 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Fix comment typo.
  
! 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113907
! 	* ipa-icf.cc (sem_item_optimizer::merge_classes): Reset
! 	SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged
! 	functions.
  
! 2024-03-14  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.md (any_ge): Remove.
! 	(sge<u>_<X:mode><GPR:mode>): Remove.
  
! 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114310
! 	* config/aarch64/aarch64.cc (aarch64_expand_compare_and_swap): For
! 	TImode force newval into a register.
  
! 2024-03-14  Chung-Lin Tang  <cltang@baylibre.com>
  
! 	* tree.h (OMP_CLAUSE_MAP_READONLY): New macro.
! 	(OMP_CLAUSE__CACHE__READONLY): New macro.
! 	* tree-core.h (struct GTY(()) tree_base): Adjust comments for new
! 	uses of readonly_flag bit in OMP_CLAUSE_MAP_READONLY and
! 	OMP_CLAUSE__CACHE__READONLY.
! 	* tree-pretty-print.cc (dump_omp_clause): Add support for printing
! 	OMP_CLAUSE_MAP_READONLY and OMP_CLAUSE__CACHE__READONLY.
  
! 2024-03-14  Andreas Krebbel  <krebbel@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_encode_section_info): Adjust the check
! 	for misaligned symbols.
! 	* config/s390/s390.opt: Improve documentation.
  
! 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gimple-iterator.cc (edge_before_returns_twice_call): Copy all
! 	flags and probability from ad_edge to e edge.  If CDI_DOMINATORS
! 	are computed, recompute immediate dominator of other_edge->src
! 	and other_edge->dest.
! 	(gsi_safe_insert_before, gsi_safe_insert_seq_before): Update *iter
! 	for the returns_twice call case to the gsi_for_stmt (stmt) to deal
! 	with update it for bb splitting.
  
! 2024-03-14  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386-features.cc
! 	(general_scalar_chain::convert_op): Handle REG_EH_REGION note.
! 	(convert_scalars_to_vector): Ditto.
! 	* config/i386/i386-features.h (class scalar_chain): New
! 	memeber control_flow_insns.
  
! 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114319
! 	* gimple-ssa-store-merging.cc
! 	(imm_store_chain_info::try_coalesce_bswap): For 32-bit targets
! 	allow matching __builtin_bswap64 if there is bswapsi2 optab.
  
! 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390.cc (s390_secondary_reload): Guard
! 	SYMBOL_FLAG_NOTALIGN2_P.
  
! 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390-builtin-types.def: Update to reflect latest
! 	changes.
! 	* config/s390/s390-builtins.def: Streamline vector builtins with
! 	LLVM.
  
! 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* config/s390/s390-builtins.def (vec_permi): Deprecate.
! 	(vec_ctd): Deprecate.
! 	(vec_ctd_s64): Deprecate.
! 	(vec_ctd_u64): Deprecate.
! 	(vec_ctsl): Deprecate.
! 	(vec_ctul): Deprecate.
! 	(vec_ld2f): Deprecate.
! 	(vec_st2f): Deprecate.
! 	(vec_insert): Deprecate overloads with bool vectors.
  
! 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114313
! 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
! 	TYPE_SIZE of TREE_TYPE (var) rather than TYPE_SIZE of type.
! 	(bitint_large_huge::handle_load): Pass NULL_TREE rather than
! 	rhs_type to limb_access for the bitfield load cases.
! 	(bitint_large_huge::lower_mergeable_stmt): Pass NULL_TREE rather than
! 	lhs_type to limb_access if nlhs is non-NULL.
  
! 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/112709
! 	* asan.cc (maybe_create_ssa_name, maybe_cast_to_ptrmode,
! 	build_check_stmt, maybe_instrument_call, asan_expand_mark_ifn): Use
! 	gsi_safe_insert_before instead of gsi_insert_before.
  
! 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/112709
! 	* gimple-iterator.h (gsi_safe_insert_before,
! 	gsi_safe_insert_seq_before): Declare.
! 	* gimple-iterator.cc: Include gimplify.h.
! 	(edge_before_returns_twice_call, adjust_before_returns_twice_call,
! 	gsi_safe_insert_before, gsi_safe_insert_seq_before): New functions.
! 	* ubsan.cc (instrument_mem_ref, instrument_pointer_overflow,
! 	instrument_nonnull_arg, instrument_nonnull_return): Use
! 	gsi_safe_insert_before instead of gsi_insert_before.
! 	(maybe_instrument_pointer_overflow): Use force_gimple_operand,
! 	gimple_seq_add_seq_without_update and gsi_safe_insert_seq_before
! 	instead of force_gimple_operand_gsi.
! 	(instrument_object_size): Likewise.  Use gsi_safe_insert_before
! 	instead of gsi_insert_before.
  
! 2024-03-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114121
! 	* tree-chrec.cc (chrec_fold_plus_1): Guard recursion with
! 	converted operand properly.
! 	(chrec_fold_multiply): Likewise.  Handle missed recursion.
  
! 2024-03-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/112709
! 	* asan.cc (has_stmt_been_instrumented_p): Don't instrument call
! 	stores on the caller side unless it is a call to a builtin or
! 	internal function or function doesn't return by hidden reference.
! 	(maybe_instrument_call): Likewise.
! 	(instrument_derefs): Instrument stores to RESULT_DECL if
! 	returning by hidden reference.
  
! 2024-03-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114293
! 	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen): If
! 	max is smaller than min, set max to ~(size_t)0.
  
! 2024-03-12  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-c.cc (riscv_ext_version_value): Fix
! 	code style greater than 80 chars.
! 	(riscv_cpu_cpp_builtins): Fix useless empty line, indent
! 	with 3 space(s) and argument unalignment.
  
! 2024-03-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114297
! 	* tree-vect-loop.cc (vectorizable_live_operation): Pass in the
! 	live stmts SLP node to vect_create_epilog_for_reduction.
  
! 2024-03-12  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR driver/114314
! 	* common.opt (fmultiflags): Add RejectNegative.
  
! 2024-03-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
  
! 	* config/aarch64/aarch64.md: Rename aarch_ to aarch64_.
! 	* config/aarch64/aarch64.opt: Likewise.
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_expand_prologue): Likewise.
! 	(aarch64_expand_epilogue): Likewise.
! 	(aarch64_post_cfi_startproc): Likewise.
! 	(aarch64_handle_no_branch_protection): Copy and rename.
! 	(aarch64_handle_standard_branch_protection): Likewise.
! 	(aarch64_handle_pac_ret_protection): Likewise.
! 	(aarch64_handle_pac_ret_leaf): Likewise.
! 	(aarch64_handle_pac_ret_b_key): Likewise.
! 	(aarch64_handle_bti_protection): Likewise.
! 	(aarch64_override_options): Update branch protection validation.
! 	(aarch64_handle_attr_branch_protection): Likewise.
! 	* config/arm/aarch-common-protos.h (aarch_validate_mbranch_protection):
! 	Pass branch protection type description as argument.
! 	(struct aarch_branch_protect_type): Move from aarch-common.h.
! 	* config/arm/aarch-common.cc (aarch_handle_no_branch_protection):
! 	Remove.
! 	(aarch_handle_standard_branch_protection): Remove.
! 	(aarch_handle_pac_ret_protection): Remove.
! 	(aarch_handle_pac_ret_leaf): Remove.
! 	(aarch_handle_pac_ret_b_key): Remove.
! 	(aarch_handle_bti_protection): Remove.
! 	(aarch_validate_mbranch_protection): Pass branch protection type
! 	description as argument.
! 	* config/arm/aarch-common.h (enum aarch_key_type): Remove.
! 	(struct aarch_branch_protect_type): Remove.
! 	* config/arm/arm-c.cc (arm_cpu_builtins): Remove aarch_ra_sign_key.
! 	* config/arm/arm.cc (arm_handle_no_branch_protection): Copy and rename.
! 	(arm_handle_standard_branch_protection): Likewise.
! 	(arm_handle_pac_ret_protection): Likewise.
! 	(arm_handle_pac_ret_leaf): Likewise.
! 	(arm_handle_bti_protection): Likewise.
! 	(arm_configure_build_target): Update branch protection validation.
! 	* config/arm/arm.opt: Remove aarch_ra_sign_key.
  
! 2024-03-11  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114299
! 	* gimplify.cc (internal_get_tmp_var): When gimplification
! 	of VAL failed, return a decl.
  
! 2024-03-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114278
! 	* tree-ssa.cc (maybe_optimize_var): If large/huge _BitInt vars are no
! 	longer addressable, set DECL_NOT_GIMPLE_REG_P on them.
  
! 2024-03-11  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR debug/113519
! 	PR debug/113777
! 	* dwarf2out.cc (gen_enumeration_type_die): In the reverse case,
! 	generate the DIE with the same parent as in the regular case.
  
! 2024-03-11  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/95351
! 	* fold-const.cc (merge_truthop_with_opposite_arm): Use
! 	the type of the operands of the comparison and not the type
! 	of the comparison.
  
! 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
  
! 	PR tree-optimization/110199
! 	* tree-ssa-scopedtables.cc
! 	(avail_exprs_stack::simplify_binary_operation): Generalize handling
! 	of MIN_EXPR/MAX_EXPR to allow additional simplifications.  Canonicalize
! 	comparison operands for other cases.
  
! 2024-03-10  Pan Li  <pan2.li@intel.com>
  
! 	* tree-vect-stmts.cc (vectorizable_store): Enable the assert
! 	during transform process.
! 	(vectorizable_load): Ditto.
  
! 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
  
! 	PR target/102250
! 	* doc/install.texi: Document need for python when building
! 	RISC-V compilers.
  
! 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
  
! 	PR target/111362
! 	* mode-switching.cc (optimize_mode_switching): Only process
! 	NONDEBUG insns.
  
! 2024-03-09  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.md: Fix typos in comment, indentation glitches
! 	and some other nits.
  
! 2024-03-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114284
! 	* fwprop.cc (try_fwprop_subst_pattern): Don't propagate
! 	src containing MEMs unless prop.likely_profitable_p ().
  
! 2024-03-09  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
! 	Support 'Q' for R_LARCH_RELAX for TLS IE.
! 	(loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS
! 	IE.
! 	* config/loongarch/loongarch.md (ld_from_got<mode>): Likewise.
  
! 2024-03-09  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for
! 	usum_widenqihi and add_zero_extend1.
! 	[MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend,
! 	sub+sign_extend.
! 	* config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2):
! 	Compute exact insn lengths.
! 	(*usum_widenqihi3): Allow input operands to commute.
  
! 2024-03-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/i386/i386.opt.urls: Regenerate.
  
! 2024-03-09  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/sync.md (atomic_cas_value_strong<mode>):
! 	In loongarch64, a sign extension operation is added when
! 	operands[2] is a register operand and the mode is SImode.
  
! 2024-03-08  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113757
! 	* tree-inline.cc (redirect_all_calls): Remove code adding SSAs to
! 	id->killed_new_ssa_names.
  
! 2024-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/113790
! 	* lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos
! 	for non-reload pseudo too.
  
! 2024-03-08  David Faust  <david.faust@oracle.com>
! 
! 	* config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do
! 	not attempt inline expansion if size is above threshold.
! 	* config/bpf/bpf.opt (-minline-memops-threshold): New option.
! 	* doc/invoke.texi (eBPF Options) <-minline-memops-threshold>:
! 	Document.
! 
! 2024-03-08  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114269
! 	PR tree-optimization/114074
! 	* tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions
! 	in the third CASE_CONVERT case as well.
! 	(chrec_fold_multiply): Handle sign-conversions from unsigned
! 	by performing the operation in the unsigned type.
! 
! 2024-03-08  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern.
! 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost.
! 
! 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert,
! 	asm_noperands < 0 means it is not asm goto too.
! 
! 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/38534
! 	* config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New
! 	option.
! 	* config/i386/i386-options.cc (ix86_set_func_type): Don't use
! 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless
! 	ix86_noreturn_no_callee_saved_registers is enabled.
! 	* doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document.
! 
! 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR debug/113918
! 	* dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols
! 	on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf.
! 
! 2024-03-08  demin.han  <demin.han@starfivetech.com>
! 
! 	PR target/114264
! 	* config/riscv/riscv-vector-costs.cc: Fix ICE
! 
! 2024-03-08  Haochen Gui  <guihaoc@gcc.gnu.org>
! 
! 	* fwprop.cc (forward_propagate_into): Return false for volatile set
! 	source rtx.
! 
! 2024-03-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>
! 
! 	PR target/113618
! 	* config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove.
! 	(aarch64_expand_cpymem): Emit single load/store only.
! 	(aarch64_set_one_block): Emit single stores only.
! 
! 2024-03-07  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	PR middle-end/114196
! 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge
! 	vectorization guards.
! 
! 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* doc/cppopts.texi: Remove incorrect claim about -dD not
! 	outputting predefined macros.
! 
! 2024-03-07  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
! 
! 	PR target/113950
! 	* config/rs6000/vsx.md (vsx_splat_<mode>): Correct assignment to operand1
! 	and simplify else if with else.
! 
! 2024-03-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* system.h: Include safe-ctype.h after C++ standard headers.
! 
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/110079
! 	* bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust
! 	asm goto.
! 
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/105533
! 	* expmed.cc (choose_mult_variant): Only try the val - 1 variant
! 	if val is not HOST_WIDE_INT_MIN or if mode has exactly
! 	HOST_BITS_PER_WIDE_INT precision.  Avoid triggering UB while computing
! 	val - 1.
! 
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/105533
! 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) <case ARRAY_REF>:
! 	Multiple op->off by BITS_PER_UNIT instead of shifting it left by
! 	LOG2_BITS_PER_UNIT.
! 
! 2024-03-07  Yang Yujie  <yangyujie@loongson.cn>
! 
! 	* config.gcc: Add a case for loongarch*-*-linux-musl*.
! 	* config/loongarch/linux.h: Disable the multilib-compatible
! 	treatment for *musl* targets.
! 	* config/loongarch/musl.h: New file.
! 
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/114009
! 	* genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures
! 	argument even for GENERIC, not just for GIMPLE.
! 	* match.pd (a * !a -> 0): New simplifications.
! 
! 2024-03-07  demin.han  <demin.han@starfivetech.com>
! 
! 	* config/riscv/riscv-protos.h (expand_vec_cmp): Change proto
! 	* config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments
! 	(expand_vec_cmp_float): Adapt arguments
! 
! 2024-03-06  Uros Bizjak  <ubizjak@gmail.com>
! 
! 	PR target/114232
! 	* config/i386/mmx.md (negv2qi2): Enable for optimize_size instead
! 	of optimize_function_for_size_p.  Explictily enable for TARGET_SSE2.
! 	(negv2qi SSE reg splitter): Enable for TARGET_SSE2 only.
! 	(<plusminus:insn>v2qi3): Enable for optimize_size instead
! 	of optimize_function_for_size_p.  Explictily enable for TARGET_SSE2.
! 	(<plusminus:insn>v2qi SSE reg splitter): Enable for TARGET_SSE2 only.
! 	(<any_shift:insn>v2qi3): Enable for optimize_size instead
! 	of optimize_function_for_size_p.
! 
! 2024-03-06  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	PR target/114200
! 	PR target/114202
! 	* config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v.
! 
! 2024-03-06  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move...
! 	(costs::adjust_stmt_cost): ... to here and add vec_load/vec_store
! 	offset handling.
! 	(costs::add_stmt_cost): Also adjust cost for statements without
! 	stmt_info.
! 	* config/riscv/riscv-vector-costs.h: Define zero constant.
! 
! 2024-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
! 
! 	PR target/113915
! 	* config/arm/arm.md (NOCOND): Improve comment.
! 	(arm_rev*) Add predicable.
! 	* config/arm/arm.cc (arm_final_prescan_insn): Add check for
! 	PREDICABLE_YES.
! 
! 2024-03-06  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	PR target/113001
! 	PR target/112871
! 	* config/riscv/riscv.cc (expand_conditional_move): Do not swap
! 	operands when the comparison operand is the same as the false
! 	arm for a NE test.
! 
! 2024-03-06  Uros Bizjak  <ubizjak@gmail.com>
! 
! 	* config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]:
! 	Eliminate common code and use generic code instead.
! 
! 2024-03-06  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust
! 	rtx cost.
! 
! 2024-03-06  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114239
! 	* tree-vect-loop.cc (vect_get_vect_def): Remove.
! 	(vect_create_epilog_for_reduction): The passed in stmt_info
! 	should now be the live stmt that produces the scalar reduction
! 	result.  Revert PR114192 fix.  Base reduction info off
! 	info_for_reduction.  Remove special handling of
! 	early-break/peeled, restore original vector def gathering.
! 	Make sure to pick the correct exit PHIs.
! 	(vectorizable_live_operation): Pass in the proper stmt_info
! 	for early break exits.
! 
! 2024-03-06  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add
! 	out-of-class definitions of static constants.
! 
! 2024-03-06  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114249
! 	* tree-vect-slp.cc (vect_build_slp_instance): Move making
! 	a BB reduction lane number even ...
! 	(vect_slp_check_for_roots): ... here to avoid leaking
! 	pattern defs.
! 
! 2024-03-06  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114246
! 	* tree-ssa-dse.cc (increment_start_addr): Strip useless
! 	type conversions from the adjusted address.
! 
! 2024-03-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/114190
! 	* config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
! 	Call df_remove_problem for df_note before calling df_analyze.
! 
! 2024-03-05  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 	    Indu Bhagat  <indu.bhagat@oracle.com>
! 
! 	PR debug/114186
! 	* dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array ()
! 	in the correct order of the dimensions.
! 	(gen_ctf_subrange_type): Refactor out handling of
! 	DW_TAG_subrange_type DIE to here.
! 
! 2024-03-05  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR sanitizer/97696
! 	* asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int.
! 
! 2024-03-05  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* config/aarch64/aarch64.md (stride_type): Remove luti_consecutive
! 	and luti_strided.
! 	* config/aarch64/aarch64-sme.md
! 	(@aarch64_sme_lut<LUTI_BITS><mode>): Remove stride_type attribute.
! 	(@aarch64_sme_lut<LUTI_BITS><mode>_strided2): Delete.
! 	(@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise.
! 	* config/aarch64/aarch64-early-ra.cc (is_stride_candidate)
! 	(early_ra::maybe_convert_to_strided_access): Remove support for
! 	strided LUTI2 and LUTI4.
! 
! 2024-03-05  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	PR target/113510
! 	* config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use
! 	low_register_operand.
! 
! 2024-03-05  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND
! 	in HI, PSI, SI that swap operation order from "X = CST, X o= Y"
! 	to "X = Y, X o= CST".
! 
! 2024-03-05  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
! 	s9 as an alias of r22.
! 
! 2024-03-05  Roger Sayle  <roger@nextmovesoftware.com>
! 
! 	* config/avr/avr-protos.h (avr_out_insv): New proto.
! 	* config/avr/avr.cc (avr_out_insv): New function.
! 	(avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case.
! 	(avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs.
! 	* config/avr/avr.md (define_attr "adjust_len") Add insv.
! 	(andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3):
! 	Add constraint alternative where the 3rd operand is a power
! 	of 2, and the source register may differ from the destination.
! 	(*insv.any_shift.<mode>_split): Call avr_out_insv to output
! 	instructions.  Set attr "length" to "insv".
! 	* config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints.
! 
! 2024-03-05  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114231
! 	* tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
! 	processing a BB SLP root.
! 
! 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/114211
! 	* lower-subreg.cc (resolve_simple_move): For double-word
! 	rotates by BITS_PER_WORD if there is overlap between source
! 	and destination use a temporary.
! 
! 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/114157
! 	* gimple-lower-bitint.cc: Include stor-layout.h.
! 	(mergeable_op): Return true for BIT_FIELD_REF.
! 	(struct bitint_large_huge): Declare handle_bit_field_ref method.
! 	(bitint_large_huge::handle_bit_field_ref): New method.
! 	(bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF.
! 
! 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/114116
! 	* config/i386/i386.h (enum call_saved_registers_type): Add
! 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator.
! 	* config/i386/i386-options.cc (ix86_set_func_type): Remove
! 	has_no_callee_saved_registers variable, add no_callee_saved_registers
! 	instead, initialize it depending on whether it is
! 	no_callee_saved_registers function or not.  Don't set it if
! 	no_caller_saved_registers attribute is present.  Adjust users.
! 	* config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle
! 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like
! 	TYPE_NO_CALLEE_SAVED_REGISTERS.
! 	(ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
! 
! 2024-03-05  Pan Li  <pan2.li@intel.com>
! 
! 	* config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused
! 	mode_size related code.
! 
! 2024-03-05  Patrick Palka  <ppalka@redhat.com>
! 
! 	* doc/invoke.texi (-Wno-global-module): Document.
! 
! 2024-03-04  David Faust  <david.faust@oracle.com>
! 
! 	* config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype.
! 	* config/bpf/bpf.cc (bpf_expand_setmem): New.
! 	* config/bpf/bpf.md (setmemdi): New define_expand.
! 
! 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/113010
! 	* combine.cc (simplify_comparison): Guard the
! 	WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG
! 	and initialize inner_mode.
! 
! 2024-03-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
! 
! 	* config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U,
! 	VMLALDAVAXQ_U cases.
! 	(VMLALDAVXQ): Remove iterator.
! 	(VMLALDAVXQ_P): Likewise.
! 	(VMLALDAVAXQ): Likewise.
! 	* config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of <MVE_VPRED>
! 	mode iterator attribute with V4BI mode.
! 	* config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U,
! 	VMLALDAVAXQ_U): Remove unused unspecs.
! 
! 2024-03-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
! 
! 	* config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute.
! 	* config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator
! 	attribute.
! 	* config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u,
! 	vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u,
! 	vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u,
! 	vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s,
! 	vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s,
! 	vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u,
! 	vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u,
! 	vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s,
! 	vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s,
! 	vmlsldavaxq_s): Added mve_safe_imp_xlane_pred.
! 
! 2024-03-04  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
! 
! 	* config/arm/arm.md (mve_unpredicated_insn): New attribute.
! 	* config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define.
! 	(MVE_VPT_UNPREDICATED_INSN_P): Likewise.
! 	(MVE_VPT_PREDICABLE_INSN_P): Likewise.
! 	* config/arm/vec-common.md (mve_vshlq_<supf><mode>): Add attribute.
! 	* config/arm/mve.md (arm_vcx1q<a>_p_v16qi): Add attribute.
! 	(arm_vcx1q<a>v16qi): Likewise.
! 	(arm_vcx1qav16qi): Likewise.
! 	(arm_vcx1qv16qi): Likewise.
! 	(arm_vcx2q<a>_p_v16qi): Likewise.
! 	(arm_vcx2q<a>v16qi): Likewise.
! 	(arm_vcx2qav16qi): Likewise.
! 	(arm_vcx2qv16qi): Likewise.
! 	(arm_vcx3q<a>_p_v16qi): Likewise.
! 	(arm_vcx3q<a>v16qi): Likewise.
! 	(arm_vcx3qav16qi): Likewise.
! 	(arm_vcx3qv16qi): Likewise.
! 	(@mve_<mve_insn>q_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_int_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_<supf>v4si): Likewise.
! 	(@mve_<mve_insn>q_n_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_r_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_f<mode>): Likewise.
! 	(@mve_<mve_insn>q_m_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_m_n_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_m_r_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_m_f<mode>): Likewise.
! 	(@mve_<mve_insn>q_int_m_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q_p_<supf>v4si): Likewise.
! 	(@mve_<mve_insn>q_p_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q<mve_rot>_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q<mve_rot>_f<mode>): Likewise.
! 	(@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): Likewise.
! 	(@mve_<mve_insn>q<mve_rot>_m_f<mode>): Likewise.
! 	(mve_v<absneg_str>q_f<mode>): Likewise.
! 	(mve_<mve_addsubmul>q<mode>): Likewise.
! 	(mve_<mve_addsubmul>q_f<mode>): Likewise.
! 	(mve_vadciq_<supf>v4si): Likewise.
! 	(mve_vadciq_m_<supf>v4si): Likewise.
! 	(mve_vadcq_<supf>v4si): Likewise.
! 	(mve_vadcq_m_<supf>v4si): Likewise.
! 	(mve_vandq_<supf><mode>): Likewise.
! 	(mve_vandq_f<mode>): Likewise.
! 	(mve_vandq_m_<supf><mode>): Likewise.
! 	(mve_vandq_m_f<mode>): Likewise.
! 	(mve_vandq_s<mode>): Likewise.
! 	(mve_vandq_u<mode>): Likewise.
! 	(mve_vbicq_<supf><mode>): Likewise.
! 	(mve_vbicq_f<mode>): Likewise.
! 	(mve_vbicq_m_<supf><mode>): Likewise.
! 	(mve_vbicq_m_f<mode>): Likewise.
! 	(mve_vbicq_m_n_<supf><mode>): Likewise.
! 	(mve_vbicq_n_<supf><mode>): Likewise.
! 	(mve_vbicq_s<mode>): Likewise.
! 	(mve_vbicq_u<mode>): Likewise.
! 	(@mve_vclzq_s<mode>): Likewise.
! 	(mve_vclzq_u<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op>q_<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op>q_n_<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op>q_f<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op>q_n_f<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op1>q_m_f<mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op1>q_m_n_<supf><mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op1>q_m_<supf><mode>): Likewise.
! 	(@mve_vcmp_<mve_cmp_op1>q_m_n_f<mode>): Likewise.
! 	(mve_vctp<MVE_vctp>q<MVE_vpred>): Likewise.
! 	(mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
! 	(mve_vcvtaq_<supf><mode>): Likewise.
! 	(mve_vcvtaq_m_<supf><mode>): Likewise.
! 	(mve_vcvtbq_f16_f32v8hf): Likewise.
! 	(mve_vcvtbq_f32_f16v4sf): Likewise.
! 	(mve_vcvtbq_m_f16_f32v8hf): Likewise.
! 	(mve_vcvtbq_m_f32_f16v4sf): Likewise.
! 	(mve_vcvtmq_<supf><mode>): Likewise.
! 	(mve_vcvtmq_m_<supf><mode>): Likewise.
! 	(mve_vcvtnq_<supf><mode>): Likewise.
! 	(mve_vcvtnq_m_<supf><mode>): Likewise.
! 	(mve_vcvtpq_<supf><mode>): Likewise.
! 	(mve_vcvtpq_m_<supf><mode>): Likewise.
! 	(mve_vcvtq_from_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_m_from_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_m_to_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_n_from_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_n_to_f_<supf><mode>): Likewise.
! 	(mve_vcvtq_to_f_<supf><mode>): Likewise.
! 	(mve_vcvttq_f16_f32v8hf): Likewise.
! 	(mve_vcvttq_f32_f16v4sf): Likewise.
! 	(mve_vcvttq_m_f16_f32v8hf): Likewise.
! 	(mve_vcvttq_m_f32_f16v4sf): Likewise.
! 	(mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
! 	(mve_vdwdupq_wb_u<mode>_insn): Likewise.
! 	(mve_veorq_s><mode>): Likewise.
! 	(mve_veorq_u><mode>): Likewise.
! 	(mve_veorq_f<mode>): Likewise.
! 	(mve_vidupq_m_wb_u<mode>_insn): Likewise.
! 	(mve_vidupq_u<mode>_insn): Likewise.
! 	(mve_viwdupq_m_wb_u<mode>_insn): Likewise.
! 	(mve_viwdupq_wb_u<mode>_insn): Likewise.
! 	(mve_vldrbq_<supf><mode>): Likewise.
! 	(mve_vldrbq_gather_offset_<supf><mode>): Likewise.
! 	(mve_vldrbq_gather_offset_z_<supf><mode>): Likewise.
! 	(mve_vldrbq_z_<supf><mode>): Likewise.
! 	(mve_vldrdq_gather_base_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
! 	(mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
! 	(mve_vldrdq_gather_base_z_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_offset_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_offset_z_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_shifted_offset_<supf>v2di): Likewise.
! 	(mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Likewise.
! 	(mve_vldrhq_<supf><mode>): Likewise.
! 	(mve_vldrhq_fv8hf): Likewise.
! 	(mve_vldrhq_gather_offset_<supf><mode>): Likewise.
! 	(mve_vldrhq_gather_offset_fv8hf): Likewise.
! 	(mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
! 	(mve_vldrhq_gather_offset_z_fv8hf): Likewise.
! 	(mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
! 	(mve_vldrhq_gather_shifted_offset_fv8hf): Likewise.
! 	(mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
! 	(mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise.
! 	(mve_vldrhq_z_<supf><mode>): Likewise.
! 	(mve_vldrhq_z_fv8hf): Likewise.
! 	(mve_vldrwq_<supf>v4si): Likewise.
! 	(mve_vldrwq_fv4sf): Likewise.
! 	(mve_vldrwq_gather_base_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_base_fv4sf): Likewise.
! 	(mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
! 	(mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
! 	(mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
! 	(mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
! 	(mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_base_z_fv4sf): Likewise.
! 	(mve_vldrwq_gather_offset_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_offset_fv4sf): Likewise.
! 	(mve_vldrwq_gather_offset_z_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_offset_z_fv4sf): Likewise.
! 	(mve_vldrwq_gather_shifted_offset_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_shifted_offset_fv4sf): Likewise.
! 	(mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Likewise.
! 	(mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise.
! 	(mve_vldrwq_z_<supf>v4si): Likewise.
! 	(mve_vldrwq_z_fv4sf): Likewise.
! 	(mve_vmvnq_s<mode>): Likewise.
! 	(mve_vmvnq_u<mode>): Likewise.
! 	(mve_vornq_<supf><mode>): Likewise.
! 	(mve_vornq_f<mode>): Likewise.
! 	(mve_vornq_m_<supf><mode>): Likewise.
! 	(mve_vornq_m_f<mode>): Likewise.
! 	(mve_vornq_s<mode>): Likewise.
! 	(mve_vornq_u<mode>): Likewise.
! 	(mve_vorrq_<supf><mode>): Likewise.
! 	(mve_vorrq_f<mode>): Likewise.
! 	(mve_vorrq_m_<supf><mode>): Likewise.
! 	(mve_vorrq_m_f<mode>): Likewise.
! 	(mve_vorrq_m_n_<supf><mode>): Likewise.
! 	(mve_vorrq_n_<supf><mode>): Likewise.
! 	(mve_vorrq_s<mode>): Likewise.
! 	(mve_vorrq_s<mode>): Likewise.
! 	(mve_vsbciq_<supf>v4si): Likewise.
! 	(mve_vsbciq_m_<supf>v4si): Likewise.
! 	(mve_vsbcq_<supf>v4si): Likewise.
! 	(mve_vsbcq_m_<supf>v4si): Likewise.
! 	(mve_vshlcq_<supf><mode>): Likewise.
! 	(mve_vshlcq_m_<supf><mode>): Likewise.
! 	(mve_vshrq_m_n_<supf><mode>): Likewise.
! 	(mve_vshrq_n_<supf><mode>): Likewise.
! 	(mve_vstrbq_<supf><mode>): Likewise.
! 	(mve_vstrbq_p_<supf><mode>): Likewise.
! 	(mve_vstrbq_scatter_offset_<supf><mode>_insn): Likewise.
! 	(mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
! 	(mve_vstrdq_scatter_base_<supf>v2di): Likewise.
! 	(mve_vstrdq_scatter_base_p_<supf>v2di): Likewise.
! 	(mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
! 	(mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
! 	(mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
! 	(mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
! 	(mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
! 	(mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
! 	(mve_vstrhq_<supf><mode>): Likewise.
! 	(mve_vstrhq_fv8hf): Likewise.
! 	(mve_vstrhq_p_<supf><mode>): Likewise.
! 	(mve_vstrhq_p_fv8hf): Likewise.
! 	(mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
! 	(mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
! 	(mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Likewise.
! 	(mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
! 	(mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
! 	(mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
! 	(mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
! 	(mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
! 	(mve_vstrwq_<supf>v4si): Likewise.
! 	(mve_vstrwq_fv4sf): Likewise.
! 	(mve_vstrwq_p_<supf>v4si): Likewise.
! 	(mve_vstrwq_p_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_base_<supf>v4si): Likewise.
! 	(mve_vstrwq_scatter_base_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
! 	(mve_vstrwq_scatter_base_p_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_base_wb_<supf>v4si): Likewise.
! 	(mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
! 	(mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
! 	(mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
! 	(mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
! 	(mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
! 	(mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
! 	(mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
! 	(mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
! 	(mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
! 	(mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
! 
! 2024-03-04  Marek Polacek  <polacek@redhat.com>
! 
! 	* doc/extend.texi: Update [[gnu::no_dangling]].
! 
! 2024-03-04  Andrew Stubbs  <ams@baylibre.com>
! 
! 	* dojump.cc (do_compare_and_jump): Use full-width integers for shifts.
! 	* expr.cc (store_constructor): Likewise.
! 	(do_store_flag): Likewise.
! 
! 2024-03-04  Mark Wielaard  <mark@klomp.org>
! 
! 	* common.opt.urls: Regenerate.
! 	* config/avr/avr.opt.urls: Likewise.
! 	* config/i386/i386.opt.urls: Likewise.
! 	* config/pru/pru.opt.urls: Likewise.
! 	* config/riscv/riscv.opt.urls: Likewise.
! 	* config/rs6000/rs6000.opt.urls: Likewise.
! 
! 2024-03-04  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114197
! 	* tree-if-conv.cc (bitfields_to_lower_p): Do not lower if
! 	there are volatile bitfield accesses.
! 	(pass_if_conversion::execute): Throw away result if the
! 	if-converted and original loops are not nested as expected.
! 
! 2024-03-04  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114164
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if
! 	the code generated for mask argument setup is not supported.
! 
! 2024-03-04  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114203
! 	* tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ
! 	adjustment before making the result defined at zero.
! 
! 2024-03-04  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/114192
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the
! 	appropriate def for the live out stmt in case of an alternate
! 	exit.
! 
! 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/114209
! 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call
! 	unshare_expr when creating a MEM_REF from MEM_REF.
! 	(bitint_large_huge::lower_stmt): Call unshare_expr.
! 
! 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/114184
! 	* config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1
! 	is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or
! 	register.
! 
! 2024-03-04  Roger Sayle  <roger@nextmovesoftware.com>
! 
! 	PR target/114187
! 	* simplify-rtx.cc (simplify_context::simplify_subreg): Call
! 	lowpart_subreg to perform type conversion, to avoid confusion
! 	over the offset to use in the call to simplify_reg_subreg.
! 
! 2024-03-03  Greg McGary  <gkm@rivosinc.com>
! 
! 	PR rtl-optimization/113010
! 	* combine.cc (simplify_comparison): Simplify a SUBREG on
! 	WORD_REGISTER_OPERATIONS targets only if it is a zero-extending
! 	MEM load.
! 
! 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED.
! 	Use bool in place of int for boolean logic (if possible).
! 	Move declarations to definitions (if possible).
! 	* config/avr/avr.md: Use C++ comments.  Fix some indentation glitches.
! 	* config/avr/avr-dimode.md: Same.
! 	* config/avr/constraints.md: Same.
! 	* config/avr/predicates.md: Same.
! 
! 2024-03-03  Uros Bizjak  <ubizjak@gmail.com>
! 
! 	PR target/113720
! 	* config/alpha/alpha.md (umuldi3_highpart): Remove expander.
! 	(*umuldi3_highpart_reg): Rename to umuldi3_highpart and
! 	simplify insn RTX using UMUL_HIGHPART rtx_code.
! 	(*umuldi3_highpart_const): Remove.
! 
! 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/114100
! 	* config/avr/avr-protos.h (_reg_unused_after): Remove proto.
! 	* config/avr/avr.cc (_reg_unused_after): Make static.  And
! 	add 3rd argument to skip the current insn.
! 	(reg_unused_after): Adjust call of reg_unused_after.
! 	(avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output
! 	unneeded frame pointer adjustments.
! 
! 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/92729
! 	* config/avr/avr.md (define_attr "cc"): Remove.
! 	* config/avr/avr-protos.h (avr_out_plus): Remove pcc argument
! 	from prototype.
! 	* config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and
! 	its uses.  Add insn argument.
! 	(avr_out_plus_symbol): Remove pcc argument and its uses.
! 	(avr_out_plus): Remove pcc argument and its uses.
! 	Adjust calls of avr_out_plus_symbol and avr_out_plus_1.
! 	(avr_out_round): Adjust call of avr_out_plus.
! 
! 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.cc (avr_init_cumulative_args): Fix a typo
! 	from  r14-9273.
! 
! 2024-03-03  Oleg Endo  <olegendo@gcc.gnu.org>
! 
! 	PR target/101737
! 	* config/sh/sh.cc (sh_is_nott_insn): Handle case where the input
! 	is not an insn, but e.g. a code label.
! 
! 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.md (REG_0, ... REG_36): New define_constants.
! 	* config/avr/avr.cc: Use them instead of magic numbers when it
! 	means a register number.
! 
! 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.cc: Adjust some comments.
! 
! 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/114100
! 	* config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust
! 	the low part of the frame pointer with 8-bit stack pointer.
! 
! 2024-03-01  Patrick Palka  <ppalka@redhat.com>
! 
! 	PR c++/104919
! 	PR c++/106009
! 	* tree-inline.cc (remap_decl): Handle copy_decl returning the
! 	original decl.
! 	(remap_decls): Handle remap_decl returning the original decl.
! 	(copy_fn): Adjust copy_decl callback to skip TYPE_DECL and
! 	CONST_DECL.
! 
! 2024-03-01  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	* config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
! 	type attribute.
! 	(extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise.
! 	(movdi_32bit, movdi_64bit, movsi_internal): Likewise.
! 	(movhi_internal, movqi_internal): Likewise.
! 	(movsf_softfloat, movsf_hardfloat): Likewise.
! 	(movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise.
! 	(movdf_softfloat): Likewise.
! 
! 2024-03-01  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/110358
! 	PR c++/109642
! 	* doc/extend.texi: Document gnu::no_dangling.
! 	* doc/invoke.texi: Mention that gnu::no_dangling disables
! 	-Wdangling-reference.
! 
! 2024-03-01  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.opt: Overhaul help screen.
! 
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
! 	    Tobias Burnus  <tburnus@baylibre.com>
! 
! 	PR c++/110347
! 	* gimplify.cc (omp_notice_variable): Fix 'shared' arg to
! 	lang_hooks.decls.omp_disregard_value_expr for
! 	(first)private in target regions.
! 
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/114136
! 	* calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set
! 	n_named_args initially before INIT_CUMULATIVE_ARGS to
! 	structure_value_addr_parm rather than 0, after it don't modify
! 	it if strict_argument_naming and clear only if
! 	!pretend_outgoing_varargs_named.
! 
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR debug/114015
! 	* dwarf2out.cc (should_move_die_to_comdat): Return false for
! 	aggregates without DW_AT_byte_size attribute or with non-constant
! 	DW_AT_byte_size.
! 
! 2024-03-01  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document
! 	valid values for level.
! 
! 2024-03-01  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/114070
! 	* match.pd ((c ? a : b) op d  -->  c ? (a op d) : (b op d)):
! 	Allow the folding if before lowering and the current IL
! 	isn't supported with vcond_mask.
! 
! 2024-03-01  xuli  <xuli1@eswincomputing.com>
! 
! 	* config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc
! 	attribute to riscv_attribute_table.
! 	(riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function.
! 	(riscv_fntype_abi): Add riscv_vector_cc attribute check.
! 	* doc/extend.texi: Add riscv_vector_cc attribute description.
! 
! 2024-03-01  Pan Li  <pan2.li@intel.com>
! 
! 	PR target/112817
! 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace
! 	RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL.
! 	* config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove.
! 	(enum rvv_vector_bits_enum): New enum for different RVV vector bits.
! 	* config/riscv/riscv-selftests.cc (riscv_run_selftests): Update
! 	comments for option replacement.
! 	* config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of
! 	riscv_autovec_preference to rvv_vector_bits.
! 	(vls_mode_valid_p): Ditto.
! 	(estimated_poly_value): Ditto.
! 	* config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to
! 	vector chunks and honor new option mrvv-vector-bits.
! 	(riscv_override_options_internal): Update comments and rename the
! 	vector chunks.
! 	* config/riscv/riscv.opt: Add option mrvv-vector-bits and remove
! 	internal option param=riscv-autovec-preference.
! 
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* function.cc (assign_parms): Only call assign_parms_setup_varargs
! 	early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty.
! 
! 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/114156
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow
! 	rhs1 of a VCE to have no underlying variable if it is a load and
! 	handle that case.
! 
! 2024-02-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/114159
! 	* function.cc (function_name): Make param const.
! 	* function.h (function_name): Likewise.
! 
! 2024-02-29  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/114100
! 	* doc/invoke.texi (AVR Options) <-mfuse-add>: Document.
! 	* config/avr/avr.opt (-mfuse-add=): New target option.
! 	* common/config/avr/avr-common.cc (avr_option_optimization_table)
! 	[OPT_LEVELS_1_PLUS]: Set -mfuse-add=1.
! 	[OPT_LEVELS_2_PLUS]: Set -mfuse-add=2.
! 	* config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass.
! 	* config/avr/avr-protos.h (avr_split_tiny_move)
! 	(make_avr_pass_fuse_add): New protos.
! 	* config/avr/avr.md [AVR_TINY]: New post-reload splitter uses
! 	avr_split_tiny_move to split indirect memory accesses.
! 	(gen_move_clobbercc): New define_expand helper.
! 	* config/avr/avr.cc (avr_pass_data_fuse_add): New pass data.
! 	(avr_pass_fuse_add): New class from rtl_opt_pass.
! 	(make_avr_pass_fuse_add, avr_split_tiny_move): New functions.
! 	(reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions.
! 	(avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets
! 	of PLUS addressing for AVR_TINY.
! 	(avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X.
! 	(avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y.
! 	(avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS.
! 
! 2024-02-29  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/114132
! 	* config/avr/avr.h (CUMULATIVE_ARGS) <has_stack_args>: New field.
! 	* config/avr/avr.cc (avr_init_cumulative_args): Initialize it.
! 	(avr_function_arg): Set it.
! 	(avr_frame_pointer_required_p): Use it instead of .nregs.
! 
! 2024-02-29  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR target/108174
! 	* config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make
! 	static and mark with GTY.
! 
! 2024-02-29  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* config/loongarch/loongarch.md
! 	(loongarch_<crc>_w_<size>_w_extended): New define_insn.
! 
! 2024-02-29  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* config/loongarch/loongarch.md (CRC): New define_int_iterator.
! 	(crc): New define_int_attr.
! 	(loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify
! 	into ...
! 	(loongarch_<crc>_w_<size>_w): ... here.
! 
! 2024-02-29  Kito Cheng  <kito.cheng@sifive.com>
! 
! 	PR target/114130
! 	* config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign
! 	extend the expected value if needed.
! 
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 
! 	* config.gcc (target_gtfiles): Change coreout to btfext-out.
! 	(extra_objs): Change coreout to btfext-out.
! 	* config/bpf/coreout.cc: Rename to btfext-out.cc.
! 	* config/bpf/btfext-out.cc: Add.
! 	* config/bpf/coreout.h: Rename to btfext-out.h.
! 	* config/bpf/btfext-out.h: Add.
! 	* config/bpf/core-builtins.cc: Change include.
! 	* config/bpf/core-builtins.h: Change include.
! 	* config/bpf/t-bpf: Accomodate renamed files.
! 
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 
! 	PR target/113453
! 	* config/bpf/bpf.cc (bpf_function_prologue): Define target
! 	hook.
! 	* config/bpf/coreout.cc (brf_ext_info_section)
! 	(btf_ext_info): Move from coreout.h
! 	(btf_ext_funcinfo, btf_ext_lineinfo): Add struct.
! 	(bpf_core_reloc): Rename to btf_ext_core_reloc.
! 	(btf_ext): Add static variable.
! 	(btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN)
! 	(bpf_create_or_find_funcinfo, bpt_create_core_reloc)
! 	(btf_ext_add_string, btf_funcinfo_type_callback)
! 	(btf_add_func_info_for, btf_validate_funcinfo)
! 	(btf_ext_info_len, output_btfext_func_info): Add function.
! 	(output_btfext_header, bpf_core_reloc_add)
! 	(output_btfext_core_relocs, btf_ext_init, btf_ext_output):
! 	Change to support new structs.
! 	* config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo):
! 	Move and change in coreout.cc.
! 	(btf_add_func_info_for, btf_ext_add_string): Add prototypes.
! 
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 
! 	* config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext
! 	enabled by default for BPF.
! 	(bpf_file_end): Call BTF deallocation.
! 	(bpf_asm_init_sections): Correct condition.
! 	* dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF
! 	deallocation.
! 	(ctf_debuf_finish): Correct condition for calling
! 	ctf_debug_finalize.
! 
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
! 
! 	* btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT.
! 	(traverse_btf_func_types): Define function.
! 	* ctfc.h (funcs_traverse_callback): Typedef for function
  	prototype.
! 	(traverse_btf_func_types): Add prototype.
  
! 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* btfout.cc (btf_collect_dataset): Corrects BTF type id.
  
! 2024-02-28  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113831
! 	PR tree-optimization/108355
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert
! 	PR113831 fix.
  
! 2024-02-28  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114121
! 	* tree-ssa-sccvn.h (vn_reference_s::offset,
! 	vn_reference_s::max_size): New fields.
! 	(vn_reference_insert_pieces): Adjust prototype.
! 	* tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size.
! 	* tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and
! 	size, allow using "don't know" state.
! 	(vn_walk_cb_data::finish): Pass along offset/max_size.
! 	(vn_reference_lookup_or_insert_for_pieces): Take offset and
! 	max_size as argument and use it.
! 	(vn_reference_lookup_3): Properly adjust offset and max_size
! 	according to the adjusted ao_ref.
! 	(vn_reference_lookup_pieces): Initialize offset and max_size.
! 	(vn_reference_lookup): Likewise.
! 	(vn_reference_lookup_call): Likewise.
! 	(vn_reference_insert): Likewise.
! 	(visit_reference_op_call): Likewise.
! 	(vn_reference_insert_pieces): Take offset and max_size
! 	as argument and use it.
  
! 2024-02-28  Juergen Christ  <jchrist@linux.ibm.com>
  
! 	PR tree-optimization/114075
! 	* tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating
! 	point vectors
  
! 2024-02-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114041
! 	* graphite-sese-to-poly.cc (add_conditions_to_domain): Check for
! 	INTEGRAL_TYPE_P check rather than INTEGER_TYPE.
  
! 2024-02-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113988
! 	* stor-layout.h (bitwise_mode_for_size): Declare.
! 	* stor-layout.cc (bitwise_mode_for_size): New function.
! 	* gimple-fold.cc (gimple_fold_builtin_memory_op): Use it.
! 	Use bitwise_type_for_mode instead of build_nonstandard_integer_type.
! 	Use BITS_PER_UNIT instead of 8.
  
! 2024-02-27  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113871
! 	* config/i386/mmx.md (V248FI): Add V2BF mode.
! 	(V24FI_32): Ditto.
  
! 2024-02-27  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* tree-ssa-dse.cc (compute_trims): Fix description.  Return early
! 	if either ref->offset is not byte aligned or ref->size is not known
! 	to be equal to ref->max_size.
! 	(maybe_trim_complex_store): Fix description.
! 	(maybe_trim_constructor_store): Likewise.
! 	(maybe_trim_partially_dead_store): Likewise.
  
! 2024-02-27  Richard Earnshaw  <rearnsha@arm.com>
  
! 	* config/arm/mmintrin.h: Warn if this header is included without
! 	defining __ENABLE_DEPRECATED_IWMMXT.
  
! 2024-02-27  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114074
! 	* tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL.
! 	* tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs.
! 	Handle poly vs. non-poly multiplication correctly with respect
! 	to undefined behavior on overflow.
  
! 2024-02-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/114044
! 	* internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use
! 	DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN.
! 	* internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS,
! 	expand_PARITY): Declare.
! 	* internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ,
! 	expand_CTZ, expand_FFS, expand_PARITY): New functions.
! 	(expand_POPCOUNT): Use expand_bitquery.
  
! 2024-02-27  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114081
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Perform manual dominator update for prologue peeling.
! 	(vect_do_peeling): Properly update dominators after adding the
! 	prologue-around guard.
  
! 2024-02-26  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args)
! 	(mstrict-X): Tag as "Optimization".
  
! 2024-02-26  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in
! 	an "if avr_adiw_reg_p()" block that's dead for AVR_TINY.
  
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
! 	    H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR rtl-optimization/113617
! 	* varasm.cc (default_elf_select_rtx_section): For
! 	references to private symbols in comdat sections
! 	use .data.relro.local.pool.<comdat>, .data.relro.pool.<comdat>
! 	or .rodata.<comdat> comdat sections.
  
! 2024-02-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114099
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Create and fill in a needed virtual LC PHI for the alternate
! 	exits.  Remove code dealing with that missing.
  
! 2024-02-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114068
! 	* tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge):
! 	New function.
! 	(slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI
! 	on the main exit if needed.  Remove band-aid for the case
! 	it was missing.
  
! 2024-02-26  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114097
! 	* config/i386/i386-options.cc (ix86_set_func_type): Check
! 	interrupt instead of noreturn attribute.
  
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/i386/i386.cc (ix86_bitint_type_info): Add support for
! 	!TARGET_64BIT.
  
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114090
! 	* match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x):
! 	Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED
! 	types.
! 	((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise.
  
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114084
! 	* fold-const.cc (fold_binary_loc): Avoid the final associate_trees
! 	if all subtrees of var0 come from one of the op0 or op1 operands
! 	and all subtrees of con0 come from the other one.  Don't clear
! 	variables which are never used afterwards.
  
! 2024-02-26  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/114070
! 	* genmatch.cc (parser::parse_c_expr): Do not record operand
! 	lists but only mark operators used.
! 	* match.pd ((c ? a : b) op (c ? d : e)  -->  c ? (a op d) : (b op e)):
! 	Properly guard the case of tcc_comparison changing the VEC_COND
! 	value operand type.
  
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/114094
! 	* config/i386/i386.cc (x86_function_profiler): Add missing new-line
! 	to printed instruction.
  
! 2024-02-26  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/114098
! 	* config/i386/amxtileintrin.h (_tile_loadconfig): Use
! 	__builtin_ia32_ldtilecfg.
! 	(_tile_storeconfig): Use __builtin_ia32_sttilecfg.
! 	* config/i386/i386-builtin.def (BDESC): Add
! 	__builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg.
! 	* config/i386/i386-expand.cc (ix86_expand_builtin): Handle
! 	IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG.
! 	* config/i386/i386.md (ldtilecfg): New pattern.
! 	(sttilecfg): Likewise.
  
! 2024-02-24  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR tree-optimization/113205
! 	* tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject
! 	the proposed layout if it does not allow a source partition with
! 	layout 2 to keep that layout.
  
! 2024-02-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	* builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro.
! 	* combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro.
! 	* double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros.
! 	* genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro.
! 	(mk_attr_alt): Use HOST_WIDE_INT_0 macro.
! 	* genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1
! 	macros.
! 	* ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro.
! 	* loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro.
! 	* pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and
! 	HOST_WIDE_INT_UC macros.
! 	* rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro.
! 	* tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro.
! 	* tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro.
! 	* tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U
! 	macros.
! 	* wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro.
! 	* config/i386/constraints.md (define_constraint "L"): Use
! 	HOST_WIDE_INT_C macro.
! 	* config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C
! 	macro.
! 	(movl + movb peephole2): Likewise.
! 	* config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise.
! 	(const_32bit_mask): Likewise.
  
! 2024-02-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/114073
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle
! 	VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer
! 	types like vector or complex types.
! 	(gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral
! 	types.  Fix up VIEW_CONVERT_EXPR handling.  Allow merging
! 	VIEW_CONVERT_EXPR from non-integral/pointer types with a store.
  
! 2024-02-23  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/114028
! 	* config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
! 	Return false if inner mode is already Pmode.
! 	(rvv_builder::is_all_same_sequence): New function.
! 	(expand_vec_init): Emit broadcast if sequence is all same.
  
! 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113613
! 	* config/aarch64/aarch64-early-ra.cc
! 	(early_ra::m_current_region): New member variable.
! 	(early_ra::m_fpr_recency): Likewise.
! 	(early_ra::start_new_region): Bump m_current_region.
! 	(early_ra::allocate_colors): Prefer less recently used registers
! 	in the event of a tie.  Add a comment to explain why we prefer(ed)
! 	higher-numbered registers.
! 	(early_ra::find_oldest_color): Prefer less recently used registers
! 	here too.
! 	(early_ra::finalize_allocation): Update recency information for
! 	allocated registers.
! 	(early_ra::process_blocks): Initialize m_current_region and
! 	m_fpr_recency.
  
! 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113295
! 	* config/aarch64/aarch64-early-ra.cc
! 	(early_ra::test_strictness): New enum.
! 	(early_ra::is_chain_candidate): Add a strictness parameter to
! 	control whether only correctness matters, or whether both correctness
! 	and heuristics should be used.  Handle multiple levels of equivalence.
! 	(early_ra::find_related_start): Update call accordingly.
! 	(early_ra::strided_polarity_pref): Likewise.
! 	(early_ra::form_chains): Likewise.
! 	(early_ra::try_to_chain_allocnos): Use is_chain_candidate in
! 	correctness mode rather than trying to inline the test.
  
! 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113295
! 	* config/aarch64/aarch64-early-ra.cc
! 	(early_ra::find_related_start): Account for definitions by shared
! 	registers when testing for a single register definition.
! 	(early_ra::accumulate_defs): New function.
! 	(early_ra::record_copy): If A shares B's register, fold A's
! 	definition information into B's.  Fold A's use information into B's.
  
! 2024-02-23  H.J. Lu  <hjl.tools@gmail.com>
  
! 	* configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1
! 	if R_X86_64_CODE_6_GOTTPOFF is supported.
! 	* config.in: Regenerated.
! 	* configure: Likewise.
! 	* config/i386/predicates.md (apx_ndd_add_memory_operand): Allow
! 	UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported.
  
! 2024-02-23  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/108120
! 	* config/arm/neon.md (div<VCVTF:mode>3): Rename from div<mode>3.
! 	Gate with ARM_HAVE_NEON_<MODE>_ARITH.
  
! 2024-02-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/114054
! 	* expr.cc (expand_expr_real_2) <case MULT_EXPR>: Use
! 	temp variable instead of target parameter for result.
  
! 2024-02-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114040
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
! 	Use EQ_EXPR rather than LT_EXPR for g2 condition and change its
! 	probability from likely to unlikely.  When handling the true true
! 	store, first cast to limb_access_type and then to l's type.
  
! 2024-02-23  Richard Biener  <rguenther@suse.de>
  
! 	PR target/90785
! 	* config.gcc: Add ia64*-*-* to the list of obsoleted targets.
  
! 2024-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
  
! 	PR other/109668
! 	* config/riscv/arch-canonicalize: Move to python3
! 	* config/riscv/multilib-generator: Likewise
  
! 2024-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
  
! 	* doc/invoke.texi: Document -mcpu.
  
! 2024-02-23  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* configure: Regenerate.
! 	* configure.ac: Add parameter "--fatal-warnings" to assemble
! 	when checking whether the assemble support conditional branch
! 	relaxation.
  
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/114007
! 	* doc/extend.texi: (__extension__): Remove comments about scope
! 	tokens vs. two colons.
  
! 2024-02-22  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/109804
! 	* gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
! 	DEMANGLE_COMPONENT_UNNAMED_TYPE.
  
! 2024-02-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114048
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF
! 	can also produce -1 off.
  
! 2024-02-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114027
! 	* tree-vect-loop.cc (vecctorizable_reduction): Use optimized
! 	condition reduction classification only for single-element
! 	chains.
  
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR ipa/111960
! 	* profile-count.h (profile_count::dump): Remove overload with
! 	char * first argument.
! 	* profile-count.cc (profile_count::dump): Change overload with char *
! 	first argument which uses sprintf into the overfload with FILE *
! 	first argument and use fprintf instead.  Remove overload which wrapped
! 	it.
  
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113993
! 	* tree-call-cdce.cc (get_no_error_domain): Handle
! 	BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}.  Handle
! 	BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for
! 	REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
! 	the as the F128 suffixed cases, otherwise as non-suffixed ones.
! 	Handle BUILT_IN_{EXP,POW}10L for
! 	REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
! 	as (-inf, 4932).
  
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/114038
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix
! 	loop exit condition if end is divisible by limb_prec.
  
! 2024-02-22  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix
! 	problem of mabi=, mno-flush-func, mexplicit-relocs;
! 	add missing leading - of mbranch-cost option.
! 	* config/mips/mips.opt.urls: Regenerate.
  
! 2024-02-22  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/109987
! 	* config/rs6000/constraints.md (we): Update internal doc without
! 	referring to option -mpower9-vector.
! 	* config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector
! 	special handlings.
! 	* config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS,
! 	OTHER_P8_VECTOR_MASKS): Merge to ...
! 	(OTHER_VSX_VECTOR_MASKS): ... here.
! 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
! 	some error message handlings and explicit option mask adjustments on
! 	explicit option power{8,9}-vector conflicting with other options.
! 	(rs6000_print_isa_options): Update comments.
! 	(rs6000_disable_incompatible_switches): Remove power{8,9}-vector
! 	related array items and handlings.
! 	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector
! 	special handlings.
! 	* config/rs6000/rs6000.opt: Make option power{8,9}-vector as
! 	WarnRemoved.
! 	* doc/extend.texi: Remove documentation referring to option
! 	-mpower8-vector.
! 	* doc/invoke.texi: Remove documentation for option
! 	-mpower{8,9}-vector and adjust some documentation referring to them.
! 	* doc/md.texi: Update documentation for constraint we.
! 	* doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok.
  
! 2024-02-22  Pan Li  <pan2.li@intel.com>
  
! 	PR target/114017
! 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade
! 	the version to 0.12.
  
! 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
  
! 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
! 	    Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
! 	(generic_ooo_vec_load): Ditto
! 	(generic_ooo_vec_store): Ditto
! 	(generic_ooo_vec_loadstore_seg): Ditto
! 	(generic_ooo_vec_alu): Ditto
! 	(generic_ooo_vec_fcmp): Ditto
! 	(generic_ooo_vec_imul): Ditto
! 	(generic_ooo_vec_fadd): Ditto
! 	(generic_ooo_vec_fmul): Ditto
! 	(generic_ooo_crypto): Ditto
! 	(generic_ooo_perm): Ditto
! 	(generic_ooo_vec_reduction): Ditto
! 	(generic_ooo_vec_ordered_reduction): Ditto
! 	(generic_ooo_vec_idiv): Ditto
! 	(generic_ooo_vec_float_divsqrt): Ditto
! 	(generic_ooo_vec_mask): Ditto
! 	(generic_ooo_vec_vesetvl): Ditto
! 	(generic_ooo_vec_setrm): Ditto
! 	(generic_ooo_vec_readlen): Ditto
! 	* config/riscv/riscv.md: Include generic-vector-ooo
! 	* config/riscv/generic-vector-ooo.md: New file. To here
  
! 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
! 	(generic_ooo_branch): Ditto
! 	* config/riscv/generic.md (generic_sfb_alu): Ditto
! 	(generic_fmul_half): Ditto
! 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
! 	* config/riscv/sifive-7.md (sifive_7_hfma): Add reservation
! 	(sifive_7_popcount): Ditto
! 	* config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto
! 	* config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto
! 	* config/riscv/vector.md: Change rdfrm to fmove
! 	* config/riscv/zc.md: Change pushpop to load/store
  
! 2024-02-21  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/invoke.texi (Warning Options): Fix typos.
  
! 2024-02-21  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf-protos.h (bpf_expand_cpymem): New.
! 	* config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New.
! 	* config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands.
  
! 2024-02-21  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113476
! 	* ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust
! 	initializers in the contructor.
! 	(ipa_node_params::~ipa_node_params): Release lattices as a vector.
! 	* ipa-cp.h: New file.
! 	* ipa-cp.cc: Include sreal.h and ipa-cp.h.
! 	(ipcp_value_source): Move to ipa-cp.h.
! 	(ipcp_value_base): Likewise.
! 	(ipcp_value): Likewise.
! 	(ipcp_lattice): Likewise.
! 	(ipcp_agg_lattice): Likewise.
! 	(ipcp_bits_lattice): Likewise.
! 	(ipcp_vr_lattice): Likewise.
! 	(ipcp_param_lattices): Likewise.
! 	(ipa_get_parm_lattices): Remove assert latticess is non-NULL.
! 	(ipa_value_from_jfunc): Adjust a check for empty lattices.
! 	(ipa_context_from_jfunc): Likewise.
! 	(ipa_agg_value_from_jfunc): Likewise.
! 	(merge_agg_lats_step): Do not memset new aggregate lattices to zero.
! 	(ipcp_propagate_stage): Allocate lattices in a vector as opposed to
! 	just in contiguous memory.
! 	(ipcp_store_vr_results): Adjust a check for empty lattices.
! 	* auto-profile.cc: Include sreal.h and ipa-cp.h.
! 	* cgraph.cc: Likewise.
! 	* cgraphclones.cc: Likewise.
! 	* cgraphunit.cc: Likewise.
! 	* config/aarch64/aarch64.cc: Likewise.
! 	* config/i386/i386-builtins.cc: Likewise.
! 	* config/i386/i386-expand.cc: Likewise.
! 	* config/i386/i386-features.cc: Likewise.
! 	* config/i386/i386-options.cc: Likewise.
! 	* config/i386/i386.cc: Likewise.
! 	* config/rs6000/rs6000.cc: Likewise.
! 	* config/s390/s390.cc: Likewise.
! 	* gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the
! 	files to be included in gtype-desc.cc.
! 	* gimple-range-fold.cc: Include sreal.h and ipa-cp.h.
! 	* ipa-devirt.cc: Likewise.
! 	* ipa-fnsummary.cc: Likewise.
! 	* ipa-icf.cc: Likewise.
! 	* ipa-inline-analysis.cc: Likewise.
! 	* ipa-inline-transform.cc: Likewise.
! 	* ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher.
! 	* ipa-modref.cc: Include sreal.h and ipa-cp.h.
! 	* ipa-param-manipulation.cc: Likewise.
! 	* ipa-predicate.cc: Likewise.
! 	* ipa-profile.cc: Likewise.
! 	* ipa-prop.cc: Likewise.
! 	(ipa_node_params_t::duplicate): Assert new lattices remain empty
! 	instead of setting them to NULL.
! 	* ipa-pure-const.cc: Include sreal.h and ipa-cp.h.
! 	* ipa-split.cc: Likewise.
! 	* ipa-sra.cc: Likewise.
! 	* ipa-strub.cc: Likewise.
! 	* ipa-utils.cc: Likewise.
! 	* ipa.cc: Likewise.
! 	* toplev.cc: Likewise.
! 	* tree-ssa-ccp.cc: Likewise.
! 	* tree-ssa-sccvn.cc: Likewise.
! 	* tree-vrp.cc: Likewise.
  
! 2024-02-21  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from
! 	Armv8.7-a.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
! 	Use aarch64_gen_compare_zero_and_branch rather than emitting
! 	a CBZ directly.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p):
! 	Remove duplicated call.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall):
! 	Check that each individual piece of state is shared in the same
! 	way, rather than using an aggregate check for PSTATE.ZA.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
! 	In the code that commits a lazy save, only zero ZA if the function
! 	has ZA state.  Similarly zero ZT0 if the function has ZT0 state.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove,
! 	directly inserting the associated sequence
! 	* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
! 	...here instead.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113995
! 	* config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't
! 	fold the SVE allocation into the initial allocation if the
! 	initial allocation includes a VG save.
  
! 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113220
! 	* cfgrtl.cc (commit_one_edge_insertion): Handle sequences that
! 	contain jumps even if called after initial RTL expansion.
! 	* mode-switching.cc: Include cfgbuild.h.
! 	(optimize_mode_switching): Allow the sequence returned by the
! 	emit hook to contain internal jumps.  Record which blocks
! 	contain such jumps and split the blocks at the end.
! 	* config/aarch64/aarch64.cc (aarch64_mode_emit): Check for
! 	non-debug insns when scanning the sequence.
  
! 2024-02-21  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch.
! 	* config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise.
  
! 2024-02-21  Dimitar Dimitrov  <dimitar@dinux.eu>
  
! 	* doc/invoke.texi (-mmcu): Add information about MCU specs.
  
! 2024-02-21  Dimitar Dimitrov  <dimitar@dinux.eu>
  
! 	* doc/invoke.texi (-minrt): Clarify that main
! 	must take no arguments.
  
! 2024-02-20  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/builtins.def: Use function prototypes of given size
! 	and signedness.
! 	* config/avr/avr.cc (avr_init_builtins): Adjust types required
! 	by builtins.def.
! 	* doc/extend.texi (AVR Built-in Functions): Adjust accordingly.
  
! 2024-02-20  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/extend.texi (AVR Built-in Functions): Use @defbuiltin
! 	instead of @table.
  
! 2024-02-20  Will Hawkins  <hawkinsw@obs.cr>
  
! 	* config/bpf/bpf.opt: Add help information for -mcpu.
  
! 2024-02-20  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113805
! 	* config/aarch64/aarch64-passes.def (pass_late_track_speculation):
! 	New pass.
! 	* config/aarch64/aarch64-protos.h (make_pass_late_track_speculation):
! 	Declare.
! 	* config/aarch64/aarch64.md (is_call): New attribute.
! 	(*and<mode>3nr_compare0): Rename to...
! 	(@aarch64_and<mode>3nr_compare0): ...this.
! 	* config/aarch64/aarch64-sme.md (aarch64_get_sme_state)
! 	(aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes.
! 	* config/aarch64/aarch64-speculation.cc: Update file comment to
! 	describe the new late pass.
! 	(aarch64_do_track_speculation): Handle is_call insns like other calls.
! 	(pass_track_speculation): Add an is_late member variable.
! 	(pass_track_speculation::gate): Run the late pass for streaming-
! 	compatible functions and the early pass for other functions.
! 	(make_pass_track_speculation): Update accordingly.
! 	(make_pass_late_track_speculation): New function.
! 	* config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New
! 	function.
! 	(aarch64_guard_switch_pstate_sm): Use it.
  
! 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins):
! 	Register these builtins with a pointer to uint64_t rather than unsigned
! 	DI mode.
  
! 2024-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR target/113615
! 	* config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"):
! 	Conditionalize on '!TARGET_RDNA2_PLUS'.
! 	* config/gcn/gcn.cc (gcn_expand_dpp_shr_insn)
! 	(gcn_expand_reduc_scalar):
! 	'gcc_checking_assert (!TARGET_RDNA2_PLUS);'.
  
! 2024-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost
! 	'__gfx90a__' target CPU definition.  Add some safeguards for the future.
  
! 2024-02-19  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/54052
! 	* rtl-ssa/blocks.cc (function_info::place_phis): Filter
! 	local defs by LR_OUT.
  
! 2024-02-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113967
! 	* match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require
! 	in condition that @rpos is multiple of vector element size.
  
! 2024-02-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113696
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
! 	Suppress vsetvl fusion.
  
! 2024-02-18  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113912
! 	* config/i386/i386.cc (ix86_can_use_push2pop2): New.
! 	(ix86_pro_and_epilogue_can_use_push2pop2): Use it.
! 	(ix86_emit_save_regs): Don't generate push2 if
! 	ix86_can_use_push2pop2 return false.
! 	(ix86_expand_epilogue): Don't generate pop2 if
! 	ix86_can_use_push2pop2 return false.
  
! 2024-02-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
! 	Note on complete device support.
  
! 2024-02-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/extend.texi (AVR Function Attributes): Fuse description
! 	of "signal" and "interrupt" attribute.  Link pseudo instruction.
  
! 2024-02-18  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant
! 	symbol type conversions.
! 	(__cacop_d): Likewise.
! 	(__cpucfg): Likewise.
! 	(__asrtle_d): Likewise.
! 	(__asrtgt_d): Likewise.
! 	(__lddir_d): Likewise.
! 	(__ldpte_d): Likewise.
! 	(__crc_w_b_w): Likewise.
! 	(__crc_w_h_w): Likewise.
! 	(__crc_w_w_w): Likewise.
! 	(__crc_w_d_w): Likewise.
! 	(__crcc_w_b_w): Likewise.
! 	(__crcc_w_h_w): Likewise.
! 	(__crcc_w_w_w): Likewise.
! 	(__crcc_w_d_w): Likewise.
! 	(__csrrd_w): Likewise.
! 	(__csrwr_w): Likewise.
! 	(__csrxchg_w): Likewise.
! 	(__csrrd_d): Likewise.
! 	(__csrwr_d): Likewise.
! 	(__csrxchg_d): Likewise.
! 	(__iocsrrd_b): Likewise.
! 	(__iocsrrd_h): Likewise.
! 	(__iocsrrd_w): Likewise.
! 	(__iocsrrd_d): Likewise.
! 	(__iocsrwr_b): Likewise.
! 	(__iocsrwr_h): Likewise.
! 	(__iocsrwr_w): Likewise.
! 	(__iocsrwr_d): Likewise.
! 	(__frecipe_s): Likewise.
! 	(__frecipe_d): Likewise.
! 	(__frsqrte_s): Likewise.
! 	(__frsqrte_d): Likewise.
  
! 2024-02-18  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/larchintrin.h (__iocsrrd_h): Modify the
! 	function return value type to unsigned short.
  
! 2024-02-16  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* doc/sourcebuild.texi: add scan-assembler-bound
! 
! 2024-02-16  Jason Merrill  <jason@redhat.com>
! 
! 	* gdbhooks.py: Fix regex syntax.
! 
! 2024-02-16  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113895
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
! 	consistency checking when there are out-of-bound array
! 	accesses.  Allow -1 off when from an array reference with
! 	constant index.
! 
! 2024-02-16  Kito Cheng  <kito.cheng@sifive.com>
! 
! 	PR target/106543
! 	* config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
  	pattern.
  
! 2024-02-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* doc/sourcebuild.texi (Effective-Target Keywords, Other
! 	attribugs): Document linker_plugin.
! 	(Require Support): Document dg-require-linker-plugin.
  
! 2024-02-16  Kito Cheng  <kito.cheng@sifive.com>
  
! 	PR target/109349
! 	* common/config/riscv/riscv-common.cc (riscv_arch_help): New.
! 	* config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
! 	(RISCV_MINOR_VERSION_BASE): Ditto.
! 	(RISCV_REVISION_VERSION_BASE): Ditto.
! 	* config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
! 	rather than magic number.
! 	* config/riscv/riscv.h (riscv_arch_help): New.
! 	(EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
! 	(DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
! 	--print-supported-extensions.
! 	* config/riscv/riscv.opt (march=help): New.
! 	(print-supported-extensions): New.
! 	(-print-supported-extensions): New.
! 	* doc/invoke.texi (RISC-V Options): Document -march=help.
  
! 2024-02-16  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	PR target/113780
! 	* config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
! 	for indirect calls with 4 or more arguments in pac-enabled functions.
  
! 2024-02-15  David Faust  <david.faust@oracle.com>
  
! 	* config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
! 	use ldxb instead of ldxh.
  
! 2024-02-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113921
! 	* cfgrtl.h (prepend_insn_to_edge): New declaration.
! 	* cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
! 	comment.
! 	(prepend_insn_to_edge): New function.
! 	* cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
! 	insert_insn_on_edge.
  
! 2024-02-15  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/111156
! 	* tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
! 	at the pattern stmt if any.
  
! 2024-02-15  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/113927
! 	* config/avr/avr.h (AVR_HAVE_ADIW): New macro.
! 	* config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
! 	* config/avr/avr.cc (avr_adiw_reg_p): New function.
! 	(avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
! 	Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
! 	* config/avr/avr.md: Same.
! 	(attr "isa") <tiny, no_tiny>: Remove.
! 	<adiw, no_adiw>: Add.
! 	(define_insn, define_insn_and_split): When an alternative has
! 	constraint "w", then set attribute "isa" to "adiw".
! 	* config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
! 	Built-in define __AVR_HAVE_ADIW__.
! 	* doc/invoke.texi (AVR Options): Document it.
  
! 2024-02-15  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn-valu.md
! 	(vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
! 	* config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
! 	details are supported on RDNA devices.
  
! 2024-02-15  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/113508
! 	* doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
! 	usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
! 	smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
! 	Add sentence about what the mode m is.
  
! 2024-02-15  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	* doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
! 	smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
! 	var.
  
! 2024-02-15  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
! 	stmts.
  
! 2024-02-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113567
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
! 	_BitInt multiplication, division or modulo with
! 	SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
! 	force the affected inputs into a new SSA_NAME.
  
! 2024-02-14  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113871
! 	* config/i386/mmx.md (V248FI): New mode iterator.
! 	(V24FI_32): DItto.
! 	(vec_shl_<V248FI:mode>): New expander.
! 	(vec_shl_<V24FI_32:mode>): Ditto.
! 	(vec_shr_<V248FI:mode>): Ditto.
! 	(vec_shr_<V24FI_32:mode>): Ditto.
! 	* config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
! 	(vec_shr_<V248FI:mode>): Ditto.
  
! 2024-02-14  Jan Hubicka  <jh@suse.cz>
  
! 	PR tree-optimization/111054
! 	* tree-ssa-loop-split.cc (split_loop): Check for profile being present.
  
! 2024-02-14  Tamar Christina  <tamar.christina@arm.com>
  
! 	* tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
  
! 2024-02-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113910
! 	* bitmap.cc (bitmap_hash): Mix the full element "hash" to
! 	the hashval_t hash.
  
! 2024-02-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	* pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
! 	(pp_integer_with_precision): For unsigned ptrdiff_t printing
! 	with u, o or x print ptrdiff_t argument converted to
! 	unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
  
! 2024-02-14  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/113576
! 	* expr.cc (do_store_flag): For vector bool compares of vectors
! 	with padding zero that.
! 	* dojump.cc (do_compare_and_jump): Likewise.
  
! 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/install.texi (Prerequisites): Update gettext link.
  
! 2024-02-13  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113876
! 	* config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
! 	Return false if the incoming stack isn't 16-byte aligned.
  
! 2024-02-13  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR middle-end/113904
! 	* omp-general.cc (struct omp_ts_info): Update for splitting of
! 	OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
! 	* omp-selectors.h (enum omp_tp_type): Replace
! 	OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
  
! 2024-02-13  Monk Chiang  <monk.chiang@sifive.com>
  
! 	PR target/113742
! 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
! 	recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
  
! 2024-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113895
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
! 	offset to discover constant array indices in bits, handle
! 	COMPONENT_REF to bitfields.
  
! 2024-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113831
! 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
! 	typo in comment.
  
! 2024-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113902
! 	* tree-vect-loop.cc (move_early_exit_stmts): Track
! 	last_seen_vuse for VUSE updating.
  
! 2024-02-13  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113734
! 	* tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
! 	an early break loop as partial.
  
! 2024-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113898
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
! 	missing accumulated off adjustment.
  
! 2024-02-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	* hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
! 	instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
! 	it against UINT_MAX and ULONG_MAX.
  
! 2024-02-13  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostic-core.h (emit_diagnostic_valist): Rename overload
! 	to...
! 	(emit_diagnostic_valist_meta): ...this.
! 	* diagnostic.cc (emit_diagnostic_valist): Likewise, to...
! 	(emit_diagnostic_valist_meta): ...this.
  
! 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113849
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
! 	fast path for widening casts where !m_upwards_2limb and lhs_type
! 	has precision which is a multiple of limb_prec.
  
! 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/113674
! 	* attribs.cc (extract_attribute_substring): Remove.
! 	(lookup_scoped_attribute_spec): Don't call it.
  
! 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
! 	and cast to fmt_size_t instead of %lu and cast to unsigned long.
  
! 2024-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	* Makefile.in: Add no-info dependency.
! 	* configure.ac: Set BUILD_INFO=no-info if makeinfo is not
! 	available.
! 	* configure: Regenerate.
! 
! 2024-02-12  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	PR target/113855
! 	* config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
! 	available to all sub-targets.
! 	* config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
! 	* config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
! 
! 2024-02-12  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113831
! 	PR tree-optimization/108355
! 	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
! 	we see variable array indices and get_ref_base_and_extent
! 	can resolve those to constants fix up the ops to constants
! 	as well.
! 	(ao_ref_init_from_vn_reference): Use 'off' member for
! 	ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
! 	(valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
! 
! 2024-02-12  Pan Li  <pan2.li@intel.com>
! 
! 	* config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
! 	Replace args to arguments for misspelled term.
! 
! 2024-02-12  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/112944
! 	* config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
! 	<*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
! 	when not linked with -mrodata-in-ram.
! 
! 2024-02-12  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113863
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	Record crossed virtual PHIs.
! 	* tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
! 	virtual PHIs.
! 
! 2024-02-10  Marek Polacek  <polacek@redhat.com>
! 
! 	DR 2237
! 	PR c++/107126
! 	PR c++/97202
! 	* doc/invoke.texi: Document -Wtemplate-id-cdtor.
! 
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
! 	computation of idx for i == 4 of bitint_prec_huge.
! 
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/110754
! 	* gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
! 	decls create PARM_DECL with pointer to original type, set
! 	TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
! 	DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
! 	(adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
! 	wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
! 	(lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
! 	of the var as argument.
! 
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
! 	size_t and precision 4 for ptrdiff_t.  Formatting fix.
! 	(pp_format): Document %{t,z}{d,i,u,o,x}.  Implement t and z modifiers.
! 	Formatting fixes.
! 	(test_pp_format): Test t and z modifiers.
! 	* gcc.cc (read_specs): Use %td instead of %ld and casts to long.
! 
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
! 	sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
! 	and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
! 	* tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
! 	and casts to fmt_size_t instead of "%ld" and casts to long.
! 	(print_value_expr_statistics, print_type_hash_statistics): Likewise.
! 	* dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
! 	instead of "%lu" and casts to unsigned long.
! 	* gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
! 	unsigned long.
! 	* tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
! 	and casts to fmt_size_t instead of "%ld" and casts to long.
! 	* cfgexpand.cc (dump_stack_var_partition): Use
! 	HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
! 	and casts to unsigned long.
! 	* gengtype.cc (adjust_field_rtx_def): Likewise.
! 	* tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
! 	and casts to fmt_size_t instead of "%ld" and casts to long.
! 	* postreload-gcse.cc (dump_hash_table): Likewise.
! 	* ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
! 	and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
! 	(ggc_internal_alloc, ggc_free): Likewise.
! 	* genpreds.cc (write_lookup_constraint_1): Likewise.
! 	(write_insn_constraint_len): Likewise.
! 	* tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
! 	and casts to fmt_size_t instead of "%ld" and casts to long.
! 	* varasm.cc (output_constant_pool_contents): Use
! 	HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
! 	* var-tracking.cc (dump_var): Likewise.
! 
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113783
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
! 	through VIEW_CONVERT_EXPR for final cast checks.  Handle
! 	VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
! 	INTEGER_TYPEs.
! 	(gimple_lower_bitint): Don't merge mergeable operations or other
! 	casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
! 	* expr.cc (expand_expr_real_1): Don't use convert_modes if either
! 	mode is BLKmode.
! 
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
! 	HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
! 	HOST_SIZE_T_PRINT_HEX_PURE): Define.
! 	* ira-conflicts.cc (build_conflict_bit_table): Use it.  Formatting
! 	fixes.
! 
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113415
! 	* cfgexpand.cc (expand_asm_stmt): For asm goto, use
! 	duplicate_insn_chain to duplicate after_rtl_seq sequence instead
! 	of hand written loop with emit_insn of copy_insn and emit original
! 	after_rtl_seq on the last edge.
! 
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113818
! 	* gimple-lower-bitint.cc (add_eh_edge): New function.
! 	(bitint_large_huge::handle_load,
! 	bitint_large_huge::lower_mergeable_stmt,
! 	bitint_large_huge::lower_muldiv_stmt): Use it.
! 
! 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113774
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
! 	emit any comparison if m_first and low + 1 is equal to
! 	m_upwards_2limb, simplify condition for that.  If not
! 	single_comparison, not m_first and we can prove that the idx <= low
! 	comparison will be always true, emit instead of idx <= low
! 	comparison low <= low such that cfg cleanup will optimize it at
! 	the end of the pass.
! 
! 2024-02-08  Aldy Hernandez  <aldyh@redhat.com>
! 
! 	PR tree-optimization/113735
! 	* value-relation.cc (equiv_oracle::add_equiv_to_block): Call
! 	limit_check().
! 
! 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
! 	(main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
! 
! 2024-02-08  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/113711
! 	PR target/113733
! 	* config/i386/constraints.md: List all constraints with j prefix.
! 	(j>): Change auto-dec to auto-inc in documentation.
! 	(je): Changed to a memory constraint with APX NDD TLS operand
  	check.
! 	(jM): New memory constraint for APX NDD instructions.
! 	(jO): Likewise.
! 	* config/i386/i386-protos.h (x86_poff_operand_p): Removed.
! 	* config/i386/i386.cc (x86_poff_operand_p): Likewise.
! 	* config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
! 	(*add<mode>_1[SWI48]): Use je and jM.
! 	(addsi_1_zext): Use jM.
! 	(*addv<dwi>4_doubleword_1[DWI]): Likewise.
! 	(*sub<mode>_1[SWI]): Use jM.
! 	(@add<mode>3_cc_overflow_1[SWI]): Likewise.
! 	(*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
! 	(*and<dwi>3_doubleword): Likewise.
! 	(*anddi_1): Use jM.
! 	(*andsi_1_zext): Likewise.
! 	(*and<mode>_1[SWI24]): Likewise.
! 	(*<code><dwi>3_doubleword[any_or]): Use rjO
! 	(*code<mode>_1[any_or SWI248]): Use jM.
! 	(*<code>si_1_zext[zero_extend + any_or]): Likewise.
! 	* config/i386/predicates.md (apx_ndd_memory_operand): New.
! 	(apx_ndd_add_memory_operand): Likewise.
  
! 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/113824
! 	* config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
! 	* doc/avr-mmcu.texi: Rebuild.
  
! 2024-02-08  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113808
! 	* tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
! 	value cross iterations.
  
! 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
! 	defines __AVR_PM_BASE_ADDRESS__ if the core has it.
  
! 2024-02-08  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	Revert last change to dr_may_alias_p.
  
! 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
! 	cc1_rodata_in_ram.  Rename spec link_misc to link_rodata_in_ram.
! 	Remove spec asm_misc.
! 	* config/avr/specs.h: Same.
  
! 2024-02-08  Pan Li  <pan2.li@intel.com>
  
! 	PR target/113766
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
! 	sure the c.arg_num is >= 2 before checking.
! 	(struct build_frm_base): Ditto.
! 	(struct narrow_alu_def): Ditto.
  
! 2024-02-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113796
! 	* tree-if-conv.cc (combine_blocks): Wipe range-info before
! 	replacing PHIs and inserting predicates.
  
! 2024-02-07  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113690
! 	* config/i386/i386-features.cc (timode_convert_cst): New helper
! 	function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
! 	CONST_VECTOR.
! 	(timode_scalar_chain::convert_op): Use timode_convert_cst.
! 	(timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
! 	Use timode_convert_cst.
  
! 2024-02-07  Victor Do Nascimento  <victor.donascimento@arm.com>
  
! 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
! 	* config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
! 	(AARCH64_FL_DEBUGv8p9): Likewise.
! 	(AARCH64_FL_FGT2): Likewise.Likewise.
! 	(AARCH64_FL_ITE): Likewise.
! 	(AARCH64_FL_PFAR): Likewise.
! 	(AARCH64_FL_PMUv3_ICNTR): Likewise.
! 	(AARCH64_FL_PMUv3_SS): Likewise.
! 	(AARCH64_FL_PMUv3p9): Likewise.
! 	(AARCH64_FL_RASv2): Likewise.
! 	(AARCH64_FL_S1PIE): Likewise.
! 	(AARCH64_FL_S1POE): Likewise.
! 	(AARCH64_FL_S2PIE): Likewise.
! 	(AARCH64_FL_S2POE): Likewise.
! 	(AARCH64_FL_SCTLR2): Likewise.
! 	(AARCH64_FL_SEBEP): Likewise.
! 	(AARCH64_FL_SPE_FDS): Likewise.
! 	(AARCH64_FL_TCR2): Likewise.
  
! 2024-02-07  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	Only check whether reads are in-bound in places that are not safe.
! 	Fix dependence check.  Add missing newline.  Clarify comments.
  
! 2024-02-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113750
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
! 	for single predecessor when doing early break vect.
! 	* tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
! 	after labels.
  
! 2024-02-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113731
! 	* gimple-iterator.cc (gsi_move_before): Take new parameter for update
! 	method.
! 	* gimple-iterator.h (gsi_move_before): Default new param to
! 	GSI_SAME_STMT.
! 	* tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
! 	GSI_NEW_STMT.
  
! 2024-02-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113756
! 	* range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
! 	use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
! 	of lh_bits value and mask.
  
! 2024-02-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113753
! 	* wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
! 	UNSIGNED rather than SIGNED.  If high or needs_overflow and prec is
! 	not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
! 	so that they start with r[half_blocks_needed] lowest bit.  Fix up
! 	computation of top mask for SIGNED.
  
! 2024-02-07  Pan Li  <pan2.li@intel.com>
  
! 	PR target/113766
! 	* config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
! 	the signature of func.
! 	* config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
! 	overloaded func with empty args error.
  
! 2024-02-06  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113689
! 	* config/i386/i386.cc (x86_64_select_profile_regnum): Return
! 	R10_REG after sorry.
  
! 2024-02-06  Andrew Carlotti  <andrew.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
! 	Move before new caller, and add ".default" suffix.
! 	(get_suffixed_assembler_name): New.
! 	(make_resolver_func): Use get_suffixed_assembler_name.
! 	(aarch64_generate_version_dispatcher_body): Redo name mangling.
  
! 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/113763
! 	* config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
! 	element from std::pair<unsigned int, char> to an unnamed struct.
! 	Adjust uses of tile range variable.
  
! 2024-02-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
! 	(pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
  
! 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/110676
! 	* gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
! 	reset maxlen to sizetype maximum.
  
! 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113736
! 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
! 	var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
  
! 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113759
! 	* tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
! 	or from_unsignedN differs from properties of typeN, update typeN
! 	to build_nonstandard_integer_type.  If TREE_TYPE (rhsN) is not
! 	uselessly convertible to typeN, convert it using fold_convert or
! 	build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
! 	(convert_plusminus_to_widen): Likewise.
  
! 2024-02-06  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	PR target/112577
! 	* config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
! 	vector structure modes correctly.
  
! 2024-02-05  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/thead.cc (th_print_operand_address): Fix compiler
! 	warning.
  
! 2024-02-05  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/113689
! 	* config/i386/i386.cc (x86_64_select_profile_regnum): New.
! 	(x86_function_profiler): Call x86_64_select_profile_regnum to
! 	get a scratch register for large model profiling.
  
! 2024-02-05  Richard Ball  <richard.ball@arm.com>
  
! 	* config/arm/arm.cc (arm_output_mi_thunk): Emit
! 	insn for bti_c when bti is enabled.
  
! 2024-02-05  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
! 	neg.
  
! 2024-02-05  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
! 	(neg<mode>2): Change the mode iterator from MSA to IMSA because
! 	in FP arithmetic we cannot use (0 - x) for -x.
! 	(neg<mode>2): New define_insn to implement FP vector negation,
! 	using a bnegi instruction to negate the sign bit.
  
! 2024-02-05  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113707
! 	* tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
! 	checking the avail set treat out-of-region defines as
! 	available.
  
! 2024-02-05  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
! 	the default mode when building a pointer.
  
! 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113737
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
! 	has just a single label, remove it and make single successor edge
! 	EDGE_FALLTHRU.
  
! 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/113059
! 	* config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
! 	Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
! 	df_analyze call.
  
! 2024-02-05  Richard Biener  <rguenther@suse.de>
  
! 	PR target/113255
! 	* config/i386/i386-expand.cc
! 	(expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
! 	Use a new pseudo for the skipped number of bytes.
  
! 2024-02-05  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
! 	* doc/invoke.texi (RISC-V Options): Add sifive-p450,
! 	sifive-p670.
  
! 2024-02-05  Monk Chiang  <monk.chiang@sifive.com>
  
! 	* config/riscv/riscv.md: Include sifive-p400.md.
! 	* config/riscv/sifive-p400.md: New file.
! 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
! 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
! 	Add sifive_p400.
! 	* config/riscv/riscv.cc (sifive_p400_tune_info): New.
! 	* config/riscv/riscv.h (TARGET_SFB_ALU): Update.
! 	* doc/invoke.texi (RISC-V Options): Add sifive-p400-series
  
! 2024-02-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
! 
! 	* config/xtensa/xtensa.md (*eqne_zero_masked_bits):
! 	Add missing ":SI" to the match_operator.
! 
! 2024-02-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
! 
! 	* config/xtensa/xtensa.md (SHI): New mode iterator.
! 	(2 split patterns related to constsynth):
! 	Change to also accept HImode operands.
! 
! 2024-02-04  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	* config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
! 	similarly.
! 
! 2024-02-04  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
! 	incorrect expand.
! 	* config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
! 	(elmsgnbit): Likewise.
! 	(neg<mode:FVEC>2): New define_insn.
! 	* config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
! 	are now instantiated in simd.md.
! 
! 2024-02-04  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
! 	use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
! 	MAX_MACHINE_MODE.
! 
! 2024-02-04  Li Wei  <liwei@loongson.cn>
! 
! 	* config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
! 	(loongarch_expand_vselect_vconcat): Ditto.
! 	(loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
! 	all 128-bit constant permutation situations.
! 	(loongarch_expand_lsx_shuffle): Adjust and rename function name.
! 	(loongarch_is_imm_set_shuffle): Renamed function name.
! 	(loongarch_expand_vec_perm_even_odd): Function forward declaration.
! 	(loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
! 	extract-even and extract-odd permutations.
! 	(loongarch_is_odd_extraction): Delete.
! 	(loongarch_is_even_extraction): Ditto.
! 	(loongarch_expand_vec_perm_const): Adjust.
! 
! 2024-02-03  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113722
! 	* wide-int.cc (wi::bswap_large): Rename third argument from
! 	len to xlen and adjust use in safe_uhwi.  Add len variable, set
! 	it to BLOCKS_NEEDED (precision) and use it for clearing of val
! 	and as canonize argument.  Clear val using memset instead of
! 	a loop.
! 
! 2024-02-03  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* ggc-common.cc (gt_pch_save): Allow addr to be equal to
! 	mmi.preferred_base + mmi.size - sizeof (void *).
! 
! 2024-02-03  Xi Ruoyao  <xry111@xry111.site>
! 
! 	* config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
! 	* config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
! 	the ODR-violating locale declaration.
! 
! 2024-02-02  Tamar Christina  <tamar.christina@arm.com>
! 
! 	PR tree-optimization/113588
! 	PR tree-optimization/113467
! 	* tree-vect-data-refs.cc
! 	(vect_analyze_data_ref_dependence):  Choose correct dest and fix checks.
! 	(vect_analyze_early_break_dependences): Update comments.
! 
! 2024-02-02  John David Anglin  <danglin@gcc.gnu.org>
! 
! 	PR target/59778
! 	* config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
! 	and PA_BUILTIN_SET_FPSR builtins.
! 	* (pa_builtins_icode): Declare.
! 	* (def_builtin, pa_fpu_init_builtins): New.
! 	* (pa_init_builtins): Initialize FPU builtins.
! 	* (pa_builtin_decl, pa_expand_builtin_1): New.
! 	* (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
! 	PA_BUILTIN_SET_FPSR builtins.
! 	* (pa_atomic_assign_expand_fenv): New.
! 	* config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
! 	UNSPECV constants.
! 	(get_fpsr, put_fpsr): New expanders.
! 	(get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
! 	insn patterns.
! 
! 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113697
! 	* config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
! 
! 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* doc/extend.texi (Common Type Attributes): Fix typo in
! 	description of hardbool.
! 
! 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/113692
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
! 	from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
! 	final_cast_p.
! 
! 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113699
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
! 	uninitialized large/huge _BitInt SSA_NAME inputs.
! 
! 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113705
! 	* tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
! 	around wi::to_wide in order to compare value in prec precision.
! 
! 2024-02-02  Lehua Ding  <lehua.ding@rivai.ai>
  
  	Revert:
! 	2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
  
! 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
  
! 2024-02-02  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
! 	(riscv_pass_by_reference): Ditto.
! 	(riscv_fntype_abi): Ditto.
  
! 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
! 	(pre_vsetvl::cleaup): Remove vsetvl_pre.
! 	(pre_vsetvl::remove_vsetvl_pre_insns): New function.
  
! 2024-02-02  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/larchintrin.h
! 	(__frecipe_s): Update function return type.
! 	(__frecipe_d): Ditto.
! 	(__frsqrte_s): Ditto.
! 	(__frsqrte_d): Ditto.
  
! 2024-02-02  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
! 	(loongarch_vector_costs::add_stmt_cost): Adjust.
  
! 2024-02-02  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.md (unspec): Add
! 	UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
! 	(la_pcrel64_two_parts): New define_insn.
! 	* config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
! 	typo in the comment.
! 	(loongarch_call_tls_get_addr): If -mcmodel=extreme
! 	-mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
! 	addressing the TLS symbol and __tls_get_addr.  Emit an REG_EQUAL
! 	note to allow CSE addressing __tls_get_addr.
! 	(loongarch_legitimize_tls_address): If -mcmodel=extreme
! 	-mexplicit-relocs={always,auto}, address TLS IE symbols with
! 	la_pcrel64_two_parts.
! 	(loongarch_split_symbol): If -mcmodel=extreme
! 	-mexplicit-relocs={always,auto}, address symbols with
! 	la_pcrel64_two_parts.
! 	(loongarch_output_mi_thunk): Clean up unreachable code.  If
! 	-mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
! 	thunks with la_pcrel64_two_parts.
  
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
! 	Add support for call36.
  
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
! 	When the code model of the symbol is extreme and -mexplicit-relocs=auto,
! 	the macro instruction loading symbol address is not applicable.
! 	(loongarch_call_tls_get_addr): Adjust code.
! 	(loongarch_legitimize_tls_address): Likewise.
  
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
! 	Add function declaration.
! 	* config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
! 	For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
! 	is not allowed
! 	(loongarch_load_tls): Added macro support in extreme mode.
! 	(loongarch_call_tls_get_addr): Likewise.
! 	(loongarch_legitimize_tls_address): Likewise.
! 	(loongarch_force_address): Likewise.
! 	(loongarch_legitimize_move): Likewise.
! 	(loongarch_output_mi_thunk): Likewise.
! 	(loongarch_option_override_internal): Remove the code that detects
! 	explicit relocs status.
! 	(loongarch_handle_model_attribute): Likewise.
! 	* config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
! 	* config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
! 	(symbolic_off64_or_reg_operand): Likewise.
  
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_load_tls):
! 	Load all types of tls symbols through one function.
! 	(loongarch_got_load_tls_gd): Delete.
! 	(loongarch_got_load_tls_ld): Delete.
! 	(loongarch_got_load_tls_ie): Delete.
! 	(loongarch_got_load_tls_le): Delete.
! 	(loongarch_call_tls_get_addr): Modify the called function name.
! 	(loongarch_legitimize_tls_address): Likewise.
! 	* config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
! 	(@load_tls<mode>): New template.
! 	(@got_load_tls_ld<mode>): Delete.
! 	(@got_load_tls_le<mode>): Delete.
! 	(@got_load_tls_ie<mode>): Delete.
  
! 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
! 
! 	* config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
! 	(loongarch_legitimize_address): Add logical transformation code.
! 
! 2024-02-01  Marek Polacek  <polacek@redhat.com>
! 
! 	* doc/invoke.texi: Update -Wdangling-reference documentation.
! 
! 2024-02-01  Uros Bizjak  <ubizjak@gmail.com>
! 
! 	PR target/113701
! 	* config/i386/i386.md (*cmp<dwi>_doubleword):
! 	Do not force SUBREG pieces to pseudos.
! 
! 2024-02-01  John David Anglin  <danglin@gcc.gnu.org>
! 
! 	* config/pa/pa.md (atomic_storedi_1): Fix bug in
! 	alternative 1.
! 
! 2024-02-01  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.cc: Tabify.
! 
! 2024-02-01  Richard Ball  <richard.ball@arm.com>
! 
! 	PR tree-optimization/111268
! 	* tree-vect-slp.cc (vectorizable_slp_permutation_1):
! 	Add variable-length check for vector input arguments
! 	to a function.
! 
! 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
! 	hard-code number of SGPR/VGPR/AVGPR registers.
! 	* config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
! 	SGPR/VGPR/AVGPR registers.
! 
! 2024-02-01  Monk Chiang  <monk.chiang@sifive.com>
! 
! 	* config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
! 	attribute, and include sifive-p600.md.
! 	* config/riscv/generic-ooo.md: Update type attribute.
! 	* config/riscv/generic.md: Update type attribute.
! 	* config/riscv/sifive-7.md: Update type attribute.
! 	* config/riscv/sifive-p600.md: New file.
! 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
! 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
! 	Add sifive_p600.
! 	* config/riscv/riscv.cc (sifive_p600_tune_info): New.
! 	* config/riscv/riscv.h (TARGET_SFB_ALU): Update.
! 	* doc/invoke.texi (RISC-V Options): Add sifive-p600-series
! 
! 2024-02-01  Monk Chiang  <monk.chiang@sifive.com>
! 
! 	* common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
! 	Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
! 	* config/riscv/riscv.opt: New macro for 7 new unprivileged
! 	extensions.
! 	* doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
! 	Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
! 
! 2024-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	* config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
! 	-static-libasan.  Add missing whitespace.
! 
! 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
! 	(FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
! 	Don't 'define_constants'.
! 
! 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
! 
! 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
! 	[TARGET_RDNA3]: Adjust.
! 
! 2024-02-01  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/113693
! 	* tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
! 	data when available.
! 
! 2024-02-01  Jakub Jelinek  <jakub@redhat.com>
! 	    Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/113531
! 	* gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
! 	on variables which were promoted to TREE_STATIC.
! 
! 2024-02-01  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Richard Biener  <rguenther@suse.de>
! 
! 	PR target/113560
! 	* tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
! 	information via tree_non_zero_bits to check if this operand
! 	is suitably extended for a widening (or highpart) multiplication.
! 	(convert_mult_to_widen): Insert explicit casts if the RHS or LHS
! 	isn't already of the claimed type.
! 
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
  	Revert:
! 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
! 	(generic_ooo_branch): ditto
! 	* config/riscv/generic.md (generic_sfb_alu): ditto
! 	(generic_fmul_half): ditto
! 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
! 	* config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
! 	(sifive_7_popcount): ditto
! 	* config/riscv/vector.md: change rdfrm to fmove
! 	* config/riscv/zc.md: change pushpop to load/store
  
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	Revert:
! 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
! 		    Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
! 	(generic_ooo_vec_load): ditto
! 	(generic_ooo_vec_store): ditto
! 	(generic_ooo_vec_loadstore_seg): ditto
! 	(generic_ooo_vec_alu): ditto
! 	(generic_ooo_vec_fcmp): ditto
! 	(generic_ooo_vec_imul): ditto
! 	(generic_ooo_vec_fadd): ditto
! 	(generic_ooo_vec_fmul): ditto
! 	(generic_ooo_crypto): ditto
! 	(generic_ooo_perm): ditto
! 	(generic_ooo_vec_reduction): ditto
! 	(generic_ooo_vec_ordered_reduction): ditto
! 	(generic_ooo_vec_idiv): ditto
! 	(generic_ooo_vec_float_divsqrt): ditto
! 	(generic_ooo_vec_mask): ditto
! 	(generic_ooo_vec_vesetvl): ditto
! 	(generic_ooo_vec_setrm): ditto
! 	(generic_ooo_vec_readlen): ditto
! 	* config/riscv/riscv.md: include generic-vector-ooo
! 	* config/riscv/generic-vector-ooo.md: New file. to here
  
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	Revert:
! 	2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
  
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
  
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
! 	    Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo): Move reservation
! 	(generic_ooo_vec_load): ditto
! 	(generic_ooo_vec_store): ditto
! 	(generic_ooo_vec_loadstore_seg): ditto
! 	(generic_ooo_vec_alu): ditto
! 	(generic_ooo_vec_fcmp): ditto
! 	(generic_ooo_vec_imul): ditto
! 	(generic_ooo_vec_fadd): ditto
! 	(generic_ooo_vec_fmul): ditto
! 	(generic_ooo_crypto): ditto
! 	(generic_ooo_perm): ditto
! 	(generic_ooo_vec_reduction): ditto
! 	(generic_ooo_vec_ordered_reduction): ditto
! 	(generic_ooo_vec_idiv): ditto
! 	(generic_ooo_vec_float_divsqrt): ditto
! 	(generic_ooo_vec_mask): ditto
! 	(generic_ooo_vec_vesetvl): ditto
! 	(generic_ooo_vec_setrm): ditto
! 	(generic_ooo_vec_readlen): ditto
! 	* config/riscv/riscv.md: include generic-vector-ooo
! 	* config/riscv/generic-vector-ooo.md: New file. to here
  
! 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
  
! 	* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
! 	(generic_ooo_branch): ditto
! 	* config/riscv/generic.md (generic_sfb_alu): ditto
! 	(generic_fmul_half): ditto
! 	* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
! 	* config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
! 	(sifive_7_popcount): ditto
! 	* config/riscv/vector.md: change rdfrm to fmove
! 	* config/riscv/zc.md: change pushpop to load/store
  
! 2024-02-01  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/113657
! 	* config/aarch64/aarch64-simd.md (split for movv8di):
! 	For strict aligned mode, use DImode instead of TImode.
  
! 2024-01-31  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR middle-end/113607
! 	* match.pd: Make sure else values match when folding a
! 	vec_cond into a conditional operation.
  
! 2024-01-31  Marek Polacek  <polacek@redhat.com>
  
! 	* doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
  
! 2024-01-31  Tamar Christina  <tamar.christina@arm.com>
! 	    Matthew Malcomson  <matthew.malcomson@arm.com>
  
! 	PR sanitizer/112644
! 	* asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
! 	memcmp.
! 	* builtins.cc (expand_builtin): Include HWASAN when checking for
! 	builtin inlining.
  
! 2024-01-31  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/110176
! 	* match.pd (zext (bool) <= (int) 4294967295u): Make sure
! 	to match INTEGER_CST only without outstanding conversion.
  
! 2024-01-31  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/111677
! 	* config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
! 	V16QImode for the full 16-byte FPR saves in the vector PCS case.
  
! 2024-01-31  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/111444
! 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
! 	vn_reference_lookup_2 when optimistically skipping may-defs.
  
! 2024-01-31  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113630
! 	* tree-ssa-pre.cc (compute_avail): Avoid registering a
! 	reference with a representation with not matching base
! 	access size.
  
! 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/113656
! 	* simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
! 	<case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
  
! 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/113637
! 	* dwarf2out.cc (loc_list_from_tree_1): Assume integral types
! 	with BLKmode are larger than DWARF2_ADDR_SIZE.
  
! 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113639
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
! 	For VIEW_CONVERT_EXPR set rhs1 to its operand.
  
! 2024-01-31  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113670
! 	* tree-vect-data-refs.cc (vect_check_gather_scatter):
! 	Make sure we can take the address of the reference base.
  
! 2024-01-31  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
! 	ATA5835, ATtiny64AUTO, ATA5700M322.
! 	* doc/avr-mmcu.texi: Rebuild.
  
! 2024-01-31  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR debug/113394
! 	* ipa-strub.cc (build_ref_type_for): Drop nonaliased.  Adjust
! 	caller.
  
! 2024-01-31  Alexandre Oliva  <oliva@adacore.com>
  
! 	PR middle-end/112917
! 	PR middle-end/113100
! 	* builtins.cc (expand_builtin_stack_address): Use
! 	STACK_ADDRESS_OFFSET.
! 	* doc/extend.texi (__builtin_stack_address): Adjust.
! 	* config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
! 	* doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
! 	* doc/tm.texi: Rebuilt.
  
! 2024-01-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113495
! 	* config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
! 	(pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
! 	(pre_vsetvl::compute_transparent): New function.
! 	(pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
  
! 2024-01-30  Fangrui Song  <maskray@google.com>
  
! 	PR target/105576
! 	* config/i386/constraints.md: Define constraint "Ws".
! 	* doc/md.texi: Document it.
  
! 2024-01-30  Marek Polacek  <polacek@redhat.com>
  
! 	PR c++/110358
! 	PR c++/109640
! 	* doc/invoke.texi: Update -Wdangling-reference description.
  
! 2024-01-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/constraints.md (R, T, U):
! 	Change define_constraint to define_memory_constraint.
! 	* config/xtensa/predicates.md (move_operand): Don't check that a
! 	constant pool operand size is a multiple of UNITS_PER_WORD.
! 	* config/xtensa/xtensa.cc
! 	(xtensa_lra_p, TARGET_LRA_P): Remove.
! 	(xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
! 	clause as it can no longer be true.
! 	(fixup_subreg_mem): Drop function.
! 	(xtensa_output_integer_literal_parts): Consider 16-bit wide
! 	constants.
! 	(xtensa_legitimate_constant_p): Add short-circuit path for
! 	integer load instructions. Don't check that mode size is
! 	at least UNITS_PER_WORD.
! 	* config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
! 	rather reload_in_progress and reload_completed.
! 	(doloop_end): Drop operand 2.
! 	(movhi_internal): Add alternative loading constant from a
! 	literal pool.
! 	(define_split for DI register_operand): Don't limit to
! 	!TARGET_AUTO_LITPOOLS.
! 	* config/xtensa/xtensa.opt (mlra): Change to no effect.
  
! 2024-01-30  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
! 	calculate the gpr count required by vls mode.
! 	(riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
! 	(riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
! 	for vls mode.
! 	(riscv_get_arg_info): Add vls mode handling.
! 	(riscv_pass_by_reference): Return false if arg info has no zero gpr count.
  
! 2024-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113659
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Handle main exit without virtual use.
  
! 2024-01-30  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
  
! 2024-01-30  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR libgcc/113403
! 	* config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
! 	(REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
! 	* config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
! 	* config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
! 	* config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
! 	* config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
  
! 2024-01-30  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113623
! 	* config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
! 	Mark all registers that occur in addresses as needing a GPR.
  
! 2024-01-30  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113636
! 	* config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
! 	the containing insn as an extra parameter.  Reset debug instructions
! 	if they reference a register that is no longer used by real insns.
! 	(early_ra::apply_allocation): Update calls accordingly.
  
! 2024-01-30  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113603
! 	* tree-ssa-strlen.cc (strlen_pass::handle_store): After
! 	count_nonzero_bytes call refetch si using get_strinfo in case it
! 	has been unshared in the meantime.
  
! 2024-01-30  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/101195
! 	* except.cc (expand_builtin_eh_return_data_regno): If which doesn't
! 	fit into unsigned HOST_WIDE_INT, return constm1_rtx.
  
! 2024-01-30  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/thead.cc (th_print_operand_address): Change %ld
! 	to %lld.
  
! 2024-01-29  Manos Anagnostakis  <manos.anagnostakis@vrull.eu>
! 	    Manolis Tsamis  <manolis.tsamis@vrull.eu>
! 	    Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	* config/aarch64/aarch64-ldpstp.md: Remove unused mode.
! 	* config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
! 	Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
! 	Call on framework moved later.
  
! 2024-01-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
  
! 	* config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
! 	instruction in naked function epilogues.
  
! 2024-01-29  YunQiang Su  <syq@gcc.gnu.org>
  
! 	PR target/113655
! 	* configure.ac: Fix typo gcc_cv_as_mips_explicit should be
! 	gcc_cv_as_mips_explicit_relocs.
! 	* configure: Regnerated.
  
! 2024-01-29  Matthieu Longo  <matthieu.longo@arm.com>
  
! 	PR target/108933
! 	* config/arm/arm.md (arm_rev16si2): Convert to define_insn.
! 	Correct generated RTL.
! 	(arm_rev16si2_alt1): Correctly handle conditional execution.
! 	(arm_rev16si2_alt2): Likewise.
  
! 2024-01-29  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/113622
! 	* expr.cc (expand_assignment): Spill hard registers if
! 	we index them with a variable offset.
  
! 2024-01-29  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/113622
! 	* gimple-isel.cc (gimple_expand_vec_set_extract_expr):
! 	Also allow DECL_HARD_REGISTER variables.
  
! 2024-01-29  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113616
! 	* config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
! 	Use iterate_safely when iterating over debug uses.
! 	(fixup_debug_uses): Likewise.
! 	(ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
! 	over nondebug insns instead of manually maintaining the next insn.
! 	* iterator-utils.h (class safe_iterator): New.
! 	(iterate_safely): New.
  
! 2024-01-29  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/38534
! 	* config/i386/i386-options.cc (ix86_set_func_type): Save
! 	callee-saved registers in noreturn functions for -O0/-Og.
  
! 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR target/113615
! 	* config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
! 	define for !TARGET_RDNA2_PLUS.
  
! 2024-01-29  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113281
! 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
! 	workaround for right shifts.
! 	(vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
! 	(vect_determine_precisions_from_range): Be more selective about
! 	which codes can be narrowed based on their input and output ranges.
! 	For shifts, require at least one more bit of precision than the
! 	maximum shift amount.
  
! 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
  
! 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
! 	but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
! 	LLVM 13.0.1+.
  
! 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR other/111966
! 	* config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
! 	(SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
! 	(SET_SRAM_ECC_UNSET): ... this.
! 	(copy_early_debug_info): Remove gfx900 special case, now handled as
! 	part of the generic handling.
! 	(main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
  
! 2024-01-29  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/110603
! 	* tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
! 	setting of pdata->maxlen to vr.upper_bound (which is unconditionally
! 	overwritten anyway).  Avoid creating invalid range with minlen
! 	larger than maxlen.  Formatting fix.
  
! 2024-01-29  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/103047
! 	* tree-inline.cc (initialize_inlined_parameters): Reverse
! 	the decl chain of inlined parameters.
  
! 2024-01-28  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
! 	alignment of CFString constants by setting DECL_USER_ALIGN.
  
! 2024-01-28  Iain Sandoe  <iain@sandoe.co.uk>
! 	    Jakub Jelinek   <jakub@redhat.com>
  
! 	PR libgcc/113402
! 	* builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
! 	and BUILT_IN_GCC_NESTED_PTR_DELETED.
! 	* builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
! 	BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
! 	rename the library fallbacks to __gcc_nested_func_ptr_created and
! 	__gcc_nested_func_ptr_deleted.
! 	* doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
! 	and __gcc_nested_func_ptr_deleted.
! 	* tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
! 	BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
! 	* tree.cc (build_common_builtin_nodes): Build the
! 	BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
! 	builtins only for non-explicit.
  
! 2024-01-28  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
  
! 2024-01-27  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/38534
! 	* config/i386/i386-options.cc (ix86_set_func_type): Don't
! 	save and restore callee saved registers for a noreturn function
! 	with nothrow or compiled with -fno-exceptions.
  
! 2024-01-27  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/103503
! 	PR target/113312
! 	* config/i386/i386-expand.cc (ix86_expand_call): Replace
! 	no_caller_saved_registers check with call_saved_registers check.
! 	Clobber all registers that are not used by the callee with
! 	no_callee_saved_registers attribute.
! 	* config/i386/i386-options.cc (ix86_set_func_type): Set
! 	call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
! 	noreturn function.  Disallow no_callee_saved_registers with
! 	interrupt or no_caller_saved_registers attributes together.
! 	(ix86_set_current_function): Replace no_caller_saved_registers
! 	check with call_saved_registers check.
! 	(ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
! 	(ix86_handle_call_saved_registers_attribute): This.
! 	(ix86_gnu_attributes): Add
! 	ix86_handle_call_saved_registers_attribute.
! 	* config/i386/i386.cc (ix86_conditional_register_usage): Replace
! 	no_caller_saved_registers check with call_saved_registers check.
! 	(ix86_function_ok_for_sibcall): Don't allow callee with
! 	no_callee_saved_registers attribute when the calling function
! 	has callee-saved registers.
! 	(ix86_comp_type_attributes): Also check
! 	no_callee_saved_registers.
! 	(ix86_epilogue_uses): Replace no_caller_saved_registers check
! 	with call_saved_registers check.
! 	(ix86_hard_regno_scratch_ok): Likewise.
! 	(ix86_save_reg): Replace no_caller_saved_registers check with
! 	call_saved_registers check.  Don't save any registers for
! 	TYPE_NO_CALLEE_SAVED_REGISTERS.  Save all registers with
! 	TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
! 	no_callee_saved_registers attribute is called.
! 	(find_drap_reg): Replace no_caller_saved_registers check with
! 	call_saved_registers check.
! 	* config/i386/i386.h (call_saved_registers_type): New enum.
! 	(machine_function): Replace no_caller_saved_registers with
! 	call_saved_registers.
! 	* doc/extend.texi: Document no_callee_saved_registers attribute.
  
! 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113614
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
! 	widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
! 	TRUNC_MOD_EXPR or FLOAT_EXPR uses.
  
! 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113568
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
! 	For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
! 	in the widening extension checks.
  
! 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): For
! 	TDF_DETAILS dump mapping of SSA_NAMEs to decls.
  
! 2024-01-26  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* cgraphunit.cc (process_function_and_variable_attributes): Tweak
! 	the warning for an attribute-always_inline without inline declaration.
  
! 2024-01-26  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR other/113575
! 	* genopinit.cc (main): Split init_all_optabs into functions
! 	of 1000 patterns each.
  
! 2024-01-26  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
! 	TM_MULTILIB_CONFIG.
! 	* doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
! 	* doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
! 	-march/-mtune.
  
! 2024-01-26  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
! 	* config/gcn/gcn-valu.md (all_convert): New iterator.
! 	(<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
! 	define_expand, and rename the old one to ...
! 	(*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
! 	(extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
! 	(extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
! 	(*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
! 	* config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
! 	(gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
! 	* config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
! 	(<u>mulqihi3_scalar): Likewise.
  
! 2024-01-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113602
! 	* tree-data-ref.cc (dr_analyze_innermost): Fail when
! 	the base object isn't addressable.
  
! 2024-01-26  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
! 	"--amdhsa-code-object-version=" argument.
! 	(ASM_SPEC): Use it; replace previous version of it.
  
! 2024-01-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
! 	(pre_vsetvl::emit_vsetvl): Ditto.
  
! 2024-01-26  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/lasx.md (vec_extract<mode>_0):
! 	New define_insn_and_split patten.
  
! 2024-01-26  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
  
! 2024-01-26  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
  
! 2024-01-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113469
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
  
! 2024-01-26  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/100212
! 	* config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
! 	undefined shift after the call to exact_log2.
  
! 2024-01-25  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/100204
! 	* config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
! 	before taking the negative of it.
  
! 2024-01-25  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/113526
! 	* lra-constraints.cc (curr_insn_transform): Change class even for
! 	spilled pseudo successfully matched with with NO_REGS.
  
! 2024-01-25  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/113601
! 	* config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
  
! 2024-01-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
  
! 	PR target/112987
! 	* config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
! 	(aarch64_expand_epilogue): Use the new function.
! 	(aarch64_split_compare_and_swap): Likewise.
! 	(aarch64_split_atomic_op): Likewise.
  
! 2024-01-25  Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	PR middle-end/112971
! 	* fold-const.cc (simplify_const_binop): New function for binop
! 	simplification of two constant vectors when element-wise
! 	handling is not necessary.
! 	(const_binop): Call new function.
! 
! 2024-01-25  Mary Bennett  <mary.bennett@embecosm.com>
! 
! 	* common/config/riscv/riscv-common.cc: Add XCVbitmanip.
! 	* config/riscv/constraints.md: Likewise.
! 	* config/riscv/corev.def: Likewise.
! 	* config/riscv/corev.md: Likewise.
! 	* config/riscv/predicates.md: Likewise.
! 	* config/riscv/riscv-builtins.cc (AVAIL): Likewise.
! 	* config/riscv/riscv-ftypes.def: Likewise.
! 	* config/riscv/riscv.opt: Likewise.
! 	* config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
! 	* doc/extend.texi: Add XCVbitmanip builtin documentation.
! 	* doc/sourcebuild.texi: Likewise.
! 
! 2024-01-25  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
! 
! 2024-01-25  Yanzhang Wang  <yanzhang.wang@intel.com>
! 
! 	PR target/113538
! 	* config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
! 	(riscv_fntype_abi): Ditto.
! 	* config/riscv/riscv.opt: Ditto.
! 
! 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/113574
! 	* convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
! 	count against TYPE_PRECISION rather than TYPE_SIZE.
! 
! 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113572
! 	* config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
! 	Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
! 
! 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113550
! 	* config/aarch64/aarch64-simd.md: In the movv8di splitter, check
! 	whether each split instruction is a load that clobbers the source
! 	address.  Emit that instruction last if so.
! 
! 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/113485
! 	* config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
  	pattern.
! 	(<optab><Vnarrowq><mode>2): Use it instead of generating a
! 	paradoxical subreg for the input.
  
! 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
! 	(pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
! 	predecessors dump information.
  
! 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
! 	redundant full available computation.
! 	(pre_vsetvl::pre_global_vsetvl_info): Ditto.
  
! 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
! 	* doc/rtl.texi (CONST_VECTOR): Likewise.
  
! 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
! 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
! 	(pass_vsetvl::execute): Ditto.
! 	* config/riscv/riscv.opt: Ditto.
  
! 2024-01-25  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
! 	* config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
  
! 2024-01-25  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113576
! 	* tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
! 	exits with may_be_zero niters when its the last one.
  
! 2024-01-25  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
! 	For symbols of type tls, non-zero Offset is not generated.
  
! 2024-01-25  Haochen Gui  <guihaoc@gcc.gnu.org>
  
! 	* config/rs6000/rs6000-string.cc (expand_block_compare): Enable
! 	P9 with m32 and mpowerpc64.
  
! 2024-01-25  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/i386-options.cc (ix86_option_override_internal):
! 	Enable -mlam=u57 by default when compiled with
! 	-fsanitize=hwaddress.
  
! 2024-01-25  Palmer Dabbelt  <palmer@rivosinc.com>
  
! 	* common/config/riscv/riscv-common.cc (riscv_implied_info):
! 	Remove {"ztso", "a"}.
  
! 2024-01-24  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/108007
! 	PR ipa/112616
! 	* cgraph.h (cgraph_edge): Add a parameter to
! 	redirect_call_stmt_to_callee.
! 	* ipa-param-manipulation.h (ipa_param_adjustments): Add a
! 	parameter to modify_call.
! 	(ipa_release_ssas_in_hash): Declare.
! 	* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
! 	parameter killed_ssas, pass it to padjs->modify_call.
! 	* ipa-param-manipulation.cc (purge_all_uses): New function.
! 	(ipa_param_adjustments::modify_call): New parameter killed_ssas.
! 	Instead of substituting uses, invoke purge_all_uses.  If
! 	hash of killed SSAs has not been provided, create a temporary one
! 	and release SSAs that have been added to it.
! 	(compare_ssa_versions): New function.
! 	(ipa_release_ssas_in_hash): Likewise.
! 	* tree-inline.cc (redirect_all_calls): Create
! 	id->killed_new_ssa_names earlier, pass it to edge redirection,
! 	adjust a comment.
! 	(copy_body): Release SSAs in id->killed_new_ssa_names.
  
! 2024-01-24  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/113486
! 	* config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
! 	TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
  
! 2024-01-24  Monk Chiang  <monk.chiang@sifive.com>
  
! 	PR target/113095
! 	* config/riscv/sfb.md: New splitters to rewrite single bit
! 	sign extension as the condition to SFB instructions.
  
! 2024-01-24  Jan Hubicka  <jh@suse.cz>
  
! 	PR middle-end/88345
! 	* common.opt: (flimit-function-alignment): Reorder alphabeticaly
! 	(fmin-function-alignment): New parameter.
! 	* doc/invoke.texi: (-fmin-function-alignment): Document.
! 	(-falign-functions,-falign-loops,-falign-labels): Mention that
! 	aglinments are ignored in cold code.
! 	* varasm.cc (assemble_start_function): Handle min-function-alignment.
  
! 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/109636
! 	* config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
! 	mulv2di3): Remove.
! 	* config/aarch64/iterators.md (VQDIV): Remove.
! 	(SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
! 	SVE_I_SIMD_DI): New.
! 	(VPRED, sve_lane_con): Add V4SI and V2DI.
! 	* config/aarch64/aarch64-sve.md (<optab><mode>3,
! 	@aarch64_pred_<optab><mode>): Support Advanced SIMD types.
! 	(mul<mode>3): New, split from <optab><mode>3.
! 	(@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
! 	* config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
! 	*aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
! 	SVE_FULL_HSDI_SIMD_DI.
  
! 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113552
! 	* config/aarch64/aarch64.cc
! 	(aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
  
! 2024-01-24  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/113490
! 	* ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
! 	count is equal or greater than the limit.  Use the limit from the
! 	callee.
  
! 2024-01-24  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* configure.ac: Detect the explicit relocs support for
! 	mips, and define C macro MIPS_EXPLICIT_RELOCS.
! 	* config.in: Regenerated.
! 	* configure: Regenerated.
! 	* doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
! 	* config/mips/mips-opts.h: Define enum mips_explicit_relocs.
! 	* config/mips/mips.cc(mips_set_compression_mode): Sorry if
! 	!TARGET_EXPLICIT_RELOCS instead of just set it.
! 	* config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
! 	TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
! 	* config/mips/mips.opt: Introduce -mexplicit-relocs= option
! 	and define -m(no-)explicit-relocs as aliases.
  
! 2024-01-24  Alex Coplan  <alex.coplan@arm.com>
  
! 	* config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
! 	to 1.
! 	(-mlate-ldp-fusion): Likewise.
  
! 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
  
! 	* tree-vect-loop.cc (vect_get_vect_def,
! 	vect_create_epilog_for_reduction): Rename main_exit_p to
! 	last_val_reduc_p.
  
! 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113364
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
! 	early exits then we must reduce from the first offset for all of them.
  
! 2024-01-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113495
! 	* config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
! 	(get_regno): Ditto.
! 	(get_bb_index): Ditto.
! 	(pre_vsetvl::compute_avl_def_data): Ditto.
! 	(pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
! 	(pre_vsetvl::pre_global_vsetvl_info): Ditto.
  
! 2024-01-23  Andrew Pinski  <quic_apinski@quicinc.com>
! 	    Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/100942
! 	* ccmp.cc (ccmp_candidate_p): Add outer argument.
! 	Allow if the outer is true and the lhs is used more
! 	than once.
! 	(expand_ccmp_expr): Update call to ccmp_candidate_p.
! 	* expr.h (expand_expr_real_gassign): Declare.
! 	* expr.cc (expand_expr_real_gassign): New function, split out from...
! 	(expand_expr_real_1): ...here.
! 	* cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113089
! 	* config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
! 	(fixup_debug_use): New.
! 	(fixup_debug_uses_trailing_add): New.
! 	(fixup_debug_uses): New. Use it ...
! 	(ldp_bb_info::fuse_pair): ... here.
! 	(try_promote_writeback): Call fixup_debug_uses_trailing_add to
! 	fix up debug uses of the base register that are affected by
! 	folding in the trailing add insn.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113089
! 	* config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
! 	Update trailing nondebug uses of the base register in the case
! 	of cancelling writeback.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113089
! 	* rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
! 	(debug_insn_use_iterator): New.
! 	(set_info::first_debug_insn_use): New.
! 	(set_info::debug_insn_uses): New.
! 	* rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
! 	(set_info::first_debug_insn_use): New.
! 	(set_info::debug_insn_uses): New.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113356
! 	* config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
! 	Don't record hazards against the opposite insn in the pair.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113070
! 	* config/aarch64/aarch64-ldp-fusion.cc
! 	(struct stp_change_builder): New.
! 	(decide_stp_strategy): Reanme to ...
! 	(try_repurpose_store): ... this.
! 	(ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
! 	construct stp changes.  Fix up uses when inserting new stp insns.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113070
! 	* rtl-ssa.h: Include hash-set.h.
! 	* rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
! 	new_sets parameter and use it to keep track of new user-created sets.
! 	(function_info::apply_changes_to_insn): Also call add_def on new sets.
! 	(function_info::change_insns): Add hash_set to keep track of new
! 	user-created defs.  Plumb it through.
! 	* rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
! 	apply_changes_to_insn.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113070
! 	* rtl-ssa/accesses.cc (function_info::create_use): New.
! 	* rtl-ssa/changes.cc (function_info::finalize_new_accesses):
! 	Ensure new uses end up referring to permanent defs.
! 	* rtl-ssa/functions.h (function_info::create_use): Declare.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113070
! 	* rtl-ssa/changes.cc (function_info::change_insns): Split out the call
! 	to finalize_new_accesses from the backwards placement loop, run it
! 	forwards in a separate loop.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113552
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
! 	floor_log2 instead of exact_log2 on the number of calls.
  
! 2024-01-23  Jeff Law  <jlaw@ventanamicro.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
! 	decl.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Separate single and multi-exit case when creating PHIs between
! 	the main and epilogue.
  
! 2024-01-23  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/112989
! 	* config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
! 	MODE_single variants of functions that don't take tuple arguments.
  
! 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113114
! 	* config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
! 	Don't assert recog success, just punt if the writeback pair
! 	isn't recognized.
  
! 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
! 	ATTRIBUTE_UNUSED to decl.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/107058
! 	* dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
! 	handle unexpected but bogus DIE contexts when not checking
! 	enabled.
  
! 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113462
! 	* fold-const.cc (native_interpret_int): Don't punt if total_bytes
! 	is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
! 	(fold_view_convert_expr): Use XALLOCAVEC buffers for types with
! 	sizes between 129 and 8192 bytes.
  
! 2024-01-23  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
! 	If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
! 	for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
! 	(loongarch_call_tls_get_addr): Do not split symbols of
! 	SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
! 	EXPLICIT_RELOCS_AUTO.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	* alias.cc (known_base_value_p): Remove.
! 	(find_base_value): Remove PLUS/MINUS handling
! 	when both operands are not CONST_INT_P.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/113255
! 	* alias.cc (find_base_term): Remove PLUS/MINUS handling
! 	when both operands are not CONST_INT_P.
  
! 2024-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/112718
! 	* dwarf2out.cc (dwarf2out_finish): Reset all type units
! 	for the fat part of an LTO compile.
  
! 2024-01-23  chenxiaolong  <chenxiaolong@loongson.cn>
  
! 	* doc/sourcebuild.texi: Add attributes for keywords.
  
! 2024-01-23  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c++/90463
! 	* doc/invoke.texi (Warning Options): Correct lists of options
! 	enabled by -Wall and -Wextra by checking against common.opt
! 	and c-family/c.opt.
  
! 2024-01-22  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/113030
! 	* config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
! 	instead of cpu_optaliases.
! 	(check_arch): Use arch_opt_alias instead of arch_optaliases.
  
! 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
! 	* config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
! 	* config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
  
! 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/109092
! 	* config/riscv/riscv.md: Use reg instead of subreg.
  
! 2024-01-22  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR other/111966
! 	* config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
! 	to match the compiler default.
! 	(simple_object_copy_lto_debug_sections): Never unlink the outfile
! 	on error as the caller does so.
! 	(maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
! 	(main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
  
! 2024-01-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113373
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Create LC PHIs in the exit blocks where necessary.
! 	* tree-vect-loop.cc (vectorizable_live_operation): Do not try
! 	to handle missing LC PHIs.
! 	(find_connected_edge): Remove.
! 	(vect_create_epilog_for_reduction): Cleanup use of auto_vec.
  
! 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
  
! 2024-01-22  xuli  <xuli1@eswincomputing.com>
  
! 	PR target/113420
! 	* config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
! 	(registered_function::overloaded_hash):refactor.
! 	(resolve_overloaded_builtin):avoid internal ICE.
  
! 2024-01-21  Mikael Pettersson  <mikpelinux@gmail.com>
  
! 	PR target/82420
! 	PR target/111279
! 	* calls.cc (emit_library_call_value_1): Pass valid TYPE
! 	to emit_push_insn.
! 	* expr.cc (emit_push_insn): Likewise.
  
! 2024-01-21  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Install
! 	correcction version of last change.
  
! 2024-01-21  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
! 	fix bugs in signature.
  
! 2024-01-21  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/111267
! 	* fwprop.cc (fwprop_propagation::profitabe_p): Rename
! 	profitable_p method to likely_profitable_p.
! 	(try_fwprop_subst_node): Update call to likely_profitable_p.
! 	Only bail-out early when !prop.likely_profitable_p for instructions
! 	that are not single sets.  When comparing costs, bail-out if the
! 	cost is unchanged and !prop.likely_profitable_p.
  
! 2024-01-21  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c++/90464
! 	* doc/invoke.texi (Warning Options): Document that -Wunused-parameter
! 	isn't enabled by -Wunused unless -Wextra is provided, and that
! 	-Wunused does enable -Wunused-const-variable=1 for C.  Clarify that
! 	-Wunused doesn't enable -Wunused-* options documented as behaving
! 	otherwise, and list them explicitly.
  
! 2024-01-21  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c/109708
! 	* doc/invoke.texi (Warning Options): Fix broken example and
! 	clean up/reorganize the others.  Also describe what the short-form
! 	options mean.
  
! 2024-01-20  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c/102998
! 	* doc/invoke.texi (Option Summary): Add -Warray-parameter.
! 	(Warning Options): Correct/edit discussion of -Warray-parameter
! 	to make the first example less confusing, and fill in missing info.
  
! 2024-01-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113462
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
! 	Handle rhs1 INTEGER_CST like SSA_NAME.
  
! 2024-01-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113491
! 	* tree-switch-conversion.cc (switch_conversion::build_constructors):
! 	If elt.index has precision higher than sizetype, fold_convert it to
! 	sizetype.
! 	(switch_conversion::array_value_type): Return type if type is
! 	BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
! 	(switch_conversion::build_arrays): Use unsigned_type_for rather than
! 	lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
! 	above MAX_FIXED_MODE_SIZE or with BLKmode.  If utype has precision
! 	higher than sizetype, use sizetype as tidx type and fold_convert the
! 	subtraction to sizetype.
  
! 2024-01-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
! 	(riscv_vector_mode_supported_any_target_p): Ditto.
  
! 2024-01-19  Mikael Pettersson  <mikpelinux@gmail.com>
  
! 	PR target/110934
! 	* config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
! 	(TARGET_ZERO_CALL_USED_REGS): Define.
  
! 2024-01-19  Mikael Pettersson  <mikpelinux@gmail.com>
  
! 	PR target/108640
! 	* config/m68k/m68k.cc (output_andsi3): Use QImode for
! 	address adjusted for 1-byte RMW access.
! 	(output_iorsi3): Likewise.
! 	(output_xorsi3): Likewise.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* doc/invoke.texi (RISC-V Options): Add list of supported
! 	extensions.
  
! 2024-01-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113495
! 	* config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
! 	(RVV_VUNDEF): Ditto.
! 	* config/riscv/riscv-vsetvl.cc: Add timevar.
  
! 2024-01-19  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/113488
! 	* lto-streamer-in.cc (lto_read_tree_1): When there isn't
! 	an early DIE but there should be, do not pretend there is.
  
! 2024-01-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113494
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Handle endless loop on exit.  Handle re-allocated PHI.
  
! 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113464
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
! 	optimize loads into GIMPLE_ASM stmts.
  
! 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113463
! 	* gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
! 	Only look through NOP_EXPRs if rhs1 doesn't have wider type than
! 	lhs.
  
! 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113459
! 	* tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
! 	TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
! 	of SCALAR_INT_TYPE_MODE if type has BLKmode.
! 	(vn_reference_lookup_3): Likewise.  Formatting fix.
  
! 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	* cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
! 	VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
! 	* expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
! 	but adjust_address also for BLKmode mode and MEM op0.
  
! 2024-01-19  Palmer Dabbelt  <palmer@rivosinc.com>
  
! 	* common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
! 	extensions.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* doc/invoke.texi (RISC-V Options): Document the syntax of -march.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_subset_list::parse_std_ext): Remove.
! 	(riscv_subset_list::parse_multiletter_ext): Remove.
! 	* config/riscv/riscv-subset.h
! 	(riscv_subset_list::parse_std_ext): Remove.
! 	(riscv_subset_list::parse_multiletter_ext): Remove.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_subset_list::parse_single_std_ext): New parameter.
! 	(riscv_subset_list::parse_single_multiletter_ext): Ditto.
! 	(riscv_subset_list::parse_single_ext): Ditto.
! 	(riscv_subset_list::parse): Relax the order for the input of ISA
! 	string.
! 	* config/riscv/riscv-subset.h
! 	(riscv_subset_list::parse_single_std_ext): New parameter.
! 	(riscv_subset_list::parse_single_multiletter_ext): Ditto.
! 	(riscv_subset_list::parse_single_ext): Ditto.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_subset_list::parse_base_ext): New.
! 	(riscv_subset_list::parse): Extract part of logic into
! 	riscv_subset_list::parse_base_ext.
! 	* config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
! 	New.
  
! 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv.cc (riscv_override_options_internal): Tweak
! 	sorry message.
  
! 2024-01-19  Kuan-Lin Chen  <rufus@andestech.com>
  
! 	* config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
! 	UNSPEC_CLMUL_VC.
  
! 2024-01-19  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c/110029
! 	* doc/extend.texi (Common Variable Attributes): Explain what
! 	happens when multiple variables with cleanups are in the same scope.
  
! 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR ipa/108470
! 	* doc/extend.texi (Common Function Attributes): Document that
! 	noinline also disables some interprocedural optimizations and
! 	improve flow to the part about using inline asm instead to
! 	disable calls from being optimized away completely.  Remove the
! 	sentence that says noipa is mainly for internal compiler testing.
  
! 2024-01-18  John David Anglin  <danglin@gcc.gnu.org>
  
! 	PR tree-optimization/69807
! 	* config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
  
! 2024-01-18  Brian Inglis  <Brian.Inglis@Shaw.ca>
  
! 	PR target/108521
! 	* doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
! 	from x86 Windows Options.
  
! 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c/107942
! 	* doc/extend.texi (C Extensions): Add new section to menu.
! 	(Function Attributes):  Move dangling index entries to....
! 	(Const and Volatile Functions): New section.
  
! 2024-01-18  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR middle-end/112684
! 	* toplev.cc (toplev::main): Don't ICE in
! 	-fdiagnostics-generate-patch when exiting after options,
! 	since no edit context will have been created.
  
! 2024-01-18  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
! 	operands vector.
  
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
! 	when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/thead.cc
! 	(th_asm_output_opcode): Rewrite some instructions.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv.md (none,thv,rvv): New attribute.
! 	(no,yes): Add an attribute to disable alternative
! 	for xtheadvector or RVV1.0.
! 	* config/riscv/vector.md:
! 	Disable alternatives that destination register overlaps
! 	source register group for xtheadvector.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc
! 	(class th_loadstore_width): Define new builtin bases.
! 	(class th_extract): Define new builtin bases.
! 	(BASE): Define new builtin bases.
! 	* config/riscv/riscv-vector-builtins-bases.h:
! 	Define new builtin class.
  	* config/riscv/riscv-vector-builtins-shapes.cc
! 	(struct th_loadstore_width_def): Define new builtin shapes.
! 	(struct th_indexed_loadstore_width_def):
! 	Define new builtin shapes.
! 	(struct th_extract_def): Define new builtin shapes.
! 	(SHAPE): Define new builtin shapes.
! 	* config/riscv/riscv-vector-builtins-shapes.h:
! 	Define new builtin shapes.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
! 	Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
! 	* config/riscv/riscv-vector-builtins.h
! 	(enum required_ext): Add new XTheadVector member.
! 	(struct function_group_info): Likewise.
! 	* config/riscv/t-riscv:
! 	Add thead-vector-builtins-functions.def
! 	* config/riscv/thead-vector.md
! 	(@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
! 	(*pred_mov_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_store_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
! 	(@pred_th_extract<mode>): Likewise.
! 	(*pred_th_extract<mode>): Likewise.
! 	* config/riscv/thead-vector-builtins-functions.def: New file.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config.gcc:  Add files for XTheadVector intrinsics.
! 	* config/riscv/autovec.md: Guard XTheadVector.
! 	* config/riscv/predicates.md: Disable immediate vl
! 	for XTheadVector.
! 	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
! 	Add pragma for XTheadVector.
! 	* config/riscv/riscv-string.cc (riscv_expand_block_move):
! 	Guard XTheadVector.
! 	* config/riscv/riscv-v.cc (vls_mode_valid_p):
! 	Avoid autovec.
! 	* config/riscv/riscv-vector-builtins-bases.cc:
! 	Do not normalize vsetvl instructions for XTheadVector.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (check_type):
! 	New check type function.
! 	(build_one): Adjust for XTheadVector.
! 	* config/riscv/riscv-vector-switch.def (ENTRY):
! 	Disable fractional mode for the XTheadVector extension.
! 	(TUPLE_ENTRY): Likewise.
! 	* config/riscv/riscv.cc (riscv_v_adjust_bytesize):
! 	Guard XTheadVector.
! 	(riscv_preferred_simd_mode): Likewsie.
! 	(riscv_autovectorize_vector_modes): Likewise.
! 	(riscv_vector_mode_supported_any_target_p): Likewise.
! 	(TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
! 	* config/riscv/thead.cc (th_asm_output_opcode):
! 	Rewrite vsetvl instructions.
! 	* config/riscv/vector.md:
! 	Include thead-vector.md and change fractional LMUL
! 	into 1 for vbool.
! 	* config/riscv/riscv_th_vector.h: New file.
! 	* config/riscv/thead-vector.md: New file.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv-protos.h (riscv_asm_output_opcode):
! 	Add new function to add assembler insn code prefix/suffix.
! 	(th_asm_output_opcode):
! 	Add Thead function to add assembler insn code prefix/suffix.
! 	* config/riscv/riscv.cc (riscv_asm_output_opcode):
! 	Implement function to add assembler insn code prefix/suffix.
! 	* config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
! 	Add new function to add assembler insn code prefix/suffix.
! 	* config/riscv/thead.cc (th_asm_output_opcode):
! 	Implement Thead function to add assembler insn code
! 	prefix/suffix.
  
! 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
! 	    Jin Ma  <jinma@linux.alibaba.com>
! 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
! 	    Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* common/config/riscv/riscv-common.cc
! 	(riscv_subset_list::parse): Add new vendor extension.
! 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
! 	Add test marco.
! 	* config/riscv/riscv.opt:  Add new mask.
  
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
! 	to be conditional on macosx-version-min.
  
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/darwin.cc (darwin_objc1_section): Use the correct
! 	meta-data version for constant strings.
! 	(machopic_select_section): Assert if we fail to handle CFString
! 	sections as Obejctive-C meta-data or drectly.
  
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
! 	OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
! 	OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
! 	versions when the object format is Mach-O.
  
! 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR target/105522
! 	* config/darwin.cc (machopic_select_section): Handle C and C++
! 	CFStrings.
! 	(darwin_rename_builtins): Move this out of the CFString code.
! 	(darwin_libc_has_function): Likewise.
! 	(darwin_build_constant_cfstring): Create an anonymous var to
! 	hold each CFString.
! 	* config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
! 	CFstrings.
  
! 2024-01-18  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
  
! 	PR bootstrap/113445
! 	* haifa-sched.cc (dep_list_size): Make global.
! 	* sched-deps.cc (find_inc): Use instead of sd_lists_size().
! 	* sched-int.h (dep_list_size): Declare.
  
! 2024-01-18  Martin Jambor  <mjambor@suse.cz>
  
! 	PR tree-optimization/110422
! 	* tree-sra.cc (scan_function): Disqualify bases of operands of asm
! 	gotos.
  
! 2024-01-18  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113475
! 	* gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
! 	* gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
! 	(phi_analyzer::~phi_analyzer): Deallocate and free collected
! 	phi_grous.
! 	(phi_analyzer::process_phi): Record allocated phi_groups.
  
! 2024-01-18  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-stmts.cc (vectorizable_store): Do not allocate
! 	storage for gvec_oprnds elements.
  
! 2024-01-18  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
! 	prefer all later exits we can handle.
! 	(vect_analyze_loop_form): Free the allocated loop body.
! 	Adjust comments.
  
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-log.cc: Tabify.
  
! 2024-01-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/autovec.md: Support vi variant.
  
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-devices.cc: Tabify.
  
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-c.cc: Tabify.
  
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/driver-avr.cc: Tabify.
  
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/gen-avr-mmcu-texi.cc: Tabify.
  
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/gen-avr-mmcu-specs.cc: Tabify.
  
! 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
! 	minline-strcmp, minline-strncmp, minline-strlen,
! 	-param=riscv-vector-abi): Remove Bool keywords.
  
! 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/113122
! 	* config/i386/i386.cc (x86_function_profiler): Add -masm=intel
! 	support.  Add missing space after , in emitted assembly in some
! 	cases.  Formatting fixes.
  
! 2024-01-18  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/loongarch.md (movsi_internal): Remove
! 	constraint z.
  
! 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
! 	in the diagnostic, and capitalize the device name.
! 	(print_mcu): Generate specs such that:
! 	<*check_rodata_in_ram>: New.
! 	<*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
! 	<*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
! 	<*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
  
! 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/113399
! 	* common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
! 	Common and Optimization.
  
! 2024-01-18  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113431
! 	* tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
! 	When there is an invariant load we might not preserve
! 	scalar order.
  
! 2024-01-18  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113374
! 	* tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
! 	* tree-vect-loop.cc (move_early_exit_stmts): Update
! 	virtual LC PHIs.
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Refactor.  Preserve virtual LC PHIs on all exits.
  
! 2024-01-18  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_split_symbol):
! 	Assign the '/u' attribute to the mem.
  
! 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR middle-end/110847
! 	* doc/invoke.texi (Option Summary): Document negative forms of
! 	-Wtsan and -Wxor-used-as-pow.
! 	(Warning Options): Likewise.
  
! 2024-01-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113429
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
  
! 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* doc/extend.texi (Common Function Attributes): Re-alphabetize
! 	the table.
! 	(Common Variable Attributes): Likewise.
! 	(Common Type Attributes): Likewise.
  
! 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR middle-end/111659
! 	* doc/extend.texi (Common Variable Attributes): Fix long lines
! 	in documentation of strict_flex_array + other minor copy-editing.
! 	Add a cross-reference to -Wstrict-flex-arrays.
! 	* doc/invoke.texi (Option Summary): Fix whitespace in tables
! 	before -fstrict-flex-arrays and -Wstrict-flex-arrays.
! 	(C Dialect Options): Combine the docs for the two
! 	-fstrict-flex-arrays forms into a single entry.  Note this option
! 	is for C/C++ only.  Add a cross-reference to -Wstrict-flex-arrays.
! 	(Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
! 	Minor copy-editing.  Add cross references to the strict_flex_array
! 	attribute and -fstrict-flex-arrays option.  Add note that this
! 	option depends on -ftree-vrp.
  
! 2024-01-17  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/113221
! 	* config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
! 	only allow REG operands instead of allowing all.
  
! 2024-01-17  Vineet Gupta  <vineetg@rivosinc.com>
  
! 	* config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
! 	Remove redundant checks in else condition for readablity.
! 	(earliest_fuse_vsetvl_info) Print iteration count in debug
! 	prints.
! 	(earliest_fuse_vsetvl_info) Fix misleading vsetvl info
! 	dump details in certain cases.
  
! 2024-01-17  Vineet Gupta  <vineetg@rivosinc.com>
  
! 	* config/riscv/riscv.opt: New -param=vsetvl-strategy.
! 	* config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
! 	* config/riscv/riscv-vsetvl.cc
! 	(pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
! 	(pass_vsetvl::execute): Use vsetvl_strategy.
  
! 2024-01-17  Jan Hubicka  <jh@suse.cz>
! 
! 	* ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
! 	accidental hack reseting offset.
! 
! 2024-01-17  Jan Hubicka  <jh@suse.cz>
! 
! 	* config/i386/i386-options.cc (ix86_option_override_internal): Fix
! 	handling of X86_TUNE_AVOID_512FMA_CHAINS.
! 
! 2024-01-17  Jan Hubicka  <jh@suse.cz>
  	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/110852
! 	* predict.cc (expr_expected_value_1): Fix profile merging of PHI and
! 	binary operations
! 	(get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
! 	PRED_COMBINED_VALUE_PREDICTIONS_PHI
! 	* predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
! 	(PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
  
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113421
! 	* gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
! 	comment.
! 	(bitint_dom_walker::before_dom_children): Add g temporary to simplify
! 	formatting.  Start at vop rather than cvop even if stmt is a store
! 	and needs_operand_addr.
  
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113410
! 	* gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
! 	If access_nelts is integral with larger precision than sizetype,
! 	fold_convert it to sizetype.
  
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113408
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
! 	VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
! 	to handle_cast.
  
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113406
! 	* ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
! 	regardless of whether is_gimple_reg_type (restype) or not.
  
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
! 	funcions -> functions, and use were instead of was.
! 	* gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
! 	and guaranteee -> guarantee.
! 	* attribs.h (struct attr_access): Fix comment typo funcion -> function.
  
! 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113409
! 	* omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
! 	INTEGER_TYPE.
! 	(omp_extract_for_data): Use build_bitint_type rather than
! 	build_nonstandard_integer_type if either iter_type or loop->v type
! 	is BITINT_TYPE.
! 	* omp-expand.cc (expand_omp_for_generic,
! 	expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
! 	BITINT_TYPE like INTEGER_TYPE.
  
! 2024-01-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113371
! 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
! 	Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
! 	not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
  
! 2024-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
  
! 	PR rtl-optimization/96388
! 	PR rtl-optimization/111554
! 	* sched-deps.cc (find_inc): Avoid exponential behavior.
  
! 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR c/111693
! 	* doc/invoke.texi (Option Summary): Move -Wuseless-cast
! 	from C++ Language Options to Warning Options.  Add entry for
! 	-Wuse-after-free.
! 	(C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
! 	from here....
! 	(Warning Options): ...to here.  Minor copy-editing to fix typo
! 	and grammar.
  
! 2024-01-17  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.cc (mips_compute_frame_info): If another
! 	register is used as global_pointer, mark $GP live false.
  
! 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	PR target/112973
! 	* doc/extend.texi (BPF Built-in Functions): Wrap long lines and
! 	give the section a light copy-editing pass.
  
! 2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
! 	* config/aarch64/aarch64-tune.md: Regenerated.
! 	* doc/invoke.texi (-mcpu): Add cobalt-100 core.
  
! 2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/112573
! 	* config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
! 	badly formed CONST expressions.
  
! 2024-01-16  Daniel Cederman  <cederman@gaisler.com>
  
! 	* config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
  
! 2024-01-16  Daniel Cederman  <cederman@gaisler.com>
  
! 	* config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
! 	* config/sparc/sync.md (membar_storeload): Turn into named insn
! 	and add GR712RC errata workaround.
! 	(membar_v8): Add GR712RC errata workaround.
  
! 2024-01-16  Andreas Larsson  <andreas@gaisler.com>
  
! 	* config/sparc/sync.md (*membar_storeload_leon3): Remove
! 	(*membar_storeload): Enable for LEON
  
! 2024-01-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113372
! 	PR middle-end/90348
! 	PR middle-end/110115
! 	PR middle-end/111422
! 	* cfgexpand.cc (add_scope_conflicts_2): New function.
! 	(add_scope_conflicts_1): Use it.
  
! 2024-01-16  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
! 	(avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
! 	* doc/avr-mmcu.texi: Regenerate.
  
! 2024-01-16  Feng Xue  <fxue@os.amperecomputing.com>
  
! 	PR tree-optimization/113091
! 	* tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
! 	(vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
! 	scalar use with new function.
! 	(vect_bb_slp_mark_live_stmts): New function as entry to existing
! 	overriden functions with same name.
! 	(vect_slp_analyze_operations): Call new entry function to mark
! 	live statements.
  
! 2024-01-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113404
! 	* config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
! 	for RVV in big-endian mode.
  
! 2024-01-16  Yanzhang Wang  <yanzhang.wang@intel.com>
  
! 	* config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
! 	(riscv_pass_in_vector_p): Delete.
! 	(riscv_init_cumulative_args): Delete the checking.
! 	(riscv_get_arg_info): Delete the checking.
! 	(riscv_function_value): Delete the checking.
! 	* config/riscv/riscv.h: Delete the member for checking.
  
! 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
  
! 2024-01-15  Liao Shihua  <shihua@iscas.ac.cn>
  
! 	* config.gcc: Include riscv_bitmanip.h.
! 	* config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
! 	* config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
! 	* config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
! 	(RISCV_BUILTIN_NO_PREFIX): New helper macro.
! 	* config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
! 	* config/riscv/riscv-ftypes.def (2): New ftypes.
! 	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
! 	(RISCV_BUILTIN_NO_PREFIX): Likewise.
! 	* config/riscv/riscv_bitmanip.h: New file.
  
! 2024-01-15  Liao Shihua  <shihua@iscas.ac.cn>
  
! 	* config.gcc: Include riscv_crypto.h.
! 	* config/riscv/riscv_crypto.h: New file.
  
! 2024-01-15  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR middle-end/113354
! 	* lra-constraints.cc (curr_insn_transform): Spill pseudo only used
! 	in the insn if the corresponding operand does not require hard
! 	register anymore.
  
! 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/107201
! 	* config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
! 	* config/avr/driver-avr.cc (avr_no_devlib): New function.
! 	(avr_devicespecs_file): Use it to remove -nodevicelib from the
! 	options for cores only.
! 	* config/avr/avr-arch.h (avr_get_parch): New prototype.
! 	* config/avr/avr-devices.cc (avr_get_parch): New function.
  
! 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113247
! 	* config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
! 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
! 	* config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
  
! 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113281
! 	* config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
! 	(costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
! 	* config/riscv/riscv-vector-costs.h: New function.
  
! 2024-01-15  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113385
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	First redirect, then split the exit edge.
  
! 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
! 	Remove m_num_vector_iterations.
! 	* config/riscv/riscv-vector-costs.h: Ditto.
  
! 2024-01-15  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/113156
! 	* config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
! 	(-mbranch-cost): Set "Optimization" flag.
  
! 2024-01-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113370
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
! 	set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
! 	set it to just prec % limb_prec.
  
! 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113393
! 	* config/riscv/vector.md: Fix ternary attributes.
  
! 2024-01-14  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/112944
! 	* configure.ac [target=avr]: Check availability of emulations
! 	avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
! 	HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
! 	* configure: Regenerate.
! 	* config.in: Regenerate.
! 	* doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
! 	__AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
! 	* config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
! 	* config/avr/avr-arch.h (enum avr_device_specific_features):
! 	Add AVR_ISA_FLMAP.
! 	* config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
! 	AVR_ISA_FLMAP.
! 	* config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
! 	(avr_set_core_architecture): Set avr_arch_index.
! 	(have_avrxmega2_flmap, have_avrxmega4_flmap)
! 	(have_avrxmega3_rodata_in_flash): Set new static const bool according
! 	to configure results.
! 	(avr_rodata_in_flash_p): New function using them.
! 	(avr_asm_init_sections): Let readonly_data_section->unnamed.callback
! 	track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
! 	(avr_asm_named_section): Track avr_has_rodata_p.
! 	(avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
! 	and not avr_rodata_in_flash_p ().
! 	* config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
! 	(LINK_SPEC): Add %(link_rodata_in_ram).
! 	(LINK_ARCH_SPEC): Remove.
! 	* config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
! 	(have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
! 	const bool according to configure results.
! 	(diagnose_mrodata_in_ram): New function.
! 	(print_mcu): Generate specs with the following changes:
! 	<*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
! 	need to extend avr/specs.h each time we add a new bell or whistle.
! 	<*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
! 	-m[no-]rodata-in-ram.
! 	<*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
! 	<*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
! 	<*cpp>: Add %(cpp_rodata_in_ram).
! 	<*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
! 	requested.
! 	<*self_spec>: Add -mflmap or %<mflmap as needed.
  
! 2024-01-14  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
! 	not the GPR iterator.  Adjust pattern name and mode attribute
! 	accordingly.
  
! 2024-01-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113361
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
! 	Fix up determination of the type for > limb_prec constants.
  
! 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
! 	Add web-link to the avr-gcc wiki.
  
! 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/extend.texi (AVR Variable Attributes) [address]: Remove
! 	documentation for a version without argument, which is not supported.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
! 	(vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
! 	(vld1_f16_x4, vld1_f32_x4): New.
! 	(vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
! 	(vld1_bf16_x4): New.
! 	(vld1q_types_x4): Updated to use vld1q_x4
! 	from arm_neon_builtins.def
! 	* config/arm/arm_neon_builtins.def
! 	(vld1_x4): Updated entries.
! 	(vld1q_x4): New entries, but comes from the old vld1_x4
! 	* config/arm/neon.md
! 	(neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
! 	(vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
! 	(vld1_f16_x3, vld1_f32_x3): New.
! 	(vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
! 	(vld1_bf16_x3): New.
! 	(vld1q_types_x3): Updated to use vld1q_x3 from
! 	arm_neon_builtins.def
! 	* config/arm/arm_neon_builtins.def
! 	(vld1_x3): Updated entries.
! 	(vld1q_x3): New entries, but comes from the old vld1_x2
! 	* config/arm/neon.md
! 	(neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
! 	(vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
! 	(vld1_f16_x2, vld1_f32_x2): New.
! 	(vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
! 	(vld1_bf16_x2): New.
! 	(vld1q_types_x2): Updated to use vld1q_x2 from
! 	arm_neon_builtins.def
! 	* config/arm/arm_neon_builtins.def
! 	(vld1_x2): Updated entries.
! 	(vld1q_x2): New entries, but comes from the old vld1_x2
! 	* config/arm/neon.md
! 	(neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
! 	neon_vld1_x2<mode>.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
! 	(vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
! 	(vst1q_f16_x4, vst1q_f32_x4): New.
! 	(vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
! 	(vst1q_bf16_x4): New.
! 	* config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
! 	* config/arm/neon.md
! 	(neon_vst1q_x4<mode>): New.
! 	(neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
! 	* config/arm/unspecs.md
! 	(UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
! 	(vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
! 	(vst1q_f16_x3, vst1q_f32_x3): New.
! 	(vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
! 	(vst1q_bf16_x3): New.
! 	* config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
! 	* config/arm/neon.md
! 	(neon_vst1q_x3<mode>): New.
! 	(neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
! 	* config/arm/unspecs.md
! 	(UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
! 	(vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
! 	(vst1q_f16_x2, vst1q_f32_x2): New.
! 	(vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
! 	(vst1q_bf16_x2): New.
! 	* config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
! 	* config/arm/neon.md
! 	(neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
! 	neon_vst1_x2<mode>.
! 	* config/arm/iterators.md
! 	(VMEMX2): New mode iterator.
! 	(VMEMX2_q): New mode attribute.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
! 	(vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
! 	(vst1_f16_x4, vst1_f32_x4): New.
! 	(vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
! 	(vst1_bf16_x4): New.
! 	* config/arm/arm_neon_builtins.def (vst1_x4): New entries.
! 	* config/arm/neon.md (vst1_x4<mode>): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
! 	(vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
! 	(vst1_f16_x3, vst1_f32_x3): New.
! 	(vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
! 	(vst1_bf16_x3): New.
! 	* config/arm/arm_neon_builtins.def (vst1_x3): New entries.
! 	* config/arm/neon.md (vst1_x3<mode>): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
! 	(vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
! 	(vst1_f16_x2, vst1_f32_x2): New.
! 	(vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
! 	(vst1_bf16_x2): New.
! 	* config/arm/arm_neon_builtins.def (vst1_x2): New entries.
! 	* config/arm/neon.md (vst1_x2<mode>): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
! 	(vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
! 	(vld1q_f16_x4, vld1q_f32_x4): New.
! 	(vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
! 	(vld1q_bf16_x4): New.
! 	* config/arm/arm_neon_builtins.def (vld1_x4): New entries.
! 	* config/arm/neon.md
! 	(neon_vld1_x4<mode>): New.
! 	(neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
! 	* config/arm/unspecs.md
! 	(UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
! 	(vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
! 	(vld1q_f16_x3, vld1q_f32_x3): New.
! 	(vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
! 	(vld1q_bf16_x3): New.
! 	* config/arm/arm_neon_builtins.def (vld1_x3): New entries.
! 	* config/arm/neon.md
! 	(neon_vld1_x3<mode>): New.
! 	(neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
! 	* config/arm/unspecs.md
! 	(UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
  
! 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
  
! 	* config/arm/arm_neon.h
! 	(vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
! 	(vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
! 	(vld1q_f16_x2, vld1q_f32_x2): New.
! 	(vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
! 	(vld1q_bf16_x2): New.
! 	* config/arm/arm_neon_builtins.def (vld1_x2): New entries.
! 	* config/arm/neon.md (vld1_x2<mode>): New.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113287
! 	* doc/sourcebuild.texi (check_effective_target_bitint65535): New.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	* tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
! 	* tree-vect-loop.cc (vect_transform_loop): Likewise.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113178
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
! 	alternate exits.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113237
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
! 	existing LCSSA variable for exit when all exits are early break.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113137
! 	PR tree-optimization/113136
! 	PR tree-optimization/113172
! 	PR tree-optimization/113178
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Maintain PHIs on inverted loops.
! 	(vect_do_peeling): Maintain virtual PHIs on inverted loops.
! 	* tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
! 	latch.
! 	(vect_create_loop_vinfo): Record all conds instead of only alt ones.
  
! 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113135
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
! 	dependency analysis.
  
! 2024-01-12  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/rs6000/host-darwin.cc (segv_handler): Use the revised
! 	diagnostics class member name for abort of error.
  
! 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
! 	format string to %s argument.
  
! 2024-01-12  John David Anglin  <danglin@gcc.gnu.org>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/113182
! 	* varasm.cc (process_pending_assemble_externals,
! 	assemble_external_libcall): Use targetm.strip_name_encoding
! 	before calling get_identifier.
  
! 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113196
! 	* config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
! 	New member variable.
! 	* config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
! 	Declare.
! 	* config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
! 	* config/aarch64/aarch64-simd.md
! 	(vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
! 	(vec_unpack<su>_hi_<mode>): ...this.  Move the generation of
! 	zip2 for zero-extends to...
! 	(aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
! 	instruction.  Fix big-endian handling.
! 	(vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
! 	(vec_unpack<su>_lo_<mode>): ...this.  Move the generation of
! 	zip1 for zero-extends to...
! 	(<optab><Vnarrowq><mode>2): ...a split of this instruction.
! 	Fix big-endian handling.
! 	(*aarch64_zip1_uxtl): New pattern.
! 	(aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
! 	(aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
! 	(aarch64_gen_shareable_zero): Use it.
! 	(aarch64_split_simd_shift_p): New function.
  
! 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
! 	(function_beg_insn): New macro.
! 	* function.cc (expand_function_start): Initialize function_beg_insn.
  
! 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/112989
! 	* config/aarch64/aarch64-sve-builtins.h
! 	(function_builder::m_overload_names): Replace with...
! 	* config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
! 	new global.
! 	(add_overloaded_function): Update accordingly, using get_identifier
! 	to get a GGC-friendly record of the name.
  
! 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/112989
! 	* config/aarch64/aarch64-sve-builtins.def: Don't include
! 	aarch64-sve-builtins-sme.def.
! 	(DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
! 	* config/aarch64/aarch64-sve-builtins-sme.def: ...here.
! 	(DEF_SME_FUNCTION): New macro.  Use it and DEF_SME_FUNCTION_GS
! 	instead of DEF_SVE_*.  Add AARCH64_FL_SME to anything that
! 	requires AARCH64_FL_SME2.
! 	* config/aarch64/aarch64-sve-builtins-sve2.def: Make same
! 	AARCH64_FL_SME adjustment here.
! 	* config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
! 	include SME intrinsics.
! 	(sme_function_groups): New array.
! 	(handle_arm_sve_h): Remove check for AARCH64_FL_SME.
! 	(handle_arm_sme_h): Use sme_function_groups instead of function_groups.
  
! 2024-01-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113281
! 	* config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
! 	(struct cpu_vector_cost): Add regmove struct.
! 	(get_vector_costs): Export as global.
! 	* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
! 	(costs::add_stmt_cost): Ditto.
! 	* config/riscv/riscv.cc (get_common_costs): Export global function.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113334
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
! 	wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
! 	to determine if number should be extended by all ones rather than zero
! 	extended.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113330
! 	* tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
! 	too large size.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113323
! 	* gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
! 	check for lhs being large/huge _BitInt not in m_names.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113316
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
! 	uninitialized large/huge _BitInt arguments to calls.
  
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gimple-lower-bitint.cc (mergeable_op): Instead of comparing
! 	TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
! 	CEIL (TYPE_PRECISION (t), limb_prec).
! 	(bitint_large_huge::handle_cast): Likewise.
  
! 2024-01-12  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	PR sanitizer/113284
! 	* config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
! 	Use assemble_function_label_final () for Power ELF V1 ABI.
! 	* output.h (assemble_function_label_final): New function.
! 	* varasm.cc (assemble_function_label_raw): Use
! 	assemble_function_label_final ().
! 	(assemble_function_label_final): New function.
  
! 2024-01-12  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/113344
! 	* match.pd ((double)float CMP (double)float -> float CMP float):
! 	Perform result type check only for vectors.
! 	* fold-const.cc (fold_binary_loc): Likewise.
  
! 2024-01-12  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
! 	(usdot_prod<mode>): Ditto.
! 	(sdot_prod<mode>): Ditto.
! 	(udot_prod<mode>): Ditto.
  
! 2024-01-12  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	PR target/113288
! 	* config/i386/i386-c.cc (ix86_target_macros_internal):
! 	Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
  
! 2024-01-12  Richard Biener  <rguenther@suse.de>
  
! 	PR target/112280
! 	* config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
! 	Do not generate code when d.testing_p.
  
! 2024-01-12  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/113039
! 	* doc/invoke.texi (fcf-protection=): Update documents.
  
! 2024-01-12  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
! 	comments of predicate func riscv_v_ext_mode_p.
  
! 2024-01-12  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
! 			Modify ABI-name length of vfloat16m8_t
  
! 2024-01-12  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
! 	Adjust.
  
! 2024-01-12  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.md (add<mode>3): Removed.
! 	(*addsi3): New.
! 	(addsi3): Ditto.
! 	(adddi3): Ditto.
! 	(*addsi3_extended): Removed.
! 	(addsi3_extended): New.
  
! 2024-01-11  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/thead.md: Add limits for splits.
  
! 2024-01-11  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/113322
! 	* expr.cc (do_store_flag): Don't try single bit tests with
! 	comparison on vector types.
  
! 2024-01-11  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/113301
! 	* match.pd (`1/x`): Delay signed case until late.
  
! 2024-01-11  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
! 	and -msp8 to...
! 	(AVR Internal Options): ...this new @subsubsection.
  
! 2024-01-11  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/112918
! 	* lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
! 	(in_class_p): Restrict condition for narrowing class in case of
! 	allow_all_reload_class_changes_p.
! 	(process_alt_operands): Try to match operand without and with
! 	narrowing reg class.  Discourage narrowing the class.  Finish insn
! 	matching only if there is no class narrowing.
! 	(curr_insn_transform): Pass true to in_class_p for reg operand win.
  
! 2024-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/112505
! 	* tree-vect-loop.cc (vectorizable_induction): Reject
! 	bit-precision induction.
  
! 2024-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113126
! 	* match.pd ((double)float CMP (double)float -> float CMP float):
! 	Make sure the boolean type is the same.
! 	* fold-const.cc (fold_binary_loc): Likewise.
  
! 2024-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/112636
! 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
! 	estimate_numbers_of_iterations before querying
! 	get_max_loop_iterations_int.
! 	(pass_ch::execute): Initialize SCEV and loops appropriately.
  
! 2024-01-11  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
! 	Reduced Tiny.
! 	* config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
! 	* doc/extend.texi (AVR Variable Attributes): Improve documentation
! 	of io, io_low and address attributes.
! 	* doc/invoke.texi (AVR Options): Add some anchors for external refs.
! 	* doc/avr-mmcu.texi: Rebuild.
  
! 2024-01-11  Yang Yujie  <yangyujie@loongson.cn>
  
! 	PR target/113233
! 	* config/loongarch/genopts/loongarch.opt.in: Mark options with
! 	the "Save" property.
! 	* config/loongarch/loongarch.opt: Same.
! 	* config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
! 	according to la_target.
! 	* config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
! 	RESTORE} for the la_target structure; Rename option conditions
! 	to have the same "la_" prefix.
! 	* config/loongarch/loongarch.h: Same.
  
! 2024-01-11  Pan Li  <pan2.li@intel.com>
  
! 	* loop-unroll.cc (insert_var_expansion_initialization): Leverage
! 	MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
  
! 2024-01-11  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113077
! 	* config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
! 	fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
! 	(combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
! 	synthesize these if needed.  Update caller ...
! 	(ldp_bb_info::fuse_pair): ... here.
! 	(ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
! 	and either insn is frame-related.
! 	(find_trailing_add): Punt on frame-related insns.
! 	* config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
! 	REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
  
! 2024-01-11  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.cc (mips_start_function_definition):
! 	Add ATTRIBUTE_UNUSED.
  
! 2024-01-11  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/112740
! 	* expr.cc (store_constructor): Check the integer vector
! 	mask has a single bit per element before using sign-extension
! 	to expand an uniform vector.
  
! 2024-01-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
! 	preempt VLS on unknown NITERS loop.
  
! 2024-01-11  Haochen Jiang  <haochen.jiang@intel.com>
  
! 	* doc/invoke.texi: Add -mevex512.
  
! 2024-01-11  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
! 	(*nor<mode>3): Likewise.
! 	(nor<mode>3): Likewise.
! 	(*negsi2_extended): New template.
! 	(*<optab>si3_internal): Likewise.
! 	(*one_cmplsi2_internal): Likewise.
! 	(*norsi3_internal): Likewise.
! 	(*<optab>nsi_internal): Likewise.
! 	(bytepick_w_<bytepick_imm>_extend): Modify this template according to the
! 	modified bit operation to make the optimization work.
  
! 2024-01-11  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/104401
! 	* match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
  
! 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
! 	(get_vector_costs): Ditto.
! 	(riscv_builtin_vectorization_cost): Ditto.
  
! 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
  
! 2024-01-10  Antoni Boucher  <bouanto@zoho.com>
  
! 	PR jit/111396
! 	* ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
! 	ipa_free_size_summary.
! 	* ipa-icf.cc (ipa_icf_cc_finalize): New function.
! 	* ipa-profile.cc (ipa_profile_cc_finalize): New function.
! 	* ipa-prop.cc (ipa_prop_cc_finalize): New function.
! 	* ipa-prop.h (ipa_prop_cc_finalize): New function.
! 	* ipa-sra.cc (ipa_sra_cc_finalize): New function.
! 	* ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
! 	ipa_sra_cc_finalize): New functions.
! 	* toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
! 	ipa_prop_cc_finalize, ipa_profile_cc_finalize and
! 	ipa_sra_cc_finalize
! 	Include ipa-utils.h.
  
! 2024-01-10  Jin Ma  <jinma@linux.alibaba.com>
  
! 	* config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
! 	(th_int_get_save_adjustment): Likewise.
! 	(th_int_adjust_cfi_prologue): Likewise.
! 	* config/riscv/riscv.cc (BITSET_P): Moved away from here.
! 	(TH_INT_INTERRUPT): New macro.
! 	(riscv_expand_prologue): Add the processing of XTheadInt.
! 	(riscv_expand_epilogue): Likewise.
! 	* config/riscv/riscv.h (BITSET_P): Moved to here.
! 	* config/riscv/riscv.md: New unspec.
! 	* config/riscv/thead.cc (th_int_get_mask): New function.
! 	(th_int_get_save_adjustment): Likewise.
! 	(th_int_adjust_cfi_prologue): Likewise.
! 	* config/riscv/thead.md (th_int_push): New pattern.
! 	(th_int_pop): new pattern.
  
! 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/112468
! 	* doc/sourcebuild.texi: Document ifn_copysign.
! 	* match.pd: Only apply transformation if target supports the IFN.
  
! 2024-01-10  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR tree-optimization/112581
! 	* gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
! 	mark_ssa_maybe_undefs.
! 	* tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
! 	variables can not be reassociated.
! 	(init_range_entry): Check for uninitialized variables too.
! 	(init_reassoc): Call mark_ssa_maybe_undefs.
  
! 2024-01-10  Maciej W. Rozycki  <macro@embecosm.com>
  
! 	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
! 	Also handle sign extension.
  
! 2024-01-10  Alex Coplan  <alex.coplan@arm.com>
  
! 	* config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
! 	to 0.
! 	(-mlate-ldp-fusion): Likewise.
  
! 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113287
! 	* tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
! 	instead of using BRANCH_EDGE to determine true edge.
  
! 2024-01-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113078
! 	* tree-vect-loop.cc (check_reduction_path): Canonicalize
! 	.COND_SUB to .COND_ADD.
  
! 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
  
! 	* gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
! 	Handle prefix mappings before calling find_opt.
! 	(selftest::gcc_urlifier_cc_tests): Add example of urlifying a
! 	"-fno-"-prefixed command-line option.
! 	* opts-common.cc (get_option_prefix_remapping): New.
! 	* opts.h (get_option_prefix_remapping): New decl.
  
! 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostic.cc (diagnostic_context::report_diagnostic): Pass
! 	m_urlifier to pp_output_formatted_text.
! 	* pretty-print.cc: Add #define of INCLUDE_VECTOR.
! 	(obstack_append_string): New overload, taking a length.
! 	(urlify_quoted_string): Pass in an obstack ptr, rather than using
! 	that of the pp's buffer.  Generalize to handle trailing text in
! 	the buffer beyond the run of quoted text.
! 	(class quoting_info): New.
! 	(on_begin_quote): New.
! 	(on_end_quote): New.
! 	(pp_format): Refactor phase 1 and phase 2 quoting support, moving
! 	it to calls to on_begin_quote and on_end_quote.
! 	(struct auto_obstack): New.
! 	(quoting_info::handle_phase_3): New.
! 	(pp_output_formatted_text): Add urlifier param.  Use it if there
! 	is deferred urlification.  Delete m_quotes.
! 	(selftest::pp_printf_with_urlifier): Pass urlifier to
! 	pp_output_formatted_text.
! 	(selftest::test_urlification): Update results for the existing
! 	case of quoted text stradding chunks; add more such test cases.
! 	* pretty-print.h (class quoting_info): New forward decl.
! 	(chunk_info::m_quotes): New field.
! 	(pp_output_formatted_text): Add optional urlifier param.
  
! 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
  
! 	* pretty-print.cc (selftest::test_pp_format): Add selftest
! 	coverage for numbered args.
  
! 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113144
! 	PR tree-optimization/113145
! 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
! 	Update all BB that the original exits dominated.
  
! 2024-01-10  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* dwarf2out.cc (modified_type_die): Extend the support of reverse
! 	storage order to enumeration types if -gstrict-dwarf is not passed.
! 	(gen_enumeration_type_die): Add REVERSE parameter and generate the
! 	DIE immediately after the existing one if it is true.
! 	(gen_tagged_type_die): Add REVERSE parameter and pass it in the
! 	call to gen_enumeration_type_die.
! 	(gen_type_die_with_usage): Add REVERSE parameter and pass it in the
! 	first recursive call as well as the call to gen_tagged_type_die.
! 	(gen_type_die): Add REVERSE parameter and pass it in the call to
! 	gen_type_die_with_usage.
  
! 2024-01-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113120
! 	* tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
! 	with root->size TYPE_PRECISION don't build anything new.
! 	Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
! 	rather than build_nonstandard_integer_type.
  
! 2024-01-10  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	* config/i386/i386.opt: Adjust document.
! 	* doc/invoke.texi: Add description for
! 	-mapx-inline-asm-use-gpr32.
  
! 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
! 	(avg<v_double_trunc>3_floor): New pattern.
! 	(<u>avg<v_double_trunc>3_ceil): Remove.
! 	(avg<v_double_trunc>3_ceil): New pattern.
! 	(uavg<mode>3_floor): Ditto.
! 	(uavg<mode>3_ceil): Ditto.
! 	* config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
! 	(enum insn_type): Ditto.
! 	* config/riscv/riscv-v.cc: Ditto.
! 	* config/riscv/vector-iterators.md (ashiftrt): Remove.
! 	(ASHIFTRT): Ditto.
! 	* config/riscv/vector.md: Add VLS modes.
  
! 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/111480
! 	* config/rs6000/vsx.md (VCZLSBB): New int iterator.
! 	(vczlsbb_char): New int attribute.
! 	(vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
! 	(vc<vczlsbb_char>zlsbb_<mode>): ... this.
! 	(*vctzlsbb_zext_<mode>): Rename to ...
! 	(*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
! 	cover vclzlsbb.
  
! 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR target/112606
! 	* config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
! 	of the last argument from altivec_register_operand to any_operand.  If
! 	operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
! 	otherwise if it doesn't satisfy altivec_register_operand, force it to
! 	REG using copy_to_mode_reg.
  
! 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
  
! 	PR middle-end/113100
! 	* builtins.cc (expand_builtin_stack_address): Guard stack point
! 	adjustment with SPARC_STACK_BOUNDARY_HACK.
  
! 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
! 	argument string definitions.
! 	* config/loongarch/loongarch-str.h: Same.
! 	* config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
! 	as aliases to -mexplicit-relocs={always,none}
! 	* config/loongarch/loongarch.opt: Regenerate.
! 	* config/loongarch/loongarch.cc: Same.
  
! 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/loongarch-def.h: Define constants with
! 	enums instead of Macros.
  
! 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/loongarch-strings: Rename.
! 	* config/loongarch/genopts/loongarch.opt.in: Same.
! 	* config/loongarch/loongarch-cpu.cc: Same.
! 	* config/loongarch/loongarch-def.cc: Same.
! 	* config/loongarch/loongarch-def.h: Same.
! 	* config/loongarch/loongarch-opts.cc: Same.
! 	* config/loongarch/loongarch-opts.h: Same.
! 	* config/loongarch/loongarch-str.h: Same.
! 	* config/loongarch/loongarch.opt: Same.
  
! 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
  
! 	* config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
! 	variable with the common la_ prefix.
! 	* config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
! 	flags as saved using TargetVariable.
! 	* config/loongarch/loongarch.opt: Same.
! 	* config/loongarch/loongarch-def.h: Define evolution_set to
! 	mark changes to the -march default.
! 	* config/loongarch/loongarch-driver.cc: Same.
! 	* config/loongarch/loongarch-opts.cc: Same.
! 	* config/loongarch/loongarch-opts.h: Define and use ISA evolution
! 	conditions around the la_target structure.
! 	* config/loongarch/loongarch.cc: Same.
! 	* config/loongarch/loongarch.md: Same.
! 	* config/loongarch/loongarch-builtins.cc: Same.
! 	* config/loongarch/loongarch-c.cc: Same.
! 	* config/loongarch/lasx.md: Same.
! 	* config/loongarch/lsx.md: Same.
! 	* config/loongarch/sync.md: Same.
  
! 2024-01-09  Jeff Law  <jlaw@ventanamicro.com>
  
! 	* config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
! 	no less.
  
! 2024-01-09  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	* config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
  
! 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	* tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
! 	restart_loop.
! 	(vectorizable_live_operation): Likewise.
  
! 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/113199
! 	* tree-vect-loop.cc (vectorizable_live_operation_1): Use
! 	BIT_FIELD_REF.
  
! 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/113270
! 	* config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
! 	* config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
! 	GTY(()) declaration before the definition, drop GTY(()) drom the
! 	definition.
  
! 2024-01-09  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113026
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Remove
! 	redundant and wrong niter bound setting.  Move niter
! 	bound adjustment down.
  
! 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR middle-end/113163
! 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
! 	Reject non-linear inductions that aren't supported.
  
! 2024-01-09  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	* config/arc/arc.cc (arc_shift_alg): New enumerated type for
! 	left shift implementation strategies.
! 	(arc_shift_info): Type for each entry of the shift strategy table.
! 	(arc_shift_context_idx): Return a integer value for each code
! 	generation context, used as an index
! 	(arc_ashl_alg): Table indexed by context and shifted bit count.
! 	(arc_split_ashl): Use the arc_ashl_alg table to select SImode
! 	left shift implementation.
! 	(arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
! 	provide accurate costs, when optimizing for speed or size.
  
! 2024-01-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
  
! 2024-01-09  Julian Brown  <julian@codesourcery.com>
  
! 	* gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
! 	processed out before gimplification.
! 	* tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
! 	* tree.def (OMP_ARRAY_SECTION): New tree code.
  
! 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113210
! 	* tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
! 	value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
! 	INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
! 	minus 1.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR rtl-optimization/113140
! 	* reorg.cc (fill_slots_from_thread): If we are to branch after the
! 	last instruction of the function, create an end label.
  
! 2024-01-09  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Hongtao Liu  <hongtao.liu@intel.com>
  
! 	PR target/112992
! 	* config/i386/i386-expand.cc
! 	(ix86_convert_const_wide_int_to_broadcast): Allow call to
! 	ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
! 	(ix86_broadcast_from_constant): Revert recent change; Return a
! 	suitable MEMREF independently of mode/target combinations.
! 	(ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
! 	to decide whether expansion is possible/preferrable.  Only try
! 	forcing DImode constants to memory (and trying again) if calling
! 	ix86_expand_vector_init_duplicate fails with an DImode immediate
! 	constant.
! 	(ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
! 	V4SImode for suitable immediate constants.
! 	<case E_V4DImode>: Try using V8SImode for suitable constants.
! 	<case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
! 	<case E_V2HImode>: Likewise.
! 	<case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
! 	<case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
! 	<label widen>: Handle CONT_INTs via simplify_binary_operation.
! 	Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
! 	<case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
! 	<case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
! 	(ix86_expand_vector_init): Move try using a broadcast for all_same
! 	with ix86_expand_vector_init_duplicate before using constant pool.
  
! 2024-01-09  Chung-Ju Wu  <jasonwucj@gmail.com>
  
! 	* doc/invoke.texi (Arm Options): Document Cortex-M52 options.
  
! 2024-01-09  Chung-Ju Wu  <jasonwucj@gmail.com>
  
! 	* config/arm/arm-cpus.in (cortex-m52): New cpu.
! 	* config/arm/arm-tables.opt: Regenerate.
! 	* config/arm/arm-tune.md: Regenerate.
  
! 2024-01-09  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
! 	(vec_init<mode><lasxhalf>): .. this, and extend to mode.
! 	(@vec_concatz<mode>): New insn pattern.
! 	* config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
! 	Handle VALS containing two vectors.
  
! 2024-01-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
! 	(vundefined): Ditto.
  
! 2024-01-09  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
! 				Add new function_base for crypto vector.
! 	(class bitmanip): Ditto.
! 	(class b_reverse):Ditto.
! 	(class vwsll):   Ditto.
! 	(class clmul):   Ditto.
! 	(class vg_nhab):  Ditto.
! 	(class crypto_vv):Ditto.
! 	(class crypto_vi):Ditto.
! 	(class vaeskf2_vsm3c):Ditto.
! 	(class vsm3me): Ditto.
! 	(BASE): Add BASE declaration for crypto vector.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
! 				Add crypto vector intrinsic definition.
! 	(vbrev): Ditto.
! 	(vclz): Ditto.
! 	(vctz): Ditto.
! 	(vwsll): Ditto.
! 	(vandn): Ditto.
! 	(vbrev8): Ditto.
! 	(vrev8): Ditto.
! 	(vrol): Ditto.
! 	(vror): Ditto.
! 	(vclmul): Ditto.
! 	(vclmulh): Ditto.
! 	(vghsh): Ditto.
! 	(vgmul): Ditto.
! 	(vaesef): Ditto.
! 	(vaesem): Ditto.
! 	(vaesdf): Ditto.
! 	(vaesdm): Ditto.
! 	(vaesz): Ditto.
! 	(vaeskf1): Ditto.
! 	(vaeskf2): Ditto.
! 	(vsha2ms): Ditto.
! 	(vsha2ch): Ditto.
! 	(vsha2cl): Ditto.
! 	(vsm4k): Ditto.
! 	(vsm4r): Ditto.
! 	(vsm3me): Ditto.
! 	(vsm3c): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
! 				Add new function_shape for crypto vector.
! 	(struct crypto_vi_def): Ditto.
! 	(struct crypto_vv_no_op_type_def): Ditto.
! 	(SHAPE): Add SHAPE declaration of crypto vector.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data type for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data struct for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
! 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
  
! 2024-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	PR sanitizer/113251
! 	* varasm.cc (assemble_function_label_raw): Do not call
! 	asan_function_start () without the current function.
  
! 2024-01-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	PR target/113225
! 	* btfout.cc (btf_collect_datasec): Skip creating BTF info for
! 	extern and kernel_helper attributed function decls.
  
! 2024-01-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	* btfout.cc (output_btf_strs): Changed.
  
! 2024-01-08  Tobias Burnus  <tobias@codesourcery.com>
  
! 	* config/gcn/mkoffload.cc (main): Handle gfx1100
! 	when setting the default XNACK.
  
! 2024-01-08  Tobias Burnus  <tobias@codesourcery.com>
  
! 	* config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
! 	* config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
! 	(ASM_SPEC): Handle gfx1100.
! 	* config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
! 	(enum gcn_isa): Add ISA_RDNA3.
! 	(TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
! 	* config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
! 	* config/gcn/gcn.cc (gcn_option_override,
! 	gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
! 	(gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
! 	TARGET_RDNA2 to TARGET_RDNA2_PLUS.
! 	(gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
! 	with gfx1100.
! 	* config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
! 	(TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
! 	__gfx1100__.
! 	* config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
! 	* config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
! 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
! 	(isa_has_combined_avgprs, main): Handle gfx1100.
! 	* config/gcn/t-omp-device (isa): Add gfx1100.
  
! 2024-01-08  Richard Biener  <rguenther@suse.de>
  
! 	* doc/invoke.texi (-mmovbe): Clarify.
  
! 2024-01-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/113026
! 	* tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
! 	Avoid an epilog in more cases.
! 	* tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
! 	epilogues niter upper bounds and estimates.
  
! 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113228
! 	* gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
  
! 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113120
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
! 	large _BitInt zero INTEGER_CST PHI argument.
  
! 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113119
! 	* gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
! 	both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
! 	is before REALPART_EXPR.
  
! 2024-01-08  Georg-Johann Lay  <avr@gjlay.de>
  
! 	PR target/112952
! 	* config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
! 	range when diagnosing attribute "io" and "io_low" are out of range.
! 	(avr_eval_addr_attrib): Don't ICE on empty address at that place.
! 	(avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
! 	in contexts other than static storage.
! 	(avr_asm_output_aligned_decl_common): Move output of decls with
! 	attribute "address", "io", and "io_low" to...
! 	(avr_output_addr_attrib): ...this new function.
! 	(avr_asm_asm_output_aligned_bss): Remove output for decls with
! 	attribute "address", "io", and "io_low".
! 	(avr_encode_section_info): Rectify handling of decls with attribute
! 	"address", "io", and "io_low".
  
! 2024-01-08  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
! 	(elf_flags): Remove XNACK from the default value.
! 	(main): Set a default XNACK according to the arch.
  
! 2024-01-08  Andrew Stubbs  <ams@codesourcery.com>
  
! 	* config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
! 	(process_asm): Don't count avgprs.
  
! 2024-01-08  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	* config/i386/i386.opt: Add supported sub-features.
! 	* doc/extend.texi: Add description for target attribute.
  
! 2024-01-08  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
  
! 2024-01-07  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/113231
! 	* config/i386/i386-features.cc (compute_convert_gain): Include
! 	the overhead of explicit load and store (movd) instructions when
! 	converting non-store scalar operations with memory destinations.
! 	Various indentation whitespace fixes.
  
! 2024-01-07  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/arm/neon.md (cbranch<mode>4): New.
  
! 2024-01-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
  
! 2024-01-06  Jiahao Xu  <xujiahao@loongson.cn>
  
! 	* config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
  
! 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	PR target/113248
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
! 	Update the MAX_SEW.
  
! 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
! 	(variable_vectorized_p): Teach loop invariant.
! 	(has_unexpected_spills_p): Ditto.
  
! 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
! 	* config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
! 	* config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
  
! 2024-01-05  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/113104
! 	* doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
! 	(aarch64-vect-compare-costs): ...this.
! 	* config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
! 	Replace with...
! 	(-param=aarch64-vect-compare-costs=): ...this new param.
! 	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
! 	Don't disable it when vectorizing for Advanced SIMD only.
! 	(aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
! 	whenever aarch64_vect_compare_costs is true.
  
! 2024-01-05  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
! 	Modify the method of determining the memory offset of [x]vld/[x]vst.
! 	(lasx_mxst_<lasxfmt_f>): Likewise.
! 	* config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
! 	(loongarch_address_insns): Likewise.
! 	* config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
! 	(lsx_st_<lsxfmt_f>): Likewise.
! 	* config/loongarch/predicates.md (aq10b_operand): Likewise.
! 	(aq10h_operand): Likewise.
! 	(aq10w_operand): Likewise.
! 	(aq10d_operand): Likewise.
  
! 2024-01-05  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/113217
! 	* config/aarch64/aarch64-ldp-fusion.cc
! 	(ldp_bb_info::try_fuse_pair): If the second access can throw,
! 	narrow the move range to exactly that insn.
  
! 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	* asan.cc (asan_function_start): Drop switch_to_section ().
! 	(asan_emit_stack_protection): Set .LASANPC alignment.
! 	* config/i386/i386.cc: Use assemble_function_label_raw ()
! 	instead of ASM_OUTPUT_LABEL ().
! 	* config/s390/s390.cc (s390_asm_output_function_label):
! 	Likewise.
! 	* defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
! 	* final.cc (final_start_function_1): Drop
! 	asan_function_start ().
! 	* output.h (assemble_function_label_raw): New function.
! 	* varasm.cc (assemble_function_label_raw): Likewise.
  
! 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_declare_function_name):
! 	Use ASM_OUTPUT_FUNCTION_LABEL ().
! 	* config/alpha/alpha.cc (alpha_start_function): Likewise.
! 	* config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
! 	* config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
! 	* config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
! 	* config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
! 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
! 	* config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
! 	* config/ia64/ia64.cc (ia64_start_function): Likewise.
! 	* config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
! 	Likewise.
! 	* config/microblaze/microblaze.cc (microblaze_function_prologue):
! 	Likewise.
! 	* config/mips/mips.cc (mips_start_unique_function): Return the
! 	tree.
! 	(mips_start_function_definition): Use
! 	ASM_OUTPUT_FUNCTION_LABEL ().
! 	(mips_finish_stub): Pass the tree to
! 	mips_start_function_definition ().
! 	(mips16_build_function_stub): Likewise.
! 	(mips16_build_call_stub): Likewise.
! 	(mips_output_function_prologue): Likewise.
! 	* config/pa/pa.cc (pa_output_function_label): Use
! 	ASM_OUTPUT_FUNCTION_LABEL ().
! 	* config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
! 	* config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
! 	Likewise.
! 	(rs6000_xcoff_declare_function_name): Likewise.
  
! 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/113201
! 	* tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
! 	replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
  
! 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/90693
! 	* tree-ssa-math-opts.cc (match_single_bit_test): If
! 	tree_expr_nonzero_p (arg), remember it in the second argument to
! 	IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
! 	arg ^ (arg - 1) > arg - 1.
! 	* internal-fn.cc (expand_POPCOUNT): If second argument to
! 	IFN_POPCOUNT suggests arg is non-zero, try to expand it as
! 	arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
! 
! 2024-01-05  Kito Cheng  <kito.cheng@sifive.com>
! 
! 	* config/riscv/riscv-v.cc (expand_load_store):
! 	Remove `value`.
! 	(expand_cond_len_op): Ditto.
! 	(expand_gather_scatter): Ditto.
! 	(expand_lanes_load_store): Ditto.
! 	(expand_fold_extract_last): Ditto.
! 
! 2024-01-05  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
  
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
! 				Add new function_base for crypto vector.
! 	(class bitmanip): Ditto.
! 	(class b_reverse):Ditto.
! 	(class vwsll):   Ditto.
! 	(class clmul):   Ditto.
! 	(class vg_nhab):  Ditto.
! 	(class crypto_vv):Ditto.
! 	(class crypto_vi):Ditto.
! 	(class vaeskf2_vsm3c):Ditto.
! 	(class vsm3me): Ditto.
! 	(BASE): Add BASE declaration for crypto vector.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
! 				Add crypto vector intrinsic definition.
! 	(vbrev): Ditto.
! 	(vclz): Ditto.
! 	(vctz): Ditto.
! 	(vwsll): Ditto.
! 	(vandn): Ditto.
! 	(vbrev8): Ditto.
! 	(vrev8): Ditto.
! 	(vrol): Ditto.
! 	(vror): Ditto.
! 	(vclmul): Ditto.
! 	(vclmulh): Ditto.
! 	(vghsh): Ditto.
! 	(vgmul): Ditto.
! 	(vaesef): Ditto.
! 	(vaesem): Ditto.
! 	(vaesdf): Ditto.
! 	(vaesdm): Ditto.
! 	(vaesz): Ditto.
! 	(vaeskf1): Ditto.
! 	(vaeskf2): Ditto.
! 	(vsha2ms): Ditto.
! 	(vsha2ch): Ditto.
! 	(vsha2cl): Ditto.
! 	(vsm4k): Ditto.
! 	(vsm4r): Ditto.
! 	(vsm3me): Ditto.
! 	(vsm3c): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
! 				Add new function_shape for crypto vector.
! 	(struct crypto_vi_def): Ditto.
! 	(struct crypto_vv_no_op_type_def): Ditto.
! 	(SHAPE): Add SHAPE declaration of crypto vector.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data type for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data struct for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
! 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
  
! 2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
! 
! 	* config/riscv/riscv-vector-builtins-bases.cc (class vandn):
! 				Add new function_base for crypto vector.
! 	(class bitmanip): Ditto.
! 	(class b_reverse):Ditto.
! 	(class vwsll):   Ditto.
! 	(class clmul):   Ditto.
! 	(class vg_nhab):  Ditto.
! 	(class crypto_vv):Ditto.
! 	(class crypto_vi):Ditto.
! 	(class vaeskf2_vsm3c):Ditto.
! 	(class vsm3me): Ditto.
! 	(BASE): Add BASE declaration for crypto vector.
! 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
! 				Add crypto vector intrinsic definition.
! 	(vbrev): Ditto.
! 	(vclz): Ditto.
! 	(vctz): Ditto.
! 	(vwsll): Ditto.
! 	(vandn): Ditto.
! 	(vbrev8): Ditto.
! 	(vrev8): Ditto.
! 	(vrol): Ditto.
! 	(vror): Ditto.
! 	(vclmul): Ditto.
! 	(vclmulh): Ditto.
! 	(vghsh): Ditto.
! 	(vgmul): Ditto.
! 	(vaesef): Ditto.
! 	(vaesem): Ditto.
! 	(vaesdf): Ditto.
! 	(vaesdm): Ditto.
! 	(vaesz): Ditto.
! 	(vaeskf1): Ditto.
! 	(vaeskf2): Ditto.
! 	(vsha2ms): Ditto.
! 	(vsha2ch): Ditto.
! 	(vsha2cl): Ditto.
! 	(vsm4k): Ditto.
! 	(vsm4r): Ditto.
! 	(vsm3me): Ditto.
! 	(vsm3c): Ditto.
! 	* config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
! 				Add new function_shape for crypto vector.
! 	(struct crypto_vi_def): Ditto.
! 	(struct crypto_vv_no_op_type_def): Ditto.
! 	(SHAPE): Add SHAPE declaration of crypto vector.
! 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
! 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data type for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(vuint32mf2_t): Ditto.
! 	(vuint32m1_t): Ditto.
! 	(vuint32m2_t): Ditto.
! 	(vuint32m4_t): Ditto.
! 	(vuint32m8_t): Ditto.
! 	(vuint64m1_t): Ditto.
! 	(vuint64m2_t): Ditto.
! 	(vuint64m4_t): Ditto.
! 	(vuint64m8_t): Ditto.
! 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
! 				Add new data struct for crypto vector.
! 	(DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
! 	(registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
! 	* config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
! 
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
! 
! 2024-01-04  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR tree-optimization/113186
! 	* gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
! 	Match `^` with the `==` for 1bit integral types.
! 	* match.pd (maybe_cmp): Allow for bit_xor for 1bit
! 	integral types.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* toplev.cc (general_init): Pass lang_mask to urlifier.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
! 	param.
! 	(diagnostic_context::make_option_url): Update for lang_mask param.
! 	* gcc-urlifier.cc: Include "opts.h" and "options.h".
! 	(gcc_urlifier::gcc_urlifier): Add lang_mask param.
! 	(gcc_urlifier::m_lang_mask): New field.
! 	(doc_urls): Make static.
! 	(gcc_urlifier::get_url_for_quoted_text): Use label_text.
! 	(gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
! 	Look for an option by name before trying a binary search in
! 	doc_urls.
! 	(gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
! 	(gcc_urlifier::get_url_suffix_for_option): New.
! 	(make_gcc_urlifier): Add lang_mask param.
! 	(selftest::gcc_urlifier_cc_tests): Update for above changes.
! 	Verify that a URL is found for "-fpack-struct".
! 	* gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
! 	* gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
! 	* gcc.cc (driver::global_initializations): Pass 0 for lang_mask
! 	to make_gcc_urlifier.
! 	* opts-diagnostic.h (get_option_url): Add lang_mask param.
! 	* opts.cc (get_option_html_page): Remove special-casing for
! 	analyzer and LTO.
! 	(get_option_url_suffix): New.
! 	(get_option_url): Reimplement.
! 	(selftest::test_get_option_html_page): Rename to...
! 	(selftest::test_get_option_url_suffix): ...this and update for
! 	above changes.
! 	(selftest::opts_cc_tests): Update for renaming.
! 	* opts.h: Include "rich-location.h".
! 	(get_option_url_suffix): New decl.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* Makefile.in (ALL_OPT_URL_FILES): New.
! 	(GCC_OBJS): Add options-urls.o.
! 	(OBJS): Likewise.
! 	(OBJS-libcommon): Likewise.
! 	(s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
! 	inputs to opt-gather.awk.
! 	(options-urls.cc): New Makefile target.
! 	* opt-functions.awk (url_suffix): New function.
! 	(lang_url_suffix): New function.
! 	* options-urls-cc-gen.awk: New file.
! 	* opts.h (get_opt_url_suffix): New decl.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* params.opt.urls: New file, autogenerated by
! 	regenerate-opt-urls.py.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* common.opt.urls: New file, autogenerated by
! 	regenerate-opt-urls.py.
! 	* config/aarch64/aarch64.opt.urls: Likewise.
! 	* config/alpha/alpha.opt.urls: Likewise.
! 	* config/alpha/elf.opt.urls: Likewise.
! 	* config/arc/arc-tables.opt.urls: Likewise.
! 	* config/arc/arc.opt.urls: Likewise.
! 	* config/arm/arm-tables.opt.urls: Likewise.
! 	* config/arm/arm.opt.urls: Likewise.
! 	* config/arm/vxworks.opt.urls: Likewise.
! 	* config/avr/avr.opt.urls: Likewise.
! 	* config/bpf/bpf.opt.urls: Likewise.
! 	* config/c6x/c6x-tables.opt.urls: Likewise.
! 	* config/c6x/c6x.opt.urls: Likewise.
! 	* config/cris/cris.opt.urls: Likewise.
! 	* config/cris/elf.opt.urls: Likewise.
! 	* config/csky/csky.opt.urls: Likewise.
! 	* config/csky/csky_tables.opt.urls: Likewise.
! 	* config/darwin.opt.urls: Likewise.
! 	* config/dragonfly.opt.urls: Likewise.
! 	* config/epiphany/epiphany.opt.urls: Likewise.
! 	* config/fr30/fr30.opt.urls: Likewise.
! 	* config/freebsd.opt.urls: Likewise.
! 	* config/frv/frv.opt.urls: Likewise.
! 	* config/ft32/ft32.opt.urls: Likewise.
! 	* config/fused-madd.opt.urls: Likewise.
! 	* config/g.opt.urls: Likewise.
! 	* config/gcn/gcn.opt.urls: Likewise.
! 	* config/gnu-user.opt.urls: Likewise.
! 	* config/h8300/h8300.opt.urls: Likewise.
! 	* config/hpux11.opt.urls: Likewise.
! 	* config/i386/cygming.opt.urls: Likewise.
! 	* config/i386/cygwin.opt.urls: Likewise.
! 	* config/i386/djgpp.opt.urls: Likewise.
! 	* config/i386/i386.opt.urls: Likewise.
! 	* config/i386/mingw-w64.opt.urls: Likewise.
! 	* config/i386/mingw.opt.urls: Likewise.
! 	* config/i386/nto.opt.urls: Likewise.
! 	* config/ia64/ia64.opt.urls: Likewise.
! 	* config/ia64/ilp32.opt.urls: Likewise.
! 	* config/ia64/vms.opt.urls: Likewise.
! 	* config/iq2000/iq2000.opt.urls: Likewise.
! 	* config/linux-android.opt.urls: Likewise.
! 	* config/linux.opt.urls: Likewise.
! 	* config/lm32/lm32.opt.urls: Likewise.
! 	* config/loongarch/loongarch.opt.urls: Likewise.
! 	* config/lynx.opt.urls: Likewise.
! 	* config/m32c/m32c.opt.urls: Likewise.
! 	* config/m32r/m32r.opt.urls: Likewise.
! 	* config/m68k/ieee.opt.urls: Likewise.
! 	* config/m68k/m68k-tables.opt.urls: Likewise.
! 	* config/m68k/m68k.opt.urls: Likewise.
! 	* config/m68k/uclinux.opt.urls: Likewise.
! 	* config/mcore/mcore.opt.urls: Likewise.
! 	* config/microblaze/microblaze.opt.urls: Likewise.
! 	* config/mips/mips-tables.opt.urls: Likewise.
! 	* config/mips/mips.opt.urls: Likewise.
! 	* config/mips/sde.opt.urls: Likewise.
! 	* config/mmix/mmix.opt.urls: Likewise.
! 	* config/mn10300/mn10300.opt.urls: Likewise.
! 	* config/moxie/moxie.opt.urls: Likewise.
! 	* config/msp430/msp430.opt.urls: Likewise.
! 	* config/nds32/nds32-elf.opt.urls: Likewise.
! 	* config/nds32/nds32-linux.opt.urls: Likewise.
! 	* config/nds32/nds32.opt.urls: Likewise.
! 	* config/netbsd-elf.opt.urls: Likewise.
! 	* config/netbsd.opt.urls: Likewise.
! 	* config/nios2/elf.opt.urls: Likewise.
! 	* config/nios2/nios2.opt.urls: Likewise.
! 	* config/nvptx/nvptx-gen.opt.urls: Likewise.
! 	* config/nvptx/nvptx.opt.urls: Likewise.
! 	* config/openbsd.opt.urls: Likewise.
! 	* config/or1k/elf.opt.urls: Likewise.
! 	* config/or1k/or1k.opt.urls: Likewise.
! 	* config/pa/pa-hpux.opt.urls: Likewise.
! 	* config/pa/pa-hpux1010.opt.urls: Likewise.
! 	* config/pa/pa-hpux1111.opt.urls: Likewise.
! 	* config/pa/pa-hpux1131.opt.urls: Likewise.
! 	* config/pa/pa.opt.urls: Likewise.
! 	* config/pa/pa64-hpux.opt.urls: Likewise.
! 	* config/pdp11/pdp11.opt.urls: Likewise.
! 	* config/pru/pru.opt.urls: Likewise.
! 	* config/riscv/riscv.opt.urls: Likewise.
! 	* config/rl78/rl78.opt.urls: Likewise.
! 	* config/rpath.opt.urls: Likewise.
! 	* config/rs6000/476.opt.urls: Likewise.
! 	* config/rs6000/aix64.opt.urls: Likewise.
! 	* config/rs6000/darwin.opt.urls: Likewise.
! 	* config/rs6000/linux64.opt.urls: Likewise.
! 	* config/rs6000/rs6000-tables.opt.urls: Likewise.
! 	* config/rs6000/rs6000.opt.urls: Likewise.
! 	* config/rs6000/sysv4.opt.urls: Likewise.
! 	* config/rtems.opt.urls: Likewise.
! 	* config/rx/elf.opt.urls: Likewise.
! 	* config/rx/rx.opt.urls: Likewise.
! 	* config/s390/s390.opt.urls: Likewise.
! 	* config/s390/tpf.opt.urls: Likewise.
! 	* config/sh/sh.opt.urls: Likewise.
! 	* config/sh/superh.opt.urls: Likewise.
! 	* config/sol2.opt.urls: Likewise.
! 	* config/sparc/long-double-switch.opt.urls: Likewise.
! 	* config/sparc/sparc.opt.urls: Likewise.
! 	* config/stormy16/stormy16.opt.urls: Likewise.
! 	* config/v850/v850.opt.urls: Likewise.
! 	* config/vax/elf.opt.urls: Likewise.
! 	* config/vax/vax.opt.urls: Likewise.
! 	* config/visium/visium.opt.urls: Likewise.
! 	* config/vms/vms.opt.urls: Likewise.
! 	* config/vxworks-smp.opt.urls: Likewise.
! 	* config/vxworks.opt.urls: Likewise.
! 	* config/xtensa/elf.opt.urls: Likewise.
! 	* config/xtensa/uclinux.opt.urls: Likewise.
! 	* config/xtensa/xtensa.opt.urls: Likewise.
! 	* config/bfin/bfin.opt.urls: New file.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* Makefile.in (OPT_URLS_HTML_DEPS): New.
! 	(regenerate-opt-urls): New target.
! 	(regenerate-opt-urls-unit-test): New target.
! 	* doc/options.texi (Option properties): Add UrlSuffix and
! 	description of regenerate-opt-urls.py.  Add LangUrlSuffix_*.
! 	* doc/sourcebuild.texi (Anatomy of a Language Front End): Add
! 	reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
! 	and Makefile.in's OPT_URLS_HTML_DEPS.
! 	(Anatomy of a Target Back End): Add
! 	reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
! 	* regenerate-opt-urls.py: New file.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* diagnostic-format-sarif.cc
! 	(sarif_builder::make_logical_location_object): Convert to...
! 	(make_sarif_logical_location_object): ...this.
! 	(sarif_builder::set_any_logical_locs_arr): Update for above
! 	change.
! 	(sarif_builder::make_thread_flow_location_object): Call
! 	maybe_add_sarif_properties on each diagnostic_event.
! 	* diagnostic-format-sarif.h (class logical_location): New forward
! 	decl.
! 	(make_sarif_logical_location_object): New decl.
! 	* diagnostic-path.h (class sarif_object): New forward decl.
! 	(diagnostic_event::maybe_add_sarif_properties): New vfunc.
! 
! 2024-01-04  Kuan-Lin Chen  <rufus@andestech.com>
! 	    Patrick Lin  <patrick@andestech.com>
! 	    Rufus Chen  <rufus@andestech.com>
! 	    Monk Chiang  <monk.chiang@sifive.com>
! 
! 	* config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
! 	with Nan-boxing value.
! 	* config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
! 
! 2024-01-04  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Jeff Law  <jlaw@ventanamicro.com>
! 
! 	PR rtl-optimization/104914
! 	* expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
! 	a sign or zero extension is only required if the modified field
! 	overlaps the SUBREG's most significant bit.  On MODE_REP_EXTENDED
! 	targets, don't refer to the temporarily incorrectly extended value
! 	using a SUBREG, but instead generate an explicit TRUNCATE rtx.
! 
! 2024-01-04  Pan Li  <pan2.li@intel.com>
  
  	Revert:
! 	2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
  
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
  
! 2024-01-04  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
! 	offset of fcsr.
  
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
  
! 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
! 	(compute_nregs_for_mode): Refine LMUL.
! 	(max_number_of_live_regs): Ditto.
! 	(compute_estimated_lmul): Ditto.
! 	(has_unexpected_spills_p): Ditto.
  
! 2024-01-04  Li Wei  <liwei@loongson.cn>
  
! 	* config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
! 	Remove useless forward declaration.
! 	(loongarch_is_even_extraction): Remove useless forward declaration.
! 	(loongarch_try_expand_lsx_vshuf_const): Removed.
! 	(loongarch_expand_vec_perm_const_1): Merged.
! 	(loongarch_is_double_duplicate): Removed.
! 	(loongarch_is_center_extraction): Ditto.
! 	(loongarch_is_reversing_permutation): Ditto.
! 	(loongarch_is_di_misalign_extract): Ditto.
! 	(loongarch_is_si_misalign_extract): Ditto.
! 	(loongarch_is_lasx_lowpart_extract): Ditto.
! 	(loongarch_is_op_reverse_perm): Ditto.
! 	(loongarch_is_single_op_perm): Ditto.
! 	(loongarch_is_divisible_perm): Ditto.
! 	(loongarch_is_triple_stride_extract): Ditto.
! 	(loongarch_expand_vec_perm_const_2): Merged.
! 	(loongarch_expand_vec_perm_const): New.
! 	(loongarch_vectorize_vec_perm_const): Adjust.
  
! 2024-01-04  Sandra Loosemore  <sandra@codesourcery.com>
  
! 	* omp-general.cc: Fix comment typos and misplaced/confusing
! 	comments.  Delete redundant include of omp-general.h.
  
! 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
  
! 	PR rtl-optimization/104914
! 	* config/mips/mips.md (insqisi_extended): New patterns.
! 	(inshisi_extended): Ditto.
  
! 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.cc (mips_insn_cost): New function.
  
! 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
  
! 	* config/mips/mips.md (perf_ratio): New attribute.
  
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113206
! 	PR target/113209
! 	* config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
! 	(pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
! 	blocks belong to infinite loop.
! 	(pre_vsetvl::emit_vsetvl): Remove fake edges.
! 	* config/riscv/t-riscv: Add a new include file.
! 
! 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* config/riscv/vector.md: Fix indent.
! 
! 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
! 
! 	* tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
! 	OMP_CLAUSE__SIMDUID_.
! 	* tree.cc (omp_clause_num_ops): Update position of entry for
! 	OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
! 	(omp_clause_code_name): Likewise.
! 
! 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
! 
! 	* config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
! 	printing of FUNC_MAP/IND_FUNC_MAP labels.
! 
! 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.cc (process_command): Update copyright notice dates.
  	* gcov-dump.cc (print_version): Ditto.
***************
*** 8776,8793 ****
  	* doc/install.texi: Ditto.
  	* doc/invoke.texi: Ditto.
  
! 2023-01-01  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Uroš Bizjak  <ubizjak@gmail.com>
  
! 	* config/i386/i386.md (extendditi2): New define_insn.
! 	(define_split): Use DWIH mode iterator to treat new extendditi2
! 	identically to existing extendsidi2_1.
! 	(define_peephole2): Likewise.
! 	(define_peephole2): Likewise.
! 	(define_Split): Likewise.
  
  
! Copyright (C) 2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 9221,9300 ----
  	* doc/install.texi: Ditto.
  	* doc/invoke.texi: Ditto.
  
! 2024-01-03  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/simd.md (fmax<mode>3): New define_insn.
! 	(fmin<mode>3): Likewise.
! 	(reduc_fmax_scal_<mode>3): New define_expand.
! 	(reduc_fmin_scal_<mode>3): Likewise.
! 
! 2024-01-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	PR target/113112
! 	* config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
! 	(max_number_of_live_regs): Ditto.
! 	(has_unexpected_spills_p): Ditto.
  
+ 2024-01-02  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
+ 	    Jin Ma  <jinma@linux.alibaba.com>
+ 	    Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 	    Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/vector.md:
+ 	Use vector_length_operand for vsetvl patterns.
+ 
+ 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
+ 	(expand_cond_len_op): Add simplification of dummy len and dummy mask.
+ 
+ 2024-01-02  Di Zhao  <dizhao@os.amperecomputing.com>
+ 
+ 	* config/aarch64/aarch64-tuning-flags.def
+ 	(AARCH64_EXTRA_TUNING_OPTION): New tuning option
+ 	AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_override_options_internal): Set
+ 	param_fully_pipelined_fma according to tuning option.
+ 	* config/aarch64/tuning_models/ampere1.h: Add
+ 	AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
+ 	* config/aarch64/tuning_models/ampere1a.h: Likewise.
+ 	* config/aarch64/tuning_models/ampere1b.h: Likewise.
+ 
+ 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/vector-crypto.md: Modify copyright year.
+ 
+ 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
+ 
+ 2024-01-02  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config.in: Regenerate.
+ 	* config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
+ 	* config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
+ 	Added TLS Le Relax support.
+ 	(loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
+ 	* config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
+ 	* configure: Regenerate.
+ 	* configure.ac: Check if binutils supports TLS le relax.
+ 
+ 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/iterators.md: Add rotate insn name.
+ 	* config/riscv/riscv.md: Add new insns name for crypto vector.
+ 	* config/riscv/vector-iterators.md: Add new iterators for crypto vector.
+ 	* config/riscv/vector.md: Add the corresponding attr for crypto vector.
+ 	* config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
+ 
+ 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113112
+ 	* config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
+ 	pointer type liveness count.
  
! Copyright (C) 2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/gcc/ChangeLog-2023 gcc-14.1.0/gcc/ChangeLog-2023
*** gcc-13.2.0/gcc/ChangeLog-2023	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ChangeLog-2023	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,54880 ----
+ 2023-12-31  Uros Bizjak  <ubizjak@gmail.com>
+ 	    Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/43644
+ 	* config/i386/i386.md (*add<dwi>3_doubleword_concat_zext): Tweak
+ 	order of instructions after split, to minimize number of moves.
+ 
+ 2023-12-29  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS,
+ 	X86_TUNE_AVOID_256FMA_CHAINS): Enable for znver4 and Core.
+ 
+ 2023-12-29  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/110625
+ 	* config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
+ 	Adjust throughput and latency calculations for vector conversions.
+ 	(class aarch64_vector_costs): Add m_num_last_promote_demote.
+ 
+ 2023-12-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (bstrins_<mode>_for_ior_mask):
+ 	For the condition, remove unneeded trailing "\" and move "&&" to
+ 	follow GNU coding style.  NFC.
+ 
+ 2023-12-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/predicates.md
+ 	(symbolic_pcrel_offset_operand): New define_predicate.
+ 	(mem_simple_ldst_operand): Likewise.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_rewrite_mem_for_simple_ldst): Declare.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_rewrite_mem_for_simple_ldst): Implement.
+ 	* config/loongarch/loongarch.md (simple_load<mode>): New
+ 	define_insn_and_rewrite.
+ 	(simple_load_<su>ext<SUBDI:mode><GPR:mode>): Likewise.
+ 	(simple_store<mode>): Likewise.
+ 	(define_peephole2): Remove la.local/[f]ld peepholes.
+ 
+ 2023-12-29  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/113133
+ 	* config/i386/i386.md
+ 	(TARGET_USE_VECTOR_FP_CONVERTS SF->DF float_extend splitter):
+ 	Do not handle xmm16+ with TARGET_EVEX512.
+ 
+ 2023-12-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (is_vlmax_len_p): New function.
+ 	(expand_load_store): Disallow transformation into VLMAX when len is in range of [0,31]
+ 	(expand_cond_len_op): Ditto.
+ 	(expand_gather_scatter): Ditto.
+ 	(expand_lanes_load_store): Ditto.
+ 	(expand_fold_extract_last): Ditto.
+ 
+ 2023-12-28  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_unary_operator_ok): Move from here...
+ 	* config/i386/i386-expand.cc (ix86_unary_operator_ok): ... to here.
+ 	* config/i386/i386-protos.h: Re-arrange ix86_{unary|binary}_operator_ok
+ 	and ix86_expand_{unary|binary}_operator prototypes.
+ 	* config/i386/i386.md: Cosmetic changes with the usage of
+ 	TARGET_APX_NDD in ix86_expand_{unary|binary}_operator
+ 	and ix86_{unary|binary}_operator_ok function calls.
+ 
+ 2023-12-28  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (is_gimple_assign_or_call): Change interface.
+ 	(get_live_range): New function.
+ 
+ 2023-12-27  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/113148
+ 	* config/loongarch/loongarch.cc (loongarch_secondary_reload):
+ 	Check if regno == -1 besides MEM_P (x) for reloading FCCmode
+ 	from/to FPR to/from memory.
+ 
+ 2023-12-27  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (rotl<mode>3):
+ 	New define_expand.
+ 	* config/loongarch/simd.md (vrotl<mode>3): Likewise.
+ 	(rotl<mode>3): Likewise.
+ 
+ 2023-12-27  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113112
+ 	* config/riscv/riscv-vector-costs.cc (is_gimple_assign_or_call): New function.
+ 	(get_first_lane_point): Ditto.
+ 	(get_last_lane_point): Ditto.
+ 	(max_number_of_live_regs): Refine live point dump.
+ 	(compute_estimated_lmul): Make unknown NITERS loop be aware of liveness.
+ 	(costs::better_main_loop_than_p): Ditto.
+ 	* config/riscv/riscv-vector-costs.h (struct stmt_point): Add new member.
+ 
+ 2023-12-27  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md: Use loongarch_split_move and
+ 	loongarch_split_move_p directly.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_split_move): Remove unnecessary argument.
+ 	(loongarch_split_move_insn_p): Delete.
+ 	(loongarch_split_move_insn): Delete.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_split_move_insn_p): Delete.
+ 	(loongarch_load_store_insns): Use loongarch_split_move_p
+ 	directly.
+ 	(loongarch_split_move): remove the unnecessary processing.
+ 	(loongarch_split_move_insn): Delete.
+ 	* config/loongarch/lsx.md: Use loongarch_split_move and
+ 	loongarch_split_move_p directly.
+ 
+ 2023-12-27  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_concatv4di): Delete.
+ 	(vec_concatv8si): Delete.
+ 	(vec_concatv16hi): Delete.
+ 	(vec_concatv32qi): Delete.
+ 	(vec_concatv4df): Delete.
+ 	(vec_concatv8sf): Delete.
+ 	(vec_concat<mode>): New template with insn output fixed.
+ 
+ 2023-12-27  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md: Adjust.
+ 
+ 2023-12-27  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000-string.cc (expand_block_compare): Assert
+ 	only P7 above can enter this function.  Remove P7 CPU test and let
+ 	P7 BE do the expand.
+ 
+ 2023-12-27  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000.md (cmpmemsi): Fail when optimizing for size.
+ 
+ 2023-12-27  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
+ 	Remove.
+ 	* config/rs6000/rs6000-string.cc (select_block_compare_mode):
+ 	Replace TARGET_EFFICIENT_OVERLAPPING_UNALIGNED with
+ 	targetm.slow_unaligned_access.
+ 	(expand_block_compare_gpr): Likewise.
+ 	(expand_block_compare): Likewise.
+ 	(expand_strncmp_gpr_sequence): Likewise.
+ 
+ 2023-12-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113112
+ 	* config/riscv/riscv-vector-costs.cc (compute_estimated_lmul): Tweak LMUL estimation.
+ 	(has_unexpected_spills_p): Ditto.
+ 	(costs::record_potential_unexpected_spills): Ditto.
+ 
+ 2023-12-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (compute_estimated_lmul): Allow
+ 	fractional vecrtor.
+ 	(preferred_new_lmul_p): Move RVV V_REGS liveness computation into analyze_loop_vinfo.
+ 	(has_unexpected_spills_p): New function.
+ 	(costs::record_potential_unexpected_spills): Ditto.
+ 	(costs::better_main_loop_than_p): Move RVV V_REGS liveness computation into
+ 	analyze_loop_vinfo.
+ 	* config/riscv/riscv-vector-costs.h: New functions and variables.
+ 
+ 2023-12-25  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR bootstrap/113132
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Initialize vec_stmts;
+ 
+ 2023-12-25  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 	    Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/110320
+ 	* config/rs6000/rs6000.cc (rs6000_conditional_register_usage): Change
+ 	GPR2 to volatile and non-fixed register for PCREL.
+ 	* config/rs6000/rs6000.h (FIXED_REGISTERS): Modify GPR2 to not fixed.
+ 
+ 2023-12-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/19832
+ 	* match.pd (`(a != b) ? (a + b) : (2 * a)`): Add `:c`
+ 	on the plus operator.
+ 
+ 2023-12-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* doc/sourcebuild.texi (check_effective_target_vect_early_break_hw,
+ 	check_effective_target_vect_early_break): Document.
+ 
+ 2023-12-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (cbranch<mode>4): New.
+ 
+ 2023-12-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-if-conv.cc (idx_within_array_bound): Expose.
+ 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): New.
+ 	(vect_analyze_data_ref_dependences): Use it.
+ 	* tree-vect-loop-manip.cc (vect_iv_increment_position): New.
+ 	(vect_set_loop_controls_directly,
+ 	vect_set_loop_condition_partial_vectors,
+ 	vect_set_loop_condition_partial_vectors_avx512,
+ 	vect_set_loop_condition_normal): Support multiple exits.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Support LCSAA peeling for
+ 	multiple exits.
+ 	(slpeel_can_duplicate_loop_p): Change vectorizer from looking at BB
+ 	count and instead look at loop shape.
+ 	(vect_update_ivs_after_vectorizer): Drop asserts.
+ 	(vect_gen_vector_loop_niters_mult_vf): Support peeled vector iterations.
+ 	(vect_do_peeling): Support multiple exits.
+ 	(vect_loop_versioning): Likewise.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialise
+ 	early_breaks.
+ 	(vect_analyze_loop_form): Support loop flows with more than single BB
+ 	loop body.
+ 	(vect_create_loop_vinfo): Support niters analysis for multiple exits.
+ 	(vect_analyze_loop): Likewise.
+ 	(vect_get_vect_def): New.
+ 	(vect_create_epilog_for_reduction): Support early exit reductions.
+ 	(vectorizable_live_operation_1): New.
+ 	(find_connected_edge): New.
+ 	(vectorizable_live_operation): Support early exit live operations.
+ 	(move_early_exit_stmts): New.
+ 	(vect_transform_loop): Use it.
+ 	* tree-vect-patterns.cc (vect_init_pattern_stmt): Support gcond.
+ 	(vect_recog_bitfield_ref_pattern): Support gconds and bools.
+ 	(vect_recog_gcond_pattern): New.
+ 	(possible_vector_mask_operation_p): Support gcond masks.
+ 	(vect_determine_mask_precision): Likewise.
+ 	(vect_mark_pattern_stmts): Set gcond def type.
+ 	(can_vectorize_live_stmts): Force early break inductions to be live.
+ 	* tree-vect-stmts.cc (vect_stmt_relevant_p): Add relevancy analysis for
+ 	early breaks.
+ 	(vect_mark_stmts_to_be_vectorized): Process gcond usage.
+ 	(perm_mask_for_reverse): Expose.
+ 	(vectorizable_comparison_1): New.
+ 	(vectorizable_early_exit): New.
+ 	(vect_analyze_stmt): Support early break and gcond.
+ 	(vect_transform_stmt): Likewise.
+ 	(vect_is_simple_use): Likewise.
+ 	(vect_get_vector_types_for_stmt): Likewise.
+ 	* tree-vectorizer.cc (pass_vectorize::execute): Update exits for value
+ 	numbering.
+ 	* tree-vectorizer.h (enum vect_def_type): Add vect_condition_def.
+ 	(LOOP_VINFO_EARLY_BREAKS, LOOP_VINFO_EARLY_BRK_STORES,
+ 	LOOP_VINFO_EARLY_BREAKS_VECT_PEELED, LOOP_VINFO_EARLY_BRK_DEST_BB,
+ 	LOOP_VINFO_EARLY_BRK_VUSES): New.
+ 	(is_loop_header_bb_p): Drop assert.
+ 	(class loop): Add early_breaks, early_break_stores, early_break_dest_bb,
+ 	early_break_vuses.
+ 	(vect_iv_increment_position, perm_mask_for_reverse,
+ 	ref_within_array_bound): New.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Update for early breaks.
+ 
+ 2023-12-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-ssa-loop-im.cc (determine_max_movement): Import insn-codes.h
+ 	and optabs-tree.h and check for vector compare motion out of gcond.
+ 
+ 2023-12-24  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR middle-end/113109
+ 	* config/cris/cris.cc (cris_eh_return_handler_rtx): New function.
+ 	* config/cris/cris-protos.h (cris_eh_return_handler_rtx): Prototype.
+ 	* config/cris/cris.h (EH_RETURN_HANDLER_RTX): Redefine to call
+ 	cris_eh_return_handler_rtx.
+ 
+ 2023-12-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (rotrsi3_extend): New
+ 	define_insn.
+ 
+ 2023-12-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-tune.h
+ 	(loongarch_rtx_cost_data::movcf2gr): New field.
+ 	(loongarch_rtx_cost_data::movcf2gr_): New method.
+ 	(loongarch_rtx_cost_data::use_movcf2gr): New method.
+ 	* config/loongarch/loongarch-def.cc
+ 	(loongarch_rtx_cost_data::loongarch_rtx_cost_data): Set movcf2gr
+ 	to COSTS_N_INSNS (7) and movgr2cf to COSTS_N_INSNS (15), based
+ 	on timing on LA464.
+ 	(loongarch_cpu_rtx_cost_data): Set movcf2gr and movgr2cf to
+ 	COSTS_N_INSNS (1) for LA664.
+ 	(loongarch_rtx_cost_optimize_size): Set movcf2gr and movgr2cf to
+ 	COSTS_N_INSNS (1) + 1.
+ 	* config/loongarch/predicates.md (loongarch_fcmp_operator): New
+ 	predicate.
+ 	* config/loongarch/loongarch.md (movfcc): Change to
+ 	define_expand.
+ 	(movfcc_internal): New define_insn.
+ 	(fcc_to_<X:mode>): New define_insn.
+ 	(cstore<ANYF:mode>4): New define_expand.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_hard_regno_mode_ok_uncached): Allow FCCmode in GPRs
+ 	and GPRs.
+ 	(loongarch_secondary_reload): Reload FCCmode via FPR and/or GPR.
+ 	(loongarch_emit_float_compare): Call gen_reg_rtx instead of
+ 	loongarch_allocate_fcc.
+ 	(loongarch_allocate_fcc): Remove.
+ 	(loongarch_move_to_gpr_cost): Handle FCC_REGS -> GR_REGS.
+ 	(loongarch_move_from_gpr_cost): Handle GR_REGS -> FCC_REGS.
+ 	(loongarch_register_move_cost): Handle FCC_REGS -> FCC_REGS,
+ 	FCC_REGS -> FP_REGS, and FP_REGS -> FCC_REGS.
+ 
+ 2023-12-23  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	* config/mips/driver-native.cc (host_detect_local_cpu):
+ 	don't add nan2008 option for -mtune=native.
+ 
+ 2023-12-23  YunQiang Su  <syq@gcc.gnu.org>
+ 
+ 	PR target/112759
+ 	* config/mips/driver-native.cc (host_detect_local_cpu):
+ 	Put the ret to the end of args of reconcat.
+ 
+ 2023-12-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113112
+ 	* config/riscv/riscv-vector-costs.cc (max_number_of_live_regs): Refine dump information.
+ 	(preferred_new_lmul_p): Make PHI initial value into live regs calculation.
+ 
+ 2023-12-22  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* omp-general.cc (omp_context_name_list_prop): Remove static qualifer.
+ 	* omp-general.h (omp_context_name_list_prop): Declare.
+ 	* tree-cfg.cc (dump_function_to_file): Intercept
+ 	"omp declare variant base" attribute for special handling.
+ 	* tree-pretty-print.cc: Include omp-general.h.
+ 	(dump_omp_context_selector): New.
+ 	(print_omp_context_selector): New.
+ 	* tree-pretty-print.h (print_omp_context_selector): Declare.
+ 
+ 2023-12-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/112758
+ 	* combine.cc (make_compopund_operation_int): Optimize AND of a SUBREG
+ 	based on nonzero_bits of SUBREG_REG and constant mask on
+ 	WORD_REGISTER_OPERATIONS targets only if it is a zero extending
+ 	MEM load.
+ 
+ 2023-12-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112941
+ 	* symtab-thunks.cc (expand_thunk): Check aggregate_value_p regardless
+ 	of whether is_gimple_reg_type (restype) or not.
+ 
+ 2023-12-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113102
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Handle unreleased
+ 	large/huge _BitInt SSA_NAMEs.
+ 
+ 2023-12-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113102
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Only
+ 	use m_data[save_data_cnt] if it is non-NULL.
+ 
+ 2023-12-22  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* Makefile.in: Allow overriding EXEPCT.
+ 
+ 2023-12-22  chenxiaolong  <chenxiaolong@loongson.cn>
+ 
+ 	* doc/extend.texi:Add modifiers to the vector of asm in the doc.
+ 	* doc/md.texi:Refine the description of the modifier 'f' in the doc.
+ 
+ 2023-12-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/112951
+ 	* doc/md.texi (cond_copysign): Document.
+ 	(cond_len_copysign): Likewise.
+ 	* optabs.def: Reorder cond_copysign to be before
+ 	cond_fmin. Likewise for cond_len_copysign.
+ 
+ 2023-12-21  Andre Vieira (lists)  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR middle-end/113040
+ 	* omp-simd-clone.cc (simd_clone_adjust_argument_types): Add multiple
+ 	vector arguments where simdlen is larger than veclen.
+ 
+ 2023-12-21  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/113044
+ 	* config/i386/i386.md (*ashlqi_ext<mode>_1): Move from the
+ 	high register of the input operand.
+ 	(*<insn>qi_ext<mode>_1): Ditto.
+ 
+ 2023-12-21  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	Revert:
+ 	2023-12-18  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/112918
+ 	* lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
+ 	(in_class_p): Restrict condition for narrowing class in case of
+ 	allow_all_reload_class_changes_p.
+ 	(process_alt_operands): Pass true for
+ 	allow_all_reload_class_changes_p in calls of in_class_p.
+ 	(curr_insn_transform): Ditto for reg operand win.
+ 
+ 2023-12-21  Julian Brown  <julian@codesourcery.com>
+ 
+ 	* gimplify.cc (omp_segregate_mapping_groups): Handle "present" groups.
+ 	(gimplify_scan_omp_clauses): Use mapping group functionality to
+ 	iterate through mapping nodes.  Remove most gimplification of
+ 	OMP_CLAUSE_MAP nodes from here, but still populate ctx->variables
+ 	splay tree.
+ 	(gimplify_adjust_omp_clauses): Move most gimplification of
+ 	OMP_CLAUSE_MAP nodes here.
+ 
+ 2023-12-21  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113093
+ 	* config/aarch64/aarch64-ldp-fusion.cc (latest_hazard_before):
+ 	If the insn is throwing, record the previous insn as a hazard to
+ 	prevent moving it from the end of the BB.
+ 
+ 2023-12-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-fold.cc (maybe_fold_comparisons_from_match_pd):
+ 	Use unsigned char buffers for lhs1 and lhs2 instead of allocating
+ 	them through XALLOCA.
+ 	* collect2.cc (maybe_run_lto_and_relink): Swap xcalloc arguments.
+ 
+ 2023-12-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113094
+ 	* config/aarch64/aarch64-early-ra.cc (apply_allocation): Stub
+ 	out instructions that are going to be deleted before iterating
+ 	over the rest.
+ 
+ 2023-12-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/112948
+ 	* config/aarch64/aarch64-early-ra.cc (find_strided_accesses): Fix
+ 	cut-&-pasto.
+ 
+ 2023-12-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112941
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Disallow merging
+ 	a cast with multiplication, division or conversion to floating point
+ 	if rhs1 of the cast is result of another single use cast in the same
+ 	bb.
+ 
+ 2023-12-21  chenxiaolong  <chenxiaolong@loongson.cn>
+ 
+ 	* doc/extend.texi:According to the documents submitted earlier,
+ 	Two problems with function return types and using the actual types
+ 	of parameters instead of variable names were found and fixed.
+ 
+ 2023-12-21  Jiajie Chen  <c@jia.je>
+ 
+ 	* doc/extend.texi(__lsx_vabsd_di): remove extra `i' in name.
+ 	(__lsx_vfrintrm_d, __lsx_vfrintrm_s, __lsx_vfrintrne_d,
+ 	__lsx_vfrintrne_s, __lsx_vfrintrp_d, __lsx_vfrintrp_s, __lsx_vfrintrz_d,
+ 	__lsx_vfrintrz_s): fix return types.
+ 	(__lsx_vld, __lsx_vldi, __lsx_vldrepl_b, __lsx_vldrepl_d,
+ 	__lsx_vldrepl_h, __lsx_vldrepl_w, __lsx_vmaxi_b, __lsx_vmaxi_d,
+ 	__lsx_vmaxi_h, __lsx_vmaxi_w, __lsx_vmini_b, __lsx_vmini_d,
+ 	__lsx_vmini_h, __lsx_vmini_w, __lsx_vsrani_d_q, __lsx_vsrarni_d_q,
+ 	__lsx_vsrlni_d_q, __lsx_vsrlrni_d_q, __lsx_vssrani_d_q,
+ 	__lsx_vssrarni_d_q, __lsx_vssrarni_du_q, __lsx_vssrlni_d_q,
+ 	__lsx_vssrlrni_du_q, __lsx_vst, __lsx_vstx, __lsx_vssrani_du_q,
+ 	__lsx_vssrlni_du_q, __lsx_vssrlrni_d_q): add missing semicolon.
+ 	(__lsx_vpickve2gr_bu, __lsx_vpickve2gr_hu): fix typo in return
+ 	type.
+ 	(__lsx_vstelm_b, __lsx_vstelm_d, __lsx_vstelm_h,
+ 	__lsx_vstelm_w): use imm type for the last argument.
+ 	(__lsx_vsigncov_b, __lsx_vsigncov_h, __lsx_vsigncov_w,
+ 	__lsx_vsigncov_d): remove duplicate definitions.
+ 
+ 2023-12-21  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md: Use zero expansion instruction.
+ 	* config/loongarch/lsx.md: Ditto.
+ 
+ 2023-12-21  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/112778
+ 	* builtins.cc (try_store_by_multiple_pieces): Drop obsolete
+ 	comment.
+ 
+ 2023-12-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR rtl-optimization/112995
+ 	* sel-sched.cc (try_replace_dest_reg): Check the validity of the
+ 	replaced insn before actually replacing dest in expr.
+ 
+ 2023-12-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* dbgcnt.def (sched_block): Remove.
+ 	* sched-rgn.cc (schedule_region): Remove the support of debug count
+ 	sched_block.
+ 
+ 2023-12-21  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/37722
+ 	* doc/extend.texi: Document that computed goto does not
+ 	call destructors.
+ 
+ 2023-12-21  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/106213
+ 	* opts-common.cc (control_warning_option): Call
+ 	handle_generated_option for all cl_var_types.
+ 
+ 2023-12-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113087
+ 	* config/riscv/riscv-v.cc (expand_select_vl): Optimize SELECT_VL.
+ 
+ 2023-12-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/113087
+ 	* config/riscv/riscv-vsetvl.cc: Disallow fusion when VL modification pollutes non AVL use.
+ 
+ 2023-12-20  Rimvydas Jasinskas  <rimvydas.jas@gmail.com>
+ 
+ 	* doc/invoke.texi: Document the new file extensions
+ 
+ 2023-12-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/111702
+ 	* cse.cc (set::mode): Move earlier.
+ 	(set::src_in_memory, set::src_volatile): Convert to bitfields.
+ 	(set::is_fake_set): New member variable.
+ 	(add_to_set): Add an is_fake_set parameter.
+ 	(find_sets_in_insn): Update calls accordingly.
+ 	(cse_insn): Do not apply REG_EQUAL notes to fake sets.  Do not
+ 	try to optimize them either, or validate changes to them.
+ 
+ 2023-12-20  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/predicates.md (move_operand): Reject symbolic operands
+ 	with a type SYMBOL_FORCE_TO_MEM.
+ 	(call_insn_operand): Support for CM_Large.
+ 	(pcrel_symbol_operand): New.
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add builtin_define
+ 	"__riscv_cmodel_large".
+ 	* config/riscv/riscv-opts.h (riscv_code_model): Add CM_LARGE.
+ 	* config/riscv/riscv-protos.h (riscv_symbol_type): Add
+ 	SYMBOL_FORCE_TO_MEM.
+ 	* config/riscv/riscv.cc (riscv_classify_symbol) Support CM_LARGE model.
+ 	(riscv_symbol_insns) Add SYMBOL_FORCE_TO_MEM.
+ 	(riscv_cannot_force_const_mem): Ditto.
+ 	(riscv_split_symbol): Ditto.
+ 	(riscv_force_address): Check pseudo reg available before force_reg.
+ 	(riscv_size_ok_for_small_data_p): Disable in CM_LARGE model.
+ 	(riscv_can_use_per_function_literal_pools_p): New.
+ 	(riscv_elf_select_rtx_section): Handle per-function literal pools.
+ 	(riscv_output_mi_thunk): Add riscv_in_thunk_func.
+ 	(riscv_option_override): Support CM_LARGE model.
+ 	(riscv_function_ok_for_sibcall): Disable sibcalls in CM_LARGE model.
+ 	(riscv_in_thunk_func): New static.
+ 	* config/riscv/riscv.md (unspec): Define UNSPEC_FORCE_FOR_MEM.
+ 	(*large_load_address): New.
+ 	* config/riscv/riscv.opt (code_model): New.
+ 
+ 2023-12-20  Wang Pengcheng  <wangpengcheng.pp@bytedance.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix condition.
+ 
+ 2023-12-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/112787
+ 	* tree-vect-generic.cc (type_for_widest_vector_mode): Change function to
+ 	use original vector type and check widest vector mode has at most the
+ 	same number of elements.
+ 	(get_compute_type): Pass original vector type rather than the element
+ 	type to type_for_widest_vector_mode and remove now obsolete check for
+ 	the number of elements.
+ 
+ 2023-12-20  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	* tree-object-size.cc (object_size_info): Remove UNKNOWNS.
+ 	Drop all references to it.
+ 	(object_sizes_set): Move unknowns propagation code to...
+ 	(gimplify_size_expressions): ... here.  Also free reexamine
+ 	bitmap.
+ 	(propagate_unknowns): New parameter UNKNOWNS.  Update callers.
+ 
+ 2023-12-20  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config/gcn/gcn.h (LIBSTDCXX): Define to "gcc".
+ 
+ 2023-12-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_transform_slp_perm_load_1): Also handle
+ 	CTOR and VIEW_CONVERT up to the load when performing chain DCE.
+ 
+ 2023-12-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vector_init_same): Remove "temp2" and reuse
+ 	"temp" instead.
+ 	(loongarch_expand_vector_init): Use gcc_unreachable () instead
+ 	of gcc_assert (0), and fix the comment for it.
+ 
+ 2023-12-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/113033
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vector_init_same): Replace gen_reg_rtx +
+ 	emit_move_insn with force_reg.
+ 	(loongarch_expand_vector_init): Likewise.
+ 
+ 2023-12-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/113034
+ 	* config/loongarch/lasx.md (UNSPEC_LASX_XVFCMP_*): Remove.
+ 	(lasx_xvfcmp_caf_<flasxfmt>): Remove.
+ 	(lasx_xvfcmp_cune_<FLASX:flasxfmt>): Remove.
+ 	(FSC256_UNS): Remove.
+ 	(fsc256): Remove.
+ 	(lasx_xvfcmp_<vfcond:fcc>_<FLASX:flasxfmt>): Remove.
+ 	(lasx_xvfcmp_<fsc256>_<FLASX:flasxfmt>): Remove.
+ 	* config/loongarch/lsx.md (UNSPEC_LSX_XVFCMP_*): Remove.
+ 	(lsx_vfcmp_caf_<flsxfmt>): Remove.
+ 	(lsx_vfcmp_cune_<FLSX:flsxfmt>): Remove.
+ 	(vfcond): Remove.
+ 	(fcc): Remove.
+ 	(FSC_UNS): Remove.
+ 	(fsc): Remove.
+ 	(lsx_vfcmp_<vfcond:fcc>_<FLSX:flsxfmt>): Remove.
+ 	(lsx_vfcmp_<fsc>_<FLSX:flsxfmt>): Remove.
+ 	* config/loongarch/simd.md
+ 	(fcond_simd): New define_code_iterator.
+ 	(<simd_isa>_<x>vfcmp_<fcond:fcond_simd>_<simdfmt>):
+ 	New define_insn.
+ 	(fcond_simd_rev): New define_code_iterator.
+ 	(fcond_rev_asm): New define_code_attr.
+ 	(<simd_isa>_<x>vfcmp_<fcond:fcond_simd_rev>_<simdfmt>):
+ 	New define_insn.
+ 	(fcond_inv): New define_code_iterator.
+ 	(fcond_inv_rev): New define_code_iterator.
+ 	(fcond_inv_rev_asm): New define_code_attr.
+ 	(<simd_isa>_<x>vfcmp_<fcond_inv>_<simdfmt>): New define_insn.
+ 	(<simd_isa>_<x>vfcmp_<fcond_inv:fcond_inv_rev>_<simdfmt>):
+ 	New define_insn.
+ 	(UNSPEC_SIMD_FCMP_CAF, UNSPEC_SIMD_FCMP_SAF,
+ 	UNSPEC_SIMD_FCMP_SEQ, UNSPEC_SIMD_FCMP_SUN,
+ 	UNSPEC_SIMD_FCMP_SUEQ, UNSPEC_SIMD_FCMP_CNE,
+ 	UNSPEC_SIMD_FCMP_SOR, UNSPEC_SIMD_FCMP_SUNE): New unspecs.
+ 	(SIMD_FCMP): New define_int_iterator.
+ 	(fcond_unspec): New define_int_attr.
+ 	(<simd_isa>_<x>vfcmp_<fcond_unspec>_<simdfmt>): New define_insn.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_lsx_cmp):
+ 	Remove unneeded special cases.
+ 
+ 2023-12-20  demin.han  <demin.han@starfivetech.com>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (max_number_of_live_regs): Fix
+ 	max live vregs calc
+ 	(preferred_new_lmul_p): Ditto
+ 
+ 2023-12-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112962
+ 	* config/i386/i386-builtins.cc (ix86_builtins): Increase by one
+ 	element.
+ 	(def_builtin): If not -fnon-call-exceptions, set TREE_NOTHROW on
+ 	the builtin FUNCTION_DECL.  Add leaf attribute to DECL_ATTRIBUTES.
+ 	(ix86_add_new_builtins): Likewise.
+ 
+ 2023-12-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112941
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): If
+ 	save_cast_conditional, instead of adding assignment of t4 to
+ 	m_data[save_data_cnt + 1] before m_gsi, add phi nodes such that
+ 	t4 propagates to m_bb loop.  For constant idx, use
+ 	m_data[save_data_cnt] rather than m_data[save_data_cnt + 1] if inside
+ 	of the m_bb loop.
+ 	(bitint_large_huge::lower_mergeable_stmt): Clear m_bb when no longer
+ 	expanding inside of that loop.
+ 	(bitint_large_huge::lower_comparison_stmt): Likewise.
+ 	(bitint_large_huge::lower_addsub_overflow): Likewise.
+ 	(bitint_large_huge::lower_mul_overflow): Likewise.
+ 	(bitint_large_huge::lower_bit_query): Likewise.
+ 
+ 2023-12-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (-Walloc-size): Add to the list of
+ 	warning options, remove unnecessary line-break.
+ 	(-Wcalloc-transposed-args): Document new warning.
+ 
+ 2023-12-20  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113062
+ 	* config/aarch64/aarch64-ldp-fusion.cc
+ 	(ldp_bb_info::track_access): Punt on accesses with invalid
+ 	register operands, move definition of mem_size closer to its
+ 	first use.
+ 
+ 2023-12-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (rvv_builder::npatterns_vid_diff_repeated_p):
+ 	New function to predicate the diff to vid is repeated or not.
+ 	(expand_const_vector): Add restriction
+ 	for the vid-diff code gen and implement general one.
+ 
+ 2023-12-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix ICE.
+ 
+ 2023-12-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR middle-end/112917
+ 	* builtins.cc (expand_bultin_stack_address): Add
+ 	STACK_POINTER_OFFSET.
+ 	* doc/extend.texi (__builtin_stack_address): Adjust.
+ 
+ 2023-12-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/113002
+ 	* cfgrtl.cc (commit_one_edge_insertion): Tolerate jumps in the
+ 	inserted sequence during expand.
+ 
+ 2023-12-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* builtins.cc (delta_type): New template class.
+ 	(set_apply_args_size, get_apply_args_size): Replace with...
+ 	(saved_apply_args_size): ... this.
+ 	(set_apply_result_size, get_apply_result_size): Replace with...
+ 	(saved_apply_result_size): ... this.
+ 	(apply_args_size, apply_result_size): Adjust.
+ 
+ 2023-12-20  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/mcore/mcore.h (CC1_SPEC): Do not set -funsigned-bitfields.
+ 
+ 2023-12-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512bwintrin.h: Allow 64 bit mask intrin usage
+ 	for -mno-evex512.
+ 	* config/i386/i386-builtin.def: Remove OPTION_MASK_ISA2_EVEX512
+ 	for 64 bit mask builtins.
+ 	* config/i386/i386.cc (ix86_hard_regno_mode_ok): Allow 64 bit
+ 	mask register for -mno-evex512.
+ 	* config/i386/i386.md (SWI1248_AVX512BWDQ_64): Remove
+ 	TARGET_EVEX512.
+ 	(*zero_extendsidi2): Change isa attribute to avx512bw.
+ 	(kmov_isa): Ditto.
+ 	(*anddi_1): Ditto.
+ 	(*andn<mode>_1): Remove TARGET_EVEX512.
+ 	(*one_cmplsi2_1_zext): Change isa attribute to avx512bw.
+ 	(*ashl<mode>3_1): Ditto.
+ 	(*lshr<mode>3_1): Ditto.
+ 	* config/i386/sse.md (SWI1248_AVX512BWDQ): Remove TARGET_EVEX512.
+ 	(SWI1248_AVX512BW): Ditto.
+ 	(SWI1248_AVX512BWDQ2): Ditto.
+ 	(*knotsi_1_zext): Ditto.
+ 	(kunpckdi): Ditto.
+ 	(SWI24_MASK): Removed.
+ 	(vec_pack_trunc_<mode>): Change iterator from SWI24_MASK to SWI24.
+ 	(vec_unpacks_lo_di): Remove TARGET_EVEX512.
+ 	(SWI48x_MASK): Removed.
+ 	(vec_unpacks_hi_<mode>): Change iterator from SWI48x_MASK to SWI48x.
+ 
+ 2023-12-20  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR tree-optimization/113012
+ 	* tree-object-size.cc (compute_builtin_object_size): Expand
+ 	comment for dynamic object sizes.
+ 	(collect_object_sizes_for): Always set COMPUTED bitmap for
+ 	dynamic object sizes.
+ 
+ 2023-12-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* ipa-strub.cc (gsi_insert_finally_seq_after_call): Likewise.
+ 	(pass_ipa_strub::adjust_at_calls_call): Likewise.
+ 
+ 2023-12-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc.cc (process_command): Use LD_PIE_SPEC only if defined.
+ 
+ 2023-12-19  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR tree-optimization/113069
+ 	* gimple-ssa-sccopy.cc (scc_discovery): Remove unused member.
+ 
+ 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* omp-general.cc (vendor_properties): Add "hpe".
+ 	(atomic_default_mem_order_properties): Add "acquire" and "release".
+ 	(omp_context_selector_matches): Handle "acquire" and "release".
+ 
+ 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* omp-selectors.h: New file.
+ 	* omp-general.h: Include omp-selectors.h.
+ 	(OMP_TSS_CODE, OMP_TSS_NAME): New.
+ 	(OMP_TS_CODE, OMP_TS_NAME): New.
+ 	(make_trait_set_selector, make_trait_selector): Adjust declarations.
+ 	(omp_construct_traits_to_codes): Likewise.
+ 	(omp_context_selector_set_compare): Likewise.
+ 	(omp_get_context_selector): Likewise.
+ 	(omp_get_context_selector_list): New.
+ 	* omp-general.cc (omp_construct_traits_to_codes): Pass length in
+ 	as argument instead of returning it.  Make it table-driven.
+ 	(omp_tss_map): New.
+ 	(kind_properties, vendor_properties, extension_properties): New.
+ 	(atomic_default_mem_order_properties): New.
+ 	(omp_ts_map): New.
+ 	(omp_check_context_selector): Simplify lookup and dispatch logic.
+ 	(omp_mark_declare_variant): Ignore variants with unknown construct
+ 	selectors.  Adjust for new representation.
+ 	(make_trait_set_selector, make_trait_selector): Adjust for new
+ 	representations.
+ 	(omp_context_selector_matches): Simplify dispatch logic.  Avoid
+ 	fixed-sized buffers and adjust call to omp_construct_traits_to_codes.
+ 	(omp_context_selector_props_compare): Adjust for new representations
+ 	and simplify dispatch logic.
+ 	(omp_context_selector_set_compare): Likewise.
+ 	(omp_context_selector_compare): Likewise.
+ 	(omp_get_context_selector): Adjust for new representations, and split
+ 	out...
+ 	(omp_get_context_selector_list): New function.
+ 	(omp_lookup_tss_code): New.
+ 	(omp_lookup_ts_code): New.
+ 	(omp_context_compute_score): Adjust for new representations.  Avoid
+ 	fixed-sized buffers and magic numbers.  Adjust call to
+ 	omp_construct_traits_to_codes.
+ 	* gimplify.cc (omp_construct_selector_matches): Avoid use of
+ 	fixed-size buffer.  Adjust call to omp_construct_traits_to_codes.
+ 
+ 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* omp-general.h (OMP_TP_NAMELIST_NODE): New.
+ 	* omp-general.cc (omp_context_name_list_prop): Move earlier
+ 	in the file, and adjust for new representation.
+ 	(omp_check_context_selector): Adjust this too.
+ 	(omp_context_selector_props_compare): Likewise.
+ 
+ 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* omp-general.h (OMP_TS_SCORE_NODE): New.
+ 	(OMP_TSS_ID, OMP_TSS_TRAIT_SELECTORS): New.
+ 	(OMP_TS_ID, OMP_TS_SCORE, OMP_TS_PROPERTIES): New.
+ 	(OMP_TP_NAME, OMP_TP_VALUE): New.
+ 	(make_trait_set_selector): Declare.
+ 	(make_trait_selector): Declare.
+ 	(make_trait_property): Declare.
+ 	(omp_constructor_traits_to_codes): Rename to
+ 	omp_construct_traits_to_codes.
+ 	* omp-general.cc (omp_constructor_traits_to_codes): Rename
+ 	to omp_construct_traits_to_codes.  Use new accessors.
+ 	(omp_check_context_selector): Use new accessors.
+ 	(make_trait_set_selector): New.
+ 	(make_trait_selector): New.
+ 	(make_trait_property): New.
+ 	(omp_context_name_list_prop): Use new accessors.
+ 	(omp_context_selector_matches): Use new accessors.
+ 	(omp_context_selector_props_compare): Use new accessors.
+ 	(omp_context_selector_set_compare): Use new accessors.
+ 	(omp_get_context_selector): Use new accessors.
+ 	(omp_context_compute_score): Use new accessors.
+ 	* gimplify.cc (omp_construct_selector_matches): Adjust for renaming
+ 	of omp_constructor_traits_to_codes.
+ 
+ 2023-12-19  David Faust  <david.faust@oracle.com>
+ 
+ 	PR debug/111735
+ 	* btfout.cc (btf_fwd_to_enum_p): New.
+ 	(btf_asm_type_ref): Special case references to enum forwards.
+ 	(btf_asm_type): Special case enum forwards. Rename btf_size_type to
+ 	btf_size, and change chained ifs switching on btf_kind into else ifs.
+ 
+ 2023-12-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113080
+ 	* tree-scalar-evolution.cc (expression_expensive_p): Allow
+ 	a tiny bit of growth due to expansion of shared trees.
+ 	(final_value_replacement_loop): Add comment.
+ 
+ 2023-12-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113073
+ 	* tree-vect-stmts.cc (vectorizable_load): Properly ensure
+ 	to exempt only vector-size aligned overreads.
+ 
+ 2023-12-19  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc
+ 	(ix86_convert_const_wide_int_to_broadcast): Remove static.
+ 	(ix86_expand_move): Don't attempt to convert wide constants
+ 	to SSE using ix86_convert_const_wide_int_to_broadcast here.
+ 	(ix86_split_long_move): Always un-cprop multi-word constants.
+ 	* config/i386/i386-expand.h
+ 	(ix86_convert_const_wide_int_to_broadcast): Prototype here.
+ 	* config/i386/i386-features.cc: Include i386-expand.h.
+ 	(timode_scalar_chain::convert_insn): When converting TImode to
+ 	V1TImode, try ix86_convert_const_wide_int_to_broadcast.
+ 
+ 2023-12-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Use builder.inner_mode ().
+ 
+ 2023-12-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112816
+ 	* config/i386/mmx.md (signbitv2sf2, signbit<mode>2): Force operands[1]
+ 	into a REG.
+ 
+ 2023-12-19  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/113061
+ 	* config/aarch64/predicates.md (aarch64_stp_reg_operand): Fix
+ 	parentheses to match intent.
+ 
+ 2023-12-19  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR rtl-optimization/112525
+ 	PR target/30271
+ 	* dse.cc (get_group_info): Add arg_pointer_rtx as frame_related.
+ 	(check_mem_read_rtx): Add parameter to indicate if it is checking mem
+ 	for call insn.
+ 	(scan_insn): Add mem checking on call usage.
+ 
+ 2023-12-19  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
+ 					Add new macro for match function.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
+ 					Add one more parameter for macro expanding.
+ 	(handle_pragma_vector): Add match function calls.
+ 	* config/riscv/riscv-vector-builtins.h (enum required_ext):
+ 				Add enum defination for required extension.
+ 	(struct function_group_info): Add one more parameter for checking required-ext.
+ 
+ 2023-12-18  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/112918
+ 	* lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
+ 	(in_class_p): Restrict condition for narrowing class in case of
+ 	allow_all_reload_class_changes_p.
+ 	(process_alt_operands): Pass true for
+ 	allow_all_reload_class_changes_p in calls of in_class_p.
+ 	(curr_insn_transform): Ditto for reg operand win.
+ 
+ 2023-12-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (redundant compare peephole2):
+ 	New peephole2 pattern.
+ 
+ 2023-12-18  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_encode_section_info): Replace
+ 	SYMBOL_REF_LOCAL_P with decl_binds_to_current_def_p.
+ 
+ 2023-12-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/113054
+ 	* gimple-ssa-sccopy.cc: Wrap the local types
+ 	with an anonymous namespace.
+ 
+ 2023-12-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/111975
+ 	* tree-pretty-print.cc (dump_generic_node): Dump
+ 	sizetype as __SIZETYPE__ with TDF_GIMPLE.
+ 	Dump unnamed vector types as T [[gnu::vector_size(n)]] with
+ 	TDF_GIMPLE.
+ 	* tree-ssa-address.cc (create_mem_ref_raw): Never generate
+ 	a NULL STEP when INDEX is specified.
+ 
+ 2023-12-18  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <hppa*-hp-hpux10>: Remove section.
+ 	(Specific) <hppa*-hp-hpux11>: Remove references to GCC 2.95 and
+ 	3.0. Also libffi has been ported now.
+ 
+ 2023-12-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112432
+ 	* config/riscv/riscv.md (none,W21,W42,W84,W43,W86,W87): Add W0.
+ 	(none,W21,W42,W84,W43,W86,W87,W0): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-12-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR c/111975
+ 	* tree-pretty-print.cc (dump_mem_ref): Use TDF_GIMPLE path
+ 	also for TARGET_MEM_REF and amend it.
+ 
+ 2023-12-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_regmode_natural_size): Fix ICE for
+ 	FIXED-VLMAX of -march=rv32gc_zve32f.
+ 
+ 2023-12-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113013
+ 	* tree-object-size.cc (alloc_object_size): Return size_unknown if
+ 	corresponding argument(s) don't have integral type or have integral
+ 	type with higher precision than sizetype.  Don't check arg1 >= 0
+ 	uselessly.  Compare argument indexes against gimple_call_num_args
+ 	in unsigned type rather than int.  Formatting fixes.
+ 
+ 2023-12-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Take step2
+ 	instead of step1 for second series.
+ 
+ 2023-12-18  liushuyu  <liushuyu011@gmail.com>
+ 
+ 	* config.gcc: Add loongarch-d.o to d_target_objs for LoongArch
+ 	architecture.
+ 	* config/loongarch/t-loongarch: Add object target for loongarch-d.cc.
+ 	* config/loongarch/loongarch-d.cc
+ 	(loongarch_d_target_versions): add interface function to define builtin
+ 	D versions for LoongArch architecture.
+ 	(loongarch_d_handle_target_float_abi): add interface function to define
+ 	builtin D traits for LoongArch architecture.
+ 	(loongarch_d_register_target_info): add interface function to register
+ 	loongarch_d_handle_target_float_abi function.
+ 	* config/loongarch/loongarch-d.h
+ 	(loongarch_d_target_versions): add function prototype.
+ 	(loongarch_d_register_target_info): Likewise.
+ 
+ 2023-12-18  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/vector.md: Add viota avl_type attribute.
+ 
+ 2023-12-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_mult_with_const_int):
+ 	Change int into HOST_WIDE_INT.
+ 	(riscv_legitimize_poly_move): Ditto.
+ 
+ 2023-12-17  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (alslsi3_extend): New
+ 	define_insn.
+ 
+ 2023-12-17  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/112936
+ 	* config/loongarch/loongarch-def.cc
+ 	(loongarch_rtx_cost_data::loongarch_rtx_cost_data): Update
+ 	instruction costs per micro-benchmark results.
+ 	(loongarch_rtx_cost_optimize_size): Set all instruction costs
+ 	to (COSTS_N_INSNS (1) + 1).
+ 	* config/loongarch/loongarch.cc (loongarch_rtx_costs): Remove
+ 	special case for multiplication when optimizing for size.
+ 	Adjust division cost when TARGET_64BIT && !TARGET_DIV32.
+ 	Account the extra cost when TARGET_CHECK_ZERO_DIV and
+ 	optimizing for speed.
+ 
+ 2023-12-17  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-def.cc (rtl.h): Include.
+ 	(COSTS_N_INSNS): Remove the macro definition.
+ 
+ 2023-12-17  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <hppa*-hp-hpux*>: Remove a note on
+ 	GCC 4.3.
+ 	Remove details on how the HP assembler, which we document as not
+ 	working, breaks.
+ 	<hppa*-hp-hpux11>: Note that only the HP linker is supported.
+ 
+ 2023-12-17  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR other/69374
+ 	* doc/install.texi (Installing GCC): Remove reference to
+ 	buildstat.html.
+ 	(Testing): Ditto.
+ 	(Final install): Remove section on submitting information for
+ 	buildstat.html. Adjust the request for feedback.
+ 
+ 2023-12-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* json.cc (print_escaped_json_string): New, taken from
+ 	string::print.
+ 	(object::print): Use it for printing keys.
+ 	(string::print): Move implementation to
+ 	print_escaped_json_string.
+ 	(selftest::test_writing_objects): Add a key containing
+ 	quote, backslash, and control characters.
+ 
+ 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-feature-deps.h (fmv_deps_<FEAT_NAME>):
+ 	Define aarch64_feature_flags mask foreach FMV feature.
+ 	* config/aarch64/aarch64-option-extensions.def: Use new macros
+ 	to define FMV feature extensions.
+ 	* config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p):
+ 	Check for target_version attribute after processing target
+ 	attribute.
+ 	(aarch64_fmv_feature_data): New.
+ 	(aarch64_parse_fmv_features): New.
+ 	(aarch64_process_target_version_attr): New.
+ 	(aarch64_option_valid_version_attribute_p): New.
+ 	(get_feature_mask_for_version): New.
+ 	(compare_feature_masks): New.
+ 	(aarch64_compare_version_priority): New.
+ 	(build_ifunc_arg_type): New.
+ 	(make_resolver_func): New.
+ 	(add_condition_to_bb): New.
+ 	(dispatch_function_versions): New.
+ 	(aarch64_generate_version_dispatcher_body): New.
+ 	(aarch64_get_function_versions_dispatcher): New.
+ 	(aarch64_common_function_versions): New.
+ 	(aarch64_mangle_decl_assembler_name): New.
+ 	(TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P): New implementation.
+ 	(TARGET_OPTION_EXPANDED_CLONES_ATTRIBUTE): New implementation.
+ 	(TARGET_OPTION_FUNCTION_VERSIONS): New implementation.
+ 	(TARGET_COMPARE_VERSION_PRIORITY): New implementation.
+ 	(TARGET_GENERATE_VERSION_DISPATCHER_BODY): New implementation.
+ 	(TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): New implementation.
+ 	(TARGET_MANGLE_DECL_ASSEMBLER_NAME): New implementation.
+ 	* config/aarch64/aarch64.h (TARGET_HAS_FMV_TARGET_ATTRIBUTE):
+ 	Set target macro.
+ 	* config/arm/aarch-common.h (enum aarch_parse_opt_result): Add
+ 	new value to report duplicate FMV feature.
+ 	* common/config/aarch64/cpuinfo.h: New file.
+ 
+ 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* attribs.cc (decl_attributes): Pass attribute name to target.
+ 	(is_function_default_version): Update comment to specify
+ 	incompatibility with target_version attributes.
+ 	* cgraphclones.cc (cgraph_node::create_version_clone_with_body):
+ 	Call valid_version_attribute_p for target_version attributes.
+ 	* defaults.h (TARGET_HAS_FMV_TARGET_ATTRIBUTE): New macro.
+ 	* target.def (valid_version_attribute_p): New hook.
+ 	* doc/tm.texi.in: Add new hook.
+ 	* doc/tm.texi: Regenerate.
+ 	* multiple_target.cc (create_dispatcher_calls): Remove redundant
+ 	is_function_default_version check.
+ 	(expand_target_clones): Use target macro to pick attribute name.
+ 	* targhooks.cc (default_target_option_valid_version_attribute_p):
+ 	New.
+ 	* targhooks.h (default_target_option_valid_version_attribute_p):
+ 	New.
+ 	* tree.h (DECL_FUNCTION_VERSIONED): Update comment to include
+ 	target_version attributes.
+ 
+ 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(struct aarch64_option_extension): Remove unused field.
+ 	(all_extensions): Ditto.
+ 	(aarch64_get_extension_string_for_isa_flags): Remove filtering
+ 	of features without native detection.
+ 	* config/aarch64/driver-aarch64.cc (host_detect_local_cpu):
+ 	Explicitly add expected features that lack cpuinfo detection.
+ 
+ 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(aarch64_get_extension_string_for_isa_flags): Fix generation of
+ 	the "+nocrypto" extension.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_CRYPTO): Remove.
+ 	(TARGET_CRYPTO): Remove.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
+ 	Don't use TARGET_CRYPTO.
+ 
+ 2023-12-15  Mary Bennett  <mary.bennett@embecosm.com>
+ 
+ 	* config/riscv/constraints.md: CVP2 -> CV_alu_pow2.
+ 	* config/riscv/corev.md: Likewise.
+ 
+ 2023-12-15  Mary Bennett  <mary.bennett@embecosm.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add XCVelw.
+ 	* config/riscv/corev.def: Likewise.
+ 	* config/riscv/corev.md: Likewise.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): Likewise.
+ 	* config/riscv/riscv-ftypes.def: Likewise.
+ 	* config/riscv/riscv.opt: Likewise.
+ 	* doc/extend.texi: Add XCVelw builtin documentation.
+ 	* doc/sourcebuild.texi: Likewise.
+ 
+ 2023-12-15  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/110201
+ 	* config/riscv/constraints.md (D03, DsA): Remove unused constraints.
+ 	* config/riscv/predicates.md (const_0_3_operand): New predicate.
+ 	(const_0_10_operand): Likewise.
+ 	* config/riscv/crypto.md (riscv_aes32dsi): Use new predicate.  Drop
+ 	unnecessary constraint.
+ 	(riscv_aes32dsmi, riscv_aes64im, riscv_aes32esi): Likewise.
+ 	(riscv_aes32esmi, *riscv_<sm4_op>_si): Likewise.
+ 	(riscv_<sm4_op>_di_extend, riscv_<sm4_op>_si): Likewise.
+ 
+ 2023-12-15  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config.gcc: Add aarch64-ldp-fusion.o to extra_objs for aarch64.
+ 	* config/aarch64/aarch64-passes.def: Add copies of pass_ldp_fusion
+ 	before and after RA.
+ 	* config/aarch64/aarch64-protos.h (make_pass_ldp_fusion): Declare.
+ 	* config/aarch64/aarch64.opt (-mearly-ldp-fusion): New.
+ 	(-mlate-ldp-fusion): New.
+ 	(--param=aarch64-ldp-alias-check-limit): New.
+ 	(--param=aarch64-ldp-writeback): New.
+ 	* config/aarch64/t-aarch64: Add rule for aarch64-ldp-fusion.o.
+ 	* config/aarch64/aarch64-ldp-fusion.cc: New file.
+ 	* doc/invoke.texi (AArch64 Options): Document new
+ 	-m{early,late}-ldp-fusion options.
+ 
+ 2023-12-15  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64-ldpstp.md: Abstract ldp/stp
+ 	representation from peepholes, allowing use of new form.
+ 	* config/aarch64/aarch64-modes.def (V2x4QImode): Define.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_finish_ldpstp_peephole): Declare.
+ 	(aarch64_swap_ldrstr_operands): Delete declaration.
+ 	(aarch64_gen_load_pair): Adjust parameters.
+ 	(aarch64_gen_store_pair): Likewise.
+ 	* config/aarch64/aarch64-simd.md (load_pair<DREG:mode><DREG2:mode>):
+ 	Delete.
+ 	(vec_store_pair<DREG:mode><DREG2:mode>): Delete.
+ 	(load_pair<VQ:mode><VQ2:mode>): Delete.
+ 	(vec_store_pair<VQ:mode><VQ2:mode>): Delete.
+ 	* config/aarch64/aarch64.cc (aarch64_pair_mode_for_mode): New.
+ 	(aarch64_gen_store_pair): Adjust to use new unspec form of stp.
+ 	Drop second mem from parameters.
+ 	(aarch64_gen_load_pair): Likewise.
+ 	(aarch64_pair_mem_from_base): New.
+ 	(aarch64_save_callee_saves): Emit REG_CFA_OFFSET notes for
+ 	frame-related saves.  Adjust call to aarch64_gen_store_pair
+ 	(aarch64_restore_callee_saves): Adjust calls to
+ 	aarch64_gen_load_pair to account for change in interface.
+ 	(aarch64_process_components): Likewise.
+ 	(aarch64_classify_address): Handle 32-byte pair mems in
+ 	LDP_STP_N case.
+ 	(aarch64_print_operand): Likewise.
+ 	(aarch64_copy_one_block_and_progress_pointers): Adjust calls to
+ 	account for change in aarch64_gen_{load,store}_pair interface.
+ 	(aarch64_set_one_block_and_progress_pointer): Likewise.
+ 	(aarch64_finish_ldpstp_peephole): New.
+ 	(aarch64_gen_adjusted_ldpstp): Adjust to use generation helper.
+ 	* config/aarch64/aarch64.md (ldpstp): New attribute.
+ 	(load_pair_sw_<SX:mode><SX2:mode>): Delete.
+ 	(load_pair_dw_<DX:mode><DX2:mode>): Delete.
+ 	(load_pair_dw_<TX:mode><TX2:mode>): Delete.
+ 	(*load_pair_<ldst_sz>): New.
+ 	(*load_pair_16): New.
+ 	(store_pair_sw_<SX:mode><SX2:mode>): Delete.
+ 	(store_pair_dw_<DX:mode><DX2:mode>): Delete.
+ 	(store_pair_dw_<TX:mode><TX2:mode>): Delete.
+ 	(*store_pair_<ldst_sz>): New.
+ 	(*store_pair_16): New.
+ 	(*load_pair_extendsidi2_aarch64): Adjust to use new form.
+ 	(*zero_extendsidi2_aarch64): Likewise.
+ 	* config/aarch64/iterators.md (VPAIR): New.
+ 	* config/aarch64/predicates.md (aarch64_mem_pair_operand): Change to
+ 	a special predicate derived from aarch64_mem_pair_operator.
+ 
+ 2023-12-15  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_ldpstp_operand_mode_p): Declare.
+ 	* config/aarch64/aarch64.cc (aarch64_gen_storewb_pair): Build RTL
+ 	directly instead of invoking named pattern.
+ 	(aarch64_gen_loadwb_pair): Likewise.
+ 	(aarch64_ldpstp_operand_mode_p): New.
+ 	* config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Replace with
+ 	...
+ 	(*loadwb_post_pair_<ldst_sz>): ... this. Generalize as described
+ 	in cover letter.
+ 	(loadwb_pair<GPF:mode>_<P:mode>): Delete (superseded by the
+ 	above).
+ 	(*loadwb_post_pair_16): New.
+ 	(*loadwb_pre_pair_<ldst_sz>): New.
+ 	(loadwb_pair<TX:mode>_<P:mode>): Delete.
+ 	(*loadwb_pre_pair_16): New.
+ 	(storewb_pair<GPI:mode>_<P:mode>): Replace with ...
+ 	(*storewb_pre_pair_<ldst_sz>): ... this.  Generalize as
+ 	described in cover letter.
+ 	(*storewb_pre_pair_16): New.
+ 	(storewb_pair<GPF:mode>_<P:mode>): Delete.
+ 	(*storewb_post_pair_<ldst_sz>): New.
+ 	(storewb_pair<TX:mode>_<P:mode>): Delete.
+ 	(*storewb_post_pair_16): New.
+ 	* config/aarch64/predicates.md (aarch64_mem_pair_operator): New.
+ 	(pmode_plus_operator): New.
+ 	(aarch64_ldp_reg_operand): New.
+ 	(aarch64_stp_reg_operand): New.
+ 
+ 2023-12-15  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_print_address_internal): Handle SVE
+ 	modes when printing ldp/stp addresses.
+ 
+ 2023-12-15  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_const_zero_rtx_p): New.
+ 	* config/aarch64/aarch64.cc (aarch64_const_zero_rtx_p): New.
+ 	Use it ...
+ 	(aarch64_print_operand): ... here.  Recognize CONST0_RTXes in
+ 	modes other than VOIDmode.
+ 
+ 2023-12-15  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc:
+ 	(riscv_implied_info): Add zvfbfmin item.
+ 	(riscv_ext_version_table): Ditto.
+ 	(riscv_ext_flag_table): Ditto.
+ 	* config/riscv/riscv.opt:
+ 	(MASK_ZVFBFMIN): New macro.
+ 	(MASK_VECTOR_ELEN_BF_16): Ditto.
+ 	(TARGET_ZVFBFMIN): Ditto.
+ 
+ 2023-12-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.opt (aarch64_mops_memmove_size_threshold):
+ 	Change default.
+ 	* config/aarch64/aarch64.md (cpymemdi): Add a parameter.
+ 	(movmemdi): Call aarch64_expand_cpymem.
+ 	* config/aarch64/aarch64.cc (aarch64_copy_one_block): Rename function,
+ 	simplify, support storing generated loads/stores.
+ 	(aarch64_expand_cpymem): Support expansion of memmove.
+ 	* config/aarch64/aarch64-protos.h (aarch64_expand_cpymem): Add bool arg.
+ 
+ 2023-12-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_merge_patterns): Fix bug.
+ 
+ 2023-12-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* target.h (struct bitint_info): Add abi_limb_mode member, adjust
+ 	comment.
+ 	* target.def (bitint_type_info): Mention abi_limb_mode instead of
+ 	limb_mode.
+ 	* varasm.cc (output_constant): Use abi_limb_mode rather than
+ 	limb_mode.
+ 	* stor-layout.cc (finish_bitfield_representative): Likewise.  Assert
+ 	that if precision is smaller or equal to abi_limb_mode precision or
+ 	if info.big_endian is different from WORDS_BIG_ENDIAN, info.limb_mode
+ 	must be the same as info.abi_limb_mode.
+ 	(layout_type): Use abi_limb_mode rather than limb_mode.
+ 	* gimple-fold.cc (clear_padding_bitint_needs_padding_p): Likewise.
+ 	(clear_padding_type): Likewise.
+ 	* config/i386/i386.cc (ix86_bitint_type_info): Also set
+ 	info->abi_limb_mode.
+ 	* doc/tm.texi: Regenerated.
+ 
+ 2023-12-15  Julian Brown  <julian@codesourcery.com>
+ 
+ 	* gimplify.cc (extract_base_bit_offset): Add VARIABLE_OFFSET parameter.
+ 	(omp_get_attachment, omp_group_last, omp_group_base,
+ 	omp_directive_maps_explicitly): Add GOMP_MAP_STRUCT_UNORD support.
+ 	(omp_accumulate_sibling_list): Update calls to extract_base_bit_offset.
+ 	Support GOMP_MAP_STRUCT_UNORD.
+ 	(omp_build_struct_sibling_lists, gimplify_scan_omp_clauses,
+ 	gimplify_adjust_omp_clauses, gimplify_omp_target_update): Add
+ 	GOMP_MAP_STRUCT_UNORD support.
+ 	* omp-low.cc (lower_omp_target): Add GOMP_MAP_STRUCT_UNORD support.
+ 	* tree-pretty-print.cc (dump_omp_clause): Likewise.
+ 
+ 2023-12-15  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/112906
+ 	* config/aarch64/aarch64-sve.md (@aarch64_vec_duplicate_vq<mode>_le):
+ 	Use force_reload_address to reload addresses that aren't suitable for
+ 	ld1rq in the pre-RA splitter.
+ 
+ 2023-12-15  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/112906
+ 	* emit-rtl.cc (address_reload_context::emit_autoinc): New.
+ 	(force_reload_address): New.
+ 	* emit-rtl.h (struct address_reload_context): Declare.
+ 	(force_reload_address): Declare.
+ 	* lra-constraints.cc (class lra_autoinc_reload_context): New.
+ 	(emit_inc): Drop IN parameter, invoke
+ 	code moved to emit-rtl.cc:address_reload_context::emit_autoinc.
+ 	(curr_insn_transform): Drop redundant IN parameter in call to
+ 	emit_inc.
+ 	* recog.h (class recog_data_saver): New.
+ 
+ 2023-12-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113024
+ 	* match.pd (two conversions in a row): Simplify scalar integer
+ 	sign-extension followed by truncation.
+ 
+ 2023-12-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/113003
+ 	* gimple-lower-bitint.cc (arith_overflow_arg_kind): New function.
+ 	(gimple_lower_bitint): Use it to catch .{ADD,SUB,MUL}_OVERFLOW
+ 	calls with large/huge INTEGER_CST arguments.
+ 
+ 2023-12-15  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Specific) <nvptx-*-none>: Update nvptx-tools
+ 	Github link.
+ 
+ 2023-12-15  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/112824
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Sync ix86_move_max/ix86_store_max with prefer_vector_width when
+ 	it is explicitly set.
+ 
+ 2023-12-15  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Do not
+ 	set Grand Ridge depending on RAO-INT.
+ 	* config/i386/i386.h: Remove PTA_RAOINT from PTA_GRANDRIDGE.
+ 	* doc/invoke.texi: Adjust documentation.
+ 
+ 2023-12-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112387
+ 	* config/riscv/riscv.cc: Adapt generic cost model same ARM SVE.
+ 
+ 2023-12-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111153
+ 	* tree-vect-loop.cc (vect_estimate_min_profitable_iters):
+ 	Remove address cost for select_vl/decrement IV.
+ 
+ 2023-12-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/111260
+ 	* optabs.cc (emit_conditional_move): Change the modes to be
+ 	equal before forcing the constant to a register.
+ 
+ 2023-12-14  Di Zhao  <dizhao@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/110279
+ 	* doc/invoke.texi: New parameter fully-pipelined-fma.
+ 	* params.opt: New parameter fully-pipelined-fma.
+ 	* tree-ssa-reassoc.cc (get_mult_latency_consider_fma): Return
+ 	the latency of MULT_EXPRs that can't be hidden by the FMAs.
+ 	(get_reassociation_width): Search for a smaller width
+ 	considering the benefit of fully pipelined FMA.
+ 	(rank_ops_for_fma): Return the number of MULT_EXPRs.
+ 	(reassociate_bb): Pass the number of MULT_EXPRs to
+ 	get_reassociation_width; avoid calling
+ 	get_reassociation_width twice.
+ 
+ 2023-12-14  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/112999
+ 	* expmed.cc (extract_bit_field_1):  Ensure better mode
+ 	has fitting unit_precision.
+ 
+ 2023-12-14  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/112773
+ 	* config/riscv/autovec.md (vec_extract<mode>bi): New expander
+ 	calling vec_extract<mode>qi.
+ 	* config/riscv/riscv-protos.h (riscv_legitimize_poly_move):
+ 	Export.
+ 	(emit_vec_extract): Change argument from poly_int64 to rtx.
+ 	* config/riscv/riscv-v.cc (shuffle_extract_and_slide1up_patterns):
+ 	Ditto.
+ 	* config/riscv/riscv.cc (riscv_legitimize_poly_move): Export.
+ 	(riscv_legitimize_move): Use rtx instead of poly_int64.
+ 	* expmed.cc (store_bit_field_1): Change BITSIZE to PRECISION.
+ 	(extract_bit_field_1): Change BITSIZE to PRECISION and use
+ 	return mode from insn_data as target mode.
+ 
+ 2023-12-14  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* doc/extend.texi: Document AArch64 Operand Modifiers.
+ 
+ 2023-12-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/113018
+ 	* tree-vect-slp.cc (vect_slp_check_for_roots): Only start
+ 	SLP discovery from stmts with a LHS.
+ 
+ 2023-12-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112793
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Already
+ 	code-generated constant/external nodes are OK.
+ 
+ 2023-12-14  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-early-ra.cc (allocno_info::is_equiv): New
+ 	member variable.
+ 	(allocno_info::equiv_allocno): Replace with...
+ 	(allocno_info::related_allocno): ...this member variable.
+ 	(allocno_info::chain_prev): Put into an enum with...
+ 	(allocno_info::last_use_point): ...this new member variable.
+ 	(color_info::num_fpr_preferences): New member variable.
+ 	(early_ra::m_shared_allocnos): Likewise.
+ 	(allocno_info::is_shared): New member function.
+ 	(allocno_info::is_equiv_to): Likewise.
+ 	(early_ra::dump_allocnos): Dump sharing information.  Tweak column
+ 	widths.
+ 	(early_ra::fpr_preference): Check ALLOWS_NONFPR before returning -2.
+ 	(early_ra::start_new_region): Handle m_shared_allocnos.
+ 	(early_ra::create_allocno_group): Set related_allocno rather than
+ 	equiv_allocno.
+ 	(early_ra::record_allocno_use): Likewise.  Detect multiple calls
+ 	for the same program point.  Update last_use_point and is_equiv.
+ 	Clear is_strong_copy_src rather than is_strong_copy_dest.
+ 	(early_ra::record_allocno_def): Use related_allocno rather than
+ 	equiv_allocno.  Update last_use_point.
+ 	(early_ra::valid_equivalence_p): Replace with...
+ 	(early_ra::find_related_start): ...this new function.
+ 	(early_ra::record_copy): Look for cases where a destination copy chain
+ 	can be shared with the source allocno.
+ 	(early_ra::find_strided_accesses): Update for equiv_allocno->
+ 	related_allocno change.  Only call consider_strong_copy_src_chain
+ 	at the head of a copy chain.
+ 	(early_ra::is_chain_candidate): Skip shared allocnos.  Update for
+ 	new representation of equivalent allocnos.
+ 	(early_ra::chain_allocnos): Update for new representation of
+ 	equivalent allocnos.
+ 	(early_ra::try_to_chain_allocnos): Likewise.
+ 	(early_ra::merge_fpr_info): New function, split out from...
+ 	(early_ra::set_single_color_rep): ...here.
+ 	(early_ra::form_chains): Handle shared allocnos.
+ 	(early_ra::process_copies): Count the number of FPR preferences.
+ 	(early_ra::cmp_decreasing_size): Rename to...
+ 	(early_ra::cmp_allocation_order): ...this.  Sort equal-sized groups
+ 	by the number of FPR preferences.
+ 	(early_ra::finalize_allocation): Handle shared allocnos.
+ 	(early_ra::process_region): Reset chain_prev as well as chain_next.
+ 
+ 2023-12-14  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR middle-end/112938
+ 	* ipa-strub.cc (pass_ipa_strub::execute): Pass volatile args
+ 	by reference to internal strub wrapped bodies.
+ 
+ 2023-12-14  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR middle-end/112938
+ 	* ipa-strub.cc (pass_ipa_strub::execute): Handle promoted
+ 	volatile args in internal strub.  Simplify.
+ 
+ 2023-12-14  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* gimple-ssa-sccopy.cc: '#define INCLUDE_ALGORITHM' instead of
+ 	'#include <algorithm>'.
+ 
+ 2023-12-14  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	Revert:
+ 	2023-12-12  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-functions.def (DEF_RVV_FUNCTION):
+ 							Add AVAIL argument.
+ 	(read_vl): Using AVAIL argument default value.
+ 	(vlenb): Ditto.
+ 	(vsetvl): Ditto.
+ 	(vsetvlmax): Ditto.
+ 	(vle): Ditto.
+ 	(vse): Ditto.
+ 	(vlm): Ditto.
+ 	(vsm): Ditto.
+ 	(vlse): Ditto.
+ 	(vsse): Ditto.
+ 	(vluxei8): Ditto.
+ 	(vluxei16): Ditto.
+ 	(vluxei32): Ditto.
+ 	(vluxei64): Ditto.
+ 	(vloxei8): Ditto.
+ 	(vloxei16): Ditto.
+ 	(vloxei32): Ditto.
+ 	(vloxei64): Ditto.
+ 	(vsuxei8): Ditto.
+ 	(vsuxei16): Ditto.
+ 	(vsuxei32): Ditto.
+ 	(vsuxei64): Ditto.
+ 	(vsoxei8): Ditto.
+ 	(vsoxei16): Ditto.
+ 	(vsoxei32): Ditto.
+ 	(vsoxei64): Ditto.
+ 	(vleff): Ditto.
+ 	(vadd): Ditto.
+ 	(vsub): Ditto.
+ 	(vrsub): Ditto.
+ 	(vneg): Ditto.
+ 	(vwaddu): Ditto.
+ 	(vwsubu): Ditto.
+ 	(vwadd): Ditto.
+ 	(vwsub): Ditto.
+ 	(vwcvt_x): Ditto.
+ 	(vwcvtu_x): Ditto.
+ 	(vzext): Ditto.
+ 	(vsext): Ditto.
+ 	(vadc): Ditto.
+ 	(vmadc): Ditto.
+ 	(vsbc): Ditto.
+ 	(vmsbc): Ditto.
+ 	(vand): Ditto.
+ 	(vor): Ditto.
+ 	(vxor): Ditto.
+ 	(vnot): Ditto.
+ 	(vsll): Ditto.
+ 	(vsra): Ditto.
+ 	(vsrl): Ditto.
+ 	(vnsrl): Ditto.
+ 	(vnsra): Ditto.
+ 	(vncvt_x): Ditto.
+ 	(vmseq): Ditto.
+ 	(vmsne): Ditto.
+ 	(vmsltu): Ditto.
+ 	(vmslt): Ditto.
+ 	(vmsleu): Ditto.
+ 	(vmsle): Ditto.
+ 	(vmsgtu): Ditto.
+ 	(vmsgt): Ditto.
+ 	(vmsgeu): Ditto.
+ 	(vmsge): Ditto.
+ 	(vminu): Ditto.
+ 	(vmin): Ditto.
+ 	(vmaxu): Ditto.
+ 	(vmax): Ditto.
+ 	(vmul): Ditto.
+ 	(vmulh): Ditto.
+ 	(vmulhu): Ditto.
+ 	(vmulhsu): Ditto.
+ 	(vdivu): Ditto.
+ 	(vdiv): Ditto.
+ 	(vremu): Ditto.
+ 	(vrem): Ditto.
+ 	(vwmul): Ditto.
+ 	(vwmulu): Ditto.
+ 	(vwmulsu): Ditto.
+ 	(vmacc): Ditto.
+ 	(vnmsac): Ditto.
+ 	(vmadd): Ditto.
+ 	(vnmsub): Ditto.
+ 	(vwmaccu): Ditto.
+ 	(vwmacc): Ditto.
+ 	(vwmaccsu): Ditto.
+ 	(vwmaccus): Ditto.
+ 	(vmerge): Ditto.
+ 	(vmv_v): Ditto.
+ 	(vsaddu): Ditto.
+ 	(vsadd): Ditto.
+ 	(vssubu): Ditto.
+ 	(vssub): Ditto.
+ 	(vaaddu): Ditto.
+ 	(vaadd): Ditto.
+ 	(vasubu): Ditto.
+ 	(vasub): Ditto.
+ 	(vsmul): Ditto.
+ 	(vssrl): Ditto.
+ 	(vssra): Ditto.
+ 	(vnclipu): Ditto.
+ 	(vnclip): Ditto.
+ 	(vfadd): Ditto.
+ 	(vfsub): Ditto.
+ 	(vfrsub): Ditto.
+ 	(vfadd_frm): Ditto.
+ 	(vfsub_frm): Ditto.
+ 	(vfrsub_frm): Ditto.
+ 	(vfwadd): Ditto.
+ 	(vfwsub): Ditto.
+ 	(vfwadd_frm): Ditto.
+ 	(vfwsub_frm): Ditto.
+ 	(vfmul): Ditto.
+ 	(vfdiv): Ditto.
+ 	(vfrdiv): Ditto.
+ 	(vfmul_frm): Ditto.
+ 	(vfdiv_frm): Ditto.
+ 	(vfrdiv_frm): Ditto.
+ 	(vfwmul): Ditto.
+ 	(vfwmul_frm): Ditto.
+ 	(vfmacc): Ditto.
+ 	(vfnmsac): Ditto.
+ 	(vfmadd): Ditto.
+ 	(vfnmsub): Ditto.
+ 	(vfnmacc): Ditto.
+ 	(vfmsac): Ditto.
+ 	(vfnmadd): Ditto.
+ 	(vfmsub): Ditto.
+ 	(vfmacc_frm): Ditto.
+ 	(vfnmacc_frm): Ditto.
+ 	(vfmsac_frm): Ditto.
+ 	(vfnmsac_frm): Ditto.
+ 	(vfmadd_frm): Ditto.
+ 	(vfnmadd_frm): Ditto.
+ 	(vfmsub_frm): Ditto.
+ 	(vfnmsub_frm): Ditto.
+ 	(vfwmacc): Ditto.
+ 	(vfwnmacc): Ditto.
+ 	(vfwmsac): Ditto.
+ 	(vfwnmsac): Ditto.
+ 	(vfwmacc_frm): Ditto.
+ 	(vfwnmacc_frm): Ditto.
+ 	(vfwmsac_frm): Ditto.
+ 	(vfwnmsac_frm): Ditto.
+ 	(vfsqrt): Ditto.
+ 	(vfsqrt_frm): Ditto.
+ 	(vfrsqrt7): Ditto.
+ 	(vfrec7): Ditto.
+ 	(vfrec7_frm): Ditto.
+ 	(vfmin): Ditto.
+ 	(vfmax): Ditto.
+ 	(vfsgnj): Ditto.
+ 	(vfsgnjn): Ditto.
+ 	(vfsgnjx): Ditto.
+ 	(vfneg): Ditto.
+ 	(vfabs): Ditto.
+ 	(vmfeq): Ditto.
+ 	(vmfne): Ditto.
+ 	(vmflt): Ditto.
+ 	(vmfle): Ditto.
+ 	(vmfgt): Ditto.
+ 	(vmfge): Ditto.
+ 	(vfclass): Ditto.
+ 	(vfmerge): Ditto.
+ 	(vfmv_v): Ditto.
+ 	(vfcvt_x): Ditto.
+ 	(vfcvt_xu): Ditto.
+ 	(vfcvt_rtz_x): Ditto.
+ 	(vfcvt_rtz_xu): Ditto.
+ 	(vfcvt_f): Ditto.
+ 	(vfcvt_x_frm): Ditto.
+ 	(vfcvt_xu_frm): Ditto.
+ 	(vfcvt_f_frm): Ditto.
+ 	(vfwcvt_x): Ditto.
+ 	(vfwcvt_xu): Ditto.
+ 	(vfwcvt_rtz_x): Ditto.
+ 	(vfwcvt_rtz_xu) Ditto.:
+ 	(vfwcvt_f): Ditto.
+ 	(vfwcvt_x_frm): Ditto.
+ 	(vfwcvt_xu_frm) Ditto.:
+ 	(vfncvt_x): Ditto.
+ 	(vfncvt_xu): Ditto.
+ 	(vfncvt_rtz_x): Ditto.
+ 	(vfncvt_rtz_xu): Ditto.
+ 	(vfncvt_f): Ditto.
+ 	(vfncvt_rod_f): Ditto.
+ 	(vfncvt_x_frm): Ditto.
+ 	(vfncvt_xu_frm): Ditto.
+ 	(vfncvt_f_frm): Ditto.
+ 	(vredsum): Ditto.
+ 	(vredmaxu): Ditto.
+ 	(vredmax): Ditto.
+ 	(vredminu): Ditto.
+ 	(vredmin): Ditto.
+ 	(vredand): Ditto.
+ 	(vredor): Ditto.
+ 	(vredxor): Ditto.
+ 	(vwredsum): Ditto.
+ 	(vwredsumu): Ditto.
+ 	(vfredusum): Ditto.
+ 	(vfredosum): Ditto.
+ 	(vfredmax): Ditto.
+ 	(vfredmin): Ditto.
+ 	(vfredusum_frm): Ditto.
+ 	(vfredosum_frm): Ditto.
+ 	(vfwredosum): Ditto.
+ 	(vfwredusum): Ditto.
+ 	(vfwredosum_frm): Ditto.
+ 	(vfwredusum_frm): Ditto.
+ 	(vmand): Ditto.
+ 	(vmnand): Ditto.
+ 	(vmandn): Ditto.
+ 	(vmxor): Ditto.
+ 	(vmor): Ditto.
+ 	(vmnor): Ditto.
+ 	(vmorn): Ditto.
+ 	(vmxnor): Ditto.
+ 	(vmmv): Ditto.
+ 	(vmclr): Ditto.
+ 	(vmset): Ditto.
+ 	(vmnot): Ditto.
+ 	(vcpop): Ditto.
+ 	(vfirst): Ditto.
+ 	(vmsbf): Ditto.
+ 	(vmsif): Ditto.
+ 	(vmsof): Ditto.
+ 	(viota): Ditto.
+ 	(vid): Ditto.
+ 	(vmv_x): Ditto.
+ 	(vmv_s): Ditto.
+ 	(vfmv_f): Ditto.
+ 	(vfmv_s): Ditto.
+ 	(vslideup): Ditto.
+ 	(vslidedown): Ditto.
+ 	(vslide1up): Ditto.
+ 	(vslide1down): Ditto.
+ 	(vfslide1up): Ditto.
+ 	(vfslide1down): Ditto.
+ 	(vrgather): Ditto.
+ 	(vrgatherei16): Ditto.
+ 	(vcompress): Ditto.
+ 	(vundefined): Ditto.
+ 	(vreinterpret): Ditto.
+ 	(vlmul_ext): Ditto.
+ 	(vlmul_trunc): Ditto.
+ 	(vset): Ditto.
+ 	(vget): Ditto.
+ 	(vcreate): Ditto.
+ 	(vlseg): Ditto.
+ 	(vsseg): Ditto.
+ 	(vlsseg): Ditto.
+ 	(vssseg): Ditto.
+ 	(vluxseg): Ditto.
+ 	(vloxseg): Ditto.
+ 	(vsuxseg): Ditto.
+ 	(vsoxseg): Ditto.
+ 	(vlsegff): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION): Using variadic macro.
+ 	* config/riscv/riscv-vector-builtins.h (struct function_group_info):
+ 					Add avail function interface into struct.
+ 	* config/riscv/t-riscv: Add dependency
+ 	* config/riscv/riscv-vector-builtins-avail.h: New file.The definition of AVAIL marco.
+ 
+ 2023-12-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112994
+ 	* match.pd ((t * u) / (t * v) -> (u / v)): New simplification.
+ 
+ 2023-12-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112994
+ 	* match.pd ((t * 2) / 2 -> t): Adjust comment to use u instead of 2.
+ 	Punt without range checks if TYPE_OVERFLOW_SANITIZED.
+ 	((t * u) / v -> t * (u / v)): New simplification.
+ 
+ 2023-12-14  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* Makefile.in: Added sccopy pass.
+ 	* passes.def: Added sccopy pass before LTO streaming and before
+ 	RTL expansion.
+ 	* tree-pass.h (make_pass_sccopy): Added sccopy pass.
+ 	* gimple-ssa-sccopy.cc: New file.
+ 
+ 2023-12-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/111807
+ 	* tree-sra.cc (build_ref_for_model): Allow offset smaller than
+ 	model->offset when gsi is non-NULL.  Adjust function comment.
+ 
+ 2023-12-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112992
+ 	* config/i386/i386-expand.cc
+ 	(ix86_convert_const_wide_int_to_broadcast): Don't convert to
+ 	broadcast for vec_dup{v4di,v8si} when TARGET_AVX2 is not
+ 	available.
+ 	(ix86_broadcast_from_constant): Allow broadcast for V4DI/V8SI
+ 	when !TARGET_AVX2 since it will be forced to memory later.
+ 	(ix86_expand_vector_move): Force constant to mem for
+ 	vec_dup{vssi,v4di} when TARGET_AVX2 is not available.
+ 
+ 2023-12-14  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111153
+ 	* config/riscv/riscv-protos.h (struct common_vector_cost): New struct.
+ 	(struct scalable_vector_cost): Ditto.
+ 	(struct cpu_vector_cost): Ditto.
+ 	* config/riscv/riscv-vector-costs.cc (costs::add_stmt_cost): Add RVV
+ 	builtin vectorization cost
+ 	* config/riscv/riscv.cc (struct riscv_tune_param): Ditto.
+ 	(get_common_costs): New function.
+ 	(riscv_builtin_vectorization_cost): Ditto.
+ 	(TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New targethook.
+ 
+ 2023-12-13  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* config.gcc: Adds new header to config.
+ 	* config/aarch64/aarch64-builtins.cc (enum aarch64_type_qualifiers):
+ 	Moved to header file.
+ 	(ENTRY): Likewise.
+ 	(enum aarch64_simd_type): Likewise.
+ 	(struct aarch64_simd_type_info): Remove static.
+ 	(GTY): Likewise.
+ 	* config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64):
+ 	Defines pragma for arm_neon_sve_bridge.h.
+ 	* config/aarch64/aarch64-protos.h:
+ 	Add handle_arm_neon_sve_bridge_h
+ 	* config/aarch64/aarch64-sve-builtins-base.h: New intrinsics.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(class svget_neonq_impl): New intrinsic implementation.
+ 	(class svset_neonq_impl): Likewise.
+ 	(class svdup_neonq_impl): Likewise.
+ 	(NEON_SVE_BRIDGE_FUNCTION): New intrinsics.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(NEON_SVE_BRIDGE_FUNCTION): Defines macro for NEON_SVE_BRIDGE
+ 	functions.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h: New shapes.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(parse_element_type): Add NEON element types.
+ 	(parse_type): Likewise.
+ 	(struct get_neonq_def): Defines function shape for get_neonq.
+ 	(struct set_neonq_def): Defines function shape for set_neonq.
+ 	(struct dup_neonq_def): Defines function shape for dup_neonq.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(DEF_SVE_TYPE_SUFFIX): Changed to be called through
+ 	SVE_NEON macro.
+ 	(DEF_SVE_NEON_TYPE_SUFFIX): Defines
+ 	macro for NEON_SVE_BRIDGE type suffixes.
+ 	(DEF_NEON_SVE_FUNCTION): Defines
+ 	macro for NEON_SVE_BRIDGE functions.
+ 	(function_resolver::infer_neon128_vector_type): Infers type suffix
+ 	for overloaded functions.
+ 	(handle_arm_neon_sve_bridge_h): Handles #pragma arm_neon_sve_bridge.h.
+ 	* config/aarch64/aarch64-sve-builtins.def
+ 	(DEF_SVE_NEON_TYPE_SUFFIX): Macro for handling neon_sve type suffixes.
+ 	(bf16): Replace entry with neon-sve entry.
+ 	(f16): Likewise.
+ 	(f32): Likewise.
+ 	(f64): Likewise.
+ 	(s8): Likewise.
+ 	(s16): Likewise.
+ 	(s32): Likewise.
+ 	(s64): Likewise.
+ 	(u8): Likewise.
+ 	(u16): Likewise.
+ 	(u32): Likewise.
+ 	(u64): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(GCC_AARCH64_SVE_BUILTINS_H): Include aarch64-builtins.h.
+ 	(ENTRY): Add aarch64_simd_type definiton.
+ 	(enum aarch64_simd_type): Add neon information to type_suffix_info.
+ 	(struct type_suffix_info): New function.
+ 	* config/aarch64/aarch64-sve.md
+ 	(@aarch64_sve_get_neonq_<mode>): New intrinsic insn for big endian.
+ 	(@aarch64_sve_set_neonq_<mode>): Likewise.
+ 	* config/aarch64/iterators.md: Add UNSPEC_SET_NEONQ.
+ 	* config/aarch64/aarch64-builtins.h: New file.
+ 	* config/aarch64/aarch64-neon-sve-bridge-builtins.def: New file.
+ 	* config/aarch64/arm_neon_sve_bridge.h: New file.
+ 
+ 2023-12-13  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* doc/invoke.texi (C++ Dialect Options): Document
+ 	-fdiagnostics-all-candidates.
+ 
+ 2023-12-13  Julian Brown  <julian@codesourcery.com>
+ 
+ 	* gimplify.cc (omp_map_clause_descriptor_p): New function.
+ 	(build_omp_struct_comp_nodes, omp_get_attachment, omp_group_base): Use
+ 	above function.
+ 	(omp_tsort_mapping_groups): Process nodes that have
+ 	OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P set after those that don't.  Add
+ 	enter_exit_data parameter.
+ 	(omp_resolve_clause_dependencies): Remove GOMP_MAP_TO_PSET mappings if
+ 	we're mapping the whole containing derived-type variable.
+ 	(omp_accumulate_sibling_list): Adjust GOMP_MAP_TO_PSET handling.
+ 	Remove GOMP_MAP_ALWAYS_POINTER handling.
+ 	(gimplify_scan_omp_clauses): Pass enter_exit argument to
+ 	omp_tsort_mapping_groups.  Don't adjust/remove GOMP_MAP_TO_PSET
+ 	mappings for derived-type components here.
+ 	* tree.h (OMP_CLAUSE_RELEASE_DESCRIPTOR): New macro.
+ 	* tree-pretty-print.cc (dump_omp_clause): Show
+ 	OMP_CLAUSE_RELEASE_DESCRIPTOR in dump output (with
+ 	GOMP_MAP_TO_PSET-like syntax).
+ 
+ 2023-12-13  Julian Brown  <julian@codesourcery.com>
+ 
+ 	* gimplify.cc (build_struct_comp_nodes): Don't process
+ 	GOMP_MAP_ATTACH_DETACH "middle" nodes here.
+ 	(omp_mapping_group): Add REPROCESS_STRUCT and FRAGILE booleans for
+ 	nested struct handling.
+ 	(omp_strip_components_and_deref, omp_strip_indirections): Remove
+ 	functions.
+ 	(omp_get_attachment): Handle GOMP_MAP_DETACH here.
+ 	(omp_group_last): Handle GOMP_MAP_*, GOMP_MAP_DETACH,
+ 	GOMP_MAP_ATTACH_DETACH groups for "exit data" of reference-to-pointer
+ 	component array sections.
+ 	(omp_gather_mapping_groups_1): Initialise reprocess_struct and fragile
+ 	fields.
+ 	(omp_group_base): Handle GOMP_MAP_ATTACH_DETACH after GOMP_MAP_STRUCT.
+ 	(omp_index_mapping_groups_1): Skip reprocess_struct groups.
+ 	(omp_get_nonfirstprivate_group, omp_directive_maps_explicitly,
+ 	omp_resolve_clause_dependencies, omp_first_chained_access_token): New
+ 	functions.
+ 	(omp_check_mapping_compatibility): Adjust accepted node combinations
+ 	for "from" clauses using release instead of alloc.
+ 	(omp_accumulate_sibling_list): Add GROUP_MAP, ADDR_TOKENS, FRAGILE_P,
+ 	REPROCESSING_STRUCT, ADDED_TAIL parameters.  Use OMP address tokenizer
+ 	to analyze addresses.  Reimplement nested struct handling, and
+ 	implement "fragile groups".
+ 	(omp_build_struct_sibling_lists): Adjust for changes to
+ 	omp_accumulate_sibling_list.  Recalculate bias for ATTACH_DETACH nodes
+ 	after GOMP_MAP_STRUCT nodes.
+ 	(gimplify_scan_omp_clauses): Call omp_resolve_clause_dependencies.  Use
+ 	OMP address tokenizer.
+ 	(gimplify_adjust_omp_clauses_1): Use build_fold_indirect_ref_loc
+ 	instead of build_simple_mem_ref_loc.
+ 	* omp-general.cc (omp-general.h, tree-pretty-print.h): Include.
+ 	(omp_addr_tokenizer): New namespace.
+ 	(omp_addr_tokenizer::omp_addr_token): New.
+ 	(omp_addr_tokenizer::omp_parse_component_selector,
+ 	omp_addr_tokenizer::omp_parse_ref,
+ 	omp_addr_tokenizer::omp_parse_pointer,
+ 	omp_addr_tokenizer::omp_parse_access_method,
+ 	omp_addr_tokenizer::omp_parse_access_methods,
+ 	omp_addr_tokenizer::omp_parse_structure_base,
+ 	omp_addr_tokenizer::omp_parse_structured_expr,
+ 	omp_addr_tokenizer::omp_parse_array_expr,
+ 	omp_addr_tokenizer::omp_access_chain_p,
+ 	omp_addr_tokenizer::omp_accessed_addr): New functions.
+ 	(omp_parse_expr, debug_omp_tokenized_addr): New functions.
+ 	* omp-general.h (omp_addr_tokenizer::access_method_kinds,
+ 	omp_addr_tokenizer::structure_base_kinds,
+ 	omp_addr_tokenizer::token_type,
+ 	omp_addr_tokenizer::omp_addr_token,
+ 	omp_addr_tokenizer::omp_access_chain_p,
+ 	omp_addr_tokenizer::omp_accessed_addr): New.
+ 	(omp_addr_token, omp_parse_expr): New.
+ 	* omp-low.cc (scan_sharing_clauses): Skip error check for references
+ 	to pointers.
+ 	* tree.h (OMP_CLAUSE_ATTACHMENT_MAPPING_ERASED): New macro.
+ 
+ 2023-12-13  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-hsa.h (NO_XNACK): Change the defaults.
+ 	* config/gcn/gcn-opts.h (enum hsaco_attr_type): Add HSACO_ATTR_DEFAULT.
+ 	* config/gcn/gcn.cc (gcn_option_override): Set the default flag_xnack.
+ 	* config/gcn/gcn.opt: Add -mxnack=default.
+ 	* doc/invoke.texi: Document the -mxnack default.
+ 
+ 2023-12-13  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-hsa.h (NO_XNACK): Ignore missing -march.
+ 	(XNACKOPT): Match on/off; ignore any.
+ 	* config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>):
+ 	Add xnack compatible alternatives.
+ 	(gather<mode>_insn_2offsets<exec>): Likewise.
+ 	* config/gcn/gcn.cc (gcn_option_override): Permit -mxnack for devices
+ 	other than Fiji and gfx1030.
+ 	(gcn_expand_epilogue): Remove early-clobber problems.
+ 	(gcn_hsa_declare_function_name): Obey -mxnack setting.
+ 	* config/gcn/gcn.md (xnack): New attribute.
+ 	(enabled): Rework to include "xnack" attribute.
+ 	(*movbi): Add xnack compatible alternatives.
+ 	(*mov<mode>_insn): Likewise.
+ 	(*mov<mode>_insn): Likewise.
+ 	(*mov<mode>_insn): Likewise.
+ 	(*movti_insn): Likewise.
+ 	* config/gcn/gcn.opt (-mxnack): Change the default to "any".
+ 	* doc/invoke.texi: Remove placeholder notice for -mxnack.
+ 
+ 2023-12-13  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/x-aarch64: Add missing dependencies.
+ 
+ 2023-12-13  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/arc/arc.md (*extvsi_n_0): New define_insn_and_split to
+ 	implement SImode sign extract using a AND, XOR and MINUS sequence.
+ 
+ 2023-12-13  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Modify implied ISA info.
+ 	* config/riscv/arch-canonicalize: Add crypto vector implied info.
+ 
+ 2023-12-13  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112929
+ 	PR target/112988
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(pre_vsetvl::compute_lcm_local_properties): Remove full available.
+ 	(pre_vsetvl::pre_global_vsetvl_info): Add full available optimization.
+ 
+ 2023-12-13  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111317
+ 	* tree-vect-loop.cc (vect_estimate_min_profitable_iters): Adjust for COST for decrement IV.
+ 
+ 2023-12-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112940
+ 	* gimple-lower-bitint.cc (struct bitint_large_huge): Add another
+ 	argument to prepare_data_in_out method defaulted to NULL_TREE.
+ 	(bitint_large_huge::handle_operand): Pass another argument to
+ 	prepare_data_in_out instead of emitting an assignment to set it.
+ 	(bitint_large_huge::prepare_data_in_out): Add VAL_OUT argument.
+ 	If non-NULL, use it as PHI argument instead of creating a new
+ 	SSA_NAME.
+ 	(bitint_large_huge::handle_cast): Pass rext as another argument
+ 	to 2 prepare_data_in_out calls instead of emitting assignments
+ 	to set them.
+ 
+ 2023-12-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112953
+ 	* attribs.cc (free_attr_data): Use delete x rather than delete[] x.
+ 
+ 2023-12-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112962
+ 	* config/i386/i386.cc (ix86_gimple_fold_builtin): For shifts
+ 	and abs without lhs replace with nop.
+ 
+ 2023-12-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* emit-rtl.cc (set_mem_attributes_minus_bitpos): Preserve
+ 	the offset when rewriting an exising MEM_REF base for
+ 	stack slot sharing.
+ 
+ 2023-12-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112991
+ 	PR tree-optimization/112961
+ 	* tree-ssa-sccvn.h (do_rpo_vn): Add skip_entry_phis argument.
+ 	* tree-ssa-sccvn.cc (do_rpo_vn): Likewise.
+ 	(do_rpo_vn_1): Likewise, merge with auto-processing.
+ 	(run_rpo_vn): Adjust.
+ 	(pass_fre::execute): Likewise.
+ 	* tree-if-conv.cc (tree_if_conversion): Revert last change.
+ 	Value-number latch block but disable value-numbering of
+ 	entry PHIs.
+ 	* tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
+ 
+ 2023-12-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112990
+ 	* match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..):
+ 	Restrict to vector modes after lowering.
+ 
+ 2023-12-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/111591
+ 	* cfgexpand.cc (update_alias_info_with_stack_vars): Document
+ 	why not adjusting TBAA info on accesses is OK.
+ 
+ 2023-12-13  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/invoke.texi (multiflags): Drop extraneous period, use
+ 	@pxref instead.
+ 
+ 2023-12-13  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc:
+ 	(AARCH64_PLD): New enum aarch64_builtins entry.
+ 	(AARCH64_PLDX): Likewise.
+ 	(AARCH64_PLI): Likewise.
+ 	(AARCH64_PLIX): Likewise.
+ 	(aarch64_init_prefetch_builtin): New.
+ 	(aarch64_general_init_builtins): Call prefetch init function.
+ 	(aarch64_expand_prefetch_builtin): New.
+ 	(aarch64_general_expand_builtin):  Add prefetch expansion.
+ 	(require_const_argument): New.
+ 	* config/aarch64/aarch64.md (UNSPEC_PLDX): New.
+ 	(aarch64_pldx): Likewise.
+ 	* config/aarch64/arm_acle.h (__pld): Likewise.
+ 	(__pli): Likewise.
+ 	(__plix): Likewise.
+ 	(__pldx): Likewise.
+ 
+ 2023-12-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/112788
+ 	* value-range.h (range_compatible_p): Workaround same type mode but
+ 	different type precision issue for rs6000 scalar float types
+ 	_Float128 and long double.
+ 
+ 2023-12-13  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Add code to use
+ 	pli for 34bit constant.
+ 
+ 2023-12-13  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Add new
+ 	parameter to record number of instructions to build the constant.
+ 	(num_insns_constant_gpr): Call rs6000_emit_set_long_const to compute
+ 	num_insn.
+ 
+ 2023-12-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo): New function.
+ 	(costs::record_potential_vls_unrolling): Ditto.
+ 	(costs::prefer_unrolled_loop): Ditto.
+ 	(costs::better_main_loop_than_p): Ditto.
+ 	(costs::add_stmt_cost): Ditto.
+ 	* config/riscv/riscv-vector-costs.h (enum cost_type_enum): New enum.
+ 	* config/riscv/t-riscv: Add new include files.
+ 
+ 2023-12-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (get_current_lmul): Remove it.
+ 	(compute_estimated_lmul): New function.
+ 	(costs::costs): Refactor.
+ 	(costs::preferred_new_lmul_p): Ditto.
+ 	(preferred_new_lmul_p): Ditto.
+ 	(costs::better_main_loop_than_p): Ditto.
+ 	* config/riscv/riscv-vector-costs.h (struct autovec_info): Remove it.
+ 
+ 2023-12-12  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/112822
+ 	* tree-sra.cc (load_assign_lhs_subreplacements): Invoke
+ 	force_gimple_operand_gsi also when LHS has partial stores and RHS is a
+ 	VIEW_CONVERT_EXPR.
+ 
+ 2023-12-12  Jason Merrill  <jason@redhat.com>
+ 	    Nathaniel Shead   <nathanieloshead@gmail.com>
+ 
+ 	* tree-core.h (enum clobber_kind): Rename CLOBBER_EOL to
+ 	CLOBBER_STORAGE_END.  Add CLOBBER_STORAGE_BEGIN,
+ 	CLOBBER_OBJECT_BEGIN, CLOBBER_OBJECT_END.
+ 	* gimple-lower-bitint.cc
+ 	* gimple-ssa-warn-access.cc
+ 	* gimplify.cc
+ 	* tree-inline.cc
+ 	* tree-ssa-ccp.cc: Adjust for rename.
+ 	* tree-pretty-print.cc: And handle new values.
+ 
+ 2023-12-12  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_override_options): Update.
+ 	(aarch64_handle_attr_branch_protection): Update.
+ 	* config/arm/aarch-common-protos.h (aarch_parse_branch_protection):
+ 	Remove.
+ 	(aarch_validate_mbranch_protection): Add new argument.
+ 	* config/arm/aarch-common.cc (aarch_handle_no_branch_protection):
+ 	Update.
+ 	(aarch_handle_standard_branch_protection): Update.
+ 	(aarch_handle_pac_ret_protection): Update.
+ 	(aarch_handle_pac_ret_leaf): Update.
+ 	(aarch_handle_pac_ret_b_key): Update.
+ 	(aarch_handle_bti_protection): Update.
+ 	(aarch_parse_branch_protection): Remove.
+ 	(next_tok): New.
+ 	(aarch_validate_mbranch_protection): Rewrite.
+ 	* config/arm/aarch-common.h (struct aarch_branch_protect_type):
+ 	Add field "alone".
+ 	* config/arm/arm.cc (arm_configure_build_target): Update.
+ 
+ 2023-12-12  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_override_options_after_change_1):
+ 	Do not override branch_protection options.
+ 	(aarch64_override_options): Remove accepted_branch_protection_string.
+ 	* config/arm/aarch-common.cc (BRANCH_PROTECT_STR_MAX): Remove.
+ 	(aarch_parse_branch_protection): Remove
+ 	accepted_branch_protection_string.
+ 	* config/arm/arm.cc: Likewise.
+ 
+ 2023-12-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112736
+ 	* tree-vect-stmts.cc (vectorizable_load): Extend optimization
+ 	to avoid peeling for gaps to handle single-element non-groups
+ 	we now allow with SLP.
+ 
+ 2023-12-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/92606
+ 	* ipa-icf.cc (sem_item_optimizer::merge_classes): Check
+ 	both source and alias for the no_icf attribute.
+ 	* doc/extend.texi (no_icf): Document variable attribute.
+ 
+ 2023-12-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112961
+ 	* tree-if-conv.cc (tree_if_conversion): Instead of excluding
+ 	the latch block from VN, add a fake entry edge.
+ 
+ 2023-12-12  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR middle-end/107723
+ 	* convert.cc (convert_to_integer_1) [case BUILT_IN_TRUNC]: Break
+ 	early if !flag_fp_int_builtin_inexact and flag_trapping_math.
+ 
+ 2023-12-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-avlprop.cc (avl_can_be_propagated_p):
+ 	Disable the avl propogation for the vcompress.
+ 
+ 2023-12-12  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-opts.h (la_target): Move into #if
+ 	for loongarch-def.h.
+ 	(loongarch_init_target): Likewise.
+ 	(loongarch_config_target): Likewise.
+ 	(loongarch_update_gcc_opt_status): Likewise.
+ 
+ 2023-12-12  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
+ 	Return true for SYMBOL_PCREL64.  Return true for SYMBOL_GOT_DISP
+ 	if TARGET_CMODEL_EXTREME.
+ 	(loongarch_split_symbol): Check for la_opt_explicit_relocs !=
+ 	EXPLICIT_RELOCS_NONE instead of TARGET_EXPLICIT_RELOCS.
+ 	(loongarch_print_operand_reloc): Likewise.
+ 	(loongarch_option_override_internal): Likewise.
+ 	(loongarch_handle_model_attribute): Likewise.
+ 	* doc/invoke.texi (-mcmodel=extreme): Update the compatibility
+ 	between it and -mexplicit-relocs=.
+ 
+ 2023-12-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112939
+ 	* tree-ssa-sccvn.cc (visit_phi): When all args are undefined
+ 	make sure we end up with a value that was visited, otherwise
+ 	fall back to .VN_TOP.
+ 
+ 2023-12-12  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112891
+ 	* config/i386/i386.cc (ix86_avx_u128_mode_after): Return
+ 	AVX_U128_ANY if callee_abi doesn't clobber all_sse_regs to
+ 	align with ix86_avx_u128_mode_needed.
+ 	(ix86_avx_u128_mode_needed): Return AVX_U128_ClEAN for
+ 	sibling_call.
+ 
+ 2023-12-12  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/112334
+ 	* builtins.h (target_builtins): Add fields for apply_args_size
+ 	and apply_result_size.
+ 	* builtins.cc (apply_args_size, apply_result_size): Cache
+ 	results in fields rather than in static variables.
+ 	(get_apply_args_size, set_apply_args_size): New.
+ 	(get_apply_result_size, set_apply_result_size): New.
+ 
+ 2023-12-12  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/112943
+ 	* config/i386/i386.md (ashl<mode>3): Add TARGET_APX_NDD to
+ 	ix86_expand_binary_operator call.
+ 	(<insn><mode>3): Likewise for rshift.
+ 	(<insn>di3): Likewise for DImode rotate.
+ 	(<insn><mode>3): Likewise for SWI124 rotate.
+ 
+ 2023-12-12  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-functions.def (DEF_RVV_FUNCTION):
+ 							Add AVAIL argument.
+ 	(read_vl): Using AVAIL argument default value.
+ 	(vlenb): Ditto.
+ 	(vsetvl): Ditto.
+ 	(vsetvlmax): Ditto.
+ 	(vle): Ditto.
+ 	(vse): Ditto.
+ 	(vlm): Ditto.
+ 	(vsm): Ditto.
+ 	(vlse): Ditto.
+ 	(vsse): Ditto.
+ 	(vluxei8): Ditto.
+ 	(vluxei16): Ditto.
+ 	(vluxei32): Ditto.
+ 	(vluxei64): Ditto.
+ 	(vloxei8): Ditto.
+ 	(vloxei16): Ditto.
+ 	(vloxei32): Ditto.
+ 	(vloxei64): Ditto.
+ 	(vsuxei8): Ditto.
+ 	(vsuxei16): Ditto.
+ 	(vsuxei32): Ditto.
+ 	(vsuxei64): Ditto.
+ 	(vsoxei8): Ditto.
+ 	(vsoxei16): Ditto.
+ 	(vsoxei32): Ditto.
+ 	(vsoxei64): Ditto.
+ 	(vleff): Ditto.
+ 	(vadd): Ditto.
+ 	(vsub): Ditto.
+ 	(vrsub): Ditto.
+ 	(vneg): Ditto.
+ 	(vwaddu): Ditto.
+ 	(vwsubu): Ditto.
+ 	(vwadd): Ditto.
+ 	(vwsub): Ditto.
+ 	(vwcvt_x): Ditto.
+ 	(vwcvtu_x): Ditto.
+ 	(vzext): Ditto.
+ 	(vsext): Ditto.
+ 	(vadc): Ditto.
+ 	(vmadc): Ditto.
+ 	(vsbc): Ditto.
+ 	(vmsbc): Ditto.
+ 	(vand): Ditto.
+ 	(vor): Ditto.
+ 	(vxor): Ditto.
+ 	(vnot): Ditto.
+ 	(vsll): Ditto.
+ 	(vsra): Ditto.
+ 	(vsrl): Ditto.
+ 	(vnsrl): Ditto.
+ 	(vnsra): Ditto.
+ 	(vncvt_x): Ditto.
+ 	(vmseq): Ditto.
+ 	(vmsne): Ditto.
+ 	(vmsltu): Ditto.
+ 	(vmslt): Ditto.
+ 	(vmsleu): Ditto.
+ 	(vmsle): Ditto.
+ 	(vmsgtu): Ditto.
+ 	(vmsgt): Ditto.
+ 	(vmsgeu): Ditto.
+ 	(vmsge): Ditto.
+ 	(vminu): Ditto.
+ 	(vmin): Ditto.
+ 	(vmaxu): Ditto.
+ 	(vmax): Ditto.
+ 	(vmul): Ditto.
+ 	(vmulh): Ditto.
+ 	(vmulhu): Ditto.
+ 	(vmulhsu): Ditto.
+ 	(vdivu): Ditto.
+ 	(vdiv): Ditto.
+ 	(vremu): Ditto.
+ 	(vrem): Ditto.
+ 	(vwmul): Ditto.
+ 	(vwmulu): Ditto.
+ 	(vwmulsu): Ditto.
+ 	(vmacc): Ditto.
+ 	(vnmsac): Ditto.
+ 	(vmadd): Ditto.
+ 	(vnmsub): Ditto.
+ 	(vwmaccu): Ditto.
+ 	(vwmacc): Ditto.
+ 	(vwmaccsu): Ditto.
+ 	(vwmaccus): Ditto.
+ 	(vmerge): Ditto.
+ 	(vmv_v): Ditto.
+ 	(vsaddu): Ditto.
+ 	(vsadd): Ditto.
+ 	(vssubu): Ditto.
+ 	(vssub): Ditto.
+ 	(vaaddu): Ditto.
+ 	(vaadd): Ditto.
+ 	(vasubu): Ditto.
+ 	(vasub): Ditto.
+ 	(vsmul): Ditto.
+ 	(vssrl): Ditto.
+ 	(vssra): Ditto.
+ 	(vnclipu): Ditto.
+ 	(vnclip): Ditto.
+ 	(vfadd): Ditto.
+ 	(vfsub): Ditto.
+ 	(vfrsub): Ditto.
+ 	(vfadd_frm): Ditto.
+ 	(vfsub_frm): Ditto.
+ 	(vfrsub_frm): Ditto.
+ 	(vfwadd): Ditto.
+ 	(vfwsub): Ditto.
+ 	(vfwadd_frm): Ditto.
+ 	(vfwsub_frm): Ditto.
+ 	(vfmul): Ditto.
+ 	(vfdiv): Ditto.
+ 	(vfrdiv): Ditto.
+ 	(vfmul_frm): Ditto.
+ 	(vfdiv_frm): Ditto.
+ 	(vfrdiv_frm): Ditto.
+ 	(vfwmul): Ditto.
+ 	(vfwmul_frm): Ditto.
+ 	(vfmacc): Ditto.
+ 	(vfnmsac): Ditto.
+ 	(vfmadd): Ditto.
+ 	(vfnmsub): Ditto.
+ 	(vfnmacc): Ditto.
+ 	(vfmsac): Ditto.
+ 	(vfnmadd): Ditto.
+ 	(vfmsub): Ditto.
+ 	(vfmacc_frm): Ditto.
+ 	(vfnmacc_frm): Ditto.
+ 	(vfmsac_frm): Ditto.
+ 	(vfnmsac_frm): Ditto.
+ 	(vfmadd_frm): Ditto.
+ 	(vfnmadd_frm): Ditto.
+ 	(vfmsub_frm): Ditto.
+ 	(vfnmsub_frm): Ditto.
+ 	(vfwmacc): Ditto.
+ 	(vfwnmacc): Ditto.
+ 	(vfwmsac): Ditto.
+ 	(vfwnmsac): Ditto.
+ 	(vfwmacc_frm): Ditto.
+ 	(vfwnmacc_frm): Ditto.
+ 	(vfwmsac_frm): Ditto.
+ 	(vfwnmsac_frm): Ditto.
+ 	(vfsqrt): Ditto.
+ 	(vfsqrt_frm): Ditto.
+ 	(vfrsqrt7): Ditto.
+ 	(vfrec7): Ditto.
+ 	(vfrec7_frm): Ditto.
+ 	(vfmin): Ditto.
+ 	(vfmax): Ditto.
+ 	(vfsgnj): Ditto.
+ 	(vfsgnjn): Ditto.
+ 	(vfsgnjx): Ditto.
+ 	(vfneg): Ditto.
+ 	(vfabs): Ditto.
+ 	(vmfeq): Ditto.
+ 	(vmfne): Ditto.
+ 	(vmflt): Ditto.
+ 	(vmfle): Ditto.
+ 	(vmfgt): Ditto.
+ 	(vmfge): Ditto.
+ 	(vfclass): Ditto.
+ 	(vfmerge): Ditto.
+ 	(vfmv_v): Ditto.
+ 	(vfcvt_x): Ditto.
+ 	(vfcvt_xu): Ditto.
+ 	(vfcvt_rtz_x): Ditto.
+ 	(vfcvt_rtz_xu): Ditto.
+ 	(vfcvt_f): Ditto.
+ 	(vfcvt_x_frm): Ditto.
+ 	(vfcvt_xu_frm): Ditto.
+ 	(vfcvt_f_frm): Ditto.
+ 	(vfwcvt_x): Ditto.
+ 	(vfwcvt_xu): Ditto.
+ 	(vfwcvt_rtz_x): Ditto.
+ 	(vfwcvt_rtz_xu) Ditto.:
+ 	(vfwcvt_f): Ditto.
+ 	(vfwcvt_x_frm): Ditto.
+ 	(vfwcvt_xu_frm) Ditto.:
+ 	(vfncvt_x): Ditto.
+ 	(vfncvt_xu): Ditto.
+ 	(vfncvt_rtz_x): Ditto.
+ 	(vfncvt_rtz_xu): Ditto.
+ 	(vfncvt_f): Ditto.
+ 	(vfncvt_rod_f): Ditto.
+ 	(vfncvt_x_frm): Ditto.
+ 	(vfncvt_xu_frm): Ditto.
+ 	(vfncvt_f_frm): Ditto.
+ 	(vredsum): Ditto.
+ 	(vredmaxu): Ditto.
+ 	(vredmax): Ditto.
+ 	(vredminu): Ditto.
+ 	(vredmin): Ditto.
+ 	(vredand): Ditto.
+ 	(vredor): Ditto.
+ 	(vredxor): Ditto.
+ 	(vwredsum): Ditto.
+ 	(vwredsumu): Ditto.
+ 	(vfredusum): Ditto.
+ 	(vfredosum): Ditto.
+ 	(vfredmax): Ditto.
+ 	(vfredmin): Ditto.
+ 	(vfredusum_frm): Ditto.
+ 	(vfredosum_frm): Ditto.
+ 	(vfwredosum): Ditto.
+ 	(vfwredusum): Ditto.
+ 	(vfwredosum_frm): Ditto.
+ 	(vfwredusum_frm): Ditto.
+ 	(vmand): Ditto.
+ 	(vmnand): Ditto.
+ 	(vmandn): Ditto.
+ 	(vmxor): Ditto.
+ 	(vmor): Ditto.
+ 	(vmnor): Ditto.
+ 	(vmorn): Ditto.
+ 	(vmxnor): Ditto.
+ 	(vmmv): Ditto.
+ 	(vmclr): Ditto.
+ 	(vmset): Ditto.
+ 	(vmnot): Ditto.
+ 	(vcpop): Ditto.
+ 	(vfirst): Ditto.
+ 	(vmsbf): Ditto.
+ 	(vmsif): Ditto.
+ 	(vmsof): Ditto.
+ 	(viota): Ditto.
+ 	(vid): Ditto.
+ 	(vmv_x): Ditto.
+ 	(vmv_s): Ditto.
+ 	(vfmv_f): Ditto.
+ 	(vfmv_s): Ditto.
+ 	(vslideup): Ditto.
+ 	(vslidedown): Ditto.
+ 	(vslide1up): Ditto.
+ 	(vslide1down): Ditto.
+ 	(vfslide1up): Ditto.
+ 	(vfslide1down): Ditto.
+ 	(vrgather): Ditto.
+ 	(vrgatherei16): Ditto.
+ 	(vcompress): Ditto.
+ 	(vundefined): Ditto.
+ 	(vreinterpret): Ditto.
+ 	(vlmul_ext): Ditto.
+ 	(vlmul_trunc): Ditto.
+ 	(vset): Ditto.
+ 	(vget): Ditto.
+ 	(vcreate): Ditto.
+ 	(vlseg): Ditto.
+ 	(vsseg): Ditto.
+ 	(vlsseg): Ditto.
+ 	(vssseg): Ditto.
+ 	(vluxseg): Ditto.
+ 	(vloxseg): Ditto.
+ 	(vsuxseg): Ditto.
+ 	(vsoxseg): Ditto.
+ 	(vlsegff): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION): Using variadic macro.
+ 	* config/riscv/riscv-vector-builtins.h (struct function_group_info):
+ 					Add avail function interface into struct.
+ 	* config/riscv/t-riscv: Add dependency
+ 	* config/riscv/riscv-vector-builtins-avail.h: New file.The definition of AVAIL marco.
+ 
+ 2023-12-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (estimated_poly_value): New function.
+ 	* config/riscv/riscv-v.cc (estimated_poly_value): Ditto.
+ 	* config/riscv/riscv.cc (riscv_estimated_poly_value): Move RVV POLY
+ 	VALUE estimation to riscv-v.cc
+ 
+ 2023-12-12  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc: Do not restore the saved eh_return
+ 	data registers ($r4-$r7) for a normal return of a function that calls
+ 	__builtin_eh_return elsewhere.
+ 	* config/loongarch/loongarch-protos.h: Same.
+ 	* config/loongarch/loongarch.md: Same.
+ 
+ 2023-12-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* recog.cc (constrain_operands): Pass VOIDmode to
+ 	strict_memory_address_p for 'p' constraints in asms.
+ 	* rtl-ssa/changes.cc (recog_level2): Skip redundant constrain_operands
+ 	for asms.
+ 
+ 2023-12-11  Jason Merrill  <jason@redhat.com>
+ 
+ 	* common.opt: Add comment.
+ 
+ 2023-12-11  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR middle-end/112784
+ 	* expr.cc (emit_block_move_via_loop): Call int_mode_for_size
+ 	for maybe-too-wide sizes.
+ 	(emit_block_cmp_via_loop): Likewise.
+ 
+ 2023-12-11  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/112778
+ 	* builtins.cc (can_store_by_multiple_pieces): New.
+ 	(try_store_by_multiple_pieces): Call it.
+ 
+ 2023-12-11  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/112804
+ 	* builtins.cc (try_store_by_multiple_pieces): Use ptr's mode
+ 	for the increment.
+ 
+ 2023-12-11  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/invoke.texi (multiflags): Add period after @xref to
+ 	silence warning.
+ 
+ 2023-12-11  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/rl78/rl78.cc (TARGET_HAVE_STRUB_SUPPORT_FOR): Disable.
+ 
+ 2023-12-11  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* ipa-strub.cc (pass_ipa_strub::execute): Check that we don't
+ 	add indirection to pointer parameters, and document attribute
+ 	access non-interactions.
+ 
+ 2023-12-11  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR rtl-optimization/112380
+ 	* combine.cc (expand_field_assignment): Check if gen_lowpart
+ 	returned a CLOBBER, and avoid calling gen_simplify_binary with
+ 	it if so.
+ 
+ 2023-12-11  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/111867
+ 	* config/aarch64/aarch64.cc (aarch64_float_const_representable_p): For BFmode,
+ 	only accept +0.0.
+ 
+ 2023-12-11  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/111972
+ 	PR tree-optimization/110637
+ 	* match.pd (`(convert)(zeroone !=/== CST)`): Match
+ 	and simplify to ((convert)zeroone){,^1}.
+ 	* fold-const.cc (fold_binary_loc): Remove
+ 	transformation of `(~a) & 1` and `(a ^ 1) & 1`
+ 	into `(convert)(a == 0)`.
+ 
+ 2023-12-11  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/112935
+ 	* expr.cc (expand_expr_real_2): Use
+ 	gimple_zero_one_valued_p instead of tree_nonzero_bits
+ 	to find boolean defined expressions.
+ 
+ 2023-12-11  Mikael Pettersson  <mikpelinux@gmail.com>
+ 
+ 	PR target/112413
+ 	* config/m68k/linux.h (ASM_RETURN_CASE_JUMP): For
+ 	TARGET_LONG_JUMP_TABLE_OFFSETS, reference the jump table
+ 	via its label.
+ 	* config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
+ 	* config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
+ 
+ 2023-12-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (lane_size): New function.
+ 	(aarch64_simd_clone_compute_vecsize_and_simdlen): Determine simdlen according to NDS rule
+ 	and reject combination of simdlen and types that lead to vectors larger than 128bits.
+ 
+ 2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* rtl-ssa/insns.cc (function_info::record_use): Add !ordered_p case.
+ 
+ 2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (get_gather_index_mode): New function.
+ 	(shuffle_series_patterns): Robostify shuffle index.
+ 	(shuffle_generic_patterns): Ditto.
+ 
+ 2023-12-11  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/arm_neon.h (vldap1_lane_u64): Add
+ 	`const' to `__builtin_aarch64_simd_di *' cast.
+ 	(vldap1q_lane_u64): Likewise.
+ 	(vldap1_lane_s64): Cast __src to `const __builtin_aarch64_simd_di *'.
+ 	(vldap1q_lane_s64): Likewise.
+ 	(vldap1_lane_f64): Cast __src to `const __builtin_aarch64_simd_df *'.
+ 	(vldap1q_lane_f64): Cast __src to `const __builtin_aarch64_simd_df *'.
+ 	(vldap1_lane_p64): Add `const' to `__builtin_aarch64_simd_di *' cast.
+ 	(vldap1q_lane_p64): Add `const' to `__builtin_aarch64_simd_di *' cast.
+ 	(vstl1_lane_u64): remove stray `const'.
+ 	(vstl1_lane_s64): Cast __src to `__builtin_aarch64_simd_di *'.
+ 	(vstl1q_lane_s64): Likewise.
+ 	(vstl1_lane_f64): Cast __src to `const __builtin_aarch64_simd_df *'.
+ 	(vstl1q_lane_f64): Likewise.
+ 
+ 2023-12-11  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/112853
+ 	* config/riscv/riscv-v.cc (expand_const_vector):  Fix step
+ 	calculation.
+ 	(modulo_sel_indices): Also perform modulo for variable-length
+ 	constants.
+ 	(shuffle_series): Recognize series permutations.
+ 	(expand_vec_perm_const_1): Add shuffle_series.
+ 
+ 2023-12-11  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* match.pd (VCE (a cmp b ? -1 : 0) < 0) ? c : d ---> (VCE ((a
+ 	cmp b) ? (VCE:c) : (VCE:d))): New gimple simplication.
+ 
+ 2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Support highest overlap for wv instructions.
+ 
+ 2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (extract_single_source): Fix ICE.
+ 
+ 2023-12-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/extend.texi (__sync_fetch_and_add, __sync_fetch_and_sub,
+ 	__sync_fetch_and_or, __sync_fetch_and_and, __sync_fetch_and_xor,
+ 	__sync_fetch_and_nand, __sync_add_and_fetch, __sync_sub_and_fetch,
+ 	__sync_or_and_fetch, __sync_and_and_fetch, __sync_xor_and_fetch,
+ 	__sync_nand_and_fetch, __sync_bool_compare_and_swap,
+ 	__sync_val_compare_and_swap, __sync_lock_test_and_set,
+ 	__sync_lock_release, __atomic_load_n, __atomic_load, __atomic_store_n,
+ 	__atomic_store, __atomic_exchange_n, __atomic_exchange,
+ 	__atomic_compare_exchange_n, __atomic_compare_exchange,
+ 	__atomic_add_fetch, __atomic_sub_fetch, __atomic_and_fetch,
+ 	__atomic_xor_fetch, __atomic_or_fetch, __atomic_nand_fetch,
+ 	__atomic_fetch_add, __atomic_fetch_sub, __atomic_fetch_and,
+ 	__atomic_fetch_xor, __atomic_fetch_or, __atomic_fetch_nand,
+ 	__atomic_test_and_set, __atomic_clear, __atomic_thread_fence,
+ 	__atomic_signal_fence, __atomic_always_lock_free,
+ 	__atomic_is_lock_free, __builtin_add_overflow,
+ 	__builtin_sadd_overflow, __builtin_saddl_overflow,
+ 	__builtin_saddll_overflow, __builtin_uadd_overflow,
+ 	__builtin_uaddl_overflow, __builtin_uaddll_overflow,
+ 	__builtin_sub_overflow, __builtin_ssub_overflow,
+ 	__builtin_ssubl_overflow, __builtin_ssubll_overflow,
+ 	__builtin_usub_overflow, __builtin_usubl_overflow,
+ 	__builtin_usubll_overflow, __builtin_mul_overflow,
+ 	__builtin_smul_overflow, __builtin_smull_overflow,
+ 	__builtin_smulll_overflow, __builtin_umul_overflow,
+ 	__builtin_umull_overflow, __builtin_umulll_overflow,
+ 	__builtin_add_overflow_p, __builtin_sub_overflow_p,
+ 	__builtin_mul_overflow_p, __builtin_addc, __builtin_addcl,
+ 	__builtin_addcll, __builtin_subc, __builtin_subcl, __builtin_subcll,
+ 	__builtin_alloca, __builtin_alloca_with_align,
+ 	__builtin_alloca_with_align_and_max, __builtin_speculation_safe_value,
+ 	__builtin_nan, __builtin_nand32, __builtin_nand64, __builtin_nand128,
+ 	__builtin_nanf, __builtin_nanl, __builtin_nanf@var{n},
+ 	__builtin_nanf@var{n}x, __builtin_nans, __builtin_nansd32,
+ 	__builtin_nansd64, __builtin_nansd128, __builtin_nansf,
+ 	__builtin_nansl, __builtin_nansf@var{n}, __builtin_nansf@var{n}x,
+ 	__builtin_ffs, __builtin_clz, __builtin_ctz, __builtin_clrsb,
+ 	__builtin_popcount, __builtin_parity, __builtin_bswap16,
+ 	__builtin_bswap32, __builtin_bswap64, __builtin_bswap128,
+ 	__builtin_extend_pointer, __builtin_goacc_parlevel_id,
+ 	__builtin_goacc_parlevel_size, vec_clrl, vec_clrr, vec_mulh, vec_mul,
+ 	vec_div, vec_dive, vec_mod, __builtin_rx_mvtc): Use @var{...} around
+ 	parameter names.
+ 	(vec_rl, vec_sl, vec_sr, vec_sra): Likewise.  Use @var{...} also
+ 	around A, B and R in description.
+ 
+ 2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-selftests.cc (riscv_run_selftests):
+ 	Remove poly self test when FIXED-VLMAX.
+ 
+ 2023-12-11  Fei Gao  <gaofei@eswincomputing.com>
+ 	    Xiao Zeng <zengxiao@eswincomputing.com>
+ 
+ 	* ifcvt.cc (noce_cond_zero_binary_op_supported): Add support for AND.
+ 	(noce_bbs_ok_for_cond_zero_arith): Likewise.
+ 	(noce_try_cond_zero_arith): Likewise.
+ 
+ 2023-12-11  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112904
+ 	* config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
+ 
+ 2023-12-11  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/112707
+ 	* config/rs6000/rs6000.h (TARGET_FCTID): Define.
+ 	* config/rs6000/rs6000.md (lrint<mode>di2): Add guard TARGET_FCTID.
+ 	* (lround<mode>di2): Replace TARGET_FPRND with TARGET_FCTID.
+ 
+ 2023-12-11  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/112707
+ 	* config/rs6000/rs6000.md (expand lrint<mode>si2): New.
+ 	(insn lrint<mode>si2): Rename to...
+ 	(*lrint<mode>si): ...this.
+ 	(lrint<mode>si_di): New.
+ 
+ 2023-12-10  Fei Gao  <gaofei@eswincomputing.com>
+ 	    Xiao Zeng <zengxiao@eswincomputing.com>
+ 
+ 	* ifcvt.cc (noce_cond_zero_binary_op_supported): Add support for shift
+ 	like op.
+ 
+ 2023-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/112931
+ 	PR target/112933
+ 	* config/aarch64/aarch64-protos.h (aarch64_sve_reinterpret): Declare.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_reinterpret): New function.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc (svread_za_impl::expand)
+ 	(svwrite_za_impl::expand): Use it to cast the SVE register to the
+ 	right mode.
+ 
+ 2023-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/112930
+ 	* config/aarch64/aarch64.cc (aarch64_sme_mode_switch_regs::add_reg):
+ 	Force specific SVE modes for single registers as well as structures.
+ 
+ 2023-12-10  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi (-fpermissive): Mention ObjC++ for -Wnarrowing.
+ 
+ 2023-12-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/addsub.md (uaddv<mode>4, usubv<mode>4): New expanders.
+ 	(uaddv): New define_insn_and_split plus post-reload pattern.
+ 
+ 2023-12-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/h8300-protos.h (use_extvsi): Prototype.
+ 	* config/h8300/combiner.md: Two new define_insn_and_split patterns
+ 	to implement signed bitfield extractions.
+ 	* config/h8300/h8300.cc (use_extvsi): New function.
+ 
+ 2023-12-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/combiner.md (single bit signed bitfield extraction): Fix
+ 	length computation when the bit we want is in the low half word.
+ 
+ 2023-12-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/h8300.cc (compute_a_shift_length): Fix computation
+ 	of logical shifts on the H8/SX.
+ 
+ 2023-12-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112887
+ 	* tree-ssa-phiopt.cc (hoist_adjacent_loads): Change type of
+ 	param_align, param_align_bits, offset1, offset2, size2 and align1
+ 	variables from int or unsigned int to unsigned HOST_WIDE_INT.
+ 
+ 2023-12-09  Costas Argyris  <costas.argyris@gmail.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR driver/93019
+ 	* gcc.cc (driver::finalize): Call XDELETEVEC on mdswitches before
+ 	clearing it.
+ 
+ 2023-12-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* attribs.h (any_nonignored_attribute_p): Declare.
+ 	* attribs.cc (any_nonignored_attribute_p): New function.
+ 
+ 2023-12-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112932
+ 	* config/riscv/vector.md (movmisalign<mode>): Fix VLSmode bugs.
+ 
+ 2023-12-09  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-emutls.cc: Include diagnostic-core.h.
+ 	(pass_ipa_lower_emutls::gate): Skip if errors were seen.
+ 
+ 2023-12-08  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/112875
+ 	* lra-eliminations.cc (lra_eliminate_regs_1): Change an assert.
+ 	Add ASM_OPERANDS case.
+ 
+ 2023-12-08  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/112109
+ 	* config/riscv/riscv-protos.h (expand_strcmp): Declare.
+ 	* config/riscv/riscv-string.cc (riscv_expand_strcmp): Add
+ 	strategy handling and delegation to scalar and vector expanders.
+ 	(expand_strcmp): Vectorized implementation.
+ 	* config/riscv/riscv.md: Add TARGET_VECTOR to strcmp and strncmp
+ 	expander.
+ 
+ 2023-12-08  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/112109
+ 	* config/riscv/riscv-protos.h (expand_rawmemchr): Add strlen
+ 	parameter.
+ 	* config/riscv/riscv-string.cc (riscv_expand_strlen): Call
+ 	rawmemchr.
+ 	(expand_rawmemchr): Add strlen handling.
+ 	* config/riscv/riscv.md: Add TARGET_VECTOR to strlen expander.
+ 
+ 2023-12-08  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-early-ra.cc (allocno_info::chain_next):
+ 	Put into an enum with...
+ 	(allocno_info::last_def_point):	...new member variable.
+ 	(allocno_info::m_current_bb_point): New member variable.
+ 	(likely_operand_match_p): Switch based on get_constraint_type,
+ 	rather than based on rtx code.  Handle relaxed and special memory
+ 	constraints.
+ 	(early_ra::record_copy): Allow the source of an equivalence to be
+ 	assigned to more than once.
+ 	(early_ra::record_allocno_use): Invalidate any previous equivalence.
+ 	Initialize last_def_point.
+ 	(early_ra::record_allocno_def): Set last_def_point.
+ 	(early_ra::valid_equivalence_p): New function, split out from...
+ 	(early_ra::record_copy): ...here.  Use last_def_point to handle
+ 	source registers that have a later definition.
+ 	(make_pass_aarch64_early_ra): Fix comment.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
+ 	(vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
+ 	(vld1q_f16_x2, vld1q_f32_x2): New.
+ 	(vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
+ 	(vld1q_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x2): New entries.
+ 	* config/arm/neon.md (vld1_x2<mode>): New.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
+ 	(vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
+ 	(vld1q_f16_x3, vld1q_f32_x3): New.
+ 	(vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
+ 	(vld1q_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x3): New entries.
+ 	* config/arm/neon.md (vld1_x3<mode>): New.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
+ 	(vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
+ 	(vld1q_f16_x4, vld1q_f32_x4): New.
+ 	(vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
+ 	(vld1q_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x4): New entries.
+ 	* config/arm/neon.md (vld1_x4<mode>): New.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
+ 	(vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
+ 	(vst1_f16_x2, vst1_f32_x2): New.
+ 	(vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
+ 	(vst1_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x2): New entries.
+ 	* config/arm/neon.md (vst1_x2<mode>): New.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
+ 	(vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
+ 	(vst1_f16_x3, vst1_f32_x3): New.
+ 	(vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
+ 	(vst1_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x3): New entries.
+ 	* config/arm/neon.md (vst1_x3<mode>): New.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
+ 	(vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
+ 	(vst1_f16_x4, vst1_f32_x4): New.
+ 	(vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
+ 	(vst1_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x4): New entries.
+ 	* config/arm/neon.md (vst1_x4<mode>): New.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
+ 	(vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
+ 	(vst1q_f16_x2, vst1q_f32_x2): New.
+ 	(vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
+ 	(vst1q_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vst1q_x2): New entries.
+ 	* config/arm/neon.md
+ 	(neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
+ 	neon_vst1_x2<mode>.
+ 	* config/arm/iterators.md (VMEMX2): New mode iterator.
+ 	(VMEMX2_q): New mode attribute.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
+ 	(vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
+ 	(vst1q_f16_x3, vst1q_f32_x3): New.
+ 	(vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
+ 	(vst1q_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
+ 	* config/arm/neon.md (neon_vst1q_x3<mode>): New.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
+ 	(vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
+ 	(vst1q_f16_x4, vst1q_f32_x4): New.
+ 	(vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
+ 	(vst1q_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
+ 	* config/arm/neon.md (neon_vst1q_x4<mode>): New.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New
+ 	(vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
+ 	(vld1_f16_x2, vld1_f32_x2): New.
+ 	(vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
+ 	(vld1_bf16_x2): New.
+ 	(vld1q_types_x2): Updated to use vld1q_x2 from
+ 	arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x2): Updated entries.
+ 	(vld1q_x2): New entries, but comes from the old vld1_x2
+ 	* config/arm/neon.md
+ 	(neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated
+ 	from neon_vld1_x2<mode>.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New
+ 	(vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
+ 	(vld1_f16_x3, vld1_f32_x3): New.
+ 	(vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
+ 	(vld1_bf16_x3): New.
+ 	(vld1q_types_x3): Updated to use vld1q_x3 from
+ 	arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x3): Updated entries.
+ 	(vld1q_x3): New entries, but comes from the old vld1_x2
+ 	* config/arm/neon.md (neon_vld1q_x3<mode>): Updated from
+ 	neon_vld1_x3<mode>.
+ 
+ 2023-12-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Revert:
+ 	2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New
+ 	(vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
+ 	(vld1_f16_x4, vld1_f32_x4): New.
+ 	(vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
+ 	(vld1_bf16_x4): New.
+ 	(vld1q_types_x4): Updated to use vld1q_x4
+ 	from arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x4): Updated entries.
+ 	(vld1q_x4): New entries, but comes from the old vld1_x2
+ 	* config/arm/neon.md (neon_vld1q_x4<mode>):
+ 	Updated from neon_vld1_x4<mode>.
+ 
+ 2023-12-08  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* builtin-types.def (BT_FN_PTR_PTR_SIZE_PTRMODE_PTRMODE): New.
+ 	* omp-builtins.def (BUILT_IN_GOMP_REALLOC): New.
+ 	* builtins.cc (builtin_fnspec): Handle it.
+ 	* gimple-ssa-warn-access.cc (fndecl_alloc_p,
+ 	matching_alloc_calls_p): Likewise.
+ 	* gimple.cc (nonfreeing_call_p): Likewise.
+ 	* predict.cc (expr_expected_value_1): Likewise.
+ 	* tree-ssa-ccp.cc (evaluate_stmt): Likewise.
+ 	* tree.cc (fndecl_dealloc_argno): Likewise.
+ 
+ 2023-12-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112909
+ 	* tree-ssa-uninit.cc (find_uninit_use): Look through a
+ 	single level of SSA name copies with single use.
+ 
+ 2023-12-08  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_try_expand_lsx_vshuf_const): Use
+ 	simplify_gen_subreg instead of gen_rtx_SUBREG.
+ 	(loongarch_expand_vec_perm_const_2): Ditto.
+ 	(loongarch_expand_vec_cond_expr): Ditto.
+ 
+ 2023-12-08  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_vector_costs::determine_suggested_unroll_factor):
+ 	If m_has_recip is true, uf return 1.
+ 	(loongarch_vector_costs::add_stmt_cost): Detect the use of approximate instruction sequence.
+ 
+ 2023-12-08  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/genopts/loongarch.opt.in (recip_mask): New variable.
+ 	(-mrecip, -mrecip): New options.
+ 	* config/loongarch/lasx.md (div<mode>3): New expander.
+ 	(*div<mode>3): Rename.
+ 	(sqrt<mode>2): New expander.
+ 	(*sqrt<mode>2): Rename.
+ 	(rsqrt<mode>2): New expander.
+ 	* config/loongarch/loongarch-protos.h (loongarch_emit_swrsqrtsf): New prototype.
+ 	(loongarch_emit_swdivsf): Ditto.
+ 	* config/loongarch/loongarch.cc (loongarch_option_override_internal): Set
+ 	recip_mask for -mrecip and -mrecip= options.
+ 	(loongarch_emit_swrsqrtsf): New function.
+ 	(loongarch_emit_swdivsf): Ditto.
+ 	* config/loongarch/loongarch.h (RECIP_MASK_NONE, RECIP_MASK_DIV, RECIP_MASK_SQRT
+ 	RECIP_MASK_RSQRT, RECIP_MASK_VEC_DIV, RECIP_MASK_VEC_SQRT, RECIP_MASK_VEC_RSQRT
+ 	RECIP_MASK_ALL): New bitmasks.
+ 	(TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_RSQRT, TARGET_RECIP_VEC_DIV
+ 	TARGET_RECIP_VEC_SQRT, TARGET_RECIP_VEC_RSQRT): New tests.
+ 	* config/loongarch/loongarch.md (sqrt<mode>2): New expander.
+ 	(*sqrt<mode>2): Rename.
+ 	(rsqrt<mode>2): New expander.
+ 	* config/loongarch/loongarch.opt (recip_mask): New variable.
+ 	(-mrecip, -mrecip): New options.
+ 	* config/loongarch/lsx.md (div<mode>3): New expander.
+ 	(*div<mode>3): Rename.
+ 	(sqrt<mode>2): New expander.
+ 	(*sqrt<mode>2): Rename.
+ 	(rsqrt<mode>2): New expander.
+ 	* config/loongarch/predicates.md (reg_or_vecotr_1_operand): New predicate.
+ 	* doc/invoke.texi (LoongArch Options): Document new options.
+ 
+ 2023-12-08  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (lasx_xvfrecip_<flasxfmt>): Renamed to ..
+ 	(recip<mode>3): .. this.
+ 	* config/loongarch/loongarch-builtins.cc (CODE_FOR_lsx_vfrecip_d): Redefine
+ 	to new pattern name.
+ 	(CODE_FOR_lsx_vfrecip_s): Ditto.
+ 	(CODE_FOR_lasx_xvfrecip_d): Ditto.
+ 	(CODE_FOR_lasx_xvfrecip_s): Ditto.
+ 	(loongarch_expand_builtin_direct): For the vector recip instructions, construct a
+ 	temporary parameter const1_vector.
+ 	* config/loongarch/lsx.md (lsx_vfrecip_<flsxfmt>): Renamed to ..
+ 	(recip<mode>3): .. this.
+ 	* config/loongarch/predicates.md (const_vector_1_operand): New predicate.
+ 
+ 2023-12-08  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (lasx_xvfrsqrt_<flasxfmt>): Renamed to ..
+ 	(rsqrt<mode>2): .. this.
+ 	* config/loongarch/loongarch-builtins.cc
+ 	(CODE_FOR_lsx_vfrsqrt_d): Redefine to standard pattern name.
+ 	(CODE_FOR_lsx_vfrsqrt_s): Ditto.
+ 	(CODE_FOR_lasx_xvfrsqrt_d): Ditto.
+ 	(CODE_FOR_lasx_xvfrsqrt_s): Ditto.
+ 	* config/loongarch/loongarch.cc (use_rsqrt_p): New function.
+ 	(loongarch_optab_supported_p): Ditto.
+ 	(TARGET_OPTAB_SUPPORTED_P): New hook.
+ 	* config/loongarch/loongarch.md (*rsqrt<mode>a): Remove.
+ 	(*rsqrt<mode>2): New insn pattern.
+ 	(*rsqrt<mode>b): Remove.
+ 	* config/loongarch/lsx.md (lsx_vfrsqrt_<flsxfmt>): Renamed to ..
+ 	(rsqrt<mode>2): .. this.
+ 
+ 2023-12-08  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/genopts/isa-evolution.in (fecipe): Add.
+ 	* config/loongarch/larchintrin.h (__frecipe_s): New intrinsic.
+ 	(__frecipe_d): Ditto.
+ 	(__frsqrte_s): Ditto.
+ 	(__frsqrte_d): Ditto.
+ 	* config/loongarch/lasx.md (lasx_xvfrecipe_<flasxfmt>): New insn pattern.
+ 	(lasx_xvfrsqrte_<flasxfmt>): Ditto.
+ 	* config/loongarch/lasxintrin.h (__lasx_xvfrecipe_s): New intrinsic.
+ 	(__lasx_xvfrecipe_d): Ditto.
+ 	(__lasx_xvfrsqrte_s): Ditto.
+ 	(__lasx_xvfrsqrte_d): Ditto.
+ 	* config/loongarch/loongarch-builtins.cc (AVAIL_ALL): Add predicates.
+ 	(LSX_EXT_BUILTIN): New macro.
+ 	(LASX_EXT_BUILTIN): Ditto.
+ 	* config/loongarch/loongarch-cpucfg-map.h: Regenerate.
+ 	* config/loongarch/loongarch-c.cc: Add builtin macro "__loongarch_frecipe".
+ 	* config/loongarch/loongarch-def.cc: Regenerate.
+ 	* config/loongarch/loongarch-str.h (OPTSTR_FRECIPE): Regenerate.
+ 	* config/loongarch/loongarch.cc (loongarch_asm_code_end): Dump status for TARGET_FRECIPE.
+ 	* config/loongarch/loongarch.md (loongarch_frecipe_<fmt>): New insn pattern.
+ 	(loongarch_frsqrte_<fmt>): Ditto.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/lsx.md (lsx_vfrecipe_<flsxfmt>): New insn pattern.
+ 	(lsx_vfrsqrte_<flsxfmt>): Ditto.
+ 	* config/loongarch/lsxintrin.h (__lsx_vfrecipe_s): New intrinsic.
+ 	(__lsx_vfrecipe_d): Ditto.
+ 	(__lsx_vfrsqrte_s): Ditto.
+ 	(__lsx_vfrsqrte_d): Ditto.
+ 	* doc/extend.texi: Add documentation for LoongArch new builtins and intrinsics.
+ 
+ 2023-12-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-outof-ssa.cc (rewrite_out_of_ssa): Dump GIMPLE once only,
+ 	after final IL adjustments.
+ 
+ 2023-12-08  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector-iterators.md: Replace RVVM2SI to RVVM2SF
+ 	for mode attr V_F2DI_CONVERT_BRIDGE.
+ 
+ 2023-12-08  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (xorsign<mode>3): New expander.
+ 	* config/loongarch/loongarch.cc (loongarch_can_change_mode_class): Allow
+ 	conversion between LSX vector mode and scalar fp mode.
+ 	* config/loongarch/loongarch.md (@xorsign<mode>3): New expander.
+ 	* config/loongarch/lsx.md (@xorsign<mode>3): Ditto.
+ 
+ 2023-12-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112902
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): For a narrowing
+ 	or same precision cast don't set SSA_NAME_VERSION in m_names only
+ 	if use_stmt is mergeable_op or fall through into the check that
+ 	use is a store or rhs1 is not mergeable or other reasons prevent
+ 	merging.
+ 
+ 2023-12-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112901
+ 	* vr-values.cc
+ 	(simplify_using_ranges::simplify_float_conversion_using_ranges):
+ 	Return false if rhs1 has BITINT_TYPE type with BLKmode TYPE_MODE.
+ 
+ 2023-12-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112411
+ 	* haifa-sched.cc (extend_h_i_d): Use 3U instead of 3 in
+ 	3 * get_max_uid () / 2 calculation.
+ 
+ 2023-12-08  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/genopts/loongarch-strings: Delete STR_ISA_BASE_LA64V110.
+ 	* config/loongarch/genopts/loongarch.opt.in: Likewise.
+ 	* config/loongarch/loongarch-cpu.cc (ISA_BASE_LA64V110_FEATURES): Delete macro.
+ 	(fill_native_cpu_config): Define a new variable hw_isa_evolution record the
+ 	extended instruction set support read from cpucfg.
+ 	* config/loongarch/loongarch-def.cc: Set evolution at initialization.
+ 	* config/loongarch/loongarch-def.h (ISA_BASE_LA64V100): Delete.
+ 	(ISA_BASE_LA64V110): Likewise.
+ 	(N_ISA_BASE_TYPES): Likewise.
+ 	(defined): Likewise.
+ 	* config/loongarch/loongarch-opts.cc: Likewise.
+ 	* config/loongarch/loongarch-opts.h (TARGET_64BIT): Likewise.
+ 	(ISA_BASE_IS_LA64V110): Likewise.
+ 	* config/loongarch/loongarch-str.h (STR_ISA_BASE_LA64V110): Likewise.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 
+ 2023-12-08  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-def.h: Remove extern "C".
+ 	(loongarch_isa_base_strings): Declare as loongarch_def_array
+ 	instead of plain array.
+ 	(loongarch_isa_ext_strings): Likewise.
+ 	(loongarch_abi_base_strings): Likewise.
+ 	(loongarch_abi_ext_strings): Likewise.
+ 	(loongarch_cmodel_strings): Likewise.
+ 	(loongarch_cpu_strings): Likewise.
+ 	(loongarch_cpu_default_isa): Likewise.
+ 	(loongarch_cpu_issue_rate): Likewise.
+ 	(loongarch_cpu_multipass_dfa_lookahead): Likewise.
+ 	(loongarch_cpu_cache): Likewise.
+ 	(loongarch_cpu_align): Likewise.
+ 	(loongarch_cpu_rtx_cost_data): Likewise.
+ 	(loongarch_isa): Add a constructor and field setter functions.
+ 	* config/loongarch/loongarch-opts.h (loongarch-defs.h): Do not
+ 	include for target libraries.
+ 	* config/loongarch/loongarch-opts.cc: Comment code that doesn't
+ 	run and causes compilation errors.
+ 	* config/loongarch/loongarch-tune.h (LOONGARCH_TUNE_H): Likewise.
+ 	(struct loongarch_rtx_cost_data): Likewise.
+ 	(struct loongarch_cache): Likewise.
+ 	(struct loongarch_align): Likewise.
+ 	* config/loongarch/t-loongarch: Compile loongarch-def.cc with the
+ 	C++ compiler.
+ 	* config/loongarch/loongarch-def-array.h: New file for a
+ 	std:array like data structure with position setter function.
+ 	* config/loongarch/loongarch-def.c: Rename to ...
+ 	* config/loongarch/loongarch-def.cc: ... here.
+ 	(loongarch_cpu_strings): Define as loongarch_def_array instead
+ 	of plain array.
+ 	(loongarch_cpu_default_isa): Likewise.
+ 	(loongarch_cpu_cache): Likewise.
+ 	(loongarch_cpu_align): Likewise.
+ 	(loongarch_cpu_rtx_cost_data): Likewise.
+ 	(loongarch_cpu_issue_rate): Likewise.
+ 	(loongarch_cpu_multipass_dfa_lookahead): Likewise.
+ 	(loongarch_isa_base_strings): Likewise.
+ 	(loongarch_isa_ext_strings): Likewise.
+ 	(loongarch_abi_base_strings): Likewise.
+ 	(loongarch_abi_ext_strings): Likewise.
+ 	(loongarch_cmodel_strings): Likewise.
+ 	(abi_minimal_isa): Likewise.
+ 	(loongarch_rtx_cost_optimize_size): Use field setter functions
+ 	instead of designated initializers.
+ 	(loongarch_rtx_cost_data): Implement default constructor.
+ 
+ 2023-12-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112411
+ 	* params.opt (-param=min-nondebug-insn-uid=): Add
+ 	IntegerRange(0, 1073741824).
+ 	* lra.cc (check_and_expand_insn_recog_data): Use 3U rather than 3
+ 	in * 3 / 2 computation and if the result is smaller or equal to
+ 	index, use index + 1.
+ 
+ 2023-12-08  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Do not append "-mno-" for Xeon Phi ISAs.
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Emit a warning for KNL/KNM targets.
+ 	* config/i386/i386.opt: Emit a warning for Xeon Phi ISAs.
+ 
+ 2023-12-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p):
+ 	Remove redundant check.
+ 
+ 2023-12-08  Hao Liu  <hliu@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/112774
+ 	* tree-pretty-print.cc: if nonwrapping flag is set, chrec will be
+ 	printed with additional <nw> info.
+ 	* tree-scalar-evolution.cc: add record_nonwrapping_chrec and
+ 	nonwrapping_chrec_p to set and check the new flag respectively.
+ 	* tree-scalar-evolution.h: Likewise.
+ 	* tree-ssa-loop-niter.cc (idx_infer_loop_bounds,
+ 	infer_loop_bounds_from_pointer_arith, infer_loop_bounds_from_signedness,
+ 	scev_probably_wraps_p): call record_nonwrapping_chrec before
+ 	record_nonwrapping_iv, call nonwrapping_chrec_p to check the flag is
+ 	set and	return false from scev_probably_wraps_p.
+ 	* tree-vect-loop.cc (vect_analyze_loop): call
+ 	free_numbers_of_iterations_estimates explicitly.
+ 	* tree-core.h: document the nothrow_flag usage in CHREC_NOWRAP
+ 	* tree.h: add CHREC_NOWRAP(NODE), base.nothrow_flag is used to
+ 	represent the nonwrapping info.
+ 
+ 2023-12-08  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* ifcvt.cc (noce_try_cond_zero_arith): New function.
+ 	(noce_emit_czero, get_base_reg): Likewise.
+ 	(noce_cond_zero_binary_op_supported): Likewise.
+ 	(noce_bbs_ok_for_cond_zero_arith): Likewise.
+ 	(noce_process_if_block): Use noce_try_cond_zero_arith.
+ 	Co-authored-by: Xiao Zeng<zengxiao@eswincomputing.com>
+ 
+ 2023-12-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (expand_vec_series): Adapt function.
+ 	* config/riscv/riscv-v.cc (rvv_builder::double_steps_npatterns_p): New function.
+ 	(expand_vec_series): Adapt function.
+ 	(expand_const_vector): Support new interleave vector with different step.
+ 
+ 2023-12-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/106694
+ 	PR rtl-optimization/109078
+ 	PR rtl-optimization/109391
+ 	* config.gcc: Add aarch64-early-ra.o for AArch64 targets.
+ 	* config/aarch64/t-aarch64 (aarch64-early-ra.o): New rule.
+ 	* config/aarch64/aarch64-opts.h (aarch64_early_ra_scope): New enum.
+ 	* config/aarch64/aarch64.opt (mearly_ra): New option.
+ 	* doc/invoke.texi: Document it.
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(aarch_option_optimization_table): Use -mearly-ra=strided by
+ 	default for -O2 and above.
+ 	* config/aarch64/aarch64-passes.def (pass_aarch64_early_ra): New pass.
+ 	* config/aarch64/aarch64-protos.h (aarch64_strided_registers_p)
+ 	(make_pass_aarch64_early_ra): Declare.
+ 	* config/aarch64/aarch64-sme.md (@aarch64_sme_lut<LUTI_BITS><mode>):
+ 	Add a stride_type attribute.
+ 	(@aarch64_sme_lut<LUTI_BITS><mode>_strided2): New pattern.
+ 	(@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svld1_impl::expand)
+ 	(svldnt1_impl::expand, svst1_impl::expand, svstn1_impl::expand): Handle
+ 	new way of defining multi-register loads and stores.
+ 	* config/aarch64/aarch64-sve.md (@aarch64_ld1<SVE_FULLx24:mode>)
+ 	(@aarch64_ldnt1<SVE_FULLx24:mode>, @aarch64_st1<SVE_FULLx24:mode>)
+ 	(@aarch64_stnt1<SVE_FULLx24:mode>): Delete.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_<LD1_COUNT:optab><mode>)
+ 	(@aarch64_<LD1_COUNT:optab><mode>_strided2): New patterns.
+ 	(@aarch64_<LD1_COUNT:optab><mode>_strided4): Likewise.
+ 	(@aarch64_<ST1_COUNT:optab><mode>): Likewise.
+ 	(@aarch64_<ST1_COUNT:optab><mode>_strided2): Likewise.
+ 	(@aarch64_<ST1_COUNT:optab><mode>_strided4): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_strided_registers_p): New
+ 	function.
+ 	* config/aarch64/aarch64.md (UNSPEC_LD1_SVE_COUNT): Delete.
+ 	(UNSPEC_ST1_SVE_COUNT, UNSPEC_LDNT1_SVE_COUNT): Likewise.
+ 	(UNSPEC_STNT1_SVE_COUNT): Likewise.
+ 	(stride_type): New attribute.
+ 	* config/aarch64/constraints.md (Uwd, Uwt): New constraints.
+ 	* config/aarch64/iterators.md (UNSPEC_LD1_COUNT, UNSPEC_LDNT1_COUNT)
+ 	(UNSPEC_ST1_COUNT, UNSPEC_STNT1_COUNT): New unspecs.
+ 	(optab): Handle them.
+ 	(LD1_COUNT, ST1_COUNT): New iterators.
+ 	* config/aarch64/aarch64-early-ra.cc: New file.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New
+ 	(vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
+ 	(vld1_f16_x4, vld1_f32_x4): New.
+ 	(vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
+ 	(vld1_bf16_x4): New.
+ 	(vld1q_types_x4): Updated to use vld1q_x4
+ 	from arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x4): Updated entries.
+ 	(vld1q_x4): New entries, but comes from the old vld1_x2
+ 	* config/arm/neon.md (neon_vld1q_x4<mode>):
+ 	Updated from neon_vld1_x4<mode>.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New
+ 	(vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
+ 	(vld1_f16_x3, vld1_f32_x3): New.
+ 	(vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
+ 	(vld1_bf16_x3): New.
+ 	(vld1q_types_x3): Updated to use vld1q_x3 from
+ 	arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x3): Updated entries.
+ 	(vld1q_x3): New entries, but comes from the old vld1_x2
+ 	* config/arm/neon.md (neon_vld1q_x3<mode>): Updated from
+ 	neon_vld1_x3<mode>.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New
+ 	(vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
+ 	(vld1_f16_x2, vld1_f32_x2): New.
+ 	(vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
+ 	(vld1_bf16_x2): New.
+ 	(vld1q_types_x2): Updated to use vld1q_x2 from
+ 	arm_neon_builtins.def
+ 	* config/arm/arm_neon_builtins.def
+ 	(vld1_x2): Updated entries.
+ 	(vld1q_x2): New entries, but comes from the old vld1_x2
+ 	* config/arm/neon.md
+ 	(neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated
+ 	from neon_vld1_x2<mode>.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
+ 	(vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
+ 	(vst1q_f16_x4, vst1q_f32_x4): New.
+ 	(vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
+ 	(vst1q_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
+ 	* config/arm/neon.md (neon_vst1q_x4<mode>): New.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
+ 	(vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
+ 	(vst1q_f16_x3, vst1q_f32_x3): New.
+ 	(vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
+ 	(vst1q_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
+ 	* config/arm/neon.md (neon_vst1q_x3<mode>): New.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
+ 	(vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
+ 	(vst1q_f16_x2, vst1q_f32_x2): New.
+ 	(vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
+ 	(vst1q_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vst1q_x2): New entries.
+ 	* config/arm/neon.md
+ 	(neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
+ 	neon_vst1_x2<mode>.
+ 	* config/arm/iterators.md (VMEMX2): New mode iterator.
+ 	(VMEMX2_q): New mode attribute.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
+ 	(vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
+ 	(vst1_f16_x4, vst1_f32_x4): New.
+ 	(vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
+ 	(vst1_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x4): New entries.
+ 	* config/arm/neon.md (vst1_x4<mode>): New.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
+ 	(vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
+ 	(vst1_f16_x3, vst1_f32_x3): New.
+ 	(vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
+ 	(vst1_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x3): New entries.
+ 	* config/arm/neon.md (vst1_x3<mode>): New.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
+ 	(vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
+ 	(vst1_f16_x2, vst1_f32_x2): New.
+ 	(vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
+ 	(vst1_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vst1_x2): New entries.
+ 	* config/arm/neon.md (vst1_x2<mode>): New.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
+ 	(vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
+ 	(vld1q_f16_x4, vld1q_f32_x4): New.
+ 	(vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
+ 	(vld1q_bf16_x4): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x4): New entries.
+ 	* config/arm/neon.md (vld1_x4<mode>): New.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
+ 	(vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
+ 	(vld1q_f16_x3, vld1q_f32_x3): New.
+ 	(vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
+ 	(vld1q_bf16_x3): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x3): New entries.
+ 	* config/arm/neon.md (vld1_x3<mode>): New.
+ 
+ 2023-12-07  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/arm/arm_neon.h
+ 	(vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
+ 	(vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
+ 	(vld1q_f16_x2, vld1q_f32_x2): New.
+ 	(vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
+ 	(vld1q_bf16_x2): New.
+ 	* config/arm/arm_neon_builtins.def (vld1_x2): New entries.
+ 	* config/arm/neon.md (vld1_x2<mode>): New.
+ 
+ 2023-12-07  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/vecintrin.h (vec_step): Expand vec_step to
+ 	__builtin_s390_vec_step.
+ 
+ 2023-12-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* target.def (have_strub_support_for): New hook.
+ 	* doc/tm.texi.in: Document it.
+ 	* doc/tm.texi: Rebuild.
+ 	* ipa-strub.cc: Include target.h.
+ 	(strub_target_support_p): New.
+ 	(can_strub_p): Call it.  Test for no flag_split_stack.
+ 	(pass_ipa_strub::adjust_at_calls_call): Check for target
+ 	support.
+ 	* config/nvptx/nvptx.cc (TARGET_HAVE_STRUB_SUPPORT_FOR):
+ 	Disable.
+ 	* doc/sourcebuild.texi (strub): Document new effective
+ 	target.
+ 
+ 2023-12-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-avlprop.cc (simplify_replace_avl): New function.
+ 	(simplify_replace_vlmax_avl): Fix bug.
+ 	* config/riscv/t-riscv: Add a new include file.
+ 
+ 2023-12-07  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/thead.cc (th_memidx_classify_address_index):
+ 	Require TARGET_XTHEADMEMIDX for FP modes.
+ 	* config/riscv/thead.md: Require TARGET_XTHEADMEMIDX for all
+ 	XTheadFMemIdx pattern.
+ 
+ 2023-12-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112881
+ 	* expr.cc (count_type_elements): Handle BITINT_TYPE like INTEGER_TYPE.
+ 
+ 2023-12-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112880
+ 	* tree-ssa-dce.cc (maybe_optimize_arith_overflow): Use
+ 	unsigned_type_for instead of conditionally calling
+ 	build_nonstandard_integer_type.
+ 
+ 2023-12-07  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/arm_neon.h (vldap1_lane_u64): New.
+ 	(vldap1q_lane_u64): Likewise.
+ 	(vldap1_lane_s64): Likewise.
+ 	(vldap1q_lane_s64): Likewise.
+ 	(vldap1_lane_f64): Likewise.
+ 	(vldap1q_lane_f64): Likewise.
+ 	(vldap1_lane_p64): Likewise.
+ 	(vldap1q_lane_p64): Likewise.
+ 	(vstl1_lane_u64): Likewise.
+ 	(vstl1q_lane_u64): Likewise.
+ 	(vstl1_lane_s64): Likewise.
+ 	(vstl1q_lane_s64): Likewise.
+ 	(vstl1_lane_f64): Likewise.
+ 	(vstl1q_lane_f64): Likewise.
+ 	(vstl1_lane_p64): Likewise.
+ 	(vstl1q_lane_p64): Likewise.
+ 
+ 2023-12-07  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd-builtins.def
+ 	(vec_ldap1_lane): New.
+ 	(vec_stl1_lane): Likewise.
+ 	* config/aarch64/aarch64-simd.md
+ 	(aarch64_vec_stl1_lanes<mode>_lane<Vel>): New.
+ 	(aarch64_vec_stl1_lane<mode>): Likewise.
+ 	(aarch64_vec_ldap1_lanes<mode>_lane<Vel>): Likewise.
+ 	(aarch64_vec_ldap1_lane<mode>): Likewise.
+ 	* config/aarch64/aarch64.md (UNSPEC_LDAP1_LANE): New.
+ 	(UNSPEC_STL1_LANE): Likewise.
+ 
+ 2023-12-07  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/iterators.md (V12DIF): New.
+ 	(V12DUP): Likewise.
+ 	(VEL): Add support for all V12DIF-associated modes.
+ 	(Vetype): Add support for V1DI and V1DF.
+ 	(Vel): Likewise.
+ 
+ 2023-12-07  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (rcpc3): New.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_RCPC3): Likewise.
+ 	(TARGET_RCPC3): Likewise.
+ 	* doc/invoke.texi (rcpc3): Document feature in AArch64 Options.
+ 
+ 2023-12-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_split_ashl_ndd): New
+ 	function to split NDD form lshift.
+ 	(ix86_split_rshift_ndd): Likewise for l/ashiftrt.
+ 	* config/i386/i386-protos.h (ix86_split_ashl_ndd): New
+ 	prototype.
+ 	(ix86_split_rshift_ndd): Likewise.
+ 	* config/i386/i386.md (ashl<mode>3_doubleword): Add NDD
+ 	alternative, call ndd split function when operands[0]
+ 	not equal to operands[1].
+ 	(define_split for doubleword lshift): Likewise.
+ 	(define_peephole for doubleword lshift): Likewise.
+ 	(<insn><mode>3_doubleword): Likewise for l/ashiftrt.
+ 	(define_split for doubleword l/ashiftrt): Likewise.
+ 	(define_peephole for doubleword l/ashiftrt): Likewise.
+ 
+ 2023-12-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (*mov<mode>cc_noc): Extend with new constraints
+ 	to support NDD.
+ 	(*movsicc_noc_zext): Likewise.
+ 	(*movsicc_noc_zext_1): Likewise.
+ 	(*movqicc_noc): Likewise.
+ 
+ 2023-12-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (x86_64_shld_ndd): New define_insn.
+ 	(x86_64_shld_ndd_1): Likewise.
+ 	(*x86_64_shld_ndd_2): Likewise.
+ 	(x86_shld_ndd): Likewise.
+ 	(x86_shld_ndd_1): Likewise.
+ 	(*x86_shld_ndd_2): Likewise.
+ 	(x86_64_shrd_ndd): Likewise.
+ 	(x86_64_shrd_ndd_1): Likewise.
+ 	(*x86_64_shrd_ndd_2): Likewise.
+ 	(x86_shrd_ndd): Likewise.
+ 	(x86_shrd_ndd_1): Likewise.
+ 	(*x86_shrd_ndd_2): Likewise.
+ 	(*x86_64_shld_shrd_1_nozext): Adjust codegen under TARGET_APX_NDD.
+ 	(*x86_shld_shrd_1_nozext): Likewise.
+ 	(*x86_64_shrd_shld_1_nozext): Likewise.
+ 	(*x86_shrd_shld_1_nozext): Likewise.
+ 
+ 2023-12-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (*<insn><mode>3_1): Extend with a new
+ 	alternative to support NDD for SI/DI rotate, and adjust output
+ 	template.
+ 	(*<insn>si3_1_zext): Likewise.
+ 	(*<insn><mode>3_1): Likewise for QI/HI modes.
+ 	(rcrsi2): Likewise, and use nonimmediate_operand for operands[1]
+ 	to accept memory input for NDD alternative.
+ 	(rcrdi2): Likewise.
+ 
+ 2023-12-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (ashr<mode>3_cvt): Extend with new
+ 	alternatives to support NDD, and adjust output templates.
+ 	(*ashr<mode>3_1): Likewise for SI/DI mode.
+ 	(*lshr<mode>3_1): Likewise.
+ 	(*<insn>si3_1_zext): Likewise.
+ 	(*ashr<mode>3_1): Likewise for QI/HI mode.
+ 	(*lshrqi3_1): Likewise.
+ 	(*lshrhi3_1): Likewise.
+ 	(<insn><mode>3_cmp): Likewise.
+ 	(*<insn><mode>3_cconly): Likewise.
+ 	(*ashrsi3_cvt_zext): Likewise, and use nonimmediate_operand for
+ 	operands[1] to accept memory input for NDD alternative.
+ 	(*highpartdisi2): Likewise.
+ 	(*<insn>si3_cmp_zext): Likewise.
+ 	(<insn><mode>3_carry): Likewise.
+ 
+ 2023-12-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (*ashl<mode>3_1): Extend with new
+ 	alternatives to support NDD, limit the new alternative to
+ 	generate sal only, and adjust output template for NDD.
+ 	(*ashlsi3_1_zext): Likewise.
+ 	(*ashlhi3_1): Likewise.
+ 	(*ashlqi3_1): Likewise.
+ 	(*ashl<mode>3_cmp): Likewise.
+ 	(*ashlsi3_cmp_zext): Likewise, and use nonimmediate_operand for
+ 	operands[1] to accept memory input for NDD alternative.
+ 	(*ashl<mode>3_cconly): Likewise.
+ 	(*ashl<dwi>3_doubleword_highpart): Adjust codegen for NDD.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (<code><mode>3): Add new alternative for NDD
+ 	and adjust output templates.
+ 	(*<code><mode>_1): Likewise.
+ 	(*<code>qi_1): Likewise.
+ 	(*notxor<mode>_1): Likewise.
+ 	(*<code>si_1_zext): Likewise.
+ 	(*notxorqi_1): Likewise.
+ 	(*<code><mode>_2): Likewise.
+ 	(*<code>si_2_zext): Likewise.
+ 	(*<code>si_2_zext_imm): Likewise.
+ 	(*<code>si_1_zext_imm): Likewise, and use nonimmediate_operand for
+ 	operands[1] to accept memory input for NDD alternative.
+ 	(*one_cmplsi2_2_zext): Likewise.
+ 	(define_split for *one_cmplsi2_2_zext): Use nonimmediate_operand for
+ 	operands[3].
+ 	(*<code><dwi>3_doubleword): Add NDD constraints, adopt '&' to NDD dest
+ 	and emit move for optimized case if operands[0] != operands[1] or
+ 	operands[4] != operands[5].
+ 	(define_split for QI highpart OR/XOR): Prohibit splitter to split NDD
+ 	form OR/XOR insn to <any_logic:code>qi_ext<mode>_3.
+ 	(define_split for QI strict_lowpart optimization): Prohibit splitter to
+ 	split NDD form AND insn to *<code><mode>3_1_slp.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (and<mode>3): Add NDD alternatives and adjust
+ 	output template.
+ 	(*anddi_1): Likewise.
+ 	(*and<mode>_1): Likewise.
+ 	(*andqi_1): Likewise.
+ 	(*andsi_1_zext): Likewise.
+ 	(*anddi_2): Likewise.
+ 	(*andsi_2_zext): Likewise.
+ 	(*andqi_2_maybe_si): Likewise.
+ 	(*and<mode>_2): Likewise.
+ 	(*and<dwi>3_doubleword): Add NDD alternative, adopt '&' to NDD dest and
+ 	emit move for optimized case if operands[0] not equal to operands[1].
+ 	(define_split for QI highpart AND): Prohibit splitter to split NDD
+ 	form AND insn to <any_logic:code>qi_ext<mode>_3.
+ 	(define_split for QI strict_lowpart optimization): Prohibit splitter to
+ 	split NDD form AND insn to *<code><mode>3_1_slp.
+ 	(define_split for zero_extend and optimization): Prohibit splitter to
+ 	split NDD form AND insn to zero_extend insn.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (one_cmpl<mode>2): Add new constraints for NDD
+ 	and adjust output template.
+ 	(*one_cmpl<mode>2_1): Likewise.
+ 	(*one_cmplqi2_1): Likewise.
+ 	(*one_cmpl<dwi>2_doubleword): Likewise, and adopt '&' to NDD dest.
+ 	(*one_cmpl<mode>2_2): Likewise.
+ 	(*one_cmplsi2_1_zext): Likewise, and use nonimmediate_operand for
+ 	operands[1] to accept memory input for NDD alternative.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_unary_operator): Add use_ndd
+ 	parameter and adjust for NDD.
+ 	* config/i386/i386-protos.h: Add use_ndd parameter for
+ 	ix86_unary_operator_ok and ix86_expand_unary_operator.
+ 	* config/i386/i386.cc (ix86_unary_operator_ok): Add use_ndd parameter
+ 	and adjust for NDD.
+ 	* config/i386/i386.md (neg<mode>2): Add new constraint for NDD and
+ 	adjust output template.
+ 	(*neg<mode>_1): Likewise.
+ 	(*neg<dwi>2_doubleword): Likewise and adopt '&' to NDD dest.
+ 	(*neg<mode>_2): Likewise.
+ 	(*neg<mode>_ccc_1): Likewise.
+ 	(*neg<mode>_ccc_2): Likewise.
+ 	(*negsi_1_zext): Likewise, and use nonimmediate_operand for operands[1]
+ 	to accept memory input for NDD alternatives.
+ 	(*negsi_2_zext): Likewise.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (*sub<dwi>3_doubleword): Add new alternative for
+ 	NDD, adopt '&' modifier to NDD dest and emit move when operands[0] not
+ 	equal to operands[1].
+ 	(*sub<dwi>3_doubleword_zext): Likewise.
+ 	(*subv<dwi>4_doubleword): Likewise.
+ 	(*subv<dwi>4_doubleword_1): Likewise.
+ 	(*subv<mode>4_overflow_1): Add NDD alternatives and adjust output
+ 	templates.
+ 	(*subv<mode>4_overflow_2): Likewise.
+ 	(@sub<mode>3_carry): Likewise.
+ 	(*addsi3_carry_zext_0r): Likewise, and use nonimmediate_operand for
+ 	operands[1] to accept memory input for NDD alternative.
+ 	(*subsi3_carry_zext): Likewise.
+ 	(subborrow<mode>): Parse TARGET_APX_NDD to ix86_binary_operator_ok.
+ 	(subborrow<mode>_0): Likewise.
+ 	(*sub<mode>3_eq): Likewise.
+ 	(*sub<mode>3_ne): Likewise.
+ 	(*sub<mode>3_eq_1): Likewise.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_fixup_binary_operands_no_copy):
+ 	Add use_ndd parameter and parse it.
+ 	* config/i386/i386-protos.h (ix86_fixup_binary_operands_no_copy):
+ 	Change define.
+ 	* config/i386/i386.md (sub<mode>3): Add new alternatives for NDD
+ 	and adjust output templates.
+ 	(*sub<mode>_1): Likewise.
+ 	(*sub<mode>_2): Likewise.
+ 	(subv<mode>4): Likewise.
+ 	(*subv<mode>4): Likewise.
+ 	(subv<mode>4_1): Likewise.
+ 	(usubv<mode>4): Likewise.
+ 	(*sub<mode>_3): Likewise.
+ 	(*subsi_1_zext): Likewise, and use nonimmediate_operand for operands[1]
+ 	to accept memory input for NDD alternatives.
+ 	(*subsi_2_zext): Likewise.
+ 	(*subsi_3_zext): Likewise.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md (*add<dwi>3_doubleword): Add ndd alternatives,
+ 	adopt '&' to ndd dest and move operands[1] to operands[0] when they are
+ 	not equal.
+ 	(*add<dwi>3_doubleword_cc_overflow_1): Likewise.
+ 	(*addv<dwi>4_doubleword): Likewise.
+ 	(*addv<dwi>4_doubleword_1): Likewise.
+ 	(*add<dwi>3_doubleword_zext): Likewise.
+ 	(addv<mode>4_overflow_1): Add ndd alternatives.
+ 	(*addv<mode>4_overflow_2): Likewise.
+ 	(@add<mode>3_carry): Likewise.
+ 	(*add<mode>3_carry_0): Likewise.
+ 	(*addsi3_carry_zext): Likewise.
+ 	(addcarry<mode>): Likewise.
+ 	(addcarry<mode>_0): Likewise.
+ 	(*addcarry<mode>_1): Likewise.
+ 	(*add<mode>3_eq): Likewise.
+ 	(*add<mode>3_ne): Likewise.
+ 	(*addsi3_carry_zext_0): Likewise, and use nonimmediate_operand for
+ 	operands[1] to accept memory input for NDD alternative.
+ 
+ 2023-12-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/constraints.md (je): New constraint.
+ 	* config/i386/i386-protos.h (x86_poff_operand_p): New function to
+ 	check any *POFF constant in operand.
+ 	* config/i386/i386.cc (x86_poff_operand_p): New prototype.
+ 	* config/i386/i386.md (*add<mode>_1): Split out je alternative for add.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386.md: (addsi_1_zext): Add new alternatives for
+ 	NDD and adjust output templates.
+ 	(*add<mode>_2): Likewise.
+ 	(*addsi_2_zext): Likewise.
+ 	(*add<mode>_3): Likewise.
+ 	(*addsi_3_zext): Likewise.
+ 	(*adddi_4): Likewise.
+ 	(*add<mode>_4): Likewise.
+ 	(*add<mode>_5): Likewise.
+ 	(*addv<mode>4): Likewise.
+ 	(*addv<mode>4_1): Likewise.
+ 	(*add<mode>3_cconly_overflow_1): Likewise.
+ 	(*add<mode>3_cc_overflow_1): Likewise.
+ 	(*addsi3_zext_cc_overflow_1): Likewise.
+ 	(*add<mode>3_cconly_overflow_2): Likewise.
+ 	(*add<mode>3_cc_overflow_2): Likewise.
+ 	(*addsi3_zext_cc_overflow_2): Likewise.
+ 
+ 2023-12-07  Kong Lingling  <lingling.kong@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_fixup_binary_operands): Add
+ 	new use_ndd flag to check whether ndd can be used for this binop
+ 	and adjust operand emit.
+ 	(ix86_binary_operator_ok): Likewise.
+ 	(ix86_expand_binary_operator): Likewise, and void postreload
+ 	expand generate lea pattern when use_ndd is explicit parsed.
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Prohibit apx subfeatures when not in 64bit mode.
+ 	* config/i386/i386-protos.h (ix86_binary_operator_ok):
+ 	Add use_ndd flag.
+ 	(ix86_fixup_binary_operand): Likewise.
+ 	(ix86_expand_binary_operand): Likewise.
+ 	* config/i386/i386.md (*add<mode>_1): Extend with new alternatives
+ 	to support NDD, and adjust output template.
+ 	(*addhi_1): Likewise.
+ 	(*addqi_1): Likewise.
+ 
+ 2023-12-07  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/103546
+ 	PR analyzer/112850
+ 	* doc/invoke.texi: Add -Wanalyzer-symbol-too-complex.
+ 
+ 2023-12-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (extract_single_source): new function.
+ 	(pre_vsetvl::compute_lcm_local_properties): Fix ICE.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (AARCH64_RSR128): New
+ 	`enum aarch64_builtins' value.
+ 	(AARCH64_WSR128): Likewise.
+ 	(aarch64_init_rwsr_builtins): Init `__builtin_aarch64_rsr128'
+ 	and `__builtin_aarch64_wsr128' builtins.
+ 	(aarch64_expand_rwsr_builtin): Extend function to handle
+ 	`__builtin_aarch64_{rsr|wsr}128'.
+ 	* config/aarch64/aarch64-protos.h (aarch64_retrieve_sysreg):
+ 	Update function signature.
+ 	* config/aarch64/aarch64.cc (F_REG_128): New.
+ 	(aarch64_retrieve_sysreg): Add 128-bit register mode check.
+ 	* config/aarch64/aarch64.md (UNSPEC_SYSREG_RTI): New.
+ 	(UNSPEC_SYSREG_WTI): Likewise.
+ 	(aarch64_read_sysregti): Likewise.
+ 	(aarch64_write_sysregti): Likewise.
+ 	* config/aarch64/arm_acle.h (__arm_rsr128): New.
+ 	(__arm_wsr128): Likewise.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (gcs): New.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_GCS): New.
+ 	(TARGET_THE):  Likewise.
+ 	* doc/invoke.texi (AArch64 Options): Describe GCS.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (__ARM_FEATURE_SYSREG128): New.
+ 	* config/aarch64/aarch64-arches.def (armv8.9-a): New.
+ 	(armv9.4-a): Likewise.
+ 	* config/aarch64/aarch64-option-extensions.def (d128): Likewise.
+ 	(the): Likewise.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_V9_4A): Likewise.
+ 	(AARCH64_ISA_V8_9A): Likewise.
+ 	(TARGET_ARMV9_4): Likewise.
+ 	(AARCH64_ISA_D128): Likewise.
+ 	(AARCH64_ISA_THE): Likewise.
+ 	(TARGET_D128): Likewise.
+ 	* doc/invoke.texi (AArch64 Options): Document new -march flags
+ 	and extensions.
+ 
+ 2023-12-06  Eric Gallager  <egallager@gcc.gnu.org>
+ 
+ 	* Makefile.in: Remove qmtest-related targets.
+ 
+ 2023-12-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* common.opt (fdiagnostics-json-formatting): New.
+ 	* diagnostic-format-json.cc: Add "formatted" boolean
+ 	to json_output_format and subclasses, and to the
+ 	diagnostic_output_format_init_json_* functions.  Use it when
+ 	printing JSON.
+ 	* diagnostic-format-sarif.cc: Likewise for sarif_builder,
+ 	sarif_output_format, and the various
+ 	diagnostic_output_format_init_sarif_* functions.
+ 	* diagnostic.cc (diagnostic_output_format_init): Add
+ 	"json_formatting" boolean and pass on to the various cases.
+ 	* diagnostic.h (diagnostic_output_format_init): Add
+ 	"json_formatted" param.
+ 	(diagnostic_output_format_init_json_stderr): Add "formatted" param
+ 	(diagnostic_output_format_init_json_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stderr): Likewise.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	* doc/invoke.texi (-fdiagnostics-format=json): Remove discussion
+ 	about JSON output needing formatting.
+ 	(-fno-diagnostics-json-formatting): Add.
+ 	* gcc.cc (driver_handle_option): Use
+ 	opts->x_flag_diagnostics_json_formatting.
+ 	* gcov.cc (generate_results): Pass "false" for new formatting
+ 	option when printing json.
+ 	* json.cc (value::dump): Add new "formatted" param.
+ 	(object::print): Likewise, using it to add whitespace to format
+ 	the JSON output.
+ 	(array::print): Likewise.
+ 	(float_number::print): Add new "formatted" param.
+ 	(integer_number::print): Likewise.
+ 	(string::print): Likewise.
+ 	(literal::print): Likewise.
+ 	(selftest::assert_print_eq): Add "formatted" param.
+ 	(ASSERT_PRINT_EQ): Add "FORMATTED" param.
+ 	(selftest::test_writing_objects): Test both formatted and
+ 	unformatted printing.
+ 	(selftest::test_writing_arrays): Likewise.
+ 	(selftest::test_writing_float_numbers): Update for new param of
+ 	ASSERT_PRINT_EQ.
+ 	(selftest::test_writing_integer_numbers): Likewise.
+ 	(selftest::test_writing_strings): Likewise.
+ 	(selftest::test_writing_literals): Likewise.
+ 	(selftest::test_formatting): New.
+ 	(selftest::json_cc_tests): Call it.
+ 	* json.h (value::print): Add "formatted" param.
+ 	(value::dump): Likewise.
+ 	(object::print): Likewise.
+ 	(array::print): Likewise.
+ 	(float_number::print): Likewise.
+ 	(integer_number::print): Likewise.
+ 	(string::print): Likewise.
+ 	(literal::print): Likewise.
+ 	* optinfo-emit-json.cc (optrecord_json_writer::write): Pass
+ 	"false" for new formatting option when printing json.
+ 	(selftest::test_building_json_from_dump_calls): Likewise.
+ 	* opts.cc (common_handle_option): Use
+ 	opts->x_flag_diagnostics_json_formatting.
+ 
+ 2023-12-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc (on_begin_diagnostic): Convert param
+ 	to const reference.
+ 	(on_end_diagnostic): Likewise.
+ 	(json_output_format::on_end_diagnostic): Likewise.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_invocation::add_notification_for_ice): Likewise.
+ 	(sarif_result::on_nested_diagnostic): Likewise.
+ 	(sarif_ice_notification::sarif_ice_notification): Likewise.
+ 	(sarif_builder::end_diagnostic): Likewise.
+ 	(sarif_builder::make_result_object): Likewise.
+ 	(make_reporting_descriptor_object_for_warning): Likewise.
+ 	(sarif_builder::make_locations_arr): Likewise.
+ 	(sarif_output_format::on_begin_diagnostic): Likewise.
+ 	(sarif_output_format::on_end_diagnostic): Likewise.
+ 	* diagnostic.cc (default_diagnostic_starter): Make diagnostic_info
+ 	param const.
+ 	(default_diagnostic_finalizer): Likewise.
+ 	(diagnostic_context::report_diagnostic): Pass diagnostic by
+ 	reference to on_{begin,end}_diagnostic.
+ 	(diagnostic_text_output_format::on_begin_diagnostic): Convert
+ 	param to const reference.
+ 	(diagnostic_text_output_format::on_end_diagnostic): Likewise.
+ 	* diagnostic.h (diagnostic_starter_fn): Make diagnostic_info param
+ 	const.
+ 	(diagnostic_finalizer_fn): Likeewise.
+ 	(diagnostic_output_format::on_begin_diagnostic): Convert param to
+ 	const reference.
+ 	(diagnostic_output_format::on_end_diagnostic): Likewise.
+ 	(diagnostic_text_output_format::on_begin_diagnostic): Likewise.
+ 	(diagnostic_text_output_format::on_end_diagnostic): Likewise.
+ 	(default_diagnostic_starter): Make diagnostic_info param const.
+ 	(default_diagnostic_finalizer): Likewise.
+ 	* langhooks-def.h (lhd_print_error_function): Make diagnostic_info
+ 	param const.
+ 	* langhooks.cc (lhd_print_error_function): Likewise.
+ 	* langhooks.h (lang_hooks::print_error_function): Likewise.
+ 	* tree-diagnostic.cc (diagnostic_report_current_function):
+ 	Likewise.
+ 	(default_tree_diagnostic_starter): Likewise.
+ 	(virt_loc_aware_diagnostic_finalizer): Likewise.
+ 	* tree-diagnostic.h (diagnostic_report_current_function):
+ 	Likewise.
+ 	(virt_loc_aware_diagnostic_finalizer): Likewise.
+ 
+ 2023-12-06  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-builtins.def (DISPATCH_PTR): New built-in.
+ 	* config/gcn/gcn.cc (gcn_init_machine_status): Disable global
+ 	addressing.
+ 	(gcn_expand_builtin_1): Implement GCN_BUILTIN_DISPATCH_PTR.
+ 
+ 2023-12-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112855
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(pre_vsetvl::compute_lcm_local_properties): Fix transparant LCM data.
+ 	(pre_vsetvl::earliest_fuse_vsetvl_info): Disable earliest fusion for unrelated edge.
+ 
+ 2023-12-06  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR target/112762
+ 	* config/linux.h: Redefine TARGET_FORTIFY_SOURCE_DEFAULT_LEVEL for
+ 	glibc only.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_test_sysreg_encoding_clashes): New.
+ 	(aarch64_run_selftests): add call to
+ 	aarch64_test_sysreg_encoding_clashes selftest.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_general_check_builtin_call):
+ 	New.
+ 	* config/aarch64/aarch64-c.cc (aarch64_check_builtin_call):
+ 	Add `aarch64_general_check_builtin_call' call.
+ 	* config/aarch64/aarch64-protos.h (aarch64_general_check_builtin_call):
+ 	New.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (enum aarch64_builtins):
+ 	Add enums for new builtins.
+ 	(aarch64_init_rwsr_builtins): New.
+ 	(aarch64_general_init_builtins): Call aarch64_init_rwsr_builtins.
+ 	(aarch64_expand_rwsr_builtin):  New.
+ 	(aarch64_general_expand_builtin): Call aarch64_general_expand_builtin.
+ 	* config/aarch64/aarch64.md (read_sysregdi): New insn_and_split.
+ 	(write_sysregdi): Likewise.
+ 	* config/aarch64/arm_acle.h (__arm_rsr): New.
+ 	(__arm_rsrp): Likewise.
+ 	(__arm_rsr64): Likewise.
+ 	(__arm_rsrf): Likewise.
+ 	(__arm_rsrf64): Likewise.
+ 	(__arm_wsr): Likewise.
+ 	(__arm_wsrp): Likewise.
+ 	(__arm_wsr64): Likewise.
+ 	(__arm_wsrf): Likewise.
+ 	(__arm_wsrf64): Likewise.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_valid_sysreg_name_p): New.
+ 	(aarch64_retrieve_sysreg): Likewise.
+ 	* config/aarch64/aarch64.cc (is_implem_def_reg): Likewise.
+ 	(aarch64_valid_sysreg_name_p): Likewise.
+ 	(aarch64_retrieve_sysreg): Likewise.
+ 	(aarch64_register_sysreg): Likewise.
+ 	(aarch64_init_sysregs): Likewise.
+ 	(aarch64_lookup_sysreg_map): Likewise.
+ 	* config/aarch64/predicates.md (aarch64_sysreg_string): New.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (sysreg_t): New.
+ 	(aarch64_sysregs): Likewise.
+ 	(AARCH64_FEATURE): Likewise.
+ 	(AARCH64_FEATURES): Likewise.
+ 	(AARCH64_NO_FEATURES): Likewise.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_V8A): Add missing
+ 	ISA flag.
+ 	(AARCH64_ISA_V8_1A): Likewise.
+ 	(AARCH64_ISA_V8_7A): Likewise.
+ 	(AARCH64_ISA_V8_8A): Likewise.
+ 	(AARCH64_NO_FEATURES): Likewise.
+ 	(AARCH64_FL_RAS): New ISA flag alias.
+ 	(AARCH64_FL_LOR): Likewise.
+ 	(AARCH64_FL_PAN): Likewise.
+ 	(AARCH64_FL_AMU): Likewise.
+ 	(AARCH64_FL_SCXTNUM): Likewise.
+ 	(AARCH64_FL_ID_PFR2): Likewise.
+ 	(F_DEPRECATED): New.
+ 	(F_REG_READ): Likewise.
+ 	(F_REG_WRITE): Likewise.
+ 	(F_ARCHEXT): Likewise.
+ 	(F_REG_ALIAS): Likewise.
+ 
+ 2023-12-06  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-sys-regs.def: New.
+ 
+ 2023-12-06  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/112854
+ 	PR target/112872
+ 	* config/riscv/autovec.md (vec_init<mode>qi): New expander.
+ 
+ 2023-12-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/112760
+ 	* config/i386/i386-passes.def (pass_insert_vzeroupper): Insert
+ 	after pass_postreload_cse rather than pass_reload.
+ 	* config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
+ 	Adjust comment for it.
+ 
+ 2023-12-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112809
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt): For
+ 	separate_ext in kind == bitint_prec_huge mode if rem == 0, create for
+ 	i == cnt - 1 the loop rather than using size_int (end).
+ 
+ 2023-12-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gcc.cc (driver_handle_option): Add /* FALLTHROUGH */ comment
+ 	between OPT_pie and OPT_r cases.
+ 
+ 2023-12-06  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* tsystem.h (calloc, realloc): Declare when inhibit_libc.
+ 
+ 2023-12-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112843
+ 	* tree-ssa-operands.cc (update_stmt_operands): Do not call
+ 	update_stmt from ranger.
+ 	* value-query.h (range_query::update_stmt): Remove.
+ 	* gimple-range.h (gimple_ranger::update_stmt): Likewise.
+ 	* gimple-range.cc (gimple_ranger::update_stmt): Likewise.
+ 
+ 2023-12-06  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.md: Remove.
+ 
+ 2023-12-06  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* Makefile.in (OBJS): Add ipa-strub.o.
+ 	(GTFILES): Add ipa-strub.cc.
+ 	* builtins.def (BUILT_IN_STACK_ADDRESS): New.
+ 	(BUILT_IN___STRUB_ENTER): New.
+ 	(BUILT_IN___STRUB_UPDATE): New.
+ 	(BUILT_IN___STRUB_LEAVE): New.
+ 	* builtins.cc: Include ipa-strub.h.
+ 	(STACK_STOPS, STACK_UNSIGNED): Define.
+ 	(expand_builtin_stack_address): New.
+ 	(expand_builtin_strub_enter): New.
+ 	(expand_builtin_strub_update): New.
+ 	(expand_builtin_strub_leave): New.
+ 	(expand_builtin): Call them.
+ 	* common.opt (fstrub=*): New options.
+ 	* doc/extend.texi (strub): New type attribute.
+ 	(__builtin_stack_address): New function.
+ 	(Stack Scrubbing): New section.
+ 	* doc/invoke.texi (-fstrub=*): New options.
+ 	(-fdump-ipa-*): New passes.
+ 	* gengtype-lex.l: Ignore multi-line pp-directives.
+ 	* ipa-inline.cc: Include ipa-strub.h.
+ 	(can_inline_edge_p): Test strub_inlinable_to_p.
+ 	* ipa-split.cc: Include ipa-strub.h.
+ 	(execute_split_functions): Test strub_splittable_p.
+ 	* ipa-strub.cc, ipa-strub.h: New.
+ 	* passes.def: Add strub_mode and strub passes.
+ 	* tree-cfg.cc (gimple_verify_flow_info): Note on debug stmts.
+ 	* tree-pass.h (make_pass_ipa_strub_mode): Declare.
+ 	(make_pass_ipa_strub): Declare.
+ 	(make_pass_ipa_function_and_variable_visibility): Fix
+ 	formatting.
+ 	* tree-ssa-ccp.cc (optimize_stack_restore): Keep restores
+ 	before strub leave.
+ 	* attribs.cc: Include ipa-strub.h.
+ 	(decl_attributes): Support applying attributes to function
+ 	type, rather than pointer type, at handler's request.
+ 	(comp_type_attributes): Combine strub_comptypes and target
+ 	comp_type results.
+ 	* doc/tm.texi.in (TARGET_STRUB_USE_DYNAMIC_ARRAY): New.
+ 	(TARGET_STRUB_MAY_USE_MEMSET): New.
+ 	* doc/tm.texi: Rebuilt.
+ 	* cgraph.h (symtab_node::reset): Add preserve_comdat_group
+ 	param, with a default.
+ 	* cgraphunit.cc (symtab_node::reset): Use it.
+ 
+ 2023-12-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112851
+ 	PR target/112852
+ 	* config/riscv/riscv-v.cc (vls_mode_valid_p): Block VLSmodes according
+ 	TARGET_MAX_LMUL and BITS_PER_RISCV_VECTOR.
+ 
+ 2023-12-05  David Faust  <david.faust@oracle.com>
+ 
+ 	PR debug/112849
+ 	* btfout.cc (btf_collect_datasec): Avoid incorrectly creating an
+ 	entry in a BTF_KIND_DATASEC record for extern variable decls without
+ 	a known section.
+ 
+ 2023-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112606
+ 	* config/rs6000/rs6000.md (copysign<mode>3): Change predicate
+ 	of the last argument from gpc_reg_operand to any_operand.  If
+ 	operands[2] is CONST_DOUBLE, emit abs or neg abs depending on
+ 	its sign, otherwise if it doesn't satisfy gpc_reg_operand,
+ 	force it to REG using copy_to_mode_reg.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* attribs.cc (handle_ignored_attributes_option): Add extra
+ 	braces to work around PR 16333 in older compilers.
+ 	* config/aarch64/aarch64.cc (aarch64_gnu_attribute_table): Likewise.
+ 	(aarch64_arm_attribute_table): Likewise.
+ 	* config/arm/arm.cc (arm_gnu_attribute_table): Likewise.
+ 	* config/i386/i386-options.cc (ix86_gnu_attribute_table): Likewise.
+ 	* config/ia64/ia64.cc (ia64_gnu_attribute_table): Likewise.
+ 	* config/rs6000/rs6000.cc (rs6000_gnu_attribute_table): Likewise.
+ 	* target-def.h (TARGET_GNU_ATTRIBUTES): Likewise.
+ 	* genhooks.cc (emit_init_macros): Likewise, when emitting the
+ 	instantiation of TARGET_ATTRIBUTE_TABLE.
+ 	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Likewise, when
+ 	instantiating LANG_HOOKS_ATTRIBUTE_TABLE.
+ 	(LANG_HOOKS_ATTRIBUTE_TABLE): Define to be empty by default.
+ 	* target.def (attribute_table): Likewise.
+ 
+ 2023-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112860
+ 	* passes.cc (should_skip_pass_p): Do not skip ISEL.
+ 
+ 2023-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR sanitizer/111736
+ 	* asan.cc (asan_protect_global): Do not protect globals
+ 	in non-generic address-space.
+ 
+ 2023-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/92606
+ 	* ipa-icf.cc (sem_variable::equals_wpa): Compare address-spaces.
+ 
+ 2023-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112830
+ 	* gimplify.cc (gimplify_modify_expr): Avoid turning aggregate
+ 	copy of non-generic address-spaces to memcpy.
+ 	(gimplify_modify_expr_to_memcpy): Assert we are dealing with
+ 	a copy inside the generic address-space.
+ 	(gimplify_modify_expr_to_memset): Likewise.
+ 	* tree-cfg.cc (verify_gimple_assign_single): Allow
+ 	WITH_SIZE_EXPR as part of the RHS of an assignment.
+ 	* builtins.cc (get_memory_address): Assert we are dealing
+ 	with the generic address-space.
+ 	* tree-ssa-dce.cc (ref_may_be_aliased): Handle WITH_SIZE_EXPR.
+ 
+ 2023-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109689
+ 	PR tree-optimization/112856
+ 	* cfgloopmanip.h (unloop_loops): Adjust API.
+ 	* tree-ssa-loop-ivcanon.cc (unloop_loops): Take edges_to_remove
+ 	as parameter.
+ 	(canonicalize_induction_variables): Adjust.
+ 	(tree_unroll_loops_completely): Likewise.
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Rewrite into
+ 	LC SSA if we unlooped some loops and we are in LC SSA.
+ 
+ 2023-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112845
+ 	* config/i386/i386.md (movabsq $(i32 << shift), r64 peephole2): FAIL
+ 	if the new immediate is ix86_endbr_immediate_operand.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (TARGET_STREAMING_SME2): New macro.
+ 	(P_ALIASES): Likewise.
+ 	(REGISTER_NAMES): Add pn aliases of the predicate registers.
+ 	(W8_W11_REGNUM_P): New macro.
+ 	(W8_W11_REGS): New register class.
+ 	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
+ 	* config/aarch64/aarch64.cc (aarch64_print_operand): Add support
+ 	for %K, which prints a predicate as a counter.  Handle tuples of
+ 	predicates.
+ 	(aarch64_regno_regclass): Handle W8_W11_REGS.
+ 	(aarch64_class_max_nregs): Likewise.
+ 	* config/aarch64/constraints.md (Uci, Uw2, Uw4): New constraints.
+ 	(x, y): Move further up file.
+ 	(Uph): Redefine as the high predicate registers, renaming the old
+ 	constraint to...
+ 	(Uih): ...this.
+ 	* config/aarch64/predicates.md (const_0_to_7_operand): New predicate.
+ 	(const_0_to_4_step_4_operand, const_0_to_6_step_2_operand): Likewise.
+ 	(const_0_to_12_step_4_operand, const_0_to_14_step_2_operand): Likewise.
+ 	(aarch64_simd_shift_imm_qi): Use const_0_to_7_operand.
+ 	* config/aarch64/iterators.md (VNx16SI_ONLY, VNx8SI_ONLY)
+ 	(VNx8DI_ONLY, SVE_FULL_BHSIx2, SVE_FULL_HF, SVE_FULL_SIx2_SDIx4)
+ 	(SVE_FULL_BHS, SVE_FULLx24, SVE_DIx24, SVE_BHSx24, SVE_Ix24)
+ 	(SVE_Fx24, SVE_SFx24, SME_ZA_BIx24, SME_ZA_BHIx124, SME_ZA_BHIx24)
+ 	(SME_ZA_HFx124, SME_ZA_HFx24, SME_ZA_HIx124, SME_ZA_HIx24)
+ 	(SME_ZA_SDIx24, SME_ZA_SDFx24): New mode iterators.
+ 	(UNSPEC_REVD, UNSPEC_CNTP_C, UNSPEC_PEXT, UNSPEC_PEXTx2): New unspecs.
+ 	(UNSPEC_PSEL, UNSPEC_PTRUE_C, UNSPEC_SQRSHR, UNSPEC_SQRSHRN)
+ 	(UNSPEC_SQRSHRU, UNSPEC_SQRSHRUN, UNSPEC_UQRSHR, UNSPEC_UQRSHRN)
+ 	(UNSPEC_UZP, UNSPEC_UZPQ, UNSPEC_ZIP, UNSPEC_ZIPQ, UNSPEC_BFMLSLB)
+ 	(UNSPEC_BFMLSLT, UNSPEC_FCVTN, UNSPEC_FDOT, UNSPEC_SQCVT): Likewise.
+ 	(UNSPEC_SQCVTN, UNSPEC_SQCVTU, UNSPEC_SQCVTUN, UNSPEC_UQCVT): Likewise.
+ 	(UNSPEC_SME_ADD, UNSPEC_SME_ADD_WRITE, UNSPEC_SME_BMOPA): Likewise.
+ 	(UNSPEC_SME_BMOPS, UNSPEC_SME_FADD, UNSPEC_SME_FDOT, UNSPEC_SME_FVDOT)
+ 	(UNSPEC_SME_FMLA, UNSPEC_SME_FMLS, UNSPEC_SME_FSUB, UNSPEC_SME_READ)
+ 	(UNSPEC_SME_SDOT, UNSPEC_SME_SVDOT, UNSPEC_SME_SMLA, UNSPEC_SME_SMLS)
+ 	(UNSPEC_SME_SUB, UNSPEC_SME_SUB_WRITE, UNSPEC_SME_SUDOT): Likewise.
+ 	(UNSPEC_SME_SUVDOT, UNSPEC_SME_UDOT, UNSPEC_SME_UVDOT): Likewise.
+ 	(UNSPEC_SME_UMLA, UNSPEC_SME_UMLS, UNSPEC_SME_USDOT): Likewise.
+ 	(UNSPEC_SME_USVDOT, UNSPEC_SME_WRITE): Likewise.
+ 	(Vetype, VNARROW, V2XWIDE, Ventype, V_INT_EQUIV, v_int_equiv)
+ 	(VSINGLE, vsingle, b): Add tuple modes.
+ 	(v2xwide, za32_offset_range, za64_offset_range, za32_long)
+ 	(za32_last_offset, vg_modifier, z_suffix, aligned_operand)
+ 	(aligned_fpr): New mode attributes.
+ 	(SVE_INT_BINARY_MULTI, SVE_INT_BINARY_SINGLE, SVE_INT_BINARY_MULTI)
+ 	(SVE_FP_BINARY_MULTI): New int iterators.
+ 	(SVE_BFLOAT_TERNARY_LONG): Add UNSPEC_BFMLSLB and UNSPEC_BFMLSLT.
+ 	(SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
+ 	(SVE_WHILE_ORDER, SVE2_INT_SHIFT_IMM_NARROWxN, SVE_QCVTxN)
+ 	(SVE2_SFx24_UNARY, SVE2_x24_PERMUTE, SVE2_x24_PERMUTEQ)
+ 	(UNSPEC_REVD_ONLY, SME2_INT_MOP, SME2_BMOP, SME_BINARY_SLICE_SDI)
+ 	(SME_BINARY_SLICE_SDF, SME_BINARY_WRITE_SLICE_SDI, SME_INT_DOTPROD)
+ 	(SME_INT_DOTPROD_LANE, SME_FP_DOTPROD, SME_FP_DOTPROD_LANE)
+ 	(SME_INT_TERNARY_SLICE, SME_FP_TERNARY_SLICE, BHSD_BITS)
+ 	(LUTI_BITS): New int iterators.
+ 	(optab, sve_int_op): Handle the new unspecs.
+ 	(sme_int_op, has_16bit_form): New int attributes.
+ 	(bits_etype): Handle 64.
+ 	* config/aarch64/aarch64.md (UNSPEC_LD1_SVE_COUNT): New unspec.
+ 	(UNSPEC_ST1_SVE_COUNT, UNSPEC_LDNT1_SVE_COUNT): Likewise.
+ 	(UNSPEC_STNT1_SVE_COUNT): Likewise.
+ 	* config/aarch64/atomics.md (cas_short_expected_imm): Use Uhi
+ 	rather than Uph for HImode immediates.
+ 	* config/aarch64/aarch64-sve.md (@aarch64_ld1<SVE_FULLx24:mode>)
+ 	(@aarch64_ldnt1<SVE_FULLx24:mode>, @aarch64_st1<SVE_FULLx24:mode>)
+ 	(@aarch64_stnt1<SVE_FULLx24:mode>): New patterns.
+ 	(@aarch64_<sur>dot_prod_lane<vsi2qi>): Extend to...
+ 	(@aarch64_<sur>dot_prod_lane<SVE_FULL_SDI:mode><SVE_FULL_BHI:mode>)
+ 	(@aarch64_<sur>dot_prod_lane<VNx4SI_ONLY:mode><VNx16QI_ONLY:mode>):
+ 	...these new patterns.
+ 	(SVE_WHILE_B, SVE_WHILE_B_X2, SVE_WHILE_C): New constants.  Add
+ 	SVE_WHILE_B to existing while patterns.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve_ptrue_c<BHSD_BITS>)
+ 	(@aarch64_sve_pext<BHSD_BITS>, @aarch64_sve_pext<BHSD_BITS>x2)
+ 	(@aarch64_sve_psel<BHSD_BITS>, *aarch64_sve_psel<BHSD_BITS>_plus)
+ 	(@aarch64_sve_cntp_c<BHSD_BITS>, <frint_pattern><mode>2)
+ 	(<optab><mode>3, *<optab><mode>3, @aarch64_sve_single_<optab><mode>)
+ 	(@aarch64_sve_<sve_int_op><mode>): New patterns.
+ 	(@aarch64_sve_single_<sve_int_op><mode>, @aarch64_sve_<su>clamp<mode>)
+ 	(*aarch64_sve_<su>clamp<mode>_x, @aarch64_sve_<su>clamp_single<mode>)
+ 	(@aarch64_sve_fclamp<mode>, *aarch64_sve_fclamp<mode>_x)
+ 	(@aarch64_sve_fclamp_single<mode>, <optab><mode><v2xwide>2)
+ 	(@aarch64_sve_<sur>dotvnx4sivnx8hi): New patterns.
+ 	(@aarch64_sve_<maxmin_uns_op><mode>): Likewise.
+ 	(*aarch64_sve_<maxmin_uns_op><mode>): Likewise.
+ 	(@aarch64_sve_single_<maxmin_uns_op><mode>): Likewise.
+ 	(aarch64_sve_fdotvnx4sfvnx8hf): Likewise.
+ 	(aarch64_fdot_prod_lanevnx4sfvnx8hf): Likewise.
+ 	(@aarch64_sve_<optab><VNx16QI_ONLY:mode><VNx16SI_ONLY:mode>): Likewise.
+ 	(@aarch64_sve_<optab><VNx8HI_ONLY:mode><VNx8SI_ONLY:mode>): Likewise.
+ 	(@aarch64_sve_<optab><VNx8HI_ONLY:mode><VNx8DI_ONLY:mode>): Likewise.
+ 	(truncvnx8sf<mode>2, @aarch64_sve_cvtn<mode>): Likewise.
+ 	(<optab><v_int_equiv><mode>2, <optab><mode><v_int_equiv>2): Likewise.
+ 	(@aarch64_sve_sel<mode>): Likewise.
+ 	(@aarch64_sve_while<while_optab_cmp>_b<BHSD_BITS>_x2): Likewise.
+ 	(@aarch64_sve_while<while_optab_cmp>_c<BHSD_BITS>): Likewise.
+ 	(@aarch64_pred_<optab><mode>, @cond_<optab><mode>): Likewise.
+ 	(@aarch64_sve_<optab><mode>): Likewise.
+ 	* config/aarch64/aarch64-sme.md (@aarch64_sme_<optab><mode><mode>)
+ 	(*aarch64_sme_<optab><mode><mode>_plus, @aarch64_sme_read<mode>)
+ 	(*aarch64_sme_read<mode>_plus, @aarch64_sme_write<mode>): New patterns.
+ 	(*aarch64_sme_write<mode>_plus aarch64_sme_zero_zt0): Likewise.
+ 	(@aarch64_sme_<optab><mode>, *aarch64_sme_<optab><mode>_plus)
+ 	(@aarch64_sme_single_<optab><mode>): Likewise.
+ 	(*aarch64_sme_single_<optab><mode>_plus): Likewise.
+ 	(@aarch64_sme_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>)
+ 	(*aarch64_sme_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>_plus)
+ 	(@aarch64_sme_single_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>)
+ 	(*aarch64_sme_single_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>_plus)
+ 	(@aarch64_sme_single_sudot<VNx4SI_ONLY:mode><SME_ZA_BIx24:mode>)
+ 	(*aarch64_sme_single_sudot<VNx4SI_ONLY:mode><SME_ZA_BIx24:mode>_plus)
+ 	(@aarch64_sme_lane_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>)
+ 	(*aarch64_sme_lane_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>_plus)
+ 	(@aarch64_sme_<optab><VNx4SI_ONLY:mode><SVE_FULL_BHI:mode>)
+ 	(*aarch64_sme_<optab><VNx4SI_ONLY:mode><SVE_FULL_BHI:mode>_plus)
+ 	(@aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx24:mode>)
+ 	(*aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx24:mode>_plus)
+ 	(@aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx24:mode>)
+ 	(*aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx24:mode>_plus)
+ 	(@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx124:mode>)
+ 	(*aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx124:mode>)
+ 	(@aarch64_sme_<optab><VNx2DI_ONLY:mode><VNx8HI_ONLY:mode>)
+ 	(*aarch64_sme_<optab><VNx2DI_ONLY:mode><VNx8HI_ONLY:mode>_plus)
+ 	(@aarch64_sme_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx24:mode>)
+ 	(*aarch64_sme_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx24:mode>_plus)
+ 	(@aarch64_sme_single_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx24:mode>)
+ 	(*aarch64_sme_single_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx24:mode>_plus)
+ 	(@aarch64_sme_lane_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx124:mode>)
+ 	(*aarch64_sme_lane_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx124:mode>)
+ 	(@aarch64_sme_<optab><VNx4SI_ONLY:mode><VNx8HI_ONLY:mode>)
+ 	(@aarch64_sme_<optab><VNx4SI_ONLY:mode><VNx4SI_ONLY:mode>)
+ 	(@aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>)
+ 	(*aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>_plus)
+ 	(@aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>)
+ 	(*aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>_plus)
+ 	(@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>)
+ 	(*aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>_plus)
+ 	(@aarch64_sme_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>)
+ 	(*aarch64_sme_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>_plus)
+ 	(@aarch64_sme_single_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>)
+ 	(*aarch64_sme_single_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>_plus)
+ 	(@aarch64_sme_lane_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>)
+ 	(*aarch64_sme_lane_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>)
+ 	(@aarch64_sme_<optab><VNx4SI_ONLY:mode><SVE_FULL_HF:mode>)
+ 	(*aarch64_sme_<optab><VNx4SI_ONLY:mode><SVE_FULL_HF:mode>_plus)
+ 	(@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx124:mode>)
+ 	(*aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx124:mode>)
+ 	(@aarch64_sme_lut<LUTI_BITS><mode>): Likewise.
+ 	(UNSPEC_SME_LUTI): New unspec.
+ 	* config/aarch64/aarch64-sve-builtins.def (single): New mode suffix.
+ 	(c8, c16, c32, c64): New type suffixes.
+ 	(vg1x2, vg1x4, vg2, vg2x1, vg2x2, vg2x4, vg4, vg4x1, vg4x2)
+ 	(vg4x4): New group suffixes.
+ 	* config/aarch64/aarch64-sve-builtins.h (CP_READ_ZT0)
+ 	(CP_WRITE_ZT0): New constants.
+ 	(get_svbool_t): Delete.
+ 	(function_resolver::report_mismatched_num_vectors): New member
+ 	function.
+ 	(function_resolver::resolve_conversion): Likewise.
+ 	(function_resolver::infer_predicate_type): Likewise.
+ 	(function_resolver::infer_64bit_scalar_integer_pair): Likewise.
+ 	(function_resolver::require_matching_predicate_type): Likewise.
+ 	(function_resolver::require_nonscalar_type): Likewise.
+ 	(function_resolver::finish_opt_single_resolution): Likewise.
+ 	(function_resolver::require_derived_vector_type): Add an
+ 	expected_num_vectors parameter.
+ 	(function_expander::map_to_rtx_codes): Add an extra parameter
+ 	for unconditional FP unspecs.
+ 	(function_instance::gp_type_index): New member function.
+ 	(function_instance::gp_type): Likewise.
+ 	(function_instance::gp_mode): Handle multi-vector operations.
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_all_count)
+ 	(TYPES_all_pred_count, TYPES_c, TYPES_bhs_data, TYPES_bhs_widen)
+ 	(TYPES_hs_data, TYPES_cvt_h_s_float, TYPES_cvt_s_s, TYPES_qcvt_x2)
+ 	(TYPES_qcvt_x4, TYPES_qrshr_x2, TYPES_qrshru_x2, TYPES_qrshr_x4)
+ 	(TYPES_qrshru_x4, TYPES_while_x, TYPES_while_x_c, TYPES_s_narrow_fsu)
+ 	(TYPES_za_s_b_signed, TYPES_za_s_b_unsigned, TYPES_za_s_b_integer)
+ 	(TYPES_za_s_h_integer, TYPES_za_s_h_data, TYPES_za_s_unsigned)
+ 	(TYPES_za_s_float, TYPES_za_s_data, TYPES_za_d_h_integer): New type
+ 	macros.
+ 	(groups_x2, groups_x12, groups_x4, groups_x24, groups_x124)
+ 	(groups_vg1x2, groups_vg1x4, groups_vg1x24, groups_vg2, groups_vg4)
+ 	(groups_vg24): New group arrays.
+ 	(function_instance::reads_global_state_p): Handle CP_READ_ZT0.
+ 	(function_instance::modifies_global_state_p): Handle CP_WRITE_ZT0.
+ 	(add_shared_state_attribute): Handle zt0 state.
+ 	(function_builder::add_overloaded_functions): Skip MODE_single
+ 	for non-tuple groups.
+ 	(function_resolver::report_mismatched_num_vectors): New function.
+ 	(function_resolver::resolve_to): Add a fallback error message for
+ 	the general two-type case.
+ 	(function_resolver::resolve_conversion): New function.
+ 	(function_resolver::infer_predicate_type): Likewise.
+ 	(function_resolver::infer_64bit_scalar_integer_pair): Likewise.
+ 	(function_resolver::require_matching_predicate_type): Likewise.
+ 	(function_resolver::require_matching_vector_type): Specifically
+ 	diagnose mismatched vector counts.
+ 	(function_resolver::require_derived_vector_type): Add an
+ 	expected_num_vectors parameter.  Extend to handle cases where
+ 	tuples are expected.
+ 	(function_resolver::require_nonscalar_type): New function.
+ 	(function_resolver::check_gp_argument): Use gp_type_index rather
+ 	than hard-coding VECTOR_TYPE_svbool_t.
+ 	(function_resolver::finish_opt_single_resolution): New function.
+ 	(function_checker::require_immediate_either_or): Remove hard-coded
+ 	constants.
+ 	(function_expander::direct_optab_handler): New function.
+ 	(function_expander::use_pred_x_insn): Only add a strictness flag
+ 	is the insn has an operand for it.
+ 	(function_expander::map_to_rtx_codes): Take an unconditional
+ 	FP unspec as an extra parameter.  Handle tuples and MODE_single.
+ 	(function_expander::map_to_unspecs): Handle tuples and MODE_single.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h (read_zt0)
+ 	(write_zt0): New typedefs.
+ 	(full_width_access::memory_vector): Use the function's
+ 	vectors_per_tuple.
+ 	(rtx_code_function_base): Add an optional unconditional FP unspec.
+ 	(rtx_code_function::expand): Update accordingly.
+ 	(rtx_code_function_rotated::expand): Likewise.
+ 	(unspec_based_function_exact_insn::expand): Use tuple_mode instead
+ 	of vector_mode.
+ 	(unspec_based_uncond_function): New typedef.
+ 	(cond_or_uncond_unspec_function): New class.
+ 	(sme_1mode_function::expand): Handle single forms.
+ 	(sme_2mode_function_t): Likewise, adding a template parameter for them.
+ 	(sme_2mode_function): Update accordingly.
+ 	(sme_2mode_lane_function): New typedef.
+ 	(multireg_permute): New class.
+ 	(class integer_conversion): Likewise.
+ 	(while_comparison::expand): Handle svcount_t and svboolx2_t results.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h
+ 	(binary_int_opt_single_n, binary_opt_single_n, binary_single)
+ 	(binary_za_slice_lane, binary_za_slice_int_opt_single)
+ 	(binary_za_slice_opt_single, binary_za_slice_uint_opt_single)
+ 	(binaryx, clamp, compare_scalar_count, count_pred_c)
+ 	(dot_za_slice_int_lane, dot_za_slice_lane, dot_za_slice_uint_lane)
+ 	(extract_pred, inherent_zt, ldr_zt, read_za, read_za_slice)
+ 	(select_pred, shift_right_imm_narrowxn, storexn, str_zt)
+ 	(unary_convertxn, unary_za_slice, unaryxn, write_za)
+ 	(write_za_slice): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(za_group_is_pure_overload): New function.
+ 	(apply_predication): Use the function's gp_type for the predicate,
+ 	instead of hard-coding the use of svbool_t.
+ 	(parse_element_type): Add support for "c" (svcount_t).
+ 	(parse_type): Add support for "c0" and "c1" (conversion destination
+ 	and source types).
+ 	(binary_za_slice_lane_base): New class.
+ 	(binary_za_slice_opt_single_base): Likewise.
+ 	(load_contiguous_base::resolve): Pass the group suffix to r.resolve.
+ 	(luti_lane_zt_base): New class.
+ 	(binary_int_opt_single_n, binary_opt_single_n, binary_single)
+ 	(binary_za_slice_lane, binary_za_slice_int_opt_single)
+ 	(binary_za_slice_opt_single, binary_za_slice_uint_opt_single)
+ 	(binaryx, clamp): New shapes.
+ 	(compare_scalar_def::build): Allow the return type to be a tuple.
+ 	(compare_scalar_def::expand): Pass the group suffix to r.resolve.
+ 	(compare_scalar_count, count_pred_c, dot_za_slice_int_lane)
+ 	(dot_za_slice_lane, dot_za_slice_uint_lane, extract_pred, inherent_zt)
+ 	(ldr_zt, read_za, read_za_slice, select_pred, shift_right_imm_narrowxn)
+ 	(storexn, str_zt): New shapes.
+ 	(ternary_qq_lane_def, ternary_qq_opt_n_def): Replace with...
+ 	(ternary_qq_or_011_lane_def, ternary_qq_opt_n_or_011_def): ...these
+ 	new classes.  Allow a second suffix that specifies the type of the
+ 	second vector argument, and that is used to derive the third.
+ 	(unary_def::build): Extend to handle tuple types.
+ 	(unary_convert_def::build): Use the new c0 and c1 format specifiers.
+ 	(unary_convertxn, unary_za_slice, unaryxn, write_za): New shapes.
+ 	(write_za_slice): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svbic_impl::expand)
+ 	(svext_bhw_impl::expand): Update call to map_to_rtx_costs.
+ 	(svcntp_impl::expand): Handle svcount_t variants.
+ 	(svcvt_impl::expand): Handle unpredicated conversions separately,
+ 	dealing with tuples.
+ 	(svdot_impl::expand): Handle 2-way dot products.
+ 	(svdotprod_lane_impl::expand): Likewise.
+ 	(svld1_impl::fold): Punt on tuple loads.
+ 	(svld1_impl::expand): Handle tuple loads.
+ 	(svldnt1_impl::expand): Likewise.
+ 	(svpfalse_impl::fold): Punt on svcount_t forms.
+ 	(svptrue_impl::fold): Likewise.
+ 	(svptrue_impl::expand): Handle svcount_t forms.
+ 	(svrint_impl): New class.
+ 	(svsel_impl::fold): Punt on tuple forms.
+ 	(svsel_impl::expand): Handle tuple forms.
+ 	(svst1_impl::fold): Punt on tuple loads.
+ 	(svst1_impl::expand): Handle tuple loads.
+ 	(svstnt1_impl::expand): Likewise.
+ 	(svwhilelx_impl::fold): Punt on tuple forms.
+ 	(svdot_lane): Use UNSPEC_FDOT.
+ 	(svmax, svmaxnm, svmin, svminmm): Add unconditional FP unspecs.
+ 	(rinta, rinti, rintm, rintn, rintp, rintx, rintz): Use svrint_impl.
+ 	* config/aarch64/aarch64-sve-builtins-base.def (svcreate2, svget2)
+ 	(svset2, svundef2): Add _b variants.
+ 	(svcvt): Use unary_convertxn.
+ 	(svdot): Use ternary_qq_opt_n_or_011.
+ 	(svdot_lane): Use ternary_qq_or_011_lane.
+ 	(svmax, svmaxnm, svmin, svminnm): Use binary_opt_single_n.
+ 	(svpfalse): Add a form that returns svcount_t results.
+ 	(svrinta, svrintm, svrintn, svrintp): Use unaryxn.
+ 	(svsel): Use binaryxn.
+ 	(svst1, svstnt1): Use storexn.
+ 	* config/aarch64/aarch64-sve-builtins-sme.h
+ 	(svadd_za, svadd_write_za, svbmopa_za, svbmops_za, svdot_za)
+ 	(svdot_lane_za, svldr_zt, svluti2_lane_zt, svluti4_lane_zt)
+ 	(svmla_za, svmla_lane_za, svmls_za, svmls_lane_za, svread_za)
+ 	(svstr_zt, svsub_za, svsub_write_za, svsudot_za, svsudot_lane_za)
+ 	(svsuvdot_lane_za, svusdot_za, svusdot_lane_za, svusvdot_lane_za)
+ 	(svvdot_lane_za, svwrite_za, svzero_zt): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc (load_store_za_base):
+ 	Rename to...
+ 	(load_store_za_zt0_base): ...this and extend to tuples.
+ 	(load_za_base, store_za_base): Update accordingly.
+ 	(expand_ldr_str_zt0): New function.
+ 	(svldr_zt_impl, svluti_lane_zt_impl, svread_za_impl, svstr_zt_impl)
+ 	(svsudot_za_impl, svwrite_za_impl, svzero_zt_impl): New classes.
+ 	(svadd_za, svadd_write_za, svbmopa_za, svbmops_za, svdot_za)
+ 	(svdot_lane_za, svldr_zt, svluti2_lane_zt, svluti4_lane_zt)
+ 	(svmla_za, svmla_lane_za, svmls_za, svmls_lane_za, svread_za)
+ 	(svstr_zt, svsub_za, svsub_write_za, svsudot_za, svsudot_lane_za)
+ 	(svsuvdot_lane_za, svusdot_za, svusdot_lane_za, svusvdot_lane_za)
+ 	(svvdot_lane_za, svwrite_za, svzero_zt): New functions.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def: Add SME2 intrinsics.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h
+ 	(svbfmlslb, svbfmlslb_lane, svbfmlslt, svbfmlslt_lane, svclamp)
+ 	(svcvtn, svpext, svpsel, svqcvt, svqcvtn, svqrshr, svqrshrn)
+ 	(svqrshru, svqrshrun, svrevd, svunpk, svuzp, svuzpq, svzip)
+ 	(svzipq): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (svclamp_impl)
+ 	(svcvtn_impl, svpext_impl, svpsel_impl): New classes.
+ 	(svqrshl_impl::fold): Update for change to svrshl shape.
+ 	(svrshl_impl::fold): Punt on tuple forms.
+ 	(svsqadd_impl::expand): Update call to map_to_rtx_codes.
+ 	(svunpk_impl): New class.
+ 	(svbfmlslb, svbfmlslb_lane, svbfmlslt, svbfmlslt_lane, svclamp)
+ 	(svcvtn, svpext, svpsel, svqcvt, svqcvtn, svqrshr, svqrshrn)
+ 	(svqrshru, svqrshrun, svrevd, svunpk, svuzp, svuzpq, svzip)
+ 	(svzipq): New functions.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Add SME2 intrinsics.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
+ 	or undefine __ARM_FEATURE_SME2.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (ZT0_REGNUM): New constant.
+ 	(LAST_FAKE_REGNUM): Bump to include it.
+ 	* config/aarch64/aarch64.h (FIXED_REGISTERS): Add an entry for ZT0.
+ 	(CALL_REALLY_USED_REGISTERS, REGISTER_NAMES): Likewise.
+ 	(REG_CLASS_CONTENTS): Likewise.
+ 	(machine_function): Add zt0_save_buffer.
+ 	(CUMULATIVE_ARGS): Add shared_zt0_flags;
+ 	* config/aarch64/aarch64.cc (aarch64_check_state_string): Handle zt0.
+ 	(aarch64_fntype_pstate_za, aarch64_fndecl_pstate_za): Likewise.
+ 	(aarch64_function_arg): Add the shared ZT0 flags as an extra
+ 	limb of the parallel.
+ 	(aarch64_init_cumulative_args): Initialize shared_zt0_flags.
+ 	(aarch64_extra_live_on_entry): Handle ZT0_REGNUM.
+ 	(aarch64_epilogue_uses): Likewise.
+ 	(aarch64_get_zt0_save_buffer, aarch64_save_zt0): New functions.
+ 	(aarch64_restore_zt0): Likewise.
+ 	(aarch64_start_call_args): Reject calls to functions that share
+ 	ZT0 from functions that have no ZT0 state.  Save ZT0 around shared-ZA
+ 	calls that do not share ZT0.
+ 	(aarch64_expand_call): Handle ZT0.  Reject calls to functions that
+ 	share ZT0 but not ZA from functions with ZA state.
+ 	(aarch64_end_call_args): Restore ZT0 after calls to shared-ZA functions
+ 	that do not share ZT0.
+ 	(aarch64_set_current_function): Require +sme2 for functions that
+ 	have ZT0 state.
+ 	(aarch64_function_attribute_inlinable_p): Don't allow functions to
+ 	be inlined if they have local zt0 state.
+ 	(AARCH64_IPA_CLOBBERS_ZT0): New constant.
+ 	(aarch64_update_ipa_fn_target_info): Record asms that clobber ZT0.
+ 	(aarch64_can_inline_p): Don't inline callees that clobber ZT0
+ 	into functions that have ZT0 state.
+ 	(aarch64_comp_type_attributes): Check for compatible ZT0 sharing.
+ 	(aarch64_optimize_mode_switching): Use mode switching if the
+ 	function has ZT0 state.
+ 	(aarch64_mode_emit_local_sme_state): Save and restore ZT0 around
+ 	calls to private-ZA functions.
+ 	(aarch64_mode_needed_local_sme_state): Require ZA to be active
+ 	for instructions that access ZT0.
+ 	(aarch64_mode_entry): Mark ZA as dead on entry if the function
+ 	only shares state other than "za" itself.
+ 	(aarch64_mode_exit): Likewise mark ZA as dead on return.
+ 	(aarch64_md_asm_adjust): Extend handling of ZA clobbers to ZT0.
+ 	* config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros):
+ 	Define __ARM_STATE_ZT0.
+ 	* config/aarch64/aarch64-sme.md (UNSPECV_ASM_UPDATE_ZT0): New unspecv.
+ 	(aarch64_asm_update_zt0): New insn.
+ 	(UNSPEC_RESTORE_ZT0): New unspec.
+ 	(aarch64_sme_ldr_zt0, aarch64_restore_zt0): New insns.
+ 	(aarch64_sme_str_zt0): Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-modes.def (VNx32BI): New mode.
+ 	* config/aarch64/aarch64-protos.h (aarch64_split_double_move): Declare.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(register_tuple_type): Handle tuples of predicates.
+ 	(handle_arm_sve_h): Define svboolx2_t as a pair of two svbool_ts.
+ 	* config/aarch64/aarch64-sve.md (movvnx32bi): New insn.
+ 	* config/aarch64/aarch64.cc
+ 	(pure_scalable_type_info::piece::get_rtx): Use VNx32BI for pairs
+ 	of predicates.
+ 	(pure_scalable_type_info::add_piece): Don't try to form pairs of
+ 	predicates.
+ 	(VEC_STRUCT): Generalize comment.
+ 	(aarch64_classify_vector_mode): Handle VNx32BI.
+ 	(aarch64_array_mode): Likewise.  Return BLKmode for arrays of
+ 	predicates that have no associated mode, rather than allowing
+ 	an integer mode to be chosen.
+ 	(aarch64_hard_regno_nregs): Handle VNx32BI.
+ 	(aarch64_hard_regno_mode_ok): Likewise.
+ 	(aarch64_split_double_move): New function, split out from...
+ 	(aarch64_split_128bit_move): ...here.
+ 	(aarch64_ptrue_reg): Tighten assert to aarch64_sve_pred_mode_p.
+ 	(aarch64_pfalse_reg): Likewise.
+ 	(aarch64_sve_same_pred_for_ptest_p): Likewise.
+ 	(aarch64_sme_mode_switch_regs::add_reg): Handle VNx32BI.
+ 	(aarch64_expand_mov_immediate): Restrict handling of boolean vector
+ 	constants to single-predicate modes.
+ 	(aarch64_classify_address): Handle VNx32BI, ensuring that both halves
+ 	can be addressed.
+ 	(aarch64_class_max_nregs): Handle VNx32BI.
+ 	(aarch64_member_type_forces_blk): Don't for BLKmode for svboolx2_t.
+ 	(aarch64_simd_valid_immediate): Allow all-zeros and all-ones for
+ 	VNx32BI.
+ 	(aarch64_mov_operand_p): Restrict predicate constant canonicalization
+ 	to single-predicate modes.
+ 	(aarch64_evpc_ext): Generalize exclusion to all predicate modes.
+ 	(aarch64_evpc_rev_local, aarch64_evpc_dup): Likewise.
+ 	* config/aarch64/constraints.md (PR_REGS): New predicate.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svreinterpret_impl::fold): Handle reinterprets between svbool_t
+ 	and svcount_t.
+ 	(svreinterpret_impl::expand): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-base.def (svreinterpret): Add
+ 	b<->c forms.
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_reinterpret_b): New
+ 	type suffix list.
+ 	(wrap_type_in_struct, register_type_decl): New functions, split out
+ 	from...
+ 	(register_tuple_type): ...here.
+ 	(register_builtin_types): Handle svcount_t.
+ 	(handle_arm_sve_h): Don't create tuples of svcount_t.
+ 	* config/aarch64/aarch64-sve-builtins.def (svcount_t): New type.
+ 	(c): New type suffix.
+ 	* config/aarch64/aarch64-sve-builtins.h (TYPE_count): New type class.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/invoke.texi: Document +sme2.
+ 	* doc/sourcebuild.texi: Document aarch64_sme2.
+ 	* config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
+ 	Add sme2.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_SME2, TARGET_SME2): New macros.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall):
+ 	Enforce PSTATE.SM and PSTATE.ZA restrictions.
+ 	(aarch64_expand_epilogue): Save and restore the arguments
+ 	to a sibcall around any change to PSTATE.SM.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc: Include symbol-summary.h, ipa-prop.h,
+ 	and ipa-fnsummary.h
+ 	(aarch64_function_attribute_inlinable_p): New function.
+ 	(AARCH64_IPA_SM_FIXED, AARCH64_IPA_CLOBBERS_ZA): New constants.
+ 	(aarch64_need_ipa_fn_target_info): New function.
+ 	(aarch64_update_ipa_fn_target_info): Likewise.
+ 	(aarch64_can_inline_p): Restrict the previous ISA flag checks
+ 	to non-modal features.  Prevent callees that require a particular
+ 	PSTATE.SM state from being inlined into callers that can't guarantee
+ 	that state.  Also prevent callees that have ZA state from being
+ 	inlined into callers that don't.  Finally, prevent callees that
+ 	clobber ZA from being inlined into callers that have ZA state.
+ 	(TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define.
+ 	(TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
+ 	(TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc: Include except.h
+ 	(aarch64_sme_mode_switch_regs::add_call_preserved_reg): New function.
+ 	(aarch64_sme_mode_switch_regs::add_call_preserved_regs): Likewise.
+ 	(aarch64_need_old_pstate_sm): Return true if the function has
+ 	a nonlocal-goto or exception receiver.
+ 	(aarch64_switch_pstate_sm_for_landing_pad): New function.
+ 	(aarch64_switch_pstate_sm_for_jump): Likewise.
+ 	(pass_switch_pstate_sm::gate): Enable the pass for all
+ 	streaming and streaming-compatible functions.
+ 	(pass_switch_pstate_sm::execute): Handle non-local gotos and their
+ 	receivers.  Handle exception handler entry points.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_arm_attribute_table): Add
+ 	arm::locally_streaming.
+ 	(aarch64_fndecl_is_locally_streaming): New function.
+ 	(aarch64_fndecl_sm_state): Handle locally-streaming functions.
+ 	(aarch64_cfun_enables_pstate_sm): New function.
+ 	(aarch64_add_offset): Add an argument that specifies whether
+ 	the streaming vector length should be used instead of the
+ 	prevailing one.
+ 	(aarch64_split_add_offset, aarch64_add_sp, aarch64_sub_sp): Likewise.
+ 	(aarch64_allocate_and_probe_stack_space): Likewise.
+ 	(aarch64_expand_mov_immediate): Update calls accordingly.
+ 	(aarch64_need_old_pstate_sm): Return true for locally-streaming
+ 	streaming-compatible functions.
+ 	(aarch64_layout_frame): Force all call-preserved Z and P registers
+ 	to be saved and restored if the function switches PSTATE.SM in the
+ 	prologue.
+ 	(aarch64_get_separate_components): Disable shrink-wrapping of
+ 	such Z and P saves and restores.
+ 	(aarch64_use_late_prologue_epilogue): New function.
+ 	(aarch64_expand_prologue): Measure SVE lengths in the streaming
+ 	vector length for locally-streaming functions, then emit code
+ 	to enable streaming mode.
+ 	(aarch64_expand_epilogue): Likewise in reverse.
+ 	(TARGET_USE_LATE_PROLOGUE_EPILOGUE): Define.
+ 	* config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros):
+ 	Define __arm_locally_streaming.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/invoke.texi: Document +sme-i16i64 and +sme-f64f64.
+ 	* config.gcc (aarch64*-*-*): Add arm_sme.h to the list of headers
+ 	to install and aarch64-sve-builtins-sme.o to the list of objects
+ 	to build.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
+ 	or undefine TARGET_SME, TARGET_SME_I16I64 and TARGET_SME_F64F64.
+ 	(aarch64_pragma_aarch64): Handle arm_sme.h.
+ 	* config/aarch64/aarch64-option-extensions.def (sme-i16i64)
+ 	(sme-f64f64): New extensions.
+ 	* config/aarch64/aarch64-protos.h (aarch64_sme_vq_immediate)
+ 	(aarch64_addsvl_addspl_immediate_p, aarch64_output_addsvl_addspl)
+ 	(aarch64_output_sme_zero_za): Declare.
+ 	(aarch64_output_move_struct): Delete.
+ 	(aarch64_sme_ldr_vnum_offset): Declare.
+ 	(aarch64_sve::handle_arm_sme_h): Likewise.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_SM_ON): New macro.
+ 	(AARCH64_ISA_SME_I16I64, AARCH64_ISA_SME_F64F64): Likewise.
+ 	(TARGET_STREAMING, TARGET_STREAMING_SME): Likewise.
+ 	(TARGET_SME_I16I64, TARGET_SME_F64F64): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_rdvl_factor_p): Rename to...
+ 	(aarch64_sve_rdvl_addvl_factor_p): ...this.
+ 	(aarch64_sve_rdvl_immediate_p): Update accordingly.
+ 	(aarch64_rdsvl_immediate_p, aarch64_add_offset): Likewise.
+ 	(aarch64_sme_vq_immediate): Likewise.  Make public.
+ 	(aarch64_sve_addpl_factor_p): New function.
+ 	(aarch64_sve_addvl_addpl_immediate_p): Use
+ 	aarch64_sve_rdvl_addvl_factor_p and aarch64_sve_addpl_factor_p.
+ 	(aarch64_addsvl_addspl_immediate_p): New function.
+ 	(aarch64_output_addsvl_addspl): Likewise.
+ 	(aarch64_cannot_force_const_mem): Return true for RDSVL immediates.
+ 	(aarch64_classify_index): Handle .Q scaling for VNx1TImode.
+ 	(aarch64_classify_address): Likewise for vnum offsets.
+ 	(aarch64_output_sme_zero_za): New function.
+ 	(aarch64_sme_ldr_vnum_offset_p): Likewise.
+ 	* config/aarch64/predicates.md (aarch64_addsvl_addspl_immediate):
+ 	New predicate.
+ 	(aarch64_pluslong_operand): Include it for SME.
+ 	* config/aarch64/constraints.md (Ucj, Uav): New constraints.
+ 	* config/aarch64/iterators.md (VNx1TI_ONLY): New mode iterator.
+ 	(SME_ZA_I, SME_ZA_SDI, SME_ZA_SDF_I, SME_MOP_BHI): Likewise.
+ 	(SME_MOP_HSDF): Likewise.
+ 	(UNSPEC_SME_ADDHA, UNSPEC_SME_ADDVA, UNSPEC_SME_FMOPA)
+ 	(UNSPEC_SME_FMOPS, UNSPEC_SME_LD1_HOR, UNSPEC_SME_LD1_VER)
+ 	(UNSPEC_SME_READ_HOR, UNSPEC_SME_READ_VER, UNSPEC_SME_SMOPA)
+ 	(UNSPEC_SME_SMOPS, UNSPEC_SME_ST1_HOR, UNSPEC_SME_ST1_VER)
+ 	(UNSPEC_SME_SUMOPA, UNSPEC_SME_SUMOPS, UNSPEC_SME_UMOPA)
+ 	(UNSPEC_SME_UMOPS, UNSPEC_SME_USMOPA, UNSPEC_SME_USMOPS)
+ 	(UNSPEC_SME_WRITE_HOR, UNSPEC_SME_WRITE_VER): New unspecs.
+ 	(elem_bits): Handle x2 and x4 structure modes, plus VNx1TI.
+ 	(Vetype, Vesize, VPRED): Handle VNx1TI.
+ 	(b): New mode attribute.
+ 	(SME_LD1, SME_READ, SME_ST1, SME_WRITE, SME_BINARY_SDI, SME_INT_MOP)
+ 	(SME_FP_MOP): New int iterators.
+ 	(optab): Handle SME unspecs.
+ 	(hv): New int attribute.
+ 	* config/aarch64/aarch64.md (*add<mode>3_aarch64): Handle ADDSVL
+ 	and ADDSPL.
+ 	* config/aarch64/aarch64-sme.md (UNSPEC_SME_LDR): New unspec.
+ 	(@aarch64_sme_<optab><mode>, @aarch64_sme_<optab><mode>_plus)
+ 	(aarch64_sme_ldr0, @aarch64_sme_ldrn<mode>): New patterns.
+ 	(UNSPEC_SME_STR): New unspec.
+ 	(@aarch64_sme_<optab><mode>, @aarch64_sme_<optab><mode>_plus)
+ 	(aarch64_sme_str0, @aarch64_sme_strn<mode>): New patterns.
+ 	(@aarch64_sme_<optab><v_int_container><mode>): Likewise.
+ 	(*aarch64_sme_<optab><v_int_container><mode>_plus): Likewise.
+ 	(@aarch64_sme_<optab><VNx1TI_ONLY:mode><SVE_FULL:mode>): Likewise.
+ 	(@aarch64_sme_<optab><v_int_container><mode>): Likewise.
+ 	(*aarch64_sme_<optab><v_int_container><mode>_plus): Likewise.
+ 	(@aarch64_sme_<optab><VNx1TI_ONLY:mode><SVE_FULL:mode>): Likewise.
+ 	(UNSPEC_SME_ZERO): New unspec.
+ 	(aarch64_sme_zero): New pattern.
+ 	(@aarch64_sme_<SME_BINARY_SDI:optab><mode>): Likewise.
+ 	(@aarch64_sme_<SME_INT_MOP:optab><mode>): Likewise.
+ 	(@aarch64_sme_<SME_FP_MOP:optab><mode>): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.def: Add ZA type suffixes.
+ 	Include aarch64-sve-builtins-sme.def.
+ 	(DEF_SME_ZA_FUNCTION): New macro.
+ 	* config/aarch64/aarch64-sve-builtins.h (CP_READ_ZA): New call
+ 	property.
+ 	(CP_WRITE_ZA): Likewise.
+ 	(PRED_za_m): New predication type.
+ 	(type_suffix_index): Handle DEF_SME_ZA_SUFFIX.
+ 	(type_suffix_info): Add vector_p and za_p fields.
+ 	(function_instance::num_za_tiles): New member function.
+ 	(function_builder::get_attributes): Add an aarch64_feature_flags
+ 	argument.
+ 	(function_expander::get_contiguous_base): Take a base argument
+ 	number, a vnum argument number, and an argument that indicates
+ 	whether the vnum parameter is a factor of the SME vector length
+ 	or the prevailing vector length.
+ 	(function_expander::add_integer_operand): Take a poly_int64.
+ 	(sve_switcher::sve_switcher): Take a base set of flags.
+ 	(sme_switcher): New class.
+ 	(scalar_types): Add a null entry for NUM_VECTOR_TYPES.
+ 	* config/aarch64/aarch64-sve-builtins.cc: Include
+ 	aarch64-sve-builtins-sme.h.
+ 	(pred_suffixes): Add an entry for PRED_za_m.
+ 	(type_suffixes): Initialize vector_p and za_p.  Handle ZA suffixes.
+ 	(TYPES_all_za, TYPES_d_za, TYPES_za_bhsd_data, TYPES_za_all_data)
+ 	(TYPES_za_s_integer, TYPES_za_d_integer, TYPES_mop_base)
+ 	(TYPES_mop_base_signed, TYPES_mop_base_unsigned, TYPES_mop_i16i64)
+ 	(TYPES_mop_i16i64_signed, TYPES_mop_i16i64_unsigned, TYPES_za): New
+ 	type suffix macros.
+ 	(preds_m, preds_za_m): New predication lists.
+ 	(function_groups): Handle DEF_SME_ZA_FUNCTION.
+ 	(scalar_types): Add an entry for NUM_VECTOR_TYPES.
+ 	(find_type_suffix_for_scalar_type): Check positively for vectors
+ 	rather than negatively for predicates.
+ 	(check_required_extensions): Handle PSTATE.SM and PSTATE.ZA
+ 	requirements.
+ 	(report_out_of_range): Handle the case where the minimum and
+ 	maximum are the same.
+ 	(function_instance::reads_global_state_p): Return true for functions
+ 	that read ZA.
+ 	(function_instance::modifies_global_state_p): Return true for functions
+ 	that write to ZA.
+ 	(sve_switcher::sve_switcher): Add a base flags argument.
+ 	(function_builder::get_name): Handle "__arm_" prefixes.
+ 	(add_attribute): Add an overload that takes a namespaces.
+ 	(add_shared_state_attribute): New function.
+ 	(function_builder::get_attributes): Take the required feature flags
+ 	as argument.  Add streaming and ZA attributes where appropriate.
+ 	(function_builder::add_unique_function): Update calls accordingly.
+ 	(function_resolver::check_gp_argument): Assert that the predication
+ 	isn't ZA _m predication.
+ 	(function_checker::function_checker): Don't bias the argument
+ 	number for ZA _m predication.
+ 	(function_expander::get_contiguous_base): Add arguments that
+ 	specify the base argument number, the vnum argument number,
+ 	and an argument that indicates whether the vnum parameter is
+ 	a factor of the SME vector length or the prevailing vector length.
+ 	Handle the SME case.
+ 	(function_expander::add_input_operand): Handle pmode_register_operand.
+ 	(function_expander::add_integer_operand): Take a poly_int64.
+ 	(init_builtins): Call handle_arm_sme_h for LTO.
+ 	(handle_arm_sve_h): Skip SME intrinsics.
+ 	(handle_arm_sme_h): New function.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(read_write_za, write_za): New classes.
+ 	(unspec_based_sme_function, za_arith_function): New using aliases.
+ 	(quiet_za_arith_function): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h
+ 	(binary_za_int_m, binary_za_m, binary_za_uint_m, bool_inherent)
+ 	(inherent_za, inherent_mask_za, ldr_za, load_za, read_za_m, store_za)
+ 	(str_za, unary_za_m, write_za_m): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
+ 	Expect za_m functions to have an existing governing predicate.
+ 	(binary_za_m_base, binary_za_int_m_def, binary_za_m_def): New classes.
+ 	(binary_za_uint_m_def, bool_inherent_def, inherent_za_def): Likewise.
+ 	(inherent_mask_za_def, ldr_za_def, load_za_def, read_za_m_def)
+ 	(store_za_def, str_za_def, unary_za_m_def, write_za_m_def): Likewise.
+ 	* config/aarch64/arm_sme.h: New file.
+ 	* config/aarch64/aarch64-sve-builtins-sme.h: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def: Likewise.
+ 	* config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on
+ 	aarch64-sve-builtins-sme.def and aarch64-sve-builtins-sme.h.
+ 	(aarch64-sve-builtins-sme.o): New rule.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_shape::has_merge_argument_p): New member function.
+ 	* config/aarch64/aarch64-sve-builtins.cc:
+ 	(function_resolver::check_gp_argument): Use it.
+ 	(function_expander::get_fallback_value): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(apply_predication): Likewise.
+ 	(unary_convert_narrowt_def::has_merge_argument_p): New function.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(unspec_based_function_base): Allow type suffix 1 to determine
+ 	the mode of the operation.
+ 	(unspec_based_function): Update accordingly.
+ 	(unspec_based_fused_function): Likewise.
+ 	(unspec_based_fused_lane_function): Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-modes.def: Add VNx1TI.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (W12_W15_REGNUM_P): New macro.
+ 	(W12_W15_REGS): New register class.
+ 	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
+ 	* config/aarch64/aarch64.cc (aarch64_regno_regclass)
+ 	(aarch64_class_max_nregs, aarch64_register_move_cost): Handle
+ 	W12_W15_REGS.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-isa-modes.def (ZA_ON): New ISA mode.
+ 	* config/aarch64/aarch64-protos.h (aarch64_rdsvl_immediate_p)
+ 	(aarch64_output_rdsvl, aarch64_optimize_mode_switching)
+ 	(aarch64_restore_za): Declare.
+ 	* config/aarch64/constraints.md (UsR): New constraint.
+ 	* config/aarch64/aarch64.md (LOWERING_REGNUM, TPIDR_BLOCK_REGNUM)
+ 	(SME_STATE_REGNUM, TPIDR2_SETUP_REGNUM, ZA_FREE_REGNUM)
+ 	(ZA_SAVED_REGNUM, ZA_REGNUM, FIRST_FAKE_REGNUM): New constants.
+ 	(LAST_FAKE_REGNUM): Likewise.
+ 	(UNSPEC_SAVE_NZCV, UNSPEC_RESTORE_NZCV, UNSPEC_SME_VQ): New unspecs.
+ 	(arches): Add sme.
+ 	(arch_enabled): Handle it.
+ 	(*cb<optab><mode>1): Rename to...
+ 	(aarch64_cb<optab><mode>1): ...this.
+ 	(*movsi_aarch64): Add an alternative for RDSVL.
+ 	(*movdi_aarch64): Likewise.
+ 	(aarch64_save_nzcv, aarch64_restore_nzcv): New insns.
+ 	* config/aarch64/aarch64-sme.md (UNSPEC_SMSTOP_ZA)
+ 	(UNSPEC_INITIAL_ZERO_ZA, UNSPEC_TPIDR2_SAVE, UNSPEC_TPIDR2_RESTORE)
+ 	(UNSPEC_READ_TPIDR2, UNSPEC_WRITE_TPIDR2, UNSPEC_SETUP_LOCAL_TPIDR2)
+ 	(UNSPEC_RESTORE_ZA, UNSPEC_START_PRIVATE_ZA_CALL): New unspecs.
+ 	(UNSPEC_END_PRIVATE_ZA_CALL, UNSPEC_COMMIT_LAZY_SAVE): Likewise.
+ 	(UNSPECV_ASM_UPDATE_ZA): New unspecv.
+ 	(aarch64_tpidr2_save, aarch64_smstart_za, aarch64_smstop_za)
+ 	(aarch64_initial_zero_za, aarch64_setup_local_tpidr2)
+ 	(aarch64_clear_tpidr2, aarch64_write_tpidr2, aarch64_read_tpidr2)
+ 	(aarch64_tpidr2_restore, aarch64_restore_za, aarch64_asm_update_za)
+ 	(aarch64_start_private_za_call, aarch64_end_private_za_call)
+ 	(aarch64_commit_lazy_save): New patterns.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_ZA_ON, TARGET_ZA): New macros.
+ 	(FIXED_REGISTERS, REGISTER_NAMES): Add the new fake ZA registers.
+ 	(CALL_USED_REGISTERS): Replace with...
+ 	(CALL_REALLY_USED_REGISTERS): ...this and add the fake ZA registers.
+ 	(FIRST_PSEUDO_REGISTER): Bump to include the fake ZA registers.
+ 	(FAKE_REGS): New register class.
+ 	(REG_CLASS_NAMES): Update accordingly.
+ 	(REG_CLASS_CONTENTS): Likewise.
+ 	(machine_function::tpidr2_block): New member variable.
+ 	(machine_function::tpidr2_block_ptr): Likewise.
+ 	(machine_function::za_save_buffer): Likewise.
+ 	(machine_function::next_asm_update_za_id): Likewise.
+ 	(CUMULATIVE_ARGS::shared_za_flags): Likewise.
+ 	(aarch64_mode_entity, aarch64_local_sme_state): New enums.
+ 	(aarch64_tristate_mode): Likewise.
+ 	(OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING): Define.
+ 	* config/aarch64/aarch64.cc (AARCH64_STATE_SHARED, AARCH64_STATE_IN)
+ 	(AARCH64_STATE_OUT): New constants.
+ 	(aarch64_attribute_shared_state_flags): New function.
+ 	(aarch64_lookup_shared_state_flags, aarch64_fndecl_has_new_state)
+ 	(aarch64_check_state_string, cmp_string_csts): Likewise.
+ 	(aarch64_merge_string_arguments, aarch64_check_arm_new_against_type)
+ 	(handle_arm_new, handle_arm_shared): Likewise.
+ 	(handle_arm_new_za_attribute): New
+ 	(aarch64_arm_attribute_table): Add new, preserves, in, out, and inout.
+ 	(aarch64_hard_regno_nregs): Handle FAKE_REGS.
+ 	(aarch64_hard_regno_mode_ok): Likewise.
+ 	(aarch64_fntype_shared_flags, aarch64_fntype_pstate_za): New functions.
+ 	(aarch64_fntype_isa_mode): Include aarch64_fntype_pstate_za.
+ 	(aarch64_fndecl_has_state, aarch64_fndecl_pstate_za): New functions.
+ 	(aarch64_fndecl_isa_mode): Include aarch64_fndecl_pstate_za.
+ 	(aarch64_cfun_incoming_pstate_za, aarch64_cfun_shared_flags)
+ 	(aarch64_cfun_has_new_state, aarch64_cfun_has_state): New functions.
+ 	(aarch64_sme_vq_immediate, aarch64_sme_vq_unspec_p): Likewise.
+ 	(aarch64_rdsvl_immediate_p, aarch64_output_rdsvl): Likewise.
+ 	(aarch64_expand_mov_immediate): Handle RDSVL immediates.
+ 	(aarch64_function_arg): Add the ZA sharing flags as a third limb
+ 	of the PARALLEL.
+ 	(aarch64_init_cumulative_args): Record the ZA sharing flags.
+ 	(aarch64_extra_live_on_entry): New function.  Handle the new
+ 	ZA-related fake registers.
+ 	(aarch64_epilogue_uses): Handle the new ZA-related fake registers.
+ 	(aarch64_cannot_force_const_mem): Handle UNSPEC_SME_VQ constants.
+ 	(aarch64_get_tpidr2_block, aarch64_get_tpidr2_ptr): New functions.
+ 	(aarch64_init_tpidr2_block, aarch64_restore_za): Likewise.
+ 	(aarch64_layout_frame): Check whether the current function creates
+ 	new ZA state.  Record that it clobbers LR if so.
+ 	(aarch64_expand_prologue): Handle functions that create new ZA state.
+ 	(aarch64_expand_epilogue): Likewise.
+ 	(aarch64_create_tpidr2_block): New function.
+ 	(aarch64_restore_za): Likewise.
+ 	(aarch64_start_call_args): Disallow calls to shared-ZA functions
+ 	from functions that have no ZA state.  Emit a marker instruction
+ 	before calls to private-ZA functions from functions that have
+ 	SME state.
+ 	(aarch64_expand_call): Add return registers for state that is
+ 	managed via attributes.  Record the use and clobber information
+ 	for the ZA registers.
+ 	(aarch64_end_call_args): New function.
+ 	(aarch64_regno_regclass): Handle FAKE_REGS.
+ 	(aarch64_class_max_nregs): Likewise.
+ 	(aarch64_override_options_internal): Require TARGET_SME for
+ 	functions that have ZA state.
+ 	(aarch64_conditional_register_usage): Handle FAKE_REGS.
+ 	(aarch64_mov_operand_p): Handle RDSVL immediates.
+ 	(aarch64_comp_type_attributes): Check that the ZA sharing flags
+ 	are equal.
+ 	(aarch64_merge_decl_attributes): New function.
+ 	(aarch64_optimize_mode_switching, aarch64_mode_emit_za_save_buffer)
+ 	(aarch64_mode_emit_local_sme_state, aarch64_mode_emit):  Likewise.
+ 	(aarch64_insn_references_sme_state_p): Likewise.
+ 	(aarch64_mode_needed_local_sme_state): Likewise.
+ 	(aarch64_mode_needed_za_save_buffer, aarch64_mode_needed): Likewise.
+ 	(aarch64_mode_after_local_sme_state, aarch64_mode_after): Likewise.
+ 	(aarch64_local_sme_confluence, aarch64_mode_confluence): Likewise.
+ 	(aarch64_one_shot_backprop, aarch64_local_sme_backprop): Likewise.
+ 	(aarch64_mode_backprop, aarch64_mode_entry): Likewise.
+ 	(aarch64_mode_exit, aarch64_mode_eh_handler): Likewise.
+ 	(aarch64_mode_priority, aarch64_md_asm_adjust): Likewise.
+ 	(TARGET_END_CALL_ARGS, TARGET_MERGE_DECL_ATTRIBUTES): Define.
+ 	(TARGET_MODE_EMIT, TARGET_MODE_NEEDED, TARGET_MODE_AFTER): Likewise.
+ 	(TARGET_MODE_CONFLUENCE, TARGET_MODE_BACKPROP): Likewise.
+ 	(TARGET_MODE_ENTRY, TARGET_MODE_EXIT): Likewise.
+ 	(TARGET_MODE_EH_HANDLER, TARGET_MODE_PRIORITY): Likewise.
+ 	(TARGET_EXTRA_LIVE_ON_ENTRY): Likewise.
+ 	(TARGET_MD_ASM_ADJUST): Use aarch64_md_asm_adjust.
+ 	* config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros):
+ 	Define __arm_new, __arm_preserves,__arm_in, __arm_out, and __arm_inout.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-passes.def
+ 	(pass_late_thread_prologue_and_epilogue): New pass.
+ 	* config/aarch64/aarch64-sme.md: New file.
+ 	* config/aarch64/aarch64.md: Include it.
+ 	(*tb<optab><mode>1): Rename to...
+ 	(@aarch64_tb<optab><mode>): ...this.
+ 	(call, call_value, sibcall, sibcall_value): Don't require operand 2
+ 	to be a CONST_INT.
+ 	* config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Return
+ 	the insn.
+ 	(make_pass_switch_sm_state): Declare.
+ 	* config/aarch64/aarch64.h (TARGET_STREAMING_COMPATIBLE): New macro.
+ 	(CALL_USED_REGISTER): Mark VG as call-preserved.
+ 	(aarch64_frame::old_svcr_offset): New member variable.
+ 	(machine_function::call_switches_sm_state): Likewise.
+ 	(CUMULATIVE_ARGS::num_sme_mode_switch_args): Likewise.
+ 	(CUMULATIVE_ARGS::sme_mode_switch_args): Likewise.
+ 	* config/aarch64/aarch64.cc: Include tree-pass.h and cfgbuild.h.
+ 	(aarch64_cfun_incoming_pstate_sm): New function.
+ 	(aarch64_call_switches_pstate_sm): Likewise.
+ 	(aarch64_reg_save_mode): Return DImode for VG_REGNUM.
+ 	(aarch64_callee_isa_mode): New function.
+ 	(aarch64_insn_callee_isa_mode): Likewise.
+ 	(aarch64_guard_switch_pstate_sm): Likewise.
+ 	(aarch64_switch_pstate_sm): Likewise.
+ 	(aarch64_sme_mode_switch_regs): New class.
+ 	(aarch64_record_sme_mode_switch_args): New function.
+ 	(aarch64_finish_sme_mode_switch_args): Likewise.
+ 	(aarch64_function_arg): Handle the end marker by returning a
+ 	PARALLEL that contains the ABI cookie that we used previously
+ 	alongside the result of aarch64_finish_sme_mode_switch_args.
+ 	(aarch64_init_cumulative_args): Initialize num_sme_mode_switch_args.
+ 	(aarch64_function_arg_advance): If a call would switch SM state,
+ 	record all argument registers that would need to be saved around
+ 	the mode switch.
+ 	(aarch64_need_old_pstate_sm): New function.
+ 	(aarch64_layout_frame): Decide whether the frame needs to store the
+ 	incoming value of PSTATE.SM and allocate a save slot for it if so.
+ 	If a function switches SME state, arrange to save the old value
+ 	of the DWARF VG register.  Handle the case where this is the only
+ 	register save slot above the FP.
+ 	(aarch64_save_callee_saves): Handles saves of the DWARF VG register.
+ 	(aarch64_get_separate_components): Prevent such saves from being
+ 	shrink-wrapped.
+ 	(aarch64_old_svcr_mem): New function.
+ 	(aarch64_read_old_svcr): Likewise.
+ 	(aarch64_guard_switch_pstate_sm): Likewise.
+ 	(aarch64_expand_prologue): Handle saves of the DWARF VG register.
+ 	Initialize any SVCR save slot.
+ 	(aarch64_expand_call): Allow the cookie to be PARALLEL that contains
+ 	both the UNSPEC_CALLEE_ABI value and a list of registers that need
+ 	to be preserved across a change to PSTATE.SM.  If the call does
+ 	involve such a change to PSTATE.SM, record the registers that
+ 	would be clobbered by this process.  Also emit an instruction
+ 	to mark the temporary change in VG.  Update call_switches_pstate_sm.
+ 	(aarch64_emit_call_insn): Return the emitted instruction.
+ 	(aarch64_frame_pointer_required): New function.
+ 	(aarch64_conditional_register_usage): Prevent VG_REGNUM from being
+ 	treated as a register operand.
+ 	(aarch64_switch_pstate_sm_for_call): New function.
+ 	(pass_data_switch_pstate_sm): New pass variable.
+ 	(pass_switch_pstate_sm): New pass class.
+ 	(make_pass_switch_pstate_sm): New function.
+ 	(TARGET_FRAME_POINTER_REQUIRED): Define.
+ 	* config/aarch64/t-aarch64 (s-check-sve-md): Add aarch64-sme.md.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (TARGET_NON_STREAMING): New macro.
+ 	(TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Use it.
+ 	(TARGET_SVE2_SHA3, TARGET_SVE2_SM4): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-base.def: Separate out
+ 	the functions that require PSTATE.SM to be 0 and guard them
+ 	with AARCH64_FL_SM_OFF.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.cc (check_required_extensions):
+ 	Enforce AARCH64_FL_SM_OFF requirements.
+ 	* config/aarch64/aarch64-sve.md (aarch64_wrffr): Require
+ 	TARGET_NON_STREAMING
+ 	(aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest): Likewise.
+ 	(*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc)
+ 	(@aarch64_ld<fn>f1<mode>): Likewise.
+ 	(@aarch64_ld<fn>f1_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>)
+ 	(gather_load<mode><v_int_container>): Likewise
+ 	(mask_gather_load<mode><v_int_container>): Likewise.
+ 	(mask_gather_load<mode><v_int_container>): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>)
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked)
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_sxtw): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather<mode>, @aarch64_ldff1_gather<mode>): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
+ 	<VNx4_NARROW:mode>): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_uxtw): Likewise.
+ 	(@aarch64_sve_gather_prefetch<SVE_FULL_I:mode><VNx4SI_ONLY:mode>)
+ 	(@aarch64_sve_gather_prefetch<SVE_FULL_I:mode><VNx2DI_ONLY:mode>)
+ 	(*aarch64_sve_gather_prefetch<SVE_FULL_I:mode><VNx2DI_ONLY:mode>_sxtw)
+ 	(*aarch64_sve_gather_prefetch<SVE_FULL_I:mode><VNx2DI_ONLY:mode>_uxtw)
+ 	(scatter_store<mode><v_int_container>): Likewise.
+ 	(mask_scatter_store<mode><v_int_container>): Likewise.
+ 	(*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked)
+ 	(*mask_scatter_store<mode><v_int_container>_sxtw): Likewise.
+ 	(*mask_scatter_store<mode><v_int_container>_uxtw): Likewise.
+ 	(@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
+ 	(@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
+ 	(*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
+ 	(*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw)
+ 	(@aarch64_sve_ld1ro<mode>, @aarch64_adr<mode>): Likewise.
+ 	(*aarch64_adr_sxtw, *aarch64_adr_uxtw_unspec): Likewise.
+ 	(*aarch64_adr_uxtw_and, @aarch64_adr<mode>_shift): Likewise.
+ 	(*aarch64_adr<mode>_shift, *aarch64_adr_shift_sxtw): Likewise.
+ 	(*aarch64_adr_shift_uxtw, @aarch64_sve_add_<optab><vsi2qi>): Likewise.
+ 	(@aarch64_sve_<sve_fp_op><mode>, fold_left_plus_<mode>): Likewise.
+ 	(mask_fold_left_plus_<mode>, @aarch64_sve_compact<mode>): Likewise.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>)
+ 	(@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
+ 	<SVE_PARTIAL_I:mode>): Likewise.
+ 	(@aarch64_sve2_histcnt<mode>, @aarch64_sve2_histseg<mode>): Likewise.
+ 	(@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise.
+ 	(*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise.
+ 	(*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise.
+ 	* config/aarch64/iterators.md (SVE_FP_UNARY_INT): Make FEXPA
+ 	depend on TARGET_NON_STREAMING.
+ 	(SVE_BFLOAT_TERNARY_LONG): Likewise BFMMLA.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (TARGET_BASE_SIMD): New macro.
+ 	(TARGET_SIMD): Require PSTATE.SM to be 0.
+ 	(AARCH64_ISA_SM_OFF): New macro.
+ 	* config/aarch64/aarch64.cc (aarch64_array_mode_supported_p):
+ 	Allow Advanced SIMD structure modes for TARGET_BASE_SIMD.
+ 	(aarch64_print_operand): Support '%Z'.
+ 	(aarch64_secondary_reload): Expect SVE moves to be used for
+ 	Advanced SIMD modes if SVE is enabled and non-streaming
+ 	Advanced SIMD isn't.
+ 	(aarch64_register_move_cost): Likewise.
+ 	(aarch64_simd_container_mode): Extend Advanced SIMD mode
+ 	handling to TARGET_BASE_SIMD.
+ 	(aarch64_expand_cpymem): Expand commentary.
+ 	* config/aarch64/aarch64.md (arches): Add base_simd and nobase_simd.
+ 	(arch_enabled): Handle it.
+ 	(*mov<mode>_aarch64): Extend UMOV alternative to TARGET_BASE_SIMD.
+ 	(*movti_aarch64): Use an SVE move instruction if non-streaming
+ 	SIMD isn't available.
+ 	(*mov<TFD:mode>_aarch64): Likewise.
+ 	(load_pair_dw_tftf): Extend to TARGET_BASE_SIMD.
+ 	(store_pair_dw_tftf): Likewise.
+ 	(loadwb_pair<TX:mode>_<P:mode>): Likewise.
+ 	(storewb_pair<TX:mode>_<P:mode>): Likewise.
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>):
+ 	Allow UMOV in streaming mode.
+ 	(*aarch64_simd_mov<VQMOV:mode>): Use an SVE move instruction
+ 	if non-streaming SIMD isn't available.
+ 	(aarch64_store_lane0<mode>): Depend on TARGET_FLOAT rather than
+ 	TARGET_SIMD.
+ 	(aarch64_simd_mov_from_<mode>low): Likewise.  Use fmov if
+ 	Advanced SIMD is completely disabled.
+ 	(aarch64_simd_mov_from_<mode>high): Use SVE EXT instructions if
+ 	non-streaming SIMD isn't available.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/invoke.texi: Document SME.
+ 	* doc/sourcebuild.texi: Document aarch64_sve.
+ 	* config/aarch64/aarch64-option-extensions.def (sme): Define.
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_SME): New macro.
+ 	(TARGET_SME): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
+ 	Ensure that SME is present when compiling streaming code.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-isa-modes.def: New file.
+ 	* config/aarch64/aarch64.h: Include it in the feature enumerations.
+ 	(AARCH64_FL_SM_STATE, AARCH64_FL_ISA_MODES): New constants.
+ 	(AARCH64_FL_DEFAULT_ISA_MODE): Likewise.
+ 	(AARCH64_ISA_MODE): New macro.
+ 	(CUMULATIVE_ARGS): Add an isa_mode field.
+ 	* config/aarch64/aarch64-protos.h (aarch64_gen_callee_cookie): Declare.
+ 	(aarch64_tlsdesc_abi_id): Return an arm_pcs.
+ 	* config/aarch64/aarch64.cc (attr_streaming_exclusions)
+ 	(aarch64_gnu_attributes, aarch64_gnu_attribute_table)
+ 	(aarch64_arm_attributes, aarch64_arm_attribute_table): New tables.
+ 	(aarch64_attribute_table): Redefine to include the gnu and arm
+ 	attributes.
+ 	(aarch64_fntype_pstate_sm, aarch64_fntype_isa_mode): New functions.
+ 	(aarch64_fndecl_pstate_sm, aarch64_fndecl_isa_mode): Likewise.
+ 	(aarch64_gen_callee_cookie, aarch64_callee_abi): Likewise.
+ 	(aarch64_insn_callee_cookie, aarch64_insn_callee_abi): Use them.
+ 	(aarch64_function_arg, aarch64_output_mi_thunk): Likewise.
+ 	(aarch64_init_cumulative_args): Initialize the isa_mode field.
+ 	(aarch64_output_mi_thunk): Use aarch64_gen_callee_cookie to get
+ 	the ABI cookie.
+ 	(aarch64_override_options): Add the ISA mode to the feature set.
+ 	(aarch64_temporary_target::copy_from_fndecl): Likewise.
+ 	(aarch64_fndecl_options, aarch64_handle_attr_arch): Likewise.
+ 	(aarch64_set_current_function): Maintain the correct ISA mode.
+ 	(aarch64_tlsdesc_abi_id): Return an arm_pcs.
+ 	(aarch64_comp_type_attributes): Handle arm::streaming and
+ 	arm::streaming_compatible.
+ 	* config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros):
+ 	Define __arm_streaming and __arm_streaming_compatible.
+ 	* config/aarch64/aarch64.md (tlsdesc_small_<mode>): Use
+ 	aarch64_gen_callee_cookie to get the ABI cookie.
+ 	* config/aarch64/t-aarch64 (TM_H): Add all feature-related .def files.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svreinterpret_impl::fold): Punt on tuple forms.
+ 	(svreinterpret_impl::expand): Use tuple_mode instead of vector_mode.
+ 	* config/aarch64/aarch64-sve-builtins-base.def (svreinterpret):
+ 	Extend to x1234 groups.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(multi_vector_function::vectors_per_tuple): If the function has
+ 	a group suffix, get the number of vectors from there.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h (reinterpret): Declare.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (reinterpret_def)
+ 	(reinterpret): New function shape.
+ 	* config/aarch64/aarch64-sve-builtins.cc (function_groups): Handle
+ 	DEF_SVE_FUNCTION_GS.
+ 	* config/aarch64/aarch64-sve-builtins.def (DEF_SVE_FUNCTION_GS): New
+ 	macro.
+ 	(DEF_SVE_FUNCTION): Forward to DEF_SVE_FUNCTION_GS by default.
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_instance::tuple_mode): New member function.
+ 	(function_base::vectors_per_tuple): Take the function instance
+ 	as argument and get the number from the group suffix.
+ 	(function_instance::vectors_per_tuple): Update accordingly.
+ 	* config/aarch64/iterators.md (SVE_FULLx2, SVE_FULLx3, SVE_FULLx4)
+ 	(SVE_ALL_STRUCT): New mode iterators.
+ 	(SVE_STRUCT): Redefine in terms of SVE_FULL*.
+ 	* config/aarch64/aarch64-sve.md (@aarch64_sve_reinterpret<mode>)
+ 	(*aarch64_sve_reinterpret<mode>): Extend to SVE structure modes.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_resolver::require_derived_vector_type): Add a specific
+ 	error message for the case in which the caller wants a single
+ 	vector whose element type matches a previous tuyple argument.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_resolver::lookup_form): Add an overload that takes
+ 	an sve_type rather than type and group suffixes.
+ 	(function_resolver::resolve_to): Likewise.
+ 	(function_resolver::infer_vector_or_tuple_type): Return an sve_type.
+ 	(function_resolver::infer_tuple_type): Likewise.
+ 	(function_resolver::require_matching_vector_type): Take an sve_type
+ 	rather than a type_suffix_index.
+ 	(function_resolver::require_derived_vector_type): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.cc (num_vectors_to_group):
+ 	New function.
+ 	(function_resolver::lookup_form): Add an overload that takes
+ 	an sve_type rather than type and group suffixes.
+ 	(function_resolver::resolve_to): Likewise.
+ 	(function_resolver::infer_vector_or_tuple_type): Return an sve_type.
+ 	(function_resolver::infer_tuple_type): Likewise.
+ 	(function_resolver::infer_vector_type): Update accordingly.
+ 	(function_resolver::require_matching_vector_type): Take an sve_type
+ 	rather than a type_suffix_index.
+ 	(function_resolver::require_derived_vector_type): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (get_def::resolve)
+ 	(set_def::resolve, store_def::resolve, tbl_tuple_def::resolve): Update
+ 	calls accordingly.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_resolver::require_matching_vector_type): Add a parameter
+ 	that specifies the number of the earlier argument that is being
+ 	matched against.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_resolver::require_matching_vector_type): Likewise.
+ 	(require_derived_vector_type): Update calls accordingly.
+ 	(function_resolver::resolve_unary): Likewise.
+ 	(function_resolver::resolve_uniform): Likewise.
+ 	(function_resolver::resolve_uniform_opt_n): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(binary_long_lane_def::resolve): Likewise.
+ 	(clast_def::resolve, ternary_uint_def::resolve): Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_resolver::infer_sve_type): New member function.
+ 	(function_resolver::report_incorrect_num_vectors): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_resolver::infer_sve_type): New function,.
+ 	(function_resolver::report_incorrect_num_vectors): New function,
+ 	split out from...
+ 	(function_resolver::infer_vector_or_tuple_type): ...here.  Use
+ 	infer_sve_type.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h (sve_type): New struct.
+ 	(sve_type::operator==): New function.
+ 	(function_resolver::get_vector_type): Delete.
+ 	(function_resolver::report_no_such_form): Take an sve_type rather
+ 	than a type_suffix_index.
+ 	* config/aarch64/aarch64-sve-builtins.cc (get_vector_type): New
+ 	function.
+ 	(function_resolver::get_vector_type): Delete.
+ 	(function_resolver::report_no_such_form): Take an sve_type rather
+ 	than a type_suffix_index.
+ 	(find_sve_type): New function, split out from...
+ 	(function_resolver::infer_vector_or_tuple_type): ...here.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Take
+ 	a group suffix index parameter.
+ 	(build_32_64, build_all): Update accordingly.  Iterate over all
+ 	group suffixes.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (svqrshl_impl::fold)
+ 	(svqshl_impl::fold, svrshl_impl::fold): Update function_instance
+ 	constructors.
+ 	* config/aarch64/aarch64-sve-builtins.cc (group_suffixes): New array.
+ 	(groups_none): New constant.
+ 	(function_groups): Initialize the groups field.
+ 	(function_instance::hash): Hash the group index.
+ 	(function_builder::get_name): Add the group suffix.
+ 	(function_builder::add_overloaded_functions): Iterate over all
+ 	group suffixes.
+ 	(function_resolver::lookup_form): Take a group suffix parameter.
+ 	(function_resolver::resolve_to): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.def (DEF_SVE_GROUP_SUFFIX): New
+ 	macro.
+ 	(x2, x3, x4): New group suffixes.
+ 	* config/aarch64/aarch64-sve-builtins.h (group_suffix_index): New enum.
+ 	(group_suffix_info): New structure.
+ 	(function_group_info::groups): New member variable.
+ 	(function_instance::group_suffix_id): Likewise.
+ 	(group_suffixes): New array.
+ 	(function_instance::operator==): Compare the group suffixes.
+ 	(function_instance::group_suffix): New function.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc (function_groups): Remove
+ 	implied requirement on SVE.
+ 	* config/aarch64/aarch64-sve-builtins-base.def: Explicitly require SVE.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_sve_rdvl_immediate_p)
+ 	(aarch64_output_sve_rdvl): Declare.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_cnt_factor_p): New
+ 	function, split out from...
+ 	(aarch64_sve_cnt_immediate_p): ...here.
+ 	(aarch64_sve_rdvl_factor_p): New function.
+ 	(aarch64_sve_rdvl_immediate_p): Likewise.
+ 	(aarch64_output_sve_rdvl): Likewise.
+ 	(aarch64_offset_temporaries): Rewrite the SVE handling to use RDVL
+ 	for some cases.
+ 	(aarch64_expand_mov_immediate): Handle RDVL immediates.
+ 	(aarch64_mov_operand_p): Likewise.
+ 	* config/aarch64/constraints.md (Usr): New constraint.
+ 	* config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Add an RDVL
+ 	alternative.
+ 	(*movsi_aarch64, *movdi_aarch64): Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h:
+ 	(function_checker::require_immediate_lane_index): Add an argument
+ 	for the index of the indexed vector argument.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_checker::require_immediate_lane_index): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(ternary_bfloat_lane_base::check): Update accordingly.
+ 	(ternary_qq_lane_base::check): Likewise.
+ 	(binary_lane_def::check): Likewise.
+ 	(binary_long_lane_def::check): Likewise.
+ 	(ternary_lane_def::check): Likewise.
+ 	(ternary_lane_rotate_def::check): Likewise.
+ 	(ternary_long_lane_def::check): Likewise.
+ 	(ternary_qq_lane_rotate_def::check): Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* target.def (md_asm_adjust): Add a uses parameter.
+ 	* doc/tm.texi: Regenerate.
+ 	* cfgexpand.cc (expand_asm_loc): Update call to md_asm_adjust.
+ 	Handle any USEs created by the target.
+ 	(expand_asm_stmt): Likewise.
+ 	* recog.cc (asm_noperands): Handle asms with USEs.
+ 	(decode_asm_operands): Likewise.
+ 	* config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add uses
+ 	parameter.
+ 	* config/arm/aarch-common.cc (arm_md_asm_adjust): Likewise.
+ 	* config/arm/arm.cc (thumb1_md_asm_adjust): Likewise.
+ 	* config/avr/avr.cc (avr_md_asm_adjust): Likewise.
+ 	* config/cris/cris.cc (cris_md_asm_adjust): Likewise.
+ 	* config/i386/i386.cc (ix86_md_asm_adjust): Likewise.
+ 	* config/mn10300/mn10300.cc (mn10300_md_asm_adjust): Likewise.
+ 	* config/nds32/nds32.cc (nds32_md_asm_adjust): Likewise.
+ 	* config/pdp11/pdp11.cc (pdp11_md_asm_adjust): Likewise.
+ 	* config/rs6000/rs6000.cc (rs6000_md_asm_adjust): Likewise.
+ 	* config/s390/s390.cc (s390_md_asm_adjust): Likewise.
+ 	* config/vax/vax.cc (vax_md_asm_adjust): Likewise.
+ 	* config/visium/visium.cc (visium_md_asm_adjust): Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/tm.texi.in: Add TARGET_START_CALL_ARGS.
+ 	* doc/tm.texi: Regenerate.
+ 	* target.def (start_call_args): New hook.
+ 	(call_args, end_call_args): Add a parameter for the cumulative
+ 	argument information.
+ 	* hooks.h (hook_void_rtx_tree): Delete.
+ 	* hooks.cc (hook_void_rtx_tree): Likewise.
+ 	* targhooks.h (hook_void_CUMULATIVE_ARGS): Declare.
+ 	(hook_void_CUMULATIVE_ARGS_rtx_tree): Likewise.
+ 	* targhooks.cc (hook_void_CUMULATIVE_ARGS): New function.
+ 	(hook_void_CUMULATIVE_ARGS_rtx_tree): Likewise.
+ 	* calls.cc (expand_call): Call start_call_args before computing
+ 	and storing stack parameters.  Pass the cumulative argument
+ 	information to call_args and end_call_args.
+ 	(emit_library_call_value_1): Likewise.
+ 	* config/nvptx/nvptx.cc (nvptx_call_args): Add a cumulative
+ 	argument parameter.
+ 	(nvptx_end_call_args): Likewise.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/tm.texi.in: Add TARGET_EMIT_EPILOGUE_FOR_SIBCALL.
+ 	* doc/tm.texi: Regenerate.
+ 	* target.def (emit_epilogue_for_sibcall): New hook.
+ 	* calls.cc (can_implement_as_sibling_call_p): Use it.
+ 	* function.cc (thread_prologue_and_epilogue_insns): Likewise.
+ 	(reposition_prologue_and_epilogue_notes): Likewise.
+ 	* config/aarch64/aarch64-protos.h (aarch64_expand_epilogue): Take
+ 	an rtx_call_insn * rather than a bool.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_epilogue): Likewise.
+ 	(TARGET_EMIT_EPILOGUE_FOR_SIBCALL): Define.
+ 	* config/aarch64/aarch64.md (epilogue): Update call.
+ 	(sibcall_epilogue): Delete.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* target.def (use_late_prologue_epilogue): New hook.
+ 	* doc/tm.texi.in: Add TARGET_USE_LATE_PROLOGUE_EPILOGUE.
+ 	* doc/tm.texi: Regenerate.
+ 	* passes.def (pass_late_thread_prologue_and_epilogue): New pass.
+ 	* tree-pass.h (make_pass_late_thread_prologue_and_epilogue): Declare.
+ 	* function.cc (pass_thread_prologue_and_epilogue::gate): New function.
+ 	(pass_data_late_thread_prologue_and_epilogue): New pass variable.
+ 	(pass_late_thread_prologue_and_epilogue): New pass class.
+ 	(make_pass_late_thread_prologue_and_epilogue): New function.
+ 
+ 2023-12-05  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::check_conflict_ext): Check zcd conflicts
+ 	with zcmt and zcmp.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/112278
+ 	* lra-int.h (lra_update_biggest_mode): New function.
+ 	* lra-coalesce.cc (merge_pseudos): Use it.
+ 	* lra-lives.cc (process_bb_lives): Likewise.
+ 	* lra.cc (new_insn_reg): Likewise.
+ 
+ 2023-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112843
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Change lhs of stmt
+ 	to lhs2 before building and inserting lhs = (cast) lhs2; assignment.
+ 	Adjust stmt operands before adjusting lhs.
+ 
+ 2023-12-05  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-v.cc (sew64_scalar_helper): Bugfix.
+ 
+ 2023-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112816
+ 	* config/i386/sse.md ((eq (eq (lshiftrt x elt_bits-1) 0) 0)): New
+ 	splitter to turn psrld $31; pcmpeq; pcmpeq into psrad $31.
+ 
+ 2023-12-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Add blocker.
+ 	* config/riscv/riscv-protos.h (gather_scatter_valid_offset_p): New function.
+ 	* config/riscv/riscv-v.cc (gather_scatter_valid_offset_p): Ditto.
+ 
+ 2023-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112827
+ 	PR tree-optimization/112848
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop):
+ 	Compute the insert location for each insert.
+ 
+ 2023-12-05  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	Count sse_reg/gpr_regs for components not loaded from memory.
+ 	(ix86_vector_costs:ix86_vector_costs): New constructor.
+ 	(ix86_vector_costs::m_num_gpr_needed[3]): New private memeber.
+ 	(ix86_vector_costs::m_num_sse_needed[3]): Ditto.
+ 	(ix86_vector_costs::finish_cost): Estimate overall register
+ 	pressure cost.
+ 	(ix86_vector_costs::ix86_vect_estimate_reg_pressure): New
+ 	function.
+ 
+ 2023-12-05  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (udot_prodv64qi): New expander.
+ 	(udot_prod<mode>): Emulates with VEC_UNPACKU_EXPR +
+ 	DOT_PROD (short, int).
+ 
+ 2023-12-05  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/107687
+ 	PR c++/110997
+ 	* doc/invoke.texi: Document -fno-immediate-escalation.
+ 
+ 2023-12-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* match.pd (zero_one_valued_p): For convert
+ 	make sure type is not a signed 1-bit integer.
+ 
+ 2023-12-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/microblaze/microblaze.md (movhi): Use %i for half-word
+ 	loads to properly select between lhu/lhui.
+ 
+ 2023-12-04  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-string.cc (expand_rawmemchr): Increment
+ 	source address by vl * element_size.
+ 
+ 2023-12-04  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-opts.h (enum riscv_stringop_strategy_enum):
+ 	Rename...
+ 	(enum stringop_strategy_enum): ... to this.
+ 	* config/riscv/riscv-string.cc (riscv_expand_block_move): New
+ 	wrapper expander handling the strategies and delegation.
+ 	(riscv_expand_block_move_scalar): Rename function and make
+ 	static.
+ 	(expand_block_move): Remove strategy handling.
+ 	* config/riscv/riscv.md: Call expander wrapper.
+ 	* config/riscv/riscv.opt: Rename.
+ 
+ 2023-12-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112785
+ 	* function.h (get_new_clique): New inline function handling
+ 	last_clique overflow.
+ 	* cfgrtl.cc (duplicate_insn_chain): Use it.
+ 	* tree-cfg.cc (gimple_duplicate_bb): Likewise.
+ 	* tree-inline.cc (remap_dependence_clique): Likewise.
+ 
+ 2023-12-04  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/112650
+ 	* doc/invoke.texi: Document riscv-strcmp-inline-limit.
+ 
+ 2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Fix incorrect overlap in v0.
+ 
+ 2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Add highest-number overlap support.
+ 
+ 2023-12-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112818
+ 	* tree-vect-stmts.cc (vectorizable_bswap): Check input and
+ 	output vector types have the same size.
+ 
+ 2023-12-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112827
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop):
+ 	Do not release SSA name but keep a dead initialization around.
+ 
+ 2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Remove earlyclobber from widen reduction.
+ 
+ 2023-12-04  Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	PR debug/112656
+ 	* btfout.cc (btf_asm_type): Fixup ctti_name for all
+ 	BTF types of kind BTF_KIND_FUNC_PROTO.
+ 
+ 2023-12-04  Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	PR debug/112768
+ 	* btfout.cc (get_btf_type_name): New definition.
+ 	(btf_collect_datasec): Update dtd_name to the original type name
+ 	string.
+ 	(btf_asm_type_ref): Use the new get_btf_type_name function
+ 	instead.
+ 	(btf_asm_type): Likewise.
+ 	(btf_asm_func_type): Likewise.
+ 
+ 2023-12-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112837
+ 	* config/i386/i386.cc (ix86_elim_entry_set_got): Before checking
+ 	for UNSPEC_SET_GOT check that SET_SRC is UNSPEC.  Use SET_SRC and
+ 	SET_DEST macros instead of XEXP, rename vec variable to set.
+ 
+ 2023-12-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112816
+ 	* config/i386/sse.md (signbit<mode>2): Force operands[1] into a REG.
+ 
+ 2023-12-04  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add zvkb ISA info.
+ 	* config/riscv/riscv.opt: Add Mask(ZVKB)
+ 
+ 2023-12-04  Fei Gao  <gaofei@eswincomputing.com>
+ 	    Xiao Zeng <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc):move to sfb.md
+ 	* config/riscv/sfb.md: New file.
+ 
+ 2023-12-04  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-cores.def: Add sifive-x280.
+ 	* doc/invoke.texi (RISC-V Options): Add sifive-x280
+ 
+ 2023-12-04  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_implied_predicator_t): New.
+ 	(riscv_implied_info_t::riscv_implied_info_t): New.
+ 	(riscv_implied_info_t::match): New.
+ 	(riscv_implied_info): New entry for zcf.
+ 	(riscv_subset_list::handle_implied_ext): Use
+ 	riscv_implied_info_t::match.
+ 	(riscv_subset_list::check_implied_ext): Ditto.
+ 	(riscv_subset_list::handle_combine_ext): Ditto.
+ 	(riscv_subset_list::parse): Move zcf implication handling to
+ 	riscv_implied_infos.
+ 
+ 2023-12-04  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::check_conflict_ext): New.
+ 	(riscv_subset_list::parse): Move checking conflict ext. to
+ 	check_conflict_ext.
+ 	* config/riscv/riscv-subset.h:
+ 	Add riscv_subset_list::check_conflict_ext.
+ 
+ 2023-12-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features): Move USER_MSR
+ 	to the correct location.
+ 
+ 2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.md: Rostify the constraints.
+ 
+ 2023-12-04  chenxiaolong  <chenxiaolong@loongson.cn>
+ 
+ 	* doc/extend.texi: Add information about the intrinsic function of the vector
+ 	instruction.
+ 
+ 2023-12-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112807
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
+ 	When choosing type0 and type1 types, if prec3 has small/middle bitint
+ 	kind, use maximum of type0 and type1's precision instead of prec3.
+ 
+ 2023-12-03  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Add prototype for exit.
+ 
+ 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* attribs.cc (comp_type_attributes): Pass the full TREE_PURPOSE
+ 	to lookup_attribute_spec, rather than just the name.
+ 	(remove_attributes_matching): Likewise.
+ 
+ 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* attribs.cc (find_same_attribute): New function.
+ 	(decl_attributes, comp_type_attributes): Use it when looking
+ 	up one list's attributes in another list.
+ 
+ 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* Makefile.in (GTFILES): Add attribs.cc.
+ 	* attribs.cc (gnu_namespace_cache): New variable.
+ 	(get_gnu_namespace): New function.
+ 	(lookup_attribute_spec): Use it instead of get_identifier ("gnu").
+ 	(get_attribute_namespace, attribs_cc_tests): Likewise.
+ 
+ 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* attribs.h (scoped_attribute_specs): New structure.
+ 	(register_scoped_attributes): Take a reference to a
+ 	scoped_attribute_specs instead of separate namespace and array
+ 	parameters.
+ 	* plugin.h (register_scoped_attributes): Likewise.
+ 	* attribs.cc (register_scoped_attributes): Likewise.
+ 	(attribute_tables): Change into an array of scoped_attribute_specs
+ 	pointers.  Reduce to 1 element for frontends and 1 element for targets.
+ 	(empty_attribute_table): Delete.
+ 	(check_attribute_tables): Update for changes to attribute_tables.
+ 	Use a hash_set to identify duplicates.
+ 	(handle_ignored_attributes_option): Update for above changes.
+ 	(init_attributes): Likewise.
+ 	(excl_pair): Delete.
+ 	(test_attribute_exclusions): Update for above changes.  Don't
+ 	enforce symmetry for standard attributes in the top-level namespace.
+ 	* langhooks-def.h (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Delete.
+ 	(LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Likewise.
+ 	(LANG_HOOKS_INITIALIZER): Update accordingly.
+ 	(LANG_HOOKS_ATTRIBUTE_TABLE): Define to an empty constructor.
+ 	* langhooks.h (lang_hooks::common_attribute_table): Delete.
+ 	(lang_hooks::format_attribute_table): Likewise.
+ 	(lang_hooks::attribute_table): Redefine to an array of
+ 	scoped_attribute_specs pointers.
+ 	* target-def.h (TARGET_GNU_ATTRIBUTES): New macro.
+ 	* target.def (attribute_spec): Redefine to return an array of
+ 	scoped_attribute_specs pointers.
+ 	* tree-inline.cc (function_attribute_inlinable_p): Update accordingly.
+ 	* doc/tm.texi: Regenerate.
+ 	* config/aarch64/aarch64.cc (aarch64_attribute_table): Define using
+ 	TARGET_GNU_ATTRIBUTES.
+ 	* config/alpha/alpha.cc (vms_attribute_table): Likewise.
+ 	* config/avr/avr.cc (avr_attribute_table): Likewise.
+ 	* config/bfin/bfin.cc (bfin_attribute_table): Likewise.
+ 	* config/bpf/bpf.cc (bpf_attribute_table): Likewise.
+ 	* config/csky/csky.cc (csky_attribute_table): Likewise.
+ 	* config/epiphany/epiphany.cc (epiphany_attribute_table): Likewise.
+ 	* config/gcn/gcn.cc (gcn_attribute_table): Likewise.
+ 	* config/h8300/h8300.cc (h8300_attribute_table): Likewise.
+ 	* config/loongarch/loongarch.cc (loongarch_attribute_table): Likewise.
+ 	* config/m32c/m32c.cc (m32c_attribute_table): Likewise.
+ 	* config/m32r/m32r.cc (m32r_attribute_table): Likewise.
+ 	* config/m68k/m68k.cc (m68k_attribute_table): Likewise.
+ 	* config/mcore/mcore.cc (mcore_attribute_table): Likewise.
+ 	* config/microblaze/microblaze.cc (microblaze_attribute_table):
+ 	Likewise.
+ 	* config/mips/mips.cc (mips_attribute_table): Likewise.
+ 	* config/msp430/msp430.cc (msp430_attribute_table): Likewise.
+ 	* config/nds32/nds32.cc (nds32_attribute_table): Likewise.
+ 	* config/nvptx/nvptx.cc (nvptx_attribute_table): Likewise.
+ 	* config/riscv/riscv.cc (riscv_attribute_table): Likewise.
+ 	* config/rl78/rl78.cc (rl78_attribute_table): Likewise.
+ 	* config/rx/rx.cc (rx_attribute_table): Likewise.
+ 	* config/s390/s390.cc (s390_attribute_table): Likewise.
+ 	* config/sh/sh.cc (sh_attribute_table): Likewise.
+ 	* config/sparc/sparc.cc (sparc_attribute_table): Likewise.
+ 	* config/stormy16/stormy16.cc (xstormy16_attribute_table): Likewise.
+ 	* config/v850/v850.cc (v850_attribute_table): Likewise.
+ 	* config/visium/visium.cc (visium_attribute_table): Likewise.
+ 	* config/arc/arc.cc (arc_attribute_table): Likewise.  Move further
+ 	down file.
+ 	* config/arm/arm.cc (arm_attribute_table): Update for above changes,
+ 	using...
+ 	(arm_gnu_attributes, arm_gnu_attribute_table): ...these new globals.
+ 	* config/i386/i386-options.h (ix86_attribute_table): Delete.
+ 	(ix86_gnu_attribute_table): Declare.
+ 	* config/i386/i386-options.cc (ix86_attribute_table): Replace with...
+ 	(ix86_gnu_attributes, ix86_gnu_attribute_table): ...these two globals.
+ 	* config/i386/i386.cc (ix86_attribute_table): Define as an array of
+ 	scoped_attribute_specs pointers.
+ 	* config/ia64/ia64.cc (ia64_attribute_table): Update for above changes,
+ 	using...
+ 	(ia64_gnu_attributes, ia64_gnu_attribute_table): ...these new globals.
+ 	* config/rs6000/rs6000.cc (rs6000_attribute_table): Update for above
+ 	changes, using...
+ 	(rs6000_gnu_attributes, rs6000_gnu_attribute_table): ...these new
+ 	globals.
+ 
+ 2023-12-02  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (csetvl_info::parse_insn): Rename
+ 	local variable from demand_flags to dflags, to avoid conflicting
+ 	with (enumeration) type of the same name.
+ 
+ 2023-12-02  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
+ 	Supplementary function prototype.
+ 	(loongarch_is_even_extraction): Adjust.
+ 	(loongarch_try_expand_lsx_vshuf_const): Adjust.
+ 	(loongarch_is_extraction_permutation): Adjust.
+ 	(loongarch_expand_vec_perm_const_2): Adjust.
+ 
+ 2023-12-02  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md (v2di): Used to simplify the
+ 	following templates.
+ 	(popcount<mode>2): New.
+ 
+ 2023-12-02  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.h (CTZ_DEFINED_VALUE_AT_ZERO): Add
+ 	description.
+ 	(CLZ_DEFINED_VALUE_AT_ZERO): Remove duplicate definition.
+ 
+ 2023-12-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112801
+ 	* config/riscv/vector.md: Add !TARGET_64BIT.
+ 
+ 2023-12-02  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/112743
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Take the
+ 	exist (U *mode) and handle DFmode like DImode when EEW is
+ 	32bits for ZVE32F.
+ 
+ 2023-12-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.h (range_compatible_p): Relocate.
+ 	* value-range.h (range_compatible_p): Here.
+ 	* range-op-mixed.h (operand_equal::operand_check_p): Call
+ 	range_compatible_p rather than comparing precision.
+ 	(operand_not_equal::operand_check_p): Ditto.
+ 	(operand_not_lt::operand_check_p): Ditto.
+ 	(operand_not_le::operand_check_p): Ditto.
+ 	(operand_not_gt::operand_check_p): Ditto.
+ 	(operand_not_ge::operand_check_p): Ditto.
+ 	(operand_plus::operand_check_p): Ditto.
+ 	(operand_abs::operand_check_p): Ditto.
+ 	(operand_minus::operand_check_p): Ditto.
+ 	(operand_negate::operand_check_p): Ditto.
+ 	(operand_mult::operand_check_p): Ditto.
+ 	(operand_bitwise_not::operand_check_p): Ditto.
+ 	(operand_bitwise_xor::operand_check_p): Ditto.
+ 	(operand_bitwise_and::operand_check_p): Ditto.
+ 	(operand_bitwise_or::operand_check_p): Ditto.
+ 	(operand_min::operand_check_p): Ditto.
+ 	(operand_max::operand_check_p): Ditto.
+ 	* range-op.cc (operand_lshift::operand_check_p): Ditto.
+ 	(operand_rshift::operand_check_p): Ditto.
+ 	(operand_logical_and::operand_check_p): Ditto.
+ 	(operand_logical_or::operand_check_p): Ditto.
+ 	(operand_logical_not::operand_check_p): Ditto.
+ 
+ 2023-12-01  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/112445
+ 	* lra.h (lra): Add one more arg.
+ 	* lra-int.h (lra_verbose, lra_dump_insns): New externals.
+ 	(lra_dump_insns_if_possible): Ditto.
+ 	* lra.cc (lra_dump_insns): Dump all insns.
+ 	(lra_dump_insns_if_possible):  Dump all insns for lra_verbose >= 7.
+ 	(lra_verbose): New global.
+ 	(lra): Add new arg.  Setup lra_verbose from its value.
+ 	* lra-assigns.cc (lra_split_hard_reg_for): Dump insns if rtl
+ 	was changed.
+ 	* lra-remat.cc (lra_remat): Dump insns if rtl was changed.
+ 	* lra-constraints.cc (lra_inheritance): Dump insns.
+ 	(lra_constraints, lra_undo_inheritance): Dump insns if rtl
+ 	was changed.
+ 	(remove_inheritance_pseudos): Use restore reg if it is set up.
+ 	* ira.cc: (lra): Pass internal_flag_ira_verbose.
+ 
+ 2023-12-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/extend.texi (__builtin_addc, __builtin_addcl, __builtin_addcll,
+ 	__builtin_subc, __builtin_subcl, __builtin_subcll,
+ 	__builtin_stdc_bit_width, __builtin_stdc_count_ones,
+ 	__builtin_stdc_count_zeros, __builtin_stdc_first_leading_one,
+ 	__builtin_stdc_first_leading_zero, __builtin_stdc_first_trailing_one,
+ 	__builtin_stdc_first_trailing_zero, __builtin_stdc_has_single_bit,
+ 	__builtin_stdc_leading_ones, __builtin_stdc_leading_zeros,
+ 	__builtin_stdc_trailing_ones, __builtin_stdc_trailing_zeros,
+ 	__builtin_nvptx_brev, __builtin_nvptx_brevll, __builtin_darn,
+ 	__builtin_darn_raw, __builtin_ia32_vec_ext_v2di,
+ 	__builtin_ia32_crc32qi, __builtin_ia32_crc32hi,
+ 	__builtin_ia32_crc32si, __builtin_ia32_crc32di): Put {}s around
+ 	return type with spaces in it.
+ 	(__builtin_rx_mvfachi, __builtin_rx_mvfacmi): Remove superfluous
+ 	whitespace.
+ 
+ 2023-12-01  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-core.h (emit_diagnostic_valist): New overload decl.
+ 	* diagnostic-format-sarif.cc (sarif_builder::make_result_object):
+ 	When we have metadata, call its maybe_add_sarif_properties vfunc.
+ 	* diagnostic-metadata.h (class sarif_object): Forward decl.
+ 	(diagnostic_metadata::~diagnostic_metadata): New.
+ 	(diagnostic_metadata::maybe_add_sarif_properties): New vfunc.
+ 	* diagnostic.cc (emit_diagnostic_valist): New overload.
+ 
+ 2023-12-01  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/103533
+ 	* doc/extend.texi: Remove stray reference to
+ 	-fanalyzer-checker=taint.
+ 
+ 2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Support highpart overlap for vx/vf.
+ 
+ 2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Support highpart overlap for indexed load.
+ 
+ 2023-12-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_get_vec_defs): Re-order arguments.
+ 	* tree-vect-stmts.cc (vect_get_vec_defs): Likewise.
+ 	(vectorizable_condition): Update caller.
+ 	(vectorizable_comparison_1): Likewise.
+ 	(vectorizable_conversion): Specify the vector type to be
+ 	used for invariant/external defs.
+ 	* tree-vect-loop.cc (vect_transform_reduction): Update caller.
+ 
+ 2023-12-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112770
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): When adjusting
+ 	lhs of middle _BitInt setter which ends bb, insert cast on
+ 	the fallthru edge rather than after stmt.
+ 
+ 2023-12-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112771
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
+ 	Use mp = 1 if it is zero.
+ 
+ 2023-12-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_asm_named_section): New function.
+ 	(TARGET_ASM_NAMED_SECTION): Set to bpf_asm_named_section.
+ 
+ 2023-12-01  Di Zhao  <dizhao@os.amperecomputing.com>
+ 
+ 	* config/aarch64/aarch64-tuning-flags.def
+ 	(AARCH64_EXTRA_TUNING_OPTION): New tuning option to avoid
+ 	cross-loop FMA.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_override_options_internal): Set
+ 	param_avoid_fma_max_bits according to tuning option.
+ 	* config/aarch64/tuning_models/ampere1.h (ampere1_tunings):
+ 	Modify tunings related with FMA.
+ 	* config/aarch64/tuning_models/ampere1a.h (ampere1a_tunings):
+ 	Likewise.
+ 	* config/aarch64/tuning_models/ampere1b.h (ampere1b_tunings):
+ 	Likewise.
+ 
+ 2023-12-01  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h
+ 	(function_expander::result_mode): New member function.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svld234_impl::expand): Use it.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_expander::get_reg_target): Likewise.
+ 
+ 2023-12-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-lower-bitint.cc (range_to_prec): Don't return -1 for
+ 	signed types.
+ 	(bitint_large_huge::lower_addsub_overflow): Fix up computation of
+ 	prec2.
+ 	(bitint_large_huge::lower_mul_overflow): Likewise.
+ 
+ 2023-12-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-lower-bitint.cc (bitint_large_huge::finish_arith_overflow):
+ 	When replacing use_stmt which is gsi_stmt (m_gsi), update m_gsi to
+ 	the new statement.
+ 
+ 2023-12-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112750
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
+ 	Use NE_EXPR rather than EQ_EXPR for g2 if !single_comparison and
+ 	adjust probabilities.
+ 
+ 2023-12-01  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* doc/install.texi: Deem srcdir == objdir broken, but objdir
+ 	as a subdirectory of srcdir fine.
+ 
+ 2023-12-01  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	PR target/112753
+ 	* config/s390/s390.cc (s390_md_asm_adjust): Return after dealing
+ 	with the outputs, if no further processing of long doubles is
+ 	required.
+ 
+ 2023-12-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112725
+ 	* config/s390/s390.cc (s390_invalid_arg_for_unprototyped_fn): Return
+ 	NULL for __builtin_classify_type calls with vector arguments.
+ 
+ 2023-12-01  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Document
+ 	-Wdeclaration-missing-parameter-type.
+ 
+ 2023-12-01  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Document changes.
+ 
+ 2023-12-01  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Document that
+ 	-Wreturn-mismatch is a permerror in C99 and later.
+ 
+ 2023-12-01  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	PR c/91093
+ 	PR c/96284
+ 	* doc/invoke.texi (Warning Options): Document changes.
+ 
+ 2023-12-01  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Document changes.
+ 
+ 2023-12-01  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Document changes.
+ 
+ 2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112776
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::pre_global_vsetvl_info): Fix ratio.
+ 
+ 2023-11-30  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/111404
+ 	* config/aarch64/aarch64.cc (aarch64_split_compare_and_swap):
+ 	For 128-bit store the loaded value and loop if needed.
+ 
+ 2023-11-30  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/103100
+ 	* config/aarch64/aarch64.md (cpymemdi): Remove pattern condition.
+ 	(setmemdi): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_cpymem): Support
+ 	strict-align.  Cleanup condition for using MOPS.
+ 	(aarch64_expand_setmem): Likewise.
+ 
+ 2023-11-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112767
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop):
+ 	Propagate constants to immediate uses immediately.
+ 
+ 2023-11-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112766
+ 	* gimple-predicate-analysis.cc (find_var_cmp_const):
+ 	Support continuing the iteration and report every candidate.
+ 	(uninit_analysis::overlap): Iterate over all flag var
+ 	candidates.
+ 
+ 2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Add widening overlap of vf2/vf4.
+ 
+ 2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Remove earlyclobber for wx/wf instructions.
+ 
+ 2023-11-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112733
+ 	* wide-int.cc (wi::mul_internal): Don't allocate twice as much
+ 	space for u, v and r as needed.
+ 	(divmod_internal_2): Change return type from void to int, for n == 1
+ 	return 1, otherwise before writing b_dividend into b_remainder set
+ 	n to MIN (n, m) and at the end return it.
+ 	(wi::divmod_internal): Don't allocate 4 times as much space for
+ 	b_quotient, b_remainder, b_dividend and b_divisor.  Set n to
+ 	result of divmod_internal_2.
+ 	(wide_int_cc_tests): Add test for unsigned widest_int
+ 	wi::multiple_of_p of 1 and -128.
+ 
+ 2023-11-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (sdot_prodv64qi): New expander.
+ 	(sseunpackmodelower): New mode attr.
+ 	(sdot_prod<mode>): Emulate sdot_prodv*qi with sodt_prov*hi
+ 	when TARGET_VNNIINT8 is not available.
+ 
+ 2023-11-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md: (reduc_plus_scal_<mode>): Use
+ 	vec_extract_lo instead of subreg.
+ 	(reduc_<code>_scal_<mode>): Ditto.
+ 	(reduc_<code>_scal_<mode>): Ditto.
+ 	(reduc_<code>_scal_<mode>): Ditto.
+ 	(reduc_<code>_scal_<mode>): Ditto.
+ 
+ 2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112431
+ 	* config/riscv/vector.md: Add widenning overlap.
+ 
+ 2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Fix constraint.
+ 	* config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Rename vconstraint into group_overlap.
+ 	(no,yes): Ditto.
+ 	(none,W21,W42,W84,W43,W86,W87): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Support highpart overlap for vext.vf2
+ 
+ 2023-11-29  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add ampere-1b
+ 	* config/aarch64/aarch64-cost-tables.h: Add ampere1b_extra_costs
+ 	* config/aarch64/aarch64-tune.md: Regenerate
+ 	* config/aarch64/aarch64.cc: Include ampere1b tuning model
+ 	* doc/invoke.texi: Document -mcpu=ampere1b
+ 	* config/aarch64/tuning_models/ampere1b.h: New file.
+ 
+ 2023-11-29  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.h (ASM_COMMENT_START): Change from ';' to '#'.
+ 
+ 2023-11-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112725
+ 	* config/rs6000/rs6000.cc (invalid_arg_for_unprototyped_fn): Return
+ 	NULL for __builtin_classify_type calls with vector arguments.
+ 
+ 2023-11-29  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/111922
+ 	* ipa-cp.cc (ipa_vr_operation_and_type_effects): Check the
+ 	operands are valid before calling fold_range.
+ 
+ 2023-11-29  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (operator_equal::operand_check_p): New.
+ 	(operator_not_equal::operand_check_p): New.
+ 	(operator_lt::operand_check_p): New.
+ 	(operator_le::operand_check_p): New.
+ 	(operator_gt::operand_check_p): New.
+ 	(operator_ge::operand_check_p): New.
+ 	(operator_plus::operand_check_p): New.
+ 	(operator_abs::operand_check_p): New.
+ 	(operator_minus::operand_check_p): New.
+ 	(operator_negate::operand_check_p): New.
+ 	(operator_mult::operand_check_p): New.
+ 	(operator_bitwise_not::operand_check_p): New.
+ 	(operator_bitwise_xor::operand_check_p): New.
+ 	(operator_bitwise_and::operand_check_p): New.
+ 	(operator_bitwise_or::operand_check_p): New.
+ 	(operator_min::operand_check_p): New.
+ 	(operator_max::operand_check_p): New.
+ 	* range-op.cc (range_op_handler::fold_range): Check operand
+ 	parameter types.
+ 	(range_op_handler::op1_range): Ditto.
+ 	(range_op_handler::op2_range): Ditto.
+ 	(range_op_handler::operand_check_p): New.
+ 	(range_operator::operand_check_p): New.
+ 	(operator_lshift::operand_check_p): New.
+ 	(operator_rshift::operand_check_p): New.
+ 	(operator_logical_and::operand_check_p): New.
+ 	(operator_logical_or::operand_check_p): New.
+ 	(operator_logical_not::operand_check_p): New.
+ 	* range-op.h (range_operator::operand_check_p): New.
+ 	(range_op_handler::operand_check_p): New.
+ 
+ 2023-11-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/112711
+ 	PR tree-optimization/112721
+ 	* tree-sra.cc (build_access_from_call_arg): New parameter
+ 	CAN_BE_RETURNED, disqualify any candidate passed by reference if it is
+ 	true.  Adjust leading comment.
+ 	(scan_function): Pass appropriate value to CAN_BE_RETURNED of
+ 	build_access_from_call_arg.
+ 
+ 2023-11-29  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* doc/sourcebuild.texi (Final Actions): Document
+ 	'only_for_offload_target' wrapper.
+ 
+ 2023-11-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	PR testsuite/112729
+ 	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
+ 	attributes): Document cfi.
+ 
+ 2023-11-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110237
+ 	* internal-fn.cc (expand_partial_load_optab_fn): Clear
+ 	MEM_EXPR and MEM_OFFSET.
+ 	(expand_partial_store_optab_fn): Likewise.
+ 
+ 2023-11-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112733
+ 	* fold-const.cc (multiple_of_p): Pass SIGNED rather than
+ 	UNSIGNED for wi::multiple_of_p on widest_int arguments.
+ 
+ 2023-11-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 	    kito-cheng  <kito.cheng@gmail.com>
+ 
+ 	PR target/112431
+ 	* config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): New register filters.
+ 	* config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Ditto.
+ 	(no,yes): Ditto.
+ 	* config/riscv/vector.md: Support highpart register overlap for vwcvt.
+ 
+ 2023-11-29  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_option_override): Eliminate warning.
+ 
+ 2023-11-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/111601
+ 	* fold-mem-offsets.cc (get_uses): Ignore DEBUG_INSN uses.  Otherwise,
+ 	punt if use is in a different basic block from INSN or appears before
+ 	INSN in the same basic block.  Formatting fixes.
+ 	(get_single_def_in_bb): Formatting fixes.
+ 	(fold_offsets_1, pass_fold_mem_offsets::execute): Comment formatting
+ 	fixes.
+ 
+ 2023-11-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/simd.md (LSX_SCALAR_FRINT): New int iterator.
+ 	(VLSX_FOR_FMODE): New mode attribute.
+ 	(<simd_for_scalar_frint_pattern><mode>2): New expander,
+ 	expanding to vreplvei.{w/d} + frint{rp/rz/rm/rne}.{s.d}.
+ 
+ 2023-11-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (lrint_allow_inexact): Remove.
+ 	(<lrint_pattern><ANYF:mode><ANYFI:mode>2): Check if <LRINT>
+ 	== UNSPEC_FTINT instead of <lrint_allow_inexact>.
+ 
+ 2023-11-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/lsx.md (bitimm): Move to ...
+ 	(UNSPEC_LSX_VROTR): Remove.
+ 	(lsx_vrotr_<lsxfmt>): Remove.
+ 	(lsx_vrotri_<lsxfmt>): Remove.
+ 	* config/loongarch/lasx.md (UNSPEC_LASX_XVROTR): Remove.
+ 	(lsx_vrotr_<lsxfmt>): Remove.
+ 	(lsx_vrotri_<lsxfmt>): Remove.
+ 	* config/loongarch/simd.md (bitimm): ... here.  Expand it to
+ 	cover LASX modes.
+ 	(vrotr<mode>3): New define_insn.
+ 	(vrotri<mode>3): New define_insn.
+ 	* config/loongarch/loongarch-builtins.cc:
+ 	(CODE_FOR_lsx_vrotr_b): Use standard pattern name.
+ 	(CODE_FOR_lsx_vrotr_h): Likewise.
+ 	(CODE_FOR_lsx_vrotr_w): Likewise.
+ 	(CODE_FOR_lsx_vrotr_d): Likewise.
+ 	(CODE_FOR_lasx_xvrotr_b): Likewise.
+ 	(CODE_FOR_lasx_xvrotr_h): Likewise.
+ 	(CODE_FOR_lasx_xvrotr_w): Likewise.
+ 	(CODE_FOR_lasx_xvrotr_d): Likewise.
+ 	(CODE_FOR_lsx_vrotri_b): Define to standard pattern name.
+ 	(CODE_FOR_lsx_vrotri_h): Likewise.
+ 	(CODE_FOR_lsx_vrotri_w): Likewise.
+ 	(CODE_FOR_lsx_vrotri_d): Likewise.
+ 	(CODE_FOR_lasx_xvrotri_b): Likewise.
+ 	(CODE_FOR_lasx_xvrotri_h): Likewise.
+ 	(CODE_FOR_lasx_xvrotri_w): Likewise.
+ 	(CODE_FOR_lasx_xvrotri_d): Likewise.
+ 
+ 2023-11-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/simd.md (muh): New code attribute mapping
+ 	any_extend to smul_highpart or umul_highpart.
+ 	(<su>mul<mode>3_highpart): New define_insn.
+ 	* config/loongarch/lsx.md (UNSPEC_LSX_VMUH_S): Remove.
+ 	(UNSPEC_LSX_VMUH_U): Remove.
+ 	(lsx_vmuh_s_<lsxfmt>): Remove.
+ 	(lsx_vmuh_u_<lsxfmt>): Remove.
+ 	* config/loongarch/lasx.md (UNSPEC_LASX_XVMUH_S): Remove.
+ 	(UNSPEC_LASX_XVMUH_U): Remove.
+ 	(lasx_xvmuh_s_<lasxfmt>): Remove.
+ 	(lasx_xvmuh_u_<lasxfmt>): Remove.
+ 	* config/loongarch/loongarch-builtins.cc (CODE_FOR_lsx_vmuh_b):
+ 	Redefine to standard pattern name.
+ 	(CODE_FOR_lsx_vmuh_h): Likewise.
+ 	(CODE_FOR_lsx_vmuh_w): Likewise.
+ 	(CODE_FOR_lsx_vmuh_d): Likewise.
+ 	(CODE_FOR_lsx_vmuh_bu): Likewise.
+ 	(CODE_FOR_lsx_vmuh_hu): Likewise.
+ 	(CODE_FOR_lsx_vmuh_wu): Likewise.
+ 	(CODE_FOR_lsx_vmuh_du): Likewise.
+ 	(CODE_FOR_lasx_xvmuh_b): Likewise.
+ 	(CODE_FOR_lasx_xvmuh_h): Likewise.
+ 	(CODE_FOR_lasx_xvmuh_w): Likewise.
+ 	(CODE_FOR_lasx_xvmuh_d): Likewise.
+ 	(CODE_FOR_lasx_xvmuh_bu): Likewise.
+ 	(CODE_FOR_lasx_xvmuh_hu): Likewise.
+ 	(CODE_FOR_lasx_xvmuh_wu): Likewise.
+ 	(CODE_FOR_lasx_xvmuh_du): Likewise.
+ 
+ 2023-11-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/112578
+ 	* config/loongarch/lsx.md (UNSPEC_LSX_VFTINT_S,
+ 	UNSPEC_LSX_VFTINTRNE, UNSPEC_LSX_VFTINTRP,
+ 	UNSPEC_LSX_VFTINTRM, UNSPEC_LSX_VFRINTRNE_S,
+ 	UNSPEC_LSX_VFRINTRNE_D, UNSPEC_LSX_VFRINTRZ_S,
+ 	UNSPEC_LSX_VFRINTRZ_D, UNSPEC_LSX_VFRINTRP_S,
+ 	UNSPEC_LSX_VFRINTRP_D, UNSPEC_LSX_VFRINTRM_S,
+ 	UNSPEC_LSX_VFRINTRM_D): Remove.
+ 	(ILSX, FLSX): Move into ...
+ 	(VIMODE): Move into ...
+ 	(FRINT_S, FRINT_D): Remove.
+ 	(frint_pattern_s, frint_pattern_d, frint_suffix): Remove.
+ 	(lsx_vfrint_<flsxfmt>, lsx_vftint_s_<ilsxfmt>_<flsxfmt>,
+ 	lsx_vftintrne_w_s, lsx_vftintrne_l_d, lsx_vftintrp_w_s,
+ 	lsx_vftintrp_l_d, lsx_vftintrm_w_s, lsx_vftintrm_l_d,
+ 	lsx_vfrintrne_s, lsx_vfrintrne_d, lsx_vfrintrz_s,
+ 	lsx_vfrintrz_d, lsx_vfrintrp_s, lsx_vfrintrp_d,
+ 	lsx_vfrintrm_s, lsx_vfrintrm_d,
+ 	<FRINT_S:frint_pattern_s>v4sf2,
+ 	<FRINT_D:frint_pattern_d>v2df2, round<mode>2,
+ 	fix_trunc<mode>2): Remove.
+ 	* config/loongarch/lasx.md: Likewise.
+ 	* config/loongarch/simd.md: New file.
+ 	(ILSX, ILASX, FLSX, FLASX, VIMODE): ... here.
+ 	(IVEC, FVEC): New mode iterators.
+ 	(VIMODE): ... here.  Extend it to work for all LSX/LASX vector
+ 	modes.
+ 	(x, wu, simd_isa, WVEC, vimode, simdfmt, simdifmt_for_f,
+ 	elebits): New mode attributes.
+ 	(UNSPEC_SIMD_FRINTRP, UNSPEC_SIMD_FRINTRZ, UNSPEC_SIMD_FRINT,
+ 	UNSPEC_SIMD_FRINTRM, UNSPEC_SIMD_FRINTRNE): New unspecs.
+ 	(SIMD_FRINT): New int iterator.
+ 	(simd_frint_rounding, simd_frint_pattern): New int attributes.
+ 	(<simd_isa>_<x>vfrint<simd_frint_rounding>_<simdfmt>): New
+ 	define_insn template for frint instructions.
+ 	(<simd_isa>_<x>vftint<simd_frint_rounding>_<simdifmt_for_f>_<simdfmt>):
+ 	Likewise, but for ftint instructions.
+ 	(<simd_frint_pattern><mode>2): New define_expand with
+ 	flag_fp_int_builtin_inexact checked.
+ 	(l<simd_frint_pattern><mode><vimode>2): Likewise.
+ 	(ftrunc<mode>2): New define_expand.  It does not require
+ 	flag_fp_int_builtin_inexact.
+ 	(fix_trunc<mode><vimode>2): New define_insn_and_split.  It does
+ 	not require flag_fp_int_builtin_inexact.
+ 	(include): Add lsx.md and lasx.md.
+ 	* config/loongarch/loongarch.md (include): Include simd.md,
+ 	instead of including lsx.md and lasx.md directly.
+ 	* config/loongarch/loongarch-builtins.cc
+ 	(CODE_FOR_lsx_vftint_w_s, CODE_FOR_lsx_vftint_l_d,
+ 	CODE_FOR_lasx_xvftint_w_s, CODE_FOR_lasx_xvftint_l_d):
+ 	Remove.
+ 
+ 2023-11-29  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/extend.texi (hardbool): New type attribute.
+ 	* doc/invoke.texi (-ftrivial-auto-var-init): Document
+ 	representation vs values.
+ 
+ 2023-11-29  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* expr.cc (emit_block_move_hints): Take ctz of len.  Obey
+ 	-finline-stringops.  Use oriented or sized loop.
+ 	(emit_block_move): Take ctz of len, and pass it on.
+ 	(emit_block_move_via_sized_loop): New.
+ 	(emit_block_move_via_oriented_loop): New.
+ 	(emit_block_move_via_loop): Take incr.  Move an incr-sized
+ 	block per iteration.
+ 	(emit_block_cmp_via_cmpmem): Take ctz of len.  Obey
+ 	-finline-stringops.
+ 	(emit_block_cmp_via_loop): New.
+ 	* expr.h (emit_block_move): Add ctz of len defaulting to zero.
+ 	(emit_block_move_hints): Likewise.
+ 	(emit_block_cmp_hints): Likewise.
+ 	* builtins.cc (expand_builtin_memory_copy_args): Pass ctz of
+ 	len to emit_block_move_hints.
+ 	(try_store_by_multiple_pieces): Support starting with a loop.
+ 	(expand_builtin_memcmp): Pass ctz of len to
+ 	emit_block_cmp_hints.
+ 	(expand_builtin): Allow inline expansion of memset, memcpy,
+ 	memmove and memcmp if requested.
+ 	* common.opt (finline-stringops): New.
+ 	(ilsop_fn): New enum.
+ 	* flag-types.h (enum ilsop_fn): New.
+ 	* doc/invoke.texi (-finline-stringops): Add.
+ 
+ 2023-11-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/112743
+ 	* config/riscv/riscv-string.cc (expand_block_move): Add
+ 	precondition check for exact_div.
+ 
+ 2023-11-28  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.md: Make output template whitespace consistent.
+ 
+ 2023-11-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* varasm.cc (assemble_external_libcall): Refer in assert only ifdef
+ 	ASM_OUTPUT_EXTERNAL.
+ 
+ 2023-11-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/112738
+ 	* match.pd (`(nop_convert)-(convert)a`): Reject
+ 	when the outer type is boolean.
+ 
+ 2023-11-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112732
+ 	* tree.cc (build_opaque_vector_type): Reset TYPE_ALIAS_SET
+ 	of the newly built type.
+ 
+ 2023-11-28  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112494
+ 	* config/i386/i386.md (cmpstrnqi_1): Set FLAGS_REG to its previous
+ 	value when operand 2 equals zero.
+ 	(*cmpstrnqi_1): Ditto.
+ 	(*cmpstrnqi_1 peephole2): Ditto.
+ 
+ 2023-11-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	Revert:
+ 	2023-11-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_output_call): Report error in case the
+ 	function call is for a builtin.
+ 	(bpf_external_libcall): Added target hook to detect and report
+ 	error when other external calls that are not builtins.
+ 
+ 2023-11-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR target/109253
+ 	* varasm.cc (pending_libcall_symbols): New variable.
+ 	(process_pending_assemble_externals): Process
+ 	pending_libcall_symbols.
+ 	(assemble_external_libcall): Defer emitting external libcall
+ 	symbols to process_pending_assemble_externals.
+ 
+ 2023-11-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* btfout.cc (btf_calc_num_vbytes): Fixed logic for enum64.
+ 	(btf_asm_enum_const): Corrected logic for enum64 and smaller
+ 	than 4 bytes values.
+ 
+ 2023-11-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_output_call): Report error in case the
+ 	function call is for a builtin.
+ 	(bpf_external_libcall): Added target hook to detect and report
+ 	error when other external calls that are not builtins.
+ 
+ 2023-11-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_use_by_pieces_infrastructure_p): Added
+ 	function to bypass default behaviour.
+ 	* config/bpf/bpf.h (COMPARE_MAX_PIECES): Defined to 1024 bytes.
+ 
+ 2023-11-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/core-builtins.cc (core_mark_as_access_index):
+ 	Corrected check.
+ 
+ 2023-11-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/core-builtins.cc
+ 	(bpf_resolve_overloaded_core_builtin): Removed call.
+ 	(execute_lower_bpf_core): Added all to remove_parser_plugin.
+ 
+ 2023-11-28  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112694
+ 	* config/riscv/riscv-v.cc (expand_vec_perm_const): Disallow poly size (1, 1) VLA SLP.
+ 
+ 2023-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112719
+ 	* match.pd (parity(X)^parity(Y) -> parity(X^Y)): Handle case of
+ 	mismatched types.
+ 	* gimple-match-exports.cc (build_call_internal): Add special-case for
+ 	bit query ifns on large/huge BITINT_TYPE before bitint lowering.
+ 
+ 2023-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112719
+ 	* match.pd (popcount (X) + popcount (Y) -> POPCOUNT (X | Y)): Deal
+ 	with argument types with different precisions.
+ 
+ 2023-11-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/109077
+ 	* Makefile.in (PLUGIN_HEADERS): Add analyzer headers.
+ 	(install-plugin): Keep the directory structure for files in
+ 	"analyzer".
+ 
+ 2023-11-28  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112713
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix regression.
+ 
+ 2023-11-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-show-locus.cc (layout::maybe_add_location_range):
+ 	Don't print annotation lines for ranges when there's no column
+ 	info.
+ 	(selftest::test_one_liner_no_column): New.
+ 	(selftest::test_diagnostic_show_locus_one_liner): Call it.
+ 
+ 2023-11-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_get_location_text): Convert to...
+ 	(diagnostic_context::get_location_text): ...this, and convert
+ 	return type from char * to label_text.
+ 	(diagnostic_build_prefix): Update for above change.
+ 	(default_diagnostic_start_span_fn): Likewise.
+ 	(selftest::assert_location_text): Likewise.
+ 	* diagnostic.h (diagnostic_context::get_location_text): New decl.
+ 
+ 2023-11-27  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_if_then_else_costs):
+ 	Handle csinv/csinc case of 1/-1.
+ 
+ 2023-11-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/111754
+ 	* fold-const.cc (fold_vec_perm_cst): Set result's encoding to sel's
+ 	encoding, and set res_nelts_per_pattern to 2 if sel contains stepped
+ 	sequence but input vectors do not.
+ 	(test_nunits_min_2): New test Case 8.
+ 	(test_nunits_min_4): New tests Case 8 and Case 9.
+ 
+ 2023-11-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_needs_frame_chain): Do not
+ 	force frame chain for eh_return.
+ 
+ 2023-11-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_eh_return_handler_rtx):
+ 	Remove.
+ 	* config/aarch64/aarch64.cc (aarch64_return_address_signing_enabled):
+ 	Sign return address even in functions with eh_return.
+ 	(aarch64_expand_epilogue): Conditionally return with br or ret.
+ 	(aarch64_eh_return_handler_rtx): Remove.
+ 	* config/aarch64/aarch64.h (EH_RETURN_TAKEN_RTX): Define.
+ 	(EH_RETURN_STACKADJ_RTX): Change to R5.
+ 	(EH_RETURN_HANDLER_RTX): Change to R6.
+ 	* df-scan.cc: Handle EH_RETURN_TAKEN_RTX.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Document EH_RETURN_TAKEN_RTX.
+ 	* except.cc (expand_eh_return): Handle EH_RETURN_TAKEN_RTX.
+ 
+ 2023-11-27  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config.gcc <amdgcn-*-amdhsa> (extra_gcc_objs): Don't set.
+ 	* config/gcn/driver-gcn.cc: Remove.
+ 	* config/gcn/gcn-hsa.h (ASM_SPEC, EXTRA_SPEC_FUNCTIONS): Remove
+ 	'last_arg' spec function.
+ 	* config/gcn/t-gcn-hsa (driver-gcn.o): Remove.
+ 
+ 2023-11-27  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	PR target/112669
+ 	* config/gcn/gcn.opt (march=, mtune=): Tag as 'Negative' of
+ 	themselves.
+ 
+ 2023-11-27  Samuel Thibault  <samuel.thibault@gnu.org>
+ 
+ 	* config/i386/gnu.h: Use PIE_SPEC, add static-pie case.
+ 	* config/i386/gnu64.h: Use PIE_SPEC, add static-pie case.
+ 
+ 2023-11-27  Samuel Thibault  <samuel.thibault@gnu.org>
+ 
+ 	* config/i386/t-gnu64: New file.
+ 	* config.gcc [x86_64-*-gnu*]: Add i386/t-gnu64 to
+ 	tmake_file.
+ 
+ 2023-11-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/106326
+ 	* config/aarch64/aarch64-sve-builtins.h (is_ptrue): Declare.
+ 	* config/aarch64/aarch64-sve-builtins.cc (is_ptrue): New function.
+ 	(gimple_folder::redirect_pred_x): Likewise.
+ 	(gimple_folder::fold): Use it.
+ 
+ 2023-11-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.h (vector_cst_all_same): Declare.
+ 	* config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same): New
+ 	function, a generalized replacement of...
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svlast_impl::vect_all_same): ...this.
+ 	(svlast_impl::fold): Update accordingly.
+ 
+ 2023-11-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112653
+ 	* gimple-ssa.h (gimple_df): Add escaped_return solution.
+ 	* tree-ssa.cc (init_tree_ssa): Reset it.
+ 	(delete_tree_ssa): Likewise.
+ 	* tree-ssa-structalias.cc (escaped_return_id): New.
+ 	(find_func_aliases): Handle non-IPA return stmts by
+ 	adding to ESCAPED_RETURN.
+ 	(set_uids_in_ptset): Adjust HEAP escaping to also cover
+ 	escapes through return.
+ 	(init_base_vars): Initialize ESCAPED_RETURN.
+ 	(compute_points_to_sets): Replace ESCAPED post-processing
+ 	with recording the ESCAPED_RETURN solution.
+ 	* tree-ssa-alias.cc (ref_may_alias_global_p_1): Check
+ 	the ESCAPED_RETUNR solution.
+ 	(dump_alias_info): Dump it.
+ 	* cfgexpand.cc (update_alias_info_with_stack_vars): Update it.
+ 	* ipa-icf.cc (sem_item_optimizer::fixup_points_to_sets):
+ 	Likewise.
+ 	* tree-inline.cc (expand_call_inline): Reset it.
+ 	* tree-parloops.cc (parallelize_loops): Likewise.
+ 	* tree-sra.cc (maybe_add_sra_candidate): Check it.
+ 
+ 2023-11-27  Richard Biener  <rguenther@suse.de>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/112661
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Defer duplicate-and-
+ 	interleave test to...
+ 	(vect_build_slp_tree_2): ...here, once we have all the operands.
+ 	Skip the test for uniform vectors.
+ 	(vect_create_constant_vectors): Detect uniform vectors.  Avoid
+ 	redundant conversions in that case.  Use gimple_build_vector_from_val
+ 	to build the vector.
+ 
+ 2023-11-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* attribs.cc (excl_hash_traits): Delete.
+ 	(test_attribute_exclusions): Use pair_hash and nofree_string_hash
+ 	instead.
+ 
+ 2023-11-27  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Disallow TImode.
+ 
+ 2023-11-27  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtin-types.def (BT_FN_UV8HI_UV8HI_UINT):
+ 	Add missing builtin type.
+ 
+ 2023-11-27  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtin-types.def: Remove types.
+ 	* config/s390/s390-builtins.def (O_U64): Remove 64-bit literal support.
+ 	Don't restrict s390_vec_rli and s390_verll[bhfg] to immediates.
+ 	* config/s390/s390.cc (s390_const_operand_ok): Remove 64-bit
+ 	literal support.
+ 
+ 2023-11-27  Alex Coplan  <alex.coplan@arm.com>
+ 	    Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR c++/60512
+ 	* doc/cpp.texi: Document __has_{feature,extension}.
+ 
+ 2023-11-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112706
+ 	* match.pd (ptr + o ==/!=/- ptr + o'): New patterns.
+ 
+ 2023-11-27  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtin-types.def: Add/remove types.
+ 	* config/s390/s390-builtins.def
+ 	(s390_vclfnhs,s390_vclfnls,s390_vcrnfs,s390_vcfn,s390_vcnf):
+ 	Replace type V8HI with UV8HI.
+ 
+ 2023-11-27  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtins.def
+ 	(s390_vcefb,s390_vcdgb,s390_vcelfb,s390_vcdlgb,s390_vcfeb,s390_vcgdb,
+ 	s390_vclfeb,s390_vclgdb): Remove flags for non-existing operands
+ 	2 and 3.
+ 
+ 2023-11-27  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.md (*cmphi_ccu): For immediate operand 1 make
+ 	use of constraint n instead of D and chop of high bits in the
+ 	output template.
+ 
+ 2023-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112300
+ 	* config.gcc (mips*-sde-elf*): Append to tm_defines rather than
+ 	overwriting them.
+ 
+ 2023-11-27  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md
+ 	(mask_len_gather_load<RATIO1:mode><RATIO1:mode>):
+ 	Remove gather_scatter_valid_offset_mode_p.
+ 	(mask_len_gather_load<mode><mode>): Ditto.
+ 	(mask_len_scatter_store<RATIO1:mode><RATIO1:mode>): Ditto.
+ 	(mask_len_scatter_store<mode><mode>): Ditto.
+ 	* config/riscv/predicates.md (const_1_or_8_operand): New predicate.
+ 	(vector_gs_scale_operand_64): Remove.
+ 	* config/riscv/riscv-protos.h (gather_scatter_valid_offset_mode_p): Remove.
+ 	* config/riscv/riscv-v.cc (expand_gather_scatter): Refine code.
+ 	(gather_scatter_valid_offset_mode_p): Remove.
+ 	* config/riscv/vector-iterators.md: Fix iterator bugs.
+ 
+ 2023-11-27  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_ext_version_table): Set version to ratified 2.0.
+ 	(riscv_subset_list::parse_std_ext): Allow RV64E.
+ 	* config.gcc: Parse base ISA 'rv64e' and ABI 'lp64e'.
+ 	* config/riscv/arch-canonicalize: Parse base ISA 'rv64e'.
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
+ 	Define different macro per XLEN.  Add handling for ABI_LP64E.
+ 	* config/riscv/riscv-d.cc (riscv_d_handle_target_float_abi):
+ 	Add handling for ABI_LP64E.
+ 	* config/riscv/riscv-opts.h (enum riscv_abi_type): Add ABI_LP64E.
+ 	* config/riscv/riscv.cc (riscv_option_override): Enhance error
+ 	handling to support RV64E and LP64E.
+ 	(riscv_conditional_register_usage): Change "RV32E" in a comment
+ 	to "RV32E/RV64E".
+ 	* config/riscv/riscv.h
+ 	(UNITS_PER_FP_ARG): Add handling for ABI_LP64E.
+ 	(STACK_BOUNDARY): Ditto.
+ 	(ABI_STACK_BOUNDARY): Ditto.
+ 	(MAX_ARGS_IN_REGISTERS): Ditto.
+ 	(ABI_SPEC): Add support for "lp64e".
+ 	* config/riscv/riscv.opt: Parse -mabi=lp64e as ABI_LP64E.
+ 	* doc/invoke.texi: Add documentation of the LP64E ABI.
+ 
+ 2023-11-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf-helpers.h: Remove.
+ 	* config.gcc: Adapt accordingly.
+ 
+ 2023-11-27  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_split_plus_constant):
+ 	avoid left shift of negative value -0x8000.
+ 
+ 2023-11-27  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(enum loongarch_load_imm_method): Add new method.
+ 	(loongarch_build_integer): Add relevant implementations for
+ 	new method.
+ 	(loongarch_move_integer): Ditto.
+ 
+ 2023-11-26  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* sort.cc: Use 'sorting networks' in comments.
+ 
+ 2023-11-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112599
+ 	* config/riscv/riscv-avlprop.cc (avl_can_be_propagated_p): Add slidedown.
+ 	(vlmax_ta_p): Ditto.
+ 	(pass_avlprop::get_vlmax_ta_preferred_avl): Ditto.
+ 
+ 2023-11-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-avlprop.cc (alv_can_be_propagated_p): Fix typo.
+ 	(avl_can_be_propagated_p): Ditto.
+ 	(vlmax_ta_p): Ditto.
+ 
+ 2023-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR other/69374
+ 	* doc/install.texi (Downloading the source): Sort the list of
+ 	front ends and add D, Go, and Modula-2.
+ 
+ 2023-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <*-*-freebsd*>: Remove older
+ 	contents referencing GCC 4.x.
+ 
+ 2023-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/standards.texi (Standards): Update ISO C++ reference.
+ 
+ 2023-11-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/111408
+ 	* config/i386/i386.md (*jcc_bt<mode>_mask,
+ 	*jcc_bt<SWI48:mode>_mask_1): Add (const_int 0) as expected
+ 	second operand of bt_comparison_operator.
+ 
+ 2023-11-25  Andrew Pinski  <pinskia@gmail.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109977
+ 	* config/aarch64/aarch64-simd.md (aarch64_simd_stp<mode>): Use <vwcore>
+ 	rather than %<vw> for alternative with r constraint on input operand.
+ 
+ 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* doc/install.texi (amdgcn-*-amdhsa): Fix URL to ROCm;
+ 	change 'in the future' to 'in LLVM 18'.
+ 
+ 2023-11-24  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_emit_move_sequence): Use INT14_OK_STRICT
+ 	in a couple of places.
+ 
+ 2023-11-24  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR middle-end/109849
+ 	* tree-sra.cc (passed_by_ref_in_call): New.
+ 	(sra_initialize): Allocate passed_by_ref_in_call.
+ 	(sra_deinitialize): Free passed_by_ref_in_call.
+ 	(create_access): Add decl pool candidates only if they are not
+ 	already	candidates.
+ 	(build_access_from_expr_1): Bail out on ADDR_EXPRs.
+ 	(build_access_from_call_arg): New function.
+ 	(asm_visit_addr): Rename to scan_visit_addr, change the
+ 	disqualification dump message.
+ 	(scan_function): Check taken addresses for all non-call statements,
+ 	including phi nodes.  Process all call arguments, including the static
+ 	chain, build_access_from_call_arg.
+ 	(maybe_add_sra_candidate): Relax need_to_live_in_memory check to allow
+ 	non-escaped local variables.
+ 	(sort_and_splice_var_accesses): Disallow smaller-than-precision
+ 	replacements for aggregates passed by reference to functions.
+ 	(sra_modify_expr): Use a separate stmt iterator for adding satements
+ 	before the processed statement and after it.
+ 	(enum out_edge_check): New type.
+ 	(abnormal_edge_after_stmt_p): New function.
+ 	(sra_modify_call_arg): New function.
+ 	(sra_modify_assign): Adjust calls to sra_modify_expr.
+ 	(sra_modify_function_body): Likewise, use sra_modify_call_arg to
+ 	process call arguments, including the static chain.
+ 
+ 2023-11-24  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112686
+ 	* config/i386/i386.cc (ix86_expand_split_stack_prologue): Load
+ 	function address to a register for ix86_cmodel == CM_LARGE.
+ 
+ 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* doc/invoke.texi (-Wopenmp): Add.
+ 	* gimplify.cc (gimplify_omp_for): Add OPT_Wopenmp to warning_at.
+ 	* omp-expand.cc (expand_omp_ordered_sink): Likewise.
+ 	* omp-general.cc (omp_check_context_selector): Likewise.
+ 	* omp-low.cc (scan_omp_for, check_omp_nesting_restrictions,
+ 	lower_omp_ordered_clauses): Likewise.
+ 	* omp-simd-clone.cc (simd_clone_clauses_extract): Likewise.
+ 
+ 2023-11-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112694
+ 	* config/riscv/riscv-v.cc (preferred_simd_mode): Allow poly_int (1,1) vectors.
+ 
+ 2023-11-24  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Delete manual checks for old Valgrind headers.
+ 	* system.h (VALGRIND_MAKE_MEM_NOACCESS): Delete.
+ 	(VALGRIND_MAKE_MEM_DEFINED): Delete.
+ 	(VALGRIND_MAKE_MEM_UNDEFINED): Delete.
+ 	(VALGRIND_MALLOCLIKE_BLOCK): Delete.
+ 	(VALGRIND_FREELIKE_BLOCK): Delete.
+ 
+ 2023-11-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112681
+ 	* config/i386/i386-expand.cc (ix86_expand_branch): Use
+ 	ix86_expand_vector_logical_operator to expand vector XOR rather than
+ 	gen_rtx_SET on gen_rtx_XOR.
+ 
+ 2023-11-24  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* rtl-ssa/access-utils.h (filter_accesses): New.
+ 	(remove_regno_access): New.
+ 	(check_remove_regno_access): New.
+ 	* rtl-ssa/accesses.cc (rtl_ssa::remove_note_accesses_base): Use
+ 	new filter_accesses helper.
+ 
+ 2023-11-24  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* rtl-ssa/accesses.cc (function_info::create_set): New.
+ 	* rtl-ssa/accesses.h (access_info::is_temporary): New.
+ 	* rtl-ssa/changes.cc (move_insn): Handle new (temporary) insns.
+ 	(function_info::finalize_new_accesses): Handle new/temporary
+ 	user-created accesses.
+ 	(function_info::apply_changes_to_insn): Ensure m_is_temp flag
+ 	on new insns gets cleared.
+ 	(function_info::change_insns): Handle new/temporary insns.
+ 	(function_info::create_insn): New.
+ 	* rtl-ssa/changes.h (class insn_change): Make function_info a
+ 	friend class.
+ 	* rtl-ssa/functions.h (function_info): Declare new entry points:
+ 	create_set, create_insn.  Declare new change_alloc helper.
+ 	* rtl-ssa/insns.cc (insn_info::print_full): Identify temporary insns in
+ 	dump.
+ 	* rtl-ssa/insns.h (insn_info): Add new m_is_temp flag and accompanying
+ 	is_temporary accessor.
+ 	* rtl-ssa/internals.inl (insn_info::insn_info): Initialize m_is_temp to
+ 	false.
+ 	* rtl-ssa/member-fns.inl (function_info::change_alloc): New.
+ 	* rtl-ssa/movement.h (restrict_movement_for_defs_ignoring): Add
+ 	handling for temporary defs.
+ 
+ 2023-11-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112673
+ 	* match.pd (bit_field_ref (vce @0) -> bit_field_ref @0): Only simplify
+ 	if either @0 doesn't have scalar integral type or if it has mode
+ 	precision.
+ 
+ 2023-11-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112679
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Also stop first loop on
+ 	floating point SSA_NAME set in FLOAT_EXPR assignment from BITINT_TYPE
+ 	INTEGER_CST.  Set has_large_huge for those if that BITINT_TYPE is large
+ 	or huge.  Set kind to such FLOAT_EXPR assignment rhs1 BITINT_TYPE's kind.
+ 
+ 2023-11-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112677
+ 	* tree-vect-loop.cc (vectorizable_reduction): Use alloca
+ 	to allocate vectype_op.
+ 
+ 2023-11-24  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* expr.cc (by_pieces_ninsns): Include by pieces compare when
+ 	do the adjustment for overlap operations.  Replace mov_optab
+ 	checks with gcc assertion.
+ 
+ 2023-11-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112668
+ 	* gimple-iterator.h (gsi_end, gsi_end_bb): New inline functions.
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): After
+ 	temporarily adding statements after m_init_gsi, update m_init_gsi
+ 	such that later additions after it will be after the added statements.
+ 	(bitint_large_huge::handle_load): Likewise.  When splitting
+ 	gsi_bb (m_init_gsi) basic block, update m_preheader_bb if needed
+ 	and update saved m_gsi as well if needed.
+ 	(bitint_large_huge::lower_mergeable_stmt,
+ 	bitint_large_huge::lower_comparison_stmt,
+ 	bitint_large_huge::lower_mul_overflow,
+ 	bitint_large_huge::lower_bit_query): Use gsi_end_bb.
+ 
+ 2023-11-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/112619
+ 	* tree.cc (try_catch_may_fallthru): If second operand of
+ 	TRY_CATCH_EXPR is not a STATEMENT_LIST, handle it as if it was a
+ 	STATEMENT_LIST containing a single statement.
+ 
+ 2023-11-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112344
+ 	* tree-chrec.cc (chrec_apply): Only use an unsigned add
+ 	when the overall increment doesn't fit the signed type.
+ 
+ 2023-11-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112599
+ 	* config/riscv/riscv-v.cc (shuffle_extract_and_slide1up_patterns): New function.
+ 	(expand_vec_perm_const_1): Add new optimization.
+ 
+ 2023-11-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_bswap_pattern): Disable for NUNIT < 4.
+ 
+ 2023-11-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/112643
+ 	* config/i386/driver-i386.cc (check_avx10_avx512_features):
+ 	Renamed to ...
+ 	(check_avx512_features): this and remove avx10 check.
+ 	(host_detect_local_cpu): Never append -mno-avx10.1-{256,512} to
+ 	avoid emitting warnings when building GCC with native arch.
+ 	* config/i386/i386-builtin.def (BDESC): Add missing AVX512VL for
+ 	128/256 bit builtin for AVX512VP2INTERSECT.
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Also check whether the AVX512 flags is set when trying to reset.
+ 	* config/i386/i386.h
+ 	(PTA_SKYLAKE_AVX512): Add missing PTA_EVEX512.
+ 	(PTA_ZNVER4): Ditto.
+ 
+ 2023-11-23  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/86776
+ 	* config/avr/avr.cc (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define
+ 	to speculation_safe_value_not_needed.
+ 
+ 2023-11-23  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* common.opt (Whardened, fhardened): New options.
+ 	* config.in: Regenerate.
+ 	* config/bpf/bpf.cc: Include "opts.h".
+ 	(bpf_option_override): If flag_stack_protector_set_by_fhardened_p, do
+ 	not inform that -fstack-protector does not work.
+ 	* config/i386/i386-options.cc (ix86_option_override_internal): When
+ 	-fhardened, maybe enable -fcf-protection=full.
+ 	* config/linux-protos.h (linux_fortify_source_default_level): Declare.
+ 	* config/linux.cc (linux_fortify_source_default_level): New.
+ 	* config/linux.h (TARGET_FORTIFY_SOURCE_DEFAULT_LEVEL): Redefine.
+ 	* configure: Regenerate.
+ 	* configure.ac: Check if the linker supports '-z now' and '-z relro'.
+ 	Check if -fhardened is supported on $target_os.
+ 	* doc/invoke.texi: Document -fhardened and -Whardened.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in (TARGET_FORTIFY_SOURCE_DEFAULT_LEVEL): Add.
+ 	* gcc.cc (driver_handle_option): Remember if any link options or -static
+ 	were specified on the command line.
+ 	(process_command): When -fhardened, maybe enable -pie and
+ 	-Wl,-z,relro,-z,now.
+ 	* opts.cc (flag_stack_protector_set_by_fhardened_p): New global.
+ 	(finish_options): When -fhardened, enable
+ 	-ftrivial-auto-var-init=zero and -fstack-protector-strong.
+ 	(print_help_hardened): New.
+ 	(print_help): Call it.
+ 	* opts.h (flag_stack_protector_set_by_fhardened_p): Declare.
+ 	* target.def (fortify_source_default_level): New target hook.
+ 	* targhooks.cc (default_fortify_source_default_level): New.
+ 	* targhooks.h (default_fortify_source_default_level): Declare.
+ 	* toplev.cc (process_options): When -fhardened, enable
+ 	-fstack-clash-protection.  If flag_stack_protector_set_by_fhardened_p,
+ 	do not warn that -fstack-protector not supported for this target.
+ 	Don't enable -fhardened when !HAVE_FHARDENED_SUPPORT.
+ 
+ 2023-11-23  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h
+ 	(full_width_access::memory_vector_mode): Add default clause.
+ 
+ 2023-11-23  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112672
+ 	* config/i386/i386.md (parityhi2):
+ 	Use temporary register in the call to gen_parityhi2_cmp.
+ 
+ 2023-11-23  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/89316
+ 	* config/i386/i386.cc (ix86_expand_split_stack_prologue): Obtain
+ 	scratch regno when flag_force_indirect_call is set.  On 64-bit
+ 	targets, call __morestack_large_model when  flag_force_indirect_call
+ 	is set and on 32-bit targets with -fpic, manually expand PIC sequence
+ 	to call __morestack.  Move the function address to an indirect
+ 	call scratch register.
+ 
+ 2023-11-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	PR tree-optimization/112678
+ 	* tree-profile.cc (tree_profiling): Do not use atomic operations
+ 	for -fprofile-update=single.
+ 
+ 2023-11-23  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390-c.cc (s390_cpu_cpp_builtins): Define
+ 	__GCC_ASM_FLAG_OUTPUTS__.
+ 	* config/s390/s390.cc (s390_canonicalize_comparison): More
+ 	UNSPEC_CC_TO_INT cases.
+ 	(s390_md_asm_adjust): Implement flags output.
+ 	* config/s390/s390.md (ccstore4): Allow mask operands.
+ 	* doc/extend.texi: Document flags output.
+ 
+ 2023-11-23  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.md: Split TImode loads.
+ 
+ 2023-11-23  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/vector.md: (*vec_extract) Fix.
+ 
+ 2023-11-23  Di Zhao  <dizhao@os.amperecomputing.com>
+ 
+ 	* tree-ssa-reassoc.cc (get_reassociation_width): check
+ 	for loop dependent FMAs.
+ 	(reassociate_bb): For 3 ops, refine the condition to call
+ 	swap_ops_for_binary_stmt.
+ 
+ 2023-11-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (emit_vec_extract): New function.
+ 	* config/riscv/riscv-v.cc (emit_vec_extract): Ditto.
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Refine codes.
+ 
+ 2023-11-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112599
+ 	PR target/112670
+ 	* config/riscv/riscv-avlprop.cc (alv_can_be_propagated_p): New function.
+ 	(vlmax_ta_p): Disable vrgather AVL propagation.
+ 
+ 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112336
+ 	* expr.cc (EXTEND_BITINT): Don't call reduce_to_bit_field_precision
+ 	if modifier is EXPAND_INITIALIZER.
+ 
+ 2023-11-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (emit_vlmax_gather_insn): Refine codes.
+ 	(emit_vlmax_masked_gather_mu_insn): Ditto.
+ 	(modulo_sel_indices): Ditto.
+ 	(expand_vec_perm): Ditto.
+ 	(shuffle_generic_patterns): Ditto.
+ 
+ 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/extend.texi (__builtin_stdc_bit_ceil, __builtin_stdc_bit_floor,
+ 	__builtin_stdc_bit_width, __builtin_stdc_count_ones,
+ 	__builtin_stdc_count_zeros, __builtin_stdc_first_leading_one,
+ 	__builtin_stdc_first_leading_zero, __builtin_stdc_first_trailing_one,
+ 	__builtin_stdc_first_trailing_zero, __builtin_stdc_has_single_bit,
+ 	__builtin_stdc_leading_ones, __builtin_stdc_leading_zeros,
+ 	__builtin_stdc_trailing_ones, __builtin_stdc_trailing_zeros): Document.
+ 
+ 2023-11-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/32667
+ 	* doc/md.texi (cpymem): Document that exact overlap of source
+ 	and destination needs to work.
+ 	* doc/standards.texi (ffreestanding): Mention memcpy is required
+ 	to handle the exact overlap case.
+ 
+ 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/110348
+ 	* doc/invoke.texi (-Wno-c++26-extensions): Document.
+ 
+ 2023-11-23  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* ifcvt.cc (noce_convert_multiple_sets_1): Remove old code.
+ 
+ 2023-11-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/111720
+ 	* dse.cc (get_stored_val): Allow vector mode if read size is
+ 	less than or equal to stored size.
+ 
+ 2023-11-23  Costas Argyris  <costas.argyris@gmail.com>
+ 
+ 	* configure.ac: Handle new --enable-win32-utf8-manifest
+ 	option.
+ 	* config.host: allow win32 utf8 manifest to be disabled
+ 	by user.
+ 	* configure: Regenerate.
+ 
+ 2023-11-22  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/112592
+ 	* config/pa/pa.h (MAX_FIXED_MODE_SIZE): Define.
+ 
+ 2023-11-22  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/112617
+ 	* config/pa/predicates.md (integer_store_memory_operand): Return
+ 	true for REG+D addresses when reload_in_progress is true.
+ 
+ 2023-11-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112344
+ 	* tree-chrec.cc (chrec_apply): Perform the overall increment
+ 	calculation and increment in an unsigned type.
+ 
+ 2023-11-22  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (*mov<mode>_4reg): Disparage AVGPR use when a
+ 	reload is required.
+ 
+ 2023-11-22  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/112610
+ 	* ira-costs.cc: (find_costs_and_classes): Remove arg.
+ 	Use ira_dump_file for printing.
+ 	(print_allocno_costs, print_pseudo_costs): Ditto.
+ 	(ira_costs): Adjust call of find_costs_and_classes.
+ 	(ira_set_pseudo_classes): Set up and restore ira_dump_file.
+ 
+ 2023-11-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112598
+ 	* config/riscv/riscv-v.cc (shuffle_compress_patterns): Fix vcompress bug.
+ 
+ 2023-11-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(aarch64_uaddw<mode>_<PERM_EXTEND:perm_hilo>_zip,
+ 	aarch64_usubw<mode>_<PERM_EXTEND:perm_hilo>_zip): Split into...
+ 	(aarch64_uaddw<mode>_lo_zip, aarch64_uaddw<mode>_hi_zip,
+ 	"aarch64_usubw<mode>_lo_zip, "aarch64_usubw<mode>_hi_zip): ... This.
+ 	* config/aarch64/iterators.md (PERM_EXTEND, perm_index): Remove.
+ 	(perm_hilo): Remove UNSPEC_ZIP1, UNSPEC_ZIP2.
+ 
+ 2023-11-22  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_resolver::infer_pointer_type): Remove spurious line.
+ 
+ 2023-11-22  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/lsx.md (vec_perm<mode:LSX>): Make the
+ 	selector VIMODE.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_perm):
+ 	Use the mode of the selector (instead of the shuffled vector)
+ 	for truncating it.  Operate on subregs in the selector mode if
+ 	the shuffled vector has a different mode (i. e. it's a
+ 	floating-point vector).
+ 
+ 2023-11-22  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (push2_di): Adjust operand order for AT&T
+ 	syntax.
+ 	(pop2_di): Likewise.
+ 	(push2p_di): Likewise.
+ 	(pop2p_di): Likewise.
+ 
+ 2023-11-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112598
+ 	* config/riscv/riscv-v.cc (emit_vlmax_gather_insn): Adapt the priority.
+ 	(shuffle_generic_patterns): Fix permutation indice bug.
+ 	* config/riscv/vector-iterators.md: Fix VEI16 bug.
+ 
+ 2023-11-22  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (cbranch<mode>4): Extend to Vector
+ 	HI/QImode.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	PR target/111815
+ 	* config/vax/vax.cc (index_term_p): Only accept the index scaler
+ 	as the RHS operand to ASHIFT.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/predicates.md (order_operator): Remove predicate.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Update accordingly.
+ 	* config/riscv/riscv.md (*branch<mode>, *mov<GPR:mode><X:mode>cc)
+ 	(cstore<mode>4): Likewise.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_expand_float_scc): Add
+ 	`invert_ptr' parameter.
+ 	* config/riscv/riscv.cc (riscv_emit_float_compare): Add NE
+ 	inversion handling.
+ 	(riscv_expand_float_scc): Pass `invert_ptr' through to
+ 	`riscv_emit_float_compare'.
+ 	(riscv_expand_conditional_move): Pass `&invert' to
+ 	`riscv_expand_float_scc'.
+ 	* config/riscv/riscv.md (add<mode>cc): Likewise.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_emit_float_compare) <NE>: Handle
+ 	separately.
+ 	<EQ, LE, LT, GE, GT>: Return operands supplied as is.
+ 	(riscv_emit_binary): Call `riscv_emit_binary' directly rather
+ 	than going through a temporary register for word-mode targets.
+ 	(riscv_expand_conditional_branch): Canonicalize the comparison
+ 	if not against constant zero.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/predicates.md (ne_operator): New predicate.
+ 	* config/riscv/riscv.cc (riscv_insn_cost): Handle branches on a
+ 	floating-point condition.
+ 	* config/riscv/riscv.md (@cbranch<mode>4): Rename expander to...
+ 	(@cbranch<ANYF:mode>4): ... this.  Only expand the RTX via
+ 	`riscv_expand_conditional_branch' for `!signed_order_operator'
+ 	operators, otherwise let it through.
+ 	(*cbranch<ANYF:mode>4, *cbranch<ANYF:mode>4): New insns and
+ 	splitters.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Don't
+ 	bail out in floating-point conditions.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_float_scc): Suppress the
+ 	use of SUBREG if the conditional-set target is word-mode.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.md (add<mode>cc): New expander.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/predicates.md (movcc_operand): New predicate.
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Handle
+ 	generic targets.
+ 	* config/riscv/riscv.md (mov<mode>cc): Likewise.
+ 	* config/riscv/riscv.opt (mmovcc): New option.
+ 	* doc/invoke.texi (Option Summary): Document it.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_emit_unary): New prototype.
+ 	* config/riscv/riscv.cc (riscv_emit_unary): New function.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Unify
+ 	conditional-move handling across all the relevant targets.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Also
+ 	accept constants for T-Head data input operands.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Also
+ 	accept constants for T-Head comparison operands.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Remove
+ 	the check for operand 1 being constant 0 in the Ventana/Zicond
+ 	case for equality comparisons.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Also
+ 	invert the condition for GEU and LEU.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_insn_cost): New function.
+ 	(riscv_max_noce_ifcvt_seq_cost): Likewise.
+ 	(riscv_noce_conversion_profitable_p): Likewise.
+ 	(TARGET_INSN_COST): New macro.
+ 	(TARGET_MAX_NOCE_IFCVT_SEQ_COST): New macro.
+ 	(TARGET_NOCE_CONVERSION_PROFITABLE_P): New macro.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Remove
+ 	extraneous variable for EQ vs NE operation selection.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use
+ 	`nullptr' rather than 0 to initialize a pointer.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use
+ 	`mode0' and `mode1' for `GET_MODE (op0)' and `GET_MODE (op1)'.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use
+ 	`mode' for `GET_MODE (dest)' throughout.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_emit_int_compare): Bail out if
+ 	NEED_EQ_NE_P but the comparison is neither EQ nor NE.
+ 
+ 2023-11-22  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.md (mov<mode>cc): Move comment on SFB
+ 	patterns over to...
+ 	(*mov<GPR:mode><X:mode>cc): ... here.
+ 
+ 2023-11-21  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/112406
+ 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Allow
+ 	reduction index != 1.
+ 	(vect_transform_reduction): Handle reduction index != 1.
+ 
+ 2023-11-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* common.md (aligned_register_operand): New predicate.
+ 
+ 2023-11-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* ira-int.h (ira_allocno): Add a register_filters field.
+ 	(ALLOCNO_REGISTER_FILTERS): New macro.
+ 	(ALLOCNO_SET_REGISTER_FILTERS): Likewise.
+ 	* ira-build.cc (ira_create_allocno): Initialize register_filters.
+ 	(create_cap_allocno): Propagate register_filters.
+ 	(propagate_allocno_info): Likewise.
+ 	(propagate_some_info_from_allocno): Likewise.
+ 	* ira-lives.cc (process_register_constraint_filters): New function.
+ 	(process_bb_node_lives): Use it to record register filter
+ 	information.
+ 	* ira-color.cc (assign_hard_reg): Check register filters.
+ 	(improve_allocation, fast_allocation): Likewise.
+ 
+ 2023-11-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* lra-constraints.cc (process_alt_operands): Check register filters.
+ 
+ 2023-11-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* recog.h (operand_alternative): Add a register_filters field.
+ 	(alternative_register_filters): New function.
+ 	* recog.cc (preprocess_constraints): Calculate the filters field.
+ 	(constrain_operands): Check register filters.
+ 
+ 2023-11-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl.def (DEFINE_REGISTER_CONSTRAINT): Add an optional filter
+ 	operand.
+ 	* doc/md.texi (define_register_constraint): Document it.
+ 	* doc/tm.texi.in: Reference it in discussion about aligned registers.
+ 	* doc/tm.texi: Regenerate.
+ 	* gensupport.h (register_filters, get_register_filter_id): Declare.
+ 	* gensupport.cc (register_filter_map, register_filters): New variables.
+ 	(get_register_filter_id): New function.
+ 	(process_define_register_constraint): Likewise.
+ 	(process_rtx): Pass define_register_constraints to
+ 	process_define_register_constraint.
+ 	* genconfig.cc (main): Emit a definition of NUM_REGISTER_FILTERS.
+ 	* genpreds.cc (constraint_data): Add a filter field.
+ 	(add_constraint): Update accordingly.
+ 	(process_define_register_constraint): Pass the filter operand.
+ 	(write_init_reg_class_start_regs): New function.
+ 	(write_get_register_filter): Likewise.
+ 	(write_get_register_filter_id): Likewise.
+ 	(write_tm_preds_h): Write a definition of target_constraints,
+ 	plus helpers to test its contents.  Write the get_register_filter*
+ 	functions.
+ 	(write_insn_preds_c): Write init_reg_class_start_regs.
+ 	* reginfo.cc (init_reg_class_start_regs): Declare.
+ 	(init_reg_sets): Call it.
+ 	* target-globals.h (this_target_constraints): Declare.
+ 	(target_globals): Add a constraints field.
+ 	(restore_target_globals): Update accordingly.
+ 	* target-globals.cc: Include tm_p.h.
+ 	(default_target_globals): Initialize the constraints field.
+ 	(save_target_globals): Handle the constraints field.
+ 	(target_globals::~target_globals): Likewise.
+ 
+ 2023-11-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112623
+ 	* tree-ssa-forwprop.cc (simplify_vector_constructor):
+ 	Check the source mode of the insn for vector pack/unpacks.
+ 
+ 2023-11-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Move check
+ 	of VF against max_vf until VF is final.
+ 
+ 2023-11-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112598
+ 	* config/riscv/riscv.cc (riscv_const_insns): Disallow DI CONST_VECTOR on RV32.
+ 
+ 2023-11-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_override_options): Rework warnings.
+ 
+ 2023-11-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/111370
+ 	* config/aarch64/aarch64-arches.def (armv9-a, armv9.1-a, armv9.2-a,
+ 	armv9.3-a): Update to generic-armv9-a.
+ 	* config/aarch64/aarch64-cores.def (generic-armv9-a): New.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* config/aarch64/aarch64.cc: Include generic_armv9_a.h.
+ 	* config/aarch64/tuning_models/generic_armv9_a.h: New file.
+ 
+ 2023-11-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/111370
+ 	* config/aarch64/aarch64-arches.def (armv8-9, armv8-a, armv8.1-a,
+ 	armv8.2-a, armv8.3-a, armv8.4-a, armv8.5-a, armv8.6-a, armv8.7-a,
+ 	armv8.8-a): Update to generic_armv8_a.
+ 	* config/aarch64/aarch64-cores.def (generic-armv8-a): New.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* config/aarch64/aarch64.cc: Include generic_armv8_a.h
+ 	* config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Change to
+ 	TARGET_CPU_generic_armv8_a.
+ 	* config/aarch64/tuning_models/generic_armv8_a.h: New file.
+ 
+ 2023-11-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/111370
+ 	* config/aarch64/aarch64-cores.def: Add generic.
+ 	* config/aarch64/aarch64-opts.h (enum aarch64_proc): Remove generic.
+ 	* config/aarch64/aarch64-tune.md: Regenerate
+ 	* config/aarch64/aarch64.cc (all_cores): Remove generic
+ 	* config/aarch64/aarch64.h (enum target_cpus): Remove
+ 	TARGET_CPU_generic.
+ 
+ 2023-11-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/111370
+ 	* config/aarch64/aarch64.cc (generic_addrcost_table,
+ 	exynosm1_addrcost_table,
+ 	xgene1_addrcost_table,
+ 	thunderx2t99_addrcost_table,
+ 	thunderx3t110_addrcost_table,
+ 	tsv110_addrcost_table,
+ 	qdf24xx_addrcost_table,
+ 	a64fx_addrcost_table,
+ 	neoversev1_addrcost_table,
+ 	neoversen2_addrcost_table,
+ 	neoversev2_addrcost_table,
+ 	generic_regmove_cost,
+ 	cortexa57_regmove_cost,
+ 	cortexa53_regmove_cost,
+ 	exynosm1_regmove_cost,
+ 	thunderx_regmove_cost,
+ 	xgene1_regmove_cost,
+ 	qdf24xx_regmove_cost,
+ 	thunderx2t99_regmove_cost,
+ 	thunderx3t110_regmove_cost,
+ 	tsv110_regmove_cost,
+ 	a64fx_regmove_cost,
+ 	neoversen2_regmove_cost,
+ 	neoversev1_regmove_cost,
+ 	neoversev2_regmove_cost,
+ 	generic_vector_cost,
+ 	a64fx_vector_cost,
+ 	qdf24xx_vector_cost,
+ 	thunderx_vector_cost,
+ 	tsv110_vector_cost,
+ 	cortexa57_vector_cost,
+ 	exynosm1_vector_cost,
+ 	xgene1_vector_cost,
+ 	thunderx2t99_vector_cost,
+ 	thunderx3t110_vector_cost,
+ 	ampere1_vector_cost,
+ 	generic_branch_cost,
+ 	generic_tunings,
+ 	cortexa35_tunings,
+ 	cortexa53_tunings,
+ 	cortexa57_tunings,
+ 	cortexa72_tunings,
+ 	cortexa73_tunings,
+ 	exynosm1_tunings,
+ 	thunderxt88_tunings,
+ 	thunderx_tunings,
+ 	tsv110_tunings,
+ 	xgene1_tunings,
+ 	emag_tunings,
+ 	qdf24xx_tunings,
+ 	saphira_tunings,
+ 	thunderx2t99_tunings,
+ 	thunderx3t110_tunings,
+ 	neoversen1_tunings,
+ 	ampere1_tunings,
+ 	ampere1a_tunings,
+ 	neoversev1_vector_cost,
+ 	neoversev1_tunings,
+ 	neoverse512tvb_vector_cost,
+ 	neoverse512tvb_tunings,
+ 	neoversen2_vector_cost,
+ 	neoversen2_tunings,
+ 	neoversev2_vector_cost,
+ 	neoversev2_tunings
+ 	a64fx_tunings): Split into own files.
+ 	* config/aarch64/tuning_models/a64fx.h: New file.
+ 	* config/aarch64/tuning_models/ampere1.h: New file.
+ 	* config/aarch64/tuning_models/ampere1a.h: New file.
+ 	* config/aarch64/tuning_models/cortexa35.h: New file.
+ 	* config/aarch64/tuning_models/cortexa53.h: New file.
+ 	* config/aarch64/tuning_models/cortexa57.h: New file.
+ 	* config/aarch64/tuning_models/cortexa72.h: New file.
+ 	* config/aarch64/tuning_models/cortexa73.h: New file.
+ 	* config/aarch64/tuning_models/emag.h: New file.
+ 	* config/aarch64/tuning_models/exynosm1.h: New file.
+ 	* config/aarch64/tuning_models/generic.h: New file.
+ 	* config/aarch64/tuning_models/neoverse512tvb.h: New file.
+ 	* config/aarch64/tuning_models/neoversen1.h: New file.
+ 	* config/aarch64/tuning_models/neoversen2.h: New file.
+ 	* config/aarch64/tuning_models/neoversev1.h: New file.
+ 	* config/aarch64/tuning_models/neoversev2.h: New file.
+ 	* config/aarch64/tuning_models/qdf24xx.h: New file.
+ 	* config/aarch64/tuning_models/saphira.h: New file.
+ 	* config/aarch64/tuning_models/thunderx.h: New file.
+ 	* config/aarch64/tuning_models/thunderx2t99.h: New file.
+ 	* config/aarch64/tuning_models/thunderx3t110.h: New file.
+ 	* config/aarch64/tuning_models/thunderxt88.h: New file.
+ 	* config/aarch64/tuning_models/tsv110.h: New file.
+ 	* config/aarch64/tuning_models/xgene1.h: New file.
+ 
+ 2023-11-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (vec_unpack<su>_lo_<mode,
+ 	vec_unpack<su>_lo_<mode): Split into...
+ 	(vec_unpacku_lo_<mode, vec_unpacks_lo_<mode,
+ 	vec_unpacku_lo_<mode, vec_unpacks_lo_<mode): ...These.
+ 	(aarch64_usubw<mode>_<PERM_EXTEND:perm_hilo>_zip): New.
+ 	(aarch64_uaddw<mode>_<PERM_EXTEND:perm_hilo>_zip): New.
+ 	* config/aarch64/iterators.md (PERM_EXTEND, perm_index): New.
+ 	(perm_hilo): Add UNSPEC_ZIP1, UNSPEC_ZIP2.
+ 
+ 2023-11-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_adjust_stmt_cost): Guard mla.
+ 	(aarch64_vector_costs::count_ops): Likewise.
+ 
+ 2023-11-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	PR middle-end/112634
+ 	* tree-profile.cc (gen_assign_counter_update): Cast the unsigned result type of
+ 	__atomic_add_fetch() to the signed counter type.
+ 	(gen_counter_update): Fix formatting.
+ 
+ 2023-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-profile.cc (gen_counter_update, tree_profiling): Formatting
+ 	fixes.
+ 
+ 2023-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112639
+ 	* builtins.cc (fold_builtin_bit_query): If arg0 has side-effects, arg1
+ 	is specified but cleared, call save_expr on arg0.
+ 
+ 2023-11-21  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386-expand.h (gen_push): Add default bool
+ 	parameter.
+ 	(gen_pop): Likewise.
+ 	* config/i386/i386-opts.h (enum apx_features): Add apx_ppx, add
+ 	it to apx_all.
+ 	* config/i386/i386.cc (ix86_emit_restore_reg_using_pop): Add
+ 	ppx_p parameter for function declaration.
+ 	(gen_push2): Add ppx_p parameter, emit push2p if ppx_p is true.
+ 	(gen_push): Likewise.
+ 	(ix86_emit_restore_reg_using_pop2): Likewise for pop2p.
+ 	(ix86_emit_save_regs): Emit pushp/push2p under TARGET_APX_PPX.
+ 	(ix86_emit_restore_reg_using_pop): Add ppx_p, emit popp insn
+ 	and adjust cfi when ppx_p is ture.
+ 	(ix86_emit_restore_reg_using_pop2): Add ppx_p and parse to its
+ 	callee.
+ 	(ix86_emit_restore_regs_using_pop2): Likewise.
+ 	(ix86_expand_epilogue): Parse TARGET_APX_PPX to
+ 	ix86_emit_restore_reg_using_pop.
+ 	* config/i386/i386.h (TARGET_APX_PPX): New.
+ 	* config/i386/i386.md (UNSPEC_APX_PPX): New unspec.
+ 	(pushp_di): New define_insn.
+ 	(popp_di): Likewise.
+ 	(push2p_di): Likewise.
+ 	(pop2p_di): Likewise.
+ 	* config/i386/i386.opt: Add apx_ppx enum.
+ 
+ 2023-11-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111970
+ 	* tree-vect-stmts.cc (vectorizable_load): Fix offset calculation
+ 	for SLP gather load.
+ 	(vectorizable_store): Likewise for SLP scatter store.
+ 
+ 2023-11-21  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-def.h (stdint.h): Guard with #if to
+ 	exclude it for target libraries.
+ 	(loongarch_isa_base_features): Likewise.
+ 	(loongarch_isa): Likewise.
+ 	(loongarch_abi): Likewise.
+ 	(loongarch_target): Likewise.
+ 	(loongarch_cpu_default_isa): Likewise.
+ 
+ 2023-11-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112325
+ 	* config/i386/i386-expand.cc (emit_reduc_half): Hanlde
+ 	V8QImode.
+ 	* config/i386/mmx.md (reduc_<code>_scal_<mode>): New expander.
+ 	(reduc_<code>_scal_v4qi): Ditto.
+ 
+ 2023-11-20  Marc Poulhiès  <dkm@kataplop.net>
+ 
+ 	* config/nvptx/nvptx.h (struct machine_function): Fix typo in variadic.
+ 	* config/nvptx/nvptx.cc (nvptx_function_arg_advance): Adjust to use fixed name.
+ 	(nvptx_declare_function_name): Likewise.
+ 	(nvptx_call_args): Likewise.
+ 	(nvptx_expand_call): Likewise.
+ 
+ 2023-11-20  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* tree-profile.cc (gen_counter_update): Use unshare_expr() for the
+ 	counter expression in the second gimple_build_assign().
+ 
+ 2023-11-20  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cgraph.cc (add_detected_attribute_1): New function.
+ 	(cgraph_node::add_detected_attribute): Likewise.
+ 	* cgraph.h (cgraph_node::add_detected_attribute): Declare.
+ 	* common.opt: Add -Wsuggest-attribute=returns_nonnull.
+ 	* doc/invoke.texi: Document new flag.
+ 	* gimple-range-fold.cc (fold_using_range::range_of_call):
+ 	Use known reutrn value ranges.
+ 	* ipa-prop.cc (struct ipa_return_value_summary): New type.
+ 	(class ipa_return_value_sum_t): New type.
+ 	(ipa_return_value_sum): New summary.
+ 	(ipa_record_return_value_range): New function.
+ 	(ipa_return_value_range): New function.
+ 	* ipa-prop.h (ipa_return_value_range): Declare.
+ 	(ipa_record_return_value_range): Declare.
+ 	* ipa-pure-const.cc (warn_function_returns_nonnull): New funcion.
+ 	* ipa-utils.h (warn_function_returns_nonnull): Declare.
+ 	* symbol-summary.h: Fix comment.
+ 	* tree-vrp.cc (execute_ranger_vrp): Record return values.
+ 
+ 2023-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112618
+ 	* tree-vect-loop.cc (vect_transform_loop_stmt): For not
+ 	relevant and unused .MASK_CALL make sure we remove the
+ 	scalar stmt.
+ 
+ 2023-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112281
+ 	* tree-loop-distribution.cc
+ 	(loop_distribution::pg_add_dependence_edges): For = in the
+ 	innermost common loop record a partition conflict.
+ 
+ 2023-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112622
+ 	* convert.cc (convert_to_real_1): Use element_precision
+ 	where a vector type might appear.  Provide specific
+ 	diagnostic for unexpected vector argument.
+ 
+ 2023-11-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112597
+ 	* config/riscv/vector-iterators.md: Remove VDEMOTE and VMDEMOTE.
+ 	* config/riscv/vector.md: Fix slide1 intermediate mode bug.
+ 
+ 2023-11-20  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (gather_scatter_valid_offset_mode_p):
+ 	Add check for XLEN == 32.
+ 	* config/riscv/vector-iterators.md: Change VLS part of the
+ 	demote iterator to 2x elements modes
+ 	* config/riscv/vector.md: Adjust iterators and insn conditions.
+ 
+ 2023-11-20  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vld1_impl, vld1q)
+ 	(vst1_impl, vst1q): New.
+ 	* config/arm/arm-mve-builtins-base.def (vld1q, vst1q): New.
+ 	* config/arm/arm-mve-builtins-base.h (vld1q, vst1q): New.
+ 	* config/arm/arm_mve.h
+ 	(vld1q): Delete.
+ 	(vst1q): Delete.
+ 	(vld1q_s8): Delete.
+ 	(vld1q_s32): Delete.
+ 	(vld1q_s16): Delete.
+ 	(vld1q_u8): Delete.
+ 	(vld1q_u32): Delete.
+ 	(vld1q_u16): Delete.
+ 	(vld1q_f32): Delete.
+ 	(vld1q_f16): Delete.
+ 	(vst1q_f32): Delete.
+ 	(vst1q_f16): Delete.
+ 	(vst1q_s8): Delete.
+ 	(vst1q_s32): Delete.
+ 	(vst1q_s16): Delete.
+ 	(vst1q_u8): Delete.
+ 	(vst1q_u32): Delete.
+ 	(vst1q_u16): Delete.
+ 	(__arm_vld1q_s8): Delete.
+ 	(__arm_vld1q_s32): Delete.
+ 	(__arm_vld1q_s16): Delete.
+ 	(__arm_vld1q_u8): Delete.
+ 	(__arm_vld1q_u32): Delete.
+ 	(__arm_vld1q_u16): Delete.
+ 	(__arm_vst1q_s8): Delete.
+ 	(__arm_vst1q_s32): Delete.
+ 	(__arm_vst1q_s16): Delete.
+ 	(__arm_vst1q_u8): Delete.
+ 	(__arm_vst1q_u32): Delete.
+ 	(__arm_vst1q_u16): Delete.
+ 	(__arm_vld1q_f32): Delete.
+ 	(__arm_vld1q_f16): Delete.
+ 	(__arm_vst1q_f32): Delete.
+ 	(__arm_vst1q_f16): Delete.
+ 	(__arm_vld1q): Delete.
+ 	(__arm_vst1q): Delete.
+ 	* config/arm/mve.md (mve_vld1q_f<mode>): Rename into ...
+ 	(@mve_vld1q_f<mode>): ... this.
+ 	(mve_vld1q_<supf><mode>): Rename into ...
+ 	(@mve_vld1q_<supf><mode>) ... this.
+ 	(mve_vst1q_f<mode>): Rename into ...
+ 	(@mve_vst1q_f<mode>): ... this.
+ 	(mve_vst1q_<supf><mode>): Rename into ...
+ 	(@mve_vst1q_<supf><mode>) ... this.
+ 
+ 2023-11-20  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (load, store): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (load, store): New.
+ 
+ 2023-11-20  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h (multi_vector_function)
+ 	(full_width_access): New classes.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(find_type_suffix_for_scalar_type, infer_pointer_type)
+ 	(require_pointer_type, get_contiguous_base, add_mem_operand)
+ 	(add_fixed_operand, use_contiguous_load_insn)
+ 	(use_contiguous_store_insn): New.
+ 	* config/arm/arm-mve-builtins.h (memory_vector_mode)
+ 	(infer_pointer_type, require_pointer_type, get_contiguous_base)
+ 	(add_mem_operand)
+ 	(add_fixed_operand, use_contiguous_load_insn)
+ 	(use_contiguous_store_insn): New.
+ 
+ 2023-11-20  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (build_const_pointer):
+ 	New.
+ 	(parse_type): Add support for '_', 'al' and 'as'.
+ 	* config/arm/arm-mve-builtins.h (function_instance): Add
+ 	memory_scalar_type.
+ 	(function_base): Likewise.
+ 
+ 2023-11-20  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Fix
+ 	initialization of arm_simd_types[].eltype.
+ 	* config/arm/arm-mve-builtins.def (DEF_MVE_TYPE): Fix scalar
+ 	types.
+ 
+ 2023-11-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* typeclass.h (enum type_class): Add vector_type_class.
+ 	* builtins.cc (type_to_class): Return vector_type_class for
+ 	VECTOR_TYPE.
+ 	* doc/extend.texi (__builtin_classify_type): Mention bit-precise
+ 	integer types and vector types.
+ 
+ 2023-11-20  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/112406
+ 	* tree-vect-patterns.cc (vect_recog_mask_conversion_pattern):
+ 	Convert masks for conditional operations as well.
+ 
+ 2023-11-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/90693
+ 	* tree-ssa-math-opts.cc (match_single_bit_test): Mark POPCOUNT with
+ 	result only used in equality comparison against 1 with direct optab
+ 	support as .POPCOUNT call with 2 arguments.
+ 	* internal-fn.h (expand_POPCOUNT): Declare.
+ 	* internal-fn.def (DEF_INTERNAL_INT_EXT_FN): New macro, document it,
+ 	undefine at the end.
+ 	(POPCOUNT): Use it instead of DEF_INTERNAL_INT_FN.
+ 	* internal-fn.cc (DEF_INTERNAL_INT_EXT_FN): Define to nothing before
+ 	inclusion to define expanders.
+ 	(expand_POPCOUNT): New function.
+ 
+ 2023-11-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/90693
+ 	* tree-ssa-math-opts.cc (match_single_bit_test): New function.
+ 	(math_opts_dom_walker::after_dom_children): Call it for EQ_EXPR
+ 	and NE_EXPR assignments and GIMPLE_CONDs.
+ 
+ 2023-11-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* internal-fn.def: Document missing DEF_INTERNAL* macros and make sure
+ 	they are all undefined at the end.
+ 	* internal-fn.cc (lookup_hilo_internal_fn, lookup_evenodd_internal_fn,
+ 	widening_fn_p, get_len_internal_fn): Don't undef DEF_INTERNAL_*FN
+ 	macros after inclusion of internal-fn.def.
+ 
+ 2023-11-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Add avx10_set and version and detect avx10.1.
+ 	(cpu_indicator_init): Handle avx10.1-512.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AVX10_1_256_SET): New.
+ 	(OPTION_MASK_ISA2_AVX10_1_256_SET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX10_1_512_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX10_1_512_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX2_UNSET): Modify for AVX10.1.
+ 	(ix86_handle_option): Handle -mavx10.1-256 and -mavx10.1-512.
+ 	Add indicator for explicit no-avx512 and no-avx10.1 options.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AVX10_1_256 and FEATURE_AVX10_1_512.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	AVX10_1_256 and AVX10_1_512.
+ 	* config/i386/cpuid.h (bit_AVX10): New.
+ 	(bit_AVX10_256): Ditto.
+ 	(bit_AVX10_512): Ditto.
+ 	* config/i386/driver-i386.cc (check_avx10_avx512_features): New.
+ 	(host_detect_local_cpu): Do not append "-mno-" options under
+ 	specific scenarios to avoid emitting a warning.
+ 	* config/i386/i386-isa.def
+ 	(EVEX512): Add DEF_PTA(EVEX512).
+ 	(AVX10_1_256): Add DEF_PTA(AVX10_1_256).
+ 	(AVX10_1_512): Add DEF_PTA(AVX10_1_512).
+ 	* config/i386/i386-options.cc (isa2_opts): Add -mavx10.1-256 and
+ 	-mavx10.1-512.
+ 	(ix86_function_specific_save): Save explicit no indicator.
+ 	(ix86_function_specific_restore): Restore explicit no indicator.
+ 	(ix86_valid_target_attribute_inner_p): Handle avx10.1, avx10.1-256 and
+ 	avx10.1-512.
+ 	(ix86_valid_target_attribute_tree): Handle avx512 function
+ 	attributes with avx10.1 command line option.
+ 	(ix86_option_override_internal): Handle AVX10.1 options.
+ 	* config/i386/i386.h: Add PTA_EVEX512 for AVX512 target
+ 	machines.
+ 	* config/i386/i386.opt: Add variable ix86_no_avx512_explicit and
+ 	ix86_no_avx10_1_explicit, option -mavx10.1, -mavx10.1-256 and
+ 	-mavx10.1-512.
+ 	* doc/extend.texi: Document avx10.1, avx10.1-256 and avx10.1-512.
+ 	* doc/invoke.texi: Document -mavx10.1, -mavx10.1-256 and -mavx10.1-512.
+ 	* doc/sourcebuild.texi: Document target avx10.1, avx10.1-256
+ 	and avx10.1-512.
+ 
+ 2023-11-20  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112325
+ 	* config/i386/sse.md (reduc_<code>_scal_<mode>): New expander.
+ 	(REDUC_ANY_LOGIC_MODE): New iterator.
+ 	(REDUC_PLUS_MODE): Extend to VxHI/SI/DImode.
+ 	(REDUC_SSE_PLUS_MODE): Ditto.
+ 
+ 2023-11-20  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/112537
+ 	* config/riscv/riscv-opts.h (enum riscv_stringop_strategy_enum): Strategy enum.
+ 	* config/riscv/riscv-string.cc (riscv_expand_block_move): Disabled based on options.
+ 	(expand_block_move): Ditto.
+ 	* config/riscv/riscv.opt: Add -mmemcpy-strategy=.
+ 
+ 2023-11-20  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/gnu-user.h (MUSL_ABI_SPEC): Modify suffix.
+ 
+ 2023-11-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (emit_vlmax_insn_lra): Optimize constant AVL.
+ 
+ 2023-11-19  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/riscv/riscv-protos.h (extract_base_offset_in_addr): Prototype.
+ 	* config/riscv/riscv.cc (riscv_fusion_pairs): New enum.
+ 	(riscv_tune_param): Add fusible_ops field.
+ 	(riscv_tune_param_rocket_tune_info): Initialize new field.
+ 	(riscv_tune_param_sifive_7_tune_info): Likewise.
+ 	(thead_c906_tune_info): Likewise.
+ 	(generic_oo_tune_info): Likewise.
+ 	(optimize_size_tune_info): Likewise.
+ 	(riscv_macro_fusion_p): New function.
+ 	(riscv_fusion_enabled_p): Likewise.
+ 	(riscv_macro_fusion_pair_p): Likewise.
+ 	(TARGET_SCHED_MACRO_FUSION_P): Define.
+ 	(TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
+ 	(extract_base_offset_in_addr): Moved into riscv.cc from...
+ 	* config/riscv/thead.cc: Here.
+ 	Co-authored-by: Raphael Zinsly <rzinsly@ventanamicro.com>
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2023-11-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/c6x/c6x.md (mvilc): Add mode to UNSPEC source.
+ 	* config/mips/mips.md (rdhwr_synci_step_<mode>): Likewise.
+ 	* config/riscv/riscv.md (riscv_frcsr, riscv_frflags): Likewise.
+ 	* config/s390/s390.md (@split_stack_call<mode>): Likewise.
+ 	(@split_stack_cond_call<mode>): Likewise.
+ 	* config/sh/sh.md (sp_switch_1): Likewise.
+ 
+ 2023-11-19  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h: Include "rich-location.h".
+ 	* edit-context.h (class fixit_hint): New forward decl.
+ 	* gcc-rich-location.h: Include "rich-location.h".
+ 	* genmatch.cc: Likewise.
+ 	* pretty-print.h: Likewise.
+ 
+ 2023-11-19  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (CPPLIB_H): Add libcpp/include/rich-location.h.
+ 	* coretypes.h (class rich_location): New forward decl.
+ 
+ 2023-11-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_tuple_move): Fix bug.
+ 
+ 2023-11-19  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/107573
+ 	* doc/invoke.texi: Add -Wanalyzer-undefined-behavior-strtok.
+ 
+ 2023-11-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/predicates.md (const_call_insn_operand):
+ 	Remove buggy "HAVE_AS_SUPPORT_CALL36" conditions.  Change "1" to
+ 	"true" to make the coding style consistent.
+ 
+ 2023-11-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/genopts/isa-evolution.in: (lam-bh, lamcas):
+ 	Add.
+ 	* config/loongarch/loongarch-str.h: Regenerate.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch-cpucfg-map.h: Regenerate.
+ 	* config/loongarch/loongarch-cpu.cc
+ 	(ISA_BASE_LA64V110_FEATURES): Include OPTION_MASK_ISA_LAM_BH
+ 	and OPTION_MASK_ISA_LAMCAS.
+ 	* config/loongarch/sync.md (atomic_add<mode:SHORT>): Use
+ 	TARGET_LAM_BH instead of ISA_BASE_IS_LA64V110.  Remove empty
+ 	lines from assembly output.
+ 	(atomic_exchange<mode>_short): Likewise.
+ 	(atomic_exchange<mode:SHORT>): Likewise.
+ 	(atomic_fetch_add<mode>_short): Likewise.
+ 	(atomic_fetch_add<mode:SHORT>): Likewise.
+ 	(atomic_cas_value_strong<mode>_amcas): Use TARGET_LAMCAS instead
+ 	of ISA_BASE_IS_LA64V110.
+ 	(atomic_compare_and_swap<mode>): Likewise.
+ 	(atomic_compare_and_swap<mode:GPR>): Likewise.
+ 	(atomic_compare_and_swap<mode:SHORT>): Likewise.
+ 	* config/loongarch/loongarch.cc (loongarch_asm_code_end): Dump
+ 	status if -mlam-bh and -mlamcas if -fverbose-asm.
+ 
+ 2023-11-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand): Don't
+ 	print dbar 0x700 if TARGET_LD_SEQ_SA.
+ 	* config/loongarch/sync.md (atomic_load<mode>): Likewise.
+ 
+ 2023-11-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (DIV): New mode iterator.
+ 	(<optab:ANY_DIV><mode:GPR>3): Don't expand if TARGET_DIV32.
+ 	(<optab:ANY_DIV>di3_fake): Disable if TARGET_DIV32.
+ 	(*<optab:ANY_DIV><mode:GPR>3): Allow SImode if TARGET_DIV32.
+ 	(<optab:ANY_DIV>si3_extended): New insn if TARGET_DIV32.
+ 
+ 2023-11-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-def.h:
+ 	(loongarch_isa_base_features): Declare.  Define it in ...
+ 	* config/loongarch/loongarch-cpu.cc
+ 	(loongarch_isa_base_features): ... here.
+ 	(fill_native_cpu_config): If we know the base ISA of the CPU
+ 	model from PRID, use it instead of la64 (v1.0).  Check if all
+ 	expected features of this base ISA is available, emit a warning
+ 	if not.
+ 	* config/loongarch/loongarch-opts.cc (config_target_isa): Enable
+ 	the features implied by the base ISA if not -march=native.
+ 
+ 2023-11-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/genopts/isa-evolution.in: New data file.
+ 	* config/loongarch/genopts/genstr.sh: Translate info in
+ 	isa-evolution.in when generating loongarch-str.h, loongarch.opt,
+ 	and loongarch-cpucfg-map.h.
+ 	* config/loongarch/genopts/loongarch.opt.in (isa_evolution):
+ 	New variable.
+ 	* config/loongarch/t-loongarch: (loongarch-cpucfg-map.h): New
+ 	rule.
+ 	(loongarch-str.h): Depend on isa-evolution.in.
+ 	(loongarch.opt): Depend on isa-evolution.in.
+ 	(loongarch-cpu.o): Depend on loongarch-cpucfg-map.h.
+ 	* config/loongarch/loongarch-str.h: Regenerate.
+ 	* config/loongarch/loongarch-def.h (loongarch_isa):  Add field
+ 	for evolution features.  Add helper function to enable features
+ 	in this field.
+ 	Probe native CPU capability and save the corresponding options
+ 	into preset.
+ 	* config/loongarch/loongarch-cpu.cc (fill_native_cpu_config):
+ 	Probe native CPU capability and save the corresponding options
+ 	into preset.
+ 	(cache_cpucfg): Simplify with C++11-style for loop.
+ 	(cpucfg_useful_idx, N_CPUCFG_WORDS): Move to ...
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_option_override_internal): Enable the ISA evolution
+ 	feature options implied by -march and not explicitly disabled.
+ 	(loongarch_asm_code_end): New function, print ISA information as
+ 	comments in the assembly if -fverbose-asm.  It makes easier to
+ 	debug things like -march=native.
+ 	(TARGET_ASM_CODE_END): Define.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch-cpucfg-map.h: Generate.
+ 	(cpucfg_useful_idx, N_CPUCFG_WORDS) ... here.
+ 
+ 2023-11-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/genopts/loongarch-strings:
+ 	(STR_ISA_BASE_LA64V110): Add.
+ 	* config/loongarch/genopts/loongarch.opt.in:
+ 	(ISA_BASE_LA64V110): Add.
+ 	* config/loongarch/loongarch-def.c
+ 	(loongarch_isa_base_strings): Initialize [ISA_BASE_LA64V110]
+ 	to STR_ISA_BASE_LA64V110.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch-str.h: Regenerate.
+ 
+ 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* doc/invoke.texi (-fprofile-update): Clarify default method.  Document
+ 	the atomic method behaviour.
+ 	* tree-profile.cc (enum counter_update_method): New.
+ 	(counter_update): Likewise.
+ 	(gen_counter_update): Use counter_update_method.  Split the
+ 	atomic counter update in two 32-bit atomic operations if
+ 	necessary.
+ 	(tree_profiling): Select counter_update_method.
+ 
+ 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* tree-profile.cc (gen_assign_counter_update): New.
+ 	(gen_counter_update): Likewise.
+ 	(gimple_gen_edge_profiler): Use gen_counter_update().
+ 	(gimple_gen_time_profiler): Likewise.
+ 
+ 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config/rtems.h (TARGET_HAVE_LIBATOMIC): Define.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in (TARGET_HAVE_LIBATOMIC): Add.
+ 	* target.def (have_libatomic): New.
+ 
+ 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	Revert:
+ 	2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config/sparc/rtemself.h (SPARC_GCOV_TYPE_SIZE): Define.
+ 	* config/sparc/sparc.c (sparc_gcov_type_size): New.
+ 	(TARGET_GCOV_TYPE_SIZE): Redefine if SPARC_GCOV_TYPE_SIZE is defined.
+ 	* coverage.c (get_gcov_type): Use targetm.gcov_type_size().
+ 	* doc/tm.texi (TARGET_GCOV_TYPE_SIZE): Add hook under "Misc".
+ 	* doc/tm.texi.in: Regenerate.
+ 	* target.def (gcov_type_size): New target hook.
+ 	* targhooks.c (default_gcov_type_size): New.
+ 	* targhooks.h (default_gcov_type_size): Declare.
+ 	* tree-profile.c (gimple_gen_edge_profiler): Use precision of
+ 	gcov_type_node.
+ 	(gimple_gen_time_profiler): Likewise.
+ 
+ 2023-11-18  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-target-attr.cc
+ 	(riscv_target_attr_parser::parse_arch): Use char[] for
+ 	std::unique_ptr to prevent mismatched new delete issue.
+ 	(riscv_process_one_target_attr): Ditto.
+ 	(riscv_process_target_attr): Ditto.
+ 
+ 2023-11-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Refactor iterators.
+ 
+ 2023-11-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/sync.md (atomic_load<mode>): New template.
+ 
+ 2023-11-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-def.h: Add comments.
+ 	* config/loongarch/loongarch-opts.h (ISA_BASE_IS_LA64V110): Define macro.
+ 	* config/loongarch/loongarch.cc (loongarch_memmodel_needs_rel_acq_fence):
+ 	Remove redundant code implementations.
+ 	* config/loongarch/sync.md (d): Added QI, HI support.
+ 	(atomic_add<mode>): New template.
+ 	(atomic_exchange<mode>_short): Likewise.
+ 	(atomic_cas_value_strong<mode>_amcas): Likewise..
+ 	(atomic_fetch_add<mode>_short): Likewise.
+ 
+ 2023-11-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config.gcc: Support LA664.
+ 	* config/loongarch/genopts/loongarch-strings: Likewise.
+ 	* config/loongarch/genopts/loongarch.opt.in: Likewise.
+ 	* config/loongarch/loongarch-cpu.cc (fill_native_cpu_config): Likewise.
+ 	* config/loongarch/loongarch-def.c: Likewise.
+ 	* config/loongarch/loongarch-def.h (N_ISA_BASE_TYPES): Likewise.
+ 	(ISA_BASE_LA64V110): Define macro.
+ 	(N_ARCH_TYPES): Update value.
+ 	(N_TUNE_TYPES): Update value.
+ 	(CPU_LA664): New macro.
+ 	* config/loongarch/loongarch-opts.cc (isa_default_abi): Likewise.
+ 	(isa_base_compat_p): Likewise.
+ 	* config/loongarch/loongarch-opts.h (TARGET_64BIT): This parameter is enabled
+ 	when la_target.isa.base is equal to ISA_BASE_LA64V100 or ISA_BASE_LA64V110.
+ 	(TARGET_uARCH_LA664): Define macro.
+ 	* config/loongarch/loongarch-str.h (STR_CPU_LA664): Likewise.
+ 	* config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width):
+ 	Add LA664 support.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 
+ 2023-11-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 	    Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config.in: Regenerate.
+ 	* config/loongarch/loongarch-opts.h (HAVE_AS_SUPPORT_CALL36): Define macro.
+ 	* config/loongarch/loongarch.cc (loongarch_legitimize_call_address):
+ 	If binutils supports call36, the function call is not split over expand.
+ 	* config/loongarch/loongarch.md: Add call36 generation code.
+ 	* config/loongarch/predicates.md: Likewise.
+ 	* configure: Regenerate.
+ 	* configure.ac: Check whether binutils supports call36.
+ 
+ 2023-11-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/106147
+ 	* Makefile.in (ANALYZER_OBJS): Add analyzer/infinite-loop.o.
+ 	* doc/invoke.texi: Add -fdump-analyzer-infinite-loop and
+ 	-Wanalyzer-infinite-loop.  Add missing CWE link for
+ 	-Wanalyzer-infinite-recursion.
+ 	* timevar.def (TV_ANALYZER_INFINITE_LOOPS): New.
+ 
+ 2023-11-17  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/112406
+ 	PR middle-end/112552
+ 	* tree-vect-loop.cc (vect_transform_reduction): Pass truth
+ 	vectype for mask operand.
+ 
+ 2023-11-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/107571
+ 	* gimplify.cc (expand_FALLTHROUGH_r): Use wi->removed_stmt after
+ 	gsi_remove, change the way of passing fallthrough stmt at the end
+ 	of sequence to expand_FALLTHROUGH.  Diagnose IFN_FALLTHROUGH
+ 	with GF_CALL_NOTHROW flag.
+ 	(expand_FALLTHROUGH): Change loc into array of 2 location_t elts,
+ 	don't test wi.callback_result, instead check whether first
+ 	elt is not UNKNOWN_LOCATION and in that case pedwarn with the
+ 	second location.
+ 	* gimple-walk.cc (walk_gimple_seq_mod): Clear wi->removed_stmt
+ 	after the flag has been used.
+ 	* internal-fn.def (FALLTHROUGH): Mention in comment the special
+ 	meaning of the TREE_NOTHROW/GF_CALL_NOTHROW flag on the calls.
+ 
+ 2023-11-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112566
+ 	PR tree-optimization/83171
+ 	* match.pd (ctz(ext(X)) -> ctz(X), popcount(zext(X)) -> popcount(X),
+ 	parity(ext(X)) -> parity(X), ffs(ext(X)) -> ffs(X)): New
+ 	simplifications.
+ 	( __builtin_ffs (X) == 0 -> X == 0): Use FFS rather than
+ 	BUILT_IN_FFS BUILT_IN_FFSL BUILT_IN_FFSLL BUILT_IN_FFSIMAX.
+ 
+ 2023-11-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112374
+ 	* tree-vect-loop.cc (check_reduction_path): Perform the cond_fn_p
+ 	special case only if op_use_stmt == use_stmt, use as_a rather than
+ 	dyn_cast in that case.
+ 
+ 2023-11-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2023-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112281
+ 	* tree-loop-distribution.cc (pg_add_dependence_edges):
+ 	Preserve stmt order when the innermost loop has exact
+ 	overlap.
+ 
+ 2023-11-17  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/53372
+ 	* config/avr/avr.cc (avr_asm_named_section) [AVR_SECTION_PROGMEM]:
+ 	Only return some .progmem*.data section if the user did not
+ 	specify a section attribute.
+ 	(avr_section_type_flags) [avr_progmem_p]: Unset SECTION_NOTYPE
+ 	in returned section flags.
+ 
+ 2023-11-17  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/lsx.md (copysign<mode>3): Allow operand[2] to
+ 	be an reg_or_vector_same_val_operand.  If it's a const vector
+ 	with same negative elements, expand the copysign with a bitset
+ 	instruction.  Otherwise, force it into an register.
+ 	* config/loongarch/lasx.md (copysign<mode>3): Likewise.
+ 
+ 2023-11-17  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/111449
+ 	* config/rs6000/vsx.md (*vsx_le_mem_to_mem_mov_ti): New.
+ 
+ 2023-11-17  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/111449
+ 	* config/rs6000/altivec.md (cbranchv16qi4): New expand pattern.
+ 	* config/rs6000/rs6000.cc (rs6000_generate_compare): Generate
+ 	insn sequence for V16QImode equality compare.
+ 	* config/rs6000/rs6000.h (MOVE_MAX_PIECES): Define.
+ 	(STORE_MAX_PIECES): Define.
+ 
+ 2023-11-17  Li Wei  <liwei@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.h (CLZ_DEFINED_VALUE_AT_ZERO):
+ 	Implement.
+ 	(CTZ_DEFINED_VALUE_AT_ZERO): Same.
+ 
+ 2023-11-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	* dwarf2out.cc (add_AT_die_ref): Assert we do not add
+ 	a self-ref DW_AT_abstract_origin or DW_AT_specification.
+ 
+ 2023-11-17  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_builtin_vectorization_cost): Adjust.
+ 
+ 2023-11-16  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR rtl-optimization/112483
+ 	* simplify-rtx.cc (simplify_binary_operation_1) <case COPYSIGN>:
+ 	Call simplify_unary_operation for NEG instead of
+ 	simplify_gen_unary.
+ 
+ 2023-11-16  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	PR target/111557
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): update macro name
+ 
+ 2023-11-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/78904
+ 	* config/i386/i386.md (*addqi_ext2<mode>_0):
+ 	New define_insn_and_split pattern.
+ 	(*subqi_ext2<mode>_0): Ditto.
+ 	(*<code>qi_ext2<mode>_0): Ditto.
+ 
+ 2023-11-16  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR rtl-optimization/112415
+ 	* config/pa/pa.cc (pa_legitimate_address_p): Allow 14-bit
+ 	displacements before reload.  Simplify logic flow.  Revise
+ 	comments.
+ 	* config/pa/pa.h (TARGET_ELF64): New define.
+ 	(INT14_OK_STRICT): Update define and comment.
+ 	* config/pa/pa64-linux.h (TARGET_ELF64): Define.
+ 	* config/pa/predicates.md (base14_operand): Don't check
+ 	alignment of short displacements.
+ 	(integer_store_memory_operand): Don't return true when
+ 	reload_in_progress is true.  Remove INT_5_BITS check.
+ 	(floating_point_store_memory_operand): Don't return true when
+ 	reload_in_progress is true.  Use INT14_OK_STRICT to check
+ 	whether long displacements are always okay.
+ 
+ 2023-11-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112567
+ 	* config/i386/i386.md (*<any_logic:code>qi_ext<mode>_1_slp):
+ 	Fix generation of invalid RTX in split pattern.
+ 
+ 2023-11-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::set_option_hooks): Add
+ 	"lang_mask" param.
+ 	* diagnostic.h (diagnostic_context::option_enabled_p): Update for
+ 	move of m_lang_mask.
+ 	(diagnostic_context::set_option_hooks): Add "lang_mask" param.
+ 	(diagnostic_context::get_lang_mask): New.
+ 	(diagnostic_context::m_lang_mask): Move into m_option_callbacks,
+ 	thus making private.
+ 	* lto-wrapper.cc (main): Update for new lang_mask param of
+ 	set_option_hooks.
+ 	* toplev.cc (init_asm_output): Use get_lang_mask.
+ 	(general_init): Move initialization of global_dc's lang_mask to
+ 	new lang_mask param of set_option_hooks.
+ 
+ 2023-11-16  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/111878
+ 	* tree-vect-loop-manip.cc (find_loop_location): Skip edges check if
+ 	latch incorrect.
+ 
+ 2023-11-16  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config.gcc (riscv): Add riscv-target-attr.o.
+ 	* config/riscv/riscv-protos.h (riscv_declare_function_size) New.
+ 	(riscv_option_valid_attribute_p): New.
+ 	(riscv_override_options_internal): New.
+ 	(struct riscv_tune_info): New.
+ 	(riscv_parse_tune): New.
+ 	* config/riscv/riscv-target-attr.cc
+ 	(class riscv_target_attr_parser): New.
+ 	(struct riscv_attribute_info): New.
+ 	(riscv_attributes): New.
+ 	(riscv_target_attr_parser::parse_arch): New.
+ 	(riscv_target_attr_parser::handle_arch): New.
+ 	(riscv_target_attr_parser::handle_cpu): New.
+ 	(riscv_target_attr_parser::handle_tune): New.
+ 	(riscv_target_attr_parser::update_settings): New.
+ 	(riscv_process_one_target_attr): New.
+ 	(num_occurences_in_str): New.
+ 	(riscv_process_target_attr): New.
+ 	(riscv_option_valid_attribute_p): New.
+ 	* config/riscv/riscv.cc: Include target-globals.h and
+ 	riscv-subset.h.
+ 	(struct riscv_tune_info): Move to riscv-protos.h.
+ 	(get_tune_str): New.
+ 	(riscv_parse_tune): New parameter null_p.
+ 	(riscv_declare_function_size): New.
+ 	(riscv_option_override): Build target_option_default_node and
+ 	target_option_current_node.
+ 	(riscv_save_restore_target_globals): New.
+ 	(riscv_option_restore): New.
+ 	(riscv_previous_fndecl): New.
+ 	(riscv_set_current_function): Apply the target attribute.
+ 	(TARGET_OPTION_RESTORE): Define.
+ 	(TARGET_OPTION_VALID_ATTRIBUTE_P): Ditto.
+ 	* config/riscv/riscv.h (SWITCHABLE_TARGET): Define to 1.
+ 	(ASM_DECLARE_FUNCTION_SIZE) Define.
+ 	* config/riscv/riscv.opt (mtune=): Add Save attribute.
+ 	(mcpu=): Ditto.
+ 	(mcmodel=): Ditto.
+ 	* config/riscv/t-riscv: Add build rule for riscv-target-attr.o
+ 	* doc/extend.texi: Add doc for target attribute.
+ 
+ 2023-11-16  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/112478
+ 	* config/riscv/riscv.cc (riscv_save_return_addr_reg_p): Check ra
+ 	is ever lived.
+ 
+ 2023-11-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112532
+ 	* config/i386/mmx.md (*vec_dup<mode>): Extend for V4HI and
+ 	V2HI.
+ 
+ 2023-11-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112526
+ 	* config/i386/i386.md
+ 	(mov imm,%rax; mov %rdi,%rdx; mulx %rax -> mov imm,%rdx; mulx %rdi):
+ 	Verify in define_peephole2 that operands[2] dies or is overwritten
+ 	at the end of multiplication.
+ 
+ 2023-11-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/112536
+ 	* tree-vect-slp.cc (arg0_map): New variable.
+ 	(vect_get_operand_map): For IFN_CLZ or IFN_CTZ, return arg0_map.
+ 
+ 2023-11-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR middle-end/112554
+ 	* tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
+ 	Clear SELECT_VL_P for non-partial vectorization.
+ 
+ 2023-11-16  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/sse.md (vec_extract_hi_<mode>): Add noavx512vl
+ 	alternative with attr addr gpr16 and "jm" constraint.
+ 	(vec_extract_hi_<mode>): Likewise for SF vector modes.
+ 	(@vec_extract_hi_<mode>): Likewise.
+ 	(*vec_extractv2ti): Likewise.
+ 	(vec_set_hi_<mode><mask_name>): Likewise.
+ 	* config/i386/mmx.md (@sse4_1_insertps_<mode>): Correct gpr16 attr for
+ 	each alternative.
+ 
+ 2023-11-15  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/78904
+ 	* config/i386/i386.md (*movstrictqi_ext<mode>_1): New insn pattern.
+ 	(*addqi_ext<mode>_2_slp): New define_insn_and_split pattern.
+ 	(*subqi_ext<mode>_2_slp): Ditto.
+ 	(*<any_logic:code>qi_ext<mode>_2_slp): Ditto.
+ 
+ 2023-11-15  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::parse_std_ext): Emit an error and skip to
+ 	the next extension when a non-canonical ordering is detected.
+ 
+ 2023-11-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+ 
+ 	* gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text):
+ 	Revert using the macro CAN_HAVE_LOCATION_P.
+ 
+ 2023-11-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112447
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Insert
+ 	local vsetvl info before LCM suggested one.
+ 	Tested-by: Patrick O'Neill <patrick@rivosinc.com> # pre-commit-CI #679
+ 	Co-developed-by: Vineet Gupta <vineetg@rivosinc.com>
+ 
+ 2023-11-15  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_sign_extend_if_not_subreg_prom): New.
+ 	* (riscv_extend_comparands): Call New function on operands.
+ 
+ 2023-11-15  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*addqi_ext<mode>_1_slp):
+ 	Add "&& " before "reload_completed" in split condition.
+ 	(*subqi_ext<mode>_1_slp): Ditto.
+ 	(*<any_logic:code>qi_ext<mode>_1_slp): Ditto.
+ 
+ 2023-11-15  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112540
+ 	* config/i386/i386.md (*addqi_ext<mode>_1_slp):
+ 	Correct operand numbers in split pattern.  Replace !Q constraint
+ 	of operand 1 with !qm.  Add insn constrain.
+ 	(*subqi_ext<mode>_1_slp): Ditto.
+ 	(*<any_logic:code>qi_ext<mode>_1_slp): Ditto.
+ 
+ 2023-11-15  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* doc/extend.texi (Nvidia PTX Built-in Functions): Fix
+ 	copy'n'paste-o in '__builtin_nvptx_brev' description.
+ 
+ 2023-11-15  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config/nvptx/nvptx.md (UNSPEC_BITREV): Delete.
+ 	(bitrev<mode>2): Represent using bitreverse.
+ 
+ 2023-11-15  Andrew Stubbs  <ams@codesourcery.com>
+ 	    Andrew Jenner   <andrew@codesourcery.com>
+ 
+ 	* config/gcn/constraints.md: Add "a" AVGPR constraint.
+ 	* config/gcn/gcn-valu.md (*mov<mode>): Add AVGPR alternatives.
+ 	(*mov<mode>_4reg): Likewise.
+ 	(@mov<mode>_sgprbase): Likewise.
+ 	(gather<mode>_insn_1offset<exec>): Likewise.
+ 	(gather<mode>_insn_1offset_ds<exec>): Likewise.
+ 	(gather<mode>_insn_2offsets<exec>): Likewise.
+ 	(scatter<mode>_expr<exec_scatter>): Likewise.
+ 	(scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
+ 	(scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
+ 	* config/gcn/gcn.cc (MAX_NORMAL_AVGPR_COUNT): Define.
+ 	(gcn_class_max_nregs): Handle AVGPR_REGS and ALL_VGPR_REGS.
+ 	(gcn_hard_regno_mode_ok): Likewise.
+ 	(gcn_regno_reg_class): Likewise.
+ 	(gcn_spill_class): Allow spilling to AVGPRs on TARGET_CDNA1_PLUS.
+ 	(gcn_sgpr_move_p): Handle AVGPRs.
+ 	(gcn_secondary_reload): Reload AVGPRs via VGPRs.
+ 	(gcn_conditional_register_usage): Handle AVGPRs.
+ 	(gcn_vgpr_equivalent_register_operand): New function.
+ 	(gcn_valid_move_p): Check for validity of AVGPR moves.
+ 	(gcn_compute_frame_offsets): Handle AVGPRs.
+ 	(gcn_memory_move_cost): Likewise.
+ 	(gcn_register_move_cost): Likewise.
+ 	(gcn_vmem_insn_p): Handle TYPE_VOP3P_MAI.
+ 	(gcn_md_reorg): Handle AVGPRs.
+ 	(gcn_hsa_declare_function_name): Likewise.
+ 	(print_reg): Likewise.
+ 	(gcn_dwarf_register_number): Likewise.
+ 	* config/gcn/gcn.h (FIRST_AVGPR_REG): Define.
+ 	(AVGPR_REGNO): Define.
+ 	(LAST_AVGPR_REG): Define.
+ 	(SOFT_ARG_REG): Update.
+ 	(FRAME_POINTER_REGNUM): Update.
+ 	(DWARF_LINK_REGISTER): Update.
+ 	(FIRST_PSEUDO_REGISTER): Update.
+ 	(AVGPR_REGNO_P): Define.
+ 	(enum reg_class): Add AVGPR_REGS and ALL_VGPR_REGS.
+ 	(REG_CLASS_CONTENTS): Add new register classes and add entries for
+ 	AVGPRs to all classes.
+ 	(REGISTER_NAMES): Add AVGPRs.
+ 	* config/gcn/gcn.md (FIRST_AVGPR_REG, LAST_AVGPR_REG): Define.
+ 	(AP_REGNUM, FP_REGNUM): Update.
+ 	(define_attr "type"): Add vop3p_mai.
+ 	(define_attr "unit"): Handle vop3p_mai.
+ 	(define_attr "gcn_version"): Add "cdna2".
+ 	(define_attr "enabled"): Handle cdna2.
+ 	(*mov<mode>_insn): Add AVGPR alternatives.
+ 	(*movti_insn): Likewise.
+ 	* config/gcn/mkoffload.cc (isa_has_combined_avgprs): New.
+ 	(process_asm): Process avgpr_count.
+ 	* config/gcn/predicates.md (gcn_avgpr_register_operand): New.
+ 	(gcn_avgpr_hard_register_operand): New.
+ 	* doc/md.texi: Document the "a" constraint.
+ 
+ 2023-11-15  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (mov<mode>_sgprbase): Add @ modifier.
+ 	(reload_in<mode>): Delete.
+ 	(reload_out<mode>): Delete.
+ 	* config/gcn/gcn.cc (CODE_FOR): Delete.
+ 	(get_code_for_##PREFIX##vN##SUFFIX): Delete.
+ 	(CODE_FOR_OP): Delete.
+ 	(get_code_for_##PREFIX): Delete.
+ 	(gcn_secondary_reload): Replace "get_code_for" with "code_for".
+ 
+ 2023-11-15  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/t-s390: Generate s390-gen-builtins.h without
+ 	linemarkers.
+ 
+ 2023-11-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112282
+ 	* tree-if-conv.cc (ifcvt_hoist_invariants): Only hoist from
+ 	the loop header.
+ 
+ 2023-11-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_slp_region): Also clear visited flag when
+ 	we skipped an instance due to -fdbg-cnt.
+ 
+ 2023-11-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_memmodel_needs_release_fence): Remove.
+ 	(loongarch_cas_failure_memorder_needs_acquire): New static
+ 	function.
+ 	(loongarch_print_operand): Redefine 'G' for the barrier on CAS
+ 	failure.
+ 	* config/loongarch/sync.md (atomic_cas_value_strong<mode>):
+ 	Remove the redundant barrier before the LL instruction, and
+ 	emit an acquire barrier on failure if needed by
+ 	failure_memorder.
+ 	(atomic_cas_value_cmp_and_7_<mode>): Likewise.
+ 	(atomic_cas_value_add_7_<mode>): Remove the unnecessary barrier
+ 	before the LL instruction.
+ 	(atomic_cas_value_sub_7_<mode>): Likewise.
+ 	(atomic_cas_value_and_7_<mode>): Likewise.
+ 	(atomic_cas_value_xor_7_<mode>): Likewise.
+ 	(atomic_cas_value_or_7_<mode>): Likewise.
+ 	(atomic_cas_value_nand_7_<mode>): Likewise.
+ 	(atomic_cas_value_exchange_7_<mode>): Likewise.
+ 
+ 2023-11-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem): New function.
+ 	(expand_vec_init): Add trailing optimization.
+ 
+ 2023-11-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
+ 	Add inner_mode mask arg for mask int mode.
+ 	(get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
+ 	to get the good enough vector int mode on precision.
+ 	(expand_vector_init_merge_repeating_sequence): Pass required args
+ 	to above func.
+ 
+ 2023-11-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112535
+ 	* config/riscv/riscv.cc (riscv_legitimate_address_p): Disallow RVV modes base address.
+ 
+ 2023-11-15  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* json.cc (selftest::assert_print_eq): Add "loc" param and use
+ 	ASSERT_STREQ_AT.
+ 	(ASSERT_PRINT_EQ): New macro.
+ 	(selftest::test_writing_objects): Use ASSERT_PRINT_EQ to capture
+ 	source location of assertion.
+ 	(selftest::test_writing_arrays): Likewise.
+ 	(selftest::test_writing_float_numbers): Likewise.
+ 	(selftest::test_writing_integer_numbers): Likewise.
+ 	(selftest::test_writing_strings): Likewise.
+ 	(selftest::test_writing_literals): Likewise.
+ 
+ 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/103533
+ 	* doc/invoke.texi (Static Analyzer Options): Add the six
+ 	-Wanalyzer-tainted-* warnings.  Update documentation of each
+ 	warning to reflect removed requirement to use
+ 	-fanalyzer-checker=taint.  Remove discussion of
+ 	-fanalyzer-checker=taint.
+ 
+ 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc
+ 	(json_output_format::on_end_diagnostic): Update calls to m_context
+ 	callbacks to use member functions; tighten up scopes.
+ 	* diagnostic-format-sarif.cc (sarif_builder::make_result_object):
+ 	Likewise.
+ 	(sarif_builder::make_reporting_descriptor_object_for_warning):
+ 	Likewise.
+ 	* diagnostic.cc (diagnostic_context::initialize): Update for
+ 	callbacks being moved into m_option_callbacks and being renamed.
+ 	(diagnostic_context::set_option_hooks): New.
+ 	(diagnostic_option_classifier::classify_diagnostic): Update call
+ 	to global_dc->m_option_enabled to use option_enabled_p.
+ 	(diagnostic_context::print_option_information): Update calls to
+ 	m_context callbacks to use member functions; tighten up scopes.
+ 	(diagnostic_context::diagnostic_enabled): Likewise.
+ 	* diagnostic.h (diagnostic_option_enabled_cb): New typedef.
+ 	(diagnostic_make_option_name_cb): New typedef.
+ 	(diagnostic_make_option_url_cb): New typedef.
+ 	(diagnostic_context::option_enabled_p): New.
+ 	(diagnostic_context::make_option_name): New.
+ 	(diagnostic_context::make_option_url): New.
+ 	(diagnostic_context::set_option_hooks): New decl.
+ 	(diagnostic_context::m_option_enabled): Rename to
+ 	m_option_enabled_cb and move within m_option_callbacks, using
+ 	typedef.
+ 	(diagnostic_context::m_option_state): Move within
+ 	m_option_callbacks.
+ 	(diagnostic_context::m_option_name): Rename to
+ 	m_make_option_name_cb and move within m_option_callbacks, using
+ 	typedef.
+ 	(diagnostic_context::m_get_option_url): Likewise, renaming to
+ 	m_make_option_url_cb.
+ 	* lto-wrapper.cc (print_lto_docs_link): Update call to m_context
+ 	callback to use member function.
+ 	(main): Use diagnostic_context::set_option_hooks.
+ 	* opts-diagnostic.h (option_name): Make context param const.
+ 	(get_option_url): Likewise.
+ 	* opts.cc (option_name): Likewise.
+ 	(get_option_url): Likewise.
+ 	* toplev.cc (general_init): Use
+ 	diagnostic_context::set_option_hooks.
+ 
+ 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* selftest-diagnostic.cc
+ 	(test_diagnostic_context::test_diagnostic_context): Use
+ 	diagnostic_start_span.
+ 	* tree-diagnostic-path.cc (struct event_range): Likewise.
+ 
+ 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-show-locus.cc (diagnostic_context::show_locus):
+ 	Update for renaming of text callbacks fields.
+ 	* diagnostic.cc (diagnostic_context::initialize): Likewise.
+ 	* diagnostic.h (class diagnostic_context): Add "friend" for
+ 	accessors to m_text_callbacks.
+ 	(diagnostic_context::m_text_callbacks): Make private, and add an
+ 	"m_" prefix to field names.
+ 	(diagnostic_starter): Convert from macro to inline function.
+ 	(diagnostic_start_span): New.
+ 	(diagnostic_finalizer): Convert from macro to inline function.
+ 
+ 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (diagnostic_ready_p): Convert from macro to inline
+ 	function.
+ 
+ 2023-11-14  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/78904
+ 	* config/i386/i386.md (*addqi_ext<mode>_1_slp):
+ 	New define_insn_and_split pattern.
+ 	(*subqi_ext<mode>_1_slp): Ditto.
+ 	(*<any_logic:code>qi_ext<mode>_1_slp): Ditto.
+ 
+ 2023-11-14  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	PR target/112481
+ 	* expr.cc (store_constructor): Use OPTAB_WIDEN for mask adjustment.
+ 
+ 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (sarif_builder::get_sarif_column):
+ 	Use m_context's file_cache.
+ 	(sarif_builder::maybe_make_artifact_content_object): Likewise.
+ 	(sarif_builder::get_source_lines): Likewise.
+ 	* diagnostic-show-locus.cc
+ 	(exploc_with_display_col::exploc_with_display_col): Add file_cache
+ 	param.
+ 	(layout::m_file_cache): New field.
+ 	(make_range): Add file_cache param.
+ 	(selftest::test_layout_range_for_single_point): Create and use a
+ 	temporary file_cache.
+ 	(selftest::test_layout_range_for_single_line): Likewise.
+ 	(selftest::test_layout_range_for_multiple_lines): Likewise.
+ 	(layout::layout): Initialize m_file_cache from the context and use it.
+ 	(layout::maybe_add_location_range): Use m_file_cache.
+ 	(layout::calculate_x_offset_display): Likewise.
+ 	(get_affected_range): Add file_cache param.
+ 	(get_printed_columns): Likewise.
+ 	(line_corrections::line_corrections): Likewwise.
+ 	(line_corrections::m_file_cache): New field.
+ 	(source_line::source_line): Add file_cache param.
+ 	(line_corrections::add_hint): Use m_file_cache.
+ 	(layout::print_trailing_fixits): Likewise.
+ 	(layout::print_line): Likewise.
+ 	(selftest::test_layout_x_offset_display_utf8): Create and use a
+ 	temporary file_cache.
+ 	(selftest::test_layout_x_offset_display_tab): Likewise.
+ 	(selftest::test_diagnostic_show_locus_one_liner_utf8): Likewise.
+ 	(selftest::test_add_location_if_nearby): Pass global_dc's
+ 	file_cache to temp_source_file ctor.
+ 	(selftest::test_overlapped_fixit_printing): Create and use a
+ 	temporary file_cache.
+ 	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
+ 	(selftest::test_overlapped_fixit_printing_2): Use dc's file_cache.
+ 	* diagnostic.cc (diagnostic_context::initialize): Always create a
+ 	file_cache.
+ 	(diagnostic_context::initialize_input_context): Assume
+ 	m_file_cache has already been created.
+ 	(diagnostic_context::create_edit_context): Pass m_file_cache to
+ 	edit_context.
+ 	(convert_column_unit): Add file_cache param.
+ 	(diagnostic_context::converted_column): Use context's file_cache.
+ 	(print_parseable_fixits): Add file_cache param.
+ 	(diagnostic_context::report_diagnostic): Use context's file_cache.
+ 	(selftest::test_print_parseable_fixits_none): Create and use a
+ 	temporary file_cache.
+ 	(selftest::test_print_parseable_fixits_insert): Likewise.
+ 	(selftest::test_print_parseable_fixits_remove): Likewise.
+ 	(selftest::test_print_parseable_fixits_replace): Likewise.
+ 	(selftest::test_print_parseable_fixits_bytes_vs_display_columns):
+ 	Likewise.
+ 	* diagnostic.h (diagnostic_context::file_cache_init): Delete.
+ 	(diagnostic_context::get_file_cache): Convert return type from
+ 	pointer to reference.
+ 	* edit-context.cc (edited_file::get_file_cache): New.
+ 	(edited_file::m_edit_context): New.
+ 	(edit_context::edit_context): Add file_cache param.
+ 	(edit_context::get_or_insert_file): Pass this to edited_file's
+ 	ctor.
+ 	(edited_file::edited_file): Add edit_context param.
+ 	(edited_file::print_content): Use get_file_cache.
+ 	(edited_file::print_diff_hunk): Likewise.
+ 	(edited_file::print_run_of_changed_lines): Likewise.
+ 	(edited_file::get_or_insert_line): Likewise.
+ 	(edited_file::get_num_lines): Likewise.
+ 	(edited_line::edited_line): Pass in file_cache and use it.
+ 	(selftest::test_get_content): Create and use a
+ 	temporary file_cache.
+ 	(selftest::test_applying_fixits_insert_before): Likewise.
+ 	(selftest::test_applying_fixits_insert_after): Likewise.
+ 	(selftest::test_applying_fixits_insert_after_at_line_end):
+ 	Likewise.
+ 	(selftest::test_applying_fixits_insert_after_failure): Likewise.
+ 	(selftest::test_applying_fixits_insert_containing_newline):
+ 	Likewise.
+ 	(selftest::test_applying_fixits_growing_replace): Likewise.
+ 	(selftest::test_applying_fixits_shrinking_replace): Likewise.
+ 	(selftest::test_applying_fixits_replace_containing_newline):
+ 	Likewise.
+ 	(selftest::test_applying_fixits_remove): Likewise.
+ 	(selftest::test_applying_fixits_multiple): Likewise.
+ 	(selftest::test_applying_fixits_multiple_lines): Likewise.
+ 	(selftest::test_applying_fixits_modernize_named_init): Likewise.
+ 	(selftest::test_applying_fixits_modernize_named_init): Likewise.
+ 	(selftest::test_applying_fixits_unreadable_file): Likewise.
+ 	(selftest::test_applying_fixits_line_out_of_range): Likewise.
+ 	(selftest::test_applying_fixits_column_validation): Likewise.
+ 	(selftest::test_applying_fixits_column_validation): Likewise.
+ 	(selftest::test_applying_fixits_column_validation): Likewise.
+ 	(selftest::test_applying_fixits_column_validation): Likewise.
+ 	* edit-context.h (edit_context::edit_context): Add file_cache
+ 	param.
+ 	(edit_context::get_file_cache): New.
+ 	(edit_context::m_file_cache): New.
+ 	* final.cc: Include "diagnostic.h".
+ 	(asm_show_source): Use global_dc's file_cache.
+ 	* gcc-rich-location.cc (blank_line_before_p): Add file_cache
+ 	param.
+ 	(use_new_line): Likewise.
+ 	(gcc_rich_location::add_fixit_insert_formatted): Use global dc's
+ 	file_cache.
+ 	* input.cc (diagnostic_file_cache_init): Delete.
+ 	(diagnostic_context::file_cache_init): Delete.
+ 	(diagnostics_file_cache_forcibly_evict_file): Delete.
+ 	(file_cache::missing_trailing_newline_p): New.
+ 	(file_cache::evicted_cache_tab_entry): Don't call
+ 	diagnostic_file_cache_init.
+ 	(location_get_source_line): Delete.
+ 	(get_source_text_between): Add file_cache param.
+ 	(get_source_file_content): Delete.
+ 	(location_missing_trailing_newline): Delete.
+ 	(location_compute_display_column): Add file_cache param.
+ 	(dump_location_info): Create and use temporary file_cache.
+ 	(get_substring_ranges_for_loc): Add file_cache param.
+ 	(get_location_within_string): Likewise.
+ 	(get_source_range_for_char): Likewise.
+ 	(get_num_source_ranges_for_substring): Likewise.
+ 	(selftest::test_reading_source_line): Create and use temporary
+ 	file_cache.
+ 	(selftest::lexer_test::m_file_cache): New field.
+ 	(selftest::assert_char_at_range): Use test.m_file_cache.
+ 	(selftest::assert_num_substring_ranges): Likewise.
+ 	(selftest::assert_has_no_substring_ranges): Likewise.
+ 	(selftest::test_lexer_string_locations_concatenation_2): Likewise.
+ 	* input.h (class file_cache): New forward decl.
+ 	(location_compute_display_column): Add file_cache param.
+ 	(location_get_source_line): Delete.
+ 	(get_source_text_between): Add file_cache param.
+ 	(get_source_file_content): Delete.
+ 	(location_missing_trailing_newline): Delete.
+ 	(file_cache::missing_trailing_newline_p): New decl.
+ 	(diagnostics_file_cache_forcibly_evict_file): Delete.
+ 	* selftest.cc (named_temp_file::named_temp_file): Add file_cache
+ 	param.
+ 	(named_temp_file::~named_temp_file): Optionally evict the file
+ 	from the given file_cache.
+ 	(temp_source_file::temp_source_file): Add file_cache param.
+ 	* selftest.h (class file_cache): New forward decl.
+ 	(named_temp_file::named_temp_file): Add file_cache param.
+ 	(named_temp_file::m_file_cache): New field.
+ 	(temp_source_file::temp_source_file): Add file_cache param.
+ 	* substring-locations.h (get_location_within_string): Add
+ 	file_cache param.
+ 
+ 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc: Use type-specific "set_*" functions
+ 	of json::object to avoid naked new of json value subclasses.
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* gcov.cc: Likewise.
+ 	* json.cc (object::set_string): New.
+ 	(object::set_integer): New.
+ 	(object::set_float): New.
+ 	(object::set_bool): New.
+ 	(selftest::test_writing_objects): Use object::set_string.
+ 	* json.h (object::set_string): New decl.
+ 	(object::set_integer): New decl.
+ 	(object::set_float): New decl.
+ 	(object::set_bool): New decl.
+ 	* optinfo-emit-json.cc: Use type-specific "set_*" functions of
+ 	json::object to avoid naked new of json value subclasses.
+ 	* timevar.cc: Likewise.
+ 	* tree-diagnostic-path.cc: Likewise.
+ 
+ 2023-11-14  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/112509
+ 	* tree-vrp.cc (find_case_label_range): Create range from case labels.
+ 
+ 2023-11-14  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtin-types.def: Add/remove types.
+ 	* config/s390/s390-builtins.def (s390_vec_scatter_element_flt):
+ 	The type for the offset should be UV4SI instead of V4SF.
+ 
+ 2023-11-14  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	PR target/112337
+ 	* config/arm/arm.cc (mve_vector_mem_operand): Add a REG_P check for INC
+ 	and DEC operations.
+ 
+ 2023-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111233
+ 	PR tree-optimization/111652
+ 	PR tree-optimization/111727
+ 	PR tree-optimization/111838
+ 	PR tree-optimization/112113
+ 	* tree-ssa-loop-split.cc (patch_loop_exit): Get the new
+ 	guard code instead of the old guard stmt.
+ 	(split_loop): Adjust.
+ 
+ 2023-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-loop-distribution.cc (loop_distribution::data_dep_in_cycle_p):
+ 	Consider all loops in the nest when looking for
+ 	lambda_vector_zerop.
+ 
+ 2023-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112281
+ 	* tree-loop-distribution.cc (pg_add_dependence_edges):
+ 	Preserve stmt order when the innermost loop has exact
+ 	overlap.
+ 
+ 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/112523
+ 	PR ada/112514
+ 	* config/i386/i386.md (<insn><dwi>3_doubleword_lowpart): Move
+ 	operands[1] aka low part of input rather than operands[3] aka high
+ 	part of input to output if not the same register.
+ 
+ 2023-11-14  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config.gcc: Add s390-gen-builtins.h to target_gtfiles.
+ 	* config/s390/s390-builtins.h (s390_builtin_types)
+ 	(s390_builtin_fn_types, s390_builtin_decls): Add GTY marker.
+ 	* config/s390/t-s390 (EXTRA_GTYPE_DEPS): Add s390-gen-builtins.h.
+ 	Add build rule for s390-gen-builtins.h.
+ 
+ 2023-11-14  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390-c.cc (s390_fn_types_compatible): Add a check
+ 	for error_mark_node.
+ 
+ 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/111309
+ 	* builtins.def (BUILT_IN_CLZG, BUILT_IN_CTZG, BUILT_IN_CLRSBG,
+ 	BUILT_IN_FFSG, BUILT_IN_PARITYG, BUILT_IN_POPCOUNTG): New
+ 	builtins.
+ 	* builtins.cc (fold_builtin_bit_query): New function.
+ 	(fold_builtin_1): Use it for
+ 	BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
+ 	(fold_builtin_2): Use it for BUILT_IN_{CLZ,CTZ}G.
+ 	* fold-const-call.cc: Fix comment typo on tm.h inclusion.
+ 	(fold_const_call_ss): Handle
+ 	CFN_BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
+ 	(fold_const_call_sss): New function.
+ 	(fold_const_call_1): Call it for 2 argument functions returning
+ 	scalar when passed 2 INTEGER_CSTs.
+ 	* genmatch.cc (cmp_operand): For function calls also compare
+ 	number of arguments.
+ 	(fns_cmp): New function.
+ 	(dt_node::gen_kids): Sort fns and generic_fns.
+ 	(dt_node::gen_kids_1): Handle fns with the same id but different
+ 	number of arguments.
+ 	* match.pd (CLZ simplifications): Drop checks for defined behavior
+ 	at zero.  Add variant of simplifications for IFN_CLZ with 2 arguments.
+ 	(CTZ simplifications): Drop checks for defined behavior at zero,
+ 	don't optimize precisions above MAX_FIXED_MODE_SIZE.  Add variant of
+ 	simplifications for IFN_CTZ with 2 arguments.
+ 	(a != 0 ? CLZ(a) : CST -> .CLZ(a)): Use TREE_TYPE (@3) instead of
+ 	type, add BITINT_TYPE handling, create 2 argument IFN_CLZ rather than
+ 	one argument.  Add variant for matching CLZ with 2 arguments.
+ 	(a != 0 ? CTZ(a) : CST -> .CTZ(a)): Similarly.
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_bit_query): New
+ 	method.
+ 	(bitint_large_huge::lower_call): Use it for IFN_{CLZ,CTZ,CLRSB,FFS}
+ 	and IFN_{PARITY,POPCOUNT} calls.
+ 	* gimple-range-op.cc (cfn_clz::fold_range): Don't check
+ 	CLZ_DEFINED_VALUE_AT_ZERO for m_gimple_call_internal_p, instead
+ 	assume defined value at zero if the call has 2 arguments and use
+ 	second argument value for that case.
+ 	(cfn_ctz::fold_range): Similarly.
+ 	(gimple_range_op_handler::maybe_builtin_call): Use op_cfn_clz_internal
+ 	or op_cfn_ctz_internal only if internal fn call has 2 arguments and
+ 	set m_op2 in that case.
+ 	* tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern,
+ 	vect_recog_popcount_clz_ctz_ffs_pattern): For value defined at zero
+ 	use second argument of calls if present, otherwise assume UB at zero,
+ 	create 2 argument .CLZ/.CTZ calls if needed.
+ 	* tree-vect-stmts.cc (vectorizable_call): Handle 2 argument .CLZ/.CTZ
+ 	calls.
+ 	* tree-ssa-loop-niter.cc (build_cltz_expr): Create 2 argument
+ 	.CLZ/.CTZ calls if needed.
+ 	* tree-ssa-forwprop.cc (simplify_count_trailing_zeroes): Create 2
+ 	argument .CTZ calls if needed.
+ 	* tree-ssa-phiopt.cc (cond_removal_in_builtin_zero_pattern): Handle
+ 	2 argument .CLZ/.CTZ calls, handle BITINT_TYPE, create 2 argument
+ 	.CLZ/.CTZ calls.
+ 	* doc/extend.texi (__builtin_clzg, __builtin_ctzg, __builtin_clrsbg,
+ 	__builtin_ffsg, __builtin_parityg, __builtin_popcountg): Document.
+ 
+ 2023-11-14  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/112330
+ 	* config/loongarch/genopts/loongarch.opt.in: Add
+ 	-m[no]-pass-relax-to-as.  Change the default of -m[no]-relax to
+ 	account conditional branch relaxation support status.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* configure.ac (gcc_cv_as_loongarch_cond_branch_relax): Check if
+ 	the assembler supports conditional branch relaxation.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.  Note that there are some unrelated
+ 	changes introduced by r14-5424 (which does not contain a
+ 	config.in regeneration).
+ 	* config/loongarch/loongarch-opts.h
+ 	(HAVE_AS_COND_BRANCH_RELAXATION): Define to 0 if not defined.
+ 	* config/loongarch/loongarch-driver.h (ASM_MRELAX_DEFAULT):
+ 	Define.
+ 	(ASM_MRELAX_SPEC): Define.
+ 	(ASM_SPEC): Use ASM_MRELAX_SPEC instead of "%{mno-relax}".
+ 	* config/loongarch/loongarch.cc: Take the setting of
+ 	-m[no-]relax into account when determining the default of
+ 	-mexplicit-relocs=.
+ 	* doc/invoke.texi: Document -m[no-]relax and
+ 	-m[no-]pass-mrelax-to-as for LoongArch.  Update the default
+ 	value of -mexplicit-relocs=.
+ 
+ 2023-11-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/112496
+ 	* tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
+ 	false when !tree_nop_conversion_p (TREE_TYPE (vectype),
+ 	TREE_TYPE (init_expr)).
+ 
+ 2023-11-14  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (mem_thread_fence): Remove redundant
+ 	check.
+ 	(mem_thread_fence_1): Emit finer-grained DBAR hints for
+ 	different memory models, instead of 0.
+ 
+ 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112511
+ 	* tree.cc (type_contains_placeholder_1): Handle BITINT_TYPE like
+ 	INTEGER_TYPE.
+ 
+ 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
+ 	    Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/112435
+ 	* config/i386/sse.md (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
+ 	<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>): Add
+ 	alternative with just x instead of v constraints and xjm instead of
+ 	vm and use vblendps as optimization only with that alternative.
+ 
+ 2023-11-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/105735
+ 	PR tree-optimization/111972
+ 	* tree-scalar-evolution.cc
+ 	(analyze_and_compute_bitop_with_inv_effect): Handle bitop with
+ 	INTEGER_CST.
+ 
+ 2023-11-13  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* configure: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* Makefile.in (LIBDEPS): Remove (potential) ./ prefix from
+ 	LIBINTL_DEP.
+ 	* doc/install.texi: Document new (notable) flags added by the
+ 	optional gettext tree and by AM_GNU_GETTEXT.  Document libintl/libc
+ 	with gettext dependency.
+ 
+ 2023-11-13  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.h (gen_pushfl): New prototype.
+ 	(gen_popfl): Ditto.
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin)
+ 	[case IX86_BUILTIN_READ_FLAGS]: Use gen_pushfl.
+ 	[case IX86_BUILTIN_WRITE_FLAGS]: Use gen_popfl.
+ 	* config/i386/i386.cc (gen_pushfl): New function.
+ 	(gen_popfl): Ditto.
+ 	* config/i386/i386.md (unspec): Add UNSPEC_PUSHFL and UNSPEC_POPFL.
+ 	(@pushfl<mode>2): Rename from *pushfl<mode>2.
+ 	Rewrite as unspec using UNSPEC_PUSHFL.
+ 	(@popfl<mode>1): Rename from *popfl<mode>1.
+ 	Rewrite as unspec using UNSPEC_POPFL.
+ 
+ 2023-11-13  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112494
+ 	* config/i386/i386.cc (ix86_cc_mode) [default]: Return CCmode.
+ 
+ 2023-11-13  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (source_equal_p): Use pointer
+ 	equality for REG_EQUAL.
+ 
+ 2023-11-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112495
+ 	* tree-data-ref.cc (runtime_alias_check_p): Reject checks
+ 	between different address spaces.
+ 
+ 2023-11-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112487
+ 	* tree-inline.cc (setup_one_parameter): When the parameter
+ 	is unused only insert a debug bind when there's not a gross
+ 	mismatch in value and declared parameter type.  Do not assert
+ 	there effectively isn't.
+ 
+ 2023-11-13  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc
+ 	(rvv_builder::combine_sequence_use_merge_profitable_p): New function.
+ 	(expand_vector_init_merge_combine_sequence): Ditto.
+ 	(expand_vec_init): Adapt for new optimization.
+ 
+ 2023-11-13  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc
+ 	(ix86_expand_vector_init_duplicate): Handle V4HF/V4BF and
+ 	V2HF/V2BF.
+ 	(ix86_expand_vector_init_one_nonzero): Ditto.
+ 	(ix86_expand_vector_init_one_var): Ditto.
+ 	(ix86_expand_vector_init_general): Ditto.
+ 	(ix86_expand_vector_set_var): Ditto.
+ 	(ix86_expand_vector_set): Ditto.
+ 	(ix86_expand_vector_extract): Ditto.
+ 	* config/i386/mmx.md
+ 	(mmxdoublevecmode): Extend to V4HF/V4BF/V2HF/V2BF.
+ 	(*mmx_pinsrw): Extend to V4FI_64, add a new alternative (&x,
+ 	x, x), add a new define_split after the pattern.
+ 	(*mmx_pextrw<mode>): New define_insn.
+ 	(mmx_pshufw_1): Rename to ..
+ 	(mmx_pshufw<mode>_1): .. this, extend to V4FI_64.
+ 	(*mmx_pblendw64): Extend to V4FI_64.
+ 	(*vec_dup<mode>): New define_insn.
+ 	(vec_setv4hi): Rename to ..
+ 	(vec_set<mode>): .. this, and extend to V4FI_64
+ 	(vec_extractv4hihi): Rename to ..
+ 	(vec_extract<mode><mmxscalarmodelower>): .. this, and extend
+ 	to V4FI_64.
+ 	(vec_init<mode><mmxscalarmodelower>): New define_insn.
+ 	(*pinsrw): Extend to V2FI_32, add a new alternative (&x,
+ 	x, x), and add a new define_split after it.
+ 	(*pextrw<mode>): New define_insn.
+ 	(vec_setv2hi): Rename to ..
+ 	(vec_set<mode>): .. this, extend to V2FI_32.
+ 	(vec_extractv2hihi): Rename to ..
+ 	(vec_extract<mode><mmxscalarmodelower>): .. this, extend to
+ 	V2FI_32.
+ 	(*punpckwd): Extend to V2FI_32.
+ 	(*pshufw_1): Rename to ..
+ 	(*pshufw<mode>_1): .. this, extend to V2FI_32.
+ 	(vec_initv2hihi): Rename to ..
+ 	(vec_init<mode><mmxscalarmodelower>): .. this, and extend to
+ 	V2FI_32.
+ 	(*vec_dup<mode>): New define_insn.
+ 	* config/i386/sse.md (*vec_extract<mode>): Refine constraint
+ 	from v to Yw.
+ 
+ 2023-11-13  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.md (UNSPEC_ARC_CC_NEZ): New UNSPEC that
+ 	represents the carry flag being set if the operand is non-zero.
+ 	(adc_f): New define_insn representing adc with updated flags.
+ 	(ashrdi3): New define_expand that only handles shifts by 1.
+ 	(ashrdi3_cnt1): New pre-reload define_insn_and_split.
+ 	(lshrdi3): New define_expand that only handles shifts by 1.
+ 	(lshrdi3_cnt1): New pre-reload define_insn_and_split.
+ 	(rrcsi2): New define_insn for rrc (SImode rotate right through carry).
+ 	(rrcsi2_carry): Likewise for rrc.f, as above but updating flags.
+ 	(rotldi3): New define_expand that only handles rotates by 1.
+ 	(rotldi3_cnt1): New pre-reload define_insn_and_split.
+ 	(rotrdi3): New define_expand that only handles rotates by 1.
+ 	(rotrdi3_cnt1): New pre-reload define_insn_and_split.
+ 	(lshrsi3_cnt1_carry): New define_insn for lsr.f.
+ 	(ashrsi3_cnt1_carry): New define_insn for asr.f.
+ 	(btst_0_carry): New define_insn for asr.f without result.
+ 
+ 2023-11-13  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.cc (TARGET_FOLD_BUILTIN): Define to
+ 	arc_fold_builtin.
+ 	(arc_fold_builtin): New function.  Convert ARC_BUILTIN_SWAP
+ 	into a rotate.  Evaluate ARC_BUILTIN_NORM and
+ 	ARC_BUILTIN_NORMW of constant arguments.
+ 	* config/arc/arc.md (UNSPEC_ARC_SWAP): Delete.
+ 	(normw): Make output template/assembler whitespace consistent.
+ 	(swap): Remove define_insn, only use of SWAP UNSPEC.
+ 	* config/arc/builtins.def: Tweak indentation.
+ 	(SWAP): Expand using rotlsi2_cnt16 instead of using swap.
+ 
+ 2023-11-13  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (<insn><dwi>3_doubleword_lowpart): New
+ 	define_insn_and_split to optimize register usage of doubleword
+ 	right shifts followed by truncation.
+ 
+ 2023-11-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/i386/constraints.md: Remove j constraint letter from list of
+ 	unused letters.
+ 
+ 2023-11-13  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR rtl-optimization/112483
+ 	* simplify-rtx.cc (simplify_binary_operation_1) <case COPYSIGN>:
+ 	Fix the simplification of (fcopysign x, NEGATIVE_CONST).
+ 
+ 2023-11-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/111967
+ 	* gimple-range-cache.cc (block_range_cache::set_bb_range): Grow
+ 	m_ssa_ranges to num_ssa_names rather than num_ssa_names + 1.
+ 	(block_range_cache::dump): Iterate from 1 rather than 0.  Don't use
+ 	ssa_name (x) unless m_ssa_ranges[x] is non-NULL.  Iterate to
+ 	m_ssa_ranges.length () rather than num_ssa_names.
+ 
+ 2023-11-13  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (LD_AT_LEAST_32_BIT): New mode
+ 	iterator.
+ 	(ST_ANY): New mode iterator.
+ 	(define_peephole2): Use LD_AT_LEAST_32_BIT instead of GPR and
+ 	ST_ANY instead of QHWD for applicable patterns.
+ 
+ 2023-11-13  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/112476
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vec_cond_mask_expr): Call simplify_gen_subreg
+ 	instead of gen_rtx_SUBREG.
+ 
+ 2023-11-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Add bridge mode to lrint and lround
+ 	pattern.
+ 	* config/riscv/riscv-protos.h (expand_vec_lrint): Add new arg
+ 	bridge machine mode.
+ 	(expand_vec_lround): Ditto.
+ 	* config/riscv/riscv-v.cc (emit_vec_widden_cvt_f_f): New helper
+ 	func impl to emit vfwcvt.f.f.
+ 	(emit_vec_rounding_to_integer): Handle the HF to DI rounding
+ 	with the bridge mode.
+ 	(expand_vec_lrint): Reorder the args.
+ 	(expand_vec_lround): Ditto.
+ 	(expand_vec_lceil): Ditto.
+ 	(expand_vec_lfloor): Ditto.
+ 	* config/riscv/vector-iterators.md: Add vector HFmode and bridge
+ 	mode for converting to DI.
+ 
+ 2023-11-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2023-11-11  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* haifa-sched.cc (use_or_clobber_starts_range_p): New.
+ 	(prune_ready_list): USE or CLOBBER should delay execution
+ 	if it starts a new live range.
+ 
+ 2023-11-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*stack_protect_set_4s_<mode>_di):
+ 	Remove alternative 0.
+ 
+ 2023-11-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* ipa-cp.cc (print_ipcp_constant_value): Move to...
+ 	(values_equal_for_ipcp_p): Deal with VAR_DECLs from the
+ 	constant pool.
+ 	* ipa-prop.cc (ipa_print_constant_value): ...here.  Likewise.
+ 	(ipa_print_node_jump_functions_for_edge): Call the function
+ 	ipa_print_constant_value to print IPA_JF_CONST elements.
+ 
+ 2023-11-11  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* haifa-sched.cc (use_or_clobber_starts_range_p): New.
+ 	(prune_ready_list): USE or CLOBBER should delay execution
+ 	if it starts a new live range.
+ 
+ 2023-11-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/112430
+ 	* tree-ssa-math-opts.cc (match_uaddc_usubc): Remove temp_stmts in the
+ 	order they were pushed rather than in reverse order.  Call
+ 	release_defs after gsi_remove.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* target.def (mode_switching.backprop): New hook.
+ 	* doc/tm.texi.in (TARGET_MODE_BACKPROP): New @hook.
+ 	* doc/tm.texi: Regenerate.
+ 	* mode-switching.cc (struct bb_info): Add single_succ.
+ 	(confluence_info): Add transp field.
+ 	(single_succ_confluence_n, single_succ_transfer): New functions.
+ 	(backprop_confluence_n, backprop_transfer): Likewise.
+ 	(optimize_mode_switching): Use them.  Push mode transitions onto
+ 	a block's incoming edges, if the backprop hook requires it.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* target.def (mode_switching.confluence): New hook.
+ 	* doc/tm.texi (TARGET_MODE_CONFLUENCE): New @hook.
+ 	* doc/tm.texi.in: Regenerate.
+ 	* mode-switching.cc (confluence_info): New variable.
+ 	(mode_confluence, forward_confluence_n, forward_transfer): New
+ 	functions.
+ 	(optimize_mode_switching): Use them to calculate mode_in when
+ 	TARGET_MODE_CONFLUENCE is defined.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* mode-switching.cc (commit_mode_sets): Use 1-based edge aux values.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* target.def (mode_switching.after): Add a regs_live parameter.
+ 	* doc/tm.texi: Regenerate.
+ 	* config/epiphany/epiphany-protos.h (epiphany_mode_after): Update
+ 	accordingly.
+ 	* config/epiphany/epiphany.cc (epiphany_mode_needed): Likewise.
+ 	(epiphany_mode_after): Likewise.
+ 	* config/i386/i386.cc (ix86_mode_after): Likewise.
+ 	* config/riscv/riscv.cc (riscv_mode_after): Likewise.
+ 	* config/sh/sh.cc (sh_mode_after): Likewise.
+ 	* mode-switching.cc (optimize_mode_switching): Likewise.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* target.def (mode_switching.needed): Add a regs_live parameter.
+ 	* doc/tm.texi: Regenerate.
+ 	* config/epiphany/epiphany-protos.h (epiphany_mode_needed): Update
+ 	accordingly.
+ 	* config/epiphany/epiphany.cc (epiphany_mode_needed): Likewise.
+ 	* config/epiphany/mode-switch-use.cc (insert_uses): Likewise.
+ 	* config/i386/i386.cc (ix86_mode_needed): Likewise.
+ 	* config/riscv/riscv.cc (riscv_mode_needed): Likewise.
+ 	* config/sh/sh.cc (sh_mode_needed): Likewise.
+ 	* mode-switching.cc (optimize_mode_switching): Likewise.
+ 	(create_pre_exit): Likewise, using the DF simulate functions
+ 	to calculate the required information.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* target.def (mode_switching.eh_handler): New hook.
+ 	* doc/tm.texi.in (TARGET_MODE_EH_HANDLER): New @hook.
+ 	* doc/tm.texi: Regenerate.
+ 	* mode-switching.cc (optimize_mode_switching): Use eh_handler
+ 	to get the mode on entry to an exception handler.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* mode-switching.cc (optimize_mode_switching): Mark the exit
+ 	block as nontransparent if it requires a specific mode.
+ 	Handle the entry and exit mode as sibling rather than nested
+ 	concepts.  Remove outdated comment.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* mode-switching.cc (optimize_mode_switching): Initially
+ 	compute transparency in a bit-per-block bitmap.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* mode-switching.cc (seginfo): Add a prev_mode field.
+ 	(new_seginfo): Take and initialize the prev_mode.
+ 	(optimize_mode_switching): Update calls accordingly.
+ 	Use the recorded modes during the emit phase, rather than
+ 	computing one on the fly.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* mode-switching.cc (add_seginfo): Replace head pointer with
+ 	a pointer to the tail pointer.
+ 	(optimize_mode_switching): Update calls accordingly.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* mode-switching.cc (optimize_mode_switching): Call
+ 	df_note_add_problem.
+ 
+ 2023-11-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* target.def: Tweak documentation of mode-switching hooks.
+ 	* doc/tm.texi.in (OPTIMIZE_MODE_SWITCHING): Tweak documentation.
+ 	(NUM_MODES_FOR_MODE_SWITCHING): Likewise.
+ 	* doc/tm.texi: Regenerate.
+ 
+ 2023-11-11  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/110815
+ 	PR c/112428
+ 	* gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
+ 	remove warning for parameters declared with `static`.
+ 
+ 2023-11-11  Joern Rennecke  <joern.rennecke@embecosm.com>
+ 
+ 	* doc/sourcebuild.texi (Scan the assembly output): Document change.
+ 
+ 2023-11-10  Mao  <sray@live.com>
+ 
+ 	PR middle-end/110983
+ 	* doc/invoke.texi (Option Summary): Add -fpatchable-function-entry.
+ 
+ 2023-11-10  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.md (length): Fix indentation for branch and
+ 	jump length calculation expressions.
+ 
+ 2023-11-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* fold-const.cc (operand_compare::operand_equal_p) <CONSTRUCTOR>:
+ 	Deal with nonempty constant CONSTRUCTORs.
+ 	(operand_compare::hash_operand) <CONSTRUCTOR>: Hash DECL_FIELD_OFFSET
+ 	and DECL_FIELD_BIT_OFFSET for FIELD_DECLs.
+ 
+ 2023-11-10  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/112337
+ 	* ira-costs.cc: (validate_autoinc_and_mem_addr_p): New function.
+ 	(equiv_can_be_consumed_p): Use it.
+ 
+ 2023-11-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* read-rtl.cc (md_reader::read_mapping): Allow iterators to
+ 	include other iterators.
+ 	* doc/md.texi: Document the change.
+ 	* config/aarch64/iterators.md (DREG2, VQ2, TX2, DX2, SX2): Include
+ 	the iterator that is being duplicated, rather than reproducing it.
+ 	(VSTRUCT_D): Redefine using VSTRUCT_[234]D.
+ 	(VSTRUCT_Q): Likewise VSTRUCT_[234]Q.
+ 	(VSTRUCT_2QD, VSTRUCT_3QD, VSTRUCT_4QD, VSTRUCT_QD): Redefine using
+ 	the individual D and Q iterators.
+ 
+ 2023-11-10  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (stack_protect_set_1 peephole2):
+ 	Explicitly check operand 2 for word_mode.
+ 	(stack_protect_set_1 peephole2 #2): Ditto.
+ 	(stack_protect_set_2 peephole2): Ditto.
+ 	(stack_protect_set_3 peephole2): Ditto.
+ 	(*stack_protect_set_4z_<mode>_di): New insn patter.
+ 	(*stack_protect_set_4s_<mode>_di): Ditto.
+ 	(stack_protect_set_4 peephole2): New peephole2 pattern to
+ 	substitute stack protector scratch register clear with unrelated
+ 	register initialization involving zero/sign-extend instruction.
+ 
+ 2023-11-10  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (shift): Use SAL insted of SLL
+ 	for ashift insn mnemonic.
+ 
+ 2023-11-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR tree-optimization/112438
+ 	* tree-vect-loop.cc (vectorizable_induction): Bugfix when
+ 	LOOP_VINFO_USING_SELECT_VL_P.
+ 
+ 2023-11-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	* config/riscv/riscv-v.cc
+ 	(rvv_builder::combine_sequence_use_slideup_profitable_p): New function.
+ 	(expand_vector_init_slideup_combine_sequence): Ditto.
+ 	(expand_vec_init): Add slideup combine optimization.
+ 
+ 2023-11-10  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/112464
+ 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Use
+ 	vect_orig_stmt on scalar_dest_def_info.
+ 
+ 2023-11-10  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_for_each_saved_reg): Place the interrupt
+ 	operation before the XTheadMemPair.
+ 
+ 2023-11-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110221
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): When loop
+ 	masking / len is applied make sure to not schedule
+ 	intenal defs outside of the loop.
+ 
+ 2023-11-10  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* expr.cc (store_constructor): Add "and" operation to uniform mask
+ 	generation.
+ 
+ 2023-11-10  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	PR target/112308
+ 	* config/gcn/gcn-valu.md (add<mode>3<exec_clobber>): Fix B constraint
+ 	and switch to the new format.
+ 	(add<mode>3_dup<exec_clobber>): Likewise.
+ 	(add<mode>3_vcc<exec_vcc>): Likewise.
+ 	(add<mode>3_vcc_dup<exec_vcc>): Likewise.
+ 	(add<mode>3_vcc_zext_dup): Likewise.
+ 	(add<mode>3_vcc_zext_dup_exec): Likewise.
+ 	(add<mode>3_vcc_zext_dup2): Likewise.
+ 	(add<mode>3_vcc_zext_dup2_exec): Likewise.
+ 
+ 2023-11-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112469
+ 	* match.pd (cond ? op a : b -> .COND_op (cond, a, b)): Add
+ 	missing view_converts.
+ 
+ 2023-11-10  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_expand_reduc_scalar): Add clobber to DImode
+ 	min/max instructions.
+ 
+ 2023-11-10  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/lsx.md: Fix instruction name typo in
+ 	lsx_vreplgr2vr_<lsxfmt_f> template.
+ 
+ 2023-11-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (vec_init<mode><vel>): Split patterns.
+ 
+ 2023-11-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-11-10  Pan Li  <pan2.li@intel.com>
+ 	* config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem):
+ 	New fun impl to expand the insn when trailing same elements.
+ 	(expand_vec_init): Try trailing same elements when vec_init.
+ 
+ 2023-11-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem):
+ 	New fun impl to expand the insn when trailing same elements.
+ 	(expand_vec_init): Try trailing same elements when vec_init.
+ 
+ 2023-11-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_copysign<mode>): Remove.
+ 	* config/riscv/autovec.md (cond_copysign<mode>): New pattern.
+ 
+ 2023-11-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/112432
+ 	* internal-fn.def (LRINT): Add FLOATN support.
+ 	(LROUND): Ditto.
+ 	(LLRINT): Ditto.
+ 	(LLROUND): Ditto.
+ 
+ 2023-11-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/combiner.md (single bit sign_extract): Avoid recently
+ 	added patterns for H8/SX.
+ 	(single bit zero_extract): New patterns.
+ 
+ 2023-11-10  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112443
+ 	* config/i386/sse.md (*avx2_pcmp<mode>3_4): Fix swap condition
+ 	from LT to GT since there's not in the pattern.
+ 	(*avx2_pcmp<mode>3_5): Ditto.
+ 
+ 2023-11-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_print_register): Accept modifier code 'W'
+ 	to force emitting register names using the wN form.
+ 	* config/bpf/bpf.md (*mulsidi3_zeroextend): Force operands to
+ 	always use wN written form in pseudo-C assembly syntax.
+ 
+ 2023-11-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-show-locus.cc (layout::m_line_table): New field.
+ 	(compatible_locations_p): Convert to...
+ 	(layout::compatible_locations_p): ...this, replacing uses of
+ 	line_table global with m_line_table.
+ 	(layout::layout): Convert "richloc" param from a pointer to a
+ 	const reference.  Initialize m_line_table member.
+ 	(layout::maybe_add_location_range):  Replace uses of line_table
+ 	global with m_line_table.  Pass the latter to
+ 	linemap_client_expand_location_to_spelling_point.
+ 	(layout::print_leading_fixits): Pass m_line_table to
+ 	affects_line_p.
+ 	(layout::print_trailing_fixits): Likewise.
+ 	(gcc_rich_location::add_location_if_nearby): Update for change
+ 	to layout ctor params.
+ 	(diagnostic_show_locus): Convert to...
+ 	(diagnostic_context::maybe_show_locus): ...this, converting
+ 	richloc param from a pointer to a const reference.  Make "loc"
+ 	const.  Split out printing part of function to...
+ 	(diagnostic_context::show_locus): ...this.
+ 	(selftest::test_offset_impl): Update for change to layout ctor
+ 	params.
+ 	(selftest::test_layout_x_offset_display_utf8): Likewise.
+ 	(selftest::test_layout_x_offset_display_tab): Likewise.
+ 	(selftest::test_tab_expansion): Likewise.
+ 	* diagnostic.h (diagnostic_context::maybe_show_locus): New decl.
+ 	(diagnostic_context::show_locus): New decl.
+ 	(diagnostic_show_locus): Convert from a decl to an inline function.
+ 	* gdbinit.in (break-on-diagnostic): Update from a breakpoint
+ 	on diagnostic_show_locus to one on
+ 	diagnostic_context::maybe_show_locus.
+ 	* genmatch.cc (linemap_client_expand_location_to_spelling_point):
+ 	Add "set" param and use it in place of line_table global.
+ 	* input.cc (expand_location_1): Likewise.
+ 	(expand_location): Update for new param of expand_location_1.
+ 	(expand_location_to_spelling_point): Likewise.
+ 	(linemap_client_expand_location_to_spelling_point): Add "set"
+ 	param and use it in place of line_table global.
+ 	* tree-diagnostic-path.cc (event_range::print): Pass line_table
+ 	for new param of linemap_client_expand_location_to_spelling_point.
+ 
+ 2023-11-09  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (@stack_protect_set_1_<PTR:mode>_<W:mode>):
+ 	Use W mode iterator instead of SWI48.  Output MOV instead of XOR
+ 	for TARGET_USE_MOV0.
+ 	(stack_protect_set_1 peephole2): Use integer modes with
+ 	mode size <= word mode size for operand 3.
+ 	(stack_protect_set_1 peephole2 #2): New peephole2 pattern to
+ 	substitute stack protector scratch register clear with unrelated
+ 	register initialization, originally in front of stack
+ 	protector sequence.
+ 	(*stack_protect_set_3_<PTR:mode>_<SWI48:mode>): New insn pattern.
+ 	(stack_protect_set_1 peephole2): New peephole2 pattern to
+ 	substitute stack protector scratch register clear with unrelated
+ 	register initialization involving LEA instruction.
+ 
+ 2023-11-09  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/110215
+ 	* ira-lives.cc: (add_conflict_from_region_landing_pads): New
+ 	function.
+ 	(process_bb_node_lives): Use it.
+ 
+ 2023-11-09  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/i386/i386.cc (symbolic_base_address_p,
+ 	base_address_p): New, factored out from...
+ 	(extract_base_offset_in_addr): ... here and extended to
+ 	recognize REG+GOTOFF, as in gcc.target/i386/sse2-load-multi.c
+ 	and sse2-store-multi.c with PIE enabled by default.
+ 
+ 2023-11-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* config/aarch64/aarch64-sve.md (cond_copysign<mode>): New.
+ 
+ 2023-11-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* config/aarch64/aarch64.md (copysign<GPF:mode>3): Handle
+ 	copysign (x, -1).
+ 	* config/aarch64/aarch64-simd.md (copysign<mode>3): Likewise.
+ 	* config/aarch64/aarch64-sve.md (copysign<mode>3): Likewise.
+ 
+ 2023-11-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* config/aarch64/aarch64.md (<optab><mode>3): Add SVE split case.
+ 	* config/aarch64/aarch64-simd.md (ior<mode>3<vczle><vczbe>): Likewise.
+ 	* config/aarch64/predicates.md(aarch64_orr_imm_sve_advsimd): New.
+ 
+ 2023-11-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* config/aarch64/aarch64.md (*mov<mode>_aarch64, *movsi_aarch64,
+ 	*movdi_aarch64): Add new w -> Z case.
+ 	* config/aarch64/iterators.md (Vbtype): Add QI and HI.
+ 
+ 2023-11-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* config/aarch64/aarch64-protos.h (aarch64_simd_special_constant_p,
+ 	aarch64_maybe_generate_simd_constant): New.
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VQMOV:mode>,
+ 	*aarch64_simd_mov<VDMOV:mode>): Add new coden for special constants.
+ 	* config/aarch64/aarch64.cc (aarch64_extract_vec_duplicate_wide_int):
+ 	Take optional mode.
+ 	(aarch64_simd_special_constant_p,
+ 	aarch64_maybe_generate_simd_constant): New.
+ 	* config/aarch64/aarch64.md (*movdi_aarch64): Add new codegen for
+ 	special constants.
+ 	* config/aarch64/constraints.md (Dx): new.
+ 
+ 2023-11-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* internal-fn.def (COPYSIGN): New.
+ 	* match.pd (UNCOND_BINARY, COND_BINARY): Map IFN_COPYSIGN to
+ 	IFN_COND_COPYSIGN.
+ 	* optabs.def (cond_copysign_optab, cond_len_copysign_optab): New.
+ 
+ 2023-11-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* match.pd: Add new neg+abs rule, remove inverse copysign rule.
+ 
+ 2023-11-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* match.pd: expand existing copysign optimizations.
+ 
+ 2023-11-09  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
+ 
+ 	PR driver/111605
+ 	* collect2.cc (main): Do not prepend target triple to
+ 	-fuse-ld=lld,mold.
+ 
+ 2023-11-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111133
+ 	* tree-vect-stmts.cc (vect_build_scatter_store_calls):
+ 	Remove and refactor to ...
+ 	(vect_build_one_scatter_store_call): ... this new function.
+ 	(vectorizable_store): Use vect_check_scalar_mask to record
+ 	the SLP node for the mask operand.  Code generate scatters
+ 	with builtin decls from the main scatter vectorization
+ 	path and prepare that for SLP.
+ 	* tree-vect-slp.cc (vect_get_operand_map): Do not look
+ 	at the VDEF to decide between scatter or gather since that
+ 	doesn't work for patterns.  Use the LHS being an SSA_NAME
+ 	or not instead.
+ 
+ 2023-11-09  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_frm_emit_after_bb_end): Only
+ 	perform once emit when at least one succ edge is abnormal.
+ 
+ 2023-11-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_verify_full_masking_avx512):
+ 	Check we have integer mode masks as required by
+ 	vect_get_loop_mask.
+ 
+ 2023-11-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112444
+ 	* tree-ssa-sccvn.cc (visit_phi): Avoid using not visited
+ 	defs as undefined vals.
+ 
+ 2023-11-09  YunQiang Su  <yunqiang.su@cipunited.com>
+ 
+ 	* config/mips/mips.cc(mips_option_override): Set mips_abs to
+ 	2008, if mips_abs is default and mips_nan is 2008.
+ 
+ 2023-11-09  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Document
+ 	-Wreturn-mismatch.  Update -Wreturn-type documentation.
+ 
+ 2023-11-09  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.md: Remove UNSPEC_VEC_ELTSWAP.
+ 	* config/s390/vector.md (eltswapv16qi): New expander.
+ 	(*eltswapv16qi): New insn and splitter.
+ 	(eltswapv8hi): New insn and splitter.
+ 	(eltswap<mode>): New insn and splitter for modes V_HW_4 as well
+ 	as V_HW_2.
+ 	* config/s390/vx-builtins.md (eltswap<mode>): Remove.
+ 	(*eltswapv16qi): Remove.
+ 	(*eltswap<mode>): Remove.
+ 	(*eltswap<mode>_emu): Remove.
+ 
+ 2023-11-09  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (expand_perm_with_rot): Remove.
+ 	(expand_perm_reverse_elements): New.
+ 	(expand_perm_with_vster): Remove.
+ 	(expand_perm_with_vstbrq): Remove.
+ 	(vectorize_vec_perm_const_1): Replace removed functions with new
+ 	one.
+ 
+ 2023-11-09  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (expand_perm_with_merge): Deal with cases
+ 	where vmr{l,h} are still applicable if the operands are swapped.
+ 	(expand_perm_with_vpdi): Likewise for vpdi.
+ 
+ 2023-11-09  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.md (VX_CONV_INT): Remove iterator.
+ 	(gf): Add float mappings.
+ 	(TOINT, toint): New attribute.
+ 	(*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13):
+ 	Remove.
+ 	(*fixuns_trunc<mode><toint>2_z13): Add.
+ 	(*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13):
+ 	Remove.
+ 	(*fix_trunc<mode><toint>2_bfp_z13): Add.
+ 	(*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13): Remove.
+ 	(*floatuns<toint><mode>2_z13): Add.
+ 	* config/s390/vector.md (VX_VEC_CONV_INT): Remove iterator.
+ 	(float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2): Remove.
+ 	(float<tointvec><mode>2): Add.
+ 	(floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2): Remove.
+ 	(floatuns<tointvec><mode>2): Add.
+ 	(fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2):
+ 	Remove.
+ 	(fix_trunc<mode><tointvec>2): Add.
+ 	(fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2):
+ 	Remove.
+ 	(fixuns_trunc<VX_VEC_CONV_BFP:mode><tointvec>2): Add.
+ 
+ 2023-11-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/112339
+ 	* attribs.cc (attribute_ignored_p): Only return true for
+ 	attr_namespace_ignored_p if as is NULL.
+ 	(decl_attributes): Never add ignored attributes.
+ 
+ 2023-11-09  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/bitmanip.md: Avoid the conflict between
+ 	zbb and xtheadmemidx in patterns.
+ 
+ 2023-11-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Record
+ 	to the correct simd_clone_info.
+ 
+ 2023-11-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::preferred_new_lmul_p): Fix ICE.
+ 
+ 2023-11-09  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-cfg.cc (assign_discriminators): Handle debug stmts.
+ 
+ 2023-11-08  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/82524
+ 	* config/i386/i386.md (*add<mode>_1_slp):
+ 	Split insn only for unmatched operand 0.
+ 	(*sub<mode>_1_slp): Ditto.
+ 	(*<any_logic:code><mode>_1_slp): Merge pattern from "*and<mode>_1_slp"
+ 	and "*<any_logic:code><mode>_1_slp" using any_logic code iterator.
+ 	Split insn only for unmatched operand 0.
+ 	(*neg<mode>1_slp): Split insn only for unmatched operand 0.
+ 	(*one_cmpl<mode>_1_slp): Ditto.
+ 	(*ashl<mode>3_1_slp): Ditto.
+ 	(*<any_shiftrt:insn><mode>_1_slp): Ditto.
+ 	(*<any_rotate:insn><mode>_1_slp): Ditto.
+ 	(*addqi_ext<mode>_1): Redefine as define_insn_and_split.  Add
+ 	alternative 1 and split insn after reload for unmatched operand 0.
+ 	(*<plusminus:insn>qi_ext<mode>_2): Merge pattern from
+ 	"*addqi_ext<mode>_2" and "*subqi_ext<mode>_2" using plusminus code
+ 	iterator. Redefine as define_insn_and_split.  Add alternative 1
+ 	and split insn after reload for unmatched operand 0.
+ 	(*subqi_ext<mode>_1): Redefine as define_insn_and_split.  Add
+ 	alternative 1 and split insn after reload for unmatched operand 0.
+ 	(*<any_logic:code>qi_ext<mode>_0): Merge pattern from
+ 	"*andqi_ext<mode>_0" and and "*<any_logic:code>qi_ext<mode>_0" using
+ 	any_logic code iterator.
+ 	(*<any_logic:code>qi_ext<mode>_1): Merge pattern from
+ 	"*andqi_ext<mode>_1" and "*<any_logic:code>qi_ext<mode>_1" using
+ 	any_logic code iterator. Redefine as define_insn_and_split.  Add
+ 	alternative 1 and split insn after reload for unmatched operand 0.
+ 	(*<any_logic:code>qi_ext<mode>_1_cc): Merge pattern from
+ 	"*andqi_ext<mode>_1_cc" and "*xorqi_ext<mode>_1_cc" using any_logic
+ 	code iterator. Redefine as define_insn_and_split.  Add alternative 1
+ 	and split insn after reload for unmatched operand 0.
+ 	(*<any_logic:code>qi_ext<mode>_2): Merge pattern from
+ 	"*andqi_ext<mode>_2" and "*<any_or:code>qi_ext<mode>_2" using
+ 	any_logic code iterator. Redefine as define_insn_and_split.  Add
+ 	alternative 1 and split insn after reload for unmatched operand 0.
+ 	(*<any_logic:code>qi_ext<mode>_3): Redefine as define_insn_and_split.
+ 	Add alternative 1 and split insn after reload for unmatched operand 0.
+ 	(*negqi_ext<mode>_1): Rename from "*negqi_ext<mode>_2".  Add
+ 	alternative 1 and split insn after reload for unmatched operand 0.
+ 	(*one_cmplqi_ext<mode>_1): Ditto.
+ 	(*ashlqi_ext<mode>_1): Ditto.
+ 	(*<any_shiftrt:insn>qi_ext<mode>_1): Ditto.
+ 
+ 2023-11-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Adjust offset
+ 	vector gathering for SLP of emulated gathers.
+ 
+ 2023-11-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_slp_child_index_for_operand):
+ 	Add gatherscatter_p argument.
+ 	* tree-vect-slp.cc (vect_slp_child_index_for_operand): Likewise.
+ 	Pass it on.
+ 	* tree-vect-stmts.cc (vect_check_store_rhs): Turn the rhs
+ 	argument into an output, also output the SLP node associated
+ 	with it.
+ 	(vectorizable_simd_clone_call): Adjust.
+ 	(vectorizable_store): Likewise.
+ 	(vectorizable_load): Likewise.
+ 
+ 2023-11-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Use the correct
+ 	vectorized mask operand.
+ 
+ 2023-11-08  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/vector.md (*vsetvldi_no_side_effects_si_extend):
+ 	New combine pattern.
+ 
+ 2023-11-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc: Fix ICE.
+ 
+ 2023-11-08  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_check_builtin_call): Eliminate warning.
+ 
+ 2023-11-08  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/112394
+ 	* config/i386/constraints.md (jc): New constraint that prohibits
+ 	EGPR on -mno-avx.
+ 	* config/i386/i386.md (*movdi_internal): Change r constraint
+ 	corresponds to Yd.
+ 	(*movti_internal): Likewise.
+ 
+ 2023-11-08  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Mention C diagnostics
+ 	for -fpermissive.
+ 
+ 2023-11-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112092
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Normalize the vsetvls.
+ 
+ 2023-11-08  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/111907
+ 	* config/i386/i386.md (avx_noavx512vl): New definition for isa
+ 	attribute.
+ 	* config/i386/sse.md (*andnot<mode>3): Change isa attribute from
+ 	avx_noavx512f to avx_noavx512vl.
+ 
+ 2023-11-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Remove the size check of lfloor.
+ 	* config/riscv/riscv-v.cc (expand_vec_lfloor): Leverage
+ 	emit_vec_rounding_to_integer for floor.
+ 
+ 2023-11-07  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/112361
+ 	PR target/112359
+ 	PR middle-end/112406
+ 	* tree-if-conv.cc (convert_scalar_cond_reduction): Remember if
+ 	loop was versioned and only then create COND_OPs.
+ 	(predicate_scalar_phi): Do not create COND_OP when not
+ 	vectorizing.
+ 	* tree-vect-loop.cc (vect_expand_fold_left): Re-create
+ 	VEC_COND_EXPR.
+ 	(vectorize_fold_left_reduction): Pass mask to
+ 	vect_expand_fold_left.
+ 
+ 2023-11-07  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/predicates.md ("flags_reg_operand"):
+ 	Make predicate special to avoid automatic mode checks.
+ 
+ 2023-11-07  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>
+ 
+ 	* lto-cgraph.cc (enum LTO_symtab_tags): Add tag for indirect
+ 	functions.
+ 	(output_offload_tables): Write indirect functions.
+ 	(input_offload_tables): read indirect functions.
+ 	* lto-section-names.h (OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): New.
+ 	* omp-builtins.def (BUILT_IN_GOMP_TARGET_MAP_INDIRECT_PTR): New.
+ 	* omp-offload.cc (offload_ind_funcs): New.
+ 	(omp_discover_implicit_declare_target): Add functions marked with
+ 	'omp declare target indirect' to indirect functions list.
+ 	(omp_finish_file): Add indirect functions to section for offload
+ 	indirect functions.
+ 	(execute_omp_device_lower): Redirect indirect calls on target by
+ 	passing function pointer to BUILT_IN_GOMP_TARGET_MAP_INDIRECT_PTR.
+ 	(pass_omp_device_lower::gate): Run pass_omp_device_lower if
+ 	indirect functions are present on an accelerator device.
+ 	* omp-offload.h (offload_ind_funcs): New.
+ 	* tree-core.h (omp_clause_code): Add OMP_CLAUSE_INDIRECT.
+ 	* tree.cc (omp_clause_num_ops): Add entry for OMP_CLAUSE_INDIRECT.
+ 	(omp_clause_code_name): Likewise.
+ 	* tree.h (OMP_CLAUSE_INDIRECT_EXPR): New.
+ 	* config/gcn/mkoffload.cc (process_asm): Process offload_ind_funcs
+ 	section.  Count number of indirect functions.
+ 	(process_obj): Emit number of indirect functions.
+ 	* config/nvptx/mkoffload.cc (ind_func_ids, ind_funcs_tail): New.
+ 	(process): Emit offload_ind_func_table in PTX code.  Emit indirect
+ 	function names and count in image.
+ 	* config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Mark
+ 	indirect functions in PTX code with IND_FUNC_MAP.
+ 
+ 2023-11-07  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* doc/invoke.texi (-fopenmp, -fopenmp-simd): Adjust wording for
+ 	attribute syntax supported also in C.
+ 
+ 2023-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_print_operand): Add a %Z
+ 	modifier for SVE registers.
+ 
+ 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	* builtins.def (DEF_C2X_BUILTIN): Rename to DEF_C23_BUILTIN and
+ 	use flag_isoc23 and function_c23_misc.
+ 	* config/rl78/rl78.cc (rl78_option_override): Compare
+ 	lang_hooks.name with "GNU C23" not "GNU C2X".
+ 	* coretypes.h (function_c2x_misc): Rename to function_c23_misc.
+ 	* doc/cpp.texi (@code{__has_attribute}): Refer to C23 instead of
+ 	C2x.
+ 	* doc/extend.texi: Likewise.
+ 	* doc/invoke.texi: Likewise.
+ 	* dwarf2out.cc (highest_c_language, gen_compile_unit_die): Compare
+ 	against and return "GNU C23" language string instead of "GNU C2X".
+ 	* ginclude/float.h: Refer to C23 instead of C2X in comments.
+ 	* ginclude/stdint-gcc.h: Likewise.
+ 	* glimits.h: Likewise.
+ 	* tree.h: Likewise.
+ 
+ 2023-11-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/sourcebuild.texi (opt_mstrict_align): New target.
+ 
+ 2023-11-07  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_len_<optab><v_double_trunc><mode>):
+ 	New combine pattern.
+ 	(*cond_len_<optab><v_quad_trunc><mode>): Ditto.
+ 	(*cond_len_<optab><v_oct_trunc><mode>): Ditto.
+ 	(*cond_len_extend<v_double_trunc><mode>): Ditto.
+ 	(*cond_len_widen_reduc_plus_scal_<mode>): Ditto.
+ 
+ 2023-11-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112399
+ 	* config/riscv/riscv-avlprop.cc
+ 	(pass_avlprop::get_vlmax_ta_preferred_avl): Enhance AVL propagation.
+ 	* config/riscv/t-riscv: Add new include.
+ 
+ 2023-11-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Remove the size check of lceil.l
+ 	* config/riscv/riscv-v.cc (expand_vec_lceil):  Leverage
+ 	emit_vec_rounding_to_integer for ceil.
+ 
+ 2023-11-06  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_asm_trampoline_template): Fix typo.
+ 
+ 2023-11-06  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 1.
+ 
+ 2023-11-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-show-locus.cc (class colorizer): Take just a
+ 	pretty_printer rather than a diagnostic_context.
+ 	(layout::layout): Make context param a const reference,
+ 	and pretty_printer param non-optional.
+ 	(layout::m_context): Drop field.
+ 	(layout::m_options): New field.
+ 	(layout::m_colorize_source_p): Drop field.
+ 	(layout::m_show_labels_p): Drop field.
+ 	(layout::m_show_line_numbers_p): Drop field.
+ 	(layout::print_gap_in_line_numbering): Use m_options.
+ 	(layout::calculate_line_spans): Likewise.
+ 	(layout::calculate_linenum_width): Likewise.
+ 	(layout::calculate_x_offset_display): Likewise.
+ 	(layout::print_source_line): Likewise.
+ 	(layout::start_annotation_line): Likewise.
+ 	(layout::print_annotation_line): Likewise.
+ 	(layout::print_line): Likewise.
+ 	(gcc_rich_location::add_location_if_nearby): Update for changes to
+ 	layout ctor.
+ 	(diagnostic_show_locus): Likewise.
+ 	(selftest::test_offset_impl): Likewise.
+ 	(selftest::test_layout_x_offset_display_utf8): Likewise.
+ 	(selftest::test_layout_x_offset_display_tab): Likewise.
+ 	(selftest::test_tab_expansion): Likewise.
+ 	* diagnostic.h (diagnostic_context::m_source_printing): Move
+ 	declaration of struct outside diagnostic_context as...
+ 	(struct diagnostic_source_printing_options)... this.
+ 
+ 2023-11-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::push_diagnostics): Convert
+ 	to...
+ 	(diagnostic_option_classifier::push): ...this.
+ 	(diagnostic_context::pop_diagnostics): Convert to...
+ 	(diagnostic_option_classifier::pop): ...this.
+ 	(diagnostic_context::initialize): Move code to...
+ 	(diagnostic_option_classifier::init): ...this new function.
+ 	(diagnostic_context::finish): Move code to...
+ 	(diagnostic_option_classifier::fini): ...this new function.
+ 	(diagnostic_context::classify_diagnostic): Convert to...
+ 	(diagnostic_option_classifier::classify_diagnostic): ...this.
+ 	(diagnostic_context::update_effective_level_from_pragmas): Convert
+ 	to...
+ 	(diagnostic_option_classifier::update_effective_level_from_pragmas):
+ 	...this.
+ 	(diagnostic_context::diagnostic_enabled): Update for refactoring.
+ 	* diagnostic.h (struct diagnostic_classification_change_t): Move into...
+ 	(class diagnostic_option_classifier): ...this new class.
+ 	(diagnostic_context::option_unspecified_p): Update for move of
+ 	fields into m_option_classifier.
+ 	(diagnostic_context::classify_diagnostic): Likewise.
+ 	(diagnostic_context::push_diagnostics): Likewise.
+ 	(diagnostic_context::pop_diagnostics): Likewise.
+ 	(diagnostic_context::update_effective_level_from_pragmas): Delete.
+ 	(diagnostic_context::m_classify_diagnostic): Move into class
+ 	diagnostic_option_classifier.
+ 	(diagnostic_context::m_option_classifier): Likewise.
+ 	(diagnostic_context::m_classification_history): Likewise.
+ 	(diagnostic_context::m_n_classification_history): Likewise.
+ 	(diagnostic_context::m_push_list): Likewise.
+ 	(diagnostic_context::m_n_push): Likewise.
+ 	(diagnostic_context::m_option_classifier): New.
+ 
+ 2023-11-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::set_urlifier): New.
+ 	* diagnostic.h (diagnostic_context::set_urlifier): New decl.
+ 	(diagnostic_context::m_urlifier): Make private.
+ 	* gcc.cc (driver::global_initializations): Use set_urlifier rather
+ 	than directly setting field.
+ 	* toplev.cc (general_init): Likewise.
+ 
+ 2023-11-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_context::check_max_errors): Replace
+ 	uses of diagnostic_kind_count with simple field acesss.
+ 	(diagnostic_context::report_diagnostic): Likewise.
+ 	(diagnostic_text_output_format::~diagnostic_text_output_format):
+ 	Replace use of diagnostic_kind_count with
+ 	diagnostic_context::diagnostic_count.
+ 	* diagnostic.h (diagnostic_kind_count): Delete.
+ 	(errorcount): Replace use of diagnostic_kind_count with
+ 	diagnostic_context::diagnostic_count.
+ 	(warningcount): Likewise.
+ 	(werrorcount): Likewise.
+ 	(sorrycount): Likewise.
+ 
+ 2023-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* doc/sourcebuild.texi (Other attributes): Document thread_fence
+ 	effective-target.
+ 
+ 2023-11-06  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/constraints.md (Bc): Remove constraint.
+ 	(Bn): Rewrite to use x86_extended_reg_mentioned_p predicate.
+ 	* config/i386/i386.cc (ix86_memory_address_reg_class):
+ 	Do not limit processing to TARGET_APX_EGPR.  Exit early for
+ 	NULL insn.  Do not check recog_data.insn before calling
+ 	extract_insn_cached.
+ 	(ix86_insn_base_reg_class): Handle ADDR_GPR8.
+ 	(ix86_regno_ok_for_insn_base_p): Ditto.
+ 	(ix86_insn_index_reg_class): Ditto.
+ 	* config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64):
+ 	Remove insn pattern and corresponding peephole2 pattern.
+ 	(*cmpi_ext<mode>_1): Remove (m,Q) alternative.
+ 	Change (QBc,Q) alternative to (QBn,Q).  Add "addr" attribute.
+ 	(*cmpqi_ext<mode>_3_mem_rex64): Remove insn pattern
+ 	and corresponding peephole2 pattern.
+ 	(*cmpi_ext<mode>_3): Remove (Q,m) alternative.
+ 	Change (Q,QnBc) alternative to (Q,QnBn).  Add "addr" attribute.
+ 	(*extzvqi_mem_rex64): Remove insn pattern and
+ 	corresponding peephole2 pattern.
+ 	(*extzvqi): Remove (Q,m) alternative.  Change (Q,QnBc)
+ 	alternative to (Q,QnBn).  Add "addr" attribute.
+ 	(*insvqi_1_mem_rex64): Remove insn pattern and
+ 	corresponding peephole2 pattern.
+ 	(*insvqi_1): Remove (Q,m) alternative.  Change (Q,QnBc)
+ 	alternative to (Q,QnBn).  Add "addr" attribute.
+ 	(@insv<mode>_1): Ditto.
+ 	(*addqi_ext<mode>_0): Remove (m,0,Q) alternative.  Change (QBc,0,Q)
+ 	alternative to (QBn,0,Q).  Add "addr" attribute.
+ 	(*subqi_ext<mode>_0): Ditto.
+ 	(*andqi_ext<mode>_0): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_0): Ditto.
+ 	(*addqi_ext<mode>_1): Remove (Q,0,m) alternative.  Change (Q,0,QnBc)
+ 	alternative to (Q,0,QnBn).  Add "addr" attribute.
+ 	(*andqi_ext<mode>_1): Ditto.
+ 	(*andqi_ext<mode>_1_cc): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_1): Ditto.
+ 	(*xorqi_ext<mode>_1_cc): Ditto.
+ 	* config/i386/predicates.md (nonimm_x64constmem_operand):
+ 	Remove predicate.
+ 	(general_x64constmem_operand): Ditto.
+ 	(norex_memory_operand): Ditto.
+ 
+ 2023-11-06  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/107954
+ 	* doc/cpp.texi (__STDC_VERSION__): Refer to -std=c23 and
+ 	-std=gnu23 instead of -std=c2x and -std=gnu2x.
+ 	* doc/extend.texi (Attribute Syntax): Refer to C23 and -std=c23
+ 	instead of C2x and -std=c2x.
+ 	* doc/invoke.texi (-Wc11-c23-compat, -std=c23, -std=gnu23)
+ 	(-std=iso9899:2024): Document, with -Wc11-c2x-compat, -std=c2x and
+ 	-std=gnu2x as deprecated aliases.  Update descriptions of C23.
+ 	* doc/standards.texi (Standards): Describe C23 with C2X as an old
+ 	name.
+ 
+ 2023-11-06  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config/nvptx/nvptx.h (MAKE_DECL_ONE_ONLY): Define.
+ 
+ 2023-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112405
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call):
+ 	Properly handle invariant and/or loop mask passing.
+ 
+ 2023-11-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Remove the size check of lround.
+ 	* config/riscv/riscv-v.cc (expand_vec_lround): Leverage
+ 	emit_vec_rounding_to_integer for round.
+ 
+ 2023-11-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/predicates.md: Adapt predicate.
+ 	* config/riscv/riscv-protos.h (can_be_broadcasted_p): New function.
+ 	* config/riscv/riscv-v.cc (can_be_broadcasted_p): Ditto.
+ 	* config/riscv/vector.md (vec_duplicate<mode>): New pattern.
+ 	(*vec_duplicate<mode>): Adapt vec_duplicate insn pattern.
+ 
+ 2023-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111950
+ 	* tree-vect-loop-manip.cc (slpeel_duplicate_current_defs_from_edges):
+ 	Remove.
+ 	(find_guard_arg): Likewise.
+ 	(slpeel_update_phi_nodes_for_guard2): Likewise.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Remove calls to
+ 	slpeel_duplicate_current_defs_from_edges, do not elide
+ 	LC-PHIs for invariant values.
+ 	(vect_do_peeling): Materialize PHI arguments for the edge
+ 	around the epilog from the PHI defs of the main loop exit.
+ 
+ 2023-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112404
+ 	* tree-vectorizer.h (get_mask_type_for_scalar_type): Declare
+ 	overload with SLP node argument.
+ 	* tree-vect-stmts.cc (get_mask_type_for_scalar_type): Implement it.
+ 	(vect_check_scalar_mask): Use it.
+ 	* tree-vect-slp.cc (vect_gather_slp_loads): Properly identify
+ 	loads also for nodes with children, like .MASK_LOAD.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Look at the
+ 	representative for load nodes and check whether it is a grouped
+ 	access before looking for load-lanes support.
+ 
+ 2023-11-06  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/111760
+ 	* config/riscv/autovec.md (vcond_mask_len_<mode><vm>): Add
+ 	expander.
+ 	* config/riscv/riscv-protos.h (enum insn_type): Add.
+ 	* config/riscv/riscv-v.cc (needs_fp_rounding): Add !pred_mov.
+ 	* doc/md.texi: Add vcond_mask_len.
+ 	* gimple-match-exports.cc (maybe_resimplify_conditional_op):
+ 	Create VCOND_MASK_LEN when length masking.
+ 	* gimple-match.h (gimple_match_op::gimple_match_op): Always
+ 	initialize len and bias.
+ 	* internal-fn.cc (vec_cond_mask_len_direct): Add.
+ 	(direct_vec_cond_mask_len_optab_supported_p): Add.
+ 	(internal_fn_len_index): Add VCOND_MASK_LEN.
+ 	(internal_fn_mask_index): Ditto.
+ 	* internal-fn.def (VCOND_MASK_LEN): New internal function.
+ 	* match.pd: Combine unconditional unary, binary and ternary
+ 	operations into the respective COND_LEN operations.
+ 	* optabs.def (OPTAB_D): Add vcond_mask_len optab.
+ 
+ 2023-11-06  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* explow.cc (align_dynamic_address): Do nothing if the required
+ 	alignment is a byte.
+ 
+ 2023-11-06  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* function.h (get_stack_dynamic_offset): Declare.
+ 	* function.cc (get_stack_dynamic_offset): New function,
+ 	split out from...
+ 	(get_stack_dynamic_offset): ...here.
+ 	* explow.cc (allocate_dynamic_stack_space): Handle calls made
+ 	after virtual registers have been instantiated.
+ 
+ 2023-11-06  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112393
+ 	* config/i386/i386-expand.cc (ix86_expand_vec_perm_vpermt2):
+ 	Avoid generating RTL code when d->testing_p.
+ 
+ 2023-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112369
+ 	* tree.cc (strip_float_extensions): Use element_precision.
+ 
+ 2023-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/112296
+ 	* doc/extend.texi (__builtin_constant_p): Clarify that
+ 	side-effects are discarded.
+ 
+ 2023-11-06  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/111828
+ 	* config.in: Regenerate.
+ 	* config/rs6000/rs6000.cc (rs6000_update_ipa_fn_target_info): Guard
+ 	inline asm handling under !HAVE_AS_POWER10_HTM.
+ 	* configure: Regenerate.
+ 	* configure.ac: Detect assembler support for HTM insns at power10.
+ 
+ 2023-11-06  xuli  <xuli1@eswincomputing.com>
+ 	    Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): New function for the hook.
+ 	(riscv_register_pragmas): Register the hook.
+ 	* config/riscv/riscv-protos.h (resolve_overloaded_builtin): New decl.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: New function impl.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (build_one): Register overloaded function.
+ 	* config/riscv/riscv-vector-builtins.cc (struct non_overloaded_registered_function_hasher):
+ 	New hash table.
+ 	(function_builder::add_function): Add overloaded arg.
+ 	(function_builder::add_unique_function): Map overloaded function to non-overloaded function.
+ 	(function_builder::add_overloaded_function): New API impl.
+ 	(registered_function::overloaded_hash): Calculate hash value.
+ 	(has_vxrm_or_frm_p): New function impl.
+ 	(non_overloaded_registered_function_hasher::hash): Ditto.
+ 	(non_overloaded_registered_function_hasher::equal): Ditto.
+ 	(handle_pragma_vector): Allocate space for hash table.
+ 	(resolve_overloaded_builtin): New function impl.
+ 	* config/riscv/riscv-vector-builtins.h (function_base::may_require_frm_p): Ditto.
+ 	(function_base::may_require_vxrm_p): Ditto.
+ 
+ 2023-11-06  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/111889
+ 	* config/i386/avx512bf16intrin.h: Push no-evex512 target.
+ 	* config/i386/avx512bf16vlintrin.h: Ditto.
+ 	* config/i386/avx512bitalgvlintrin.h: Ditto.
+ 	* config/i386/avx512bwintrin.h: Ditto.
+ 	* config/i386/avx512dqintrin.h: Ditto.
+ 	* config/i386/avx512fintrin.h: Ditto.
+ 	* config/i386/avx512fp16intrin.h: Ditto.
+ 	* config/i386/avx512fp16vlintrin.h: Ditto.
+ 	* config/i386/avx512ifmavlintrin.h: Ditto.
+ 	* config/i386/avx512vbmi2vlintrin.h: Ditto.
+ 	* config/i386/avx512vbmivlintrin.h: Ditto.
+ 	* config/i386/avx512vlbwintrin.h: Ditto.
+ 	* config/i386/avx512vldqintrin.h: Ditto.
+ 	* config/i386/avx512vlintrin.h: Ditto.
+ 	* config/i386/avx512vnnivlintrin.h: Ditto.
+ 	* config/i386/avx512vp2intersectvlintrin.h: Ditto.
+ 	* config/i386/avx512vpopcntdqvlintrin.h: Ditto.
+ 
+ 2023-11-06  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512bf16vlintrin.h
+ 	(_mm_avx512_castsi128_ps): New.
+ 	(_mm256_avx512_castsi256_ps): Ditto.
+ 	(_mm_avx512_slli_epi32): Ditto.
+ 	(_mm256_avx512_slli_epi32): Ditto.
+ 	(_mm_avx512_cvtepi16_epi32): Ditto.
+ 	(_mm256_avx512_cvtepi16_epi32): Ditto.
+ 	(__attribute__): Change intrin call.
+ 	* config/i386/avx512bwintrin.h
+ 	(_mm_avx512_set_epi32): New.
+ 	(_mm_avx512_set_epi16): Ditto.
+ 	(_mm_avx512_set_epi8): Ditto.
+ 	(__attribute__): Change intrin call.
+ 	* config/i386/avx512fp16intrin.h: Ditto.
+ 	* config/i386/avx512fp16vlintrin.h
+ 	(_mm_avx512_set1_ps): New.
+ 	(_mm256_avx512_set1_ps): Ditto.
+ 	(_mm_avx512_and_si128): Ditto.
+ 	(_mm256_avx512_and_si256): Ditto.
+ 	(__attribute__): Change intrin call.
+ 	* config/i386/avx512vlbwintrin.h
+ 	(_mm_avx512_set1_epi32): New.
+ 	(_mm_avx512_set1_epi16): Ditto.
+ 	(_mm_avx512_set1_epi8): Ditto.
+ 	(_mm256_avx512_set_epi16): Ditto.
+ 	(_mm256_avx512_set_epi8): Ditto.
+ 	(_mm256_avx512_set1_epi16): Ditto.
+ 	(_mm256_avx512_set1_epi32): Ditto.
+ 	(_mm256_avx512_set1_epi8): Ditto.
+ 	(_mm_avx512_max_epi16): Ditto.
+ 	(_mm_avx512_min_epi16): Ditto.
+ 	(_mm_avx512_max_epu16): Ditto.
+ 	(_mm_avx512_min_epu16): Ditto.
+ 	(_mm_avx512_max_epi8): Ditto.
+ 	(_mm_avx512_min_epi8): Ditto.
+ 	(_mm_avx512_max_epu8): Ditto.
+ 	(_mm_avx512_min_epu8): Ditto.
+ 	(_mm256_avx512_max_epi16): Ditto.
+ 	(_mm256_avx512_min_epi16): Ditto.
+ 	(_mm256_avx512_max_epu16): Ditto.
+ 	(_mm256_avx512_min_epu16): Ditto.
+ 	(_mm256_avx512_insertf128_ps): Ditto.
+ 	(_mm256_avx512_extractf128_pd): Ditto.
+ 	(_mm256_avx512_extracti128_si256): Ditto.
+ 	(_MM256_AVX512_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
+ 	(_MM256_AVX512_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
+ 	(_MM256_AVX512_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
+ 	(_MM256_AVX512_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
+ 	(__attribute__): Change intrin call.
+ 
+ 2023-11-06  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512bf16vlintrin.h: Change intrin call.
+ 	* config/i386/avx512fintrin.h
+ 	(_mm_avx512_undefined_ps): New.
+ 	(_mm_avx512_undefined_pd): Ditto.
+ 	(__attribute__): Change intrin call.
+ 	* config/i386/avx512vbmivlintrin.h: Ditto.
+ 	* config/i386/avx512vlbwintrin.h: Ditto.
+ 	* config/i386/avx512vldqintrin.h: Ditto.
+ 	* config/i386/avx512vlintrin.h
+ 	(_mm_avx512_undefined_si128): New.
+ 	(_mm256_avx512_undefined_ps): Ditto.
+ 	(_mm256_avx512_undefined_pd): Ditto.
+ 	(_mm256_avx512_undefined_si256): Ditto.
+ 	(__attribute__): Change intrin call.
+ 
+ 2023-11-06  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512bitalgvlintrin.h: Change intrin call.
+ 	* config/i386/avx512dqintrin.h: Ditto.
+ 	* config/i386/avx512fintrin.h:
+ 	(_mm_avx512_setzero_ps): New.
+ 	(_mm_avx512_setzero_pd): Ditto.
+ 	(__attribute__): Change intrin call.
+ 	* config/i386/avx512fp16intrin.h: Ditto.
+ 	* config/i386/avx512fp16vlintrin.h: Ditto.
+ 	* config/i386/avx512vbmi2vlintrin.h: Ditto.
+ 	* config/i386/avx512vbmivlintrin.h: Ditto.
+ 	* config/i386/avx512vlbwintrin.h: Ditto.
+ 	* config/i386/avx512vldqintrin.h: Ditto.
+ 	* config/i386/avx512vlintrin.h
+ 	(_mm_avx512_setzero_si128): New.
+ 	(_mm256_avx512_setzero_pd): Ditto.
+ 	(_mm256_avx512_setzero_ps): Ditto.
+ 	(_mm256_avx512_setzero_si256): Ditto.
+ 	(__attribute__): Change intrin call.
+ 	* config/i386/avx512vpopcntdqvlintrin.h: Ditto.
+ 	* config/i386/gfniintrin.h: Ditto.
+ 
+ 2023-11-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.h (enum reg_class): Add LEGACY_INDEX_REGS.
+ 	Rename LEGACY_REGS to LEGACY_GENERAL_REGS.
+ 	(REG_CLASS_NAMES): Ditto.
+ 	(REG_CLASS_CONTENTS): Ditto.
+ 	* config/i386/constraints.md ("R"): Update for rename.
+ 
+ 2023-11-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* mode-switching.cc: Remove unused forward references.
+ 	(seginfo): Remove bbnum.
+ 	(new_seginfo): Remove associated argument.
+ 	(optimize_mode_switching): Update calls accordingly.
+ 
+ 2023-11-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* read-rtl.cc (read_rtx_operand): Avoid spinning endlessly for
+ 	invalid [...] operands.
+ 
+ 2023-11-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/112105
+ 	* config/aarch64/aarch64.cc (aarch64_modes_compatible_p): New
+ 	function, with the core logic extracted from...
+ 	(aarch64_can_change_mode_class): ...here.  Extend the previous rules
+ 	to allow changes between partial SVE modes and other modes if
+ 	the other mode is no bigger than an element, and if no other rule
+ 	prevents it.  Use the aarch64_modes_tieable_p handling of
+ 	partial Advanced SIMD structure modes.
+ 	(aarch64_modes_tieable_p): Use aarch64_modes_compatible_p.
+ 	Allow all vector mode ties that it allows.
+ 
+ 2023-11-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Remove the size check of lrint.
+ 	* config/riscv/riscv-v.cc (emit_vec_narrow_cvt_x_f): New help
+ 	emit func impl.
+ 	(emit_vec_widden_cvt_x_f): New help emit func impl.
+ 	(emit_vec_rounding_to_integer): New func impl to emit the
+ 	rounding from FP to integer.
+ 	(expand_vec_lrint): Leverage emit_vec_rounding_to_integer.
+ 	* config/riscv/vector.md: Take V_VLSF for vfncvt.
+ 
+ 2023-11-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix bug.
+ 
+ 2023-11-04  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	PR bootstrap/112379
+ 	* gcc-urlifier.cc (get_url_suffix_for_quoted_text): Mark as
+ 	ATTRIBUTE_UNUSED.
+ 
+ 2023-11-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector-iterators.md: Remove HF modes.
+ 
+ 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc: Include "pretty-print-urlifier.h".
+ 	(diagnostic_context::initialize): Initialize m_urlifier.
+ 	(diagnostic_context::finish): Clean up m_urlifier
+ 	(diagnostic_report::diagnostic): m_urlifier to pp_format.
+ 	* diagnostic.h (diagnostic_context::m_urlifier): New field.
+ 	* gcc-urlifier.cc: New file.
+ 	* gcc-urlifier.def: New file.
+ 	* gcc-urlifier.h: New file.
+ 	* gcc.cc: Include "gcc-urlifier.h".
+ 	(driver::global_initializations): Initialize global_dc->m_urlifier.
+ 	* pretty-print-urlifier.h: New file.
+ 	* pretty-print.cc: Include "pretty-print-urlifier.h".
+ 	(obstack_append_string): New.
+ 	(urlify_quoted_string): New.
+ 	(pp_format): Add "urlifier" param and use it to implement optional
+ 	urlification of quoted text strings.
+ 	(pp_output_formatted_text): Make buffer a const pointer.
+ 	(selftest::pp_printf_with_urlifier): New.
+ 	(selftest::test_urlification): New.
+ 	(selftest::pretty_print_cc_tests): Call it.
+ 	* pretty-print.h (class urlifier): New forward declaration.
+ 	(pp_format): Add optional urlifier param.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest::gcc_urlifier_cc_tests .
+ 	* selftest.h (selftest::gcc_urlifier_cc_tests): New decl.
+ 	* toplev.cc: Include "gcc-urlifier.h".
+ 	(general_init): Initialize global_dc->m_urlifier.
+ 
+ 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (GCC_OBJS): Add gcc-urlifier.o.
+ 	(OBJS): Likewise.
+ 
+ 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* common.opt (fdiagnostics-text-art-charset=): Remove refererence
+ 	to diagnostic-text-art.h.
+ 	* coretypes.h (struct diagnostic_context): Replace forward decl
+ 	with...
+ 	(class diagnostic_context): ...this.
+ 	* diagnostic-format-json.cc: Update for changes to
+ 	diagnostic_context.
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* diagnostic-show-locus.cc: Likewise.
+ 	* diagnostic-text-art.h: Deleted file, moving content...
+ 	(enum diagnostic_text_art_charset): ...to diagnostic.h,
+ 	(DIAGNOSTICS_TEXT_ART_CHARSET_DEFAULT): ...deleting,
+ 	(diagnostics_text_art_charset_init): ...deleting in favor of
+ 	diagnostic_context::set_text_art_charset.
+ 	* diagnostic.cc: Remove include of "diagnostic-text-art.h".
+ 	(pedantic_warning_kind): Update for field renaming.
+ 	(permissive_error_kind): Likewise.
+ 	(permissive_error_option): Likewise.
+ 	(diagnostic_initialize): Convert to...
+ 	(diagnostic_context::initialize): ...this, updating for field
+ 	renamings.
+ 	(diagnostic_color_init): Convert to...
+ 	(diagnostic_context::color_init): ...this.
+ 	(diagnostic_urls_init): Convert to...
+ 	(diagnostic_context::urls_init): ...this.
+ 	(diagnostic_initialize_input_context): Convert to...
+ 	(diagnostic_context::initialize_input_context): ...this.
+ 	(diagnostic_finish): Convert to...
+ 	(diagnostic_context::finish): ...this, updating for field
+ 	renamings.
+ 	(diagnostic_context::set_output_format): New.
+ 	(diagnostic_context::set_client_data_hooks): New.
+ 	(diagnostic_context::create_edit_context): New.
+ 	(diagnostic_converted_column): Convert to...
+ 	(diagnostic_context::converted_column): ...this.
+ 	(diagnostic_get_location_text): Update for field renaming.
+ 	(diagnostic_check_max_errors): Convert to...
+ 	(diagnostic_context::check_max_errors): ...this, updating for
+ 	field renamings.
+ 	(diagnostic_action_after_output): Convert to...
+ 	(diagnostic_context::action_after_output): ...this, updating for
+ 	field renamings.
+ 	(last_module_changed_p): Delete.
+ 	(set_last_module): Delete.
+ 	(includes_seen): Convert to...
+ 	(diagnostic_context::includes_seen_p): ...this, updating for field
+ 	renamings.
+ 	(diagnostic_report_current_module): Convert to...
+ 	(diagnostic_context::report_current_module): ...this, updating for
+ 	field renamings, and replacing uses of last_module_changed_p and
+ 	set_last_module to simple field accesses.
+ 	(diagnostic_show_any_path): Convert to...
+ 	(diagnostic_context::show_any_path): ...this.
+ 	(diagnostic_classify_diagnostic): Convert to...
+ 	(diagnostic_context::classify_diagnostic): ...this, updating for
+ 	field renamings.
+ 	(diagnostic_push_diagnostics): Convert to...
+ 	(diagnostic_context::push_diagnostics): ...this, updating for field
+ 	renamings.
+ 	(diagnostic_pop_diagnostics): Convert to...
+ 	(diagnostic_context::pop_diagnostics): ...this, updating for field
+ 	renamings.
+ 	(get_any_inlining_info): Convert to...
+ 	(diagnostic_context::get_any_inlining_info): ...this, updating for
+ 	field renamings.
+ 	(update_effective_level_from_pragmas): Convert to...
+ 	(diagnostic_context::update_effective_level_from_pragmas):
+ 	...this, updating for field renamings.
+ 	(print_any_cwe): Convert to...
+ 	(diagnostic_context::print_any_cwe): ...this.
+ 	(print_any_rules): Convert to...
+ 	(diagnostic_context::print_any_rules): ...this.
+ 	(print_option_information): Convert to...
+ 	(diagnostic_context::print_option_information): ...this, updating
+ 	for field renamings.
+ 	(diagnostic_enabled): Convert to...
+ 	(diagnostic_context::diagnostic_enabled): ...this, updating for
+ 	field renamings.
+ 	(warning_enabled_at): Convert to...
+ 	(diagnostic_context::warning_enabled_at): ...this.
+ 	(diagnostic_report_diagnostic): Convert to...
+ 	(diagnostic_context::report_diagnostic): ...this, updating for
+ 	field renamings and conversions to member functions.
+ 	(diagnostic_append_note): Update for field renaming.
+ 	(diagnostic_impl): Use diagnostic_context::report_diagnostic
+ 	directly.
+ 	(diagnostic_n_impl): Likewise.
+ 	(diagnostic_emit_diagram): Convert to...
+ 	(diagnostic_context::emit_diagram): ...this, updating for field
+ 	renamings.
+ 	(error_recursion): Convert to...
+ 	(diagnostic_context::error_recursion): ...this.
+ 	(diagnostic_text_output_format::~diagnostic_text_output_format):
+ 	Use accessor.
+ 	(diagnostics_text_art_charset_init): Convert to...
+ 	(diagnostic_context::set_text_art_charset): ...this.
+ 	(assert_location_text): Update for field renamings.
+ 	* diagnostic.h (enum diagnostic_text_art_charset): Move here from
+ 	diagnostic-text-art.h.
+ 	(struct diagnostic_context): Convert to...
+ 	(class diagnostic_context): ...this.
+ 	(diagnostic_context::ice_handler_callback_t): New typedef.
+ 	(diagnostic_context::set_locations_callback_t): New typedef.
+ 	(diagnostic_context::initialize): New decl.
+ 	(diagnostic_context::color_init): New decl.
+ 	(diagnostic_context::urls_init): New decl.
+ 	(diagnostic_context::file_cache_init): New decl.
+ 	(diagnostic_context::finish): New decl.
+ 	(diagnostic_context::set_set_locations_callback): New.
+ 	(diagnostic_context::initialize_input_context): New decl.
+ 	(diagnostic_context::warning_enabled_at): New decl.
+ 	(diagnostic_context::option_unspecified_p): New.
+ 	(diagnostic_context::report_diagnostic): New decl.
+ 	(diagnostic_context::report_current_module): New decl.
+ 	(diagnostic_context::check_max_errors): New decl.
+ 	(diagnostic_context::action_after_output): New decl.
+ 	(diagnostic_context::classify_diagnostic): New decl.
+ 	(diagnostic_context::push_diagnostics): New decl.
+ 	(diagnostic_context::pop_diagnostics): New decl.
+ 	(diagnostic_context::emit_diagram): New decl.
+ 	(diagnostic_context::set_output_format): New decl.
+ 	(diagnostic_context::set_text_art_charset): New decl.
+ 	(diagnostic_context::set_client_data_hooks): New decl.
+ 	(diagnostic_context::create_edit_context): New decl.
+ 	(diagnostic_context::set_warning_as_error_requested): New.
+ 	(diagnostic_context::set_report_bug): New.
+ 	(diagnostic_context::set_extra_output_kind): New.
+ 	(diagnostic_context::set_show_cwe): New.
+ 	(diagnostic_context::set_show_rules): New.
+ 	(diagnostic_context::set_path_format): New.
+ 	(diagnostic_context::set_show_path_depths): New.
+ 	(diagnostic_context::set_show_option_requested): New.
+ 	(diagnostic_context::set_max_errors): New.
+ 	(diagnostic_context::set_escape_format): New.
+ 	(diagnostic_context::set_ice_handler_callback): New.
+ 	(diagnostic_context::warning_as_error_requested_p): New.
+ 	(diagnostic_context::show_path_depths_p): New.
+ 	(diagnostic_context::get_path_format): New.
+ 	(diagnostic_context::get_escape_format): New.
+ 	(diagnostic_context::get_file_cache): New.
+ 	(diagnostic_context::get_edit_context): New.
+ 	(diagnostic_context::get_client_data_hooks): New.
+ 	(diagnostic_context::get_diagram_theme): New.
+ 	(diagnostic_context::converted_column): New decl.
+ 	(diagnostic_context::diagnostic_count): New.
+ 	(diagnostic_context::includes_seen_p): New decl.
+ 	(diagnostic_context::print_any_cwe): New decl.
+ 	(diagnostic_context::print_any_rules): New decl.
+ 	(diagnostic_context::print_option_information): New decl.
+ 	(diagnostic_context::show_any_path): New decl.
+ 	(diagnostic_context::error_recursion): New decl.
+ 	(diagnostic_context::diagnostic_enabled): New decl.
+ 	(diagnostic_context::get_any_inlining_info): New decl.
+ 	(diagnostic_context::update_effective_level_from_pragmas): New
+ 	decl.
+ 	(diagnostic_context::m_file_cache): Make private.
+ 	(diagnostic_context::diagnostic_count): Rename to...
+ 	(diagnostic_context::m_diagnostic_count): ...this and make
+ 	private.
+ 	(diagnostic_context::warning_as_error_requested): Rename to...
+ 	(diagnostic_context::m_warning_as_error_requested): ...this and
+ 	make private.
+ 	(diagnostic_context::n_opts): Rename to...
+ 	(diagnostic_context::m_n_opts): ...this and make private.
+ 	(diagnostic_context::classify_diagnostic): Rename to...
+ 	(diagnostic_context::m_classify_diagnostic): ...this and make
+ 	private.
+ 	(diagnostic_context::classification_history): Rename to...
+ 	(diagnostic_context::m_classification_history): ...this and make
+ 	private.
+ 	(diagnostic_context::n_classification_history): Rename to...
+ 	(diagnostic_context::m_n_classification_history): ...this and make
+ 	private.
+ 	(diagnostic_context::push_list): Rename to...
+ 	(diagnostic_context::m_push_list): ...this and make private.
+ 	(diagnostic_context::n_push): Rename to...
+ 	(diagnostic_context::m_n_push): ...this and make private.
+ 	(diagnostic_context::show_cwe): Rename to...
+ 	(diagnostic_context::m_show_cwe): ...this and make private.
+ 	(diagnostic_context::show_rules): Rename to...
+ 	(diagnostic_context::m_show_rules): ...this and make private.
+ 	(diagnostic_context::path_format): Rename to...
+ 	(diagnostic_context::m_path_format): ...this and make private.
+ 	(diagnostic_context::show_path_depths): Rename to...
+ 	(diagnostic_context::m_show_path_depths): ...this and make
+ 	private.
+ 	(diagnostic_context::show_option_requested): Rename to...
+ 	(diagnostic_context::m_show_option_requested): ...this and make
+ 	private.
+ 	(diagnostic_context::abort_on_error): Rename to...
+ 	(diagnostic_context::m_abort_on_error): ...this.
+ 	(diagnostic_context::show_column): Rename to...
+ 	(diagnostic_context::m_show_column): ...this.
+ 	(diagnostic_context::pedantic_errors): Rename to...
+ 	(diagnostic_context::m_pedantic_errors): ...this.
+ 	(diagnostic_context::permissive): Rename to...
+ 	(diagnostic_context::m_permissive): ...this.
+ 	(diagnostic_context::opt_permissive): Rename to...
+ 	(diagnostic_context::m_opt_permissive): ...this.
+ 	(diagnostic_context::fatal_errors): Rename to...
+ 	(diagnostic_context::m_fatal_errors): ...this.
+ 	(diagnostic_context::dc_inhibit_warnings): Rename to...
+ 	(diagnostic_context::m_inhibit_warnings): ...this.
+ 	(diagnostic_context::dc_warn_system_headers): Rename to...
+ 	(diagnostic_context::m_warn_system_headers): ...this.
+ 	(diagnostic_context::max_errors): Rename to...
+ 	(diagnostic_context::m_max_errors): ...this and make private.
+ 	(diagnostic_context::internal_error): Rename to...
+ 	(diagnostic_context::m_internal_error): ...this.
+ 	(diagnostic_context::option_enabled): Rename to...
+ 	(diagnostic_context::m_option_enabled): ...this.
+ 	(diagnostic_context::option_state): Rename to...
+ 	(diagnostic_context::m_option_state): ...this.
+ 	(diagnostic_context::option_name): Rename to...
+ 	(diagnostic_context::m_option_name): ...this.
+ 	(diagnostic_context::get_option_url): Rename to...
+ 	(diagnostic_context::m_get_option_url): ...this.
+ 	(diagnostic_context::print_path): Rename to...
+ 	(diagnostic_context::m_print_path): ...this.
+ 	(diagnostic_context::make_json_for_path): Rename to...
+ 	(diagnostic_context::m_make_json_for_path): ...this.
+ 	(diagnostic_context::x_data): Rename to...
+ 	(diagnostic_context::m_client_aux_data): ...this.
+ 	(diagnostic_context::last_location): Rename to...
+ 	(diagnostic_context::m_last_location): ...this.
+ 	(diagnostic_context::last_module): Rename to...
+ 	(diagnostic_context::m_last_module): ...this and make private.
+ 	(diagnostic_context::lock): Rename to...
+ 	(diagnostic_context::m_lock): ...this and make private.
+ 	(diagnostic_context::lang_mask): Rename to...
+ 	(diagnostic_context::m_lang_mask): ...this.
+ 	(diagnostic_context::inhibit_notes_p): Rename to...
+ 	(diagnostic_context::m_inhibit_notes_p): ...this.
+ 	(diagnostic_context::report_bug): Rename to...
+ 	(diagnostic_context::m_report_bug): ...this and make private.
+ 	(diagnostic_context::extra_output_kind): Rename to...
+ 	(diagnostic_context::m_extra_output_kind): ...this and make
+ 	private.
+ 	(diagnostic_context::column_unit): Rename to...
+ 	(diagnostic_context::m_column_unit): ...this and make private.
+ 	(diagnostic_context::column_origin): Rename to...
+ 	(diagnostic_context::m_column_origin): ...this and make private.
+ 	(diagnostic_context::tabstop): Rename to...
+ 	(diagnostic_context::m_tabstop): ...this and make private.
+ 	(diagnostic_context::escape_format): Rename to...
+ 	(diagnostic_context::m_escape_format): ...this and make private.
+ 	(diagnostic_context::edit_context_ptr): Rename to...
+ 	(diagnostic_context::m_edit_context_ptr): ...this and make
+ 	private.
+ 	(diagnostic_context::set_locations_cb): Rename to...
+ 	(diagnostic_context::m_set_locations_cb): ...this and make
+ 	private.
+ 	(diagnostic_context::ice_handler_cb): Rename to...
+ 	(diagnostic_context::m_ice_handler_cb): ...this and make private.
+ 	(diagnostic_context::includes_seen): Rename to...
+ 	(diagnostic_context::m_includes_seen): ...this and make private.
+ 	(diagnostic_inhibit_notes): Update for field renaming.
+ 	(diagnostic_context_auxiliary_data): Likewise.
+ 	(diagnostic_abort_on_error): Convert from macro to inline function
+ 	and update for field renaming.
+ 	(diagnostic_kind_count): Convert from macro to inline function and
+ 	use diagnostic_count accessor.
+ 	(diagnostic_report_warnings_p): Update for field renaming.
+ 	(diagnostic_initialize): Convert decl to inline function calling
+ 	into diagnostic_context.
+ 	(diagnostic_color_init): Likewise.
+ 	(diagnostic_urls_init): Likewise.
+ 	(diagnostic_urls_init): Likewise.
+ 	(diagnostic_finish): Likewise.
+ 	(diagnostic_report_current_module): Likewise.
+ 	(diagnostic_show_any_path): Delete decl.
+ 	(diagnostic_initialize_input_context): Convert decl to inline
+ 	function calling into diagnostic_context.
+ 	(diagnostic_classify_diagnostic): Likewise.
+ 	(diagnostic_push_diagnostics): Likewise.
+ 	(diagnostic_pop_diagnostics): Likewise.
+ 	(diagnostic_report_diagnostic): Likewise.
+ 	(diagnostic_action_after_output): Likewise.
+ 	(diagnostic_check_max_errors): Likewise.
+ 	(diagnostic_file_cache_fini): Delete decl.
+ 	(diagnostic_converted_column): Delete decl.
+ 	(warning_enabled_at): Convert decl to inline function calling into
+ 	diagnostic_context.
+ 	(option_unspecified_p): New.
+ 	(diagnostic_emit_diagram): Delete decl.
+ 	* gcc.cc: Remove include of "diagnostic-text-art.h".
+ 	Update for changes to diagnostic_context.
+ 	* input.cc (diagnostic_file_cache_init): Move implementation
+ 	to...
+ 	(diagnostic_context::file_cache_init): ...this new member
+ 	function.
+ 	(diagnostic_file_cache_fini): Delete.
+ 	(diagnostics_file_cache_forcibly_evict_file): Update for
+ 	m_file_cache becoming private.
+ 	(location_get_source_line): Likewise.
+ 	(get_source_file_content): Likewise.
+ 	(location_missing_trailing_newline): Likewise.
+ 	* input.h (diagnostics_file_cache_fini): Delete.
+ 	* langhooks.cc: Update for changes to diagnostic_context.
+ 	* lto-wrapper.cc: Likewise.
+ 	* opts.cc: Remove include of "diagnostic-text-art.h".
+ 	Update for changes to diagnostic_context.
+ 	* selftest-diagnostic.cc: Update for changes to
+ 	diagnostic_context.
+ 	* toplev.cc: Likewise.
+ 	* tree-diagnostic-path.cc: Likewise.
+ 	* tree-diagnostic.cc: Likewise.
+ 
+ 2023-11-03  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/98541
+ 	* gimple-ssa-warn-access.cc
+ 	(pass_waccess::maybe_check_access_sizes): For VLA bounds
+ 	in parameters, only warn about null pointers with 'static'.
+ 
+ 2023-11-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow unmasked
+ 	calls to use masked simdclones.
+ 
+ 2023-11-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_initialize): Update for consolidation
+ 	of group-based fields.
+ 	(diagnostic_report_diagnostic): Likewise.
+ 	(diagnostic_context::begin_group): New, based on body of
+ 	auto_diagnostic_group's ctor.
+ 	(diagnostic_context::end_group): New, based on body of
+ 	auto_diagnostic_group's dtor.
+ 	(auto_diagnostic_group::auto_diagnostic_group): Convert to a call
+ 	to begin_group.
+ 	(auto_diagnostic_group::~auto_diagnostic_group): Convert to a call
+ 	to end_group.
+ 	* diagnostic.h (diagnostic_context::begin_group): New decl.
+ 	(diagnostic_context::end_group): New decl.
+ 	(diagnostic_context::diagnostic_group_nesting_depth): Rename to...
+ 	(diagnostic_context::m_diagnostic_groups.m_nesting_depth):
+ 	...this.
+ 	(diagnostic_context::diagnostic_group_emission_count): Rename
+ 	to...
+ 	(diagnostic_context::m_diagnostic_groups::m_emission_count):
+ 	...this.
+ 
+ 2023-11-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/111766
+ 	* range-op.cc (operator_equal::fold_range): Check constants
+ 	against the bitmask.
+ 	(operator_not_equal::fold_range): Ditto.
+ 	* value-range.h (irange_bitmask::member_p): New.
+ 
+ 2023-11-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-range.cc (irange_bitmask::adjust_range): New.
+ 	(irange::intersect_bitmask): Call adjust_range.
+ 	* value-range.h (irange_bitmask::adjust_range): New prototype.
+ 
+ 2023-11-03  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_memory_address_use_extended_reg_class_p):
+ 	Rename to ...
+ 	(ix86_memory_address_reg_class): ... this.  Generalize address
+ 	register class handling to allow multiple address register classes.
+ 	Return maximal class for unrecognized instructions.  Improve comments.
+ 	(ix86_insn_base_reg_class): Rewrite to handle
+ 	multiple address register classes.
+ 	(ix86_regno_ok_for_insn_base_p): Ditto.
+ 	(ix86_insn_index_reg_class): Ditto.
+ 	* config/i386/i386.md: Rename "gpr32" attribute to "addr"
+ 	and substitute its values with "0" -> "gpr16", "1" -> "*".
+ 	(addr): New attribute to limit allowed address register set.
+ 	(gpr32): Remove.
+ 	* config/i386/mmx.md: Rename "gpr32" attribute to "addr"
+ 	and substitute its values with "0" -> "gpr16", "1" -> "*".
+ 	* config/i386/sse.md: Ditto.
+ 
+ 2023-11-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Simplify
+ 	LC PHI replacement.
+ 
+ 2023-11-03  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.md (addsi3): Fix GNU-style code formatting.
+ 	(adddi3): Change define_expand to generate a *adddi3.
+ 	(*adddi3): New define_insn_and_split to lower DImode additions
+ 	during the split1 pass (after combine and before reload).
+ 	(ashldi3): New define_expand to (only) generate *ashldi3_cnt1
+ 	for DImode left shifts by a single bit.
+ 	(*ashldi3_cnt1): New define_insn_and_split to lower DImode
+ 	left shifts by one bit to an *adddi3.
+ 
+ 2023-11-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (*cmov_uxtw_insn_insv): Remove
+ 	can_create_pseudo_p condition.
+ 
+ 2023-11-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Support SLP for dummy mask -1.
+ 	* tree-vect-stmts.cc (vectorizable_load): Ditto.
+ 
+ 2023-11-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112366
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Remove
+ 	assert.
+ 
+ 2023-11-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112310
+ 	* tree-ssa-pre.cc (do_hoist_insertion): Keep the union
+ 	of expressions, validate dependences are contained within
+ 	the hoistable set before hoisting.
+ 
+ 2023-11-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (lrint<mode><v_i_l_ll_convert>2): Remove.
+ 	(lround<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lceil<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lfloor<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lrint<mode><v_f2si_convert>2): New pattern for cvt from
+ 	FP to SI.
+ 	(lround<mode><v_f2si_convert>2): Ditto.
+ 	(lceil<mode><v_f2si_convert>2): Ditto.
+ 	(lfloor<mode><v_f2si_convert>2): Ditto.
+ 	(lrint<mode><v_f2di_convert>2): New pattern for cvt from
+ 	FP to DI.
+ 	(lround<mode><v_f2di_convert>2): Ditto.
+ 	(lceil<mode><v_f2di_convert>2): Ditto.
+ 	(lfloor<mode><v_f2di_convert>2): Ditto.
+ 	* config/riscv/vector-iterators.md: Renew iterators for both
+ 	the SI and DI.
+ 
+ 2023-11-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112326
+ 	* config/riscv/riscv-avlprop.cc (get_insn_vtype_mode): New function.
+ 	(simplify_replace_vlmax_avl): Ditto.
+ 	(pass_avlprop::execute): Add immediate AVL simplification.
+ 	* config/riscv/riscv-protos.h (imm_avl_p): Rename.
+ 	* config/riscv/riscv-v.cc (const_vlmax_p): Ditto.
+ 	(imm_avl_p): Ditto.
+ 	(emit_vlmax_insn): Adapt for new interface name.
+ 	* config/riscv/vector.md (mode_idx): New attribute.
+ 
+ 2023-11-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-11-02  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (lrint<mode><v_i_l_ll_convert>2): Remove.
+ 	(lround<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lceil<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lfloor<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lrint<mode><v_f2si_convert>2): New pattern for cvt from
+ 	FP to SI.
+ 	(lround<mode><v_f2si_convert>2): Ditto.
+ 	(lceil<mode><v_f2si_convert>2): Ditto.
+ 	(lfloor<mode><v_f2si_convert>2): Ditto.
+ 	(lrint<mode><v_f2di_convert>2): New pattern for cvt from
+ 	FP to DI.
+ 	(lround<mode><v_f2di_convert>2): Ditto.
+ 	(lceil<mode><v_f2di_convert>2): Ditto.
+ 	(lfloor<mode><v_f2di_convert>2): Ditto.
+ 	* config/riscv/vector-iterators.md: Renew iterators for both
+ 	the SI and DI.
+ 
+ 2023-11-02  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_sched_variable_issue): add disabled assert
+ 
+ 2023-11-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/combiner.md: Add new patterns for single bit
+ 	sign extractions.
+ 
+ 2023-11-02  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (lrint<mode><v_i_l_ll_convert>2): Remove.
+ 	(lround<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lceil<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lfloor<mode><v_i_l_ll_convert>2): Ditto.
+ 	(lrint<mode><v_f2si_convert>2): New pattern for cvt from
+ 	FP to SI.
+ 	(lround<mode><v_f2si_convert>2): Ditto.
+ 	(lceil<mode><v_f2si_convert>2): Ditto.
+ 	(lfloor<mode><v_f2si_convert>2): Ditto.
+ 	(lrint<mode><v_f2di_convert>2): New pattern for cvt from
+ 	FP to DI.
+ 	(lround<mode><v_f2di_convert>2): Ditto.
+ 	(lceil<mode><v_f2di_convert>2): Ditto.
+ 	(lfloor<mode><v_f2di_convert>2): Ditto.
+ 	* config/riscv/vector-iterators.md: Renew iterators for both
+ 	the SI and DI.
+ 
+ 2023-11-02  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/passes.texi (Dead code elimination): Explicitly say 'lifetime'
+ 	as this has become the standard term for what we're doing here.
+ 
+ 2023-11-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-avlprop.cc
+ 	(pass_avlprop::get_vlmax_ta_preferred_avl): Don't allow
+ 	non-real insn AVL propation.
+ 
+ 2023-11-02  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/111401
+ 	* internal-fn.cc (internal_fn_else_index): New function.
+ 	* internal-fn.h (internal_fn_else_index): Define.
+ 	* tree-if-conv.cc (convert_scalar_cond_reduction): Emit COND_OP
+ 	if supported.
+ 	(predicate_scalar_phi): Add whitespace.
+ 	* tree-vect-loop.cc (fold_left_reduction_fn): Add IFN_COND_OP.
+ 	(neutral_op_for_reduction): Return -0 for PLUS.
+ 	(check_reduction_path): Don't count else operand in COND_OP.
+ 	(vect_is_simple_reduction): Ditto.
+ 	(vect_create_epilog_for_reduction): Fix whitespace.
+ 	(vectorize_fold_left_reduction): Add COND_OP handling.
+ 	(vectorizable_reduction): Don't count else operand in COND_OP.
+ 	(vect_transform_reduction): Add COND_OP handling.
+ 	* tree-vectorizer.h (neutral_op_for_reduction): Add default
+ 	parameter.
+ 
+ 2023-11-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112320
+ 	* gimple-fold.h (rewrite_to_defined_overflow): New overload
+ 	for in-place operation.
+ 	* gimple-fold.cc (rewrite_to_defined_overflow): Add stmt
+ 	iterator argument to worker, define separate API for
+ 	in-place and not in-place operation.
+ 	* tree-if-conv.cc (predicate_statements): Simplify.
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop):
+ 	Likewise.
+ 	* tree-ssa-ifcombine.cc (pass_tree_ifcombine::execute): Adjust.
+ 	* tree-ssa-reassoc.cc (update_range_test): Likewise.
+ 
+ 2023-11-02  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md: Move stack protector patterns
+ 	above mov $0,%reg -> xor %reg,%reg peephole2 pattern.
+ 
+ 2023-11-02  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/mmx.md (cmlav4hf4): New expander.
+ 	(cmla_conjv4hf4): Ditto.
+ 	(cmulv4hf3): Ditto.
+ 	(cmul_conjv4hf3): Ditto.
+ 
+ 2023-11-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix redundant codes in attributes.
+ 
+ 2023-11-02  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Expand non-tuple intrinsics.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vcreate): Define non-tuple intrinsics.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct vcreate_def): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc: Add arg types.
+ 
+ 2023-11-02  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_internal_function): Add type
+ 	size check for vectype_out doesn't participating for optab query.
+ 	(vectorizable_call): Remove the type size check.
+ 
+ 2023-11-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/112327
+ 	* config/riscv/vector.md: Add '0'.
+ 
+ 2023-11-01  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110551
+ 	* config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Tidy condition
+ 	as operands[2] with predicate register_operand must be !MEM_P.
+ 	(peephole2): Optimize a mulx followed by a register-to-register
+ 	move, to place result in the correct destination if possible.
+ 
+ 2023-11-01  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync.md:  Use riscv_subword_address function to
+ 	calculate the address and shift in atomic_test_and_set.
+ 
+ 2023-11-01  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_promote_function_mode): Fix mode
+ 	returned for libcall case.
+ 
+ 2023-11-01  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/71219
+ 	* doc/invoke.texi: Document -Walloc-size option.
+ 
+ 2023-11-01  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* genautomata.cc (write_automata): move endif
+ 
+ 2023-11-01  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* omp-simd-clone.cc (simd_clone_adjust_return_type): Hoist out code to
+ 	create return array and don't return new type.
+ 	(simd_clone_adjust_argument_types): Hoist out code that creates
+ 	ipa_param_body_adjustments and don't return them.
+ 	(simd_clone_adjust): Call TARGET_SIMD_CLONE_ADJUST after return and
+ 	argument types have been vectorized, create adjustments and return array
+ 	after the hook.
+ 	(expand_simd_clones): Call TARGET_SIMD_CLONE_ADJUST after return and
+ 	argument types have been vectorized.
+ 
+ 2023-11-01  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/112332
+ 	* config/i386/i386.md (stack_protexct_set_2 peephole2):
+ 	Use general_gr_operand as operand 4 predicate.
+ 
+ 2023-11-01  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (stack_protect_set): Explicitly
+ 	generate scratch register in word mode.
+ 	(@stack_protect_set_1_<mode>): Rename to ...
+ 	(@stack_protect_set_1_<PTR:mode>_<SWI48:mode>): ... this.
+ 	Use SWI48 mode iterator to match scratch register.
+ 	(stack_protexct_set_1 peephole2): Use PTR, W and SWI48 mode
+ 	iterators to match peephole sequence.  Use general_operand
+ 	predicate for operand 4.  Allow different operand 2 and operand 3
+ 	registers and use peep2_reg_dead_p to ensure new scratch
+ 	register is dead before peephole seqeunce. Use peep2_reg_dead_p
+ 	to ensure old scratch register is dead after peephole sequence.
+ 	(*stack_protect_set_2_<mode>): Rename to ...
+ 	(*stack_protect_set_2_<mode>_si): .. this.
+ 	(*stack_protect_set_3): Rename to ...
+ 	(*stack_protect_set_2_<mode>_di): ... this.
+ 	Use PTR mode iterator to match stack protector memory move.
+ 	Use earlyclobber for all alternatives of operand 1.
+ 	(stack_protexct_set_2 peephole2): Use PTR, W and SWI48 mode
+ 	iterators to match peephole sequence.  Use general_operand
+ 	predicate for operand 4.  Allow different operand 2 and operand 3
+ 	registers and use peep2_reg_dead_p to ensure new scratch
+ 	register is dead before peephole seqeunce. Use peep2_reg_dead_p
+ 	to ensure old scratch register is dead after peephole sequence.
+ 
+ 2023-11-01  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-functions.def (vundefined): Add vundefine
+ 	intrinsics for tuple types.
+ 	* config/riscv/riscv-vector-builtins.cc: Ditto.
+ 	* config/riscv/vector.md (@vundefined<mode>): Ditto.
+ 
+ 2023-11-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Fix whitespace.
+ 
+ 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (ANALYZER_OBJS): Add analyzer/record-layout.o.
+ 
+ 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* input.cc (dump_location_info): Update for removal of
+ 	MACRO_MAP_EXPANSION_POINT_LOCATION.
+ 	* tree-diagnostic.cc (maybe_unwind_expanded_macro_loc):
+ 	Likewise.
+ 
+ 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* opts.cc (get_option_url): Update comment; the requirement to
+ 	pass DOCUMENTATION_ROOT_URL's value via -D was removed in
+ 	r10-8065-ge33a1eae25b8a8.
+ 
+ 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* pretty-print.cc (pretty_printer::pretty_printer): Initialize
+ 	m_skipping_null_url.
+ 	(pp_begin_url): Handle URL being null.
+ 	(pp_end_url): Likewise.
+ 	(selftest::test_null_urls): New.
+ 	(selftest::pretty_print_cc_tests): Call it.
+ 	* pretty-print.h (pretty_printer::m_skipping_null_url): New.
+ 
+ 2023-10-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-slp.cc (vect_get_operand_map): Add MASK_LEN_GATHER_LOAD.
+ 	(vect_build_slp_tree_1): Ditto.
+ 	(vect_build_slp_tree_2): Ditto.
+ 
+ 2023-10-31  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/bpf-passes.def (pass_lower_bpf_core): Added pass.
+ 	* config/bpf/bpf-protos.h: Added prototype for new pass.
+ 	* config/bpf/bpf.cc (bpf_delegitimize_address): New function.
+ 	* config/bpf/bpf.md (mov_reloc_core<MM:mode>): Prefixed
+ 	name with '*'.
+ 	* config/bpf/core-builtins.cc (cr_builtins) Added access_node to
+ 	struct.
+ 	(is_attr_preserve_access): Improved check.
+ 	(core_field_info): Make use of root_for_core_field_info
+ 	function.
+ 	(process_field_expr): Adapted to new functions.
+ 	(pack_type): Small improvement.
+ 	(bpf_handle_plugin_finish_type): Adapted to GTY(()).
+ 	(bpf_init_core_builtins): Changed to new function names.
+ 	(construct_builtin_core_reloc): Improved implementation.
+ 	(bpf_resolve_overloaded_core_builtin): Changed how
+ 	__builtin_preserve_access_index is converted.
+ 	(compute_field_expr): Corrected implementation. Added
+ 	access_node argument.
+ 	(bpf_core_get_index): Added valid argument.
+ 	(root_for_core_field_info, pack_field_expr)
+ 	(core_expr_with_field_expr_plus_base, make_core_safe_access_index)
+ 	(replace_core_access_index_comp_expr, maybe_get_base_for_field_expr)
+ 	(core_access_clean, core_is_access_index, core_mark_as_access_index)
+ 	(make_gimple_core_safe_access_index, execute_lower_bpf_core)
+ 	(make_pass_lower_bpf_core): Added functions.
+ 	(pass_data_lower_bpf_core): New pass struct.
+ 	(pass_lower_bpf_core): New gimple_opt_pass class.
+ 	(pack_field_expr_for_preserve_field)
+ 	(bpf_replace_core_move_operands): Removed function.
+ 	(bpf_enum_value_kind): Added GTY(()).
+ 	* config/bpf/core-builtins.h (bpf_field_info_kind, bpf_type_id_kind)
+ 	(bpf_type_info_kind, bpf_enum_value_kind): New enum.
+ 	* config/bpf/t-bpf: Added pass bpf-passes.def to PASSES_EXTRA.
+ 
+ 2023-10-31  Neal Frager  <neal.frager@amd.com>
+ 
+ 	* config/microblaze/microblaze.cc: Fix mcpu version check.
+ 
+ 2023-10-31  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync-rvwmo.md (atomic_load_rvwmo<mode>): Remove
+ 	TARGET_ATOMIC constraint
+ 	(atomic_store_rvwmo<mode>): Ditto.
+ 	* config/riscv/sync-ztso.md (atomic_load_ztso<mode>): Ditto.
+ 	(atomic_store_ztso<mode>): Ditto.
+ 	* config/riscv/sync.md (atomic_load<mode>): Ditto.
+ 	(atomic_store<mode>): Ditto.
+ 
+ 2023-10-31  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_index_reg_class):
+ 	Return GR_REGS for XTheadFMemIdx.
+ 	(riscv_regno_ok_for_index_p): Add support for XTheadFMemIdx.
+ 	* config/riscv/riscv.h (HARDFP_REG_P): New macro.
+ 	* config/riscv/thead.cc (is_fmemidx_mode): New function.
+ 	(th_memidx_classify_address_index): Add support for XTheadFMemIdx.
+ 	(th_fmemidx_output_index): New function.
+ 	(th_output_move): Add support for XTheadFMemIdx.
+ 	* config/riscv/thead.md (TH_M_ANYF): New mode iterator.
+ 	(TH_M_NOEXTF): Likewise.
+ 	(*th_fmemidx_movsf_hardfloat): New INSN.
+ 	(*th_fmemidx_movdf_hardfloat_rv64): Likewise.
+ 	(*th_fmemidx_I_a): Likewise.
+ 	(*th_fmemidx_I_c): Likewise.
+ 	(*th_fmemidx_US_a): Likewise.
+ 	(*th_fmemidx_US_c): Likewise.
+ 	(*th_fmemidx_UZ_a): Likewise.
+ 	(*th_fmemidx_UZ_c): Likewise.
+ 
+ 2023-10-31  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/constraints.md (th_m_mia): New constraint.
+ 	(th_m_mib): Likewise.
+ 	(th_m_mir): Likewise.
+ 	(th_m_miu): Likewise.
+ 	* config/riscv/riscv-protos.h (enum riscv_address_type):
+ 	Add new address types ADDRESS_REG_REG, ADDRESS_REG_UREG,
+ 	and ADDRESS_REG_WB and their documentation.
+ 	(struct riscv_address_info): Add new field 'shift' and
+ 	document the field usage for the new address types.
+ 	(riscv_valid_base_register_p): New prototype.
+ 	(th_memidx_legitimate_modify_p): Likewise.
+ 	(th_memidx_legitimate_index_p): Likewise.
+ 	(th_classify_address): Likewise.
+ 	(th_output_move): Likewise.
+ 	(th_print_operand_address): Likewise.
+ 	* config/riscv/riscv.cc (riscv_index_reg_class):
+ 	Return GR_REGS for XTheadMemIdx.
+ 	(riscv_regno_ok_for_index_p): Add support for XTheadMemIdx.
+ 	(riscv_classify_address): Call th_classify_address() on top.
+ 	(riscv_output_move): Call th_output_move() on top.
+ 	(riscv_print_operand_address): Call th_print_operand_address()
+ 	on top.
+ 	* config/riscv/riscv.h (HAVE_POST_MODIFY_DISP): New macro.
+ 	(HAVE_PRE_MODIFY_DISP): Likewise.
+ 	* config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2): Disable
+ 	for XTheadMemIdx.
+ 	(*zero_extendqi<SUPERQI:mode>2_internal): Convert to expand,
+ 	create INSN with same name and disable it for XTheadMemIdx.
+ 	(extendsidi2): Likewise.
+ 	(*extendsidi2_internal): Disable for XTheadMemIdx.
+ 	* config/riscv/thead.cc (valid_signed_immediate): New helper
+ 	function.
+ 	(th_memidx_classify_address_modify): New function.
+ 	(th_memidx_legitimate_modify_p): Likewise.
+ 	(th_memidx_output_modify): Likewise.
+ 	(is_memidx_mode): Likewise.
+ 	(th_memidx_classify_address_index): Likewise.
+ 	(th_memidx_legitimate_index_p): Likewise.
+ 	(th_memidx_output_index): Likewise.
+ 	(th_classify_address): Likewise.
+ 	(th_output_move): Likewise.
+ 	(th_print_operand_address): Likewise.
+ 	* config/riscv/thead.md (*th_memidx_operand): New splitter.
+ 	(*th_memidx_zero_extendqi<SUPERQI:mode>2): New INSN.
+ 	(*th_memidx_extendsidi2): Likewise.
+ 	(*th_memidx_zero_extendsidi2): Likewise.
+ 	(*th_memidx_zero_extendhi<GPR:mode>2): Likewise.
+ 	(*th_memidx_extend<SHORT:mode><SUPERQI:mode>2): Likewise.
+ 	(*th_memidx_bb_zero_extendsidi2): Likewise.
+ 	(*th_memidx_bb_zero_extendhi<GPR:mode>2): Likewise.
+ 	(*th_memidx_bb_extendhi<GPR:mode>2): Likewise.
+ 	(*th_memidx_bb_extendqi<SUPERQI:mode>2): Likewise.
+ 	(TH_M_ANYI): New mode iterator.
+ 	(TH_M_NOEXTI): Likewise.
+ 	(*th_memidx_I_a): New combiner optimization.
+ 	(*th_memidx_I_b): Likewise.
+ 	(*th_memidx_I_c): Likewise.
+ 	(*th_memidx_US_a): Likewise.
+ 	(*th_memidx_US_b): Likewise.
+ 	(*th_memidx_US_c): Likewise.
+ 	(*th_memidx_UZ_a): Likewise.
+ 	(*th_memidx_UZ_b): Likewise.
+ 	(*th_memidx_UZ_c): Likewise.
+ 
+ 2023-10-31  Carl Love  <cel@us.ibm.com>
+ 
+ 	* doc/extend.texi (__builtin_bcdsub_le, __builtin_bcdsub_ge): Add
+ 	documentation for the builti-ins.
+ 
+ 2023-10-31  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/111971
+ 	* lra-constraints.cc: (process_alt_operands): Don't check start
+ 	hard regs for regs originated from register variables.
+ 
+ 2023-10-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (<ieee_fmaxmin_op><mode>3): fmax/fmin
+ 	expanders.
+ 	(cond_<ieee_fmaxmin_op><mode>): Ditto.
+ 	(cond_len_<ieee_fmaxmin_op><mode>): Ditto.
+ 	(reduc_fmax_scal_<mode>): Ditto.
+ 	(reduc_fmin_scal_<mode>): Ditto.
+ 	* config/riscv/riscv-v.cc (needs_fp_rounding): Add fmin/fmax.
+ 	* config/riscv/vector-iterators.md (fmin): New UNSPEC.
+ 	(UNSPEC_VFMIN): Ditto.
+ 	* config/riscv/vector.md (@pred_<ieee_fmaxmin_op><mode>): Add
+ 	UNSPEC insn patterns.
+ 	(@pred_<ieee_fmaxmin_op><mode>_scalar): Ditto.
+ 
+ 2023-10-31  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR bootstrap/84402
+ 	PR target/111600
+ 	* Makefile.in: Handle split insn-emit.cc.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add --with-insnemit-partitions.
+ 	* genemit.cc (output_peephole2_scratches): Print to file instead
+ 	of stdout.
+ 	(print_code): Ditto.
+ 	(gen_rtx_scratch): Ditto.
+ 	(gen_exp): Ditto.
+ 	(gen_emit_seq): Ditto.
+ 	(emit_c_code): Ditto.
+ 	(gen_insn): Ditto.
+ 	(gen_expand): Ditto.
+ 	(gen_split): Ditto.
+ 	(output_add_clobbers): Ditto.
+ 	(output_added_clobbers_hard_reg_p): Ditto.
+ 	(print_overload_arguments): Ditto.
+ 	(print_overload_test): Ditto.
+ 	(handle_overloaded_code_for): Ditto.
+ 	(handle_overloaded_gen): Ditto.
+ 	(print_header): New function.
+ 	(handle_arg): New function.
+ 	(main): Split output into 10 files.
+ 	* gensupport.cc (count_patterns): New function.
+ 	* gensupport.h (count_patterns): Define.
+ 	* read-md.cc (md_reader::print_md_ptr_loc): Add file argument.
+ 	* read-md.h (class md_reader): Change definition.
+ 
+ 2023-10-31  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR tree-optimization/111943
+ 	* gimple-harden-control-flow.cc: Adjust copyright year.
+ 	(rt_bb_visited): Add vfalse and vtrue data members.
+ 	Zero-initialize them in the ctor.
+ 	(rt_bb_visited::insert_exit_check_on_edge): Upon encountering
+ 	abnormal edges, insert initializers for vfalse and vtrue on
+ 	entry, and insert the check sequence guarded by a conditional
+ 	in the dest block.
+ 
+ 2023-10-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/112305
+ 	* tree-scalar-evolution.h (expression_expensive): Adjust.
+ 	* tree-scalar-evolution.cc (expression_expensive): Record
+ 	when we see a COND_EXPR.
+ 	(final_value_replacement_loop): When the replacement contains
+ 	a COND_EXPR, rewrite it to defined overflow.
+ 	* tree-ssa-loop-ivopts.cc (may_eliminate_iv): Adjust.
+ 
+ 2023-10-31  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/112299
+ 	* config/loongarch/loongarch-opts.h (HAVE_AS_TLS): Define to 0
+ 	if not defined yet.
+ 
+ 2023-10-31  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* gimple-match.h (gimple_match_op::gimple_match_op):
+ 	Add interfaces for more arguments.
+ 	(gimple_match_op::set_op): Add interfaces for more arguments.
+ 	* match.pd: Add support of combining cond_len_op + vec_cond
+ 
+ 2023-10-31  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512cdintrin.h (target): Push evex512 for
+ 	avx512cd.
+ 	* config/i386/avx512vlintrin.h (target): Split avx512cdvl part
+ 	out from avx512vl.
+ 	* config/i386/i386-builtin.def (BDESC): Do not check evex512
+ 	for builtins not needed.
+ 
+ 2023-10-31  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (<float_cvt><mode><vnnconvert>2):
+ 	Change to define_expand.
+ 
+ 2023-10-31  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/112276
+ 	* config/i386/mmx.md (*mmx_pblendvb_v8qi_1): Change
+ 	define_split to define_insn_and_split to handle
+ 	immediate_operand for comparison.
+ 	(*mmx_pblendvb_v8qi_2): Ditto.
+ 	(*mmx_pblendvb_<mode>_1): Ditto.
+ 	(*mmx_pblendvb_v4qi_2): Ditto.
+ 	(<code><mode>3): Remove define_split after it.
+ 	(<code>v8qi3): Ditto.
+ 	(<code><mode>3): Ditto.
+ 	(<ode>v2hi3): Ditto.
+ 
+ 2023-10-31  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	* match.pd (`a == 1 ? b : a OP b`): New pattern.
+ 	(`a == -1 ? b : a & b`): New pattern.
+ 
+ 2023-10-31  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	* match.pd: (`a == 0 ? b : b + a`,
+ 	`a == 0 ? b : b - a`): New patterns.
+ 
+ 2023-10-31  Neal Frager  <neal.frager@amd.com>
+ 
+ 	* config/microblaze/microblaze.cc: Fix mcpu version check.
+ 
+ 2023-10-30  Mayshao  <mayshao-oc@zhaoxin.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize yongfeng.
+ 	* common/config/i386/i386-common.cc: Add yongfeng.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_subtypes):
+ 	Add ZHAOXIN_FAM7H_YONGFENG.
+ 	* config.gcc: Add yongfeng.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Let -march=native recognize yongfeng processors.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Add yongfeng.
+ 	* config/i386/i386-options.cc (m_YONGFENG): New definition.
+ 	(m_ZHAOXIN): Ditto.
+ 	* config/i386/i386.h (enum processor_type): Add PROCESSOR_YONGFENG.
+ 	* config/i386/i386.md: Add yongfeng.
+ 	* config/i386/lujiazui.md: Fix typo.
+ 	* config/i386/x86-tune-costs.h (struct processor_costs):
+ 	Add yongfeng costs.
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Add yongfeng.
+ 	(ix86_adjust_cost): Ditto.
+ 	* config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Replace
+ 	m_LUJIAZUI with m_ZHAOXIN.
+ 	(X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
+ 	(X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
+ 	(X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
+ 	(X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
+ 	(X86_TUNE_MOVX): Ditto.
+ 	(X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
+ 	(X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
+ 	(X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
+ 	(X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
+ 	(X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
+ 	(X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
+ 	(X86_TUNE_USE_LEAVE): Ditto.
+ 	(X86_TUNE_PUSH_MEMORY): Ditto.
+ 	(X86_TUNE_LCP_STALL): Ditto.
+ 	(X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
+ 	(X86_TUNE_OPT_AGU): Ditto.
+ 	(X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
+ 	(X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
+ 	(X86_TUNE_USE_SAHF): Ditto.
+ 	(X86_TUNE_USE_BT): Ditto.
+ 	(X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
+ 	(X86_TUNE_ONE_IF_CONV_INSN): Ditto.
+ 	(X86_TUNE_AVOID_MFENCE): Ditto.
+ 	(X86_TUNE_EXPAND_ABS): Ditto.
+ 	(X86_TUNE_USE_SIMODE_FIOP): Ditto.
+ 	(X86_TUNE_USE_FFREEP): Ditto.
+ 	(X86_TUNE_EXT_80387_CONSTANTS): Ditto.
+ 	(X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
+ 	(X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
+ 	(X86_TUNE_SSE_TYPELESS_STORES): Ditto.
+ 	(X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
+ 	(X86_TUNE_USE_GATHER_2PARTS): Add m_YONGFENG.
+ 	(X86_TUNE_USE_GATHER_4PARTS): Ditto.
+ 	(X86_TUNE_USE_GATHER_8PARTS): Ditto.
+ 	(X86_TUNE_AVOID_128FMA_CHAINS): Ditto.
+ 	* doc/extend.texi: Add details about yongfeng.
+ 	* doc/invoke.texi: Ditto.
+ 	* config/i386/yongfeng.md: New file to describe yongfeng processor.
+ 
+ 2023-10-30  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/111157
+ 	* ipa-prop.h (struct ipa_argagg_value): Newf flag killed.
+ 	* ipa-modref.cc (ipcp_argagg_and_kill_overlap_p): New function.
+ 	(update_signature): Mark any any IPA-CP aggregate constants at
+ 	positions known to be killed as killed.  Move check that there is
+ 	clone_info after this pruning.
+ 	* ipa-cp.cc (ipa_argagg_value_list::dump): Dump the killed flag.
+ 	(ipa_argagg_value_list::push_adjusted_values): Clear the new flag.
+ 	(push_agg_values_from_plats): Likewise.
+ 	(ipa_push_agg_values_from_jfunc): Likewise.
+ 	(estimate_local_effects): Likewise.
+ 	(push_agg_values_for_index_from_edge): Likewise.
+ 	* ipa-prop.cc (write_ipcp_transformation_info): Stream the killed
+ 	flag.
+ 	(read_ipcp_transformation_info): Likewise.
+ 	(ipcp_get_aggregate_const): Update comment, assert that encountered
+ 	record does not have killed flag set.
+ 	(ipcp_transform_function): Prune all aggregate constants with killed
+ 	set.
+ 
+ 2023-10-30  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/111157
+ 	* ipa-prop.h (ipcp_transformation): New member function template
+ 	remove_argaggs_if.
+ 	* ipa-sra.cc (zap_useless_ipcp_results): Use remove_argaggs_if to
+ 	filter aggreagate constants.
+ 
+ 2023-10-30  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR middle-end/101955
+ 	* config/arc/arc.md (*extvsi_1_0): New define_insn_and_split
+ 	to convert sign extract of the least significant bit into an
+ 	AND $1 then a NEG when !TARGET_BARREL_SHIFTER.
+ 
+ 2023-10-30  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.cc (arc_rtx_costs): Improve cost estimates.
+ 	Provide reasonable values for SHIFTS and ROTATES by constant
+ 	bit counts depending upon TARGET_BARREL_SHIFTER.
+ 	(arc_insn_cost): Use insn attributes if the instruction is
+ 	recognized.  Avoid calling get_attr_length for type "multi",
+ 	i.e. define_insn_and_split patterns without explicit type.
+ 	Fall-back to set_rtx_cost for single_set and pattern_cost
+ 	otherwise.
+ 	* config/arc/arc.h (COSTS_N_BYTES): Define helper macro.
+ 	(BRANCH_COST): Improve/correct definition.
+ 	(LOGICAL_OP_NON_SHORT_CIRCUIT): Preserve previous behavior.
+ 
+ 2023-10-30  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.cc (arc_split_ashl): Use lsl16 on TARGET_SWAP.
+ 	(arc_split_ashr): Use swap and sign-extend on TARGET_SWAP.
+ 	(arc_split_lshr): Use lsr16 on TARGET_SWAP.
+ 	(arc_split_rotl): Use swap on TARGET_SWAP.
+ 	(arc_split_rotr): Likewise.
+ 	* config/arc/arc.md (ANY_ROTATE): New code iterator.
+ 	(<ANY_ROTATE>si2_cnt16): New define_insn for alternate form of
+ 	swap instruction on TARGET_SWAP.
+ 	(ashlsi2_cnt16): Rename from *ashlsi16_cnt16 and move earlier.
+ 	(lshrsi2_cnt16): New define_insn for LSR16 instruction.
+ 	(*ashlsi2_cnt16): See above.
+ 
+ 2023-10-30  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* config/arm/aout.h: Change to use the Lrtx label.
+ 	* config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Remove arm targets
+ 	from (!target_pure_code) condition.
+ 	(ADDR_VEC_ALIGN): Add align for tables in rodata section.
+ 	* config/arm/arm.cc (arm_output_casesi): Alter the function to include
+ 	.Lrtx label and remove adr instructions.
+ 	* config/arm/arm.md
+ 	(arm_casesi_internal): Use force_reg to generate ldr instructions that
+ 	would otherwise be out of range, and change rtl to accommodate force reg.
+ 	Additionally remove unnecessary register temp.
+ 	(casesi): Remove pure code check for Arm.
+ 	* config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Remove arm
+ 	targets from JUMP_TABLES_IN_TEXT_SECTION definition.
+ 
+ 2023-10-30  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/106907
+ 	* config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Change bitwise
+ 	xor to an equality and fix comment indentation.
+ 
+ 2023-10-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (sew64_scalar_helper): Fix bug.
+ 	* config/riscv/riscv-v.cc (sew64_scalar_helper): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-10-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/104610
+ 	* config/i386/i386-expand.cc (ix86_expand_branch): Handle
+ 	512-bit vector with vpcmpeq + kortest.
+ 	* config/i386/i386.md (cbranchxi4): New expander.
+ 	* config/i386/sse.md: (cbranch<mode>4): Extend to V16SImode
+ 	and V8DImode.
+ 
+ 2023-10-30  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/111449
+ 	* expr.cc (qi_vector_mode_supported_p): Rename to...
+ 	(by_pieces_mode_supported_p): ...this, and extends it to do
+ 	the checking for both scalar and vector mode.
+ 	(widest_fixed_size_mode_for_size): Call
+ 	by_pieces_mode_supported_p to examine the mode.
+ 	(op_by_pieces_d::smallest_fixed_size_mode_for_size): Likewise.
+ 
+ 2023-10-29  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR tree-optimization/109334
+ 	* tree-object-size.cc (parm_object_size): Allow size
+ 	computation for implicit access attributes.
+ 
+ 2023-10-29  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/xtensa.h (TARGET_SALT): Change HW version from
+ 	260000 (which corresponds to RF-2014.0) to 270000 (which
+ 	corresponds to RG-2015.0, the release where salt/saltu opcodes
+ 	were introduced).
+ 
+ 2023-10-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Use
+ 	reference type to prevent copying.
+ 
+ 2023-10-27  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/112107
+ 	* ira-costs.cc: (calculate_equiv_gains): Use NONDEBUG_INSN_P
+ 	instead of INSN_P.
+ 
+ 2023-10-27  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	PR target/112088
+ 	* config/gcn/gcn.cc (gcn_expand_epilogue): Fix kernel epilogue register
+ 	conflict.
+ 
+ 2023-10-27  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md
+ 	(vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): Mention "operands" in
+ 	condition to silence the warnings.
+ 	(vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): Likewise.
+ 	* config/gcn/gcn.md (*movti_insn): Likewise.
+ 
+ 2023-10-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* recog.cc (insn_propagation::apply_to_pattern_1): Handle shared
+ 	ASM_OPERANDS.
+ 
+ 2023-10-27  Yangyu Chen  <chenyangyu@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv.cc (rocket_tune_info): Fix int_div cost.
+ 	(sifive_7_tune_info, thead_c906_tune_info): Likewise.
+ 
+ 2023-10-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (rawmemchr<ANYI:mode>): New expander.
+ 	* config/riscv/riscv-protos.h (gen_no_side_effects_vsetvl_rtx):
+ 	Define.
+ 	(expand_rawmemchr): Define.
+ 	* config/riscv/riscv-v.cc (force_vector_length_operand): Remove
+ 	static.
+ 	(expand_block_move): Move from here...
+ 	* config/riscv/riscv-string.cc (expand_block_move): ...to here.
+ 	(expand_rawmemchr): Add vectorized expander.
+ 	* internal-fn.cc (expand_RAWMEMCHR): Fix typo.
+ 
+ 2023-10-27  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira-costs.cc: (get_equiv_regno, calculate_equiv_gains):
+ 	Process reg equivalence invariants.
+ 
+ 2023-10-27  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_PARTIAL_MEMORY_READ_STALL):
+ 	i386: Fiy typo in "partial_memory_read_stall" tune option.
+ 
+ 2023-10-27  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_print_operand): Add
+ 	support for CONST_STRING.
+ 
+ 2023-10-27  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110551
+ 	* config/i386/i386.md (<u>mul<mode><dwi>3): Make operands 1 and
+ 	2 take "regiser_operand" and "nonimmediate_operand" respectively.
+ 	(<u>mulqihi3): Likewise.
+ 	(*bmi2_umul<mode><dwi>3_1): Operand 2 needs to be register_operand
+ 	matching the %d constraint.  Use umul_highpart RTX to represent
+ 	the highpart multiplication.
+ 	(*umul<mode><dwi>3_1):  Operand 2 should use regiser_operand
+ 	predicate, and "a" rather than "0" as operands 0 and 2 have
+ 	different modes.
+ 	(define_split): For mul to mulx conversion, use the new
+ 	umul_highpart RTX representation.
+ 	(*mul<mode><dwi>3_1):  Operand 1 should be register_operand
+ 	and the constraint %a as operands 0 and 1 have different modes.
+ 	(*<u>mulqihi3_1): Operand 1 should be register_operand matching
+ 	the constraint %0.
+ 	(define_peephole2): Providing widening multiplication variants
+ 	of the peephole2s that tweak highpart multiplication register
+ 	allocation.
+ 
+ 2023-10-27  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR preprocessor/87299
+ 	* toplev.cc (no_backend): New static global.
+ 	(finalize): Remove argument no_backend, which is now a
+ 	static global.
+ 	(process_options): Likewise.
+ 	(do_compile): Likewise.
+ 	(target_reinit): Don't do anything in preprocess-only mode.
+ 	(toplev::main): Adapt to no_backend change.
+ 	(toplev::finalize): Likewise.
+ 
+ 2023-10-27  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/101590
+ 	PR tree-optimization/94884
+ 	* match.pd (`(X BIT_OP Y) CMP X`): New pattern.
+ 
+ 2023-10-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/103861
+ 	* config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle
+ 	V2HF/V2BF/V4HF/V4BFmode.
+ 	* config/i386/i386.cc (ix86_get_mask_mode): Return QImode when
+ 	data_mode is V4HF/V2HFmode.
+ 	* config/i386/mmx.md (vec_cmpv4hfqi): New expander.
+ 	(vcond_mask_<mode>v4hi): Ditto.
+ 	(vcond_mask_<mode>qi): Ditto.
+ 	(vec_cmpv2hfqi): Ditto.
+ 	(vcond_mask_<mode>v2hi): Ditto.
+ 	(mmx_plendvb_<mode>): Add 2 combine splitters after the
+ 	patterns.
+ 	(mmx_pblendvb_v8qi): Ditto.
+ 	(<code>v2hi3): Add a combine splitter after the pattern.
+ 	(<code><mode>3): Ditto.
+ 	(<code>v8qi3): Ditto.
+ 	(<code><mode>3): Ditto.
+ 	* config/i386/sse.md (vcond<mode><mode>): Merge this with ..
+ 	(vcond<sseintvecmodelower><mode>): .. this into ..
+ 	(vcond<VI2HFBF_AVX512VL:mode><VHF_AVX512VL:mode>): .. this,
+ 	and extend to V8BF/V16BF/V32BFmode.
+ 
+ 2023-10-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-opts.h (TARGET_MAX_LMUL): New macro.
+ 	* config/riscv/riscv-v.cc (preferred_simd_mode): Adapt macro.
+ 	(autovectorize_vector_modes): Ditto.
+ 	(can_find_related_mode_p): Ditto.
+ 
+ 2023-10-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111318
+ 	PR target/111888
+ 	* config.gcc: Add AVL propagation pass.
+ 	* config/riscv/riscv-passes.def (INSERT_PASS_AFTER): Ditto.
+ 	* config/riscv/riscv-protos.h (make_pass_avlprop): Ditto.
+ 	* config/riscv/t-riscv: Ditto.
+ 	* config/riscv/riscv-avlprop.cc: New file.
+ 
+ 2023-10-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/extend.texi (Common Function Attributes): Add
+ 	null_terminated_string_arg.
+ 
+ 2023-10-26  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR tree-optimization/111957
+ 	* match.pd (`a != C1 ? abs(a) : C2`): New pattern.
+ 
+ 2023-10-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (range_operator::fold_range): Delete unused
+ 	variable.
+ 
+ 2023-10-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (range_operator::fold_range): Remove
+ 	superfluous code.
+ 	(range_operator::rv_fold): Remove unneeded arguments.
+ 	(operator_plus::rv_fold): Same.
+ 	(operator_minus::rv_fold): Same.
+ 	(operator_mult::rv_fold): Same.
+ 	(operator_div::rv_fold): Same.
+ 	* range-op-mixed.h: Remove lb, ub, and maybe_nan arguments from
+ 	rv_fold methods.
+ 	* range-op.h: Same.
+ 
+ 2023-10-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (range_operator::fold_range): Pass frange
+ 	argument to rv_fold.
+ 	(range_operator::rv_fold): Add frange argument.
+ 	(operator_plus::rv_fold): Same.
+ 	(operator_minus::rv_fold): Same.
+ 	(operator_mult::rv_fold): Same.
+ 	(operator_div::rv_fold): Same.
+ 	* range-op-mixed.h: Add frange argument to rv_fold methods.
+ 	* range-op.h: Same.
+ 
+ 2023-10-26  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add table output
+ 	for different machine modes for arm.
+ 	* config/arm/arm-protos.h (arm_output_casesi): New prototype.
+ 	* config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Make arm use
+ 	ASM_OUTPUT_ADDR_DIFF_ELT.
+ 	(CASE_VECTOR_SHORTEN_MODE): Change table size calculation for
+ 	TARGET_ARM.
+ 	(LABEL_ALIGN_AFTER_BARRIER): Change to accommodate .p2align 2
+ 	for TARGET_ARM.
+ 	* config/arm/arm.cc (arm_output_casesi): New function.
+ 	* config/arm/arm.md (arm_casesi_internal): Change casesi expand
+ 	and insn.
+ 	for arm to use new function arm_output_casesi.
+ 
+ 2023-10-26  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h
+ 	(darwin_label_is_anonymous_local_objc_name): Make metadata names
+ 	linker-visibile for GNU objective C.
+ 
+ 2023-10-26  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* dwarf2out.cc (reg_loc_descriptor): Use lra_eliminate_regs when
+ 	LRA is used.
+ 	* ira-costs.cc: Include regset.h.
+ 	(equiv_can_be_consumed_p, get_equiv_regno, calculate_equiv_gains):
+ 	New functions.
+ 	(find_costs_and_classes): Call calculate_equiv_gains and redefine
+ 	mem_cost of pseudos with equivs when LRA is used.
+ 	* var-tracking.cc: Include ira.h and lra.h.
+ 	(vt_initialize): Use lra_eliminate_regs when LRA is used.
+ 
+ 2023-10-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* doc/md.texi: Adapt COND_LEN pseudo code.
+ 
+ 2023-10-26  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/91865
+ 	* combine.cc (make_compound_operation): Avoid creating a
+ 	ZERO_EXTEND of a ZERO_EXTEND.
+ 
+ 2023-10-26  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vcond_mask_<ILASX:mode><ILASX:mode>): Change to
+ 	(vcond_mask_<mode><mode256_i>): this.
+ 	* config/loongarch/lsx.md (vcond_mask_<ILSX:mode><ILSX:mode>): Change to
+ 	(vcond_mask_<mode><mode_i>): this.
+ 
+ 2023-10-26  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* ipa-icf.cc (sem_item::target_supports_symbol_aliases_p):
+ 	'gcc_checking_assert (TARGET_SUPPORTS_ALIASES);' before
+ 	'return true;'.
+ 	* ipa-visibility.cc (function_and_variable_visibility): Change
+ 	'#ifdef ASM_OUTPUT_DEF' to 'if (TARGET_SUPPORTS_ALIASES)'.
+ 	* varasm.cc (output_constant_pool_contents)
+ 	[#ifdef ASM_OUTPUT_DEF]:
+ 	'gcc_checking_assert (TARGET_SUPPORTS_ALIASES);'.
+ 	(do_assemble_alias) [#ifdef ASM_OUTPUT_DEF]:
+ 	'if (!TARGET_SUPPORTS_ALIASES)',
+ 	'gcc_checking_assert (seen_error ());'.
+ 	(assemble_alias): Change '#if !defined (ASM_OUTPUT_DEF)' to
+ 	'if (!TARGET_SUPPORTS_ALIASES)'.
+ 	(default_asm_output_anchor):
+ 	'gcc_checking_assert (TARGET_SUPPORTS_ALIASES);'.
+ 
+ 2023-10-26  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR tree-optimization/111520
+ 	* gimple-harden-conditionals.cc
+ 	(pass_harden_compares::execute): Set EH edge probability and
+ 	EH block execution count.
+ 
+ 2023-10-26  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-eh.h (make_eh_edges): Rename to...
+ 	(make_eh_edge): ... this.
+ 	* tree-eh.cc: Likewise.  Adjust all callers...
+ 	* gimple-harden-conditionals.cc: ... here, ...
+ 	* gimple-harden-control-flow.cc: ... here, ...
+ 	* tree-cfg.cc: ... here, ...
+ 	* tree-inline.cc: ... and here.
+ 
+ 2023-10-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (darwin_override_options): Handle fPIE.
+ 
+ 2023-10-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.gcc: Use -E to to sed to indicate that we are using
+ 	extended REs.
+ 
+ 2023-10-25  Jason Merrill  <jason@redhat.com>
+ 
+ 	* tree-core.h (struct tree_base): Update address_space comment.
+ 
+ 2023-10-25  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
+ 	Add support for immediates using MOV/EOR bitmask.
+ 
+ 2023-10-25  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/111698
+ 	* config/i386/x86-tune.def (X86_TUNE_PARTIAL_MEMORY_READ_STALL):
+ 	New tune.
+ 	* config/i386/i386.h (TARGET_PARTIAL_MEMORY_READ_STALL): New macro.
+ 	* config/i386/i386.md: New peephole pattern to narrow test
+ 	instructions with immediate operands that test memory locations
+ 	for zero.
+ 
+ 2023-10-25  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-range.cc (irange::union_append): New.
+ 	(irange::union_): Call union_append when appropriate.
+ 	* value-range.h (irange::union_append): New prototype.
+ 
+ 2023-10-25  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/lasxintrin.h (__lasx_xvftintrnel_l_s): Fix comments.
+ 	(__lasx_xvfrintrne_s): Ditto.
+ 	(__lasx_xvfrintrne_d): Ditto.
+ 	(__lasx_xvfrintrz_s): Ditto.
+ 	(__lasx_xvfrintrz_d): Ditto.
+ 	(__lasx_xvfrintrp_s): Ditto.
+ 	(__lasx_xvfrintrp_d): Ditto.
+ 	(__lasx_xvfrintrm_s): Ditto.
+ 	(__lasx_xvfrintrm_d): Ditto.
+ 	* config/loongarch/lsxintrin.h (__lsx_vftintrneh_l_s): Ditto.
+ 	(__lsx_vfrintrne_s): Ditto.
+ 	(__lsx_vfrintrne_d): Ditto.
+ 	(__lsx_vfrintrz_s): Ditto.
+ 	(__lsx_vfrintrz_d): Ditto.
+ 	(__lsx_vfrintrp_s): Ditto.
+ 	(__lsx_vfrintrp_d): Ditto.
+ 	(__lsx_vfrintrm_s): Ditto.
+ 	(__lsx_vfrintrm_d): Ditto.
+ 
+ 2023-10-25  chenxiaolong  <chenxiaolong@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md (get_thread_pointer<mode>):Adds the
+ 	instruction template corresponding to the __builtin_thread_pointer
+ 	function.
+ 	* doc/extend.texi:Add the __builtin_thread_pointer function support
+ 	description to the documentation.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* Makefile.in (OBJS): Add rtl-ssa/movement.o.
+ 	* rtl-ssa/access-utils.h (accesses_include_nonfixed_hard_registers)
+ 	(single_set_info): New functions.
+ 	(remove_uses_of_def, accesses_reference_same_resource): Declare.
+ 	(insn_clobbers_resources): Likewise.
+ 	* rtl-ssa/accesses.cc (rtl_ssa::remove_uses_of_def): New function.
+ 	(rtl_ssa::accesses_reference_same_resource): Likewise.
+ 	(rtl_ssa::insn_clobbers_resources): Likewise.
+ 	* rtl-ssa/movement.h (can_move_insn_p): Declare.
+ 	* rtl-ssa/movement.cc: New file.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/functions.h (function_info::remains_available_at_insn):
+ 	New member function.
+ 	* rtl-ssa/accesses.cc (function_info::remains_available_at_insn):
+ 	Likewise.
+ 	(function_info::make_use_available): Avoid false negatives for
+ 	queries within an EBB.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/changes.cc: Include sreal.h.
+ 	(rtl_ssa::changes_are_worthwhile): When optimizing for speed,
+ 	scale the cost of each instruction by its execution frequency.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/access-utils.h (next_call_clobbers): New function.
+ 	(is_single_dominating_def, remains_available_on_exit): Replace with...
+ 	* rtl-ssa/functions.h (function_info::is_single_dominating_def)
+ 	(function_info::remains_available_on_exit): ...these new member
+ 	functions.
+ 	(function_info::m_clobbered_by_calls): New member variable.
+ 	* rtl-ssa/functions.cc (function_info::function_info): Explicitly
+ 	initialize m_clobbered_by_calls.
+ 	* rtl-ssa/insns.cc (function_info::record_call_clobbers): Update
+ 	m_clobbered_by_calls for each call-clobber note.
+ 	* rtl-ssa/member-fns.inl (function_info::is_single_dominating_def):
+ 	New function.  Check for call clobbers.
+ 	* rtl-ssa/accesses.cc (function_info::remains_available_on_exit):
+ 	Likewise.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/internals.h (build_info::exit_block_dominator): New
+ 	member variable.
+ 	* rtl-ssa/blocks.cc (build_info::build_info): Initialize it.
+ 	(bb_walker::bb_walker): Use it, moving the computation of the
+ 	dominator to...
+ 	(function_info::process_all_blocks): ...here.
+ 	(function_info::place_phis): Add dominance frontiers for the
+ 	exit block.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/functions.h (function_info::process_uses_of_deleted_def):
+ 	New member function.
+ 	* rtl-ssa/changes.cc (function_info::process_uses_of_deleted_def):
+ 	Likewise.
+ 	(function_info::change_insns): Use it.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/changes.cc (function_info::finalize_new_accesses):
+ 	If a change describes a set of memory, ensure that that set
+ 	is kept, regardless of the insn pattern.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/changes.cc (function_info::apply_changes_to_insn): Remove
+ 	call to add_reg_unused_notes and instead...
+ 	(function_info::change_insns): ...use a separate loop here.
+ 
+ 2023-10-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/blocks.cc (function_info::add_artificial_accesses): Force
+ 	global registers to be live on exit.  Handle any block with zero
+ 	successors like an exit block.
+ 
+ 2023-10-25  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
+ 	Handle 'OMP_CLAUSE_SELF' like 'OMP_CLAUSE_IF'.
+ 	* omp-expand.cc (expand_omp_target): Handle 'OMP_CLAUSE_SELF' for
+ 	'GF_OMP_TARGET_KIND_OACC_DATA_KERNELS'.
+ 
+ 2023-10-25  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* tree-core.h (omp_clause_code): Move 'OMP_CLAUSE_SELF' after
+ 	'OMP_CLAUSE_IF'.
+ 	* tree-pretty-print.cc (dump_omp_clause): Adjust.
+ 	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Likewise.
+ 	* tree.h: Likewise.
+ 
+ 2023-10-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (has_vl_op): Export from riscv-vsetvl to riscv-v
+ 	(tail_agnostic_p): Ditto.
+ 	(validate_change_or_fail): Ditto.
+ 	(nonvlmax_avl_type_p): Ditto.
+ 	(vlmax_avl_p): Ditto.
+ 	(get_sew): Ditto.
+ 	(enum vlmul_type): Ditto.
+ 	(count_regno_occurrences): Ditto.
+ 	* config/riscv/riscv-v.cc (has_vl_op): Ditto.
+ 	(get_default_ta): Ditto.
+ 	(tail_agnostic_p): Ditto.
+ 	(validate_change_or_fail): Ditto.
+ 	(nonvlmax_avl_type_p): Ditto.
+ 	(vlmax_avl_p): Ditto.
+ 	(get_sew): Ditto.
+ 	(enum vlmul_type): Ditto.
+ 	(get_vlmul): Ditto.
+ 	(count_regno_occurrences): Ditto.
+ 	* config/riscv/riscv-vsetvl.cc (vlmax_avl_p): Ditto.
+ 	(has_vl_op): Ditto.
+ 	(get_sew): Ditto.
+ 	(get_vlmul): Ditto.
+ 	(get_default_ta): Ditto.
+ 	(tail_agnostic_p): Ditto.
+ 	(count_regno_occurrences): Ditto.
+ 	(validate_change_or_fail): Ditto.
+ 
+ 2023-10-25  Chung-Lin Tang  <cltang@codesourcery.com>
+ 
+ 	* gimplify.cc (gimplify_scan_omp_clauses): Add OMP_CLAUSE_SELF case.
+ 	(gimplify_adjust_omp_clauses): Likewise.
+ 	* omp-expand.cc (expand_omp_target): Add OMP_CLAUSE_SELF expansion code,
+ 	* omp-low.cc (scan_sharing_clauses): Add OMP_CLAUSE_SELF case.
+ 	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_SELF enum.
+ 	* tree-nested.cc (convert_nonlocal_omp_clauses): Add OMP_CLAUSE_SELF
+ 	case.
+ 	(convert_local_omp_clauses): Likewise.
+ 	* tree-pretty-print.cc (dump_omp_clause): Add OMP_CLAUSE_SELF case.
+ 	* tree.cc (omp_clause_num_ops): Add OMP_CLAUSE_SELF entry.
+ 	(omp_clause_code_name): Likewise.
+ 	* tree.h (OMP_CLAUSE_SELF_EXPR): New macro.
+ 
+ 2023-10-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (vlmax_avl_type_p): New function.
+ 	* config/riscv/riscv-v.cc (vlmax_avl_type_p): Ditto.
+ 	* config/riscv/riscv-vsetvl.cc (get_avl): Adapt function.
+ 	* config/riscv/vector.md: Change avl_type into avl_type_idx.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* recog.cc (constrain_operands): Remove UNARY_P handling.
+ 	* reload.cc (find_reloads): Likewise.
+ 
+ 2023-10-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* gcov-io.h: Fix record length encoding in comment.
+ 
+ 2023-10-24  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-features.cc (compute_convert_gain): Provide
+ 	more accurate values (sizes) for inter-unit moves with -Os.
+ 
+ 2023-10-24  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc-protos.h (output_shift): Rename to...
+ 	(output_shift_loop): Tweak API to take an explicit rtx_code.
+ 	(arc_split_ashl): Prototype new function here.
+ 	(arc_split_ashr): Likewise.
+ 	(arc_split_lshr): Likewise.
+ 	(arc_split_rotl): Likewise.
+ 	(arc_split_rotr): Likewise.
+ 	* config/arc/arc.cc (output_shift): Delete local prototype.  Rename.
+ 	(output_shift_loop): New function replacing output_shift to output
+ 	a zero overheap loop for SImode shifts and rotates on ARC targets
+ 	without barrel shifter (i.e. no hardware support for these insns).
+ 	(arc_split_ashl): New helper function to split *ashlsi3_nobs.
+ 	(arc_split_ashr): New helper function to split *ashrsi3_nobs.
+ 	(arc_split_lshr): New helper function to split *lshrsi3_nobs.
+ 	(arc_split_rotl): New helper function to split *rotlsi3_nobs.
+ 	(arc_split_rotr): New helper function to split *rotrsi3_nobs.
+ 	(arc_print_operand): Correct whitespace.
+ 	(arc_rtx_costs): Likewise.
+ 	(hwloop_optimize): Likewise.
+ 	* config/arc/arc.md (ANY_SHIFT_ROTATE): New define_code_iterator.
+ 	(define_code_attr insn): New code attribute to map to pattern name.
+ 	(<ANY_SHIFT_ROTATE>si3): New expander unifying previous ashlsi3,
+ 	ashrsi3 and lshrsi3 define_expands.  Adds rotlsi3 and rotrsi3.
+ 	(*<ANY_SHIFT_ROTATE>si3_nobs): New define_insn_and_split that
+ 	unifies the previous *ashlsi3_nobs, *ashrsi3_nobs and *lshrsi3_nobs.
+ 	We now call arc_split_<insn> in arc.cc to implement each split.
+ 	(shift_si3): Delete define_insn, all shifts/rotates are now split.
+ 	(shift_si3_loop): Rename to...
+ 	(<insn>si3_loop): define_insn to handle loop implementations of
+ 	SImode shifts and rotates, calling ouput_shift_loop for template.
+ 	(rotrsi3): Rename to...
+ 	(*rotrsi3_insn): define_insn for TARGET_BARREL_SHIFTER's ror.
+ 	(*rotlsi3): New define_insn_and_split to transform left rotates
+ 	into right rotates before reload.
+ 	(rotlsi3_cnt1): New define_insn_and_split to implement a left
+ 	rotate by one bit using an add.f followed by an adc.
+ 	* config/arc/predicates.md (shiftr4_operator): Delete.
+ 
+ 2023-10-24  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc.md (mulsi3_700): Update pattern.
+ 	(mulsi3_v2): Likewise.
+ 	* config/arc/predicates.md (mpy_dest_reg_operand): Remove it.
+ 
+ 2023-10-24  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR tree-optimization/104376
+ 	PR tree-optimization/101541
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation):
+ 	Allow nop conversions even if it is defined by a statement
+ 	inside the conditional.
+ 
+ 2023-10-24  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR tree-optimization/111913
+ 	* match.pd (`popcount(X&Y) + popcount(X|Y)`): Add the resulting
+ 	type for popcount.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/blocks.cc (function_info::create_degenerate_phi): Check
+ 	whether the requested phi already exists.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa.h: Include cfgbuild.h.
+ 	* rtl-ssa/movement.h (can_insert_after): Replace is_jump with the
+ 	more comprehensive control_flow_insn_p.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/changes.cc (function_info::perform_pending_updates): Check
+ 	whether an insn has been replaced by a note.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/member-fns.inl (first_any_insn_use): Handle null
+ 	m_first_use.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_split_mmx_punpck): Allow the
+ 	destination to be wider than the sources.  Take the mode from the
+ 	first source.
+ 	(ix86_expand_sse_extend): Pass the destination directly to
+ 	ix86_split_mmx_punpck, rather than using a fresh register that
+ 	is half the size.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/i386/predicates.md (aeswidekl_operation): Protect
+ 	REGNO check with REG_P.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_insn_cost): New function.
+ 	(TARGET_INSN_COST): Define.
+ 
+ 2023-10-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/atomics.md (aarch64_atomic_exchange<mode>): Require
+ 	!TARGET_LSE.
+ 
+ 2023-10-24  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/111935
+ 	* config/riscv/riscv-vector-builtins-bases.cc: fix bug.
+ 
+ 2023-10-24  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* opts.cc (debug_type_names): Remove stabs and xcoff.
+ 	(df_set_names): Adjust.
+ 
+ 2023-10-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111947
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Add REGNO check.
+ 
+ 2023-10-23  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR preprocessor/36887
+ 	* toplev.h (ident_hash_extra): Declare...
+ 	* stringpool.cc (ident_hash_extra): ...this new global variable.
+ 	(init_stringpool): Handle ident_hash_extra as well as ident_hash.
+ 	(ggc_mark_stringpool): Likewise.
+ 	(ggc_purge_stringpool): Likewise.
+ 	(struct string_pool_data_extra): New struct.
+ 	(spd2): New GC root variable.
+ 	(gt_pch_save_stringpool): Use spd2 to handle ident_hash_extra,
+ 	analogous to how spd is used to handle ident_hash.
+ 	(gt_pch_restore_stringpool): Likewise.
+ 
+ 2023-10-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/111794
+ 	* tree-vect-stmts.cc (vectorizable_assignment): Add
+ 	same-precision exception for dest and source.
+ 
+ 2023-10-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (popcount<mode>2): New expander.
+ 	* config/riscv/riscv-protos.h (expand_popcount): Define.
+ 	* config/riscv/riscv-v.cc (expand_popcount): Vectorize popcount
+ 	with the WWG algorithm.
+ 
+ 2023-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111916
+ 	* tree-sra.cc (sra_modify_assign): Do not lower all
+ 	BIT_FIELD_REF reads that are sra_handled_bf_read_p.
+ 
+ 2023-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111915
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Check all
+ 	accesses are either grouped or not.
+ 
+ 2023-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/111914
+ 	* tree-inline.cc (setup_one_parameter): Move code emitting
+ 	a dummy load when not optimizing ...
+ 	(initialize_inlined_parameters): ... here to after when
+ 	we remapped the parameter type.
+ 
+ 2023-10-23  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	PR target/111001
+ 	* config/sh/sh_treg_combine.cc (sh_treg_combine::record_set_of_reg):
+ 	Skip over nop move insns.
+ 
+ 2023-10-23  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/111860
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Drop .MEM nodes only.
+ 
+ 2023-10-23  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`(A - B) CMP 0 ? (A - B) : (B - A)`):
+ 	New patterns.
+ 
+ 2023-10-23  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	* convert.cc (convert_to_pointer_1): Return error_mark_node
+ 	after an error.
+ 	(convert_to_real_1): Likewise.
+ 	(convert_to_integer_1): Likewise.
+ 	(convert_to_complex_1): Likewise.
+ 
+ 2023-10-23  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR c/111903
+ 	* convert.cc (convert_to_complex_1): Return
+ 	error_mark_node if either convert was an error
+ 	when converting from a scalar.
+ 
+ 2023-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111917
+ 	* tree-ssa-loop-unswitch.cc (hoist_guard): Always insert
+ 	new conditional after last stmt.
+ 
+ 2023-10-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111927
+ 	* config/riscv/riscv-vsetvl.cc: Fix bug.
+ 
+ 2023-10-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (emit_vec_cvt_x_f_rtz): Add insn type
+ 	arg.
+ 	(expand_vec_trunc): Take MA instead of MU for cvt_x_f_rtz.
+ 
+ 2023-10-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* doc/invoke.texi (-mexplicit-relocs=style): Document.
+ 	(-mexplicit-relocs): Document as an alias of
+ 	-mexplicit-relocs=always.
+ 	(-mno-explicit-relocs): Document as an alias of
+ 	-mexplicit-relocs=none.
+ 	(-mcmodel=extreme): Mention -mexplicit-relocs=always instead of
+ 	-mexplicit-relocs.
+ 
+ 2023-10-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/predicates.md (symbolic_pcrel_operand): New
+ 	predicate.
+ 	* config/loongarch/loongarch.md (define_peephole2): Optimize
+ 	la.local + ld/st to pcalau12i + ld/st if the address is only used
+ 	once if -mexplicit-relocs=auto and -mcmodel=normal or medium.
+ 
+ 2023-10-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
+ 	Return true for TLS symbol types if -mexplicit-relocs=auto.
+ 	(loongarch_call_tls_get_addr): Replace TARGET_EXPLICIT_RELOCS
+ 	with la_opt_explicit_relocs != EXPLICIT_RELOCS_NONE.
+ 	(loongarch_legitimize_tls_address): Likewise.
+ 	* config/loongarch/loongarch.md (@tls_low<mode>): Remove
+ 	TARGET_EXPLICIT_RELOCS from insn condition.
+ 
+ 2023-10-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_explicit_relocs_p): Declare new function.
+ 	* config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
+ 	Implement.
+ 	(loongarch_symbol_insns): Call loongarch_explicit_relocs_p for
+ 	SYMBOL_GOT_DISP, instead of using TARGET_EXPLICIT_RELOCS.
+ 	(loongarch_split_symbol): Call loongarch_explicit_relocs_p for
+ 	deciding if return early, instead of using
+ 	TARGET_EXPLICIT_RELOCS.
+ 	(loongarch_output_move): CAll loongarch_explicit_relocs_p
+ 	instead of using TARGET_EXPLICIT_RELOCS.
+ 	* config/loongarch/loongarch.md (*low<mode>): Remove
+ 	TARGET_EXPLICIT_RELOCS from insn condition.
+ 	(@ld_from_got<mode>): Likewise.
+ 	* config/loongarch/predicates.md (move_operand): Call
+ 	loongarch_explicit_relocs_p instead of using
+ 	TARGET_EXPLICIT_RELOCS.
+ 
+ 2023-10-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/genopts/loongarch-strings: Add strings for
+ 	-mexplicit-relocs={auto,none,always}.
+ 	* config/loongarch/genopts/loongarch.opt.in: Add options for
+ 	-mexplicit-relocs={auto,none,always}.
+ 	* config/loongarch/loongarch-str.h: Regenerate.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch-def.h
+ 	(EXPLICIT_RELOCS_AUTO): Define.
+ 	(EXPLICIT_RELOCS_NONE): Define.
+ 	(EXPLICIT_RELOCS_ALWAYS): Define.
+ 	(N_EXPLICIT_RELOCS_TYPES): Define.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_option_override_internal): Error out if the old-style
+ 	-m[no-]explicit-relocs option is used with
+ 	-mexplicit-relocs={auto,none,always} together.  Map
+ 	-mno-explicit-relocs to -mexplicit-relocs=none and
+ 	-mexplicit-relocs to -mexplicit-relocs=always for backward
+ 	compatibility.  Set a proper default for -mexplicit-relocs=
+ 	based on configure-time probed linker capability.  Update a
+ 	diagnostic message to mention -mexplicit-relocs=always instead
+ 	of the old-style -mexplicit-relocs.
+ 	(loongarch_handle_model_attribute): Update a diagnostic message
+ 	to mention -mexplicit-relocs=always instead of the old-style
+ 	-mexplicit-relocs.
+ 	* config/loongarch/loongarch.h (TARGET_EXPLICIT_RELOCS): Define.
+ 
+ 2023-10-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info): Fix typo.
+ 	(pre_vsetvl::pre_global_vsetvl_info): Ditto.
+ 
+ 2023-10-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix avl_type attribute of tuple mov<mode>.
+ 
+ 2023-10-23  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/111784
+ 	* tree-vect-stmts.cc (vectorizable_store): Adjust costing way for
+ 	adjacent vector stores, by costing them with the total number
+ 	rather than costing them one by one.
+ 	(vectorizable_load): Adjust costing way for adjacent vector
+ 	loads, by costing them with the total number rather than costing
+ 	them one by one.
+ 
+ 2023-10-23  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/111753
+ 	* config/i386/i386.cc (ix86_standard_x87sse_constant_load_p):
+ 	Do not split to xmm16+ when !TARGET_AVX512VL.
+ 
+ 2023-10-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (enum insn_type): Add new type
+ 	values.
+ 	* config/riscv/riscv-v.cc (emit_vec_cvt_x_f): Add undef merge
+ 	operand handling.
+ 	(expand_vec_ceil): Take MA instead of MU for tmp register.
+ 	(expand_vec_floor): Ditto.
+ 	(expand_vec_nearbyint): Ditto.
+ 	(expand_vec_rint): Ditto.
+ 	(expand_vec_round): Ditto.
+ 	(expand_vec_roundeven): Ditto.
+ 
+ 2023-10-23  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.h (CLEAR_INSN_CACHE): New definition.
+ 
+ 2023-10-23  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/111449
+ 	* expr.cc (can_use_qi_vectors): New function to return true if
+ 	we know how to implement OP using vectors of bytes.
+ 	(qi_vector_mode_supported_p): New function to check if optabs
+ 	exists for the mode and certain by pieces operations.
+ 	(widest_fixed_size_mode_for_size): Replace the second argument
+ 	with the type of by pieces operations.  Call can_use_qi_vectors
+ 	and qi_vector_mode_supported_p to do the check.  Call
+ 	scalar_mode_supported_p to check if the scalar mode is supported.
+ 	(by_pieces_ninsns): Pass the type of by pieces operation to
+ 	widest_fixed_size_mode_for_size.
+ 	(class op_by_pieces_d): Remove m_qi_vector_mode.  Add m_op to
+ 	record the type of by pieces operations.
+ 	(op_by_pieces_d::op_by_pieces_d): Change last argument to the
+ 	type of by pieces operations, initialize m_op with it.  Pass
+ 	m_op to function widest_fixed_size_mode_for_size.
+ 	(op_by_pieces_d::get_usable_mode): Pass m_op to function
+ 	widest_fixed_size_mode_for_size.
+ 	(op_by_pieces_d::smallest_fixed_size_mode_for_size): Call
+ 	can_use_qi_vectors and qi_vector_mode_supported_p to do the
+ 	check.
+ 	(op_by_pieces_d::run): Pass m_op to function
+ 	widest_fixed_size_mode_for_size.
+ 	(move_by_pieces_d::move_by_pieces_d): Set m_op to MOVE_BY_PIECES.
+ 	(store_by_pieces_d::store_by_pieces_d): Set m_op with the op.
+ 	(can_store_by_pieces): Pass the type of by pieces operations to
+ 	widest_fixed_size_mode_for_size.
+ 	(clear_by_pieces): Initialize class store_by_pieces_d with
+ 	CLEAR_BY_PIECES.
+ 	(compare_by_pieces_d::compare_by_pieces_d): Set m_op to
+ 	COMPARE_BY_PIECES.
+ 
+ 2023-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/111820
+ 	PR tree-optimization/111833
+ 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Give
+ 	up vectorization for nonlinear iv vect_step_op_mul when
+ 	step_expr is not exact_log2 and niters is greater than
+ 	TYPE_PRECISION (TREE_TYPE (step_expr)). Also don't vectorize
+ 	for nagative niters_skip which will be used by fully masked
+ 	loop.
+ 	(vect_can_advance_ivs_p): Pass whole phi_info to
+ 	vect_can_peel_nonlinear_iv_p.
+ 	* tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Optimize
+ 	init_expr * pow (step_expr, skipn) to init_expr
+ 	<< (log2 (step_expr) * skipn) when step_expr is exact_log2.
+ 
+ 2023-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/mmx.md (mmx_pinsrw): Remove.
+ 
+ 2023-10-22  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR target/110986
+ 	* config/aarch64/aarch64.md (*cmov<mode>_insn_insv): New pattern.
+ 	(*cmov_uxtw_insn_insv): Likewise.
+ 
+ 2023-10-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* doc/invoke.texi: Document the new -nodefaultrpaths option.
+ 	* doc/install.texi: Document the new --with-darwin-extra-rpath
+ 	option.
+ 
+ 2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* Makefile.in: set ENABLE_DARWIN_AT_RPATH in site.tmp.
+ 
+ 2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* configure.ac: Add --with-darwin-extra-rpath option.
+ 	* config/darwin.h: Handle DARWIN_EXTRA_RPATH.
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 
+ 2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Handle Darwin rpaths.
+ 	* config/darwin.h: Handle Darwin rpaths.
+ 	* config/darwin.opt: Handle Darwin rpaths.
+ 	* Makefile.in:  Handle Darwin rpaths.
+ 
+ 2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.cc (RUNPATH_OPTION): New.
+ 	(do_spec_1): Provide '%P' as a spec to insert rpaths for
+ 	each compiler startfile path.
+ 
+ 2023-10-22  Andrew Burgess  <andrew.burgess@embecosm.com>
+ 	    Maxim Blinov  <maxim.blinov@embecosm.com>
+ 	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 	    Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.gcc: Default to heap trampolines on macOS 11 and above.
+ 	* config/i386/darwin.h: Define X86_CUSTOM_FUNCTION_TEST.
+ 	* config/i386/i386.h: Define X86_CUSTOM_FUNCTION_TEST.
+ 	* config/i386/i386.cc: Use X86_CUSTOM_FUNCTION_TEST.
+ 
+ 2023-10-22  Andrew Burgess  <andrew.burgess@embecosm.com>
+ 	    Maxim Blinov  <maxim.blinov@embecosm.com>
+ 	    Iain Sandoe  <iain@sandoe.co.uk>
+ 	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* builtins.def (BUILT_IN_NESTED_PTR_CREATED): Define.
+ 	(BUILT_IN_NESTED_PTR_DELETED): Ditto.
+ 	* common.opt (ftrampoline-impl): Add option to control
+ 	generation of trampoline instantiation (heap or stack).
+ 	* coretypes.h: Define enum trampoline_impl.
+ 	* tree-nested.cc (convert_tramp_reference_op): Don't bother calling
+ 	__builtin_adjust_trampoline for heap trampolines.
+ 	(finalize_nesting_tree_1): Emit calls to
+ 	__builtin_nested_...{created,deleted} if we're generating with
+ 	-ftrampoline-impl=heap.
+ 	* tree.cc (build_common_builtin_nodes): Build
+ 	__builtin_nested_...{created,deleted}.
+ 	* doc/invoke.texi (-ftrampoline-impl): Document.
+ 
+ 2023-10-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
+ 	Prohibit 'E' and 'H' combinations.
+ 
+ 2023-10-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_version_table):
+ 	Change version number of the 'Zfa' extension to 1.0.
+ 
+ 2023-10-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/111857
+ 	* config/riscv/riscv-opts.h (TARGET_VECTOR_VLS): Remove.
+ 	* config/riscv/riscv-protos.h (vls_mode_valid_p): New func decl.
+ 	* config/riscv/riscv-v.cc (autovectorize_vector_modes): Replace
+ 	macro reference to func.
+ 	(vls_mode_valid_p): New func impl for vls mode valid or not.
+ 	* config/riscv/riscv-vector-switch.def (VLS_ENTRY): Replace
+ 	macro reference to func.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 
+ 2023-10-20  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR middle-end/101955
+ 	PR tree-optimization/106245
+ 	* config/i386/i386.md (*extv<mode>_1_0): New define_insn_and_split.
+ 
+ 2023-10-20  David Edelsohn  <dje.gcc@gmail.com>
+ 
+ 	* gimple-harden-control-flow.cc: Include memmodel.h.
+ 
+ 2023-10-20  David Edelsohn  <dje.gcc@gmail.com>
+ 
+ 	* gimple-harden-control-flow.cc: Include tm_p.h.
+ 
+ 2023-10-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR tree-optimization/111882
+ 	* tree-if-conv.cc (get_bitfield_rep): Return NULL_TREE for bitfields
+ 	with non-constant offsets.
+ 
+ 2023-10-20  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/111866
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Pass null as vinfo to
+ 	vect_set_loop_condition during prolog peeling.
+ 
+ 2023-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111445
+ 	* tree-scalar-evolution.cc (simple_iv_with_niters):
+ 	Add missing check for a sign-conversion.
+ 
+ 2023-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110243
+ 	PR tree-optimization/111336
+ 	* tree-ssa-loop-ivopts.cc (strip_offset_1): Rewrite
+ 	operations with undefined behavior on overflow to
+ 	unsigned arithmetic.
+ 
+ 2023-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111891
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Fix
+ 	assert.
+ 
+ 2023-10-20  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config.gcc: Allow --with-arch=gfx1030.
+ 	* config/gcn/gcn-hsa.h (NO_XNACK): gfx1030 does not support xnack.
+ 	(ASM_SPEC): gfx1030 needs -mattr=+wavefrontsize64 set.
+ 	* config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1030.
+ 	(TARGET_GFX1030): New.
+ 	(TARGET_RDNA2): New.
+ 	* config/gcn/gcn-valu.md (@dpp_move<mode>): Disable for RDNA2.
+ 	(addc<mode>3<exec_vcc>): Add RDNA2 syntax variant.
+ 	(subc<mode>3<exec_vcc>): Likewise.
+ 	(<convop><mode><vndi>2_exec): Add RDNA2 alternatives.
+ 	(vec_cmp<mode>di): Likewise.
+ 	(vec_cmp<u><mode>di): Likewise.
+ 	(vec_cmp<mode>di_exec): Likewise.
+ 	(vec_cmp<u><mode>di_exec): Likewise.
+ 	(vec_cmp<mode>di_dup): Likewise.
+ 	(vec_cmp<mode>di_dup_exec): Likewise.
+ 	(reduc_<reduc_op>_scal_<mode>): Disable for RDNA2.
+ 	(*<reduc_op>_dpp_shr_<mode>): Likewise.
+ 	(*plus_carry_dpp_shr_<mode>): Likewise.
+ 	(*plus_carry_in_dpp_shr_<mode>): Likewise.
+ 	* config/gcn/gcn.cc (gcn_option_override): Recognise gfx1030.
+ 	(gcn_global_address_p): RDNA2 only allows smaller offsets.
+ 	(gcn_addr_space_legitimate_address_p): Likewise.
+ 	(gcn_omp_device_kind_arch_isa): Recognise gfx1030.
+ 	(gcn_expand_epilogue): Use VGPRs instead of SGPRs.
+ 	(output_file_start): Configure gfx1030.
+ 	* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __RDNA2__;
+ 	(ASSEMBLER_DIALECT): New.
+ 	* config/gcn/gcn.md (rdna): New define_attr.
+ 	(enabled): Use "rdna" attribute.
+ 	(gcn_return): Remove s_dcache_wb.
+ 	(addcsi3_scalar): Add RDNA2 syntax variant.
+ 	(addcsi3_scalar_zero): Likewise.
+ 	(addptrdi3): Likewise.
+ 	(mulsi3): v_mul_lo_i32 should be v_mul_lo_u32 on all ISA.
+ 	(*memory_barrier): Add RDNA2 syntax variant.
+ 	(atomic_load<mode>): Add RDNA2 cache control variants, and disable
+ 	scalar atomics for RDNA2.
+ 	(atomic_store<mode>): Likewise.
+ 	(atomic_exchange<mode>): Likewise.
+ 	* config/gcn/gcn.opt (gpu_type): Add gfx1030.
+ 	* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1030): New.
+ 	(main): Recognise -march=gfx1030.
+ 	* config/gcn/t-omp-device: Add gfx1030 isa.
+ 
+ 2023-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111000
+ 	* stor-layout.h (element_precision): Move ..
+ 	* tree.h (element_precision): .. here.
+ 	* tree-ssa-loop-im.cc (movement_possibility_1): Restrict
+ 	motion of shifts and rotates.
+ 
+ 2023-10-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-core.h (ECF_XTHROW): New macro.
+ 	* tree.cc (set_call_expr): Add expected_throw attribute when
+ 	ECF_XTHROW is set.
+ 	(build_common_builtin_node): Add ECF_XTHROW to
+ 	__cxa_end_cleanup and _Unwind_Resume or _Unwind_SjLj_Resume.
+ 	* calls.cc (flags_from_decl_or_type): Check for expected_throw
+ 	attribute to set ECF_XTHROW.
+ 	* gimple.cc (gimple_build_call_from_tree): Propagate
+ 	ECF_XTHROW from decl flags to gimple call...
+ 	(gimple_call_flags): ... and back.
+ 	* gimple.h (GF_CALL_XTHROW): New gf_mask flag.
+ 	(gimple_call_set_expected_throw): New.
+ 	(gimple_call_expected_throw_p): New.
+ 	* Makefile.in (OBJS): Add gimple-harden-control-flow.o.
+ 	* builtins.def (BUILT_IN___HARDCFR_CHECK): New.
+ 	* common.opt (fharden-control-flow-redundancy): New.
+ 	(-fhardcfr-check-returning-calls): New.
+ 	(-fhardcfr-check-exceptions): New.
+ 	(-fhardcfr-check-noreturn-calls=*): New.
+ 	(Enum hardcfr_check_noreturn_calls): New.
+ 	(fhardcfr-skip-leaf): New.
+ 	* doc/invoke.texi: Document them.
+ 	(hardcfr-max-blocks, hardcfr-max-inline-blocks): New params.
+ 	* flag-types.h (enum hardcfr_noret): New.
+ 	* gimple-harden-control-flow.cc: New.
+ 	* params.opt (-param=hardcfr-max-blocks=): New.
+ 	(-param=hradcfr-max-inline-blocks=): New.
+ 	* passes.def (pass_harden_control_flow_redundancy): Add.
+ 	* tree-pass.h (make_pass_harden_control_flow_redundancy):
+ 	Declare.
+ 	* doc/extend.texi: Document expected_throw attribute.
+ 
+ 2023-10-20  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* rtl-ssa/changes.cc (function_info::change_insns): Ensure we call
+ 	::remove_insn on deleted insns.
+ 
+ 2023-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/generic.texi ({L,R}ROTATE_EXPR): Document.
+ 
+ 2023-10-20  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	PR target/101177
+ 	* config/sh/sh.md (unnamed split pattern): Fix comparison of
+ 	find_regno_note result.
+ 
+ 2023-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Rewrite
+ 	both STMT_VINFO_GATHER_SCATTER_P and VMAT_GATHER_SCATTER
+ 	stmt refs.
+ 
+ 2023-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (off_map, off_op0_map, off_arg2_map,
+ 	off_arg3_arg2_map): New.
+ 	(vect_get_operand_map): Get flag whether the stmt was
+ 	recognized as gather or scatter and use the above
+ 	accordingly.
+ 	(vect_get_and_check_slp_defs): Adjust.
+ 	(vect_build_slp_tree_2): Likewise.
+ 
+ 2023-10-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info): Rename variables.
+ 	(pre_vsetvl::pre_global_vsetvl_info): Ditto.
+ 	(pre_vsetvl::emit_vsetvl): Ditto.
+ 
+ 2023-10-20  Tamar Christina  <tamar.christina@arm.com>
+ 	     Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-if-conv.cc (if_convertible_loop_p_1): Move check from here ...
+ 	(get_loop_body_if_conv_order): ... to here.
+ 	(if_convertible_loop_p): Remove single_exit check.
+ 	(tree_if_conversion): Move single_exit check to if-conversion part and
+ 	support multiple exits.
+ 
+ 2023-10-20  Tamar Christina  <tamar.christina@arm.com>
+ 	     Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-vect-patterns.cc (vect_init_pattern_stmt): Copy STMT_VINFO_TYPE
+ 	from original statement.
+ 	(vect_recog_bitfield_ref_pattern): Support bitfields in gcond.
+ 
+ 2023-10-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111848
+ 	* config/riscv/riscv-selftests.cc (run_const_vector_selftests): Adapt selftest.
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Change it into vec_duplicate splitter.
+ 
+ 2023-10-20  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	PR target/111037
+ 	PR target/111234
+ 	PR target/111725
+ 	* config/riscv/riscv-vsetvl.cc (bitmap_union_of_preds_with_entry): New.
+ 	(debug): Removed.
+ 	(compute_reaching_defintion): New.
+ 	(enum vsetvl_type): Moved.
+ 	(vlmax_avl_p): Moved.
+ 	(enum emit_type): Moved.
+ 	(vlmul_to_str): Moved.
+ 	(vlmax_avl_insn_p): Removed.
+ 	(policy_to_str): Moved.
+ 	(loop_basic_block_p): Removed.
+ 	(valid_sew_p): Removed.
+ 	(vsetvl_insn_p): Moved.
+ 	(vsetvl_vtype_change_only_p): Removed.
+ 	(after_or_same_p): Removed.
+ 	(before_p): Removed.
+ 	(anticipatable_occurrence_p): Removed.
+ 	(available_occurrence_p): Removed.
+ 	(insn_should_be_added_p): Removed.
+ 	(get_all_sets): Moved.
+ 	(get_same_bb_set): Moved.
+ 	(gen_vsetvl_pat): Removed.
+ 	(calculate_vlmul): Moved.
+ 	(get_max_int_sew): New.
+ 	(emit_vsetvl_insn): Removed.
+ 	(get_max_float_sew): New.
+ 	(eliminate_insn): Removed.
+ 	(insert_vsetvl): Removed.
+ 	(count_regno_occurrences): Moved.
+ 	(get_vl_vtype_info): Removed.
+ 	(enum def_type): Moved.
+ 	(validate_change_or_fail): Moved.
+ 	(change_insn): Removed.
+ 	(get_all_real_uses): Moved.
+ 	(get_forward_read_vl_insn): Removed.
+ 	(get_backward_fault_first_load_insn): Removed.
+ 	(change_vsetvl_insn): Removed.
+ 	(avl_source_has_vsetvl_p): Removed.
+ 	(source_equal_p): Moved.
+ 	(calculate_sew): Removed.
+ 	(same_equiv_note_p): Moved.
+ 	(get_expr_id): New.
+ 	(incompatible_avl_p): Removed.
+ 	(get_regno): New.
+ 	(different_sew_p): Removed.
+ 	(get_bb_index): New.
+ 	(different_lmul_p): Removed.
+ 	(has_no_uses): Moved.
+ 	(different_ratio_p): Removed.
+ 	(different_tail_policy_p): Removed.
+ 	(different_mask_policy_p): Removed.
+ 	(possible_zero_avl_p): Removed.
+ 	(enum demand_flags): New.
+ 	(second_ratio_invalid_for_first_sew_p): Removed.
+ 	(second_ratio_invalid_for_first_lmul_p): Removed.
+ 	(enum class): New.
+ 	(float_insn_valid_sew_p): Removed.
+ 	(second_sew_less_than_first_sew_p): Removed.
+ 	(first_sew_less_than_second_sew_p): Removed.
+ 	(class vsetvl_info): New.
+ 	(compare_lmul): Removed.
+ 	(second_lmul_less_than_first_lmul_p): Removed.
+ 	(second_ratio_less_than_first_ratio_p): Removed.
+ 	(DEF_INCOMPATIBLE_COND): Removed.
+ 	(greatest_sew): Removed.
+ 	(first_sew): Removed.
+ 	(second_sew): Removed.
+ 	(first_vlmul): Removed.
+ 	(second_vlmul): Removed.
+ 	(first_ratio): Removed.
+ 	(second_ratio): Removed.
+ 	(vlmul_for_first_sew_second_ratio): Removed.
+ 	(vlmul_for_greatest_sew_second_ratio): Removed.
+ 	(ratio_for_second_sew_first_vlmul): Removed.
+ 	(class vsetvl_block_info): New.
+ 	(DEF_SEW_LMUL_FUSE_RULE): New.
+ 	(always_unavailable): Removed.
+ 	(avl_unavailable_p): Removed.
+ 	(class demand_system): New.
+ 	(sew_unavailable_p): Removed.
+ 	(lmul_unavailable_p): Removed.
+ 	(ge_sew_unavailable_p): Removed.
+ 	(ge_sew_lmul_unavailable_p): Removed.
+ 	(ge_sew_ratio_unavailable_p): Removed.
+ 	(DEF_UNAVAILABLE_COND): Removed.
+ 	(same_sew_lmul_demand_p): Removed.
+ 	(propagate_avl_across_demands_p): Removed.
+ 	(reg_available_p): Removed.
+ 	(support_relaxed_compatible_p): Removed.
+ 	(demands_can_be_fused_p): Removed.
+ 	(earliest_pred_can_be_fused_p): Removed.
+ 	(vsetvl_dominated_by_p): Removed.
+ 	(avl_info::avl_info): Removed.
+ 	(avl_info::single_source_equal_p): Removed.
+ 	(avl_info::multiple_source_equal_p): Removed.
+ 	(DEF_SEW_LMUL_RULE): New.
+ 	(avl_info::operator=): Removed.
+ 	(avl_info::operator==): Removed.
+ 	(DEF_POLICY_RULE): New.
+ 	(avl_info::operator!=): Removed.
+ 	(avl_info::has_non_zero_avl): Removed.
+ 	(vl_vtype_info::vl_vtype_info): Removed.
+ 	(vl_vtype_info::operator==): Removed.
+ 	(DEF_AVL_RULE): New.
+ 	(vl_vtype_info::operator!=): Removed.
+ 	(vl_vtype_info::same_avl_p): Removed.
+ 	(vl_vtype_info::same_vtype_p): Removed.
+ 	(vl_vtype_info::same_vlmax_p): Removed.
+ 	(vector_insn_info::operator>=): Removed.
+ 	(vector_insn_info::operator==): Removed.
+ 	(class pre_vsetvl): New.
+ 	(vector_insn_info::parse_insn): Removed.
+ 	(vector_insn_info::compatible_p): Removed.
+ 	(vector_insn_info::skip_avl_compatible_p): Removed.
+ 	(vector_insn_info::compatible_avl_p): Removed.
+ 	(vector_insn_info::compatible_vtype_p): Removed.
+ 	(vector_insn_info::available_p): Removed.
+ 	(vector_insn_info::fuse_avl): Removed.
+ 	(vector_insn_info::fuse_sew_lmul): Removed.
+ 	(vector_insn_info::fuse_tail_policy): Removed.
+ 	(vector_insn_info::fuse_mask_policy): Removed.
+ 	(vector_insn_info::local_merge): Removed.
+ 	(vector_insn_info::global_merge): Removed.
+ 	(vector_insn_info::get_avl_or_vl_reg): Removed.
+ 	(vector_insn_info::update_fault_first_load_avl): Removed.
+ 	(vector_insn_info::dump): Removed.
+ 	(vector_infos_manager::vector_infos_manager): Removed.
+ 	(vector_infos_manager::create_expr): Removed.
+ 	(vector_infos_manager::get_expr_id): Removed.
+ 	(vector_infos_manager::all_same_ratio_p): Removed.
+ 	(vector_infos_manager::all_avail_in_compatible_p): Removed.
+ 	(vector_infos_manager::all_same_avl_p): Removed.
+ 	(vector_infos_manager::expr_set_num): Removed.
+ 	(vector_infos_manager::release): Removed.
+ 	(vector_infos_manager::create_bitmap_vectors): Removed.
+ 	(vector_infos_manager::free_bitmap_vectors): Removed.
+ 	(vector_infos_manager::dump): Removed.
+ 	(class pass_vsetvl): Adjust.
+ 	(pass_vsetvl::get_vector_info): Removed.
+ 	(pass_vsetvl::get_block_info): Removed.
+ 	(pass_vsetvl::update_vector_info): Removed.
+ 	(pass_vsetvl::update_block_info): Removed.
+ 	(pre_vsetvl::compute_avl_def_data): New.
+ 	(pass_vsetvl::simple_vsetvl): Removed.
+ 	(pass_vsetvl::compute_local_backward_infos): Removed.
+ 	(pass_vsetvl::need_vsetvl): Removed.
+ 	(pass_vsetvl::transfer_before): Removed.
+ 	(pass_vsetvl::transfer_after): Removed.
+ 	(pre_vsetvl::compute_vsetvl_def_data): New.
+ 	(pass_vsetvl::emit_local_forward_vsetvls): Removed.
+ 	(pass_vsetvl::prune_expressions): Removed.
+ 	(pass_vsetvl::compute_local_properties): Removed.
+ 	(pre_vsetvl::compute_lcm_local_properties): New.
+ 	(pass_vsetvl::earliest_fusion): Removed.
+ 	(pre_vsetvl::fuse_local_vsetvl_info): New.
+ 	(pass_vsetvl::vsetvl_fusion): Removed.
+ 	(pass_vsetvl::can_refine_vsetvl_p): Removed.
+ 	(pre_vsetvl::earliest_fuse_vsetvl_info): New.
+ 	(pass_vsetvl::refine_vsetvls): Removed.
+ 	(pass_vsetvl::cleanup_vsetvls): Removed.
+ 	(pass_vsetvl::commit_vsetvls): Removed.
+ 	(pass_vsetvl::pre_vsetvl): Removed.
+ 	(pass_vsetvl::get_vsetvl_at_end): Removed.
+ 	(local_avl_compatible_p): Removed.
+ 	(pass_vsetvl::local_eliminate_vsetvl_insn): Removed.
+ 	(pre_vsetvl::pre_global_vsetvl_info): New.
+ 	(get_first_vsetvl_before_rvv_insns): Removed.
+ 	(pass_vsetvl::global_eliminate_vsetvl_insn): Removed.
+ 	(pre_vsetvl::emit_vsetvl): New.
+ 	(pass_vsetvl::ssa_post_optimization): Removed.
+ 	(pre_vsetvl::cleaup): New.
+ 	(pre_vsetvl::remove_avl_operand): New.
+ 	(pass_vsetvl::df_post_optimization): Removed.
+ 	(pre_vsetvl::remove_unused_dest_operand): New.
+ 	(pass_vsetvl::init): Removed.
+ 	(pass_vsetvl::done): Removed.
+ 	(pass_vsetvl::compute_probabilities): Removed.
+ 	(pass_vsetvl::lazy_vsetvl): Adjust.
+ 	(pass_vsetvl::execute): Adjust.
+ 	* config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Removed.
+ 	(DEF_SEW_LMUL_RULE): New.
+ 	(DEF_SEW_LMUL_FUSE_RULE): Removed.
+ 	(DEF_POLICY_RULE): New.
+ 	(DEF_UNAVAILABLE_COND): Removed
+ 	(DEF_AVL_RULE): New demand type.
+ 	(sew_lmul): New demand type.
+ 	(ratio_only): New demand type.
+ 	(sew_only): New demand type.
+ 	(ge_sew): New demand type.
+ 	(ratio_and_ge_sew): New demand type.
+ 	(tail_mask_policy): New demand type.
+ 	(tail_policy_only): New demand type.
+ 	(mask_policy_only): New demand type.
+ 	(ignore_policy): New demand type.
+ 	(avl): New demand type.
+ 	(non_zero_avl): New demand type.
+ 	(ignore_avl): New demand type.
+ 	* config/riscv/t-riscv: Removed riscv-vsetvl.h
+ 	* config/riscv/riscv-vsetvl.h: Removed.
+ 
+ 2023-10-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* tree-eh.cc (make_eh_edges): Return the new edge.
+ 	* tree-eh.h (make_eh_edges): Likewise.
+ 
+ 2023-10-19  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/contrib.texi: Add entry for Patrick Palka.
+ 
+ 2023-10-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* omp-simd-clone.cc (simd_clone_adjust_argument_types): Make function
+ 	compatible with mask parameters in clone.
+ 	* tree-vect-stmts.cc (vect_build_all_ones_mask): Allow vector boolean
+ 	typed masks.
+ 	(vectorizable_simd_clone_call): Enable the use of masked clones in
+ 	fully masked loops.
+ 
+ 2023-10-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR tree-optimization/110485
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Disable partial
+ 	vectors usage if a notinbranch simdclone has been selected.
+ 
+ 2023-10-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Special case
+ 	simd clone calls and only use types that are mapped to vectors.
+ 	(simd_clone_call_p): New helper function.
+ 
+ 2023-10-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-parloops.cc (try_transform_to_exit_first_loop_alt): Accept
+ 	poly NIT and ALT_BOUND.
+ 
+ 2023-10-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-parloops.cc (create_loop_fn): Copy specific target and
+ 	optimization options to clone.
+ 
+ 2023-10-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* omp-simd-clone.cc (simd_clone_subparts): Remove.
+ 	(simd_clone_init_simd_arrays): Replace simd_clone_supbarts with
+ 	TYPE_VECTOR_SUBPARTS.
+ 	(ipa_simd_modify_function_body): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Likewise.
+ 	(simd_clone_subparts): Remove.
+ 
+ 2023-10-19  Jason Merrill  <jason@redhat.com>
+ 
+ 	* ABOUT-GCC-NLS: Add usage guidance.
+ 
+ 2023-10-19  Jason Merrill  <jason@redhat.com>
+ 
+ 	* diagnostic-core.h (permerror): Rename new overloads...
+ 	(permerror_opt): To this.
+ 	* diagnostic.cc: Likewise.
+ 
+ 2023-10-19  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/111860
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Remove PHI nodes that dominate loop.
+ 
+ 2023-10-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111131
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Make
+ 	sure to update all gather/scatter stmt DRs, not only those
+ 	that eventually got VMAT_GATHER_SCATTER set.
+ 	* tree-vect-slp.cc (_slp_oprnd_info::first_gs_info): Add.
+ 	(vect_get_and_check_slp_defs): Handle gathers/scatters,
+ 	adding the offset as SLP operand and comparing base and scale.
+ 	(vect_build_slp_tree_1): Handle gathers.
+ 	(vect_build_slp_tree_2): Likewise.
+ 
+ 2023-10-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_build_gather_load_calls): Rename
+ 	to ...
+ 	(vect_build_one_gather_load_call): ... this.  Refactor,
+ 	inline widening/narrowing support ...
+ 	(vectorizable_load): ... here, do gather vectorization
+ 	with builtin decls along other gather vectorization.
+ 
+ 2023-10-19  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (load_pair_dw_tftf): Rename to ...
+ 	(load_pair_dw_<TX:mode><TX2:mode>): ... this.
+ 	(store_pair_dw_tftf): Rename to ...
+ 	(store_pair_dw_<TX:mode><TX2:mode>): ... this.
+ 	* config/aarch64/iterators.md (TX2): New.
+ 
+ 2023-10-19  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add new
+ 	parameter to give final insn position, infer use of mem if it isn't
+ 	specified explicitly.
+ 	(function_info::change_insns): Pass down final insn position to
+ 	finalize_new_accesses.
+ 	* rtl-ssa/functions.h: Add parameter to finalize_new_accesses.
+ 
+ 2023-10-19  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* rtl-ssa/accesses.cc (function_info::reparent_use): New.
+ 	* rtl-ssa/functions.h (function_info): Declare new member
+ 	function reparent_use.
+ 
+ 2023-10-19  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* rtl-ssa/access-utils.h (drop_memory_access): New.
+ 
+ 2023-10-19  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* rtl-ssa/insns.cc (function_info::add_insn_after): Ensure we
+ 	update the prev pointer on the following nondebug insn in the
+ 	case that !insn->is_debug_insn () && next->is_debug_insn ().
+ 
+ 2023-10-19  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.h: Correct the ISA enabled for Arrow Lake.
+ 	Also make Clearwater Forest depends on Sierra Forest.
+ 	* config/i386/i386-options.cc: Revise the order of the macro
+ 	definition to avoid confusion.
+ 	* doc/extend.texi: Revise documentation.
+ 	* doc/invoke.texi: Correct documentation.
+ 
+ 2023-10-19  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config.gcc (amdgcn): Switch default to --with-arch=gfx900.
+ 	Implement support for --with-multilib-list.
+ 	* config/gcn/t-gcn-hsa: Likewise.
+ 	* doc/install.texi: Likewise.
+ 	* doc/invoke.texi: Mark Fiji deprecated.
+ 
+ 2023-10-19  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_vector_costs): Inherit from
+ 	vector_costs.  Add a constructor.
+ 	(loongarch_vector_costs::add_stmt_cost): Use adjust_cost_for_freq to
+ 	adjust the cost for inner loops.
+ 	(loongarch_vector_costs::count_operations): New function.
+ 	(loongarch_vector_costs::determine_suggested_unroll_factor): Ditto.
+ 	(loongarch_vector_costs::finish_cost): Ditto.
+ 	(loongarch_builtin_vectorization_cost): Adjust.
+ 	* config/loongarch/loongarch.opt (loongarch-vect-unroll-limit): New parameter.
+ 	(loongarcg-vect-issue-info): Ditto.
+ 	(mmemvec-cost): Delete.
+ 	* config/loongarch/genopts/loongarch.opt.in
+ 	(loongarch-vect-unroll-limit): Ditto.
+ 	(loongarcg-vect-issue-info): Ditto.
+ 	(mmemvec-cost): Delete.
+ 	* doc/invoke.texi (loongarcg-vect-unroll-limit): Document new option.
+ 
+ 2023-10-19  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md
+ 	(vec_widen_<su>mult_even_v8si): New patterns.
+ 	(vec_widen_<su>add_hi_<mode>): Ditto.
+ 	(vec_widen_<su>add_lo_<mode>): Ditto.
+ 	(vec_widen_<su>sub_hi_<mode>): Ditto.
+ 	(vec_widen_<su>sub_lo_<mode>): Ditto.
+ 	(vec_widen_<su>mult_hi_<mode>): Ditto.
+ 	(vec_widen_<su>mult_lo_<mode>): Ditto.
+ 	* config/loongarch/loongarch.md (u_bool): New iterator.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_expand_vec_widen_hilo): New prototype.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vec_interleave): New function.
+ 	(loongarch_expand_vec_widen_hilo): New function.
+ 
+ 2023-10-19  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md
+ 	(avg<mode>3_ceil): New patterns.
+ 	(uavg<mode>3_ceil): Ditto.
+ 	(avg<mode>3_floor): Ditto.
+ 	(uavg<mode>3_floor): Ditto.
+ 	(usadv32qi): Ditto.
+ 	(ssadv32qi): Ditto.
+ 	* config/loongarch/lsx.md
+ 	(avg<mode>3_ceil): New patterns.
+ 	(uavg<mode>3_ceil): Ditto.
+ 	(avg<mode>3_floor): Ditto.
+ 	(uavg<mode>3_floor): Ditto.
+ 	(usadv16qi): Ditto.
+ 	(ssadv16qi): Ditto.
+ 
+ 2023-10-18  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR middle-end/111863
+ 	* expr.cc (do_store_flag): Don't over write arg0
+ 	when stripping off `& POW2`.
+ 
+ 2023-10-18  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	PR tree-optimization/111648
+ 	* fold-const.cc (valid_mask_for_fold_vec_perm_cst_p): If a1
+ 	chooses base element from arg, ensure that it's a natural stepped
+ 	sequence.
+ 	(build_vec_cst_rand): New param natural_stepped and use it to
+ 	construct a naturally stepped sequence.
+ 	(test_nunits_min_2): Add new unit tests Case 6 and Case 7.
+ 
+ 2023-10-18  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.cc (pru_insn_cost): New function.
+ 	(TARGET_INSN_COST): Define for PRU.
+ 
+ 2023-10-18  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_test_fractional_cost):
+ 	Test <= instead of testing < twice.
+ 
+ 2023-10-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/111852
+ 	* cse.cc (cse_insn): Add workaround for GCC 4.8-4.9, instead of
+ 	using rtx_def type for memory_extend_buf, use unsigned char
+ 	arrayy with size of rtx_def and its alignment.
+ 
+ 2023-10-18  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Move -fpermissive to Warning Options.
+ 	* diagnostic.cc (update_effective_level_from_pragmas): Remove
+ 	redundant system header check.
+ 	(diagnostic_report_diagnostic): Move down syshdr/-w check.
+ 	(diagnostic_impl): Handle DK_PERMERROR with an option number.
+ 	(permerror): Add new overloads.
+ 	* diagnostic-core.h (permerror): Declare them.
+ 
+ 2023-10-18  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* gimplify.cc (gimplify_bind_expr): Remove "omp allocate" attribute
+ 	to avoid that auxillary statement list reaches LTO.
+ 
+ 2023-10-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/111845
+ 	* tree-ssa-math-opts.cc (match_uaddc_usubc): Remember temporary
+ 	statements for the 4 operand addition or subtraction of 3 operands
+ 	from 1 operand cases and remove them when successful.  Look for
+ 	nested additions even from rhs[2], not just rhs[1].
+ 
+ 2023-10-18  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR target/111093
+ 	* config/nvptx/nvptx.cc (nvptx_option_override): Issue fatal error
+ 	instead of an assert ICE when no -march= has been specified.
+ 
+ 2023-10-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.in: Regenerate.
+ 	* config/darwin.cc (darwin_file_start): Add assembler directives
+ 	for the target OS version, where these are supported by the
+ 	assembler.
+ 	(darwin_override_options): Check for building >= macOS 10.14.
+ 	* configure: Regenerate.
+ 	* configure.ac: Check for assembler support of .build_version
+ 	directives.
+ 
+ 2023-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* tree-if-conv.cc (INCLUDE_ALGORITHM): Remove.
+ 	(typedef struct ifcvt_arg_entry): New.
+ 	(cmp_arg_entry): New.
+ 	(gen_phi_arg_condition, gen_phi_nest_statement,
+ 	predicate_scalar_phi): Use them.
+ 
+ 2023-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>):
+ 	Rewrite to new syntax.
+ 	(*aarch64_simd_mov<VQMOV:mode): Rewrite to new syntax and merge in
+ 	splits.
+ 
+ 2023-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* tree-if-conv.cc (if_convertible_stmt_p): Allow any const IFN.
+ 
+ 2023-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* match.pd: Add new cond_op rule.
+ 
+ 2023-10-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (movfcc): Use fcmp.caf.s for
+ 	zeroing a fcc.
+ 
+ 2023-10-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call):
+ 	Relax check to again allow passing integer mode masks
+ 	as traditional vectors.
+ 
+ 2023-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-loop-distribution.cc (copy_loop_before): Request no LCSSA.
+ 	* tree-vect-loop-manip.cc (adjust_phi_and_debug_stmts): Add additional
+ 	asserts.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Keep LCSSA during peeling.
+ 	(find_guard_arg): Look value up through explicit edge and original defs.
+ 	(vect_do_peeling): Use it.
+ 	(slpeel_update_phi_nodes_for_guard2): Take explicit exit edge.
+ 	(slpeel_update_phi_nodes_for_lcssa, slpeel_update_phi_nodes_for_loops):
+ 	Remove.
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Initialize phi.
+ 	* tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg): Add
+ 	optional param to turn off LCSSA mode.
+ 
+ 2023-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-if-conv.cc (tree_if_conversion): Record exits in aux.
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
+ 	it.
+ 	* tree-vect-loop.cc (vect_get_loop_niters): Determine main exit.
+ 	(vec_init_loop_exit_info): Extend analysis when multiple exits.
+ 	(vect_analyze_loop_form): Record conds and determine main cond.
+ 	(vect_create_loop_vinfo): Extend bookkeeping of conds.
+ 	(vect_analyze_loop): Release conds.
+ 	* tree-vectorizer.h (LOOP_VINFO_LOOP_CONDS,
+ 	LOOP_VINFO_LOOP_IV_COND):  New.
+ 	(struct vect_loop_form_info): Add conds, alt_loop_conds;
+ 	(struct loop_vec_info): Add conds, loop_iv_cond.
+ 
+ 2023-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-loop-distribution.cc (copy_loop_before): Pass exit explicitly.
+ 	(loop_distribution::distribute_loop): Bail out of not single exit.
+ 	* tree-scalar-evolution.cc (get_loop_exit_condition): New.
+ 	* tree-scalar-evolution.h (get_loop_exit_condition): New.
+ 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): Pass exit
+ 	explicitly.
+ 	* tree-vect-loop-manip.cc (vect_set_loop_condition_partial_vectors,
+ 	vect_set_loop_condition_partial_vectors_avx512,
+ 	vect_set_loop_condition_normal, vect_set_loop_condition): Explicitly
+ 	take exit.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Explicitly take exit and
+ 	return new peeled corresponding peeled exit.
+ 	(slpeel_can_duplicate_loop_p): Explicitly take exit.
+ 	(find_loop_location): Handle not knowing an explicit exit.
+ 	(vect_update_ivs_after_vectorizer, vect_gen_vector_loop_niters_mult_vf,
+ 	find_guard_arg, slpeel_update_phi_nodes_for_loops,
+ 	slpeel_update_phi_nodes_for_guard2): Use new exits.
+ 	(vect_do_peeling): Update bookkeeping to keep track of exits.
+ 	* tree-vect-loop.cc (vect_get_loop_niters): Explicitly take exit to
+ 	analyze.
+ 	(vec_init_loop_exit_info): New.
+ 	(_loop_vec_info::_loop_vec_info): Initialize vec_loop_iv,
+ 	vec_epilogue_loop_iv, scalar_loop_iv.
+ 	(vect_analyze_loop_form): Initialize exits.
+ 	(vect_create_loop_vinfo): Set main exit.
+ 	(vect_create_epilog_for_reduction, vectorizable_live_operation,
+ 	vect_transform_loop): Use it.
+ 	(scale_profile_for_vect_loop): Explicitly take exit to scale.
+ 	* tree-vectorizer.cc (set_uid_loop_bbs): Initialize loop exit.
+ 	* tree-vectorizer.h (LOOP_VINFO_IV_EXIT, LOOP_VINFO_EPILOGUE_IV_EXIT,
+ 	LOOP_VINFO_SCALAR_IV_EXIT): New.
+ 	(struct loop_vec_info): Add vec_loop_iv, vec_epilogue_loop_iv,
+ 	scalar_loop_iv.
+ 	(vect_set_loop_condition, slpeel_can_duplicate_loop_p,
+ 	slpeel_tree_duplicate_loop_to_edge_cfg): Take explicit exits.
+ 	(vec_init_loop_exit_info): New.
+ 	(struct vect_loop_form_info): Add loop_exit.
+ 
+ 2023-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_comparison): Refactor, splitting body
+ 	to ...
+ 	(vectorizable_comparison_1): ...This.
+ 
+ 2023-10-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_consecutive_patterns): New function.
+ 	(expand_vec_perm_const_1): Add consecutive pattern recognition.
+ 
+ 2023-10-18  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Add Panther
+ 	Lake.
+ 	* common/config/i386/i386-common.cc (processor_name):
+ 	Ditto.
+ 	(processor_alias_table): Ditto.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_types):
+ 	Add INTEL_PANTHERLAKE.
+ 	* config.gcc: Add -march=pantherlake.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Refactor
+ 	the if clause. Handle pantherlake.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal):
+ 	Handle pantherlake.
+ 	* config/i386/i386-options.cc (processor_cost_table): Ditto.
+ 	(m_PANTHERLAKE): New.
+ 	(m_CORE_HYBRID): Add pantherlake.
+ 	* config/i386/i386.h (enum processor_type): Ditto.
+ 	* doc/extend.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2023-10-18  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-options.cc (m_CORE_HYBRID): New.
+ 	* config/i386/x86-tune.def: Replace hybrid client tune to
+ 	m_CORE_HYBRID.
+ 
+ 2023-10-18  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_intel_cpu): Handle Clearwater Forest.
+ 	* common/config/i386/i386-common.cc (processor_name):
+ 	Add Clearwater Forest.
+ 	(processor_alias_table): Ditto.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_types):
+ 	Add INTEL_CLEARWATERFOREST.
+ 	* config.gcc: Add -march=clearwaterforest.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Handle
+ 	clearwaterforest.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
+ 	* config/i386/i386-options.cc (processor_cost_table): Ditto.
+ 	(m_CLEARWATERFOREST): New.
+ 	(m_CORE_ATOM): Add clearwaterforest.
+ 	* config/i386/i386.h (enum processor_type): Ditto.
+ 	* doc/extend.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2023-10-18  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/mmx.md (fma<mode>4): New expander.
+ 	(fms<mode>4): Ditto.
+ 	(fnma<mode>4): Ditto.
+ 	(fnms<mode>4): Ditto.
+ 	(vec_fmaddsubv4hf4): Ditto.
+ 	(vec_fmsubaddv4hf4): Ditto.
+ 
+ 2023-10-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111832
+ 	* config/riscv/riscv-vector-costs.cc (get_biggest_mode): New function.
+ 
+ 2023-10-17  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Don't make
+ 	the position of the LR save slot dependent on stack clash
+ 	protection unless shadow call stacks are enabled.
+ 
+ 2023-10-17  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame): Add vectors that
+ 	store the list saved GPRs, FPRs and predicate registers.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize
+ 	the lists of saved registers.  Use them to choose push candidates.
+ 	Invalidate pop candidates if we're not going to do a pop.
+ 	(aarch64_next_callee_save): Delete.
+ 	(aarch64_save_callee_saves): Take a list of registers,
+ 	rather than a range.  Make !skip_wb select only write-back
+ 	candidates.
+ 	(aarch64_expand_prologue): Update calls accordingly.
+ 	(aarch64_restore_callee_saves): Take a list of registers,
+ 	rather than a range.  Always skip pop candidates.  Also skip
+ 	LR if shadow call stacks are enabled.
+ 	(aarch64_expand_epilogue): Update calls accordingly.
+ 
+ 2023-10-17  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* cfgbuild.h (find_sub_basic_blocks): Declare.
+ 	* cfgbuild.cc (update_profile_for_new_sub_basic_block): New function,
+ 	split out from...
+ 	(find_many_sub_basic_blocks): ...here.
+ 	(find_sub_basic_blocks): New function.
+ 	* function.cc (thread_prologue_and_epilogue_insns): Handle
+ 	epilogues that contain jumps.
+ 
+ 2023-10-17  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110817
+ 	* tree-ssanames.cc (ssa_name_has_boolean_range): Remove the
+ 	check for boolean type as they don't have "[0,1]" range.
+ 
+ 2023-10-17  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR tree-optimization/111432
+ 	* match.pd (`a & (x | CST)`): New pattern.
+ 
+ 2023-10-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-cfg.cc (move_sese_region_to_fn): Initialize profile_count for
+ 	new basic block.
+ 
+ 2023-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111846
+ 	* tree-vectorizer.h (_slp_tree::simd_clone_info): Add.
+ 	(SLP_TREE_SIMD_CLONE_INFO): New.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
+ 	SLP_TREE_SIMD_CLONE_INFO.
+ 	(_slp_tree::~_slp_tree): Release it.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
+ 	SLP_TREE_SIMD_CLONE_INFO or STMT_VINFO_SIMD_CLONE_INFO
+ 	dependent on if we're doing SLP.
+ 
+ 2023-10-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* wide-int-print.h (print_dec_buf_size): For length, divide number
+ 	of bits by 3 and add 3 instead of division by 4 and adding 4.
+ 	* wide-int-print.cc (print_decs): Remove superfluous ()s.  Don't call
+ 	print_hex, instead call print_decu on either negated value after
+ 	printing - or on wi itself.
+ 	(print_decu): Don't call print_hex, instead print even large numbers
+ 	decimally.
+ 	(pp_wide_int_large): Assume len from print_dec_buf_size is big enough
+ 	even if it returns false.
+ 	* pretty-print.h (pp_wide_int): Use print_dec_buf_size to check if
+ 	pp_wide_int_large should be used.
+ 	* tree-pretty-print.cc (dump_generic_node): Use print_hex_buf_size
+ 	to compute needed buffer size.
+ 
+ 2023-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/111818
+ 	* tree-ssa.cc (maybe_optimize_var): When clearing
+ 	DECL_NOT_GIMPLE_REG_P always rewrite into SSA.
+ 
+ 2023-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111807
+ 	* tree-sra.cc (build_ref_for_model): Only call
+ 	build_reconstructed_reference when the offsets are the same.
+ 
+ 2023-10-17  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	PR target/111466
+ 	* expr.cc (expand_expr_real_2): Do not clear SUBREG_PROMOTED_VAR_P.
+ 
+ 2023-10-17  Chenghui Pan  <panchenghui@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
+ 	fix impl related to vec_initv32qiv16qi template to avoid ICE.
+ 
+ 2023-10-17  Lulu Cheng  <chenglulu@loongson.cn>
+ 	    Chenghua Xu  <xuchenghua@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.h (ASM_OUTPUT_ALIGN_WITH_NOP):
+ 	Delete.
+ 
+ 2023-10-17  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (max_number_of_live_regs): Fix big LMUL issue.
+ 	(get_store_value): New function.
+ 
+ 2023-10-16  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* explow.cc (probe_stack_range): Handle case when expand_binop
+ 	does not construct its result in the expected location.
+ 
+ 2023-10-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_initialize): When LANG=C, update
+ 	default for -fdiagnostics-text-art-charset from emoji to ascii.
+ 	* doc/invoke.texi (fdiagnostics-text-art-charset): Document the above.
+ 
+ 2023-10-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_initialize): Ensure
+ 	context->extra_output_kind is initialized.
+ 
+ 2023-10-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_can_inline_p):
+ 	Handle CM_LARGE and CM_LARGE_PIC.
+ 	(x86_elf_aligned_decl_common): Ditto.
+ 	(x86_output_aligned_bss): Ditto.
+ 	* config/i386/i386.opt: Update doc for -mlarge-data-threshold=.
+ 	* doc/invoke.texi: Update doc for -mlarge-data-threshold=.
+ 
+ 2023-10-16  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-protos.h (emit_block_move): Remove redundant
+ 	prototype.  Improve comment.
+ 	* config/riscv/riscv.cc (riscv_block_move_straight): Move from riscv.cc
+ 	into riscv-string.cc.
+ 	(riscv_adjust_block_mem, riscv_block_move_loop): Likewise.
+ 	(riscv_expand_block_move): Likewise.
+ 	* config/riscv/riscv-string.cc (riscv_block_move_straight): Add moved
+ 	function.
+ 	(riscv_adjust_block_mem, riscv_block_move_loop): Likewise.
+ 	(riscv_expand_block_move): Likewise.
+ 
+ 2023-10-16  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* Makefile.in: Add fold-mem-offsets.o.
+ 	* passes.def: Schedule a new pass.
+ 	* tree-pass.h (make_pass_fold_mem_offsets): Declare.
+ 	* common.opt: New options.
+ 	* doc/invoke.texi: Document new option.
+ 	* fold-mem-offsets.cc: New file.
+ 
+ 2023-10-16  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR tree-optimization/101541
+ 	* match.pd (A CMP 0 ? A : -A): Improve
+ 	using bitwise_equal_p.
+ 
+ 2023-10-16  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR tree-optimization/31531
+ 	* match.pd (~X op ~Y): Allow for an optional nop convert.
+ 	(~X op C): Likewise.
+ 
+ 2023-10-16  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.md (*ashlsi3_1): New pre-reload splitter to
+ 	use bset dst,0,src to implement 1<<x on !TARGET_BARREL_SHIFTER.
+ 
+ 2023-10-16  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/vector.md (popcountv8hi2_vx): Sign extend each
+ 	unsigned vector element.
+ 
+ 2023-10-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::preferred_new_lmul_p): Use VLS modes.
+ 
+ 2023-10-16  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* fold-const.cc (expr_not_equal_to): Replace get_global_range_query
+ 	by get_range_query.
+ 	* gimple-fold.cc (size_must_be_zero_p): Likewise.
+ 	* gimple-range-fold.cc (fur_source::fur_source): Likewise.
+ 	* gimple-ssa-warn-access.cc (check_nul_terminated_array): Likewise.
+ 	* tree-dfa.cc (get_ref_base_and_extent): Likewise.
+ 
+ 2023-10-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/mmx.md (V2FI_32): New mode iterator
+ 	(movd_v2hf_to_sse): Rename to ..
+ 	(movd_<mode>_to_sse): .. this.
+ 	(movd_v2hf_to_sse_reg): Rename to ..
+ 	(movd_<mode>_to_sse_reg): .. this.
+ 	(fix<fixunssuffix>_trunc<mode><mmxintvecmodelower>2): New
+ 	expander.
+ 	(fix<fixunssuffix>_truncv2hfv2si2): Ditto.
+ 	(float<floatunssuffix><mmxintvecmodelower><mode>2): Ditto.
+ 	(float<floatunssuffix>v2siv2hf2): Ditto.
+ 	(extendv2hfv2sf2): Ditto.
+ 	(truncv2sfv2hf2): Ditto.
+ 	* config/i386/sse.md (*vec_concatv8hf_movss): Rename to ..
+ 	(*vec_concat<mode>_movss): .. this.
+ 
+ 2023-10-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_sse_copysign_to_positive):
+ 	Handle HFmode.
+ 	(ix86_expand_round_sse4): Ditto.
+ 	* config/i386/i386.md (roundhf2): New expander.
+ 	(lroundhf<mode>2): Ditto.
+ 	(lrinthf<mode>2): Ditto.
+ 	(l<rounding_insn>hf<mode>2): Ditto.
+ 	* config/i386/mmx.md (sqrt<mode>2): Ditto.
+ 	(btrunc<mode>2): Ditto.
+ 	(nearbyint<mode>2): Ditto.
+ 	(rint<mode>2): Ditto.
+ 	(lrint<mode><mmxintvecmodelower>2): Ditto.
+ 	(floor<mode>2): Ditto.
+ 	(lfloor<mode><mmxintvecmodelower>2): Ditto.
+ 	(ceil<mode>2): Ditto.
+ 	(lceil<mode><mmxintvecmodelower>2): Ditto.
+ 	(round<mode>2): Ditto.
+ 	(lround<mode><mmxintvecmodelower>2): Ditto.
+ 	* config/i386/sse.md (lrint<mode><sseintvecmodelower>2): Ditto.
+ 	(lfloor<mode><sseintvecmodelower>2): Ditto.
+ 	(lceil<mode><sseintvecmodelower>2): Ditto.
+ 	(lround<mode><sseintvecmodelower>2): Ditto.
+ 	(sse4_1_round<ssescalarmodesuffix>): Extend to V8HF.
+ 	(round<mode>2): Extend to V8HF/V16HF/V32HF.
+ 
+ 2023-10-15  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* doc/invoke.texi (-fopenacc, -fopenmp, -fopenmp-simd): Use @samp not
+ 	@code; document more completely the supported Fortran sentinels.
+ 
+ 2023-10-15  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* optabs.cc (expand_subword_shift): Call simplify_expand_binop
+ 	instead of expand_binop.  Optimize cases (i.e. avoid generating
+ 	RTL) when CARRIES or INTO_INPUT is zero.  Use one_cmpl_optab
+ 	(i.e. NOT) instead of xor_optab with ~0 to calculate ~OP1.
+ 
+ 2023-10-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/111800
+ 	* wide-int-print.h (print_dec_buf_size, print_decs_buf_size,
+ 	print_decu_buf_size, print_hex_buf_size): New inline functions.
+ 	* wide-int.cc (assert_deceq): Use print_dec_buf_size.
+ 	(assert_hexeq): Use print_hex_buf_size.
+ 	* wide-int-print.cc (print_decs): Use print_decs_buf_size.
+ 	(print_decu): Use print_decu_buf_size.
+ 	(print_hex): Use print_hex_buf_size.
+ 	(pp_wide_int_large): Use print_dec_buf_size.
+ 	* value-range.cc (irange_bitmask::dump): Use print_hex_buf_size.
+ 	* value-range-pretty-print.cc (vrange_printer::print_irange_bitmasks):
+ 	Likewise.
+ 	* tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations): Use
+ 	print_dec_buf_size.  Use TYPE_SIGN macro in print_dec call argument.
+ 
+ 2023-10-15  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* combine.cc (simplify_compare_const): Fix handling of unsigned
+ 	constants.
+ 
+ 2023-10-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Fix vsingle incorrect attribute for RVVM2x2QI.
+ 
+ 2023-10-14  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* gimplify.cc (gimplify_bind_expr): Handle Fortran's
+ 	'omp allocate' for stack variables.
+ 
+ 2023-10-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* tree-core.h (struct tree_base): Remove int_length.offset
+ 	member, change type of int_length.unextended and int_length.extended
+ 	from unsigned char to unsigned short.
+ 	* tree.h (TREE_INT_CST_OFFSET_NUNITS): Remove.
+ 	(wi::extended_tree <N>::get_len): Don't use TREE_INT_CST_OFFSET_NUNITS,
+ 	instead compute it at runtime from TREE_INT_CST_EXT_NUNITS and
+ 	TREE_INT_CST_NUNITS.
+ 	* tree.cc (wide_int_to_tree_1): Don't assert
+ 	TREE_INT_CST_OFFSET_NUNITS value.
+ 	(make_int_cst): Don't initialize TREE_INT_CST_OFFSET_NUNITS.
+ 	* wide-int.h (WIDE_INT_MAX_ELTS): Change from 255 to 1024.
+ 	(WIDEST_INT_MAX_ELTS): Change from 510 to 2048, adjust comment.
+ 	(trailing_wide_int_storage): Change m_len type from unsigned char *
+ 	to unsigned short *.
+ 	(trailing_wide_int_storage::trailing_wide_int_storage): Change second
+ 	argument from unsigned char * to unsigned short *.
+ 	(trailing_wide_ints): Change m_max_len type from unsigned char to
+ 	unsigned short.  Change m_len element type from
+ 	struct{unsigned char len;} to unsigned short.
+ 	(trailing_wide_ints <N>::operator []): Remove .len from m_len
+ 	accesses.
+ 	* value-range-storage.h (irange_storage::lengths_address): Change
+ 	return type from const unsigned char * to const unsigned short *.
+ 	(irange_storage::write_lengths_address): Change return type from
+ 	unsigned char * to unsigned short *.
+ 	* value-range-storage.cc (irange_storage::write_lengths_address):
+ 	Likewise.
+ 	(irange_storage::lengths_address): Change return type from
+ 	const unsigned char * to const unsigned short *.
+ 	(write_wide_int): Change len argument type from unsigned char *&
+ 	to unsigned short *&.
+ 	(irange_storage::set_irange): Change len variable type from
+ 	unsigned char * to unsigned short *.
+ 	(read_wide_int): Change len argument type from unsigned char to
+ 	unsigned short.  Use trailing_wide_int_storage <unsigned short>
+ 	instead of trailing_wide_int_storage and
+ 	trailing_wide_int <unsigned short> instead of trailing_wide_int.
+ 	(irange_storage::get_irange): Change len variable type from
+ 	unsigned char * to unsigned short *.
+ 	(irange_storage::size): Multiply n by sizeof (unsigned short)
+ 	in len_size variable initialization.
+ 	(irange_storage::dump): Change len variable type from
+ 	unsigned char * to unsigned short *.
+ 
+ 2023-10-14  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Remove redundant iterators.
+ 
+ 2023-10-13  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/111622
+ 	* value-relation.cc (equiv_oracle::add_partial_equiv): Do not
+ 	register a partial equivalence if an operand has no uses.
+ 
+ 2023-10-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111795
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
+ 	integer mode mask arguments.
+ 
+ 2023-10-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (mask_call_maps): New.
+ 	(vect_get_operand_map): Handle IFN_MASK_CALL.
+ 	(vect_build_slp_tree_1): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
+ 	SLP.
+ 
+ 2023-10-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111779
+ 	* tree-sra.cc (sra_handled_bf_read_p): New function.
+ 	(build_access_from_expr_1): Handle some BIT_FIELD_REFs.
+ 	(sra_modify_expr): Likewise.
+ 	(make_fancy_name_1): Skip over BIT_FIELD_REF.
+ 
+ 2023-10-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111773
+ 	* tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do
+ 	not elide noreturn calls that are reflected to the IL.
+ 
+ 2023-10-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_poly_move): Bump
+ 	max_power to 64.
+ 	* config/riscv/riscv.h (MAX_POLY_VARIANT): New.
+ 
+ 2023-10-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (lfloor<mode><v_i_l_ll_convert>2): New
+ 	pattern for lfloor/lfloorf.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum value.
+ 	(expand_vec_lfloor): New func decl for expanding lfloor.
+ 	* config/riscv/riscv-v.cc (expand_vec_lfloor): New func impl
+ 	for expanding lfloor.
+ 
+ 2023-10-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (lceil<mode><v_i_l_ll_convert>2): New
+ 	pattern] for lceil/lceilf.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum value.
+ 	(expand_vec_lceil): New func decl for expanding lceil.
+ 	* config/riscv/riscv-v.cc (expand_vec_lceil): New func impl
+ 	for expanding lceil.
+ 
+ 2023-10-12  Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR target/111778
+ 	* config/rs6000/rs6000.cc (can_be_built_by_li_lis_and_rldicl): Protect
+ 	code from shifts that are undefined.
+ 	(can_be_built_by_li_lis_and_rldicr): Likewise.
+ 	(can_be_built_by_li_and_rldic): Protect code from shifts that
+ 	undefined.  Also replace uses of 1ULL with HOST_WIDE_INT_1U.
+ 
+ 2023-10-12  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* reg-notes.def (NOALIAS): Correct comment.
+ 
+ 2023-10-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/111787
+ 	* tree.h (wi::int_traits <unextended_tree>::needs_write_val_arg): New
+ 	static data member.
+ 	(int_traits <extended_tree <N>>::needs_write_val_arg): Likewise.
+ 	(wi::ints_for): Provide separate partial specializations for
+ 	generic_wide_int <extended_tree <N>> and INL_CONST_PRECISION or that
+ 	and CONST_PRECISION, rather than using
+ 	int_traits <extended_tree <N> >::precision_type as the second template
+ 	argument.
+ 	* rtl.h (wi::int_traits <rtx_mode_t>::needs_write_val_arg): New
+ 	static data member.
+ 	* double-int.h (wi::int_traits <double_int>::needs_write_val_arg):
+ 	Likewise.
+ 
+ 2023-10-12  Mary Bennett  <mary.bennett@embecosm.com>
+ 
+ 	PR middle-end/111777
+ 	* doc/extend.texi: Change subsubsection to subsection for
+ 	CORE-V built-ins.
+ 
+ 2023-10-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add undef.
+ 
+ 2023-10-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* wide-int.h (widest_int_storage <N>::write_val): If l is small
+ 	and there is space in u.val array, store a canary value at the
+ 	end when checking.
+ 	(widest_int_storage <N>::set_len): Check the canary hasn't been
+ 	overwritten.
+ 
+ 2023-10-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* wide-int.h: Adjust file comment.
+ 	(WIDE_INT_MAX_INL_ELTS): Define to former value of WIDE_INT_MAX_ELTS.
+ 	(WIDE_INT_MAX_INL_PRECISION): Define.
+ 	(WIDE_INT_MAX_ELTS): Change to 255.  Assert that WIDE_INT_MAX_INL_ELTS
+ 	is smaller than WIDE_INT_MAX_ELTS.
+ 	(RWIDE_INT_MAX_ELTS, RWIDE_INT_MAX_PRECISION, WIDEST_INT_MAX_ELTS,
+ 	WIDEST_INT_MAX_PRECISION): Define.
+ 	(WI_BINARY_RESULT_VAR, WI_UNARY_RESULT_VAR): Change write_val callers
+ 	to pass 0 as a new argument.
+ 	(class widest_int_storage): Likewise.
+ 	(widest_int, widest2_int): Change typedefs to use widest_int_storage
+ 	rather than fixed_wide_int_storage.
+ 	(enum wi::precision_type): Add INL_CONST_PRECISION enumerator.
+ 	(struct binary_traits): Add partial specializations for
+ 	INL_CONST_PRECISION.
+ 	(generic_wide_int): Add needs_write_val_arg static data member.
+ 	(int_traits): Likewise.
+ 	(wide_int_storage): Replace val non-static data member with a union
+ 	u of it and HOST_WIDE_INT *valp.  Declare copy constructor, copy
+ 	assignment operator and destructor.  Add unsigned int argument to
+ 	write_val.
+ 	(wide_int_storage::wide_int_storage): Initialize precision to 0
+ 	in the default ctor.  Remove unnecessary {}s around STATIC_ASSERTs.
+ 	Assert in non-default ctor T's precision_type is not
+ 	INL_CONST_PRECISION and allocate u.valp for large precision.  Add
+ 	copy constructor.
+ 	(wide_int_storage::~wide_int_storage): New.
+ 	(wide_int_storage::operator=): Add copy assignment operator.  In
+ 	assignment operator remove unnecessary {}s around STATIC_ASSERTs,
+ 	assert ctor T's precision_type is not INL_CONST_PRECISION and
+ 	if precision changes, deallocate and/or allocate u.valp.
+ 	(wide_int_storage::get_val): Return u.valp rather than u.val for
+ 	large precision.
+ 	(wide_int_storage::write_val): Likewise.  Add an unused unsigned int
+ 	argument.
+ 	(wide_int_storage::set_len): Use write_val instead of writing val
+ 	directly.
+ 	(wide_int_storage::from, wide_int_storage::from_array): Adjust
+ 	write_val callers.
+ 	(wide_int_storage::create): Allocate u.valp for large precisions.
+ 	(wi::int_traits <wide_int_storage>::get_binary_precision): New.
+ 	(fixed_wide_int_storage::fixed_wide_int_storage): Make default
+ 	ctor defaulted.
+ 	(fixed_wide_int_storage::write_val): Add unused unsigned int argument.
+ 	(fixed_wide_int_storage::from, fixed_wide_int_storage::from_array):
+ 	Adjust write_val callers.
+ 	(wi::int_traits <fixed_wide_int_storage>::get_binary_precision): New.
+ 	(WIDEST_INT): Define.
+ 	(widest_int_storage): New template class.
+ 	(wi::int_traits <widest_int_storage>): New.
+ 	(trailing_wide_int_storage::write_val): Add unused unsigned int
+ 	argument.
+ 	(wi::get_binary_precision): Use
+ 	wi::int_traits <WI_BINARY_RESULT (T1, T2)>::get_binary_precision
+ 	rather than get_precision on get_binary_result.
+ 	(wi::copy): Adjust write_val callers.  Don't call set_len if
+ 	needs_write_val_arg.
+ 	(wi::bit_not): If result.needs_write_val_arg, call write_val
+ 	again with upper bound estimate of len.
+ 	(wi::sext, wi::zext, wi::set_bit): Likewise.
+ 	(wi::bit_and, wi::bit_and_not, wi::bit_or, wi::bit_or_not,
+ 	wi::bit_xor, wi::add, wi::sub, wi::mul, wi::mul_high, wi::div_trunc,
+ 	wi::div_floor, wi::div_ceil, wi::div_round, wi::divmod_trunc,
+ 	wi::mod_trunc, wi::mod_floor, wi::mod_ceil, wi::mod_round,
+ 	wi::lshift, wi::lrshift, wi::arshift): Likewise.
+ 	(wi::bswap, wi::bitreverse): Assert result.needs_write_val_arg
+ 	is false.
+ 	(gt_ggc_mx, gt_pch_nx): Remove generic template for all
+ 	generic_wide_int, instead add functions and templates for each
+ 	storage of generic_wide_int.  Make functions for
+ 	generic_wide_int <wide_int_storage> and templates for
+ 	generic_wide_int <widest_int_storage <N>> deleted.
+ 	(wi::mask, wi::shifted_mask): Adjust write_val calls.
+ 	* wide-int.cc (zeros): Decrease array size to 1.
+ 	(BLOCKS_NEEDED): Use CEIL.
+ 	(canonize): Use HOST_WIDE_INT_M1.
+ 	(wi::from_buffer): Pass 0 to write_val.
+ 	(wi::to_mpz): Use CEIL.
+ 	(wi::from_mpz): Likewise.  Pass 0 to write_val.  Use
+ 	WIDE_INT_MAX_INL_ELTS instead of WIDE_INT_MAX_ELTS.
+ 	(wi::mul_internal): Use WIDE_INT_MAX_INL_PRECISION instead of
+ 	MAX_BITSIZE_MODE_ANY_INT in automatic array sizes, for prec
+ 	above WIDE_INT_MAX_INL_PRECISION estimate precision from
+ 	lengths of operands.  Use XALLOCAVEC allocated buffers for
+ 	prec above WIDE_INT_MAX_INL_PRECISION.
+ 	(wi::divmod_internal): Likewise.
+ 	(wi::lshift_large): For len > WIDE_INT_MAX_INL_ELTS estimate
+ 	it from xlen and skip.
+ 	(rshift_large_common): Remove xprecision argument, add len
+ 	argument with len computed in caller.  Don't return anything.
+ 	(wi::lrshift_large, wi::arshift_large): Compute len here
+ 	and pass it to rshift_large_common, for lengths above
+ 	WIDE_INT_MAX_INL_ELTS using estimations from xlen if possible.
+ 	(assert_deceq, assert_hexeq): For lengths above
+ 	WIDE_INT_MAX_INL_ELTS use XALLOCAVEC allocated buffer.
+ 	(test_printing): Use WIDE_INT_MAX_INL_PRECISION instead of
+ 	WIDE_INT_MAX_PRECISION.
+ 	* wide-int-print.h (WIDE_INT_PRINT_BUFFER_SIZE): Use
+ 	WIDE_INT_MAX_INL_PRECISION instead of WIDE_INT_MAX_PRECISION.
+ 	* wide-int-print.cc (print_decs, print_decu, print_hex): For
+ 	lengths above WIDE_INT_MAX_INL_ELTS use XALLOCAVEC allocated buffer.
+ 	* tree.h (wi::int_traits<extended_tree <N>>): Change precision_type
+ 	to INL_CONST_PRECISION for N == ADDR_MAX_PRECISION.
+ 	(widest_extended_tree): Use WIDEST_INT_MAX_PRECISION instead of
+ 	WIDE_INT_MAX_PRECISION.
+ 	(wi::ints_for): Use int_traits <extended_tree <N> >::precision_type
+ 	instead of hard coded CONST_PRECISION.
+ 	(widest2_int_cst): Use WIDEST_INT_MAX_PRECISION instead of
+ 	WIDE_INT_MAX_PRECISION.
+ 	(wi::extended_tree <N>::get_len): Use WIDEST_INT_MAX_PRECISION rather
+ 	than WIDE_INT_MAX_PRECISION.
+ 	(wi::ints_for::zero): Use
+ 	wi::int_traits <wi::extended_tree <N> >::precision_type instead of
+ 	wi::CONST_PRECISION.
+ 	* tree.cc (build_replicated_int_cst): Formatting fix.  Use
+ 	WIDE_INT_MAX_INL_ELTS rather than WIDE_INT_MAX_ELTS.
+ 	* print-tree.cc (print_node): Don't print TREE_UNAVAILABLE on
+ 	INTEGER_CSTs, TREE_VECs or SSA_NAMEs.
+ 	* double-int.h (wi::int_traits <double_int>::precision_type): Change
+ 	to INL_CONST_PRECISION from CONST_PRECISION.
+ 	* poly-int.h (struct poly_coeff_traits): Add partial specialization
+ 	for wi::INL_CONST_PRECISION.
+ 	* cfgloop.h (bound_wide_int): New typedef.
+ 	(struct nb_iter_bound): Change bound type from widest_int to
+ 	bound_wide_int.
+ 	(struct loop): Change nb_iterations_upper_bound,
+ 	nb_iterations_likely_upper_bound and nb_iterations_estimate type from
+ 	widest_int to bound_wide_int.
+ 	* cfgloop.cc (record_niter_bound): Return early if wi::min_precision
+ 	of i_bound is too large for bound_wide_int.  Adjustments for the
+ 	widest_int to bound_wide_int type change in non-static data members.
+ 	(get_estimated_loop_iterations, get_max_loop_iterations,
+ 	get_likely_max_loop_iterations): Adjustments for the widest_int to
+ 	bound_wide_int type change in non-static data members.
+ 	* tree-vect-loop.cc (vect_transform_loop): Likewise.
+ 	* tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations): Use
+ 	XALLOCAVEC allocated buffer for i_bound len above
+ 	WIDE_INT_MAX_INL_ELTS.
+ 	(record_estimate): Return early if wi::min_precision of i_bound is too
+ 	large for bound_wide_int.  Adjustments for the widest_int to
+ 	bound_wide_int type change in non-static data members.
+ 	(wide_int_cmp): Use bound_wide_int instead of widest_int.
+ 	(bound_index): Use bound_wide_int instead of widest_int.
+ 	(discover_iteration_bound_by_body_walk): Likewise.  Use
+ 	widest_int::from to convert it to widest_int when passed to
+ 	record_niter_bound.
+ 	(maybe_lower_iteration_bound): Use widest_int::from to convert it to
+ 	widest_int when passed to record_niter_bound.
+ 	(estimate_numbers_of_iteration): Don't record upper bound if
+ 	loop->nb_iterations has too large precision for bound_wide_int.
+ 	(n_of_executions_at_most): Use widest_int::from.
+ 	* tree-ssa-loop-ivcanon.cc (remove_redundant_iv_tests): Adjust for
+ 	the widest_int to bound_wide_int changes.
+ 	* match.pd (fold_sign_changed_comparison simplification): Use
+ 	wide_int::from on wi::to_wide instead of wi::to_widest.
+ 	* value-range.h (irange::maybe_resize): Avoid using memcpy on
+ 	non-trivially copyable elements.
+ 	* value-range.cc (irange_bitmask::dump): Use XALLOCAVEC allocated
+ 	buffer for mask or value len above WIDE_INT_PRINT_BUFFER_SIZE.
+ 	* fold-const.cc (fold_convert_const_int_from_int, fold_unary_loc):
+ 	Use wide_int::from on wi::to_wide instead of wi::to_widest.
+ 	* tree-ssa-ccp.cc (bit_value_binop): Zero extend r1max from width
+ 	before calling wi::udiv_trunc.
+ 	* lto-streamer-out.cc (output_cfg): Adjustments for the widest_int to
+ 	bound_wide_int type change in non-static data members.
+ 	* lto-streamer-in.cc (input_cfg): Likewise.
+ 	(lto_input_tree_1): Use WIDE_INT_MAX_INL_ELTS rather than
+ 	WIDE_INT_MAX_ELTS.  For length above WIDE_INT_MAX_INL_ELTS use
+ 	XALLOCAVEC allocated buffer.  Formatting fix.
+ 	* data-streamer-in.cc (streamer_read_wide_int,
+ 	streamer_read_widest_int): Likewise.
+ 	* tree-affine.cc (aff_combination_expand): Use placement new to
+ 	construct name_expansion.
+ 	(free_name_expansion): Destruct name_expansion.
+ 	* gimple-ssa-strength-reduction.cc (struct slsr_cand_d): Change
+ 	index type from widest_int to offset_int.
+ 	(class incr_info_d): Change incr type from widest_int to offset_int.
+ 	(alloc_cand_and_find_basis, backtrace_base_for_ref,
+ 	restructure_reference, slsr_process_ref, create_mul_ssa_cand,
+ 	create_mul_imm_cand, create_add_ssa_cand, create_add_imm_cand,
+ 	slsr_process_add, cand_abs_increment, replace_mult_candidate,
+ 	replace_unconditional_candidate, incr_vec_index,
+ 	create_add_on_incoming_edge, create_phi_basis_1,
+ 	replace_conditional_candidate, record_increment,
+ 	record_phi_increments_1, phi_incr_cost_1, phi_incr_cost,
+ 	lowest_cost_path, total_savings, ncd_with_phi, ncd_of_cand_and_phis,
+ 	nearest_common_dominator_for_cands, insert_initializers,
+ 	all_phi_incrs_profitable_1, replace_one_candidate,
+ 	replace_profitable_candidates): Use offset_int rather than widest_int
+ 	and wi::to_offset rather than wi::to_widest.
+ 	* real.cc (real_to_integer): Use WIDE_INT_MAX_INL_ELTS rather than
+ 	2 * WIDE_INT_MAX_ELTS and for words above that use XALLOCAVEC
+ 	allocated buffer.
+ 	* tree-ssa-loop-ivopts.cc (niter_for_exit): Use placement new
+ 	to construct tree_niter_desc and destruct it on failure.
+ 	(free_tree_niter_desc): Destruct tree_niter_desc if value is non-NULL.
+ 	* gengtype.cc (main): Remove widest_int handling.
+ 	* graphite-isl-ast-to-gimple.cc (widest_int_from_isl_expr_int): Use
+ 	WIDEST_INT_MAX_ELTS instead of WIDE_INT_MAX_ELTS.
+ 	* gimple-ssa-warn-alloca.cc (pass_walloca::execute): Use
+ 	WIDE_INT_MAX_INL_PRECISION instead of WIDE_INT_MAX_PRECISION and
+ 	assert get_len () fits into it.
+ 	* value-range-pretty-print.cc (vrange_printer::print_irange_bitmasks):
+ 	For mask or value lengths above WIDE_INT_MAX_INL_ELTS use XALLOCAVEC
+ 	allocated buffer.
+ 	* gimple-ssa-sprintf.cc (adjust_range_for_overflow): Use
+ 	wide_int::from on wi::to_wide instead of wi::to_widest.
+ 	* omp-general.cc (score_wide_int): New typedef.
+ 	(omp_context_compute_score): Use score_wide_int instead of widest_int
+ 	and adjust for those changes.
+ 	(struct omp_declare_variant_entry): Change score and
+ 	score_in_declare_simd_clone non-static data member type from widest_int
+ 	to score_wide_int.
+ 	(omp_resolve_late_declare_variant, omp_resolve_declare_variant): Use
+ 	score_wide_int instead of widest_int and adjust for those changes.
+ 	(omp_lto_output_declare_variant_alt): Likewise.
+ 	(omp_lto_input_declare_variant_alt): Likewise.
+ 	* godump.cc (go_output_typedef): Assert get_len () is smaller than
+ 	WIDE_INT_MAX_INL_ELTS.
+ 
+ 2023-10-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (lround<mode><v_i_l_ll_convert>2): New
+ 	pattern for lround/lroundf.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum value.
+ 	(expand_vec_lround): New func decl for expanding lround.
+ 	* config/riscv/riscv-v.cc (expand_vec_lround): New func impl
+ 	for expanding lround.
+ 
+ 2023-10-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* dwarf2out.h (wide_int_ptr): Remove.
+ 	(dw_wide_int_ptr): New typedef.
+ 	(struct dw_val_node): Change type of val_wide from wide_int_ptr
+ 	to dw_wide_int_ptr.
+ 	(struct dw_wide_int): New type.
+ 	(dw_wide_int::elt): New method.
+ 	(dw_wide_int::operator ==): Likewise.
+ 	* dwarf2out.cc (get_full_len): Change argument type to
+ 	const dw_wide_int & from const wide_int &.  Use CEIL.  Call
+ 	get_precision method instead of calling wi::get_precision.
+ 	(alloc_dw_wide_int): New function.
+ 	(add_AT_wide): Change w argument type to const wide_int_ref &
+ 	from const wide_int &.  Use alloc_dw_wide_int.
+ 	(mem_loc_descriptor, loc_descriptor): Use alloc_dw_wide_int.
+ 	(insert_wide_int): Change val argument type to const wide_int_ref &
+ 	from const wide_int &.
+ 	(add_const_value_attribute): Pass rtx_mode_t temporary directly to
+ 	add_AT_wide instead of using a temporary variable.
+ 
+ 2023-10-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111764
+ 	* tree-vect-loop.cc (check_reduction_path): Remove the attempt
+ 	to allow x + x via special-casing of assigns.
+ 
+ 2023-10-12  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detect USER_MSR.
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_USER_MSR_SET): New.
+ 	(OPTION_MASK_ISA2_USER_MSR_UNSET): Ditto.
+ 	(ix86_handle_option): Handle -musermsr.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_USER_MSR.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for usermsr.
+ 	* config.gcc: Add usermsrintrin.h
+ 	* config/i386/cpuid.h (bit_USER_MSR): New.
+ 	* config/i386/i386-builtin-types.def:
+ 	Add DEF_FUNCTION_TYPE (VOID, UINT64, UINT64).
+ 	* config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
+ 	Add __builtin_urdmsr and __builtin_uwrmsr.
+ 	* config/i386/i386-builtins.h (ix86_builtins):
+ 	Add IX86_BUILTIN_URDMSR and IX86_BUILTIN_UWRMSR.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal):
+ 	Define __USER_MSR__.
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin):
+ 	Handle new builtins.
+ 	* config/i386/i386-isa.def (USER_MSR): Add DEF_PTA(USER_MSR).
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
+ 	Handle usermsr.
+ 	* config/i386/i386.md (urdmsr): New define_insn.
+ 	(uwrmsr): Ditto.
+ 	* config/i386/i386.opt: Add option -musermsr.
+ 	* config/i386/x86gprintrin.h: Include usermsrintrin.h
+ 	* doc/extend.texi: Document usermsr.
+ 	* doc/invoke.texi: Document -musermsr.
+ 	* doc/sourcebuild.texi: Document target usermsr.
+ 	* config/i386/usermsrintrin.h: New file.
+ 
+ 2023-10-12  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: Add loongarch-driver.h to tm_files.
+ 	* config/loongarch/loongarch.h: Do not include loongarch-driver.h.
+ 	* config/loongarch/t-loongarch: Append loongarch-multilib.h to $(GTM_H)
+ 	instead of $(TM_H) for building generator programs.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/111367
+ 	* config/rs6000/rs6000.md (stack_protect_setsi): Support prefixed
+ 	instruction emission and incorporate to stack_protect_set<mode>.
+ 	(stack_protect_setdi): Rename to ...
+ 	(stack_protect_set<mode>): ... this, adjust constraint.
+ 	(stack_protect_testsi): Support prefixed instruction emission and
+ 	incorporate to stack_protect_test<mode>.
+ 	(stack_protect_testdi): Rename to ...
+ 	(stack_protect_test<mode>): ... this, adjust constraint.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Consider generated
+ 	VEC_PERM_EXPR stmt for VMAT_CONTIGUOUS_REVERSE in costing as
+ 	vec_perm.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_model_store_cost): Remove.
+ 	(vectorizable_store): Adjust the costing for the remaining memory
+ 	access types VMAT_CONTIGUOUS{, _DOWN, _REVERSE}.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_model_store_cost): Assert it will never
+ 	get VMAT_CONTIGUOUS_PERMUTE and remove VMAT_CONTIGUOUS_PERMUTE related
+ 	handlings.
+ 	(vectorizable_store): Adjust the cost handling on
+ 	VMAT_CONTIGUOUS_PERMUTE without calling vect_model_store_cost.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_model_store_cost): Assert it will never
+ 	get VMAT_LOAD_STORE_LANES.
+ 	(vectorizable_store): Adjust the cost handling on VMAT_LOAD_STORE_LANES
+ 	without calling vect_model_store_cost.  Factor out new lambda function
+ 	update_prologue_cost.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_model_store_cost): Assert it won't get
+ 	VMAT_ELEMENTWISE and VMAT_STRIDED_SLP any more, and remove their
+ 	related handlings.
+ 	(vectorizable_store): Adjust the cost handling on VMAT_ELEMENTWISE
+ 	and VMAT_STRIDED_SLP without calling vect_model_store_cost.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Adjust costing on
+ 	vectorizable_scan_store without calling vect_model_store_cost
+ 	any more.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_model_store_cost): Assert it won't get
+ 	VMAT_GATHER_SCATTER any more, remove VMAT_GATHER_SCATTER related
+ 	handlings and the related parameter gs_info.
+ 	(vect_build_scatter_store_calls): Add the handlings on costing with
+ 	one more argument cost_vec.
+ 	(vectorizable_store): Adjust the cost handling on VMAT_GATHER_SCATTER
+ 	without calling vect_model_store_cost any more.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Move and duplicate the call
+ 	to vect_model_store_cost down to some different transform paths
+ 	according to the handlings of different vect_memory_access_types
+ 	or some special handling need.
+ 
+ 2023-10-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Ensure the generated
+ 	vector store for some case of VMAT_ELEMENTWISE is supported.
+ 
+ 2023-10-12  Mo, Zewei  <zewei.mo@intel.com>
+ 	    Hu Lin1  <lin1.hu@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.cc (gen_push2): New function to emit push2
+ 	and adjust cfa offset.
+ 	(ix86_pro_and_epilogue_can_use_push2_pop2): New function to
+ 	determine whether push2/pop2 can be used.
+ 	(ix86_compute_frame_layout): Adjust preferred stack boundary
+ 	and stack alignment needed for push2/pop2.
+ 	(ix86_emit_save_regs): Emit push2 when available.
+ 	(ix86_emit_restore_reg_using_pop2): New function to emit pop2
+ 	and adjust cfa info.
+ 	(ix86_emit_restore_regs_using_pop2): New function to loop
+ 	through the saved regs and call above.
+ 	(ix86_expand_epilogue): Call ix86_emit_restore_regs_using_pop2
+ 	when push2pop2 available.
+ 	* config/i386/i386.md (push2_di): New pattern for push2.
+ 	(pop2_di): Likewise for pop2.
+ 
+ 2023-10-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (lrint<mode><vlconvert>2): Rename from.
+ 	(lrint<mode><v_i_l_ll_convert>2): Rename to.
+ 	* config/riscv/vector-iterators.md: Rename and remove TARGET_64BIT.
+ 
+ 2023-10-11  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-opts.h (TARGET_MIN_VLEN_OPTS): New.
+ 
+ 2023-10-11  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md (jump): Adjust sequence to use a "jump"
+ 	pseudo op instead of a "call" pseudo op.
+ 
+ 2023-10-11  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-subset.h (riscv_subset_list::parse_single_std_ext):
+ 	New.
+ 	(riscv_subset_list::parse_single_multiletter_ext): Ditto.
+ 	(riscv_subset_list::clone): Ditto.
+ 	(riscv_subset_list::parse_single_ext): Ditto.
+ 	(riscv_subset_list::set_loc): Ditto.
+ 	(riscv_set_arch_by_subset_list): Ditto.
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::parse_single_std_ext): New.
+ 	(riscv_subset_list::parse_single_multiletter_ext): Ditto.
+ 	(riscv_subset_list::clone): Ditto.
+ 	(riscv_subset_list::parse_single_ext): Ditto.
+ 	(riscv_subset_list::set_loc): Ditto.
+ 	(riscv_set_arch_by_subset_list): Ditto.
+ 
+ 2023-10-11  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_convert_vector_bits): Get setting
+ 	from argument rather than get setting from global setting.
+ 	(riscv_override_options_internal): New, splited from
+ 	riscv_override_options, also take a gcc_options argument.
+ 	(riscv_option_override): Splited most part to
+ 	riscv_override_options_internal.
+ 
+ 2023-10-11  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* doc/options.texi (Mask): Document TARGET_<NAME>_P and
+ 	TARGET_<NAME>_OPTS_P.
+ 	(InverseMask): Ditto.
+ 	* opth-gen.awk (Mask): Generate TARGET_<NAME>_P and
+ 	TARGET_<NAME>_OPTS_P macro.
+ 	(InverseMask): Ditto.
+ 
+ 2023-10-11  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR tree-optimization/111282
+ 	* match.pd (`a & ~(a ^ b)`, `a & (a == b)`,
+ 	`a & ((~a) ^ b)`): New patterns.
+ 
+ 2023-10-11  Mary Bennett  <mary.bennett@embecosm.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add the XCValu
+ 	extension.
+ 	* config/riscv/constraints.md: Add builtins for the XCValu
+ 	extension.
+ 	* config/riscv/predicates.md (immediate_register_operand):
+ 	Likewise.
+ 	* config/riscv/corev.def: Likewise.
+ 	* config/riscv/corev.md: Likewise.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): Likewise.
+ 	(RISCV_ATYPE_UHI): Likewise.
+ 	* config/riscv/riscv-ftypes.def: Likewise.
+ 	* config/riscv/riscv.opt: Likewise.
+ 	* config/riscv/riscv.cc (riscv_print_operand): Likewise.
+ 	* doc/extend.texi: Add XCValu documentation.
+ 	* doc/sourcebuild.texi: Likewise.
+ 
+ 2023-10-11  Mary Bennett  <mary.bennett@embecosm.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add XCVmac.
+ 	* config/riscv/riscv-ftypes.def: Add XCVmac builtins.
+ 	* config/riscv/riscv-builtins.cc: Likewise.
+ 	* config/riscv/riscv.md: Likewise.
+ 	* config/riscv/riscv.opt: Likewise.
+ 	* doc/extend.texi: Add XCVmac builtin documentation.
+ 	* doc/sourcebuild.texi: Likewise.
+ 	* config/riscv/corev.def: New file.
+ 	* config/riscv/corev.md: New file.
+ 
+ 2023-10-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Fix index bug.
+ 	* config/riscv/riscv-protos.h (gather_scatter_valid_offset_mode_p): New function.
+ 	* config/riscv/riscv-v.cc (expand_gather_scatter): Fix index bug.
+ 	(gather_scatter_valid_offset_mode_p): New function.
+ 
+ 2023-10-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (lrint<mode><vlconvert>2): New pattern
+ 	for lrint/lintf.
+ 	* config/riscv/riscv-protos.h (expand_vec_lrint): New func decl
+ 	for expanding lint.
+ 	* config/riscv/riscv-v.cc (emit_vec_cvt_x_f): New helper func impl
+ 	for vfcvt.x.f.v.
+ 	(expand_vec_lrint): New function impl for expanding lint.
+ 	* config/riscv/vector-iterators.md: New mode attr and iterator.
+ 
+ 2023-10-11  Richard Biener  <rguenther@suse.de>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/111519
+ 	* tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes): Add vuse
+ 	argument and pass it through to recursive calls and
+ 	count_nonzero_bytes_addr calls.  Don't shadow the stmt argument, but
+ 	change stmt for gimple_assign_single_p statements for which we don't
+ 	immediately punt.
+ 	(strlen_pass::count_nonzero_bytes_addr): Add vuse argument and pass
+ 	it through to recursive calls and count_nonzero_bytes calls.  Don't
+ 	use get_strinfo if gimple_vuse (stmt) is different from vuse.  Don't
+ 	shadow the stmt argument.
+ 
+ 2023-10-11  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR middle-end/101955
+ 	PR tree-optimization/106245
+ 	* simplify-rtx.cc (simplify_relational_operation_1): Simplify
+ 	the RTL (ne:SI (subreg:QI (ashift:SI x 7) 0) 0) to (and:SI x 1).
+ 
+ 2023-10-11  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/111745
+ 	* config/i386/mmx.md (divv4hf3): Refine predicate of
+ 	operands[2] with register_operand.
+ 
+ 2023-10-10  Andrew Waterman  <andrew@sifive.com>
+ 	    Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 	    Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (struct machine_function): Track if a
+ 	far-branch/jump is used within a function (and $ra needs to be
+ 	saved).
+ 	(riscv_print_operand): Implement 'N' (inverse integer branch).
+ 	(riscv_far_jump_used_p): Implement.
+ 	(riscv_save_return_addr_reg_p): New function.
+ 	(riscv_save_reg_p): Use riscv_save_return_addr_reg_p.
+ 	* config/riscv/riscv.h (FIXED_REGISTERS): Update $ra.
+ 	(CALL_USED_REGISTERS): Update $ra.
+ 	* config/riscv/riscv.md: Add new types "ret" and "jalr".
+ 	(length attribute): Handle long conditional and unconditional
+ 	branches.
+ 	(conditional branch pattern): Handle case where jump can not
+ 	reach the intended target.
+ 	(indirect_jump, tablejump): Use new "jalr" type.
+ 	(simple_return): Use new "ret" type.
+ 	(simple_return_internal, eh_return_internal): Likewise.
+ 	(gpr_restore_return, riscv_mret): Likewise.
+ 	(riscv_uret, riscv_sret): Likewise.
+ 	* config/riscv/generic.md (generic_branch): Also recognize jalr & ret
+ 	types.
+ 	* config/riscv/sifive-7.md (sifive_7_jump): Likewise.
+ 
+ 2023-10-10  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR tree-optimization/111679
+ 	* match.pd (`a | ((~a) ^ b)`): New pattern.
+ 
+ 2023-10-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111751
+ 	* config/riscv/autovec.md: Add VLS BOOL modes.
+ 
+ 2023-10-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111751
+ 	* fold-const.cc (fold_view_convert_expr): Up the buffer size
+ 	to 128 bytes.
+ 	* tree-ssa-sccvn.cc (visit_reference_op_load): Special case
+ 	constants, giving up when re-interpretation to the target type
+ 	fails.
+ 
+ 2023-10-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111751
+ 	* tree-ssa-sccvn.cc (visit_reference_op_load): Exempt
+ 	BLKmode result from the padding bits check.
+ 
+ 2023-10-10  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc.cc (arc_select_cc_mode): Match NEG code with
+ 	the first operand.
+ 	* config/arc/arc.md (addsi_compare): Make pattern canonical.
+ 	(addsi_compare_2): Fix identation, constraint letters.
+ 	(addsi_compare_3): Likewise.
+ 
+ 2023-10-09  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	* auto-profile.cc (afdo_calculate_branch_prob): Fix count comparisons
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Guard against zero count
+ 	when scaling loop profile
+ 
+ 2023-10-09  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/111694
+ 	* gimple-range-cache.cc (ranger_cache::fill_block_cache): Adjust
+ 	equivalence range.
+ 	* value-relation.cc (adjust_equivalence_range): New.
+ 	* value-relation.h (adjust_equivalence_range): New prototype.
+ 
+ 2023-10-09  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (gori_compute::compute_operand1_range): Do
+ 	not call get_identity_relation.
+ 	(gori_compute::compute_operand2_range): Ditto.
+ 	* value-relation.cc (get_identity_relation): Remove.
+ 	* value-relation.h (get_identity_relation): Remove protyotype.
+ 
+ 2023-10-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
+ 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
+ 	Add generic_ooo.
+ 	* config/riscv/riscv.cc (riscv_sched_adjust_cost): Implement
+ 	scheduler hook.
+ 	(TARGET_SCHED_ADJUST_COST): Define.
+ 	* config/riscv/riscv.md (no,yes"): Include generic-ooo.md
+ 	* config/riscv/riscv.opt: Add -madjust-lmul-cost.
+ 	* config/riscv/generic-ooo.md: New file.
+ 	* config/riscv/vector.md: Add vsetvl_pre.
+ 
+ 2023-10-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-opts.h (TARGET_VECTOR_MISALIGN_SUPPORTED): New macro.
+ 	* config/riscv/riscv.cc (riscv_support_vector_misalignment): Depend on movmisalign pattern.
+ 	* config/riscv/vector.md (movmisalign<mode>): New pattern.
+ 
+ 2023-10-09  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/riscv/thead.cc (th_mempair_save_regs): Fix missing CFI
+ 	directives for store-pair instruction.
+ 
+ 2023-10-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111715
+ 	* alias.cc (reference_alias_ptr_type_1): When we have
+ 	a type-punning ref at the base search for the access
+ 	path part that's still semantically valid.
+ 
+ 2023-10-09  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_bswap_pattern): New func impl
+ 	for shuffle bswap.
+ 	(expand_vec_perm_const_1): Add handling for shuffle bswap pattern.
+ 
+ 2023-10-09  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_split_ashr): Split shifts by
+ 	one into ashr[sd]i3_carry followed by rcr[sd]i2, if TARGET_USE_RCR
+ 	or -Oz.
+ 	(ix86_split_lshr): Likewise, split shifts by one bit into
+ 	lshr[sd]i3_carry followed by rcr[sd]i2, if TARGET_USE_RCR or -Oz.
+ 	* config/i386/i386.h (TARGET_USE_RCR): New backend macro.
+ 	* config/i386/i386.md (rcrsi2): New define_insn for rcrl.
+ 	(rcrdi2): New define_insn for rcrq.
+ 	(<anyshiftrt><mode>3_carry): New define_insn for right shifts that
+ 	set the carry flag from the least significant bit, modelled using
+ 	UNSPEC_CC_NE.
+ 	* config/i386/x86-tune.def (X86_TUNE_USE_RCR): New tuning parameter
+ 	controlling use of rcr 1 vs. shrd, which is significantly faster on
+ 	AMD processors.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.opt: Allow -mno-evex512.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 	    Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/sse.md (V48H_AVX512VL): Add TARGET_EVEX512.
+ 	(VFH): Ditto.
+ 	(VF2H): Ditto.
+ 	(VFH_AVX512VL): Ditto.
+ 	(VHFBF): Ditto.
+ 	(VHF_AVX512VL): Ditto.
+ 	(VI2H_AVX512VL): Ditto.
+ 	(VI2F_256_512): Ditto.
+ 	(VF48_I1248): Remove unused iterator.
+ 	(VF48H_AVX512VL): Add TARGET_EVEX512.
+ 	(VF_AVX512): Remove unused iterator.
+ 	(REDUC_PLUS_MODE): Add TARGET_EVEX512.
+ 	(REDUC_SMINMAX_MODE): Ditto.
+ 	(FMAMODEM): Ditto.
+ 	(VFH_SF_AVX512VL): Ditto.
+ 	(VEC_PERM_AVX2): Ditto.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 	    Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/sse.md (VI1_AVX512VL): Add TARGET_EVEX512.
+ 	(VI8_FVL): Ditto.
+ 	(VI1_AVX512F): Ditto.
+ 	(VI1_AVX512VNNI): Ditto.
+ 	(VI1_AVX512VL_F): Ditto.
+ 	(VI12_VI48F_AVX512VL): Ditto.
+ 	(*avx512f_permvar_truncv32hiv32qi_1): Ditto.
+ 	(sdot_prod<mode>): Ditto.
+ 	(VEC_PERM_AVX2): Ditto.
+ 	(VPERMI2): Ditto.
+ 	(VPERMI2I): Ditto.
+ 	(vpmadd52<vpmadd52type>v8di): Ditto.
+ 	(usdot_prod<mode>): Ditto.
+ 	(vpdpbusd_v16si): Ditto.
+ 	(vpdpbusds_v16si): Ditto.
+ 	(vpdpwssd_v16si): Ditto.
+ 	(vpdpwssds_v16si): Ditto.
+ 	(VI48_AVX512VP2VL): Ditto.
+ 	(avx512vp2intersect_2intersectv16si): Ditto.
+ 	(VF_AVX512BF16VL): Ditto.
+ 	(VF1_AVX512_256): Ditto.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
+ 	Make sure there is EVEX512 enabled.
+ 	(ix86_expand_vecop_qihi2): Refuse V32QI->V32HI when no EVEX512.
+ 	* config/i386/i386.cc (ix86_hard_regno_mode_ok): Disable 64 bit mask
+ 	when !TARGET_EVEX512.
+ 	* config/i386/i386.md (avx512bw_512): New.
+ 	(SWI1248_AVX512BWDQ_64): Add TARGET_EVEX512.
+ 	(*zero_extendsidi2): Change isa to avx512bw_512.
+ 	(kmov_isa): Ditto.
+ 	(*anddi_1): Ditto.
+ 	(*andn<mode>_1): Change isa to kmov_isa.
+ 	(*<code><mode>_1): Ditto.
+ 	(*notxor<mode>_1): Ditto.
+ 	(*one_cmpl<mode>2_1): Ditto.
+ 	(*one_cmplsi2_1_zext): Change isa to avx512bw_512.
+ 	(*ashl<mode>3_1): Change isa to kmov_isa.
+ 	(*lshr<mode>3_1): Ditto.
+ 	* config/i386/sse.md (VI12HFBF_AVX512VL): Add TARGET_EVEX512.
+ 	(VI1248_AVX512VLBW): Ditto.
+ 	(VHFBF_AVX512VL): Ditto.
+ 	(VI): Ditto.
+ 	(VIHFBF): Ditto.
+ 	(VI_AVX2): Ditto.
+ 	(VI1_AVX512): Ditto.
+ 	(VI12_256_512_AVX512VL): Ditto.
+ 	(VI2_AVX2_AVX512BW): Ditto.
+ 	(VI2_AVX512VNNIBW): Ditto.
+ 	(VI2_AVX512VL): Ditto.
+ 	(VI2HFBF_AVX512VL): Ditto.
+ 	(VI8_AVX2_AVX512BW): Ditto.
+ 	(VIMAX_AVX2_AVX512BW): Ditto.
+ 	(VIMAX_AVX512VL): Ditto.
+ 	(VI12_AVX2_AVX512BW): Ditto.
+ 	(VI124_AVX2_24_AVX512F_1_AVX512BW): Ditto.
+ 	(VI248_AVX512VL): Ditto.
+ 	(VI248_AVX512VLBW): Ditto.
+ 	(VI248_AVX2_8_AVX512F_24_AVX512BW): Ditto.
+ 	(VI248_AVX512BW): Ditto.
+ 	(VI248_AVX512BW_AVX512VL): Ditto.
+ 	(VI248_512): Ditto.
+ 	(VI124_256_AVX512F_AVX512BW): Ditto.
+ 	(VI_AVX512BW): Ditto.
+ 	(VIHFBF_AVX512BW): Ditto.
+ 	(SWI1248_AVX512BWDQ): Ditto.
+ 	(SWI1248_AVX512BW): Ditto.
+ 	(SWI1248_AVX512BWDQ2): Ditto.
+ 	(*knotsi_1_zext): Ditto.
+ 	(define_split for zero_extend + not): Ditto.
+ 	(kunpckdi): Ditto.
+ 	(REDUC_SMINMAX_MODE): Ditto.
+ 	(VEC_EXTRACT_MODE): Ditto.
+ 	(*avx512bw_permvar_truncv16siv16hi_1): Ditto.
+ 	(*avx512bw_permvar_truncv16siv16hi_1_hf): Ditto.
+ 	(truncv32hiv32qi2): Ditto.
+ 	(avx512bw_<code>v32hiv32qi2): Ditto.
+ 	(avx512bw_<code>v32hiv32qi2_mask): Ditto.
+ 	(avx512bw_<code>v32hiv32qi2_mask_store): Ditto.
+ 	(usadv64qi): Ditto.
+ 	(VEC_PERM_AVX2): Ditto.
+ 	(AVX512ZEXTMASK): Ditto.
+ 	(SWI24_MASK): New.
+ 	(vec_pack_trunc_<mode>): Change iterator to SWI24_MASK.
+ 	(avx512bw_packsswb<mask_name>): Add TARGET_EVEX512.
+ 	(avx512bw_packssdw<mask_name>): Ditto.
+ 	(avx512bw_interleave_highv64qi<mask_name>): Ditto.
+ 	(avx512bw_interleave_lowv64qi<mask_name>): Ditto.
+ 	(<mask_codefor>avx512bw_pshuflwv32hi<mask_name>): Ditto.
+ 	(<mask_codefor>avx512bw_pshufhwv32hi<mask_name>): Ditto.
+ 	(vec_unpacks_lo_di): Ditto.
+ 	(SWI48x_MASK): New.
+ 	(vec_unpacks_hi_<mode>): Change iterator to SWI48x_MASK.
+ 	(avx512bw_umulhrswv32hi3<mask_name>): Add TARGET_EVEX512.
+ 	(VI1248_AVX512VL_AVX512BW): Ditto.
+ 	(avx512bw_<code>v32qiv32hi2<mask_name>): Ditto.
+ 	(*avx512bw_zero_extendv32qiv32hi2_1): Ditto.
+ 	(*avx512bw_zero_extendv32qiv32hi2_2): Ditto.
+ 	(<insn>v32qiv32hi2): Ditto.
+ 	(pbroadcast_evex_isa): Change isa attribute to avx512bw_512.
+ 	(VPERMI2): Add TARGET_EVEX512.
+ 	(VPERMI2I): Ditto.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_sse2_mulvxdi3):
+ 	Add TARGET_EVEX512 for 512 bit usage.
+ 	* config/i386/i386.cc (standard_sse_constant_opcode): Ditto.
+ 	* config/i386/sse.md (VF1_VF2_AVX512DQ): Ditto.
+ 	(VF1_128_256VL): Ditto.
+ 	(VF2_AVX512VL): Ditto.
+ 	(VI8_256_512): Ditto.
+ 	(<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
+ 	Ditto.
+ 	(AVX512_VEC): Ditto.
+ 	(AVX512_VEC_2): Ditto.
+ 	(VI4F_BRCST32x2): Ditto.
+ 	(VI8F_BRCST64x2): Ditto.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtins.cc
+ 	(ix86_vectorize_builtin_gather): Disable 512 bit gather
+ 	when !TARGET_EVEX512.
+ 	* config/i386/i386-expand.cc (ix86_valid_mask_cmp_mode):
+ 	Add TARGET_EVEX512.
+ 	(ix86_expand_int_sse_cmp): Ditto.
+ 	(ix86_expand_vector_init_one_nonzero): Disable subroutine
+ 	when !TARGET_EVEX512.
+ 	(ix86_emit_swsqrtsf): Add TARGET_EVEX512.
+ 	(ix86_vectorize_vec_perm_const): Disable subroutine when
+ 	!TARGET_EVEX512.
+ 	* config/i386/i386.cc
+ 	(standard_sse_constant_p): Add TARGET_EVEX512.
+ 	(standard_sse_constant_opcode): Ditto.
+ 	(ix86_get_ssemov): Ditto.
+ 	(ix86_legitimate_constant_p): Ditto.
+ 	(ix86_vectorize_builtin_scatter): Diable 512 bit scatter
+ 	when !TARGET_EVEX512.
+ 	* config/i386/i386.md (avx512f_512): New.
+ 	(movxi): Add TARGET_EVEX512.
+ 	(*movxi_internal_avx512f): Ditto.
+ 	(*movdi_internal): Change alternative 12 to ?Yv. Adjust mode
+ 	for alternative 13.
+ 	(*movsi_internal): Change alternative 8 to ?Yv. Adjust mode for
+ 	alternative 9.
+ 	(*movhi_internal): Change alternative 11 to *Yv.
+ 	(*movdf_internal): Change alternative 12 to Yv.
+ 	(*movsf_internal): Change alternative 5 to Yv. Adjust mode for
+ 	alternative 5 and 6.
+ 	(*mov<mode>_internal): Change alternative 4 to Yv.
+ 	(define_split for convert SF to DF): Add TARGET_EVEX512.
+ 	(extendbfsf2_1): Ditto.
+ 	* config/i386/predicates.md (bcst_mem_operand): Disable predicate
+ 	for 512 bit when !TARGET_EVEX512.
+ 	* config/i386/sse.md (VMOVE): Add TARGET_EVEX512.
+ 	(V48_AVX512VL): Ditto.
+ 	(V48_256_512_AVX512VL): Ditto.
+ 	(V48H_AVX512VL): Ditto.
+ 	(VI12_AVX512VL): Ditto.
+ 	(V): Ditto.
+ 	(V_512): Ditto.
+ 	(V_256_512): Ditto.
+ 	(VF): Ditto.
+ 	(VF1_VF2_AVX512DQ): Ditto.
+ 	(VFH): Ditto.
+ 	(VFB): Ditto.
+ 	(VF1): Ditto.
+ 	(VF1_AVX2): Ditto.
+ 	(VF2): Ditto.
+ 	(VF2H): Ditto.
+ 	(VF2_512_256): Ditto.
+ 	(VF2_512_256VL): Ditto.
+ 	(VF_512): Ditto.
+ 	(VFB_512): Ditto.
+ 	(VI48_AVX512VL): Ditto.
+ 	(VI1248_AVX512VLBW): Ditto.
+ 	(VF_AVX512VL): Ditto.
+ 	(VFH_AVX512VL): Ditto.
+ 	(VF1_AVX512VL): Ditto.
+ 	(VI): Ditto.
+ 	(VIHFBF): Ditto.
+ 	(VI_AVX2): Ditto.
+ 	(VI8): Ditto.
+ 	(VI8_AVX512VL): Ditto.
+ 	(VI2_AVX512F): Ditto.
+ 	(VI4_AVX512F): Ditto.
+ 	(VI4_AVX512VL): Ditto.
+ 	(VI48_AVX512F_AVX512VL): Ditto.
+ 	(VI8_AVX2_AVX512F): Ditto.
+ 	(VI8_AVX_AVX512F): Ditto.
+ 	(V8FI): Ditto.
+ 	(V16FI): Ditto.
+ 	(VI124_AVX2_24_AVX512F_1_AVX512BW): Ditto.
+ 	(VI248_AVX512VLBW): Ditto.
+ 	(VI248_AVX2_8_AVX512F_24_AVX512BW): Ditto.
+ 	(VI248_AVX512BW): Ditto.
+ 	(VI248_AVX512BW_AVX512VL): Ditto.
+ 	(VI48_AVX512F): Ditto.
+ 	(VI48_AVX_AVX512F): Ditto.
+ 	(VI12_AVX_AVX512F): Ditto.
+ 	(VI148_512): Ditto.
+ 	(VI124_256_AVX512F_AVX512BW): Ditto.
+ 	(VI48_512): Ditto.
+ 	(VI_AVX512BW): Ditto.
+ 	(VIHFBF_AVX512BW): Ditto.
+ 	(VI4F_256_512): Ditto.
+ 	(VI48F_256_512): Ditto.
+ 	(VI48F): Ditto.
+ 	(VI12_VI48F_AVX512VL): Ditto.
+ 	(V32_512): Ditto.
+ 	(AVX512MODE2P): Ditto.
+ 	(STORENT_MODE): Ditto.
+ 	(REDUC_PLUS_MODE): Ditto.
+ 	(REDUC_SMINMAX_MODE): Ditto.
+ 	(*andnot<mode>3): Change isa attribute to avx512f_512.
+ 	(*andnot<mode>3): Ditto.
+ 	(<code><mode>3): Ditto.
+ 	(<code>tf3): Ditto.
+ 	(FMAMODEM): Add TARGET_EVEX512.
+ 	(FMAMODE_AVX512): Ditto.
+ 	(VFH_SF_AVX512VL): Ditto.
+ 	(avx512f_fix_notruncv16sfv16si<mask_name><round_name>): Ditto.
+ 	(fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(avx512f_cvtdq2pd512_2): Ditto.
+ 	(avx512f_cvtpd2dq512<mask_name><round_name>): Ditto.
+ 	(fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(<mask_codefor>avx512f_cvtpd2ps512<mask_name><round_name>): Ditto.
+ 	(vec_unpacks_lo_v16sf): Ditto.
+ 	(vec_unpacks_hi_v16sf): Ditto.
+ 	(vec_unpacks_float_hi_v16si): Ditto.
+ 	(vec_unpacks_float_lo_v16si): Ditto.
+ 	(vec_unpacku_float_hi_v16si): Ditto.
+ 	(vec_unpacku_float_lo_v16si): Ditto.
+ 	(vec_pack_sfix_trunc_v8df): Ditto.
+ 	(avx512f_vec_pack_sfix_v8df): Ditto.
+ 	(<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto.
+ 	(<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto.
+ 	(<mask_codefor>avx512f_movshdup512<mask_name>): Ditto.
+ 	(<mask_codefor>avx512f_movsldup512<mask_name>): Ditto.
+ 	(AVX512_VEC): Ditto.
+ 	(AVX512_VEC_2): Ditto.
+ 	(vec_extract_lo_v64qi): Ditto.
+ 	(vec_extract_hi_v64qi): Ditto.
+ 	(VEC_EXTRACT_MODE): Ditto.
+ 	(<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
+ 	(avx512f_movddup512<mask_name>): Ditto.
+ 	(avx512f_unpcklpd512<mask_name>): Ditto.
+ 	(*<avx512>_vternlog<mode>_all): Ditto.
+ 	(*<avx512>_vpternlog<mode>_1): Ditto.
+ 	(*<avx512>_vpternlog<mode>_2): Ditto.
+ 	(*<avx512>_vpternlog<mode>_3): Ditto.
+ 	(avx512f_shufps512_mask): Ditto.
+ 	(avx512f_shufps512_1<mask_name>): Ditto.
+ 	(avx512f_shufpd512_mask): Ditto.
+ 	(avx512f_shufpd512_1<mask_name>): Ditto.
+ 	(<mask_codefor>avx512f_interleave_highv8di<mask_name>): Ditto.
+ 	(<mask_codefor>avx512f_interleave_lowv8di<mask_name>): Ditto.
+ 	(vec_dupv2df<mask_name>): Ditto.
+ 	(trunc<pmov_src_lower><mode>2): Ditto.
+ 	(*avx512f_<code><pmov_src_lower><mode>2): Ditto.
+ 	(*avx512f_vpermvar_truncv8div8si_1): Ditto.
+ 	(avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
+ 	(avx512f_<code><pmov_src_lower><mode>2_mask_store): Ditto.
+ 	(truncv8div8qi2): Ditto.
+ 	(avx512f_<code>v8div16qi2): Ditto.
+ 	(*avx512f_<code>v8div16qi2_store_1): Ditto.
+ 	(*avx512f_<code>v8div16qi2_store_2): Ditto.
+ 	(avx512f_<code>v8div16qi2_mask): Ditto.
+ 	(*avx512f_<code>v8div16qi2_mask_1): Ditto.
+ 	(*avx512f_<code>v8div16qi2_mask_store_1): Ditto.
+ 	(avx512f_<code>v8div16qi2_mask_store_2): Ditto.
+ 	(vec_widen_umult_even_v16si<mask_name>): Ditto.
+ 	(*vec_widen_umult_even_v16si<mask_name>): Ditto.
+ 	(vec_widen_smult_even_v16si<mask_name>): Ditto.
+ 	(*vec_widen_smult_even_v16si<mask_name>): Ditto.
+ 	(VEC_PERM_AVX2): Ditto.
+ 	(one_cmpl<mode>2): Ditto.
+ 	(<mask_codefor>one_cmpl<mode>2<mask_name>): Ditto.
+ 	(*one_cmpl<mode>2_pternlog_false_dep): Ditto.
+ 	(define_split to xor): Ditto.
+ 	(*andnot<mode>3): Ditto.
+ 	(define_split for ior): Ditto.
+ 	(*iornot<mode>3): Ditto.
+ 	(*xnor<mode>3): Ditto.
+ 	(*<nlogic><mode>3): Ditto.
+ 	(<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto.
+ 	(<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto.
+ 	(avx512f_pshufdv3_mask): Ditto.
+ 	(avx512f_pshufd_1<mask_name>): Ditto.
+ 	(*vec_extractv4ti): Ditto.
+ 	(VEXTRACTI128_MODE): Ditto.
+ 	(define_split to vec_extract): Ditto.
+ 	(VI1248_AVX512VL_AVX512BW): Ditto.
+ 	(<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto.
+ 	(<insn>v16qiv16si2): Ditto.
+ 	(avx512f_<code>v16hiv16si2<mask_name>): Ditto.
+ 	(<insn>v16hiv16si2): Ditto.
+ 	(avx512f_zero_extendv16hiv16si2_1): Ditto.
+ 	(avx512f_<code>v8qiv8di2<mask_name>): Ditto.
+ 	(*avx512f_<code>v8qiv8di2<mask_name>_1): Ditto.
+ 	(*avx512f_<code>v8qiv8di2<mask_name>_2): Ditto.
+ 	(<insn>v8qiv8di2): Ditto.
+ 	(avx512f_<code>v8hiv8di2<mask_name>): Ditto.
+ 	(<insn>v8hiv8di2): Ditto.
+ 	(avx512f_<code>v8siv8di2<mask_name>): Ditto.
+ 	(*avx512f_zero_extendv8siv8di2_1): Ditto.
+ 	(*avx512f_zero_extendv8siv8di2_2): Ditto.
+ 	(<insn>v8siv8di2): Ditto.
+ 	(avx512f_roundps512_sfix): Ditto.
+ 	(vashrv8di3): Ditto.
+ 	(vashrv16si3): Ditto.
+ 	(pbroadcast_evex_isa): Change isa attribute to avx512f_512.
+ 	(vec_dupv4sf): Add TARGET_EVEX512.
+ 	(*vec_dupv4si): Ditto.
+ 	(*vec_dupv2di): Ditto.
+ 	(vec_dup<mode>): Change isa attribute to avx512f_512.
+ 	(VPERMI2): Add TARGET_EVEX512.
+ 	(VPERMI2I): Ditto.
+ 	(VEC_INIT_MODE): Ditto.
+ 	(VEC_INIT_HALF_MODE): Ditto.
+ 	(<mask_codefor>avx512f_vcvtph2ps512<mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(avx512f_vcvtps2ph512_mask_sae): Ditto.
+ 	(<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(*avx512f_vcvtps2ph512<merge_mask_name>): Ditto.
+ 	(INT_BROADCAST_MODE): Ditto.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_broadcast_from_constant):
+ 	Disable zmm broadcast for !TARGET_EVEX512.
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Do not use PVW_512 when no-evex512.
+ 	(ix86_simd_clone_adjust): Add evex512 target into string.
+ 	* config/i386/i386.cc (type_natural_mode): Report ABI warning
+ 	when using zmm register w/o evex512.
+ 	(ix86_return_in_memory): Do not allow zmm when !TARGET_EVEX512.
+ 	(ix86_hard_regno_mode_ok): Ditto.
+ 	(ix86_set_reg_reg_cost): Ditto.
+ 	(ix86_rtx_costs): Ditto.
+ 	(ix86_vector_mode_supported_p): Ditto.
+ 	(ix86_preferred_simd_mode): Ditto.
+ 	(ix86_get_mask_mode): Ditto.
+ 	(ix86_simd_clone_compute_vecsize_and_simdlen): Disable 512 bit
+ 	libmvec call when !TARGET_EVEX512.
+ 	(ix86_simd_clone_usable): Ditto.
+ 	* config/i386/i386.h (BIGGEST_ALIGNMENT): Disable 512 alignment
+ 	when !TARGET_EVEX512
+ 	(MOVE_MAX): Do not use PVW_512 when !TARGET_EVEX512.
+ 	(STORE_MAX_PIECES): Ditto.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtin.def (BDESC): Add
+ 	OPTION_MASK_ISA2_EVEX512.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtin.def (BDESC): Add
+ 	OPTION_MASK_ISA2_EVEX512.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtin.def (BDESC): Add
+ 	OPTION_MASK_ISA2_EVEX512.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtin.def (BDESC): Add
+ 	OPTION_MASK_ISA2_EVEX512.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtin.def (BDESC): Add
+ 	OPTION_MASK_ISA2_EVEX512.
+ 	* config/i386/i386-builtins.cc
+ 	(ix86_init_mmx_sse_builtins): Ditto.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 	    Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx512fp16intrin.h: Add evex512 target for 512 bit
+ 	intrins.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config.gcc: Add avx512bitalgvlintrin.h.
+ 	* config/i386/avx5124fmapsintrin.h: Add evex512 target for 512 bit
+ 	intrins.
+ 	* config/i386/avx5124vnniwintrin.h: Ditto.
+ 	* config/i386/avx512bf16intrin.h: Ditto.
+ 	* config/i386/avx512bitalgintrin.h: Add evex512 target for 512 bit
+ 	intrins. Split 128/256 bit intrins to avx512bitalgvlintrin.h.
+ 	* config/i386/avx512erintrin.h: Add evex512 target for 512 bit
+ 	intrins
+ 	* config/i386/avx512ifmaintrin.h: Ditto
+ 	* config/i386/avx512pfintrin.h: Ditto
+ 	* config/i386/avx512vbmi2intrin.h: Ditto.
+ 	* config/i386/avx512vbmiintrin.h: Ditto.
+ 	* config/i386/avx512vnniintrin.h: Ditto.
+ 	* config/i386/avx512vp2intersectintrin.h: Ditto.
+ 	* config/i386/avx512vpopcntdqintrin.h: Ditto.
+ 	* config/i386/gfniintrin.h: Ditto.
+ 	* config/i386/immintrin.h: Add avx512bitalgvlintrin.h.
+ 	* config/i386/vaesintrin.h: Add evex512 target for 512 bit intrins.
+ 	* config/i386/vpclmulqdqintrin.h: Ditto.
+ 	* config/i386/avx512bitalgvlintrin.h: New.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512bwintrin.h: Add evex512 target for 512 bit
+ 	intrins.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512dqintrin.h: Add evex512 target for 512 bit
+ 	intrins.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512fintrin.h: Add evex512 target for 512 bit intrins.
+ 
+ 2023-10-09  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_EVEX512_SET): New.
+ 	(OPTION_MASK_ISA2_EVEX512_UNSET): Ditto.
+ 	(ix86_handle_option): Handle EVEX512.
+ 	* config/i386/i386-c.cc
+ 	(ix86_target_macros_internal): Handle EVEX512. Add __EVEX256__
+ 	when AVX512VL is set.
+ 	* config/i386/i386-options.cc: (isa2_opts): Handle EVEX512.
+ 	(ix86_valid_target_attribute_inner_p): Ditto.
+ 	(ix86_option_override_internal): Set EVEX512 target if it is not
+ 	explicitly set when AVX512 is enabled. Disable
+ 	AVX512{PF,ER,4VNNIW,4FAMPS} for -mno-evex512.
+ 	* config/i386/i386.opt: Add mevex512. Temporaily RejectNegative.
+ 
+ 2023-10-09  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/88558
+ 	* config/rs6000/rs6000.md (lrint<mode>di2): Remove TARGET_FPRND
+ 	from insn condition.
+ 	(lrint<mode>si2): New insn pattern for 32bit lrint.
+ 
+ 2023-10-09  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/88558
+ 	* config/rs6000/rs6000.cc (rs6000_hard_regno_mode_ok_uncached):
+ 	Enable SImode on FP registers for P7.
+ 	* config/rs6000/rs6000.md (*movsi_internal1): Add fmr for SImode
+ 	move between FP registers.  Set attribute isa of stfiwx to "*"
+ 	and attribute of stxsiwx to "p7".
+ 
+ 2023-10-09  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.md: Make use of new copysign RTL.
+ 
+ 2023-10-09  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/sse.md (vec_concatv2di): Replace constraint "m"
+ 	with "jm" for alternative 0 and 1 of operand 2.
+ 	(sse4_1_<code><mode>3<mask_name>): Replace constraint "Bm" with
+ 	"ja" for alternative 0 and 1 of operand2.
+ 
+ 2023-10-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/111155
+ 	* text-art/table.cc (table::maybe_set_cell_span): New.
+ 	(table::add_other_table): New.
+ 	* text-art/table.h (class table::cell_placement): Add class table
+ 	as a friend.
+ 	(table::add_rows): New.
+ 	(table::add_row): Reimplement in terms of add_rows.
+ 	(table::maybe_set_cell_span): New decl.
+ 	(table::add_other_table): New decl.
+ 	* text-art/types.h (operator+): New operator for rect + coord.
+ 
+ 2023-10-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* genmatch.cc (main): Update for "m_" prefix of some fields of
+ 	line_maps.
+ 	* input.cc (make_location): Update for removal of
+ 	COMBINE_LOCATION_DATA.
+ 	(dump_line_table_statistics): Update for "m_" prefix of some
+ 	fields of line_maps.
+ 	(location_with_discriminator): Update for removal of
+ 	COMBINE_LOCATION_DATA.
+ 	(line_table_test::line_table_test): Update for "m_" prefix of some
+ 	fields of line_maps.
+ 	* toplev.cc (general_init): Likewise.
+ 	* tree.cc (set_block): Update for removal of
+ 	COMBINE_LOCATION_DATA.
+ 	(set_source_range): Likewise.
+ 
+ 2023-10-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* input.cc (make_location): Move implementation to
+ 	line_maps::make_location.
+ 
+ 2023-10-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR driver/111700
+ 	* input.cc (file_cache::add_file): Update leading comment to
+ 	clarify that it can fail.
+ 	(file_cache::lookup_or_add_file): Likewise.
+ 	(file_cache::get_source_file_content): Gracefully handle
+ 	lookup_or_add_file failing.
+ 
+ 2023-10-08  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_build_const_vector): Handle V2HF
+ 	and V4HFmode.
+ 	(ix86_build_signbit_mask): Ditto.
+ 	* config/i386/mmx.md (mmxintvecmode): Ditto.
+ 	(<code><mode>2): New define_expand.
+ 	(*mmx_<code><mode>): New define_insn_and_split.
+ 	(*mmx_nabs<mode>2): Ditto.
+ 	(*mmx_andnot<mode>3): New define_insn.
+ 	(<code><mode>3): Ditto.
+ 	(copysign<mode>3): New define_expand.
+ 	(xorsign<mode>3): Ditto.
+ 	(signbit<mode>2): Ditto.
+ 
+ 2023-10-08  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/mmx.md (VHF_32_64): New mode iterator.
+ 	(<insn><mode>3): New define_expand, merged from ..
+ 	(<insn>v4hf3): .. this and
+ 	(<insn>v2hf3): .. this.
+ 	(movd_v2hf_to_sse_reg): New define_expand, splitted from ..
+ 	(movd_v2hf_to_sse): .. this.
+ 	(<code><mode>3): New define_expand.
+ 
+ 2023-10-08  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (can_be_built_by_li_and_rldic): New function.
+ 	(rs6000_emit_set_long_const): Call can_be_built_by_li_and_rldic.
+ 
+ 2023-10-08  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (can_be_built_by_li_lis_and_rldicl): New
+ 	function.
+ 	(can_be_built_by_li_lis_and_rldicr): New function.
+ 	(rs6000_emit_set_long_const): Call can_be_built_by_li_lis_and_rldicr and
+ 	can_be_built_by_li_lis_and_rldicl.
+ 
+ 2023-10-08  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (can_be_rotated_to_negative_lis): New
+ 	function.
+ 	(can_be_built_by_li_and_rotldi): Rename to ...
+ 	(can_be_built_by_li_lis_and_rotldi): ... this function.
+ 	(rs6000_emit_set_long_const): Call can_be_built_by_li_lis_and_rotldi.
+ 
+ 2023-10-08  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (can_be_built_by_li_and_rotldi): New function.
+ 	(rs6000_emit_set_long_const): Call can_be_built_by_li_and_rotldi.
+ 
+ 2023-10-08  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 
+ 	* config/riscv/linux.h: Pass the static-pie specific options to
+ 	the linker.
+ 
+ 2023-10-07  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add support for
+ 	cortex-x4 core.
+ 	* config/aarch64/aarch64-tune.md: Regenerated.
+ 	* doc/invoke.texi: Add command-line option for cortex-x4 core.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/constraints.md (jb): New constraint for vsib memory
+ 	that does not allow gpr32.
+ 	* config/i386/i386.md: (setcc_<mode>_sse): Replace m to jm for avx
+ 	alternative and set attr_gpr32 to 0.
+ 	(movmsk_df): Split avx/noavx alternatives and  replace "r" to "jr" for
+ 	avx alternative.
+ 	(<sse>_rcp<mode>2): Split avx/noavx alternatives and replace
+ 	"m/Bm" to "jm/ja" for avx alternative, set its gpr32 attr to 0.
+ 	(*rsqrtsf2_sse): Likewise.
+ 	* config/i386/mmx.md (mmx_pmovmskb): Split alternative 1 to
+ 	avx/noavx and assign jr/r constraint to dest.
+ 	* config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxsizesuffix>):
+ 	Split avx/noavx alternatives and replace "r" to "jr" for avx alternative.
+ 	(*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): Likewise.
+ 	(*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt): Likewise.
+ 	(*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): Likewise.
+ 	(*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_shift): Likewise.
+ 	(*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): Likewise.
+ 	(<sse2_avx2>_pmovmskb): Likewise.
+ 	(*<sse2_avx2>_pmovmskb_zext): Likewise.
+ 	(*sse2_pmovmskb_ext): Likewise.
+ 	(*<sse2_avx2>_pmovmskb_lt): Likewise.
+ 	(*<sse2_avx2>_pmovmskb_zext_lt): Likewise.
+ 	(*sse2_pmovmskb_ext_lt): Likewise.
+ 	(<sse>_rcp<mode>2): Split avx/noavx alternatives and replace
+ 	"m/Bm" to "jm/ja" for avx alternative, set its attr_gpr32 to 0.
+ 	(sse_vmrcpv4sf2): Likewise.
+ 	(*sse_vmrcpv4sf2): Likewise.
+ 	(rsqrt<mode>2): Likewise.
+ 	(sse_vmrsqrtv4sf2): Likewise.
+ 	(*sse_vmrsqrtv4sf2): Likewise.
+ 	(avx_h<insn>v4df3): Likewise.
+ 	(sse3_hsubv2df3): Likewise.
+ 	(avx_h<insn>v8sf3): Likewise.
+ 	(sse3_h<insn>v4sf3): Likewise.
+ 	(<sse3>_lddqu<avxsizesuffix>): Likewise.
+ 	(avx_cmp<mode>3): Likewise.
+ 	(avx_vmcmp<mode>3): Likewise.
+ 	(*sse2_gt<mode>3): Likewise.
+ 	(sse_ldmxcsr): Likewise.
+ 	(sse_stmxcsr): Likewise.
+ 	(avx_vtest<ssemodesuffix><avxsizesuffix>): Replace m to jm for
+ 	avx alternative and set attr_gpr32 to 0.
+ 	(avx2_permv2ti): Likewise.
+ 	(*avx_vperm2f128<mode>_full): Likewise.
+ 	(*avx_vperm2f128<mode>_nozero): Likewise.
+ 	(vec_set_lo_v32qi): Likewise.
+ 	(<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Likewise.
+ 	(<avx_avx2>_maskstore<ssemodesuffix><avxsi)zesuffix>: Likewise.
+ 	(avx_cmp<mode>3): Likewise.
+ 	(avx_vmcmp<mode>3): Likewise.
+ 	(*<sse>_maskcmp<mode>3_comm): Likewise.
+ 	(*avx2_gathersi<VEC_GATHER_MODE:mode>): Replace Tv to jb and set
+ 	attr_gpr32 to 0.
+ 	(*avx2_gathersi<VEC_GATHER_MODE:mode>_2): Likewise.
+ 	(*avx2_gatherdi<VEC_GATHER_MODE:mode>): Likewise.
+ 	(*avx2_gatherdi<VEC_GATHER_MODE:mode>_2): Likewise.
+ 	(*avx2_gatherdi<VI4F_256:mode>_3): Likewise.
+ 	(*avx2_gatherdi<VI4F_256:mode>_4): Likewise.
+ 	(avx_vbroadcastf128_<mode>): Restrict non-egpr alternative to
+ 	noavx512vl, set its constraint to jm and set attr_gpr32 to 0.
+ 	(vec_set_lo_<mode><mask_name>): Likewise.
+ 	(vec_set_lo_<mode><mask_name>): Likewise for SF/SI modes.
+ 	(vec_set_hi_<mode><mask_name>): Likewise.
+ 	(vec_set_hi_<mode><mask_name>): Likewise for SF/SI modes.
+ 	(vec_set_hi_<mode>): Likewise.
+ 	(vec_set_lo_<mode>): Likewise.
+ 	(avx2_set_hi_v32qi): Likewise.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.md (*movhi_internal): Split out non-gpr
+ 	supported pextrw with mem constraint to avx/noavx alternatives,
+ 	set jm and attr gpr32 0 to the noavx alternative.
+ 	(*mov<mode>_internal): Likewise.
+ 	* config/i386/mmx.md (mmx_pshufbv8qi3): Change "r/m/Bm" to
+ 	"jr/jm/ja" and set_attr gpr32 0 for noavx alternative.
+ 	(mmx_pshufbv4qi3): Likewise.
+ 	(*mmx_pinsrd): Likewise.
+ 	(*mmx_pinsrb): Likewise.
+ 	(*pinsrb): Likewise.
+ 	(mmx_pshufbv8qi3): Likewise.
+ 	(mmx_pshufbv4qi3): Likewise.
+ 	(@sse4_1_insertps_<mode>): Likewise.
+ 	(*mmx_pextrw): Split altrenatives and map non-EGPR
+ 	constraints, attr_gpr32 and attr_isa to noavx mnemonics.
+ 	(*movv2qi_internal): Likewise.
+ 	(*pextrw): Likewise.
+ 	(*mmx_pextrb): Likewise.
+ 	(*mmx_pextrb_zext): Likewise.
+ 	(*pextrb): Likewise.
+ 	(*pextrb_zext): Likewise.
+ 	(vec_extractv2si_1): Likewise.
+ 	(vec_extractv2si_1_zext): Likewise.
+ 	* config/i386/sse.md: (vi128_h_r): New mode attr for
+ 	pinsr{bw}/pextr{bw} with reg operand.
+ 	(*abs<mode>2): Split altrenatives and %v in mnemonics, map
+ 	non-EGPR constraints, gpr32 and isa attrs to noavx mnemonics.
+ 	(*vec_extract<mode>): Likewise.
+ 	(*vec_extract<mode>): Likewise for HFBF pattern.
+ 	(*vec_extract<PEXTR_MODE12:mode>_zext): Likewise.
+ 	(*vec_extractv4si_1): Likewise.
+ 	(*vec_extractv4si_zext): Likewise.
+ 	(*vec_extractv2di_1): Likewise.
+ 	(*vec_concatv2si_sse4_1): Likewise.
+ 	(<sse2p4_1>_pinsr<ssemodesuffix>): Likewise.
+ 	(vec_concatv2di): Likewise.
+ 	(*sse4_1_<code>v2qiv2di2<mask_name>_1): Likewise.
+ 	(ssse3_avx2>_pshufb<mode>3<mask_name>): Change "r/m/Bm" to
+ 	"jr/jm/ja" and set_attr gpr32 0 for noavx alternative, split
+ 	%v for avx/noavx alternatives if necessary.
+ 	(*vec_concatv2sf_sse4_1): Likewise.
+ 	(*sse4_1_extractps): Likewise.
+ 	(vec_set<mode>_0): Likewise for VI4F_128.
+ 	(*vec_setv4sf_sse4_1): Likewise.
+ 	(@sse4_1_insertps<mode>): Likewise.
+ 	(ssse3_pmaddubsw128): Likewise.
+ 	(*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Likewise.
+ 	(<sse4_1_avx2>_packusdw<mask_name>): Likewise.
+ 	(<ssse3_avx2>_palignr<mode>): Likewise.
+ 	(<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
+ 	(<sse4_1_avx2>_mpsadbw): Likewise.
+ 	(*sse4_1_mulv2siv2di3<mask_name>): Likewise.
+ 	(*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
+ 	(*sse4_1_<code><mode>3<mask_name>): Likewise.
+ 	(*<code>v8hi3): Likewise.
+ 	(*<code>v16qi3): Likewise.
+ 	(*sse4_1_<code>v8qiv8hi2<mask_name>_1): Likewise.
+ 	(*sse4_1_zero_extendv8qiv8hi2_3): Likewise.
+ 	(*sse4_1_zero_extendv8qiv8hi2_4): Likewise.
+ 	(*sse4_1_<code>v4qiv4si2<mask_name>_1): Likewise.
+ 	(*sse4_1_<code>v4hiv4si2<mask_name>_1): Likewise.
+ 	(*sse4_1_zero_extendv4hiv4si2_3): Likewise.
+ 	(*sse4_1_zero_extendv4hiv4si2_4): Likewise.
+ 	(*sse4_1_<code>v2hiv2di2<mask_name>_1): Likewise.
+ 	(*sse4_1_<code>v2siv2di2<mask_name>_1): Likewise.
+ 	(*sse4_1_zero_extendv2siv2di2_3): Likewise.
+ 	(*sse4_1_zero_extendv2siv2di2_4): Likewise.
+ 	(aesdec): Likewise.
+ 	(aesdeclast): Likewise.
+ 	(aesenc): Likewise.
+ 	(aesenclast): Likewise.
+ 	(pclmulqdq): Likewise.
+ 	(vgf2p8affineinvqb_<mode><mask_name>): Likewise.
+ 	(vgf2p8affineqb_<mode><mask_name>): Likewise.
+ 	(vgf2p8mulb_<mode><mask_name>): Likewise.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-protos.h (x86_evex_reg_mentioned_p): New
+ 	prototype.
+ 	* config/i386/i386.cc (x86_evex_reg_mentioned_p): New
+ 	function.
+ 	* config/i386/i386.md (sse4_1_round<mode>2): Set attr gpr32 0
+ 	and constraint jm to all non-evex alternatives, adjust
+ 	alternative outputs if evex reg is mentioned.
+ 	* config/i386/sse.md (<sse4_1>_ptest<mode>): Set attr gpr32 0
+ 	and constraint jm/ja to all non-evex alternatives.
+ 	(ptesttf2): Likewise.
+ 	(<sse4_1>_round<ssemodesuffix><avxsizesuffix): Likewise.
+ 	(sse4_1_round<ssescalarmodesuffix>): Likewise.
+ 	(sse4_2_pcmpestri): Likewise.
+ 	(sse4_2_pcmpestrm): Likewise.
+ 	(sse4_2_pcmpestr_cconly): Likewise.
+ 	(sse4_2_pcmpistr): Likewise.
+ 	(sse4_2_pcmpistri): Likewise.
+ 	(sse4_2_pcmpistrm): Likewise.
+ 	(sse4_2_pcmpistr_cconly): Likewise.
+ 	(aesimc): Likewise.
+ 	(aeskeygenassist): Likewise.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3): Set
+ 	attr gpr32 0 and constraint jm/ja to all mem alternatives.
+ 	(ssse3_ph<plusminus_mnemonic>wv8hi3): Likewise.
+ 	(ssse3_ph<plusminus_mnemonic>wv4hi3): Likewise.
+ 	(avx2_ph<plusminus_mnemonic>dv8si3): Likewise.
+ 	(ssse3_ph<plusminus_mnemonic>dv4si3): Likewise.
+ 	(ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
+ 	(<ssse3_avx2>_psign<mode>3): Likewise.
+ 	(ssse3_psign<mode>3): Likewise.
+ 	(<sse4_1>_blend<ssemodesuffix><avxsizesuffix): Likewise.
+ 	(<sse4_1>_blendv<ssemodesuffix><avxsizesuffix): Likewise.
+ 	(*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt): Likewise.
+ 	(*<sse4_1>_blendv<ssefltmodesuff)ix><avxsizesuffix>_not_ltint: Likewise.
+ 	(<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
+ 	(<sse4_1_avx2>_mpsadbw): Likewise.
+ 	(<sse4_1_avx2>_pblendvb): Likewise.
+ 	(*<sse4_1_avx2>_pblendvb_lt): Likewise.
+ 	(sse4_1_pblend<ssemodesuffix>): Likewise.
+ 	(*avx2_pblend<ssemodesuffix>): Likewise.
+ 	(avx2_permv2ti): Likewise.
+ 	(*avx_vperm2f128<mode>_nozero): Likewise.
+ 	(*avx2_eq<mode>3): Likewise.
+ 	(*sse4_1_eqv2di3): Likewise.
+ 	(sse4_2_gtv2di3): Likewise.
+ 	(avx2_gt<mode>3): Likewise.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.md (<xsave>): Set attr gpr32 0 and constraint
+ 	jm.
+ 	(<xsave>_rex64): Likewise.
+ 	(<xrstor>_rex64): Likewise.
+ 	(<xrstor>64): Likewise.
+ 	(fxsave64): Likewise.
+ 	(fxstore64): Likewise.
+ 
+ 2023-10-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_get_ssemov): Check if egpr is used,
+ 	adjust mnemonic for vmovduq/vmovdqa.
+ 	* config/i386/sse.md (*<extract_type>_vinsert<shuffletype><extract_suf>_0):
+ 	Check if egpr is used, adjust mnemonic for vmovdqu/vmovdqa.
+ 	(avx_vec_concat<mode>): Likewise, and separate alternative 0 to
+ 	avx_noavx512f.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (map_egpr_constraints): New funciton to
+ 	map common constraints to EGPR prohibited constraints.
+ 	(ix86_md_asm_adjust): Calls map_egpr_constraints.
+ 	* config/i386/i386.opt: Add option mapx-inline-asm-use-gpr32.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-protos.h (ix86_insn_base_reg_class): New
+ 	prototype.
+ 	(ix86_regno_ok_for_insn_base_p): Likewise.
+ 	(ix86_insn_index_reg_class): Likewise.
+ 	* config/i386/i386.cc (ix86_memory_address_use_extended_reg_class_p):
+ 	New helper function to scan the insn.
+ 	(ix86_insn_base_reg_class): New function to choose BASE_REG_CLASS.
+ 	(ix86_regno_ok_for_insn_base_p): Likewise for base regno.
+ 	(ix86_insn_index_reg_class): Likewise for INDEX_REG_CLASS.
+ 	* config/i386/i386.h (INSN_BASE_REG_CLASS): Define.
+ 	(REGNO_OK_FOR_INSN_BASE_P): Likewise.
+ 	(INSN_INDEX_REG_CLASS): Likewise.
+ 	(enum reg_class): Add INDEX_GPR16.
+ 	(GENERAL_GPR16_REGNO_P): Define.
+ 	* config/i386/i386.md (gpr32): New attribute.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/constraints.md (jr): New register constraint
+ 	that prohibits EGPR.
+ 	(jR): Constraint that force usage of EGPR.
+ 	(jm): New memory constraint that prohibits EGPR.
+ 	(ja): Likewise for Bm constraint.
+ 	(jb): Likewise for Tv constraint.
+ 	(j<): New auto-dec memory constraint that prohibits EGPR.
+ 	(j>): Likewise for ">" constraint.
+ 	(jo): Likewise for "o" constraint.
+ 	(jv): Likewise for "V" constraint.
+ 	(jp): Likewise for "p" constraint.
+ 	* config/i386/i386.h (enum reg_class): Add new reg class
+ 	GENERAL_GPR16.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-protos.h (x86_extended_rex2reg_mentioned_p):
+ 	New function prototype.
+ 	* config/i386/i386.cc (regclass_map): Add mapping for 16 new
+ 	general registers.
+ 	(debugger64_register_map): Likewise.
+ 	(ix86_conditional_register_usage): Clear REX2 register when APX
+ 	disabled.
+ 	(ix86_code_end): Add handling for REX2 reg.
+ 	(print_reg): Likewise.
+ 	(ix86_output_jmp_thunk_or_indirect): Likewise.
+ 	(ix86_output_indirect_branch_via_reg): Likewise.
+ 	(ix86_attr_length_vex_default): Likewise.
+ 	(ix86_emit_save_regs): Adjust to allow saving r31.
+ 	(ix86_register_priority): Set REX2 reg priority same as REX.
+ 	(x86_extended_reg_mentioned_p): Add check for REX2 regs.
+ 	(x86_extended_rex2reg_mentioned_p): New function.
+ 	* config/i386/i386.h (CALL_USED_REGISTERS): Add new extended
+ 	registers.
+ 	(REG_ALLOC_ORDER): Likewise.
+ 	(FIRST_REX2_INT_REG): Define.
+ 	(LAST_REX2_INT_REG): Ditto.
+ 	(GENERAL_REGS): Add 16 new registers.
+ 	(INT_SSE_REGS): Likewise.
+ 	(FLOAT_INT_REGS): Likewise.
+ 	(FLOAT_INT_SSE_REGS): Likewise.
+ 	(INT_MASK_REGS): Likewise.
+ 	(ALL_REGS):Likewise.
+ 	(REX2_INT_REG_P): Define.
+ 	(REX2_INT_REGNO_P): Ditto.
+ 	(GENERAL_REGNO_P): Add REX2_INT_REGNO_P.
+ 	(REGNO_OK_FOR_INDEX_P): Ditto.
+ 	(REG_OK_FOR_INDEX_NONSTRICT_P): Add new extended registers.
+ 	* config/i386/i386.md: Add 16 new integer general
+ 	registers.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (XSTATE_APX_F): New macro.
+ 	(XCR_APX_F_ENABLED_MASK): Likewise.
+ 	(get_available_features): Detect APX_F under
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_APX_F_SET): New.
+ 	(OPTION_MASK_ISA2_APX_F_UNSET): Likewise.
+ 	(ix86_handle_option): Handle -mapxf.
+ 	* common/config/i386/i386-cpuinfo.h (FEATURE_APX_F): New.
+ 	* common/config/i386/i386-isas.h: Add entry for APX_F.
+ 	* config/i386/cpuid.h (bit_APX_F): New.
+ 	* config/i386/i386.h (bit_APX_F): (TARGET_APX_EGPR,
+ 	TARGET_APX_PUSH2POP2, TARGET_APX_NDD): New define.
+ 	* config/i386/i386-opts.h (enum apx_features): New enum.
+ 	* config/i386/i386-isa.def (APX_F): New DEF_PTA.
+ 	* config/i386/i386-options.cc (ix86_function_specific_save):
+ 	Save ix86_apx_features.
+ 	(ix86_function_specific_restore): Restore it.
+ 	(ix86_valid_target_attribute_inner_p): Add mapxf.
+ 	(ix86_option_override_internal): Set ix86_apx_features for PTA
+ 	and TARGET_APX_F. Also reports error when APX_F is set but not
+ 	having TARGET_64BIT.
+ 	* config/i386/i386.opt: (-mapxf): New ISA flag option.
+ 	(-mapx=): New enumeration option.
+ 	(apx_features): New enum type.
+ 	(apx_none): New enum value.
+ 	(apx_egpr): Likewise.
+ 	(apx_push2pop2): Likewise.
+ 	(apx_ndd): Likewise.
+ 	(apx_all): Likewise.
+ 	* doc/invoke.texi: Document mapxf.
+ 
+ 2023-10-07  Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* addresses.h (index_reg_class): New wrapper function like
+ 	base_reg_class.
+ 	* doc/tm.texi: Document INSN_INDEX_REG_CLASS.
+ 	* doc/tm.texi.in: Ditto.
+ 	* lra-constraints.cc (index_part_to_reg): Pass index_class.
+ 	(process_address_1): Calls index_reg_class with curr_insn and
+ 	replace INDEX_REG_CLASS with its return value index_cl.
+ 	* reload.cc (find_reloads_address): Likewise.
+ 	(find_reloads_address_1): Likewise.
+ 
+ 2023-10-07  Kong Lingling  <lingling.kong@intel.com>
+ 	    Hongyu Wang  <hongyu.wang@intel.com>
+ 	    Hongtao Liu  <hongtao.liu@intel.com>
+ 
+ 	* addresses.h (base_reg_class): Add insn argument and new macro
+ 	INSN_BASE_REG_CLASS.
+ 	(regno_ok_for_base_p_1): Add insn argument and new macro
+ 	REGNO_OK_FOR_INSN_BASE_P.
+ 	(regno_ok_for_base_p): Add insn argument and parse to ok_for_base_p_1.
+ 	* doc/tm.texi: Document INSN_BASE_REG_CLASS and
+ 	REGNO_OK_FOR_INSN_BASE_P.
+ 	* doc/tm.texi.in: Ditto.
+ 	* lra-constraints.cc (process_address_1): Pass insn to
+ 	base_reg_class.
+ 	(curr_insn_transform): Ditto.
+ 	* reload.cc (find_reloads): Ditto.
+ 	(find_reloads_address): Ditto.
+ 	(find_reloads_address_1): Ditto.
+ 	(find_reloads_subreg_address): Ditto.
+ 	* reload1.cc (maybe_fix_stack_asms): Ditto.
+ 
+ 2023-10-07  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR target/108338
+ 	* config/rs6000/rs6000.md (movsf_from_si): Update to generate mtvsrws
+ 	for P9.
+ 
+ 2023-10-07  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR target/108338
+ 	* config/rs6000/predicates.md (lowpart_subreg_operator): New
+ 	define_predicate.
+ 	* config/rs6000/rs6000.md (any_rshift): New code_iterator.
+ 	(movsf_from_si2): Rename to ...
+ 	(movsf_from_si2_<code>): ... this.
+ 
+ 2023-10-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/111634
+ 	* config/riscv/riscv.cc (riscv_legitimize_address): Ensure
+ 	object is a REG before extracting its' REGNO.
+ 
+ 2023-10-06  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_split_ashl): Split shifts by
+ 	one into add3_cc_overflow_1 followed by add3_carry.
+ 	* config/i386/i386.md (@add<mode>3_cc_overflow_1): Renamed from
+ 	"*add<mode>3_cc_overflow_1" to provide generator function.
+ 
+ 2023-10-06  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_avoid_lea_for_addr): Split LEAs used
+ 	to perform left shifts into shorter instructions with -Oz.
+ 
+ 2023-10-06  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md (mvconst_internal): Add !ira_in_progress.
+ 
+ 2023-10-06  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/extend.texi (Function Attributes): Mention standard attribute
+ 	syntax.
+ 	(Variable Attributes): Likewise.
+ 	(Type Attributes): Likewise.
+ 	(Attribute Syntax): Likewise.
+ 
+ 2023-10-06  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (*mov<mode>): Convert to compact syntax.
+ 	(mov<mode>_exec): Likewise.
+ 	(mov<mode>_sgprbase): Likewise.
+ 	* config/gcn/gcn.md (*mov<mode>_insn): Likewise.
+ 	(*movti_insn): Likewise.
+ 
+ 2023-10-06  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn.cc (print_operand): Adjust xcode type to fix warning.
+ 
+ 2023-10-06  Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR middle-end/111699
+ 	* match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e),
+ 	(v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Enable only for GIMPLE.
+ 
+ 2023-10-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* ipa-prop.h (ipa_bits): Remove.
+ 	(struct ipa_jump_func): Remove bits member.
+ 	(struct ipcp_transformation): Remove bits member, adjust
+ 	ctor and dtor.
+ 	(ipa_get_ipa_bits_for_value): Remove.
+ 	* ipa-prop.cc (struct ipa_bit_ggc_hash_traits): Remove.
+ 	(ipa_bits_hash_table): Remove.
+ 	(ipa_print_node_jump_functions_for_edge): Don't print bits.
+ 	(ipa_get_ipa_bits_for_value): Remove.
+ 	(ipa_set_jfunc_bits): Remove.
+ 	(ipa_compute_jump_functions_for_edge): For pointers query
+ 	pointer alignment before ipa_set_jfunc_vr and update_bitmask
+ 	in there.  For integral types, just rely on bitmask already
+ 	being handled in value ranges.
+ 	(ipa_check_create_edge_args): Don't create ipa_bits_hash_table.
+ 	(ipcp_transformation_initialize): Neither here.
+ 	(ipcp_transformation_t::duplicate): Don't copy bits vector.
+ 	(ipa_write_jump_function): Don't stream bits here.
+ 	(ipa_read_jump_function): Neither here.
+ 	(useful_ipcp_transformation_info_p): Don't test bits vec.
+ 	(write_ipcp_transformation_info): Don't stream bits here.
+ 	(read_ipcp_transformation_info): Neither here.
+ 	(ipcp_get_parm_bits): Get mask and value from m_vr rather
+ 	than bits.
+ 	(ipcp_update_bits): Remove.
+ 	(ipcp_update_vr): For pointers, set_ptr_info_alignment from
+ 	bitmask stored in value range.
+ 	(ipcp_transform_function): Don't test bits vector, don't call
+ 	ipcp_update_bits.
+ 	* ipa-cp.cc (propagate_bits_across_jump_function): Don't use
+ 	jfunc->bits, instead get mask and value from jfunc->m_vr.
+ 	(ipcp_store_bits_results): Remove.
+ 	(ipcp_store_vr_results): Incorporate parts of
+ 	ipcp_store_bits_results here, merge the bitmasks with value
+ 	range if both are supplied.
+ 	(ipcp_driver): Don't call ipcp_store_bits_results.
+ 	* ipa-sra.cc (zap_useless_ipcp_results): Remove *ts->bits
+ 	clearing.
+ 
+ 2023-10-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Update comments.
+ 
+ 2023-10-05  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Delete.
+ 
+ 2023-10-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* timevar.def (TV_TREE_FAST_VRP): New.
+ 	* tree-pass.h (make_pass_fast_vrp): New prototype.
+ 	* tree-vrp.cc (class fvrp_folder): New.
+ 	(fvrp_folder::fvrp_folder): New.
+ 	(fvrp_folder::~fvrp_folder): New.
+ 	(fvrp_folder::value_of_expr): New.
+ 	(fvrp_folder::value_on_edge): New.
+ 	(fvrp_folder::value_of_stmt): New.
+ 	(fvrp_folder::pre_fold_bb): New.
+ 	(fvrp_folder::post_fold_bb): New.
+ 	(fvrp_folder::pre_fold_stmt): New.
+ 	(fvrp_folder::fold_stmt): New.
+ 	(execute_fast_vrp): New.
+ 	(pass_data_fast_vrp): New.
+ 	(pass_vrp:execute): Check for fast VRP pass.
+ 	(make_pass_fast_vrp): New.
+ 
+ 2023-10-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range.cc (dom_ranger::dom_ranger): New.
+ 	(dom_ranger::~dom_ranger): New.
+ 	(dom_ranger::range_of_expr): New.
+ 	(dom_ranger::edge_range): New.
+ 	(dom_ranger::range_on_edge): New.
+ 	(dom_ranger::range_in_bb): New.
+ 	(dom_ranger::range_of_stmt): New.
+ 	(dom_ranger::maybe_push_edge): New.
+ 	(dom_ranger::pre_bb): New.
+ 	(dom_ranger::post_bb): New.
+ 	* gimple-range.h (class dom_ranger): New.
+ 
+ 2023-10-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (gori_stmt_info::gori_stmt_info): New.
+ 	(gori_calc_operands): New.
+ 	(gori_on_edge): New.
+ 	(gori_name_helper): New.
+ 	(gori_name_on_edge): New.
+ 	* gimple-range-gori.h (gori_on_edge): New prototype.
+ 	(gori_name_on_edge): New prototype.
+ 
+ 2023-10-05  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	PR ipa/111283
+ 	PR gcov-profile/111559
+ 	* ipa-utils.cc (ipa_merge_profiles): Avoid producing
+ 	uninitialized probabilities when merging counters with zero
+ 	denominators.
+ 
+ 2023-10-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/111657
+ 	* config/i386/i386-expand.cc (alg_usable_p): Reject libcall
+ 	strategy for non-default address spaces.
+ 	(decide_alg): Use loop strategy as a fallback strategy for
+ 	non-default address spaces.
+ 
+ 2023-10-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* sreal.cc (verify_aritmetics): Rename to ...
+ 	(verify_arithmetics): ... this.
+ 	(sreal_verify_arithmetics): Adjust caller.
+ 
+ 2023-10-05  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Revert:
+ 	2023-10-03  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/108007
+ 	* cgraph.h (cgraph_edge): Add a parameter to
+ 	redirect_call_stmt_to_callee.
+ 	* ipa-param-manipulation.h (ipa_param_adjustments): Add a
+ 	parameter to modify_call.
+ 	* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
+ 	parameter killed_ssas, pass it to padjs->modify_call.
+ 	* ipa-param-manipulation.cc (purge_transitive_uses): New function.
+ 	(ipa_param_adjustments::modify_call): New parameter killed_ssas.
+ 	Instead of substituting uses, invoke purge_transitive_uses.  If
+ 	hash of killed SSAs has not been provided, create a temporary one
+ 	and release SSAs that have been added to it.
+ 	* tree-inline.cc (redirect_all_calls): Create
+ 	id->killed_new_ssa_names earlier, pass it to edge redirection,
+ 	adjust a comment.
+ 	(copy_body): Release SSAs in id->killed_new_ssa_names.
+ 
+ 2023-10-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (@vec_series<mode>): Remove @.
+ 	(vec_series<mode>): Ditto.
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Ditto.
+ 	(shuffle_decompress_patterns): Ditto.
+ 
+ 2023-10-05  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc-passes.def: Remove arc_ifcvt pass.
+ 	* config/arc/arc-protos.h (arc_ccfsm_branch_deleted_p): Remove.
+ 	(arc_ccfsm_record_branch_deleted): Likewise.
+ 	(arc_ccfsm_cond_exec_p): Likewise.
+ 	(arc_ccfsm): Likewise.
+ 	(arc_ccfsm_record_condition): Likewise.
+ 	(make_pass_arc_ifcvt): Likewise.
+ 	* config/arc/arc.cc (arc_ccfsm): Remove.
+ 	(arc_ccfsm_current): Likewise.
+ 	(ARC_CCFSM_BRANCH_DELETED_P): Likewise.
+ 	(ARC_CCFSM_RECORD_BRANCH_DELETED): Likewise.
+ 	(ARC_CCFSM_COND_EXEC_P): Likewise.
+ 	(CCFSM_ISCOMPACT): Likewise.
+ 	(CCFSM_DBR_ISCOMPACT): Likewise.
+ 	(machine_function): Remove ccfsm related fields.
+ 	(arc_ifcvt): Remove pass.
+ 	(arc_print_operand): Remove `#` punct operand and other ccfsm
+ 	related code.
+ 	(arc_ccfsm_advance): Remove.
+ 	(arc_ccfsm_at_label): Likewise.
+ 	(arc_ccfsm_record_condition): Likewise.
+ 	(arc_ccfsm_post_advance): Likewise.
+ 	(arc_ccfsm_branch_deleted_p): Likewise.
+ 	(arc_ccfsm_record_branch_deleted): Likewise.
+ 	(arc_ccfsm_cond_exec_p): Likewise.
+ 	(arc_get_ccfsm_cond): Likewise.
+ 	(arc_final_prescan_insn): Remove ccfsm references.
+ 	(arc_internal_label): Likewise.
+ 	(arc_reorg): Likewise.
+ 	(arc_output_libcall): Likewise.
+ 	* config/arc/arc.md: Remove ccfsm references and update related
+ 	instruction patterns.
+ 
+ 2023-10-05  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc.cc (arc_init): Remove '^' punct char.
+ 	(arc_print_operand): Remove related code.
+ 	* config/arc/arc.md: Update patterns which uses '%&'.
+ 
+ 2023-10-05  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc-protos.h (arc_clear_unalign): Remove.
+ 	(arc_toggle_unalign): Likewise.
+ 	* config/arc/arc.cc (machine_function) Remove unalign.
+ 	(arc_init): Remove `&` punct character.
+ 	(arc_print_operand): Remove `&` related functions.
+ 	(arc_verify_short): Update function's number of parameters.
+ 	(output_short_suffix): Update function.
+ 	(arc_short_long): Likewise.
+ 	(arc_clear_unalign): Remove.
+ 	(arc_toggle_unalign): Likewise.
+ 	* config/arc/arc.h (ASM_OUTPUT_CASE_END): Remove.
+ 	(ASM_OUTPUT_ALIGN): Update.
+ 	* config/arc/arc.md: Remove all `%&` references.
+ 	* config/arc/arc.opt (mannotate-align): Ignore option.
+ 	* doc/invoke.texi (mannotate-align): Update description.
+ 
+ 2023-10-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Do not
+ 	ask for internal_fn_p (CFN_LAST).
+ 
+ 2023-10-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Not
+ 	visited value numbers are available itself.
+ 
+ 2023-10-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/111643
+ 	* doc/extend.texi (attribute flatten): Clarify.
+ 
+ 2023-10-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc-protos.h (emit_shift): Delete prototype.
+ 	(arc_pre_reload_split): New function prototype.
+ 	* config/arc/arc.cc (emit_shift): Delete function.
+ 	(arc_pre_reload_split): New predicate function, copied from i386,
+ 	to schedule define_insn_and_split splitters to the split1 pass.
+ 	* config/arc/arc.md (ashlsi3): Expand RTL template unconditionally.
+ 	(ashrsi3): Likewise.
+ 	(lshrsi3): Likewise.
+ 	(shift_si3): Move after other shift patterns, and disable when
+ 	operands[2] is one (which is handled by its own define_insn).
+ 	Use shiftr4_operator, instead of shift4_operator, as this is no
+ 	longer used for left shifts.
+ 	(shift_si3_loop): Likewise.  Additionally remove match_scratch.
+ 	(*ashlsi3_nobs): New pre-reload define_insn_and_split.
+ 	(*ashrsi3_nobs): Likewise.
+ 	(*lshrsi3_nobs): Likewise.
+ 	(rotrsi3_cnt1): Rename define_insn from *rotrsi3_cnt1.
+ 	(add_shift): Rename define_insn from *add_shift.
+ 	* config/arc/predicates.md (shiftl4_operator): Delete.
+ 	(shift4_operator): Delete.
+ 
+ 2023-10-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.md (ashlsi3_cnt1): Rename define_insn *ashlsi2_cnt1.
+ 	Change type attribute to "unary", as this doesn't have operands[2].
+ 	Change length attribute to "*,4" to allow compact representation.
+ 	(lshrsi3_cnt1): Rename define_insn from *lshrsi3_cnt1.  Change
+ 	insn type attribute to "unary", as this doesn't have operands[2].
+ 	(ashrsi3_cnt1): Rename define_insn from *ashrsi3_cnt1.  Change
+ 	insn type attribute to "unary", as this doesn't have operands[2].
+ 
+ 2023-10-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR rtl-optimization/110701
+ 	* combine.cc (record_dead_and_set_regs_1): Split comment into
+ 	pieces placed before the relevant clauses.  When the SET_DEST
+ 	is a partial_subreg_p, mark the bits outside of the updated
+ 	portion of the destination as undefined.
+ 
+ 2023-10-04  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR bootstrap/111664
+ 	* opt-read.awk: Drop multidimensional arrays.
+ 	* opth-gen.awk: Ditto.
+ 
+ 2023-10-04  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (UNSPEC_FCOPYSIGN): Delete.
+ 	(copysign<mode>3): Use copysign RTL instead of UNSPEC.
+ 
+ 2023-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/111369
+ 	* match.pd (x == cstN ? cst4 : cst3): Use
+ 	build_nonstandard_integer_type only if type1 is BOOLEAN_TYPE.
+ 	Fix comment typo.  Formatting fix.
+ 	(a?~t:t -> (-(a))^t): Always convert to type rather
+ 	than using build_nonstandard_integer_type.  Perform negation
+ 	only if type has precision > 1 and is not signed BOOLEAN_TYPE.
+ 
+ 2023-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/111668
+ 	* match.pd (a ? CST1 : CST2): Handle the a ? -1 : 0 and
+ 	a ? 0 : -1 cases before the powerof2cst cases and differentiate
+ 	between 1-bit precision types, larger precision boolean types
+ 	and other integral types.  Fix comment pastos and formatting.
+ 
+ 2023-10-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* tree-ssanames.cc (set_range_info): Use get_ptr_info for
+ 	pointers rather than range_info_get_range.
+ 
+ 2023-10-03  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-modref.h (modref_summary::dump): Make const.
+ 	* ipa-modref.cc (modref_summary::dump): Likewise.
+ 	(dump_lto_records): Dump to out instead of dump_file.
+ 
+ 2023-10-03  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/110378
+ 	* ipa-param-manipulation.cc
+ 	(ipa_param_body_adjustments::mark_dead_statements): Verify that any
+ 	return uses of PARAM will be removed.
+ 	(ipa_param_body_adjustments::mark_clobbers_dead): Likewise.
+ 	* ipa-sra.cc (isra_param_desc): New fields
+ 	remove_only_when_retval_removed and split_only_when_retval_removed.
+ 	(struct gensum_param_desc): Likewise.  Fix comment long line.
+ 	(ipa_sra_function_summaries::duplicate): Copy the new flags.
+ 	(dump_gensum_param_descriptor): Dump the new flags.
+ 	(dump_isra_param_descriptor): Likewise.
+ 	(isra_track_scalar_value_uses): New parameter desc.  Set its flag
+ 	remove_only_when_retval_removed when encountering a simple return.
+ 	(isra_track_scalar_param_local_uses): Replace parameter call_uses_p
+ 	with desc.  Pass it to isra_track_scalar_value_uses and set its
+ 	call_uses.
+ 	(ptr_parm_has_nonarg_uses): Accept parameter descriptor as a
+ 	parameter.  If there is a direct return use, mark any..
+ 	(create_parameter_descriptors): Pass the whole parameter descriptor to
+ 	isra_track_scalar_param_local_uses and ptr_parm_has_nonarg_uses.
+ 	(process_scan_results): Copy the new flags.
+ 	(isra_write_node_summary): Stream the new flags.
+ 	(isra_read_node_info): Likewise.
+ 	(adjust_parameter_descriptions): Check that transformations
+ 	requring return removal only happen when return value is removed.
+ 	Restructure main loop.  Adjust dump message.
+ 
+ 2023-10-03  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/108007
+ 	* cgraph.h (cgraph_edge): Add a parameter to
+ 	redirect_call_stmt_to_callee.
+ 	* ipa-param-manipulation.h (ipa_param_adjustments): Add a
+ 	parameter to modify_call.
+ 	* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
+ 	parameter killed_ssas, pass it to padjs->modify_call.
+ 	* ipa-param-manipulation.cc (purge_transitive_uses): New function.
+ 	(ipa_param_adjustments::modify_call): New parameter killed_ssas.
+ 	Instead of substituting uses, invoke purge_transitive_uses.  If
+ 	hash of killed SSAs has not been provided, create a temporary one
+ 	and release SSAs that have been added to it.
+ 	* tree-inline.cc (redirect_all_calls): Create
+ 	id->killed_new_ssa_names earlier, pass it to edge redirection,
+ 	adjust a comment.
+ 	(copy_body): Release SSAs in id->killed_new_ssa_names.
+ 
+ 2023-10-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* passes.def (pass_vrp): Pass "final pass" flag as parameter.
+ 	* tree-vrp.cc (vrp_pass_num): Remove.
+ 	(pass_vrp::my_pass): Remove.
+ 	(pass_vrp::pass_vrp): Add warn_p as a parameter.
+ 	(pass_vrp::final_p): New.
+ 	(pass_vrp::set_pass_param): Set final_p param.
+ 	(pass_vrp::execute): Call execute_range_vrp with no conditions.
+ 	(make_pass_vrp): Pass additional parameter.
+ 	(make_pass_early_vrp): Ditto.
+ 
+ 2023-10-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* tree-ssanames.cc (set_range_info): Return true only if the
+ 	current value changes.
+ 
+ 2023-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_set_info_translated): Update for "m_"
+ 	prefixes to text_info fields.
+ 	(diagnostic_report_diagnostic): Likewise.
+ 	(verbatim): Use text_info ctor.
+ 	(simple_diagnostic_path::add_event): Likewise.
+ 	(simple_diagnostic_path::add_thread_event): Likewise.
+ 	* dumpfile.cc (dump_pretty_printer::decode_format): Update for
+ 	"m_" prefixes to text_info fields.
+ 	(dump_context::dump_printf_va): Use text_info ctor.
+ 	* graphviz.cc (graphviz_out::graphviz_out): Use text_info ctor.
+ 	(graphviz_out::print): Likewise.
+ 	* opt-problem.cc (opt_problem::opt_problem): Likewise.
+ 	* pretty-print.cc (pp_format): Update for "m_" prefixes to
+ 	text_info fields.
+ 	(pp_printf): Use text_info ctor.
+ 	(pp_verbatim): Likewise.
+ 	(assert_pp_format_va): Likewise.
+ 	* pretty-print.h (struct text_info): Add ctors.  Add "m_" prefix
+ 	to all fields.
+ 	* text-art/styled-string.cc (styled_string::from_fmt_va): Use
+ 	text_info ctor.
+ 	* tree-diagnostic.cc (default_tree_printer): Update for "m_"
+ 	prefixes to text_info fields.
+ 	* tree-pretty-print.h (pp_ti_abstract_origin): Likewise.
+ 
+ 2023-10-03  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/arc/arc.md (CC_ltu): New mode iterator for CC and CC_C.
+ 	(scc_ltu_<mode>): New define_insn to handle LTU form of scc_insn.
+ 	(*scc_insn): Don't split to a conditional move sequence for LTU.
+ 
+ 2023-10-03  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (@ccmp<CC_ONLY:mode><GPI:mode>)
+ 	(@ccmp<CC_ONLY:mode><GPI:mode>_rev, *call_insn, *call_value_insn)
+ 	(*mov<mode>_aarch64, load_pair_sw_<SX:mode><SX2:mode>)
+ 	(load_pair_dw_<DX:mode><DX2:mode>)
+ 	(store_pair_sw_<SX:mode><SX2:mode>)
+ 	(store_pair_dw_<DX:mode><DX2:mode>, *extendsidi2_aarch64)
+ 	(*zero_extendsidi2_aarch64, *load_pair_zero_extendsidi2_aarch64)
+ 	(*extend<SHORT:mode><GPI:mode>2_aarch64)
+ 	(*zero_extend<SHORT:mode><GPI:mode>2_aarch64)
+ 	(*extendqihi2_aarch64, *zero_extendqihi2_aarch64)
+ 	(*add<mode>3_aarch64, *addsi3_aarch64_uxtw, *add<mode>3_poly_1)
+ 	(add<mode>3_compare0, *addsi3_compare0_uxtw)
+ 	(*add<mode>3_compareC_cconly, add<mode>3_compareC)
+ 	(*add<mode>3_compareV_cconly_imm, add<mode>3_compareV_imm)
+ 	(*add<mode>3nr_compare0, subdi3, subv<GPI:mode>_imm)
+ 	(*cmpv<GPI:mode>_insn, sub<mode>3_compare1_imm, neg<mode>2)
+ 	(cmp<mode>, fcmp<mode>, fcmpe<mode>, *cmov<mode>_insn)
+ 	(*cmovsi_insn_uxtw, <optab><mode>3, *<optab>si3_uxtw)
+ 	(*and<mode>3_compare0, *andsi3_compare0_uxtw, one_cmpl<mode>2)
+ 	(*<NLOGICAL:optab>_one_cmpl<mode>3, *and<mode>3nr_compare0)
+ 	(*aarch64_ashl_sisd_or_int_<mode>3)
+ 	(*aarch64_lshr_sisd_or_int_<mode>3)
+ 	(*aarch64_ashr_sisd_or_int_<mode>3, *ror<mode>3_insn)
+ 	(*<optab>si3_insn_uxtw, <optab>_trunc<fcvt_target><GPI:mode>2)
+ 	(<optab><fcvt_target><GPF:mode>2)
+ 	(<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3)
+ 	(<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3)
+ 	(*aarch64_<optab><mode>3_cssc, copysign<GPF:mode>3_insn): Update
+ 	to new syntax.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_scatter_stnt<mode>)
+ 	(@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
+ 	(*aarch64_mul_unpredicated_<mode>)
+ 	(@aarch64_pred_<sve_int_op><mode>, *cond_<sve_int_op><mode>_2)
+ 	(*cond_<sve_int_op><mode>_3, *cond_<sve_int_op><mode>_any)
+ 	(*cond_<sve_int_op><mode>_z, @aarch64_pred_<sve_int_op><mode>)
+ 	(*cond_<sve_int_op><mode>_2, *cond_<sve_int_op><mode>_3)
+ 	(*cond_<sve_int_op><mode>_any, @aarch64_sve_<sve_int_op><mode>)
+ 	(@aarch64_sve_<sve_int_op>_lane_<mode>)
+ 	(@aarch64_sve_add_mul_lane_<mode>)
+ 	(@aarch64_sve_sub_mul_lane_<mode>, @aarch64_sve2_xar<mode>)
+ 	(*aarch64_sve2_bcax<mode>, @aarch64_sve2_eor3<mode>)
+ 	(*aarch64_sve2_nor<mode>, *aarch64_sve2_nand<mode>)
+ 	(*aarch64_sve2_bsl<mode>, *aarch64_sve2_nbsl<mode>)
+ 	(*aarch64_sve2_bsl1n<mode>, *aarch64_sve2_bsl2n<mode>)
+ 	(*aarch64_sve2_sra<mode>, @aarch64_sve_add_<sve_int_op><mode>)
+ 	(*aarch64_sve2_<su>aba<mode>, @aarch64_sve_add_<sve_int_op><mode>)
+ 	(@aarch64_sve_add_<sve_int_op>_lane_<mode>)
+ 	(@aarch64_sve_qadd_<sve_int_op><mode>)
+ 	(@aarch64_sve_qadd_<sve_int_op>_lane_<mode>)
+ 	(@aarch64_sve_sub_<sve_int_op><mode>)
+ 	(@aarch64_sve_sub_<sve_int_op>_lane_<mode>)
+ 	(@aarch64_sve_qsub_<sve_int_op><mode>)
+ 	(@aarch64_sve_qsub_<sve_int_op>_lane_<mode>)
+ 	(@aarch64_sve_<sve_fp_op><mode>, @aarch64_<sve_fp_op>_lane_<mode>)
+ 	(@aarch64_pred_<sve_int_op><mode>)
+ 	(@aarch64_pred_<sve_fp_op><mode>, *cond_<sve_int_op><mode>_2)
+ 	(*cond_<sve_int_op><mode>_z, @aarch64_sve_<optab><mode>)
+ 	(@aarch64_<optab>_lane_<mode>, @aarch64_sve_<optab><mode>)
+ 	(@aarch64_<optab>_lane_<mode>, @aarch64_pred_<sve_fp_op><mode>)
+ 	(*cond_<sve_fp_op><mode>_any_relaxed)
+ 	(*cond_<sve_fp_op><mode>_any_strict)
+ 	(@aarch64_pred_<sve_int_op><mode>, *cond_<sve_int_op><mode>)
+ 	(@aarch64_pred_<sve_fp_op><mode>, *cond_<sve_fp_op><mode>)
+ 	(*cond_<sve_fp_op><mode>_strict): Update to new syntax.
+ 	* config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_ldr_str)
+ 	(*aarch64_sve_mov<mode>_no_ldr_str, @aarch64_pred_mov<mode>)
+ 	(*aarch64_sve_mov<mode>, aarch64_wrffr)
+ 	(mask_scatter_store<mode><v_int_container>)
+ 	(*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked)
+ 	(*mask_scatter_store<mode><v_int_container>_sxtw)
+ 	(*mask_scatter_store<mode><v_int_container>_uxtw)
+ 	(@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
+ 	(@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
+ 	(*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
+ 	(*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw)
+ 	(*vec_duplicate<mode>_reg, vec_shl_insert_<mode>)
+ 	(vec_series<mode>, @extract_<last_op>_<mode>)
+ 	(@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2)
+ 	(*cond_<optab><mode>_any, @aarch64_pred_<optab><mode>)
+ 	(@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>)
+ 	(@cond_<optab><mode>)
+ 	(*<optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2)
+ 	(@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>)
+ 	(@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>)
+ 	(*cond_uxt<mode>_2, *cond_uxt<mode>_any, *cnot<mode>)
+ 	(*cond_cnot<mode>_2, *cond_cnot<mode>_any)
+ 	(@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2_relaxed)
+ 	(*cond_<optab><mode>_2_strict, *cond_<optab><mode>_any_relaxed)
+ 	(*cond_<optab><mode>_any_strict, @aarch64_pred_<optab><mode>)
+ 	(*cond_<optab><mode>_2, *cond_<optab><mode>_3)
+ 	(*cond_<optab><mode>_any, add<mode>3, sub<mode>3)
+ 	(@aarch64_pred_<su>abd<mode>, *aarch64_cond_<su>abd<mode>_2)
+ 	(*aarch64_cond_<su>abd<mode>_3, *aarch64_cond_<su>abd<mode>_any)
+ 	(@aarch64_sve_<optab><mode>, @aarch64_pred_<optab><mode>)
+ 	(*cond_<optab><mode>_2, *cond_<optab><mode>_z)
+ 	(@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2)
+ 	(*cond_<optab><mode>_3, *cond_<optab><mode>_any, <optab><mode>3)
+ 	(*cond_bic<mode>_2, *cond_bic<mode>_any)
+ 	(@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2_const)
+ 	(*cond_<optab><mode>_any_const, *cond_<sve_int_op><mode>_m)
+ 	(*cond_<sve_int_op><mode>_z, *sdiv_pow2<mode>3)
+ 	(*cond_<sve_int_op><mode>_2, *cond_<sve_int_op><mode>_any)
+ 	(@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2_relaxed)
+ 	(*cond_<optab><mode>_2_strict, *cond_<optab><mode>_any_relaxed)
+ 	(*cond_<optab><mode>_any_strict, @aarch64_pred_<optab><mode>)
+ 	(*cond_<optab><mode>_2_relaxed, *cond_<optab><mode>_2_strict)
+ 	(*cond_<optab><mode>_2_const_relaxed)
+ 	(*cond_<optab><mode>_2_const_strict)
+ 	(*cond_<optab><mode>_3_relaxed, *cond_<optab><mode>_3_strict)
+ 	(*cond_<optab><mode>_any_relaxed, *cond_<optab><mode>_any_strict)
+ 	(*cond_<optab><mode>_any_const_relaxed)
+ 	(*cond_<optab><mode>_any_const_strict)
+ 	(@aarch64_pred_<optab><mode>, *cond_add<mode>_2_const_relaxed)
+ 	(*cond_add<mode>_2_const_strict)
+ 	(*cond_add<mode>_any_const_relaxed)
+ 	(*cond_add<mode>_any_const_strict, @aarch64_pred_<optab><mode>)
+ 	(*cond_<optab><mode>_2_relaxed, *cond_<optab><mode>_2_strict)
+ 	(*cond_<optab><mode>_any_relaxed, *cond_<optab><mode>_any_strict)
+ 	(@aarch64_pred_<optab><mode>, *cond_sub<mode>_3_const_relaxed)
+ 	(*cond_sub<mode>_3_const_strict, *cond_sub<mode>_const_relaxed)
+ 	(*cond_sub<mode>_const_strict, *aarch64_pred_abd<mode>_relaxed)
+ 	(*aarch64_pred_abd<mode>_strict)
+ 	(*aarch64_cond_abd<mode>_2_relaxed)
+ 	(*aarch64_cond_abd<mode>_2_strict)
+ 	(*aarch64_cond_abd<mode>_3_relaxed)
+ 	(*aarch64_cond_abd<mode>_3_strict)
+ 	(*aarch64_cond_abd<mode>_any_relaxed)
+ 	(*aarch64_cond_abd<mode>_any_strict, @aarch64_pred_<optab><mode>)
+ 	(@aarch64_pred_fma<mode>, *cond_fma<mode>_2, *cond_fma<mode>_4)
+ 	(*cond_fma<mode>_any, @aarch64_pred_fnma<mode>)
+ 	(*cond_fnma<mode>_2, *cond_fnma<mode>_4, *cond_fnma<mode>_any)
+ 	(<sur>dot_prod<vsi2qi>, @aarch64_<sur>dot_prod_lane<vsi2qi>)
+ 	(@<sur>dot_prod<vsi2qi>, @aarch64_<sur>dot_prod_lane<vsi2qi>)
+ 	(@aarch64_sve_add_<optab><vsi2qi>, @aarch64_pred_<optab><mode>)
+ 	(*cond_<optab><mode>_2_relaxed, *cond_<optab><mode>_2_strict)
+ 	(*cond_<optab><mode>_4_relaxed, *cond_<optab><mode>_4_strict)
+ 	(*cond_<optab><mode>_any_relaxed, *cond_<optab><mode>_any_strict)
+ 	(@aarch64_<optab>_lane_<mode>, @aarch64_pred_<optab><mode>)
+ 	(*cond_<optab><mode>_4_relaxed, *cond_<optab><mode>_4_strict)
+ 	(*cond_<optab><mode>_any_relaxed, *cond_<optab><mode>_any_strict)
+ 	(@aarch64_<optab>_lane_<mode>, @aarch64_sve_tmad<mode>)
+ 	(@aarch64_sve_<sve_fp_op>vnx4sf)
+ 	(@aarch64_sve_<sve_fp_op>_lanevnx4sf)
+ 	(@aarch64_sve_<sve_fp_op><mode>, *vcond_mask_<mode><vpred>)
+ 	(@aarch64_sel_dup<mode>, @aarch64_pred_cmp<cmp_op><mode>)
+ 	(*cmp<cmp_op><mode>_cc, *cmp<cmp_op><mode>_ptest)
+ 	(@aarch64_pred_fcm<cmp_op><mode>, @fold_extract_<last_op>_<mode>)
+ 	(@aarch64_fold_extract_vector_<last_op>_<mode>)
+ 	(@aarch64_sve_splice<mode>)
+ 	(@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>)
+ 	(@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>)
+ 	(*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed)
+ 	(*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict)
+ 	(*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>)
+ 	(@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>)
+ 	(@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>)
+ 	(*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed)
+ 	(*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict)
+ 	(*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>)
+ 	(@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>)
+ 	(*cond_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>)
+ 	(@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
+ 	(*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
+ 	(@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>)
+ 	(*cond_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>)
+ 	(@aarch64_brk<brk_op>, *aarch64_sve_<inc_dec><mode>_cntp): Update
+ 	to new syntax.
+ 	* config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>)
+ 	(load_pair<DREG:mode><DREG2:mode>)
+ 	(vec_store_pair<DREG:mode><DREG2:mode>, aarch64_simd_stp<mode>)
+ 	(aarch64_simd_mov_from_<mode>low)
+ 	(aarch64_simd_mov_from_<mode>high, and<mode>3<vczle><vczbe>)
+ 	(ior<mode>3<vczle><vczbe>, aarch64_simd_ashr<mode><vczle><vczbe>)
+ 	(aarch64_simd_bsl<mode>_internal<vczle><vczbe>)
+ 	(*aarch64_simd_bsl<mode>_alt<vczle><vczbe>)
+ 	(aarch64_simd_bsldi_internal, aarch64_simd_bsldi_alt)
+ 	(store_pair_lanes<mode>, *aarch64_combine_internal<mode>)
+ 	(*aarch64_combine_internal_be<mode>, *aarch64_combinez<mode>)
+ 	(*aarch64_combinez_be<mode>)
+ 	(aarch64_cm<optab><mode><vczle><vczbe>, *aarch64_cm<optab>di)
+ 	(aarch64_cm<optab><mode><vczle><vczbe>, *aarch64_mov<mode>)
+ 	(*aarch64_be_mov<mode>, *aarch64_be_movoi): Update to new syntax.
+ 
+ 2023-10-03  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* gensupport.cc (convert_syntax): Skip spaces before "cons:"
+ 	in new compact pattern syntax.
+ 
+ 2023-10-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gensupport.cc (convert_syntax): Updated to support unordered
+ 	constraints in compact syntax.
+ 
+ 2023-10-02  Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.md (UNSPEC_COPYSIGN): Delete.
+ 	(copysign<mode>3_fcpsg): Use copysign RTL instead of UNSPEC.
+ 	(copysign<mode>3_hard): Likewise.
+ 	(copysign<mode>3_soft): Likewise.
+ 	* config/rs6000/vector.md (vector_copysign<mode>3): Use copysign RTL
+ 	instead of UNSPEC.
+ 	* config/rs6000/vsx.md (vsx_copysign<mode>3): Use copysign RTL instead
+ 	of UNSPEC.
+ 
+ 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc (toplevel_array): Remove global in
+ 	favor of json_output_format::m_top_level_array.
+ 	(cur_group): Likewise, for json_output_format::m_cur_group.
+ 	(cur_children_array): Likewise, for
+ 	json_output_format::m_cur_children_array.
+ 	(class json_output_format): New.
+ 	(json_begin_diagnostic): Remove, in favor of
+ 	json_output_format::on_begin_diagnostic.
+ 	(json_end_diagnostic): Convert to...
+ 	(json_output_format::on_end_diagnostic): ...this.
+ 	(json_begin_group): Remove, in favor of
+ 	json_output_format::on_begin_group.
+ 	(json_end_group): Remove, in favor of
+ 	json_output_format::on_end_group.
+ 	(json_flush_to_file): Remove, in favor of
+ 	json_output_format::flush_to_file.
+ 	(json_stderr_final_cb): Remove, in favor of json_output_format
+ 	dtor.
+ 	(json_output_base_file_name): Remove global.
+ 	(class json_stderr_output_format): New.
+ 	(json_file_final_cb): Remove.
+ 	(class json_file_output_format): New.
+ 	(json_emit_diagram): Remove.
+ 	(diagnostic_output_format_init_json): Update.
+ 	(diagnostic_output_format_init_json_file): Update.
+ 	* diagnostic-format-sarif.cc (the_builder): Remove this global,
+ 	moving to a field of the sarif_output_format.
+ 	(sarif_builder::maybe_make_artifact_content_object): Use the
+ 	context's m_file_cache.
+ 	(get_source_lines): Convert to...
+ 	(sarif_builder::get_source_lines): ...this, using context's
+ 	m_file_cache.
+ 	(sarif_begin_diagnostic): Remove, in favor of
+ 	sarif_output_format::on_begin_diagnostic.
+ 	(sarif_end_diagnostic): Remove, in favor of
+ 	sarif_output_format::on_end_diagnostic.
+ 	(sarif_begin_group): Remove, in favor of
+ 	sarif_output_format::on_begin_group.
+ 	(sarif_end_group): Remove, in favor of
+ 	sarif_output_format::on_end_group.
+ 	(sarif_flush_to_file): Delete.
+ 	(sarif_stderr_final_cb): Delete.
+ 	(sarif_output_base_file_name): Delete.
+ 	(sarif_file_final_cb): Delete.
+ 	(class sarif_output_format): New.
+ 	(sarif_emit_diagram): Delete.
+ 	(class sarif_stream_output_format): New.
+ 	(class sarif_file_output_format): New.
+ 	(diagnostic_output_format_init_sarif): Update.
+ 	(diagnostic_output_format_init_sarif_stderr): Update.
+ 	(diagnostic_output_format_init_sarif_file): Update.
+ 	(diagnostic_output_format_init_sarif_stream): Update.
+ 	* diagnostic-show-locus.cc (diagnostic_show_locus): Update.
+ 	* diagnostic.cc (default_diagnostic_final_cb): Delete, moving to
+ 	diagnostic_text_output_format's dtor.
+ 	(diagnostic_initialize): Update, making a new instance of
+ 	diagnostic_text_output_format.
+ 	(diagnostic_finish): Delete m_output_format, rather than calling
+ 	final_cb.
+ 	(diagnostic_report_diagnostic): Assert that m_output_format is
+ 	non-NULL.  Replace call to begin_group_cb with call to
+ 	m_output_format->on_begin_group.  Replace call to
+ 	diagnostic_starter with call to
+ 	m_output_format->on_begin_diagnostic.  Replace call to
+ 	diagnostic_finalizer with call to
+ 	m_output_format->on_end_diagnostic.
+ 	(diagnostic_emit_diagram): Replace both optional call to
+ 	m_diagrams.m_emission_cb and default implementation with call to
+ 	m_output_format->on_diagram.  Move default implementation to
+ 	diagnostic_text_output_format::on_diagram.
+ 	(auto_diagnostic_group::~auto_diagnostic_group): Replace call to
+ 	end_group_cb with call to m_output_format->on_end_group.
+ 	(diagnostic_text_output_format::~diagnostic_text_output_format):
+ 	New, based on default_diagnostic_final_cb.
+ 	(diagnostic_text_output_format::on_begin_diagnostic): New, based
+ 	on code from diagnostic_report_diagnostic.
+ 	(diagnostic_text_output_format::on_end_diagnostic): Likewise.
+ 	(diagnostic_text_output_format::on_diagram): New, based on code
+ 	from diagnostic_emit_diagram.
+ 	* diagnostic.h (class diagnostic_output_format): New.
+ 	(class diagnostic_text_output_format): New.
+ 	(diagnostic_context::begin_diagnostic): Move to...
+ 	(diagnostic_context::m_text_callbacks::begin_diagnostic): ...here.
+ 	(diagnostic_context::start_span): Move to...
+ 	(diagnostic_context::m_text_callbacks::start_span): ...here.
+ 	(diagnostic_context::end_diagnostic): Move to...
+ 	(diagnostic_context::m_text_callbacks::end_diagnostic): ...here.
+ 	(diagnostic_context::begin_group_cb): Remove, in favor of
+ 	m_output_format->on_begin_group.
+ 	(diagnostic_context::end_group_cb): Remove, in favor of
+ 	m_output_format->on_end_group.
+ 	(diagnostic_context::final_cb): Remove, in favor of
+ 	m_output_format's dtor.
+ 	(diagnostic_context::m_output_format): New field.
+ 	(diagnostic_context::m_diagrams.m_emission_cb): Remove, in favor
+ 	of m_output_format->on_diagram.
+ 	(diagnostic_starter): Update.
+ 	(diagnostic_finalizer): Update.
+ 	(diagnostic_output_format_init_sarif_stream): New.
+ 	* input.cc (location_get_source_line): Move implementation apart from
+ 	call to diagnostic_file_cache_init to...
+ 	(file_cache::get_source_line): ...this new function...
+ 	(location_get_source_line): ...and reintroduce, rewritten in terms of
+ 	file_cache::get_source_line.
+ 	(get_source_file_content): Likewise, refactor into...
+ 	(file_cache::get_source_file_content): ...this new function.
+ 	* input.h (file_cache::get_source_line): New decl.
+ 	(file_cache::get_source_file_content): New decl.
+ 	* selftest-diagnostic.cc
+ 	(test_diagnostic_context::test_diagnostic_context): Update.
+ 	* tree-diagnostic-path.cc (event_range::print): Update for
+ 	change to diagnostic_context's start_span callback.
+ 
+ 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-show-locus.cc: Update for reorganization of
+ 	source-printing fields of diagnostic_context.
+ 	* diagnostic.cc (diagnostic_set_caret_max_width): Likewise.
+ 	(diagnostic_initialize): Likewise.
+ 	* diagnostic.h (diagnostic_context::show_caret): Move to...
+ 	(diagnostic_context::m_source_printing::enabled): ...here.
+ 	(diagnostic_context::caret_max_width): Move to...
+ 	(diagnostic_context::m_source_printing::max_width): ...here.
+ 	(diagnostic_context::caret_chars): Move to...
+ 	(diagnostic_context::m_source_printing::caret_chars): ...here.
+ 	(diagnostic_context::colorize_source_p): Move to...
+ 	(diagnostic_context::m_source_printing::colorize_source_p): ...here.
+ 	(diagnostic_context::show_labels_p): Move to...
+ 	(diagnostic_context::m_source_printing::show_labels_p): ...here.
+ 	(diagnostic_context::show_line_numbers_p): Move to...
+ 	(diagnostic_context::m_source_printing::show_line_numbers_p): ...here.
+ 	(diagnostic_context::min_margin_width): Move to...
+ 	(diagnostic_context::m_source_printing::min_margin_width): ...here.
+ 	(diagnostic_context::show_ruler_p): Move to...
+ 	(diagnostic_context::m_source_printing::show_ruler_p): ...here.
+ 	(diagnostic_same_line): Update for above changes.
+ 	* opts.cc (common_handle_option): Update for reorganization of
+ 	source-printing fields of diagnostic_context.
+ 	* selftest-diagnostic.cc
+ 	(test_diagnostic_context::test_diagnostic_context): Likewise.
+ 	* toplev.cc (general_init): Likewise.
+ 	* tree-diagnostic-path.cc (struct event_range): Likewise.
+ 
+ 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc (diagnostic_initialize): Initialize
+ 	set_locations_cb to nullptr.
+ 
+ 2023-10-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/111235
+ 	* config/arm/constraints.md: Remove Pf constraint.
+ 	* config/arm/sync.md (arm_atomic_load<mode>): Add new pattern.
+ 	(arm_atomic_load_acquire<mode>): Likewise.
+ 	(arm_atomic_store<mode>): Likewise.
+ 	(arm_atomic_store_release<mode>): Likewise.
+ 	(atomic_load<mode>): Switch patterns to define_expand.
+ 	(atomic_store<mode>): Likewise.
+ 	(arm_atomic_loaddi2_ldrd): Remove predication.
+ 	(arm_load_exclusive<mode>): Likewise.
+ 	(arm_load_acquire_exclusive<mode>): Likewise.
+ 	(arm_load_exclusivesi): Likewise.
+ 	(arm_load_acquire_exclusivesi): Likewise.
+ 	(arm_load_exclusivedi): Likewise.
+ 	(arm_load_acquire_exclusivedi): Likewise.
+ 	(arm_store_exclusive<mode>): Likewise.
+ 	(arm_store_release_exclusivedi): Likewise.
+ 	(arm_store_release_exclusive<mode>): Likewise.
+ 	* config/arm/unspecs.md: Add VUNSPEC_LDR and VUNSPEC_STR.
+ 
+ 2023-10-02  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Revert:
+ 	2023-10-02  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* tree-if-conv.cc (INCLUDE_ALGORITHM): Remove.
+ 	(cmp_arg_entry): New.
+ 	(predicate_scalar_phi): Use it.
+ 
+ 2023-10-02  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (xorsign<mode>3): Renamed to..
+ 	(@xorsign<mode>3): ...This.
+ 	* config/aarch64/aarch64.md (xorsign<mode>3): Renamed to...
+ 	(@xorsign<mode>3): ..This and emit vectors directly
+ 	* config/aarch64/iterators.md (VCONQ): Add SF and DF.
+ 
+ 2023-10-02  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* emit-rtl.cc (validate_subreg): Relax subreg rule.
+ 
+ 2023-10-02  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* tree-if-conv.cc (INCLUDE_ALGORITHM): Remove.
+ 	(cmp_arg_entry): New.
+ 	(predicate_scalar_phi): Use it.
+ 
+ 2023-10-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR bootstrap/111642
+ 	* rtl-tests.cc (const_poly_int_tests<N>::run): Use a local
+ 	poly_int64 typedef.
+ 	* simplify-rtx.cc (simplify_const_poly_int_tests<N>::run): Likewise.
+ 
+ 2023-10-02  Joern Rennecke  <joern.rennecke@embecosm.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_vector::expand_block_move):
+ 	Declare.
+ 	* config/riscv/riscv-v.cc (riscv_vector::expand_block_move):
+ 	New function.
+ 	* config/riscv/riscv.md (cpymemsi): Use riscv_vector::expand_block_move.
+ 	Change to ..
+ 	(cpymem<P:mode>) .. this.
+ 
+ 2023-10-01  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* combine.cc (simplify_compare_const): Properly handle unsigned
+ 	constants while narrowing comparison of memory and constants.
+ 
+ 2023-10-01  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-opts.h (MASK_ZICSR): Delete.
+ 	(MASK_ZIFENCEI): Delete;
+ 	(MASK_ZIHINTNTL): Ditto.
+ 	(MASK_ZIHINTPAUSE): Ditto.
+ 	(TARGET_ZICSR): Ditto.
+ 	(TARGET_ZIFENCEI): Ditto.
+ 	(TARGET_ZIHINTNTL): Ditto.
+ 	(TARGET_ZIHINTPAUSE): Ditto.
+ 	(MASK_ZAWRS): Ditto.
+ 	(TARGET_ZAWRS): Ditto.
+ 	(MASK_ZBA): Ditto.
+ 	(MASK_ZBB): Ditto.
+ 	(MASK_ZBC): Ditto.
+ 	(MASK_ZBS): Ditto.
+ 	(TARGET_ZBA): Ditto.
+ 	(TARGET_ZBB): Ditto.
+ 	(TARGET_ZBC): Ditto.
+ 	(TARGET_ZBS): Ditto.
+ 	(MASK_ZFINX): Ditto.
+ 	(MASK_ZDINX): Ditto.
+ 	(MASK_ZHINX): Ditto.
+ 	(MASK_ZHINXMIN): Ditto.
+ 	(TARGET_ZFINX): Ditto.
+ 	(TARGET_ZDINX): Ditto.
+ 	(TARGET_ZHINX): Ditto.
+ 	(TARGET_ZHINXMIN): Ditto.
+ 	(MASK_ZBKB): Ditto.
+ 	(MASK_ZBKC): Ditto.
+ 	(MASK_ZBKX): Ditto.
+ 	(MASK_ZKNE): Ditto.
+ 	(MASK_ZKND): Ditto.
+ 	(MASK_ZKNH): Ditto.
+ 	(MASK_ZKR): Ditto.
+ 	(MASK_ZKSED): Ditto.
+ 	(MASK_ZKSH): Ditto.
+ 	(MASK_ZKT): Ditto.
+ 	(TARGET_ZBKB): Ditto.
+ 	(TARGET_ZBKC): Ditto.
+ 	(TARGET_ZBKX): Ditto.
+ 	(TARGET_ZKNE): Ditto.
+ 	(TARGET_ZKND): Ditto.
+ 	(TARGET_ZKNH): Ditto.
+ 	(TARGET_ZKR): Ditto.
+ 	(TARGET_ZKSED): Ditto.
+ 	(TARGET_ZKSH): Ditto.
+ 	(TARGET_ZKT): Ditto.
+ 	(MASK_ZTSO): Ditto.
+ 	(TARGET_ZTSO): Ditto.
+ 	(MASK_VECTOR_ELEN_32): Ditto.
+ 	(MASK_VECTOR_ELEN_64): Ditto.
+ 	(MASK_VECTOR_ELEN_FP_32): Ditto.
+ 	(MASK_VECTOR_ELEN_FP_64): Ditto.
+ 	(MASK_VECTOR_ELEN_FP_16): Ditto.
+ 	(TARGET_VECTOR_ELEN_32): Ditto.
+ 	(TARGET_VECTOR_ELEN_64): Ditto.
+ 	(TARGET_VECTOR_ELEN_FP_32): Ditto.
+ 	(TARGET_VECTOR_ELEN_FP_64): Ditto.
+ 	(TARGET_VECTOR_ELEN_FP_16): Ditto.
+ 	(MASK_ZVBB): Ditto.
+ 	(MASK_ZVBC): Ditto.
+ 	(TARGET_ZVBB): Ditto.
+ 	(TARGET_ZVBC): Ditto.
+ 	(MASK_ZVKG): Ditto.
+ 	(MASK_ZVKNED): Ditto.
+ 	(MASK_ZVKNHA): Ditto.
+ 	(MASK_ZVKNHB): Ditto.
+ 	(MASK_ZVKSED): Ditto.
+ 	(MASK_ZVKSH): Ditto.
+ 	(MASK_ZVKN): Ditto.
+ 	(MASK_ZVKNC): Ditto.
+ 	(MASK_ZVKNG): Ditto.
+ 	(MASK_ZVKS): Ditto.
+ 	(MASK_ZVKSC): Ditto.
+ 	(MASK_ZVKSG): Ditto.
+ 	(MASK_ZVKT): Ditto.
+ 	(TARGET_ZVKG): Ditto.
+ 	(TARGET_ZVKNED): Ditto.
+ 	(TARGET_ZVKNHA): Ditto.
+ 	(TARGET_ZVKNHB): Ditto.
+ 	(TARGET_ZVKSED): Ditto.
+ 	(TARGET_ZVKSH): Ditto.
+ 	(TARGET_ZVKN): Ditto.
+ 	(TARGET_ZVKNC): Ditto.
+ 	(TARGET_ZVKNG): Ditto.
+ 	(TARGET_ZVKS): Ditto.
+ 	(TARGET_ZVKSC): Ditto.
+ 	(TARGET_ZVKSG): Ditto.
+ 	(TARGET_ZVKT): Ditto.
+ 	(MASK_ZVL32B): Ditto.
+ 	(MASK_ZVL64B): Ditto.
+ 	(MASK_ZVL128B): Ditto.
+ 	(MASK_ZVL256B): Ditto.
+ 	(MASK_ZVL512B): Ditto.
+ 	(MASK_ZVL1024B): Ditto.
+ 	(MASK_ZVL2048B): Ditto.
+ 	(MASK_ZVL4096B): Ditto.
+ 	(MASK_ZVL8192B): Ditto.
+ 	(MASK_ZVL16384B): Ditto.
+ 	(MASK_ZVL32768B): Ditto.
+ 	(MASK_ZVL65536B): Ditto.
+ 	(TARGET_ZVL32B): Ditto.
+ 	(TARGET_ZVL64B): Ditto.
+ 	(TARGET_ZVL128B): Ditto.
+ 	(TARGET_ZVL256B): Ditto.
+ 	(TARGET_ZVL512B): Ditto.
+ 	(TARGET_ZVL1024B): Ditto.
+ 	(TARGET_ZVL2048B): Ditto.
+ 	(TARGET_ZVL4096B): Ditto.
+ 	(TARGET_ZVL8192B): Ditto.
+ 	(TARGET_ZVL16384B): Ditto.
+ 	(TARGET_ZVL32768B): Ditto.
+ 	(TARGET_ZVL65536B): Ditto.
+ 	(MASK_ZICBOZ): Ditto.
+ 	(MASK_ZICBOM): Ditto.
+ 	(MASK_ZICBOP): Ditto.
+ 	(TARGET_ZICBOZ): Ditto.
+ 	(TARGET_ZICBOM): Ditto.
+ 	(TARGET_ZICBOP): Ditto.
+ 	(MASK_ZICOND): Ditto.
+ 	(TARGET_ZICOND): Ditto.
+ 	(MASK_ZFA): Ditto.
+ 	(TARGET_ZFA): Ditto.
+ 	(MASK_ZFHMIN): Ditto.
+ 	(MASK_ZFH): Ditto.
+ 	(MASK_ZVFHMIN): Ditto.
+ 	(MASK_ZVFH): Ditto.
+ 	(TARGET_ZFHMIN): Ditto.
+ 	(TARGET_ZFH): Ditto.
+ 	(TARGET_ZVFHMIN): Ditto.
+ 	(TARGET_ZVFH): Ditto.
+ 	(MASK_ZMMUL): Ditto.
+ 	(TARGET_ZMMUL): Ditto.
+ 	(MASK_ZCA): Ditto.
+ 	(MASK_ZCB): Ditto.
+ 	(MASK_ZCE): Ditto.
+ 	(MASK_ZCF): Ditto.
+ 	(MASK_ZCD): Ditto.
+ 	(MASK_ZCMP): Ditto.
+ 	(MASK_ZCMT): Ditto.
+ 	(TARGET_ZCA): Ditto.
+ 	(TARGET_ZCB): Ditto.
+ 	(TARGET_ZCE): Ditto.
+ 	(TARGET_ZCF): Ditto.
+ 	(TARGET_ZCD): Ditto.
+ 	(TARGET_ZCMP): Ditto.
+ 	(TARGET_ZCMT): Ditto.
+ 	(MASK_SVINVAL): Ditto.
+ 	(MASK_SVNAPOT): Ditto.
+ 	(TARGET_SVINVAL): Ditto.
+ 	(TARGET_SVNAPOT): Ditto.
+ 	(MASK_XTHEADBA): Ditto.
+ 	(MASK_XTHEADBB): Ditto.
+ 	(MASK_XTHEADBS): Ditto.
+ 	(MASK_XTHEADCMO): Ditto.
+ 	(MASK_XTHEADCONDMOV): Ditto.
+ 	(MASK_XTHEADFMEMIDX): Ditto.
+ 	(MASK_XTHEADFMV): Ditto.
+ 	(MASK_XTHEADINT): Ditto.
+ 	(MASK_XTHEADMAC): Ditto.
+ 	(MASK_XTHEADMEMIDX): Ditto.
+ 	(MASK_XTHEADMEMPAIR): Ditto.
+ 	(MASK_XTHEADSYNC): Ditto.
+ 	(TARGET_XTHEADBA): Ditto.
+ 	(TARGET_XTHEADBB): Ditto.
+ 	(TARGET_XTHEADBS): Ditto.
+ 	(TARGET_XTHEADCMO): Ditto.
+ 	(TARGET_XTHEADCONDMOV): Ditto.
+ 	(TARGET_XTHEADFMEMIDX): Ditto.
+ 	(TARGET_XTHEADFMV): Ditto.
+ 	(TARGET_XTHEADINT): Ditto.
+ 	(TARGET_XTHEADMAC): Ditto.
+ 	(TARGET_XTHEADMEMIDX): Ditto.
+ 	(TARGET_XTHEADMEMPAIR): Ditto.
+ 	(TARGET_XTHEADSYNC): Ditto.
+ 	(MASK_XVENTANACONDOPS): Ditto.
+ 	(TARGET_XVENTANACONDOPS): Ditto.
+ 	* config/riscv/riscv.opt: Add new Mask defination.
+ 	* doc/options.texi: Add explanation for this new usage.
+ 	* opt-functions.awk: Add new function to find the index
+ 	of target variable from extra_target_vars.
+ 	* opt-read.awk: Add new function to store the Mask flags.
+ 	* opth-gen.awk: Add new function to output the defination of
+ 	Mask Macro and Target Macro.
+ 
+ 2023-10-01  Joern Rennecke  <joern.rennecke@embecosm.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 	    Juzhe-Zhong   <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111566
+ 	* config/riscv/riscv-protos.h (riscv_vector::legitimize_move):
+ 	Change second parameter to rtx *.
+ 	* config/riscv/riscv-v.cc (risv_vector::legitimize_move): Likewise.
+ 	* config/riscv/vector.md: Changed callers of
+ 	riscv_vector::legitimize_move.
+ 	(*mov<mode>_mem_to_mem): Remove.
+ 
+ 2023-09-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/111649
+ 	* config/riscv/riscv-vsetvl.cc (vector_infos_manager::vector_infos_manager):
+ 	Replace safe_grow with safe_grow_cleared.
+ 
+ 2023-09-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-match-head.cc (gimple_bitwise_inverted_equal_p): Fix a pasto
+ 	in function comment.
+ 
+ 2023-09-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/111625
+ 	PR middle-end/111637
+ 	* gimple-lower-bitint.cc (range_to_prec): Use prec or -prec if
+ 	r.undefined_p ().
+ 	(bitint_large_huge::handle_operand_addr): For uninitialized operands
+ 	use limb_prec or -limb_prec precision.
+ 
+ 2023-09-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* vec.h (quick_grow): Uncomment static_assert.
+ 
+ 2023-09-30  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/bitmanip.md (*<optab>_not_const<mode>): Added type attribute
+ 
+ 2023-09-29  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Better handle costing
+ 	SETs when the outer code is INSN.
+ 
+ 2023-09-29  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/bitmanip.md (*<optab>_not_const<mode>): New split
+ 	pattern.
+ 
+ 2023-09-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* poly-int.h (poly_int_pod): Delete.
+ 	(poly_coeff_traits::init_cast): New type.
+ 	(poly_int_full, poly_int_hungry, poly_int_fullness): New structures.
+ 	(poly_int): Replace constructors that take 1 and 2 coefficients with
+ 	a general one that takes an arbitrary number of coefficients.
+ 	Delegate initialization to two new private constructors, one of
+ 	which uses the coefficients as-is and one of which adds an extra
+ 	zero of the appropriate type (and precision, where applicable).
+ 	(gt_ggc_mx, gt_pch_nx): Operate on poly_ints rather than poly_int_pods.
+ 	* poly-int-types.h (poly_uint16_pod, poly_int64_pod, poly_uint64_pod)
+ 	(poly_offset_int_pod, poly_wide_int_pod, poly_widest_int_pod): Delete.
+ 	* gengtype.cc (main): Don't register poly_int64_pod.
+ 	* calls.cc (initialize_argument_information): Use poly_int rather
+ 	than poly_int_pod.
+ 	(combine_pending_stack_adjustment_and_call): Likewise.
+ 	* config/aarch64/aarch64.cc (pure_scalable_type_info): Likewise.
+ 	* data-streamer.h (bp_unpack_poly_value): Likewise.
+ 	* dwarf2cfi.cc (struct dw_trace_info): Likewise.
+ 	(struct queued_reg_save): Likewise.
+ 	* dwarf2out.h (struct dw_cfa_location): Likewise.
+ 	* emit-rtl.h (struct incoming_args): Likewise.
+ 	(struct rtl_data): Likewise.
+ 	* expr.cc (get_bit_range): Likewise.
+ 	(get_inner_reference): Likewise.
+ 	* expr.h (get_bit_range): Likewise.
+ 	* fold-const.cc (split_address_to_core_and_offset): Likewise.
+ 	(ptr_difference_const): Likewise.
+ 	* fold-const.h (ptr_difference_const): Likewise.
+ 	* function.cc (try_fit_stack_local): Likewise.
+ 	(instantiate_new_reg): Likewise.
+ 	* function.h (struct expr_status): Likewise.
+ 	(struct args_size): Likewise.
+ 	* genmodes.cc (ZERO_COEFFS): Likewise.
+ 	(mode_size_inline): Likewise.
+ 	(mode_nunits_inline): Likewise.
+ 	(emit_mode_precision): Likewise.
+ 	(emit_mode_size): Likewise.
+ 	(emit_mode_nunits): Likewise.
+ 	* gimple-fold.cc (get_base_constructor): Likewise.
+ 	* gimple-ssa-store-merging.cc (struct symbolic_number): Likewise.
+ 	* inchash.h (class hash): Likewise.
+ 	* ipa-modref-tree.cc (modref_access_node::dump): Likewise.
+ 	* ipa-modref.cc (modref_access_analysis::merge_call_side_effects):
+ 	Likewise.
+ 	* ira-int.h (ira_spilled_reg_stack_slot): Likewise.
+ 	* lra-eliminations.cc (self_elim_offsets): Likewise.
+ 	* machmode.h (mode_size, mode_precision, mode_nunits): Likewise.
+ 	* omp-low.cc (omplow_simd_context): Likewise.
+ 	* pretty-print.cc (pp_wide_integer): Likewise.
+ 	* pretty-print.h (pp_wide_integer): Likewise.
+ 	* reload.cc (struct decomposition): Likewise.
+ 	* reload.h (struct reload): Likewise.
+ 	* reload1.cc (spill_stack_slot_width): Likewise.
+ 	(struct elim_table): Likewise.
+ 	(offsets_at): Likewise.
+ 	(init_eliminable_invariants): Likewise.
+ 	* rtl.h (union rtunion): Likewise.
+ 	(poly_int_rtx_p): Likewise.
+ 	(strip_offset): Likewise.
+ 	(strip_offset_and_add): Likewise.
+ 	* rtlanal.cc (strip_offset): Likewise.
+ 	* tree-dfa.cc (get_ref_base_and_extent): Likewise.
+ 	(get_addr_base_and_unit_offset_1): Likewise.
+ 	(get_addr_base_and_unit_offset): Likewise.
+ 	* tree-dfa.h (get_ref_base_and_extent): Likewise.
+ 	(get_addr_base_and_unit_offset_1): Likewise.
+ 	(get_addr_base_and_unit_offset): Likewise.
+ 	* tree-ssa-loop-ivopts.cc (struct iv_use): Likewise.
+ 	(strip_offset): Likewise.
+ 	* tree-ssa-sccvn.h (struct vn_reference_op_struct): Likewise.
+ 	* tree.cc (ptrdiff_tree_p): Likewise.
+ 	* tree.h (poly_int_tree_p): Likewise.
+ 	(ptrdiff_tree_p): Likewise.
+ 	(get_inner_reference): Likewise.
+ 
+ 2023-09-29  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.md (memory_barrier): Revise comment.
+ 	(memory_barrier_64, memory_barrier_32): Use ldcw,co on PA 2.0.
+ 	* config/pa/pa.opt (coherent-ldcw): Change default to disabled.
+ 
+ 2023-09-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* vec.h (quick_insert, ordered_remove, unordered_remove,
+ 	block_remove, qsort, sort, stablesort, quick_grow): Guard
+ 	std::is_trivially_{copyable,default_constructible} and
+ 	vec_detail::is_trivially_copyable_or_pair static assertions
+ 	with GCC_VERSION >= 5000.
+ 	(vec_detail::is_trivially_copyable_or_pair): Guard definition
+ 	with GCC_VERSION >= 5000.
+ 
+ 2023-09-29  Manos Anagnostakis  <manos.anagnostakis@vrull.eu>
+ 
+ 	* config/aarch64/aarch64-opts.h (enum aarch64_ldp_policy): Removed.
+ 	(enum aarch64_ldp_stp_policy): Merged enums aarch64_ldp_policy
+ 	and aarch64_stp_policy to aarch64_ldp_stp_policy.
+ 	(enum aarch64_stp_policy): Removed.
+ 	* config/aarch64/aarch64-protos.h (struct tune_params): Removed
+ 	aarch64_ldp_policy_model and aarch64_stp_policy_model enum types
+ 	and left only the definitions to the aarch64-opts one.
+ 	* config/aarch64/aarch64.cc (aarch64_parse_ldp_policy): Removed.
+ 	(aarch64_parse_stp_policy): Removed.
+ 	(aarch64_override_options_internal): Removed calls to parsing
+ 	functions and added obvious direct assignments.
+ 	(aarch64_mem_ok_with_ldpstp_policy_model): Improved
+ 	code quality based on the new changes.
+ 	* config/aarch64/aarch64.opt: Use single enum type
+ 	aarch64_ldp_stp_policy for both ldp and stp options.
+ 
+ 2023-09-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111583
+ 	* tree-loop-distribution.cc (find_single_drs): Ensure the
+ 	load/store are always executed.
+ 
+ 2023-09-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern): Use
+ 	quick_grow_cleared method on unprom rather than quick_grow.
+ 
+ 2023-09-29  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	PR middle-end/111505
+ 	* ggc-common.cc (ggc_zero_out_root_pointers, ggc_common_finalize):
+ 	Add new helper. Use helper instead of memset() to wipe out pointers.
+ 
+ 2023-09-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* builtins.h (c_readstr): Take a fixed_size_mode rather than a
+ 	scalar_int_mode.
+ 	* builtins.cc (c_readstr): Likewise.  Build a local array of
+ 	bytes and use native_decode_rtx to get the rtx image.
+ 	(builtin_memcpy_read_str): Simplify accordingly.
+ 	(builtin_strncpy_read_str): Likewise.
+ 	(builtin_memset_read_str): Likewise.
+ 	(builtin_memset_gen_str): Likewise.
+ 	* expr.cc (string_cst_read_str): Likewise.
+ 
+ 2023-09-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-ssa-loop-im.cc (tree_ssa_lim_initialize): Use quick_grow_cleared
+ 	instead of quick_grow on vec<bitmap_head> members.
+ 	* cfganal.cc (control_dependences::control_dependences): Likewise.
+ 	* rtl-ssa/blocks.cc (function_info::build_info::build_info): Likewise.
+ 	(function_info::place_phis): Use safe_grow_cleared instead of safe_grow
+ 	on auto_vec<bitmap_head> vars.
+ 	* tree-ssa-live.cc (compute_live_vars): Use quick_grow_cleared instead
+ 	of quick_grow on vec<bitmap_head> var.
+ 
+ 2023-09-28  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	Revert:
+ 	2023-09-14  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira-costs.cc (find_costs_and_classes): Decrease memory cost
+ 	by equiv savings.
+ 
+ 2023-09-28  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/111121
+ 	* config/aarch64/aarch64.md (aarch64_movmemdi): Add new expander.
+ 	(movmemdi): Call aarch64_expand_cpymem_mops for correct expansion.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Add support
+ 	for memmove.
+ 	* config/aarch64/aarch64-protos.h (aarch64_expand_cpymem_mops): Add new
+ 	function.
+ 
+ 2023-09-28  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/111506
+ 	* config/riscv/autovec.md (<float_cvt><mode><vnnconvert>2):
+ 	New pattern.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 
+ 2023-09-28  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* rtl.h (lra_in_progress): Change type to bool.
+ 	(ira_in_progress): Add new extern.
+ 	* ira.cc (ira_in_progress): New global.
+ 	(pass_ira::execute): Set up ira_in_progress.
+ 	* lra.cc: (lra_in_progress): Change type to bool and initialize.
+ 	(lra): Use bool values for lra_in_progress.
+ 	* lra-eliminations.cc (init_elim_table): Ditto.
+ 
+ 2023-09-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/111600
+ 	* gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
+ 	Use a heap allocated worklist for CFG traversal instead of
+ 	recursion.
+ 
+ 2023-09-28  Jakub Jelinek  <jakub@redhat.com>
+ 	    Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* vec.h: Mention in file comment limited support for non-POD types
+ 	in some operations.
+ 	(vec_destruct): New function template.
+ 	(release): Use it for non-trivially destructible T.
+ 	(truncate): Likewise.
+ 	(quick_push): Perform a placement new into slot
+ 	instead of assignment.
+ 	(pop): For non-trivially destructible T return void
+ 	rather than T & and destruct the popped element.
+ 	(quick_insert, ordered_remove): Note that they aren't suitable
+ 	for non-trivially copyable types.  Add static_asserts for that.
+ 	(block_remove): Assert T is trivially copyable.
+ 	(vec_detail::is_trivially_copyable_or_pair): New trait.
+ 	(qsort, sort, stablesort): Assert T is trivially copyable or
+ 	std::pair with both trivally copyable types.
+ 	(quick_grow): Add assert T is trivially default constructible,
+ 	for now commented out.
+ 	(quick_grow_cleared): Don't call quick_grow, instead inline it
+ 	by hand except for the new static_assert.
+ 	(gt_ggc_mx): Assert T is trivially destructable.
+ 	(auto_vec::operator=): Formatting fixes.
+ 	(auto_vec::auto_vec): Likewise.
+ 	(vec_safe_grow_cleared): Don't call vec_safe_grow, instead inline
+ 	it manually and call quick_grow_cleared method rather than quick_grow.
+ 	(safe_grow_cleared): Likewise.
+ 	* edit-context.cc (class line_event): Move definition earlier.
+ 	* tree-ssa-loop-im.cc (seq_entry::seq_entry): Make default ctor
+ 	defaulted.
+ 	* ipa-fnsummary.cc (evaluate_properties_for_edge): Use
+ 	safe_grow_cleared instead of safe_grow followed by placement new
+ 	constructing the elements.
+ 
+ 2023-09-28  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* dwarf2out.cc (mem_loc_descriptor): Remove unused variables.
+ 	* tree-affine.cc (expr_to_aff_combination): Likewise.
+ 
+ 2023-09-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111614
+ 	* tree-ssa-reassoc.cc (undistribute_bitref_for_vector): Properly
+ 	convert the first vector when required.
+ 
+ 2023-09-28  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/111533
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Fix bug.
+ 	* config/riscv/riscv-vsetvl.cc (anticipatable_occurrence_p): Fix bug.
+ 
+ 2023-09-27  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* gimple.cc (gimple_copy): Add case GIMPLE_OMP_STRUCTURED_BLOCK.
+ 
+ 2023-09-27  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/111610
+ 	* configure: Regenerate.
+ 	* configure.ac: Rename the missing dsymutil case to "DET_UNKNOWN".
+ 
+ 2023-09-27  Manos Anagnostakis  <manos.anagnostakis@vrull.eu>
+ 	    Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 	    Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* config/aarch64/aarch64-opts.h (enum aarch64_ldp_policy): New
+ 	enum type.
+ 	(enum aarch64_stp_policy): New enum type.
+ 	* config/aarch64/aarch64-protos.h (struct tune_params): Add
+ 	appropriate enums for the policies.
+ 	(aarch64_mem_ok_with_ldpstp_policy_model): New declaration.
+ 	* config/aarch64/aarch64-tuning-flags.def
+ 	(AARCH64_EXTRA_TUNING_OPTION): Remove superseded tuning
+ 	options.
+ 	* config/aarch64/aarch64.cc (aarch64_parse_ldp_policy): New
+ 	function to parse ldp-policy parameter.
+ 	(aarch64_parse_stp_policy): New function to parse stp-policy parameter.
+ 	(aarch64_override_options_internal): Call parsing functions.
+ 	(aarch64_mem_ok_with_ldpstp_policy_model): New function.
+ 	(aarch64_operands_ok_for_ldpstp): Add call to
+ 	aarch64_mem_ok_with_ldpstp_policy_model for parameter-value
+ 	check and alignment check and remove superseded ones.
+ 	(aarch64_operands_adjust_ok_for_ldpstp): Add call to
+ 	aarch64_mem_ok_with_ldpstp_policy_model for parameter-value
+ 	check and alignment check and remove superseded ones.
+ 	* config/aarch64/aarch64.opt (aarch64-ldp-policy): New param.
+ 	(aarch64-stp-policy): New param.
+ 	* doc/invoke.texi: Document the parameters accordingly.
+ 
+ 2023-09-27  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-data-ref.cc (include calls.h): Add new include.
+ 	(get_references_in_stmt): Correctly handle IFN_MASK_CALL.
+ 
+ 2023-09-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* match.pd (abs (copysign (x, y)) -> abs (x)): New pattern.
+ 
+ 2023-09-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/105606
+ 	* system.h (BROKEN_VALUE_INITIALIZATION): Don't define.
+ 	* vec.h (vec_default_construct): Remove BROKEN_VALUE_INITIALIZATION
+ 	workaround.
+ 	* function.cc (assign_parm_find_data_types): Likewise.
+ 
+ 2023-09-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (roundeven<mode>2): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_flags): New enum type.
+ 	(enum insn_type): Ditto.
+ 	(expand_vec_roundeven): New func decl.
+ 	* config/riscv/riscv-v.cc (expand_vec_roundeven): New func impl.
+ 
+ 2023-09-27  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111590
+ 	* dse.cc (find_shift_sequence): Check the mode with access_size exist on the target.
+ 
+ 2023-09-27  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-if-conv.cc (is_cond_scalar_reduction): Fix comments.
+ 
+ 2023-09-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (btrunc<mode>2): New pattern.
+ 	* config/riscv/riscv-protos.h (expand_vec_trunc): New func decl.
+ 	* config/riscv/riscv-v.cc (emit_vec_cvt_x_f_rtz): New func impl.
+ 	(expand_vec_trunc): Ditto.
+ 
+ 2023-09-26  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR target/107567
+ 	PR target/109166
+ 	* builtins.cc (expand_builtin) <case BUILT_IN_ATOMIC_TEST_AND_SET>:
+ 	Handle failure from expand_builtin_atomic_test_and_set.
+ 	* optabs.cc (expand_atomic_test_and_set): When all attempts fail to
+ 	generate atomic code through target support, return NULL
+ 	instead of emitting non-atomic code.  Also, for code handling
+ 	targetm.atomic_test_and_set_trueval != 1, gcc_assert result
+ 	from calling emit_store_flag_force instead of returning NULL.
+ 
+ 2023-09-26  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/111599
+ 	* value-relation.cc (relation_oracle::valid_equivs): Ensure
+ 	ssa_name is valid.
+ 
+ 2023-09-26  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/106164
+ 	PR tree-optimization/111456
+ 	* match.pd (`(A ==/!= B) & (A CMP C)`):
+ 	Support an optional cast on the second A.
+ 	(`(A ==/!= B) | (A CMP C)`): Likewise.
+ 
+ 2023-09-26  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111469
+ 	* tree-ssa-phiopt.cc (minmax_replacement): Fix
+ 	the assumption for the `non-diamond` handling cases
+ 	of diamond code.
+ 
+ 2023-09-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* match.pd: Optimize COND_ADD reduction pattern.
+ 
+ 2023-09-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR tree-optimization/111594
+ 	PR tree-optimization/110660
+ 	* match.pd: Optimize COND_LEN_ADD reduction.
+ 
+ 2023-09-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (round<mode>2): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_flags): New enum type.
+ 	(enum insn_type): Ditto.
+ 	(expand_vec_round): New function decl.
+ 	* config/riscv/riscv-v.cc (expand_vec_round): New function impl.
+ 
+ 2023-09-26  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (DARWIN_CC1_SPEC): Remove -dynamiclib.
+ 
+ 2023-09-26  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/111547
+ 	* doc/invoke.texi (-fopenmp): Mention C++11 [[omp::decl(...)]] syntax.
+ 	(-fopenmp-simd): Likewise. Clarify 'loop' directive semantic.
+ 
+ 2023-09-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (rint<mode>2): New pattern.
+ 	* config/riscv/riscv-protos.h (expand_vec_rint): New function decl.
+ 	* config/riscv/riscv-v.cc (expand_vec_rint): New function impl.
+ 
+ 2023-09-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (nearbyint<mode>2): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	(expand_vec_nearbyint): New function decl.
+ 	* config/riscv/riscv-v.cc (expand_vec_nearbyint): New func impl.
+ 
+ 2023-09-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (gen_ceil_const_fp): Remove.
+ 	(get_fp_rounding_coefficient): Rename.
+ 	(gen_floor_const_fp): Remove.
+ 	(expand_vec_ceil): Take renamed func.
+ 	(expand_vec_floor): Ditto.
+ 
+ 2023-09-25  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR middle-end/111497
+ 	* lra-constraints.cc (lra_constraints): Copy substituted
+ 	equivalence.
+ 	* lra.cc (lra): Change comment for calling unshare_all_rtl_again.
+ 
+ 2023-09-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gimple-range-gori.cc (gori_compute::logical_combine): Add missing
+ 	return statement in the varying case.
+ 
+ 2023-09-25  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* doc/invoke.texi: Update -m[no-]explicit-relocs for r14-4160.
+ 
+ 2023-09-25  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110386
+ 	* gimple-ssa-backprop.cc (strip_sign_op_1): Remove ABSU_EXPR.
+ 
+ 2023-09-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111548
+ 	* config/riscv/riscv-vsetvl.cc (earliest_pred_can_be_fused_p): Bugfix
+ 
+ 2023-09-25  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/111366
+ 	* config/rs6000/rs6000.cc (rs6000_update_ipa_fn_target_info): Skip
+ 	empty inline asm.
+ 
+ 2023-09-25  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/111380
+ 	* config/rs6000/rs6000.cc (rs6000_can_inline_p): Adopt
+ 	target_option_default_node when the callee has no option
+ 	attributes, also simplify the existing code accordingly.
+ 
+ 2023-09-25  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (lasx_vecinit_merge_<LASX:mode>): New
+ 	pattern for vector construction.
+ 	(vec_set<mode>_internal): Ditto.
+ 	(lasx_xvinsgr2vr_<mode256_i_half>_internal): Ditto.
+ 	(lasx_xvilvl_<lasxfmt_f>_internal): Ditto.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vector_init):
+ 	Optimized the implementation of vector construction.
+ 	(loongarch_expand_vector_init_same): New function.
+ 	* config/loongarch/lsx.md (lsx_vilvl_<lsxfmt_f>_internal): New
+ 	pattern for vector construction.
+ 	(lsx_vreplvei_mirror_<lsxfmt_f>): New pattern for vector
+ 	construction.
+ 	(vec_concatv2df): Ditto.
+ 	(vec_concatv4sf): Ditto.
+ 
+ 2023-09-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/111546
+ 	* config/riscv/riscv-v.cc
+ 	(expand_vector_init_merge_repeating_sequence): Bugfix
+ 
+ 2023-09-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111543
+ 	* match.pd (`(X & ~Y) & Y`, `(X | ~Y) | Y`): New patterns.
+ 
+ 2023-09-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md: Extend VLS modes
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 
+ 2023-09-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md: Add VLS modes for conditional ABS/SQRT.
+ 
+ 2023-09-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (floor<mode>2): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_flags): New enum type.
+ 	(enum insn_type): Ditto.
+ 	(expand_vec_floor): New function decl.
+ 	* config/riscv/riscv-v.cc (gen_floor_const_fp): New function impl.
+ 	(expand_vec_floor): Ditto.
+ 
+ 2023-09-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vec_float_cmp_mask): Refactor.
+ 	(emit_vec_float_cmp_mask): Rename.
+ 	(expand_vec_copysign): Ditto.
+ 	(emit_vec_copysign): Ditto.
+ 	(emit_vec_abs): New function impl.
+ 	(emit_vec_cvt_x_f): Ditto.
+ 	(emit_vec_cvt_f_x): Ditto.
+ 	(expand_vec_ceil): Ditto.
+ 
+ 2023-09-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Extend VLS modes.
+ 
+ 2023-09-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (gen_const_vector_dup): Use global expand function.
+ 	* config/riscv/vector.md (@vec_duplicate<mode>): Remove @.
+ 	(vec_duplicate<mode>): Ditto.
+ 
+ 2023-09-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Add VLS conditional patterns.
+ 	* config/riscv/riscv-protos.h (expand_cond_unop): Ditto.
+ 	(expand_cond_binop): Ditto.
+ 	(expand_cond_ternop): Ditto.
+ 	* config/riscv/riscv-v.cc (expand_cond_unop): Ditto.
+ 	(expand_cond_binop): Ditto.
+ 	(expand_cond_ternop): Ditto.
+ 
+ 2023-09-22  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/111451
+ 	* config/riscv/riscv-v.cc (emit_vlmax_gather_insn): Optimization of vrgather.vv
+ 							into vrgatherei16.vv.
+ 
+ 2023-09-22  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_widen_reduc_plus_scal_<mode>):
+ 	New combine patterns.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New insn_type.
+ 
+ 2023-09-22  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (enum avl_type): New VLS avl_type.
+ 	* config/riscv/riscv-v.cc (autovec_use_vlmax_p): Move comments.
+ 
+ 2023-09-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (ceil<mode>2): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_flags): New enum type.
+ 	(enum insn_type): Ditto.
+ 	(expand_vec_ceil): New function decl.
+ 	* config/riscv/riscv-v.cc (gen_ceil_const_fp): New function impl.
+ 	(expand_vec_float_cmp_mask): Ditto.
+ 	(expand_vec_copysign): Ditto.
+ 	(expand_vec_ceil): Ditto.
+ 	* config/riscv/vector.md: Add VLS mode support.
+ 
+ 2023-09-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Extend VLS modes.
+ 
+ 2023-09-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Extend VLS modes.
+ 
+ 2023-09-21  Lehua Ding  <lehua.ding@rivai.ai>
+ 	    Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* config/riscv/riscv-v.cc (emit_vlmax_insn): Adjust comments.
+ 	(emit_nonvlmax_insn): Adjust comments.
+ 	(emit_vlmax_insn_lra): Adjust comments.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*linux*): Set rust target_objs, and
+ 	target_has_targetrustm,
+ 	* config/t-linux (linux-rust.o): New rule.
+ 	* config/linux-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
+ 	rust_target_objs and target_has_targetrustm.
+ 	* config/t-winnt (winnt-rust.o): New rule.
+ 	* config/winnt-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*-*-fuchsia): Set tmake_rule, rust_target_objs,
+ 	and target_has_targetrustm.
+ 	* config/fuchsia-rust.cc: New file.
+ 	* config/t-fuchsia: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*-*-vxworks*): Set rust_target_objs and
+ 	target_has_targetrustm.
+ 	* config/t-vxworks (vxworks-rust.o): New rule.
+ 	* config/vxworks-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*-*-dragonfly*): Set rust_target_objs and
+ 	target_has_targetrustm.
+ 	* config/t-dragonfly (dragonfly-rust.o): New rule.
+ 	* config/dragonfly-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*-*-solaris2*): Set rust_target_objs and
+ 	target_has_targetrustm.
+ 	* config/t-sol2 (sol2-rust.o): New rule.
+ 	* config/sol2-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*-*-openbsd*): Set rust_target_objs and
+ 	target_has_targetrustm.
+ 	* config/t-openbsd (openbsd-rust.o): New rule.
+ 	* config/openbsd-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*-*-netbsd*): Set rust_target_objs and
+ 	target_has_targetrustm.
+ 	* config/t-netbsd (netbsd-rust.o): New rule.
+ 	* config/netbsd-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*-*-freebsd*): Set rust_target_objs and
+ 	target_has_targetrustm.
+ 	* config/t-freebsd (freebsd-rust.o): New rule.
+ 	* config/freebsd-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (*-*-darwin*): Set rust_target_objs and
+ 	target_has_targetrustm.
+ 	* config/t-darwin (darwin-rust.o): New rule.
+ 	* config/darwin-rust.cc: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config/i386/t-i386 (i386-rust.o): New rule.
+ 	* config/i386/i386-rust.cc: New file.
+ 	* config/i386/i386-rust.h: New file.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Document TARGET_RUST_OS_INFO.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Add @node for Rust language and ABI, and document
+ 	TARGET_RUST_CPU_INFO.
+ 
+ 2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* Makefile.in (tm_rust_file_list, tm_rust_include_list, TM_RUST_H,
+ 	RUST_TARGET_DEF, RUST_TARGET_H, RUST_TARGET_OBJS): New variables.
+ 	(tm_rust.h, cs-tm_rust.h, default-rust.o,
+ 	rust/rust-target-hooks-def.h, s-rust-target-hooks-def-h): New rules.
+ 	(s-tm-texi): Also check timestamp on rust-target.def.
+ 	(generated_files): Add TM_RUST_H and rust-target-hooks-def.h.
+ 	(build/genhooks.o): Also depend on RUST_TARGET_DEF.
+ 	* config.gcc (tm_rust_file, rust_target_objs, target_has_targetrustm):
+ 	New variables.
+ 	* configure: Regenerate.
+ 	* configure.ac (tm_rust_file_list, tm_rust_include_list,
+ 	rust_target_objs): Add substitutes.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in (targetrustm): Document.
+ 	(target_has_targetrustm): Document.
+ 	* genhooks.cc: Include rust/rust-target.def.
+ 	* config/default-rust.cc: New file.
+ 
+ 2023-09-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110751
+ 	* config/riscv/autovec.md: Enable scratch rtx in ELSE operand.
+ 	* config/riscv/predicates.md (autovec_else_operand): New predicate.
+ 	* config/riscv/riscv-v.cc (get_else_operand): New function.
+ 	(expand_cond_len_unop): Adapt ELSE value.
+ 	(expand_cond_len_binop): Ditto.
+ 	(expand_cond_len_ternop): Ditto.
+ 	* config/riscv/riscv.cc (riscv_preferred_else_value): New function.
+ 	(TARGET_PREFERRED_ELSE_VALUE): New targethook.
+ 
+ 2023-09-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111486
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix bug.
+ 
+ 2023-09-21  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR tree-optimization/111355
+ 	* match.pd ((X + C) / N): Update pattern.
+ 
+ 2023-09-21  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* match.pd ((t * 2) / 2): Update to use overflow_free_p.
+ 
+ 2023-09-21  xuli  <xuli1@eswincomputing.com>
+ 
+ 	PR target/111450
+ 	* config/riscv/constraints.md (c01): const_int 1.
+ 	(c02): const_int 2.
+ 	(c04): const_int 4.
+ 	(c08): const_int 8.
+ 	* config/riscv/predicates.md (vector_eew8_stride_operand): New predicate for stride operand.
+ 	(vector_eew16_stride_operand): Ditto.
+ 	(vector_eew32_stride_operand): Ditto.
+ 	(vector_eew64_stride_operand): Ditto.
+ 	* config/riscv/vector-iterators.md: New iterator for stride operand.
+ 	* config/riscv/vector.md: Add stride = element width constraint.
+ 
+ 2023-09-21  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/predicates.md (const_1_or_2_operand): Rename.
+ 	(const_1_or_4_operand): Ditto.
+ 	(vector_gs_scale_operand_16): Ditto.
+ 	(vector_gs_scale_operand_32): Ditto.
+ 	* config/riscv/vector-iterators.md: Adjust.
+ 
+ 2023-09-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Extend VLS modes.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-20  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ssa_cache::merge_range): Change meaning
+ 	of the return value.
+ 	(ssa_cache::dump): Don't print GLOBAL RANGE header.
+ 	(ssa_lazy_cache::merge_range): Adjust return value meaning.
+ 	(ranger_cache::dump): Print GLOBAL RANGE header.
+ 
+ 2023-09-20  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_unordered_ge::fold_range): Remove
+ 	special casing.
+ 	(foperator_unordered_gt::fold_range): Same.
+ 	(foperator_unordered_lt::fold_range): Same.
+ 	(foperator_unordered_le::fold_range): Same.
+ 
+ 2023-09-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* builtins.h (type_to_class): Declare.
+ 	* builtins.cc (type_to_class): No longer static.  Return
+ 	int rather than enum.
+ 	* doc/extend.texi (__builtin_classify_type): Document.
+ 
+ 2023-09-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110751
+ 	* internal-fn.cc (expand_fn_using_insn): Support undefined rtx value.
+ 	* optabs.cc (maybe_legitimize_operand): Ditto.
+ 	(can_reuse_operands_p): Ditto.
+ 	* optabs.h (enum expand_operand_type): Ditto.
+ 	(create_undefined_input_operand): Ditto.
+ 
+ 2023-09-20  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* gimplify.cc (gimplify_bind_expr): Call GOMP_alloc/free for
+ 	'omp allocate' variables; move stack cleanup after other
+ 	cleanup.
+ 	(omp_notice_variable): Process original decl when decl
+ 	of the value-expression for a 'omp allocate' variable is passed.
+ 	* omp-low.cc (scan_omp_1_op): Handle 'omp allocate' variables
+ 
+ 2023-09-20  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	support simplifying vector int not only scalar int.
+ 
+ 2023-09-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Extend VLS floating-point.
+ 
+ 2023-09-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Fix bug.
+ 
+ 2023-09-20  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h:
+ 	(SUBTARGET_DRIVER_SELF_SPECS): Move handling of 'shared' into the same
+ 	specs as 'dynamiclib'. (STARTFILE_SPEC): Handle 'shared'.
+ 
+ 2023-09-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111489
+ 	* params.opt (-param uninit-max-chain-len=): Raise default to 8.
+ 
+ 2023-09-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111489
+ 	* doc/invoke.texi (--param uninit-max-chain-len): Document.
+ 	(--param uninit-max-num-chains): Likewise.
+ 	* params.opt (-param=uninit-max-chain-len=): New.
+ 	(-param=uninit-max-num-chains=): Likewise.
+ 	* gimple-predicate-analysis.cc (MAX_NUM_CHAINS): Define to
+ 	param_uninit_max_num_chains.
+ 	(MAX_CHAIN_LEN): Define to param_uninit_max_chain_len.
+ 	(uninit_analysis::init_use_preds): Avoid VLA.
+ 	(uninit_analysis::init_from_phi_def): Likewise.
+ 	(compute_control_dep_chain): Avoid using MAX_CHAIN_LEN in
+ 	template parameter.
+ 
+ 2023-09-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* match.pd ((x << c) >> c): Use MAX_FIXED_MODE_SIZE instead of
+ 	GET_MODE_PRECISION of TImode or DImode depending on whether
+ 	TImode is supported scalar mode.
+ 	* gimple-lower-bitint.cc (bitint_precision_kind): Likewise.
+ 	* expr.cc (expand_expr_real_1): Likewise.
+ 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
+ 	* ubsan.cc (ubsan_encode_value, ubsan_type_descriptor): Likewise.
+ 
+ 2023-09-20  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*<optab>not<mode>): Move and rename.
+ 	(*n<optab><mode>): Ditto.
+ 	(*v<any_shiftrt:optab><any_extend:optab>trunc<mode>): Ditto.
+ 	(*<any_shiftrt:optab>trunc<mode>): Ditto.
+ 	(*narrow_<any_shiftrt:optab><any_extend:optab><mode>): Ditto.
+ 	(*narrow_<any_shiftrt:optab><mode>_scalar): Ditto.
+ 	(*single_widen_mult<any_extend:su><mode>): Ditto.
+ 	(*single_widen_mul<any_extend:su><mode>): Ditto.
+ 	(*single_widen_mult<mode>): Ditto.
+ 	(*single_widen_mul<mode>): Ditto.
+ 	(*dual_widen_fma<mode>): Ditto.
+ 	(*dual_widen_fma<su><mode>): Ditto.
+ 	(*single_widen_fma<mode>): Ditto.
+ 	(*single_widen_fma<su><mode>): Ditto.
+ 	(*dual_fma<mode>): Ditto.
+ 	(*single_fma<mode>): Ditto.
+ 	(*dual_fnma<mode>): Ditto.
+ 	(*dual_widen_fnma<mode>): Ditto.
+ 	(*single_fnma<mode>): Ditto.
+ 	(*single_widen_fnma<mode>): Ditto.
+ 	(*dual_fms<mode>): Ditto.
+ 	(*dual_widen_fms<mode>): Ditto.
+ 	(*single_fms<mode>): Ditto.
+ 	(*single_widen_fms<mode>): Ditto.
+ 	(*dual_fnms<mode>): Ditto.
+ 	(*dual_widen_fnms<mode>): Ditto.
+ 	(*single_fnms<mode>): Ditto.
+ 	(*single_widen_fnms<mode>): Ditto.
+ 
+ 2023-09-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/111392
+ 	* attribs.cc (decl_attributes): Don't warn on omp::directive attribute
+ 	on vars or function decls if -fopenmp or -fopenmp-simd.
+ 
+ 2023-09-20  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	PR target/111488
+ 	* config/riscv/autovec-opt.md: Add missed operand.
+ 
+ 2023-09-20  Omar Sandoval  <osandov@osandov.com>
+ 
+ 	PR debug/111409
+ 	* dwarf2out.cc (output_macinfo): Don't call optimize_macinfo_range if
+ 	dwarf_split_debug_info.
+ 
+ 2023-09-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (can_find_related_mode_p): New function.
+ 	(vectorize_related_mode): Add VLS related modes.
+ 	* config/riscv/vector-iterators.md: Extend VLS modes.
+ 
+ 2023-09-20  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/110071
+ 	* ira-color.cc (improve_allocation): Consider cost of callee
+ 	save registers.
+ 
+ 2023-09-20  mengqinggang  <mengqinggang@loongson.cn>
+ 	    Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* configure: Regenerate.
+ 	* configure.ac: Checking assembler for -mno-relax support.
+ 	Disable relaxation when probing leb128 support.
+ 
+ 2023-09-20  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config.in: Regenerate.
+ 	* config/loongarch/genopts/loongarch.opt.in: Add compilation option
+ 	mrelax. And set the initial value of explicit-relocs according to the
+ 	detection status.
+ 	* config/loongarch/gnu-user.h: When compiling with -mno-relax, pass the
+ 	--no-relax option to the linker.
+ 	* config/loongarch/loongarch-driver.h (ASM_SPEC): When compiling with
+ 	-mno-relax, pass the -mno-relax option to the assembler.
+ 	* config/loongarch/loongarch-opts.h (HAVE_AS_MRELAX_OPTION): Define macro.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add detection of support for binutils relax function.
+ 
+ 2023-09-19  Ben Boeckel  <ben.boeckel@kitware.com>
+ 
+ 	* doc/invoke.texi: Document -fdeps-format=, -fdeps-file=, and
+ 	-fdeps-target= flags.
+ 	* gcc.cc: add defaults for -fdeps-target= and -fdeps-file= when
+ 	only -fdeps-format= is specified.
+ 	* json.h: Add a TODO item to refactor out to share with
+ 	`libcpp/mkdeps.cc`.
+ 
+ 2023-09-19  Ben Boeckel  <ben.boeckel@kitware.com>
+ 	    Jason Merrill  <jason@redhat.com>
+ 
+ 	* gcc.cc (join_spec_func): Add a spec function to join all
+ 	arguments.
+ 
+ 2023-09-19  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_const_move): Eliminate
+ 	src_op_0 var to avoid rtl check error.
+ 
+ 2023-09-19  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (frelop_early_resolve): Clean-up and remove
+ 	special casing.
+ 	(operator_not_equal::fold_range): Handle VREL_EQ.
+ 	(operator_lt::fold_range): Remove special casing for VREL_EQ.
+ 	(operator_gt::fold_range): Same.
+ 	(foperator_unordered_equal::fold_range): Same.
+ 
+ 2023-09-19  Javier Martinez  <javier.martinez.bugzilla@gmail.com>
+ 
+ 	* doc/extend.texi: Document attributes hot, cold on C++ types.
+ 
+ 2023-09-19  Pat Haugen  <pthaugen@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_rtx_costs): Check whether the
+ 	modulo instruction is disabled.
+ 	* config/rs6000/rs6000.h (RS6000_DISABLE_SCALAR_MODULO): New.
+ 	* config/rs6000/rs6000.md (mod<mode>3, *mod<mode>3): Check it.
+ 	(define_expand umod<mode>3): New.
+ 	(define_insn umod<mode>3): Rename to *umod<mode>3 and check if the modulo
+ 	instruction is disabled.
+ 	(umodti3, modti3): Check if the modulo instruction is disabled.
+ 
+ 2023-09-19  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi (fdebug-builtins): Correct description.
+ 
+ 2023-09-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/iq2000/predicates.md (uns_arith_constant): New predicate.
+ 	* config/iq2000/iq2000.md (rotrsi3): Use it.
+ 
+ 2023-09-19  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (operator_lt::op1_range): Remove known_isnan check.
+ 	(operator_lt::op2_range): Same.
+ 	(operator_le::op1_range): Same.
+ 	(operator_le::op2_range): Same.
+ 	(operator_gt::op1_range): Same.
+ 	(operator_gt::op2_range): Same.
+ 	(operator_ge::op1_range): Same.
+ 	(operator_ge::op2_range): Same.
+ 	(foperator_unordered_lt::op1_range): Same.
+ 	(foperator_unordered_lt::op2_range): Same.
+ 	(foperator_unordered_le::op1_range): Same.
+ 	(foperator_unordered_le::op2_range): Same.
+ 	(foperator_unordered_gt::op1_range): Same.
+ 	(foperator_unordered_gt::op2_range): Same.
+ 	(foperator_unordered_ge::op1_range): Same.
+ 	(foperator_unordered_ge::op2_range): Same.
+ 
+ 2023-09-19  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (frange::update_nan): New.
+ 
+ 2023-09-19  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (operator_not_equal::op2_range): New.
+ 	* range-op-mixed.h: Add operator_not_equal::op2_range.
+ 
+ 2023-09-19  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/110080
+ 	PR tree-optimization/110249
+ 	* tree-vrp.cc (remove_unreachable::final_p): New.
+ 	(remove_unreachable::maybe_register): Rename from
+ 	maybe_register_block and call early or final routine.
+ 	(fully_replaceable): New.
+ 	(remove_unreachable::handle_early): New.
+ 	(remove_unreachable::remove_and_update_globals): Remove
+ 	non-final processing.
+ 	(rvrp_folder::rvrp_folder): Add final flag to constructor.
+ 	(rvrp_folder::post_fold_bb): Remove unreachable registration.
+ 	(rvrp_folder::pre_fold_stmt): Move unreachable processing to here.
+ 	(execute_ranger_vrp): Adjust some call parameters.
+ 
+ 2023-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR c/111468
+ 	* tree-pretty-print.h (op_symbol_code): Add defaulted flags
+ 	argument.
+ 	* tree-pretty-print.cc (op_symbol): Likewise.
+ 	(op_symbol_code): Print TDF_GIMPLE variant if requested.
+ 	* gimple-pretty-print.cc (dump_binary_rhs): Pass flags to
+ 	op_symbol_code.
+ 	(dump_gimple_cond): Likewise.
+ 
+ 2023-09-19  Thomas Schwinge  <thomas@codesourcery.com>
+ 	    Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-streamer.h (bp_unpack_machine_mode): If
+ 	'ib->file_data->mode_table' not available, apply 1-to-1 mapping.
+ 
+ 2023-09-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_can_change_mode_class): Block unordered VLA and VLS modes.
+ 
+ 2023-09-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Extend VLS modes.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111465
+ 	* tree-ssa-threadupdate.cc (fwd_jt_path_registry::thread_block_1):
+ 	Cancel the path when a EDGE_NO_COPY_SRC_BLOCK became non-empty.
+ 
+ 2023-09-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Extend VLS floating-point modes.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* match.pd ((x << c) >> c): Don't call build_nonstandard_integer_type
+ 	nor check type_has_mode_precision_p for width larger than [TD]Imode
+ 	precision.
+ 	(a ? CST1 : CST2): Don't use build_nonstandard_type, just convert
+ 	to type.  Use boolean_true_node instead of
+ 	constant_boolean_node (true, boolean_type_node).  Formatting fixes.
+ 
+ 2023-09-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Add VLS modes.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree.cc (build_bitint_type): Assert precision is not 0, or
+ 	for signed types 1.
+ 	(signed_or_unsigned_type_for): Return INTEGER_TYPE for signed variant
+ 	of unsigned _BitInt(1).
+ 
+ 2023-09-19  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*<optab>_fma<mode>):
+ 	Removed old combine patterns.
+ 	(*single_<optab>mult_plus<mode>): Ditto.
+ 	(*double_<optab>mult_plus<mode>): Ditto.
+ 	(*sign_zero_extend_fma): Ditto.
+ 	(*zero_sign_extend_fma): Ditto.
+ 	(*double_widen_fma<mode>): Ditto.
+ 	(*single_widen_fma<mode>): Ditto.
+ 	(*double_widen_fnma<mode>): Ditto.
+ 	(*single_widen_fnma<mode>): Ditto.
+ 	(*double_widen_fms<mode>): Ditto.
+ 	(*single_widen_fms<mode>): Ditto.
+ 	(*double_widen_fnms<mode>): Ditto.
+ 	(*single_widen_fnms<mode>): Ditto.
+ 	(*reduc_plus_scal_<mode>): Adjust name.
+ 	(*widen_reduc_plus_scal_<mode>): Adjust name.
+ 	(*dual_widen_fma<mode>): New combine pattern.
+ 	(*dual_widen_fmasu<mode>): Ditto.
+ 	(*dual_widen_fmaus<mode>): Ditto.
+ 	(*dual_fma<mode>): Ditto.
+ 	(*single_fma<mode>): Ditto.
+ 	(*dual_fnma<mode>): Ditto.
+ 	(*single_fnma<mode>): Ditto.
+ 	(*dual_fms<mode>): Ditto.
+ 	(*single_fms<mode>): Ditto.
+ 	(*dual_fnms<mode>): Ditto.
+ 	(*single_fnms<mode>): Ditto.
+ 	* config/riscv/autovec.md (fma<mode>4):
+ 	Reafctor fma pattern.
+ 	(*fma<VI:mode><P:mode>): Removed.
+ 	(fnma<mode>4): Reafctor.
+ 	(*fnma<VI:mode><P:mode>): Removed.
+ 	(*fma<VF:mode><P:mode>):  Removed.
+ 	(*fnma<VF:mode><P:mode>):  Removed.
+ 	(fms<mode>4):  Reafctor.
+ 	(*fms<VF:mode><P:mode>):  Removed.
+ 	(fnms<mode>4): Reafctor.
+ 	(*fnms<VF:mode><P:mode>): Removed.
+ 	* config/riscv/riscv-protos.h (prepare_ternary_operands):
+ 	Adjust prototype.
+ 	* config/riscv/riscv-v.cc (prepare_ternary_operands): Refactor.
+ 	* config/riscv/vector.md (*pred_mul_plus<mode>_undef): New pattern.
+ 	(*pred_mul_plus<mode>): Removed.
+ 	(*pred_mul_plus<mode>_scalar): Removed.
+ 	(*pred_mul_plus<mode>_extended_scalar): Removed.
+ 	(*pred_minus_mul<mode>_undef):  New pattern.
+ 	(*pred_minus_mul<mode>): Removed.
+ 	(*pred_minus_mul<mode>_scalar): Removed.
+ 	(*pred_minus_mul<mode>_extended_scalar): Removed.
+ 	(*pred_mul_<optab><mode>_undef):  New pattern.
+ 	(*pred_mul_<optab><mode>): Removed.
+ 	(*pred_mul_<optab><mode>_scalar): Removed.
+ 	(*pred_mul_neg_<optab><mode>_undef):  New pattern.
+ 	(*pred_mul_neg_<optab><mode>): Removed.
+ 	(*pred_mul_neg_<optab><mode>_scalar): Removed.
+ 
+ 2023-09-19  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(builtin_decl, expand_builtin): Replace SVE with RVV.
+ 
+ 2023-09-19  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* config/riscv/t-riscv: Add dependencies for riscv-builtins.cc,
+ 	riscv-cmo.def and riscv-scalar-crypto.def.
+ 
+ 2023-09-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Extend to vls mode.
+ 
+ 2023-09-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Bugfix.
+ 	* config/riscv/riscv-protos.h (SCALAR_MOVE_MERGED_OP): New enum.
+ 
+ 2023-09-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111442
+ 	* match.pd (zero_one_valued_p): Have the bit_and match not be
+ 	recursive.
+ 
+ 2023-09-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111435
+ 	* match.pd (zero_one_valued_p): Don't do recursion
+ 	on converts.
+ 
+ 2023-09-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin-protos.h (enum darwin_external_toolchain): New.
+ 	* config/darwin.cc (DSYMUTIL_VERSION): New.
+ 	(darwin_override_options): Choose the default debug DWARF version
+ 	depending on the configured dsymutil version.
+ 
+ 2023-09-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* configure: Regenerate.
+ 	* configure.ac: Handle explict disable of stdlib option, set
+ 	defaults for Darwin.
+ 
+ 2023-09-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111431
+ 	* match.pd (`(a == CST) & a`): New pattern.
+ 
+ 2023-09-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-selftests.cc (run_broadcast_selftests): Adapt selftests.
+ 	* config/riscv/vector.md (@vec_duplicate<mode>): Remove.
+ 
+ 2023-09-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR target/105928
+ 	* config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
+ 	Add support for immediates using shifted ORR/BIC.
+ 	(aarch64_split_dimode_const_store): Apply if we save one instruction.
+ 	* config/aarch64/aarch64.md (<LOGICAL:optab>_<SHIFT:optab><mode>3):
+ 	Make pattern global.
+ 
+ 2023-09-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (neoverse-n1): Place before ares.
+ 	(neoverse-v1): Place before zeus.
+ 	(neoverse-v2): Place before demeter.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 
+ 2023-09-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Add VLS modes.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vlmul_for_greatest_sew_second_ratio): New function.
+ 	* config/riscv/riscv-vsetvl.def (DEF_SEW_LMUL_FUSE_RULE): Fix bug.
+ 
+ 2023-09-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111294
+ 	* tree-ssa-threadbackward.cc (back_threader_profitability::m_name):
+ 	Remove
+ 	(back_threader::find_paths_to_names): Adjust.
+ 	(back_threader::maybe_thread_block): Likewise.
+ 	(back_threader_profitability::possibly_profitable_path_p): Remove
+ 	code applying extra costs to copies PHIs.
+ 
+ 2023-09-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Extend VLS modes.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md (mov<mode>): New pattern.
+ 	(*mov<mode>_mem_to_mem): Ditto.
+ 	(*mov<mode>): Ditto.
+ 	(@mov<VLS_AVL_REG:mode><P:mode>_lra): Ditto.
+ 	(*mov<VLS_AVL_REG:mode><P:mode>_lra): Ditto.
+ 	(*mov<mode>_vls): Ditto.
+ 	(movmisalign<mode>): Ditto.
+ 	(@vec_duplicate<mode>): Ditto.
+ 	* config/riscv/autovec-vls.md: Removed.
+ 
+ 2023-09-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111153
+ 	* config/riscv/autovec.md: Add VLS modes.
+ 
+ 2023-09-18  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/gty.texi: Add discussion of cache vs. deletable.
+ 
+ 2023-09-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-vls.md (<optab><mode>3): Deleted.
+ 	(copysign<mode>3): Ditto.
+ 	(xorsign<mode>3): Ditto.
+ 	(<optab><mode>2): Ditto.
+ 	* config/riscv/autovec.md: Extend VLS modes.
+ 
+ 2023-09-18  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR middle-end/111303
+ 	* match.pd ((t * 2) / 2): Update pattern.
+ 
+ 2023-09-17  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
+ 
+ 	* config/rs6000/vsx.md (*vctzlsbb_zext_<mode>): New define_insn.
+ 
+ 2023-09-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111391
+ 	* config/riscv/autovec.md (@vec_extract<mode><vel>): Remove @.
+ 	(vec_extract<mode><vel>): Ditto.
+ 	* config/riscv/riscv-vsetvl.cc (emit_vsetvl_insn): Fix bug.
+ 	(pass_vsetvl::local_eliminate_vsetvl_insn): Fix bug.
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Expand VLS mode to scalar mode move.
+ 
+ 2023-09-16  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* config/riscv/crypto.md (riscv_sha256sig0_<mode>,
+ 	riscv_sha256sig1_<mode>, riscv_sha256sum0_<mode>,
+ 	riscv_sha256sum1_<mode>, riscv_sm3p0_<mode>, riscv_sm3p1_<mode>,
+ 	riscv_sm4ed_<mode>, riscv_sm4ks_<mode>): Remove and replace with
+ 	new insn/expansions.
+ 	(SHA256_OP, SM3_OP, SM4_OP): New iterators.
+ 	(sha256_op, sm3_op, sm4_op): New attributes for iteration.
+ 	(*riscv_<sha256_op>_si): New raw instruction for RV32.
+ 	(*riscv_<sm3_op>_si): Ditto.
+ 	(*riscv_<sm4_op>_si): Ditto.
+ 	(riscv_<sha256_op>_di_extended): New base instruction for RV64.
+ 	(riscv_<sm3_op>_di_extended): Ditto.
+ 	(riscv_<sm4_op>_di_extended): Ditto.
+ 	(riscv_<sha256_op>_si): New common instruction expansion.
+ 	(riscv_<sm3_op>_si): Ditto.
+ 	(riscv_<sm4_op>_si): Ditto.
+ 	* config/riscv/riscv-builtins.cc: Add availability "crypto_zknh",
+ 	"crypto_zksh" and "crypto_zksed".  Remove availability
+ 	"crypto_zksh{32,64}" and "crypto_zksed{32,64}".
+ 	* config/riscv/riscv-ftypes.def: Remove unused function type.
+ 	* config/riscv/riscv-scalar-crypto.def: Make SHA-256, SM3 and SM4
+ 	intrinsics to operate on uint32_t.
+ 
+ 2023-09-16  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* config/riscv/riscv-builtins.cc (RISCV_ATYPE_UQI): New for
+ 	uint8_t.  (RISCV_ATYPE_UHI): New for uint16_t.
+ 	(RISCV_ATYPE_QI, RISCV_ATYPE_HI, RISCV_ATYPE_SI, RISCV_ATYPE_DI):
+ 	Removed as no longer used.
+ 	(RISCV_ATYPE_UDI): New for uint64_t.
+ 	* config/riscv/riscv-cmo.def: Make types unsigned for not working
+ 	"zicbop_cbo_prefetchi" and working bit manipulation clmul builtin
+ 	argument/return types.
+ 	* config/riscv/riscv-ftypes.def: Make bit manipulation, round
+ 	number and shift amount types unsigned.
+ 	* config/riscv/riscv-scalar-crypto.def: Ditto.
+ 
+ 2023-09-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-vls.md (xorsign<mode>3): New pattern.
+ 
+ 2023-09-15  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/predicates.md: Restrict predicate
+ 	to allow 'reg' only.
+ 
+ 2023-09-15  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (zero_one_valued_p): Match a cast from a zero_one_valued_p.
+ 	Also match `a & zero_one_valued_p` too.
+ 
+ 2023-09-15  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111414
+ 	* match.pd (`(1 >> X) != 0`): Check to see if
+ 	the integer_onep was an integral type (not a vector type).
+ 
+ 2023-09-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Always
+ 	run phi analysis, and do it before loop analysis.
+ 
+ 2023-09-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Fix
+ 	indentation.
+ 
+ 2023-09-15  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR tree-optimization/111407
+ 	* tree-ssa-math-opts.cc (convert_mult_to_widen): Avoid the transform
+ 	when one of the operands is subject to abnormal coalescing.
+ 
+ 2023-09-15  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (enum insn_flags): Change name.
+ 	(enum insn_type): Ditto.
+ 	* config/riscv/riscv-v.cc (get_mask_mode_from_insn_flags): Removed.
+ 	(emit_vlmax_insn): Adjust.
+ 	(emit_nonvlmax_insn): Adjust.
+ 	(emit_vlmax_insn_lra): Adjust.
+ 
+ 2023-09-15  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md: Adjust.
+ 	* config/riscv/autovec.md: Ditto.
+ 	* config/riscv/riscv-protos.h (enum class): Delete enum reduction_type.
+ 	(expand_reduction): Adjust expand_reduction prototype.
+ 	* config/riscv/riscv-v.cc (need_mask_operand_p): New helper function.
+ 	(expand_reduction): Refactor expand_reduction.
+ 
+ 2023-09-15  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/111411
+ 	* config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp): Require
+ 	the lower memory access to a mem-pair operand.
+ 
+ 2023-09-15  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: Pass the default ABI via TM_MULTILIB_CONFIG.
+ 	* config/loongarch/loongarch-driver.h: Invoke MLIB_SELF_SPECS
+ 	before the driver canonicalization routines.
+ 	* config/loongarch/loongarch.h: Move definitions of CC1_SPEC etc.
+ 	to loongarch-driver.h
+ 	* config/loongarch/t-linux: Move multilib-related definitions to
+ 	t-multilib.
+ 	* config/loongarch/t-multilib: New file.  Inject library build
+ 	options obtained from --with-multilib-list.
+ 	* config/loongarch/t-loongarch: Same.
+ 
+ 2023-09-15  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	PR target/111381
+ 	* config/riscv/autovec-opt.md (*reduc_plus_scal_<mode>):
+ 	New combine pattern.
+ 	(*fold_left_widen_plus_<mode>): Ditto.
+ 	(*mask_len_fold_left_widen_plus_<mode>): Ditto.
+ 	* config/riscv/autovec.md (reduc_plus_scal_<mode>):
+ 	Change from define_expand to define_insn_and_split.
+ 	(fold_left_plus_<mode>): Ditto.
+ 	(mask_len_fold_left_plus_<mode>): Ditto.
+ 	* config/riscv/riscv-v.cc (expand_reduction):
+ 	Support widen reduction.
+ 	* config/riscv/vector-iterators.md (UNSPEC_WREDUC_SUM):
+ 	Add new iterators and attrs.
+ 
+ 2023-09-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-event-id.h (diagnostic_thread_id_t): New typedef.
+ 	* diagnostic-format-sarif.cc (class sarif_thread_flow): New.
+ 	(sarif_thread_flow::sarif_thread_flow): New.
+ 	(sarif_builder::make_code_flow_object): Reimplement, creating
+ 	per-thread threadFlow objects, populating them with the relevant
+ 	events.
+ 	(sarif_builder::make_thread_flow_object): Delete, moving the
+ 	code into sarif_builder::make_code_flow_object.
+ 	(sarif_builder::make_thread_flow_location_object): Add
+ 	"path_event_idx" param.  Use it to set "executionOrder"
+ 	property.
+ 	* diagnostic-path.h (diagnostic_event::get_thread_id): New
+ 	pure-virtual vfunc.
+ 	(class diagnostic_thread): New.
+ 	(diagnostic_path::num_threads): New pure-virtual vfunc.
+ 	(diagnostic_path::get_thread):  New pure-virtual vfunc.
+ 	(diagnostic_path::multithreaded_p): New decl.
+ 	(simple_diagnostic_event::simple_diagnostic_event): Add optional
+ 	thread_id param.
+ 	(simple_diagnostic_event::get_thread_id): New accessor.
+ 	(simple_diagnostic_event::m_thread_id): New.
+ 	(class simple_diagnostic_thread): New.
+ 	(simple_diagnostic_path::simple_diagnostic_path): Move definition
+ 	to diagnostic.cc.
+ 	(simple_diagnostic_path::num_threads): New.
+ 	(simple_diagnostic_path::get_thread): New.
+ 	(simple_diagnostic_path::add_thread): New.
+ 	(simple_diagnostic_path::add_thread_event): New.
+ 	(simple_diagnostic_path::m_threads): New.
+ 	* diagnostic-show-locus.cc (layout::layout): Add pretty_printer
+ 	param for overriding the context's printer.
+ 	(diagnostic_show_locus): Likwise.
+ 	* diagnostic.cc (simple_diagnostic_path::simple_diagnostic_path):
+ 	Move here from diagnostic-path.h.  Add main thread.
+ 	(simple_diagnostic_path::num_threads): New.
+ 	(simple_diagnostic_path::get_thread): New.
+ 	(simple_diagnostic_path::add_thread): New.
+ 	(simple_diagnostic_path::add_thread_event): New.
+ 	(simple_diagnostic_event::simple_diagnostic_event): Add thread_id
+ 	param and use it to initialize m_thread_id.  Reformat.
+ 	* diagnostic.h: Add pretty_printer param for overriding the
+ 	context's printer.
+ 	* tree-diagnostic-path.cc: Add #define INCLUDE_VECTOR.
+ 	(can_consolidate_events): Compare thread ids.
+ 	(class per_thread_summary): New.
+ 	(event_range::event_range): Add per_thread_summary arg.
+ 	(event_range::print): Add "pp" param and use it rather than dc's
+ 	printer.
+ 	(event_range::m_thread_id): New field.
+ 	(event_range::m_per_thread_summary): New field.
+ 	(path_summary::multithreaded_p): New.
+ 	(path_summary::get_events_for_thread_id): New.
+ 	(path_summary::m_per_thread_summary): New field.
+ 	(path_summary::m_thread_id_to_events): New field.
+ 	(path_summary::get_or_create_events_for_thread_id): New.
+ 	(path_summary::path_summary): Create per_thread_summary instances
+ 	as needed and associate the event_range instances with them.
+ 	(base_indent): Move here from print_path_summary_as_text.
+ 	(per_frame_indent): Likewise.
+ 	(class thread_event_printer): New, adapted from parts of
+ 	print_path_summary_as_text.
+ 	(print_path_summary_as_text): Make static.  Reimplement to
+ 	moving most of existing code to class thread_event_printer,
+ 	capturing state as per-thread as appropriate.
+ 	(default_tree_diagnostic_path_printer): Add missing 'break' on
+ 	final case.
+ 
+ 2023-09-14  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* dwarf2cfi.cc (dwarf2cfi_cc_finalize): New.
+ 	* dwarf2out.h (dwarf2cfi_cc_finalize): New decl.
+ 	* ggc-common.cc (ggc_mark_roots): Multiply by rti->nelt when
+ 	clearing the deletable gcc_root_tab_t.
+ 	(ggc_common_finalize): New.
+ 	* ggc.h (ggc_common_finalize): New decl.
+ 	* toplev.cc (toplev::finalize): Call dwarf2cfi_cc_finalize and
+ 	ggc_common_finalize.
+ 
+ 2023-09-14  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/predicates.md (xtensa_cstoresi_operator): Add
+ 	unsigned comparisons.
+ 	* config/xtensa/xtensa.cc (xtensa_expand_scc): Add code
+ 	generation of salt/saltu instructions.
+ 	* config/xtensa/xtensa.h (TARGET_SALT): New macro.
+ 	* config/xtensa/xtensa.md (salt, saltu): New instruction
+ 	patterns.
+ 
+ 2023-09-14  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira-costs.cc (find_costs_and_classes): Decrease memory cost
+ 	by equiv savings.
+ 
+ 2023-09-14  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Change rtx code to unspec.
+ 	* config/riscv/riscv-protos.h (expand_reduction): Change prototype.
+ 	* config/riscv/riscv-v.cc (expand_reduction): Change prototype.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class widen_reducop):
+ 	Removed.
+ 	(class widen_freducop): Removed.
+ 	* config/riscv/vector-iterators.md (minu): Add reduc unspec, iterators, attrs.
+ 	* config/riscv/vector.md (@pred_reduc_<reduc><mode>): Change name.
+ 	(@pred_<reduc_op><mode>): New name.
+ 	(@pred_widen_reduc_plus<v_su><mode>): Change name.
+ 	(@pred_reduc_plus<order><mode>): Change name.
+ 	(@pred_widen_reduc_plus<order><mode>): Change name.
+ 
+ 2023-09-14  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_reduction): Adjust call.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Adjust call.
+ 	* config/riscv/vector-iterators.md: New iterators and attrs.
+ 	* config/riscv/vector.md (@pred_reduc_<reduc><VQI:mode><VQI_LMUL1:mode>):
+ 	Removed.
+ 	(@pred_reduc_<reduc><VHI:mode><VHI_LMUL1:mode>): Removed.
+ 	(@pred_reduc_<reduc><VSI:mode><VSI_LMUL1:mode>): Removed.
+ 	(@pred_reduc_<reduc><VDI:mode><VDI_LMUL1:mode>): Removed.
+ 	(@pred_reduc_<reduc><mode>): Added.
+ 	(@pred_widen_reduc_plus<v_su><VQI:mode><VHI_LMUL1:mode>): Removed.
+ 	(@pred_widen_reduc_plus<v_su><VHI:mode><VSI_LMUL1:mode>): Removed.
+ 	(@pred_widen_reduc_plus<v_su><mode>): Added.
+ 	(@pred_widen_reduc_plus<v_su><VSI:mode><VDI_LMUL1:mode>): Removed.
+ 	(@pred_reduc_<reduc><VHF:mode><VHF_LMUL1:mode>): Removed.
+ 	(@pred_reduc_<reduc><VSF:mode><VSF_LMUL1:mode>): Removed.
+ 	(@pred_reduc_<reduc><VDF:mode><VDF_LMUL1:mode>): Removed.
+ 	(@pred_reduc_plus<order><VHF:mode><VHF_LMUL1:mode>): Removed.
+ 	(@pred_reduc_plus<order><VSF:mode><VSF_LMUL1:mode>): Removed.
+ 	(@pred_reduc_plus<order><mode>): Added.
+ 	(@pred_reduc_plus<order><VDF:mode><VDF_LMUL1:mode>): Removed.
+ 	(@pred_widen_reduc_plus<order><VHF:mode><VSF_LMUL1:mode>): Removed.
+ 	(@pred_widen_reduc_plus<order><VSF:mode><VDF_LMUL1:mode>): Removed.
+ 	(@pred_widen_reduc_plus<order><mode>): Added.
+ 
+ 2023-09-14  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_vector_costs::analyze_loop_info):
+ 	Move WHILELO handling to...
+ 	(aarch64_vector_costs::finish_cost): ...here.  Check whether the
+ 	vectorizer has decided to use a predicated loop.
+ 
+ 2023-09-14  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/106164
+ 	* match.pd (`(X CMP1 CST1) AND/IOR (X CMP2 CST2)`):
+ 	Expand to support constants that are off by one.
+ 
+ 2023-09-14  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* genmatch.cc (parser::parse_result): For an else clause
+ 	of an if statement inside a switch, error out explictly.
+ 
+ 2023-09-14  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md: Add VLS mask modes.
+ 	* config/riscv/autovec.md (@vcond_mask_<mode><vm>): Remove @.
+ 	(vcond_mask_<mode><vm>): Add VLS mask modes.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111294
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Track
+ 	operands that eventually become dead and use simple_dce_from_worklist
+ 	to remove their definitions if they did so.
+ 
+ 2023-09-14  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_vec_duplicate_vq<mode>_le):
+ 	Accept all nonimmediate_operands, but keep the existing constraints.
+ 	If the instruction is split before RA, load invalid addresses into
+ 	a temporary register.
+ 	* config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): Delete.
+ 
+ 2023-09-14  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111395
+ 	* config/riscv/riscv-vsetvl.cc (avl_info::operator==): Fix ICE.
+ 	(vector_insn_info::global_merge): Ditto.
+ 	(vector_insn_info::get_avl_or_vl_reg): Ditto.
+ 
+ 2023-09-14  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::global_eliminate_vsetvl_insn): Format it.
+ 
+ 2023-09-14  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-def.c: Modify the default value of
+ 	branch_cost.
+ 
+ 2023-09-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_expand_scc):
+ 	Revert the changes from the last patch, as the work in the RTL
+ 	expansion pass is too far to determine the physical registers.
+ 	* config/xtensa/xtensa.md (*eqne_INT_MIN): Ditto.
+ 	(eq_zero_NSA, eqne_zero, *eqne_zero_masked_bits): New patterns.
+ 
+ 2023-09-14  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/111334
+ 	* config/loongarch/loongarch.md: Fix bug of '<optab>di3_fake'.
+ 
+ 2023-09-13  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (vec_extract<mode><vel>): Add VLS modes.
+ 	(@vec_extract<mode><vel>): Ditto.
+ 	* config/riscv/vector.md: Ditto
+ 
+ 2023-09-13  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`X <= MAX(X, Y)`):
+ 	Move before `MIN (X, C1) < C2` pattern.
+ 
+ 2023-09-13  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111364
+ 	* match.pd (`MIN (X, Y) == X`): Extend
+ 	to min/lt, min/ge, max/gt, max/le.
+ 
+ 2023-09-13  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111345
+ 	* match.pd (`Y > (X % Y)`): Merge
+ 	into ...
+ 	(`(X % Y) < Y`): Pattern by adding `:c`
+ 	on the comparison.
+ 
+ 2023-09-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111387
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Check
+ 	EDGE_DFS_BACK when doing BB vectorization.
+ 	(vect_slp_function): Use rev_post_order_and_mark_dfs_back_seme
+ 	to compute RPO and mark backedges.
+ 
+ 2023-09-13  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_<mulh_table><mode>3_highpart):
+ 	New combine pattern.
+ 	* config/riscv/autovec.md (smul<mode>3_highpart): Mrege smul and umul.
+ 	(<mulh_table><mode>3_highpart): Merged pattern.
+ 	(umul<mode>3_highpart): Mrege smul and umul.
+ 	* config/riscv/vector-iterators.md (umul): New iterators.
+ 	(UNSPEC_VMULHU): New iterators.
+ 
+ 2023-09-13  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_v<any_shiftrt:optab><any_extend:optab>trunc<mode>):
+ 	New combine pattern.
+ 	(*cond_<any_shiftrt:optab>trunc<mode>): Ditto.
+ 
+ 2023-09-13  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*copysign<mode>_neg): Move.
+ 	(*cond_copysign<mode>): New combine pattern.
+ 	* config/riscv/riscv-v.cc (needs_fp_rounding): Extend.
+ 
+ 2023-09-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111397
+ 	* tree-ssa-propagate.cc (may_propagate_copy): Change optional
+ 	argument to specify whether the PHI destination doesn't flow in
+ 	from an abnormal PHI.
+ 	(propagate_value): Adjust.
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Indicate abnormal
+ 	PHI dest.
+ 	* tree-ssa-sccvn.cc (eliminate_dom_walker::before_dom_children):
+ 	Likewise.
+ 	(process_bb): Likewise.
+ 
+ 2023-09-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/111362
+ 	* config/riscv/riscv.cc (riscv_emit_frm_mode_set): Bugfix.
+ 
+ 2023-09-13  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR tree-optimization/111303
+ 	* match.pd ((X - N * M) / N): Add undefined_p checking.
+ 	((X + N * M) / N): Likewise.
+ 	((X + C) div_rshift N): Likewise.
+ 
+ 2023-09-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111337
+ 	* config/riscv/autovec.md (vcond_mask_<mode><mode>): New pattern.
+ 
+ 2023-09-12  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* dbgcnt.def (form_fma): New.
+ 	* tree-ssa-math-opts.cc: Include dbgcnt.h.
+ 	(convert_mult_to_fma): Bail out if the debug counter say so.
+ 
+ 2023-09-12  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/autovec-opt.md: Update type
+ 	* config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_save_regs_above_locals_p):
+ 	New function.
+ 	(aarch64_layout_frame): Use it to decide whether locals should
+ 	go above or below the saved registers.
+ 	(aarch64_expand_prologue): Update stack layout comment.
+ 	Emit a stack tie after the final adjustment.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame::saved_regs_size)
+ 	(aarch64_frame::below_hard_fp_saved_regs_size): Delete.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Update accordingly.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame::sve_save_and_probe)
+ 	(aarch64_frame::hard_fp_save_and_probe): New fields.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize them.
+ 	Rather than asserting that a leaf function saves LR, instead assert
+ 	that a leaf function saves something.
+ 	(aarch64_get_separate_components): Prevent the chosen probe
+ 	registers from being individually shrink-wrapped.
+ 	(aarch64_allocate_and_probe_stack_space): Remove workaround for
+ 	probe registers that aren't at the bottom of the previous allocation.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
+ 	Always probe the residual allocation at offset 1024, asserting
+ 	that that is in range.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Ensure that
+ 	the LR save slot is in the first 16 bytes of the register save area.
+ 	Only form STP/LDP push/pop candidates if both registers are valid.
+ 	(aarch64_allocate_and_probe_stack_space): Remove workaround for
+ 	when LR was not in the first 16 bytes.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
+ 	Don't probe final allocations that are exactly 1KiB in size (after
+ 	unprobed space above the final allocation has been deducted).
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Tweak
+ 	calculation of initial_adjust for frames in which all saves
+ 	are SVE saves.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Simplify
+ 	the allocation of the top of the frame.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame): Add comment above
+ 	reg_offset.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Walk offsets
+ 	from the bottom of the frame, rather than the bottom of the saved
+ 	register area.  Measure reg_offset from the bottom of the frame
+ 	rather than the bottom of the saved register area.
+ 	(aarch64_save_callee_saves): Update accordingly.
+ 	(aarch64_restore_callee_saves): Likewise.
+ 	(aarch64_get_separate_components): Likewise.
+ 	(aarch64_process_components): Likewise.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame::frame_size): Tweak comment.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame::hard_fp_offset): Rename
+ 	to...
+ 	(aarch64_frame::bytes_above_hard_fp): ...this.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame)
+ 	(aarch64_expand_prologue): Update accordingly.
+ 	(aarch64_initial_elimination_offset): Likewise.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame::locals_offset): Rename to...
+ 	(aarch64_frame::bytes_above_locals): ...this.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame)
+ 	(aarch64_initial_elimination_offset): Update accordingly.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_expand_prologue): Move the
+ 	calculation of chain_offset into the emit_frame_chain block.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame::callee_offset): Delete.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Remove
+ 	callee_offset handling.
+ 	(aarch64_save_callee_saves): Replace the start_offset parameter
+ 	with a bytes_below_sp parameter.
+ 	(aarch64_restore_callee_saves): Likewise.
+ 	(aarch64_expand_prologue): Update accordingly.
+ 	(aarch64_expand_epilogue): Likewise.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame::bytes_below_hard_fp): New
+ 	field.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it.
+ 	(aarch64_expand_epilogue): Use it instead of
+ 	below_hard_fp_saved_regs_size.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_frame::bytes_below_saved_regs): New
+ 	field.
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it,
+ 	and use it instead of crtl->outgoing_args_size.
+ 	(aarch64_get_separate_components): Use bytes_below_saved_regs instead
+ 	of outgoing_args_size.
+ 	(aarch64_process_components): Likewise.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_layout_frame): Explicitly
+ 	allocate the frame in one go if there are no saved registers.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_expand_prologue): Use
+ 	chain_offset rather than callee_offset.
+ 
+ 2023-09-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
+ 	a local shorthand for cfun->machine->frame.
+ 	(aarch64_restore_callee_saves, aarch64_get_separate_components):
+ 	(aarch64_process_components): Likewise.
+ 	(aarch64_allocate_and_probe_stack_space): Likewise.
+ 	(aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
+ 	(aarch64_layout_frame): Use existing shorthand for one more case.
+ 
+ 2023-09-12  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/107881
+ 	* match.pd (`(a CMP1 b) ^ (a CMP2 b)`): New pattern.
+ 	(`(a CMP1 b) == (a CMP2 b)`): New pattern.
+ 
+ 2023-09-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-costs.h (struct range): Removed.
+ 
+ 2023-09-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (get_last_live_range): New function.
+ 	(compute_nregs_for_mode): Ditto.
+ 	(live_range_conflict_p): Ditto.
+ 	(max_number_of_live_regs): Ditto.
+ 	(compute_lmul): Ditto.
+ 	(costs::prefer_new_lmul_p): Ditto.
+ 	(costs::better_main_loop_than_p): Ditto.
+ 	* config/riscv/riscv-vector-costs.h (struct stmt_point): New struct.
+ 	(struct var_live_range): Ditto.
+ 	(struct autovec_info): Ditto.
+ 	* config/riscv/t-riscv: Update makefile for COST model.
+ 
+ 2023-09-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* fold-const.cc (range_check_type): Handle BITINT_TYPE like
+ 	OFFSET_TYPE.
+ 
+ 2023-09-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/111338
+ 	* tree-ssa-sccvn.cc (struct vn_walk_cb_data): Add bufsize non-static
+ 	data member.
+ 	(vn_walk_cb_data::push_partial_def): Remove bufsize variable.
+ 	(visit_nary_op): Avoid the BIT_AND_EXPR with constant rhs2
+ 	optimization if type's precision is too large for
+ 	vn_walk_cb_data::bufsize.
+ 
+ 2023-09-12  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi (Compiler options): Document new option
+ 	-Wcase-enum.
+ 
+ 2023-09-12  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* doc/sourcebuild.texi (stack_size): Update.
+ 
+ 2023-09-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/bitmanip.md (*<optab>_not<mode>): Export INSN name.
+ 	(<optab>_not<mode>3): Likewise.
+ 	* config/riscv/riscv-protos.h (riscv_expand_strcmp): New
+ 	prototype.
+ 	* config/riscv/riscv-string.cc (GEN_EMIT_HELPER3): New helper
+ 	macros.
+ 	(GEN_EMIT_HELPER2): Likewise.
+ 	(emit_strcmp_scalar_compare_byte): New function.
+ 	(emit_strcmp_scalar_compare_subword): Likewise.
+ 	(emit_strcmp_scalar_compare_word): Likewise.
+ 	(emit_strcmp_scalar_load_and_compare): Likewise.
+ 	(emit_strcmp_scalar_call_to_libc): Likewise.
+ 	(emit_strcmp_scalar_result_calculation_nonul): Likewise.
+ 	(emit_strcmp_scalar_result_calculation): Likewise.
+ 	(riscv_expand_strcmp_scalar): Likewise.
+ 	(riscv_expand_strcmp): Likewise.
+ 	* config/riscv/riscv.md (*slt<u>_<X:mode><GPR:mode>): Export
+ 	INSN name.
+ 	(@slt<u>_<X:mode><GPR:mode>3): Likewise.
+ 	(cmpstrnsi): Invoke expansion function for str(n)cmp.
+ 	(cmpstrsi): Likewise.
+ 	* config/riscv/riscv.opt: Add new parameter
+ 	'-mstring-compare-inline-limit'.
+ 	* doc/invoke.texi: Document new parameter
+ 	'-mstring-compare-inline-limit'.
+ 
+ 2023-09-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config.gcc: Add new object riscv-string.o.
+ 	riscv-string.cc.
+ 	* config/riscv/riscv-protos.h (riscv_expand_strlen):
+ 	New function.
+ 	* config/riscv/riscv.md (strlen<mode>): New expand INSN.
+ 	* config/riscv/riscv.opt: New flag 'minline-strlen'.
+ 	* config/riscv/t-riscv: Add new object riscv-string.o.
+ 	* config/riscv/thead.md (th_rev<mode>2): Export INSN name.
+ 	(th_rev<mode>2): Likewise.
+ 	(th_tstnbz<mode>2): New INSN.
+ 	* doc/invoke.texi: Document '-minline-strlen'.
+ 	* emit-rtl.cc (emit_likely_jump_insn): New helper function.
+ 	(emit_unlikely_jump_insn): Likewise.
+ 	* rtl.h (emit_likely_jump_insn): New prototype.
+ 	(emit_unlikely_jump_insn): Likewise.
+ 	* config/riscv/riscv-string.cc: New file.
+ 
+ 2023-09-12  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config/nvptx/nvptx.h (TARGET_USE_LOCAL_THUNK_ALIAS_P)
+ 	(TARGET_SUPPORTS_ALIASES): Define.
+ 
+ 2023-09-12  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* doc/sourcebuild.texi (check-function-bodies): Update.
+ 
+ 2023-09-12  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* gimplify.cc (gimplify_bind_expr): Check for
+ 	insertion after variable cleanup.  Convert 'omp allocate'
+ 	var-decl attribute to GOMP_alloc/GOMP_free calls.
+ 
+ 2023-09-12  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: remove unused
+ 		parameter e and replace NULL_RTX with gcc_unreachable.
+ 
+ 2023-09-12  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vcreate): New class.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vcreate): Add vcreate support.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct vcreate_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc: Add args type.
+ 
+ 2023-09-12  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc
+ 	(riscv_avoid_shrink_wrapping_separate): wrap the condition check in
+ 	riscv_avoid_shrink_wrapping_separate.
+ 	(riscv_avoid_multi_push):avoid multi push if shrink_wrapping_separate
+ 	is active.
+ 	(riscv_get_separate_components):call riscv_avoid_shrink_wrapping_separate
+ 
+ 2023-09-12  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* shrink-wrap.cc (try_shrink_wrapping_separate):call
+ 	use_shrink_wrapping_separate.
+ 	(use_shrink_wrapping_separate): wrap the condition
+ 	check in use_shrink_wrapping_separate.
+ 	* shrink-wrap.h (use_shrink_wrapping_separate): add to extern
+ 
+ 2023-09-11  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111348
+ 	* match.pd (`(a CMP b) ? minmax<a, c> : minmax<b, c>`): Add :c on
+ 	the cmp part of the pattern.
+ 
+ 2023-09-11  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/111340
+ 	* config/i386/i386.cc (output_pic_addr_const): Handle CONST_WIDE_INT.
+ 	Call output_addr_const for CASE_CONST_SCALAR_INT.
+ 
+ 2023-09-11  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/thead.md: Update types
+ 
+ 2023-09-11  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md: Update types
+ 
+ 2023-09-11  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md: Add "zicond" type
+ 	* config/riscv/zicond.md: Update types
+ 
+ 2023-09-11  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md: Add "pushpop" and "mvpair" types
+ 	* config/riscv/zc.md: Update types
+ 
+ 2023-09-11  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/autovec-opt.md: Update types
+ 	* config/riscv/autovec.md: likewise
+ 
+ 2023-09-11  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtins.def (s390_vec_signed_flt): Fix
+ 	builtin flag.
+ 	(s390_vec_unsigned_flt): Ditto.
+ 	(s390_vec_revb_flt): Ditto.
+ 	(s390_vec_reve_flt): Ditto.
+ 	(s390_vclfnhs): Fix operand flags.
+ 	(s390_vclfnls): Ditto.
+ 	(s390_vcrnfs): Ditto.
+ 	(s390_vcfn): Ditto.
+ 	(s390_vcnf): Ditto.
+ 
+ 2023-09-11  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtins.def (O_U64): New.
+ 	(O1_U64): Ditto.
+ 	(O2_U64): Ditto.
+ 	(O3_U64): Ditto.
+ 	(O4_U64): Ditto.
+ 	(O_M12): Change bit position.
+ 	(O_S2): Ditto.
+ 	(O_S3): Ditto.
+ 	(O_S4): Ditto.
+ 	(O_S5): Ditto.
+ 	(O_S8): Ditto.
+ 	(O_S12): Ditto.
+ 	(O_S16): Ditto.
+ 	(O_S32): Ditto.
+ 	(O_ELEM): Ditto.
+ 	(O_LIT): Ditto.
+ 	(OB_DEF_VAR): Add operand constraints.
+ 	(B_DEF): Ditto.
+ 	* config/s390/s390.cc (s390_const_operand_ok): Honour 64 bit
+ 	operands.
+ 
+ 2023-09-11  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111349
+ 	* match.pd (`(a CMP CST1) ? max<a,CST2> : a`): Add :c on
+ 	the cmp part of the pattern.
+ 
+ 2023-09-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111311
+ 	* config/riscv/riscv.opt: Set default as scalable vectorization.
+ 
+ 2023-09-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (get_all_predecessors): Remove.
+ 	(get_all_successors): Ditto.
+ 	* config/riscv/riscv-v.cc (get_all_predecessors): Ditto.
+ 	(get_all_successors): Ditto.
+ 
+ 2023-09-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/111329
+ 	* pretty-print.h (pp_wide_int): Rewrite from macro into inline
+ 	function.  For printing values which don't fit into digit_buffer
+ 	use out-of-line function.
+ 	* wide-int-print.h (pp_wide_int_large): Declare.
+ 	* wide-int-print.cc: Include pretty-print.h.
+ 	(pp_wide_int_large): Define.
+ 
+ 2023-09-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::global_eliminate_vsetvl_insn):
+ 	Use dominance analysis.
+ 	(pass_vsetvl::init): Ditto.
+ 	(pass_vsetvl::done): Ditto.
+ 
+ 2023-09-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111311
+ 	* config/riscv/autovec.md: Add VLS modes.
+ 	* config/riscv/riscv-protos.h (cmp_lmul_le_one): New function.
+ 	(cmp_lmul_gt_one): Ditto.
+ 	* config/riscv/riscv-v.cc (cmp_lmul_le_one): Ditto.
+ 	(cmp_lmul_gt_one): Ditto.
+ 	* config/riscv/riscv.cc (riscv_print_operand): Add VLS modes.
+ 	(riscv_vectorize_vec_perm_const): Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-vls.md (*mov<mode>_vls): New pattern.
+ 	* config/riscv/vector-iterators.md: New iterator
+ 
+ 2023-09-11  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111346
+ 	* match.pd (`X CMP MINMAX`): Add `:c` on the cmp part
+ 	of the pattern
+ 
+ 2023-09-11  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/111306
+ 	PR target/111335
+ 	* config/i386/sse.md (int_comm): New int_attr.
+ 	(fma_<complexopname>_<mode><sdc_maskz_name><round_name>):
+ 	Remove % for Complex conjugate operations since they're not
+ 	commutative.
+ 	(fma_<complexpairopname>_<mode>_pair): Ditto.
+ 	(<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto.
+ 	(cmul<conj_op><mode>3): Ditto.
+ 
+ 2023-09-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_generic_patterns): Expand
+ 	fixed-vlmax/vls vector permutation.
+ 
+ 2023-09-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_compress_patterns): Avoid unnecessary slideup.
+ 
+ 2023-09-10  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111331
+ 	* match.pd (`(a CMP CST1) ? max<a,CST2> : a`):
+ 	Fix the LE/GE comparison to the correct value.
+ 	* tree-ssa-phiopt.cc (minmax_replacement):
+ 	Fix the LE/GE comparison for the
+ 	`(a CMP CST1) ? max<a,CST2> : a` optimization.
+ 
+ 2023-09-10  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (darwin_function_section): Place unlikely
+ 	executed global init code into the standard cold section.
+ 
+ 2023-09-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111311
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::vsetvl_fusion): Add TDF_DETAILS.
+ 	(pass_vsetvl::pre_vsetvl): Ditto.
+ 	(pass_vsetvl::init): Ditto.
+ 	(pass_vsetvl::lazy_vsetvl): Ditto.
+ 
+ 2023-09-09  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md (mulsidi3_64bit):
+ 	Field unsigned extension support.
+ 	(<u>muldi3_highpart): Modify template name.
+ 	(<u>mulsi3_highpart): Likewise.
+ 	(<u>mulsidi3_64bit): Field unsigned extension support.
+ 	(<su>muldi3_highpart): Modify muldi3_highpart to
+ 	smuldi3_highpart.
+ 	(<su>mulsi3_highpart): Modify mulsi3_highpart to
+ 	smulsi3_highpart.
+ 
+ 2023-09-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_block_move_straight):
+ 	Check precondition (delta must be a power of 2) and use
+ 	popcount_hwi instead of a homebrew loop.
+ 
+ 2023-09-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.h (LARCH_MAX_MOVE_PER_INSN):
+ 	Define to the maximum amount of bytes able to be loaded or
+ 	stored with one machine instruction.
+ 	* config/loongarch/loongarch.cc (loongarch_mode_for_move_size):
+ 	New static function.
+ 	(loongarch_block_move_straight): Call
+ 	loongarch_mode_for_move_size for machine_mode to be moved.
+ 	(loongarch_expand_block_move): Use LARCH_MAX_MOVE_PER_INSN
+ 	instead of UNITS_PER_WORD.
+ 
+ 2023-09-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Fix floating-point operations predicate.
+ 
+ 2023-09-09  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* fold-const.cc (can_min_p): New function.
+ 	(poly_int_binop): Try fold MIN_EXPR.
+ 
+ 2023-09-08  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_ltgt::fold_range): Do not special
+ 	case VREL_EQ nor call frelop_early_resolve.
+ 
+ 2023-09-08  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/thead.md (*extend<SHORT:mode><SUPERQI:mode>2_th_ext):
+ 	Remove broken INSN.
+ 	(*extendhi<SUPERQI:mode>2_th_ext): New INSN.
+ 	(*extendqi<SUPERQI:mode>2_th_ext): New INSN.
+ 
+ 2023-09-08  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/thead.md: Use more appropriate mode attributes
+ 	for extensions.
+ 
+ 2023-09-08  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* common/config/loongarch/loongarch-common.cc:
+ 	(default_options loongarch_option_optimization_table):
+ 	Default to -fsched-pressure.
+ 
+ 2023-09-08  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: remove non-POSIX syntax "<<<".
+ 
+ 2023-09-08  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/bitmanip.md (*extend<SHORT:mode><SUPERQI:mode>2_zbb):
+ 	Rename postfix to _bitmanip.
+ 	(*extend<SHORT:mode><SUPERQI:mode>2_bitmanip): Renamed pattern.
+ 	(*zero_extendhi<GPR:mode>2_zbb): Remove duplicated pattern.
+ 
+ 2023-09-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_pass_in_vector_p): Only allow RVV type.
+ 
+ 2023-09-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_hard_regno_nregs): Fix bug.
+ 
+ 2023-09-07  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md
+ 	(<avx512>_vpermt2var<mode>3<sd_maskz_name>): New define_insn.
+ 	(VHFBF_AVX512VL): New mode iterator.
+ 	(VI2HFBF_AVX512VL): New mode iterator.
+ 
+ 2023-09-07  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (contains_zero_p): Return false for undefined ranges.
+ 	* range-op-float.cc (operator_gt::op1_op2_relation): Adjust for
+ 	contains_zero_p change above.
+ 	(operator_ge::op1_op2_relation): Same.
+ 	(operator_equal::op1_op2_relation): Same.
+ 	(operator_not_equal::op1_op2_relation): Same.
+ 	(operator_lt::op1_op2_relation): Same.
+ 	(operator_le::op1_op2_relation): Same.
+ 	(operator_ge::op1_op2_relation): Same.
+ 	* range-op.cc (operator_equal::op1_op2_relation): Same.
+ 	(operator_not_equal::op1_op2_relation): Same.
+ 	(operator_lt::op1_op2_relation): Same.
+ 	(operator_le::op1_op2_relation): Same.
+ 	(operator_cast::op1_range): Same.
+ 	(set_nonzero_range_from_mask): Same.
+ 	(operator_bitwise_xor::op1_range): Same.
+ 	(operator_addr_expr::fold_range): Same.
+ 	(operator_addr_expr::op1_range): Same.
+ 
+ 2023-09-07  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/110875
+ 	* gimple-range.cc (gimple_ranger::prefill_name): Only invoke
+ 	cache-prefilling routine when the ssa-name has no global value.
+ 
+ 2023-09-07  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/111225
+ 	* lra-constraints.cc (goal_reuse_alt_p): New global flag.
+ 	(process_alt_operands): Set up the flag.  Clear flag for chosen
+ 	alternative with special memory constraints.
+ 	(process_alt_operands): Set up used insn alternative depending on the flag.
+ 
+ 2023-09-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-vls.md: Add VLS mask modes mov patterns.
+ 	* config/riscv/riscv.md: Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-09-07  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-core.h (error_meta): New decl.
+ 	* diagnostic.cc (error_meta): New.
+ 
+ 2023-09-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* expr.cc (expand_expr_real_1): Don't call targetm.c.bitint_type_info
+ 	inside gcc_assert, as later code relies on it filling info variable.
+ 	* gimple-fold.cc (clear_padding_bitint_needs_padding_p,
+ 	clear_padding_type): Likewise.
+ 	* varasm.cc (output_constant): Likewise.
+ 	* fold-const.cc (native_encode_int, native_interpret_int): Likewise.
+ 	* stor-layout.cc (finish_bitfield_representative, layout_type):
+ 	Likewise.
+ 	* gimple-lower-bitint.cc (bitint_precision_kind): Likewise.
+ 
+ 2023-09-07  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/111252
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_pre_reload_split): Declare new function.
+ 	(loongarch_use_bstrins_for_ior_with_mask): Likewise.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_pre_reload_split): Implement.
+ 	(loongarch_use_bstrins_for_ior_with_mask): Likewise.
+ 	* config/loongarch/predicates.md (ins_zero_bitmask_operand):
+ 	New predicate.
+ 	* config/loongarch/loongarch.md (bstrins_<mode>_for_mask):
+ 	New define_insn_and_split.
+ 	(bstrins_<mode>_for_ior_mask): Likewise.
+ 	(define_peephole2): Further optimize code sequence produced by
+ 	bstrins_<mode>_for_ior_mask if possible.
+ 
+ 2023-09-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* lra-eliminations.cc (lra_eliminate_regs_1): Use simplify_gen_binary
+ 	rather than gen_rtx_PLUS.
+ 
+ 2023-09-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111313
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_earliest_vsetvls): Remove.
+ 	(pass_vsetvl::df_post_optimization): Remove incorrect function.
+ 
+ 2023-09-07  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
+ 	Parse 'XVentanaCondOps' extension.
+ 	* config/riscv/riscv-opts.h (MASK_XVENTANACONDOPS): New.
+ 	(TARGET_XVENTANACONDOPS): Ditto.
+ 	(TARGET_ZICOND_LIKE): New to represent targets with conditional
+ 	moves like 'Zicond'.  It includes RV64 + 'XVentanaCondOps'.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Replace TARGET_ZICOND
+ 	with TARGET_ZICOND_LIKE.
+ 	(riscv_expand_conditional_move): Ditto.
+ 	* config/riscv/riscv.md (mov<mode>cc): Replace TARGET_ZICOND with
+ 	TARGET_ZICOND_LIKE.
+ 	* config/riscv/riscv.opt: Add new riscv_xventana_subext.
+ 	* config/riscv/zicond.md: Modify description.
+ 	(eqz_ventana): New to match corresponding czero instructions.
+ 	(nez_ventana): Ditto.
+ 	(*czero.<eqz>.<GPR><X>): Emit a 'XVentanaCondOps' instruction if
+ 	'Zicond' is not available but 'XVentanaCondOps' + RV64 is.
+ 	(*czero.<eqz>.<GPR><X>): Ditto.
+ 	(*czero.eqz.<GPR><X>.opt1): Ditto.
+ 	(*czero.nez.<GPR><X>.opt2): Ditto.
+ 
+ 2023-09-06  Ian Lance Taylor  <iant@golang.org>
+ 
+ 	PR go/111310
+ 	* godump.cc (go_format_type): Handle BITINT_TYPE.
+ 
+ 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* tree.cc (build_one_cst, build_minus_one_cst): Handle BITINT_TYPE
+ 	like INTEGER_TYPE.
+ 
+ 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* gimple-lower-bitint.cc (bitint_large_huge::if_then_else,
+ 	bitint_large_huge::if_then_if_then_else): Use make_single_succ_edge
+ 	rather than make_edge, initialize bb->count.
+ 
+ 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* doc/libgcc.texi (Bit-precise integer arithmetic functions):
+ 	Document general rules for _BitInt support library functions
+ 	and document __mulbitint3 and __divmodbitint4.
+ 	(Conversion functions): Document __fix{s,d,x,t}fbitint,
+ 	__floatbitint{s,d,x,t,h,b}f, __bid_fix{s,d,t}dbitint and
+ 	__bid_floatbitint{s,d,t}d.
+ 
+ 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* glimits.h (BITINT_MAXWIDTH): Define if __BITINT_MAXWIDTH__ is
+ 	predefined.
+ 
+ 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* internal-fn.cc (expand_ubsan_result_store): Add LHS, MODE and
+ 	DO_ERROR arguments.  For non-mode precision BITINT_TYPE results
+ 	check if all padding bits up to mode precision are zeros or sign
+ 	bit copies and if not, jump to DO_ERROR.
+ 	(expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
+ 	Adjust expand_ubsan_result_store callers.
+ 	* ubsan.cc: Include target.h and langhooks.h.
+ 	(ubsan_encode_value): Pass BITINT_TYPE values which fit into pointer
+ 	size converted to pointer sized integer, pass BITINT_TYPE values
+ 	which fit into TImode (if supported) or DImode as those integer types
+ 	or otherwise for now punt (pass 0).
+ 	(ubsan_type_descriptor): Handle BITINT_TYPE.  For pstyle of
+ 	UBSAN_PRINT_FORCE_INT use TK_Integer (0x0000) mode with a
+ 	TImode/DImode precision rather than TK_Unknown used otherwise for
+ 	large/huge BITINT_TYPEs.
+ 	(instrument_si_overflow): Instrument BITINT_TYPE operations even when
+ 	they don't have mode precision.
+ 	* ubsan.h (enum ubsan_print_style): New enumerator.
+ 
+ 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* config/i386/i386.cc (classify_argument): Handle BITINT_TYPE.
+ 	(ix86_bitint_type_info): New function.
+ 	(TARGET_C_BITINT_TYPE_INFO): Redefine.
+ 
+ 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* Makefile.in (OBJS): Add gimple-lower-bitint.o.
+ 	* passes.def: Add pass_lower_bitint after pass_lower_complex and
+ 	pass_lower_bitint_O0 after pass_lower_complex_O0.
+ 	* tree-pass.h (PROP_gimple_lbitint): Define.
+ 	(make_pass_lower_bitint_O0, make_pass_lower_bitint): Declare.
+ 	* gimple-lower-bitint.h: New file.
+ 	* tree-ssa-live.h (struct _var_map): Add bitint member.
+ 	(init_var_map): Adjust declaration.
+ 	(region_contains_p): Handle map->bitint like map->outofssa_p.
+ 	* tree-ssa-live.cc (init_var_map): Add BITINT argument, initialize
+ 	map->bitint and set map->outofssa_p to false if it is non-NULL.
+ 	* tree-ssa-coalesce.cc: Include gimple-lower-bitint.h.
+ 	(build_ssa_conflict_graph): Call build_bitint_stmt_ssa_conflicts if
+ 	map->bitint.
+ 	(create_coalesce_list_for_region): For map->bitint ignore SSA_NAMEs
+ 	not in that bitmap, and allow res without default def.
+ 	(compute_optimized_partition_bases): In map->bitint mode try hard to
+ 	coalesce any SSA_NAMEs with the same size.
+ 	(coalesce_bitint): New function.
+ 	(coalesce_ssa_name): In map->bitint mode, or map->bitmap into
+ 	used_in_copies and call coalesce_bitint.
+ 	* gimple-lower-bitint.cc: New file.
+ 
+ 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* tree.def (BITINT_TYPE): New type.
+ 	* tree.h (TREE_CHECK6, TREE_NOT_CHECK6): Define.
+ 	(NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Include
+ 	BITINT_TYPE.
+ 	(BITINT_TYPE_P): Define.
+ 	(CONSTRUCTOR_BITFIELD_P): Return true even for BLKmode bit-fields if
+ 	they have BITINT_TYPE type.
+ 	(tree_check6, tree_not_check6): New inline functions.
+ 	(any_integral_type_check): Include BITINT_TYPE.
+ 	(build_bitint_type): Declare.
+ 	* tree.cc (tree_code_size, wide_int_to_tree_1, cache_integer_cst,
+ 	build_zero_cst, type_hash_canon_hash, type_cache_hasher::equal,
+ 	type_hash_canon): Handle BITINT_TYPE.
+ 	(bitint_type_cache): New variable.
+ 	(build_bitint_type): New function.
+ 	(signed_or_unsigned_type_for, verify_type_variant, verify_type):
+ 	Handle BITINT_TYPE.
+ 	(tree_cc_finalize): Free bitint_type_cache.
+ 	* builtins.cc (type_to_class): Handle BITINT_TYPE.
+ 	(fold_builtin_unordered_cmp): Handle BITINT_TYPE like INTEGER_TYPE.
+ 	* cfgexpand.cc (expand_debug_expr): Punt on BLKmode BITINT_TYPE
+ 	INTEGER_CSTs.
+ 	* convert.cc (convert_to_pointer_1, convert_to_real_1,
+ 	convert_to_complex_1): Handle BITINT_TYPE like INTEGER_TYPE.
+ 	(convert_to_integer_1): Likewise.  For BITINT_TYPE don't check
+ 	GET_MODE_PRECISION (TYPE_MODE (type)).
+ 	* doc/generic.texi (BITINT_TYPE): Document.
+ 	* doc/tm.texi.in (TARGET_C_BITINT_TYPE_INFO): New.
+ 	* doc/tm.texi: Regenerated.
+ 	* dwarf2out.cc (base_type_die, is_base_type, modified_type_die,
+ 	gen_type_die_with_usage): Handle BITINT_TYPE.
+ 	(rtl_for_decl_init): Punt on BLKmode BITINT_TYPE INTEGER_CSTs or
+ 	handle those which fit into shwi.
+ 	* expr.cc (expand_expr_real_1): Define EXTEND_BITINT macro, reduce
+ 	to bitfield precision reads from BITINT_TYPE vars, parameters or
+ 	memory locations.  Expand large/huge BITINT_TYPE INTEGER_CSTs into
+ 	memory.
+ 	* fold-const.cc (fold_convert_loc, make_range_step): Handle
+ 	BITINT_TYPE.
+ 	(extract_muldiv_1): For BITINT_TYPE use TYPE_PRECISION rather than
+ 	GET_MODE_SIZE (SCALAR_INT_TYPE_MODE).
+ 	(native_encode_int, native_interpret_int, native_interpret_expr):
+ 	Handle BITINT_TYPE.
+ 	* gimple-expr.cc (useless_type_conversion_p): Make BITINT_TYPE
+ 	to some other integral type or vice versa conversions non-useless.
+ 	* gimple-fold.cc (gimple_fold_builtin_memset): Punt for BITINT_TYPE.
+ 	(clear_padding_unit): Mention in comment that _BitInt types don't need
+ 	to fit either.
+ 	(clear_padding_bitint_needs_padding_p): New function.
+ 	(clear_padding_type_may_have_padding_p): Handle BITINT_TYPE.
+ 	(clear_padding_type): Likewise.
+ 	* internal-fn.cc (expand_mul_overflow): For unsigned non-mode
+ 	precision operands force pos_neg? to 1.
+ 	(expand_MULBITINT, expand_DIVMODBITINT, expand_FLOATTOBITINT,
+ 	expand_BITINTTOFLOAT): New functions.
+ 	* internal-fn.def (MULBITINT, DIVMODBITINT, FLOATTOBITINT,
+ 	BITINTTOFLOAT): New internal functions.
+ 	* internal-fn.h (expand_MULBITINT, expand_DIVMODBITINT,
+ 	expand_FLOATTOBITINT, expand_BITINTTOFLOAT): Declare.
+ 	* match.pd (non-equality compare simplifications from fold_binary):
+ 	Punt if TYPE_MODE (arg1_type) is BLKmode.
+ 	* pretty-print.h (pp_wide_int): Handle printing of large precision
+ 	wide_ints which would buffer overflow digit_buffer.
+ 	* stor-layout.cc (finish_bitfield_representative): For bit-fields
+ 	with BITINT_TYPE, prefer representatives with precisions in
+ 	multiple of limb precision.
+ 	(layout_type): Handle BITINT_TYPE.  Handle COMPLEX_TYPE with BLKmode
+ 	element type and assert it is BITINT_TYPE.
+ 	* target.def (bitint_type_info): New C target hook.
+ 	* target.h (struct bitint_info): New type.
+ 	* targhooks.cc (default_bitint_type_info): New function.
+ 	* targhooks.h (default_bitint_type_info): Declare.
+ 	* tree-pretty-print.cc (dump_generic_node): Handle BITINT_TYPE.
+ 	Handle printing large wide_ints which would buffer overflow
+ 	digit_buffer.
+ 	* tree-ssa-sccvn.cc: Include target.h.
+ 	(eliminate_dom_walker::eliminate_stmt): Punt for large/huge
+ 	BITINT_TYPE.
+ 	* tree-switch-conversion.cc (jump_table_cluster::emit): For more than
+ 	64-bit BITINT_TYPE subtract low bound from expression and cast to
+ 	64-bit integer type both the controlling expression and case labels.
+ 	* typeclass.h (enum type_class): Add bitint_type_class enumerator.
+ 	* varasm.cc (output_constant): Handle BITINT_TYPE INTEGER_CSTs.
+ 	* vr-values.cc (check_for_binary_op_overflow): Use widest2_int rather
+ 	than widest_int.
+ 	(simplify_using_ranges::simplify_internal_call_using_ranges): Use
+ 	unsigned_type_for rather than build_nonstandard_integer_type.
+ 
+ 2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111296
+ 	* config/riscv/riscv.cc (riscv_modes_tieable_p): Fix incorrect mode
+ 	tieable for RVV modes.
+ 
+ 2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111295
+ 	* config/riscv/riscv-vsetvl.cc (insert_vsetvl): Bug fix.
+ 
+ 2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-switch.def (VLS_ENTRY): Remove TARGET_64BIT
+ 
+ 2023-09-06  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_expand_scc):
+ 	Add code for particular constants (only 0 and INT_MIN for now)
+ 	for EQ/NE boolean evaluation in SImode.
+ 	* config/xtensa/xtensa.md (*eqne_INT_MIN): Remove because its
+ 	implementation has been integrated into the above.
+ 
+ 2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	PR target/111232
+ 	* config/riscv/autovec-opt.md (@pred_single_widen_mul<any_extend:su><mode>):
+ 	Delete.
+ 	(*pred_widen_mulsu<mode>): Delete.
+ 	(*pred_single_widen_mul<mode>): Delete.
+ 	(*dual_widen_<any_widen_binop:optab><any_extend:su><mode>):
+ 	Add new combine patterns.
+ 	(*single_widen_sub<any_extend:su><mode>): Ditto.
+ 	(*single_widen_add<any_extend:su><mode>): Ditto.
+ 	(*single_widen_mult<any_extend:su><mode>): Ditto.
+ 	(*dual_widen_mulsu<mode>): Ditto.
+ 	(*dual_widen_mulus<mode>): Ditto.
+ 	(*dual_widen_<optab><mode>): Ditto.
+ 	(*single_widen_add<mode>): Ditto.
+ 	(*single_widen_sub<mode>): Ditto.
+ 	(*single_widen_mult<mode>): Ditto.
+ 	* config/riscv/autovec.md (<optab><mode>3):
+ 	Change define_expand to define_insn_and_split.
+ 	(<optab><mode>2): Ditto.
+ 	(abs<mode>2): Ditto.
+ 	(smul<mode>3_highpart): Ditto.
+ 	(umul<mode>3_highpart): Ditto.
+ 
+ 2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_declare_function_name): Add protos.
+ 	(riscv_asm_output_alias): Ditto.
+ 	(riscv_asm_output_external): Ditto.
+ 	* config/riscv/riscv.cc (riscv_asm_output_variant_cc):
+ 	Output .variant_cc directive for vector function.
+ 	(riscv_declare_function_name): Ditto.
+ 	(riscv_asm_output_alias): Ditto.
+ 	(riscv_asm_output_external): Ditto.
+ 	* config/riscv/riscv.h (ASM_DECLARE_FUNCTION_NAME):
+ 	Implement ASM_DECLARE_FUNCTION_NAME.
+ 	(ASM_OUTPUT_DEF_FROM_DECLS): Implement ASM_OUTPUT_DEF_FROM_DECLS.
+ 	(ASM_OUTPUT_EXTERNAL): Implement ASM_OUTPUT_EXTERNAL.
+ 
+ 2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls): Pass riscv_cc.
+ 	* config/riscv/riscv.cc (struct riscv_frame_info): Add new fileds.
+ 	(riscv_frame_info::reset): Reset new fileds.
+ 	(riscv_call_tls_get_addr): Pass riscv_cc.
+ 	(riscv_function_arg): Return riscv_cc for call patterm.
+ 	(get_riscv_cc): New function return riscv_cc from rtl call_insn.
+ 	(riscv_insn_callee_abi): Implement TARGET_INSN_CALLEE_ABI.
+ 	(riscv_save_reg_p): Add vector callee-saved check.
+ 	(riscv_stack_align): Add vector save area comment.
+ 	(riscv_compute_frame_info): Ditto.
+ 	(riscv_restore_reg): Update for type change.
+ 	(riscv_for_each_saved_v_reg): New function save vector registers.
+ 	(riscv_first_stack_step): Handle funciton with vector callee-saved registers.
+ 	(riscv_expand_prologue): Ditto.
+ 	(riscv_expand_epilogue): Ditto.
+ 	(riscv_output_mi_thunk): Pass riscv_cc.
+ 	(TARGET_INSN_CALLEE_ABI): Implement TARGET_INSN_CALLEE_ABI.
+ 	* config/riscv/riscv.h (get_riscv_cc): Export get_riscv_cc function.
+ 	* config/riscv/riscv.md: Add CALLEE_CC operand for call pattern.
+ 
+ 2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (builtin_type_p): New function for checking vector type.
+ 	* config/riscv/riscv-vector-builtins.cc (builtin_type_p): Ditto.
+ 	* config/riscv/riscv.cc (struct riscv_arg_info): New fields.
+ 	(riscv_init_cumulative_args): Setup variant_cc field.
+ 	(riscv_vector_type_p): New function for checking vector type.
+ 	(riscv_hard_regno_nregs): Hoist declare.
+ 	(riscv_get_vector_arg): Subroutine of riscv_get_arg_info.
+ 	(riscv_get_arg_info): Support vector cc.
+ 	(riscv_function_arg_advance): Update cum.
+ 	(riscv_pass_by_reference): Handle vector args.
+ 	(riscv_v_abi): New function return vector abi.
+ 	(riscv_return_value_is_vector_type_p): New function for check vector arguments.
+ 	(riscv_arguments_is_vector_type_p): New function for check vector returns.
+ 	(riscv_fntype_abi): Implement TARGET_FNTYPE_ABI.
+ 	(TARGET_FNTYPE_ABI): Implement TARGET_FNTYPE_ABI.
+ 	* config/riscv/riscv.h (GCC_RISCV_H): Define macros for vector abi.
+ 	(MAX_ARGS_IN_VECTOR_REGISTERS): Ditto.
+ 	(MAX_ARGS_IN_MASK_REGISTERS): Ditto.
+ 	(V_ARG_FIRST): Ditto.
+ 	(V_ARG_LAST): Ditto.
+ 	(enum riscv_cc): Define all RISCV_CC variants.
+ 	* config/riscv/riscv.opt: Add --param=riscv-vector-abi.
+ 
+ 2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_<optab><mode>):
+ 	Add sqrt + vcond_mask combine pattern.
+ 	* config/riscv/autovec.md (<optab><mode>2):
+ 	Change define_expand to define_insn_and_split.
+ 
+ 2023-09-06  Jason Merrill  <jason@redhat.com>
+ 
+ 	* common.opt: Update -fabi-version=19.
+ 
+ 2023-09-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* config/riscv/zicond.md: Add closing parent to a comment.
+ 
+ 2023-09-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Force
+ 	large constant cons/alt into a register.
+ 
+ 2023-09-05  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Don't
+ 	require one zero bit in the upper 32 bits for LI+RORI synthesis.
+ 
+ 2023-09-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (bswapsi2): Expose for TARGET_64BIT.
+ 
+ 2023-09-05  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/98710
+ 	* match.pd (`(x | c) & ~(y | c)`, `(x & c) | ~(y & c)`): New pattern.
+ 	(`x & ~(y | x)`, `x | ~(y & x)`): New patterns.
+ 
+ 2023-09-05  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/103536
+ 	* match.pd (`(x | y) & (x & z)`,
+ 	`(x & y) | (x | z)`): New patterns.
+ 
+ 2023-09-05  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/107137
+ 	* match.pd (`(nop_convert)-(convert)a`): New pattern.
+ 
+ 2023-09-05  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/96694
+ 	* match.pd (`~MAX(~X, Y)`, `~MIN(~X, Y)`): New patterns.
+ 
+ 2023-09-05  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/105832
+ 	* match.pd (`(1 >> X) != 0`): New pattern
+ 
+ 2023-09-05  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md: Update/Add types
+ 
+ 2023-09-05  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/pic.md: Update types
+ 
+ 2023-09-05  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Enable constant
+ 	synthesis with rotate-right for XTheadBb.
+ 
+ 2023-09-05  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/zicond.md: Fix op2 pattern.
+ 
+ 2023-09-05  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (AARCH64_ISA_RCPC): Remove dup.
+ 
+ 2023-09-05  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
+ 	Define to 0 if not defined yet.
+ 
+ 2023-09-05  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/linux.h (TARGET_ASM_FILE_END): Move ...
+ 	* config/riscv/riscv.cc (TARGET_ASM_FILE_END): to here.
+ 
+ 2023-09-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-vls.md (copysign<mode>3): New pattern.
+ 	* config/riscv/vector.md: Extend iterator for VLS.
+ 
+ 2023-09-05  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config.gcc: Export the header file lasxintrin.h.
+ 	* config/loongarch/loongarch-builtins.cc (enum loongarch_builtin_type):
+ 	Add Loongson ASX builtin functions support.
+ 	(AVAIL_ALL): Ditto.
+ 	(LASX_BUILTIN): Ditto.
+ 	(LASX_NO_TARGET_BUILTIN): Ditto.
+ 	(LASX_BUILTIN_TEST_BRANCH): Ditto.
+ 	(CODE_FOR_lasx_xvsadd_b): Ditto.
+ 	(CODE_FOR_lasx_xvsadd_h): Ditto.
+ 	(CODE_FOR_lasx_xvsadd_w): Ditto.
+ 	(CODE_FOR_lasx_xvsadd_d): Ditto.
+ 	(CODE_FOR_lasx_xvsadd_bu): Ditto.
+ 	(CODE_FOR_lasx_xvsadd_hu): Ditto.
+ 	(CODE_FOR_lasx_xvsadd_wu): Ditto.
+ 	(CODE_FOR_lasx_xvsadd_du): Ditto.
+ 	(CODE_FOR_lasx_xvadd_b): Ditto.
+ 	(CODE_FOR_lasx_xvadd_h): Ditto.
+ 	(CODE_FOR_lasx_xvadd_w): Ditto.
+ 	(CODE_FOR_lasx_xvadd_d): Ditto.
+ 	(CODE_FOR_lasx_xvaddi_bu): Ditto.
+ 	(CODE_FOR_lasx_xvaddi_hu): Ditto.
+ 	(CODE_FOR_lasx_xvaddi_wu): Ditto.
+ 	(CODE_FOR_lasx_xvaddi_du): Ditto.
+ 	(CODE_FOR_lasx_xvand_v): Ditto.
+ 	(CODE_FOR_lasx_xvandi_b): Ditto.
+ 	(CODE_FOR_lasx_xvbitsel_v): Ditto.
+ 	(CODE_FOR_lasx_xvseqi_b): Ditto.
+ 	(CODE_FOR_lasx_xvseqi_h): Ditto.
+ 	(CODE_FOR_lasx_xvseqi_w): Ditto.
+ 	(CODE_FOR_lasx_xvseqi_d): Ditto.
+ 	(CODE_FOR_lasx_xvslti_b): Ditto.
+ 	(CODE_FOR_lasx_xvslti_h): Ditto.
+ 	(CODE_FOR_lasx_xvslti_w): Ditto.
+ 	(CODE_FOR_lasx_xvslti_d): Ditto.
+ 	(CODE_FOR_lasx_xvslti_bu): Ditto.
+ 	(CODE_FOR_lasx_xvslti_hu): Ditto.
+ 	(CODE_FOR_lasx_xvslti_wu): Ditto.
+ 	(CODE_FOR_lasx_xvslti_du): Ditto.
+ 	(CODE_FOR_lasx_xvslei_b): Ditto.
+ 	(CODE_FOR_lasx_xvslei_h): Ditto.
+ 	(CODE_FOR_lasx_xvslei_w): Ditto.
+ 	(CODE_FOR_lasx_xvslei_d): Ditto.
+ 	(CODE_FOR_lasx_xvslei_bu): Ditto.
+ 	(CODE_FOR_lasx_xvslei_hu): Ditto.
+ 	(CODE_FOR_lasx_xvslei_wu): Ditto.
+ 	(CODE_FOR_lasx_xvslei_du): Ditto.
+ 	(CODE_FOR_lasx_xvdiv_b): Ditto.
+ 	(CODE_FOR_lasx_xvdiv_h): Ditto.
+ 	(CODE_FOR_lasx_xvdiv_w): Ditto.
+ 	(CODE_FOR_lasx_xvdiv_d): Ditto.
+ 	(CODE_FOR_lasx_xvdiv_bu): Ditto.
+ 	(CODE_FOR_lasx_xvdiv_hu): Ditto.
+ 	(CODE_FOR_lasx_xvdiv_wu): Ditto.
+ 	(CODE_FOR_lasx_xvdiv_du): Ditto.
+ 	(CODE_FOR_lasx_xvfadd_s): Ditto.
+ 	(CODE_FOR_lasx_xvfadd_d): Ditto.
+ 	(CODE_FOR_lasx_xvftintrz_w_s): Ditto.
+ 	(CODE_FOR_lasx_xvftintrz_l_d): Ditto.
+ 	(CODE_FOR_lasx_xvftintrz_wu_s): Ditto.
+ 	(CODE_FOR_lasx_xvftintrz_lu_d): Ditto.
+ 	(CODE_FOR_lasx_xvffint_s_w): Ditto.
+ 	(CODE_FOR_lasx_xvffint_d_l): Ditto.
+ 	(CODE_FOR_lasx_xvffint_s_wu): Ditto.
+ 	(CODE_FOR_lasx_xvffint_d_lu): Ditto.
+ 	(CODE_FOR_lasx_xvfsub_s): Ditto.
+ 	(CODE_FOR_lasx_xvfsub_d): Ditto.
+ 	(CODE_FOR_lasx_xvfmul_s): Ditto.
+ 	(CODE_FOR_lasx_xvfmul_d): Ditto.
+ 	(CODE_FOR_lasx_xvfdiv_s): Ditto.
+ 	(CODE_FOR_lasx_xvfdiv_d): Ditto.
+ 	(CODE_FOR_lasx_xvfmax_s): Ditto.
+ 	(CODE_FOR_lasx_xvfmax_d): Ditto.
+ 	(CODE_FOR_lasx_xvfmin_s): Ditto.
+ 	(CODE_FOR_lasx_xvfmin_d): Ditto.
+ 	(CODE_FOR_lasx_xvfsqrt_s): Ditto.
+ 	(CODE_FOR_lasx_xvfsqrt_d): Ditto.
+ 	(CODE_FOR_lasx_xvflogb_s): Ditto.
+ 	(CODE_FOR_lasx_xvflogb_d): Ditto.
+ 	(CODE_FOR_lasx_xvmax_b): Ditto.
+ 	(CODE_FOR_lasx_xvmax_h): Ditto.
+ 	(CODE_FOR_lasx_xvmax_w): Ditto.
+ 	(CODE_FOR_lasx_xvmax_d): Ditto.
+ 	(CODE_FOR_lasx_xvmaxi_b): Ditto.
+ 	(CODE_FOR_lasx_xvmaxi_h): Ditto.
+ 	(CODE_FOR_lasx_xvmaxi_w): Ditto.
+ 	(CODE_FOR_lasx_xvmaxi_d): Ditto.
+ 	(CODE_FOR_lasx_xvmax_bu): Ditto.
+ 	(CODE_FOR_lasx_xvmax_hu): Ditto.
+ 	(CODE_FOR_lasx_xvmax_wu): Ditto.
+ 	(CODE_FOR_lasx_xvmax_du): Ditto.
+ 	(CODE_FOR_lasx_xvmaxi_bu): Ditto.
+ 	(CODE_FOR_lasx_xvmaxi_hu): Ditto.
+ 	(CODE_FOR_lasx_xvmaxi_wu): Ditto.
+ 	(CODE_FOR_lasx_xvmaxi_du): Ditto.
+ 	(CODE_FOR_lasx_xvmin_b): Ditto.
+ 	(CODE_FOR_lasx_xvmin_h): Ditto.
+ 	(CODE_FOR_lasx_xvmin_w): Ditto.
+ 	(CODE_FOR_lasx_xvmin_d): Ditto.
+ 	(CODE_FOR_lasx_xvmini_b): Ditto.
+ 	(CODE_FOR_lasx_xvmini_h): Ditto.
+ 	(CODE_FOR_lasx_xvmini_w): Ditto.
+ 	(CODE_FOR_lasx_xvmini_d): Ditto.
+ 	(CODE_FOR_lasx_xvmin_bu): Ditto.
+ 	(CODE_FOR_lasx_xvmin_hu): Ditto.
+ 	(CODE_FOR_lasx_xvmin_wu): Ditto.
+ 	(CODE_FOR_lasx_xvmin_du): Ditto.
+ 	(CODE_FOR_lasx_xvmini_bu): Ditto.
+ 	(CODE_FOR_lasx_xvmini_hu): Ditto.
+ 	(CODE_FOR_lasx_xvmini_wu): Ditto.
+ 	(CODE_FOR_lasx_xvmini_du): Ditto.
+ 	(CODE_FOR_lasx_xvmod_b): Ditto.
+ 	(CODE_FOR_lasx_xvmod_h): Ditto.
+ 	(CODE_FOR_lasx_xvmod_w): Ditto.
+ 	(CODE_FOR_lasx_xvmod_d): Ditto.
+ 	(CODE_FOR_lasx_xvmod_bu): Ditto.
+ 	(CODE_FOR_lasx_xvmod_hu): Ditto.
+ 	(CODE_FOR_lasx_xvmod_wu): Ditto.
+ 	(CODE_FOR_lasx_xvmod_du): Ditto.
+ 	(CODE_FOR_lasx_xvmul_b): Ditto.
+ 	(CODE_FOR_lasx_xvmul_h): Ditto.
+ 	(CODE_FOR_lasx_xvmul_w): Ditto.
+ 	(CODE_FOR_lasx_xvmul_d): Ditto.
+ 	(CODE_FOR_lasx_xvclz_b): Ditto.
+ 	(CODE_FOR_lasx_xvclz_h): Ditto.
+ 	(CODE_FOR_lasx_xvclz_w): Ditto.
+ 	(CODE_FOR_lasx_xvclz_d): Ditto.
+ 	(CODE_FOR_lasx_xvnor_v): Ditto.
+ 	(CODE_FOR_lasx_xvor_v): Ditto.
+ 	(CODE_FOR_lasx_xvori_b): Ditto.
+ 	(CODE_FOR_lasx_xvnori_b): Ditto.
+ 	(CODE_FOR_lasx_xvpcnt_b): Ditto.
+ 	(CODE_FOR_lasx_xvpcnt_h): Ditto.
+ 	(CODE_FOR_lasx_xvpcnt_w): Ditto.
+ 	(CODE_FOR_lasx_xvpcnt_d): Ditto.
+ 	(CODE_FOR_lasx_xvxor_v): Ditto.
+ 	(CODE_FOR_lasx_xvxori_b): Ditto.
+ 	(CODE_FOR_lasx_xvsll_b): Ditto.
+ 	(CODE_FOR_lasx_xvsll_h): Ditto.
+ 	(CODE_FOR_lasx_xvsll_w): Ditto.
+ 	(CODE_FOR_lasx_xvsll_d): Ditto.
+ 	(CODE_FOR_lasx_xvslli_b): Ditto.
+ 	(CODE_FOR_lasx_xvslli_h): Ditto.
+ 	(CODE_FOR_lasx_xvslli_w): Ditto.
+ 	(CODE_FOR_lasx_xvslli_d): Ditto.
+ 	(CODE_FOR_lasx_xvsra_b): Ditto.
+ 	(CODE_FOR_lasx_xvsra_h): Ditto.
+ 	(CODE_FOR_lasx_xvsra_w): Ditto.
+ 	(CODE_FOR_lasx_xvsra_d): Ditto.
+ 	(CODE_FOR_lasx_xvsrai_b): Ditto.
+ 	(CODE_FOR_lasx_xvsrai_h): Ditto.
+ 	(CODE_FOR_lasx_xvsrai_w): Ditto.
+ 	(CODE_FOR_lasx_xvsrai_d): Ditto.
+ 	(CODE_FOR_lasx_xvsrl_b): Ditto.
+ 	(CODE_FOR_lasx_xvsrl_h): Ditto.
+ 	(CODE_FOR_lasx_xvsrl_w): Ditto.
+ 	(CODE_FOR_lasx_xvsrl_d): Ditto.
+ 	(CODE_FOR_lasx_xvsrli_b): Ditto.
+ 	(CODE_FOR_lasx_xvsrli_h): Ditto.
+ 	(CODE_FOR_lasx_xvsrli_w): Ditto.
+ 	(CODE_FOR_lasx_xvsrli_d): Ditto.
+ 	(CODE_FOR_lasx_xvsub_b): Ditto.
+ 	(CODE_FOR_lasx_xvsub_h): Ditto.
+ 	(CODE_FOR_lasx_xvsub_w): Ditto.
+ 	(CODE_FOR_lasx_xvsub_d): Ditto.
+ 	(CODE_FOR_lasx_xvsubi_bu): Ditto.
+ 	(CODE_FOR_lasx_xvsubi_hu): Ditto.
+ 	(CODE_FOR_lasx_xvsubi_wu): Ditto.
+ 	(CODE_FOR_lasx_xvsubi_du): Ditto.
+ 	(CODE_FOR_lasx_xvpackod_d): Ditto.
+ 	(CODE_FOR_lasx_xvpackev_d): Ditto.
+ 	(CODE_FOR_lasx_xvpickod_d): Ditto.
+ 	(CODE_FOR_lasx_xvpickev_d): Ditto.
+ 	(CODE_FOR_lasx_xvrepli_b): Ditto.
+ 	(CODE_FOR_lasx_xvrepli_h): Ditto.
+ 	(CODE_FOR_lasx_xvrepli_w): Ditto.
+ 	(CODE_FOR_lasx_xvrepli_d): Ditto.
+ 	(CODE_FOR_lasx_xvandn_v): Ditto.
+ 	(CODE_FOR_lasx_xvorn_v): Ditto.
+ 	(CODE_FOR_lasx_xvneg_b): Ditto.
+ 	(CODE_FOR_lasx_xvneg_h): Ditto.
+ 	(CODE_FOR_lasx_xvneg_w): Ditto.
+ 	(CODE_FOR_lasx_xvneg_d): Ditto.
+ 	(CODE_FOR_lasx_xvbsrl_v): Ditto.
+ 	(CODE_FOR_lasx_xvbsll_v): Ditto.
+ 	(CODE_FOR_lasx_xvfmadd_s): Ditto.
+ 	(CODE_FOR_lasx_xvfmadd_d): Ditto.
+ 	(CODE_FOR_lasx_xvfmsub_s): Ditto.
+ 	(CODE_FOR_lasx_xvfmsub_d): Ditto.
+ 	(CODE_FOR_lasx_xvfnmadd_s): Ditto.
+ 	(CODE_FOR_lasx_xvfnmadd_d): Ditto.
+ 	(CODE_FOR_lasx_xvfnmsub_s): Ditto.
+ 	(CODE_FOR_lasx_xvfnmsub_d): Ditto.
+ 	(CODE_FOR_lasx_xvpermi_q): Ditto.
+ 	(CODE_FOR_lasx_xvpermi_d): Ditto.
+ 	(CODE_FOR_lasx_xbnz_v): Ditto.
+ 	(CODE_FOR_lasx_xbz_v): Ditto.
+ 	(CODE_FOR_lasx_xvssub_b): Ditto.
+ 	(CODE_FOR_lasx_xvssub_h): Ditto.
+ 	(CODE_FOR_lasx_xvssub_w): Ditto.
+ 	(CODE_FOR_lasx_xvssub_d): Ditto.
+ 	(CODE_FOR_lasx_xvssub_bu): Ditto.
+ 	(CODE_FOR_lasx_xvssub_hu): Ditto.
+ 	(CODE_FOR_lasx_xvssub_wu): Ditto.
+ 	(CODE_FOR_lasx_xvssub_du): Ditto.
+ 	(CODE_FOR_lasx_xvabsd_b): Ditto.
+ 	(CODE_FOR_lasx_xvabsd_h): Ditto.
+ 	(CODE_FOR_lasx_xvabsd_w): Ditto.
+ 	(CODE_FOR_lasx_xvabsd_d): Ditto.
+ 	(CODE_FOR_lasx_xvabsd_bu): Ditto.
+ 	(CODE_FOR_lasx_xvabsd_hu): Ditto.
+ 	(CODE_FOR_lasx_xvabsd_wu): Ditto.
+ 	(CODE_FOR_lasx_xvabsd_du): Ditto.
+ 	(CODE_FOR_lasx_xvavg_b): Ditto.
+ 	(CODE_FOR_lasx_xvavg_h): Ditto.
+ 	(CODE_FOR_lasx_xvavg_w): Ditto.
+ 	(CODE_FOR_lasx_xvavg_d): Ditto.
+ 	(CODE_FOR_lasx_xvavg_bu): Ditto.
+ 	(CODE_FOR_lasx_xvavg_hu): Ditto.
+ 	(CODE_FOR_lasx_xvavg_wu): Ditto.
+ 	(CODE_FOR_lasx_xvavg_du): Ditto.
+ 	(CODE_FOR_lasx_xvavgr_b): Ditto.
+ 	(CODE_FOR_lasx_xvavgr_h): Ditto.
+ 	(CODE_FOR_lasx_xvavgr_w): Ditto.
+ 	(CODE_FOR_lasx_xvavgr_d): Ditto.
+ 	(CODE_FOR_lasx_xvavgr_bu): Ditto.
+ 	(CODE_FOR_lasx_xvavgr_hu): Ditto.
+ 	(CODE_FOR_lasx_xvavgr_wu): Ditto.
+ 	(CODE_FOR_lasx_xvavgr_du): Ditto.
+ 	(CODE_FOR_lasx_xvmuh_b): Ditto.
+ 	(CODE_FOR_lasx_xvmuh_h): Ditto.
+ 	(CODE_FOR_lasx_xvmuh_w): Ditto.
+ 	(CODE_FOR_lasx_xvmuh_d): Ditto.
+ 	(CODE_FOR_lasx_xvmuh_bu): Ditto.
+ 	(CODE_FOR_lasx_xvmuh_hu): Ditto.
+ 	(CODE_FOR_lasx_xvmuh_wu): Ditto.
+ 	(CODE_FOR_lasx_xvmuh_du): Ditto.
+ 	(CODE_FOR_lasx_xvssran_b_h): Ditto.
+ 	(CODE_FOR_lasx_xvssran_h_w): Ditto.
+ 	(CODE_FOR_lasx_xvssran_w_d): Ditto.
+ 	(CODE_FOR_lasx_xvssran_bu_h): Ditto.
+ 	(CODE_FOR_lasx_xvssran_hu_w): Ditto.
+ 	(CODE_FOR_lasx_xvssran_wu_d): Ditto.
+ 	(CODE_FOR_lasx_xvssrarn_b_h): Ditto.
+ 	(CODE_FOR_lasx_xvssrarn_h_w): Ditto.
+ 	(CODE_FOR_lasx_xvssrarn_w_d): Ditto.
+ 	(CODE_FOR_lasx_xvssrarn_bu_h): Ditto.
+ 	(CODE_FOR_lasx_xvssrarn_hu_w): Ditto.
+ 	(CODE_FOR_lasx_xvssrarn_wu_d): Ditto.
+ 	(CODE_FOR_lasx_xvssrln_bu_h): Ditto.
+ 	(CODE_FOR_lasx_xvssrln_hu_w): Ditto.
+ 	(CODE_FOR_lasx_xvssrln_wu_d): Ditto.
+ 	(CODE_FOR_lasx_xvssrlrn_bu_h): Ditto.
+ 	(CODE_FOR_lasx_xvssrlrn_hu_w): Ditto.
+ 	(CODE_FOR_lasx_xvssrlrn_wu_d): Ditto.
+ 	(CODE_FOR_lasx_xvftint_w_s): Ditto.
+ 	(CODE_FOR_lasx_xvftint_l_d): Ditto.
+ 	(CODE_FOR_lasx_xvftint_wu_s): Ditto.
+ 	(CODE_FOR_lasx_xvftint_lu_d): Ditto.
+ 	(CODE_FOR_lasx_xvsllwil_h_b): Ditto.
+ 	(CODE_FOR_lasx_xvsllwil_w_h): Ditto.
+ 	(CODE_FOR_lasx_xvsllwil_d_w): Ditto.
+ 	(CODE_FOR_lasx_xvsllwil_hu_bu): Ditto.
+ 	(CODE_FOR_lasx_xvsllwil_wu_hu): Ditto.
+ 	(CODE_FOR_lasx_xvsllwil_du_wu): Ditto.
+ 	(CODE_FOR_lasx_xvsat_b): Ditto.
+ 	(CODE_FOR_lasx_xvsat_h): Ditto.
+ 	(CODE_FOR_lasx_xvsat_w): Ditto.
+ 	(CODE_FOR_lasx_xvsat_d): Ditto.
+ 	(CODE_FOR_lasx_xvsat_bu): Ditto.
+ 	(CODE_FOR_lasx_xvsat_hu): Ditto.
+ 	(CODE_FOR_lasx_xvsat_wu): Ditto.
+ 	(CODE_FOR_lasx_xvsat_du): Ditto.
+ 	(loongarch_builtin_vectorized_function): Ditto.
+ 	(loongarch_expand_builtin_insn): Ditto.
+ 	(loongarch_expand_builtin): Ditto.
+ 	* config/loongarch/loongarch-ftypes.def (1): Ditto.
+ 	(2): Ditto.
+ 	(3): Ditto.
+ 	(4): Ditto.
+ 	* config/loongarch/lasxintrin.h: New file.
+ 
+ 2023-09-05  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-modes.def
+ 	(VECTOR_MODES): Add Loongson ASX instruction support.
+ 	* config/loongarch/loongarch-protos.h (loongarch_split_256bit_move): Ditto.
+ 	(loongarch_split_256bit_move_p): Ditto.
+ 	(loongarch_expand_vector_group_init): Ditto.
+ 	(loongarch_expand_vec_perm_1): Ditto.
+ 	* config/loongarch/loongarch.cc (loongarch_symbol_insns): Ditto.
+ 	(loongarch_valid_offset_p): Ditto.
+ 	(loongarch_address_insns): Ditto.
+ 	(loongarch_const_insns): Ditto.
+ 	(loongarch_legitimize_move): Ditto.
+ 	(loongarch_builtin_vectorization_cost): Ditto.
+ 	(loongarch_split_move_p): Ditto.
+ 	(loongarch_split_move): Ditto.
+ 	(loongarch_output_move_index_float): Ditto.
+ 	(loongarch_split_256bit_move_p): Ditto.
+ 	(loongarch_split_256bit_move): Ditto.
+ 	(loongarch_output_move): Ditto.
+ 	(loongarch_print_operand_reloc): Ditto.
+ 	(loongarch_print_operand): Ditto.
+ 	(loongarch_hard_regno_mode_ok_uncached): Ditto.
+ 	(loongarch_hard_regno_nregs): Ditto.
+ 	(loongarch_class_max_nregs): Ditto.
+ 	(loongarch_can_change_mode_class): Ditto.
+ 	(loongarch_mode_ok_for_mov_fmt_p): Ditto.
+ 	(loongarch_vector_mode_supported_p): Ditto.
+ 	(loongarch_preferred_simd_mode): Ditto.
+ 	(loongarch_autovectorize_vector_modes): Ditto.
+ 	(loongarch_lsx_output_division): Ditto.
+ 	(loongarch_expand_lsx_shuffle): Ditto.
+ 	(loongarch_expand_vec_perm): Ditto.
+ 	(loongarch_expand_vec_perm_interleave): Ditto.
+ 	(loongarch_try_expand_lsx_vshuf_const): Ditto.
+ 	(loongarch_expand_vec_perm_even_odd_1): Ditto.
+ 	(loongarch_expand_vec_perm_even_odd): Ditto.
+ 	(loongarch_expand_vec_perm_1): Ditto.
+ 	(loongarch_expand_vec_perm_const_2): Ditto.
+ 	(loongarch_is_quad_duplicate): Ditto.
+ 	(loongarch_is_double_duplicate): Ditto.
+ 	(loongarch_is_odd_extraction): Ditto.
+ 	(loongarch_is_even_extraction): Ditto.
+ 	(loongarch_is_extraction_permutation): Ditto.
+ 	(loongarch_is_center_extraction): Ditto.
+ 	(loongarch_is_reversing_permutation): Ditto.
+ 	(loongarch_is_di_misalign_extract): Ditto.
+ 	(loongarch_is_si_misalign_extract): Ditto.
+ 	(loongarch_is_lasx_lowpart_interleave): Ditto.
+ 	(loongarch_is_lasx_lowpart_interleave_2): Ditto.
+ 	(COMPARE_SELECTOR): Ditto.
+ 	(loongarch_is_lasx_lowpart_extract): Ditto.
+ 	(loongarch_is_lasx_highpart_interleave): Ditto.
+ 	(loongarch_is_lasx_highpart_interleave_2): Ditto.
+ 	(loongarch_is_elem_duplicate): Ditto.
+ 	(loongarch_is_op_reverse_perm): Ditto.
+ 	(loongarch_is_single_op_perm): Ditto.
+ 	(loongarch_is_divisible_perm): Ditto.
+ 	(loongarch_is_triple_stride_extract): Ditto.
+ 	(loongarch_vectorize_vec_perm_const): Ditto.
+ 	(loongarch_cpu_sched_reassociation_width): Ditto.
+ 	(loongarch_expand_vector_extract): Ditto.
+ 	(emit_reduc_half): Ditto.
+ 	(loongarch_expand_vec_unpack): Ditto.
+ 	(loongarch_expand_vector_group_init): Ditto.
+ 	(loongarch_expand_vector_init): Ditto.
+ 	(loongarch_expand_lsx_cmp): Ditto.
+ 	(loongarch_builtin_support_vector_misalignment): Ditto.
+ 	* config/loongarch/loongarch.h (UNITS_PER_LASX_REG): Ditto.
+ 	(BITS_PER_LASX_REG): Ditto.
+ 	(STRUCTURE_SIZE_BOUNDARY): Ditto.
+ 	(LASX_REG_FIRST): Ditto.
+ 	(LASX_REG_LAST): Ditto.
+ 	(LASX_REG_NUM): Ditto.
+ 	(LASX_REG_P): Ditto.
+ 	(LASX_REG_RTX_P): Ditto.
+ 	(LASX_SUPPORTED_MODE_P): Ditto.
+ 	* config/loongarch/loongarch.md: Ditto.
+ 	* config/loongarch/lasx.md: New file.
+ 
+ 2023-09-05  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config.gcc: Export the header file lsxintrin.h.
+ 	* config/loongarch/loongarch-builtins.cc (LARCH_FTYPE_NAME4): Add builtin function support.
+ 	(enum loongarch_builtin_type): Ditto.
+ 	(AVAIL_ALL): Ditto.
+ 	(LARCH_BUILTIN): Ditto.
+ 	(LSX_BUILTIN): Ditto.
+ 	(LSX_BUILTIN_TEST_BRANCH): Ditto.
+ 	(LSX_NO_TARGET_BUILTIN): Ditto.
+ 	(CODE_FOR_lsx_vsadd_b): Ditto.
+ 	(CODE_FOR_lsx_vsadd_h): Ditto.
+ 	(CODE_FOR_lsx_vsadd_w): Ditto.
+ 	(CODE_FOR_lsx_vsadd_d): Ditto.
+ 	(CODE_FOR_lsx_vsadd_bu): Ditto.
+ 	(CODE_FOR_lsx_vsadd_hu): Ditto.
+ 	(CODE_FOR_lsx_vsadd_wu): Ditto.
+ 	(CODE_FOR_lsx_vsadd_du): Ditto.
+ 	(CODE_FOR_lsx_vadd_b): Ditto.
+ 	(CODE_FOR_lsx_vadd_h): Ditto.
+ 	(CODE_FOR_lsx_vadd_w): Ditto.
+ 	(CODE_FOR_lsx_vadd_d): Ditto.
+ 	(CODE_FOR_lsx_vaddi_bu): Ditto.
+ 	(CODE_FOR_lsx_vaddi_hu): Ditto.
+ 	(CODE_FOR_lsx_vaddi_wu): Ditto.
+ 	(CODE_FOR_lsx_vaddi_du): Ditto.
+ 	(CODE_FOR_lsx_vand_v): Ditto.
+ 	(CODE_FOR_lsx_vandi_b): Ditto.
+ 	(CODE_FOR_lsx_bnz_v): Ditto.
+ 	(CODE_FOR_lsx_bz_v): Ditto.
+ 	(CODE_FOR_lsx_vbitsel_v): Ditto.
+ 	(CODE_FOR_lsx_vseqi_b): Ditto.
+ 	(CODE_FOR_lsx_vseqi_h): Ditto.
+ 	(CODE_FOR_lsx_vseqi_w): Ditto.
+ 	(CODE_FOR_lsx_vseqi_d): Ditto.
+ 	(CODE_FOR_lsx_vslti_b): Ditto.
+ 	(CODE_FOR_lsx_vslti_h): Ditto.
+ 	(CODE_FOR_lsx_vslti_w): Ditto.
+ 	(CODE_FOR_lsx_vslti_d): Ditto.
+ 	(CODE_FOR_lsx_vslti_bu): Ditto.
+ 	(CODE_FOR_lsx_vslti_hu): Ditto.
+ 	(CODE_FOR_lsx_vslti_wu): Ditto.
+ 	(CODE_FOR_lsx_vslti_du): Ditto.
+ 	(CODE_FOR_lsx_vslei_b): Ditto.
+ 	(CODE_FOR_lsx_vslei_h): Ditto.
+ 	(CODE_FOR_lsx_vslei_w): Ditto.
+ 	(CODE_FOR_lsx_vslei_d): Ditto.
+ 	(CODE_FOR_lsx_vslei_bu): Ditto.
+ 	(CODE_FOR_lsx_vslei_hu): Ditto.
+ 	(CODE_FOR_lsx_vslei_wu): Ditto.
+ 	(CODE_FOR_lsx_vslei_du): Ditto.
+ 	(CODE_FOR_lsx_vdiv_b): Ditto.
+ 	(CODE_FOR_lsx_vdiv_h): Ditto.
+ 	(CODE_FOR_lsx_vdiv_w): Ditto.
+ 	(CODE_FOR_lsx_vdiv_d): Ditto.
+ 	(CODE_FOR_lsx_vdiv_bu): Ditto.
+ 	(CODE_FOR_lsx_vdiv_hu): Ditto.
+ 	(CODE_FOR_lsx_vdiv_wu): Ditto.
+ 	(CODE_FOR_lsx_vdiv_du): Ditto.
+ 	(CODE_FOR_lsx_vfadd_s): Ditto.
+ 	(CODE_FOR_lsx_vfadd_d): Ditto.
+ 	(CODE_FOR_lsx_vftintrz_w_s): Ditto.
+ 	(CODE_FOR_lsx_vftintrz_l_d): Ditto.
+ 	(CODE_FOR_lsx_vftintrz_wu_s): Ditto.
+ 	(CODE_FOR_lsx_vftintrz_lu_d): Ditto.
+ 	(CODE_FOR_lsx_vffint_s_w): Ditto.
+ 	(CODE_FOR_lsx_vffint_d_l): Ditto.
+ 	(CODE_FOR_lsx_vffint_s_wu): Ditto.
+ 	(CODE_FOR_lsx_vffint_d_lu): Ditto.
+ 	(CODE_FOR_lsx_vfsub_s): Ditto.
+ 	(CODE_FOR_lsx_vfsub_d): Ditto.
+ 	(CODE_FOR_lsx_vfmul_s): Ditto.
+ 	(CODE_FOR_lsx_vfmul_d): Ditto.
+ 	(CODE_FOR_lsx_vfdiv_s): Ditto.
+ 	(CODE_FOR_lsx_vfdiv_d): Ditto.
+ 	(CODE_FOR_lsx_vfmax_s): Ditto.
+ 	(CODE_FOR_lsx_vfmax_d): Ditto.
+ 	(CODE_FOR_lsx_vfmin_s): Ditto.
+ 	(CODE_FOR_lsx_vfmin_d): Ditto.
+ 	(CODE_FOR_lsx_vfsqrt_s): Ditto.
+ 	(CODE_FOR_lsx_vfsqrt_d): Ditto.
+ 	(CODE_FOR_lsx_vflogb_s): Ditto.
+ 	(CODE_FOR_lsx_vflogb_d): Ditto.
+ 	(CODE_FOR_lsx_vmax_b): Ditto.
+ 	(CODE_FOR_lsx_vmax_h): Ditto.
+ 	(CODE_FOR_lsx_vmax_w): Ditto.
+ 	(CODE_FOR_lsx_vmax_d): Ditto.
+ 	(CODE_FOR_lsx_vmaxi_b): Ditto.
+ 	(CODE_FOR_lsx_vmaxi_h): Ditto.
+ 	(CODE_FOR_lsx_vmaxi_w): Ditto.
+ 	(CODE_FOR_lsx_vmaxi_d): Ditto.
+ 	(CODE_FOR_lsx_vmax_bu): Ditto.
+ 	(CODE_FOR_lsx_vmax_hu): Ditto.
+ 	(CODE_FOR_lsx_vmax_wu): Ditto.
+ 	(CODE_FOR_lsx_vmax_du): Ditto.
+ 	(CODE_FOR_lsx_vmaxi_bu): Ditto.
+ 	(CODE_FOR_lsx_vmaxi_hu): Ditto.
+ 	(CODE_FOR_lsx_vmaxi_wu): Ditto.
+ 	(CODE_FOR_lsx_vmaxi_du): Ditto.
+ 	(CODE_FOR_lsx_vmin_b): Ditto.
+ 	(CODE_FOR_lsx_vmin_h): Ditto.
+ 	(CODE_FOR_lsx_vmin_w): Ditto.
+ 	(CODE_FOR_lsx_vmin_d): Ditto.
+ 	(CODE_FOR_lsx_vmini_b): Ditto.
+ 	(CODE_FOR_lsx_vmini_h): Ditto.
+ 	(CODE_FOR_lsx_vmini_w): Ditto.
+ 	(CODE_FOR_lsx_vmini_d): Ditto.
+ 	(CODE_FOR_lsx_vmin_bu): Ditto.
+ 	(CODE_FOR_lsx_vmin_hu): Ditto.
+ 	(CODE_FOR_lsx_vmin_wu): Ditto.
+ 	(CODE_FOR_lsx_vmin_du): Ditto.
+ 	(CODE_FOR_lsx_vmini_bu): Ditto.
+ 	(CODE_FOR_lsx_vmini_hu): Ditto.
+ 	(CODE_FOR_lsx_vmini_wu): Ditto.
+ 	(CODE_FOR_lsx_vmini_du): Ditto.
+ 	(CODE_FOR_lsx_vmod_b): Ditto.
+ 	(CODE_FOR_lsx_vmod_h): Ditto.
+ 	(CODE_FOR_lsx_vmod_w): Ditto.
+ 	(CODE_FOR_lsx_vmod_d): Ditto.
+ 	(CODE_FOR_lsx_vmod_bu): Ditto.
+ 	(CODE_FOR_lsx_vmod_hu): Ditto.
+ 	(CODE_FOR_lsx_vmod_wu): Ditto.
+ 	(CODE_FOR_lsx_vmod_du): Ditto.
+ 	(CODE_FOR_lsx_vmul_b): Ditto.
+ 	(CODE_FOR_lsx_vmul_h): Ditto.
+ 	(CODE_FOR_lsx_vmul_w): Ditto.
+ 	(CODE_FOR_lsx_vmul_d): Ditto.
+ 	(CODE_FOR_lsx_vclz_b): Ditto.
+ 	(CODE_FOR_lsx_vclz_h): Ditto.
+ 	(CODE_FOR_lsx_vclz_w): Ditto.
+ 	(CODE_FOR_lsx_vclz_d): Ditto.
+ 	(CODE_FOR_lsx_vnor_v): Ditto.
+ 	(CODE_FOR_lsx_vor_v): Ditto.
+ 	(CODE_FOR_lsx_vori_b): Ditto.
+ 	(CODE_FOR_lsx_vnori_b): Ditto.
+ 	(CODE_FOR_lsx_vpcnt_b): Ditto.
+ 	(CODE_FOR_lsx_vpcnt_h): Ditto.
+ 	(CODE_FOR_lsx_vpcnt_w): Ditto.
+ 	(CODE_FOR_lsx_vpcnt_d): Ditto.
+ 	(CODE_FOR_lsx_vxor_v): Ditto.
+ 	(CODE_FOR_lsx_vxori_b): Ditto.
+ 	(CODE_FOR_lsx_vsll_b): Ditto.
+ 	(CODE_FOR_lsx_vsll_h): Ditto.
+ 	(CODE_FOR_lsx_vsll_w): Ditto.
+ 	(CODE_FOR_lsx_vsll_d): Ditto.
+ 	(CODE_FOR_lsx_vslli_b): Ditto.
+ 	(CODE_FOR_lsx_vslli_h): Ditto.
+ 	(CODE_FOR_lsx_vslli_w): Ditto.
+ 	(CODE_FOR_lsx_vslli_d): Ditto.
+ 	(CODE_FOR_lsx_vsra_b): Ditto.
+ 	(CODE_FOR_lsx_vsra_h): Ditto.
+ 	(CODE_FOR_lsx_vsra_w): Ditto.
+ 	(CODE_FOR_lsx_vsra_d): Ditto.
+ 	(CODE_FOR_lsx_vsrai_b): Ditto.
+ 	(CODE_FOR_lsx_vsrai_h): Ditto.
+ 	(CODE_FOR_lsx_vsrai_w): Ditto.
+ 	(CODE_FOR_lsx_vsrai_d): Ditto.
+ 	(CODE_FOR_lsx_vsrl_b): Ditto.
+ 	(CODE_FOR_lsx_vsrl_h): Ditto.
+ 	(CODE_FOR_lsx_vsrl_w): Ditto.
+ 	(CODE_FOR_lsx_vsrl_d): Ditto.
+ 	(CODE_FOR_lsx_vsrli_b): Ditto.
+ 	(CODE_FOR_lsx_vsrli_h): Ditto.
+ 	(CODE_FOR_lsx_vsrli_w): Ditto.
+ 	(CODE_FOR_lsx_vsrli_d): Ditto.
+ 	(CODE_FOR_lsx_vsub_b): Ditto.
+ 	(CODE_FOR_lsx_vsub_h): Ditto.
+ 	(CODE_FOR_lsx_vsub_w): Ditto.
+ 	(CODE_FOR_lsx_vsub_d): Ditto.
+ 	(CODE_FOR_lsx_vsubi_bu): Ditto.
+ 	(CODE_FOR_lsx_vsubi_hu): Ditto.
+ 	(CODE_FOR_lsx_vsubi_wu): Ditto.
+ 	(CODE_FOR_lsx_vsubi_du): Ditto.
+ 	(CODE_FOR_lsx_vpackod_d): Ditto.
+ 	(CODE_FOR_lsx_vpackev_d): Ditto.
+ 	(CODE_FOR_lsx_vpickod_d): Ditto.
+ 	(CODE_FOR_lsx_vpickev_d): Ditto.
+ 	(CODE_FOR_lsx_vrepli_b): Ditto.
+ 	(CODE_FOR_lsx_vrepli_h): Ditto.
+ 	(CODE_FOR_lsx_vrepli_w): Ditto.
+ 	(CODE_FOR_lsx_vrepli_d): Ditto.
+ 	(CODE_FOR_lsx_vsat_b): Ditto.
+ 	(CODE_FOR_lsx_vsat_h): Ditto.
+ 	(CODE_FOR_lsx_vsat_w): Ditto.
+ 	(CODE_FOR_lsx_vsat_d): Ditto.
+ 	(CODE_FOR_lsx_vsat_bu): Ditto.
+ 	(CODE_FOR_lsx_vsat_hu): Ditto.
+ 	(CODE_FOR_lsx_vsat_wu): Ditto.
+ 	(CODE_FOR_lsx_vsat_du): Ditto.
+ 	(CODE_FOR_lsx_vavg_b): Ditto.
+ 	(CODE_FOR_lsx_vavg_h): Ditto.
+ 	(CODE_FOR_lsx_vavg_w): Ditto.
+ 	(CODE_FOR_lsx_vavg_d): Ditto.
+ 	(CODE_FOR_lsx_vavg_bu): Ditto.
+ 	(CODE_FOR_lsx_vavg_hu): Ditto.
+ 	(CODE_FOR_lsx_vavg_wu): Ditto.
+ 	(CODE_FOR_lsx_vavg_du): Ditto.
+ 	(CODE_FOR_lsx_vavgr_b): Ditto.
+ 	(CODE_FOR_lsx_vavgr_h): Ditto.
+ 	(CODE_FOR_lsx_vavgr_w): Ditto.
+ 	(CODE_FOR_lsx_vavgr_d): Ditto.
+ 	(CODE_FOR_lsx_vavgr_bu): Ditto.
+ 	(CODE_FOR_lsx_vavgr_hu): Ditto.
+ 	(CODE_FOR_lsx_vavgr_wu): Ditto.
+ 	(CODE_FOR_lsx_vavgr_du): Ditto.
+ 	(CODE_FOR_lsx_vssub_b): Ditto.
+ 	(CODE_FOR_lsx_vssub_h): Ditto.
+ 	(CODE_FOR_lsx_vssub_w): Ditto.
+ 	(CODE_FOR_lsx_vssub_d): Ditto.
+ 	(CODE_FOR_lsx_vssub_bu): Ditto.
+ 	(CODE_FOR_lsx_vssub_hu): Ditto.
+ 	(CODE_FOR_lsx_vssub_wu): Ditto.
+ 	(CODE_FOR_lsx_vssub_du): Ditto.
+ 	(CODE_FOR_lsx_vabsd_b): Ditto.
+ 	(CODE_FOR_lsx_vabsd_h): Ditto.
+ 	(CODE_FOR_lsx_vabsd_w): Ditto.
+ 	(CODE_FOR_lsx_vabsd_d): Ditto.
+ 	(CODE_FOR_lsx_vabsd_bu): Ditto.
+ 	(CODE_FOR_lsx_vabsd_hu): Ditto.
+ 	(CODE_FOR_lsx_vabsd_wu): Ditto.
+ 	(CODE_FOR_lsx_vabsd_du): Ditto.
+ 	(CODE_FOR_lsx_vftint_w_s): Ditto.
+ 	(CODE_FOR_lsx_vftint_l_d): Ditto.
+ 	(CODE_FOR_lsx_vftint_wu_s): Ditto.
+ 	(CODE_FOR_lsx_vftint_lu_d): Ditto.
+ 	(CODE_FOR_lsx_vandn_v): Ditto.
+ 	(CODE_FOR_lsx_vorn_v): Ditto.
+ 	(CODE_FOR_lsx_vneg_b): Ditto.
+ 	(CODE_FOR_lsx_vneg_h): Ditto.
+ 	(CODE_FOR_lsx_vneg_w): Ditto.
+ 	(CODE_FOR_lsx_vneg_d): Ditto.
+ 	(CODE_FOR_lsx_vshuf4i_d): Ditto.
+ 	(CODE_FOR_lsx_vbsrl_v): Ditto.
+ 	(CODE_FOR_lsx_vbsll_v): Ditto.
+ 	(CODE_FOR_lsx_vfmadd_s): Ditto.
+ 	(CODE_FOR_lsx_vfmadd_d): Ditto.
+ 	(CODE_FOR_lsx_vfmsub_s): Ditto.
+ 	(CODE_FOR_lsx_vfmsub_d): Ditto.
+ 	(CODE_FOR_lsx_vfnmadd_s): Ditto.
+ 	(CODE_FOR_lsx_vfnmadd_d): Ditto.
+ 	(CODE_FOR_lsx_vfnmsub_s): Ditto.
+ 	(CODE_FOR_lsx_vfnmsub_d): Ditto.
+ 	(CODE_FOR_lsx_vmuh_b): Ditto.
+ 	(CODE_FOR_lsx_vmuh_h): Ditto.
+ 	(CODE_FOR_lsx_vmuh_w): Ditto.
+ 	(CODE_FOR_lsx_vmuh_d): Ditto.
+ 	(CODE_FOR_lsx_vmuh_bu): Ditto.
+ 	(CODE_FOR_lsx_vmuh_hu): Ditto.
+ 	(CODE_FOR_lsx_vmuh_wu): Ditto.
+ 	(CODE_FOR_lsx_vmuh_du): Ditto.
+ 	(CODE_FOR_lsx_vsllwil_h_b): Ditto.
+ 	(CODE_FOR_lsx_vsllwil_w_h): Ditto.
+ 	(CODE_FOR_lsx_vsllwil_d_w): Ditto.
+ 	(CODE_FOR_lsx_vsllwil_hu_bu): Ditto.
+ 	(CODE_FOR_lsx_vsllwil_wu_hu): Ditto.
+ 	(CODE_FOR_lsx_vsllwil_du_wu): Ditto.
+ 	(CODE_FOR_lsx_vssran_b_h): Ditto.
+ 	(CODE_FOR_lsx_vssran_h_w): Ditto.
+ 	(CODE_FOR_lsx_vssran_w_d): Ditto.
+ 	(CODE_FOR_lsx_vssran_bu_h): Ditto.
+ 	(CODE_FOR_lsx_vssran_hu_w): Ditto.
+ 	(CODE_FOR_lsx_vssran_wu_d): Ditto.
+ 	(CODE_FOR_lsx_vssrarn_b_h): Ditto.
+ 	(CODE_FOR_lsx_vssrarn_h_w): Ditto.
+ 	(CODE_FOR_lsx_vssrarn_w_d): Ditto.
+ 	(CODE_FOR_lsx_vssrarn_bu_h): Ditto.
+ 	(CODE_FOR_lsx_vssrarn_hu_w): Ditto.
+ 	(CODE_FOR_lsx_vssrarn_wu_d): Ditto.
+ 	(CODE_FOR_lsx_vssrln_bu_h): Ditto.
+ 	(CODE_FOR_lsx_vssrln_hu_w): Ditto.
+ 	(CODE_FOR_lsx_vssrln_wu_d): Ditto.
+ 	(CODE_FOR_lsx_vssrlrn_bu_h): Ditto.
+ 	(CODE_FOR_lsx_vssrlrn_hu_w): Ditto.
+ 	(CODE_FOR_lsx_vssrlrn_wu_d): Ditto.
+ 	(loongarch_builtin_vector_type): Ditto.
+ 	(loongarch_build_cvpointer_type): Ditto.
+ 	(LARCH_ATYPE_CVPOINTER): Ditto.
+ 	(LARCH_ATYPE_BOOLEAN): Ditto.
+ 	(LARCH_ATYPE_V2SF): Ditto.
+ 	(LARCH_ATYPE_V2HI): Ditto.
+ 	(LARCH_ATYPE_V2SI): Ditto.
+ 	(LARCH_ATYPE_V4QI): Ditto.
+ 	(LARCH_ATYPE_V4HI): Ditto.
+ 	(LARCH_ATYPE_V8QI): Ditto.
+ 	(LARCH_ATYPE_V2DI): Ditto.
+ 	(LARCH_ATYPE_V4SI): Ditto.
+ 	(LARCH_ATYPE_V8HI): Ditto.
+ 	(LARCH_ATYPE_V16QI): Ditto.
+ 	(LARCH_ATYPE_V2DF): Ditto.
+ 	(LARCH_ATYPE_V4SF): Ditto.
+ 	(LARCH_ATYPE_V4DI): Ditto.
+ 	(LARCH_ATYPE_V8SI): Ditto.
+ 	(LARCH_ATYPE_V16HI): Ditto.
+ 	(LARCH_ATYPE_V32QI): Ditto.
+ 	(LARCH_ATYPE_V4DF): Ditto.
+ 	(LARCH_ATYPE_V8SF): Ditto.
+ 	(LARCH_ATYPE_UV2DI): Ditto.
+ 	(LARCH_ATYPE_UV4SI): Ditto.
+ 	(LARCH_ATYPE_UV8HI): Ditto.
+ 	(LARCH_ATYPE_UV16QI): Ditto.
+ 	(LARCH_ATYPE_UV4DI): Ditto.
+ 	(LARCH_ATYPE_UV8SI): Ditto.
+ 	(LARCH_ATYPE_UV16HI): Ditto.
+ 	(LARCH_ATYPE_UV32QI): Ditto.
+ 	(LARCH_ATYPE_UV2SI): Ditto.
+ 	(LARCH_ATYPE_UV4HI): Ditto.
+ 	(LARCH_ATYPE_UV8QI): Ditto.
+ 	(loongarch_builtin_vectorized_function): Ditto.
+ 	(LARCH_GET_BUILTIN): Ditto.
+ 	(loongarch_expand_builtin_insn): Ditto.
+ 	(loongarch_expand_builtin_lsx_test_branch): Ditto.
+ 	(loongarch_expand_builtin): Ditto.
+ 	* config/loongarch/loongarch-ftypes.def (1): Ditto.
+ 	(2): Ditto.
+ 	(3): Ditto.
+ 	(4): Ditto.
+ 	* config/loongarch/lsxintrin.h: New file.
+ 
+ 2023-09-05  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/constraints.md (M): Add Loongson LSX base instruction support.
+ 	(N): Ditto.
+ 	(O): Ditto.
+ 	(P): Ditto.
+ 	(R): Ditto.
+ 	(S): Ditto.
+ 	(YG): Ditto.
+ 	(YA): Ditto.
+ 	(YB): Ditto.
+ 	(Yb): Ditto.
+ 	(Yh): Ditto.
+ 	(Yw): Ditto.
+ 	(YI): Ditto.
+ 	(YC): Ditto.
+ 	(YZ): Ditto.
+ 	(Unv5): Ditto.
+ 	(Uuv5): Ditto.
+ 	(Usv5): Ditto.
+ 	(Uuv6): Ditto.
+ 	(Urv8): Ditto.
+ 	* config/loongarch/genopts/loongarch.opt.in: Ditto.
+ 	* config/loongarch/loongarch-builtins.cc (loongarch_gen_const_int_vector): Ditto.
+ 	* config/loongarch/loongarch-modes.def (VECTOR_MODES): Ditto.
+ 	(VECTOR_MODE): Ditto.
+ 	(INT_MODE): Ditto.
+ 	* config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p): Ditto.
+ 	(loongarch_split_move_insn): Ditto.
+ 	(loongarch_split_128bit_move): Ditto.
+ 	(loongarch_split_128bit_move_p): Ditto.
+ 	(loongarch_split_lsx_copy_d): Ditto.
+ 	(loongarch_split_lsx_insert_d): Ditto.
+ 	(loongarch_split_lsx_fill_d): Ditto.
+ 	(loongarch_expand_vec_cmp): Ditto.
+ 	(loongarch_const_vector_same_val_p): Ditto.
+ 	(loongarch_const_vector_same_bytes_p): Ditto.
+ 	(loongarch_const_vector_same_int_p): Ditto.
+ 	(loongarch_const_vector_shuffle_set_p): Ditto.
+ 	(loongarch_const_vector_bitimm_set_p): Ditto.
+ 	(loongarch_const_vector_bitimm_clr_p): Ditto.
+ 	(loongarch_lsx_vec_parallel_const_half): Ditto.
+ 	(loongarch_gen_const_int_vector): Ditto.
+ 	(loongarch_lsx_output_division): Ditto.
+ 	(loongarch_expand_vector_init): Ditto.
+ 	(loongarch_expand_vec_unpack): Ditto.
+ 	(loongarch_expand_vec_perm): Ditto.
+ 	(loongarch_expand_vector_extract): Ditto.
+ 	(loongarch_expand_vector_reduc): Ditto.
+ 	(loongarch_ldst_scaled_shift): Ditto.
+ 	(loongarch_expand_vec_cond_expr): Ditto.
+ 	(loongarch_expand_vec_cond_mask_expr): Ditto.
+ 	(loongarch_builtin_vectorized_function): Ditto.
+ 	(loongarch_gen_const_int_vector_shuffle): Ditto.
+ 	(loongarch_build_signbit_mask): Ditto.
+ 	* config/loongarch/loongarch.cc (loongarch_pass_aggregate_num_fpr): Ditto.
+ 	(loongarch_setup_incoming_varargs): Ditto.
+ 	(loongarch_emit_move): Ditto.
+ 	(loongarch_const_vector_bitimm_set_p): Ditto.
+ 	(loongarch_const_vector_bitimm_clr_p): Ditto.
+ 	(loongarch_const_vector_same_val_p): Ditto.
+ 	(loongarch_const_vector_same_bytes_p): Ditto.
+ 	(loongarch_const_vector_same_int_p): Ditto.
+ 	(loongarch_const_vector_shuffle_set_p): Ditto.
+ 	(loongarch_symbol_insns): Ditto.
+ 	(loongarch_cannot_force_const_mem): Ditto.
+ 	(loongarch_valid_offset_p): Ditto.
+ 	(loongarch_valid_index_p): Ditto.
+ 	(loongarch_classify_address): Ditto.
+ 	(loongarch_address_insns): Ditto.
+ 	(loongarch_ldst_scaled_shift): Ditto.
+ 	(loongarch_const_insns): Ditto.
+ 	(loongarch_split_move_insn_p): Ditto.
+ 	(loongarch_subword_at_byte): Ditto.
+ 	(loongarch_legitimize_move): Ditto.
+ 	(loongarch_builtin_vectorization_cost): Ditto.
+ 	(loongarch_split_move_p): Ditto.
+ 	(loongarch_split_move): Ditto.
+ 	(loongarch_split_move_insn): Ditto.
+ 	(loongarch_output_move_index_float): Ditto.
+ 	(loongarch_split_128bit_move_p): Ditto.
+ 	(loongarch_split_128bit_move): Ditto.
+ 	(loongarch_split_lsx_copy_d): Ditto.
+ 	(loongarch_split_lsx_insert_d): Ditto.
+ 	(loongarch_split_lsx_fill_d): Ditto.
+ 	(loongarch_output_move): Ditto.
+ 	(loongarch_extend_comparands): Ditto.
+ 	(loongarch_print_operand_reloc): Ditto.
+ 	(loongarch_print_operand): Ditto.
+ 	(loongarch_hard_regno_mode_ok_uncached): Ditto.
+ 	(loongarch_hard_regno_call_part_clobbered): Ditto.
+ 	(loongarch_hard_regno_nregs): Ditto.
+ 	(loongarch_class_max_nregs): Ditto.
+ 	(loongarch_can_change_mode_class): Ditto.
+ 	(loongarch_mode_ok_for_mov_fmt_p): Ditto.
+ 	(loongarch_secondary_reload): Ditto.
+ 	(loongarch_vector_mode_supported_p): Ditto.
+ 	(loongarch_preferred_simd_mode): Ditto.
+ 	(loongarch_autovectorize_vector_modes): Ditto.
+ 	(loongarch_lsx_output_division): Ditto.
+ 	(loongarch_option_override_internal): Ditto.
+ 	(loongarch_hard_regno_caller_save_mode): Ditto.
+ 	(MAX_VECT_LEN): Ditto.
+ 	(loongarch_spill_class): Ditto.
+ 	(struct expand_vec_perm_d): Ditto.
+ 	(loongarch_promote_function_mode): Ditto.
+ 	(loongarch_expand_vselect): Ditto.
+ 	(loongarch_starting_frame_offset): Ditto.
+ 	(loongarch_expand_vselect_vconcat): Ditto.
+ 	(TARGET_ASM_ALIGNED_DI_OP): Ditto.
+ 	(TARGET_OPTION_OVERRIDE): Ditto.
+ 	(TARGET_LEGITIMIZE_ADDRESS): Ditto.
+ 	(TARGET_ASM_SELECT_RTX_SECTION): Ditto.
+ 	(TARGET_ASM_FUNCTION_RODATA_SECTION): Ditto.
+ 	(loongarch_expand_lsx_shuffle): Ditto.
+ 	(TARGET_SCHED_INIT): Ditto.
+ 	(TARGET_SCHED_REORDER): Ditto.
+ 	(TARGET_SCHED_REORDER2): Ditto.
+ 	(TARGET_SCHED_VARIABLE_ISSUE): Ditto.
+ 	(TARGET_SCHED_ADJUST_COST): Ditto.
+ 	(TARGET_SCHED_ISSUE_RATE): Ditto.
+ 	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Ditto.
+ 	(TARGET_FUNCTION_OK_FOR_SIBCALL): Ditto.
+ 	(TARGET_VALID_POINTER_MODE): Ditto.
+ 	(TARGET_REGISTER_MOVE_COST): Ditto.
+ 	(TARGET_MEMORY_MOVE_COST): Ditto.
+ 	(TARGET_RTX_COSTS): Ditto.
+ 	(TARGET_ADDRESS_COST): Ditto.
+ 	(TARGET_IN_SMALL_DATA_P): Ditto.
+ 	(TARGET_PREFERRED_RELOAD_CLASS): Ditto.
+ 	(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Ditto.
+ 	(TARGET_EXPAND_BUILTIN_VA_START): Ditto.
+ 	(loongarch_expand_vec_perm): Ditto.
+ 	(TARGET_PROMOTE_FUNCTION_MODE): Ditto.
+ 	(TARGET_RETURN_IN_MEMORY): Ditto.
+ 	(TARGET_FUNCTION_VALUE): Ditto.
+ 	(TARGET_LIBCALL_VALUE): Ditto.
+ 	(loongarch_try_expand_lsx_vshuf_const): Ditto.
+ 	(TARGET_ASM_OUTPUT_MI_THUNK): Ditto.
+ 	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): Ditto.
+ 	(TARGET_PRINT_OPERAND): Ditto.
+ 	(TARGET_PRINT_OPERAND_ADDRESS): Ditto.
+ 	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Ditto.
+ 	(TARGET_SETUP_INCOMING_VARARGS): Ditto.
+ 	(TARGET_STRICT_ARGUMENT_NAMING): Ditto.
+ 	(TARGET_MUST_PASS_IN_STACK): Ditto.
+ 	(TARGET_PASS_BY_REFERENCE): Ditto.
+ 	(TARGET_ARG_PARTIAL_BYTES): Ditto.
+ 	(TARGET_FUNCTION_ARG): Ditto.
+ 	(TARGET_FUNCTION_ARG_ADVANCE): Ditto.
+ 	(TARGET_FUNCTION_ARG_BOUNDARY): Ditto.
+ 	(TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
+ 	(TARGET_INIT_BUILTINS): Ditto.
+ 	(loongarch_expand_vec_perm_const_1): Ditto.
+ 	(loongarch_expand_vec_perm_const_2): Ditto.
+ 	(loongarch_vectorize_vec_perm_const): Ditto.
+ 	(loongarch_cpu_sched_reassociation_width): Ditto.
+ 	(loongarch_sched_reassociation_width): Ditto.
+ 	(loongarch_expand_vector_extract): Ditto.
+ 	(emit_reduc_half): Ditto.
+ 	(loongarch_expand_vector_reduc): Ditto.
+ 	(loongarch_expand_vec_unpack): Ditto.
+ 	(loongarch_lsx_vec_parallel_const_half): Ditto.
+ 	(loongarch_constant_elt_p): Ditto.
+ 	(loongarch_gen_const_int_vector_shuffle): Ditto.
+ 	(loongarch_expand_vector_init): Ditto.
+ 	(loongarch_expand_lsx_cmp): Ditto.
+ 	(loongarch_expand_vec_cond_expr): Ditto.
+ 	(loongarch_expand_vec_cond_mask_expr): Ditto.
+ 	(loongarch_expand_vec_cmp): Ditto.
+ 	(loongarch_case_values_threshold): Ditto.
+ 	(loongarch_build_const_vector): Ditto.
+ 	(loongarch_build_signbit_mask): Ditto.
+ 	(loongarch_builtin_support_vector_misalignment): Ditto.
+ 	(TARGET_ASM_ALIGNED_HI_OP): Ditto.
+ 	(TARGET_ASM_ALIGNED_SI_OP): Ditto.
+ 	(TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Ditto.
+ 	(TARGET_VECTOR_MODE_SUPPORTED_P): Ditto.
+ 	(TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Ditto.
+ 	(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Ditto.
+ 	(TARGET_VECTORIZE_VEC_PERM_CONST): Ditto.
+ 	(TARGET_SCHED_REASSOCIATION_WIDTH): Ditto.
+ 	(TARGET_CASE_VALUES_THRESHOLD): Ditto.
+ 	(TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Ditto.
+ 	(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Ditto.
+ 	* config/loongarch/loongarch.h (TARGET_SUPPORTS_WIDE_INT): Ditto.
+ 	(UNITS_PER_LSX_REG): Ditto.
+ 	(BITS_PER_LSX_REG): Ditto.
+ 	(BIGGEST_ALIGNMENT): Ditto.
+ 	(LSX_REG_FIRST): Ditto.
+ 	(LSX_REG_LAST): Ditto.
+ 	(LSX_REG_NUM): Ditto.
+ 	(LSX_REG_P): Ditto.
+ 	(LSX_REG_RTX_P): Ditto.
+ 	(IMM13_OPERAND): Ditto.
+ 	(LSX_SUPPORTED_MODE_P): Ditto.
+ 	* config/loongarch/loongarch.md (unknown,add,sub,not,nor,and,or,xor): Ditto.
+ 	(unknown,add,sub,not,nor,and,or,xor,simd_add): Ditto.
+ 	(unknown,none,QI,HI,SI,DI,TI,SF,DF,TF,FCC): Ditto.
+ 	(mode" ): Ditto.
+ 	(DF): Ditto.
+ 	(SF): Ditto.
+ 	(sf): Ditto.
+ 	(DI): Ditto.
+ 	(SI): Ditto.
+ 	* config/loongarch/loongarch.opt: Ditto.
+ 	* config/loongarch/predicates.md (const_lsx_branch_operand): Ditto.
+ 	(const_uimm3_operand): Ditto.
+ 	(const_8_to_11_operand): Ditto.
+ 	(const_12_to_15_operand): Ditto.
+ 	(const_uimm4_operand): Ditto.
+ 	(const_uimm6_operand): Ditto.
+ 	(const_uimm7_operand): Ditto.
+ 	(const_uimm8_operand): Ditto.
+ 	(const_imm5_operand): Ditto.
+ 	(const_imm10_operand): Ditto.
+ 	(const_imm13_operand): Ditto.
+ 	(reg_imm10_operand): Ditto.
+ 	(aq8b_operand): Ditto.
+ 	(aq8h_operand): Ditto.
+ 	(aq8w_operand): Ditto.
+ 	(aq8d_operand): Ditto.
+ 	(aq10b_operand): Ditto.
+ 	(aq10h_operand): Ditto.
+ 	(aq10w_operand): Ditto.
+ 	(aq10d_operand): Ditto.
+ 	(aq12b_operand): Ditto.
+ 	(aq12h_operand): Ditto.
+ 	(aq12w_operand): Ditto.
+ 	(aq12d_operand): Ditto.
+ 	(const_m1_operand): Ditto.
+ 	(reg_or_m1_operand): Ditto.
+ 	(const_exp_2_operand): Ditto.
+ 	(const_exp_4_operand): Ditto.
+ 	(const_exp_8_operand): Ditto.
+ 	(const_exp_16_operand): Ditto.
+ 	(const_exp_32_operand): Ditto.
+ 	(const_0_or_1_operand): Ditto.
+ 	(const_0_to_3_operand): Ditto.
+ 	(const_0_to_7_operand): Ditto.
+ 	(const_2_or_3_operand): Ditto.
+ 	(const_4_to_7_operand): Ditto.
+ 	(const_8_to_15_operand): Ditto.
+ 	(const_16_to_31_operand): Ditto.
+ 	(qi_mask_operand): Ditto.
+ 	(hi_mask_operand): Ditto.
+ 	(si_mask_operand): Ditto.
+ 	(d_operand): Ditto.
+ 	(db4_operand): Ditto.
+ 	(db7_operand): Ditto.
+ 	(db8_operand): Ditto.
+ 	(ib3_operand): Ditto.
+ 	(sb4_operand): Ditto.
+ 	(sb5_operand): Ditto.
+ 	(sb8_operand): Ditto.
+ 	(sd8_operand): Ditto.
+ 	(ub4_operand): Ditto.
+ 	(ub8_operand): Ditto.
+ 	(uh4_operand): Ditto.
+ 	(uw4_operand): Ditto.
+ 	(uw5_operand): Ditto.
+ 	(uw6_operand): Ditto.
+ 	(uw8_operand): Ditto.
+ 	(addiur2_operand): Ditto.
+ 	(addiusp_operand): Ditto.
+ 	(andi16_operand): Ditto.
+ 	(movep_src_register): Ditto.
+ 	(movep_src_operand): Ditto.
+ 	(fcc_reload_operand): Ditto.
+ 	(muldiv_target_operand): Ditto.
+ 	(const_vector_same_val_operand): Ditto.
+ 	(const_vector_same_simm5_operand): Ditto.
+ 	(const_vector_same_uimm5_operand): Ditto.
+ 	(const_vector_same_ximm5_operand): Ditto.
+ 	(const_vector_same_uimm6_operand): Ditto.
+ 	(par_const_vector_shf_set_operand): Ditto.
+ 	(reg_or_vector_same_val_operand): Ditto.
+ 	(reg_or_vector_same_simm5_operand): Ditto.
+ 	(reg_or_vector_same_uimm5_operand): Ditto.
+ 	(reg_or_vector_same_ximm5_operand): Ditto.
+ 	(reg_or_vector_same_uimm6_operand): Ditto.
+ 	* doc/md.texi: Ditto.
+ 	* config/loongarch/lsx.md: New file.
+ 
+ 2023-09-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (lookup_vector_type_attribute): Export global.
+ 	(get_all_predecessors): New function.
+ 	(get_all_successors): Ditto.
+ 	* config/riscv/riscv-v.cc (get_all_predecessors): Ditto.
+ 	(get_all_successors): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (sizeless_type_p): Export global.
+ 	* config/riscv/riscv-vsetvl.cc (get_all_predecessors): Remove it.
+ 
+ 2023-09-05  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc-protos.h (arc_output_addsi): Remove declaration.
+ 	(split_addsi): Likewise.
+ 	* config/arc/arc.cc (arc_print_operand): Add/repurpose 's', 'S',
+ 	'N', 'x', and 'J' code letters.
+ 	(arc_output_addsi): Make it static.
+ 	(split_addsi): Remove it.
+ 	* config/arc/arc.h (UNSIGNED_INT*): New defines.
+ 	(SINNED_INT*): Likewise.
+ 	* config/arc/arc.md (type): Add add, sub, bxor types.
+ 	(tst_movb): Change code letter from 's' to 'x'.
+ 	(andsi3_i): Likewise.
+ 	(addsi3_mixed): Refurbish the pattern.
+ 	(call_i): Change code letter from 'S' to 'J'.
+ 	* config/arc/arc700.md: Add newly introduced types.
+ 	* config/arc/arcHS.md: Likewsie.
+ 	* config/arc/arcHS4x.md: Likewise.
+ 	* config/arc/constraints.md (Cca, CL2, Csp, C2a): Remove it.
+ 	(CM4): Update description.
+ 	(CP4, C6u, C6n, CIs, C4p): New constraint.
+ 
+ 2023-09-05  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* common/config/arc/arc-common.cc (arc_option_optimization_table):
+ 	Remove mbbit_peephole.
+ 	* config/arc/arc.md (UNSPEC_ARC_DIRECT): Remove.
+ 	(store_direct): Likewise.
+ 	(BBIT peephole2): Likewise.
+ 	* config/arc/arc.opt (mbbit-peephole): Ignore option.
+ 	* doc/invoke.texi (mbbit-peephole): Update document.
+ 
+ 2023-09-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-ssa-tail-merge.cc (replace_block_by): Fix a comment typo:
+ 	avreage -> average.
+ 
+ 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.h (CC1_SPEC): Mark normalized
+ 	options passed from driver to gnat1 as explicit for multilib.
+ 
+ 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: add loongarch*-elf target.
+ 	* config/loongarch/elf.h: New file.
+ 	Link against newlib by default.
+ 
+ 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: use -mstrict-align for building libraries
+ 	if --with-strict-align-lib is given.
+ 	* doc/install.texi: likewise.
+ 
+ 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-c.cc: Export macros
+ 	"__loongarch_{arch,tune}" in the preprocessor.
+ 
+ 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* config.gcc: Make --with-abi= obsolete, decide the default ABI
+ 	with target triplet.  Allow specifying multilib library build
+ 	options with --with-multilib-list and --with-multilib-default.
+ 	* config/loongarch/t-linux: Likewise.
+ 	* config/loongarch/genopts/loongarch-strings: Likewise.
+ 	* config/loongarch/loongarch-str.h: Likewise.
+ 	* doc/install.texi: Likewise.
+ 	* config/loongarch/genopts/loongarch.opt.in: Introduce
+ 	-m[no-]l[a]sx options.  Only process -m*-float and
+ 	-m[no-]l[a]sx in the GCC driver.
+ 	* config/loongarch/loongarch.opt: Likewise.
+ 	* config/loongarch/la464.md: Likewise.
+ 	* config/loongarch/loongarch-c.cc: Likewise.
+ 	* config/loongarch/loongarch-cpu.cc: Likewise.
+ 	* config/loongarch/loongarch-cpu.h: Likewise.
+ 	* config/loongarch/loongarch-def.c: Likewise.
+ 	* config/loongarch/loongarch-def.h: Likewise.
+ 	* config/loongarch/loongarch-driver.cc: Likewise.
+ 	* config/loongarch/loongarch-driver.h: Likewise.
+ 	* config/loongarch/loongarch-opts.cc: Likewise.
+ 	* config/loongarch/loongarch-opts.h: Likewise.
+ 	* config/loongarch/loongarch.cc: Likewise.
+ 	* doc/invoke.texi: Likewise.
+ 
+ 2023-09-05  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md: (V8BFH_128): Renamed to ..
+ 	(VHFBF_128): .. this.
+ 	(V16BFH_256): Renamed to ..
+ 	(VHFBF_256): .. this.
+ 	(avx512f_mov<mode>): Extend to V_128.
+ 	(vcvtnee<bf16_ph>2ps_<mode>): Changed to VHFBF_128.
+ 	(vcvtneo<bf16_ph>2ps_<mode>): Ditto.
+ 	(vcvtnee<bf16_ph>2ps_<mode>): Changed to VHFBF_256.
+ 	(vcvtneo<bf16_ph>2ps_<mode>): Ditto.
+ 	* config/i386/i386-expand.cc (expand_vec_perm_blend):
+ 	Canonicalize vec_merge.
+ 
+ 2023-09-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Fix Dynamic status.
+ 	* config/riscv/riscv-v.cc (preferred_simd_mode): Ditto.
+ 	(autovectorize_vector_modes): Ditto.
+ 	(vectorize_related_mode): Ditto.
+ 
+ 2023-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/darwin.h (LIB_SPEC): Include libSystemStubs for
+ 	all 32b Darwin PowerPC cases.
+ 
+ 2023-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin-sections.def (static_init_section): Add the
+ 	__TEXT,__StaticInit section.
+ 	* config/darwin.cc (darwin_function_section): Use the static init
+ 	section for global initializers, to match other platform toolchains.
+ 
+ 2023-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin-sections.def (darwin_exception_section): Move to
+ 	the __TEXT segment.
+ 	* config/darwin.cc (darwin_emit_except_table_label): Align before
+ 	the exception table label.
+ 	* config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use indirect PC-
+ 	relative 4byte relocs.
+ 
+ 2023-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (dump_machopic_symref_flags): New.
+ 	(debug_machopic_symref_flags): New.
+ 
+ 2023-09-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(vfloat16mf4_t): Add FP16 intrinsic def.
+ 	(vfloat16mf2_t): Ditto.
+ 	(vfloat16m1_t): Ditto.
+ 	(vfloat16m2_t): Ditto.
+ 	(vfloat16m4_t): Ditto.
+ 	(vfloat16m8_t): Ditto.
+ 
+ 2023-09-04  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR tree-optimization/108757
+ 	* match.pd ((X - N * M) / N): New pattern.
+ 	((X + N * M) / N): New pattern.
+ 	((X + C) div_rshift N): New pattern.
+ 
+ 2023-09-04  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md: Support 'G' -> 'k' in
+ 	movsf_hardfloat and movdf_hardfloat.
+ 
+ 2023-09-04  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_extend_comparands):
+ 	In unsigned QImode test, check for sign extended subreg and/or
+ 	constant operands, and do a sign extension in that case.
+ 	* config/loongarch/loongarch.md (TARGET_64BIT): Define
+ 	template cbranchqi4.
+ 
+ 2023-09-04  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md: Allows fixed-point values to be loaded
+ 	from memory into floating-point registers.
+ 
+ 2023-09-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-vls.md (<optab><mode>3): New pattern for
+ 	fmax/fmin
+ 	* config/riscv/vector.md: Add VLS modes to vfmax/vfmin.
+ 
+ 2023-09-02  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	* tree-diagnostic.cc (tree_diagnostics_defaults): Delete allocated
+ 	pointer before overwriting it.
+ 
+ 2023-09-02  chenxiaolong  <chenxiaolong@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-builtins.cc (loongarch_init_builtins):
+ 	Associate the __float128 type to float128_type_node so that it can
+ 	be recognized by the compiler.
+ 	* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
+ 	Add the flag "FLOAT128_TYPE" to gcc and associate a function
+ 	with the suffix "q" to "f128".
+ 	* doc/extend.texi:Added support for 128-bit floating-point functions on
+ 	the LoongArch architecture.
+ 
+ 2023-09-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/111069
+ 	* common.opt (fabi-version=): Document version 19.
+ 	* doc/invoke.texi (-fabi-version=): Likewise.
+ 
+ 2023-09-01  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_<optab><mode><vconvert>):
+ 	New combine pattern.
+ 	(*cond_<float_cvt><vconvert><mode>): Ditto.
+ 	(*cond_<optab><vnconvert><mode>): Ditto.
+ 	(*cond_<float_cvt><vnconvert><mode>): Ditto.
+ 	(*cond_<optab><mode><vnconvert>): Ditto.
+ 	(*cond_<float_cvt><mode><vnconvert>2): Ditto.
+ 	* config/riscv/autovec.md (<optab><mode><vconvert>2): Adjust.
+ 	(<float_cvt><vconvert><mode>2): Adjust.
+ 	(<optab><vnconvert><mode>2): Adjust.
+ 	(<float_cvt><vnconvert><mode>2): Adjust.
+ 	(<optab><mode><vnconvert>2): Adjust.
+ 	(<float_cvt><mode><vnconvert>2): Adjust.
+ 	* config/riscv/riscv-v.cc (needs_fp_rounding): Add INT->FP extend.
+ 
+ 2023-09-01  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_extend<v_double_trunc><mode>):
+ 	New combine pattern.
+ 	(*cond_trunc<mode><v_double_trunc>): Ditto.
+ 	* config/riscv/autovec.md: Adjust.
+ 	* config/riscv/riscv-v.cc (needs_fp_rounding): Add FP extend.
+ 
+ 2023-09-01  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_<optab><v_double_trunc><mode>):
+ 	New combine pattern.
+ 	(*cond_<optab><v_quad_trunc><mode>): Ditto.
+ 	(*cond_<optab><v_oct_trunc><mode>): Ditto.
+ 	(*cond_trunc<mode><v_double_trunc>): Ditto.
+ 	* config/riscv/autovec.md (<optab><v_quad_trunc><mode>2): Adjust.
+ 	(<optab><v_oct_trunc><mode>2): Ditto.
+ 
+ 2023-09-01  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Adjust.
+ 	* config/riscv/riscv-protos.h (expand_cond_len_unop): Ditto.
+ 	(expand_cond_len_binop): Ditto.
+ 	* config/riscv/riscv-v.cc (needs_fp_rounding): Ditto.
+ 	(expand_cond_len_op): Ditto.
+ 	(expand_cond_len_unop): Ditto.
+ 	(expand_cond_len_binop): Ditto.
+ 	(expand_cond_len_ternop): Ditto.
+ 
+ 2023-09-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (autovectorize_vector_modes): Enable
+ 	VECT_COMPARE_COSTS by default.
+ 
+ 2023-09-01  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (vec_extract<mode>qi): New expander.
+ 
+ 2023-09-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Add
+ 	dynamic enum.
+ 	* config/riscv/riscv.opt: Add dynamic compile option.
+ 
+ 2023-09-01  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-vls.md (<optab><mode>3): New pattern for
+ 	vls floating-point autovec.
+ 	* config/riscv/vector-iterators.md: New iterator for
+ 	floating-point V and VLS.
+ 	* config/riscv/vector.md: Add VLS to floating-point binop.
+ 
+ 2023-09-01  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/19832
+ 	* match.pd: Add pattern to optimize
+ 	`(a != b) ? a OP b : c`.
+ 
+ 2023-09-01  Lulu Cheng  <chenglulu@loongson.cn>
+ 	    Guo Jie  <guojie@loongson.cn>
+ 
+ 	PR target/110484
+ 	* config/loongarch/loongarch.cc (loongarch_emit_stack_tie): Use the
+ 	frame_pointer_needed to determine whether to use the $fp register.
+ 
+ 2023-08-31  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110915
+ 	* match.pd (min_value, max_value): Extend to vector constants.
+ 
+ 2023-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* config.in: Regenerate.
+ 	* config/darwin-c.cc: Change spelling to macOS.
+ 	* config/darwin-driver.cc: Likewise.
+ 	* config/darwin.h: Likewise.
+ 	* configure.ac: Likewise.
+ 	* doc/contrib.texi: Likewise.
+ 	* doc/extend.texi: Likewise.
+ 	* doc/invoke.texi: Likewise.
+ 	* doc/plugins.texi: Likewise.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Change spelling to macOS.
+ 	* plugin.cc: Likewise.
+ 
+ 2023-08-31  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Add FRM_REGNUM to vfnmadd/vfnmacc.
+ 	* config/riscv/autovec.md: Ditto.
+ 
+ 2023-08-31  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Add FRM_REGNUM to vfnmsac/vfnmsub
+ 	* config/riscv/autovec.md: Ditto.
+ 
+ 2023-08-31  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (untyped_call): Emit a call_value
+ 	rather than a call.  List each possible destination register
+ 	in the call pattern.
+ 
+ 2023-08-31  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Add FRM_REGNUM to vfmsac/vfmsub
+ 	* config/riscv/autovec.md: Ditto.
+ 
+ 2023-08-31  Pan Li  <pan2.li@intel.com>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md: Add FRM_REGNUM to vfmadd/vfmacc.
+ 	* config/riscv/autovec.md: Ditto.
+ 	* config/riscv/vector-iterators.md: Add UNSPEC_VFFMA.
+ 
+ 2023-08-31  Palmer Dabbelt  <palmer@rivosinc.com>
+ 
+ 	* config/riscv/autovec.md (shifts): Use
+ 	vector_scalar_shift_operand.
+ 	* config/riscv/predicates.md (vector_scalar_shift_operand): New
+ 	predicate.
+ 
+ 2023-08-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config.gcc: Add vector cost model framework for RVV.
+ 	* config/riscv/riscv.cc (riscv_vectorize_create_costs): Ditto.
+ 	(TARGET_VECTORIZE_CREATE_COSTS): Ditto.
+ 	* config/riscv/t-riscv: Ditto.
+ 	* config/riscv/riscv-vector-costs.cc: New file.
+ 	* config/riscv/riscv-vector-costs.h: New file.
+ 
+ 2023-08-31  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/110411
+ 	* config/rs6000/mma.md (define_insn_and_split movoo): Disallow
+ 	AltiVec address operands.
+ 	(define_insn_and_split movxo): Likewise.
+ 	* config/rs6000/predicates.md (vsx_quad_dform_memory_operand): Remove
+ 	redundant mode size check.
+ 
+ 2023-08-31  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (IS_AGNOSTIC): Move to here.
+ 	* config/riscv/riscv-v.cc (gen_no_side_effects_vsetvl_rtx):
+ 	Change to default policy.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Change to default policy.
+ 	* config/riscv/riscv-vsetvl.h (IS_AGNOSTIC): Delete.
+ 	* config/riscv/riscv.cc (riscv_print_operand): Use IS_AGNOSTIC to test.
+ 
+ 2023-08-31  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md: Adjust.
+ 	* config/riscv/autovec-vls.md: Ditto.
+ 	* config/riscv/autovec.md: Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_type): Add insn_type.
+ 	(enum insn_flags): Add insn flags.
+ 	(emit_vlmax_insn): Adjust.
+ 	(emit_vlmax_fp_insn): Delete.
+ 	(emit_vlmax_ternary_insn): Delete.
+ 	(emit_vlmax_fp_ternary_insn): Delete.
+ 	(emit_nonvlmax_insn): Adjust.
+ 	(emit_vlmax_slide_insn): Delete.
+ 	(emit_nonvlmax_slide_tu_insn): Delete.
+ 	(emit_vlmax_merge_insn): Delete.
+ 	(emit_vlmax_cmp_insn): Delete.
+ 	(emit_vlmax_cmp_mu_insn): Delete.
+ 	(emit_vlmax_masked_mu_insn): Delete.
+ 	(emit_scalar_move_insn): Delete.
+ 	(emit_nonvlmax_integer_move_insn): Delete.
+ 	(emit_vlmax_insn_lra): Add.
+ 	* config/riscv/riscv-v.cc (get_mask_mode_from_insn_flags): New.
+ 	(emit_vlmax_insn): Adjust.
+ 	(emit_nonvlmax_insn): Adjust.
+ 	(emit_vlmax_insn_lra): Add.
+ 	(emit_vlmax_fp_insn): Delete.
+ 	(emit_vlmax_ternary_insn): Delete.
+ 	(emit_vlmax_fp_ternary_insn): Delete.
+ 	(emit_vlmax_slide_insn): Delete.
+ 	(emit_nonvlmax_slide_tu_insn): Delete.
+ 	(emit_nonvlmax_slide_insn): Delete.
+ 	(emit_vlmax_merge_insn): Delete.
+ 	(emit_vlmax_cmp_insn): Delete.
+ 	(emit_vlmax_cmp_mu_insn): Delete.
+ 	(emit_vlmax_masked_insn): Delete.
+ 	(emit_nonvlmax_masked_insn): Delete.
+ 	(emit_vlmax_masked_store_insn): Delete.
+ 	(emit_nonvlmax_masked_store_insn): Delete.
+ 	(emit_vlmax_masked_mu_insn): Delete.
+ 	(emit_vlmax_masked_fp_mu_insn): Delete.
+ 	(emit_nonvlmax_tu_insn): Delete.
+ 	(emit_nonvlmax_fp_tu_insn): Delete.
+ 	(emit_nonvlmax_tumu_insn): Delete.
+ 	(emit_nonvlmax_fp_tumu_insn): Delete.
+ 	(emit_scalar_move_insn): Delete.
+ 	(emit_cpop_insn): Delete.
+ 	(emit_vlmax_integer_move_insn): Delete.
+ 	(emit_nonvlmax_integer_move_insn): Delete.
+ 	(emit_vlmax_gather_insn): Delete.
+ 	(emit_vlmax_masked_gather_mu_insn): Delete.
+ 	(emit_vlmax_compress_insn): Delete.
+ 	(emit_nonvlmax_compress_insn): Delete.
+ 	(emit_vlmax_reduction_insn): Delete.
+ 	(emit_vlmax_fp_reduction_insn): Delete.
+ 	(emit_nonvlmax_fp_reduction_insn): Delete.
+ 	(expand_vec_series): Adjust.
+ 	(expand_const_vector): Adjust.
+ 	(legitimize_move): Adjust.
+ 	(sew64_scalar_helper): Adjust.
+ 	(expand_tuple_move): Adjust.
+ 	(expand_vector_init_insert_elems): Adjust.
+ 	(expand_vector_init_merge_repeating_sequence): Adjust.
+ 	(expand_vec_cmp): Adjust.
+ 	(expand_vec_cmp_float): Adjust.
+ 	(expand_vec_perm): Adjust.
+ 	(shuffle_merge_patterns): Adjust.
+ 	(shuffle_compress_patterns): Adjust.
+ 	(shuffle_decompress_patterns): Adjust.
+ 	(expand_load_store): Adjust.
+ 	(expand_cond_len_op): Adjust.
+ 	(expand_cond_len_unop): Adjust.
+ 	(expand_cond_len_binop): Adjust.
+ 	(expand_gather_scatter): Adjust.
+ 	(expand_cond_len_ternop): Adjust.
+ 	(expand_reduction): Adjust.
+ 	(expand_lanes_load_store): Adjust.
+ 	(expand_fold_extract_last): Adjust.
+ 	* config/riscv/riscv.cc (vector_zero_call_used_regs): Adjust.
+ 	* config/riscv/vector.md: Adjust.
+ 
+ 2023-08-31  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/96762
+ 	* config/rs6000/rs6000-string.cc (expand_block_move): Call vector
+ 	load/store with length only on 64-bit Power10.
+ 
+ 2023-08-31  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc.cc (arc_split_mov_const): Use LSL16 only when
+ 	SWAP option is enabled.
+ 	* config/arc/arc.md (ashlsi2_cnt16): Likewise.
+ 
+ 2023-08-31  Stamatis Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vcaddq_rot90, vcaddq_rot270):
+ 	Use common insn for signed and unsigned front-end definitions.
+ 	* config/arm/arm_mve_builtins.def
+ 	(vcaddq_rot90_m_u, vcaddq_rot270_m_u): Make common.
+ 	(vcaddq_rot90_m_s, vcaddq_rot270_m_s): Remove.
+ 	* config/arm/iterators.md (mve_insn): Merge signed and unsigned defs.
+ 	(isu): Likewise.
+ 	(rot): Likewise.
+ 	(mve_rot): Likewise.
+ 	(supf): Likewise.
+ 	(VxCADDQ_M): Likewise.
+ 	* config/arm/unspecs.md (unspec): Likewise.
+ 	* config/arm/mve.md: Fix minor typo.
+ 
+ 2023-08-31  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (<avx512>_blendm<mode>): Merge
+ 	VF_AVX512HFBFVL into VI12HFBF_AVX512VL.
+ 	(VF_AVX512HFBF16): Renamed to VHFBF.
+ 	(VF_AVX512FP16VL): Renamed to VHF_AVX512VL.
+ 	(VF_AVX512FP16): Removed.
+ 	(div<mode>3): Adjust VF_AVX512FP16VL to VHF_AVX512VL.
+ 	(avx512fp16_rcp<mode>2<mask_name>): Ditto.
+ 	(rsqrt<mode>2): Ditto.
+ 	(<sse>_rsqrt<mode>2<mask_name>): Ditto.
+ 	(vcond<mode><code>): Ditto.
+ 	(vcond<sseintvecmodelower><mode>): Ditto.
+ 	(<avx512>_fmaddc_<mode>_mask1<round_expand_name>): Ditto.
+ 	(<avx512>_fmaddc_<mode>_maskz<round_expand_name>): Ditto.
+ 	(<avx512>_fcmaddc_<mode>_mask1<round_expand_name>): Ditto.
+ 	(<avx512>_fcmaddc_<mode>_maskz<round_expand_name>): Ditto.
+ 	(cmla<conj_op><mode>4): Ditto.
+ 	(fma_<mode>_fadd_fmul): Ditto.
+ 	(fma_<mode>_fadd_fcmul): Ditto.
+ 	(fma_<complexopname>_<mode>_fma_zero): Ditto.
+ 	(fma_<mode>_fmaddc_bcst): Ditto.
+ 	(fma_<mode>_fcmaddc_bcst): Ditto.
+ 	(<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto.
+ 	(cmul<conj_op><mode>3): Ditto.
+ 	(<avx512>_<complexopname>_<mode><maskc_name><round_name>):
+ 	Ditto.
+ 	(vec_unpacks_lo_<mode>): Ditto.
+ 	(vec_unpacks_hi_<mode>): Ditto.
+ 	(vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
+ 	(vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
+ 	(*vec_extract<mode>_0): Ditto.
+ 	(*<avx512>_cmp<mode>3): Extend to V48H_AVX512VL.
+ 
+ 2023-08-31  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	PR target/111234
+ 	* config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Remove condition.
+ 
+ 2023-08-31  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* range-op-mixed.h (operator_plus::overflow_free_p): New declare.
+ 	(operator_minus::overflow_free_p): New declare.
+ 	(operator_mult::overflow_free_p): New declare.
+ 	* range-op.cc (range_op_handler::overflow_free_p): New function.
+ 	(range_operator::overflow_free_p): New default function.
+ 	(operator_plus::overflow_free_p): New function.
+ 	(operator_minus::overflow_free_p): New function.
+ 	(operator_mult::overflow_free_p): New function.
+ 	* range-op.h (range_op_handler::overflow_free_p): New declare.
+ 	(range_operator::overflow_free_p): New declare.
+ 	* value-range.cc (irange::nonnegative_p): New function.
+ 	(irange::nonpositive_p): New function.
+ 	* value-range.h (irange::nonnegative_p): New declare.
+ 	(irange::nonpositive_p): New declare.
+ 
+ 2023-08-30  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	PR target/106562
+ 	* config/pru/predicates.md (const_0_operand): New predicate.
+ 	(pru_cstore_comparison_operator): Ditto.
+ 	* config/pru/pru.md (cstore<mode>4): New pattern.
+ 	(cstoredi4): Ditto.
+ 
+ 2023-08-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111228
+ 	* match.pd ((vec_perm (vec_perm ..) @5 ..) -> (vec_perm @x @5 ..)):
+ 	New simplifications.
+ 
+ 2023-08-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (movmisalign<mode>): Delete.
+ 
+ 2023-08-30  Die Li  <lidie@eswincomputing.com>
+ 	    Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/peephole.md: New pattern.
+ 	* config/riscv/predicates.md (a0a1_reg_operand): New predicate.
+ 	(zcmp_mv_sreg_operand): New predicate.
+ 	* config/riscv/riscv.md: New predicate.
+ 	* config/riscv/zc.md (*mva01s<X:mode>): New pattern.
+ 	(*mvsa01<X:mode>): New pattern.
+ 
+ 2023-08-30  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc
+ 	(riscv_zcmp_can_use_popretz): true if popretz can be used
+ 	(riscv_gen_multi_pop_insn): interface to generate cm.pop[ret][z]
+ 	(riscv_expand_epilogue): expand cm.pop[ret][z] in epilogue
+ 	* config/riscv/riscv.md: define A0_REGNUM
+ 	* config/riscv/zc.md
+ 	(@gpr_multi_popretz_up_to_ra_<mode>): md for popretz ra
+ 	(@gpr_multi_popretz_up_to_s0_<mode>): md for popretz ra, s0
+ 	(@gpr_multi_popretz_up_to_s1_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s2_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s3_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s4_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s5_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s6_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s7_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s8_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s9_<mode>): likewise
+ 	(@gpr_multi_popretz_up_to_s11_<mode>): likewise
+ 
+ 2023-08-30  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/iterators.md
+ 	(slot0_offset): slot 0 offset in stack GPRs area in bytes
+ 	(slot1_offset): slot 1 offset in stack GPRs area in bytes
+ 	(slot2_offset): likewise
+ 	(slot3_offset): likewise
+ 	(slot4_offset): likewise
+ 	(slot5_offset): likewise
+ 	(slot6_offset): likewise
+ 	(slot7_offset): likewise
+ 	(slot8_offset): likewise
+ 	(slot9_offset): likewise
+ 	(slot10_offset): likewise
+ 	(slot11_offset): likewise
+ 	(slot12_offset): likewise
+ 	* config/riscv/predicates.md
+ 	(stack_push_up_to_ra_operand): predicates of stack adjust pushing ra
+ 	(stack_push_up_to_s0_operand): predicates of stack adjust pushing ra, s0
+ 	(stack_push_up_to_s1_operand): likewise
+ 	(stack_push_up_to_s2_operand): likewise
+ 	(stack_push_up_to_s3_operand): likewise
+ 	(stack_push_up_to_s4_operand): likewise
+ 	(stack_push_up_to_s5_operand): likewise
+ 	(stack_push_up_to_s6_operand): likewise
+ 	(stack_push_up_to_s7_operand): likewise
+ 	(stack_push_up_to_s8_operand): likewise
+ 	(stack_push_up_to_s9_operand): likewise
+ 	(stack_push_up_to_s11_operand): likewise
+ 	(stack_pop_up_to_ra_operand): predicates of stack adjust poping ra
+ 	(stack_pop_up_to_s0_operand): predicates of stack adjust poping ra, s0
+ 	(stack_pop_up_to_s1_operand): likewise
+ 	(stack_pop_up_to_s2_operand): likewise
+ 	(stack_pop_up_to_s3_operand): likewise
+ 	(stack_pop_up_to_s4_operand): likewise
+ 	(stack_pop_up_to_s5_operand): likewise
+ 	(stack_pop_up_to_s6_operand): likewise
+ 	(stack_pop_up_to_s7_operand): likewise
+ 	(stack_pop_up_to_s8_operand): likewise
+ 	(stack_pop_up_to_s9_operand): likewise
+ 	(stack_pop_up_to_s11_operand): likewise
+ 	* config/riscv/riscv-protos.h
+ 	(riscv_zcmp_valid_stack_adj_bytes_p):declaration
+ 	* config/riscv/riscv.cc (struct riscv_frame_info): comment change
+ 	(riscv_avoid_multi_push): helper function of riscv_use_multi_push
+ 	(riscv_use_multi_push): true if multi push is used
+ 	(riscv_multi_push_sregs_count): num of sregs in multi-push
+ 	(riscv_multi_push_regs_count): num of regs in multi-push
+ 	(riscv_16bytes_align): align to 16 bytes
+ 	(riscv_stack_align): moved to a better place
+ 	(riscv_save_libcall_count): no functional change
+ 	(riscv_compute_frame_info): add zcmp frame info
+ 	(riscv_for_each_saved_reg): save or restore fprs in specified slot for zcmp
+ 	(riscv_adjust_multi_push_cfi_prologue): adjust cfi for cm.push
+ 	(riscv_gen_multi_push_pop_insn): gen function for multi push and pop
+ 	(get_multi_push_fpr_mask): get mask for the fprs pushed by cm.push
+ 	(riscv_expand_prologue): allocate stack by cm.push
+ 	(riscv_adjust_multi_pop_cfi_epilogue): adjust cfi for cm.pop[ret]
+ 	(riscv_expand_epilogue): allocate stack by cm.pop[ret]
+ 	(zcmp_base_adj): calculate stack adjustment base size
+ 	(zcmp_additional_adj): calculate stack adjustment additional size
+ 	(riscv_zcmp_valid_stack_adj_bytes_p): check if stack adjustment valid
+ 	* config/riscv/riscv.h (RETURN_ADDR_MASK): mask of ra
+ 	(S0_MASK): likewise
+ 	(S1_MASK): likewise
+ 	(S2_MASK): likewise
+ 	(S3_MASK): likewise
+ 	(S4_MASK): likewise
+ 	(S5_MASK): likewise
+ 	(S6_MASK): likewise
+ 	(S7_MASK): likewise
+ 	(S8_MASK): likewise
+ 	(S9_MASK): likewise
+ 	(S10_MASK): likewise
+ 	(S11_MASK): likewise
+ 	(MULTI_PUSH_GPR_MASK): GPR_MASK that cm.push can cover at most
+ 	(ZCMP_MAX_SPIMM): max spimm value
+ 	(ZCMP_SP_INC_STEP): zcmp sp increment step
+ 	(ZCMP_INVALID_S0S10_SREGS_COUNTS): num of s0-s10
+ 	(ZCMP_S0S11_SREGS_COUNTS): num of s0-s11
+ 	(ZCMP_MAX_GRP_SLOTS): max slots of pushing and poping in zcmp
+ 	(CALLEE_SAVED_FREG_NUMBER): get x of fsx(fs0 ~ fs11)
+ 	* config/riscv/riscv.md: include zc.md
+ 	* config/riscv/zc.md: New file. machine description for zcmp
+ 
+ 2023-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/110914
+ 	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcpy): Don't call
+ 	adjust_last_stmt unless len is known constant.
+ 
+ 2023-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/111015
+ 	* gimple-ssa-store-merging.cc
+ 	(imm_store_chain_info::output_merged_store): Use wi::mask and
+ 	wide_int_to_tree instead of unsigned HOST_WIDE_INT shift and
+ 	build_int_cst to build BIT_AND_EXPR mask.
+ 
+ 2023-08-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Add MASK_LEN_ variant.
+ 	(call_may_clobber_ref_p_1): Ditto.
+ 	* tree-ssa-loop-ivopts.cc (get_mem_type_for_internal_fn): Ditto.
+ 	(get_alias_ptr_type_for_ptr_address): Ditto.
+ 
+ 2023-08-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(vector_insn_info::get_avl_or_vl_reg): Fix bug.
+ 
+ 2023-08-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-vls.md (movmisalign<mode>): New pattern.
+ 	* config/riscv/riscv.cc (riscv_support_vector_misalignment): Support
+ 	VLS misalign.
+ 
+ 2023-08-29  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/riscv/zicond.md: New splitters to rewrite single bit
+ 	sign extension as the condition to a czero in the desired form.
+ 
+ 2023-08-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/99860
+ 	* doc/invoke.texi: Add -Wanalyzer-overlapping-buffers.
+ 
+ 2023-08-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/99860
+ 	* Makefile.in (ANALYZER_OBJS): Add analyzer/ranges.o.
+ 
+ 2023-08-29  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_float_const_rtx_index_for_fli):
+ 	zvfh can generate zfa extended instruction fli.h, just like zfh.
+ 
+ 2023-08-29  Edwin Lu  <ewlu@rivosinc.com>
+ 	    Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Generate
+ 	__riscv_unaligned_avoid with value 1 or
+ 	__riscv_unaligned_slow with value 1 or
+ 	__riscv_unaligned_fast with value 1
+ 	* config/riscv/riscv.cc (riscv_option_override): Define
+ 	riscv_user_wants_strict_align. Set
+ 	riscv_user_wants_strict_align to TARGET_STRICT_ALIGN
+ 	* config/riscv/riscv.h: Declare riscv_user_wants_strict_align
+ 
+ 2023-08-29  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/autovec-vls.md: Update types
+ 	* config/riscv/riscv.md: Add vector placeholder type
+ 	* config/riscv/vector.md: Update types
+ 
+ 2023-08-29  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/dfp.md (UNSPEC_DQUAN): New unspec.
+ 	(dfp_dqua_<mode>, dfp_dquai_<mode>): New define_insn.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_dfp_dqua,
+ 	__builtin_dfp_dquai, __builtin_dfp_dquaq, __builtin_dfp_dquaqi):
+ 	New buit-in definitions.
+ 	* config/rs6000/rs6000-overload.def (__builtin_dfp_quantize): New
+ 	overloaded definition.
+ 	* doc/extend.texi: Add documentation for __builtin_dfp_quantize.
+ 
+ 2023-08-29  Pan Li  <pan2.li@intel.com>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_poly_move): New declaration.
+ 	(riscv_legitimize_const_move): Handle ref plus const poly.
+ 
+ 2023-08-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_implied_info): Add implications from unprivileged extensions.
+ 	(riscv_ext_version_table): Add stub support for all unprivileged
+ 	extensions supported by Binutils as well as 'Zce', 'Zcmp', 'Zcmt'.
+ 
+ 2023-08-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_version_table):
+ 	Add stub support for all vendor extensions supported by Binutils.
+ 
+ 2023-08-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_implied_info): Add implications from privileged extensions.
+ 	(riscv_ext_version_table): Add stub support for all privileged
+ 	extensions supported by Binutils.
+ 
+ 2023-08-29  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Adjust
+ 	* config/riscv/riscv-protos.h (RVV_VUNDEF): Clean.
+ 	(get_vlmax_rtx): Exported.
+ 	* config/riscv/riscv-v.cc (emit_nonvlmax_fp_ternary_tu_insn): Deleted.
+ 	(emit_vlmax_masked_gather_mu_insn): Adjust.
+ 	(get_vlmax_rtx): New func.
+ 	(expand_load_store): Adjust.
+ 	(expand_cond_len_unop): Call expand_cond_len_op.
+ 	(expand_cond_len_op): New subroutine.
+ 	(expand_cond_len_binop): Call expand_cond_len_op.
+ 	(expand_cond_len_ternop): Call expand_cond_len_op.
+ 	(expand_lanes_load_store): Adjust.
+ 
+ 2023-08-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/79173
+ 	PR middle-end/111209
+ 	* tree-ssa-math-opts.cc (match_uaddc_usubc): Match also
+ 	just 2 limb uaddc/usubc with 0 carry-in on lower limb and ignored
+ 	carry-out on higher limb.  Don't match it though if it could be
+ 	matched later on 4 argument addition/subtraction.
+ 
+ 2023-08-29  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111147
+ 	* match.pd (`(x | y) & (~x ^ y)`) Use bitwise_inverted_equal_p
+ 	instead of matching bit_not.
+ 
+ 2023-08-29  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins.cc (type_suffixes): Add missing
+ 	initializer.
+ 
+ 2023-08-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vector_insn_info::get_avl_or_vl_reg): New function.
+ 	(pass_vsetvl::compute_local_properties): Fix bug.
+ 	(pass_vsetvl::commit_vsetvls): Ditto.
+ 	* config/riscv/riscv-vsetvl.h: New function.
+ 
+ 2023-08-29  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	PR target/110943
+ 	* config/riscv/predicates.md (vector_const_int_or_double_0_operand):
+ 	New predicate.
+ 	* config/riscv/riscv-vector-builtins.cc (function_expander::function_expander):
+ 	force_reg mem target operand.
+ 	* config/riscv/vector.md (@pred_mov<mode>): Wrapper.
+ 	(*pred_mov<mode>): Remove imm -> reg pattern.
+ 	(*pred_broadcast<mode>_imm): Add imm -> reg pattern.
+ 
+ 2023-08-29  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* common/config/loongarch/loongarch-common.cc:
+ 	Enable '-free' on O2 and above.
+ 	* doc/invoke.texi: Modify the description information
+ 	of the '-free' compilation option and add the LoongArch
+ 	description.
+ 
+ 2023-08-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* doc/extend.texi: Fix the description of __builtin_riscv_pause.
+ 
+ 2023-08-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_version_table):
+ 	Implement the 'Zihintpause' extension, version 2.0.
+ 	(riscv_ext_flag_table) Add 'Zihintpause' handling.
+ 	* config/riscv/riscv-builtins.cc: Remove availability predicate
+ 	"always" and add "hint_pause".
+ 	(riscv_builtins) : Add "pause" extension.
+ 	* config/riscv/riscv-opts.h (MASK_ZIHINTPAUSE, TARGET_ZIHINTPAUSE): New.
+ 	* config/riscv/riscv.md (riscv_pause): Adjust output based on
+ 	TARGET_ZIHINTPAUSE.
+ 
+ 2023-08-28  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`(X & ~Y) | (~X & Y)`): Use bitwise_inverted_equal_p
+ 	instead of specifically checking for ~X.
+ 
+ 2023-08-28  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111146
+ 	* match.pd (`(x | y) & ~x`, `(x & y) | ~x`): Remove
+ 	redundant pattern.
+ 
+ 2023-08-28  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (gimple_simplify_phiopt): Add dump information
+ 	when resimplify returns true.
+ 	(match_simplify_replacement): Print only if accepted the match-and-simplify
+ 	result rather than the full sequence.
+ 
+ 2023-08-28  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::earliest_fusion): Skip
+ 	never probability.
+ 	(pass_vsetvl::compute_probabilities): Fix unitialized probability.
+ 
+ 2023-08-28  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::earliest_fusion): Fix bug.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vmullbq_poly)
+ 	(vmulltq_poly): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmullbq_poly)
+ 	(vmulltq_poly): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmullbq_poly)
+ 	(vmulltq_poly): New.
+ 	* config/arm/arm_mve.h (vmulltq_poly): Remove.
+ 	(vmullbq_poly): Remove.
+ 	(vmullbq_poly_m): Remove.
+ 	(vmulltq_poly_m): Remove.
+ 	(vmullbq_poly_x): Remove.
+ 	(vmulltq_poly_x): Remove.
+ 	(vmulltq_poly_p8): Remove.
+ 	(vmullbq_poly_p8): Remove.
+ 	(vmulltq_poly_p16): Remove.
+ 	(vmullbq_poly_p16): Remove.
+ 	(vmullbq_poly_m_p8): Remove.
+ 	(vmullbq_poly_m_p16): Remove.
+ 	(vmulltq_poly_m_p8): Remove.
+ 	(vmulltq_poly_m_p16): Remove.
+ 	(vmullbq_poly_x_p8): Remove.
+ 	(vmullbq_poly_x_p16): Remove.
+ 	(vmulltq_poly_x_p8): Remove.
+ 	(vmulltq_poly_x_p16): Remove.
+ 	(__arm_vmulltq_poly_p8): Remove.
+ 	(__arm_vmullbq_poly_p8): Remove.
+ 	(__arm_vmulltq_poly_p16): Remove.
+ 	(__arm_vmullbq_poly_p16): Remove.
+ 	(__arm_vmullbq_poly_m_p8): Remove.
+ 	(__arm_vmullbq_poly_m_p16): Remove.
+ 	(__arm_vmulltq_poly_m_p8): Remove.
+ 	(__arm_vmulltq_poly_m_p16): Remove.
+ 	(__arm_vmullbq_poly_x_p8): Remove.
+ 	(__arm_vmullbq_poly_x_p16): Remove.
+ 	(__arm_vmulltq_poly_x_p8): Remove.
+ 	(__arm_vmulltq_poly_x_p16): Remove.
+ 	(__arm_vmulltq_poly): Remove.
+ 	(__arm_vmullbq_poly): Remove.
+ 	(__arm_vmullbq_poly_m): Remove.
+ 	(__arm_vmulltq_poly_m): Remove.
+ 	(__arm_vmullbq_poly_x): Remove.
+ 	(__arm_vmulltq_poly_x): Remove.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_mve_function_exact_insn_vmull_poly): New.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_widen_poly): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_widen_poly): New.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (parse_element_type): Add
+ 	support for 'U' and 'p' format specifiers.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins.cc (type_suffixes): Handle poly_p
+ 	field..
+ 	(TYPES_poly_8_16): New.
+ 	(poly_8_16): New.
+ 	* config/arm/arm-mve-builtins.def (p8): New type suffix.
+ 	(p16): Likewise.
+ 	* config/arm/arm-mve-builtins.h (enum type_class_index): Add
+ 	TYPE_poly.
+ 	(struct type_suffix_info): Add poly_p field.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vmullbq_int, vmulltq_int):
+ 	New.
+ 	* config/arm/arm-mve-builtins-base.def (vmullbq_int, vmulltq_int):
+ 	New.
+ 	* config/arm/arm-mve-builtins-base.h (vmullbq_int, vmulltq_int):
+ 	New.
+ 	* config/arm/arm_mve.h (vmulltq_int): Remove.
+ 	(vmullbq_int): Remove.
+ 	(vmullbq_int_m): Remove.
+ 	(vmulltq_int_m): Remove.
+ 	(vmullbq_int_x): Remove.
+ 	(vmulltq_int_x): Remove.
+ 	(vmulltq_int_u8): Remove.
+ 	(vmullbq_int_u8): Remove.
+ 	(vmulltq_int_s8): Remove.
+ 	(vmullbq_int_s8): Remove.
+ 	(vmulltq_int_u16): Remove.
+ 	(vmullbq_int_u16): Remove.
+ 	(vmulltq_int_s16): Remove.
+ 	(vmullbq_int_s16): Remove.
+ 	(vmulltq_int_u32): Remove.
+ 	(vmullbq_int_u32): Remove.
+ 	(vmulltq_int_s32): Remove.
+ 	(vmullbq_int_s32): Remove.
+ 	(vmullbq_int_m_s8): Remove.
+ 	(vmullbq_int_m_s32): Remove.
+ 	(vmullbq_int_m_s16): Remove.
+ 	(vmullbq_int_m_u8): Remove.
+ 	(vmullbq_int_m_u32): Remove.
+ 	(vmullbq_int_m_u16): Remove.
+ 	(vmulltq_int_m_s8): Remove.
+ 	(vmulltq_int_m_s32): Remove.
+ 	(vmulltq_int_m_s16): Remove.
+ 	(vmulltq_int_m_u8): Remove.
+ 	(vmulltq_int_m_u32): Remove.
+ 	(vmulltq_int_m_u16): Remove.
+ 	(vmullbq_int_x_s8): Remove.
+ 	(vmullbq_int_x_s16): Remove.
+ 	(vmullbq_int_x_s32): Remove.
+ 	(vmullbq_int_x_u8): Remove.
+ 	(vmullbq_int_x_u16): Remove.
+ 	(vmullbq_int_x_u32): Remove.
+ 	(vmulltq_int_x_s8): Remove.
+ 	(vmulltq_int_x_s16): Remove.
+ 	(vmulltq_int_x_s32): Remove.
+ 	(vmulltq_int_x_u8): Remove.
+ 	(vmulltq_int_x_u16): Remove.
+ 	(vmulltq_int_x_u32): Remove.
+ 	(__arm_vmulltq_int_u8): Remove.
+ 	(__arm_vmullbq_int_u8): Remove.
+ 	(__arm_vmulltq_int_s8): Remove.
+ 	(__arm_vmullbq_int_s8): Remove.
+ 	(__arm_vmulltq_int_u16): Remove.
+ 	(__arm_vmullbq_int_u16): Remove.
+ 	(__arm_vmulltq_int_s16): Remove.
+ 	(__arm_vmullbq_int_s16): Remove.
+ 	(__arm_vmulltq_int_u32): Remove.
+ 	(__arm_vmullbq_int_u32): Remove.
+ 	(__arm_vmulltq_int_s32): Remove.
+ 	(__arm_vmullbq_int_s32): Remove.
+ 	(__arm_vmullbq_int_m_s8): Remove.
+ 	(__arm_vmullbq_int_m_s32): Remove.
+ 	(__arm_vmullbq_int_m_s16): Remove.
+ 	(__arm_vmullbq_int_m_u8): Remove.
+ 	(__arm_vmullbq_int_m_u32): Remove.
+ 	(__arm_vmullbq_int_m_u16): Remove.
+ 	(__arm_vmulltq_int_m_s8): Remove.
+ 	(__arm_vmulltq_int_m_s32): Remove.
+ 	(__arm_vmulltq_int_m_s16): Remove.
+ 	(__arm_vmulltq_int_m_u8): Remove.
+ 	(__arm_vmulltq_int_m_u32): Remove.
+ 	(__arm_vmulltq_int_m_u16): Remove.
+ 	(__arm_vmullbq_int_x_s8): Remove.
+ 	(__arm_vmullbq_int_x_s16): Remove.
+ 	(__arm_vmullbq_int_x_s32): Remove.
+ 	(__arm_vmullbq_int_x_u8): Remove.
+ 	(__arm_vmullbq_int_x_u16): Remove.
+ 	(__arm_vmullbq_int_x_u32): Remove.
+ 	(__arm_vmulltq_int_x_s8): Remove.
+ 	(__arm_vmulltq_int_x_s16): Remove.
+ 	(__arm_vmulltq_int_x_s32): Remove.
+ 	(__arm_vmulltq_int_x_u8): Remove.
+ 	(__arm_vmulltq_int_x_u16): Remove.
+ 	(__arm_vmulltq_int_x_u32): Remove.
+ 	(__arm_vmulltq_int): Remove.
+ 	(__arm_vmullbq_int): Remove.
+ 	(__arm_vmullbq_int_m): Remove.
+ 	(__arm_vmulltq_int_m): Remove.
+ 	(__arm_vmullbq_int_x): Remove.
+ 	(__arm_vmulltq_int_x): Remove.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_widen): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_widen): New.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_mve_function_exact_insn_vmull): New.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add vmullb, vmullt.
+ 	(isu): Add VMULLBQ_INT_S, VMULLBQ_INT_U, VMULLTQ_INT_S,
+ 	VMULLTQ_INT_U.
+ 	(supf): Add VMULLBQ_POLY_P, VMULLTQ_POLY_P, VMULLBQ_POLY_M_P,
+ 	VMULLTQ_POLY_M_P.
+ 	(VMULLBQ_INT, VMULLTQ_INT, VMULLBQ_INT_M, VMULLTQ_INT_M): Delete.
+ 	(VMULLxQ_INT, VMULLxQ_POLY, VMULLxQ_INT_M, VMULLxQ_POLY_M): New.
+ 	* config/arm/mve.md (mve_vmullbq_int_<supf><mode>)
+ 	(mve_vmulltq_int_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_int_<supf><mode>) ... this.
+ 	(mve_vmulltq_poly_p<mode>, mve_vmullbq_poly_p<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_poly_<supf><mode>): ... this.
+ 	(mve_vmullbq_int_m_<supf><mode>, mve_vmulltq_int_m_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_int_m_<supf><mode>): ... this.
+ 	(mve_vmullbq_poly_m_p<mode>, mve_vmulltq_poly_m_p<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_poly_m_<supf><mode>): ... this.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (parse_element_type):
+ 	Remove dead check.
+ 
+ 2023-08-28  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): Fix loop bound.
+ 	(binary_acca_int64): Likewise.
+ 
+ 2023-08-28  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (fold_range): Handle relations.
+ 
+ 2023-08-28  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
+ 	Optimize the function implementation.
+ 
+ 2023-08-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/111119
+ 	* config/i386/sse.md (V48_AVX2): Rename to ..
+ 	(V48_128_256): .. this.
+ 	(ssefltmodesuffix): Extend to V4SF/V8SF/V2DF/V4DF.
+ 	(<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Change
+ 	V48_AVX2 to V48_128_256, also generate vmaskmov{ps,pd} for
+ 	integral modes when TARGET_AVX2 is not available.
+ 	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
+ 	(maskload<mode><sseintvecmodelower>): Change V48_AVX2 to
+ 	V48_128_256.
+ 	(maskstore<mode><sseintvecmodelower>): Ditto.
+ 
+ 2023-08-28  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vsetvl_vtype_change_only_p):
+ 	New function.
+ 	(after_or_same_p): Ditto.
+ 	(find_reg_killed_by): Delete.
+ 	(has_vsetvl_killed_avl_p): Ditto.
+ 	(anticipatable_occurrence_p): Refactor.
+ 	(any_set_in_bb_p): Delete.
+ 	(count_regno_occurrences): Ditto.
+ 	(backward_propagate_worthwhile_p): Ditto.
+ 	(demands_can_be_fused_p): Ditto.
+ 	(earliest_pred_can_be_fused_p): New function.
+ 	(vsetvl_dominated_by_p): Ditto.
+ 	(vector_insn_info::parse_insn): Refactor.
+ 	(vector_insn_info::merge): Refactor.
+ 	(vector_insn_info::dump): Refactor.
+ 	(vector_infos_manager::vector_infos_manager): Refactor.
+ 	(vector_infos_manager::all_empty_predecessor_p): Delete.
+ 	(vector_infos_manager::all_same_avl_p): Ditto.
+ 	(vector_infos_manager::create_bitmap_vectors): Refactor.
+ 	(vector_infos_manager::free_bitmap_vectors): Refactor.
+ 	(vector_infos_manager::dump): Refactor.
+ 	(pass_vsetvl::update_block_info): New function.
+ 	(enum fusion_type): Ditto.
+ 	(pass_vsetvl::get_backward_fusion_type): Delete.
+ 	(pass_vsetvl::hard_empty_block_p): Ditto.
+ 	(pass_vsetvl::backward_demand_fusion): Ditto.
+ 	(pass_vsetvl::forward_demand_fusion): Ditto.
+ 	(pass_vsetvl::demand_fusion): Ditto.
+ 	(pass_vsetvl::cleanup_illegal_dirty_blocks): Ditto.
+ 	(pass_vsetvl::compute_local_properties): Ditto.
+ 	(pass_vsetvl::earliest_fusion): New function.
+ 	(pass_vsetvl::vsetvl_fusion): Ditto.
+ 	(pass_vsetvl::commit_vsetvls): Refactor.
+ 	(get_first_vsetvl_before_rvv_insns): Ditto.
+ 	(pass_vsetvl::global_eliminate_vsetvl_insn): Ditto.
+ 	(pass_vsetvl::cleanup_earliest_vsetvls): New function.
+ 	(pass_vsetvl::df_post_optimization): Refactor.
+ 	(pass_vsetvl::lazy_vsetvl): Ditto.
+ 	* config/riscv/riscv-vsetvl.h: Ditto.
+ 
+ 2023-08-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (len_fold_extract_last_<mode>): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	(expand_fold_extract_last): New function.
+ 	* config/riscv/riscv-v.cc (emit_nonvlmax_slide_insn): Ditto.
+ 	(emit_cpop_insn): Ditto.
+ 	(emit_nonvlmax_compress_insn): Ditto.
+ 	(expand_fold_extract_last): Ditto.
+ 	* config/riscv/vector.md: Fix vcpop.m ratio demand.
+ 
+ 2023-08-25  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/sync-rvwmo.md: updated types to "multi" or
+ 		"atomic" based on number of assembly lines generated
+ 	* config/riscv/sync-ztso.md: likewise
+ 	* config/riscv/sync.md: likewise
+ 
+ 2023-08-25  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add zfa extension version, which depends on
+ 	the F extension.
+ 	* config/riscv/constraints.md (zfli): Constrain the floating point number that the
+ 	instructions FLI.H/S/D can load.
+ 	* config/riscv/iterators.md (ceil): New.
+ 	* config/riscv/riscv-opts.h (MASK_ZFA): New.
+ 	(TARGET_ZFA): New.
+ 	* config/riscv/riscv-protos.h (riscv_float_const_rtx_index_for_fli): New.
+ 	* config/riscv/riscv.cc (riscv_float_const_rtx_index_for_fli): New.
+ 	(riscv_cannot_force_const_mem): If instruction FLI.H/S/D can be used, memory is
+ 	not applicable.
+ 	(riscv_const_insns): Likewise.
+ 	(riscv_legitimize_const_move): Likewise.
+ 	(riscv_split_64bit_move_p): If instruction FLI.H/S/D can be used, no split is
+ 	required.
+ 	(riscv_split_doubleword_move): Likewise.
+ 	(riscv_output_move): Output the mov instructions in zfa extension.
+ 	(riscv_print_operand): Output the floating-point value of the FLI.H/S/D immediate
+ 	in assembly.
+ 	(riscv_secondary_memory_needed): Likewise.
+ 	* config/riscv/riscv.md (fminm<mode>3): New.
+ 	(fmaxm<mode>3): New.
+ 	(movsidf2_low_rv32): New.
+ 	(movsidf2_high_rv32): New.
+ 	(movdfsisi3_rv32): New.
+ 	(f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_zfa): New.
+ 	* config/riscv/riscv.opt: New.
+ 
+ 2023-08-25  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* omp-api.h: New.
+ 	* omp-general.cc (omp_runtime_api_procname): New.
+ 	(omp_runtime_api_call): Moved here from omp-low.cc, and make
+ 	non-static.
+ 	* omp-general.h: Include omp-api.h.
+ 	* omp-low.cc (omp_runtime_api_call): Delete this copy.
+ 
+ 2023-08-25  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/generic.texi (OpenMP): Document OMP_STRUCTURED_BLOCK.
+ 	* doc/gimple.texi (GIMPLE instruction set): Add
+ 	GIMPLE_OMP_STRUCTURED_BLOCK.
+ 	(GIMPLE_OMP_STRUCTURED_BLOCK): New subsection.
+ 	* gimple-low.cc (lower_stmt): Error on GIMPLE_OMP_STRUCTURED_BLOCK.
+ 	* gimple-pretty-print.cc (dump_gimple_omp_block): Handle
+ 	GIMPLE_OMP_STRUCTURED_BLOCK.
+ 	(pp_gimple_stmt_1): Likewise.
+ 	* gimple-walk.cc (walk_gimple_stmt): Likewise.
+ 	* gimple.cc (gimple_build_omp_structured_block): New.
+ 	* gimple.def (GIMPLE_OMP_STRUCTURED_BLOCK): New.
+ 	* gimple.h (gimple_build_omp_structured_block): Declare.
+ 	(gimple_has_substatements): Handle GIMPLE_OMP_STRUCTURED_BLOCK.
+ 	(CASE_GIMPLE_OMP): Likewise.
+ 	* gimplify.cc (is_gimple_stmt): Handle OMP_STRUCTURED_BLOCK.
+ 	(gimplify_expr): Likewise.
+ 	* omp-expand.cc (GIMPLE_OMP_STRUCTURED_BLOCK): Error on
+ 	GIMPLE_OMP_STRUCTURED_BLOCK.
+ 	* omp-low.cc (scan_omp_1_stmt): Handle GIMPLE_OMP_STRUCTURED_BLOCK.
+ 	(lower_omp_1): Likewise.
+ 	(diagnose_sb_1): Likewise.
+ 	(diagnose_sb_2): Likewise.
+ 	* tree-inline.cc (remap_gimple_stmt): Handle
+ 	GIMPLE_OMP_STRUCTURED_BLOCK.
+ 	(estimate_num_insns): Likewise.
+ 	* tree-nested.cc (convert_nonlocal_reference_stmt): Likewise.
+ 	(convert_local_reference_stmt): Likewise.
+ 	(convert_gimple_call): Likewise.
+ 	* tree-pretty-print.cc (dump_generic_node): Handle
+ 	OMP_STRUCTURED_BLOCK.
+ 	* tree.def (OMP_STRUCTURED_BLOCK): New.
+ 	* tree.h (OMP_STRUCTURED_BLOCK_BODY): New.
+ 
+ 2023-08-25  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Adjust const_int
+ 	cost. Add some comments about different constants handling.
+ 
+ 2023-08-25  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`a ? one_zero : one_zero`): Move
+ 	below detection of minmax.
+ 
+ 2023-08-25  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`a | C -> C`): New pattern.
+ 
+ 2023-08-25  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* caller-save.cc (new_saved_hard_reg):
+ 	Rename TRUE/FALSE to true/false.
+ 	(setup_save_areas): Ditto.
+ 	* gcc.cc (set_collect_gcc_options): Ditto.
+ 	(driver::build_multilib_strings): Ditto.
+ 	(print_multilib_info): Ditto.
+ 	* genautomata.cc (gen_cpu_unit): Ditto.
+ 	(gen_query_cpu_unit): Ditto.
+ 	(gen_bypass): Ditto.
+ 	(gen_excl_set): Ditto.
+ 	(gen_presence_absence_set): Ditto.
+ 	(gen_presence_set): Ditto.
+ 	(gen_final_presence_set): Ditto.
+ 	(gen_absence_set): Ditto.
+ 	(gen_final_absence_set): Ditto.
+ 	(gen_automaton): Ditto.
+ 	(gen_regexp_repeat): Ditto.
+ 	(gen_regexp_allof): Ditto.
+ 	(gen_regexp_oneof): Ditto.
+ 	(gen_regexp_sequence): Ditto.
+ 	(process_decls): Ditto.
+ 	(reserv_sets_are_intersected): Ditto.
+ 	(initiate_excl_sets): Ditto.
+ 	(form_reserv_sets_list): Ditto.
+ 	(check_presence_pattern_sets): Ditto.
+ 	(check_absence_pattern_sets): Ditto.
+ 	(check_regexp_units_distribution): Ditto.
+ 	(check_unit_distributions_to_automata): Ditto.
+ 	(create_ainsns): Ditto.
+ 	(output_insn_code_cases): Ditto.
+ 	(output_internal_dead_lock_func): Ditto.
+ 	(form_important_insn_automata_lists): Ditto.
+ 	* gengtype-state.cc (read_state_files_list): Ditto.
+ 	* gengtype.cc (main): Ditto.
+ 	* gimple-array-bounds.cc (array_bounds_checker::check_array_bounds):
+ 	Ditto.
+ 	* gimple.cc (gimple_build_call_from_tree): Ditto.
+ 	(preprocess_case_label_vec_for_gimple): Ditto.
+ 	* gimplify.cc (gimplify_call_expr): Ditto.
+ 	* ordered-hash-map-tests.cc (test_map_of_int_to_strings): Ditto.
+ 
+ 2023-08-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111137
+ 	* tree-vect-data-refs.cc (vect_slp_analyze_load_dependences):
+ 	Properly handle grouped stores from other SLP instances.
+ 
+ 2023-08-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_slp_analyze_store_dependences):
+ 	Split out from vect_slp_analyze_node_dependences, remove
+ 	dead code.
+ 	(vect_slp_analyze_load_dependences): Split out from
+ 	vect_slp_analyze_node_dependences, adjust comments.  Process
+ 	queued stores before any disambiguation.
+ 	(vect_slp_analyze_node_dependences): Remove.
+ 	(vect_slp_analyze_instance_dependence): Adjust.
+ 
+ 2023-08-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-float.cc (frelop_early_resolve): Rewrite for better NAN
+ 	handling.
+ 	(operator_not_equal::fold_range): Adjust for relations.
+ 	(operator_lt::fold_range): Same.
+ 	(operator_gt::fold_range): Same.
+ 	(foperator_unordered_equal::fold_range): Same.
+ 	(foperator_unordered_lt::fold_range): Same.
+ 	(foperator_unordered_le::fold_range): Same.
+ 	(foperator_unordered_gt::fold_range): Same.
+ 	(foperator_unordered_ge::fold_range): Same.
+ 
+ 2023-08-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111136
+ 	* tree-vect-loop.cc (vect_dissolve_slp_only_groups): For
+ 	stores force STMT_VINFO_STRIDED_P and also duplicate that
+ 	to all elements.
+ 
+ 2023-08-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_local_properties):
+ 	Add early continue.
+ 
+ 2023-08-25  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (vec_set<mode>): Removed.
+ 	(V_128H): Merge into ..
+ 	(V_128): .. this.
+ 	(V_256H): Merge into ..
+ 	(V_256): .. this.
+ 	(V_512): Add V32HF, V32BF.
+ 	(*ssse3_palignr<mode>_perm): Adjust mode iterator from V_128H
+ 	to V_128.
+ 	(vcond<mode><sseintvecmodelower>): Removed
+ 	(vcondu<mode><sseintvecmodelower>): Removed.
+ 	(avx_vbroadcastf128_<mode>): Refator from V_256H to V_256.
+ 
+ 2023-08-25  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/111127
+ 	* config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode>_maskz):
+ 	Adjust paramter order.
+ 
+ 2023-08-24  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/94866
+ 	* config/i386/sse.md (*sse2_movq128_<mode>_1): New insn pattern.
+ 
+ 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/105899
+ 	* doc/invoke.texi (Static Analyzer Options): Add "strcat" to the
+ 	list of functions known to the analyzer.
+ 
+ 2023-08-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111123
+ 	* tree-ssa-ccp.cc (pass_fold_builtins::execute): Do not
+ 	remove indirect clobbers here ...
+ 	* tree-outof-ssa.cc (rewrite_out_of_ssa): ... but here.
+ 	(remove_indirect_clobbers): New function.
+ 
+ 2023-08-24  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfg.h (struct control_flow_graph): New field full_profile.
+ 	* auto-profile.cc (afdo_annotate_cfg): Set full_profile to true.
+ 	* cfg.cc (init_flow): Set full_profile to false.
+ 	* graphite.cc (graphite_transform_loops): Set full_profile to false.
+ 	* lto-streamer-in.cc (input_cfg): Initialize full_profile flag.
+ 	* predict.cc (pass_profile::execute): Set full_profile to true.
+ 	* symtab-thunks.cc (expand_thunk): Set full_profile to true.
+ 	* tree-cfg.cc (gimple_verify_flow_info): Verify that profile is full
+ 	if full_profile is set.
+ 	* tree-inline.cc (initialize_cfun): Initialize full_profile.
+ 	(expand_call_inline): Combine full_profile.
+ 
+ 2023-08-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Rename
+ 	load_p to ldst_p, fix mistakes and rely on
+ 	STMT_VINFO_DATA_REF.
+ 
+ 2023-08-24  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* gimple-harden-conditionals.cc (insert_check_and_trap): Set count
+ 	of newly build trap bb.
+ 
+ 2023-08-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_preferred_else_value): Remove it since
+ 	it forbid COND_LEN_FMS/COND_LEN_FNMS STMT fold.
+ 	(TARGET_PREFERRED_ELSE_VALUE): Ditto.
+ 
+ 2023-08-24  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add -fsched-pressure.
+ 	* config/riscv/riscv.cc (riscv_option_override): Set sched
+ 	pressure algorithm.
+ 
+ 2023-08-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_print_operand): Allow vk operand.
+ 
+ 2023-08-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111125
+ 	* tree-vect-slp.cc (vect_slp_function): Split at novector
+ 	loop entry, do not push blocks in novector loops.
+ 
+ 2023-08-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/extend.texi: Document the C [[__extension__ ...]] construct.
+ 
+ 2023-08-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* genmatch.cc (decision_tree::gen): Support
+ 	COND_LEN_FNMA/COND_LEN_FMS/COND_LEN_FNMS gimple fold.
+ 	* gimple-match-exports.cc (gimple_simplify): Ditto.
+ 	(gimple_resimplify6): New function.
+ 	(gimple_resimplify7): New function.
+ 	(gimple_match_op::resimplify): Support
+ 	COND_LEN_FNMA/COND_LEN_FMS/COND_LEN_FNMS gimple fold.
+ 	(convert_conditional_op): Ditto.
+ 	(build_call_internal): Ditto.
+ 	(try_conditional_simplification): Ditto.
+ 	(gimple_extract): Ditto.
+ 	* gimple-match.h (gimple_match_cond::gimple_match_cond): Ditto.
+ 	* internal-fn.cc (CASE): Ditto.
+ 
+ 2023-08-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111115
+ 	* tree-vectorizer.h (vect_slp_child_index_for_operand): New.
+ 	* tree-vect-data-refs.cc (can_group_stmts_p): Also group
+ 	.MASK_STORE.
+ 	* tree-vect-slp.cc (arg3_arg2_map): New.
+ 	(vect_get_operand_map): Handle IFN_MASK_STORE.
+ 	(vect_slp_child_index_for_operand): New function.
+ 	(vect_build_slp_tree_1): Handle statements with no LHS,
+ 	masked store ifns.
+ 	(vect_remove_slp_scalar_calls): Likewise.
+ 	* tree-vect-stmts.cc (vect_check_store_rhs): Lookup the
+ 	SLP child corresponding to the ifn value index.
+ 	(vectorizable_store): Likewise for the mask index.  Support
+ 	masked stores.
+ 	(vectorizable_load): Lookup the SLP child corresponding to the
+ 	ifn mask index.
+ 
+ 2023-08-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111125
+ 	* tree-vect-slp.cc (vectorizable_bb_reduc_epilogue): Account
+ 	for the remain_defs processing.
+ 
+ 2023-08-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc: Include ssa.h.
+ 	(aarch64_multiply_add_p): Require the second operand of an
+ 	Advanced SIMD subtraction to be a multiplication.  Assume that
+ 	such an operation won't be fused if the second operand is used
+ 	multiple times and if the first operand is also a multiplication.
+ 
+ 2023-08-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Apply
+ 	LEN_FOLD_EXTRACT_LAST.
+ 	* tree-vect-stmts.cc (vectorizable_condition): Ditto.
+ 
+ 2023-08-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111128
+ 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern):
+ 	Emit external shift operand inline if we promoted it with
+ 	another pattern stmt.
+ 
+ 2023-08-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Fix typo.
+ 
+ 2023-08-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class binop_frm): Removed.
+ 	(class reverse_binop_frm): Ditto.
+ 	(class widen_binop_frm): Ditto.
+ 	(class vfmacc_frm): Ditto.
+ 	(class vfnmacc_frm): Ditto.
+ 	(class vfmsac_frm): Ditto.
+ 	(class vfnmsac_frm): Ditto.
+ 	(class vfmadd_frm): Ditto.
+ 	(class vfnmadd_frm): Ditto.
+ 	(class vfmsub_frm): Ditto.
+ 	(class vfnmsub_frm): Ditto.
+ 	(class vfwmacc_frm): Ditto.
+ 	(class vfwnmacc_frm): Ditto.
+ 	(class vfwmsac_frm): Ditto.
+ 	(class vfwnmsac_frm): Ditto.
+ 	(class unop_frm): Ditto.
+ 	(class vfrec7_frm): Ditto.
+ 	(class binop): Add frm_op_type template arg.
+ 	(class unop): Ditto.
+ 	(class widen_binop): Ditto.
+ 	(class widen_binop_fp): Ditto.
+ 	(class reverse_binop): Ditto.
+ 	(class vfmacc): Ditto.
+ 	(class vfnmsac): Ditto.
+ 	(class vfmadd): Ditto.
+ 	(class vfnmsub): Ditto.
+ 	(class vfnmacc): Ditto.
+ 	(class vfmsac): Ditto.
+ 	(class vfnmadd): Ditto.
+ 	(class vfmsub): Ditto.
+ 	(class vfwmacc): Ditto.
+ 	(class vfwnmacc): Ditto.
+ 	(class vfwmsac): Ditto.
+ 	(class vfwnmsac): Ditto.
+ 	(class float_misc): Ditto.
+ 
+ 2023-08-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111109
+ 	* match.pd (ior(cond,cond), ior(vec_cond,vec_cond)):
+ 	Add check to make sure cmp and icmp are inverse.
+ 
+ 2023-08-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/95929
+ 	* match.pd (convert?(-a)): New pattern
+ 	for 1bit integer types.
+ 
+ 2023-08-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	Revert:
+ 	2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Add avx10_set and version and detect avx10.1.
+ 	(cpu_indicator_init): Handle avx10.1-512.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AVX10_512BIT_SET): New.
+ 	(OPTION_MASK_ISA2_AVX10_1_SET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX10_512BIT_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX10_1_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX2_UNSET): Modify for AVX10_1.
+ 	(ix86_handle_option): Handle -mavx10.1, -mavx10.1-256 and
+ 	-mavx10.1-512.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AVX10_512BIT, FEATURE_AVX10_1 and
+ 	FEATURE_AVX10_512BIT.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	AVX10_512BIT, AVX10_1 and AVX10_1_512.
+ 	* config/i386/constraints.md (Yk): Add AVX10_1.
+ 	(Yv): Ditto.
+ 	(k): Ditto.
+ 	* config/i386/cpuid.h (bit_AVX10): New.
+ 	(bit_AVX10_256): Ditto.
+ 	(bit_AVX10_512): Ditto.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal):
+ 	Define AVX10_512BIT and AVX10_1.
+ 	* config/i386/i386-isa.def
+ 	(AVX10_512BIT): Add DEF_PTA(AVX10_512BIT).
+ 	(AVX10_1): Add DEF_PTA(AVX10_1).
+ 	* config/i386/i386-options.cc (isa2_opts): Add -mavx10.1.
+ 	(ix86_valid_target_attribute_inner_p): Handle avx10-512bit, avx10.1
+ 	and avx10.1-512.
+ 	(ix86_option_override_internal): Enable AVX512{F,VL,BW,DQ,CD,BF16,
+ 	FP16,VBMI,VBMI2,VNNI,IFMA,BITALG,VPOPCNTDQ} features for avx10.1-512.
+ 	(ix86_valid_target_attribute_inner_p): Handle AVX10_1.
+ 	* config/i386/i386.cc (ix86_get_ssemov): Add AVX10_1.
+ 	(ix86_conditional_register_usage): Ditto.
+ 	(ix86_hard_regno_mode_ok): Ditto.
+ 	(ix86_rtx_costs): Ditto.
+ 	* config/i386/i386.h (VALID_MASK_AVX10_MODE): New macro.
+ 	* config/i386/i386.opt: Add option -mavx10.1, -mavx10.1-256 and
+ 	-mavx10.1-512.
+ 	* doc/extend.texi: Document avx10.1, avx10.1-256 and avx10.1-512.
+ 	* doc/invoke.texi: Document -mavx10.1, -mavx10.1-256 and -mavx10.1-512.
+ 	* doc/sourcebuild.texi: Document target avx10.1, avx10.1-256
+ 	and avx10.1-512.
+ 
+ 2023-08-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	Revert:
+ 	2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(ix86_check_avx10): New function to check isa_flags and
+ 	isa_flags_explicit to emit warning when AVX10 is enabled
+ 	by "-m" option.
+ 	(ix86_check_avx512):  New function to check isa_flags and
+ 	isa_flags_explicit to emit warning when AVX512 is enabled
+ 	by "-m" option.
+ 	(ix86_handle_option): Do not change the flags when warning
+ 	is emitted.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Do not append -mno-avx10.1 for -march=native.
+ 
+ 2023-08-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	Revert:
+ 	2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(ix86_check_avx10_vector_width): New function to check isa_flags
+ 	to emit a warning when there is a conflict in AVX10 options for
+ 	vector width.
+ 	(ix86_handle_option): Add check for avx10.1-256 and avx10.1-512.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Do not append -mno-avx10-max-512bit for -march=native.
+ 
+ 2023-08-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	Revert:
+ 	2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512vldqintrin.h: Remove target attribute.
+ 	* config/i386/i386-builtin.def (BDESC):
+ 	Add OPTION_MASK_ISA2_AVX10_1.
+ 	* config/i386/i386-builtins.cc (def_builtin): Handle AVX10_1.
+ 	* config/i386/i386-expand.cc
+ 	(ix86_check_builtin_isa_match): Ditto.
+ 	(ix86_expand_sse2_mulvxdi3): Add TARGET_AVX10_1.
+ 	* config/i386/i386.md: Add new isa attribute avx10_1_or_avx512dq
+ 	and avx10_1_or_avx512vl.
+ 	* config/i386/sse.md: (VF2_AVX512VLDQ_AVX10_1): New.
+ 	(VF1_128_256VLDQ_AVX10_1): Ditto.
+ 	(VI8_AVX512VLDQ_AVX10_1): Ditto.
+ 	(<sse>_andnot<mode>3<mask_name>):
+ 	Add TARGET_AVX10_1 and change isa attr from avx512dq to
+ 	avx10_1_or_avx512dq.
+ 	(*andnot<mode>3): Add TARGET_AVX10_1 and change isa attr from
+ 	avx512vl to avx10_1_or_avx512vl.
+ 	(fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
+ 	Change iterator to VF2_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
+ 	Ditto.
+ 	(ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
+ 	Ditto.
+ 	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
+ 	Change iterator to VF1_128_256VLDQ_AVX10_1. Remove target check.
+ 	(avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>):
+ 	Add TARGET_AVX10_1.
+ 	(fix<fixunssuffix>_truncv2sfv2di2): Ditto.
+ 	(cond_mul<mode>): Change iterator to VI8_AVX10_1_AVX512DQVL.
+ 	Remove target check.
+ 	(avx512dq_mul<mode>3<mask_name>): Ditto.
+ 	(*avx512dq_mul<mode>3<mask_name>): Ditto.
+ 	(VI4F_BRCST32x2): Add TARGET_AVX512DQ and TARGET_AVX10_1.
+ 	(<mask_codefor>avx512dq_broadcast<mode><mask_name>):
+ 	Remove target check.
+ 	(VI8F_BRCST64x2): Add TARGET_AVX512DQ and TARGET_AVX10_1.
+ 	(<mask_codefor>avx512dq_broadcast<mode><mask_name>_1):
+ 	Remove target check.
+ 	* config/i386/subst.md (mask_mode512bit_condition): Add TARGET_AVX10_1.
+ 	(mask_avx512vl_condition): Ditto.
+ 	(mask): Ditto.
+ 
+ 2023-08-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	Revert:
+ 	2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512vldqintrin.h: Remove target attribute.
+ 	* config/i386/i386-builtin.def (BDESC):
+ 	Add OPTION_MASK_ISA2_AVX10_1.
+ 	* config/i386/i386.cc (standard_sse_constant_opcode): Add TARGET_AVX10_1.
+ 	* config/i386/sse.md: (VI48_AVX512VL_AVX10_1): New.
+ 	(VI48_AVX512VLDQ_AVX10_1): Ditto.
+ 	(VF2_AVX512VL): Remove.
+ 	(VI8_256_512VLDQ_AVX10_1): Rename from VI8_256_512.
+ 	Add TARGET_AVX10_1.
+ 	(*<code><mode>3<mask_name>): Change isa attribute to
+ 	avx10_1_or_avx512dq. Add TARGET_AVX10_1.
+ 	(<code><mode>3): Add TARGET_AVX10_1. Change isa attr
+ 	to avx10_1_or_avx512vl.
+ 	(<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>):
+ 	Change iterator to VI8_256_512VLDQ_AVX10_1. Remove target check.
+ 	(<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>):
+ 	Add TARGET_AVX10_1.
+ 	(<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>):
+ 	Change iterator to VI8_256_512VLDQ_AVX10_1. Remove target check.
+ 	(<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>):
+ 	Add TARGET_AVX10_1.
+ 	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
+ 	Change iterator to VF2_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
+ 	Change iterator to VF1_128_256VLDQ_AVX10_1. Remove target check.
+ 	(float<floatunssuffix>v4div4sf2<mask_name>):
+ 	Add TARGET_AVX10_1.
+ 	(avx512dq_float<floatunssuffix>v2div2sf2): Ditto.
+ 	(*avx512dq_float<floatunssuffix>v2div2sf2): Ditto.
+ 	(float<floatunssuffix>v2div2sf2): Ditto.
+ 	(float<floatunssuffix>v2div2sf2_mask): Ditto.
+ 	(*float<floatunssuffix>v2div2sf2_mask): Ditto.
+ 	(*float<floatunssuffix>v2div2sf2_mask_1): Ditto.
+ 	(<avx512>_cvt<ssemodesuffix>2mask<mode>):
+ 	Change iterator to VI48_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(<avx512>_cvtmask2<ssemodesuffix><mode>): Ditto.
+ 	(*<avx512>_cvtmask2<ssemodesuffix><mode>):
+ 	Change iterator to VI48_AVX512VL_AVX10_1. Remove target check.
+ 	Change when constraint is enabled.
+ 
+ 2023-08-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	Revert:
+ 	2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512vldqintrin.h: Remove target attribute.
+ 	* config/i386/i386-builtin.def (BDESC):
+ 	Add OPTION_MASK_ISA2_AVX10_1.
+ 	* config/i386/sse.md (VF_AVX512VLDQ_AVX10_1): New.
+ 	(VFH_AVX512VLDQ_AVX10_1): Ditto.
+ 	(VF1_AVX512VLDQ_AVX10_1): Ditto.
+ 	(<mask_codefor>reducep<mode><mask_name><round_saeonly_name>):
+ 	Change iterator to VFH_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(vec_pack<floatprefix>_float_<mode>): Change iterator to
+ 	VI8_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Change iterator to
+ 	VF1_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
+ 	(VI48F_256_DQVL_AVX10_1): Rename from VI48F_256_DQ.
+ 	(avx512vl_vextractf128<mode>): Change iterator to
+ 	VI48F_256_DQVL_AVX10_1. Remove target check.
+ 	(vec_extract_hi_<mode>_mask): Add TARGET_AVX10_1.
+ 	(vec_extract_hi_<mode>): Ditto.
+ 	(avx512vl_vinsert<mode>): Ditto.
+ 	(vec_set_lo_<mode><mask_name>): Ditto.
+ 	(vec_set_hi_<mode><mask_name>): Ditto.
+ 	(avx512dq_rangep<mode><mask_name><round_saeonly_name>): Change
+ 	iterator to VF_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(avx512dq_fpclass<mode><mask_scalar_merge_name>): Change
+ 	iterator to VFH_AVX512VLDQ_AVX10_1. Remove target check.
+ 	* config/i386/subst.md (mask_avx512dq_condition): Add
+ 	TARGET_AVX10_1.
+ 	(mask_scalar_merge): Ditto.
+ 
+ 2023-08-24  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	Revert:
+ 	2023-08-18  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/111051
+ 	* config/i386/avx512vldqintrin.h: Push AVX2 when AVX2 is
+ 	disabled.
+ 
+ 2023-08-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/111080
+ 	* dwarf2out.cc (prune_unused_types_walk): Handle
+ 	DW_TAG_restrict_type, DW_TAG_shared_type, DW_TAG_atomic_type,
+ 	DW_TAG_immutable_type, DW_TAG_coarray_type, DW_TAG_unspecified_type
+ 	and DW_TAG_dynamic_type as to only output them when referenced.
+ 
+ 2023-08-24  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_invalid_conversion): Adjust GCC
+ 	V13 to GCC 13.1.
+ 
+ 2023-08-24  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc (processor_names): Add new
+ 	member graniterapids-s and arrowlake-s.
+ 	* config/i386/i386-options.cc (processor_alias_table): Update
+ 	table with PROCESSOR_ARROWLAKE_S and
+ 	PROCESSOR_GRANITERAPIDS_D.
+ 	(m_GRANITERAPID_D): New macro.
+ 	(m_ARROWLAKE_S): Ditto.
+ 	(m_CORE_AVX512): Add m_GRANITERAPIDS_D.
+ 	(processor_cost_table): Add icelake_cost for
+ 	PROCESSOR_GRANITERAPIDS_D and alderlake_cost for
+ 	PROCESSOR_ARROWLAKE_S.
+ 	* config/i386/x86-tune.def: Hanlde m_ARROWLAKE_S same as
+ 	m_ARROWLAKE.
+ 	* config/i386/i386.h (enum processor_type): Add new member
+ 	PROCESSOR_GRANITERAPIDS_D and PROCESSOR_ARROWLAKE_S.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Handle
+ 	PROCESSOR_GRANITERAPIDS_D and PROCESSOR_ARROWLAKE_S
+ 
+ 2023-08-23  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* lra-eliminations.cc (eliminate_regs_in_insn): Use equivalences to
+ 	to help simplify code further.
+ 
+ 2023-08-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Tweak output.
+ 	* gimple-range-phi.cc (phi_group::phi_group): Remove unused members.
+ 	Initialize using a range instead of value and edge.
+ 	(phi_group::calculate_using_modifier): Use initializer value and
+ 	process for relations after trying for iteration convergence.
+ 	(phi_group::refine_using_relation): Use initializer range.
+ 	(phi_group::dump): Rework the dump output.
+ 	(phi_analyzer::process_phi): Allow multiple constant initilizers.
+ 	Dump groups immediately as created.
+ 	(phi_analyzer::dump): Tweak output.
+ 	* gimple-range-phi.h (phi_group::phi_group): Adjust prototype.
+ 	(phi_group::initial_value): Delete.
+ 	(phi_group::refine_using_relation): Adjust prototype.
+ 	(phi_group::m_initial_value): Delete.
+ 	(phi_group::m_initial_edge): Delete.
+ 	(phi_group::m_vr): Use int_range_max.
+ 	* tree-vrp.cc (execute_ranger_vrp): Don't dump phi groups.
+ 
+ 2023-08-23  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-phi.cc (phi_analyzer::operator[]): Return NULL if
+ 	no group was created.
+ 	(phi_analyzer::process_phi): Do not create groups of one phi node.
+ 
+ 2023-08-23  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* target.def (gen_ccmp_first, gen_ccmp_next): Use rtx_code for
+ 	CODE, CMP_CODE and BIT_CODE arguments.
+ 	* config/aarch64/aarch64.cc (aarch64_gen_ccmp_first): Likewise.
+ 	(aarch64_gen_ccmp_next): Likewise.
+ 	* doc/tm.texi: Regenerated.
+ 
+ 2023-08-23  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* coretypes.h (rtx_code): Add forward declaration.
+ 	* rtl.h (rtx_code): Make compatible with forward declaration.
+ 
+ 2023-08-23  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/111010
+ 	* config/i386/i386.md (*concat<any_or_plus:mode><dwi>3_3):
+ 	Merge pattern from *concatditi3_3 and *concatsidi3_3 using
+ 	DWIH mode iterator.  Disable (=&r,m,m) alternative for
+ 	32-bit targets.
+ 	(*concat<any_or_plus:mode><dwi>3_3): Disable (=&r,m,m)
+ 	alternative for 32-bit targets.
+ 
+ 2023-08-23  Zhangjin Liao  <liaozhangjin@eswincomputing.com>
+ 
+ 	* config/riscv/bitmanip.md (*<bitmanip_optab>disi2_sext): Add a more
+ 	appropriate type attribute.
+ 
+ 2023-08-23  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*cond_abs<mode>): New combine pattern.
+ 	(*copysign<mode>_neg): Ditto.
+ 	* config/riscv/autovec.md (@vcond_mask_<mode><vm>): Adjust.
+ 	(<optab><mode>2): Ditto.
+ 	(cond_<optab><mode>): New.
+ 	(cond_len_<optab><mode>): Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New.
+ 	(expand_cond_len_unop): New helper func.
+ 	* config/riscv/riscv-v.cc (shuffle_merge_patterns): Adjust.
+ 	(expand_cond_len_unop): New helper func.
+ 
+ 2023-08-23  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-ch.cc (enum ch_decision): Fix comment.
+ 	(should_duplicate_loop_header_p): Fix return value for static exits.
+ 	(ch_base::copy_headers): Improve handling of ch_possible_zero_cost.
+ 
+ 2023-08-23  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Move the handlings on
+ 	VMAT_GATHER_SCATTER in the final loop nest to its own loop,
+ 	and update the final nest accordingly.
+ 
+ 2023-08-23  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Move the handlings on
+ 	VMAT_LOAD_STORE_LANES in the final loop nest to its own loop,
+ 	and update the final nest accordingly.
+ 
+ 2023-08-23  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Remove vec oprnds,
+ 	adjust vec result_chain, vec_oprnd with auto_vec, and adjust
+ 	gvec_oprnds with auto_delete_vec.
+ 
+ 2023-08-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(pass_vsetvl::global_eliminate_vsetvl_insn): Fix potential ICE.
+ 
+ 2023-08-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (ge_sew_ratio_unavailable_p):
+ 	Fix fuse rule bug.
+ 	* config/riscv/riscv-vsetvl.def (DEF_SEW_LMUL_FUSE_RULE): Ditto.
+ 
+ 2023-08-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Add attribute.
+ 
+ 2023-08-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (change_insn): Clang format.
+ 	(vector_infos_manager::all_same_ratio_p): Ditto.
+ 	(vector_infos_manager::all_same_avl_p): Ditto.
+ 	(pass_vsetvl::refine_vsetvls): Ditto.
+ 	(pass_vsetvl::cleanup_vsetvls): Ditto.
+ 	(pass_vsetvl::commit_vsetvls): Ditto.
+ 	(pass_vsetvl::local_eliminate_vsetvl_insn): Ditto.
+ 	(pass_vsetvl::global_eliminate_vsetvl_insn): Ditto.
+ 	(pass_vsetvl::compute_probabilities): Ditto.
+ 
+ 2023-08-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/t-riscv: Add riscv-vsetvl.def
+ 
+ 2023-08-22  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.opt: Add --param names
+ 	riscv-autovec-preference and riscv-autovec-lmul
+ 
+ 2023-08-22  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/t-linux: Add MULTIARCH_DIRNAME.
+ 
+ 2023-08-22  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* tree-core.h (enum omp_clause_defaultmap_kind): Add
+ 	OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL.
+ 	* gimplify.cc (gimplify_scan_omp_clauses): Handle it.
+ 	* tree-pretty-print.cc (dump_omp_clause): Likewise.
+ 
+ 2023-08-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/106652
+ 	* doc/extend.texi (_Float<n>): Drop obsolete sentence that the
+ 	types aren't supported in C++.
+ 
+ 2023-08-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* doc/md.texi: Add LEN_FOLD_EXTRACT_LAST pattern.
+ 	* internal-fn.cc (fold_len_extract_direct): Ditto.
+ 	(expand_fold_len_extract_optab_fn): Ditto.
+ 	(direct_fold_len_extract_optab_supported_p): Ditto.
+ 	* internal-fn.def (LEN_FOLD_EXTRACT_LAST): Ditto.
+ 	* optabs.def (OPTAB_D): Ditto.
+ 
+ 2023-08-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Do not bump
+ 	DR_GROUP_STORE_COUNT here.  Remove early out.
+ 	(vect_transform_stmt): Only call vectorizable_store on
+ 	the last element of an interleaving chain.
+ 
+ 2023-08-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/94864
+ 	PR tree-optimization/94865
+ 	PR tree-optimization/93080
+ 	* match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): New pattern
+ 	for vector insertion from vector extraction.
+ 
+ 2023-08-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 	    Kewen.Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-loop.cc (vect_verify_loop_lens): Add exists check.
+ 	(vectorizable_live_operation): Add live vectorization for length loop
+ 	control.
+ 
+ 2023-08-22  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/105899
+ 	* doc/invoke.texi: Remove -Wanalyzer-unterminated-string.
+ 
+ 2023-08-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(vfwredusum_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwredusum_frm): New intrinsic function def.
+ 
+ 2023-08-21  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.md (neg): Second operand must be a register.
+ 
+ 2023-08-21  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/bitmanip.md: Added bitmanip type to insns
+ 	that are missing types.
+ 
+ 2023-08-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/sync-ztso.md (atomic_load_ztso<mode>): Avoid extraenous
+ 	newline.
+ 
+ 2023-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* config/aarch64/falkor-tag-collision-avoidance.cc (dump_insn_list):
+ 	Fix format specifier.
+ 
+ 2023-08-21  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (frange::union_nans): Return false if nothing
+ 	changed.
+ 	(range_tests_floats): New test.
+ 
+ 2023-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	PR tree-optimization/111048
+ 	* fold-const.cc (valid_mask_for_fold_vec_perm_cst_p): Set arg_npatterns
+ 	correctly.
+ 	(fold_vec_perm_cst): Remove workaround and again call
+ 	valid_mask_fold_vec_perm_cst_p for both VLS and VLA vectors.
+ 	(test_fold_vec_perm_cst::test_nunits_min_4): Add test-case.
+ 
+ 2023-08-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111082
+ 	* tree-vect-slp.cc (vectorize_slp_instance_root_stmt): Only
+ 	pun operations that can overflow.
+ 
+ 2023-08-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* lcm.cc (compute_antinout_edge): Export as global use.
+ 	(compute_earliest): Ditto.
+ 	(compute_rev_insert_delete): Ditto.
+ 	* lcm.h (compute_antinout_edge): Ditto.
+ 	(compute_earliest): Ditto.
+ 
+ 2023-08-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111070
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Check we have
+ 	an SSA name before checking SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
+ 
+ 2023-08-21  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111002
+ 	* match.pd (view_convert(vec_cond(a,b,c))): New pattern.
+ 
+ 2023-08-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Detect
+ 	Alderlake-N.
+ 	* common/config/i386/i386-common.cc (alias_table): Support
+ 	-march=gracemont as an alias of -march=alderlake.
+ 
+ 2023-08-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_sse_extend): Use ops[1]
+ 	instead of src in the call to ix86_expand_sse_cmp.
+ 	* config/i386/sse.md (<any_extend:insn>v8qiv8hi2): Do not
+ 	force operands[1] to a register.
+ 	(<any_extend:insn>v4hiv4si2): Ditto.
+ 	(<any_extend:insn>v2siv2di2): Ditto.
+ 
+ 2023-08-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/111006
+ 	PR tree-optimization/110986
+ 	* match.pd: (op(vec_cond(a,b,c))): Handle convert for op.
+ 
+ 2023-08-20  Eric Gallager  <egallager@gcc.gnu.org>
+ 
+ 	PR target/90835
+ 	* Makefile.in: improve error message when /usr/include is
+ 	missing
+ 
+ 2023-08-19  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/111017
+ 	* omp-expand.cc (expand_omp_for_init_vars): Pass after=true
+ 	to expand_omp_build_cond for 'factor != 0' condition, resulting
+ 	in pre-r12-5295-g47de0b56ee455e code for the gimple insert.
+ 
+ 2023-08-19  Guo Jie  <guojie@loongson.cn>
+ 	    Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/t-loongarch: Add loongarch-driver.h into
+ 	TM_H. Add loongarch-def.h and loongarch-tune.h into
+ 	OPTIONS_H_EXTRA.
+ 
+ 2023-08-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/111023
+ 	* config/i386/i386-expand.cc (ix86_split_mmx_punpck):
+ 	Also handle V2QImode.
+ 	(ix86_expand_sse_extend): New function.
+ 	* config/i386/i386-protos.h (ix86_expand_sse_extend): New prototype.
+ 	* config/i386/mmx.md (<any_extend:insn>v4qiv4hi2): Enable for
+ 	TARGET_SSE2.  Expand through ix86_expand_sse_extend for !TARGET_SSE4_1.
+ 	(<any_extend:insn>v2hiv2si2): Ditto.
+ 	(<any_extend:insn>v2qiv2hi2): Ditto.
+ 	* config/i386/sse.md (<any_extend:insn>v8qiv8hi2): Ditto.
+ 	(<any_extend:insn>v4hiv4si2): Ditto.
+ 	(<any_extend:insn>v2siv2di2): Ditto.
+ 
+ 2023-08-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR ipa/110753
+ 	* value-range.cc (irange::union_bitmask): Return FALSE if updated
+ 	bitmask is semantically equivalent to the original mask.
+ 	(irange::intersect_bitmask): Same.
+ 	(irange::get_bitmask): Add comment.
+ 
+ 2023-08-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111019
+ 	* tree-ssa-loop-im.cc (gather_mem_refs_stmt): When canonicalizing
+ 	also scrap base and offset in case the ref is indirect.
+ 
+ 2023-08-18  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.opt (mframe-limit): Set default to 32767.
+ 
+ 2023-08-18  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR bootstrap/111021
+ 	* Makefile.in (TM_P_H): Add $(TREE_H) as dependence.
+ 
+ 2023-08-18  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_build_scatter_store_calls): New, factor
+ 	out from ...
+ 	(vectorizable_store): ... here.
+ 
+ 2023-08-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111048
+ 	* fold-const.cc (fold_vec_perm_cst): Check for non-VLA
+ 	vectors first.
+ 
+ 2023-08-18  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	PR target/111051
+ 	* config/i386/avx512vldqintrin.h: Push AVX2 when AVX2 is
+ 	disabled.
+ 
+ 2023-08-18  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Move the handlings on
+ 	VMAT_GATHER_SCATTER in the final loop nest to its own loop,
+ 	and update the final nest accordingly.
+ 
+ 2023-08-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* doc/md.texi (Standard patterns): Document cond_neg, cond_one_cmpl,
+ 	cond_len_neg and cond_len_one_cmpl.
+ 
+ 2023-08-18  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/iterators.md (TARGET_HARD_FLOAT || TARGET_ZFINX): New.
+ 	* config/riscv/pic.md (*local_pic_load<ANYF:mode>): Change ANYF.
+ 	(*local_pic_load<ANYLSF:mode>): To ANYLSF.
+ 	(*local_pic_load_32d<ANYF:mode>): Ditto.
+ 	(*local_pic_load_32d<ANYLSF:mode>): Ditto.
+ 	(*local_pic_store<ANYF:mode>): Ditto.
+ 	(*local_pic_store<ANYLSF:mode>): Ditto.
+ 	(*local_pic_store_32d<ANYF:mode>): Ditto.
+ 	(*local_pic_store_32d<ANYLSF:mode>): Ditto.
+ 
+ 2023-08-18  Lehua Ding  <lehua.ding@rivai.ai>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/predicates.md (vector_const_0_operand): New.
+ 	* config/riscv/vector.md (*pred_broadcast<mode>_zero): Ditto.
+ 
+ 2023-08-18  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion):
+ 	Forbidden.
+ 
+ 2023-08-17  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/111009
+ 	* range-op.cc (operator_addr_expr::op1_range): Be more restrictive.
+ 
+ 2023-08-17  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-spills.cc (assign_stack_slot_num_and_sort_pseudos): Moving
+ 	slots_num initialization from here ...
+ 	(lra_spill): ... to here before the 1st call of
+ 	assign_stack_slot_num_and_sort_pseudos.  Add the 2nd call after
+ 	fp->sp elimination.
+ 
+ 2023-08-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR c/106537
+ 	* doc/invoke.texi (Option Summary): Mention
+ 	-Wcompare-distinct-pointer-types under `Warning Options'.
+ 	(Warning Options): Document -Wcompare-distinct-pointer-types.
+ 
+ 2023-08-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+ 
+ 	* recog.cc (memory_address_addr_space_p): Mark possibly unused
+ 	argument as unused.
+ 
+ 2023-08-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111039
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
+ 	SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
+ 
+ 2023-08-17  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* doc/rtl.texi: Fix up sample code for RTL-SSA insn changes.
+ 
+ 2023-08-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR target/111046
+ 	* config/bpf/bpf.cc (bpf_attribute_table): Add entry for the
+ 	`naked' function attribute.
+ 	(bpf_warn_func_return): New function.
+ 	(TARGET_WARN_FUNC_RETURN): Define.
+ 	(bpf_expand_prologue): Add preventive comment.
+ 	(bpf_expand_epilogue): Likewise.
+ 	* doc/extend.texi (BPF Function Attributes): Document the `naked'
+ 	function attribute.
+ 
+ 2023-08-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_slp_check_for_roots): Use
+ 	!needs_fold_left_reduction_p to decide whether we can
+ 	handle the reduction with association.
+ 	(vectorize_slp_instance_root_stmt): For TYPE_OVERFLOW_UNDEFINED
+ 	reductions perform all arithmetic in an unsigned type.
+ 
+ 2023-08-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* configure.ac (gcc_cv_ld64_version): Allow for dyld in ld -v
+ 	output.
+ 	* configure: Regenerate.
+ 
+ 2023-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(widen_freducop): Add frm_opt_type template arg.
+ 	(vfwredosum_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwredosum_frm): New intrinsic function def.
+ 
+ 2023-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(vfredosum_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfredosum_frm): New intrinsic function def.
+ 
+ 2023-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class freducop): Add frm_op_type template arg.
+ 	(vfredusum_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfredusum_frm): New intrinsic function def.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(struct reduc_alu_frm_def): New class for frm shape.
+ 	(SHAPE): New declaration.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 
+ 2023-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfncvt_f): Add frm_op_type template arg.
+ 	(vfncvt_f_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfncvt_f_frm): New intrinsic function def.
+ 
+ 2023-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(vfncvt_xu_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfncvt_xu_frm): New intrinsic function def.
+ 
+ 2023-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfncvt_x): Add frm_op_type template arg.
+ 	(BASE): New declaration.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfncvt_x_frm): New intrinsic function def.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(struct narrow_alu_frm_def): New shape function for frm.
+ 	(SHAPE): New declaration.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 
+ 2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512vldqintrin.h: Remove target attribute.
+ 	* config/i386/i386-builtin.def (BDESC):
+ 	Add OPTION_MASK_ISA2_AVX10_1.
+ 	* config/i386/sse.md (VF_AVX512VLDQ_AVX10_1): New.
+ 	(VFH_AVX512VLDQ_AVX10_1): Ditto.
+ 	(VF1_AVX512VLDQ_AVX10_1): Ditto.
+ 	(<mask_codefor>reducep<mode><mask_name><round_saeonly_name>):
+ 	Change iterator to VFH_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(vec_pack<floatprefix>_float_<mode>): Change iterator to
+ 	VI8_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Change iterator to
+ 	VF1_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
+ 	(VI48F_256_DQVL_AVX10_1): Rename from VI48F_256_DQ.
+ 	(avx512vl_vextractf128<mode>): Change iterator to
+ 	VI48F_256_DQVL_AVX10_1. Remove target check.
+ 	(vec_extract_hi_<mode>_mask): Add TARGET_AVX10_1.
+ 	(vec_extract_hi_<mode>): Ditto.
+ 	(avx512vl_vinsert<mode>): Ditto.
+ 	(vec_set_lo_<mode><mask_name>): Ditto.
+ 	(vec_set_hi_<mode><mask_name>): Ditto.
+ 	(avx512dq_rangep<mode><mask_name><round_saeonly_name>): Change
+ 	iterator to VF_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(avx512dq_fpclass<mode><mask_scalar_merge_name>): Change
+ 	iterator to VFH_AVX512VLDQ_AVX10_1. Remove target check.
+ 	* config/i386/subst.md (mask_avx512dq_condition): Add
+ 	TARGET_AVX10_1.
+ 	(mask_scalar_merge): Ditto.
+ 
+ 2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512vldqintrin.h: Remove target attribute.
+ 	* config/i386/i386-builtin.def (BDESC):
+ 	Add OPTION_MASK_ISA2_AVX10_1.
+ 	* config/i386/i386.cc (standard_sse_constant_opcode): Add TARGET_AVX10_1.
+ 	* config/i386/sse.md: (VI48_AVX512VL_AVX10_1): New.
+ 	(VI48_AVX512VLDQ_AVX10_1): Ditto.
+ 	(VF2_AVX512VL): Remove.
+ 	(VI8_256_512VLDQ_AVX10_1): Rename from VI8_256_512.
+ 	Add TARGET_AVX10_1.
+ 	(*<code><mode>3<mask_name>): Change isa attribute to
+ 	avx10_1_or_avx512dq. Add TARGET_AVX10_1.
+ 	(<code><mode>3): Add TARGET_AVX10_1. Change isa attr
+ 	to avx10_1_or_avx512vl.
+ 	(<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>):
+ 	Change iterator to VI8_256_512VLDQ_AVX10_1. Remove target check.
+ 	(<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>):
+ 	Add TARGET_AVX10_1.
+ 	(<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>):
+ 	Change iterator to VI8_256_512VLDQ_AVX10_1. Remove target check.
+ 	(<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>):
+ 	Add TARGET_AVX10_1.
+ 	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
+ 	Change iterator to VF2_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
+ 	Change iterator to VF1_128_256VLDQ_AVX10_1. Remove target check.
+ 	(float<floatunssuffix>v4div4sf2<mask_name>):
+ 	Add TARGET_AVX10_1.
+ 	(avx512dq_float<floatunssuffix>v2div2sf2): Ditto.
+ 	(*avx512dq_float<floatunssuffix>v2div2sf2): Ditto.
+ 	(float<floatunssuffix>v2div2sf2): Ditto.
+ 	(float<floatunssuffix>v2div2sf2_mask): Ditto.
+ 	(*float<floatunssuffix>v2div2sf2_mask): Ditto.
+ 	(*float<floatunssuffix>v2div2sf2_mask_1): Ditto.
+ 	(<avx512>_cvt<ssemodesuffix>2mask<mode>):
+ 	Change iterator to VI48_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(<avx512>_cvtmask2<ssemodesuffix><mode>): Ditto.
+ 	(*<avx512>_cvtmask2<ssemodesuffix><mode>):
+ 	Change iterator to VI48_AVX512VL_AVX10_1. Remove target check.
+ 	Change when constraint is enabled.
+ 
+ 2023-08-17  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/111037
+ 	* config/riscv/riscv-vsetvl.cc (float_insn_valid_sew_p): New function.
+ 	(second_sew_less_than_first_sew_p): Fix bug.
+ 	(first_sew_less_than_second_sew_p): Ditto.
+ 
+ 2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512vldqintrin.h: Remove target attribute.
+ 	* config/i386/i386-builtin.def (BDESC):
+ 	Add OPTION_MASK_ISA2_AVX10_1.
+ 	* config/i386/i386-builtins.cc (def_builtin): Handle AVX10_1.
+ 	* config/i386/i386-expand.cc
+ 	(ix86_check_builtin_isa_match): Ditto.
+ 	(ix86_expand_sse2_mulvxdi3): Add TARGET_AVX10_1.
+ 	* config/i386/i386.md: Add new isa attribute avx10_1_or_avx512dq
+ 	and avx10_1_or_avx512vl.
+ 	* config/i386/sse.md: (VF2_AVX512VLDQ_AVX10_1): New.
+ 	(VF1_128_256VLDQ_AVX10_1): Ditto.
+ 	(VI8_AVX512VLDQ_AVX10_1): Ditto.
+ 	(<sse>_andnot<mode>3<mask_name>):
+ 	Add TARGET_AVX10_1 and change isa attr from avx512dq to
+ 	avx10_1_or_avx512dq.
+ 	(*andnot<mode>3): Add TARGET_AVX10_1 and change isa attr from
+ 	avx512vl to avx10_1_or_avx512vl.
+ 	(fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
+ 	Change iterator to VF2_AVX512VLDQ_AVX10_1. Remove target check.
+ 	(fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
+ 	Ditto.
+ 	(ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
+ 	Ditto.
+ 	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
+ 	Change iterator to VF1_128_256VLDQ_AVX10_1. Remove target check.
+ 	(avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>):
+ 	Add TARGET_AVX10_1.
+ 	(fix<fixunssuffix>_truncv2sfv2di2): Ditto.
+ 	(cond_mul<mode>): Change iterator to VI8_AVX10_1_AVX512DQVL.
+ 	Remove target check.
+ 	(avx512dq_mul<mode>3<mask_name>): Ditto.
+ 	(*avx512dq_mul<mode>3<mask_name>): Ditto.
+ 	(VI4F_BRCST32x2): Add TARGET_AVX512DQ and TARGET_AVX10_1.
+ 	(<mask_codefor>avx512dq_broadcast<mode><mask_name>):
+ 	Remove target check.
+ 	(VI8F_BRCST64x2): Add TARGET_AVX512DQ and TARGET_AVX10_1.
+ 	(<mask_codefor>avx512dq_broadcast<mode><mask_name>_1):
+ 	Remove target check.
+ 	* config/i386/subst.md (mask_mode512bit_condition): Add TARGET_AVX10_1.
+ 	(mask_avx512vl_condition): Ditto.
+ 	(mask): Ditto.
+ 
+ 2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(ix86_check_avx10_vector_width): New function to check isa_flags
+ 	to emit a warning when there is a conflict in AVX10 options for
+ 	vector width.
+ 	(ix86_handle_option): Add check for avx10.1-256 and avx10.1-512.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Do not append -mno-avx10-max-512bit for -march=native.
+ 
+ 2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(ix86_check_avx10): New function to check isa_flags and
+ 	isa_flags_explicit to emit warning when AVX10 is enabled
+ 	by "-m" option.
+ 	(ix86_check_avx512):  New function to check isa_flags and
+ 	isa_flags_explicit to emit warning when AVX512 is enabled
+ 	by "-m" option.
+ 	(ix86_handle_option): Do not change the flags when warning
+ 	is emitted.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Do not append -mno-avx10.1 for -march=native.
+ 
+ 2023-08-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Add avx10_set and version and detect avx10.1.
+ 	(cpu_indicator_init): Handle avx10.1-512.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AVX10_512BIT_SET): New.
+ 	(OPTION_MASK_ISA2_AVX10_1_SET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX10_512BIT_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX10_1_UNSET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX2_UNSET): Modify for AVX10_1.
+ 	(ix86_handle_option): Handle -mavx10.1, -mavx10.1-256 and
+ 	-mavx10.1-512.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AVX10_512BIT, FEATURE_AVX10_1 and
+ 	FEATURE_AVX10_512BIT.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	AVX10_512BIT, AVX10_1 and AVX10_1_512.
+ 	* config/i386/constraints.md (Yk): Add AVX10_1.
+ 	(Yv): Ditto.
+ 	(k): Ditto.
+ 	* config/i386/cpuid.h (bit_AVX10): New.
+ 	(bit_AVX10_256): Ditto.
+ 	(bit_AVX10_512): Ditto.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal):
+ 	Define AVX10_512BIT and AVX10_1.
+ 	* config/i386/i386-isa.def
+ 	(AVX10_512BIT): Add DEF_PTA(AVX10_512BIT).
+ 	(AVX10_1): Add DEF_PTA(AVX10_1).
+ 	* config/i386/i386-options.cc (isa2_opts): Add -mavx10.1.
+ 	(ix86_valid_target_attribute_inner_p): Handle avx10-512bit, avx10.1
+ 	and avx10.1-512.
+ 	(ix86_option_override_internal): Enable AVX512{F,VL,BW,DQ,CD,BF16,
+ 	FP16,VBMI,VBMI2,VNNI,IFMA,BITALG,VPOPCNTDQ} features for avx10.1-512.
+ 	(ix86_valid_target_attribute_inner_p): Handle AVX10_1.
+ 	* config/i386/i386.cc (ix86_get_ssemov): Add AVX10_1.
+ 	(ix86_conditional_register_usage): Ditto.
+ 	(ix86_hard_regno_mode_ok): Ditto.
+ 	(ix86_rtx_costs): Ditto.
+ 	* config/i386/i386.h (VALID_MASK_AVX10_MODE): New macro.
+ 	* config/i386/i386.opt: Add option -mavx10.1, -mavx10.1-256 and
+ 	-mavx10.1-512.
+ 	* doc/extend.texi: Document avx10.1, avx10.1-256 and avx10.1-512.
+ 	* doc/invoke.texi: Document -mavx10.1, -mavx10.1-256 and -mavx10.1-512.
+ 	* doc/sourcebuild.texi: Document target avx10.1, avx10.1-256
+ 	and avx10.1-512.
+ 
+ 2023-08-17  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	* flag-types.h (vrp_mode): Remove unused.
+ 
+ 2023-08-17  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Use
+ 	CONSTM1_RTX.
+ 
+ 2023-08-17  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* internal-fn.def (COND_NOT): New internal function.
+ 	* match.pd (UNCOND_UNARY, COND_UNARY): Add bit_not/not
+ 	to the lists.
+ 	(`vec (a ? -1 : 0) ^ b`): New pattern to convert
+ 	into conditional not.
+ 	* optabs.def (cond_one_cmpl): New optab.
+ 	(cond_len_one_cmpl): Likewise.
+ 
+ 2023-08-16  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/110254
+ 	* ira-color.cc (improve_allocation): Update array
+ 	allocated_hard_reg_p.
+ 
+ 2023-08-16  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-int.h (lra_update_fp2sp_elimination): Change the prototype.
+ 	* lra-eliminations.cc (spill_pseudos): Record spilled pseudos.
+ 	(lra_update_fp2sp_elimination): Ditto.
+ 	(update_reg_eliminate): Adjust spill_pseudos call.
+ 	* lra-spills.cc (lra_spill): Assign stack slots to pseudos spilled
+ 	in lra_update_fp2sp_elimination.
+ 
+ 2023-08-16  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A720 CPU.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi: Document Cortex-A720 CPU.
+ 
+ 2023-08-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor):
+ 	Implement expander.
+ 	(<u>avg<v_double_trunc>3_ceil): Ditto.
+ 	* config/riscv/vector-iterators.md (ashiftrt): New iterator.
+ 	(ASHIFTRT): Ditto.
+ 
+ 2023-08-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* internal-fn.cc (vec_extract_direct): Change type argument
+ 	numbers.
+ 	(expand_vec_extract_optab_fn): Call convert_optab_fn.
+ 	(direct_vec_extract_optab_supported_p): Use
+ 	convert_optab_supported_p.
+ 
+ 2023-08-16  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* fold-const.cc (INCLUDE_ALGORITHM): Add Include.
+ 	(valid_mask_for_fold_vec_perm_cst_p): New function.
+ 	(fold_vec_perm_cst): Likewise.
+ 	(fold_vec_perm): Adjust assert and call fold_vec_perm_cst.
+ 	(test_fold_vec_perm_cst): New namespace.
+ 	(test_fold_vec_perm_cst::build_vec_cst_rand): New function.
+ 	(test_fold_vec_perm_cst::validate_res): Likewise.
+ 	(test_fold_vec_perm_cst::validate_res_vls): Likewise.
+ 	(test_fold_vec_perm_cst::builder_push_elems): Likewise.
+ 	(test_fold_vec_perm_cst::test_vnx4si_v4si): Likewise.
+ 	(test_fold_vec_perm_cst::test_v4si_vnx4si): Likewise.
+ 	(test_fold_vec_perm_cst::test_all_nunits): Likewise.
+ 	(test_fold_vec_perm_cst::test_nunits_min_2): Likewise.
+ 	(test_fold_vec_perm_cst::test_nunits_min_4): Likewise.
+ 	(test_fold_vec_perm_cst::test_nunits_min_8): Likewise.
+ 	(test_fold_vec_perm_cst::test_nunits_max_4): Likewise.
+ 	(test_fold_vec_perm_cst::is_simple_vla_size): Likewise.
+ 	(test_fold_vec_perm_cst::test): Likewise.
+ 	(fold_const_cc_tests): Call test_fold_vec_perm_cst::test.
+ 
+ 2023-08-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(BASE): New declaration.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwcvt_xu_frm): New intrinsic function def.
+ 
+ 2023-08-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Use explicit argument.
+ 
+ 2023-08-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(BASE): New declaration.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwcvt_x_frm): New intrinsic function def.
+ 
+ 2023-08-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (BASE): New declaration.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfcvt_f_frm): New intrinsic function def.
+ 
+ 2023-08-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(BASE): New declaration.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfcvt_xu_frm): New intrinsic function def..
+ 
+ 2023-08-16  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/110429
+ 	* config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Skip vector
+ 	extract when the element is 7 on BE while 8 on LE for byte or 3 on
+ 	BE while 4 on LE for halfword.
+ 
+ 2023-08-16  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/106769
+ 	* config/rs6000/vsx.md (expand vsx_extract_<mode>): Set it only
+ 	for V8HI and V16QI.
+ 	(vsx_extract_v4si): New expand for V4SI extraction.
+ 	(vsx_extract_v4si_w1): New insn pattern for V4SI extraction on
+ 	word 1 from BE order.
+ 	(*mfvsrwz): New insn pattern for mfvsrwz.
+ 	(*vsx_extract_<mode>_di_p9): Assert that it won't be generated on
+ 	word 1 from BE order.
+ 	(*vsx_extract_si): Remove.
+ 	(*vsx_extract_v4si_w023): New insn and split pattern on word 0, 2,
+ 	3 from BE order.
+ 
+ 2023-08-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (vec_mask_len_load_lanes<mode><vsingle>):
+ 	New pattern.
+ 	(vec_mask_len_store_lanes<mode><vsingle>): Ditto.
+ 	* config/riscv/riscv-protos.h (expand_lanes_load_store): New function.
+ 	* config/riscv/riscv-v.cc (get_mask_mode): Add tuple mask mode.
+ 	(expand_lanes_load_store): New function.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 
+ 2023-08-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* internal-fn.cc (internal_load_fn_p): Apply
+ 	MASK_LEN_{LOAD_LANES,STORE_LANES} into vectorizer.
+ 	(internal_store_fn_p): Ditto.
+ 	(internal_fn_len_index): Ditto.
+ 	(internal_fn_mask_index): Ditto.
+ 	(internal_fn_stored_value_index): Ditto.
+ 	* tree-vect-data-refs.cc (vect_store_lanes_supported): Ditto.
+ 	(vect_load_lanes_supported): Ditto.
+ 	* tree-vect-loop.cc: Ditto.
+ 	* tree-vect-slp.cc (vect_slp_prefer_store_lanes_p): Ditto.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
+ 	(get_group_load_store_type): Ditto.
+ 	(vectorizable_store): Ditto.
+ 	(vectorizable_load): Ditto.
+ 	* tree-vectorizer.h (vect_store_lanes_supported): Ditto.
+ 	(vect_load_lanes_supported): Ditto.
+ 
+ 2023-08-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(enum frm_op_type): New type for frm.
+ 	(BASE): New declaration.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfcvt_x_frm): New intrinsic function def.
+ 
+ 2023-08-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-builtins.cc
+ 	(ix86_vectorize_builtin_gather): Adjust for use_gather_8parts.
+ 	* config/i386/i386-options.cc (parse_mtune_ctrl_str):
+ 	Set/Clear tune features use_{gather,scatter}_{2parts, 4parts,
+ 	8parts} for -mtune-crtl={,^}{use_gather,use_scatter}.
+ 	* config/i386/i386.cc (ix86_vectorize_builtin_scatter): Adjust
+ 	for use_scatter_8parts
+ 	* config/i386/i386.h (TARGET_USE_GATHER): Rename to ..
+ 	(TARGET_USE_GATHER_8PARTS): .. this.
+ 	(TARGET_USE_SCATTER): Rename to ..
+ 	(TARGET_USE_SCATTER_8PARTS): .. this.
+ 	* config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Rename to
+ 	(X86_TUNE_USE_GATHER_8PARTS): .. this.
+ 	(X86_TUNE_USE_SCATTER): Rename to
+ 	(X86_TUNE_USE_SCATTER_8PARTS): .. this.
+ 	* config/i386/i386.opt: Add new options mgather, mscatter.
+ 
+ 2023-08-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-options.cc (m_GDS): New macro.
+ 	* config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Don't
+ 	enable for m_GDS.
+ 	(X86_TUNE_USE_GATHER_4PARTS): Ditto.
+ 	(X86_TUNE_USE_GATHER): Ditto.
+ 
+ 2023-08-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.md (movdf_internal): Generate vmovapd instead of
+ 	vmovsd when moving DFmode between SSE_REGS.
+ 	(movhi_internal): Generate vmovdqa instead of vmovsh when
+ 	moving HImode between SSE_REGS.
+ 	(mov<mode>_internal): Use vmovaps instead of vmovsh when
+ 	moving HF/BFmode between SSE_REGS.
+ 
+ 2023-08-15  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.md (extendsisi2): Delete useless define_insn.
+ 
+ 2023-08-15  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/111029
+ 	* config/bpf/bpf.cc (bpf_print_register): Print 'w' registers
+ 	for any mode 32-bits or smaller, not just SImode.
+ 
+ 2023-08-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/68930
+ 	PR ipa/92497
+ 	* ipa-prop.h (ipcp_get_aggregate_const): Declare.
+ 	* ipa-prop.cc (ipcp_get_aggregate_const): New function.
+ 	(ipcp_transform_function): Do not deallocate transformation info.
+ 	* tree-ssa-sccvn.cc: Include alloc-pool.h, symbol-summary.h and
+ 	ipa-prop.h.
+ 	(vn_reference_lookup_2): When hitting default-def vuse, query
+ 	IPA-CP transformation info for any known constants.
+ 
+ 2023-08-15  Chung-Lin Tang  <cltang@codesourcery.com>
+ 	    Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* gimplify.cc (oacc_region_type_name): New function.
+ 	(oacc_default_clause): If no 'default' clause appears on this
+ 	compute construct, see if one appears on a lexically containing
+ 	'data' construct.
+ 	(gimplify_scan_omp_clauses): Upon OMP_CLAUSE_DEFAULT case, set
+ 	ctx->oacc_default_clause_ctx to current context.
+ 
+ 2023-08-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110989
+ 	* config/riscv/predicates.md: Fix predicate.
+ 
+ 2023-08-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp_instance): Remove
+ 	slp_inst_kind_ctor handling.
+ 	(vect_analyze_slp): Simplify.
+ 	(vect_build_slp_instance): Dump when we analyze a CTOR.
+ 	(vect_slp_check_for_constructors): Rename to ...
+ 	(vect_slp_check_for_roots): ... this.  Register a
+ 	slp_root for CONSTRUCTORs instead of shoving them to
+ 	the set of grouped stores.
+ 	(vect_slp_analyze_bb_1): Adjust.
+ 
+ 2023-08-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_slp_instance::remain_stmts): Change
+ 	to ...
+ 	(_slp_instance::remain_defs): ... this.
+ 	(SLP_INSTANCE_REMAIN_STMTS): Rename to ...
+ 	(SLP_INSTANCE_REMAIN_DEFS): ... this.
+ 	(slp_root::remain): New.
+ 	(slp_root::slp_root): Adjust.
+ 	* tree-vect-slp.cc (vect_free_slp_instance): Adjust.
+ 	(vect_build_slp_instance): Get extra remain parameter,
+ 	adjust former handling of a cut off stmt.
+ 	(vect_analyze_slp_instance): Adjust.
+ 	(vect_analyze_slp): Likewise.
+ 	(_bb_vec_info::~_bb_vec_info): Likewise.
+ 	(vectorizable_bb_reduc_epilogue): Dump something if we fail.
+ 	(vect_slp_check_for_constructors): Handle non-internal
+ 	defs as remain defs of a reduction.
+ 	(vectorize_slp_instance_root_stmt): Adjust.
+ 
+ 2023-08-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-ivcanon.cc: Include tree-vectorizer.h
+ 	(canonicalize_loop_induction_variables): Use find_loop_location.
+ 
+ 2023-08-15  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR bootstrap/111021
+ 	* config/cris/cris-protos.h: Revert recent change.
+ 	* config/cris/cris.cc (cris_legitimate_address_p): Remove
+ 	code_helper unused parameter.
+ 	(cris_legitimate_address_p_hook): New wrapper function.
+ 	(TARGET_LEGITIMATE_ADDRESS_P): Change to
+ 	cris_legitimate_address_p_hook.
+ 
+ 2023-08-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110963
+ 	* tree-ssa-pre.cc (do_pre_regular_insertion): Also insert
+ 	a PHI node when the expression is available on all edges
+ 	and we insert at most one copy from a constant.
+ 
+ 2023-08-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110991
+ 	* tree-ssa-loop-ivcanon.cc (constant_after_peeling): Handle
+ 	VIEW_CONVERT_EXPR <op>, handle more simple IV-like SSA cycles
+ 	that will end up constant.
+ 
+ 2023-08-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR bootstrap/111021
+ 	* Makefile.in (RECOG_H): Add $(TREE_H) as dependence.
+ 
+ 2023-08-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Move the handlings on
+ 	VMAT_LOAD_STORE_LANES in the final loop nest to its own loop,
+ 	and update the final nest accordingly.
+ 
+ 2023-08-15  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Remove some useless checks
+ 	on VMAT_INVARIANT.
+ 
+ 2023-08-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* mode-switching.cc (create_pre_exit): Add SET insn check.
+ 
+ 2023-08-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfrec7_frm): New class for frm.
+ 	(vfrec7_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfrec7_frm): New intrinsic function definition.
+ 	* config/riscv/vector-iterators.md
+ 	(VFMISC): Remove VFREC7.
+ 	(misc_op): Ditto.
+ 	(float_insn_type): Ditto.
+ 	(VFMISC_FRM): New int iterator.
+ 	(misc_frm_op): New op for frm.
+ 	(float_frm_insn_type): New type for frm.
+ 	* config/riscv/vector.md (@pred_<misc_frm_op><mode>):
+ 	New pattern for misc frm.
+ 
+ 2023-08-14  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc (curr_insn_transform): Process output stack
+ 	pointer reloads before emitting reload insns.
+ 
+ 2023-08-14  benjamin priour  <vultkayn@gcc.gnu.org>
+ 
+ 	PR analyzer/110543
+ 	* doc/invoke.texi: Add documentation of
+ 	fanalyzer-show-events-in-system-headers
+ 
+ 2023-08-14  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR gcov-profile/110988
+ 	* tree-cfg.cc (fold_loop_internal_call): Avoid division by zero.
+ 
+ 2023-08-14  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
+ 	Enable compressed builtins when ZC* extensions enabled.
+ 	* config/riscv/riscv-shorten-memrefs.cc:
+ 	Enable shorten_memrefs pass when ZC* extensions enabled.
+ 	* config/riscv/riscv.cc (riscv_compressed_reg_p):
+ 	Enable compressible registers when ZC* extensions enabled.
+ 	(riscv_rtx_costs): Allow adjusting rtx costs when ZC* extensions enabled.
+ 	(riscv_address_cost): Allow adjusting address cost when ZC* extensions enabled.
+ 	(riscv_first_stack_step): Allow compression of the register saves
+ 	without adding extra instructions.
+ 	* config/riscv/riscv.h (FUNCTION_BOUNDARY): Adjusts function boundary
+ 	to 16 bits when ZC* extensions enabled.
+ 
+ 2023-08-14  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse): New extensions.
+ 	* config/riscv/riscv-opts.h (MASK_ZCA): New mask.
+ 	(MASK_ZCB): Ditto.
+ 	(MASK_ZCE): Ditto.
+ 	(MASK_ZCF): Ditto.
+ 	(MASK_ZCD): Ditto.
+ 	(MASK_ZCMP): Ditto.
+ 	(MASK_ZCMT): Ditto.
+ 	(TARGET_ZCA): New target.
+ 	(TARGET_ZCB): Ditto.
+ 	(TARGET_ZCE): Ditto.
+ 	(TARGET_ZCF): Ditto.
+ 	(TARGET_ZCD): Ditto.
+ 	(TARGET_ZCMP): Ditto.
+ 	(TARGET_ZCMT): Ditto.
+ 	* config/riscv/riscv.opt: New target variable.
+ 
+ 2023-08-14  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	Revert:
+ 	2023-05-17  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* genrecog.cc (print_nonbool_test): Fix type error of
+ 	switch (SUBREG_BYTE (op))'.
+ 
+ 2023-08-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-cfg.cc (print_loop_info): Dump to 'file', not 'dump_file'.
+ 
+ 2023-08-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class unop_frm): New class for frm.
+ 	(vfsqrt_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfsqrt_frm): New intrinsic function definition.
+ 
+ 2023-08-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfwnmsac_frm): New class for frm.
+ 	(vfwnmsac_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwnmsac_frm): New intrinsic function definition.
+ 
+ 2023-08-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfwmsac_frm): New class for frm.
+ 	(vfwmsac_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwmsac_frm): New intrinsic function definition.
+ 
+ 2023-08-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfwnmacc_frm): New class for frm.
+ 	(vfwnmacc_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwnmacc_frm): New intrinsic function definition.
+ 
+ 2023-08-14  Cui, Lili  <lili.cui@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Add model value 0xba
+ 	to Raptorlake.
+ 
+ 2023-08-14  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/mmix/predicates.md (mmix_address_operand): Use
+ 	lra_in_progress, not reload_in_progress.
+ 
+ 2023-08-14  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/mmix/mmix.cc: Re-enable LRA.
+ 
+ 2023-08-14  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/mmix/predicates.md (frame_pointer_operand): Handle FP+offset
+ 	when lra_in_progress.
+ 
+ 2023-08-14  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/mmix/mmix.cc: Disable LRA for MMIX.
+ 
+ 2023-08-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfwmacc_frm): New class for vfwmacc frm.
+ 	(vfwmacc_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwmacc_frm): Function definition for vfwmacc.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_widen_ternop_insn): Add frm support.
+ 
+ 2023-08-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfnmsub_frm): New class for vfnmsub frm.
+ 	(vfnmsub_frm): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfnmsub_frm): New function declaration.
+ 
+ 2023-08-14  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc (curr_insn_transform): Set done_p up and
+ 	check it on true after processing output stack pointer reload.
+ 
+ 2023-08-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* Makefile.in (USER_H): Add stdckdint.h.
+ 	* ginclude/stdckdint.h: New file.
+ 
+ 2023-08-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110994
+ 	* config/riscv/riscv-opts.h (TARGET_VECTOR_VLS): Add TARGET_VETOR.
+ 
+ 2023-08-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* tree-pretty-print.cc (dump_generic_node) <case TREE_VEC>:
+ 	Delimit output with braces.
+ 
+ 2023-08-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110985
+ 	* config/riscv/riscv-v.cc (expand_vec_series): Refactor the expander.
+ 
+ 2023-08-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Add VLS CONST_VECTOR.
+ 	* config/riscv/riscv.cc (riscv_const_insns): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-08-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/105899
+ 	* doc/analyzer.texi (__analyzer_get_strlen): New.
+ 	* doc/invoke.texi: Add -Wanalyzer-unterminated-string.
+ 
+ 2023-08-11  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/rx/rx.md (subdi3): Fix test for borrow.
+ 
+ 2023-08-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR middle-end/110989
+ 	* tree-vect-stmts.cc (vectorizable_store): Replace iv_type with sizetype.
+ 	(vectorizable_load): Ditto.
+ 
+ 2023-08-11  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.md (allocate_stack): Define.
+ 	* config/bpf/bpf.h (FIRST_PSEUDO_REGISTER): Make room for fake
+ 	stack pointer register.
+ 	(FIXED_REGISTERS): Adjust accordingly.
+ 	(CALL_USED_REGISTERS): Likewise.
+ 	(REG_CLASS_CONTENTS): Likewise.
+ 	(REGISTER_NAMES): Likewise.
+ 	* config/bpf/bpf.cc (bpf_compute_frame_layout): Do not reserve
+ 	space for callee-saved registers.
+ 	(bpf_expand_prologue): Do not save callee-saved registers in xbpf.
+ 	(bpf_expand_epilogue): Do not restore callee-saved registers in
+ 	xbpf.
+ 
+ 2023-08-11  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_function_arg_advance): Do not complain
+ 	about too many arguments if function is always inlined.
+ 
+ 2023-08-11  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* tree-pretty-print.cc (dump_generic_node) <case COMPONENT_REF>:
+ 	Don't call component_ref_field_offset if the RHS isn't a decl.
+ 
+ 2023-08-11  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR bootstrap/110646
+ 	* gensupport.cc(class conlist): Use strtol instead of std::stoi.
+ 
+ 2023-08-11  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc (goal_alt_out_sp_reload_p): New flag.
+ 	(process_alt_operands): Set the flag.
+ 	(curr_insn_transform): Modify stack pointer offsets if output
+ 	stack pointer reload is generated.
+ 
+ 2023-08-11  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110979
+ 	* tree-vect-loop.cc (vectorizable_reduction): For
+ 	FOLD_LEFT_REDUCTION without target support make sure
+ 	we don't need to honor signed zeros and sign dependent rounding.
+ 
+ 2023-08-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_slp_region): Provide opt-info for all SLP
+ 	subgraph entries.  Dump the used vector size based on the
+ 	SLP subgraph entry root vector type.
+ 
+ 2023-08-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfmsub_frm): New class for vfmsub frm.
+ 	(vfmsub_frm): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmsub_frm): New function declaration.
+ 
+ 2023-08-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* doc/md.texi: Add vec_mask_len_{load_lanes,store_lanes} patterns.
+ 	* internal-fn.cc (expand_partial_load_optab_fn): Ditto.
+ 	(expand_partial_store_optab_fn): Ditto.
+ 	* internal-fn.def (MASK_LEN_LOAD_LANES): Ditto.
+ 	(MASK_LEN_STORE_LANES): Ditto.
+ 	* optabs.def (OPTAB_CD): Ditto.
+ 
+ 2023-08-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfnmadd_frm): New class for vfnmadd frm.
+ 	(vfnmadd_frm): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfnmadd_frm): New function declaration.
+ 
+ 2023-08-11  Drew Ross  <drross@redhat.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109938
+ 	* match.pd (((x ^ y) & z) | x -> (z & y) | x): New simplification.
+ 
+ 2023-08-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfmadd_frm): New class for vfmadd frm.
+ 	(vfmadd_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmadd_frm): New function definition.
+ 
+ 2023-08-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfnmsac_frm): New class for vfnmsac frm.
+ 	(vfnmsac_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfnmsac_frm): New function definition.
+ 
+ 2023-08-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/extend.texi (Typeof): Document typeof_unqual
+ 	and __typeof_unqual__.
+ 
+ 2023-08-11  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110954
+ 	* generic-match-head.cc (bitwise_inverted_equal_p): Add
+ 	wascmp argument and set it accordingly.
+ 	* gimple-match-head.cc (bitwise_inverted_equal_p): Add
+ 	wascmp argument to the macro.
+ 	(gimple_bitwise_inverted_equal_p): Add
+ 	wascmp argument and set it accordingly.
+ 	* match.pd (`a & ~a`, `a ^| ~a`): Update call
+ 	to bitwise_inverted_equal_p and handle wascmp case.
+ 	(`(~x | y) & x`, `(~x | y) & x`, `a?~t:t`): Update
+ 	call to bitwise_inverted_equal_p and check to see
+ 	if was !wascmp or if precision was 1.
+ 
+ 2023-08-11  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/84510
+ 	* doc/invoke.texi: Update.
+ 
+ 2023-08-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfmsac_frm): New class for vfmsac frm.
+ 	(vfmsac_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmsac_frm): New function definition
+ 
+ 2023-08-10  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/110923
+ 	* tree-ssa-loop-split.cc (split_loop): Watch for division by zero.
+ 
+ 2023-08-10  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add Ztso and mark Ztso as
+ 	dependent on 'a' extension.
+ 	* config/riscv/riscv-opts.h (MASK_ZTSO): New mask.
+ 	(TARGET_ZTSO): New target.
+ 	* config/riscv/riscv.cc (riscv_memmodel_needs_amo_acquire): Add
+ 	Ztso case.
+ 	(riscv_memmodel_needs_amo_release): Add Ztso case.
+ 	(riscv_print_operand): Add Ztso case for LR/SC annotations.
+ 	* config/riscv/riscv.md: Import sync-rvwmo.md and sync-ztso.md.
+ 	* config/riscv/riscv.opt: Add Ztso target variable.
+ 	* config/riscv/sync.md (mem_thread_fence_1): Expand to RVWMO or
+ 	Ztso specific insn.
+ 	(atomic_load<mode>): Expand to RVWMO or Ztso specific insn.
+ 	(atomic_store<mode>): Expand to RVWMO or Ztso specific insn.
+ 	* config/riscv/sync-rvwmo.md: New file. Seperate out RVWMO
+ 	specific load/store/fence mappings.
+ 	* config/riscv/sync-ztso.md: New file. Seperate out Ztso
+ 	specific load/store/fence mappings.
+ 
+ 2023-08-10  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Special case loops with
+ 	0 iteration count.
+ 
+ 2023-08-10  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-threadupdate.cc (ssa_fix_duplicate_block_edges): Fix profile update.
+ 
+ 2023-08-10  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* profile-count.cc (profile_count::differs_from_p): Fix overflow and
+ 	handling of undefined values.
+ 
+ 2023-08-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* tree-ssa-phiopt.cc (single_non_singleton_phi_for_edges): Never
+ 	return virtual phis and return NULL if there is a virtual phi
+ 	where the arguments from E0 and E1 edges aren't equal.
+ 
+ 2023-08-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* internal-fn.def (VCOND, VCONDU, VCONDEQ, VCOND_MASK,
+ 	VEC_SET, VEC_EXTRACT): Make ECF_CONST | ECF_NOTHROW.
+ 
+ 2023-08-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110962
+ 	* config/riscv/autovec.md (vec_duplicate<mode>): New pattern.
+ 
+ 2023-08-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfnmacc_frm): New class for vfnmacc.
+ 	(vfnmacc_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfnmacc_frm): New function definition.
+ 
+ 2023-08-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfmacc_frm): New class for vfmacc frm.
+ 	(vfmacc_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmacc_frm): New function definition.
+ 
+ 2023-08-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110964
+ 	* config/riscv/riscv-v.cc (expand_cond_len_ternop): Add integer ternary.
+ 
+ 2023-08-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vectorizable_live_operation): Remove
+ 	gimple_stmt_iterator * argument.
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Likewise.
+ 	Adjust plumbing around vect_get_loop_mask.
+ 	(vect_analyze_loop_operations): Adjust.
+ 	* tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Likewise.
+ 	(vect_bb_slp_mark_live_stmts): Likewise.
+ 	(vect_schedule_slp_node): Likewise.
+ 	* tree-vect-stmts.cc (can_vectorize_live_stmts): Likewise.
+ 	Remove gimple_stmt_iterator * argument.
+ 	(vect_transform_stmt): Adjust.
+ 
+ 2023-08-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Add missing modes.
+ 
+ 2023-08-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* lto-streamer-in.cc (lto_input_tree_1): Assert TYPE_PRECISION
+ 	is up to WIDE_INT_MAX_PRECISION rather than MAX_BITSIZE_MODE_ANY_INT.
+ 
+ 2023-08-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/102989
+ 	* expr.cc (expand_expr_real_1) <case MEM_REF>: Add an early return for
+ 	EXPAND_WRITE or EXPAND_MEMORY modifiers to avoid testing it multiple
+ 	times.
+ 
+ 2023-08-10  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110832
+ 	* config/i386/mmx.md: (movq_<mode>_to_sse): Also do not
+ 	sanitize upper part of V4HFmode register with
+ 	-fno-trapping-math.
+ 	(<insn>v4hf3): Enable for ix86_partial_vec_fp_math.
+ 	(<divv4hf3): Ditto.
+ 	(<insn>v2hf3): Ditto.
+ 	(divv2hf3): Ditto.
+ 	(movd_v2hf_to_sse): Do not sanitize upper part of V2HFmode
+ 	register with -fno-trapping-math.
+ 
+ 2023-08-10  Pan Li  <pan2.li@intel.com>
+ 	    Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-protos.h
+ 	(enum floating_point_rounding_mode): Add NONE, DYN_EXIT and DYN_CALL.
+ 	(get_frm_mode): New declaration.
+ 	* config/riscv/riscv-v.cc (get_frm_mode): New function to get frm mode.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_ternop_insn): Take care of frm reg.
+ 	* config/riscv/riscv.cc (riscv_static_frm_mode_p): Migrate to FRM_XXX.
+ 	(riscv_emit_frm_mode_set): Ditto.
+ 	(riscv_emit_mode_set): Ditto.
+ 	(riscv_frm_adjust_mode_after_call): Ditto.
+ 	(riscv_frm_mode_needed): Ditto.
+ 	(riscv_frm_mode_after): Ditto.
+ 	(riscv_mode_entry): Ditto.
+ 	(riscv_mode_exit): Ditto.
+ 	* config/riscv/riscv.h (NUM_MODES_FOR_MODE_SWITCHING): Ditto.
+ 	* config/riscv/vector.md
+ 	(rne,rtz,rdn,rup,rmm,dyn,dyn_exit,dyn_call,none): Removed
+ 	(symbol_ref): * config/riscv/vector.md: Set frm_mode attr explicitly.
+ 
+ 2023-08-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (anticipatable_occurrence_p): Fix
+ 	incorrect anticipate info.
+ 
+ 2023-08-09  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_version_table):
+ 	Remove 'Zve32d' from the version list.
+ 
+ 2023-08-09  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_sched_variable_issue): New function.
+ 	(TARGET_SCHED_VARIABLE_ISSUE): New macro.
+ 	Co-authored-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2023-08-09  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_address): Handle folding.
+ 	(mem_shadd_or_shadd_rtx_p): New function.
+ 
+ 2023-08-09  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110937
+ 	PR tree-optimization/100798
+ 	* match.pd (`a ? ~b : b`): Handle this
+ 	case.
+ 
+ 2023-08-09  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.opt (mpartial-vector-fp-math): Add dot.
+ 
+ 2023-08-09  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A520 CPU.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi: Document Cortex-A520 CPU.
+ 
+ 2023-08-09  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (vcmpneb, vcmpneh, vcmpnew):
+ 	Move definitions to Altivec stanza.
+ 	* config/rs6000/altivec.md (vcmpneb, vcmpneh, vcmpnew): New
+ 	define_expand.
+ 
+ 2023-08-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110950
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Add NPATTERNS = 1
+ 	stepped vector support.
+ 
+ 2023-08-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Rename local variable subleaf_level to max_subleaf_level.
+ 
+ 2023-08-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/110587
+ 	* lra-assigns.cc (find_hard_regno_for_1): Re-order checks.
+ 
+ 2023-08-09  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/110248
+ 	* config/rs6000/rs6000.cc (rs6000_legitimate_address_p): Check if
+ 	the given code is for ifn LEN_{LOAD,STORE}, if yes then make it not
+ 	legitimate when outer code is PLUS.
+ 
+ 2023-08-09  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/110248
+ 	* recog.cc (memory_address_addr_space_p): Add one more argument ch of
+ 	type code_helper and pass it to targetm.addr_space.legitimate_address_p
+ 	instead of ERROR_MARK.
+ 	(offsettable_address_addr_space_p): Update one function pointer with
+ 	one more argument of type code_helper as its assignees
+ 	memory_address_addr_space_p and strict_memory_address_addr_space_p
+ 	have been adjusted, and adjust some call sites with ERROR_MARK.
+ 	* recog.h (tree.h): New include header file for tree_code ERROR_MARK.
+ 	(memory_address_addr_space_p): Adjust with one more unnamed argument
+ 	of type code_helper with default ERROR_MARK.
+ 	(strict_memory_address_addr_space_p): Likewise.
+ 	* reload.cc (strict_memory_address_addr_space_p): Add one unnamed
+ 	argument of type code_helper.
+ 	* tree-ssa-address.cc (valid_mem_ref_p): Add one more argument ch of
+ 	type code_helper and pass it to memory_address_addr_space_p.
+ 	* tree-ssa-address.h (valid_mem_ref_p): Adjust the declaration with
+ 	one more unnamed argument of type code_helper with default value
+ 	ERROR_MARK.
+ 	* tree-ssa-loop-ivopts.cc (get_address_cost): Use ERROR_MARK as code
+ 	by default, change it with ifn code for USE_PTR_ADDRESS type use, and
+ 	pass it to all valid_mem_ref_p calls.
+ 
+ 2023-08-09  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/110248
+ 	* coretypes.h (class code_helper): Add forward declaration.
+ 	* doc/tm.texi: Regenerate.
+ 	* lra-constraints.cc (valid_address_p): Call target hook
+ 	targetm.addr_space.legitimate_address_p with an extra parameter
+ 	ERROR_MARK as its prototype changes.
+ 	* recog.cc (memory_address_addr_space_p): Likewise.
+ 	* reload.cc (strict_memory_address_addr_space_p): Likewise.
+ 	* target.def (legitimate_address_p, addr_space.legitimate_address_p):
+ 	Extend with one more argument of type code_helper, update the
+ 	documentation accordingly.
+ 	* targhooks.cc (default_legitimate_address_p): Adjust for the
+ 	new code_helper argument.
+ 	(default_addr_space_legitimate_address_p): Likewise.
+ 	* targhooks.h (default_legitimate_address_p): Likewise.
+ 	(default_addr_space_legitimate_address_p): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_legitimate_address_hook_p): Adjust
+ 	with extra unnamed code_helper argument with default ERROR_MARK.
+ 	* config/alpha/alpha.cc (alpha_legitimate_address_p): Likewise.
+ 	* config/arc/arc.cc (arc_legitimate_address_p): Likewise.
+ 	* config/arm/arm-protos.h (arm_legitimate_address_p): Likewise.
+ 	(tree.h): New include for tree_code ERROR_MARK.
+ 	* config/arm/arm.cc (arm_legitimate_address_p): Adjust with extra
+ 	unnamed code_helper argument with default ERROR_MARK.
+ 	* config/avr/avr.cc (avr_addr_space_legitimate_address_p): Likewise.
+ 	* config/bfin/bfin.cc (bfin_legitimate_address_p): Likewise.
+ 	* config/bpf/bpf.cc (bpf_legitimate_address_p): Likewise.
+ 	* config/c6x/c6x.cc (c6x_legitimate_address_p): Likewise.
+ 	* config/cris/cris-protos.h (cris_legitimate_address_p): Likewise.
+ 	(tree.h): New include for tree_code ERROR_MARK.
+ 	* config/cris/cris.cc (cris_legitimate_address_p): Adjust with extra
+ 	unnamed code_helper argument with default ERROR_MARK.
+ 	* config/csky/csky.cc (csky_legitimate_address_p): Likewise.
+ 	* config/epiphany/epiphany.cc (epiphany_legitimate_address_p):
+ 	Likewise.
+ 	* config/frv/frv.cc (frv_legitimate_address_p): Likewise.
+ 	* config/ft32/ft32.cc (ft32_addr_space_legitimate_address_p): Likewise.
+ 	* config/gcn/gcn.cc (gcn_addr_space_legitimate_address_p): Likewise.
+ 	* config/h8300/h8300.cc (h8300_legitimate_address_p): Likewise.
+ 	* config/i386/i386.cc (ix86_legitimate_address_p): Likewise.
+ 	* config/ia64/ia64.cc (ia64_legitimate_address_p): Likewise.
+ 	* config/iq2000/iq2000.cc (iq2000_legitimate_address_p): Likewise.
+ 	* config/lm32/lm32.cc (lm32_legitimate_address_p): Likewise.
+ 	* config/loongarch/loongarch.cc (loongarch_legitimate_address_p):
+ 	Likewise.
+ 	* config/m32c/m32c.cc (m32c_legitimate_address_p): Likewise.
+ 	(m32c_addr_space_legitimate_address_p): Likewise.
+ 	* config/m32r/m32r.cc (m32r_legitimate_address_p): Likewise.
+ 	* config/m68k/m68k.cc (m68k_legitimate_address_p): Likewise.
+ 	* config/mcore/mcore.cc (mcore_legitimate_address_p): Likewise.
+ 	* config/microblaze/microblaze-protos.h (tree.h): New include for
+ 	tree_code ERROR_MARK.
+ 	(microblaze_legitimate_address_p): Adjust with extra unnamed
+ 	code_helper argument with default ERROR_MARK.
+ 	* config/microblaze/microblaze.cc (microblaze_legitimate_address_p):
+ 	Likewise.
+ 	* config/mips/mips.cc (mips_legitimate_address_p): Likewise.
+ 	* config/mmix/mmix.cc (mmix_legitimate_address_p): Likewise.
+ 	* config/mn10300/mn10300.cc (mn10300_legitimate_address_p): Likewise.
+ 	* config/moxie/moxie.cc (moxie_legitimate_address_p): Likewise.
+ 	* config/msp430/msp430.cc (msp430_legitimate_address_p): Likewise.
+ 	(msp430_addr_space_legitimate_address_p): Adjust with extra code_helper
+ 	argument with default ERROR_MARK and adjust the call to function
+ 	msp430_legitimate_address_p.
+ 	* config/nds32/nds32.cc (nds32_legitimate_address_p): Adjust with extra
+ 	unnamed code_helper argument with default ERROR_MARK.
+ 	* config/nios2/nios2.cc (nios2_legitimate_address_p): Likewise.
+ 	* config/nvptx/nvptx.cc (nvptx_legitimate_address_p): Likewise.
+ 	* config/or1k/or1k.cc (or1k_legitimate_address_p): Likewise.
+ 	* config/pa/pa.cc (pa_legitimate_address_p): Likewise.
+ 	* config/pdp11/pdp11.cc (pdp11_legitimate_address_p): Likewise.
+ 	* config/pru/pru.cc (pru_addr_space_legitimate_address_p): Likewise.
+ 	* config/riscv/riscv.cc (riscv_legitimate_address_p): Likewise.
+ 	* config/rl78/rl78-protos.h (rl78_as_legitimate_address): Likewise.
+ 	(tree.h): New include for tree_code ERROR_MARK.
+ 	* config/rl78/rl78.cc (rl78_as_legitimate_address): Adjust with
+ 	extra unnamed code_helper argument with default ERROR_MARK.
+ 	* config/rs6000/rs6000.cc (rs6000_legitimate_address_p): Likewise.
+ 	(rs6000_debug_legitimate_address_p): Adjust with extra code_helper
+ 	argument and adjust the call to function rs6000_legitimate_address_p.
+ 	* config/rx/rx.cc (rx_is_legitimate_address): Adjust with extra
+ 	unnamed code_helper argument with default ERROR_MARK.
+ 	* config/s390/s390.cc (s390_legitimate_address_p): Likewise.
+ 	* config/sh/sh.cc (sh_legitimate_address_p): Likewise.
+ 	* config/sparc/sparc.cc (sparc_legitimate_address_p): Likewise.
+ 	* config/v850/v850.cc (v850_legitimate_address_p): Likewise.
+ 	* config/vax/vax.cc (vax_legitimate_address_p): Likewise.
+ 	* config/visium/visium.cc (visium_legitimate_address_p): Likewise.
+ 	* config/xtensa/xtensa.cc (xtensa_legitimate_address_p): Likewise.
+ 	* config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
+ 	Likewise.
+ 	(tree.h): New include for tree_code ERROR_MARK.
+ 	* config/stormy16/stormy16.cc (xstormy16_legitimate_address_p):
+ 	Adjust with extra unnamed code_helper argument with default
+ 	ERROR_MARK.
+ 
+ 2023-08-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features): Check
+ 	EAX for valid subleaf before use CPUID.
+ 
+ 2023-08-08  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use word_mode
+ 	for the temporary when canonicalizing the condition.
+ 
+ 2023-08-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/core-builtins.cc: Cleaned include headers.
+ 	(struct cr_builtins): Added GTY.
+ 	(cr_builtins_ref): Created.
+ 	(builtins_data) Changed to GC root.
+ 	(allocate_builtin_data): Changed.
+ 	Included gt-core-builtins.h.
+ 	* config/bpf/coreout.cc: (bpf_core_extra) Added GTY.
+ 	(bpf_core_extra_ref): Created.
+ 	(bpf_comment_info): Changed to GC root.
+ 	(bpf_core_reloc_add, output_btfext_header, btf_ext_init): Changed.
+ 
+ 2023-08-08  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/110832
+ 	* config/i386/i386.opt (mpartial-vector-fp-math): New option.
+ 	* config/i386/mmx.md (movq_<mode>_to_sse): Do not sanitize
+ 	upper part of V2SFmode register with -fno-trapping-math.
+ 	(<plusminusmult:insn>v2sf3): Enable for ix86_partial_vec_fp_math.
+ 	(divv2sf3): Ditto.
+ 	(<smaxmin:code>v2sf3): Ditto.
+ 	(sqrtv2sf2): Ditto.
+ 	(*mmx_haddv2sf3_low): Ditto.
+ 	(*mmx_hsubv2sf3_low): Ditto.
+ 	(vec_addsubv2sf3): Ditto.
+ 	(vec_cmpv2sfv2si): Ditto.
+ 	(vcond<V2FI:mode>v2sf): Ditto.
+ 	(fmav2sf4): Ditto.
+ 	(fmsv2sf4): Ditto.
+ 	(fnmav2sf4): Ditto.
+ 	(fnmsv2sf4): Ditto.
+ 	(fix_truncv2sfv2si2): Ditto.
+ 	(fixuns_truncv2sfv2si2): Ditto.
+ 	(floatv2siv2sf2): Ditto.
+ 	(floatunsv2siv2sf2): Ditto.
+ 	(nearbyintv2sf2): Ditto.
+ 	(rintv2sf2): Ditto.
+ 	(lrintv2sfv2si2): Ditto.
+ 	(ceilv2sf2): Ditto.
+ 	(lceilv2sfv2si2): Ditto.
+ 	(floorv2sf2): Ditto.
+ 	(lfloorv2sfv2si2): Ditto.
+ 	(btruncv2sf2): Ditto.
+ 	(roundv2sf2): Ditto.
+ 	(lroundv2sfv2si2): Ditto.
+ 	* doc/invoke.texi (x86 Options): Document
+ 	-mpartial-vector-fp-math option.
+ 
+ 2023-08-08  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/103281
+ 	PR tree-optimization/28794
+ 	* vr-values.cc (simplify_using_ranges::simplify_cond_using_ranges_1): Split out
+ 	majority to ...
+ 	(simplify_using_ranges::simplify_compare_using_ranges_1): Here.
+ 	(simplify_using_ranges::simplify_casted_cond): Rename to ...
+ 	(simplify_using_ranges::simplify_casted_compare): This
+ 	and change arguments to take op0 and op1.
+ 	(simplify_using_ranges::simplify_compare_assign_using_ranges_1): New method.
+ 	(simplify_using_ranges::simplify): For tcc_comparison assignments call
+ 	simplify_compare_assign_using_ranges_1.
+ 	* vr-values.h (simplify_using_ranges): Add
+ 	new methods, simplify_compare_using_ranges_1 and simplify_compare_assign_using_ranges_1.
+ 	Rename simplify_casted_cond and simplify_casted_compare and
+ 	update argument types.
+ 
+ 2023-08-08  Andrzej Turko  <andrzej.turko@gmail.com>
+ 
+ 	* genmatch.cc: Log line numbers indirectly.
+ 
+ 2023-08-08  Andrzej Turko  <andrzej.turko@gmail.com>
+ 
+ 	* genmatch.cc: Make sinfo map ordered.
+ 	* Makefile.in: Require the ordered map header for genmatch.o.
+ 
+ 2023-08-08  Andrzej Turko  <andrzej.turko@gmail.com>
+ 
+ 	* ordered-hash-map.h: Add get_or_insert.
+ 	* ordered-hash-map-tests.cc: Use get_or_insert in tests.
+ 
+ 2023-08-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (cond_<optab><mode>): New pattern.
+ 	(cond_len_<optab><mode>): Ditto.
+ 	(cond_fma<mode>): Ditto.
+ 	(cond_len_fma<mode>): Ditto.
+ 	(cond_fnma<mode>): Ditto.
+ 	(cond_len_fnma<mode>): Ditto.
+ 	(cond_fms<mode>): Ditto.
+ 	(cond_len_fms<mode>): Ditto.
+ 	(cond_fnms<mode>): Ditto.
+ 	(cond_len_fnms<mode>): Ditto.
+ 	* config/riscv/riscv-protos.h (riscv_get_v_regno_alignment): Export
+ 	global.
+ 	(enum insn_type): Add new enum type.
+ 	(prepare_ternary_operands): New function.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_masked_fp_mu_insn): Ditto.
+ 	(emit_nonvlmax_tumu_insn): Ditto.
+ 	(emit_nonvlmax_fp_tumu_insn): Ditto.
+ 	(expand_cond_len_binop): Add condtional operations.
+ 	(expand_cond_len_ternop): Ditto.
+ 	(prepare_ternary_operands): New function.
+ 	* config/riscv/riscv.cc (riscv_memmodel_needs_amo_release): Export
+ 	riscv_get_v_regno_alignment as global scope.
+ 	* config/riscv/vector.md: Fix ternary bugs.
+ 
+ 2023-08-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/49955
+ 	* tree-vectorizer.h (_slp_instance::remain_stmts): New.
+ 	(SLP_INSTANCE_REMAIN_STMTS): Likewise.
+ 	* tree-vect-slp.cc (vect_free_slp_instance): Release
+ 	SLP_INSTANCE_REMAIN_STMTS.
+ 	(vect_build_slp_instance): Make the number of lanes of
+ 	a BB reduction even.
+ 	(vectorize_slp_instance_root_stmt): Handle unvectorized
+ 	defs of a BB reduction.
+ 
+ 2023-08-08  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* internal-fn.cc (get_len_internal_fn): New function.
+ 	(DEF_INTERNAL_COND_FN): Ditto.
+ 	(DEF_INTERNAL_SIGNED_COND_FN): Ditto.
+ 	* internal-fn.h (get_len_internal_fn): Ditto.
+ 	* tree-vect-stmts.cc (vectorizable_call): Add CALL auto-vectorization.
+ 
+ 2023-08-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110924
+ 	* tree-ssa-live.h (virtual_operand_live): Update comment.
+ 	* tree-ssa-live.cc (virtual_operand_live::get_live_in): Remove
+ 	optimization, look at each predecessor.
+ 	* tree-ssa-sink.cc (pass_sink_code::execute): Mark backedges.
+ 
+ 2023-08-08  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-v.cc (slide1_sew64_helper): Modify.
+ 
+ 2023-08-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-vls.md (<optab><mode>2): Add VLS neg.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-08-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Add VLS shift.
+ 
+ 2023-08-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-vls.md (<optab><mode>3): Add VLS modes.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* config/i386/i386.cc (ix86_invalid_conversion): Fix grammar.
+ 
+ 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-07  John Ericson  <git@JohnEricson.me>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-07  Alan Modra  <amodra@gmail.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-07  Alexander von Gluck IV  <kallisti5@unixzen.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-08-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Allow
+ 	VOIDmode operands to conditional before canonicalization.
+ 
+ 2023-08-07  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* regcprop.cc (maybe_copy_reg_attrs): Remove unnecessary function.
+ 	(find_oldest_value_reg): Inline stack_pointer_rtx check.
+ 	(copyprop_hardreg_forward_1): Inline stack_pointer_rtx check.
+ 
+ 2023-08-07  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/110378
+ 	* ipa-param-manipulation.h (class ipa_param_body_adjustments): New
+ 	members get_ddef_if_exists_and_is_used and mark_clobbers_dead.
+ 	* ipa-sra.cc (isra_track_scalar_value_uses): Ignore clobbers.
+ 	(ptr_parm_has_nonarg_uses): Likewise.
+ 	* ipa-param-manipulation.cc
+ 	(ipa_param_body_adjustments::get_ddef_if_exists_and_is_used): New.
+ 	(ipa_param_body_adjustments::mark_dead_statements): Move initial
+ 	checks to get_ddef_if_exists_and_is_used.
+ 	(ipa_param_body_adjustments::mark_clobbers_dead): New.
+ 	(ipa_param_body_adjustments::common_initialization): Call
+ 	mark_clobbers_dead when splitting.
+ 
+ 2023-08-07  Raphael Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_int_scc): Add invert_ptr
+ 	as an argument and pass it to riscv_emit_int_order_test.
+ 	(riscv_expand_conditional_move): Handle cases where the condition
+ 	is not EQ/NE or the second argument to the conditional is not
+ 	(const_int 0).
+ 	* config/riscv/riscv-protos.h (riscv_expand_int_scc): Update prototype.
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2023-08-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109959
+ 	* match.pd (`(a > 1) ? 0 : (cast)a`, `(a <= 1) & (cast)a`):
+ 	New patterns.
+ 
+ 2023-08-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-sink.cc (pass_sink_code::execute): Do not
+ 	calculate post-dominators.  Calculate RPO on the inverted
+ 	graph and process blocks in that order.
+ 
+ 2023-08-07  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110926
+ 	* config/i386/i386-protos.h
+ 	(vpternlog_redundant_operand_mask): Adjust parameter type.
+ 	* config/i386/i386.cc (vpternlog_redundant_operand_mask): Use
+ 	INTVAL instead of XINT, also adjust parameter type from rtx*
+ 	to rtx since the function only needs operands[4] in vpternlog
+ 	pattern.
+ 	(substitute_vpternlog_operands): Pass operands[4] instead of
+ 	operands to vpternlog_redundant_operand_mask.
+ 	* config/i386/sse.md: Ditto.
+ 
+ 2023-08-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_slp_region): Save/restore vect_location
+ 	around dumping code.
+ 
+ 2023-08-07  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110762
+ 	* config/i386/mmx.md (<insn><mode>3): Changed from define_insn
+ 	to define_expand and break into ..
+ 	(<insn>v4hf3): .. this.
+ 	(divv4hf3): .. this.
+ 	(<insn>v2hf3): .. this.
+ 	(divv2hf3): .. this.
+ 	(movd_v2hf_to_sse): New define_expand.
+ 	(movq_<mode>_to_sse): Extend to V4HFmode.
+ 	(mmxdoublevecmode): Ditto.
+ 	(V2FI_V4HF): New mode iterator.
+ 	* config/i386/sse.md (*vec_concatv4sf): Extend to hanlde V8HF
+ 	by using mode iterator V4SF_V8HF, renamed to ..
+ 	(*vec_concat<mode>): .. this.
+ 	(*vec_concatv4sf_0): Extend to handle V8HF by using mode
+ 	iterator V4SF_V8HF, renamed to ..
+ 	(*vec_concat<mode>_0): .. this.
+ 	(*vec_concatv8hf_movss): New define_insn.
+ 	(V4SF_V8HF): New mode iterator.
+ 
+ 2023-08-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern): Add op vectype.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/mmx.md (*mmx_pinsrd): Drop "prefix_data16".
+ 	(*mmx_pinsrb): Likewise.
+ 	(*mmx_pextrb): Likewise.
+ 	(*mmx_pextrb_zext): Likewise.
+ 	(mmx_pshufbv8qi3): Likewise.
+ 	(mmx_pshufbv4qi3): Likewise.
+ 	(mmx_pswapdv2si2): Likewise.
+ 	(*pinsrb): Likewise.
+ 	(*pextrb): Likewise.
+ 	(*pextrb_zext): Likewise.
+ 	* config/i386/sse.md (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
+ 	(*sse2_eq<mode>3): Likewise.
+ 	(*sse2_gt<mode>3): Likewise.
+ 	(<sse2p4_1>_pinsr<ssemodesuffix>): Likewise.
+ 	(*vec_extract<mode>): Likewise.
+ 	(*vec_extract<PEXTR_MODE12:mode>_zext): Likewise.
+ 	(*vec_extractv16qi_zext): Likewise.
+ 	(ssse3_ph<plusminus_mnemonic>wv8hi3): Likewise.
+ 	(ssse3_pmaddubsw128): Likewise.
+ 	(*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Likewise.
+ 	(<ssse3_avx2>_pshufb<mode>3<mask_name>): Likewise.
+ 	(<ssse3_avx2>_psign<mode>3): Likewise.
+ 	(<ssse3_avx2>_palignr<mode>): Likewise.
+ 	(*abs<mode>2): Likewise.
+ 	(sse4_2_pcmpestr): Likewise.
+ 	(sse4_2_pcmpestri): Likewise.
+ 	(sse4_2_pcmpestrm): Likewise.
+ 	(sse4_2_pcmpestr_cconly): Likewise.
+ 	(sse4_2_pcmpistr): Likewise.
+ 	(sse4_2_pcmpistri): Likewise.
+ 	(sse4_2_pcmpistrm): Likewise.
+ 	(sse4_2_pcmpistr_cconly): Likewise.
+ 	(vgf2p8affineinvqb_<mode><mask_name>): Likewise.
+ 	(vgf2p8affineqb_<mode><mask_name>): Likewise.
+ 	(vgf2p8mulb_<mode><mask_name>): Likewise.
+ 	(*<code>v8hi3 [smaxmin]): Drop "prefix_data16" and
+ 	"prefix_extra".
+ 	(*<code>v16qi3 [umaxmin]): Likewise.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386.md (sse4_1_round<mode>2): Make
+ 	"length_immediate" uniformly 1.
+ 	* config/i386/mmx.md (mmx_pblendvb_v8qi): Likewise.
+ 	(mmx_pblendvb_<mode>): Likewise.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md
+ 	(<avx512>_<complexopname>_<mode><maskc_name><round_name>): Add
+ 	"prefix" attribute.
+ 	(avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
+ 	Likewise.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (xop_phadd<u>bw): Add "prefix",
+ 	"prefix_extra", and "mode" attributes.
+ 	(xop_phadd<u>bd): Likewise.
+ 	(xop_phadd<u>bq): Likewise.
+ 	(xop_phadd<u>wd): Likewise.
+ 	(xop_phadd<u>wq): Likewise.
+ 	(xop_phadd<u>dq): Likewise.
+ 	(xop_phsubbw): Likewise.
+ 	(xop_phsubwd): Likewise.
+ 	(xop_phsubdq): Likewise.
+ 	(xop_rotl<mode>3): Add "prefix" and "prefix_extra" attributes.
+ 	(xop_rotr<mode>3): Likewise.
+ 	(xop_frcz<mode>2): Likewise.
+ 	(*xop_vmfrcz<mode>2): Likewise.
+ 	(xop_vrotl<mode>3): Add "prefix" attribute. Change
+ 	"prefix_extra" to 1.
+ 	(xop_sha<mode>3): Likewise.
+ 	(xop_shl<mode>3): Likewise.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md
+ 	(*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Drop
+ 	"prefix_extra".
+ 	(avx512dq_vextract<shuffletype>64x2_1_mask): Likewise.
+ 	(*avx512dq_vextract<shuffletype>64x2_1): Likewise.
+ 	(avx512f_vextract<shuffletype>32x4_1_mask): Likewise.
+ 	(*avx512f_vextract<shuffletype>32x4_1): Likewise.
+ 	(vec_extract_lo_<mode>_mask [AVX512 forms]): Likewise.
+ 	(vec_extract_lo_<mode> [AVX512 forms]): Likewise.
+ 	(vec_extract_hi_<mode>_mask [AVX512 forms]): Likewise.
+ 	(vec_extract_hi_<mode> [AVX512 forms]): Likewise.
+ 	(@vec_extract_lo_<mode> [AVX512 forms]): Likewise.
+ 	(@vec_extract_hi_<mode> [AVX512 forms]): Likewise.
+ 	(vec_extract_lo_v64qi): Likewise.
+ 	(vec_extract_hi_v64qi): Likewise.
+ 	(*vec_widen_umult_even_v16si<mask_name>): Likewise.
+ 	(*vec_widen_smult_even_v16si<mask_name>): Likewise.
+ 	(*avx512f_<code><mode>3<mask_name>): Likewise.
+ 	(*vec_extractv4ti): Likewise.
+ 	(avx512bw_<code>v32qiv32hi2<mask_name>): Likewise.
+ 	(<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Likewise.
+ 	Add "length_immediate".
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386.md (@rdrand<mode>): Add "prefix_0f". Drop
+ 	"prefix_extra".
+ 	(@rdseed<mode>): Likewise.
+ 	* config/i386/mmx.md (<code><mode>3 [smaxmin and umaxmin cases]):
+ 	Adjust "prefix_extra".
+ 	* config/i386/sse.md (@vec_set<mode>_0): Likewise.
+ 	(*sse4_1_<code><mode>3<mask_name>): Likewise.
+ 	(*avx2_eq<mode>3): Likewise.
+ 	(avx2_gt<mode>3): Likewise.
+ 	(<sse2p4_1>_pinsr<ssemodesuffix>): Likewise.
+ 	(*vec_extract<mode>): Likewise.
+ 	(<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386.md (rd<fsgs>base<mode>): Add "prefix_0f" and
+ 	"prefix_rep". Drop "prefix_extra".
+ 	(wr<fsgs>base<mode>): Likewise.
+ 	(ptwrite<mode>): Likewise.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386.md (isa): Move up.
+ 	(length_immediate): Handle "fma4".
+ 	(prefix): Handle "ssemuladd".
+ 	* config/i386/sse.md (*fma_fmadd_<mode>): Add "prefix" attribute.
+ 	(<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
+ 	Likewise.
+ 	(<avx512>_fmadd_<mode>_mask<round_name>): Likewise.
+ 	(<avx512>_fmadd_<mode>_mask3<round_name>): Likewise.
+ 	(<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>):
+ 	Likewise.
+ 	(<avx512>_fmsub_<mode>_mask<round_name>): Likewise.
+ 	(<avx512>_fmsub_<mode>_mask3<round_name>): Likewise.
+ 	(*fma_fnmadd_<mode>): Likewise.
+ 	(<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>):
+ 	Likewise.
+ 	(<avx512>_fnmadd_<mode>_mask<round_name>): Likewise.
+ 	(<avx512>_fnmadd_<mode>_mask3<round_name>): Likewise.
+ 	(<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>):
+ 	Likewise.
+ 	(<avx512>_fnmsub_<mode>_mask<round_name>): Likewise.
+ 	(<avx512>_fnmsub_<mode>_mask3<round_name>): Likewise.
+ 	(<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
+ 	Likewise.
+ 	(<avx512>_fmaddsub_<mode>_mask<round_name>): Likewise.
+ 	(<avx512>_fmaddsub_<mode>_mask3<round_name>): Likewise.
+ 	(<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
+ 	Likewise.
+ 	(<avx512>_fmsubadd_<mode>_mask<round_name>): Likewise.
+ 	(<avx512>_fmsubadd_<mode>_mask3<round_name>): Likewise.
+ 	(*fmai_fmadd_<mode>): Likewise.
+ 	(*fmai_fmsub_<mode>): Likewise.
+ 	(*fmai_fnmadd_<mode><round_name>): Likewise.
+ 	(*fmai_fnmsub_<mode><round_name>): Likewise.
+ 	(avx512f_vmfmadd_<mode>_mask<round_name>): Likewise.
+ 	(avx512f_vmfmadd_<mode>_mask3<round_name>): Likewise.
+ 	(avx512f_vmfmadd_<mode>_maskz_1<round_name>): Likewise.
+ 	(*avx512f_vmfmsub_<mode>_mask<round_name>): Likewise.
+ 	(avx512f_vmfmsub_<mode>_mask3<round_name>): Likewise.
+ 	(*avx512f_vmfmsub_<mode>_maskz_1<round_name>): Likewise.
+ 	(avx512f_vmfnmadd_<mode>_mask<round_name>): Likewise.
+ 	(avx512f_vmfnmadd_<mode>_mask3<round_name>): Likewise.
+ 	(avx512f_vmfnmadd_<mode>_maskz_1<round_name>): Likewise.
+ 	(*avx512f_vmfnmsub_<mode>_mask<round_name>): Likewise.
+ 	(*avx512f_vmfnmsub_<mode>_mask3<round_name>): Likewise.
+ 	(*avx512f_vmfnmsub_<mode>_maskz_1<round_name>): Likewise.
+ 	(*fma4i_vmfmadd_<mode>): Likewise.
+ 	(*fma4i_vmfmsub_<mode>): Likewise.
+ 	(*fma4i_vmfnmadd_<mode>): Likewise.
+ 	(*fma4i_vmfnmsub_<mode>): Likewise.
+ 	(fma_<complexopname>_<mode><sdc_maskz_name><round_name>): Likewise.
+ 	(<avx512>_<complexopname>_<mode>_mask<round_name>): Likewise.
+ 	(avx512fp16_fma_<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
+ 	Likewise.
+ 	(avx512fp16_<complexopname>sh_v8hf_mask<round_name>): Likewise.
+ 	(xop_p<macs><ssemodesuffix><ssemodesuffix>): Likewise.
+ 	(xop_p<macs>dql): Likewise.
+ 	(xop_p<macs>dqh): Likewise.
+ 	(xop_p<macs>wd): Likewise.
+ 	(xop_p<madcs>wd): Likewise.
+ 	(fma_<complexpairopname>_<mode>_pair): Likewise. Add "mode" attribute.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386.md (length_immediate): Handle "sse4arg".
+ 	(prefix): Likewise.
+ 	(*xop_pcmov_<mode>): Add "mode" attribute.
+ 	* config/i386/mmx.md (*xop_maskcmp<mode>3): Drop "prefix_data16",
+ 	"prefix_rep", "prefix_extra", and "length_immediate" attributes.
+ 	(*xop_maskcmp_uns<mode>3): Likewise. Switch "type" to "sse4arg".
+ 	(*xop_pcmov_<mode>): Add "mode" attribute.
+ 	* config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Add "mode"
+ 	attribute.
+ 	(xop_maskcmp<mode>3): Drop "prefix_data16", "prefix_rep",
+ 	"prefix_extra", and "length_immediate" attributes.
+ 	(xop_maskcmp_uns<mode>3): Likewise. Switch "type" to "sse4arg".
+ 	(xop_maskcmp_uns2<mode>3): Drop "prefix_data16", "prefix_extra",
+ 	and "length_immediate" attributes. Switch "type" to "sse4arg".
+ 	(xop_pcom_tf<mode>3): Likewise.
+ 	(xop_vpermil2<mode>3): Drop "length_immediate" attribute.
+ 
+ 2023-08-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386.md (prefix_extra): Correct comment. Fold
+ 	cases yielding 2 into ones yielding 1.
+ 
+ 2023-08-07  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/106293
+ 	* tree-vect-loop-manip.cc (vect_loop_versioning): Fix profile update.
+ 	* tree-vect-loop.cc (vect_transform_loop): Likewise.
+ 
+ 2023-08-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/96695
+ 	* match.pd (min_value, max_value): Extend to
+ 	pointer types too.
+ 
+ 2023-08-06  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/cpuid.h (__get_cpuid_count, __get_cpuid_max): Add
+ 	__builtin_expect that CPU likely supports cpuid.
+ 
+ 2023-08-06  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-loop-distribution.cc (loop_distribution::execute): Disable
+ 	distribution for loops with estimated iterations 0.
+ 
+ 2023-08-06  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Fix profile update of peeled epilogues.
+ 
+ 2023-08-04  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Recognize
+ 	more Zicond patterns.  Fix whitespace typo.
+ 	(riscv_rtx_costs): Remove accidental code duplication.
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2023-08-04  Yan Simonaytes  <simonaytes.yan@ispras.ru>
+ 
+ 	PR target/110202
+ 	* config/i386/i386-protos.h
+ 	(vpternlog_redundant_operand_mask): Declare.
+ 	(substitute_vpternlog_operands): Declare.
+ 	* config/i386/i386.cc
+ 	(vpternlog_redundant_operand_mask): New helper.
+ 	(substitute_vpternlog_operands): New function.  Use them...
+ 	* config/i386/sse.md: ... here in new VPTERNLOG define_splits.
+ 
+ 2023-08-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* expmed.cc (extract_bit_field_1): Document that an UNSIGNEDP
+ 	value of -1 is equivalent to don't care.
+ 	(extract_integral_bit_field): Indicate that we don't require
+ 	the most significant word to be zero extended, if we're about
+ 	to sign extend it.
+ 	(extract_fixed_bit_field_1): Document that an UNSIGNEDP value
+ 	of -1 is equivalent to don't care.  Don't clear the most
+ 	significant bits with AND mask when UNSIGNEDP is -1.
+ 
+ 2023-08-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/sse.md (define_split): Convert highpart:DF extract
+ 	from V2DFmode register into a sse2_storehpd instruction.
+ 	(define_split): Likewise, convert lowpart:DF extract from V2DF
+ 	register into a sse2_storelpd instruction.
+ 
+ 2023-08-04  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* doc/invoke.texi (-Wflex-array-member-not-at-end): Document
+ 	new option.
+ 
+ 2023-08-04  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-lives.cc (process_bb_lives): Check input insn pattern hard regs
+ 	against early clobber hard regs.
+ 
+ 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* doc/extend.texi: Document it.
+ 
+ 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/106346
+ 	* config/aarch64/aarch64-simd.md (vec_widen_<sur>shiftl_lo_<mode>,
+ 	vec_widen_<sur>shiftl_hi_<mode>): Remove.
+ 	(aarch64_<sur>shll<mode>_internal): Renamed to...
+ 	(aarch64_<su>shll<mode>): .. This.
+ 	(aarch64_<sur>shll2<mode>_internal): Renamed to...
+ 	(aarch64_<su>shll2<mode>): .. This.
+ 	(aarch64_<sur>shll_n<mode>, aarch64_<sur>shll2_n<mode>): Re-use new
+ 	optabs.
+ 	* config/aarch64/constraints.md (D2, DL): New.
+ 	* config/aarch64/predicates.md (aarch64_simd_shll_imm_vec): New.
+ 
+ 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* gensupport.cc (conlist): Support length 0 attribute.
+ 
+ 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_bool_compound_p): New.
+ 	(aarch64_adjust_stmt_cost, aarch64_vector_costs::count_ops): Use it.
+ 
+ 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_multiply_add_p): Update handling
+ 	of constants.
+ 	(aarch64_adjust_stmt_cost): Use it.
+ 	(aarch64_vector_costs::count_ops): Likewise.
+ 	(aarch64_vector_costs::add_stmt_cost): Pass vinfo to
+ 	aarch64_adjust_stmt_cost.
+ 
+ 2023-08-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110838
+ 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern):
+ 	Fix right-shift value sanitizing.  Properly emit external
+ 	def mangling in the preheader rather than in the pattern
+ 	def sequence where it will fail vectorizing.
+ 
+ 2023-08-04  Matthew Malcomson  <matthew.malcomson@arm.com>
+ 
+ 	PR middle-end/110316
+ 	PR middle-end/9903
+ 	* timevar.cc (NANOSEC_PER_SEC, TICKS_TO_NANOSEC,
+ 	CLOCKS_TO_NANOSEC, nanosec_to_floating_sec, percent_of): New.
+ 	(TICKS_TO_MSEC, CLOCKS_TO_MSEC): Remove these macros.
+ 	(timer::validate_phases): Use integral arithmetic to check
+ 	validity.
+ 	(timer::print_row, timer::print): Convert from integral
+ 	nanoseconds to floating	point seconds before printing.
+ 	(timer::all_zero): Change limit to nanosec count instead of
+ 	fractional count of seconds.
+ 	(make_json_for_timevar_time_def): Convert from integral
+ 	nanoseconds to floating point seconds before recording.
+ 	* timevar.h (struct timevar_time_def): Update all measurements
+ 	to use uint64_t nanoseconds rather than seconds stored in a
+ 	double.
+ 
+ 2023-08-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110838
+ 	* match.pd (([rl]shift @0 out-of-bounds) -> zero): Restrict
+ 	the arithmetic right-shift case to non-negative operands.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfmacc_frm): New class for vfmacc frm.
+ 	(vfmacc_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmacc_frm): New function definition.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_ternop_insn): Add frm operand support.
+ 	* config/riscv/vector.md: Add vfmuladd to frm_mode.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfnmacc_frm): New class for vfnmacc.
+ 	(vfnmacc_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfnmacc_frm): New function definition.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfmsac_frm): New class for vfmsac frm.
+ 	(vfmsac_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmsac_frm): New function definition.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfnmsac_frm): New class for vfnmsac frm.
+ 	(vfnmsac_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfnmsac_frm): New function definition.
+ 
+ 2023-08-04  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def (avr64dd14, avr64dd20, avr64dd28, avr64dd32)
+ 	(avr64ea28, avr64ea32, avr64ea48, attiny424, attiny426, attiny427)
+ 	(attiny824, attiny826, attiny827, attiny1624, attiny1626, attiny1627)
+ 	(attiny3224, attiny3226, attiny3227, avr16dd14, avr16dd20, avr16dd28)
+ 	(avr16dd32, avr32dd14, avr32dd20, avr32dd28, avr32dd32)
+ 	(attiny102, attiny104): New devices.
+ 	* doc/avr-mmcu.texi: Regenerate.
+ 
+ 2023-08-04  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def (avr128d*, avr64d*): Fix their FLASH_SIZE
+ 	and PM_OFFSET entries.
+ 
+ 2023-08-04  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110874
+ 	* gimple-match-head.cc (gimple_bit_not_with_nop): New declaration.
+ 	(gimple_maybe_cmp): Likewise.
+ 	(gimple_bitwise_inverted_equal_p): Rewrite to use gimple_bit_not_with_nop
+ 	and gimple_maybe_cmp instead of being recursive.
+ 	* match.pd (bit_not_with_nop): New match pattern.
+ 	(maybe_cmp): Likewise.
+ 
+ 2023-08-04  Drew Ross  <drross@redhat.com>
+ 
+ 	PR middle-end/101955
+ 	* match.pd ((signed x << c) >> c): New canonicalization.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfnmsac_frm): New class for vfnmsac frm.
+ 	(vfnmsac_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfnmsac_frm): New function definition.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfmsac_frm): New class for vfmsac frm.
+ 	(vfmsac_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmsac_frm): New function definition.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfnmacc_frm): New class for vfnmacc.
+ 	(vfnmacc_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfnmacc_frm): New function definition.
+ 
+ 2023-08-04  Hao Liu  <hliu@os.amperecomputing.com>
+ 
+ 	PR target/110625
+ 	* config/aarch64/aarch64.cc (aarch64_force_single_cycle): check
+ 	STMT_VINFO_REDUC_DEF to avoid failures in info_for_reduction.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class vfmacc_frm): New class for vfmacc frm.
+ 	(vfmacc_frm_obj): New declaration.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmacc_frm): New function definition.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_ternop_insn): Add frm operand support.
+ 	* config/riscv/vector.md: Add vfmuladd to frm_mode.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(vfwmul_frm_obj): New declaration.
+ 	(vfwmul_frm): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h:
+ 	(vfwmul_frm): Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwmul_frm): New function definition.
+ 	* config/riscv/vector.md: (frm_mode) Add vfwmul to frm_mode.
+ 
+ 2023-08-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(binop_frm): New declaration.
+ 	(reverse_binop_frm): Likewise.
+ 	(BASE): Likewise.
+ 	* config/riscv/riscv-vector-builtins-bases.h:
+ 	(vfdiv_frm): New extern declaration.
+ 	(vfrdiv_frm): Likewise.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfdiv_frm): New function definition.
+ 	(vfrdiv_frm): Likewise.
+ 	* config/riscv/vector.md: Add vfdiv to frm_mode.
+ 
+ 2023-08-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-cfg.cc (print_loop_info): Print entry count.
+ 
+ 2023-08-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-split.cc (split_loop): Update estimated iteration counts.
+ 
+ 2023-08-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR bootstrap/110857
+ 	* cfgloopmanip.cc (scale_loop_profile): (Un)initialize
+ 	unadjusted_exit_count.
+ 
+ 2023-08-03  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Read global
+ 	value/mask.
+ 
+ 2023-08-03  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Recognize
+ 	various Zicond patterns.
+ 	* config/riscv/riscv.md (mov<mode>cc): Allow TARGET_ZICOND.  Use
+ 	sfb_alu_operand for both arms of the conditional move.
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2023-08-03  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	PR target/107844
+ 	PR target/107479
+ 	PR target/107480
+ 	PR target/107481
+ 	* config.gcc: Added core-builtins.cc and .o files.
+ 	* config/bpf/bpf-passes.def: Removed file.
+ 	* config/bpf/bpf-protos.h (bpf_add_core_reloc,
+ 	bpf_replace_core_move_operands): New prototypes.
+ 	* config/bpf/bpf.cc (enum bpf_builtins, is_attr_preserve_access,
+ 	maybe_make_core_relo, bpf_core_field_info, bpf_core_compute,
+ 	bpf_core_get_index, bpf_core_new_decl, bpf_core_walk,
+ 	bpf_is_valid_preserve_field_info_arg, is_attr_preserve_access,
+ 	handle_attr_preserve, pass_data_bpf_core_attr, pass_bpf_core_attr):
+ 	Removed.
+ 	(def_builtin, bpf_expand_builtin, bpf_resolve_overloaded_builtin): Changed.
+ 	* config/bpf/bpf.md (define_expand mov<MM:mode>): Changed.
+ 	(mov_reloc_core<mode>): Added.
+ 	* config/bpf/core-builtins.cc (struct cr_builtin, enum
+ 	cr_decision struct cr_local, struct cr_final, struct
+ 	core_builtin_helpers, enum bpf_plugin_states): Added types.
+ 	(builtins_data, core_builtin_helpers, core_builtin_type_defs):
+ 	Added variables.
+ 	(allocate_builtin_data, get_builtin-data, search_builtin_data,
+ 	remove_parser_plugin, compare_same_kind, compare_same_ptr_expr,
+ 	compare_same_ptr_type, is_attr_preserve_access, core_field_info,
+ 	bpf_core_get_index, compute_field_expr,
+ 	pack_field_expr_for_access_index, pack_field_expr_for_preserve_field,
+ 	process_field_expr, pack_enum_value, process_enum_value, pack_type,
+ 	process_type, bpf_require_core_support, make_core_relo, read_kind,
+ 	kind_access_index, kind_preserve_field_info, kind_enum_value,
+ 	kind_type_id, kind_preserve_type_info, get_core_builtin_fndecl_for_type,
+ 	bpf_handle_plugin_finish_type, bpf_init_core_builtins,
+ 	construct_builtin_core_reloc, bpf_resolve_overloaded_core_builtin,
+ 	bpf_expand_core_builtin, bpf_add_core_reloc,
+ 	bpf_replace_core_move_operands): Added functions.
+ 	* config/bpf/core-builtins.h (enum bpf_builtins): Added.
+ 	(bpf_init_core_builtins, bpf_expand_core_builtin,
+ 	bpf_resolve_overloaded_core_builtin): Added functions.
+ 	* config/bpf/coreout.cc (struct bpf_core_extra): Added.
+ 	(bpf_core_reloc_add, output_asm_btfext_core_reloc): Changed.
+ 	* config/bpf/coreout.h (bpf_core_reloc_add) Changed prototype.
+ 	* config/bpf/t-bpf: Added core-builtins.o.
+ 	* doc/extend.texi: Added documentation for new BPF builtins.
+ 
+ 2023-08-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
+ 	ranges to the call to relation_fold_and_or.
+ 	(fold_using_range::relation_fold_and_or): Add op1 and op2 ranges.
+ 	(fur_source::register_outgoing_edges): Add op1 and op2 ranges.
+ 	* gimple-range-fold.h (relation_fold_and_or): Adjust params.
+ 	* gimple-range-gori.cc (gori_compute::compute_operand_range): Add
+ 	a varying op1 and op2 to call.
+ 	* range-op-float.cc (range_operator::op1_op2_relation): New dafaults.
+ 	(operator_equal::op1_op2_relation): New float version.
+ 	(operator_not_equal::op1_op2_relation): Ditto.
+ 	(operator_lt::op1_op2_relation): Ditto.
+ 	(operator_le::op1_op2_relation): Ditto.
+ 	(operator_gt::op1_op2_relation): Ditto.
+ 	(operator_ge::op1_op2_relation) Ditto.
+ 	* range-op-mixed.h (operator_equal::op1_op2_relation): New float
+ 	prototype.
+ 	(operator_not_equal::op1_op2_relation): Ditto.
+ 	(operator_lt::op1_op2_relation): Ditto.
+ 	(operator_le::op1_op2_relation): Ditto.
+ 	(operator_gt::op1_op2_relation): Ditto.
+ 	(operator_ge::op1_op2_relation): Ditto.
+ 	* range-op.cc (range_op_handler::op1_op2_relation): Dispatch new
+ 	variations.
+ 	(range_operator::op1_op2_relation): Add extra params.
+ 	(operator_equal::op1_op2_relation): Ditto.
+ 	(operator_not_equal::op1_op2_relation): Ditto.
+ 	(operator_lt::op1_op2_relation): Ditto.
+ 	(operator_le::op1_op2_relation): Ditto.
+ 	(operator_gt::op1_op2_relation): Ditto.
+ 	(operator_ge::op1_op2_relation): Ditto.
+ 	* range-op.h (range_operator): New prototypes.
+ 	(range_op_handler): Ditto.
+ 
+ 2023-08-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (gori_compute::compute_operand1_range):
+ 	Use identity relation.
+ 	(gori_compute::compute_operand2_range): Ditto.
+ 	* value-relation.cc (get_identity_relation): New.
+ 	* value-relation.h (get_identity_relation): New prototype.
+ 
+ 2023-08-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-range.h (Value_Range::set_varying): Set the type.
+ 	(Value_Range::set_zero): Ditto.
+ 	(Value_Range::set_nonzero): Ditto.
+ 
+ 2023-08-03  Jeff Law  <jeffreyalaw@gmail.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Remove errant hunk from
+ 	recent commit.
+ 
+ 2023-08-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Add vfsub.
+ 
+ 2023-08-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* poly-int.h (can_div_trunc_p): Succeed for more boundary conditions.
+ 
+ 2023-08-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110838
+ 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern):
+ 	Adjust the shift operand of RSHIFT_EXPRs.
+ 
+ 2023-08-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110702
+ 	* tree-ssa-loop-ivopts.cc (rewrite_use_address): When
+ 	we created a NULL pointer based access rewrite that to
+ 	a LEA.
+ 
+ 2023-08-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-sink.cc: Include tree-ssa-live.h.
+ 	(pass_sink_code::execute): Instantiate virtual_operand_live
+ 	and pass it down.
+ 	(sink_code_in_bb): Pass down virtual_operand_live.
+ 	(statement_sink_location): Get virtual_operand_live and
+ 	verify we are not sinking loads across stores by looking up
+ 	the live virtual operand at the sink location.
+ 
+ 2023-08-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-live.h (class virtual_operand_live): New.
+ 	* tree-ssa-live.cc (virtual_operand_live::init): New.
+ 	(virtual_operand_live::get_live_in): Likewise.
+ 	(virtual_operand_live::get_live_out): Likewise.
+ 
+ 2023-08-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* passes.def: Exchange loop splitting and final value
+ 	replacement passes.
+ 
+ 2023-08-03  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
+ 	New function which handles bswap patterns for vec_perm_const.
+ 	(vectorize_vec_perm_const_1): Call new function.
+ 	* config/s390/vector.md (*bswap<mode>): Fix operands in output
+ 	template.
+ 	(*vstbr<mode>): New insn.
+ 
+ 2023-08-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/vxworks-smp.opt: New.  Introduce -msmp.
+ 	* config.gcc: Enable it on powerpc* vxworks prior to 7r*.
+ 	* config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Choose
+ 	lib_smp when -msmp is present in the command line.
+ 	* doc/invoke.texi: Document it.
+ 
+ 2023-08-03  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_save_reg_p): Save ra for leaf
+ 	when enabling -mno-omit-leaf-frame-pointer
+ 	(riscv_option_override): Override omit-frame-pointer.
+ 	(riscv_frame_pointer_required): Save s0 for non-leaf function
+ 	(TARGET_FRAME_POINTER_REQUIRED): Override defination
+ 	* config/riscv/riscv.opt: Add option support.
+ 
+ 2023-08-03  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110792
+ 	* config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits
+ 	place operand in a register before gen_<insn>64ti2_doubleword.
+ 	(<any_rotate>di3): Likewise, for rotations by 32 bits, place
+ 	operand in a register before gen_<insn>32di2_doubleword.
+ 	(<any_rotate>32di2_doubleword): Constrain operand to be in register.
+ 	(<any_rotate>64ti2_doubleword): Likewise.
+ 
+ 2023-08-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(vfmul_frm_obj): New declaration.
+ 	(Base): Likewise.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Likewise.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfmul_frm): New function definition.
+ 	* config/riscv/vector.md: Add vfmul to frm_mode.
+ 
+ 2023-08-03  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`~X & X`): Check that the types match.
+ 	(`~x | x`, `~x ^ x`): Likewise.
+ 
+ 2023-08-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.h: Remove
+ 	redudant declaration.
+ 
+ 2023-08-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (BASE): Add
+ 	vfwsub frm.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Add declaration.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vfwsub_frm):
+ 	Add vfwsub function definitions.
+ 
+ 2023-08-02  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	PR rtl-optimization/110867
+ 	* combine.cc (simplify_compare_const): Try the optimization only
+ 	in case the constant fits into the comparison mode.
+ 
+ 2023-08-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/zicond.md: Remove incorrect zicond patterns and
+ 	renumber/rename them.
+ 	(zero.nez.<GPR:MODE><X:mode>.opt2): Fix output string.
+ 
+ 2023-08-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-phinodes.h (add_phi_node_to_bb): Remove.
+ 	* tree-phinodes.cc  (add_phi_node_to_bb): Make static.
+ 
+ 2023-08-02  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (vec_dupv2df<mask_name>): Fold the middle
+ 	two of the alternatives.
+ 
+ 2023-08-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/92335
+ 	* tree-ssa-sink.cc (select_best_block): Before loop
+ 	optimizations avoid sinking unconditional loads/stores
+ 	in innermost loops to conditional executed places.
+ 
+ 2023-08-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* gimple-match-head.cc (gimple_bitwise_inverted_equal_p): Valueize
+ 	the comparison operands before comparing them.
+ 
+ 2023-08-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`~X & X`, `~X | X`): Move over to
+ 	use bitwise_inverted_equal_p, removing :c as bitwise_inverted_equal_p
+ 	handles that already.
+ 	Remove range test simplifications to true/false as they
+ 	are now handled by these patterns.
+ 
+ 2023-08-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Mark's cond
+ 	statement's lhs and rhs to check if trivial dead.
+ 	Rename inserted_exprs to exprs_maybe_dce; also move it so
+ 	bitmap is not allocated if not needed.
+ 
+ 2023-08-02  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class widen_binop_frm): New class for binop frm.
+ 	(BASE): Add vfwadd_frm.
+ 	* config/riscv/riscv-vector-builtins-bases.h: New declaration.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfwadd_frm): New function definition.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(BASE_NAME_MAX_LEN): New macro.
+ 	(struct alu_frm_def): Leverage new base class.
+ 	(struct build_frm_base): New build base for frm.
+ 	(struct widen_alu_frm_def): New struct for widen alu frm.
+ 	(SHAPE): Add widen_alu_frm shape.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: New declaration.
+ 	* config/riscv/vector.md (frm_mode): Add vfwalu type.
+ 
+ 2023-08-02  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloop.h (loop_count_in): Declare.
+ 	* cfgloopanal.cc (expected_loop_iterations_by_profile): Use count_in.
+ 	(loop_count_in): Move here from ...
+ 	* cfgloopmanip.cc (loop_count_in): ... here.
+ 	(scale_loop_profile): Improve dumping; cast iteration bound to sreal.
+ 
+ 2023-08-02  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfg.cc (scale_strictly_dominated_blocks): New function.
+ 	* cfg.h (scale_strictly_dominated_blocks): Declare.
+ 	* tree-cfg.cc (fold_loop_internal_call): Fixup CFG profile.
+ 
+ 2023-08-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/110587
+ 	* lra-spills.cc (return_regno_p): Remove.
+ 	(regno_in_use_p): Likewise.
+ 	(lra_final_code_change): Do not remove noop moves
+ 	between hard registers.
+ 
+ 2023-08-02  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/81904
+ 	* config/i386/sse.md (vec_fmaddsub<mode>4): Extend to vector
+ 	HFmode, use mode iterator VFH instead.
+ 	(vec_fmsubadd<mode>4): Ditto.
+ 	(<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
+ 	Remove scalar mode from iterator, use VFH_AVX512VL instead.
+ 	(<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
+ 	Ditto.
+ 
+ 2023-08-02  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (*avx2_lddqu_inserti_to_bcasti): New
+ 	pre_reload define_insn_and_split.
+ 
+ 2023-08-02  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Add costing for
+ 	using Zicond to implement some conditional moves.
+ 
+ 2023-08-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/zicond.md: Use the X iterator instead of ANYI
+ 	on the comparison input operands.
+ 
+ 2023-08-02  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs, case IF_THEN_ELSE): Add
+ 	Zicond costing.
+ 	(case SET): For INSNs that just set a REG, take the cost from the
+ 	SET_SRC.
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2023-08-02  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_INT8_SET):
+ 	Change OPTION_MASK_ISA2_AMX_TILE to OPTION_MASK_ISA2_AMX_TILE_SET.
+ 	(OPTION_MASK_ISA2_AMX_BF16_SET): Ditto
+ 	(OPTION_MASK_ISA2_AMX_FP16_SET): Ditto
+ 	(OPTION_MASK_ISA2_AMX_COMPLEX_SET): Ditto
+ 	(OPTION_MASK_ISA_ABM_SET):
+ 	Change OPTION_MASK_ISA_POPCNT to OPTION_MASK_ISA_POPCNT_SET.
+ 
+ 2023-08-01  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_encode_section_info): Assume external
+ 	symbols without explicit alignment to be unaligned if
+ 	-munaligned-symbols has been specified.
+ 	* config/s390/s390.opt (-munaligned-symbols): New option.
+ 
+ 2023-08-01  Richard Ball  <richard.ball@arm.com>
+ 
+ 	* gimple-fold.cc (fold_ctor_reference):
+ 	Add support for poly_int.
+ 
+ 2023-08-01  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/110220
+ 	* config/avr/avr.cc (avr_optimize_casesi): Set JUMP_LABEL and
+ 	LABEL_NUSES of new conditional branch instruction.
+ 
+ 2023-08-01  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Fix profile update after
+ 	constant prologue peeling.
+ 
+ 2023-08-01  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* doc/sourcebuild.texi (arm_v8_1m_main_cde_mve_fp): Fix spelling.
+ 
+ 2023-08-01  Pan Li  <pan2.li@intel.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (DYNAMIC_FRM_RTL): New macro.
+ 	(STATIC_FRM_P): Ditto.
+ 	(struct mode_switching_info): New struct for mode switching.
+ 	(struct machine_function): Add new field mode switching.
+ 	(riscv_emit_frm_mode_set): Add DYN_CALL emit.
+ 	(riscv_frm_adjust_mode_after_call): New function for call mode.
+ 	(riscv_frm_emit_after_call_in_bb_end): New function for emit
+ 	insn when call as the end of bb.
+ 	(riscv_frm_mode_needed): New function for frm mode needed.
+ 	(frm_unknown_dynamic_p): Remove call check.
+ 	(riscv_mode_needed): Extrac function for frm.
+ 	(riscv_frm_mode_after): Add DYN_CALL after.
+ 	(riscv_mode_entry): Remove backup rtl initialization.
+ 	* config/riscv/vector.md (frm_mode): Add dyn_call.
+ 	(fsrmsi_restore_exit): Rename to _volatile.
+ 	(fsrmsi_restore_volatile): Likewise.
+ 
+ 2023-08-01  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class reverse_binop_frm): Add new template for reversed frm.
+ 	(vfsub_frm_obj): New obj.
+ 	(vfrsub_frm_obj): Likewise.
+ 	* config/riscv/riscv-vector-builtins-bases.h:
+ 	(vfsub_frm): New declaration.
+ 	(vfrsub_frm): Likewise.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfsub_frm): New function define.
+ 	(vfrsub_frm): Likewise.
+ 
+ 2023-08-01  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/93044
+ 	* match.pd (nested int casts): A truncation (to the same size or smaller)
+ 	can always remove the inner cast.
+ 
+ 2023-07-31  Hamza Mahfooz  <someguy@effective-light.com>
+ 
+ 	PR c/65213
+ 	* doc/invoke.texi (-Wmissing-variable-declarations): Document
+ 	new option.
+ 
+ 2023-07-31  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/106164
+ 	* match.pd (`a != b & a <= b`, `a != b & a >= b`,
+ 	`a == b | a < b`, `a == b | a > b`): Handle these cases
+ 	too.
+ 
+ 2023-07-31  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/106164
+ 	* match.pd: Extend the `(X CMP1 CST1) AND/IOR (X CMP2 CST2)`
+ 	patterns to support `(X CMP1 Y) AND/IOR (X CMP2 Y)`.
+ 
+ 2023-07-31  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/100864
+ 	* generic-match-head.cc (bitwise_inverted_equal_p): New function.
+ 	* gimple-match-head.cc (bitwise_inverted_equal_p): New macro.
+ 	(gimple_bitwise_inverted_equal_p): New function.
+ 	* match.pd ((~x | y) & x): Use bitwise_inverted_equal_p
+ 	instead of direct matching bit_not.
+ 
+ 2023-07-31  Costas Argyris  <costas.argyris@gmail.com>
+ 
+ 	PR driver/77576
+ 	* gcc-ar.cc (main): Expand argv and use
+ 	temporary response file to call ar if any
+ 	expansions were made.
+ 
+ 2023-07-31  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/110582
+ 	* gimple-range-fold.cc (fur_list::get_operand): Do not use the
+ 	range vector for non-ssa names.
+ 
+ 2023-07-31  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/109361
+ 	* diagnostic-client-data-hooks.h (class sarif_object): New forward
+ 	decl.
+ 	(diagnostic_client_data_hooks::add_sarif_invocation_properties):
+ 	New vfunc.
+ 	* diagnostic-format-sarif.cc: Include "diagnostic-format-sarif.h".
+ 	(class sarif_invocation): Inherit from sarif_object rather than
+ 	json::object.
+ 	(class sarif_result): Likewise.
+ 	(class sarif_ice_notification): Likewise.
+ 	(sarif_object::get_or_create_properties): New.
+ 	(sarif_invocation::prepare_to_flush): Add "context" param.  Use it
+ 	to call the context's add_sarif_invocation_properties hook.
+ 	(sarif_builder::flush_to_file): Pass m_context to
+ 	sarif_invocation::prepare_to_flush.
+ 	* diagnostic-format-sarif.h: New header.
+ 	* doc/invoke.texi (Developer Options): Clarify that -ftime-report
+ 	writes to stderr.  Document that if SARIF diagnostic output is
+ 	requested then any timing information is written in JSON form as
+ 	part of the SARIF output, rather than to stderr.
+ 	* timevar.cc: Include "json.h".
+ 	(timer::named_items::m_hash_map): Split out type into...
+ 	(timer::named_items::hash_map_t): ...this new typedef.
+ 	(timer::named_items::make_json): New function.
+ 	(timevar_diff): New function.
+ 	(make_json_for_timevar_time_def): New function.
+ 	(timer::timevar_def::make_json): New function.
+ 	(timer::make_json): New function.
+ 	* timevar.h (class json::value): New forward decl.
+ 	(timer::make_json): New decl.
+ 	(timer::timevar_def::make_json): New decl.
+ 	* tree-diagnostic-client-data-hooks.cc: Include
+ 	"diagnostic-format-sarif.h" and "timevar.h".
+ 	(compiler_data_hooks::add_sarif_invocation_properties): New vfunc
+ 	implementation.
+ 
+ 2023-07-31  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* combine.cc (simplify_compare_const): Narrow comparison of
+ 	memory and constant.
+ 	(try_combine): Adapt new function signature.
+ 	(simplify_comparison): Adapt new function signature.
+ 
+ 2023-07-31  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vec_series): Drop unused
+ 	variable.
+ 	(expand_vector_init_insert_elems): Ditto.
+ 
+ 2023-07-31  Hao Liu  <hliu@os.amperecomputing.com>
+ 
+ 	PR target/110625
+ 	* config/aarch64/aarch64.cc (count_ops): Only '* count' for
+ 	single_defuse_cycle while counting reduction_latency.
+ 
+ 2023-07-31  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* internal-fn.def (DEF_INTERNAL_COND_FN): New macro.
+ 	(DEF_INTERNAL_SIGNED_COND_FN): Ditto.
+ 	(COND_ADD): Remove.
+ 	(COND_SUB): Ditto.
+ 	(COND_MUL): Ditto.
+ 	(COND_DIV): Ditto.
+ 	(COND_MOD): Ditto.
+ 	(COND_RDIV): Ditto.
+ 	(COND_MIN): Ditto.
+ 	(COND_MAX): Ditto.
+ 	(COND_FMIN): Ditto.
+ 	(COND_FMAX): Ditto.
+ 	(COND_AND): Ditto.
+ 	(COND_IOR): Ditto.
+ 	(COND_XOR): Ditto.
+ 	(COND_SHL): Ditto.
+ 	(COND_SHR): Ditto.
+ 	(COND_FMA): Ditto.
+ 	(COND_FMS): Ditto.
+ 	(COND_FNMA): Ditto.
+ 	(COND_FNMS): Ditto.
+ 	(COND_NEG): Ditto.
+ 	(COND_LEN_ADD): Ditto.
+ 	(COND_LEN_SUB): Ditto.
+ 	(COND_LEN_MUL): Ditto.
+ 	(COND_LEN_DIV): Ditto.
+ 	(COND_LEN_MOD): Ditto.
+ 	(COND_LEN_RDIV): Ditto.
+ 	(COND_LEN_MIN): Ditto.
+ 	(COND_LEN_MAX): Ditto.
+ 	(COND_LEN_FMIN): Ditto.
+ 	(COND_LEN_FMAX): Ditto.
+ 	(COND_LEN_AND): Ditto.
+ 	(COND_LEN_IOR): Ditto.
+ 	(COND_LEN_XOR): Ditto.
+ 	(COND_LEN_SHL): Ditto.
+ 	(COND_LEN_SHR): Ditto.
+ 	(COND_LEN_FMA): Ditto.
+ 	(COND_LEN_FMS): Ditto.
+ 	(COND_LEN_FNMA): Ditto.
+ 	(COND_LEN_FNMS): Ditto.
+ 	(COND_LEN_NEG): Ditto.
+ 	(ADD): New macro define.
+ 	(SUB): Ditto.
+ 	(MUL): Ditto.
+ 	(DIV): Ditto.
+ 	(MOD): Ditto.
+ 	(RDIV): Ditto.
+ 	(MIN): Ditto.
+ 	(MAX): Ditto.
+ 	(FMIN): Ditto.
+ 	(FMAX): Ditto.
+ 	(AND): Ditto.
+ 	(IOR): Ditto.
+ 	(XOR): Ditto.
+ 	(SHL): Ditto.
+ 	(SHR): Ditto.
+ 	(FMA): Ditto.
+ 	(FMS): Ditto.
+ 	(FNMA): Ditto.
+ 	(FNMS): Ditto.
+ 	(NEG): Ditto.
+ 
+ 2023-07-31  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110843
+ 	* config/i386/i386-features.cc (compute_convert_gain): Check
+ 	TARGET_AVX512VL (not TARGET_AVX512F) when considering V2DImode
+ 	and V4SImode rotates in STV.
+ 	(general_scalar_chain::convert_rotate): Likewise.
+ 
+ 2023-07-31  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/autovec.md (abs<mode>2): Remove `.require ()`.
+ 	* config/riscv/riscv-protos.h (get_mask_mode): Update return
+ 	type.
+ 	* config/riscv/riscv-v.cc (rvv_builder::rvv_builder): Remove
+ 	`.require ()`.
+ 	(emit_vlmax_insn): Ditto.
+ 	(emit_vlmax_fp_insn): Ditto.
+ 	(emit_vlmax_ternary_insn): Ditto.
+ 	(emit_vlmax_fp_ternary_insn): Ditto.
+ 	(emit_nonvlmax_fp_ternary_tu_insn): Ditto.
+ 	(emit_nonvlmax_insn): Ditto.
+ 	(emit_vlmax_slide_insn): Ditto.
+ 	(emit_nonvlmax_slide_tu_insn): Ditto.
+ 	(emit_vlmax_merge_insn): Ditto.
+ 	(emit_vlmax_masked_insn): Ditto.
+ 	(emit_nonvlmax_masked_insn): Ditto.
+ 	(emit_vlmax_masked_store_insn): Ditto.
+ 	(emit_nonvlmax_masked_store_insn): Ditto.
+ 	(emit_vlmax_masked_mu_insn): Ditto.
+ 	(emit_nonvlmax_tu_insn): Ditto.
+ 	(emit_nonvlmax_fp_tu_insn): Ditto.
+ 	(emit_scalar_move_insn): Ditto.
+ 	(emit_vlmax_compress_insn): Ditto.
+ 	(emit_vlmax_reduction_insn): Ditto.
+ 	(emit_vlmax_fp_reduction_insn): Ditto.
+ 	(emit_nonvlmax_fp_reduction_insn): Ditto.
+ 	(expand_vec_series): Ditto.
+ 	(expand_vector_init_merge_repeating_sequence): Ditto.
+ 	(expand_vec_perm): Ditto.
+ 	(shuffle_merge_patterns): Ditto.
+ 	(shuffle_compress_patterns): Ditto.
+ 	(shuffle_decompress_patterns): Ditto.
+ 	(expand_reduction): Ditto.
+ 	(get_mask_mode): Update return type.
+ 	* config/riscv/riscv.cc (riscv_get_mask_mode): Check vector type
+ 	is valid, and use new get_mask_mode interface.
+ 
+ 2023-07-31  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_frm_def):
+ 	Move rm suffix before mask.
+ 
+ 2023-07-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-vls.md (@vec_duplicate<mode>): New pattern.
+ 	* config/riscv/riscv-v.cc (autovectorize_vector_modes): Add VLS autovec
+ 	support.
+ 
+ 2023-07-29  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110790
+ 	* config/i386/i386.md (extv<mode>): Use QImode for offsets.
+ 	(extzv<mode>): Likewise.
+ 	(insv<mode>): Likewise.
+ 	(*testqi_ext_3): Likewise.
+ 	(*btr<mode>_2): Likewise.
+ 	(define_split): Likewise.
+ 	(*btsq_imm): Likewise.
+ 	(*btrq_imm): Likewise.
+ 	(*btcq_imm): Likewise.
+ 	(define_peephole2 x3): Likewise.
+ 	(*bt<mode>): Likewise
+ 	(*bt<mode>_mask): New define_insn_and_split.
+ 	(*jcc_bt<mode>): Use QImode for offsets.
+ 	(*jcc_bt<mode>_1): Delete obsolete pattern.
+ 	(*jcc_bt<mode>_mask): Use QImode offsets.
+ 	(*jcc_bt<mode>_mask_1): Likewise.
+ 	(define_split): Likewise.
+ 	(*bt<mode>_setcqi): Likewise.
+ 	(*bt<mode>_setncqi): Likewise.
+ 	(*bt<mode>_setnc<mode>): Likewise.
+ 	(*bt<mode>_setncqi_2): Likewise.
+ 	(*bt<mode>_setc<mode>_mask): New define_insn_and_split.
+ 	(bmi2_bzhi_<mode>3): Use QImode offsets.
+ 	(*bmi2_bzhi_<mode>3): Likewise.
+ 	(*bmi2_bzhi_<mode>3_1): Likewise.
+ 	(*bmi2_bzhi_<mode>3_1_ccz): Likewise.
+ 	(@tbm_bextri_<mode>): Likewise.
+ 
+ 2023-07-29  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* profile-count.cc (profile_probability::sqrt): New member function.
+ 	(profile_probability::pow): Likewise.
+ 	* profile-count.h: (profile_probability::sqrt): Declare
+ 	(profile_probability::pow): Likewise.
+ 	* tree-vect-loop-manip.cc (vect_loop_versioning): Fix profile update.
+ 
+ 2023-07-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ssa_cache::merge_range): New.
+ 	(ssa_lazy_cache::merge_range): New.
+ 	* gimple-range-cache.h (class ssa_cache): Adjust protoypes.
+ 	(class ssa_lazy_cache): Ditto.
+ 	* gimple-range.cc (assume_query::calculate_op): Use merge_range.
+ 
+ 2023-07-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* tree-ssa-propagate.cc (substitute_and_fold_engine::value_on_edge):
+ 	Move from value-query.cc.
+ 	(substitute_and_fold_engine::value_of_stmt): Ditto.
+ 	(substitute_and_fold_engine::range_of_expr): New.
+ 	* tree-ssa-propagate.h (substitute_and_fold_engine): Inherit from
+ 	range_query.  New prototypes.
+ 	* value-query.cc (value_query::value_on_edge): Relocate.
+ 	(value_query::value_of_stmt): Ditto.
+ 	* value-query.h (class value_query): Remove.
+ 	(class range_query): Remove base class.  Adjust prototypes.
+ 
+ 2023-07-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/110205
+ 	* gimple-range-cache.h (ranger_cache::m_estimate): Delete.
+ 	* range-op-mixed.h (operator_bitwise_xor::op1_op2_relation_effect):
+ 	Add final override.
+ 	* range-op.cc (operator_lshift): Add missing final overrides.
+ 	(operator_rshift): Ditto.
+ 
+ 2023-07-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_option_override): Disable tail-call
+ 	optimizations in BPF target.
+ 
+ 2023-07-28  Honza  <jh@ryzen4.suse.cz>
+ 
+ 	* cfgloopmanip.cc (loop_count_in): Break out from ...
+ 	(loop_exit_for_scaling): Break out from ...
+ 	(update_loop_exit_probability_scale_dom_bbs): Break out from ...;
+ 	add more sanity check and debug info.
+ 	(scale_loop_profile): ... here.
+ 	(create_empty_loop_on_edge): Fix whitespac.
+ 	* cfgloopmanip.h (update_loop_exit_probability_scale_dom_bbs): Declare.
+ 	* loop-unroll.cc (unroll_loop_constant_iterations): Use
+ 	update_loop_exit_probability_scale_dom_bbs.
+ 	* tree-ssa-loop-manip.cc (update_exit_probability_after_unrolling): Remove.
+ 	(tree_transform_and_unroll_loop): Use
+ 	update_loop_exit_probability_scale_dom_bbs.
+ 	* tree-ssa-loop-split.cc (split_loop): Use
+ 	update_loop_exit_probability_scale_dom_bbs.
+ 
+ 2023-07-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/77689
+ 	* tree-ssa-loop-split.cc: Include value-query.h.
+ 	(split_at_bb_p): Analyze cases where EQ/NE can be turned
+ 	into LT/LE/GT/GE; return updated guard code.
+ 	(split_loop): Use guard code.
+ 
+ 2023-07-28  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/28071
+ 	PR rtl-optimization/110587
+ 	* expr.cc (emit_group_load_1): Simplify logic for calling
+ 	force_reg on ORIG_SRC, to avoid making a copy if the source
+ 	is already in a pseudo register.
+ 
+ 2023-07-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/106923
+ 	* tree-ssa-loop-split.cc (connect_loops): Change probability
+ 	of the test preconditioning second loop to very_likely.
+ 	(fix_loop_bb_probability): Handle correctly case where
+ 	on of the arms of the conditional is empty.
+ 	(split_loop): Fold the test guarding first condition to
+ 	see if it is constant true; Set correct entry block
+ 	probabilities of the split loops; determine correct loop
+ 	eixt probabilities.
+ 
+ 2023-07-28  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: remove rounding mode of
+ 	vsadd[u] and vssub[u].
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-07-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-split.cc (split_loop): Also support NE driven
+ 	loops when IV test is not overflowing.
+ 
+ 2023-07-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110788
+ 	* config/i386/sse.md (avx512cd_maskb_vec_dup<mode>): Add
+ 	UNSPEC_MASKOP.
+ 	(avx512cd_maskw_vec_dup<mode>): Ditto.
+ 
+ 2023-07-27  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/110782
+ 	PR target/110784
+ 	* config/bpf/bpf.opt (msmov): New option.
+ 	* config/bpf/bpf.cc (bpf_option_override): Handle it here.
+ 	* config/bpf/bpf.md (*extendsidi2): New.
+ 	(extendhidi2): New.
+ 	(extendqidi2): New.
+ 	(extendsisi2): New.
+ 	(extendhisi2): New.
+ 	(extendqisi2): New.
+ 	* doc/invoke.texi (Option Summary): Add -msmov eBPF option.
+ 	(eBPF Options): Add -m[no-]smov.  Document that -mcpu=v4
+ 	also enables -msmov.
+ 
+ 2023-07-27  David Faust  <david.faust@oracle.com>
+ 
+ 	* doc/invoke.texi (Option Summary): Remove -mkernel eBPF option.
+ 	Add -mbswap and -msdiv eBPF options.
+ 	(eBPF Options): Remove -mkernel.  Add -mno-{jmpext, jmp32,
+ 	alu32, v3-atomics, bswap, sdiv}.  Document that -mcpu=v4 also
+ 	enables -msdiv.
+ 
+ 2023-07-27  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.md (add<AM:mode>3): Use %w2 instead of %w1
+ 	in pseudo-C dialect output template.
+ 	(sub<AM:mode>3): Likewise.
+ 
+ 2023-07-27  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-vect-loop.cc (optimize_mask_stores): Make store
+ 	likely.
+ 
+ 2023-07-27  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloop.h (single_dom_exit): Declare.
+ 	* cfgloopmanip.h (update_exit_probability_after_unrolling): Declare.
+ 	* cfgrtl.cc (struct cfg_hooks): Fix comment.
+ 	* loop-unroll.cc (unroll_loop_constant_iterations): Update exit edge.
+ 	* tree-ssa-loop-ivopts.h (single_dom_exit): Do not declare it here.
+ 	* tree-ssa-loop-manip.cc (update_exit_probability_after_unrolling):
+ 	Break out from ...
+ 	(tree_transform_and_unroll_loop): ... here;
+ 
+ 2023-07-27  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloopmanip.cc (scale_dominated_blocks_in_loop): Move here from
+ 	tree-ssa-loop-manip.cc and avoid recursion.
+ 	(scale_loop_profile): Use scale_dominated_blocks_in_loop.
+ 	(duplicate_loop_body_to_header_edge): Add DLTHE_FLAG_FLAT_PROFILE
+ 	flag.
+ 	* cfgloopmanip.h (DLTHE_FLAG_FLAT_PROFILE): Define.
+ 	(scale_dominated_blocks_in_loop): Declare.
+ 	* predict.cc (dump_prediction): Do not ICE on uninitialized probability.
+ 	(change_edge_frequency): Remove.
+ 	* predict.h (change_edge_frequency): Remove.
+ 	* tree-ssa-loop-manip.cc (scale_dominated_blocks_in_loop): Move to
+ 	cfgloopmanip.cc.
+ 	(niter_for_unrolled_loop): Remove.
+ 	(tree_transform_and_unroll_loop): Fix profile update.
+ 
+ 2023-07-27  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-im.cc (execute_sm_if_changed): Turn cap probability
+ 	to guessed; fix count of new_bb.
+ 
+ 2023-07-27  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* profile-count.h (profile_count::apply_probability): Fix
+ 	handling of uninitialized probabilities, optimize scaling
+ 	by probability 1.
+ 
+ 2023-07-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91838
+ 	* gimple-match-head.cc: Include attribs.h and asan.h.
+ 	* generic-match-head.cc: Likewise.
+ 	* match.pd (([rl]shift @0 out-of-bounds) -> zero): New pattern.
+ 
+ 2023-07-27  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add VLS modes.
+ 	(ADJUST_ALIGNMENT): Ditto.
+ 	(ADJUST_PRECISION): Ditto.
+ 	(VLS_MODES): Ditto.
+ 	(VECTOR_MODE_WITH_PREFIX): Ditto.
+ 	* config/riscv/riscv-opts.h (TARGET_VECTOR_VLS): New macro.
+ 	* config/riscv/riscv-protos.h (riscv_v_ext_vls_mode_p): New function.
+ 	* config/riscv/riscv-v.cc (INCLUDE_ALGORITHM): Add include.
+ 	(legitimize_move): Enable basic VLS modes support.
+ 	(get_vlmul): Ditto.
+ 	(get_ratio): Ditto.
+ 	(get_vector_mode): Ditto.
+ 	* config/riscv/riscv-vector-switch.def (VLS_ENTRY): Add vls modes.
+ 	* config/riscv/riscv.cc (riscv_v_ext_vls_mode_p): New function.
+ 	(VLS_ENTRY): New macro.
+ 	(riscv_v_ext_mode_p): Add vls modes.
+ 	(riscv_get_v_regno_alignment): New function.
+ 	(riscv_print_operand): Add vls modes.
+ 	(riscv_hard_regno_nregs): Ditto.
+ 	(riscv_hard_regno_mode_ok): Ditto.
+ 	(riscv_regmode_natural_size): Ditto.
+ 	(riscv_vectorize_preferred_vector_alignment): Ditto.
+ 	* config/riscv/riscv.md: Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 	* config/riscv/autovec-vls.md: New file.
+ 
+ 2023-07-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv_vector.h (enum RVV_CSR): Removed.
+ 	(vread_csr): Ditto.
+ 	(vwrite_csr): Ditto.
+ 
+ 2023-07-27  demin.han  <demin.han@starfivetech.com>
+ 
+ 	* config/riscv/autovec.md: Delete which_alternative use in split
+ 
+ 2023-07-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-sink.cc (sink_code_in_bb): Remove recursion, instead
+ 	use a worklist ...
+ 	(pass_sink_code::execute): ... in the caller.
+ 
+ 2023-07-27  Kewen Lin  <linkw@linux.ibm.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110776
+ 	* tree-vect-stmts.cc (vectorizable_load): Always cost VMAT_ELEMENTWISE
+ 	as scalar load.
+ 
+ 2023-07-26  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.md: Include zicond.md
+ 	* config/riscv/zicond.md: New file.
+ 
+ 2023-07-26  Xiao Zeng  <zengxiao@eswincomputing.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: New extension.
+ 	* config/riscv/riscv-opts.h (MASK_ZICOND): New mask.
+ 	(TARGET_ZICOND): New target.
+ 
+ 2023-07-26  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/rs6000-c.cc (find_instance): Add new parameter that
+ 	specifies the number of built-in arguments to check.
+ 	(altivec_resolve_overloaded_builtin): Update calls to find_instance
+ 	to pass the number of built-in arguments to be checked.
+ 
+ 2023-07-26  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.opt (mv3-atomics): New option.
+ 	* config/bpf/bpf.cc (bpf_option_override): Handle it here.
+ 	* config/bpf/bpf.h (enum_reg_class): Add R0 class.
+ 	(REG_CLASS_NAMES): Likewise.
+ 	(REG_CLASS_CONTENTS): Likewise.
+ 	(REGNO_REG_CLASS): Handle R0.
+ 	* config/bpf/bpf.md (UNSPEC_XADD): Rename to UNSPEC_AADD.
+ 	(UNSPEC_AAND): New unspec.
+ 	(UNSPEC_AOR): Likewise.
+ 	(UNSPEC_AXOR): Likewise.
+ 	(UNSPEC_AFADD): Likewise.
+ 	(UNSPEC_AFAND): Likewise.
+ 	(UNSPEC_AFOR): Likewise.
+ 	(UNSPEC_AFXOR): Likewise.
+ 	(UNSPEC_AXCHG): Likewise.
+ 	(UNSPEC_ACMPX): Likewise.
+ 	(atomic_add<mode>): Use UNSPEC_AADD and atomic type attribute.
+ 	Move to...
+ 	* config/bpf/atomic.md: ...Here. New file.
+ 	* config/bpf/constraints.md (t): New constraint for R0.
+ 	* doc/invoke.texi (eBPF Options): Document -mv3-atomics.
+ 
+ 2023-07-26  Matthew Malcomson  <matthew.malcomson@arm.com>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Reformat
+ 	comment.
+ 
+ 2023-07-26  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def: Rename
+ 	__builtin_altivec_vreplace_un_uv2di as __builtin_altivec_vreplace_un_udi
+ 	__builtin_altivec_vreplace_un_uv4si as __builtin_altivec_vreplace_un_usi
+ 	__builtin_altivec_vreplace_un_v2df as __builtin_altivec_vreplace_un_df
+ 	__builtin_altivec_vreplace_un_v2di as __builtin_altivec_vreplace_un_di
+ 	__builtin_altivec_vreplace_un_v4sf as __builtin_altivec_vreplace_un_sf
+ 	__builtin_altivec_vreplace_un_v4si as __builtin_altivec_vreplace_un_si.
+ 	Rename VREPLACE_UN_UV2DI as VREPLACE_UN_UDI, VREPLACE_UN_UV4SI as
+ 	VREPLACE_UN_USI, VREPLACE_UN_V2DF as VREPLACE_UN_DF,
+ 	VREPLACE_UN_V2DI as VREPLACE_UN_DI, VREPLACE_UN_V4SF as
+ 	VREPLACE_UN_SF, VREPLACE_UN_V4SI as VREPLACE_UN_SI.
+ 	Rename vreplace_un_v2di as vreplace_un_di, vreplace_un_v4si as
+ 	vreplace_un_si, vreplace_un_v2df as vreplace_un_df,
+ 	vreplace_un_v2di as vreplace_un_di, vreplace_un_v4sf as
+ 	vreplace_un_sf, vreplace_un_v4si as vreplace_un_si.
+ 	* config/rs6000/rs6000-c.cc (find_instance): Add case
+ 	RS6000_OVLD_VEC_REPLACE_UN.
+ 	* config/rs6000/rs6000-overload.def (__builtin_vec_replace_un):
+ 	Fix first argument type.  Rename VREPLACE_UN_UV4SI as
+ 	VREPLACE_UN_USI, VREPLACE_UN_V4SI as VREPLACE_UN_SI,
+ 	VREPLACE_UN_UV2DI as VREPLACE_UN_UDI, VREPLACE_UN_V2DI as
+ 	VREPLACE_UN_DI, VREPLACE_UN_V4SF as VREPLACE_UN_SF,
+ 	VREPLACE_UN_V2DF as VREPLACE_UN_DF.
+ 	* config/rs6000/vsx.md (REPLACE_ELT): Rename the mode_iterator
+ 	REPLACE_ELT_V for vector modes.
+ 	(REPLACE_ELT): New scalar mode iterator.
+ 	(REPLACE_ELT_char): Add scalar attributes.
+ 	(vreplace_un_<mode>): Change iterator and mode attribute.
+ 
+ 2023-07-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/104940
+ 	* Makefile.in (ANALYZER_OBJS): Add analyzer/symbol.o.
+ 
+ 2023-07-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106081
+ 	* tree-vect-slp.cc (vect_optimize_slp_pass::start_choosing_layouts):
+ 	Assign layout -1 to splats.
+ 
+ 2023-07-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_cast): Add update_bitmask.
+ 	* range-op.cc (operator_cast::update_bitmask): New.
+ 	(operator_cast::fold_range): Call update_bitmask.
+ 
+ 2023-07-26  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.def (vfloat16mf4x2_t): Change
+ 	scalar type to float16, eliminate warning.
+ 	(vfloat16mf4x3_t): Ditto.
+ 	(vfloat16mf4x4_t): Ditto.
+ 	(vfloat16mf4x5_t): Ditto.
+ 	(vfloat16mf4x6_t): Ditto.
+ 	(vfloat16mf4x7_t): Ditto.
+ 	(vfloat16mf4x8_t): Ditto.
+ 	(vfloat16mf2x2_t): Ditto.
+ 	(vfloat16mf2x3_t): Ditto.
+ 	(vfloat16mf2x4_t): Ditto.
+ 	(vfloat16mf2x5_t): Ditto.
+ 	(vfloat16mf2x6_t): Ditto.
+ 	(vfloat16mf2x7_t): Ditto.
+ 	(vfloat16mf2x8_t): Ditto.
+ 	(vfloat16m1x2_t): Ditto.
+ 	(vfloat16m1x3_t): Ditto.
+ 	(vfloat16m1x4_t): Ditto.
+ 	(vfloat16m1x5_t): Ditto.
+ 	(vfloat16m1x6_t): Ditto.
+ 	(vfloat16m1x7_t): Ditto.
+ 	(vfloat16m1x8_t): Ditto.
+ 	(vfloat16m2x2_t): Ditto.
+ 	(vfloat16m2x3_t): Ditto.
+ 	(vfloat16m2x4_t): Ditto.
+ 	(vfloat16m4x2_t): Ditto.
+ 	* config/riscv/vector-iterators.md: add RVVM4x2DF in iterator V4T.
+ 	* config/riscv/vector.md: add tuple mode in attr sew.
+ 
+ 2023-07-26  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/110762
+ 	* config/i386/i386.md (plusminusmult): New code iterator.
+ 	* config/i386/mmx.md (mmxdoublevecmode): New mode attribute.
+ 	(movq_<mode>_to_sse): New expander.
+ 	(<plusminusmult:insn>v2sf3): Macroize expander from addv2sf3,
+ 	subv2sf3 and mulv2sf3 using plusminusmult code iterator.  Rewrite
+ 	as a wrapper around V4SFmode operation.
+ 	(mmx_addv2sf3): Change operand 1 and operand 2 predicates to
+ 	nonimmediate_operand.
+ 	(*mmx_addv2sf3): Remove SSE alternatives.  Change operand 1 and
+ 	operand 2 predicates to nonimmediate_operand.
+ 	(mmx_subv2sf3): Change operand 2 predicate to nonimmediate_operand.
+ 	(mmx_subrv2sf3): Change operand 1 predicate to nonimmediate_operand.
+ 	(*mmx_subv2sf3): Remove SSE alternatives.  Change operand 1 and
+ 	operand 2 predicates to nonimmediate_operand.
+ 	(mmx_mulv2sf3): Change operand 1 and operand 2 predicates to
+ 	nonimmediate_operand.
+ 	(*mmx_mulv2sf3): Remove SSE alternatives.  Change operand 1 and
+ 	operand 2 predicates to nonimmediate_operand.
+ 	(divv2sf3): Rewrite as a wrapper around V4SFmode operation.
+ 	(<smaxmin:code>v2sf3): Ditto.
+ 	(mmx_<smaxmin:code>v2sf3): Change operand 1 and operand 2
+ 	predicates to nonimmediate_operand.
+ 	(*mmx_<smaxmin:code>v2sf3): Remove SSE alternatives.  Change
+ 	operand 1 and operand 2 predicates to nonimmediate_operand.
+ 	(mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
+ 	(sqrtv2sf2): Rewrite as a wrapper around V4SFmode operation.
+ 	(*mmx_haddv2sf3_low): Ditto.
+ 	(*mmx_hsubv2sf3_low): Ditto.
+ 	(vec_addsubv2sf3): Ditto.
+ 	(*mmx_maskcmpv2sf3_comm): Remove.
+ 	(*mmx_maskcmpv2sf3): Remove.
+ 	(vec_cmpv2sfv2si): Rewrite as a wrapper around V4SFmode operation.
+ 	(vcond<V2FI:mode>v2sf): Ditto.
+ 	(fmav2sf4): Ditto.
+ 	(fmsv2sf4): Ditto.
+ 	(fnmav2sf4): Ditto.
+ 	(fnmsv2sf4): Ditto.
+ 	(fix_truncv2sfv2si2): Ditto.
+ 	(fixuns_truncv2sfv2si2): Ditto.
+ 	(mmx_fix_truncv2sfv2si2): Remove SSE alternatives.
+ 	Change operand 1 predicate to nonimmediate_operand.
+ 	(floatv2siv2sf2): Rewrite as a wrapper around V4SFmode operation.
+ 	(floatunsv2siv2sf2): Ditto.
+ 	(mmx_floatv2siv2sf2): Remove SSE alternatives.
+ 	Change operand 1 predicate to nonimmediate_operand.
+ 	(nearbyintv2sf2): Rewrite as a wrapper around V4SFmode operation.
+ 	(rintv2sf2): Ditto.
+ 	(lrintv2sfv2si2): Ditto.
+ 	(ceilv2sf2): Ditto.
+ 	(lceilv2sfv2si2): Ditto.
+ 	(floorv2sf2): Ditto.
+ 	(lfloorv2sfv2si2): Ditto.
+ 	(btruncv2sf2): Ditto.
+ 	(roundv2sf2): Ditto.
+ 	(lroundv2sfv2si2): Ditto.
+ 	(*mmx_roundv2sf2): Remove.
+ 
+ 2023-07-26  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.md: Fix neg{SI,DI}2 insn.
+ 
+ 2023-07-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110799
+ 	* tree-ssa-pre.cc (compute_avail): More thoroughly match
+ 	up TBAA behavior of redundant loads.
+ 
+ 2023-07-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/110755
+ 	* range-op-float.cc (frange_arithmetic): Change +0 result to -0
+ 	for PLUS_EXPR or MINUS_EXPR if -frounding-math, inf is negative and
+ 	it is exact op1 + (-op1) or op1 - op1.
+ 
+ 2023-07-26  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/110741
+ 	* config/rs6000/vsx.md (define_insn xxeval): Correct vsx
+ 	operands output with "x".
+ 
+ 2023-07-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op.cc (class operator_absu): Add update_bitmask.
+ 	(operator_absu::update_bitmask): New.
+ 
+ 2023-07-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_abs): Add update_bitmask.
+ 	* range-op.cc (operator_abs::update_bitmask): New.
+ 
+ 2023-07-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_bitwise_not): Add update_bitmask.
+ 	* range-op.cc (operator_bitwise_not::update_bitmask): New.
+ 
+ 2023-07-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op.cc (update_known_bitmask): Handle unary operators.
+ 
+ 2023-07-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssa-ccp.cc (bit_value_unop): Initialize val when appropriate.
+ 
+ 2023-07-26  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.md: Likewise.
+ 
+ 2023-07-26  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* profile-count.cc (profile_count::to_sreal_scale): Value is not know
+ 	if we divide by zero.
+ 
+ 2023-07-25  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_print_operand_address): Don't print
+ 	enclosing parentheses for pseudo-C dialect.
+ 	* config/bpf/bpf.md (zero_exdendhidi2): Add parentheses around
+ 	operands of pseudo-C dialect output templates where needed.
+ 	(zero_extendqidi2): Likewise.
+ 	(zero_extendsidi2): Likewise.
+ 	(*mov<MM:mode>): Likewise.
+ 
+ 2023-07-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssa-ccp.cc (value_mask_to_min_max): Make static.
+ 	(bit_value_mult_const): Same.
+ 	(get_individual_bits): Same.
+ 
+ 2023-07-25  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/103605
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Gimple
+ 	fold RS6000_BIF_XSMINDP and RS6000_BIF_XSMAXDP when fast-math is set.
+ 	* config/rs6000/rs6000.md (FMINMAX): New int iterator.
+ 	(minmax_op): New int attribute.
+ 	(UNSPEC_FMAX, UNSPEC_FMIN): New unspecs.
+ 	(f<minmax_op><mode>3): New pattern by UNSPEC_FMAX and UNSPEC_FMIN.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xsmaxdp): Set
+ 	pattern to fmaxdf3.
+ 	(__builtin_vsx_xsmindp): Set pattern to fmindf3.
+ 
+ 2023-07-24  David Faust  <david.faust@oracle.com>
+ 
+ 	* config/bpf/bpf.md (nop): Add pseudo-c asm dialect template.
+ 
+ 2023-07-24  Drew Ross  <drross@redhat.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/109986
+ 	* generic-match-head.cc (bitwise_equal_p): New macro.
+ 	* gimple-match-head.cc (bitwise_equal_p): New macro.
+ 	(gimple_nop_convert): Declare.
+ 	(gimple_bitwise_equal_p): Helper for bitwise_equal_p.
+ 	* match.pd ((~X | Y) ^ X -> ~(X & Y)): New simplification.
+ 
+ 2023-07-24  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::add): Use
+ 	single quote rather than backquote in diagnostic.
+ 
+ 2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR target/110783
+ 	* config/bpf/bpf.opt: New command-line option -msdiv.
+ 	* config/bpf/bpf.md: Conditionalize sdiv/smod on bpf_has_sdiv.
+ 	* config/bpf/bpf.cc (bpf_option_override): Initialize
+ 	bpf_has_sdiv.
+ 	* doc/invoke.texi (eBPF Options): Document -msdiv.
+ 
+ 2023-07-24  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_option_override): Spell out
+ 	greater than and use cannot in diagnostic string.
+ 
+ 2023-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_slp_tree::push_vec_def): Add.
+ 	(_slp_tree::vec_stmts): Remove.
+ 	(SLP_TREE_VEC_STMTS): Remove.
+ 	* tree-vect-slp.cc (_slp_tree::push_vec_def): Define.
+ 	(_slp_tree::_slp_tree): Adjust.
+ 	(_slp_tree::~_slp_tree): Likewise.
+ 	(vect_get_slp_vect_def): Simplify.
+ 	(vect_get_slp_defs): Likewise.
+ 	(vect_transform_slp_perm_load_1): Adjust.
+ 	(vect_add_slp_permutation): Likewise.
+ 	(vect_schedule_slp_node): Likewise.
+ 	(vectorize_slp_instance_root_stmt): Likewise.
+ 	(vect_schedule_scc): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_bswap): Use push_vec_def.
+ 	(vectorizable_call): Likewise.
+ 	(vectorizable_call): Likewise.
+ 	(vect_create_vectorized_demotion_stmts): Likewise.
+ 	(vectorizable_conversion): Likewise.
+ 	(vectorizable_assignment): Likewise.
+ 	(vectorizable_shift): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_load): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 	(vectorizable_comparison): Likewise.
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Adjust.
+ 	(vectorize_fold_left_reduction): Use push_vec_def.
+ 	(vect_transform_reduction): Likewise.
+ 	(vect_transform_cycle_phi): Likewise.
+ 	(vectorizable_lc_phi): Likewise.
+ 	(vectorizable_phi): Likewise.
+ 	(vectorizable_recurr): Likewise.
+ 	(vectorizable_induction): Likewise.
+ 	(vectorizable_live_operation): Likewise.
+ 
+ 2023-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop.cc: Remove unused tree-vectorizer.h include.
+ 
+ 2023-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386-builtins.cc: Remove tree-vectorizer.h include.
+ 	* config/i386/i386-expand.cc: Likewise.
+ 	* config/i386/i386-features.cc: Likewise.
+ 	* config/i386/i386-options.cc: Likewise.
+ 
+ 2023-07-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Handle
+ 	more demotion/promotion for modifier == NONE.
+ 
+ 2023-07-24  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110787
+ 	PR target/110790
+ 	Revert patch.
+ 	* config/i386/i386.md (extv<mode>): Use QImode for offsets.
+ 	(extzv<mode>): Likewise.
+ 	(insv<mode>): Likewise.
+ 	(*testqi_ext_3): Likewise.
+ 	(*btr<mode>_2): Likewise.
+ 	(define_split): Likewise.
+ 	(*btsq_imm): Likewise.
+ 	(*btrq_imm): Likewise.
+ 	(*btcq_imm): Likewise.
+ 	(define_peephole2 x3): Likewise.
+ 	(*bt<mode>): Likewise
+ 	(*bt<mode>_mask): New define_insn_and_split.
+ 	(*jcc_bt<mode>): Use QImode for offsets.
+ 	(*jcc_bt<mode>_1): Delete obsolete pattern.
+ 	(*jcc_bt<mode>_mask): Use QImode offsets.
+ 	(*jcc_bt<mode>_mask_1): Likewise.
+ 	(define_split): Likewise.
+ 	(*bt<mode>_setcqi): Likewise.
+ 	(*bt<mode>_setncqi): Likewise.
+ 	(*bt<mode>_setnc<mode>): Likewise.
+ 	(*bt<mode>_setncqi_2): Likewise.
+ 	(*bt<mode>_setc<mode>_mask): New define_insn_and_split.
+ 	(bmi2_bzhi_<mode>3): Use QImode offsets.
+ 	(*bmi2_bzhi_<mode>3): Likewise.
+ 	(*bmi2_bzhi_<mode>3_1): Likewise.
+ 	(*bmi2_bzhi_<mode>3_1_ccz): Likewise.
+ 	(@tbm_bextri_<mode>): Likewise.
+ 
+ 2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf-opts.h (enum bpf_kernel_version): Remove enum.
+ 	* config/bpf/bpf.opt (mkernel): Remove option.
+ 	* config/bpf/bpf.cc (bpf_target_macros): Do not define
+ 	BPF_KERNEL_VERSION_CODE.
+ 
+ 2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR target/110786
+ 	* config/bpf/bpf.opt (mcpu): Add ISA_V4 and make it the default.
+ 	(mbswap): New option.
+ 	* config/bpf/bpf-opts.h (enum bpf_isa_version): New value ISA_V4.
+ 	* config/bpf/bpf.cc (bpf_option_override): Set bpf_has_bswap.
+ 	* config/bpf/bpf.md: Use bswap instructions if available for
+ 	bswap* insn, and fix constraint.
+ 	* doc/invoke.texi (eBPF Options): Document -mcpu=v4 and -mbswap.
+ 
+ 2023-07-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (fold_left_plus_<mode>): New pattern.
+ 	(mask_len_fold_left_plus_<mode>): Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	(enum reduction_type): Ditto.
+ 	(expand_reduction): Add in-order reduction.
+ 	* config/riscv/riscv-v.cc (emit_nonvlmax_fp_reduction_insn): New function.
+ 	(expand_reduction): Add in-order reduction.
+ 
+ 2023-07-24  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-loop.cc (get_masked_reduction_fn): Add mask_len_fold_left_plus.
+ 	(vectorize_fold_left_reduction): Ditto.
+ 	(vectorizable_reduction): Ditto.
+ 	(vect_transform_reduction): Ditto.
+ 
+ 2023-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110777
+ 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_avail):
+ 	Avoid propagating abnormals.
+ 
+ 2023-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110766
+ 	* tree-scalar-evolution.cc
+ 	(analyze_and_compute_bitwise_induction_effect): Check the PHI
+ 	is defined in the loop header.
+ 
+ 2023-07-24  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/110740
+ 	* tree-vect-loop.cc (vect_analyze_loop_costing): Do not vectorize a
+ 	loop with a single scalar iteration.
+ 
+ 2023-07-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(struct alu_frm_def): Take range check.
+ 
+ 2023-07-22  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	PR target/110748
+ 	* config/riscv/predicates.md (const_0_operand): Add back
+ 	const_double.
+ 
+ 2023-07-22  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_move): Disable the
+ 	64-bit insertions into TImode optimizations with -O0, unless
+ 	the function has the "naked" attribute (for PR target/110533).
+ 
+ 2023-07-22  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR target/110778
+ 	* rtl.h (extended_count): Change last argument type
+ 	to bool.
+ 
+ 2023-07-22  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (extv<mode>): Use QImode for offsets.
+ 	(extzv<mode>): Likewise.
+ 	(insv<mode>): Likewise.
+ 	(*testqi_ext_3): Likewise.
+ 	(*btr<mode>_2): Likewise.
+ 	(define_split): Likewise.
+ 	(*btsq_imm): Likewise.
+ 	(*btrq_imm): Likewise.
+ 	(*btcq_imm): Likewise.
+ 	(define_peephole2 x3): Likewise.
+ 	(*bt<mode>): Likewise
+ 	(*bt<mode>_mask): New define_insn_and_split.
+ 	(*jcc_bt<mode>): Use QImode for offsets.
+ 	(*jcc_bt<mode>_1): Delete obsolete pattern.
+ 	(*jcc_bt<mode>_mask): Use QImode offsets.
+ 	(*jcc_bt<mode>_mask_1): Likewise.
+ 	(define_split): Likewise.
+ 	(*bt<mode>_setcqi): Likewise.
+ 	(*bt<mode>_setncqi): Likewise.
+ 	(*bt<mode>_setnc<mode>): Likewise.
+ 	(*bt<mode>_setncqi_2): Likewise.
+ 	(*bt<mode>_setc<mode>_mask): New define_insn_and_split.
+ 	(bmi2_bzhi_<mode>3): Use QImode offsets.
+ 	(*bmi2_bzhi_<mode>3): Likewise.
+ 	(*bmi2_bzhi_<mode>3_1): Likewise.
+ 	(*bmi2_bzhi_<mode>3_1_ccz): Likewise.
+ 	(@tbm_bextri_<mode>): Likewise.
+ 
+ 2023-07-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/bfin/bfin.md (ones): Fix length computation.
+ 
+ 2023-07-22  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-eliminations.cc (update_reg_eliminate): Fix the assert.
+ 	(lra_update_fp2sp_elimination): Use HARD_FRAME_POINTER_REGNUM
+ 	instead of FRAME_POINTER_REGNUM to spill pseudos.
+ 
+ 2023-07-21  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR c/110699
+ 	* gimplify.cc (gimplify_compound_lval):  If the array's type
+ 	is error_mark_node then return GS_ERROR.
+ 
+ 2023-07-21  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	PR target/110770
+ 	* config/bpf/bpf.opt: Added option -masm=<dialect>.
+ 	* config/bpf/bpf-opts.h (enum bpf_asm_dialect): New type.
+ 	* config/bpf/bpf.cc (bpf_print_register): New function.
+ 	(bpf_print_register): Support pseudo-c syntax for registers.
+ 	(bpf_print_operand_address): Likewise.
+ 	* config/bpf/bpf.h (ASM_SPEC): handle -msasm.
+ 	(ASSEMBLER_DIALECT): Define.
+ 	* config/bpf/bpf.md: Added pseudo-c templates.
+ 	* doc/invoke.texi (-masm=): New eBPF option item.
+ 
+ 2023-07-21  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/bpf/bpf.md: fixed template for neg instruction.
+ 
+ 2023-07-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR target/110727
+ 	* tree-vect-loop.cc (scale_profile_for_vect_loop): Avoid scaling flat
+ 	profiles by vectorization factor.
+ 	(vect_transform_loop): Check for flat profiles.
+ 
+ 2023-07-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloop.h (maybe_flat_loop_profile): Declare
+ 	* cfgloopanal.cc (maybe_flat_loop_profile): New function.
+ 	* tree-cfg.cc (print_loop_info): Print info about flat profiles.
+ 
+ 2023-07-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloop.cc (get_estimated_loop_iterations): Use sreal::to_nearest_int
+ 	* cfgloopanal.cc (expected_loop_iterations_unbounded): Likewise.
+ 	* predict.cc (estimate_bb_frequencies): Likewise.
+ 	* profile.cc (branch_prob): Likewise.
+ 	* tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Likewise
+ 
+ 2023-07-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.in: Regenerate.
+ 	* config/darwin.h (DARWIN_LD_DEMANGLE): New.
+ 	(LINK_COMMAND_SPEC_A): Add demangle handling.
+ 	* configure: Regenerate.
+ 	* configure.ac: Detect linker support for '-demangle'.
+ 
+ 2023-07-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* sreal.cc (sreal::to_nearest_int): New.
+ 	(sreal_verify_basics): Verify also to_nearest_int.
+ 	(verify_aritmetics): Likewise.
+ 	(sreal_verify_conversions): New.
+ 	(sreal_cc_tests): Call sreal_verify_conversions.
+ 	* sreal.h: (sreal::to_nearest_int): Declare
+ 
+ 2023-07-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-ch.cc (enum ch_decision): New enum.
+ 	(should_duplicate_loop_header_p): Return info on profitability.
+ 	(do_while_loop_p): Watch for constant conditionals.
+ 	(update_profile_after_ch): Do not sanity check that all
+ 	static exits are taken.
+ 	(ch_base::copy_headers): Run on all loops.
+ 	(pass_ch::process_loop_p): Improve heuristics by handling also
+ 	do_while loop and duplicating shortest sequence containing all
+ 	winning blocks.
+ 
+ 2023-07-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-niter.cc (finite_loop_p): Reorder to do cheap
+ 	tests first; update finite_p flag.
+ 
+ 2023-07-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloop.cc (flow_loop_dump): Use print_loop_info.
+ 	* cfgloop.h (print_loop_info): Declare.
+ 	* tree-cfg.cc (print_loop_info): Break out from ...; add
+ 	printing of missing fields and profile
+ 	(print_loop): ... here.
+ 
+ 2023-07-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_gather_scatter): Remove redundant variables.
+ 
+ 2023-07-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors): Change condition order.
+ 	(vectorizable_operation): Ditto.
+ 
+ 2023-07-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Align order of mask and len.
+ 	* config/riscv/riscv-v.cc (expand_load_store): Ditto.
+ 	(expand_gather_scatter): Ditto.
+ 	* doc/md.texi: Ditto.
+ 	* internal-fn.cc (add_len_and_mask_args): Ditto.
+ 	(add_mask_and_len_args): Ditto.
+ 	(expand_partial_load_optab_fn): Ditto.
+ 	(expand_partial_store_optab_fn): Ditto.
+ 	(expand_scatter_store_optab_fn): Ditto.
+ 	(expand_gather_load_optab_fn): Ditto.
+ 	(internal_fn_len_index): Ditto.
+ 	(internal_fn_mask_index): Ditto.
+ 	(internal_len_load_store_bias): Ditto.
+ 	* tree-vect-stmts.cc (vectorizable_store): Ditto.
+ 	(vectorizable_load): Ditto.
+ 
+ 2023-07-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (len_maskload<mode><vm>): Change LEN_MASK into MASK_LEN.
+ 	(mask_len_load<mode><vm>): Ditto.
+ 	(len_maskstore<mode><vm>): Ditto.
+ 	(mask_len_store<mode><vm>): Ditto.
+ 	(len_mask_gather_load<RATIO64:mode><RATIO64I:mode>): Ditto.
+ 	(mask_len_gather_load<RATIO64:mode><RATIO64I:mode>): Ditto.
+ 	(len_mask_gather_load<RATIO32:mode><RATIO32I:mode>): Ditto.
+ 	(mask_len_gather_load<RATIO32:mode><RATIO32I:mode>): Ditto.
+ 	(len_mask_gather_load<RATIO16:mode><RATIO16I:mode>): Ditto.
+ 	(mask_len_gather_load<RATIO16:mode><RATIO16I:mode>): Ditto.
+ 	(len_mask_gather_load<RATIO8:mode><RATIO8I:mode>): Ditto.
+ 	(mask_len_gather_load<RATIO8:mode><RATIO8I:mode>): Ditto.
+ 	(len_mask_gather_load<RATIO4:mode><RATIO4I:mode>): Ditto.
+ 	(mask_len_gather_load<RATIO4:mode><RATIO4I:mode>): Ditto.
+ 	(len_mask_gather_load<RATIO2:mode><RATIO2I:mode>): Ditto.
+ 	(mask_len_gather_load<RATIO2:mode><RATIO2I:mode>): Ditto.
+ 	(len_mask_gather_load<RATIO1:mode><RATIO1:mode>): Ditto.
+ 	(mask_len_gather_load<RATIO1:mode><RATIO1:mode>): Ditto.
+ 	(len_mask_scatter_store<RATIO64:mode><RATIO64I:mode>): Ditto.
+ 	(mask_len_scatter_store<RATIO64:mode><RATIO64I:mode>): Ditto.
+ 	(len_mask_scatter_store<RATIO32:mode><RATIO32I:mode>): Ditto.
+ 	(mask_len_scatter_store<RATIO32:mode><RATIO32I:mode>): Ditto.
+ 	(len_mask_scatter_store<RATIO16:mode><RATIO16I:mode>): Ditto.
+ 	(mask_len_scatter_store<RATIO16:mode><RATIO16I:mode>): Ditto.
+ 	(len_mask_scatter_store<RATIO8:mode><RATIO8I:mode>): Ditto.
+ 	(mask_len_scatter_store<RATIO8:mode><RATIO8I:mode>): Ditto.
+ 	(len_mask_scatter_store<RATIO4:mode><RATIO4I:mode>): Ditto.
+ 	(mask_len_scatter_store<RATIO4:mode><RATIO4I:mode>): Ditto.
+ 	(len_mask_scatter_store<RATIO2:mode><RATIO2I:mode>): Ditto.
+ 	(mask_len_scatter_store<RATIO2:mode><RATIO2I:mode>): Ditto.
+ 	(len_mask_scatter_store<RATIO1:mode><RATIO1:mode>): Ditto.
+ 	(mask_len_scatter_store<RATIO1:mode><RATIO1:mode>): Ditto.
+ 	* doc/md.texi: Ditto.
+ 	* genopinit.cc (main): Ditto.
+ 	(CMP_NAME): Ditto. Ditto.
+ 	* gimple-fold.cc (arith_overflowed_p): Ditto.
+ 	(gimple_fold_partial_load_store_mem_ref): Ditto.
+ 	(gimple_fold_call): Ditto.
+ 	* internal-fn.cc (len_maskload_direct): Ditto.
+ 	(mask_len_load_direct): Ditto.
+ 	(len_maskstore_direct): Ditto.
+ 	(mask_len_store_direct): Ditto.
+ 	(expand_call_mem_ref): Ditto.
+ 	(expand_len_maskload_optab_fn): Ditto.
+ 	(expand_mask_len_load_optab_fn): Ditto.
+ 	(expand_len_maskstore_optab_fn): Ditto.
+ 	(expand_mask_len_store_optab_fn): Ditto.
+ 	(direct_len_maskload_optab_supported_p): Ditto.
+ 	(direct_mask_len_load_optab_supported_p): Ditto.
+ 	(direct_len_maskstore_optab_supported_p): Ditto.
+ 	(direct_mask_len_store_optab_supported_p): Ditto.
+ 	(internal_load_fn_p): Ditto.
+ 	(internal_store_fn_p): Ditto.
+ 	(internal_gather_scatter_fn_p): Ditto.
+ 	(internal_fn_len_index): Ditto.
+ 	(internal_fn_mask_index): Ditto.
+ 	(internal_fn_stored_value_index): Ditto.
+ 	(internal_len_load_store_bias): Ditto.
+ 	* internal-fn.def (LEN_MASK_GATHER_LOAD): Ditto.
+ 	(MASK_LEN_GATHER_LOAD): Ditto.
+ 	(LEN_MASK_LOAD): Ditto.
+ 	(MASK_LEN_LOAD): Ditto.
+ 	(LEN_MASK_SCATTER_STORE): Ditto.
+ 	(MASK_LEN_SCATTER_STORE): Ditto.
+ 	(LEN_MASK_STORE): Ditto.
+ 	(MASK_LEN_STORE): Ditto.
+ 	* optabs-query.cc (supports_vec_gather_load_p): Ditto.
+ 	(supports_vec_scatter_store_p): Ditto.
+ 	* optabs-tree.cc (target_supports_mask_load_store_p): Ditto.
+ 	(target_supports_len_load_store_p): Ditto.
+ 	* optabs.def (OPTAB_CD): Ditto.
+ 	* tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Ditto.
+ 	(call_may_clobber_ref_p_1): Ditto.
+ 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Ditto.
+ 	(dse_optimize_stmt): Ditto.
+ 	* tree-ssa-loop-ivopts.cc (get_mem_type_for_internal_fn): Ditto.
+ 	(get_alias_ptr_type_for_ptr_address): Ditto.
+ 	* tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Ditto.
+ 	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Ditto.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
+ 	(vect_get_strided_load_store_ops): Ditto.
+ 	(vectorizable_store): Ditto.
+ 	(vectorizable_load): Ditto.
+ 
+ 2023-07-21  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.opt: Fix a typo.
+ 
+ 2023-07-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88540
+ 	* tree-ssa-phiopt.cc (minmax_replacement): Do not give up
+ 	with NaNs but handle the simple case by if-converting to a
+ 	COND_EXPR.
+ 
+ 2023-07-21  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (minmax<minmax<a,b>,a>->minmax<a,b>): New
+ 	transformation.
+ 
+ 2023-07-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110742
+ 	* tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
+ 	Do not materialize an edge permutation in an external node with
+ 	vector defs.
+ 	(vect_slp_analyze_node_operations_1): Guard purely internal
+ 	nodes better.
+ 
+ 2023-07-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloop.cc: Include sreal.h.
+ 	(flow_loop_dump): Dump sreal iteration exsitmate.
+ 	(get_estimated_loop_iterations): Update.
+ 	* cfgloop.h (expected_loop_iterations_by_profile): Declare.
+ 	* cfgloopanal.cc (expected_loop_iterations_by_profile): New function.
+ 	(expected_loop_iterations_unbounded): Use new API.
+ 	* cfgloopmanip.cc (scale_loop_profile): Use
+ 	expected_loop_iterations_by_profile
+ 	* predict.cc (pass_profile::execute): Likewise.
+ 	* profile.cc (branch_prob): Likewise.
+ 	* tree-ssa-loop-niter.cc: Include sreal.h.
+ 	(estimate_numbers_of_iterations): Likewise
+ 
+ 2023-07-21  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/110744
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Correct the index of bias
+ 	operand for ifn IFN_LEN_STORE.
+ 
+ 2023-07-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/89701
+ 	* common.opt: (fcf-protection=): Add EnumSet attribute to
+ 	support combination of params.
+ 
+ 2023-07-21  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR middle-end/110612
+ 	* text-art/table.cc (table_geometry::table_geometry): Drop m_table
+ 	field.
+ 	(table_geometry::table_x_to_canvas_x): Add cast to comparison.
+ 	(table_geometry::table_y_to_canvas_y): Likewise.
+ 	* text-art/table.h (table_geometry::m_table): Drop unused field.
+ 	* text-art/widget.h (wrapper_widget::update_child_alloc_rects):
+ 	Add "override".
+ 
+ 2023-07-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/110717
+ 	* config/i386/i386-features.cc
+ 	(general_scalar_chain::compute_convert_gain): Calculate gain
+ 	for extend higpart case.
+ 	(general_scalar_chain::convert_op): Handle
+ 	ASHIFTRT/ASHIFT combined RTX.
+ 	(general_scalar_to_vector_candidate_p): Enable ASHIFTRT for
+ 	SImode for SSE2 targets.  Handle ASHIFTRT/ASHIFT combined RTX.
+ 	* config/i386/i386.md (*extend<dwi>2_doubleword_highpart):
+ 	New define_insn_and_split pattern.
+ 	(*extendv2di2_highpart_stv): Ditto.
+ 
+ 2023-07-20  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc (simplify_operand_subreg): Check frame pointer
+ 	simplification.
+ 
+ 2023-07-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* combine.cc (dump_combine_stats): Remove.
+ 	(dump_combine_total_stats): Remove.
+ 	(total_attempts, total_merges, total_extras,
+ 	total_successes): Remove.
+ 	(combine_instructions): Don't increment total stats
+ 	instead use statistics_counter_event.
+ 	* dumpfile.cc (print_combine_total_stats): Remove.
+ 	* dumpfile.h (print_combine_total_stats): Remove.
+ 	(dump_combine_total_stats): Remove.
+ 	* passes.cc (finish_optimization_passes):
+ 	Don't call print_combine_total_stats.
+ 	* rtl.h (dump_combine_total_stats): Remove.
+ 	(dump_combine_stats): Remove.
+ 
+ 2023-07-20  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-ch.cc (should_duplicate_loop_header_p): Use BIT instead of TRUTH
+ 	logical ops.
+ 
+ 2023-07-20  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* doc/invoke.texi (analyzer-text-art-string-ellipsis-threshold): New.
+ 	(analyzer-text-art-ideal-canvas-width): Likewise.
+ 	(analyzer-text-art-string-ellipsis-head-len): Likewise.
+ 	(analyzer-text-art-string-ellipsis-tail-len): Likewise.
+ 
+ 2023-07-20  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Refine code structure.
+ 
+ 2023-07-20  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-ch.cc (edge_range_query): Rename to ...
+ 	(get_range_query): ... this one; do
+ 	(static_loop_exit): Add query parametr, turn ranger to reference.
+ 	(loop_static_stmt_p): New function.
+ 	(loop_static_op_p): New function.
+ 	(loop_iv_derived_p): Remove.
+ 	(loop_combined_static_and_iv_p): New function.
+ 	(should_duplicate_loop_header_p): Discover combined onditionals;
+ 	do not track iv derived; improve dumps.
+ 	(pass_ch::execute): Fix whitespace.
+ 
+ 2023-07-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110204
+ 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_avail):
+ 	Look through copies generated by PRE.
+ 
+ 2023-07-20  Matthew Malcomson  <matthew.malcomson@arm.com>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Account for
+ 	`gap` when checking if need to peel twice.
+ 
+ 2023-07-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	PR middle-end/77928
+ 	* doc/extend.texi: Document iseqsig builtin.
+ 	* builtins.cc (fold_builtin_iseqsig): New function.
+ 	(fold_builtin_2): Handle BUILT_IN_ISEQSIG.
+ 	(is_inexpensive_builtin): Handle BUILT_IN_ISEQSIG.
+ 	* builtins.def (BUILT_IN_ISEQSIG): New built-in.
+ 
+ 2023-07-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Fix incorrect match_operand.
+ 
+ 2023-07-20  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_move): Don't call
+ 	force_reg, to use SUBREG rather than create a new pseudo when
+ 	inserting DFmode fields into TImode with insvti_{high,low}part.
+ 	* config/i386/i386.md (*concat<mode><dwi>3_3): Split into two
+ 	define_insn_and_split...
+ 	(*concatditi3_3): 64-bit implementation.  Provide alternative
+ 	that allows register allocation to use SSE registers that is
+ 	split into vec_concatv2di after reload.
+ 	(*concatsidi3_3): 32-bit implementation.
+ 
+ 2023-07-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/61747
+ 	* internal-fn.cc (expand_vec_cond_optab_fn): When the
+ 	value operands are equal to the original comparison operands
+ 	preserve that equality by re-using the comparison expansion.
+ 	* optabs.cc (emit_conditional_move): When the value operands
+ 	are equal to the comparison operands and would be forced to
+ 	a register by prepare_cmp_insn do so earlier, preserving the
+ 	equality.
+ 
+ 2023-07-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Align pattern format.
+ 
+ 2023-07-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* doc/invoke.texi: Remove AVX512VP2INTERSECT in
+ 	Granite Rapids{, D} from documentation.
+ 
+ 2023-07-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md
+ 	(len_mask_gather_load<VNX16_QHSD:mode><VNX16_QHSDI:mode>):
+ 	Refactor RVV machine modes.
+ 	(len_mask_gather_load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
+ 	(len_mask_gather_load<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
+ 	(len_mask_gather_load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
+ 	(len_mask_gather_load<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
+ 	(len_mask_gather_load<mode><mode>): Ditto.
+ 	(len_mask_gather_load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
+ 	(len_mask_scatter_store<mode><mode>): Ditto.
+ 	(len_mask_scatter_store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
+ 	* config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Ditto.
+ 	(ADJUST_NUNITS): Ditto.
+ 	(ADJUST_ALIGNMENT): Ditto.
+ 	(ADJUST_BYTESIZE): Ditto.
+ 	(ADJUST_PRECISION): Ditto.
+ 	(RVV_MODES): Ditto.
+ 	(RVV_WHOLE_MODES): Ditto.
+ 	(RVV_FRACT_MODE): Ditto.
+ 	(RVV_NF8_MODES): Ditto.
+ 	(RVV_NF4_MODES): Ditto.
+ 	(VECTOR_MODES_WITH_PREFIX): Ditto.
+ 	(VECTOR_MODE_WITH_PREFIX): Ditto.
+ 	(RVV_TUPLE_MODES): Ditto.
+ 	(RVV_NF2_MODES): Ditto.
+ 	(RVV_TUPLE_PARTIAL_MODES): Ditto.
+ 	* config/riscv/riscv-v.cc (struct mode_vtype_group): Ditto.
+ 	(ENTRY): Ditto.
+ 	(TUPLE_ENTRY): Ditto.
+ 	(get_vlmul): Ditto.
+ 	(get_nf): Ditto.
+ 	(get_ratio): Ditto.
+ 	(preferred_simd_mode): Ditto.
+ 	(autovectorize_vector_modes): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
+ 	(vbool64_t): Ditto.
+ 	(vbool32_t): Ditto.
+ 	(vbool16_t): Ditto.
+ 	(vbool8_t): Ditto.
+ 	(vbool4_t): Ditto.
+ 	(vbool2_t): Ditto.
+ 	(vbool1_t): Ditto.
+ 	(vint8mf8_t): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vint8mf4_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vint8mf2_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vint8m1_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vint8m2_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vint8m4_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vint8m8_t): Ditto.
+ 	(vuint8m8_t): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	(vfloat16mf4_t): Ditto.
+ 	(vfloat16mf2_t): Ditto.
+ 	(vfloat16m1_t): Ditto.
+ 	(vfloat16m2_t): Ditto.
+ 	(vfloat16m4_t): Ditto.
+ 	(vfloat16m8_t): Ditto.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	(vfloat64m1_t): Ditto.
+ 	(vfloat64m2_t): Ditto.
+ 	(vfloat64m4_t): Ditto.
+ 	(vfloat64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
+ 	(TUPLE_ENTRY): Ditto.
+ 	* config/riscv/riscv-vsetvl.cc (change_insn): Ditto.
+ 	* config/riscv/riscv.cc (riscv_valid_lo_sum_p): Ditto.
+ 	(riscv_v_adjust_nunits): Ditto.
+ 	(riscv_v_adjust_bytesize): Ditto.
+ 	(riscv_v_adjust_precision): Ditto.
+ 	(riscv_convert_vector_bits): Ditto.
+ 	* config/riscv/riscv.h (riscv_v_adjust_nunits): Ditto.
+ 	* config/riscv/riscv.md: Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md
+ 	(@pred_indexed_<order>store<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V1T:mode><V1I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V1T:mode><VNX1_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V2T:mode><V2I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V2T:mode><VNX2_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V4T:mode><V4I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V4T:mode><VNX4_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V8T:mode><V8I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V8T:mode><VNX8_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V16T:mode><V16I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V16T:mode><VNX16_QHSI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V32T:mode><V32I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V32T:mode><VNX32_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V64T:mode><V64I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V1T:mode><V1I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V1T:mode><VNX1_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V2T:mode><V2I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V2T:mode><VNX2_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V4T:mode><V4I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V4T:mode><VNX4_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V8T:mode><V8I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V8T:mode><VNX8_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V16T:mode><V16I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V16T:mode><VNX16_QHSI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V32T:mode><V32I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V32T:mode><VNX32_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V64T:mode><V64I:mode>): Ditto.
+ 
+ 2023-07-19  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-int.h (lra_update_fp2sp_elimination): New prototype.
+ 	(lra_asm_insn_error): New prototype.
+ 	* lra-spills.cc (remove_pseudos): Add check for pseudo slot memory
+ 	existence.
+ 	(lra_spill): Call lra_update_fp2sp_elimination.
+ 	* lra-eliminations.cc: Remove trailing spaces.
+ 	(elimination_fp2sp_occured_p): New static flag.
+ 	(lra_eliminate_regs_1): Set the flag up.
+ 	(update_reg_eliminate): Modify the assert for stack to frame
+ 	pointer elimination.
+ 	(lra_update_fp2sp_elimination): New function.
+ 	(lra_eliminate): Clear flag elimination_fp2sp_occured_p.
+ 
+ 2023-07-19  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (TARGET_MEMTAG): Remove armv8.5
+ 	dependency.
+ 	* config/aarch64/arm_acle.h: Remove unnecessary armv8.x
+ 	dependencies from target pragmas.
+ 	* config/aarch64/arm_fp16.h (target): Likewise.
+ 	* config/aarch64/arm_neon.h (target): Likewise.
+ 
+ 2023-07-19  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110252
+ 	* tree-ssa-phiopt.cc (class auto_flow_sensitive): New class.
+ 	(auto_flow_sensitive::auto_flow_sensitive): New constructor.
+ 	(auto_flow_sensitive::~auto_flow_sensitive): New deconstructor.
+ 	(match_simplify_replacement): Temporarily
+ 	remove the flow sensitive info on the two statements that might
+ 	be moved.
+ 
+ 2023-07-19  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* gimple-fold.cc (fosa_unwind): Replace `vrange_storage *`
+ 	with flow_sensitive_info_storage.
+ 	(follow_outer_ssa_edges): Update how to save off the flow
+ 	sensitive info.
+ 	(maybe_fold_comparisons_from_match_pd): Update restoring
+ 	of flow sensitive info.
+ 	* tree-ssanames.cc (flow_sensitive_info_storage::save): New method.
+ 	(flow_sensitive_info_storage::restore): New method.
+ 	(flow_sensitive_info_storage::save_and_clear): New method.
+ 	(flow_sensitive_info_storage::clear_storage): New method.
+ 	* tree-ssanames.h (class flow_sensitive_info_storage): New class.
+ 
+ 2023-07-19  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110726
+ 	* match.pd ((a|b)&(a==b),a|(a==b),(a&b)|(a==b)):
+ 	Add checks to make sure the type was one bit precision
+ 	intergal type.
+ 
+ 2023-07-19  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* doc/md.texi: Add mask_len_fold_left_plus.
+ 	* internal-fn.cc (mask_len_fold_left_direct): Ditto.
+ 	(expand_mask_len_fold_left_optab_fn): Ditto.
+ 	(direct_mask_len_fold_left_optab_supported_p): Ditto.
+ 	* internal-fn.def (MASK_LEN_FOLD_LEFT_PLUS): Ditto.
+ 	* optabs.def (OPTAB_D): Ditto.
+ 
+ 2023-07-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-switch-conversion.h (class bit_test_cluster): Fix comment typo.
+ 
+ 2023-07-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/110731
+ 	* wide-int.cc (wi::divmod_internal): Always unpack dividend and
+ 	divisor as UNSIGNED regardless of sgn.
+ 
+ 2023-07-19  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_supported_std_ext): Init.
+ 	(standard_extensions_p): Add check.
+ 	(riscv_subset_list::add): Just return NULL if it failed before.
+ 	(riscv_subset_list::parse_std_ext): Continue parse when find a error
+ 	(riscv_subset_list::parse): Just return NULL if it failed before.
+ 	* config/riscv/riscv-subset.h (class riscv_subset_list): Add field.
+ 
+ 2023-07-19  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
+ 	Use gen_vec_set_0.
+ 	(ix86_expand_vector_extract): Use gen_vec_extract_lo /
+ 	gen_vec_extract_hi.
+ 	(expand_vec_perm_broadcast_1): Use gen_vec_interleave_high /
+ 	gen_vec_interleave_low. Rename local variable.
+ 
+ 2023-07-19  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (vec_dupv2df<mask_name>): Add new AVX512F
+ 	alternative. Move AVX512VL part of condition to new "enabled"
+ 	attribute.
+ 
+ 2023-07-19  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/109504
+ 	* config/i386/i386-builtins.cc
+ 	(ix86_register_float16_builtin_type): Remove TARGET_SSE2.
+ 	(ix86_register_bf16_builtin_type): Ditto.
+ 	* config/i386/i386-c.cc (ix86_target_macros): When TARGET_SSE2
+ 	isn't available, undef the macros which are used to check the
+ 	backend support of the _Float16/__bf16 types when building
+ 	libstdc++ and libgcc.
+ 	* config/i386/i386.cc (construct_container): Issue errors for
+ 	HFmode/BFmode when TARGET_SSE2 is not available.
+ 	(function_value_32): Ditto.
+ 	(ix86_scalar_mode_supported_p): Remove TARGET_SSE2 for HFmode/BFmode.
+ 	(ix86_libgcc_floating_mode_supported_p): Ditto.
+ 	(ix86_emit_support_tinfos): Adjust codes.
+ 	(ix86_invalid_conversion): Return diagnostic message string
+ 	when there's conversion from/to BF/HFmode w/o TARGET_SSE2.
+ 	(ix86_invalid_unary_op): New function.
+ 	(ix86_invalid_binary_op): Ditto.
+ 	(TARGET_INVALID_UNARY_OP): Define.
+ 	(TARGET_INVALID_BINARY_OP): Define.
+ 	* config/i386/immintrin.h [__SSE2__]: Remove for fp16/bf16
+ 	related instrinsics header files.
+ 	* config/i386/i386.h (VALID_SSE2_TYPE_MODE): New macro.
+ 
+ 2023-07-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* dwarf2asm.cc: Change FALSE to false.
+ 	* dwarf2cfi.cc (execute_dwarf2_frame): Change return type to void.
+ 	* dwarf2out.cc (matches_main_base): Change return type from
+ 	int to bool.  Change "last_match" variable to bool.
+ 	(dump_struct_debug): Change return type from int to bool.
+ 	Change "matches" and "result" function arguments to bool.
+ 	(is_pseudo_reg): Change return type from int to bool.
+ 	(is_tagged_type): Ditto.
+ 	(same_loc_p): Ditto.
+ 	(same_dw_val_p): Change return type from int to bool and adjust
+ 	function body accordingly.
+ 	(same_attr_p): Ditto.
+ 	(same_die_p): Ditto.
+ 	(is_type_die): Ditto.
+ 	(is_declaration_die): Ditto.
+ 	(should_move_die_to_comdat): Ditto.
+ 	(is_base_type): Ditto.
+ 	(is_based_loc): Ditto.
+ 	(local_scope_p): Ditto.
+ 	(class_scope_p): Ditto.
+ 	(class_or_namespace_scope_p): Ditto.
+ 	(is_tagged_type): Ditto.
+ 	(is_rust): Use void argument.
+ 	(is_nested_in_subprogram): Change return type from int to bool.
+ 	(contains_subprogram_definition): Ditto.
+ 	(gen_struct_or_union_type_die): Change "nested", "complete"
+ 	and "ns_decl" variables to bool.
+ 	(is_naming_typedef_decl): Change FALSE to false.
+ 
+ 2023-07-18  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-ch.cc (edge_range_query): Take loop argument; be ready
+ 	for queries not in headers.
+ 	(static_loop_exit): Add basic blck parameter; update use of
+ 	edge_range_query
+ 	(should_duplicate_loop_header_p): Add ranger and static_exits
+ 	parameter.  Do not account statements that will be optimized
+ 	out after duplicaiton in overall size. Add ranger query to
+ 	find static exits.
+ 	(update_profile_after_ch):  Take static_exits has set instead of
+ 	single eliminated_edge.
+ 	(ch_base::copy_headers): Do all analysis in the first pass;
+ 	remember invariant_exits and static_exits.
+ 
+ 2023-07-18  Jason Merrill  <jason@redhat.com>
+ 
+ 	* fold-const.cc (native_interpret_aggregate): Skip empty fields.
+ 
+ 2023-07-18  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi (Semantic checking): Change example testwithptr
+ 	to testnew6.
+ 
+ 2023-07-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/105715
+ 	* gimple-isel.cc (gimple_expand_vec_exprs): Merge into...
+ 	(pass_gimple_isel::execute): ... this.  Duplicate
+ 	comparison defs of COND_EXPRs.
+ 
+ 2023-07-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-selftests.cc (run_poly_int_selftests): Add more selftests.
+ 	* config/riscv/riscv.cc (riscv_legitimize_poly_move): Dynamic adjust size of VLA vectors.
+ 	(riscv_convert_vector_bits): Ditto.
+ 
+ 2023-07-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (vec_shl_insert_<mode>): New patterns.
+ 	* config/riscv/riscv-v.cc (shuffle_compress_patterns): Fix bugs.
+ 
+ 2023-07-18  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/vx-builtins.md: New vsel pattern.
+ 
+ 2023-07-18  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110438
+ 	* config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>):
+ 	Remove # from assemble output.
+ 
+ 2023-07-18  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110591
+ 	* config/i386/sync.md (cmpccxadd_<mode>): Adjust the pattern
+ 	to explicitly set FLAGS_REG like *cmp<mode>_1, also add extra
+ 	3 define_peephole2 after the pattern.
+ 
+ 2023-07-18  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* rtl-ssa/internals.inl: Fix when mode1 and mode2 are not ordred.
+ 
+ 2023-07-18  Pan Li  <pan2.li@intel.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (struct machine_function): Add new field.
+ 	(riscv_static_frm_mode_p): New function.
+ 	(riscv_emit_frm_mode_set): New function for emit FRM.
+ 	(riscv_emit_mode_set): Extract function for FRM.
+ 	(riscv_mode_needed): Fix the TODO.
+ 	(riscv_mode_entry): Initial dynamic frm RTL.
+ 	(riscv_mode_exit): Return DYN_EXIT.
+ 	* config/riscv/riscv.md: Add rdfrm.
+ 	* config/riscv/vector-iterators.md (unspecv): Add DYN_EXIT unspecv.
+ 	* config/riscv/vector.md (frm_modee): Add new mode dyn_exit.
+ 	(fsrm): Removed.
+ 	(fsrmsi_backup): New pattern for swap.
+ 	(fsrmsi_restore): New pattern for restore.
+ 	(fsrmsi_restore_exit): New pattern for restore exit.
+ 	(frrmsi): New pattern for backup.
+ 
+ 2023-07-17  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/extend.texi: Add @cindex on __auto_type.
+ 
+ 2023-07-17  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* combine-stack-adj.cc (stack_memref_p): Change return type from
+ 	int to bool and adjust function body accordingly.
+ 	(rest_of_handle_stack_adjustments): Change return type to void.
+ 
+ 2023-07-17  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* combine.cc (struct reg_stat_type): Change last_set_invalid to bool.
+ 	(cant_combine_insn_p): Change return type from int to bool and adjust
+ 	function body accordingly.
+ 	(can_combine_p): Ditto.
+ 	(combinable_i3pat): Ditto.  Change "i1_not_in_src" and "i0_not_in_src"
+ 	function arguments from int to bool.
+ 	(contains_muldiv): Change return type from int to bool and adjust
+ 	function body accordingly.
+ 	(try_combine): Ditto. Change "new_direct_jump" pointer function
+ 	argument from int to bool.  Change "substed_i2", "substed_i1",
+ 	"substed_i0", "added_sets_0", "added_sets_1", "added_sets_2",
+ 	"i2dest_in_i2src", "i1dest_in_i1src", "i2dest_in_i1src",
+ 	"i0dest_in_i0src", "i1dest_in_i0src", "i2dest_in_i0src",
+ 	"i2dest_killed", "i1dest_killed", "i0dest_killed", "i1_feeds_i2_n",
+ 	"i0_feeds_i2_n", "i0_feeds_i1_n", "i3_subst_into_i2", "have_mult",
+ 	"swap_i2i3", "split_i2i3" and "changed_i3_dest" variables
+ 	from int to bool.
+ 	(subst): Change "in_dest", "in_cond" and "unique_copy" function
+ 	arguments from int to bool.
+ 	(combine_simplify_rtx): Change "in_dest" and "in_cond" function
+ 	arguments from int to bool.
+ 	(make_extraction): Change "unsignedp", "in_dest" and "in_compare"
+ 	function argument from int to bool.
+ 	(force_int_to_mode): Change "just_select" function argument
+ 	from int to bool.  Change "next_select" variable to bool.
+ 	(rtx_equal_for_field_assignment_p): Change return type from
+ 	int to bool and adjust function body accordingly.
+ 	(merge_outer_ops): Ditto.  Change "pcomp_p" pointer function
+ 	argument from int to bool.
+ 	(get_last_value_validate): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(reg_dead_at_p): Ditto.
+ 	(reg_bitfield_target_p): Ditto.
+ 	(combine_instructions): Ditto.  Change "new_direct_jump"
+ 	variable to bool.
+ 	(can_combine_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(likely_spilled_retval_p): Ditto.
+ 	(can_change_dest_mode): Change "added_sets" function argument
+ 	from int to bool.
+ 	(find_split_point): Change "unsignedp" variable to bool.
+ 	(simplify_if_then_else): Change "comparison_p" and "swapped"
+ 	variables to bool.
+ 	(simplify_set): Change "other_changed" variable to bool.
+ 	(expand_compound_operation): Change "unsignedp" variable to bool.
+ 	(force_to_mode): Change "just_select" function argument
+ 	from int to bool.  Change "next_select" variable to bool.
+ 	(extended_count): Change "unsignedp" function argument to bool.
+ 	(simplify_shift_const_1): Change "complement_p" variable to bool.
+ 	(simplify_comparison): Change "changed" variable to bool.
+ 	(rest_of_handle_combine): Change return type to void.
+ 
+ 2023-07-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR plugins/110610
+ 	* Makefile.in (INTERNAL_FN_H): Add insn-opinit.h.
+ 
+ 2023-07-17  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
+ 
+ 	* ira.cc (setup_reg_class_relations): Continue
+ 	if regclass cl3 is hard_reg_set_empty_p.
+ 
+ 2023-07-17  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_option_override): Add sorry check.
+ 
+ 2023-07-17  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* tree-ssa-loop-ivcanon.cc (try_peel_loop): Remove unused variable
+ 	entry_count.
+ 
+ 2023-07-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssa-ccp.cc (ccp_finalize): Export value/mask known bits.
+ 
+ 2023-07-17  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	PR target/110696
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::handle_implied_ext):
+ 	recur add all implied extensions.
+ 	(riscv_subset_list::check_implied_ext): Add new method.
+ 	(riscv_subset_list::parse): Call checker check_implied_ext.
+ 	* config/riscv/riscv-subset.h: Add new method.
+ 
+ 2023-07-17  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (reduc_plus_scal_<mode>): New pattern.
+ 	(reduc_smax_scal_<mode>): Ditto.
+ 	(reduc_umax_scal_<mode>): Ditto.
+ 	(reduc_smin_scal_<mode>): Ditto.
+ 	(reduc_umin_scal_<mode>): Ditto.
+ 	(reduc_and_scal_<mode>): Ditto.
+ 	(reduc_ior_scal_<mode>): Ditto.
+ 	(reduc_xor_scal_<mode>): Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_type): Add reduction.
+ 	(expand_reduction): New function.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_reduction_insn): Ditto.
+ 	(emit_vlmax_fp_reduction_insn): Ditto.
+ 	(get_m1_mode): Ditto.
+ 	(expand_cond_len_binop): Fix name.
+ 	(expand_reduction): New function
+ 	* config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Fix VSETVL BUG.
+ 	(validate_change_or_fail): New function.
+ 	(change_insn): Fix VSETVL BUG.
+ 	(change_vsetvl_insn): Ditto.
+ 	(pass_vsetvl::backward_demand_fusion): Ditto.
+ 	(pass_vsetvl::df_post_optimization): Ditto.
+ 
+ 2023-07-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-prop.cc (ipcp_update_bits): Export value/mask known bits.
+ 
+ 2023-07-17  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_regno_ok_for_index_p):
+ 	Remove parameter name from declaration of unused parameter.
+ 
+ 2023-07-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR tree-optimization/110652
+ 	* tree-vect-stmts.cc (vectorizable_load): Initialize new_temp as
+ 	NULL_TREE.
+ 
+ 2023-07-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110669
+ 	* tree-scalar-evolution.cc (analyze_and_compute_bitop_with_inv_effect):
+ 	Check we matched a header PHI.
+ 
+ 2023-07-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssanames.cc (set_bitmask): New.
+ 	* tree-ssanames.h (set_bitmask): New.
+ 
+ 2023-07-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (irange_bitmask::verify_mask): Mask need not be
+ 	normalized.
+ 	* value-range.h (irange_bitmask::union_): Normalize beforehand.
+ 	(irange_bitmask::intersect): Same.
+ 
+ 2023-07-17  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/95923
+ 	* match.pd ((a|b)&(a==b),a|(a==b),(a&b)|(a==b)): New transformation.
+ 
+ 2023-07-17  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* tree-if-conv.cc (predicate_scalar_phi): Make the arguments
+ 	to the std::sort comparison lambda function const.
+ 
+ 2023-07-17  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110666
+ 	* match.pd (A NEEQ (A NEEQ CST)): Fix Outer EQ case.
+ 
+ 2023-07-17  Mo, Zewei  <zewei.mo@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Handle Lunar Lake,
+ 	Arrow Lake and Arrow Lake S.
+ 	* common/config/i386/i386-common.cc:
+ 	(processor_name): Add arrowlake.
+ 	(processor_alias_table): Add arrow lake, arrow lake s and lunar
+ 	lake.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_subtypes):
+ 	Add INTEL_COREI7_ARROWLAKE and INTEL_COREI7_ARROWLAKE_S.
+ 	* config.gcc: Add -march=arrowlake and -march=arrowlake-s.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Handle
+ 	arrowlake-s.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Add
+ 	arrowlake.
+ 	* config/i386/i386-options.cc (m_ARROWLAKE): New.
+ 	(processor_cost_table): Add arrowlake.
+ 	* config/i386/i386.h (enum processor_type):
+ 	Add PROCESSOR_ARROWLAKE.
+ 	* config/i386/x86-tune.def: Add m_ARROWLAKE.
+ 	* doc/extend.texi: Add arrowlake and arrowlake-s.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2023-07-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/sse.md (VI2_AVX2): Delete V32HI since we actually
+ 	have the same iterator. Also renaming all the occurence to
+ 	VI2_AVX2_AVX512BW.
+ 	(usdot_prod<mode>): New define_expand.
+ 	(udot_prod<mode>): Ditto.
+ 
+ 2023-07-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detech SM4.
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_SM4_SET,
+ 	OPTION_MASK_ISA2_SM4_UNSET): New.
+ 	(OPTION_MASK_ISA2_AVX_UNSET): Add SM4.
+ 	(ix86_handle_option): Handle -msm4.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_SM4.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	sm4.
+ 	* config.gcc: Add sm4intrin.h.
+ 	* config/i386/cpuid.h (bit_SM4): New.
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__SM4__.
+ 	* config/i386/i386-isa.def (SM4): Add DEF_PTA(SM4).
+ 	* config/i386/i386-options.cc (isa2_opts): Add -msm4.
+ 	(ix86_valid_target_attribute_inner_p): Handle sm4.
+ 	* config/i386/i386.opt: Add option -msm4.
+ 	* config/i386/immintrin.h: Include sm4intrin.h
+ 	* config/i386/sse.md (vsm4key4_<mode>): New define insn.
+ 	(vsm4rnds4_<mode>): Ditto.
+ 	* doc/extend.texi: Document sm4.
+ 	* doc/invoke.texi: Document -msm4.
+ 	* doc/sourcebuild.texi: Document target sm4.
+ 	* config/i386/sm4intrin.h: New file.
+ 
+ 2023-07-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detect SHA512.
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_SHA512_SET,
+ 	OPTION_MASK_ISA2_SHA512_UNSET): New.
+ 	(OPTION_MASK_ISA2_AVX_UNSET): Add SHA512.
+ 	(ix86_handle_option): Handle -msha512.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_SHA512.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	sha512.
+ 	* config.gcc: Add sha512intrin.h.
+ 	* config/i386/cpuid.h (bit_SHA512): New.
+ 	* config/i386/i386-builtin-types.def:
+ 	Add DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, V2DI).
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__SHA512__.
+ 	* config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
+ 	V4DI_FTYPE_V4DI_V4DI_V2DI and V4DI_FTYPE_V4DI_V2DI.
+ 	* config/i386/i386-isa.def (SHA512): Add DEF_PTA(SHA512).
+ 	* config/i386/i386-options.cc (isa2_opts): Add -msha512.
+ 	(ix86_valid_target_attribute_inner_p): Handle sha512.
+ 	* config/i386/i386.opt: Add option -msha512.
+ 	* config/i386/immintrin.h: Include sha512intrin.h.
+ 	* config/i386/sse.md (vsha512msg1): New define insn.
+ 	(vsha512msg2): Ditto.
+ 	(vsha512rnds2): Ditto.
+ 	* doc/extend.texi: Document sha512.
+ 	* doc/invoke.texi: Document -msha512.
+ 	* doc/sourcebuild.texi: Document target sha512.
+ 	* config/i386/sha512intrin.h: New file.
+ 
+ 2023-07-17  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detect SM3.
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_SM3_SET,
+ 	OPTION_MASK_ISA2_SM3_UNSET): New.
+ 	(OPTION_MASK_ISA2_AVX_UNSET): Add SM3.
+ 	(ix86_handle_option): Handle -msm3.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_SM3.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	SM3.
+ 	* config.gcc: Add sm3intrin.h
+ 	* config/i386/cpuid.h (bit_SM3): New.
+ 	* config/i386/i386-builtin-types.def:
+ 	Add DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, V4SI, INT).
+ 	* config/i386/i386-builtin.def (BDESC): Add new builtins.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__SM3__.
+ 	* config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
+ 	V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
+ 	* config/i386/i386-isa.def (SM3): Add DEF_PTA(SM3).
+ 	* config/i386/i386-options.cc (isa2_opts): Add -msm3.
+ 	(ix86_valid_target_attribute_inner_p): Handle sm3.
+ 	* config/i386/i386.opt: Add option -msm3.
+ 	* config/i386/immintrin.h: Include sm3intrin.h.
+ 	* config/i386/sse.md (vsm3msg1): New define insn.
+ 	(vsm3msg2): Ditto.
+ 	(vsm3rnds2): Ditto.
+ 	* doc/extend.texi: Document sm3.
+ 	* doc/invoke.texi: Document -msm3.
+ 	* doc/sourcebuild.texi: Document target sm3.
+ 	* config/i386/sm3intrin.h: New file.
+ 
+ 2023-07-17  Kong Lingling  <lingling.kong@intel.com>
+ 	    Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features): Detect
+ 	avxvnniint16.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AVXVNNIINT16_SET): New.
+ 	(OPTION_MASK_ISA2_AVXVNNIINT16_UNSET): Ditto.
+ 	(ix86_handle_option): Handle -mavxvnniint16.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AVXVNNIINT16.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	avxvnniint16.
+ 	* config.gcc: Add avxvnniint16.h.
+ 	* config/i386/avxvnniint16intrin.h: New file.
+ 	* config/i386/cpuid.h (bit_AVXVNNIINT16): New.
+ 	* config/i386/i386-builtin.def: Add new builtins.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__AVXVNNIINT16__.
+ 	* config/i386/i386-options.cc (isa2_opts): Add -mavxvnniint16.
+ 	(ix86_valid_target_attribute_inner_p): Handle avxvnniint16intrin.h.
+ 	* config/i386/i386-isa.def: Add DEF_PTA(AVXVNNIINT16).
+ 	* config/i386/i386.opt: Add option -mavxvnniint16.
+ 	* config/i386/immintrin.h: Include avxvnniint16.h.
+ 	* config/i386/sse.md
+ 	(vpdp<vpdpwprodtype>_<mode>): New define_insn.
+ 	* doc/extend.texi: Document avxvnniint16.
+ 	* doc/invoke.texi: Document -mavxvnniint16.
+ 	* doc/sourcebuild.texi: Document target avxvnniint16.
+ 
+ 2023-07-16  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/110649
+ 	* tree-vect-loop.cc (scale_profile_for_vect_loop): Rewrite.
+ 	(vect_transform_loop): Move scale_profile_for_vect_loop after
+ 	upper bound updates.
+ 
+ 2023-07-16  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/110649
+ 	* tree-vect-loop.cc (optimize_mask_stores): Set correctly
+ 	probability of the if-then-else construct.
+ 
+ 2023-07-16  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/110649
+ 	* tree-ssa-loop-ivcanon.cc (try_peel_loop): Avoid double profile update.
+ 
+ 2023-07-15  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* doc/contrib.texi: Update my entry.
+ 
+ 2023-07-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.md: Define constants R1_REGNUM, R19_REGNUM and
+ 	R27_REGNUM.
+ 	(tgd_load): Restrict to !TARGET_64BIT. Use register constants.
+ 	(tld_load): Likewise.
+ 	(tgd_load_pic): Change to expander.
+ 	(tld_load_pic, tld_offset_load, tp_load): Likewise.
+ 	(tie_load_pic, tle_load): Likewise.
+ 	(tgd_load_picsi, tgd_load_picdi): New.
+ 	(tld_load_picsi, tld_load_picdi): New.
+ 	(tld_offset_load<P:mode>): New.
+ 	(tp_load<P:mode>): New.
+ 	(tie_load_picsi, tie_load_picdi): New.
+ 	(tle_load<P:mode>): New.
+ 
+ 2023-07-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vcmlaq, vcmlaq_rot90)
+ 	(vcmlaq_rot180, vcmlaq_rot270): New.
+ 	* config/arm/arm-mve-builtins-base.def (vcmlaq, vcmlaq_rot90)
+ 	(vcmlaq_rot180, vcmlaq_rot270): New.
+ 	* config/arm/arm-mve-builtins-base.h: (vcmlaq, vcmlaq_rot90)
+ 	(vcmlaq_rot180, vcmlaq_rot270): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vcmlaq,
+ 	vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270.
+ 	* config/arm/arm_mve.h (vcmlaq): Delete.
+ 	(vcmlaq_rot180): Delete.
+ 	(vcmlaq_rot270): Delete.
+ 	(vcmlaq_rot90): Delete.
+ 	(vcmlaq_m): Delete.
+ 	(vcmlaq_rot180_m): Delete.
+ 	(vcmlaq_rot270_m): Delete.
+ 	(vcmlaq_rot90_m): Delete.
+ 	(vcmlaq_f16): Delete.
+ 	(vcmlaq_rot180_f16): Delete.
+ 	(vcmlaq_rot270_f16): Delete.
+ 	(vcmlaq_rot90_f16): Delete.
+ 	(vcmlaq_f32): Delete.
+ 	(vcmlaq_rot180_f32): Delete.
+ 	(vcmlaq_rot270_f32): Delete.
+ 	(vcmlaq_rot90_f32): Delete.
+ 	(vcmlaq_m_f32): Delete.
+ 	(vcmlaq_m_f16): Delete.
+ 	(vcmlaq_rot180_m_f32): Delete.
+ 	(vcmlaq_rot180_m_f16): Delete.
+ 	(vcmlaq_rot270_m_f32): Delete.
+ 	(vcmlaq_rot270_m_f16): Delete.
+ 	(vcmlaq_rot90_m_f32): Delete.
+ 	(vcmlaq_rot90_m_f16): Delete.
+ 	(__arm_vcmlaq_f16): Delete.
+ 	(__arm_vcmlaq_rot180_f16): Delete.
+ 	(__arm_vcmlaq_rot270_f16): Delete.
+ 	(__arm_vcmlaq_rot90_f16): Delete.
+ 	(__arm_vcmlaq_f32): Delete.
+ 	(__arm_vcmlaq_rot180_f32): Delete.
+ 	(__arm_vcmlaq_rot270_f32): Delete.
+ 	(__arm_vcmlaq_rot90_f32): Delete.
+ 	(__arm_vcmlaq_m_f32): Delete.
+ 	(__arm_vcmlaq_m_f16): Delete.
+ 	(__arm_vcmlaq_rot180_m_f32): Delete.
+ 	(__arm_vcmlaq_rot180_m_f16): Delete.
+ 	(__arm_vcmlaq_rot270_m_f32): Delete.
+ 	(__arm_vcmlaq_rot270_m_f16): Delete.
+ 	(__arm_vcmlaq_rot90_m_f32): Delete.
+ 	(__arm_vcmlaq_rot90_m_f16): Delete.
+ 	(__arm_vcmlaq): Delete.
+ 	(__arm_vcmlaq_rot180): Delete.
+ 	(__arm_vcmlaq_rot270): Delete.
+ 	(__arm_vcmlaq_rot90): Delete.
+ 	(__arm_vcmlaq_m): Delete.
+ 	(__arm_vcmlaq_rot180_m): Delete.
+ 	(__arm_vcmlaq_rot270_m): Delete.
+ 	(__arm_vcmlaq_rot90_m): Delete.
+ 
+ 2023-07-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm_mve_builtins.def (vcmlaq_rot90_f)
+ 	(vcmlaq_rot270_f, vcmlaq_rot180_f, vcmlaq_f): Add "_f" suffix.
+ 	* config/arm/iterators.md (MVE_VCMLAQ_M): New.
+ 	(mve_insn): Add vcmla.
+ 	(rot): Add VCMLAQ_M_F, VCMLAQ_ROT90_M_F, VCMLAQ_ROT180_M_F,
+ 	VCMLAQ_ROT270_M_F.
+ 	(mve_rot): Add VCMLAQ_M_F, VCMLAQ_ROT90_M_F, VCMLAQ_ROT180_M_F,
+ 	VCMLAQ_ROT270_M_F.
+ 	* config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Rename into ...
+ 	(@mve_<mve_insn>q<mve_rot>_f<mode>): ... this.
+ 	(mve_vcmlaq_m_f<mode>, mve_vcmlaq_rot180_m_f<mode>)
+ 	(mve_vcmlaq_rot270_m_f<mode>, mve_vcmlaq_rot90_m_f<mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q<mve_rot>_m_f<mode>): ... this.
+ 
+ 2023-07-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vcmulq, vcmulq_rot90)
+ 	(vcmulq_rot180, vcmulq_rot270): New.
+ 	* config/arm/arm-mve-builtins-base.def (vcmulq, vcmulq_rot90)
+ 	(vcmulq_rot180, vcmulq_rot270): New.
+ 	* config/arm/arm-mve-builtins-base.h: (vcmulq, vcmulq_rot90)
+ 	(vcmulq_rot180, vcmulq_rot270): New.
+ 	* config/arm/arm_mve.h (vcmulq_rot90): Delete.
+ 	(vcmulq_rot270): Delete.
+ 	(vcmulq_rot180): Delete.
+ 	(vcmulq): Delete.
+ 	(vcmulq_m): Delete.
+ 	(vcmulq_rot180_m): Delete.
+ 	(vcmulq_rot270_m): Delete.
+ 	(vcmulq_rot90_m): Delete.
+ 	(vcmulq_x): Delete.
+ 	(vcmulq_rot90_x): Delete.
+ 	(vcmulq_rot180_x): Delete.
+ 	(vcmulq_rot270_x): Delete.
+ 	(vcmulq_rot90_f16): Delete.
+ 	(vcmulq_rot270_f16): Delete.
+ 	(vcmulq_rot180_f16): Delete.
+ 	(vcmulq_f16): Delete.
+ 	(vcmulq_rot90_f32): Delete.
+ 	(vcmulq_rot270_f32): Delete.
+ 	(vcmulq_rot180_f32): Delete.
+ 	(vcmulq_f32): Delete.
+ 	(vcmulq_m_f32): Delete.
+ 	(vcmulq_m_f16): Delete.
+ 	(vcmulq_rot180_m_f32): Delete.
+ 	(vcmulq_rot180_m_f16): Delete.
+ 	(vcmulq_rot270_m_f32): Delete.
+ 	(vcmulq_rot270_m_f16): Delete.
+ 	(vcmulq_rot90_m_f32): Delete.
+ 	(vcmulq_rot90_m_f16): Delete.
+ 	(vcmulq_x_f16): Delete.
+ 	(vcmulq_x_f32): Delete.
+ 	(vcmulq_rot90_x_f16): Delete.
+ 	(vcmulq_rot90_x_f32): Delete.
+ 	(vcmulq_rot180_x_f16): Delete.
+ 	(vcmulq_rot180_x_f32): Delete.
+ 	(vcmulq_rot270_x_f16): Delete.
+ 	(vcmulq_rot270_x_f32): Delete.
+ 	(__arm_vcmulq_rot90_f16): Delete.
+ 	(__arm_vcmulq_rot270_f16): Delete.
+ 	(__arm_vcmulq_rot180_f16): Delete.
+ 	(__arm_vcmulq_f16): Delete.
+ 	(__arm_vcmulq_rot90_f32): Delete.
+ 	(__arm_vcmulq_rot270_f32): Delete.
+ 	(__arm_vcmulq_rot180_f32): Delete.
+ 	(__arm_vcmulq_f32): Delete.
+ 	(__arm_vcmulq_m_f32): Delete.
+ 	(__arm_vcmulq_m_f16): Delete.
+ 	(__arm_vcmulq_rot180_m_f32): Delete.
+ 	(__arm_vcmulq_rot180_m_f16): Delete.
+ 	(__arm_vcmulq_rot270_m_f32): Delete.
+ 	(__arm_vcmulq_rot270_m_f16): Delete.
+ 	(__arm_vcmulq_rot90_m_f32): Delete.
+ 	(__arm_vcmulq_rot90_m_f16): Delete.
+ 	(__arm_vcmulq_x_f16): Delete.
+ 	(__arm_vcmulq_x_f32): Delete.
+ 	(__arm_vcmulq_rot90_x_f16): Delete.
+ 	(__arm_vcmulq_rot90_x_f32): Delete.
+ 	(__arm_vcmulq_rot180_x_f16): Delete.
+ 	(__arm_vcmulq_rot180_x_f32): Delete.
+ 	(__arm_vcmulq_rot270_x_f16): Delete.
+ 	(__arm_vcmulq_rot270_x_f32): Delete.
+ 	(__arm_vcmulq_rot90): Delete.
+ 	(__arm_vcmulq_rot270): Delete.
+ 	(__arm_vcmulq_rot180): Delete.
+ 	(__arm_vcmulq): Delete.
+ 	(__arm_vcmulq_m): Delete.
+ 	(__arm_vcmulq_rot180_m): Delete.
+ 	(__arm_vcmulq_rot270_m): Delete.
+ 	(__arm_vcmulq_rot90_m): Delete.
+ 	(__arm_vcmulq_x): Delete.
+ 	(__arm_vcmulq_rot90_x): Delete.
+ 	(__arm_vcmulq_rot180_x): Delete.
+ 	(__arm_vcmulq_rot270_x): Delete.
+ 
+ 2023-07-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm_mve_builtins.def (vcmulq_rot90_f)
+ 	(vcmulq_rot270_f, vcmulq_rot180_f, vcmulq_f): Add "_f" suffix.
+ 	* config/arm/iterators.md (MVE_VCADDQ_VCMULQ)
+ 	(MVE_VCADDQ_VCMULQ_M): New.
+ 	(mve_insn): Add vcmul.
+ 	(rot): Add VCMULQ_M_F, VCMULQ_ROT90_M_F, VCMULQ_ROT180_M_F,
+ 	VCMULQ_ROT270_M_F.
+ 	(VCMUL): Delete.
+ 	(mve_rot): Add VCMULQ_M_F, VCMULQ_ROT90_M_F, VCMULQ_ROT180_M_F,
+ 	VCMULQ_ROT270_M_F.
+ 	* config/arm/mve.md (mve_vcmulq<mve_rot><mode>): Merge into
+ 	@mve_<mve_insn>q<mve_rot>_f<mode>.
+ 	(mve_vcmulq_m_f<mode>, mve_vcmulq_rot180_m_f<mode>)
+ 	(mve_vcmulq_rot270_m_f<mode>, mve_vcmulq_rot90_m_f<mode>): Merge
+ 	into @mve_<mve_insn>q<mve_rot>_m_f<mode>.
+ 
+ 2023-07-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vcaddq_rot90)
+ 	(vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
+ 	* config/arm/arm-mve-builtins-base.def (vcaddq_rot90)
+ 	(vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
+ 	* config/arm/arm-mve-builtins-base.h: (vcaddq_rot90)
+ 	(vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_mve_function_exact_insn_rot): New.
+ 	* config/arm/arm_mve.h (vcaddq_rot90): Delete.
+ 	(vcaddq_rot270): Delete.
+ 	(vhcaddq_rot90): Delete.
+ 	(vhcaddq_rot270): Delete.
+ 	(vcaddq_rot270_m): Delete.
+ 	(vcaddq_rot90_m): Delete.
+ 	(vhcaddq_rot270_m): Delete.
+ 	(vhcaddq_rot90_m): Delete.
+ 	(vcaddq_rot90_x): Delete.
+ 	(vcaddq_rot270_x): Delete.
+ 	(vhcaddq_rot90_x): Delete.
+ 	(vhcaddq_rot270_x): Delete.
+ 	(vcaddq_rot90_u8): Delete.
+ 	(vcaddq_rot270_u8): Delete.
+ 	(vhcaddq_rot90_s8): Delete.
+ 	(vhcaddq_rot270_s8): Delete.
+ 	(vcaddq_rot90_s8): Delete.
+ 	(vcaddq_rot270_s8): Delete.
+ 	(vcaddq_rot90_u16): Delete.
+ 	(vcaddq_rot270_u16): Delete.
+ 	(vhcaddq_rot90_s16): Delete.
+ 	(vhcaddq_rot270_s16): Delete.
+ 	(vcaddq_rot90_s16): Delete.
+ 	(vcaddq_rot270_s16): Delete.
+ 	(vcaddq_rot90_u32): Delete.
+ 	(vcaddq_rot270_u32): Delete.
+ 	(vhcaddq_rot90_s32): Delete.
+ 	(vhcaddq_rot270_s32): Delete.
+ 	(vcaddq_rot90_s32): Delete.
+ 	(vcaddq_rot270_s32): Delete.
+ 	(vcaddq_rot90_f16): Delete.
+ 	(vcaddq_rot270_f16): Delete.
+ 	(vcaddq_rot90_f32): Delete.
+ 	(vcaddq_rot270_f32): Delete.
+ 	(vcaddq_rot270_m_s8): Delete.
+ 	(vcaddq_rot270_m_s32): Delete.
+ 	(vcaddq_rot270_m_s16): Delete.
+ 	(vcaddq_rot270_m_u8): Delete.
+ 	(vcaddq_rot270_m_u32): Delete.
+ 	(vcaddq_rot270_m_u16): Delete.
+ 	(vcaddq_rot90_m_s8): Delete.
+ 	(vcaddq_rot90_m_s32): Delete.
+ 	(vcaddq_rot90_m_s16): Delete.
+ 	(vcaddq_rot90_m_u8): Delete.
+ 	(vcaddq_rot90_m_u32): Delete.
+ 	(vcaddq_rot90_m_u16): Delete.
+ 	(vhcaddq_rot270_m_s8): Delete.
+ 	(vhcaddq_rot270_m_s32): Delete.
+ 	(vhcaddq_rot270_m_s16): Delete.
+ 	(vhcaddq_rot90_m_s8): Delete.
+ 	(vhcaddq_rot90_m_s32): Delete.
+ 	(vhcaddq_rot90_m_s16): Delete.
+ 	(vcaddq_rot270_m_f32): Delete.
+ 	(vcaddq_rot270_m_f16): Delete.
+ 	(vcaddq_rot90_m_f32): Delete.
+ 	(vcaddq_rot90_m_f16): Delete.
+ 	(vcaddq_rot90_x_s8): Delete.
+ 	(vcaddq_rot90_x_s16): Delete.
+ 	(vcaddq_rot90_x_s32): Delete.
+ 	(vcaddq_rot90_x_u8): Delete.
+ 	(vcaddq_rot90_x_u16): Delete.
+ 	(vcaddq_rot90_x_u32): Delete.
+ 	(vcaddq_rot270_x_s8): Delete.
+ 	(vcaddq_rot270_x_s16): Delete.
+ 	(vcaddq_rot270_x_s32): Delete.
+ 	(vcaddq_rot270_x_u8): Delete.
+ 	(vcaddq_rot270_x_u16): Delete.
+ 	(vcaddq_rot270_x_u32): Delete.
+ 	(vhcaddq_rot90_x_s8): Delete.
+ 	(vhcaddq_rot90_x_s16): Delete.
+ 	(vhcaddq_rot90_x_s32): Delete.
+ 	(vhcaddq_rot270_x_s8): Delete.
+ 	(vhcaddq_rot270_x_s16): Delete.
+ 	(vhcaddq_rot270_x_s32): Delete.
+ 	(vcaddq_rot90_x_f16): Delete.
+ 	(vcaddq_rot90_x_f32): Delete.
+ 	(vcaddq_rot270_x_f16): Delete.
+ 	(vcaddq_rot270_x_f32): Delete.
+ 	(__arm_vcaddq_rot90_u8): Delete.
+ 	(__arm_vcaddq_rot270_u8): Delete.
+ 	(__arm_vhcaddq_rot90_s8): Delete.
+ 	(__arm_vhcaddq_rot270_s8): Delete.
+ 	(__arm_vcaddq_rot90_s8): Delete.
+ 	(__arm_vcaddq_rot270_s8): Delete.
+ 	(__arm_vcaddq_rot90_u16): Delete.
+ 	(__arm_vcaddq_rot270_u16): Delete.
+ 	(__arm_vhcaddq_rot90_s16): Delete.
+ 	(__arm_vhcaddq_rot270_s16): Delete.
+ 	(__arm_vcaddq_rot90_s16): Delete.
+ 	(__arm_vcaddq_rot270_s16): Delete.
+ 	(__arm_vcaddq_rot90_u32): Delete.
+ 	(__arm_vcaddq_rot270_u32): Delete.
+ 	(__arm_vhcaddq_rot90_s32): Delete.
+ 	(__arm_vhcaddq_rot270_s32): Delete.
+ 	(__arm_vcaddq_rot90_s32): Delete.
+ 	(__arm_vcaddq_rot270_s32): Delete.
+ 	(__arm_vcaddq_rot270_m_s8): Delete.
+ 	(__arm_vcaddq_rot270_m_s32): Delete.
+ 	(__arm_vcaddq_rot270_m_s16): Delete.
+ 	(__arm_vcaddq_rot270_m_u8): Delete.
+ 	(__arm_vcaddq_rot270_m_u32): Delete.
+ 	(__arm_vcaddq_rot270_m_u16): Delete.
+ 	(__arm_vcaddq_rot90_m_s8): Delete.
+ 	(__arm_vcaddq_rot90_m_s32): Delete.
+ 	(__arm_vcaddq_rot90_m_s16): Delete.
+ 	(__arm_vcaddq_rot90_m_u8): Delete.
+ 	(__arm_vcaddq_rot90_m_u32): Delete.
+ 	(__arm_vcaddq_rot90_m_u16): Delete.
+ 	(__arm_vhcaddq_rot270_m_s8): Delete.
+ 	(__arm_vhcaddq_rot270_m_s32): Delete.
+ 	(__arm_vhcaddq_rot270_m_s16): Delete.
+ 	(__arm_vhcaddq_rot90_m_s8): Delete.
+ 	(__arm_vhcaddq_rot90_m_s32): Delete.
+ 	(__arm_vhcaddq_rot90_m_s16): Delete.
+ 	(__arm_vcaddq_rot90_x_s8): Delete.
+ 	(__arm_vcaddq_rot90_x_s16): Delete.
+ 	(__arm_vcaddq_rot90_x_s32): Delete.
+ 	(__arm_vcaddq_rot90_x_u8): Delete.
+ 	(__arm_vcaddq_rot90_x_u16): Delete.
+ 	(__arm_vcaddq_rot90_x_u32): Delete.
+ 	(__arm_vcaddq_rot270_x_s8): Delete.
+ 	(__arm_vcaddq_rot270_x_s16): Delete.
+ 	(__arm_vcaddq_rot270_x_s32): Delete.
+ 	(__arm_vcaddq_rot270_x_u8): Delete.
+ 	(__arm_vcaddq_rot270_x_u16): Delete.
+ 	(__arm_vcaddq_rot270_x_u32): Delete.
+ 	(__arm_vhcaddq_rot90_x_s8): Delete.
+ 	(__arm_vhcaddq_rot90_x_s16): Delete.
+ 	(__arm_vhcaddq_rot90_x_s32): Delete.
+ 	(__arm_vhcaddq_rot270_x_s8): Delete.
+ 	(__arm_vhcaddq_rot270_x_s16): Delete.
+ 	(__arm_vhcaddq_rot270_x_s32): Delete.
+ 	(__arm_vcaddq_rot90_f16): Delete.
+ 	(__arm_vcaddq_rot270_f16): Delete.
+ 	(__arm_vcaddq_rot90_f32): Delete.
+ 	(__arm_vcaddq_rot270_f32): Delete.
+ 	(__arm_vcaddq_rot270_m_f32): Delete.
+ 	(__arm_vcaddq_rot270_m_f16): Delete.
+ 	(__arm_vcaddq_rot90_m_f32): Delete.
+ 	(__arm_vcaddq_rot90_m_f16): Delete.
+ 	(__arm_vcaddq_rot90_x_f16): Delete.
+ 	(__arm_vcaddq_rot90_x_f32): Delete.
+ 	(__arm_vcaddq_rot270_x_f16): Delete.
+ 	(__arm_vcaddq_rot270_x_f32): Delete.
+ 	(__arm_vcaddq_rot90): Delete.
+ 	(__arm_vcaddq_rot270): Delete.
+ 	(__arm_vhcaddq_rot90): Delete.
+ 	(__arm_vhcaddq_rot270): Delete.
+ 	(__arm_vcaddq_rot270_m): Delete.
+ 	(__arm_vcaddq_rot90_m): Delete.
+ 	(__arm_vhcaddq_rot270_m): Delete.
+ 	(__arm_vhcaddq_rot90_m): Delete.
+ 	(__arm_vcaddq_rot90_x): Delete.
+ 	(__arm_vcaddq_rot270_x): Delete.
+ 	(__arm_vhcaddq_rot90_x): Delete.
+ 	(__arm_vhcaddq_rot270_x): Delete.
+ 
+ 2023-07-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm_mve_builtins.def (vcaddq_rot90_, vcaddq_rot270_)
+ 	(vcaddq_rot90_f, vcaddq_rot90_f): Add "_" or "_f" suffix.
+ 	* config/arm/iterators.md (mve_insn): Add vcadd, vhcadd.
+ 	(isu): Add UNSPEC_VCADD90, UNSPEC_VCADD270, VCADDQ_ROT270_M_U,
+ 	VCADDQ_ROT270_M_S, VCADDQ_ROT90_M_U, VCADDQ_ROT90_M_S,
+ 	VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S, VHCADDQ_ROT90_S,
+ 	VHCADDQ_ROT270_S.
+ 	(rot): Add VCADDQ_ROT90_M_F, VCADDQ_ROT90_M_S, VCADDQ_ROT90_M_U,
+ 	VCADDQ_ROT270_M_F, VCADDQ_ROT270_M_S, VCADDQ_ROT270_M_U,
+ 	VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, VHCADDQ_ROT90_M_S,
+ 	VHCADDQ_ROT270_M_S.
+ 	(mve_rot): Add VCADDQ_ROT90_M_F, VCADDQ_ROT90_M_S,
+ 	VCADDQ_ROT90_M_U, VCADDQ_ROT270_M_F, VCADDQ_ROT270_M_S,
+ 	VCADDQ_ROT270_M_U, VHCADDQ_ROT90_S, VHCADDQ_ROT270_S,
+ 	VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S.
+ 	(supf): Add VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S,
+ 	VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, UNSPEC_VCADD90,
+ 	UNSPEC_VCADD270.
+ 	(VCADDQ_ROT270_M): Delete.
+ 	(VCADDQ_M_F VxCADDQ VxCADDQ_M): New.
+ 	(VCADDQ_ROT90_M): Delete.
+ 	* config/arm/mve.md (mve_vcaddq<mve_rot><mode>)
+ 	(mve_vhcaddq_rot270_s<mode>, mve_vhcaddq_rot90_s<mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q<mve_rot>_<supf><mode>): ... this.
+ 	(mve_vcaddq<mve_rot><mode>): Rename into ...
+ 	(@mve_<mve_insn>q<mve_rot>_f<mode>): ... this
+ 	(mve_vcaddq_rot270_m_<supf><mode>)
+ 	(mve_vcaddq_rot90_m_<supf><mode>, mve_vhcaddq_rot270_m_s<mode>)
+ 	(mve_vhcaddq_rot90_m_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): ... this.
+ 	(mve_vcaddq_rot270_m_f<mode>, mve_vcaddq_rot90_m_f<mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q<mve_rot>_m_f<mode>): ... this.
+ 
+ 2023-07-14  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110588
+ 	* config/i386/i386.md (*bt<mode>_setcqi): Prefer string form
+ 	preparation statement over braces for a single statement.
+ 	(*bt<mode>_setncqi): Likewise.
+ 	(*bt<mode>_setncqi_2): New define_insn_and_split.
+ 
+ 2023-07-14  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_move): Generalize special
+ 	case inserting of 64-bit values into a TImode register, to handle
+ 	both DImode and DFmode using either *insvti_lowpart_1
+ 	or *isnvti_highpart_1.
+ 
+ 2023-07-14  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/110206
+ 	* fwprop.cc (contains_paradoxical_subreg_p): Move to ...
+ 	* rtlanal.cc (contains_paradoxical_subreg_p): ... here.
+ 	* rtlanal.h (contains_paradoxical_subreg_p): Add prototype.
+ 	* cprop.cc (try_replace_reg): Do not set REG_EQUAL note
+ 	when the original source contains a paradoxical subreg.
+ 
+ 2023-07-14  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* passes.cc (execute_function_todo): Remove
+ 	TODO_rebuild_frequencies
+ 	* passes.def: Add rebuild_frequencies pass.
+ 	* predict.cc (estimate_bb_frequencies): Drop
+ 	force parameter.
+ 	(tree_estimate_probability): Update call of
+ 	estimate_bb_frequencies.
+ 	(rebuild_frequencies): Turn into a pass; verify CFG profile consistency
+ 	first and do not rebuild if not necessary.
+ 	(class pass_rebuild_frequencies): New.
+ 	(make_pass_rebuild_frequencies): New.
+ 	* profile-count.h: Add profile_count::very_large_p.
+ 	* tree-inline.cc (optimize_inline_calls): Do not return
+ 	TODO_rebuild_frequencies
+ 	* tree-pass.h (TODO_rebuild_frequencies): Remove.
+ 	(make_pass_rebuild_frequencies): Declare.
+ 
+ 2023-07-14  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (cond_len_fma<mode>): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	(expand_cond_len_ternop): New function.
+ 	* config/riscv/riscv-v.cc (emit_nonvlmax_fp_ternary_tu_insn): Ditto.
+ 	(expand_cond_len_ternop): Ditto.
+ 
+ 2023-07-14  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR target/110657
+ 	* config/bpf/bpf.md: Enable instruction scheduling.
+ 
+ 2023-07-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* tree-if-conv.cc (INCLUDE_ALGORITHM): Include.
+ 	(struct bb_predicate): Add no_predicate_stmts.
+ 	(set_bb_predicate): Increase predicate count.
+ 	(set_bb_predicate_gimplified_stmts): Conditionally initialize
+ 	no_predicate_stmts.
+ 	(get_bb_num_predicate_stmts): New.
+ 	(init_bb_predicate): Initialzie no_predicate_stmts.
+ 	(release_bb_predicate): Cleanup no_predicate_stmts.
+ 	(insert_gimplified_predicates): Preserve no_predicate_stmts.
+ 
+ 2023-07-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/109154
+ 	* tree-if-conv.cc (gen_simplified_condition,
+ 	gen_phi_nest_statement): New.
+ 	(gen_phi_arg_condition, predicate_scalar_phi): Use it.
+ 
+ 2023-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple.h (gimple_phi_arg): New const overload.
+ 	(gimple_phi_arg_def): Make gimple arg const.
+ 	(gimple_phi_arg_def_from_edge): New inline function.
+ 	* tree-phinodes.h (gimple_phi_arg_imm_use_ptr_from_edge):
+ 	Likewise.
+ 	* tree-ssa-operands.h (PHI_ARG_DEF_FROM_EDGE): Direct to
+ 	new inline function.
+ 	(PHI_ARG_DEF_PTR_FROM_EDGE): Likewise.
+ 
+ 2023-07-14  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc:
+ 	(riscv_implied_info): Add zihintntl item.
+ 	(riscv_ext_version_table): Ditto.
+ 	(riscv_ext_flag_table): Ditto.
+ 	* config/riscv/riscv-opts.h (MASK_ZIHINTNTL): New macro.
+ 	(TARGET_ZIHINTNTL): Ditto.
+ 
+ 2023-07-14  Die Li  <lidie@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.md: Remove redundant portion in and<mode>3.
+ 
+ 2023-07-14  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	PR target/101469
+ 	* config/sh/sh.md (peephole2): Handle case where eliminated reg is also
+ 	used by the address of the following memory operand.
+ 
+ 2023-07-13  Mikael Pettersson  <mikpelinux@gmail.com>
+ 
+ 	PR target/107841
+ 	* config/pdp11/pdp11.cc (pdp11_expand_epilogue): Also
+ 	deallocate alloca-only frame.
+ 
+ 2023-07-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/110624
+ 	* config/darwin.h (DARWIN_PLATFORM_ID): New.
+ 	(LINK_COMMAND_A): Use DARWIN_PLATFORM_ID to pass OS, OS version
+ 	and SDK data to the static linker.
+ 
+ 2023-07-13  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_set_fpscr_rn): Update
+ 	built-in definition return type.
+ 	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Add check,
+ 	define __SET_FPSCR_RN_RETURNS_FPSCR__ macro.
+ 	* config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Add return
+ 	argument to return FPSCR fields.
+ 	* doc/extend.texi (__builtin_set_fpscr_rn): Update description for
+ 	the return value.  Add description for
+ 	__SET_FPSCR_RN_RETURNS_FPSCR__ macro.
+ 
+ 2023-07-13  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/106966
+ 	* config/alpha/alpha.cc (alpha_emit_set_long_const):
+ 	Always use DImode when constructing long const.
+ 
+ 2023-07-13  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* haifa-sched.cc: Change TRUE/FALSE to true/false.
+ 	* ira.cc: Ditto.
+ 	* lra-assigns.cc: Ditto.
+ 	* lra-constraints.cc: Ditto.
+ 	* sel-sched.cc: Ditto.
+ 
+ 2023-07-13  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110293
+ 	PR tree-optimization/110539
+ 	* match.pd: Expand the `x != (typeof x)(x == 0)`
+ 	pattern to handle where the inner and outer comparsions
+ 	are either `!=` or `==` and handle other constants
+ 	than 0.
+ 
+ 2023-07-13  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR middle-end/109520
+ 	* lra-int.h (lra_insn_recog_data): Add member asm_reloads_num.
+ 	(lra_asm_insn_error): New prototype.
+ 	* lra.cc: Include rtl_error.h.
+ 	(lra_set_insn_recog_data): Initialize asm_reloads_num.
+ 	(lra_asm_insn_error): New func whose code is taken from ...
+ 	* lra-assigns.cc (lra_split_hard_reg_for): ... here.  Use lra_asm_insn_error.
+ 	* lra-constraints.cc (curr_insn_transform): Check reloads nummber for asm.
+ 
+ 2023-07-13  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* genmatch.cc (commutative_op): Add COND_LEN_*
+ 	* internal-fn.cc (first_commutative_argument): Ditto.
+ 	(CASE): Ditto.
+ 	(get_unconditional_internal_fn): Ditto.
+ 	(can_interpret_as_conditional_op_p): Ditto.
+ 	(internal_fn_len_index): Ditto.
+ 	* internal-fn.h (can_interpret_as_conditional_op_p): Ditt.
+ 	* tree-ssa-math-opts.cc (convert_mult_to_fma_1): Ditto.
+ 	(convert_mult_to_fma): Ditto.
+ 	(math_opts_dom_walker::after_dom_children): Ditto.
+ 
+ 2023-07-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (vxrm_rtx): New static var.
+ 	(frm_rtx): Ditto.
+ 	(global_state_unknown_p): Removed.
+ 	(riscv_entity_mode_after): Removed.
+ 	(asm_insn_p): New function.
+ 	(vxrm_unknown_p): New function for fixed-point.
+ 	(riscv_vxrm_mode_after): Ditto.
+ 	(frm_unknown_dynamic_p): New function for floating-point.
+ 	(riscv_frm_mode_after): Ditto.
+ 	(riscv_mode_after): Leverage new functions.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_model_load_cost): Remove.
+ 	(vectorizable_load): Adjust the cost handling on VMAT_CONTIGUOUS without
+ 	calling vect_model_load_cost.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_model_load_cost): Assert this function only
+ 	handle memory_access_type VMAT_CONTIGUOUS, remove some
+ 	VMAT_CONTIGUOUS_PERMUTE related handlings.
+ 	(vectorizable_load): Adjust the cost handling on VMAT_CONTIGUOUS_PERMUTE
+ 	without calling vect_model_load_cost.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_model_load_cost): Assert it won't get
+ 	VMAT_CONTIGUOUS_REVERSE any more.
+ 	(vectorizable_load): Adjust the costing handling on
+ 	VMAT_CONTIGUOUS_REVERSE without calling vect_model_load_cost.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Adjust the cost handling on
+ 	VMAT_LOAD_STORE_LANES without calling vect_model_load_cost.
+ 	(vectorizable_load): Remove VMAT_LOAD_STORE_LANES related handling and
+ 	assert it will never get VMAT_LOAD_STORE_LANES.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Adjust the cost handling on
+ 	VMAT_GATHER_SCATTER without calling vect_model_load_cost.
+ 	(vect_model_load_cost): Adjut the assertion on VMAT_GATHER_SCATTER,
+ 	remove VMAT_GATHER_SCATTER related handlings and the related parameter
+ 	gs_info.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Adjust the cost handling
+ 	on VMAT_ELEMENTWISE and VMAT_STRIDED_SLP without calling
+ 	vect_model_load_cost.
+ 	(vect_model_load_cost): Assert it won't get VMAT_ELEMENTWISE and
+ 	VMAT_STRIDED_SLP any more, and remove their related handlings.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (hoist_defs_of_uses): Add one argument HOIST_P.
+ 	(vectorizable_load): Adjust the handling on VMAT_INVARIANT to respect
+ 	hoisting decision and without calling vect_model_load_cost.
+ 	(vect_model_load_cost): Assert it won't get VMAT_INVARIANT any more
+ 	and remove VMAT_INVARIANT related handlings.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vect_build_gather_load_calls): Add the handlings
+ 	on costing with one extra argument cost_vec.
+ 	(vectorizable_load): Adjust the call to vect_build_gather_load_calls.
+ 	(vect_model_load_cost): Assert it won't get VMAT_GATHER_SCATTER with
+ 	gs_info.decl set any more.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Move and duplicate the call
+ 	to vect_model_load_cost down to some different transform paths
+ 	according to the handlings of different vect_memory_access_types.
+ 
+ 2023-07-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree.h (wi::from_mpz): Hide from GENERATOR_FILE.
+ 
+ 2023-07-13  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md
+ 	(len_mask_gather_load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New pattern.
+ 	(len_mask_gather_load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
+ 	(len_mask_gather_load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
+ 	(len_mask_gather_load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
+ 	(len_mask_gather_load<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
+ 	(len_mask_gather_load<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
+ 	(len_mask_gather_load<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
+ 	(len_mask_gather_load<mode><mode>): Ditto.
+ 	(len_mask_scatter_store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
+ 	(len_mask_scatter_store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
+ 	(len_mask_scatter_store<mode><mode>): Ditto.
+ 	* config/riscv/predicates.md (const_1_operand): New predicate.
+ 	(vector_gs_scale_operand_16): Ditto.
+ 	(vector_gs_scale_operand_32): Ditto.
+ 	(vector_gs_scale_operand_64): Ditto.
+ 	(vector_gs_extension_operand): Ditto.
+ 	(vector_gs_scale_operand_16_rv32): Ditto.
+ 	(vector_gs_scale_operand_32_rv32): Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_type): Add gather/scatter.
+ 	(expand_gather_scatter): New function.
+ 	* config/riscv/riscv-v.cc (gen_const_vector_dup): Add gather/scatter.
+ 	(emit_vlmax_masked_store_insn): New function.
+ 	(emit_nonvlmax_masked_store_insn): Ditto.
+ 	(modulo_sel_indices): Ditto.
+ 	(expand_vec_perm): Fix SLP for gather/scatter.
+ 	(prepare_gather_scatter): New function.
+ 	(expand_gather_scatter): Ditto.
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Fix bug of
+ 	(subreg:SI (DI CONST_POLY_INT)).
+ 	* config/riscv/vector-iterators.md: Add gather/scatter.
+ 	* config/riscv/vector.md (vec_duplicate<mode>): Use "@" instead.
+ 	(@vec_duplicate<mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSDI:mode>):
+ 	Fix name.
+ 	(@pred_indexed_<order>store<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
+ 
+ 2023-07-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (cond_len_<optab><mode>): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	(expand_cond_len_binop): New function.
+ 	* config/riscv/riscv-v.cc (emit_nonvlmax_tu_insn): Ditto.
+ 	(emit_nonvlmax_fp_tu_insn): Ditto.
+ 	(need_fp_rounding_p): Ditto.
+ 	(expand_cond_len_binop): Ditto.
+ 	* config/riscv/riscv.cc (riscv_preferred_else_value): Ditto.
+ 	(TARGET_PREFERRED_ELSE_VALUE): New target hook.
+ 
+ 2023-07-12  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-cfg.cc (gimple_duplicate_sese_region): Rename to ...
+ 	(gimple_duplicate_seme_region): ... this; break out profile updating
+ 	code to ...
+ 	* tree-ssa-loop-ch.cc (update_profile_after_ch): ... here.
+ 	(ch_base::copy_headers): Update.
+ 	* tree-cfg.h (gimple_duplicate_sese_region): Rename to ...
+ 	(gimple_duplicate_seme_region): ... this.
+ 
+ 2023-07-12  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/107043
+ 	* range-op.cc (operator_bitwise_and::op1_range): Update bitmask.
+ 
+ 2023-07-12  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/107053
+ 	* gimple-range-op.cc (cfn_popcount): Use known set bits.
+ 
+ 2023-07-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* ira.cc (equiv_init_varies_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(equiv_init_movable_p): Ditto.
+ 	(memref_used_between_p): Ditto.
+ 	* lra-constraints.cc (valid_address_p): Ditto.
+ 
+ 2023-07-12  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op.cc (irange_to_masked_value): Remove.
+ 	(update_known_bitmask): Update irange value/mask pair instead of
+ 	only updating nonzero bits.
+ 
+ 2023-07-12  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-cfg.cc (gimple_duplicate_sese_region): Add ORIG_ELIMINATED_EDGES
+ 	parameter and rewrite profile updating code to handle edges elimination.
+ 	* tree-cfg.h (gimple_duplicate_sese_region): Update prototpe.
+ 	* tree-ssa-loop-ch.cc (loop_invariant_op_p): New function.
+ 	(loop_iv_derived_p): New function.
+ 	(should_duplicate_loop_header_p): Track invariant exit edges; fix handling
+ 	of PHIs and propagation of IV derived variables.
+ 	(ch_base::copy_headers): Pass around the invariant edges hash set.
+ 
+ 2023-07-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* ifcvt.cc (cond_exec_changed_p): Change variable to bool.
+ 	(last_active_insn): Change "skip_use_p" function argument to bool.
+ 	(noce_operand_ok): Change return type from int to bool.
+ 	(find_cond_trap): Ditto.
+ 	(block_jumps_and_fallthru_p): Change "fallthru_p" and
+ 	"jump_p" variables to bool.
+ 	(noce_find_if_block): Change return type from int to bool.
+ 	(cond_exec_find_if_block): Ditto.
+ 	(find_if_case_1): Ditto.
+ 	(find_if_case_2): Ditto.
+ 	(dead_or_predicable): Ditto. Change "reversep" function arg to bool.
+ 	(block_jumps_and_fallthru): Rename from block_jumps_and_fallthru_p.
+ 	(cond_exec_process_insns): Change return type from int to bool.
+ 	Change "mod_ok" function arg to bool.
+ 	(cond_exec_process_if_block): Change return type from int to bool.
+ 	Change "do_multiple_p" function arg to bool.  Change "then_mod_ok"
+ 	variable to bool.
+ 	(noce_emit_store_flag): Change return type from int to bool.
+ 	Change "reversep" function arg to bool.  Change "cond_complex"
+ 	variable to bool.
+ 	(noce_try_move): Change return type from int to bool.
+ 	(noce_try_ifelse_collapse): Ditto.
+ 	(noce_try_store_flag): Ditto. Change "reversep" variable to bool.
+ 	(noce_try_addcc): Change return type from int to bool.  Change
+ 	"subtract" variable to bool.
+ 	(noce_try_store_flag_constants): Change return type from int to bool.
+ 	(noce_try_store_flag_mask): Ditto.  Change "reversep" variable to bool.
+ 	(noce_try_cmove): Change return type from int to bool.
+ 	(noce_try_cmove_arith): Ditto. Change "is_mem" variable to bool.
+ 	(noce_try_minmax): Change return type from int to bool.  Change
+ 	"unsignedp" variable to bool.
+ 	(noce_try_abs): Change return type from int to bool.  Change
+ 	"negate" variable to bool.
+ 	(noce_try_sign_mask): Change return type from int to bool.
+ 	(noce_try_move): Ditto.
+ 	(noce_try_store_flag_constants): Ditto.
+ 	(noce_try_cmove): Ditto.
+ 	(noce_try_cmove_arith): Ditto.
+ 	(noce_try_minmax): Ditto.  Change "unsignedp" variable to bool.
+ 	(noce_try_bitop): Change return type from int to bool.
+ 	(noce_operand_ok): Ditto.
+ 	(noce_convert_multiple_sets): Ditto.
+ 	(noce_convert_multiple_sets_1): Ditto.
+ 	(noce_process_if_block): Ditto.
+ 	(check_cond_move_block): Ditto.
+ 	(cond_move_process_if_block): Ditto. Change "success_p"
+ 	variable to bool.
+ 	(rest_of_handle_if_conversion): Change return type to void.
+ 
+ 2023-07-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* internal-fn.cc (FOR_EACH_CODE_MAPPING): Adapt for COND_LEN_* support.
+ 	(CASE): Ditto.
+ 	(get_conditional_len_internal_fn): New function.
+ 	* internal-fn.h (get_conditional_len_internal_fn): Ditto.
+ 	* tree-vect-stmts.cc (vectorizable_operation): Adapt for COND_LEN_*
+ 	support.
+ 
+ 2023-07-12  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/91681
+ 	* config/i386/i386.md (*add<dwi>3_doubleword_concat_zext): Typo.
+ 
+ 2023-07-12  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/91681
+ 	* config/i386/i386.md (*add<dwi>3_doubleword_concat_zext): New
+ 	define_insn_and_split derived from *add<dwi>3_doubleword_concat
+ 	and *add<dwi>3_doubleword_zext.
+ 
+ 2023-07-12  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110598
+ 	* config/i386/i386.md (peephole2): Check !reg_mentioned_p when
+ 	optimizing rega = 0; rega op= regb for op in [XOR,IOR,PLUS].
+ 	(peephole2): Simplify rega = 0; rega op= rega cases.
+ 
+ 2023-07-12  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_int_compare): If
+ 	testing a TImode SUBREG of a 128-bit vector register against
+ 	zero, use a PTEST instruction instead of first moving it to
+ 	a pair of scalar registers.
+ 
+ 2023-07-12  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* genopinit.cc (main): Adjust maximal number of optabs and
+ 	machine modes.
+ 	* gensupport.cc (find_optab): Shift optab by 20 and mode by
+ 	10 bits.
+ 	* optabs-query.h (optab_handler): Ditto.
+ 	(convert_optab_handler): Ditto.
+ 
+ 2023-07-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110630
+ 	* tree-vect-slp.cc (vect_add_slp_permutation): New
+ 	offset parameter, honor that for the extract code generation.
+ 	(vectorizable_slp_permutation_1): Handle offsetted identities.
+ 
+ 2023-07-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (smul<mode>3_highpart): New pattern.
+ 	(umul<mode>3_highpart): Ditto.
+ 
+ 2023-07-12  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386.md (extendbfsf2_1): Add new AVX512F
+ 	alternative. Adjust original last alternative's "prefix"
+ 	attribute to maybe_evex.
+ 
+ 2023-07-12  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (vec_dupv4sf): Make first alternative use
+ 	vbroadcastss for AVX2. New AVX512F alternative.
+ 	(*vec_dupv4si): New AVX2 and AVX512F alternatives using
+ 	vpbroadcastd. Replace sselog1 by sseshuf1 in "type" attribute.
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/peephole.md: Remove XThead* peephole passes.
+ 	* config/riscv/thead.md: Include thead-peephole.md.
+ 	* config/riscv/thead-peephole.md: New file.
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_regno_ok_for_index_p):
+ 	New prototype.
+ 	(riscv_index_reg_class): Likewise.
+ 	* config/riscv/riscv.cc (riscv_regno_ok_for_index_p): New function.
+ 	(riscv_index_reg_class): New function.
+ 	* config/riscv/riscv.h (INDEX_REG_CLASS): Call new function
+ 	riscv_index_reg_class().
+ 	(REGNO_OK_FOR_INDEX_P): Call new function
+ 	riscv_regno_ok_for_index_p().
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-protos.h (enum riscv_address_type):
+ 	New location of type definition.
+ 	(struct riscv_address_info): Likewise.
+ 	* config/riscv/riscv.cc (enum riscv_address_type):
+ 	Old location of type definition.
+ 	(struct riscv_address_info): Likewise.
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.h (Xmode): New macro.
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_print_operand_address): Use
+ 	output_addr_const rather than riscv_print_operand.
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/thead.md: Adjust constraints of th_addsl.
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/thead.cc (th_mempair_operands_p):
+ 	Fix documentation of th_mempair_order_operands().
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/thead.cc (th_mempair_save_regs):
+ 	Emit REG_FRAME_RELATED_EXPR notes in prologue.
+ 
+ 2023-07-12  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.md: No base-ISA extension splitter for XThead*.
+ 	* config/riscv/thead.md (*extend<SHORT:mode><SUPERQI:mode>2_th_ext):
+ 	New XThead extension INSN.
+ 	(*zero_extendsidi2_th_extu): New XThead extension INSN.
+ 	(*zero_extendhi<GPR:mode>2_th_extu): New XThead extension INSN.
+ 
+ 2023-07-12  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110438
+ 	PR target/110202
+ 	* config/i386/predicates.md
+ 	(int_float_vector_all_ones_operand): New predicate.
+ 	* config/i386/sse.md (*vmov<mode>_constm1_pternlog_false_dep): New
+ 	define_insn.
+ 	(*<avx512>_cvtmask2<ssemodesuffix><mode>_pternlog_false_dep):
+ 	Ditto.
+ 	(*<avx512>_cvtmask2<ssemodesuffix><mode>_pternlog_false_dep):
+ 	Ditto.
+ 	(*<avx512>_cvtmask2<ssemodesuffix><mode>): Adjust to
+ 	define_insn_and_split to avoid false dependence.
+ 	(*<avx512>_cvtmask2<ssemodesuffix><mode>): Ditto.
+ 	(<mask_codefor>one_cmpl<mode>2<mask_name>): Adjust constraint
+ 	of operands 1 to '0' to avoid false dependence.
+ 	(*andnot<mode>3): Ditto.
+ 	(iornot<mode>3): Ditto.
+ 	(*<nlogic><mode>3): Ditto.
+ 
+ 2023-07-12  Mo, Zewei  <zewei.mo@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_intel_cpu): Handle Granite Rapids D.
+ 	* common/config/i386/i386-common.cc:
+ 	(processor_alias_table): Add graniterapids-d.
+ 	* common/config/i386/i386-cpuinfo.h
+ 	(enum processor_subtypes): Add INTEL_COREI7_GRANITERAPIDS_D.
+ 	* config.gcc: Add -march=graniterapids-d.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Handle graniterapids-d.
+ 	* config/i386/i386.h: (PTA_GRANITERAPIDS_D): New.
+ 	* doc/extend.texi: Add graniterapids-d.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2023-07-12  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
+ 	Add OPTION_MASK_ISA_AVX512VL.
+ 	* config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
+ 	Ditto.
+ 
+ 2023-07-11  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (enum insn_type): Add vcompress optimization.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_compress_insn): Ditto.
+ 	(shuffle_compress_patterns): Ditto.
+ 	(expand_vec_perm_const_1): Ditto.
+ 
+ 2023-07-11  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* cfghooks.cc (verify_flow_info): Change "err" variable to bool.
+ 	* cfghooks.h (struct cfg_hooks): Change return type of
+ 	verify_flow_info from integer to bool.
+ 	* cfgrtl.cc (can_delete_note_p): Change return type from int to bool.
+ 	(can_delete_label_p): Ditto.
+ 	(rtl_verify_flow_info): Change return type from int to bool
+ 	and adjust function body accordingly.  Change "err" variable to bool.
+ 	(rtl_verify_flow_info_1): Ditto.
+ 	(free_bb_for_insn): Change return type to void.
+ 	(rtl_merge_blocks): Change "b_empty" variable to bool.
+ 	(try_redirect_by_replacing_jump): Change "fallthru" variable to bool.
+ 	(verify_hot_cold_block_grouping): Change return type from int to bool.
+ 	Change "err" variable to bool.
+ 	(rtl_verify_edges): Ditto.
+ 	(rtl_verify_bb_insns): Ditto.
+ 	(rtl_verify_bb_pointers): Ditto.
+ 	(rtl_verify_bb_insn_chain): Ditto.
+ 	(rtl_verify_fallthru): Ditto.
+ 	(rtl_verify_bb_layout): Ditto.
+ 	(purge_all_dead_edges): Change "purged" variable to bool.
+ 	* cfgrtl.h (free_bb_for_insn): Change return type from int to void.
+ 	* postreload-gcse.cc (expr_hasher::equal): Change "equiv_p" to bool.
+ 	(load_killed_in_block_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(oprs_unchanged_p): Return true/false.
+ 	(rest_of_handle_gcse2): Change return type to void.
+ 	* tree-cfg.cc (gimple_verify_flow_info): Change return type from
+ 	int to bool.  Change "err" variable to bool.
+ 
+ 2023-07-11  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi (-Wuninit-variable-checking=) New item.
+ 
+ 2023-07-11  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* doc/md.texi: Add COND_LEN_* operations for loop control with length.
+ 	* internal-fn.cc (cond_len_unary_direct): Ditto.
+ 	(cond_len_binary_direct): Ditto.
+ 	(cond_len_ternary_direct): Ditto.
+ 	(expand_cond_len_unary_optab_fn): Ditto.
+ 	(expand_cond_len_binary_optab_fn): Ditto.
+ 	(expand_cond_len_ternary_optab_fn): Ditto.
+ 	(direct_cond_len_unary_optab_supported_p): Ditto.
+ 	(direct_cond_len_binary_optab_supported_p): Ditto.
+ 	(direct_cond_len_ternary_optab_supported_p): Ditto.
+ 	* internal-fn.def (COND_LEN_ADD): Ditto.
+ 	(COND_LEN_SUB): Ditto.
+ 	(COND_LEN_MUL): Ditto.
+ 	(COND_LEN_DIV): Ditto.
+ 	(COND_LEN_MOD): Ditto.
+ 	(COND_LEN_RDIV): Ditto.
+ 	(COND_LEN_MIN): Ditto.
+ 	(COND_LEN_MAX): Ditto.
+ 	(COND_LEN_FMIN): Ditto.
+ 	(COND_LEN_FMAX): Ditto.
+ 	(COND_LEN_AND): Ditto.
+ 	(COND_LEN_IOR): Ditto.
+ 	(COND_LEN_XOR): Ditto.
+ 	(COND_LEN_SHL): Ditto.
+ 	(COND_LEN_SHR): Ditto.
+ 	(COND_LEN_FMA): Ditto.
+ 	(COND_LEN_FMS): Ditto.
+ 	(COND_LEN_FNMA): Ditto.
+ 	(COND_LEN_FNMS): Ditto.
+ 	(COND_LEN_NEG): Ditto.
+ 	* optabs.def (OPTAB_D): Ditto.
+ 
+ 2023-07-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110614
+ 	* tree-vect-data-refs.cc (vect_supportable_dr_alignment):
+ 	SLP splats are not suitable for re-align ops.
+ 
+ 2023-07-10  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	* config/rs6000/predicates.md (quad_memory_operand): Remove redundant
+ 	MEM_P usage.
+ 	(vsx_quad_dform_memory_operand): Likewise.
+ 
+ 2023-07-10  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* reorg.cc (stop_search_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(resource_conflicts_p): Ditto.
+ 	(insn_references_resource_p): Change return type from int to bool.
+ 	(insn_sets_resource_p): Ditto.
+ 	(redirect_with_delay_slots_safe_p): Ditto.
+ 	(condition_dominates_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(redirect_with_delay_list_safe_p): Ditto.
+ 	(check_annul_list_true_false): Ditto.  Change "annul_true_p"
+ 	function argument to bool.
+ 	(steal_delay_list_from_target): Change "pannul_p" function
+ 	argument to bool pointer.  Change "must_annul" and "used_annul"
+ 	variables from int to bool.
+ 	(steal_delay_list_from_fallthrough): Ditto.
+ 	(own_thread_p): Change return type from int to bool and adjust
+ 	function body accordingly.  Change "allow_fallthrough" function
+ 	argument to bool.
+ 	(reorg_redirect_jump): Change return type from int to bool.
+ 	(fill_simple_delay_slots): Change "non_jumps_p" function
+ 	argument from int to bool.  Change "maybe_never" varible to bool.
+ 	(fill_slots_from_thread): Change "likely", "thread_if_true" and
+ 	"own_thread" function arguments to bool.  Change "lose" and
+ 	"must_annul" variables to bool.
+ 	(delete_from_delay_slot): Change "had_barrier" variable to bool.
+ 	(try_merge_delay_insns): Change "annul_p" variable to bool.
+ 	(fill_eager_delay_slots): Change "own_target" and "own_fallthrouhg"
+ 	variables to bool.
+ 	(rest_of_handle_delay_slots): Change return type from int to void
+ 	and adjust function body accordingly.
+ 
+ 2023-07-10  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* doc/extend.texi (RISC-V Operand Modifiers): New.
+ 
+ 2023-07-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (add_label_notes): Remove it.
+ 	(insert_insn_end_basic_block): Ditto.
+ 	(pass_vsetvl::commit_vsetvls): Adapt for new helper function.
+ 	* gcse.cc (insert_insn_end_basic_block):  Export as global function.
+ 	* gcse.h (insert_insn_end_basic_block): Ditto.
+ 
+ 2023-07-10  Christophe Lyon   <christophe.lyon@linaro.org>
+ 
+ 	PR target/110268
+ 	* config/arm/arm-builtins.cc (arm_init_mve_builtins): Handle LTO.
+ 	(arm_builtin_decl): Hahndle MVE builtins.
+ 	* config/arm/arm-mve-builtins.cc (builtin_decl): New function.
+ 	(add_unique_function): Fix handling of
+ 	__ARM_MVE_PRESERVE_USER_NAMESPACE.
+ 	(add_overloaded_function): Likewise.
+ 	* config/arm/arm-protos.h (builtin_decl): New declaration.
+ 
+ 2023-07-10  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* doc/sourcebuild.texi (arm_v8_1m_main_cde_mve_fp): Document.
+ 
+ 2023-07-10  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR tree-optimization/110557
+ 	* tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern):
+ 	Ensure the output sign-extended if necessary.
+ 
+ 2023-07-10  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (peephole2): Transform xchg insn with a
+ 	REG_UNUSED note to a (simple) move.
+ 	(*insvti_lowpart_1): New define_insn_and_split.
+ 	(*insvdi_lowpart_1): Likewise.
+ 
+ 2023-07-10  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-features.cc (compute_convert_gain): Tweak
+ 	gains/costs for ROTATE/ROTATERT by integer constant on AVX512VL.
+ 	(general_scalar_chain::convert_rotate): On TARGET_AVX512F generate
+ 	avx512vl_rolv2di or avx412vl_rolv4si when appropriate.
+ 
+ 2023-07-10  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110170
+ 	* config/i386/i386.md (*ieee_max<mode>3_1): New pre_reload
+ 	splitter to detect fp max pattern.
+ 	(*ieee_min<mode>3_1): Ditto, but for fp min pattern.
+ 
+ 2023-07-09  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfg.cc (check_bb_profile): Dump counts with relative frequency.
+ 	(dump_edge_info): Likewise.
+ 	(dump_bb_info): Likewise.
+ 	* profile-count.cc (profile_count::dump): Add comma between quality and
+ 	freq.
+ 
+ 2023-07-08  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/110600
+ 	* cfgloopmanip.cc (scale_loop_profile): Add mising profile_dump check.
+ 
+ 2023-07-08  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/110590
+ 	* cfgloopmanip.cc (scale_loop_profile): Avoid scaling exits within
+ 	inner loops and be more careful about inconsistent profiles.
+ 	(duplicate_loop_body_to_header_edge): Fix profile update when eliminated
+ 	exit is followed by other exit.
+ 
+ 2023-07-08  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* cprop.cc (reg_available_p): Change return type from int to bool.
+ 	(reg_not_set_p): Ditto.
+ 	(try_replace_reg): Ditto.  Change "success" variable to bool.
+ 	(cprop_jump): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(constprop_register): Ditto.
+ 	(cprop_insn): Ditto.  Change "changed" variable to bool.
+ 	(local_cprop_pass): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(bypass_block): Ditto.  Change "change", "may_be_loop_header"
+ 	and "removed_p" variables to bool.
+ 	(bypass_conditional_jumps): Change return type from int to void
+ 	and adjust function body accordingly.  Change "changed"
+ 	variable to bool.
+ 	(one_cprop_pass): Ditto.
+ 
+ 2023-07-08  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* gcse.cc (expr_equiv_p): Change return type from int to bool.
+ 	(oprs_unchanged_p): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(oprs_anticipatable_p): Ditto.
+ 	(oprs_available_p): Ditto.
+ 	(insert_expr_in_table): Ditto.  Change "antic_p" and "avail_p"
+ 	arguments to bool. Change "found" variable to bool.
+ 	(load_killed_in_block_p): Change return type from int to void and
+ 	adjust function body accordingly.  Change "avail_p" argument to bool.
+ 	(pre_expr_reaches_here_p): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(pre_delete): Ditto.  Change "changed" variable to bool.
+ 	(pre_gcse): Change return type from int to void
+ 	and adjust function body accordingly. Change "did_insert" and
+ 	"changed" variables to bool.
+ 	(one_pre_gcse_pass): Change return type from int to void
+ 	and adjust function body accordingly.  Change "changed" variable
+ 	to bool.
+ 	(should_hoist_expr_to_dom): Change return type from int to void
+ 	and adjust function body accordingly.  Change
+ 	"visited_allocated_locally" variable to bool.
+ 	(hoist_code): Change return type from int to void and adjust
+ 	function body accordingly.  Change "changed" variable to bool.
+ 	(one_code_hoisting_pass): Ditto.
+ 	(pre_edge_insert): Change return type from int to void and adjust
+ 	function body accordingly.  Change "did_insert" variable to bool.
+ 	(pre_expr_reaches_here_p_work): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(simple_mem): Ditto.
+ 	(want_to_gcse_p): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(can_assign_to_reg_without_clobbers_p): Update function body
+ 	for bool return type.
+ 	(hash_scan_set): Change "antic_p" and "avail_p" variables to bool.
+ 	(pre_insert_copies): Change "added_copy" variable to bool.
+ 
+ 2023-07-08  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR c++/110595
+ 	PR c++/110596
+ 	* doc/invoke.texi (Warning Options): Fix typos.
+ 
+ 2023-07-07  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* profile-count.cc (profile_count::dump): Add FUN
+ 	parameter; print relative frequency.
+ 	(profile_count::debug): Update.
+ 	* profile-count.h (profile_count::dump): Update
+ 	prototype.
+ 
+ 2023-07-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/43644
+ 	PR target/110533
+ 	* config/i386/i386-expand.cc (ix86_expand_move): Convert SETs of
+ 	TImode destinations from paradoxical SUBREGs (setting the lowpart)
+ 	into explicit zero extensions.  Use *insvti_highpart_1 instruction
+ 	to set the highpart of a TImode destination.
+ 
+ 2023-07-07  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* predict.cc (force_edge_cold): Use
+ 	set_edge_probability_and_rescale_others; improve dumps.
+ 
+ 2023-07-07  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloopmanip.cc (scale_loop_profile): Fix computation of count_in and scaling blocks
+ 	after exit.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Scale loop profile of the epilogue if bound
+ 	is known.
+ 
+ 2023-07-07  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (vec_init): Fix default case
+ 
+ 2023-07-07  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-assigns.cc (assign_by_spills): Add reload insns involving
+ 	reload pseudos with non-refined class to be processed on the next
+ 	sub-pass.
+ 	* lra-constraints.cc (enough_allocatable_hard_regs_p): New func.
+ 	(in_class_p): Use it.
+ 	(print_curr_insn_alt): New func.
+ 	(process_alt_operands): Use it.  Improve debug info.
+ 	(curr_insn_transform): Use print_curr_insn_alt.  Refine reload
+ 	pseudo class if it is not refined yet.
+ 
+ 2023-07-07  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (irange::get_bitmask_from_range): Return all the
+ 	known bits for a singleton.
+ 	(irange::set_range_from_bitmask): Set a range of a singleton when
+ 	all bits are known.
+ 
+ 2023-07-07  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (irange::intersect): Leave normalization to
+ 	caller.
+ 
+ 2023-07-07  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* data-streamer-in.cc (streamer_read_value_range): Adjust for
+ 	value/mask.
+ 	* data-streamer-out.cc (streamer_write_vrange): Same.
+ 	* range-op.cc (operator_cast::fold_range): Same.
+ 	* value-range-pretty-print.cc
+ 	(vrange_printer::print_irange_bitmasks): Same.
+ 	* value-range-storage.cc (irange_storage::write_lengths_address):
+ 	Same.
+ 	(irange_storage::set_irange): Same.
+ 	(irange_storage::get_irange): Same.
+ 	(irange_storage::size): Same.
+ 	(irange_storage::dump): Same.
+ 	* value-range-storage.h: Same.
+ 	* value-range.cc (debug): New.
+ 	(irange_bitmask::dump): New.
+ 	(add_vrange): Adjust for value/mask.
+ 	(irange::operator=): Same.
+ 	(irange::set): Same.
+ 	(irange::verify_range): Same.
+ 	(irange::operator==): Same.
+ 	(irange::contains_p): Same.
+ 	(irange::irange_single_pair_union): Same.
+ 	(irange::union_): Same.
+ 	(irange::intersect): Same.
+ 	(irange::invert): Same.
+ 	(irange::get_nonzero_bits_from_range): Rename to...
+ 	(irange::get_bitmask_from_range): ...this.
+ 	(irange::set_range_from_nonzero_bits): Rename to...
+ 	(irange::set_range_from_bitmask): ...this.
+ 	(irange::set_nonzero_bits): Rename to...
+ 	(irange::update_bitmask): ...this.
+ 	(irange::get_nonzero_bits): Rename to...
+ 	(irange::get_bitmask): ...this.
+ 	(irange::intersect_nonzero_bits): Rename to...
+ 	(irange::intersect_bitmask): ...this.
+ 	(irange::union_nonzero_bits): Rename to...
+ 	(irange::union_bitmask): ...this.
+ 	(irange_bitmask::verify_mask): New.
+ 	* value-range.h (class irange_bitmask): New.
+ 	(irange_bitmask::set_unknown): New.
+ 	(irange_bitmask::unknown_p): New.
+ 	(irange_bitmask::irange_bitmask): New.
+ 	(irange_bitmask::get_precision): New.
+ 	(irange_bitmask::get_nonzero_bits): New.
+ 	(irange_bitmask::set_nonzero_bits): New.
+ 	(irange_bitmask::operator==): New.
+ 	(irange_bitmask::union_): New.
+ 	(irange_bitmask::intersect): New.
+ 	(class irange): Friend vrange_printer.
+ 	(irange::varying_compatible_p): Adjust for bitmask.
+ 	(irange::set_varying): Same.
+ 	(irange::set_nonzero): Same.
+ 
+ 2023-07-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (*vec_extractv2ti): Drop g modifiers.
+ 
+ 2023-07-07  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (@vec_extract_hi_<mode>): Drop last
+ 	alternative. Switch new last alternative's "isa" attribute to
+ 	"avx512vl".
+ 	(vec_extract_hi_v32qi): Likewise.
+ 
+ 2023-07-07  Pan Li  <pan2.li@intel.com>
+ 	    Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_emit_mode_set): Avoid emit insn
+ 	when FRM_MODE_DYN.
+ 	(riscv_mode_entry): Take FRM_MODE_DYN as entry mode.
+ 	(riscv_mode_exit): Likewise for exit mode.
+ 	(riscv_mode_needed): Likewise for needed mode.
+ 	(riscv_mode_after): Likewise for after mode.
+ 
+ 2023-07-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Fix typo.
+ 
+ 2023-07-06  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/25623
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Scale loop frequency to maximal number
+ 	of iterations determined.
+ 	* tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Likewise.
+ 
+ 2023-07-06  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloopmanip.cc (scale_loop_profile): Rewrite exit edge
+ 	probability update to be safe on loops with subloops.
+ 	Make bound parameter to be iteration bound.
+ 	* tree-ssa-loop-ivcanon.cc (try_peel_loop): Update call
+ 	of scale_loop_profile.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Likewise.
+ 
+ 2023-07-06  Hao Liu OS  <hliu@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/110449
+ 	* tree-vect-loop.cc (vectorizable_induction): use vec_n to replace
+ 	vec_loop for the unrolled loop.
+ 
+ 2023-07-06  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfg.cc (set_edge_probability_and_rescale_others): New function.
+ 	(update_bb_profile_for_threading): Use it; simplify the rest.
+ 	* cfg.h (set_edge_probability_and_rescale_others): Declare.
+ 	* profile-count.h (profile_probability::apply_scale): New.
+ 
+ 2023-07-06  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* doc/extend.texi (ARC Built-in Functions): Update documentation
+ 	with missing builtins.
+ 
+ 2023-07-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110556
+ 	* tree-ssa-tail-merge.cc (gimple_equal_p): Check
+ 	assign code and all operands of non-stores.
+ 
+ 2023-07-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110563
+ 	* tree-vectorizer.h (vect_determine_partial_vectors_and_peeling):
+ 	Remove second argument.
+ 	* tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
+ 	Remove for_epilogue_p argument.  Merge assert ...
+ 	(vect_analyze_loop_2): ... with check done before determining
+ 	partial vectors by moving it after.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Adjust.
+ 
+ 2023-07-06  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* ggc-common.cc (gt_pch_note_reorder, gt_pch_save): Tighten up a
+ 	few things re 'reorder' option and strings.
+ 	* stringpool.cc (gt_pch_p_S): This is now 'gcc_unreachable'.
+ 
+ 2023-07-06  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* gengtype-parse.cc: Clean up obsolete parametrized structs
+ 	remnants.
+ 	* gengtype.cc: Likewise.
+ 	* gengtype.h: Likewise.
+ 
+ 2023-07-06  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* gengtype.cc (struct walk_type_data): Remove 'needs_cast_p'.
+ 	Adjust all users.
+ 
+ 2023-07-06  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* gengtype-parse.cc (token_names): Add '"user"'.
+ 	* gengtype.h (gty_token): Add 'UNUSED_PARAM_IS' for use with
+ 	'FIRST_TOKEN_WITH_VALUE'.
+ 
+ 2023-07-06  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* doc/gty.texi (GTY Options) <string_length>: Enhance.
+ 
+ 2023-07-06  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* gengtype.cc (write_root, write_roots): Explicitly reject
+ 	'string_length' option.
+ 	* doc/gty.texi (GTY Options) <string_length>: Document.
+ 
+ 2023-07-06  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* ggc-internal.h (ggc_pch_count_object, ggc_pch_alloc_object)
+ 	(ggc_pch_write_object): Remove 'bool is_string' argument.
+ 	* ggc-common.cc: Adjust.
+ 	* ggc-page.cc: Likewise.
+ 
+ 2023-07-06  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* dwarf2out.cc (mem_loc_descriptor): Handle COPYSIGN.
+ 
+ 2023-07-06  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* doc/extend.texi: Move x86 inlining rule to a new subsubsection
+ 	and add description for inling of function with arch and tune
+ 	attributes.
+ 
+ 2023-07-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110515
+ 	* tree-ssa-pre.cc (compute_avail): Make code dealing
+ 	with hoisting loads with different alias-sets more
+ 	robust.
+ 
+ 2023-07-06  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-stmts.cc (vect_get_strided_load_store_ops): Fix ICE.
+ 
+ 2023-07-06  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_can_inline_p): If callee has
+ 	default arch=x86-64 and tune=generic, do not block the
+ 	inlining to its caller. Also allow callee with different
+ 	arch= to be inlined if it has always_inline attribute and
+ 	it's ISA is subset of caller's.
+ 
+ 2023-07-06  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for
+ 	DF/SFmode AND/IOR/XOR/ANDN operations.
+ 
+ 2023-07-06  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR middle-end/110554
+ 	* tree-vect-generic.cc (expand_vector_condition): For comparisons,
+ 	just build using boolean_type_node instead of the cond_type.
+ 	For non-comparisons/non-scalar-bitmask, build a ` != 0` gimple
+ 	that will feed into the COND_EXPR.
+ 
+ 2023-07-06  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110170
+ 	* config/i386/i386.md (movdf_internal): Disparage slightly for
+ 	2 alternatives (r,v) and (v,r) by adding constraint modifier
+ 	'?'.
+ 
+ 2023-07-06  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/106907
+ 	* config/rs6000/rs6000.cc (rs6000_expand_vector_extract): Remove redundant
+ 	initialization of new_addr.
+ 
+ 2023-07-06  Hao Liu  <hliu@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/110474
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): unscale the VF by suggested
+ 	unroll factor while selecting the epilog vect loop VF.
+ 
+ 2023-07-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (compute_operand_range): Convert to a tail
+ 	call.
+ 
+ 2023-07-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (compute_operand_range): After calling
+ 	compute_operand2_range, recursively call self if needed.
+ 	(compute_operand2_range): Turn into a leaf function.
+ 	(gori_compute::compute_operand1_and_operand2_range): Finish
+ 	operand2 calculation.
+ 	* gimple-range-gori.h (compute_operand2_range): Remove name param.
+ 
+ 2023-07-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (compute_operand_range): After calling
+ 	compute_operand1_range, recursively call self if needed.
+ 	(compute_operand1_range): Turn into a leaf function.
+ 	(gori_compute::compute_operand1_and_operand2_range): Finish
+ 	operand1 calculation.
+ 	* gimple-range-gori.h (compute_operand1_range): Remove name param.
+ 
+ 2023-07-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (compute_operand_range): Check for
+ 	operand interdependence when both op1 and op2 are computed.
+ 	(compute_operand1_and_operand2_range): No checks required now.
+ 
+ 2023-07-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (compute_operand_range): Check for
+ 	a relation between op1 and op2 and use that instead.
+ 	(compute_operand1_range): Don't look for a relation override.
+ 	(compute_operand2_range): Ditto.
+ 
+ 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/contrib.texi (Contributors): Update my entry.
+ 
+ 2023-07-05  Filip Kastl  <filip.kastl@gmail.com>
+ 
+ 	* value-prof.cc (gimple_mod_subtract_transform): Correct edge
+ 	prob calculation.
+ 
+ 2023-07-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* sched-int.h (struct haifa_sched_info): Change can_schedule_ready_p,
+ 	scehdule_more_p and contributes_to_priority indirect frunction
+ 	type from int to bool.
+ 	(no_real_insns_p): Change return type from int to bool.
+ 	(contributes_to_priority): Ditto.
+ 	* haifa-sched.cc (no_real_insns_p): Change return type from
+ 	int to bool and adjust function body accordingly.
+ 	* modulo-sched.cc (try_scheduling_node_in_cycle): Change "success"
+ 	variable type from int to bool.
+ 	(ps_insn_advance_column): Change return type from int to bool.
+ 	(ps_has_conflicts): Ditto. Change "has_conflicts"
+ 	variable type from int to bool.
+ 	* sched-deps.cc (deps_may_trap_p): Change return type from int to bool.
+ 	(conditions_mutex_p): Ditto.
+ 	* sched-ebb.cc (schedule_more_p): Ditto.
+ 	(ebb_contributes_to_priority): Change return type from
+ 	int to bool and adjust function body accordingly.
+ 	* sched-rgn.cc (is_cfg_nonregular): Ditto.
+ 	(check_live_1): Ditto.
+ 	(is_pfree): Ditto.
+ 	(find_conditional_protection): Ditto.
+ 	(is_conditionally_protected): Ditto.
+ 	(is_prisky): Ditto.
+ 	(is_exception_free): Ditto.
+ 	(haifa_find_rgns): Change "unreachable" and "too_large_failure"
+ 	variables from int to bool.
+ 	(extend_rgns): Change "rescan" variable from int to bool.
+ 	(check_live): Change return type from
+ 	int to bool and adjust function body accordingly.
+ 	(can_schedule_ready_p): Ditto.
+ 	(schedule_more_p): Ditto.
+ 	(contributes_to_priority): Ditto.
+ 
+ 2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* doc/md.texi: Document that vec_set and vec_extract must not
+ 	fail.
+ 	* gimple-isel.cc (gimple_expand_vec_set_expr): Rename this...
+ 	(gimple_expand_vec_set_extract_expr): ...to this.
+ 	(gimple_expand_vec_exprs): Call renamed function.
+ 	* internal-fn.cc (vec_extract_direct): Add.
+ 	(expand_vec_extract_optab_fn): New function to expand
+ 	vec_extract optab.
+ 	(direct_vec_extract_optab_supported_p): Add.
+ 	* internal-fn.def (VEC_EXTRACT): Add.
+ 	* optabs.cc (can_vec_extract_var_idx_p): New function.
+ 	* optabs.h (can_vec_extract_var_idx_p): Declare.
+ 
+ 2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md: Add gen_lowpart.
+ 
+ 2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md: Allow register index operand.
+ 
+ 2023-07-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_exact_insn): Use FRM_DYN instead of const0.
+ 
+ 2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md: Use float_truncate.
+ 
+ 2023-07-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* internal-fn.cc (internal_fn_len_index): Apply
+ 	LEN_MASK_GATHER_LOAD/SCATTER_STORE into vectorizer.
+ 	(internal_fn_mask_index): Ditto.
+ 	* optabs-query.cc (supports_vec_gather_load_p): Ditto.
+ 	(supports_vec_scatter_store_p): Ditto.
+ 	* tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Ditto.
+ 	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Ditto.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
+ 	(vect_get_strided_load_store_ops): Ditto.
+ 	(vectorizable_store): Ditto.
+ 	(vectorizable_load): Ditto.
+ 
+ 2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* simplify-rtx.cc (native_encode_rtx): Ditto.
+ 	(native_decode_vector_rtx): Ditto.
+ 	(simplify_const_vector_byte_offset): Ditto.
+ 	(simplify_const_vector_subreg): Ditto.
+ 	* tree.cc (build_truth_vector_type_for_mode): Ditto.
+ 	* varasm.cc (output_constant_pool_2): Ditto.
+ 
+ 2023-07-05  YunQiang Su  <yunqiang.su@cipunited.com>
+ 
+ 	* config/mips/mips.cc (mips_expand_block_move): don't expand for
+ 	r6 with -mno-unaligned-access option if one or both of src and
+ 	dest are unaligned. restruct: return directly if length is not const.
+ 	(mips_block_move_straight): emit_move if ISA_HAS_UNALIGNED_ACCESS.
+ 
+ 2023-07-05  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	PR target/100711
+ 	* config/i386/sse.md: New splitters to simplify
+ 	not;vec_duplicate as a singular vpternlog.
+ 	(one_cmpl<mode>2): Allow broadcast for operand 1.
+ 	(<mask_codefor>one_cmpl<mode>2<mask_name>): Likewise.
+ 
+ 2023-07-05  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	PR target/100711
+ 	* config/i386/sse.md: New splitters to simplify
+ 	not;vec_duplicate;{ior,xor} as vec_duplicate;{iornot,xnor}.
+ 
+ 2023-07-05  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	PR target/100711
+ 	* config/i386/sse.md: Permit non-immediate operand 1 in AVX2
+ 	form of splitter for PR target/100711.
+ 
+ 2023-07-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110541
+ 	* tree.def (VEC_PERM_EXPR): Adjust documentation to reflect
+ 	reality.
+ 
+ 2023-07-05  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	PR target/93768
+ 	* config/i386/sse.md (*andnot<mode>3): Add new alternatives
+ 	for memory form operand 1.
+ 
+ 2023-07-05  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	PR target/93768
+ 	* config/i386/i386.cc (ix86_rtx_costs): Further special-case
+ 	bitwise vector operations.
+ 	* config/i386/sse.md (*iornot<mode>3): New insn.
+ 	(*xnor<mode>3): Likewise.
+ 	(*<nlogic><mode>3): Likewise.
+ 	(andor): New code iterator.
+ 	(nlogic): New code attribute.
+ 	(ternlog_nlogic): Likewise.
+ 
+ 2023-07-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_mark_relevant): Fix typo.
+ 
+ 2023-07-05  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config/riscv/vector.md: Add float16 attr at sew、vlmul and ratio.
+ 
+ 2023-07-05  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (valid_type): Enable FP16 tuple.
+ 	* config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
+ 	(ADJUST_ALIGNMENT): Ditto.
+ 	(RVV_TUPLE_PARTIAL_MODES): Ditto.
+ 	(ADJUST_NUNITS): Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (vfloat16mf4x2_t):
+ 	New types.
+ 	(vfloat16mf4x3_t): Ditto.
+ 	(vfloat16mf4x4_t): Ditto.
+ 	(vfloat16mf4x5_t): Ditto.
+ 	(vfloat16mf4x6_t): Ditto.
+ 	(vfloat16mf4x7_t): Ditto.
+ 	(vfloat16mf4x8_t): Ditto.
+ 	(vfloat16mf2x2_t): Ditto.
+ 	(vfloat16mf2x3_t): Ditto.
+ 	(vfloat16mf2x4_t): Ditto.
+ 	(vfloat16mf2x5_t): Ditto.
+ 	(vfloat16mf2x6_t): Ditto.
+ 	(vfloat16mf2x7_t): Ditto.
+ 	(vfloat16mf2x8_t): Ditto.
+ 	(vfloat16m1x2_t): Ditto.
+ 	(vfloat16m1x3_t): Ditto.
+ 	(vfloat16m1x4_t): Ditto.
+ 	(vfloat16m1x5_t): Ditto.
+ 	(vfloat16m1x6_t): Ditto.
+ 	(vfloat16m1x7_t): Ditto.
+ 	(vfloat16m1x8_t): Ditto.
+ 	(vfloat16m2x2_t): Ditto.
+ 	(vfloat16m2x3_t): Ditto.
+ 	(vfloat16m2x4_t): Ditto.
+ 	(vfloat16m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (vfloat16mf4x2_t): New macro.
+ 	(vfloat16mf4x3_t): Ditto.
+ 	(vfloat16mf4x4_t): Ditto.
+ 	(vfloat16mf4x5_t): Ditto.
+ 	(vfloat16mf4x6_t): Ditto.
+ 	(vfloat16mf4x7_t): Ditto.
+ 	(vfloat16mf4x8_t): Ditto.
+ 	(vfloat16mf2x2_t): Ditto.
+ 	(vfloat16mf2x3_t): Ditto.
+ 	(vfloat16mf2x4_t): Ditto.
+ 	(vfloat16mf2x5_t): Ditto.
+ 	(vfloat16mf2x6_t): Ditto.
+ 	(vfloat16mf2x7_t): Ditto.
+ 	(vfloat16mf2x8_t): Ditto.
+ 	(vfloat16m1x2_t): Ditto.
+ 	(vfloat16m1x3_t): Ditto.
+ 	(vfloat16m1x4_t): Ditto.
+ 	(vfloat16m1x5_t): Ditto.
+ 	(vfloat16m1x6_t): Ditto.
+ 	(vfloat16m1x7_t): Ditto.
+ 	(vfloat16m1x8_t): Ditto.
+ 	(vfloat16m2x2_t): Ditto.
+ 	(vfloat16m2x3_t): Ditto.
+ 	(vfloat16m2x4_t): Ditto.
+ 	(vfloat16m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): New.
+ 	* config/riscv/riscv.md: New.
+ 	* config/riscv/vector-iterators.md: New.
+ 
+ 2023-07-04  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110487
+ 	* match.pd (a !=/== CST1 ? CST2 : CST3): Always
+ 	build a nonstandard integer and use that.
+ 
+ 2023-07-04  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (a?-1:0): Cast type an integer type
+ 	rather the type before the negative.
+ 	(a?0:-1): Likewise.
+ 
+ 2023-07-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (machine_function, xtensa_expand_prologue):
+ 	Change to use HARD_REG_BIT and its macros.
+ 	* config/xtensa/xtensa.md
+ 	(peephole2: regmove elimination during DFmode input reload):
+ 	Likewise.
+ 
+ 2023-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110491
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Check
+ 	whether the PHI args are possibly undefined before folding
+ 	the COND_EXPR.
+ 
+ 2023-07-04  Pan Li  <pan2.li@intel.com>
+ 	    Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* lto-streamer-in.cc (lto_input_mode_table): Stream in the mode
+ 	bits for machine mode table.
+ 	* lto-streamer-out.cc (lto_write_mode_table): Stream out the
+ 	HOST machine mode bits.
+ 	* lto-streamer.h (struct lto_file_decl_data): New fields mode_bits.
+ 	* tree-streamer.cc (streamer_mode_table): Take MAX_MACHINE_MODE
+ 	as the table size.
+ 	* tree-streamer.h (streamer_mode_table): Ditto.
+ 	(bp_pack_machine_mode): Take 1 << ceil_log2 (MAX_MACHINE_MODE)
+ 	as the packing limit.
+ 	(bp_unpack_machine_mode): Ditto with 'file_data->mode_bits'.
+ 
+ 2023-07-04  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* lto-streamer.h (class lto_input_block): Capture
+ 	'lto_file_decl_data *file_data' instead of just
+ 	'unsigned char *mode_table'.
+ 	* ipa-devirt.cc (ipa_odr_read_section): Adjust.
+ 	* ipa-fnsummary.cc (inline_read_section): Likewise.
+ 	* ipa-icf.cc (sem_item_optimizer::read_section): Likewise.
+ 	* ipa-modref.cc (read_section): Likewise.
+ 	* ipa-prop.cc (ipa_prop_read_section, read_replacements_section):
+ 	Likewise.
+ 	* ipa-sra.cc (isra_read_summary_section): Likewise.
+ 	* lto-cgraph.cc (input_cgraph_opt_section): Likewise.
+ 	* lto-section-in.cc (lto_create_simple_input_block): Likewise.
+ 	* lto-streamer-in.cc (lto_read_body_or_constructor)
+ 	(lto_input_toplevel_asms): Likewise.
+ 	* tree-streamer.h (bp_unpack_machine_mode): Likewise.
+ 
+ 2023-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-phiopt.cc (pass_phiopt::execute): Mark SSA undefs.
+ 	(empty_bb_or_one_feeding_into_p): Check for them.
+ 	* tree-ssa.h (gimple_uses_undefined_value_p): Remove.
+ 	* tree-ssa.cc (gimple_uses_undefined_value_p): Likewise.
+ 
+ 2023-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_costing): Remove
+ 	check guarding scalar_niter underflow.
+ 
+ 2023-07-04  Hao Liu  <hliu@os.amperecomputing.com>
+ 
+ 	PR tree-optimization/110531
+ 	* tree-vect-loop.cc (vect_analyze_loop_1): initialize
+ 	slp_done_for_suggested_uf to false.
+ 
+ 2023-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110228
+ 	* tree-ssa-ifcombine.cc (pass_tree_ifcombine::execute):
+ 	Mark SSA may-undefs.
+ 	(bb_no_side_effects_p): Check stmt uses for undefs.
+ 
+ 2023-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110436
+ 	* tree-vect-stmts.cc (vect_mark_relevant): Expand dumping,
+ 	force live but not relevant pattern stmts relevant.
+ 
+ 2023-07-04  Lili Cui  <lili.cui@intel.com>
+ 
+ 	* config/i386/i386.h: Add PTA_ENQCMD and PTA_UINTR to PTA_SIERRAFOREST.
+ 	* doc/invoke.texi: Update new isa to march=sierraforest and grandridge.
+ 
+ 2023-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110495
+ 	* tree.h (TREE_OVERFLOW): Do not mention VECTOR_CSTs
+ 	since we do not set TREE_OVERFLOW on those since the
+ 	introduction of VL vectors.
+ 	* match.pd (x +- CST +- CST): For VECTOR_CST do not look
+ 	at TREE_OVERFLOW to determine validity of association.
+ 
+ 2023-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110310
+ 	* tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
+ 	Move costing part ...
+ 	(vect_analyze_loop_costing): ... here.  Integrate better
+ 	estimate for epilogues from ...
+ 	(vect_analyze_loop_2): Call vect_determine_partial_vectors_and_peeling
+ 	with actual epilogue status.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): ... here and
+ 	avoid cancelling epilogue vectorization.
+ 	(vect_update_epilogue_niters): Remove.  No longer update
+ 	epilogue LOOP_VINFO_NITERS.
+ 
+ 2023-07-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	Revert:
+ 	2023-07-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Fix typo.
+ 
+ 2023-07-04  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* doc/md.texi: Add len_mask_gather_load/len_mask_scatter_store.
+ 	* internal-fn.cc (expand_scatter_store_optab_fn): Ditto.
+ 	(expand_gather_load_optab_fn): Ditto.
+ 	(internal_load_fn_p): Ditto.
+ 	(internal_store_fn_p): Ditto.
+ 	(internal_gather_scatter_fn_p): Ditto.
+ 	(internal_fn_len_index): Ditto.
+ 	(internal_fn_mask_index): Ditto.
+ 	(internal_fn_stored_value_index): Ditto.
+ 	* internal-fn.def (LEN_MASK_GATHER_LOAD): Ditto.
+ 	(LEN_MASK_SCATTER_STORE): Ditto.
+ 	* optabs.def (OPTAB_CD): Ditto.
+ 
+ 2023-07-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(vector_insn_info::parse_insn): Add early break.
+ 
+ 2023-07-04  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md (CRIS_UNSPEC_SWAP_BITS): Remove.
+ 	("cris_swap_bits", "ctzsi2"): Use bitreverse instead.
+ 
+ 2023-07-04  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* dwarf2out.cc (mem_loc_descriptor): Handle BITREVERSE.
+ 
+ 2023-07-03  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add support for zvbb,
+ 	zvbc, zvkg, zvkned, zvknha, zvknhb, zvksed, zvksh, zvkn,
+ 	zvknc, zvkng, zvks, zvksc, zvksg, zvkt and the implied subsets.
+ 	* config/riscv/arch-canonicalize: Add canonicalization info for
+ 	zvkn, zvknc, zvkng, zvks, zvksc, zvksg.
+ 	* config/riscv/riscv-opts.h (MASK_ZVBB): New macro.
+ 	(MASK_ZVBC): Likewise.
+ 	(TARGET_ZVBB): Likewise.
+ 	(TARGET_ZVBC): Likewise.
+ 	(MASK_ZVKG): Likewise.
+ 	(MASK_ZVKNED): Likewise.
+ 	(MASK_ZVKNHA): Likewise.
+ 	(MASK_ZVKNHB): Likewise.
+ 	(MASK_ZVKSED): Likewise.
+ 	(MASK_ZVKSH): Likewise.
+ 	(MASK_ZVKN): Likewise.
+ 	(MASK_ZVKNC): Likewise.
+ 	(MASK_ZVKNG): Likewise.
+ 	(MASK_ZVKS): Likewise.
+ 	(MASK_ZVKSC): Likewise.
+ 	(MASK_ZVKSG): Likewise.
+ 	(MASK_ZVKT): Likewise.
+ 	(TARGET_ZVKG): Likewise.
+ 	(TARGET_ZVKNED): Likewise.
+ 	(TARGET_ZVKNHA): Likewise.
+ 	(TARGET_ZVKNHB): Likewise.
+ 	(TARGET_ZVKSED): Likewise.
+ 	(TARGET_ZVKSH): Likewise.
+ 	(TARGET_ZVKN): Likewise.
+ 	(TARGET_ZVKNC): Likewise.
+ 	(TARGET_ZVKNG): Likewise.
+ 	(TARGET_ZVKS): Likewise.
+ 	(TARGET_ZVKSC): Likewise.
+ 	(TARGET_ZVKSG): Likewise.
+ 	(TARGET_ZVKT): Likewise.
+ 	* config/riscv/riscv.opt: Introduction of riscv_zv{b,k}_subext.
+ 
+ 2023-07-03  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR middle-end/110510
+ 	* except.h (struct eh_landing_pad_d): Add chain_next GTY.
+ 
+ 2023-07-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h: Avoid duplicate multiply_defined specs on
+ 	earlier Darwin versions with shared libgcc.
+ 
+ 2023-07-03  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* tree.h (tree_int_cst_equal): Change return type from int to bool.
+ 	(operand_equal_for_phi_arg_p): Ditto.
+ 	(tree_map_base_marked_p): Ditto.
+ 	* tree.cc (contains_placeholder_p): Update function body
+ 	for bool return type.
+ 	(type_cache_hasher::equal): Ditto.
+ 	(tree_map_base_hash): Change return type
+ 	from int to void and adjust function body accordingly.
+ 	(tree_int_cst_equal): Ditto.
+ 	(operand_equal_for_phi_arg_p): Ditto.
+ 	(get_narrower): Change "first" variable to bool.
+ 	(cl_option_hasher::equal): Update function body for bool return type.
+ 	* ggc.h (ggc_set_mark): Change return type from int to bool.
+ 	(ggc_marked_p): Ditto.
+ 	* ggc-page.cc (gt_ggc_mx): Change return type
+ 	from int to void and adjust function body accordingly.
+ 	(ggc_set_mark): Ditto.
+ 
+ 2023-07-03  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Change order of
+ 	LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
+ 	* config/riscv/riscv-v.cc (expand_load_store): Ditto.
+ 	* doc/md.texi: Ditto.
+ 	* gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Ditto.
+ 	* internal-fn.cc (len_maskload_direct): Ditto.
+ 	(len_maskstore_direct): Ditto.
+ 	(add_len_and_mask_args): New function.
+ 	(expand_partial_load_optab_fn): Change order of
+ 	LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
+ 	(expand_partial_store_optab_fn): Ditto.
+ 	(internal_fn_len_index): New function.
+ 	(internal_fn_mask_index): Change order of
+ 	LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
+ 	(internal_fn_stored_value_index): Ditto.
+ 	(internal_len_load_store_bias): Ditto.
+ 	* internal-fn.h (internal_fn_len_index): New function.
+ 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Change order of
+ 	LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
+ 	* tree-vect-stmts.cc (vectorizable_store): Ditto.
+ 	(vectorizable_load): Ditto.
+ 
+ 2023-07-03  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/110125
+ 	* doc/gm2.texi (Semantic checking): Include examples using
+ 	-Wuninit-variable-checking.
+ 
+ 2023-07-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*double_widen_fnma<mode>): New pattern.
+ 	(*single_widen_fnma<mode>): Ditto.
+ 	(*double_widen_fms<mode>): Ditto.
+ 	(*single_widen_fms<mode>): Ditto.
+ 	(*double_widen_fnms<mode>): Ditto.
+ 	(*single_widen_fnms<mode>): Ditto.
+ 
+ 2023-07-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (@pred_single_widen_mul<any_extend:su><mode>): Change "@"
+ 	into "*" in pattern name which simplifies build files.
+ 	(*pred_single_widen_mul<any_extend:su><mode>): Ditto.
+ 	(*pred_single_widen_mul<mode>): New pattern.
+ 
+ 2023-07-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (vec_extract<mode><Vhalf>): Expect
+ 	the index to be 0 or 1.
+ 
+ 2023-07-03  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	Revert:
+ 	2023-07-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*double_widen_fnma<mode>): New pattern.
+ 	(*single_widen_fnma<mode>): Ditto.
+ 	(*double_widen_fms<mode>): Ditto.
+ 	(*single_widen_fms<mode>): Ditto.
+ 	(*double_widen_fnms<mode>): Ditto.
+ 	(*single_widen_fnms<mode>): Ditto.
+ 
+ 2023-07-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*double_widen_fnma<mode>): New pattern.
+ 	(*single_widen_fnma<mode>): Ditto.
+ 	(*double_widen_fms<mode>): Ditto.
+ 	(*single_widen_fms<mode>): Ditto.
+ 	(*double_widen_fnms<mode>): Ditto.
+ 	(*single_widen_fnms<mode>): Ditto.
+ 
+ 2023-07-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Fix typo.
+ 
+ 2023-07-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110506
+ 	* tree-vect-patterns.cc (vect_recog_rotate_pattern): Re-order
+ 	TYPE_PRECISION access with INTEGRAL_TYPE_P check.
+ 
+ 2023-07-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110506
+ 	* tree-ssa-ccp.cc (get_value_for_expr): Check for integral
+ 	type before relying on TYPE_PRECISION to produce a nonzero mask.
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.md(*and<mode>3_mips16): Generates
+ 	ZEB/ZEH instructions.
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.cc(mips_9bit_offset_address_p): Restrict the
+ 	address register to M16_REGS for MIPS16.
+ 	(BUILTIN_AVAIL_MIPS16E2): Defined a new macro.
+ 	(AVAIL_MIPS16E2_OR_NON_MIPS16): Same as above.
+ 	(AVAIL_NON_MIPS16 (cache..)): Update to
+ 	AVAIL_MIPS16E2_OR_NON_MIPS16.
+ 	* config/mips/mips.h (ISA_HAS_CACHE): Add clause for ISA_HAS_MIPS16E2.
+ 	* config/mips/mips.md (mips_cache): Mark as extended MIPS16.
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.h(ISA_HAS_9BIT_DISPLACEMENT): Add clause
+ 	for ISA_HAS_MIPS16E2.
+ 	(ISA_HAS_SYNC): Same as above.
+ 	(ISA_HAS_LL_SC): Same as above.
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.cc(mips_expand_ins_as_unaligned_store):
+ 	Add logics for generating instruction.
+ 	* config/mips/mips.h(ISA_HAS_LWL_LWR): Add clause for ISA_HAS_MIPS16E2.
+ 	* config/mips/mips.md(mov_<load>l): Generates instructions.
+ 	(mov_<load>r): Same as above.
+ 	(mov_<store>l): Adjusted for the conditions above.
+ 	(mov_<store>r): Same as above.
+ 	(mov_<store>l_mips16e2): Add machine description for `define_insn mov_<store>l_mips16e2`.
+ 	(mov_<store>r_mips16e2): Add machine description for `define_insn mov_<store>r_mips16e2`.
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.cc(mips_symbol_insns_1): Generates LUI instruction.
+ 	(mips_const_insns): Same as above.
+ 	(mips_output_move): Same as above.
+ 	(mips_output_function_prologue): Same as above.
+ 	* config/mips/mips.md: Same as above
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/constraints.md(Yz): New constraints for mips16e2.
+ 	* config/mips/mips-protos.h(mips_bit_clear_p): Declared new function.
+ 	(mips_bit_clear_info): Same as above.
+ 	* config/mips/mips.cc(mips_bit_clear_info): New function for
+ 	generating instructions.
+ 	(mips_bit_clear_p): Same as above.
+ 	* config/mips/mips.h(ISA_HAS_EXT_INS): Add clause for ISA_HAS_MIPS16E2.
+ 	* config/mips/mips.md(extended_mips16): Generates EXT and INS instructions.
+ 	(*and<mode>3): Generates INS instruction.
+ 	(*and<mode>3_mips16): Generates EXT, INS and ANDI instructions.
+ 	(ior<mode>3): Add logics for ORI instruction.
+ 	(*ior<mode>3_mips16_asmacro): Generates ORI instrucion.
+ 	(*ior<mode>3_mips16): Add logics for XORI instruction.
+ 	(*xor<mode>3_mips16): Generates XORI instrucion.
+ 	(*extzv<mode>): Add logics for EXT instruction.
+ 	(*insv<mode>): Add logics for INS instruction.
+ 	* config/mips/predicates.md(bit_clear_operand): New predicate for
+ 	generating bitwise instructions.
+ 	(and_reg_operand): Add logics for generating bitwise instructions.
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.cc(mips_regno_mode_ok_for_base_p): Generate instructions
+ 	that uses global pointer register.
+ 	(mips16_unextended_reference_p): Same as above.
+ 	(mips_pic_base_register): Same as above.
+ 	(mips_init_relocs): Same as above.
+ 	* config/mips/mips.h(MIPS16_GP_LOADS): Defined a new macro.
+ 	(GLOBAL_POINTER_REGNUM): Moved to machine description `mips.md`.
+ 	* config/mips/mips.md(GLOBAL_POINTER_REGNUM): Moved to here from above.
+ 	(*lowsi_mips16_gp):New `define_insn *low<mode>_mips16`.
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.h(ISA_HAS_CONDMOVE): Add condition for ISA_HAS_MIPS16E2.
+ 	* config/mips/mips.md(*mov<GPR:mode>_on_<MOVECC:mode>): Add logics for MOVx insts.
+ 	(*mov<GPR:mode>_on_<MOVECC:mode>_mips16e2): Generate MOVx instruction.
+ 	(*mov<GPR:mode>_on_<GPR2:mode>_ne): Add logics for MOVx insts.
+ 	(*mov<GPR:mode>_on_<GPR2:mode>_ne_mips16e2): Generate MOVx instruction.
+ 	* config/mips/predicates.md(reg_or_0_operand_mips16e2): New predicate for MOVx insts.
+ 
+ 2023-07-03  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.cc(mips_file_start): Add mips16e2 info
+ 	for output file.
+ 	* config/mips/mips.h(__mips_mips16e2): Defined a new
+ 	predefine macro.
+ 	(ISA_HAS_MIPS16E2): Defined a new macro.
+ 	(ASM_SPEC): Pass mmips16e2 to the assembler.
+ 	* config/mips/mips.opt: Add -m(no-)mips16e2 option.
+ 	* config/mips/predicates.md: Add clause for TARGET_MIPS16E2.
+ 	* doc/invoke.texi: Add -m(no-)mips16e2 option..
+ 
+ 2023-07-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/110508
+ 	* tree-ssa-math-opts.cc (match_uaddc_usubc): Only replace re2 with
+ 	REALPART_EXPR opf nlhs if re2 is non-NULL.
+ 
+ 2023-07-02  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
+ 	Simplify.
+ 	* config/xtensa/xtensa.md (*xtensa_clamps):
+ 	Add TARGET_MINMAX to the condition.
+ 
+ 2023-07-02  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*eqne_INT_MIN):
+ 	Add missing ":SI" to the match_operator.
+ 
+ 2023-07-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/108743
+ 	* config/darwin.opt: Add fconstant-cfstrings alias to
+ 	mconstant-cfstrings.
+ 	* doc/invoke.texi: Amend invocation descriptions to reflect
+ 	that the fconstant-cfstrings is a target-option alias and to
+ 	add the missing mconstant-cfstrings option description to the
+ 	Darwin section.
+ 
+ 2023-07-01  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-cfg.cc (gimple_duplicate_sese_region): Add elliminated_edge
+ 	parmaeter; update profile.
+ 	* tree-cfg.h (gimple_duplicate_sese_region): Update prototype.
+ 	* tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Rename to ...
+ 	(static_loop_exit): ... this; return the edge to be elliminated.
+ 	(ch_base::copy_headers): Handle profile updating for eliminated exits.
+ 
+ 2023-07-01  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-features.cc (compute_convert_gain): Provide
+ 	gains/costs for ROTATE and ROTATERT (by an integer constant).
+ 	(general_scalar_chain::convert_rotate): New helper function to
+ 	convert a DImode or SImode rotation by an integer constant into
+ 	SSE vector form.
+ 	(general_scalar_chain::convert_insn): Call the new convert_rotate
+ 	for ROTATE and ROTATERT.
+ 	(general_scalar_to_vector_candidate_p): Consider ROTATE and
+ 	ROTATERT to be candidates if the second operand is an integer
+ 	constant, valid for a rotation (or shift) in the given mode.
+ 	* config/i386/i386-features.h (general_scalar_chain): Add new
+ 	helper method convert_rotate.
+ 
+ 2023-07-01  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/103680
+ 	* cfg.cc (update_bb_profile_for_threading): Fix profile update;
+ 	make message clearer.
+ 
+ 2023-06-30  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR tree-optimization/101832
+ 	* tree-object-size.cc (addr_object_size): Handle structure/union type
+ 	when it has flexible size.
+ 
+ 2023-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gimple-fold.cc (fold_array_ctor_reference): Fix head comment.
+ 	(fold_nonarray_ctor_reference): Likewise.  Specifically deal
+ 	with integral bit-fields.
+ 	(fold_ctor_reference): Make sure that the constructor uses the
+ 	native storage order.
+ 
+ 2023-06-30  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/109849
+ 	* predict.cc (estimate_bb_frequencies): Turn to static function.
+ 	(expr_expected_value_1): Fix handling of binary expressions with
+ 	predicted values.
+ 	* predict.def (PRED_MALLOC_NONNULL): Move later in the priority queue.
+ 	(PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Move to almost top of the priority
+ 	queue.
+ 	* predict.h (estimate_bb_frequencies): No longer declare it.
+ 
+ 2023-06-30  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* fold-const.h (multiple_of_p): Change return type from int to bool.
+ 	* fold-const.cc (split_tree): Change negl_p, neg_litp_p,
+ 	neg_conp_p and neg_var_p variables to bool.
+ 	(const_binop): Change sat_p variable to bool.
+ 	(merge_ranges): Change no_overlap variable to bool.
+ 	(extract_muldiv_1): Change same_p variable to bool.
+ 	(tree_swap_operands_p): Update function body for bool return type.
+ 	(fold_truth_andor): Change commutative variable to bool.
+ 	(multiple_of_p): Change return type
+ 	from int to void and adjust function body accordingly.
+ 	* optabs.h (expand_twoval_unop): Change return type from int to bool.
+ 	(expand_twoval_binop): Ditto.
+ 	(can_compare_p): Ditto.
+ 	(have_add2_insn): Ditto.
+ 	(have_addptr3_insn): Ditto.
+ 	(have_sub2_insn): Ditto.
+ 	(have_insn_for): Ditto.
+ 	* optabs.cc (add_equal_note): Ditto.
+ 	(widen_operand): Change no_extend argument from int to bool.
+ 	(expand_binop): Ditto.
+ 	(expand_twoval_unop): Change return type
+ 	from int to void and adjust function body accordingly.
+ 	(expand_twoval_binop): Ditto.
+ 	(can_compare_p): Ditto.
+ 	(have_add2_insn): Ditto.
+ 	(have_addptr3_insn): Ditto.
+ 	(have_sub2_insn): Ditto.
+ 	(have_insn_for): Ditto.
+ 
+ 2023-06-30  Oluwatamilore Adebayo  <oluwatamilore.adebayo@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(vec_widen_<su>abdl_lo_<mode>, vec_widen_<su>abdl_hi_<mode>):
+ 	Expansions for abd vec widen optabs.
+ 	(aarch64_<su>abdl<mode>_insn): VQW based abdl RTL.
+ 	* config/aarch64/iterators.md (USMAX_EXT): Code attributes
+ 	that give the appropriate extend RTL for the max RTL.
+ 
+ 2023-06-30  Oluwatamilore Adebayo  <oluwatamilore.adebayo@arm.com>
+ 
+ 	* internal-fn.def (VEC_WIDEN_ABD): New internal hilo optab.
+ 	* optabs.def (vec_widen_sabd_optab,
+ 	vec_widen_sabd_hi_optab, vec_widen_sabd_lo_optab,
+ 	vec_widen_sabd_odd_even, vec_widen_sabd_even_optab,
+ 	vec_widen_uabd_optab,
+ 	vec_widen_uabd_hi_optab, vec_widen_uabd_lo_optab,
+ 	vec_widen_uabd_odd_even, vec_widen_uabd_even_optab):
+ 	New optabs.
+ 	* doc/md.texi: Document them.
+ 	* tree-vect-patterns.cc (vect_recog_abd_pattern): Update to
+ 	to build a VEC_WIDEN_ABD call if the input precision is smaller
+ 	than the precision of the output.
+ 	(vect_recog_widen_abd_pattern): Should an ABD expression be
+ 	found preceeding an extension, replace the two with a
+ 	VEC_WIDEN_ABD.
+ 
+ 2023-06-30  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Refactor the common condition.
+ 
+ 2023-06-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110496
+ 	* gimple-ssa-store-merging.cc (find_bswap_or_nop_1): Re-order
+ 	verifying and TYPE_PRECISION query for the BIT_FIELD_REF case.
+ 
+ 2023-06-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110489
+ 	* statistics.cc (curr_statistics_hash): Add argument
+ 	indicating whether we should allocate the hash.
+ 	(statistics_fini_pass): If the hash isn't allocated
+ 	only print the summary header.
+ 
+ 2023-06-30  Segher Boessenkool  <segher@kernel.crashing.org>
+ 	    Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config/nvptx/nvptx.cc (TARGET_LRA_P): Remove.
+ 
+ 2023-06-30  Jovan Dmitrović  <jovan.dmitrovic@syrmia.com>
+ 
+ 	PR target/109435
+ 	* config/mips/mips.cc (mips_function_arg_alignment): Returns
+ 	the alignment of function argument. In case of typedef type,
+ 	it returns the aligment of the aliased type.
+ 	(mips_function_arg_boundary): Relocated calculation of the
+ 	aligment of function arguments.
+ 
+ 2023-06-29  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/109849
+ 	* ipa-fnsummary.cc (decompose_param_expr): Skip
+ 	functions returning its parameter.
+ 	(set_cond_stmt_execution_predicate): Return early
+ 	if predicate was constructed.
+ 
+ 2023-06-29  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR c/77650
+ 	* doc/extend.texi: Document GCC extension on a structure containing
+ 	a flexible array member to be a member of another structure.
+ 
+ 2023-06-29  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* print-tree.cc (print_node): Print new bit type_include_flexarray.
+ 	* tree-core.h (struct tree_type_common): Use bit no_named_args_stdarg_p
+ 	as type_include_flexarray for RECORD_TYPE or UNION_TYPE.
+ 	* tree-streamer-in.cc (unpack_ts_type_common_value_fields): Stream
+ 	in bit no_named_args_stdarg_p properly for its corresponding type.
+ 	* tree-streamer-out.cc (pack_ts_type_common_value_fields): Stream
+ 	out bit no_named_args_stdarg_p properly for its corresponding type.
+ 	* tree.h (TYPE_INCLUDES_FLEXARRAY): New macro TYPE_INCLUDES_FLEXARRAY.
+ 
+ 2023-06-29  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-vrp.cc (maybe_set_nonzero_bits): Move from here...
+ 	* tree-ssa-dom.cc (maybe_set_nonzero_bits): ...to here.
+ 	* tree-vrp.h (maybe_set_nonzero_bits): Remove.
+ 
+ 2023-06-29  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (frange::set): Do not call verify_range.
+ 	(frange::normalize_kind): Verify range.
+ 	(frange::union_nans): Do not call verify_range.
+ 	(frange::union_): Same.
+ 	(frange::intersect): Same.
+ 	(irange::irange_single_pair_union): Call normalize_kind if
+ 	necessary.
+ 	(irange::union_): Same.
+ 	(irange::intersect): Same.
+ 	(irange::set_range_from_nonzero_bits): Verify range.
+ 	(irange::set_nonzero_bits): Call normalize_kind if necessary.
+ 	(irange::get_nonzero_bits): Tweak comment.
+ 	(irange::intersect_nonzero_bits): Call normalize_kind if
+ 	necessary.
+ 	(irange::union_nonzero_bits): Same.
+ 	* value-range.h (irange::normalize_kind): Verify range.
+ 
+ 2023-06-29  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* cselib.h (rtx_equal_for_cselib_1):
+ 	Change return type from int to bool.
+ 	(references_value_p): Ditto.
+ 	(rtx_equal_for_cselib_p): Ditto.
+ 	* expr.h (can_store_by_pieces): Ditto.
+ 	(try_casesi): Ditto.
+ 	(try_tablejump): Ditto.
+ 	(safe_from_p): Ditto.
+ 	* sbitmap.h (bitmap_equal_p): Ditto.
+ 	* cselib.cc (references_value_p): Change return type
+ 	from int to void and adjust function body accordingly.
+ 	(rtx_equal_for_cselib_1): Ditto.
+ 	* expr.cc (is_aligning_offset): Ditto.
+ 	(can_store_by_pieces): Ditto.
+ 	(mostly_zeros_p): Ditto.
+ 	(all_zeros_p): Ditto.
+ 	(safe_from_p): Ditto.
+ 	(is_aligning_offset): Ditto.
+ 	(try_casesi): Ditto.
+ 	(try_tablejump): Ditto.
+ 	(store_constructor): Change "need_to_clear" and
+ 	"const_bounds_p" variables to bool.
+ 	* sbitmap.cc (bitmap_equal_p): 	Change return type from int to bool.
+ 
+ 2023-06-29  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-ssa-math-opts.cc (divmod_candidate_p): Use
+ 	element_precision.
+ 
+ 2023-06-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110460
+ 	* tree-vect-stmts.cc (get_related_vectype_for_scalar_type):
+ 	Only allow integral, pointer and scalar float type scalar_type.
+ 
+ 2023-06-29  Lili Cui  <lili.cui@intel.com>
+ 
+ 	PR tree-optimization/110148
+ 	* tree-ssa-reassoc.cc (rewrite_expr_tree_parallel): Handle loop-carried
+ 	ops in this function.
+ 
+ 2023-06-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110452
+ 	* expr.cc (store_constructor): Handle uniform boolean
+ 	vectors with integer mode specially.
+ 
+ 2023-06-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110461
+ 	* match.pd (bitop (convert@2 @0) (convert?@3 @1)): Disable
+ 	for VECTOR_TYPE_P.
+ 
+ 2023-06-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* vec.h (gt_pch_nx): Add overloads for va_gc_atomic.
+ 	(array_slice): Relax va_gc constructor to handle all vectors
+ 	with a vl_embed layout.
+ 
+ 2023-06-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_emit_mode_set): Add emit for FRM.
+ 	(riscv_mode_needed): Likewise.
+ 	(riscv_entity_mode_after): Likewise.
+ 	(riscv_mode_after): Likewise.
+ 	(riscv_mode_entry): Likewise.
+ 	(riscv_mode_exit): Likewise.
+ 	* config/riscv/riscv.h (NUM_MODES_FOR_MODE_SWITCHING): Add number
+ 	for FRM.
+ 	* config/riscv/riscv.md: Add FRM register.
+ 	* config/riscv/vector-iterators.md: Add FRM type.
+ 	* config/riscv/vector.md (frm_mode): Define new attr for FRM mode.
+ 	(fsrm): Define new insn for fsrm instruction.
+ 
+ 2023-06-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (enum floating_point_rounding_mode):
+ 	Add macro for static frm min and max.
+ 	* config/riscv/riscv-vector-builtins-bases.cc
+ 	(class binop_frm): New class for floating-point with frm.
+ 	(BASE): Add vfadd for frm.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Likewise.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vfadd_frm): Likewise.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(struct alu_frm_def): New struct for alu with frm.
+ 	(SHAPE): Add alu with frm.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Likewise.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_checker::report_out_of_range_and_not): New function
+ 	for report out of range and not val.
+ 	(function_checker::require_immediate_range_or): New function
+ 	for checking in range or one val.
+ 	* config/riscv/riscv-vector-builtins.h: Add function decl.
+ 
+ 2023-06-29  Cui, Lili  <lili.cui@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Remove model value 0xa8
+ 	from Rocketlake, move model value 0xbf from Alderlake to Raptorlake.
+ 
+ 2023-06-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR target/110144
+ 	* config/cris/cris.cc (cris_postdbr_cmpelim): Don't apply PATTERN
+ 	to insn before validating it.
+ 
+ 2023-06-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR middle-end/110334
+ 	* ipa-fnsummary.h (ipa_fn_summary): Add
+ 	safe_to_inline_to_always_inline.
+ 	* ipa-inline.cc (can_early_inline_edge_p): ICE
+ 	if SSA is not built; do cycle checking for
+ 	always_inline functions.
+ 	(inline_always_inline_functions): Be recrusive;
+ 	watch for cycles; do not updat overall summary.
+ 	(early_inliner): Do not give up on always_inlines.
+ 	* ipa-utils.cc (ipa_reverse_postorder): Do not skip
+ 	always inlines.
+ 
+ 2023-06-28  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* output.h (leaf_function_p): Change return type from int to bool.
+ 	(final_forward_branch_p): Ditto.
+ 	(only_leaf_regs_used): Ditto.
+ 	(maybe_assemble_visibility): Ditto.
+ 	* varasm.h (supports_one_only): Ditto.
+ 	* rtl.h (compute_alignments): Change return type from int to void.
+ 	* final.cc (app_on): Change return type from int to bool.
+ 	(compute_alignments): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(shorten_branches):  Change "something_changed" variable
+ 	type from int to bool.
+ 	(leaf_function_p):  Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(final_forward_branch_p): Ditto.
+ 	(only_leaf_regs_used): Ditto.
+ 	* varasm.cc (contains_pointers_p): Change return type from
+ 	int to bool and adjust function body accordingly.
+ 	(compare_constant): Ditto.
+ 	(maybe_assemble_visibility): Ditto.
+ 	(supports_one_only): Ditto.
+ 
+ 2023-06-28  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	PR debug/110308
+ 	* regcprop.cc (maybe_mode_change): Check stack_pointer_rtx mode.
+ 	(maybe_copy_reg_attrs): New function.
+ 	(find_oldest_value_reg): Use maybe_copy_reg_attrs.
+ 	(copyprop_hardreg_forward_1): Ditto.
+ 
+ 2023-06-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110434
+ 	* tree-nrv.cc (pass_nrv::execute): Remove CLOBBERs of
+ 	VAR we replace with <retval>.
+ 
+ 2023-06-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110451
+ 	* tree-ssa-loop-im.cc (stmt_cost): [VEC_]COND_EXPR and
+ 	tcc_comparison are expensive.
+ 
+ 2023-06-28  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_branch): Also use ptest
+ 	for TImode comparisons on 32-bit architectures.
+ 	* config/i386/i386.md (cbranch<mode>4): Change from SDWIM to
+ 	SWIM1248x to exclude/avoid TImode being conditional on -m64.
+ 	(cbranchti4): New define_expand for TImode on both TARGET_64BIT
+ 	and/or with TARGET_SSE4_1.
+ 	* config/i386/predicates.md (ix86_timode_comparison_operator):
+ 	New predicate that depends upon TARGET_64BIT.
+ 	(ix86_timode_comparison_operand): Likewise.
+ 
+ 2023-06-28  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/78794
+ 	* config/i386/i386-features.cc (compute_convert_gain): Provide
+ 	more accurate gains for conversion of scalar comparisons to
+ 	PTEST.
+ 
+ 2023-06-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110443
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Reject non-grouped
+ 	gather loads.
+ 
+ 2023-06-28  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000.md (peephole2 for compare_and_move): New.
+ 	(peephole2 for move_and_compare): New.
+ 	(mode_iterator WORD): New.  Set the mode to SI/DImode by
+ 	TARGET_POWERPC64.
+ 	(*mov<mode>_internal2): Change the mode iterator from P to WORD.
+ 	(split pattern for compare_and_move): Likewise.
+ 
+ 2023-06-28  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*double_widen_fma<mode>): New pattern.
+ 	(*single_widen_fma<mode>): Ditto.
+ 
+ 2023-06-28  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/104124
+ 	* config/rs6000/altivec.md (*altivec_vupkhs<VU_char>_direct): Rename
+ 	to...
+ 	(altivec_vupkhs<VU_char>_direct): ...this.
+ 	* config/rs6000/predicates.md (vspltisw_vupkhsw_constant_split): New
+ 	predicate to test if a constant can be loaded with vspltisw and
+ 	vupkhsw.
+ 	(easy_vector_constant): Call vspltisw_vupkhsw_constant_p to Check if
+ 	a vector constant can be synthesized with a vspltisw and a vupkhsw.
+ 	* config/rs6000/rs6000-protos.h (vspltisw_vupkhsw_constant_p):
+ 	Declare.
+ 	* config/rs6000/rs6000.cc (vspltisw_vupkhsw_constant_p): New
+ 	function to return true if OP mode is V2DI and can be synthesized
+ 	with vupkhsw and vspltisw.
+ 	* config/rs6000/vsx.md (*vspltisw_v2di_split): New insn to load up
+ 	constants with vspltisw and vupkhsw.
+ 
+ 2023-06-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/110377
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Pass statement to
+ 	the ranger query.
+ 	(ipa_analyze_node): Enable ranger.
+ 
+ 2023-06-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree.h (TYPE_PRECISION): Check for non-VECTOR_TYPE.
+ 	(TYPE_PRECISION_RAW): Provide raw access to the precision
+ 	field.
+ 	* tree.cc (verify_type_variant): Compare TYPE_PRECISION_RAW.
+ 	(gimple_canonical_types_compatible_p): Likewise.
+ 	* tree-streamer-out.cc (pack_ts_type_common_value_fields):
+ 	Stream TYPE_PRECISION_RAW.
+ 	* tree-streamer-in.cc (unpack_ts_type_common_value_fields):
+ 	Likewise.
+ 	* lto-streamer-out.cc (hash_tree): Hash TYPE_PRECISION_RAW.
+ 
+ 2023-06-28  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/extend.texi (zero-call-used-regs): Document leafy and
+ 	variants thereof.
+ 	* flag-types.h (zero_regs_flags): Add LEAFY_MODE, as well as
+ 	LEAFY and variants.
+ 	* function.cc (gen_call_ued_regs_seq): Set only_used for leaf
+ 	functions in leafy mode.
+ 	* opts.cc (zero_call_used_regs_opts): Add leafy and variants.
+ 
+ 2023-06-28  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Adapt expand.
+ 	* config/riscv/vector.md (@pred_single_widen_<plus_minus:optab><mode>):
+ 	Remove.
+ 	(@pred_single_widen_add<mode>): New pattern.
+ 	(@pred_single_widen_sub<mode>): New pattern.
+ 
+ 2023-06-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_invalid_conversion): New function.
+ 	(TARGET_INVALID_CONVERSION): Define as
+ 	ix86_invalid_conversion.
+ 
+ 2023-06-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (<optab><vnconvert><mode>2): New
+ 	expander.
+ 	(<float_cvt><vnconvert><mode>2): Ditto.
+ 	(<optab><mode><vnconvert>2): Ditto.
+ 	(<float_cvt><mode><vnconvert>2): Ditto.
+ 	* config/riscv/vector-iterators.md: Add vnconvert.
+ 
+ 2023-06-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (extend<v_double_trunc><mode>2): New
+ 	expander.
+ 	(extend<v_quad_trunc><mode>2): Ditto.
+ 	(trunc<mode><v_double_trunc>2): Ditto.
+ 	(trunc<mode><v_quad_trunc>2): Ditto.
+ 	* config/riscv/vector-iterators.md: Add VQEXTF and HF to
+ 	V_QUAD_TRUNC and v_quad_trunc.
+ 
+ 2023-06-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (<float_cvt><vconvert><mode>2): New
+ 	expander.
+ 
+ 2023-06-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (copysign<mode>3): Add expander.
+ 	(xorsign<mode>3): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vfsgnjn):
+ 	New class.
+ 	* config/riscv/vector-iterators.md (copysign): Remove ncopysign.
+ 	(xorsign): Ditto.
+ 	(n): Ditto.
+ 	(x): Ditto.
+ 	* config/riscv/vector.md (@pred_ncopysign<mode>): Split off.
+ 	(@pred_ncopysign<mode>_scalar): Ditto.
+ 
+ 2023-06-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md: VF_AUTO -> VF.
+ 	* config/riscv/vector-iterators.md: Introduce VF_ZVFHMIN,
+ 	VWEXTF_ZVFHMIN and use TARGET_ZVFH in VWCONVERTI, VHF and
+ 	VHF_LMUL1.
+ 	* config/riscv/vector.md: Use new iterators.
+ 
+ 2023-06-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* match.pd: Use element_mode and check if target supports
+ 	operation with new type.
+ 
+ 2023-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svdupq_impl::fold_nonconst_dupq): New method.
+ 	(svdupq_impl::fold): Call fold_nonconst_dupq.
+ 
+ 2023-06-27  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR middle-end/110420
+ 	PR middle-end/103979
+ 	PR middle-end/98619
+ 	* gimplify.cc (gimplify_asm_expr): Mark asm with labels as volatile.
+ 
+ 2023-06-27  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (decide_whether_version_node): Adjust comment.
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Adjust
+ 	for Value_Range.
+ 	(set_switch_stmt_execution_predicate): Same.
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
+ 
+ 2023-06-27  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Adjust for use with
+ 	ipa_vr instead of value_range.
+ 	(gt_pch_nx): Same.
+ 	(gt_ggc_mx): Same.
+ 	(ipa_get_value_range): Same.
+ 	* value-range.cc (gt_pch_nx): Move to ipa-prop.cc and adjust for
+ 	ipa_vr.
+ 	(gt_ggc_mx): Same.
+ 
+ 2023-06-27  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (ipa_vr_operation_and_type_effects): New.
+ 	* ipa-prop.cc (ipa_get_value_range): Adjust for ipa_vr.
+ 	(ipa_set_jfunc_vr): Take a range.
+ 	(ipa_compute_jump_functions_for_edge): Pass range to
+ 	ipa_set_jfunc_vr.
+ 	(ipa_write_jump_function): Call streamer write helper.
+ 	(ipa_read_jump_function): Call streamer read helper.
+ 	* ipa-prop.h (class ipa_vr): Change m_vr to an ipa_vr.
+ 
+ 2023-06-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gengtype-parse.cc (consume_until_comma_or_eos): Parse "= { ... }"
+ 	as a probable initializer rather than a probable complete statement.
+ 
+ 2023-06-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/96208
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Allow
+ 	a non-grouped load if it is the same for all lanes.
+ 	(vect_build_slp_tree_2): Handle not grouped loads.
+ 	(vect_optimize_slp_pass::remove_redundant_permutations):
+ 	Likewise.
+ 	(vect_transform_slp_perm_load_1): Likewise.
+ 	* tree-vect-stmts.cc (vect_model_load_cost): Likewise.
+ 	(get_group_load_store_type): Likewise.  Handle
+ 	invariant accesses.
+ 	(vectorizable_load): Likewise.
+ 
+ 2023-06-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR rtl-optimization/110237
+ 	* config/i386/sse.md (<avx512>_store<mode>_mask): Refine with
+ 	UNSPEC_MASKMOV.
+ 	(maskstore<mode><avx512fmaskmodelower): Ditto.
+ 	(*<avx512>_store<mode>_mask): New define_insn, it's renamed
+ 	from original <avx512>_store<mode>_mask.
+ 
+ 2023-06-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-features.cc (pass_insert_vzeroupper:gate):
+ 	Move flag_expensive_optimizations && !optimize_size to ..
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	.. this, it makes -mvzeroupper independent of optimization
+ 	level, but still keeps the behavior of architecture
+ 	tuning(emit_vzeroupper) unchanged.
+ 
+ 2023-06-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/82735
+ 	* config/i386/i386.cc (ix86_avx_u127_mode_needed): Don't emit
+ 	vzeroupper for vzeroupper call_insn.
+ 
+ 2023-06-27  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* doc/extend.texi (__builtin_alloca_with_align_and_max): Fix
+ 	defbuiltin usage.
+ 
+ 2023-06-27  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Fix stepped vector
+ 	with base != 0.
+ 
+ 2023-06-26  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* doc/extend.texi (access attribute): Add
+ 	cindex for it.
+ 	(interrupt/interrupt_handler attribute):
+ 	Likewise.
+ 
+ 2023-06-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_sqrshrun_n<mode>_insn):
+ 	Use <DWI> instead of <V2XWIDE>.
+ 	(aarch64_sqrshrun_n<mode>): Likewise.
+ 
+ 2023-06-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_const_vec_rsra_rnd_imm_p):
+ 	Rename to...
+ 	(aarch64_rnd_imm_p): ... This.
+ 	* config/aarch64/predicates.md (aarch64_simd_rsra_rnd_imm_vec):
+ 	Rename to...
+ 	(aarch64_int_rnd_operand): ... This.
+ 	(aarch64_simd_rshrn_imm_vec): Delete.
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sra_op>rsra_n<mode>_insn):
+ 	Adjust for the above.
+ 	(aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): Likewise.
+ 	(*aarch64_<shrn_op>rshrn_n<mode>_insn): Likewise.
+ 	(*aarch64_sqrshrun_n<mode>_insn<vczle><vczbe>): Likewise.
+ 	(aarch64_sqrshrun_n<mode>_insn): Likewise.
+ 	(aarch64_<shrn_op>rshrn2_n<mode>_insn_le): Likewise.
+ 	(aarch64_<shrn_op>rshrn2_n<mode>_insn_be): Likewise.
+ 	(aarch64_sqrshrun2_n<mode>_insn_le): Likewise.
+ 	(aarch64_sqrshrun2_n<mode>_insn_be): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_const_vec_rsra_rnd_imm_p):
+ 	Rename to...
+ 	(aarch64_rnd_imm_p): ... This.
+ 
+ 2023-06-26  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_encode_section_info): Set
+ 	SYMBOL_FLAG_SET_NOTALIGN2 only if the symbol has explicitely been
+ 	misaligned.
+ 
+ 2023-06-26  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/109849
+ 	* tree-ssa-dce.cc (make_forwarders_with_degenerate_phis): Fix profile
+ 	count of newly constructed forwarder block.
+ 
+ 2023-06-26  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* doc/optinfo.texi: Fix "steam" -> "stream".
+ 
+ 2023-06-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Add LEN_MASK_STORE and
+ 	fix LEN_STORE.
+ 	(dse_optimize_stmt): Add LEN_MASK_STORE.
+ 
+ 2023-06-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Fix gimple
+ 	fold of LOAD/STORE with length.
+ 
+ 2023-06-26  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (compute_operand1_and_operand2_range):
+ 	Check for interdependence between operands 1 and 2.
+ 
+ 2023-06-26  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Take multi_step_cvt
+ 	into account when costing non-widening/truncating conversions.
+ 
+ 2023-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110381
+ 	* tree-vect-slp.cc (vect_optimize_slp_pass::start_choosing_layouts):
+ 	Materialize permutes before fold-left reductions.
+ 
+ 2023-06-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.h: Remove duplicated decl.
+ 
+ 2023-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* varasm.cc (initializer_constant_valid_p_1): Also
+ 	constrain the type of value to be scalar integral
+ 	before dispatching to narrowing_initializer_constant_valid_p.
+ 
+ 2023-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-scopedtables.cc (hashable_expr_equal_p):
+ 	Use element_precision.
+ 
+ 2023-06-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (vcond<V:mode><VI:mode>): Remove redundant
+ 	vcond patterns.
+ 	(vcondu<V:mode><VI:mode>): Ditto.
+ 	* config/riscv/riscv-protos.h (expand_vcond): Ditto.
+ 	* config/riscv/riscv-v.cc (expand_vcond): Ditto.
+ 
+ 2023-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110392
+ 	* gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
+ 	Do early exits on true/false predicate only after normalization.
+ 
+ 2023-06-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Change name "len" into
+ 	"length".
+ 
+ 2023-06-26  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (peephole2): Simplify zeroing a register
+ 	followed by an IOR, XOR or PLUS operation on it, into a move.
+ 	(*ashl<dwi>3_doubleword_highpart): New define_insn_and_split to
+ 	eliminate (and hide from reload) unnecessary word to doubleword
+ 	extensions that are followed by left shifts by sufficiently large,
+ 	but valid, bit counts.
+ 
+ 2023-06-26  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/110371
+ 	PR tree-optimization/110018
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Use cvt_op to
+ 	save intermediate type operand instead of "subtle" vec_dest
+ 	for case NONE.
+ 
+ 2023-06-26  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/110371
+ 	PR tree-optimization/110018
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Don't use
+ 	intermiediate type for FIX_TRUNC_EXPR when ftrapping-math.
+ 
+ 2023-06-26  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_tree):
+ 	Override tune_string with arch_string if tune_string is not
+ 	explicitly specified.
+ 
+ 2023-06-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vector_insn_info::parse_insn): Ehance
+ 	AVL propagation.
+ 	* config/riscv/riscv-vsetvl.h: New function.
+ 
+ 2023-06-25  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: change emit_insn to
+ 	emit_move_insn
+ 
+ 2023-06-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (len_load_<mode>): Remove.
+ 	(len_maskload<mode><vm>): Remove.
+ 	(len_store_<mode>): New pattern.
+ 	(len_maskstore<mode><vm>): New pattern.
+ 	* config/riscv/predicates.md (autovec_length_operand): New predicate.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	(expand_load_store): New function.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_masked_insn): Ditto.
+ 	(emit_nonvlmax_masked_insn): Ditto.
+ 	(expand_load_store): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_contiguous_store_insn): Add avl_type operand
+ 	into pred_store.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-06-25  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* internal-fn.cc (expand_partial_store_optab_fn): Fix bug of BIAS
+ 	argument index.
+ 
+ 2023-06-25  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Revert.
+ 
+ 2023-06-25  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (valid_type): Revert changes.
+ 	* config/riscv/riscv-modes.def (RVV_TUPLE_MODES): Ditto.
+ 	(ADJUST_ALIGNMENT): Ditto.
+ 	(RVV_TUPLE_PARTIAL_MODES): Ditto.
+ 	(ADJUST_NUNITS): Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (vfloat16mf4x2_t): Ditto.
+ 	(vfloat16mf4x3_t): Ditto.
+ 	(vfloat16mf4x4_t): Ditto.
+ 	(vfloat16mf4x5_t): Ditto.
+ 	(vfloat16mf4x6_t): Ditto.
+ 	(vfloat16mf4x7_t): Ditto.
+ 	(vfloat16mf4x8_t): Ditto.
+ 	(vfloat16mf2x2_t): Ditto.
+ 	(vfloat16mf2x3_t): Ditto.
+ 	(vfloat16mf2x4_t): Ditto.
+ 	(vfloat16mf2x5_t): Ditto.
+ 	(vfloat16mf2x6_t): Ditto.
+ 	(vfloat16mf2x7_t): Ditto.
+ 	(vfloat16mf2x8_t): Ditto.
+ 	(vfloat16m1x2_t): Ditto.
+ 	(vfloat16m1x3_t): Ditto.
+ 	(vfloat16m1x4_t): Ditto.
+ 	(vfloat16m1x5_t): Ditto.
+ 	(vfloat16m1x6_t): Ditto.
+ 	(vfloat16m1x7_t): Ditto.
+ 	(vfloat16m1x8_t): Ditto.
+ 	(vfloat16m2x2_t): Ditto.
+ 	(vfloat16m2x3_t): Diito.
+ 	(vfloat16m2x4_t): Diito.
+ 	(vfloat16m4x2_t): Diito.
+ 	* config/riscv/riscv-vector-builtins.def (vfloat16mf4x2_t): Ditto.
+ 	(vfloat16mf4x3_t): Ditto.
+ 	(vfloat16mf4x4_t): Ditto.
+ 	(vfloat16mf4x5_t): Ditto.
+ 	(vfloat16mf4x6_t): Ditto.
+ 	(vfloat16mf4x7_t): Ditto.
+ 	(vfloat16mf4x8_t): Ditto.
+ 	(vfloat16mf2x2_t): Ditto.
+ 	(vfloat16mf2x3_t): Ditto.
+ 	(vfloat16mf2x4_t): Ditto.
+ 	(vfloat16mf2x5_t): Ditto.
+ 	(vfloat16mf2x6_t): Ditto.
+ 	(vfloat16mf2x7_t): Ditto.
+ 	(vfloat16mf2x8_t): Ditto.
+ 	(vfloat16m1x2_t): Ditto.
+ 	(vfloat16m1x3_t): Ditto.
+ 	(vfloat16m1x4_t): Ditto.
+ 	(vfloat16m1x5_t): Ditto.
+ 	(vfloat16m1x6_t): Ditto.
+ 	(vfloat16m1x7_t): Ditto.
+ 	(vfloat16m1x8_t): Ditto.
+ 	(vfloat16m2x2_t): Ditto.
+ 	(vfloat16m2x3_t): Ditto.
+ 	(vfloat16m2x4_t): Ditto.
+ 	(vfloat16m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): Ditto.
+ 	* config/riscv/riscv.md: Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 
+ 2023-06-25  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* gimple-fold.cc (arith_overflowed_p): Apply LEN_MASK_{LOAD,STORE}.
+ 	(gimple_fold_partial_load_store_mem_ref): Ditto.
+ 	(gimple_fold_partial_store): Ditto.
+ 	(gimple_fold_call): Ditto.
+ 
+ 2023-06-25  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110309
+ 	* config/i386/sse.md (maskload<mode><avx512fmaskmodelower>):
+ 	Refine pattern with UNSPEC_MASKLOAD.
+ 	(maskload<mode><avx512fmaskmodelower>): Ditto.
+ 	(*<avx512>_load<mode>_mask): Extend mode iterator to
+ 	VI12HFBF_AVX512VL.
+ 	(*<avx512>_load<mode>): Ditto.
+ 
+ 2023-06-25  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-ssa-alias.cc (call_may_clobber_ref_p_1): Add LEN_MASK_STORE.
+ 
+ 2023-06-25  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Apply
+ 	LEN_MASK_{LOAD,STORE}
+ 
+ 2023-06-25  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config/riscv/vector.md: Add float16 attr at sew、vlmul and ratio.
+ 
+ 2023-06-24  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (*<code>qi_ext<mode>_3): New define_insn.
+ 
+ 2023-06-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (*fma<mode>): set clobber to Pmode in expand stage.
+ 	(*fma<VI:mode><P:mode>): Ditto.
+ 	(*fnma<mode>): Ditto.
+ 	(*fnma<VI:mode><P:mode>): Ditto.
+ 
+ 2023-06-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (fma<mode>4): New pattern.
+ 	(*fma<mode>): Ditto.
+ 	(fnma<mode>4): Ditto.
+ 	(*fnma<mode>): Ditto.
+ 	(fms<mode>4): Ditto.
+ 	(*fms<mode>): Ditto.
+ 	(fnms<mode>4): Ditto.
+ 	(*fnms<mode>): Ditto.
+ 	* config/riscv/riscv-protos.h (emit_vlmax_fp_ternary_insn):
+ 	New function.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_fp_ternary_insn): Ditto.
+ 	* config/riscv/vector.md: Fix attribute bug.
+ 
+ 2023-06-24  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-ssa-loop-ivopts.cc (get_mem_type_for_internal_fn):
+ 	Apply LEN_MASK_{LOAD,STORE}.
+ 
+ 2023-06-24  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-ssa-loop-ivopts.cc (get_alias_ptr_type_for_ptr_address):
+ 	Add LEN_MASK_{LOAD,STORE}.
+ 
+ 2023-06-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc: Add #define INCLUDE_VECTOR.
+ 	* diagnostic.cc: Likewise.
+ 	* text-art/box-drawing.cc: Likewise.
+ 	* text-art/canvas.cc: Likewise.
+ 	* text-art/ruler.cc: Likewise.
+ 	* text-art/selftests.cc: Likewise.
+ 	* text-art/selftests.h (text_art::canvas): New forward decl.
+ 	* text-art/style.cc: Add #define INCLUDE_VECTOR.
+ 	* text-art/styled-string.cc: Likewise.
+ 	* text-art/table.cc: Likewise.
+ 	* text-art/table.h: Remove #include <vector>.
+ 	* text-art/theme.cc: Add #define INCLUDE_VECTOR.
+ 	* text-art/types.h: Check that INCLUDE_VECTOR is defined.
+ 	Remove #include of <vector> and <string>.
+ 	* text-art/widget.cc: Add #define INCLUDE_VECTOR.
+ 	* text-art/widget.h: Remove #include <vector>.
+ 
+ 2023-06-24  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* internal-fn.cc (expand_partial_store_optab_fn): Adapt for LEN_MASK_STORE.
+ 	(internal_load_fn_p): Add LEN_MASK_LOAD.
+ 	(internal_store_fn_p): Add LEN_MASK_STORE.
+ 	(internal_fn_mask_index): Add LEN_MASK_{LOAD,STORE}.
+ 	(internal_fn_stored_value_index): Add LEN_MASK_STORE.
+ 	(internal_len_load_store_bias):  Add LEN_MASK_{LOAD,STORE}.
+ 	* optabs-tree.cc (can_vec_mask_load_store_p): Adapt for LEN_MASK_{LOAD,STORE}.
+ 	(get_len_load_store_mode): Ditto.
+ 	* optabs-tree.h (can_vec_mask_load_store_p): Ditto.
+ 	(get_len_load_store_mode): Ditto.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
+ 	(get_all_ones_mask): New function.
+ 	(vectorizable_store): Apply LEN_MASK_{LOAD,STORE} into vectorizer.
+ 	(vectorizable_load): Ditto.
+ 
+ 2023-06-23  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/cpp.texi (__cplusplus): Document value for -std=c++26 and
+ 	-std=gnu++26.  Document that for C++23, its value is 202302L.
+ 	* doc/invoke.texi: Document -std=c++26 and -std=gnu++26.
+ 	* dwarf2out.cc (highest_c_language): Handle GNU C++26.
+ 	(gen_compile_unit_die): Likewise.
+ 
+ 2023-06-23  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-phiprop.cc (propagate_with_phi): Compute post dominators on
+ 	demand.
+ 	(pass_phiprop::execute): Do not compute it here; return
+ 	update_ssa_only_virtuals if something changed.
+ 	(pass_data_phiprop): Remove TODO_update_ssa from todos.
+ 
+ 2023-06-23   Michael Meissner  <meissner@linux.ibm.com>
+ 	    Aaron Sawdey   <acsawdey@linux.ibm.com>
+ 
+ 	PR target/105325
+ 	* config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): Fix problems that
+ 	allowed prefixed lwa to be generated.
+ 	* config/rs6000/fusion.md: Regenerate.
+ 	* config/rs6000/predicates.md (ds_form_mem_operand): Delete.
+ 	* config/rs6000/rs6000.md (prefixed attribute): Add support for load
+ 	plus compare immediate fused insns.
+ 	(maybe_prefixed): Likewise.
+ 
+ 2023-06-23  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* simplify-rtx.cc (simplify_subreg):  Optimize lowpart SUBREGs
+ 	of ASHIFT to const0_rtx with sufficiently large shift count.
+ 	Optimize highpart SUBREGs of ASHIFT as the shift operand when
+ 	the shift count is the correct offset.  Optimize SUBREGs of
+ 	multi-word logic operations if the SUBREGs of both operands
+ 	can be simplified.
+ 
+ 2023-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* varasm.cc (initializer_constant_valid_p_1): Only
+ 	allow conversions between scalar floating point types.
+ 
+ 2023-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_assignment):
+ 	Properly handle non-integral operands when analyzing
+ 	conversions.
+ 
+ 2023-06-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	PR tree-optimization/110280
+ 	* match.pd (vec_perm_expr(v, v, mask) -> v): Explicitly build vector
+ 	using build_vector_from_val with the element of input operand, and
+ 	mask's type if operand and mask's types don't match.
+ 
+ 2023-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* fold-const.cc (tree_simple_nonnegative_warnv_p): Guard
+ 	the truth_value_p case with !VECTOR_TYPE_P.
+ 
+ 2023-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (vect_look_through_possible_promotion):
+ 	Exit early when the type isn't scalar integral.
+ 
+ 2023-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* match.pd ((outertype)((innertype0)a+(innertype1)b)
+ 	-> ((newtype)a+(newtype)b)): Use element_precision
+ 	where appropriate.
+ 
+ 2023-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* fold-const.cc (fold_binary_loc): Use element_precision
+ 	when trying (double)float1 CMP (double)float2 to
+ 	float1 CMP float2 simplification.
+ 	* match.pd: Likewise.
+ 
+ 2023-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Avoid useless
+ 	copies of VMAT_INVARIANT vectorized stmts, fix SLP support.
+ 
+ 2023-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vector_vector_composition_type):
+ 	Handle composition of a vector from a number of elements that
+ 	happens to match its number of lanes.
+ 
+ 2023-06-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* configure.ac (--enable-host-bind-now): New check.  Add
+ 	-Wl,-z,now to LD_PICFLAG if --enable-host-bind-now.
+ 	* configure: Regenerate.
+ 	* doc/install.texi: Document --enable-host-bind-now.
+ 
+ 2023-06-22  Di Zhao OS  <dizhao@os.amperecomputing.com>
+ 
+ 	* config/aarch64/aarch64.cc: Change fma_reassoc_width for ampere1.
+ 
+ 2023-06-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110332
+ 	* tree-ssa-phiprop.cc (propagate_with_phi): Always
+ 	check aliasing with edge inserted loads.
+ 
+ 2023-06-22  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_sse_ptest): Recognize
+ 	expansion of ptestc with equal operands as producing const1_rtx.
+ 	* config/i386/i386.cc (ix86_rtx_costs): Provide accurate cost
+ 	estimates of UNSPEC_PTEST, where the ptest performs the PAND
+ 	or PAND of its operands.
+ 	* config/i386/sse.md (define_split): Transform CCCmode UNSPEC_PTEST
+ 	of reg_equal_p operands into an x86_stc instruction.
+ 	(define_split): Split pandn/ptestz/set{n?}e into ptestc/set{n?}c.
+ 	(define_split): Similar to above for strict_low_part destinations.
+ 	(define_split): Split pandn/ptestz/j{n?}e into ptestc/j{n?}c.
+ 
+ 2023-06-22  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/106626
+ 	* Makefile.in (ANALYZER_OBJS): Add analyzer/access-diagram.o.
+ 	* doc/invoke.texi (Wanalyzer-out-of-bounds): Add description of
+ 	text art.
+ 	(fanalyzer-debug-text-art): New.
+ 
+ 2023-06-22  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add text-art/box-drawing.o,
+ 	text-art/canvas.o, text-art/ruler.o, text-art/selftests.o,
+ 	text-art/style.o, text-art/styled-string.o, text-art/table.o,
+ 	text-art/theme.o, and text-art/widget.o.
+ 	* color-macros.h (COLOR_FG_BRIGHT_BLACK): New.
+ 	(COLOR_FG_BRIGHT_RED): New.
+ 	(COLOR_FG_BRIGHT_GREEN): New.
+ 	(COLOR_FG_BRIGHT_YELLOW): New.
+ 	(COLOR_FG_BRIGHT_BLUE): New.
+ 	(COLOR_FG_BRIGHT_MAGENTA): New.
+ 	(COLOR_FG_BRIGHT_CYAN): New.
+ 	(COLOR_FG_BRIGHT_WHITE): New.
+ 	(COLOR_BG_BRIGHT_BLACK): New.
+ 	(COLOR_BG_BRIGHT_RED): New.
+ 	(COLOR_BG_BRIGHT_GREEN): New.
+ 	(COLOR_BG_BRIGHT_YELLOW): New.
+ 	(COLOR_BG_BRIGHT_BLUE): New.
+ 	(COLOR_BG_BRIGHT_MAGENTA): New.
+ 	(COLOR_BG_BRIGHT_CYAN): New.
+ 	(COLOR_BG_BRIGHT_WHITE): New.
+ 	* common.opt (fdiagnostics-text-art-charset=): New option.
+ 	(diagnostic-text-art.h): New SourceInclude.
+ 	(diagnostic_text_art_charset) New Enum and EnumValues.
+ 	* configure: Regenerate.
+ 	* configure.ac (gccdepdir): Add text-art to loop.
+ 	* diagnostic-diagram.h: New file.
+ 	* diagnostic-format-json.cc (json_emit_diagram): New.
+ 	(diagnostic_output_format_init_json): Wire it up to
+ 	context->m_diagrams.m_emission_cb.
+ 	* diagnostic-format-sarif.cc: Include "diagnostic-diagram.h" and
+ 	"text-art/canvas.h".
+ 	(sarif_result::on_nested_diagnostic): Move code to...
+ 	(sarif_result::add_related_location): ...this new function.
+ 	(sarif_result::on_diagram): New.
+ 	(sarif_builder::emit_diagram): New.
+ 	(sarif_builder::make_message_object_for_diagram): New.
+ 	(sarif_emit_diagram): New.
+ 	(diagnostic_output_format_init_sarif): Set
+ 	context->m_diagrams.m_emission_cb to sarif_emit_diagram.
+ 	* diagnostic-text-art.h: New file.
+ 	* diagnostic.cc: Include "diagnostic-text-art.h",
+ 	"diagnostic-diagram.h", and "text-art/theme.h".
+ 	(diagnostic_initialize): Initialize context->m_diagrams and
+ 	call diagnostics_text_art_charset_init.
+ 	(diagnostic_finish): Clean up context->m_diagrams.m_theme.
+ 	(diagnostic_emit_diagram): New.
+ 	(diagnostics_text_art_charset_init): New.
+ 	* diagnostic.h (text_art::theme): New forward decl.
+ 	(class diagnostic_diagram): Likewise.
+ 	(diagnostic_context::m_diagrams): New field.
+ 	(diagnostic_emit_diagram): New decl.
+ 	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
+ 	-fdiagnostics-text-art-charset=.
+ 	(-fdiagnostics-plain-output): Add
+ 	-fdiagnostics-text-art-charset=none.
+ 	* gcc.cc: Include "diagnostic-text-art.h".
+ 	(driver_handle_option): Handle OPT_fdiagnostics_text_art_charset_.
+ 	* opts-common.cc (decode_cmdline_options_to_array): Add
+ 	"-fdiagnostics-text-art-charset=none" to expanded_args for
+ 	-fdiagnostics-plain-output.
+ 	* opts.cc: Include "diagnostic-text-art.h".
+ 	(common_handle_option): Handle OPT_fdiagnostics_text_art_charset_.
+ 	* pretty-print.cc (pp_unicode_character): New.
+ 	* pretty-print.h (pp_unicode_character): New decl.
+ 	* selftest-run-tests.cc: Include "text-art/selftests.h".
+ 	(selftest::run_tests): Call text_art_tests.
+ 	* text-art/box-drawing-chars.inc: New file, generated by
+ 	contrib/unicode/gen-box-drawing-chars.py.
+ 	* text-art/box-drawing.cc: New file.
+ 	* text-art/box-drawing.h: New file.
+ 	* text-art/canvas.cc: New file.
+ 	* text-art/canvas.h: New file.
+ 	* text-art/ruler.cc: New file.
+ 	* text-art/ruler.h: New file.
+ 	* text-art/selftests.cc: New file.
+ 	* text-art/selftests.h: New file.
+ 	* text-art/style.cc: New file.
+ 	* text-art/styled-string.cc: New file.
+ 	* text-art/table.cc: New file.
+ 	* text-art/table.h: New file.
+ 	* text-art/theme.cc: New file.
+ 	* text-art/theme.h: New file.
+ 	* text-art/types.h: New file.
+ 	* text-art/widget.cc: New file.
+ 	* text-art/widget.h: New file.
+ 
+ 2023-06-21  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* function.h (emit_initial_value_sets):
+ 	Change return type from int to void.
+ 	(aggregate_value_p): Change return type from int to bool.
+ 	(prologue_contains): Ditto.
+ 	(epilogue_contains): Ditto.
+ 	(prologue_epilogue_contains): Ditto.
+ 	* function.cc (temp_slot): Make "in_use" variable bool.
+ 	(make_slot_available): Update for changed "in_use" variable.
+ 	(assign_stack_temp_for_type): Ditto.
+ 	(emit_initial_value_sets): Change return type from int to void
+ 	and update function body accordingly.
+ 	(instantiate_virtual_regs): Ditto.
+ 	(rest_of_handle_thread_prologue_and_epilogue): Ditto.
+ 	(safe_insn_predicate): Change return type from int to bool.
+ 	(aggregate_value_p): Change return type from int to bool
+ 	and update function body accordingly.
+ 	(prologue_contains): Change return type from int to bool.
+ 	(prologue_epilogue_contains): Ditto.
+ 
+ 2023-06-21  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* common.opt (fp_contract_mode) [on]: Remove fallback.
+ 	* config/sh/sh.md (*fmasf4): Correct flag_fp_contract_mode test.
+ 	* doc/invoke.texi (-ffp-contract): Update.
+ 	* trans-mem.cc (diagnose_tm_1): Skip internal function calls.
+ 
+ 2023-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>):
+ 	Add alternatives to prefer to avoid same input and output Z register.
+ 	(mask_gather_load<mode><v_int_container>): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
+ 	Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
+ 	Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_sxtw): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather<mode>): Likewise.
+ 	(@aarch64_ldff1_gather<mode>): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
+ 	<VNx4_NARROW:mode>): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_uxtw): Likewise.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): Likewise.
+ 	(@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
+ 	<SVE_PARTIAL_I:mode>): Likewise.
+ 
+ 2023-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>):
+ 	Convert to compact alternatives syntax.
+ 	(mask_gather_load<mode><v_int_container>): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
+ 	Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
+ 	Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_sxtw): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather<mode>): Likewise.
+ 	(@aarch64_ldff1_gather<mode>): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
+ 	<VNx4_NARROW:mode>): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_uxtw): Likewise.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): Likewise.
+ 	(@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
+ 	<SVE_PARTIAL_I:mode>): Likewise.
+ 
+ 2023-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	Revert:
+ 	2023-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>):
+ 	Convert to compact alternatives syntax.
+ 	(mask_gather_load<mode><v_int_container>): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
+ 	Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
+ 	Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_sxtw): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather<mode>): Likewise.
+ 	(@aarch64_ldff1_gather<mode>): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
+ 	<VNx4_NARROW:mode>): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_uxtw): Likewise.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): Likewise.
+ 	(@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
+ 	<SVE_PARTIAL_I:mode>): Likewise.
+ 
+ 2023-06-21  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* optabs-query.cc (can_vec_mask_load_store_p): Move to optabs-tree.cc.
+ 	(get_len_load_store_mode): Ditto.
+ 	* optabs-query.h (can_vec_mask_load_store_p): Move to optabs-tree.h.
+ 	(get_len_load_store_mode): Ditto.
+ 	* optabs-tree.cc (can_vec_mask_load_store_p): New function.
+ 	(get_len_load_store_mode): Ditto.
+ 	* optabs-tree.h (can_vec_mask_load_store_p): Ditto.
+ 	(get_len_load_store_mode): Ditto.
+ 	* tree-if-conv.cc: include optabs-tree instead of optabs-query
+ 
+ 2023-06-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-ivopts.cc (add_iv_candidate_for_use): Use
+ 	split_constant_offset for the POINTER_PLUS_EXPR case.
+ 
+ 2023-06-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-ivopts.cc (record_group_use): Use
+ 	split_constant_offset.
+ 
+ 2023-06-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-loop-distribution.cc (classify_builtin_st): Use
+ 	split_constant_offset.
+ 	* tree-ssa-loop-ivopts.h (strip_offset): Remove.
+ 	* tree-ssa-loop-ivopts.cc (strip_offset): Make static.
+ 
+ 2023-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>):
+ 	Convert to compact alternatives syntax.
+ 	(mask_gather_load<mode><v_int_container>): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
+ 	(*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
+ 	Likewise.
+ 	(@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
+ 	Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_sxtw): Likewise.
+ 	(*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
+ 	<SVE_2BHSI:mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather<mode>): Likewise.
+ 	(@aarch64_ldff1_gather<mode>): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather<mode>_uxtw): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
+ 	<VNx4_NARROW:mode>): Likewise.
+ 	(@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_sxtw): Likewise.
+ 	(*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
+ 	<VNx2_NARROW:mode>_uxtw): Likewise.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): Likewise.
+ 	(@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
+ 	<SVE_PARTIAL_I:mode>): Likewise.
+ 
+ 2023-06-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR other/110329
+ 	* doc/md.texi: Replace backslashchar.
+ 
+ 2023-06-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::finish_cost):
+ 	Overload.  For masked main loops make sure the vectorization
+ 	factor isn't more than double the number of iterations.
+ 
+ 2023-06-21  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_copysign): Request
+ 	value duplication by ix86_build_signbit_mask() when AVX512F and
+ 	not HFmode.
+ 	* config/i386/sse.md (*<avx512>_vternlog<mode>_all): Convert to
+ 	2-alternative form. Adjust "mode" attribute. Add "enabled"
+ 	attribute.
+ 	(*<avx512>_vpternlog<mode>_1): Also permit when TARGET_AVX512F
+ 	&& !TARGET_PREFER_AVX256.
+ 	(*<avx512>_vpternlog<mode>_2): Likewise.
+ 	(*<avx512>_vpternlog<mode>_3): Likewise.
+ 
+ 2023-06-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110018
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Use
+ 	intermiediate integer type for float_expr/fix_trunc_expr when
+ 	direct optab is not existed.
+ 
+ 2023-06-20  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR bootstrap/110324
+ 	* gensupport.cc (convert_syntax): Explicitly check for RTX code.
+ 
+ 2023-06-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (stack_tie): Hard-code the first
+ 	register operand to the stack pointer.  Require the second register
+ 	operand to have the number specified in a separate const_int operand.
+ 	* config/aarch64/aarch64.cc (aarch64_emit_stack_tie): New function.
+ 	(aarch64_allocate_and_probe_stack_space): Use it.
+ 	(aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
+ 	(aarch64_expand_epilogue): Likewise.
+ 
+ 2023-06-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/79173
+ 	* tree-ssa-math-opts.cc (match_uaddc_usubc): Remember lhs of
+ 	IMAGPART_EXPR of arg2/arg3 and use that as arg3 if it has the right
+ 	type.
+ 
+ 2023-06-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* calls.h (setjmp_call_p): Change return type from int to bool.
+ 	* calls.cc (struct arg_data): Change "pass_on_stack" to bool.
+ 	(store_one_arg): Change return type from int to bool
+ 	and adjust function body accordingly.  Change "sibcall_failure"
+ 	variable to bool.
+ 	(finalize_must_preallocate): Ditto.  Change *must_preallocate pointer
+ 	argument  to bool.  Change "partial_seen" variable to bool.
+ 	(load_register_parameters):  Change *sibcall_failure
+ 	pointer argument to bool.
+ 	(check_sibcall_argument_overlap_1): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(check_sibcall_argument_overlap):  Ditto.  Change
+ 	"mark_stored_args_map" argument to bool.
+ 	(emit_call_1): Change "already_popped" variable to bool.
+ 	(setjmp_call_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(initialize_argument_information): Change *must_preallocate
+ 	pointer argument to bool.
+ 	(expand_call): Change "pcc_struct_value", "must_preallocate"
+ 	and "sibcall_failure" variables to bool.
+ 	(emit_library_call_value_1): Change "pcc_struct_value"
+ 	variable to bool.
+ 
+ 2023-06-20  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/110276
+ 	* ipa-sra.cc (struct caller_issues): New field there_is_one.
+ 	(check_for_caller_issues): Set it.
+ 	(check_all_callers_for_issues): Check it.
+ 
+ 2023-06-20  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-prop.h (ipa_uid_to_idx_map_elt): New type.
+ 	(struct ipcp_transformation): Rearrange members	according to
+ 	C++ class coding convention, add m_uid_to_idx,
+ 	get_param_index and maybe_create_parm_idx_map.
+ 	* ipa-cp.cc (ipcp_transformation::get_param_index): New function.
+ 	(compare_uids): Likewise.
+ 	(ipcp_transformation::maype_create_parm_idx_map): Likewise.
+ 	* ipa-prop.cc (ipcp_get_parm_bits): Use get_param_index.
+ 	(ipcp_update_bits): Accept TS as a parameter, assume it is not NULL.
+ 	(ipcp_update_vr): Likewise.
+ 	(ipcp_transform_function): Call, maybe_create_parm_idx_map of TS, bail
+ 	out quickly if empty, pass it to ipcp_update_bits and ipcp_update_vr.
+ 
+ 2023-06-20  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin):
+ 	Rename CODE_FOR_xsxsigqp_tf to CODE_FOR_xsxsigqp_tf_ti.
+ 	Rename CODE_FOR_xsxsigqp_kf to CODE_FOR_xsxsigqp_kf_ti.
+ 	Rename CCDE_FOR_xsxexpqp_tf to CODE_FOR_xsxexpqp_tf_di.
+ 	Rename CODE_FOR_xsxexpqp_kf to CODE_FOR_xsxexpqp_kf_di.
+ 	(CODE_FOR_xsxexpqp_kf_v2di, CODE_FOR_xsxsigqp_kf_v1ti,
+ 	CODE_FOR_xsiexpqp_kf_v2di): Add case statements.
+ 	* config/rs6000/rs6000-builtins.def
+ 	(__builtin_vsx_scalar_extract_exp_to_vec,
+ 	__builtin_vsx_scalar_extract_sig_to_vec,
+ 	__builtin_vsx_scalar_insert_exp_vqp): Add new builtin definitions.
+ 	Rename xsxexpqp_kf, xsxsigqp_kf, xsiexpqp_kf to xsexpqp_kf_di,
+ 	xsxsigqp_kf_ti, xsiexpqp_kf_di respectively.
+ 	* config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
+ 	Update case RS6000_OVLD_VEC_VSIE to handle MODE_VECTOR_INT for new
+ 	overloaded instance. Update comments.
+ 	* config/rs6000/rs6000-overload.def
+ 	(__builtin_vec_scalar_insert_exp): Add new overload definition with
+ 	vector arguments.
+ 	(scalar_extract_exp_to_vec, scalar_extract_sig_to_vec): New
+ 	overloaded definitions.
+ 	* config/rs6000/vsx.md (V2DI_DI): New mode iterator.
+ 	(DI_to_TI): New mode attribute.
+ 	Rename xsxexpqp_<mode> to sxexpqp_<IEEE128:mode>_<V2DI_DI:mode>.
+ 	Rename xsxsigqp_<mode> to xsxsigqp_<IEEE128:mode>_<VEC_TI:mode>.
+ 	Rename xsiexpqp_<mode> to xsiexpqp_<IEEE128:mode>_<V2DI_DI:mode>.
+ 	* doc/extend.texi (scalar_extract_exp_to_vec,
+ 	scalar_extract_sig_to_vec): Add documentation for new builtins.
+ 	(scalar_insert_exp): Add new overloaded builtin definition.
+ 
+ 2023-06-20  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_regmode_natural_size): set the natural
+ 	size of vector mask mode to one rvv register.
+ 
+ 2023-06-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Optimize codegen.
+ 
+ 2023-06-20  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_arg_has_vector): Add default
+ 	switch handler.
+ 
+ 2023-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-dse.cc (dse_classify_store): When we found
+ 	no defs and the basic-block with the original definition
+ 	ends in __builtin_unreachable[_trap] the store is dead.
+ 
+ 2023-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-phiprop.cc (phiprop_insert_phi): For simple loads
+ 	keep the virtual SSA form up-to-date.
+ 
+ 2023-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*aarch64_addp_same_reg<mode>):
+ 	New define_insn_and_split.
+ 
+ 2023-06-20  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (*mov<mode>_aarch64): Drop test comment.
+ 
+ 2023-06-20  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (vec_dupv2di): Correct %vmovddup input
+ 	constraint. Add new AVX512F alternative.
+ 
+ 2023-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/110295
+ 	* dwarf2out.cc (process_scope_var): Continue processing
+ 	the decl after setting a parent in case the existing DIE
+ 	was in limbo.
+ 
+ 2023-06-20  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_scalable_vector_type_p): Delete.
+ 	(riscv_arg_has_vector): Simplify.
+ 	(riscv_pass_in_vector_p): Adjust warning message.
+ 
+ 2023-06-19  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_compute_frame_info): Allocate frame for FCSR.
+ 	(riscv_for_each_saved_reg): Save and restore FCSR in interrupt functions.
+ 	* config/riscv/riscv.md (riscv_frcsr): New patterns.
+ 	(riscv_fscsr): Likewise.
+ 
+ 2023-06-19  Toru Kisuki  <tkisuki@tachyum.com>
+ 
+ 	PR rtl-optimization/110305
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	Handle HONOR_SNANS for x + 0.0.
+ 
+ 2023-06-19  Jan Hubicka  <jh@suse.cz>
+ 
+ 	PR tree-optimization/109811
+ 	PR tree-optimization/109849
+ 	* passes.def: Add phiprop to early optimization passes.
+ 	* tree-ssa-phiprop.cc: Allow clonning.
+ 
+ 2023-06-19  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (arches): Add nosimd.
+ 	(*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Rewrite to
+ 	compact syntax.
+ 
+ 2023-06-19  Tamar Christina  <tamar.christina@arm.com>
+ 	    Omar Tahir  <Omar.Tahir2@arm.com>
+ 
+ 	* gensupport.cc (class conlist, add_constraints, add_attributes,
+ 	skip_spaces, expect_char, preprocess_compact_syntax,
+ 	parse_section_layout, parse_section, convert_syntax): New.
+ 	(process_rtx): Check for conversion.
+ 	* genoutput.cc (process_template): Check for unresolved iterators.
+ 	(class data): Add compact_syntax_p.
+ 	(gen_insn): Use it.
+ 	* gensupport.h (compact_syntax): New.
+ 	(hash-set.h): Include.
+ 	* doc/md.texi: Document it.
+ 
+ 2023-06-19  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* recog.h (check_asm_operands): Change return type from int to bool.
+ 	(insn_invalid_p): Ditto.
+ 	(verify_changes): Ditto.
+ 	(apply_change_group): Ditto.
+ 	(constrain_operands): Ditto.
+ 	(constrain_operands_cached): Ditto.
+ 	(validate_replace_rtx_subexp): Ditto.
+ 	(validate_replace_rtx): Ditto.
+ 	(validate_replace_rtx_part): Ditto.
+ 	(validate_replace_rtx_part_nosimplify): Ditto.
+ 	(added_clobbers_hard_reg_p): Ditto.
+ 	(peep2_regno_dead_p): Ditto.
+ 	(peep2_reg_dead_p): Ditto.
+ 	(store_data_bypass_p): Ditto.
+ 	(if_test_bypass_p): Ditto.
+ 	* rtl.h (split_all_insns_noflow): Change
+ 	return type from unsigned int to void.
+ 	* genemit.cc (output_added_clobbers_hard_reg_p): Change return type
+ 	of generated added_clobbers_hard_reg_p from int to bool and adjust
+ 	function body accordingly.  Change "used" variable type from
+ 	int to bool.
+ 	* recog.cc (check_asm_operands): Change return type
+ 	from int to bool and adjust function body accordingly.
+ 	(insn_invalid_p): Ditto.  Change "is_asm" variable to bool.
+ 	(verify_changes): Change return type from int to bool.
+ 	(apply_change_group): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(validate_replace_rtx_subexp): Change return type from int to bool.
+ 	(validate_replace_rtx): Ditto.
+ 	(validate_replace_rtx_part): Ditto.
+ 	(validate_replace_rtx_part_nosimplify): Ditto.
+ 	(constrain_operands_cached): Ditto.
+ 	(constrain_operands): Ditto.  Change "lose" and "win"
+ 	variables type from int to bool.
+ 	(split_all_insns_noflow): Change return type from unsigned int
+ 	to void and adjust function body accordingly.
+ 	(peep2_regno_dead_p): Change return type from int to bool.
+ 	(peep2_reg_dead_p): Ditto.
+ 	(peep2_find_free_register): Change "success"
+ 	variable type from int to bool
+ 	(store_data_bypass_p_1): Change return type from int to bool.
+ 	(store_data_bypass_p): Ditto.
+ 
+ 2023-06-19  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/vector-iterators.md: zvfh/zvfhmin depends on the
+ 	Zve32f extension.
+ 
+ 2023-06-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/110299
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Adjust expand for
+ 	modes.
+ 	* config/riscv/vector-iterators.md: Remove VWLMUL1, VWLMUL1_ZVE64,
+ 	VWLMUL1_ZVE32, VI_ZVE64, VI_ZVE32, VWI, VWI_ZVE64, VWI_ZVE32,
+ 	VF_ZVE63 and VF_ZVE32.
+ 	* config/riscv/vector.md
+ 	(@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Removed.
+ 	(@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
+ 	(@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>): Ditto.
+ 	(@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
+ 	(@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
+ 	(@pred_widen_reduc_plus<v_su><VQI:mode><VHI_LMUL1:mode>): New pattern.
+ 	(@pred_widen_reduc_plus<v_su><VHI:mode><VSI_LMUL1:mode>): Ditto.
+ 	(@pred_widen_reduc_plus<v_su><VSI:mode><VDI_LMUL1:mode>): Ditto.
+ 	(@pred_widen_reduc_plus<order><VHF:mode><VSF_LMUL1:mode>): Ditto.
+ 	(@pred_widen_reduc_plus<order><VSF:mode><VDF_LMUL1:mode>): Ditto.
+ 
+ 2023-06-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/110277
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Adjust expand for
+ 	ret_mode.
+ 	* config/riscv/vector-iterators.md: Add VHF, VSF, VDF,
+ 	VHF_LMUL1, VSF_LMUL1, VDF_LMUL1, and remove unused attr.
+ 	* config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): Removed.
+ 	(@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
+ 	(@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
+ 	(@pred_reduc_plus<order><mode><vlmul1>): Ditto.
+ 	(@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
+ 	(@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
+ 	(@pred_reduc_<reduc><VHF:mode><VHF_LMUL1:mode>): New pattern.
+ 	(@pred_reduc_<reduc><VSF:mode><VSF_LMUL1:mode>): Ditto.
+ 	(@pred_reduc_<reduc><VDF:mode><VDF_LMUL1:mode>): Ditto.
+ 	(@pred_reduc_plus<order><VHF:mode><VHF_LMUL1:mode>): Ditto.
+ 	(@pred_reduc_plus<order><VSF:mode><VSF_LMUL1:mode>): Ditto.
+ 	(@pred_reduc_plus<order><VDF:mode><VDF_LMUL1:mode>): Ditto.
+ 
+ 2023-06-19  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_expand_divmod_libfunc): New function.
+ 	(gcn_init_libfuncs): Add div and mod functions for all modes.
+ 	Add placeholders for divmod functions.
+ 	(TARGET_EXPAND_DIVMOD_LIBFUNC): Define.
+ 
+ 2023-06-19  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* tree-vect-generic.cc: Include optabs-libfuncs.h.
+ 	(get_compute_type): Check optab_libfunc.
+ 	* tree-vect-stmts.cc: Include optabs-libfuncs.h.
+ 	(vectorizable_operation): Check optab_libfunc.
+ 
+ 2023-06-19  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-protos.h (vgpr_4reg_mode_p): New function.
+ 	* config/gcn/gcn-valu.md (V_4REG, V_4REG_ALT): New iterators.
+ 	(V_MOV, V_MOV_ALT): Likewise.
+ 	(scalar_mode, SCALAR_MODE): Add TImode.
+ 	(vnsi, VnSI, vndi, VnDI): Likewise.
+ 	(vec_merge, vec_merge_with_clobber, vec_merge_with_vcc): Use V_MOV.
+ 	(mov<mode>, mov<mode>_unspec): Use V_MOV.
+ 	(*mov<mode>_4reg): New insn.
+ 	(mov<mode>_exec): New 4reg variant.
+ 	(mov<mode>_sgprbase): Likewise.
+ 	(reload_in<mode>, reload_out<mode>): Use V_MOV.
+ 	(vec_set<mode>): Likewise.
+ 	(vec_duplicate<mode><exec>): New 4reg variant.
+ 	(vec_extract<mode><scalar_mode>): Likewise.
+ 	(vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Rename to ...
+ 	(vec_extract<V_MOV:mode><V_MOV_ALT:mode>): ... this, and use V_MOV.
+ 	(vec_extract<V_4REG:mode><V_4REG_ALT:mode>_nop): New 4reg variant.
+ 	(fold_extract_last_<mode>): Use V_MOV.
+ 	(vec_init<V_ALL:mode><V_ALL_ALT:mode>): Rename to ...
+ 	(vec_init<V_MOV:mode><V_MOV_ALT:mode>): ... this, and use V_MOV.
+ 	(gather_load<mode><vnsi>, gather<mode>_expr<exec>,
+ 	gather<mode>_insn_1offset<exec>, gather<mode>_insn_1offset_ds<exec>,
+ 	gather<mode>_insn_2offsets<exec>): Use V_MOV.
+ 	(scatter_store<mode><vnsi>, scatter<mode>_expr<exec_scatter>,
+ 	scatter<mode>_insn_1offset<exec_scatter>,
+ 	scatter<mode>_insn_1offset_ds<exec_scatter>,
+ 	scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
+ 	(maskload<mode>di, maskstore<mode>di, mask_gather_load<mode><vnsi>,
+ 	mask_scatter_store<mode><vnsi>): Likewise.
+ 	* config/gcn/gcn.cc (gcn_class_max_nregs): Use vgpr_4reg_mode_p.
+ 	(gcn_hard_regno_mode_ok): Likewise.
+ 	(GEN_VNM): Add TImode support.
+ 	(USE_TI): New macro. Separate TImode operations from non-TImode ones.
+ 	(gcn_vector_mode_supported_p): Add V64TImode, V32TImode, V16TImode,
+ 	V8TImode, and V2TImode.
+ 	(print_operand):  Add 'J' and 'K' print codes.
+ 
+ 2023-06-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110298
+ 	* tree-ssa-loop-ivcanon.cc (tree_unroll_loops_completely):
+ 	Clear number of iterations info before cleaning up the CFG.
+ 
+ 2023-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	Simplify vec_concat of lowpart subreg and high part vec_select.
+ 
+ 2023-06-19  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* doc/invoke.texi (-foffload-options): Remove '-O3' from the examples.
+ 
+ 2023-06-19  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_set_loop_condition_partial_vectors):
+ 	Handle null niters_skip.
+ 
+ 2023-06-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_vector_costs::analyze_loop_vinfo): Fix reference
+ 	to LOOP_VINFO_MASKS.
+ 
+ 2023-06-19  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
+ 
+ 	PR target/105523
+ 	* common/config/avr/avr-common.cc: Remove setting
+ 	of OPT_fdelete_null_pointer_checks.
+ 	* config/avr/avr.cc (avr_option_override): Clear
+ 	flag_delete_null_pointer_checks if zero_address_valid.
+ 	(avr_addr_space_zero_address_valid): New function.
+ 	(TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Provide target
+ 	hook.
+ 
+ 2023-06-19  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* doc/md.texi: Add len_mask{load,store}.
+ 	* genopinit.cc (main): Ditto.
+ 	(CMP_NAME): Ditto.
+ 	* internal-fn.cc (len_maskload_direct): Ditto.
+ 	(len_maskstore_direct): Ditto.
+ 	(expand_call_mem_ref): Ditto.
+ 	(expand_partial_load_optab_fn): Ditto.
+ 	(expand_len_maskload_optab_fn): Ditto.
+ 	(expand_partial_store_optab_fn): Ditto.
+ 	(expand_len_maskstore_optab_fn): Ditto.
+ 	(direct_len_maskload_optab_supported_p): Ditto.
+ 	(direct_len_maskstore_optab_supported_p): Ditto.
+ 	* internal-fn.def (LEN_MASK_LOAD): Ditto.
+ 	(LEN_MASK_STORE): Ditto.
+ 	* optabs.def (OPTAB_CD): Ditto.
+ 
+ 2023-06-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (<optab><mode>2): Add unop expanders.
+ 
+ 2023-06-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (<optab><mode>3): Implement binop
+ 	expander.
+ 	* config/riscv/riscv-protos.h (emit_vlmax_fp_insn): Declare.
+ 	(enum vxrm_field_enum): Rename this...
+ 	(enum fixed_point_rounding_mode): ...to this.
+ 	(enum frm_field_enum): Rename this...
+ 	(enum floating_point_rounding_mode): ...to this.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_fp_insn): New function
+ 	* config/riscv/riscv.cc (riscv_const_insns): Clarify const
+ 	vector handling.
+ 	(riscv_libgcc_floating_mode_supported_p): Adjust comment.
+ 	(riscv_excess_precision): Do not convert to float for ZVFH.
+ 	* config/riscv/vector-iterators.md: Add VF_AUTO iterator.
+ 
+ 2023-06-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/vector-iterators.md: Add VI_QH iterator.
+ 	* config/riscv/autovec-opt.md
+ 	(@pred_extract_first_sextdi<mode>): New vmv.x.s pattern
+ 	that includes sign extension.
+ 	(@pred_extract_first_sextsi<mode>): Dito for SImode.
+ 
+ 2023-06-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (vec_set<mode>): Implement.
+ 	(vec_extract<mode><vel>): Implement.
+ 	* config/riscv/riscv-protos.h (enum insn_type): Add slide insn.
+ 	(emit_vlmax_slide_insn): Declare.
+ 	(emit_nonvlmax_slide_tu_insn): Declare.
+ 	(emit_scalar_move_insn): Export.
+ 	(emit_nonvlmax_integer_move_insn): Export.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_slide_insn): New function.
+ 	(emit_nonvlmax_slide_tu_insn): New function.
+ 	(emit_vlmax_masked_mu_insn): No change.
+ 	(emit_vlmax_integer_move_insn): Export.
+ 
+ 2023-06-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (enum vect_partial_vector_style): New.
+ 	(_loop_vec_info::partial_vector_style): Likewise.
+ 	(LOOP_VINFO_PARTIAL_VECTORS_STYLE): Likewise.
+ 	(rgroup_controls::compare_type): Add.
+ 	(vec_loop_masks): Change from a typedef to auto_vec<>
+ 	to a structure.
+ 	* tree-vect-loop-manip.cc (vect_set_loop_condition_partial_vectors):
+ 	Adjust.  Convert niters_skip to compare_type.
+ 	(vect_set_loop_condition_partial_vectors_avx512): New function
+ 	implementing the AVX512 partial vector codegen.
+ 	(vect_set_loop_condition): Dispatch to the correct
+ 	vect_set_loop_condition_partial_vectors_* function based on
+ 	LOOP_VINFO_PARTIAL_VECTORS_STYLE.
+ 	(vect_prepare_for_masked_peels): Compute LOOP_VINFO_MASK_SKIP_NITERS
+ 	in the original niter type.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
+ 	partial_vector_style.
+ 	(can_produce_all_loop_masks_p): Adjust.
+ 	(vect_verify_full_masking): Produce the rgroup_controls vector
+ 	here.  Set LOOP_VINFO_PARTIAL_VECTORS_STYLE on success.
+ 	(vect_verify_full_masking_avx512): New function implementing
+ 	verification of AVX512 style masking.
+ 	(vect_verify_loop_lens): Set LOOP_VINFO_PARTIAL_VECTORS_STYLE.
+ 	(vect_analyze_loop_2): Also try AVX512 style masking.
+ 	Adjust condition.
+ 	(vect_estimate_min_profitable_iters): Implement AVX512 style
+ 	mask producing cost.
+ 	(vect_record_loop_mask): Do not build the rgroup_controls
+ 	vector here but record masks in a hash-set.
+ 	(vect_get_loop_mask): Implement AVX512 style mask query,
+ 	complementing the existing while_ult style.
+ 
+ 2023-06-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_get_loop_mask): Add loop_vec_info
+ 	argument.
+ 	* tree-vect-loop.cc (vect_get_loop_mask): Likewise.
+ 	(vectorize_fold_left_reduction): Adjust.
+ 	(vect_transform_reduction): Likewise.
+ 	(vectorizable_live_operation): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_call): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_store): Likewise.
+ 	(vectorizable_load): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 
+ 2023-06-19  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
+ 
+ 	PR target/110086
+ 	* config/avr/avr.opt (mgas-isr-prologues, mmain-is-OS_task):
+ 	Add Optimization option property.
+ 
+ 2023-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_constantsynth_2insn):
+ 	Add new pattern for the abovementioned case.
+ 
+ 2023-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(TARGET_MEMORY_MOVE_COST, xtensa_memory_move_cost): Remove.
+ 
+ 2023-06-19  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (TARGET_CONST_ANCHOR): New define.
+ 
+ 2023-06-19  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* cse.cc (try_const_anchors): Check SCALAR_INT_MODE.
+ 
+ 2023-06-19  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110235
+ 	* config/i386/sse.md (<sse2_avx2>_packsswb<mask_name>):
+ 	Substitute with ..
+ 	(sse2_packsswb<mask_name>): .. this, ..
+ 	(avx2_packsswb<mask_name>): .. this and ..
+ 	(avx512bw_packsswb<mask_name>): .. this.
+ 	(<sse2_avx2>_packssdw<mask_name>): Substitute with ..
+ 	(sse2_packssdw<mask_name>): .. this, ..
+ 	(avx2_packssdw<mask_name>): .. this and ..
+ 	(avx512bw_packssdw<mask_name>): .. this.
+ 
+ 2023-06-19  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110235
+ 	* config/i386/i386-expand.cc (ix86_split_mmx_pack): Use
+ 	UNSPEC_US_TRUNCATE instead of original us_truncate for
+ 	packusdw/packuswb.
+ 	* config/i386/mmx.md (mmx_pack<s_trunsuffix>swb): Substitute
+ 	with ..
+ 	(mmx_packsswb): .. this and ..
+ 	(mmx_packuswb): .. this.
+ 	(mmx_packusdw): Use UNSPEC_US_TRUNCATE instead of original
+ 	us_truncate.
+ 	(s_trunsuffix): Removed code iterator.
+ 	(any_s_truncate): Ditto.
+ 	* config/i386/sse.md (<sse2_avx2>_packuswb<mask_name>): Use
+ 	UNSPEC_US_TRUNCATE instead of original us_truncate.
+ 	(<sse4_1_avx2>_packusdw<mask_name>): Ditto.
+ 	* config/i386/i386.md (UNSPEC_US_TRUNCATE): New unspec_c_enum.
+ 
+ 2023-06-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Fix one typo.
+ 
+ 2023-06-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (*rtx_equal_p_callback_function):
+ 	Change return type from int to bool.
+ 	(rtx_equal_p): Ditto.
+ 	(*hash_rtx_callback_function): Ditto.
+ 	* rtl.cc (rtx_equal_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	* early-remat.cc (scratch_equal): Ditto.
+ 	* sel-sched-ir.cc (skip_unspecs_callback): Ditto.
+ 	(hash_with_unspec_callback): Ditto.
+ 
+ 2023-06-18  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/arc/arc.md (movqi_insn): Allow certain constants to
+ 	be stored into memory in the pattern's condition.
+ 	(movsf_insn): Similarly.
+ 
+ 2023-06-18  Honza  <jh@ryzen3.suse.cz>
+ 
+ 	PR tree-optimization/109849
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Add new parameter
+ 	ES; handle ipa_predicate::not_sra_candidate.
+ 	(evaluate_properties_for_edge): Pass es to
+ 	evaluate_conditions_for_known_args.
+ 	(ipa_fn_summary_t::duplicate): Handle sra candidates.
+ 	(dump_ipa_call_summary): Dump points_to_possible_sra_candidate.
+ 	(load_or_store_of_ptr_parameter): New function.
+ 	(points_to_possible_sra_candidate_p): New function.
+ 	(analyze_function_body): Initialize points_to_possible_sra_candidate;
+ 	determine sra predicates.
+ 	(estimate_ipcp_clone_size_and_time): Update call of
+ 	evaluate_conditions_for_known_args.
+ 	(remap_edge_params): Update points_to_possible_sra_candidate.
+ 	(read_ipa_call_summary): Stream points_to_possible_sra_candidate
+ 	(write_ipa_call_summary): Likewise.
+ 	* ipa-predicate.cc (ipa_predicate::add_clause): Handle not_sra_candidate.
+ 	(dump_condition): Dump it.
+ 	* ipa-predicate.h (struct inline_param_summary): Add
+ 	points_to_possible_sra_candidate.
+ 
+ 2023-06-18  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_carry): New helper
+ 	function for setting the carry flag.
+ 	(ix86_expand_builtin) <handlecarry>: Use it here.
+ 	* config/i386/i386-protos.h (ix86_expand_carry): Prototype here.
+ 	* config/i386/i386.md (uaddc<mode>5): Use ix86_expand_carry.
+ 	(usubc<mode>5): Likewise.
+ 
+ 2023-06-18  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386.md (*concat<mode><dwi>3_1): Use QImode
+ 	for the immediate constant shift count.
+ 	(*concat<mode><dwi>3_2): Likewise.
+ 	(*concat<mode><dwi>3_3): Likewise.
+ 	(*concat<mode><dwi>3_4): Likewise.
+ 	(*concat<mode><dwi>3_5): Likewise.
+ 	(*concat<mode><dwi>3_6): Likewise.
+ 
+ 2023-06-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* cse.cc (hash_rtx_cb): Rename to hash_rtx.
+ 	(hash_rtx): Remove.
+ 	* early-remat.cc (remat_candidate_hasher::equal): Update
+ 	to call rtx_equal_p with rtx_equal_p_callback_function argument.
+ 	* rtl.cc (rtx_equal_p_cb): Rename to rtx_equal_p.
+ 	(rtx_equal_p): Remove.
+ 	* rtl.h (rtx_equal_p): Add rtx_equal_p_callback_function
+ 	argument with NULL default value.
+ 	(rtx_equal_p_cb): Remove function declaration.
+ 	(hash_rtx_cb): Ditto.
+ 	(hash_rtx): Add hash_rtx_callback_function argument
+ 	with NULL default value.
+ 	* sel-sched-ir.cc (free_nop_pool): Update function comment.
+ 	(skip_unspecs_callback): Ditto.
+ 	(vinsn_init): Update to call hash_rtx with
+ 	hash_rtx_callback_function argument.
+ 	(vinsn_equal_p): Ditto.
+ 
+ 2023-06-18  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (valid_type): Enable FP16 tuple.
+ 	* config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
+ 	(ADJUST_ALIGNMENT): Ditto.
+ 	(RVV_TUPLE_PARTIAL_MODES): Ditto.
+ 	(ADJUST_NUNITS): Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (vfloat16mf4x2_t):
+ 	New types.
+ 	(vfloat16mf4x3_t): Ditto.
+ 	(vfloat16mf4x4_t): Ditto.
+ 	(vfloat16mf4x5_t): Ditto.
+ 	(vfloat16mf4x6_t): Ditto.
+ 	(vfloat16mf4x7_t): Ditto.
+ 	(vfloat16mf4x8_t): Ditto.
+ 	(vfloat16mf2x2_t): Ditto.
+ 	(vfloat16mf2x3_t): Ditto.
+ 	(vfloat16mf2x4_t): Ditto.
+ 	(vfloat16mf2x5_t): Ditto.
+ 	(vfloat16mf2x6_t): Ditto.
+ 	(vfloat16mf2x7_t): Ditto.
+ 	(vfloat16mf2x8_t): Ditto.
+ 	(vfloat16m1x2_t): Ditto.
+ 	(vfloat16m1x3_t): Ditto.
+ 	(vfloat16m1x4_t): Ditto.
+ 	(vfloat16m1x5_t): Ditto.
+ 	(vfloat16m1x6_t): Ditto.
+ 	(vfloat16m1x7_t): Ditto.
+ 	(vfloat16m1x8_t): Ditto.
+ 	(vfloat16m2x2_t): Ditto.
+ 	(vfloat16m2x3_t): Ditto.
+ 	(vfloat16m2x4_t): Ditto.
+ 	(vfloat16m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (vfloat16mf4x2_t): New macro.
+ 	(vfloat16mf4x3_t): Ditto.
+ 	(vfloat16mf4x4_t): Ditto.
+ 	(vfloat16mf4x5_t): Ditto.
+ 	(vfloat16mf4x6_t): Ditto.
+ 	(vfloat16mf4x7_t): Ditto.
+ 	(vfloat16mf4x8_t): Ditto.
+ 	(vfloat16mf2x2_t): Ditto.
+ 	(vfloat16mf2x3_t): Ditto.
+ 	(vfloat16mf2x4_t): Ditto.
+ 	(vfloat16mf2x5_t): Ditto.
+ 	(vfloat16mf2x6_t): Ditto.
+ 	(vfloat16mf2x7_t): Ditto.
+ 	(vfloat16mf2x8_t): Ditto.
+ 	(vfloat16m1x2_t): Ditto.
+ 	(vfloat16m1x3_t): Ditto.
+ 	(vfloat16m1x4_t): Ditto.
+ 	(vfloat16m1x5_t): Ditto.
+ 	(vfloat16m1x6_t): Ditto.
+ 	(vfloat16m1x7_t): Ditto.
+ 	(vfloat16m1x8_t): Ditto.
+ 	(vfloat16m2x2_t): Ditto.
+ 	(vfloat16m2x3_t): Ditto.
+ 	(vfloat16m2x4_t): Ditto.
+ 	(vfloat16m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): New.
+ 	* config/riscv/riscv.md: New.
+ 	* config/riscv/vector-iterators.md: New.
+ 
+ 2023-06-17  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_move): Check that OP1 is
+ 	CONST_WIDE_INT_P before calling ix86_convert_wide_int_to_broadcast.
+ 	Generalize special case for converting TImode to V1TImode to handle
+ 	all 128-bit vector conversions.
+ 
+ 2023-06-17  Costas Argyris  <costas.argyris@gmail.com>
+ 
+ 	* gcc-ar.cc (main): Refactor to slightly reduce code
+ 	duplication.  Avoid unnecessary elements in nargv.
+ 
+ 2023-06-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/110265
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Add ret_mode for
+ 	integer reduction expand.
+ 	* config/riscv/vector-iterators.md: Add VQI, VHI, VSI and VDI,
+ 	and the LMUL1 attr respectively.
+ 	* config/riscv/vector.md
+ 	(@pred_reduc_<reduc><mode><vlmul1>): Removed.
+ 	(@pred_reduc_<reduc><mode><vlmul1_zve64>): Likewise.
+ 	(@pred_reduc_<reduc><mode><vlmul1_zve32>): Likewise.
+ 	(@pred_reduc_<reduc><VQI:mode><VQI_LMUL1:mode>): New pattern.
+ 	(@pred_reduc_<reduc><VHI:mode><VHI_LMUL1:mode>): Likewise.
+ 	(@pred_reduc_<reduc><VSI:mode><VSI_LMUL1:mode>): Likewise.
+ 	(@pred_reduc_<reduc><VDI:mode><VDI_LMUL1:mode>): Likewise.
+ 
+ 2023-06-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110264
+ 	* config/riscv/riscv-vsetvl.cc (insert_vsetvl): Fix bug.
+ 
+ 2023-06-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/79173
+ 	* builtin-types.def (BT_FN_UINT_UINT_UINT_UINT_UINTPTR,
+ 	BT_FN_ULONG_ULONG_ULONG_ULONG_ULONGPTR,
+ 	BT_FN_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONGPTR): New
+ 	types.
+ 	* builtins.def (BUILT_IN_ADDC, BUILT_IN_ADDCL, BUILT_IN_ADDCLL,
+ 	BUILT_IN_SUBC, BUILT_IN_SUBCL, BUILT_IN_SUBCLL): New builtins.
+ 	* builtins.cc (fold_builtin_addc_subc): New function.
+ 	(fold_builtin_varargs): Handle BUILT_IN_{ADD,SUB}C{,L,LL}.
+ 	* doc/extend.texi (__builtin_addc, __builtin_subc): Document.
+ 
+ 2023-06-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/110271
+ 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children)
+ 	<case PLUS_EXPR>: Ignore return value from match_arith_overflow,
+ 	instead call match_uaddc_usubc only if gsi_stmt (gsi) is still stmt.
+ 
+ 2023-06-16  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-06-16  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/31985
+ 	* config/i386/i386.md (*add<dwi>3_doubleword_concat): New
+ 	define_insn_and_split combine *add<dwi>3_doubleword with
+ 	a *concat<mode><dwi>3 for more efficient lowering after reload.
+ 
+ 2023-06-16  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira-lives.cc: Include except.h.
+ 	(process_bb_node_lives): Ignore conflicts from cleanup exceptions
+ 	when the pseudo does not live at the exception landing pad.
+ 
+ 2023-06-16  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* doc/invoke.texi: Document -Welaborated-enum-base.
+ 
+ 2023-06-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd-builtins.def (shrn2_n): Rename builtins to...
+ 	(ushrn2_n): ... This.
+ 	(sqshrn2_n): Rename builtins to...
+ 	(ssqshrn2_n): ... This.
+ 	(uqshrn2_n): Rename builtins to...
+ 	(uqushrn2_n): ... This.
+ 	* config/aarch64/arm_neon.h (vqshrn_high_n_s16): Adjust for the above.
+ 	(vqshrn_high_n_s32): Likewise.
+ 	(vqshrn_high_n_s64): Likewise.
+ 	(vqshrn_high_n_u16): Likewise.
+ 	(vqshrn_high_n_u32): Likewise.
+ 	(vqshrn_high_n_u64): Likewise.
+ 	(vshrn_high_n_s16): Likewise.
+ 	(vshrn_high_n_s32): Likewise.
+ 	(vshrn_high_n_s64): Likewise.
+ 	(vshrn_high_n_u16): Likewise.
+ 	(vshrn_high_n_u32): Likewise.
+ 	(vshrn_high_n_u64): Likewise.
+ 	* config/aarch64/aarch64-simd.md (aarch64_<shrn_op>shrn2_n<mode>_insn_le):
+ 	Rename to...
+ 	(aarch64_<shrn_op><sra_op>shrn2_n<mode>_insn_le): ... This.
+ 	Use SHIFTRT iterator and AARCH64_VALID_SHRN_OP check.
+ 	(aarch64_<shrn_op>shrn2_n<mode>_insn_be): Rename to...
+ 	(aarch64_<shrn_op><sra_op>shrn2_n<mode>_insn_be): ... This.
+ 	Use SHIFTRT iterator and AARCH64_VALID_SHRN_OP check.
+ 	(aarch64_<shrn_op>shrn2_n<mode>): Rename to...
+ 	(aarch64_<shrn_op><sra_op>shrn2_n<mode>): ... This.
+ 	Update expander for the above.
+ 
+ 2023-06-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd-builtins.def (shrn2): Rename builtins to...
+ 	(shrn2_n): ... This.
+ 	(rshrn2): Rename builtins to...
+ 	(rshrn2_n): ... This.
+ 	* config/aarch64/arm_neon.h (vrshrn_high_n_s16): Adjust for the above.
+ 	(vrshrn_high_n_s32): Likewise.
+ 	(vrshrn_high_n_s64): Likewise.
+ 	(vrshrn_high_n_u16): Likewise.
+ 	(vrshrn_high_n_u32): Likewise.
+ 	(vrshrn_high_n_u64): Likewise.
+ 	(vshrn_high_n_s16): Likewise.
+ 	(vshrn_high_n_s32): Likewise.
+ 	(vshrn_high_n_s64): Likewise.
+ 	(vshrn_high_n_u16): Likewise.
+ 	(vshrn_high_n_u32): Likewise.
+ 	(vshrn_high_n_u64): Likewise.
+ 	* config/aarch64/aarch64-simd.md (*aarch64_<srn_op>shrn<mode>2_vect_le):
+ 	Delete.
+ 	(*aarch64_<srn_op>shrn<mode>2_vect_be): Likewise.
+ 	(aarch64_shrn2<mode>_insn_le): Likewise.
+ 	(aarch64_shrn2<mode>_insn_be): Likewise.
+ 	(aarch64_shrn2<mode>): Likewise.
+ 	(aarch64_rshrn2<mode>_insn_le): Likewise.
+ 	(aarch64_rshrn2<mode>_insn_be): Likewise.
+ 	(aarch64_rshrn2<mode>): Likewise.
+ 	(aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Likewise.
+ 	(aarch64_<shrn_op>shrn2_n<mode>_insn_le): New define_insn.
+ 	(aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Delete.
+ 	(aarch64_<shrn_op>shrn2_n<mode>_insn_be): New define_insn.
+ 	(aarch64_<sur>q<r>shr<u>n2_n<mode>): Delete.
+ 	(aarch64_<shrn_op>shrn2_n<mode>): New define_expand.
+ 	(aarch64_<shrn_op>rshrn2_n<mode>_insn_le): New define_insn.
+ 	(aarch64_<shrn_op>rshrn2_n<mode>_insn_be): New define_insn.
+ 	(aarch64_<shrn_op>rshrn2_n<mode>): New define_expand.
+ 	(aarch64_sqshrun2_n<mode>_insn_le): New define_insn.
+ 	(aarch64_sqshrun2_n<mode>_insn_be): New define_insn.
+ 	(aarch64_sqshrun2_n<mode>): New define_expand.
+ 	(aarch64_sqrshrun2_n<mode>_insn_le): New define_insn.
+ 	(aarch64_sqrshrun2_n<mode>_insn_be): New define_insn.
+ 	(aarch64_sqrshrun2_n<mode>): New define_expand.
+ 	* config/aarch64/iterators.md (UNSPEC_SQSHRUN, UNSPEC_SQRSHRUN,
+ 	UNSPEC_SQSHRN, UNSPEC_UQSHRN, UNSPEC_SQRSHRN, UNSPEC_UQRSHRN):
+ 	Delete unspec values.
+ 	(VQSHRN_N): Delete int iterator.
+ 
+ 2023-06-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (AARCH64_VALID_SHRN_OP): Define.
+ 	* config/aarch64/aarch64-simd.md
+ 	(*aarch64_<shrn_op>shrn_n<mode>_insn<vczle><vczbe>): Rename to...
+ 	(*aarch64_<shrn_op><shrn_s>shrn_n<mode>_insn<vczle><vczbe>): ... This.
+ 	Use SHIFTRT iterator and add AARCH64_VALID_SHRN_OP to condition.
+ 	* config/aarch64/iterators.md (shrn_s): New code attribute.
+ 
+ 2023-06-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n_n<mode>):
+ 	Rename to...
+ 	(aarch64_<shrn_op>shrn_n<mode>): ... This.  Reimplement with RTL codes.
+ 	(*aarch64_<shrn_op>rshrn_n<mode>_insn): New define_insn.
+ 	(aarch64_sqrshrun_n<mode>_insn): Likewise.
+ 	(aarch64_sqshrun_n<mode>_insn): Likewise.
+ 	(aarch64_<shrn_op>rshrn_n<mode>): New define_expand.
+ 	(aarch64_sqshrun_n<mode>): Likewise.
+ 	(aarch64_sqrshrun_n<mode>): Likewise.
+ 	* config/aarch64/iterators.md (V2XWIDE): Add HI and SI modes.
+ 
+ 2023-06-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd-builtins.def (shrn): Rename builtins to...
+ 	(shrn_n): ... This.
+ 	(rshrn): Rename builtins to...
+ 	(rshrn_n): ... This.
+ 	* config/aarch64/arm_neon.h (vshrn_n_s16): Adjust for the above.
+ 	(vshrn_n_s32): Likewise.
+ 	(vshrn_n_s64): Likewise.
+ 	(vshrn_n_u16): Likewise.
+ 	(vshrn_n_u32): Likewise.
+ 	(vshrn_n_u64): Likewise.
+ 	(vrshrn_n_s16): Likewise.
+ 	(vrshrn_n_s32): Likewise.
+ 	(vrshrn_n_s64): Likewise.
+ 	(vrshrn_n_u16): Likewise.
+ 	(vrshrn_n_u32): Likewise.
+ 	(vrshrn_n_u64): Likewise.
+ 	* config/aarch64/aarch64-simd.md
+ 	(*aarch64_<srn_op>shrn<mode><vczle><vczbe>): Delete.
+ 	(aarch64_shrn<mode>): Likewise.
+ 	(aarch64_rshrn<mode><vczle><vczbe>_insn): Likewise.
+ 	(aarch64_rshrn<mode>): Likewise.
+ 	(aarch64_<sur>q<r>shr<u>n_n<mode>_insn<vczle><vczbe>): Likewise.
+ 	(aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
+ 	(*aarch64_<shrn_op>shrn_n<mode>_insn<vczle><vczbe>): New define_insn.
+ 	(*aarch64_<shrn_op>rshrn_n<mode>_insn<vczle><vczbe>): Likewise.
+ 	(*aarch64_sqshrun_n<mode>_insn<vczle><vczbe>): Likewise.
+ 	(*aarch64_sqrshrun_n<mode>_insn<vczle><vczbe>): Likewise.
+ 	(aarch64_<shrn_op>shrn_n<mode>): New define_expand.
+ 	(aarch64_<shrn_op>rshrn_n<mode>): Likewise.
+ 	(aarch64_sqshrun_n<mode>): Likewise.
+ 	(aarch64_sqrshrun_n<mode>): Likewise.
+ 	* config/aarch64/iterators.md (ALL_TRUNC): New code iterator.
+ 	(TRUNCEXTEND): New code attribute.
+ 	(TRUNC_SHIFT): Likewise.
+ 	(shrn_op): Likewise.
+ 	* config/aarch64/predicates.md (aarch64_simd_umax_quarter_mode):
+ 	New predicate.
+ 
+ 2023-06-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(pass_vsetvl::global_eliminate_vsetvl_insn): Initialize var by NULL.
+ 
+ 2023-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110278
+ 	* match.pd (uns < (typeof uns)(uns != 0) -> false): New.
+ 	(x != (typeof x)(x == 0) -> true): Likewise.
+ 
+ 2023-06-16  Pali Rohár  <pali@kernel.org>
+ 
+ 	* config/i386/mingw-w64.h (CPP_SPEC): Adjust for -mcrtdll=.
+ 	(REAL_LIBGCC_SPEC): New define.
+ 	* config/i386/mingw.opt: Add mcrtdll=
+ 	* config/i386/mingw32.h (CPP_SPEC): Adjust for -mcrtdll=.
+ 	(REAL_LIBGCC_SPEC): Adjust for -mcrtdll=.
+ 	(STARTFILE_SPEC): Adjust for -mcrtdll=.
+ 	* doc/invoke.texi: Add mcrtdll= documentation.
+ 
+ 2023-06-16  Simon Dardis  <simon.dardis@imgtec.com>
+ 
+ 	* config/mips/mips.cc (enum mips_code_readable_setting):New enmu.
+ 	(mips_handle_code_readable_attr):New static function.
+ 	(mips_get_code_readable_attr):New static enum function.
+ 	(mips_set_current_function):Set the code_readable mode.
+ 	(mips_option_override):Same as above.
+ 	* doc/extend.texi:Document code_readable.
+ 
+ 2023-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110269
+ 	* fold-const.cc (fold_binary_loc): Merge x != 0 folding
+ 	with tree_expr_nonzero_p ...
+ 	* match.pd (cmp (convert? addr@0) integer_zerop): With this
+ 	pattern.
+ 
+ 2023-06-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* Makefile.in: Set LD_PICFLAG.  Use it.  Set enable_host_pie.
+ 	Remove NO_PIE_CFLAGS and NO_PIE_FLAG.  Pass LD_PICFLAG to
+ 	ALL_LINKERFLAGS.  Use the "pic" build of libiberty if --enable-host-pie.
+ 	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
+ 	(--enable-host-pie): New check.  Set PICFLAG and LD_PICFLAG after this
+ 	check.
+ 	* configure: Regenerate.
+ 	* doc/install.texi: Document --enable-host-pie.
+ 
+ 2023-06-15  Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* regcprop.cc (maybe_mode_change): Enable stack pointer
+ 	propagation.
+ 
+ 2023-06-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/110266
+ 	* gimple-range-fold.cc (adjust_imagpart_expr): Check for integer
+ 	complex type.
+ 	(adjust_realpart_expr): Ditto.
+ 
+ 2023-06-15  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/sse.md (<avx512>_vec_dup<mode><mask_name>): Use
+ 	vmovddup.
+ 
+ 2023-06-15  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/i386/constraints.md: Mention k and r for B.
+ 
+ 2023-06-15  Lulu Cheng  <chenglulu@loongson.cn>
+ 	    Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR target/110136
+ 	* config/loongarch/loongarch.md: Modify the register constraints for template
+ 	"jumptable" and "indirect_jump" from "r" to "e".
+ 
+ 2023-06-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-tune.h (loongarch_align): New
+ 	struct.
+ 	* config/loongarch/loongarch-def.h (loongarch_cpu_align): New
+ 	array.
+ 	* config/loongarch/loongarch-def.c (loongarch_cpu_align): Define
+ 	the array.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_option_override_internal): Set the value of
+ 	-falign-functions= if -falign-functions is enabled but no value
+ 	is given.  Likewise for -falign-labels=.
+ 
+ 2023-06-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/79173
+ 	* internal-fn.def (UADDC, USUBC): New internal functions.
+ 	* internal-fn.cc (expand_UADDC, expand_USUBC): New functions.
+ 	(commutative_ternary_fn_p): Return true also for IFN_UADDC.
+ 	* optabs.def (uaddc5_optab, usubc5_optab): New optabs.
+ 	* tree-ssa-math-opts.cc (uaddc_cast, uaddc_ne0, uaddc_is_cplxpart,
+ 	match_uaddc_usubc): New functions.
+ 	(math_opts_dom_walker::after_dom_children): Call match_uaddc_usubc
+ 	for PLUS_EXPR, MINUS_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR unless
+ 	other optimizations have been successful for those.
+ 	* gimple-fold.cc (gimple_fold_call): Handle IFN_UADDC and IFN_USUBC.
+ 	* fold-const-call.cc (fold_const_call): Likewise.
+ 	* gimple-range-fold.cc (adjust_imagpart_expr): Likewise.
+ 	* tree-ssa-dce.cc (eliminate_unnecessary_stmts): Likewise.
+ 	* doc/md.texi (uaddc<mode>5, usubc<mode>5): Document new named
+ 	patterns.
+ 	* config/i386/i386.md (uaddc<mode>5, usubc<mode>5): New
+ 	define_expand patterns.
+ 	(*setcc_qi_addqi3_cconly_overflow_1_<mode>, *setccc): Split
+ 	into NOTE_INSN_DELETED note rather than nop instruction.
+ 	(*setcc_qi_negqi_ccc_1_<mode>, *setcc_qi_negqi_ccc_2_<mode>):
+ 	Likewise.
+ 
+ 2023-06-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/79173
+ 	* config/i386/i386.md (subborrow<mode>): Add alternative with
+ 	memory destination and add for it define_peephole2
+ 	TARGET_READ_MODIFY_WRITE/-Os patterns to prefer using memory
+ 	destination in these patterns.
+ 
+ 2023-06-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/79173
+ 	* config/i386/i386.md (*sub<mode>_3, @add<mode>3_carry,
+ 	addcarry<mode>, @sub<mode>3_carry, *add<mode>3_cc_overflow_1): Add
+ 	define_peephole2 TARGET_READ_MODIFY_WRITE/-Os patterns to prefer
+ 	using memory destination in these patterns.
+ 
+ 2023-06-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-fold.cc (gimple_fold_call): Move handling of arg0
+ 	as well as arg1 INTEGER_CSTs for .UBSAN_CHECK_{ADD,SUB,MUL}
+ 	and .{ADD,SUB,MUL}_OVERFLOW calls from here...
+ 	* fold-const-call.cc (fold_const_call): ... here.
+ 
+ 2023-06-15  Oluwatamilore Adebayo  <oluwatamilore.adebayo@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>):
+ 	Rename to <su>abd<mode>3.
+ 	* config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Rename
+ 	to <su>abd<mode>3.
+ 
+ 2023-06-15  Oluwatamilore Adebayo  <oluwatamilore.adebayo@arm.com>
+ 
+ 	* doc/md.texi (sabd, uabd): Document them.
+ 	* internal-fn.def (ABD): Use new optab.
+ 	* optabs.def (sabd_optab, uabd_optab): New optabs,
+ 	* tree-vect-patterns.cc (vect_recog_absolute_difference):
+ 	Recognize the following idiom abs (a - b).
+ 	(vect_recog_sad_pattern): Refactor to use
+ 	vect_recog_absolute_difference.
+ 	(vect_recog_abd_pattern): Use patterns found by
+ 	vect_recog_absolute_difference to build a new ABD
+ 	internal call.
+ 
+ 2023-06-15  chenxiaolong  <chenxl04200420@163.com>
+ 
+ 	* config/loongarch/loongarch.h (LARCH_CALL_RATIO): Modify the value
+ 	of macro LARCH_CALL_RATIO on LoongArch to make it perform optimally.
+ 
+ 2023-06-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (shuffle_merge_patterns): New pattern.
+ 	(expand_vec_perm_const_1): Add merge optmization.
+ 
+ 2023-06-15  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	PR target/110119
+ 	* config/riscv/riscv.cc (riscv_get_arg_info): Return NULL_RTX for vector mode
+ 	(riscv_pass_by_reference): Return true for vector mode
+ 
+ 2023-06-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Align the predictor sytle.
+ 	* config/riscv/autovec.md: Ditto.
+ 
+ 2023-06-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
+ 	Take elen instead of scalar BITS_PER_WORD.
+ 	(expand_vector_init_merge_repeating_sequence): Use inner_bits_size
+ 	instead of scaler BITS_PER_WORD.
+ 
+ 2023-06-14  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/moxie/uclinux.h (MFWRAP_SPEC): Remove
+ 
+ 2023-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svlast_impl::fold):
+ 	Fix signed comparison warning in loop from npats to enelts.
+ 
+ 2023-06-14  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* gcc.cc (driver_handle_option): Forward host '-lgfortran', '-lm'
+ 	to offloading compilation.
+ 	* config/gcn/mkoffload.cc (main): Adjust.
+ 	* config/nvptx/mkoffload.cc (main): Likewise.
+ 	* doc/invoke.texi (foffload-options): Update example.
+ 
+ 2023-06-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110227
+ 	* config/i386/sse.md (mov<mode>_internal>): Use x instead of v
+ 	for alternative 2 since there's no evex version for vpcmpeqd
+ 	ymm, ymm, ymm.
+ 
+ 2023-06-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* gcc.cc (LINK_COMMAND_SPEC): Remove mudflap spec handling.
+ 
+ 2023-06-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/sh/divtab.cc: Remove.
+ 
+ 2023-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/i386/i386.cc (standard_sse_constant_opcode): Remove
+ 	superfluous spaces around \t for vpcmpeqd.
+ 
+ 2023-06-13  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* expr.cc (store_constructor) <case VECTOR_TYPE>: Don't bother
+ 	clearing vectors with only a single element.  Set CLEARED if the
+ 	vector was initialized to zero.
+ 
+ 2023-06-13  Lehua Ding  <lehua.ding@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (struct mode_vtype_group): Remove duplicate
+ 	#include.
+ 	(ENTRY): Undef.
+ 	(TUPLE_ENTRY): Undef.
+ 
+ 2023-06-13  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (rvv_builder::single_step_npatterns_p): Add comment.
+ 	(shuffle_generic_patterns): Ditto.
+ 	(expand_vec_perm_const_1): Ditto.
+ 
+ 2023-06-13  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (emit_vlmax_decompress_insn): Fix bug.
+ 	(shuffle_decompress_patterns): Ditto.
+ 
+ 2023-06-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Free loop BBs.
+ 
+ 2023-06-13  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 	    Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_init_cumulative_args): Set
+ 	warning flag if func is not builtin
+ 	* config/riscv/riscv.cc
+ 	(riscv_scalable_vector_type_p): Determine whether the type is scalable vector.
+ 	(riscv_arg_has_vector): Determine whether the arg is vector type.
+ 	(riscv_pass_in_vector_p): Check the vector type param is passed by value.
+ 	(riscv_init_cumulative_args): The same as header.
+ 	(riscv_get_arg_info): Add the checking.
+ 	(riscv_function_value): Check the func return and set warning flag
+ 	* config/riscv/riscv.h (INIT_CUMULATIVE_ARGS): Add a flag to
+ 	determine whether warning psabi or not.
+ 
+ 2023-06-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/arm/arm-opts.h (enum arm_tp_type): Remove TP_CP15.
+ 	Add TP_TPIDRURW, TP_TPIDRURO, TP_TPIDRPRW values.
+ 	* config/arm/arm-protos.h (arm_output_load_tpidr): Declare prototype.
+ 	* config/arm/arm.cc (arm_option_reconfigure_globals): Replace TP_CP15
+ 	with TP_TPIDRURO.
+ 	(arm_output_load_tpidr): Define.
+ 	* config/arm/arm.h (TARGET_HARD_TP): Define in terms of TARGET_SOFT_TP.
+ 	* config/arm/arm.md (load_tp_hard): Call arm_output_load_tpidr to output
+ 	assembly.
+ 	(reload_tp_hard): Likewise.
+ 	* config/arm/arm.opt (tpidrurw, tpidruro, tpidrprw): New values for
+ 	arm_tp_type.
+ 	* doc/invoke.texi (Arm Options, mtp): Document new values.
+ 
+ 2023-06-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/108779
+ 	* config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Add
+ 	AARCH64_TPIDRRO_EL0 value.
+ 	* config/aarch64/aarch64.cc (aarch64_output_load_tp): Define.
+ 	* config/aarch64/aarch64.opt (tpidr_el0, tpidr_el1, tpidr_el2,
+ 	tpidr_el3, tpidrro_el3): New accepted values to -mtp=.
+ 	* doc/invoke.texi (AArch64 Options): Document new -mtp= options.
+ 
+ 2023-06-13  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* range-op-float.cc (frange_nextafter): Drop inline.
+ 	(frelop_early_resolve): Add static.
+ 	(frange_float): Likewise.
+ 
+ 2023-06-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110232
+ 	* fold-const.cc (native_interpret_vector): Use TYPE_SIZE_UNIT
+ 	to check whether the buffer covers the whole vector.
+ 
+ 2023-06-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): For
+ 	.MASK_LOAD and friends set the size of the access to unknown.
+ 
+ 2023-06-13  Tejas Belagod  <tbelagod@arm.com>
+ 
+ 	PR target/96339
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svlast_impl::fold): Fold sve
+ 	calls that have a constant input predicate vector.
+ 	(svlast_impl::is_lasta): Query to check if intrinsic is svlasta.
+ 	(svlast_impl::is_lastb): Query to check if intrinsic is svlastb.
+ 	(svlast_impl::vect_all_same): Check if all vector elements are equal.
+ 
+ 2023-06-13  Andi Kleen  <ak@linux.intel.com>
+ 
+ 	* config/i386/gcc-auto-profile: Regenerate.
+ 
+ 2023-06-13  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Fix requirement.
+ 
+ 2023-06-13  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (emit_vlmax_decompress_insn): New function.
+ 	(shuffle_decompress_patterns): New function.
+ 	(expand_vec_perm_const_1): Add decompress optimization.
+ 
+ 2023-06-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/101188
+ 	* postreload.cc (reload_cse_move2add_invalidate): New function,
+ 	extracted from...
+ 	(reload_cse_move2add): Call reload_cse_move2add_invalidate.
+ 
+ 2023-06-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_expand_vector_init): Tweak condition
+ 	if (n_var == n_elts && n_elts <= 16) to allow a single constant,
+ 	and if maxv == 1, use constant element for duplicating into register.
+ 
+ 2023-06-12  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* gimplify.cc (gimplify_adjust_omp_clauses_1): Use
+ 	GOMP_MAP_FORCE_PRESENT for 'present alloc' implicit mapping.
+ 	(gimplify_adjust_omp_clauses): Change
+ 	GOMP_MAP_PRESENT_{TO,TOFROM,FROM,ALLOC} to the equivalent
+ 	GOMP_MAP_FORCE_PRESENT.
+ 	* omp-low.cc (lower_omp_target): Remove handling of no-longer valid
+ 	GOMP_MAP_PRESENT_{TO,TOFROM,FROM,ALLOC}; update map kinds used for
+ 	to/from clauses with present modifier.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/110205
+ 	* range-op-float.cc (range_operator::fold_range): Add default FII
+ 	fold routine.
+ 	* range-op-mixed.h (class operator_gt): Add missing final overrides.
+ 	* range-op.cc (range_op_handler::fold_range): Add RO_FII case.
+ 	(operator_lshift ::update_bitmask): Add final override.
+ 	(operator_rshift ::update_bitmask): Add final override.
+ 	* range-op.h (range_operator::fold_range): Add FII prototype.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
+ 	Use range_op_handler directly.
+ 	* range-op.cc (range_op_handler::range_op_handler): Unsigned
+ 	param instead of tree-code.
+ 	(ptr_op_widen_plus_signed): Delete.
+ 	(ptr_op_widen_plus_unsigned): Delete.
+ 	(ptr_op_widen_mult_signed): Delete.
+ 	(ptr_op_widen_mult_unsigned): Delete.
+ 	(range_op_table::initialize_integral_ops): Add new opcodes.
+ 	* range-op.h (range_op_handler): Use unsigned.
+ 	(OP_WIDEN_MULT_SIGNED): New.
+ 	(OP_WIDEN_MULT_UNSIGNED): New.
+ 	(OP_WIDEN_PLUS_SIGNED): New.
+ 	(OP_WIDEN_PLUS_UNSIGNED): New.
+ 	(RANGE_OP_TABLE_SIZE): New.
+ 	(range_op_table::operator []): Use unsigned.
+ 	(range_op_table::set): Use unsigned.
+ 	(m_range_tree): Make unsigned.
+ 	(ptr_op_widen_mult_signed): Remove.
+ 	(ptr_op_widen_mult_unsigned): Remove.
+ 	(ptr_op_widen_plus_signed): Remove.
+ 	(ptr_op_widen_plus_unsigned): Remove.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-op.cc (gimple_range_op_handler): Set m_operator
+ 	manually as there is no access to the default operator.
+ 	(cfn_copysign::fold_range): Don't check for validity.
+ 	(cfn_ubsan::fold_range): Ditto.
+ 	(gimple_range_op_handler::maybe_builtin_call): Don't set to NULL.
+ 	* range-op.cc (default_operator): New.
+ 	(range_op_handler::range_op_handler): Use default_operator
+ 	instead of NULL.
+ 	(range_op_handler::operator bool): Move from header, compare
+ 	against default operator.
+ 	(range_op_handler::range_op): New.
+ 	* range-op.h (range_op_handler::operator bool): Move.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op.cc (unified_table): Delete.
+ 	(range_op_table operator_table): Instantiate.
+ 	(range_op_table::range_op_table): Rename from unified_table.
+ 	(range_op_handler::range_op_handler): Use range_op_table.
+ 	* range-op.h (range_op_table::operator []): Inline.
+ 	(range_op_table::set): Inline.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (gori_compute::condexpr_adjust): Do not
+ 	pass type.
+ 	* gimple-range-op.cc (get_code): Rename from get_code_and_type
+ 	and simplify.
+ 	(gimple_range_op_handler::supported_p): No need for type.
+ 	(gimple_range_op_handler::gimple_range_op_handler): Ditto.
+ 	(cfn_copysign::fold_range): Ditto.
+ 	(cfn_ubsan::fold_range): Ditto.
+ 	* ipa-cp.cc (ipa_vr_operation_and_type_effects): Ditto.
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Ditto.
+ 	* range-op-float.cc (operator_plus::op1_range): Ditto.
+ 	(operator_mult::op1_range): Ditto.
+ 	(range_op_float_tests): Ditto.
+ 	* range-op.cc (get_op_handler): Remove.
+ 	(range_op_handler::set_op_handler): Remove.
+ 	(operator_plus::op1_range): No need for type.
+ 	(operator_minus::op1_range): Ditto.
+ 	(operator_mult::op1_range): Ditto.
+ 	(operator_exact_divide::op1_range): Ditto.
+ 	(operator_cast::op1_range): Ditto.
+ 	(perator_bitwise_not::fold_range): Ditto.
+ 	(operator_negate::fold_range): Ditto.
+ 	* range-op.h (range_op_handler::range_op_handler): Remove type param.
+ 	(range_cast): No need for type.
+ 	(range_op_table::operator[]): Check for enum_code >= 0.
+ 	* tree-data-ref.cc (compute_distributive_range): No need for type.
+ 	* tree-ssa-loop-unswitch.cc (unswitch_predicate): Ditto.
+ 	* value-query.cc (range_query::get_tree_range): Ditto.
+ 	* value-relation.cc (relation_oracle::validate_relation): Ditto.
+ 	* vr-values.cc (range_of_var_in_loop): Ditto.
+ 	(simplify_using_ranges::fold_cond_with_ops): Ditto.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (operator_max): Remove final.
+ 	* range-op-ptr.cc (pointer_table::pointer_table): Remove MAX_EXPR.
+ 	(pointer_table::pointer_table): Remove.
+ 	(class hybrid_max_operator): New.
+ 	(range_op_table::initialize_pointer_ops): Add hybrid_max_operator.
+ 	* range-op.cc (pointer_tree_table): Remove.
+ 	(unified_table::unified_table): Comment out MAX_EXPR.
+ 	(get_op_handler): Remove check of pointer table.
+ 	* range-op.h (class pointer_table): Remove.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (operator_min): Remove final.
+ 	* range-op-ptr.cc (pointer_table::pointer_table): Remove MIN_EXPR.
+ 	(class hybrid_min_operator): New.
+ 	(range_op_table::initialize_pointer_ops): Add hybrid_min_operator.
+ 	* range-op.cc (unified_table::unified_table): Comment out MIN_EXPR.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (operator_bitwise_or): Remove final.
+ 	* range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_IOR_EXPR.
+ 	(class hybrid_or_operator): New.
+ 	(range_op_table::initialize_pointer_ops): Add hybrid_or_operator.
+ 	* range-op.cc (unified_table::unified_table): Comment out BIT_IOR_EXPR.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (operator_bitwise_and): Remove final.
+ 	* range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_AND_EXPR.
+ 	(class hybrid_and_operator): New.
+ 	(range_op_table::initialize_pointer_ops): Add hybrid_and_operator.
+ 	* range-op.cc (unified_table::unified_table): Comment out BIT_AND_EXPR.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Add range-op-ptr.o.
+ 	* range-op-mixed.h (update_known_bitmask): Move prototype here.
+ 	(minus_op1_op2_relation_effect): Move prototype here.
+ 	(wi_includes_zero_p): Move function to here.
+ 	(wi_zero_p): Ditto.
+ 	* range-op.cc (update_known_bitmask): Remove static.
+ 	(wi_includes_zero_p): Move to header.
+ 	(wi_zero_p): Move to header.
+ 	(minus_op1_op2_relation_effect): Remove static.
+ 	(operator_pointer_diff): Move class and routines to range-op-ptr.cc.
+ 	(pointer_plus_operator): Ditto.
+ 	(pointer_min_max_operator): Ditto.
+ 	(pointer_and_operator): Ditto.
+ 	(pointer_or_operator): Ditto.
+ 	(pointer_table): Ditto.
+ 	(range_op_table::initialize_pointer_ops): Ditto.
+ 	* range-op-ptr.cc: New.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_max): Move from...
+ 	* range-op.cc (unified_table::unified_table): Add MAX_EXPR.
+ 	(get_op_handler): Remove the integral table.
+ 	(class operator_max): Move from here.
+ 	(integral_table::integral_table): Delete.
+ 	* range-op.h (class integral_table): Delete.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_min): Move from...
+ 	* range-op.cc (unified_table::unified_table): Add MIN_EXPR.
+ 	(class operator_min): Move from here.
+ 	(integral_table::integral_table): Remove MIN_EXPR.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_bitwise_or): Move from...
+ 	* range-op.cc (unified_table::unified_table): Add BIT_IOR_EXPR.
+ 	(class operator_bitwise_or): Move from here.
+ 	(integral_table::integral_table): Remove BIT_IOR_EXPR.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_bitwise_and): Move from...
+ 	* range-op.cc (unified_table::unified_table): Add BIT_AND_EXPR.
+ 	(get_op_handler): Check for a pointer table entry first.
+ 	(class operator_bitwise_and): Move from here.
+ 	(integral_table::integral_table): Remove BIT_AND_EXPR.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_bitwise_xor): Move from...
+ 	* range-op.cc (unified_table::unified_table): Add BIT_XOR_EXPR.
+ 	(class operator_bitwise_xor): Move from here.
+ 	(integral_table::integral_table): Remove BIT_XOR_EXPR.
+ 	(pointer_table::pointer_table): Remove BIT_XOR_EXPR.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_bitwise_not): Move from...
+ 	* range-op.cc (unified_table::unified_table): Add BIT_NOT_EXPR.
+ 	(class operator_bitwise_not): Move from here.
+ 	(integral_table::integral_table): Remove BIT_NOT_EXPR.
+ 	(pointer_table::pointer_table): Remove BIT_NOT_EXPR.
+ 
+ 2023-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_addr_expr): Move from...
+ 	* range-op.cc (unified_table::unified_table): Add ADDR_EXPR.
+ 	(class operator_addr_expr): Move from here.
+ 	(integral_table::integral_table): Remove ADDR_EXPR.
+ 	(pointer_table::pointer_table): Remove ADDR_EXPR.
+ 
+ 2023-06-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(vfloat16m1_t): Add type to lmul1 ops.
+ 	(vfloat16m2_t): Likewise.
+ 	(vfloat16m4_t): Likewise.
+ 
+ 2023-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-alias.cc (call_may_clobber_ref_p_1): For
+ 	.MASK_STORE and friend set the size of the access to
+ 	unknown.
+ 
+ 2023-06-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Remove DEFAULT_MATCHPD_PARTITIONS.
+ 
+ 2023-06-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md
+ 	(*v<any_shiftrt:optab><any_extend:optab>trunc<mode>): New pattern.
+ 	(*<any_shiftrt:optab>trunc<mode>): Ditto.
+ 	* config/riscv/autovec.md (<optab><mode>3): Change to
+ 	define_insn_and_split.
+ 	(v<optab><mode>3): Ditto.
+ 	(trunc<mode><v_double_trunc>2): Ditto.
+ 
+ 2023-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* simplify-rtx.cc (simplify_const_unary_operation):
+ 	Handle US_TRUNCATE, SS_TRUNCATE.
+ 
+ 2023-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR modula2/109952
+ 	* doc/gm2.texi (Standard procedures): Fix Next link.
+ 
+ 2023-06-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config.in: Regenerate.
+ 
+ 2023-06-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR middle-end/110142
+ 	* tree-vect-patterns.cc (vect_recog_widen_op_pattern): Don't pass
+ 	subtype to vect_widened_op_tree and remove subtype parameter, also
+ 	remove superfluous overloaded function definition.
+ 	(vect_recog_widen_plus_pattern): Remove subtype parameter and dont pass
+ 	to call to vect_recog_widen_op_pattern.
+ 	(vect_recog_widen_minus_pattern): Likewise.
+ 
+ 2023-06-12  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/sse.md (vec_pack<floatprefix>_float_<mode>): New expander.
+ 	(vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
+ 	(vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
+ 	(vec_unpacks_lo_<mode>): Ditto.
+ 	(vec_unpacks_hi_<mode>): Ditto.
+ 	(sse_movlhps_<mode>): New define_insn.
+ 	(ssse3_palignr<mode>_perm): Extend to V_128H.
+ 	(V_128H): New mode iterator.
+ 	(ssepackPHmode): New mode attribute.
+ 	(vunpck_extract_mode): Ditto.
+ 	(vpckfloat_concat_mode): Extend to VxSI/VxSF for _Float16.
+ 	(vpckfloat_temp_mode): Ditto.
+ 	(vpckfloat_op_mode): Ditto.
+ 	(vunpckfixt_mode): Extend to VxHF.
+ 	(vunpckfixt_model): Ditto.
+ 	(vunpckfixt_extract_mode): Ditto.
+ 
+ 2023-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110200
+ 	* genmatch.cc (expr::gen_transform): Put braces around
+ 	the if arm for the (convert ...) short-cut.
+ 
+ 2023-06-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/109932
+ 	* config/rs6000/rs6000-builtins.def (__builtin_pack_vector_int128,
+ 	__builtin_unpack_vector_int128): Move from stanza power7 to vsx.
+ 
+ 2023-06-12  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/110011
+ 	* config/rs6000/rs6000.cc (output_toc): Use the mode of the 128-bit
+ 	floating constant itself for real_to_target call.
+ 
+ 2023-06-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(vfloat16mf4_t): Add type to X2/X4/X8/X16/X32 vlmul ext ops.
+ 	(vfloat16mf2_t): Ditto.
+ 	(vfloat16m1_t): Ditto.
+ 	(vfloat16m2_t): Ditto.
+ 	(vfloat16m4_t): Ditto.
+ 
+ 2023-06-12  David Edelsohn  <dje.gcc@gmail.com>
+ 
+ 	* config/rs6000/rs6000-logue.cc (rs6000_stack_info):
+ 	Do not require a stack frame when debugging is enabled for AIX.
+ 
+ 2023-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (adjust_len) [insv_notbit_0, insv_notbit_7]:
+ 	Remove attribute values.
+ 	(insv_notbit): New post-reload insn.
+ 	(*insv.not-shiftrt_split, *insv.xor1-bit.0_split)
+ 	(*insv.not-bit.0_split, *insv.not-bit.7_split)
+ 	(*insv.xor-extract_split): Split to insv_notbit.
+ 	(*insv.not-shiftrt, *insv.xor1-bit.0, *insv.not-bit.0, *insv.not-bit.7)
+ 	(*insv.xor-extract): Remove post-reload insns.
+ 	* config/avr/avr.cc (avr_out_insert_notbit) [bitno]: Remove parameter.
+ 	(avr_adjust_insn_length): Adjust call of avr_out_insert_notbit.
+ 	[ADJUST_LEN_INSV_NOTBIT_0, ADJUST_LEN_INSV_NOTBIT_7]: Remove cases.
+ 	* config/avr/avr-protos.h (avr_out_insert_notbit): Adjust prototype.
+ 
+ 2023-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/109907
+ 	* config/avr/avr.md (adjust_len) [extr, extr_not]: New elements.
+ 	(MSB, SIZE): New mode attributes.
+ 	(any_shift): New code iterator.
+ 	(*lshr<mode>3_split, *lshr<mode>3, lshr<mode>3)
+ 	(*lshr<mode>3_const_split): Add constraint alternative for
+ 	the case of shift-offset = MSB.  Ditch "length" attribute.
+ 	(extzv<mode): New. replaces extzv.  Adjust following patterns.
+ 	Use avr_out_extr, avr_out_extr_not to print asm.
+ 	(*extzv.subreg.<mode>, *extzv.<mode>.subreg, *extzv.xor)
+ 	(*extzv<mode>.ge, *neg.ashiftrt<mode>.msb, *extzv.io.lsr7): New.
+ 	* config/avr/constraints.md (C15, C23, C31, Yil): New
+ 	* config/avr/predicates.md (reg_or_low_io_operand)
+ 	(const7_operand, reg_or_low_io_operand)
+ 	(const15_operand, const_0_to_15_operand)
+ 	(const23_operand, const_0_to_23_operand)
+ 	(const31_operand, const_0_to_31_operand): New.
+ 	* config/avr/avr-protos.h (avr_out_extr, avr_out_extr_not): New.
+ 	* config/avr/avr.cc (avr_out_extr, avr_out_extr_not): New funcs.
+ 	(lshrqi3_out, lshrhi3_out, lshrpsi3_out, lshrsi3_out): Adjust
+ 	MSB case to new insn constraint "r" for operands[1].
+ 	(avr_adjust_insn_length) [ADJUST_LEN_EXTR_NOT, ADJUST_LEN_EXTR]:
+ 	Handle these cases.
+ 	(avr_rtx_costs_1): Adjust cost for a new pattern.
+ 
+ 2023-06-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (available_occurrence_p): Enhance user vsetvl optimization.
+ 	(vector_insn_info::parse_insn): Add rtx_insn parse.
+ 	(pass_vsetvl::local_eliminate_vsetvl_insn): Enhance user vsetvl optimization.
+ 	(get_first_vsetvl): New function.
+ 	(pass_vsetvl::global_eliminate_vsetvl_insn): Ditto.
+ 	(pass_vsetvl::cleanup_insns): Remove it.
+ 	(pass_vsetvl::ssa_post_optimization): New function.
+ 	(has_no_uses): Ditto.
+ 	(pass_vsetvl::propagate_avl): Remove it.
+ 	(pass_vsetvl::df_post_optimization): New function.
+ 	(pass_vsetvl::lazy_vsetvl): Rework Phase 5 && Phase 6.
+ 	* config/riscv/riscv-vsetvl.h: Adapt declaration.
+ 
+ 2023-06-10  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (ipcp_vr_lattice::init): Take type argument.
+ 	(ipcp_vr_lattice::print): Call dump method.
+ 	(ipcp_vr_lattice::meet_with): Adjust for m_vr being a
+ 	Value_Range.
+ 	(ipcp_vr_lattice::meet_with_1): Make argument a reference.
+ 	(ipcp_vr_lattice::set_to_bottom): Set varying for an unsupported
+ 	range.
+ 	(initialize_node_lattices): Pass type when appropriate.
+ 	(ipa_vr_operation_and_type_effects): Make type agnostic.
+ 	(ipa_value_range_from_jfunc): Same.
+ 	(propagate_vr_across_jump_function): Same.
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
+ 	(evaluate_properties_for_edge): Same.
+ 	* ipa-prop.cc (ipa_vr::get_vrange): Same.
+ 	(ipcp_update_vr): Same.
+ 	* ipa-prop.h (ipa_value_range_from_jfunc): Same.
+ 	(ipa_range_set_and_normalize): Same.
+ 
+ 2023-06-10  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/109650
+ 	PR target/92729
+ 	* config/avr/avr-passes.def (avr_pass_ifelse): Insert new pass.
+ 	* config/avr/avr.cc (avr_pass_ifelse): New RTL pass.
+ 	(avr_pass_data_ifelse): New pass_data for it.
+ 	(make_avr_pass_ifelse, avr_redundant_compare, avr_cbranch_cost)
+ 	(avr_canonicalize_comparison, avr_out_plus_set_ZN)
+ 	(avr_out_cmp_ext): New functions.
+ 	(compare_condtition): Make sure REG_CC dies in the branch insn.
+ 	(avr_rtx_costs_1): Add computation of cbranch costs.
+ 	(avr_adjust_insn_length) [ADJUST_LEN_ADD_SET_ZN, ADJUST_LEN_CMP_ZEXT]:
+ 	[ADJUST_LEN_CMP_SEXT]Handle them.
+ 	(TARGET_CANONICALIZE_COMPARISON): New define.
+ 	(avr_simplify_comparison_p, compare_diff_p, avr_compare_pattern)
+ 	(avr_reorg_remove_redundant_compare, avr_reorg): Remove functions.
+ 	(TARGET_MACHINE_DEPENDENT_REORG): Remove define.
+ 	* config/avr/avr-protos.h (avr_simplify_comparison_p): Remove proto.
+ 	(make_avr_pass_ifelse, avr_out_plus_set_ZN, cc_reg_rtx)
+ 	(avr_out_cmp_zext): New Protos
+ 	* config/avr/avr.md (branch, difficult_branch): Don't split insns.
+ 	(*cbranchhi.zero-extend.0", *cbranchhi.zero-extend.1")
+ 	(*swapped_tst<mode>, *add.for.eqne.<mode>): New insns.
+ 	(*cbranch<mode>4): Rename to cbranch<mode>4_insn.
+ 	(define_peephole): Add dead_or_set_regno_p(insn,REG_CC) as needed.
+ 	(define_deephole2): Add peep2_regno_dead_p(*,REG_CC) as needed.
+ 	Add new RTL peepholes for decrement-and-branch and *swapped_tst<mode>.
+ 	Rework signtest-and-branch peepholes for *sbrx_branch<mode>.
+ 	(adjust_len) [add_set_ZN, cmp_zext]: New.
+ 	(QIPSI): New mode iterator.
+ 	(ALLs1, ALLs2, ALLs4, ALLs234): New mode iterators.
+ 	(gelt): New code iterator.
+ 	(gelt_eqne): New code attribute.
+ 	(rvbranch, *rvbranch, difficult_rvbranch, *difficult_rvbranch)
+ 	(branch_unspec, *negated_tst<mode>, *reversed_tst<mode>)
+ 	(*cmpqi_sign_extend): Remove insns.
+ 	(define_c_enum "unspec") [UNSPEC_IDENTITY]: Remove.
+ 	* config/avr/avr-dimode.md (cbranch<mode>4): Canonicalize comparisons.
+ 	* config/avr/predicates.md (scratch_or_d_register_operand): New.
+ 	* config/avr/constraints.md (Yxx): New constraint.
+ 
+ 2023-06-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (select_vl<mode>): New pattern.
+ 	* config/riscv/riscv-protos.h (expand_select_vl): New function.
+ 	* config/riscv/riscv-v.cc (expand_select_vl): Ditto.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_mult_div_base): Delete.
+ 	(foperator_mult_div_base::find_range): Make static local function.
+ 	(foperator_mult): Remove.  Move prototypes to range-op-mixed.h
+ 	(operator_mult::op1_range): Rename from foperator_mult.
+ 	(operator_mult::op2_range): Ditto.
+ 	(operator_mult::rv_fold): Ditto.
+ 	(float_table::float_table): Remove MULT_EXPR.
+ 	(class foperator_div): Inherit from range_operator.
+ 	(float_table::float_table): Delete.
+ 	* range-op-mixed.h (class operator_mult): Combined from integer
+ 	and float files.
+ 	* range-op.cc (float_tree_table): Delete.
+ 	(op_mult): New object.
+ 	(unified_table::unified_table): Add MULT_EXPR.
+ 	(get_op_handler): Do not check float table any longer.
+ 	(class cross_product_operator): Move to range-op-mixed.h.
+ 	(class operator_mult): Move to range-op-mixed.h.
+ 	(integral_table::integral_table): Remove MULT_EXPR.
+ 	(pointer_table::pointer_table): Remove MULT_EXPR.
+ 	* range-op.h (float_table): Remove.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_negate): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_negate::fold_range): Rename from foperator_negate.
+ 	(operator_negate::op1_range): Ditto.
+ 	(float_table::float_table): Remove NEGATE_EXPR.
+ 	* range-op-mixed.h (class operator_negate): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_negate): New object.
+ 	(unified_table::unified_table): Add NEGATE_EXPR.
+ 	(class operator_negate): Move to range-op-mixed.h.
+ 	(integral_table::integral_table): Remove NEGATE_EXPR.
+ 	(pointer_table::pointer_table): Remove NEGATE_EXPR.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_minus): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_minus::fold_range): Rename from foperator_minus.
+ 	(operator_minus::op1_range): Ditto.
+ 	(operator_minus::op2_range): Ditto.
+ 	(operator_minus::rv_fold): Ditto.
+ 	(float_table::float_table): Remove MINUS_EXPR.
+ 	* range-op-mixed.h (class operator_minus): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_minus): New object.
+ 	(unified_table::unified_table): Add MINUS_EXPR.
+ 	(class operator_minus): Move to range-op-mixed.h.
+ 	(integral_table::integral_table): Remove MINUS_EXPR.
+ 	(pointer_table::pointer_table): Remove MINUS_EXPR.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_abs): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_abs::fold_range): Rename from foperator_abs.
+ 	(operator_abs::op1_range): Ditto.
+ 	(float_table::float_table): Remove ABS_EXPR.
+ 	* range-op-mixed.h (class operator_abs): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_abs): New object.
+ 	(unified_table::unified_table): Add ABS_EXPR.
+ 	(class operator_abs): Move to range-op-mixed.h.
+ 	(integral_table::integral_table): Remove ABS_EXPR.
+ 	(pointer_table::pointer_table): Remove ABS_EXPR.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_plus): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_plus::fold_range): Rename from foperator_plus.
+ 	(operator_plus::op1_range): Ditto.
+ 	(operator_plus::op2_range): Ditto.
+ 	(operator_plus::rv_fold): Ditto.
+ 	(float_table::float_table): Remove PLUS_EXPR.
+ 	* range-op-mixed.h (class operator_plus): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_plus): New object.
+ 	(unified_table::unified_table): Add PLUS_EXPR.
+ 	(class operator_plus): Move to range-op-mixed.h.
+ 	(integral_table::integral_table): Remove PLUS_EXPR.
+ 	(pointer_table::pointer_table): Remove PLUS_EXPR.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-mixed.h (class operator_cast): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_cast): New object.
+ 	(unified_table::unified_table): Add op_cast
+ 	(class operator_cast): Move to range-op-mixed.h.
+ 	(integral_table::integral_table): Remove op_cast
+ 	(pointer_table::pointer_table): Remove op_cast.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (operator_cst::fold_range): New.
+ 	* range-op-mixed.h (class operator_cst): Move from integer file.
+ 	* range-op.cc (op_cst): New object.
+ 	(unified_table::unified_table): Add op_cst. Also use for REAL_CST.
+ 	(class operator_cst): Move to range-op-mixed.h.
+ 	(integral_table::integral_table): Remove op_cst.
+ 	(pointer_table::pointer_table): Remove op_cst.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_identity): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_identity::fold_range): Rename from foperator_identity.
+ 	(operator_identity::op1_range): Ditto.
+ 	(float_table::float_table): Remove fop_identity.
+ 	* range-op-mixed.h (class operator_identity): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_identity): New object.
+ 	(unified_table::unified_table): Add op_identity.
+ 	(class operator_identity): Move to range-op-mixed.h.
+ 	(integral_table::integral_table): Remove identity.
+ 	(pointer_table::pointer_table): Remove identity.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_ge): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_ge::fold_range): Rename from foperator_ge.
+ 	(operator_ge::op1_range): Ditto.
+ 	(float_table::float_table): Remove GE_EXPR.
+ 	* range-op-mixed.h (class operator_ge): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_ge): New object.
+ 	(unified_table::unified_table): Add GE_EXPR.
+ 	(class operator_ge): Move to range-op-mixed.h.
+ 	(ge_op1_op2_relation): Fold into
+ 	operator_ge::op1_op2_relation.
+ 	(integral_table::integral_table): Remove GE_EXPR.
+ 	(pointer_table::pointer_table): Remove GE_EXPR.
+ 	* range-op.h (ge_op1_op2_relation): Delete.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_gt): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_gt::fold_range): Rename from foperator_gt.
+ 	(operator_gt::op1_range): Ditto.
+ 	(float_table::float_table): Remove GT_EXPR.
+ 	* range-op-mixed.h (class operator_gt): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_gt): New object.
+ 	(unified_table::unified_table): Add GT_EXPR.
+ 	(class operator_gt): Move to range-op-mixed.h.
+ 	(gt_op1_op2_relation): Fold into
+ 	operator_gt::op1_op2_relation.
+ 	(integral_table::integral_table): Remove GT_EXPR.
+ 	(pointer_table::pointer_table): Remove GT_EXPR.
+ 	* range-op.h (gt_op1_op2_relation): Delete.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_le): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_le::fold_range): Rename from foperator_le.
+ 	(operator_le::op1_range): Ditto.
+ 	(float_table::float_table): Remove LE_EXPR.
+ 	* range-op-mixed.h (class operator_le): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_le): New object.
+ 	(unified_table::unified_table): Add LE_EXPR.
+ 	(class operator_le): Move to range-op-mixed.h.
+ 	(le_op1_op2_relation): Fold into
+ 	operator_le::op1_op2_relation.
+ 	(integral_table::integral_table): Remove LE_EXPR.
+ 	(pointer_table::pointer_table): Remove LE_EXPR.
+ 	* range-op.h (le_op1_op2_relation): Delete.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_lt): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_lt::fold_range): Rename from foperator_lt.
+ 	(operator_lt::op1_range): Ditto.
+ 	(float_table::float_table): Remove LT_EXPR.
+ 	* range-op-mixed.h (class operator_lt): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_lt): New object.
+ 	(unified_table::unified_table): Add LT_EXPR.
+ 	(class operator_lt): Move to range-op-mixed.h.
+ 	(lt_op1_op2_relation): Fold into
+ 	operator_lt::op1_op2_relation.
+ 	(integral_table::integral_table): Remove LT_EXPR.
+ 	(pointer_table::pointer_table): Remove LT_EXPR.
+ 	* range-op.h (lt_op1_op2_relation): Delete.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_not_equal): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_equal::fold_range): Rename from foperator_not_equal.
+ 	(operator_equal::op1_range): Ditto.
+ 	(float_table::float_table): Remove NE_EXPR.
+ 	* range-op-mixed.h (class operator_not_equal): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_equal): New object.
+ 	(unified_table::unified_table): Add NE_EXPR.
+ 	(class operator_not_equal): Move to range-op-mixed.h.
+ 	(not_equal_op1_op2_relation): Fold into
+ 	operator_not_equal::op1_op2_relation.
+ 	(integral_table::integral_table): Remove NE_EXPR.
+ 	(pointer_table::pointer_table): Remove NE_EXPR.
+ 	* range-op.h (not_equal_op1_op2_relation): Delete.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_equal): Remove.  Move prototypes
+ 	to range-op-mixed.h
+ 	(operator_equal::fold_range): Rename from foperator_equal.
+ 	(operator_equal::op1_range): Ditto.
+ 	(float_table::float_table): Remove EQ_EXPR.
+ 	* range-op-mixed.h (class operator_equal): Combined from integer
+ 	and float files.
+ 	* range-op.cc (op_equal): New object.
+ 	(unified_table::unified_table): Add EQ_EXPR.
+ 	(class operator_equal): Move to range-op-mixed.h.
+ 	(equal_op1_op2_relation): Fold into
+ 	operator_equal::op1_op2_relation.
+ 	(integral_table::integral_table): Remove EQ_EXPR.
+ 	(pointer_table::pointer_table): Remove EQ_EXPR.
+ 	* range-op.h (equal_op1_op2_relation): Delete.
+ 
+ 2023-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (class float_table): Move to header.
+ 	(float_table::float_table): Move float only operators to...
+ 	(range_op_table::initialize_float_ops): Here.
+ 	* range-op-mixed.h: New.
+ 	* range-op.cc (integral_tree_table, pointer_tree_table): Moved
+ 	to top of file.
+ 	(float_tree_table): Moved from range-op-float.cc.
+ 	(unified_tree_table): New.
+ 	(unified_table::unified_table): New.  Call initialize routines.
+ 	(get_op_handler): Check unified table first.
+ 	(range_op_handler::range_op_handler): Handle no type constructor.
+ 	(integral_table::integral_table): Move integral only operators to...
+ 	(range_op_table::initialize_integral_ops): Here.
+ 	(pointer_table::pointer_table): Move pointer only operators to...
+ 	(range_op_table::initialize_pointer_ops): Here.
+ 	* range-op.h (enum bool_range_state): Move to range-op-mixed.h.
+ 	(get_bool_state): Ditto.
+ 	(empty_range_varying): Ditto.
+ 	(relop_early_resolve): Ditto.
+ 	(class range_op_table): Add new init methods for range types.
+ 	(class integral_table): Move declaration to here.
+ 	(class pointer_table): Move declaration to here.
+ 	(class float_table): Move declaration to here.
+ 
+ 2023-06-09  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    Richard Sandiford <richard.sandiford@arm.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/md.texi: Add SELECT_VL support.
+ 	* internal-fn.def (SELECT_VL): Ditto.
+ 	* optabs.def (OPTAB_D): Ditto.
+ 	* tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Ditto.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Ditto.
+ 	* tree-vect-stmts.cc (get_select_vl_data_ref_ptr): Ditto.
+ 	(vectorizable_store): Ditto.
+ 	(vectorizable_load): Ditto.
+ 	* tree-vectorizer.h (LOOP_VINFO_USING_SELECT_VL_P): Ditto.
+ 
+ 2023-06-09  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR ipa/109886
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Check param
+ 	type as well.
+ 
+ 2023-06-09  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op.cc (range_cast): Move to...
+ 	* range-op.h (range_cast): Here and add generic a version.
+ 
+ 2023-06-09  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c/39589
+ 	PR c++/96868
+ 	* doc/invoke.texi: Clarify that -Wmissing-field-initializers doesn't
+ 	warn about designated initializers in C only.
+ 
+ 2023-06-09  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/97711
+ 	PR tree-optimization/110155
+ 	* match.pd ((zero_one == 0) ? y : z <op> y): Add plus to the op.
+ 	((zero_one != 0) ? z <op> y : y): Likewise.
+ 
+ 2023-06-09  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd ((zero_one ==/!= 0) ? y : z <op> y): Use
+ 	multiply rather than negation/bit_and.
+ 
+ 2023-06-09  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`X & -Y -> X * Y`): Allow for truncation
+ 	and the same type for unsigned types.
+ 
+ 2023-06-09  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110165
+ 	PR tree-optimization/110166
+ 	* match.pd (zero_one_valued_p): Don't accept
+ 	signed 1-bit integers.
+ 
+ 2023-06-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* match.pd (two conversions in a row): Use element_precision
+ 	to DTRT for VECTOR_TYPE.
+ 
+ 2023-06-09  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.md (enabled): Move to another place, and
+ 	add fp_vector_disabled to the cond.
+ 	(fp_vector_disabled): New attr defined for disabling fp.
+ 	* config/riscv/vector-iterators.md: Fix V_WHOLE and V_FRACT.
+ 
+ 2023-06-09  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (enum frm_field_enum): Adjust
+ 	literal to int.
+ 
+ 2023-06-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110108
+ 	* config/i386/i386.cc (ix86_gimple_fold_builtin): Explicitly
+ 	view_convert_expr mask to signed type when folding pblendvb
+ 	builtins.
+ 
+ 2023-06-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/110108
+ 	* config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
+ 	_mm{,256,512}_abs_{epi8,epi16,epi32,epi64} into gimple
+ 	ABSU_EXPR + VCE, don't fold _mm_abs_{pi8,pi16,pi32} w/o
+ 	TARGET_64BIT.
+ 	* config/i386/i386-builtin.def: Replace CODE_FOR_nothing with
+ 	real codename for __builtin_ia32_pabs{b,w,d}.
+ 
+ 2023-06-08  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-op.cc
+ 	(gimple_range_op_handler::gimple_range_op_handler): Adjust.
+ 	(gimple_range_op_handler::maybe_builtin_call): Adjust.
+ 	* gimple-range-op.h (operand1, operand2): Use m_operator.
+ 	* range-op.cc (integral_table, pointer_table): Relocate.
+ 	(get_op_handler): Rename from get_handler and handle all types.
+ 	(range_op_handler::range_op_handler): Relocate.
+ 	(range_op_handler::set_op_handler): Relocate and adjust.
+ 	(range_op_handler::range_op_handler): Relocate.
+ 	(dispatch_trio): New.
+ 	(RO_III, RO_IFI, RO_IFF, RO_FFF, RO_FIF, RO_FII): New consts.
+ 	(range_op_handler::dispatch_kind): New.
+ 	(range_op_handler::fold_range): Relocate and Use new dispatch value.
+ 	(range_op_handler::op1_range): Ditto.
+ 	(range_op_handler::op2_range): Ditto.
+ 	(range_op_handler::lhs_op1_relation): Ditto.
+ 	(range_op_handler::lhs_op2_relation): Ditto.
+ 	(range_op_handler::op1_op2_relation): Ditto.
+ 	(range_op_handler::set_op_handler): Use m_operator member.
+ 	* range-op.h (range_op_handler::operator bool): Use m_operator.
+ 	(range_op_handler::dispatch_kind): New.
+ 	(range_op_handler::m_valid): Delete.
+ 	(range_op_handler::m_int): Delete
+ 	(range_op_handler::m_float): Delete
+ 	(range_op_handler::m_operator): New.
+ 	(range_op_table::operator[]): Relocate from .cc file.
+ 	(range_op_table::set): Ditto.
+ 	* value-range.h (class vrange): Make range_op_handler a friend.
+ 
+ 2023-06-08  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-op.cc (cfn_constant_float_p): Change base class.
+ 	(cfn_pass_through_arg1): Adjust using statemenmt.
+ 	(cfn_signbit): Change base class, adjust using statement.
+ 	(cfn_copysign): Ditto.
+ 	(cfn_sqrt): Ditto.
+ 	(cfn_sincos): Ditto.
+ 	* range-op-float.cc (fold_range): Change class to range_operator.
+ 	(rv_fold): Ditto.
+ 	(op1_range): Ditto
+ 	(op2_range): Ditto
+ 	(lhs_op1_relation): Ditto.
+ 	(lhs_op2_relation): Ditto.
+ 	(op1_op2_relation): Ditto.
+ 	(foperator_*): Ditto.
+ 	(class float_table): New.  Inherit from range_op_table.
+ 	(floating_tree_table) Change to range_op_table pointer.
+ 	(class floating_op_table): Delete.
+ 	* range-op.cc (operator_equal): Adjust using statement.
+ 	(operator_not_equal): Ditto.
+ 	(operator_lt, operator_le, operator_gt, operator_ge): Ditto.
+ 	(operator_minus, operator_cast): Ditto.
+ 	(operator_bitwise_and, pointer_plus_operator): Ditto.
+ 	(get_float_handle): Change return type.
+ 	* range-op.h (range_operator_float): Delete.  Relocate all methods
+ 	into class range_operator.
+ 	(range_op_handler::m_float): Change type to range_operator.
+ 	(floating_op_table): Delete.
+ 	(floating_tree_table): Change type.
+ 
+ 2023-06-08  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op.cc (range_operator::fold_range): Call virtual routine.
+ 	(range_operator::update_bitmask): New.
+ 	(operator_equal::update_bitmask): New.
+ 	(operator_not_equal::update_bitmask): New.
+ 	(operator_lt::update_bitmask): New.
+ 	(operator_le::update_bitmask): New.
+ 	(operator_gt::update_bitmask): New.
+ 	(operator_ge::update_bitmask): New.
+ 	(operator_ge::update_bitmask): New.
+ 	(operator_plus::update_bitmask): New.
+ 	(operator_minus::update_bitmask): New.
+ 	(operator_pointer_diff::update_bitmask): New.
+ 	(operator_min::update_bitmask): New.
+ 	(operator_max::update_bitmask): New.
+ 	(operator_mult::update_bitmask): New.
+ 	(operator_div:operator_div):New.
+ 	(operator_div::update_bitmask): New.
+ 	(operator_div::m_code): New member.
+ 	(operator_exact_divide::operator_exact_divide): New constructor.
+ 	(operator_lshift::update_bitmask): New.
+ 	(operator_rshift::update_bitmask): New.
+ 	(operator_bitwise_and::update_bitmask): New.
+ 	(operator_bitwise_or::update_bitmask): New.
+ 	(operator_bitwise_xor::update_bitmask): New.
+ 	(operator_trunc_mod::update_bitmask): New.
+ 	(op_ident, op_unknown, op_ptr_min_max): New.
+ 	(op_nop, op_convert): Delete.
+ 	(op_ssa, op_paren, op_obj_type): Delete.
+ 	(op_realpart, op_imagpart): Delete.
+ 	(op_ptr_min, op_ptr_max): Delete.
+ 	(pointer_plus_operator:update_bitmask): New.
+ 	(range_op_table::set): Do not use m_code.
+ 	(integral_table::integral_table): Adjust to single instances.
+ 	* range-op.h (range_operator::range_operator): Delete.
+ 	(range_operator::m_code): Delete.
+ 	(range_operator::update_bitmask): New.
+ 
+ 2023-06-08  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-float.cc (range_operator_float::fold_range): Return
+ 	NAN of the result type.
+ 
+ 2023-06-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* optabs.cc (expand_ffs): Add forward declaration.
+ 	(expand_doubleword_clz): Rename to ...
+ 	(expand_doubleword_clz_ctz_ffs): ... this.  Add UNOPTAB argument,
+ 	handle also doubleword CTZ and FFS in addition to CLZ.
+ 	(expand_unop): Adjust caller.  Also call it for doubleword
+ 	ctz_optab and ffs_optab.
+ 
+ 2023-06-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/110152
+ 	* config/i386/i386-expand.cc (ix86_expand_vector_init_general): For
+ 	n_words == 2 recurse with mmx_ok as first argument rather than false.
+ 
+ 2023-06-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* wide-int.cc (wi::bitreverse_large): Use HOST_WIDE_INT_1U to
+ 	avoid sign extension/undefined behaviour when setting each bit.
+ 
+ 2023-06-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin) <handlecarry>:
+ 	Use new x86_stc instruction when the carry flag must be set.
+ 	* config/i386/i386.cc (ix86_cc_mode): Use CCCmode for *x86_cmc.
+ 	(ix86_rtx_costs): Provide accurate rtx_costs for *x86_cmc.
+ 	* config/i386/i386.h (TARGET_SLOW_STC): New define.
+ 	* config/i386/i386.md (UNSPEC_STC): New UNSPEC for stc.
+ 	(x86_stc): New define_insn.
+ 	(define_peephole2): Convert x86_stc into alternate implementation
+ 	on pentium4 without -Os when a QImode register is available.
+ 	(*x86_cmc): New define_insn.
+ 	(define_peephole2): Convert *x86_cmc into alternate implementation
+ 	on pentium4 without -Os when a QImode register is available.
+ 	(*setccc): New define_insn_and_split for a no-op CCCmode move.
+ 	(*setcc_qi_negqi_ccc_1_<mode>): New define_insn_and_split to
+ 	recognize (and eliminate) the carry flag being copied to itself.
+ 	(*setcc_qi_negqi_ccc_2_<mode>): Likewise.
+ 	* config/i386/x86-tune.def (X86_TUNE_SLOW_STC): New tuning flag.
+ 
+ 2023-06-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd: Fix comment for the
+ 	`(zero_one ==/!= 0) ? y : z <op> y` patterns.
+ 
+ 2023-06-07  Jeff Law  <jlaw@ventanamicro.com>
+ 	    Jeff Law   <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (rotrdi3, rotrsi3, rotlsi3): New expanders.
+ 	(rotrsi3_sext): Expose generator.
+ 	(rotlsi3 pattern): Hide generator.
+ 	* config/riscv/riscv-protos.h (riscv_emit_binary): New function
+ 	declaration.
+ 	* config/riscv/riscv.cc (riscv_emit_binary): Removed static
+ 	* config/riscv/riscv.md (addsi3, subsi3, negsi2): Hide generator.
+ 	(mulsi3, <optab>si3): Likewise.
+ 	(addsi3, subsi3, negsi2, mulsi3, <optab>si3): New expanders.
+ 	(addv<mode>4, subv<mode>4, mulv<mode>4): Use riscv_emit_binary.
+ 	(<u>mulsidi3): Likewise.
+ 	(addsi3_extended, subsi3_extended, negsi2_extended): Expose generator.
+ 	(mulsi3_extended, <optab>si3_extended): Likewise.
+ 	(splitter for shadd feeding divison): Update RTL pattern to account
+ 	for changes in how 32 bit ops are expanded for TARGET_64BIT.
+ 	* loop-iv.cc (get_biv_step_1): Process src of extension when it PLUS.
+ 
+ 2023-06-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	PR target/109725
+ 	* config/riscv/riscv.cc (riscv_print_operand): Calculate
+ 	memmodel only when it is valid.
+ 
+ 2023-06-07  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_const_insns): Recursively call
+ 	for constant element of a vector.
+ 
+ 2023-06-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* match.pd (zero_one_valued_p): Don't handle integer_zerop specially,
+ 	instead compare tree_nonzero_bits <= 1U rather than just == 1.
+ 
+ 2023-06-07  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/110132
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_general_simulate_builtin):
+ 	New. Use it ...
+ 	(aarch64_init_ls64_builtins): ... here. Switch to declaring public ACLE
+ 	names for builtins.
+ 	(aarch64_general_init_builtins): Ensure we invoke the arm_acle.h
+ 	setup if in_lto_p, just like we do for SVE.
+ 	* config/aarch64/arm_acle.h: (__arm_ld64b): Delete.
+ 	(__arm_st64b): Delete.
+ 	(__arm_st64bv): Delete.
+ 	(__arm_st64bv0): Delete.
+ 
+ 2023-06-07  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/110100
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_expand_builtin_ls64):
+ 	Use input operand for the destination address.
+ 	* config/aarch64/aarch64.md (st64b): Fix constraint on address
+ 	operand.
+ 
+ 2023-06-07  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/110100
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types):
+ 	Replace eight consecutive spaces with tabs.
+ 	(aarch64_init_ls64_builtins): Likewise.
+ 	(aarch64_expand_builtin_ls64): Likewise.
+ 	* config/aarch64/aarch64.md (ld64b): Likewise.
+ 	(st64b): Likewise.
+ 	(st64bv): Likewise
+ 	(st64bv0): Likewise.
+ 
+ 2023-06-07  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira-costs.cc: (find_costs_and_classes): Constrain classes of pic
+ 	offset table pseudo to a general reg subset.
+ 
+ 2023-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode><vczle><vczbe>):
+ 	Rename to...
+ 	(*aarch64_sqmovun<mode>_insn<vczle><vczbe>): ... This.  Reimplement
+ 	with RTL codes.
+ 	(aarch64_sqmovun<mode> [SD_HSDI]): Reimplement with RTL codes.
+ 	(aarch64_sqxtun2<mode>_le): Likewise.
+ 	(aarch64_sqxtun2<mode>_be): Likewise.
+ 	(aarch64_sqxtun2<mode>): Adjust for the above.
+ 	(aarch64_sqmovun<mode>): New define_expand.
+ 	* config/aarch64/iterators.md (UNSPEC_SQXTUN): Delete.
+ 	(half_mask): New mode attribute.
+ 	* config/aarch64/predicates.md (aarch64_simd_umax_half_mode):
+ 	New predicate.
+ 
+ 2023-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_addp<mode><vczle><vczbe>):
+ 	Reimplement as...
+ 	(aarch64_addp<mode>_insn): ... This...
+ 	(aarch64_addp<mode><vczle><vczbe>_insn): ... And this.
+ 	(aarch64_addp<mode>): New define_expand.
+ 
+ 2023-06-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (expand_vec_perm_const): New function.
+ 	* config/riscv/riscv-v.cc
+ 	(rvv_builder::can_duplicate_repeating_sequence_p): Support POLY
+ 	handling.
+ 	(rvv_builder::single_step_npatterns_p): New function.
+ 	(rvv_builder::npatterns_all_equal_p): Ditto.
+ 	(const_vec_all_in_range_p): Support POLY handling.
+ 	(gen_const_vector_dup): Ditto.
+ 	(emit_vlmax_gather_insn): Add vrgatherei16.
+ 	(emit_vlmax_masked_gather_mu_insn): Ditto.
+ 	(expand_const_vector): Add VLA SLP const vector support.
+ 	(expand_vec_perm): Support POLY.
+ 	(struct expand_vec_perm_d): New struct.
+ 	(shuffle_generic_patterns): New function.
+ 	(expand_vec_perm_const_1): Ditto.
+ 	(expand_vec_perm_const): Ditto.
+ 	* config/riscv/riscv.cc (riscv_vectorize_vec_perm_const): Ditto.
+ 	(TARGET_VECTORIZE_VEC_PERM_CONST): New targethook.
+ 
+ 2023-06-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR middle-end/110117
+ 	* expr.cc (expand_single_bit_test): Handle
+ 	const_int from expand_expr.
+ 
+ 2023-06-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (do_store_flag): Rearrange the
+ 	TER code so that it overrides the nonzero bits
+ 	info if we had `a & POW2`.
+ 
+ 2023-06-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/110134
+ 	* match.pd (-A CMP -B -> B CMP A): Allow EQ/NE for all integer
+ 	types.
+ 	(-A CMP CST -> B CMP (-CST)): Likewise.
+ 
+ 2023-06-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/89263
+ 	PR tree-optimization/99069
+ 	PR tree-optimization/20083
+ 	PR tree-optimization/94898
+ 	* match.pd: Add patterns to optimize `a ? onezero : onezero` with
+ 	one of the operands are constant.
+ 
+ 2023-06-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (zero_one_valued_p): Match 0 integer constant
+ 	too.
+ 
+ 2023-06-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(vfloat32mf2_t): Take RVV_REQUIRE_ELEN_FP_16 as requirement.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 
+ 2023-06-07  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/58487
+ 	* doc/invoke.texi: Document it.
+ 
+ 2023-06-06  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* doc/rtl.texi (bitreverse, copysign): Document new RTX codes.
+ 	* rtl.def (BITREVERSE, COPYSIGN): Define new RTX codes.
+ 	* simplify-rtx.cc (simplify_unary_operation_1): Optimize
+ 	NOT (BITREVERSE x) as BITREVERSE (NOT x).
+ 	Optimize POPCOUNT (BITREVERSE x) as POPCOUNT x.
+ 	Optimize PARITY (BITREVERSE x) as PARITY x.
+ 	Optimize BITREVERSE (BITREVERSE x) as x.
+ 	(simplify_const_unary_operation) <case BITREVERSE>: Evaluate
+ 	BITREVERSE of a constant integer at compile-time.
+ 	(simplify_binary_operation_1) <case COPYSIGN>:  Optimize
+ 	COPY_SIGN (x, x) as x.  Optimize COPYSIGN (x, C) as ABS x
+ 	or NEG (ABS x) for constant C.  Optimize COPYSIGN (ABS x, y)
+ 	and COPYSIGN (NEG x, y) as COPYSIGN (x, y).
+ 	Optimize COPYSIGN (x, ABS y) as ABS x.
+ 	Optimize COPYSIGN (COPYSIGN (x, y), z) as COPYSIGN (x, z).
+ 	Optimize COPYSIGN (x, COPYSIGN (y, z)) as COPYSIGN (x, z).
+ 	(simplify_const_binary_operation): Evaluate COPYSIGN of constant
+ 	arguments at compile-time.
+ 
+ 2023-06-06  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (function_invariant_p): Change return type from int to bool.
+ 	* reload1.cc (function_invariant_p): Change return type from
+ 	int to bool and adjust function body accordingly.
+ 
+ 2023-06-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*<optab>_fma<mode>): New pattern.
+ 	(*single_<optab>mult_plus<mode>): Ditto.
+ 	(*double_<optab>mult_plus<mode>): Ditto.
+ 	(*sign_zero_extend_fma): Ditto.
+ 	(*zero_sign_extend_fma): Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 
+ 2023-06-06  Kwok Cheung Yeung  <kcy@codesourcery.com>
+ 	    Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* gimplify.cc (omp_notice_variable): Apply GOVD_MAP_ALLOC_ONLY flag
+ 	and defaultmap flags if the defaultmap has GOVD_MAP_FORCE_PRESENT flag
+ 	set.
+ 	(omp_get_attachment): Handle map clauses with 'present' modifier.
+ 	(omp_group_base): Likewise.
+ 	(gimplify_scan_omp_clauses): Reorder present maps to come first.
+ 	Set GOVD flags for present defaultmaps.
+ 	(gimplify_adjust_omp_clauses_1): Set map kind for present defaultmaps.
+ 	* omp-low.cc (scan_sharing_clauses): Handle 'always, present' map
+ 	clauses.
+ 	(lower_omp_target): Handle map clauses with 'present' modifier.
+ 	Handle 'to' and 'from' clauses with 'present'.
+ 	* tree-core.h (enum omp_clause_defaultmap_kind): Add
+ 	OMP_CLAUSE_DEFAULTMAP_PRESENT defaultmap kind.
+ 	* tree-pretty-print.cc (dump_omp_clause): Handle 'map', 'to' and
+ 	'from' clauses with 'present' modifier.  Handle present defaultmap.
+ 	* tree.h (OMP_CLAUSE_MOTION_PRESENT): New #define.
+ 
+ 2023-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* config/rs6000/genfusion.pl: Delete some dead code.
+ 
+ 2023-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): New, rewritten and
+ 	split out from...
+ 	(gen_ld_cmpi_p10): ... this.
+ 
+ 2023-06-06  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/106907
+ 	* config/rs6000/rs6000.cc (vec_const_128bit_to_bytes): Remove
+ 	duplicate expression.
+ 
+ 2023-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_general_gimple_fold_builtin):
+ 	Handle unsigned reduc_plus_scal_ builtins.
+ 	* config/aarch64/aarch64-simd-builtins.def (addp): Delete DImode instances.
+ 	* config/aarch64/aarch64-simd.md (aarch64_addpdi): Delete.
+ 	* config/aarch64/arm_neon.h (vpaddd_s64): Reimplement with
+ 	__builtin_aarch64_reduc_plus_scal_v2di.
+ 	(vpaddd_u64): Reimplement with __builtin_aarch64_reduc_plus_scal_v2di_uu.
+ 
+ 2023-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur>shr_n<mode>): Delete.
+ 	(aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): New define_insn.
+ 	(aarch64_<sra_op>rshr_n<mode>): New define_expand.
+ 
+ 2023-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Delete.
+ 	(aarch64_shrn<mode>_insn_be): Delete.
+ 	(*aarch64_<srn_op>shrn<mode>_vect):  Rename to...
+ 	(*aarch64_<srn_op>shrn<mode><vczle><vczbe>): ... This.
+ 	(aarch64_shrn<mode>): Remove reference to the above deleted patterns.
+ 	(aarch64_rshrn<mode>_insn_le): Delete.
+ 	(aarch64_rshrn<mode>_insn_be): Delete.
+ 	(aarch64_rshrn<mode><vczle><vczbe>_insn): New define_insn.
+ 	(aarch64_rshrn<mode>): Remove references to the above deleted patterns.
+ 
+ 2023-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_parallel_select_half_p):
+ 	Define prototype.
+ 	(aarch64_pars_overlap_p): Likewise.
+ 	* config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
+ 	Express in terms of UNSPEC_ADDV.
+ 	(*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): Likewise.
+ 	(*aarch64_<su>addlv<mode>_reduction): Define.
+ 	(*aarch64_uaddlv<mode>_reduction_2): Likewise.
+ 	* config/aarch64/aarch64.cc	(aarch64_parallel_select_half_p): Define.
+ 	(aarch64_pars_overlap_p): Likewise.
+ 	* config/aarch64/iterators.md (UNSPEC_SADDLV, UNSPEC_UADDLV): Delete.
+ 	(VQUADW): New mode attribute.
+ 	(VWIDE2X_S): Likewise.
+ 	(USADDLV): Delete.
+ 	(su): Delete handling of UNSPEC_SADDLV, UNSPEC_UADDLV.
+ 	* config/aarch64/predicates.md (vect_par_cnst_select_half): Define.
+ 
+ 2023-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/110055
+ 	* gimplify.cc (gimplify_target_expr): Do not emit
+ 	CLOBBERs for variables which have static storage duration
+ 	after gimplifying their initializers.
+ 
+ 2023-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109143
+ 	* tree-ssa-structalias.cc (solution_set_expand): Avoid
+ 	one bitmap iteration and optimize bit range setting.
+ 
+ 2023-06-06  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR bootstrap/110120
+ 	* postreload.cc (reload_cse_move2add, move2add_use_add2_insn): Use
+ 	XVECEXP, not XEXP, to access first item of a PARALLEL.
+ 
+ 2023-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(vfloat16mf4_t): Add vfloat16mf4_t to WF operations.
+ 	(vfloat16mf2_t): Likewise.
+ 	(vfloat16m1_t): Likewise.
+ 	(vfloat16m2_t): Likewise.
+ 	(vfloat16m4_t): Likewise.
+ 	(vfloat16m8_t): Likewise.
+ 	* config/riscv/vector-iterators.md: Add FP=16 to VWF, VWF_ZVE64,
+ 	VWLMUL1, VWLMUL1_ZVE64, vwlmul1 and vwlmul1_zve64.
+ 
+ 2023-06-06  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Use Pmode
+ 	for cfi reg/mem machmode
+ 	(riscv_adjust_libcall_cfi_epilogue): Use Pmode for cfi reg machmode
+ 
+ 2023-06-06  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/vector-iterators.md:
+ 	Fix 'REQUIREMENT' for machine_mode 'MODE'.
+ 	* config/riscv/vector.md (@pred_indexed_<order>store<VNX16_QHS:mode>
+ 	<VNX16_QHSI:mode>): change VNX16_QHSI to VNX16_QHSDI.
+ 	(@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSDI:mode>): Ditto.
+ 
+ 2023-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector-iterators.md: Fix typo in mode attr.
+ 
+ 2023-06-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 	    Joel Hutton  <joel.hutton@arm.com>
+ 
+ 	* doc/generic.texi: Remove old tree codes.
+ 	* expr.cc (expand_expr_real_2): Remove old tree code cases.
+ 	* gimple-pretty-print.cc (dump_binary_rhs): Likewise.
+ 	* optabs-tree.cc (optab_for_tree_code): Likewise.
+ 	(supportable_half_widening_operation): Likewise.
+ 	* tree-cfg.cc (verify_gimple_assign_binary): Likewise.
+ 	* tree-inline.cc (estimate_operator_cost): Likewise.
+ 	(op_symbol_code): Likewise.
+ 	* tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Likewise.
+ 	(vect_analyze_data_ref_accesses): Likewise.
+ 	* tree-vect-generic.cc (expand_vector_operations_1): Likewise.
+ 	* cfgexpand.cc (expand_debug_expr): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Likewise.
+ 	(supportable_widening_operation): Likewise.
+ 	* gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
+ 	Likewise.
+ 	* optabs.def (vec_widen_ssubl_hi_optab, vec_widen_ssubl_lo_optab,
+ 	vec_widen_saddl_hi_optab, vec_widen_saddl_lo_optab,
+ 	vec_widen_usubl_hi_optab, vec_widen_usubl_lo_optab,
+ 	vec_widen_uaddl_hi_optab, vec_widen_uaddl_lo_optab): Remove optabs.
+ 	* tree-pretty-print.cc (dump_generic_node): Remove tree code definition.
+ 	* tree.def (WIDEN_PLUS_EXPR, WIDEN_MINUS_EXPR, VEC_WIDEN_PLUS_HI_EXPR,
+ 	VEC_WIDEN_PLUS_LO_EXPR, VEC_WIDEN_MINUS_HI_EXPR,
+ 	VEC_WIDEN_MINUS_LO_EXPR): Likewise.
+ 
+ 2023-06-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 	    Joel Hutton  <joel.hutton@arm.com>
+ 	    Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (vec_widen_<su>addl_lo_<mode>): Rename
+ 	this ...
+ 	(vec_widen_<su>add_lo_<mode>): ... to this.
+ 	(vec_widen_<su>addl_hi_<mode>): Rename this ...
+ 	(vec_widen_<su>add_hi_<mode>): ... to this.
+ 	(vec_widen_<su>subl_lo_<mode>): Rename this ...
+ 	(vec_widen_<su>sub_lo_<mode>): ... to this.
+ 	(vec_widen_<su>subl_hi_<mode>): Rename this ...
+ 	(vec_widen_<su>sub_hi_<mode>): ...to this.
+ 	* doc/generic.texi: Document new IFN codes.
+ 	* internal-fn.cc (lookup_hilo_internal_fn): Add lookup function.
+ 	(commutative_binary_fn_p): Add widen_plus fn's.
+ 	(widening_fn_p): New function.
+ 	(narrowing_fn_p): New function.
+ 	(direct_internal_fn_optab): Change visibility.
+ 	* internal-fn.def (DEF_INTERNAL_WIDENING_OPTAB_FN): Macro to define an
+ 	internal_fn that expands into multiple internal_fns for widening.
+ 	(IFN_VEC_WIDEN_PLUS, IFN_VEC_WIDEN_PLUS_HI, IFN_VEC_WIDEN_PLUS_LO,
+ 	IFN_VEC_WIDEN_PLUS_EVEN, IFN_VEC_WIDEN_PLUS_ODD,
+ 	IFN_VEC_WIDEN_MINUS, IFN_VEC_WIDEN_MINUS_HI,
+ 	IFN_VEC_WIDEN_MINUS_LO, IFN_VEC_WIDEN_MINUS_ODD,
+ 	IFN_VEC_WIDEN_MINUS_EVEN): Define widening  plus,minus functions.
+ 	* internal-fn.h (direct_internal_fn_optab): Declare new prototype.
+ 	(lookup_hilo_internal_fn): Likewise.
+ 	(widening_fn_p): Likewise.
+ 	(Narrowing_fn_p): Likewise.
+ 	* optabs.cc (commutative_optab_p): Add widening plus optabs.
+ 	* optabs.def (OPTAB_D): Define widen add, sub optabs.
+ 	* tree-vect-patterns.cc (vect_recog_widen_op_pattern): Support
+ 	patterns with a hi/lo or even/odd split.
+ 	(vect_recog_sad_pattern): Refactor to use new IFN codes.
+ 	(vect_recog_widen_plus_pattern): Likewise.
+ 	(vect_recog_widen_minus_pattern): Likewise.
+ 	(vect_recog_average_pattern): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Add support for
+ 	_HILO IFNs.
+ 	(supportable_widening_operation): Likewise.
+ 	* tree.def (WIDEN_SUM_EXPR): Update example to use new IFNs.
+ 
+ 2023-06-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 	    Joel Hutton  <joel.hutton@arm.com>
+ 
+ 	* tree-vect-patterns.cc: Add include for gimple-iterator.
+ 	(vect_recog_widen_op_pattern): Refactor to use code_helper.
+ 	(vect_gimple_build): New function.
+ 	* tree-vect-stmts.cc (simple_integer_narrowing): Refactor to use
+ 	code_helper.
+ 	(vectorizable_call): Likewise.
+ 	(vect_gen_widened_results_half): Likewise.
+ 	(vect_create_vectorized_demotion_stmts): Likewise.
+ 	(vect_create_vectorized_promotion_stmts): Likewise.
+ 	(vect_create_half_widening_stmts): Likewise.
+ 	(vectorizable_conversion): Likewise.
+ 	(supportable_widening_operation): Likewise.
+ 	(supportable_narrowing_operation): Likewise.
+ 	* tree-vectorizer.h (supportable_widening_operation): Change
+ 	prototype to use code_helper.
+ 	(supportable_narrowing_operation): Likewise.
+ 	(vect_gimple_build): New function prototype.
+ 	* tree.h (code_helper::safe_as_tree_code): New function.
+ 	(code_helper::safe_as_fn_code): New function.
+ 
+ 2023-06-05  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* wide-int.cc (wi::bitreverse_large): New function implementing
+ 	bit reversal of an integer.
+ 	* wide-int.h (wi::bitreverse): New (template) function prototype.
+ 	(bitreverse_large): Prototype helper function/implementation.
+ 	(wi::bitreverse): New template wrapper around bitreverse_large.
+ 
+ 2023-06-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (print_rtl_single): Change return type from int to void.
+ 	(print_rtl_single_with_indent): Ditto.
+ 	* print-rtl.h (class rtx_writer): Ditto.  Change m_sawclose to bool.
+ 	* print-rtl.cc (rtx_writer::rtx_writer): Update for m_sawclose change.
+ 	(rtx_writer::print_rtx_operand_code_0): Ditto.
+ 	(rtx_writer::print_rtx_operand_codes_E_and_V): Ditto.
+ 	(rtx_writer::print_rtx_operand_code_i): Ditto.
+ 	(rtx_writer::print_rtx_operand_code_u): Ditto.
+ 	(rtx_writer::print_rtx_operand): Ditto.
+ 	(rtx_writer::print_rtx): Ditto.
+ 	(rtx_writer::finish_directive): Ditto.
+ 	(print_rtl_single): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(rtx_writer::print_rtl_single_with_indent): Ditto.
+ 
+ 2023-06-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (reg_classes_intersect_p): Change return type from int to bool.
+ 	(reg_class_subset_p): Ditto.
+ 	* reginfo.cc (reg_classes_intersect_p): Ditto.
+ 	(reg_class_subset_p): Ditto.
+ 
+ 2023-06-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(vfloat32mf2_t): New type for DEF_RVV_WEXTF_OPS.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	(vint16mf4_t): New type for DEF_RVV_CONVERT_I_OPS.
+ 	(vint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vuint16mf4_t): New type for DEF_RVV_CONVERT_U_OPS.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vint32mf2_t): New type for DEF_RVV_WCONVERT_I_OPS.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vuint32mf2_t): New type for DEF_RVV_WCONVERT_U_OPS.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	* config/riscv/vector-iterators.md: Add FP=16 support for V,
+ 	VWCONVERTI, VCONVERT, VNCONVERT, VMUL1 and vlmul1.
+ 
+ 2023-06-05  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR bootstrap/110085
+ 	* Makefile.in (clean): Remove the removing of
+ 	MULTILIB_DIR/MULTILIB_OPTIONS directories.
+ 
+ 2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+ 
+ 	* config/mips/mips-protos.h (mips_emit_speculation_barrier): New
+ 	prototype.
+ 	* config/mips/mips.cc (speculation_barrier_libfunc): New static
+ 	variable.
+ 	(mips_init_libfuncs): Initialize it.
+ 	(mips_emit_speculation_barrier): New function.
+ 	* config/mips/mips.md (speculation_barrier): Call
+ 	mips_emit_speculation_barrier.
+ 
+ 2023-06-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (class rvv_builder): Reorganize functions.
+ 	(rvv_builder::can_duplicate_repeating_sequence_p): Ditto.
+ 	(rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto.
+ 	(rvv_builder::get_merged_repeating_sequence): Ditto.
+ 	(rvv_builder::get_merge_scalar_mask): Ditto.
+ 	(emit_scalar_move_insn): Ditto.
+ 	(emit_vlmax_integer_move_insn): Ditto.
+ 	(emit_nonvlmax_integer_move_insn): Ditto.
+ 	(emit_vlmax_gather_insn): Ditto.
+ 	(emit_vlmax_masked_gather_mu_insn): Ditto.
+ 	(get_repeating_sequence_dup_machine_mode): Ditto.
+ 
+ 2023-06-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Split arguments.
+ 	* config/riscv/riscv-protos.h (expand_vec_perm): Ditto.
+ 	* config/riscv/riscv-v.cc (expand_vec_perm): Ditto.
+ 
+ 2023-06-04  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (do_store_flag): Improve for single bit testing
+ 	not against zero but against that single bit.
+ 
+ 2023-06-04  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (do_store_flag): Extend the one bit checking case
+ 	to handle the case where we don't have an and but rather still
+ 	one bit is known to be non-zero.
+ 
+ 2023-06-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/constraints.md (Zz): Make this a normal
+ 	constraint.
+ 	* config/h8300/h8300.cc (TARGET_LRA_P): Remove.
+ 	* config/h8300/logical.md (H8/SX bit patterns): Remove.
+ 
+ 2023-06-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*btrue_INT_MIN, *eqne_INT_MIN):
+ 	New insn_and_split patterns.
+ 
+ 2023-06-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/110109
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Change expand approach.
+ 	* config/riscv/vector.md (@vlmul_extx2<mode>): Remove it.
+ 	(@vlmul_extx4<mode>): Ditto.
+ 	(@vlmul_extx8<mode>): Ditto.
+ 	(@vlmul_extx16<mode>): Ditto.
+ 	(@vlmul_extx32<mode>): Ditto.
+ 	(@vlmul_extx64<mode>): Ditto.
+ 	(*vlmul_extx2<mode>): Ditto.
+ 	(*vlmul_extx4<mode>): Ditto.
+ 	(*vlmul_extx8<mode>): Ditto.
+ 	(*vlmul_extx16<mode>): Ditto.
+ 	(*vlmul_extx32<mode>): Ditto.
+ 	(*vlmul_extx64<mode>): Ditto.
+ 
+ 2023-06-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(vfloat32mf2_t): Add vfloat32mf2_t type to vfncvt.f.f.w operations.
+ 	(vfloat32m1_t): Likewise.
+ 	(vfloat32m2_t): Likewise.
+ 	(vfloat32m4_t): Likewise.
+ 	(vfloat32m8_t): Likewise.
+ 	* config/riscv/riscv-vector-builtins.def: Fix typo in comments.
+ 	* config/riscv/vector-iterators.md: Add single to half machine
+ 	mode conversion.
+ 
+ 2023-06-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec-opt.md (*<optab>not<mode>): Move to autovec-opt.md.
+ 	(*n<optab><mode>): Ditto.
+ 	* config/riscv/autovec.md (*<optab>not<mode>): Ditto.
+ 	(*n<optab><mode>): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-06-04  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/110083
+ 	* config/i386/i386-features.cc (scalar_chain::convert_compare):
+ 	Update or delete REG_EQUAL notes, converting CONST_INT and
+ 	CONST_WIDE_INT immediate operands to a suitable CONST_VECTOR.
+ 
+ 2023-06-04  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/97720
+ 	* tree-eh.cc (lower_resx): Pass the exception pointer to the
+ 	failure_decl.
+ 	* except.h: Tweak comment.
+ 
+ 2023-06-04  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* postreload.cc (move2add_use_add2_insn): Handle
+ 	trivial single_sets.  Rename variable PAT to SET.
+ 	(move2add_use_add3_insn, reload_cse_move2add): Similar.
+ 
+ 2023-06-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(vfloat16mf4_t): Add the float16 type to DEF_RVV_F_OPS.
+ 	(vfloat16mf2_t): Likewise.
+ 	(vfloat16m1_t): Likewise.
+ 	(vfloat16m2_t): Likewise.
+ 	(vfloat16m4_t): Likewise.
+ 	(vfloat16m8_t): Likewise.
+ 	* config/riscv/riscv.md: Add vfloat16*_t to attr mode.
+ 	* config/riscv/vector-iterators.md: Add vfloat16*_t machine mode
+ 	to V, V_WHOLE, V_FRACT, VINDEX, VM, VEL and sew.
+ 	* config/riscv/vector.md: Add vfloat16*_t machine mode to sew,
+ 	vlmul and ratio.
+ 
+ 2023-06-03  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_epilogue): fix cfi issue with
+ 	correct offset.
+ 
+ 2023-06-03  Die Li  <lidie@eswincomputing.com>
+ 
+ 	* config/riscv/thead.md (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Delete.
+ 
+ 2023-06-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/predicates.md: Change INTVAL into UINTVAL.
+ 
+ 2023-06-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Add vector-opt.md.
+ 	* config/riscv/autovec-opt.md: New file.
+ 
+ 2023-06-03  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/110067
+ 	* gimple-ssa-store-merging.cc (find_bswap_or_nop): Don't try
+ 	bswap + rotate when TYPE_PRECISION(n->type) > n->range.
+ 
+ 2023-06-03  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/92658
+ 	* config/i386/mmx.md (truncv2hiv2qi2): New define_insn.
+ 	(truncv2si<mode>2): Ditto.
+ 
+ 2023-06-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR rtl-optimization/102733
+ 	* dse.cc (store_info): Add addrspace field.
+ 	(record_store): Record the address space
+ 	and check to make sure they are the same.
+ 
+ 2023-06-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR rtl-optimization/110042
+ 	* ifcvt.cc (bbs_ok_for_cmove_arith): Allow paradoxical subregs.
+ 	(bb_valid_for_noce_process_p): Strip the subreg for the SET_DEST.
+ 
+ 2023-06-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/110044
+ 	* config/rs6000/rs6000.cc (darwin_rs6000_special_round_type_align):
+ 	Make sure that we do not have a cap on field alignment before altering
+ 	the struct layout based on the type alignment of the first entry.
+ 
+ 2023-06-02  David Faust  <david.faust@oracle.com>
+ 
+ 	PR debug/110073
+ 	* btfout.cc (btf_absolute_func_id): New function.
+ 	(btf_asm_func_type): Call it here.  Change index parameter from
+ 	size_t to ctf_id_t.  Use PRIu64 formatter.
+ 
+ 2023-06-02  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* btfout.cc (btf_asm_type): Use PRIu64 instead of %lu for uint64_t.
+ 	(btf_asm_datasec_type): Likewise.
+ 
+ 2023-06-02  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def (__builtin_altivec_tr_stxvrhx,
+ 	__builtin_altivec_tr_stxvrwx): Fix type of third argument.
+ 
+ 2023-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/110070
+ 	PR c++/105838
+ 	* tree.h (DECL_MERGEABLE): New.
+ 	* tree-core.h (struct tree_decl_common): Mention it.
+ 	* gimplify.cc (gimplify_init_constructor): Check it.
+ 	* cgraph.cc (symtab_node::address_can_be_compared_p): Likewise.
+ 	* varasm.cc (categorize_decl_for_section): Likewise.
+ 
+ 2023-06-02  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (stack_regs_mentioned): Change return type from int to bool.
+ 	* reg-stack.cc (struct_block_info_def): Change "done" to bool.
+ 	(stack_regs_mentioned_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(stack_regs_mentioned): Ditto.
+ 	(check_asm_stack_operands): Ditto.  Change "malformed_asm"
+ 	variable to bool.
+ 	(move_for_stack_reg): Recode handling of control_flow_insn_deleted.
+ 	(swap_rtx_condition_1): Change return type from int to bool
+ 	and adjust function body accordingly.  Change "r" variable to bool.
+ 	(swap_rtx_condition): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(subst_stack_regs_pat): Recode handling of control_flow_insn_deleted.
+ 	(subst_stack_regs): Ditto.
+ 	(convert_regs_entry): Change return type from int to bool and adjust
+ 	function body accordingly.  Change "inserted" variable to bool.
+ 	(convert_regs_1): Recode handling of control_flow_insn_deleted.
+ 	(convert_regs_2): Recode handling of cfg_altered.
+ 	(convert_regs): Ditto.  Change "inserted" variable to bool.
+ 
+ 2023-06-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/95226
+ 	* varasm.cc (output_constant) [REAL_TYPE]: Check that sizes match.
+ 	(initializer_constant_valid_p_1): Compare float precision.
+ 
+ 2023-06-02  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* doc/extend.texi (Vector Extensions): Clarify bitwise shift
+ 	semantics.
+ 
+ 2023-06-02  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Change decrement IV flow.
+ 	(vect_set_loop_condition_partial_vectors): Ditto.
+ 
+ 2023-06-02  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/110088
+ 	* config/avr/avr.md: Add an RTL peephole to optimize operations on
+ 	non-LD_REGS after a move from LD_REGS.
+ 	(piaop): New code iterator.
+ 
+ 2023-06-02  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	PR testsuite/66005
+ 	* doc/install.texi: Document (optional) Perl usage for parallel
+ 	testing of libgomp.
+ 
+ 2023-06-02  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	PR bootstrap/82856
+ 	* doc/install.texi (Perl): Back to requiring "Perl version 5.6.1 (or
+ 	later)".
+ 
+ 2023-06-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 	    KuanLin Chen  <best124612@gmail.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
+ 
+ 2023-06-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vec_series): Optimize reverse series index vector.
+ 
+ 2023-06-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/predicates.md: Change INTVAL into UINTVAL.
+ 
+ 2023-06-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_VXRM_ENUM): Add
+ 	__RISCV_ prefix.
+ 	(DEF_RVV_FRM_ENUM): Ditto.
+ 
+ 2023-06-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Change vwadd.wv/vwsub.wv
+ 	intrinsic API expander
+ 	* config/riscv/vector.md
+ 	(@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Remove it.
+ 	(@pred_single_widen_sub<any_extend:su><mode>): New pattern.
+ 	(@pred_single_widen_add<any_extend:su><mode>): New pattern.
+ 
+ 2023-06-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (vec_perm<mode>): New pattern.
+ 	* config/riscv/predicates.md (vector_perm_operand): New predicate.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	(expand_vec_perm): New function.
+ 	* config/riscv/riscv-v.cc (const_vec_all_in_range_p): Ditto.
+ 	(gen_const_vector_dup): Ditto.
+ 	(emit_vlmax_gather_insn): Ditto.
+ 	(emit_vlmax_masked_gather_mu_insn): Ditto.
+ 	(expand_vec_perm): Ditto.
+ 
+ 2023-06-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi (-Wpedantic): Improve clarity.
+ 
+ 2023-06-01  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (exp_equiv_p): Change return type from int to bool.
+ 	* cse.cc (mention_regs): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(exp_equiv_p): Ditto.
+ 	(insert_regs): Ditto. Change "modified" function argument to bool
+ 	and update usage accordingly.
+ 	(record_jump_cond): Remove always zero "reversed_nonequality"
+ 	function argument and update usage accordingly.
+ 	(fold_rtx): Change "changed" variable to bool.
+ 	(record_jump_equiv): Remove unneeded "reversed_nonequality" variable.
+ 	(is_dead_reg): Change return type from int to bool.
+ 
+ 2023-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (adddi3, subdi3):
+ 	New RTL generation patterns implemented according to the instruc-
+ 	tion idioms described in the Xtensa ISA reference manual (p. 600).
+ 
+ 2023-06-01  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/109973
+ 	* config/i386/i386-builtin.def (__builtin_ia32_ptestz128): Use new
+ 	CODE_for_sse4_1_ptestzv2di.
+ 	(__builtin_ia32_ptestc128): Use new CODE_for_sse4_1_ptestcv2di.
+ 	(__builtin_ia32_ptestz256): Use new CODE_for_avx_ptestzv4di.
+ 	(__builtin_ia32_ptestc256): Use new CODE_for_avx_ptestcv4di.
+ 	* config/i386/i386-expand.cc (ix86_expand_branch): Use CCZmode
+ 	when expanding UNSPEC_PTEST to compare against zero.
+ 	* config/i386/i386-features.cc (scalar_chain::convert_compare):
+ 	Likewise generate CCZmode UNSPEC_PTESTs when converting comparisons.
+ 	(general_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
+ 	(timode_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
+ 	* config/i386/i386-protos.h (ix86_match_ptest_ccmode): Prototype.
+ 	* config/i386/i386.cc (ix86_match_ptest_ccmode): New predicate to
+ 	check for suitable matching modes for the UNSPEC_PTEST pattern.
+ 	* config/i386/sse.md (define_split): When splitting UNSPEC_MOVMSK
+ 	to UNSPEC_PTEST, preserve the FLAG_REG mode as CCZ.
+ 	(*<sse4_1>_ptest<mode>): Add asterisk to hide define_insn.  Remove
+ 	":CC" mode of FLAGS_REG, instead use ix86_match_ptest_ccmode.
+ 	(<sse4_1>_ptestz<mode>): New define_expand to specify CCZ.
+ 	(<sse4_1>_ptestc<mode>): New define_expand to specify CCC.
+ 	(<sse4_1>_ptest<mode>): A define_expand using CC to preserve the
+ 	current behavior.
+ 	(*ptest<mode>_and): Specify CCZ to only perform this optimization
+ 	when only the Z flag is required.
+ 
+ 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR target/109954
+ 	* doc/invoke.texi (x86 Options): Fix description of -m32 option.
+ 
+ 2023-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>):
+ 	Add =r,m and =r,m alternatives.
+ 	(load_pair<DREG:mode><DREG2:mode>): Likewise.
+ 	(vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
+ 
+ 2023-06-01  Pan Li  <pan2.li@intel.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add FP_16 mask to zvfhmin
+ 	and zvfh.
+ 	* config/riscv/genrvv-type-indexer.cc (valid_type): Allow FP16.
+ 	(main): Disable FP16 tuple.
+ 	* config/riscv/riscv-opts.h (MASK_VECTOR_ELEN_FP_16): New macro.
+ 	(TARGET_VECTOR_ELEN_FP_16): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (check_required_extensions):
+ 	Add FP16.
+ 	* config/riscv/riscv-vector-builtins.def (vfloat16mf4_t): New type.
+ 	(vfloat16mf2_t): Ditto.
+ 	(vfloat16m1_t): Ditto.
+ 	(vfloat16m2_t): Ditto.
+ 	(vfloat16m4_t): Ditto.
+ 	(vfloat16m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_FP_16):
+ 	New macro.
+ 	* config/riscv/riscv-vector-switch.def (ENTRY): Allow FP16
+ 	machine mode based on TARGET_VECTOR_ELEN_FP_16.
+ 
+ 2023-06-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc (register_frm): New function.
+ 	(DEF_RVV_FRM_ENUM): New macro.
+ 	(handle_pragma_vector): Add FRM enum
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_FRM_ENUM): New macro.
+ 	(RNE): Ditto.
+ 	(RTZ): Ditto.
+ 	(RDN): Ditto.
+ 	(RUP): Ditto.
+ 	(RMM): Ditto.
+ 
+ 2023-05-31  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* fold-const-call.cc (fold_const_call_ss) <CFN_BUILT_IN_BSWAP*>:
+ 	Update call to wi::bswap.
+ 	* simplify-rtx.cc (simplify_const_unary_operation) <case BSWAP>:
+ 	Update call to wi::bswap.
+ 	* tree-ssa-ccp.cc (evaluate_stmt) <case BUILT_IN_BSWAP*>:
+ 	Update calls to wi::bswap.
+ 	* wide-int.cc (wide_int_storage::bswap): Remove/rename to...
+ 	(wi::bswap_large): New function, with revised API.
+ 	* wide-int.h (wi::bswap): New (template) function prototype.
+ 	(wide_int_storage::bswap): Remove method.
+ 	(sext_large, zext_large): Consistent indentation/line wrapping.
+ 	(bswap_large): Prototype helper function containing implementation.
+ 	(wi::bswap): New template wrapper around bswap_large.
+ 
+ 2023-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Rename to...
+ 	(<sur>dot_prod<vsi2qi><vczle><vczbe>): ... This.
+ 	(usdot_prod<vsi2qi>): Rename to...
+ 	(usdot_prod<vsi2qi><vczle><vczbe>): ... This.
+ 	(aarch64_<sur>dot_lane<vsi2qi>): Rename to...
+ 	(aarch64_<sur>dot_lane<vsi2qi><vczle><vczbe>): ... This.
+ 	(aarch64_<sur>dot_laneq<vsi2qi>): Rename to...
+ 	(aarch64_<sur>dot_laneq<vsi2qi><vczle><vczbe>): ... This.
+ 	(aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi>): Rename to...
+ 	(aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi><vczle><vczbe>):
+ 	... This.
+ 
+ 2023-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh<mode>): Rename to...
+ 	(aarch64_sq<r>dmulh<mode><vczle><vczbe>): ... This.
+ 	(aarch64_sq<r>dmulh_n<mode>): Rename to...
+ 	(aarch64_sq<r>dmulh_n<mode><vczle><vczbe>): ... This.
+ 	(aarch64_sq<r>dmulh_lane<mode>): Rename to...
+ 	(aarch64_sq<r>dmulh_lane<mode><vczle><vczbe>): ... This.
+ 	(aarch64_sq<r>dmulh_laneq<mode>): Rename to...
+ 	(aarch64_sq<r>dmulh_laneq<mode><vczle><vczbe>): ... This.
+ 	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): Rename to...
+ 	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode><vczle><vczbe>): ... This.
+ 	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Rename to...
+ 	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode><vczle><vczbe>): ... This.
+ 	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Rename to...
+ 	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode><vczle><vczbe>): ... This.
+ 
+ 2023-05-31  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (btf_kind_names): New.
+ 	(btf_kind_name): New.
+ 	(btf_absolute_var_id): New utility function.
+ 	(btf_relative_var_id): Likewise.
+ 	(btf_relative_func_id): Likewise.
+ 	(btf_absolute_datasec_id): Likewise.
+ 	(btf_asm_type_ref): New.
+ 	(btf_asm_type): Update asm comments and use btf_asm_type_ref ().
+ 	(btf_asm_array): Likewise. Accept ctf_container_ref parameter.
+ 	(btf_asm_varent): Likewise.
+ 	(btf_asm_func_arg): Likewise.
+ 	(btf_asm_datasec_entry): Likewise.
+ 	(btf_asm_datasec_type): Likewise.
+ 	(btf_asm_func_type): Likewise. Add index parameter.
+ 	(btf_asm_enum_const): Likewise.
+ 	(btf_asm_sou_member): Likewise.
+ 	(output_btf_vars): Update btf_asm_* call accordingly.
+ 	(output_asm_btf_sou_fields): Likewise.
+ 	(output_asm_btf_enum_list): Likewise.
+ 	(output_asm_btf_func_args_list): Likewise.
+ 	(output_asm_btf_vlen_bytes): Likewise.
+ 	(output_btf_func_types): Add ctf_container_ref parameter.
+ 	Pass it to btf_asm_func_type.
+ 	(output_btf_datasec_types): Update btf_asm_datsec_type call similarly.
+ 	(btf_output): Update output_btf_func_types call similarly.
+ 
+ 2023-05-31  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (btf_asm_type): Add dedicated cases for BTF_KIND_ARRAY
+ 	and BTF_KIND_FWD which do not use the size/type field at all.
+ 
+ 2023-05-31  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (subreg_lowpart_p): Change return type from int to bool.
+ 	(active_insn_p): Ditto.
+ 	(in_sequence_p): Ditto.
+ 	(unshare_all_rtl): Change return type from int to void.
+ 	* emit-rtl.h (mem_expr_equal_p): Change return type from int to bool.
+ 	* emit-rtl.cc (subreg_lowpart_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(mem_expr_equal_p): Ditto.
+ 	(unshare_all_rtl): Change return type from int to void
+ 	and adjust function body accordingly.
+ 	(verify_rtx_sharing): Remove unneeded return.
+ 	(active_insn_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(in_sequence_p): Ditto.
+ 
+ 2023-05-31  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (true_dependence): Change return type from int to bool.
+ 	(canon_true_dependence): Ditto.
+ 	(read_dependence): Ditto.
+ 	(anti_dependence): Ditto.
+ 	(canon_anti_dependence): Ditto.
+ 	(output_dependence): Ditto.
+ 	(canon_output_dependence): Ditto.
+ 	(may_alias_p): Ditto.
+ 	* alias.h (alias_sets_conflict_p): Ditto.
+ 	(alias_sets_must_conflict_p): Ditto.
+ 	(objects_must_conflict_p): Ditto.
+ 	(nonoverlapping_memrefs_p): Ditto.
+ 	* alias.cc (rtx_equal_for_memref_p): Remove forward declaration.
+ 	(record_set): Ditto.
+ 	(base_alias_check): Ditto.
+ 	(find_base_value): Ditto.
+ 	(mems_in_disjoint_alias_sets_p): Ditto.
+ 	(get_alias_set_entry): Ditto.
+ 	(decl_for_component_ref): Ditto.
+ 	(write_dependence_p): Ditto.
+ 	(memory_modified_1): Ditto.
+ 	(mems_in_disjoint_alias_set_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(alias_sets_conflict_p): Ditto.
+ 	(alias_sets_must_conflict_p): Ditto.
+ 	(objects_must_conflict_p): Ditto.
+ 	(rtx_equal_for_memref_p): Ditto.
+ 	(base_alias_check): Ditto.
+ 	(read_dependence): Ditto.
+ 	(nonoverlapping_memrefs_p): Ditto.
+ 	(true_dependence_1): Ditto.
+ 	(true_dependence): Ditto.
+ 	(canon_true_dependence): Ditto.
+ 	(write_dependence_p): Ditto.
+ 	(anti_dependence): Ditto.
+ 	(canon_anti_dependence): Ditto.
+ 	(output_dependence): Ditto.
+ 	(canon_output_dependence): Ditto.
+ 	(may_alias_p): Ditto.
+ 	(init_alias_analysis): Change "changed" variable to bool.
+ 
+ 2023-05-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (<optab><v_double_trunc><mode>2): Change
+ 	expand into define_insn_and_split.
+ 
+ 2023-05-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Remove FRM.
+ 
+ 2023-05-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Remove FRM.
+ 
+ 2023-05-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Remove FRM.
+ 
+ 2023-05-31  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/110039
+ 	* config/aarch64/aarch64.md (aarch64_rev16si2_alt3): New
+ 	pattern.
+ 
+ 2023-05-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/109983
+ 	PR tree-optimization/109143
+ 	* tree-ssa-structalias.cc (struct topo_info): Remove.
+ 	(init_topo_info): Likewise.
+ 	(free_topo_info): Likewise.
+ 	(compute_topo_order): Simplify API, put the component
+ 	with ESCAPED last so it's processed first.
+ 	(topo_visit): Adjust.
+ 	(solve_graph): Likewise.
+ 
+ 2023-05-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (constraint_stats::num_avoided_edges):
+ 	New.
+ 	(add_graph_edge): Count redundant edges we avoid to create.
+ 	(dump_sa_stats): Dump them.
+ 	(ipa_pta_execute): Do not dump generating constraints when
+ 	we are not dumping them.
+ 
+ 2023-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>): Rewrite
+ 	output template to avoid explicit switch on which_alternative.
+ 	(*aarch64_simd_mov<VQMOV:mode>): Likewise.
+ 	(and<mode>3): Likewise.
+ 	(ior<mode>3): Likewise.
+ 	* config/aarch64/aarch64.md (*mov<mode>_aarch64): Likewise.
+ 
+ 2023-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/predicates.md (xtensa_bit_join_operator):
+ 	New predicate.
+ 	* config/xtensa/xtensa.md (ior_op): Remove.
+ 	(*shlrd_reg): Rename from "*shlrd_reg_<code>", and add the
+ 	insn_and_split pattern of the same name to express and capture
+ 	the bit-combining operation with both sides swapped.
+ 	In addition, replace use of code iterator with new operator
+ 	predicate.
+ 	(*shlrd_const, *shlrd_per_byte):
+ 	Likewise regarding the code iterator.
+ 
+ 2023-05-31  Cui, Lili  <lili.cui@intel.com>
+ 
+ 	PR tree-optimization/110038
+ 	* params.opt: Add a limit on tree-reassoc-width.
+ 	* tree-ssa-reassoc.cc
+ 	(rewrite_expr_tree_parallel): Add width limit.
+ 
+ 2023-05-31  Pan Li  <pan2.li@intel.com>
+ 
+ 	* common/config/riscv/riscv-common.cc:
+ 	(riscv_implied_info): Add zvfh item.
+ 	(riscv_ext_version_table): Ditto.
+ 	(riscv_ext_flag_table): Ditto.
+ 	* config/riscv/riscv-opts.h (MASK_ZVFH): New macro.
+ 	(TARGET_ZVFH): Ditto.
+ 
+ 2023-05-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/108804
+ 	* tree-vect-patterns.cc (vect_get_range_info): Remove static.
+ 	* tree-vect-stmts.cc (vect_create_vectorized_demotion_stmts):
+ 	Add new parameter narrow_src_p.
+ 	(vectorizable_conversion): Enhance NARROW FLOAT_EXPR
+ 	vectorization by truncating to lower precision.
+ 	* tree-vectorizer.h (vect_get_range_info): New declare.
+ 
+ 2023-05-30  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-int.h (lra_update_sp_offset): Add the prototype.
+ 	* lra.cc (setup_sp_offset): Change the return type.  Use
+ 	lra_update_sp_offset.
+ 	* lra-eliminations.cc (lra_update_sp_offset): New function.
+ 	(lra_process_new_insns): Push the current insn to reprocess if the
+ 	input reload changes sp offset.
+ 
+ 2023-05-30  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/110041
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
+ 	Fix misleading identation.
+ 
+ 2023-05-30  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (comparison_dominates_p): Change return type from int to bool.
+ 	(condjump_p): Ditto.
+ 	(any_condjump_p): Ditto.
+ 	(any_uncondjump_p): Ditto.
+ 	(simplejump_p): Ditto.
+ 	(returnjump_p): Ditto.
+ 	(eh_returnjump_p): Ditto.
+ 	(onlyjump_p): Ditto.
+ 	(invert_jump_1): Ditto.
+ 	(invert_jump): Ditto.
+ 	(rtx_renumbered_equal_p): Ditto.
+ 	(redirect_jump_1): Ditto.
+ 	(redirect_jump): Ditto.
+ 	(condjump_in_parallel_p): Ditto.
+ 	* jump.cc (invert_exp_1): Adjust forward declaration.
+ 	(comparison_dominates_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(simplejump_p): Ditto.
+ 	(condjump_p): Ditto.
+ 	(condjump_in_parallel_p): Ditto.
+ 	(any_uncondjump_p): Ditto.
+ 	(any_condjump_p): Ditto.
+ 	(returnjump_p): Ditto.
+ 	(eh_returnjump_p): Ditto.
+ 	(onlyjump_p): Ditto.
+ 	(redirect_jump_1): Ditto.
+ 	(redirect_jump): Ditto.
+ 	(invert_exp_1): Ditto.
+ 	(invert_jump_1): Ditto.
+ 	(invert_jump): Ditto.
+ 	(rtx_renumbered_equal_p): Ditto.
+ 
+ 2023-05-30  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* fold-const.cc (minmax_from_comparison): Add support for NE_EXPR.
+ 	* match.pd ((cond (cmp (convert1? x) c1) (convert2? x) c2) pattern):
+ 	Add ne as a possible cmp.
+ 	((a CMP b) ? minmax<a, c> : minmax<b, c> pattern): Likewise.
+ 
+ 2023-05-30  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (`(a CMP CST1) ? max<a,CST2> : a`): New
+ 	pattern.
+ 
+ 2023-05-30  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* simplify-rtx.cc (simplify_binary_operation_1) <AND>: Use wide-int
+ 	instead of HWI_COMPUTABLE_MODE_P and UINTVAL in transformation of
+ 	(and (extend X) C) as (zero_extend (and X C)), to also optimize
+ 	modes wider than HOST_WIDE_INT.
+ 
+ 2023-05-30  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/107172
+ 	* simplify-rtx.cc (simplify_const_relational_operation): Return
+ 	early if we have a MODE_CC comparison that isn't a COMPARE against
+ 	const0_rtx.
+ 
+ 2023-05-30  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_const_insns): Allow
+ 	const_vec_duplicates.
+ 
+ 2023-05-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR middle-end/108938
+ 	* gimple-ssa-store-merging.cc (is_bswap_or_nop_p): New
+ 	function, cut from original find_bswap_or_nop function.
+ 	(find_bswap_or_nop): Add a new parameter, detect bswap +
+ 	rotate and save rotate result in the new parameter.
+ 	(bswap_replace): Add a new parameter to indicate rotate and
+ 	generate rotate stmt if needed.
+ 	(maybe_optimize_vector_constructor): Adjust for new rotate
+ 	parameter in the upper 2 functions.
+ 	(pass_optimize_bswap::execute): Ditto.
+ 	(imm_store_chain_info::output_merged_store): Ditto.
+ 
+ 2023-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>): Delete.
+ 	(aarch64_<su>adalp<mode>): New define_expand.
+ 	(*aarch64_<su>adalp<mode><vczle><vczbe>_insn): New define_insn.
+ 	(aarch64_<su>addlp<mode>): Convert to define_expand.
+ 	(*aarch64_<su>addlp<mode><vczle><vczbe>_insn): New define_insn.
+ 	* config/aarch64/iterators.md (UNSPEC_SADDLP, UNSPEC_UADDLP): Delete.
+ 	(ADALP): Likewise.
+ 	(USADDLP): Likewise.
+ 	* config/aarch64/predicates.md (vect_par_cnst_even_or_odd_half): Define.
+ 
+ 2023-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (VAR1): Move to after inclusion of
+ 	aarch64-builtin-iterators.h.  Add definition to remap shadd, uhadd,
+ 	srhadd, urhadd builtin codes for standard optab ones.
+ 	* config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor): Rename to...
+ 	(<su_optab>avg<mode>3_floor): ... This.  Expand to RTL codes rather than
+ 	unspec.
+ 	(<u>avg<mode>3_ceil): Rename to...
+ 	(<su_optab>avg<mode>3_ceil): ... This.  Expand to RTL codes rather than
+ 	unspec.
+ 	(aarch64_<su>hsub<mode>): New define_expand.
+ 	(aarch64_<sur>h<addsub><mode><vczle><vczbe>): Split into...
+ 	(*aarch64_<su>h<ADDSUB:optab><mode><vczle><vczbe>_insn): ... This...
+ 	(*aarch64_<su>rhadd<mode><vczle><vczbe>_insn): ... And this.
+ 
+ 2023-05-30  Andreas Schwab  <schwab@suse.de>
+ 
+ 	PR target/110036
+ 	* config/riscv/riscv.cc (riscv_asan_shadow_offset): Update to
+ 	match libsanitizer.
+ 
+ 2023-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-modes.def (V16HI, V8SI, V4DI, V2TI): New modes.
+ 	* config/aarch64/aarch64-protos.h (aarch64_const_vec_rnd_cst_p):
+ 	Declare prototype.
+ 	(aarch64_const_vec_rsra_rnd_imm_p): Likewise.
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_sra<mode>): Rename to...
+ 	(aarch64_<sra_op>sra_n<mode>_insn): ... This.
+ 	(aarch64_<sra_op>rsra_n<mode>_insn): New define_insn.
+ 	(aarch64_<sra_op>sra_n<mode>): New define_expand.
+ 	(aarch64_<sra_op>rsra_n<mode>): Likewise.
+ 	(aarch64_<sur>sra_n<mode>): Rename to...
+ 	(aarch64_<sur>sra_ndi): ... This.
+ 	* config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Add
+ 	any_target_p argument.
+ 	(aarch64_extract_vec_duplicate_wide_int): Define.
+ 	(aarch64_const_vec_rsra_rnd_imm_p): Likewise.
+ 	(aarch64_const_vec_rnd_cst_p): Likewise.
+ 	(aarch64_vector_mode_supported_any_target_p): Likewise.
+ 	(TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
+ 	* config/aarch64/iterators.md (UNSPEC_SRSRA, UNSPEC_URSRA): Delete.
+ 	(VSRA): Adjust for the above.
+ 	(sur): Likewise.
+ 	(V2XWIDE): New mode_attr.
+ 	(vec_or_offset): Likewise.
+ 	(SHIFTEXTEND): Likewise.
+ 	* config/aarch64/predicates.md (aarch64_simd_rsra_rnd_imm_vec): New
+ 	predicate.
+ 	* doc/tm.texi (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
+ 	clarify that it applies to current target options.
+ 	(TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Document.
+ 	* doc/tm.texi.in: Regenerate.
+ 	* stor-layout.cc (mode_for_vector): Check
+ 	vector_mode_supported_any_target_p when iterating through vector modes.
+ 	* target.def (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
+ 	clarify that it applies to current target options.
+ 	(TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Define.
+ 
+ 2023-05-30  Lili Cui  <lili.cui@intel.com>
+ 
+ 	PR tree-optimization/98350
+ 	* tree-ssa-reassoc.cc
+ 	(rewrite_expr_tree_parallel): Rewrite this function.
+ 	(rank_ops_for_fma): New.
+ 	(reassociate_bb): Handle new function.
+ 
+ 2023-05-30  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (rtx_addr_can_trap_p): Change return type from int to bool.
+ 	(rtx_unstable_p): Ditto.
+ 	(reg_mentioned_p): Ditto.
+ 	(reg_referenced_p): Ditto.
+ 	(reg_used_between_p): Ditto.
+ 	(reg_set_between_p): Ditto.
+ 	(modified_between_p): Ditto.
+ 	(no_labels_between_p): Ditto.
+ 	(modified_in_p): Ditto.
+ 	(reg_set_p): Ditto.
+ 	(multiple_sets): Ditto.
+ 	(set_noop_p): Ditto.
+ 	(noop_move_p): Ditto.
+ 	(reg_overlap_mentioned_p): Ditto.
+ 	(dead_or_set_p): Ditto.
+ 	(dead_or_set_regno_p): Ditto.
+ 	(find_reg_fusage): Ditto.
+ 	(find_regno_fusage): Ditto.
+ 	(side_effects_p): Ditto.
+ 	(volatile_refs_p): Ditto.
+ 	(volatile_insn_p): Ditto.
+ 	(may_trap_p_1): Ditto.
+ 	(may_trap_p): Ditto.
+ 	(may_trap_or_fault_p): Ditto.
+ 	(computed_jump_p): Ditto.
+ 	(auto_inc_p): Ditto.
+ 	(loc_mentioned_in_p): Ditto.
+ 	* rtlanal.cc (computed_jump_p_1): Adjust forward declaration.
+ 	(rtx_unstable_p): Change return type from int to bool
+ 	and adjust function body accordingly.
+ 	(rtx_addr_can_trap_p): Ditto.
+ 	(reg_mentioned_p): Ditto.
+ 	(no_labels_between_p): Ditto.
+ 	(reg_used_between_p): Ditto.
+ 	(reg_referenced_p): Ditto.
+ 	(reg_set_between_p): Ditto.
+ 	(reg_set_p): Ditto.
+ 	(modified_between_p): Ditto.
+ 	(modified_in_p): Ditto.
+ 	(multiple_sets): Ditto.
+ 	(set_noop_p): Ditto.
+ 	(noop_move_p): Ditto.
+ 	(reg_overlap_mentioned_p): Ditto.
+ 	(dead_or_set_p): Ditto.
+ 	(dead_or_set_regno_p): Ditto.
+ 	(find_reg_fusage): Ditto.
+ 	(find_regno_fusage): Ditto.
+ 	(remove_node_from_insn_list): Ditto.
+ 	(volatile_insn_p): Ditto.
+ 	(volatile_refs_p): Ditto.
+ 	(side_effects_p): Ditto.
+ 	(may_trap_p_1): Ditto.
+ 	(may_trap_p): Ditto.
+ 	(may_trap_or_fault_p): Ditto.
+ 	(computed_jump_p): Ditto.
+ 	(auto_inc_p): Ditto.
+ 	(loc_mentioned_in_p): Ditto.
+ 	* combine.cc (can_combine_p): Update indirect function.
+ 
+ 2023-05-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (<optab><mode><vconvert>2): New pattern.
+ 	* config/riscv/iterators.md: New attribute.
+ 	* config/riscv/vector-iterators.md: New attribute.
+ 
+ 2023-05-30  From: Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.md: Fix signed and unsigned comparison
+ 	warning.
+ 
+ 2023-05-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (fnma<mode>4): New pattern.
+ 	(*fnma<mode>): Ditto.
+ 
+ 2023-05-29  Die Li  <lidie@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move_onesided):
+ 	Delete.
+ 	(riscv_expand_conditional_move):  Reuse the TARGET_SFB_ALU expand
+ 	process for TARGET_XTHEADCONDMOV
+ 
+ 2023-05-29  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/110021
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also require
+ 	TARGET_AVX512BW to generate truncv16hiv16qi2.
+ 
+ 2023-05-29  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/riscv.md (and<mode>3): New expander.
+ 	(*and<mode>3) New pattern.
+ 	* config/riscv/predicates.md (arith_operand_or_mode_mask): New
+ 	predicate.
+ 
+ 2023-05-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (emit_vlmax_insn): Remove unnecessary
+ 	comments and rename local variables.
+ 	(emit_nonvlmax_insn): Diito.
+ 	(emit_vlmax_merge_insn): Ditto.
+ 	(emit_vlmax_cmp_insn): Ditto.
+ 	(emit_vlmax_cmp_mu_insn): Ditto.
+ 	(emit_scalar_move_insn): Ditto.
+ 
+ 2023-05-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (emit_vlmax_insn): Eliminate the
+ 	magic number.
+ 	(emit_nonvlmax_insn): Ditto.
+ 	(emit_vlmax_merge_insn): Ditto.
+ 	(emit_vlmax_cmp_insn): Ditto.
+ 	(emit_vlmax_cmp_mu_insn): Ditto.
+ 	(expand_vec_series): Ditto.
+ 
+ 2023-05-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (enum insn_type): New type.
+ 	* config/riscv/riscv-v.cc (RVV_INSN_OPERANDS_MAX): New macro.
+ 	(rvv_builder::can_duplicate_repeating_sequence_p): Align the referenced
+ 	class member.
+ 	(rvv_builder::get_merged_repeating_sequence): Ditto.
+ 	(rvv_builder::repeating_sequence_use_merge_profitable_p): New function
+ 	to evaluate the optimization cost.
+ 	(rvv_builder::get_merge_scalar_mask): New function to get the merge
+ 	mask.
+ 	(emit_scalar_move_insn): New function to emit vmv.s.x.
+ 	(emit_vlmax_integer_move_insn): New function to emit vlmax vmv.v.x.
+ 	(emit_nonvlmax_integer_move_insn): New function to emit nonvlmax
+ 	vmv.v.x.
+ 	(get_repeating_sequence_dup_machine_mode): New function to get the dup
+ 	machine mode.
+ 	(expand_vector_init_merge_repeating_sequence): New function to perform
+ 	the optimization.
+ 	(expand_vec_init): Add this vector init optimization.
+ 	* config/riscv/riscv.h (BITS_PER_WORD): New macro.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-ssa-loop-manip.cc (create_iv): Try harder to find a SLOC to
+ 	put onto the increment when it is inserted after the position.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* match.pd ((T)P - (T)(P + A) -> -(T) A): Avoid artificial overflow
+ 	on constants.
+ 
+ 2023-05-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (source_equal_p): Fix ICE.
+ 
+ 2023-05-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (fma<mode>4): New pattern.
+ 	(*fma<mode>): Ditto.
+ 	* config/riscv/riscv-protos.h (enum insn_type): New enum.
+ 	(emit_vlmax_ternary_insn): New function.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_ternary_insn): Ditto.
+ 
+ 2023-05-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix vimuladd instruction bug.
+ 
+ 2023-05-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (global_state_unknown_p): New function.
+ 	(riscv_mode_after): Fix incorrect VXM.
+ 
+ 2023-05-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* common/config/riscv/riscv-common.cc:
+ 	(riscv_implied_info): Add zvfhmin item.
+ 	(riscv_ext_version_table): Ditto.
+ 	(riscv_ext_flag_table): Ditto.
+ 	* config/riscv/riscv-opts.h (MASK_ZVFHMIN): New macro.
+ 	(TARGET_ZFHMIN): Align indent.
+ 	(TARGET_ZFH): Ditto.
+ 	(TARGET_ZVFHMIN): New macro.
+ 
+ 2023-05-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/100711
+ 	* config/i386/sse.md (*andnot<mode>3): Extend below splitter
+ 	to VI_AVX2 to cover more modes.
+ 
+ 2023-05-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
+ 	Remove ATOM and ICELAKE(and later) core processors.
+ 
+ 2023-05-26  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (<optab><mode>2): Add vneg/vnot.
+ 	(abs<mode>2): Add.
+ 	* config/riscv/riscv-protos.h (emit_vlmax_masked_mu_insn):
+ 	Declare.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_masked_mu_insn): New
+ 	function.
+ 
+ 2023-05-26  Robin Dapp  <rdapp@ventanamicro.com>
+ 	    Juzhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (<optab><v_double_trunc><mode>2): New
+ 	expander.
+ 	(<optab><v_quad_trunc><mode>2): Dito.
+ 	(<optab><v_oct_trunc><mode>2): Dito.
+ 	(trunc<mode><v_double_trunc>2): Dito.
+ 	(trunc<mode><v_quad_trunc>2): Dito.
+ 	(trunc<mode><v_oct_trunc>2): Dito.
+ 	* config/riscv/riscv-protos.h (vectorize_related_mode): Define.
+ 	(autovectorize_vector_modes): Define.
+ 	* config/riscv/riscv-v.cc (vectorize_related_mode): Implement
+ 	hook.
+ 	(autovectorize_vector_modes): Implement hook.
+ 	* config/riscv/riscv.cc (riscv_autovectorize_vector_modes):
+ 	Implement target hook.
+ 	(riscv_vectorize_related_mode): Implement target hook.
+ 	(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
+ 	(TARGET_VECTORIZE_RELATED_MODE): Define.
+ 	* config/riscv/vector-iterators.md: Add lowercase versions of
+ 	mode_attr iterators.
+ 
+ 2023-05-26  Andrew Stubbs  <ams@codesourcery.com>
+ 	    Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* config/gcn/gcn-hsa.h (XNACKOPT): New macro.
+ 	(ASM_SPEC): Use XNACKOPT.
+ 	* config/gcn/gcn-opts.h (enum sram_ecc_type): Rename to ...
+ 	(enum hsaco_attr_type): ... this, and generalize the names.
+ 	(TARGET_XNACK): New macro.
+ 	* config/gcn/gcn.cc (gcn_option_override): Update to sorry for all
+ 	but -mxnack=off.
+ 	(output_file_start): Update xnack handling.
+ 	(gcn_hsa_declare_function_name): Use TARGET_XNACK.
+ 	* config/gcn/gcn.opt (-mxnack): Add the "on/off/any" syntax.
+ 	(sram_ecc_type): Rename to ...
+ 	(hsaco_attr_type: ... this.)
+ 	* config/gcn/mkoffload.cc (SET_XNACK_ANY): New macro.
+ 	(TEST_XNACK): Delete.
+ 	(TEST_XNACK_ANY): New macro.
+ 	(TEST_XNACK_ON): New macro.
+ 	(main): Support the new -mxnack=on/off/any syntax.
+ 	* doc/invoke.texi (-mxnack): Update for new syntax.
+ 
+ 2023-05-26  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* genmatch.cc (emit_debug_printf): New function.
+ 	(dt_simplify::gen_1): Emit printf into the code
+ 	before the `return true` or returning the folded result
+ 	instead of emitting it always.
+ 
+ 2023-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h
+ 	(xtensa_expand_block_set_unrolled_loop,
+ 	xtensa_expand_block_set_small_loop): Remove.
+ 	(xtensa_expand_block_set): New prototype.
+ 	* config/xtensa/xtensa.cc
+ 	(xtensa_expand_block_set_libcall): New subfunction.
+ 	(xtensa_expand_block_set_unrolled_loop,
+ 	xtensa_expand_block_set_small_loop): Rewrite as subfunctions.
+ 	(xtensa_expand_block_set): New function that calls the above
+ 	subfunctions.
+ 	* config/xtensa/xtensa.md (memsetsi): Change to invoke only
+ 	xtensa_expand_block_set().
+ 
+ 2023-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h (xtensa_m1_or_1_thru_15):
+ 	New prototype.
+ 	* config/xtensa/xtensa.cc (xtensa_m1_or_1_thru_15):
+ 	New function.
+ 	* config/xtensa/constraints.md (O):
+ 	Change to use the above function.
+ 	* config/xtensa/xtensa.md (*subsi3_from_const):
+ 	New insn_and_split pattern.
+ 
+ 2023-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3):
+ 	Retract excessive line folding, and correct the value of
+ 	the "length" insn attribute related to TARGET_DENSITY.
+ 	(*extzvsi-1bit_addsubx): Ditto.
+ 
+ 2023-05-26  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi):
+ 	Do not disable call to ix86_expand_vecop_qihi2.
+ 
+ 2023-05-26  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/109610
+ 	PR target/109858
+ 	* ira-costs.cc (scan_one_insn): Only use NO_REGS in cost
+ 	calculation when !hard_regno_mode_ok for GENERAL_REGS and
+ 	mode, otherwise still use GENERAL_REGS.
+ 
+ 2023-05-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (vector_zero_call_used_regs): Add
+ 	explict VL and drop VL in ops.
+ 
+ 2023-05-25  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* sched-deps.cc (sched_macro_fuse_insns): Insns should not be fusion
+ 	in different BB blocks.
+ 
+ 2023-05-25  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
+ 	Rewrite to expand to 2x-wider (e.g. V16QI -> V16HImode)
+ 	instructions when available.  Emulate truncation via
+ 	ix86_expand_vec_perm_const_1 when native truncate insn
+ 	is not available.
+ 	(ix86_expand_vecop_qihi_partial) <case MULT>: Use pmovzx
+ 	when available.  Trivially rename some variables.
+ 	(ix86_expand_vecop_qihi): Unconditionally call ix86_expand_vecop_qihi2.
+ 	* config/i386/i386.cc (ix86_multiplication_cost): Rewrite cost
+ 	calculation of V*QImode emulations to account for generation of
+ 	2x-wider mode instructions.
+ 	(ix86_shift_rotate_cost): Update cost calculation of V*QImode
+ 	emulations to account for generation of 2x-wider mode instructions.
+ 
+ 2023-05-25  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/104327
+ 	* config/avr/avr.cc (avr_can_inline_p): New static function.
+ 	(TARGET_CAN_INLINE_P): Define to that function.
+ 
+ 2023-05-25  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/82931
+ 	* config/avr/avr.md (*movbitqi.0): Rename to *movbit<mode>.0-6.
+ 	Handle any bit position and use mode QISI.
+ 	* config/avr/avr.cc (avr_rtx_costs_1) [IOR]: Return a cost
+ 	of 2 insns for bit-transfer of respective style.
+ 
+ 2023-05-25  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/iterators.md (MVE_6): Remove.
+ 	* config/arm/mve.md: Replace MVE_6 with MVE_5.
+ 
+ 2023-05-25  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_adjust_loop_lens_control): New
+ 	function.
+ 	(vect_set_loop_controls_directly): Add decrement IV support.
+ 	(vect_set_loop_condition_partial_vectors): Ditto.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): New
+ 	variable.
+ 	* tree-vectorizer.h (LOOP_VINFO_USING_DECREMENTING_IV_P): New
+ 	macro.
+ 
+ 2023-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_fcadd<rot><mode>): Rename to...
+ 	(aarch64_fcadd<rot><mode><vczle><vczbe>): ... This.
+ 	Fix canonicalization of PLUS operands.
+ 	(aarch64_fcmla<rot><mode>): Rename to...
+ 	(aarch64_fcmla<rot><mode><vczle><vczbe>): ... This.
+ 	Fix canonicalization of PLUS operands.
+ 	(aarch64_fcmla_lane<rot><mode>): Rename to...
+ 	(aarch64_fcmla_lane<rot><mode><vczle><vczbe>): ... This.
+ 	Fix canonicalization of PLUS operands.
+ 	(aarch64_fcmla_laneq<rot>v4hf): Rename to...
+ 	(aarch64_fcmla_laneq<rot>v4hf<vczle><vczbe>): ... This.
+ 	Fix canonicalization of PLUS operands.
+ 	(aarch64_fcmlaq_lane<rot><mode>): Fix canonicalization of PLUS operands.
+ 
+ 2023-05-25  Chris Sidebottom  <chris.sidebottom@arm.com>
+ 
+ 	* config/arm/arm.md (rbitsi2): Rename to...
+ 	(arm_rbit): ... This.
+ 	(ctzsi2): Adjust for the above.
+ 	(arm_rev16si2): Convert to define_expand.
+ 	(arm_rev16si2_alt1): New pattern.
+ 	(arm_rev16si2_alt): Rename to...
+ 	(*arm_rev16si2_alt2): ... This.
+ 	* config/arm/arm_acle.h (__ror, __rorl, __rorll, __clz, __clzl, __clzll,
+ 	__cls, __clsl, __clsll, __revsh, __rev, __revl, __revll, __rev16,
+ 	__rev16l, __rev16ll, __rbit, __rbitl, __rbitll): Define intrinsics.
+ 	* config/arm/arm_acle_builtins.def (rbit, rev16si2): Define builtins.
+ 
+ 2023-05-25  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/109800
+ 	* config/arm/arm.md (movdf): Generate temporary pseudo in DImode
+ 	instead of DFmode.
+ 	* config/arm/vfp.md (no_literal_pool_df_immediate): Rather than punning an
+ 	lvalue DFmode pseudo into DImode, use a DImode pseudo and pun it into
+ 	DFmode as an rvalue.
+ 
+ 2023-05-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/109955
+ 	* tree-vect-stmts.cc (vectorizable_condition): For
+ 	embedded comparisons also handle the case when the target
+ 	only provides vec_cmp and vcond_mask.
+ 
+ 2023-05-25  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* config/arc/arc.cc (arc_call_tls_get_addr): Simplify access using
+ 	TLS Local Dynamic.
+ 
+ 2023-05-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc (scalar_move_insn_p): New function.
+ 	(seq_cost_ignoring_scalar_moves): Likewise.
+ 	(aarch64_expand_vector_init): Call seq_cost_ignoring_scalar_moves.
+ 
+ 2023-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/arm_neon.h (vcage_f64): Reimplement with builtins.
+ 	(vcage_f32): Likewise.
+ 	(vcages_f32): Likewise.
+ 	(vcageq_f32): Likewise.
+ 	(vcaged_f64): Likewise.
+ 	(vcageq_f64): Likewise.
+ 	(vcagts_f32): Likewise.
+ 	(vcagt_f32): Likewise.
+ 	(vcagt_f64): Likewise.
+ 	(vcagtq_f32): Likewise.
+ 	(vcagtd_f64): Likewise.
+ 	(vcagtq_f64): Likewise.
+ 	(vcale_f32): Likewise.
+ 	(vcale_f64): Likewise.
+ 	(vcaled_f64): Likewise.
+ 	(vcales_f32): Likewise.
+ 	(vcaleq_f32): Likewise.
+ 	(vcaleq_f64): Likewise.
+ 	(vcalt_f32): Likewise.
+ 	(vcalt_f64): Likewise.
+ 	(vcaltd_f64): Likewise.
+ 	(vcaltq_f32): Likewise.
+ 	(vcaltq_f64): Likewise.
+ 	(vcalts_f32): Likewise.
+ 
+ 2023-05-25  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/109173
+ 	PR target/109174
+ 	* config/i386/avx512bwintrin.h (_mm512_srli_epi16): Change type from
+ 	int to const int or const int to const unsigned int.
+ 	(_mm512_mask_srli_epi16): Ditto.
+ 	(_mm512_slli_epi16): Ditto.
+ 	(_mm512_mask_slli_epi16): Ditto.
+ 	(_mm512_maskz_slli_epi16): Ditto.
+ 	(_mm512_srai_epi16): Ditto.
+ 	(_mm512_mask_srai_epi16): Ditto.
+ 	(_mm512_maskz_srai_epi16): Ditto.
+ 	* config/i386/avx512fintrin.h (_mm512_slli_epi64): Ditto.
+ 	(_mm512_mask_slli_epi64): Ditto.
+ 	(_mm512_maskz_slli_epi64): Ditto.
+ 	(_mm512_srli_epi64): Ditto.
+ 	(_mm512_mask_srli_epi64): Ditto.
+ 	(_mm512_maskz_srli_epi64): Ditto.
+ 	(_mm512_srai_epi64): Ditto.
+ 	(_mm512_mask_srai_epi64): Ditto.
+ 	(_mm512_maskz_srai_epi64): Ditto.
+ 	(_mm512_slli_epi32): Ditto.
+ 	(_mm512_mask_slli_epi32): Ditto.
+ 	(_mm512_maskz_slli_epi32): Ditto.
+ 	(_mm512_srli_epi32): Ditto.
+ 	(_mm512_mask_srli_epi32): Ditto.
+ 	(_mm512_maskz_srli_epi32): Ditto.
+ 	(_mm512_srai_epi32): Ditto.
+ 	(_mm512_mask_srai_epi32): Ditto.
+ 	(_mm512_maskz_srai_epi32): Ditto.
+ 	* config/i386/avx512vlbwintrin.h (_mm256_mask_srai_epi16): Ditto.
+ 	(_mm256_maskz_srai_epi16): Ditto.
+ 	(_mm_mask_srai_epi16): Ditto.
+ 	(_mm_maskz_srai_epi16): Ditto.
+ 	(_mm256_mask_slli_epi16): Ditto.
+ 	(_mm256_maskz_slli_epi16): Ditto.
+ 	(_mm_mask_slli_epi16): Ditto.
+ 	(_mm_maskz_slli_epi16): Ditto.
+ 	(_mm_maskz_srli_epi16): Ditto.
+ 	* config/i386/avx512vlintrin.h (_mm256_mask_srli_epi32): Ditto.
+ 	(_mm256_maskz_srli_epi32): Ditto.
+ 	(_mm_mask_srli_epi32): Ditto.
+ 	(_mm_maskz_srli_epi32): Ditto.
+ 	(_mm256_mask_srli_epi64): Ditto.
+ 	(_mm256_maskz_srli_epi64): Ditto.
+ 	(_mm_mask_srli_epi64): Ditto.
+ 	(_mm_maskz_srli_epi64): Ditto.
+ 	(_mm256_mask_srai_epi32): Ditto.
+ 	(_mm256_maskz_srai_epi32): Ditto.
+ 	(_mm_mask_srai_epi32): Ditto.
+ 	(_mm_maskz_srai_epi32): Ditto.
+ 	(_mm256_srai_epi64): Ditto.
+ 	(_mm256_mask_srai_epi64): Ditto.
+ 	(_mm256_maskz_srai_epi64): Ditto.
+ 	(_mm_srai_epi64): Ditto.
+ 	(_mm_mask_srai_epi64): Ditto.
+ 	(_mm_maskz_srai_epi64): Ditto.
+ 	(_mm_mask_slli_epi32): Ditto.
+ 	(_mm_maskz_slli_epi32): Ditto.
+ 	(_mm_mask_slli_epi64): Ditto.
+ 	(_mm_maskz_slli_epi64): Ditto.
+ 	(_mm256_mask_slli_epi32): Ditto.
+ 	(_mm256_maskz_slli_epi32): Ditto.
+ 	(_mm256_mask_slli_epi64): Ditto.
+ 	(_mm256_maskz_slli_epi64): Ditto.
+ 
+ 2023-05-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Remove FRM_REGNUM dependency in rtz
+ 	instructions.
+ 
+ 2023-05-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* data-streamer-in.cc (streamer_read_value_range): Handle NANs.
+ 	* data-streamer-out.cc (streamer_write_vrange): Same.
+ 	* value-range.h (class vrange): Make streamer_write_vrange a friend.
+ 
+ 2023-05-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-query.cc (range_query::get_tree_range): Set NAN directly
+ 	if necessary.
+ 	* value-range.cc (frange::set): Assert that bounds are not NAN.
+ 
+ 2023-05-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (add_vrange): Handle known NANs.
+ 
+ 2023-05-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (frange::set_nan): New.
+ 
+ 2023-05-25  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/100106
+ 	* emit-rtl.cc (validate_subreg): Reject a SUBREG of a MEM that
+ 	requires stricter alignment than MEM's.
+ 
+ 2023-05-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/107822
+ 	PR tree-optimization/107986
+ 	* Makefile.in (OBJS): Add gimple-range-phi.o.
+ 	* gimple-range-cache.h (ranger_cache::m_estimate): New
+ 	phi_analyzer pointer member.
+ 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Use
+ 	phi_analyzer if no loop info is available.
+ 	* gimple-range-phi.cc: New file.
+ 	* gimple-range-phi.h: New file.
+ 	* tree-vrp.cc (execute_ranger_vrp): Utililze a phi_analyzer.
+ 
+ 2023-05-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (fur_list::fur_list): Add range_query param
+ 	to contructors.
+ 	(fold_range): Add range_query parameter.
+ 	(fur_relation::fur_relation): New.
+ 	(fur_relation::trio): New.
+ 	(fur_relation::register_relation): New.
+ 	(fold_relations): New.
+ 	* gimple-range-fold.h (fold_range): Adjust prototypes.
+ 	(fold_relations): New.
+ 
+ 2023-05-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ssa_cache::range_of_expr): New.
+ 	* gimple-range-cache.h (class ssa_cache): Inherit from range_query.
+ 	(ranger_cache::const_query): New.
+ 	* gimple-range.cc (gimple_ranger::const_query): New.
+ 	* gimple-range.h (gimple_ranger::const_query): New prototype.
+ 
+ 2023-05-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ssa_cache::dump): Use get_range.
+ 	(ssa_cache::dump_range_query): Delete.
+ 	(ssa_lazy_cache::dump_range_query): Delete.
+ 	(ssa_lazy_cache::get_range): Move from header file.
+ 	(ssa_lazy_cache::clear_range): ditto.
+ 	(ssa_lazy_cache::clear): Ditto.
+ 	* gimple-range-cache.h (class ssa_cache): Virtualize.
+ 	(class ssa_lazy_cache): Inherit and virtualize.
+ 
+ 2023-05-24  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (vrange::kind): Remove.
+ 
+ 2023-05-24  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR middle-end/109840
+ 	* match.pd <popcount optimizations>: Preserve zero-extension when
+ 	optimizing popcount((T)bswap(x)) and popcount((T)rotate(x,y)) as
+ 	popcount((T)x), so the popcount's argument keeps the same type.
+ 	<parity optimizations>:  Likewise preserve extensions when
+ 	simplifying parity((T)bswap(x)) and parity((T)rotate(x,y)) as
+ 	parity((T)x), so that the parity's argument type is the same.
+ 
+ 2023-05-24  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (ipa_value_range_from_jfunc): Use new ipa_vr API.
+ 	(ipcp_store_vr_results): Same.
+ 	* ipa-prop.cc (ipa_vr::ipa_vr): New.
+ 	(ipa_vr::get_vrange): New.
+ 	(ipa_vr::set_unknown): New.
+ 	(ipa_vr::streamer_read): New.
+ 	(ipa_vr::streamer_write): New.
+ 	(write_ipcp_transformation_info): Use new ipa_vr API.
+ 	(read_ipcp_transformation_info): Same.
+ 	(ipa_vr::nonzero_p): Delete.
+ 	(ipcp_update_vr): Use new ipa_vr API.
+ 	* ipa-prop.h (class ipa_vr): Provide an API and hide internals.
+ 	* ipa-sra.cc (zap_useless_ipcp_results): Use new ipa_vr API.
+ 
+ 2023-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+ 
+ 	* config/mcore/mcore.cc (output_inline_const) Make buffer smaller to
+ 	silence overflow warnings later on.
+ 
+ 2023-05-24  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
+ 	Remove handling of V8QImode.
+ 	* config/i386/mmx.md (v<insn>v8qi3): Move from sse.md.
+ 	Call ix86_expand_vecop_qihi_partial.  Enable for TARGET_MMX_WITH_SSE.
+ 	(v<insn>v4qi3): Ditto.
+ 	* config/i386/sse.md (v<insn>v8qi3): Remove.
+ 
+ 2023-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_simd_lshr<mode>): Rename to...
+ 	(aarch64_simd_lshr<mode><vczle><vczbe>): ... This.
+ 	(aarch64_simd_ashr<mode>): Rename to...
+ 	(aarch64_simd_ashr<mode><vczle><vczbe>): ... This.
+ 	(aarch64_simd_imm_shl<mode>): Rename to...
+ 	(aarch64_simd_imm_shl<mode><vczle><vczbe>): ... This.
+ 	(aarch64_simd_reg_sshl<mode>): Rename to...
+ 	(aarch64_simd_reg_sshl<mode><vczle><vczbe>): ... This.
+ 	(aarch64_simd_reg_shl<mode>_unsigned): Rename to...
+ 	(aarch64_simd_reg_shl<mode>_unsigned<vczle><vczbe>): ... This.
+ 	(aarch64_simd_reg_shl<mode>_signed): Rename to...
+ 	(aarch64_simd_reg_shl<mode>_signed<vczle><vczbe>): ... This.
+ 	(vec_shr_<mode>): Rename to...
+ 	(vec_shr_<mode><vczle><vczbe>): ... This.
+ 	(aarch64_<sur>shl<mode>): Rename to...
+ 	(aarch64_<sur>shl<mode><vczle><vczbe>): ... This.
+ 	(aarch64_<sur>q<r>shl<mode>): Rename to...
+ 	(aarch64_<sur>q<r>shl<mode><vczle><vczbe>): ... This.
+ 
+ 2023-05-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/109944
+ 	* config/i386/i386-expand.cc (ix86_expand_vector_init_general):
+ 	Perform final vector composition using
+ 	ix86_expand_vector_init_general instead of setting
+ 	the highpart and lowpart which causes spilling.
+ 
+ 2023-05-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109695
+ 	* gimple-range-cache.cc (ranger_cache::get_global_range): Add
+ 	changed param.
+ 	* gimple-range-cache.h (ranger_cache::get_global_range): Ditto.
+ 	* gimple-range.cc (gimple_ranger::range_of_stmt): Pass changed
+ 	flag to set_global_range.
+ 	(gimple_ranger::prefill_stmt_dependencies): Ditto.
+ 
+ 2023-05-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109695
+ 	* gimple-range-cache.cc (temporal_cache::temporal_value): Return
+ 	a positive int.
+ 	(temporal_cache::current_p): Check always_current method.
+ 	(temporal_cache::set_always_current): Add param and set value
+ 	appropriately.
+ 	(temporal_cache::always_current_p): New.
+ 	(ranger_cache::get_global_range): Adjust.
+ 	(ranger_cache::set_global_range): set always current first.
+ 
+ 2023-05-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109695
+ 	* gimple-range-cache.cc (ranger_cache::get_global_range): Call
+ 	fold_range with global query to choose an initial value.
+ 
+ 2023-05-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (enum frm_field_enum): Add FRM_
+ 	prefix.
+ 
+ 2023-05-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109849
+ 	* tree-ssa-pre.cc (do_hoist_insertion): Do not intersect
+ 	expressions but take the first sets.
+ 
+ 2023-05-24  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/109952
+ 	* doc/gm2.texi (High procedure function): New node.
+ 	(Using): New menu entry for High procedure function.
+ 
+ 2023-05-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/109940
+ 	* early-remat.cc (postorder_index): Rename to...
+ 	(rpo_index): ...this.
+ 	(compare_candidates): Sort by decreasing rpo_index rather than
+ 	increasing postorder_index.
+ 	(early_remat::sort_candidates): Calculate the forward RPO from
+ 	DF_FORWARD.
+ 	(early_remat::local_phase): Follow forward RPO using DF_FORWARD,
+ 	rather than DF_BACKWARD in reverse.
+ 
+ 2023-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/109939
+ 	* config/arm/arm-builtins.cc (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS): Use
+ 	qualifier_none for the return operand.
+ 
+ 2023-05-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (<optab><mode>3): New pattern.
+ 	(one_cmpl<mode>2): Ditto.
+ 	(*<optab>not<mode>): Ditto.
+ 	(*n<optab><mode>): Ditto.
+ 	* config/riscv/riscv-v.cc (expand_vec_cmp_float): Change to
+ 	one_cmpl.
+ 
+ 2023-05-24  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-slp.cc (vect_transform_slp_perm_load_1): Adjust the
+ 	calculation on n_perms by considering nvectors_per_build.
+ 
+ 2023-05-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/riscv/autovec.md (@vcond_mask_<mode><vm>): New pattern.
+ 	(vec_cmp<mode><vm>): New pattern.
+ 	(vec_cmpu<mode><vm>): New pattern.
+ 	(vcond<V:mode><VI:mode>): New pattern.
+ 	(vcondu<V:mode><VI:mode>): New pattern.
+ 	* config/riscv/riscv-protos.h (enum insn_type): Add new enum.
+ 	(emit_vlmax_merge_insn): New function.
+ 	(emit_vlmax_cmp_insn): Ditto.
+ 	(emit_vlmax_cmp_mu_insn): Ditto.
+ 	(expand_vec_cmp): Ditto.
+ 	(expand_vec_cmp_float): Ditto.
+ 	(expand_vcond): Ditto.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_merge_insn): Ditto.
+ 	(emit_vlmax_cmp_insn): Ditto.
+ 	(emit_vlmax_cmp_mu_insn): Ditto.
+ 	(get_cmp_insn_code): Ditto.
+ 	(expand_vec_cmp): Ditto.
+ 	(expand_vec_cmp_float): Ditto.
+ 	(expand_vcond): Ditto.
+ 
+ 2023-05-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (main): Add
+ 	unsigned_eew*_lmul1_interpret for indexer.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
+ 	Register vuint*m1_t interpret function.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
+ 	New macro for vuint8m1_t.
+ 	(DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
+ 	(vbool1_t): Add to unsigned_eew*_interpret_ops.
+ 	(vbool2_t): Likewise.
+ 	(vbool4_t): Likewise.
+ 	(vbool8_t): Likewise.
+ 	(vbool16_t): Likewise.
+ 	(vbool32_t): Likewise.
+ 	(vbool64_t): Likewise.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
+ 	New macro for vuint*m1_t.
+ 	(DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
+ 	(required_extensions_p): Add vuint*m1_t interpret case.
+ 	* config/riscv/riscv-vector-builtins.def (unsigned_eew8_lmul1_interpret):
+ 	Add vuint*m1_t interpret to base type.
+ 	(unsigned_eew16_lmul1_interpret): Likewise.
+ 	(unsigned_eew32_lmul1_interpret): Likewise.
+ 	(unsigned_eew64_lmul1_interpret): Likewise.
+ 
+ 2023-05-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (EEW_SIZE_LIST): New macro
+ 	for the eew size list.
+ 	(LMUL1_LOG2): New macro for the log2 value of lmul=1.
+ 	(main): Add signed_eew*_lmul1_interpret for indexer.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
+ 	Register vint*m1_t interpret function.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
+ 	New macro for vint8m1_t.
+ 	(DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
+ 	(vbool1_t): Add to signed_eew*_interpret_ops.
+ 	(vbool2_t): Likewise.
+ 	(vbool4_t): Likewise.
+ 	(vbool8_t): Likewise.
+ 	(vbool16_t): Likewise.
+ 	(vbool32_t): Likewise.
+ 	(vbool64_t): Likewise.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
+ 	New macro for vint*m1_t.
+ 	(DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
+ 	(required_extensions_p): Add vint8m1_t interpret case.
+ 	* config/riscv/riscv-vector-builtins.def (signed_eew8_lmul1_interpret):
+ 	Add vint*m1_t interpret to base type.
+ 	(signed_eew16_lmul1_interpret): Likewise.
+ 	(signed_eew32_lmul1_interpret): Likewise.
+ 	(signed_eew64_lmul1_interpret): Likewise.
+ 
+ 2023-05-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Adjust for new interface.
+ 	* config/riscv/riscv-protos.h (emit_vlmax_insn): Add VL operand.
+ 	(emit_nonvlmax_insn): Add AVL operand.
+ 	* config/riscv/riscv-v.cc (emit_vlmax_insn): Add VL operand.
+ 	(emit_nonvlmax_insn): Add AVL operand.
+ 	(sew64_scalar_helper): Adjust for new interface.
+ 	(expand_tuple_move): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-05-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vec_series): Remove magic number.
+ 	(expand_const_vector): Ditto.
+ 	(legitimize_move): Ditto.
+ 	(sew64_scalar_helper): Ditto.
+ 	(expand_tuple_move): Ditto.
+ 	(expand_vector_init_insert_elems): Ditto.
+ 	* config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
+ 
+ 2023-05-24  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/109900
+ 	* config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
+ 	_mm{,256,512}_abs_{epi8,epi16,epi32,epi64} and
+ 	_mm_abs_{pi8,pi16,pi32} into gimple ABS_EXPR.
+ 	(ix86_masked_all_ones): Handle 64-bit mask.
+ 	* config/i386/i386-builtin.def: Replace icode of related
+ 	non-mask simd abs builtins with CODE_FOR_nothing.
+ 
+ 2023-05-23  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/109450
+ 	* function.cc (gimplify_parm_type): Remove function.
+ 	(gimplify_parameters): Call gimplify_type_sizes.
+ 
+ 2023-05-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*addsubx): Rename from '*addx',
+ 	and change to also accept '*subx' pattern.
+ 	(*subx): Remove.
+ 
+ 2023-05-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/predicates.md (addsub_operator): New.
+ 	* config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3,
+ 	*extzvsi-1bit_addsubx): New insn_and_split patterns.
+ 	* config/xtensa/xtensa.cc (xtensa_rtx_costs):
+ 	Add a special case about ifcvt 'noce_try_cmove()' to handle
+ 	constant loads that do not fit into signed 12 bits in the
+ 	patterns added above.
+ 
+ 2023-05-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109747
+ 	* tree-vect-slp.cc (vect_prologue_cost_for_slp): Pass down
+ 	the SLP node only once to the cost hook.
+ 
+ 2023-05-23  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_insn_cost): New static function.
+ 	(TARGET_INSN_COST): Define to that function.
+ 
+ 2023-05-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/109944
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	For vector construction or splats apply GPR->XMM move
+ 	costing.  QImode memory can be handled directly only
+ 	with SSE4.1 pinsrb.
+ 
+ 2023-05-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108752
+ 	* tree-vect-stmts.cc (vectorizable_operation): For bit
+ 	operations with generic word_mode vectors do not cost
+ 	an extra stmt.  For plus, minus and negate also cost the
+ 	constant materialization.
+ 
+ 2023-05-23  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
+ 	Call ix86_expand_vec_shift_qihi_constant for shifts
+ 	with constant count operand.
+ 	* config/i386/i386.cc (ix86_shift_rotate_cost):
+ 	Handle V4QImode and V8QImode.
+ 	* config/i386/mmx.md (<insn>v8qi3): New insn pattern.
+ 	(<insn>v4qi3): Ditto.
+ 
+ 2023-05-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Add mode.
+ 
+ 2023-05-23  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/109934
+ 	* value-range.cc (irange::invert): Remove buggy special case.
+ 
+ 2023-05-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-pre.cc (compute_antic_aux): Dump the correct
+ 	ANTIC_OUT.
+ 
+ 2023-05-23  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/109632
+ 	* config/aarch64/aarch64.cc (aarch64_modes_tieable_p): Allow
+ 	subregs between any scalars that are 64 bits or smaller.
+ 	* config/aarch64/iterators.md (SUBDI_BITS): New int iterator.
+ 	(bits_etype): New int attribute.
+ 	* config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
+ 	(*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>): New patterns.
+ 	(*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Likewise.
+ 
+ 2023-05-23  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/md.texi: Document that <FOO> can be used to refer to the
+ 	numerical value of an int iterator FOO.  Tweak other parts of
+ 	the int iterator documentation.
+ 	* read-rtl.cc (iterator_group::has_self_attr): New field.
+ 	(map_attr_string): When has_self_attr is true, make <FOO>
+ 	expand to the current value of iterator FOO.
+ 	(initialize_iterators): Set has_self_attr for int iterators.
+ 
+ 2023-05-23  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md: Refactor the framework of RVV auto-vectorization.
+ 	* config/riscv/riscv-protos.h (RVV_MISC_OP_NUM): Ditto.
+ 	(RVV_UNOP_NUM): New macro.
+ 	(RVV_BINOP_NUM): Ditto.
+ 	(legitimize_move): Refactor the framework of RVV auto-vectorization.
+ 	(emit_vlmax_op): Ditto.
+ 	(emit_vlmax_reg_op): Ditto.
+ 	(emit_len_op): Ditto.
+ 	(emit_len_binop): Ditto.
+ 	(emit_vlmax_tany_many): Ditto.
+ 	(emit_nonvlmax_tany_many): Ditto.
+ 	(sew64_scalar_helper): Ditto.
+ 	(expand_tuple_move): Ditto.
+ 	* config/riscv/riscv-v.cc (emit_pred_op): Ditto.
+ 	(emit_pred_binop): Ditto.
+ 	(emit_vlmax_op): Ditto.
+ 	(emit_vlmax_tany_many): New function.
+ 	(emit_len_op): Remove.
+ 	(emit_nonvlmax_tany_many): New function.
+ 	(emit_vlmax_reg_op): Remove.
+ 	(emit_len_binop): Ditto.
+ 	(emit_index_op): Ditto.
+ 	(expand_vec_series): Refactor the framework of RVV auto-vectorization.
+ 	(expand_const_vector): Ditto.
+ 	(legitimize_move): Ditto.
+ 	(sew64_scalar_helper): Ditto.
+ 	(expand_tuple_move): Ditto.
+ 	(expand_vector_init_insert_elems): Ditto.
+ 	* config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-05-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/109855
+ 	* config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Add predicate
+ 	and constraint for operand 0.
+ 	(add_vec_concat_subst_be): Likewise.
+ 
+ 2023-05-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109849
+ 	* tree-ssa-pre.cc (do_hoist_insertion): Compute ANTIC_OUT
+ 	and use that to determine what to hoist.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* fold-const.cc (native_encode_initializer) <CONSTRUCTOR>: Apply the
+ 	specific treatment for bit-fields only if they have an integral type
+ 	and filter out non-integral bit-fields that do not start and end on
+ 	a byte boundary.
+ 
+ 2023-05-23  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/109920
+ 	* value-range.h (RESIZABLE>::~int_range): Use delete[].
+ 
+ 2023-05-22  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_shift_rotate_cost): Correct
+ 	calcuation of integer vector mode costs to reflect generated
+ 	instruction sequences of different integer vector modes and
+ 	different target ABIs.  Remove "speed" function argument.
+ 	(ix86_rtx_costs): Update call for removed function argument.
+ 	(ix86_vector_costs::add_stmt_cost): Ditto.
+ 
+ 2023-05-22  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (class Value_Range): Implement set_zero,
+ 	set_nonzero, and nonzero_p.
+ 
+ 2023-05-22  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_multiplication_cost): Add
+ 	the cost of a memory read to the cost of V?QImode sequences.
+ 
+ 2023-05-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-v.cc: Add "m_" prefix.
+ 
+ 2023-05-22  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* tree-vect-loop.cc (vect_get_loop_len): Fix issue for
+ 	multiple-rgroup of length.
+ 	* tree-vect-stmts.cc (vectorizable_store): Ditto.
+ 	(vectorizable_load): Ditto.
+ 	* tree-vectorizer.h (vect_get_loop_len): Ditto.
+ 
+ 2023-05-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_const_insns): Reorganize the
+ 	codes.
+ 
+ 2023-05-22  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-slp.cc (vect_transform_slp_perm_load_1): Refactor the
+ 	handling for the case index == count.
+ 
+ 2023-05-21  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/90622
+ 	* config/avr/avr.cc (avr_fold_builtin) [AVR_BUILTIN_INSERT_BITS]:
+ 	Don't fold to XOR / AND / XOR if just one bit is copied to the
+ 	same position.
+ 
+ 2023-05-21  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/nvptx/nvptx.cc (nvptx_expand_brev): Expand target
+ 	builtin for bit reversal using brev instruction.
+ 	(enum nvptx_builtins): Add NVPTX_BUILTIN_BREV and
+ 	NVPTX_BUILTIN_BREVLL.
+ 	(nvptx_init_builtins): Define "brev" and "brevll".
+ 	(nvptx_expand_builtin): Expand NVPTX_BUILTIN_BREV and
+ 	NVPTX_BUILTIN_BREVLL via nvptx_expand_brev function.
+ 	* doc/extend.texi (Nvidia PTX Builtin-in Functions): New
+ 	section, document __builtin_nvptx_brev{,ll}.
+ 
+ 2023-05-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109505
+ 	* match.pd ((x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2),
+ 	Combine successive equal operations with constants,
+ 	(A +- CST1) +- CST2 -> A + CST3, (CST1 - A) +- CST2 -> CST3 - A,
+ 	CST1 - (CST2 - A) -> CST3 + A): Use ! on ops with 2 CONSTANT_CLASS_P
+ 	operands.
+ 
+ 2023-05-21  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (expand_single_bit_test): Correct bitpos for big-endian.
+ 
+ 2023-05-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): Add the
+ 	rest bool size, aka 2, 4, 8, 16, 32, 64.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
+ 	Register vbool[2|4|8|16|32|64] interpret function.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_BOOL2_INTERPRET_OPS):
+ 	New macro for vbool2_t.
+ 	(DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
+ 	(vint8m1_t): Add the type to bool[2|4|8|16|32|64]_interpret_ops.
+ 	(vint16m1_t): Likewise.
+ 	(vint32m1_t): Likewise.
+ 	(vint64m1_t): Likewise.
+ 	(vuint8m1_t): Likewise.
+ 	(vuint16m1_t): Likewise.
+ 	(vuint32m1_t): Likewise.
+ 	(vuint64m1_t): Likewise.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_BOOL2_INTERPRET_OPS):
+ 	New macro for vbool2_t.
+ 	(DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
+ 	(DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
+ 	(required_extensions_p): Add vbool[2|4|8|16|32|64] interpret case.
+ 	* config/riscv/riscv-vector-builtins.def (bool2_interpret): Add
+ 	vbool2_t interprect to base type.
+ 	(bool4_interpret): Likewise.
+ 	(bool8_interpret): Likewise.
+ 	(bool16_interpret): Likewise.
+ 	(bool32_interpret): Likewise.
+ 	(bool64_interpret): Likewise.
+ 
+ 2023-05-21  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR middle-end/109919
+ 	* expr.cc (expand_single_bit_test): Don't use the
+ 	target for expand_expr.
+ 
+ 2023-05-20  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Specific): Remove de facto empty alpha*-*-*
+ 	section.
+ 
+ 2023-05-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	* mode-switching.cc (entity_map): Initialize the array to zero.
+ 	(bb_info): Ditto.
+ 
+ 2023-05-20  Triffid Hunter  <triffid.hunter@gmail.com>
+ 
+ 	PR target/105753
+ 	* config/avr/avr.md (divmodpsi, udivmodpsi, divmodsi, udivmodsi):
+ 	Remove superfluous "parallel" in insn pattern.
+ 	([u]divmod<mode>4): Tidy code.  Use gcc_unreachable() instead of
+ 	printing error text to assembly.
+ 
+ 2023-05-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (fold_single_bit_test): Rename to ...
+ 	(expand_single_bit_test): This and expand directly.
+ 	(do_store_flag): Update for the rename function.
+ 
+ 2023-05-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (fold_single_bit_test): Use BIT_FIELD_REF
+ 	instead of shift/and.
+ 
+ 2023-05-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (fold_single_bit_test): Add an assert
+ 	and simplify based on code being NE_EXPR or EQ_EXPR.
+ 
+ 2023-05-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (fold_single_bit_test): Take inner and bitnum
+ 	instead of arg0 and arg1. Update the code.
+ 	(do_store_flag): Don't create a tree when calling
+ 	fold_single_bit_test instead just call it with the bitnum
+ 	and the inner tree.
+ 
+ 2023-05-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (fold_single_bit_test): Use get_def_for_expr
+ 	instead of checking the inner's code.
+ 
+ 2023-05-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* expr.cc (fold_single_bit_test_into_sign_test): Inline into ...
+ 	(fold_single_bit_test): This and simplify.
+ 
+ 2023-05-20  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* fold-const.cc (fold_single_bit_test_into_sign_test): Move to
+ 	expr.cc.
+ 	(fold_single_bit_test): Likewise.
+ 	* expr.cc (fold_single_bit_test_into_sign_test): Move from fold-const.cc
+ 	(fold_single_bit_test): Likewise and make static.
+ 	* fold-const.h (fold_single_bit_test): Remove declaration.
+ 
+ 2023-05-20  Die Li  <lidie@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Fix mode
+ 	checking.
+ 
+ 2023-05-20  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (branch<X:mode>_bext): New split pattern.
+ 
+ 2023-05-20  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	PR target/106888
+ 	* config/riscv/bitmanip.md
+ 	(<bitmanip_optab>disi2): Match with any_extend.
+ 	(<bitmanip_optab>disi2_sext): New pattern to match
+ 	with sign extend using an ANDI instruction.
+ 
+ 2023-05-19  Nathan Sidwell  <nathan@acm.org>
+ 
+ 	PR other/99451
+ 	* opts.h (handle_deferred_dump_options): Declare.
+ 	* opts-global.cc (handle_common_deferred_options): Do not handle
+ 	dump options here.
+ 	(handle_deferred_dump_options): New.
+ 	* toplev.cc (toplev::main): Call it after plugin init.
+ 
+ 2023-05-19  Joern Rennecke  <joern.rennecke@embecosm.com>
+ 
+ 	* config/riscv/constraints.md (DsS, DsD): Restore agreement
+ 	with shiftm1 mode attribute.
+ 
+ 2023-05-19  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR driver/33980
+ 	* gcc.cc (default_compilers["@c-header"]): Add %w
+ 	after the --output-pch.
+ 
+ 2023-05-19  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_split_integer): if loval is equal
+ 	to hival, ASHIFT the corresponding regs.
+ 
+ 2023-05-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_const_insns): Remove else.
+ 
+ 2023-05-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/105776
+ 	* tree-ssa-math-opts.cc (arith_overflow_check_p): If cast_stmt is
+ 	non-NULL, allow division statement to have a cast as single imm use
+ 	rather than comparison/condition.
+ 	(match_arith_overflow): In that case remove the cast stmt in addition
+ 	to the division statement.
+ 
+ 2023-05-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/101856
+ 	* tree-ssa-math-opts.cc (match_arith_overflow): Pattern detect
+ 	unsigned __builtin_mul_overflow_p even when umulv4_optab doesn't
+ 	support it but umul_highpart_optab does.
+ 
+ 2023-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* varasm.cc (output_constructor_bitfield): Call tree_to_uhwi instead
+ 	of tree_to_shwi on array indices.  Minor tweaks.
+ 
+ 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+ 
+ 	* alias.cc (ref_all_alias_ptr_type_p): Use _P() defines from tree.h.
+ 	* attribs.cc (diag_attr_exclusions): Ditto.
+ 	(decl_attributes): Ditto.
+ 	(build_type_attribute_qual_variant): Ditto.
+ 	* builtins.cc (fold_builtin_carg): Ditto.
+ 	(fold_builtin_next_arg): Ditto.
+ 	(do_mpc_arg2): Ditto.
+ 	* cfgexpand.cc (expand_return): Ditto.
+ 	* cgraph.h (decl_in_symtab_p): Ditto.
+ 	(symtab_node::get_create): Ditto.
+ 	* dwarf2out.cc (base_type_die): Ditto.
+ 	(implicit_ptr_descriptor): Ditto.
+ 	(gen_array_type_die): Ditto.
+ 	(gen_type_die_with_usage): Ditto.
+ 	(optimize_location_into_implicit_ptr): Ditto.
+ 	* expr.cc (do_store_flag): Ditto.
+ 	* fold-const.cc (negate_expr_p): Ditto.
+ 	(fold_negate_expr_1): Ditto.
+ 	(fold_convert_const): Ditto.
+ 	(fold_convert_loc): Ditto.
+ 	(constant_boolean_node): Ditto.
+ 	(fold_binary_op_with_conditional_arg): Ditto.
+ 	(build_fold_addr_expr_with_type_loc): Ditto.
+ 	(fold_comparison): Ditto.
+ 	(fold_checksum_tree): Ditto.
+ 	(tree_unary_nonnegative_warnv_p): Ditto.
+ 	(integer_valued_real_unary_p): Ditto.
+ 	(fold_read_from_constant_string): Ditto.
+ 	* gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text): Ditto.
+ 	* gimple-expr.cc (useless_type_conversion_p): Ditto.
+ 	(is_gimple_reg): Ditto.
+ 	(is_gimple_asm_val): Ditto.
+ 	(mark_addressable): Ditto.
+ 	* gimple-expr.h (is_gimple_variable): Ditto.
+ 	(virtual_operand_p): Ditto.
+ 	* gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores): Ditto.
+ 	* gimplify.cc (gimplify_bind_expr): Ditto.
+ 	(gimplify_return_expr): Ditto.
+ 	(gimple_add_padding_init_for_auto_var): Ditto.
+ 	(gimplify_addr_expr): Ditto.
+ 	(omp_add_variable): Ditto.
+ 	(omp_notice_variable): Ditto.
+ 	(omp_get_base_pointer): Ditto.
+ 	(omp_strip_components_and_deref): Ditto.
+ 	(omp_strip_indirections): Ditto.
+ 	(omp_accumulate_sibling_list): Ditto.
+ 	(omp_build_struct_sibling_lists): Ditto.
+ 	(gimplify_adjust_omp_clauses_1): Ditto.
+ 	(gimplify_adjust_omp_clauses): Ditto.
+ 	(gimplify_omp_for): Ditto.
+ 	(goa_lhs_expr_p): Ditto.
+ 	(gimplify_one_sizepos): Ditto.
+ 	* graphite-scop-detection.cc (scop_detection::graphite_can_represent_scev): Ditto.
+ 	* ipa-devirt.cc (odr_types_equivalent_p): Ditto.
+ 	* ipa-prop.cc (ipa_set_jf_constant): Ditto.
+ 	(propagate_controlled_uses): Ditto.
+ 	* ipa-sra.cc (type_prevails_p): Ditto.
+ 	(scan_expr_access): Ditto.
+ 	* optabs-tree.cc (optab_for_tree_code): Ditto.
+ 	* toplev.cc (wrapup_global_declaration_1): Ditto.
+ 	* trans-mem.cc (transaction_invariant_address_p): Ditto.
+ 	* tree-cfg.cc (verify_types_in_gimple_reference): Ditto.
+ 	(verify_gimple_comparison): Ditto.
+ 	(verify_gimple_assign_binary): Ditto.
+ 	(verify_gimple_assign_single): Ditto.
+ 	* tree-complex.cc (get_component_ssa_name): Ditto.
+ 	* tree-emutls.cc (lower_emutls_2): Ditto.
+ 	* tree-inline.cc (copy_tree_body_r): Ditto.
+ 	(estimate_move_cost): Ditto.
+ 	(copy_decl_for_dup_finish): Ditto.
+ 	* tree-nested.cc (convert_nonlocal_omp_clauses): Ditto.
+ 	(note_nonlocal_vla_type): Ditto.
+ 	(convert_local_omp_clauses): Ditto.
+ 	(remap_vla_decls): Ditto.
+ 	(fixup_vla_decls): Ditto.
+ 	* tree-parloops.cc (loop_has_vector_phi_nodes): Ditto.
+ 	* tree-pretty-print.cc (print_declaration): Ditto.
+ 	(print_call_name): Ditto.
+ 	* tree-sra.cc (compare_access_positions): Ditto.
+ 	* tree-ssa-alias.cc (compare_type_sizes): Ditto.
+ 	* tree-ssa-ccp.cc (get_default_value): Ditto.
+ 	* tree-ssa-coalesce.cc (populate_coalesce_list_for_outofssa): Ditto.
+ 	* tree-ssa-dom.cc (reduce_vector_comparison_to_scalar_comparison): Ditto.
+ 	* tree-ssa-forwprop.cc (can_propagate_from): Ditto.
+ 	* tree-ssa-propagate.cc (may_propagate_copy): Ditto.
+ 	* tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Ditto.
+ 	* tree-ssa-sink.cc (statement_sink_location): Ditto.
+ 	* tree-ssa-structalias.cc (type_must_have_pointers): Ditto.
+ 	* tree-ssa-ter.cc (find_replaceable_in_bb): Ditto.
+ 	* tree-ssa-uninit.cc (warn_uninit): Ditto.
+ 	* tree-ssa.cc (maybe_rewrite_mem_ref_base): Ditto.
+ 	(non_rewritable_mem_ref_base): Ditto.
+ 	* tree-streamer-in.cc (lto_input_ts_type_non_common_tree_pointers): Ditto.
+ 	* tree-streamer-out.cc (write_ts_type_non_common_tree_pointers): Ditto.
+ 	* tree-vect-generic.cc (do_binop): Ditto.
+ 	(do_cond): Ditto.
+ 	* tree-vect-stmts.cc (vect_init_vector): Ditto.
+ 	* tree-vector-builder.h (tree_vector_builder::note_representative): Ditto.
+ 	* tree.cc (sign_mask_for): Ditto.
+ 	(verify_type_variant): Ditto.
+ 	(gimple_canonical_types_compatible_p): Ditto.
+ 	(verify_type): Ditto.
+ 	* ubsan.cc (get_ubsan_type_info_for_type): Ditto.
+ 	* var-tracking.cc (prepare_call_arguments): Ditto.
+ 	(vt_add_function_parameters): Ditto.
+ 	* varasm.cc (decode_addr_const): Ditto.
+ 
+ 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+ 
+ 	* omp-low.cc (scan_sharing_clauses): Use _P() defines from tree.h.
+ 	(lower_reduction_clauses): Ditto.
+ 	(lower_send_clauses): Ditto.
+ 	(lower_omp_task_reductions): Ditto.
+ 	* omp-oacc-neuter-broadcast.cc (install_var_field): Ditto.
+ 	(worker_single_copy): Ditto.
+ 	* omp-offload.cc (oacc_rewrite_var_decl): Ditto.
+ 	* omp-simd-clone.cc (plausible_type_for_simd_clone): Ditto.
+ 
+ 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+ 
+ 	* lto-streamer-in.cc (lto_input_var_decl_ref): Use _P defines from
+ 	tree.h.
+ 	(lto_read_body_or_constructor): Ditto.
+ 	* lto-streamer-out.cc (tree_is_indexable): Ditto.
+ 	(lto_output_var_decl_ref): Ditto.
+ 	(DFS::DFS_write_tree_body): Ditto.
+ 	(wrap_refs): Ditto.
+ 	(write_symbol_extension_info): Ditto.
+ 
+ 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_short_vector_p): Use _P
+ 	defines from tree.h.
+ 	(aarch64_mangle_type): Ditto.
+ 	* config/alpha/alpha.cc (alpha_in_small_data_p): Ditto.
+ 	(alpha_gimplify_va_arg_1): Ditto.
+ 	* config/arc/arc.cc (arc_encode_section_info): Ditto.
+ 	(arc_is_aux_reg_p): Ditto.
+ 	(arc_is_uncached_mem_p): Ditto.
+ 	(arc_handle_aux_attribute): Ditto.
+ 	* config/arm/arm.cc (arm_handle_isr_attribute): Ditto.
+ 	(arm_handle_cmse_nonsecure_call): Ditto.
+ 	(arm_set_default_type_attributes): Ditto.
+ 	(arm_is_segment_info_known): Ditto.
+ 	(arm_mangle_type): Ditto.
+ 	* config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Ditto.
+ 	* config/avr/avr.cc (avr_lookup_function_attribute1): Ditto.
+ 	(avr_decl_absdata_p): Ditto.
+ 	(avr_insert_attributes): Ditto.
+ 	(avr_section_type_flags): Ditto.
+ 	(avr_encode_section_info): Ditto.
+ 	* config/bfin/bfin.cc (bfin_handle_l2_attribute): Ditto.
+ 	* config/bpf/bpf.cc (bpf_core_compute): Ditto.
+ 	* config/c6x/c6x.cc (c6x_in_small_data_p): Ditto.
+ 	* config/csky/csky.cc (csky_handle_isr_attribute): Ditto.
+ 	(csky_mangle_type): Ditto.
+ 	* config/darwin-c.cc (darwin_pragma_unused): Ditto.
+ 	* config/darwin.cc (is_objc_metadata): Ditto.
+ 	* config/epiphany/epiphany.cc (epiphany_function_ok_for_sibcall): Ditto.
+ 	* config/epiphany/epiphany.h (ROUND_TYPE_ALIGN): Ditto.
+ 	* config/frv/frv.cc (frv_emit_movsi): Ditto.
+ 	* config/gcn/gcn-tree.cc (gcn_lockless_update): Ditto.
+ 	* config/gcn/gcn.cc (gcn_asm_output_symbol_ref): Ditto.
+ 	* config/h8300/h8300.cc (h8300_encode_section_info): Ditto.
+ 	* config/i386/i386-expand.cc: Ditto.
+ 	* config/i386/i386.cc (type_natural_mode): Ditto.
+ 	(ix86_function_arg): Ditto.
+ 	(ix86_data_alignment): Ditto.
+ 	(ix86_local_alignment): Ditto.
+ 	(ix86_simd_clone_compute_vecsize_and_simdlen): Ditto.
+ 	* config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Ditto.
+ 	(i386_pe_type_dllexport_p): Ditto.
+ 	(i386_pe_adjust_class_at_definition): Ditto.
+ 	* config/i386/winnt.cc (i386_pe_determine_dllimport_p): Ditto.
+ 	(i386_pe_binds_local_p): Ditto.
+ 	(i386_pe_section_type_flags): Ditto.
+ 	* config/ia64/ia64.cc (ia64_encode_section_info): Ditto.
+ 	(ia64_gimplify_va_arg): Ditto.
+ 	(ia64_in_small_data_p): Ditto.
+ 	* config/iq2000/iq2000.cc (iq2000_function_arg): Ditto.
+ 	* config/lm32/lm32.cc (lm32_in_small_data_p): Ditto.
+ 	* config/loongarch/loongarch.cc (loongarch_handle_model_attribute): Ditto.
+ 	* config/m32c/m32c.cc (m32c_insert_attributes): Ditto.
+ 	* config/mcore/mcore.cc (mcore_mark_dllimport): Ditto.
+ 	(mcore_encode_section_info): Ditto.
+ 	* config/microblaze/microblaze.cc (microblaze_elf_in_small_data_p): Ditto.
+ 	* config/mips/mips.cc (mips_output_aligned_decl_common): Ditto.
+ 	* config/mmix/mmix.cc (mmix_encode_section_info): Ditto.
+ 	* config/nvptx/nvptx.cc (nvptx_encode_section_info): Ditto.
+ 	(pass_in_memory): Ditto.
+ 	(nvptx_generate_vector_shuffle): Ditto.
+ 	(nvptx_lockless_update): Ditto.
+ 	* config/pa/pa.cc (pa_function_arg_padding): Ditto.
+ 	(pa_function_value): Ditto.
+ 	(pa_function_arg): Ditto.
+ 	* config/pa/pa.h (IN_NAMED_SECTION_P): Ditto.
+ 	(TEXT_SPACE_P): Ditto.
+ 	* config/pa/som.h (MAKE_DECL_ONE_ONLY): Ditto.
+ 	* config/pdp11/pdp11.cc (pdp11_return_in_memory): Ditto.
+ 	* config/riscv/riscv.cc (riscv_in_small_data_p): Ditto.
+ 	(riscv_mangle_type): Ditto.
+ 	* config/rl78/rl78.cc (rl78_insert_attributes): Ditto.
+ 	(rl78_addsi3_internal): Ditto.
+ 	* config/rs6000/aix.h (ROUND_TYPE_ALIGN): Ditto.
+ 	* config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Ditto.
+ 	* config/rs6000/freebsd64.h (ROUND_TYPE_ALIGN): Ditto.
+ 	* config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Ditto.
+ 	* config/rs6000/rs6000-call.cc (rs6000_function_arg_boundary): Ditto.
+ 	(rs6000_function_arg_advance_1): Ditto.
+ 	(rs6000_function_arg): Ditto.
+ 	(rs6000_pass_by_reference): Ditto.
+ 	* config/rs6000/rs6000-logue.cc (rs6000_function_ok_for_sibcall): Ditto.
+ 	* config/rs6000/rs6000.cc (rs6000_data_alignment): Ditto.
+ 	(rs6000_set_default_type_attributes): Ditto.
+ 	(rs6000_elf_in_small_data_p): Ditto.
+ 	(IN_NAMED_SECTION): Ditto.
+ 	(rs6000_xcoff_encode_section_info): Ditto.
+ 	(rs6000_function_value): Ditto.
+ 	(invalid_arg_for_unprototyped_fn): Ditto.
+ 	* config/s390/s390-c.cc (s390_fn_types_compatible): Ditto.
+ 	(s390_vec_n_elem): Ditto.
+ 	* config/s390/s390.cc (s390_check_type_for_vector_abi): Ditto.
+ 	(s390_function_arg_integer): Ditto.
+ 	(s390_return_in_memory): Ditto.
+ 	(s390_encode_section_info): Ditto.
+ 	* config/sh/sh.cc (sh_gimplify_va_arg_expr): Ditto.
+ 	(sh_function_value): Ditto.
+ 	* config/sol2.cc (solaris_insert_attributes): Ditto.
+ 	* config/sparc/sparc.cc (function_arg_slotno): Ditto.
+ 	* config/sparc/sparc.h (ROUND_TYPE_ALIGN): Ditto.
+ 	* config/stormy16/stormy16.cc (xstormy16_encode_section_info): Ditto.
+ 	(xstormy16_handle_below100_attribute): Ditto.
+ 	* config/v850/v850.cc (v850_encode_section_info): Ditto.
+ 	(v850_insert_attributes): Ditto.
+ 	* config/visium/visium.cc (visium_pass_by_reference): Ditto.
+ 	(visium_return_in_memory): Ditto.
+ 	* config/xtensa/xtensa.cc (xtensa_multibss_section_type_flags): Ditto.
+ 
+ 2023-05-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): New.
+ 	(ix86_expand_vecop_qihi): Add op2vec bool variable.
+ 	Do not set REG_EQUAL note.
+ 	* config/i386/i386-protos.h (ix86_expand_vecop_qihi_partial):
+ 	Add prototype.
+ 	* config/i386/i386.cc (ix86_multiplication_cost): Handle
+ 	V4QImode and V8QImode.
+ 	* config/i386/mmx.md (mulv8qi3): New expander.
+ 	(mulv4qi3): Ditto.
+ 	* config/i386/sse.md (mulv8qi3): Remove.
+ 
+ 2023-05-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/gen-avr-mmcu-specs.cc: Remove stale */ after // comment.
+ 
+ 2023-05-18  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR bootstrap/105831
+ 	* config.gcc: Use = operator instead of ==.
+ 
+ 2023-05-18  Michael Bäuerle  <micha@NetBSD.org>
+ 
+ 	PR bootstrap/105831
+ 	* config/nvptx/gen-opt.sh: Use = operator instead of ==.
+ 	* configure.ac: Likewise.
+ 	* configure: Regenerate.
+ 
+ 2023-05-18  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	* config/arm/arm_mve.h: (__ARM_mve_typeid): Add more pointer types.
+ 	(__ARM_mve_coerce1): Remove.
+ 	(__ARM_mve_coerce2): Remove.
+ 	(__ARM_mve_coerce3): Remove.
+ 	(__ARM_mve_coerce_i_scalar): New.
+ 	(__ARM_mve_coerce_s8_ptr): New.
+ 	(__ARM_mve_coerce_u8_ptr): New.
+ 	(__ARM_mve_coerce_s16_ptr): New.
+ 	(__ARM_mve_coerce_u16_ptr): New.
+ 	(__ARM_mve_coerce_s32_ptr): New.
+ 	(__ARM_mve_coerce_u32_ptr): New.
+ 	(__ARM_mve_coerce_s64_ptr): New.
+ 	(__ARM_mve_coerce_u64_ptr): New.
+ 	(__ARM_mve_coerce_f_scalar): New.
+ 	(__ARM_mve_coerce_f16_ptr): New.
+ 	(__ARM_mve_coerce_f32_ptr): New.
+ 	(__arm_vst4q): Change _coerce_ overloads.
+ 	(__arm_vbicq): Change _coerce_ overloads.
+ 	(__arm_vld1q): Change _coerce_ overloads.
+ 	(__arm_vld1q_z): Change _coerce_ overloads.
+ 	(__arm_vld2q): Change _coerce_ overloads.
+ 	(__arm_vld4q): Change _coerce_ overloads.
+ 	(__arm_vldrhq_gather_offset): Change _coerce_ overloads.
+ 	(__arm_vldrhq_gather_offset_z): Change _coerce_ overloads.
+ 	(__arm_vldrhq_gather_shifted_offset): Change _coerce_ overloads.
+ 	(__arm_vldrhq_gather_shifted_offset_z): Change _coerce_ overloads.
+ 	(__arm_vldrwq_gather_offset): Change _coerce_ overloads.
+ 	(__arm_vldrwq_gather_offset_z): Change _coerce_ overloads.
+ 	(__arm_vldrwq_gather_shifted_offset): Change _coerce_ overloads.
+ 	(__arm_vldrwq_gather_shifted_offset_z): Change _coerce_ overloads.
+ 	(__arm_vst1q_p): Change _coerce_ overloads.
+ 	(__arm_vst2q): Change _coerce_ overloads.
+ 	(__arm_vst1q): Change _coerce_ overloads.
+ 	(__arm_vstrhq): Change _coerce_ overloads.
+ 	(__arm_vstrhq_p): Change _coerce_ overloads.
+ 	(__arm_vstrhq_scatter_offset_p): Change _coerce_ overloads.
+ 	(__arm_vstrhq_scatter_offset): Change _coerce_ overloads.
+ 	(__arm_vstrhq_scatter_shifted_offset_p): Change _coerce_ overloads.
+ 	(__arm_vstrhq_scatter_shifted_offset): Change _coerce_ overloads.
+ 	(__arm_vstrwq_p): Change _coerce_ overloads.
+ 	(__arm_vstrwq): Change _coerce_ overloads.
+ 	(__arm_vstrwq_scatter_offset): Change _coerce_ overloads.
+ 	(__arm_vstrwq_scatter_offset_p): Change _coerce_ overloads.
+ 	(__arm_vstrwq_scatter_shifted_offset): Change _coerce_ overloads.
+ 	(__arm_vstrwq_scatter_shifted_offset_p): Change _coerce_ overloads.
+ 	(__arm_vsetq_lane): Change _coerce_ overloads.
+ 	(__arm_vldrbq_gather_offset): Change _coerce_ overloads.
+ 	(__arm_vdwdupq_x_u8): Change _coerce_ overloads.
+ 	(__arm_vdwdupq_x_u16): Change _coerce_ overloads.
+ 	(__arm_vdwdupq_x_u32): Change _coerce_ overloads.
+ 	(__arm_viwdupq_x_u8): Change _coerce_ overloads.
+ 	(__arm_viwdupq_x_u16): Change _coerce_ overloads.
+ 	(__arm_viwdupq_x_u32): Change _coerce_ overloads.
+ 	(__arm_vidupq_x_u8): Change _coerce_ overloads.
+ 	(__arm_vddupq_x_u8): Change _coerce_ overloads.
+ 	(__arm_vidupq_x_u16): Change _coerce_ overloads.
+ 	(__arm_vddupq_x_u16): Change _coerce_ overloads.
+ 	(__arm_vidupq_x_u32): Change _coerce_ overloads.
+ 	(__arm_vddupq_x_u32): Change _coerce_ overloads.
+ 	(__arm_vldrdq_gather_offset): Change _coerce_ overloads.
+ 	(__arm_vldrdq_gather_offset_z): Change _coerce_ overloads.
+ 	(__arm_vldrdq_gather_shifted_offset): Change _coerce_ overloads.
+ 	(__arm_vldrdq_gather_shifted_offset_z): Change _coerce_ overloads.
+ 	(__arm_vldrbq_gather_offset_z): Change _coerce_ overloads.
+ 	(__arm_vidupq_u16): Change _coerce_ overloads.
+ 	(__arm_vidupq_u32): Change _coerce_ overloads.
+ 	(__arm_vidupq_u8): Change _coerce_ overloads.
+ 	(__arm_vddupq_u16): Change _coerce_ overloads.
+ 	(__arm_vddupq_u32): Change _coerce_ overloads.
+ 	(__arm_vddupq_u8): Change _coerce_ overloads.
+ 	(__arm_viwdupq_m): Change _coerce_ overloads.
+ 	(__arm_viwdupq_u16): Change _coerce_ overloads.
+ 	(__arm_viwdupq_u32): Change _coerce_ overloads.
+ 	(__arm_viwdupq_u8): Change _coerce_ overloads.
+ 	(__arm_vdwdupq_m): Change _coerce_ overloads.
+ 	(__arm_vdwdupq_u16): Change _coerce_ overloads.
+ 	(__arm_vdwdupq_u32): Change _coerce_ overloads.
+ 	(__arm_vdwdupq_u8): Change _coerce_ overloads.
+ 	(__arm_vstrbq): Change _coerce_ overloads.
+ 	(__arm_vstrbq_p): Change _coerce_ overloads.
+ 	(__arm_vstrbq_scatter_offset_p): Change _coerce_ overloads.
+ 	(__arm_vstrdq_scatter_offset_p): Change _coerce_ overloads.
+ 	(__arm_vstrdq_scatter_offset): Change _coerce_ overloads.
+ 	(__arm_vstrdq_scatter_shifted_offset_p): Change _coerce_ overloads.
+ 	(__arm_vstrdq_scatter_shifted_offset): Change _coerce_ overloads.
+ 
+ 2023-05-18  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	* config/arm/arm_mve.h (__arm_vbicq): Change coerce on
+ 	scalar constant.
+ 
+ 2023-05-18  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	* config/arm/arm_mve.h (__arm_vadcq_s32): Fix arithmetic.
+ 	(__arm_vadcq_u32): Likewise.
+ 	(__arm_vadcq_m_s32): Likewise.
+ 	(__arm_vadcq_m_u32): Likewise.
+ 	(__arm_vsbcq_s32): Likewise.
+ 	(__arm_vsbcq_u32): Likewise.
+ 	(__arm_vsbcq_m_s32): Likewise.
+ 	(__arm_vsbcq_m_u32): Likewise.
+ 	* config/arm/mve.md (get_fpscr_nzcvqc): Make unspec_volatile.
+ 
+ 2023-05-18  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrev64q_f<mode>)
+ 	(mve_vrev32q_fv8hf, mve_vcvttq_f32_f16v4sf)
+ 	(mve_vcvtbq_f32_f16v4sf, mve_vcvtq_to_f_<supf><mode>)
+ 	(mve_vrev64q_<supf><mode>, mve_vcvtq_from_f_<supf><mode>)
+ 	(mve_vmovltq_<supf><mode>, mve_vmovlbq_<supf><mode>)
+ 	(mve_vcvtpq_<supf><mode>, mve_vcvtnq_<supf><mode>)
+ 	(mve_vcvtmq_<supf><mode>, mve_vcvtaq_<supf><mode>)
+ 	(mve_vmvnq_n_<supf><mode>, mve_vrev16q_<supf>v16qi)
+ 	(mve_vctp<MVE_vctp>q<MVE_vpred>, mve_vbrsrq_n_f<mode>)
+ 	(mve_vbrsrq_n_<supf><mode>, mve_vandq_f<mode>, mve_vbicq_f<mode>)
+ 	(mve_vctp<MVE_vctp>q_m<MVE_vpred>, mve_vcvtbq_f16_f32v8hf)
+ 	(mve_vcvttq_f16_f32v8hf, mve_veorq_f<mode>)
+ 	(mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
+ 	(mve_vmlsldavxq_s<mode>, mve_vornq_f<mode>, mve_vorrq_f<mode>)
+ 	(mve_vrmlaldavhxq_sv4si, mve_vcvtq_m_to_f_<supf><mode>)
+ 	(mve_vshlcq_<supf><mode>, mve_vmvnq_m_<supf><mode>)
+ 	(mve_vpselq_<supf><mode>, mve_vcvtbq_m_f16_f32v8hf)
+ 	(mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f16_f32v8hf)
+ 	(mve_vcvttq_m_f32_f16v4sf, mve_vmlaldavq_p_<supf><mode>)
+ 	(mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
+ 	(mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>)
+ 	(mve_vmvnq_m_n_<supf><mode>, mve_vorrq_m_n_<supf><mode>)
+ 	(mve_vpselq_f<mode>, mve_vrev32q_m_fv8hf)
+ 	(mve_vrev32q_m_<supf><mode>, mve_vrev64q_m_f<mode>)
+ 	(mve_vrmlaldavhaxq_sv4si, mve_vrmlaldavhxq_p_sv4si)
+ 	(mve_vrmlsldavhaxq_sv4si, mve_vrmlsldavhq_p_sv4si)
+ 	(mve_vrmlsldavhxq_p_sv4si, mve_vrev16q_m_<supf>v16qi)
+ 	(mve_vrmlaldavhq_p_<supf>v4si, mve_vrmlsldavhaq_sv4si)
+ 	(mve_vandq_m_<supf><mode>, mve_vbicq_m_<supf><mode>)
+ 	(mve_veorq_m_<supf><mode>, mve_vornq_m_<supf><mode>)
+ 	(mve_vorrq_m_<supf><mode>, mve_vandq_m_f<mode>)
+ 	(mve_vbicq_m_f<mode>, mve_veorq_m_f<mode>, mve_vornq_m_f<mode>)
+ 	(mve_vorrq_m_f<mode>)
+ 	(mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn)
+ 	(mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn)
+ 	(mve_vstrdq_scatter_base_wb_p_<supf>v2di) : Fix spacing and
+ 	capitalization in the emitted asm.
+ 
+ 2023-05-18  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/constraints.md (mve_vldrd_immediate): Move it to
+ 	predicates.md.
+ 	(Ri): Move constraint definition from predicates.md.
+ 	(Rl): Define new constraint.
+ 	* config/arm/mve.md (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Add
+ 	missing constraint.
+ 	(mve_vstrwq_scatter_base_wb_p_fv4sf): Add missing Up constraint
+ 	for op 1, use mve_vstrw_immediate predicate and Rl constraint for
+ 	op 2. Fix asm output spacing.
+ 	(mve_vstrdq_scatter_base_wb_p_<supf>v2di): Add missing constraint.
+ 	* config/arm/predicates.md (Ri) Move constraint to constraints.md
+ 	(mve_vldrd_immediate): Move it from
+ 	constraints.md.
+ 	(mve_vstrw_immediate): New predicate.
+ 
+ 2023-05-18  Pan Li  <pan2.li@intel.com>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    Kito Cheng  <kito.cheng@sifive.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* combine.cc (struct reg_stat_type): Extend machine_mode to 16 bits.
+ 	* cse.cc (struct qty_table_elem): Extend machine_mode to 16 bits
+ 	(struct table_elt): Extend machine_mode to 16 bits.
+ 	(struct set): Ditto.
+ 	* genmodes.cc (emit_mode_wider): Extend type from char to short.
+ 	(emit_mode_complex): Ditto.
+ 	(emit_mode_inner): Ditto.
+ 	(emit_class_narrowest_mode): Ditto.
+ 	* genopinit.cc (main): Extend the machine_mode limit.
+ 	* ira-int.h (struct ira_allocno): Extend machine_mode to 16 bits and
+ 	re-ordered the struct fields for padding.
+ 	* machmode.h (MACHINE_MODE_BITSIZE): New macro.
+ 	(GET_MODE_2XWIDER_MODE): Extend type from char to short.
+ 	(get_mode_alignment): Extend type from char to short.
+ 	* ree.cc (struct ext_modified): Extend machine_mode to 16 bits and
+ 	removed the ATTRIBUTE_PACKED.
+ 	* rtl-ssa/accesses.h: Extend machine_mode to 16 bits, narrow
+ 	* rtl-ssa/internals.inl (rtl_ssa::access_info): Adjust the assignment.
+ 	m_kind to 2 bits and remove m_spare.
+ 	* rtl.h (RTX_CODE_BITSIZE): New macro.
+ 	(struct rtx_def): Swap both the bit size and location between the
+ 	rtx_code and the machine_mode.
+ 	(subreg_shape::unique_id): Extend the machine_mode limit.
+ 	* rtlanal.h: Extend machine_mode to 16 bits.
+ 	* tree-core.h (struct tree_type_common): Extend machine_mode to 16
+ 	bits and re-ordered the struct fields for padding.
+ 	(struct tree_decl_common): Extend machine_mode to 16 bits.
+ 
+ 2023-05-17  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* genrecog.cc (print_nonbool_test): Fix type error of
+ 	switch (SUBREG_BYTE (op))'.
+ 
+ 2023-05-17  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Remove
+ 	trailing spaces on lines.
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Likewise.
+ 	* config/riscv/riscv.h (enum reg_class): Likewise.
+ 	* config/riscv/riscv.md: Likewise.
+ 
+ 2023-05-17  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.md (clear_cache): New.
+ 
+ 2023-05-17  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/extend.texi (C++ Concepts) <forall>: Remove extraneous
+ 	parenthesis.  Fix misnamed index entry.
+ 	<concept>: Fix misnamed index entry.
+ 
+ 2023-05-17  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/riscv.md (*<optab><GPR:mode>3_mask): New pattern,
+ 	combined from ...
+ 	(*<optab>si3_mask, *<optab>di3_mask): Here.
+ 	(*<optab>si3_mask_1, *<optab>di3_mask_1): And here.
+ 	* config/riscv/bitmanip.md (*<bitmanip_optab><GPR:mode>3_mask): New
+ 	pattern.
+ 	(*<bitmanip_optab>si3_sext_mask): Likewise.
+ 	* config/riscv/iterators.md (shiftm1): Use const_si_mask_operand
+ 	and const_di_mask_operand.
+ 	(bitmanip_rotate): New iterator.
+ 	(bitmanip_optab): Add rotates.
+ 	* config/riscv/predicates.md (const_si_mask_operand): Renamed
+ 	from const31_operand.  Generalize to handle more mask constants.
+ 	(const_di_mask_operand): Similarly.
+ 
+ 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/109884
+ 	* config/i386/i386-builtin-types.def (FLOAT128): Use
+ 	float128t_type_node rather than float128_type_node.
+ 
+ 2023-05-17  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* tree-ssa-math-opts.cc (convert_mult_to_fma): Enable only for
+ 	FP_CONTRACT_FAST (no functional change).
+ 
+ 2023-05-17  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_multiplication_cost): Correct
+ 	calcuation of integer vector mode costs to reflect generated
+ 	instruction sequences of different integer vector modes and
+ 	different target ABIs.
+ 
+ 2023-05-17  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-opts.h (enum riscv_entity): New enum.
+ 	* config/riscv/riscv.cc (riscv_emit_mode_set): New function.
+ 	(riscv_mode_needed): Ditto.
+ 	(riscv_mode_after): Ditto.
+ 	(riscv_mode_entry): Ditto.
+ 	(riscv_mode_exit): Ditto.
+ 	(riscv_mode_priority): Ditto.
+ 	(TARGET_MODE_EMIT): New target hook.
+ 	(TARGET_MODE_NEEDED): Ditto.
+ 	(TARGET_MODE_AFTER): Ditto.
+ 	(TARGET_MODE_ENTRY): Ditto.
+ 	(TARGET_MODE_EXIT): Ditto.
+ 	(TARGET_MODE_PRIORITY): Ditto.
+ 	* config/riscv/riscv.h (OPTIMIZE_MODE_SWITCHING): Ditto.
+ 	(NUM_MODES_FOR_MODE_SWITCHING): Ditto.
+ 	* config/riscv/riscv.md: Add csrwvxrm.
+ 	* config/riscv/vector.md (rnu,rne,rdn,rod,none): New attribute.
+ 	(vxrmsi): New pattern.
+ 
+ 2023-05-17  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Introduce rounding mode.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
+ 	(struct narrow_alu_def): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (function_builder::apply_predication): Ditto.
+ 	(function_expander::use_exact_insn): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (function_checker::arg_num): New function.
+ 	(function_base::has_rounding_mode_operand_p): New function.
+ 
+ 2023-05-17  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_builtin_call): Check
+ 	against 0 instead of calling integer_zerop.
+ 
+ 2023-05-17  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc (register_vxrm): New function.
+ 	(DEF_RVV_VXRM_ENUM): New macro.
+ 	(handle_pragma_vector): Add vxrm enum register.
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_VXRM_ENUM): New macro.
+ 	(RNU): Ditto.
+ 	(RNE): Ditto.
+ 	(RDN): Ditto.
+ 	(ROD): Ditto.
+ 
+ 2023-05-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (Value_Range::operator=): New.
+ 
+ 2023-05-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (vrange::operator=): Add a stub to copy
+ 	unsupported ranges.
+ 	* value-range.h (is_a <unsupported_range>): New.
+ 	(Value_Range::operator=): Support copying unsupported ranges.
+ 
+ 2023-05-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* data-streamer-in.cc (streamer_read_real_value): New.
+ 	(streamer_read_value_range): New.
+ 	* data-streamer-out.cc (streamer_write_real_value): New.
+ 	(streamer_write_vrange): New.
+ 	* data-streamer.h (streamer_write_vrange): New.
+ 	(streamer_read_value_range): New.
+ 
+ 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR c++/109532
+ 	* doc/invoke.texi (Code Gen Options): Note that -fshort-enums
+ 	is ignored for a fixed underlying type.
+ 	(C++ Dialect Options): Likewise for -fstrict-enums.
+ 
+ 2023-05-17  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* gimplify.cc (gimplify_scan_omp_clauses): Remove Fortran
+ 	special case.
+ 
+ 2023-05-17  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (TARGET_ATOMIC_ALIGN_FOR_MODE):
+ 	New.
+ 	(s390_atomic_align_for_mode): New.
+ 
+ 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* wide-int.cc (wi::from_array): Add missing closing paren in function
+ 	comment.
+ 
+ 2023-05-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_1): Don't retry analysis with
+ 	suggested unroll factor once the previous analysis fails.
+ 
+ 2023-05-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): New
+ 	macro.
+ 	(main): Add bool1 to the type indexer.
+ 	* config/riscv/riscv-vector-builtins-functions.def
+ 	(vreinterpret): Register vbool1 interpret function.
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
+ 	(vint8m1_t): Add the type to bool1_interpret_ops.
+ 	(vint16m1_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
+ 	(required_extensions_p): Add bool1 interpret case.
+ 	* config/riscv/riscv-vector-builtins.def
+ 	(bool1_interpret): Add bool1 interpret to base type.
+ 	* config/riscv/vector.md (@vreinterpret<mode>): Add new expand
+ 	with VB dest for vreinterpret.
+ 
+ 2023-05-17  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	PR target/106708
+ 	* config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Support building
+ 	constants through "lis; xoris".
+ 
+ 2023-05-16  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
+ 
+ 	* common/config/rs6000/rs6000-common.cc: Add REE pass as a
+ 	default rs6000 target pass for O2 and above.
+ 	* doc/invoke.texi: Document -free
+ 
+ 2023-05-16  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_compute_multilib):
+ 	Fix wrong select_kind...
+ 
+ 2023-05-16  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-protos.h (s390_expand_setmem): Change
+ 	function signature.
+ 	* config/s390/s390.cc (s390_expand_setmem): For memset's less
+ 	than or equal to 256 byte do not perform a libc call.
+ 	* config/s390/s390.md: Change expander into a version which
+ 	takes 8 operands.
+ 
+ 2023-05-16  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-protos.h (s390_expand_movmem): New.
+ 	* config/s390/s390.cc (s390_expand_movmem): New.
+ 	* config/s390/s390.md (movmem<mode>): New.
+ 	(*mvcrl): New.
+ 	(mvcrl): New.
+ 
+ 2023-05-16  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-protos.h (s390_expand_cpymem): Change
+ 	function signature.
+ 	* config/s390/s390.cc (s390_expand_cpymem): For memcpy's less
+ 	than or equal to 256 byte do not perform a libc call.
+ 	(s390_expand_insv): Adapt new function signature of
+ 	s390_expand_cpymem.
+ 	* config/s390/s390.md: Change expander into a version which
+ 	takes 8 operands.
+ 
+ 2023-05-16  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109424
+ 	* match.pd: Add patterns for min/max of zero_one_valued
+ 	values to `&`/`|`.
+ 
+ 2023-05-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (enum frm_field_enum): New enum.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_ternop_insn): Add default rounding mode.
+ 	(function_expander::use_widen_ternop_insn): Ditto.
+ 	* config/riscv/riscv.cc (riscv_hard_regno_nregs): Add FRM REGNUM.
+ 	(riscv_hard_regno_mode_ok): Ditto.
+ 	(riscv_conditional_register_usage): Ditto.
+ 	* config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
+ 	(FRM_REG_P): Ditto.
+ 	(RISCV_DWARF_FRM): Ditto.
+ 	* config/riscv/riscv.md: Ditto.
+ 	* config/riscv/vector-iterators.md: split no frm and has frm operations.
+ 	* config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
+ 	(@pred_<optab><mode>): Ditto.
+ 
+ 2023-05-15  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/109695
+ 	* value-range.cc (irange::operator=): Resize range.
+ 	(irange::union_): Same.
+ 	(irange::intersect): Same.
+ 	(irange::invert): Same.
+ 	(int_range_max): Default to 3 sub-ranges and resize as needed.
+ 	* value-range.h (irange::maybe_resize): New.
+ 	(~int_range): New.
+ 	(int_range::int_range): Adjust for resizing.
+ 	(int_range::operator=): Same.
+ 
+ 2023-05-15  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Avoid unnecessary
+ 	range copying
+ 	* value-range.cc (irange::union_nonzero_bits): Return TRUE only
+ 	when range changed.
+ 
+ 2023-05-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (enum vxrm_field_enum): New enum.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_exact_insn): Add default rounding mode operand.
+ 	* config/riscv/riscv.cc (riscv_hard_regno_nregs): Add VXRM_REGNUM.
+ 	(riscv_hard_regno_mode_ok): Ditto.
+ 	(riscv_conditional_register_usage): Ditto.
+ 	* config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
+ 	(VXRM_REG_P): Ditto.
+ 	(RISCV_DWARF_VXRM): Ditto.
+ 	* config/riscv/riscv.md: Ditto.
+ 	* config/riscv/vector.md: Ditto
+ 
+ 2023-05-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* optabs.cc (maybe_gen_insn): Add case to generate instruction
+ 	that has 11 operands.
+ 
+ 2023-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_rtx_costs, NEG case): Add costing
+ 	logic for vector modes.
+ 
+ 2023-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_cm<optab><mode>): Rename to...
+ 	(aarch64_cm<optab><mode><vczle><vczbe>): ... This.
+ 	(aarch64_cmtst<mode>): Rename to...
+ 	(aarch64_cmtst<mode><vczle><vczbe>): ... This.
+ 	(*aarch64_cmtst_same_<mode>): Rename to...
+ 	(*aarch64_cmtst_same_<mode><vczle><vczbe>): ... This.
+ 	(*aarch64_cmtstdi): Rename to...
+ 	(*aarch64_cmtstdi<vczle><vczbe>): ... This.
+ 	(aarch64_fac<optab><mode>): Rename to...
+ 	(aarch64_fac<optab><mode><vczle><vczbe>): ... This.
+ 
+ 2023-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>): Rename to...
+ 	(aarch64_s<optab><mode><vczle><vczbe>): ... This.
+ 
+ 2023-05-15  Pan Li  <pan2.li@intel.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-v.cc (const_vlmax_p): New function for
+ 	deciding the mode is constant or not.
+ 	(set_len_and_policy): Optimize VLS-VLMAX code gen to vsetivli.
+ 
+ 2023-05-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109848
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Put the
+ 	TARGET_MEM_REF address preparation before the store, not
+ 	before the CTOR.
+ 
+ 2023-05-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc
+ 	(riscv_vectorize_preferred_vector_alignment): New function.
+ 	(TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New target hook.
+ 
+ 2023-05-14  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109829
+ 	* match.pd: Add pattern for `signbit(x) !=/== 0 ? x : -x`.
+ 
+ 2023-05-14  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/109807
+ 	* config/i386/i386.cc: Revert the 2023-05-11 change.
+ 	(ix86_widen_mult_cost): Return high value instead of
+ 	ICEing for unsupported modes.
+ 
+ 2023-05-14  Ard Biesheuvel  <ardb@kernel.org>
+ 
+ 	* config/i386/i386.cc (x86_function_profiler): Take
+ 	ix86_direct_extern_access into account when generating calls
+ 	to __fentry__()
+ 
+ 2023-05-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc (required_extensions_p):
+ 	Refactor the or pattern to switch cases.
+ 
+ 2023-05-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Rename
+ 	aarch64_expand_vector_init to this, and remove 	interleaving case.
+ 	Recursively call aarch64_expand_vector_init_fallback, instead of
+ 	aarch64_expand_vector_init.
+ 	(aarch64_unzip_vector_init): New function.
+ 	(aarch64_expand_vector_init): Likewise.
+ 
+ 2023-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns):
+ 	Pull out function call from the gcc_assert.
+ 
+ 2023-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vlmul_to_str): New.
+ 	(policy_to_str): New.
+ 	(vector_insn_info::dump): Use vlmul_to_str and policy_to_str.
+ 
+ 2023-05-13  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109834
+ 	* match.pd (popcount(bswap(x))->popcount(x)): Fix up unsigned type checking.
+ 	(popcount(rotate(x,y))->popcount(x)): Likewise.
+ 
+ 2023-05-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also
+ 	reject ymm instructions for TARGET_PREFER_AVX128.  Use generic
+ 	gen_extend_insn to generate zero/sign extension instructions.
+ 	Fix comments.
+ 	(ix86_expand_vecop_qihi): Initialize interleave functions
+ 	for MULT code only.  Fix comments.
+ 
+ 2023-05-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/109797
+ 	* config/i386/mmx.md (mulv2si3): Remove expander.
+ 	(mulv2si3): Rename insn pattern from *mulv2si.
+ 
+ 2023-05-12  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR libstdc++/109816
+ 	* lto-cgraph.cc (output_symtab): Guard lto_output_toplevel_asms by
+ 	'!lto_stream_offload_p'.
+ 
+ 2023-05-12  Kito Cheng  <kito.cheng@sifive.com>
+ 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109743
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vsetvl_at_end): New.
+ 	(local_avl_compatible_p): New.
+ 	(pass_vsetvl::local_eliminate_vsetvl_insn): Enhance local optimizations
+ 	for LCM, rewrite as a backward algorithm.
+ 	(pass_vsetvl::cleanup_insns): Use new local_eliminate_vsetvl_insn
+ 	interface, handle a BB at once.
+ 
+ 2023-05-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/64731
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Also
+ 	handle TARGET_MEM_REF destinations of stores from vector
+ 	CTORs.
+ 
+ 2023-05-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109791
+ 	* match.pd (minus (convert ADDR_EXPR@0) (convert (pointer_plus @1 @2))):
+ 	New pattern.
+ 	(minus (convert (pointer_plus @1 @2)) (convert ADDR_EXPR@0)):
+ 	Likewise.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vsriq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vsriq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vsriq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vsriq.
+ 	* config/arm/arm_mve.h (vsriq): Remove.
+ 	(vsriq_m): Remove.
+ 	(vsriq_n_u8): Remove.
+ 	(vsriq_n_s8): Remove.
+ 	(vsriq_n_u16): Remove.
+ 	(vsriq_n_s16): Remove.
+ 	(vsriq_n_u32): Remove.
+ 	(vsriq_n_s32): Remove.
+ 	(vsriq_m_n_s8): Remove.
+ 	(vsriq_m_n_u8): Remove.
+ 	(vsriq_m_n_s16): Remove.
+ 	(vsriq_m_n_u16): Remove.
+ 	(vsriq_m_n_s32): Remove.
+ 	(vsriq_m_n_u32): Remove.
+ 	(__arm_vsriq_n_u8): Remove.
+ 	(__arm_vsriq_n_s8): Remove.
+ 	(__arm_vsriq_n_u16): Remove.
+ 	(__arm_vsriq_n_s16): Remove.
+ 	(__arm_vsriq_n_u32): Remove.
+ 	(__arm_vsriq_n_s32): Remove.
+ 	(__arm_vsriq_m_n_s8): Remove.
+ 	(__arm_vsriq_m_n_u8): Remove.
+ 	(__arm_vsriq_m_n_s16): Remove.
+ 	(__arm_vsriq_m_n_u16): Remove.
+ 	(__arm_vsriq_m_n_s32): Remove.
+ 	(__arm_vsriq_m_n_u32): Remove.
+ 	(__arm_vsriq): Remove.
+ 	(__arm_vsriq_m): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add vsri.
+ 	* config/arm/mve.md (mve_vsriq_n_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): .,. this.
+ 	(mve_vsriq_m_n_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (ternary_rshift): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (ternary_rshift): New.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vsliq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vsliq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vsliq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vsliq.
+ 	* config/arm/arm_mve.h (vsliq): Remove.
+ 	(vsliq_m): Remove.
+ 	(vsliq_n_u8): Remove.
+ 	(vsliq_n_s8): Remove.
+ 	(vsliq_n_u16): Remove.
+ 	(vsliq_n_s16): Remove.
+ 	(vsliq_n_u32): Remove.
+ 	(vsliq_n_s32): Remove.
+ 	(vsliq_m_n_s8): Remove.
+ 	(vsliq_m_n_s32): Remove.
+ 	(vsliq_m_n_s16): Remove.
+ 	(vsliq_m_n_u8): Remove.
+ 	(vsliq_m_n_u32): Remove.
+ 	(vsliq_m_n_u16): Remove.
+ 	(__arm_vsliq_n_u8): Remove.
+ 	(__arm_vsliq_n_s8): Remove.
+ 	(__arm_vsliq_n_u16): Remove.
+ 	(__arm_vsliq_n_s16): Remove.
+ 	(__arm_vsliq_n_u32): Remove.
+ 	(__arm_vsliq_n_s32): Remove.
+ 	(__arm_vsliq_m_n_s8): Remove.
+ 	(__arm_vsliq_m_n_s32): Remove.
+ 	(__arm_vsliq_m_n_s16): Remove.
+ 	(__arm_vsliq_m_n_u8): Remove.
+ 	(__arm_vsliq_m_n_u32): Remove.
+ 	(__arm_vsliq_m_n_u16): Remove.
+ 	(__arm_vsliq): Remove.
+ 	(__arm_vsliq_m): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (mve_insn>): Add vsli.
+ 	* config/arm/mve.md (mve_vsliq_n_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vsliq_m_n_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (ternary_lshift): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (ternary_lshift): New.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vpselq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vpselq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vpselq): New.
+ 	* config/arm/arm_mve.h (vpselq): Remove.
+ 	(vpselq_u8): Remove.
+ 	(vpselq_s8): Remove.
+ 	(vpselq_u16): Remove.
+ 	(vpselq_s16): Remove.
+ 	(vpselq_u32): Remove.
+ 	(vpselq_s32): Remove.
+ 	(vpselq_u64): Remove.
+ 	(vpselq_s64): Remove.
+ 	(vpselq_f16): Remove.
+ 	(vpselq_f32): Remove.
+ 	(__arm_vpselq_u8): Remove.
+ 	(__arm_vpselq_s8): Remove.
+ 	(__arm_vpselq_u16): Remove.
+ 	(__arm_vpselq_s16): Remove.
+ 	(__arm_vpselq_u32): Remove.
+ 	(__arm_vpselq_s32): Remove.
+ 	(__arm_vpselq_u64): Remove.
+ 	(__arm_vpselq_s64): Remove.
+ 	(__arm_vpselq_f16): Remove.
+ 	(__arm_vpselq_f32): Remove.
+ 	(__arm_vpselq): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (vpsel): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vpsel): New.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_expand_vcond): Use gen_mve_q instead of
+ 	gen_mve_vpselq.
+ 	* config/arm/iterators.md (MVE_VPSELQ_F): New.
+ 	(mve_insn): Add vpsel.
+ 	* config/arm/mve.md (@mve_vpselq_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 	(@mve_vpselq_f<mode>): Rename into ...
+ 	(@mve_<mve_insn>q_f<mode>): ... this.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vfmaq, vfmasq, vfmsq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vfmaq, vfmasq, vfmsq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vfmaq, vfmasq, vfmsq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vfmaq, vfmasq,
+ 	vfmsq.
+ 	* config/arm/arm_mve.h (vfmaq): Remove.
+ 	(vfmasq): Remove.
+ 	(vfmsq): Remove.
+ 	(vfmaq_m): Remove.
+ 	(vfmasq_m): Remove.
+ 	(vfmsq_m): Remove.
+ 	(vfmaq_f16): Remove.
+ 	(vfmaq_n_f16): Remove.
+ 	(vfmasq_n_f16): Remove.
+ 	(vfmsq_f16): Remove.
+ 	(vfmaq_f32): Remove.
+ 	(vfmaq_n_f32): Remove.
+ 	(vfmasq_n_f32): Remove.
+ 	(vfmsq_f32): Remove.
+ 	(vfmaq_m_f32): Remove.
+ 	(vfmaq_m_f16): Remove.
+ 	(vfmaq_m_n_f32): Remove.
+ 	(vfmaq_m_n_f16): Remove.
+ 	(vfmasq_m_n_f32): Remove.
+ 	(vfmasq_m_n_f16): Remove.
+ 	(vfmsq_m_f32): Remove.
+ 	(vfmsq_m_f16): Remove.
+ 	(__arm_vfmaq_f16): Remove.
+ 	(__arm_vfmaq_n_f16): Remove.
+ 	(__arm_vfmasq_n_f16): Remove.
+ 	(__arm_vfmsq_f16): Remove.
+ 	(__arm_vfmaq_f32): Remove.
+ 	(__arm_vfmaq_n_f32): Remove.
+ 	(__arm_vfmasq_n_f32): Remove.
+ 	(__arm_vfmsq_f32): Remove.
+ 	(__arm_vfmaq_m_f32): Remove.
+ 	(__arm_vfmaq_m_f16): Remove.
+ 	(__arm_vfmaq_m_n_f32): Remove.
+ 	(__arm_vfmaq_m_n_f16): Remove.
+ 	(__arm_vfmasq_m_n_f32): Remove.
+ 	(__arm_vfmasq_m_n_f16): Remove.
+ 	(__arm_vfmsq_m_f32): Remove.
+ 	(__arm_vfmsq_m_f16): Remove.
+ 	(__arm_vfmaq): Remove.
+ 	(__arm_vfmasq): Remove.
+ 	(__arm_vfmsq): Remove.
+ 	(__arm_vfmaq_m): Remove.
+ 	(__arm_vfmasq_m): Remove.
+ 	(__arm_vfmsq_m): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_FP_M_BINARY): Add VFMAQ_M_F,
+ 	VFMSQ_M_F.
+ 	(MVE_FP_M_N_BINARY): Add VFMAQ_M_N_F, VFMASQ_M_N_F.
+ 	(MVE_VFMxQ_F, MVE_VFMAxQ_N_F): New.
+ 	(mve_insn): Add vfma, vfmas, vfms.
+ 	* config/arm/mve.md (mve_vfmaq_f<mode>, mve_vfmsq_f<mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q_f<mode>): ... this.
+ 	(mve_vfmaq_n_f<mode>, mve_vfmasq_n_f<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_f<mode>): ... this.
+ 	(mve_vfmaq_m_f<mode>, mve_vfmsq_m_f<mode>): Merge into
+ 	@mve_<mve_insn>q_m_f<mode>.
+ 	(mve_vfmaq_m_n_f<mode>, mve_vfmasq_m_n_f<mode>): Merge into
+ 	@mve_<mve_insn>q_m_n_f<mode>.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (ternary_opt_n): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (ternary_opt_n): New.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc
+ 	(FUNCTION_WITH_RTX_M_N_NO_F): New.
+ 	(vmvnq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmvnq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmvnq): New.
+ 	* config/arm/arm_mve.h (vmvnq): Remove.
+ 	(vmvnq_m): Remove.
+ 	(vmvnq_x): Remove.
+ 	(vmvnq_s8): Remove.
+ 	(vmvnq_s16): Remove.
+ 	(vmvnq_s32): Remove.
+ 	(vmvnq_n_s16): Remove.
+ 	(vmvnq_n_s32): Remove.
+ 	(vmvnq_u8): Remove.
+ 	(vmvnq_u16): Remove.
+ 	(vmvnq_u32): Remove.
+ 	(vmvnq_n_u16): Remove.
+ 	(vmvnq_n_u32): Remove.
+ 	(vmvnq_m_u8): Remove.
+ 	(vmvnq_m_s8): Remove.
+ 	(vmvnq_m_u16): Remove.
+ 	(vmvnq_m_s16): Remove.
+ 	(vmvnq_m_u32): Remove.
+ 	(vmvnq_m_s32): Remove.
+ 	(vmvnq_m_n_s16): Remove.
+ 	(vmvnq_m_n_u16): Remove.
+ 	(vmvnq_m_n_s32): Remove.
+ 	(vmvnq_m_n_u32): Remove.
+ 	(vmvnq_x_s8): Remove.
+ 	(vmvnq_x_s16): Remove.
+ 	(vmvnq_x_s32): Remove.
+ 	(vmvnq_x_u8): Remove.
+ 	(vmvnq_x_u16): Remove.
+ 	(vmvnq_x_u32): Remove.
+ 	(vmvnq_x_n_s16): Remove.
+ 	(vmvnq_x_n_s32): Remove.
+ 	(vmvnq_x_n_u16): Remove.
+ 	(vmvnq_x_n_u32): Remove.
+ 	(__arm_vmvnq_s8): Remove.
+ 	(__arm_vmvnq_s16): Remove.
+ 	(__arm_vmvnq_s32): Remove.
+ 	(__arm_vmvnq_n_s16): Remove.
+ 	(__arm_vmvnq_n_s32): Remove.
+ 	(__arm_vmvnq_u8): Remove.
+ 	(__arm_vmvnq_u16): Remove.
+ 	(__arm_vmvnq_u32): Remove.
+ 	(__arm_vmvnq_n_u16): Remove.
+ 	(__arm_vmvnq_n_u32): Remove.
+ 	(__arm_vmvnq_m_u8): Remove.
+ 	(__arm_vmvnq_m_s8): Remove.
+ 	(__arm_vmvnq_m_u16): Remove.
+ 	(__arm_vmvnq_m_s16): Remove.
+ 	(__arm_vmvnq_m_u32): Remove.
+ 	(__arm_vmvnq_m_s32): Remove.
+ 	(__arm_vmvnq_m_n_s16): Remove.
+ 	(__arm_vmvnq_m_n_u16): Remove.
+ 	(__arm_vmvnq_m_n_s32): Remove.
+ 	(__arm_vmvnq_m_n_u32): Remove.
+ 	(__arm_vmvnq_x_s8): Remove.
+ 	(__arm_vmvnq_x_s16): Remove.
+ 	(__arm_vmvnq_x_s32): Remove.
+ 	(__arm_vmvnq_x_u8): Remove.
+ 	(__arm_vmvnq_x_u16): Remove.
+ 	(__arm_vmvnq_x_u32): Remove.
+ 	(__arm_vmvnq_x_n_s16): Remove.
+ 	(__arm_vmvnq_x_n_s32): Remove.
+ 	(__arm_vmvnq_x_n_u16): Remove.
+ 	(__arm_vmvnq_x_n_u32): Remove.
+ 	(__arm_vmvnq): Remove.
+ 	(__arm_vmvnq_m): Remove.
+ 	(__arm_vmvnq_x): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add vmvn.
+ 	* config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vmvnq_m_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_m_<supf><mode>): ... this.
+ 	(mve_vmvnq_m_n_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (mvn): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (mvn): New.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vbrsrq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vbrsrq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vbrsrq): New.
+ 	* config/arm/arm_mve.h (vbrsrq): Remove.
+ 	(vbrsrq_m): Remove.
+ 	(vbrsrq_x): Remove.
+ 	(vbrsrq_n_f16): Remove.
+ 	(vbrsrq_n_f32): Remove.
+ 	(vbrsrq_n_u8): Remove.
+ 	(vbrsrq_n_s8): Remove.
+ 	(vbrsrq_n_u16): Remove.
+ 	(vbrsrq_n_s16): Remove.
+ 	(vbrsrq_n_u32): Remove.
+ 	(vbrsrq_n_s32): Remove.
+ 	(vbrsrq_m_n_s8): Remove.
+ 	(vbrsrq_m_n_s32): Remove.
+ 	(vbrsrq_m_n_s16): Remove.
+ 	(vbrsrq_m_n_u8): Remove.
+ 	(vbrsrq_m_n_u32): Remove.
+ 	(vbrsrq_m_n_u16): Remove.
+ 	(vbrsrq_m_n_f32): Remove.
+ 	(vbrsrq_m_n_f16): Remove.
+ 	(vbrsrq_x_n_s8): Remove.
+ 	(vbrsrq_x_n_s16): Remove.
+ 	(vbrsrq_x_n_s32): Remove.
+ 	(vbrsrq_x_n_u8): Remove.
+ 	(vbrsrq_x_n_u16): Remove.
+ 	(vbrsrq_x_n_u32): Remove.
+ 	(vbrsrq_x_n_f16): Remove.
+ 	(vbrsrq_x_n_f32): Remove.
+ 	(__arm_vbrsrq_n_u8): Remove.
+ 	(__arm_vbrsrq_n_s8): Remove.
+ 	(__arm_vbrsrq_n_u16): Remove.
+ 	(__arm_vbrsrq_n_s16): Remove.
+ 	(__arm_vbrsrq_n_u32): Remove.
+ 	(__arm_vbrsrq_n_s32): Remove.
+ 	(__arm_vbrsrq_m_n_s8): Remove.
+ 	(__arm_vbrsrq_m_n_s32): Remove.
+ 	(__arm_vbrsrq_m_n_s16): Remove.
+ 	(__arm_vbrsrq_m_n_u8): Remove.
+ 	(__arm_vbrsrq_m_n_u32): Remove.
+ 	(__arm_vbrsrq_m_n_u16): Remove.
+ 	(__arm_vbrsrq_x_n_s8): Remove.
+ 	(__arm_vbrsrq_x_n_s16): Remove.
+ 	(__arm_vbrsrq_x_n_s32): Remove.
+ 	(__arm_vbrsrq_x_n_u8): Remove.
+ 	(__arm_vbrsrq_x_n_u16): Remove.
+ 	(__arm_vbrsrq_x_n_u32): Remove.
+ 	(__arm_vbrsrq_n_f16): Remove.
+ 	(__arm_vbrsrq_n_f32): Remove.
+ 	(__arm_vbrsrq_m_n_f32): Remove.
+ 	(__arm_vbrsrq_m_n_f16): Remove.
+ 	(__arm_vbrsrq_x_n_f16): Remove.
+ 	(__arm_vbrsrq_x_n_f32): Remove.
+ 	(__arm_vbrsrq): Remove.
+ 	(__arm_vbrsrq_m): Remove.
+ 	(__arm_vbrsrq_x): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_VBRSR_M_N_FP, MVE_VBRSR_N_FP): New.
+ 	(mve_insn): Add vbrsr.
+ 	* config/arm/mve.md (mve_vbrsrq_n_f<mode>): Rename into ...
+ 	(@mve_<mve_insn>q_n_f<mode>): ... this.
+ 	(mve_vbrsrq_n_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vbrsrq_m_n_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 	(mve_vbrsrq_m_n_f<mode>): Rename into ...
+ 	(@mve_<mve_insn>q_m_n_f<mode>): ... this.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_imm32): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_imm32): New.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vqshluq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vqshluq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vqshluq): New.
+ 	* config/arm/arm_mve.h (vqshluq): Remove.
+ 	(vqshluq_m): Remove.
+ 	(vqshluq_n_s8): Remove.
+ 	(vqshluq_n_s16): Remove.
+ 	(vqshluq_n_s32): Remove.
+ 	(vqshluq_m_n_s8): Remove.
+ 	(vqshluq_m_n_s16): Remove.
+ 	(vqshluq_m_n_s32): Remove.
+ 	(__arm_vqshluq_n_s8): Remove.
+ 	(__arm_vqshluq_n_s16): Remove.
+ 	(__arm_vqshluq_n_s32): Remove.
+ 	(__arm_vqshluq_m_n_s8): Remove.
+ 	(__arm_vqshluq_m_n_s16): Remove.
+ 	(__arm_vqshluq_m_n_s32): Remove.
+ 	(__arm_vqshluq): Remove.
+ 	(__arm_vqshluq_m): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add vqshlu.
+ 	(supf): Add VQSHLUQ_M_N_S, VQSHLUQ_N_S.
+ 	(VQSHLUQ_M_N, VQSHLUQ_N): New.
+ 	* config/arm/mve.md (mve_vqshluq_n_s<mode>): Change name into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vqshluq_m_n_s<mode>): Change name into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc
+ 	(binary_lshift_unsigned): New.
+ 	* config/arm/arm-mve-builtins-shapes.h
+ 	(binary_lshift_unsigned): New.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vrmlaldavhaq)
+ 	(vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vrmlaldavhaq)
+ 	(vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vrmlaldavhaq)
+ 	(vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
+ 	* config/arm/arm-mve-builtins-functions.h: Handle vrmlaldavhaq,
+ 	vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq.
+ 	* config/arm/arm_mve.h (vrmlaldavhaq): Remove.
+ 	(vrmlaldavhaxq): Remove.
+ 	(vrmlsldavhaq): Remove.
+ 	(vrmlsldavhaxq): Remove.
+ 	(vrmlaldavhaq_p): Remove.
+ 	(vrmlaldavhaxq_p): Remove.
+ 	(vrmlsldavhaq_p): Remove.
+ 	(vrmlsldavhaxq_p): Remove.
+ 	(vrmlaldavhaq_s32): Remove.
+ 	(vrmlaldavhaq_u32): Remove.
+ 	(vrmlaldavhaxq_s32): Remove.
+ 	(vrmlsldavhaq_s32): Remove.
+ 	(vrmlsldavhaxq_s32): Remove.
+ 	(vrmlaldavhaq_p_s32): Remove.
+ 	(vrmlaldavhaq_p_u32): Remove.
+ 	(vrmlaldavhaxq_p_s32): Remove.
+ 	(vrmlsldavhaq_p_s32): Remove.
+ 	(vrmlsldavhaxq_p_s32): Remove.
+ 	(__arm_vrmlaldavhaq_s32): Remove.
+ 	(__arm_vrmlaldavhaq_u32): Remove.
+ 	(__arm_vrmlaldavhaxq_s32): Remove.
+ 	(__arm_vrmlsldavhaq_s32): Remove.
+ 	(__arm_vrmlsldavhaxq_s32): Remove.
+ 	(__arm_vrmlaldavhaq_p_s32): Remove.
+ 	(__arm_vrmlaldavhaq_p_u32): Remove.
+ 	(__arm_vrmlaldavhaxq_p_s32): Remove.
+ 	(__arm_vrmlsldavhaq_p_s32): Remove.
+ 	(__arm_vrmlsldavhaxq_p_s32): Remove.
+ 	(__arm_vrmlaldavhaq): Remove.
+ 	(__arm_vrmlaldavhaxq): Remove.
+ 	(__arm_vrmlsldavhaq): Remove.
+ 	(__arm_vrmlsldavhaxq): Remove.
+ 	(__arm_vrmlaldavhaq_p): Remove.
+ 	(__arm_vrmlaldavhaxq_p): Remove.
+ 	(__arm_vrmlsldavhaq_p): Remove.
+ 	(__arm_vrmlsldavhaxq_p): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_VRMLxLDAVHAxQ)
+ 	(MVE_VRMLxLDAVHAxQ_P): New.
+ 	(mve_insn): Add vrmlaldavha, vrmlaldavhax, vrmlsldavha,
+ 	vrmlsldavhax.
+ 	(supf): Add VRMLALDAVHAXQ_P_S, VRMLALDAVHAXQ_S, VRMLSLDAVHAQ_P_S,
+ 	VRMLSLDAVHAQ_S, VRMLSLDAVHAXQ_P_S, VRMLSLDAVHAXQ_S,
+ 	VRMLALDAVHAQ_P_S.
+ 	* config/arm/mve.md (mve_vrmlaldavhaq_<supf>v4si)
+ 	(mve_vrmlaldavhaxq_sv4si, mve_vrmlsldavhaxq_sv4si)
+ 	(mve_vrmlsldavhaq_sv4si): Merge into ...
+ 	(@mve_<mve_insn>q_<supf>v4si): ... this.
+ 	(mve_vrmlaldavhaq_p_sv4si, mve_vrmlaldavhaq_p_uv4si)
+ 	(mve_vrmlaldavhaxq_p_sv4si, mve_vrmlsldavhaq_p_sv4si)
+ 	(mve_vrmlsldavhaxq_p_sv4si): Merge into ...
+ 	(@mve_<mve_insn>q_p_<supf>v4si): ... this.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vqdmullbq, vqdmulltq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vqdmullbq, vqdmulltq):
+ 	New.
+ 	* config/arm/arm-mve-builtins-base.h (vqdmullbq, vqdmulltq): New.
+ 	* config/arm/arm_mve.h (vqdmulltq): Remove.
+ 	(vqdmullbq): Remove.
+ 	(vqdmullbq_m): Remove.
+ 	(vqdmulltq_m): Remove.
+ 	(vqdmulltq_s16): Remove.
+ 	(vqdmulltq_n_s16): Remove.
+ 	(vqdmullbq_s16): Remove.
+ 	(vqdmullbq_n_s16): Remove.
+ 	(vqdmulltq_s32): Remove.
+ 	(vqdmulltq_n_s32): Remove.
+ 	(vqdmullbq_s32): Remove.
+ 	(vqdmullbq_n_s32): Remove.
+ 	(vqdmullbq_m_n_s32): Remove.
+ 	(vqdmullbq_m_n_s16): Remove.
+ 	(vqdmullbq_m_s32): Remove.
+ 	(vqdmullbq_m_s16): Remove.
+ 	(vqdmulltq_m_n_s32): Remove.
+ 	(vqdmulltq_m_n_s16): Remove.
+ 	(vqdmulltq_m_s32): Remove.
+ 	(vqdmulltq_m_s16): Remove.
+ 	(__arm_vqdmulltq_s16): Remove.
+ 	(__arm_vqdmulltq_n_s16): Remove.
+ 	(__arm_vqdmullbq_s16): Remove.
+ 	(__arm_vqdmullbq_n_s16): Remove.
+ 	(__arm_vqdmulltq_s32): Remove.
+ 	(__arm_vqdmulltq_n_s32): Remove.
+ 	(__arm_vqdmullbq_s32): Remove.
+ 	(__arm_vqdmullbq_n_s32): Remove.
+ 	(__arm_vqdmullbq_m_n_s32): Remove.
+ 	(__arm_vqdmullbq_m_n_s16): Remove.
+ 	(__arm_vqdmullbq_m_s32): Remove.
+ 	(__arm_vqdmullbq_m_s16): Remove.
+ 	(__arm_vqdmulltq_m_n_s32): Remove.
+ 	(__arm_vqdmulltq_m_n_s16): Remove.
+ 	(__arm_vqdmulltq_m_s32): Remove.
+ 	(__arm_vqdmulltq_m_s16): Remove.
+ 	(__arm_vqdmulltq): Remove.
+ 	(__arm_vqdmullbq): Remove.
+ 	(__arm_vqdmullbq_m): Remove.
+ 	(__arm_vqdmulltq_m): Remove.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_VQDMULLxQ, MVE_VQDMULLxQ_M)
+ 	(MVE_VQDMULLxQ_M_N, MVE_VQDMULLxQ_N): New.
+ 	(mve_insn): Add vqdmullb, vqdmullt.
+ 	(supf): Add VQDMULLBQ_S, VQDMULLBQ_M_S, VQDMULLBQ_M_N_S,
+ 	VQDMULLBQ_N_S, VQDMULLTQ_S, VQDMULLTQ_M_S, VQDMULLTQ_M_N_S,
+ 	VQDMULLTQ_N_S.
+ 	* config/arm/mve.md (mve_vqdmullbq_n_s<mode>)
+ 	(mve_vqdmulltq_n_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vqdmullbq_s<mode>, mve_vqdmulltq_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 	(mve_vqdmullbq_m_n_s<mode>, mve_vqdmulltq_m_n_s<mode>): Merge into
+ 	...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 	(mve_vqdmullbq_m_s<mode>, mve_vqdmulltq_m_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_<supf><mode>): ... this.
+ 
+ 2023-05-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_widen_opt_n): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_widen_opt_n): New.
+ 
+ 2023-05-12  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi):
+ 	Drop unused parameter.
+ 	(riscv_select_multilib): Ditto.
+ 	(riscv_compute_multilib): Update call site of
+ 	riscv_select_multilib_by_abi and riscv_select_multilib_by_abi.
+ 
+ 2023-05-12  Juzhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (vec_init<mode><vel>): New pattern.
+ 	* config/riscv/riscv-protos.h (expand_vec_init): New function.
+ 	* config/riscv/riscv-v.cc (class rvv_builder): New class.
+ 	(rvv_builder::can_duplicate_repeating_sequence_p): New function.
+ 	(rvv_builder::get_merged_repeating_sequence): Ditto.
+ 	(expand_vector_init_insert_elems): Ditto.
+ 	(expand_vec_init): Ditto.
+ 	* config/riscv/vector-iterators.md: New attribute.
+ 
+ 2023-05-12  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000-builtins.def
+ 	(__builtin_vsx_scalar_insert_exp): Replace bif-pattern from xsiexpdp
+ 	to xsiexpdp_di.
+ 	(__builtin_vsx_scalar_insert_exp_dp): Replace bif-pattern from
+ 	xsiexpdpf to xsiexpdpf_di.
+ 	* config/rs6000/vsx.md (xsiexpdp): Rename to...
+ 	(xsiexpdp_<mode>): ..., set the mode of second operand to GPR and
+ 	replace TARGET_64BIT with TARGET_POWERPC64.
+ 	(xsiexpdpf): Rename to...
+ 	(xsiexpdpf_<mode>): ..., set the mode of second operand to GPR and
+ 	replace TARGET_64BIT with TARGET_POWERPC64.
+ 
+ 2023-05-12  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000-builtins.def
+ 	(__builtin_vsx_scalar_extract_sig): Set return type to const signed
+ 	long long.
+ 	* config/rs6000/vsx.md (xsxsigdp): Replace TARGET_64BIT with
+ 	TARGET_POWERPC64.
+ 
+ 2023-05-12  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	* config/rs6000/rs6000-builtins.def
+ 	(__builtin_vsx_scalar_extract_exp): Set return type to const signed
+ 	int and set its bif-pattern to xsxexpdp_si, move it from power9-64
+ 	to power9 catalog.
+ 	* config/rs6000/vsx.md (xsxexpdp): Rename to ...
+ 	(xsxexpdp_<mode>): ..., set mode of operand 0 to GPR and remove
+ 	TARGET_64BIT check.
+ 	* doc/extend.texi (scalar_extract_exp): Remove 64-bit environment
+ 	requirement when it has a 64-bit argument.
+ 
+ 2023-05-12  Pan Li  <pan2.li@intel.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* mux-utils.h: Add overload operator == and != for pointer_mux.
+ 	* var-tracking.cc: Included mux-utils.h for pointer_tmux.
+ 	(decl_or_value): Changed from void * to pointer_mux<tree_node, rtx_def>.
+ 	(dv_is_decl_p): Reconciled to the new type, aka pointer_mux.
+ 	(dv_as_decl): Ditto.
+ 	(dv_as_opaque): Removed due to unnecessary.
+ 	(struct variable_hasher): Take decl_or_value as compare_type.
+ 	(variable_hasher::equal): Diito.
+ 	(dv_from_decl): Reconciled to the new type, aka pointer_mux.
+ 	(dv_from_value): Ditto.
+ 	(attrs_list_member):  Ditto.
+ 	(vars_copy): Ditto.
+ 	(var_reg_decl_set): Ditto.
+ 	(var_reg_delete_and_set): Ditto.
+ 	(find_loc_in_1pdv): Ditto.
+ 	(canonicalize_values_star): Ditto.
+ 	(variable_post_merge_new_vals): Ditto.
+ 	(dump_onepart_variable_differences): Ditto.
+ 	(variable_different_p): Ditto.
+ 	(set_slot_part): Ditto.
+ 	(clobber_slot_part): Ditto.
+ 	(clobber_variable_part): Ditto.
+ 
+ 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
+ 	[(const_int 0)] idiom, instead of [(clobber (const_int 0))].
+ 	(*concat<mode><dwi>3_2): Likewise.
+ 	(*concat<mode><dwi>3_3): Likewise.
+ 	(*concat<mode><dwi>3_4): Likewise.
+ 	(*concat<mode><dwi>3_5): Likewise.
+ 	(*concat<mode><dwi>3_6): Likewise.
+ 	(*concat<mode><dwi>3_7): Likewise.
+ 
+ 2023-05-10  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/92658
+ 	* config/i386/mmx.md (sse4_1_<code>v2qiv2si2): New insn pattern.
+ 	(<insn>v4qiv4hi2): New expander.
+ 	(<insn>v2hiv2si2): Ditto.
+ 	(<insn>v2qiv2si2): Ditto.
+ 	(<insn>v2qiv2hi2): Ditto.
+ 
+ 2023-05-10  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	* config/h8300/constraints.md (Q): Make this a special memory
+ 	constraint.
+ 	(Zz): Similarly.
+ 
+ 2023-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/109788
+ 	* ipa-prop.cc (ipa_get_callee_param_type): Don't return TREE_VALUE (t)
+ 	if t is void_list_node.
+ 
+ 2023-05-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>_insn_le): Delete.
+ 	(aarch64_sqmovun<mode>_insn_be): Delete.
+ 	(aarch64_sqmovun<mode><vczle><vczbe>): New define_insn.
+ 	(aarch64_sqmovun<mode>): Delete expander.
+ 
+ 2023-05-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_<PERMUTE:perm_insn><mode>):
+ 	Rename to...
+ 	(aarch64_<PERMUTE:perm_insn><mode><vczle><vczbe>): ... This.
+ 	(aarch64_rev<REVERSE:rev_op><mode>): Rename to...
+ 	(aarch64_rev<REVERSE:rev_op><mode><vczle><vczbe>): ... This.
+ 
+ 2023-05-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_<su_optab>q<addsub><mode>):
+ 	Rename to...
+ 	(aarch64_<su_optab>q<addsub><mode><vczle><vczbe>): ... This.
+ 	(aarch64_<sur>qadd<mode>): Rename to...
+ 	(aarch64_<sur>qadd<mode><vczle><vczbe>): ... This.
+ 
+ 2023-05-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): Delete.
+ 	(aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): Delete.
+ 	(aarch64_<sur>q<r>shr<u>n_n<mode>_insn<vczle><vczbe>): New define_insn.
+ 	(aarch64_<sur>q<r>shr<u>n_n<mode>): Simplify expander.
+ 
+ 2023-05-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le): Delete.
+ 	(aarch64_xtn<mode>_insn_be): Likewise.
+ 	(trunc<mode><Vnarrowq>2): Rename to...
+ 	(trunc<mode><Vnarrowq>2<vczle><vczbe>): ... This.
+ 	(aarch64_xtn<mode>): Move under the above.  Just emit the truncate RTL.
+ 	(aarch64_<su>qmovn<mode>): Likewise.
+ 	(aarch64_<su>qmovn<mode><vczle><vczbe>): New define_insn.
+ 	(aarch64_<su>qmovn<mode>_insn_le): Delete.
+ 	(aarch64_<su>qmovn<mode>_insn_be): Likewise.
+ 
+ 2023-05-10  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): For vfmv.f.s/vmv.x.s
+ 	intruction replace null avl with (const_int 0).
+ 
+ 2023-05-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_support_vector_misalignment): Fix
+ 	incorrect codes.
+ 
+ 2023-05-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109773
+ 	* config/riscv/riscv-vsetvl.cc (avl_source_has_vsetvl_p): New function.
+ 	(source_equal_p): Fix dead loop in vsetvl avl checking.
+ 
+ 2023-05-10  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.cc (cris_postdbr_cmpelim): Correct mode
+ 	of modeadjusted_dccr.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vmaxaq, vminaq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmaxaq, vminaq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmaxaq, vminaq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vmaxaq and
+ 	vminaq.
+ 	* config/arm/arm_mve.h (vminaq): Remove.
+ 	(vmaxaq): Remove.
+ 	(vminaq_m): Remove.
+ 	(vmaxaq_m): Remove.
+ 	(vminaq_s8): Remove.
+ 	(vmaxaq_s8): Remove.
+ 	(vminaq_s16): Remove.
+ 	(vmaxaq_s16): Remove.
+ 	(vminaq_s32): Remove.
+ 	(vmaxaq_s32): Remove.
+ 	(vminaq_m_s8): Remove.
+ 	(vmaxaq_m_s8): Remove.
+ 	(vminaq_m_s16): Remove.
+ 	(vmaxaq_m_s16): Remove.
+ 	(vminaq_m_s32): Remove.
+ 	(vmaxaq_m_s32): Remove.
+ 	(__arm_vminaq_s8): Remove.
+ 	(__arm_vmaxaq_s8): Remove.
+ 	(__arm_vminaq_s16): Remove.
+ 	(__arm_vmaxaq_s16): Remove.
+ 	(__arm_vminaq_s32): Remove.
+ 	(__arm_vmaxaq_s32): Remove.
+ 	(__arm_vminaq_m_s8): Remove.
+ 	(__arm_vmaxaq_m_s8): Remove.
+ 	(__arm_vminaq_m_s16): Remove.
+ 	(__arm_vmaxaq_m_s16): Remove.
+ 	(__arm_vminaq_m_s32): Remove.
+ 	(__arm_vmaxaq_m_s32): Remove.
+ 	(__arm_vminaq): Remove.
+ 	(__arm_vmaxaq): Remove.
+ 	(__arm_vminaq_m): Remove.
+ 	(__arm_vmaxaq_m): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_VMAXAVMINAQ, MVE_VMAXAVMINAQ_M):
+ 	New.
+ 	(mve_insn): Add vmaxa, vmina.
+ 	(supf): Add VMAXAQ_S, VMAXAQ_M_S, VMINAQ_S, VMINAQ_M_S.
+ 	* config/arm/mve.md (mve_vmaxaq_s<mode>, mve_vminaq_s<mode>):
+ 	Merge into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 	(mve_vmaxaq_m_s<mode>, mve_vminaq_m_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_<supf><mode>): ... this.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_maxamina): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_maxamina): New.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vmaxnmaq, vminnmaq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmaxnmaq, vminnmaq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmaxnmaq, vminnmaq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vmaxnmaq and
+ 	vminnmaq.
+ 	* config/arm/arm_mve.h (vminnmaq): Remove.
+ 	(vmaxnmaq): Remove.
+ 	(vmaxnmaq_m): Remove.
+ 	(vminnmaq_m): Remove.
+ 	(vminnmaq_f16): Remove.
+ 	(vmaxnmaq_f16): Remove.
+ 	(vminnmaq_f32): Remove.
+ 	(vmaxnmaq_f32): Remove.
+ 	(vmaxnmaq_m_f16): Remove.
+ 	(vminnmaq_m_f16): Remove.
+ 	(vmaxnmaq_m_f32): Remove.
+ 	(vminnmaq_m_f32): Remove.
+ 	(__arm_vminnmaq_f16): Remove.
+ 	(__arm_vmaxnmaq_f16): Remove.
+ 	(__arm_vminnmaq_f32): Remove.
+ 	(__arm_vmaxnmaq_f32): Remove.
+ 	(__arm_vmaxnmaq_m_f16): Remove.
+ 	(__arm_vminnmaq_m_f16): Remove.
+ 	(__arm_vmaxnmaq_m_f32): Remove.
+ 	(__arm_vminnmaq_m_f32): Remove.
+ 	(__arm_vminnmaq): Remove.
+ 	(__arm_vmaxnmaq): Remove.
+ 	(__arm_vmaxnmaq_m): Remove.
+ 	(__arm_vminnmaq_m): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_VMAXNMA_VMINNMAQ)
+ 	(MVE_VMAXNMA_VMINNMAQ_M): New.
+ 	(mve_insn): Add vmaxnma, vminnma.
+ 	* config/arm/mve.md (mve_vmaxnmaq_f<mode>, mve_vminnmaq_f<mode>):
+ 	Merge into ...
+ 	(@mve_<mve_insn>q_f<mode>): ... this.
+ 	(mve_vmaxnmaq_m_f<mode>, mve_vminnmaq_m_f<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_f<mode>): ... this.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_F): New.
+ 	(vmaxnmavq, vmaxnmvq, vminnmavq, vminnmvq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmaxnmavq, vmaxnmvq)
+ 	(vminnmavq, vminnmvq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmaxnmavq, vmaxnmvq)
+ 	(vminnmavq, vminnmvq): New.
+ 	* config/arm/arm_mve.h (vminnmvq): Remove.
+ 	(vminnmavq): Remove.
+ 	(vmaxnmvq): Remove.
+ 	(vmaxnmavq): Remove.
+ 	(vmaxnmavq_p): Remove.
+ 	(vmaxnmvq_p): Remove.
+ 	(vminnmavq_p): Remove.
+ 	(vminnmvq_p): Remove.
+ 	(vminnmvq_f16): Remove.
+ 	(vminnmavq_f16): Remove.
+ 	(vmaxnmvq_f16): Remove.
+ 	(vmaxnmavq_f16): Remove.
+ 	(vminnmvq_f32): Remove.
+ 	(vminnmavq_f32): Remove.
+ 	(vmaxnmvq_f32): Remove.
+ 	(vmaxnmavq_f32): Remove.
+ 	(vmaxnmavq_p_f16): Remove.
+ 	(vmaxnmvq_p_f16): Remove.
+ 	(vminnmavq_p_f16): Remove.
+ 	(vminnmvq_p_f16): Remove.
+ 	(vmaxnmavq_p_f32): Remove.
+ 	(vmaxnmvq_p_f32): Remove.
+ 	(vminnmavq_p_f32): Remove.
+ 	(vminnmvq_p_f32): Remove.
+ 	(__arm_vminnmvq_f16): Remove.
+ 	(__arm_vminnmavq_f16): Remove.
+ 	(__arm_vmaxnmvq_f16): Remove.
+ 	(__arm_vmaxnmavq_f16): Remove.
+ 	(__arm_vminnmvq_f32): Remove.
+ 	(__arm_vminnmavq_f32): Remove.
+ 	(__arm_vmaxnmvq_f32): Remove.
+ 	(__arm_vmaxnmavq_f32): Remove.
+ 	(__arm_vmaxnmavq_p_f16): Remove.
+ 	(__arm_vmaxnmvq_p_f16): Remove.
+ 	(__arm_vminnmavq_p_f16): Remove.
+ 	(__arm_vminnmvq_p_f16): Remove.
+ 	(__arm_vmaxnmavq_p_f32): Remove.
+ 	(__arm_vmaxnmvq_p_f32): Remove.
+ 	(__arm_vminnmavq_p_f32): Remove.
+ 	(__arm_vminnmvq_p_f32): Remove.
+ 	(__arm_vminnmvq): Remove.
+ 	(__arm_vminnmavq): Remove.
+ 	(__arm_vmaxnmvq): Remove.
+ 	(__arm_vmaxnmavq): Remove.
+ 	(__arm_vmaxnmavq_p): Remove.
+ 	(__arm_vmaxnmvq_p): Remove.
+ 	(__arm_vminnmavq_p): Remove.
+ 	(__arm_vminnmvq_p): Remove.
+ 	(__arm_vmaxnmavq_m): Remove.
+ 	(__arm_vmaxnmvq_m): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h
+ 	(unspec_mve_function_exact_insn_pred_p): Use code_for_mve_q_p_f.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_VMAXNMxV_MINNMxVQ)
+ 	(MVE_VMAXNMxV_MINNMxVQ_P): New.
+ 	(mve_insn): Add vmaxnmav, vmaxnmv, vminnmav, vminnmv.
+ 	* config/arm/mve.md (mve_vmaxnmavq_f<mode>, mve_vmaxnmvq_f<mode>)
+ 	(mve_vminnmavq_f<mode>, mve_vminnmvq_f<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_f<mode>): ... this.
+ 	(mve_vmaxnmavq_p_f<mode>, mve_vmaxnmvq_p_f<mode>)
+ 	(mve_vminnmavq_p_f<mode>, mve_vminnmvq_p_f<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_p_f<mode>): ... this.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vmaxnmq, vminnmq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmaxnmq, vminnmq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmaxnmq, vminnmq): New.
+ 	* config/arm/arm_mve.h (vminnmq): Remove.
+ 	(vmaxnmq): Remove.
+ 	(vmaxnmq_m): Remove.
+ 	(vminnmq_m): Remove.
+ 	(vminnmq_x): Remove.
+ 	(vmaxnmq_x): Remove.
+ 	(vminnmq_f16): Remove.
+ 	(vmaxnmq_f16): Remove.
+ 	(vminnmq_f32): Remove.
+ 	(vmaxnmq_f32): Remove.
+ 	(vmaxnmq_m_f32): Remove.
+ 	(vmaxnmq_m_f16): Remove.
+ 	(vminnmq_m_f32): Remove.
+ 	(vminnmq_m_f16): Remove.
+ 	(vminnmq_x_f16): Remove.
+ 	(vminnmq_x_f32): Remove.
+ 	(vmaxnmq_x_f16): Remove.
+ 	(vmaxnmq_x_f32): Remove.
+ 	(__arm_vminnmq_f16): Remove.
+ 	(__arm_vmaxnmq_f16): Remove.
+ 	(__arm_vminnmq_f32): Remove.
+ 	(__arm_vmaxnmq_f32): Remove.
+ 	(__arm_vmaxnmq_m_f32): Remove.
+ 	(__arm_vmaxnmq_m_f16): Remove.
+ 	(__arm_vminnmq_m_f32): Remove.
+ 	(__arm_vminnmq_m_f16): Remove.
+ 	(__arm_vminnmq_x_f16): Remove.
+ 	(__arm_vminnmq_x_f32): Remove.
+ 	(__arm_vmaxnmq_x_f16): Remove.
+ 	(__arm_vmaxnmq_x_f32): Remove.
+ 	(__arm_vminnmq): Remove.
+ 	(__arm_vmaxnmq): Remove.
+ 	(__arm_vmaxnmq_m): Remove.
+ 	(__arm_vminnmq_m): Remove.
+ 	(__arm_vminnmq_x): Remove.
+ 	(__arm_vmaxnmq_x): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MAX_MIN_F): New.
+ 	(MVE_FP_M_BINARY): Add VMAXNMQ_M_F, VMINNMQ_M_F.
+ 	(mve_insn): Add vmaxnm, vminnm.
+ 	(max_min_f_str): New.
+ 	* config/arm/mve.md (mve_vmaxnmq_f<mode>, mve_vminnmq_f<mode>):
+ 	Merge into ...
+ 	(@mve_<max_min_f_str>q_f<mode>): ... this.
+ 	(mve_vmaxnmq_m_f<mode>, mve_vminnmq_m_f<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_f<mode>): ... this.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/vec-common.md (smin<mode>3): Use VDQWH iterator.
+ 	(smax<mode>3): Likewise.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_S_U)
+ 	(FUNCTION_PRED_P_S): New.
+ 	(vmaxavq, vminavq, vmaxvq, vminvq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmaxavq, vminavq, vmaxvq)
+ 	(vminvq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmaxavq, vminavq, vmaxvq)
+ 	(vminvq): New.
+ 	* config/arm/arm_mve.h (vminvq): Remove.
+ 	(vmaxvq): Remove.
+ 	(vminvq_p): Remove.
+ 	(vmaxvq_p): Remove.
+ 	(vminvq_u8): Remove.
+ 	(vmaxvq_u8): Remove.
+ 	(vminvq_s8): Remove.
+ 	(vmaxvq_s8): Remove.
+ 	(vminvq_u16): Remove.
+ 	(vmaxvq_u16): Remove.
+ 	(vminvq_s16): Remove.
+ 	(vmaxvq_s16): Remove.
+ 	(vminvq_u32): Remove.
+ 	(vmaxvq_u32): Remove.
+ 	(vminvq_s32): Remove.
+ 	(vmaxvq_s32): Remove.
+ 	(vminvq_p_u8): Remove.
+ 	(vmaxvq_p_u8): Remove.
+ 	(vminvq_p_s8): Remove.
+ 	(vmaxvq_p_s8): Remove.
+ 	(vminvq_p_u16): Remove.
+ 	(vmaxvq_p_u16): Remove.
+ 	(vminvq_p_s16): Remove.
+ 	(vmaxvq_p_s16): Remove.
+ 	(vminvq_p_u32): Remove.
+ 	(vmaxvq_p_u32): Remove.
+ 	(vminvq_p_s32): Remove.
+ 	(vmaxvq_p_s32): Remove.
+ 	(__arm_vminvq_u8): Remove.
+ 	(__arm_vmaxvq_u8): Remove.
+ 	(__arm_vminvq_s8): Remove.
+ 	(__arm_vmaxvq_s8): Remove.
+ 	(__arm_vminvq_u16): Remove.
+ 	(__arm_vmaxvq_u16): Remove.
+ 	(__arm_vminvq_s16): Remove.
+ 	(__arm_vmaxvq_s16): Remove.
+ 	(__arm_vminvq_u32): Remove.
+ 	(__arm_vmaxvq_u32): Remove.
+ 	(__arm_vminvq_s32): Remove.
+ 	(__arm_vmaxvq_s32): Remove.
+ 	(__arm_vminvq_p_u8): Remove.
+ 	(__arm_vmaxvq_p_u8): Remove.
+ 	(__arm_vminvq_p_s8): Remove.
+ 	(__arm_vmaxvq_p_s8): Remove.
+ 	(__arm_vminvq_p_u16): Remove.
+ 	(__arm_vmaxvq_p_u16): Remove.
+ 	(__arm_vminvq_p_s16): Remove.
+ 	(__arm_vmaxvq_p_s16): Remove.
+ 	(__arm_vminvq_p_u32): Remove.
+ 	(__arm_vmaxvq_p_u32): Remove.
+ 	(__arm_vminvq_p_s32): Remove.
+ 	(__arm_vmaxvq_p_s32): Remove.
+ 	(__arm_vminvq): Remove.
+ 	(__arm_vmaxvq): Remove.
+ 	(__arm_vminvq_p): Remove.
+ 	(__arm_vmaxvq_p): Remove.
+ 	(vminavq): Remove.
+ 	(vmaxavq): Remove.
+ 	(vminavq_p): Remove.
+ 	(vmaxavq_p): Remove.
+ 	(vminavq_s8): Remove.
+ 	(vmaxavq_s8): Remove.
+ 	(vminavq_s16): Remove.
+ 	(vmaxavq_s16): Remove.
+ 	(vminavq_s32): Remove.
+ 	(vmaxavq_s32): Remove.
+ 	(vminavq_p_s8): Remove.
+ 	(vmaxavq_p_s8): Remove.
+ 	(vminavq_p_s16): Remove.
+ 	(vmaxavq_p_s16): Remove.
+ 	(vminavq_p_s32): Remove.
+ 	(vmaxavq_p_s32): Remove.
+ 	(__arm_vminavq_s8): Remove.
+ 	(__arm_vmaxavq_s8): Remove.
+ 	(__arm_vminavq_s16): Remove.
+ 	(__arm_vmaxavq_s16): Remove.
+ 	(__arm_vminavq_s32): Remove.
+ 	(__arm_vmaxavq_s32): Remove.
+ 	(__arm_vminavq_p_s8): Remove.
+ 	(__arm_vmaxavq_p_s8): Remove.
+ 	(__arm_vminavq_p_s16): Remove.
+ 	(__arm_vmaxavq_p_s16): Remove.
+ 	(__arm_vminavq_p_s32): Remove.
+ 	(__arm_vmaxavq_p_s32): Remove.
+ 	(__arm_vminavq): Remove.
+ 	(__arm_vmaxavq): Remove.
+ 	(__arm_vminavq_p): Remove.
+ 	(__arm_vmaxavq_p): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_VMAXVQ_VMINVQ, MVE_VMAXVQ_VMINVQ_P): New.
+ 	(mve_insn): Add vmaxav, vmaxv, vminav, vminv.
+ 	(supf): Add VMAXAVQ_S, VMAXAVQ_P_S, VMINAVQ_S, VMINAVQ_P_S.
+ 	* config/arm/mve.md (mve_vmaxavq_s<mode>, mve_vmaxvq_<supf><mode>)
+ 	(mve_vminavq_s<mode>, mve_vminvq_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 	(mve_vmaxavq_p_s<mode>, mve_vmaxvq_p_<supf><mode>)
+ 	(mve_vminavq_p_s<mode>, mve_vminvq_p_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_p_<supf><mode>): ... this.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_mve_function_exact_insn_pred_p): New.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_maxavminav): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_maxavminav): New.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New.
+ 
+ 2023-05-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_adjust_reg_alloc_order):
+ 	Declare.
+ 	* config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
+ 	(ADJUST_REG_ALLOC_ORDER): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_adjust_reg_alloc_order): New
+ 	function.
+ 	* config/aarch64/aarch64-sve.md (*vcond_mask_<mode><vpred>): Use
+ 	Upa rather than Upl for unpredicated movprfx alternatives.
+ 
+ 2023-05-09  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	* config/h8300/testcompare.md: Add peephole2 which uses a memory
+ 	load to set flags, thus eliminating a compare against zero.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vshllbq, vshlltq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vshllbq, vshlltq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vshllbq, vshlltq): New.
+ 	* config/arm/arm_mve.h (vshlltq): Remove.
+ 	(vshllbq): Remove.
+ 	(vshllbq_m): Remove.
+ 	(vshlltq_m): Remove.
+ 	(vshllbq_x): Remove.
+ 	(vshlltq_x): Remove.
+ 	(vshlltq_n_u8): Remove.
+ 	(vshllbq_n_u8): Remove.
+ 	(vshlltq_n_s8): Remove.
+ 	(vshllbq_n_s8): Remove.
+ 	(vshlltq_n_u16): Remove.
+ 	(vshllbq_n_u16): Remove.
+ 	(vshlltq_n_s16): Remove.
+ 	(vshllbq_n_s16): Remove.
+ 	(vshllbq_m_n_s8): Remove.
+ 	(vshllbq_m_n_s16): Remove.
+ 	(vshllbq_m_n_u8): Remove.
+ 	(vshllbq_m_n_u16): Remove.
+ 	(vshlltq_m_n_s8): Remove.
+ 	(vshlltq_m_n_s16): Remove.
+ 	(vshlltq_m_n_u8): Remove.
+ 	(vshlltq_m_n_u16): Remove.
+ 	(vshllbq_x_n_s8): Remove.
+ 	(vshllbq_x_n_s16): Remove.
+ 	(vshllbq_x_n_u8): Remove.
+ 	(vshllbq_x_n_u16): Remove.
+ 	(vshlltq_x_n_s8): Remove.
+ 	(vshlltq_x_n_s16): Remove.
+ 	(vshlltq_x_n_u8): Remove.
+ 	(vshlltq_x_n_u16): Remove.
+ 	(__arm_vshlltq_n_u8): Remove.
+ 	(__arm_vshllbq_n_u8): Remove.
+ 	(__arm_vshlltq_n_s8): Remove.
+ 	(__arm_vshllbq_n_s8): Remove.
+ 	(__arm_vshlltq_n_u16): Remove.
+ 	(__arm_vshllbq_n_u16): Remove.
+ 	(__arm_vshlltq_n_s16): Remove.
+ 	(__arm_vshllbq_n_s16): Remove.
+ 	(__arm_vshllbq_m_n_s8): Remove.
+ 	(__arm_vshllbq_m_n_s16): Remove.
+ 	(__arm_vshllbq_m_n_u8): Remove.
+ 	(__arm_vshllbq_m_n_u16): Remove.
+ 	(__arm_vshlltq_m_n_s8): Remove.
+ 	(__arm_vshlltq_m_n_s16): Remove.
+ 	(__arm_vshlltq_m_n_u8): Remove.
+ 	(__arm_vshlltq_m_n_u16): Remove.
+ 	(__arm_vshllbq_x_n_s8): Remove.
+ 	(__arm_vshllbq_x_n_s16): Remove.
+ 	(__arm_vshllbq_x_n_u8): Remove.
+ 	(__arm_vshllbq_x_n_u16): Remove.
+ 	(__arm_vshlltq_x_n_s8): Remove.
+ 	(__arm_vshlltq_x_n_s16): Remove.
+ 	(__arm_vshlltq_x_n_u8): Remove.
+ 	(__arm_vshlltq_x_n_u16): Remove.
+ 	(__arm_vshlltq): Remove.
+ 	(__arm_vshllbq): Remove.
+ 	(__arm_vshllbq_m): Remove.
+ 	(__arm_vshlltq_m): Remove.
+ 	(__arm_vshllbq_x): Remove.
+ 	(__arm_vshlltq_x): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (mve_insn): Add vshllb, vshllt.
+ 	(VSHLLBQ_N, VSHLLTQ_N): Remove.
+ 	(VSHLLxQ_N): New.
+ 	(VSHLLBQ_M_N, VSHLLTQ_M_N): Remove.
+ 	(VSHLLxQ_M_N): New.
+ 	* config/arm/mve.md (mve_vshllbq_n_<supf><mode>)
+ 	(mve_vshlltq_n_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vshllbq_m_n_<supf><mode>, mve_vshlltq_m_n_<supf><mode>):
+ 	Merge into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_widen_n): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_widen_n): New.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vmovnbq, vmovntq, vqmovnbq)
+ 	(vqmovntq, vqmovunbq, vqmovuntq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmovnbq, vmovntq)
+ 	(vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmovnbq, vmovntq, vqmovnbq)
+ 	(vqmovntq, vqmovunbq, vqmovuntq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vmovnbq,
+ 	vmovntq, vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq.
+ 	* config/arm/arm_mve.h (vqmovntq): Remove.
+ 	(vqmovnbq): Remove.
+ 	(vqmovnbq_m): Remove.
+ 	(vqmovntq_m): Remove.
+ 	(vqmovntq_u16): Remove.
+ 	(vqmovnbq_u16): Remove.
+ 	(vqmovntq_s16): Remove.
+ 	(vqmovnbq_s16): Remove.
+ 	(vqmovntq_u32): Remove.
+ 	(vqmovnbq_u32): Remove.
+ 	(vqmovntq_s32): Remove.
+ 	(vqmovnbq_s32): Remove.
+ 	(vqmovnbq_m_s16): Remove.
+ 	(vqmovntq_m_s16): Remove.
+ 	(vqmovnbq_m_u16): Remove.
+ 	(vqmovntq_m_u16): Remove.
+ 	(vqmovnbq_m_s32): Remove.
+ 	(vqmovntq_m_s32): Remove.
+ 	(vqmovnbq_m_u32): Remove.
+ 	(vqmovntq_m_u32): Remove.
+ 	(__arm_vqmovntq_u16): Remove.
+ 	(__arm_vqmovnbq_u16): Remove.
+ 	(__arm_vqmovntq_s16): Remove.
+ 	(__arm_vqmovnbq_s16): Remove.
+ 	(__arm_vqmovntq_u32): Remove.
+ 	(__arm_vqmovnbq_u32): Remove.
+ 	(__arm_vqmovntq_s32): Remove.
+ 	(__arm_vqmovnbq_s32): Remove.
+ 	(__arm_vqmovnbq_m_s16): Remove.
+ 	(__arm_vqmovntq_m_s16): Remove.
+ 	(__arm_vqmovnbq_m_u16): Remove.
+ 	(__arm_vqmovntq_m_u16): Remove.
+ 	(__arm_vqmovnbq_m_s32): Remove.
+ 	(__arm_vqmovntq_m_s32): Remove.
+ 	(__arm_vqmovnbq_m_u32): Remove.
+ 	(__arm_vqmovntq_m_u32): Remove.
+ 	(__arm_vqmovntq): Remove.
+ 	(__arm_vqmovnbq): Remove.
+ 	(__arm_vqmovnbq_m): Remove.
+ 	(__arm_vqmovntq_m): Remove.
+ 	(vmovntq): Remove.
+ 	(vmovnbq): Remove.
+ 	(vmovnbq_m): Remove.
+ 	(vmovntq_m): Remove.
+ 	(vmovntq_u16): Remove.
+ 	(vmovnbq_u16): Remove.
+ 	(vmovntq_s16): Remove.
+ 	(vmovnbq_s16): Remove.
+ 	(vmovntq_u32): Remove.
+ 	(vmovnbq_u32): Remove.
+ 	(vmovntq_s32): Remove.
+ 	(vmovnbq_s32): Remove.
+ 	(vmovnbq_m_s16): Remove.
+ 	(vmovntq_m_s16): Remove.
+ 	(vmovnbq_m_u16): Remove.
+ 	(vmovntq_m_u16): Remove.
+ 	(vmovnbq_m_s32): Remove.
+ 	(vmovntq_m_s32): Remove.
+ 	(vmovnbq_m_u32): Remove.
+ 	(vmovntq_m_u32): Remove.
+ 	(__arm_vmovntq_u16): Remove.
+ 	(__arm_vmovnbq_u16): Remove.
+ 	(__arm_vmovntq_s16): Remove.
+ 	(__arm_vmovnbq_s16): Remove.
+ 	(__arm_vmovntq_u32): Remove.
+ 	(__arm_vmovnbq_u32): Remove.
+ 	(__arm_vmovntq_s32): Remove.
+ 	(__arm_vmovnbq_s32): Remove.
+ 	(__arm_vmovnbq_m_s16): Remove.
+ 	(__arm_vmovntq_m_s16): Remove.
+ 	(__arm_vmovnbq_m_u16): Remove.
+ 	(__arm_vmovntq_m_u16): Remove.
+ 	(__arm_vmovnbq_m_s32): Remove.
+ 	(__arm_vmovntq_m_s32): Remove.
+ 	(__arm_vmovnbq_m_u32): Remove.
+ 	(__arm_vmovntq_m_u32): Remove.
+ 	(__arm_vmovntq): Remove.
+ 	(__arm_vmovnbq): Remove.
+ 	(__arm_vmovnbq_m): Remove.
+ 	(__arm_vmovntq_m): Remove.
+ 	(vqmovuntq): Remove.
+ 	(vqmovunbq): Remove.
+ 	(vqmovunbq_m): Remove.
+ 	(vqmovuntq_m): Remove.
+ 	(vqmovuntq_s16): Remove.
+ 	(vqmovunbq_s16): Remove.
+ 	(vqmovuntq_s32): Remove.
+ 	(vqmovunbq_s32): Remove.
+ 	(vqmovunbq_m_s16): Remove.
+ 	(vqmovuntq_m_s16): Remove.
+ 	(vqmovunbq_m_s32): Remove.
+ 	(vqmovuntq_m_s32): Remove.
+ 	(__arm_vqmovuntq_s16): Remove.
+ 	(__arm_vqmovunbq_s16): Remove.
+ 	(__arm_vqmovuntq_s32): Remove.
+ 	(__arm_vqmovunbq_s32): Remove.
+ 	(__arm_vqmovunbq_m_s16): Remove.
+ 	(__arm_vqmovuntq_m_s16): Remove.
+ 	(__arm_vqmovunbq_m_s32): Remove.
+ 	(__arm_vqmovuntq_m_s32): Remove.
+ 	(__arm_vqmovuntq): Remove.
+ 	(__arm_vqmovunbq): Remove.
+ 	(__arm_vqmovunbq_m): Remove.
+ 	(__arm_vqmovuntq_m): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_MOVN, MVE_MOVN_M): New.
+ 	(mve_insn): Add vmovnb, vmovnt, vqmovnb, vqmovnt, vqmovunb,
+ 	vqmovunt.
+ 	(isu): Likewise.
+ 	(supf): Add VQMOVUNBQ_M_S, VQMOVUNBQ_S, VQMOVUNTQ_M_S,
+ 	VQMOVUNTQ_S.
+ 	* config/arm/mve.md (mve_vmovnbq_<supf><mode>)
+ 	(mve_vmovntq_<supf><mode>, mve_vqmovnbq_<supf><mode>)
+ 	(mve_vqmovntq_<supf><mode>, mve_vqmovunbq_s<mode>)
+ 	(mve_vqmovuntq_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 	(mve_vmovnbq_m_<supf><mode>, mve_vmovntq_m_<supf><mode>)
+ 	(mve_vqmovnbq_m_<supf><mode>, mve_vqmovntq_m_<supf><mode>)
+ 	(mve_vqmovunbq_m_s<mode>, mve_vqmovuntq_m_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_<supf><mode>): ... this.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_move_narrow): New.
+ 	(binary_move_narrow_unsigned): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_move_narrow): New.
+ 	(binary_move_narrow_unsigned): New.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_F): New.
+ 	(vrndaq, vrndmq, vrndnq, vrndpq, vrndq, vrndxq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vrndaq, vrndmq, vrndnq)
+ 	(vrndpq, vrndq, vrndxq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vrndaq, vrndmq, vrndnq)
+ 	(vrndpq, vrndq, vrndxq): New.
+ 	* config/arm/arm_mve.h (vrndxq): Remove.
+ 	(vrndq): Remove.
+ 	(vrndpq): Remove.
+ 	(vrndnq): Remove.
+ 	(vrndmq): Remove.
+ 	(vrndaq): Remove.
+ 	(vrndaq_m): Remove.
+ 	(vrndmq_m): Remove.
+ 	(vrndnq_m): Remove.
+ 	(vrndpq_m): Remove.
+ 	(vrndq_m): Remove.
+ 	(vrndxq_m): Remove.
+ 	(vrndq_x): Remove.
+ 	(vrndnq_x): Remove.
+ 	(vrndmq_x): Remove.
+ 	(vrndpq_x): Remove.
+ 	(vrndaq_x): Remove.
+ 	(vrndxq_x): Remove.
+ 	(vrndxq_f16): Remove.
+ 	(vrndxq_f32): Remove.
+ 	(vrndq_f16): Remove.
+ 	(vrndq_f32): Remove.
+ 	(vrndpq_f16): Remove.
+ 	(vrndpq_f32): Remove.
+ 	(vrndnq_f16): Remove.
+ 	(vrndnq_f32): Remove.
+ 	(vrndmq_f16): Remove.
+ 	(vrndmq_f32): Remove.
+ 	(vrndaq_f16): Remove.
+ 	(vrndaq_f32): Remove.
+ 	(vrndaq_m_f16): Remove.
+ 	(vrndmq_m_f16): Remove.
+ 	(vrndnq_m_f16): Remove.
+ 	(vrndpq_m_f16): Remove.
+ 	(vrndq_m_f16): Remove.
+ 	(vrndxq_m_f16): Remove.
+ 	(vrndaq_m_f32): Remove.
+ 	(vrndmq_m_f32): Remove.
+ 	(vrndnq_m_f32): Remove.
+ 	(vrndpq_m_f32): Remove.
+ 	(vrndq_m_f32): Remove.
+ 	(vrndxq_m_f32): Remove.
+ 	(vrndq_x_f16): Remove.
+ 	(vrndq_x_f32): Remove.
+ 	(vrndnq_x_f16): Remove.
+ 	(vrndnq_x_f32): Remove.
+ 	(vrndmq_x_f16): Remove.
+ 	(vrndmq_x_f32): Remove.
+ 	(vrndpq_x_f16): Remove.
+ 	(vrndpq_x_f32): Remove.
+ 	(vrndaq_x_f16): Remove.
+ 	(vrndaq_x_f32): Remove.
+ 	(vrndxq_x_f16): Remove.
+ 	(vrndxq_x_f32): Remove.
+ 	(__arm_vrndxq_f16): Remove.
+ 	(__arm_vrndxq_f32): Remove.
+ 	(__arm_vrndq_f16): Remove.
+ 	(__arm_vrndq_f32): Remove.
+ 	(__arm_vrndpq_f16): Remove.
+ 	(__arm_vrndpq_f32): Remove.
+ 	(__arm_vrndnq_f16): Remove.
+ 	(__arm_vrndnq_f32): Remove.
+ 	(__arm_vrndmq_f16): Remove.
+ 	(__arm_vrndmq_f32): Remove.
+ 	(__arm_vrndaq_f16): Remove.
+ 	(__arm_vrndaq_f32): Remove.
+ 	(__arm_vrndaq_m_f16): Remove.
+ 	(__arm_vrndmq_m_f16): Remove.
+ 	(__arm_vrndnq_m_f16): Remove.
+ 	(__arm_vrndpq_m_f16): Remove.
+ 	(__arm_vrndq_m_f16): Remove.
+ 	(__arm_vrndxq_m_f16): Remove.
+ 	(__arm_vrndaq_m_f32): Remove.
+ 	(__arm_vrndmq_m_f32): Remove.
+ 	(__arm_vrndnq_m_f32): Remove.
+ 	(__arm_vrndpq_m_f32): Remove.
+ 	(__arm_vrndq_m_f32): Remove.
+ 	(__arm_vrndxq_m_f32): Remove.
+ 	(__arm_vrndq_x_f16): Remove.
+ 	(__arm_vrndq_x_f32): Remove.
+ 	(__arm_vrndnq_x_f16): Remove.
+ 	(__arm_vrndnq_x_f32): Remove.
+ 	(__arm_vrndmq_x_f16): Remove.
+ 	(__arm_vrndmq_x_f32): Remove.
+ 	(__arm_vrndpq_x_f16): Remove.
+ 	(__arm_vrndpq_x_f32): Remove.
+ 	(__arm_vrndaq_x_f16): Remove.
+ 	(__arm_vrndaq_x_f32): Remove.
+ 	(__arm_vrndxq_x_f16): Remove.
+ 	(__arm_vrndxq_x_f32): Remove.
+ 	(__arm_vrndxq): Remove.
+ 	(__arm_vrndq): Remove.
+ 	(__arm_vrndpq): Remove.
+ 	(__arm_vrndnq): Remove.
+ 	(__arm_vrndmq): Remove.
+ 	(__arm_vrndaq): Remove.
+ 	(__arm_vrndaq_m): Remove.
+ 	(__arm_vrndmq_m): Remove.
+ 	(__arm_vrndnq_m): Remove.
+ 	(__arm_vrndpq_m): Remove.
+ 	(__arm_vrndq_m): Remove.
+ 	(__arm_vrndxq_m): Remove.
+ 	(__arm_vrndq_x): Remove.
+ 	(__arm_vrndnq_x): Remove.
+ 	(__arm_vrndmq_x): Remove.
+ 	(__arm_vrndpq_x): Remove.
+ 	(__arm_vrndaq_x): Remove.
+ 	(__arm_vrndxq_x): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N_NO_U_F): New.
+ 	(vabsq, vnegq, vclsq, vclzq, vqabsq, vqnegq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vabsq, vnegq, vclsq)
+ 	(vclzq, vqabsq, vqnegq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vabsq, vnegq, vclsq, vclzq)
+ 	(vqabsq, vqnegq): New.
+ 	* config/arm/arm_mve.h (vabsq): Remove.
+ 	(vabsq_m): Remove.
+ 	(vabsq_x): Remove.
+ 	(vabsq_f16): Remove.
+ 	(vabsq_f32): Remove.
+ 	(vabsq_s8): Remove.
+ 	(vabsq_s16): Remove.
+ 	(vabsq_s32): Remove.
+ 	(vabsq_m_s8): Remove.
+ 	(vabsq_m_s16): Remove.
+ 	(vabsq_m_s32): Remove.
+ 	(vabsq_m_f16): Remove.
+ 	(vabsq_m_f32): Remove.
+ 	(vabsq_x_s8): Remove.
+ 	(vabsq_x_s16): Remove.
+ 	(vabsq_x_s32): Remove.
+ 	(vabsq_x_f16): Remove.
+ 	(vabsq_x_f32): Remove.
+ 	(__arm_vabsq_s8): Remove.
+ 	(__arm_vabsq_s16): Remove.
+ 	(__arm_vabsq_s32): Remove.
+ 	(__arm_vabsq_m_s8): Remove.
+ 	(__arm_vabsq_m_s16): Remove.
+ 	(__arm_vabsq_m_s32): Remove.
+ 	(__arm_vabsq_x_s8): Remove.
+ 	(__arm_vabsq_x_s16): Remove.
+ 	(__arm_vabsq_x_s32): Remove.
+ 	(__arm_vabsq_f16): Remove.
+ 	(__arm_vabsq_f32): Remove.
+ 	(__arm_vabsq_m_f16): Remove.
+ 	(__arm_vabsq_m_f32): Remove.
+ 	(__arm_vabsq_x_f16): Remove.
+ 	(__arm_vabsq_x_f32): Remove.
+ 	(__arm_vabsq): Remove.
+ 	(__arm_vabsq_m): Remove.
+ 	(__arm_vabsq_x): Remove.
+ 	(vnegq): Remove.
+ 	(vnegq_m): Remove.
+ 	(vnegq_x): Remove.
+ 	(vnegq_f16): Remove.
+ 	(vnegq_f32): Remove.
+ 	(vnegq_s8): Remove.
+ 	(vnegq_s16): Remove.
+ 	(vnegq_s32): Remove.
+ 	(vnegq_m_s8): Remove.
+ 	(vnegq_m_s16): Remove.
+ 	(vnegq_m_s32): Remove.
+ 	(vnegq_m_f16): Remove.
+ 	(vnegq_m_f32): Remove.
+ 	(vnegq_x_s8): Remove.
+ 	(vnegq_x_s16): Remove.
+ 	(vnegq_x_s32): Remove.
+ 	(vnegq_x_f16): Remove.
+ 	(vnegq_x_f32): Remove.
+ 	(__arm_vnegq_s8): Remove.
+ 	(__arm_vnegq_s16): Remove.
+ 	(__arm_vnegq_s32): Remove.
+ 	(__arm_vnegq_m_s8): Remove.
+ 	(__arm_vnegq_m_s16): Remove.
+ 	(__arm_vnegq_m_s32): Remove.
+ 	(__arm_vnegq_x_s8): Remove.
+ 	(__arm_vnegq_x_s16): Remove.
+ 	(__arm_vnegq_x_s32): Remove.
+ 	(__arm_vnegq_f16): Remove.
+ 	(__arm_vnegq_f32): Remove.
+ 	(__arm_vnegq_m_f16): Remove.
+ 	(__arm_vnegq_m_f32): Remove.
+ 	(__arm_vnegq_x_f16): Remove.
+ 	(__arm_vnegq_x_f32): Remove.
+ 	(__arm_vnegq): Remove.
+ 	(__arm_vnegq_m): Remove.
+ 	(__arm_vnegq_x): Remove.
+ 	(vclsq): Remove.
+ 	(vclsq_m): Remove.
+ 	(vclsq_x): Remove.
+ 	(vclsq_s8): Remove.
+ 	(vclsq_s16): Remove.
+ 	(vclsq_s32): Remove.
+ 	(vclsq_m_s8): Remove.
+ 	(vclsq_m_s16): Remove.
+ 	(vclsq_m_s32): Remove.
+ 	(vclsq_x_s8): Remove.
+ 	(vclsq_x_s16): Remove.
+ 	(vclsq_x_s32): Remove.
+ 	(__arm_vclsq_s8): Remove.
+ 	(__arm_vclsq_s16): Remove.
+ 	(__arm_vclsq_s32): Remove.
+ 	(__arm_vclsq_m_s8): Remove.
+ 	(__arm_vclsq_m_s16): Remove.
+ 	(__arm_vclsq_m_s32): Remove.
+ 	(__arm_vclsq_x_s8): Remove.
+ 	(__arm_vclsq_x_s16): Remove.
+ 	(__arm_vclsq_x_s32): Remove.
+ 	(__arm_vclsq): Remove.
+ 	(__arm_vclsq_m): Remove.
+ 	(__arm_vclsq_x): Remove.
+ 	(vclzq): Remove.
+ 	(vclzq_m): Remove.
+ 	(vclzq_x): Remove.
+ 	(vclzq_s8): Remove.
+ 	(vclzq_s16): Remove.
+ 	(vclzq_s32): Remove.
+ 	(vclzq_u8): Remove.
+ 	(vclzq_u16): Remove.
+ 	(vclzq_u32): Remove.
+ 	(vclzq_m_u8): Remove.
+ 	(vclzq_m_s8): Remove.
+ 	(vclzq_m_u16): Remove.
+ 	(vclzq_m_s16): Remove.
+ 	(vclzq_m_u32): Remove.
+ 	(vclzq_m_s32): Remove.
+ 	(vclzq_x_s8): Remove.
+ 	(vclzq_x_s16): Remove.
+ 	(vclzq_x_s32): Remove.
+ 	(vclzq_x_u8): Remove.
+ 	(vclzq_x_u16): Remove.
+ 	(vclzq_x_u32): Remove.
+ 	(__arm_vclzq_s8): Remove.
+ 	(__arm_vclzq_s16): Remove.
+ 	(__arm_vclzq_s32): Remove.
+ 	(__arm_vclzq_u8): Remove.
+ 	(__arm_vclzq_u16): Remove.
+ 	(__arm_vclzq_u32): Remove.
+ 	(__arm_vclzq_m_u8): Remove.
+ 	(__arm_vclzq_m_s8): Remove.
+ 	(__arm_vclzq_m_u16): Remove.
+ 	(__arm_vclzq_m_s16): Remove.
+ 	(__arm_vclzq_m_u32): Remove.
+ 	(__arm_vclzq_m_s32): Remove.
+ 	(__arm_vclzq_x_s8): Remove.
+ 	(__arm_vclzq_x_s16): Remove.
+ 	(__arm_vclzq_x_s32): Remove.
+ 	(__arm_vclzq_x_u8): Remove.
+ 	(__arm_vclzq_x_u16): Remove.
+ 	(__arm_vclzq_x_u32): Remove.
+ 	(__arm_vclzq): Remove.
+ 	(__arm_vclzq_m): Remove.
+ 	(__arm_vclzq_x): Remove.
+ 	(vqabsq): Remove.
+ 	(vqnegq): Remove.
+ 	(vqnegq_m): Remove.
+ 	(vqabsq_m): Remove.
+ 	(vqabsq_s8): Remove.
+ 	(vqabsq_s16): Remove.
+ 	(vqabsq_s32): Remove.
+ 	(vqnegq_s8): Remove.
+ 	(vqnegq_s16): Remove.
+ 	(vqnegq_s32): Remove.
+ 	(vqnegq_m_s8): Remove.
+ 	(vqabsq_m_s8): Remove.
+ 	(vqnegq_m_s16): Remove.
+ 	(vqabsq_m_s16): Remove.
+ 	(vqnegq_m_s32): Remove.
+ 	(vqabsq_m_s32): Remove.
+ 	(__arm_vqabsq_s8): Remove.
+ 	(__arm_vqabsq_s16): Remove.
+ 	(__arm_vqabsq_s32): Remove.
+ 	(__arm_vqnegq_s8): Remove.
+ 	(__arm_vqnegq_s16): Remove.
+ 	(__arm_vqnegq_s32): Remove.
+ 	(__arm_vqnegq_m_s8): Remove.
+ 	(__arm_vqabsq_m_s8): Remove.
+ 	(__arm_vqnegq_m_s16): Remove.
+ 	(__arm_vqabsq_m_s16): Remove.
+ 	(__arm_vqnegq_m_s32): Remove.
+ 	(__arm_vqabsq_m_s32): Remove.
+ 	(__arm_vqabsq): Remove.
+ 	(__arm_vqnegq): Remove.
+ 	(__arm_vqnegq_m): Remove.
+ 	(__arm_vqabsq_m): Remove.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_INT_M_UNARY, MVE_INT_UNARY)
+ 	(MVE_FP_UNARY, MVE_FP_M_UNARY): New.
+ 	(mve_insn): Add vabs, vcls, vclz, vneg, vqabs, vqneg, vrnda,
+ 	vrndm, vrndn, vrndp, vrnd, vrndx.
+ 	(isu): Add VABSQ_M_S, VCLSQ_M_S, VCLZQ_M_S, VCLZQ_M_U, VNEGQ_M_S,
+ 	VQABSQ_M_S, VQNEGQ_M_S.
+ 	(mve_mnemo): New.
+ 	* config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrndxq_f<mode>)
+ 	(mve_vrndq_f<mode>, mve_vrndpq_f<mode>, mve_vrndnq_f<mode>)
+ 	(mve_vrndmq_f<mode>, mve_vrndaq_f<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_f<mode>): ... this.
+ 	(mve_vnegq_f<mode>, mve_vabsq_f<mode>): Merge into ...
+ 	(mve_v<absneg_str>q_f<mode>): ... this.
+ 	(mve_vnegq_s<mode>, mve_vabsq_s<mode>): Merge into ...
+ 	(mve_v<absneg_str>q_s<mode>): ... this.
+ 	(mve_vclsq_s<mode>, mve_vqnegq_s<mode>, mve_vqabsq_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 	(mve_vabsq_m_s<mode>, mve_vclsq_m_s<mode>)
+ 	(mve_vclzq_m_<supf><mode>, mve_vnegq_m_s<mode>)
+ 	(mve_vqabsq_m_s<mode>, mve_vqnegq_m_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_<supf><mode>): ... this.
+ 	(mve_vabsq_m_f<mode>, mve_vnegq_m_f<mode>, mve_vrndaq_m_f<mode>)
+ 	(mve_vrndmq_m_f<mode>, mve_vrndnq_m_f<mode>, mve_vrndpq_m_f<mode>)
+ 	(mve_vrndxq_m_f<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_f<mode>): ... this.
+ 
+ 2023-05-09  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (unary): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (unary): New.
+ 
+ 2023-05-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* mux-utils.h: Fix comment typo, avoides -> avoids.
+ 
+ 2023-05-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109778
+ 	* wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on
+ 	wi::zext (x, width) rather than x if width != precision, rather
+ 	than using wi::zext (right, width) after the shift.
+ 	* tree-ssa-ccp.cc (bit_value_binop): Call wi::ext on the results
+ 	of wi::lrotate or wi::rrotate.
+ 
+ 2023-05-09  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* genmatch.cc (get_out_file): Make static and rename to ...
+ 	(choose_output): ... this. Reimplement. Update all uses ...
+ 	(decision_tree::gen): ... here and ...
+ 	(main): ... here.
+ 
+ 2023-05-09  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* genmatch.cc (showUsage): Reimplement as ...
+ 	(usage): ...this.  Adjust all uses.
+ 	(main): Print usage when no arguments.  Add missing 'return 1'.
+ 
+ 2023-05-09  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* genmatch.cc (header_file): Make static.
+ 	(emit_func): Rename to...
+ 	(fp_decl): ... this.  Adjust all uses.
+ 	(fp_decl_done): New function.  Use it...
+ 	(decision_tree::gen): ... here and...
+ 	(write_predicate): ... here.
+ 	(main): Adjust.
+ 
+ 2023-05-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* ira-conflicts.cc (can_use_same_reg_p): Skip over non-matching
+ 	earlyclobbers.
+ 
+ 2023-05-08  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (any_or_plus): Move definition earlier.
+ 	(*insvti_highpart_1): New define_insn_and_split to overwrite
+ 	(insv) the highpart of a TImode register/memory.
+ 
+ 2023-05-08  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	* auto-profile.cc (auto_profile): Check todo from early_inline
+ 	to see if cleanup_tree_vfg needs to be called.
+ 	(early_inline): Return todo from early_inliner.
+ 
+ 2023-05-08  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vector_info):
+ 	New.
+ 	(pass_vsetvl::get_block_info): New.
+ 	(pass_vsetvl::update_vector_info): New.
+ 	(pass_vsetvl::simple_vsetvl): Use get_vector_info.
+ 	(pass_vsetvl::compute_local_backward_infos): Ditto.
+ 	(pass_vsetvl::transfer_before): Ditto.
+ 	(pass_vsetvl::transfer_after): Ditto.
+ 	(pass_vsetvl::emit_local_forward_vsetvls): Ditto.
+ 	(pass_vsetvl::local_eliminate_vsetvl_insn): Ditto.
+ 	(pass_vsetvl::cleanup_insns): Ditto.
+ 	(pass_vsetvl::compute_local_backward_infos): Use
+ 	update_vector_info.
+ 
+ 2023-05-08  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	* config/stormy16/stormy16.md (zero_extendhisi2): Fix length.
+ 
+ 2023-05-08  Richard Biener  <rguenther@suse.de>
+ 	    Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR middle-end/108623
+ 	* tree-core.h (tree_type_common): Bump up precision field to 16 bits.
+ 	Align bit fields > 1 bit to at least an 8-bit boundary.
+ 
+ 2023-05-08  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109424
+ 	PR tree-optimization/59424
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_conversion): Rename to ...
+ 	(factor_out_conditional_operation): This and add support for all unary
+ 	operations.
+ 	(pass_phiopt::execute): Update call to factor_out_conditional_conversion
+ 	to call factor_out_conditional_operation instead.
+ 
+ 2023-05-08  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (pass_phiopt::execute): Loop
+ 	over factor_out_conditional_conversion.
+ 
+ 2023-05-08  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/49959
+ 	PR tree-optimization/103771
+ 	* tree-ssa-phiopt.cc (pass_phiopt::execute): Support
+ 	Diamond shapped bb form for factor_out_conditional_conversion.
+ 
+ 2023-05-08  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/autovec.md (movmisalign<mode>): New pattern.
+ 	* config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): Delete.
+ 	(riscv_vector_get_mask_mode): Ditto.
+ 	(get_mask_policy_no_pred): Ditto.
+ 	(get_tail_policy_no_pred): Ditto.
+ 	(get_mask_mode): New function.
+ 	* config/riscv/riscv-v.cc (get_mask_policy_no_pred): Delete.
+ 	(get_tail_policy_no_pred): Ditto.
+ 	(riscv_vector_mask_mode_p): Ditto.
+ 	(riscv_vector_get_mask_mode): Ditto.
+ 	(get_mask_mode): New function.
+ 	* config/riscv/riscv-vector-builtins.cc (use_real_merge_p): Remove
+ 	global extern.
+ 	(get_tail_policy_for_pred): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred): Ditto.
+ 	(get_mask_policy_for_pred): Ditto
+ 	* config/riscv/riscv.cc (riscv_get_mask_mode): Refine codes.
+ 
+ 2023-05-08  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi): New.
+ 	(riscv_select_multilib): New.
+ 	(riscv_compute_multilib): Extract logic to riscv_select_multilib and
+ 	also handle select_by_abi.
+ 	* config/riscv/elf.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Change it
+ 	to select_by_abi_arch_cmodel from 1.
+ 	* config/riscv/linux.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Define.
+ 	* config/riscv/riscv-opts.h (enum riscv_multilib_select_kind): New.
+ 
+ 2023-05-08  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* Makefile.in: (gimple-match-head.o-warn): Remove.
+ 	(GIMPLE_MATCH_PD_SEQ_SRC): Do not depend on
+ 	gimple-match-exports.cc.
+ 	(gimple-match-auto.h): Only depend on s-gimple-match.
+ 	(generic-match-auto.h): Likewise.
+ 
+ 2023-05-08  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109691
+ 	* tree-ssa-dce.cc (simple_dce_from_worklist): Add need_eh_cleanup
+ 	argument.
+ 	If the removed statement can throw, have need_eh_cleanup
+ 	include the bb of that statement.
+ 	* tree-ssa-dce.h (simple_dce_from_worklist): Update declaration.
+ 	* tree-ssa-propagate.cc (struct prop_stats_d): Remove
+ 	num_dce.
+ 	(substitute_and_fold_dom_walker::substitute_and_fold_dom_walker):
+ 	Initialize dceworklist instead of stmts_to_remove.
+ 	(substitute_and_fold_dom_walker::~substitute_and_fold_dom_walker):
+ 	Destore dceworklist instead of stmts_to_remove.
+ 	(substitute_and_fold_dom_walker::before_dom_children):
+ 	Set dceworklist instead of adding to stmts_to_remove.
+ 	(substitute_and_fold_engine::substitute_and_fold):
+ 	Call simple_dce_from_worklist instead of poping
+ 	from the list.
+ 	Don't update the stat on removal statements.
+ 
+ 2023-05-07  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR target/109762
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_simd_switcher::aarch64_simd_switcher):
+ 	Change argument type to aarch64_feature_flags.
+ 	* config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Change
+ 	constructor argument type to aarch64_feature_flags.
+ 	Change m_old_asm_isa_flags to be aarch64_feature_flags.
+ 
+ 2023-05-07  Jiufu Guo  <guojiufu@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Generate
+ 	more parallel code if can_create_pseudo_p.
+ 
+ 2023-05-07  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/43644
+ 	* lower-subreg.cc (resolve_simple_move): Don't emit a clobber
+ 	immediately before moving a multi-word register by parts.
+ 
+ 2023-05-06  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	* config/riscv/riscv-v.cc (riscv_vector_preferred_simd_mode): Delete.
+ 
+ 2023-05-06  Michael Collison  <collison@rivosinc.com>
+ 
+ 	* tree-vect-slp.cc (can_duplicate_and_interleave_p):
+ 	Check that GET_MODE_NUNITS is a multiple of 2.
+ 
+ 2023-05-06  Michael Collison  <collison@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc
+ 	(riscv_estimated_poly_value): Implement
+ 	TARGET_ESTIMATED_POLY_VALUE.
+ 	(riscv_preferred_simd_mode): Implement
+ 	TARGET_VECTORIZE_PREFERRED_SIMD_MODE.
+ 	(riscv_get_mask_mode): Implement TARGET_VECTORIZE_GET_MASK_MODE.
+ 	(riscv_empty_mask_is_expensive): Implement
+ 	TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE.
+ 	(riscv_vectorize_create_costs): Implement
+ 	TARGET_VECTORIZE_CREATE_COSTS.
+ 	(riscv_support_vector_misalignment): Implement
+ 	TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT.
+ 	(TARGET_ESTIMATED_POLY_VALUE): Register target macro.
+ 	(TARGET_VECTORIZE_GET_MASK_MODE): Ditto.
+ 	(TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Ditto.
+ 	(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Ditto.
+ 
+ 2023-05-06  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	* config/riscv/riscv-v.cc (autovec_use_vlmax_p): Remove
+ 	duplicate definition.
+ 
+ 2023-05-06  Michael Collison  <collison@rivosinc.com>
+ 
+ 	* config/riscv/riscv-v.cc (autovec_use_vlmax_p): New function.
+ 	(riscv_vector_preferred_simd_mode): Ditto.
+ 	(get_mask_policy_no_pred): Ditto.
+ 	(get_tail_policy_no_pred): Ditto.
+ 	(riscv_vector_mask_mode_p): Ditto.
+ 	(riscv_vector_get_mask_mode): Ditto.
+ 
+ 2023-05-06  Michael Collison  <collison@rivosinc.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc (get_tail_policy_for_pred):
+ 	Remove static declaration to to make externally visible.
+ 	(get_mask_policy_for_pred): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred):
+ 	New external declaration.
+ 	(get_mask_policy_for_pred): Ditto.
+ 
+ 2023-05-06  Michael Collison  <collison@rivosinc.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): New.
+ 	(riscv_vector_get_mask_mode): Ditto.
+ 	(get_mask_policy_no_pred): Ditto.
+ 	(get_tail_policy_no_pred): Ditto.
+ 
+ 2023-05-06  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.h (struct machine_function): Add
+ 	reg_is_wrapped_separately array for register wrapping
+ 	information.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_get_separate_components): New function.
+ 	(loongarch_components_for_bb): Likewise.
+ 	(loongarch_disqualify_components): Likewise.
+ 	(loongarch_process_components): Likewise.
+ 	(loongarch_emit_prologue_components): Likewise.
+ 	(loongarch_emit_epilogue_components): Likewise.
+ 	(loongarch_set_handled_components): Likewise.
+ 	(TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
+ 	(TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
+ 	(TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
+ 	(TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
+ 	(TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
+ 	(TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
+ 	(loongarch_for_each_saved_reg): Skip registers that are wrapped
+ 	separately.
+ 
+ 2023-05-06  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR other/109522
+ 	* Makefile.in (s-macro_list): Pass -nostdinc to
+ 	$(GCC_FOR_TARGET).
+ 
+ 2023-05-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (preferred_simd_mode): New function.
+ 	* config/riscv/riscv-v.cc (autovec_use_vlmax_p): Ditto.
+ 	(preferred_simd_mode): Ditto.
+ 	* config/riscv/riscv.cc (riscv_get_arg_info): Handle RVV type in function arg.
+ 	(riscv_convert_vector_bits): Adjust for RVV auto-vectorization.
+ 	(riscv_preferred_simd_mode): New function.
+ 	(TARGET_VECTORIZE_PREFERRED_SIMD_MODE): New target hook support.
+ 	* config/riscv/vector.md: Add autovec.md.
+ 	* config/riscv/autovec.md: New file.
+ 
+ 2023-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* real.h (dconst_pi): Define.
+ 	(dconst_e_ptr): Formatting fix.
+ 	(dconst_pi_ptr): Declare.
+ 	* real.cc (dconst_pi_ptr): New function.
+ 	* gimple-range-op.cc (cfn_sincos::fold_range): Intersect the generic
+ 	boundaries range with range computed from sin/cos of the particular
+ 	bounds if the argument range is shorter than 2*pi.
+ 	(cfn_sincos::op1_range): Take bulps into account when determining
+ 	which result ranges are always invalid or behave like known NAN.
+ 
+ 2023-05-06  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-cache.cc (sbr_sparse_bitmap::set_bb_range): Do not
+ 	pass type to vrange_storage::equal_p.
+ 	* value-range-storage.cc (vrange_storage::equal_p): Remove type.
+ 	(irange_storage::equal_p): Same.
+ 	(frange_storage::equal_p): Same.
+ 	* value-range-storage.h (class frange_storage): Same.
+ 
+ 2023-05-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109748
+ 	* config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): Remove it.
+ 	(pass_vsetvl::local_eliminate_vsetvl_insn): New function.
+ 
+ 2023-05-06  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* combine.cc (maybe_swap_commutative_operands): Canonicalize
+ 	vec_merge when mask is constant.
+ 	* doc/md.texi: Document vec_merge canonicalization.
+ 
+ 2023-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* value-range.h (frange_arithmetic): Declare.
+ 	* range-op-float.cc (frange_arithmetic): No longer static.
+ 	* gimple-range-op.cc (frange_mpfr_arg1): New function.
+ 	(cfn_sqrt::fold_range): Intersect the generic boundaries range
+ 	with range computed from sqrt of the particular bounds.
+ 	(cfn_sqrt::op1_range): Intersect the generic boundaries range
+ 	with range computed from squared particular bounds.
+ 
+ 2023-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* Makefile.in (check_p_numbers): Rename to one_to_9999, move
+ 	earlier with helper variables also renamed.
+ 	(MATCH_SPLUT_SEQ): Use $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999))
+ 	instead of $(shell seq 1 $(NUM_MATCH_SPLITS)).
+ 	(check_p_subdirs): Use $(one_to_9999) instead of $(check_p_numbers).
+ 
+ 2023-05-06  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md (splitop): Add PLUS.
+ 	* config/cris/cris.cc (cris_split_constant): Also handle
+ 	PLUS when a split into two insns may be useful.
+ 
+ 2023-05-05  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md (movandsplit1): New define_peephole2.
+ 
+ 2023-05-05  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md (lsrandsplit1): New define_peephole2.
+ 
+ 2023-05-05  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* doc/md.texi (define_peephole2): Document order of scanning.
+ 
+ 2023-05-05  Pan Li  <pan2.li@intel.com>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Allow const as the operand of RVV
+ 	indexed load/store.
+ 
+ 2023-05-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.h (VECTOR_STORE_FLAG_VALUE): Add new macro
+ 	consumed by simplify_rtx.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vrshrq, vshrq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vrshrq, vshrq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vrshrq, vshrq): New.
+ 	* config/arm/arm_mve.h (vshrq): Remove.
+ 	(vrshrq): Remove.
+ 	(vrshrq_m): Remove.
+ 	(vshrq_m): Remove.
+ 	(vrshrq_x): Remove.
+ 	(vshrq_x): Remove.
+ 	(vshrq_n_s8): Remove.
+ 	(vshrq_n_s16): Remove.
+ 	(vshrq_n_s32): Remove.
+ 	(vshrq_n_u8): Remove.
+ 	(vshrq_n_u16): Remove.
+ 	(vshrq_n_u32): Remove.
+ 	(vrshrq_n_u8): Remove.
+ 	(vrshrq_n_s8): Remove.
+ 	(vrshrq_n_u16): Remove.
+ 	(vrshrq_n_s16): Remove.
+ 	(vrshrq_n_u32): Remove.
+ 	(vrshrq_n_s32): Remove.
+ 	(vrshrq_m_n_s8): Remove.
+ 	(vrshrq_m_n_s32): Remove.
+ 	(vrshrq_m_n_s16): Remove.
+ 	(vrshrq_m_n_u8): Remove.
+ 	(vrshrq_m_n_u32): Remove.
+ 	(vrshrq_m_n_u16): Remove.
+ 	(vshrq_m_n_s8): Remove.
+ 	(vshrq_m_n_s32): Remove.
+ 	(vshrq_m_n_s16): Remove.
+ 	(vshrq_m_n_u8): Remove.
+ 	(vshrq_m_n_u32): Remove.
+ 	(vshrq_m_n_u16): Remove.
+ 	(vrshrq_x_n_s8): Remove.
+ 	(vrshrq_x_n_s16): Remove.
+ 	(vrshrq_x_n_s32): Remove.
+ 	(vrshrq_x_n_u8): Remove.
+ 	(vrshrq_x_n_u16): Remove.
+ 	(vrshrq_x_n_u32): Remove.
+ 	(vshrq_x_n_s8): Remove.
+ 	(vshrq_x_n_s16): Remove.
+ 	(vshrq_x_n_s32): Remove.
+ 	(vshrq_x_n_u8): Remove.
+ 	(vshrq_x_n_u16): Remove.
+ 	(vshrq_x_n_u32): Remove.
+ 	(__arm_vshrq_n_s8): Remove.
+ 	(__arm_vshrq_n_s16): Remove.
+ 	(__arm_vshrq_n_s32): Remove.
+ 	(__arm_vshrq_n_u8): Remove.
+ 	(__arm_vshrq_n_u16): Remove.
+ 	(__arm_vshrq_n_u32): Remove.
+ 	(__arm_vrshrq_n_u8): Remove.
+ 	(__arm_vrshrq_n_s8): Remove.
+ 	(__arm_vrshrq_n_u16): Remove.
+ 	(__arm_vrshrq_n_s16): Remove.
+ 	(__arm_vrshrq_n_u32): Remove.
+ 	(__arm_vrshrq_n_s32): Remove.
+ 	(__arm_vrshrq_m_n_s8): Remove.
+ 	(__arm_vrshrq_m_n_s32): Remove.
+ 	(__arm_vrshrq_m_n_s16): Remove.
+ 	(__arm_vrshrq_m_n_u8): Remove.
+ 	(__arm_vrshrq_m_n_u32): Remove.
+ 	(__arm_vrshrq_m_n_u16): Remove.
+ 	(__arm_vshrq_m_n_s8): Remove.
+ 	(__arm_vshrq_m_n_s32): Remove.
+ 	(__arm_vshrq_m_n_s16): Remove.
+ 	(__arm_vshrq_m_n_u8): Remove.
+ 	(__arm_vshrq_m_n_u32): Remove.
+ 	(__arm_vshrq_m_n_u16): Remove.
+ 	(__arm_vrshrq_x_n_s8): Remove.
+ 	(__arm_vrshrq_x_n_s16): Remove.
+ 	(__arm_vrshrq_x_n_s32): Remove.
+ 	(__arm_vrshrq_x_n_u8): Remove.
+ 	(__arm_vrshrq_x_n_u16): Remove.
+ 	(__arm_vrshrq_x_n_u32): Remove.
+ 	(__arm_vshrq_x_n_s8): Remove.
+ 	(__arm_vshrq_x_n_s16): Remove.
+ 	(__arm_vshrq_x_n_s32): Remove.
+ 	(__arm_vshrq_x_n_u8): Remove.
+ 	(__arm_vshrq_x_n_u16): Remove.
+ 	(__arm_vshrq_x_n_u32): Remove.
+ 	(__arm_vshrq): Remove.
+ 	(__arm_vrshrq): Remove.
+ 	(__arm_vrshrq_m): Remove.
+ 	(__arm_vshrq_m): Remove.
+ 	(__arm_vrshrq_x): Remove.
+ 	(__arm_vshrq_x): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_VSHRQ_M_N, MVE_VSHRQ_N): New.
+ 	(mve_insn): Add vrshr, vshr.
+ 	* config/arm/mve.md (mve_vshrq_n_<supf><mode>)
+ 	(mve_vrshrq_n_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vrshrq_m_n_<supf><mode>, mve_vshrq_m_n_<supf><mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_rshift): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_rshift): New.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_U_F): New.
+ 	(vqshrunbq, vqshruntq, vqrshrunbq, vqrshruntq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vqshrunbq, vqshruntq)
+ 	(vqrshrunbq, vqrshruntq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vqshrunbq, vqshruntq)
+ 	(vqrshrunbq, vqrshruntq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vqshrunbq,
+ 	vqshruntq, vqrshrunbq, vqrshruntq.
+ 	* config/arm/arm_mve.h (vqrshrunbq): Remove.
+ 	(vqrshruntq): Remove.
+ 	(vqrshrunbq_m): Remove.
+ 	(vqrshruntq_m): Remove.
+ 	(vqrshrunbq_n_s16): Remove.
+ 	(vqrshrunbq_n_s32): Remove.
+ 	(vqrshruntq_n_s16): Remove.
+ 	(vqrshruntq_n_s32): Remove.
+ 	(vqrshrunbq_m_n_s32): Remove.
+ 	(vqrshrunbq_m_n_s16): Remove.
+ 	(vqrshruntq_m_n_s32): Remove.
+ 	(vqrshruntq_m_n_s16): Remove.
+ 	(__arm_vqrshrunbq_n_s16): Remove.
+ 	(__arm_vqrshrunbq_n_s32): Remove.
+ 	(__arm_vqrshruntq_n_s16): Remove.
+ 	(__arm_vqrshruntq_n_s32): Remove.
+ 	(__arm_vqrshrunbq_m_n_s32): Remove.
+ 	(__arm_vqrshrunbq_m_n_s16): Remove.
+ 	(__arm_vqrshruntq_m_n_s32): Remove.
+ 	(__arm_vqrshruntq_m_n_s16): Remove.
+ 	(__arm_vqrshrunbq): Remove.
+ 	(__arm_vqrshruntq): Remove.
+ 	(__arm_vqrshrunbq_m): Remove.
+ 	(__arm_vqrshruntq_m): Remove.
+ 	(vqshrunbq): Remove.
+ 	(vqshruntq): Remove.
+ 	(vqshrunbq_m): Remove.
+ 	(vqshruntq_m): Remove.
+ 	(vqshrunbq_n_s16): Remove.
+ 	(vqshruntq_n_s16): Remove.
+ 	(vqshrunbq_n_s32): Remove.
+ 	(vqshruntq_n_s32): Remove.
+ 	(vqshrunbq_m_n_s32): Remove.
+ 	(vqshrunbq_m_n_s16): Remove.
+ 	(vqshruntq_m_n_s32): Remove.
+ 	(vqshruntq_m_n_s16): Remove.
+ 	(__arm_vqshrunbq_n_s16): Remove.
+ 	(__arm_vqshruntq_n_s16): Remove.
+ 	(__arm_vqshrunbq_n_s32): Remove.
+ 	(__arm_vqshruntq_n_s32): Remove.
+ 	(__arm_vqshrunbq_m_n_s32): Remove.
+ 	(__arm_vqshrunbq_m_n_s16): Remove.
+ 	(__arm_vqshruntq_m_n_s32): Remove.
+ 	(__arm_vqshruntq_m_n_s16): Remove.
+ 	(__arm_vqshrunbq): Remove.
+ 	(__arm_vqshruntq): Remove.
+ 	(__arm_vqshrunbq_m): Remove.
+ 	(__arm_vqshruntq_m): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_SHRN_N): Add VQRSHRUNBQ,
+ 	VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
+ 	(MVE_SHRN_M_N): Likewise.
+ 	(mve_insn): Add vqrshrunb, vqrshrunt, vqshrunb, vqshrunt.
+ 	(isu): Add VQRSHRUNBQ, VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
+ 	(supf): Likewise.
+ 	* config/arm/mve.md (mve_vqrshrunbq_n_s<mode>): Remove.
+ 	(mve_vqrshruntq_n_s<mode>): Remove.
+ 	(mve_vqshrunbq_n_s<mode>): Remove.
+ 	(mve_vqshruntq_n_s<mode>): Remove.
+ 	(mve_vqrshrunbq_m_n_s<mode>): Remove.
+ 	(mve_vqrshruntq_m_n_s<mode>): Remove.
+ 	(mve_vqshrunbq_m_n_s<mode>): Remove.
+ 	(mve_vqshruntq_m_n_s<mode>): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc
+ 	(binary_rshift_narrow_unsigned): New.
+ 	* config/arm/arm-mve-builtins-shapes.h
+ 	(binary_rshift_narrow_unsigned): New.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_F): New.
+ 	(vshrnbq, vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq)
+ 	(vqrshrnbq, vqrshrntq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vshrnbq, vshrntq)
+ 	(vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq):
+ 	New.
+ 	* config/arm/arm-mve-builtins-base.h (vshrnbq, vshrntq, vrshrnbq)
+ 	(vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vshrnbq,
+ 	vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq,
+ 	vqrshrntq.
+ 	* config/arm/arm_mve.h (vshrnbq): Remove.
+ 	(vshrntq): Remove.
+ 	(vshrnbq_m): Remove.
+ 	(vshrntq_m): Remove.
+ 	(vshrnbq_n_s16): Remove.
+ 	(vshrntq_n_s16): Remove.
+ 	(vshrnbq_n_u16): Remove.
+ 	(vshrntq_n_u16): Remove.
+ 	(vshrnbq_n_s32): Remove.
+ 	(vshrntq_n_s32): Remove.
+ 	(vshrnbq_n_u32): Remove.
+ 	(vshrntq_n_u32): Remove.
+ 	(vshrnbq_m_n_s32): Remove.
+ 	(vshrnbq_m_n_s16): Remove.
+ 	(vshrnbq_m_n_u32): Remove.
+ 	(vshrnbq_m_n_u16): Remove.
+ 	(vshrntq_m_n_s32): Remove.
+ 	(vshrntq_m_n_s16): Remove.
+ 	(vshrntq_m_n_u32): Remove.
+ 	(vshrntq_m_n_u16): Remove.
+ 	(__arm_vshrnbq_n_s16): Remove.
+ 	(__arm_vshrntq_n_s16): Remove.
+ 	(__arm_vshrnbq_n_u16): Remove.
+ 	(__arm_vshrntq_n_u16): Remove.
+ 	(__arm_vshrnbq_n_s32): Remove.
+ 	(__arm_vshrntq_n_s32): Remove.
+ 	(__arm_vshrnbq_n_u32): Remove.
+ 	(__arm_vshrntq_n_u32): Remove.
+ 	(__arm_vshrnbq_m_n_s32): Remove.
+ 	(__arm_vshrnbq_m_n_s16): Remove.
+ 	(__arm_vshrnbq_m_n_u32): Remove.
+ 	(__arm_vshrnbq_m_n_u16): Remove.
+ 	(__arm_vshrntq_m_n_s32): Remove.
+ 	(__arm_vshrntq_m_n_s16): Remove.
+ 	(__arm_vshrntq_m_n_u32): Remove.
+ 	(__arm_vshrntq_m_n_u16): Remove.
+ 	(__arm_vshrnbq): Remove.
+ 	(__arm_vshrntq): Remove.
+ 	(__arm_vshrnbq_m): Remove.
+ 	(__arm_vshrntq_m): Remove.
+ 	(vrshrnbq): Remove.
+ 	(vrshrntq): Remove.
+ 	(vrshrnbq_m): Remove.
+ 	(vrshrntq_m): Remove.
+ 	(vrshrnbq_n_s16): Remove.
+ 	(vrshrntq_n_s16): Remove.
+ 	(vrshrnbq_n_u16): Remove.
+ 	(vrshrntq_n_u16): Remove.
+ 	(vrshrnbq_n_s32): Remove.
+ 	(vrshrntq_n_s32): Remove.
+ 	(vrshrnbq_n_u32): Remove.
+ 	(vrshrntq_n_u32): Remove.
+ 	(vrshrnbq_m_n_s32): Remove.
+ 	(vrshrnbq_m_n_s16): Remove.
+ 	(vrshrnbq_m_n_u32): Remove.
+ 	(vrshrnbq_m_n_u16): Remove.
+ 	(vrshrntq_m_n_s32): Remove.
+ 	(vrshrntq_m_n_s16): Remove.
+ 	(vrshrntq_m_n_u32): Remove.
+ 	(vrshrntq_m_n_u16): Remove.
+ 	(__arm_vrshrnbq_n_s16): Remove.
+ 	(__arm_vrshrntq_n_s16): Remove.
+ 	(__arm_vrshrnbq_n_u16): Remove.
+ 	(__arm_vrshrntq_n_u16): Remove.
+ 	(__arm_vrshrnbq_n_s32): Remove.
+ 	(__arm_vrshrntq_n_s32): Remove.
+ 	(__arm_vrshrnbq_n_u32): Remove.
+ 	(__arm_vrshrntq_n_u32): Remove.
+ 	(__arm_vrshrnbq_m_n_s32): Remove.
+ 	(__arm_vrshrnbq_m_n_s16): Remove.
+ 	(__arm_vrshrnbq_m_n_u32): Remove.
+ 	(__arm_vrshrnbq_m_n_u16): Remove.
+ 	(__arm_vrshrntq_m_n_s32): Remove.
+ 	(__arm_vrshrntq_m_n_s16): Remove.
+ 	(__arm_vrshrntq_m_n_u32): Remove.
+ 	(__arm_vrshrntq_m_n_u16): Remove.
+ 	(__arm_vrshrnbq): Remove.
+ 	(__arm_vrshrntq): Remove.
+ 	(__arm_vrshrnbq_m): Remove.
+ 	(__arm_vrshrntq_m): Remove.
+ 	(vqshrnbq): Remove.
+ 	(vqshrntq): Remove.
+ 	(vqshrnbq_m): Remove.
+ 	(vqshrntq_m): Remove.
+ 	(vqshrnbq_n_s16): Remove.
+ 	(vqshrntq_n_s16): Remove.
+ 	(vqshrnbq_n_u16): Remove.
+ 	(vqshrntq_n_u16): Remove.
+ 	(vqshrnbq_n_s32): Remove.
+ 	(vqshrntq_n_s32): Remove.
+ 	(vqshrnbq_n_u32): Remove.
+ 	(vqshrntq_n_u32): Remove.
+ 	(vqshrnbq_m_n_s32): Remove.
+ 	(vqshrnbq_m_n_s16): Remove.
+ 	(vqshrnbq_m_n_u32): Remove.
+ 	(vqshrnbq_m_n_u16): Remove.
+ 	(vqshrntq_m_n_s32): Remove.
+ 	(vqshrntq_m_n_s16): Remove.
+ 	(vqshrntq_m_n_u32): Remove.
+ 	(vqshrntq_m_n_u16): Remove.
+ 	(__arm_vqshrnbq_n_s16): Remove.
+ 	(__arm_vqshrntq_n_s16): Remove.
+ 	(__arm_vqshrnbq_n_u16): Remove.
+ 	(__arm_vqshrntq_n_u16): Remove.
+ 	(__arm_vqshrnbq_n_s32): Remove.
+ 	(__arm_vqshrntq_n_s32): Remove.
+ 	(__arm_vqshrnbq_n_u32): Remove.
+ 	(__arm_vqshrntq_n_u32): Remove.
+ 	(__arm_vqshrnbq_m_n_s32): Remove.
+ 	(__arm_vqshrnbq_m_n_s16): Remove.
+ 	(__arm_vqshrnbq_m_n_u32): Remove.
+ 	(__arm_vqshrnbq_m_n_u16): Remove.
+ 	(__arm_vqshrntq_m_n_s32): Remove.
+ 	(__arm_vqshrntq_m_n_s16): Remove.
+ 	(__arm_vqshrntq_m_n_u32): Remove.
+ 	(__arm_vqshrntq_m_n_u16): Remove.
+ 	(__arm_vqshrnbq): Remove.
+ 	(__arm_vqshrntq): Remove.
+ 	(__arm_vqshrnbq_m): Remove.
+ 	(__arm_vqshrntq_m): Remove.
+ 	(vqrshrnbq): Remove.
+ 	(vqrshrntq): Remove.
+ 	(vqrshrnbq_m): Remove.
+ 	(vqrshrntq_m): Remove.
+ 	(vqrshrnbq_n_s16): Remove.
+ 	(vqrshrnbq_n_u16): Remove.
+ 	(vqrshrnbq_n_s32): Remove.
+ 	(vqrshrnbq_n_u32): Remove.
+ 	(vqrshrntq_n_s16): Remove.
+ 	(vqrshrntq_n_u16): Remove.
+ 	(vqrshrntq_n_s32): Remove.
+ 	(vqrshrntq_n_u32): Remove.
+ 	(vqrshrnbq_m_n_s32): Remove.
+ 	(vqrshrnbq_m_n_s16): Remove.
+ 	(vqrshrnbq_m_n_u32): Remove.
+ 	(vqrshrnbq_m_n_u16): Remove.
+ 	(vqrshrntq_m_n_s32): Remove.
+ 	(vqrshrntq_m_n_s16): Remove.
+ 	(vqrshrntq_m_n_u32): Remove.
+ 	(vqrshrntq_m_n_u16): Remove.
+ 	(__arm_vqrshrnbq_n_s16): Remove.
+ 	(__arm_vqrshrnbq_n_u16): Remove.
+ 	(__arm_vqrshrnbq_n_s32): Remove.
+ 	(__arm_vqrshrnbq_n_u32): Remove.
+ 	(__arm_vqrshrntq_n_s16): Remove.
+ 	(__arm_vqrshrntq_n_u16): Remove.
+ 	(__arm_vqrshrntq_n_s32): Remove.
+ 	(__arm_vqrshrntq_n_u32): Remove.
+ 	(__arm_vqrshrnbq_m_n_s32): Remove.
+ 	(__arm_vqrshrnbq_m_n_s16): Remove.
+ 	(__arm_vqrshrnbq_m_n_u32): Remove.
+ 	(__arm_vqrshrnbq_m_n_u16): Remove.
+ 	(__arm_vqrshrntq_m_n_s32): Remove.
+ 	(__arm_vqrshrntq_m_n_s16): Remove.
+ 	(__arm_vqrshrntq_m_n_u32): Remove.
+ 	(__arm_vqrshrntq_m_n_u16): Remove.
+ 	(__arm_vqrshrnbq): Remove.
+ 	(__arm_vqrshrntq): Remove.
+ 	(__arm_vqrshrnbq_m): Remove.
+ 	(__arm_vqrshrntq_m): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_SHRN_N, MVE_SHRN_M_N): New.
+ 	(mve_insn): Add vqrshrnb, vqrshrnt, vqshrnb, vqshrnt, vrshrnb,
+ 	vrshrnt, vshrnb, vshrnt.
+ 	(isu): New.
+ 	* config/arm/mve.md (mve_vqrshrnbq_n_<supf><mode>)
+ 	(mve_vqrshrntq_n_<supf><mode>, mve_vqshrnbq_n_<supf><mode>)
+ 	(mve_vqshrntq_n_<supf><mode>, mve_vrshrnbq_n_<supf><mode>)
+ 	(mve_vrshrntq_n_<supf><mode>, mve_vshrnbq_n_<supf><mode>)
+ 	(mve_vshrntq_n_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vqrshrnbq_m_n_<supf><mode>, mve_vqrshrntq_m_n_<supf><mode>)
+ 	(mve_vqshrnbq_m_n_<supf><mode>, mve_vqshrntq_m_n_<supf><mode>)
+ 	(mve_vrshrnbq_m_n_<supf><mode>, mve_vrshrntq_m_n_<supf><mode>)
+ 	(mve_vshrnbq_m_n_<supf><mode>, mve_vshrntq_m_n_<supf><mode>):
+ 	Merge into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_rshift_narrow):
+ 	New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_rshift_narrow): New.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_NO_F): New.
+ 	(vmaxq, vminq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vmaxq, vminq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vmaxq, vminq): New.
+ 	* config/arm/arm_mve.h (vminq): Remove.
+ 	(vmaxq): Remove.
+ 	(vmaxq_m): Remove.
+ 	(vminq_m): Remove.
+ 	(vminq_x): Remove.
+ 	(vmaxq_x): Remove.
+ 	(vminq_u8): Remove.
+ 	(vmaxq_u8): Remove.
+ 	(vminq_s8): Remove.
+ 	(vmaxq_s8): Remove.
+ 	(vminq_u16): Remove.
+ 	(vmaxq_u16): Remove.
+ 	(vminq_s16): Remove.
+ 	(vmaxq_s16): Remove.
+ 	(vminq_u32): Remove.
+ 	(vmaxq_u32): Remove.
+ 	(vminq_s32): Remove.
+ 	(vmaxq_s32): Remove.
+ 	(vmaxq_m_s8): Remove.
+ 	(vmaxq_m_s32): Remove.
+ 	(vmaxq_m_s16): Remove.
+ 	(vmaxq_m_u8): Remove.
+ 	(vmaxq_m_u32): Remove.
+ 	(vmaxq_m_u16): Remove.
+ 	(vminq_m_s8): Remove.
+ 	(vminq_m_s32): Remove.
+ 	(vminq_m_s16): Remove.
+ 	(vminq_m_u8): Remove.
+ 	(vminq_m_u32): Remove.
+ 	(vminq_m_u16): Remove.
+ 	(vminq_x_s8): Remove.
+ 	(vminq_x_s16): Remove.
+ 	(vminq_x_s32): Remove.
+ 	(vminq_x_u8): Remove.
+ 	(vminq_x_u16): Remove.
+ 	(vminq_x_u32): Remove.
+ 	(vmaxq_x_s8): Remove.
+ 	(vmaxq_x_s16): Remove.
+ 	(vmaxq_x_s32): Remove.
+ 	(vmaxq_x_u8): Remove.
+ 	(vmaxq_x_u16): Remove.
+ 	(vmaxq_x_u32): Remove.
+ 	(__arm_vminq_u8): Remove.
+ 	(__arm_vmaxq_u8): Remove.
+ 	(__arm_vminq_s8): Remove.
+ 	(__arm_vmaxq_s8): Remove.
+ 	(__arm_vminq_u16): Remove.
+ 	(__arm_vmaxq_u16): Remove.
+ 	(__arm_vminq_s16): Remove.
+ 	(__arm_vmaxq_s16): Remove.
+ 	(__arm_vminq_u32): Remove.
+ 	(__arm_vmaxq_u32): Remove.
+ 	(__arm_vminq_s32): Remove.
+ 	(__arm_vmaxq_s32): Remove.
+ 	(__arm_vmaxq_m_s8): Remove.
+ 	(__arm_vmaxq_m_s32): Remove.
+ 	(__arm_vmaxq_m_s16): Remove.
+ 	(__arm_vmaxq_m_u8): Remove.
+ 	(__arm_vmaxq_m_u32): Remove.
+ 	(__arm_vmaxq_m_u16): Remove.
+ 	(__arm_vminq_m_s8): Remove.
+ 	(__arm_vminq_m_s32): Remove.
+ 	(__arm_vminq_m_s16): Remove.
+ 	(__arm_vminq_m_u8): Remove.
+ 	(__arm_vminq_m_u32): Remove.
+ 	(__arm_vminq_m_u16): Remove.
+ 	(__arm_vminq_x_s8): Remove.
+ 	(__arm_vminq_x_s16): Remove.
+ 	(__arm_vminq_x_s32): Remove.
+ 	(__arm_vminq_x_u8): Remove.
+ 	(__arm_vminq_x_u16): Remove.
+ 	(__arm_vminq_x_u32): Remove.
+ 	(__arm_vmaxq_x_s8): Remove.
+ 	(__arm_vmaxq_x_s16): Remove.
+ 	(__arm_vmaxq_x_s32): Remove.
+ 	(__arm_vmaxq_x_u8): Remove.
+ 	(__arm_vmaxq_x_u16): Remove.
+ 	(__arm_vmaxq_x_u32): Remove.
+ 	(__arm_vminq): Remove.
+ 	(__arm_vmaxq): Remove.
+ 	(__arm_vmaxq_m): Remove.
+ 	(__arm_vminq_m): Remove.
+ 	(__arm_vminq_x): Remove.
+ 	(__arm_vmaxq_x): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MAX_MIN_SU): New.
+ 	(max_min_su_str): New.
+ 	(max_min_supf): New.
+ 	* config/arm/mve.md (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>)
+ 	(mve_vminq_s<mode>, mve_vminq_u<mode>): Merge into ...
+ 	(mve_<max_min_su_str>q_<max_min_supf><mode>): ... this.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_R): New.
+ 	(vqshlq, vshlq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vqshlq, vshlq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vqshlq, vshlq): New.
+ 	* config/arm/arm_mve.h (vshlq): Remove.
+ 	(vshlq_r): Remove.
+ 	(vshlq_n): Remove.
+ 	(vshlq_m_r): Remove.
+ 	(vshlq_m): Remove.
+ 	(vshlq_m_n): Remove.
+ 	(vshlq_x): Remove.
+ 	(vshlq_x_n): Remove.
+ 	(vshlq_s8): Remove.
+ 	(vshlq_s16): Remove.
+ 	(vshlq_s32): Remove.
+ 	(vshlq_u8): Remove.
+ 	(vshlq_u16): Remove.
+ 	(vshlq_u32): Remove.
+ 	(vshlq_r_u8): Remove.
+ 	(vshlq_n_u8): Remove.
+ 	(vshlq_r_s8): Remove.
+ 	(vshlq_n_s8): Remove.
+ 	(vshlq_r_u16): Remove.
+ 	(vshlq_n_u16): Remove.
+ 	(vshlq_r_s16): Remove.
+ 	(vshlq_n_s16): Remove.
+ 	(vshlq_r_u32): Remove.
+ 	(vshlq_n_u32): Remove.
+ 	(vshlq_r_s32): Remove.
+ 	(vshlq_n_s32): Remove.
+ 	(vshlq_m_r_u8): Remove.
+ 	(vshlq_m_r_s8): Remove.
+ 	(vshlq_m_r_u16): Remove.
+ 	(vshlq_m_r_s16): Remove.
+ 	(vshlq_m_r_u32): Remove.
+ 	(vshlq_m_r_s32): Remove.
+ 	(vshlq_m_u8): Remove.
+ 	(vshlq_m_s8): Remove.
+ 	(vshlq_m_u16): Remove.
+ 	(vshlq_m_s16): Remove.
+ 	(vshlq_m_u32): Remove.
+ 	(vshlq_m_s32): Remove.
+ 	(vshlq_m_n_s8): Remove.
+ 	(vshlq_m_n_s32): Remove.
+ 	(vshlq_m_n_s16): Remove.
+ 	(vshlq_m_n_u8): Remove.
+ 	(vshlq_m_n_u32): Remove.
+ 	(vshlq_m_n_u16): Remove.
+ 	(vshlq_x_s8): Remove.
+ 	(vshlq_x_s16): Remove.
+ 	(vshlq_x_s32): Remove.
+ 	(vshlq_x_u8): Remove.
+ 	(vshlq_x_u16): Remove.
+ 	(vshlq_x_u32): Remove.
+ 	(vshlq_x_n_s8): Remove.
+ 	(vshlq_x_n_s16): Remove.
+ 	(vshlq_x_n_s32): Remove.
+ 	(vshlq_x_n_u8): Remove.
+ 	(vshlq_x_n_u16): Remove.
+ 	(vshlq_x_n_u32): Remove.
+ 	(__arm_vshlq_s8): Remove.
+ 	(__arm_vshlq_s16): Remove.
+ 	(__arm_vshlq_s32): Remove.
+ 	(__arm_vshlq_u8): Remove.
+ 	(__arm_vshlq_u16): Remove.
+ 	(__arm_vshlq_u32): Remove.
+ 	(__arm_vshlq_r_u8): Remove.
+ 	(__arm_vshlq_n_u8): Remove.
+ 	(__arm_vshlq_r_s8): Remove.
+ 	(__arm_vshlq_n_s8): Remove.
+ 	(__arm_vshlq_r_u16): Remove.
+ 	(__arm_vshlq_n_u16): Remove.
+ 	(__arm_vshlq_r_s16): Remove.
+ 	(__arm_vshlq_n_s16): Remove.
+ 	(__arm_vshlq_r_u32): Remove.
+ 	(__arm_vshlq_n_u32): Remove.
+ 	(__arm_vshlq_r_s32): Remove.
+ 	(__arm_vshlq_n_s32): Remove.
+ 	(__arm_vshlq_m_r_u8): Remove.
+ 	(__arm_vshlq_m_r_s8): Remove.
+ 	(__arm_vshlq_m_r_u16): Remove.
+ 	(__arm_vshlq_m_r_s16): Remove.
+ 	(__arm_vshlq_m_r_u32): Remove.
+ 	(__arm_vshlq_m_r_s32): Remove.
+ 	(__arm_vshlq_m_u8): Remove.
+ 	(__arm_vshlq_m_s8): Remove.
+ 	(__arm_vshlq_m_u16): Remove.
+ 	(__arm_vshlq_m_s16): Remove.
+ 	(__arm_vshlq_m_u32): Remove.
+ 	(__arm_vshlq_m_s32): Remove.
+ 	(__arm_vshlq_m_n_s8): Remove.
+ 	(__arm_vshlq_m_n_s32): Remove.
+ 	(__arm_vshlq_m_n_s16): Remove.
+ 	(__arm_vshlq_m_n_u8): Remove.
+ 	(__arm_vshlq_m_n_u32): Remove.
+ 	(__arm_vshlq_m_n_u16): Remove.
+ 	(__arm_vshlq_x_s8): Remove.
+ 	(__arm_vshlq_x_s16): Remove.
+ 	(__arm_vshlq_x_s32): Remove.
+ 	(__arm_vshlq_x_u8): Remove.
+ 	(__arm_vshlq_x_u16): Remove.
+ 	(__arm_vshlq_x_u32): Remove.
+ 	(__arm_vshlq_x_n_s8): Remove.
+ 	(__arm_vshlq_x_n_s16): Remove.
+ 	(__arm_vshlq_x_n_s32): Remove.
+ 	(__arm_vshlq_x_n_u8): Remove.
+ 	(__arm_vshlq_x_n_u16): Remove.
+ 	(__arm_vshlq_x_n_u32): Remove.
+ 	(__arm_vshlq): Remove.
+ 	(__arm_vshlq_r): Remove.
+ 	(__arm_vshlq_n): Remove.
+ 	(__arm_vshlq_m_r): Remove.
+ 	(__arm_vshlq_m): Remove.
+ 	(__arm_vshlq_m_n): Remove.
+ 	(__arm_vshlq_x): Remove.
+ 	(__arm_vshlq_x_n): Remove.
+ 	(vqshlq): Remove.
+ 	(vqshlq_r): Remove.
+ 	(vqshlq_n): Remove.
+ 	(vqshlq_m_r): Remove.
+ 	(vqshlq_m_n): Remove.
+ 	(vqshlq_m): Remove.
+ 	(vqshlq_u8): Remove.
+ 	(vqshlq_r_u8): Remove.
+ 	(vqshlq_n_u8): Remove.
+ 	(vqshlq_s8): Remove.
+ 	(vqshlq_r_s8): Remove.
+ 	(vqshlq_n_s8): Remove.
+ 	(vqshlq_u16): Remove.
+ 	(vqshlq_r_u16): Remove.
+ 	(vqshlq_n_u16): Remove.
+ 	(vqshlq_s16): Remove.
+ 	(vqshlq_r_s16): Remove.
+ 	(vqshlq_n_s16): Remove.
+ 	(vqshlq_u32): Remove.
+ 	(vqshlq_r_u32): Remove.
+ 	(vqshlq_n_u32): Remove.
+ 	(vqshlq_s32): Remove.
+ 	(vqshlq_r_s32): Remove.
+ 	(vqshlq_n_s32): Remove.
+ 	(vqshlq_m_r_u8): Remove.
+ 	(vqshlq_m_r_s8): Remove.
+ 	(vqshlq_m_r_u16): Remove.
+ 	(vqshlq_m_r_s16): Remove.
+ 	(vqshlq_m_r_u32): Remove.
+ 	(vqshlq_m_r_s32): Remove.
+ 	(vqshlq_m_n_s8): Remove.
+ 	(vqshlq_m_n_s32): Remove.
+ 	(vqshlq_m_n_s16): Remove.
+ 	(vqshlq_m_n_u8): Remove.
+ 	(vqshlq_m_n_u32): Remove.
+ 	(vqshlq_m_n_u16): Remove.
+ 	(vqshlq_m_s8): Remove.
+ 	(vqshlq_m_s32): Remove.
+ 	(vqshlq_m_s16): Remove.
+ 	(vqshlq_m_u8): Remove.
+ 	(vqshlq_m_u32): Remove.
+ 	(vqshlq_m_u16): Remove.
+ 	(__arm_vqshlq_u8): Remove.
+ 	(__arm_vqshlq_r_u8): Remove.
+ 	(__arm_vqshlq_n_u8): Remove.
+ 	(__arm_vqshlq_s8): Remove.
+ 	(__arm_vqshlq_r_s8): Remove.
+ 	(__arm_vqshlq_n_s8): Remove.
+ 	(__arm_vqshlq_u16): Remove.
+ 	(__arm_vqshlq_r_u16): Remove.
+ 	(__arm_vqshlq_n_u16): Remove.
+ 	(__arm_vqshlq_s16): Remove.
+ 	(__arm_vqshlq_r_s16): Remove.
+ 	(__arm_vqshlq_n_s16): Remove.
+ 	(__arm_vqshlq_u32): Remove.
+ 	(__arm_vqshlq_r_u32): Remove.
+ 	(__arm_vqshlq_n_u32): Remove.
+ 	(__arm_vqshlq_s32): Remove.
+ 	(__arm_vqshlq_r_s32): Remove.
+ 	(__arm_vqshlq_n_s32): Remove.
+ 	(__arm_vqshlq_m_r_u8): Remove.
+ 	(__arm_vqshlq_m_r_s8): Remove.
+ 	(__arm_vqshlq_m_r_u16): Remove.
+ 	(__arm_vqshlq_m_r_s16): Remove.
+ 	(__arm_vqshlq_m_r_u32): Remove.
+ 	(__arm_vqshlq_m_r_s32): Remove.
+ 	(__arm_vqshlq_m_n_s8): Remove.
+ 	(__arm_vqshlq_m_n_s32): Remove.
+ 	(__arm_vqshlq_m_n_s16): Remove.
+ 	(__arm_vqshlq_m_n_u8): Remove.
+ 	(__arm_vqshlq_m_n_u32): Remove.
+ 	(__arm_vqshlq_m_n_u16): Remove.
+ 	(__arm_vqshlq_m_s8): Remove.
+ 	(__arm_vqshlq_m_s32): Remove.
+ 	(__arm_vqshlq_m_s16): Remove.
+ 	(__arm_vqshlq_m_u8): Remove.
+ 	(__arm_vqshlq_m_u32): Remove.
+ 	(__arm_vqshlq_m_u16): Remove.
+ 	(__arm_vqshlq): Remove.
+ 	(__arm_vqshlq_r): Remove.
+ 	(__arm_vqshlq_n): Remove.
+ 	(__arm_vqshlq_m_r): Remove.
+ 	(__arm_vqshlq_m_n): Remove.
+ 	(__arm_vqshlq_m): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_mve_function_exact_insn_vshl): New.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_lshift_r): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_lshift_r): New.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins.cc (has_inactive_argument)
+ 	(finish_opt_n_resolution): Handle MODE_r.
+ 	* config/arm/arm-mve-builtins.def (r): New mode.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_lshift): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_lshift): New.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N): New.
+ 	(vabdq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vabdq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vabdq): New.
+ 	* config/arm/arm_mve.h (vabdq): Remove.
+ 	(vabdq_m): Remove.
+ 	(vabdq_x): Remove.
+ 	(vabdq_u8): Remove.
+ 	(vabdq_s8): Remove.
+ 	(vabdq_u16): Remove.
+ 	(vabdq_s16): Remove.
+ 	(vabdq_u32): Remove.
+ 	(vabdq_s32): Remove.
+ 	(vabdq_f16): Remove.
+ 	(vabdq_f32): Remove.
+ 	(vabdq_m_s8): Remove.
+ 	(vabdq_m_s32): Remove.
+ 	(vabdq_m_s16): Remove.
+ 	(vabdq_m_u8): Remove.
+ 	(vabdq_m_u32): Remove.
+ 	(vabdq_m_u16): Remove.
+ 	(vabdq_m_f32): Remove.
+ 	(vabdq_m_f16): Remove.
+ 	(vabdq_x_s8): Remove.
+ 	(vabdq_x_s16): Remove.
+ 	(vabdq_x_s32): Remove.
+ 	(vabdq_x_u8): Remove.
+ 	(vabdq_x_u16): Remove.
+ 	(vabdq_x_u32): Remove.
+ 	(vabdq_x_f16): Remove.
+ 	(vabdq_x_f32): Remove.
+ 	(__arm_vabdq_u8): Remove.
+ 	(__arm_vabdq_s8): Remove.
+ 	(__arm_vabdq_u16): Remove.
+ 	(__arm_vabdq_s16): Remove.
+ 	(__arm_vabdq_u32): Remove.
+ 	(__arm_vabdq_s32): Remove.
+ 	(__arm_vabdq_m_s8): Remove.
+ 	(__arm_vabdq_m_s32): Remove.
+ 	(__arm_vabdq_m_s16): Remove.
+ 	(__arm_vabdq_m_u8): Remove.
+ 	(__arm_vabdq_m_u32): Remove.
+ 	(__arm_vabdq_m_u16): Remove.
+ 	(__arm_vabdq_x_s8): Remove.
+ 	(__arm_vabdq_x_s16): Remove.
+ 	(__arm_vabdq_x_s32): Remove.
+ 	(__arm_vabdq_x_u8): Remove.
+ 	(__arm_vabdq_x_u16): Remove.
+ 	(__arm_vabdq_x_u32): Remove.
+ 	(__arm_vabdq_f16): Remove.
+ 	(__arm_vabdq_f32): Remove.
+ 	(__arm_vabdq_m_f32): Remove.
+ 	(__arm_vabdq_m_f16): Remove.
+ 	(__arm_vabdq_x_f16): Remove.
+ 	(__arm_vabdq_x_f32): Remove.
+ 	(__arm_vabdq): Remove.
+ 	(__arm_vabdq_m): Remove.
+ 	(__arm_vabdq_x): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_FP_M_BINARY): Add vabdq.
+ 	(MVE_FP_VABDQ_ONLY): New.
+ 	(mve_insn): Add vabd.
+ 	* config/arm/mve.md (mve_vabdq_f<mode>): Move into ...
+ 	(@mve_<mve_insn>q_f<mode>): ... this.
+ 	(mve_vabdq_m_f<mode>): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vqrdmulhq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vqrdmulhq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vqrdmulhq): New.
+ 	* config/arm/arm_mve.h (vqrdmulhq): Remove.
+ 	(vqrdmulhq_m): Remove.
+ 	(vqrdmulhq_s8): Remove.
+ 	(vqrdmulhq_n_s8): Remove.
+ 	(vqrdmulhq_s16): Remove.
+ 	(vqrdmulhq_n_s16): Remove.
+ 	(vqrdmulhq_s32): Remove.
+ 	(vqrdmulhq_n_s32): Remove.
+ 	(vqrdmulhq_m_n_s8): Remove.
+ 	(vqrdmulhq_m_n_s32): Remove.
+ 	(vqrdmulhq_m_n_s16): Remove.
+ 	(vqrdmulhq_m_s8): Remove.
+ 	(vqrdmulhq_m_s32): Remove.
+ 	(vqrdmulhq_m_s16): Remove.
+ 	(__arm_vqrdmulhq_s8): Remove.
+ 	(__arm_vqrdmulhq_n_s8): Remove.
+ 	(__arm_vqrdmulhq_s16): Remove.
+ 	(__arm_vqrdmulhq_n_s16): Remove.
+ 	(__arm_vqrdmulhq_s32): Remove.
+ 	(__arm_vqrdmulhq_n_s32): Remove.
+ 	(__arm_vqrdmulhq_m_n_s8): Remove.
+ 	(__arm_vqrdmulhq_m_n_s32): Remove.
+ 	(__arm_vqrdmulhq_m_n_s16): Remove.
+ 	(__arm_vqrdmulhq_m_s8): Remove.
+ 	(__arm_vqrdmulhq_m_s32): Remove.
+ 	(__arm_vqrdmulhq_m_s16): Remove.
+ 	(__arm_vqrdmulhq): Remove.
+ 	(__arm_vqrdmulhq_m): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_SHIFT_M_R, MVE_SHIFT_M_N)
+ 	(MVE_SHIFT_N, MVE_SHIFT_R): New.
+ 	(mve_insn): Add vqshl, vshl.
+ 	* config/arm/mve.md (mve_vqshlq_n_<supf><mode>)
+ 	(mve_vshlq_n_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vqshlq_r_<supf><mode>, mve_vshlq_r_<supf><mode>): Merge into
+ 	...
+ 	(@mve_<mve_insn>q_r_<supf><mode>): ... this.
+ 	(mve_vqshlq_m_r_<supf><mode>, mve_vshlq_m_r_<supf><mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q_m_r_<supf><mode>): ... this.
+ 	(mve_vqshlq_m_n_<supf><mode>, mve_vshlq_m_n_<supf><mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 	* config/arm/vec-common.md (mve_vshlq_<supf><mode>): Transform
+ 	into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vqrshlq, vrshlq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vqrshlq, vrshlq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vqrshlq, vrshlq): New.
+ 	* config/arm/arm-mve-builtins.cc (has_inactive_argument): Handle
+ 	vqrshlq, vrshlq.
+ 	* config/arm/arm_mve.h (vrshlq): Remove.
+ 	(vrshlq_m_n): Remove.
+ 	(vrshlq_m): Remove.
+ 	(vrshlq_x): Remove.
+ 	(vrshlq_u8): Remove.
+ 	(vrshlq_n_u8): Remove.
+ 	(vrshlq_s8): Remove.
+ 	(vrshlq_n_s8): Remove.
+ 	(vrshlq_u16): Remove.
+ 	(vrshlq_n_u16): Remove.
+ 	(vrshlq_s16): Remove.
+ 	(vrshlq_n_s16): Remove.
+ 	(vrshlq_u32): Remove.
+ 	(vrshlq_n_u32): Remove.
+ 	(vrshlq_s32): Remove.
+ 	(vrshlq_n_s32): Remove.
+ 	(vrshlq_m_n_u8): Remove.
+ 	(vrshlq_m_n_s8): Remove.
+ 	(vrshlq_m_n_u16): Remove.
+ 	(vrshlq_m_n_s16): Remove.
+ 	(vrshlq_m_n_u32): Remove.
+ 	(vrshlq_m_n_s32): Remove.
+ 	(vrshlq_m_s8): Remove.
+ 	(vrshlq_m_s32): Remove.
+ 	(vrshlq_m_s16): Remove.
+ 	(vrshlq_m_u8): Remove.
+ 	(vrshlq_m_u32): Remove.
+ 	(vrshlq_m_u16): Remove.
+ 	(vrshlq_x_s8): Remove.
+ 	(vrshlq_x_s16): Remove.
+ 	(vrshlq_x_s32): Remove.
+ 	(vrshlq_x_u8): Remove.
+ 	(vrshlq_x_u16): Remove.
+ 	(vrshlq_x_u32): Remove.
+ 	(__arm_vrshlq_u8): Remove.
+ 	(__arm_vrshlq_n_u8): Remove.
+ 	(__arm_vrshlq_s8): Remove.
+ 	(__arm_vrshlq_n_s8): Remove.
+ 	(__arm_vrshlq_u16): Remove.
+ 	(__arm_vrshlq_n_u16): Remove.
+ 	(__arm_vrshlq_s16): Remove.
+ 	(__arm_vrshlq_n_s16): Remove.
+ 	(__arm_vrshlq_u32): Remove.
+ 	(__arm_vrshlq_n_u32): Remove.
+ 	(__arm_vrshlq_s32): Remove.
+ 	(__arm_vrshlq_n_s32): Remove.
+ 	(__arm_vrshlq_m_n_u8): Remove.
+ 	(__arm_vrshlq_m_n_s8): Remove.
+ 	(__arm_vrshlq_m_n_u16): Remove.
+ 	(__arm_vrshlq_m_n_s16): Remove.
+ 	(__arm_vrshlq_m_n_u32): Remove.
+ 	(__arm_vrshlq_m_n_s32): Remove.
+ 	(__arm_vrshlq_m_s8): Remove.
+ 	(__arm_vrshlq_m_s32): Remove.
+ 	(__arm_vrshlq_m_s16): Remove.
+ 	(__arm_vrshlq_m_u8): Remove.
+ 	(__arm_vrshlq_m_u32): Remove.
+ 	(__arm_vrshlq_m_u16): Remove.
+ 	(__arm_vrshlq_x_s8): Remove.
+ 	(__arm_vrshlq_x_s16): Remove.
+ 	(__arm_vrshlq_x_s32): Remove.
+ 	(__arm_vrshlq_x_u8): Remove.
+ 	(__arm_vrshlq_x_u16): Remove.
+ 	(__arm_vrshlq_x_u32): Remove.
+ 	(__arm_vrshlq): Remove.
+ 	(__arm_vrshlq_m_n): Remove.
+ 	(__arm_vrshlq_m): Remove.
+ 	(__arm_vrshlq_x): Remove.
+ 	(vqrshlq): Remove.
+ 	(vqrshlq_m_n): Remove.
+ 	(vqrshlq_m): Remove.
+ 	(vqrshlq_u8): Remove.
+ 	(vqrshlq_n_u8): Remove.
+ 	(vqrshlq_s8): Remove.
+ 	(vqrshlq_n_s8): Remove.
+ 	(vqrshlq_u16): Remove.
+ 	(vqrshlq_n_u16): Remove.
+ 	(vqrshlq_s16): Remove.
+ 	(vqrshlq_n_s16): Remove.
+ 	(vqrshlq_u32): Remove.
+ 	(vqrshlq_n_u32): Remove.
+ 	(vqrshlq_s32): Remove.
+ 	(vqrshlq_n_s32): Remove.
+ 	(vqrshlq_m_n_u8): Remove.
+ 	(vqrshlq_m_n_s8): Remove.
+ 	(vqrshlq_m_n_u16): Remove.
+ 	(vqrshlq_m_n_s16): Remove.
+ 	(vqrshlq_m_n_u32): Remove.
+ 	(vqrshlq_m_n_s32): Remove.
+ 	(vqrshlq_m_s8): Remove.
+ 	(vqrshlq_m_s32): Remove.
+ 	(vqrshlq_m_s16): Remove.
+ 	(vqrshlq_m_u8): Remove.
+ 	(vqrshlq_m_u32): Remove.
+ 	(vqrshlq_m_u16): Remove.
+ 	(__arm_vqrshlq_u8): Remove.
+ 	(__arm_vqrshlq_n_u8): Remove.
+ 	(__arm_vqrshlq_s8): Remove.
+ 	(__arm_vqrshlq_n_s8): Remove.
+ 	(__arm_vqrshlq_u16): Remove.
+ 	(__arm_vqrshlq_n_u16): Remove.
+ 	(__arm_vqrshlq_s16): Remove.
+ 	(__arm_vqrshlq_n_s16): Remove.
+ 	(__arm_vqrshlq_u32): Remove.
+ 	(__arm_vqrshlq_n_u32): Remove.
+ 	(__arm_vqrshlq_s32): Remove.
+ 	(__arm_vqrshlq_n_s32): Remove.
+ 	(__arm_vqrshlq_m_n_u8): Remove.
+ 	(__arm_vqrshlq_m_n_s8): Remove.
+ 	(__arm_vqrshlq_m_n_u16): Remove.
+ 	(__arm_vqrshlq_m_n_s16): Remove.
+ 	(__arm_vqrshlq_m_n_u32): Remove.
+ 	(__arm_vqrshlq_m_n_s32): Remove.
+ 	(__arm_vqrshlq_m_s8): Remove.
+ 	(__arm_vqrshlq_m_s32): Remove.
+ 	(__arm_vqrshlq_m_s16): Remove.
+ 	(__arm_vqrshlq_m_u8): Remove.
+ 	(__arm_vqrshlq_m_u32): Remove.
+ 	(__arm_vqrshlq_m_u16): Remove.
+ 	(__arm_vqrshlq): Remove.
+ 	(__arm_vqrshlq_m_n): Remove.
+ 	(__arm_vqrshlq_m): Remove.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_RSHIFT_M_N, MVE_RSHIFT_N): New.
+ 	(mve_insn): Add vqrshl, vrshl.
+ 	* config/arm/mve.md (mve_vqrshlq_n_<supf><mode>)
+ 	(mve_vrshlq_n_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vqrshlq_m_n_<supf><mode>, mve_vrshlq_m_n_<supf><mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-05  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_round_lshift): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_round_lshift): New.
+ 
+ 2023-05-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109615
+ 	* config/riscv/riscv-vsetvl.cc (avl_info::multiple_source_equal_p): Add
+ 	denegrate PHI optmization.
+ 
+ 2023-05-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/predicates.md (register_no_SP_operand):
+ 	Rename from index_register_operand.
+ 	(call_register_operand): Update for rename.
+ 	* config/i386/i386.md (*lea<mode>_general_[1234]): Update for rename.
+ 
+ 2023-05-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR bootstrap/84402
+ 	* Makefile.in (NUM_MATCH_SPLITS, MATCH_SPLITS_SEQ,
+ 	GIMPLE_MATCH_PD_SEQ_SRC, GIMPLE_MATCH_PD_SEQ_O,
+ 	GENERIC_MATCH_PD_SEQ_SRC, GENERIC_MATCH_PD_SEQ_O): New.
+ 	(OBJS, MOSTLYCLEANFILES, .PRECIOUS): Use them.
+ 	(s-match): Split into s-generic-match and s-gimple-match.
+ 	* configure.ac (with-matchpd-partitions,
+ 	DEFAULT_MATCHPD_PARTITIONS): New.
+ 	* configure: Regenerate.
+ 
+ 2023-05-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR bootstrap/84402
+ 	* genmatch.cc (emit_func, SIZED_BASED_CHUNKS, get_out_file): New.
+ 	(decision_tree::gen): Accept list of files instead of single and update
+ 	to write function definition to header and main file.
+ 	(write_predicate): Likewise.
+ 	(write_header): Emit pragmas and new includes.
+ 	(main): Create file buffers and cleanup.
+ 	(showUsage, write_header_includes): New.
+ 
+ 2023-05-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR bootstrap/84402
+ 	* Makefile.in (OBJS): Add gimple-match-exports.o.
+ 	* genmatch.cc (decision_tree::gen): Export gimple_gimplify helpers.
+ 	* gimple-match-head.cc (gimple_simplify, gimple_resimplify1,
+ 	gimple_resimplify2, gimple_resimplify3, gimple_resimplify4,
+ 	gimple_resimplify5, constant_for_folding, convert_conditional_op,
+ 	maybe_resimplify_conditional_op, gimple_match_op::resimplify,
+ 	maybe_build_generic_op, build_call_internal, maybe_push_res_to_seq,
+ 	do_valueize, try_conditional_simplification, gimple_extract,
+ 	gimple_extract_op, canonicalize_code, commutative_binary_op_p,
+ 	commutative_ternary_op_p, first_commutative_argument,
+ 	associative_binary_op_p, directly_supported_p,
+ 	get_conditional_internal_fn): Moved to gimple-match-exports.cc
+ 	* gimple-match-exports.cc: New file.
+ 
+ 2023-05-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR bootstrap/84402
+ 	* genmatch.cc (decision_tree::gen, write_predicate): Generate new
+ 	debug_dump var.
+ 	(dt_simplify::gen_1): Use it.
+ 
+ 2023-05-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR bootstrap/84402
+ 	* genmatch.cc (output_line_directive): Only emit commented directive
+ 	when -vv.
+ 
+ 2023-05-05  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR bootstrap/84402
+ 	* genmatch.cc (dt_simplify::gen_1): Only emit labels if used.
+ 
+ 2023-05-05  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_vectorize_builtin_vectorized_function): Remove
+ 	unused in_mode/in_n variables.
+ 
+ 2023-05-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109735
+ 	* tree-vect-stmts.cc (vectorizable_operation): Perform
+ 	conversion for POINTER_DIFF_EXPR unconditionally.
+ 
+ 2023-05-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/mmx.md (mulv2si3): New expander.
+ 	(*mulv2si3): New insn pattern.
+ 
+ 2023-05-05  Tobias Burnus  <tobias@codesourcery.com>
+ 	    Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	PR libgomp/108098
+ 	* config/nvptx/mkoffload.cc (process): Emit dummy procedure
+ 	alongside reverse-offload function table to prevent NULL values
+ 	of the function addresses.
+ 
+ 2023-05-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* builtins.cc (do_mpfr_ckconv, do_mpc_ckconv): Fix comment typo,
+ 	mpft_t -> mpfr_t.
+ 	* fold-const-call.cc (do_mpfr_ckconv, do_mpc_ckconv): Likewise.
+ 
+ 2023-05-05  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109732
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Fix the selection
+ 	of the argtrue/argfalse.
+ 
+ 2023-05-05  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109722
+ 	* match.pd: Extend the `ABS<a> == 0` pattern
+ 	to cover `ABSU<a> == 0` too.
+ 
+ 2023-05-04  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/109733
+ 	* config/i386/predicates.md (index_reg_operand): New predicate.
+ 	* config/i386/i386.md (ashift to lea spliter): Use
+ 	general_reg_operand and index_reg_operand predicates.
+ 
+ 2023-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>_insn_le):
+ 	Rename and reimplement with RTL codes to...
+ 	(aarch64_<optab>hn2<mode>_insn_le): .. This.
+ 	(aarch64_r<optab>hn2<mode>_insn_le): New pattern.
+ 	(aarch64_<sur><addsub>hn2<mode>_insn_be): Rename and reimplement with RTL
+ 	codes to...
+ 	(aarch64_<optab>hn2<mode>_insn_be): ... This.
+ 	(aarch64_r<optab>hn2<mode>_insn_be): New pattern.
+ 	(aarch64_<sur><addsub>hn2<mode>): Rename and adjust expander to...
+ 	(aarch64_<optab>hn2<mode>): ... This.
+ 	(aarch64_r<optab>hn2<mode>): New expander.
+ 	* config/aarch64/iterators.md (UNSPEC_ADDHN, UNSPEC_RADDHN,
+ 	UNSPEC_SUBHN, UNSPEC_RSUBHN): Delete unspecs.
+ 	(ADDSUBHN): Delete.
+ 	(sur): Remove handling of the above.
+ 	(addsub): Likewise.
+ 
+ 2023-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>_insn_le):
+ 	Delete.
+ 	(aarch64_<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
+ 	(aarch64_<sur><addsub>hn<mode>_insn_be): Delete.
+ 	(aarch64_r<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
+ 	(aarch64_<sur><addsub>hn<mode>): Delete.
+ 	(aarch64_<optab>hn<mode>): New define_expand.
+ 	(aarch64_r<optab>hn<mode>): Likewise.
+ 	* config/aarch64/predicates.md (aarch64_simd_raddsubhn_imm_vec):
+ 	New predicate.
+ 
+ 2023-05-04  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Handle
+ 	diamond form bb with forwarder only empty blocks better.
+ 
+ 2023-05-04  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-threadupdate.cc (copy_phi_arg_into_existing_phi): Move to ...
+ 	* tree-cfg.cc (copy_phi_arg_into_existing_phi): Here and remove static.
+ 	(gimple_duplicate_sese_tail): Use copy_phi_arg_into_existing_phi instead
+ 	of an inline version of it.
+ 	* tree-cfgcleanup.cc (remove_forwarder_block): Likewise.
+ 	* tree-cfg.h (copy_phi_arg_into_existing_phi): New declaration.
+ 
+ 2023-05-04  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Change
+ 	the default argument value for dce_ssa_names to nullptr.
+ 	Check to make sure dce_ssa_names is a non-nullptr before
+ 	calling simple_dce_from_worklist.
+ 
+ 2023-05-04  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/predicates.md (index_register_operand): Reject
+ 	arg_pointer_rtx, frame_pointer_rtx, stack_pointer_rtx and
+ 	VIRTUAL_REGISTER_P operands.  Allow subregs of memory before reload.
+ 	(call_register_no_elim_operand): Rewrite as ...
+ 	(call_register_operand): ... this.
+ 	(call_insn_operand): Use call_register_operand predicate.
+ 
+ 2023-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109721
+ 	* tree-vect-stmts.cc (vectorizable_operation): Make sure
+ 	to test word_mode for all !target_support_p operations.
+ 
+ 2023-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_<su>aba<mode>): Rename to...
+ 	(aarch64_<su>aba<mode><vczle><vczbe>): ... This.
+ 	(aarch64_mla<mode>): Rename to...
+ 	(aarch64_mla<mode><vczle><vczbe>): ... This.
+ 	(*aarch64_mla_elt<mode>): Rename to...
+ 	(*aarch64_mla_elt<mode><vczle><vczbe>): ... This.
+ 	(*aarch64_mla_elt_<vswap_width_name><mode>): Rename to...
+ 	(*aarch64_mla_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
+ 	(aarch64_mla_n<mode>): Rename to...
+ 	(aarch64_mla_n<mode><vczle><vczbe>): ... This.
+ 	(aarch64_mls<mode>): Rename to...
+ 	(aarch64_mls<mode><vczle><vczbe>): ... This.
+ 	(*aarch64_mls_elt<mode>): Rename to...
+ 	(*aarch64_mls_elt<mode><vczle><vczbe>): ... This.
+ 	(*aarch64_mls_elt_<vswap_width_name><mode>): Rename to...
+ 	(*aarch64_mls_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
+ 	(aarch64_mls_n<mode>): Rename to...
+ 	(aarch64_mls_n<mode><vczle><vczbe>): ... This.
+ 	(fma<mode>4): Rename to...
+ 	(fma<mode>4<vczle><vczbe>): ... This.
+ 	(*aarch64_fma4_elt<mode>): Rename to...
+ 	(*aarch64_fma4_elt<mode><vczle><vczbe>): ... This.
+ 	(*aarch64_fma4_elt_<vswap_width_name><mode>): Rename to...
+ 	(*aarch64_fma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
+ 	(*aarch64_fma4_elt_from_dup<mode>): Rename to...
+ 	(*aarch64_fma4_elt_from_dup<mode><vczle><vczbe>): ... This.
+ 	(fnma<mode>4): Rename to...
+ 	(fnma<mode>4<vczle><vczbe>): ... This.
+ 	(*aarch64_fnma4_elt<mode>): Rename to...
+ 	(*aarch64_fnma4_elt<mode><vczle><vczbe>): ... This.
+ 	(*aarch64_fnma4_elt_<vswap_width_name><mode>): Rename to...
+ 	(*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
+ 	(*aarch64_fnma4_elt_from_dup<mode>): Rename to...
+ 	(*aarch64_fnma4_elt_from_dup<mode><vczle><vczbe>): ... This.
+ 	(aarch64_simd_bsl<mode>_internal): Rename to...
+ 	(aarch64_simd_bsl<mode>_internal<vczle><vczbe>): ... This.
+ 	(*aarch64_simd_bsl<mode>_alt): Rename to...
+ 	(*aarch64_simd_bsl<mode>_alt<vczle><vczbe>): ... This.
+ 
+ 2023-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>): Rename to...
+ 	(aarch64_<su>abd<mode><vczle><vczbe>): ... This.
+ 	(fabd<mode>3): Rename to...
+ 	(fabd<mode>3<vczle><vczbe>): ... This.
+ 	(aarch64_<optab>p<mode>): Rename to...
+ 	(aarch64_<optab>p<mode><vczle><vczbe>): ... This.
+ 	(aarch64_faddp<mode>): Rename to...
+ 	(aarch64_faddp<mode><vczle><vczbe>): ... This.
+ 
+ 2023-05-04  Martin Liska  <mliska@suse.cz>
+ 
+ 	* gcov.cc (GCOV_JSON_FORMAT_VERSION): New definition.
+ 	(print_version): Use it.
+ 	(generate_results): Likewise.
+ 
+ 2023-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-cfg.h (last_stmt): Rename to ...
+ 	(last_nondebug_stmt): ... this.
+ 	* tree-cfg.cc (last_stmt): Rename to ...
+ 	(last_nondebug_stmt): ... this.
+ 	(assign_discriminators): Adjust.
+ 	(group_case_labels_stmt): Likewise.
+ 	(gimple_can_duplicate_bb_p): Likewise.
+ 	(execute_fixup_cfg): Likewise.
+ 	* auto-profile.cc (afdo_propagate_circuit): Likewise.
+ 	* gimple-range.cc (gimple_ranger::range_on_exit): Likewise.
+ 	* omp-expand.cc (workshare_safe_to_combine_p): Likewise.
+ 	(determine_parallel_type): Likewise.
+ 	(adjust_context_and_scope): Likewise.
+ 	(expand_task_call): Likewise.
+ 	(remove_exit_barrier): Likewise.
+ 	(expand_omp_taskreg): Likewise.
+ 	(expand_omp_for_init_counts): Likewise.
+ 	(expand_omp_for_init_vars): Likewise.
+ 	(expand_omp_for_static_chunk): Likewise.
+ 	(expand_omp_simd): Likewise.
+ 	(expand_oacc_for): Likewise.
+ 	(expand_omp_for): Likewise.
+ 	(expand_omp_sections): Likewise.
+ 	(expand_omp_atomic_fetch_op): Likewise.
+ 	(expand_omp_atomic_cas): Likewise.
+ 	(expand_omp_atomic): Likewise.
+ 	(expand_omp_target): Likewise.
+ 	(expand_omp): Likewise.
+ 	(omp_make_gimple_edges): Likewise.
+ 	* trans-mem.cc (tm_region_init): Likewise.
+ 	* tree-inline.cc (redirect_all_calls): Likewise.
+ 	* tree-parloops.cc (gen_parallel_loop): Likewise.
+ 	* tree-ssa-loop-ch.cc (do_while_loop_p): Likewise.
+ 	* tree-ssa-loop-ivcanon.cc (canonicalize_loop_induction_variables):
+ 	Likewise.
+ 	* tree-ssa-loop-ivopts.cc (stmt_after_ip_normal_pos): Likewise.
+ 	(may_eliminate_iv): Likewise.
+ 	* tree-ssa-loop-manip.cc (standard_iv_increment_position): Likewise.
+ 	* tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations):
+ 	Likewise.
+ 	(estimate_numbers_of_iterations): Likewise.
+ 	* tree-ssa-loop-split.cc (compute_added_num_insns): Likewise.
+ 	* tree-ssa-loop-unswitch.cc (get_predicates_for_bb): Likewise.
+ 	(set_predicates_for_bb): Likewise.
+ 	(init_loop_unswitch_info): Likewise.
+ 	(hoist_guard): Likewise.
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Likewise.
+ 	(minmax_replacement): Likewise.
+ 	* tree-ssa-reassoc.cc (update_range_test): Likewise.
+ 	(optimize_range_tests_to_bit_test): Likewise.
+ 	(optimize_range_tests_var_bound): Likewise.
+ 	(optimize_range_tests): Likewise.
+ 	(no_side_effect_bb): Likewise.
+ 	(suitable_cond_bb): Likewise.
+ 	(maybe_optimize_range_tests): Likewise.
+ 	(reassociate_bb): Likewise.
+ 	* tree-vrp.cc (rvrp_folder::pre_fold_bb): Likewise.
+ 
+ 2023-05-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/109676
+ 	* config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
+ 	If src is REG, change its mode to V1TImode and call fix_debug_reg_uses
+ 	for it only if it still has TImode.  Don't decide whether to call
+ 	fix_debug_reg_uses based on whether SRC is ever set or not.
+ 
+ 2023-05-04  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.cc (cris_split_constant): New function.
+ 	* config/cris/cris.md (splitop): New iterator.
+ 	(opsplit1): New define_peephole2.
+ 	* config/cris/cris-protos.h (cris_split_constant): Declare.
+ 	(cris_splittable_constant_p): New macro.
+ 
+ 2023-05-04  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.cc (TARGET_SPILL_CLASS): Define
+ 	to ALL_REGS.
+ 
+ 2023-05-04  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.cc (cris_side_effect_mode_ok): Use
+ 	lra_in_progress, not reload_in_progress.
+ 	* config/cris/cris.md ("movdi", "*addi_reload"): Ditto.
+ 	* config/cris/constraints.md ("Q"): Ditto.
+ 
+ 2023-05-03  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-dce.cc (simple_dce_from_worklist): Record
+ 	stats on removed number of statements and phis.
+ 
+ 2023-05-03  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/109711
+ 	* value-range.cc (irange::verify_range): Allow types of
+ 	error_mark_node.
+ 
+ 2023-05-03  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	PR sanitizer/90746
+ 	* calls.cc (can_implement_as_sibling_call_p): Reject calls
+ 	to __sanitizer_cov_trace_pc.
+ 
+ 2023-05-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/109661
+ 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Add
+ 	a new ABI break parameter for GCC 14.  Set it to the alignment
+ 	of enums that have an underlying type.  Take the true alignment
+ 	of such enums from the TYPE_ALIGN of the underlying type's
+ 	TYPE_MAIN_VARIANT.
+ 	(aarch64_function_arg_boundary): Update accordingly.
+ 	(aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Likewise.
+ 	Warn about ABI differences.
+ 
+ 2023-05-03  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/109661
+ 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Rename
+ 	ABI break variables to abi_break_gcc_9 and abi_break_gcc_13.
+ 	(aarch64_layout_arg, aarch64_function_arg_boundary): Likewise.
+ 	(aarch64_gimplify_va_arg_expr): Likewise.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_NO_F)
+ 	(FUNCTION_WITHOUT_N_NO_F, FUNCTION_WITH_M_N_NO_U_F): New.
+ 	(vhaddq, vhsubq, vmulhq, vqaddq, vqsubq, vqdmulhq, vrhaddq)
+ 	(vrmulhq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vhaddq, vhsubq, vmulhq)
+ 	(vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vhaddq, vhsubq, vmulhq)
+ 	(vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
+ 	* config/arm/arm_mve.h (vhsubq): Remove.
+ 	(vhaddq): Remove.
+ 	(vhaddq_m): Remove.
+ 	(vhsubq_m): Remove.
+ 	(vhaddq_x): Remove.
+ 	(vhsubq_x): Remove.
+ 	(vhsubq_u8): Remove.
+ 	(vhsubq_n_u8): Remove.
+ 	(vhaddq_u8): Remove.
+ 	(vhaddq_n_u8): Remove.
+ 	(vhsubq_s8): Remove.
+ 	(vhsubq_n_s8): Remove.
+ 	(vhaddq_s8): Remove.
+ 	(vhaddq_n_s8): Remove.
+ 	(vhsubq_u16): Remove.
+ 	(vhsubq_n_u16): Remove.
+ 	(vhaddq_u16): Remove.
+ 	(vhaddq_n_u16): Remove.
+ 	(vhsubq_s16): Remove.
+ 	(vhsubq_n_s16): Remove.
+ 	(vhaddq_s16): Remove.
+ 	(vhaddq_n_s16): Remove.
+ 	(vhsubq_u32): Remove.
+ 	(vhsubq_n_u32): Remove.
+ 	(vhaddq_u32): Remove.
+ 	(vhaddq_n_u32): Remove.
+ 	(vhsubq_s32): Remove.
+ 	(vhsubq_n_s32): Remove.
+ 	(vhaddq_s32): Remove.
+ 	(vhaddq_n_s32): Remove.
+ 	(vhaddq_m_n_s8): Remove.
+ 	(vhaddq_m_n_s32): Remove.
+ 	(vhaddq_m_n_s16): Remove.
+ 	(vhaddq_m_n_u8): Remove.
+ 	(vhaddq_m_n_u32): Remove.
+ 	(vhaddq_m_n_u16): Remove.
+ 	(vhaddq_m_s8): Remove.
+ 	(vhaddq_m_s32): Remove.
+ 	(vhaddq_m_s16): Remove.
+ 	(vhaddq_m_u8): Remove.
+ 	(vhaddq_m_u32): Remove.
+ 	(vhaddq_m_u16): Remove.
+ 	(vhsubq_m_n_s8): Remove.
+ 	(vhsubq_m_n_s32): Remove.
+ 	(vhsubq_m_n_s16): Remove.
+ 	(vhsubq_m_n_u8): Remove.
+ 	(vhsubq_m_n_u32): Remove.
+ 	(vhsubq_m_n_u16): Remove.
+ 	(vhsubq_m_s8): Remove.
+ 	(vhsubq_m_s32): Remove.
+ 	(vhsubq_m_s16): Remove.
+ 	(vhsubq_m_u8): Remove.
+ 	(vhsubq_m_u32): Remove.
+ 	(vhsubq_m_u16): Remove.
+ 	(vhaddq_x_n_s8): Remove.
+ 	(vhaddq_x_n_s16): Remove.
+ 	(vhaddq_x_n_s32): Remove.
+ 	(vhaddq_x_n_u8): Remove.
+ 	(vhaddq_x_n_u16): Remove.
+ 	(vhaddq_x_n_u32): Remove.
+ 	(vhaddq_x_s8): Remove.
+ 	(vhaddq_x_s16): Remove.
+ 	(vhaddq_x_s32): Remove.
+ 	(vhaddq_x_u8): Remove.
+ 	(vhaddq_x_u16): Remove.
+ 	(vhaddq_x_u32): Remove.
+ 	(vhsubq_x_n_s8): Remove.
+ 	(vhsubq_x_n_s16): Remove.
+ 	(vhsubq_x_n_s32): Remove.
+ 	(vhsubq_x_n_u8): Remove.
+ 	(vhsubq_x_n_u16): Remove.
+ 	(vhsubq_x_n_u32): Remove.
+ 	(vhsubq_x_s8): Remove.
+ 	(vhsubq_x_s16): Remove.
+ 	(vhsubq_x_s32): Remove.
+ 	(vhsubq_x_u8): Remove.
+ 	(vhsubq_x_u16): Remove.
+ 	(vhsubq_x_u32): Remove.
+ 	(__arm_vhsubq_u8): Remove.
+ 	(__arm_vhsubq_n_u8): Remove.
+ 	(__arm_vhaddq_u8): Remove.
+ 	(__arm_vhaddq_n_u8): Remove.
+ 	(__arm_vhsubq_s8): Remove.
+ 	(__arm_vhsubq_n_s8): Remove.
+ 	(__arm_vhaddq_s8): Remove.
+ 	(__arm_vhaddq_n_s8): Remove.
+ 	(__arm_vhsubq_u16): Remove.
+ 	(__arm_vhsubq_n_u16): Remove.
+ 	(__arm_vhaddq_u16): Remove.
+ 	(__arm_vhaddq_n_u16): Remove.
+ 	(__arm_vhsubq_s16): Remove.
+ 	(__arm_vhsubq_n_s16): Remove.
+ 	(__arm_vhaddq_s16): Remove.
+ 	(__arm_vhaddq_n_s16): Remove.
+ 	(__arm_vhsubq_u32): Remove.
+ 	(__arm_vhsubq_n_u32): Remove.
+ 	(__arm_vhaddq_u32): Remove.
+ 	(__arm_vhaddq_n_u32): Remove.
+ 	(__arm_vhsubq_s32): Remove.
+ 	(__arm_vhsubq_n_s32): Remove.
+ 	(__arm_vhaddq_s32): Remove.
+ 	(__arm_vhaddq_n_s32): Remove.
+ 	(__arm_vhaddq_m_n_s8): Remove.
+ 	(__arm_vhaddq_m_n_s32): Remove.
+ 	(__arm_vhaddq_m_n_s16): Remove.
+ 	(__arm_vhaddq_m_n_u8): Remove.
+ 	(__arm_vhaddq_m_n_u32): Remove.
+ 	(__arm_vhaddq_m_n_u16): Remove.
+ 	(__arm_vhaddq_m_s8): Remove.
+ 	(__arm_vhaddq_m_s32): Remove.
+ 	(__arm_vhaddq_m_s16): Remove.
+ 	(__arm_vhaddq_m_u8): Remove.
+ 	(__arm_vhaddq_m_u32): Remove.
+ 	(__arm_vhaddq_m_u16): Remove.
+ 	(__arm_vhsubq_m_n_s8): Remove.
+ 	(__arm_vhsubq_m_n_s32): Remove.
+ 	(__arm_vhsubq_m_n_s16): Remove.
+ 	(__arm_vhsubq_m_n_u8): Remove.
+ 	(__arm_vhsubq_m_n_u32): Remove.
+ 	(__arm_vhsubq_m_n_u16): Remove.
+ 	(__arm_vhsubq_m_s8): Remove.
+ 	(__arm_vhsubq_m_s32): Remove.
+ 	(__arm_vhsubq_m_s16): Remove.
+ 	(__arm_vhsubq_m_u8): Remove.
+ 	(__arm_vhsubq_m_u32): Remove.
+ 	(__arm_vhsubq_m_u16): Remove.
+ 	(__arm_vhaddq_x_n_s8): Remove.
+ 	(__arm_vhaddq_x_n_s16): Remove.
+ 	(__arm_vhaddq_x_n_s32): Remove.
+ 	(__arm_vhaddq_x_n_u8): Remove.
+ 	(__arm_vhaddq_x_n_u16): Remove.
+ 	(__arm_vhaddq_x_n_u32): Remove.
+ 	(__arm_vhaddq_x_s8): Remove.
+ 	(__arm_vhaddq_x_s16): Remove.
+ 	(__arm_vhaddq_x_s32): Remove.
+ 	(__arm_vhaddq_x_u8): Remove.
+ 	(__arm_vhaddq_x_u16): Remove.
+ 	(__arm_vhaddq_x_u32): Remove.
+ 	(__arm_vhsubq_x_n_s8): Remove.
+ 	(__arm_vhsubq_x_n_s16): Remove.
+ 	(__arm_vhsubq_x_n_s32): Remove.
+ 	(__arm_vhsubq_x_n_u8): Remove.
+ 	(__arm_vhsubq_x_n_u16): Remove.
+ 	(__arm_vhsubq_x_n_u32): Remove.
+ 	(__arm_vhsubq_x_s8): Remove.
+ 	(__arm_vhsubq_x_s16): Remove.
+ 	(__arm_vhsubq_x_s32): Remove.
+ 	(__arm_vhsubq_x_u8): Remove.
+ 	(__arm_vhsubq_x_u16): Remove.
+ 	(__arm_vhsubq_x_u32): Remove.
+ 	(__arm_vhsubq): Remove.
+ 	(__arm_vhaddq): Remove.
+ 	(__arm_vhaddq_m): Remove.
+ 	(__arm_vhsubq_m): Remove.
+ 	(__arm_vhaddq_x): Remove.
+ 	(__arm_vhsubq_x): Remove.
+ 	(vmulhq): Remove.
+ 	(vmulhq_m): Remove.
+ 	(vmulhq_x): Remove.
+ 	(vmulhq_u8): Remove.
+ 	(vmulhq_s8): Remove.
+ 	(vmulhq_u16): Remove.
+ 	(vmulhq_s16): Remove.
+ 	(vmulhq_u32): Remove.
+ 	(vmulhq_s32): Remove.
+ 	(vmulhq_m_s8): Remove.
+ 	(vmulhq_m_s32): Remove.
+ 	(vmulhq_m_s16): Remove.
+ 	(vmulhq_m_u8): Remove.
+ 	(vmulhq_m_u32): Remove.
+ 	(vmulhq_m_u16): Remove.
+ 	(vmulhq_x_s8): Remove.
+ 	(vmulhq_x_s16): Remove.
+ 	(vmulhq_x_s32): Remove.
+ 	(vmulhq_x_u8): Remove.
+ 	(vmulhq_x_u16): Remove.
+ 	(vmulhq_x_u32): Remove.
+ 	(__arm_vmulhq_u8): Remove.
+ 	(__arm_vmulhq_s8): Remove.
+ 	(__arm_vmulhq_u16): Remove.
+ 	(__arm_vmulhq_s16): Remove.
+ 	(__arm_vmulhq_u32): Remove.
+ 	(__arm_vmulhq_s32): Remove.
+ 	(__arm_vmulhq_m_s8): Remove.
+ 	(__arm_vmulhq_m_s32): Remove.
+ 	(__arm_vmulhq_m_s16): Remove.
+ 	(__arm_vmulhq_m_u8): Remove.
+ 	(__arm_vmulhq_m_u32): Remove.
+ 	(__arm_vmulhq_m_u16): Remove.
+ 	(__arm_vmulhq_x_s8): Remove.
+ 	(__arm_vmulhq_x_s16): Remove.
+ 	(__arm_vmulhq_x_s32): Remove.
+ 	(__arm_vmulhq_x_u8): Remove.
+ 	(__arm_vmulhq_x_u16): Remove.
+ 	(__arm_vmulhq_x_u32): Remove.
+ 	(__arm_vmulhq): Remove.
+ 	(__arm_vmulhq_m): Remove.
+ 	(__arm_vmulhq_x): Remove.
+ 	(vqsubq): Remove.
+ 	(vqaddq): Remove.
+ 	(vqaddq_m): Remove.
+ 	(vqsubq_m): Remove.
+ 	(vqsubq_u8): Remove.
+ 	(vqsubq_n_u8): Remove.
+ 	(vqaddq_u8): Remove.
+ 	(vqaddq_n_u8): Remove.
+ 	(vqsubq_s8): Remove.
+ 	(vqsubq_n_s8): Remove.
+ 	(vqaddq_s8): Remove.
+ 	(vqaddq_n_s8): Remove.
+ 	(vqsubq_u16): Remove.
+ 	(vqsubq_n_u16): Remove.
+ 	(vqaddq_u16): Remove.
+ 	(vqaddq_n_u16): Remove.
+ 	(vqsubq_s16): Remove.
+ 	(vqsubq_n_s16): Remove.
+ 	(vqaddq_s16): Remove.
+ 	(vqaddq_n_s16): Remove.
+ 	(vqsubq_u32): Remove.
+ 	(vqsubq_n_u32): Remove.
+ 	(vqaddq_u32): Remove.
+ 	(vqaddq_n_u32): Remove.
+ 	(vqsubq_s32): Remove.
+ 	(vqsubq_n_s32): Remove.
+ 	(vqaddq_s32): Remove.
+ 	(vqaddq_n_s32): Remove.
+ 	(vqaddq_m_n_s8): Remove.
+ 	(vqaddq_m_n_s32): Remove.
+ 	(vqaddq_m_n_s16): Remove.
+ 	(vqaddq_m_n_u8): Remove.
+ 	(vqaddq_m_n_u32): Remove.
+ 	(vqaddq_m_n_u16): Remove.
+ 	(vqaddq_m_s8): Remove.
+ 	(vqaddq_m_s32): Remove.
+ 	(vqaddq_m_s16): Remove.
+ 	(vqaddq_m_u8): Remove.
+ 	(vqaddq_m_u32): Remove.
+ 	(vqaddq_m_u16): Remove.
+ 	(vqsubq_m_n_s8): Remove.
+ 	(vqsubq_m_n_s32): Remove.
+ 	(vqsubq_m_n_s16): Remove.
+ 	(vqsubq_m_n_u8): Remove.
+ 	(vqsubq_m_n_u32): Remove.
+ 	(vqsubq_m_n_u16): Remove.
+ 	(vqsubq_m_s8): Remove.
+ 	(vqsubq_m_s32): Remove.
+ 	(vqsubq_m_s16): Remove.
+ 	(vqsubq_m_u8): Remove.
+ 	(vqsubq_m_u32): Remove.
+ 	(vqsubq_m_u16): Remove.
+ 	(__arm_vqsubq_u8): Remove.
+ 	(__arm_vqsubq_n_u8): Remove.
+ 	(__arm_vqaddq_u8): Remove.
+ 	(__arm_vqaddq_n_u8): Remove.
+ 	(__arm_vqsubq_s8): Remove.
+ 	(__arm_vqsubq_n_s8): Remove.
+ 	(__arm_vqaddq_s8): Remove.
+ 	(__arm_vqaddq_n_s8): Remove.
+ 	(__arm_vqsubq_u16): Remove.
+ 	(__arm_vqsubq_n_u16): Remove.
+ 	(__arm_vqaddq_u16): Remove.
+ 	(__arm_vqaddq_n_u16): Remove.
+ 	(__arm_vqsubq_s16): Remove.
+ 	(__arm_vqsubq_n_s16): Remove.
+ 	(__arm_vqaddq_s16): Remove.
+ 	(__arm_vqaddq_n_s16): Remove.
+ 	(__arm_vqsubq_u32): Remove.
+ 	(__arm_vqsubq_n_u32): Remove.
+ 	(__arm_vqaddq_u32): Remove.
+ 	(__arm_vqaddq_n_u32): Remove.
+ 	(__arm_vqsubq_s32): Remove.
+ 	(__arm_vqsubq_n_s32): Remove.
+ 	(__arm_vqaddq_s32): Remove.
+ 	(__arm_vqaddq_n_s32): Remove.
+ 	(__arm_vqaddq_m_n_s8): Remove.
+ 	(__arm_vqaddq_m_n_s32): Remove.
+ 	(__arm_vqaddq_m_n_s16): Remove.
+ 	(__arm_vqaddq_m_n_u8): Remove.
+ 	(__arm_vqaddq_m_n_u32): Remove.
+ 	(__arm_vqaddq_m_n_u16): Remove.
+ 	(__arm_vqaddq_m_s8): Remove.
+ 	(__arm_vqaddq_m_s32): Remove.
+ 	(__arm_vqaddq_m_s16): Remove.
+ 	(__arm_vqaddq_m_u8): Remove.
+ 	(__arm_vqaddq_m_u32): Remove.
+ 	(__arm_vqaddq_m_u16): Remove.
+ 	(__arm_vqsubq_m_n_s8): Remove.
+ 	(__arm_vqsubq_m_n_s32): Remove.
+ 	(__arm_vqsubq_m_n_s16): Remove.
+ 	(__arm_vqsubq_m_n_u8): Remove.
+ 	(__arm_vqsubq_m_n_u32): Remove.
+ 	(__arm_vqsubq_m_n_u16): Remove.
+ 	(__arm_vqsubq_m_s8): Remove.
+ 	(__arm_vqsubq_m_s32): Remove.
+ 	(__arm_vqsubq_m_s16): Remove.
+ 	(__arm_vqsubq_m_u8): Remove.
+ 	(__arm_vqsubq_m_u32): Remove.
+ 	(__arm_vqsubq_m_u16): Remove.
+ 	(__arm_vqsubq): Remove.
+ 	(__arm_vqaddq): Remove.
+ 	(__arm_vqaddq_m): Remove.
+ 	(__arm_vqsubq_m): Remove.
+ 	(vqdmulhq): Remove.
+ 	(vqdmulhq_m): Remove.
+ 	(vqdmulhq_s8): Remove.
+ 	(vqdmulhq_n_s8): Remove.
+ 	(vqdmulhq_s16): Remove.
+ 	(vqdmulhq_n_s16): Remove.
+ 	(vqdmulhq_s32): Remove.
+ 	(vqdmulhq_n_s32): Remove.
+ 	(vqdmulhq_m_n_s8): Remove.
+ 	(vqdmulhq_m_n_s32): Remove.
+ 	(vqdmulhq_m_n_s16): Remove.
+ 	(vqdmulhq_m_s8): Remove.
+ 	(vqdmulhq_m_s32): Remove.
+ 	(vqdmulhq_m_s16): Remove.
+ 	(__arm_vqdmulhq_s8): Remove.
+ 	(__arm_vqdmulhq_n_s8): Remove.
+ 	(__arm_vqdmulhq_s16): Remove.
+ 	(__arm_vqdmulhq_n_s16): Remove.
+ 	(__arm_vqdmulhq_s32): Remove.
+ 	(__arm_vqdmulhq_n_s32): Remove.
+ 	(__arm_vqdmulhq_m_n_s8): Remove.
+ 	(__arm_vqdmulhq_m_n_s32): Remove.
+ 	(__arm_vqdmulhq_m_n_s16): Remove.
+ 	(__arm_vqdmulhq_m_s8): Remove.
+ 	(__arm_vqdmulhq_m_s32): Remove.
+ 	(__arm_vqdmulhq_m_s16): Remove.
+ 	(__arm_vqdmulhq): Remove.
+ 	(__arm_vqdmulhq_m): Remove.
+ 	(vrhaddq): Remove.
+ 	(vrhaddq_m): Remove.
+ 	(vrhaddq_x): Remove.
+ 	(vrhaddq_u8): Remove.
+ 	(vrhaddq_s8): Remove.
+ 	(vrhaddq_u16): Remove.
+ 	(vrhaddq_s16): Remove.
+ 	(vrhaddq_u32): Remove.
+ 	(vrhaddq_s32): Remove.
+ 	(vrhaddq_m_s8): Remove.
+ 	(vrhaddq_m_s32): Remove.
+ 	(vrhaddq_m_s16): Remove.
+ 	(vrhaddq_m_u8): Remove.
+ 	(vrhaddq_m_u32): Remove.
+ 	(vrhaddq_m_u16): Remove.
+ 	(vrhaddq_x_s8): Remove.
+ 	(vrhaddq_x_s16): Remove.
+ 	(vrhaddq_x_s32): Remove.
+ 	(vrhaddq_x_u8): Remove.
+ 	(vrhaddq_x_u16): Remove.
+ 	(vrhaddq_x_u32): Remove.
+ 	(__arm_vrhaddq_u8): Remove.
+ 	(__arm_vrhaddq_s8): Remove.
+ 	(__arm_vrhaddq_u16): Remove.
+ 	(__arm_vrhaddq_s16): Remove.
+ 	(__arm_vrhaddq_u32): Remove.
+ 	(__arm_vrhaddq_s32): Remove.
+ 	(__arm_vrhaddq_m_s8): Remove.
+ 	(__arm_vrhaddq_m_s32): Remove.
+ 	(__arm_vrhaddq_m_s16): Remove.
+ 	(__arm_vrhaddq_m_u8): Remove.
+ 	(__arm_vrhaddq_m_u32): Remove.
+ 	(__arm_vrhaddq_m_u16): Remove.
+ 	(__arm_vrhaddq_x_s8): Remove.
+ 	(__arm_vrhaddq_x_s16): Remove.
+ 	(__arm_vrhaddq_x_s32): Remove.
+ 	(__arm_vrhaddq_x_u8): Remove.
+ 	(__arm_vrhaddq_x_u16): Remove.
+ 	(__arm_vrhaddq_x_u32): Remove.
+ 	(__arm_vrhaddq): Remove.
+ 	(__arm_vrhaddq_m): Remove.
+ 	(__arm_vrhaddq_x): Remove.
+ 	(vrmulhq): Remove.
+ 	(vrmulhq_m): Remove.
+ 	(vrmulhq_x): Remove.
+ 	(vrmulhq_u8): Remove.
+ 	(vrmulhq_s8): Remove.
+ 	(vrmulhq_u16): Remove.
+ 	(vrmulhq_s16): Remove.
+ 	(vrmulhq_u32): Remove.
+ 	(vrmulhq_s32): Remove.
+ 	(vrmulhq_m_s8): Remove.
+ 	(vrmulhq_m_s32): Remove.
+ 	(vrmulhq_m_s16): Remove.
+ 	(vrmulhq_m_u8): Remove.
+ 	(vrmulhq_m_u32): Remove.
+ 	(vrmulhq_m_u16): Remove.
+ 	(vrmulhq_x_s8): Remove.
+ 	(vrmulhq_x_s16): Remove.
+ 	(vrmulhq_x_s32): Remove.
+ 	(vrmulhq_x_u8): Remove.
+ 	(vrmulhq_x_u16): Remove.
+ 	(vrmulhq_x_u32): Remove.
+ 	(__arm_vrmulhq_u8): Remove.
+ 	(__arm_vrmulhq_s8): Remove.
+ 	(__arm_vrmulhq_u16): Remove.
+ 	(__arm_vrmulhq_s16): Remove.
+ 	(__arm_vrmulhq_u32): Remove.
+ 	(__arm_vrmulhq_s32): Remove.
+ 	(__arm_vrmulhq_m_s8): Remove.
+ 	(__arm_vrmulhq_m_s32): Remove.
+ 	(__arm_vrmulhq_m_s16): Remove.
+ 	(__arm_vrmulhq_m_u8): Remove.
+ 	(__arm_vrmulhq_m_u32): Remove.
+ 	(__arm_vrmulhq_m_u16): Remove.
+ 	(__arm_vrmulhq_x_s8): Remove.
+ 	(__arm_vrmulhq_x_s16): Remove.
+ 	(__arm_vrmulhq_x_s32): Remove.
+ 	(__arm_vrmulhq_x_u8): Remove.
+ 	(__arm_vrmulhq_x_u16): Remove.
+ 	(__arm_vrmulhq_x_u32): Remove.
+ 	(__arm_vrmulhq): Remove.
+ 	(__arm_vrmulhq_m): Remove.
+ 	(__arm_vrmulhq_x): Remove.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_INT_SU_BINARY): New.
+ 	(mve_insn): Add vabdq, vhaddq, vhsubq, vmulhq, vqaddq, vqdmulhq,
+ 	vqrdmulhq, vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq.
+ 	(supf): Add VQDMULHQ_S, VQRDMULHQ_S.
+ 	* config/arm/mve.md (mve_vabdq_<supf><mode>)
+ 	(@mve_vhaddq_<supf><mode>, mve_vhsubq_<supf><mode>)
+ 	(mve_vmulhq_<supf><mode>, mve_vqaddq_<supf><mode>)
+ 	(mve_vqdmulhq_s<mode>, mve_vqrdmulhq_s<mode>)
+ 	(mve_vqrshlq_<supf><mode>, mve_vqshlq_<supf><mode>)
+ 	(mve_vqsubq_<supf><mode>, @mve_vrhaddq_<supf><mode>)
+ 	(mve_vrmulhq_<supf><mode>, mve_vrshlq_<supf><mode>): Merge into
+ 	...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 	* config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
+ 	(avg<mode>3_ceil, uavg<mode>3_ceil): Use gen_mve_q instead of
+ 	gen_mve_vhaddq / gen_mve_vrhaddq.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_INT_SU_M_N_BINARY): New.
+ 	(mve_insn): Add vhaddq, vhsubq, vmlaq, vmlasq, vqaddq, vqdmlahq,
+ 	vqdmlashq, vqdmulhq, vqrdmlahq, vqrdmlashq, vqrdmulhq, vqsubq.
+ 	(supf): Add VQDMLAHQ_M_N_S, VQDMLASHQ_M_N_S, VQRDMLAHQ_M_N_S,
+ 	VQRDMLASHQ_M_N_S, VQDMULHQ_M_N_S, VQRDMULHQ_M_N_S.
+ 	* config/arm/mve.md (mve_vhaddq_m_n_<supf><mode>)
+ 	(mve_vhsubq_m_n_<supf><mode>, mve_vmlaq_m_n_<supf><mode>)
+ 	(mve_vmlasq_m_n_<supf><mode>, mve_vqaddq_m_n_<supf><mode>)
+ 	(mve_vqdmlahq_m_n_s<mode>, mve_vqdmlashq_m_n_s<mode>)
+ 	(mve_vqrdmlahq_m_n_s<mode>, mve_vqrdmlashq_m_n_s<mode>)
+ 	(mve_vqsubq_m_n_<supf><mode>, mve_vqdmulhq_m_n_s<mode>)
+ 	(mve_vqrdmulhq_m_n_s<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_INT_SU_N_BINARY): New.
+ 	(mve_insn): Add vhaddq, vhsubq, vqaddq, vqdmulhq, vqrdmulhq,
+ 	vqsubq.
+ 	(supf): Add VQDMULHQ_N_S, VQRDMULHQ_N_S.
+ 	* config/arm/mve.md (mve_vhaddq_n_<supf><mode>)
+ 	(mve_vhsubq_n_<supf><mode>, mve_vqaddq_n_<supf><mode>)
+ 	(mve_vqdmulhq_n_s<mode>, mve_vqrdmulhq_n_s<mode>)
+ 	(mve_vqsubq_n_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_INT_SU_M_BINARY): New.
+ 	(mve_insn): Add vabdq, vhaddq, vhsubq, vmaxq, vminq, vmulhq,
+ 	vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq, vqdmulhq,
+ 	vqrdmladhq, vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq, vqrdmulhq,
+ 	vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq, vshlq.
+ 	(supf): Add VQDMLADHQ_M_S, VQDMLADHXQ_M_S, VQDMLSDHQ_M_S,
+ 	VQDMLSDHXQ_M_S, VQDMULHQ_M_S, VQRDMLADHQ_M_S, VQRDMLADHXQ_M_S,
+ 	VQRDMLSDHQ_M_S, VQRDMLSDHXQ_M_S, VQRDMULHQ_M_S.
+ 	* config/arm/mve.md (@mve_<mve_insn>q_m_<supf><mode>): New.
+ 	(mve_vshlq_m_<supf><mode>): Merged into
+ 	@mve_<mve_insn>q_m_<supf><mode>.
+ 	(mve_vabdq_m_<supf><mode>): Likewise.
+ 	(mve_vhaddq_m_<supf><mode>): Likewise.
+ 	(mve_vhsubq_m_<supf><mode>): Likewise.
+ 	(mve_vmaxq_m_<supf><mode>): Likewise.
+ 	(mve_vminq_m_<supf><mode>): Likewise.
+ 	(mve_vmulhq_m_<supf><mode>): Likewise.
+ 	(mve_vqaddq_m_<supf><mode>): Likewise.
+ 	(mve_vqrshlq_m_<supf><mode>): Likewise.
+ 	(mve_vqshlq_m_<supf><mode>): Likewise.
+ 	(mve_vqsubq_m_<supf><mode>): Likewise.
+ 	(mve_vrhaddq_m_<supf><mode>): Likewise.
+ 	(mve_vrmulhq_m_<supf><mode>): Likewise.
+ 	(mve_vrshlq_m_<supf><mode>): Likewise.
+ 	(mve_vqdmladhq_m_s<mode>): Likewise.
+ 	(mve_vqdmladhxq_m_s<mode>): Likewise.
+ 	(mve_vqdmlsdhq_m_s<mode>): Likewise.
+ 	(mve_vqdmlsdhxq_m_s<mode>): Likewise.
+ 	(mve_vqdmulhq_m_s<mode>): Likewise.
+ 	(mve_vqrdmladhq_m_s<mode>): Likewise.
+ 	(mve_vqrdmladhxq_m_s<mode>): Likewise.
+ 	(mve_vqrdmlsdhq_m_s<mode>): Likewise.
+ 	(mve_vqrdmlsdhxq_m_s<mode>): Likewise.
+ 	(mve_vqrdmulhq_m_s<mode>): Likewise.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_M_N): New. (vcreateq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vcreateq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vcreateq): New.
+ 	* config/arm/arm_mve.h (vcreateq_f16): Remove.
+ 	(vcreateq_f32): Remove.
+ 	(vcreateq_u8): Remove.
+ 	(vcreateq_u16): Remove.
+ 	(vcreateq_u32): Remove.
+ 	(vcreateq_u64): Remove.
+ 	(vcreateq_s8): Remove.
+ 	(vcreateq_s16): Remove.
+ 	(vcreateq_s32): Remove.
+ 	(vcreateq_s64): Remove.
+ 	(__arm_vcreateq_u8): Remove.
+ 	(__arm_vcreateq_u16): Remove.
+ 	(__arm_vcreateq_u32): Remove.
+ 	(__arm_vcreateq_u64): Remove.
+ 	(__arm_vcreateq_s8): Remove.
+ 	(__arm_vcreateq_s16): Remove.
+ 	(__arm_vcreateq_s32): Remove.
+ 	(__arm_vcreateq_s64): Remove.
+ 	(__arm_vcreateq_f16): Remove.
+ 	(__arm_vcreateq_f32): Remove.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_FP_CREATE_ONLY): New.
+ 	(mve_insn): Add VCREATEQ_S, VCREATEQ_U, VCREATEQ_F.
+ 	* config/arm/mve.md (mve_vcreateq_f<mode>): Rename into ...
+ 	(@mve_<mve_insn>q_f<mode>): ... this.
+ 	(mve_vcreateq_<supf><mode>): Rename into ...
+ 	(@mve_<mve_insn>q_<supf><mode>): ... this.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (create): New.
+ 	* config/arm/arm-mve-builtins-shapes.h: (create): New.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_mve_function_exact_insn): New.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N_NO_N_F): New.
+ 	(vorrq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vorrq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vorrq): New.
+ 	* config/arm/arm-mve-builtins.cc
+ 	(function_instance::has_inactive_argument): Handle vorrq.
+ 	* config/arm/arm_mve.h (vorrq): Remove.
+ 	(vorrq_m_n): Remove.
+ 	(vorrq_m): Remove.
+ 	(vorrq_x): Remove.
+ 	(vorrq_u8): Remove.
+ 	(vorrq_s8): Remove.
+ 	(vorrq_u16): Remove.
+ 	(vorrq_s16): Remove.
+ 	(vorrq_u32): Remove.
+ 	(vorrq_s32): Remove.
+ 	(vorrq_n_u16): Remove.
+ 	(vorrq_f16): Remove.
+ 	(vorrq_n_s16): Remove.
+ 	(vorrq_n_u32): Remove.
+ 	(vorrq_f32): Remove.
+ 	(vorrq_n_s32): Remove.
+ 	(vorrq_m_n_s16): Remove.
+ 	(vorrq_m_n_u16): Remove.
+ 	(vorrq_m_n_s32): Remove.
+ 	(vorrq_m_n_u32): Remove.
+ 	(vorrq_m_s8): Remove.
+ 	(vorrq_m_s32): Remove.
+ 	(vorrq_m_s16): Remove.
+ 	(vorrq_m_u8): Remove.
+ 	(vorrq_m_u32): Remove.
+ 	(vorrq_m_u16): Remove.
+ 	(vorrq_m_f32): Remove.
+ 	(vorrq_m_f16): Remove.
+ 	(vorrq_x_s8): Remove.
+ 	(vorrq_x_s16): Remove.
+ 	(vorrq_x_s32): Remove.
+ 	(vorrq_x_u8): Remove.
+ 	(vorrq_x_u16): Remove.
+ 	(vorrq_x_u32): Remove.
+ 	(vorrq_x_f16): Remove.
+ 	(vorrq_x_f32): Remove.
+ 	(__arm_vorrq_u8): Remove.
+ 	(__arm_vorrq_s8): Remove.
+ 	(__arm_vorrq_u16): Remove.
+ 	(__arm_vorrq_s16): Remove.
+ 	(__arm_vorrq_u32): Remove.
+ 	(__arm_vorrq_s32): Remove.
+ 	(__arm_vorrq_n_u16): Remove.
+ 	(__arm_vorrq_n_s16): Remove.
+ 	(__arm_vorrq_n_u32): Remove.
+ 	(__arm_vorrq_n_s32): Remove.
+ 	(__arm_vorrq_m_n_s16): Remove.
+ 	(__arm_vorrq_m_n_u16): Remove.
+ 	(__arm_vorrq_m_n_s32): Remove.
+ 	(__arm_vorrq_m_n_u32): Remove.
+ 	(__arm_vorrq_m_s8): Remove.
+ 	(__arm_vorrq_m_s32): Remove.
+ 	(__arm_vorrq_m_s16): Remove.
+ 	(__arm_vorrq_m_u8): Remove.
+ 	(__arm_vorrq_m_u32): Remove.
+ 	(__arm_vorrq_m_u16): Remove.
+ 	(__arm_vorrq_x_s8): Remove.
+ 	(__arm_vorrq_x_s16): Remove.
+ 	(__arm_vorrq_x_s32): Remove.
+ 	(__arm_vorrq_x_u8): Remove.
+ 	(__arm_vorrq_x_u16): Remove.
+ 	(__arm_vorrq_x_u32): Remove.
+ 	(__arm_vorrq_f16): Remove.
+ 	(__arm_vorrq_f32): Remove.
+ 	(__arm_vorrq_m_f32): Remove.
+ 	(__arm_vorrq_m_f16): Remove.
+ 	(__arm_vorrq_x_f16): Remove.
+ 	(__arm_vorrq_x_f32): Remove.
+ 	(__arm_vorrq): Remove.
+ 	(__arm_vorrq_m_n): Remove.
+ 	(__arm_vorrq_m): Remove.
+ 	(__arm_vorrq_x): Remove.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_orrq): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_orrq): New.
+ 	* config/arm/arm-mve-builtins.cc (preds_m_or_none): Remove static.
+ 	* config/arm/arm-mve-builtins.h (preds_m_or_none): Declare.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M): New.
+ 	(vandq,veorq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vandq, veorq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vandq, veorq): New.
+ 	* config/arm/arm_mve.h (vandq): Remove.
+ 	(vandq_m): Remove.
+ 	(vandq_x): Remove.
+ 	(vandq_u8): Remove.
+ 	(vandq_s8): Remove.
+ 	(vandq_u16): Remove.
+ 	(vandq_s16): Remove.
+ 	(vandq_u32): Remove.
+ 	(vandq_s32): Remove.
+ 	(vandq_f16): Remove.
+ 	(vandq_f32): Remove.
+ 	(vandq_m_s8): Remove.
+ 	(vandq_m_s32): Remove.
+ 	(vandq_m_s16): Remove.
+ 	(vandq_m_u8): Remove.
+ 	(vandq_m_u32): Remove.
+ 	(vandq_m_u16): Remove.
+ 	(vandq_m_f32): Remove.
+ 	(vandq_m_f16): Remove.
+ 	(vandq_x_s8): Remove.
+ 	(vandq_x_s16): Remove.
+ 	(vandq_x_s32): Remove.
+ 	(vandq_x_u8): Remove.
+ 	(vandq_x_u16): Remove.
+ 	(vandq_x_u32): Remove.
+ 	(vandq_x_f16): Remove.
+ 	(vandq_x_f32): Remove.
+ 	(__arm_vandq_u8): Remove.
+ 	(__arm_vandq_s8): Remove.
+ 	(__arm_vandq_u16): Remove.
+ 	(__arm_vandq_s16): Remove.
+ 	(__arm_vandq_u32): Remove.
+ 	(__arm_vandq_s32): Remove.
+ 	(__arm_vandq_m_s8): Remove.
+ 	(__arm_vandq_m_s32): Remove.
+ 	(__arm_vandq_m_s16): Remove.
+ 	(__arm_vandq_m_u8): Remove.
+ 	(__arm_vandq_m_u32): Remove.
+ 	(__arm_vandq_m_u16): Remove.
+ 	(__arm_vandq_x_s8): Remove.
+ 	(__arm_vandq_x_s16): Remove.
+ 	(__arm_vandq_x_s32): Remove.
+ 	(__arm_vandq_x_u8): Remove.
+ 	(__arm_vandq_x_u16): Remove.
+ 	(__arm_vandq_x_u32): Remove.
+ 	(__arm_vandq_f16): Remove.
+ 	(__arm_vandq_f32): Remove.
+ 	(__arm_vandq_m_f32): Remove.
+ 	(__arm_vandq_m_f16): Remove.
+ 	(__arm_vandq_x_f16): Remove.
+ 	(__arm_vandq_x_f32): Remove.
+ 	(__arm_vandq): Remove.
+ 	(__arm_vandq_m): Remove.
+ 	(__arm_vandq_x): Remove.
+ 	(veorq_m): Remove.
+ 	(veorq_x): Remove.
+ 	(veorq_u8): Remove.
+ 	(veorq_s8): Remove.
+ 	(veorq_u16): Remove.
+ 	(veorq_s16): Remove.
+ 	(veorq_u32): Remove.
+ 	(veorq_s32): Remove.
+ 	(veorq_f16): Remove.
+ 	(veorq_f32): Remove.
+ 	(veorq_m_s8): Remove.
+ 	(veorq_m_s32): Remove.
+ 	(veorq_m_s16): Remove.
+ 	(veorq_m_u8): Remove.
+ 	(veorq_m_u32): Remove.
+ 	(veorq_m_u16): Remove.
+ 	(veorq_m_f32): Remove.
+ 	(veorq_m_f16): Remove.
+ 	(veorq_x_s8): Remove.
+ 	(veorq_x_s16): Remove.
+ 	(veorq_x_s32): Remove.
+ 	(veorq_x_u8): Remove.
+ 	(veorq_x_u16): Remove.
+ 	(veorq_x_u32): Remove.
+ 	(veorq_x_f16): Remove.
+ 	(veorq_x_f32): Remove.
+ 	(__arm_veorq_u8): Remove.
+ 	(__arm_veorq_s8): Remove.
+ 	(__arm_veorq_u16): Remove.
+ 	(__arm_veorq_s16): Remove.
+ 	(__arm_veorq_u32): Remove.
+ 	(__arm_veorq_s32): Remove.
+ 	(__arm_veorq_m_s8): Remove.
+ 	(__arm_veorq_m_s32): Remove.
+ 	(__arm_veorq_m_s16): Remove.
+ 	(__arm_veorq_m_u8): Remove.
+ 	(__arm_veorq_m_u32): Remove.
+ 	(__arm_veorq_m_u16): Remove.
+ 	(__arm_veorq_x_s8): Remove.
+ 	(__arm_veorq_x_s16): Remove.
+ 	(__arm_veorq_x_s32): Remove.
+ 	(__arm_veorq_x_u8): Remove.
+ 	(__arm_veorq_x_u16): Remove.
+ 	(__arm_veorq_x_u32): Remove.
+ 	(__arm_veorq_f16): Remove.
+ 	(__arm_veorq_f32): Remove.
+ 	(__arm_veorq_m_f32): Remove.
+ 	(__arm_veorq_m_f16): Remove.
+ 	(__arm_veorq_x_f16): Remove.
+ 	(__arm_veorq_x_f32): Remove.
+ 	(__arm_veorq): Remove.
+ 	(__arm_veorq_m): Remove.
+ 	(__arm_veorq_x): Remove.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC)
+ 	(MVE_FP_M_BINARY_LOGIC): New.
+ 	(MVE_INT_M_N_BINARY_LOGIC): New.
+ 	(MVE_INT_N_BINARY_LOGIC): New.
+ 	(mve_insn): Add vand, veor, vorr, vbic.
+ 	* config/arm/mve.md (mve_vandq_m_<supf><mode>)
+ 	(mve_veorq_m_<supf><mode>, mve_vorrq_m_<supf><mode>)
+ 	(mve_vbicq_m_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_<supf><mode>): ... this.
+ 	(mve_vandq_m_f<mode>, mve_veorq_m_f<mode>, mve_vorrq_m_f<mode>)
+ 	(mve_vbicq_m_f<mode>): Merge into ...
+ 	(@mve_<mve_insn>q_m_f<mode>): ... this.
+ 	(mve_vorrq_n_<supf><mode>)
+ 	(mve_vbicq_n_<supf><mode>): Merge into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vorrq_m_n_<supf><mode>, mve_vbicq_m_n_<supf><mode>): Merge
+ 	into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary): New.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N):
+ 	New.
+ 	(vaddq, vmulq, vsubq): New.
+ 	* config/arm/arm-mve-builtins-base.def (vaddq, vmulq, vsubq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vaddq, vmulq, vsubq): New.
+ 	* config/arm/arm_mve.h (vaddq): Remove.
+ 	(vaddq_m): Remove.
+ 	(vaddq_x): Remove.
+ 	(vaddq_n_u8): Remove.
+ 	(vaddq_n_s8): Remove.
+ 	(vaddq_n_u16): Remove.
+ 	(vaddq_n_s16): Remove.
+ 	(vaddq_n_u32): Remove.
+ 	(vaddq_n_s32): Remove.
+ 	(vaddq_n_f16): Remove.
+ 	(vaddq_n_f32): Remove.
+ 	(vaddq_m_n_s8): Remove.
+ 	(vaddq_m_n_s32): Remove.
+ 	(vaddq_m_n_s16): Remove.
+ 	(vaddq_m_n_u8): Remove.
+ 	(vaddq_m_n_u32): Remove.
+ 	(vaddq_m_n_u16): Remove.
+ 	(vaddq_m_s8): Remove.
+ 	(vaddq_m_s32): Remove.
+ 	(vaddq_m_s16): Remove.
+ 	(vaddq_m_u8): Remove.
+ 	(vaddq_m_u32): Remove.
+ 	(vaddq_m_u16): Remove.
+ 	(vaddq_m_f32): Remove.
+ 	(vaddq_m_f16): Remove.
+ 	(vaddq_m_n_f32): Remove.
+ 	(vaddq_m_n_f16): Remove.
+ 	(vaddq_s8): Remove.
+ 	(vaddq_s16): Remove.
+ 	(vaddq_s32): Remove.
+ 	(vaddq_u8): Remove.
+ 	(vaddq_u16): Remove.
+ 	(vaddq_u32): Remove.
+ 	(vaddq_f16): Remove.
+ 	(vaddq_f32): Remove.
+ 	(vaddq_x_s8): Remove.
+ 	(vaddq_x_s16): Remove.
+ 	(vaddq_x_s32): Remove.
+ 	(vaddq_x_n_s8): Remove.
+ 	(vaddq_x_n_s16): Remove.
+ 	(vaddq_x_n_s32): Remove.
+ 	(vaddq_x_u8): Remove.
+ 	(vaddq_x_u16): Remove.
+ 	(vaddq_x_u32): Remove.
+ 	(vaddq_x_n_u8): Remove.
+ 	(vaddq_x_n_u16): Remove.
+ 	(vaddq_x_n_u32): Remove.
+ 	(vaddq_x_f16): Remove.
+ 	(vaddq_x_f32): Remove.
+ 	(vaddq_x_n_f16): Remove.
+ 	(vaddq_x_n_f32): Remove.
+ 	(__arm_vaddq_n_u8): Remove.
+ 	(__arm_vaddq_n_s8): Remove.
+ 	(__arm_vaddq_n_u16): Remove.
+ 	(__arm_vaddq_n_s16): Remove.
+ 	(__arm_vaddq_n_u32): Remove.
+ 	(__arm_vaddq_n_s32): Remove.
+ 	(__arm_vaddq_m_n_s8): Remove.
+ 	(__arm_vaddq_m_n_s32): Remove.
+ 	(__arm_vaddq_m_n_s16): Remove.
+ 	(__arm_vaddq_m_n_u8): Remove.
+ 	(__arm_vaddq_m_n_u32): Remove.
+ 	(__arm_vaddq_m_n_u16): Remove.
+ 	(__arm_vaddq_m_s8): Remove.
+ 	(__arm_vaddq_m_s32): Remove.
+ 	(__arm_vaddq_m_s16): Remove.
+ 	(__arm_vaddq_m_u8): Remove.
+ 	(__arm_vaddq_m_u32): Remove.
+ 	(__arm_vaddq_m_u16): Remove.
+ 	(__arm_vaddq_s8): Remove.
+ 	(__arm_vaddq_s16): Remove.
+ 	(__arm_vaddq_s32): Remove.
+ 	(__arm_vaddq_u8): Remove.
+ 	(__arm_vaddq_u16): Remove.
+ 	(__arm_vaddq_u32): Remove.
+ 	(__arm_vaddq_x_s8): Remove.
+ 	(__arm_vaddq_x_s16): Remove.
+ 	(__arm_vaddq_x_s32): Remove.
+ 	(__arm_vaddq_x_n_s8): Remove.
+ 	(__arm_vaddq_x_n_s16): Remove.
+ 	(__arm_vaddq_x_n_s32): Remove.
+ 	(__arm_vaddq_x_u8): Remove.
+ 	(__arm_vaddq_x_u16): Remove.
+ 	(__arm_vaddq_x_u32): Remove.
+ 	(__arm_vaddq_x_n_u8): Remove.
+ 	(__arm_vaddq_x_n_u16): Remove.
+ 	(__arm_vaddq_x_n_u32): Remove.
+ 	(__arm_vaddq_n_f16): Remove.
+ 	(__arm_vaddq_n_f32): Remove.
+ 	(__arm_vaddq_m_f32): Remove.
+ 	(__arm_vaddq_m_f16): Remove.
+ 	(__arm_vaddq_m_n_f32): Remove.
+ 	(__arm_vaddq_m_n_f16): Remove.
+ 	(__arm_vaddq_f16): Remove.
+ 	(__arm_vaddq_f32): Remove.
+ 	(__arm_vaddq_x_f16): Remove.
+ 	(__arm_vaddq_x_f32): Remove.
+ 	(__arm_vaddq_x_n_f16): Remove.
+ 	(__arm_vaddq_x_n_f32): Remove.
+ 	(__arm_vaddq): Remove.
+ 	(__arm_vaddq_m): Remove.
+ 	(__arm_vaddq_x): Remove.
+ 	(vmulq): Remove.
+ 	(vmulq_m): Remove.
+ 	(vmulq_x): Remove.
+ 	(vmulq_u8): Remove.
+ 	(vmulq_n_u8): Remove.
+ 	(vmulq_s8): Remove.
+ 	(vmulq_n_s8): Remove.
+ 	(vmulq_u16): Remove.
+ 	(vmulq_n_u16): Remove.
+ 	(vmulq_s16): Remove.
+ 	(vmulq_n_s16): Remove.
+ 	(vmulq_u32): Remove.
+ 	(vmulq_n_u32): Remove.
+ 	(vmulq_s32): Remove.
+ 	(vmulq_n_s32): Remove.
+ 	(vmulq_n_f16): Remove.
+ 	(vmulq_f16): Remove.
+ 	(vmulq_n_f32): Remove.
+ 	(vmulq_f32): Remove.
+ 	(vmulq_m_n_s8): Remove.
+ 	(vmulq_m_n_s32): Remove.
+ 	(vmulq_m_n_s16): Remove.
+ 	(vmulq_m_n_u8): Remove.
+ 	(vmulq_m_n_u32): Remove.
+ 	(vmulq_m_n_u16): Remove.
+ 	(vmulq_m_s8): Remove.
+ 	(vmulq_m_s32): Remove.
+ 	(vmulq_m_s16): Remove.
+ 	(vmulq_m_u8): Remove.
+ 	(vmulq_m_u32): Remove.
+ 	(vmulq_m_u16): Remove.
+ 	(vmulq_m_f32): Remove.
+ 	(vmulq_m_f16): Remove.
+ 	(vmulq_m_n_f32): Remove.
+ 	(vmulq_m_n_f16): Remove.
+ 	(vmulq_x_s8): Remove.
+ 	(vmulq_x_s16): Remove.
+ 	(vmulq_x_s32): Remove.
+ 	(vmulq_x_n_s8): Remove.
+ 	(vmulq_x_n_s16): Remove.
+ 	(vmulq_x_n_s32): Remove.
+ 	(vmulq_x_u8): Remove.
+ 	(vmulq_x_u16): Remove.
+ 	(vmulq_x_u32): Remove.
+ 	(vmulq_x_n_u8): Remove.
+ 	(vmulq_x_n_u16): Remove.
+ 	(vmulq_x_n_u32): Remove.
+ 	(vmulq_x_f16): Remove.
+ 	(vmulq_x_f32): Remove.
+ 	(vmulq_x_n_f16): Remove.
+ 	(vmulq_x_n_f32): Remove.
+ 	(__arm_vmulq_u8): Remove.
+ 	(__arm_vmulq_n_u8): Remove.
+ 	(__arm_vmulq_s8): Remove.
+ 	(__arm_vmulq_n_s8): Remove.
+ 	(__arm_vmulq_u16): Remove.
+ 	(__arm_vmulq_n_u16): Remove.
+ 	(__arm_vmulq_s16): Remove.
+ 	(__arm_vmulq_n_s16): Remove.
+ 	(__arm_vmulq_u32): Remove.
+ 	(__arm_vmulq_n_u32): Remove.
+ 	(__arm_vmulq_s32): Remove.
+ 	(__arm_vmulq_n_s32): Remove.
+ 	(__arm_vmulq_m_n_s8): Remove.
+ 	(__arm_vmulq_m_n_s32): Remove.
+ 	(__arm_vmulq_m_n_s16): Remove.
+ 	(__arm_vmulq_m_n_u8): Remove.
+ 	(__arm_vmulq_m_n_u32): Remove.
+ 	(__arm_vmulq_m_n_u16): Remove.
+ 	(__arm_vmulq_m_s8): Remove.
+ 	(__arm_vmulq_m_s32): Remove.
+ 	(__arm_vmulq_m_s16): Remove.
+ 	(__arm_vmulq_m_u8): Remove.
+ 	(__arm_vmulq_m_u32): Remove.
+ 	(__arm_vmulq_m_u16): Remove.
+ 	(__arm_vmulq_x_s8): Remove.
+ 	(__arm_vmulq_x_s16): Remove.
+ 	(__arm_vmulq_x_s32): Remove.
+ 	(__arm_vmulq_x_n_s8): Remove.
+ 	(__arm_vmulq_x_n_s16): Remove.
+ 	(__arm_vmulq_x_n_s32): Remove.
+ 	(__arm_vmulq_x_u8): Remove.
+ 	(__arm_vmulq_x_u16): Remove.
+ 	(__arm_vmulq_x_u32): Remove.
+ 	(__arm_vmulq_x_n_u8): Remove.
+ 	(__arm_vmulq_x_n_u16): Remove.
+ 	(__arm_vmulq_x_n_u32): Remove.
+ 	(__arm_vmulq_n_f16): Remove.
+ 	(__arm_vmulq_f16): Remove.
+ 	(__arm_vmulq_n_f32): Remove.
+ 	(__arm_vmulq_f32): Remove.
+ 	(__arm_vmulq_m_f32): Remove.
+ 	(__arm_vmulq_m_f16): Remove.
+ 	(__arm_vmulq_m_n_f32): Remove.
+ 	(__arm_vmulq_m_n_f16): Remove.
+ 	(__arm_vmulq_x_f16): Remove.
+ 	(__arm_vmulq_x_f32): Remove.
+ 	(__arm_vmulq_x_n_f16): Remove.
+ 	(__arm_vmulq_x_n_f32): Remove.
+ 	(__arm_vmulq): Remove.
+ 	(__arm_vmulq_m): Remove.
+ 	(__arm_vmulq_x): Remove.
+ 	(vsubq): Remove.
+ 	(vsubq_m): Remove.
+ 	(vsubq_x): Remove.
+ 	(vsubq_n_f16): Remove.
+ 	(vsubq_n_f32): Remove.
+ 	(vsubq_u8): Remove.
+ 	(vsubq_n_u8): Remove.
+ 	(vsubq_s8): Remove.
+ 	(vsubq_n_s8): Remove.
+ 	(vsubq_u16): Remove.
+ 	(vsubq_n_u16): Remove.
+ 	(vsubq_s16): Remove.
+ 	(vsubq_n_s16): Remove.
+ 	(vsubq_u32): Remove.
+ 	(vsubq_n_u32): Remove.
+ 	(vsubq_s32): Remove.
+ 	(vsubq_n_s32): Remove.
+ 	(vsubq_f16): Remove.
+ 	(vsubq_f32): Remove.
+ 	(vsubq_m_s8): Remove.
+ 	(vsubq_m_u8): Remove.
+ 	(vsubq_m_s16): Remove.
+ 	(vsubq_m_u16): Remove.
+ 	(vsubq_m_s32): Remove.
+ 	(vsubq_m_u32): Remove.
+ 	(vsubq_m_n_s8): Remove.
+ 	(vsubq_m_n_s32): Remove.
+ 	(vsubq_m_n_s16): Remove.
+ 	(vsubq_m_n_u8): Remove.
+ 	(vsubq_m_n_u32): Remove.
+ 	(vsubq_m_n_u16): Remove.
+ 	(vsubq_m_f32): Remove.
+ 	(vsubq_m_f16): Remove.
+ 	(vsubq_m_n_f32): Remove.
+ 	(vsubq_m_n_f16): Remove.
+ 	(vsubq_x_s8): Remove.
+ 	(vsubq_x_s16): Remove.
+ 	(vsubq_x_s32): Remove.
+ 	(vsubq_x_n_s8): Remove.
+ 	(vsubq_x_n_s16): Remove.
+ 	(vsubq_x_n_s32): Remove.
+ 	(vsubq_x_u8): Remove.
+ 	(vsubq_x_u16): Remove.
+ 	(vsubq_x_u32): Remove.
+ 	(vsubq_x_n_u8): Remove.
+ 	(vsubq_x_n_u16): Remove.
+ 	(vsubq_x_n_u32): Remove.
+ 	(vsubq_x_f16): Remove.
+ 	(vsubq_x_f32): Remove.
+ 	(vsubq_x_n_f16): Remove.
+ 	(vsubq_x_n_f32): Remove.
+ 	(__arm_vsubq_u8): Remove.
+ 	(__arm_vsubq_n_u8): Remove.
+ 	(__arm_vsubq_s8): Remove.
+ 	(__arm_vsubq_n_s8): Remove.
+ 	(__arm_vsubq_u16): Remove.
+ 	(__arm_vsubq_n_u16): Remove.
+ 	(__arm_vsubq_s16): Remove.
+ 	(__arm_vsubq_n_s16): Remove.
+ 	(__arm_vsubq_u32): Remove.
+ 	(__arm_vsubq_n_u32): Remove.
+ 	(__arm_vsubq_s32): Remove.
+ 	(__arm_vsubq_n_s32): Remove.
+ 	(__arm_vsubq_m_s8): Remove.
+ 	(__arm_vsubq_m_u8): Remove.
+ 	(__arm_vsubq_m_s16): Remove.
+ 	(__arm_vsubq_m_u16): Remove.
+ 	(__arm_vsubq_m_s32): Remove.
+ 	(__arm_vsubq_m_u32): Remove.
+ 	(__arm_vsubq_m_n_s8): Remove.
+ 	(__arm_vsubq_m_n_s32): Remove.
+ 	(__arm_vsubq_m_n_s16): Remove.
+ 	(__arm_vsubq_m_n_u8): Remove.
+ 	(__arm_vsubq_m_n_u32): Remove.
+ 	(__arm_vsubq_m_n_u16): Remove.
+ 	(__arm_vsubq_x_s8): Remove.
+ 	(__arm_vsubq_x_s16): Remove.
+ 	(__arm_vsubq_x_s32): Remove.
+ 	(__arm_vsubq_x_n_s8): Remove.
+ 	(__arm_vsubq_x_n_s16): Remove.
+ 	(__arm_vsubq_x_n_s32): Remove.
+ 	(__arm_vsubq_x_u8): Remove.
+ 	(__arm_vsubq_x_u16): Remove.
+ 	(__arm_vsubq_x_u32): Remove.
+ 	(__arm_vsubq_x_n_u8): Remove.
+ 	(__arm_vsubq_x_n_u16): Remove.
+ 	(__arm_vsubq_x_n_u32): Remove.
+ 	(__arm_vsubq_n_f16): Remove.
+ 	(__arm_vsubq_n_f32): Remove.
+ 	(__arm_vsubq_f16): Remove.
+ 	(__arm_vsubq_f32): Remove.
+ 	(__arm_vsubq_m_f32): Remove.
+ 	(__arm_vsubq_m_f16): Remove.
+ 	(__arm_vsubq_m_n_f32): Remove.
+ 	(__arm_vsubq_m_n_f16): Remove.
+ 	(__arm_vsubq_x_f16): Remove.
+ 	(__arm_vsubq_x_f32): Remove.
+ 	(__arm_vsubq_x_n_f16): Remove.
+ 	(__arm_vsubq_x_n_f32): Remove.
+ 	(__arm_vsubq): Remove.
+ 	(__arm_vsubq_m): Remove.
+ 	(__arm_vsubq_x): Remove.
+ 	* config/arm/arm_mve_builtins.def (vsubq_u, vsubq_s, vsubq_f):
+ 	Remove.
+ 	(vmulq_u, vmulq_s, vmulq_f): Remove.
+ 	* config/arm/mve.md (mve_vsubq_<supf><mode>): Remove.
+ 	(mve_vmulq_<supf><mode>): Remove.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/iterators.md (MVE_INT_BINARY_RTX, MVE_INT_M_BINARY)
+ 	(MVE_INT_M_N_BINARY, MVE_INT_N_BINARY, MVE_FP_M_BINARY)
+ 	(MVE_FP_M_N_BINARY, MVE_FP_N_BINARY, mve_addsubmul, mve_insn): New
+ 	iterators.
+ 	* config/arm/mve.md
+ 	(mve_vsubq_n_f<mode>, mve_vaddq_n_f<mode>, mve_vmulq_n_f<mode>):
+ 	Factorize into ...
+ 	(@mve_<mve_insn>q_n_f<mode>): ... this.
+ 	(mve_vaddq_n_<supf><mode>, mve_vmulq_n_<supf><mode>)
+ 	(mve_vsubq_n_<supf><mode>): Factorize into ...
+ 	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+ 	(mve_vaddq<mode>, mve_vmulq<mode>, mve_vsubq<mode>): Factorize
+ 	into ...
+ 	(mve_<mve_addsubmul>q<mode>): ... this.
+ 	(mve_vaddq_f<mode>, mve_vmulq_f<mode>, mve_vsubq_f<mode>):
+ 	Factorize into ...
+ 	(mve_<mve_addsubmul>q_f<mode>): ... this.
+ 	(mve_vaddq_m_<supf><mode>, mve_vmulq_m_<supf><mode>)
+ 	(mve_vsubq_m_<supf><mode>): Factorize into ...
+ 	(@mve_<mve_insn>q_m_<supf><mode>): ... this,
+ 	(mve_vaddq_m_n_<supf><mode>, mve_vmulq_m_n_<supf><mode>)
+ 	(mve_vsubq_m_n_<supf><mode>): Factorize into ...
+ 	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+ 	(mve_vaddq_m_f<mode>, mve_vmulq_m_f<mode>, mve_vsubq_m_f<mode>):
+ 	Factorize into ...
+ 	(@mve_<mve_insn>q_m_f<mode>): ... this.
+ 	(mve_vaddq_m_n_f<mode>, mve_vmulq_m_n_f<mode>)
+ 	(mve_vsubq_m_n_f<mode>): Factorize into ...
+ 	(@mve_<mve_insn>q_m_n_f<mode>): ... this.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-functions.h (class
+ 	unspec_based_mve_function_base): New.
+ 	(class unspec_based_mve_function_exact_insn): New.
+ 
+ 2023-05-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (binary_opt_n): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (binary_opt_n): New.
+ 
+ 2023-05-03  Murray Steele  <murray.steele@arm.com>
+ 	    Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class
+ 	vuninitializedq_impl): New.
+ 	* config/arm/arm-mve-builtins-base.def (vuninitializedq): New.
+ 	* config/arm/arm-mve-builtins-base.h (vuninitializedq): New
+ 	declaration.
+ 	* config/arm/arm-mve-builtins-shapes.cc	(inherent): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (inherent): New
+ 	declaration.
+ 	* config/arm/arm_mve_types.h (__arm_vuninitializedq): Move to ...
+ 	* config/arm/arm_mve.h (__arm_vuninitializedq): ... here.
+ 	(__arm_vuninitializedq_u8): Remove.
+ 	(__arm_vuninitializedq_u16): Remove.
+ 	(__arm_vuninitializedq_u32): Remove.
+ 	(__arm_vuninitializedq_u64): Remove.
+ 	(__arm_vuninitializedq_s8): Remove.
+ 	(__arm_vuninitializedq_s16): Remove.
+ 	(__arm_vuninitializedq_s32): Remove.
+ 	(__arm_vuninitializedq_s64): Remove.
+ 	(__arm_vuninitializedq_f16): Remove.
+ 	(__arm_vuninitializedq_f32): Remove.
+ 
+ 2023-05-03  Murray Steele  <murray.steele@arm.com>
+ 	    Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (vreinterpretq_impl): New class.
+ 	* config/arm/arm-mve-builtins-base.def: Define vreinterpretq.
+ 	* config/arm/arm-mve-builtins-base.h (vreinterpretq): New declaration.
+ 	* config/arm/arm-mve-builtins-shapes.cc (parse_element_type): New function.
+ 	(parse_type): Likewise.
+ 	(parse_signature): Likewise.
+ 	(build_one): Likewise.
+ 	(build_all): Likewise.
+ 	(overloaded_base): New struct.
+ 	(unary_convert_def): Likewise.
+ 	* config/arm/arm-mve-builtins-shapes.h (unary_convert): Declare.
+ 	* config/arm/arm-mve-builtins.cc (TYPES_reinterpret_signed1): New
+ 	macro.
+ 	(TYPES_reinterpret_unsigned1): Likewise.
+ 	(TYPES_reinterpret_integer): Likewise.
+ 	(TYPES_reinterpret_integer1): Likewise.
+ 	(TYPES_reinterpret_float1): Likewise.
+ 	(TYPES_reinterpret_float): Likewise.
+ 	(reinterpret_integer): New.
+ 	(reinterpret_float): New.
+ 	(handle_arm_mve_h): Register builtins.
+ 	* config/arm/arm_mve.h (vreinterpretq_s16): Remove.
+ 	(vreinterpretq_s32): Likewise.
+ 	(vreinterpretq_s64): Likewise.
+ 	(vreinterpretq_s8): Likewise.
+ 	(vreinterpretq_u16): Likewise.
+ 	(vreinterpretq_u32): Likewise.
+ 	(vreinterpretq_u64): Likewise.
+ 	(vreinterpretq_u8): Likewise.
+ 	(vreinterpretq_f16): Likewise.
+ 	(vreinterpretq_f32): Likewise.
+ 	(vreinterpretq_s16_s32): Likewise.
+ 	(vreinterpretq_s16_s64): Likewise.
+ 	(vreinterpretq_s16_s8): Likewise.
+ 	(vreinterpretq_s16_u16): Likewise.
+ 	(vreinterpretq_s16_u32): Likewise.
+ 	(vreinterpretq_s16_u64): Likewise.
+ 	(vreinterpretq_s16_u8): Likewise.
+ 	(vreinterpretq_s32_s16): Likewise.
+ 	(vreinterpretq_s32_s64): Likewise.
+ 	(vreinterpretq_s32_s8): Likewise.
+ 	(vreinterpretq_s32_u16): Likewise.
+ 	(vreinterpretq_s32_u32): Likewise.
+ 	(vreinterpretq_s32_u64): Likewise.
+ 	(vreinterpretq_s32_u8): Likewise.
+ 	(vreinterpretq_s64_s16): Likewise.
+ 	(vreinterpretq_s64_s32): Likewise.
+ 	(vreinterpretq_s64_s8): Likewise.
+ 	(vreinterpretq_s64_u16): Likewise.
+ 	(vreinterpretq_s64_u32): Likewise.
+ 	(vreinterpretq_s64_u64): Likewise.
+ 	(vreinterpretq_s64_u8): Likewise.
+ 	(vreinterpretq_s8_s16): Likewise.
+ 	(vreinterpretq_s8_s32): Likewise.
+ 	(vreinterpretq_s8_s64): Likewise.
+ 	(vreinterpretq_s8_u16): Likewise.
+ 	(vreinterpretq_s8_u32): Likewise.
+ 	(vreinterpretq_s8_u64): Likewise.
+ 	(vreinterpretq_s8_u8): Likewise.
+ 	(vreinterpretq_u16_s16): Likewise.
+ 	(vreinterpretq_u16_s32): Likewise.
+ 	(vreinterpretq_u16_s64): Likewise.
+ 	(vreinterpretq_u16_s8): Likewise.
+ 	(vreinterpretq_u16_u32): Likewise.
+ 	(vreinterpretq_u16_u64): Likewise.
+ 	(vreinterpretq_u16_u8): Likewise.
+ 	(vreinterpretq_u32_s16): Likewise.
+ 	(vreinterpretq_u32_s32): Likewise.
+ 	(vreinterpretq_u32_s64): Likewise.
+ 	(vreinterpretq_u32_s8): Likewise.
+ 	(vreinterpretq_u32_u16): Likewise.
+ 	(vreinterpretq_u32_u64): Likewise.
+ 	(vreinterpretq_u32_u8): Likewise.
+ 	(vreinterpretq_u64_s16): Likewise.
+ 	(vreinterpretq_u64_s32): Likewise.
+ 	(vreinterpretq_u64_s64): Likewise.
+ 	(vreinterpretq_u64_s8): Likewise.
+ 	(vreinterpretq_u64_u16): Likewise.
+ 	(vreinterpretq_u64_u32): Likewise.
+ 	(vreinterpretq_u64_u8): Likewise.
+ 	(vreinterpretq_u8_s16): Likewise.
+ 	(vreinterpretq_u8_s32): Likewise.
+ 	(vreinterpretq_u8_s64): Likewise.
+ 	(vreinterpretq_u8_s8): Likewise.
+ 	(vreinterpretq_u8_u16): Likewise.
+ 	(vreinterpretq_u8_u32): Likewise.
+ 	(vreinterpretq_u8_u64): Likewise.
+ 	(vreinterpretq_s32_f16): Likewise.
+ 	(vreinterpretq_s32_f32): Likewise.
+ 	(vreinterpretq_u16_f16): Likewise.
+ 	(vreinterpretq_u16_f32): Likewise.
+ 	(vreinterpretq_u32_f16): Likewise.
+ 	(vreinterpretq_u32_f32): Likewise.
+ 	(vreinterpretq_u64_f16): Likewise.
+ 	(vreinterpretq_u64_f32): Likewise.
+ 	(vreinterpretq_u8_f16): Likewise.
+ 	(vreinterpretq_u8_f32): Likewise.
+ 	(vreinterpretq_f16_f32): Likewise.
+ 	(vreinterpretq_f16_s16): Likewise.
+ 	(vreinterpretq_f16_s32): Likewise.
+ 	(vreinterpretq_f16_s64): Likewise.
+ 	(vreinterpretq_f16_s8): Likewise.
+ 	(vreinterpretq_f16_u16): Likewise.
+ 	(vreinterpretq_f16_u32): Likewise.
+ 	(vreinterpretq_f16_u64): Likewise.
+ 	(vreinterpretq_f16_u8): Likewise.
+ 	(vreinterpretq_f32_f16): Likewise.
+ 	(vreinterpretq_f32_s16): Likewise.
+ 	(vreinterpretq_f32_s32): Likewise.
+ 	(vreinterpretq_f32_s64): Likewise.
+ 	(vreinterpretq_f32_s8): Likewise.
+ 	(vreinterpretq_f32_u16): Likewise.
+ 	(vreinterpretq_f32_u32): Likewise.
+ 	(vreinterpretq_f32_u64): Likewise.
+ 	(vreinterpretq_f32_u8): Likewise.
+ 	(vreinterpretq_s16_f16): Likewise.
+ 	(vreinterpretq_s16_f32): Likewise.
+ 	(vreinterpretq_s64_f16): Likewise.
+ 	(vreinterpretq_s64_f32): Likewise.
+ 	(vreinterpretq_s8_f16): Likewise.
+ 	(vreinterpretq_s8_f32): Likewise.
+ 	(__arm_vreinterpretq_f16): Likewise.
+ 	(__arm_vreinterpretq_f32): Likewise.
+ 	(__arm_vreinterpretq_s16): Likewise.
+ 	(__arm_vreinterpretq_s32): Likewise.
+ 	(__arm_vreinterpretq_s64): Likewise.
+ 	(__arm_vreinterpretq_s8): Likewise.
+ 	(__arm_vreinterpretq_u16): Likewise.
+ 	(__arm_vreinterpretq_u32): Likewise.
+ 	(__arm_vreinterpretq_u64): Likewise.
+ 	(__arm_vreinterpretq_u8): Likewise.
+ 	* config/arm/arm_mve_types.h (__arm_vreinterpretq_s16_s32): Remove.
+ 	(__arm_vreinterpretq_s16_s64): Likewise.
+ 	(__arm_vreinterpretq_s16_s8): Likewise.
+ 	(__arm_vreinterpretq_s16_u16): Likewise.
+ 	(__arm_vreinterpretq_s16_u32): Likewise.
+ 	(__arm_vreinterpretq_s16_u64): Likewise.
+ 	(__arm_vreinterpretq_s16_u8): Likewise.
+ 	(__arm_vreinterpretq_s32_s16): Likewise.
+ 	(__arm_vreinterpretq_s32_s64): Likewise.
+ 	(__arm_vreinterpretq_s32_s8): Likewise.
+ 	(__arm_vreinterpretq_s32_u16): Likewise.
+ 	(__arm_vreinterpretq_s32_u32): Likewise.
+ 	(__arm_vreinterpretq_s32_u64): Likewise.
+ 	(__arm_vreinterpretq_s32_u8): Likewise.
+ 	(__arm_vreinterpretq_s64_s16): Likewise.
+ 	(__arm_vreinterpretq_s64_s32): Likewise.
+ 	(__arm_vreinterpretq_s64_s8): Likewise.
+ 	(__arm_vreinterpretq_s64_u16): Likewise.
+ 	(__arm_vreinterpretq_s64_u32): Likewise.
+ 	(__arm_vreinterpretq_s64_u64): Likewise.
+ 	(__arm_vreinterpretq_s64_u8): Likewise.
+ 	(__arm_vreinterpretq_s8_s16): Likewise.
+ 	(__arm_vreinterpretq_s8_s32): Likewise.
+ 	(__arm_vreinterpretq_s8_s64): Likewise.
+ 	(__arm_vreinterpretq_s8_u16): Likewise.
+ 	(__arm_vreinterpretq_s8_u32): Likewise.
+ 	(__arm_vreinterpretq_s8_u64): Likewise.
+ 	(__arm_vreinterpretq_s8_u8): Likewise.
+ 	(__arm_vreinterpretq_u16_s16): Likewise.
+ 	(__arm_vreinterpretq_u16_s32): Likewise.
+ 	(__arm_vreinterpretq_u16_s64): Likewise.
+ 	(__arm_vreinterpretq_u16_s8): Likewise.
+ 	(__arm_vreinterpretq_u16_u32): Likewise.
+ 	(__arm_vreinterpretq_u16_u64): Likewise.
+ 	(__arm_vreinterpretq_u16_u8): Likewise.
+ 	(__arm_vreinterpretq_u32_s16): Likewise.
+ 	(__arm_vreinterpretq_u32_s32): Likewise.
+ 	(__arm_vreinterpretq_u32_s64): Likewise.
+ 	(__arm_vreinterpretq_u32_s8): Likewise.
+ 	(__arm_vreinterpretq_u32_u16): Likewise.
+ 	(__arm_vreinterpretq_u32_u64): Likewise.
+ 	(__arm_vreinterpretq_u32_u8): Likewise.
+ 	(__arm_vreinterpretq_u64_s16): Likewise.
+ 	(__arm_vreinterpretq_u64_s32): Likewise.
+ 	(__arm_vreinterpretq_u64_s64): Likewise.
+ 	(__arm_vreinterpretq_u64_s8): Likewise.
+ 	(__arm_vreinterpretq_u64_u16): Likewise.
+ 	(__arm_vreinterpretq_u64_u32): Likewise.
+ 	(__arm_vreinterpretq_u64_u8): Likewise.
+ 	(__arm_vreinterpretq_u8_s16): Likewise.
+ 	(__arm_vreinterpretq_u8_s32): Likewise.
+ 	(__arm_vreinterpretq_u8_s64): Likewise.
+ 	(__arm_vreinterpretq_u8_s8): Likewise.
+ 	(__arm_vreinterpretq_u8_u16): Likewise.
+ 	(__arm_vreinterpretq_u8_u32): Likewise.
+ 	(__arm_vreinterpretq_u8_u64): Likewise.
+ 	(__arm_vreinterpretq_s32_f16): Likewise.
+ 	(__arm_vreinterpretq_s32_f32): Likewise.
+ 	(__arm_vreinterpretq_s16_f16): Likewise.
+ 	(__arm_vreinterpretq_s16_f32): Likewise.
+ 	(__arm_vreinterpretq_s64_f16): Likewise.
+ 	(__arm_vreinterpretq_s64_f32): Likewise.
+ 	(__arm_vreinterpretq_s8_f16): Likewise.
+ 	(__arm_vreinterpretq_s8_f32): Likewise.
+ 	(__arm_vreinterpretq_u16_f16): Likewise.
+ 	(__arm_vreinterpretq_u16_f32): Likewise.
+ 	(__arm_vreinterpretq_u32_f16): Likewise.
+ 	(__arm_vreinterpretq_u32_f32): Likewise.
+ 	(__arm_vreinterpretq_u64_f16): Likewise.
+ 	(__arm_vreinterpretq_u64_f32): Likewise.
+ 	(__arm_vreinterpretq_u8_f16): Likewise.
+ 	(__arm_vreinterpretq_u8_f32): Likewise.
+ 	(__arm_vreinterpretq_f16_f32): Likewise.
+ 	(__arm_vreinterpretq_f16_s16): Likewise.
+ 	(__arm_vreinterpretq_f16_s32): Likewise.
+ 	(__arm_vreinterpretq_f16_s64): Likewise.
+ 	(__arm_vreinterpretq_f16_s8): Likewise.
+ 	(__arm_vreinterpretq_f16_u16): Likewise.
+ 	(__arm_vreinterpretq_f16_u32): Likewise.
+ 	(__arm_vreinterpretq_f16_u64): Likewise.
+ 	(__arm_vreinterpretq_f16_u8): Likewise.
+ 	(__arm_vreinterpretq_f32_f16): Likewise.
+ 	(__arm_vreinterpretq_f32_s16): Likewise.
+ 	(__arm_vreinterpretq_f32_s32): Likewise.
+ 	(__arm_vreinterpretq_f32_s64): Likewise.
+ 	(__arm_vreinterpretq_f32_s8): Likewise.
+ 	(__arm_vreinterpretq_f32_u16): Likewise.
+ 	(__arm_vreinterpretq_f32_u32): Likewise.
+ 	(__arm_vreinterpretq_f32_u64): Likewise.
+ 	(__arm_vreinterpretq_f32_u8): Likewise.
+ 	(__arm_vreinterpretq_s16): Likewise.
+ 	(__arm_vreinterpretq_s32): Likewise.
+ 	(__arm_vreinterpretq_s64): Likewise.
+ 	(__arm_vreinterpretq_s8): Likewise.
+ 	(__arm_vreinterpretq_u16): Likewise.
+ 	(__arm_vreinterpretq_u32): Likewise.
+ 	(__arm_vreinterpretq_u64): Likewise.
+ 	(__arm_vreinterpretq_u8): Likewise.
+ 	(__arm_vreinterpretq_f16): Likewise.
+ 	(__arm_vreinterpretq_f32): Likewise.
+ 	* config/arm/mve.md (@arm_mve_reinterpret<mode>): New pattern.
+ 	* config/arm/unspecs.md: (REINTERPRET): New unspec.
+ 
+ 2023-05-03  Murray Steele  <murray.steele@arm.com>
+ 	    Christophe Lyon  <christophe.lyon@arm.com>
+ 	    Christophe Lyon   <christophe.lyon@arm.com
+ 
+ 	* config.gcc: Add arm-mve-builtins-base.o and
+ 	arm-mve-builtins-shapes.o to extra_objs.
+ 	* config/arm/arm-builtins.cc (arm_builtin_decl): Handle MVE builtin
+ 	numberspace.
+ 	(arm_expand_builtin): Likewise
+ 	(arm_check_builtin_call): Likewise
+ 	(arm_describe_resolver): Likewise.
+ 	* config/arm/arm-builtins.h (enum resolver_ident): Add
+ 	arm_mve_resolver.
+ 	* config/arm/arm-c.cc (arm_pragma_arm): Handle new pragma.
+ 	(arm_resolve_overloaded_builtin): Handle MVE builtins.
+ 	(arm_register_target_pragmas): Register arm_check_builtin_call.
+ 	* config/arm/arm-mve-builtins.cc (class registered_function): New
+ 	class.
+ 	(struct registered_function_hasher): New struct.
+ 	(pred_suffixes): New table.
+ 	(mode_suffixes): New table.
+ 	(type_suffix_info): New table.
+ 	(TYPES_float16): New.
+ 	(TYPES_all_float): New.
+ 	(TYPES_integer_8): New.
+ 	(TYPES_integer_8_16): New.
+ 	(TYPES_integer_16_32): New.
+ 	(TYPES_integer_32): New.
+ 	(TYPES_signed_16_32): New.
+ 	(TYPES_signed_32): New.
+ 	(TYPES_all_signed): New.
+ 	(TYPES_all_unsigned): New.
+ 	(TYPES_all_integer): New.
+ 	(TYPES_all_integer_with_64): New.
+ 	(DEF_VECTOR_TYPE): New.
+ 	(DEF_DOUBLE_TYPE): New.
+ 	(DEF_MVE_TYPES_ARRAY): New.
+ 	(all_integer): New.
+ 	(all_integer_with_64): New.
+ 	(float16): New.
+ 	(all_float): New.
+ 	(all_signed): New.
+ 	(all_unsigned): New.
+ 	(integer_8): New.
+ 	(integer_8_16): New.
+ 	(integer_16_32): New.
+ 	(integer_32): New.
+ 	(signed_16_32): New.
+ 	(signed_32): New.
+ 	(register_vector_type): Use void_type_node for mve.fp-only types when
+ 	mve.fp is not enabled.
+ 	(register_builtin_tuple_types): Likewise.
+ 	(handle_arm_mve_h): New function..
+ 	(matches_type_p): Likewise..
+ 	(report_out_of_range): Likewise.
+ 	(report_not_enum): Likewise.
+ 	(report_missing_float): Likewise.
+ 	(report_non_ice): Likewise.
+ 	(check_requires_float): Likewise.
+ 	(function_instance::hash): Likewise
+ 	(function_instance::call_properties): Likewise.
+ 	(function_instance::reads_global_state_p): Likewise.
+ 	(function_instance::modifies_global_state_p): Likewise.
+ 	(function_instance::could_trap_p): Likewise.
+ 	(function_instance::has_inactive_argument): Likewise.
+ 	(registered_function_hasher::hash): Likewise.
+ 	(registered_function_hasher::equal): Likewise.
+ 	(function_builder::function_builder): Likewise.
+ 	(function_builder::~function_builder): Likewise.
+ 	(function_builder::append_name): Likewise.
+ 	(function_builder::finish_name): Likewise.
+ 	(function_builder::get_name): Likewise.
+ 	(add_attribute): Likewise.
+ 	(function_builder::get_attributes): Likewise.
+ 	(function_builder::add_function): Likewise.
+ 	(function_builder::add_unique_function): Likewise.
+ 	(function_builder::add_overloaded_function): Likewise.
+ 	(function_builder::add_overloaded_functions): Likewise.
+ 	(function_builder::register_function_group): Likewise.
+ 	(function_call_info::function_call_info): Likewise.
+ 	(function_resolver::function_resolver): Likewise.
+ 	(function_resolver::get_vector_type): Likewise.
+ 	(function_resolver::get_scalar_type_name): Likewise.
+ 	(function_resolver::get_argument_type): Likewise.
+ 	(function_resolver::scalar_argument_p): Likewise.
+ 	(function_resolver::report_no_such_form): Likewise.
+ 	(function_resolver::lookup_form): Likewise.
+ 	(function_resolver::resolve_to): Likewise.
+ 	(function_resolver::infer_vector_or_tuple_type): Likewise.
+ 	(function_resolver::infer_vector_type): Likewise.
+ 	(function_resolver::require_vector_or_scalar_type): Likewise.
+ 	(function_resolver::require_vector_type): Likewise.
+ 	(function_resolver::require_matching_vector_type): Likewise.
+ 	(function_resolver::require_derived_vector_type): Likewise.
+ 	(function_resolver::require_derived_scalar_type): Likewise.
+ 	(function_resolver::require_integer_immediate): Likewise.
+ 	(function_resolver::require_scalar_type): Likewise.
+ 	(function_resolver::check_num_arguments): Likewise.
+ 	(function_resolver::check_gp_argument): Likewise.
+ 	(function_resolver::finish_opt_n_resolution): Likewise.
+ 	(function_resolver::resolve_unary): Likewise.
+ 	(function_resolver::resolve_unary_n): Likewise.
+ 	(function_resolver::resolve_uniform): Likewise.
+ 	(function_resolver::resolve_uniform_opt_n): Likewise.
+ 	(function_resolver::resolve): Likewise.
+ 	(function_checker::function_checker): Likewise.
+ 	(function_checker::argument_exists_p): Likewise.
+ 	(function_checker::require_immediate): Likewise.
+ 	(function_checker::require_immediate_enum): Likewise.
+ 	(function_checker::require_immediate_range): Likewise.
+ 	(function_checker::check): Likewise.
+ 	(gimple_folder::gimple_folder): Likewise.
+ 	(gimple_folder::fold): Likewise.
+ 	(function_expander::function_expander): Likewise.
+ 	(function_expander::direct_optab_handler): Likewise.
+ 	(function_expander::get_fallback_value): Likewise.
+ 	(function_expander::get_reg_target): Likewise.
+ 	(function_expander::add_output_operand): Likewise.
+ 	(function_expander::add_input_operand): Likewise.
+ 	(function_expander::add_integer_operand): Likewise.
+ 	(function_expander::generate_insn): Likewise.
+ 	(function_expander::use_exact_insn): Likewise.
+ 	(function_expander::use_unpred_insn): Likewise.
+ 	(function_expander::use_pred_x_insn): Likewise.
+ 	(function_expander::use_cond_insn): Likewise.
+ 	(function_expander::map_to_rtx_codes): Likewise.
+ 	(function_expander::expand): Likewise.
+ 	(resolve_overloaded_builtin): Likewise.
+ 	(check_builtin_call): Likewise.
+ 	(gimple_fold_builtin): Likewise.
+ 	(expand_builtin): Likewise.
+ 	(gt_ggc_mx): Likewise.
+ 	(gt_pch_nx): Likewise.
+ 	(gt_pch_nx): Likewise.
+ 	* config/arm/arm-mve-builtins.def(s8): Define new type suffix.
+ 	(s16): Likewise.
+ 	(s32): Likewise.
+ 	(s64): Likewise.
+ 	(u8): Likewise.
+ 	(u16): Likewise.
+ 	(u32): Likewise.
+ 	(u64): Likewise.
+ 	(f16): Likewise.
+ 	(f32): Likewise.
+ 	(n): New mode.
+ 	(offset): New mode.
+ 	* config/arm/arm-mve-builtins.h (MAX_TUPLE_SIZE): New constant.
+ 	(CP_READ_FPCR): Likewise.
+ 	(CP_RAISE_FP_EXCEPTIONS): Likewise.
+ 	(CP_READ_MEMORY): Likewise.
+ 	(CP_WRITE_MEMORY): Likewise.
+ 	(enum units_index): New enum.
+ 	(enum predication_index): New.
+ 	(enum type_class_index): New.
+ 	(enum mode_suffix_index): New enum.
+ 	(enum type_suffix_index): New.
+ 	(struct mode_suffix_info): New struct.
+ 	(struct type_suffix_info): New.
+ 	(struct function_group_info): Likewise.
+ 	(class function_instance): Likewise.
+ 	(class registered_function): Likewise.
+ 	(class function_builder): Likewise.
+ 	(class function_call_info): Likewise.
+ 	(class function_resolver): Likewise.
+ 	(class function_checker): Likewise.
+ 	(class gimple_folder): Likewise.
+ 	(class function_expander): Likewise.
+ 	(get_mve_pred16_t): Likewise.
+ 	(find_mode_suffix): New function.
+ 	(class function_base): Likewise.
+ 	(class function_shape): Likewise.
+ 	(function_instance::operator==): New function.
+ 	(function_instance::operator!=): Likewise.
+ 	(function_instance::vectors_per_tuple): Likewise.
+ 	(function_instance::mode_suffix): Likewise.
+ 	(function_instance::type_suffix): Likewise.
+ 	(function_instance::scalar_type): Likewise.
+ 	(function_instance::vector_type): Likewise.
+ 	(function_instance::tuple_type): Likewise.
+ 	(function_instance::vector_mode): Likewise.
+ 	(function_call_info::function_returns_void_p): Likewise.
+ 	(function_base::call_properties): Likewise.
+ 	* config/arm/arm-protos.h (enum arm_builtin_class): Add
+ 	ARM_BUILTIN_MVE.
+ 	(handle_arm_mve_h): New.
+ 	(resolve_overloaded_builtin): New.
+ 	(check_builtin_call): New.
+ 	(gimple_fold_builtin): New.
+ 	(expand_builtin): New.
+ 	* config/arm/arm.cc (TARGET_GIMPLE_FOLD_BUILTIN): Define as
+ 	arm_gimple_fold_builtin.
+ 	(arm_gimple_fold_builtin): New function.
+ 	* config/arm/arm_mve.h: Use new arm_mve.h pragma.
+ 	* config/arm/predicates.md (arm_any_register_operand): New predicate.
+ 	* config/arm/t-arm: (arm-mve-builtins.o): Add includes.
+ 	(arm-mve-builtins-shapes.o): New target.
+ 	(arm-mve-builtins-base.o): New target.
+ 	* config/arm/arm-mve-builtins-base.cc: New file.
+ 	* config/arm/arm-mve-builtins-base.def: New file.
+ 	* config/arm/arm-mve-builtins-base.h: New file.
+ 	* config/arm/arm-mve-builtins-functions.h: New file.
+ 	* config/arm/arm-mve-builtins-shapes.cc: New file.
+ 	* config/arm/arm-mve-builtins-shapes.h: New file.
+ 
+ 2023-05-03  Murray Steele  <murray.steele@arm.com>
+ 	    Christophe Lyon  <christophe.lyon@arm.com>
+ 	    Christophe Lyon   <christophe.lyon@arm.com>
+ 
+ 	* config/arm/arm-builtins.cc (arm_general_add_builtin_function):
+ 	New function.
+ 	(arm_init_builtin): Use arm_general_add_builtin_function instead
+ 	of arm_add_builtin_function.
+ 	(arm_init_acle_builtins): Likewise.
+ 	(arm_init_mve_builtins): Likewise.
+ 	(arm_init_crypto_builtins): Likewise.
+ 	(arm_init_builtins): Likewise.
+ 	(arm_general_builtin_decl): New function.
+ 	(arm_builtin_decl): Defer to numberspace-specialized functions.
+ 	(arm_expand_builtin_args): Rename into arm_general_expand_builtin_args.
+ 	(arm_expand_builtin_1): Rename into arm_general_expand_builtin_1 and ...
+ 	(arm_general_expand_builtin_1): ... specialize for general builtins.
+ 	(arm_expand_acle_builtin): Use arm_general_expand_builtin
+ 	instead of arm_expand_builtin.
+ 	(arm_expand_mve_builtin): Likewise.
+ 	(arm_expand_neon_builtin): Likewise.
+ 	(arm_expand_vfp_builtin): Likewise.
+ 	(arm_general_expand_builtin): New function.
+ 	(arm_expand_builtin): Specialize for general builtins.
+ 	(arm_general_check_builtin_call): New function.
+ 	(arm_check_builtin_call): Specialize for general builtins.
+ 	(arm_describe_resolver): Validate numberspace.
+ 	(arm_cde_end_args): Likewise.
+ 	* config/arm/arm-protos.h (enum arm_builtin_class): New enum.
+ 	(ARM_BUILTIN_SHIFT, ARM_BUILTIN_CLASS): New constants.
+ 
+ 2023-05-03  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR target/109713
+ 	* config/riscv/sync.md: Add gcc_unreachable to a switch.
+ 
+ 2023-05-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-split.cc (split_at_bb_p): Avoid last_stmt.
+ 	(patch_loop_exit): Likewise.
+ 	(connect_loops): Likewise.
+ 	(split_loop): Likewise.
+ 	(control_dep_semi_invariant_p): Likewise.
+ 	(do_split_loop_on_cond): Likewise.
+ 	(split_loop_on_cond): Likewise.
+ 	* tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
+ 	Likewise.
+ 	(simplify_loop_version): Likewise.
+ 	(evaluate_bbs): Likewise.
+ 	(find_loop_guard): Likewise.
+ 	(clean_up_after_unswitching): Likewise.
+ 	* tree-ssa-math-opts.cc (maybe_optimize_guarding_check):
+ 	Likewise.
+ 	(optimize_spaceship): Take a gcond * argument, avoid
+ 	last_stmt.
+ 	(math_opts_dom_walker::after_dom_children): Adjust call to
+ 	optimize_spaceship.
+ 	* tree-vrp.cc (maybe_set_nonzero_bits): Avoid last_stmt.
+ 	* value-pointer-equiv.cc (pointer_equiv_analyzer::visit_edge):
+ 	Likewise.
+ 
+ 2023-05-03  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* config/riscv/linux.h (LIB_SPEC): Don't redefine.
+ 
+ 2023-05-03  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load):
+ 	New function.
+ 	(class vlseg): New class.
+ 	(class vsseg): Ditto.
+ 	(class vlsseg): Ditto.
+ 	(class vssseg): Ditto.
+ 	(class seg_indexed_load): Ditto.
+ 	(class seg_indexed_store): Ditto.
+ 	(class vlsegff): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vlseg):
+ 	Ditto.
+ 	(vsseg): Ditto.
+ 	(vlsseg): Ditto.
+ 	(vssseg): Ditto.
+ 	(vluxseg): Ditto.
+ 	(vloxseg): Ditto.
+ 	(vsuxseg): Ditto.
+ 	(vsoxseg): Ditto.
+ 	(vlsegff): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct
+ 	seg_loadstore_def): Ditto.
+ 	(struct seg_indexed_loadstore_def): Ditto.
+ 	(struct seg_fault_load_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_builder::append_nf): New function.
+ 	* config/riscv/riscv-vector-builtins.def (vfloat32m1x2_t):
+ 	Change ptr from double into float.
+ 	(vfloat32m1x3_t): Ditto.
+ 	(vfloat32m1x4_t): Ditto.
+ 	(vfloat32m1x5_t): Ditto.
+ 	(vfloat32m1x6_t): Ditto.
+ 	(vfloat32m1x7_t): Ditto.
+ 	(vfloat32m1x8_t): Ditto.
+ 	(vfloat32m2x2_t): Ditto.
+ 	(vfloat32m2x3_t): Ditto.
+ 	(vfloat32m2x4_t): Ditto.
+ 	(vfloat32m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h: Add segment intrinsics.
+ 	* config/riscv/riscv-vsetvl.cc (fault_first_load_p): Adapt for
+ 	segment ff load.
+ 	* config/riscv/riscv.md: Add segment instructions.
+ 	* config/riscv/vector-iterators.md: Support segment intrinsics.
+ 	* config/riscv/vector.md (@pred_unit_strided_load<mode>): New
+ 	pattern.
+ 	(@pred_unit_strided_store<mode>): Ditto.
+ 	(@pred_strided_load<mode>): Ditto.
+ 	(@pred_strided_store<mode>): Ditto.
+ 	(@pred_fault_load<mode>): Ditto.
+ 	(@pred_indexed_<order>load<V1T:mode><V1I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V2T:mode><V2I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V4T:mode><V4I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V8T:mode><V8I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V16T:mode><V16I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V32T:mode><V32I:mode>): Ditto.
+ 	(@pred_indexed_<order>load<V64T:mode><V64I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V1T:mode><V1I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V2T:mode><V2I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V4T:mode><V4I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V8T:mode><V8I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V16T:mode><V16I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V32T:mode><V32I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<V64T:mode><V64I:mode>): Ditto.
+ 
+ 2023-05-03  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc (valid_type): Adapt for
+ 	tuple type support.
+ 	(inttype): Ditto.
+ 	(floattype): Ditto.
+ 	(main): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vset): Add
+ 	tuple type vset.
+ 	(vget): Add tuple type vget.
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(DEF_RVV_TUPLE_OPS): New macro.
+ 	(vint8mf8x2_t): Ditto.
+ 	(vuint8mf8x2_t): Ditto.
+ 	(vint8mf8x3_t): Ditto.
+ 	(vuint8mf8x3_t): Ditto.
+ 	(vint8mf8x4_t): Ditto.
+ 	(vuint8mf8x4_t): Ditto.
+ 	(vint8mf8x5_t): Ditto.
+ 	(vuint8mf8x5_t): Ditto.
+ 	(vint8mf8x6_t): Ditto.
+ 	(vuint8mf8x6_t): Ditto.
+ 	(vint8mf8x7_t): Ditto.
+ 	(vuint8mf8x7_t): Ditto.
+ 	(vint8mf8x8_t): Ditto.
+ 	(vuint8mf8x8_t): Ditto.
+ 	(vint8mf4x2_t): Ditto.
+ 	(vuint8mf4x2_t): Ditto.
+ 	(vint8mf4x3_t): Ditto.
+ 	(vuint8mf4x3_t): Ditto.
+ 	(vint8mf4x4_t): Ditto.
+ 	(vuint8mf4x4_t): Ditto.
+ 	(vint8mf4x5_t): Ditto.
+ 	(vuint8mf4x5_t): Ditto.
+ 	(vint8mf4x6_t): Ditto.
+ 	(vuint8mf4x6_t): Ditto.
+ 	(vint8mf4x7_t): Ditto.
+ 	(vuint8mf4x7_t): Ditto.
+ 	(vint8mf4x8_t): Ditto.
+ 	(vuint8mf4x8_t): Ditto.
+ 	(vint8mf2x2_t): Ditto.
+ 	(vuint8mf2x2_t): Ditto.
+ 	(vint8mf2x3_t): Ditto.
+ 	(vuint8mf2x3_t): Ditto.
+ 	(vint8mf2x4_t): Ditto.
+ 	(vuint8mf2x4_t): Ditto.
+ 	(vint8mf2x5_t): Ditto.
+ 	(vuint8mf2x5_t): Ditto.
+ 	(vint8mf2x6_t): Ditto.
+ 	(vuint8mf2x6_t): Ditto.
+ 	(vint8mf2x7_t): Ditto.
+ 	(vuint8mf2x7_t): Ditto.
+ 	(vint8mf2x8_t): Ditto.
+ 	(vuint8mf2x8_t): Ditto.
+ 	(vint8m1x2_t): Ditto.
+ 	(vuint8m1x2_t): Ditto.
+ 	(vint8m1x3_t): Ditto.
+ 	(vuint8m1x3_t): Ditto.
+ 	(vint8m1x4_t): Ditto.
+ 	(vuint8m1x4_t): Ditto.
+ 	(vint8m1x5_t): Ditto.
+ 	(vuint8m1x5_t): Ditto.
+ 	(vint8m1x6_t): Ditto.
+ 	(vuint8m1x6_t): Ditto.
+ 	(vint8m1x7_t): Ditto.
+ 	(vuint8m1x7_t): Ditto.
+ 	(vint8m1x8_t): Ditto.
+ 	(vuint8m1x8_t): Ditto.
+ 	(vint8m2x2_t): Ditto.
+ 	(vuint8m2x2_t): Ditto.
+ 	(vint8m2x3_t): Ditto.
+ 	(vuint8m2x3_t): Ditto.
+ 	(vint8m2x4_t): Ditto.
+ 	(vuint8m2x4_t): Ditto.
+ 	(vint8m4x2_t): Ditto.
+ 	(vuint8m4x2_t): Ditto.
+ 	(vint16mf4x2_t): Ditto.
+ 	(vuint16mf4x2_t): Ditto.
+ 	(vint16mf4x3_t): Ditto.
+ 	(vuint16mf4x3_t): Ditto.
+ 	(vint16mf4x4_t): Ditto.
+ 	(vuint16mf4x4_t): Ditto.
+ 	(vint16mf4x5_t): Ditto.
+ 	(vuint16mf4x5_t): Ditto.
+ 	(vint16mf4x6_t): Ditto.
+ 	(vuint16mf4x6_t): Ditto.
+ 	(vint16mf4x7_t): Ditto.
+ 	(vuint16mf4x7_t): Ditto.
+ 	(vint16mf4x8_t): Ditto.
+ 	(vuint16mf4x8_t): Ditto.
+ 	(vint16mf2x2_t): Ditto.
+ 	(vuint16mf2x2_t): Ditto.
+ 	(vint16mf2x3_t): Ditto.
+ 	(vuint16mf2x3_t): Ditto.
+ 	(vint16mf2x4_t): Ditto.
+ 	(vuint16mf2x4_t): Ditto.
+ 	(vint16mf2x5_t): Ditto.
+ 	(vuint16mf2x5_t): Ditto.
+ 	(vint16mf2x6_t): Ditto.
+ 	(vuint16mf2x6_t): Ditto.
+ 	(vint16mf2x7_t): Ditto.
+ 	(vuint16mf2x7_t): Ditto.
+ 	(vint16mf2x8_t): Ditto.
+ 	(vuint16mf2x8_t): Ditto.
+ 	(vint16m1x2_t): Ditto.
+ 	(vuint16m1x2_t): Ditto.
+ 	(vint16m1x3_t): Ditto.
+ 	(vuint16m1x3_t): Ditto.
+ 	(vint16m1x4_t): Ditto.
+ 	(vuint16m1x4_t): Ditto.
+ 	(vint16m1x5_t): Ditto.
+ 	(vuint16m1x5_t): Ditto.
+ 	(vint16m1x6_t): Ditto.
+ 	(vuint16m1x6_t): Ditto.
+ 	(vint16m1x7_t): Ditto.
+ 	(vuint16m1x7_t): Ditto.
+ 	(vint16m1x8_t): Ditto.
+ 	(vuint16m1x8_t): Ditto.
+ 	(vint16m2x2_t): Ditto.
+ 	(vuint16m2x2_t): Ditto.
+ 	(vint16m2x3_t): Ditto.
+ 	(vuint16m2x3_t): Ditto.
+ 	(vint16m2x4_t): Ditto.
+ 	(vuint16m2x4_t): Ditto.
+ 	(vint16m4x2_t): Ditto.
+ 	(vuint16m4x2_t): Ditto.
+ 	(vint32mf2x2_t): Ditto.
+ 	(vuint32mf2x2_t): Ditto.
+ 	(vint32mf2x3_t): Ditto.
+ 	(vuint32mf2x3_t): Ditto.
+ 	(vint32mf2x4_t): Ditto.
+ 	(vuint32mf2x4_t): Ditto.
+ 	(vint32mf2x5_t): Ditto.
+ 	(vuint32mf2x5_t): Ditto.
+ 	(vint32mf2x6_t): Ditto.
+ 	(vuint32mf2x6_t): Ditto.
+ 	(vint32mf2x7_t): Ditto.
+ 	(vuint32mf2x7_t): Ditto.
+ 	(vint32mf2x8_t): Ditto.
+ 	(vuint32mf2x8_t): Ditto.
+ 	(vint32m1x2_t): Ditto.
+ 	(vuint32m1x2_t): Ditto.
+ 	(vint32m1x3_t): Ditto.
+ 	(vuint32m1x3_t): Ditto.
+ 	(vint32m1x4_t): Ditto.
+ 	(vuint32m1x4_t): Ditto.
+ 	(vint32m1x5_t): Ditto.
+ 	(vuint32m1x5_t): Ditto.
+ 	(vint32m1x6_t): Ditto.
+ 	(vuint32m1x6_t): Ditto.
+ 	(vint32m1x7_t): Ditto.
+ 	(vuint32m1x7_t): Ditto.
+ 	(vint32m1x8_t): Ditto.
+ 	(vuint32m1x8_t): Ditto.
+ 	(vint32m2x2_t): Ditto.
+ 	(vuint32m2x2_t): Ditto.
+ 	(vint32m2x3_t): Ditto.
+ 	(vuint32m2x3_t): Ditto.
+ 	(vint32m2x4_t): Ditto.
+ 	(vuint32m2x4_t): Ditto.
+ 	(vint32m4x2_t): Ditto.
+ 	(vuint32m4x2_t): Ditto.
+ 	(vint64m1x2_t): Ditto.
+ 	(vuint64m1x2_t): Ditto.
+ 	(vint64m1x3_t): Ditto.
+ 	(vuint64m1x3_t): Ditto.
+ 	(vint64m1x4_t): Ditto.
+ 	(vuint64m1x4_t): Ditto.
+ 	(vint64m1x5_t): Ditto.
+ 	(vuint64m1x5_t): Ditto.
+ 	(vint64m1x6_t): Ditto.
+ 	(vuint64m1x6_t): Ditto.
+ 	(vint64m1x7_t): Ditto.
+ 	(vuint64m1x7_t): Ditto.
+ 	(vint64m1x8_t): Ditto.
+ 	(vuint64m1x8_t): Ditto.
+ 	(vint64m2x2_t): Ditto.
+ 	(vuint64m2x2_t): Ditto.
+ 	(vint64m2x3_t): Ditto.
+ 	(vuint64m2x3_t): Ditto.
+ 	(vint64m2x4_t): Ditto.
+ 	(vuint64m2x4_t): Ditto.
+ 	(vint64m4x2_t): Ditto.
+ 	(vuint64m4x2_t): Ditto.
+ 	(vfloat32mf2x2_t): Ditto.
+ 	(vfloat32mf2x3_t): Ditto.
+ 	(vfloat32mf2x4_t): Ditto.
+ 	(vfloat32mf2x5_t): Ditto.
+ 	(vfloat32mf2x6_t): Ditto.
+ 	(vfloat32mf2x7_t): Ditto.
+ 	(vfloat32mf2x8_t): Ditto.
+ 	(vfloat32m1x2_t): Ditto.
+ 	(vfloat32m1x3_t): Ditto.
+ 	(vfloat32m1x4_t): Ditto.
+ 	(vfloat32m1x5_t): Ditto.
+ 	(vfloat32m1x6_t): Ditto.
+ 	(vfloat32m1x7_t): Ditto.
+ 	(vfloat32m1x8_t): Ditto.
+ 	(vfloat32m2x2_t): Ditto.
+ 	(vfloat32m2x3_t): Ditto.
+ 	(vfloat32m2x4_t): Ditto.
+ 	(vfloat32m4x2_t): Ditto.
+ 	(vfloat64m1x2_t): Ditto.
+ 	(vfloat64m1x3_t): Ditto.
+ 	(vfloat64m1x4_t): Ditto.
+ 	(vfloat64m1x5_t): Ditto.
+ 	(vfloat64m1x6_t): Ditto.
+ 	(vfloat64m1x7_t): Ditto.
+ 	(vfloat64m1x8_t): Ditto.
+ 	(vfloat64m2x2_t): Ditto.
+ 	(vfloat64m2x3_t): Ditto.
+ 	(vfloat64m2x4_t): Ditto.
+ 	(vfloat64m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_OPS):
+ 	Ditto.
+ 	(DEF_RVV_TYPE_INDEX): Ditto.
+ 	(rvv_arg_type_info::get_tuple_subpart_type): New function.
+ 	(DEF_RVV_TUPLE_TYPE): New macro.
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX):
+ 	Adapt for tuple vget/vset support.
+ 	(vint8mf4_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vint8mf2_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vint8m1_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vint8m2_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vint8m4_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vint8m8_t): Ditto.
+ 	(vuint8m8_t): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	(vfloat64m1_t): Ditto.
+ 	(vfloat64m2_t): Ditto.
+ 	(vfloat64m4_t): Ditto.
+ 	(vfloat64m8_t): Ditto.
+ 	(tuple_subpart): Add tuple subpart base type.
+ 	* config/riscv/riscv-vector-builtins.h (struct
+ 	rvv_arg_type_info): Ditto.
+ 	(tuple_type_field): New function.
+ 
+ 2023-05-03  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
+ 	(RVV_TUPLE_PARTIAL_MODES): Ditto.
+ 	* config/riscv/riscv-protos.h (riscv_v_ext_tuple_mode_p): New
+ 	function.
+ 	(get_nf): Ditto.
+ 	(get_subpart_mode): Ditto.
+ 	(get_tuple_mode): Ditto.
+ 	(expand_tuple_move): Ditto.
+ 	* config/riscv/riscv-v.cc (ENTRY): New macro.
+ 	(TUPLE_ENTRY): Ditto.
+ 	(get_nf): New function.
+ 	(get_subpart_mode): Ditto.
+ 	(get_tuple_mode): Ditto.
+ 	(expand_tuple_move): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_TYPE):
+ 	New macro.
+ 	(register_tuple_type): New function
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TUPLE_TYPE):
+ 	New macro.
+ 	(vint8mf8x2_t): New macro.
+ 	(vuint8mf8x2_t): Ditto.
+ 	(vint8mf8x3_t): Ditto.
+ 	(vuint8mf8x3_t): Ditto.
+ 	(vint8mf8x4_t): Ditto.
+ 	(vuint8mf8x4_t): Ditto.
+ 	(vint8mf8x5_t): Ditto.
+ 	(vuint8mf8x5_t): Ditto.
+ 	(vint8mf8x6_t): Ditto.
+ 	(vuint8mf8x6_t): Ditto.
+ 	(vint8mf8x7_t): Ditto.
+ 	(vuint8mf8x7_t): Ditto.
+ 	(vint8mf8x8_t): Ditto.
+ 	(vuint8mf8x8_t): Ditto.
+ 	(vint8mf4x2_t): Ditto.
+ 	(vuint8mf4x2_t): Ditto.
+ 	(vint8mf4x3_t): Ditto.
+ 	(vuint8mf4x3_t): Ditto.
+ 	(vint8mf4x4_t): Ditto.
+ 	(vuint8mf4x4_t): Ditto.
+ 	(vint8mf4x5_t): Ditto.
+ 	(vuint8mf4x5_t): Ditto.
+ 	(vint8mf4x6_t): Ditto.
+ 	(vuint8mf4x6_t): Ditto.
+ 	(vint8mf4x7_t): Ditto.
+ 	(vuint8mf4x7_t): Ditto.
+ 	(vint8mf4x8_t): Ditto.
+ 	(vuint8mf4x8_t): Ditto.
+ 	(vint8mf2x2_t): Ditto.
+ 	(vuint8mf2x2_t): Ditto.
+ 	(vint8mf2x3_t): Ditto.
+ 	(vuint8mf2x3_t): Ditto.
+ 	(vint8mf2x4_t): Ditto.
+ 	(vuint8mf2x4_t): Ditto.
+ 	(vint8mf2x5_t): Ditto.
+ 	(vuint8mf2x5_t): Ditto.
+ 	(vint8mf2x6_t): Ditto.
+ 	(vuint8mf2x6_t): Ditto.
+ 	(vint8mf2x7_t): Ditto.
+ 	(vuint8mf2x7_t): Ditto.
+ 	(vint8mf2x8_t): Ditto.
+ 	(vuint8mf2x8_t): Ditto.
+ 	(vint8m1x2_t): Ditto.
+ 	(vuint8m1x2_t): Ditto.
+ 	(vint8m1x3_t): Ditto.
+ 	(vuint8m1x3_t): Ditto.
+ 	(vint8m1x4_t): Ditto.
+ 	(vuint8m1x4_t): Ditto.
+ 	(vint8m1x5_t): Ditto.
+ 	(vuint8m1x5_t): Ditto.
+ 	(vint8m1x6_t): Ditto.
+ 	(vuint8m1x6_t): Ditto.
+ 	(vint8m1x7_t): Ditto.
+ 	(vuint8m1x7_t): Ditto.
+ 	(vint8m1x8_t): Ditto.
+ 	(vuint8m1x8_t): Ditto.
+ 	(vint8m2x2_t): Ditto.
+ 	(vuint8m2x2_t): Ditto.
+ 	(vint8m2x3_t): Ditto.
+ 	(vuint8m2x3_t): Ditto.
+ 	(vint8m2x4_t): Ditto.
+ 	(vuint8m2x4_t): Ditto.
+ 	(vint8m4x2_t): Ditto.
+ 	(vuint8m4x2_t): Ditto.
+ 	(vint16mf4x2_t): Ditto.
+ 	(vuint16mf4x2_t): Ditto.
+ 	(vint16mf4x3_t): Ditto.
+ 	(vuint16mf4x3_t): Ditto.
+ 	(vint16mf4x4_t): Ditto.
+ 	(vuint16mf4x4_t): Ditto.
+ 	(vint16mf4x5_t): Ditto.
+ 	(vuint16mf4x5_t): Ditto.
+ 	(vint16mf4x6_t): Ditto.
+ 	(vuint16mf4x6_t): Ditto.
+ 	(vint16mf4x7_t): Ditto.
+ 	(vuint16mf4x7_t): Ditto.
+ 	(vint16mf4x8_t): Ditto.
+ 	(vuint16mf4x8_t): Ditto.
+ 	(vint16mf2x2_t): Ditto.
+ 	(vuint16mf2x2_t): Ditto.
+ 	(vint16mf2x3_t): Ditto.
+ 	(vuint16mf2x3_t): Ditto.
+ 	(vint16mf2x4_t): Ditto.
+ 	(vuint16mf2x4_t): Ditto.
+ 	(vint16mf2x5_t): Ditto.
+ 	(vuint16mf2x5_t): Ditto.
+ 	(vint16mf2x6_t): Ditto.
+ 	(vuint16mf2x6_t): Ditto.
+ 	(vint16mf2x7_t): Ditto.
+ 	(vuint16mf2x7_t): Ditto.
+ 	(vint16mf2x8_t): Ditto.
+ 	(vuint16mf2x8_t): Ditto.
+ 	(vint16m1x2_t): Ditto.
+ 	(vuint16m1x2_t): Ditto.
+ 	(vint16m1x3_t): Ditto.
+ 	(vuint16m1x3_t): Ditto.
+ 	(vint16m1x4_t): Ditto.
+ 	(vuint16m1x4_t): Ditto.
+ 	(vint16m1x5_t): Ditto.
+ 	(vuint16m1x5_t): Ditto.
+ 	(vint16m1x6_t): Ditto.
+ 	(vuint16m1x6_t): Ditto.
+ 	(vint16m1x7_t): Ditto.
+ 	(vuint16m1x7_t): Ditto.
+ 	(vint16m1x8_t): Ditto.
+ 	(vuint16m1x8_t): Ditto.
+ 	(vint16m2x2_t): Ditto.
+ 	(vuint16m2x2_t): Ditto.
+ 	(vint16m2x3_t): Ditto.
+ 	(vuint16m2x3_t): Ditto.
+ 	(vint16m2x4_t): Ditto.
+ 	(vuint16m2x4_t): Ditto.
+ 	(vint16m4x2_t): Ditto.
+ 	(vuint16m4x2_t): Ditto.
+ 	(vint32mf2x2_t): Ditto.
+ 	(vuint32mf2x2_t): Ditto.
+ 	(vint32mf2x3_t): Ditto.
+ 	(vuint32mf2x3_t): Ditto.
+ 	(vint32mf2x4_t): Ditto.
+ 	(vuint32mf2x4_t): Ditto.
+ 	(vint32mf2x5_t): Ditto.
+ 	(vuint32mf2x5_t): Ditto.
+ 	(vint32mf2x6_t): Ditto.
+ 	(vuint32mf2x6_t): Ditto.
+ 	(vint32mf2x7_t): Ditto.
+ 	(vuint32mf2x7_t): Ditto.
+ 	(vint32mf2x8_t): Ditto.
+ 	(vuint32mf2x8_t): Ditto.
+ 	(vint32m1x2_t): Ditto.
+ 	(vuint32m1x2_t): Ditto.
+ 	(vint32m1x3_t): Ditto.
+ 	(vuint32m1x3_t): Ditto.
+ 	(vint32m1x4_t): Ditto.
+ 	(vuint32m1x4_t): Ditto.
+ 	(vint32m1x5_t): Ditto.
+ 	(vuint32m1x5_t): Ditto.
+ 	(vint32m1x6_t): Ditto.
+ 	(vuint32m1x6_t): Ditto.
+ 	(vint32m1x7_t): Ditto.
+ 	(vuint32m1x7_t): Ditto.
+ 	(vint32m1x8_t): Ditto.
+ 	(vuint32m1x8_t): Ditto.
+ 	(vint32m2x2_t): Ditto.
+ 	(vuint32m2x2_t): Ditto.
+ 	(vint32m2x3_t): Ditto.
+ 	(vuint32m2x3_t): Ditto.
+ 	(vint32m2x4_t): Ditto.
+ 	(vuint32m2x4_t): Ditto.
+ 	(vint32m4x2_t): Ditto.
+ 	(vuint32m4x2_t): Ditto.
+ 	(vint64m1x2_t): Ditto.
+ 	(vuint64m1x2_t): Ditto.
+ 	(vint64m1x3_t): Ditto.
+ 	(vuint64m1x3_t): Ditto.
+ 	(vint64m1x4_t): Ditto.
+ 	(vuint64m1x4_t): Ditto.
+ 	(vint64m1x5_t): Ditto.
+ 	(vuint64m1x5_t): Ditto.
+ 	(vint64m1x6_t): Ditto.
+ 	(vuint64m1x6_t): Ditto.
+ 	(vint64m1x7_t): Ditto.
+ 	(vuint64m1x7_t): Ditto.
+ 	(vint64m1x8_t): Ditto.
+ 	(vuint64m1x8_t): Ditto.
+ 	(vint64m2x2_t): Ditto.
+ 	(vuint64m2x2_t): Ditto.
+ 	(vint64m2x3_t): Ditto.
+ 	(vuint64m2x3_t): Ditto.
+ 	(vint64m2x4_t): Ditto.
+ 	(vuint64m2x4_t): Ditto.
+ 	(vint64m4x2_t): Ditto.
+ 	(vuint64m4x2_t): Ditto.
+ 	(vfloat32mf2x2_t): Ditto.
+ 	(vfloat32mf2x3_t): Ditto.
+ 	(vfloat32mf2x4_t): Ditto.
+ 	(vfloat32mf2x5_t): Ditto.
+ 	(vfloat32mf2x6_t): Ditto.
+ 	(vfloat32mf2x7_t): Ditto.
+ 	(vfloat32mf2x8_t): Ditto.
+ 	(vfloat32m1x2_t): Ditto.
+ 	(vfloat32m1x3_t): Ditto.
+ 	(vfloat32m1x4_t): Ditto.
+ 	(vfloat32m1x5_t): Ditto.
+ 	(vfloat32m1x6_t): Ditto.
+ 	(vfloat32m1x7_t): Ditto.
+ 	(vfloat32m1x8_t): Ditto.
+ 	(vfloat32m2x2_t): Ditto.
+ 	(vfloat32m2x3_t): Ditto.
+ 	(vfloat32m2x4_t): Ditto.
+ 	(vfloat32m4x2_t): Ditto.
+ 	(vfloat64m1x2_t): Ditto.
+ 	(vfloat64m1x3_t): Ditto.
+ 	(vfloat64m1x4_t): Ditto.
+ 	(vfloat64m1x5_t): Ditto.
+ 	(vfloat64m1x6_t): Ditto.
+ 	(vfloat64m1x7_t): Ditto.
+ 	(vfloat64m1x8_t): Ditto.
+ 	(vfloat64m2x2_t): Ditto.
+ 	(vfloat64m2x3_t): Ditto.
+ 	(vfloat64m2x4_t): Ditto.
+ 	(vfloat64m4x2_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (DEF_RVV_TUPLE_TYPE):
+ 	Ditto.
+ 	* config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): Ditto.
+ 	* config/riscv/riscv.cc (riscv_v_ext_tuple_mode_p): New
+ 	function.
+ 	(TUPLE_ENTRY): Ditto.
+ 	(riscv_v_ext_mode_p): New function.
+ 	(riscv_v_adjust_nunits): Add tuple mode adjustment.
+ 	(riscv_classify_address): Ditto.
+ 	(riscv_binary_cost): Ditto.
+ 	(riscv_rtx_costs): Ditto.
+ 	(riscv_secondary_memory_needed): Ditto.
+ 	(riscv_hard_regno_nregs): Ditto.
+ 	(riscv_hard_regno_mode_ok): Ditto.
+ 	(riscv_vector_mode_supported_p): Ditto.
+ 	(riscv_regmode_natural_size): Ditto.
+ 	(riscv_array_mode): New function.
+ 	(TARGET_ARRAY_MODE): New target hook.
+ 	* config/riscv/riscv.md: Add tuple modes.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md (mov<mode>): Add tuple modes data
+ 	movement.
+ 	(*mov<VT:mode>_<P:mode>): Ditto.
+ 
+ 2023-05-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* cse.cc (cse_insn): Track an equivalence to the destination
+ 	separately and delay using src_related for it.
+ 
+ 2023-05-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* cse.cc (HASH): Turn into inline function and mix
+ 	in another HASH_SHIFT bits.
+ 	(SAFE_HASH): Likewise.
+ 
+ 2023-05-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur>h<addsub><mode>): Rename to...
+ 	(aarch64_<sur>h<addsub><mode><vczle><vczbe>): ... This.
+ 
+ 2023-05-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (add<mode>3): Rename to...
+ 	(add<mode>3<vczle><vczbe>): ... This.
+ 	(sub<mode>3): Rename to...
+ 	(sub<mode>3<vczle><vczbe>): ... This.
+ 	(mul<mode>3): Rename to...
+ 	(mul<mode>3<vczle><vczbe>): ... This.
+ 	(*div<mode>3): Rename to...
+ 	(*div<mode>3<vczle><vczbe>): ... This.
+ 	(neg<mode>2): Rename to...
+ 	(neg<mode>2<vczle><vczbe>): ... This.
+ 	(abs<mode>2): Rename to...
+ 	(abs<mode>2<vczle><vczbe>): ... This.
+ 	(<frint_pattern><mode>2): Rename to...
+ 	(<frint_pattern><mode>2<vczle><vczbe>): ... This.
+ 	(<fmaxmin><mode>3): Rename to...
+ 	(<fmaxmin><mode>3<vczle><vczbe>): ... This.
+ 	(*sqrt<mode>2): Rename to...
+ 	(*sqrt<mode>2<vczle><vczbe>): ... This.
+ 
+ 2023-05-03  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* doc/md.texi (RISC-V): Add vr, vm, vd constarint.
+ 
+ 2023-05-03  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR tree-optimization/109693
+ 	* value-range-storage.cc (vrange_allocator::vrange_allocator):
+ 	Remove unused field.
+ 	* value-range-storage.h: Likewise.
+ 
+ 2023-05-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (move_stmt): New function.
+ 	(match_simplify_replacement): Use move_stmt instead
+ 	of the inlined version.
+ 
+ 2023-05-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd (a != 0 ? CLRSB(a) : CST -> CLRSB(a)): New
+ 	pattern.
+ 
+ 2023-05-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109702
+ 	* match.pd: Fix "a != 0 ? FUNC(a) : CST" patterns
+ 	for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
+ 
+ 2023-05-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR target/109657
+ 	* config/aarch64/aarch64.md (*cmov<mode>_insn_m1): New
+ 	insn_and_split pattern.
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync.md (atomic_load<mode>): Implement atomic
+ 	load mapping.
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync.md (mem_thread_fence_1): Change fence
+ 	depending on the given memory model.
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_union_memmodels): Expose
+ 	riscv_union_memmodels function to sync.md.
+ 	* config/riscv/riscv.cc (riscv_union_memmodels): Add function to
+ 	get the union of two memmodels in sync.md.
+ 	(riscv_print_operand): Add %I and %J flags that output the
+ 	optimal LR/SC flag bits for a given memory model.
+ 	* config/riscv/sync.md: Remove static .aqrl bits on LR op/.rl
+ 	bits on SC op and replace with optimized %I, %J flags.
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc
+ 	(riscv_memmodel_needs_amo_release): Change function name.
+ 	(riscv_print_operand): Remove unneeded %F case.
+ 	* config/riscv/sync.md: Remove unneeded fences.
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	PR target/89835
+ 	* config/riscv/sync.md (atomic_store<mode>): Use simple store
+ 	instruction in combination with fence(s).
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_print_operand): Change behavior
+ 	of %A to include release bits.
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync.md (atomic_cas_value_strong<mode>): Change
+ 	FENCE/LR.aq/SC.aq into sequentially consistent LR.aqrl/SC.rl
+ 	pair.
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/sync.md: Change LR.aq/SC.rl pairs into
+ 	sequentially consistent LR.aqrl/SC.rl pairs.
+ 
+ 2023-05-02  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc: Remove MEMMODEL_SYNC_* cases and
+ 	sanitize memmodel input with memmodel_base.
+ 
+ 2023-05-02  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 	    Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/109617
+ 	* config/riscv/vector-iterators.md: Support VNx2HI and VNX4DI when MIN_VLEN >= 128.
+ 
+ 2023-05-02  Romain Naour  <romain.naour@gmail.com>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc: Use log2 from the C header, without
+ 	the namespace.
+ 
+ 2023-05-02  Martin Liska  <mliska@suse.cz>
+ 
+ 	* doc/invoke.texi: Update documentation based on param.opt file.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109672
+ 	* tree-vect-stmts.cc (vectorizable_operation): For plus,
+ 	minus and negate always check the vector mode is word mode.
+ 
+ 2023-05-01  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc: Update comment about
+ 	how the transformation are implemented.
+ 
+ 2023-05-01  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	* config/stormy16/stormy16.cc (TARGET_LRA_P): Remove defintion.
+ 
+ 2023-05-01  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	* config/cris/cris.cc (TARGET_LRA_P): Remove.
+ 	* config/epiphany/epiphany.cc (TARGET_LRA_P): Remove.
+ 	* config/iq2000/iq2000.cc (TARGET_LRA_P): Remove.
+ 	* config/m32r/m32r.cc (TARGET_LRA_P): Remove.
+ 	* config/microblaze/microblaze.cc (TARGET_LRA_P): Remove.
+ 	* config/mmix/mmix.cc (TARGET_LRA_P): Remove.
+ 
+ 2023-05-01  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
+ 
+ 	* print-tree.h (PRINT_DECL_REMAP_DEBUG): New flag.
+ 	* print-tree.cc (print_decl_identifier): Implement it.
+ 	* toplev.cc (output_stack_usage_1): Use it.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (class int_range): Remove gt_ggc_mx and gt_pch_nx
+ 	friends.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (irange::set_nonzero): Inline.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-op.cc (cfn_ffs::fold_range): Use the correct
+ 	precision.
+ 	* gimple-ssa-warn-alloca.cc (alloca_call_type): Use <2> for
+ 	invalid_range, as it is an inverse range.
+ 	* tree-vrp.cc (find_case_label_range): Avoid trees.
+ 	* value-range.cc (irange::irange_set): Delete.
+ 	(irange::irange_set_1bit_anti_range): Delete.
+ 	(irange::irange_set_anti_range): Delete.
+ 	(irange::set): Cleanup.
+ 	* value-range.h (class irange): Remove irange_set,
+ 	irange_set_anti_range, irange_set_1bit_anti_range.
+ 	(irange::set_undefined): Remove set to m_type.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op.cc (update_known_bitmask): Adjust for irange containing
+ 	wide_ints internally.
+ 	* tree-ssanames.cc (set_nonzero_bits): Same.
+ 	* tree-ssanames.h (set_nonzero_bits): Same.
+ 	* value-range-storage.cc (irange_storage::set_irange): Same.
+ 	(irange_storage::get_irange): Same.
+ 	* value-range.cc (irange::operator=): Same.
+ 	(irange::irange_set): Same.
+ 	(irange::irange_set_1bit_anti_range): Same.
+ 	(irange::irange_set_anti_range): Same.
+ 	(irange::set): Same.
+ 	(irange::verify_range): Same.
+ 	(irange::contains_p): Same.
+ 	(irange::irange_single_pair_union): Same.
+ 	(irange::union_): Same.
+ 	(irange::irange_contains_p): Same.
+ 	(irange::intersect): Same.
+ 	(irange::invert): Same.
+ 	(irange::set_range_from_nonzero_bits): Same.
+ 	(irange::set_nonzero_bits): Same.
+ 	(mask_to_wi): Same.
+ 	(irange::intersect_nonzero_bits): Same.
+ 	(irange::union_nonzero_bits): Same.
+ 	(gt_ggc_mx): Same.
+ 	(gt_pch_nx): Same.
+ 	(tree_range): Same.
+ 	(range_tests_strict_enum): Same.
+ 	(range_tests_misc): Same.
+ 	(range_tests_nonzero_bits): Same.
+ 	* value-range.h (irange::type): Same.
+ 	(irange::varying_compatible_p): Same.
+ 	(irange::irange): Same.
+ 	(int_range::int_range): Same.
+ 	(irange::set_undefined): Same.
+ 	(irange::set_varying): Same.
+ 	(irange::lower_bound): Same.
+ 	(irange::upper_bound): Same.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-fold.cc (tree_lower_bound): Delete.
+ 	(tree_upper_bound): Delete.
+ 	(vrp_val_max): Delete.
+ 	(vrp_val_min): Delete.
+ 	(fold_using_range::range_of_ssa_name_with_loop_info): Call
+ 	range_of_var_in_loop.
+ 	* vr-values.cc (valid_value_p): Delete.
+ 	(fix_overflow): Delete.
+ 	(get_scev_info): New.
+ 	(bounds_of_var_in_loop): Refactor into...
+ 	(induction_variable_may_overflow_p): ...this,
+ 	(range_from_loop_direction): ...and this,
+ 	(range_of_var_in_loop): ...and this.
+ 	* vr-values.h (bounds_of_var_in_loop): Delete.
+ 	(range_of_var_in_loop): New.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-range-fold.cc (adjust_pointer_diff_expr): Rewrite with
+ 	irange_val*.
+ 	(vrp_val_max): New.
+ 	(vrp_val_min): New.
+ 	* gimple-range-op.cc (cfn_strlen::fold_range): Use irange_val_*.
+ 	* range-op.cc (max_limit): Same.
+ 	(min_limit): Same.
+ 	(plus_minus_ranges): Same.
+ 	(operator_rshift::op1_range): Same.
+ 	(operator_cast::inside_domain_p): Same.
+ 	* value-range.cc (vrp_val_is_max): Delete.
+ 	(vrp_val_is_min): Delete.
+ 	(range_tests_misc): Use irange_val_*.
+ 	* value-range.h (vrp_val_is_min): Delete.
+ 	(vrp_val_is_max): Delete.
+ 	(vrp_val_max): Delete.
+ 	(irange_val_min): New.
+ 	(vrp_val_min): Delete.
+ 	(irange_val_max): New.
+ 	* vr-values.cc (check_for_binary_op_overflow): Use irange_val_*.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* fold-const.cc (expr_not_equal_to): Convert to irange wide_int API.
+ 	* gimple-fold.cc (size_must_be_zero_p): Same.
+ 	* gimple-loop-versioning.cc
+ 	(loop_versioning::prune_loop_conditions): Same.
+ 	* gimple-range-edge.cc (gcond_edge_range): Same.
+ 	(gimple_outgoing_range::calc_switch_ranges): Same.
+ 	* gimple-range-fold.cc (adjust_imagpart_expr): Same.
+ 	(adjust_realpart_expr): Same.
+ 	(fold_using_range::range_of_address): Same.
+ 	(fold_using_range::relation_fold_and_or): Same.
+ 	* gimple-range-gori.cc (gori_compute::gori_compute): Same.
+ 	(range_is_either_true_or_false): Same.
+ 	* gimple-range-op.cc (cfn_toupper_tolower::get_letter_range): Same.
+ 	(cfn_clz::fold_range): Same.
+ 	(cfn_ctz::fold_range): Same.
+ 	* gimple-range-tests.cc (class test_expr_eval): Same.
+ 	* gimple-ssa-warn-alloca.cc (alloca_call_type): Same.
+ 	* ipa-cp.cc (ipa_value_range_from_jfunc): Same.
+ 	(propagate_vr_across_jump_function): Same.
+ 	(decide_whether_version_node): Same.
+ 	* ipa-prop.cc (ipa_get_value_range): Same.
+ 	* ipa-prop.h (ipa_range_set_and_normalize): Same.
+ 	* range-op.cc (get_shift_range): Same.
+ 	(value_range_from_overflowed_bounds): Same.
+ 	(value_range_with_overflow): Same.
+ 	(create_possibly_reversed_range): Same.
+ 	(equal_op1_op2_relation): Same.
+ 	(not_equal_op1_op2_relation): Same.
+ 	(lt_op1_op2_relation): Same.
+ 	(le_op1_op2_relation): Same.
+ 	(gt_op1_op2_relation): Same.
+ 	(ge_op1_op2_relation): Same.
+ 	(operator_mult::op1_range): Same.
+ 	(operator_exact_divide::op1_range): Same.
+ 	(operator_lshift::op1_range): Same.
+ 	(operator_rshift::op1_range): Same.
+ 	(operator_cast::op1_range): Same.
+ 	(operator_logical_and::fold_range): Same.
+ 	(set_nonzero_range_from_mask): Same.
+ 	(operator_bitwise_or::op1_range): Same.
+ 	(operator_bitwise_xor::op1_range): Same.
+ 	(operator_addr_expr::fold_range): Same.
+ 	(pointer_plus_operator::wi_fold): Same.
+ 	(pointer_or_operator::op1_range): Same.
+ 	(INT): Same.
+ 	(UINT): Same.
+ 	(INT16): Same.
+ 	(UINT16): Same.
+ 	(SCHAR): Same.
+ 	(UCHAR): Same.
+ 	(range_op_cast_tests): Same.
+ 	(range_op_lshift_tests): Same.
+ 	(range_op_rshift_tests): Same.
+ 	(range_op_bitwise_and_tests): Same.
+ 	(range_relational_tests): Same.
+ 	* range.cc (range_zero): Same.
+ 	(range_nonzero): Same.
+ 	* range.h (range_true): Same.
+ 	(range_false): Same.
+ 	(range_true_and_false): Same.
+ 	* tree-data-ref.cc (split_constant_offset_1): Same.
+ 	* tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
+ 	* tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
+ 	(find_unswitching_predicates_for_bb): Same.
+ 	* tree-ssa-phiopt.cc (value_replacement): Same.
+ 	* tree-ssa-threadbackward.cc
+ 	(back_threader::find_taken_edge_cond): Same.
+ 	* tree-ssanames.cc (ssa_name_has_boolean_range): Same.
+ 	* tree-vrp.cc (find_case_label_range): Same.
+ 	* value-query.cc (range_query::get_tree_range): Same.
+ 	* value-range.cc (irange::set_nonnegative): Same.
+ 	(frange::contains_p): Same.
+ 	(frange::singleton_p): Same.
+ 	(frange::internal_singleton_p): Same.
+ 	(irange::irange_set): Same.
+ 	(irange::irange_set_1bit_anti_range): Same.
+ 	(irange::irange_set_anti_range): Same.
+ 	(irange::set): Same.
+ 	(irange::operator==): Same.
+ 	(irange::singleton_p): Same.
+ 	(irange::contains_p): Same.
+ 	(irange::set_range_from_nonzero_bits): Same.
+ 	(DEFINE_INT_RANGE_INSTANCE): Same.
+ 	(INT): Same.
+ 	(UINT): Same.
+ 	(SCHAR): Same.
+ 	(UINT128): Same.
+ 	(UCHAR): Same.
+ 	(range): New.
+ 	(tree_range): New.
+ 	(range_int): New.
+ 	(range_uint): New.
+ 	(range_uint128): New.
+ 	(range_uchar): New.
+ 	(range_char): New.
+ 	(build_range3): Convert to irange wide_int API.
+ 	(range_tests_irange3): Same.
+ 	(range_tests_int_range_max): Same.
+ 	(range_tests_strict_enum): Same.
+ 	(range_tests_misc): Same.
+ 	(range_tests_nonzero_bits): Same.
+ 	(range_tests_nan): Same.
+ 	(range_tests_signed_zeros): Same.
+ 	* value-range.h (Value_Range::Value_Range): Same.
+ 	(irange::set): Same.
+ 	(irange::nonzero_p): Same.
+ 	(irange::contains_p): Same.
+ 	(range_includes_zero_p): Same.
+ 	(irange::set_nonzero): Same.
+ 	(irange::set_zero): Same.
+ 	(contains_zero_p): Same.
+ 	(frange::contains_p): Same.
+ 	* vr-values.cc
+ 	(simplify_using_ranges::op_with_boolean_value_range_p): Same.
+ 	(bounds_of_var_in_loop): Same.
+ 	(simplify_using_ranges::legacy_fold_cond_overflow): Same.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (irange::irange_union): Rename to...
+ 	(irange::union_): ...this.
+ 	(irange::irange_intersect): Rename to...
+ 	(irange::intersect): ...this.
+ 	* value-range.h (irange::union_): Delete.
+ 	(irange::intersect): Delete.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* vr-values.cc (bounds_of_var_in_loop): Convert to irange API.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* vr-values.cc (check_for_binary_op_overflow): Tidy up by using
+ 	ranger API.
+ 	(compare_ranges): Delete.
+ 	(compare_range_with_value): Delete.
+ 	(bounds_of_var_in_loop): Tidy up by using ranger API.
+ 	(simplify_using_ranges::fold_cond_with_ops): Cleanup and rename
+ 	from vrp_evaluate_conditional_warnv_with_ops_using_ranges.
+ 	(simplify_using_ranges::legacy_fold_cond_overflow): Remove
+ 	strict_overflow_p and only_ranges.
+ 	(simplify_using_ranges::legacy_fold_cond): Adjust call to
+ 	legacy_fold_cond_overflow.
+ 	(simplify_using_ranges::simplify_abs_using_ranges): Adjust for
+ 	rename.
+ 	(range_fits_type_p): Rename value_range to irange.
+ 	* vr-values.h (range_fits_type_p): Adjust prototype.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (irange::irange_set_anti_range): Remove uses of
+ 	tree_lower_bound and tree_upper_bound.
+ 	(irange::verify_range): Same.
+ 	(irange::operator==): Same.
+ 	(irange::singleton_p): Same.
+ 	* value-range.h (irange::tree_lower_bound): Delete.
+ 	(irange::tree_upper_bound): Delete.
+ 	(irange::lower_bound): Delete.
+ 	(irange::upper_bound): Delete.
+ 	(irange::zero_p): Remove uses of tree_lower_bound and
+ 	tree_upper_bound.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssa-loop-niter.cc (refine_value_range_using_guard): Remove
+ 	kind() call.
+ 	(determine_value_range): Same.
+ 	(record_nonwrapping_iv): Same.
+ 	(infer_loop_bounds_from_signedness): Same.
+ 	(scev_var_range_cant_overflow): Same.
+ 	* tree-vrp.cc (operand_less_p): Delete.
+ 	* tree-vrp.h (operand_less_p): Delete.
+ 	* value-range.cc (get_legacy_range): Remove uses of deprecated API.
+ 	(irange::value_inside_range): Delete.
+ 	* value-range.h (vrange::kind): Delete.
+ 	(irange::num_pairs): Remove check of m_kind.
+ 	(irange::min): Delete.
+ 	(irange::max): Delete.
+ 
+ 2023-05-01  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-fold.cc (maybe_fold_comparisons_from_match_pd): Adjust
+ 	for vrange_storage.
+ 	* gimple-range-cache.cc (sbr_vector::sbr_vector): Same.
+ 	(sbr_vector::grow): Same.
+ 	(sbr_vector::set_bb_range): Same.
+ 	(sbr_vector::get_bb_range): Same.
+ 	(sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
+ 	(sbr_sparse_bitmap::set_bb_range): Same.
+ 	(sbr_sparse_bitmap::get_bb_range): Same.
+ 	(block_range_cache::block_range_cache): Same.
+ 	(ssa_global_cache::ssa_global_cache): Same.
+ 	(ssa_global_cache::get_global_range): Same.
+ 	(ssa_global_cache::set_global_range): Same.
+ 	* gimple-range-cache.h: Same.
+ 	* gimple-range-edge.cc
+ 	(gimple_outgoing_range::gimple_outgoing_range): Same.
+ 	(gimple_outgoing_range::switch_edge_range): Same.
+ 	(gimple_outgoing_range::calc_switch_ranges): Same.
+ 	* gimple-range-edge.h: Same.
+ 	* gimple-range-infer.cc
+ 	(infer_range_manager::infer_range_manager): Same.
+ 	(infer_range_manager::get_nonzero): Same.
+ 	(infer_range_manager::maybe_adjust_range): Same.
+ 	(infer_range_manager::add_range): Same.
+ 	* gimple-range-infer.h: Rename obstack_vrange_allocator to
+ 	vrange_allocator.
+ 	* tree-core.h (struct irange_storage_slot): Remove.
+ 	(struct tree_ssa_name): Remove irange_info and frange_info.  Make
+ 	range_info a pointer to vrange_storage.
+ 	* tree-ssanames.cc (range_info_fits_p): Adjust for vrange_storage.
+ 	(range_info_alloc): Same.
+ 	(range_info_free): Same.
+ 	(range_info_get_range): Same.
+ 	(range_info_set_range): Same.
+ 	(get_nonzero_bits): Same.
+ 	* value-query.cc (get_ssa_name_range_info): Same.
+ 	* value-range-storage.cc (class vrange_internal_alloc): New.
+ 	(class vrange_obstack_alloc): New.
+ 	(class vrange_ggc_alloc): New.
+ 	(vrange_allocator::vrange_allocator): New.
+ 	(vrange_allocator::~vrange_allocator): New.
+ 	(vrange_storage::alloc_slot): New.
+ 	(vrange_allocator::alloc): New.
+ 	(vrange_allocator::free): New.
+ 	(vrange_allocator::clone): New.
+ 	(vrange_allocator::clone_varying): New.
+ 	(vrange_allocator::clone_undefined): New.
+ 	(vrange_storage::alloc): New.
+ 	(vrange_storage::set_vrange): Remove slot argument.
+ 	(vrange_storage::get_vrange): Same.
+ 	(vrange_storage::fits_p): Same.
+ 	(vrange_storage::equal_p): New.
+ 	(irange_storage::write_lengths_address): New.
+ 	(irange_storage::lengths_address): New.
+ 	(irange_storage_slot::alloc_slot): Remove.
+ 	(irange_storage::alloc): New.
+ 	(irange_storage_slot::irange_storage_slot): Remove.
+ 	(irange_storage::irange_storage): New.
+ 	(write_wide_int): New.
+ 	(irange_storage_slot::set_irange): Remove.
+ 	(irange_storage::set_irange): New.
+ 	(read_wide_int): New.
+ 	(irange_storage_slot::get_irange): Remove.
+ 	(irange_storage::get_irange): New.
+ 	(irange_storage_slot::size): Remove.
+ 	(irange_storage::equal_p): New.
+ 	(irange_storage_slot::num_wide_ints_needed): Remove.
+ 	(irange_storage::size): New.
+ 	(irange_storage_slot::fits_p): Remove.
+ 	(irange_storage::fits_p): New.
+ 	(irange_storage_slot::dump): Remove.
+ 	(irange_storage::dump): New.
+ 	(frange_storage_slot::alloc_slot): Remove.
+ 	(frange_storage::alloc): New.
+ 	(frange_storage_slot::set_frange): Remove.
+ 	(frange_storage::set_frange): New.
+ 	(frange_storage_slot::get_frange): Remove.
+ 	(frange_storage::get_frange): New.
+ 	(frange_storage_slot::fits_p): Remove.
+ 	(frange_storage::equal_p): New.
+ 	(frange_storage::fits_p): New.
+ 	(ggc_vrange_allocator): New.
+ 	(ggc_alloc_vrange_storage): New.
+ 	* value-range-storage.h (class vrange_storage): Rewrite.
+ 	(class irange_storage): Rewrite.
+ 	(class frange_storage): Rewrite.
+ 	(class obstack_vrange_allocator): Remove.
+ 	(class ggc_vrange_allocator): Remove.
+ 	(vrange_allocator::alloc_vrange): Remove.
+ 	(vrange_allocator::alloc_irange): Remove.
+ 	(vrange_allocator::alloc_frange): Remove.
+ 	(ggc_alloc_vrange_storage): New.
+ 	* value-range.h (class irange): Rename vrange_allocator to
+ 	irange_storage.
+ 	(class frange): Same.
+ 
+ 2023-04-30  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/stormy16/stormy16.md (neghi2): Rewrite pattern using
+ 	inc to avoid clobbering the carry flag.
+ 
+ 2023-04-30  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd: Add patterns for "a != 0 ? FUNC(a) : CST"
+ 	for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
+ 
+ 2023-04-30  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
+ 	Allow some builtin/internal function calls which
+ 	are known not to trap/throw.
+ 	(phiopt_worker::match_simplify_replacement):
+ 	Use name instead of getting the lhs again.
+ 
+ 2023-04-30  Joakim Nohlgård  <joakim@nohlgard.se>
+ 
+ 	* configure: Regenerate.
+ 	* configure.ac: Use ld -r in the check for HAVE_LD_RO_RW_SECTION_MIXING
+ 
+ 2023-04-29  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* reload1.cc (emit_insn_if_valid_for_reload_1): Rename from
+ 	emit_insn_if_valid_for_reload.
+ 	(emit_insn_if_valid_for_reload): Call new helper, and if a SET fails
+ 	to be recognized, also try emitting a parallel that clobbers
+ 	TARGET_FLAGS_REGNUM, as applicable.
+ 
+ 2023-04-29  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/stormy16/stormy16.md (neghi2): Convert from a define_expand
+ 	to a define_insn.
+ 	(*rotatehi_1): New define_insn for efficient 2 insn sequence.
+ 	(*rotatehi_8, *rotaterthi_8): New define_insn to emit a swpb.
+ 
+ 2023-04-29  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/stormy16/stormy16.md (any_lshift): New code iterator.
+ 	(any_or_plus): Likewise.
+ 	(any_rotate): Likewise.
+ 	(*<any_lshift>_and_internal): New define_insn_and_split to
+ 	recognize a logical shift followed by an AND, and split it
+ 	again after reload.
+ 	(*swpn): New define_insn matching xstormy16's swpn.
+ 	(*swpn_zext): New define_insn recognizing swpn followed by
+ 	zero_extendqihi2, i.e. with the high byte set to zero.
+ 	(*swpn_sext): Likewise, for swpn followed by cbw.
+ 	(*swpn_sext_2): Likewise, for an alternate RTL form.
+ 	(*swpn_zext_ior): A pre-reload splitter so that an swpn+zext+ior
+ 	sequence is split in the correct place to recognize the *swpn_zext
+ 	followed by any_or_plus (ior, xor or plus) instruction.
+ 
+ 2023-04-29  Mikael Pettersson  <mikpelinux@gmail.com>
+ 
+ 	PR target/105525
+ 	* config.gcc (vax-*-linux*): Add glibc-stdint.h.
+ 	(lm32-*-uclinux*): Likewise.
+ 
+ 2023-04-29  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_avoid_save_libcall): helper function
+ 	for riscv_use_save_libcall.
+ 	(riscv_use_save_libcall): call riscv_avoid_save_libcall.
+ 	(riscv_compute_frame_info): restructure to decouple stack allocation
+ 	for rv32e w/o save-restore.
+ 
+ 2023-04-28  Eugene Rozenfeld  <erozen@microsoft.com>
+ 
+ 	* doc/install.texi: Fix documentation typo
+ 
+ 2023-04-28  Matevos Mehrabyan  <matevosmehrabyan@gmail.com>
+ 
+ 	* config/riscv/iterators.md (only_div, paired_mod): New iterators.
+ 	(u): Add div/udiv cases.
+ 	* config/riscv/riscv-protos.h (riscv_use_divmod_expander): Prototype.
+ 	* config/riscv/riscv.cc (struct riscv_tune_param): Add field for
+ 	divmod expansion.
+ 	(rocket_tune_info, sifive_7_tune_info): Initialize new field.
+ 	(thead_c906_tune_info): Likewise.
+ 	(optimize_size_tune_info): Likewise.
+ 	(riscv_use_divmod_expander): New function.
+ 	* config/riscv/riscv.md (<u>divmod<mode>4): New expander.
+ 
+ 2023-04-28  Karen Sargsyan  <karen1999411@gmail.com>
+ 
+ 	* config/riscv/bitmanip.md: Added clmulr instruction.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): Add new.
+ 	* config/riscv/riscv.md: (UNSPEC_CLMULR): Add new unspec type.
+ 	(type): Add clmul
+ 	* config/riscv/riscv-cmo.def: Added built-in function for clmulr.
+ 	* config/riscv/crypto.md: Move clmul[h] instructions to bitmanip.md.
+ 	* config/riscv/riscv-scalar-crypto.def: Move clmul[h] built-in
+ 	functions to riscv-cmo.def.
+ 	* config/riscv/generic.md: Add clmul to list of instructions
+ 	using the generic_imul reservation.
+ 
+ 2023-04-28  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/bitmanip.md: Added expanders for minu/maxu instructions
+ 
+ 2023-04-28  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/100958
+ 	* tree-ssa-phiopt.cc (two_value_replacement): Remove.
+ 	(pass_phiopt::execute): Don't call two_value_replacement.
+ 	* match.pd (a !=/== CST1 ? CST2 : CST3): Add pattern to
+ 	handle what two_value_replacement did.
+ 
+ 2023-04-28  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd: Add patterns for
+ 	"(A CMP B) ? MIN/MAX<A, C> : MIN/MAX <B, C>".
+ 
+ 2023-04-28  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd: Factor out the deciding the min/max from
+ 	the "(cond (cmp (convert1? x) c1) (convert2? x) c2)"
+ 	pattern to ...
+ 	* fold-const.cc (minmax_from_comparison): this new function.
+ 	* fold-const.h (minmax_from_comparison): New prototype.
+ 
+ 2023-04-28  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR rtl-optimization/109476
+ 	* lower-subreg.cc: Include explow.h for force_reg.
+ 	(find_decomposable_shift_zext): Pass an additional SPEED_P argument.
+ 	If decomposing a suitable LSHIFTRT and we're not splitting
+ 	ZERO_EXTEND (based on the current SPEED_P), then use a ZERO_EXTEND
+ 	instead of setting a high part SUBREG to zero, which helps combine.
+ 	(decompose_multiword_subregs): Update call to resolve_shift_zext.
+ 
+ 2023-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_analyze_data_refs): Always
+ 	consider scatters.
+ 	* tree-vect-stmts.cc (vect_model_store_cost): Pass in the
+ 	gather-scatter info and cost emulated scatters accordingly.
+ 	(get_load_store_type): Support emulated scatters.
+ 	(vectorizable_store): Likewise.  Emulate them by extracting
+ 	scalar offsets and data, doing scalar stores.
+ 
+ 2023-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	Tame down element extracts and scalar loads for gather/scatter
+ 	similar to elementwise strided accesses.
+ 
+ 2023-04-28  Pan Li  <pan2.li@intel.com>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/vector.md: Add new define split to perform
+ 	the simplification.
+ 
+ 2023-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/109652
+ 	* ipa-param-manipulation.cc
+ 	(ipa_param_body_adjustments::modify_expression): Allow
+ 	conversion of a register to a non-register type.  Elide
+ 	conversions inside BIT_FIELD_REFs.
+ 
+ 2023-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109644
+ 	* tree-cfg.cc (verify_types_in_gimple_reference): Check
+ 	register constraints on the outermost VIEW_CONVERT_EXPR
+ 	only.  Do not allow register or invariant bases on
+ 	multi-level or possibly variable index handled components.
+ 
+ 2023-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimplify.cc (gimplify_compound_lval): When there's a
+ 	non-register type produced by one of the handled component
+ 	operations make sure we get a non-register base.
+ 
+ 2023-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108752
+ 	* tree-vect-generic.cc (build_replicated_const): Rename
+ 	to build_replicated_int_cst and move to tree.{h,cc}.
+ 	(do_plus_minus): Adjust.
+ 	(do_negate): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_operation): Emit emulated
+ 	arithmetic vector operations in lowered form.
+ 	* tree.h (build_replicated_int_cst): Declare.
+ 	* tree.cc (build_replicated_int_cst): Moved from
+ 	tree-vect-generic.cc build_replicated_const.
+ 
+ 2023-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): Rename to...
+ 	(aarch64_rbit<mode><vczle><vczbe>): ... This.
+ 	(neg<mode>2): Rename to...
+ 	(neg<mode>2<vczle><vczbe>): ... This.
+ 	(abs<mode>2): Rename to...
+ 	(abs<mode>2<vczle><vczbe>): ... This.
+ 	(aarch64_abs<mode>): Rename to...
+ 	(aarch64_abs<mode><vczle><vczbe>): ... This.
+ 	(one_cmpl<mode>2): Rename to...
+ 	(one_cmpl<mode>2<vczle><vczbe>): ... This.
+ 	(clrsb<mode>2): Rename to...
+ 	(clrsb<mode>2<vczle><vczbe>): ... This.
+ 	(clz<mode>2): Rename to...
+ 	(clz<mode>2<vczle><vczbe>): ... This.
+ 	(popcount<mode>2): Rename to...
+ 	(popcount<mode>2<vczle><vczbe>): ... This.
+ 
+ 2023-04-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-range-op.cc (class cfn_sqrt): New type.
+ 	(op_cfn_sqrt): New variable.
+ 	(gimple_range_op_handler::maybe_builtin_call): Handle
+ 	CASE_CFN_SQRT{,_FN}.
+ 
+ 2023-04-28  Aldy Hernandez  <aldyh@redhat.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* value-range.h (frange_nextafter): Declare.
+ 	* gimple-range-op.cc (class cfn_sincos): New.
+ 	(op_cfn_sin, op_cfn_cos): New variables.
+ 	(gimple_range_op_handler::maybe_builtin_call): Handle
+ 	CASE_CFN_{SIN,COS}{,_FN}.
+ 
+ 2023-04-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* target.def (libm_function_max_error): New target hook.
+ 	* doc/tm.texi.in (TARGET_LIBM_FUNCTION_MAX_ERROR): Add.
+ 	* doc/tm.texi: Regenerated.
+ 	* targhooks.h (default_libm_function_max_error,
+ 	glibc_linux_libm_function_max_error): Declare.
+ 	* targhooks.cc: Include case-cfn-macros.h.
+ 	(default_libm_function_max_error,
+ 	glibc_linux_libm_function_max_error): New functions.
+ 	* config/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
+ 	* config/linux-protos.h (linux_libm_function_max_error): Declare.
+ 	* config/linux.cc: Include target.h and targhooks.h.
+ 	(linux_libm_function_max_error): New function.
+ 	* config/arc/arc.cc: Include targhooks.h and case-cfn-macros.h.
+ 	(arc_libm_function_max_error): New function.
+ 	(TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
+ 	* config/i386/i386.cc (ix86_libc_has_fast_function): Formatting fix.
+ 	(ix86_libm_function_max_error): New function.
+ 	(TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
+ 	* config/rs6000/rs6000-protos.h
+ 	(rs6000_linux_libm_function_max_error): Declare.
+ 	* config/rs6000/rs6000-linux.cc: Include target.h, targhooks.h, tree.h
+ 	and case-cfn-macros.h.
+ 	(rs6000_linux_libm_function_max_error): New function.
+ 	* config/rs6000/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
+ 	* config/rs6000/linux64.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
+ 	* config/or1k/or1k.cc: Include targhooks.h and case-cfn-macros.h.
+ 	(or1k_libm_function_max_error): New function.
+ 	(TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
+ 
+ 2023-04-28  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gimple-harden-conditionals.cc (insert_edge_check_and_trap):
+ 	Move detach value calls...
+ 	(pass_harden_conditional_branches::execute): ... here.
+ 	(pass_harden_compares::execute): Detach values before
+ 	compares.
+ 
+ 2023-04-27  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (cmul<conj_op><mode>3): Use gcn_gen_undef.
+ 	(cml<addsub_as><mode>4): Likewise.
+ 	(vec_addsub<mode>3): Likewise.
+ 	(cadd<rot><mode>3): Likewise.
+ 	(vec_fmaddsub<mode>4): Likewise.
+ 	(vec_fmsubadd<mode>4): Likewise, and use sub for the odd lanes.
+ 
+ 2023-04-27  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (phiopt_early_allow): Allow for
+ 	up to 2 min/max expressions in the sequence/match code.
+ 
+ 2023-04-27  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* rtlanal.cc (may_trap_p_1): Treat SMIN/SMAX similar as
+ 	COMPARISON.
+ 	* tree-eh.cc (operation_could_trap_helper_p): Treate
+ 	MIN_EXPR/MAX_EXPR similar as other comparisons.
+ 
+ 2023-04-27  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (cond_store_replacement): Remove
+ 	prototype.
+ 	(cond_if_else_store_replacement): Likewise.
+ 	(get_non_trapping): Likewise.
+ 	(store_elim_worker): Move into ...
+ 	(pass_cselim::execute): This.
+ 
+ 2023-04-27  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (two_value_replacement): Remove
+ 	prototype.
+ 	(match_simplify_replacement): Likewise.
+ 	(factor_out_conditional_conversion): Likewise.
+ 	(value_replacement): Likewise.
+ 	(minmax_replacement): Likewise.
+ 	(spaceship_replacement): Likewise.
+ 	(cond_removal_in_builtin_zero_pattern): Likewise.
+ 	(hoist_adjacent_loads): Likewise.
+ 	(tree_ssa_phiopt_worker): Move into ...
+ 	(pass_phiopt::execute): this.
+ 
+ 2023-04-27  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove
+ 	do_store_elim argument and split that part out to ...
+ 	(store_elim_worker): This new function.
+ 	(pass_cselim::execute): Call store_elim_worker.
+ 	(pass_phiopt::execute): Update call to tree_ssa_phiopt_worker.
+ 
+ 2023-04-27  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cfgloopmanip.h (unloop_loops): Export.
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Unloop loops
+ 	that no longer loop.
+ 	* tree-ssa-loop-ivcanon.cc (unloop_loops): Export; do not free
+ 	vectors of loops to unloop.
+ 	(canonicalize_induction_variables): Free vectors here.
+ 	(tree_unroll_loops_completely): Free vectors here.
+ 
+ 2023-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109170
+ 	* gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call):
+ 	Handle __builtin_expect and similar via cfn_pass_through_arg1
+ 	and inspecting the calls fnspec.
+ 	* builtins.cc (builtin_fnspec): Handle BUILT_IN_EXPECT
+ 	and BUILT_IN_EXPECT_WITH_PROBABILITY.
+ 
+ 2023-04-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* genmultilib: Use CONFIG_SHELL to run sub-scripts.
+ 
+ 2023-04-27  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/109639
+ 	* ipa-cp.cc (ipa_value_range_from_jfunc): Normalize range.
+ 	(propagate_vr_across_jump_function): Same.
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
+ 	* ipa-prop.h (ipa_range_set_and_normalize): New.
+ 	* value-range.cc (irange::set): Assert min and max are INTEGER_CST.
+ 
+ 2023-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Do not
+ 	create a CTOR operand in the result when simplifying GIMPLE.
+ 
+ 2023-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimplify.cc (gimplify_compound_lval): When the base
+ 	gimplified to a register make sure to split up chains
+ 	of operations.
+ 
+ 2023-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/109607
+ 	* ipa-param-manipulation.h
+ 	(ipa_param_body_adjustments::modify_expression): Add extra_stmts
+ 	argument.
+ 	* ipa-param-manipulation.cc
+ 	(ipa_param_body_adjustments::modify_expression): Likewise.
+ 	When we need a conversion and the replacement is a register
+ 	split the conversion out.
+ 	(ipa_param_body_adjustments::modify_assignment): Pass
+ 	extra_stmts to RHS modify_expression.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/extend.texi (Zero Length): Describe example.
+ 
+ 2023-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109594
+ 	* tree-ssa.cc (non_rewritable_mem_ref_base): Constrain
+ 	what we rewrite to a register based on the above.
+ 
+ 2023-04-26  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc: Fix whitespace.
+ 	* config/riscv/sync.md: Fix whitespace.
+ 
+ 2023-04-26  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108697
+ 	* gimple-range-cache.cc (ssa_global_cache::clear_range): Do
+ 	not clear the vector on an out of range query.
+ 	(ssa_cache::dump): Use dump_range_query instead of get_range.
+ 	(ssa_cache::dump_range_query): New.
+ 	(ssa_lazy_cache::dump_range_query): New.
+ 	(ssa_lazy_cache::set_range): New.
+ 	* gimple-range-cache.h (ssa_cache::dump_range_query): New.
+ 	(class ssa_lazy_cache): New.
+ 	(ssa_lazy_cache::ssa_lazy_cache): New.
+ 	(ssa_lazy_cache::~ssa_lazy_cache): New.
+ 	(ssa_lazy_cache::get_range): New.
+ 	(ssa_lazy_cache::clear_range): New.
+ 	(ssa_lazy_cache::clear): New.
+ 	(ssa_lazy_cache::dump): New.
+ 	* gimple-range-path.cc (path_range_query::path_range_query): Do
+ 	not allocate a ssa_cache object nor has_cache bitmap.
+ 	(path_range_query::~path_range_query): Do not free objects.
+ 	(path_range_query::clear_cache): Remove.
+ 	(path_range_query::get_cache): Adjust.
+ 	(path_range_query::set_cache): Remove.
+ 	(path_range_query::dump): Don't call through a pointer.
+ 	(path_range_query::internal_range_of_expr): Set cache directly.
+ 	(path_range_query::reset_path): Clear cache directly.
+ 	(path_range_query::ssa_range_in_phi): Fold with globals only.
+ 	(path_range_query::compute_ranges_in_phis): Simply set range.
+ 	(path_range_query::compute_ranges_in_block): Call cache directly.
+ 	* gimple-range-path.h (class path_range_query): Replace bitmap
+ 	and cache pointer with lazy cache object.
+ 	* gimple-range.h (class assume_query): Use ssa_lazy_cache.
+ 
+ 2023-04-26  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ssa_cache::ssa_cache): Rename.
+ 	(ssa_cache::~ssa_cache): Rename.
+ 	(ssa_cache::has_range): New.
+ 	(ssa_cache::get_range): Rename.
+ 	(ssa_cache::set_range): Rename.
+ 	(ssa_cache::clear_range): Rename.
+ 	(ssa_cache::clear): Rename.
+ 	(ssa_cache::dump): Rename and use get_range.
+ 	(ranger_cache::get_global_range): Use get_range and set_range.
+ 	(ranger_cache::range_of_def): Use get_range.
+ 	* gimple-range-cache.h (class ssa_cache): Rename class and methods.
+ 	(class ranger_cache): Use ssa_cache.
+ 	* gimple-range-path.cc (path_range_query::path_range_query): Use
+ 	ssa_cache.
+ 	(path_range_query::get_cache): Use get_range.
+ 	(path_range_query::set_cache): Use set_range.
+ 	* gimple-range-path.h (class path_range_query): Use ssa_cache.
+ 	* gimple-range.cc (assume_query::assume_range_p): Use get_range.
+ 	(assume_query::range_of_expr): Use get_range.
+ 	(assume_query::assume_query): Use set_range.
+ 	(assume_query::calculate_op): Use get_range and set_range.
+ 	* gimple-range.h (class assume_query): Use ssa_cache.
+ 
+ 2023-04-26  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (sbr_vector::sbr_vector): Add parameter
+ 	and local to optionally zero memory.
+ 	(br_vector::grow): Only zero memory if flag is set.
+ 	(class sbr_lazy_vector): New.
+ 	(sbr_lazy_vector::sbr_lazy_vector): New.
+ 	(sbr_lazy_vector::set_bb_range): New.
+ 	(sbr_lazy_vector::get_bb_range): New.
+ 	(sbr_lazy_vector::bb_range_p): New.
+ 	(block_range_cache::set_bb_range): Check flags and Use sbr_lazy_vector.
+ 	* gimple-range-gori.cc (gori_map::calculate_gori): Use
+ 	param_vrp_switch_limit.
+ 	(gori_compute::gori_compute): Use param_vrp_switch_limit.
+ 	* params.opt (vrp_sparse_threshold): Rename from evrp_sparse_threshold.
+ 	(vrp_switch_limit): Rename from evrp_switch_limit.
+ 	(vrp_vector_threshold): New.
+ 
+ 2023-04-26  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-relation.cc (dom_oracle::query_relation): Check early for lack
+ 	of any relation.
+ 	* value-relation.h (equiv_oracle::has_equiv_p): New.
+ 
+ 2023-04-26  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109417
+ 	* gimple-range-gori.cc (range_def_chain::register_dependency):
+ 	Save the ssa version number, not the pointer.
+ 	(gori_compute::may_recompute_p): No need to check if a dependency
+ 	is in the free list.
+ 	* gimple-range-gori.h (class range_def_chain): Change ssa1 and ssa2
+ 	fields to be unsigned int instead of trees.
+ 	(ange_def_chain::depend1): Adjust.
+ 	(ange_def_chain::depend2): Adjust.
+ 	* gimple-range.h: Include "ssa.h" to inline ssa_name().
+ 
+ 2023-04-26  David Edelsohn  <dje.gcc@gmail.com>
+ 
+ 	* config/rs6000/aix72.h (TARGET_DEFAULT): Use ISA_2_6_MASKS_SERVER.
+ 	* config/rs6000/aix73.h (TARGET_DEFAULT): Use ISA_2_7_MASKS_SERVER.
+ 	(PROCESSOR_DEFAULT): Use PROCESSOR_POWER8.
+ 
+ 2023-04-26  Patrick O'Neill  <patrick@rivosinc.com>
+ 
+ 	PR target/104338
+ 	* config/riscv/riscv-protos.h: Add helper function stubs.
+ 	* config/riscv/riscv.cc: Add helper functions for subword masking.
+ 	* config/riscv/riscv.opt: Add command-line flags -minline-atomics and
+ 	-mno-inline-atomics.
+ 	* config/riscv/sync.md: Add masking logic and inline asm for fetch_and_op,
+ 	fetch_and_nand, CAS, and exchange ops.
+ 	* doc/invoke.texi: Add blurb regarding new command-line flags
+ 	-minline-atomics and -mno-inline-atomics.
+ 
+ 2023-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_rshrn2<mode>_insn_le):
+ 	Reimplement using standard RTL codes instead of unspec.
+ 	(aarch64_rshrn2<mode>_insn_be): Likewise.
+ 	(aarch64_rshrn2<mode>): Adjust for the above.
+ 	* config/aarch64/aarch64.md (UNSPEC_RSHRN): Delete.
+ 
+ 2023-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le): Reimplement
+ 	with standard RTL codes instead of an UNSPEC.
+ 	(aarch64_rshrn<mode>_insn_be): Likewise.
+ 	(aarch64_rshrn<mode>): Adjust for the above.
+ 	* config/aarch64/predicates.md (aarch64_simd_rshrn_imm_vec): Define.
+ 
+ 2023-04-26  Pan Li  <pan2.li@intel.com>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv.cc (riscv_classify_address): Allow
+ 	const0_rtx for the RVV load/store.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op.cc (range_op_cast_tests): Remove legacy support.
+ 	* value-range-storage.h (vrange_allocator::alloc_irange): Same.
+ 	* value-range.cc (irange::operator=): Same.
+ 	(get_legacy_range): Same.
+ 	(irange::copy_legacy_to_multi_range): Delete.
+ 	(irange::copy_to_legacy): Delete.
+ 	(irange::irange_set_anti_range): Delete.
+ 	(irange::set): Remove legacy support.
+ 	(irange::verify_range): Same.
+ 	(irange::legacy_lower_bound): Delete.
+ 	(irange::legacy_upper_bound): Delete.
+ 	(irange::legacy_equal_p): Delete.
+ 	(irange::operator==): Remove legacy support.
+ 	(irange::singleton_p): Same.
+ 	(irange::value_inside_range): Same.
+ 	(irange::contains_p): Same.
+ 	(intersect_ranges): Delete.
+ 	(irange::legacy_intersect): Delete.
+ 	(union_ranges): Delete.
+ 	(irange::legacy_union): Delete.
+ 	(irange::legacy_verbose_union_): Delete.
+ 	(irange::legacy_verbose_intersect): Delete.
+ 	(irange::irange_union): Remove legacy support.
+ 	(irange::irange_intersect): Same.
+ 	(irange::intersect): Same.
+ 	(irange::invert): Same.
+ 	(ranges_from_anti_range): Delete.
+ 	(gt_pch_nx): Adjust for legacy removal.
+ 	(gt_ggc_mx): Same.
+ 	(range_tests_legacy): Delete.
+ 	(range_tests_misc): Adjust for legacy removal.
+ 	(range_tests): Same.
+ 	* value-range.h (class irange): Same.
+ 	(irange::legacy_mode_p): Delete.
+ 	(ranges_from_anti_range): Delete.
+ 	(irange::nonzero_p): Adjust for legacy removal.
+ 	(irange::lower_bound): Same.
+ 	(irange::upper_bound): Same.
+ 	(irange::union_): Same.
+ 	(irange::intersect): Same.
+ 	(irange::set_nonzero): Same.
+ 	(irange::set_zero): Same.
+ 	* vr-values.cc (simplify_using_ranges::legacy_fold_cond_overflow): Same.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (irange::copy_legacy_to_multi_range): Rewrite use
+ 	of range_has_numeric_bounds_p with irange API.
+ 	(range_has_numeric_bounds_p): Delete.
+ 	* value-range.h (range_has_numeric_bounds_p): Delete.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-data-ref.cc (compute_distributive_range): Replace uses of
+ 	range_int_cst_p with irange API.
+ 	* tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.
+ 	* tree-vrp.h (range_int_cst_p): Delete.
+ 	* vr-values.cc (check_for_binary_op_overflow): Replace usees of
+ 	range_int_cst_p with irange API.
+ 	(vr_set_zero_nonzero_bits): Same.
+ 	(range_fits_type_p): Same.
+ 	(simplify_using_ranges::simplify_casted_cond): Same.
+ 	* tree-vrp.cc (range_int_cst_p): Remove.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-ssa-strlen.cc (compare_nonzero_chars): Convert to wide_ints.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* builtins.cc (expand_builtin_strnlen): Rewrite deprecated irange
+ 	API uses to new API.
+ 	* gimple-predicate-analysis.cc (find_var_cmp_const): Same.
+ 	* internal-fn.cc (get_min_precision): Same.
+ 	* match.pd: Same.
+ 	* tree-affine.cc (expr_to_aff_combination): Same.
+ 	* tree-data-ref.cc (dr_step_indicator): Same.
+ 	* tree-dfa.cc (get_ref_base_and_extent): Same.
+ 	* tree-scalar-evolution.cc (iv_can_overflow_p): Same.
+ 	* tree-ssa-phiopt.cc (two_value_replacement): Same.
+ 	* tree-ssa-pre.cc (insert_into_preds_of_block): Same.
+ 	* tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
+ 	* tree-ssa-strlen.cc (compare_nonzero_chars): Same.
+ 	* tree-switch-conversion.cc (bit_test_cluster::emit): Same.
+ 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Same.
+ 	* tree.cc (get_range_pos_neg): Same.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Use
+ 	vrange::dump instead of ad-hoc dumper.
+ 	* tree-ssa-strlen.cc (dump_strlen_info): Same.
+ 	* value-range-pretty-print.cc (visit): Pass TDF_NOUID to
+ 	dump_generic_node.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* range-op.cc (operator_cast::op1_range): Use
+ 	create_possibly_reversed_range.
+ 	(operator_bitwise_and::simple_op1_range_solver): Same.
+ 	* value-range.cc (swap_out_of_order_endpoints): Delete.
+ 	(irange::set): Remove call to swap_out_of_order_endpoints.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* builtins.cc (determine_block_size): Convert use of legacy API to
+ 	get_legacy_range.
+ 	* gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same.
+ 	(array_bounds_checker::check_array_ref): Same.
+ 	* gimple-ssa-warn-restrict.cc
+ 	(builtin_memref::extend_offset_range): Same.
+ 	* ipa-cp.cc (ipcp_store_vr_results): Same.
+ 	* ipa-fnsummary.cc (set_switch_stmt_execution_predicate): Same.
+ 	* ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
+ 	(ipa_write_jump_function): Same.
+ 	* pointer-query.cc (get_size_range): Same.
+ 	* tree-data-ref.cc (split_constant_offset): Same.
+ 	* tree-ssa-strlen.cc (get_range): Same.
+ 	(maybe_diag_stxncpy_trunc): Same.
+ 	(strlen_pass::get_len_or_size): Same.
+ 	(strlen_pass::count_nonzero_bytes_addr): Same.
+ 	* tree-vect-patterns.cc (vect_get_range_info): Same.
+ 	* value-range.cc (irange::maybe_anti_range): Remove.
+ 	(get_legacy_range): New.
+ 	(irange::copy_to_legacy): Use get_legacy_range.
+ 	(ranges_from_anti_range): Same.
+ 	* value-range.h (class irange): Remove maybe_anti_range.
+ 	(get_legacy_range): New.
+ 	* vr-values.cc (check_for_binary_op_overflow): Convert use of
+ 	legacy API to get_legacy_range.
+ 	(compare_ranges): Same.
+ 	(compare_range_with_value): Same.
+ 	(bounds_of_var_in_loop): Same.
+ 	(find_case_label_ranges): Same.
+ 	(simplify_using_ranges::simplify_switch_using_ranges): Same.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range-pretty-print.cc (vrange_printer::visit): Remove
+ 	constant_p use.
+ 	* value-range.cc (irange::constant_p): Remove.
+ 	(irange::get_nonzero_bits_from_range): Remove constant_p use.
+ 	* value-range.h (class irange): Remove constant_p.
+ 	(irange::num_pairs): Remove constant_p use.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (irange::copy_legacy_to_multi_range): Remove
+ 	symbolics support.
+ 	(irange::set): Same.
+ 	(irange::legacy_lower_bound): Same.
+ 	(irange::legacy_upper_bound): Same.
+ 	(irange::contains_p): Same.
+ 	(range_tests_legacy): Same.
+ 	(irange::normalize_addresses): Remove.
+ 	(irange::normalize_symbolics): Remove.
+ 	(irange::symbolic_p): Remove.
+ 	* value-range.h (class irange): Remove symbolic_p,
+ 	normalize_symbolics, and normalize_addresses.
+ 	* vr-values.cc (simplify_using_ranges::two_valued_val_range_p):
+ 	Remove symbolics support.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (irange::may_contain_p): Remove.
+ 	* value-range.h (range_includes_zero_p):  Rewrite may_contain_p
+ 	usage with contains_p.
+ 	* vr-values.cc (compare_range_with_value): Same.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* tree-vrp.cc (supported_types_p): Remove.
+ 	(defined_ranges_p): Remove.
+ 	(range_fold_binary_expr): Remove.
+ 	(range_fold_unary_expr): Remove.
+ 	* tree-vrp.h (range_fold_unary_expr): Remove.
+ 	(range_fold_binary_expr): Remove.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (ipa_vr_operation_and_type_effects): Convert to ranger API.
+ 	(ipa_value_range_from_jfunc): Same.
+ 	(propagate_vr_across_jump_function): Same.
+ 	* ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
+ 	* vr-values.cc (bounds_of_var_in_loop): Same.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-array-bounds.cc (array_bounds_checker::get_value_range):
+ 	Add irange argument.
+ 	(check_out_of_bounds_and_warn): Remove check for vr.
+ 	(array_bounds_checker::check_array_ref): Remove pointer qualifier
+ 	for vr and adjust accordingly.
+ 	* gimple-array-bounds.h (get_value_range): Add irange argument.
+ 	* value-query.cc (class equiv_allocator): Delete.
+ 	(range_query::get_value_range): Delete.
+ 	(range_query::range_query): Remove allocator access.
+ 	(range_query::~range_query): Same.
+ 	* value-query.h (get_value_range): Delete.
+ 	* vr-values.cc
+ 	(simplify_using_ranges::op_with_boolean_value_range_p): Remove
+ 	call to get_value_range.
+ 	(check_for_binary_op_overflow): Same.
+ 	(simplify_using_ranges::legacy_fold_cond_overflow): Same.
+ 	(simplify_using_ranges::simplify_abs_using_ranges): Same.
+ 	(simplify_using_ranges::simplify_cond_using_ranges_1): Same.
+ 	(simplify_using_ranges::simplify_casted_cond): Same.
+ 	(simplify_using_ranges::simplify_switch_using_ranges): Same.
+ 	(simplify_using_ranges::two_valued_val_range_p): Same.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* vr-values.cc
+ 	(simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops):
+ 	Rename to...
+ 	(simplify_using_ranges::legacy_fold_cond_overflow): ...this.
+ 	(simplify_using_ranges::vrp_visit_cond_stmt): Rename to...
+ 	(simplify_using_ranges::legacy_fold_cond): ...this.
+ 	(simplify_using_ranges::fold_cond): Rename
+ 	vrp_evaluate_conditional_warnv_with_ops to
+ 	legacy_fold_cond_overflow.
+ 	* vr-values.h (class vr_values): Replace vrp_visit_cond_stmt and
+ 	vrp_evaluate_conditional_warnv_with_ops with legacy_fold_cond and
+ 	legacy_fold_cond_overflow respectively.
+ 
+ 2023-04-26  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* vr-values.cc (get_vr_for_comparison): Remove.
+ 	(compare_name_with_value): Same.
+ 	(vrp_evaluate_conditional_warnv_with_ops): Remove calls to
+ 	compare_name_with_value.
+ 	* vr-values.h: Remove compare_name_with_value.
+ 	Remove get_vr_for_comparison.
+ 
+ 2023-04-26  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/stormy16/stormy16.md (bswaphi2): New define_insn.
+ 	(bswapsi2): New define_insn.
+ 	(swaphi): New define_insn to exchange two registers (swpw).
+ 	(define_peephole2): Recognize exchange of registers as swaphi.
+ 
+ 2023-04-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-range-path.cc (path_range_query::compute_outgoing_relations):
+ 	Avoid last_stmt.
+ 	* ipa-pure-const.cc (pass_nothrow::execute): Likewise.
+ 	* predict.cc (apply_return_prediction): Likewise.
+ 	* sese.cc (set_ifsese_condition): Likewise.  Simplify.
+ 	* tree-cfg.cc (assert_unreachable_fallthru_edge_p): Avoid last_stmt.
+ 	(make_edges_bb): Likewise.
+ 	(make_cond_expr_edges): Likewise.
+ 	(end_recording_case_labels): Likewise.
+ 	(make_gimple_asm_edges): Likewise.
+ 	(cleanup_dead_labels): Likewise.
+ 	(group_case_labels): Likewise.
+ 	(gimple_can_merge_blocks_p): Likewise.
+ 	(gimple_merge_blocks): Likewise.
+ 	(find_taken_edge): Likewise.  Also handle empty fallthru blocks.
+ 	(gimple_duplicate_sese_tail): Avoid last_stmt.
+ 	(find_loop_dist_alias): Likewise.
+ 	(gimple_block_ends_with_condjump_p): Likewise.
+ 	(gimple_purge_dead_eh_edges): Likewise.
+ 	(gimple_purge_dead_abnormal_call_edges): Likewise.
+ 	(pass_warn_function_return::execute): Likewise.
+ 	(execute_fixup_cfg): Likewise.
+ 	* tree-eh.cc (redirect_eh_edge_1): Likewise.
+ 	(pass_lower_resx::execute): Likewise.
+ 	(pass_lower_eh_dispatch::execute): Likewise.
+ 	(cleanup_empty_eh): Likewise.
+ 	* tree-if-conv.cc (if_convertible_bb_p): Likewise.
+ 	(predicate_bbs): Likewise.
+ 	(ifcvt_split_critical_edges): Likewise.
+ 	* tree-loop-distribution.cc (create_edge_for_control_dependence):
+ 	Likewise.
+ 	(loop_distribution::transform_reduction_loop): Likewise.
+ 	* tree-parloops.cc (transform_to_exit_first_loop_alt): Likewise.
+ 	(try_transform_to_exit_first_loop_alt): Likewise.
+ 	(transform_to_exit_first_loop): Likewise.
+ 	(create_parallel_loop): Likewise.
+ 	* tree-scalar-evolution.cc (get_loop_exit_condition): Likewise.
+ 	* tree-ssa-dce.cc (mark_last_stmt_necessary): Likewise.
+ 	(eliminate_unnecessary_stmts): Likewise.
+ 	* tree-ssa-dom.cc
+ 	(dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
+ 	Likewise.
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Likewise.
+ 	(pass_tree_ifcombine::execute): Likewise.
+ 	* tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Likewise.
+ 	(should_duplicate_loop_header_p): Likewise.
+ 	* tree-ssa-loop-ivcanon.cc (create_canonical_iv): Likewise.
+ 	(tree_estimate_loop_size): Likewise.
+ 	(try_unroll_loop_completely): Likewise.
+ 	* tree-ssa-loop-ivopts.cc (tree_ssa_iv_optimize_loop): Likewise.
+ 	* tree-ssa-loop-manip.cc (ip_normal_pos): Likewise.
+ 	(canonicalize_loop_ivs): Likewise.
+ 	* tree-ssa-loop-niter.cc (determine_value_range): Likewise.
+ 	(bound_difference): Likewise.
+ 	(number_of_iterations_popcount): Likewise.
+ 	(number_of_iterations_cltz): Likewise.
+ 	(number_of_iterations_cltz_complement): Likewise.
+ 	(simplify_using_initial_conditions): Likewise.
+ 	(number_of_iterations_exit_assumptions): Likewise.
+ 	(loop_niter_by_eval): Likewise.
+ 	(estimate_numbers_of_iterations): Likewise.
+ 
+ 2023-04-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Refine vmadc/vmsbc RA constraint.
+ 
+ 2023-04-26  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108758
+ 	* config/rs6000/rs6000-builtins.def
+ 	(__builtin_vsx_scalar_cmp_exp_qp_eq, __builtin_vsx_scalar_cmp_exp_qp_gt
+ 	__builtin_vsx_scalar_cmp_exp_qp_lt,
+ 	__builtin_vsx_scalar_cmp_exp_qp_unordered): Move from stanza ieee128-hw
+ 	to power9-vector.
+ 
+ 2023-04-26  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/109069
+ 	* config/rs6000/altivec.md (sldoi_to_mov<mode>): Replace predicate
+ 	easy_vector_constant with const_vector_each_byte_same, add
+ 	handlings in preparation for !easy_vector_constant, and update
+ 	VECTOR_UNIT_ALTIVEC_OR_VSX_P with VECTOR_MEM_ALTIVEC_OR_VSX_P.
+ 	* config/rs6000/predicates.md (const_vector_each_byte_same): New
+ 	predicate.
+ 
+ 2023-04-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md (*pred_cmp<mode>_merge_tie_mask): New pattern.
+ 	(*pred_ltge<mode>_merge_tie_mask): Ditto.
+ 	(*pred_cmp<mode>_scalar_merge_tie_mask): Ditto.
+ 	(*pred_eqne<mode>_scalar_merge_tie_mask): Ditto.
+ 	(*pred_cmp<mode>_extended_scalar_merge_tie_mask): Ditto.
+ 	(*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto.
+ 	(*pred_cmp<mode>_narrow_merge_tie_mask): Ditto.
+ 
+ 2023-04-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix redundant vmv1r.v.
+ 
+ 2023-04-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix RA constraint.
+ 
+ 2023-04-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/109272
+ 	* tree-ssa-sccvn.cc (vn_reference_eq): add type vector subparts
+ 	check for vn_reference equal.
+ 
+ 2023-04-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Add enum for
+ 	auto-vectorization preference.
+ 	(enum riscv_autovec_lmul_enum): Add enum for choosing LMUL of RVV
+ 	auto-vectorization.
+ 	* config/riscv/riscv.opt: Add compile option for RVV auto-vectorization.
+ 
+ 2023-04-26  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
+ 
+ 	* config/riscv/bitmanip.md: Updated predicates of bclri<mode>_nottwobits
+ 	and bclridisi_nottwobits patterns.
+ 	* config/riscv/predicates.md: (not_uimm_extra_bit_or_nottwobits): Adjust
+ 	predicate to avoid splitting arith constants.
+ 	(const_nottwobits_not_arith_operand): New predicate.
+ 
+ 2023-04-25  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* recog.cc (peep2_attempt, peep2_update_life): Correct
+ 	head-comment description of parameter match_len.
+ 
+ 2023-04-25  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.md: riscv_move_integer() drop in_splitter arg.
+ 	riscv_split_symbol() drop in_splitter arg.
+ 	* config/riscv/riscv.cc: riscv_move_integer() drop in_splitter arg.
+ 	riscv_split_symbol() drop in_splitter arg.
+ 	riscv_force_temporary() drop in_splitter arg.
+ 	* config/riscv/riscv-protos.h: riscv_move_integer() drop in_splitter arg.
+ 	riscv_split_symbol() drop in_splitter arg.
+ 
+ 2023-04-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-ssa.cc (insert_debug_temp_for_var_def): Do not create
+ 	superfluous debug temporaries for single GIMPLE assignments.
+ 
+ 2023-04-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109609
+ 	* attr-fnspec.h (arg_max_access_size_given_by_arg_p):
+ 	Clarify semantics.
+ 	* tree-ssa-alias.cc (check_fnspec): Correctly interpret
+ 	the size given by arg_max_access_size_given_by_arg_p as
+ 	maximum, not exact, size.
+ 
+ 2023-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (orn<mode>3): Rename to...
+ 	(orn<mode>3<vczle><vczbe>): ... This.
+ 	(bic<mode>3): Rename to...
+ 	(bic<mode>3<vczle><vczbe>): ... This.
+ 	(<su><maxmin><mode>3): Rename to...
+ 	(<su><maxmin><mode>3<vczle><vczbe>): ... This.
+ 
+ 2023-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (<su_optab>div<mode>3): New define_expand.
+ 	* config/aarch64/iterators.md (VQDIV): New mode iterator.
+ 	(vnx2di): New mode attribute.
+ 
+ 2023-04-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/109585
+ 	* tree-ssa-alias.cc (aliasing_component_refs_p): Fix typo.
+ 
+ 2023-04-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109566
+ 	* config/rs6000/rs6000.cc (rs6000_is_valid_rotate_dot_mask): For
+ 	!TARGET_64BIT, don't return true if UINTVAL (mask) << (63 - nb)
+ 	is larger than signed int maximum.
+ 
+ 2023-04-25  Martin Liska  <mliska@suse.cz>
+ 
+ 	* doc/gcov.texi: Document the new "calls" field and document
+ 	the API bump. Mention also "block_ids" for lines.
+ 	* gcov.cc (output_intermediate_json_line): Output info about
+ 	calls and extend branches as well.
+ 	(generate_results): Bump version to 2.
+ 	(output_line_details): Use block ID instead of a non-sensual
+ 	index.
+ 
+ 2023-04-25  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/stormy16/stormy16.md (zero_extendqihi2): Restore/fix
+ 	length attribute for the first (memory operand) alternative.
+ 
+ 2023-04-25  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md(aarch64_simd_stp<mode>): New.
+ 	* config/aarch64/constraints.md: Make "Umn" relaxed memory
+ 	constraint.
+ 	* config/aarch64/iterators.md(ldpstp_vel_sz): New.
+ 
+ 2023-04-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (frange::set): Adjust constructor.
+ 	* value-range.h (nan_state::nan_state): Replace default
+ 	constructor with one taking an argument.
+ 
+ 2023-04-25  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* ipa-cp.cc (ipa_range_contains_p): New.
+ 	(decide_whether_version_node): Use it.
+ 
+ 2023-04-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* tree-ssa-forwprop.cc (is_combined_permutation_identity): Try to
+ 	simplify two successive VEC_PERM_EXPRs with same VLA mask,
+ 	where mask chooses elements in reverse order.
+ 
+ 2023-04-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Add new arguments
+ 	and support diamond shaped basic block form.
+ 	(tree_ssa_phiopt_worker): Update call to match_simplify_replacement
+ 
+ 2023-04-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
+ 	Instead of calling last_and_only_stmt, look for the last statement
+ 	manually.
+ 
+ 2023-04-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
+ 	New function.
+ 	(match_simplify_replacement): Call
+ 	empty_bb_or_one_feeding_into_p instead of doing it inline.
+ 
+ 2023-04-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/68894
+ 	* tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove the
+ 	continue for the do_hoist_loads diamond case.
+ 
+ 2023-04-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Rearrange
+ 	code for better code readability.
+ 
+ 2023-04-24  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109604
+ 	* tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Move the
+ 	diamond form check from ...
+ 	(minmax_replacement): Here.
+ 
+ 2023-04-24  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* tree.cc (strip_array_types): Don't define here.
+ 	(is_typedef_decl): Don't define here.
+ 	(typedef_variant_p): Don't define here.
+ 	* tree.h (strip_array_types): Define here.
+ 	(is_typedef_decl): Define here.
+ 	(typedef_variant_p): Define here.
+ 
+ 2023-04-24  Frederik Harwath  <frederik@codesourcery.com>
+ 
+ 	* doc/generic.texi (OpenMP): Add != to allowed
+ 	conditions and state that vars can be unsigned.
+ 	* tree.def (OMP_FOR): Likewise.
+ 
+ 2023-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (mulv2di3): New expander.
+ 
+ 2023-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* doc/install.texi: Consistently use Solaris rather than Solaris 2.
+ 	Remove explicit Solaris 11 references.
+ 	Markup fixes.
+ 	(Options specification, --with-gnu-as): as and gas always differ
+ 	on Solaris.
+ 	Remove /usr/ccs/bin reference.
+ 	(Installing GCC: Binaries, Solaris (SPARC, Intel)): Remove.
+ 	(i?86-*-solaris2*): Merge assembler, linker recommendations ...
+ 	(*-*-solaris2*): ... here.
+ 	Update bundled GCC versions.
+ 	Don't refer to pre-built binaries.
+ 	Remove /bin/sh warning.
+ 	Update assembler, linker recommendations.
+ 	Document GNAT bootstrap compiler.
+ 	(sparc-sun-solaris2*): Remove non-UltraSPARC reference.
+ 	(sparc64-*-solaris2*): Move content...
+ 	(sparcv9-*-solaris2*): ...here.
+ 	Add GDC for 64-bit bootstrap compilers.
+ 
+ 2023-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/109406
+ 	* config/aarch64/aarch64-sve.md (<optab><mode>3): Handle TARGET_SVE2 MUL
+ 	case.
+ 	* config/aarch64/aarch64-sve2.md (*aarch64_mul_unpredicated_<mode>): New
+ 	pattern.
+ 
+ 2023-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): Rename to...
+ 	(aarch64_<su>abal2<mode>_insn): ... This.  Use RTL codes instead of unspec.
+ 	(aarch64_<su>abal2<mode>): New define_expand.
+ 	* config/aarch64/aarch64.cc (aarch64_abd_rtx_p): New function.
+ 	(aarch64_rtx_costs): Handle ABD rtxes.
+ 	* config/aarch64/aarch64.md (UNSPEC_SABAL2, UNSPEC_UABAL2): Delete.
+ 	* config/aarch64/iterators.md (ABAL2): Delete.
+ 	(sur): Remove handling of UNSPEC_UABAL2 and UNSPEC_SABAL2.
+ 
+ 2023-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>): Rename to...
+ 	(aarch64_<su>abal<mode>): ... This.  Use RTL codes instead of unspec.
+ 	(<sur>sadv16qi): Rename to...
+ 	(<su>sadv16qi): ... This.  Adjust for the above.
+ 	* config/aarch64/aarch64-sve.md (<sur>sad<vsi2qi>): Rename to...
+ 	(<su>sad<vsi2qi>): ... This.  Adjust for the above.
+ 	* config/aarch64/aarch64.md (UNSPEC_SABAL, UNSPEC_UABAL): Delete.
+ 	* config/aarch64/iterators.md (ABAL): Delete.
+ 	(sur): Remove handling of UNSPEC_SABAL and UNSPEC_UABAL.
+ 
+ 2023-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>): Rename to...
+ 	(aarch64_<su>abdl2<mode>_insn): ... This.  Use RTL codes instead of unspec.
+ 	(aarch64_<su>abdl2<mode>): New define_expand.
+ 	* config/aarch64/aarch64.md (UNSPEC_SABDL2, UNSPEC_UABDL2): Delete.
+ 	* config/aarch64/iterators.md (ABDL2): Delete.
+ 	(sur): Remove handling of UNSPEC_SABDL2 and UNSPEC_UABDL2.
+ 
+ 2023-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): Rename to...
+ 	(aarch64_<su>abdl<mode>): ... This.  Use standard RTL ops instead of
+ 	unspec.
+ 	* config/aarch64/aarch64.md (UNSPEC_SABDL, UNSPEC_UABDL): Delete.
+ 	* config/aarch64/iterators.md (ABDL): Delete.
+ 	(sur): Remove handling of UNSPEC_SABDL and UNSPEC_UABDL.
+ 
+ 2023-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md
+ 	(*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): New pattern.
+ 
+ 2023-04-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-ssa-split-paths.cc (is_feasible_trace): Avoid
+ 	last_stmt.
+ 	* graphite-scop-detection.cc (single_pred_cond_non_loop_exit):
+ 	Likewise.
+ 	* ipa-fnsummary.cc (set_cond_stmt_execution_predicate): Likewise.
+ 	(set_switch_stmt_execution_predicate): Likewise.
+ 	(phi_result_unknown_predicate): Likewise.
+ 	* ipa-prop.cc (compute_complex_ancestor_jump_func): Likewise.
+ 	(ipa_analyze_indirect_call_uses): Likewise.
+ 	* predict.cc (predict_iv_comparison): Likewise.
+ 	(predict_extra_loop_exits): Likewise.
+ 	(predict_loops): Likewise.
+ 	(tree_predict_by_opcode): Likewise.
+ 	* gimple-predicate-analysis.cc (predicate::init_from_control_deps):
+ 	Likewise.
+ 	* gimple-pretty-print.cc (dump_implicit_edges): Likewise.
+ 	* tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Likewise.
+ 	(replace_phi_edge_with_variable): Likewise.
+ 	(two_value_replacement): Likewise.
+ 	(value_replacement): Likewise.
+ 	(minmax_replacement): Likewise.
+ 	(spaceship_replacement): Likewise.
+ 	(cond_removal_in_builtin_zero_pattern): Likewise.
+ 	* tree-ssa-reassoc.cc (maybe_optimize_range_tests): Likewise.
+ 	* tree-ssa-sccvn.cc (vn_phi_eq): Likewise.
+ 	(vn_phi_lookup): Likewise.
+ 	(vn_phi_insert): Likewise.
+ 	* tree-ssa-structalias.cc (compute_points_to_sets): Likewise.
+ 	* tree-ssa-threadbackward.cc (back_threader::maybe_thread_block):
+ 	Likewise.
+ 	(back_threader_profitability::possibly_profitable_path_p):
+ 	Likewise.
+ 	* tree-ssa-threadedge.cc (jump_threader::thread_outgoing_edges):
+ 	Likewise.
+ 	* tree-switch-conversion.cc (pass_convert_switch::execute):
+ 	Likewise.
+ 	(pass_lower_switch<O0>::execute): Likewise.
+ 	* tree-tailcall.cc (tree_optimize_tail_calls_1): Likewise.
+ 	* tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
+ 	* tree-vect-slp.cc (vect_slp_function): Likewise.
+ 	* tree-vect-stmts.cc (cfun_returns): Likewise.
+ 	* tree-vectorizer.cc (vect_loop_vectorized_call): Likewise.
+ 	(vect_loop_dist_alias_call): Likewise.
+ 
+ 2023-04-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* cfgcleanup.cc (outgoing_edges_match): Use FORWARDER_BLOCK_P.
+ 
+ 2023-04-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(vector_infos_manager::all_avail_in_compatible_p): New function.
+ 	(pass_vsetvl::refine_vsetvls): Optimize vsetvls.
+ 	* config/riscv/riscv-vsetvl.h: New function.
+ 
+ 2023-04-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::pre_vsetvl): Add function
+ 	comment for cleanup_insns.
+ 
+ 2023-04-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: New unspec to refine fault first load pattern.
+ 	* config/riscv/vector.md: Refine fault first load pattern to erase avl from instructions
+ 	with the fault first load property.
+ 
+ 2023-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
+ 	(aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.
+ 
+ 2023-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (aarch64_addp<mode>): Rename to...
+ 	(aarch64_addp<mode><vczle><vczbe>): ... This.
+ 
+ 2023-04-23  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/stormy16/stormy16.cc (xstormy16_rtx_costs): Rewrite to
+ 	provide reasonable values for common arithmetic operations and
+ 	immediate operands (in several machine modes).
+ 
+ 2023-04-23  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/stormy16/stormy16.cc (xstormy16_print_operand): Add %h
+ 	format specifier to output high_part register name of SImode reg.
+ 	* config/stormy16/stormy16.md (extendhisi2): New define_insn.
+ 	(zero_extendqihi2): Fix lengths, consistent formatting and add
+ 	"and Rx,#255" alternative, for documentation purposes.
+ 	(zero_extendhisi2): New define_insn.
+ 
+ 2023-04-23  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/stormy16/stormy16.cc (xstormy16_output_shift): Implement
+ 	SImode shifts by two by performing a single bit SImode shift twice.
+ 
+ 2023-04-23  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/109593
+ 	* value-range.cc (frange::operator==): Handle NANs.
+ 
+ 2023-04-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR rtl-optimization/108707
+ 	* ira-costs.cc (scan_one_insn): Use NO_REGS instead of
+ 	GENERAL_REGS when preferred reg_class is not known.
+ 
+ 2023-04-22  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
+ 	Change the code around slightly to move diamond
+ 	handling for do_store_elim/do_hoist_loads out of
+ 	the big if/else.
+ 
+ 2023-04-22  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
+ 	Remove check on empty_block_p.
+ 
+ 2023-04-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/109589
+ 	* system.h (class auto_mpz): Workaround PR62101 bug in GCC 4.8 and 4.9.
+ 	* realmpfr.h (class auto_mpfr): Likewise.
+ 
+ 2023-04-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109583
+ 	* match.pd (fneg/fadd simplify): Don't call related_vector_mode
+ 	if vec_mode is not VECTOR_MODE_P.
+ 
+ 2023-04-22  Jan Hubicka  <hubicka@ucw.cz>
+ 	    Ondrej Kubanek  <kubanek0ondrej@gmail.com>
+ 
+ 	* cfgloopmanip.h (adjust_loop_info_after_peeling): Declare.
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix updating of
+ 	loop profile and bounds after header duplication.
+ 	* tree-ssa-loop-ivcanon.cc (adjust_loop_info_after_peeling):
+ 	Break out from try_peel_loop; fix handling of 0 iterations.
+ 	(try_peel_loop): Use adjust_loop_info_after_peeling.
+ 
+ 2023-04-21  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109546
+ 	* tree-vrp.cc (remove_unreachable::remove_and_update_globals): Do
+ 	not fold conditions with ADDR_EXPR early.
+ 
+ 2023-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (aarch64_umax<mode>3_insn): Delete.
+ 	(umax<mode>3): Emit raw UMAX RTL instead of going through gen_ function
+ 	for umax.
+ 	(<optab><mode>3): New define_expand for MAXMIN_NOUMAX codes.
+ 	(*aarch64_<optab><mode>3_zero): Define.
+ 	(*aarch64_<optab><mode>3_cssc): Likewise.
+ 	* config/aarch64/iterators.md (maxminand): New code attribute.
+ 
+ 2023-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/108779
+ 	* config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Define.
+ 	* config/aarch64/aarch64-protos.h (aarch64_output_load_tp):
+ 	Define prototype.
+ 	* config/aarch64/aarch64.cc (aarch64_tpidr_register): Declare.
+ 	(aarch64_override_options_internal): Handle the above.
+ 	(aarch64_output_load_tp): New function.
+ 	* config/aarch64/aarch64.md (aarch64_load_tp_hard): Call
+ 	aarch64_output_load_tp.
+ 	* config/aarch64/aarch64.opt (aarch64_tp_reg): Define enum.
+ 	(mtp=): New option.
+ 	* doc/invoke.texi (AArch64 Options): Document -mtp=.
+ 
+ 2023-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/99195
+ 	* config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Define.
+ 	(add_vec_concat_subst_be): Likewise.
+ 	(vczle): Likewise.
+ 	(vczbe): Likewise.
+ 	(add<mode>3): Rename to...
+ 	(add<mode>3<vczle><vczbe>): ... This.
+ 	(sub<mode>3): Rename to...
+ 	(sub<mode>3<vczle><vczbe>): ... This.
+ 	(mul<mode>3): Rename to...
+ 	(mul<mode>3<vczle><vczbe>): ... This.
+ 	(and<mode>3): Rename to...
+ 	(and<mode>3<vczle><vczbe>): ... This.
+ 	(ior<mode>3): Rename to...
+ 	(ior<mode>3<vczle><vczbe>): ... This.
+ 	(xor<mode>3): Rename to...
+ 	(xor<mode>3<vczle><vczbe>): ... This.
+ 	* config/aarch64/iterators.md (VDZ): Define.
+ 
+ 2023-04-21  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* tree.cc (walk_tree_1): Avoid repeatedly dereferencing tp
+ 	and type_p.
+ 
+ 2023-04-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix previous
+ 	commit.
+ 
+ 2023-04-21  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* expmed.h (x_shift*_cost): convert to int [speed][mode][shift].
+ 	(shift*_cost_ptr ()): Access x_shift*_cost array directly.
+ 
+ 2023-04-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_simd_dup_constant): Use
+ 	force_reg instead of copy_to_mode_reg.
+ 	(aarch64_expand_vector_init): Likewise.
+ 
+ 2023-04-21  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Remove.
+ 	(REG_OK_FOR_INDEX_NONSTRICT_P,  REG_OK_FOR_BASE_NONSTRICT_P): Ditto.
+ 	(REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P): Ditto.
+ 	(FIRST_INDEX_REG, LAST_INDEX_REG): New defines.
+ 	(LEGACY_INDEX_REG_P, LEGACY_INDEX_REGNO_P): New macros.
+ 	(INDEX_REG_P, INDEX_REGNO_P): Ditto.
+ 	(REGNO_OK_FOR_INDEX_P): Use INDEX_REGNO_P predicates.
+ 	(REGNO_OK_FOR_INDEX_NONSTRICT_P): New macro.
+ 	(EG_OK_FOR_BASE_NONSTRICT_P): Ditto.
+ 	* config/i386/predicates.md (index_register_operand):
+ 	Use REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
+ 	* config/i386/i386.cc (ix86_legitimate_address_p): Use
+ 	REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_BASE_NONSTRICT_P,
+ 	REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
+ 
+ 2023-04-21  Jan Hubicka  <hubicka@ucw.cz>
+ 	    Ondrej Kubanek  <kubanek0ondrej@gmail.com>
+ 
+ 	* tree-ssa-loop-ch.cc (ch_base::copy_headers): Update loop header and
+ 	latch.
+ 
+ 2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* is-a.h (safe_is_a): New.
+ 
+ 2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
+ 	(gphi_iterator::operator*): Likewise.
+ 
+ 2023-04-21  Jan Hubicka  <hubicka@ucw.cz>
+ 	    Michal Jires  <michal@jires.eu>
+ 
+ 	* ipa-inline.cc (class inline_badness): New class.
+ 	(edge_heap_t, edge_heap_node_t): Use inline_badness for badness instead
+ 	of sreal.
+ 	(update_edge_key): Update.
+ 	(lookup_recursive_calls): Likewise.
+ 	(recursive_inlining): Likewise.
+ 	(add_new_edges_to_heap): Likewise.
+ 	(inline_small_functions): Likewise.
+ 
+ 2023-04-21  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-devirt.cc (odr_types_equivalent_p): Cleanup warned checks.
+ 
+ 2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109573
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Allow
+ 	unhandled SSA copy as well.  Demote assert to checking only.
+ 
+ 2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* df-core.cc (df_analyze): Compute RPO on the reverse graph
+ 	for DF_BACKWARD problems.
+ 	(loop_post_order_compute): Rename to ...
+ 	(loop_rev_post_order_compute): ... this, compute a RPO.
+ 	(loop_inverted_post_order_compute): Rename to ...
+ 	(loop_inverted_rev_post_order_compute): ... this, compute a RPO.
+ 	(df_analyze_loop): Use RPO on the forward graph for DF_FORWARD
+ 	problems, RPO on the inverted graph for DF_BACKWARD.
+ 
+ 2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* cfganal.h (inverted_rev_post_order_compute): Rename
+ 	from ...
+ 	(inverted_post_order_compute): ... this.  Add struct function
+ 	argument, change allocation to a C array.
+ 	* cfganal.cc (inverted_rev_post_order_compute): Likewise.
+ 	* lcm.cc (compute_antinout_edge): Adjust.
+ 	* lra-lives.cc (lra_create_live_ranges_1): Likewise.
+ 	* tree-ssa-dce.cc (remove_dead_stmt): Likewise.
+ 	* tree-ssa-pre.cc (compute_antic): Likewise.
+ 
+ 2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* df.h (df_d::postorder_inverted): Change back to int *,
+ 	clarify comments.
+ 	* df-core.cc (rest_of_handle_df_finish): Adjust.
+ 	(df_analyze_1): Likewise.
+ 	(df_analyze): For DF_FORWARD problems use RPO on the forward
+ 	graph.  Adjust.
+ 	(loop_inverted_post_order_compute): Adjust API.
+ 	(df_analyze_loop): Adjust.
+ 	(df_get_n_blocks): Likewise.
+ 	(df_get_postorder): Likewise.
+ 
+ 2023-04-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/108270
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(vector_infos_manager::all_empty_predecessor_p): New function.
+ 	(pass_vsetvl::backward_demand_fusion): Ditto.
+ 	* config/riscv/riscv-vsetvl.h: Ditto.
+ 
+ 2023-04-21  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/109582
+ 	* config/riscv/generic.md: Change standard names to insn names.
+ 
+ 2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* lcm.cc (compute_antinout_edge): Use RPO on the inverted graph.
+ 	(compute_laterin): Use RPO.
+ 	(compute_available): Likewise.
+ 
+ 2023-04-21  Peng Fan  <fanpeng@loongson.cn>
+ 
+ 	* config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
+ 
+ 2023-04-21  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109547
+ 	* config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): New function.
+ 	(vector_insn_info::skip_avl_compatible_p): Ditto.
+ 	(vector_insn_info::merge): Remove default value.
+ 	(pass_vsetvl::compute_local_backward_infos): Ditto.
+ 	(pass_vsetvl::cleanup_insns): Add local vsetvl elimination.
+ 	* config/riscv/riscv-vsetvl.h: Ditto.
+ 
+ 2023-04-20  Alejandro Colomar  <alx.manpages@gmail.com>
+ 
+ 	* doc/extend.texi (Common Function Attributes): Remove duplicate
+ 	word.
+ 
+ 2023-04-20  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109564
+ 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore
+ 	UNDEFINED range names when deciding if all PHI arguments are the same,
+ 
+ 2023-04-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109011
+ 	* tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Use
+ 	.CTZ (X) = .POPCOUNT ((X - 1) & ~X) in preference to
+ 	.CTZ (X) = PREC - .POPCOUNT (X | -X).
+ 
+ 2023-04-20  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc (match_reload): Exclude some hard regs for
+ 	multi-reg inout reload pseudos used in asm in different mode.
+ 
+ 2023-04-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/arm/arm.cc (thumb1_legitimate_address_p):
+ 	Use VIRTUAL_REGISTER_P predicate.
+ 	(arm_eliminable_register): Ditto.
+ 	* config/avr/avr.md (push<mode>_1): Ditto.
+ 	* config/bfin/predicates.md (register_no_elim_operand): Ditto.
+ 	* config/h8300/predicates.md (register_no_sp_elim_operand): Ditto.
+ 	* config/i386/predicates.md (register_no_elim_operand): Ditto.
+ 	* config/iq2000/predicates.md (call_insn_operand): Ditto.
+ 	* config/microblaze/microblaze.h (CALL_INSN_OP): Ditto.
+ 
+ 2023-04-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/78952
+ 	* config/i386/predicates.md (extract_operator): New predicate.
+ 	* config/i386/i386.md (any_extract): Remove code iterator.
+ 	(*cmpqi_ext<mode>_1_mem_rex64): Use extract_operator predicate.
+ 	(*cmpqi_ext<mode>_1): Ditto.
+ 	(*cmpqi_ext<mode>_2): Ditto.
+ 	(*cmpqi_ext<mode>_3_mem_rex64): Ditto.
+ 	(*cmpqi_ext<mode>_3): Ditto.
+ 	(*cmpqi_ext<mode>_4): Ditto.
+ 	(*extzvqi_mem_rex64): Ditto.
+ 	(*extzvqi): Ditto.
+ 	(*insvqi_2): Ditto.
+ 	(*extendqi<SWI24:mode>_ext_1): Ditto.
+ 	(*addqi_ext<mode>_0): Ditto.
+ 	(*addqi_ext<mode>_1): Ditto.
+ 	(*addqi_ext<mode>_2): Ditto.
+ 	(*subqi_ext<mode>_0): Ditto.
+ 	(*subqi_ext<mode>_2): Ditto.
+ 	(*testqi_ext<mode>_1): Ditto.
+ 	(*testqi_ext<mode>_2): Ditto.
+ 	(*andqi_ext<mode>_0): Ditto.
+ 	(*andqi_ext<mode>_1): Ditto.
+ 	(*andqi_ext<mode>_1_cc): Ditto.
+ 	(*andqi_ext<mode>_2): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_0): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_1): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_2): Ditto.
+ 	(*xorqi_ext<mode>_1_cc): Ditto.
+ 	(*negqi_ext<mode>_2): Ditto.
+ 	(*ashlqi_ext<mode>_2): Ditto.
+ 	(*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
+ 
+ 2023-04-20  Raphael Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	PR target/108248
+ 	* config/riscv/bitmanip.md (clz, ctz, pcnt, min, max patterns): Use
+ 	<bitmanip_insn> as the type to allow for fine grained control of
+ 	scheduling these insns.
+ 	* config/riscv/generic.md (generic_alu): Add bitmanip, clz, ctz, pcnt,
+ 	min, max.
+ 	* config/riscv/riscv.md (type attribute): Add types for clz, ctz,
+ 	pcnt, signed and unsigned min/max.
+ 
+ 2023-04-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.h (enum reg_class): Fix RVV register order.
+ 
+ 2023-04-20  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/109535
+ 	* config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
+ 	(pass_vsetvl::cleanup_insns): Fix bug.
+ 
+ 2023-04-20  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes.
+ 	(ldexp<mode>3): Delete.
+ 	(ldexp<mode>3<exec>): Change "B" to "A".
+ 
+ 2023-04-20  Jakub Jelinek  <jakub@redhat.com>
+ 	    Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* tree.h (built_in_function_equal_p): New helper function.
+ 	(fndecl_built_in_p): Turn into variadic template to support
+ 	1 or more built_in_function arguments.
+ 	* builtins.cc (fold_builtin_expect): Use 3 argument fndecl_built_in_p.
+ 	* gimplify.cc (goa_stabilize_expr): Likewise.
+ 	* cgraphclones.cc (cgraph_node::create_clone): Likewise.
+ 	* ipa-fnsummary.cc (compute_fn_summary): Likewise.
+ 	* omp-low.cc (setjmp_or_longjmp_p): Likewise.
+ 	* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
+ 	cgraph_update_edges_for_call_stmt_node,
+ 	cgraph_edge::verify_corresponds_to_fndecl,
+ 	cgraph_node::verify_node): Likewise.
+ 	* tree-stdarg.cc (optimize_va_list_gpr_fpr_size): Likewise.
+ 	* gimple-ssa-warn-access.cc (matching_alloc_calls_p): Likewise.
+ 	* ipa-prop.cc (try_make_edge_direct_virtual_call): Likewise.
+ 
+ 2023-04-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109011
+ 	* tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): New function.
+ 	(vect_recog_popcount_clz_ctz_ffs_pattern): Move vect_pattern_detected
+ 	call later.  Don't punt for IFN_CTZ or IFN_FFS if it doesn't have
+ 	direct optab support, but has instead IFN_CLZ, IFN_POPCOUNT or
+ 	for IFN_FFS IFN_CTZ support, use vect_recog_ctz_ffs_pattern for that
+ 	case.
+ 	(vect_vect_recog_func_ptrs): Add ctz_ffs entry.
+ 
+ 2023-04-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* df-core.cc (rest_of_handle_df_initialize): Remove
+ 	computation of df->postorder, df->postorder_inverted and
+ 	df->n_blocks.
+ 
+ 2023-04-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AVX_UNSET): Add OPTION_MASK_ISA2_VAES_UNSET.
+ 	(ix86_handle_option): Set AVX flag for VAES.
+ 	* config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
+ 	Add OPTION_MASK_ISA2_VAES_UNSET.
+ 	(def_builtin): Share builtin between AES and VAES.
+ 	* config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
+ 	Ditto.
+ 	* config/i386/i386.md (aes): New isa attribute.
+ 	* config/i386/sse.md (aesenc): Add pattern for VAES with xmm.
+ 	(aesenclast): Ditto.
+ 	(aesdec): Ditto.
+ 	(aesdeclast): Ditto.
+ 	* config/i386/vaesintrin.h: Remove redundant avx target push.
+ 	* config/i386/wmmintrin.h (_mm_aesdec_si128): Change to macro.
+ 	(_mm_aesdeclast_si128): Ditto.
+ 	(_mm_aesenc_si128): Ditto.
+ 	(_mm_aesenclast_si128): Ditto.
+ 
+ 2023-04-20  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/avx2intrin.h
+ 	(_MM_REDUCE_OPERATOR_BASIC_EPI16): New macro.
+ 	(_MM_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
+ 	(_MM256_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
+ 	(_MM256_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
+ 	(_MM_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
+ 	(_MM_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
+ 	(_MM256_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
+ 	(_MM256_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
+ 	(_mm_reduce_add_epi16): New instrinsics.
+ 	(_mm_reduce_mul_epi16): Ditto.
+ 	(_mm_reduce_and_epi16): Ditto.
+ 	(_mm_reduce_or_epi16): Ditto.
+ 	(_mm_reduce_max_epi16): Ditto.
+ 	(_mm_reduce_max_epu16): Ditto.
+ 	(_mm_reduce_min_epi16): Ditto.
+ 	(_mm_reduce_min_epu16): Ditto.
+ 	(_mm256_reduce_add_epi16): Ditto.
+ 	(_mm256_reduce_mul_epi16): Ditto.
+ 	(_mm256_reduce_and_epi16): Ditto.
+ 	(_mm256_reduce_or_epi16): Ditto.
+ 	(_mm256_reduce_max_epi16): Ditto.
+ 	(_mm256_reduce_max_epu16): Ditto.
+ 	(_mm256_reduce_min_epi16): Ditto.
+ 	(_mm256_reduce_min_epu16): Ditto.
+ 	(_mm_reduce_add_epi8): Ditto.
+ 	(_mm_reduce_mul_epi8): Ditto.
+ 	(_mm_reduce_and_epi8): Ditto.
+ 	(_mm_reduce_or_epi8): Ditto.
+ 	(_mm_reduce_max_epi8): Ditto.
+ 	(_mm_reduce_max_epu8): Ditto.
+ 	(_mm_reduce_min_epi8): Ditto.
+ 	(_mm_reduce_min_epu8): Ditto.
+ 	(_mm256_reduce_add_epi8): Ditto.
+ 	(_mm256_reduce_mul_epi8): Ditto.
+ 	(_mm256_reduce_and_epi8): Ditto.
+ 	(_mm256_reduce_or_epi8): Ditto.
+ 	(_mm256_reduce_max_epi8): Ditto.
+ 	(_mm256_reduce_max_epu8): Ditto.
+ 	(_mm256_reduce_min_epi8): Ditto.
+ 	(_mm256_reduce_min_epu8): Ditto.
+ 	* config/i386/avx512vlbwintrin.h:
+ 	(_mm_mask_reduce_add_epi16): Ditto.
+ 	(_mm_mask_reduce_mul_epi16): Ditto.
+ 	(_mm_mask_reduce_and_epi16): Ditto.
+ 	(_mm_mask_reduce_or_epi16): Ditto.
+ 	(_mm_mask_reduce_max_epi16): Ditto.
+ 	(_mm_mask_reduce_max_epu16): Ditto.
+ 	(_mm_mask_reduce_min_epi16): Ditto.
+ 	(_mm_mask_reduce_min_epu16): Ditto.
+ 	(_mm256_mask_reduce_add_epi16): Ditto.
+ 	(_mm256_mask_reduce_mul_epi16): Ditto.
+ 	(_mm256_mask_reduce_and_epi16): Ditto.
+ 	(_mm256_mask_reduce_or_epi16): Ditto.
+ 	(_mm256_mask_reduce_max_epi16): Ditto.
+ 	(_mm256_mask_reduce_max_epu16): Ditto.
+ 	(_mm256_mask_reduce_min_epi16): Ditto.
+ 	(_mm256_mask_reduce_min_epu16): Ditto.
+ 	(_mm_mask_reduce_add_epi8): Ditto.
+ 	(_mm_mask_reduce_mul_epi8): Ditto.
+ 	(_mm_mask_reduce_and_epi8): Ditto.
+ 	(_mm_mask_reduce_or_epi8): Ditto.
+ 	(_mm_mask_reduce_max_epi8): Ditto.
+ 	(_mm_mask_reduce_max_epu8): Ditto.
+ 	(_mm_mask_reduce_min_epi8): Ditto.
+ 	(_mm_mask_reduce_min_epu8): Ditto.
+ 	(_mm256_mask_reduce_add_epi8): Ditto.
+ 	(_mm256_mask_reduce_mul_epi8): Ditto.
+ 	(_mm256_mask_reduce_and_epi8): Ditto.
+ 	(_mm256_mask_reduce_or_epi8): Ditto.
+ 	(_mm256_mask_reduce_max_epi8): Ditto.
+ 	(_mm256_mask_reduce_max_epu8): Ditto.
+ 	(_mm256_mask_reduce_min_epi8): Ditto.
+ 	(_mm256_mask_reduce_min_epu8): Ditto.
+ 
+ 2023-04-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA_VPCLMULQDQ_SET):
+ 	Add OPTION_MASK_ISA_PCLMUL_SET and OPTION_MASK_ISA_AVX_SET.
+ 	(OPTION_MASK_ISA_AVX_UNSET):
+ 	Add OPTION_MASK_ISA_VPCLMULQDQ_UNSET.
+ 	(OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
+ 	* config/i386/i386.md (vpclmulqdqvl): New.
+ 	* config/i386/sse.md (pclmulqdq): Add evex encoding.
+ 	* config/i386/vpclmulqdqintrin.h: Remove redudant avx target
+ 	push.
+ 
+ 2023-04-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/avx512vlbwintrin.h
+ 	(_mm_mask_blend_epi16): Remove __OPTIMIZE__ wrapper.
+ 	(_mm_mask_blend_epi8): Ditto.
+ 	(_mm256_mask_blend_epi16): Ditto.
+ 	(_mm256_mask_blend_epi8): Ditto.
+ 	* config/i386/avx512vlintrin.h
+ 	(_mm256_mask_blend_pd): Ditto.
+ 	(_mm256_mask_blend_ps): Ditto.
+ 	(_mm256_mask_blend_epi64): Ditto.
+ 	(_mm256_mask_blend_epi32): Ditto.
+ 	(_mm_mask_blend_pd): Ditto.
+ 	(_mm_mask_blend_ps): Ditto.
+ 	(_mm_mask_blend_epi64): Ditto.
+ 	(_mm_mask_blend_epi32): Ditto.
+ 	* config/i386/sse.md (VF_AVX512BWHFBF16): Removed.
+ 	(VF_AVX512HFBFVL): Move it before the first usage.
+ 	(<avx512>_blendm<mode>): Change iterator from VF_AVX512BWHFBF16
+ 	to VF_AVX512HFBFVL.
+ 
+ 2023-04-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA_AVX512VBMI2_SET): Change OPTION_MASK_ISA_AVX512F_SET
+ 	to OPTION_MASK_ISA_AVX512BW_SET.
+ 	(OPTION_MASK_ISA_AVX512F_UNSET):
+ 	Remove OPTION_MASK_ISA_AVX512VBMI2_UNSET.
+ 	(OPTION_MASK_ISA_AVX512BW_UNSET):
+ 	Add OPTION_MASK_ISA_AVX512VBMI2_UNSET.
+ 	* config/i386/avx512vbmi2intrin.h: Do not push avx512bw.
+ 	* config/i386/avx512vbmi2vlintrin.h: Ditto.
+ 	* config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_AVX512BW.
+ 	* config/i386/sse.md (VI12_AVX512VLBW): Removed.
+ 	(VI12_VI48F_AVX512VLBW): Rename to VI12_VI48F_AVX512VL.
+ 	(compress<mode>_mask): Change iterator from VI12_AVX512VLBW to
+ 	VI12_AVX512VL.
+ 	(compressstore<mode>_mask): Ditto.
+ 	(expand<mode>_mask): Ditto.
+ 	(expand<mode>_maskz): Ditto.
+ 	(*expand<mode>_mask): Change iterator from VI12_VI48F_AVX512VLBW to
+ 	VI12_VI48F_AVX512VL.
+ 
+ 2023-04-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA_AVX512BITALG_SET):
+ 	Change OPTION_MASK_ISA_AVX512F_SET
+ 	to OPTION_MASK_ISA_AVX512BW_SET.
+ 	(OPTION_MASK_ISA_AVX512F_UNSET):
+ 	Remove OPTION_MASK_ISA_AVX512BITALG_SET.
+ 	(OPTION_MASK_ISA_AVX512BW_UNSET):
+ 	Add OPTION_MASK_ISA_AVX512BITALG_SET.
+ 	* config/i386/avx512bitalgintrin.h: Do not push avx512bw.
+ 	* config/i386/i386-builtin.def:
+ 	Remove redundant OPTION_MASK_ISA_AVX512BW.
+ 	* config/i386/sse.md (VI1_AVX512VLBW): Removed.
+ 	(avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>):
+ 	Change the iterator from VI1_AVX512VLBW to VI1_AVX512VL.
+ 
+ 2023-04-20  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-expand.cc
+ 	(ix86_check_builtin_isa_match): Correct wrong comments.
+ 	Add a new macro SHARE_BUILTIN and refactor the current if
+ 	clauses to macro.
+ 
+ 2023-04-20  Mo, Zewei  <zewei.mo@intel.com>
+ 
+ 	* config/i386/cpuid.h: Open a new section for Extended Features
+ 	Leaf (%eax == 7, %ecx == 0) and Extended Features Sub-leaf (%eax == 7,
+ 	%ecx == 1).
+ 
+ 2023-04-20  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/sse.md: Modify insn vperm{i,f}
+ 	and vshuf{i,f}.
+ 
+ 2023-04-19  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/xtensa-opts.h: New header.
+ 	* config/xtensa/xtensa.h (STRICT_ALIGNMENT): Redefine as
+ 	xtensa_strict_align.
+ 	* config/xtensa/xtensa.cc (xtensa_option_override): When
+ 	-m[no-]strict-align is not specified in the command line set
+ 	xtensa_strict_align to 0 if the hardware supports both unaligned
+ 	loads and stores or to 1 otherwise.
+ 	* config/xtensa/xtensa.opt (mstrict-align): New option.
+ 	* doc/invoke.texi (Xtensa Options): Document -m[no-]strict-align.
+ 
+ 2023-04-19  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v4): New
+ 	function.
+ 
+ 2023-04-19  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* config/i386/i386.md (*movsicc_noc_zext_1): New pattern.
+ 
+ 2023-04-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-modes.def (FLOAT_MODE): Add chunk 128 support.
+ 	(VECTOR_BOOL_MODE): Ditto.
+ 	(ADJUST_NUNITS): Ditto.
+ 	(ADJUST_ALIGNMENT): Ditto.
+ 	(ADJUST_BYTESIZE): Ditto.
+ 	(ADJUST_PRECISION): Ditto.
+ 	(RVV_MODES): Ditto.
+ 	(VECTOR_MODE_WITH_PREFIX): Ditto.
+ 	* config/riscv/riscv-v.cc (ENTRY): Ditto.
+ 	(get_vlmul): Ditto.
+ 	(get_ratio): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
+ 	(vbool64_t): Ditto.
+ 	(vbool32_t): Ditto.
+ 	(vbool16_t): Ditto.
+ 	(vbool8_t): Ditto.
+ 	(vbool4_t): Ditto.
+ 	(vbool2_t): Ditto.
+ 	(vbool1_t): Ditto.
+ 	(vint8mf8_t): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vint8mf4_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vint8mf2_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vint8m1_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vint8m2_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vint8m4_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vint8m8_t): Ditto.
+ 	(vuint8m8_t): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	(vfloat64m1_t): Ditto.
+ 	(vfloat64m2_t): Ditto.
+ 	(vfloat64m4_t): Ditto.
+ 	(vfloat64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
+ 	* config/riscv/riscv.cc (riscv_legitimize_poly_move): Ditto.
+ 	(riscv_convert_vector_bits): Ditto.
+ 	* config/riscv/riscv.md:
+ 	* config/riscv/vector-iterators.md:
+ 	* config/riscv/vector.md
+ 	(@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
+ 	(@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
+ 	(@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
+ 	(@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
+ 	(@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
+ 
+ 2023-04-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	Align IOR (A | (~A) -> -1) optimization MODE_CLASS condition to AND.
+ 
+ 2023-04-19  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/78904
+ 	PR target/78952
+ 	* config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64): New insn pattern.
+ 	(*cmpqi_ext<mode>_1): Use nonimmediate_operand predicate
+ 	for operand 0. Use any_extract code iterator.
+ 	(*cmpqi_ext<mode>_1 peephole2): New peephole2 pattern.
+ 	(*cmpqi_ext<mode>_2): Use any_extract code iterator.
+ 	(*cmpqi_ext<mode>_3_mem_rex64): New insn pattern.
+ 	(*cmpqi_ext<mode>_1): Use general_operand predicate
+ 	for operand 1. Use any_extract code iterator.
+ 	(*cmpqi_ext<mode>_3 peephole2): New peephole2 pattern.
+ 	(*cmpqi_ext<mode>_4): Use any_extract code iterator.
+ 
+ 2023-04-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_saddw2<mode>): Delete.
+ 	(aarch64_uaddw2<mode>): Delete.
+ 	(aarch64_ssubw2<mode>): Delete.
+ 	(aarch64_usubw2<mode>): Delete.
+ 	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>): New define_expand.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (do_ds_constraint): Use
+ 	solve_add_graph_edge.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (solve_add_graph_edge): New function,
+ 	split out from ...
+ 	(do_sd_constraint): ... here.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-cfg.cc (gimple_can_merge_blocks_p): Remove condition
+ 	rejecting the merge when A contains only a non-local label.
+ 
+ 2023-04-19  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* rtl.h (VIRTUAL_REGISTER_P): New predicate.
+ 	(VIRTUAL_REGISTER_NUM_P): Ditto.
+ 	(REGNO_PTR_FRAME_P): Use VIRTUAL_REGISTER_NUM_P predicate.
+ 	* expr.cc (force_operand): Use VIRTUAL_REGISTER_P predicate.
+ 	* function.cc (instantiate_decl_rtl): Ditto.
+ 	* rtlanal.cc (rtx_addr_can_trap_p_1): Ditto.
+ 	(nonzero_address_p): Ditto.
+ 	(refers_to_regno_p): Use VIRTUAL_REGISTER_NUM_P predicate.
+ 
+ 2023-04-19  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (Value_Range::Value_Range): Avoid pointer sharing.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* system.h (auto_mpz::operator->()): New.
+ 	* realmpfr.h (auto_mpfr::operator->()): New.
+ 	* builtins.cc (do_mpfr_lgamma_r): Use auto_mpfr.
+ 	* real.cc (real_from_string): Likewise.
+ 	(dconst_e_ptr): Likewise.
+ 	(dconst_sqrt2_ptr): Likewise.
+ 	* tree-ssa-loop-niter.cc (refine_value_range_using_guard):
+ 	Use auto_mpz.
+ 	(bound_difference_of_offsetted_base): Likewise.
+ 	(number_of_iterations_ne): Likewise.
+ 	(number_of_iterations_lt_to_ne): Likewise.
+ 	* ubsan.cc: Include realmpfr.h.
+ 	(ubsan_instrument_float_cast): Use auto_mpfr.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (solve_graph): Remove self-copy
+ 	edges, remove edges from escaped after special-casing them.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (do_sd_constraint): Fixup escape
+ 	special casing.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (do_sd_constraint): Do not write
+ 	to the LHS varinfo solution member.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (topo_visit): Look at the real
+ 	destination of edges.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/44794
+ 	* tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
+ 	If an epilogue loop is required set its iteration upper bound.
+ 
+ 2023-04-19  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/109465
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_expand_block_move): Add a parameter as alignment RTX.
+ 	* config/loongarch/loongarch.h:
+ 	(LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER): Remove.
+ 	(LARCH_MAX_MOVE_BYTES_STRAIGHT): Remove.
+ 	(LARCH_MAX_MOVE_OPS_PER_LOOP_ITER): Define.
+ 	(LARCH_MAX_MOVE_OPS_STRAIGHT): Define.
+ 	(MOVE_RATIO): Use LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
+ 	LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_block_move):
+ 	Take the alignment from the parameter, but set it to
+ 	UNITS_PER_WORD if !TARGET_STRICT_ALIGN.  Limit the length of
+ 	straight-line implementation with LARCH_MAX_MOVE_OPS_STRAIGHT
+ 	instead of LARCH_MAX_MOVE_BYTES_STRAIGHT.
+ 	(loongarch_block_move_straight): When there are left-over bytes,
+ 	half the mode size instead of falling back to byte mode at once.
+ 	(loongarch_block_move_loop): Limit the length of loop body with
+ 	LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
+ 	LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
+ 	* config/loongarch/loongarch.md (cpymemsi): Pass the alignment
+ 	to loongarch_expand_block_move.
+ 
+ 2023-04-19  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_setup_incoming_varargs): Don't save more GARs than
+ 	cfun->va_list_gpr_size / UNITS_PER_WORD.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-manip.cc (determine_exit_conditions): Fix
+ 	no epilogue condition.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple.h (gimple_assign_load): Outline...
+ 	* gimple.cc (gimple_assign_load): ... here.  Avoid
+ 	get_base_address and instead just strip the outermost
+ 	handled component, treating a remaining handled component
+ 	as load.
+ 
+ 2023-04-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd-builtins.def (neg): Delete builtins
+ 	definition.
+ 	* config/aarch64/arm_fp16.h (vnegh_f16): Reimplement using normal negation.
+ 
+ 2023-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109011
+ 	* tree-vect-patterns.cc (vect_recog_popcount_pattern): Rename to ...
+ 	(vect_recog_popcount_clz_ctz_ffs_pattern): ... this.  Handle also
+ 	CLZ, CTZ and FFS.  Remove vargs variable, use
+ 	gimple_build_call_internal rather than gimple_build_call_internal_vec.
+ 	(vect_vect_recog_func_ptrs): Adjust popcount entry.
+ 
+ 2023-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109040
+ 	* dse.cc (replace_read): If read_reg is a SUBREG of a word mode
+ 	REG, for WORD_REGISTER_OPERATIONS copy SUBREG_REG of it into
+ 	a new REG rather than the SUBREG.
+ 
+ 2023-04-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
+ 	New pattern.
+ 
+ 2023-04-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	PR target/108840
+ 	* config/aarch64/aarch64.cc (aarch64_rtx_costs): Merge ASHIFT and
+ 	ROTATE, ROTATERT, LSHIFTRT, ASHIFTRT cases.  Handle subregs in op1.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/109237
+ 	* cse.cc (insn_live_p): Remove NEXT_INSN walk, instead check
+ 	TREE_VISITED on INSN_VAR_LOCATION_DECL.
+ 	(delete_trivially_dead_insns): Maintain TREE_VISITED on
+ 	active debug bind INSN_VAR_LOCATION_DECL.
+ 
+ 2023-04-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/109237
+ 	* cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
+ 
+ 2023-04-19  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* doc/install.texi (enable-decimal-float): Add AArch64.
+ 
+ 2023-04-19  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR rtl-optimization/109351
+ 	* ira.cc (setup_class_subset_and_memory_move_costs): Check
+ 	hard_regno_mode_ok before setting lowest memory move cost for
+ 	the mode with different reg classes.
+ 
+ 2023-04-18  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Remove stray @gol.
+ 
+ 2023-04-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* ifcvt.cc (cond_move_process_if_block): Consider the result of
+ 	targetm.noce_conversion_profitable_p() when replacing the original
+ 	sequence with the converted one.
+ 
+ 2023-04-18  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* common.opt (gcodeview): Add new option.
+ 	* gcc.cc (driver_handle_option); Handle OPT_gcodeview.
+ 	* opts.cc (command_handle_option): Similarly.
+ 	* doc/invoke.texi: Add documentation for -gcodeview.
+ 
+ 2023-04-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove declaration.
+ 	(make_pass_phiopt): Make execute out of line.
+ 	(tree_ssa_cs_elim): Move code into ...
+ 	(pass_cselim::execute): here.
+ 
+ 2023-04-18  Sam James  <sam@gentoo.org>
+ 
+ 	* system.h: Drop unused INCLUDE_PTHREAD_H.
+ 
+ 2023-04-18  Kevin Lee  <kevinl@rivosinc.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_grouped_store_supported): Add new
+ 	condition.
+ 
+ 2023-04-18  Sinan Lin  <sinan.lin@linux.alibaba.com>
+ 
+ 	* config/riscv/bitmanip.md (rotr<mode>3 expander): Enable for ZBKB.
+ 	(bswapdi2, bswapsi2): Similarly.
+ 
+ 2023-04-18  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/94908
+ 	* config/i386/i386-builtin.def (__builtin_ia32_insertps128):
+ 	Use CODE_FOR_sse4_1_insertps_v4sf.
+ 	* config/i386/i386-expand.cc (expand_vec_perm_insertps): New.
+ 	(expand_vec_perm_1): Call expand_vec_per_insertps.
+ 	* config/i386/i386.md ("unspec"): Declare UNSPEC_INSERTPS here.
+ 	* config/i386/mmx.md (mmxscalarmode): New mode attribute.
+ 	(@sse4_1_insertps_<mode>): New insn pattern.
+ 	* config/i386/sse.md (@sse4_1_insertps_<mode>): Macroize insn
+ 	pattern from sse4_1_insertps using VI4F_128 mode iterator.
+ 
+ 2023-04-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (gt_ggc_mx): New.
+ 	(gt_pch_nx): New.
+ 	* value-range.h (class vrange): Add GTY marker.
+ 	(class frange): Same.
+ 	(gt_ggc_mx): Remove.
+ 	(gt_pch_nx): Remove.
+ 
+ 2023-04-18  Victor L. Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* lra-constraints.cc (constraint_unique): New.
+ 	(process_address_1): Apply constraint_unique test.
+ 	* recog.cc (constrain_operands): Allow relaxed memory
+ 	constaints.
+ 
+ 2023-04-18  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* doc/extend.texi (Target Builtins): Add RISC-V Vector
+ 	Intrinsics.
+ 	(RISC-V Vector Intrinsics): Document GCC implemented which
+ 	version of RISC-V vector intrinsics and its reference.
+ 
+ 2023-04-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/108786
+ 	* bitmap.h (bitmap_clear_first_set_bit): New.
+ 	* bitmap.cc (bitmap_first_set_bit_worker): Rename from
+ 	bitmap_first_set_bit and add optional clearing of the bit.
+ 	(bitmap_first_set_bit): Wrap bitmap_first_set_bit_worker.
+ 	(bitmap_clear_first_set_bit): Likewise.
+ 	* df-core.cc (df_worklist_dataflow_doublequeue): Use
+ 	bitmap_clear_first_set_bit.
+ 	* graphite-scop-detection.cc (scop_detection::merge_sese):
+ 	Likewise.
+ 	* sanopt.cc (sanitize_asan_mark_unpoison): Likewise.
+ 	(sanitize_asan_mark_poison): Likewise.
+ 	* tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise.
+ 	* tree-into-ssa.cc (rewrite_blocks): Likewise.
+ 	* tree-ssa-dce.cc (simple_dce_from_worklist): Likewise.
+ 	* tree-ssa-sccvn.cc (do_rpo_vn_1): Likewise.
+ 
+ 2023-04-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (dump_sa_stats): Split out from...
+ 	(dump_sa_points_to_info): ... this function.
+ 	(compute_points_to_sets): Guard large dumps with TDF_DETAILS,
+ 	and call dump_sa_stats guarded with TDF_STATS.
+ 	(ipa_pta_execute): Likewise.
+ 	(compute_may_aliases): Guard dump_alias_info with
+ 	TDF_DETAILS|TDF_ALIAS.
+ 
+ 2023-04-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (gimple_simplify_phiopt): Dump
+ 	the expression that is being tried when TDF_FOLDING
+ 	is true.
+ 	(phiopt_worker::match_simplify_replacement): Dump
+ 	the sequence which was created by gimple_simplify_phiopt
+ 	when TDF_FOLDING is true.
+ 
+ 2023-04-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement):
+ 	Simplify code that does the movement slightly.
+ 
+ 2023-04-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
+ 	define_expand.
+ 	(rev16<mode>2): Rename to...
+ 	(aarch64_rev16<mode>2_alt1): ... This.
+ 	(rev16<mode>2_alt): Rename to...
+ 	(*aarch64_rev16<mode>2_alt2): ... This.
+ 
+ 2023-04-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* emit-rtl.cc (init_emit_once): Initialize dconstm0.
+ 	* gimple-range-op.cc (class cfn_signbit): Remove dconstm0
+ 	declaration.
+ 	* range-op-float.cc (zero_range): Use dconstm0.
+ 	(zero_to_inf_range): Same.
+ 	* real.h (dconstm0): New.
+ 	* value-range.cc (frange::flush_denormals_to_zero): Use dconstm0.
+ 	(frange::set_zero): Do not declare dconstm0.
+ 
+ 2023-04-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* system.h (class auto_mpz): New,
+ 	* realmpfr.h (class auto_mpfr): Likewise.
+ 	* fold-const-call.cc (do_mpfr_arg1): Use auto_mpfr.
+ 	(do_mpfr_arg2): Likewise.
+ 	* tree-ssa-loop-niter.cc (bound_difference): Use auto_mpz;
+ 
+ 2023-04-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_simd_intrinsics): Take
+ 	builtin flags from intrinsic data rather than hardcoded FLAG_AUTO_FP.
+ 
+ 2023-04-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.cc (frange::operator==): Adjust for NAN.
+ 	(range_tests_nan): Remove some NAN tests.
+ 
+ 2023-04-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* inchash.cc (hash::add_real_value): New.
+ 	* inchash.h (class hash): Add add_real_value.
+ 	* value-range.cc (add_vrange): New.
+ 	* value-range.h (inchash::add_vrange): New.
+ 
+ 2023-04-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109539
+ 	* gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
+ 	Re-implement pointer relatedness for PHIs.
+ 
+ 2023-04-18  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (SV_SFDF): New iterator.
+ 	(SV_FP): New iterator.
+ 	(scalar_mode, SCALAR_MODE): Add identity mappings for scalar modes.
+ 	(recip<mode>2): Unify the two patterns using SV_FP.
+ 	(div_scale<mode><exec_vcc>): New insn.
+ 	(div_fmas<mode><exec>): New insn.
+ 	(div_fixup<mode><exec>): New insn.
+ 	(div<mode>3): Unify the two expanders and rewrite using hardfp.
+ 	* config/gcn/gcn.cc (gcn_md_reorg): Support "vccwait" attribute.
+ 	* config/gcn/gcn.md (unspec): Add UNSPEC_DIV_SCALE, UNSPEC_DIV_FMAS,
+ 	and UNSPEC_DIV_FIXUP.
+ 	(vccwait): New attribute.
+ 
+ 2023-04-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_validate_mcpu): Add hint to use -march
+ 	if the argument matches that.
+ 
+ 2023-04-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/atomics.md
+ 	(*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
+ 	Use SD_HSDI for destination mode iterator.
+ 
+ 2023-04-18  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (multi_letter_subset_rank): Swap the order
+ 	of z-extensions and s-extensions.
+ 	(riscv_subset_list::parse): Likewise.
+ 
+ 2023-04-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109240
+ 	* match.pd (fneg/fadd): Rewrite such that it handles both plus as
+ 	first vec_perm operand and minus as second using fneg/fadd and
+ 	minus as first vec_perm operand and plus as second using fneg/fsub.
+ 
+ 2023-04-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* data-streamer.cc (bp_pack_real_value): New.
+ 	(bp_unpack_real_value): New.
+ 	* data-streamer.h (bp_pack_real_value):  New.
+ 	(bp_unpack_real_value): New.
+ 	* tree-streamer-in.cc (unpack_ts_real_cst_value_fields): Use
+ 	bp_unpack_real_value.
+ 	* tree-streamer-out.cc (pack_ts_real_cst_value_fields): Use
+ 	bp_pack_real_value.
+ 
+ 2023-04-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* wide-int.h (WIDE_INT_MAX_HWIS): New.
+ 	(class fixed_wide_int_storage): Use it.
+ 	(trailing_wide_ints <N>::set_precision): Use it.
+ 	(trailing_wide_ints <N>::extra_size): Use it.
+ 
+ 2023-04-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_addu16i_imm12_operand_p): New function prototype.
+ 	(loongarch_split_plus_constant): Likewise.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_addu16i_imm12_operand_p): New function.
+ 	(loongarch_split_plus_constant): Likewise.
+ 	* config/loongarch/loongarch.h (ADDU16I_OPERAND): New macro.
+ 	(DUAL_IMM12_OPERAND): Likewise.
+ 	(DUAL_ADDU16I_OPERAND): Likewise.
+ 	* config/loongarch/constraints.md (La, Lb, Lc, Ld, Le): New
+ 	constraint.
+ 	* config/loongarch/predicates.md (const_dual_imm12_operand): New
+ 	predicate.
+ 	(const_addu16i_operand): Likewise.
+ 	(const_addu16i_imm12_di_operand): Likewise.
+ 	(const_addu16i_imm12_si_operand): Likewise.
+ 	(plus_di_operand): Likewise.
+ 	(plus_si_operand): Likewise.
+ 	(plus_si_extend_operand): Likewise.
+ 	* config/loongarch/loongarch.md (add<mode>3): Convert to
+ 	define_insn_and_split.  Use plus_<mode>_operand predicate
+ 	instead of arith_operand.  Add alternatives for La, Lb, Lc, Ld,
+ 	and Le constraints.
+ 	(*addsi3_extended): Convert to define_insn_and_split.  Use
+ 	plus_si_extend_operand instead of arith_operand.  Add
+ 	alternatives for La and Le alternatives.
+ 
+ 2023-04-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (Value_Range::Value_Range): New.
+ 	(Value_Range::contains_p): New.
+ 
+ 2023-04-18  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* value-range.h (class vrange): Make m_discriminator const.
+ 	(class irange): Make m_max_ranges const.  Adjust constructors
+ 	accordingly.
+ 	(class unsupported_range): Construct vrange appropriately.
+ 	(class frange): Same.
+ 
+ 2023-04-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove the macro
+ 	definition.
+ 
+ 2023-04-18  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* doc/extend.texi: Add section for LoongArch Base Built-in functions.
+ 
+ 2023-04-18  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_first_stack_step): Make codes more
+ 	readable.
+ 	(riscv_expand_epilogue): Likewise.
+ 
+ 2023-04-17  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_prologue): Consider save-restore in
+ 	stack allocation.
+ 	(riscv_expand_epilogue): Consider save-restore in stack deallocation.
+ 
+ 2023-04-17  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* tree-ssa-phiopt.cc (gate_hoist_loads): Remove
+ 	prototype.
+ 
+ 2023-04-17  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gimple-ssa-warn-alloca.cc (pass_walloca::execute): Do not export
+ 	global ranges.
+ 
+ 2023-04-17  Fei Gao  <gaofei@eswincomputing.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_first_stack_step): Add a new function
+ 	parameter remaining_size.
+ 	(riscv_compute_frame_info): Adapt new riscv_first_stack_step interface.
+ 	(riscv_expand_prologue): Likewise.
+ 	(riscv_expand_epilogue): Likewise.
+ 
+ 2023-04-17  Feng Wang  <wangfeng@eswincomputing.com>
+ 
+ 	* config/riscv/bitmanip.md (rotrsi3_sext): Support generating
+ 	roriw for constant counts.
+ 	* rtl.h (reverse_rotate_by_imm_p): Add function declartion
+ 	* simplify-rtx.cc (reverse_rotate_by_imm_p): New function.
+ 	(simplify_context::simplify_binary_operation_1): Use it.
+ 	* expmed.cc (expand_shift_1): Likewise.
+ 
+ 2023-04-17  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/107769
+ 	PR ipa/109318
+ 	* cgraph.h (symtab_node::find_reference): Add parameter use_type.
+ 	* ipa-prop.h (ipa_pass_through_data): New flag refdesc_decremented.
+ 	(ipa_zap_jf_refdesc): New function.
+ 	(ipa_get_jf_pass_through_refdesc_decremented): Likewise.
+ 	(ipa_set_jf_pass_through_refdesc_decremented): Likewise.
+ 	* ipa-cp.cc (ipcp_discover_new_direct_edges): Provide a value for
+ 	the new parameter of find_reference.
+ 	(adjust_references_in_caller): Likewise. Make sure the constant jump
+ 	function is not used to decrement a refdec counter again.  Only
+ 	decrement refdesc counters when the pass_through jump function allows
+ 	it.  Added a detailed dump when decrementing refdesc counters.
+ 	* ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Dump new flag.
+ 	(ipa_set_jf_simple_pass_through): Initialize the new flag.
+ 	(ipa_set_jf_unary_pass_through): Likewise.
+ 	(ipa_set_jf_arith_pass_through): Likewise.
+ 	(remove_described_reference): Provide a value for the new parameter of
+ 	find_reference.
+ 	(update_jump_functions_after_inlining): Zap refdesc of new jfunc if
+ 	the previous pass_through had a flag mandating that we do so.
+ 	(propagate_controlled_uses): Likewise.  Only decrement refdesc
+ 	counters when the pass_through jump function allows it.
+ 	(ipa_edge_args_sum_t::duplicate): Provide a value for the new
+ 	parameter of find_reference.
+ 	(ipa_write_jump_function): Assert the new flag does not have to be
+ 	streamed.
+ 	* symtab.cc (symtab_node::find_reference): Add parameter use_type, use
+ 	it in searching.
+ 
+ 2023-04-17  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 	    Di Zhao  <di.zhao@amperecomputing.com>
+ 
+ 	* config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
+ 	Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
+ 	* config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
+ 	Check for the above tuning option when processing loads.
+ 
+ 2023-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109524
+ 	* tree-vrp.cc (remove_unreachable::m_list): Change to a
+ 	vector of pairs of block indices.
+ 	(remove_unreachable::maybe_register_block): Adjust.
+ 	(remove_unreachable::remove_and_update_globals): Likewise.
+ 	Deal with removed blocks.
+ 
+ 2023-04-16  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	PR target/109508
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): For
+ 	TARGET_SFB_ALU, force the true arm into a register.
+ 
+ 2023-04-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/104989
+ 	* config/pa/pa-protos.h (pa_function_arg_size): Update prototype.
+ 	* config/pa/pa.cc (pa_function_arg): Return NULL_RTX if argument
+ 	size is zero.
+ 	(pa_arg_partial_bytes): Don't call pa_function_arg_size twice.
+ 	(pa_function_arg_size): Change return type to int.  Return zero
+ 	for arguments larger than 1 GB.  Update comments.
+ 
+ 2023-04-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109154
+ 	* tree-if-conv.cc (predicate_scalar_phi): For complex PHIs, emit just
+ 	args_len - 1 COND_EXPRs rather than args_len.  Formatting fix.
+ 
+ 2023-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/109514
+ 	* gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
+ 	Overhaul lhs_ref.ref analysis.
+ 
+ 2023-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109502
+ 	* tree-vect-stmts.cc (vectorizable_assignment): Fix
+ 	check for conversion between mask and non-mask types.
+ 
+ 2023-04-14  Jeff Law  <jlaw@ventanamicro.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/108947
+ 	PR target/109040
+ 	* combine.cc (simplify_and_const_int_1): Compute nonzero_bits in
+ 	word_mode rather than mode if WORD_REGISTER_OPERATIONS and mode is
+ 	smaller than word_mode.
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
+ 	<case AND>: Likewise.
+ 
+ 2023-04-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
+ 	of GEN_INT.
+ 
+ 2023-04-13  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108139
+ 	PR tree-optimization/109462
+ 	* gimple-range-cache.cc (ranger_cache::fill_block_cache): Remove
+ 	equivalency check for PHI nodes.
+ 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Ensure def
+ 	does not dominate single-arg equivalency edges.
+ 
+ 2023-04-13  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/108910
+ 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
+ 	not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
+ 
+ 2023-04-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109491
+ 	* tree-ssa-sccvn.cc (expressions_equal_p): Restore the
+ 	NULL operands test.
+ 
+ 2023-04-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109479
+ 	* config/riscv/riscv-vector-builtins-types.def (vint8mf8_t): Fix predicate.
+ 	(vint16mf4_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vbool64_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (register_builtin_type): Add comments.
+ 	(register_vector_type): Ditto.
+ 	(check_required_extensions): Fix condition.
+ 	* config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ZVE64): Remove it.
+ 	(RVV_REQUIRE_ELEN_64): New define.
+ 	(RVV_REQUIRE_MIN_VLEN_64): Ditto.
+ 	* config/riscv/riscv-vector-switch.def (TARGET_VECTOR_FP32): Remove it.
+ 	(TARGET_VECTOR_FP64): Ditto.
+ 	(ENTRY): Fix predicate.
+ 	* config/riscv/vector-iterators.md: Fix predicate.
+ 
+ 2023-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109410
+ 	* tree-ssa-reassoc.cc (build_and_add_sum): Split edge from entry
+ 	block if first statement of the function is a call to returns_twice
+ 	function.
+ 
+ 2023-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109458
+ 	* config/i386/i386.cc: Include rtl-error.h.
+ 	(ix86_print_operand): For z modifier warning, use warning_for_asm
+ 	if this_is_asm_operands.  For Z modifier errors, use %c and code
+ 	instead of hardcoded Z.
+ 
+ 2023-04-12  Costas Argyris  <costas.argyris@gmail.com>
+ 
+ 	* config/i386/x-mingw32-utf8: Remove extrataneous $@
+ 
+ 2023-04-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109462
+ 	* gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't
+ 	check for equivalences if NAME is a phi node.
+ 
+ 2023-04-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109473
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Convert scalar result to the computation type before performing
+ 	the reduction adjustment.
+ 
+ 2023-04-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109469
+ 	* tree-vect-slp.cc (vect_slp_function): Skip region starts with
+ 	a returns-twice call.
+ 
+ 2023-04-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109434
+ 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly
+ 	handle possibly throwing calls when processing the LHS
+ 	and may-defs are not OK.
+ 
+ 2023-04-11  Lin Sinan  <mynameisxiaou@gmail.com>
+ 
+ 	* config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
+ 	predicate to avoid splitting arith constants.
+ 
+ 2023-04-11  Yanzhang Wang  <yanzhang.wang@intel.com>
+ 	    Pan Li  <pan2.li@intel.com>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/109104
+ 	* config/riscv/riscv-protos.h (emit_hard_vlmax_vsetvl): New.
+ 	* config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): New.
+ 	(emit_vlmax_vsetvl): Use emit_hard_vlmax_vsetvl.
+ 	* config/riscv/riscv.cc (vector_zero_call_used_regs): New.
+ 	(riscv_zero_call_used_regs): New.
+ 	(TARGET_ZERO_CALL_USED_REGS): New.
+ 
+ 2023-04-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR driver/108241
+ 	* opts.cc (finish_options): Drop also
+ 	x_flag_var_tracking_assignments.
+ 
+ 2023-04-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR tree-optimization/108888
+ 	* tree-if-conv.cc (predicate_statements): Fix gimple call check.
+ 
+ 2023-04-11  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/108812
+ 	* config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
+ 	(vsx_sign_extend_v16qi_<mode>): ... this.
+ 	(vsx_sign_extend_hi_<mode>): Rename to...
+ 	(vsx_sign_extend_v8hi_<mode>): ... this.
+ 	(vsx_sign_extend_si_v2di): Rename to...
+ 	(vsx_sign_extend_v4si_v2di): ... this.
+ 	(vsignextend_qi_<mode>): Remove.
+ 	(vsignextend_hi_<mode>): Remove.
+ 	(vsignextend_si_v2di): Remove.
+ 	(vsignextend_v2di_v1ti): Remove.
+ 	(*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
+ 	gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
+ 	with gen_vsx_sign_extend_v16qi_v4si.
+ 	* config/rs6000/rs6000.md (split for DI constant generation):
+ 	Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
+ 	(split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
+ 	with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
+ 	with gen_vsx_sign_extend_v16qi_si.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_altivec_vsignextsb2d):
+ 	Set bif-pattern to vsx_sign_extend_v16qi_v2di.
+ 	(__builtin_altivec_vsignextsb2w): Set bif-pattern to
+ 	vsx_sign_extend_v16qi_v4si.
+ 	(__builtin_altivec_visgnextsh2d): Set bif-pattern to
+ 	vsx_sign_extend_v8hi_v2di.
+ 	(__builtin_altivec_vsignextsh2w): Set bif-pattern to
+ 	vsx_sign_extend_v8hi_v4si.
+ 	(__builtin_altivec_vsignextsw2d): Set bif-pattern to
+ 	vsx_sign_extend_si_v2di.
+ 	(__builtin_altivec_vsignext): Set bif-pattern to
+ 	vsx_sign_extend_v2di_v1ti.
+ 	* config/rs6000/rs6000-builtin.cc (lxvrse_expand_builtin): Replace
+ 	gen_vsx_sign_extend_qi_v2di with gen_vsx_sign_extend_v16qi_v2di,
+ 	gen_vsx_sign_extend_hi_v2di with gen_vsx_sign_extend_v8hi_v2di and
+ 	gen_vsx_sign_extend_si_v2di with gen_vsx_sign_extend_v4si_v2di.
+ 
+ 2023-04-10   Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR target/70243
+ 	* config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
+ 	(vsx_nfmsv4sf4): Do not generate vnmsubfp.
+ 
+ 2023-04-10  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
+ 
+ 2023-04-10  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features):
+ 	Detect AMX-COMPLEX.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AMX_COMPLEX_SET,
+ 	OPTION_MASK_ISA2_AMX_COMPLEX_UNSET): New.
+ 	(ix86_handle_option): Handle -mamx-complex.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_features):
+ 	Add FEATURE_AMX_COMPLEX.
+ 	* common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ 	amx-complex.
+ 	* config.gcc: Add amxcomplexintrin.h.
+ 	* config/i386/cpuid.h (bit_AMX_COMPLEX): New.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ 	__AMX_COMPLEX__.
+ 	* config/i386/i386-isa.def (AMX_COMPLEX): Add DEF_PTA(AMX_COMPLEX).
+ 	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
+ 	Handle amx-complex.
+ 	* config/i386/i386.opt: Add option -mamx-complex.
+ 	* config/i386/immintrin.h: Include amxcomplexintrin.h.
+ 	* doc/extend.texi: Document amx-complex.
+ 	* doc/invoke.texi: Document -mamx-complex.
+ 	* doc/sourcebuild.texi: Document target amx-complex.
+ 	* config/i386/amxcomplexintrin.h: New file.
+ 
+ 2023-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109392
+ 	* tree-vect-generic.cc (tree_vec_extract): Handle failure
+ 	of maybe_push_res_to_seq better.
+ 
+ 2023-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
+ 	poly-int-types.h.
+ 	(SYSTEM_H): Depend on $(HASHTAB_H).
+ 	* config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused
+ 	dependency on $(RTL_BASE_H), remove redundant dependency on
+ 	insn-modes.h.
+ 
+ 2023-04-06  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/107674
+ 	* config/arm/arm.cc (arm_effective_regno): New function.
+ 	(mve_vector_mem_operand): Use it.
+ 
+ 2023-04-06  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109417
+ 	* gimple-range-gori.cc (gori_compute::may_recompute_p): Check if
+ 	dependency is in SSA_NAME_FREE_LIST.
+ 
+ 2023-04-06  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/109427
+ 	* params.opt (-param=vect-induction-float=):
+ 	Fix option attribute typo for IntegerRange.
+ 
+ 2023-04-05  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	PR target/108892
+ 	* combine.cc (combine_instructions): Force re-recognition when
+ 	after restoring the body of an insn to its original form.
+ 
+ 2023-04-05  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/108959
+ 	* ipa-sra.cc (zap_useless_ipcp_results): New function.
+ 	(process_isra_node_results): Call it.
+ 
+ 2023-04-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix incorrect operand order.
+ 
+ 2023-04-05  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
+ 	demand fusion.
+ 
+ 2023-04-05  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.def: Fix typo.
+ 	* config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 
+ 2023-04-04  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* doc/md.texi (Including Patterns): Fix page break.
+ 
+ 2023-04-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109386
+ 	* range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
+ 	foperator_le::op1_range, foperator_le::op2_range,
+ 	foperator_gt::op1_range, foperator_gt::op2_range,
+ 	foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
+ 	BRS_FALSE case even if the other op is maybe_isnan, not just
+ 	known_isnan.
+ 	(foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
+ 	foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
+ 	foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
+ 	foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
+ 	Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
+ 	not just known_isnan.
+ 
+ 2023-04-04  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR sanitizer/109107
+ 	* fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
+ 	when associating.
+ 	* match.pd: Use TYPE_OVERFLOW_SANITIZED.
+ 
+ 2023-04-04  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	* config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
+ 	(mve_vcreateq_f<mode>): Swap operands.
+ 
+ 2023-04-04  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
+ 
+ 2023-04-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109384
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
+ 	Reword diagnostics about zfinx conflict with f, formatting fixes.
+ 
+ 2023-04-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/sol2.h (LIB_SPEC): Don't link with -lpthread.
+ 
+ 2023-04-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109304
+ 	* tree-profile.cc (tree_profiling): Use symtab node
+ 	availability to decide whether to skip adjusting calls.
+ 	Do not adjust calls to internal functions.
+ 
+ 2023-04-04  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108807
+ 	* config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
+ 	function for permutation control vector by considering big endianness.
+ 
+ 2023-04-04  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108699
+ 	* config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
+ 	(rs6000_vprtyb<mode>2): ... this.
+ 	* config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
+ 	rs6000_vprtybv2di2.
+ 	(VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
+ 	(VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
+ 	* config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
+ 	popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
+ 
+ 2023-04-04  Hans-Peter Nilsson  <hp@axis.com>
+ 	    Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/md.texi (Insn Splitting): Tweak wording for readability.
+ 
+ 2023-04-03  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/109303
+ 	* ipa-prop.cc (determine_known_aggregate_parts): Check that the
+ 	offset + size will be representable in unsigned int.
+ 
+ 2023-04-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* configure.ac (ZSTD_LIB): Move before zstd.h check.
+ 	Unset gcc_cv_header_zstd_h without libzstd.
+ 	* configure: Regenerate.
+ 
+ 2023-04-03  Martin Liska  <mliska@suse.cz>
+ 
+ 	* doc/invoke.texi: Document new param.
+ 
+ 2023-04-03  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* doc/sourcebuild.texi (const_volatile_readonly_section): Document
+ 	new check_effective_target function.
+ 
+ 2023-04-03  Li Xu  <xuli1@eswincomputing.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
+ 	(vfloat32m8_t): Likewise
+ 
+ 2023-04-03  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* doc/md.texi: Document signbitm2.
+ 
+ 2023-04-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/vector.md: Fix RA constraint.
+ 
+ 2023-04-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
+ 	* config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
+ 	* config/riscv/vector.md: Fix scalar move bug.
+ 
+ 2023-04-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_equal::fold_range): If at least
+ 	one of the op ranges is not singleton and neither is NaN and all
+ 	4 bounds are zero, return [1, 1].
+ 	(foperator_not_equal::fold_range): In the same case return [0, 0].
+ 
+ 2023-04-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* range-op-float.cc (foperator_equal::fold_range): Perform the
+ 	non-singleton handling regardless of maybe_isnan (op1, op2).
+ 	(foperator_not_equal::fold_range): Likewise.
+ 	(foperator_lt::fold_range, foperator_le::fold_range,
+ 	foperator_gt::fold_range, foperator_ge::fold_range): Perform the
+ 	real_* comparison check which results in range_false (type)
+ 	even if maybe_isnan (op1, op2).  Simplify.
+ 	(foperator_ltgt): New class.
+ 	(fop_ltgt): New variable.
+ 	(floating_op_table::floating_op_table): Handle LTGT_EXPR using
+ 	fop_ltgt.
+ 
+ 2023-04-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109254
+ 	* builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
+ 	returns VOIDmode, handle it like if the register isn't used for
+ 	passing arguments at all.
+ 	(apply_result_size): If targetm.calls.get_raw_result_mode returns
+ 	VOIDmode, handle it like if the register isn't used for returning
+ 	results at all.
+ 	* target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
+ 	means to return VOIDmode.
+ 	* doc/tm.texi: Regenerated.
+ 	* config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
+ 	TARGET_SVE for P0_REGNUM.
+ 	(aarch64_function_arg_regno_p): Also return true for p0-p3.
+ 	(aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
+ 
+ 2023-03-31  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc: (combine_reload_insn): New function.
+ 
+ 2023-03-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/91645
+ 	* range-op-float.cc (foperator_unordered_lt::fold_range,
+ 	foperator_unordered_le::fold_range,
+ 	foperator_unordered_gt::fold_range,
+ 	foperator_unordered_ge::fold_range,
+ 	foperator_unordered_equal::fold_range): Call the ordered
+ 	fold_range on ranges with cleared NaNs.
+ 	* value-query.cc (range_query::get_tree_range): Handle also
+ 	COMPARISON_CLASS_P trees.
+ 
+ 2023-03-31  Kito Cheng  <kito.cheng@sifive.com>
+ 	    Andrew Pinski  <pinskia@gmail.com>
+ 
+ 	PR target/109328
+ 	* config/riscv/t-riscv: Add missing dependencies.
+ 
+ 2023-03-31  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (inline_memory_move_cost): Return 100
+ 	for MASK_REGS when MODE_SIZE > 8.
+ 
+ 2023-03-31  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/85048
+ 	* config/i386/i386-builtin.def (BDESC): Adjust icode name from
+ 	ufloat/ufix to floatuns/fixuns.
+ 	* config/i386/i386-expand.cc
+ 	(ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
+ 	* config/i386/sse.md
+ 	(ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
+ 	Renamed	to ..
+ 	(<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
+ 	(<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
+ 	Renamed to ..
+ 	(<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
+ 	.. this.
+ 	(<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
+ 	Renamed to ..
+ 	(fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
+ 	(ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
+ 	(floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
+ 	(ufloatv2siv2df2<mask_name>): Renamed to ..
+ 	(<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
+ 	(ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
+ 	Renamed to ..
+ 	(fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
+ 	.. this.
+ 	(ufix_notruncv2dfv2si2): Renamed to ..
+ 	(fixuns_notruncv2dfv2si2):.. this.
+ 	(ufix_notruncv2dfv2si2_mask): Renamed to ..
+ 	(fixuns_notruncv2dfv2si2_mask): .. this.
+ 	(*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
+ 	(*fixuns_notruncv2dfv2si2_mask_1): .. this.
+ 	(ufix_truncv2dfv2si2): Renamed to ..
+ 	(*fixuns_truncv2dfv2si2): .. this.
+ 	(ufix_truncv2dfv2si2_mask): Renamed to ..
+ 	(fixuns_truncv2dfv2si2_mask): .. this.
+ 	(*ufix_truncv2dfv2si2_mask_1): Renamed to ..
+ 	(*fixuns_truncv2dfv2si2_mask_1): .. this.
+ 	(ufix_truncv4dfv4si2<mask_name>): Renamed to ..
+ 	(fixuns_truncv4dfv4si2<mask_name>): .. this.
+ 	(ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
+ 	Renamed to ..
+ 	(fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
+ 	.. this.
+ 	(ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
+ 	(<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
+ 	.. this.
+ 
+ 2023-03-30  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109154
+ 	* gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
+ 	* gimple-range-gori.h (may_recompute_p): Add depth param.
+ 	* params.opt (ranger-recompute-depth): New param.
+ 
+ 2023-03-30  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107897
+ 	PR c++/108887
+ 	* cgraph.h: Move reset() from cgraph_node to symtab_node.
+ 	* cgraphunit.cc (symtab_node::reset): Adjust.  Also call
+ 	remove_from_same_comdat_group.
+ 
+ 2023-03-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107561
+ 	* gimple-ssa-warn-access.cc (get_size_range): Add flags
+ 	argument and pass it on.
+ 	(check_access): When querying for the size range pass
+ 	SR_ALLOW_ZERO when the known destination size is zero.
+ 
+ 2023-03-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109342
+ 	* tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
+ 	overload for edge.  When that edge is a backedge use
+ 	dominated_by_p directly.
+ 
+ 2023-03-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
+ 	vpblendd instead of vpblendw for V4SI under avx2.
+ 
+ 2023-03-29  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
+ 	for many quick operands, for register-sized modes.
+ 
+ 2023-03-29  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
+ 	New check.
+ 
+ 2023-03-29  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR bootstrap/109310
+ 	* configure.ac: Emit a warning for deprecated option
+ 	--enable-link-mutex.
+ 	* configure: Regenerate.
+ 
+ 2023-03-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109331
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): When we
+ 	discover a taken edge make sure to cleanup the CFG.
+ 
+ 2023-03-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109327
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
+ 	already removed stmts when draining to_remove.
+ 
+ 2023-03-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/106124
+ 	* dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
+ 	so we can re-create the DIE for the type if required.
+ 
+ 2023-03-29  Jakub Jelinek  <jakub@redhat.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109301
+ 	* tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
+ 	properties_provided from PROP_gimple_opt_math to 0.
+ 	(pass_data_expand_powcabs): Change properties_provided from 0 to
+ 	PROP_gimple_opt_math.
+ 
+ 2023-03-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109154
+ 	* tree-if-conv.cc (gen_phi_arg_condition): Handle single
+ 	inverted condition specially by inverting at the caller.
+ 	(gen_phi_arg_condition): Swap COND_EXPR arms if requested.
+ 
+ 2023-03-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR c/107002
+ 	* diagnostic-show-locus.cc (column_range::column_range): Factor
+ 	out assertion conditional into...
+ 	(column_range::valid_p): ...this new function.
+ 	(line_corrections::add_hint): Don't attempt to consolidate hints
+ 	if it would lead to invalid column_range instances.
+ 
+ 2023-03-28  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/109312
+ 	* config/riscv/riscv-c.cc (riscv_ext_version_value): New.
+ 	(riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
+ 	minor refactor.
+ 
+ 2023-03-28  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	PR rtl-optimization/109187
+ 	* haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
+ 	subtraction in three-way comparison.
+ 
+ 2023-03-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109265
+ 	PR tree-optimization/109274
+ 	* gimple-range-gori.cc (gori_compute::compute_operand_range): Do
+ 	not create a relation record is op1 and op2 are the same symbol.
+ 	(gori_compute::compute_operand1_range): Pass op1 == op2 to the
+ 	handler for this stmt, but create a new record only if this statement
+ 	generates a relation based on the ranges.
+ 	(gori_compute::compute_operand2_range): Ditto.
+ 	* value-relation.h (value_relation::set_relation): Always create the
+ 	record that is requested.
+ 
+ 2023-03-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107087
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Track
+ 	executable regions to avoid useless work and to better
+ 	propagate degenerate PHIs.
+ 
+ 2023-03-28  Costas Argyris  <costas.argyris@gmail.com>
+ 
+ 	* config/i386/x-mingw32-utf8: update comments.
+ 
+ 2023-03-28  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/109072
+ 	* config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
+ 	* config/aarch64/aarch64.h (machine_function::vector_load_decls): New
+ 	variable.
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
+ 	New function.
+ 	(aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
+ 	after inlining.  Record which decls are loaded from.  Fix handling
+ 	of vops for loads and stores.
+ 	* config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
+ 	(aarch64_accesses_vector_load_decl_p): Likewise.
+ 	(aarch64_vector_costs::m_stores_to_vector_load_decl): New member
+ 	variable.
+ 	(aarch64_vector_costs::add_stmt_cost): If the function has a vld1
+ 	that loads from a decl, treat vector stores to those decls as
+ 	zero cost.
+ 	(aarch64_vector_costs::finish_cost): ...and in that case,
+ 	if the vector code does nothing more than a store, give the
+ 	prologue a zero cost as well.
+ 
+ 2023-03-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR bootstrap/84402
+ 	PR tree-optimization/108129
+ 	* genmatch.cc (lower_for): For (match ...) delay
+ 	substituting into the match operator if possible.
+ 	(dt_operand::gen_gimple_expr): For user_id look at the
+ 	first substitute for determining how to access operands.
+ 	(dt_operand::gen_generic_expr): Likewise.
+ 	(dt_node::gen_kids): Properly sort user_ids according
+ 	to their substitutes.
+ 	(dt_node::gen_kids_1): Code-generate user_id matching.
+ 
+ 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 	    Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
+ 	Use subcommand rather than sub-command in function comments.
+ 
+ 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109154
+ 	* value-range.h (frange::flush_denormals_to_zero): Make it public
+ 	rather than private.
+ 	* value-range.cc (frange::set): Don't call flush_denormals_to_zero
+ 	here.
+ 	* range-op-float.cc (range_operator_float::fold_range): Call
+ 	flush_denormals_to_zero.
+ 
+ 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/106190
+ 	* sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
+ 	of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
+ 
+ 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
+ 	as 4th argument to set to avoid clear_nan and union_ calls.
+ 
+ 2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109276
+ 	* config/i386/i386.cc (assign_386_stack_local): For DImode
+ 	with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
+ 	align 32 rather than 0 to assign_stack_local.
+ 
+ 2023-03-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/109140
+ 	* config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
+ 	on operand #3 to get the final condition code.  Use std::swap.
+ 	* config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
+ 	(fucmp<gcond:code>8<P:mode>_vis): Move around.
+ 	(fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
+ 	(vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
+ 
+ 2023-03-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gm2.texi: Add missing Next, Previous and Top fields to most
+ 	top-level sections.
+ 
+ 2023-03-28  Costas Argyris  <costas.argyris@gmail.com>
+ 
+ 	* config.host: Pull in i386/x-mingw32-utf8 Makefile
+ 	fragment and reference utf8rc-mingw32.o explicitly
+ 	for mingw hosts.
+ 	* config/i386/sym-mingw32.cc: prevent name mangling of
+ 	stub symbol.
+ 	* config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
+ 	depend on manifest file explicitly.
+ 
+ 2023-03-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2023-03-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/109237
+ 	* cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
+ 
+ 2023-03-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* common.opt (gdwarf): Remove Negative(gdwarf-).
+ 
+ 2023-03-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* common.opt (gdwarf): Add RejectNegative.
+ 	(gdwarf-): Likewise.
+ 	(ggdb): Likewise.
+ 	(gvms): Likewise.
+ 
+ 2023-03-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/constraints.md ("T"): Correct to
+ 	define_memory_constraint.
+ 
+ 2023-03-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md (BW2): New mode-iterator.
+ 	(lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
+ 	peephole2s.
+ 
+ 2023-03-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
+ 	for possible eliminable compares.
+ 
+ 2023-03-28  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/constraints.md ("R"): Remove unused constraint.
+ 
+ 2023-03-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR gcov-profile/109297
+ 	* gcov-tool.cc (merge_usage): Fix "subcomand" typo.
+ 	(merge_stream_usage): Likewise.
+ 	(overlap_usage): Likewise.
+ 
+ 2023-03-27  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/109296
+ 	* config/riscv/thead.md: Add missing mode specifiers.
+ 
+ 2023-03-27  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 	    Jiangning Liu  <jiangning.liu@amperecomputing.com>
+ 	    Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* config/aarch64/aarch64.cc: Update vector costs for ampere1.
+ 
+ 2023-03-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/109237
+ 	* cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
+ 
+ 2023-03-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR lto/109263
+ 	* lto-wrapper.cc (run_gcc): Parse alternate debug options
+ 	as well, they always enable debug.
+ 
+ 2023-03-27  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/109167
+ 	* config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
+ 	from ...
+ 	(_mm_slli_si128): ... here.  Change to call _mm_bslli_si128 directly.
+ 
+ 2023-03-27  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/109082
+ 	* config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
+ 	than zero when calling vec_sld.
+ 	(_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
+ 	zero when calling vec_sld.
+ 	(_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
+ 	than zero when calling vec_sld.
+ 
+ 2023-03-27  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
+ 	OMP_TASKLOOP, and OMP_LOOP with OMP_FOR.  Document how collapsed
+ 	loops are represented and which fields are vectors.  Add
+ 	documentation for OMP_FOR_PRE_BODY field.  Document internal
+ 	form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
+ 	* tree.def (OMP_FOR): Make documentation consistent with the
+ 	Texinfo manual, to fill some gaps and correct errors.
+ 
+ 2023-03-26  Andreas Schwab  <schwab@linux-m68k.org>
+ 
+ 	PR target/106282
+ 	* config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
+ 	* config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
+ 	(handle_move_double): Call it before handle_movsi.
+ 	* config/m68k/m68k-protos.h: Declare it.
+ 
+ 2023-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109230
+ 	* match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
+ 
+ 2023-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/105685
+ 	* predict.cc (compute_function_frequency): Don't call
+ 	warn_function_cold if function already has cold attribute.
+ 
+ 2023-03-26  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi: Remove anachronistic note
+ 	related to languages built and separate source tarballs.
+ 
+ 2023-03-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/109098
+ 	* diagnostic-format-sarif.cc (read_until_eof): Delete.
+ 	(maybe_read_file): Delete.
+ 	(sarif_builder::maybe_make_artifact_content_object): Use
+ 	get_source_file_content rather than maybe_read_file.
+ 	Reject it if it's not valid UTF-8.
+ 	* input.cc (file_cache_slot::get_full_file_content): New.
+ 	(get_source_file_content): New.
+ 	(selftest::check_cpp_valid_utf8_p): New.
+ 	(selftest::test_cpp_valid_utf8_p): New.
+ 	(selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
+ 	* input.h (get_source_file_content): New prototype.
+ 
+ 2023-03-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
+ 	debugging options.
+ 	(Special Functions for Debugging the Analyzer): Convert to a
+ 	table, and rewrite in places.
+ 	(Other Debugging Techniques): Add notes on how to compare two
+ 	different exploded graphs.
+ 
+ 2023-03-24  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/109163
+ 	* json.cc: Update comments to indicate that we now preserve
+ 	insertion order of keys within objects.
+ 	(object::print): Traverse keys in insertion order.
+ 	(object::set): Preserve insertion order of keys.
+ 	(selftest::test_writing_objects): Add an additional key to verify
+ 	that we preserve insertion order.
+ 	* json.h (object::m_keys): New field.
+ 
+ 2023-03-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109238
+ 	* gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
+ 	predecessors which this block dominates.
+ 
+ 2023-03-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106912
+ 	* tree-profile.cc (tree_profiling): Update stmts only when
+ 	profiling or testing coverage.  Make sure to update calls
+ 	fntype, stripping 'const' there.
+ 
+ 2023-03-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/109258
+ 	* builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
+ 	if target == const0_rtx.
+ 
+ 2023-03-24  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/sourcebuild.texi (weak_undefined, posix_memalign):
+ 	Document options and effective targets.
+ 
+ 2023-03-24  Costas Argyris  <costas.argyris@gmail.com>
+ 
+ 	* config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
+ 	optional.
+ 
+ 2023-03-23  Pat Haugen  <pthaugen@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
+ 	non-earlyclobber alternative.
+ 
+ 2023-03-23  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR c/84900
+ 	* fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
+ 	as a lvalue.
+ 
+ 2023-03-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107569
+ 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
+ 	Do not push SSA names with zero uses as available leader.
+ 	(process_bb): Likewise.
+ 
+ 2023-03-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109262
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): When
+ 	combining a piecewise complex load avoid touching loads
+ 	that throw internally.  Use fun, not cfun throughout.
+ 
+ 2023-03-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* value-range.cc (irange::irange_union, irange::intersect): Fix
+ 	comment spelling bugs.
+ 	* gimple-range-trace.cc (range_tracer::do_header): Likewise.
+ 	* gimple-range-trace.h: Likewise.
+ 	* gimple-range-edge.cc: Likewise.
+ 	(gimple_outgoing_range_stmt_p,
+ 	gimple_outgoing_range::switch_edge_range,
+ 	gimple_outgoing_range::edge_range_p): Likewise.
+ 	* gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
+ 	gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
+ 	assume_query::assume_query, assume_query::calculate_phi): Likewise.
+ 	* gimple-range-edge.h: Likewise.
+ 	* value-range.h (Value_Range::set, Value_Range::lower_bound,
+ 	Value_Range::upper_bound, frange::set_undefined): Likewise.
+ 	* gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
+ 	gori_compute): Likewise.
+ 	* gimple-range-fold.h (fold_using_range): Likewise.
+ 	* gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
+ 	Likewise.
+ 	* gimple-range-gori.cc (range_def_chain::in_chain_p,
+ 	range_def_chain::dump, gori_map::calculate_gori,
+ 	gori_compute::compute_operand_range_switch,
+ 	gori_compute::logical_combine, gori_compute::refine_using_relation,
+ 	gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
+ 	Likewise.
+ 	* gimple-range.h: Likewise.
+ 	(enable_ranger): Likewise.
+ 	* range-op.h (empty_range_varying): Likewise.
+ 	* value-query.h (value_query): Likewise.
+ 	* gimple-range-cache.cc (block_range_cache::set_bb_range,
+ 	block_range_cache::dump, ssa_global_cache::clear_global_range,
+ 	temporal_cache::temporal_value, temporal_cache::current_p,
+ 	ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
+ 	ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
+ 	Likewise.
+ 	* gimple-range-fold.cc (fur_edge::get_phi_operand,
+ 	fur_stmt::get_operand, gimple_range_adjustment,
+ 	fold_using_range::range_of_phi,
+ 	fold_using_range::relation_fold_and_or): Likewise.
+ 	* value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
+ 	* value-query.cc (range_query::value_of_expr,
+ 	range_query::value_on_edge, range_query::query_relation): Likewise.
+ 	* tree-vrp.cc (remove_unreachable::remove_and_update_globals,
+ 	intersect_range_with_nonzero_bits): Likewise.
+ 	* gimple-range-infer.cc (gimple_infer_range::check_assume_func,
+ 	exit_range): Likewise.
+ 	* value-relation.h: Likewise.
+ 	(equiv_oracle, relation_trio::relation_trio, value_relation,
+ 	value_relation::value_relation, pe_min): Likewise.
+ 	* range-op-float.cc (range_operator_float::rv_fold,
+ 	frange_arithmetic, foperator_unordered_equal::op1_range,
+ 	foperator_div::rv_fold): Likewise.
+ 	* gimple-range-op.cc (cfn_clz::fold_range): Likewise.
+ 	* value-relation.cc (equiv_oracle::query_relation,
+ 	equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
+ 	value_relation::apply_transitive, relation_chain_head::find_relation,
+ 	dom_oracle::query_relation, dom_oracle::find_relation_block,
+ 	dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
+ 	* range-op.cc (range_operator::wi_fold_in_parts_equiv,
+ 	create_possibly_reversed_range, adjust_op1_for_overflow,
+ 	operator_mult::wi_fold, operator_exact_divide::op1_range,
+ 	operator_cast::lhs_op1_relation, operator_cast::fold_pair,
+ 	operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
+ 	range_op_lshift_tests): Likewise.
+ 
+ 2023-03-23  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
+ 	(move_callee_saved_registers): Detect the bug condition early.
+ 
+ 2023-03-23  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
+ 	* config/gcn/gcn-valu.md (V_1REG_ALT): New.
+ 	(V_2REG_ALT): New.
+ 	(vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
+ 	(vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
+ 	(vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
+ 	* config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
+ 	* config/gcn/predicates.md (ascending_zero_int_parallel): New.
+ 
+ 2023-03-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109176
+ 	* tree-vect-generic.cc (expand_vector_condition): If a has
+ 	vector boolean type and is a comparison, also check if both
+ 	the comparison and VEC_COND_EXPR could be successfully expanded
+ 	individually.
+ 
+ 2023-03-23  Pan Li  <pan2.li@intel.com>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/108654
+ 	PR target/108185
+ 	* config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
+ 	for vector mask modes.
+ 	* config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
+ 	* config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
+ 
+ 2023-03-23  Songhe Zhu  <zhusonghe@eswincomputing.com>
+ 
+ 	* config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
+ 
+ 2023-03-23  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109244
+ 	* config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
+ 	(emit_vlmax_op): Ditto.
+ 	* config/riscv/riscv-v.cc (get_sew): New function.
+ 	(emit_vlmax_vsetvl): Adapt function.
+ 	(emit_pred_op): Ditto.
+ 	(emit_vlmax_op): Ditto.
+ 	(emit_nonvlmax_op): Ditto.
+ 	(legitimize_move): Fix LRA ICE.
+ 	(gen_no_side_effects_vsetvl_rtx): Adapt function.
+ 	* config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
+ 	(@mov<VB:mode><P:mode>_lra): Ditto.
+ 	(*mov<V_FRACT:mode><P:mode>_lra): Ditto.
+ 	(*mov<VB:mode><P:mode>_lra): Ditto.
+ 
+ 2023-03-23  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109228
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
+ 	__riscv_vlenb support.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc: Ditto.
+ 
+ 2023-03-23  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
+ 	(pass_vsetvl::compute_local_backward_infos): Fix bugs.
+ 	(pass_vsetvl::need_vsetvl): Fix bugs.
+ 	(pass_vsetvl::backward_demand_fusion): Fix bugs.
+ 	(pass_vsetvl::demand_fusion): Fix bugs.
+ 	(eliminate_insn): Fix bugs.
+ 	(insert_vsetvl): Ditto.
+ 	(pass_vsetvl::emit_local_forward_vsetvls): Ditto.
+ 	* config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-03-23  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
+ 	* config/riscv/vector-iterators.md (nmsac): Ditto.
+ 	(nmsub): Ditto.
+ 	(msac): Ditto.
+ 	(msub): Ditto.
+ 	(nmadd): Ditto.
+ 	(nmacc): Ditto.
+ 	* config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
+ 	(@pred_mul_plus<mode>): Ditto.
+ 	(*pred_madd<mode>): Ditto.
+ 	(*pred_macc<mode>): Ditto.
+ 	(*pred_mul_plus<mode>): Ditto.
+ 	(@pred_mul_plus<mode>_scalar): Ditto.
+ 	(*pred_madd<mode>_scalar): Ditto.
+ 	(*pred_macc<mode>_scalar): Ditto.
+ 	(*pred_mul_plus<mode>_scalar): Ditto.
+ 	(*pred_madd<mode>_extended_scalar): Ditto.
+ 	(*pred_macc<mode>_extended_scalar): Ditto.
+ 	(*pred_mul_plus<mode>_extended_scalar): Ditto.
+ 	(@pred_minus_mul<mode>): Ditto.
+ 	(*pred_<madd_nmsub><mode>): Ditto.
+ 	(*pred_nmsub<mode>): Ditto.
+ 	(*pred_<macc_nmsac><mode>): Ditto.
+ 	(*pred_nmsac<mode>): Ditto.
+ 	(*pred_mul_<optab><mode>): Ditto.
+ 	(*pred_minus_mul<mode>): Ditto.
+ 	(@pred_mul_<optab><mode>_scalar): Ditto.
+ 	(@pred_minus_mul<mode>_scalar): Ditto.
+ 	(*pred_<madd_nmsub><mode>_scalar): Ditto.
+ 	(*pred_nmsub<mode>_scalar): Ditto.
+ 	(*pred_<macc_nmsac><mode>_scalar): Ditto.
+ 	(*pred_nmsac<mode>_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_scalar): Ditto.
+ 	(*pred_minus_mul<mode>_scalar): Ditto.
+ 	(*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
+ 	(*pred_nmsub<mode>_extended_scalar): Ditto.
+ 	(*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
+ 	(*pred_nmsac<mode>_extended_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_extended_scalar): Ditto.
+ 	(*pred_minus_mul<mode>_extended_scalar): Ditto.
+ 	(*pred_<madd_msub><mode>): Ditto.
+ 	(*pred_<macc_msac><mode>): Ditto.
+ 	(*pred_<madd_msub><mode>_scalar): Ditto.
+ 	(*pred_<macc_msac><mode>_scalar): Ditto.
+ 	(@pred_neg_mul_<optab><mode>): Ditto.
+ 	(@pred_mul_neg_<optab><mode>): Ditto.
+ 	(*pred_<nmadd_msub><mode>): Ditto.
+ 	(*pred_<nmsub_nmadd><mode>): Ditto.
+ 	(*pred_<nmacc_msac><mode>): Ditto.
+ 	(*pred_<nmsac_nmacc><mode>): Ditto.
+ 	(*pred_neg_mul_<optab><mode>): Ditto.
+ 	(*pred_mul_neg_<optab><mode>): Ditto.
+ 	(@pred_neg_mul_<optab><mode>_scalar): Ditto.
+ 	(@pred_mul_neg_<optab><mode>_scalar): Ditto.
+ 	(*pred_<nmadd_msub><mode>_scalar): Ditto.
+ 	(*pred_<nmsub_nmadd><mode>_scalar): Ditto.
+ 	(*pred_<nmacc_msac><mode>_scalar): Ditto.
+ 	(*pred_<nmsac_nmacc><mode>_scalar): Ditto.
+ 	(*pred_neg_mul_<optab><mode>_scalar): Ditto.
+ 	(*pred_mul_neg_<optab><mode>_scalar): Ditto.
+ 	(@pred_widen_neg_mul_<optab><mode>): Ditto.
+ 	(@pred_widen_mul_neg_<optab><mode>): Ditto.
+ 	(@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
+ 	(@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
+ 
+ 2023-03-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* builtins.cc (builtin_memset_read_str): Replace
+ 	targetm.gen_memset_scratch_rtx with gen_reg_rtx.
+ 	(builtin_memset_gen_str): Ditto.
+ 	* config/i386/i386-expand.cc
+ 	(ix86_convert_const_wide_int_to_broadcast): Replace
+ 	ix86_gen_scratch_sse_rtx with gen_reg_rtx.
+ 	(ix86_expand_vector_move): Ditto.
+ 	* config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
+ 	Removed.
+ 	* config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
+ 	(TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
+ 	* doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
+ 	* doc/tm.texi.in: Ditto.
+ 	* target.def: Ditto.
+ 
+ 2023-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra.cc (lra): Do not repeat inheritance and live range splitting
+ 	when asm error is found.
+ 
+ 2023-03-22  Andrew Jenner  <andrew@codesourcery.com>
+ 
+ 	* config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
+ 	(gcn_expand_dpp_distribute_even_insn)
+ 	(gcn_expand_dpp_distribute_odd_insn): Declare.
+ 	* config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
+ 	(@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
+ 	(cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
+ 	(cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
+ 	(fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
+ 	(fms<mode>4_negop2): New patterns.
+ 	* config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
+ 	(gcn_expand_dpp_distribute_even_insn)
+ 	(gcn_expand_dpp_distribute_odd_insn): New functions.
+ 	* config/gcn/gcn.md: Add entries to unspec enum.
+ 
+ 2023-03-22  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/109008
+ 	* value-range.cc (frange::set): Add nan_state argument.
+ 	* value-range.h (class nan_state): New.
+ 	(frange::get_nan_state): New.
+ 
+ 2023-03-22  Martin Liska  <mliska@suse.cz>
+ 
+ 	* configure: Regenerate.
+ 
+ 2023-03-21  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	* stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
+ 	to variants.
+ 
+ 2023-03-21  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/109192
+ 	* gimple-range-gori.cc (gori_compute::compute_operand_range):
+ 	Terminate gori calculations if a relation is not relevant.
+ 	* value-relation.h (value_relation::set_relation): Allow
+ 	equality between op1 and op2 if they are the same.
+ 
+ 2023-03-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109219
+ 	* tree-vect-loop.cc (vectorizable_reduction): Check
+ 	slp_node, not STMT_SLP_TYPE.
+ 	* tree-vect-stmts.cc (vectorizable_condition): Likewise.
+ 	* tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
+ 	Remove assertion on STMT_SLP_TYPE.
+ 
+ 2023-03-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109215
+ 	* tree.h (enum special_array_member): Adjust comments for int_0
+ 	and trail_0.
+ 	* tree.cc (component_ref_sam_type): Clear zero_elts if memtype
+ 	has zero sized element type and the array has variable number of
+ 	elements or constant one or more elements.
+ 	(component_ref_size): Adjust comments, formatting fix.
+ 
+ 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* configure.ac: Add check for the Texinfo 6.8
+ 	CONTENTS_OUTPUT_LOCATION customization variable and set it if
+ 	supported.
+ 	* configure: Regenerate.
+ 	* Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable.  Set by
+ 	configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
+ 	CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
+ 	($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
+ 
+ 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/extend.texi: Associate use_hazard_barrier_return index
+ 	entry with its attribute.
+ 	* doc/invoke.texi: Associate -fcanon-prefix-map index entry with
+ 	its attribute
+ 
+ 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/implement-c.texi: Remove usage of @gol.
+ 	* doc/invoke.texi: Ditto.
+ 	* doc/sourcebuild.texi: Ditto.
+ 	* doc/include/gcc-common.texi: Remove @gol.  In new Makeinfo and
+ 	texinfo.tex versions, the bug it was working around appears to
+ 	be gone.
+ 
+ 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/include/texinfo.tex: Update to 2023-01-17.19.
+ 
+ 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/include/gcc-common.texi: Add @defbuiltin{,x} and
+ 	@enddefbuiltin for defining built-in functions.
+ 	* doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
+ 	places where it should be used.
+ 
+ 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/extend.texi (Formatted Output Function Checking): New
+ 	subsection for  grouping together printf et al.
+ 	(Exception handling) Fix missing @ sign before copyright
+ 	header, which lead to the copyright line leaking into
+ 	'(gcc)Exception handling'.
+ 	* doc/gcc.texi: Set document language to en_US.
+ 	(@copying): Wrap front cover texts in quotations, move in manual
+ 	description text.
+ 
+ 2023-03-21  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/gcc.texi: Add the Indices appendix, to make texinfo
+ 	generate nice indices overview page.
+ 
+ 2023-03-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109170
+ 	* gimple-range-op.cc (cfn_pass_through_arg1): New.
+ 	(gimple_range_op_handler::maybe_builtin_call): Handle
+ 	__builtin_expect via cfn_pass_through_arg1.
+ 
+ 2023-03-20   Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR target/109067
+ 	* config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
+ 	(init_float128_ieee): Delete code to switch complex multiply and divide
+ 	for long double.
+ 	(complex_multiply_builtin_code): New helper function.
+ 	(complex_divide_builtin_code): Likewise.
+ 	(rs6000_mangle_decl_assembler_name): Add support for mangling the name
+ 	of complex 128-bit multiply and divide built-in functions.
+ 
+ 2023-03-20  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/109178
+ 	* config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
+ 
+ 2023-03-19  Jonny Grant  <jg@jguk.org>
+ 
+ 	* doc/extend.texi (Common Function Attributes) <nonnull>:
+ 	Correct typo.
+ 
+ 2023-03-18  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR rtl-optimization/109179
+ 	* lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
+ 	insn or note.  Move the tests earlier to guard lra_get_insn_recog_data.
+ 
+ 2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/105554
+ 	* function.h (push_struct_function): Add ABSTRACT_P argument defaulted
+ 	to false.
+ 	* function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
+ 	to allocate_struct_function instead of false.
+ 	* tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
+ 	nor DECL_RESULT here.  Pass true as ABSTRACT_P to
+ 	push_struct_function.  Call targetm.target_option.relayout_function
+ 	after it.
+ 	(tree_function_versioning): Formatting fix.
+ 
+ 2023-03-17  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc: Include hooks.h.
+ 	(combine_reload_insn): New function.
+ 	(lra_constraints): Call it.
+ 
+ 2023-03-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-v.cc (legitimize_move): Allow undef value
+ 	as legitimate value.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
+ 	(function_expander::use_widen_ternop_insn): Ditto.
+ 	* config/riscv/vector.md (@vundefined<mode>): New pattern.
+ 	(pred_mul_<optab><mode>_undef_merge): Remove.
+ 	(*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
+ 	(pred_neg_mul_<optab><mode>_undef_merge): Ditto.
+ 	(*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
+ 
+ 2023-03-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/109092
+ 	* config/riscv/riscv.md: Fix subreg bug.
+ 
+ 2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108685
+ 	* omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
+ 	use its loop_father rather than BODY_BB's loop_father.
+ 	(expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
+ 	If broken_loop with ordered > collapse and at least one of those
+ 	extra loops aren't guaranteed to have at least one iteration, change
+ 	l0_bb's loop_father to entry_bb's loop_father.  Set cont_bb's
+ 	loop_father to l0_bb's loop_father rather than l1_bb's.
+ 
+ 2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR plugins/108634
+ 	* gdbhooks.py (TreePrinter.to_string): Wrap
+ 	gdb.parse_and_eval('tree_code_type') in a try block, parse
+ 	and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
+ 	raises exception.  Update comments for the recent tree_code_type
+ 	changes.
+ 
+ 2023-03-17  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/extend.texi (BPF Built-in Functions): Fix numerous markup
+ 	issues.  Add more line breaks to example so it doesn't overflow
+ 	the margins.
+ 
+ 2023-03-17  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/extend.texi (Common Function Attributes) <access>: Fix bad
+ 	line breaks in examples.
+ 	<malloc>: Fix bad line breaks in running text, also copy-edit
+ 	for consistency.
+ 	(Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
+ 	* doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
+ 	@gol.
+ 	(C++ Dialect Options) <-fcontracts>: Add line break in example.
+ 	<-Wctad-maybe-unsupported>: Likewise.
+ 	<-Winvalid-constexpr>: Likewise.
+ 	(Warning Options) <-Wdangling-pointer>: Likewise.
+ 	<-Winterference-size>: Likewise.
+ 	<-Wvla-parameter>: Likewise.
+ 	(Static Analyzer Options): Fix bad line breaks in running text,
+ 	plus add some missing markup.
+ 	(Optimize Options) <openacc-privatization>: Fix more bad line
+ 	breaks in running text.
+ 
+ 2023-03-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (expand_vec_perm_pblendv):
+ 	Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
+ 	(expand_vec_perm_2perm_pblendv): Ditto.
+ 
+ 2023-03-16  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR middle-end/106133
+ 	* gcc.cc (driver_handle_option): Use x_main_input_basename
+ 	if x_dump_base_name is null.
+ 	* opts.cc (common_handle_option): Likewise.
+ 
+ 2023-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109123
+ 	* gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
+ 	Do not emit -Wuse-after-free late.
+ 	(pass_waccess::check_call): Always check call pointer uses.
+ 
+ 2023-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109141
+ 	* tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
+ 	* tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
+ 	out from ...
+ 	(renumber_gimple_stmt_uids): ... here and
+ 	(renumber_gimple_stmt_uids_in_blocks): ... here.
+ 	* gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
+ 	Use renumber_gimple_stmt_uids_in_block to also assign UIDs
+ 	to PHIs.
+ 	(pass_waccess::check_pointer_uses): Process all PHIs.
+ 
+ 2023-03-15  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/109097
+ 	* diagnostic-format-sarif.cc (class sarif_invocation): New.
+ 	(class sarif_ice_notification): New.
+ 	(sarif_builder::m_invocation_obj): New field.
+ 	(sarif_invocation::add_notification_for_ice): New.
+ 	(sarif_invocation::prepare_to_flush): New.
+ 	(sarif_ice_notification::sarif_ice_notification): New.
+ 	(sarif_builder::sarif_builder): Add m_invocation_obj.
+ 	(sarif_builder::end_diagnostic): Special-case DK_ICE and
+ 	DK_ICE_NOBT.
+ 	(sarif_builder::flush_to_file): Call prepare_to_flush on
+ 	m_invocation_obj.  Pass the latter to make_top_level_object.
+ 	(sarif_builder::make_result_object): Move creation of "locations"
+ 	array to...
+ 	(sarif_builder::make_locations_arr): ...this new function.
+ 	(sarif_builder::make_top_level_object): Add "invocation_obj" param
+ 	and pass it to make_run_object.
+ 	(sarif_builder::make_run_object): Add "invocation_obj" param and
+ 	use it.
+ 	(sarif_ice_handler): New callback.
+ 	(diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
+ 	* diagnostic.cc (diagnostic_initialize): Initialize new field
+ 	"ice_handler_cb".
+ 	(diagnostic_action_after_output): If it is set, make one attempt
+ 	to call ice_handler_cb.
+ 	* diagnostic.h (diagnostic_context::ice_handler_cb): New field.
+ 
+ 2023-03-15  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (expand_vec_perm_blend):
+ 	Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
+ 	and fix V2HImode handling.
+ 	(expand_vec_perm_1): Try to emit BLEND instruction
+ 	before MOVSS/MOVSD.
+ 	* config/i386/mmx.md (*mmx_blendps): New insn pattern.
+ 
+ 2023-03-15  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
+ 
+ 2023-03-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
+ 	Do not diagnose clobbers.
+ 
+ 2023-03-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109139
+ 	* tree-ssa-live.cc (remove_unused_locals): Look at the
+ 	base address for unused decls on the LHS of .DEFERRED_INIT.
+ 
+ 2023-03-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR other/109086
+ 	* builtins.cc (inline_string_cmp): Force the character
+ 	difference into "result" pseudo-register, instead of reassign
+ 	the pseudo-register.
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config.gcc: Add thead.o to RISC-V extra_objs.
+ 	* config/riscv/peephole.md: Add mempair peephole passes.
+ 	* config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
+ 	prototype.
+ 	(th_mempair_operands_p): Likewise.
+ 	(th_mempair_order_operands): Likewise.
+ 	(th_mempair_prepare_save_restore_operands): Likewise.
+ 	(th_mempair_save_restore_regs): Likewise.
+ 	(th_mempair_output_move): Likewise.
+ 	* config/riscv/riscv.cc (riscv_save_reg): Move code.
+ 	(riscv_restore_reg): Move code.
+ 	(riscv_for_each_saved_reg): Add code to emit mempair insns.
+ 	* config/riscv/t-riscv: Add thead.cc.
+ 	* config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
+ 	New insn.
+ 	(*th_mempair_store_<GPR:mode>2): Likewise.
+ 	(*th_mempair_load_extendsidi2): Likewise.
+ 	(*th_mempair_load_zero_extendsidi2): Likewise.
+ 	* config/riscv/thead.cc: New file.
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
+ 	New constraint "th_f_fmv".
+ 	(TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
+ 	"th_r_fmv".
+ 	* config/riscv/riscv.cc (riscv_split_doubleword_move):
+ 	Add split code for XTheadFmv.
+ 	(riscv_secondary_memory_needed): XTheadFmv does not need
+ 	secondary memory.
+ 	* config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
+ 	UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
+ 	movdf_hardfloat_rv32.
+ 	* config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
+ 	(th_fmv_x_w): New INSN.
+ 	(th_fmv_x_hw): New INSN.
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.md (maddhisi4): New expand.
+ 	(msubhisi4): New expand.
+ 	* config/riscv/thead.md (*th_mula<mode>): New pattern.
+ 	(*th_mulawsi): New pattern.
+ 	(*th_mulawsi2): New pattern.
+ 	(*th_maddhisi4): New pattern.
+ 	(*th_sextw_maddhisi4): New pattern.
+ 	(*th_muls<mode>): New pattern.
+ 	(*th_mulswsi): New pattern.
+ 	(*th_mulswsi2): New pattern.
+ 	(*th_msubhisi4): New pattern.
+ 	(*th_sextw_msubhisi4): New pattern.
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
+ 	* config/riscv/riscv-protos.h (riscv_expand_conditional_move):
+ 	Add prototype.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
+ 	XTheadCondMov.
+ 	(riscv_expand_conditional_move): New function.
+ 	(riscv_expand_conditional_move_onesided): New function.
+ 	* config/riscv/riscv.md: Add support for XTheadCondMov.
+ 	* config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
+ 	support for XTheadCondMov.
+ 	(*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/bitmanip.md (clzdi2): New expand.
+ 	(clzsi2): New expand.
+ 	(ctz<mode>2): New expand.
+ 	(popcount<mode>2): New expand.
+ 	(<bitmanip_optab>si2): Rename INSN.
+ 	(*<bitmanip_optab>si2): Hide INSN name.
+ 	(<bitmanip_optab>di2): Rename INSN.
+ 	(*<bitmanip_optab>di2): Hide INSN name.
+ 	(rotrsi3): Remove INSN.
+ 	(rotr<mode>3): Add expand.
+ 	(*rotrsi3): New INSN.
+ 	(rotrdi3): Rename INSN.
+ 	(*rotrdi3): Hide INSN name.
+ 	(rotrsi3_sext): Rename INSN.
+ 	(*rotrsi3_sext): Hide INSN name.
+ 	(bswap<mode>2): Remove INSN.
+ 	(bswapdi2): Add expand.
+ 	(bswapsi2): Add expand.
+ 	(*bswap<mode>2): Hide INSN name.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
+ 	extraction.
+ 	* config/riscv/riscv.md (extv<mode>): New expand.
+ 	(extzv<mode>): New expand.
+ 	* config/riscv/thead.md (*th_srri<mode>3): New INSN.
+ 	(*th_ext<mode>): New INSN.
+ 	(*th_extu<mode>): New INSN.
+ 	(*th_clz<mode>2): New INSN.
+ 	(*th_rev<mode>2): New INSN.
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
+ 	* config/riscv/thead.md (*th_tst<mode>3): New INSN.
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.md: Include thead.md
+ 	* config/riscv/thead.md: New file.
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
+ 
+ 2023-03-15  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add xthead* extensions.
+ 	* config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
+ 	(MASK_XTHEADBB): New.
+ 	(MASK_XTHEADBS): New.
+ 	(MASK_XTHEADCMO): New.
+ 	(MASK_XTHEADCONDMOV): New.
+ 	(MASK_XTHEADFMEMIDX): New.
+ 	(MASK_XTHEADFMV): New.
+ 	(MASK_XTHEADINT): New.
+ 	(MASK_XTHEADMAC): New.
+ 	(MASK_XTHEADMEMIDX): New.
+ 	(MASK_XTHEADMEMPAIR): New.
+ 	(MASK_XTHEADSYNC): New.
+ 	(TARGET_XTHEADBA): New.
+ 	(TARGET_XTHEADBB): New.
+ 	(TARGET_XTHEADBS): New.
+ 	(TARGET_XTHEADCMO): New.
+ 	(TARGET_XTHEADCONDMOV): New.
+ 	(TARGET_XTHEADFMEMIDX): New.
+ 	(TARGET_XTHEADFMV): New.
+ 	(TARGET_XTHEADINT): New.
+ 	(TARGET_XTHEADMAC): New.
+ 	(TARGET_XTHEADMEMIDX): New.
+ 	(TARGET_XTHEADMEMPAIR): new.
+ 	(TARGET_XTHEADSYNC): New.
+ 	* config/riscv/riscv.opt: Add riscv_xthead_subext.
+ 
+ 2023-03-15  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/109117
+ 	* config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
+ 	__builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
+ 	__builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
+ 
+ 2023-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109109
+ 	* config/i386/i386-expand.cc (split_double_concat): Fix splitting
+ 	when lo is equal to dhi and hi is a MEM which uses dlo register.
+ 
+ 2023-03-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/107925
+ 	* ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
+ 	global0 instead of zeroing when it does not have as many counts as
+ 	it should.
+ 
+ 2023-03-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/107925
+ 	* ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
+ 	ipa count, remove assert, lenient_count_portion_handling, dump
+ 	also orig_node_count.
+ 
+ 2023-03-14  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (expand_vec_perm_movs):
+ 	Handle V2SImode for TARGET_MMX_WITH_SSE.
+ 	* config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
+ 	using V2FI mode iterator to handle both V2SI and V2SF modes.
+ 
+ 2023-03-14  Sam James  <sam@gentoo.org>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
+ 	including <sstream> earlier.
+ 	* system.h: Add INCLUDE_SSTREAM.
+ 
+ 2023-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-live.cc (remove_unused_locals): Do not treat
+ 	the .DEFERRED_INIT of a variable as use, instead remove
+ 	that if it is the only use.
+ 
+ 2023-03-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR rtl-optimization/107762
+ 	* expr.cc (emit_group_store): Revert latest change.
+ 
+ 2023-03-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR tree-optimization/109005
+ 	* tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
+ 	aggregate type check.
+ 
+ 2023-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109115
+ 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
+ 	r.upper_bound () on r.undefined_p () range.
+ 
+ 2023-03-14  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR tree-optimization/106896
+ 	* profile-count.cc (profile_count::to_sreal_scale): Synchronize
+ 	implementatoin with probability_in; avoid some asserts.
+ 
+ 2023-03-13  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
+ 
+ 2023-03-13  Sean Bright  <sean@seanbright.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Remove errant 'See'
+ 	before @xref.
+ 
+ 2023-03-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
+ 	REG_OK_FOR_BASE_P): Remove.
+ 
+ 2023-03-13  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md (=vd,vr): Fine tune.
+ 	(=vd,vd,vr,vr): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-03-13  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_compare_insn): Add operand predicate check.
+ 
+ 2023-03-13  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fine tune RA constraints.
+ 
+ 2023-03-13  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* config/gcn/mkoffload.cc (main): Pass -save-temps on for the
+ 	hsaco assemble/link.
+ 
+ 2023-03-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109046
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
+ 	piecewise complex loads.
+ 
+ 2023-03-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
+ 	(aarch64_bf16_ptr_type_node): Adjust comment.
+ 	* config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
+ 	bfloat16_type_node rather than aarch64_bf16_type_node.
+ 	(aarch64_libgcc_floating_mode_supported_p,
+ 	aarch64_scalar_mode_supported_p): Also support BFmode.
+ 	(aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
+ 	(aarch64_invalid_binary_op): Remove BFmode related rejections.
+ 	(TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
+ 	(aarch64_int_or_fp_type): Use bfloat16_type_node rather than
+ 	aarch64_bf16_type_node.
+ 	(aarch64_init_simd_builtin_types): Likewise.
+ 	(aarch64_init_bf16_types): Likewise.  Don't create bfloat16_type_node,
+ 	which is created in tree.cc already.
+ 	* config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
+ 
+ 2023-03-12  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR middle-end/109031
+ 	* tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
+ 	ensure that the type of x is as wide or wider than the type of a.
+ 
+ 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/108583
+ 	* config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
+ 	(*bitmask_shift_plus<mode>): New.
+ 	* config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
+ 	(@aarch64_bitmask_udiv<mode>3): Remove.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_vectorize_can_special_div_by_constant,
+ 	TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
+ 	(TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
+ 	aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
+ 
+ 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/108583
+ 	* target.def (preferred_div_as_shifts_over_mult): New.
+ 	* doc/tm.texi.in: Document it.
+ 	* doc/tm.texi: Regenerate.
+ 	* targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
+ 	* targhooks.h (default_preferred_div_as_shifts_over_mult): New.
+ 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
+ 
+ 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/108583
+ 	* tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
+ 	single use.
+ 
+ 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
+ 	    Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR target/108583
+ 	* gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
+ 	* gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
+ 	Use it.
+ 	(gimple_range_op_handler::maybe_non_standard): New.
+ 	* range-op.cc (class operator_widen_plus_signed,
+ 	operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
+ 	operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
+ 	operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
+ 	operator_widen_mult_unsigned::wi_fold,
+ 	ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
+ 	ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
+ 	* range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
+ 	ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
+ 
+ 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/108583
+ 	* doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
+ 	* doc/tm.texi.in: Likewise.
+ 	* explow.cc (round_push, align_dynamic_address): Revert previous patch.
+ 	* expmed.cc (expand_divmod): Likewise.
+ 	* expmed.h (expand_divmod): Likewise.
+ 	* expr.cc (force_operand, expand_expr_divmod): Likewise.
+ 	* optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
+ 	* target.def (can_special_div_by_const): Remove.
+ 	* target.h: Remove tree-core.h include
+ 	* targhooks.cc (default_can_special_div_by_const): Remove.
+ 	* targhooks.h (default_can_special_div_by_const): Remove.
+ 	* tree-vect-generic.cc (expand_vector_operation): Remove hook.
+ 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
+ 	* tree-vect-stmts.cc (vectorizable_operation): Remove hook.
+ 
+ 2023-03-12  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/install.texi2html: Fix issue number typo in comment.
+ 
+ 2023-03-12  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
+ 	bool.
+ 
+ 2023-03-12  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/invoke.texi (Optimize Options):  Add markup to
+ 	description of asan-kernel-mem-intrinsic-prefix, and clarify
+ 	wording slightly.
+ 
+ 2023-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/extend.texi (Named Address Spaces): Drop a redundant link
+ 	to AVR-LibC.
+ 
+ 2023-03-11  Jeff Law  <jlaw@ventanamicro>
+ 
+ 	PR web/88860
+ 	* doc/extend.texi: Clarify Attribute Syntax a bit.
+ 
+ 2023-03-11  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* doc/install.texi (Prerequisites): Suggest using newer versions
+ 	of Texinfo.
+ 	(Final install): Clean up and modernize discussion of how to
+ 	build or obtain the GCC manuals.
+ 	* doc/install.texi2html: Update comment to point to the PR instead
+ 	of "makeinfo 4.7 brokenness" (it's not specific to that version).
+ 
+ 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/107703
+ 	* optabs.cc (expand_fix): For conversions from BFmode to integral,
+ 	use shifts to convert it to SFmode first and then convert SFmode
+ 	to integral.
+ 
+ 2023-03-10  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* config/aarch64/aarch64.md: Add a new define_split
+ 	to help combine.
+ 
+ 2023-03-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (solve_graph): Immediately
+ 	iterate self-cycles.
+ 
+ 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109008
+ 	* range-op-float.cc (float_widen_lhs_range): If not
+ 	-frounding-math and not IBM double double format, extend lhs
+ 	range just by 0.5ulp rather than 1ulp in each direction.
+ 
+ 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/107998
+ 	* config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
+ 	$tmake_file.
+ 	* config/i386/t-cygwin-w64: Remove.
+ 
+ 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR plugins/108634
+ 	* tree-core.h (tree_code_type, tree_code_length): For C++11 or
+ 	C++14, don't declare as extern const arrays.
+ 	(tree_code_type_tmpl, tree_code_length_tmpl): New types with
+ 	static constexpr member arrays for C++11 or C++14.
+ 	* tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
+ 	tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
+ 	(TREE_CODE_LENGTH): For C++11 or C++14 use
+ 	tree_code_length_tmpl <0>::tree_code_length instead of
+ 	tree_code_length.
+ 	* tree.cc (tree_code_type, tree_code_length): Remove.
+ 
+ 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/108464
+ 	* common.opt (fcanon-prefix-map): New option.
+ 	* opts.cc: Include file-prefix-map.h.
+ 	(flag_canon_prefix_map): New variable.
+ 	(common_handle_option): Handle OPT_fcanon_prefix_map.
+ 	(gen_command_line_string): Ignore OPT_fcanon_prefix_map.
+ 	* file-prefix-map.h (flag_canon_prefix_map): Declare.
+ 	* file-prefix-map.cc (struct file_prefix_map): Add canonicalize
+ 	member.
+ 	(add_prefix_map): Initialize canonicalize member from
+ 	flag_canon_prefix_map, and if true canonicalize it using lrealpath.
+ 	(remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
+ 	use lrealpath result only for map->canonicalize map entries.
+ 	* lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
+ 	* opts-global.cc (handle_common_deferred_options): Clear
+ 	flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
+ 	* doc/invoke.texi (-fcanon-prefix-map): Document.
+ 	(-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
+ 	see also for -fcanon-prefix-map.
+ 	* doc/cppopts.texi (-fmacro-prefix-map): Likewise.
+ 
+ 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/108079
+ 	* cgraphunit.cc (check_global_declaration): Don't warn for unused
+ 	variables which have OPT_Wunused_variable warning suppressed.
+ 
+ 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109008
+ 	* range-op-float.cc (float_widen_lhs_range): If lb is
+ 	minimum representable finite number or ub is maximum
+ 	representable finite number, instead of widening it to
+ 	-inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
+ 	Temporarily clear flag_finite_math_only when canonicalizing
+ 	the widened range.
+ 
+ 2023-03-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
+ 	* config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
+ 	(gimple_fold_builtin):  Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
+ 	(class vleff): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
+ 	(vleff): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
+ 	(struct fault_load_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(rvv_arg_type_info::get_tree_type): Add size_ptr.
+ 	(gimple_folder::gimple_folder): New class.
+ 	(gimple_folder::fold): Ditto.
+ 	(gimple_fold_builtin): New function.
+ 	(get_read_vl_instance): Ditto.
+ 	(get_read_vl_decl): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
+ 	* config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
+ 	(get_read_vl_instance): New function.
+ 	(get_read_vl_decl):  Ditto.
+ 	* config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
+ 	(read_vl_insn_p): Ditto.
+ 	(available_occurrence_p): Ditto.
+ 	(backward_propagate_worthwhile_p): Ditto.
+ 	(gen_vsetvl_pat): Adapt for vleff support.
+ 	(get_forward_read_vl_insn): New function.
+ 	(get_backward_fault_first_load_insn): Ditto.
+ 	(source_equal_p): Adapt for vleff support.
+ 	(first_ratio_invalid_for_second_sew_p): Remove.
+ 	(first_ratio_invalid_for_second_lmul_p): Ditto.
+ 	(first_lmul_less_than_second_lmul_p): Ditto.
+ 	(first_ratio_less_than_second_ratio_p): Ditto.
+ 	(support_relaxed_compatible_p): New function.
+ 	(vector_insn_info::operator>): Remove.
+ 	(vector_insn_info::operator>=): Refine.
+ 	(vector_insn_info::parse_insn): Adapt for vleff support.
+ 	(vector_insn_info::compatible_p): Ditto.
+ 	(vector_insn_info::update_fault_first_load_avl): New function.
+ 	(pass_vsetvl::transfer_after): Adapt for vleff support.
+ 	(pass_vsetvl::demand_fusion): Ditto.
+ 	(pass_vsetvl::cleanup_insns): Ditto.
+ 	* config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
+ 	redundant condtions.
+ 	* config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
+ 	* config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
+ 	* config/riscv/riscv.md: Adapt for vleff support.
+ 	* config/riscv/t-riscv: Ditto.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 	* config/riscv/vector.md (read_vlsi): New pattern.
+ 	(read_vldi_zero_extend): Ditto.
+ 	(@pred_fault_load<mode>): Ditto.
+ 
+ 2023-03-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_ternop_insn): Use maybe_gen_insn instead.
+ 	(function_expander::use_widen_ternop_insn): Ditto.
+ 	* optabs.cc (maybe_gen_insn): Extend nops handling.
+ 
+ 2023-03-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
+ 	patterns according to RVV ISA.
+ 	* config/riscv/vector-iterators.md: New iterators.
+ 	* config/riscv/vector.md
+ 	(@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
+ 	(@pred_indexed_<order>load<mode>_same_eew): New pattern.
+ 	(@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
+ 	(@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
+ 	(@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
+ 	(@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
+ 	(@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
+ 	(@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
+ 	(@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
+ 	(@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
+ 
+ 2023-03-10  Michael Collison  <collison@rivosinc.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Use
+ 	result of constant_lower_bound instead of vf for the lower
+ 	bound of the epilog loop trip count.
+ 
+ 2023-03-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* passes.cc (emergency_dump_function): Finish graph generation.
+ 
+ 2023-03-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
+ 	and bottom bit only.
+ 
+ 2023-03-09  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/108980
+ 	* gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
+ 	Reorgnize the call to warning for not strict flexible arrays
+ 	to be before the check of warned.
+ 
+ 2023-03-09  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/extend.texi: Comment out __is_deducible docs.
+ 
+ 2023-03-09  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105841
+ 	* doc/extend.texi (Type Traits):: Document __is_deducible.
+ 
+ 2023-03-09  Costas Argyris  <costas.argyris@gmail.com>
+ 
+ 	PR driver/108865
+ 	* config.host: add object for x86_64-*-mingw*.
+ 	* config/i386/sym-mingw32.cc: dummy file to attach
+ 	symbol.
+ 	* config/i386/utf8-mingw32.rc: windres resource file.
+ 	* config/i386/winnt-utf8.manifest: XML manifest to
+ 	enable UTF-8.
+ 	* config/i386/x-mingw32: reference to x-mingw32-utf8.
+ 	* config/i386/x-mingw32-utf8: Makefile fragment to
+ 	embed UTF-8 manifest.
+ 
+ 2023-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc (process_alt_operands): Use operand modes for
+ 	clobbered regs instead of the biggest access mode.
+ 
+ 2023-03-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/108995
+ 	* fold-const.cc (extract_muldiv_1): Avoid folding
+ 	(CST * b) / CST2 when sanitizing overflow and we rely on
+ 	overflow being undefined.
+ 
+ 2023-03-09  Jakub Jelinek  <jakub@redhat.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109008
+ 	* range-op-float.cc (float_widen_lhs_range): New function.
+ 	(foperator_plus::op1_range, foperator_minus::op1_range,
+ 	foperator_minus::op2_range, foperator_mult::op1_range,
+ 	foperator_div::op1_range, foperator_div::op2_range): Use it.
+ 
+ 2023-03-07  Jonathan Grant  <jg@jguk.org>
+ 
+ 	PR sanitizer/81649
+ 	* doc/invoke.texi (Instrumentation Options):  Clarify
+ 	LeakSanitizer behavior.
+ 
+ 2023-03-07  Benson Muite  <benson_muite@emailplus.org>
+ 
+ 	* doc/install.texi (Prerequisites): Add link to gmplib.org.
+ 
+ 2023-03-07  Pan Li  <pan2.li@intel.com>
+ 	    Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	PR target/108185
+ 	PR target/108654
+ 	* config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
+ 	modes.
+ 	* config/riscv/riscv.cc (riscv_v_adjust_precision): New.
+ 	* config/riscv/riscv.h (riscv_v_adjust_precision): New.
+ 	* genmodes.cc (adj_precision): New.
+ 	(ADJUST_PRECISION): New.
+ 	(emit_mode_adjustments): Handle ADJUST_PRECISION.
+ 
+ 2023-03-07  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* doc/sourcebuild.texi: Document check_effective_target_tail_call.
+ 
+ 2023-03-06  Paul-Antoine Arras  <pa@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
+ 	{s|u}{max|min} in QI, HI and DI modes.
+ 	(<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
+ 	(cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
+ 	(cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
+ 	* config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
+ 	saved in SGPRs.
+ 
+ 2023-03-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109025
+ 	* tree-vect-loop.cc (vect_is_simple_reduction): Verify
+ 	the inner LC PHI use is the inner loop PHI latch definition
+ 	before classifying an outer PHI as double reduction.
+ 
+ 2023-03-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR target/108429
+ 	* config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
+ 	generic.
+ 	(X86_TUNE_USE_SCATTER_4PARTS): Likewise.
+ 	(X86_TUNE_USE_SCATTER): Likewise.
+ 
+ 2023-03-06  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/109000
+ 	* config/loongarch/loongarch.h (FP_RETURN): Use
+ 	TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
+ 	(UNITS_PER_FP_ARG): Likewise.
+ 
+ 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
+ 	(pass_vsetvl::backward_demand_fusion): Ditto.
+ 
+ 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
+ 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
+ 	instructions.
+ 	(riscv_sm3p1_<mode>): New.
+ 	(riscv_sm4ed_<mode>): New.
+ 	(riscv_sm4ks_<mode>): New.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
+ 	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
+ 	ZKSH's built-in functions.
+ 
+ 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
+ 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
+ 	(riscv_sha256sig1_<mode>): New.
+ 	(riscv_sha256sum0_<mode>): New.
+ 	(riscv_sha256sum1_<mode>): New.
+ 	(riscv_sha512sig0h): New.
+ 	(riscv_sha512sig0l): New.
+ 	(riscv_sha512sig1h): New.
+ 	(riscv_sha512sig1l): New.
+ 	(riscv_sha512sum0r): New.
+ 	(riscv_sha512sum1r): New.
+ 	(riscv_sha512sig0): New.
+ 	(riscv_sha512sig1): New.
+ 	(riscv_sha512sum0): New.
+ 	(riscv_sha512sum1): New.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
+ 	* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
+ 	built-in functions.
+ 	(DIRECT_BUILTIN): Add new.
+ 
+ 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
+ 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/constraints.md (D03): Add constants of bs and rnum.
+ 	(DsA): New.
+ 	* config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
+ 	(riscv_aes32dsmi): New.
+ 	(riscv_aes64ds): New.
+ 	(riscv_aes64dsm): New.
+ 	(riscv_aes64im): New.
+ 	(riscv_aes64ks1i): New.
+ 	(riscv_aes64ks2): New.
+ 	(riscv_aes32esi): New.
+ 	(riscv_aes32esmi): New.
+ 	(riscv_aes64es): New.
+ 	(riscv_aes64esm): New.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
+ 	* config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
+ 	ZKNE's built-in functions.
+ 
+ 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
+ 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/bitmanip.md: Add ZBKB's instructions.
+ 	* config/riscv/riscv-builtins.cc (AVAIL): Add new.
+ 	* config/riscv/riscv.md: Add new type for crypto instructions.
+ 	* config/riscv/crypto.md: Add Scalar Cryptography extension's machine
+ 	description file.
+ 	* config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
+ 	extension's built-in function file.
+ 
+ 2023-03-05  Liao Shihua  <shihua@iscas.ac.cn>
+ 	    SiYu Wu  <siyu@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
+ 	(RISCV_FTYPE_NAME3): New.
+ 	(RISCV_ATYPE_QI): New.
+ 	(RISCV_ATYPE_HI): New.
+ 	(RISCV_FTYPE_ATYPES2): New.
+ 	(RISCV_FTYPE_ATYPES3): New.
+ 	* config/riscv/riscv-ftypes.def (2): New.
+ 	(3): New.
+ 
+ 2023-03-05  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
+ 	use exact_log2().
+ 
+ 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/predicates.md (vector_any_register_operand): New predicate.
+ 	* config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
+ 	(riscv_register_pragmas): Add builtin function check call.
+ 	* config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
+ 	(check_builtin_call): New function.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
+ 	(class vreinterpret): Ditto.
+ 	(class vlmul_ext): Ditto.
+ 	(class vlmul_trunc): Ditto.
+ 	(class vset): Ditto.
+ 	(class vget): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
+ 	(vluxei16): Ditto.
+ 	(vluxei32): Ditto.
+ 	(vluxei64): Ditto.
+ 	(vloxei8): Ditto.
+ 	(vloxei16): Ditto.
+ 	(vloxei32): Ditto.
+ 	(vloxei64): Ditto.
+ 	(vsuxei8): Ditto.
+ 	(vsuxei16): Ditto.
+ 	(vsuxei32): Ditto.
+ 	(vsuxei64): Ditto.
+ 	(vsoxei8): Ditto.
+ 	(vsoxei16): Ditto.
+ 	(vsoxei32): Ditto.
+ 	(vsoxei64): Ditto.
+ 	(vundefined): Add new intrinsic.
+ 	(vreinterpret): Ditto.
+ 	(vlmul_ext): Ditto.
+ 	(vlmul_trunc): Ditto.
+ 	(vset): Ditto.
+ 	(vget): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
+ 	(struct narrow_alu_def): Ditto.
+ 	(struct reduc_alu_def): Ditto.
+ 	(struct vundefined_def): Ditto.
+ 	(struct misc_def): Ditto.
+ 	(struct vset_def): Ditto.
+ 	(struct vget_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
+ 	(DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
+ 	(DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
+ 	(DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
+ 	(DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_LMUL1_OPS): Ditto.
+ 	(DEF_RVV_LMUL2_OPS): Ditto.
+ 	(DEF_RVV_LMUL4_OPS): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	(vint8mf4_t): Ditto.
+ 	(vint8mf2_t): Ditto.
+ 	(vint8m1_t): Ditto.
+ 	(vint8m2_t): Ditto.
+ 	(vint8m4_t): Ditto.
+ 	(vint8m8_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vuint8m8_t): Ditto.
+ 	(vint8mf8_t): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat64m1_t): Ditto.
+ 	(vfloat64m2_t): Ditto.
+ 	(vfloat64m4_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
+ 	(DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
+ 	(DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
+ 	(DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
+ 	(DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
+ 	(DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
+ 	(DEF_RVV_LMUL1_OPS): Ditto.
+ 	(DEF_RVV_LMUL2_OPS): Ditto.
+ 	(DEF_RVV_LMUL4_OPS): Ditto.
+ 	(DEF_RVV_TYPE_INDEX): Ditto.
+ 	(required_extensions_p): Adapt for new intrinsic support/
+ 	(get_required_extensions): New function.
+ 	(check_required_extensions): Ditto.
+ 	(unsigned_base_type_p): Remove.
+ 	(rvv_arg_type_info::get_scalar_ptr_type): New function.
+ 	(get_mode_for_bitsize): Remove.
+ 	(rvv_arg_type_info::get_scalar_const_ptr_type): New function.
+ 	(rvv_arg_type_info::get_base_vector_type): Ditto.
+ 	(rvv_arg_type_info::get_function_type_index): Ditto.
+ 	(DEF_RVV_BASE_TYPE): New def.
+ 	(function_builder::apply_predication): New class.
+ 	(function_expander::mask_mode): Ditto.
+ 	(function_checker::function_checker): Ditto.
+ 	(function_checker::report_non_ice): Ditto.
+ 	(function_checker::report_out_of_range): Ditto.
+ 	(function_checker::require_immediate): Ditto.
+ 	(function_checker::require_immediate_range): Ditto.
+ 	(function_checker::check): Ditto.
+ 	(check_builtin_call): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
+ 	(DEF_RVV_BASE_TYPE): Ditto.
+ 	(DEF_RVV_TYPE_INDEX): Ditto.
+ 	(vbool64_t): Ditto.
+ 	(vbool32_t): Ditto.
+ 	(vbool16_t): Ditto.
+ 	(vbool8_t): Ditto.
+ 	(vbool4_t): Ditto.
+ 	(vbool2_t): Ditto.
+ 	(vbool1_t): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vint8m4_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vint8m8_t): Ditto.
+ 	(vuint8m8_t): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	(vfloat64m1_t): Ditto.
+ 	(vfloat64m4_t): Ditto.
+ 	(vector): Move it def.
+ 	(scalar): Ditto.
+ 	(mask): Ditto.
+ 	(signed_vector): Ditto.
+ 	(unsigned_vector): Ditto.
+ 	(unsigned_scalar): Ditto.
+ 	(vector_ptr): Ditto.
+ 	(scalar_ptr): Ditto.
+ 	(scalar_const_ptr): Ditto.
+ 	(void): Ditto.
+ 	(size): Ditto.
+ 	(ptrdiff): Ditto.
+ 	(unsigned_long): Ditto.
+ 	(long): Ditto.
+ 	(eew8_index): Ditto.
+ 	(eew16_index): Ditto.
+ 	(eew32_index): Ditto.
+ 	(eew64_index): Ditto.
+ 	(shift_vector): Ditto.
+ 	(double_trunc_vector): Ditto.
+ 	(quad_trunc_vector): Ditto.
+ 	(oct_trunc_vector): Ditto.
+ 	(double_trunc_scalar): Ditto.
+ 	(double_trunc_signed_vector): Ditto.
+ 	(double_trunc_unsigned_vector): Ditto.
+ 	(double_trunc_unsigned_scalar): Ditto.
+ 	(double_trunc_float_vector): Ditto.
+ 	(float_vector): Ditto.
+ 	(lmul1_vector): Ditto.
+ 	(widen_lmul1_vector): Ditto.
+ 	(eew8_interpret): Ditto.
+ 	(eew16_interpret): Ditto.
+ 	(eew32_interpret): Ditto.
+ 	(eew64_interpret): Ditto.
+ 	(vlmul_ext_x2): Ditto.
+ 	(vlmul_ext_x4): Ditto.
+ 	(vlmul_ext_x8): Ditto.
+ 	(vlmul_ext_x16): Ditto.
+ 	(vlmul_ext_x32): Ditto.
+ 	(vlmul_ext_x64): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
+ 	(struct function_type_info): New function.
+ 	(struct rvv_arg_type_info): Ditto.
+ 	(class function_checker): New class.
+ 	(rvv_arg_type_info::get_scalar_type): New function.
+ 	(rvv_arg_type_info::get_vector_type): Ditto.
+ 	(function_expander::ret_mode): New function.
+ 	(function_checker::arg_mode): Ditto.
+ 	(function_checker::ret_mode): Ditto.
+ 	* config/riscv/t-riscv: Add generator.
+ 	* config/riscv/vector-iterators.md: New iterators.
+ 	* config/riscv/vector.md (vundefined<mode>): New pattern.
+ 	(@vundefined<mode>): Ditto.
+ 	(@vreinterpret<mode>): Ditto.
+ 	(@vlmul_extx2<mode>): Ditto.
+ 	(@vlmul_extx4<mode>): Ditto.
+ 	(@vlmul_extx8<mode>): Ditto.
+ 	(@vlmul_extx16<mode>): Ditto.
+ 	(@vlmul_extx32<mode>): Ditto.
+ 	(@vlmul_extx64<mode>): Ditto.
+ 	(*vlmul_extx2<mode>): Ditto.
+ 	(*vlmul_extx4<mode>): Ditto.
+ 	(*vlmul_extx8<mode>): Ditto.
+ 	(*vlmul_extx16<mode>): Ditto.
+ 	(*vlmul_extx32<mode>): Ditto.
+ 	(*vlmul_extx64<mode>): Ditto.
+ 	* config/riscv/genrvv-type-indexer.cc: New file.
+ 
+ 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (enum vlen_enum): New enum.
+ 	(slide1_sew64_helper): New function.
+ 	* config/riscv/riscv-v.cc (compute_vlmax): Ditto.
+ 	(get_unknown_min_value): Ditto.
+ 	(force_vector_length_operand): Ditto.
+ 	(gen_no_side_effects_vsetvl_rtx): Ditto.
+ 	(get_vl_x2_rtx): Ditto.
+ 	(slide1_sew64_helper): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
+ 	(class vrgather): Ditto.
+ 	(class vrgatherei16): Ditto.
+ 	(class vcompress): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
+ 	(vslidedown): Ditto.
+ 	(vslide1up): Ditto.
+ 	(vslide1down): Ditto.
+ 	(vfslide1up): Ditto.
+ 	(vfslide1down): Ditto.
+ 	(vrgather): Ditto.
+ 	(vrgatherei16): Ditto.
+ 	(vcompress): Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
+ 	(vint8mf8_t): Ditto.
+ 	(vint8mf4_t): Ditto.
+ 	(vint8mf2_t): Ditto.
+ 	(vint8m1_t): Ditto.
+ 	(vint8m2_t): Ditto.
+ 	(vint8m4_t): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	(vfloat64m1_t): Ditto.
+ 	(vfloat64m2_t): Ditto.
+ 	(vfloat64m4_t): Ditto.
+ 	(vfloat64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
+ 	* config/riscv/riscv.md: Adjust RVV instruction types.
+ 	* config/riscv/vector-iterators.md (down): New iterator.
+ 	(=vd,vr): New attribute.
+ 	(UNSPEC_VSLIDE1UP): New unspec.
+ 	* config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
+ 	(*pred_slide<ud><mode>): Ditto.
+ 	(*pred_slide<ud><mode>_extended): Ditto.
+ 	(@pred_gather<mode>): Ditto.
+ 	(@pred_gather<mode>_scalar): Ditto.
+ 	(@pred_gatherei16<mode>): Ditto.
+ 	(@pred_compress<mode>): Ditto.
+ 
+ 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
+ 
+ 2023-03-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/constraints.md (Wb1): New constraint.
+ 	* config/riscv/predicates.md
+ 	(vector_least_significant_set_mask_operand): New predicate.
+ 	(vector_broadcast_mask_operand): Ditto.
+ 	* config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
+ 	(gen_scalar_move_mask): New function.
+ 	* config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
+ 	(class vmv_s): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
+ 	(vmv_s): Ditto.
+ 	(vfmv_f): Ditto.
+ 	(vfmv_s): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
+ 	(function_expander::use_exact_insn): New function.
+ 	(function_expander::use_contiguous_load_insn): New function.
+ 	(function_expander::use_contiguous_store_insn): New function.
+ 	(function_expander::use_ternop_insn): New function.
+ 	(function_expander::use_widen_ternop_insn): New function.
+ 	(function_expander::use_scalar_move_insn): New function.
+ 	* config/riscv/riscv-vector-builtins.def (s): New operand suffix.
+ 	* config/riscv/riscv-vector-builtins.h
+ 	(function_expander::add_scalar_move_mask_operand): New class.
+ 	* config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
+ 	(scalar_move_insn_p): Ditto.
+ 	(has_vsetvl_killed_avl_p): Ditto.
+ 	(anticipatable_occurrence_p): Ditto.
+ 	(insert_vsetvl): Ditto.
+ 	(get_vl_vtype_info): Ditto.
+ 	(calculate_sew): Ditto.
+ 	(calculate_vlmul): Ditto.
+ 	(incompatible_avl_p): Ditto.
+ 	(different_sew_p): Ditto.
+ 	(different_lmul_p): Ditto.
+ 	(different_ratio_p): Ditto.
+ 	(different_tail_policy_p): Ditto.
+ 	(different_mask_policy_p): Ditto.
+ 	(possible_zero_avl_p): Ditto.
+ 	(first_ratio_invalid_for_second_sew_p): Ditto.
+ 	(first_ratio_invalid_for_second_lmul_p): Ditto.
+ 	(second_ratio_invalid_for_first_sew_p): Ditto.
+ 	(second_ratio_invalid_for_first_lmul_p): Ditto.
+ 	(second_sew_less_than_first_sew_p): Ditto.
+ 	(first_sew_less_than_second_sew_p): Ditto.
+ 	(compare_lmul): Ditto.
+ 	(second_lmul_less_than_first_lmul_p): Ditto.
+ 	(first_lmul_less_than_second_lmul_p): Ditto.
+ 	(first_ratio_less_than_second_ratio_p): Ditto.
+ 	(second_ratio_less_than_first_ratio_p): Ditto.
+ 	(DEF_INCOMPATIBLE_COND): Ditto.
+ 	(greatest_sew): Ditto.
+ 	(first_sew): Ditto.
+ 	(second_sew): Ditto.
+ 	(first_vlmul): Ditto.
+ 	(second_vlmul): Ditto.
+ 	(first_ratio): Ditto.
+ 	(second_ratio): Ditto.
+ 	(vlmul_for_first_sew_second_ratio): Ditto.
+ 	(ratio_for_second_sew_first_vlmul): Ditto.
+ 	(DEF_SEW_LMUL_FUSE_RULE): Ditto.
+ 	(always_unavailable): Ditto.
+ 	(avl_unavailable_p): Ditto.
+ 	(sew_unavailable_p): Ditto.
+ 	(lmul_unavailable_p): Ditto.
+ 	(ge_sew_unavailable_p): Ditto.
+ 	(ge_sew_lmul_unavailable_p): Ditto.
+ 	(ge_sew_ratio_unavailable_p): Ditto.
+ 	(DEF_UNAVAILABLE_COND): Ditto.
+ 	(same_sew_lmul_demand_p): Ditto.
+ 	(propagate_avl_across_demands_p): Ditto.
+ 	(reg_available_p): Ditto.
+ 	(avl_info::has_non_zero_avl): Ditto.
+ 	(vl_vtype_info::has_non_zero_avl): Ditto.
+ 	(vector_insn_info::operator>=): Refactor.
+ 	(vector_insn_info::parse_insn): Adjust for scalar move.
+ 	(vector_insn_info::demand_vl_vtype): Remove.
+ 	(vector_insn_info::compatible_p): New function.
+ 	(vector_insn_info::compatible_avl_p): Ditto.
+ 	(vector_insn_info::compatible_vtype_p): Ditto.
+ 	(vector_insn_info::available_p): Ditto.
+ 	(vector_insn_info::merge): Ditto.
+ 	(vector_insn_info::fuse_avl): Ditto.
+ 	(vector_insn_info::fuse_sew_lmul): Ditto.
+ 	(vector_insn_info::fuse_tail_policy): Ditto.
+ 	(vector_insn_info::fuse_mask_policy): Ditto.
+ 	(vector_insn_info::dump): Ditto.
+ 	(vector_infos_manager::release): Ditto.
+ 	(pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
+ 	(pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
+ 	(pass_vsetvl::hard_empty_block_p): Ditto.
+ 	(pass_vsetvl::backward_demand_fusion): Ditto.
+ 	(pass_vsetvl::forward_demand_fusion): Ditto.
+ 	(pass_vsetvl::refine_vsetvls): Ditto.
+ 	(pass_vsetvl::cleanup_vsetvls): Ditto.
+ 	(pass_vsetvl::commit_vsetvls): Ditto.
+ 	(pass_vsetvl::propagate_avl): Ditto.
+ 	* config/riscv/riscv-vsetvl.h (enum demand_status): New class.
+ 	(struct demands_pair): Ditto.
+ 	(struct demands_cond): Ditto.
+ 	(struct demands_fuse_rule): Ditto.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 	* config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
+ 	(*pred_broadcast<mode>): Ditto.
+ 	(*pred_broadcast<mode>_extended_scalar): Ditto.
+ 	(@pred_extract_first<mode>): Ditto.
+ 	(*pred_extract_first<mode>): Ditto.
+ 	(@pred_extract_first_trunc<mode>): Ditto.
+ 	* config/riscv/riscv-vsetvl.def: New file.
+ 
+ 2023-03-05  Lin Sinan  <sinan.lin@linux.alibaba.com>
+ 
+ 	* config/riscv/bitmanip.md: allow 0 constant in max/min
+ 	pattern.
+ 
+ 2023-03-05  Lin Sinan  <sinan.lin@linux.alibaba.com>
+ 
+ 	* config/riscv/bitmanip.md: Fix wrong index in the check.
+ 
+ 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/109006
+ 	* vec.cc (test_auto_alias): Adjust comment for removal of
+ 	m_vecdata.
+ 	* read-rtl-function.cc (function_reader::parse_block): Likewise.
+ 	* gdbhooks.py: Likewise.
+ 
+ 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR testsuite/108973
+ 	* selftest-diagnostic.cc
+ 	(test_diagnostic_context::test_diagnostic_context): Set
+ 	caret_max_width to 80.
+ 
+ 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gimple-ssa-warn-access.cc
+ 	(pass_waccess::check_dangling_stores): Skip non-stores.
+ 
+ 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
+ 	after vmsr and vmrs, and lower the case of P0.
+ 
+ 2023-03-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR middle-end/109006
+ 	* gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
+ 
+ 2023-03-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR middle-end/109006
+ 	* gdbhooks.py (VecPrinter): Adjust for new vec layout.
+ 
+ 2023-03-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/108986
+ 	* gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
+ 	Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
+ 	suppressed on stmt.  For [static %E] warning, print access_nelts
+ 	rather than access_size.  Fix up comment wording.
+ 
+ 2023-03-03  Robin Dapp  <rdapp@linux.ibm.com>
+ 
+ 	* config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
+ 	arch14 instead of z16.
+ 
+ 2023-03-03  Anthony Green  <green@moxielogic.com>
+ 
+ 	* config/moxie/moxie.cc (TARGET_LRA_P): Remove.
+ 
+ 2023-03-03  Anthony Green  <green@moxielogic.com>
+ 
+ 	* config/moxie/constraints.md (A, B, W): Change
+ 	define_constraint to define_memory_constraint.
+ 
+ 2023-03-03  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* toplev.cc (process_options): Fix the spelling of
+ 	"-fstack-clash-protection".
+ 
+ 2023-03-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109002
+ 	* tree-ssa-pre.cc (compute_partial_antic_aux): Properly
+ 	PHI-translate ANTIC_IN.
+ 
+ 2023-03-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108988
+ 	* gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
+ 	size_type_node before passing it as argument to fwrite.  Formatting
+ 	fixes.
+ 
+ 2023-03-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/108738
+ 	* config/i386/i386.opt (--param x86-stv-max-visits): New param.
+ 	* doc/invoke.texi (--param x86-stv-max-visits): Document it.
+ 	* config/i386/i386-features.h (scalar_chain::max_visits): New.
+ 	(scalar_chain::build): Add bitmap parameter, return boolean.
+ 	(scalar_chain::add_insn): Likewise.
+ 	(scalar_chain::analyze_register_chain): Likewise.
+ 	* config/i386/i386-features.cc (scalar_chain::scalar_chain):
+ 	Initialize max_visits.
+ 	(scalar_chain::analyze_register_chain): When we exhaust
+ 	max_visits, abort.  Also abort when running into any
+ 	disallowed insn.
+ 	(scalar_chain::add_insn): Propagate abort.
+ 	(scalar_chain::build): Likewise.  When aborting amend
+ 	the set of disallowed insn with the insns set.
+ 	(convert_scalars_to_vector): Adjust.  Do not convert aborted
+ 	chains.
+ 
+ 2023-03-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/108772
+ 	* dwarf2out.cc (dwarf2out_late_global_decl): Do not
+ 	generate a DIE for a function scope static.
+ 
+ 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
+ 
+ 2023-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/108883
+ 	* target.h (emit_support_tinfos_callback): New typedef.
+ 	* targhooks.h (default_emit_support_tinfos): Declare.
+ 	* targhooks.cc (default_emit_support_tinfos): New function.
+ 	* target.def (emit_support_tinfos): New target hook.
+ 	* doc/tm.texi.in (emit_support_tinfos): Document it.
+ 	* doc/tm.texi: Regenerated.
+ 	* config/i386/i386.cc (ix86_emit_support_tinfos): New function.
+ 	(TARGET_EMIT_SUPPORT_TINFOS): Redefine.
+ 
+ 2023-03-02  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira-costs.cc: Include print-rtl.h.
+ 	(record_reg_classes, scan_one_insn): Add code to print debug info.
+ 	(record_operand_costs): Find and use smaller cost for hard reg
+ 	move.
+ 
+ 2023-03-02  Kwok Cheung Yeung  <kcy@codesourcery.com>
+ 	    Paul-Antoine Arras  <pa@codesourcery.com>
+ 
+ 	* builtins.cc (mathfn_built_in_explicit): New.
+ 	* config/gcn/gcn.cc: Include case-cfn-macros.h.
+ 	(mathfn_built_in_explicit): Add prototype.
+ 	(gcn_vectorize_builtin_vectorized_function): New.
+ 	(gcn_libc_has_function): New.
+ 	(TARGET_LIBC_HAS_FUNCTION): Define.
+ 	(TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
+ 
+ 2023-03-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/108979
+ 	* tree-vect-stmts.cc (vectorizable_operation): Don't mask
+ 	operations on invariants.
+ 
+ 2023-03-02  Robin Dapp  <rdapp@linux.ibm.com>
+ 
+ 	* config/s390/predicates.md (vll_bias_operand): Add -1 bias.
+ 	* config/s390/s390.cc (s390_option_override_internal): Make
+ 	partial vector usage the default from z13 on.
+ 	* config/s390/vector.md (len_load_v16qi): Add.
+ 	(len_store_v16qi): Add.
+ 
+ 2023-03-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
+ 	of constant 0 offset.
+ 
+ 2023-03-02  Robert Suchanek  <robert.suchanek@imgtec.com>
+ 
+ 	* config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
+ 	instead of long.
+ 	* config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
+ 
+ 2023-03-02  Junxian Zhu  <zhujunxian@oss.cipunited.com>
+ 
+ 	* config.gcc: add -with-{no-}msa build option.
+ 	* config/mips/mips.h: Likewise.
+ 	* doc/install.texi: Likewise.
+ 
+ 2023-03-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/108603
+ 	* explow.cc (convert_memory_address_addr_space_1): Only wrap
+ 	the result of a recursive call in a CONST if no instructions
+ 	were emitted.
+ 
+ 2023-03-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/108430
+ 	* tree-vect-stmts.cc (vectorizable_condition): Fix handling
+ 	of inverted condition.
+ 
+ 2023-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108934
+ 	* fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
+ 	comparison copy the bytes from ptr to a temporary buffer and clearing
+ 	padding bits in there.
+ 
+ 2023-03-01  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/108545
+ 	* gimplify.cc (struct tree_operand_hash_no_se): New.
+ 	(omp_index_mapping_groups_1, omp_index_mapping_groups,
+ 	omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
+ 	omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
+ 	oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
+ 	gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
+ 	of tree_operand_hash.
+ 
+ 2023-03-01  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR pch/14940
+ 	* config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
+ 	Remove the size limit `pch_VA_max_size`
+ 
+ 2023-03-01  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/108546
+ 	* omp-low.cc (lower_omp_target): Remove optional handling
+ 	on the receiver side, i.e. inside target (data), for
+ 	use_device_ptr.
+ 
+ 2023-03-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/108967
+ 	* cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
+ 	and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
+ 
+ 2023-03-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108970
+ 	* tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
+ 	Check we can copy the BBs.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
+ 	check.
+ 	(vect_do_peeling): Streamline error handling.
+ 
+ 2023-03-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108950
+ 	* tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
+ 	Check oprnd0 is defined in the loop.
+ 	* tree-vect-loop.cc (vectorizable_reduction): Record all
+ 	operands vector types, compute that of invariants and
+ 	properly update their SLP nodes.
+ 
+ 2023-03-01  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108240
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
+ 	implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
+ 
+ 2023-02-28  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR middle-end/107411
+ 	PR middle-end/107411
+ 	* gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
+ 	xasprintf.
+ 	* tree-ssa-uninit.cc (warn_uninit): Handle the case when the
+ 	LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
+ 
+ 2023-02-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/108894
+ 	* ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
+ 	comparison rather than index > bound.
+ 	* gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
+ 	rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
+ 	* doc/invoke.texi (-fsanitize=bounds): Document that whether
+ 	flexible array member-like arrays are instrumented or not depends
+ 	on -fstrict-flex-arrays* options of strict_flex_array attributes.
+ 	(-fsanitize=bounds-strict): Document that flexible array members
+ 	are not instrumented.
+ 
+ 2023-02-27  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/108922
+ 	Revert:
+ 	* config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
+ 	(fmod<mode>3): Ditto.
+ 	(fpremxf4_i387): Ditto.
+ 	(reminderxf3): Ditto.
+ 	(reminder<mode>3): Ditto.
+ 	(fprem1xf4_i387): Ditto.
+ 
+ 2023-02-27  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
+ 	generating FFS with mismatched operand and result modes, by using
+ 	an explicit SIGN_EXTEND/ZERO_EXTEND.
+ 	<case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
+ 	<case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
+ 
+ 2023-02-27  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
+ 	* lra-int.h (lra_change_class): Likewise.
+ 	* recog.h (which_op_alt): Likewise.
+ 	* sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
+ 	instead of static.
+ 
+ 2023-02-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
+ 	New prototype.
+ 	* config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
+ 	New function.
+ 	* config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
+ 	* config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
+ 
+ 2023-02-27  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
+ 	(xtensa_get_config_v3): New functions.
+ 
+ 2023-02-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
+ 
+ 2023-02-27  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
+ 	the macro to 0x1000000000.
+ 
+ 2023-02-25  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/108261
+ 	* doc/gm2.texi (-fm2-pathname): New option documented.
+ 	(-fm2-pathnameI): New option documented.
+ 	(-fm2-prefix=): New option documented.
+ 	(-fruntime-modules=): Update default module list.
+ 
+ 2023-02-25  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	PR target/108919
+ 	* config/xtensa/xtensa-protos.h
+ 	(xtensa_prepare_expand_call): Rename to xtensa_expand_call.
+ 	* config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
+ 	to xtensa_expand_call.
+ 	(xtensa_expand_call): Emit the call and add a clobber expression
+ 	for the static chain to it in case of windowed ABI.
+ 	* config/xtensa/xtensa.md (call, call_value, sibcall)
+ 	(sibcall_value): Call xtensa_expand_call and complete expansion
+ 	right after that call.
+ 
+ 2023-02-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
+ 	(vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
+ 	changing alignment of vec<T, A, vl_embed> and simplifying
+ 	address.
+ 	(vec<T, A, vl_embed>::address): Compute as this + 1.
+ 	(vec<T, A, vl_embed>::embedded_size): Use sizeof the
+ 	vector instead of the offset of the m_vecdata member.
+ 	(auto_vec<T, N>::m_data): Turn storage into
+ 	uninitialized unsigned char.
+ 	(auto_vec<T, N>::auto_vec): Allow allocation of one
+ 	stack member.  Initialize m_vec in a special way to
+ 	avoid later stringop overflow diagnostics.
+ 	* vec.cc (test_auto_alias): New.
+ 	(vec_cc_tests): Call it.
+ 
+ 2023-02-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
+ 	take a const reference to the object, use address to
+ 	access data.
+ 	(vec<T, A, vl_embed>::contains): Use address to access data.
+ 	(vec<T, A, vl_embed>::operator[]): Use address instead of
+ 	m_vecdata to access data.
+ 	(vec<T, A, vl_embed>::iterate): Likewise.
+ 	(vec<T, A, vl_embed>::copy): Likewise.
+ 	(vec<T, A, vl_embed>::quick_push): Likewise.
+ 	(vec<T, A, vl_embed>::pop): Likewise.
+ 	(vec<T, A, vl_embed>::quick_insert): Likewise.
+ 	(vec<T, A, vl_embed>::ordered_remove): Likewise.
+ 	(vec<T, A, vl_embed>::unordered_remove): Likewise.
+ 	(vec<T, A, vl_embed>::block_remove): Likewise.
+ 	(vec<T, A, vl_heap>::address): Likewise.
+ 
+ 2023-02-24  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR sanitizer/108834
+ 	* asan.cc (asan_add_global): Use proper TU name for normal
+ 	global variables (and aux_base_name for the artificial one).
+ 
+ 2023-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/i386/i386-builtin.def: Update description of BDESC
+ 	and BDESC_FIRST in file comment to include mask2.
+ 
+ 2023-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (FLAGS): Update comment.
+ 
+ 2023-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108854
+ 	* cgraphclones.cc (duplicate_thunk_for_node): If no parameter
+ 	changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
+ 	nodes and adjust their DECL_CONTEXT.
+ 
+ 2023-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/108881
+ 	* config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
+ 	__builtin_ia32_cvtne2ps2bf16_v16bf_mask,
+ 	__builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
+ 	__builtin_ia32_cvtne2ps2bf16_v8bf,
+ 	__builtin_ia32_cvtne2ps2bf16_v8bf_mask,
+ 	__builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
+ 	__builtin_ia32_cvtneps2bf16_v8sf_mask,
+ 	__builtin_ia32_cvtneps2bf16_v8sf_maskz,
+ 	__builtin_ia32_cvtneps2bf16_v4sf_mask,
+ 	__builtin_ia32_cvtneps2bf16_v4sf_maskz,
+ 	__builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
+ 	__builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
+ 	__builtin_ia32_dpbf16ps_v4sf_mask,
+ 	__builtin_ia32_dpbf16ps_v4sf_maskz): Require also
+ 	OPTION_MASK_ISA_AVX512VL.
+ 
+ 2023-02-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
+ 	Add non-compact 32-bit multilibs.
+ 
+ 2023-02-24  Junxian Zhu  <zhujunxian@oss.cipunited.com>
+ 
+ 	* config/mips/mips.md (*clo<mode>2): New pattern.
+ 
+ 2023-02-24  Prachi Godbole  <prachi.godbole@imgtec.com>
+ 
+ 	* config/mips/mips.h (machine_function): New variable
+ 	use_hazard_barrier_return_p.
+ 	* config/mips/mips.md (UNSPEC_JRHB): New unspec.
+ 	(mips_hb_return_internal): New insn pattern.
+ 	* config/mips/mips.cc (mips_attribute_table): Add attribute
+ 	use_hazard_barrier_return.
+ 	(mips_use_hazard_barrier_return_p): New static function.
+ 	(mips_function_attr_inlinable_p): Likewise.
+ 	(mips_compute_frame_info): Set use_hazard_barrier_return_p.
+ 	Emit error for unsupported architecture choice.
+ 	(mips_function_ok_for_sibcall, mips_can_use_return_insn):
+ 	Return false for use_hazard_barrier_return.
+ 	(mips_expand_epilogue): Emit hazard barrier return.
+ 	* doc/extend.texi: Document use_hazard_barrier_return.
+ 
+ 2023-02-23  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
+ 	(coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
+ 	for the gcc-internal headers.
+ 
+ 2023-02-23  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
+ 	and $(POSTCOMPILE) instead of manual dependency listing.
+ 	* config/xtensa/xtensa-dynconfig.c: Rename to ...
+ 	* config/xtensa/xtensa-dynconfig.cc: ... this.
+ 
+ 2023-02-23  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/cfg.texi: Reorder index entries around @items.
+ 	* doc/cpp.texi: Ditto.
+ 	* doc/cppenv.texi: Ditto.
+ 	* doc/cppopts.texi: Ditto.
+ 	* doc/generic.texi: Ditto.
+ 	* doc/install.texi: Ditto.
+ 	* doc/extend.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 	* doc/md.texi: Ditto.
+ 	* doc/rtl.texi: Ditto.
+ 	* doc/tm.texi.in: Ditto.
+ 	* doc/trouble.texi: Ditto.
+ 	* doc/tm.texi: Regenerate.
+ 
+ 2023-02-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md: New peephole2 pattern that eliminates
+ 	the occurrence of general-purpose register used only once and for
+ 	transferring intermediate value.
+ 
+ 2023-02-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (machine_function): Add new member
+ 	'eliminated_callee_saved_bmp'.
+ 	(xtensa_can_eliminate_callee_saved_reg_p): New function to
+ 	determine whether the register can be eliminated or not.
+ 	(xtensa_expand_prologue): Add invoking the above function and
+ 	elimination the use of callee-saved register by using its stack
+ 	slot through the stack pointer (or the frame pointer if needed)
+ 	directly.
+ 	(xtensa_expand_prologue): Modify to not emit register restoration
+ 	insn from its stack slot if the register is already eliminated.
+ 
+ 2023-02-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR translation/108890
+ 	* config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
+ 	around fatal_error format strings.
+ 
+ 2023-02-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-structalias.cc (handle_lhs_call): Do not
+ 	re-create rhsc, only truncate it.
+ 
+ 2023-02-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/106258
+ 	* ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
+ 	BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
+ 
+ 2023-02-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-if-conv.cc (tree_if_conversion): Properly manage
+ 	memory of refs and the contained data references.
+ 
+ 2023-02-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108888
+ 	* tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
+ 	calls to predicate.
+ 	(predicate_statements): Only predicate calls with PLF_2.
+ 
+ 2023-02-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md
+ 	(zero_cost_loop_start, zero_cost_loop_end, loop_end):
+ 	Add missing "SI:" to PLUS RTXes.
+ 
+ 2023-02-23  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	PR target/108876
+ 	* config/xtensa/xtensa.cc (xtensa_expand_epilogue):
+ 	Emit (use (reg:SI A0_REG)) at the end in the sibling call
+ 	(i.e. the same place as (return) in the normal call).
+ 
+ 2023-02-23  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	Revert:
+ 	2023-02-21  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	PR target/108876
+ 	* config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
+ 	for A0_REG.
+ 	* config/xtensa/xtensa.md (sibcall, sibcall_internal)
+ 	(sibcall_value, sibcall_value_internal): Add 'use' expression
+ 	for A0_REG.
+ 
+ 2023-02-23  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/cppdiropts.texi: Reorder @opindex commands to precede
+ 	@items they relate to.
+ 	* doc/cppopts.texi: Ditto.
+ 	* doc/cppwarnopts.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 	* doc/lto.texi: Ditto.
+ 
+ 2023-02-22  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* internal-fn.cc (expand_MASK_CALL): New.
+ 	* internal-fn.def (MASK_CALL): New.
+ 	* internal-fn.h (expand_MASK_CALL): New prototype.
+ 	* omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
+ 	for mask arguments also.
+ 	* tree-if-conv.cc: Include cgraph.h.
+ 	(if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
+ 	(predicate_statements): Convert functions to IFN_MASK_CALL.
+ 	* tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
+ 	IFN_MASK_CALL as a SIMD function call.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
+ 	IFN_MASK_CALL as an inbranch SIMD function call.
+ 	Generate the mask vector arguments.
+ 
+ 2023-02-22  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
+ 	(class widen_reducop): Ditto.
+ 	(class freducop): Ditto.
+ 	(class widen_freducop): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
+ 	(vredmaxu): Ditto.
+ 	(vredmax): Ditto.
+ 	(vredminu): Ditto.
+ 	(vredmin): Ditto.
+ 	(vredand): Ditto.
+ 	(vredor): Ditto.
+ 	(vredxor): Ditto.
+ 	(vwredsum): Ditto.
+ 	(vwredsumu): Ditto.
+ 	(vfredusum): Ditto.
+ 	(vfredosum): Ditto.
+ 	(vfredmax): Ditto.
+ 	(vfredmin): Ditto.
+ 	(vfwredosum): Ditto.
+ 	(vfwredusum): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
+ 	(DEF_RVV_WU_OPS): Ditto.
+ 	(DEF_RVV_WF_OPS): Ditto.
+ 	(vint8mf8_t): Ditto.
+ 	(vint8mf4_t): Ditto.
+ 	(vint8mf2_t): Ditto.
+ 	(vint8m1_t): Ditto.
+ 	(vint8m2_t): Ditto.
+ 	(vint8m4_t): Ditto.
+ 	(vint8m8_t): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vuint8m8_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vfloat32mf2_t): Ditto.
+ 	(vfloat32m1_t): Ditto.
+ 	(vfloat32m2_t): Ditto.
+ 	(vfloat32m4_t): Ditto.
+ 	(vfloat32m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
+ 	(DEF_RVV_WU_OPS): Ditto.
+ 	(DEF_RVV_WF_OPS): Ditto.
+ 	(required_extensions_p): Add reduction support.
+ 	(rvv_arg_type_info::get_base_vector_type): Ditto.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
+ 	* config/riscv/riscv.md: Ditto.
+ 	* config/riscv/vector-iterators.md (minu): Ditto.
+ 	* config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
+ 	(@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
+ 	(@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
+ 	(@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
+ 	(@pred_reduc_plus<order><mode><vlmul1>): Ditto.
+ 	(@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
+ 	(@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
+ 
+ 2023-02-22  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/iterators.md: New iterator.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
+ 	(enum ternop_type): New enum.
+ 	(class vmacc): New class.
+ 	(class imac): Ditto.
+ 	(class vnmsac): Ditto.
+ 	(enum widen_ternop_type): New enum.
+ 	(class vmadd): Ditto.
+ 	(class vnmsub): Ditto.
+ 	(class iwmac): Ditto.
+ 	(class vwmacc): Ditto.
+ 	(class vwmaccu): Ditto.
+ 	(class vwmaccsu): Ditto.
+ 	(class vwmaccus): Ditto.
+ 	(class reverse_binop): Ditto.
+ 	(class vfmacc): Ditto.
+ 	(class vfnmsac): Ditto.
+ 	(class vfmadd): Ditto.
+ 	(class vfnmsub): Ditto.
+ 	(class vfnmacc): Ditto.
+ 	(class vfmsac): Ditto.
+ 	(class vfnmadd): Ditto.
+ 	(class vfmsub): Ditto.
+ 	(class vfwmacc): Ditto.
+ 	(class vfwnmacc): Ditto.
+ 	(class vfwmsac): Ditto.
+ 	(class vfwnmsac): Ditto.
+ 	(class float_misc): Ditto.
+ 	(class fcmp): Ditto.
+ 	(class vfclass): Ditto.
+ 	(class vfcvt_x): Ditto.
+ 	(class vfcvt_rtz_x): Ditto.
+ 	(class vfcvt_f): Ditto.
+ 	(class vfwcvt_x): Ditto.
+ 	(class vfwcvt_rtz_x): Ditto.
+ 	(class vfwcvt_f): Ditto.
+ 	(class vfncvt_x): Ditto.
+ 	(class vfncvt_rtz_x): Ditto.
+ 	(class vfncvt_f): Ditto.
+ 	(class vfncvt_rod_f): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h:
+ 	* config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
+ 	(vsext): Ditto.
+ 	(vfadd): Ditto.
+ 	(vfsub): Ditto.
+ 	(vfrsub): Ditto.
+ 	(vfwadd): Ditto.
+ 	(vfwsub): Ditto.
+ 	(vfmul): Ditto.
+ 	(vfdiv): Ditto.
+ 	(vfrdiv): Ditto.
+ 	(vfwmul): Ditto.
+ 	(vfmacc): Ditto.
+ 	(vfnmsac): Ditto.
+ 	(vfmadd): Ditto.
+ 	(vfnmsub): Ditto.
+ 	(vfnmacc): Ditto.
+ 	(vfmsac): Ditto.
+ 	(vfnmadd): Ditto.
+ 	(vfmsub): Ditto.
+ 	(vfwmacc): Ditto.
+ 	(vfwnmacc): Ditto.
+ 	(vfwmsac): Ditto.
+ 	(vfwnmsac): Ditto.
+ 	(vfsqrt): Ditto.
+ 	(vfrsqrt7): Ditto.
+ 	(vfrec7): Ditto.
+ 	(vfmin): Ditto.
+ 	(vfmax): Ditto.
+ 	(vfsgnj): Ditto.
+ 	(vfsgnjn): Ditto.
+ 	(vfsgnjx): Ditto.
+ 	(vfneg): Ditto.
+ 	(vfabs): Ditto.
+ 	(vmfeq): Ditto.
+ 	(vmfne): Ditto.
+ 	(vmflt): Ditto.
+ 	(vmfle): Ditto.
+ 	(vmfgt): Ditto.
+ 	(vmfge): Ditto.
+ 	(vfclass): Ditto.
+ 	(vfmerge): Ditto.
+ 	(vfmv_v): Ditto.
+ 	(vfcvt_x): Ditto.
+ 	(vfcvt_xu): Ditto.
+ 	(vfcvt_rtz_x): Ditto.
+ 	(vfcvt_rtz_xu): Ditto.
+ 	(vfcvt_f): Ditto.
+ 	(vfwcvt_x): Ditto.
+ 	(vfwcvt_xu): Ditto.
+ 	(vfwcvt_rtz_x): Ditto.
+ 	(vfwcvt_rtz_xu): Ditto.
+ 	(vfwcvt_f): Ditto.
+ 	(vfncvt_x): Ditto.
+ 	(vfncvt_xu): Ditto.
+ 	(vfncvt_rtz_x): Ditto.
+ 	(vfncvt_rtz_xu): Ditto.
+ 	(vfncvt_f): Ditto.
+ 	(vfncvt_rod_f): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
+ 	(struct move_def): Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
+ 	(DEF_RVV_CONVERT_I_OPS): Ditto.
+ 	(DEF_RVV_CONVERT_U_OPS): Ditto.
+ 	(DEF_RVV_WCONVERT_I_OPS): Ditto.
+ 	(DEF_RVV_WCONVERT_U_OPS): Ditto.
+ 	(DEF_RVV_WCONVERT_F_OPS): Ditto.
+ 	(vfloat64m1_t): Ditto.
+ 	(vfloat64m2_t): Ditto.
+ 	(vfloat64m4_t): Ditto.
+ 	(vfloat64m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
+ 	(DEF_RVV_CONVERT_U_OPS): Ditto.
+ 	(DEF_RVV_WCONVERT_I_OPS): Ditto.
+ 	(DEF_RVV_WCONVERT_U_OPS): Ditto.
+ 	(DEF_RVV_WCONVERT_F_OPS): Ditto.
+ 	(DEF_RVV_F_OPS): Ditto.
+ 	(DEF_RVV_WEXTF_OPS): Ditto.
+ 	(required_extensions_p): Adjust for floating-point support.
+ 	(check_required_extensions): Ditto.
+ 	(unsigned_base_type_p): Ditto.
+ 	(get_mode_for_bitsize): Ditto.
+ 	(rvv_arg_type_info::get_base_vector_type): Ditto.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (v_f): New define.
+ 	(f): New define.
+ 	(f_v): New define.
+ 	(xu_v): New define.
+ 	(f_w): New define.
+ 	(xu_w): New define.
+ 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
+ 	(function_expander::arg_mode): New function.
+ 	* config/riscv/vector-iterators.md (sof): New iterator.
+ 	(vfrecp): Ditto.
+ 	(copysign): Ditto.
+ 	(n): Ditto.
+ 	(msac): Ditto.
+ 	(msub): Ditto.
+ 	(fixuns_trunc): Ditto.
+ 	(floatuns): Ditto.
+ 	* config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
+ 	(@pred_<optab><mode>): Ditto.
+ 	(@pred_<optab><mode>_scalar): Ditto.
+ 	(@pred_<optab><mode>_reverse_scalar): Ditto.
+ 	(@pred_<copysign><mode>): Ditto.
+ 	(@pred_<copysign><mode>_scalar): Ditto.
+ 	(@pred_mul_<optab><mode>): Ditto.
+ 	(pred_mul_<optab><mode>_undef_merge): Ditto.
+ 	(*pred_<madd_nmsub><mode>): Ditto.
+ 	(*pred_<macc_nmsac><mode>): Ditto.
+ 	(*pred_mul_<optab><mode>): Ditto.
+ 	(@pred_mul_<optab><mode>_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
+ 	(*pred_<madd_nmsub><mode>_scalar): Ditto.
+ 	(*pred_<macc_nmsac><mode>_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_scalar): Ditto.
+ 	(@pred_neg_mul_<optab><mode>): Ditto.
+ 	(pred_neg_mul_<optab><mode>_undef_merge): Ditto.
+ 	(*pred_<nmadd_msub><mode>): Ditto.
+ 	(*pred_<nmacc_msac><mode>): Ditto.
+ 	(*pred_neg_mul_<optab><mode>): Ditto.
+ 	(@pred_neg_mul_<optab><mode>_scalar): Ditto.
+ 	(*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
+ 	(*pred_<nmadd_msub><mode>_scalar): Ditto.
+ 	(*pred_<nmacc_msac><mode>_scalar): Ditto.
+ 	(*pred_neg_mul_<optab><mode>_scalar): Ditto.
+ 	(@pred_<misc_op><mode>): Ditto.
+ 	(@pred_class<mode>): Ditto.
+ 	(@pred_dual_widen_<optab><mode>): Ditto.
+ 	(@pred_dual_widen_<optab><mode>_scalar): Ditto.
+ 	(@pred_single_widen_<plus_minus:optab><mode>): Ditto.
+ 	(@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
+ 	(@pred_widen_mul_<optab><mode>): Ditto.
+ 	(@pred_widen_mul_<optab><mode>_scalar): Ditto.
+ 	(@pred_widen_neg_mul_<optab><mode>): Ditto.
+ 	(@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
+ 	(@pred_cmp<mode>): Ditto.
+ 	(*pred_cmp<mode>): Ditto.
+ 	(*pred_cmp<mode>_narrow): Ditto.
+ 	(@pred_cmp<mode>_scalar): Ditto.
+ 	(*pred_cmp<mode>_scalar): Ditto.
+ 	(*pred_cmp<mode>_scalar_narrow): Ditto.
+ 	(@pred_eqne<mode>_scalar): Ditto.
+ 	(*pred_eqne<mode>_scalar): Ditto.
+ 	(*pred_eqne<mode>_scalar_narrow): Ditto.
+ 	(@pred_merge<mode>_scalar): Ditto.
+ 	(@pred_fcvt_x<v_su>_f<mode>): Ditto.
+ 	(@pred_<fix_cvt><mode>): Ditto.
+ 	(@pred_<float_cvt><mode>): Ditto.
+ 	(@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
+ 	(@pred_widen_<fix_cvt><mode>): Ditto.
+ 	(@pred_widen_<float_cvt><mode>): Ditto.
+ 	(@pred_extend<mode>): Ditto.
+ 	(@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
+ 	(@pred_narrow_<fix_cvt><mode>): Ditto.
+ 	(@pred_narrow_<float_cvt><mode>): Ditto.
+ 	(@pred_trunc<mode>): Ditto.
+ 	(@pred_rod_trunc<mode>): Ditto.
+ 
+ 2023-02-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/106258
+ 	* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
+ 	cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
+ 	Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
+ 	* cgraphclones.cc (cgraph_node::create_clone): Likewise.
+ 
+ 2023-02-22  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* common.opt (-Wcomplain-wrong-lang): New.
+ 	* doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
+ 	* opts-common.cc (prune_options): Handle it.
+ 	* opts-global.cc (complain_wrong_lang): Use it.
+ 
+ 2023-02-21  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/108830
+ 	* doc/invoke.texi: Document -fno-analyzer-suppress-followups.
+ 
+ 2023-02-21  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	PR target/108876
+ 	* config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
+ 	for A0_REG.
+ 	* config/xtensa/xtensa.md (sibcall, sibcall_internal)
+ 	(sibcall_value, sibcall_value_internal): Add 'use' expression
+ 	for A0_REG.
+ 
+ 2023-02-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108691
+ 	* tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
+ 	assert about calls_setjmp not becoming true when it was false.
+ 
+ 2023-02-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108793
+ 	* tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
+ 	Use convert operands to niter_type when computing num.
+ 
+ 2023-02-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2023-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108691
+ 	* tree-cfg.cc (notice_special_calls): When the CFG is built
+ 	honor gimple_call_ctrl_altering_p.
+ 	* cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
+ 	temporarily if the call is not control-altering.
+ 	* calls.cc (emit_call_1): Do not add REG_SETJMP if
+ 	cfun->calls_setjmp is not set.  Do not alter cfun->calls_setjmp.
+ 
+ 2023-02-21  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
+ 	true if register A0 (return address register) when -Og is specified.
+ 
+ 2023-02-20  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/predicates.md
+ 	(general_x64constmem_operand): New predicate.
+ 	* config/i386/i386.md (*cmpqi_ext<mode>_1):
+ 	Use nonimm_x64constmem_operand.
+ 	(*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
+ 	(*addqi_ext<mode>_1): Ditto.
+ 	(*testqi_ext<mode>_1): Ditto.
+ 	(*andqi_ext<mode>_1): Ditto.
+ 	(*andqi_ext<mode>_1_cc): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_1): Ditto.
+ 	(*xorqi_ext<mode>_1_cc): Ditto.
+ 
+ 2023-02-20  Jakub Jelinek  <jakub2redhat.com>
+ 
+ 	PR target/108862
+ 	* config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
+ 	gen_umadddi4_highpart{,_le}.
+ 
+ 2023-02-20  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.md (prefetch): Use r instead of p for the
+ 	address operand.
+ 	(riscv_prefetchi_<mode>): Ditto.
+ 
+ 2023-02-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108816
+ 	* tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
+ 	versioning condition split prerequesite, assert required
+ 	invariant.
+ 
+ 2023-02-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108825
+ 	* tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
+ 	loop-local verfication only verify there's no pending SSA
+ 	update.
+ 
+ 2023-02-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108819
+ 	* tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
+ 	we have an SSA name as iv_2 as expected.
+ 
+ 2023-02-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108819
+ 	* tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
+ 
+ 2023-02-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/108832
+ 	* config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
+ 	* config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
+ 	function.
+ 	* config/i386/i386.md: Replace replace_rtx calls in all peephole2s
+ 	with ix86_replace_reg_with_reg.
+ 
+ 2023-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/invoke.texi (AVR Options): Update link to AVR-LibC.
+ 
+ 2023-02-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config.gcc (triplet_abi): Set its value based on $with_abi,
+ 	instead of $target.
+ 	(la_canonical_triplet): Set it after $triplet_abi is set
+ 	correctly.
+ 	* config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
+ 	multiarch tuple for lp64d "loongarch64-linux-gnu" (without
+ 	"f64" suffix).
+ 
+ 2023-02-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* match.pd: Remove #if GIMPLE around the
+ 	"1 - a" pattern
+ 
+ 2023-02-18  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* value-query.h (get_range_query): Return the global ranges
+ 	for a nullptr func.
+ 
+ 2023-02-17  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	* doc/invoke.texi (@item -Wall): Fix typo in
+ 	-Wuse-after-free.
+ 
+ 2023-02-17  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/108831
+ 	* config/i386/predicates.md
+ 	(nonimm_x64constmem_operand): New predicate.
+ 	* config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
+ 	(*subqi_ext<mode>_0): Ditto.
+ 	(*andqi_ext<mode>_0): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_0): Ditto.
+ 
+ 2023-02-17  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/108805
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Use
+ 	int_outermode instead of GET_MODE (tem) to prevent
+ 	VOIDmode from entering simplify_gen_subreg.
+ 
+ 2023-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108821
+ 	* tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
+ 	move volatile accesses.
+ 
+ 2023-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa.cc (ssa_undefined_value_p): Assert we are not
+ 	called on virtual operands.
+ 	* tree-ssa-sccvn.cc (vn_phi_lookup): Guard
+ 	ssa_undefined_value_p calls.
+ 	(vn_phi_insert): Likewise.
+ 	(set_ssa_val_to): Likewise.
+ 	(visit_phi): Avoid extra work with equivalences for
+ 	virtual operand PHIs.
+ 
+ 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
+ 	class.
+ 	(class mask_nlogic): Ditto.
+ 	(class mask_notlogic): Ditto.
+ 	(class vmmv): Ditto.
+ 	(class vmclr): Ditto.
+ 	(class vmset): Ditto.
+ 	(class vmnot): Ditto.
+ 	(class vcpop): Ditto.
+ 	(class vfirst): Ditto.
+ 	(class mask_misc): Ditto.
+ 	(class viota): Ditto.
+ 	(class vid): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
+ 	(vmnand): Ditto.
+ 	(vmandn): Ditto.
+ 	(vmxor): Ditto.
+ 	(vmor): Ditto.
+ 	(vmnor): Ditto.
+ 	(vmorn): Ditto.
+ 	(vmxnor): Ditto.
+ 	(vmmv): Ditto.
+ 	(vmclr): Ditto.
+ 	(vmset): Ditto.
+ 	(vmnot): Ditto.
+ 	(vcpop): Ditto.
+ 	(vfirst): Ditto.
+ 	(vmsbf): Ditto.
+ 	(vmsif): Ditto.
+ 	(vmsof): Ditto.
+ 	(viota): Ditto.
+ 	(vid): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
+ 	(struct mask_alu_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc: Ditto.
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
+ 	for dest it scalar RVV intrinsics.
+ 	* config/riscv/vector-iterators.md (sof): New iterator.
+ 	* config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
+ 	(@pred_<optab>not<mode>): New pattern.
+ 	(@pred_popcount<VB:mode><P:mode>): New pattern.
+ 	(@pred_ffs<VB:mode><P:mode>): New pattern.
+ 	(@pred_<misc_op><mode>): New pattern.
+ 	(@pred_iota<mode>): New pattern.
+ 	(@pred_series<mode>): New pattern.
+ 
+ 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
+ 	(vsbc): Ditto.
+ 	(vmerge): Ditto.
+ 	(vmv_v): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc: Ditto.
+ 
+ 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
+ 	* config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
+ 	(sew64_scalar_helper): New function.
+ 	* config/riscv/vector.md: Normalization.
+ 
+ 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
+ 	(vsm): Ditto.
+ 	(vsse): Ditto.
+ 	(vsoxei64): Ditto.
+ 	(vsub): Ditto.
+ 	(vand): Ditto.
+ 	(vor): Ditto.
+ 	(vxor): Ditto.
+ 	(vsll): Ditto.
+ 	(vsra): Ditto.
+ 	(vsrl): Ditto.
+ 	(vmin): Ditto.
+ 	(vmax): Ditto.
+ 	(vminu): Ditto.
+ 	(vmaxu): Ditto.
+ 	(vmul): Ditto.
+ 	(vmulh): Ditto.
+ 	(vmulhu): Ditto.
+ 	(vmulhsu): Ditto.
+ 	(vdiv): Ditto.
+ 	(vrem): Ditto.
+ 	(vdivu): Ditto.
+ 	(vremu): Ditto.
+ 	(vnot): Ditto.
+ 	(vsext): Ditto.
+ 	(vzext): Ditto.
+ 	(vwadd): Ditto.
+ 	(vwsub): Ditto.
+ 	(vwmul): Ditto.
+ 	(vwmulu): Ditto.
+ 	(vwmulsu): Ditto.
+ 	(vwaddu): Ditto.
+ 	(vwsubu): Ditto.
+ 	(vsbc): Ditto.
+ 	(vmsbc): Ditto.
+ 	(vnsra): Ditto.
+ 	(vmerge): Ditto.
+ 	(vmv_v): Ditto.
+ 	(vmsne): Ditto.
+ 	(vmslt): Ditto.
+ 	(vmsgt): Ditto.
+ 	(vmsle): Ditto.
+ 	(vmsge): Ditto.
+ 	(vmsltu): Ditto.
+ 	(vmsgtu): Ditto.
+ 	(vmsleu): Ditto.
+ 	(vmsgeu): Ditto.
+ 	(vnmsac): Ditto.
+ 	(vmadd): Ditto.
+ 	(vnmsub): Ditto.
+ 	(vwmacc): Ditto.
+ 	(vsadd): Ditto.
+ 	(vssub): Ditto.
+ 	(vssubu): Ditto.
+ 	(vaadd): Ditto.
+ 	(vasub): Ditto.
+ 	(vasubu): Ditto.
+ 	(vsmul): Ditto.
+ 	(vssra): Ditto.
+ 	(vssrl): Ditto.
+ 	(vnclip): Ditto.
+ 
+ 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
+ 	(@pred_<optab><mode>_scalar): Ditto.
+ 	(*pred_<optab><mode>_scalar): Ditto.
+ 	(*pred_<optab><mode>_extended_scalar): Ditto.
+ 
+ 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
+ 	(init_builtins): Ditto.
+ 	(mangle_builtin_type): Ditto.
+ 	(verify_type_context): Ditto.
+ 	(handle_pragma_vector):  Ditto.
+ 	(builtin_decl): Ditto.
+ 	(expand_builtin): Ditto.
+ 	(const_vec_all_same_in_range_p): Ditto.
+ 	(legitimize_move): Ditto.
+ 	(emit_vlmax_op): Ditto.
+ 	(emit_nonvlmax_op): Ditto.
+ 	(get_vlmul): Ditto.
+ 	(get_ratio): Ditto.
+ 	(get_ta): Ditto.
+ 	(get_ma): Ditto.
+ 	(get_avl_type): Ditto.
+ 	(calculate_ratio): Ditto.
+ 	(enum vlmul_type): Ditto.
+ 	(simm5_p): Ditto.
+ 	(neg_simm5_p): Ditto.
+ 	(has_vi_variant_p): Ditto.
+ 
+ 2023-02-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (simm32_p): Remove.
+ 	* config/riscv/riscv-v.cc (simm32_p): Ditto.
+ 	* config/riscv/vector.md: Use immediate_operand
+ 	instead of riscv_vector::simm32_p.
+ 
+ 2023-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/invoke.texi (Optimize Options): Reword the explanation
+ 	getting minimal, maximal and default values of a parameter.
+ 
+ 2023-02-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* addresses.h: Mechanically drop 'static' from 'static inline'
+ 	functions via s/^static inline/inline/g.
+ 	* asan.h: Likewise.
+ 	* attribs.h: Likewise.
+ 	* basic-block.h: Likewise.
+ 	* bitmap.h: Likewise.
+ 	* cfghooks.h: Likewise.
+ 	* cfgloop.h: Likewise.
+ 	* cgraph.h: Likewise.
+ 	* cselib.h: Likewise.
+ 	* data-streamer.h: Likewise.
+ 	* debug.h: Likewise.
+ 	* df.h: Likewise.
+ 	* diagnostic.h: Likewise.
+ 	* dominance.h: Likewise.
+ 	* dumpfile.h: Likewise.
+ 	* emit-rtl.h: Likewise.
+ 	* except.h: Likewise.
+ 	* expmed.h: Likewise.
+ 	* expr.h: Likewise.
+ 	* fixed-value.h: Likewise.
+ 	* gengtype.h: Likewise.
+ 	* gimple-expr.h: Likewise.
+ 	* gimple-iterator.h: Likewise.
+ 	* gimple-predict.h: Likewise.
+ 	* gimple-range-fold.h: Likewise.
+ 	* gimple-ssa.h: Likewise.
+ 	* gimple.h: Likewise.
+ 	* graphite.h: Likewise.
+ 	* hard-reg-set.h: Likewise.
+ 	* hash-map.h: Likewise.
+ 	* hash-set.h: Likewise.
+ 	* hash-table.h: Likewise.
+ 	* hwint.h: Likewise.
+ 	* input.h: Likewise.
+ 	* insn-addr.h: Likewise.
+ 	* internal-fn.h: Likewise.
+ 	* ipa-fnsummary.h: Likewise.
+ 	* ipa-icf-gimple.h: Likewise.
+ 	* ipa-inline.h: Likewise.
+ 	* ipa-modref.h: Likewise.
+ 	* ipa-prop.h: Likewise.
+ 	* ira-int.h: Likewise.
+ 	* ira.h: Likewise.
+ 	* lra-int.h: Likewise.
+ 	* lra.h: Likewise.
+ 	* lto-streamer.h: Likewise.
+ 	* memmodel.h: Likewise.
+ 	* omp-general.h: Likewise.
+ 	* optabs-query.h: Likewise.
+ 	* optabs.h: Likewise.
+ 	* plugin.h: Likewise.
+ 	* pretty-print.h: Likewise.
+ 	* range.h: Likewise.
+ 	* read-md.h: Likewise.
+ 	* recog.h: Likewise.
+ 	* regs.h: Likewise.
+ 	* rtl-iter.h: Likewise.
+ 	* rtl.h: Likewise.
+ 	* sbitmap.h: Likewise.
+ 	* sched-int.h: Likewise.
+ 	* sel-sched-ir.h: Likewise.
+ 	* sese.h: Likewise.
+ 	* sparseset.h: Likewise.
+ 	* ssa-iterators.h: Likewise.
+ 	* system.h: Likewise.
+ 	* target-globals.h: Likewise.
+ 	* target.h: Likewise.
+ 	* timevar.h: Likewise.
+ 	* tree-chrec.h: Likewise.
+ 	* tree-data-ref.h: Likewise.
+ 	* tree-iterator.h: Likewise.
+ 	* tree-outof-ssa.h: Likewise.
+ 	* tree-phinodes.h: Likewise.
+ 	* tree-scalar-evolution.h: Likewise.
+ 	* tree-sra.h: Likewise.
+ 	* tree-ssa-alias.h: Likewise.
+ 	* tree-ssa-live.h: Likewise.
+ 	* tree-ssa-loop-manip.h: Likewise.
+ 	* tree-ssa-loop.h: Likewise.
+ 	* tree-ssa-operands.h: Likewise.
+ 	* tree-ssa-propagate.h: Likewise.
+ 	* tree-ssa-sccvn.h: Likewise.
+ 	* tree-ssa.h: Likewise.
+ 	* tree-ssanames.h: Likewise.
+ 	* tree-streamer.h: Likewise.
+ 	* tree-switch-conversion.h: Likewise.
+ 	* tree-vectorizer.h: Likewise.
+ 	* tree.h: Likewise.
+ 	* wide-int.h: Likewise.
+ 
+ 2023-02-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108657
+ 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
+ 	exists and is not a SSA_NAME, call ao_ref_init even if the stmt
+ 	is a call to internal or builtin function.
+ 
+ 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/invoke.texi (C++ Dialect Options): Suggest adding a
+ 	using-declaration to unhide functions.
+ 
+ 2023-02-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108783
+ 	* tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
+ 	is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
+ 	t to curr->op.  Otherwise, punt if either newop1 or newop2 are
+ 	SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
+ 
+ 2023-02-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108791
+ 	* tree-ssa-forwprop.cc (optimize_vector_load): Build
+ 	the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
+ 	type.
+ 
+ 2023-02-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/90458
+ 	* config/i386/i386.cc (ix86_compute_frame_layout): Disable the
+ 	effects of -fstack-clash-protection for TARGET_STACK_PROBE.
+ 	(ix86_expand_prologue): Likewise.
+ 
+ 2023-02-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+ 
+ 	* config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
+ 
+ 2023-02-15  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*cmpqi_ext<mode>_1): Use
+ 	int248_register_operand predicate in zero_extract sub-RTX.
+ 	(*cmpqi_ext<mode>_2): Ditto.
+ 	(*cmpqi_ext<mode>_3): Ditto.
+ 	(*cmpqi_ext<mode>_4): Ditto.
+ 	(*extzvqi_mem_rex64): Ditto.
+ 	(*extzvqi): Ditto.
+ 	(*insvqi_1_mem_rex64): Ditto.
+ 	(@insv<mode>_1): Ditto.
+ 	(*insvqi_1): Ditto.
+ 	(*insvqi_2): Ditto.
+ 	(*insvqi_3): Ditto.
+ 	(*extendqi<SWI24:mode>_ext_1): Ditto.
+ 	(*addqi_ext<mode>_1): Ditto.
+ 	(*addqi_ext<mode>_2): Ditto.
+ 	(*subqi_ext<mode>_2): Ditto.
+ 	(*testqi_ext<mode>_1): Ditto.
+ 	(*testqi_ext<mode>_2): Ditto.
+ 	(*andqi_ext<mode>_1): Ditto.
+ 	(*andqi_ext<mode>_1_cc): Ditto.
+ 	(*andqi_ext<mode>_2): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_1): Ditto.
+ 	(*<any_or:code>qi_ext<mode>_2): Ditto.
+ 	(*xorqi_ext<mode>_1_cc): Ditto.
+ 	(*negqi_ext<mode>_2): Ditto.
+ 	(*ashlqi_ext<mode>_2): Ditto.
+ 	(*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
+ 
+ 2023-02-15  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/predicates.md (int248_register_operand):
+ 	Rename from extr_register_operand.
+ 	* config/i386/i386.md (*extv<mode>): Update for renamed predicate.
+ 	(*extzx<mode>): Ditto.
+ 	(*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
+ 	(*ashl<mode>3_mask): Ditto.
+ 	(*<any_shiftrt:insn><mode>3_mask): Ditto.
+ 	(*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
+ 	(*<any_rotate:insn><mode>3_mask): Ditto.
+ 	(*<btsc><mode>_mask): Ditto.
+ 	(*btr<mode>_mask): Ditto.
+ 	(*jcc_bt<mode>_mask_1): Ditto.
+ 
+ 2023-02-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/26854
+ 	* df-core.cc (df_worklist_propagate_forward): Put later
+ 	blocks on worklist and only earlier blocks on pending.
+ 	(df_worklist_propagate_backward): Likewise.
+ 	(df_worklist_dataflow_doublequeue): Change the iteration
+ 	to process new blocks in the same iteration if that
+ 	maintains the iteration order.
+ 
+ 2023-02-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR middle-end/106080
+ 	* gimple-ssa-warn-access.cc (is_auto_decl): Remove.  Use auto_var_p
+ 	instead.
+ 
+ 2023-02-15  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/predicates.md: Refine codes.
+ 	* config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
+ 	* config/riscv/riscv-v.cc: Refine codes.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
+ 	enum.
+ 	(class imac): New class.
+ 	(enum widen_ternop_type): New enum.
+ 	(class iwmac): New class.
+ 	(BASE): New class.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
+ 	(vnmsac): Ditto.
+ 	(vmadd): Ditto.
+ 	(vnmsub): Ditto.
+ 	(vwmacc): Ditto.
+ 	(vwmaccu): Ditto.
+ 	(vwmaccsu): Ditto.
+ 	(vwmaccus): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_builder::apply_predication): Adjust for multiply-add support.
+ 	(function_expander::add_vundef_operand): Refine codes.
+ 	(function_expander::use_ternop_insn): New function.
+ 	(function_expander::use_widen_ternop_insn): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h: New function.
+ 	* config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
+ 	(pred_mul_<optab><mode>_undef_merge): Ditto.
+ 	(*pred_<madd_nmsub><mode>): Ditto.
+ 	(*pred_<macc_nmsac><mode>): Ditto.
+ 	(*pred_mul_<optab><mode>): Ditto.
+ 	(@pred_mul_<optab><mode>_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
+ 	(*pred_<madd_nmsub><mode>_scalar): Ditto.
+ 	(*pred_<macc_nmsac><mode>_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
+ 	(*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
+ 	(*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
+ 	(*pred_mul_<optab><mode>_extended_scalar): Ditto.
+ 	(@pred_widen_mul_plus<su><mode>): Ditto.
+ 	(@pred_widen_mul_plus<su><mode>_scalar): Ditto.
+ 	(@pred_widen_mul_plussu<mode>): Ditto.
+ 	(@pred_widen_mul_plussu<mode>_scalar): Ditto.
+ 	(@pred_widen_mul_plusus<mode>_scalar): Ditto.
+ 
+ 2023-02-15  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/predicates.md (vector_mask_operand): Refine the codes.
+ 	(vector_all_trues_mask_operand): New predicate.
+ 	(vector_undef_operand): New predicate.
+ 	(ltge_operator): New predicate.
+ 	(comparison_except_ltge_operator): New predicate.
+ 	(comparison_except_eqge_operator): New predicate.
+ 	(ge_operator): New predicate.
+ 	* config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
+ 	(vmsne): Ditto.
+ 	(vmslt): Ditto.
+ 	(vmsgt): Ditto.
+ 	(vmsle): Ditto.
+ 	(vmsge): Ditto.
+ 	(vmsltu): Ditto.
+ 	(vmsgtu): Ditto.
+ 	(vmsleu): Ditto.
+ 	(vmsgeu): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(struct return_mask_def): Adjust for compare support.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_compare_insn): New function.
+ 	* config/riscv/riscv-vector-builtins.h
+ 	(function_expander::add_integer_operand): Ditto.
+ 	* config/riscv/riscv.cc (riscv_print_operand): Add compare support.
+ 	* config/riscv/riscv.md: Add vector min/max attributes.
+ 	* config/riscv/vector-iterators.md (xnor): New iterator.
+ 	* config/riscv/vector.md (@pred_cmp<mode>): New pattern.
+ 	(*pred_cmp<mode>): Ditto.
+ 	(*pred_cmp<mode>_narrow): Ditto.
+ 	(@pred_ltge<mode>): Ditto.
+ 	(*pred_ltge<mode>): Ditto.
+ 	(*pred_ltge<mode>_narrow): Ditto.
+ 	(@pred_cmp<mode>_scalar): Ditto.
+ 	(*pred_cmp<mode>_scalar): Ditto.
+ 	(*pred_cmp<mode>_scalar_narrow): Ditto.
+ 	(@pred_eqne<mode>_scalar): Ditto.
+ 	(*pred_eqne<mode>_scalar): Ditto.
+ 	(*pred_eqne<mode>_scalar_narrow): Ditto.
+ 	(*pred_cmp<mode>_extended_scalar): Ditto.
+ 	(*pred_cmp<mode>_extended_scalar_narrow): Ditto.
+ 	(*pred_eqne<mode>_extended_scalar): Ditto.
+ 	(*pred_eqne<mode>_extended_scalar_narrow): Ditto.
+ 	(@pred_ge<mode>_scalar): Ditto.
+ 	(@pred_<optab><mode>): Ditto.
+ 	(@pred_n<optab><mode>): Ditto.
+ 	(@pred_<optab>n<mode>): Ditto.
+ 	(@pred_not<mode>): Ditto.
+ 
+ 2023-02-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/108679
+ 	* ipa-sra.cc (push_param_adjustments_for_index): Do not omit
+ 	creation of non-scalar replacements even if IPA-CP knows their
+ 	contents.
+ 
+ 2023-02-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/108787
+ 	PR target/103109
+ 	* config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
+ 	expander, change operand 3 to be TImode, emit maddlddi4 and
+ 	umadddi4_highpart{,_le} with its low half and finally add the high
+ 	half to the result.
+ 
+ 2023-02-15  Martin Liska  <mliska@suse.cz>
+ 
+ 	* doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
+ 
+ 2023-02-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
+ 	for with_poison and alias worklist to it.
+ 	(sanitize_asan_mark_poison): Likewise.
+ 
+ 2023-02-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/108738
+ 	* config/i386/i386-features.cc (scalar_chain::add_to_queue):
+ 	Combine bitmap test and set.
+ 	(scalar_chain::add_insn): Likewise.
+ 	(scalar_chain::analyze_register_chain): Remove redundant
+ 	attempt to add to queue and instead strengthen assert.
+ 	Sink common attempts to mark the def dual-mode.
+ 	(scalar_chain::add_to_queue): Remove redundant insn bitmap
+ 	check.
+ 
+ 2023-02-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/108738
+ 	* config/i386/i386-features.cc (convert_scalars_to_vector):
+ 	Switch candidates bitmaps to tree view before building the chains.
+ 
+ 2023-02-15  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
+ 	"failure trying to reload" call.
+ 
+ 2023-02-15  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* gdbinit.in (phrs): New command.
+ 	* sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
+ 	* ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
+ 
+ 2023-02-14  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/108790
+ 	* config/bpf/constraints.md (q): New memory constraint.
+ 	* config/bpf/bpf.md (zero_extendhidi2): Use it here.
+ 	(zero_extendqidi2): Likewise.
+ 	(zero_extendsidi2): Likewise.
+ 	(*mov<MM:mode>): Likewise.
+ 
+ 2023-02-14  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/108355
+ 	PR tree-optimization/96921
+ 	* match.pd: Add pattern for "1 - bool_val".
+ 
+ 2023-02-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
+ 	basic block index hashing on the availability of ->cclhs.
+ 	(vn_phi_eq): Avoid re-doing sanity checks for CSE but
+ 	rely on ->cclhs availability.
+ 	(vn_phi_lookup): Set ->cclhs only when we are eventually
+ 	going to CSE the PHI.
+ 	(vn_phi_insert): Likewise.
+ 
+ 2023-02-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gimplify.cc (gimplify_save_expr): Add missing guard.
+ 
+ 2023-02-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108782
+ 	* tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
+ 	Make sure we're not vectorizing an inner loop.
+ 
+ 2023-02-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/108777
+ 	* params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
+ 	* asan.h (asan_memfn_rtl): Declare.
+ 	* asan.cc (asan_memfn_rtls): New variable.
+ 	(asan_memfn_rtl): New function.
+ 	* builtins.cc (expand_builtin): If
+ 	param_asan_kernel_mem_intrinsic_prefix and function is
+ 	kernel-{,hw}address sanitized, emit calls to
+ 	__{,hw}asan_{memcpy,memmove,memset} rather than
+ 	{memcpy,memmove,memset}.  Use sanitize_flags_p (SANITIZE_ADDRESS)
+ 	instead of flag_sanitize & SANITIZE_ADDRESS to check if
+ 	asan_intercepted_p functions shouldn't be expanded inline.
+ 
+ 2023-02-14  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/96373
+ 	* tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
+ 	operations on the loop mask.  Reject partial vectors if this isn't
+ 	possible.
+ 
+ 2023-02-13  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/108681
+ 	* lra-spills.cc (lra_final_code_change): Extend subreg replacement
+ 	code to handle bare uses and clobbers.
+ 
+ 2023-02-13  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
+ 	caller_save_p flag when clearing defined_p flag.
+ 	(setup_reg_equiv): Ditto.
+ 	* lra-constraints.cc (lra_constraints): Ditto.
+ 
+ 2023-02-13  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/108516
+ 	* config/i386/predicates.md (extr_register_operand):
+ 	New special predicate.
+ 	* config/i386/i386.md (*extv<mode>): Use extr_register_operand
+ 	as operand 1 predicate.
+ 	(*exzv<mode>): Ditto.
+ 	(*extendqi<SWI24:mode>_ext_1): New insn pattern.
+ 
+ 2023-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/28614
+ 	* tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
+ 	walking all edges in most cases.
+ 	(vn_nary_op_insert_pieces_predicated): Avoid repeated
+ 	calls to can_track_predicate_on_edge unless checking is
+ 	enabled.
+ 	(process_bb): Instead call it once here for each edge
+ 	we register possibly multiple predicates on.
+ 
+ 2023-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108691
+ 	* tree-cfg.cc (notice_special_calls): When the CFG is built
+ 	honor gimple_call_ctrl_altering_p.
+ 	* cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
+ 	temporarily if the call is not control-altering.
+ 	* calls.cc (emit_call_1): Do not add REG_SETJMP if
+ 	cfun->calls_setjmp is not set.  Do not alter cfun->calls_setjmp.
+ 
+ 2023-02-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	PR target/108102
+ 	* config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
+ 	(struct s390_sched_state): Initialise to zero.
+ 	(s390_sched_variable_issue): For better debuggability also emit
+ 	the current side.
+ 	(s390_sched_init): Unconditionally reset scheduler state.
+ 
+ 2023-02-13  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* ifcvt.h (noce_if_info::cond_inverted): New field.
+ 	* ifcvt.cc (cond_move_convert_if_block): Swap the then and else
+ 	values when cond_inverted is true.
+ 	(noce_find_if_block): Allow the condition to be inverted when
+ 	handling conditional moves.
+ 
+ 2023-02-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/predicates.md (execute_operation): Use
+ 	constrain_operands instead of extract_constrain_insn in order to
+ 	determine wheter there exists a valid alternative.
+ 
+ 2023-02-13  Claudiu Zissulescu  <claziss@gmail.com>
+ 
+ 	* common/config/arc/arc-common.cc (arc_option_optimization_table):
+ 	Remove millicode from list.
+ 
+ 2023-02-13  Martin Liska  <mliska@suse.cz>
+ 
+ 	* doc/invoke.texi: Document ira-simple-lra-insn-threshold.
+ 
+ 2023-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106722
+ 	* tree-ssa-dce.cc (mark_last_stmt_necessary): Return
+ 	whether we marked a stmt.
+ 	(mark_control_dependent_edges_necessary): When
+ 	mark_last_stmt_necessary didn't mark any stmt make sure
+ 	to mark its control dependent edges.
+ 	(propagate_necessity): Likewise.
+ 
+ 2023-02-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
+ 	(DWARF_FRAME_REGISTERS): New.
+ 	(DWARF_REG_TO_UNWIND_COLUMN): New.
+ 
+ 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/sourcebuild.texi: Remove (broken) direct reference to
+ 	"The GNU configure and build system".
+ 
+ 2023-02-12  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
+ 	gen_add3_insn to gen_rtx_SET.
+ 	(riscv_adjust_libcall_cfi_epilogue): Likewise.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
+ 	(class vnclip): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
+ 	(vasub): Ditto.
+ 	(vaaddu): Ditto.
+ 	(vasubu): Ditto.
+ 	(vsmul): Ditto.
+ 	(vssra): Ditto.
+ 	(vssrl): Ditto.
+ 	(vnclipu): Ditto.
+ 	(vnclip): Ditto.
+ 	* config/riscv/vector-iterators.md (su): Add instruction.
+ 	(aadd): Ditto.
+ 	(vaalu): Ditto.
+ 	* config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
+ 	(@pred_<sat_op><mode>_scalar): Ditto.
+ 	(*pred_<sat_op><mode>_scalar): Ditto.
+ 	(*pred_<sat_op><mode>_extended_scalar): Ditto.
+ 	(@pred_narrow_clip<v_su><mode>): Ditto.
+ 	(@pred_narrow_clip<v_su><mode>_scalar): Ditto.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/constraints.md (Wbr): Remove unused constraint.
+ 	* config/riscv/predicates.md: Fix move operand predicate.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
+ 	(class vncvt_x): Ditto.
+ 	(class vmerge): Ditto.
+ 	(class vmv_v): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
+ 	(vsrl): Ditto.
+ 	(vnsrl): Ditto.
+ 	(vnsra): Ditto.
+ 	(vncvt_x): Ditto.
+ 	(vmerge): Ditto.
+ 	(vmv_v): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
+ 	(struct move_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
+ 	(DEF_RVV_WEXTU_OPS): Ditto
+ 	* config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
+ 	(v_v): Ditto.
+ 	(v_x): Ditto.
+ 	(x_w): Ditto.
+ 	(x): Ditto.
+ 	* config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
+ 	* config/riscv/vector-iterators.md (nmsac):New iterator.
+ 	(nmsub): New iterator.
+ 	* config/riscv/vector.md (@pred_merge<mode>): New pattern.
+ 	(@pred_merge<mode>_scalar): New pattern.
+ 	(*pred_merge<mode>_scalar): New pattern.
+ 	(*pred_merge<mode>_extended_scalar): New pattern.
+ 	(@pred_narrow_<optab><mode>): New pattern.
+ 	(@pred_narrow_<optab><mode>_scalar): New pattern.
+ 	(@pred_trunc<mode>): New pattern.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
+ 	(class vmsbc): Ditto.
+ 	(BASE): Define new class.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
+ 	(vmsbc): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
+ 	New class.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_exact_insn): Adjust for new support
+ 	* config/riscv/riscv-vector-builtins.h
+ 	(function_base::has_merge_operand_p): New function.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 	* config/riscv/vector.md (@pred_madc<mode>): New pattern.
+ 	(@pred_msbc<mode>): Ditto.
+ 	(@pred_madc<mode>_scalar): Ditto.
+ 	(@pred_msbc<mode>_scalar): Ditto.
+ 	(*pred_madc<mode>_scalar): Ditto.
+ 	(*pred_madc<mode>_extended_scalar): Ditto.
+ 	(*pred_msbc<mode>_scalar): Ditto.
+ 	(*pred_msbc<mode>_extended_scalar): Ditto.
+ 	(@pred_madc<mode>_overflow): Ditto.
+ 	(@pred_msbc<mode>_overflow): Ditto.
+ 	(@pred_madc<mode>_overflow_scalar): Ditto.
+ 	(@pred_msbc<mode>_overflow_scalar): Ditto.
+ 	(*pred_madc<mode>_overflow_scalar): Ditto.
+ 	(*pred_madc<mode>_overflow_extended_scalar): Ditto.
+ 	(*pred_msbc<mode>_overflow_scalar): Ditto.
+ 	(*pred_msbc<mode>_overflow_extended_scalar): Ditto.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
+ 	* config/riscv/riscv-v.cc (simm32_p): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
+ 	(class vsbc): Ditto.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
+ 	(vsbc): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(struct no_mask_policy_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	(function_expander::use_exact_insn): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
+ 	(function_base::use_mask_predication_p): New function.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 	* config/riscv/vector.md (@pred_adc<mode>): New pattern.
+ 	(@pred_sbc<mode>): Ditto.
+ 	(@pred_adc<mode>_scalar): Ditto.
+ 	(@pred_sbc<mode>_scalar): Ditto.
+ 	(*pred_adc<mode>_scalar): Ditto.
+ 	(*pred_adc<mode>_extended_scalar): Ditto.
+ 	(*pred_sbc<mode>_scalar): Ditto.
+ 	(*pred_sbc<mode>_extended_scalar): Ditto.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: use "zero" reg.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
+ 	class.
+ 	(class vwmulsu): Ditto.
+ 	(class vwcvt): Ditto.
+ 	(BASE): Add integer widening support.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto
+ 	* config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
+ 	(vwsub): New class.
+ 	(vwmul): New class.
+ 	(vwmulu): New class.
+ 	(vwmulsu): New class.
+ 	(vwaddu): New class.
+ 	(vwsubu): New class.
+ 	(vwcvt_x): New class.
+ 	(vwcvtu_x): New class.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
+ 	class.
+ 	(struct widen_alu_def): New class.
+ 	(SHAPE): New class.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: New class.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(rvv_arg_type_info::get_base_vector_type): Add integer widening support.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
+ 	(x_v): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
+ 	widening support.
+ 	* config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
+ 	* config/riscv/riscv.h (X0_REGNUM): New constant.
+ 	* config/riscv/vector-iterators.md: New iterators.
+ 	* config/riscv/vector.md
+ 	(@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
+ 	pattern.
+ 	(@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
+ 	Ditto.
+ 	(@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
+ 	(@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
+ 	Ditto.
+ 	(@pred_widen_mulsu<mode>): Ditto.
+ 	(@pred_widen_mulsu<mode>_scalar): Ditto.
+ 	(@pred_<optab><mode>): Ditto.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 	    kito-cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
+ 	API support.
+ 	(vmulhu): Ditto.
+ 	(vmulhsu): Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
+ 	New macro.
+ 	(DEF_RVV_FULL_V_U_OPS): Ditto.
+ 	(vint8mf8_t): Ditto.
+ 	(vint8mf4_t): Ditto.
+ 	(vint8mf2_t): Ditto.
+ 	(vint8m1_t): Ditto.
+ 	(vint8m2_t): Ditto.
+ 	(vint8m4_t): Ditto.
+ 	(vint8m8_t): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vuint8m8_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
+ 	(DEF_RVV_FULL_V_U_OPS): Ditto.
+ 	(check_required_extensions): Add vmulh support.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
+ 	(enum rvv_base_type): Ditto.
+ 	* config/riscv/riscv.opt: Add 'V' extension flag.
+ 	* config/riscv/vector-iterators.md (su): New iterator.
+ 	* config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
+ 	(@pred_mulh<v_su><mode>_scalar): Ditto.
+ 	(*pred_mulh<v_su><mode>_scalar): Ditto.
+ 	(*pred_mulh<v_su><mode>_extended_scalar): Ditto.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/iterators.md: Add sign_extend/zero_extend.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
+ 	define.
+ 	(vzext): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
+ 	for vsext/vzext support.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
+ 	macro define.
+ 	(DEF_RVV_QEXTI_OPS): Ditto.
+ 	(DEF_RVV_OEXTI_OPS): Ditto.
+ 	(DEF_RVV_WEXTU_OPS): Ditto.
+ 	(DEF_RVV_QEXTU_OPS): Ditto.
+ 	(DEF_RVV_OEXTU_OPS): Ditto.
+ 	(vint16mf4_t): Ditto.
+ 	(vint16mf2_t): Ditto.
+ 	(vint16m1_t): Ditto.
+ 	(vint16m2_t): Ditto.
+ 	(vint16m4_t): Ditto.
+ 	(vint16m8_t): Ditto.
+ 	(vint32mf2_t): Ditto.
+ 	(vint32m1_t): Ditto.
+ 	(vint32m2_t): Ditto.
+ 	(vint32m4_t): Ditto.
+ 	(vint32m8_t): Ditto.
+ 	(vint64m1_t): Ditto.
+ 	(vint64m2_t): Ditto.
+ 	(vint64m4_t): Ditto.
+ 	(vint64m8_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint16m8_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	(vuint32m8_t): Ditto.
+ 	(vuint64m1_t): Ditto.
+ 	(vuint64m2_t): Ditto.
+ 	(vuint64m4_t): Ditto.
+ 	(vuint64m8_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
+ 	(DEF_RVV_QEXTI_OPS): Ditto.
+ 	(DEF_RVV_OEXTI_OPS): Ditto.
+ 	(DEF_RVV_WEXTU_OPS): Ditto.
+ 	(DEF_RVV_QEXTU_OPS): Ditto.
+ 	(DEF_RVV_OEXTU_OPS): Ditto.
+ 	(rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
+ 	support.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
+ 	* config/riscv/vector-iterators.md (z): New attribute.
+ 	* config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
+ 	(@pred_<optab><mode>_vf4): Ditto.
+ 	(@pred_<optab><mode>_vf8): Ditto.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/iterators.md: Add saturating Addition && Subtraction.
+ 	* config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
+ 	(vssub): Ditto.
+ 	(vsaddu): Ditto.
+ 	(vssubu): Ditto.
+ 	* config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
+ 	support.
+ 	(sll.vv): Ditto.
+ 	(%3,%v4): Ditto.
+ 	(%3,%4): Ditto.
+ 	* config/riscv/vector.md (@pred_<optab><mode>): New pattern.
+ 	(@pred_<optab><mode>_scalar): New pattern.
+ 	(*pred_<optab><mode>_scalar): New pattern.
+ 	(*pred_<optab><mode>_extended_scalar): New pattern.
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/iterators.md: Add neg and not.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
+ 	into alu.
+ 	(vsub): Ditto.
+ 	(vand): Ditto.
+ 	(vor): Ditto.
+ 	(vxor): Ditto.
+ 	(vsll): Ditto.
+ 	(vsra): Ditto.
+ 	(vsrl): Ditto.
+ 	(vmin): Ditto.
+ 	(vmax): Ditto.
+ 	(vminu): Ditto.
+ 	(vmaxu): Ditto.
+ 	(vmul): Ditto.
+ 	(vdiv): Ditto.
+ 	(vrem): Ditto.
+ 	(vdivu): Ditto.
+ 	(vremu): Ditto.
+ 	(vrsub): Ditto.
+ 	(vneg): Ditto.
+ 	(vnot): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
+ 	(struct alu_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 	* config/riscv/vector.md (@pred_<optab><mode>): New pattern
+ 
+ 2023-02-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
+ 
+ 2023-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/108605
+ 	* ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
+ 	item->offset bit position is too large to be representable as
+ 	unsigned int byte position.
+ 
+ 2023-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
+ 
+ 2023-02-10  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira.cc (update_equiv_regs): Set up ira_reg_equiv for
+ 	valid_combine only when ira_use_lra_p is true.
+ 
+ 2023-02-10  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* params.opt (ira-simple-lra-insn-threshold): Add new param.
+ 	* ira.cc (ira): Use the param to switch on simple LRA.
+ 
+ 2023-02-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108687
+ 	* gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
+ 	back to RFD_NONE mode for calculations.
+ 	(ranger_cache::propagate_cache): Call the internal edge range API
+ 	with RFD_READ_ONLY instead of changing the external routine.
+ 
+ 2023-02-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108520
+ 	* gimple-range-infer.cc (check_assume_func): Invoke
+ 	gimple_range_global directly instead using global_range_query.
+ 	* value-query.cc (get_range_global): Add function context and
+ 	avoid calling nonnull_arg_p if not cfun.
+ 	(gimple_range_global): Add function context pointer.
+ 	* value-query.h (imple_range_global): Add function context.
+ 
+ 2023-02-10  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/constraints.md (Wdm): Adjust constraint.
+ 	(Wbr): New constraint.
+ 	* config/riscv/predicates.md (reg_or_int_operand): New predicate.
+ 	* config/riscv/riscv-protos.h (emit_pred_op): Remove function.
+ 	(emit_vlmax_op): New function.
+ 	(emit_nonvlmax_op): Ditto.
+ 	(simm32_p): Ditto.
+ 	(neg_simm5_p): Ditto.
+ 	(has_vi_variant_p): Ditto.
+ 	* config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
+ 	(emit_vlmax_op): New function.
+ 	(emit_nonvlmax_op): Ditto.
+ 	(expand_const_vector): Adjust function.
+ 	(legitimize_move): Ditto.
+ 	(simm32_p): New function.
+ 	(simm5_p): Ditto.
+ 	(neg_simm5_p): Ditto.
+ 	(has_vi_variant_p): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
+ 	unsigned cases.
+ 	(vmax): Ditto.
+ 	(vminu): Remove signed cases.
+ 	(vmaxu): Ditto.
+ 	(vdiv): Remove unsigned cases.
+ 	(vrem): Ditto.
+ 	(vdivu): Remove signed cases.
+ 	(vremu): Ditto.
+ 	(vadd): Adjust.
+ 	(vsub): Ditto.
+ 	(vrsub): New class.
+ 	(vand): Adjust.
+ 	(vor): Ditto.
+ 	(vxor): Ditto.
+ 	(vmul): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
+ 	* config/riscv/riscv.h: change VL/VTYPE as fixed reg.
+ 	* config/riscv/vector-iterators.md: New iterators.
+ 	* config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
+ 	support.
+ 	(@pred_<optab><mode>_scalar): New pattern.
+ 	(@pred_sub<mode>_reverse_scalar): Ditto.
+ 	(*pred_<optab><mode>_scalar): Ditto.
+ 	(*pred_<optab><mode>_extended_scalar): Ditto.
+ 	(*pred_sub<mode>_reverse_scalar): Ditto.
+ 	(*pred_sub<mode>_extended_reverse_scalar): Ditto.
+ 
+ 2023-02-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108724
+ 	* tree-vect-stmts.cc (vectorizable_operation): Avoid
+ 	using word_mode vectors when vector lowering will
+ 	decompose them to elementwise operations.
+ 
+ 2023-02-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Revert:
+ 	2023-02-09  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR target/100758
+ 	* doc/extend.texi: Document that the function
+ 	does not work correctly for old VIA processors.
+ 
+ 2023-02-10  Andrew Pinski  <apinski@marvell.com>
+ 	    Andrew Macleod   <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108684
+ 	* tree-ssa-dce.cc (simple_dce_from_worklist):
+ 	Check all ssa names and not just non-vdef ones
+ 	before accepting the inline-asm.
+ 	Call unlink_stmt_vdef on the statement before
+ 	removing it.
+ 
+ 2023-02-09  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
+ 	* ira.cc (validate_equiv_mem): Check memref address variance.
+ 	(no_equiv): Clear caller_save_p flag.
+ 	(update_equiv_regs): Define caller save equivalence for
+ 	valid_combine.
+ 	(setup_reg_equiv): Clear defined_p flag for caller save equivalence.
+ 	* lra-constraints.cc (lra_copy_reg_equiv): Add new arg
+ 	call_save_p.  Use caller save equivalence depending on the arg.
+ 	(split_reg): Adjust the call.
+ 
+ 2023-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/100758
+ 	* common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
+ 	(cpu_indicator_init): Call get_available_features for all CPUs with
+ 	max_level >= 1, rather than just Intel, AMD or Zhaoxin.  Formatting
+ 	fixes.
+ 
+ 2023-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108688
+ 	* match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
+ 	of BIT_INSERT_EXPR extracting exactly all inserted bits even
+ 	when without mode precision.  Formatting fixes.
+ 
+ 2023-02-09  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/108688
+ 	* match.pd (bit_field_ref [bit_insert]): Avoid generating
+ 	BIT_FIELD_REFs of non-mode-precision integral operands.
+ 
+ 2023-02-09  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR target/100758
+ 	* doc/extend.texi: Document that the function
+ 	does not work correctly for old VIA processors.
+ 
+ 2023-02-09  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* lto-wrapper.cc (merge_and_complain): Handle
+ 	-funwind-tables and -fasynchronous-unwind-tables.
+ 	(append_compiler_options): Likewise.
+ 
+ 2023-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/26854
+ 	* tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
+ 	view around insert_updated_phi_nodes_for.
+ 	* tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
+ 	in tree view.
+ 	(walk_aliased_vdefs_1): Likewise.
+ 
+ 2023-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
+ 
+ 2023-02-08  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	PR target/108505
+ 	* config.gcc (tm_mlib_file): Define new variable.
+ 
+ 2023-02-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108692
+ 	* tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
+ 	widened_code which is different from code, don't call
+ 	vect_look_through_possible_promotion but instead just check op is
+ 	SSA_NAME with integral type for which vect_is_simple_use is true
+ 	and call set_op on this_unprom.
+ 
+ 2023-02-08  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
+ 	declaration.
+ 	* config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
+ 	definition.
+ 	* config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
+ 	to 'aarch_ra_sign_key'.
+ 	* config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
+ 	declaration.
+ 	* config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
+ 	* config/arm/arm.cc (enum aarch_key_type): Remove definition.
+ 	* config/arm/arm.opt: Define.
+ 
+ 2023-02-08  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/108316
+ 	* tree-vect-stmts.cc (get_load_store_type): When using
+ 	internal functions for gather/scatter, make sure that the type
+ 	of the offset argument is consistent with the offset vector type.
+ 
+ 2023-02-08  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	Revert:
+ 	2023-02-07  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
+ 	* ira.cc (validate_equiv_mem): Check memref address variance.
+ 	(update_equiv_regs): Define caller save equivalence for
+ 	valid_combine.
+ 	(setup_reg_equiv): Clear defined_p flag for caller save equivalence.
+ 	* lra-constraints.cc (lra_copy_reg_equiv): Add new arg
+ 	call_save_p.  Use caller save equivalence depending on the arg.
+ 	(split_reg): Adjust the call.
+ 
+ 2023-02-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree.def (SAD_EXPR): Remove outdated comment about missing
+ 	WIDEN_MINUS_EXPR.
+ 
+ 2023-02-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Update -fchar8_t documentation.
+ 
+ 2023-02-07  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
+ 	* ira.cc (validate_equiv_mem): Check memref address variance.
+ 	(update_equiv_regs): Define caller save equivalence for
+ 	valid_combine.
+ 	(setup_reg_equiv): Clear defined_p flag for caller save equivalence.
+ 	* lra-constraints.cc (lra_copy_reg_equiv): Add new arg
+ 	call_save_p.  Use caller save equivalence depending on the arg.
+ 	(split_reg): Adjust the call.
+ 
+ 2023-02-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/26854
+ 	* gimple-fold.cc (has_use_on_stmt): Look at stmt operands
+ 	instead of immediate uses.
+ 
+ 2023-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/106923
+ 	* ipa-split.cc (execute_split_functions): Don't split returns_twice
+ 	functions.
+ 
+ 2023-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/106433
+ 	* cgraph.cc (set_const_flag_1): Recurse on simd clones too.
+ 	(cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
+ 
+ 2023-02-07  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
+ 	for znver4.
+ 
+ 2023-02-06  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
+ 	(process_asm): Create a constructor for GCN_STACK_SIZE.
+ 	(main): Parse the -mstack-size option.
+ 
+ 2023-02-06  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/104921
+ 	* config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
+ 	Use correct constraint for operand 3.
+ 
+ 2023-02-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
+ 
+ 2023-02-06  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (bytepick_w_ashift_amount):
+ 	New define_int_iterator.
+ 	(bytepick_d_ashift_amount): Likewise.
+ 	(bytepick_imm): New define_int_attr.
+ 	(bytepick_w_lshiftrt_amount): Likewise.
+ 	(bytepick_d_lshiftrt_amount): Likewise.
+ 	(bytepick_w_<bytepick_imm>): New define_insn template.
+ 	(bytepick_w_<bytepick_imm>_extend): Likewise.
+ 	(bytepick_d_<bytepick_imm>): Likewise.
+ 	(bytepick_w): Remove unused define_insn.
+ 	(bytepick_d): Likewise.
+ 	(UNSPEC_BYTEPICK_W): Remove unused unspec.
+ 	(UNSPEC_BYTEPICK_D): Likewise.
+ 	* config/loongarch/predicates.md (const_0_to_3_operand):
+ 	Remove unused define_predicate.
+ 	(const_0_to_7_operand): Likewise.
+ 
+ 2023-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108655
+ 	* ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
+ 	or -fsanitize=unreachable -fsanitize-trap=unreachable return
+ 	BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
+ 
+ 2023-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Specific): Remove PW32.
+ 
+ 2023-02-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108647
+ 	* range-op.cc (operator_equal::op1_range,
+ 	operator_not_equal::op1_range): Don't test op2 bound
+ 	equality if op2.undefined_p (), instead set_varying.
+ 	(operator_lt::op1_range, operator_le::op1_range,
+ 	operator_gt::op1_range, operator_ge::op1_range): Return false if
+ 	op2.undefined_p ().
+ 	(operator_lt::op2_range, operator_le::op2_range,
+ 	operator_gt::op2_range, operator_ge::op2_range): Return false if
+ 	op1.undefined_p ().
+ 
+ 2023-02-03  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/108639
+ 	* value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
+ 	widest_int.
+ 	(irange::operator==): Same.
+ 
+ 2023-02-03  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/108647
+ 	* range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
+ 	(foperator_lt::op2_range): Same.
+ 	(foperator_le::op1_range): Same.
+ 	(foperator_le::op2_range): Same.
+ 	(foperator_gt::op1_range): Same.
+ 	(foperator_gt::op2_range): Same.
+ 	(foperator_ge::op1_range): Same.
+ 	(foperator_ge::op2_range): Same.
+ 	(foperator_unordered_lt::op1_range): Same.
+ 	(foperator_unordered_lt::op2_range): Same.
+ 	(foperator_unordered_le::op1_range): Same.
+ 	(foperator_unordered_le::op2_range): Same.
+ 	(foperator_unordered_gt::op1_range): Same.
+ 	(foperator_unordered_gt::op2_range): Same.
+ 	(foperator_unordered_ge::op1_range): Same.
+ 	(foperator_unordered_ge::op2_range): Same.
+ 
+ 2023-02-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/107570
+ 	* tree-vrp.cc (remove_and_update_globals): Reset SCEV.
+ 
+ 2023-02-03  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	* doc/gm2.texi (Internals): Remove from menu.
+ 	(Using): Comment out ifnohtml conditional.
+ 	(Documentation): Use gcc url.
+ 	(License): Node simplified.
+ 	(Copying): New node.  Include gpl_v3_without_node.
+ 	(Contributing): Node simplified.
+ 	(Internals): Commented out.
+ 	(Libraries): Node simplified.
+ 	(Indices): Ditto.
+ 	(Contents): Ditto.
+ 	(Functions): Ditto.
+ 
+ 2023-02-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
+ 	attribute.
+ 	(mve_vqshluq_m_n_s<mode>): Likewise.
+ 	(mve_vshlq_m_<supf><mode>): Likewise.
+ 	(mve_vsriq_m_n_<supf><mode>): Likewise.
+ 	(mve_vsubq_m_<supf><mode>): Likewise.
+ 
+ 2023-02-03  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/108384
+ 	* ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
+ 	when comparing to an IPA-CP value.
+ 	(dump_list_of_param_indices): New function.
+ 	(adjust_parameter_descriptions): Check for mismatching IPA-CP values.
+ 	Dump removed candidates using dump_list_of_param_indices.
+ 	* ipa-param-manipulation.cc
+ 	(ipa_param_body_adjustments::modify_expression): Add assert checking
+ 	sizes of a VIEW_CONVERT_EXPR will match.
+ 	(ipa_param_body_adjustments::modify_assignment): Likewise.
+ 
+ 2023-02-03  Monk Chiang  <monk.chiang@sifive.com>
+ 
+ 	* config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
+ 	* config/riscv/riscv.cc: Ditto.
+ 
+ 2023-02-03  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
+ 	(sll.vv): Ditto.
+ 	(%3,%4): Ditto.
+ 	(%3,%v4): Ditto.
+ 	* config/riscv/vector.md: Ditto.
+ 
+ 2023-02-03  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: New class.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
+ 	(vsra): Ditto.
+ 	(vsrl): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc: Ditto.
+ 	* config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
+ 
+ 2023-02-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* toplev.cc (toplev::main): Only print the version information header
+ 	from toplevel main().
+ 
+ 2023-02-02  Paul-Antoine Arras  <pa@codesourcery.com>
+ 
+ 	* config/gcn/gcn-valu.md (cond_<expander><mode>): Add
+ 	cond_{ashl|ashr|lshr}
+ 
+ 2023-02-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/108086
+ 	* rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
+ 	Adjust size-related commentary accordingly.
+ 
+ 2023-02-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/108508
+ 	* rtl-ssa/accesses.cc (function_info::split_clobber_group): When
+ 	the splay tree search gives the first clobber in the second group,
+ 	make sure that the root of the first clobber group is updated
+ 	correctly.  Enter the new clobber group into the definition splay
+ 	tree.
+ 
+ 2023-02-02  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_compute_multilib):
+ 	Fix finding best match score.
+ 
+ 2023-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/106746
+ 	PR rtl-optimization/108463
+ 	PR target/108484
+ 	* cselib.cc (cselib_current_insn): Move declaration earlier.
+ 	(cselib_hasher::equal): For debug only locs, temporarily override
+ 	cselib_current_insn to their l->setting_insn for the
+ 	rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
+ 	promote some debug locs.
+ 	* sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
+ 	when using cselib call cselib_lookup_from_insn on the address but
+ 	don't substitute it.
+ 
+ 2023-02-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/108625
+ 	* genmatch.cc (expr::gen_transform): Also disallow resimplification
+ 	from pushing to lseq with force_leaf.
+ 	(dt_simplify::gen_1): Likewise.
+ 
+ 2023-02-02  Andrew Stubbs  <ams@codesourcery.com>
+ 
+ 	* config/gcn/gcn-run.cc: Include libgomp-gcn.h.
+ 	(struct kernargs): Replace the common content with kernargs_abi.
+ 	(struct heap): Delete.
+ 	(main): Read GCN_STACK_SIZE envvar.
+ 	Allocate space for the device stacks.
+ 	Write the new kernargs fields.
+ 	* config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
+ 	(default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
+ 	PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
+ 	(gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
+ 	(gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
+ 	Set up the stacks from the values in the kernargs, not private.
+ 	(gcn_expand_builtin_1): Match the stack configuration in the prologue.
+ 	(gcn_hsa_declare_function_name): Turn off the private segment.
+ 	(gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
+ 	* config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
+ 	* config/gcn/gcn.opt (mstack-size): Change the description.
+ 
+ 2023-02-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/108443
+ 	* config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
+ 	* config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
+ 	addressing MVE predicate modes.
+ 	(mve_bool_vec_to_const): Change to represent correct MVE predicate
+ 	format.
+ 	(arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
+ 	modes.
+ 	(arm_vector_mode_supported_p): Likewise.
+ 	(arm_mode_to_pred_mode): Add V2QI.
+ 	* config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
+ 	qualifier.
+ 	(UNOP_PRED_PRED_QUALIFIERS): New qualifier
+ 	(BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
+ 	(v2qi_UP): New macro.
+ 	(v4bi_UP): New macro.
+ 	(v8bi_UP): New macro.
+ 	(v16bi_UP): New macro.
+ 	(arm_expand_builtin_args): Make it able to expand the new predicate
+ 	modes.
+ 	* config/arm/arm-modes.def (V2QI): New mode.
+ 	* config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
+ 	Pred4x4_t): Remove unused predicate builtin types.
+ 	* config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
+ 	__arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
+ 	__arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
+ 	* config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
+ 	vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
+ 	* config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
+ 	of MODE_VECTOR_BOOL.
+ 	* config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
+ 	(MVE_VPRED): Likewise.
+ 	(MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
+ 	(MVE_vctp): New mode attribute.
+ 	(mode1): Remove.
+ 	(VCTPQ): Remove.
+ 	(VCTPQ_M): Remove.
+ 	* config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
+ 	(mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
+ 	attributes.
+ 	(mve_vpnothi): Rename this...
+ 	(mve_vpnotv16bi): ... to this.
+ 	(mve_vctp<mode1>q_mhi): Rename this...
+ 	(mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
+ 	(mve_vldrdq_gather_base_z_<supf>v2di,
+ 	mve_vldrdq_gather_offset_z_<supf>v2di,
+ 	mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
+ 	mve_vstrdq_scatter_base_p_<supf>v2di,
+ 	mve_vstrdq_scatter_offset_p_<supf>v2di,
+ 	mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
+ 	mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
+ 	mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
+ 	mve_vstrdq_scatter_base_wb_p_<supf>v2di,
+ 	mve_vldrdq_gather_base_wb_z_<supf>v2di,
+ 	mve_vldrdq_gather_base_nowb_z_<supf>v2di,
+ 	mve_vldrdq_gather_base_wb_z_<supf>v2di_insn):  Use V2QI insead of HI for
+ 	predicates.
+ 	* config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
+ 	these...
+ 	(VCTP): ... with this.
+ 	(VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
+ 	(VCTP_M): ... with this.
+ 	* config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
+ 	VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
+ 
+ 2023-02-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/107674
+ 	* config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
+ 	(arm_modes_tieable_p): Make MVE predicate modes tieable.
+ 	* config/arm/arm.h (VALID_MVE_PRED_MODE):  New define.
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Teach
+ 	simplify_subreg to simplify subregs where the outermode is not scalar.
+ 
+ 2023-02-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/107674
+ 	* config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
+ 	new qualifiers parameter and use unsigned short type for MVE predicate.
+ 	(arm_init_builtin): Call arm_simd_builtin_type with qualifiers
+ 	parameter.
+ 	(arm_init_crypto_builtins): Likewise.
+ 
+ 2023-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/107300
+ 	* builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
+ 	* internal-fn.def (TRAP): Remove.
+ 	* internal-fn.cc (expand_TRAP): Remove.
+ 	* tree.cc (build_common_builtin_nodes): Define
+ 	BUILT_IN_UNREACHABLE_TRAP if not yet defined.
+ 	(builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
+ 	instead of BUILT_IN_TRAP.
+ 	* gimple.cc (gimple_build_builtin_unreachable): Remove
+ 	emitting internal function for BUILT_IN_TRAP.
+ 	* asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
+ 	* cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
+ 	BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
+ 	* ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
+ 	BUILT_IN_UNREACHABLE_TRAP.
+ 	* builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
+ 	* tree-cfg.cc (verify_gimple_call,
+ 	pass_warn_function_return::execute): Likewise.
+ 	* attribs.cc (decl_attributes): Don't report exclusions on
+ 	BUILT_IN_UNREACHABLE_TRAP either.
+ 
+ 2023-02-02  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/108601
+ 	* tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
+ 	* tree-vect-loop.cc
+ 	(vectorizable_nonlinear_induction): Remove
+ 	vect_can_peel_nonlinear_iv_p.
+ 	(vect_can_peel_nonlinear_iv_p): Don't peel
+ 	nonlinear iv(mult or shift) for epilog when vf is not
+ 	constant and moved the defination to ..
+ 	* tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
+ 	.. Here.
+ 
+ 2023-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108435
+ 	* tree-nested.cc (convert_nonlocal_omp_clauses)
+ 	<case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
+ 	is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
+ 	before calling declare_vars.
+ 	(convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
+ 	with the OMP_CLAUSE_LASTPRIVATE handling except for whether
+ 	seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
+ 	or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
+ 
+ 2023-02-01  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(struct aarch64_option_extension): Add native_detect and document struct
+ 	a bit more.
+ 	(all_extensions): Set new field native_detect.
+ 	* config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
+ 	unused struct.
+ 
+ 2023-02-01  Martin Liska  <mliska@suse.cz>
+ 
+ 	* ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
+ 	value if set.
+ 
+ 2023-02-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108356
+ 	* gimple-range-cache.cc (ranger_cache::range_on_edge): Always
+ 	do a search of the DOM tree for a range.
+ 
+ 2023-02-01  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR ipa/108509
+ 	* cgraphunit.cc (walk_polymorphic_call_targets): Insert
+ 	ony non-null values.
+ 	* ipa.cc (walk_polymorphic_call_targets): Likewise.
+ 
+ 2023-02-01  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR driver/108572
+ 	* gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
+ 	-gz=zstd.
+ 
+ 2023-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/108573
+ 	* ree.cc (combine_reaching_defs): Don't return false for paradoxical
+ 	subregs in DEBUG_INSNs.
+ 
+ 2023-02-01  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
+ 
+ 2023-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_restore_gpr_p): New function.
+ 	(s390_preserve_gpr_arg_in_range_p): New function.
+ 	(s390_preserve_gpr_arg_p): New function.
+ 	(s390_preserve_fpr_arg_p): New function.
+ 	(s390_register_info_stdarg_fpr): Rename to ...
+ 	(s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
+ 	(s390_register_info_stdarg_gpr): Rename to ...
+ 	(s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
+ 	(s390_register_info): Use the renamed functions above.
+ 	(s390_optimize_register_info): Likewise.
+ 	(save_fpr): Generate CFI for -mpreserve-args.
+ 	(save_gprs): Generate CFI for -mpreserve-args. Drop return value.
+ 	(s390_emit_prologue): Adjust to changed calling convention of save_gprs.
+ 	(s390_optimize_prologue): Likewise.
+ 	* config/s390/s390.opt: New option -mpreserve-args
+ 
+ 2023-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (save_gprs): Use gen_frame_mem.
+ 	(restore_gprs): Likewise.
+ 	(s390_emit_stack_tie): Make the stack_tie to be dependent on the
+ 	frame pointer if a frame-pointer is used.
+ 	(s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
+ 	* config/s390/s390.md (stack_tie): Add a register operand and
+ 	rename to ...
+ 	(@stack_tie<mode>): ... this.
+ 
+ 2023-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
+ 	EMIT_CFI parameter.
+ 	(dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
+ 	* reg-notes.def (REG_CFA_NOTE): New reg note definition.
+ 
+ 2023-02-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/108500
+ 	* dominance.cc (assign_dfs_numbers): Replace recursive DFS
+ 	with tree traversal algorithm.
+ 
+ 2023-02-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Document -Wno-changes-meaning.
+ 
+ 2023-02-01  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/invoke.texi (Static Analyzer Options): Add notes about
+ 	limitations of -fanalyzer.
+ 
+ 2023-01-31  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/constraints.md (vj): New.
+ 	(vk): Ditto
+ 	* config/riscv/iterators.md: Add more opcode.
+ 	* config/riscv/predicates.md (vector_arith_operand): New.
+ 	(vector_neg_arith_operand): New.
+ 	(vector_shift_operand): New.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
+ 	* config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
+ 	(vsub): Ditto.
+ 	(vand): Ditto.
+ 	(vor): Ditto.
+ 	(vxor): Ditto.
+ 	(vsll): Ditto.
+ 	(vsra): Ditto.
+ 	(vsrl): Ditto.
+ 	(vmin): Ditto.
+ 	(vmax): Ditto.
+ 	(vminu): Ditto.
+ 	(vmaxu): Ditto.
+ 	(vmul): Ditto.
+ 	(vdiv): Ditto.
+ 	(vrem): Ditto.
+ 	(vdivu): Ditto.
+ 	(vremu): Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vadd): New.
+ 	(vsub): Ditto.
+ 	(vand): Ditto.
+ 	(vor): Ditto.
+ 	(vxor): Ditto.
+ 	(vsll): Ditto.
+ 	(vsra): Ditto.
+ 	(vsrl): Ditto.
+ 	(vmin): Ditto.
+ 	(vmax): Ditto.
+ 	(vminu): Ditto.
+ 	(vmaxu): Ditto.
+ 	(vmul): Ditto.
+ 	(vdiv): Ditto.
+ 	(vrem): Ditto.
+ 	(vdivu): Ditto.
+ 	(vremu): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
+ 	* config/riscv/riscv-vector-builtins-shapes.h (binop): New.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
+ 	(DEF_RVV_U_OPS): New.
+ 	(rvv_arg_type_info::get_base_vector_type): Handle
+ 	RVV_BASE_shift_vector.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
+ 	RVV_BASE_shift_vector.
+ 	* config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
+ 	* config/riscv/vector-iterators.md: Handle more opcode.
+ 	* config/riscv/vector.md (@pred_<optab><mode>): New.
+ 
+ 2023-01-31  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	PR target/108589
+ 	* config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
+ 	REG_P on SET_DEST.
+ 
+ 2023-01-31  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/108608
+ 	* tree-vect-loop.cc (vect_transform_reduction): Handle single
+ 	def-use cycles that involve function calls rather than tree codes.
+ 
+ 2023-01-31  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108385
+ 	* gimple-range-gori.cc (gori_compute::compute_operand_range):
+ 	Allow VARYING computations to continue if there is a relation.
+ 	* range-op.cc (pointer_plus_operator::op2_range): New.
+ 
+ 2023-01-31  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108359
+ 	* range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
+ 	(range_operator::fold_range): If op1 is equivalent to op2 then
+ 	invoke new fold_in_parts_equiv to operate on sub-components.
+ 	* range-op.h (wi_fold_in_parts_equiv): New prototype.
+ 
+ 2023-01-31  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-gori.cc (gori_compute::compute_operand_range): Do
+ 	not abort calculations if there is a valid relation available.
+ 	(gori_compute::refine_using_relation): Pass correct relation trio.
+ 	(gori_compute::compute_operand1_range): Create trio and use it.
+ 	(gori_compute::compute_operand2_range): Ditto.
+ 	* range-op.cc (operator_plus::op1_range): Use correct trio member.
+ 	(operator_minus::op1_range): Use correct trio member.
+ 	* value-relation.cc (value_relation::create_trio): New.
+ 	* value-relation.h (value_relation::create_trio): New prototype.
+ 
+ 2023-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/108599
+ 	* config/i386/i386-expand.cc
+ 	(ix86_convert_const_wide_int_to_broadcast): Return nullptr if
+ 	CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
+ 	equal to bitsize of mode.
+ 
+ 2023-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/108596
+ 	* bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
+ 	ends with asm goto and has a crossing fallthrough edge to the same bb
+ 	that contains at least one of its labels by restoring EDGE_CROSSING
+ 	flag even on possible edge from cur_bb to new_bb successor.
+ 
+ 2023-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/105593
+ 	* config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
+ 	_mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
+ 	_mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
+ 	_mm512_undefined_pd () or _mm512_undefined_ps () instead of using
+ 	uninitialized automatic variable __W.
+ 
+ 2023-01-31  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/include/fdl.texi: Change fsf.org to www.fsf.org.
+ 
+ 2023-01-30  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-protos.h (get_vector_mode): New function.
+ 	* config/riscv/riscv-v.cc (get_vector_mode): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
+ 	(class loadstore): Adjust for indexed loads/stores support.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: New function declare.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
+ 	(vluxei16): Ditto.
+ 	(vluxei32): Ditto.
+ 	(vluxei64): Ditto.
+ 	(vloxei8): Ditto.
+ 	(vloxei16): Ditto.
+ 	(vloxei32): Ditto.
+ 	(vloxei64): Ditto.
+ 	(vsuxei8): Ditto.
+ 	(vsuxei16): Ditto.
+ 	(vsuxei32): Ditto.
+ 	(vsuxei64): Ditto.
+ 	(vsoxei8): Ditto.
+ 	(vsoxei16): Ditto.
+ 	(vsoxei32): Ditto.
+ 	(vsoxei64): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(struct indexed_loadstore_def): New class.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
+ 	for indexed loads/stores support.
+ 	(check_required_extensions): Ditto.
+ 	(rvv_arg_type_info::get_base_vector_type): New function.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	(function_builder::add_unique_function): Adjust for indexed loads/stores
+ 	support.
+ 	(function_expander::use_exact_insn): New function.
+ 	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
+ 	indexed loads/stores support.
+ 	(struct rvv_arg_type_info): Ditto.
+ 	(function_expander::index_mode): New function.
+ 	(function_base::apply_tail_policy_p): Ditto.
+ 	(function_base::apply_mask_policy_p): Ditto.
+ 	* config/riscv/vector-iterators.md (unspec): New unspec.
+ 	* config/riscv/vector.md (unspec): Ditto.
+ 	(@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
+ 	pattern.
+ 	(@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
+ 	(@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
+ 	(@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
+ 
+ 2023-01-30  Flavio Cruz  <flaviocruz@gmail.com>
+ 
+ 	* config.gcc: Recognize x86_64-*-gnu* targets and include
+ 	i386/gnu64.h.
+ 	* config/i386/gnu64.h: Define configuration for new target
+ 	including ld.so location.
+ 
+ 2023-01-30  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
+ 	ampere1a to include SM4.
+ 
+ 2023-01-30  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/108582
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Add check
+ 	for middlebb to have no phi nodes.
+ 
+ 2023-01-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108574
+ 	* tree-ssa-sccvn.cc (visit_phi): Instead of swapping
+ 	sameval and def, ignore the equivalence if there's the
+ 	danger of oscillating between two values.
+ 
+ 2023-01-30  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_option_optimization_table)
+ 	[TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
+ 	-fasynchronous-unwind-tables and -funwind-tables.
+ 	* config.gcc (riscv*-*-linux*): Define
+ 	TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
+ 
+ 2023-01-30  YunQiang Su  <yunqiang.su@cipunited.com>
+ 
+ 	* Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
+ 	value of includedir.
+ 
+ 2023-01-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/108511
+ 	* cgraph.cc (possibly_call_in_translation_unit_p): Relax
+ 	assert.
+ 
+ 2023-01-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2023-01-29  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
+ 	(stmt_may_terminate_function_p): If assuming return or EH
+ 	volatile asm is safe.
+ 	(find_always_executed_bbs): Fix handling of terminating BBS and
+ 	infinite loops; add debug output.
+ 	* tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
+ 
+ 2023-01-28  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
+ 	off-by-one in checking the permissible shift-amount.
+ 
+ 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/extend.texi (Named Address Spaces): Update link to the
+ 	AVR-Libc manual.
+ 
+ 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/standards.texi (Standards): Fix markup.
+ 
+ 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/standards.texi (Standards): Update link to Objective-C book.
+ 
+ 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/invoke.texi (Instrumentation Options): Update reference to
+ 	AddressSanitizer.
+ 
+ 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/standards.texi: Update Go1 link.
+ 
+ 2023-01-28  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
+ 	Support vlse/vsse.
+ 	(BASE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
+ 	(vsse): New class.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::use_contiguous_load_insn): Support vlse/vsse.
+ 	* config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
+ 	(@pred_strided_store<mode>): Ditto.
+ 
+ 2023-01-28  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md (tail_policy_op_idx): Remove.
+ 	(mask_policy_op_idx): Remove.
+ 	(avl_type_op_idx): Remove.
+ 
+ 2023-01-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/96373
+ 	* tree.h (sign_mask_for): Declare.
+ 	* tree.cc (sign_mask_for): New function.
+ 	(signed_or_unsigned_type_for): For vector types, try to use the
+ 	related_int_vector_mode.
+ 	* genmatch.cc (commutative_op): Handle conditional internal functions.
+ 	* match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
+ 
+ 2023-01-27  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
+ 	Use the likely minimum VF when bounding the denominators to
+ 	the estimated number of iterations.
+ 
+ 2023-01-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* doc/invoke.texi (-shared): Clarify effect on -ffast-math
+ 	and -Ofast FP environment side-effects.
+ 
+ 2023-01-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
+ 	Don't add crtfastmath.o for -shared.
+ 
+ 2023-01-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
+ 	for -shared.
+ 
+ 2023-01-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* config/alpha/linux.h (ENDFILE_SPEC): Don't add
+ 	crtfastmath.o for -shared.
+ 
+ 2023-01-27  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108306
+ 	* range-op.cc (operator_lshift::fold_range): Return [0, 0] not
+ 	varying for shifts that are always out of void range.
+ 	(operator_rshift::fold_range): Return [0, 0] not
+ 	varying for shifts that are always out of void range.
+ 
+ 2023-01-27  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/108447
+ 	* gimple-range-fold.cc (old_using_range::relation_fold_and_or):
+ 	Do not attempt to fold HONOR_NAN types.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
+ 	Remove _m suffix for "vop_m" C++ overloaded API name.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
+ 	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
+ 	(vsm): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
+ 	(vbool64_t): Ditto.
+ 	(vbool32_t): Ditto.
+ 	(vbool16_t): Ditto.
+ 	(vbool8_t): Ditto.
+ 	(vbool4_t): Ditto.
+ 	(vbool2_t): Ditto.
+ 	(vbool1_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
+ 	(rvv_arg_type_info::get_tree_type): Ditto.
+ 	(function_expander::use_contiguous_load_insn): Ditto.
+ 	* config/riscv/vector.md (@pred_store<mode>): Ditto.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
+ 	(vsetvl_discard_result_insn_p): New function.
+ 	(reg_killed_by_bb_p): rename to find_reg_killed_by.
+ 	(find_reg_killed_by): New name.
+ 	(get_vl): allow it to be called by more functions.
+ 	(has_vsetvl_killed_avl_p): Add condition.
+ 	(get_avl): allow it to be called by more functions.
+ 	(insn_should_be_added_p): New function.
+ 	(get_all_nonphi_defs): Refine function.
+ 	(get_all_sets): Ditto.
+ 	(get_same_bb_set): New function.
+ 	(any_insn_in_bb_p): Ditto.
+ 	(any_set_in_bb_p): Ditto.
+ 	(get_vl_vtype_info): Add VLMAX forward optimization.
+ 	(source_equal_p): Fix issues.
+ 	(extract_single_source): Refine.
+ 	(avl_info::multiple_source_equal_p): New function.
+ 	(avl_info::operator==): Adjust for final version.
+ 	(vl_vtype_info::operator==): Ditto.
+ 	(vl_vtype_info::same_avl_p): Ditto.
+ 	(vector_insn_info::parse_insn): Ditto.
+ 	(vector_insn_info::available_p): New function.
+ 	(vector_insn_info::merge): Adjust for final version.
+ 	(vector_insn_info::dump): Add hard_empty.
+ 	(pass_vsetvl::hard_empty_block_p): New function.
+ 	(pass_vsetvl::backward_demand_fusion): Adjust for final version.
+ 	(pass_vsetvl::forward_demand_fusion): Ditto.
+ 	(pass_vsetvl::demand_fusion): Ditto.
+ 	(pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
+ 	(pass_vsetvl::compute_local_properties): Adjust for final version.
+ 	(pass_vsetvl::can_refine_vsetvl_p): Ditto.
+ 	(pass_vsetvl::refine_vsetvls): Ditto.
+ 	(pass_vsetvl::commit_vsetvls): Ditto.
+ 	(pass_vsetvl::propagate_avl): New function.
+ 	(pass_vsetvl::lazy_vsetvl): Adjust for new version.
+ 	* config/riscv/riscv-vsetvl.h (enum def_type): New enum.
+ 
+ 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/108560
+ 	* doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
+ 	from size_t to int.
+ 
+ 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/106061
+ 	* cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
+ 	redirection of calls to __builtin_trap in addition to redirection
+ 	to __builtin_unreachable.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
+ 	(emit_vsetvl_insn): Ditto.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix constraints.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
+ 
+ 2023-01-27  Patrick Palka  <ppalka@redhat.com>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-core.h (tree_code_type, tree_code_length): For
+ 	C++17 and later, add inline keyword, otherwise don't define
+ 	the arrays, but declare extern arrays.
+ 	* tree.cc (tree_code_type, tree_code_length): Define these
+ 	arrays for C++14 and older.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.h: Change it into public.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
+ 	pass.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
+ 
+ 2023-01-27  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md: Fix incorrect attributes.
+ 
+ 2023-01-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
+ 	Don't add crtfastmath.o for -shared.
+ 
+ 2023-01-27  Alexandre Oliva  <oliva@gnu.org>
+ 
+ 	* doc/options.texi (option, RejectNegative): Mention that
+ 	-g-started options are also implicitly negatable.
+ 
+ 2023-01-26  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc (register_builtin_types):
+ 	Use get_typenode_from_name to get fixed-width integer type
+ 	nodes.
+ 	* config/riscv/riscv-vector-builtins.def: Update define with
+ 	fixed-width integer type nodes.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
+ 	(real_insn_and_same_bb_p): New function.
+ 	(same_bb_and_after_or_equal_p): Remove it.
+ 	(before_p): New function.
+ 	(reg_killed_by_bb_p): Ditto.
+ 	(has_vsetvl_killed_avl_p): Ditto.
+ 	(get_vl): Move location so that we can call it.
+ 	(anticipatable_occurrence_p): Fix issue of AVL=REG support.
+ 	(available_occurrence_p): Ditto.
+ 	(dominate_probability_p): Remove it.
+ 	(can_backward_propagate_p): Remove it.
+ 	(get_all_nonphi_defs): New function.
+ 	(get_all_predecessors): Ditto.
+ 	(any_insn_in_bb_p): Ditto.
+ 	(insert_vsetvl): Adjust AVL REG.
+ 	(source_equal_p): New function.
+ 	(extract_single_source): Ditto.
+ 	(avl_info::single_source_equal_p): Ditto.
+ 	(avl_info::operator==): Adjust for AVL=REG.
+ 	(vl_vtype_info::same_avl_p): Ditto.
+ 	(vector_insn_info::set_demand_info): Remove it.
+ 	(vector_insn_info::compatible_p): Adjust for AVL=REG.
+ 	(vector_insn_info::compatible_avl_p): New function.
+ 	(vector_insn_info::merge): Adjust AVL=REG.
+ 	(vector_insn_info::dump): Ditto.
+ 	(pass_vsetvl::merge_successors): Remove it.
+ 	(enum fusion_type): New enum.
+ 	(pass_vsetvl::get_backward_fusion_type): New function.
+ 	(pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
+ 	(pass_vsetvl::forward_demand_fusion): Ditto.
+ 	(pass_vsetvl::demand_fusion): Ditto.
+ 	(pass_vsetvl::prune_expressions): Ditto.
+ 	(pass_vsetvl::compute_local_properties): Ditto.
+ 	(pass_vsetvl::cleanup_vsetvls): Ditto.
+ 	(pass_vsetvl::commit_vsetvls): Ditto.
+ 	(pass_vsetvl::init): Ditto.
+ 	* config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
+ 	(enum merge_type): New enum.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc
+ 	(vector_infos_manager::vector_infos_manager): Add probability.
+ 	(vector_infos_manager::dump): Ditto.
+ 	(pass_vsetvl::compute_probabilities): Ditto.
+ 	* config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
+ 	(vector_insn_info::merge): Ditto.
+ 	(vector_insn_info::dump): Ditto.
+ 	(pass_vsetvl::merge_successors): Ditto.
+ 	(pass_vsetvl::backward_demand_fusion): Ditto.
+ 	(pass_vsetvl::forward_demand_fusion): Ditto.
+ 	(pass_vsetvl::commit_vsetvls): Ditto.
+ 	* config/riscv/riscv-vsetvl.h: Ditto.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
+ 	rinsn.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
+ 	Add pre-check for redundant flow.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
+ 	(vector_infos_manager::free_bitmap_vectors): Ditto.
+ 	(pass_vsetvl::pre_vsetvl): Adjust codes.
+ 	* config/riscv/riscv-vsetvl.h: New function declaration.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
+ 	(vector_insn_info::set_demand_info): New function.
+ 	(pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
+ 	(pass_vsetvl::merge_successors): Ditto.
+ 	(pass_vsetvl::compute_global_backward_infos): Ditto.
+ 	(pass_vsetvl::backward_demand_fusion): Ditto.
+ 	(pass_vsetvl::forward_demand_fusion): Ditto.
+ 	(pass_vsetvl::demand_fusion): New function.
+ 	(pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
+ 	* config/riscv/riscv-vsetvl.h: New function declaration.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
+ 	(pass_vsetvl::compute_global_backward_infos): Simplify codes.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
+ 	(backward_propagate_worthwhile_p): Fix non-worthwhile.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
+ 	(pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
+ 	(pass_vsetvl::commit_vsetvls): Ditto.
+ 	* config/riscv/riscv-vsetvl.h: New function declaration.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/vector.md:
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
+ 	pred_store for vse.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_expander::add_mem_operand): Refine function.
+ 	(function_expander::use_contiguous_load_insn): Adjust new
+ 	implementation.
+ 	(function_expander::use_contiguous_store_insn): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h: Refine function.
+ 	* config/riscv/vector.md (@pred_store<mode>): New pattern.
+ 
+ 2023-01-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
+ 
+ 2023-01-26  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR middle-end/108543
+ 	* opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
+ 	if it was previously set.
+ 
+ 2023-01-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108540
+ 	* range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
+ 	are singletons, use range_true even if op1 != op2
+ 	when one range is [-0.0, -0.0] and another [0.0, 0.0].  Similarly,
+ 	even if intersection of the ranges is empty and one has
+ 	zero low bound and another zero high bound, use range_true_and_false
+ 	rather than range_false.
+ 	(foperator_not_equal::fold_range): If both op1 and op2
+ 	are singletons, use range_false even if op1 != op2
+ 	when one range is [-0.0, -0.0] and another [0.0, 0.0].  Similarly,
+ 	even if intersection of the ranges is empty and one has
+ 	zero low bound and another zero high bound, use range_true_and_false
+ 	rather than range_true.
+ 
+ 2023-01-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* value-relation.cc (kind_string): Add const.
+ 	(rr_negate_table, rr_swap_table, rr_intersect_table,
+ 	rr_union_table, rr_transitive_table): Add static const, change
+ 	element type from relation_kind to unsigned char.
+ 	(relation_negate, relation_swap, relation_intersect, relation_union,
+ 	relation_transitive): Cast rr_*_table element to relation_kind.
+ 	(relation_to_code): Add static const.
+ 	(relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
+ 
+ 2023-01-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108547
+ 	* gimple-predicate-analysis.cc (value_sat_pred_p):
+ 	Use widest_int.
+ 
+ 2023-01-26  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR tree-optimization/108522
+ 	* tree-object-size.cc (compute_object_offset): Make EXPR
+ 	argument non-const.  Call component_ref_field_offset.
+ 
+ 2023-01-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (cssc): Specify
+ 	FEATURE_STRING field.
+ 
+ 2023-01-26  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/sourcebuild.texi: Refer to projects as GCC and GDB.
+ 
+ 2023-01-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR modula2/102343
+ 	PR modula2/108182
+ 	* gcc.cc: Provide default specs for Modula-2 so that when the
+ 	language is not built-in better diagnostics are emitted for
+ 	attempts to use .mod or .m2i file extensions.
+ 
+ 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
+ 
+ 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
+ 
+ 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
+ 	Fix spacing.
+ 
+ 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
+ 
+ 2023-01-25  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
+ 
+ 2023-01-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108523
+ 	* tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
+ 	backedge value for the result when using predication to
+ 	prove equivalence.
+ 
+ 2023-01-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/lto.texi (Command line options): Reword and update reference
+ 	to removed lto_read_all_file_options.
+ 
+ 2023-01-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
+ 	tests.
+ 
+ 2023-01-25  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/contrib.texi: Add Jose E. Marchesi.
+ 
+ 2023-01-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108498
+ 	* gimple-ssa-store-merging.cc (class store_operand_info):
+ 	End coment with full stop rather than comma.
+ 	(split_group): Likewise.
+ 	(merged_store_group::apply_stores): Clear string_concatenation if
+ 	start or end aren't on a byte boundary.
+ 
+ 2023-01-25  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108522
+ 	* tree-object-size.cc (compute_object_offset): Use
+ 	TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
+ 
+ 2023-01-24  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md:
+ 	Fix exit from loops detecting references before overwriting in the
+ 	split pattern.
+ 
+ 2023-01-24  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc (get_hard_regno): Remove final_p arg.  Always
+ 	do elimination but only for hard register.
+ 	(operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
+ 	calls of get_hard_regno.
+ 
+ 2023-01-24  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/s390-d.cc (s390_d_target_versions): Fix detection
+ 	of CPU version.
+ 
+ 2023-01-24  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/108177
+ 	* config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
+ 	mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
+ 	as input operand.
+ 
+ 2023-01-24  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
+ 	and only include 'csky/t-csky-linux' when enable multilib.
+ 	* config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
+ 	define it when disable multilib.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108500
+ 	* dominance.h (calculate_dominance_info): Add parameter
+ 	to indicate fast-query compute, defaulted to true.
+ 	* dominance.cc (calculate_dominance_info): Honor
+ 	fast-query compute parameter.
+ 	* tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
+ 	not compute the dominator fast-query DFS numbers.
+ 
+ 2023-01-24  Eric Biggers  <ebiggers@google.com>
+ 
+ 	PR bootstrap/90543
+ 	* optc-save-gen.awk: Fix copy-and-paste error.
+ 
+ 2023-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108474
+ 	* cgraphbuild.cc: Include gimplify.h.
+ 	(record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
+ 	their corresponding DECL_VALUE_EXPR expressions after unsharing.
+ 
+ 2023-01-24  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	PR target/108505
+ 	* config.gcc (tm_file): Move the variable out of loop.
+ 
+ 2023-01-24  Lulu Cheng  <chenglulu@loongson.cn>
+ 	    Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	PR target/107731
+ 	* config/loongarch/loongarch.cc (loongarch_classify_address):
+ 	Add precessint for CONST_INT.
+ 	(loongarch_print_operand_reloc): Operand modifier 'c' is supported.
+ 	(loongarch_print_operand): Increase the processing of '%c'.
+ 	* doc/extend.texi: Adds documents for LoongArch operand modifiers.
+ 	And port the public operand modifiers information to this document.
+ 
+ 2023-01-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* doc/invoke.texi (-mbranch-protection): Update documentation.
+ 
+ 2023-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
+ 	for -shared.
+ 	* config/sparc/linux.h (ENDFILE_SPEC): Likewise.
+ 	* config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
+ 	* config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
+ 	* config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
+ 
+ 2023-01-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* config/arm/aout.h (ra_auth_code): Add entry in enum.
+ 	* config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
+ 	to dwarf frame expression.
+ 	(arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
+ 	(arm_expand_prologue): Update frame related information and reg notes
+ 	for pac/pacbit insn.
+ 	(arm_regno_class): Check for pac pseudo reigster.
+ 	(arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
+ 	(arm_init_machine_status): Set pacspval_needed to zero.
+ 	(arm_debugger_regno): Check for PAC register.
+ 	(arm_unwind_emit_sequence): Print .save directive with ra_auth_code
+ 	register.
+ 	(arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
+ 	(arm_unwind_emit): Update REG_CFA_REGISTER case._
+ 	* config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
+ 	(DWARF_PAC_REGNUM): Define.
+ 	(IS_PAC_REGNUM): Likewise.
+ 	(enum reg_class): Add PAC_REG entry.
+ 	(machine_function): Add pacbti_needed state to structure.
+ 	* config/arm/arm.md (RA_AUTH_CODE): Define.
+ 
+ 2023-01-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* config.gcc ($tm_file): Update variable.
+ 	* config/arm/arm-mlib.h: Create new header file.
+ 	* config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
+ 	multilib arch directory.
+ 	(MULTILIB_REUSE): Add multilib reuse rules.
+ 	(MULTILIB_MATCHES): Add multilib match rules.
+ 
+ 2023-01-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* config/arm/arm-cpus.in (cortex-m85): Define new CPU.
+ 	* config/arm/arm-tables.opt: Regenerate.
+ 	* config/arm/arm-tune.md: Likewise.
+ 	* doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
+ 	* (-mfix-cmse-cve-2021-35465): Likewise.
+ 
+ 2023-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108482
+ 	* tree-vect-generic.cc (expand_vector_operations): Fold remaining
+ 	.LOOP_DIST_ALIAS calls.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
+ 	* config/arm/arm-protos.h: Update.
+ 	* config/arm/aarch-common-protos.h: Declare
+ 	'aarch_bti_arch_check'.
+ 	* config/arm/arm.cc (aarch_bti_enabled) Update.
+ 	(aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
+ 	(aarch_gen_bti_j, aarch_bti_arch_check): New functions.
+ 	* config/arm/arm.md (bti_nop): New insn.
+ 	* config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
+ 	(aarch-bti-insert.o): New target.
+ 	* config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
+ 	* config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
+ 	compatibility.
+ 	(gate): Make use of 'aarch_bti_arch_check'.
+ 	* config/arm/arm-passes.def: New file.
+ 	* config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
+ 	'aarch-bti-insert.o'.
+ 	* config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
+ 	proto.
+ 	* config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
+ 	(aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
+ 	(aarch64_output_mi_thunk)
+ 	(aarch64_print_patchable_function_entry)
+ 	(aarch64_file_end_indicate_exec_stack): Update renamed function
+ 	calls to renamed functions.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
+ 	* config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
+ 	target.
+ 	* config/aarch64/aarch64-bti-insert.cc: Delete.
+ 	* config/arm/aarch-bti-insert.cc: New file including and
+ 	generalizing code from aarch64-bti-insert.cc.
+ 	* config/arm/aarch-common-protos.h: Update.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/arm.h (arm_arch8m_main): Declare it.
+ 	* config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
+ 	Declare it.
+ 	* config/arm/arm.cc (arm_arch8m_main): Define it.
+ 	(arm_option_reconfigure_globals): Set arm_arch8m_main.
+ 	(arm_compute_frame_layout, arm_expand_prologue)
+ 	(thumb2_expand_return, arm_expand_epilogue)
+ 	(arm_conditional_register_usage): Update for pac codegen.
+ 	(arm_current_function_pac_enabled_p): New function.
+ 	(aarch_bti_enabled) New function.
+ 	(use_return_insn): Return zero when pac is enabled.
+ 	* config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
+ 	Add new patterns.
+ 	* config/arm/unspecs.md (UNSPEC_PAC_NOP)
+ 	(VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 
+ 	* config/arm/t-rmprofile: Add multilib rules for march +pacbti and
+ 	mbranch-protection.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 	    Tejas Belagod   <tbelagod@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_file_start): Emit EABI attributes for
+ 	Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 	    Tejas Belagod   <tbelagod@arm.com>
+ 	    Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
+ 	new pseudo register class _UVRSC_PAC.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 	    Tejas Belagod   <tbelagod@arm.com>
+ 
+ 	* config/arm/arm-c.cc (arm_cpu_builtins): Define
+ 	__ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
+ 	__ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 	    Tejas Belagod   <tbelagod@arm.com>
+ 
+ 	* doc/sourcebuild.texi: Document arm_pacbti_hw.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 	    Tejas Belagod   <tbelagod@arm.com>
+ 	    Richard Earnshaw  <Richard.Earnshaw@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_configure_build_target): Parse and validate
+ 	-mbranch-protection option and initialize appropriate data structures.
+ 	* config/arm/arm.opt (-mbranch-protection): New option.
+ 	* doc/invoke.texi (Arm Options): Document it.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 	    Tejas Belagod   <tbelagod@arm.com>
+ 
+ 	* config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
+ 	* config/arm/arm-cpus.in (pacbti): New feature.
+ 	* doc/invoke.texi (Arm Options): Document it.
+ 
+ 2023-01-23  Andrea Corallo  <andrea.corallo@arm.com>
+ 	    Tejas Belagod   <tbelagod@arm.com>
+ 
+ 	* common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
+ 	(all_architectures): Fix comment.
+ 	(aarch64_parse_extension): Rename return type, enum value names.
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
+ 	factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
+ 	Also rename corresponding enum values.
+ 	* config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
+ 	out aarch64_function_type and move it to common code as
+ 	aarch_function_type in aarch-common.h.
+ 	* config/aarch64/aarch64-protos.h: Include common types header,
+ 	move out types aarch64_parse_opt_result and aarch64_key_type to
+ 	aarch-common.h
+ 	* config/aarch64/aarch64.cc: Move mbranch-protection parsing types
+ 	and functions out into aarch-common.h and aarch-common.cc.  Fix up
+ 	all the name changes resulting from the move.
+ 	* config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
+ 	and enum value.
+ 	* config/aarch64/aarch64.opt: Include aarch-common.h to import
+ 	type move.  Fix up name changes from factoring out common code and
+ 	data.
+ 	* config/arm/aarch-common-protos.h: Export factored out routines to both
+ 	backends.
+ 	* config/arm/aarch-common.cc: Include newly factored out types.
+ 	Move all mbranch-protection code and data structures from
+ 	aarch64.cc.
+ 	* config/arm/aarch-common.h: New header that declares types shared
+ 	between aarch32 and aarch64 backends.
+ 	* config/arm/arm-protos.h: Declare types and variables that are
+ 	made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
+ 	aarch_ra_sign_scope and aarch_enable_bti.
+ 	* config/arm/arm.opt (config/arm/aarch-common.h): Include header.
+ 	(aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
+ 	* config/arm/arm.cc: Add missing includes.
+ 
+ 2023-01-23  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	* doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
+ 
+ 2023-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108449
+ 	* cgraphunit.cc (check_global_declaration): Do not turn
+ 	undefined statics into externs.
+ 
+ 2023-01-22  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
+ 	and HI input modes.
+ 	* config/pru/pru.md (clz): Fix generated code for QI and HI
+ 	input modes.
+ 
+ 2023-01-22  Cupertino Miranda  <cupertino.miranda@oracle.com>
+ 
+ 	* config/v850/v850.cc (v850_select_section): Put const volatile
+ 	objects into read-only sections.
+ 
+ 2023-01-20  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	* config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
+ 	vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
+ 	(vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
+ 
+ 2023-01-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108457
+ 	* tree-ssa-loop-niter.cc (build_cltz_expr): Use
+ 	SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
+ 	argument instead of a temporary.  Formatting fixes.
+ 
+ 2023-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108447
+ 	* value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
+ 	(relation_tests): Add self-tests for relation_{intersect,union}
+ 	commutativity.
+ 	* selftest.h (relation_tests): Declare.
+ 	* function-tests.cc (test_ranges): Call it.
+ 
+ 2023-01-19  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/108436
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Check
+ 	invalid third argument to __builtin_ia32_prefetch.
+ 
+ 2023-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108459
+ 	* omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
+ 	than fold_unary for NEGATE_EXPR.
+ 
+ 2023-01-19  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	PR target/108411
+ 	* config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
+ 	comment. Move assert about alignment a bit later.
+ 
+ 2023-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108440
+ 	* tree-ssa-forwprop.cc: Include gimple-range.h.
+ 	(simplify_rotate): For the forms with T2 wider than T and shift counts of
+ 	Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
+ 	to B.  For the forms with T2 wider than T and shift counts of
+ 	Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
+ 	range doesn't guarantee Y < B or Y = N * B.  If range doesn't guarantee
+ 	Y < B, also add & (B - 1) masking for the rotate count.  Use lazily created
+ 	pass specific ranger instead of get_global_range_query.
+ 	(pass_forwprop::execute): Disable that ranger at the end of pass if it has
+ 	been created.
+ 
+ 2023-01-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
+ 	exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
+ 	the pattern.
+ 	(aarch64_simd_vec_copy_lane<mode>): Likewise.
+ 	(aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
+ 
+ 2023-01-19  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR debug/106746
+ 	* sched-deps.cc (sched_analyze_2): Skip cselib address lookup
+ 	within debug insns.
+ 
+ 2023-01-18  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/107944
+ 	* cgraph.cc (cgraph_node::remove): Check whether nodes up the
+ 	lcone_of chain also do not need the body.
+ 
+ 2023-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2022-12-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/108086
+ 	* tree-inline.cc (remap_ssa_name): Do not unshare the
+ 	result from the decl_map.
+ 
+ 2023-01-18  Murray Steele  <murray.steele@arm.com>
+ 
+ 	PR target/108442
+ 	* config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
+ 	function.
+ 	(__arm_vst1q_p_s8): Likewise.
+ 	(__arm_vld1q_z_u8): Likewise.
+ 	(__arm_vld1q_z_s8): Likewise.
+ 	(__arm_vst1q_p_u16): Likewise.
+ 	(__arm_vst1q_p_s16): Likewise.
+ 	(__arm_vld1q_z_u16): Likewise.
+ 	(__arm_vld1q_z_s16): Likewise.
+ 	(__arm_vst1q_p_u32): Likewise.
+ 	(__arm_vst1q_p_s32): Likewise.
+ 	(__arm_vld1q_z_u32): Likewise.
+ 	(__arm_vld1q_z_s32): Likewise.
+ 	(__arm_vld1q_z_f16): Likewise.
+ 	(__arm_vst1q_p_f16): Likewise.
+ 	(__arm_vld1q_z_f32): Likewise.
+ 	(__arm_vst1q_p_f32): Likewise.
+ 
+ 2023-01-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (xorsi3_internal):
+ 	Rename from the original of "xorsi3".
+ 	(xorsi3): New expansion pattern that emits addition rather than
+ 	bitwise-XOR when the second source is a constant of -2147483648
+ 	if TARGET_DENSITY.
+ 
+ 2023-01-18  Kewen Lin  <linkw@linux.ibm.com>
+ 	    Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR target/108396
+ 	* config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
+ 	vec_vsubcuqP with vec_vsubcuq.
+ 
+ 2023-01-18  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108348
+ 	* config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
+ 	support for invalid uses of MMA opaque type in function arguments.
+ 
+ 2023-01-18  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/55522
+ 	* config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
+ 	whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
+ 	-share or -mno-daz-ftz is specified.
+ 	* config/i386/darwin.h (ENDFILE_SPEC): Ditto.
+ 	* config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
+ 
+ 2023-01-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/bpf/bpf.cc (bpf_option_override): Disable
+ 	-fstack-protector.
+ 
+ 2023-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/106523
+ 	* tree-ssa-forwprop.cc (simplify_rotate): For the
+ 	patterns with (-Y) & (B - 1) in one operand's shift
+ 	count and Y in another, if T2 has wider precision than T,
+ 	punt if Y could have a value in [B, B2 - 1] range.
+ 
+ 2023-01-16  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/105980
+ 	* config/i386/i386.cc (x86_output_mi_thunk): Disable
+ 	-mforce-indirect-call for PIC in 32-bit mode.
+ 
+ 2023-01-16  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/106077
+ 	* ipa-modref.cc (modref_access_analysis::analyze): Use
+ 	find_always_executed_bbs.
+ 	* ipa-sra.cc (process_scan_results): Likewise.
+ 	* ipa-utils.cc (stmt_may_terminate_function_p): New function.
+ 	(find_always_executed_bbs): New function.
+ 	* ipa-utils.h (stmt_may_terminate_function_p): Declare.
+ 	(find_always_executed_bbs): Declare.
+ 
+ 2023-01-16  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
+ 	by TARGET_USE_SCATTER.
+ 	* config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
+ 	TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
+ 	* config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
+ 	TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
+ 	(X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
+ 	for znver4.  (X86_TUNE_USE_GATHER): Disable for zen4.
+ 
+ 2023-01-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
+ 
+ 2023-01-16  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	PR target/96795
+ 	PR target/107515
+ 	* config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
+ 	(__ARM_mve_coerce3): Likewise.
+ 
+ 2023-01-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
+ 
+ 2023-01-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
+ 	(number_of_iterations_bitcount): Add call to the above.
+ 	(number_of_iterations_exit_assumptions): Add EQ_EXPR case for
+ 	c[lt]z idiom recognition.
+ 
+ 2023-01-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* doc/sourcebuild.texi: Add missing target attributes.
+ 
+ 2023-01-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	PR tree-optimization/94793
+ 	* tree-scalar-evolution.cc (expression_expensive_p): Add checks
+ 	for c[lt]z optabs.
+ 	* tree-ssa-loop-niter.cc (build_cltz_expr): New.
+ 	(number_of_iterations_cltz_complement): New.
+ 	(number_of_iterations_bitcount): Add call to the above.
+ 
+ 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/extend.texi (Common Function Attributes): Fix grammar.
+ 
+ 2023-01-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/108413
+ 	* config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
+ 	* config/riscv/riscv-vsetvl.cc: Likewise.
+ 
+ 2023-01-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/105593
+ 	* config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
+ 	disable -Winit-self using pragma GCC diagnostic ignored.
+ 	* config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
+ 	Likewise.
+ 	* config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
+ 	_mm256_undefined_si256): Likewise.
+ 	* config/i386/avx512fintrin.h (_mm512_undefined_pd,
+ 	_mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
+ 	* config/i386/avx512fp16intrin.h (_mm_undefined_ph,
+ 	_mm256_undefined_ph, _mm512_undefined_ph): Likewise.
+ 
+ 2023-01-16  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108272
+ 	* config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
+ 	support for invalid uses in inline asm, factor out the checking and
+ 	erroring to lambda function check_and_error_invalid_use.
+ 
+ 2023-01-15  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	PR tree-optimization/107608
+ 	* range-op-float.cc (range_operator_float::fold_range): Avoid
+ 	folding into INF when flag_trapping_math.
+ 	* value-range.h (frange::known_isinf): Return false for possible NANs.
+ 
+ 2023-01-15  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config.gcc (csky-*-*): Support --with-float=softfp.
+ 
+ 2023-01-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
+ 	Rename to xtensa_adjust_reg_alloc_order.
+ 	* config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
+ 	Ditto.  And also remove code to reorder register numbers for
+ 	leaf functions, rename the tables, and adjust the allocation
+ 	order for the call0 ABI to use register A0 more.
+ 	(xtensa_leaf_regs): Remove.
+ 	* config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
+ 	(order_regs_for_local_alloc): Rename as the above.
+ 	(LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
+ 
+ 2023-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+ 
+ 	* config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
+ 	Change to define_insn_and_split to fold ldr+dup to ld1rq.
+ 	* config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
+ 
+ 2023-01-14  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* hash-table.h (is_deleted): Precheck !is_empty.
+ 	(mark_deleted): Postcheck !is_empty.
+ 	(copy constructor): Test is_empty before is_deleted.
+ 
+ 2023-01-14  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/40457
+ 	* config/arm/arm.md (movmisaligndi): Prefer aligned SImode
+ 	moves.
+ 
+ 2023-01-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR rtl-optimization/108274
+ 	* function.cc (thread_prologue_and_epilogue_insns): Also update the
+ 	DF information for calls in a few more cases.
+ 
+ 2023-01-13  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
+ 	* config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
+ 	define.
+ 	* config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
+ 	(MAX_SYNC_LIBFUNC_SIZE): Define.
+ 	(TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
+ 	enabled.
+ 	* config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
+ 	libcall when sync libcalls are disabled.
+ 	(atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
+ 	(atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
+ 	are disabled on 32-bit target.
+ 	* config/pa/pa.opt (matomic-libcalls): New option.
+ 	* doc/invoke.texi (HPPA Options): Update.
+ 
+ 2023-01-13  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	PR rtl-optimization/108117
+ 	PR rtl-optimization/108132
+ 	* sched-deps.cc (deps_analyze_insn): Do not schedule across
+ 	calls before reload.
+ 
+ 2023-01-13  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
+ 	options for -mlibarch.
+ 	* config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
+ 	* doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
+ 
+ 2023-01-13  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* attribs.cc (strict_flex_array_level_of): Move this function to ...
+ 	* attribs.h (strict_flex_array_level_of): Remove the declaration.
+ 	* gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
+ 	replace the referece to strict_flex_array_level_of with
+ 	DECL_NOT_FLEXARRAY.
+ 	* tree.cc (component_ref_size): Likewise.
+ 
+ 2023-01-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
+ 	crtfastmath.o for -shared.
+ 	* config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
+ 
+ 2023-01-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/55522
+ 	* config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
+ 	crtfastmath.o for -shared.
+ 	* config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
+ 	Likewise.
+ 	* config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
+ 	Likewise.
+ 
+ 2023-01-13  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
+ 	function.
+ 	(TARGET_DWARF_FRAME_REG_MODE): Define.
+ 
+ 2023-01-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/107209
+ 	* config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
+ 	update EH info on the fly.
+ 
+ 2023-01-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108387
+ 	* tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
+ 	value before inserting expression into the tables.
+ 
+ 2023-01-12  Andrew Pinski  <apinski@marvell.com>
+ 	    Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR tree-optimization/92342
+ 	* match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
+ 	Use tcc_comparison and :c for the multiply.
+ 	(b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
+ 
+ 2023-01-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/105549
+ 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
+ 	Check DECL_PACKED for bitfield.
+ 	(aarch64_layout_arg): Warn when parameter passing ABI changes.
+ 	(aarch64_function_arg_boundary): Do not warn here.
+ 	(aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
+ 	changes.
+ 
+ 2023-01-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
+ 	comment.
+ 	(aarch64_layout_arg): Factorize warning conditions.
+ 	(aarch64_function_arg_boundary): Fix typo.
+ 	* function.cc (currently_expanding_function_start): New variable.
+ 	(expand_function_start): Handle
+ 	currently_expanding_function_start.
+ 	* function.h (currently_expanding_function_start): Declare.
+ 
+ 2023-01-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/99412
+ 	* tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
+ 	(swap_ops_for_binary_stmt): Remove reduction handling.
+ 	(rewrite_expr_tree_parallel): Adjust.
+ 	(reassociate_bb): Likewise.
+ 	* tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
+ 
+ 2023-01-12  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (ctzsi2, ffssi2):
+ 	Rearrange the emitting codes.
+ 
+ 2023-01-12  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*btrue):
+ 	Correct value of the attribute "length" that depends on
+ 	TARGET_DENSITY and operands, and add '?' character to the register
+ 	constraint of the compared operand.
+ 
+ 2023-01-12  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* hash-table.h (expand): Check elements and deleted counts.
+ 	(verify): Likewise.
+ 
+ 2023-01-11  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR tree-optimization/71343
+ 	* tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
+ 	the value number of the expression X << C the same as the value
+ 	number for the multiplication X * (1<<C).
+ 
+ 2023-01-11  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/108293
+ 	* config/bpf/bpf.cc (bpf_print_operand): Correct handling for
+ 	floating point modes.
+ 
+ 2023-01-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR tree-optimization/108199
+ 	* tree-sra.cc (sra_modify_expr): Deal with reverse storage order
+ 	for bit-field references.
+ 
+ 2023-01-11  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
+ 	OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
+ 	* config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
+ 	OPTION_MASK_P10_FUSION.
+ 
+ 2023-01-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107767
+ 	* tree-cfgcleanup.cc (phi_alternatives_equal): Export.
+ 	* tree-cfgcleanup.h (phi_alternatives_equal): Declare.
+ 	* tree-switch-conversion.cc (switch_conversion::collect):
+ 	Count unique non-default targets accounting for later
+ 	merging opportunities.
+ 
+ 2023-01-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR middle-end/107976
+ 	* params.opt: Limit JT params.
+ 	* stmt.cc (emit_case_dispatch_table): Use auto_vec.
+ 
+ 2023-01-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108352
+ 	* tree-ssa-threadbackward.cc
+ 	(back_threader_profitability::profitable_path_p): Adjust
+ 	heuristic that allows non-multi-way branch threads creating
+ 	irreducible loops.
+ 	* doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
+ 	(--param fsm-scale-path-stmts): Adjust.
+ 	* params.opt (--param=fsm-scale-path-blocks=): Remove.
+ 	(-param=fsm-scale-path-stmts=): Adjust description.
+ 
+ 2023-01-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108353
+ 	* tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
+ 	Remove.
+ 	(add_ssa_edge): Simplify.
+ 	(add_control_edge): Likewise.
+ 	(ssa_prop_init): Likewise.
+ 	(ssa_prop_fini): Likewise.
+ 	(ssa_propagation_engine::ssa_propagate): Likewise.
+ 
+ 2023-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.md (*not<mode>): New pattern.
+ 
+ 2023-01-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_insn_cost):
+ 	Let insn cost for size be obtained by applying COSTS_N_INSNS()
+ 	to instruction length and then dividing by 3.
+ 
+ 2023-01-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106293
+ 	* tree-ssa-dse.cc (dse_classify_store): Use a worklist to
+ 	process degenerate PHI defs.
+ 
+ 2023-01-10  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR rtl-optimization/106421
+ 	* cprop.cc (bypass_block): Check that DEST is local to this
+ 	function (non-NULL) before calling find_edge.
+ 
+ 2023-01-10  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/108110
+ 	* ipa-param-manipulation.h (ipa_param_body_adjustments): New members
+ 	sort_replacements, lookup_first_base_replacement and
+ 	m_sorted_replacements_p.
+ 	* ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
+ 	(ipa_param_body_adjustments::register_replacement): Set
+ 	m_sorted_replacements_p to false.
+ 	(compare_param_body_replacement): New function.
+ 	(ipa_param_body_adjustments::sort_replacements): Likewise.
+ 	(ipa_param_body_adjustments::common_initialization): Call
+ 	sort_replacements.
+ 	(ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
+ 	m_sorted_replacements_p.
+ 	(ipa_param_body_adjustments::lookup_replacement_1): Rework to use
+ 	std::lower_bound.
+ 	(ipa_param_body_adjustments::lookup_first_base_replacement): New
+ 	function.
+ 	(ipa_param_body_adjustments::modify_call_stmt): Use
+ 	lookup_first_base_replacement.
+ 	* omp-simd-clone.cc (ipa_simd_modify_function_body): Call
+ 	adjustments->sort_replacements.
+ 
+ 2023-01-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108314
+ 	* tree-vect-stmts.cc (vectorizable_condition): Do not
+ 	perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
+ 
+ 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
+ 
+ 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
+ 
+ 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
+ 	defines for soft float abi.
+ 
+ 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
+ 	(smart_bclri): Likewise.
+ 	(fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
+ 	(fast_bclri): Likewise.
+ 	(fast_cmpnesi_i): Likewise.
+ 	(*fast_cmpltsi_i): Likewise.
+ 	(*fast_cmpgeusi_i): Likewise.
+ 
+ 2023-01-10  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
+ 
+ 	* config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
+ 	flag_fp_int_builtin_inexact || !flag_trapping_math.
+ 	(<frm_pattern><mode>2): Likewise.
+ 
+ 2023-01-10  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_register_info): Check call_used_regs
+ 	instead of hard-coding the register numbers for call saved
+ 	registers.
+ 	(s390_optimize_register_info): Likewise.
+ 
+ 2023-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gm2.texi (Overview): Fix @node markers.
+ 	(Using): Likewise.  Remove subsections that were moved to Overview
+ 	from the menu and move others around.
+ 
+ 2023-01-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/108209
+ 	* genmatch.cc (commutative_op): Fix return value for
+ 	user-id with non-commutative first replacement.
+ 
+ 2023-01-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/107453
+ 	* calls.cc (expand_call): For calls with
+ 	TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
+ 	Formatting fix.
+ 
+ 2023-01-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/69482
+ 	* cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
+ 	qualified accesses also force objects to memory.
+ 
+ 2023-01-09  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR lto/108330
+ 	* lto-cgraph.cc (compute_ltrans_boundary): Do not insert
+ 	NULL (deleleted value) to a hash_set.
+ 
+ 2023-01-08  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*splice_bits):
+ 	New insn_and_split pattern.
+ 
+ 2023-01-07  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(xtensa_split_imm_two_addends, xtensa_emit_add_imm):
+ 	New helper functions.
+ 	(xtensa_set_return_address, xtensa_output_mi_thunk):
+ 	Change to use the helper function.
+ 	(xtensa_emit_adjust_stack_ptr): Ditto.
+ 	And also change to try reusing the content of scratch register
+ 	A9 if the register is not modified in the function body.
+ 
+ 2023-01-07  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR middle-end/108300
+ 	* config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
+ 	before <windows.h>.
+ 	* diagnostic-color.cc: Likewise.
+ 	* plugin.cc: Likewise.
+ 	* prefix.cc: Likewise.
+ 
+ 2023-01-06  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	* doc/extend.texi (__builtin_tgmath): Do not restate standard rule
+ 	for handling real integer types.
+ 
+ 2023-01-06  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Revert:
+ 	2022-12-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
+ 	(mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
+ 	aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
+ 	@aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
+ 	reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
+ 	aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
+ 	vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
+ 	(aarch64_simd_dupv2hf): New.
+ 	* config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
+ 	Add E_V2HFmode.
+ 	* config/aarch64/iterators.md (VHSDF_P): New.
+ 	(V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
+ 	Vel, q, vp): Add V2HF.
+ 	* config/arm/types.md (neon_fp_reduc_add_h): New.
+ 
+ 2023-01-06  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR middle-end/107966
+ 	* doc/options.texi: Fix Var documentation in internal manual.
+ 
+ 2023-01-05  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	Revert:
+ 	2023-01-03  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
+ 	RTL expansion to allow condition (mask) to be shared/reused,
+ 	by avoiding overwriting pseudos and adding REG_EQUAL notes.
+ 
+ 2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* common.opt: Add -static-libgm2.
+ 	* config/darwin.h (LINK_SPEC): Handle static-libgm2.
+ 	* doc/gm2.texi: Document static-libgm2.
+ 	* gcc.cc (driver_handle_option): Allow static-libgm2.
+ 
+ 2023-01-05  Tejas Joshi  <TejasSanjay.Joshi@amd.com>
+ 
+ 	* common/config/i386/i386-common.cc (processor_alias_table):
+ 	Use CPU_ZNVER4 for znver4.
+ 	* config/i386/i386.md: Add znver4.md.
+ 	* config/i386/znver4.md: New.
+ 
+ 2023-01-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108253
+ 	* tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
+ 	types.
+ 
+ 2023-01-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108237
+ 	* generic-match-head.cc: Include tree-pass.h.
+ 	(canonicalize_math_p, optimize_vectors_before_lowering_p): Define
+ 	to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
+ 	resp. PROP_gimple_lvec property set.
+ 
+ 2023-01-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/108256
+ 	* convert.cc (do_narrow): Punt for MULT_EXPR if original
+ 	type doesn't wrap around and -fsanitize=signed-integer-overflow
+ 	is on.
+ 	* fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
+ 
+ 2023-01-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
+ 	* common/config/i386/i386-common.cc: Add Emeraldrapids.
+ 
+ 2023-01-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
+ 	for meteorlake.
+ 
+ 2023-01-03  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
+ 	default constructor to initialize it.
+ 	* cgraphunit.cc (expand_all_functions): Save gc_candidate functions
+ 	for last and iterate to handle recursive calls.  Delete leftover
+ 	candidates at the end.
+ 	* omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
+ 	on local clones.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
+ 	gc_candidate bit when a clone is used.
+ 
+ 2023-01-03  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	Revert:
+ 	2023-01-02  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* dwarf2cfi.cc (init_return_column_size): Remove.
+ 	(init_one_dwarf_reg_size): Adjust.
+ 	(generate_dwarf_reg_sizes): New function.  Extracted
+ 	from expand_builtin_init_dwarf_reg_sizes.
+ 	(expand_builtin_init_dwarf_reg_sizes): Call
+ 	generate_dwarf_reg_sizes.
+ 	* target.def (init_dwarf_reg_sizes_extra): Adjust
+ 	hook signature.
+ 	* config/msp430/msp430.cc
+ 	(msp430_init_dwarf_reg_sizes_extra): Adjust.
+ 	* config/rs6000/rs6000.cc
+ 	(rs6000_init_dwarf_reg_sizes_extra): Likewise.
+ 	* doc/tm.texi: Update.
+ 
+ 2023-01-03  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	Revert:
+ 	2023-01-02  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* debug.h (dwarf_reg_sizes_constant): Declare.
+ 	* dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
+ 
+ 2023-01-03  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR tree-optimization/105043
+ 	* doc/extend.texi (Object Size Checking): Split out into two
+ 	subsections and mention _FORTIFY_SOURCE.
+ 
+ 2023-01-03  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
+ 	RTL expansion to allow condition (mask) to be shared/reused,
+ 	by avoiding overwriting pseudos and adding REG_EQUAL notes.
+ 
+ 2023-01-03  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR target/108229
+ 	* config/i386/i386-features.cc
+ 	(general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
+ 	the gain/cost of converting a MEM operand.
+ 
+ 2023-01-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108264
+ 	* expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
+ 	from source which doesn't have scalar integral mode first convert
+ 	it to outer_mode.
+ 
+ 2023-01-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/108263
+ 	* cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
+ 	asm goto to EXIT.
+ 
+ 2023-01-02  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	PR target/87832
+ 	* config/i386/lujiazui.md (lujiazui_div): New automaton.
+ 	(lua_div): New unit.
+ 	(lua_idiv_qi): Correct unit in the reservation.
+ 	(lua_idiv_qi_load): Ditto.
+ 	(lua_idiv_hi): Ditto.
+ 	(lua_idiv_hi_load): Ditto.
+ 	(lua_idiv_si): Ditto.
+ 	(lua_idiv_si_load): Ditto.
+ 	(lua_idiv_di): Ditto.
+ 	(lua_idiv_di_load): Ditto.
+ 	(lua_fdiv_SF): Ditto.
+ 	(lua_fdiv_SF_load): Ditto.
+ 	(lua_fdiv_DF): Ditto.
+ 	(lua_fdiv_DF_load): Ditto.
+ 	(lua_fdiv_XF): Ditto.
+ 	(lua_fdiv_XF_load): Ditto.
+ 	(lua_ssediv_SF): Ditto.
+ 	(lua_ssediv_load_SF): Ditto.
+ 	(lua_ssediv_V4SF): Ditto.
+ 	(lua_ssediv_load_V4SF): Ditto.
+ 	(lua_ssediv_V8SF): Ditto.
+ 	(lua_ssediv_load_V8SF): Ditto.
+ 	(lua_ssediv_SD): Ditto.
+ 	(lua_ssediv_load_SD): Ditto.
+ 	(lua_ssediv_V2DF): Ditto.
+ 	(lua_ssediv_load_V2DF): Ditto.
+ 	(lua_ssediv_V4DF): Ditto.
+ 	(lua_ssediv_load_V4DF): Ditto.
+ 
+ 2023-01-02  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* debug.h (dwarf_reg_sizes_constant): Declare.
+ 	* dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
+ 
+ 2023-01-02  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* dwarf2cfi.cc (init_return_column_size): Remove.
+ 	(init_one_dwarf_reg_size): Adjust.
+ 	(generate_dwarf_reg_sizes): New function.  Extracted
+ 	from expand_builtin_init_dwarf_reg_sizes.
+ 	(expand_builtin_init_dwarf_reg_sizes): Call
+ 	generate_dwarf_reg_sizes.
+ 	* target.def (init_dwarf_reg_sizes_extra): Adjust
+ 	hook signature.
+ 	* config/msp430/msp430.cc
+ 	(msp430_init_dwarf_reg_sizes_extra): Adjust.
+ 	* config/rs6000/rs6000.cc
+ 	(rs6000_init_dwarf_reg_sizes_extra): Likewise.
+ 	* doc/tm.texi: Update.
+ 
+ 2023-01-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gcc.cc (process_command): Update copyright notice dates.
+ 	* gcov-dump.cc (print_version): Ditto.
+ 	* gcov.cc (print_version): Ditto.
+ 	* gcov-tool.cc (print_version): Ditto.
+ 	* gengtype.cc (create_file): Ditto.
+ 	* doc/cpp.texi: Bump @copying's copyright year.
+ 	* doc/cppinternals.texi: Ditto.
+ 	* doc/gcc.texi: Ditto.
+ 	* doc/gccint.texi: Ditto.
+ 	* doc/gcov.texi: Ditto.
+ 	* doc/install.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2023-01-01  Roger Sayle  <roger@nextmovesoftware.com>
+ 	    Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (extendditi2): New define_insn.
+ 	(define_split): Use DWIH mode iterator to treat new extendditi2
+ 	identically to existing extendsidi2_1.
+ 	(define_peephole2): Likewise.
+ 	(define_peephole2): Likewise.
+ 	(define_Split): Likewise.
+ 
+ 
+ Copyright (C) 2023 Free Software Foundation, Inc.
+ 
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
diff -Nrcpad gcc-13.2.0/gcc/DATESTAMP gcc-14.1.0/gcc/DATESTAMP
*** gcc-13.2.0/gcc/DATESTAMP	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/DATESTAMP	Tue May  7 06:51:37 2024
***************
*** 1 ****
! 20230727
--- 1 ----
! 20240507
diff -Nrcpad gcc-13.2.0/gcc/LANGUAGES gcc-14.1.0/gcc/LANGUAGES
*** gcc-13.2.0/gcc/LANGUAGES	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/LANGUAGES	Tue May  7 06:51:37 2024
*************** Feb 1, 1998:
*** 57,63 ****
      DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
  
  
! Copyright (C) 1998-2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 57,63 ----
      DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
  
  
! Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/gcc/Makefile.in gcc-14.1.0/gcc/Makefile.in
*** gcc-13.2.0/gcc/Makefile.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/Makefile.in	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  # Makefile for GNU Compiler Collection
  # Run 'configure' to generate Makefile from Makefile.in
  
! # Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,7 ----
  # Makefile for GNU Compiler Collection
  # Run 'configure' to generate Makefile from Makefile.in
  
! # Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** MAKEOVERRIDES =
*** 55,60 ****
--- 55,61 ----
  # -------------------------------
  
  build=@build@
+ build_os=@build_os@
  host=@host@
  host_noncanonical=@host_noncanonical@
  host_os=@host_os@
*************** LDFLAGS = @LDFLAGS@
*** 158,163 ****
--- 159,167 ----
  # Should we build position-independent host code?
  PICFLAG = @PICFLAG@
  
+ # The linker flag for the above.
+ LD_PICFLAG = @LD_PICFLAG@
+ 
  # Flags to determine code coverage. When coverage is disabled, this will
  # contain the optimization flags, as you normally want code coverage
  # without optimization.
*************** rtl-ssa-warn = $(STRICT_WARN)
*** 214,219 ****
--- 218,248 ----
  GCC_WARN_CFLAGS = $(LOOSE_WARN) $(C_LOOSE_WARN) $($(@D)-warn) $(if $(filter-out $(STRICT_WARN),$($(@D)-warn)),,$(C_STRICT_WARN)) $(NOCOMMON_FLAG) $($@-warn)
  GCC_WARN_CXXFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn)
  
+ # 1 2 3 ... 9999
+ one_to_9999_0:=1 2 3 4 5 6 7 8 9
+ one_to_9999_1:=0 $(one_to_9999_0)
+ one_to_9999_2:=$(foreach i,$(one_to_9999_0),$(addprefix $(i),$(one_to_9999_1)))
+ one_to_9999_3:=$(addprefix 0,$(one_to_9999_1)) $(one_to_9999_2)
+ one_to_9999_4:=$(foreach i,$(one_to_9999_0),$(addprefix $(i),$(one_to_9999_3)))
+ one_to_9999_5:=$(addprefix 0,$(one_to_9999_3)) $(one_to_9999_4)
+ one_to_9999_6:=$(foreach i,$(one_to_9999_0),$(addprefix $(i),$(one_to_9999_5)))
+ one_to_9999:=$(one_to_9999_0) $(one_to_9999_2) $(one_to_9999_4) $(one_to_9999_6)
+ 
+ # The number of splits to be made for the match.pd files.
+ NUM_MATCH_SPLITS = @DEFAULT_MATCHPD_PARTITIONS@
+ MATCH_SPLITS_SEQ = $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999))
+ GIMPLE_MATCH_PD_SEQ_SRC = $(patsubst %, gimple-match-%.cc, $(MATCH_SPLITS_SEQ))
+ GIMPLE_MATCH_PD_SEQ_O = $(patsubst %, gimple-match-%.o, $(MATCH_SPLITS_SEQ))
+ GENERIC_MATCH_PD_SEQ_SRC = $(patsubst %, generic-match-%.cc, $(MATCH_SPLITS_SEQ))
+ GENERIC_MATCH_PD_SEQ_O = $(patsubst %, generic-match-%.o, $(MATCH_SPLITS_SEQ))
+ 
+ # The number of splits to be made for the insn-emit files.
+ NUM_INSNEMIT_SPLITS = @DEFAULT_INSNEMIT_PARTITIONS@
+ INSNEMIT_SPLITS_SEQ = $(wordlist 1,$(NUM_INSNEMIT_SPLITS),$(one_to_9999))
+ INSNEMIT_SEQ_SRC = $(patsubst %, insn-emit-%.cc, $(INSNEMIT_SPLITS_SEQ))
+ INSNEMIT_SEQ_TMP = $(patsubst %, tmp-emit-%.cc, $(INSNEMIT_SPLITS_SEQ))
+ INSNEMIT_SEQ_O = $(patsubst %, insn-emit-%.o, $(INSNEMIT_SPLITS_SEQ))
+ 
  # These files are to have specific diagnostics suppressed, or are not to
  # be subject to -Werror:
  # flex output may yield harmless "no previous prototype" warnings
*************** gengtype-lex.o-warn = -Wno-error
*** 222,229 ****
  libgcov-util.o-warn = -Wno-error
  libgcov-driver-tool.o-warn = -Wno-error
  libgcov-merge-tool.o-warn = -Wno-error
! gimple-match.o-warn = -Wno-unused
! generic-match.o-warn = -Wno-unused
  dfp.o-warn = -Wno-strict-aliasing
  
  # All warnings have to be shut off in stage1 if the compiler used then
--- 251,257 ----
  libgcov-util.o-warn = -Wno-error
  libgcov-driver-tool.o-warn = -Wno-error
  libgcov-merge-tool.o-warn = -Wno-error
! gimple-match-exports.o-warn = -Wno-unused
  dfp.o-warn = -Wno-strict-aliasing
  
  # All warnings have to be shut off in stage1 if the compiler used then
*************** LINKER = $(CC)
*** 266,284 ****
  LINKER_FLAGS = $(CFLAGS)
  endif
  
  # Enable Intel CET on Intel CET enabled host if needed.
  CET_HOST_FLAGS = @CET_HOST_FLAGS@
  COMPILER += $(CET_HOST_FLAGS)
  
- NO_PIE_CFLAGS = @NO_PIE_CFLAGS@
- NO_PIE_FLAG = @NO_PIE_FLAG@
  DO_LINK_MUTEX = @DO_LINK_MUTEX@
  
! # We don't want to compile the compilers with -fPIE, it make PCH fail.
! COMPILER += $(NO_PIE_CFLAGS)
  
! # Link with -no-pie since we compile the compiler with -fno-PIE.
! LINKER += $(NO_PIE_FLAG)
  
  # Like LINKER, but use a mutex for serializing front end links.
  ifeq (@DO_LINK_MUTEX@,true)
--- 294,312 ----
  LINKER_FLAGS = $(CFLAGS)
  endif
  
+ enable_host_pie = @enable_host_pie@
+ 
  # Enable Intel CET on Intel CET enabled host if needed.
  CET_HOST_FLAGS = @CET_HOST_FLAGS@
  COMPILER += $(CET_HOST_FLAGS)
  
  DO_LINK_MUTEX = @DO_LINK_MUTEX@
  
! # Maybe compile the compilers with -fPIE or -fPIC.
! COMPILER += $(PICFLAG)
  
! # Link with -pie, or -no-pie, depending on the above.
! LINKER += $(LD_PICFLAG)
  
  # Like LINKER, but use a mutex for serializing front end links.
  ifeq (@DO_LINK_MUTEX@,true)
*************** USER_H = $(srcdir)/ginclude/float.h \
*** 449,454 ****
--- 477,483 ----
  	 $(srcdir)/ginclude/stdnoreturn.h \
  	 $(srcdir)/ginclude/stdalign.h \
  	 $(srcdir)/ginclude/stdatomic.h \
+ 	 $(srcdir)/ginclude/stdckdint.h \
  	 $(EXTRA_HEADERS)
  
  USER_H_INC_NEXT_PRE = @user_headers_inc_next_pre@
*************** tm_p_file_list=@tm_p_file_list@
*** 578,583 ****
--- 607,614 ----
  tm_p_include_list=@tm_p_include_list@
  tm_d_file_list=@tm_d_file_list@
  tm_d_include_list=@tm_d_include_list@
+ tm_rust_file_list=@tm_rust_file_list@
+ tm_rust_include_list=@tm_rust_include_list@
  build_xm_file_list=@build_xm_file_list@
  build_xm_include_list=@build_xm_include_list@
  build_xm_defines=@build_xm_defines@
*************** OPTIONS_C_EXTRA = $(PRETTY_PRINT_H)
*** 873,880 ****
  BCONFIG_H = bconfig.h $(build_xm_file_list)
  CONFIG_H  = config.h  $(host_xm_file_list)
  TCONFIG_H = tconfig.h $(xm_file_list)
! TM_P_H    = tm_p.h    $(tm_p_file_list)
  TM_D_H    = tm_d.h    $(tm_d_file_list)
  GTM_H     = tm.h      $(tm_file_list) insn-constants.h
  TM_H      = $(GTM_H) insn-flags.h $(OPTIONS_H)
  
--- 904,913 ----
  BCONFIG_H = bconfig.h $(build_xm_file_list)
  CONFIG_H  = config.h  $(host_xm_file_list)
  TCONFIG_H = tconfig.h $(xm_file_list)
! # Some $(target)-protos.h depends on tree.h
! TM_P_H    = tm_p.h    $(tm_p_file_list) $(TREE_H)
  TM_D_H    = tm_d.h    $(tm_d_file_list)
+ TM_RUST_H = tm_rust.h $(tm_rust_file_list)
  GTM_H     = tm.h      $(tm_file_list) insn-constants.h
  TM_H      = $(GTM_H) insn-flags.h $(OPTIONS_H)
  
*************** TARGET_DEF = target.def target-hooks-mac
*** 933,942 ****
--- 966,977 ----
  C_TARGET_DEF = c-family/c-target.def target-hooks-macros.h
  COMMON_TARGET_DEF = common/common-target.def target-hooks-macros.h
  D_TARGET_DEF = d/d-target.def target-hooks-macros.h
+ RUST_TARGET_DEF = rust/rust-target.def target-hooks-macros.h
  TARGET_H = $(TM_H) target.h $(TARGET_DEF) insn-modes.h insn-codes.h
  C_TARGET_H = c-family/c-target.h $(C_TARGET_DEF)
  COMMON_TARGET_H = common/common-target.h $(INPUT_H) $(COMMON_TARGET_DEF)
  D_TARGET_H = d/d-target.h $(D_TARGET_DEF)
+ RUST_TARGET_H = rust/rust-target.h $(RUST_TARGET_DEF)
  MACHMODE_H = machmode.h mode-classes.def
  HOOKS_H = hooks.h
  HOSTHOOKS_DEF_H = hosthooks-def.h $(HOOKS_H)
*************** READ_MD_H = $(OBSTACK_H) $(HASHTAB_H) re
*** 956,962 ****
  BUILTINS_DEF = builtins.def sync-builtins.def omp-builtins.def \
  	gtm-builtins.def sanitizer.def
  INTERNAL_FN_DEF = internal-fn.def
! INTERNAL_FN_H = internal-fn.h $(INTERNAL_FN_DEF)
  TREE_CORE_H = tree-core.h $(CORETYPES_H) all-tree.def tree.def \
  	c-family/c-common.def $(lang_tree_files) \
  	$(BUILTINS_DEF) $(INPUT_H) statistics.h \
--- 991,997 ----
  BUILTINS_DEF = builtins.def sync-builtins.def omp-builtins.def \
  	gtm-builtins.def sanitizer.def
  INTERNAL_FN_DEF = internal-fn.def
! INTERNAL_FN_H = internal-fn.h $(INTERNAL_FN_DEF) insn-opinit.h
  TREE_CORE_H = tree-core.h $(CORETYPES_H) all-tree.def tree.def \
  	c-family/c-common.def $(lang_tree_files) \
  	$(BUILTINS_DEF) $(INPUT_H) statistics.h \
*************** GIMPLE_H = gimple.h gimple.def gsstruct.
*** 971,977 ****
  	$(GGC_H) $(BASIC_BLOCK_H) $(TREE_H) tree-ssa-operands.h \
  	tree-ssa-alias.h $(INTERNAL_FN_H) $(HASH_TABLE_H) is-a.h
  GCOV_IO_H = gcov-io.h version.h auto-host.h gcov-counter.def
! RECOG_H = recog.h
  EMIT_RTL_H = emit-rtl.h
  FLAGS_H = flags.h flag-types.h $(OPTIONS_H)
  OPTIONS_H = options.h flag-types.h $(OPTIONS_H_EXTRA)
--- 1006,1012 ----
  	$(GGC_H) $(BASIC_BLOCK_H) $(TREE_H) tree-ssa-operands.h \
  	tree-ssa-alias.h $(INTERNAL_FN_H) $(HASH_TABLE_H) is-a.h
  GCOV_IO_H = gcov-io.h version.h auto-host.h gcov-counter.def
! RECOG_H = recog.h $(TREE_H)
  EMIT_RTL_H = emit-rtl.h
  FLAGS_H = flags.h flag-types.h $(OPTIONS_H)
  OPTIONS_H = options.h flag-types.h $(OPTIONS_H_EXTRA)
*************** SYSTEM_H = system.h hwint.h $(srcdir)/..
*** 1003,1008 ****
--- 1038,1044 ----
  	$(HASHTAB_H)
  PREDICT_H = predict.h predict.def
  CPPLIB_H = $(srcdir)/../libcpp/include/line-map.h \
+ 	$(srcdir)/../libcpp/include/rich-location.h \
  	$(srcdir)/../libcpp/include/cpplib.h
  CODYLIB_H = $(srcdir)/../libcody/cody.hh
  INPUT_H = $(srcdir)/../libcpp/include/line-map.h input.h
*************** RTL_SSA_H = $(PRETTY_PRINT_H) insn-confi
*** 1050,1056 ****
  # programs built during a bootstrap.
  # autoconf inserts -DCROSS_DIRECTORY_STRUCTURE if we are building a
  # cross compiler which does not use the native headers and libraries.
! INTERNAL_CFLAGS = -DIN_GCC $(PICFLAG) @CROSS@
  
  # This is the variable actually used when we compile. If you change this,
  # you probably want to update BUILD_CFLAGS in configure.ac
--- 1086,1092 ----
  # programs built during a bootstrap.
  # autoconf inserts -DCROSS_DIRECTORY_STRUCTURE if we are building a
  # cross compiler which does not use the native headers and libraries.
! INTERNAL_CFLAGS = -DIN_GCC @CROSS@
  
  # This is the variable actually used when we compile. If you change this,
  # you probably want to update BUILD_CFLAGS in configure.ac
*************** ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@)
*** 1068,1094 ****
  ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
  
  # This is the variable to use when using $(COMPILER).
! ALL_COMPILERFLAGS = $(ALL_CXXFLAGS)
  
  # This is the variable to use when using $(LINKER).
! ALL_LINKERFLAGS = $(ALL_CXXFLAGS)
  
  # Build and host support libraries.
  
! # Use the "pic" build of libiberty if --enable-host-shared, unless we are
! # building for mingw.
  LIBIBERTY_PICDIR=$(if $(findstring mingw,$(target)),,pic)
! ifeq ($(enable_host_shared),yes)
  LIBIBERTY = ../libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
- BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
  else
  LIBIBERTY = ../libiberty/libiberty.a
  BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/libiberty.a
  endif
  
! # Dependencies on the intl and portability libraries.
! LIBDEPS= libcommon.a $(CPPLIB) $(LIBIBERTY) $(LIBINTL_DEP) $(LIBICONV_DEP) \
! 	$(LIBDECNUMBER) $(LIBBACKTRACE)
  
  # Likewise, for use in the tools that must run on this machine
  # even if we are cross-building GCC.
--- 1104,1135 ----
  ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
  
  # This is the variable to use when using $(COMPILER).
! ALL_COMPILERFLAGS = $(ALL_CXXFLAGS) $(PICFLAG)
  
  # This is the variable to use when using $(LINKER).
! ALL_LINKERFLAGS = $(ALL_CXXFLAGS) $(LD_PICFLAG)
  
  # Build and host support libraries.
  
! # Use the "pic" build of libiberty if --enable-host-shared or --enable-host-pie,
! # unless we are building for mingw.
  LIBIBERTY_PICDIR=$(if $(findstring mingw,$(target)),,pic)
! ifneq ($(enable_host_shared)$(enable_host_pie),)
  LIBIBERTY = ../libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
  else
  LIBIBERTY = ../libiberty/libiberty.a
+ endif
+ ifeq ($(enable_host_shared),yes)
+ BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
+ else
  BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/libiberty.a
  endif
  
! # Dependencies on the intl and portability libraries.  The INTL dep might be
! # constructed with a ./ prefix, which GNU Make removes while processing
! # prerequisites, so we need to strip it off.
! LIBDEPS= libcommon.a $(CPPLIB) $(LIBIBERTY) $(LIBICONV_DEP) $(LIBDECNUMBER) \
! 	$(LIBBACKTRACE) $(LIBINTL_DEP:./%=%)
  
  # Likewise, for use in the tools that must run on this machine
  # even if we are cross-building GCC.
*************** LANG_MAKEFRAGS = @all_lang_makefrags@
*** 1167,1172 ****
--- 1208,1215 ----
  # Used by gcc/jit/Make-lang.in
  LD_VERSION_SCRIPT_OPTION = @ld_version_script_option@
  LD_SONAME_OPTION = @ld_soname_option@
+ @ENABLE_DARWIN_AT_RPATH_TRUE@DARWIN_RPATH = @rpath
+ @ENABLE_DARWIN_AT_RPATH_FALSE@DARWIN_RPATH = ${libdir}
  
  # Flags to pass to recursive makes.
  # CC is set by configure.
*************** FLAGS_TO_PASS = \
*** 1230,1235 ****
--- 1273,1280 ----
  # All option source files
  ALL_OPT_FILES=$(lang_opt_files) $(extra_opt_files)
  
+ ALL_OPT_URL_FILES=$(patsubst %, %.urls, $(ALL_OPT_FILES))
+ 
  # Target specific, C specific object file
  C_TARGET_OBJS=@c_target_objs@
  
*************** D_TARGET_OBJS=@d_target_objs@
*** 1242,1249 ****
  # Target specific, Fortran specific object file
  FORTRAN_TARGET_OBJS=@fortran_target_objs@
  
  # Object files for gcc many-languages driver.
! GCC_OBJS = gcc.o gcc-main.o ggc-none.o
  
  c-family-warn = $(STRICT_WARN)
  
--- 1287,1297 ----
  # Target specific, Fortran specific object file
  FORTRAN_TARGET_OBJS=@fortran_target_objs@
  
+ # Target specific, Rust specific object file
+ RUST_TARGET_OBJS=@rust_target_objs@
+ 
  # Object files for gcc many-languages driver.
! GCC_OBJS = gcc.o gcc-main.o ggc-none.o gcc-urlifier.o options-urls.o
  
  c-family-warn = $(STRICT_WARN)
  
*************** C_COMMON_OBJS = c-family/c-common.o c-fa
*** 1258,1263 ****
--- 1306,1312 ----
  
  # Analyzer object files
  ANALYZER_OBJS = \
+ 	analyzer/access-diagram.o \
  	analyzer/analysis-plan.o \
  	analyzer/analyzer.o \
  	analyzer/analyzer-language.o \
*************** ANALYZER_OBJS = \
*** 1278,1283 ****
--- 1327,1333 ----
  	analyzer/engine.o \
  	analyzer/feasible-graph.o \
  	analyzer/function-set.o \
+ 	analyzer/infinite-loop.o \
  	analyzer/infinite-recursion.o \
  	analyzer/kf.o \
  	analyzer/kf-analyzer.o \
*************** ANALYZER_OBJS = \
*** 1286,1291 ****
--- 1336,1343 ----
  	analyzer/pending-diagnostic.o \
  	analyzer/program-point.o \
  	analyzer/program-state.o \
+ 	analyzer/ranges.o \
+ 	analyzer/record-layout.o \
  	analyzer/region.o \
  	analyzer/region-model.o \
  	analyzer/region-model-asm.o \
*************** ANALYZER_OBJS = \
*** 1303,1308 ****
--- 1355,1361 ----
  	analyzer/store.o \
  	analyzer/supergraph.o \
  	analyzer/svalue.o \
+ 	analyzer/symbol.o \
  	analyzer/trimmed-graph.o \
  	analyzer/varargs.o
  
*************** ANALYZER_OBJS = \
*** 1311,1322 ****
  # will build them sooner, because they are large and otherwise tend to be
  # the last objects to finish building.
  OBJS = \
! 	gimple-match.o \
! 	generic-match.o \
  	insn-attrtab.o \
  	insn-automata.o \
  	insn-dfatab.o \
! 	insn-emit.o \
  	insn-extract.o \
  	insn-latencytab.o \
  	insn-modes.o \
--- 1364,1376 ----
  # will build them sooner, because they are large and otherwise tend to be
  # the last objects to finish building.
  OBJS = \
! 	$(GIMPLE_MATCH_PD_SEQ_O) \
! 	gimple-match-exports.o \
! 	$(GENERIC_MATCH_PD_SEQ_O) \
  	insn-attrtab.o \
  	insn-automata.o \
  	insn-dfatab.o \
! 	$(INSNEMIT_SEQ_O) \
  	insn-extract.o \
  	insn-latencytab.o \
  	insn-modes.o \
*************** OBJS = \
*** 1405,1415 ****
--- 1459,1471 ----
  	fixed-value.o \
  	fold-const.o \
  	fold-const-call.o \
+ 	fold-mem-offsets.o \
  	function.o \
  	function-abi.o \
  	function-tests.o \
  	fwprop.o \
  	gcc-rich-location.o \
+ 	gcc-urlifier.o \
  	gcse.o \
  	gcse-common.o \
  	ggc-common.o \
*************** OBJS = \
*** 1422,1432 ****
--- 1478,1490 ----
  	gimple-iterator.o \
  	gimple-fold.o \
  	gimple-harden-conditionals.o \
+ 	gimple-harden-control-flow.o \
  	gimple-laddress.o \
  	gimple-loop-interchange.o \
  	gimple-loop-jam.o \
  	gimple-loop-versioning.o \
  	gimple-low.o \
+ 	gimple-lower-bitint.o \
  	gimple-predicate-analysis.o \
  	gimple-pretty-print.o \
  	gimple-range.o \
*************** OBJS = \
*** 1436,1445 ****
--- 1494,1505 ----
  	gimple-range-gori.o \
  	gimple-range-infer.o \
  	gimple-range-op.o \
+ 	gimple-range-phi.o \
  	gimple-range-trace.o \
  	gimple-ssa-backprop.o \
  	gimple-ssa-isolate-paths.o \
  	gimple-ssa-nonnull-compare.o \
+ 	gimple-ssa-sccopy.o \
  	gimple-ssa-split-paths.o \
  	gimple-ssa-store-merging.o \
  	gimple-ssa-strength-reduction.o \
*************** OBJS = \
*** 1500,1505 ****
--- 1560,1566 ----
  	ipa-reference.o \
  	ipa-ref.o \
  	ipa-utils.o \
+ 	ipa-strub.o \
  	ipa.o \
  	ira.o \
  	ira-build.o \
*************** OBJS = \
*** 1553,1558 ****
--- 1614,1620 ----
  	optinfo.o \
  	optinfo-emit-json.o \
  	options-save.o \
+ 	options-urls.o \
  	opts-global.o \
  	ordered-hash-map-tests.o \
  	passes.o \
*************** OBJS = \
*** 1569,1574 ****
--- 1631,1637 ----
  	range.o \
  	range-op.o \
  	range-op-float.o \
+ 	range-op-ptr.o \
  	read-md.o \
  	read-rtl.o \
  	read-rtl-function.o \
*************** OBJS = \
*** 1590,1595 ****
--- 1653,1659 ----
  	rtl-ssa/changes.o \
  	rtl-ssa/functions.o \
  	rtl-ssa/insns.o \
+ 	rtl-ssa/movement.o \
  	rtl-tests.o \
  	rtl.o \
  	rtlhash.o \
*************** OBJS-libcommon = diagnostic-spec.o diagn
*** 1762,1774 ****
  	json.o \
  	sbitmap.o \
  	vec.o input.o hash-table.o ggc-none.o memory-block.o \
! 	selftest.o selftest-diagnostic.o sort.o
  
  # Objects in libcommon-target.a, used by drivers and by the core
  # compiler and containing target-dependent code.
  OBJS-libcommon-target = $(common_out_object_file) prefix.o \
  	opts.o opts-common.o options.o vec.o hooks.o common/common-targhooks.o \
! 	hash-table.o file-find.o spellcheck.o selftest.o opt-suggestions.o
  
  # This lists all host objects for the front ends.
  ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
--- 1826,1848 ----
  	json.o \
  	sbitmap.o \
  	vec.o input.o hash-table.o ggc-none.o memory-block.o \
! 	selftest.o selftest-diagnostic.o sort.o \
! 	text-art/box-drawing.o \
! 	text-art/canvas.o \
! 	text-art/ruler.o \
! 	text-art/selftests.o \
! 	text-art/style.o \
! 	text-art/styled-string.o \
! 	text-art/table.o \
! 	text-art/theme.o \
! 	text-art/widget.o
  
  # Objects in libcommon-target.a, used by drivers and by the core
  # compiler and containing target-dependent code.
  OBJS-libcommon-target = $(common_out_object_file) prefix.o \
  	opts.o opts-common.o options.o vec.o hooks.o common/common-targhooks.o \
! 	hash-table.o file-find.o spellcheck.o selftest.o opt-suggestions.o \
! 	options-urls.o
  
  # This lists all host objects for the front ends.
  ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
*************** TREECHECKING = @TREECHECKING@
*** 1802,1811 ****
  FULL_DRIVER_NAME=$(target_noncanonical)-gcc-$(version)$(exeext)
  
  MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \
!  insn-output.cc insn-recog.cc insn-emit.cc insn-extract.cc insn-peep.cc \
   insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \
   insn-latencytab.cc insn-opinit.cc insn-opinit.h insn-preds.cc insn-constants.h \
!  tm-preds.h tm-constrs.h checksum-options gimple-match.cc generic-match.cc \
   tree-check.h min-insn-modes.cc insn-modes.cc insn-modes.h insn-modes-inline.h \
   genrtl.h gt-*.h gtype-*.h gtype-desc.cc gtyp-input.list \
   case-cfn-macros.h cfn-operators.pd \
--- 1876,1887 ----
  FULL_DRIVER_NAME=$(target_noncanonical)-gcc-$(version)$(exeext)
  
  MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \
!  insn-output.cc insn-recog.cc $(INSNEMIT_SEQ_SRC) \
!  insn-extract.cc insn-peep.cc \
   insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \
   insn-latencytab.cc insn-opinit.cc insn-opinit.h insn-preds.cc insn-constants.h \
!  tm-preds.h tm-constrs.h checksum-options $(GIMPLE_MATCH_PD_SEQ_SRC) \
!  $(GENERIC_MATCH_PD_SEQ_SRC) gimple-match-auto.h generic-match-auto.h \
   tree-check.h min-insn-modes.cc insn-modes.cc insn-modes.h insn-modes-inline.h \
   genrtl.h gt-*.h gtype-*.h gtype-desc.cc gtyp-input.list \
   case-cfn-macros.h cfn-operators.pd \
*************** tconfig.h: cs-tconfig.h ; @true
*** 1956,1961 ****
--- 2032,2038 ----
  tm.h: cs-tm.h ; @true
  tm_p.h: cs-tm_p.h ; @true
  tm_d.h: cs-tm_d.h ; @true
+ tm_rust.h: cs-tm_rust.h ; @true
  
  cs-config.h: Makefile
  	TARGET_CPU_DEFAULT="" \
*************** cs-tconfig.h: Makefile
*** 1973,1981 ****
  	$(SHELL) $(srcdir)/mkconfig.sh tconfig.h
  
  cs-tm.h: Makefile
! 	TARGET_CPU_DEFAULT="$(target_cpu_default)" \
! 	HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
! 	$(SHELL) $(srcdir)/mkconfig.sh tm.h
  
  cs-tm_p.h: Makefile
  	TARGET_CPU_DEFAULT="" \
--- 2050,2061 ----
  	$(SHELL) $(srcdir)/mkconfig.sh tconfig.h
  
  cs-tm.h: Makefile
! @ENABLE_DARWIN_AT_RPATH_FALSE@	TARGET_CPU_DEFAULT="$(target_cpu_default)" \
! @ENABLE_DARWIN_AT_RPATH_FALSE@	HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
! @ENABLE_DARWIN_AT_RPATH_FALSE@	$(SHELL) $(srcdir)/mkconfig.sh tm.h
! @ENABLE_DARWIN_AT_RPATH_TRUE@	TARGET_CPU_DEFAULT="$(target_cpu_default)" \
! @ENABLE_DARWIN_AT_RPATH_TRUE@	HEADERS="$(tm_include_list)" DEFINES="$(tm_defines) DARWIN_AT_RPATH=1" \
! @ENABLE_DARWIN_AT_RPATH_TRUE@	$(SHELL) $(srcdir)/mkconfig.sh tm.h
  
  cs-tm_p.h: Makefile
  	TARGET_CPU_DEFAULT="" \
*************** cs-tm_d.h: Makefile
*** 1987,1992 ****
--- 2067,2077 ----
  	HEADERS="$(tm_d_include_list)" DEFINES="" \
  	$(SHELL) $(srcdir)/mkconfig.sh tm_d.h
  
+ cs-tm_rust.h: Makefile
+ 	TARGET_CPU_DEFAULT="" \
+ 	HEADERS="$(tm_rust_include_list)" DEFINES="" \
+ 	$(SHELL) $(srcdir)/mkconfig.sh tm_rust.h
+ 
  # Don't automatically run autoconf, since configure.ac might be accidentally
  # newer than configure.  Also, this writes into the source directory which
  # might be on a read-only file system.  If configured for maintainer mode
*************** default-d.o: config/default-d.cc
*** 2323,2328 ****
--- 2408,2419 ----
  	$(COMPILE) $<
  	$(POSTCOMPILE)
  
+ # Files used by the Rust language front end.
+ 
+ default-rust.o: config/default-rust.cc
+ 	$(COMPILE) $<
+ 	$(POSTCOMPILE)
+ 
  # Language-independent files.
  
  DRIVER_DEFINES = \
*************** s-specs : Makefile
*** 2354,2362 ****
  	$(STAMP) s-specs
  
  optionlist: s-options ; @true
! s-options: $(ALL_OPT_FILES) Makefile $(srcdir)/opt-gather.awk
  	LC_ALL=C ; export LC_ALL ; \
! 	$(AWK) -f $(srcdir)/opt-gather.awk $(ALL_OPT_FILES) > tmp-optionlist
  	$(SHELL) $(srcdir)/../move-if-change tmp-optionlist optionlist
  	$(STAMP) s-options
  
--- 2445,2453 ----
  	$(STAMP) s-specs
  
  optionlist: s-options ; @true
! s-options: $(ALL_OPT_FILES) $(ALL_OPT_URL_FILES) Makefile $(srcdir)/opt-gather.awk
  	LC_ALL=C ; export LC_ALL ; \
! 	$(AWK) -f $(srcdir)/opt-gather.awk $(ALL_OPT_FILES) $(ALL_OPT_URL_FILES) > tmp-optionlist
  	$(SHELL) $(srcdir)/../move-if-change tmp-optionlist optionlist
  	$(STAMP) s-options
  
*************** options-save.cc: optionlist $(srcdir)/op
*** 2372,2377 ****
--- 2463,2474 ----
  	       -f $(srcdir)/optc-save-gen.awk \
  	       -v header_name="config.h system.h coretypes.h tm.h" < $< > $@
  
+ options-urls.cc: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opt-read.awk \
+     $(srcdir)/options-urls-cc-gen.awk
+ 	$(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/opt-read.awk \
+ 	       -f $(srcdir)/options-urls-cc-gen.awk \
+ 	       -v header_name="config.h system.h coretypes.h tm.h" < $< > $@
+ 
  options.h: s-options-h ; @true
  s-options-h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opt-read.awk \
      $(srcdir)/opth-gen.awk
*************** $(common_out_object_file): $(common_out_
*** 2418,2427 ****
  # and compile them.
  
  .PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \
!   insn-emit.cc insn-recog.cc insn-extract.cc insn-output.cc insn-peep.cc \
!   insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \
!   insn-latencytab.cc insn-preds.cc gimple-match.cc generic-match.cc \
!   insn-target-def.h
  
  # Dependencies for the md file.  The first time through, we just assume
  # the md file itself and the generated dependency file (in order to get
--- 2515,2525 ----
  # and compile them.
  
  .PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \
!   $(INSNEMIT_SEQ_SRC) insn-recog.cc insn-extract.cc insn-output.cc \
!   insn-peep.cc insn-attr.h insn-attr-common.h insn-attrtab.cc \
!   insn-dfatab.cc insn-latencytab.cc insn-preds.cc \
!   $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \
!   gimple-match-auto.h generic-match-auto.h insn-target-def.h
  
  # Dependencies for the md file.  The first time through, we just assume
  # the md file itself and the generated dependency file (in order to get
*************** s-mddeps: $(md_file) $(MD_INCLUDES) buil
*** 2444,2450 ****
  simple_rtl_generated_h	= insn-attr.h insn-attr-common.h insn-codes.h \
  			  insn-config.h insn-flags.h insn-target-def.h
  
! simple_rtl_generated_c	= insn-automata.cc insn-emit.cc \
  			  insn-extract.cc insn-output.cc \
  			  insn-peep.cc insn-recog.cc
  
--- 2542,2548 ----
  simple_rtl_generated_h	= insn-attr.h insn-attr-common.h insn-codes.h \
  			  insn-config.h insn-flags.h insn-target-def.h
  
! simple_rtl_generated_c	= insn-automata.cc \
  			  insn-extract.cc insn-output.cc \
  			  insn-peep.cc insn-recog.cc
  
*************** $(simple_generated_c:insn-%.cc=s-%): s-%
*** 2473,2480 ****
--- 2571,2590 ----
  	$(SHELL) $(srcdir)/../move-if-change tmp-$*.cc insn-$*.cc
  	$(STAMP) s-$*
  
+ # genemit splits its output into different files and doesn't write to
+ # stdout. (but rather to tmp-emit-01.cc..tmp-emit-10.cc)
+ $(INSNEMIT_SEQ_SRC): s-tmp-emit; @true
+ s-tmp-emit: build/genemit$(build_exeext) $(MD_DEPS) insn-conditions.md
+ 	$(RUN_GEN) build/genemit$(build_exeext) $(md_file) insn-conditions.md \
+ 	  $(addprefix -O,${INSNEMIT_SEQ_TMP})
+ 	$(foreach id, $(INSNEMIT_SPLITS_SEQ), \
+ 	  $(SHELL) $(srcdir)/../move-if-change tmp-emit-$(id).cc \
+ 	  insn-emit-$(id).cc;)
+ 	$(STAMP) s-tmp-emit
+ 
  # gencheck doesn't read the machine description, and the file produced
  # doesn't use the insn-* convention.
+ 
  tree-check.h: s-check ; @true
  s-check : build/gencheck$(build_exeext)
  	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
*************** s-d-target-hooks-def-h: build/genhooks$(
*** 2628,2633 ****
--- 2738,2752 ----
  					     d/d-target-hooks-def.h
  	$(STAMP) s-d-target-hooks-def-h
  
+ rust/rust-target-hooks-def.h: s-rust-target-hooks-def-h; @true
+ 
+ s-rust-target-hooks-def-h: build/genhooks$(build_exeext)
+ 	$(RUN_GEN) build/genhooks$(build_exeext) "Rust Target Hook" \
+ 					     > tmp-rust-target-hooks-def.h
+ 	$(SHELL) $(srcdir)/../move-if-change tmp-rust-target-hooks-def.h \
+ 					     rust/rust-target-hooks-def.h
+ 	$(STAMP) s-rust-target-hooks-def-h
+ 
  # check if someone mistakenly only changed tm.texi.
  # We use a different pathname here to avoid a circular dependency.
  s-tm-texi: $(srcdir)/doc/../doc/tm.texi
*************** s-tm-texi: build/genhooks$(build_exeext)
*** 2652,2657 ****
--- 2771,2777 ----
  	    || test $(srcdir)/doc/tm.texi -nt $(srcdir)/c-family/c-target.def \
  	    || test $(srcdir)/doc/tm.texi -nt $(srcdir)/common/common-target.def \
  	    || test $(srcdir)/doc/tm.texi -nt $(srcdir)/d/d-target.def \
+ 	    || test $(srcdir)/doc/tm.texi -nt $(srcdir)/rust/rust-target.def \
  	  ); then \
  	  echo >&2 ; \
  	  echo You should edit $(srcdir)/doc/tm.texi.in rather than $(srcdir)/doc/tm.texi . >&2 ; \
*************** s-tm-texi: build/genhooks$(build_exeext)
*** 2663,2681 ****
  	  false; \
  	fi
  
! gimple-match.cc: s-match gimple-match-head.cc ; @true
! generic-match.cc: s-match generic-match-head.cc ; @true
  
! s-match: build/genmatch$(build_exeext) $(srcdir)/match.pd cfn-operators.pd
! 	$(RUN_GEN) build/genmatch$(build_exeext) --gimple $(srcdir)/match.pd \
! 	    > tmp-gimple-match.cc
! 	$(RUN_GEN) build/genmatch$(build_exeext) --generic $(srcdir)/match.pd \
! 	    > tmp-generic-match.cc
! 	$(SHELL) $(srcdir)/../move-if-change tmp-gimple-match.cc \
! 	    					gimple-match.cc
! 	$(SHELL) $(srcdir)/../move-if-change tmp-generic-match.cc \
! 	    					generic-match.cc
! 	$(STAMP) s-match
  
  GTFILES = $(CPPLIB_H) $(srcdir)/input.h $(srcdir)/coretypes.h \
    $(host_xm_file_list) \
--- 2783,2816 ----
  	  false; \
  	fi
  
! $(GIMPLE_MATCH_PD_SEQ_SRC): s-gimple-match gimple-match-head.cc; @true
! gimple-match-auto.h: s-gimple-match; @true
! $(GENERIC_MATCH_PD_SEQ_SRC): s-generic-match generic-match-head.cc; @true
! generic-match-auto.h: s-generic-match; @true
  
! s-gimple-match: build/genmatch$(build_exeext) \
! 	    $(srcdir)/match.pd cfn-operators.pd
! 	$(RUN_GEN) build/genmatch$(build_exeext) --gimple \
! 	    --header=tmp-gimple-match-auto.h --include=gimple-match-auto.h \
! 	    $(srcdir)/match.pd $(patsubst %, tmp-%, $(GIMPLE_MATCH_PD_SEQ_SRC))
! 	$(foreach id, $(MATCH_SPLITS_SEQ), \
! 	  $(SHELL) $(srcdir)/../move-if-change tmp-gimple-match-$(id).cc \
! 	    gimple-match-$(id).cc;)
! 	$(SHELL) $(srcdir)/../move-if-change tmp-gimple-match-auto.h \
! 						gimple-match-auto.h
! 	$(STAMP) s-gimple-match
! 
! s-generic-match: build/genmatch$(build_exeext) \
! 	    $(srcdir)/match.pd cfn-operators.pd
! 	$(RUN_GEN) build/genmatch$(build_exeext) --generic \
! 	    --header=tmp-generic-match-auto.h --include=generic-match-auto.h \
! 	    $(srcdir)/match.pd $(patsubst %, tmp-%, $(GENERIC_MATCH_PD_SEQ_SRC))
! 	$(foreach id, $(MATCH_SPLITS_SEQ), \
! 	  $(SHELL) $(srcdir)/../move-if-change tmp-generic-match-$(id).cc \
! 	    generic-match-$(id).cc;)
! 	$(SHELL) $(srcdir)/../move-if-change tmp-generic-match-auto.h \
! 						generic-match-auto.h
! 	$(STAMP) s-generic-match
  
  GTFILES = $(CPPLIB_H) $(srcdir)/input.h $(srcdir)/coretypes.h \
    $(host_xm_file_list) \
*************** GTFILES = $(CPPLIB_H) $(srcdir)/input.h
*** 2693,2699 ****
    $(srcdir)/symtab-thunks.h $(srcdir)/symtab-thunks.cc \
    $(srcdir)/symtab-clones.h \
    $(srcdir)/reload.h $(srcdir)/caller-save.cc $(srcdir)/symtab.cc \
!   $(srcdir)/alias.cc $(srcdir)/bitmap.cc $(srcdir)/cselib.cc $(srcdir)/cgraph.cc \
    $(srcdir)/ipa-prop.cc $(srcdir)/ipa-cp.cc $(srcdir)/ipa-utils.h \
    $(srcdir)/ipa-param-manipulation.h $(srcdir)/ipa-sra.cc \
    $(srcdir)/ipa-modref.h $(srcdir)/ipa-modref.cc \
--- 2828,2835 ----
    $(srcdir)/symtab-thunks.h $(srcdir)/symtab-thunks.cc \
    $(srcdir)/symtab-clones.h \
    $(srcdir)/reload.h $(srcdir)/caller-save.cc $(srcdir)/symtab.cc \
!   $(srcdir)/alias.cc $(srcdir)/attribs.cc \
!   $(srcdir)/bitmap.cc $(srcdir)/cselib.cc $(srcdir)/cgraph.cc \
    $(srcdir)/ipa-prop.cc $(srcdir)/ipa-cp.cc $(srcdir)/ipa-utils.h \
    $(srcdir)/ipa-param-manipulation.h $(srcdir)/ipa-sra.cc \
    $(srcdir)/ipa-modref.h $(srcdir)/ipa-modref.cc \
*************** GTFILES = $(CPPLIB_H) $(srcdir)/input.h
*** 2755,2760 ****
--- 2891,2897 ----
    $(srcdir)/sanopt.cc \
    $(srcdir)/sancov.cc \
    $(srcdir)/ipa-devirt.cc \
+   $(srcdir)/ipa-strub.cc \
    $(srcdir)/internal-fn.h \
    $(srcdir)/calls.cc \
    $(srcdir)/omp-general.h \
*************** generated_files = config.h tm.h $(TM_P_H
*** 2810,2817 ****
         $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \
         options.h target-hooks-def.h insn-opinit.h \
         common/common-target-hooks-def.h pass-instances.def \
!        gimple-match.cc generic-match.cc \
         c-family/c-target-hooks-def.h d/d-target-hooks-def.h \
         case-cfn-macros.h \
         cfn-operators.pd omp-device-properties.h
  
--- 2947,2956 ----
         $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \
         options.h target-hooks-def.h insn-opinit.h \
         common/common-target-hooks-def.h pass-instances.def \
!        $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \
!        gimple-match-auto.h generic-match-auto.h \
         c-family/c-target-hooks-def.h d/d-target-hooks-def.h \
+        $(TM_RUST_H) rust/rust-target-hooks-def.h \
         case-cfn-macros.h \
         cfn-operators.pd omp-device-properties.h
  
*************** build/genrecog.o : genrecog.cc $(RTL_BAS
*** 2946,2956 ****
    $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H)		\
    $(HASH_TABLE_H) inchash.h
  build/genhooks.o : genhooks.cc $(TARGET_DEF) $(C_TARGET_DEF)		\
!   $(COMMON_TARGET_DEF) $(D_TARGET_DEF) $(BCONFIG_H) $(SYSTEM_H) errors.h
  build/genmddump.o : genmddump.cc $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
    $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H)
! build/genmatch.o : genmatch.cc $(BCONFIG_H) $(SYSTEM_H) \
!   $(CORETYPES_H) errors.h $(HASH_TABLE_H) hash-map.h $(GGC_H) is-a.h \
    tree.def builtins.def internal-fn.def case-cfn-macros.h $(CPPLIB_H)
  build/gencfn-macros.o : gencfn-macros.cc $(BCONFIG_H) $(SYSTEM_H)	\
    $(CORETYPES_H) errors.h $(HASH_TABLE_H) hash-set.h builtins.def	\
--- 3085,3096 ----
    $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H)		\
    $(HASH_TABLE_H) inchash.h
  build/genhooks.o : genhooks.cc $(TARGET_DEF) $(C_TARGET_DEF)		\
!   $(COMMON_TARGET_DEF) $(D_TARGET_DEF) $(RUST_TARGET_DEF) $(BCONFIG_H) \
!   $(SYSTEM_H) errors.h
  build/genmddump.o : genmddump.cc $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
    $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H)
! build/genmatch.o : genmatch.cc $(BCONFIG_H) $(SYSTEM_H) $(CORETYPES_H) \
!   errors.h $(HASH_TABLE_H) hash-map.h $(GGC_H) is-a.h ordered-hash-map.h \
    tree.def builtins.def internal-fn.def case-cfn-macros.h $(CPPLIB_H)
  build/gencfn-macros.o : gencfn-macros.cc $(BCONFIG_H) $(SYSTEM_H)	\
    $(CORETYPES_H) errors.h $(HASH_TABLE_H) hash-set.h builtins.def	\
*************** install-gcc-tooldir:
*** 3215,3221 ****
  
  macro_list: s-macro_list; @true
  s-macro_list : $(GCC_PASSES) cc1$(exeext)
! 	echo | $(GCC_FOR_TARGET) -E -dM - | \
  	  sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \
  		 -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
  	  sort -u > tmp-macro_list
--- 3355,3361 ----
  
  macro_list: s-macro_list; @true
  s-macro_list : $(GCC_PASSES) cc1$(exeext)
! 	echo | $(GCC_FOR_TARGET) -nostdinc -E -dM - | \
  	  sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \
  		 -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
  	  sort -u > tmp-macro_list
*************** stmp-fixinc: gsyslimits.h macro_list fix
*** 3276,3283 ****
  	    multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
  	    fix_dir=include-fixed$${multi_dir}; \
  	    if ! $(inhibit_libc) && test ! -d ${BUILD_SYSTEM_HEADER_DIR}; then \
! 	      echo The directory that should contain system headers does not exist: >&2 ; \
  	      echo "  ${BUILD_SYSTEM_HEADER_DIR}" >&2 ; \
  	      tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
  	      if test "x${BUILD_SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \
  	      then sleep 1; else exit 1; fi; \
--- 3416,3428 ----
  	    multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
  	    fix_dir=include-fixed$${multi_dir}; \
  	    if ! $(inhibit_libc) && test ! -d ${BUILD_SYSTEM_HEADER_DIR}; then \
! 	      echo "The directory (BUILD_SYSTEM_HEADER_DIR) that should contain system headers does not exist:" >&2 ; \
  	      echo "  ${BUILD_SYSTEM_HEADER_DIR}" >&2 ; \
+ 	      case ${build_os} in \
+ 	        darwin*) \
+ 	          echo "(on Darwin this usually means you need to pass the --with-sysroot= flag to point to a valid MacOS SDK)" >&2; \
+ 	          ;; \
+ 	      esac; \
  	      tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
  	      if test "x${BUILD_SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \
  	      then sleep 1; else exit 1; fi; \
*************** install-no-fixedincludes:
*** 3335,3340 ****
--- 3480,3492 ----
  
  doc: $(BUILD_INFO) $(GENERATED_MANPAGES)
  
+ # If BUILD_INFO is set to no-info by configure, we still want to check
+ # 'info' dependencies even the build rules are no-ops because
+ # BUILD_INFO != info (see %.info rule)
+ ifeq ($(BUILD_INFO),no-info)
+ no-info: info
+ endif
+ 
  INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
              doc/gccinstall.info doc/cppinternals.info
  
*************** $(build_htmldir)/gccinstall/index.html:
*** 3477,3482 ****
--- 3629,3650 ----
  	DESTDIR=$(@D) \
  	$(SHELL) $(srcdir)/doc/install.texi2html
  
+ # Regenerate the .opt.urls files from the generated html, and from the .opt
+ # files.  Doing so requires all languages that have their own HTML manuals
+ # to be enabled.
+ .PHONY: regenerate-opt-urls
+ OPT_URLS_HTML_DEPS = $(build_htmldir)/gcc/Option-Index.html \
+ 	$(build_htmldir)/gdc/Option-Index.html \
+ 	$(build_htmldir)/gfortran/Option-Index.html
+ 
+ regenerate-opt-urls: $(srcdir)/regenerate-opt-urls.py $(OPT_URLS_HTML_DEPS)
+ 	$(srcdir)/regenerate-opt-urls.py $(build_htmldir) $(shell dirname $(srcdir))
+ 
+ # Run the unit tests for regenerate-opt-urls.py
+ .PHONY: regenerate-opt-urls-unit-test
+ regenerate-opt-urls-unit-test: $(OPT_URLS_HTML_DEPS)
+ 	$(srcdir)/regenerate-opt-urls.py $(build_htmldir) $(shell dirname $(srcdir)) --unit-test
+ 
  MANFILES = doc/gcov.1 doc/cpp.1 doc/gcc.1 doc/gfdl.7 doc/gpl.7 \
             doc/fsf-funding.7 doc/gcov-tool.1 doc/gcov-dump.1 \
  	   $(if $(filter yes,@enable_lto@),doc/lto-dump.1)
*************** distclean: clean lang.distclean
*** 3601,3607 ****
  	-rm -f testsuite/*.log testsuite/*.sum
  	-cd testsuite && rm -f x *.x *.x? *.exe *.rpo *.o *.s *.S *.cc
  	-cd testsuite && rm -f *.out *.gcov *$(coverageexts)
- 	-rm -rf ${QMTEST_DIR} stamp-qmtest
  	-rm -f .gdbinit configargs.h
  	-rm -f gcov.pod
  # Delete po/*.gmo only if we are not building in the source directory.
--- 3769,3774 ----
*************** PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $
*** 3690,3696 ****
    hash-set.h dominance.h cfg.h cfgrtl.h cfganal.h cfgbuild.h cfgcleanup.h \
    lcm.h cfgloopmanip.h file-prefix-map.h builtins.def $(INSN_ATTR_H) \
    pass-instances.def params.list $(srcdir)/../include/gomp-constants.h \
!   $(EXPR_H)
  
  # generate the 'build fragment' b-header-vars
  s-header-vars: Makefile
--- 3857,3863 ----
    hash-set.h dominance.h cfg.h cfgrtl.h cfganal.h cfgbuild.h cfgcleanup.h \
    lcm.h cfgloopmanip.h file-prefix-map.h builtins.def $(INSN_ATTR_H) \
    pass-instances.def params.list $(srcdir)/../include/gomp-constants.h \
!   $(EXPR_H) $(srcdir)/analyzer/*.h
  
  # generate the 'build fragment' b-header-vars
  s-header-vars: Makefile
*************** install-gengtype: installdirs gengtype$(
*** 3713,3720 ****
  
  # Install the headers needed to build a plugin.
  install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
! # We keep the directory structure for files in config, common/config or
! # c-family and .def files. All other files are flattened to a single directory.
  	$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
  	headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
  	srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
--- 3880,3888 ----
  
  # Install the headers needed to build a plugin.
  install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
! # We keep the directory structure for files in analyzer, config, common/config
! # or c-family and .def files.
! # All other files are flattened to a single directory.
  	$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
  	headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
  	srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
*************** install-plugin: installdirs lang.install
*** 3726,3732 ****
  	  else continue; \
  	  fi; \
  	  case $$path in \
! 	  "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
  	  | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
  	    base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
  	  *) base=`basename $$path` ;; \
--- 3894,3901 ----
  	  else continue; \
  	  fi; \
  	  case $$path in \
! 	  "$(srcdir)"/analyzer/* \
! 	  | "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
  	  | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
  	    base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
  	  *) base=`basename $$path` ;; \
*************** site.exp: ./config.status Makefile
*** 4141,4146 ****
--- 4310,4318 ----
  	  echo "set COMPAT_OPTIONS \"$(COMPAT_OPTIONS)\"" >> ./site.tmp; \
  	else true; \
  	fi
+ 	@if test "X@ENABLE_DARWIN_AT_RPATH_TRUE@" != "X#" ; then \
+ 	  echo "set ENABLE_DARWIN_AT_RPATH 1" >> ./site.tmp; \
+ 	fi
  	@echo "## All variables above are generated by configure. Do Not Edit ##" >> ./site.tmp
  	@cat ./site.tmp > site.exp
  	@cat site.bak | sed \
*************** $(lang_checks_parallel): site.exp
*** 4165,4170 ****
--- 4337,4343 ----
  	vardots=`echo "$$variant" | sed 's,/,.,g'`; \
  	$(MAKE) TESTSUITEDIR="testsuite.$$vardots" \
  	  RUNTESTFLAGS="--target_board=$$variant $(RUNTESTFLAGS)" \
+ 	  EXPECT=$(EXPECT) \
  	  "$$target"
  
  TESTSUITEDIR = testsuite
*************** $(patsubst %,%-subtargets,$(lang_checks)
*** 4198,4215 ****
  check_p_tool=$(firstword $(subst _, ,$*))
  check_p_count=$(check_$(check_p_tool)_parallelize)
  check_p_subno=$(word 2,$(subst _, ,$*))
- check_p_numbers0:=1 2 3 4 5 6 7 8 9
- check_p_numbers1:=0 $(check_p_numbers0)
- check_p_numbers2:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers1)))
- check_p_numbers3:=$(addprefix 0,$(check_p_numbers1)) $(check_p_numbers2)
- check_p_numbers4:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers3)))
- check_p_numbers5:=$(addprefix 0,$(check_p_numbers3)) $(check_p_numbers4)
- check_p_numbers6:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers5)))
- check_p_numbers:=$(check_p_numbers0) $(check_p_numbers2) $(check_p_numbers4) $(check_p_numbers6)
  check_p_subdir=$(subst _,,$*)
  check_p_subdirs=$(wordlist 1,$(check_p_count),$(wordlist 1, \
  		$(if $(GCC_TEST_PARALLEL_SLOTS),$(GCC_TEST_PARALLEL_SLOTS),128), \
! 		$(check_p_numbers)))
  
  # For parallelized check-% targets, this decides whether parallelization
  # is desirable (if -jN is used).  If desirable, recursive make is run with
--- 4371,4380 ----
  check_p_tool=$(firstword $(subst _, ,$*))
  check_p_count=$(check_$(check_p_tool)_parallelize)
  check_p_subno=$(word 2,$(subst _, ,$*))
  check_p_subdir=$(subst _,,$*)
  check_p_subdirs=$(wordlist 1,$(check_p_count),$(wordlist 1, \
  		$(if $(GCC_TEST_PARALLEL_SLOTS),$(GCC_TEST_PARALLEL_SLOTS),128), \
! 		$(one_to_9999)))
  
  # For parallelized check-% targets, this decides whether parallelization
  # is desirable (if -jN is used).  If desirable, recursive make is run with
*************** $(lang_checks_parallelized): check-% : s
*** 4238,4243 ****
--- 4403,4409 ----
  	  GCC_RUNTEST_PARALLELIZE_DIR=`${PWD_COMMAND}`/$(TESTSUITEDIR)/$(check_p_tool)-parallel ; \
  	  export GCC_RUNTEST_PARALLELIZE_DIR ; \
  	  $(MAKE) TESTSUITEDIR="$(TESTSUITEDIR)" RUNTESTFLAGS="$(RUNTESTFLAGS)" \
+ 	    EXPECT=$(EXPECT) \
  	    check-parallel-$* \
  	    $(patsubst %,check-parallel-$*_%, $(check_p_subdirs)); \
  	  sums= ; logs= ; \
*************** $(lang_checks_parallelized): check-% : s
*** 4256,4261 ****
--- 4422,4428 ----
  	  rm -rf $(TESTSUITEDIR)/$*-parallel || true; \
  	else \
  	  $(MAKE) TESTSUITEDIR="$(TESTSUITEDIR)" RUNTESTFLAGS="$(RUNTESTFLAGS)" \
+ 	    EXPECT=$(EXPECT) \
  	    check_$*_parallelize= check-parallel-$*; \
  	fi
  
*************** check-parallel-% : site.exp
*** 4286,4343 ****
  	  fi ; \
  	fi )
  
- # QMTest targets
- 
- # The path to qmtest.
- QMTEST_PATH=qmtest
- 
- # The flags to pass to qmtest.
- QMTESTFLAGS=
- 
- # The flags to pass to "qmtest run".
- QMTESTRUNFLAGS=-f none --result-stream dejagnu_stream.DejaGNUStream
- 
- # The command to use to invoke qmtest.
- QMTEST=${QMTEST_PATH} ${QMTESTFLAGS}
- 
- # The tests (or suites) to run.
- QMTEST_GPP_TESTS=g++
- 
- # The subdirectory of the OBJDIR that will be used to store the QMTest
- # test database configuration and that will be used for temporary
- # scratch space during QMTest's execution.
- QMTEST_DIR=qmtestsuite
- 
- # Create the QMTest database configuration.
- ${QMTEST_DIR} stamp-qmtest:
- 	${QMTEST} -D ${QMTEST_DIR} create-tdb \
- 	    -c gcc_database.GCCDatabase \
- 	    -a srcdir=`cd ${srcdir}/testsuite && ${PWD_COMMAND}` && \
- 	    $(STAMP) stamp-qmtest
- 
- # Create the QMTest context file.
- ${QMTEST_DIR}/context: stamp-qmtest
- 	rm -f $@
- 	echo "CompilerTable.languages=c cplusplus" >> $@
- 	echo "CompilerTable.c_kind=GCC" >> $@
- 	echo "CompilerTable.c_path=${objdir}/xgcc" >> $@
- 	echo "CompilerTable.c_options=-B${objdir}/" >> $@
- 	echo "CompilerTable.cplusplus_kind=GCC" >> $@
- 	echo "CompilerTable.cplusplus_path=${objdir}/xg++" >> $@
- 	echo "CompilerTable.cplusplus_options=-B${objdir}/" >> $@
- 	echo "DejaGNUTest.target=${target_noncanonical}" >> $@
- 
- # Run the G++ testsuite using QMTest.
- qmtest-g++: ${QMTEST_DIR}/context
- 	cd ${QMTEST_DIR} && ${QMTEST} run ${QMTESTRUNFLAGS} -C context \
- 	   -o g++.qmr ${QMTEST_GPP_TESTS}
- 
- # Use the QMTest GUI.
- qmtest-gui: ${QMTEST_DIR}/context
- 	cd ${QMTEST_DIR} && ${QMTEST} gui -C context
- 
- .PHONY: qmtest-g++
- 
  # Run Paranoia on real.cc.
  
  paranoia.o: $(srcdir)/../contrib/paranoia.cc $(CONFIG_H) $(SYSTEM_H) $(TREE_H)
--- 4453,4458 ----
diff -Nrcpad gcc-13.2.0/gcc/README.Portability gcc-14.1.0/gcc/README.Portability
*** gcc-13.2.0/gcc/README.Portability	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/README.Portability	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! Copyright (C) 2000-2023 Free Software Foundation, Inc.
  
  This file is intended to contain a few notes about writing C code
  within GCC so that it compiles without error on the full range of
--- 1,4 ----
! Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is intended to contain a few notes about writing C code
  within GCC so that it compiles without error on the full range of
diff -Nrcpad gcc-13.2.0/gcc/acinclude.m4 gcc-14.1.0/gcc/acinclude.m4
*** gcc-13.2.0/gcc/acinclude.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/acinclude.m4	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! dnl Copyright (C) 2005-2023 Free Software Foundation, Inc.
  dnl
  dnl This file is part of GCC.
  dnl
--- 1,4 ----
! dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
  dnl
  dnl This file is part of GCC.
  dnl
diff -Nrcpad gcc-13.2.0/gcc/aclocal.m4 gcc-14.1.0/gcc/aclocal.m4
*** gcc-13.2.0/gcc/aclocal.m4	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/aclocal.m4	Tue May  7 06:51:37 2024
***************
*** 12,17 ****
--- 12,67 ----
  # PARTICULAR PURPOSE.
  
  m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+ # AM_CONDITIONAL                                            -*- Autoconf -*-
+ 
+ # Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # AM_CONDITIONAL(NAME, SHELL-CONDITION)
+ # -------------------------------------
+ # Define a conditional.
+ AC_DEFUN([AM_CONDITIONAL],
+ [AC_PREREQ([2.52])dnl
+  m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+        [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+ AC_SUBST([$1_TRUE])dnl
+ AC_SUBST([$1_FALSE])dnl
+ _AM_SUBST_NOTMAKE([$1_TRUE])dnl
+ _AM_SUBST_NOTMAKE([$1_FALSE])dnl
+ m4_define([_AM_COND_VALUE_$1], [$2])dnl
+ if $2; then
+   $1_TRUE=
+   $1_FALSE='#'
+ else
+   $1_TRUE='#'
+   $1_FALSE=
+ fi
+ AC_CONFIG_COMMANDS_PRE(
+ [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+   AC_MSG_ERROR([[conditional "$1" was never defined.
+ Usually this means the macro was only invoked conditionally.]])
+ fi])])
+ 
+ # Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # _AM_SUBST_NOTMAKE(VARIABLE)
+ # ---------------------------
+ # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+ # This macro is traced by Automake.
+ AC_DEFUN([_AM_SUBST_NOTMAKE])
+ 
+ # AM_SUBST_NOTMAKE(VARIABLE)
+ # --------------------------
+ # Public sister of _AM_SUBST_NOTMAKE.
+ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+ 
  m4_include([../libtool.m4])
  m4_include([../ltoptions.m4])
  m4_include([../ltsugar.m4])
*************** m4_include([../config/dfp.m4])
*** 26,40 ****
--- 76,94 ----
  m4_include([../config/enable.m4])
  m4_include([../config/gcc-plugin.m4])
  m4_include([../config/gettext-sister.m4])
+ m4_include([../config/gettext.m4])
  m4_include([../config/iconv.m4])
+ m4_include([../config/intlmacosx.m4])
  m4_include([../config/lcmessage.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lib-ld.m4])
  m4_include([../config/lib-link.m4])
  m4_include([../config/lib-prefix.m4])
  m4_include([../config/mmap.m4])
+ m4_include([../config/nls.m4])
  m4_include([../config/override.m4])
  m4_include([../config/picflag.m4])
+ m4_include([../config/po.m4])
  m4_include([../config/progtest.m4])
  m4_include([../config/stdint.m4])
  m4_include([../config/warnings.m4])
diff -Nrcpad gcc-13.2.0/gcc/ada/ChangeLog gcc-14.1.0/gcc/ada/ChangeLog
*** gcc-13.2.0/gcc/ada/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/gcc/ada/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,1535 ****
! 2023-07-27  Release Manager
! 
! 	* GCC 13.2.0 released.
! 
! 2023-07-11  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* adaint.c [_WIN32]: Undefine 'abort' macro.
! 
! 2023-07-07  Viljar Indus  <indus@adacore.com>
! 
! 	* exp_aggr.adb (Expand_N_Aggregate): Ensure that container
! 	aggregate expressions do not get expanded as records but instead
! 	as container aggregates.
! 
! 2023-07-07  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_aggr.adb (Convert_To_Assignments): Tweak comment.
! 	(Expand_Array_Aggregate): Do not delay the expansion if the parent
! 	node is a container aggregate.
! 
! 2023-07-07  Marc Poulhiès  <poulhies@adacore.com>
! 
! 	* exp_aggr.adb (Convert_To_Assignments): Do not mark node for
! 	delayed expansion if parent type has the Aggregate aspect.
! 	* sem_util.adb (Is_Container_Aggregate): Move...
! 	* sem_util.ads (Is_Container_Aggregate): ... here and make it
! 	public.
! 
! 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* sinfo.ads (Iterator_Filter): Document field.
! 	* sem_ch5.adb (Analyze_Iterator_Specification): Move comment around.
! 	(Analyze_Loop_Parameter_Specification): Only preanalyze the iterator
! 	filter, if any.
! 	* exp_ch5.adb (Expand_N_Loop_Statement): Analyze the new list built
! 	when an iterator filter is present.
! 
! 2023-04-26  Release Manager
! 
! 	* GCC 13.1.0 released.
! 
! 2023-04-15  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR bootstrap/109510
! 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset
! 	align to zero in any case.  Set TYPE_USER_ALIGN on the type only if
! 	it is an aggregate type, or else a type whose default alignment is
! 	specifically capped on selected platforms.
! 
! 2023-04-14  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR bootstrap/109510
! 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align
! 	to zero if its value is equal to TYPE_ALIGN and the type is scalar.
! 	Set TYPE_USER_ALIGN on the type only if align is positive.
! 
! 2023-03-06  Javier Miranda  <miranda@adacore.com>
! 
! 	PR ada/108858
! 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with
! 	separate spec, if their return type was visible through a limited-
! 	with context clause, their extra formals were not added when the
! 	spec was analyzed.  Now the full view must be available, and the
! 	extra formals can be created and Returns_By_Ref computed.
! 
! 2023-03-06  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/108909
! 	PR ada/108983
! 	* Make-generated.in: Do not use GNATMAKE.
! 	* gcc-interface/Makefile.in: Ditto.
! 
! 2023-02-26  Peter Foley  <pefoley2@pefoley.com>
! 
! 	PR ada/108909
! 	* Make-generated.in: Use GNATMAKE.
! 	* gcc-interface/Makefile.in: Ditto.
! 
! 2023-02-14  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard.
! 
! 2023-02-14  Dongsheng Song  <dongsheng.song@gmail.com>
! 
! 	* adaint.c [Linux]: Include <features.h>.
! 	(__gnat_get_executable_load_address) [Linux]: Enable only for
! 	glibc and uClibc.
! 
! 2023-01-16  Marc Poulhiès  <poulhies@adacore.com>
! 
! 	* gcc-interface/Make-lang.in: Update copyright years.
! 	* gcc-interface/Makefile.in: Likewise.
! 	* gcc-interface/ada-builtin-types.def: Likewise.
! 	* gcc-interface/ada-builtins.def: Likewise.
! 	* gcc-interface/ada-tree.def: Likewise.
! 	* gcc-interface/ada-tree.h: Likewise.
! 	* gcc-interface/ada.h: Likewise.
! 	* gcc-interface/config-lang.in: Likewise.
! 	* gcc-interface/cuintp.cc: Likewise.
! 	* gcc-interface/decl.cc: Likewise.
! 	* gcc-interface/gadaint.h: Likewise.
! 	* gcc-interface/gigi.h: Likewise.
! 	* gcc-interface/lang-specs.h: Likewise.
! 	* gcc-interface/lang.opt: Likewise.
! 	* gcc-interface/misc.cc: Likewise.
! 	* gcc-interface/system.ads: Likewise.
! 	* gcc-interface/targtyps.cc: Likewise.
! 	* gcc-interface/trans.cc: Likewise.
! 	* gcc-interface/utils.cc: Likewise.
! 	* gcc-interface/utils2.cc: Likewise.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch3.adb (Make_Allocator_For_Return): Convert the expression
! 	to the return object's type in the constrained array case as well.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non-
! 	interface stand-alone object initialized by a function call, call
! 	Remove_Side_Effects on the expression to capture the result.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_util.ads (Has_Tag_Of_Type): Declare.
! 	* exp_util.adb (Has_Tag_Of_Type): Move to package level.  Recurse on
! 	qualified expressions.
! 	* exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference
! 	to the interface tag in more cases for class-wide interface objects.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_util.adb (Is_Temporary_For_Interface_Object): Delete.
! 	(Is_Finalizable_Transient.Is_Aliased): Deal with the specific case
! 	of temporaries generated for interface objects.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back-
! 	and-forth displacement of the object's address when using a renaming
! 	for an interface object with an expression of the same type.
! 	* exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side
! 	effects of the expression up front for the simple allocators. Do not
! 	call the Adjust primitive if the expression is a function call.
! 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call
! 	unnecessarily for a special return object.
! 	(Expand_Simple_Function_Return): Restore the displacement of the
! 	return object's address in the case where the expression is the call
! 	to a function whose result type is a type that needs finalization.
! 	* exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side
! 	effects of the expression before calling Make_Subtype_From_Expr.
! 	(Make_CW_Equivalent_Type): If the expression has the tag of its type
! 	and this type has a uniform size, use 'Object_Size of this type in
! 	lieu of 'Size of the expression to compute the expression's size.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch3.adb (Make_Allocator_For_Return): Put back an interface
! 	conversion for expressions with non-interface class-wide type.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased
! 	objects if their nominal subtype is not an unconstrained array.
! 
! 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions
! 	needed for an initializating expression that is a function call to
! 	be renamable into the Is_Renamable_Function_Call predicate.
! 	Use it to implement the renaming in the case of class-wide interface
! 	objects.  Remove an interface conversion on all paths, separate and
! 	optimize the renaming path in the special expansion for interfaces.
! 	(Is_Renamable_Function_Call): New predicate.
! 	(Make_Allocator_For_Return): Put back an interface conversion.
! 	* exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access
! 	checks on RE_Tag_Ptr.
! 
! 2023-01-09  Arnaud Charlet  <charlet@adacore.com>
! 
! 	* accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year.
! 	* adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise.
! 	* adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise.
! 	* ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise.
! 	* aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise.
! 	* aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise.
! 	* backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise.
! 	* binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise.
! 	* bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise.
! 	* bindo-builders.ads, bindo-diagnostics.adb: Likewise.
! 	* bindo-diagnostics.ads, bindo-elaborators.adb: Likewise.
! 	* bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise.
! 	* bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise.
! 	* bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise.
! 	* bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise.
! 	* butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise.
! 	* checks.ads, cio.c, clean.adb, clean.ads: Likewise.
! 	* comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise.
! 	* csets.adb, csets.ads, cstand.adb: Likewise.
! 	* cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise.
! 	* debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise.
! 	* einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise.
! 	* env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise.
! 	* erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise.
! 	* eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise.
! 	* exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise.
! 	* exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise.
! 	* exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise.
! 	* exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise.
! 	* exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise.
! 	* exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise.
! 	* exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise.
! 	* exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise.
! 	* exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise.
! 	* exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise.
! 	* exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise.
! 	* exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise.
! 	* exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise.
! 	* exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise.
! 	* exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise.
! 	* exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise.
! 	* final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise.
! 	* fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise.
! 	* freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise.
! 	* gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise.
! 	* gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise.
! 	* gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise.
! 	* gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise.
! 	* get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise.
! 	* gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise.
! 	* gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise.
! 	* gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise.
! 	* gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise.
! 	* gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise.
! 	* gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise.
! 	* gprep.adb, gprep.ads, gsocket.h: Likewise.
! 	* hostparm.ads: Likewise.
! 	* impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise.
! 	* indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise.
! 	* initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise.
! 	* krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise.
! 	* lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise.
! 	* lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise.
! 	* lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise.
! 	* lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise.
! 	* libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise.
! 	* libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise.
! 	* libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise.
! 	* libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise.
! 	* libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise.
! 	* libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise.
! 	* libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise.
! 	* libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise.
! 	* libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise.
! 	* libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise.
! 	* libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise.
! 	* libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise.
! 	* libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise.
! 	* libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise.
! 	* libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise.
! 	* libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise.
! 	* libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise.
! 	* libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise.
! 	* libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise.
! 	* libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise.
! 	* libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise.
! 	* libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise.
! 	* libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise.
! 	* libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise.
! 	* libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise.
! 	* libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise.
! 	* libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise.
! 	* libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise.
! 	* libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise.
! 	* libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise.
! 	* libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise.
! 	* libgnarl/s-interr__sigaction.adb: Likewise.
! 	* libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise.
! 	* libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise.
! 	* libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise.
! 	* libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise.
! 	* libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise.
! 	* libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise.
! 	* libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise.
! 	* libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise.
! 	* libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise.
! 	* libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise.
! 	* libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise.
! 	* libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise.
! 	* libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise.
! 	* libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise.
! 	* libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise.
! 	* libgnarl/s-osinte__dragonfly.adb: Likewise.
! 	* libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise.
! 	* libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise.
! 	* libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise.
! 	* libgnarl/s-osinte__hpux-dce.adb: Likewise.
! 	* libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise.
! 	* libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
! 	* libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise.
! 	* libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise.
! 	* libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise.
! 	* libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise.
! 	* libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise.
! 	* libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise.
! 	* libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise.
! 	* libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise.
! 	* libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise.
! 	* libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise.
! 	* libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise.
! 	* libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise.
! 	* libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise.
! 	* libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise.
! 	* libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise.
! 	* libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise.
! 	* libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise.
! 	* libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise.
! 	* libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise.
! 	* libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise.
! 	* libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise.
! 	* libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise.
! 	* libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise.
! 	* libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise.
! 	* libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise.
! 	* libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise.
! 	* libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise.
! 	* libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise.
! 	* libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise.
! 	* libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise.
! 	* libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise.
! 	* libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise.
! 	* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
! 	* libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise.
! 	* libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise.
! 	* libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise.
! 	* libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise.
! 	* libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise.
! 	* libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise.
! 	* libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise.
! 	* libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise.
! 	* libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise.
! 	* libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise.
! 	* libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise.
! 	* libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise.
! 	* libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
! 	* libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise.
! 	* libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
! 	* libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
! 	* libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise.
! 	* libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise.
! 	* libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise.
! 	* libgnarl/s-vxwext__kernel-smp.adb: Likewise.
! 	* libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise.
! 	* libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise.
! 	* libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise.
! 	* libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise.
! 	* libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise.
! 	* libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise.
! 	* libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise.
! 	* libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise.
! 	* libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise.
! 	* libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise.
! 	* libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise.
! 	* libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise.
! 	* libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise.
! 	* libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise.
! 	* libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise.
! 	* libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise.
! 	* libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise.
! 	* libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise.
! 	* libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise.
! 	* libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise.
! 	* libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise.
! 	* libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise.
! 	* libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise.
! 	* libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise.
! 	* libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise.
! 	* libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise.
! 	* libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise.
! 	* libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise.
! 	* libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise.
! 	* libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise.
! 	* libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise.
! 	* libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise.
! 	* libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise.
! 	* libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise.
! 	* libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise.
! 	* libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise.
! 	* libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise.
! 	* libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise.
! 	* libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise.
! 	* libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise.
! 	* libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise.
! 	* libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise.
! 	* libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise.
! 	* libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise.
! 	* libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise.
! 	* libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise.
! 	* libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise.
! 	* libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise.
! 	* libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise.
! 	* libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise.
! 	* libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise.
! 	* libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise.
! 	* libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise.
! 	* libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise.
! 	* libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise.
! 	* libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise.
! 	* libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise.
! 	* libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise.
! 	* libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise.
! 	* libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise.
! 	* libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise.
! 	* libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise.
! 	* libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise.
! 	* libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise.
! 	* libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise.
! 	* libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise.
! 	* libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise.
! 	* libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise.
! 	* libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise.
! 	* libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise.
! 	* libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise.
! 	* libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise.
! 	* libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise.
! 	* libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise.
! 	* libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise.
! 	* libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise.
! 	* libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise.
! 	* libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise.
! 	* libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise.
! 	* libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise.
! 	* libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise.
! 	* libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise.
! 	* libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise.
! 	* libgnat/a-excach.adb, libgnat/a-except.adb: Likewise.
! 	* libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise.
! 	* libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise.
! 	* libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise.
! 	* libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise.
! 	* libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise.
! 	* libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise.
! 	* libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise.
! 	* libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise.
! 	* libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise.
! 	* libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise.
! 	* libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise.
! 	* libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise.
! 	* libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise.
! 	* libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise.
! 	* libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise.
! 	* libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise.
! 	* libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise.
! 	* libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise.
! 	* libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise.
! 	* libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise.
! 	* libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise.
! 	* libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise.
! 	* libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise.
! 	* libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise.
! 	* libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise.
! 	* libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise.
! 	* libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise.
! 	* libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise.
! 	* libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise.
! 	* libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise.
! 	* libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise.
! 	* libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise.
! 	* libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise.
! 	* libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise.
! 	* libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise.
! 	* libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise.
! 	* libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise.
! 	* libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise.
! 	* libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise.
! 	* libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise.
! 	* libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise.
! 	* libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise.
! 	* libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise.
! 	* libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise.
! 	* libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise.
! 	* libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise.
! 	* libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise.
! 	* libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise.
! 	* libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise.
! 	* libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise.
! 	* libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise.
! 	* libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise.
! 	* libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise.
! 	* libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise.
! 	* libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise.
! 	* libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise.
! 	* libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise.
! 	* libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise.
! 	* libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise.
! 	* libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise.
! 	* libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise.
! 	* libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise.
! 	* libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise.
! 	* libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise.
! 	* libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise.
! 	* libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise.
! 	* libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise.
! 	* libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise.
! 	* libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise.
! 	* libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise.
! 	* libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise.
! 	* libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise.
! 	* libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise.
! 	* libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise.
! 	* libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise.
! 	* libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise.
! 	* libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise.
! 	* libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise.
! 	* libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise.
! 	* libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise.
! 	* libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise.
! 	* libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise.
! 	* libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise.
! 	* libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise.
! 	* libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise.
! 	* libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise.
! 	* libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise.
! 	* libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise.
! 	* libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise.
! 	* libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise.
! 	* libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise.
! 	* libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise.
! 	* libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise.
! 	* libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise.
! 	* libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise.
! 	* libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise.
! 	* libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise.
! 	* libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise.
! 	* libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise.
! 	* libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise.
! 	* libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise.
! 	* libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise.
! 	* libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise.
! 	* libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise.
! 	* libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise.
! 	* libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise.
! 	* libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise.
! 	* libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise.
! 	* libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise.
! 	* libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise.
! 	* libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise.
! 	* libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise.
! 	* libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise.
! 	* libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise.
! 	* libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise.
! 	* libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise.
! 	* libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise.
! 	* libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise.
! 	* libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise.
! 	* libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise.
! 	* libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise.
! 	* libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise.
! 	* libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise.
! 	* libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise.
! 	* libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise.
! 	* libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise.
! 	* libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise.
! 	* libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise.
! 	* libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise.
! 	* libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise.
! 	* libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise.
! 	* libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise.
! 	* libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise.
! 	* libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise.
! 	* libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise.
! 	* libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise.
! 	* libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise.
! 	* libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise.
! 	* libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise.
! 	* libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise.
! 	* libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise.
! 	* libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise.
! 	* libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise.
! 	* libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise.
! 	* libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise.
! 	* libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise.
! 	* libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise.
! 	* libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise.
! 	* libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise.
! 	* libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise.
! 	* libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise.
! 	* libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise.
! 	* libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise.
! 	* libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise.
! 	* libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise.
! 	* libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise.
! 	* libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise.
! 	* libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise.
! 	* libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise.
! 	* libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise.
! 	* libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise.
! 	* libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise.
! 	* libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise.
! 	* libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise.
! 	* libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise.
! 	* libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise.
! 	* libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise.
! 	* libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise.
! 	* libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise.
! 	* libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise.
! 	* libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise.
! 	* libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise.
! 	* libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise.
! 	* libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise.
! 	* libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise.
! 	* libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise.
! 	* libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise.
! 	* libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise.
! 	* libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise.
! 	* libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise.
! 	* libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise.
! 	* libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise.
! 	* libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise.
! 	* libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise.
! 	* libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise.
! 	* libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise.
! 	* libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise.
! 	* libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise.
! 	* libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise.
! 	* libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise.
! 	* libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise.
! 	* libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise.
! 	* libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise.
! 	* libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise.
! 	* libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise.
! 	* libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise.
! 	* libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise.
! 	* libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise.
! 	* libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise.
! 	* libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise.
! 	* libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise.
! 	* libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise.
! 	* libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise.
! 	* libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise.
! 	* libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise.
! 	* libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise.
! 	* libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise.
! 	* libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise.
! 	* libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise.
! 	* libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise.
! 	* libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise.
! 	* libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise.
! 	* libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise.
! 	* libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise.
! 	* libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise.
! 	* libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise.
! 	* libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise.
! 	* libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise.
! 	* libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise.
! 	* libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise.
! 	* libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise.
! 	* libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise.
! 	* libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise.
! 	* libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise.
! 	* libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise.
! 	* libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise.
! 	* libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise.
! 	* libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise.
! 	* libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise.
! 	* libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise.
! 	* libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise.
! 	* libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise.
! 	* libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise.
! 	* libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise.
! 	* libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise.
! 	* libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise.
! 	* libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise.
! 	* libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise.
! 	* libgnat/g-string.adb, libgnat/g-string.ads: Likewise.
! 	* libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise.
! 	* libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise.
! 	* libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise.
! 	* libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise.
! 	* libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise.
! 	* libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise.
! 	* libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise.
! 	* libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise.
! 	* libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise.
! 	* libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise.
! 	* libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise.
! 	* libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise.
! 	* libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise.
! 	* libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise.
! 	* libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise.
! 	* libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise.
! 	* libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise.
! 	* libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise.
! 	* libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise.
! 	* libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise.
! 	* libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise.
! 	* libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise.
! 	* libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise.
! 	* libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise.
! 	* libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise.
! 	* libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise.
! 	* libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise.
! 	* libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise.
! 	* libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise.
! 	* libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise.
! 	* libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise.
! 	* libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise.
! 	* libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise.
! 	* libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise.
! 	* libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise.
! 	* libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise.
! 	* libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise.
! 	* libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise.
! 	* libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise.
! 	* libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise.
! 	* libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise.
! 	* libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise.
! 	* libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise.
! 	* libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise.
! 	* libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise.
! 	* libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise.
! 	* libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise.
! 	* libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise.
! 	* libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise.
! 	* libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise.
! 	* libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise.
! 	* libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise.
! 	* libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise.
! 	* libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise.
! 	* libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise.
! 	* libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise.
! 	* libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise.
! 	* libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise.
! 	* libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise.
! 	* libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise.
! 	* libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise.
! 	* libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise.
! 	* libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise.
! 	* libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise.
! 	* libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise.
! 	* libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise.
! 	* libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise.
! 	* libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise.
! 	* libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise.
! 	* libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise.
! 	* libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise.
! 	* libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise.
! 	* libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise.
! 	* libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise.
! 	* libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise.
! 	* libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise.
! 	* libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise.
! 	* libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise.
! 	* libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise.
! 	* libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise.
! 	* libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise.
! 	* libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise.
! 	* libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise.
! 	* libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise.
! 	* libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise.
! 	* libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise.
! 	* libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise.
! 	* libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise.
! 	* libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise.
! 	* libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise.
! 	* libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise.
! 	* libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise.
! 	* libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise.
! 	* libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise.
! 	* libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise.
! 	* libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise.
! 	* libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise.
! 	* libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise.
! 	* libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise.
! 	* libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise.
! 	* libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise.
! 	* libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise.
! 	* libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise.
! 	* libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise.
! 	* libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise.
! 	* libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise.
! 	* libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise.
! 	* libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise.
! 	* libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise.
! 	* libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise.
! 	* libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise.
! 	* libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise.
! 	* libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise.
! 	* libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise.
! 	* libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise.
! 	* libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise.
! 	* libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise.
! 	* libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise.
! 	* libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise.
! 	* libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise.
! 	* libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise.
! 	* libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise.
! 	* libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise.
! 	* libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise.
! 	* libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise.
! 	* libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise.
! 	* libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise.
! 	* libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise.
! 	* libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise.
! 	* libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise.
! 	* libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise.
! 	* libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise.
! 	* libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise.
! 	* libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise.
! 	* libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise.
! 	* libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise.
! 	* libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise.
! 	* libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise.
! 	* libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise.
! 	* libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise.
! 	* libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise.
! 	* libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise.
! 	* libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise.
! 	* libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise.
! 	* libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise.
! 	* libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise.
! 	* libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise.
! 	* libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise.
! 	* libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise.
! 	* libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise.
! 	* libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise.
! 	* libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise.
! 	* libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise.
! 	* libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise.
! 	* libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise.
! 	* libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise.
! 	* libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise.
! 	* libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise.
! 	* libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise.
! 	* libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise.
! 	* libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise.
! 	* libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise.
! 	* libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise.
! 	* libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise.
! 	* libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise.
! 	* libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise.
! 	* libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise.
! 	* libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise.
! 	* libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise.
! 	* libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise.
! 	* libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise.
! 	* libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise.
! 	* libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise.
! 	* libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise.
! 	* libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise.
! 	* libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise.
! 	* libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise.
! 	* libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise.
! 	* libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise.
! 	* libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise.
! 	* libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise.
! 	* libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise.
! 	* libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise.
! 	* libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise.
! 	* libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise.
! 	* libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise.
! 	* libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise.
! 	* libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise.
! 	* libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise.
! 	* libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise.
! 	* libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise.
! 	* libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise.
! 	* libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise.
! 	* libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise.
! 	* libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise.
! 	* libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise.
! 	* libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise.
! 	* libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise.
! 	* libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise.
! 	* libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise.
! 	* libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise.
! 	* libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise.
! 	* libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise.
! 	* libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise.
! 	* libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise.
! 	* libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise.
! 	* libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise.
! 	* libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise.
! 	* libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise.
! 	* libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise.
! 	* libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise.
! 	* libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise.
! 	* libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise.
! 	* libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise.
! 	* libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise.
! 	* libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise.
! 	* libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise.
! 	* libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise.
! 	* libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise.
! 	* libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise.
! 	* libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise.
! 	* libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise.
! 	* libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise.
! 	* libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise.
! 	* libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise.
! 	* libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise.
! 	* libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise.
! 	* libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise.
! 	* libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise.
! 	* libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise.
! 	* libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise.
! 	* libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise.
! 	* libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise.
! 	* libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise.
! 	* libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise.
! 	* libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise.
! 	* libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise.
! 	* libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise.
! 	* libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise.
! 	* libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise.
! 	* libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise.
! 	* libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise.
! 	* libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise.
! 	* libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise.
! 	* libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise.
! 	* libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise.
! 	* libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise.
! 	* libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise.
! 	* libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise.
! 	* libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise.
! 	* libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise.
! 	* libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise.
! 	* libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise.
! 	* libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise.
! 	* libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise.
! 	* libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise.
! 	* libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise.
! 	* libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise.
! 	* libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise.
! 	* libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise.
! 	* libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise.
! 	* libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise.
! 	* libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise.
! 	* libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise.
! 	* libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise.
! 	* libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise.
! 	* libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise.
! 	* libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise.
! 	* libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise.
! 	* libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise.
! 	* libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise.
! 	* libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise.
! 	* libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise.
! 	* libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise.
! 	* libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise.
! 	* libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise.
! 	* libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise.
! 	* libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise.
! 	* libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise.
! 	* libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise.
! 	* libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise.
! 	* libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise.
! 	* libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise.
! 	* libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise.
! 	* libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise.
! 	* libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise.
! 	* libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise.
! 	* libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise.
! 	* libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise.
! 	* libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise.
! 	* libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise.
! 	* libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise.
! 	* libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise.
! 	* libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise.
! 	* libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise.
! 	* libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise.
! 	* libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise.
! 	* libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise.
! 	* libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise.
! 	* libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise.
! 	* libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise.
! 	* libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise.
! 	* libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise.
! 	* libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise.
! 	* libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise.
! 	* libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise.
! 	* libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise.
! 	* libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise.
! 	* libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise.
! 	* libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise.
! 	* libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise.
! 	* libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise.
! 	* libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise.
! 	* libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise.
! 	* libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise.
! 	* libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise.
! 	* libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise.
! 	* libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise.
! 	* libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise.
! 	* libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise.
! 	* libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise.
! 	* libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise.
! 	* libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise.
! 	* libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise.
! 	* libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise.
! 	* libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise.
! 	* libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise.
! 	* libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise.
! 	* libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise.
! 	* libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise.
! 	* libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise.
! 	* libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise.
! 	* libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise.
! 	* libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise.
! 	* libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise.
! 	* libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise.
! 	* libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise.
! 	* libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise.
! 	* libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise.
! 	* libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise.
! 	* libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise.
! 	* libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise.
! 	* libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise.
! 	* libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise.
! 	* libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise.
! 	* libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise.
! 	* libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise.
! 	* libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise.
! 	* libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise.
! 	* libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise.
! 	* libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise.
! 	* libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise.
! 	* libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise.
! 	* libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise.
! 	* libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise.
! 	* libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise.
! 	* libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise.
! 	* libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise.
! 	* libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise.
! 	* libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise.
! 	* libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise.
! 	* libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise.
! 	* libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise.
! 	* libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise.
! 	* libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise.
! 	* libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise.
! 	* libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise.
! 	* libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise.
! 	* libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise.
! 	* libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise.
! 	* libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise.
! 	* libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise.
! 	* libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise.
! 	* libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise.
! 	* libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise.
! 	* libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise.
! 	* libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise.
! 	* libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise.
! 	* libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise.
! 	* libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise.
! 	* libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise.
! 	* libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise.
! 	* libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise.
! 	* libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise.
! 	* libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise.
! 	* libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise.
! 	* libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise.
! 	* libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise.
! 	* libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise.
! 	* libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise.
! 	* libgnat/system-solaris-sparc.ads: Likewise.
! 	* libgnat/system-solaris-x86.ads: Likewise.
! 	* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
! 	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
! 	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
! 	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
! 	* libgnat/system-vxworks7-aarch64.ads: Likewise.
! 	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
! 	* libgnat/system-vxworks7-arm.ads: Likewise.
! 	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
! 	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
! 	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
! 	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
! 	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
! 	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
! 	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
! 	* libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise.
! 	* live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise.
! 	* make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise.
! 	* mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise.
! 	* mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise.
! 	* namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise.
! 	* opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise.
! 	* osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise.
! 	* osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise.
! 	* par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise.
! 	* par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise.
! 	* par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise.
! 	* par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise.
! 	* par.ads, par_sco.adb, par_sco.ads: Likewise.
! 	* pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise.
! 	* prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise.
! 	* raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise.
! 	* repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise.
! 	* restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise.
! 	* rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise.
! 	* scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise.
! 	* scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise.
! 	* scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise.
! 	* sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise.
! 	* sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise.
! 	* sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise.
! 	* sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise.
! 	* sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise.
! 	* sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise.
! 	* sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise.
! 	* sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise.
! 	* sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise.
! 	* sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise.
! 	* sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise.
! 	* sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise.
! 	* sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise.
! 	* sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise.
! 	* sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise.
! 	* sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise.
! 	* sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise.
! 	* sigtramp-ios.c, sigtramp-qnx.c: Likewise.
! 	* sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise.
! 	* sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise.
! 	* sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise.
! 	* sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise.
! 	* sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise.
! 	* sprint.adb, sprint.ads, stand.ads: Likewise.
! 	* stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise.
! 	* style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise.
! 	* stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise.
! 	* switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise.
! 	* switch.ads, sysdep.c, table.adb: Likewise.
! 	* table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise.
! 	* tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise.
! 	* treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise.
! 	* types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise.
! 	* urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise.
! 	* validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise.
! 	* warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise.
! 	* xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise.
! 	* gnatvsn.ads (Current_Year): Likewise and bump to 2023.
! 
! 2023-01-09  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement.
! 	(Make_Final_Call): Likewise.
! 
! 2023-01-09  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete.
! 	(Is_Displacement_Of_Object_Or_Function_Result): Likewise.
! 	* exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to...
! 	(Is_Temporary_For_Interface_Object): ...this.
! 	(Is_Finalizable_Transient): Adjust call to above renaming.
! 	(Is_Displacement_Of_Object_Or_Function_Result): Delete.
! 	(Requires_Cleanup_Actions): Remove special handling of the
! 	temporaries created for interface objects.
! 	* exp_ch7.adb (Build_Finalizer): Likewise.
! 
! 2023-01-07  LIU Hao  <lh_mouse@126.com>
! 
! 	PR middle-end/108300
! 	* adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include
! 	<windows.h>`.
! 	* cio.c: Likewise.
! 	* ctrl_c.c: Likewise.
! 	* expect.c: Likewise.
! 	* gsocket.h: Likewise.
! 	* mingw32.h: Likewise.
! 	* mkdir.c: Likewise.
! 	* rtfinal.c: Likewise.
! 	* rtinit.c: Likewise.
! 	* seh_init.c: Likewise.
! 	* sysdep.c: Likewise.
! 	* terminals.c: Likewise.
! 	* tracebak.c: Likewise.
! 
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak.
! 
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the
! 	handling of objects with (class-wide) interface type by using the
! 	same idiom as the other cases generating a renaming.
! 	* exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak
! 	pattern matching code and exclude special return objects.
! 	(Requires_Cleanup_Actions): Adjust comment.
! 	* exp_ch7.adb (Build_Finalizer): Likewise.
! 
! 2023-01-05  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to
! 	subprogram declaration early and then set the Body_To_Inling flag.
! 
! 2023-01-05  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* freeze.adb (Build_Renamed_Body): Revert a special case for
! 	GNATprove; remove unnecessary initialization of a local variable.
! 
! 2023-01-05  Marc Poulhiès  <poulhies@adacore.com>
! 
! 	* sem_ch12.adb (Instantiate_Package_Body): Better filtering when
! 	installing parent on the scope stack.
! 
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* repinfo.ads (The JSON output format): Document change.
! 	* urealp.adb (UR_Write_To_JSON): Output a fraction instead of a
! 	decimal approximation.
! 
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch3.adb (Expand_N_Object_Declaration): New local variable
! 	Func_Id holding the function for a special return object.
! 	Use a direct renaming in the class-wide case when the initializing
! 	expression is a captured function call, except for a special return
! 	object when the two functions do not return on the same stack.
! 	Apply the accessibility check for class-wide special return objects.
! 	* exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New.
! 	Do not force a dispatching call to the primitive operation _Size if
! 	the expression is known to statically have the tag of its type.
  
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment.
  
! 2023-01-05  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for
! 	warning about use of parentheses for array aggregates.
  
! 2023-01-05  Javier Miranda  <miranda@adacore.com>
  
! 	* scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket)
! 	(Tok_Left_Interpolated_String): Placed in no category since they
! 	don't fit well in the existing categories. Fix typo in comment.
! 	(Inside_Interpolated_String_Literal): New scan state variable.
! 	* scng.adb (Slit): Scan interpolated string literals,
! 	continuations of interpolated string literals and escaped
! 	characters found in interpolated string literals.
! 	(Scan): Handle consecutive interpolated expressions. Handle ending
! 	delimiter placed immediately after an interpolated expression.
! 	Handle string literal placed after interpolated expression. Handle
! 	left and right curly brackets; when extensions are not allowed
! 	they are treated as left and right paren; when extensions are
! 	allowed they are handled as delimiters of interpolated string
! 	literals.
! 	* sinfo.ads (N_Interpolated_String_Literal): New node.
! 	* gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define
! 	N_String_Literal node.
! 	* gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as
! 	concrete node type.
! 	* par-ch2.adb (P_Interpolated_String_Literal): New subprogram.
! 	* par-ch4.adb (P_Simple_Expression): Handle '}' as expression
! 	terminator when scanning an interpolated expression; disable error
! 	recovery machinery for binary operator when we are processing an
! 	interpolated string literal and reach the expression terminator
! 	'}'.
! 	(P_Primary): Call P_Interpolated_String_Literal when the opening
! 	interpolated-string-literal delimiter is found (that is, the left
! 	curly bracket '{').
! 	* par-tchk.adb (T_Right_Curly_Bracket): New subprogram.
! 	* par.adb (P_Interpolated_String_Literal): New declaration.
! 	(T_Right_Curly_Bracket): New declaration.
! 	* sem.adb (Analyze): Call Analyze_Interpolated_String_Literal.
! 	* sem_ch2.ads (Analyze_Interpolated_String_Literal): New
! 	subprogram
! 	* sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise.
! 	* sem_util.adb (Is_User_Defined_Literal): Complete mapping of
! 	literal aspects adding that interpolated string literals have no
! 	correspondence with any aspect.
! 	* sem_res.adb (Resolve_Interpolated_String_Literal): New
! 	subprogram.
! 	(Has_Applicable_User_Defined_Literal): Complete mapping of literal
! 	aspects adding that interpolated string literals have no
! 	correspondency with any aspect.
! 	* expander.adb (Expand): Add call to
! 	Expand_N_Interpolated_String_Literal.
! 	* exp_util.adb (Insert_Actions): Handle
! 	N_Interpolated_String_Literal nodes; that is, continue climbing.
! 	* exp_ch2.ads (Expand_N_Interpolated_String_Literal): New
! 	subprogram.
! 	* exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise.
! 	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing
! 	conversion to force dispatching call. Required to handle calls to
! 	descendants.
! 	(Build_String_Put_Image_Call): Do not output string delimiters
! 	when the put_image call is part of an interpolated string literal.
! 	* rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces.
! 	* sprint.adb (Sprint_Node): Output interpolated string contents.
! 	* libgnat/a-stbubo.adb (Get_UTF_8): Add default value for
! 	Trim_Leading_White_Spaces component in aggregate.
! 	(Buffer_Type_Implementation): Update Trim_Leading_White_Spaces.
! 	* libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
! 	(Buffer_Type_Implementation): Likewise.
! 	* libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram.
! 	(Trim_Leading_Spaces): New subprogram.
! 	(Root_Buffer_Type): Adding Trim_Leading_While_Spaces component.
! 	* libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New
! 	subprogram.
! 	(Trim_Leading_Space): New subprogram.
! 	(Put_UTF_8): Handle Trim_Leading_White_Spaces.
! 	(New_Line): Likewise.
! 	* libgnat/s-putima.ads (Put_Image_String): Adding formal
! 	(with_delimiters).
! 	(Put_Image_Wide_String): Likewise.
! 	(Put_Image_Wide_Wide_String): Likewise.
! 	* libgnat/s-putima.adb (Put_Image_String): Adding support for new
! 	formal.
! 	(Put_Image_Wide_String): Likewise.
! 	(Put_Image_Wide_Wide_String): Likewise.
  
! 2023-01-05  Joao Azevedo  <azevedo@adacore.com>
  
! 	* doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout
! 	switch and update legacy switches.
  
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* freeze.adb (Freeze_Entity): For the purpose of deciding whether to
! 	freeze an entity coming from an outer scope in an inner scope, treat
! 	the internal subprogram generated because of post-conditions as also
! 	coming from source if the original subprogram itself does.
  
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an
! 	extended return statement in all cases.
! 	(Expand_Subprogram_Contract): Adjust comment.
  
! 2023-01-05  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* libgnat/g-forstr.adb (F_Kind): Rename enumeration literal.
! 	(P_Flt_Format): Adjust handling of "%g".
! 	(Determine_Notation_And_Aft): New procedure.
! 	(Decimal_Exponent): New function.
! 	(Increment_Integral_Part): New procedure.
! 	(Remove_Extraneous_Decimal_Digit): New procedure.
! 	(Trim_Fractional_Part): New procedure.
! 	* libgnat/g-forstr.ads: Change description of "%g" specifier.
  
! 2023-01-05  Marc Poulhiès  <poulhies@adacore.com>
  
! 	* sem_ch12.adb (Instantiate_Package_Body): Correctly find the
! 	parent instance to place on the scope stack.
  
! 2023-01-05  Justin Squirek  <squirek@adacore.com>
  
! 	* sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually
! 	resetting the entity field of a non-prefixed discriminant
! 	reference.
  
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch3.adb (Expand_N_Object_Declaration): New local variable used
! 	throughout instead of testing Is_Special_Return_Object every time.
! 	Do not rename an OK_To_Rename object for a special return object.
! 	* exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation
! 	if the result is allocated on the secondary stack.
  
! 2023-01-05  Steve Baird  <baird@adacore.com>
  
! 	* sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma
! 	function to handle case where the pragma's parent is an
! 	N_Aspect_Specification node. In analyzing a Discard_Names pragma,
! 	do not assume that a nonzero number of arguments implies that the
! 	pragma is not a configuration pragma; that assumption only holds
! 	for legal programs.
  
! 2023-01-05  Bob Duff  <duff@adacore.com>
  
! 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
! 	Add RM references.
! 	* gnat_ugn.texi: Regenerate.
  
! 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch3.adb (Expand_N_Object_Declaration): For a special return
! 	object of an interface type that is not inherently limited, make
! 	a call to the Adjust primitive after doing the copy.  For a special
! 	return object of a non-class-wide type initialized by a function
! 	call, use a direct renaming only if the object doing the capture
! 	is flagged by Is_Related_To_Func_Return.  For a special return
! 	object using a direct renaming, reassign the tag, if need be.
! 	* exp_ch6.adb (Expand_Simple_Function_Return): Fix comment.
! 	* exp_util.adb (Is_Related_To_Func_Return): Accept both regular and
! 	renaming object declarations for return objects.
  
! 2023-01-05  Bob Duff  <duff@adacore.com>
  
! 	* sem_ch5.adb (Analyze_Assignment): Fix the bug by checking
! 	Original_Node. The renaming might be elsewhere, but the (original)
! 	reference is right here.
! 	* errout.adb: Remove pragma Unreferenced which was added because
! 	of the above bug.
! 	* einfo.ads: Misc cleanup.
! 	* lib.adb: Likewise.
! 	* lib.ads: Likewise.
  
! 2023-01-03  Ghjuvan Lacambre  <lacambre@adacore.com>
  
! 	* errout.adb (Write_JSON_Span): Escape subprogram name.
  
! 2023-01-03  Ghjuvan Lacambre  <lacambre@adacore.com>
  
! 	* output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol.
  
! 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling.
  
! 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug.
  
! 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a
! 	captured function call also verifies Is_Related_To_Func_Return.
! 	Do not generate an actual subtype for special return objects.
! 	* exp_util.ads (Is_Related_To_Func_Return): Add commentary.
  
! 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* libgnat/g-forstr.adb
! 	(Advance_And_Accumulate_Until_Next_Specifier): New procedure.
! 	("-"): Replace inline code with call to
! 	Advance_And_Accumulate_Until_Next_Specifier.
! 	(Next_Format): likewise.
  
! 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference):
! 	Return false for artificial dereferences generated by the expander.
  
! 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment.
! 	* sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref
! 	on functions with foreign convention.
  
! 2023-01-03  Marc Poulhiès  <poulhies@adacore.com>
  
! 	* exp_aggr.adb (Build_Assignment_With_Temporary): New.
! 	(Expand_Array_Aggregate): Tune backend optimization
! 	and insert a temporary in the case of an access with
! 	Designated_Storage_Model aspect.
! 	(Convert_Array_Aggr_In_Allocator): Likewise.
  
! 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_res.adb (Resolve_Membership_Op): Adjust again latest change.
  
! 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment.
! 	* sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return
! 	false for more artificial dereferences generated by the expander.
! 	(Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally
! 	in -gnatD mode.
! 	* exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the
! 	Is_Aliased flag.
  
! 2023-01-03  Joel Brobecker  <brobecker@adacore.com>
  
! 	* doc/gnat_ugn/platform_specific_information.rst
! 	(_Platform_Specific_Information): Minor rewording of intro text.
  	* gnat_ugn.texi: Regenerate.
  
! 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_util.ads (Is_Captured_Function_Call): Declare.
! 	* exp_util.adb (Is_Captured_Function_Call): New predicate.
! 	* exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a
! 	rewritten function call as the initializing expression.
! 	* exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a
! 	rewritten function call as the returned expression.
  
! 2023-01-03  Bob Duff  <duff@adacore.com>
  
! 	* exp_util.adb (Integer_Type_For): Assertion and comment.
! 	(Small_Integer_Type_For): Remove some code and call
! 	Integer_Type_For instead.
! 	* sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..."
! 	seems overly pedantic here.
! 	* exp_attr.adb (Succ, Pred): Clean up: make the code as similar as
! 	possible.
! 	* exp_ch4.adb: Minor: named notation.
  
! 2023-01-03  Javier Miranda  <miranda@adacore.com>
  
! 	* ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may
! 	appear within the class-wide precondition of a helper subprogram.
! 	This context is treated as suitable because it was already
! 	verified when we were analyzing the original class-wide
! 	precondition.
  
! 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the
! 	ancestor type for a derived array type.
! 	* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the
! 	common processing done on representation items.
! 	For Default_Component_Value and Default_Value, look into the first
! 	subtype to find out the representation items.
  
! 2023-01-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	PR ada/108202
! 	* gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS):
! 	Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and
! 	-static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered
! 	out for other hosts).
  
! 2023-01-02  Jakub Jelinek  <jakub@redhat.com>
  
  	* gnat_ugn.texi: Bump @copying's copyright year.
  	* gnat_rm.texi: Likewise.
  
  
! Copyright (C) 2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 1,251 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-04-15  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* doc/gnat_rm/implementation_defined_aspects.rst
! 	(Exceptional_Cases): Add description for aspect.
! 	* doc/gnat_rm/implementation_defined_pragmas.rst
! 	(Exceptional_Cases): Add description for pragma.
! 	* gnat_rm.texi: Regenerate.
! 	* gnat_ugn.texi: Regenerate.
  
! 2024-03-07  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/113979
! 	* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
! 	call Apply_Predicate_Check on the resulting access value if needed.
  
! 2024-02-26  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/113893
! 	* exp_ch7.adb (Build_Anonymous_Master): Do not build the master
! 	for a local designated type.
! 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin
! 	to false if no finalization master is attached to an access type
! 	and assert that it is anonymous in this case.
! 	* sem_res.adb (Resolve_Allocator): Mention that the object might
! 	not be finalized at all in the warning given when the type is an
! 	anonymous access-to-controlled type.
  
! 2024-01-23  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* gnatvsn.ads: Update year.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use the
! 	TYPE_CANONICAL of types when it comes to aliasing.
! 	* gcc-interface/utils.cc (relate_alias_sets): Likewise.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
! 	separate FLD local variable to hold the first field of the fat
! 	pointer type being built.
! 	* gcc-interface/gigi.h (relate_alias_sets): Remove GNU_ prefix on
! 	the first two parameters.
! 	* gcc-interface/utils.cc (relate_alias_sets): Likewise and adjust.
  
! 2024-01-09  Viljar Indus  <indus@adacore.com>
  
! 	* sem_attr.adb: avoid marking a use of the Address attribute
! 	as a modification of its prefix.
  
! 2024-01-09  Gary Dismukes  <dismukes@adacore.com>
  
! 	* exp_aggr.adb (Expand_Container_Aggregate): Change "not Present"
! 	tests to tests using "No" (in two places).
  
! 2024-01-09  Bob Duff  <duff@adacore.com>
  
! 	* sem_ch12.adb (Instantiate_Type): Make the relevant error message
! 	conditional upon "Ekind (A_Gen_T) /= E_Incomplete_Type". Misc
! 	cleanup.
  
! 2024-01-09  Gary Dismukes  <dismukes@adacore.com>
  
! 	* exp_aggr.adb (Expand_Container_Aggregate): Add code to determine
! 	whether the aggregate is an indexed aggregate, setting a flag
! 	(Is_Indexed_Aggregate), which is tested to have proper separation
! 	of treatment for the Add_Unnamed
! 	(for positional aggregates) and New_Indexed (for indexed
! 	aggregates) cases. In the code generating associations for indexed
! 	aggregates, remove the code for Expressions cases entirely, since
! 	the code for indexed aggregates is governed by the presence of
! 	Component_Associations, and add an assertion that Expressions must
! 	be Empty. Also, exclude empty aggregates from entering that code.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* rtsfind.ads (RE_Id): Remove RE_Attach.
! 	(RE_Unit_Table): Likewise.
! 	* libgnat/s-finmas.ads (Attach): Delete.
! 	* libgnat/s-finmas.adb (Attach): Likewise.
  
! 2024-01-09  Tucker Taft  <taft@adacore.com>
  
! 	* pprint.adb (List_Name): Check for "Box_Present" when displaying
! 	a list, and emit "<>" if returns True.
! 	* sem_scil.adb (Check_SCIL_Node): Handle case when the type of a
! 	parameter is from a package that was mentioned in a limited with
! 	clause, and make no further checks, since this check routine does
! 	not have all the logic to check such a usage.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* freeze.adb (Freeze_Expression.Has_Decl_In_List): Deal specifically
! 	with itypes that are class-wide subtypes.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* libgnat/s-atopri.ads (Atomic_Store): New generic procedure.
! 	(Atomic_Store_8): New instantiated procedure.
! 	(Atomic_Store_16): Likewise.
! 	(Atomic_Store_32): Likewise.
! 	(Atomic_Store_64): Likewise.
! 	* libgnat/s-atopri__32.ads (Atomic_Store): New generic procedure.
! 	(Atomic_Store_8): New instantiated procedure.
! 	(Atomic_Store_16): Likewise.
! 	(Atomic_Store_32): Likewise.
! 	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Implement the
! 	support for __atomic_store_n and __sync_bool_compare_and_swap_n.
! 	* gcc-interface/gigi.h (list_second): New inline function.
  
! 2024-01-09  Javier Miranda  <miranda@adacore.com>
  
! 	* sem_ch6.adb (Analyze_Subprogram_Specification): Do not replace
! 	the type of the formals with its corresponding record in
! 	init-procs.
! 	* sem_ch9.adb (Analyze_Requeue): Add missing support to requeue to
! 	a procedure that denotes a renaming of an entry.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* exp_util.adb (Possible_Side_Effect_In_SPARK): Refine handling of
! 	itype declarations.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_ch6.adb (Analyze_Subprogram_Specification): Set Is_Inlined
! 	flag by default in GNATprove mode.
! 	* sem_res.adb (Resolve_Call): Only look at flag which is cleared
! 	when inlined subprogram is detected to be recursive.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call):
! 	Remove detection of recursive calls.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* inline.adb (Cannot_Inline): Cleanup use of 'Length; remove
! 	dead code.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_aggr.adb (Resolve_Container_Aggregate): Use "No".
! 	* sem_ch8.adb (Find_Direct_Name): Likewise.
  
! 2024-01-09  Steve Baird  <baird@adacore.com>
  
! 	* sem_util.adb (Enclosing_Declaration): Instead of returning a
! 	subprogram specification node, return its parent (which is
! 	presumably a subprogram declaration).
! 	* contracts.adb (Insert_Stable_Property_Check): Remove code
! 	formerly needed to compensate for incorrect behavior of
! 	Sem_Util.Enclosing_Declaration.
! 	* exp_attr.adb (In_Available_Context): Remove code formerly needed
! 	to compensate for incorrect behavior of
! 	Sem_Util.Enclosing_Declaration.
! 	* sem_ch8.adb (Is_Actual_Subp_Of_Inst): Remove code formerly
! 	needed to compensate for incorrect behavior of
! 	Sem_Util.Enclosing_Declaration.
  
! 2024-01-09  Steve Baird  <baird@adacore.com>
  
! 	* sem_ch8.adb (Check_Constrained_Object): Before updating the
! 	subtype mark of an object renaming declaration by calling Rewrite,
! 	first check whether the destination of the Rewrite call exists.
! 	* atree.adb (Copy_Slots): Return without performing any updates if
! 	Destination equals Empty or Error, or if Source equals Empty. Any
! 	of those conditions indicates an error case.
! 	* sem_ch12.adb (Analyze_Formal_Derived_Type): Avoid cascading
! 	errors.
! 	* sem_ch3.adb (Analyze_Number_Declaration): In an error case, do
! 	not pass Error as destination in a call to Rewrite.
! 	(Find_Type_Of_Subtype_Indic): In an error case, do not pass Error
! 	or Empty as destination in a call to Rewrite.
  
! 2024-01-09  Joffrey Huguet  <huguet@adacore.com>
  
! 	* libgnat/i-cstrin.ads (Update): Fix precondition.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_aggr.adb (Resolve_Extension_Aggregate): Remove the unreachable
! 	call to Transform_BIP_Assignment as well as the procedure.
  
! 2024-01-09  Bob Duff  <duff@adacore.com>
  
! 	* lib-xref.adb (Generate_Reference): Do not count it as a read
! 	reference if we're calling a TSS.
  
! 2024-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* doc/gnat_rm/implementation_defined_aspects.rst,
! 	doc/gnat_rm/implementation_defined_pragmas.rst: Add sections for
! 	Always_Terminates.
! 	* gnat-style.texi: Regenerate.
! 	* gnat_rm.texi: Regenerate.
  	* gnat_ugn.texi: Regenerate.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/78207
! 	* libgnat/g-regexp.ads: Fix outdated comment.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/112781
! 	* exp_ch6.ads (Is_Build_In_Place_Function): Adjust description.
! 	* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): Delete.
! 	(Is_Function_Call_With_BIP_Formals): New predicate.
! 	(Is_Build_In_Place_Function_Call): Restore original semantics.
! 	(Expand_Call_Helper): Adjust conditions guarding the calls to
! 	Add_Dummy_Build_In_Place_Actuals to above renaming.
! 	(Expand_N_Extended_Return_Statement): Adjust to above renaming.
! 	(Expand_Simple_Function_Return): Likewise.  Move the assertion
! 	to after the transformation into an extended return statement.
! 	(Make_Build_In_Place_Call_In_Allocator): Remove unreachable code.
! 	(Make_Build_In_Place_Call_In_Assignment): Likewise.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/112781
! 	* sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type
! 	consistently to retrieve the ancestor for a derived type.
! 	* sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type
! 	consistently before accessing Designated_Type.
  
! 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Relax
! 	assertion for regular pointer types.
  
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
  
! 	* gcc-interface/lang.opt.urls: New file, autogenerated by
! 	regenerate-opt-urls.py.
  
! 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
  
  	* gnat_ugn.texi: Bump @copying's copyright year.
  	* gnat_rm.texi: Likewise.
  
  
! Copyright (C) 2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/gcc/ada/ChangeLog-2023 gcc-14.1.0/gcc/ada/ChangeLog-2023
*** gcc-13.2.0/gcc/ada/ChangeLog-2023	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/ChangeLog-2023	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,6978 ----
+ 2023-12-19  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/Make-lang.in (ada.html, ada.install-html): Add.
+ 
+ 2023-12-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Subtype_Declaration): Remove a short-circuit
+ 	for subtypes without aspects when it comes to predicates.
+ 	* sem_util.adb (Inherit_Predicate_Flags): Deal with private subtypes
+ 	whose full view is an Itype.
+ 
+ 2023-12-19  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch13.adb (Valid_Default_Iterator): Check all interfaces for
+ 	valid iterator type. Also improve error reporting.
+ 
+ 2023-12-19  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Container_Aggregate): In the Add_Named
+ 	case, issue an error if the container aggregate is written as a
+ 	positional aggregate, since such an aggregate must have named
+ 	associations.
+ 
+ 2023-12-19  Sheri Bernstein  <bernstein@adacore.com>
+ 
+ 	* libgnat/a-comlin.adb (Argument_Count): Rewrite code so there is
+ 	only one return, to remove Improper_Returns violation.
+ 	(Command_Name): Add pragma to exempt Improper_Returns violation.
+ 
+ 2023-12-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Rework last comment.
+ 
+ 2023-12-19  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Association): Call
+ 	Preanalyze_And_Resolve instead of Analyze_And_Resolve on a key
+ 	expression of an iterated association.
+ 
+ 2023-12-19  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch9.adb, sem_ch10.adb, sem_util.adb: Fix comments.
+ 
+ 2023-12-19  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sinput.adb, sinput.ads (Get_Logical_Line_Number_Img): Remove.
+ 
+ 2023-12-19  Patrick Bernardi  <bernardi@adacore.com>
+ 
+ 	* bindgen.adb (Command_Line_Used): New object.
+ 	(Gen_Main): Only generate references to symbols used by
+ 	Ada.Command_Line if the package is used by the partition.
+ 	(Gen_Output_File_Ada): Ditto.
+ 	(Resolve_Binder_Options): Check if Ada.Command_Line is in the
+ 	closure of the partition.
+ 
+ 2023-12-19  Vasiliy Fofanov  <fofanov@adacore.com>
+ 
+ 	* libgnat/i-cstrin.adb (Value): Optimize.
+ 
+ 2023-12-19  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Update comment
+ 	and body.
+ 
+ 2023-12-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Is_Constr_Subt_For_UN_Aliased): Rename into...
+ 	(Is_Constr_Array_Subt_With_Bounds): ...this.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Adjust to above
+ 	renaming and remove now redundant test.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Likewise, but set
+ 	Is_Constr_Array_Subt_With_Bounds only on arrays.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Apply same renaming.
+ 	* gen_il-gen-gen_entities.adb (Entity_Kind): Likewise.
+ 	* gen_il-internals.adb (Image): Remove specific processing for
+ 	Is_Constr_Subt_For_UN_Aliased.
+ 	* treepr.adb (Image): Likewise.
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Adjust to renaming
+ 	and remove now redundant tests.
+ 	* gcc-interface/trans.cc (Identifier_to_gnu): Likewise.
+ 	(Call_to_gnu): Likewise.
+ 
+ 2023-12-19  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnat/s-rident.ads: Remove No_Dynamic_Priorities from
+ 	Restricted_Tasking.
+ 
+ 2023-12-19  Patrick Bernardi  <bernardi@adacore.com>
+ 
+ 	* argv.c: Do not include adaint.h if LIGHT_RUNTIME is defined.
+ 	* bindgen.adb (Gen_Main): Simplify command line argument and exit
+ 	handling by requiring the runtime to always provide the required
+ 	symbols if command line argument and exit code is enabled.
+ 	* targparm.ads: Update comments to reflect changes to gnatbind.
+ 
+ 2023-12-19  Ronan Desplanques  <desplanques@adacore.com>
+ 	    Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_aggr.adb (Initialize_Component): Use corresponding record
+ 	types of concurrent types.
+ 	* exp_util.ads (Make_Tag_Assignment_From_Type): Add precondition
+ 	and extend documentation.
+ 
+ 2023-12-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Is_Ignored_Transient): Rename into...
+ 	(Is_Ignored_For_Finalization): ...this.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Adjust to above renaming.
+ 	* gen_il-gen-gen_entities.adb (Object_Kind): Likewise.
+ 	* exp_aggr.adb (Expand_Array_Aggregate): Likewise.
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Likewise.
+ 	* exp_util.adb (Requires_Cleanup_Actions): Likewise.
+ 	* exp_ch4.adb (Expand_N_If_Expression): Move down declaration of
+ 	variable Optimize_Return_Stmt.
+ 	(Process_Transient_In_Expression): Turn procedure into a child of...
+ 	(Process_Transients_In_Expression): ...this procedure.
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Remove obsolete setting
+ 	of Is_Ignored_Transient flag on the temporary if within a dependent
+ 	expression of a conditional expression.
+ 
+ 2023-12-19  Yannick Moy  <moy@adacore.com>
+ 
+ 	* exp_spark.adb (Expand_SPARK_N_Aggregate): New procedure for the
+ 	special expansion.
+ 	(Expand_SPARK): Call the new expansion procedure.
+ 	* sem_util.adb (Is_Container_Aggregate): Implement missing test.
+ 
+ 2023-12-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Copy_Generic_Node): Add guard for Ancestor_Type.
+ 
+ 2023-12-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gen_il-fields.ads (Aggregate_Bounds): Rename to
+ 	Aggregate_Bounds_Or_Ancestor_Type.
+ 	* gen_il-gen-gen_nodes.adb (Aggregate_Bounds): Likewise.
+ 	* sem_aggr.adb (Resolve_Record_Aggregate): Remove obsolete bypass.
+ 	* sem_ch12.adb (Check_Generic_Actuals): Add decoration.
+ 	(Copy_Generic_Node): For an extension aggregate, restore only the
+ 	full view, if any.  For a full aggregate, restore the full view as
+ 	well as that of its Ancestor_Type, if any, and up to the root type.
+ 	(Save_References_In_Aggregate): For a full aggregate of a local
+ 	derived tagged type with a global ancestor, set Ancestor_Type to
+ 	this ancestor.  For a full aggregate of a global derived tagged
+ 	type, set Ancestor_Type to the parent type.
+ 	* sinfo-utils.ads (Aggregate_Bounds): New function renaming.
+ 	(Ancestor_Type): Likewise.
+ 	(Set_Aggregate_Bounds): New procedure renaming.
+ 	(Set_Ancestor_Type): Likewise.
+ 	* sinfo.ads (Ancestor_Type): Document new field.
+ 
+ 2023-12-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_If_Expression): Also add missing calls to
+ 	Process_Transients_In_Expression on the code path implementing the
+ 	special optimization for an unidimensional array type and
+ 	dependent expressions with static bounds.
+ 
+ 2023-12-19  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch8.adb (Is_Actual_Subp_Of_Inst): After calling
+ 	Enclosing_Declaration, add a check for the case where one more
+ 	Parent call is needed to get the enclosing declaration.
+ 
+ 2023-12-19  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.adb (Build_Default_Subtype_OK): Relax
+ 	known-at-compile-time requirement.
+ 	* sem_util.ads (Build_Default_Subtype_OK): Bring documentation
+ 	comment up-to-date.
+ 
+ 2023-12-19  Yannick Moy  <moy@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Fix doc for
+ 	pragma Ignore_Pragma, in the case where it follows another
+ 	configuration pragma that it names, which causes the preceding
+ 	pragma to be ignored after parsing.
+ 	* errout.adb (Should_Ignore_Pragma_SPARK_Mode): New query.
+ 	(SPARK_Msg_N): Do nothing if SPARK_Mode is ignored.
+ 	(SPARK_Msg_NE): Same.
+ 	* gnat-style.texi: Regenerate.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-12-19  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Selected_Component): Check correct mode
+ 	variable for GNATprove.
+ 	* sem_prag.adb (Refined_State): Call SPARK_Msg_NE which checks
+ 	value of SPARK_Mode before issuing a message.
+ 	* sem_res.adb (Resolve_Entity_Name): Remove legality check for
+ 	SPARK RM 6.1.9(1), moved to GNATprove.
+ 
+ 2023-12-19  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch12.adb (Check_Generic_Child_Unit): Introduce a new nested
+ 	function Adjusted_Inst_Par_Ekind to cope with cases where either
+ 	a- the visibility of a compiler-generated renaming is incorrect;
+ 	or b- we are inside of a generic parent unit G1 that has a child
+ 	unit G1.G2, so instantiation of G1.G2 is permitted.
+ 
+ 2023-12-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Process_If_Case_Statements): Rename into...
+ 	(Process_Transients_In_Expression): ...this and beef up comment.
+ 	(Expand_N_Case_Expression): Call Process_Transients_In_Expression
+ 	unconditionally on the list of actions of each alternative.
+ 	(Expand_N_Expression_With_Actions): Do not deal with actions in
+ 	nested subexpressions, but call Process_Transients_In_Expression
+ 	on the list of actions only.
+ 	(Expand_N_If_Expression): Adjust to above renaming.  Add missing
+ 	calls to Process_Transients_In_Expression in the case when an EWA
+ 	is not used because of Minimize_Expression_With_Actions.
+ 
+ 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* gcc-interface/utils.cc (attr_target_exclusions): Make
+ 	target/target_clones exclusion target-dependent.
+ 	(attr_target_clones_exclusions): Ditto.
+ 
+ 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
+ 
+ 	* gcc-interface/utils.cc (attr_noinline_exclusions): New.
+ 	(attr_always_inline_exclusions): Ditto.
+ 	(attr_target_exclusions): Ditto.
+ 	(attr_target_clones_exclusions): Ditto.
+ 	(gnat_internal_attribute_table): Add new exclusion lists.
+ 	(handle_noinline_attribute): Remove custom exclusion handling.
+ 	(handle_target_attribute): Ditto.
+ 	(handle_target_clones_attribute): Ditto.
+ 
+ 2023-12-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* terminals.c [__FreeBSD__]: Include <libutil.h>.
+ 	(TABDLY): Only define if missing.
+ 
+ 2023-12-06  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc-interface/trans.cc: Include ipa-strub.h.
+ 	(gigi): Make internal decls for targets of compiler-generated
+ 	calls strub-callable too.
+ 	(build_raise_check): Likewise.
+ 	* gcc-interface/utils.cc: Include ipa-strub.h.
+ 	(handle_strub_attribute): New.
+ 	(gnat_internal_attribute_table): Add strub.
+ 
+ 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gcc-interface/utils.cc (gnat_internal_attribute_table): Add extra
+ 	braces to work around PR 16333 in older compilers.
+ 
+ 2023-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* adaint.c: Include <signal.h>.
+ 	* expect.c: Include <string.h>.
+ 
+ 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gcc-interface/gigi.h (gnat_internal_attribute_table): Change
+ 	type to scoped_attribute_specs.
+ 	* gcc-interface/utils.cc (gnat_internal_attribute_table): Likewise,
+ 	using...
+ 	(gnat_internal_attributes): ...this as the underlying array.
+ 	* gcc-interface/misc.cc (gnat_attribute_table): New global.
+ 	(LANG_HOOKS_ATTRIBUTE_TABLE): Use it.
+ 
+ 2023-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* adaint.c [__APPLE__]: Include <signal.h>, <sys/time.h>.
+ 	* terminals.c [!_WIN32]: Include <signal.h>.
+ 	[__APPLE__]: Include <util.h>.
+ 	Fix typos.
+ 
+ 2023-11-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.ads (Apply_Predicate_Check): Add Deref boolean parameter.
+ 	* checks.adb (Apply_Predicate_Check): Revert latest change. Use
+ 	Loc local variable to hold the source location. Use a common code
+ 	path for the generic processing and make a dereference if Deref is
+ 	True.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Compute Aggr_In_Place
+ 	earlier. If it is true, do not call Apply_Predicate_Check on the
+ 	expression on entry but on the temporary on exit with a
+ 	dereference.
+ 	* sem_res.adb (Resolve_Actuals): Add explicit parameter
+ 	association in call to Apply_Predicate_Check.
+ 
+ 2023-11-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_put_image.adb (Put_Image_Enabled): Return True in more
+ 	cases. In particular, when testing to see if a type occurs in a
+ 	predefined unit, test the type's code unit
+ 	(obtained by calling Get_Code_Unit). In the case of type within a
+ 	user-defined instance of a predefined generic, Is_Predefined_Unit
+ 	will return True for the type and False for the type's code unit.
+ 
+ 2023-11-30  Yannick Moy  <moy@adacore.com>
+ 
+ 	* contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
+ 	Remove checking on volatility. Remove handling of SPARK_Mode, not
+ 	needed anymore.
+ 	(Analyze_Entry_Or_Subprogram_Contract): Remove checking on
+ 	volatility.
+ 	(Check_Type_Or_Object_External_Properties): Same.
+ 	(Analyze_Object_Contract): Same.
+ 	* freeze.adb (Freeze_Record_Type): Same. Also remove checking on
+ 	synchronized types and ghost types.
+ 	* sem_ch12.adb (Instantiate_Object): Remove checking on
+ 	volatility.
+ 	(Instantiate_Type): Same.
+ 	* sem_ch3.adb (Access_Type_Declaration): Same.
+ 	(Derived_Type_Declaration): Remove checking related to untagged
+ 	partial view.
+ 	(Process_Discriminants): Remove checking on volatility.
+ 	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Same.
+ 	* sem_ch6.adb (Analyze_Procedure_Call): Fix use of SPARK_Mode
+ 	where GNATprove_Mode was intended.
+ 	* sem_disp.adb (Inherited_Subprograms): Protect against Empty
+ 	node.
+ 	* sem_prag.adb (Analyze_Global_In_Decl_Part): Remove checking on
+ 	volatility.
+ 	(Analyze_Pragma): Same.
+ 	* sem_res.adb (Flag_Effectively_Volatile_Objects): Remove.
+ 	(Resolve_Actuals): Remove checking on volatility.
+ 	(Resolve_Entity_Name): Same.
+ 	* sem_util.adb (Check_Nonvolatile_Function_Profile): Remove.
+ 	(Check_Volatility_Compatibility): Remove.
+ 	* sem_util.ads: Same.
+ 
+ 2023-11-30  Sheri Bernstein  <bernstein@adacore.com>
+ 
+ 	* libgnat/i-cstrin.adb (Free): Rewrite code so there is only one
+ 	return, to remove Improper_Returns violation.
+ 	(Position_Of_Nul): Add pragma to exempt Improper_Returns
+ 	violation.
+ 	(To_Chars_Ptr): Likewise.
+ 	(Value): Likewise
+ 
+ 2023-11-30  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Validate_Compile_Time_Warning_Errors): Avoid
+ 	checking compile time warnings and errors if backend has not been
+ 	activated.
+ 
+ 2023-11-30  Yannick Moy  <moy@adacore.com>
+ 
+ 	* checks.adb, exp_aggr.adb, exp_ch4.ads, exp_ch5.adb,
+ 	exp_util.adb, exp_util.ads, inline.adb, sem_ch13.adb,
+ 	sem_ch6.adb, sem_ch8.adb, sem_prag.adb, sem_util.ads: Fix comments
+ 	and typos.
+ 
+ 2023-11-30  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* freeze.adb (Declared_In_Expanded_Body): New subprogram.
+ 	(In_Expanded_Body): Minor code cleanup.
+ 	(Freeze_Expression): Code cleanup plus factorize in a new function
+ 	the code that identifies entities declared in the body of expander
+ 	generated subprograms, since such case must be checked also for
+ 	other node kinds when climbing the tree to locate the place to
+ 	insert the freezing node.
+ 
+ 2023-11-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch8.adb (Find_Direct_Name): In the case of a resolving a
+ 	name that occurs within an instantiation, add code to detect and
+ 	filter out unwanted candidate resolutions. The filtering is
+ 	performed via a call to Remove_Interp.
+ 
+ 2023-11-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* libgnarl/a-rttiev.ads: add a comment
+ 
+ 2023-11-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch12.adb (Validate_Discriminated_Formal_Type): Replace
+ 	Entity_Id equality test with a call to Subtypes_Match. Distinct
+ 	subtypes which are statically matching should pass this test.
+ 	(Check_Discriminated_Formal): Replace Entity_Id equality test with
+ 	a call to Subtypes_Statically_Match (preceded by a check that the
+ 	preconditions for the call are satisfied).
+ 
+ 2023-11-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Add Special_Return
+ 	boolean constant to hold the value of For_Special_Return_Object
+ 	for the allocator and use it throughout the procedure.
+ 
+ 2023-11-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.adb (Apply_Predicate_Check): Also deal specifically with
+ 	an expression that is a qualified aggregate in an allocator.
+ 
+ 2023-11-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch4.adb (Constant_Indexing_OK): As a temporary stopgap,
+ 	return False in the case of an unanalyzed prefixed-view call.
+ 
+ 2023-11-28  Simon Wright  <simon@pushface.org>
+ 
+ 	PR ada/111909
+ 	* adaint.c
+ 	(__gnat_get_file_names_case_sensitive): Split out the __APPLE__
+ 	check and remove the checks for __arm__, __arm64__. For Apple,
+ 	file names are by default case-insensitive unless TARGET_OS_IOS is
+ 	set.
+ 
+ 2023-11-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (annotate_value): Apply the same processing
+ 	for parameters as for variables.
+ 
+ 2023-11-28  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (build_simple_component_ref): Add
+ 	comment on assertion.
+ 
+ 2023-11-28  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): In the case of a
+ 	Reduce attribute reference, fix bugs in initializing Accum_Typ.
+ 	The previous version was incorrect in the case where E1 refers to
+ 	the first of multiple possible overload resolution candidates and
+ 	that candidate does not turn out to be the right one. The previous
+ 	version also had code to compute Accum_Typ via a different method
+ 	if the initial computation turned out to yield a universal numeric
+ 	type. Delete that initial computation and use the second method in
+ 	all cases.
+ 
+ 2023-11-28  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Add_Discriminant_Values): Remove this procedure.
+ 	(Propagate_Discriminants): Remove this procedure.
+ 	(Resolve_Record_Aggregate): Remove code (the Capture_Discriminants
+ 	block statement) related to propagating discriminants and
+ 	generating initializations for subcomponents of a
+ 	discriminant-dependent box-defaulted subcomponent of a nonprivate
+ 	record type with discriminants, and handle all top-level
+ 	components that have a non-null base init proc directly, by
+ 	calling Add_Association with "Is_Box_Present => True". Also,
+ 	combine that elsif clause with the immediately preceding elsif
+ 	clause, since they now both contain the same statement (calls to
+ 	Add_Association with the same actuals).
+ 
+ 2023-11-28  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_util.adb (Check_Result_And_Post_State): Disable this when
+ 	we're in an instance. Misc cleanup.
+ 
+ 2023-11-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.ads (Expand_Cleanup_Actions): Move declaration to the
+ 	Finalization Management section.
+ 	* exp_ch7.adb (Transient Scope Management): Move description down to
+ 	after that of the general finalization and make a few changes.
+ 	(Insert_Actions_In_Scope_Around): Call Process_Transients_In_Scope
+ 	only if cleanups are being handled.
+ 	(Process_Transients_In_Scope): Remove redundant test on Clean.
+ 	* exp_util.ads (Within_Case_Or_If_Expression): Adjust description.
+ 	* exp_util.adb (Within_Case_Or_If_Expression): Only return true if
+ 	within the dependent expressions of the conditional expressions.
+ 
+ 2023-11-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/the_implementation_of_standard_i_o.rst: Fix a couple
+ 	occurrences of incorrect quoting.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2023-11-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Build_Flag_For_Function): New function made up of the
+ 	code building the special flag for return object present...
+ 	(Expand_N_Extended_Return_Statement): ...in there.  Replace the code
+ 	with a call to Build_Flag_For_Function.  Add assertion for the flag.
+ 	(Expand_Non_Function_Return): For a nested return, if the return
+ 	object needs finalization actions, update the special flag.
+ 
+ 2023-11-28  Sebastian Poeplau  <poeplau@adacore.com>
+ 
+ 	* einfo-utils.ads, einfo-utils.adb (Is_Address_Compatible_Type):
+ 	New function.
+ 
+ 2023-11-28  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Apply a conversion to the
+ 	size temp object passed as the second actual parameter on the call to
+ 	the New_Indexed_Subp function, to convert it to the index type of the
+ 	container type (taken from the first formal parameter of the function).
+ 
+ 2023-11-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): Do not proceed in a spec expression
+ 	for nonstatic representation attributes of a scalar subtype when the
+ 	subtype is not frozen.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Do not freeze the type
+ 	of the object in a spec expression.
+ 
+ 2023-11-28  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* exp_unst.adb (Note_Uplevel_Bound): Treat
+ 	N_Unchecked_Type_Conversion like N_Type_Conversion.
+ 
+ 2023-11-28  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/s-imgboo.adb: Remove with_clause now in spec file.
+ 	* libgnat/s-imgboo.ads: Remove dependency on System.Val_Bool.
+ 	(Image_Boolean): Replace call to Value_Boolean by passing value V
+ 	to updated ghost function Is_Boolean_Image_Ghost.
+ 	* libgnat/s-valboo.ads (Is_Boolean_Image_Ghost): Move to other
+ 	unit.
+ 	(Value_Boolean.): Update precondition.
+ 	* libgnat/s-valspe.ads (Is_Boolean_Image_Ghost): Move here. Add
+ 	new parameter for expected boolean value.
+ 
+ 2023-11-28  Tucker Taft  <taft@adacore.com>
+ 
+ 	* sem_scil.adb: Handle discriminant specification.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Loop_Statement_to_gnu): Always use the
+ 	simpler form for a loop with a boolean iteration variable.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>: Put
+ 	the alignment directly on the type in the constrained case too.
+ 	* gcc-interface/utils.cc (maybe_pad_type): For an array type, take
+ 	the alignment of the element type as the original alignment.
+ 
+ 2023-11-21  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Container_Aggregate): In the case where Comp
+ 	is an N_Iterated_Component_Association, pick up Discrete_Choices rather
+ 	than Choices.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Build_Finalizer): For package specs and bodies, push
+ 	and pop the specs onto the scope stack only once.
+ 	* inline.adb (Cleanup_Scopes): Call Pop_Scope instead of End_Scope.
+ 
+ 2023-11-21  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): In the case of a
+ 	deep delta choice, the expected type for the expression will
+ 	typically not be the component type of the array type, so a call
+ 	to Analyze_And_Resolve that assumes otherwise would be an error.
+ 	It turns out that such a call, while wrong, is usually harmless
+ 	because the expression has already been marked as analyzed. This
+ 	doesn't work if the aggregate occurs in a postcondition and, in
+ 	any case, we don't want to rely on this. So do not perform the
+ 	call in the deep case.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_warn.adb (Check_References.Type_OK_For_No_Value_Assigned):
+ 	New predicate.
+ 	(Check_References): For Warn_On_No_Value_Assigned, use the same test
+ 	on the type in the address-not-taken and default cases.
+ 
+ 2023-11-21  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Retrieve the
+ 	iteration type's iteration interface progenitor via
+ 	Iterator_Interface_Ancestor, in the case of both "in" and "of"
+ 	iterators. Narrow the scope of Pack, so it's declared and
+ 	initialized only within the code related to "of" iterators, and
+ 	change its name to Cont_Type_Pack. Adjust comments.
+ 	* sem_ch5.adb (Get_Cursor_Type): In the case of a derived type,
+ 	retrieve the iteration type's iterator interface progenitor (if it
+ 	exists) via Iterator_Interface_Ancestor rather than assuming that
+ 	the parent type is the interface progenitor.
+ 	* sem_util.ads (Iterator_Interface_Ancestor): New function.
+ 	* sem_util.adb (Iterator_Interface_Ancestor): New function
+ 	returning a type's associated iterator interface type, if any, by
+ 	collecting and traversing the type's interfaces.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Address>: Remove the
+ 	bypass for prefixes with task type.
+ 
+ 2023-11-21  Viljar Indus  <indus@adacore.com>
+ 
+ 	* par.adb: Restore Style_Checks after parsing each unit.
+ 
+ 2023-11-21  Yannick Moy  <moy@adacore.com>
+ 
+ 	* exp_spark.adb (Expand_SPARK_Delta_Or_Aggregate): Fix type.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Analyze_Package_Instantiation): Test Expander_Active
+ 	to detect generic contexts for the generation of cleanup actions.
+ 
+ 2023-11-21  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* libgnat/g-catiio.adb (Value): Modify conditionals to use 'Last
+ 	instead of 'Length
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.adb (Null_Status): Deal with unchecked type conversions.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_To_Assignments): Do not treat initialization
+ 	procedures specially when it comes to creating a transient scope.
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Likewise.
+ 	* exp_util.adb (Requires_Cleanup_Actions): Likewise.
+ 
+ 2023-11-21  Doug Rupp  <rupp@adacore.com>
+ 
+ 	* s-oscons-tmplt.c: #define CLOCK_RT_Ada "CLOCK_MONOTONIC" for
+ 	__vxworks
+ 
+ 2023-11-21  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_aggr.adb: Replace "not Present (...)" call with "No (...)" call.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove Is_Finalization_Wrapper
+ 	* gen_il-gen-gen_nodes.adb (N_Block_Statement): Likewise.
+ 	* sinfo.ads (Is_Finalization_Wrapper): Delete.
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust comment
+ 	and remove obsolete code testing the Is_Finalization_Wrapper flag.
+ 	* exp_util.adb (Requires_Cleanup_Actions): Likewise.
+ 
+ 2023-11-21  Doug Rupp  <rupp@adacore.com>
+ 
+ 	* libgnat/libada.gpr: Revise section 1
+ 
+ 2023-11-21  Steve Baird  <baird@adacore.com>
+ 
+ 	* par.adb: Add new Boolean variable Inside_Delta_Aggregate.
+ 	* par-ch4.adb (P_Simple_Expression): Add support for a deep delta
+ 	aggregate choice. We turn a sequence of selectors into a peculiar
+ 	tree. We build a component (Indexed or Selected) whose prefix is
+ 	another such component, etc. The leftmost prefix at the bottom of
+ 	the tree has a "name" which is the first selector, without any
+ 	further prefix. For something like "with delta (1)(2) => 3" where
+ 	the type of the aggregate is an array of arrays of integers, we'll
+ 	build an N_Indexed_Component whose prefix is an integer literal 1.
+ 	This is consistent with the trees built for "regular"
+ 	(Ada-defined) delta aggregates.
+ 	* sem_aggr.adb (Is_Deep_Choice, Is_Root_Prefix_Of_Deep_Choice):
+ 	New queries.
+ 	(Resolve_Deep_Delta_Assoc): new procedure.
+ 	(Resolve_Delta_Array_Aggregate): call Resolve_Deep_Delta_Assoc in
+ 	deep case.
+ 	(Resolve_Delta_Record_Aggregate): call Resolve_Deep_Delta_Assoc in
+ 	deep case.
+ 	(Get_Component_Type): new function replaces old Get_Component
+ 	function.
+ 	* sem_aggr.ads (Is_Deep_Choice, Is_Root_Prefix_Of_Deep_Choice):
+ 	New queries.
+ 	* exp_aggr.adb (Expand_Delta_Array_Aggregate): add nested function
+ 	Make_Array_Delta_Assignment_LHS; call it instead of
+ 	Make_Indexed_Component.
+ 	(Expand_Delta_Record_Aggregate): add nested function
+ 	Make_Record_Delta_Assignment_LHS; call it instead of
+ 	Make_Selected_Component.
+ 	* exp_spark.adb (Expand_SPARK_Delta_Or_Update): Insert range
+ 	checks for indexes in deep delta aggregates.
+ 
+ 2023-11-21  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* adaint.c (__gnat_unlink): Add new parameter and fix text
+ 	conversion on Windows. Remove unnecessary curly braces.
+ 	* adaint.h (__gnat_unlink): Add new parameter.
+ 	* libgnat/i-cstrea.ads (unlink): Adapt to __gnat_unlink signature
+ 	change.
+ 	* libgnat/i-cstrea.adb (unlink): New Subprogram definition.
+ 	* libgnat/s-crtl.ads (unlink): Adapt to __gnat_unlink signature
+ 	change.
+ 	* libgnat/s-fileio.adb (Delete): Pass encoding argument to unlink.
+ 
+ 2023-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Save_Global_References.Set_Global_Type): Beef up
+ 	comment about the setting of the full view.
+ 	* sem_res.adb (Resolve_Actuals.Insert_Default): Add another bypass
+ 	for the case of a generic context.
+ 
+ 2023-11-21  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: Move index
+ 	directives.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-11-21  Pierre-Marie de Rodat  <derodat@adacore.com>
+ 
+ 	* par_sco.adb (Process_Decisions)<Process_Node>: Skip aspect
+ 	specifications.
+ 
+ 2023-11-21  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/libgnat_common.gpr: Unconditionally pass -gnatg.
+ 
+ 2023-11-21  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_util.ads: Typo fix.
+ 
+ 2023-11-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Also create a
+ 	TYPE_DECL for the return type built for the CI/CO mechanism.
+ 
+ 2023-11-10  Andris Pavēnis  <andris.pavenis@iki.fi>
+ 
+ 	* expect.c (__gnat_waitpid): fix syntax errors
+ 
+ 2023-11-09  Simon Wright  <simon@pushface.org>
+ 
+ 	PR ada/111813
+ 	* libgnat/a-calfor.adb (Value (2)): Allow values of
+ 	parameter Elapsed_Time greater than or equal to 24 hours, by doing
+ 	the hour calculations in Natural rather than Hour_Number (0 ..
+ 	23). Calculate the result directly rather than by using Seconds_Of
+ 	(whose Hour parameter is of type Hour_Number).
+ 	If an exception occurs of type Constraint_Error, re-raise it
+ 	rather than raising a new CE.
+ 
+ 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	* gcc-interface/utils.cc (flag_isoc2x): Rename to flag_isoc23.
+ 
+ 2023-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Apply the
+ 	specific rewriting done for an aliased object with an unconstrained
+ 	array nominal subtype in the renaming case too.
+ 
+ 2023-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_gimplify_expr) <CALL_EXPR>: Delete.
+ 
+ 2023-11-07  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch13.ads (Set_Enum_Esize): Do not set alignment.
+ 	* sem_ch13.adb (Set_Enum_Esize): Do not set alignment. Archaeology
+ 	seems to show that this line of code dates from when "Alignment =
+ 	0" meant "the Alignment is not known at compile time" and "the
+ 	Alignment is not yet known at compile time" as well as "the
+ 	Alignment is zero". In any case, it seems to be unnecessary, and
+ 	in this case harmful, because gigi would crash. Alignment_Clause
+ 	is set (because there is one), so gigi would query the Alignment,
+ 	but Alignment was destroyed.
+ 
+ 2023-11-07  Julien Bortolussi  <bortolussi@adacore.com>
+ 
+ 	* doc/share/conf.py: Changed the background color and the logo.
+ 
+ 2023-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add Compare_Type.
+ 	* gen_il-gen-gen_nodes.adb (N_Op_Eq): Likewise.
+ 	(N_Op_Ge): Likewise.
+ 	(N_Op_Gt): Likewise.
+ 	(N_Op_Le): Likewise.
+ 	(N_Op_Lt): Likewise.
+ 	(N_Op_Ne): Likewise.
+ 	* sinfo.ads (Compare_Type): Document new field.
+ 	* sem_ch4.adb (Analyze_Comparison_Equality_Op): If the entity is
+ 	already present, set the Compare_Type on overloaded operands if it
+ 	is present on the node.
+ 	* sem_ch12.adb (Check_Private_View): Look into the Compare_Type
+ 	instead of the Etype for comparison operators.
+ 	(Copy_Generic_Node): Remove obsolete code for comparison
+ 	operators.
+ 	(Save_Global_References.Save_References): Do not walk into the
+ 	descendants of N_Implicit_Label_Declaration nodes.
+ 	(Save_Global_References.Set_Global_Type): Look into the
+ 	Compare_Type instead of the Etype for comparison operators.
+ 	* sem_res.adb (Resolve_Comparison_Op): Set Compare_Type.
+ 	(Resolve_Equality_Op): Likewise.
+ 
+ 2023-11-07  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* adaint.c (__gnat_file_time): Fix Windows version.
+ 
+ 2023-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Fold initialization
+ 	expression of Nominal_Subtype_Is_Constrained_Array constant into
+ 	the computation of Rewrite_As_Renaming and remove the constant.
+ 	Set it to True for an aliased array with unconstrained nominal
+ 	subtype if the subtype of the expression is also unconstrained.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Add_Own_DIC, Add_Own_Invariants): Store the aspect
+ 	expression in Expression_Copy.
+ 
+ 2023-11-07  Yannick Moy  <moy@adacore.com>
+ 
+ 	* exp_aggr.adb: Apply the renaming.
+ 	* exp_ch3.adb: Same.
+ 	* exp_ch4.adb: Same.
+ 	* exp_ch6.adb: Same.
+ 	* exp_ch7.adb: Same.
+ 	* exp_util.adb: Same.
+ 	* freeze.adb: Same.
+ 	* sem_aggr.adb: Same.
+ 	* sem_attr.adb: Same.
+ 	* sem_aux.adb: Alphabetize Is_Limited_Type. Rename.
+ 	* sem_aux.ads: Same.
+ 	* sem_ch3.adb: Apply the renaming.
+ 	* sem_ch6.adb: Same.
+ 	* sem_ch8.adb: Same.
+ 	* sem_prag.adb: Same.
+ 	* sem_res.adb: Same.
+ 	* sem_util.adb: Same.
+ 
+ 2023-11-07  Viljar Indus  <indus@adacore.com>
+ 
+ 	* aspects.adb (Exchange_Aspects): Removed. This method was
+ 	typically called after a Rewrite method. Now since the Rewrite
+ 	switches the aspects between the new and the old node it is no
+ 	longer needed.
+ 	(Has_Aspects): Converted to a utility method that performs the same
+ 	before as the previous Has_Aspects field did. Meaning it shows whether
+ 	a node actually has aspects or not.
+ 	(Copy_Aspects): New utility method that performs a deep copy of the
+ 	From nodes aspects.
+ 	(Aspect_Specfications): Removed. No longer needed. Replaced
+ 	by the primitive operation for the Aspect_Specification fields.
+ 	(Set_Aspect_Specifications): Likewise.
+ 	(Aspect_Specifications_Hash_Table): Remove the table and all the
+ 	utility methods for storing the old aspects.
+ 	* aspects.ads: Likewise.
+ 	* atree.adb (Copy_Separate_Tree): Remove custom code for aspects.
+ 	(New_Copy): Likewise.
+ 	(Replace): Likewise.
+ 	(Rewrite): Likewise.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Keep the aspects from the old node.
+ 	* exp_ch6.adb (Validate_Subprogram_Calls): Previously aspects were ignored
+ 	because they were not on the tree. Explicitly ignore them here
+ 	when traversing the tree.
+ 	* exp_unst.adb (Build_Tables): Likewise
+ 	* gen_il-fields.ads: Remove Has_Aspects and add
+ 	Aspect_Specifications fields.
+ 	* gen_il-gen-gen_nodes.adb: Add Aspect_Specification fields
+ 	for all nodes that can have aspects. Additionally add
+ 	Expression_Copy for Aspect_Speficiations to avoid reusing
+ 	the Associated_Node for generic instantiation and aspect
+ 	analysis.
+ 	* ghost.adb (Remove_Ignored_Ghost_Node): Remove call to Remove_Aspects.
+ 	The rewritten node is a Null_Statement that cannot have aspects
+ 	and there is not anything to gain from removing them from the
+ 	Orignal_Node of N since it technically is not part of the active
+ 	tree.
+ 	* inline.adb (Process_Formals_In_Aspects): Simplify code for node traversal.
+ 	* par-ch13.adb: Avoid setting the parent explicitly for the
+ 	Aspect_Specifications list. This is done explicitly in the setter.
+ 	* par-ch6.adb: Likewise.
+ 	* par_sco.adb (Traverse_Aspects): Handle early return.
+ 	* sem_ch10.adb: Simplify code for Analyze_Aspect_Specifications.
+ 	* sem_ch11.adb: Likewise.
+ 	* sem_ch12.adb (Analyze_Formal_Derived_Interface_Type): Keep the aspects from
+ 	the orignal node after rewrite.
+ 	(Analyze_Formal_Derived_Type): Likewise.
+ 	(Analyze_Formal_Interface_Type): Likewise.
+ 	(Analyze_Formal_Object_Declaration): Simplify code for
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Formal_Package_Declaration): Likewise.
+ 	(Analyze_Formal_Subprogram_Declaration): Likewise.
+ 	(Analyze_Formal_Type_Declaration): Likewise.
+ 	(Analyze_Generic_Package_Declaration): Remove Exchange_Aspects.
+ 	The new node already has the correct aspects after the rewrite.
+ 	Also simplify code for Analyze_Aspect_Specifications.
+ 	(Analyze_Generic_Subprogram_Declaration): Likewise.
+ 	(Analyze_Package_Instantiation): Simplify code for
+ 	Analyze_Aspect_Specifications.
+ 	(Build_Instance_Compilation_Unit_Nodes): Remove explicit copy of
+ 	aspects that is no longer needed.
+ 	(Save_References): Update the traversal code to handle
+ 	Aspect_Specifications in the tree.
+ 	(Copy_Generic_Node): Remove explicit copy for aspects. New_Copy
+ 	took care of that already.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): Add early return to simplify
+ 	code for its calls. Avoid reusing the Entity(Associated_Node)
+ 	field for storing the original expression. Instead use the
+ 	new Expression_Copy field since Entity(Associated_Node) is
+ 	also used in generic instantiation.
+ 	(Analyze_Aspects_On_Subprogram_Body_Or_Stub): Simlify call
+ 	to Analyze_Aspect_Specifications.
+ 	(Check_Aspect_At_End_Of_Declarations): Use Expression_Copy
+ 	instead of Entity.
+ 	(Check_Aspect_At_Freeze_Point): Likewise.
+ 	* sem_ch3.adb: Simplify calls to Analyze_Aspect_Specifications.
+ 	* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Simplify call to
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Expression_Function): Keep the aspects from the
+ 	original node after a rewrite.
+ 	(Analyze_Generic_Subprogram_Body): Remove Exchange aspects
+ 	that is no longer needed. Simplify call to
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Null_Procedure): Keep the aspects from the
+ 	original node after a rewrite.
+ 	(Analyze_Subprogram_Body_Helper): Simplify calls to
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Subprogram_Declaration): Likewise.
+ 	* sem_ch7.adb (Analyze_Package_Body_Helper): Remove Exchange aspects
+ 	that is no longer needed. Simplify call to
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Package_Declaration): Simplify call to
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Private_Type_Declaration): Likewise.
+ 	* sem_ch8.adb: Simplify calls to
+ 	Analyze_Aspect_Specifications.
+ 	* sem_ch9.adb (Analyze_Entry_Body): Simplify call to
+ 	Analyze_Aspects_On_Subprogram_Body_Or_Stub.
+ 	(Analyze_Entry_Declaration): Simplify call to
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Protected_Body): Likewise.
+ 	(Analyze_Protected_Type_Declaration): Likewise.
+ 	(Analyze_Single_Protected_Declaration): Keep the aspects from
+ 	the original node after a rewrite. Simplify call to
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Single_Task_Declaration): Likewise.
+ 	(Analyze_Task_Body): Simplify call to
+ 	Analyze_Aspect_Specifications.
+ 	(Analyze_Task_Type_Declaration): Simplify calls to
+ 	Analyze_Aspect_Specifications.
+ 	* sem_dim.adb: Remove explicitly setting the parents
+ 	for the Aspect_Specification list.
+ 	* sem_disp.adb: Remove the with that is no longer
+ 	required since Aspect_Specifications is a node operation now.
+ 	* sem_util.adb (Copy_Node_With_Replacement): Remove explicit code for aspects.
+ 	* treepr.adb (Print_Field): Remove the version that was used for printing
+ 	aspects.
+ 	(Print_Node): Remove aspect specific code.
+ 
+ 2023-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb (N_Op_Boolean): Fix description.
+ 	* sem_ch4.adb (Analyze_Comparison_Equality_Op): Tidy up.
+ 	* sem_ch12.adb (Copy_Generic_Node): Use N_Op_Compare subtype.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch6.adb, exp_disp.adb, sem_ch13.adb, sem_ch3.adb: Fix newly
+ 	detected violations.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch3.adb, sem_ch4.adb, sem_eval.adb: Fix newly detected
+ 	violations.
+ 
+ 2023-11-07  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
+ 	-gnatwc documentation.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-11-07  Steve Baird  <baird@adacore.com>
+ 
+ 	* local_restrict.ads: A new package. Declares Local_Restriction
+ 	enumeration type and provides operations to check for local
+ 	restriction violations.
+ 	* local_restrict.adb: Corresponding package body. Replace "not
+ 	Present (X)" calls with "No (X)" calls.
+ 	* aspects.ads: Add a new enumeration elements,
+ 	Aspect_Local_Restrictions and Aspect_User_Aspect, to the Aspect_Id
+ 	enumeration type. Update Aspect_Id-indexed aggregates. Add nested
+ 	package User_Aspect_Support to manage two pieces of state. One is
+ 	a map from identifiers to User_Aspect_Definition pragmas (updated
+ 	when such a pragma is encountered). The other is an
+ 	access-to-subprogram variable that is introduced in order to keep
+ 	the bulk of semantics out of the closure of package Aspects while
+ 	allowing a call from aspects.adb to the sem_ch13 procedure that
+ 	analyzes a User_Aspect aspect specification.
+ 	* aspects.adb (Find_Aspect): Cope with a case of a block statement
+ 	with an empty parent. It is not clear whether this is papering
+ 	over a compiler bug. Add indirect call through the aforementioned
+ 	access-to-subprogram variable when Find_Aspect enounters an
+ 	unanalyzed User_Aspect aspect specification. If Find_Aspect is
+ 	called looking for aspect Foo, then a User_Aspect specification
+ 	might generate (during analysis) a Foo aspect specification. So
+ 	the Find_Aspect call needs to trigger that analysis if it has not
+ 	already taken place. Provide a body for package
+ 	User_Aspect_Support. Replace "not Present (X)" call with "No (X)"
+ 	call.
+ 	* freeze.adb (Freeze_Subprogram): Check local restriction
+ 	compatibility when a dispatching operation is overridden.
+ 	* par-prag.adb: Add support for parsing a User_Aspect_Definition
+ 	pragma.
+ 	* restrict.ads: We'd like to have the body of package Restrict
+ 	include a call to a procedure declared in package Local_Restrict.
+ 	Doing that in the obvious way pulls most of semantics into the
+ 	closure of package Restrict, and that turns out to cause problems.
+ 	So we introduce a level of indirection and instead call through an
+ 	access-to-subprogram value. In this unit, we declare the
+ 	access-to-subprogram type and object.
+ 	* restrict.adb (Check Restriction): When a construct is
+ 	encountered that could violate a global restriction (depending on
+ 	whether the given restriction is in effect), Check_Restriction is
+ 	called. At this point, we also check for a violation of any
+ 	corresponding local restriction that is in effect. For reasons
+ 	described above, this check is performed via an indirect call.
+ 	* sem_ch13.ads (Parse_Aspect_Local_Restrictions): A new function,
+ 	similar to the existing Parse_Aspect_Xxx subprograms.
+ 	* sem_ch13.adb: Perform semantic analysis of Local_Restrictions
+ 	and User_Aspect aspect specifications. Declare and call new
+ 	Validate_Aspect_Local_Restrictions and
+ 	Analyze_User_Aspect_Aspect_Specification procedures (a reference
+ 	to the latter is registered during package elaboration). In
+ 	Analyze_Aspect_Specifications, do not set the Analyzed flag of a
+ 	User_Aspect aspect specification. Replace "not Present (X)" call
+ 	with "No (X)" call. Replace 'Image with 'Img in a case where the
+ 	prefix of the attribute reference is an object; this is done to
+ 	accomodate older compilers.
+ 	* sem_ch6.adb (Check_Subtype_Conformant): Include in subtype
+ 	conformance check a check for overriding-related compatibility of
+ 	local restrictions.
+ 	* sem_ch8.adb (Analyze_Subprogram_Renaming): In the case of an
+ 	instance of a generic that takes a formal subprogram, check that
+ 	formal and actual are compatible with respect to local
+ 	restrictions.
+ 	* sem_prag.adb: Add support for User_Aspect_Definition pragma.
+ 	* sem_res.adb (Resolve_Call): Check caller/callee compatibility
+ 	with respect to local restrictions.
+ 	* snames.ads-tmpl: Add Name_Local_Restrictions, Name_User_Aspect,
+ 	and Name_User_Aspect_Definition constants.
+ 	* doc/gnat_rm/implementation_defined_aspects.rst: Document new
+ 	aspects.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Document new
+ 	pragma.
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: Add
+ 	User_Aspect_Definition to list of GNAT pragmas.
+ 	* gcc-interface/Make-lang.in: Add local_restrict.o.
+ 	* gnat-style.texi: Regenerate.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-11-07  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch4.adb (Is_Private_Overriding): Return True in the case
+ 	where a primitive operation is publicly inherited but privately
+ 	overridden.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove code from the
+ 	ELSE branch, because it was is identical to code before the IF
+ 	statements itself.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Change Ctyp and Csiz
+ 	from variables to constants and compute them using the nominal type
+ 	of the assigned array object.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_pakd.adb, libgnarl/s-osinte__android.ads,
+ 	libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__qnx.ads,
+ 	libgnarl/s-osinte__rtems.ads, libgnat/s-gearop.adb,
+ 	libgnat/s-poosiz.adb, sem_util.adb: Fix style.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Simplify handling of
+ 	assignments with string literals.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove Rhs_Val_Known;
+ 	represent unknown value by assigning Rhs_Val with No_Uint.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_pakd.adb
+ 	(Expand_Bit_Packed_Element_Set): Change local Decl object from
+ 	variable to constant.
+ 	(Setup_Inline_Packed_Array_Reference): Likewise for Csiz.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_pakd.adb (Setup_Inline_Packed_Array_Reference): Remove extra
+ 	whitespace from the list of parameters.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Get_Actual_Subtype_If_Available): Only call Etype
+ 	when necessary.
+ 
+ 2023-11-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb
+ 	(Get_Actual_Subtype,Get_Actual_Subtype_If_Available): Fix handling
+ 	of expanded names.
+ 
+ 2023-11-07  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb: (Analyze_Pragma): Reduce the number of nested if
+ 	statements.
+ 
+ 2023-11-07  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch10.adb: (Analyze_Compilation_Unit): Restore the orignal
+ 	state of style check pragmas at the end of the analysis.
+ 
+ 2023-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_pakd.adb (Get_Base_And_Bit_Offset): Use the full component
+ 	reference instead of just the selector name for 'Bit_Position.
+ 
+ 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-interface/misc.cc: Update for changes to diagnostic_context.
+ 
+ 2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc-interface/Makefile.in: Handle Darwin rpaths.
+ 
+ 2023-10-20  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gigi): Mark __gnat_reraise_zcx with
+ 	ECF_XTHROW.
+ 	(build_raise_check): Likewise for all rcheck subprograms.
+ 
+ 2023-10-19  Yannick Moy  <moy@adacore.com>
+ 
+ 	* aspects.ads: Add aspect Side_Effects.
+ 	* contracts.adb (Add_Pre_Post_Condition)
+ 	(Inherit_Subprogram_Contract): Add support for new contract.
+ 	* contracts.ads: Update comments.
+ 	* einfo-utils.adb (Get_Pragma): Add support.
+ 	* einfo-utils.ads (Prag): Update comment.
+ 	* errout.ads: Add explain codes.
+ 	* par-prag.adb (Prag): Add support.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications)
+ 	(Check_Aspect_At_Freeze_Point): Add support.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper)
+ 	(Analyze_Subprogram_Declaration): Call new analysis procedure to
+ 	check SPARK legality rules.
+ 	(Analyze_SPARK_Subprogram_Specification): New procedure to check
+ 	SPARK legality rules. Use an explain code for the error.
+ 	(Analyze_Subprogram_Specification): Move checks to new subprogram.
+ 	This code was effectively dead, as the kind for parameters was set
+ 	to E_Void at this point to detect early references.
+ 	* sem_ch6.ads (Analyze_Subprogram_Specification): Add new
+ 	procedure.
+ 	* sem_prag.adb (Analyze_Depends_In_Decl_Part)
+ 	(Analyze_Global_In_Decl_Part): Adapt legality check to apply only
+ 	to functions without side-effects.
+ 	(Analyze_If_Present): Extract functionality in new procedure
+ 	Analyze_If_Present_Internal.
+ 	(Analyze_If_Present_Internal): New procedure to analyze given
+ 	pragma kind.
+ 	(Analyze_Pragmas_If_Present): New procedure to analyze given
+ 	pragma kind associated with a declaration.
+ 	(Analyze_Pragma): Adapt support for Always_Terminates and
+ 	Exceptional_Cases. Add support for Side_Effects. Make sure to call
+ 	Analyze_If_Present to ensure pragma Side_Effects is analyzed prior
+ 	to analyzing pragmas Global and Depends. Use explain codes for the
+ 	errors.
+ 	* sem_prag.ads (Analyze_Pragmas_If_Present): Add new procedure.
+ 	* sem_util.adb (Is_Function_With_Side_Effects): New query function
+ 	to determine if a function is a function with side-effects.
+ 	* sem_util.ads (Is_Function_With_Side_Effects): Same.
+ 	* snames.ads-tmpl: Declare new names for pragma and aspect.
+ 	* doc/gnat_rm/implementation_defined_aspects.rst: Document new aspect.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Document new pragma.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2023-10-19  Sheri Bernstein  <bernstein@adacore.com>
+ 
+ 	* libgnat/s-imagef.adb (Set_Image_Fixed): Refactor loop.
+ 
+ 2023-10-19  Sheri Bernstein  <bernstein@adacore.com>
+ 
+ 	* libgnat/s-imguti.adb (Set_Decimal_Digits): Add pragma to exempt
+ 	Unassigned_OUT_Parameters.
+ 	(Set_Floating_Invalid_Value): Likewise
+ 
+ 2023-10-19  Patrick Bernardi  <bernardi@adacore.com>
+ 
+ 	* bindusg.adb (Display): Make it clear -Q adds to the number of
+ 	secondary stacks generated by the binder.
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ 	Document the -Q gnatbind switch and fix references to old
+ 	runtimes.
+ 	* gnat-style.texi: Regenerate.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-10-19  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Constrain_Array): Replace manual list length
+ 	computation by call to List_Length.
+ 
+ 2023-10-19  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Simplify with "No".
+ 
+ 2023-10-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (inline_status_for_subprog): Minor tweak.
+ 	(gnat_to_gnu_field): Try harder to get a packable form of the type
+ 	for a bitfield.
+ 
+ 2023-10-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/a-direct.adb (Start_Search_Internal): Tweak subprogram
+ 	body.
+ 
+ 2023-10-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.ads (Set_Scope_Is_Transient): Delete.
+ 	* sem_util.adb (Set_Scope_Is_Transient): Likewise.
+ 	* exp_ch7.adb (Create_Transient_Scope): Set Is_Transient directly.
+ 
+ 2023-10-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Return true
+ 	if the aggregate is a dependent expression of a conditional
+ 	expression being returned from a build-in-place function.
+ 
+ 2023-10-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/111434
+ 	* sem_ch10.adb (Replace): New procedure to replace an entity with
+ 	another on the homonym chain.
+ 	(Install_Limited_With_Clause): Rename Non_Lim_View to Typ for the
+ 	sake of consistency.  Call Replace to do the replacements and split
+ 	the code into the regular and the special cases.  Add debuggging
+ 	output controlled by -gnatdi.
+ 	(Install_With_Clause): Print the Parent_With and Implicit_With flags
+ 	in the debugging output controlled by -gnatdi.
+ 	(Remove_Limited_With_Unit.Restore_Chain_For_Shadow (Shadow)): Rewrite
+ 	using a direct replacement of E4 by E2.   Call Replace to do the
+ 	replacements.  Add debuggging output controlled by -gnatdi.
+ 
+ 2023-10-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/a-direct.adb: Fix filesystem entry filtering.
+ 
+ 2023-10-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.ads, nlists.ads, types.ads: Remove references to extended
+ 	nodes. Fix typo.
+ 	* sinfo.ads: Likewise and fix position of
+ 	Comes_From_Check_Or_Contract description.
+ 
+ 2023-10-10  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Protect the frontend against
+ 	replacing 'Size by its static value if 'Size is not known at
+ 	compile time and we are processing pragmas Compile_Time_Warning or
+ 	Compile_Time_Errors.
+ 
+ 2023-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-interface/misc.cc: Use text_info ctor.
+ 
+ 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-interface/misc.cc (gnat_post_options): Update for renaming
+ 	of diagnostic_context's show_caret to m_source_printing.enabled.
+ 
+ 2023-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove call
+ 	to Is_Simple_Protected_Type as redundant.
+ 	(Build_Finalizer.Process_Object_Declaration): Do not retrieve the
+ 	corresponding record type for simple protected objects. Make the
+ 	flow of control more explicit in their specific processing.
+ 	* exp_util.adb (Requires_Cleanup_Actions): Return false for simple
+ 	protected objects present in library-level package bodies for the
+ 	sake of consistency with Build_Finalizer and remove call to
+ 	Is_Simple_Protected_Type as redundant.
+ 
+ 2023-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/110488
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Do not build a default
+ 	subtype for a deferred constant in the definite case too.
+ 
+ 2023-09-26  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_ch7.adb (Contains_Subprogram): Recursively search for subp
+ 	in loop's statements.
+ 	(Unnest_Loop)<Fixup_Inner_Scopes>: New.
+ 	(Unnest_Loop): Rename local variable for more clarity.
+ 	* exp_unst.ads: Refresh comment.
+ 
+ 2023-09-26  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Call_Helper): When computing the
+ 	accessibility level of an actual parameter based on the
+ 	expresssion of a constant declaration, add missing support for
+ 	deferred constants
+ 
+ 2023-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Status_Flag_Or_Transient_Decl): Remove ??? comment.
+ 	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Extend the
+ 	handling of finalizable return objects to the non-BIP case.
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust the
+ 	comment accordingly.
+ 	* exp_util.adb (Requires_Cleanup_Actions): Likewise.
+ 
+ 2023-09-26  Daniel King  <dmking@adacore.com>
+ 
+ 	* raise-gcc.c (get_ip_from_context): Adapt for CHERI purecap
+ 	(get_call_site_action_for): Adapt for CHERI purecap
+ 
+ 2023-09-26  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/a-tags.adb (To_Tag): Use System.Storage_Elements for
+ 	integer to address conversion.
+ 	* libgnat/s-putima.adb (Put_Image_Pointer): Likewise.
+ 
+ 2023-09-26  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/s-stratt__cheri.adb: New file
+ 
+ 2023-09-26  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/i-cheri.ads (Capability_Bound_Error)
+ 	(Capability_Permission_Error, Capability_Sealed_Error)
+ 	(Capability_Tag_Error): New, define CHERI exception types.
+ 
+ 2023-09-26  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_prag.adb: Make minor corrections in comments.
+ 	* rtsfind.ads: Remove unused element from RTU_Id definition.
+ 
+ 2023-09-26  Derek Schacht  <schacht@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst: Add more details on
+ 	using Generic Elementary Functions with dimensional analysis.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-09-26  Yannick Moy  <moy@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_N_Case_Statement): Reference both sections
+ 	of the Ada RM that deal with case statements and case expressions
+ 	to justify the insertion of a runtime check.
+ 
+ 2023-09-19  Richard Wai  <richard@annexi-strayline.com>
+ 
+ 	* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Expanded comments
+ 	explaining why TSS Finalize_Address is not generated for
+ 	concurrent class-wide types.
+ 	* exp_ch7.adb (Make_Finalize_Address_Stmts): Handle cases where the
+ 	underlying non-constrained parent type is a concurrent type, and
+ 	adjust the designated type to be the corresponding record’s
+ 	class-wide type.
+ 
+ 2023-09-19  Richard Wai  <richard@annexi-strayline.com>
+ 
+ 	* sem_ch3.adb (Build_Derived_Record_Type): Treat presence of
+ 	keyword "synchronized" the same as "limited" when determining if a
+ 	private extension is limited.
+ 
+ 2023-09-19  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (max_value): New.
+ 	* gcc-interface/gigi.h (max_value): New.
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>:
+ 	When computing gnu_min/gnu_max, try to use max_value if there is
+ 	an initial expression.
+ 
+ 2023-09-19  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* contracts.adb
+ 	(Has_Public_Visibility_Of_Subprogram): Add missing support for
+ 	child subprograms.
+ 
+ 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (finish_record_type): Round the size in
+ 	the padding case as well.
+ 
+ 2023-09-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Array_Aggr_Code): Don't build aggregate code
+ 	for null array aggregates.
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Don't examine formatting
+ 	of a null array aggregate.
+ 
+ 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* inline.adb (Expand_Inlined_Call): In the case of a function call
+ 	that returns an unconstrained type and initializes an object, set
+ 	the No_Initialization flag on the new declaration of the object.
+ 
+ 2023-09-15  Patrick Bernardi  <bernardi@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_N_Subprogram_Body): Do not perform
+ 	local-exception-to- goto optimization on barrier functions.
+ 	* exp_ch9.adb (Expand_Entry_Barrier): Simplify the if statement
+ 	around the simple barrier optimization and remove an old, no
+ 	longer relevant comment.
+ 
+ 2023-09-15  Patrick Bernardi  <bernardi@adacore.com>
+ 
+ 	* bindgen.adb (Gen_Adainit): Generate restrictions when standard
+ 	library is suppressed.
+ 	(Gen_Output_File_Ada): Ditto.
+ 	(Gen_Restrictions): Ditto.
+ 
+ 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Component_May_Be_Bit_Aligned): Do not return false
+ 	for a small component of a record type with a variant part.
+ 
+ 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_To_Assignments): In the case of a
+ 	component association, call Is_Container_Aggregate on the parent's
+ 	parent.
+ 	(Expand_Array_Aggregate): Likewise.
+ 
+ 2023-09-15  Kévin Le Gouguec  <legouguec@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Remove
+ 	extended discussion regarding mold run-time dependencies;
+ 	packaging changes in GNAT Pro have made them obsolete.
+ 
+ 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Call): When the target is an entity, do not
+ 	freeze it if the current scope is the inner wrapper function built
+ 	for an expression function with a Post or Refined_Post aspect.
+ 
+ 2023-09-15  Bob Duff  <duff@adacore.com>
+ 	    Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.adb (Node_Kind_Table): Specify parameter explicitly in
+ 	GNAT.Table instantiations. Use fully qualified references instead
+ 	of relying on use clauses.
+ 	(Get_Field_Value): Remove special case for F_Scope_Depth_Value.
+ 	That is, enable the Field_Present check in that case.
+ 	(It was already enabled for all other fields.) Violations of this
+ 	check were already fixed.
+ 	(Print_Node_Statistics): Sort the output in decreasing order of
+ 	frequencies.
+ 	(Print_Field_Statistics): Likewise (sort).
+ 	* accessibility.adb (Accessibility_Level): Pass Allow_Alt_Model in
+ 	recursive calls. Apparently, an oversight.
+ 	(Innermost_Master_Scope_Depth): Need to special-case the 'Old
+ 	attribute and allocators.
+ 	* einfo-utils.ads (Scope_Depth): Use Scope_Kind_Id to get
+ 	predicate checks.
+ 	(Scope_Depth_Set): Likewise.
+ 	(Scope_Depth_Default_0): Likewise.
+ 	* einfo-utils.adb: As for spec.
+ 	* frontend.adb (Frontend): Remove unnecessary "return;".
+ 	* gen_il-types.ads (Scope_Kind): New union type.
+ 	* gen_il-gen-gen_entities.adb (Scope_Kind): New union type.
+ 	* sem.ads: Move "with Einfo.Entities;" from body to spec.
+ 	(Scope_Stack_Entry): Declare Entity to be of Scope_Kind_Id to get
+ 	predicate checks. We had previously been putting non-scopes on the
+ 	scope stack; this prevents such anomalies.
+ 	* sem.adb: Move "with Einfo.Entities;" from body to spec.
+ 	* sem_ch8.ads: Move "with Einfo.Entities;" from body to spec. Add
+ 	"with Types;".
+ 	(Push_Scope): Use Scope_Kind_Id to get predicate checks.
+ 	* sem_ch8.adb: Move "with Einfo.Entities;" from body to spec. Add
+ 	"with Types;".
+ 	(Push_Scope): Use Scope_Kind_Id to get predicate checks.
+ 	(Pop_Scope): Use Scope_Kind_Id on popped entity to get predicate
+ 	checks. This prevents anomalies where a scope pushed onto the
+ 	stack is later mutated to a nonscope before being popped.
+ 	* sem_util.ads (Find_Enclosing_Scope): Add postcondition to ensure
+ 	that the enclosing scope of a node N is not the same node N.
+ 	Clearly, N does not enclose itself.
+ 	* sem_util.adb (Find_Enclosing_Scope): There were several bugs
+ 	where Find_Enclosing_Scope(N) = N. For example, if N is an entity,
+ 	then we would typically go up to its declaration, and then back
+ 	down to the Defining_Entity of the declaration, which is N itself.
+ 	There were other cases where Find_Enclosing_Scope of an entity
+ 	disagreed with Scope. Clearly, Find_Enclosing_Scope and Scope
+ 	should agree (when both are defined). Such bugs caused latent bugs
+ 	in accessibility.adb related to 'Old, and fixing bugs here caused
+ 	such bugs to be revealed. These are fixed by calling Scope when N
+ 	is an entity.
+ 
+ 2023-09-15  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* accessibility.ads (Needs_Result_Accessibility_Extra_Formal):
+ 	Removed.
+ 	* accessibility.adb (Needs_Result_Accessibility_Level_Param):
+ 	Removed.
+ 	(Needs_Result_Accessibility_Extra_Formal): Removed.
+ 	(Needs_Result_Accessibility_Level): Revert previous patch.
+ 	* sem_ch6.adb (Parent_Subprogram): Handle function overriding an
+ 	enumeration literal.
+ 	(Create_Extra_Formals): Ensure that the parent subprogram has all
+ 	its extra formals.
+ 
+ 2023-09-14  Yannick Moy  <moy@adacore.com>
+ 
+ 	* exp_util.adb (Is_Statically_Disabled): New function to detect a
+ 	"statically disabled condition which evaluates to a given value",
+ 	as described in SPARK UG 7.3.2.
+ 	(Kill_Dead_Code): Call the new function Is_Statically_Disabled for
+ 	conditions of if statements.
+ 	* exp_util.ads (Is_Statically_Disabled): New function spec.
+ 
+ 2023-09-14  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_util.adb (Process_Record_Component): Adjust assertion on the
+ 	availablity of the invariant procedure; required because the
+ 	invariant procedure is built by the expander, and hence it is not
+ 	available compiling generic units or when the sources have errors,
+ 	since expansion is then disabled.
+ 
+ 2023-09-14  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_util.adb (Large_Max_Size_Mutable): Protect access to
+ 	attribute Is_Array_Type.
+ 
+ 2023-09-14  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Protect
+ 	access to Entity attribute and add missing code to check function
+ 	selector in a prefix form call.
+ 
+ 2023-09-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Also do nothing for the
+ 	expression of a delta aggregate.
+ 
+ 2023-09-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Make the name
+ 	matching more robust.
+ 
+ 2023-09-14  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch6.adb (Parent_Subprogram): Complete assertion.
+ 
+ 2023-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on
+ 	the simple return statement.
+ 
+ 2023-09-05  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Set bit-packed for
+ 	constrained and unconstrained array types.
+ 	* gcc-interface/misc.cc (gnat_get_array_descr_info): Examine
+ 	BIT_PACKED_ARRAY_TYPE_P.
+ 
+ 2023-09-05  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_type.adb (Interface_Present_In_Ancestor): Remove guard against no
+ 	list of interfaces; fix style in comments (trailing dots).
+ 
+ 2023-09-05  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_type.adb (Iface_Present_In_Ancestor): Only look at the list of
+ 	interfaces for types that allow it. The guard is a high-level equivalent
+ 	of the entity kinds listed in the preconditon of the Interfaces query.
+ 
+ 2023-09-05  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_type.adb (Iface_Present_In_Ancestor): Remove guard for empty list
+ 	of interfaces; the following loop will work just fine without it.
+ 
+ 2023-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch9.adb (Build_Protected_Entry): Move the At_End procedure
+ 	from the entry body to the inner block statement.
+ 
+ 2023-09-05  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch4.adb (Find_Component_In_Instance): Check that
+ 	Declaration_Node (Par) is not Empty, as it is for itypes.
+ 
+ 2023-09-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch7.adb (Analyze_Package_Declaration): Restrict calls to
+ 	`Sem_Warn.Check_References` and adjust comment accordingly.
+ 
+ 2023-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Enumeration_Type): Give an error on a type with
+ 	both representation clause and too large size.
+ 
+ 2023-09-05  Liaiss Merzougue  <merzougue@adacore.com>
+ 
+ 	* libgnat/s-imguti.adb: Remove comment.
+ 
+ 2023-09-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* accessibility.ads (Needs_Result_Accessibility_Extra_Formal): New
+ 	subprogram.
+ 	* accessibility.adb (Needs_Result_Accessibility_Level_Param): New
+ 	subprogram.
+ 	(Needs_Result_Accessibility_Extra_Formal): New subprogram,
+ 	temporarily keep the previous behavior of the frontend.
+ 	* sem_ch6.adb (Create_Extra_Formals): Replace occurrences of
+ 	function Needs_Result_Accessibility_Level_Param by calls to
+ 	function Needs_Result_Accessibility_Extra_Formal.
+ 	(Extra_Formals_OK): Ditto.
+ 
+ 2023-09-05  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* libgnat/system-vxworks-ppc-rtp-smp.ads: Add -msmp to
+ 	Linker_Options pragma.
+ 
+ 2023-09-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Report warning on
+ 	infinite recursion if an empty container aggregate appears in the
+ 	return statement of its Empty function. Fix typo in comment.
+ 	* sem_aggr.adb (Resolve_Aggregate): Resolve Ada 2022 empty
+ 	aggregate that initializes a record type that has defined its
+ 	container aggregate aspects.
+ 	(Resolve_Iterated_Association): Protect access to attribute Etype.
+ 	* sem_ch13.adb (Resolve_Aspect_Aggregate): Fix typo in comment.
+ 
+ 2023-09-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_attr.adb (Denote_Same_Function): Handle the case where
+ 	Has_Homonym (Pref_Id) returns True but Homonym (Pref_Id) returns
+ 	an empty result.
+ 
+ 2023-09-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Unary_Op): In deciding whether to emit a
+ 	warning about a modular type's unary minus operator being applied
+ 	to an integer literal, ignore integer literals for which
+ 	Comes_From_Source is False.
+ 
+ 2023-09-05  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnarl/s-taprop__qnx.adb: Implement Set_Task_Affinity.
+ 
+ 2023-09-05  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
+ 	index.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-09-05  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/s-carsi8.adb: Use operations from
+ 	System.Storage_Elements for address arithmetic.
+ 	* libgnat/s-carun8.adb: Likewise
+ 	* libgnat/s-casi128.adb: Likewise
+ 	* libgnat/s-casi16.adb: Likewise
+ 	* libgnat/s-casi32.adb: Likewise
+ 	* libgnat/s-casi64.adb: Likewise
+ 	* libgnat/s-caun128.adb: Likewise
+ 	* libgnat/s-caun16.adb: Likewise
+ 	* libgnat/s-caun32.adb: Likewise
+ 	* libgnat/s-caun64.adb: Likewise
+ 	* libgnat/s-geveop.adb: Likewise
+ 
+ 2023-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Component_Type_For_Private_View): New function.
+ 	(Check_Generic_Actuals): For an actual type parameter, also check
+ 	its component type if it is an array type.
+ 	(Check_Private_View): Use Component_Type_For_Private_View in the
+ 	case of an array type.
+ 	(Instantiate_Type): Likewise.
+ 	(Save_Global_References.Set_Global_Type): Likewise.
+ 
+ 2023-09-05  Sheri Bernstein  <bernstein@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb: Add pragma to exempt Metrics_LSLOC.
+ 	(Double_Divide): Add pragma to exempt
+ 	Metrics_Cyclomatic_Complexity.
+ 	(Scaled_Divide): Likewise.
+ 	* libgnat/s-vauspe.ads (Uns_Option): Add pragma to exempt
+ 	Discriminated_Records.
+ 
+ 2023-09-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* Makefile.rtl: Add missing units.
+ 
+ 2023-09-05  Sheri Bernstein  <bernstein@adacore.com>
+ 
+ 	* libgnarl/a-reatim.adb (Time_Of): Add pragma to exempt
+ 	Discriminated_Records.
+ 	* libgnat/s-imguti.adb (Round, Set_Decimal_Digits): Likewise.
+ 	* libgnat/s-multip.adb (Number_Of_CPUs): Likewise.
+ 	* libgnarl/s-tpopsp__posix-foreign.adb (Self): Refactor multiple
+ 	returns.
+ 
+ 2023-09-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch3.adb (Add_Internal_Interface_Entities): Add missing
+ 	subtype-conformance check on primitives implementing interface
+ 	primitives.
+ 	(Error_Posted_In_Formals): New subprogram.
+ 
+ 2023-09-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-tassta.adb: Tweak comment.
+ 
+ 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* Makefile.rtl: Add LoongArch support.
+ 	* libgnarl/s-linux__loongarch.ads: New file.
+ 	* libgnat/system-linux-loongarch.ads: New file.
+ 
+ 2023-08-07  Sheri Bernstein  <bernstein@adacore.com>
+ 
+ 	* libgnat/s-parame__qnx.adb: Refactor multiple returns.
+ 
+ 2023-08-07  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/i-cstrin.ads (Value): Extend preconditions; adapt comment for
+ 	the package.
+ 
+ 2023-08-07  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Call): Always call Cannot_Inline so that
+ 	subprogram called is marked as not always inlined.
+ 
+ 2023-08-07  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Type_Conversion): Do not warn on conversion
+ 	to class-wide type on internally build helpers of class-wide
+ 	preconditions.
+ 
+ 2023-08-03  Sheri Bernstein  <bernstein@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb: Add pragma to exempt Improper_Returns.
+ 	* libgnat/s-atopri.adb (Lock_Free_Try_Write): Likewise.
+ 	* libgnat/s-bitops.adb (Bit_Eq): Likewise.
+ 	* libgnat/s-carsi8.adb: Likewise.
+ 	* libgnat/s-carun8.adb: Likewise.
+ 	* libgnat/s-casi16.adb: Likewise.
+ 	* libgnat/s-casi32.adb: Likewise.
+ 	* libgnat/s-casi64.adb: Likewise.
+ 	* libgnat/s-caun16.adb: Likewise.
+ 	* libgnat/s-caun32.adb: Likewise.
+ 	* libgnat/s-caun64.adb: Likewise.
+ 	* libgnat/s-exponn.adb: Likewise.
+ 	* libgnat/s-expont.adb: Likewise.
+ 	* libgnat/s-valspe.adb: Likewise.
+ 	* libgnat/s-vauspe.adb: Likewise.
+ 
+ 2023-08-03  Vasiliy Fofanov  <fofanov@adacore.com>
+ 
+ 	* libgnat/s-imageb.adb (Set_Image_Based_Unsigned): Rewritten.
+ 	* libgnat/s-imagew.adb (Set_Image_Width_Unsigned): Likewise.
+ 
+ 2023-08-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Make_Invariant_Call): Convert the expression to
+ 	the type of the formal parameter if need be.
+ 
+ 2023-08-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-dwalin.adb ("-"): New subtraction operator.
+ 	(Enable_Cache): Use it to compute the offset.
+ 	(Symbolic_Address): Likewise.
+ 
+ 2023-08-01  Yannick Moy  <moy@adacore.com>
+ 
+ 	* repinfo.adb (Compute_Max_Length): Set parameter to print number
+ 	in decimal notation.
+ 	(List_Component_Layout): Same.
+ 
+ 2023-08-01  Yannick Moy  <moy@adacore.com>
+ 
+ 	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check for
+ 	Skip_Proof and Skip_Flow_And_Proof annotations for deciding
+ 	whether a subprogram can be inlined.
+ 
+ 2023-08-01  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch3.adb (Constrain_Corresponding_Record): When copying
+ 	information from the unconstrained record type to a newly
+ 	constructed constrained record subtype, the
+ 	Direct_Primitive_Operations attribute must be copied.
+ 
+ 2023-08-01  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Component_Declaration): Remove
+ 	Build_Default_Subtype_OK call and code that could only executed in
+ 	the case where the removed call would have returned True. Other
+ 	calls to Build_Default_Subtype_Ok are unaffected by this change.
+ 
+ 2023-08-01  Pascal Obry  <obry@adacore.com>
+ 
+ 	* aspects.ads (Find_Aspect): Add Boolean parameter Or_Rep_Item
+ 	(defaulted to False).
+ 	* aspects.adb (Find_Aspect): If new Boolean parameter Or_Rep_Item
+ 	is True, then instead of returning an empty result if no
+ 	appropriate N_Aspect_Specification node is found, return an
+ 	appropriate N_Attribute_Definition_Clause if one is found.
+ 	* exp_put_image.ads: Change name of Enable_Put_Image function to
+ 	Put_Image_Enabled.
+ 	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Detect the
+ 	case where a call to the Put_Image procedure of a derived type can
+ 	be transformed into a call to the parent type's Put_Image
+ 	procedure (with a type conversion to the parent type as the actual
+ 	parameter).
+ 	(Put_Image_Enabled): Change name of function (previously
+ 	Enable_Put_Image). Return True in more cases. In particular,
+ 	return True for a type with an explicitly specified Put_Image
+ 	aspect even if the type is declared in a predefined unit (or in an
+ 	instance of a predefined generic unit).
+ 	* exp_attr.adb: Changes due to Put_Image_Enabled function name
+ 	change.
+ 
+ 2023-08-01  Yannick Moy  <moy@adacore.com>
+ 
+ 	* repinfo.adb (List_Common_Type_Info): Fix output when alignment
+ 	is not statically known, and fix assertion when expansion is not
+ 	enabled.
+ 
+ 2023-08-01  Bob Duff  <duff@adacore.com>
+ 
+ 	* atree.adb (Field_Present): New function to detect whether or not
+ 	a given field is present in a given node, based on either the node
+ 	kind or the entity kind as appropriate.
+ 	(Get_Field_Value): Check that the field begin fetched exists.
+ 	However, disable the check in the case of Scope_Depth_Value,
+ 	because we have failures in that case. Those failures need to be
+ 	fixed, and then the check can be enabled for all fields.
+ 	(Set_Field_Value): Check that the field begin set exists.
+ 
+ 2023-08-01  Léo Creuse  <creuse@adacore.com>
+ 
+ 	* par_sco.adb (Process_Decisions): Traverse all attributes of
+ 	quantified expressions nodes.
+ 
+ 2023-07-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu): Restrict previous change to
+ 	the case where the simple return statement has got no storage pool.
+ 
+ 2023-07-28  Clément Chigot  <chigot@adacore.com>
+ 
+ 	* libgnarl/s-inmaop__posix.adb: Add assert after sigwait in
+ 	Interrupt_Wait
+ 
+ 2023-07-28  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* einfo-utils.adb (Underlying_Type): Protect recursion call
+ 	against non-available attribute Etype.
+ 	* einfo.ads (Protected_Subprogram): Fix typo in documentation.
+ 	* exp_ch3.adb (BIP_Function_Call_Id): New subprogram.
+ 	(Expand_N_Object_Declaration): Improve code that evaluates if the
+ 	object is initialized with a BIP function call.
+ 	* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): New
+ 	subprogram.
+ 	(Add_Task_Actuals_To_Build_In_Place_Call): Add dummy actuals if
+ 	the function does not require the BIP task actuals but it is a
+ 	dispatching operation that inherited them.
+ 	(Build_In_Place_Formal): Improve code to avoid never-ending loop
+ 	if the BIP formal is not found.
+ 	(Add_Dummy_Build_In_Place_Actuals): New subprogram.
+ 	(Expand_Call_Helper): Add calls to
+ 	Add_Dummy_Build_In_Place_Actuals.
+ 	(Expand_N_Extended_Return_Statement): Adjust assertion.
+ 	(Expand_Simple_Function_Return): Adjust assertion.
+ 	(Make_Build_In_Place_Call_In_Allocator): No action needed if the
+ 	called function inherited the BIP extra formals but it is not a
+ 	true BIP function.
+ 	(Make_Build_In_Place_Call_In_Assignment): Ditto.
+ 	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove code
+ 	reporting unsupported case (since this patch adds support for it).
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adding assertion
+ 	to ensure matching of BIP formals when setting the
+ 	Protected_Formal field of a protected subprogram to reference the
+ 	corresponding extra formal of the subprogram that implements it.
+ 	(Might_Need_BIP_Task_Actuals): New subprogram.
+ 	(Create_Extra_Formals): Improve code adding inherited extra
+ 	formals.
+ 
+ 2023-07-28  Pascal Obry  <obry@adacore.com>
+ 
+ 	* s-oscons-tmplt.c: Add support for SO_BINDTODEVICE constant.
+ 	* libgnat/g-socket.ads (Set_Socket_Option): Handle SO_BINDTODEVICE option.
+ 	(Get_Socket_Option): Handle SO_BINDTODEVICE option.
+ 	* libgnat/g-socket.adb: Likewise.
+ 	(Get_Socket_Option): Handle the case where IF_NAMESIZE is not defined
+ 	and so equal to -1.
+ 
+ 2023-07-28  Léo Creuse  <creuse@adacore.com>
+ 
+ 	* par_sco.adb (Has_Decision): Consider that quantified expressions
+ 	contain decisions.
+ 
+ 2023-07-28  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-tposen.adb: Fix race condition. Add comment to justify
+ 	the locking timing.
+ 
+ 2023-07-28  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_util.adb (Find_Optional_Prim_Op): use "No" instead of "= Empty"
+ 
+ 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Actuals): Add guard for the call to
+ 	Class_Preconditions_Subprogram.
+ 
+ 2023-07-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Is_Two_Dim_Packed_Array): Return true only if the
+ 	component type of the array is scalar.
+ 
+ 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch6.adb (Check_Statement_Sequence): Only warn about missing return
+ 	statements and let GNATprove emit a check when needed.
+ 
+ 2023-07-28  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* fe.h (Convention): Now inline function.
+ 	* gen_il-gen.adb (Put_C_Type_And_Subtypes.Put_Enum_Lit)
+ 	(Put_C_Type_And_Subtypes.Put_Kind_Subtype, Put_C_Getter):
+ 	Emit enum.
+ 	* snames.h-tmpl (Name_Id, Name_, Attribute_Id, Attribute_)
+ 	(Convention_Id, Convention_, Pragma_Id, Pragma_): Now enum.
+ 	(Get_Attribute_Id, Get_Pragma_Id): Now inline functions.
+ 	* types.h (Node_Kind, Entity_Kind, Convention_Id, Name_Id):
+ 	Now enum.
+ 	* xsnamest.adb (Output_Header_Line, Make_Value): Emit enum.
+ 
+ 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/a-except.ads (Save_Occurrence): Fix typo.
+ 
+ 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* einfo-utils.adb (Number_Formals): Change types in body.
+ 	* einfo-utils.ads (Number_Formals): Change type in spec.
+ 	* einfo.ads (Number_Formals): Change type in comment.
+ 	* sem_ch13.adb (Is_Property_Function): Fix style in a caller of
+ 	Number_Formals that was likely to crash because of missing guards.
+ 
+ 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_warn.adb (Check_Infinite_Loop_Warning): Don't look at the type of
+ 	actual parameter when it has no type at all, e.g. because the entire
+ 	subprogram call is illegal.
+ 
+ 2023-07-18  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (check_ok_for_atomic_type): Use Pragma_Id.
+ 	* gcc-interface/trans.cc (lvalue_required_p, Pragma_to_gnu): Use
+ 	Pragma_Id.
+ 	(get_type_length, Attribute_to_gnu, get_atomic_access): Use
+ 	Attribute_Id.
+ 
+ 2023-07-18  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_imgv.adb (Rewrite_Object_Image): fix type of formal. Found
+ 	reading sources.
+ 	(Expand_Wide_Image_Attribute): ditto.
+ 	(Expand_Wide_Wide_Image_Attribute): ditto.
+ 	(Rewrite_Object_Image): ditto.
+ 	* exp_put_image.adb (Build_Image_Call): For class-wide interface
+ 	type prefix generate code to displace the pointer to the object to
+ 	reference the base of the underlying object.
+ 
+ 2023-07-18  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Association): Add temporary scope
+ 	when analyzing the Iterator Specification. Use preanalysis instead
+ 	of Analysis to avoid polluting the tree.
+ 
+ 2023-07-18  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Association): Use the element
+ 	type for the iterator in a container aggregate with an iterator
+ 	specification.
+ 
+ 2023-07-18  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Use the positional
+ 	addition method only when dealing with a container aggregate
+ 	without an Iterator Specification e.g. with a loop parameter
+ 	specification
+ 
+ 2023-07-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.ads (Wrong_Type): Add Multiple parameter defaulting to
+ 	False and document it.
+ 	* sem_util.adb (Wrong_Type): Do not return early if an error has
+ 	already been posted on Expr and Multiple is True.
+ 	* sem_ch4.adb (Analyze_One_Call): Pass All_Errors_Mode as the
+ 	actual parameter for Multiple to Wrong_Type.
+ 
+ 2023-07-18  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_disp.adb (Has_Dispatching_Constructor_Call): Removed.
+ 	(Expand_Interface_Conversion): Reverse patch.
+ 
+ 2023-07-18  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-taprop__linux.adb (Set_Task_Affinity, Create_Task): Tweak
+ 	handling of CPU affinities.
+ 
+ 2023-07-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_type.ads (Is_Ancestor): Remove mention of tagged type.
+ 	* exp_aggr.adb: Add with and use clauses for Sem_Type.
+ 	(Build_Record_Aggr_Code.Replace_Type): Call Is_Ancestor to spot
+ 	self-references to the type of the aggregate.
+ 	* sem_aggr.adb (Resolve_Record_Aggregate.Add_Discriminant_Values):
+ 	Likewise.
+ 
+ 2023-07-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
+ 	In the case of private discriminated types, explicitly check that we
+ 	have a private declaration before examining its discriminant part.
+ 
+ 2023-07-18  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* libgnat/a-except.ads (Raise_Exception): Mark expected_throw.
+ 	(Reraise_Occurrence): Likewise.
+ 	(Raise_Exception_Always): Likewise.
+ 	(Raise_From_Controlled_Operation): Likewise.
+ 	(Reraise_Occurrence_Always): Likewise.
+ 	(Reraise_Occurrence_No_Defer): Likewise.
+ 	* libgnat/a-except.adb
+ 	(Exception_Propagation.Propagate_Exception): Likewise.
+ 	(Complete_And_Propagate_Occurrence): Likewise.
+ 	(Raise_Exception_No_Defer): Likewise.
+ 	(Raise_From_Signal_Handler): Likewise.
+ 	(Raise_With_Msg): Likewise.
+ 	(Raise_With_Location_And_Msg): Likewise.
+ 	(Raise_Constraint_Error): Likewise.
+ 	(Raise_Constraint_Error_Msg): Likewise.
+ 	(Raise_Program_Error): Likewise.
+ 	(Raise_Program_Error_Msg): Likewise.
+ 	(Raise_Storage_Error): Likewise.
+ 	(Raise_Storage_Error_Msg): Likewise.
+ 	(Reraise, Rcheck_*): Likewise.
+ 	* doc/gnat_rm/security_hardening_features.rst (Control Flow
+ 	Hardening): Note the influence of expected_throw.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 	* gcc-interface/utils.cc (handle_expected_throw_attribute): New.
+ 	(gnat_internal_attribute_table): Add expected_throw.
+ 
+ 2023-07-18  Vasiliy Fofanov  <fofanov@adacore.com>
+ 
+ 	* libgnat/s-pack03.adb: Update copyright year; refactor return statements.
+ 	* libgnat/s-pack05.adb: Likewise.
+ 	* libgnat/s-pack06.adb: Likewise.
+ 	* libgnat/s-pack07.adb: Likewise.
+ 	* libgnat/s-pack09.adb: Likewise.
+ 	* libgnat/s-pack10.adb: Likewise.
+ 	* libgnat/s-pack100.adb: Likewise.
+ 	* libgnat/s-pack101.adb: Likewise.
+ 	* libgnat/s-pack102.adb: Likewise.
+ 	* libgnat/s-pack103.adb: Likewise.
+ 	* libgnat/s-pack104.adb: Likewise.
+ 	* libgnat/s-pack105.adb: Likewise.
+ 	* libgnat/s-pack106.adb: Likewise.
+ 	* libgnat/s-pack107.adb: Likewise.
+ 	* libgnat/s-pack108.adb: Likewise.
+ 	* libgnat/s-pack109.adb: Likewise.
+ 	* libgnat/s-pack11.adb: Likewise.
+ 	* libgnat/s-pack110.adb: Likewise.
+ 	* libgnat/s-pack111.adb: Likewise.
+ 	* libgnat/s-pack112.adb: Likewise.
+ 	* libgnat/s-pack113.adb: Likewise.
+ 	* libgnat/s-pack114.adb: Likewise.
+ 	* libgnat/s-pack115.adb: Likewise.
+ 	* libgnat/s-pack116.adb: Likewise.
+ 	* libgnat/s-pack117.adb: Likewise.
+ 	* libgnat/s-pack118.adb: Likewise.
+ 	* libgnat/s-pack119.adb: Likewise.
+ 	* libgnat/s-pack12.adb: Likewise.
+ 	* libgnat/s-pack120.adb: Likewise.
+ 	* libgnat/s-pack121.adb: Likewise.
+ 	* libgnat/s-pack122.adb: Likewise.
+ 	* libgnat/s-pack123.adb: Likewise.
+ 	* libgnat/s-pack124.adb: Likewise.
+ 	* libgnat/s-pack125.adb: Likewise.
+ 	* libgnat/s-pack126.adb: Likewise.
+ 	* libgnat/s-pack127.adb: Likewise.
+ 	* libgnat/s-pack13.adb: Likewise.
+ 	* libgnat/s-pack14.adb: Likewise.
+ 	* libgnat/s-pack15.adb: Likewise.
+ 	* libgnat/s-pack17.adb: Likewise.
+ 	* libgnat/s-pack18.adb: Likewise.
+ 	* libgnat/s-pack19.adb: Likewise.
+ 	* libgnat/s-pack20.adb: Likewise.
+ 	* libgnat/s-pack21.adb: Likewise.
+ 	* libgnat/s-pack22.adb: Likewise.
+ 	* libgnat/s-pack23.adb: Likewise.
+ 	* libgnat/s-pack24.adb: Likewise.
+ 	* libgnat/s-pack25.adb: Likewise.
+ 	* libgnat/s-pack26.adb: Likewise.
+ 	* libgnat/s-pack27.adb: Likewise.
+ 	* libgnat/s-pack28.adb: Likewise.
+ 	* libgnat/s-pack29.adb: Likewise.
+ 	* libgnat/s-pack30.adb: Likewise.
+ 	* libgnat/s-pack31.adb: Likewise.
+ 	* libgnat/s-pack33.adb: Likewise.
+ 	* libgnat/s-pack34.adb: Likewise.
+ 	* libgnat/s-pack35.adb: Likewise.
+ 	* libgnat/s-pack36.adb: Likewise.
+ 	* libgnat/s-pack37.adb: Likewise.
+ 	* libgnat/s-pack38.adb: Likewise.
+ 	* libgnat/s-pack39.adb: Likewise.
+ 	* libgnat/s-pack40.adb: Likewise.
+ 	* libgnat/s-pack41.adb: Likewise.
+ 	* libgnat/s-pack42.adb: Likewise.
+ 	* libgnat/s-pack43.adb: Likewise.
+ 	* libgnat/s-pack44.adb: Likewise.
+ 	* libgnat/s-pack45.adb: Likewise.
+ 	* libgnat/s-pack46.adb: Likewise.
+ 	* libgnat/s-pack47.adb: Likewise.
+ 	* libgnat/s-pack48.adb: Likewise.
+ 	* libgnat/s-pack49.adb: Likewise.
+ 	* libgnat/s-pack50.adb: Likewise.
+ 	* libgnat/s-pack51.adb: Likewise.
+ 	* libgnat/s-pack52.adb: Likewise.
+ 	* libgnat/s-pack53.adb: Likewise.
+ 	* libgnat/s-pack54.adb: Likewise.
+ 	* libgnat/s-pack55.adb: Likewise.
+ 	* libgnat/s-pack56.adb: Likewise.
+ 	* libgnat/s-pack57.adb: Likewise.
+ 	* libgnat/s-pack58.adb: Likewise.
+ 	* libgnat/s-pack59.adb: Likewise.
+ 	* libgnat/s-pack60.adb: Likewise.
+ 	* libgnat/s-pack61.adb: Likewise.
+ 	* libgnat/s-pack62.adb: Likewise.
+ 	* libgnat/s-pack63.adb: Likewise.
+ 	* libgnat/s-pack65.adb: Likewise.
+ 	* libgnat/s-pack66.adb: Likewise.
+ 	* libgnat/s-pack67.adb: Likewise.
+ 	* libgnat/s-pack68.adb: Likewise.
+ 	* libgnat/s-pack69.adb: Likewise.
+ 	* libgnat/s-pack70.adb: Likewise.
+ 	* libgnat/s-pack71.adb: Likewise.
+ 	* libgnat/s-pack72.adb: Likewise.
+ 	* libgnat/s-pack73.adb: Likewise.
+ 	* libgnat/s-pack74.adb: Likewise.
+ 	* libgnat/s-pack75.adb: Likewise.
+ 	* libgnat/s-pack76.adb: Likewise.
+ 	* libgnat/s-pack77.adb: Likewise.
+ 	* libgnat/s-pack78.adb: Likewise.
+ 	* libgnat/s-pack79.adb: Likewise.
+ 	* libgnat/s-pack80.adb: Likewise.
+ 	* libgnat/s-pack81.adb: Likewise.
+ 	* libgnat/s-pack82.adb: Likewise.
+ 	* libgnat/s-pack83.adb: Likewise.
+ 	* libgnat/s-pack84.adb: Likewise.
+ 	* libgnat/s-pack85.adb: Likewise.
+ 	* libgnat/s-pack86.adb: Likewise.
+ 	* libgnat/s-pack87.adb: Likewise.
+ 	* libgnat/s-pack88.adb: Likewise.
+ 	* libgnat/s-pack89.adb: Likewise.
+ 	* libgnat/s-pack90.adb: Likewise.
+ 	* libgnat/s-pack91.adb: Likewise.
+ 	* libgnat/s-pack92.adb: Likewise.
+ 	* libgnat/s-pack93.adb: Likewise.
+ 	* libgnat/s-pack94.adb: Likewise.
+ 	* libgnat/s-pack95.adb: Likewise.
+ 	* libgnat/s-pack96.adb: Likewise.
+ 	* libgnat/s-pack97.adb: Likewise.
+ 	* libgnat/s-pack98.adb: Likewise.
+ 	* libgnat/s-pack99.adb: Likewise.
+ 
+ 2023-07-18  Yannick Moy  <moy@adacore.com>
+ 
+ 	* errout.adb (Error_Msg_Internal): Remove call to
+ 	Prescan_Message on the special continuation for the explain code
+ 	command, as this does not play well with the setting of global
+ 	variables for the message (like its status as a warning or not).
+ 	Instead, set directly the global variables regarding content of
+ 	the message in terms of special characters.
+ 
+ 2023-07-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.ads (Validated_View): Document enhanced behavior.
+ 	* sem_util.adb (Validated_View): Return the nonlimited view, if any,
+ 	of types coming from a limited with.
+ 
+ 2023-07-11  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Avoid transforming to
+ 	a renaming in case of constrained array that comes from source.
+ 
+ 2023-07-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
+ 	In the case of private discriminated types, return a discriminant
+ 	only if it is listed in the discriminant part of the declaration.
+ 
+ 2023-07-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* adaint.c [_WIN32]: Undefine 'abort' macro.
+ 
+ 2023-07-10  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* snames.h-tmpl (Name_Id, Attribute_Id, Convention_Id)
+ 	(Pragma_Id): New typedefs.
+ 	(Get_Attribute_Id, Get_Pragma_Id): Use typedef.
+ 
+ 2023-07-10  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb (Lemma_Powers_Of_2_Commutation): Rewrite
+ 	assertion.
+ 
+ 2023-07-10  Bob Duff  <duff@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst
+ 	(Local Declarations Without Block): Document the feature very
+ 	briefly, and refer the reader to the RFC for details and examples.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-07-10  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/gnat_rm/security_hardening_features.rst (Control Flow
+ 	Hardening): Document -fhardcfr-skip-leaf.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2023-07-10  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/gnat_rm/security_hardening_features.rst (Control Flow
+ 	Redundancy): Add -fhardcfr-check-noreturn-calls=no-xthrow.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2023-07-10  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb (Lemma_Div_Mult): New simple lemma.
+ 	(Lemma_Powers_Of_2_Commutation): State post in else branch.
+ 	(Lemma_Div_Pow2): Introduce local lemma and use it.
+ 	(Scaled_Divide): Use cut operations in assertions, lemmas, new
+ 	assertions. Introduce local lemma and use it.
+ 
+ 2023-07-10  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* doc/gnat_rm/security_hardening_features.rst (Register
+ 	Scrubbing): Document leafy mode.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2023-07-06  Claire Dross  <dross@adacore.com>
+ 
+ 	* gcc-interface/Make-lang.in: Add object files of specification
+ 	files.
+ 
+ 2023-07-06  Claire Dross  <dross@adacore.com>
+ 
+ 	* libgnat/s-vs_int.ads: Instance of Value_I_Spec for Integer.
+ 	* libgnat/s-vs_lli.ads: Instance of Value_I_Spec for
+ 	Long_Long_Integer.
+ 	* libgnat/s-vsllli.ads: Instance of Value_I_Spec for
+ 	Long_Long_Long_Integer.
+ 	* libgnat/s-vs_uns.ads: Instance of Value_U_Spec for Unsigned.
+ 	* libgnat/s-vs_llu.ads: Instance of Value_U_Spec for
+ 	Long_Long_Unsigned.
+ 	* libgnat/s-vslllu.ads: Instance of Value_U_Spec for
+ 	Long_Long_Long_Unsigned.
+ 	* libgnat/s-imagei.ads: Take instances of Value_*_Spec as
+ 	parameters.
+ 	* libgnat/s-imagei.adb: Idem.
+ 	* libgnat/s-imageu.ads: Idem.
+ 	* libgnat/s-imageu.adb: Idem.
+ 	* libgnat/s-valuei.ads: Idem.
+ 	* libgnat/s-valuei.adb: Idem.
+ 	* libgnat/s-valueu.ads: Idem.
+ 	* libgnat/s-valueu.adb: Idem.
+ 	* libgnat/s-imgint.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-imglli.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-imgllli.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-imglllu.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-imgllu.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-imguns.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-valint.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-vallli.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-valllli.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-vallllu.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-valllu.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-valuns.ads: Adapt instance to new ghost parameters.
+ 	* libgnat/s-vaispe.ads: Take instance of Value_U_Spec as parameter
+ 	and remove unused declaration.
+ 	* libgnat/s-vaispe.adb: Idem.
+ 	* libgnat/s-vauspe.ads: Remove unused declaration.
+ 	* libgnat/s-valspe.ads: Factor out the specification part of
+ 	Val_Util.
+ 	* libgnat/s-valspe.adb: Idem.
+ 	* libgnat/s-valuti.ads: Move specification to Val_Spec.
+ 	* libgnat/s-valuti.adb: Idem.
+ 	* libgnat/s-valboo.ads: Use Val_Spec.
+ 	* libgnat/s-valboo.adb: Idem.
+ 	* libgnat/s-imgboo.adb: Idem.
+ 	* libgnat/s-imagef.adb: Adapt instances to new ghost parameters.
+ 	* Makefile.rtl: List new files.
+ 
+ 2023-07-06  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_attr.adb (analyze_attribute.check_array_type): Replace valid
+ 	indexes with their staticly evaluated values.
+ 
+ 2023-07-06  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: Reference "Binding
+ 	with Non-Ada Main Programs" from "Creating a Stand-alone Library
+ 	to be used in a non-Ada context".
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-07-06  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_util.adb (Is_Fully_Initialized_Type): Avoid recalculating
+ 	the underlying type twice.
+ 
+ 2023-07-06  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_util.adb (Find_Optional_Prim_Op): Stop deriving primitive
+ 	operation if there is no underlying type to derive it from.
+ 
+ 2023-07-06  Yannick Moy  <moy@adacore.com>
+ 
+ 	* errout.ads: Add explain code.
+ 	* sem_prag.adb (Check_Library_Level_Entity): Refine error message
+ 	and add explain code.
+ 
+ 2023-07-06  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_ch7.adb (Make_Final_Call): Add assertion that if no
+ 	finalization call is generated, then the type of the object being
+ 	finalized does not require finalization.
+ 	* freeze.adb (Freeze_Entity): If freezing an already-frozen
+ 	subtype, do not assume that nothing needs to be done. In the case
+ 	of a frozen subtype of a non-frozen type or subtype (which is
+ 	possible), freeze the non-frozen entity.
+ 
+ 2023-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_Assign_Array): Adjust comment above the
+ 	calls to Possible_Bit_Aligned_Component on the LHS and RHS. Do not
+ 	call Is_Possibly_Unaligned_Slice in the slice case.
+ 	* exp_util.ads (Component_May_Be_Bit_Aligned): Add For_Slice
+ 	boolean parameter.
+ 	(Possible_Bit_Aligned_Component): Likewise.
+ 	* exp_util.adb (Component_May_Be_Bit_Aligned): Do not return False
+ 	for the slice of a small record or bit-packed array component.
+ 	(Possible_Bit_Aligned_Component): Pass For_Slice in recursive
+ 	calls, except in the slice case where True is passed, as well as
+ 	in call to Component_May_Be_Bit_Aligned.
+ 
+ 2023-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.ads (Expand_Unchecked_Union_Equality): Only take a
+ 	single parameter.
+ 	* exp_ch4.adb (Expand_Unchecked_Union_Equality): Add guard against
+ 	repeated invocation on the same node.
+ 	* exp_ch6.adb (Expand_Call): Only pass a single actual parameter
+ 	in the call to Expand_Unchecked_Union_Equality.
+ 
+ 2023-07-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
+ 	add No_Use_Of_Attribute & No_Use_Of_Pragma restrictions.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-07-04  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_disp.adb (Inherited_Subprograms): Add parameter to filter
+ 	out results.
+ 	* sem_disp.ads: Likewise.
+ 
+ 2023-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.ads (Build_Variant_Record_Equality): Add Spec_Id as second
+ 	parameter.
+ 	* exp_ch3.adb (Build_Variant_Record_Equality): For unchecked union
+ 	types, build the additional parameters as extra formal parameters.
+ 	(Expand_Freeze_Record_Type.Build_Variant_Record_Equality): Pass
+ 	Empty as Spec_Id in call to Build_Variant_Record_Equality.
+ 	* exp_ch4.ads (Expand_Unchecked_Union_Equality): New procedure.
+ 	* exp_ch4.adb (Expand_Composite_Equality): In the presence of a
+ 	function implementing composite equality, do not special case the
+ 	unchecked union types, and only convert the operands if the base
+ 	types are not the same like in Build_Equality_Call.
+ 	(Build_Equality_Call): Do not special case the unchecked union types
+ 	and relocate the operands only once.
+ 	(Expand_N_Op_Eq): Do not special case the unchecked union types.
+ 	(Expand_Unchecked_Union_Equality): New procedure implementing the
+ 	specific expansion of calls to the predefined equality function.
+ 	* exp_ch6.adb (Is_Unchecked_Union_Equality): New predicate.
+ 	(Expand_Call): Call Is_Unchecked_Union_Equality to determine whether
+ 	to call Expand_Unchecked_Union_Equality or Expand_Call_Helper.
+ 	* exp_ch8.adb (Build_Body_For_Renaming): Set Has_Delayed_Freeze flag
+ 	earlier on Id and pass Id in call to Build_Variant_Record_Equality.
+ 
+ 2023-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Untagged_Equality): Rename into...
+ 	(Build_Untagged_Record_Equality): ...this.
+ 	(Expand_Freeze_Record_Type): Adjust to above renaming and invoke
+ 	the procedure also for discriminated types without a variant part.
+ 
+ 2023-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.adb (Has_Inferable_Discriminants): In the case of a
+ 	component with a per-object constraint, also return true if the
+ 	enclosing object is not of an unchecked union type.
+ 	In the default case, remove a useless call to Base_Type.
+ 
+ 2023-06-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gcc-interface/decl.cc (gt_pch_nx): Remove overloads for Entity_Id.
+ 
+ 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/Makefile.in (LIBIBERTY): Fix condition.
+ 	(TOOLS_LIBS): Add @LD_PICFLAG@.
+ 
+ 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Subprogram_Body_to_gnu): Add guard to the
+ 	code turning the type of the RESULT_DECL into a reference type.
+ 	(maybe_make_gnu_thunk): Use a more precise guard in the same case.
+ 
+ 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Case_Statement_to_gnu): Rename boolean
+ 	constant and use From_Conditional_Expression flag for its value.
+ 
+ 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* debug.adb (d.L): Remove documentation.
+ 	* exp_ch4.adb (Expand_N_Case_Expression): In the not-by-copy case,
+ 	do not wrap the case statement in an Expression_With_Actions node.
+ 	(Expand_N_If_Expression): Do not test
+ 	Back_End_Handles_Limited_Types
+ 	* gnat1drv.adb (Adjust_Global_Switches): Do not set it.
+ 	* opt.ads (Back_End_Handles_Limited_Types): Delete.
+ 
+ 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Check_Generic_Actuals): Check the component type
+ 	of constants and variables of an array type.
+ 	(Copy_Generic_Node): Fix bogus handling of iterator
+ 	specifications.
+ 
+ 2023-06-27  Claire Dross  <dross@adacore.com>
+ 
+ 	* libgnat/a-textio.ads (Get_Line): Use Relaxed_Initialization on
+ 	the Item parameter of Get_Line.
+ 
+ 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Quantified_Expression): Revert the latest
+ 	change as it is subsumed by the machinery in Sem_Ch5.
+ 	* sem_ch5.adb (Prepare_Iterator_Loop): Also wrap the loop
+ 	statement in a block in the name contains a function call that
+ 	returns on the secondary stack.
+ 
+ 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Scope_Within_Body_Or_Same): New predicate.
+ 	(Check_Actual_Type): Take into account packages nested in bodies
+ 	to compute the enclosing scope by means of
+ 	Scope_Within_Body_Or_Same.
+ 
+ 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Check_Private_View): Also check the type of
+ 	visible discriminants in record and concurrent types.
+ 
+ 2023-06-27  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sprint.adb (Print_Node_Actual): Print homogeneous N_Aggregate
+ 	nodes with brackets.
+ 
+ 2023-06-27  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_N_Aggregate): Ensure that container
+ 	aggregate expressions do not get expanded as records but instead
+ 	as container aggregates.
+ 
+ 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Pass
+ 	the NULL_TREE explicitly and test imported_p in lieu of
+ 	Is_Imported. <E_Function>: Remove public_flag local variable and
+ 	make extern_flag local variable a constant.
+ 
+ 2023-06-20  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Call): Fix change that replaced test for
+ 	quantified expressions by the test for potentially unevaluated
+ 	contexts. Both should be performed.
+ 
+ 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Convert_View): Detect more cases of mismatches for
+ 	private types and use Implementation_Base_Type as main criterion.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add
+ 	Has_Secondary_Private_View
+ 	* gen_il-gen-gen_nodes.adb (N_Expanded_Name): Likewise.
+ 	(N_Direct_Name): Likewise.
+ 	(N_Op): Likewise.
+ 	* sem_ch12.ads (Check_Private_View): Document the usage of second
+ 	flag Has_Secondary_Private_View.
+ 	* sem_ch12.adb (Get_Associated_Entity): New function to retrieve
+ 	the ultimate associated entity, if any.
+ 	(Check_Private_View): Implement Has_Secondary_Private_View
+ 	support.
+ 	(Copy_Generic_Node): Remove specific treatment for Component_Type
+ 	of an array type and Designated_Type of an access type. Add
+ 	specific treatment for comparison and equality operators, as well
+ 	as iterator and loop parameter specifications.
+ 	(Instantiate_Type): Implement Has_Secondary_Private_View support.
+ 	(Requires_Delayed_Save): Call Get_Associated_Entity.
+ 	(Set_Global_Type): Implement Has_Secondary_Private_View support.
+ 	* sem_ch6.adb (Conforming_Types): Remove bypass for private views
+ 	in instances.
+ 	* sem_type.adb (Covers): Return true if Is_Subtype_Of does so.
+ 	Remove bypass for private views in instances.
+ 	(Specific_Type): Likewise.
+ 	* sem_util.adb (Wrong_Type): Likewise.
+ 	* sinfo.ads (Has_Secondary_Private_View): Document new flag.
+ 
+ 2023-06-20  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-mudido.ads: Remove outdated comment.
+ 
+ 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst (Overflows in GNAT)
+ 	<Default Settings>: Remove obsolete paragraph about -gnato.
+ 	<Implementation Notes>: Replace CHECKED with STRICT.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-06-20  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_util.adb (Check_Result_And_Post_State): Do not warn in cases
+ 	where the warning could be spurious.
+ 
+ 2023-06-20  Yannick Moy  <moy@adacore.com>
+ 
+ 	* err_vars.ads (Error_Msg_Code): New variable for error codes.
+ 	* errout.adb (Error_Msg_Internal): Display continuation message
+ 	when an error code was present.
+ 	(Set_Msg_Text): Handle character sequence [] for error codes.
+ 	* errout.ads: Document new insertion sequence [].
+ 	(Error_Msg_Code): New renaming.
+ 	* erroutc.adb (Prescan_Message): Detect presence of error code.
+ 	(Set_Msg_Insertion_Code): Handle new insertion sequence [].
+ 	* erroutc.ads (Has_Error_Code): New variable for prescan.
+ 	(Set_Msg_Insertion_Code): Handle new insertion sequence [].
+ 	* contracts.adb (Check_Type_Or_Object_External_Properties):
+ 	Replace reference to SPARK RM section by an error code.
+ 	* sem_elab.adb (SPARK_Processor): Same.
+ 	* sem_prag.adb (Check_Missing_Part_Of): Same.
+ 	* sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Same.
+ 
+ 2023-06-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Entity_Name): Handle Range like First and Last.
+ 
+ 2023-06-20  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst
+ 	(Partition-Wide Settings): add this subsection to document
+ 	configuration settings made by the Ada run time.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-06-20  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Entity_Name): Ignore implicit loop scopes
+ 	introduced by quantified expressions.
+ 
+ 2023-06-20  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Remove predicate-check
+ 	generation if there is an address clause. These are unnecessary,
+ 	and cause gigi to crash.
+ 	* exp_util.ads (Following_Address_Clause): Remove obsolete "???"
+ 	comments. The suggested changes were done long ago.
+ 
+ 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Has_Private_Ancestor): Fix inaccuracy in description.
+ 	* sem_ch12.adb (Check_Actual_Type): Do not switch the view of the
+ 	type if it has a private ancestor.
+ 
+ 2023-06-20  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/i-cheri.ads: Add CHERI intrinsics and helper functions.
+ 	* libgnat/i-cheri.adb: Likewise
+ 
+ 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Convert_View): Remove Ind parameter and adjust.
+ 	* sem_ch12.adb (Check_Generic_Actuals): Check the type of both in
+ 	and in out actual objects, as well as the type of formal parameters
+ 	of actual subprograms.  Extend the condition under which the views
+ 	are swapped to nested generic constructs.
+ 	(Save_References_In_Identifier): Call Set_Global_Type on a global
+ 	identifier rewritten as an explicit dereference, either directly
+ 	or after having first been rewritten as a function call.
+ 	(Save_References_In_Operator): Set N2 unconditionally and reuse it.
+ 	* sem_ch3.adb (Build_Derived_Record_Type): Add missing comment.
+ 	* sem_res.adb (Resolve_Implicit_Dereference): Remove special bypass
+ 	for private views in instances.
+ 
+ 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_To_Assignments): Tweak comment.
+ 	(Expand_Array_Aggregate): Do not delay the expansion if the parent
+ 	node is a container aggregate.
+ 
+ 2023-06-20  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* errout.adb (Output_Messages): Fix loop termination condition.
+ 
+ 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
+ 	Switches): Document -gnateH.
+ 	* opt.ads (Reverse_Bit_Order_Threshold): New variable.
+ 	* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Use its value
+ 	if it is nonnegative instead of System_Max_Integer_Size.
+ 	* switch-c.adb (Scan_Front_End_Switches): Deal with -gnateH.
+ 	* usage.adb (Usage): Print -gnateH.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-06-20  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb (Scaled_Divide): Add assertions.
+ 	* libgnat/s-valuti.adb: Add Loop_Variant.
+ 	* libgnat/s-valuti.ads: Add Exceptional_Cases on No_Return
+ 	procedure.
+ 
+ 2023-06-20  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_ch3.adb (Build_Derived_Record_Type): Use full view as
+ 	Parent_Base if needed.
+ 
+ 2023-06-20  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* lib-load.adb (Load_Unit): Pass Error_Node to calls to Error_Msg.
+ 
+ 2023-06-20  Claire Dross  <dross@adacore.com>
+ 
+ 	* libgnat/a-strfix.ads: Replace Might_Not_Return annotations by
+ 	Exceptional_Cases and Always_Terminates aspects.
+ 	* libgnat/a-tideio.ads: Idem.
+ 	* libgnat/a-tienio.ads: Idem.
+ 	* libgnat/a-tifiio.ads: Idem.
+ 	* libgnat/a-tiflio.ads: Idem.
+ 	* libgnat/a-tiinio.ads: Idem.
+ 	* libgnat/a-timoio.ads: Idem.
+ 	* libgnat/a-textio.ads: Idem. Also mark functions Name, Col, Line,
+ 	and Page as out of SPARK as they might raise Layout_Error.
+ 	* libgnarl/a-reatim.ads: Replace Always_Return annotations by
+ 	Always_Terminates aspects.
+ 	* libgnat/a-chahan.ads: Idem.
+ 	* libgnat/a-nbnbig.ads: Idem.
+ 	* libgnat/a-nbnbin.ads: Idem.
+ 	* libgnat/a-nbnbre.ads: Idem.
+ 	* libgnat/a-ngelfu.ads: Idem.
+ 	* libgnat/a-nlelfu.ads: Idem.
+ 	* libgnat/a-nllefu.ads: Idem.
+ 	* libgnat/a-nselfu.ads: Idem.
+ 	* libgnat/a-nuelfu.ads: Idem.
+ 	* libgnat/a-strbou.ads: Idem.
+ 	* libgnat/a-strmap.ads: Idem.
+ 	* libgnat/a-strsea.ads: Idem.
+ 	* libgnat/a-strsup.ads: Idem.
+ 	* libgnat/a-strunb.ads: Idem.
+ 	* libgnat/a-strunb__shared.ads: Idem.
+ 	* libgnat/g-souinf.ads: Idem.
+ 	* libgnat/i-c.ads: Idem.
+ 	* libgnat/interfac.ads: Idem.
+ 	* libgnat/interfac__2020.ads: Idem.
+ 	* libgnat/s-aridou.adb: Idem.
+ 	* libgnat/s-arit32.adb: Idem.
+ 	* libgnat/s-atacco.ads: Idem.
+ 	* libgnat/s-spcuop.ads: Idem.
+ 	* libgnat/s-stoele.ads: Idem.
+ 	* libgnat/s-vaispe.ads: Idem.
+ 	* libgnat/s-vauspe.ads: Idem.
+ 	* libgnat/i-cstrin.ads: Add a precondition instead of a
+ 	Might_Not_Return annotation.
+ 
+ 2023-06-20  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch4.adb
+ 	(Try_Selected_Component_In_Instance): New subprogram; factorizes
+ 	existing code.
+ 	(Find_Component_In_Instance) Moved inside the new subprogram.
+ 	(Analyze_Selected_Component): Invoke the new subprogram before
+ 	trying the Object.Operation notation.
+ 
+ 2023-06-20  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/a-calfor.adb (Time_Of): Fix handling of special case.
+ 
+ 2023-06-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove NO_PIE_CFLAGS.  Add
+ 	PICFLAG.  Use PICFLAG when building ada/b_gnat1.o and ada/b_gnatb.o.
+ 	* gcc-interface/Makefile.in: Use pic/libiberty.a if PICFLAG is set.
+ 	Remove NO_PIE_FLAG.
+ 
+ 2023-06-15  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* vxworks7-cert-rtp-base-link.spec: Removed.
+ 	* vxworks7-cert-rtp-base-link__ppc64.spec: Removed.
+ 	* vxworks7-cert-rtp-base-link__x86.spec: Removed.
+ 	* vxworks7-cert-rtp-base-link__x86_64.spec: Removed.
+ 	* vxworks7-cert-rtp-link.spec: Removed.
+ 	* vxworks7-cert-rtp-link__ppcXX.spec: Removed.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils2.cc (build_binary_op) <MODIFY_EXPR>: Do not
+ 	remove a VIEW_CONVERT_EXPR on the LHS if it is also on the RHS.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Restrict
+ 	the special handling of temporaries created for return values and
+ 	subject to a renaming to the top level.
+ 
+ 2023-06-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_ugn/about_this_guide.rst: Fix typo. Uniformize punctuation.
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: Uniformize punctuation.
+ 	Fix capitalization. Fix indentation of code block. Fix RST formatting
+ 	syntax errors.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-06-15  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Reject case of Loop_Entry
+ 	inside the prefix of Loop_Entry, as per SPARK RM 5.5.3.1(4,8).
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Allocator_For_Return): Rewrite the logic that
+ 	determines the type used for the allocation and add assertions.
+ 	* exp_util.adb (Has_Tag_Of_Type): Also return true for extension
+ 	aggregates.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sinfo.ads (Iterator_Filter): Document field.
+ 	* sem_ch5.adb (Analyze_Iterator_Specification): Move comment around.
+ 	(Analyze_Loop_Parameter_Specification): Only preanalyze the iterator
+ 	filter, if any.
+ 	* exp_ch5.adb (Expand_N_Loop_Statement): Analyze the new list built
+ 	when an iterator filter is present.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Find_Hook_Context): Revert latest change.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Allocator_For_Return): Deal again specifically
+ 	with an aggregate returned through an object of a class-wide type.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Do not insert
+ 	an always empty list. Remove unused parameter Isc.
+ 	(Expand_Iterator_Loop): Adjust call to above procedure.
+ 
+ 2023-06-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* targparm.adb: Allow pragma Style_Checks in some forms.
+ 	* targparm.ads: Document new pragma permission.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Within_Case_Or_If_Expression): Adjust description.
+ 	* exp_util.adb (Find_Hook_Context): Stop the search for the topmost
+ 	conditional expression, if within one, at contexts where temporaries
+ 	may be contained.
+ 	(Within_Case_Or_If_Expression): Return false upon first encoutering
+ 	contexts where temporaries may be contained.
+ 
+ 2023-06-15  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnarl/s-osinte__qnx.adb: Adjust priority conversion function.
+ 	* libgnat/system-qnx-arm.ads: Adjust priority range and default
+ 	priority.
+ 
+ 2023-06-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* targparm.ads: Remove references to front-end-based exceptions. Fix
+ 	thinko.
+ 
+ 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* contracts.adb (Add_Contract_Item): Add pragma Always_Terminates to
+ 	package contract.
+ 	* sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates on
+ 	packages and generic packages, but only when it has no arguments.
+ 
+ 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates when
+ 	it applies to an entry.
+ 
+ 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Reject pragma Always_Terminates when
+ 	it applies to a function or generic function.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Call): Adjust the test to detect the presence
+ 	of an incomplete view of a type on a function call.
+ 
+ 2023-06-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* ttypes.ads: Remove reference to Ttypef in comment. Fix typo in
+ 	comment.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* get_targ.ads (Get_Max_Unaligned_Field): Delete.
+ 	* ada_get_targ.adb (Get_Max_Unaligned_Field): Likewise.
+ 	* get_targ.adb (Get_Max_Unaligned_Field): Likewise.
+ 	* set_targ.ads (Max_Unaligned_Field): Adjust comment.
+ 	* set_targ.adb: Set Max_Unaligned_Field to 1 during elaboration.
+ 	* ttypes.ads (Max_Unaligned_Field): Delete.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_type.adb (Disambiguate): Fix pasto in the implementation of
+ 	the RM 8.4(10) clause for operators.
+ 
+ 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.adb
+ 	(Base_Aspect): Fix layout.
+ 	* aspects.ads
+ 	(Aspect_Argument): Expression for Always_Terminates is optional.
+ 	* sem_prag.adb
+ 	(Analyze_Always_Terminates_In_Decl_Part): Only analyze expression when
+ 	pragma argument is present.
+ 	(Analyze_Pragma): Argument for Always_Terminates is optional; fix
+ 	whitespace for Async_Readers.
+ 
+ 2023-06-15  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_util.adb
+ 	(Is_CPP_Constructor_Call): Add missing support for calls to
+ 	functions returning a private type.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Build_Transient_Object_Statements): Remove obsolete
+ 	references to array and record aggregates in documentation.
+ 
+ 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): Add missing items
+ 	in the list of aspects handled by means of Insert_Pragma.
+ 	<Aspect_Linker_Section>: Remove obsolete code.  Do not delay the
+ 	processing of the aspect if the entity is already frozen.
+ 
+ 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_aggr.adb
+ 	(Resolve_Array_Aggregate): Simplify comment.
+ 	(Resolve_Iterated_Component_Association): Tune comment; change variable
+ 	to constant.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Component_Association): Simply resolve
+ 	the expression.
+ 
+ 2023-06-13  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch4.adb
+ 	(Expand_N_Quantified_Expression): Detect the secondary-stack
+ 	case, and find the innermost scope where we should mark/release,
+ 	and Set_Uses_Sec_Stack on that. Skip intermediate blocks and loops
+ 	that are part of expansion.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Repeatedly_Evaluated): Recognize iterated component
+ 	association as repeatedly evaluated.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Potentially_Unevaluated): Recognize iterated
+ 	component association as potentially unevaluated.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Call): Replace early call to
+ 	In_Quantified_Expression with a call to Is_Potentially_Unevaluated that
+ 	was only done when Full_Analysis is true.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id): Add new aspect.
+ 	(Implementation_Defined_Aspect): New aspect is
+ 	implementation-defined.
+ 	(Aspect_Argument): New aspect has an expression argument.
+ 	(Is_Representation_Aspect): New aspect is not a representation
+ 	aspect.
+ 	(Aspect_Names): Link new aspect identifier with a name.
+ 	(Aspect_Delay): New aspect is never delayed.
+ 	* contracts.adb (Expand_Subprogram_Contract): Mention new aspect
+ 	in comment.
+ 	(Add_Contract_Item): Attach pragma corresponding to the new aspect
+ 	to contract items.
+ 	(Analyze_Entry_Or_Subprogram_Contract): Analyze pragma
+ 	corresponding to the new aspect that appears with subprogram spec.
+ 	(Analyze_Subprogram_Body_Stub_Contract): Expand pragma
+ 	corresponding to the new aspect.
+ 	* contracts.ads
+ 	(Add_Contract_Item, Analyze_Entry_Or_Subprogram_Contract)
+ 	(Analyze_Entry_Or_Subprogram_Body_Contract)
+ 	(Analyze_Subprogram_Body_Stub_Contract): Mention new aspect in
+ 	comment.
+ 	* einfo-utils.adb (Get_Pragma): Return pragma attached to
+ 	contract.
+ 	* einfo-utils.ads (Get_Pragma): Mention new contract in comment.
+ 	* exp_prag.adb (Expand_Pragma_Always_Terminates): Placeholder for
+ 	possibly expanding new aspect.
+ 	* exp_prag.ads (Expand_Pragma_Always_Terminates): Dedicated
+ 	routine for expansion of the new aspect.
+ 	* inline.adb (Remove_Aspects_And_Pragmas): Remove aspect from
+ 	inlined bodies.
+ 	* par-prag.adb (Prag): Postpone checking of the pragma until
+ 	analysis.
+ 	* sem_ch12.adb: Mention new aspect in explanation of handling
+ 	contracts on generic units.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): Convert new aspect
+ 	into a corresponding pragma.
+ 	(Check_Aspect_At_Freeze_Point): Don't expect new aspect.
+ 	* sem_prag.adb (Analyze_Always_Terminates_In_Decl_Part): Analyze
+ 	pragma corresponding to the new aspect.
+ 	(Analyze_Pragma): Handle pragma corresponding to the new aspect.
+ 	(Is_Non_Significant_Pragma_Reference): Handle references appearing
+ 	within new aspect.
+ 	* sem_prag.ads (Aspect_Specifying_Pragma): New aspect can be
+ 	emulated with a pragma.
+ 	(Assertion_Expression_Pragma): New aspect has an assertion
+ 	expression.
+ 	(Pragma_Significant_To_Subprograms): New aspect is significant to
+ 	subprograms.
+ 	(Analyze_Always_Terminates_In_Decl_Part): Add spec for routine
+ 	that analyses new aspect.
+ 	(Find_Related_Declaration_Or_Body): Mention new aspect in comment.
+ 	* sem_util.adb (Is_Subprogram_Contract_Annotation): New aspect is
+ 	a subprogram contract annotation.
+ 	* sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
+ 	aspect in comment.
+ 	* sinfo.ads (Is_Generic_Contract_Pragma): New pragma is a generic
+ 	contract.
+ 	(Contract): Explain attaching new pragma to subprogram contract.
+ 	* snames.ads-tmpl (Name_Always_Terminates): New name for the new
+ 	contract.
+ 	(Pragma_Always_Terminates): New pragma identifier.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_elab.adb (Check_Overriding_Primitive): Prevent Corresponding_Body
+ 	to be called with entity of an abstract subprogram.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Save_References_In_Identifier): In the case where
+ 	the identifier has been turned into a function call by analysis,
+ 	call Set_Global_Type on the entity if it is global.
+ 
+ 2023-06-13  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Iterated_Component_Association): Call
+ 	Preanalyze_And_Resolve instead of Resolve_Aggr_Expr except for
+ 	aggregate.
+ 	Co-authored-by: Ed Schonberg <schonberg@adacore.com>
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* contracts.adb (Contract_Error): New exception.
+ 	(Add_Contract_Item): Raise Contract_Error instead of Program_Error.
+ 	(Add_Generic_Contract_Pragma): Deal with Contract_Error.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): Add more exceptions to the early
+ 	return for a prefix which is a nonfrozen generic actual type.
+ 	* sem_ch12.adb (Copy_Generic_Node): Also check private views in the
+ 	case of an entity name or operator analyzed as a function call.
+ 	(Set_Global_Type): Make it a child of Save_Global_References.
+ 	(Save_References_In_Operator): In the case where the operator has
+ 	been turned into a function call, call Set_Global_Type on the entity
+ 	if it is global.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): For a
+ 	subprogram body that has no contracts and does not come from source,
+ 	make sure that contracts on its corresponding spec are analyzed, if
+ 	any, before expanding them.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add No_Finalize_Actions and
+ 	remove No_Side_Effect_Removal.
+ 	* gen_il-gen-gen_nodes.adb (N_Function_Call): Remove semantic flag
+ 	No_Side_Effect_Removal
+ 	(N_Assignment_Statement): Add semantic flag No_Finalize_Actions.
+ 	* sinfo.ads (No_Ctrl_Actions): Adjust comment.
+ 	(No_Finalize_Actions): New flag on assignment statements.
+ 	(No_Side_Effect_Removal): Delete.
+ 	* exp_aggr.adb (Build_Record_Aggr_Code): Remove obsolete comment and
+ 	Ancestor_Is_Expression variable.  In the case of an extension, do
+ 	not generate a call to Adjust manually, call Set_No_Finalize_Actions
+ 	instead.  Do not set the tags, replace call to Make_Unsuppress_Block
+ 	by Make_Suppress_Block and remove useless assertions.
+ 	In the general case, call Initialize_Component.
+ 	(Initialize_Controlled_Component): Delete.
+ 	(Initialize_Simple_Component): Delete.
+ 	(Initialize_Component): Do the low-level processing, but do not
+ 	generate a call to Adjust manually, call Set_No_Finalize_Actions.
+ 	(Process_Transient_Component): Delete.
+ 	(Process_Transient_Component_Completion): Likewise.
+ 	* exp_ch5.adb (Expand_Assign_Array): Deal with No_Finalize_Actions.
+ 	(Expand_Assign_Array_Loop): Likewise.
+ 	(Expand_N_Assignment_Statement): Likewise.
+ 	(Make_Tag_Ctrl_Assignment): Likewise.
+ 	* exp_util.adb (Remove_Side_Effects): Do not test the
+ 	No_Side_Effect_Removal flag.
+ 	* sem_prag.adb (Process_Suppress_Unsuppress): Give the warning in
+ 	SPARK mode only for pragma Suppress.
+ 	* tbuild.ads (Make_Suppress_Block): New declaration.
+ 	(Make_Unsuppress_Block): Adjust comment.
+ 	* tbuild.adb (Make_Suppress_Block): New procedure.
+ 	(Make_Unsuppress_Block): Unsuppress instead of suppressing.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Assignment): Turn Rhs into a constant and
+ 	remove calls to the following subprograms.
+ 	(Transform_BIP_Assignment): Delete.
+ 	(Should_Transform_BIP_Assignment): Likewise.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.ads (Is_Inherited_Operation_For_Type): Remove spec.
+ 	* sem_util.adb (Is_Inherited_Operation_For_Type): Remove body.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Record_Aggr_Code): Add new variable Ancestor_Q
+ 	to store the result of Unqualify on Ancestor.  Remove the dead call
+ 	to Generate_Finalization_Actions in the case of another aggregate as
+ 	ancestor part.  Remove the redundant setting of Assignment_OK.  Use
+ 	Init_Typ in lieu of Etype (Ancestor) more consistently.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Record_Aggr_Code): In the case of an extension
+ 	aggregate of a limited type whose ancestor part is an aggregate, do
+ 	not skip the final code assigning the tag of the extension.
+ 
+ 2023-06-13  Yannick Moy  <moy@adacore.com>
+ 
+ 	* ghost.adb (Check_Ghost_Context): Allow absence of Ghost_Id
+ 	for attribute. Update error message to mention Ghost_Predicate.
+ 	(Is_Ghost_Attribute_Reference): New query.
+ 	* ghost.ads (Is_Ghost_Attribute_Reference): New query.
+ 	* sem_attr.adb (Resolve_Attribute): Check ghost context for ghost
+ 	attributes.
+ 
+ 2023-06-13  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/s-stoele.ads: Add No_Elaboration_Code_All pragma.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Make_Tag_Assignment_From_Type): Declare.
+ 	* exp_util.adb (Make_Tag_Assignment_From_Type): New function.
+ 	* exp_aggr.adb (Build_Record_Aggr_Code): Call the above function.
+ 	(Initialize_Simple_Component): Likewise.
+ 	* exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Likewise.
+ 	(Build_Record_Init_Proc.Build_Init_Procedure ): Likewise.
+ 	(Make_Tag_Assignment): Likewise.  Rename local variable and call
+ 	Unqualify to go through qualified expressions.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Likewise.
+ 
+ 2023-06-13  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strsup.ads: Change predicate aspect.
+ 	* sem_ch13.adb (Add_Predicate): Fix for first predicate.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Initialize_Component): Perform immediate expansion
+ 	of the initialization expression if it is a conditional expression
+ 	and the component type is controlled.
+ 
+ 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Initialize_Component): New procedure factored out
+ 	from the processing of array and record aggregates.
+ 	(Initialize_Controlled_Component): Likewise.
+ 	(Initialize_Simple_Component): Likewise.
+ 	(Build_Array_Aggr_Code.Gen_Assign): Remove In_Loop parameter.
+ 	Call Initialize_Component to initialize the component.
+ 	(Initialize_Array_Component): Delete.
+ 	(Initialize_Ctrl_Array_Component): Likewise.
+ 	(Build_Array_Aggr_Code): Adjust calls to Gen_Assign.
+ 	(Build_Record_Aggr_Code): Call Initialize_Simple_Component or
+ 	Initialize_Component to initialize the component.
+ 	(Initialize_Ctrl_Record_Component): Delete.
+ 	(Initialize_Record_Component): Likewise.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch11.adb (Expand_N_Raise_Statement): Expansion of raise statements
+ 	never happens in GNATprove mode.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch11.adb (Find_Local_Handler): Replace guard against other
+ 	constructs appearing in the list of exception handlers with iteration
+ 	using First_Non_Pragma/Next_Non_Pragma.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch11.ads (Find_Local_Handler): Fix typo in comment.
+ 	* exp_ch11.adb (Find_Local_Handler): Remove redundant check for the
+ 	Exception_Handler list being present; use membership test to eliminate
+ 	local object LCN; fold nested IF statements. Remove useless ELSIF
+ 	condition.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Check_Function_Writable_Actuals): Tune style; use
+ 	subtype name to detect membership test nodes.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Use a single call
+ 	to New_List.
+ 
+ 2023-06-13  Yannick Moy  <moy@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_aspects.rst: Document new
+ 	aspect.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Whitespace.
+ 	* aspects.adb (Init_Canonical_Aspect): Set it to Predicate.
+ 	* aspects.ads: Set global constants for new aspect.
+ 	* einfo.ads: Describe new flag related to new aspect.
+ 	* exp_ch6.adb (Can_Fold_Predicate_Call): Do not fold new aspect.
+ 	* exp_util.adb (Make_Predicate_Check): Add comment.
+ 	* gen_il-fields.ads: Add new flag.
+ 	* gen_il-gen-gen_entities.adb: Add new flag.
+ 	* ghost.adb (Is_OK_Ghost_Context): Ghost predicate is an OK
+ 	ghost context.
+ 	(Mark_Ghost_Pragma): Add overloading with ghost mode parameter.
+ 	* ghost.ads (Mark_Ghost_Pragma): Add overloading with ghpst mode
+ 	parameter.
+ 	(Name_To_Ghost_Mode): Make function public.
+ 	* sem_aggr.adb: Issue error for violation of valid use.
+ 	* sem_case.adb: Issue error for violation of valid use.
+ 	* sem_ch13.adb: Adapt for new aspect.
+ 	* sem_ch3.adb (Analyze_Full_Type_Declaration): Remove dead code
+ 	which was trying to propagate Has_Predicates flag in the wrong
+ 	direction (from derived to parent type).
+ 	(Analyze_Number_Declaration): Issue error for violation of valid
+ 	use.
+ 	(Build_Derived_Type): Cleanup inheritance of predicate flags from
+ 	parent to derived type.
+ 	(Build_Predicate_Function): Only add a predicate check when it
+ 	is not ignored as Ghost code.
+ 	* sem_ch4.adb (Analyze_Membership_Op): Issue an error for use of
+ 	a subtype with a ghost predicate as name in a membership test.
+ 	* sem_ch5.adb (Check_Predicate_Use): Issue error for violation of
+ 	valid use.
+ 	* sem_eval.adb: Adapt code for Dynamic_Predicate to account for
+ 	Ghost_Predicate too.
+ 	* sem_prag.adb (Analyze_Pragma): Make pragma ghost or not.
+ 	* sem_util.adb (Bad_Predicated_Subtype_Use): Adapt to new aspect.
+ 	(Inherit_Predicate_Flags): Add inheritance of flag. Add parameter
+ 	to apply to derived types.
+ 	* sem_util.ads (Inherit_Predicate_Flags): Change signature.
+ 	* snames.ads-tmpl: Add new aspect name.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Controlling_Function_Wrappers): Remove early
+ 	decoration.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (get_storage_model_access): Also strip any
+ 	type conversion in the node when unwinding the components.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (node_is_component): Remove parentheses.
+ 	(node_is_type_conversion): New predicate.
+ 	(get_atomic_access): Use it.
+ 	(get_storage_model_access): Likewise and look into the parent to
+ 	find a component if it returns true.
+ 	(present_in_lhs_or_actual_p): Likewise.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Check that
+ 	the storage model has Copy_From before instantiating loads for it.
+ 	<Attr_Length>: Likewise.
+ 	<Attr_Bit_Position>: Likewise.
+ 	(gnat_to_gnu) <N_Indexed_Component>: Likewise.
+ 	<N_Slice>: Likewise.
+ 
+ 2023-05-30  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Attribute_to_gnu): Also strip conversion
+ 	in case of DECL.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
+ 	local variable for the GNAT index type.
+ 	<E_Array_Subtype>: Likewise.  Call Is_Null_Range on the bounds and
+ 	force the zero on TYPE_SIZE and TYPE_SIZE_UNIT if it returns true.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Test the
+ 	precision of the operation rather than that of the result type.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Replace
+ 	integer_zero_node with null_pointer_node for pointer types.
+ 	* gcc-interface/trans.cc (gnat_gimplify_expr) <NULL_EXPR>: Likewise.
+ 	* gcc-interface/utils.cc (maybe_pad_type): Do not attempt to make a
+ 	packable type from a fat pointer type.
+ 	* gcc-interface/utils2.cc (build_atomic_load): Use a local variable.
+ 	(build_atomic_store): Likewise.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/misc.cc (internal_error_function): Be prepared for
+ 	an input_location set to UNKNOWN_LOCATION.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Tweak.
+ 	(gnat_to_gnu) <N_Assignment_Statement>: Declare a local variable.
+ 	For a target with a storage model, use the Actual_Designated_Subtype
+ 	to compute the size if it is present.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Call_to_gnu): Remove code implementing the
+ 	by-copy semantics for actuals with nonnative storage models.
+ 	(gnat_to_gnu) <N_Assignment_Statement>: Remove code instantiating a
+ 	temporary for assignments between nonnative storage models.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (range_cannot_be_superflat): Return true
+ 	immediately if Cannot_Be_Superflat is set.
+ 	* gcc-interface/misc.cc (gnat_post_options): Do not override the
+ 	-Wstringop-overflow setting.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/Make-lang.in (ADA_CFLAGS): Move up.
+ 	(ALL_ADAFLAGS): Add $(NO_PIE_CFLAGS).
+ 	(ada/mdll.o): Remove.
+ 	(ada/mdll-fil.o): Likewise.
+ 	(ada/mdll-utl.o): Likewise.
+ 
+ 2023-05-30  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (get_storage_model_access): Don't require
+ 	storage model access for dereference used as lvalue or renamings.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Array_Aggr_Code): Move the declaration of Typ
+ 	to the beginning.
+ 	(Initialize_Array_Component): Test the unqualified version of the
+ 	expression for the nested array case.
+ 	(Initialize_Ctrl_Array_Component): Do not duplicate the expression
+ 	here.  Do the pattern matching of the unqualified version of it.
+ 	(Gen_Assign): Call Unqualify to compute Expr_Q and use Expr_Q in
+ 	subsequent pattern matching.
+ 	(Initialize_Ctrl_Record_Component): Do the pattern matching of the
+ 	unqualified version of the aggregate.
+ 	(Build_Record_Aggr_Code): Call Unqualify.
+ 	(Convert_Aggr_In_Assignment): Likewise.
+ 	(Convert_Aggr_In_Object_Decl): Likewise.
+ 	(Component_OK_For_Backend): Likewise.
+ 	(Is_Delayed_Aggregate): Likewise.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Array_Aggr_Code.Get_Assoc_Expr): Duplicate the
+ 	expression here instead of...
+ 	(Build_Array_Aggr_Code): ...here.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Check_Large_Modular_Array): Fix head comment, use
+ 	Standard_Long_Long_Integer_Size directly and generate a reference
+ 	just before the raise statement if the Etype of the object is an
+ 	itype declared in an open scope.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Find_Enclosing_Transient_Scope): Return the index in
+ 	the scope table instead of the scope's entity.
+ 	(Establish_Transient_Scope): If an enclosing scope already exists,
+ 	do not set the Uses_Sec_Stack flag on it if the node to be wrapped
+ 	is a return statement which requires secondary stack management.
+ 
+ 2023-05-30  Joel Brobecker  <brobecker@adacore.com>
+ 
+ 	* Makefile.rtl: Use libgnat/s-tsmona__linux.adb on
+ 	aarch64-linux.  Link libgnat with -ldl, as the use of
+ 	s-tsmona__linux.adb requires it.
+ 
+ 2023-05-30  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch3.adb
+ 	(Build_Access_Subprogram_Wrapper_Body): Build wrapper body if requested
+ 	by routine that builds wrapper spec.
+ 	* sem_ch3.adb
+ 	(Analyze_Full_Type_Declaration): Only build wrapper when expander is
+ 	active.
+ 	(Build_Access_Subprogram_Wrapper):
+ 	Remove special-case for GNATprove.
+ 
+ 2023-05-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor issues.
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: Fix minor issues.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-30  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnat/s-parame.adb: Check that Default_Stack_Size >=
+ 	Minimum_Stack_size.
+ 	* libgnat/s-parame__rtems.adb: Ditto.
+ 	* libgnat/s-parame__vxworks.adb: Check that Default_Stack_Size >=
+ 	Minimum_Stack_size and use the proper Minimum_Stack_Size if
+ 	Stack_Check_Limits is enabled.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Call): Restrict previous change to calls that
+ 	return on the same stack as the enclosing function.  Tidy up.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/a-cidlli.adb (Put_Image): Simplify.
+ 	* libgnat/a-coinve.adb (Put_Image): Likewise.
+ 
+ 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Build_DIC_Procedure_Body.Add_Own_DIC): When inside
+ 	a generic unit, preanalyze the expression directly.
+ 	(Build_Invariant_Procedure_Body.Add_Own_Invariants): Likewise.
+ 
+ 2023-05-30  Cedric Landet  <landet@adacore.com>
+ 
+ 	* init.c: Replace FIXME by ???
+ 
+ 2023-05-29  Cedric Landet  <landet@adacore.com>
+ 
+ 	* s-oscons-tmplt.c: move the definition of sigset out of the
+ 	HAVE_SOCKETS bloc.
+ 
+ 2023-05-29  Cedric Landet  <landet@adacore.com>
+ 
+ 	* Makefile.rtl: Move g-spogwa$(objext) from GNATRTL_NONTASKING_OBJS
+ 	to GNATRTL_SOCKETS_OBJS
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in
+ 	both cases to copy the spec of the subprogram.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Establish_Transient_Scope.Find_Transient_Context):
+ 	Bail out for a simple return statement only if the transient scope
+ 	and the function both require secondary stack management, or else
+ 	if the function is a thunk.
+ 	* sem_res.adb (Resolve_Call): Do not create a transient scope when
+ 	the call is the expression of a simple return statement.
+ 
+ 2023-05-29  Patrick Bernardi  <bernardi@adacore.com>
+ 
+ 	* libgnat/a-excach.adb (Call_Chain): Replace
+ 	Code_Address_For_AAA/ZZZ functions with AAA/ZZZ'Code_Address.
+ 	* libgnat/a-except.adb (Code_Address_For_AAA/ZZZ): Delete.
+ 	(AAA/ZZZ): New null procedures.
+ 	* libgnat/g-debpoo.adb
+ 	(Code_Address_For_Allocate_End): Delete.
+ 	(Code_Address_For_Deallocate_End): Delete.
+ 	(Code_Address_For_Dereference_End): Delete.
+ 	(Allocate): Remove label and use Code_Address attribute to
+ 	determine subprogram addresses.
+ 	(Dellocate): Likewise.
+ 	(Dereference): Likewise.
+ 	(Allocate_End): Convert to null procedure.
+ 	(Dellocate_End): Likewise.
+ 	(Dereference_End): Likewise.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Call Insert_Actions
+ 	consistently when rewriting the expression.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Is_Finalizable_Transient.Is_Indexed_Container):
+ 	New predicate to detect a temporary created to hold the result of
+ 	a constant indexing on a container.
+ 	(Is_Finalizable_Transient.Is_Iterated_Container): Adjust a couple
+ 	of obsolete comments.
+ 	(Is_Finalizable_Transient): Return False if Is_Indexed_Container
+ 	returns True on the object.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Has_Applicable_User_Defined_Literal): Make it clear
+ 	that the predicate also checks the node itself.
+ 	(Try_User_Defined_Literal): Move current implementation to...
+ 	Deal only with literals, named numbers and conditional expressions
+ 	whose dependent expressions are literals or named numbers.
+ 	(Try_User_Defined_Literal_For_Operator): ...this.  Remove multiple
+ 	return False statements and put a single one at the end.
+ 	(Resolve): Call Try_User_Defined_Literal instead of directly
+ 	Has_Applicable_User_Defined_Literal for all nodes.  Call
+ 	Try_User_Defined_Literal_For_Operator for operator nodes.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Invoked_With_Different_Arguments): Use Get_Called_Entity,
+ 	which properly deals with calls via an access-to-subprogram; fix
+ 	inconsistent use of a Call object declared in enclosing subprogram.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* contracts.adb
+ 	(Add_Pre_Post_Condition): Attach pre/post aspects to E_Subprogram_Type
+ 	entity.
+ 	(Analyze_Entry_Or_Subprogram_Contract): Adapt to use full type
+ 	declaration for a contract attached to E_Subprogram_Type entity.
+ 	* sem_prag.adb
+ 	(Analyze_Pre_Post_Condition): Add pre/post aspects to the designed type.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Check_Function_Writable_Actuals): Remove guard against
+ 	a membership test with no alternatives; simplify with a membership test.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst
+ 	(Some Useful Memory Pools): Remove extra whitespace from examples.
+ 	* sem_aggr.adb (Make_String_Into_Aggregate): Remove extra whitespace.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_Aggr_In_Allocator): Replace Get_TSS_Name
+ 	with a high-level Is_TSS.
+ 	* sem_ch6.adb (Check_Conformance): Replace DECLARE block and
+ 	nested IF with a call to Get_TSS_Name and a membership test.
+ 	(Has_Reliable_Extra_Formals): Refactor repeated calls to
+ 	Get_TSS_Name.
+ 	* sem_disp.adb (Check_Dispatching_Operation): Replace repeated
+ 	calls to Get_TSS_Name with a membership test.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_N_Case_Statement): Do not remove the statement
+ 	if it is the node to be wrapped by a transient scope.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not defer
+ 	anything to the back-end when the main unit is generic.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Try_User_Defined_Literal): Restrict previous change
+ 	to non-leaf nodes.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Try_User_Defined_Literal): For arithmetic operators,
+ 	also accept operands whose type is covered by the resolution type.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Initialize_Array_Component): Fix condition detecting
+ 	the nested case that requires an adjustment.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_In): Deal specifically with a null operand.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Deal with a rewriting
+ 	of the simple return during the adjustment of its expression.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Case_Expression): Distribute simple return
+ 	statements enclosing the conditional expression into the dependent
+ 	expressions in almost all cases.
+ 	(Expand_N_If_Expression): Likewise.
+ 	(Process_Transient_In_Expression): Adjust to the above distribution.
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Deal with calls in the
+ 	dependent expressions of a conditional expression.
+ 	* sem_ch6.adb (Analyze_Function_Return): Deal with the rewriting of
+ 	a simple return statement during the resolution of its expression.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases.
+ 
+ 2023-05-29  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_To_Assignments): Do not mark node for
+ 	delayed expansion if parent type has the Aggregate aspect.
+ 	* sem_util.adb (Is_Container_Aggregate): Move...
+ 	* sem_util.ads (Is_Container_Aggregate): ... here and make it
+ 	public.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Entity_Name): Relax rules for Exceptional_Cases.
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch4.ads (Unresolved_Operator): New procedure.
+ 	* sem_ch4.adb (Has_Possible_Literal_Aspects): Rename into...
+ 	(Has_Possible_User_Defined_Literal): ...this.  Tidy up.
+ 	(Operator_Check): Accept again unresolved operators if they have a
+ 	possible user-defined literal as operand.  Factor out the handling
+ 	of the general error message into...
+ 	(Unresolved_Operator): ...this new procedure.
+ 	* sem_res.adb (Resolve): Be prepared for unresolved operators on
+ 	entry in Ada 2022 or later.  If they are still unresolved on exit,
+ 	call Unresolved_Operator to give the error message.
+ 	(Try_User_Defined_Literal): Tidy up.
+ 
+ 2023-05-29  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_ch3.adb
+ 	(Expand_N_Object_Declaration.Default_Initialize_Object): Add test for
+ 	specified Default_Component_Value aspect when deciding whether
+ 	either Initialize_Scalars or Normalize_Scalars impacts default
+ 	initialization of an array object.
+ 
+ 2023-05-29  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_aggr.adb
+ 	(Resolve_Record_Aggregate): For aggregates of derived tagged
+ 	record types with discriminants, when collecting components
+ 	from ancestors, pass to subprogram Gather_Components the
+ 	parent type. Required to report errors on wrong aggregate
+ 	components.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Check_Result_And_Post_State): Replace low-level
+ 	navigation with a high-level Unique_Entity.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Check_Result_And_Post_State): Properly handle entry
+ 	bodies.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* contracts.adb (Fix_Parent): Fir part both for lists and nodes.
+ 
+ 2023-05-29  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* sem_ch7.adb: Refine handling of inlining for CCG
+ 
+ 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Copy_Generic_Node): Test the original node kind
+ 	for the sake of consistency.  For identifiers and other entity
+ 	names and operators, accept an expanded name as associated node.
+ 	Replace "or" with "or else" in condtion and fix its formatting.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Check_Result_And_Post_State): Tune message.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* contracts.adb (Remove_Formals): Remove.
+ 	(Preanalyze_Condition): Replace Pop_Scope with End_Scope.
+ 	* sem_ch13.adb (Build_Discrete_Static_Predicate): Replace
+ 	Pop_Scope with End_Scope; enclose Install_Formals within
+ 	Push_Scope/End_Scope.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pre_Post_Condition): Tune error message.
+ 
+ 2023-05-29  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* scans.ads (Inside_Interpolated_String_Expression): New variable.
+ 	* par-ch2.adb (P_Interpolated_String_Literal): Set/clear new
+ 	variable when parsing interpolated string expressions.
+ 	* scng.adb (Set_String): Skip processing operator symbols when we
+ 	arescanning an interpolated string literal.
+ 
+ 2023-05-29  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* Makefile.rtl (QNX): Use s-parame__qnx.adb for s-parame.adb.
+ 	* libgnat/s-parame__qnx.adb: Add QNX specific version of
+ 	System.Parameters.
+ 
+ 2023-05-29  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-ngelfu.ads: Restore SPARK_Mode from context.
+ 
+ 2023-05-29  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* contracts.adb (Restore_Original_Selected_Component): Adjust assertion.
+ 
+ 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* contracts.adb
+ 	(Add_Pre_Post_Condition): Adapt to handle pre/post of an
+ 	access-to-subprogram type.
+ 	(Analyze_Type_Contract): Analyze pre/post of an
+ 	access-to-subprogram.
+ 	* contracts.ads
+ 	(Analyze_Type_Contract): Adapt comment.
+ 	* sem_ch3.adb
+ 	(Build_Access_Subprogram_Wrapper): Copy pre/post aspects to
+ 	wrapper spec and keep it on the type.
+ 	* sem_prag.adb
+ 	(Analyze_Pre_Post_Condition): Expect pre/post aspects on
+ 	access-to-subprogram and complain if they appear without -gnat2022
+ 	switch.
+ 	(Analyze_Pre_Post_Condition_In_Decl_Part): Adapt to handle
+ 	pre/post on an access-to-subprogram type entity.
+ 	* sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
+ 	(Result): Likewise.
+ 
+ 2023-05-26  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch3.adb
+ 	(Build_Derived_Record_Type): Temporarily set the state of the
+ 	Derived_Type to "self-hidden" while processing constraints
+ 	and discriminants of a record extension.
+ 
+ 2023-05-26  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo.ads: Add comma.
+ 	* contracts.adb: Fix typos.
+ 	* exp_attr.adb: Likewise.
+ 	* exp_ch5.adb: Likewise.
+ 	* exp_ch6.adb: Likewise.
+ 	* lib-xref.adb: Likewise.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* debug.adb (d.N): Document new usage.
+ 	* exp_ch4.adb (Expand_N_Type_Conversion): Copy the Float_Truncate
+ 	flag when rewriting a floating-point to fixed-point conversion as
+ 	a floating-point to integer conversion.
+ 	* exp_fixd.adb: Add with and use clauses for Debug.
+ 	(Expand_Convert_Fixed_To_Fixed): Generate a truncation in all cases
+ 	except if the result is explicitly rounded.
+ 	(Expand_Convert_Integer_To_Fixed): Likewise.
+ 	(Expand_Convert_Float_To_Fixed): Generate a truncation for all kind
+ 	of fixed-point types, except if the result is explicitly rounded, or
+ 	-gnatd.N is specified and the type is an ordinary fixed-point type.
+ 	* sinfo.ads (Float_Truncate): Document usage for floating-point to
+ 	fixed-point conversions.
+ 
+ 2023-05-26  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch4.adb
+ 	(Expand_N_Allocator): If an allocator with constraints is called
+ 	in the return statement of a function returning a general access
+ 	type, then propagate to the itype the master of the general
+ 	access type (since it is the master associated with the
+ 	returned object).
+ 
+ 2023-05-26  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Record_Aggregate): Add dummy initialization and
+ 	assertion that clarifies when we reassigned to a useful value.
+ 
+ 2023-05-26  Yannick Moy  <moy@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Be more explicit on
+ 	pattern matching limitation.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-26  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-calend.ads: Mark with SPARK_Mode=>Off the functions which may
+ 	raise Time_Error.
+ 	* libgnat/a-ngelfu.ads: Mark with SPARK_Mode=>Off the functions which may
+ 	lead to an overflow (which is not the case of Tan with one parameter for
+ 	example, or Arctanh or Arcoth, despite their mathematical range covering
+ 	the reals).
+ 	* libgnat/a-textio.ads: Remove Always_Return annotation from functions, as
+ 	this is now compulsory for functions to always return in SPARK.
+ 	* libgnat/i-cstrin.ads: Add Might_Not_Return annotation to Update procedure
+ 	which may not return.
+ 
+ 2023-05-26  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_put_image.adb (Build_Image_Call): Treat 'Img the same as
+ 	'Image.
+ 	* exp_imgv.adb (Expand_Image_Attribute): If Discard_Names, expand
+ 	to 'Image instead of 'Img.
+ 	* snames.ads-tmpl, par-ch4.adb, sem_attr.adb, sem_attr.ads:
+ 	Cleanups: Rename Attribute_Class_Array to be Attribute_Set. Remove
+ 	unnecessary qualifications. DRY: Don't repeat "True".
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Record_Possible_Body_Reference): Remove call to Present.
+ 	* sem_util.adb (Find_Untagged_Type_Of): Likewise.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Initialize_Array_Component): Remove obsolete code.
+ 	(Expand_Array_Aggregate): In the case where a temporary is created
+ 	and the parent is an assignment statement with No_Ctrl_Actions set,
+ 	set Is_Ignored_Transient on the temporary.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Instantiate_Package_Body): Set the ghost mode to
+ 	that of the instance only after loading the generic's parent.
+ 	(Instantiate_Subprogram_Body): Likewise.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_Set_Membership): Simplify by using Evolve_Or_Else.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to
+ 	Unqual_Conv; consequently, change object from variable to constant;
+ 	replace an IF statement with an AND THEN expression.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch9.adb
+ 	(Build_Entry_Count_Expression): Remove loop over component declaration;
+ 	consequently remove a parameter that is no longer used; adapt callers.
+ 	(Make_Task_Create_Call): Refine type of a local variable.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside
+ 	loop, not in the loop condition itself.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/a-cbdlli.ads (List): Move Nodes component to the end.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/a-crdlli.ads (List): Move Nodes component to the end.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Is_Thin_Pointer_To_Unc_Array): New predicate.
+ 	(Resolve_Attribute): Apply the static matching legality rule to an
+ 	Unrestricted_Access attribute applied to an aliased prefix if the
+ 	type is a thin pointer.  Call Is_Thin_Pointer_To_Unc_Array for the
+ 	aliasing legality rule as well.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Null_Record_Definition): Use First_Non_Pragma and
+ 	Next_Non_Pragma to ignore pragmas within component list.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Get_Argument): Improve detection of generic units.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch4.adb (Check_Action_OK): Replace low-level test with a
+ 	high-level routine.
+ 	* sem_ch13.adb (Is_Predicate_Static): Likewise.
+ 
+ 2023-05-26  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch9.adb
+ 	(Expand_N_Conditional_Entry_Call): Factorize code to avoid
+ 	duplicating subtrees; required to avoid problems when the copied
+ 	code has implicit labels.
+ 	* sem_util.ads (New_Copy_Separate_List): Removed.
+ 	(New_Copy_Separate_Tree): Removed.
+ 	* sem_util.adb (New_Copy_Separate_List): Removed.
+ 	(New_Copy_Separate_Tree): Removed.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Component_List): Local variable Compl is now
+ 	a constant; a nested block is no longer needed.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_aggr.adb
+ 	(Resolve_Record_Aggregate): Remove useless assignment.
+ 	* sem_aux.adb
+ 	(Has_Variant_Part): Remove useless guard; this routine is only called
+ 	on type entities (and now will crash in other cases).
+ 	* sem_ch3.adb
+ 	(Create_Constrained_Components): Only assign Assoc_List when necessary;
+ 	tune whitespace.
+ 	(Is_Variant_Record): Refactor repeated calls to Parent.
+ 	* sem_util.adb
+ 	(Gather_Components): Assert that discriminant association has just one
+ 	choice in component_association; refactor repeated calls to Next.
+ 	* sem_util.ads
+ 	(Gather_Components): Tune whitespace in comment.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with
+ 	First_Non_Pragma and Next_Non_Pragma.
+ 	* exp_dist.adb (Append_Record_Traversal): Likewise.
+ 
+ 2023-05-26  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch9.adb (Build_Class_Wide_Master): Remember internal blocks
+ 	that have a task master entity declaration.
+ 	(Build_Master_Entity): Code cleanup.
+ 	* sem_util.ads (Is_Internal_Block): New subprogram.
+ 	* sem_util.adb (Is_Internal_Block): New subprogram.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Gather_Components): Remove guard for empty list of
+ 	components.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* back_end.adb (Call_Back_End): Add gigi_standard_address to the
+ 	signature of the gigi procedure and alphabetize other parameters.
+ 	Pass Standard_Address as actual parameter for it.
+ 	* cstand.adb (Create_Standard): Do not set Is_Descendant_Of_Address
+ 	on Standard_Address.
+ 	* gcc-interface/gigi.h (gigi): Add a standard_address parameter and
+ 	alphabetize others.
+ 	* gcc-interface/trans.cc (gigi): Likewise.  Record a builtin address
+ 	type and save it as the type for Standard.Address.
+ 
+ 2023-05-26  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* exp_disp.adb (Expand_Dispatching_Call): Handle new Controlling_Tag.
+ 	* sem_scil.adb (Check_SCIL_Node): Treat N_Object_Renaming_Declaration as
+ 	N_Object_Declaration.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb
+ 	(Build_Constrained_Type): Remove local constants that were shadowing
+ 	equivalent global constants; replace a wrapper that calls
+ 	Make_Integer_Literal with a numeric literal; remove explicit
+ 	Aliased_Present parameter which is equivalent to the default value.
+ 	(Check_Bounds): Remove unused initial value.
+ 	(Expand_Array_Aggregate): Use aggregate type from the context.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Delay_Cleanups): Document new usage.
+ 	* exp_ch7.ads (Build_Finalizer): New declaration.
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not treat
+ 	library-level package instantiations specially.
+ 	(Build_Finalizer): Return early for package bodies and specs that
+ 	are not compilation units instead of using a more convoluted test.
+ 	(Expand_N_Package_Body): Do not build a finalizer if Delay_Cleanups
+ 	is set on the defining entity.
+ 	(Expand_N_Package_Declaration): Likewise.
+ 	* inline.ads (Pending_Body_Info): Reorder and add Fin_Scop.
+ 	(Add_Pending_Instantiation): Add Fin_Scop parameter.
+ 	* inline.adb (Add_Pending_Instantiation): Likewise and copy it into
+ 	the Pending_Body_Info appended to Pending_Instantiations.
+ 	(Add_Scope_To_Clean): Change parameter name to Scop and remove now
+ 	irrelevant processing.
+ 	(Cleanup_Scopes): Deal with scopes that are package specs or bodies.
+ 	(Instantiate_Body): For package instantiations, deal specially with
+ 	scopes that are package bodies and with scopes that are dynamic.
+ 	Pass the resulting scope to Add_Scope_To_Clean directly.
+ 	* sem_ch12.adb (Analyze_Package_Instantiation): In the case where a
+ 	body is needed, compute the enclosing finalization scope and pass it
+ 	in the call to Add_Pending_Instantiation.
+ 	(Inline_Instance_Body): Adjust aggregate passed in the calls to
+ 	Instantiate_Package_Body.
+ 	(Load_Parent_Of_Generic): Likewise.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.adb (Compile_Time_Constraint_Error): Test the Ekind.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Constrained_Type): Use List_Length to count
+ 	expressions in consecutive subaggregates.
+ 
+ 2023-05-26  Doug Rupp  <rupp@adacore.com>
+ 
+ 	* libgnarl/s-osinte__qnx.ads (sigset_t): Modify
+ 	declaration to use system.os_constants computed
+ 	value. Align it.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_sel.adb: Add clauses for Sem_Util, remove them for Opt, Sinfo
+ 	and Sinfo.Nodes.
+ 	(Build_K): Always use 'Tag of the object.
+ 	(Build_S_Assignment): Likewise.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* accessibility.adb
+ 	(Is_Formal_Of_Current_Function): This routine expects an entity
+ 	reference and not the entity itself, so its parameter is a Node_Id
+ 	and not an Entity_Id.
+ 
+ 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb
+ 	(Build_Array_Aggr_Code): Change variable to constant.
+ 	(Check_Same_Aggr_Bounds): Fix style; remove unused initial value.
+ 
+ 2023-05-26  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create extra formals
+ 	in more situations.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.adb (Selected_Range_Checks): Add guards to protect calls
+ 	to Expr_Value on bounds.
+ 
+ 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_eval.ads (Is_Null_Range): Remove requirements of compile-time
+ 	known bounds and add WARNING line.
+ 	(Not_Null_Range): Remove requirements of compile-time known bounds.
+ 	* sem_eval.adb (Is_Null_Range): Fall back to Compile_Time_Compare.
+ 	(Not_Null_Range): Likewise.
+ 	* fe.h (Is_Null_Range): New predicate.
+ 
+ 2023-05-25  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_aggr.adb
+ 	(Warn_On_Null_Component_Association): New subprogram.
+ 	(Empty_Range): Adding missing support for iterated component
+ 	association node.
+ 	(Resolve_Array_Aggregate): Report warning on iterated component
+ 	association that may initialize some component of an array of
+ 	null-excluding access type components with a null value.
+ 	* exp_ch4.adb
+ 	(Expand_N_Expression_With_Actions): Add missing type check since
+ 	the subtype of the EWA node and the subtype of the expression
+ 	may differ.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Determining_Expressions): Fix style; fix layout and
+ 	ordering of pragma names; expect pragma Exceptional_Cases.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* einfo-utils.adb (Write_Entity_Info): Use procedural Next_Index.
+ 	* sem_aggr.adb (Collect_Aggr_Bounds): Reuse local constant.
+ 	(Resolve_Null_Array_Aggregate): Use procedural Next_Index.
+ 
+ 2023-05-25  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Record_Aggr_Code): Protect access to
+ 	aggregate components when the aggregate is empty.
+ 
+ 2023-05-25  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnat/system-vxworks7-ppc-kernel.ads: Enable
+ 	Support_Atomic_Primitives.
+ 	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
+ 
+ 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch3.adb (Find_Type_Of_Object): Copy the object definition when
+ 	building the subtype declaration in the case of a spec expression.
+ 
+ 2023-05-25  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* Make-generated.in (ada/stamp-snames): Check result of
+ 	gnatmake.
+ 
+ 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* cstand.adb (Create_Standard): Set the Is_Descendant_Of_Address
+ 	flag on Standard_Address.
+ 	* freeze.adb (Freeze_Entity): Copy the modulus of System.Address
+ 	onto Standard_Address.
+ 
+ 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/system-aix.ads (Address): Likewise.
+ 	* libgnat/system-darwin-arm.ads (Address): Likewise.
+ 	* libgnat/system-darwin-ppc.ads (Address): Likewise.
+ 	* libgnat/system-darwin-x86.ads (Address): Likewise.
+ 	* libgnat/system-djgpp.ads (Address): Likewise.
+ 	* libgnat/system-dragonfly-x86_64.ads (Address): Likewise.
+ 	* libgnat/system-freebsd.ads (Address): Likewise.
+ 	* libgnat/system-hpux-ia64.ads (Address): Likewise.
+ 	* libgnat/system-hpux.ads (Address): Likewise.
+ 	* libgnat/system-linux-alpha.ads (Address): Likewise.
+ 	* libgnat/system-linux-arm.ads (Address): Likewise.
+ 	* libgnat/system-linux-hppa.ads (Address): Likewise.
+ 	* libgnat/system-linux-ia64.ads (Address): Likewise.
+ 	* libgnat/system-linux-m68k.ads (Address): Likewise.
+ 	* libgnat/system-linux-mips.ads (Address): Likewise.
+ 	* libgnat/system-linux-ppc.ads (Address): Likewise.
+ 	* libgnat/system-linux-riscv.ads (Address): Likewise.
+ 	* libgnat/system-linux-s390.ads (Address): Likewise.
+ 	* libgnat/system-linux-sh4.ads (Address): Likewise.
+ 	* libgnat/system-linux-sparc.ads (Address): Likewise.
+ 	* libgnat/system-linux-x86.ads (Address): Likewise.
+ 	* libgnat/system-lynxos178-ppc.ads (Address): Likewise.
+ 	* libgnat/system-lynxos178-x86.ads (Address): Likewise.
+ 	* libgnat/system-mingw.ads (Address): Likewise.
+ 	* libgnat/system-qnx-arm.ads (Address): Likewise.
+ 	* libgnat/system-rtems.ads (Address): Likewise.
+ 	* libgnat/system-solaris-sparc.ads (Address): Likewise.
+ 	* libgnat/system-solaris-x86.ads (Address): Likewise.
+ 	* libgnat/system-vxworks-ppc-kernel.ads (Address): Likewise.
+ 	* libgnat/system-vxworks-ppc-rtp-smp.ads (Address): Likewise.
+ 	* libgnat/system-vxworks-ppc-rtp.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-aarch64-rtp-smp.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-aarch64.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-arm-rtp-smp.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-arm.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-ppc-kernel.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-ppc-rtp-smp.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-ppc64-kernel.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-ppc64-rtp-smp.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-x86-kernel.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-x86-rtp-smp.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-x86_64-kernel.ads (Address): Likewise.
+ 	* libgnat/system-vxworks7-x86_64-rtp-smp.ads (Address): Likewise.
+ 
+ 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Aspect_At_Freeze_Point): fix format string,
+ 	use existing local Ident.
+ 
+ 2023-05-25  Bob Duff  <duff@adacore.com>
+ 
+ 	* atree.adb (Check_Vanishing_Fields): Fix bug in the "blah type
+ 	only" cases. Remove the special cases for E_Void. Misc cleanup.
+ 	(Mutate_Nkind): Disallow mutating to the same kind.
+ 	(Mutate_Ekind): Disallow mutating to E_Void.
+ 	(From E_Void is still OK -- entities start out as E_Void by
+ 	default.) Fix bug in statistics gathering -- was setting the wrong
+ 	count. Enable Check_Vanishing_Fields for entities.
+ 	* sem_ch8.adb (Is_Self_Hidden): New function.
+ 	(Find_Direct_Name): Call Is_Self_Hidden to use the new
+ 	Is_Not_Self_Hidden flag to determine whether a declaration is
+ 	hidden from all visibility by itself. This replaces the old method
+ 	of checking E_Void.
+ 	(Find_Expanded_Name): Likewise.
+ 	(Find_Selected_Component): Likewise.
+ 	* sem_util.adb (Enter_Name): Remove setting of Ekind to E_Void.
+ 	* sem_ch3.adb: Set the Is_Not_Self_Hidden flag in appropriate
+ 	places. Comment fixes.
+ 	(Inherit_Component): Remove setting of Ekind to E_Void.
+ 	* sem_ch9.adb
+ 	(Analyze_Protected_Type_Declaration): Update comment. Skip Itypes,
+ 	which should not be turned into components.
+ 	* atree.ads (Mutate_Nkind): Document error case.
+ 	(Mutate_Ekind): Remove comments apologizing for E_Void mutations.
+ 	Document error cases.
+ 
+ 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/a-ststio.adb (Set_Mode): Test System.Memory_Size.
+ 	* libgnat/g-debuti.ads (Address_64): Likewise.
+ 	* libgnat/i-c.ads: Add with clause for System.
+ 	(ptrdiff_t): Define based on the size of memory space.
+ 	(size_t): Likewise.
+ 	* libgnat/s-crtl.ads (size_t): Likewise.
+ 	(ssize_t): Likewise.
+ 	* libgnat/s-memory.ads (size_t): Likewise.
+ 	* libgnat/s-parame.ads (Size_Type): Likewise.
+ 	* libgnat/s-parame__hpux.ads (Size_Type): Likewise.
+ 	* libgnat/s-parame__posix2008.ads (Size_Type): Likewise.
+ 	* libgnat/s-parame__vxworks.ads (Size_Type): Likewise.
+ 	* libgnat/s-putima.adb (Signed_Address): Likewise.
+ 	(Unsigned_Address): Likewise.
+ 	* libgnat/s-stoele.ads (Storage_Offset): Likewise.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition
+ 	as when it was incremented.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.ads (New_Copy_Tree): Remove Scopes_In_EWA_OK from spec;
+ 	adapt comment.
+ 	* sem_util.adb (New_Copy_Tree): Remove Scopes_In_EWA_OK from body;
+ 	adapt code.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Update_New_Entities): Remove redundant check for entity
+ 	map being present.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* atree.adb (Copy_List): Call Copy_Separate_Tree for both entities and
+ 	other nodes.
+ 
+ 2023-05-25  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb
+ 	(Cached_Streaming_Ops): A new package, providing maps to save
+ 	previously-generated Read/Write/Input/Output procedures.
+ 	(Expand_N_Attribute_Reference): When a new subprogram is generated
+ 	for a Read/Write/Input/Output attribute reference, record that
+ 	type/subp pair in the appropriate Cached_Streaming_Ops map.
+ 	(Find_Stream_Subprogram): Check the appropriate
+ 	Cached_Streaming_Ops map to see if an appropriate subprogram has
+ 	already been generated. If so, then return it. The appropriateness
+ 	test includes a call to a new nested subprogram,
+ 	In_Available_Context.
+ 	* exp_strm.ads, exp_strm.adb: Do not pass in a Loc parameter (or a
+ 	source-location-bearing Nod parameter) to the 16 procedures
+ 	provided for building streaming-related subprograms. Use the
+ 	source location of the type instead.
+ 	* exp_dist.adb, exp_ch3.adb: Adapt to Exp_Strm spec changes. For
+ 	these calls the source location of the type was already being
+ 	used.
+ 
+ 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Function_Return): Add missing
+ 	Is_Access_Type check before accessing the Designated_Type field.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Return_Type): Remove unused initial value.
+ 
+ 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_One_Aspect): Call Record_Rep_Item.
+ 	(Check_Aspect_At_Freeze_Point): Check the aspect is specified on
+ 	non-array type only...
+ 	(Analyze_One_Aspect): ... instead of doing it too early here.
+ 	* sem_aggr.adb (Resolve_Container_Aggregate): Do nothing in case
+ 	the parameters failed to resolve.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Check_Internal_Protected_Use): Add standard protection
+ 	against search going too far.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* contracts.adb
+ 	(Add_Pre_Post_Condition): Mention new aspects in the comment.
+ 	* contracts.ads
+ 	(Add_Contract_Item): Likewise.
+ 	(Analyze_Subprogram_Body_Stub_Contract): Likewise.
+ 	* sem_prag.adb
+ 	(Contract_Freeze_Error): Likewise.
+ 	(Ensure_Aggregate_Form): Likewise.
+ 	* sem_prag.ads
+ 	(Find_Related_Declaration_Or_Body): Likewise.
+ 	* sinfo.ads
+ 	(Is_Generic_Contract_Pragma): Likewise.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads
+ 	(Implementation_Defined_Aspect): Recently added aspects are
+ 	implementation-defined, just like Contract_Cases.
+ 	* sem_prag.ads
+ 	(Aspect_Specifying_Pragma): Recently added aspects have corresponding
+ 	pragmas, just like Contract_Cases.
+ 	(Pragma_Significant_To_Subprograms): Recently added aspects are
+ 	significant to subprograms, just like Contract_Cases.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Entity_Name): Tune handling of formal parameters
+ 	in contract Exceptional_Cases.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* par-ch7.adb (P_Package): Remove redundant guard from call to
+ 	Move_Aspects.
+ 	* par-ch9.adb (P_Task): Likewise.
+ 	* sem_ch6.adb (Analyze_Expression_Function, Is_Inline_Pragma): Likewise.
+ 
+ 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Use Get_Actual_Subtype
+ 	to retrieve the actual subtype for all actuals and do it in only one
+ 	place for all unconstrained composite formal types.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Fix references to Exceptional_Cases in
+ 	code copied from handling of Subprogram_Variant.
+ 
+ 2023-05-25  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Replace_Type): Add more documentation.
+ 
+ 2023-05-25  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Replace_Type): Use existing constant wherever
+ 	possible.
+ 
+ 2023-05-25  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Replace_Type): Reduce span of variable.
+ 
+ 2023-05-25  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch9.adb (Analyze_Protected_Type_Declaration): Set the flag
+ 	for protected types.
+ 	(Analyze_Single_Protected_Declaration): Likewise, for singleton
+ 	protected objects.
+ 	(Analyze_Task_Type_Declaration): Set the flag for task types.
+ 	(Analyze_Single_Task_Declaration): Likewise, for singleton task
+ 	objects.
+ 	* sem_ch10.adb (Decorate_Type): Set the flag for types treated as
+ 	incomplete.
+ 	(Build_Shadow_Entity): Set the flag for shadow entities.
+ 	(Decorate_State): Set the flag for an abstract state.
+ 	(Build_Limited_Views): Set the flag for limited view of package.
+ 	* sem_attr.adb (Check_Not_Incomplete_Type): Disable the check when
+ 	this is a current instance.
+ 
+ 2023-05-25  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* freeze.adb (Build_DTW_Body): Add appropriate type conversions for
+ 	controlling access parameters.
+ 	* sem_util.adb (Build_Overriding_Spec): Fix designated types in
+ 	controlling access parameters.
+ 
+ 2023-05-25  Bob Duff  <duff@adacore.com>
+ 
+ 	* gen_il-gen-gen_entities.adb (E_Label): Add
+ 	Entry_Cancel_Parameter. This is necessary because
+ 	Analyze_Implicit_Label_Declaration set the Ekind to E_Label.
+ 	Without this change, this field would fail the vanishing-fields
+ 	check in Atree (which is currently commented out).
+ 	* einfo.ads (Entry_Cancel_Parameter): Document for E_Label.
+ 	* sem_eval.adb (Why_Not_Static): Protect against previous errors
+ 	(no need to explain why something is not static if it's already
+ 	illegal for other reasons).
+ 	* sem_util.ads (Enter_Name): Fix misleading comment.
+ 
+ 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Scope_Depth): Fix circular definition.
+ 	(Scope_Depth_Value): Fix value for library units.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch11.adb (Analyze_Raise_Expression): Tune warning condition.
+ 	* libgnat/g-dirope.ads (Open): Remove a potentially inaccurate comment.
+ 	* libgnat/g-dirope.adb (Open): Remove a potentially useless assignment;
+ 	the Dir output parameter should be assigned a null value anyway by the
+ 	preceding call to Free.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Entity_Name): Allow aliased parameters; tune
+ 	error message.
+ 
+ 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_One_Aspect): Mark Aggregate aspect as
+ 	needing delayed resolution and reject the aspect on non-array
+ 	type.
+ 
+ 2023-05-25  Bob Duff  <duff@adacore.com>
+ 
+ 	* sinfo-utils.adb: Update comment to refer to
+ 	New_Node_Debugging_Output.
+ 
+ 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* rtsfind.adb (Load_RTU.Restore_SPARK_Context): New.
+ 	(Load_RTU): Use Restore_SPARK_Context on all exit paths.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Initialize local
+ 	variable to Empty.
+ 
+ 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb
+ 	(Analyze_Attribute_Old_Result): Allow uses of 'Old and 'Result within
+ 	the new aspect.
+ 	* sem_res.adb
+ 	(Within_Exceptional_Cases_Consequence): New utility routine.
+ 	(Resolve_Entity_Name): Restrict use of formal parameters within the
+ 	new aspect.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads
+ 	(Aspect_Id): Add aspect identifier.
+ 	(Aspect_Argument): New aspect accepts an expression.
+ 	(Is_Representation_Aspect): New aspect is not a representation
+ 	aspect.
+ 	(Aspect_Names): Associate name with the new aspect identifier.
+ 	(Aspect_Delay): New aspect is never delayed.
+ 	* contracts.adb
+ 	(Add_Contract_Item): Store new aspect among contract items.
+ 	(Analyze_Entry_Or_Subprogram_Contract): Likewise.
+ 	(Analyze_Subprogram_Body_Stub_Contract): Likewise.
+ 	(Process_Contract_Cases): Expand new aspect, if present.
+ 	* contracts.ads
+ 	(Analyze_Entry_Or_Subprogram_Body_Contract): Mention new aspect in
+ 	spec.
+ 	(Analyze_Entry_Or_Subprogram_Contract): Likewise.
+ 	* einfo-utils.adb
+ 	(Get_Pragma): Allow new aspect to be picked by the backend.
+ 	* einfo-utils.ads
+ 	(Get_Pragma): Mention new aspect in spec.
+ 	* exp_prag.adb
+ 	(Expand_Pragma_Exceptional_Cases): Dummy expansion routine.
+ 	* exp_prag.ads
+ 	(Expand_Pragma_Exceptional_Cases): Add spec for expansion routine.
+ 	* inline.adb
+ 	(Remove_Aspects_And_Pragmas): Remove aspect from bodies to inline.
+ 	* par-prag.adb
+ 	(Par.Prag): Accept pragma in the parser, so it will be checked
+ 	later.
+ 	* sem_ch12.adb
+ 	(Implementation of Generic Contracts): Mention new aspect in
+ 	comment.
+ 	* sem_ch13.adb
+ 	(Analyze_Aspect_Specifications): Transform new aspect info a
+ 	corresponding pragma.
+ 	* sem_prag.adb
+ 	(Analyze_Exceptional_Cases_In_Decl_Part): Analyze aspect
+ 	expression; heavily inspired by the existing code for analysis of
+ 	Subprogram_Variant and exception handlers.
+ 	(Analyze_Pragma): Analyze pragma corresponding to the new aspect.
+ 	(Is_Non_Significant_Pragma_Reference): Add new pragma to the
+ 	table.
+ 	* sem_prag.ads
+ 	(Assertion_Expression_Pragma): New pragma acts as an assertion
+ 	expression, even though it is not currently expanded.
+ 	(Analyze_Exceptional_Cases_In_Decl_Part): Add spec.
+ 	* sem_util.adb
+ 	(Is_Subprogram_Contract_Annotation): Mark new annotation is a
+ 	subprogram contract, so the subprogram with it won't be inlined.
+ 	* sem_util.ads
+ 	(Is_Subprogram_Contract_Annotation): Mention new aspect in
+ 	comment.
+ 	* sinfo.ads
+ 	(Contract_Test_Cases): Mention new aspect in comment.
+ 	* snames.ads-tmpl: Add entries for the new name and pragma.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Build_Predicate_Functions): If the current scope
+ 	is not that of the type, push this scope and pop it at the end.
+ 	* sem_util.ads (Current_Scope_No_Loops_No_Blocks): Delete.
+ 	* sem_util.adb (Current_Scope_No_Loops_No_Blocks): Likewise.
+ 	(Set_Public_Status): Call again Current_Scope.
+ 
+ 2023-05-23  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch6.adb (Might_Have_Tasks): Remove unneeded Etype call from
+ 	call to Is_Limited_Record, since that flag is now properly
+ 	inherited by class-wide types.
+ 	* sem_ch3.adb (Analyze_Private_Extension_Declaration): Remove call
+ 	to Make_Class_Wide_Type, which is done too early, and will later
+ 	be done in Build_Derived_Record_Type after flags such as
+ 	Is_Limited_Record and Is_Controlled_Active have been set on the
+ 	derived type.
+ 
+ 2023-05-23  Patrick Bernardi  <bernardi@adacore.com>
+ 
+ 	* libgnat/s-stchop.adb (Stack_Check): Remove redundant parentheses.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Record_Type): Add tag for redundant pragma Pack.
+ 	* sem_aggr.adb (Resolve_Record_Aggregate): Add tag for redundant OTHERS
+ 	choice.
+ 	* sem_ch8.adb (Use_One_Type): Add tag for redundant USE clauses.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch11.adb
+ 	(Check_Duplication): Fix inconsistent iteration.
+ 	(Others_Present): Iterate over handlers using First_Non_Pragma and
+ 	Next_Non_Pragma just like in Check_Duplication.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Delay_Subprogram_Descriptors): Delete.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove
+ 	Delay_Subprogram_Descriptors.
+ 	* gen_il-gen-gen_entities.adb (Gen_Entities): Likewise.
+ 	* gen_il-gen-gen_nodes.adb (N_Entry_Body): Add Corresponding_Spec.
+ 	* sinfo.ads (Corresponding_Spec): Document new use.
+ 	(N_Entry_Body): Likewise.
+ 	* exp_ch6.adb (Expand_Protected_Object_Reference): Be prepared for
+ 	protected subprograms that have been expanded.
+ 	* exp_ch7.adb (Expand_Cleanup_Actions): Remove unreachable code.
+ 	* exp_ch9.adb (Build_Protected_Entry): Add a local variable for the
+ 	new block and propagate Uses_Sec_Stack from the corresponding spec.
+ 	(Expand_N_Protected_Body) <N_Subprogram_Body>: Unconditionally reset
+ 	the scopes of top-level entities in the new body.
+ 	* inline.adb (Cleanup_Scopes): Do not adjust the scope on the fly.
+ 	* sem_ch9.adb (Analyze_Entry_Body): Set Corresponding_Spec.
+ 	* sem_ch12.adb (Analyze_Package_Instantiation): Remove obsolete code
+ 	setting Delay_Subprogram_Descriptors and tidy up.
+ 	* sem_util.adb (Scope_Within): Deal with protected subprograms that
+ 	have been expanded.
+ 	(Scope_Within_Or_Same): Likewise.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnarl/s-taskin.ads (Atomic_Address): Delete.
+ 	(Attribute_Array): Add pragma Atomic_Components.
+ 	(Ada_Task_Control_Block): Adjust default value of Attributes.
+ 	* libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local
+ 	variable.
+ 	* libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter.
+ 	(To_Attribute): Adjust source type.
+ 	* libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements.
+ 	(New_Attribute): Adjust return type.
+ 	(Deallocate): Adjust type of parameter.
+ 	(To_Real_Attribute): Adjust source type.
+ 	(To_Address): Add target type.
+ 	(To_Attribute): Adjust source type.
+ 	(Fast_Path): Adjust tested type.
+ 	(Finalize): Compare with Null_Address.
+ 	(Reference): Likewise.
+ 	(Reinitialize): Likewise.
+ 	(Set_Value): Likewise.  Add conversion to Integer_Address.
+ 	(Value): Likewise.
+ 
+ 2023-05-23  Raphael Amiard  <amiard@adacore.com>
+ 
+ 	* scng.adb (Scan): Replace occurrences of All_Extensions_Allowed
+ 	by Core_Extensions_Allowed.
+ 
+ 2023-05-23  Claire Dross  <dross@adacore.com>
+ 
+ 	* libgnat/s-valueu.adb (Scan_Raw_Unsigned): Use new helpers.
+ 	* libgnat/s-vauspe.ads (Raw_Unsigned_Starts_As_Based_Ghost,
+ 	Raw_Unsigned_Is_Based_Ghost): New ghost helper functions.
+ 	(Is_Raw_Unsigned_Format_Ghost, Scan_Split_No_Overflow_Ghost,
+ 	Scan_Split_Value_Ghost, Raw_Unsigned_Last_Ghost): Use new
+ 	helpers.
+ 
+ 2023-05-23  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* par-ch5.adb, style.ads, styleg.adb, styleg.ads
+ 	(Check_Xtra_Parens): Remove extra parameter Enable.
+ 	(Check_Xtra_Parens_Precedence): New.
+ 	(P_Case_Statement): Add -gnatyx style check.
+ 	* sem_ch4.adb: Replace calls to Check_Xtra_Parens by
+ 	Check_Xtra_Parens_Precedence.
+ 	* stylesw.ads, stylesw.adb, usage.adb: Add support for
+ 	-gnatyz.
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ 	Update -gnatyxzg doc.
+ 	* sem_prag.adb, libgnat/s-regpat.adb,
+ 	libgnarl/s-interr__hwint.adb, libgnarl/s-interr__vxworks.adb:
+ 	Remove extra parens.
+ 	* par-ch3.adb (P_Discrete_Range): Do not emit a style check if
+ 	the expression is not a simple expression.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-dwalin.adb (Enable_Cache): Use the subtract operator of
+ 	System.Storage_Elements to compute the offset.
+ 	(Symbolic_Address): Likewise.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Intrinsic_Operator): Always perform the same
+ 	resolution for the special mod operator of System.Storage_Elements.
+ 
+ 2023-05-23  Raphael Amiard  <amiard@adacore.com>
+ 
+ 	* doc/gnat_rm.rst, doc/gnat_rm/gnat_language_extensions.rst,
+ 	doc/gnat_rm/implementation_defined_pragmas.rst:
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special
+ 	operator of System.Storage_Elements.  Do not rewrite it into a rem.
+ 	* sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the
+ 	left operand for the special mod operator of System.Storage_Elements
+ 
+ 2023-05-23  Vadim Godunko  <godunko@adacore.com>
+ 
+ 	* libgnat/a-coinho__shared.adb (Constant_Reference): Remove call
+ 	of Detach
+ 	(Query_Element): Likewise.
+ 
+ 2023-05-23  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_disp.adb: Fix reference to Ada issue in comment.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_disp.adb (Expand_Dispatching_Call): In the abstract interface
+ 	class-wide case, use 'Tag of the object as the controlling tag.
+ 	(Expand_Interface_Thunk): Perform address arithmetic using operators
+ 	of System.Storage_Elements.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements.
+ 	(Addr): Delete.
+ 	(Offset): New subtype of Storage_Offset.
+ 	(To_Offset): New instance of Unchecked_Conversion.
+ 	(To_Pointer): Adjust.
+ 	(To_Addr): Likewise.
+ 	(To_Ptrdiff): Likewise.
+ 	("+"): Call To_Offset on the offset.
+ 	("-"): Likewise.
+ 	* libgnat/s-bituti.adb: Add clauses for System.Storage_Elements.
+ 	(Val_Bytes): Change type to Storage_Count.
+ 	(Get_Val_2): Add qualification to second operand of mod operator.
+ 	(Set_Val_2): Likewise.
+ 	(Copy_Bitfield): Likewise.  Change type of Src_Adjust & Dest_Adjust.
+ 	* libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address.
+ 	* libgnat/s-statxd.adb (I_AD): Adjust.
+ 	(I_AS): Likewise.
+ 	(W_AS): Likewise.
+ 
+ 2023-05-23  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb
+ 	(Is_Variable): Correctly return False for a selected component
+ 	name of the form Some_Object.Some_Discriminant, even if
+ 	Some_Object is a variable. We don't want to allow such a name as
+ 	an actual parameter in a call if the corresponding formal
+ 	parameter's mode is not "in".
+ 
+ 2023-05-23  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_util.adb (Check_Node): Add default init on local Id.
+ 
+ 2023-05-23  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/i-c.adb (To_Ada): Add loop invariant.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod
+ 	operator of System.Storage_Elements.
+ 	* exp_intr.adb (Expand_To_Integer): New procedure.
+ 	(Expand_Intrinsic_Call): Call Expand_To_Integer appropriately.
+ 	(Expand_To_Address): Deal with an argument with modular type.
+ 	* sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic
+ 	on a derived intrinsic subprogram.
+ 	* sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic
+ 	operators not coming from source exactly as those coming from
+ 	source and also generate a reference in both cases.
+ 	(Resolve_Op_Expon): Likewise.
+ 	(Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get
+ 	a nonprivate base type.
+ 	* snames.ads-tmpl (Name_To_Integer): New intrinsic name.
+ 	* libgnat/s-stoele.ads: Replace pragma Convention with pragma
+ 	Import throughout and remove pragma Inline_Always and
+ 	Pure_Function.
+ 	* libgnat/s-stoele.adb: Replace entire contents with pragma
+ 	No_Body.
+ 	* libgnat/s-atacco.adb: Adjust comment about pragma No_Body.
+ 
+ 2023-05-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
+ 	call to preanalyze class-wide conditions since here it is too
+ 	early; they must be preanalyzed when full views of private types
+ 	have been analyzed.
+ 	* sem_ch7.adb (Analyze_Package_Specification): Preanalyze
+ 	class-wide conditions of dispatching primitives defined in nested
+ 	packages.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1"
+ 	statement into a subprogram; replace assertions with defensive code;
+ 	fix few more off-by-one errors.
+ 
+ 2023-05-23  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* einfo.ads: Mention full name of LSP.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* errout.adb (Last_Sloc): Rewrite skipping past numeric literals.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the
+ 	commentary to the current implementation.
+ 	* sem_util.ads (Current_Scope_No_Loops): Move around.
+ 	(Current_Scope_No_Loops_No_Blocks): New declaration.
+ 	(Add_Block_Identifier): Fix formatting.
+ 	* sem_util.adb (Add_Block_Identifier): Likewise.
+ 	(Current_Scope_No_Loops_No_Blocks): New function.
+ 	(Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead
+ 	of Current_Scope to get the current scope.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not
+ 	manually generate a predicate check.  Call Unqualify before doing
+ 	pattern matching on the expression.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual
+ 	subtype when it is built in the definite case.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnarl/s-interr.adb
+ 	(Registered_Handler): Remove default expression.
+ 	(Registered_Handlers): Switch to singly-linked list.
+ 	(Bind_Interrupt_To_Entry): Sync whitespace with other unit variants.
+ 	(Is_Registered): Use singly-linked list.
+ 	(Register_Interrupt_Handler): Use singly-linked list and initialized
+ 	allocator; sync assertion with other unit variants.
+ 	* libgnarl/s-interr__sigaction.adb: Likewise.
+ 	* libgnarl/s-interr__vxworks.adb: Likewise.
+ 	* libgnarl/s-interr__hwint.adb: Likewise.
+ 	(Is_Registered): Remove repeated declaration.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* pprint.adb (Expression_Image): Restore some of the old pretty-printing
+ 	for CodePeer.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* errout.adb (First_And_Last_Nodes): Ignore accessibility parameters.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* pprint.adb (Expression_Image): Move Count_Parentheses and
+ 	Fix_Parentheses routines from GNATprove and apply them before
+ 	returning the slice of a source code buffer.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* errout.adb
+ 	(Paren_Required): New subsidiary routine for better handling of
+ 	parentheses in First_Node/Last_Node.
+ 	(First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly
+ 	handle generic instances and inlined subprograms; tune handling of
+ 	parentheses; improve handling of literals.
+ 	* pprint.adb (Expression_Image): Simplify using
+ 	First_Sloc/Last_Sloc.
+ 	* sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis
+ 	when relocating expression from expression function to simple
+ 	return statement.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of
+ 	subprogram variants.
+ 
+ 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* frontend.adb (Frontend): Merge two conditional blocks and adjust.
+ 
+ 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment.
+ 
+ 2023-05-23  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch7.adb: Remove duplicate comment.
+ 
+ 2023-05-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch10.adb
+ 	(Analyze_Required_Limited_With_Units): New subprogram.
+ 	(Depends_On_Limited_Views): New subprogram.
+ 	(Has_Limited_With_Clauses): New subprogram.
+ 	(Analyze_Compilation_Unit): Call the new subprogram that performs
+ 	the full analysis of required limited-with units.
+ 
+ 2023-05-22  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* cstand.adb: Use more idiomatic procedure.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* errout.adb (First_Loc): Avoid repeated calls.
+ 	(Last_Loc): Likewise.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack
+ 	flag from original to rewritten protected subprograms here...
+ 	* exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>:
+ 	...but here instead. Add local variables and remove a useless
+ 	test.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get
+ 	the entity of the body.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the
+ 	attribute reference, not of the loop statement.
+ 
+ 2023-05-22  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* par-ch3.adb: Add missing word in comment.
+ 
+ 2023-05-22  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* checks.adb (Install_Null_Excluding_Check): Avoid non-null
+ 	optimizations when assertions are enabled.
+ 
+ 2023-05-22  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag
+ 	for the copy of the initialization expression.
+ 	* sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip
+ 	error emission during Pre_Analyze.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Process_Package_Body): New procedure taken from...
+ 	(Build_Finalizer.Process_Declarations): ...here.  Call the above
+ 	procedure to deal with both package bodies and package body stubs.
+ 
+ 2023-05-22  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.ads: Remove outdated part of comment.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Build_Finalizer): Reverse the test comparing the
+ 	instantiation and declaration nodes of a package instance, and
+ 	therefore bail out only when they are equal.  Adjust comments.
+ 	(Expand_N_Package_Declaration): Do not clear the Finalizer field.
+ 	* lib-writ.adb: Add with and use clauses for Sem_Util.
+ 	(Write_Unit_Information): Look at unit nodes to find finalizers.
+ 	* sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment
+ 	about the rewriting of the instantiation node into a declaration.
+ 
+ 2023-05-22  Bob Duff  <duff@adacore.com>
+ 
+ 	* cstand.adb (Is_Past_Self_Hiding_Point): Rename to be
+ 	Is_Not_Self_Hidden.
+ 	* einfo.ads: Likewise.
+ 	* exp_aggr.adb: Likewise.
+ 	* gen_il-fields.ads: Likewise.
+ 	* gen_il-gen-gen_entities.adb: Likewise.
+ 	* sem.adb: Likewise.
+ 	* sem_aggr.adb: Likewise.
+ 	* sem_ch11.adb: Likewise.
+ 	* sem_ch12.adb: Likewise.
+ 	* sem_ch5.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	* sem_ch7.adb: Likewise.
+ 	* sem_prag.adb: Likewise.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body
+ 	as the expanded body of an expression function.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* pprint.adb (Expression_Image): Handle several previously unsupported
+ 	constructs.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Entity_Name): Combine two IF statements that
+ 	execute code only for references that come from source.
+ 
+ 2023-05-22  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo.ads (Is_Past_Self_Hiding_Point): Document.
+ 	* gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of
+ 	fields.
+ 	* gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare
+ 	in all entities.
+ 	* exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate.
+ 	* sem.adb: Likewise.
+ 	* sem_aggr.adb: Likewise.
+ 	* sem_ch11.adb: Likewise.
+ 	* sem_ch12.adb: Likewise.
+ 	* sem_ch5.adb: Likewise.
+ 	* sem_ch7.adb: Likewise.
+ 	* sem_prag.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	(Set_Formal_Mode): Minor cleanup: Move from spec.
+ 	* sem_ch6.ads:
+ 	(Set_Formal_Mode): Minor cleanup: Move to body.
+ 	* cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities
+ 	as soon as they are created.
+ 	* comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead
+ 	of 'or else'.
+ 	* debug.adb: Minor comment cleanups.
+ 
+ 2023-05-22  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
+ 	Accept an executable pragma occuring in a declare expression as
+ 	per AI22-0045. This means Assert and Inspection_Point pragmas as
+ 	well as any implementation-defined pragmas that the implementation
+ 	chooses to categorize as executable. Currently Assume and Debug
+ 	are the only such pragmas.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb
+ 	(Check_Postcondition_Use_In_Inlined_Subprogram): Mention
+ 	Subprogram_Variant in the comment.
+ 	(Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is
+ 	ignored because of pragma Inline_Always and frontend inlining.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only
+ 	emit warning when frontend inlining is enabled.
+ 
+ 2023-05-22  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op,
+ 	Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses.
+ 	* par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses.
+ 	* style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic
+ 	related to expressions requiring parentheses here.
+ 
+ 2023-05-22  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb,
+ 	checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb,
+ 	libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb,
+ 	libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb,
+ 	libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb,
+ 	libgnat/a-strmap.adb, libgnat/g-alleve.adb,
+ 	libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb,
+ 	libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb,
+ 	par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
+ 	sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb,
+ 	exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb,
+ 	exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb,
+ 	sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb,
+ 	sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb,
+ 	sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb,
+ 	binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb,
+ 	gprep.adb, sem_ch11.adb: Remove extra parentheses.
+ 
+ 2023-05-22  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* sem_aggr.adb (Get_Value): Use ?? instead of ?.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_aggr.adb (Aggregate_Size): Remove redundant calls to
+ 	Present.
+ 	* exp_ch5.adb (Expand_N_If_Statement): Likewise.
+ 	* sem_prag.adb (Analyze_Pragma): Likewise.
+ 	* sem_warn.adb (Find_Var): Likewise.
+ 
+ 2023-05-22  Claire Dross  <dross@adacore.com>
+ 
+ 	* sem_util.adb (Find_Actual): On calls through dereferences,
+ 	return the corresponding formal in the designated subprogram
+ 	profile.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec.
+ 	* sem_util.adb (Is_Actual_Tagged_Parameter): Remove body.
+ 
+ 2023-05-22  Joffrey Huguet  <huguet@adacore.com>
+ 
+ 	* libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads
+ 	(To_Unbounded_String): Add postcondition. Add aspect SPARK_Mode
+ 	Off on the version that takes a Natural as parameter.
+ 	(To_String): Complete postcondition.
+ 	(Set_Unbounded_String): Add postcondition.
+ 	(Element): Likewise.
+ 	("="): Likewise.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Freeze_Type): Do not associate the Finalize_Address
+ 	routine for a class-wide type if restriction No_Dispatching_Calls
+ 	is in effect.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-genbig.ads (From_Bignum): New overloaded declarations.
+ 	* libgnat/s-genbig.adb (LLLI): New subtype.
+ 	(LLLI_Is_128): New boolean constant.
+ 	(From_Bignum): Change the return type of the signed implementation
+ 	to Long_Long_Long_Integer and add support for the case where its
+ 	size is 128 bits.  Add a wrapper around it for Long_Long_Integer.
+ 	Add an unsigned implementation returning Unsigned_128 and a wrapper
+ 	around it for Unsigned_64.
+ 	(To_Bignum): Test LLLI_Is_128 instead of its size.
+ 	(To_String.Image): Add qualification to calls to From_Bignum.
+ 	* libgnat/a-nbnbin.adb (To_Big_Integer): Likewise.
+ 	(Signed_Conversions.From_Big_Integer): Likewise.
+ 	(Unsigned_Conversions): Likewise.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec
+ 	to copy the spec from the subprogram to the generated subprogram
+ 	body.
+ 	(Freeze_Entity): Do not wrap imported subprograms inside generics.
+ 
+ 2023-05-22  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
+ 	If Comes_From_Source (A) is False, then look at Original_Node (A)
+ 	instead of A. In particular, if an (illegal) expression function
+ 	is transformed into a "vanilla" function, we don't want to allow
+ 	it just because Comes_From_Source is now False.
+ 
+ 2023-05-22  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): In Check_No_Return, call
+ 	Error_Msg_Ada_2022_Feature in the case of a function. Remove code
+ 	outside of Check_No_Return that was querying Ada_Version.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): Do
+ 	not look into nested blocks.
+ 
+ 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch3.adb (Find_Type_Of_Object): In a spec expression, also set
+ 	the Scope of the type, and call Constrain_Array for array subtypes.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* pprint.adb (Expression_Image): Reduce scope of local variables; inline
+ 	local uncommented constant From_Source; concatenate string with a single
+ 	character, as it is likely to execute faster; add missing cases to
+ 	traversal for the rightmost node and assertion to demonstrate that the
+ 	??? comment is no longer relevant.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* pprint.adb (Expr_Name): Qualify CASE expression with N_Subexpr; add
+ 	missing alternative for N_Raise_Storage_Error; remove dead alternatives;
+ 	explicitly list unsupported alternatives.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* pprint.adb (Expr_Name): Exclude DEL from printable range.
+ 
+ 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.ads (New_Copy_Tree): Update comment.
+ 	* sem_util.adb (New_Copy_Tree): Update Controlling_Argument, very
+ 	much like we update the First/Next_Named_Association.
+ 
+ 2023-05-22  Bob Duff  <duff@adacore.com>
+ 
+ 	* fe.h: Remove Ada_With_Extensions and add commentary.
+ 	* opt.ads: Rearrange code and add commentary.
+ 
+ 2023-05-22  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_util.adb (Process_Type): Stop the recursion.
+ 	* exp_aggr.adb (Build_Record_Aggr_Code): Add assertion.
+ 
+ 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Use _P defines
+ 	from tree.h.
+ 	(constructor_address_p): Ditto.
+ 	(elaborate_expression_1): Ditto.
+ 	* gcc-interface/trans.cc (Identifier_to_gnu): Ditto.
+ 	(is_nrv_p): Ditto.
+ 	(Subprogram_Body_to_gnu): Ditto.
+ 	(gnat_to_gnu): Ditto.
+ 	(gnat_to_gnu_external): Ditto.
+ 	(add_decl_expr): Ditto.
+ 	(gnat_gimplify_expr): Ditto.
+ 	* gcc-interface/utils.cc (create_var_decl): Ditto.
+ 	* gcc-interface/utils2.cc (get_base_type): Ditto.
+ 	(build_binary_op): Ditto.
+ 	(build_unary_op): Ditto.
+ 	(gnat_protect_expr): Ditto.
+ 	(gnat_invariant_expr): Ditto.
+ 
+ 2023-05-16  Steve Baird  <baird@adacore.com>
+ 
+ 	* usage.adb: Generate output text describing the -gnatw_s switch
+ 	(and the corresponding -gnatw_S switch).
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>:
+ 	Use the canonical accumulator type as the type of the accumulator
+ 	in the prefixed case.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Array_Aggregate): Do not set Warnings_Off on
+ 	the temporary created when in-place expansion is not possible.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Expression): When the freezing is to be done
+ 	outside the current scope, skip any scope that is an internal loop.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_imgv.adb (Rewrite_Object_Image): If the prefix is a component
+ 	that depends on a discriminant, create an actual subtype for it.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb: Add with and use clauses for Expander.
+ 	(Resolve_Aspect_Expressions) <Aspect_Predicate>: Emulate a
+ 	bona-fide preanalysis setup before calling
+ 	Resolve_Aspect_Expression.
+ 
+ 2023-05-16  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb (Lemma_Div_Pow2): Add assertion.
+ 	* libgnat/s-arit32.adb (Lemma_Abs_Div_Commutation): Simplify.
+ 	* libgnat/s-expmod.adb (Lemma_Exp_Mod): Add assertions.
+ 	(Lemma_Euclidean_Mod): Add body to lemma.
+ 	(Lemma_Mult_Mod): Add assertion.
+ 	* libgnat/s-valueu.adb (Scan_Raw_Unsigned): Modify assertion.
+ 	* libgnat/s-vauspe.ads (Raw_Unsigned_Last_Ghost): Add
+ 	postcondition.
+ 	* libgnat/s-widthi.adb: Use more precise types.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Has_Applicable_User_Defined_Literal): Apply the
+ 	same processing for derived untagged types as for tagged types.
+ 	* sem_util.ads (Corresponding_Primitive_Op): Adjust description.
+ 	* sem_util.adb (Corresponding_Primitive_Op): Handle untagged
+ 	types.
+ 
+ 2023-05-16  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_attr.adb
+ 	(Analyze_Attribute_Old_Result): When preanalyzing a class-wide
+ 	condition, search in the scopes stack for the subprogram that has
+ 	the condition. This is required because returning the current
+ 	scope causes reporting spurious errors when the occurrence of the
+ 	attribute is found, for example, in a quantified expression.
+ 
+ 2023-05-16  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch6.adb
+ 	(Needs_BIP_Alloc_Form): Return False for functions with foreign
+ 	convention since we never use build-in-place for such functions.
+ 
+ 2023-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Aggregate_Constraint_Checks): Don't exit early
+ 	when preanalysing in GNATprove mode. Now the condition is
+ 	consistent with other similar conditions in other code.
+ 
+ 2023-05-16  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* usage.adb (Usage): Document -gnatyD.
+ 
+ 2023-05-16  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* libgnat/s-tsmona__linux.adb (link_map, r_debug_type): Add
+ 	'aliased' on all components.
+ 
+ 2023-05-16  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnat/system-linux-ppc.ads: Add Support_Atomic_Primitives.
+ 	* libgnat/s-atopri__32.ads: Add 32 bit version of s-atopri.ads.
+ 	* Makefile.rtl: Use s-atopro__32.ads for ppc-linux.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.adb (Get_Actual_Subtype): For an explicit dereference,
+ 	return the Actual_Designated_Subtype if it is present.
+ 	(Get_Actual_Subtype_If_Available): Likewise.
+ 
+ 2023-05-16  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* errout.ads: Update comment.
+ 	* errout.adb (Skip_Msg_Insertion_Warning): Update to take e.g.
+ 	-gnatyM into account.
+ 	* erroutc.adb (Get_Warning_Option, Get_Warning_Tag)
+ 	(Prescan_Message): Add support for Style tags.
+ 	* par-ch5.adb, par-ch6.adb, par-ch7.adb, par-endh.adb,
+ 	par-util.adb, style.adb, styleg.adb: Set tag on all style
+ 	messages.
+ 
+ 2023-05-16  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
+ 	(Switches_for_gnatbind): Fix typo.
+ 	* libgnat/g-spipat.ads: Fix typo.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Assignment_With_Temporary): Adjust comment
+ 	and fix type of second parameter. Create the temporary on the
+ 	secondary stack by calling Build_Temporary_On_Secondary_Stack.
+ 	(Convert_Array_Aggr_In_Allocator): Adjust formatting.
+ 	(Expand_Array_Aggregate): Likewise.
+ 	* exp_ch4.adb (Expand_N_Allocator): Set Actual_Designated_Subtype
+ 	on the dereference in the initialization for all composite types.
+ 	* exp_ch5.adb (Expand_N_Assignment_Statement): Create a temporary
+ 	on the host for an assignment between nonnative storage models.
+ 	Suppress more checks when Suppress_Assignment_Checks is set.
+ 	* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Deal with actuals
+ 	that are dereferences with an Actual_Designated_Subtype. Add
+ 	support for nonnative storage models.
+ 	(Expand_Actuals): Create a copy if the actual is a dereference
+ 	with a nonnative storage model.
+ 	* exp_util.ads (Build_Temporary_On_Secondary_Stack): Declare.
+ 	* exp_util.adb (Build_Temporary_On_Secondary_Stack): New function.
+ 	* sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Do not
+ 	build an actual subtype for dereferences with an
+ 	Actual_Designated_Subtype
+ 	* sinfo.ads (Actual_Designated_Subtype): Adjust documentation.
+ 	(Suppress_Assignment_Checks): Likewise.
+ 
+ 2023-05-16  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_spark.adb (SPARK_Freeze_Type): Copy whole handling of DIC
+ 	and Type_Invariant from Freeze_Type.
+ 
+ 2023-05-16  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* sem_util.adb (Subprogram_Name): If what's passed is already an
+ 	entity, use that for the name.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
+ 	(No_Dependence): Give examples of new No_Dependence restrictions.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2023-05-16  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* snames.ads-tmpl (Name_ASCII): New.
+ 	* style.adb (Check_Identifier): Fix handling of ASCII.
+ 
+ 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat.
+ 	* gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as
+ 	semantical flag and change Includes_Infinities to semantical.
+ 	* sinfo.ads (Cannot_Be_Superflat): Document it for N_Range.
+ 	* exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the
+ 	range of the result if the result cannot be null.
+ 
+ 2023-05-16  Richard Kenner  <kenner@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb (Present_Expr): Type is now Uint.
+ 
+ 2023-05-16  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb (Big3, Is_Mult_Decomposition)
+ 	(Is_Scaled_Mult_Decomposition): Add annotation for inlining.
+ 	(Double_Divide, Scaled_Divide): Simplify and remove ghost code.
+ 	(Prove_Multiplication): Add calls to lemmas to make proof go
+ 	through.
+ 	* libgnat/s-aridou.ads (Big, In_Double_Int_Range): Add annotation
+ 	for inlining.
+ 
+ 2023-05-16  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strsup.adb: Add intermediate assertions.
+ 
+ 2023-05-16  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* gnat1drv.adb: Ensure all dependencies are recorded even when not
+ 	generating code.
+ 
+ 2023-05-16  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strsup.adb: Set assertion policy for Loop_Variant.
+ 
+ 2023-05-16  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_ch12.adb (Instantiate_Package_Body): Simplify if/then/else.
+ 	(Instantiate_Subprogram_Body): Likewise.
+ 
+ 2023-05-16  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb:
+ 	(Big3): Remove override made useless.
+ 	(Lemma_Quot_Rem): Add new lemma and justify it, as no prover
+ 	manages to prove it.
+ 	(Lemma_Div_Pow2): Use new lemma Lemma_Quot_Rem.
+ 	(Prove_Scaled_Mult_Decomposition_Regroup3): Retype for
+ 	simplification.
+ 	(Scaled_Divide): Remove useless assertions.Decompose some
+ 	assertions with cut operations. Use Assert_And_Cut for second
+ 	half. Add assertions.
+ 
+ 2023-05-15  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
+ 
+ 2023-05-15  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strbou.ads: Add justifications for Mapping.
+ 	* libgnat/a-strfix.adb: Same.
+ 	* libgnat/a-strfix.ads: Same.
+ 	* libgnat/a-strsea.adb: Same.
+ 	* libgnat/a-strsea.ads: Same.
+ 	* libgnat/a-strsup.adb: Same and add loop variants.
+ 	* libgnat/a-strsup.ads: Same and add specification of termination.
+ 
+ 2023-05-15  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/a-strsup.adb (Super_Slice): Reorder component assignment
+ 	to avoid failing predicate check related to initialization.
+ 	* libgnat/s-expmod.adb (Exp_Modular): Add intermediate assertion.
+ 
+ 2023-05-15  Yannick Moy  <moy@adacore.com>
+ 
+ 	* libgnat/i-c.adb: Add loop variants. Remove useless
+ 	initialization.
+ 
+ 2023-05-15  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo-utils.ads: Remove comment.
+ 
+ 2023-05-15  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo-utils.ads, einfo-utils.adb: Get rid of the Proc_Next_...
+ 	procedures. Use Inline aspect instead of pragma Inline.
+ 	Is_Discrete_Or_Fixed_Point_Type did not have pragma Inline, but
+ 	now has the aspect; this was probably an oversight
+ 	(which illustrates why aspects are better).
+ 
+ 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_utility_programs.rst: Fix formatting
+ 	inconsistency.
+ 
+ 2023-05-15  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo-utils.adb:
+ 	(Proc_Next_Component_Or_Discriminant): Call
+ 	Next_Component_Or_Discriminant.
+ 
+ 2023-05-15  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo.ads:
+ 	(First_Entity): Update comment explaining why this exists on all
+ 	[sub]types, as opposed to just the ones with associated entities.
+ 
+ 2023-05-15  Bob Duff  <duff@adacore.com>
+ 
+ 	* atree.adb
+ 	(Check_Vanishing_Fields): Disable the check for "root/base type
+ 	only" fields. This is a bug fix -- if we're checking some subtype
+ 	S, we don't want to reach over to the root or base type and
+ 	Reinit_Field_To_Zero of that, thus modifying the field for lots of
+ 	subtypes other than S. Disable in the to/from E_Void cases. Misc
+ 	cleanup.
+ 	* gen_il-gen-gen_entities.adb: Define First_Entity, Last_Entity,
+ 	and Stored_Constraint for all type entities, because there are too
+ 	many cases where Reinit_Field_To_Zero would otherwise be needed.
+ 	In any case, it seems cleaner to have First_Entity and Last_Entity
+ 	defined in the same entity kinds.
+ 	* einfo.ads:
+ 	(First_Entity, Last_Entity, Stored_Constraint): Update comments to
+ 	reflect gen_il-gen-gen_entities.adb changes.
+ 	(Lit_Hash): Add missing "[root type only]" comment.
+ 	* exp_ch5.adb: Add Reinit_Field_To_Zero calls for vanishing
+ 	fields.
+ 	* sem_ch10.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	* sem_ch7.adb: Likewise.
+ 	* sem_ch8.adb: Likewise.
+ 	* sem_ch3.adb: Likewise. Also remove now-unnecessary
+ 	Reinit_Field_To_Zero calls.
+ 
+ 2023-05-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch7.adb (Hide_Public_Entities): Use the same condition for
+ 	subprogram bodies without specification as for those with one.
+ 
+ 2023-05-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (New_Copy_Tree): Remove redundant calls to Present.
+ 
+ 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch8.adb (End_Scope): Simplify lookup of predecessor in
+ 	homonym chain.
+ 
+ 2023-05-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Aggregate): Accept aggregates with OTHERS
+ 	appearing inside unchecked conversions.
+ 
+ 2023-05-15  Steve Baird  <baird@adacore.com>
+ 
+ 	* warnsw.ads: Add a new element,
+ 	Warn_On_Ineffective_Predicate_Test, to the Opt_Warnings_Enum
+ 	enumeration type.
+ 	* warnsw.adb: Bind "-gnatw_s" to the new
+ 	Warn_On_Ineffective_Predicate_Test switch. Add the new switch to
+ 	the set of switches enabled by -gnata .
+ 	* sem_ch13.adb
+ 	(Build_Discrete_Static_Predicate): Declare new local procedure,
+ 	Warn_If_Test_Ineffective, which conditionally generates new
+ 	warning. Call this new procedure when building a new element of an
+ 	RList.
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ 	Document the -gnatw_s switch (and the corresponding -gnatw_S
+ 	switch).
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-15  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_attr.adb: Update comment referring to rule number.
+ 
+ 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_attr.adb: sem_attr.adb (Analyze_Access_Attribute): Tighten
+ 	validity check for task types.
+ 
+ 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_characteristics.rst: Fix
+ 	minor documentation formatting issue.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-15  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch4.adb
+ 	(Expand_N_Op_Expon): Remove the too-big check. Simplify. Signed
+ 	and modular cases are combined, etc. Remove code with comment "We
+ 	only handle cases where the right type is a[sic] integer", because
+ 	the right operand must always be an integer at this point.
+ 
+ 2023-05-15  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_attr.adb
+ 	(Analyze_Attribute): Add a call to Check_Error_Detected.
+ 
+ 2023-05-15  Yannick Moy  <moy@adacore.com>
+ 
+ 	* par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to
+ 	expression in pragma association.
+ 
+ 2023-05-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* repinfo.ads (JSON output format): Document special case of
+ 	Present member of a Variant object.
+ 	* repinfo.adb (List_Structural_Record_Layout): Change the type of
+ 	Ext_Level parameter to Integer. Restrict the first recursion with
+ 	increasing levels to the fixed part and implement a second
+ 	recursion with decreasing levels for the variant part. Deal with
+ 	an extension of a type with unknown discriminants.
+ 
+ 2023-05-15  Claire Dross  <dross@adacore.com>
+ 
+ 	* libgnat/s-valueu.adb: Use cut operations inside assertion to
+ 	restore proofs
+ 	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-spark and
+ 	s-spcuop dependencies.
+ 
+ 2023-05-15  Yannick Moy  <moy@adacore.com>
+ 
+ 	* sem_prag.adb (Check_Grouping): Allow Annotate pragmas between
+ 	loop pragmas.
+ 
+ 2023-05-15  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Extensions_Allowed): Document string interpolation.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-15  Joel Brobecker  <brobecker@adacore.com>
+ 
+ 	* doc/gnat_ugn/platform_specific_information.rst
+ 	(_PIE_Enabled_By_Default_On_Linux): New section.
+ 	* gnat-style.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-05-15  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_disp.adb
+ 	(Has_Dispatching_Constructor_Call): New subprogram.
+ 	(Expand_Interface_Conversion): No need to perform dynamic
+ 	interface conversion when the operand and the target type are
+ 	interface types and the target interface type is an ancestor of
+ 	the operand type. The unique exception to this rule is when the
+ 	operand has a dispatching constructor call (as documented in the
+ 	sources).
+ 
+ 2023-05-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Reject attribute Initialized
+ 	on unchecked unions; fix grammar in comment.
+ 
+ 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch13.adb (Validate_Unchecked_Conversion): Fix behavior on
+ 	System.Address to access to subprogram subtype conversion.
+ 
+ 2023-05-15  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* atree.ads
+ 	(Is_Syntactic_Node): Refactored from New_Copy_Tree.
+ 	* atree.adb
+ 	(Is_Syntactic_Node): Likewise.
+ 	(Copy_Separate_Tree): Use Is_Syntactic_Node.
+ 	* sem_util.adb
+ 	(Has_More_Ids): Move to Atree.
+ 	(Is_Syntactic_Node): Likewise.
+ 
+ 2023-04-18  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* gcc-interface/utils.cc (unchecked_convert): Fix typo.
+ 
+ 2023-04-17  Martin Liska  <mliska@suse.cz>
+ 
+ 	* gnatvsn.ads: Bump Library_Version to 14.
+ 
+ 2023-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR bootstrap/109510
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset
+ 	align to zero in any case.  Set TYPE_USER_ALIGN on the type only if
+ 	it is an aggregate type, or else a type whose default alignment is
+ 	specifically capped on selected platforms.
+ 
+ 2023-04-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR bootstrap/109510
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align
+ 	to zero if its value is equal to TYPE_ALIGN and the type is scalar.
+ 	Set TYPE_USER_ALIGN on the type only if align is positive.
+ 
+ 2023-03-06  Javier Miranda  <miranda@adacore.com>
+ 
+ 	PR ada/108858
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with
+ 	separate spec, if their return type was visible through a limited-
+ 	with context clause, their extra formals were not added when the
+ 	spec was analyzed.  Now the full view must be available, and the
+ 	extra formals can be created and Returns_By_Ref computed.
+ 
+ 2023-03-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/108909
+ 	PR ada/108983
+ 	* Make-generated.in: Do not use GNATMAKE.
+ 	* gcc-interface/Makefile.in: Ditto.
+ 
+ 2023-02-26  Peter Foley  <pefoley2@pefoley.com>
+ 
+ 	PR ada/108909
+ 	* Make-generated.in: Use GNATMAKE.
+ 	* gcc-interface/Makefile.in: Ditto.
+ 
+ 2023-02-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard.
+ 
+ 2023-02-14  Dongsheng Song  <dongsheng.song@gmail.com>
+ 
+ 	* adaint.c [Linux]: Include <features.h>.
+ 	(__gnat_get_executable_load_address) [Linux]: Enable only for
+ 	glibc and uClibc.
+ 
+ 2023-01-16  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/Make-lang.in: Update copyright years.
+ 	* gcc-interface/Makefile.in: Likewise.
+ 	* gcc-interface/ada-builtin-types.def: Likewise.
+ 	* gcc-interface/ada-builtins.def: Likewise.
+ 	* gcc-interface/ada-tree.def: Likewise.
+ 	* gcc-interface/ada-tree.h: Likewise.
+ 	* gcc-interface/ada.h: Likewise.
+ 	* gcc-interface/config-lang.in: Likewise.
+ 	* gcc-interface/cuintp.cc: Likewise.
+ 	* gcc-interface/decl.cc: Likewise.
+ 	* gcc-interface/gadaint.h: Likewise.
+ 	* gcc-interface/gigi.h: Likewise.
+ 	* gcc-interface/lang-specs.h: Likewise.
+ 	* gcc-interface/lang.opt: Likewise.
+ 	* gcc-interface/misc.cc: Likewise.
+ 	* gcc-interface/system.ads: Likewise.
+ 	* gcc-interface/targtyps.cc: Likewise.
+ 	* gcc-interface/trans.cc: Likewise.
+ 	* gcc-interface/utils.cc: Likewise.
+ 	* gcc-interface/utils2.cc: Likewise.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Allocator_For_Return): Convert the expression
+ 	to the return object's type in the constrained array case as well.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non-
+ 	interface stand-alone object initialized by a function call, call
+ 	Remove_Side_Effects on the expression to capture the result.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Has_Tag_Of_Type): Declare.
+ 	* exp_util.adb (Has_Tag_Of_Type): Move to package level.  Recurse on
+ 	qualified expressions.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference
+ 	to the interface tag in more cases for class-wide interface objects.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Is_Temporary_For_Interface_Object): Delete.
+ 	(Is_Finalizable_Transient.Is_Aliased): Deal with the specific case
+ 	of temporaries generated for interface objects.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back-
+ 	and-forth displacement of the object's address when using a renaming
+ 	for an interface object with an expression of the same type.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side
+ 	effects of the expression up front for the simple allocators. Do not
+ 	call the Adjust primitive if the expression is a function call.
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call
+ 	unnecessarily for a special return object.
+ 	(Expand_Simple_Function_Return): Restore the displacement of the
+ 	return object's address in the case where the expression is the call
+ 	to a function whose result type is a type that needs finalization.
+ 	* exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side
+ 	effects of the expression before calling Make_Subtype_From_Expr.
+ 	(Make_CW_Equivalent_Type): If the expression has the tag of its type
+ 	and this type has a uniform size, use 'Object_Size of this type in
+ 	lieu of 'Size of the expression to compute the expression's size.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Allocator_For_Return): Put back an interface
+ 	conversion for expressions with non-interface class-wide type.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased
+ 	objects if their nominal subtype is not an unconstrained array.
+ 
+ 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions
+ 	needed for an initializating expression that is a function call to
+ 	be renamable into the Is_Renamable_Function_Call predicate.
+ 	Use it to implement the renaming in the case of class-wide interface
+ 	objects.  Remove an interface conversion on all paths, separate and
+ 	optimize the renaming path in the special expansion for interfaces.
+ 	(Is_Renamable_Function_Call): New predicate.
+ 	(Make_Allocator_For_Return): Put back an interface conversion.
+ 	* exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access
+ 	checks on RE_Tag_Ptr.
+ 
+ 2023-01-09  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year.
+ 	* adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise.
+ 	* adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise.
+ 	* ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise.
+ 	* aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise.
+ 	* aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise.
+ 	* backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise.
+ 	* binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise.
+ 	* bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise.
+ 	* bindo-builders.ads, bindo-diagnostics.adb: Likewise.
+ 	* bindo-diagnostics.ads, bindo-elaborators.adb: Likewise.
+ 	* bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise.
+ 	* bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise.
+ 	* bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise.
+ 	* bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise.
+ 	* butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise.
+ 	* checks.ads, cio.c, clean.adb, clean.ads: Likewise.
+ 	* comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise.
+ 	* csets.adb, csets.ads, cstand.adb: Likewise.
+ 	* cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise.
+ 	* debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise.
+ 	* einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise.
+ 	* env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise.
+ 	* erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise.
+ 	* eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise.
+ 	* exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise.
+ 	* exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise.
+ 	* exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise.
+ 	* exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise.
+ 	* exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise.
+ 	* exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise.
+ 	* exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise.
+ 	* exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise.
+ 	* exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise.
+ 	* exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise.
+ 	* exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise.
+ 	* exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise.
+ 	* exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise.
+ 	* exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise.
+ 	* exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise.
+ 	* exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise.
+ 	* final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise.
+ 	* fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise.
+ 	* freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise.
+ 	* gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise.
+ 	* gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise.
+ 	* gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise.
+ 	* gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise.
+ 	* get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise.
+ 	* gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise.
+ 	* gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise.
+ 	* gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise.
+ 	* gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise.
+ 	* gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise.
+ 	* gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise.
+ 	* gprep.adb, gprep.ads, gsocket.h: Likewise.
+ 	* hostparm.ads: Likewise.
+ 	* impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise.
+ 	* indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise.
+ 	* initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise.
+ 	* krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise.
+ 	* lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise.
+ 	* lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise.
+ 	* lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise.
+ 	* lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise.
+ 	* libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise.
+ 	* libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise.
+ 	* libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise.
+ 	* libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise.
+ 	* libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise.
+ 	* libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise.
+ 	* libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise.
+ 	* libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise.
+ 	* libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise.
+ 	* libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise.
+ 	* libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise.
+ 	* libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise.
+ 	* libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise.
+ 	* libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise.
+ 	* libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise.
+ 	* libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise.
+ 	* libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise.
+ 	* libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise.
+ 	* libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise.
+ 	* libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise.
+ 	* libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise.
+ 	* libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise.
+ 	* libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise.
+ 	* libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise.
+ 	* libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise.
+ 	* libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise.
+ 	* libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise.
+ 	* libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise.
+ 	* libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise.
+ 	* libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise.
+ 	* libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise.
+ 	* libgnarl/s-interr__sigaction.adb: Likewise.
+ 	* libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise.
+ 	* libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise.
+ 	* libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise.
+ 	* libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise.
+ 	* libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise.
+ 	* libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise.
+ 	* libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise.
+ 	* libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise.
+ 	* libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise.
+ 	* libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise.
+ 	* libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise.
+ 	* libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise.
+ 	* libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise.
+ 	* libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise.
+ 	* libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise.
+ 	* libgnarl/s-osinte__dragonfly.adb: Likewise.
+ 	* libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise.
+ 	* libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise.
+ 	* libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise.
+ 	* libgnarl/s-osinte__hpux-dce.adb: Likewise.
+ 	* libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise.
+ 	* libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
+ 	* libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise.
+ 	* libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise.
+ 	* libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise.
+ 	* libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise.
+ 	* libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise.
+ 	* libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise.
+ 	* libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise.
+ 	* libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise.
+ 	* libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise.
+ 	* libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise.
+ 	* libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise.
+ 	* libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise.
+ 	* libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise.
+ 	* libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise.
+ 	* libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise.
+ 	* libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise.
+ 	* libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise.
+ 	* libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise.
+ 	* libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise.
+ 	* libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise.
+ 	* libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise.
+ 	* libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise.
+ 	* libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise.
+ 	* libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise.
+ 	* libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise.
+ 	* libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise.
+ 	* libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise.
+ 	* libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise.
+ 	* libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise.
+ 	* libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise.
+ 	* libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise.
+ 	* libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise.
+ 	* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
+ 	* libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise.
+ 	* libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise.
+ 	* libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise.
+ 	* libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise.
+ 	* libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise.
+ 	* libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise.
+ 	* libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise.
+ 	* libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise.
+ 	* libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise.
+ 	* libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise.
+ 	* libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise.
+ 	* libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise.
+ 	* libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
+ 	* libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise.
+ 	* libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
+ 	* libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
+ 	* libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise.
+ 	* libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise.
+ 	* libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise.
+ 	* libgnarl/s-vxwext__kernel-smp.adb: Likewise.
+ 	* libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise.
+ 	* libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise.
+ 	* libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise.
+ 	* libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise.
+ 	* libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise.
+ 	* libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise.
+ 	* libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise.
+ 	* libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise.
+ 	* libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise.
+ 	* libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise.
+ 	* libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise.
+ 	* libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise.
+ 	* libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise.
+ 	* libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise.
+ 	* libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise.
+ 	* libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise.
+ 	* libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise.
+ 	* libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise.
+ 	* libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise.
+ 	* libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise.
+ 	* libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise.
+ 	* libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise.
+ 	* libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise.
+ 	* libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise.
+ 	* libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise.
+ 	* libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise.
+ 	* libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise.
+ 	* libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise.
+ 	* libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise.
+ 	* libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise.
+ 	* libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise.
+ 	* libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise.
+ 	* libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise.
+ 	* libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise.
+ 	* libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise.
+ 	* libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise.
+ 	* libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise.
+ 	* libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise.
+ 	* libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise.
+ 	* libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise.
+ 	* libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise.
+ 	* libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise.
+ 	* libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise.
+ 	* libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise.
+ 	* libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise.
+ 	* libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise.
+ 	* libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise.
+ 	* libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise.
+ 	* libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise.
+ 	* libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise.
+ 	* libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise.
+ 	* libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise.
+ 	* libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise.
+ 	* libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise.
+ 	* libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise.
+ 	* libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise.
+ 	* libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise.
+ 	* libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise.
+ 	* libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise.
+ 	* libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise.
+ 	* libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise.
+ 	* libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise.
+ 	* libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise.
+ 	* libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise.
+ 	* libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise.
+ 	* libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise.
+ 	* libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise.
+ 	* libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise.
+ 	* libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise.
+ 	* libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise.
+ 	* libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise.
+ 	* libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise.
+ 	* libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise.
+ 	* libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise.
+ 	* libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise.
+ 	* libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise.
+ 	* libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise.
+ 	* libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise.
+ 	* libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise.
+ 	* libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise.
+ 	* libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise.
+ 	* libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise.
+ 	* libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise.
+ 	* libgnat/a-excach.adb, libgnat/a-except.adb: Likewise.
+ 	* libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise.
+ 	* libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise.
+ 	* libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise.
+ 	* libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise.
+ 	* libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise.
+ 	* libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise.
+ 	* libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise.
+ 	* libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise.
+ 	* libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise.
+ 	* libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise.
+ 	* libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise.
+ 	* libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise.
+ 	* libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise.
+ 	* libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise.
+ 	* libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise.
+ 	* libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise.
+ 	* libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise.
+ 	* libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise.
+ 	* libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise.
+ 	* libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise.
+ 	* libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise.
+ 	* libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise.
+ 	* libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise.
+ 	* libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise.
+ 	* libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise.
+ 	* libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise.
+ 	* libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise.
+ 	* libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise.
+ 	* libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise.
+ 	* libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise.
+ 	* libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise.
+ 	* libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise.
+ 	* libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise.
+ 	* libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise.
+ 	* libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise.
+ 	* libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise.
+ 	* libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise.
+ 	* libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise.
+ 	* libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise.
+ 	* libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise.
+ 	* libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise.
+ 	* libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise.
+ 	* libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise.
+ 	* libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise.
+ 	* libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise.
+ 	* libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise.
+ 	* libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise.
+ 	* libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise.
+ 	* libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise.
+ 	* libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise.
+ 	* libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise.
+ 	* libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise.
+ 	* libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise.
+ 	* libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise.
+ 	* libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise.
+ 	* libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise.
+ 	* libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise.
+ 	* libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise.
+ 	* libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise.
+ 	* libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise.
+ 	* libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise.
+ 	* libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise.
+ 	* libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise.
+ 	* libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise.
+ 	* libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise.
+ 	* libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise.
+ 	* libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise.
+ 	* libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise.
+ 	* libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise.
+ 	* libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise.
+ 	* libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise.
+ 	* libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise.
+ 	* libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise.
+ 	* libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise.
+ 	* libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise.
+ 	* libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise.
+ 	* libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise.
+ 	* libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise.
+ 	* libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise.
+ 	* libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise.
+ 	* libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise.
+ 	* libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise.
+ 	* libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise.
+ 	* libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise.
+ 	* libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise.
+ 	* libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise.
+ 	* libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise.
+ 	* libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise.
+ 	* libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise.
+ 	* libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise.
+ 	* libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise.
+ 	* libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise.
+ 	* libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise.
+ 	* libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise.
+ 	* libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise.
+ 	* libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise.
+ 	* libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise.
+ 	* libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise.
+ 	* libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise.
+ 	* libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise.
+ 	* libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise.
+ 	* libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise.
+ 	* libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise.
+ 	* libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise.
+ 	* libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise.
+ 	* libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise.
+ 	* libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise.
+ 	* libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise.
+ 	* libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise.
+ 	* libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise.
+ 	* libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise.
+ 	* libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise.
+ 	* libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise.
+ 	* libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise.
+ 	* libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise.
+ 	* libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise.
+ 	* libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise.
+ 	* libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise.
+ 	* libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise.
+ 	* libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise.
+ 	* libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise.
+ 	* libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise.
+ 	* libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise.
+ 	* libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise.
+ 	* libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise.
+ 	* libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise.
+ 	* libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise.
+ 	* libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise.
+ 	* libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise.
+ 	* libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise.
+ 	* libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise.
+ 	* libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise.
+ 	* libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise.
+ 	* libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise.
+ 	* libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise.
+ 	* libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise.
+ 	* libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise.
+ 	* libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise.
+ 	* libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise.
+ 	* libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise.
+ 	* libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise.
+ 	* libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise.
+ 	* libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise.
+ 	* libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise.
+ 	* libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise.
+ 	* libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise.
+ 	* libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise.
+ 	* libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise.
+ 	* libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise.
+ 	* libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise.
+ 	* libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise.
+ 	* libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise.
+ 	* libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise.
+ 	* libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise.
+ 	* libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise.
+ 	* libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise.
+ 	* libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise.
+ 	* libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise.
+ 	* libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise.
+ 	* libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise.
+ 	* libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise.
+ 	* libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise.
+ 	* libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise.
+ 	* libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise.
+ 	* libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise.
+ 	* libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise.
+ 	* libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise.
+ 	* libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise.
+ 	* libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise.
+ 	* libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise.
+ 	* libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise.
+ 	* libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise.
+ 	* libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise.
+ 	* libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise.
+ 	* libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise.
+ 	* libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise.
+ 	* libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise.
+ 	* libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise.
+ 	* libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise.
+ 	* libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise.
+ 	* libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise.
+ 	* libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise.
+ 	* libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise.
+ 	* libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise.
+ 	* libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise.
+ 	* libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise.
+ 	* libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise.
+ 	* libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise.
+ 	* libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise.
+ 	* libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise.
+ 	* libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise.
+ 	* libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise.
+ 	* libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise.
+ 	* libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise.
+ 	* libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise.
+ 	* libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise.
+ 	* libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise.
+ 	* libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise.
+ 	* libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise.
+ 	* libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise.
+ 	* libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise.
+ 	* libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise.
+ 	* libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise.
+ 	* libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise.
+ 	* libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise.
+ 	* libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise.
+ 	* libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise.
+ 	* libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise.
+ 	* libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise.
+ 	* libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise.
+ 	* libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise.
+ 	* libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise.
+ 	* libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise.
+ 	* libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise.
+ 	* libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise.
+ 	* libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise.
+ 	* libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise.
+ 	* libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise.
+ 	* libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise.
+ 	* libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise.
+ 	* libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise.
+ 	* libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise.
+ 	* libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise.
+ 	* libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise.
+ 	* libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise.
+ 	* libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise.
+ 	* libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise.
+ 	* libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise.
+ 	* libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise.
+ 	* libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise.
+ 	* libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise.
+ 	* libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise.
+ 	* libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise.
+ 	* libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise.
+ 	* libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise.
+ 	* libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise.
+ 	* libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise.
+ 	* libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise.
+ 	* libgnat/g-string.adb, libgnat/g-string.ads: Likewise.
+ 	* libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise.
+ 	* libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise.
+ 	* libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise.
+ 	* libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise.
+ 	* libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise.
+ 	* libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise.
+ 	* libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise.
+ 	* libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise.
+ 	* libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise.
+ 	* libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise.
+ 	* libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise.
+ 	* libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise.
+ 	* libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise.
+ 	* libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise.
+ 	* libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise.
+ 	* libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise.
+ 	* libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise.
+ 	* libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise.
+ 	* libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise.
+ 	* libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise.
+ 	* libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise.
+ 	* libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise.
+ 	* libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise.
+ 	* libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise.
+ 	* libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise.
+ 	* libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise.
+ 	* libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise.
+ 	* libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise.
+ 	* libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise.
+ 	* libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise.
+ 	* libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise.
+ 	* libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise.
+ 	* libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise.
+ 	* libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise.
+ 	* libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise.
+ 	* libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise.
+ 	* libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise.
+ 	* libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise.
+ 	* libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise.
+ 	* libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise.
+ 	* libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise.
+ 	* libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise.
+ 	* libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise.
+ 	* libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise.
+ 	* libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise.
+ 	* libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise.
+ 	* libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise.
+ 	* libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise.
+ 	* libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise.
+ 	* libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise.
+ 	* libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise.
+ 	* libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise.
+ 	* libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise.
+ 	* libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise.
+ 	* libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise.
+ 	* libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise.
+ 	* libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise.
+ 	* libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise.
+ 	* libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise.
+ 	* libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise.
+ 	* libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise.
+ 	* libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise.
+ 	* libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise.
+ 	* libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise.
+ 	* libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise.
+ 	* libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise.
+ 	* libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise.
+ 	* libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise.
+ 	* libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise.
+ 	* libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise.
+ 	* libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise.
+ 	* libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise.
+ 	* libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise.
+ 	* libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise.
+ 	* libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise.
+ 	* libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise.
+ 	* libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise.
+ 	* libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise.
+ 	* libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise.
+ 	* libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise.
+ 	* libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise.
+ 	* libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise.
+ 	* libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise.
+ 	* libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise.
+ 	* libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise.
+ 	* libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise.
+ 	* libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise.
+ 	* libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise.
+ 	* libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise.
+ 	* libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise.
+ 	* libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise.
+ 	* libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise.
+ 	* libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise.
+ 	* libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise.
+ 	* libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise.
+ 	* libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise.
+ 	* libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise.
+ 	* libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise.
+ 	* libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise.
+ 	* libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise.
+ 	* libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise.
+ 	* libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise.
+ 	* libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise.
+ 	* libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise.
+ 	* libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise.
+ 	* libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise.
+ 	* libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise.
+ 	* libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise.
+ 	* libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise.
+ 	* libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise.
+ 	* libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise.
+ 	* libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise.
+ 	* libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise.
+ 	* libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise.
+ 	* libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise.
+ 	* libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise.
+ 	* libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise.
+ 	* libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise.
+ 	* libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise.
+ 	* libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise.
+ 	* libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise.
+ 	* libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise.
+ 	* libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise.
+ 	* libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise.
+ 	* libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise.
+ 	* libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise.
+ 	* libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise.
+ 	* libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise.
+ 	* libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise.
+ 	* libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise.
+ 	* libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise.
+ 	* libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise.
+ 	* libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise.
+ 	* libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise.
+ 	* libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise.
+ 	* libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise.
+ 	* libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise.
+ 	* libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise.
+ 	* libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise.
+ 	* libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise.
+ 	* libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise.
+ 	* libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise.
+ 	* libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise.
+ 	* libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise.
+ 	* libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise.
+ 	* libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise.
+ 	* libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise.
+ 	* libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise.
+ 	* libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise.
+ 	* libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise.
+ 	* libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise.
+ 	* libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise.
+ 	* libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise.
+ 	* libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise.
+ 	* libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise.
+ 	* libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise.
+ 	* libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise.
+ 	* libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise.
+ 	* libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise.
+ 	* libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise.
+ 	* libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise.
+ 	* libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise.
+ 	* libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise.
+ 	* libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise.
+ 	* libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise.
+ 	* libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise.
+ 	* libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise.
+ 	* libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise.
+ 	* libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise.
+ 	* libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise.
+ 	* libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise.
+ 	* libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise.
+ 	* libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise.
+ 	* libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise.
+ 	* libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise.
+ 	* libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise.
+ 	* libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise.
+ 	* libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise.
+ 	* libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise.
+ 	* libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise.
+ 	* libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise.
+ 	* libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise.
+ 	* libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise.
+ 	* libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise.
+ 	* libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise.
+ 	* libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise.
+ 	* libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise.
+ 	* libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise.
+ 	* libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise.
+ 	* libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise.
+ 	* libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise.
+ 	* libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise.
+ 	* libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise.
+ 	* libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise.
+ 	* libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise.
+ 	* libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise.
+ 	* libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise.
+ 	* libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise.
+ 	* libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise.
+ 	* libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise.
+ 	* libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise.
+ 	* libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise.
+ 	* libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise.
+ 	* libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise.
+ 	* libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise.
+ 	* libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise.
+ 	* libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise.
+ 	* libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise.
+ 	* libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise.
+ 	* libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise.
+ 	* libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise.
+ 	* libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise.
+ 	* libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise.
+ 	* libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise.
+ 	* libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise.
+ 	* libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise.
+ 	* libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise.
+ 	* libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise.
+ 	* libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise.
+ 	* libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise.
+ 	* libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise.
+ 	* libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise.
+ 	* libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise.
+ 	* libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise.
+ 	* libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise.
+ 	* libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise.
+ 	* libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise.
+ 	* libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise.
+ 	* libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise.
+ 	* libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise.
+ 	* libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise.
+ 	* libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise.
+ 	* libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise.
+ 	* libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise.
+ 	* libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise.
+ 	* libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise.
+ 	* libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise.
+ 	* libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise.
+ 	* libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise.
+ 	* libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise.
+ 	* libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise.
+ 	* libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise.
+ 	* libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise.
+ 	* libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise.
+ 	* libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise.
+ 	* libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise.
+ 	* libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise.
+ 	* libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise.
+ 	* libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise.
+ 	* libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise.
+ 	* libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise.
+ 	* libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise.
+ 	* libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise.
+ 	* libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise.
+ 	* libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise.
+ 	* libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise.
+ 	* libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise.
+ 	* libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise.
+ 	* libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise.
+ 	* libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise.
+ 	* libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise.
+ 	* libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise.
+ 	* libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise.
+ 	* libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise.
+ 	* libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise.
+ 	* libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise.
+ 	* libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise.
+ 	* libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise.
+ 	* libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise.
+ 	* libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise.
+ 	* libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise.
+ 	* libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise.
+ 	* libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise.
+ 	* libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise.
+ 	* libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise.
+ 	* libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise.
+ 	* libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise.
+ 	* libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise.
+ 	* libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise.
+ 	* libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise.
+ 	* libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise.
+ 	* libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise.
+ 	* libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise.
+ 	* libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise.
+ 	* libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise.
+ 	* libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise.
+ 	* libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise.
+ 	* libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise.
+ 	* libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise.
+ 	* libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise.
+ 	* libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise.
+ 	* libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise.
+ 	* libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise.
+ 	* libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise.
+ 	* libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise.
+ 	* libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise.
+ 	* libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise.
+ 	* libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise.
+ 	* libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise.
+ 	* libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise.
+ 	* libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise.
+ 	* libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise.
+ 	* libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise.
+ 	* libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise.
+ 	* libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise.
+ 	* libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise.
+ 	* libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise.
+ 	* libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise.
+ 	* libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise.
+ 	* libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise.
+ 	* libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise.
+ 	* libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise.
+ 	* libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise.
+ 	* libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise.
+ 	* libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise.
+ 	* libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise.
+ 	* libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise.
+ 	* libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise.
+ 	* libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise.
+ 	* libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise.
+ 	* libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise.
+ 	* libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise.
+ 	* libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise.
+ 	* libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise.
+ 	* libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise.
+ 	* libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise.
+ 	* libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise.
+ 	* libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise.
+ 	* libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise.
+ 	* libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise.
+ 	* libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise.
+ 	* libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise.
+ 	* libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise.
+ 	* libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise.
+ 	* libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise.
+ 	* libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise.
+ 	* libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise.
+ 	* libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise.
+ 	* libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise.
+ 	* libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise.
+ 	* libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise.
+ 	* libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise.
+ 	* libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise.
+ 	* libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise.
+ 	* libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise.
+ 	* libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise.
+ 	* libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise.
+ 	* libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise.
+ 	* libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise.
+ 	* libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise.
+ 	* libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise.
+ 	* libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise.
+ 	* libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise.
+ 	* libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise.
+ 	* libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise.
+ 	* libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise.
+ 	* libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise.
+ 	* libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise.
+ 	* libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise.
+ 	* libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise.
+ 	* libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise.
+ 	* libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise.
+ 	* libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise.
+ 	* libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise.
+ 	* libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise.
+ 	* libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise.
+ 	* libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise.
+ 	* libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise.
+ 	* libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise.
+ 	* libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise.
+ 	* libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise.
+ 	* libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise.
+ 	* libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise.
+ 	* libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise.
+ 	* libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise.
+ 	* libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise.
+ 	* libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise.
+ 	* libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise.
+ 	* libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise.
+ 	* libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise.
+ 	* libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise.
+ 	* libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise.
+ 	* libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise.
+ 	* libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise.
+ 	* libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise.
+ 	* libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise.
+ 	* libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise.
+ 	* libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise.
+ 	* libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise.
+ 	* libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise.
+ 	* libgnat/system-solaris-sparc.ads: Likewise.
+ 	* libgnat/system-solaris-x86.ads: Likewise.
+ 	* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
+ 	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-aarch64.ads: Likewise.
+ 	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-arm.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise.
+ 	* live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise.
+ 	* make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise.
+ 	* mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise.
+ 	* mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise.
+ 	* namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise.
+ 	* opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise.
+ 	* osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise.
+ 	* osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise.
+ 	* par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise.
+ 	* par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise.
+ 	* par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise.
+ 	* par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise.
+ 	* par.ads, par_sco.adb, par_sco.ads: Likewise.
+ 	* pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise.
+ 	* prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise.
+ 	* raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise.
+ 	* repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise.
+ 	* restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise.
+ 	* rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise.
+ 	* scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise.
+ 	* scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise.
+ 	* scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise.
+ 	* sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise.
+ 	* sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise.
+ 	* sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise.
+ 	* sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise.
+ 	* sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise.
+ 	* sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise.
+ 	* sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise.
+ 	* sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise.
+ 	* sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise.
+ 	* sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise.
+ 	* sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise.
+ 	* sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise.
+ 	* sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise.
+ 	* sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise.
+ 	* sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise.
+ 	* sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise.
+ 	* sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise.
+ 	* sigtramp-ios.c, sigtramp-qnx.c: Likewise.
+ 	* sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise.
+ 	* sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise.
+ 	* sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise.
+ 	* sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise.
+ 	* sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise.
+ 	* sprint.adb, sprint.ads, stand.ads: Likewise.
+ 	* stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise.
+ 	* style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise.
+ 	* stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise.
+ 	* switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise.
+ 	* switch.ads, sysdep.c, table.adb: Likewise.
+ 	* table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise.
+ 	* tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise.
+ 	* treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise.
+ 	* types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise.
+ 	* urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise.
+ 	* validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise.
+ 	* warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise.
+ 	* xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise.
+ 	* gnatvsn.ads (Current_Year): Likewise and bump to 2023.
+ 
+ 2023-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement.
+ 	(Make_Final_Call): Likewise.
+ 
+ 2023-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete.
+ 	(Is_Displacement_Of_Object_Or_Function_Result): Likewise.
+ 	* exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to...
+ 	(Is_Temporary_For_Interface_Object): ...this.
+ 	(Is_Finalizable_Transient): Adjust call to above renaming.
+ 	(Is_Displacement_Of_Object_Or_Function_Result): Delete.
+ 	(Requires_Cleanup_Actions): Remove special handling of the
+ 	temporaries created for interface objects.
+ 	* exp_ch7.adb (Build_Finalizer): Likewise.
+ 
+ 2023-01-07  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR middle-end/108300
+ 	* adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include
+ 	<windows.h>`.
+ 	* cio.c: Likewise.
+ 	* ctrl_c.c: Likewise.
+ 	* expect.c: Likewise.
+ 	* gsocket.h: Likewise.
+ 	* mingw32.h: Likewise.
+ 	* mkdir.c: Likewise.
+ 	* rtfinal.c: Likewise.
+ 	* rtinit.c: Likewise.
+ 	* seh_init.c: Likewise.
+ 	* sysdep.c: Likewise.
+ 	* terminals.c: Likewise.
+ 	* tracebak.c: Likewise.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the
+ 	handling of objects with (class-wide) interface type by using the
+ 	same idiom as the other cases generating a renaming.
+ 	* exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak
+ 	pattern matching code and exclude special return objects.
+ 	(Requires_Cleanup_Actions): Adjust comment.
+ 	* exp_ch7.adb (Build_Finalizer): Likewise.
+ 
+ 2023-01-05  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to
+ 	subprogram declaration early and then set the Body_To_Inling flag.
+ 
+ 2023-01-05  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* freeze.adb (Build_Renamed_Body): Revert a special case for
+ 	GNATprove; remove unnecessary initialization of a local variable.
+ 
+ 2023-01-05  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_ch12.adb (Instantiate_Package_Body): Better filtering when
+ 	installing parent on the scope stack.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* repinfo.ads (The JSON output format): Document change.
+ 	* urealp.adb (UR_Write_To_JSON): Output a fraction instead of a
+ 	decimal approximation.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): New local variable
+ 	Func_Id holding the function for a special return object.
+ 	Use a direct renaming in the class-wide case when the initializing
+ 	expression is a captured function call, except for a special return
+ 	object when the two functions do not return on the same stack.
+ 	Apply the accessibility check for class-wide special return objects.
+ 	* exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New.
+ 	Do not force a dispatching call to the primitive operation _Size if
+ 	the expression is known to statically have the tag of its type.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment.
+ 
+ 2023-01-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for
+ 	warning about use of parentheses for array aggregates.
+ 
+ 2023-01-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket)
+ 	(Tok_Left_Interpolated_String): Placed in no category since they
+ 	don't fit well in the existing categories. Fix typo in comment.
+ 	(Inside_Interpolated_String_Literal): New scan state variable.
+ 	* scng.adb (Slit): Scan interpolated string literals,
+ 	continuations of interpolated string literals and escaped
+ 	characters found in interpolated string literals.
+ 	(Scan): Handle consecutive interpolated expressions. Handle ending
+ 	delimiter placed immediately after an interpolated expression.
+ 	Handle string literal placed after interpolated expression. Handle
+ 	left and right curly brackets; when extensions are not allowed
+ 	they are treated as left and right paren; when extensions are
+ 	allowed they are handled as delimiters of interpolated string
+ 	literals.
+ 	* sinfo.ads (N_Interpolated_String_Literal): New node.
+ 	* gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define
+ 	N_String_Literal node.
+ 	* gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as
+ 	concrete node type.
+ 	* par-ch2.adb (P_Interpolated_String_Literal): New subprogram.
+ 	* par-ch4.adb (P_Simple_Expression): Handle '}' as expression
+ 	terminator when scanning an interpolated expression; disable error
+ 	recovery machinery for binary operator when we are processing an
+ 	interpolated string literal and reach the expression terminator
+ 	'}'.
+ 	(P_Primary): Call P_Interpolated_String_Literal when the opening
+ 	interpolated-string-literal delimiter is found (that is, the left
+ 	curly bracket '{').
+ 	* par-tchk.adb (T_Right_Curly_Bracket): New subprogram.
+ 	* par.adb (P_Interpolated_String_Literal): New declaration.
+ 	(T_Right_Curly_Bracket): New declaration.
+ 	* sem.adb (Analyze): Call Analyze_Interpolated_String_Literal.
+ 	* sem_ch2.ads (Analyze_Interpolated_String_Literal): New
+ 	subprogram
+ 	* sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise.
+ 	* sem_util.adb (Is_User_Defined_Literal): Complete mapping of
+ 	literal aspects adding that interpolated string literals have no
+ 	correspondence with any aspect.
+ 	* sem_res.adb (Resolve_Interpolated_String_Literal): New
+ 	subprogram.
+ 	(Has_Applicable_User_Defined_Literal): Complete mapping of literal
+ 	aspects adding that interpolated string literals have no
+ 	correspondency with any aspect.
+ 	* expander.adb (Expand): Add call to
+ 	Expand_N_Interpolated_String_Literal.
+ 	* exp_util.adb (Insert_Actions): Handle
+ 	N_Interpolated_String_Literal nodes; that is, continue climbing.
+ 	* exp_ch2.ads (Expand_N_Interpolated_String_Literal): New
+ 	subprogram.
+ 	* exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise.
+ 	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing
+ 	conversion to force dispatching call. Required to handle calls to
+ 	descendants.
+ 	(Build_String_Put_Image_Call): Do not output string delimiters
+ 	when the put_image call is part of an interpolated string literal.
+ 	* rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces.
+ 	* sprint.adb (Sprint_Node): Output interpolated string contents.
+ 	* libgnat/a-stbubo.adb (Get_UTF_8): Add default value for
+ 	Trim_Leading_White_Spaces component in aggregate.
+ 	(Buffer_Type_Implementation): Update Trim_Leading_White_Spaces.
+ 	* libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
+ 	(Buffer_Type_Implementation): Likewise.
+ 	* libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram.
+ 	(Trim_Leading_Spaces): New subprogram.
+ 	(Root_Buffer_Type): Adding Trim_Leading_While_Spaces component.
+ 	* libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New
+ 	subprogram.
+ 	(Trim_Leading_Space): New subprogram.
+ 	(Put_UTF_8): Handle Trim_Leading_White_Spaces.
+ 	(New_Line): Likewise.
+ 	* libgnat/s-putima.ads (Put_Image_String): Adding formal
+ 	(with_delimiters).
+ 	(Put_Image_Wide_String): Likewise.
+ 	(Put_Image_Wide_Wide_String): Likewise.
+ 	* libgnat/s-putima.adb (Put_Image_String): Adding support for new
+ 	formal.
+ 	(Put_Image_Wide_String): Likewise.
+ 	(Put_Image_Wide_Wide_String): Likewise.
+ 
+ 2023-01-05  Joao Azevedo  <azevedo@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout
+ 	switch and update legacy switches.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Entity): For the purpose of deciding whether to
+ 	freeze an entity coming from an outer scope in an inner scope, treat
+ 	the internal subprogram generated because of post-conditions as also
+ 	coming from source if the original subprogram itself does.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an
+ 	extended return statement in all cases.
+ 	(Expand_Subprogram_Contract): Adjust comment.
+ 
+ 2023-01-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/g-forstr.adb (F_Kind): Rename enumeration literal.
+ 	(P_Flt_Format): Adjust handling of "%g".
+ 	(Determine_Notation_And_Aft): New procedure.
+ 	(Decimal_Exponent): New function.
+ 	(Increment_Integral_Part): New procedure.
+ 	(Remove_Extraneous_Decimal_Digit): New procedure.
+ 	(Trim_Fractional_Part): New procedure.
+ 	* libgnat/g-forstr.ads: Change description of "%g" specifier.
+ 
+ 2023-01-05  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_ch12.adb (Instantiate_Package_Body): Correctly find the
+ 	parent instance to place on the scope stack.
+ 
+ 2023-01-05  Justin Squirek  <squirek@adacore.com>
+ 
+ 	* sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually
+ 	resetting the entity field of a non-prefixed discriminant
+ 	reference.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): New local variable used
+ 	throughout instead of testing Is_Special_Return_Object every time.
+ 	Do not rename an OK_To_Rename object for a special return object.
+ 	* exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation
+ 	if the result is allocated on the secondary stack.
+ 
+ 2023-01-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma
+ 	function to handle case where the pragma's parent is an
+ 	N_Aspect_Specification node. In analyzing a Discard_Names pragma,
+ 	do not assume that a nonzero number of arguments implies that the
+ 	pragma is not a configuration pragma; that assumption only holds
+ 	for legal programs.
+ 
+ 2023-01-05  Bob Duff  <duff@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ 	Add RM references.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): For a special return
+ 	object of an interface type that is not inherently limited, make
+ 	a call to the Adjust primitive after doing the copy.  For a special
+ 	return object of a non-class-wide type initialized by a function
+ 	call, use a direct renaming only if the object doing the capture
+ 	is flagged by Is_Related_To_Func_Return.  For a special return
+ 	object using a direct renaming, reassign the tag, if need be.
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Fix comment.
+ 	* exp_util.adb (Is_Related_To_Func_Return): Accept both regular and
+ 	renaming object declarations for return objects.
+ 
+ 2023-01-05  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Assignment): Fix the bug by checking
+ 	Original_Node. The renaming might be elsewhere, but the (original)
+ 	reference is right here.
+ 	* errout.adb: Remove pragma Unreferenced which was added because
+ 	of the above bug.
+ 	* einfo.ads: Misc cleanup.
+ 	* lib.adb: Likewise.
+ 	* lib.ads: Likewise.
+ 
+ 2023-01-03  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* errout.adb (Write_JSON_Span): Escape subprogram name.
+ 
+ 2023-01-03  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol.
+ 
+ 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling.
+ 
+ 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug.
+ 
+ 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a
+ 	captured function call also verifies Is_Related_To_Func_Return.
+ 	Do not generate an actual subtype for special return objects.
+ 	* exp_util.ads (Is_Related_To_Func_Return): Add commentary.
+ 
+ 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/g-forstr.adb
+ 	(Advance_And_Accumulate_Until_Next_Specifier): New procedure.
+ 	("-"): Replace inline code with call to
+ 	Advance_And_Accumulate_Until_Next_Specifier.
+ 	(Next_Format): likewise.
+ 
+ 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference):
+ 	Return false for artificial dereferences generated by the expander.
+ 
+ 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment.
+ 	* sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref
+ 	on functions with foreign convention.
+ 
+ 2023-01-03  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Assignment_With_Temporary): New.
+ 	(Expand_Array_Aggregate): Tune backend optimization
+ 	and insert a temporary in the case of an access with
+ 	Designated_Storage_Model aspect.
+ 	(Convert_Array_Aggr_In_Allocator): Likewise.
+ 
+ 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Membership_Op): Adjust again latest change.
+ 
+ 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment.
+ 	* sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return
+ 	false for more artificial dereferences generated by the expander.
+ 	(Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally
+ 	in -gnatD mode.
+ 	* exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the
+ 	Is_Aliased flag.
+ 
+ 2023-01-03  Joel Brobecker  <brobecker@adacore.com>
+ 
+ 	* doc/gnat_ugn/platform_specific_information.rst
+ 	(_Platform_Specific_Information): Minor rewording of intro text.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Is_Captured_Function_Call): Declare.
+ 	* exp_util.adb (Is_Captured_Function_Call): New predicate.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a
+ 	rewritten function call as the initializing expression.
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a
+ 	rewritten function call as the returned expression.
+ 
+ 2023-01-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_util.adb (Integer_Type_For): Assertion and comment.
+ 	(Small_Integer_Type_For): Remove some code and call
+ 	Integer_Type_For instead.
+ 	* sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..."
+ 	seems overly pedantic here.
+ 	* exp_attr.adb (Succ, Pred): Clean up: make the code as similar as
+ 	possible.
+ 	* exp_ch4.adb: Minor: named notation.
+ 
+ 2023-01-03  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may
+ 	appear within the class-wide precondition of a helper subprogram.
+ 	This context is treated as suitable because it was already
+ 	verified when we were analyzing the original class-wide
+ 	precondition.
+ 
+ 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the
+ 	ancestor type for a derived array type.
+ 	* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the
+ 	common processing done on representation items.
+ 	For Default_Component_Value and Default_Value, look into the first
+ 	subtype to find out the representation items.
+ 
+ 2023-01-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR ada/108202
+ 	* gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS):
+ 	Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and
+ 	-static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered
+ 	out for other hosts).
+ 
+ 2023-01-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gnat_ugn.texi: Bump @copying's copyright year.
+ 	* gnat_rm.texi: Likewise.
+ 
+ 
+ Copyright (C) 2023 Free Software Foundation, Inc.
+ 
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
diff -Nrcpad gcc-13.2.0/gcc/ada/Make-generated.in gcc-14.1.0/gcc/ada/Make-generated.in
*** gcc-13.2.0/gcc/ada/Make-generated.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/Make-generated.in	Tue May  7 06:51:37 2024
*************** ada/stamp-snames : ada/snames.ads-tmpl a
*** 46,52 ****
  	-$(MKDIR) ada/bldtools/snamest
  	$(RM) $(addprefix ada/bldtools/snamest/,$(notdir $^))
  	$(CP) $^ ada/bldtools/snamest
! 	cd ada/bldtools/snamest; gnatmake -q xsnamest ; ./xsnamest
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.ns ada/snames.ads
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.nb ada/snames.adb
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.nh ada/snames.h
--- 46,52 ----
  	-$(MKDIR) ada/bldtools/snamest
  	$(RM) $(addprefix ada/bldtools/snamest/,$(notdir $^))
  	$(CP) $^ ada/bldtools/snamest
! 	cd ada/bldtools/snamest && gnatmake -q xsnamest && ./xsnamest
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.ns ada/snames.ads
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.nb ada/snames.adb
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.nh ada/snames.h
diff -Nrcpad gcc-13.2.0/gcc/ada/Makefile.rtl gcc-14.1.0/gcc/ada/Makefile.rtl
*** gcc-13.2.0/gcc/ada/Makefile.rtl	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/Makefile.rtl	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Makefile.rtl for GNU Ada Compiler (GNAT).
! #   Copyright (C) 2003-2021, Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Makefile.rtl for GNU Ada Compiler (GNAT).
! #   Copyright (C) 2003-2024, Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** GNATRTL_NONTASKING_OBJS= \
*** 137,142 ****
--- 137,144 ----
    a-coboho$(objext) \
    a-cobove$(objext) \
    a-cogeso$(objext) \
+   a-cohama$(objext) \
+   a-cohase$(objext) \
    a-cohata$(objext) \
    a-coinho$(objext) \
    a-coinve$(objext) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 478,484 ****
    g-speche$(objext) \
    g-spipat$(objext) \
    g-spitbo$(objext) \
-   g-spogwa$(objext) \
    g-sptabo$(objext) \
    g-sptain$(objext) \
    g-sptavs$(objext) \
--- 480,485 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 773,778 ****
--- 774,780 ----
    s-vallli$(objext) \
    s-valllu$(objext) \
    s-valrea$(objext) \
+   s-valspe$(objext) \
    s-valued$(objext) \
    s-valuef$(objext) \
    s-valuei$(objext) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 786,791 ****
--- 788,797 ----
    s-veboop$(objext) \
    s-vector$(objext) \
    s-vercon$(objext) \
+   s-vs_int$(objext) \
+   s-vs_lli$(objext) \
+   s-vs_llu$(objext) \
+   s-vs_uns$(objext) \
    s-wchcnv$(objext) \
    s-wchcon$(objext) \
    s-wchjis$(objext) \
*************** GNATLIB_SHARED = gnatlib
*** 856,862 ****
  # to LIBGNAT_TARGET_PAIRS.
  
  GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
!   g-soliop$(objext) g-sothco$(objext) g-socpol$(objext)
  
  DUMMY_SOCKETS_TARGET_PAIRS = \
    g-socket.adb<libgnat/g-socket__dummy.adb \
--- 862,868 ----
  # to LIBGNAT_TARGET_PAIRS.
  
  GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
!   g-soliop$(objext) g-sothco$(objext) g-socpol$(objext) g-spogwa$(objext)
  
  DUMMY_SOCKETS_TARGET_PAIRS = \
    g-socket.adb<libgnat/g-socket__dummy.adb \
*************** GNATRTL_128BIT_OBJS = \
*** 1031,1036 ****
--- 1037,1044 ----
    s-vafi128$(objext) \
    s-valllli$(objext) \
    s-vallllu$(objext) \
+   s-vsllli$(objext) \
+   s-vslllu$(objext) \
    s-widllli$(objext) \
    s-widlllu$(objext)
  
*************** ifeq ($(strip $(filter-out arm aarch64 %
*** 1412,1417 ****
--- 1420,1426 ----
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
    g-soliop.ads<libgnat/g-soliop__qnx.ads \
+   s-parame.adb<libgnat/s-parame__qnx.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-qnx-arm.ads
*************** ifeq ($(strip $(filter-out cygwin% mingw
*** 2111,2116 ****
--- 2120,2174 ----
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
  
+ # LoongArch Linux
+ ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
+   LIBGNAT_TARGET_PAIRS = \
+   a-exetim.adb<libgnarl/a-exetim__posix.adb \
+   a-exetim.ads<libgnarl/a-exetim__default.ads \
+   a-intnam.ads<libgnarl/a-intnam__linux.ads \
+   a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
+   a-synbar.adb<libgnarl/a-synbar__posix.adb \
+   a-synbar.ads<libgnarl/a-synbar__posix.ads \
+   s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
+   s-intman.adb<libgnarl/s-intman__posix.adb \
+   s-linux.ads<libgnarl/s-linux__loongarch.ads \
+   s-mudido.adb<libgnarl/s-mudido__affinity.adb \
+   s-osinte.ads<libgnarl/s-osinte__linux.ads \
+   s-osinte.adb<libgnarl/s-osinte__posix.adb \
+   s-osprim.adb<libgnat/s-osprim__posix.adb \
+   s-taprop.adb<libgnarl/s-taprop__linux.adb \
+   s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
+   s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
+   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+   s-taspri.ads<libgnarl/s-taspri__posix.ads \
+   g-sercom.adb<libgnat/g-sercom__linux.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+   $(GNATRTL_128BIT_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+   $(ATOMICS_TARGET_PAIRS) \
+   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
+   system.ads<libgnat/system-linux-loongarch.ads
+ 
+   TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
+ 
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+   EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+   EXTRA_GNATRTL_TASKING_OBJS = s-linux.o a-exetim.o
+ 
+   EH_MECHANISM = -gcc
+   THREADSLIB = -lpthread
+   MISCLIB = -ldl
+   GNATLIB_SHARED = gnatlib-shared-dual
+   GMEM_LIB = gmemlib
+   LIBRARY_VERSION := $(LIB_VERSION)
+   # Temporarily disable strict alignment -- for some reason, it causes
+   # infinite loops during stack unwinding (libgcc) and indefinite hang
+   # in some futex system calls.
+   GNATLIBCFLAGS += -mno-strict-align
+   GNATLIBCFLAGS_FOR_C += -mno-strict-align
+ endif
+ 
+ 
  # Mips Linux
  ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
*************** ifeq ($(strip $(filter-out powerpc% linu
*** 2185,2190 ****
--- 2243,2249 ----
        EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
      endif
    else
+     LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
      ifeq ($(strip $(MULTISUBDIR)),/64)
        LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
        EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
*************** ifeq ($(strip $(filter-out aarch64% linu
*** 2249,2254 ****
--- 2308,2314 ----
    s-intman.adb<libgnarl/s-intman__posix.adb \
    s-linux.ads<libgnarl/s-linux.ads \
    $(TRASYM_DWARF_UNIX_PAIRS) \
+   s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    s-mudido.adb<libgnarl/s-mudido__affinity.adb \
    s-osinte.ads<libgnarl/s-osinte__linux.ads \
    s-osinte.adb<libgnarl/s-osinte__posix.adb \
*************** ifeq ($(strip $(filter-out aarch64% linu
*** 2271,2276 ****
--- 2331,2337 ----
    EH_MECHANISM=-gcc
    THREADSLIB=-lpthread -lrt
    GNATLIB_SHARED=gnatlib-shared-dual
+   MISCLIB = -ldl
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
diff -Nrcpad gcc-13.2.0/gcc/ada/accessibility.adb gcc-14.1.0/gcc/ada/accessibility.adb
*** gcc-13.2.0/gcc/ada/accessibility.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/accessibility.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Accessibility is
*** 119,126 ****
     is
        Loc : constant Source_Ptr := Sloc (Expr);
  
!       function Accessibility_Level (Expr : Node_Id) return Node_Id
!         is (Accessibility_Level (Expr, Level, In_Return_Context));
        --  Renaming of the enclosing function to facilitate recursive calls
  
        function Make_Level_Literal (Level : Uint) return Node_Id;
--- 119,127 ----
     is
        Loc : constant Source_Ptr := Sloc (Expr);
  
!       function Accessibility_Level (Expr : Node_Id) return Node_Id is
!         (Accessibility_Level
!           (Expr, Level, In_Return_Context, Allow_Alt_Model));
        --  Renaming of the enclosing function to facilitate recursive calls
  
        function Make_Level_Literal (Level : Uint) return Node_Id;
*************** package body Accessibility is
*** 164,170 ****
              Ent := Defining_Entity_Or_Empty (Node_Par);
  
              if Present (Ent) then
!                Encl_Scop := Find_Enclosing_Scope (Ent);
  
                 --  Ignore transient scopes made during expansion while also
                 --  taking into account certain expansions - like iterators
--- 165,183 ----
              Ent := Defining_Entity_Or_Empty (Node_Par);
  
              if Present (Ent) then
!                --  X'Old is nested within the current subprogram, so we do not
!                --  want Find_Enclosing_Scope of that subprogram. If this is an
!                --  allocator, then we're looking for the innermost master of
!                --  the call, so again we do not want Find_Enclosing_Scope.
! 
!                if (Nkind (N) = N_Attribute_Reference
!                     and then Attribute_Name (N) = Name_Old)
!                  or else Nkind (N) = N_Allocator
!                then
!                   Encl_Scop := Ent;
!                else
!                   Encl_Scop := Find_Enclosing_Scope (Ent);
!                end if;
  
                 --  Ignore transient scopes made during expansion while also
                 --  taking into account certain expansions - like iterators
*************** package body Accessibility is
*** 177,193 ****
                 then
                    --  Note that in some rare cases the scope depth may not be
                    --  set, for example, when we are in the middle of analyzing
!                   --  a type and the enclosing scope is said type. So, instead,
!                   --  continue to move up the parent chain since the scope
!                   --  depth of the type's parent is the same as that of the
!                   --  type.
  
!                   if not Scope_Depth_Set (Encl_Scop) then
!                      pragma Assert (Nkind (Parent (Encl_Scop))
!                                      = N_Full_Type_Declaration);
                    else
!                      return
!                        Scope_Depth (Encl_Scop) + Master_Lvl_Modifier;
                    end if;
                 end if;
  
--- 190,202 ----
                 then
                    --  Note that in some rare cases the scope depth may not be
                    --  set, for example, when we are in the middle of analyzing
!                   --  a type and the enclosing scope is said type. In that case
!                   --  simply return zero for the outermost scope.
  
!                   if Scope_Depth_Set (Encl_Scop) then
!                      return Scope_Depth (Encl_Scop) + Master_Lvl_Modifier;
                    else
!                      return Uint_0;
                    end if;
                 end if;
  
*************** package body Accessibility is
*** 424,430 ****
           when N_Aggregate =>
              return Make_Level_Literal (Innermost_Master_Scope_Depth (Expr));
  
!          --  The accessibility level is that of the access type, except for an
           --  anonymous allocators which have special rules defined in RM 3.10.2
           --  (14/3).
  
--- 433,439 ----
           when N_Aggregate =>
              return Make_Level_Literal (Innermost_Master_Scope_Depth (Expr));
  
!          --  The accessibility level is that of the access type, except for
           --  anonymous allocators which have special rules defined in RM 3.10.2
           --  (14/3).
  
*************** package body Accessibility is
*** 472,477 ****
--- 481,487 ----
                   and then Present (Get_Dynamic_Accessibility (Entity (Pre)))
                   and then Level = Dynamic_Level
                 then
+                   pragma Assert (Is_Anonymous_Access_Type (Etype (Pre)));
                    return New_Occurrence_Of
                             (Get_Dynamic_Accessibility (Entity (Pre)), Loc);
  
*************** package body Accessibility is
*** 1153,1159 ****
        --  Obtain the first selector or choice from a given association
  
        function Is_Formal_Of_Current_Function
!         (Assoc_Expr : Entity_Id) return Boolean;
        --  Predicate to test if a given expression associated with a
        --  discriminant is a formal parameter to the function in which the
        --  return construct we checking applies to.
--- 1163,1169 ----
        --  Obtain the first selector or choice from a given association
  
        function Is_Formal_Of_Current_Function
!         (Assoc_Expr : Node_Id) return Boolean;
        --  Predicate to test if a given expression associated with a
        --  discriminant is a formal parameter to the function in which the
        --  return construct we checking applies to.
*************** package body Accessibility is
*** 1180,1186 ****
        -----------------------------------
  
        function Is_Formal_Of_Current_Function
!         (Assoc_Expr : Entity_Id) return Boolean is
        begin
           return Is_Entity_Name (Assoc_Expr)
                    and then Enclosing_Subprogram
--- 1190,1196 ----
        -----------------------------------
  
        function Is_Formal_Of_Current_Function
!         (Assoc_Expr : Node_Id) return Boolean is
        begin
           return Is_Entity_Name (Assoc_Expr)
                    and then Enclosing_Subprogram
diff -Nrcpad gcc-13.2.0/gcc/ada/accessibility.ads gcc-14.1.0/gcc/ada/accessibility.ads
*** gcc-13.2.0/gcc/ada/accessibility.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/accessibility.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Accessibility is
*** 201,207 ****
       (Func_Id : Entity_Id) return Boolean;
     --  Ada 2012 (AI05-0234): Return True if the function needs an implicit
     --  parameter to identify the accessibility level of the function result
!    --  "determined by the point of call".
  
     function Subprogram_Access_Level (Subp : Entity_Id) return Uint;
     --  Return the accessibility level of the view denoted by Subp
--- 201,208 ----
       (Func_Id : Entity_Id) return Boolean;
     --  Ada 2012 (AI05-0234): Return True if the function needs an implicit
     --  parameter to identify the accessibility level of the function result
!    --  "determined by the point of call". Return False if the type of the
!    --  function result is a private type and its completion is unavailable.
  
     function Subprogram_Access_Level (Subp : Entity_Id) return Uint;
     --  Return the accessibility level of the view denoted by Subp
diff -Nrcpad gcc-13.2.0/gcc/ada/ada_get_targ.adb gcc-14.1.0/gcc/ada/ada_get_targ.adb
*** gcc-13.2.0/gcc/ada/ada_get_targ.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/ada_get_targ.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Get_Targ is
*** 209,223 ****
     end Get_Double_Scalar_Alignment;
  
     -----------------------------
-    -- Get_Max_Unaligned_Field --
-    -----------------------------
- 
-    function Get_Max_Unaligned_Field return Pos is
-    begin
-       return 64;  -- Can be different on some targets
-    end Get_Max_Unaligned_Field;
- 
-    -----------------------------
     -- Register_Back_End_Types --
     -----------------------------
  
--- 209,214 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/adabkend.adb gcc-14.1.0/gcc/ada/adabkend.adb
*** gcc-13.2.0/gcc/ada/adabkend.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/adabkend.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/adabkend.ads gcc-14.1.0/gcc/ada/adabkend.ads
*** gcc-13.2.0/gcc/ada/adabkend.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/adabkend.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/adadecode.c gcc-14.1.0/gcc/ada/adadecode.c
*** gcc-13.2.0/gcc/ada/adadecode.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/adadecode.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2001-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2001-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/adadecode.h gcc-14.1.0/gcc/ada/adadecode.h
*** gcc-13.2.0/gcc/ada/adadecode.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/adadecode.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2001-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2001-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/adaint.c gcc-14.1.0/gcc/ada/adaint.c
*** gcc-13.2.0/gcc/ada/adaint.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/adaint.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 85,90 ****
--- 85,93 ----
  
  #if defined (__APPLE__)
  #include <unistd.h>
+ #include <signal.h>
+ #include <sys/time.h>
+ #include <TargetConditionals.h>
  #endif
  
  #if defined (__hpux__)
*************** UINT __gnat_current_ccs_encoding;
*** 240,245 ****
--- 243,249 ----
  #define DIR_SEPARATOR '\\'
  
  #else
+ #include <signal.h>
  #include <utime.h>
  #endif
  
*************** __gnat_get_file_names_case_sensitive (vo
*** 613,623 ****
        else
  	{
  	  /* By default, we suppose filesystems aren't case sensitive on
! 	     Windows and Darwin (but they are on arm-darwin).  */
! #if defined (WINNT) || defined (__DJGPP__) \
!   || (defined (__APPLE__) && !(defined (__arm__) || defined (__arm64__)))
  	  file_names_case_sensitive_cache = 0;
  #else
  	  file_names_case_sensitive_cache = 1;
  #endif
  	}
--- 617,634 ----
        else
  	{
  	  /* By default, we suppose filesystems aren't case sensitive on
! 	     Windows or DOS.  */
! #if defined (WINNT) || defined (__DJGPP__)
  	  file_names_case_sensitive_cache = 0;
+ #elif defined (__APPLE__)
+ 	  /* By default, macOS volumes are case-insensitive, iOS
+ 	     volumes are case-sensitive.  */
+ #if TARGET_OS_IOS
+ 	  file_names_case_sensitive_cache = 1;
  #else
+ 	  file_names_case_sensitive_cache = 0;
+ #endif
+ #else /* Neither Windows nor Apple.  */
  	  file_names_case_sensitive_cache = 1;
  #endif
  	}
*************** __gnat_os_filename (char *filename ATTRI
*** 747,761 ****
  /* Delete a file.  */
  
  int
! __gnat_unlink (char *path)
  {
  #if defined (__MINGW32__) && ! defined (__vxworks) && ! defined (IS_CROSS)
!   {
!     TCHAR wpath[GNAT_MAX_PATH_LEN];
  
      S2WSC (wpath, path, GNAT_MAX_PATH_LEN);
!     return _tunlink (wpath);
!   }
  #else
    return unlink (path);
  #endif
--- 758,776 ----
  /* Delete a file.  */
  
  int
! __gnat_unlink (char *path, int encoding ATTRIBUTE_UNUSED)
  {
  #if defined (__MINGW32__) && ! defined (__vxworks) && ! defined (IS_CROSS)
!   TCHAR wpath[GNAT_MAX_PATH_LEN];
  
+   if (encoding == Encoding_Unspecified)
      S2WSC (wpath, path, GNAT_MAX_PATH_LEN);
!   else if (encoding == Encoding_UTF8)
!     S2WSU (wpath, path, GNAT_MAX_PATH_LEN);
!   else
!     S2WS (wpath, path, GNAT_MAX_PATH_LEN);
! 
!   return _tunlink (wpath);
  #else
    return unlink (path);
  #endif
*************** extern long long __gnat_file_time(char*
*** 1507,1513 ****
      long long ll_time;
    } t_write;
  
!   if (!GetFileAttributesExA(name, GetFileExInfoStandard, &fad)) {
      return LLONG_MIN;
    }
  
--- 1522,1537 ----
      long long ll_time;
    } t_write;
  
!   TCHAR wname [GNAT_MAX_PATH_LEN + 2];
!   int name_len;
! 
!   S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2);
!   name_len = _tcslen (wname);
! 
!   if (name_len > GNAT_MAX_PATH_LEN)
!     return LLONG_MIN;
! 
!   if (!GetFileAttributesEx(wname, GetFileExInfoStandard, &fad)) {
      return LLONG_MIN;
    }
  
diff -Nrcpad gcc-13.2.0/gcc/ada/adaint.h gcc-14.1.0/gcc/ada/adaint.h
*** gcc-13.2.0/gcc/ada/adaint.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/adaint.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** extern int    __gnat_open_new_temp		   (
*** 172,178 ****
  extern int    __gnat_mkdir			   (char *, int);
  extern int    __gnat_stat			   (char *,
  						    GNAT_STRUCT_STAT *);
! extern int    __gnat_unlink                        (char *);
  extern int    __gnat_rename                        (char *, char *);
  extern int    __gnat_chdir                         (char *);
  extern int    __gnat_rmdir                         (char *);
--- 172,178 ----
  extern int    __gnat_mkdir			   (char *, int);
  extern int    __gnat_stat			   (char *,
  						    GNAT_STRUCT_STAT *);
! extern int    __gnat_unlink                        (char *, int encoding);
  extern int    __gnat_rename                        (char *, char *);
  extern int    __gnat_chdir                         (char *);
  extern int    __gnat_rmdir                         (char *);
diff -Nrcpad gcc-13.2.0/gcc/ada/affinity.c gcc-14.1.0/gcc/ada/affinity.c
*** gcc-13.2.0/gcc/ada/affinity.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/affinity.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/ali-util.adb gcc-14.1.0/gcc/ada/ali-util.adb
*** gcc-13.2.0/gcc/ada/ali-util.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/ali-util.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body ALI.Util is
*** 447,453 ****
              Stringt.Release;
           end if;
  
!          if (not Read_Only) or else Source.Table (Src).Source_Found then
              if not Source.Table (Src).Source_Found
                or else Sdep.Table (D).Stamp /= Source.Table (Src).Stamp
              then
--- 447,453 ----
              Stringt.Release;
           end if;
  
!          if not Read_Only or else Source.Table (Src).Source_Found then
              if not Source.Table (Src).Source_Found
                or else Sdep.Table (D).Stamp /= Source.Table (Src).Stamp
              then
diff -Nrcpad gcc-13.2.0/gcc/ada/ali-util.ads gcc-14.1.0/gcc/ada/ali-util.ads
*** gcc-13.2.0/gcc/ada/ali-util.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/ali-util.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/ali.adb gcc-14.1.0/gcc/ada/ali.adb
*** gcc-13.2.0/gcc/ada/ali.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/ali.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/ali.ads gcc-14.1.0/gcc/ada/ali.ads
*** gcc-13.2.0/gcc/ada/ali.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/ali.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/alloc.ads gcc-14.1.0/gcc/ada/alloc.ads
*** gcc-13.2.0/gcc/ada/alloc.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/alloc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/argv-lynxos178-raven-cert.c gcc-14.1.0/gcc/ada/argv-lynxos178-raven-cert.c
*** gcc-13.2.0/gcc/ada/argv-lynxos178-raven-cert.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/argv-lynxos178-raven-cert.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2023, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/argv.c gcc-14.1.0/gcc/ada/argv.c
*** gcc-13.2.0/gcc/ada/argv.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/argv.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2023, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 51,57 ****
--- 51,59 ----
  #include "system.h"
  #endif
  
+ #ifndef LIGHT_RUNTIME
  #include "adaint.h"
+ #endif
  
  #ifdef __cplusplus
  extern "C" {
diff -Nrcpad gcc-13.2.0/gcc/ada/aspects.adb gcc-14.1.0/gcc/ada/aspects.adb
*** gcc-13.2.0/gcc/ada/aspects.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/aspects.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Aspects is
*** 41,60 ****
     --  type. False means it is not inherited.
  
     Base_Aspect : constant array (Aspect_Id) of Boolean :=
!      (Aspect_Atomic                  => True,
!       Aspect_Atomic_Components       => True,
!       Aspect_Constant_Indexing       => True,
!       Aspect_Default_Iterator        => True,
!       Aspect_Discard_Names           => True,
!       Aspect_Independent_Components  => True,
!       Aspect_Iterator_Element        => True,
!       Aspect_Stable_Properties       => True,
!       Aspect_Type_Invariant          => True,
!       Aspect_Unchecked_Union         => True,
!       Aspect_Variable_Indexing       => True,
!       Aspect_Volatile                => True,
!       Aspect_Volatile_Full_Access    => True,
!       others                         => False);
  
     --  The following array indicates type aspects that are inherited and apply
     --  to the class-wide type as well.
--- 41,60 ----
     --  type. False means it is not inherited.
  
     Base_Aspect : constant array (Aspect_Id) of Boolean :=
!      (Aspect_Atomic                 => True,
!       Aspect_Atomic_Components      => True,
!       Aspect_Constant_Indexing      => True,
!       Aspect_Default_Iterator       => True,
!       Aspect_Discard_Names          => True,
!       Aspect_Independent_Components => True,
!       Aspect_Iterator_Element       => True,
!       Aspect_Stable_Properties      => True,
!       Aspect_Type_Invariant         => True,
!       Aspect_Unchecked_Union        => True,
!       Aspect_Variable_Indexing      => True,
!       Aspect_Volatile               => True,
!       Aspect_Volatile_Full_Access   => True,
!       others                        => False);
  
     --  The following array indicates type aspects that are inherited and apply
     --  to the class-wide type as well.
*************** package body Aspects is
*** 68,97 ****
        Aspect_Variable_Indexing    => True,
        others                      => False);
  
-    ------------------------------------------
-    -- Hash Table for Aspect Specifications --
-    ------------------------------------------
- 
-    type AS_Hash_Range is range 0 .. 510;
-    --  Size of hash table headers
- 
-    function AS_Hash (F : Node_Id) return AS_Hash_Range;
-    --  Hash function for hash table
- 
-    function AS_Hash (F : Node_Id) return AS_Hash_Range is
-    begin
-       return AS_Hash_Range (F mod 511);
-    end AS_Hash;
- 
-    package Aspect_Specifications_Hash_Table is new
-      GNAT.HTable.Simple_HTable
-        (Header_Num => AS_Hash_Range,
-         Element    => List_Id,
-         No_Element => No_List,
-         Key        => Node_Id,
-         Hash       => AS_Hash,
-         Equal      => "=");
- 
     -------------------------------------
     -- Hash Table for Aspect Id Values --
     -------------------------------------
--- 68,73 ----
*************** package body Aspects is
*** 116,134 ****
          Hash       => AI_Hash,
          Equal      => "=");
  
-    ---------------------------
-    -- Aspect_Specifications --
-    ---------------------------
- 
-    function Aspect_Specifications (N : Node_Id) return List_Id is
-    begin
-       if Has_Aspects (N) then
-          return Aspect_Specifications_Hash_Table.Get (N);
-       else
-          return No_List;
-       end if;
-    end Aspect_Specifications;
- 
     --------------------------------
     -- Aspects_On_Body_Or_Stub_OK --
     --------------------------------
--- 92,97 ----
*************** package body Aspects is
*** 161,191 ****
        return True;
     end Aspects_On_Body_Or_Stub_OK;
  
-    ----------------------
-    -- Exchange_Aspects --
-    ----------------------
- 
-    procedure Exchange_Aspects (N1 : Node_Id; N2 : Node_Id) is
-    begin
-       pragma Assert
-         (Permits_Aspect_Specifications (N1)
-            and then Permits_Aspect_Specifications (N2));
- 
-       --  Perform the exchange only when both nodes have lists to be swapped
- 
-       if Has_Aspects (N1) and then Has_Aspects (N2) then
-          declare
-             L1 : constant List_Id := Aspect_Specifications (N1);
-             L2 : constant List_Id := Aspect_Specifications (N2);
-          begin
-             Set_Parent (L1, N2);
-             Set_Parent (L2, N1);
-             Aspect_Specifications_Hash_Table.Set (N1, L2);
-             Aspect_Specifications_Hash_Table.Set (N2, L1);
-          end;
-       end if;
-    end Exchange_Aspects;
- 
     -----------------
     -- Find_Aspect --
     -----------------
--- 124,129 ----
*************** package body Aspects is
*** 193,205 ****
     function Find_Aspect
       (Id            : Entity_Id;
        A             : Aspect_Id;
!       Class_Present : Boolean := False) return Node_Id
     is
!       Decl  : Node_Id;
!       Item  : Node_Id;
!       Owner : Entity_Id;
!       Spec  : Node_Id;
! 
     begin
        Owner := Id;
  
--- 131,144 ----
     function Find_Aspect
       (Id            : Entity_Id;
        A             : Aspect_Id;
!       Class_Present : Boolean := False;
!       Or_Rep_Item   : Boolean := False) return Node_Id
     is
!       Decl                 : Node_Id;
!       Item                 : Node_Id;
!       Owner                : Entity_Id;
!       Spec                 : Node_Id;
!       Alternative_Rep_Item : Node_Id := Empty;
     begin
        Owner := Id;
  
*************** package body Aspects is
*** 231,236 ****
--- 170,187 ----
             and then Class_Present = Sinfo.Nodes.Class_Present (Item)
           then
              return Item;
+ 
+          --  We could do something similar here for an N_Pragma node
+          --  when Get_Aspect_Id (Pragma_Name (Item)) = A, but let's
+          --  wait for a demonstrated need.
+ 
+          elsif Or_Rep_Item
+            and then not Class_Present
+            and then Nkind (Item) = N_Attribute_Definition_Clause
+            and then Get_Aspect_Id (Chars (Item)) = A
+          then
+             --  Remember this candidate in case we don't find anything better
+             Alternative_Rep_Item := Item;
           end if;
  
           Next_Rep_Item (Item);
*************** package body Aspects is
*** 248,253 ****
--- 199,211 ----
        Decl := Parent (Owner);
        if not Permits_Aspect_Specifications (Decl) then
           Decl := Parent (Decl);
+ 
+          if No (Decl) then
+             --  Perhaps this happens because the tree is under construction
+             --  and Parent (Decl) has not been set yet?
+ 
+             return Empty;
+          end if;
        end if;
  
        --  Search the list of aspect specifications for the desired aspect
*************** package body Aspects is
*** 261,274 ****
                 return Spec;
              end if;
  
              Next (Spec);
           end loop;
        end if;
  
        --  The entity does not carry any aspects or the desired aspect was not
!       --  found.
  
!       return Empty;
     end Find_Aspect;
  
     --------------------------
--- 219,245 ----
                 return Spec;
              end if;
  
+             declare
+                use User_Aspect_Support;
+             begin
+                if Get_Aspect_Id (Spec) = Aspect_User_Aspect
+                   and then not Analyzed (Spec)
+                   and then
+                     Analyze_User_Aspect_Aspect_Specification_Hook /= null
+                then
+                   Analyze_User_Aspect_Aspect_Specification_Hook.all (Spec);
+                end if;
+             end;
+ 
              Next (Spec);
           end loop;
        end if;
  
        --  The entity does not carry any aspects or the desired aspect was not
!       --  found. We have no N_Aspect_Specification node to return, but
!       --  Alternative_Rep_Item may have been set (if Or_Rep_Item is True).
  
!       return Alternative_Rep_Item;
     end Find_Aspect;
  
     --------------------------
*************** package body Aspects is
*** 325,330 ****
--- 296,307 ----
        return Present (Find_Aspect (Id, A, Class_Present => Class_Present));
     end Has_Aspect;
  
+    function Has_Aspects (N : Node_Id) return Boolean
+    is (Atree.Present (N) and then
+        Permits_Aspect_Specifications (N) and then
+        Nlists.Present (Sinfo.Nodes.Aspect_Specifications (N)) and then
+        Nlists.Is_Non_Empty_List (Sinfo.Nodes.Aspect_Specifications (N)));
+ 
     ------------------
     -- Is_Aspect_Id --
     ------------------
*************** package body Aspects is
*** 344,351 ****
     begin
        if Has_Aspects (From) then
           Set_Aspect_Specifications (To, Aspect_Specifications (From));
!          Aspect_Specifications_Hash_Table.Remove (From);
!          Set_Has_Aspects (From, False);
        end if;
     end Move_Aspects;
  
--- 321,327 ----
     begin
        if Has_Aspects (From) then
           Set_Aspect_Specifications (To, Aspect_Specifications (From));
!          Set_Aspect_Specifications (From, No_List);
        end if;
     end Move_Aspects;
  
*************** package body Aspects is
*** 452,457 ****
--- 428,448 ----
        end if;
     end Move_Or_Merge_Aspects;
  
+    -------------------
+    --  Copy_Aspects --
+    -------------------
+ 
+    procedure Copy_Aspects (From : Node_Id; To : Node_Id) is
+ 
+    begin
+       if not Has_Aspects (From) then
+          return;
+       end if;
+ 
+       Set_Aspect_Specifications
+          (To, New_Copy_List (Aspect_Specifications (From)));
+    end Copy_Aspects;
+ 
     -----------------------------------
     -- Permits_Aspect_Specifications --
     -----------------------------------
*************** package body Aspects is
*** 514,521 ****
     procedure Remove_Aspects (N : Node_Id) is
     begin
        if Has_Aspects (N) then
!          Aspect_Specifications_Hash_Table.Remove (N);
!          Set_Has_Aspects (N, False);
        end if;
     end Remove_Aspects;
  
--- 505,511 ----
     procedure Remove_Aspects (N : Node_Id) is
     begin
        if Has_Aspects (N) then
!          Set_Aspect_Specifications (N, No_List);
        end if;
     end Remove_Aspects;
  
*************** package body Aspects is
*** 542,547 ****
--- 532,538 ----
        --  ...except for these:
  
        Result (Aspect_Dynamic_Predicate)  := Aspect_Predicate;
+       Result (Aspect_Ghost_Predicate)    := Aspect_Predicate;
        Result (Aspect_Inline_Always)      := Aspect_Inline;
        Result (Aspect_Interrupt_Priority) := Aspect_Priority;
        Result (Aspect_Postcondition)      := Aspect_Post;
*************** package body Aspects is
*** 561,580 ****
        return Canonical_Aspect (A1) = Canonical_Aspect (A2);
     end Same_Aspect;
  
!    -------------------------------
!    -- Set_Aspect_Specifications --
!    -------------------------------
  
!    procedure Set_Aspect_Specifications (N : Node_Id; L : List_Id) is
!    begin
!       pragma Assert (Permits_Aspect_Specifications (N));
!       pragma Assert (not Has_Aspects (N));
!       pragma Assert (L /= No_List);
  
!       Set_Has_Aspects (N);
!       Set_Parent (L, N);
!       Aspect_Specifications_Hash_Table.Set (N, L);
!    end Set_Aspect_Specifications;
  
  --  Package initialization sets up Aspect Id hash table
  
--- 552,592 ----
        return Canonical_Aspect (A1) = Canonical_Aspect (A2);
     end Same_Aspect;
  
!    package body User_Aspect_Support is
  
!       --  This is similar to the way that user-defined check names are
!       --  managed via package Checks.Check_Names; simple global state.
  
!       UAD_Pragma_Map_Size : constant := 511;
! 
!       subtype UAD_Pragma_Map_Header is
!         Integer range 0 .. UAD_Pragma_Map_Size - 1;
! 
!       function UAD_Pragma_Map_Hash (Chars : Name_Id)
!         return UAD_Pragma_Map_Header
!       is (UAD_Pragma_Map_Header (Chars mod UAD_Pragma_Map_Size));
! 
!       package UAD_Pragma_Map is new GNAT.Htable.Simple_Htable
!         (Header_Num => UAD_Pragma_Map_Header,
!          Key        => Name_Id,
!          Element    => Opt_N_Pragma_Id,
!          No_Element => Empty,
!          Hash       => UAD_Pragma_Map_Hash,
!          Equal      => "=");
! 
!       procedure Register_UAD_Pragma (UAD_Pragma : Node_Id) is
!          Aspect_Name : constant Name_Id :=
!            Chars (Expression
!                     (First (Pragma_Argument_Associations (UAD_Pragma))));
!       begin
!          UAD_Pragma_Map.Set (Aspect_Name, UAD_Pragma);
!       end Register_UAD_Pragma;
! 
!       function Registered_UAD_Pragma (Aspect_Name : Name_Id) return Node_Id is
!       begin
!          return UAD_Pragma_Map.Get (Aspect_Name);
!       end Registered_UAD_Pragma;
!    end User_Aspect_Support;
  
  --  Package initialization sets up Aspect Id hash table
  
diff -Nrcpad gcc-13.2.0/gcc/ada/aspects.ads gcc-14.1.0/gcc/ada/aspects.ads
*** gcc-13.2.0/gcc/ada/aspects.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/aspects.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Aspects is
*** 72,77 ****
--- 72,78 ----
        Aspect_Address,
        Aspect_Aggregate,
        Aspect_Alignment,
+       Aspect_Always_Terminates,             -- GNAT
        Aspect_Annotate,                      -- GNAT
        Aspect_Async_Readers,                 -- GNAT
        Aspect_Async_Writers,                 -- GNAT
*************** package Aspects is
*** 96,105 ****
--- 97,108 ----
        Aspect_Dynamic_Predicate,
        Aspect_Effective_Reads,               -- GNAT
        Aspect_Effective_Writes,              -- GNAT
+       Aspect_Exceptional_Cases,             -- GNAT
        Aspect_Extensions_Visible,            -- GNAT
        Aspect_External_Name,
        Aspect_External_Tag,
        Aspect_Ghost,                         -- GNAT
+       Aspect_Ghost_Predicate,               -- GNAT
        Aspect_Global,                        -- GNAT
        Aspect_GNAT_Annotate,                 -- GNAT
        Aspect_Implicit_Dereference,
*************** package Aspects is
*** 113,118 ****
--- 116,122 ----
        Aspect_Iterable,                      -- GNAT
        Aspect_Link_Name,
        Aspect_Linker_Section,                -- GNAT
+       Aspect_Local_Restrictions,            -- GNAT
        Aspect_Machine_Radix,
        Aspect_Max_Entry_Queue_Depth,         -- GNAT
        Aspect_Max_Entry_Queue_Length,
*************** package Aspects is
*** 142,147 ****
--- 146,152 ----
        Aspect_Relaxed_Initialization,        -- GNAT
        Aspect_Scalar_Storage_Order,          -- GNAT
        Aspect_Secondary_Stack_Size,          -- GNAT
+       Aspect_Side_Effects,                  -- GNAT
        Aspect_Simple_Storage_Pool,           -- GNAT
        Aspect_Size,
        Aspect_Small,
*************** package Aspects is
*** 160,165 ****
--- 165,171 ----
        Aspect_Type_Invariant,
        Aspect_Unimplemented,                 -- GNAT
        Aspect_Unsuppress,
+       Aspect_User_Aspect,                   -- GNAT
        Aspect_Value_Size,                    -- GNAT
        Aspect_Variable_Indexing,
        Aspect_Volatile_Function,             -- GNAT
*************** package Aspects is
*** 259,264 ****
--- 265,271 ----
  
     Implementation_Defined_Aspect : constant array (Aspect_Id) of Boolean :=
       (Aspect_Abstract_State             => True,
+       Aspect_Always_Terminates          => True,
        Aspect_Annotate                   => True,
        Aspect_Async_Readers              => True,
        Aspect_Async_Writers              => True,
*************** package Aspects is
*** 269,277 ****
--- 276,286 ----
        Aspect_Dimension_System           => True,
        Aspect_Effective_Reads            => True,
        Aspect_Effective_Writes           => True,
+       Aspect_Exceptional_Cases          => True,
        Aspect_Extensions_Visible         => True,
        Aspect_Favor_Top_Level            => True,
        Aspect_Ghost                      => True,
+       Aspect_Ghost_Predicate            => True,
        Aspect_Global                     => True,
        Aspect_GNAT_Annotate              => True,
        Aspect_Inline_Always              => True,
*************** package Aspects is
*** 289,296 ****
--- 298,307 ----
        Aspect_Scalar_Storage_Order       => True,
        Aspect_Secondary_Stack_Size       => True,
        Aspect_Shared                     => True,
+       Aspect_Side_Effects               => True,
        Aspect_Simple_Storage_Pool        => True,
        Aspect_Simple_Storage_Pool_Type   => True,
+       Aspect_Subprogram_Variant         => True,
        Aspect_Suppress_Debug_Info        => True,
        Aspect_Suppress_Initialization    => True,
        Aspect_Thread_Local_Storage       => True,
*************** package Aspects is
*** 365,370 ****
--- 376,382 ----
        Aspect_Address                    => Expression,
        Aspect_Aggregate                  => Expression,
        Aspect_Alignment                  => Expression,
+       Aspect_Always_Terminates          => Optional_Expression,
        Aspect_Annotate                   => Expression,
        Aspect_Async_Readers              => Optional_Expression,
        Aspect_Async_Writers              => Optional_Expression,
*************** package Aspects is
*** 389,398 ****
--- 401,412 ----
        Aspect_Dynamic_Predicate          => Expression,
        Aspect_Effective_Reads            => Optional_Expression,
        Aspect_Effective_Writes           => Optional_Expression,
+       Aspect_Exceptional_Cases          => Expression,
        Aspect_Extensions_Visible         => Optional_Expression,
        Aspect_External_Name              => Expression,
        Aspect_External_Tag               => Expression,
        Aspect_Ghost                      => Optional_Expression,
+       Aspect_Ghost_Predicate            => Expression,
        Aspect_Global                     => Expression,
        Aspect_GNAT_Annotate              => Expression,
        Aspect_Implicit_Dereference       => Name,
*************** package Aspects is
*** 406,411 ****
--- 420,426 ----
        Aspect_Iterator_Element           => Name,
        Aspect_Link_Name                  => Expression,
        Aspect_Linker_Section             => Expression,
+       Aspect_Local_Restrictions         => Expression,
        Aspect_Machine_Radix              => Expression,
        Aspect_Max_Entry_Queue_Depth      => Expression,
        Aspect_Max_Entry_Queue_Length     => Expression,
*************** package Aspects is
*** 435,440 ****
--- 450,456 ----
        Aspect_Relaxed_Initialization     => Optional_Expression,
        Aspect_Scalar_Storage_Order       => Expression,
        Aspect_Secondary_Stack_Size       => Expression,
+       Aspect_Side_Effects               => Optional_Expression,
        Aspect_Simple_Storage_Pool        => Name,
        Aspect_Size                       => Expression,
        Aspect_Small                      => Expression,
*************** package Aspects is
*** 453,458 ****
--- 469,475 ----
        Aspect_Type_Invariant             => Expression,
        Aspect_Unimplemented              => Optional_Expression,
        Aspect_Unsuppress                 => Name,
+       Aspect_User_Aspect                => Expression,
        Aspect_Value_Size                 => Expression,
        Aspect_Variable_Indexing          => Name,
        Aspect_Volatile_Function          => Optional_Expression,
*************** package Aspects is
*** 470,475 ****
--- 487,493 ----
        Aspect_Address                      => True,
        Aspect_Aggregate                    => False,
        Aspect_Alignment                    => True,
+       Aspect_Always_Terminates            => False,
        Aspect_Annotate                     => False,
        Aspect_Async_Readers                => False,
        Aspect_Async_Writers                => False,
*************** package Aspects is
*** 496,508 ****
        Aspect_Dynamic_Predicate            => False,
        Aspect_Effective_Reads              => False,
        Aspect_Effective_Writes             => False,
        Aspect_Exclusive_Functions          => False,
        Aspect_Extensions_Visible           => False,
        Aspect_External_Name                => False,
        Aspect_External_Tag                 => False,
        Aspect_Ghost                        => False,
        Aspect_Global                       => False,
!       Aspect_GNAT_Annotate               => False,
        Aspect_Implicit_Dereference         => False,
        Aspect_Initial_Condition            => False,
        Aspect_Initializes                  => False,
--- 514,528 ----
        Aspect_Dynamic_Predicate            => False,
        Aspect_Effective_Reads              => False,
        Aspect_Effective_Writes             => False,
+       Aspect_Exceptional_Cases            => False,
        Aspect_Exclusive_Functions          => False,
        Aspect_Extensions_Visible           => False,
        Aspect_External_Name                => False,
        Aspect_External_Tag                 => False,
        Aspect_Ghost                        => False,
+       Aspect_Ghost_Predicate              => False,
        Aspect_Global                       => False,
!       Aspect_GNAT_Annotate                => False,
        Aspect_Implicit_Dereference         => False,
        Aspect_Initial_Condition            => False,
        Aspect_Initializes                  => False,
*************** package Aspects is
*** 514,519 ****
--- 534,540 ----
        Aspect_Iterator_Element             => False,
        Aspect_Link_Name                    => True,
        Aspect_Linker_Section               => True,
+       Aspect_Local_Restrictions           => False,
        Aspect_Machine_Radix                => True,
        Aspect_Max_Entry_Queue_Depth        => False,
        Aspect_Max_Entry_Queue_Length       => False,
*************** package Aspects is
*** 543,548 ****
--- 564,570 ----
        Aspect_Relaxed_Initialization       => False,
        Aspect_Scalar_Storage_Order         => True,
        Aspect_Secondary_Stack_Size         => True,
+       Aspect_Side_Effects                 => False,
        Aspect_Simple_Storage_Pool          => True,
        Aspect_Size                         => True,
        Aspect_Small                        => True,
*************** package Aspects is
*** 561,566 ****
--- 583,589 ----
        Aspect_Type_Invariant               => False,
        Aspect_Unimplemented                => False,
        Aspect_Unsuppress                   => False,
+       Aspect_User_Aspect                  => False,
        Aspect_Value_Size                   => True,
        Aspect_Variable_Indexing            => False,
        Aspect_Volatile_Function            => False,
*************** package Aspects is
*** 621,626 ****
--- 644,650 ----
        Aspect_Aggregate                    => Name_Aggregate,
        Aspect_Alignment                    => Name_Alignment,
        Aspect_All_Calls_Remote             => Name_All_Calls_Remote,
+       Aspect_Always_Terminates            => Name_Always_Terminates,
        Aspect_Annotate                     => Name_Annotate,
        Aspect_Async_Readers                => Name_Async_Readers,
        Aspect_Async_Writers                => Name_Async_Writers,
*************** package Aspects is
*** 653,658 ****
--- 677,683 ----
        Aspect_Effective_Reads              => Name_Effective_Reads,
        Aspect_Effective_Writes             => Name_Effective_Writes,
        Aspect_Elaborate_Body               => Name_Elaborate_Body,
+       Aspect_Exceptional_Cases            => Name_Exceptional_Cases,
        Aspect_Exclusive_Functions          => Name_Exclusive_Functions,
        Aspect_Export                       => Name_Export,
        Aspect_Extensions_Visible           => Name_Extensions_Visible,
*************** package Aspects is
*** 661,666 ****
--- 686,692 ----
        Aspect_Favor_Top_Level              => Name_Favor_Top_Level,
        Aspect_Full_Access_Only             => Name_Full_Access_Only,
        Aspect_Ghost                        => Name_Ghost,
+       Aspect_Ghost_Predicate              => Name_Ghost_Predicate,
        Aspect_Global                       => Name_Global,
        Aspect_GNAT_Annotate                => Name_GNAT_Annotate,
        Aspect_Implicit_Dereference         => Name_Implicit_Dereference,
*************** package Aspects is
*** 681,686 ****
--- 707,713 ----
        Aspect_Link_Name                    => Name_Link_Name,
        Aspect_Linker_Section               => Name_Linker_Section,
        Aspect_Lock_Free                    => Name_Lock_Free,
+       Aspect_Local_Restrictions           => Name_Local_Restrictions,
        Aspect_Machine_Radix                => Name_Machine_Radix,
        Aspect_Max_Entry_Queue_Depth        => Name_Max_Entry_Queue_Depth,
        Aspect_Max_Entry_Queue_Length       => Name_Max_Entry_Queue_Length,
*************** package Aspects is
*** 725,730 ****
--- 752,758 ----
        Aspect_Secondary_Stack_Size         => Name_Secondary_Stack_Size,
        Aspect_Shared                       => Name_Shared,
        Aspect_Shared_Passive               => Name_Shared_Passive,
+       Aspect_Side_Effects                 => Name_Side_Effects,
        Aspect_Simple_Storage_Pool          => Name_Simple_Storage_Pool,
        Aspect_Simple_Storage_Pool_Type     => Name_Simple_Storage_Pool_Type,
        Aspect_Size                         => Name_Size,
*************** package Aspects is
*** 753,758 ****
--- 781,787 ----
        Aspect_Unreferenced                 => Name_Unreferenced,
        Aspect_Unreferenced_Objects         => Name_Unreferenced_Objects,
        Aspect_Unsuppress                   => Name_Unsuppress,
+       Aspect_User_Aspect                  => Name_User_Aspect,
        Aspect_Value_Size                   => Name_Value_Size,
        Aspect_Variable_Indexing            => Name_Variable_Indexing,
        Aspect_Volatile                     => Name_Volatile,
*************** package Aspects is
*** 906,911 ****
--- 935,941 ----
        Aspect_External_Name                => Always_Delay,
        Aspect_External_Tag                 => Always_Delay,
        Aspect_Favor_Top_Level              => Always_Delay,
+       Aspect_Ghost_Predicate              => Always_Delay,
        Aspect_Implicit_Dereference         => Always_Delay,
        Aspect_Independent                  => Always_Delay,
        Aspect_Independent_Components       => Always_Delay,
*************** package Aspects is
*** 968,973 ****
--- 998,1004 ----
        Aspect_Write                        => Always_Delay,
  
        Aspect_Abstract_State               => Never_Delay,
+       Aspect_Always_Terminates            => Never_Delay,
        Aspect_Annotate                     => Never_Delay,
        Aspect_Async_Readers                => Never_Delay,
        Aspect_Async_Writers                => Never_Delay,
*************** package Aspects is
*** 981,986 ****
--- 1012,1018 ----
        Aspect_Disable_Controlled           => Never_Delay,
        Aspect_Effective_Reads              => Never_Delay,
        Aspect_Effective_Writes             => Never_Delay,
+       Aspect_Exceptional_Cases            => Never_Delay,
        Aspect_Export                       => Never_Delay,
        Aspect_Extensions_Visible           => Never_Delay,
        Aspect_Ghost                        => Never_Delay,
*************** package Aspects is
*** 988,993 ****
--- 1020,1026 ----
        Aspect_GNAT_Annotate                => Never_Delay,
        Aspect_Import                       => Never_Delay,
        Aspect_Initial_Condition            => Never_Delay,
+       Aspect_Local_Restrictions           => Never_Delay,
        Aspect_Initializes                  => Never_Delay,
        Aspect_Max_Entry_Queue_Depth        => Never_Delay,
        Aspect_Max_Entry_Queue_Length       => Never_Delay,
*************** package Aspects is
*** 1004,1009 ****
--- 1037,1043 ----
        Aspect_Refined_Post                 => Never_Delay,
        Aspect_Refined_State                => Never_Delay,
        Aspect_Relaxed_Initialization       => Never_Delay,
+       Aspect_Side_Effects                 => Never_Delay,
        Aspect_SPARK_Mode                   => Never_Delay,
        Aspect_Stable_Properties            => Always_Delay,
        Aspect_Static                       => Never_Delay,
*************** package Aspects is
*** 1011,1016 ****
--- 1045,1051 ----
        Aspect_Synchronization              => Never_Delay,
        Aspect_Test_Case                    => Never_Delay,
        Aspect_Unimplemented                => Never_Delay,
+       Aspect_User_Aspect                  => Never_Delay,
        Aspect_Volatile_Function            => Never_Delay,
        Aspect_Warnings                     => Never_Delay,
        Aspect_Yield                        => Never_Delay,
*************** package Aspects is
*** 1112,1146 ****
     --  implemented internally with a hash table in the body, that provides
     --  access to aspect specifications.
  
-    function Aspect_Specifications (N : Node_Id) return List_Id;
-    --  Given a node N, returns the list of N_Aspect_Specification nodes that
-    --  are attached to this declaration node. If the node is in the class of
-    --  declaration nodes that permit aspect specifications, as defined by the
-    --  predicate above, and if their Has_Aspects flag is set to True, then this
-    --  will always be a non-empty list. If this flag is set to False, then
-    --  No_List is returned. Normally, the only nodes that have Has_Aspects set
-    --  True are the nodes for which Permits_Aspect_Specifications would return
-    --  True (i.e. the declaration nodes defined in the RM as permitting the
-    --  presence of Aspect_Specifications). However, it is possible for the
-    --  flag Has_Aspects to be set on other nodes as a result of Rewrite and
-    --  Replace calls, and this function may be used to retrieve the aspect
-    --  specifications for the original rewritten node in such cases.
- 
     function Aspects_On_Body_Or_Stub_OK (N : Node_Id) return Boolean;
     --  N denotes a body [stub] with aspects. Determine whether all aspects of N
     --  are allowed to appear on a body [stub].
  
!    procedure Exchange_Aspects (N1 : Node_Id; N2 : Node_Id);
!    --  Exchange the aspect specifications of two nodes. If either node lacks an
!    --  aspect specification list, the routine has no effect. It is assumed that
!    --  both nodes can support aspects.
  
     function Find_Aspect (Id            : Entity_Id;
                           A             : Aspect_Id;
!                          Class_Present : Boolean := False) return Node_Id;
     --  Find the aspect specification of aspect A (or A'Class if Class_Present)
     --  associated with entity I.
!    --  Return Empty if Id does not have the requested aspect.
  
     function Find_Value_Of_Aspect
       (Id            : Entity_Id;
--- 1147,1173 ----
     --  implemented internally with a hash table in the body, that provides
     --  access to aspect specifications.
  
     function Aspects_On_Body_Or_Stub_OK (N : Node_Id) return Boolean;
     --  N denotes a body [stub] with aspects. Determine whether all aspects of N
     --  are allowed to appear on a body [stub].
  
!    procedure Copy_Aspects (From : Node_Id; To : Node_Id);
!    --  Create a copy of Aspect of From and add them to To.
  
     function Find_Aspect (Id            : Entity_Id;
                           A             : Aspect_Id;
!                          Class_Present : Boolean := False;
!                          Or_Rep_Item   : Boolean := False) return Node_Id;
     --  Find the aspect specification of aspect A (or A'Class if Class_Present)
     --  associated with entity I.
!    --  If found, then return the aspect specification.
!    --  If not found and Or_Rep_Item is true, then look for a representation
!    --  item (as opposed to an N_Aspect_Specification node) which specifies
!    --  the given aspect; if found, then return the representation item.
!    --  [Currently only N_Attribute_Definition_Clause representation items
!    --  are checked for, but support for detecting N_Pragma representation
!    --  items could easily be added in the future if there is a need.]
!    --  Otherwise, return Empty.
  
     function Find_Value_Of_Aspect
       (Id            : Entity_Id;
*************** package Aspects is
*** 1154,1159 ****
--- 1181,1189 ----
                          Class_Present : Boolean := False) return Boolean;
     --  Determine whether entity Id has aspect A (or A'Class, if Class_Present)
  
+    function Has_Aspects (N : Node_Id) return Boolean;
+    --  Returns whether the node has any aspect specifications
+ 
     procedure Move_Aspects (From : Node_Id; To : Node_Id);
     --  Relocate the aspect specifications of node From to node To. On entry it
     --  is assumed that To does not have aspect specifications. If From has no
*************** package Aspects is
*** 1184,1197 ****
     --  a simple equality test because e.g. Post and Postcondition are the same.
     --  This is used for detecting duplicate aspects.
  
!    procedure Set_Aspect_Specifications (N : Node_Id; L : List_Id);
!    --  The node N must be in the class of declaration nodes that permit aspect
!    --  specifications and the Has_Aspects flag must be False on entry. L must
!    --  be a non-empty list of N_Aspect_Specification nodes. This procedure sets
!    --  the Has_Aspects flag to True, and makes an entry that can be retrieved
!    --  by a subsequent Aspect_Specifications call. It is an error to call this
!    --  procedure with a node that does not permit aspect specifications, or a
!    --  node that has its Has_Aspects flag set True on entry, or with L being an
!    --  empty list or No_List.
  
  end Aspects;
--- 1214,1240 ----
     --  a simple equality test because e.g. Post and Postcondition are the same.
     --  This is used for detecting duplicate aspects.
  
!    package User_Aspect_Support is
!       procedure Register_UAD_Pragma (UAD_Pragma : Node_Id);
!       --  Argument is a User_Aspect_Definition pragma.
! 
!       function Registered_UAD_Pragma (Aspect_Name : Name_Id) return Node_Id;
!       --  Returns the registered pragma, if any, for the given name.
!       --  Returns empty if no pragma with a matching first argument is
!       --  in the map.
! 
!       --  In Find_Aspect we want to call
!       --  Sem_Ch13.Analyze_User_Aspect_Specification, but doing this in the
!       --  obvious way introduces problems (by pulling the bulk of semantics
!       --  into the closure of package Aspects). So we declare an
!       --  access-to-subp object here and call through it later if it happens
!       --  to be non-null; it is initialized in the body of package Sem_Ch13.
! 
!       type Analyze_User_Aspect_Aspect_Specification_Ref is
!         access procedure (N : Node_Id);
! 
!       Analyze_User_Aspect_Aspect_Specification_Hook :
!         Analyze_User_Aspect_Aspect_Specification_Ref;
!    end User_Aspect_Support;
  
  end Aspects;
diff -Nrcpad gcc-13.2.0/gcc/ada/atree.adb gcc-14.1.0/gcc/ada/atree.adb
*** gcc-13.2.0/gcc/ada/atree.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/atree.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 24,38 ****
  ------------------------------------------------------------------------------
  
  with Ada.Unchecked_Conversion;
- with Aspects;        use Aspects;
- with Debug;          use Debug;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Opt;            use Opt;
  with Output;         use Output;
  with Sinfo.Utils;    use Sinfo.Utils;
  with System.Storage_Elements;
  
  package body Atree is
  
     ---------------
--- 24,39 ----
  ------------------------------------------------------------------------------
  
  with Ada.Unchecked_Conversion;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Opt;            use Opt;
+ with Osint;
  with Output;         use Output;
  with Sinfo.Utils;    use Sinfo.Utils;
  with System.Storage_Elements;
  
+ with GNAT.Table;
+ 
  package body Atree is
  
     ---------------
*************** package body Atree is
*** 265,270 ****
--- 266,275 ----
        --  True if a node/entity of the given Kind has the given Field.
        --  Always True if assertions are disabled.
  
+       function Field_Present
+         (N : Node_Id; Field : Node_Or_Entity_Field) return Boolean;
+       --  Same for a node, which could be an entity
+ 
     end Field_Checking;
  
     package body Field_Checking is
*************** package body Atree is
*** 366,371 ****
--- 371,387 ----
           return Entity_Fields_Present (Kind) (Field);
        end Field_Present;
  
+       function Field_Present
+         (N : Node_Id; Field : Node_Or_Entity_Field) return Boolean is
+       begin
+          case Field is
+             when Node_Field =>
+                return Field_Present (Nkind (N), Field);
+             when Entity_Field =>
+                return Field_Present (Ekind (N), Field);
+          end case;
+       end Field_Present;
+ 
     end Field_Checking;
  
     ------------------------
*************** package body Atree is
*** 885,890 ****
--- 901,907 ----
     function Get_Field_Value
       (N : Node_Id; Field : Node_Or_Entity_Field) return Field_Size_32_Bit
     is
+       pragma Assert (Field_Checking.Field_Present (N, Field));
        Desc : Field_Descriptor renames Field_Descriptors (Field);
        NN : constant Node_Or_Entity_Id := Node_To_Fetch_From (N, Field);
  
*************** package body Atree is
*** 905,910 ****
--- 922,928 ----
     procedure Set_Field_Value
       (N : Node_Id; Field : Node_Or_Entity_Field; Val : Field_Size_32_Bit)
     is
+       pragma Assert (Field_Checking.Field_Present (N, Field));
        Desc : Field_Descriptor renames Field_Descriptors (Field);
  
     begin
*************** package body Atree is
*** 948,958 ****
     procedure Check_Vanishing_Fields
       (Old_N : Node_Id; New_Kind : Node_Kind)
     is
!       Old_Kind : constant Node_Kind := Nkind (Old_N);
! 
!       --  If this fails, it means you need to call Reinit_Field_To_Zero before
!       --  calling Mutate_Nkind.
  
     begin
        for J in Node_Field_Table (Old_Kind)'Range loop
           declare
--- 966,975 ----
     procedure Check_Vanishing_Fields
       (Old_N : Node_Id; New_Kind : Node_Kind)
     is
!       --  If this fails, see comments in the spec of Mutate_Nkind and in
!       --  Check_Vanishing_Fields for entities below.
  
+       Old_Kind : constant Node_Kind := Nkind (Old_N);
     begin
        for J in Node_Field_Table (Old_Kind)'Range loop
           declare
*************** package body Atree is
*** 979,1020 ****
     procedure Check_Vanishing_Fields
       (Old_N : Entity_Id; New_Kind : Entity_Kind)
     is
        Old_Kind : constant Entity_Kind := Ekind (Old_N);
  
!       --  If this fails, it means you need to call Reinit_Field_To_Zero before
!       --  calling Mutate_Ekind. But we have many cases where vanishing fields
!       --  are expected to reappear after converting to/from E_Void. Other cases
!       --  are more problematic; set a breakpoint on "(non-E_Void case)" below.
  
     begin
        for J in Entity_Field_Table (Old_Kind)'Range loop
           declare
              F : constant Entity_Field := Entity_Field_Table (Old_Kind) (J);
           begin
!             if not Field_Checking.Field_Present (New_Kind, F) then
                 if not Field_Is_Initial_Zero (Old_N, F) then
                    Write_Str (Old_Kind'Img);
                    Write_Str (" --> ");
                    Write_Str (New_Kind'Img);
                    Write_Str (" Nonzero field ");
                    Write_Str (F'Img);
!                   Write_Str (" is vanishing for node ");
!                   Write_Int (Nat (Old_N));
!                   Write_Eol;
  
                    if New_Kind = E_Void or else Old_Kind = E_Void then
!                      Write_Line ("    (E_Void case)");
                    else
!                      Write_Line ("    (non-E_Void case)");
                    end if;
                 end if;
              end if;
           end;
        end loop;
     end Check_Vanishing_Fields;
  
!    Nkind_Offset : constant Field_Offset :=
!      Field_Descriptors (F_Nkind).Offset;
  
     procedure Set_Node_Kind_Type is new Set_8_Bit_Field (Node_Kind) with Inline;
  
--- 996,1071 ----
     procedure Check_Vanishing_Fields
       (Old_N : Entity_Id; New_Kind : Entity_Kind)
     is
+       --  If this fails, it means Mutate_Ekind is changing the Ekind from
+       --  Old_Kind to New_Kind, such that some field F exists in Old_Kind but
+       --  not in New_Kind, and F contains non-default information. The usual
+       --  solution is to call Reinit_Field_To_Zero before calling Mutate_Ekind.
+       --  Another solution is to change Gen_IL so that the new field DOES exist
+       --  in New_Kind. See also comments in the spec of Mutate_Ekind.
+ 
        Old_Kind : constant Entity_Kind := Ekind (Old_N);
  
!       function Same_Node_To_Fetch_From
!         (N : Node_Or_Entity_Id; Field : Node_Or_Entity_Field)
!         return Boolean;
!       --  True if the field should be fetched from N. For most fields, this is
!       --  true. However, if the field is a "root type only" field, then this is
!       --  true only if N is the root type. If this is false, then we should not
!       --  do Reinit_Field_To_Zero, and we should not fail below, because the
!       --  field is not vanishing from the root type. Similar comments apply to
!       --  "base type only" and "implementation base type only" fields.
!       --
!       --  We need to ignore exceptions here, because in some cases,
!       --  Node_To_Fetch_From is being called before the relevant (root, base)
!       --  type has been set, so we fail some assertions.
! 
!       function Same_Node_To_Fetch_From
!         (N : Node_Or_Entity_Id; Field : Node_Or_Entity_Field)
!         return Boolean is
!       begin
!          return N = Node_To_Fetch_From (N, Field);
!       exception
!          when others => return False; -- ignore the exception
!       end Same_Node_To_Fetch_From;
! 
!    --  Start of processing for Check_Vanishing_Fields
  
     begin
        for J in Entity_Field_Table (Old_Kind)'Range loop
           declare
              F : constant Entity_Field := Entity_Field_Table (Old_Kind) (J);
           begin
!             if not Same_Node_To_Fetch_From (Old_N, F) then
!                null; -- no check in this case
!             elsif not Field_Checking.Field_Present (New_Kind, F) then
                 if not Field_Is_Initial_Zero (Old_N, F) then
+                   Write_Str ("# ");
+                   Write_Str (Osint.Get_First_Main_File_Name);
+                   Write_Str (": ");
                    Write_Str (Old_Kind'Img);
                    Write_Str (" --> ");
                    Write_Str (New_Kind'Img);
                    Write_Str (" Nonzero field ");
                    Write_Str (F'Img);
!                   Write_Str (" is vanishing ");
  
                    if New_Kind = E_Void or else Old_Kind = E_Void then
!                      Write_Line ("(E_Void case)");
                    else
!                      Write_Line ("(non-E_Void case)");
                    end if;
+ 
+                   Write_Str ("    ...mutating node ");
+                   Write_Int (Nat (Old_N));
+                   Write_Line ("");
+                   raise Program_Error;
                 end if;
              end if;
           end;
        end loop;
     end Check_Vanishing_Fields;
  
!    Nkind_Offset : constant Field_Offset := Field_Descriptors (F_Nkind).Offset;
  
     procedure Set_Node_Kind_Type is new Set_8_Bit_Field (Node_Kind) with Inline;
  
*************** package body Atree is
*** 1036,1041 ****
--- 1087,1094 ----
        All_Node_Offsets : Node_Offsets.Table_Type renames
          Node_Offsets.Table (Node_Offsets.First .. Node_Offsets.Last);
     begin
+       pragma Assert (Nkind (N) /= Val);
+ 
        pragma Debug (Check_Vanishing_Fields (N, Val));
  
        --  Grow the slots if necessary
*************** package body Atree is
*** 1082,1110 ****
        Mutate_Nkind (N, Val, Old_Size => Size_In_Slots_Dynamic (N));
     end Mutate_Nkind;
  
!    Ekind_Offset : constant Field_Offset :=
!      Field_Descriptors (F_Ekind).Offset;
  
     procedure Set_Entity_Kind_Type is new Set_8_Bit_Field (Entity_Kind)
       with Inline;
  
!    procedure Mutate_Ekind
!      (N : Entity_Id; Val : Entity_Kind)
!    is
     begin
        if Ekind (N) = Val then
           return;
        end if;
  
!       if Debug_Flag_Underscore_V then
!          pragma Debug (Check_Vanishing_Fields (N, Val));
!       end if;
  
        --  For now, we are allocating all entities with the same size, so we
        --  don't need to reallocate slots here.
  
        if Atree_Statistics_Enabled then
!          Set_Count (F_Nkind) := Set_Count (F_Ekind) + 1;
        end if;
  
        Set_Entity_Kind_Type (N, Ekind_Offset, Val);
--- 1135,1159 ----
        Mutate_Nkind (N, Val, Old_Size => Size_In_Slots_Dynamic (N));
     end Mutate_Nkind;
  
!    Ekind_Offset : constant Field_Offset := Field_Descriptors (F_Ekind).Offset;
  
     procedure Set_Entity_Kind_Type is new Set_8_Bit_Field (Entity_Kind)
       with Inline;
  
!    procedure Mutate_Ekind (N : Entity_Id; Val : Entity_Kind) is
     begin
        if Ekind (N) = Val then
           return;
        end if;
  
!       pragma Assert (Val /= E_Void);
!       pragma Debug (Check_Vanishing_Fields (N, Val));
  
        --  For now, we are allocating all entities with the same size, so we
        --  don't need to reallocate slots here.
  
        if Atree_Statistics_Enabled then
!          Set_Count (F_Ekind) := Set_Count (F_Ekind) + 1;
        end if;
  
        Set_Entity_Kind_Type (N, Ekind_Offset, Val);
*************** package body Atree is
*** 1211,1219 ****
        end if;
     end Change_Node;
  
!    ----------------
!    -- Copy_Slots --
!    ----------------
  
     procedure Copy_Dynamic_Slots
       (From, To : Node_Offset; Num_Slots : Slot_Count)
--- 1260,1268 ----
        end if;
     end Change_Node;
  
!    ------------------------
!    -- Copy_Dynamic_Slots --
!    ------------------------
  
     procedure Copy_Dynamic_Slots
       (From, To : Node_Offset; Num_Slots : Slot_Count)
*************** package body Atree is
*** 1233,1238 ****
--- 1282,1291 ----
        Destination_Slots := Source_Slots;
     end Copy_Dynamic_Slots;
  
+    ----------------
+    -- Copy_Slots --
+    ----------------
+ 
     procedure Copy_Slots (Source, Destination : Node_Id) is
        pragma Debug (Validate_Node (Source));
        pragma Assert (Source /= Destination);
*************** package body Atree is
*** 1243,1248 ****
--- 1296,1307 ----
          Node_Offsets.Table (Node_Offsets.First .. Node_Offsets.Last);
  
     begin
+       --  Empty_Or_Error use as described in types.ads
+       if Destination <= Empty_Or_Error or No (Source) then
+          pragma Assert (Serious_Errors_Detected > 0);
+          return;
+       end if;
+ 
        Copy_Dynamic_Slots
          (Off_F (Source), Off_F (Destination), S_Size);
        All_Node_Offsets (Destination).Slots := All_Node_Offsets (Source).Slots;
*************** package body Atree is
*** 1353,1364 ****
  
              E := First (List);
              while Present (E) loop
!                if Is_Entity (E) then
!                   Append (Copy_Entity (E), NL);
!                else
!                   Append (Copy_Separate_Tree (E), NL);
!                end if;
! 
                 Next (E);
              end loop;
  
--- 1412,1418 ----
  
              E := First (List);
              while Present (E) loop
!                Append (Copy_Separate_Tree (E), NL);
                 Next (E);
              end loop;
  
*************** package body Atree is
*** 1378,1384 ****
              New_N := Union_Id (Copy_Separate_Tree (Node_Id (Field)));
  
              if Present (Node_Id (Field))
!               and then Parent (Node_Id (Field)) = Source
              then
                 Set_Parent (Node_Id (New_N), New_Id);
              end if;
--- 1432,1438 ----
              New_N := Union_Id (Copy_Separate_Tree (Node_Id (Field)));
  
              if Present (Node_Id (Field))
!               and then Is_Syntactic_Node (Source, Node_Id (Field))
              then
                 Set_Parent (Node_Id (New_N), New_Id);
              end if;
*************** package body Atree is
*** 1415,1430 ****
  
           Walk (New_Id, Source);
  
-          --  Explicitly copy the aspect specifications as those do not reside
-          --  in a node field.
- 
-          if Permits_Aspect_Specifications (Source)
-            and then Has_Aspects (Source)
-          then
-             Set_Aspect_Specifications
-               (New_Id, Copy_List (Aspect_Specifications (Source)));
-          end if;
- 
           --  Set Entity field to Empty to ensure that no entity references
           --  are shared between the two, if the source is already analyzed.
  
--- 1469,1474 ----
*************** package body Atree is
*** 1619,1624 ****
--- 1663,1728 ----
        return Nkind (N) in N_Entity;
     end Is_Entity;
  
+    -----------------------
+    -- Is_Syntactic_Node --
+    -----------------------
+ 
+    function Is_Syntactic_Node
+      (Source : Node_Id;
+       Field  : Node_Id)
+       return Boolean
+    is
+       function Has_More_Ids (N : Node_Id) return Boolean;
+       --  Return True when N has attribute More_Ids set to True
+ 
+       ------------------
+       -- Has_More_Ids --
+       ------------------
+ 
+       function Has_More_Ids (N : Node_Id) return Boolean is
+       begin
+          if Nkind (N) in N_Component_Declaration
+                        | N_Discriminant_Specification
+                        | N_Exception_Declaration
+                        | N_Formal_Object_Declaration
+                        | N_Number_Declaration
+                        | N_Object_Declaration
+                        | N_Parameter_Specification
+                        | N_Use_Package_Clause
+                        | N_Use_Type_Clause
+          then
+             return More_Ids (N);
+          else
+             return False;
+          end if;
+       end Has_More_Ids;
+ 
+    --  Start of processing for Is_Syntactic_Node
+ 
+    begin
+       if Parent (Field) = Source then
+          return True;
+ 
+       --  Perform the check using the last id in the syntactic chain
+ 
+       elsif Has_More_Ids (Source) then
+          declare
+             N : Node_Id := Source;
+ 
+          begin
+             while Present (N) and then More_Ids (N) loop
+                Next (N);
+             end loop;
+ 
+             pragma Assert (Prev_Ids (N));
+             return Parent (Field) = N;
+          end;
+ 
+       else
+          return False;
+       end if;
+    end Is_Syntactic_Node;
+ 
     ----------------
     -- Initialize --
     ----------------
*************** package body Atree is
*** 1768,1778 ****
              Set_Is_Overloaded (New_Id, False);
           end if;
  
-          --  Always clear Has_Aspects, the caller must take care of copying
-          --  aspects if this is required for the particular situation.
- 
-          Set_Has_Aspects (New_Id, False);
- 
           --  Mark the copy as Ghost depending on the current Ghost region
  
           if Nkind (New_Id) in N_Entity then
--- 1872,1877 ----
*************** package body Atree is
*** 2051,2057 ****
  
     procedure Replace (Old_Node, New_Node : Node_Id) is
        Old_Post : constant Boolean := Error_Posted (Old_Node);
-       Old_HasA : constant Boolean := Has_Aspects (Old_Node);
        Old_CFS  : constant Boolean := Comes_From_Source (Old_Node);
  
        procedure Destroy_New_Node;
--- 2150,2155 ----
*************** package body Atree is
*** 2078,2084 ****
        Copy_Node (Source => New_Node, Destination => Old_Node);
        Set_Comes_From_Source (Old_Node, Old_CFS);
        Set_Error_Posted      (Old_Node, Old_Post);
-       Set_Has_Aspects       (Old_Node, Old_HasA);
  
        --  Fix parents of substituted node, since it has changed identity
  
--- 2176,2181 ----
*************** package body Atree is
*** 2119,2126 ****
        Old_Is_IGN : constant Boolean := Is_Ignored_Ghost_Node (Old_Node);
        Old_Error_Posted : constant Boolean :=
                             Error_Posted (Old_Node);
-       Old_Has_Aspects  : constant Boolean :=
-                            Has_Aspects (Old_Node);
  
        Old_Must_Not_Freeze : constant Boolean :=
          (if Nkind (Old_Node) in N_Subexpr then Must_Not_Freeze (Old_Node)
--- 2216,2221 ----
*************** package body Atree is
*** 2156,2182 ****
           Sav_Node := New_Copy (Old_Node);
           Set_Original_Node (Sav_Node, Sav_Node);
           Set_Original_Node (Old_Node, Sav_Node);
- 
-          --  Both the old and new copies of the node will share the same list
-          --  of aspect specifications if aspect specifications are present.
-          --  Restore the parent link of the aspect list to the old node, which
-          --  is the one linked in the tree.
- 
-          if Old_Has_Aspects then
-             declare
-                Aspects : constant List_Id := Aspect_Specifications (Old_Node);
-             begin
-                Set_Aspect_Specifications (Sav_Node, Aspects);
-                Set_Parent (Aspects, Old_Node);
-             end;
-          end if;
        end if;
  
        --  Copy substitute node into place, preserving old fields as required
  
        Copy_Node (Source => New_Node, Destination => Old_Node);
        Set_Error_Posted (Old_Node, Old_Error_Posted);
-       Set_Has_Aspects  (Old_Node, Old_Has_Aspects);
  
        Set_Check_Actuals (Old_Node, Old_CA);
        Set_Is_Ignored_Ghost_Node (Old_Node, Old_Is_IGN);
--- 2251,2262 ----
*************** package body Atree is
*** 2783,2788 ****
--- 2863,2896 ----
        Node_Counts : array (Node_Kind) of Count := (others => 0);
        Entity_Counts : array (Entity_Kind) of Count := (others => 0);
  
+       --  We put the Node_Kinds and Entity_Kinds into a table just because
+       --  GNAT.Table has a handy sort procedure. We're sorting in decreasing
+       --  order of Node_Counts, for printing.
+ 
+       package Node_Kind_Table is new GNAT.Table
+         (Table_Component_Type => Node_Kind,
+          Table_Index_Type     => Pos,
+          Table_Low_Bound      => Pos'First,
+          Table_Initial        => 8,
+          Table_Increment      => 100
+         );
+       function Higher_Count (X, Y : Node_Kind) return Boolean is
+         (Node_Counts (X) > Node_Counts (Y));
+       procedure Sort_Node_Kind_Table is new
+         Node_Kind_Table.Sort_Table (Lt => Higher_Count);
+ 
+       package Entity_Kind_Table is new GNAT.Table
+         (Table_Component_Type => Entity_Kind,
+          Table_Index_Type     => Pos,
+          Table_Low_Bound      => Pos'First,
+          Table_Initial        => 8,
+          Table_Increment      => 100
+         );
+       function Higher_Count (X, Y : Entity_Kind) return Boolean is
+         (Entity_Counts (X) > Entity_Counts (Y));
+       procedure Sort_Entity_Kind_Table is new
+         Entity_Kind_Table.Sort_Table (Lt => Higher_Count);
+ 
        All_Node_Offsets : Node_Offsets.Table_Type renames
          Node_Offsets.Table (Node_Offsets.First .. Node_Offsets.Last);
     begin
*************** package body Atree is
*** 2791,2796 ****
--- 2899,2906 ----
        Write_Int (Int (Slots.Last));
        Write_Line (" non-header slots");
  
+       --  Count up the number of each kind of node and entity
+ 
        for N in All_Node_Offsets'Range loop
           declare
              K : constant Node_Kind := Nkind (N);
*************** package body Atree is
*** 2804,2847 ****
           end;
        end loop;
  
        for K in Node_Kind loop
!          declare
!             Count : constant Nat_64 := Node_Counts (K);
!          begin
!             Write_Int_64 (Count);
!             Write_Ratio (Count, Int_64 (Node_Offsets.Last));
!             Write_Str (" ");
!             Write_Str (Node_Kind'Image (K));
!             Write_Str (" ");
!             Write_Int (Int (Sinfo.Nodes.Size (K)));
!             Write_Str (" slots");
!             Write_Eol;
!          end;
        end loop;
  
        for K in Entity_Kind loop
!          declare
!             Count : constant Nat_64 := Entity_Counts (K);
!          begin
!             Write_Int_64 (Count);
!             Write_Ratio (Count, Int_64 (Node_Offsets.Last));
!             Write_Str (" ");
!             Write_Str (Entity_Kind'Image (K));
!             Write_Str (" ");
!             Write_Int (Int (Einfo.Entities.Size (K)));
!             Write_Str (" slots");
!             Write_Eol;
!          end;
        end loop;
     end Print_Node_Statistics;
  
     procedure Print_Field_Statistics is
        Total, G_Total, S_Total : Call_Count := 0;
     begin
        Write_Int_64 (Get_Original_Node_Count);
        Write_Str (" + ");
        Write_Int_64 (Set_Original_Node_Count);
-       Write_Eol;
        Write_Line (" Original_Node_Count getter and setter calls");
        Write_Eol;
  
--- 2914,3008 ----
           end;
        end loop;
  
+       --  Copy kinds to tables, and sort:
+ 
        for K in Node_Kind loop
!          Node_Kind_Table.Append (K);
        end loop;
+       Sort_Node_Kind_Table;
  
        for K in Entity_Kind loop
!          Entity_Kind_Table.Append (K);
        end loop;
+       Sort_Entity_Kind_Table;
+ 
+       --  Print out the counts for each kind in decreasing order. Exit the loop
+       --  if we see a zero count, because all the rest must be zero, and the
+       --  zero ones are boring.
+ 
+       declare
+          use Node_Kind_Table;
+          --  Note: the full qualification of First below is needed for
+          --  bootstrap builds.
+          Table : Table_Type renames Node_Kind_Table.Table
+            (Node_Kind_Table.First .. Last);
+       begin
+          for J in Table'Range loop
+             declare
+                K : constant Node_Kind := Table (J);
+                Count : constant Nat_64 := Node_Counts (K);
+             begin
+                exit when Count = 0; -- skip the rest
+ 
+                Write_Int_64 (Count);
+                Write_Ratio (Count, Int_64 (Node_Offsets.Last));
+                Write_Str (" ");
+                Write_Str (Node_Kind'Image (K));
+                Write_Str (" ");
+                Write_Int (Int (Sinfo.Nodes.Size (K)));
+                Write_Str (" slots");
+                Write_Eol;
+             end;
+          end loop;
+       end;
+ 
+       declare
+          use Entity_Kind_Table;
+          --  Note: the full qualification of First below is needed for
+          --  bootstrap builds.
+          Table : Table_Type renames Entity_Kind_Table.Table
+            (Entity_Kind_Table.First .. Last);
+       begin
+          for J in Table'Range loop
+             declare
+                K : constant Entity_Kind := Table (J);
+                Count : constant Nat_64 := Entity_Counts (K);
+             begin
+                exit when Count = 0; -- skip the rest
+ 
+                Write_Int_64 (Count);
+                Write_Ratio (Count, Int_64 (Node_Offsets.Last));
+                Write_Str (" ");
+                Write_Str (Entity_Kind'Image (K));
+                Write_Str (" ");
+                Write_Int (Int (Einfo.Entities.Size (K)));
+                Write_Str (" slots");
+                Write_Eol;
+             end;
+          end loop;
+       end;
     end Print_Node_Statistics;
  
     procedure Print_Field_Statistics is
        Total, G_Total, S_Total : Call_Count := 0;
+ 
+       --  Use a table for sorting, as done in Print_Node_Statistics.
+ 
+       package Field_Table is new GNAT.Table
+         (Table_Component_Type => Node_Or_Entity_Field,
+          Table_Index_Type     => Pos,
+          Table_Low_Bound      => Pos'First,
+          Table_Initial        => 8,
+          Table_Increment      => 100
+         );
+       function Higher_Count (X, Y : Node_Or_Entity_Field) return Boolean is
+         (Get_Count (X) + Set_Count (X) > Get_Count (Y) + Set_Count (Y));
+       procedure Sort_Field_Table is new
+         Field_Table.Sort_Table (Lt => Higher_Count);
     begin
        Write_Int_64 (Get_Original_Node_Count);
        Write_Str (" + ");
        Write_Int_64 (Set_Original_Node_Count);
        Write_Line (" Original_Node_Count getter and setter calls");
        Write_Eol;
  
*************** package body Atree is
*** 2864,2895 ****
        Write_Int_64 (S_Total);
        Write_Line (" total getter and setter calls");
  
!       for Field in Node_Or_Entity_Field loop
!          declare
!             G : constant Call_Count := Get_Count (Field);
!             S : constant Call_Count := Set_Count (Field);
!             GS : constant Call_Count := G + S;
! 
!             Desc : Field_Descriptor renames Field_Descriptors (Field);
!             Slot : constant Field_Offset :=
!               (Field_Size (Desc.Kind) * Desc.Offset) / Slot_Size;
  
!          begin
!             Write_Int_64 (GS);
!             Write_Ratio (GS, Total);
!             Write_Str (" = ");
!             Write_Int_64 (G);
!             Write_Str (" + ");
!             Write_Int_64 (S);
!             Write_Str (" ");
!             Write_Str (Node_Or_Entity_Field'Image (Field));
!             Write_Str (" in slot ");
!             Write_Int (Int (Slot));
!             Write_Str (" size ");
!             Write_Int (Int (Field_Size (Desc.Kind)));
!             Write_Eol;
!          end;
        end loop;
     end Print_Field_Statistics;
  
     procedure Print_Statistics is
--- 3025,3079 ----
        Write_Int_64 (S_Total);
        Write_Line (" total getter and setter calls");
  
!       --  Copy fields to the table, and sort:
  
!       for F in Node_Or_Entity_Field loop
!          Field_Table.Append (F);
        end loop;
+       Sort_Field_Table;
+ 
+       --  Print out the counts for each field in decreasing order of
+       --  getter+setter sum. As in Print_Node_Statistics, exit the loop
+       --  if we see a zero sum.
+ 
+       declare
+          use Field_Table;
+          --  Note: the full qualification of First below is needed for
+          --  bootstrap builds.
+          Table : Table_Type renames
+            Field_Table.Table (Field_Table.First .. Last);
+       begin
+          for J in Table'Range loop
+             declare
+                Field : constant Node_Or_Entity_Field := Table (J);
+ 
+                G : constant Call_Count := Get_Count (Field);
+                S : constant Call_Count := Set_Count (Field);
+                GS : constant Call_Count := G + S;
+ 
+                Desc : Field_Descriptor renames Field_Descriptors (Field);
+                Slot : constant Field_Offset :=
+                  (Field_Size (Desc.Kind) * Desc.Offset) / Slot_Size;
+ 
+             begin
+                exit when GS = 0; -- skip the rest
+ 
+                Write_Int_64 (GS);
+                Write_Ratio (GS, Total);
+                Write_Str (" = ");
+                Write_Int_64 (G);
+                Write_Str (" + ");
+                Write_Int_64 (S);
+                Write_Str (" ");
+                Write_Str (Node_Or_Entity_Field'Image (Field));
+                Write_Str (" in slot ");
+                Write_Int (Int (Slot));
+                Write_Str (" size ");
+                Write_Int (Int (Field_Size (Desc.Kind)));
+                Write_Eol;
+             end;
+          end loop;
+       end;
     end Print_Field_Statistics;
  
     procedure Print_Statistics is
*************** package body Atree is
*** 2897,2902 ****
--- 3081,3087 ----
        Write_Eol;
        Write_Eol;
        Print_Node_Statistics;
+       Write_Eol;
        Print_Field_Statistics;
     end Print_Statistics;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/atree.ads gcc-14.1.0/gcc/ada/atree.ads
*** gcc-13.2.0/gcc/ada/atree.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/atree.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Atree is
*** 225,230 ****
--- 225,238 ----
     pragma Inline (Is_Entity);
     --  Returns True if N is an entity
  
+    function Is_Syntactic_Node
+      (Source : Node_Id;
+       Field  : Node_Id)
+       return Boolean;
+    --  Return True when Field is a syntactic child of node Source. It is called
+    --  when creating a copy of Source to preserve the Parent link in the copy
+    --  of Field.
+ 
     function New_Node
       (New_Node_Kind : Node_Kind;
        New_Sloc      : Source_Ptr) return Node_Id;
*************** package Atree is
*** 244,250 ****
     --  The usual approach is to build a new node using this function and
     --  then, using the value returned, use the Set_xxx functions to set
     --  fields of the node as required. New_Node can only be used for
!    --  non-entity nodes, i.e. it never generates an extended node.
     --
     --  If we are currently parsing, as indicated by a previous call to
     --  Set_Comes_From_Source_Default (True), then this call also resets
--- 252,258 ----
     --  The usual approach is to build a new node using this function and
     --  then, using the value returned, use the Set_xxx functions to set
     --  fields of the node as required. New_Node can only be used for
!    --  non-entity nodes.
     --
     --  If we are currently parsing, as indicated by a previous call to
     --  Set_Comes_From_Source_Default (True), then this call also resets
*************** package Atree is
*** 253,260 ****
     function New_Entity
       (New_Node_Kind : Node_Kind;
        New_Sloc      : Source_Ptr) return Entity_Id;
!    --  Similar to New_Node, except that it is used only for entity nodes
!    --  and returns an extended node.
  
     procedure Set_Comes_From_Source_Default (Default : Boolean);
     --  Sets value of Comes_From_Source flag to be used in all subsequent
--- 261,267 ----
     function New_Entity
       (New_Node_Kind : Node_Kind;
        New_Sloc      : Source_Ptr) return Entity_Id;
!    --  Similar to New_Node, except that it is used only for entity nodes.
  
     procedure Set_Comes_From_Source_Default (Default : Boolean);
     --  Sets value of Comes_From_Source flag to be used in all subsequent
*************** package Atree is
*** 301,308 ****
     --  returns Empty, and New_Copy (Error) returns Error. Note that, unlike
     --  Copy_Separate_Tree, New_Copy does not recursively copy any descendants,
     --  so in general parent pointers are not set correctly for the descendants
!    --  of the copied node. Both normal and extended nodes (entities) may be
!    --  copied using New_Copy.
  
     function Relocate_Node (Source : Node_Id) return Node_Id;
     --  Source is a non-entity node that is to be relocated. A new node is
--- 308,314 ----
     --  returns Empty, and New_Copy (Error) returns Error. Note that, unlike
     --  Copy_Separate_Tree, New_Copy does not recursively copy any descendants,
     --  so in general parent pointers are not set correctly for the descendants
!    --  of the copied node.
  
     function Relocate_Node (Source : Node_Id) return Node_Id;
     --  Source is a non-entity node that is to be relocated. A new node is
*************** package Atree is
*** 352,358 ****
     --  caller, according to context.
  
     procedure Extend_Node (Source : Node_Id);
!    --  This turns a node into an entity; it function is used only by Sinfo.CN.
  
     type Ignored_Ghost_Record_Proc is access procedure (N : Node_Or_Entity_Id);
  
--- 358,364 ----
     --  caller, according to context.
  
     procedure Extend_Node (Source : Node_Id);
!    --  This turns a node into an entity; it is only used by Sinfo.CN.
  
     type Ignored_Ghost_Record_Proc is access procedure (N : Node_Or_Entity_Id);
  
*************** package Atree is
*** 533,539 ****
     --  newly constructed replacement subtree. The actual mechanism is to swap
     --  the contents of these two nodes fixing up the parent pointers of the
     --  replaced node (we do not attempt to preserve parent pointers for the
!    --  original node). Neither Old_Node nor New_Node can be extended nodes.
     --  ??? The above explanation is incorrect, instead Copy_Node is called.
     --
     --  Note: New_Node may not contain references to Old_Node, for example as
--- 539,545 ----
     --  newly constructed replacement subtree. The actual mechanism is to swap
     --  the contents of these two nodes fixing up the parent pointers of the
     --  replaced node (we do not attempt to preserve parent pointers for the
!    --  original node).
     --  ??? The above explanation is incorrect, instead Copy_Node is called.
     --
     --  Note: New_Node may not contain references to Old_Node, for example as
*************** package Atree is
*** 630,645 ****
     --  Mutate_Nkind. This is necessary, because the memory occupied by the
     --  vanishing fields might be used for totally unrelated fields in the new
     --  node. See Reinit_Field_To_Zero.
  
!    procedure Mutate_Ekind
!      (N : Entity_Id; Val : Entity_Kind) with Inline;
     --  Ekind is also like a discriminant, and is mostly treated as above (see
!    --  Mutate_Nkind). However, there are a few cases where we set the Ekind
!    --  from its initial E_Void value to something else, then set it back to
!    --  E_Void, then back to the something else, and we expect the "something
!    --  else" fields to retain their value. The two "something else"s are not
!    --  always the same; for example we change from E_Void, to E_Variable, to
!    --  E_Void, to E_Constant.
  
     function Node_To_Fetch_From
       (N : Node_Or_Entity_Id; Field : Node_Or_Entity_Field)
--- 636,650 ----
     --  Mutate_Nkind. This is necessary, because the memory occupied by the
     --  vanishing fields might be used for totally unrelated fields in the new
     --  node. See Reinit_Field_To_Zero.
+    --
+    --  It is an error to mutate a node to the same kind it already has.
  
!    procedure Mutate_Ekind (N : Entity_Id; Val : Entity_Kind) with Inline;
     --  Ekind is also like a discriminant, and is mostly treated as above (see
!    --  Mutate_Nkind).
!    --
!    --  It is not (yet?) an error to mutate an entity to the same kind it
!    --  already has. It is an error to mutate to E_Void.
  
     function Node_To_Fetch_From
       (N : Node_Or_Entity_Id; Field : Node_Or_Entity_Field)
diff -Nrcpad gcc-13.2.0/gcc/ada/atree.h gcc-14.1.0/gcc/ada/atree.h
*** gcc-13.2.0/gcc/ada/atree.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/atree.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/aux-io.c gcc-14.1.0/gcc/ada/aux-io.c
*** gcc-13.2.0/gcc/ada/aux-io.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/aux-io.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/back_end.adb gcc-14.1.0/gcc/ada/back_end.adb
*** gcc-13.2.0/gcc/ada/back_end.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/back_end.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Back_End is
*** 103,113 ****
           number_file                   : Nat;
  
           file_info_ptr                 : Address;
           gigi_standard_boolean         : Entity_Id;
-          gigi_standard_integer         : Entity_Id;
           gigi_standard_character       : Entity_Id;
-          gigi_standard_long_long_float : Entity_Id;
           gigi_standard_exception_type  : Entity_Id;
           gigi_operating_mode           : Back_End_Mode_Type);
  
        pragma Import (C, gigi);
--- 103,114 ----
           number_file                   : Nat;
  
           file_info_ptr                 : Address;
+          gigi_standard_address         : Entity_Id;
           gigi_standard_boolean         : Entity_Id;
           gigi_standard_character       : Entity_Id;
           gigi_standard_exception_type  : Entity_Id;
+          gigi_standard_integer         : Entity_Id;
+          gigi_standard_long_long_float : Entity_Id;
           gigi_operating_mode           : Back_End_Mode_Type);
  
        pragma Import (C, gigi);
*************** package body Back_End is
*** 171,181 ****
           number_file        => Num_Source_Files,
  
           file_info_ptr                 => File_Info_Array'Address,
           gigi_standard_boolean         => Standard_Boolean,
-          gigi_standard_integer         => Standard_Integer,
           gigi_standard_character       => Standard_Character,
-          gigi_standard_long_long_float => Standard_Long_Long_Float,
           gigi_standard_exception_type  => Standard_Exception_Type,
           gigi_operating_mode           => Mode);
     end Call_Back_End;
  
--- 172,183 ----
           number_file        => Num_Source_Files,
  
           file_info_ptr                 => File_Info_Array'Address,
+          gigi_standard_address         => Standard_Address,
           gigi_standard_boolean         => Standard_Boolean,
           gigi_standard_character       => Standard_Character,
           gigi_standard_exception_type  => Standard_Exception_Type,
+          gigi_standard_integer         => Standard_Integer,
+          gigi_standard_long_long_float => Standard_Long_Long_Float,
           gigi_operating_mode           => Mode);
     end Call_Back_End;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/back_end.ads gcc-14.1.0/gcc/ada/back_end.ads
*** gcc-13.2.0/gcc/ada/back_end.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/back_end.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/backend_utils.adb gcc-14.1.0/gcc/ada/backend_utils.adb
*** gcc-13.2.0/gcc/ada/backend_utils.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/backend_utils.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2021-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2021-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/backend_utils.ads gcc-14.1.0/gcc/ada/backend_utils.ads
*** gcc-13.2.0/gcc/ada/backend_utils.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/backend_utils.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2021-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2021-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bcheck.adb gcc-14.1.0/gcc/ada/bcheck.adb
*** gcc-13.2.0/gcc/ada/bcheck.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bcheck.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Bcheck is
*** 223,229 ****
                    end if;
                 end if;
  
!                if (not Tolerate_Consistency_Errors) and Verbose_Mode then
                    Error_Msg_File_1 := Source.Table (Src).Stamp_File;
  
                    if Source.Table (Src).Source_Found then
--- 223,229 ----
                    end if;
                 end if;
  
!                if not Tolerate_Consistency_Errors and Verbose_Mode then
                    Error_Msg_File_1 := Source.Table (Src).Stamp_File;
  
                    if Source.Table (Src).Source_Found then
*************** package body Bcheck is
*** 1402,1408 ****
                             Secondary := 0;
                          end if;
  
!                         if (Primary /= -1) and (Secondary /= -1) then
                             return (Primary   => Primary,
                                     Secondary => Secondary);
                          end if;
--- 1402,1408 ----
                             Secondary := 0;
                          end if;
  
!                         if Primary /= -1 and Secondary /= -1 then
                             return (Primary   => Primary,
                                     Secondary => Secondary);
                          end if;
*************** package body Bcheck is
*** 1421,1427 ****
                 V2      : constant ALI_Version := Extract_Version (V2_Text);
  
                 Include_Version_Numbers_In_Message : constant Boolean :=
!                  (V1 /= V2) and (V1 /= No_Version) and (V2 /= No_Version);
              begin
                 Error_Msg_File_1 := ALIs.Table (A).Sfile;
                 Error_Msg_File_2 := ALIs.Table (ALIs.First).Sfile;
--- 1421,1427 ----
                 V2      : constant ALI_Version := Extract_Version (V2_Text);
  
                 Include_Version_Numbers_In_Message : constant Boolean :=
!                  V1 /= V2 and V1 /= No_Version and V2 /= No_Version;
              begin
                 Error_Msg_File_1 := ALIs.Table (A).Sfile;
                 Error_Msg_File_2 := ALIs.Table (ALIs.First).Sfile;
diff -Nrcpad gcc-13.2.0/gcc/ada/bcheck.ads gcc-14.1.0/gcc/ada/bcheck.ads
*** gcc-13.2.0/gcc/ada/bcheck.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bcheck.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/binde.adb gcc-14.1.0/gcc/ada/binde.adb
*** gcc-13.2.0/gcc/ada/binde.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/binde.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Binde is
*** 1937,1943 ****
                       Units.Table (U).Last_With
              loop
                 if Withs.Table (W).Sfile /= No_File
!                  and then (not Withs.Table (W).SAL_Interface)
                 then
                    --  Check for special case of withing a unit that does not
                    --  exist any more. If the unit was completely missing we
--- 1937,1943 ----
                       Units.Table (U).Last_With
              loop
                 if Withs.Table (W).Sfile /= No_File
!                  and then not Withs.Table (W).SAL_Interface
                 then
                    --  Check for special case of withing a unit that does not
                    --  exist any more. If the unit was completely missing we
*************** package body Binde is
*** 2793,2799 ****
                          Units.Table (U).Last_With
                 loop
                    if Withs.Table (W).Sfile /= No_File
!                     and then (not Withs.Table (W).SAL_Interface)
                    then
                       --  Check for special case of withing a unit that does not
                       --  exist any more.
--- 2793,2799 ----
                          Units.Table (U).Last_With
                 loop
                    if Withs.Table (W).Sfile /= No_File
!                     and then not Withs.Table (W).SAL_Interface
                    then
                       --  Check for special case of withing a unit that does not
                       --  exist any more.
diff -Nrcpad gcc-13.2.0/gcc/ada/binde.ads gcc-14.1.0/gcc/ada/binde.ads
*** gcc-13.2.0/gcc/ada/binde.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/binde.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/binderr.adb gcc-14.1.0/gcc/ada/binderr.adb
*** gcc-13.2.0/gcc/ada/binderr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/binderr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Binderr is
*** 50,56 ****
           Errors_Detected := Errors_Detected + 1;
        end if;
  
!       if Brief_Output or else (not Verbose_Mode) then
           Set_Standard_Error;
           Error_Msg_Output (Msg, Info => False);
           Set_Standard_Output;
--- 50,56 ----
           Errors_Detected := Errors_Detected + 1;
        end if;
  
!       if Brief_Output or else not Verbose_Mode then
           Set_Standard_Error;
           Error_Msg_Output (Msg, Info => False);
           Set_Standard_Output;
*************** package body Binderr is
*** 90,96 ****
  
     procedure Error_Msg_Info (Msg : String) is
     begin
!       if Brief_Output or else (not Verbose_Mode) then
           Set_Standard_Error;
           Error_Msg_Output (Msg, Info => True);
           Set_Standard_Output;
--- 90,96 ----
  
     procedure Error_Msg_Info (Msg : String) is
     begin
!       if Brief_Output or else not Verbose_Mode then
           Set_Standard_Error;
           Error_Msg_Output (Msg, Info => True);
           Set_Standard_Output;
diff -Nrcpad gcc-13.2.0/gcc/ada/binderr.ads gcc-14.1.0/gcc/ada/binderr.ads
*** gcc-13.2.0/gcc/ada/binderr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/binderr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindgen.adb gcc-14.1.0/gcc/ada/bindgen.adb
*** gcc-13.2.0/gcc/ada/bindgen.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindgen.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Bindgen is
*** 65,70 ****
--- 65,79 ----
     --  Number of default-sized primary stacks the binder needs to allocate for
     --  task objects declared in the program.
  
+    Command_Line_Used : Boolean := False;
+    --  Flag indicating whether the unit Ada.Command_Line is in the closure of
+    --  the partition. This is set by Resolve_Binder_Options, and is used to
+    --  determine whether or not to import and use symbols defined in
+    --  Ada.Command_Line's support packages (gnat_argc, gnat_argv, gnat_envp
+    --  and gnat_exit_status). Conservatively, it is always set to True for
+    --  non-configurable run-times as parts of the compiler and run-time assume
+    --  these symbols are available and can be imported directly.
+ 
     System_Restrictions_Used : Boolean := False;
     --  Flag indicating whether the unit System.Restrictions is in the closure
     --  of the partition. This is set by Resolve_Binder_Options, and is used
*************** package body Bindgen is
*** 691,696 ****
--- 700,707 ----
              WBI ("      null;");
           end if;
  
+          Gen_Restrictions;
+ 
           --  Generate the default-sized secondary stack pool if the secondary
           --  stack is used by the program.
  
*************** package body Bindgen is
*** 2090,2102 ****
  
        WBI ("   begin");
  
!       --  Acquire command-line arguments if present on target
  
        if CodePeer_Mode then
           null;
  
!       elsif Command_Line_Args_On_Target then
! 
           --  Initialize gnat_argc/gnat_argv only if not already initialized,
           --  to avoid losing the result of any command-line processing done by
           --  earlier GNAT run-time initialization.
--- 2101,2113 ----
  
        WBI ("   begin");
  
!       --  Acquire command-line arguments if supported on the target and used
!       --  by the program.
  
        if CodePeer_Mode then
           null;
  
!       elsif Command_Line_Args_On_Target and then Command_Line_Used then
           --  Initialize gnat_argc/gnat_argv only if not already initialized,
           --  to avoid losing the result of any command-line processing done by
           --  earlier GNAT run-time initialization.
*************** package body Bindgen is
*** 2107,2126 ****
           WBI ("      end if;");
           WBI ("      gnat_envp := envp;");
           WBI ("");
- 
-       --  If configurable run-time and no command-line args, then nothing needs
-       --  to be done since the gnat_argc/argv/envp variables are suppressed in
-       --  this case.
- 
-       elsif Configurable_Run_Time_On_Target then
-          null;
- 
-       --  Otherwise set dummy values (to be filled in by some other unit?)
- 
-       else
-          WBI ("      gnat_argc := 0;");
-          WBI ("      gnat_argv := System.Null_Address;");
-          WBI ("      gnat_envp := System.Null_Address;");
        end if;
  
        if Opt.Default_Exit_Status /= 0
--- 2118,2123 ----
*************** package body Bindgen is
*** 2197,2203 ****
           if No_Main_Subprogram
             or else ALIs.Table (ALIs.First).Main_Program = Proc
           then
!             WBI ("      return (gnat_exit_status);");
           else
              WBI ("      return (Result);");
           end if;
--- 2194,2207 ----
           if No_Main_Subprogram
             or else ALIs.Table (ALIs.First).Main_Program = Proc
           then
!             --  Return gnat_exit_status if Ada.Command_Line is used otherwise
!             --  return 0.
! 
!             if Command_Line_Used then
!                WBI ("      return (gnat_exit_status);");
!             else
!                WBI ("      return (0);");
!             end if;
           else
              WBI ("      return (Result);");
           end if;
*************** package body Bindgen is
*** 2593,2630 ****
        if Bind_Main_Program then
           --  Generate argc/argv stuff unless suppressed
  
!          if Command_Line_Args_On_Target
!            or not Configurable_Run_Time_On_Target
!          then
              WBI ("");
              WBI ("   gnat_argc : Integer;");
              WBI ("   gnat_argv : System.Address;");
              WBI ("   gnat_envp : System.Address;");
  
!             --  If the standard library is not suppressed, these variables
!             --  are in the run-time data area for easy run time access.
! 
!             if not Suppress_Standard_Library_On_Target then
!                WBI ("");
!                WBI ("   pragma Import (C, gnat_argc);");
!                WBI ("   pragma Import (C, gnat_argv);");
!                WBI ("   pragma Import (C, gnat_envp);");
!             end if;
           end if;
  
!          --  Define exit status. Again in normal mode, this is in the run-time
!          --  library, and is initialized there, but in the configurable
!          --  run-time case, the variable is declared and initialized in this
!          --  file.
  
           WBI ("");
  
!          if Configurable_Run_Time_Mode then
!             if Exit_Status_Supported_On_Target then
!                WBI ("   gnat_exit_status : Integer := 0;");
!             end if;
! 
!          else
              WBI ("   gnat_exit_status : Integer;");
              WBI ("   pragma Import (C, gnat_exit_status);");
           end if;
--- 2597,2631 ----
        if Bind_Main_Program then
           --  Generate argc/argv stuff unless suppressed
  
!          --  A run-time configured to support command line arguments defines
!          --  a number of internal symbols that need to be set by the binder.
!          --  We do not do this in cases where the program does not use
!          --  Ada.Command_Line, as the package and it's support files may not be
!          --  present.
! 
!          if Command_Line_Args_On_Target and then Command_Line_Used then
              WBI ("");
              WBI ("   gnat_argc : Integer;");
              WBI ("   gnat_argv : System.Address;");
              WBI ("   gnat_envp : System.Address;");
  
!             WBI ("");
!             WBI ("   pragma Import (C, gnat_argc);");
!             WBI ("   pragma Import (C, gnat_argv);");
!             WBI ("   pragma Import (C, gnat_envp);");
           end if;
  
!          --  Define exit status if supported by the target. The exit status is
!          --  stored in the run-time library to allow applications set the state
!          --  through Ada.Command_Line and is initialized in the run-time. Like
!          --  command line arguments, skip if Ada.Command_Line is not used in
!          --  the enclosure of the partition because this package may not be
!          --  available in the runtime.
  
           WBI ("");
  
!          if Exit_Status_Supported_On_Target and then Command_Line_Used
!          then
              WBI ("   gnat_exit_status : Integer;");
              WBI ("   pragma Import (C, gnat_exit_status);");
           end if;
*************** package body Bindgen is
*** 2804,2812 ****
        --  Generate with of System.Restrictions to initialize
        --  Run_Time_Restrictions.
  
!       if System_Restrictions_Used
!         and not Suppress_Standard_Library_On_Target
!       then
           WBI ("");
           WBI ("with System.Restrictions;");
        end if;
--- 2805,2811 ----
        --  Generate with of System.Restrictions to initialize
        --  Run_Time_Restrictions.
  
!       if System_Restrictions_Used then
           WBI ("");
           WBI ("with System.Restrictions;");
        end if;
*************** package body Bindgen is
*** 2946,2954 ****
        Count : Integer;
  
     begin
!       if Suppress_Standard_Library_On_Target
!         or not System_Restrictions_Used
!       then
           return;
        end if;
  
--- 2945,2951 ----
        Count : Integer;
  
     begin
!       if not System_Restrictions_Used then
           return;
        end if;
  
*************** package body Bindgen is
*** 3391,3396 ****
--- 3388,3405 ----
  
           Check_Package (System_Version_Control_Used,
                          "system.version_control%s");
+ 
+          --  Ditto for the use of Ada.Command_Line, except we always set
+          --  Command_Line_Used to True if on a non-configurable run-time
+          --  as parts of the compiler and run-time assume the GNAT command
+          --  line symbols are available and can be imported directly (as
+          --  long as No_Run_Time mode is not set).
+ 
+          if Configurable_Run_Time_On_Target then
+             Check_Package (Command_Line_Used, "ada.command_line%s");
+          elsif not No_Run_Time_Mode then
+             Command_Line_Used := True;
+          end if;
        end loop;
     end Resolve_Binder_Options;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/bindgen.ads gcc-14.1.0/gcc/ada/bindgen.ads
*** gcc-13.2.0/gcc/ada/bindgen.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindgen.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-augmentors.adb gcc-14.1.0/gcc/ada/bindo-augmentors.adb
*** gcc-13.2.0/gcc/ada/bindo-augmentors.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-augmentors.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-augmentors.ads gcc-14.1.0/gcc/ada/bindo-augmentors.ads
*** gcc-13.2.0/gcc/ada/bindo-augmentors.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-augmentors.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-builders.adb gcc-14.1.0/gcc/ada/bindo-builders.adb
*** gcc-13.2.0/gcc/ada/bindo-builders.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-builders.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-builders.ads gcc-14.1.0/gcc/ada/bindo-builders.ads
*** gcc-13.2.0/gcc/ada/bindo-builders.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-builders.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-diagnostics.adb gcc-14.1.0/gcc/ada/bindo-diagnostics.adb
*** gcc-13.2.0/gcc/ada/bindo-diagnostics.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-diagnostics.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-diagnostics.ads gcc-14.1.0/gcc/ada/bindo-diagnostics.ads
*** gcc-13.2.0/gcc/ada/bindo-diagnostics.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-diagnostics.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-elaborators.adb gcc-14.1.0/gcc/ada/bindo-elaborators.adb
*** gcc-13.2.0/gcc/ada/bindo-elaborators.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-elaborators.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-elaborators.ads gcc-14.1.0/gcc/ada/bindo-elaborators.ads
*** gcc-13.2.0/gcc/ada/bindo-elaborators.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-elaborators.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-graphs.adb gcc-14.1.0/gcc/ada/bindo-graphs.adb
*** gcc-13.2.0/gcc/ada/bindo-graphs.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-graphs.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-graphs.ads gcc-14.1.0/gcc/ada/bindo-graphs.ads
*** gcc-13.2.0/gcc/ada/bindo-graphs.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-graphs.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-units.adb gcc-14.1.0/gcc/ada/bindo-units.adb
*** gcc-13.2.0/gcc/ada/bindo-units.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-units.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-units.ads gcc-14.1.0/gcc/ada/bindo-units.ads
*** gcc-13.2.0/gcc/ada/bindo-units.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-units.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-validators.adb gcc-14.1.0/gcc/ada/bindo-validators.adb
*** gcc-13.2.0/gcc/ada/bindo-validators.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-validators.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-validators.ads gcc-14.1.0/gcc/ada/bindo-validators.ads
*** gcc-13.2.0/gcc/ada/bindo-validators.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-validators.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-writers.adb gcc-14.1.0/gcc/ada/bindo-writers.adb
*** gcc-13.2.0/gcc/ada/bindo-writers.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-writers.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo-writers.ads gcc-14.1.0/gcc/ada/bindo-writers.ads
*** gcc-13.2.0/gcc/ada/bindo-writers.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo-writers.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo.adb gcc-14.1.0/gcc/ada/bindo.adb
*** gcc-13.2.0/gcc/ada/bindo.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindo.ads gcc-14.1.0/gcc/ada/bindo.ads
*** gcc-13.2.0/gcc/ada/bindo.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/bindusg.adb gcc-14.1.0/gcc/ada/bindusg.adb
*** gcc-13.2.0/gcc/ada/bindusg.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindusg.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Bindusg is
*** 234,240 ****
        --  Line for Q switch
  
        Write_Line
!         ("  -Qnnn     Generate nnn default-sized secondary stacks");
  
        --  Line for -r switch
  
--- 234,240 ----
        --  Line for Q switch
  
        Write_Line
!         ("  -Qnnn     Generate nnn additional default-sized secondary stacks");
  
        --  Line for -r switch
  
diff -Nrcpad gcc-13.2.0/gcc/ada/bindusg.ads gcc-14.1.0/gcc/ada/bindusg.ads
*** gcc-13.2.0/gcc/ada/bindusg.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/bindusg.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/butil.adb gcc-14.1.0/gcc/ada/butil.adb
*** gcc-13.2.0/gcc/ada/butil.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/butil.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/butil.ads gcc-14.1.0/gcc/ada/butil.ads
*** gcc-13.2.0/gcc/ada/butil.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/butil.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/cal.c gcc-14.1.0/gcc/ada/cal.c
*** gcc-13.2.0/gcc/ada/cal.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/cal.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/casing.adb gcc-14.1.0/gcc/ada/casing.adb
*** gcc-13.2.0/gcc/ada/casing.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/casing.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/casing.ads gcc-14.1.0/gcc/ada/casing.ads
*** gcc-13.2.0/gcc/ada/casing.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/casing.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/checks.adb gcc-14.1.0/gcc/ada/checks.adb
*** gcc-13.2.0/gcc/ada/checks.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/checks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Checks is
*** 1664,1670 ****
                 end if;
  
                 --  If the expressions for the discriminants are identical
!                --  and it is side-effect free (for now just an entity),
                 --  this may be a shared constraint, e.g. from a subtype
                 --  without a constraint introduced as a generic actual.
                 --  Examine other discriminants if any.
--- 1664,1670 ----
                 end if;
  
                 --  If the expressions for the discriminants are identical
!                --  and it is side-effect-free (for now just an entity),
                 --  this may be a shared constraint, e.g. from a subtype
                 --  without a constraint introduced as a generic actual.
                 --  Examine other discriminants if any.
*************** package body Checks is
*** 1810,1818 ****
                 Determine_Range (Left, LOK, Llo, Lhi, Assume_Valid => True);
                 LLB := Expr_Value (Type_Low_Bound (Base_Type (Typ)));
  
!                if ((not ROK) or else (Rlo <= (-1) and then (-1) <= Rhi))
                       and then
!                   ((not LOK) or else (Llo = LLB))
                 then
                    --  Ensure that expressions are not evaluated twice (once
                    --  for their runtime checks and once for their regular
--- 1810,1818 ----
                 Determine_Range (Left, LOK, Llo, Lhi, Assume_Valid => True);
                 LLB := Expr_Value (Type_Low_Bound (Base_Type (Typ)));
  
!                if (not ROK or else (Rlo <= (-1) and then (-1) <= Rhi))
                       and then
!                   (not LOK or else Llo = LLB)
                 then
                    --  Ensure that expressions are not evaluated twice (once
                    --  for their runtime checks and once for their regular
*************** package body Checks is
*** 1872,1878 ****
        then
           Set_Do_Division_Check (N, False);
  
!          if (not ROK) or else (Rlo <= 0 and then 0 <= Rhi) then
              if Is_Floating_Point_Type (Etype (N)) then
                 Opnd := Make_Real_Literal (Loc, Ureal_0);
              else
--- 1872,1878 ----
        then
           Set_Do_Division_Check (N, False);
  
!          if not ROK or else (Rlo <= 0 and then 0 <= Rhi) then
              if Is_Floating_Point_Type (Etype (N)) then
                 Opnd := Make_Real_Literal (Loc, Ureal_0);
              else
*************** package body Checks is
*** 2720,2734 ****
     ---------------------------
  
     procedure Apply_Predicate_Check
!      (N   : Node_Id;
!       Typ : Entity_Id;
!       Fun : Entity_Id := Empty)
     is
!       Par : Node_Id;
!       S   : Entity_Id;
  
-       Check_Disabled : constant Boolean := (not Predicate_Enabled (Typ))
-         or else not Predicate_Check_In_Scope (N);
     begin
        S := Current_Scope;
        while Present (S) and then not Is_Subprogram (S) loop
--- 2720,2739 ----
     ---------------------------
  
     procedure Apply_Predicate_Check
!      (N     : Node_Id;
!       Typ   : Entity_Id;
!       Deref : Boolean := False;
!       Fun   : Entity_Id := Empty)
     is
!       Loc            : constant Source_Ptr := Sloc (N);
!       Check_Disabled : constant Boolean :=
!         not Predicate_Enabled (Typ)
!           or else not Predicate_Check_In_Scope (N);
! 
!       Expr : Node_Id;
!       Par  : Node_Id;
!       S    : Entity_Id;
  
     begin
        S := Current_Scope;
        while Present (S) and then not Is_Subprogram (S) loop
*************** package body Checks is
*** 2757,2763 ****
  
           if not Check_Disabled then
              Insert_Action (N,
!               Make_Raise_Storage_Error (Sloc (N),
                  Reason => SE_Infinite_Recursion));
              return;
           end if;
--- 2762,2768 ----
  
           if not Check_Disabled then
              Insert_Action (N,
!               Make_Raise_Storage_Error (Loc,
                  Reason => SE_Infinite_Recursion));
              return;
           end if;
*************** package body Checks is
*** 2824,2842 ****
           Par := Parent (Par);
        end if;
  
!       --  For an entity of the type, generate a call to the predicate
!       --  function, unless its type is an actual subtype, which is not
!       --  visible outside of the enclosing subprogram.
! 
!       if Is_Entity_Name (N)
!         and then not Is_Actual_Subtype (Typ)
!       then
!          Insert_Action (N,
!            Make_Predicate_Check
!              (Typ, New_Occurrence_Of (Entity (N), Sloc (N))));
!          return;
  
!       elsif Nkind (N) in N_Aggregate | N_Extension_Aggregate then
  
           --  If the expression is an aggregate in an assignment, apply the
           --  check to the LHS after the assignment, rather than create a
--- 2829,2837 ----
           Par := Parent (Par);
        end if;
  
!       --  Try to avoid creating a temporary if the expression is an aggregate
  
!       if Nkind (N) in N_Aggregate | N_Extension_Aggregate then
  
           --  If the expression is an aggregate in an assignment, apply the
           --  check to the LHS after the assignment, rather than create a
*************** package body Checks is
*** 2871,2891 ****
              then
                 Insert_Action_After (Par,
                    Make_Predicate_Check (Typ,
!                     New_Occurrence_Of (Defining_Identifier (Par), Sloc (N))));
                 return;
              end if;
  
           end if;
        end if;
  
!       --  If the expression is not an entity it may have side effects,
!       --  and the following call will create an object declaration for
!       --  it. We disable checks during its analysis, to prevent an
!       --  infinite recursion.
  
!       Insert_Action (N,
!         Make_Predicate_Check
!           (Typ, Duplicate_Subexpr (N)), Suppress => All_Checks);
     end Apply_Predicate_Check;
  
     -----------------------
--- 2866,2901 ----
              then
                 Insert_Action_After (Par,
                    Make_Predicate_Check (Typ,
!                     New_Occurrence_Of (Defining_Identifier (Par), Loc)));
                 return;
              end if;
  
           end if;
        end if;
  
!       --  For an entity of the type, generate a call to the predicate
!       --  function, unless its type is an actual subtype, which is not
!       --  visible outside of the enclosing subprogram.
  
!       if Is_Entity_Name (N) and then not Is_Actual_Subtype (Typ) then
!          Expr := New_Occurrence_Of (Entity (N), Loc);
! 
!       --  If the expression is not an entity, it may have side effects
! 
!       else
!          Expr := Duplicate_Subexpr (N);
!       end if;
! 
!       --  Make the dereference if requested
! 
!       if Deref then
!          Expr := Make_Explicit_Dereference (Loc, Prefix => Expr);
!       end if;
! 
!       --  Disable checks to prevent an infinite recursion
! 
!       Insert_Action
!         (N, Make_Predicate_Check (Typ, Expr), Suppress => All_Checks);
     end Apply_Predicate_Check;
  
     -----------------------
*************** package body Checks is
*** 3501,3507 ****
           --  for the subscript, and that convert will do the necessary validity
           --  check.
  
!          if (No_Check_Needed = Empty_Dimension_Set)
             or else not No_Check_Needed.Elements (Dimension)
           then
              Ensure_Valid (Sub, Holes_OK => True);
--- 3511,3517 ----
           --  for the subscript, and that convert will do the necessary validity
           --  check.
  
!          if No_Check_Needed = Empty_Dimension_Set
             or else not No_Check_Needed.Elements (Dimension)
           then
              Ensure_Valid (Sub, Holes_OK => True);
*************** package body Checks is
*** 8437,8443 ****
                Right_Opnd => Make_Null (Loc)),
            Reason => CE_Access_Check_Failed));
  
!       Mark_Non_Null;
     end Install_Null_Excluding_Check;
  
     -----------------------------------------
--- 8447,8464 ----
                Right_Opnd => Make_Null (Loc)),
            Reason => CE_Access_Check_Failed));
  
!       --  Mark the entity of N "non-null" except when assertions are enabled -
!       --  since expansion becomes much more complicated (especially when it
!       --  comes to contracts) due to the generation of wrappers and wholesale
!       --  moving of declarations and statements which may happen.
! 
!       --  Additionally, it is assumed that extra checks will exist with
!       --  assertions enabled so some potentially redundant checks are
!       --  acceptable.
! 
!       if not Assertions_Enabled then
!          Mark_Non_Null;
!       end if;
     end Install_Null_Excluding_Check;
  
     -----------------------------------------
*************** package body Checks is
*** 10815,10820 ****
--- 10836,10843 ----
  
                 if not Check_Added
                   and then Is_Fixed_Lower_Bound_Index_Subtype (T_Typ)
+                  and then Known_LB
+                  and then Known_T_LB
                   and then Expr_Value (LB) /= Expr_Value (T_LB)
                 then
                    Add_Check
diff -Nrcpad gcc-13.2.0/gcc/ada/checks.ads gcc-14.1.0/gcc/ada/checks.ads
*** gcc-13.2.0/gcc/ada/checks.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/checks.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Checks is
*** 256,268 ****
     --  results.
  
     procedure Apply_Predicate_Check
!      (N   : Node_Id;
!       Typ : Entity_Id;
!       Fun : Entity_Id := Empty);
     --  N is an expression to which a predicate check may need to be applied for
!    --  Typ, if Typ has a predicate function. When N is an actual in a call, Fun
!    --  is the function being called, which is used to generate a better warning
!    --  if the call leads to an infinite recursion.
  
     procedure Apply_Type_Conversion_Checks (N : Node_Id);
     --  N is an N_Type_Conversion node. A type conversion actually involves
--- 256,269 ----
     --  results.
  
     procedure Apply_Predicate_Check
!      (N     : Node_Id;
!       Typ   : Entity_Id;
!       Deref : Boolean := False;
!       Fun   : Entity_Id := Empty);
     --  N is an expression to which a predicate check may need to be applied for
!    --  Typ if Typ has a predicate function, after dereference if Deref is True.
!    --  When N is an actual in a call, Fun is the function being called, which
!    --  is used to generate a warning if the call leads to infinite recursion.
  
     procedure Apply_Type_Conversion_Checks (N : Node_Id);
     --  N is an N_Type_Conversion node. A type conversion actually involves
diff -Nrcpad gcc-13.2.0/gcc/ada/cio.c gcc-14.1.0/gcc/ada/cio.c
*** gcc-13.2.0/gcc/ada/cio.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/cio.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/clean.adb gcc-14.1.0/gcc/ada/clean.adb
*** gcc-13.2.0/gcc/ada/clean.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/clean.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Clean is
*** 554,560 ****
        --  In verbose mode, if Delete has not been called, indicate that no file
        --  needs to be deleted.
  
!       if Verbose_Mode and (not File_Deleted) then
           New_Line;
  
           if Do_Nothing then
--- 554,560 ----
        --  In verbose mode, if Delete has not been called, indicate that no file
        --  needs to be deleted.
  
!       if Verbose_Mode and not File_Deleted then
           New_Line;
  
           if Do_Nothing then
diff -Nrcpad gcc-13.2.0/gcc/ada/clean.ads gcc-14.1.0/gcc/ada/clean.ads
*** gcc-13.2.0/gcc/ada/clean.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/clean.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/comperr.adb gcc-14.1.0/gcc/ada/comperr.adb
*** gcc-13.2.0/gcc/ada/comperr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/comperr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Comperr is
*** 177,186 ****
  
           --  Output target name, deleting junk final reverse slash
  
!          if Target_Name.all (Target_Name.all'Last) = '\'
!            or else Target_Name.all (Target_Name.all'Last) = '/'
!          then
!             Write_Str (Target_Name.all (1 .. Target_Name.all'Last - 1));
           else
              Write_Str (Target_Name.all);
           end if;
--- 177,184 ----
  
           --  Output target name, deleting junk final reverse slash
  
!          if Target_Name (Target_Name'Last) in '/' | '\' then
!             Write_Str (Target_Name (1 .. Target_Name'Last - 1));
           else
              Write_Str (Target_Name.all);
           end if;
diff -Nrcpad gcc-13.2.0/gcc/ada/comperr.ads gcc-14.1.0/gcc/ada/comperr.ads
*** gcc-13.2.0/gcc/ada/comperr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/comperr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/config-lang.in gcc-14.1.0/gcc/ada/config-lang.in
*** gcc-13.2.0/gcc/ada/config-lang.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/config-lang.in	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2009 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/contracts.adb gcc-14.1.0/gcc/ada/contracts.adb
*** gcc-13.2.0/gcc/ada/contracts.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/contracts.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2015-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2015-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Warnsw;         use Warnsw;
*** 62,67 ****
--- 62,72 ----
  
  package body Contracts is
  
+    Contract_Error : exception;
+    --  This exception is raised by Add_Contract_Item when it is invoked on an
+    --  invalid pragma. Note that clients of the package must filter them out
+    --  before invoking Add_Contract_Item, so it should not escape the package.
+ 
     procedure Analyze_Package_Instantiation_Contract (Inst_Id : Entity_Id);
     --  Analyze all delayed pragmas chained on the contract of package
     --  instantiation Inst_Id as if they appear at the end of a declarative
*************** package body Contracts is
*** 104,111 ****
     procedure Expand_Subprogram_Contract (Body_Id : Entity_Id);
     --  Expand the contracts of a subprogram body and its correspoding spec (if
     --  any). This routine processes all [refined] pre- and postconditions as
!    --  well as Contract_Cases, Subprogram_Variant, invariants and predicates.
!    --  Body_Id denotes the entity of the subprogram body.
  
     procedure Preanalyze_Condition
       (Subp : Entity_Id;
--- 109,117 ----
     procedure Expand_Subprogram_Contract (Body_Id : Entity_Id);
     --  Expand the contracts of a subprogram body and its correspoding spec (if
     --  any). This routine processes all [refined] pre- and postconditions as
!    --  well as Always_Terminates, Contract_Cases, Exceptional_Cases,
!    --  Subprogram_Variant, invariants and predicates. Body_Id denotes the
!    --  entity of the subprogram body.
  
     procedure Preanalyze_Condition
       (Subp : Entity_Id;
*************** package body Contracts is
*** 197,203 ****
           --  The pragma is not a proper contract item
  
           else
!             raise Program_Error;
           end if;
  
        --  Entry bodies, the applicable pragmas are:
--- 203,209 ----
           --  The pragma is not a proper contract item
  
           else
!             raise Contract_Error;
           end if;
  
        --  Entry bodies, the applicable pragmas are:
*************** package body Contracts is
*** 215,232 ****
           --  The pragma is not a proper contract item
  
           else
!             raise Program_Error;
           end if;
  
        --  Entry or subprogram declarations, the applicable pragmas are:
        --    Attach_Handler
        --    Contract_Cases
        --    Depends
        --    Extensions_Visible
        --    Global
        --    Interrupt_Handler
        --    Postcondition
        --    Precondition
        --    Test_Case
        --    Volatile_Function
  
--- 221,242 ----
           --  The pragma is not a proper contract item
  
           else
!             raise Contract_Error;
           end if;
  
        --  Entry or subprogram declarations, the applicable pragmas are:
+       --    Always_Terminates
        --    Attach_Handler
        --    Contract_Cases
        --    Depends
+       --    Exceptional_Cases
        --    Extensions_Visible
        --    Global
        --    Interrupt_Handler
        --    Postcondition
        --    Precondition
+       --    Side_Effects
+       --    Subprogram_Variant
        --    Test_Case
        --    Volatile_Function
  
*************** package body Contracts is
*** 244,249 ****
--- 254,260 ----
           elsif Prag_Nam in Name_Depends
                           | Name_Extensions_Visible
                           | Name_Global
+                          | Name_Side_Effects
           then
              Add_Classification;
  
*************** package body Contracts is
*** 252,258 ****
           then
              Add_Classification;
  
!          elsif Prag_Nam in Name_Contract_Cases
                           | Name_Subprogram_Variant
                           | Name_Test_Case
           then
--- 263,271 ----
           then
              Add_Classification;
  
!          elsif Prag_Nam in Name_Always_Terminates
!                          | Name_Contract_Cases
!                          | Name_Exceptional_Cases
                           | Name_Subprogram_Variant
                           | Name_Test_Case
           then
*************** package body Contracts is
*** 264,270 ****
           --  The pragma is not a proper contract item
  
           else
!             raise Program_Error;
           end if;
  
        --  Packages or instantiations, the applicable pragmas are:
--- 277,283 ----
           --  The pragma is not a proper contract item
  
           else
!             raise Contract_Error;
           end if;
  
        --  Packages or instantiations, the applicable pragmas are:
*************** package body Contracts is
*** 285,294 ****
           elsif Prag_Nam = Name_Part_Of and then Is_Generic_Instance (Id) then
              Add_Classification;
  
           --  The pragma is not a proper contract item
  
           else
!             raise Program_Error;
           end if;
  
        --  Package bodies, the applicable pragmas are:
--- 298,310 ----
           elsif Prag_Nam = Name_Part_Of and then Is_Generic_Instance (Id) then
              Add_Classification;
  
+          elsif Prag_Nam = Name_Always_Terminates then
+             Add_Contract_Test_Case;
+ 
           --  The pragma is not a proper contract item
  
           else
!             raise Contract_Error;
           end if;
  
        --  Package bodies, the applicable pragmas are:
*************** package body Contracts is
*** 301,316 ****
           --  The pragma is not a proper contract item
  
           else
!             raise Program_Error;
           end if;
  
        --  The four volatility refinement pragmas are ok for all types.
        --  Part_Of is ok for task types and protected types.
        --  Depends and Global are ok for task types.
  
        elsif Is_Type (Id) then
           declare
!             Is_OK : constant Boolean :=
                Prag_Nam in Name_Async_Readers
                          | Name_Async_Writers
                          | Name_Effective_Reads
--- 317,335 ----
           --  The pragma is not a proper contract item
  
           else
!             raise Contract_Error;
           end if;
  
        --  The four volatility refinement pragmas are ok for all types.
        --  Part_Of is ok for task types and protected types.
        --  Depends and Global are ok for task types.
+       --
+       --  Precondition and Postcondition are added separately; they are allowed
+       --  for access-to-subprogram types.
  
        elsif Is_Type (Id) then
           declare
!             Is_OK_Classification : constant Boolean :=
                Prag_Nam in Name_Async_Readers
                          | Name_Async_Writers
                          | Name_Effective_Reads
*************** package body Contracts is
*** 322,335 ****
                                         | Name_Global)
                or else (Ekind (Id) = E_Protected_Type
                           and Prag_Nam = Name_Part_Of);
           begin
!             if Is_OK then
                 Add_Classification;
              else
  
                 --  The pragma is not a proper contract item
  
!                raise Program_Error;
              end if;
           end;
  
--- 341,361 ----
                                         | Name_Global)
                or else (Ekind (Id) = E_Protected_Type
                           and Prag_Nam = Name_Part_Of);
+ 
           begin
!             if Is_OK_Classification then
                 Add_Classification;
+ 
+             elsif Ekind (Id) = E_Subprogram_Type
+                 and then Prag_Nam in Name_Precondition
+                                    | Name_Postcondition
+             then
+                Add_Pre_Post_Condition;
              else
  
                 --  The pragma is not a proper contract item
  
!                raise Contract_Error;
              end if;
           end;
  
*************** package body Contracts is
*** 353,359 ****
           --  The pragma is not a proper contract item
  
           else
!             raise Program_Error;
           end if;
  
        --  Task bodies, the applicable pragmas are:
--- 379,385 ----
           --  The pragma is not a proper contract item
  
           else
!             raise Contract_Error;
           end if;
  
        --  Task bodies, the applicable pragmas are:
*************** package body Contracts is
*** 367,373 ****
           --  The pragma is not a proper contract item
  
           else
!             raise Program_Error;
           end if;
  
        --  Task units, the applicable pragmas are:
--- 393,399 ----
           --  The pragma is not a proper contract item
  
           else
!             raise Contract_Error;
           end if;
  
        --  Task units, the applicable pragmas are:
*************** package body Contracts is
*** 402,412 ****
           --  The pragma is not a proper contract item
  
           else
!             raise Program_Error;
           end if;
  
        else
!          raise Program_Error;
        end if;
     end Add_Contract_Item;
  
--- 428,438 ----
           --  The pragma is not a proper contract item
  
           else
!             raise Contract_Error;
           end if;
  
        else
!          raise Contract_Error;
        end if;
     end Add_Contract_Item;
  
*************** package body Contracts is
*** 564,573 ****
        Items     : constant Node_Id   := Contract (Body_Id);
        Spec_Id   : constant Entity_Id := Unique_Defining_Entity (Body_Decl);
  
-       Saved_SM  : constant SPARK_Mode_Type := SPARK_Mode;
-       Saved_SMP : constant Node_Id         := SPARK_Mode_Pragma;
-       --  Save the SPARK_Mode-related data to restore on exit
- 
     begin
        --  When a subprogram body declaration is illegal, its defining entity is
        --  left unanalyzed. There is nothing left to do in this case because the
--- 590,595 ----
*************** package body Contracts is
*** 584,624 ****
           else
              Set_Analyzed (Items);
           end if;
-       end if;
  
!       --  Due to the timing of contract analysis, delayed pragmas may be
!       --  subject to the wrong SPARK_Mode, usually that of the enclosing
!       --  context. To remedy this, restore the original SPARK_Mode of the
!       --  related subprogram body.
  
!       Set_SPARK_Mode (Body_Id);
  
        --  Ensure that the contract cases or postconditions mention 'Result or
        --  define a post-state.
  
        Check_Result_And_Post_State (Body_Id);
  
-       --  A stand-alone nonvolatile function body cannot have an effectively
-       --  volatile formal parameter or return type (SPARK RM 7.1.3(9)). This
-       --  check is relevant only when SPARK_Mode is on, as it is not a standard
-       --  legality rule. The check is performed here because Volatile_Function
-       --  is processed after the analysis of the related subprogram body. The
-       --  check only applies to source subprograms and not to generated TSS
-       --  subprograms.
- 
-       if SPARK_Mode = On
-         and then Ekind (Body_Id) in E_Function | E_Generic_Function
-         and then Comes_From_Source (Spec_Id)
-         and then not Is_Volatile_Function (Body_Id)
-       then
-          Check_Nonvolatile_Function_Profile (Body_Id);
-       end if;
- 
-       --  Restore the SPARK_Mode of the enclosing context after all delayed
-       --  pragmas have been analyzed.
- 
-       Restore_SPARK_Mode (Saved_SM, Saved_SMP);
- 
        --  Capture all global references in a generic subprogram body now that
        --  the contract has been analyzed.
  
--- 606,634 ----
           else
              Set_Analyzed (Items);
           end if;
  
!       --  When this is a subprogram body not coming from source, for example an
!       --  expression function, it does not cause freezing of previous contracts
!       --  (see Analyze_Subprogram_Body_Helper), in particular not of those on
!       --  its spec if it exists. In this case make sure they have been properly
!       --  analyzed before being expanded below, as we may be invoked during the
!       --  freezing of the subprogram in the middle of its enclosing declarative
!       --  part because the declarative part contains e.g. the declaration of a
!       --  variable initialized by means of a call to the subprogram.
  
!       elsif Nkind (Body_Decl) = N_Subprogram_Body
!         and then not Comes_From_Source (Original_Node (Body_Decl))
!         and then Present (Corresponding_Spec (Body_Decl))
!         and then Present (Contract (Corresponding_Spec (Body_Decl)))
!       then
!          Analyze_Entry_Or_Subprogram_Contract (Corresponding_Spec (Body_Decl));
!       end if;
  
        --  Ensure that the contract cases or postconditions mention 'Result or
        --  define a post-state.
  
        Check_Result_And_Post_State (Body_Id);
  
        --  Capture all global references in a generic subprogram body now that
        --  the contract has been analyzed.
  
*************** package body Contracts is
*** 628,636 ****
              Gen_Id => Spec_Id);
        end if;
  
!       --  Deal with preconditions, [refined] postconditions, Contract_Cases,
!       --  Subprogram_Variant, invariants and predicates associated with body
!       --  and its spec. Do not expand the contract of subprogram body stubs.
  
        if Nkind (Body_Decl) = N_Subprogram_Body then
           Expand_Subprogram_Contract (Body_Id);
--- 638,647 ----
              Gen_Id => Spec_Id);
        end if;
  
!       --  Deal with preconditions, [refined] postconditions, Always_Terminates,
!       --  Contract_Cases, Exceptional_Cases, Subprogram_Variant, invariants and
!       --  predicates associated with body and its spec. Do not expand the
!       --  contract of subprogram body stubs.
  
        if Nkind (Body_Decl) = N_Subprogram_Body then
           Expand_Subprogram_Contract (Body_Id);
*************** package body Contracts is
*** 650,656 ****
        Freeze_Id : Entity_Id := Empty)
     is
        Items     : constant Node_Id := Contract (Subp_Id);
!       Subp_Decl : constant Node_Id := Unit_Declaration_Node (Subp_Id);
  
        Saved_SM  : constant SPARK_Mode_Type := SPARK_Mode;
        Saved_SMP : constant Node_Id         := SPARK_Mode_Pragma;
--- 661,670 ----
        Freeze_Id : Entity_Id := Empty)
     is
        Items     : constant Node_Id := Contract (Subp_Id);
!       Subp_Decl : constant Node_Id :=
!         (if Ekind (Subp_Id) = E_Subprogram_Type
!          then Associated_Node_For_Itype (Subp_Id)
!          else Unit_Declaration_Node (Subp_Id));
  
        Saved_SM  : constant SPARK_Mode_Type := SPARK_Mode;
        Saved_SMP : constant Node_Id         := SPARK_Mode_Pragma;
*************** package body Contracts is
*** 750,756 ****
           while Present (Prag) loop
              Prag_Nam := Pragma_Name (Prag);
  
!             if Prag_Nam = Name_Contract_Cases then
  
                 --  Do not analyze the contract cases of an entry declaration
                 --  unless annotating the original tree for GNATprove.
--- 764,773 ----
           while Present (Prag) loop
              Prag_Nam := Pragma_Name (Prag);
  
!             if Prag_Nam = Name_Always_Terminates then
!                Analyze_Always_Terminates_In_Decl_Part (Prag);
! 
!             elsif Prag_Nam = Name_Contract_Cases then
  
                 --  Do not analyze the contract cases of an entry declaration
                 --  unless annotating the original tree for GNATprove.
*************** package body Contracts is
*** 766,771 ****
--- 783,791 ----
                    Analyze_Contract_Cases_In_Decl_Part (Prag, Freeze_Id);
                 end if;
  
+             elsif Prag_Nam = Name_Exceptional_Cases then
+                Analyze_Exceptional_Cases_In_Decl_Part (Prag);
+ 
              elsif Prag_Nam = Name_Subprogram_Variant then
                 Analyze_Subprogram_Variant_In_Decl_Part (Prag);
  
*************** package body Contracts is
*** 813,832 ****
           Check_Result_And_Post_State (Subp_Id);
        end if;
  
-       --  A nonvolatile function cannot have an effectively volatile formal
-       --  parameter or return type (SPARK RM 7.1.3(9)). This check is relevant
-       --  only when SPARK_Mode is on, as it is not a standard legality rule.
-       --  The check is performed here because pragma Volatile_Function is
-       --  processed after the analysis of the related subprogram declaration.
- 
-       if SPARK_Mode = On
-         and then Ekind (Subp_Id) in E_Function | E_Generic_Function
-         and then Comes_From_Source (Subp_Id)
-         and then not Is_Volatile_Function (Subp_Id)
-       then
-          Check_Nonvolatile_Function_Profile (Subp_Id);
-       end if;
- 
        --  Restore the SPARK_Mode of the enclosing context after all delayed
        --  pragmas have been analyzed.
  
--- 833,838 ----
*************** package body Contracts is
*** 850,868 ****
       (Type_Or_Obj_Id : Entity_Id)
     is
        Is_Type_Id : constant Boolean := Is_Type (Type_Or_Obj_Id);
-       Decl_Kind  : constant String :=
-         (if Is_Type_Id then "type" else "object");
  
        --  Local variables
  
!       AR_Val  : Boolean := False;
!       AW_Val  : Boolean := False;
!       ER_Val  : Boolean := False;
!       EW_Val  : Boolean := False;
!       NC_Val  : Boolean;
!       Seen    : Boolean := False;
!       Prag    : Node_Id;
!       Obj_Typ : Entity_Id;
  
     --  Start of processing for Check_Type_Or_Object_External_Properties
  
--- 856,871 ----
       (Type_Or_Obj_Id : Entity_Id)
     is
        Is_Type_Id : constant Boolean := Is_Type (Type_Or_Obj_Id);
  
        --  Local variables
  
!       AR_Val : Boolean := False;
!       AW_Val : Boolean := False;
!       ER_Val : Boolean := False;
!       EW_Val : Boolean := False;
!       NC_Val : Boolean;
!       Seen   : Boolean := False;
!       Prag   : Node_Id;
  
     --  Start of processing for Check_Type_Or_Object_External_Properties
  
*************** package body Contracts is
*** 870,877 ****
        --  Analyze all external properties
  
        if Is_Type_Id then
-          Obj_Typ := Type_Or_Obj_Id;
- 
           --  If the parent type of a derived type is volatile
           --  then the derived type inherits volatility-related flags.
  
--- 873,878 ----
*************** package body Contracts is
*** 888,895 ****
                 end if;
              end;
           end if;
-       else
-          Obj_Typ := Etype (Type_Or_Obj_Id);
        end if;
  
        Prag := Get_Pragma (Type_Or_Obj_Id, Pragma_Async_Readers);
--- 889,894 ----
*************** package body Contracts is
*** 975,1069 ****
        if Present (Prag) then
           Analyze_External_Property_In_Decl_Part (Prag, NC_Val);
        end if;
- 
-       --  The following checks are relevant only when SPARK_Mode is on, as
-       --  they are not standard Ada legality rules. Internally generated
-       --  temporaries are ignored, as well as return objects.
- 
-       if SPARK_Mode = On
-         and then Comes_From_Source (Type_Or_Obj_Id)
-         and then not Is_Return_Object (Type_Or_Obj_Id)
-       then
-          if Is_Effectively_Volatile (Type_Or_Obj_Id) then
- 
-             --  The declaration of an effectively volatile object or type must
-             --  appear at the library level (SPARK RM 7.1.3(3), C.6(6)).
- 
-             if not Is_Library_Level_Entity (Type_Or_Obj_Id) then
-                Error_Msg_N
-                  ("effectively volatile "
-                     & Decl_Kind
-                     & " & must be declared at library level "
-                     & "(SPARK RM 7.1.3(3))", Type_Or_Obj_Id);
- 
-             --  An object of a discriminated type cannot be effectively
-             --  volatile except for protected objects (SPARK RM 7.1.3(5)).
- 
-             elsif Has_Discriminants (Obj_Typ)
-               and then not Is_Protected_Type (Obj_Typ)
-             then
-                Error_Msg_N
-                 ("discriminated " & Decl_Kind & " & cannot be volatile",
-                  Type_Or_Obj_Id);
-             end if;
- 
-             --  An object decl shall be compatible with respect to volatility
-             --  with its type (SPARK RM 7.1.3(2)).
- 
-             if not Is_Type_Id then
-                if Is_Effectively_Volatile (Obj_Typ) then
-                   Check_Volatility_Compatibility
-                     (Type_Or_Obj_Id, Obj_Typ,
-                      "volatile object", "its type",
-                      Srcpos_Bearer => Type_Or_Obj_Id);
-                end if;
- 
-             --  A component of a composite type (in this case, the composite
-             --  type is an array type) shall be compatible with respect to
-             --  volatility with the composite type (SPARK RM 7.1.3(6)).
- 
-             elsif Is_Array_Type (Obj_Typ) then
-                Check_Volatility_Compatibility
-                  (Component_Type (Obj_Typ), Obj_Typ,
-                   "component type", "its enclosing array type",
-                   Srcpos_Bearer => Obj_Typ);
- 
-             --  A component of a composite type (in this case, the composite
-             --  type is a record type) shall be compatible with respect to
-             --  volatility with the composite type (SPARK RM 7.1.3(6)).
- 
-             elsif Is_Record_Type (Obj_Typ) then
-                declare
-                   Comp : Entity_Id := First_Component (Obj_Typ);
-                begin
-                   while Present (Comp) loop
-                      Check_Volatility_Compatibility
-                        (Etype (Comp), Obj_Typ,
-                         "record component " & Get_Name_String (Chars (Comp)),
-                         "its enclosing record type",
-                         Srcpos_Bearer => Comp);
-                      Next_Component (Comp);
-                   end loop;
-                end;
-             end if;
- 
-          --  The type or object is not effectively volatile
- 
-          else
-             --  A non-effectively volatile type cannot have effectively
-             --  volatile components (SPARK RM 7.1.3(6)).
- 
-             if Is_Type_Id
-               and then not Is_Effectively_Volatile (Type_Or_Obj_Id)
-               and then Has_Effectively_Volatile_Component (Type_Or_Obj_Id)
-             then
-                Error_Msg_N
-                  ("non-volatile type & cannot have effectively volatile"
-                     & " components",
-                   Type_Or_Obj_Id);
-             end if;
-          end if;
-       end if;
     end Check_Type_Or_Object_External_Properties;
  
     -----------------------------
--- 974,979 ----
*************** package body Contracts is
*** 1210,1221 ****
           if Yields_Synchronized_Object (Obj_Typ) then
              Error_Msg_N ("ghost object & cannot be synchronized", Obj_Id);
  
-          --  A Ghost object cannot be effectively volatile (SPARK RM 6.9(7) and
-          --  SPARK RM 6.9(19)).
- 
-          elsif SPARK_Mode = On and then Is_Effectively_Volatile (Obj_Id) then
-             Error_Msg_N ("ghost object & cannot be volatile", Obj_Id);
- 
           --  A Ghost object cannot be imported or exported (SPARK RM 6.9(7)).
           --  One exception to this is the object that represents the dispatch
           --  table of a Ghost tagged type, as the symbol needs to be exported.
--- 1120,1125 ----
*************** package body Contracts is
*** 1491,1498 ****
--- 1395,1404 ----
           Analyze_Entry_Or_Subprogram_Body_Contract (Stub_Id);
  
        --  The stub acts as its own spec, the applicable pragmas are:
+       --    Always_Terminates
        --    Contract_Cases
        --    Depends
+       --    Exceptional_Cases
        --    Global
        --    Postcondition
        --    Precondition
*************** package body Contracts is
*** 1571,1576 ****
--- 1477,1489 ----
     begin
        Check_Type_Or_Object_External_Properties
          (Type_Or_Obj_Id => Type_Id);
+ 
+       --  Analyze Pre/Post on access-to-subprogram type
+ 
+       if Ekind (Type_Id) in Access_Subprogram_Kind then
+          Analyze_Entry_Or_Subprogram_Contract
+            (Directly_Designated_Type (Type_Id));
+       end if;
     end Analyze_Type_Contract;
  
     ---------------------------------------
*************** package body Contracts is
*** 1631,1637 ****
        --     return
        --        Result_Obj : constant Typ := _Wrapped_Statements
        --     do
!       --        <postconditions statments>
        --     end return;
        --  end;
  
--- 1544,1550 ----
        --     return
        --        Result_Obj : constant Typ := _Wrapped_Statements
        --     do
!       --        <postconditions statements>
        --     end return;
        --  end;
  
*************** package body Contracts is
*** 1649,1655 ****
        --
        --  begin
        --     _Wrapped_Statements;
!       --     <postconditions statments>
        --  end;
  
        --  Create Identifier
--- 1562,1568 ----
        --
        --  begin
        --     _Wrapped_Statements;
!       --     <postconditions statements>
        --  end;
  
        --  Create Identifier
*************** package body Contracts is
*** 2180,2185 ****
--- 2093,2104 ----
           else
              Add_Contract_Item (Prag, Templ_Id);
           end if;
+ 
+       exception
+          --  We do not stop the compilation at this point in the case of an
+          --  invalid pragma because it will be properly diagnosed afterward.
+ 
+          when Contract_Error => null;
        end Add_Generic_Contract_Pragma;
  
        --  Local variables
*************** package body Contracts is
*** 2418,2424 ****
                 --  declarations of the package containing the type, or in the
                 --  visible declaration of a child unit of that package.
  
!                else
                    declare
                       Decls      : constant List_Id   :=
                                      List_Containing (Subp_Decl);
--- 2337,2343 ----
                 --  declarations of the package containing the type, or in the
                 --  visible declaration of a child unit of that package.
  
!                elsif Is_List_Member (Subp_Decl) then
                    declare
                       Decls      : constant List_Id   :=
                                      List_Containing (Subp_Decl);
*************** package body Contracts is
*** 2442,2447 ****
--- 2361,2389 ----
                                   (Specification
                                     (Unit_Declaration_Node (Subp_Scope))));
                    end;
+ 
+                --  Determine whether the subprogram is a child subprogram of
+                --  of the package containing the type.
+ 
+                else
+                   pragma Assert
+                     (Nkind (Parent (Subp_Decl)) = N_Compilation_Unit);
+ 
+                   declare
+                      Subp_Scope : constant Entity_Id :=
+                                     Scope (Defining_Entity (Subp_Decl));
+                      Typ_Scope  : constant Entity_Id := Scope (Typ);
+ 
+                   begin
+                      return
+                        Ekind (Subp_Scope) = E_Package
+                          and then
+                            (Typ_Scope = Subp_Scope
+                               or else
+                                 (Is_Child_Unit (Subp_Scope)
+                                    and then Is_Ancestor_Package
+                                               (Typ_Scope, Subp_Scope)));
+                   end;
                 end if;
              end Has_Public_Visibility_Of_Subprogram;
  
*************** package body Contracts is
*** 2587,2603 ****
                  Pragma_Argument_Associations => Args,
                  Class_Present                => Class_Present);
  
!             Subp_Decl : Node_Id := Subp_Id;
           begin
-             --  Enclosing_Declaration may return, for example,
-             --  a N_Procedure_Specification node. Cope with this.
-             loop
-                Subp_Decl := Enclosing_Declaration (Subp_Decl);
-                exit when Is_Declaration (Subp_Decl);
-                Subp_Decl := Parent (Subp_Decl);
-                pragma Assert (Present (Subp_Decl));
-             end loop;
- 
              Insert_After_And_Analyze (Subp_Decl, Prag);
           end Insert_Stable_Property_Check;
  
--- 2529,2537 ----
                  Pragma_Argument_Associations => Args,
                  Class_Present                => Class_Present);
  
!             Subp_Decl : constant Node_Id := Enclosing_Declaration (Subp_Id);
!             pragma Assert (Is_Declaration (Subp_Decl));
           begin
              Insert_After_And_Analyze (Subp_Decl, Prag);
           end Insert_Stable_Property_Check;
  
*************** package body Contracts is
*** 2823,2835 ****
                 Prag := Contract_Test_Cases (Items);
                 while Present (Prag) loop
                    if Is_Checked (Prag) then
!                      if Pragma_Name (Prag) = Name_Contract_Cases then
                          Expand_Pragma_Contract_Cases
                            (CCs     => Prag,
                             Subp_Id => Subp_Id,
                             Decls   => Decls,
                             Stmts   => Stmts);
  
                       elsif Pragma_Name (Prag) = Name_Subprogram_Variant then
                          Expand_Pragma_Subprogram_Variant
                            (Prag       => Prag,
--- 2757,2775 ----
                 Prag := Contract_Test_Cases (Items);
                 while Present (Prag) loop
                    if Is_Checked (Prag) then
!                      if Pragma_Name (Prag) = Name_Always_Terminates then
!                         Expand_Pragma_Always_Terminates (Prag);
! 
!                      elsif Pragma_Name (Prag) = Name_Contract_Cases then
                          Expand_Pragma_Contract_Cases
                            (CCs     => Prag,
                             Subp_Id => Subp_Id,
                             Decls   => Decls,
                             Stmts   => Stmts);
  
+                      elsif Pragma_Name (Prag) = Name_Exceptional_Cases then
+                         Expand_Pragma_Exceptional_Cases (Prag);
+ 
                       elsif Pragma_Name (Prag) = Name_Subprogram_Variant then
                          Expand_Pragma_Subprogram_Variant
                            (Prag       => Prag,
*************** package body Contracts is
*** 3691,3696 ****
--- 3631,3637 ----
          and then Present (Contract (From_Subp))
        then
           Inherit_Pragma (Pragma_Extensions_Visible);
+          Inherit_Pragma (Pragma_Side_Effects);
        end if;
     end Inherit_Subprogram_Contract;
  
*************** package body Contracts is
*** 4818,4826 ****
        --  Traverse Expr and clear the Controlling_Argument of calls to
        --  nonabstract functions.
  
-       procedure Remove_Formals (Id : Entity_Id);
-       --  Remove formals from homonym chains and make them not visible
- 
        procedure Restore_Original_Selected_Component;
        --  Traverse Expr searching for dispatching calls to functions whose
        --  original node was a selected component, and replace them with
--- 4759,4764 ----
*************** package body Contracts is
*** 4870,4890 ****
           Remove_Ctrl_Args (Expr);
        end Remove_Controlling_Arguments;
  
-       --------------------
-       -- Remove_Formals --
-       --------------------
- 
-       procedure Remove_Formals (Id : Entity_Id) is
-          F : Entity_Id := First_Formal (Id);
- 
-       begin
-          while Present (F) loop
-             Set_Is_Immediately_Visible (F, False);
-             Remove_Homonym (F);
-             Next_Formal (F);
-          end loop;
-       end Remove_Formals;
- 
        -----------------------------------------
        -- Restore_Original_Selected_Component --
        -----------------------------------------
--- 4808,4813 ----
*************** package body Contracts is
*** 4926,4933 ****
  
              begin
                 if Par /= Parent_Node then
!                   pragma Assert (not Is_List_Member (Node));
!                   Set_Parent (Node, Parent_Node);
                 end if;
  
                 return OK;
--- 4849,4859 ----
  
              begin
                 if Par /= Parent_Node then
!                   if Is_List_Member (Node) then
!                      Set_List_Parent (List_Containing (Node), Parent_Node);
!                   else
!                      Set_Parent (Node, Parent_Node);
!                   end if;
                 end if;
  
                 return OK;
*************** package body Contracts is
*** 5003,5010 ****
        Preanalyze_Spec_Expression (Expr, Standard_Boolean);
  
        Inside_Class_Condition_Preanalysis := False;
!       Remove_Formals (Subp);
!       Pop_Scope;
  
        --  If this preanalyzed condition has occurrences of dispatching calls
        --  using the Object.Operation notation, during preanalysis such calls
--- 4929,4935 ----
        Preanalyze_Spec_Expression (Expr, Standard_Boolean);
  
        Inside_Class_Condition_Preanalysis := False;
!       End_Scope;
  
        --  If this preanalyzed condition has occurrences of dispatching calls
        --  using the Object.Operation notation, during preanalysis such calls
diff -Nrcpad gcc-13.2.0/gcc/ada/contracts.ads gcc-14.1.0/gcc/ada/contracts.ads
*** gcc-13.2.0/gcc/ada/contracts.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/contracts.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2015-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2015-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Contracts is
*** 37,42 ****
--- 37,43 ----
     --  The following are valid pragmas:
     --
     --    Abstract_State
+    --    Always_Terminates
     --    Async_Readers
     --    Async_Writers
     --    Attach_Handler
*************** package Contracts is
*** 45,50 ****
--- 46,52 ----
     --    Depends
     --    Effective_Reads
     --    Effective_Writes
+    --    Exceptional_Cases
     --    Extensions_Visible
     --    Global
     --    Initial_Condition
*************** package Contracts is
*** 58,63 ****
--- 60,67 ----
     --    Refined_Global
     --    Refined_Post
     --    Refined_States
+    --    Side_Effects
+    --    Subprogram_Variant
     --    Test_Case
     --    Volatile_Function
  
*************** package Contracts is
*** 79,86 ****
--- 83,92 ----
     --  subprogram body Body_Id as if they appeared at the end of a declarative
     --  region. Pragmas in question are:
     --
+    --    Always_Terminates  (stand alone subprogram body)
     --    Contract_Cases     (stand alone subprogram body)
     --    Depends            (stand alone subprogram body)
+    --    Exceptional_Cases  (stand alone subprogram body)
     --    Global             (stand alone subprogram body)
     --    Postcondition      (stand alone subprogram body)
     --    Precondition       (stand alone subprogram body)
*************** package Contracts is
*** 97,104 ****
--- 103,112 ----
     --  subprogram Subp_Id as if they appeared at the end of a declarative
     --  region. The pragmas in question are:
     --
+    --    Always_Terminates
     --    Contract_Cases
     --    Depends
+    --    Exceptional_Cases
     --    Global
     --    Postcondition
     --    Precondition
*************** package Contracts is
*** 135,140 ****
--- 143,150 ----
     --    Async_Writers
     --    Effective_Reads
     --    Effective_Writes
+    --    Postcondition
+    --    Precondition
     --
     --  In the case of a protected or task type, there will also be
     --  a call to Analyze_Protected_Contract or Analyze_Task_Contract.
*************** package Contracts is
*** 169,182 ****
--- 179,195 ----
     --  stub Stub_Id as if they appeared at the end of a declarative region. The
     --  pragmas in question are:
     --
+    --    Always_Terminates
     --    Contract_Cases
     --    Depends
+    --    Exceptional_Cases
     --    Global
     --    Postcondition
     --    Precondition
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
+    --    Subprogram_Variant
     --    Test_Case
  
     procedure Analyze_Task_Contract (Task_Id : Entity_Id);
*************** package Contracts is
*** 215,220 ****
--- 228,234 ----
     --  Inherit relevant contract items from source subprogram From_Subp. Subp
     --  denotes the destination subprogram. The inherited items are:
     --    Extensions_Visible
+    --    Side_Effects
     --  ??? it would be nice if this routine handles Pre'Class and Post'Class
  
     procedure Instantiate_Subprogram_Contract (Templ : Node_Id; L : List_Id);
diff -Nrcpad gcc-13.2.0/gcc/ada/csets.adb gcc-14.1.0/gcc/ada/csets.adb
*** gcc-13.2.0/gcc/ada/csets.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/csets.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/csets.ads gcc-14.1.0/gcc/ada/csets.ads
*** gcc-13.2.0/gcc/ada/csets.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/csets.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/cstand.adb gcc-14.1.0/gcc/ada/cstand.adb
*** gcc-13.2.0/gcc/ada/cstand.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/cstand.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body CStand is
*** 1642,1649 ****
  
        for E in Standard_Entity_Type loop
           if Ekind (Standard_Entity (E)) /= E_Operator then
!             Set_Name_Entity_Id
!               (Chars (Standard_Entity (E)), Standard_Entity (E));
              Set_Homonym (Standard_Entity (E), Empty);
           end if;
  
--- 1642,1648 ----
  
        for E in Standard_Entity_Type loop
           if Ekind (Standard_Entity (E)) /= E_Operator then
!             Set_Current_Entity (Standard_Entity (E));
              Set_Homonym (Standard_Entity (E), Empty);
           end if;
  
*************** package body CStand is
*** 1784,1789 ****
--- 1783,1789 ----
  
        Set_Is_Immediately_Visible  (Ident_Node, True);
        Set_Is_Intrinsic_Subprogram (Ident_Node, True);
+       Set_Is_Not_Self_Hidden (Ident_Node);
  
        Set_Name_Entity_Id (Op, Ident_Node);
        Append_Entity (Ident_Node, Standard_Standard);
*************** package body CStand is
*** 1806,1814 ****
        Set_Is_Public (E);
  
        --  All standard entity names are analyzed manually, and are thus
!       --  frozen as soon as they are created.
  
        Set_Is_Frozen (E);
  
        --  Set debug information required for all standard types
  
--- 1806,1815 ----
        Set_Is_Public (E);
  
        --  All standard entity names are analyzed manually, and are thus
!       --  frozen and not self-hidden as soon as they are created.
  
        Set_Is_Frozen (E);
+       Set_Is_Not_Self_Hidden (E);
  
        --  Set debug information required for all standard types
  
diff -Nrcpad gcc-13.2.0/gcc/ada/cstand.ads gcc-14.1.0/gcc/ada/cstand.ads
*** gcc-13.2.0/gcc/ada/cstand.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/cstand.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/cstreams.c gcc-14.1.0/gcc/ada/cstreams.c
*** gcc-13.2.0/gcc/ada/cstreams.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/cstreams.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *              Auxiliary C functions for Interfaces.C.Streams              *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *              Auxiliary C functions for Interfaces.C.Streams              *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/ctrl_c.c gcc-14.1.0/gcc/ada/ctrl_c.c
*** gcc-13.2.0/gcc/ada/ctrl_c.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/ctrl_c.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2002-2023, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2002-2024, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/debug.adb gcc-14.1.0/gcc/ada/debug.adb
*** gcc-13.2.0/gcc/ada/debug.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/debug.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Debug is
*** 41,47 ****
     --  dh   Generate listing showing loading of name table hash chains
     --  di   Generate messages for visibility linking/delinking
     --  dj   Suppress "junk null check" for access parameter values
!    --  dk   Generate GNATBUG message on abort, even if previous errors
     --  dl   Generate unit load trace messages
     --  dm   Prevent special frontend inlining in GNATprove mode
     --  dn   Generate messages for node/list allocation
--- 41,47 ----
     --  dh   Generate listing showing loading of name table hash chains
     --  di   Generate messages for visibility linking/delinking
     --  dj   Suppress "junk null check" for access parameter values
!    --  dk   Generate "GNAT BUG" message on abort, even if previous errors
     --  dl   Generate unit load trace messages
     --  dm   Prevent special frontend inlining in GNATprove mode
     --  dn   Generate messages for node/list allocation
*************** package body Debug is
*** 113,119 ****
     --  d.z  Restore previous support for frontend handling of Inline_Always
  
     --  d.A  Enable statistics printing in Atree
!    --  d.B  Generate a bug box on abort_statement
     --  d.C  Generate concatenation call, do not generate inline code
     --  d.D  Disable errors on use of overriding keyword in Ada 95 mode
     --  d.E  Turn selected errors into warnings
--- 113,119 ----
     --  d.z  Restore previous support for frontend handling of Inline_Always
  
     --  d.A  Enable statistics printing in Atree
!    --  d.B  Generate a "GNAT BUG" message on abort_statement
     --  d.C  Generate concatenation call, do not generate inline code
     --  d.D  Disable errors on use of overriding keyword in Ada 95 mode
     --  d.E  Turn selected errors into warnings
*************** package body Debug is
*** 123,131 ****
     --  d.I  Do not ignore enum representation clauses in CodePeer mode
     --  d.J  Relaxed rules for pragma No_Return
     --  d.K  Do not reject components in extensions overlapping with parent
-    --  d.L  Depend on back end for limited types in if and case expressions
     --  d.M  Relaxed RM semantics
!    --  d.N
     --  d.O  Dump internal SCO tables
     --  d.P  Previous (non-optimized) handling of length comparisons
     --  d.Q  Previous (incomplete) style check for binary operators
--- 123,130 ----
     --  d.I  Do not ignore enum representation clauses in CodePeer mode
     --  d.J  Relaxed rules for pragma No_Return
     --  d.K  Do not reject components in extensions overlapping with parent
     --  d.M  Relaxed RM semantics
!    --  d.N  Use rounding when converting from floating point to fixed point
     --  d.O  Dump internal SCO tables
     --  d.P  Previous (non-optimized) handling of length comparisons
     --  d.Q  Previous (incomplete) style check for binary operators
*************** package body Debug is
*** 486,494 ****
     --       GNAT before 3.10, so this switch can ease the transition process.
  
     --  dk   Immediate kill on abort. Normally on an abort (i.e. a call to
!    --       Comperr.Compiler_Abort), the GNATBUG message is not given if
!    --       there is a previous error. This debug switch bypasses this test
!    --       and gives the message unconditionally (useful for debugging).
  
     --  dl   Generate unit load trace messages. A line of traceback output is
     --       generated each time a request is made to the library manager to
--- 485,496 ----
     --       GNAT before 3.10, so this switch can ease the transition process.
  
     --  dk   Immediate kill on abort. Normally on an abort (i.e. a call to
!    --       Comperr.Compiler_Abort), the "GNAT BUG" message is not given if
!    --       there is a previous error. Instead, the message "compilation
!    --       abandoned due to previous error" is given. This debug switch
!    --       bypasses this test and gives the "GNAT BUG" message unconditionally
!    --       (useful for debugging). Use -gnatdO in addition to see the previous
!    --       errors.
  
     --  dl   Generate unit load trace messages. A line of traceback output is
     --       generated each time a request is made to the library manager to
*************** package body Debug is
*** 835,846 ****
     --       with -gnatd.A. You might want to apply "sort -nr" to parts of the
     --       output.
  
!    --  d.B  Generate a bug box when we see an abort_statement, even though
!    --       there is no bug. Useful for testing Comperr.Compiler_Abort: write
!    --       some code containing an abort_statement, and compile it with
     --       -gnatd.B. There is nothing special about abort_statements; it just
!    --       provides a way to control where the bug box is generated. See "when
!    --       N_Abort_Statement" in package body Expander.
  
     --  d.C  Generate call to System.Concat_n.Str_Concat_n routines in cases
     --       where we would normally generate inline concatenation code.
--- 837,848 ----
     --       with -gnatd.A. You might want to apply "sort -nr" to parts of the
     --       output.
  
!    --  d.B  Generate a "GNAT BUG" message when we see an abort_statement, even
!    --       though there is no bug. Useful for testing Comperr.Compiler_Abort:
!    --       write some code containing an abort_statement, and compile it with
     --       -gnatd.B. There is nothing special about abort_statements; it just
!    --       provides a way to control where the bug box is generated. See the
!    --       "when N_Abort_Statement" in package body Expander.
  
     --  d.C  Generate call to System.Concat_n.Str_Concat_n routines in cases
     --       where we would normally generate inline concatenation code.
*************** package body Debug is
*** 895,908 ****
     --       clause but they cannot be fully supported by the GCC type system.
     --       This switch nevertheless allows them for the sake of compatibility.
  
-    --  d.L  Normally the front end generates special expansion for conditional
-    --       expressions of a limited type. This debug flag removes this special
-    --       case expansion, leaving it up to the back end to handle conditional
-    --       expressions correctly.
- 
     --  d.M  Relaxed RM semantics. This flag sets Opt.Relaxed_RM_Semantics
     --       See Opt.Relaxed_RM_Semantics for more details.
  
     --  d.O  Dump internal SCO tables. Before outputting the SCO information to
     --       the ALI file, the internal SCO tables (SCO_Table/SCO_Unit_Table)
     --       are dumped for debugging purposes.
--- 897,909 ----
     --       clause but they cannot be fully supported by the GCC type system.
     --       This switch nevertheless allows them for the sake of compatibility.
  
     --  d.M  Relaxed RM semantics. This flag sets Opt.Relaxed_RM_Semantics
     --       See Opt.Relaxed_RM_Semantics for more details.
  
+    --  d.N  Use rounding instead of truncation when dynamically converting from
+    --       a floating-point type to an ordinary fixed-point type, for the sake
+    --       of compatibility with earlier versions of the compiler.
+ 
     --  d.O  Dump internal SCO tables. Before outputting the SCO information to
     --       the ALI file, the internal SCO tables (SCO_Table/SCO_Unit_Table)
     --       are dumped for debugging purposes.
diff -Nrcpad gcc-13.2.0/gcc/ada/debug.ads gcc-14.1.0/gcc/ada/debug.ads
*** gcc-13.2.0/gcc/ada/debug.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/debug.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/debug_a.adb gcc-14.1.0/gcc/ada/debug_a.adb
*** gcc-13.2.0/gcc/ada/debug_a.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/debug_a.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/debug_a.ads gcc-14.1.0/gcc/ada/debug_a.ads
*** gcc-13.2.0/gcc/ada/debug_a.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/debug_a.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst gcc-14.1.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,498 ----
+ .. _GNAT_Language_Extensions:
+ 
+ ************************
+ GNAT language extensions
+ ************************
+ 
+ The GNAT compiler implements a certain number of language extensions on top of
+ the latest Ada standard, implementing its own extended superset of Ada.
+ 
+ There are two sets of language extensions:
+ 
+ * The first is the curated set. The features in that set are features that we
+   consider being worthy additions to the Ada language, and that we want to make
+   available to users early on.
+ 
+ * The second is the experimental set. It includes the first, but also
+   experimental features, that are here because they're still in an early
+   prototyping phase.
+ 
+ How to activate the extended GNAT Ada superset
+ ==============================================
+ 
+ There are two ways to activate the extended GNAT Ada superset:
+ 
+ * The :ref:`Pragma Extensions_Allowed<Pragma_Extensions_Allowed>`. To activate
+   the curated set of extensions, you should use
+ 
+ .. code-block:: ada
+ 
+    pragma Extensions_Allowed (On)
+ 
+ As a configuration pragma, you can either put it at the beginning of a source
+ file, or in a ``.adc`` file corresponding to your project.
+ 
+ * The ``-gnatX`` option, that you can pass to the compiler directly, will
+   activate the curated subset of extensions.
+ 
+ .. attention:: You can activate the extended set of extensions by using either
+    the ``-gnatX0`` command line flag, or the pragma ``Extensions_Allowed`` with
+    ``All`` as an argument. However, it is not recommended you use this subset
+    for serious projects, and is only means as a playground/technology preview.
+ 
+ .. _Curated_Language_Extensions:
+ 
+ Curated Extensions
+ ==================
+ 
+ Local Declarations Without Block
+ --------------------------------
+ 
+ A basic_declarative_item may appear at the place of any statement.
+ This avoids the heavy syntax of block_statements just to declare
+ something locally.
+ 
+ Link to the original RFC:
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-local-vars-without-block.md
+ For example:
+ 
+ .. code-block:: ada
+ 
+    if X > 5 then
+       X := X + 1;
+ 
+       Squared : constant Integer := X**2;
+ 
+       X := X + Squared;
+    end if;
+ 
+ Conditional when constructs
+ ---------------------------
+ 
+ This feature extends the use of ``when`` as a way to condition a control-flow
+ related statement, to all control-flow related statements.
+ 
+ To do a conditional return in a procedure the following syntax should be used:
+ 
+ .. code-block:: ada
+ 
+    procedure P (Condition : Boolean) is
+    begin
+       return when Condition;
+    end;
+ 
+ This will return from the procedure if ``Condition`` is true.
+ 
+ When being used in a function the conditional part comes after the return value:
+ 
+ .. code-block:: ada
+ 
+    function Is_Null (I : Integer) return Boolean is
+    begin
+       return True when I = 0;
+       return False;
+    end;
+ 
+ In a similar way to the ``exit when`` a ``goto ... when`` can be employed:
+ 
+ .. code-block:: ada
+ 
+    procedure Low_Level_Optimized is
+       Flags : Bitmapping;
+    begin
+       Do_1 (Flags);
+       goto Cleanup when Flags (1);
+ 
+       Do_2 (Flags);
+       goto Cleanup when Flags (32);
+ 
+       --  ...
+ 
+    <<Cleanup>>
+       --  ...
+    end;
+ 
+ .. code-block
+ 
+ To use a conditional raise construct:
+ 
+ .. code-block:: ada
+ 
+    procedure Foo is
+    begin
+       raise Error when Imported_C_Func /= 0;
+    end;
+ 
+ An exception message can also be added:
+ 
+ .. code-block:: ada
+ 
+    procedure Foo is
+    begin
+       raise Error with "Unix Error"
+         when Imported_C_Func /= 0;
+    end;
+ 
+ 
+ Link to the original RFC:
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-conditional-when-constructs.rst
+ 
+ Case pattern matching
+ ---------------------
+ 
+ The selector for a case statement (but not yet for a case expression) may be of a composite type, subject to
+ some restrictions (described below). Aggregate syntax is used for choices
+ of such a case statement; however, in cases where a "normal" aggregate would
+ require a discrete value, a discrete subtype may be used instead; box
+ notation can also be used to match all values.
+ 
+ Consider this example:
+ 
+ .. code-block:: ada
+ 
+   type Rec is record
+      F1, F2 : Integer;
+   end record;
+ 
+   procedure Caser_1 (X : Rec) is
+   begin
+      case X is
+         when (F1 => Positive, F2 => Positive) =>
+            Do_This;
+         when (F1 => Natural, F2 => <>) | (F1 => <>, F2 => Natural) =>
+            Do_That;
+         when others =>
+             Do_The_Other_Thing;
+      end case;
+   end Caser_1;
+ 
+ If ``Caser_1`` is called and both components of X are positive, then
+ ``Do_This`` will be called; otherwise, if either component is nonnegative
+ then ``Do_That`` will be called; otherwise, ``Do_The_Other_Thing`` will be
+ called.
+ 
+ In addition, pattern bindings are supported. This is a mechanism
+ for binding a name to a component of a matching value for use within
+ an alternative of a case statement. For a component association
+ that occurs within a case choice, the expression may be followed by
+ ``is <identifier>``. In the special case of a "box" component association,
+ the identifier may instead be provided within the box. Either of these
+ indicates that the given identifier denotes (a constant view of) the matching
+ subcomponent of the case selector.
+ 
+ .. attention:: Binding is not yet supported for arrays or subcomponents
+    thereof.
+ 
+ Consider this example (which uses type ``Rec`` from the previous example):
+ 
+ .. code-block:: ada
+ 
+   procedure Caser_2 (X : Rec) is
+   begin
+      case X is
+         when (F1 => Positive is Abc, F2 => Positive) =>
+            Do_This (Abc)
+         when (F1 => Natural is N1, F2 => <N2>) |
+              (F1 => <N2>, F2 => Natural is N1) =>
+            Do_That (Param_1 => N1, Param_2 => N2);
+         when others =>
+            Do_The_Other_Thing;
+      end case;
+   end Caser_2;
+ 
+ This example is the same as the previous one with respect to determining
+ whether ``Do_This``, ``Do_That``, or ``Do_The_Other_Thing`` will be called. But
+ for this version, ``Do_This`` takes a parameter and ``Do_That`` takes two
+ parameters. If ``Do_This`` is called, the actual parameter in the call will be
+ ``X.F1``.
+ 
+ If ``Do_That`` is called, the situation is more complex because there are two
+ choices for that alternative. If ``Do_That`` is called because the first choice
+ matched (i.e., because ``X.F1`` is nonnegative and either ``X.F1`` or ``X.F2``
+ is zero or negative), then the actual parameters of the call will be (in order)
+ ``X.F1`` and ``X.F2``. If ``Do_That`` is called because the second choice
+ matched (and the first one did not), then the actual parameters will be
+ reversed.
+ 
+ Within the choice list for single alternative, each choice must define the same
+ set of bindings and the component subtypes for for a given identifer must all
+ statically match. Currently, the case of a binding for a nondiscrete component
+ is not implemented.
+ 
+ If the set of values that match the choice(s) of an earlier alternative
+ overlaps the corresponding set of a later alternative, then the first set shall
+ be a proper subset of the second (and the later alternative will not be
+ executed if the earlier alternative "matches"). All possible values of the
+ composite type shall be covered. The composite type of the selector shall be an
+ array or record type that is neither limited nor class-wide. Currently, a "when
+ others =>" case choice is required; it is intended that this requirement will
+ be relaxed at some point.
+ 
+ If a subcomponent's subtype does not meet certain restrictions, then the only
+ value that can be specified for that subcomponent in a case choice expression
+ is a "box" component association (which matches all possible values for the
+ subcomponent). This restriction applies if:
+ 
+ - the component subtype is not a record, array, or discrete type; or
+ 
+ - the component subtype is subject to a non-static constraint or has a
+   predicate; or:
+ 
+ - the component type is an enumeration type that is subject to an enumeration
+   representation clause; or
+ 
+ - the component type is a multidimensional array type or an array type with a
+   nonstatic index subtype.
+ 
+ Support for casing on arrays (and on records that contain arrays) is
+ currently subject to some restrictions. Non-positional
+ array aggregates are not supported as (or within) case choices. Likewise
+ for array type and subtype names. The current implementation exceeds
+ compile-time capacity limits in some annoyingly common scenarios; the
+ message generated in such cases is usually "Capacity exceeded in compiling
+ case statement with composite selector type".
+ 
+ Link to the original RFC:
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-pattern-matching.rst
+ 
+ Fixed lower bounds for array types and subtypes
+ -----------------------------------------------
+ 
+ Unconstrained array types and subtypes can be specified with a lower bound that
+ is fixed to a certain value, by writing an index range that uses the syntax
+ ``<lower-bound-expression> .. <>``. This guarantees that all objects of the
+ type or subtype will have the specified lower bound.
+ 
+ For example, a matrix type with fixed lower bounds of zero for each dimension
+ can be declared by the following:
+ 
+ .. code-block:: ada
+ 
+     type Matrix is
+       array (Natural range 0 .. <>, Natural range 0 .. <>) of Integer;
+ 
+ Objects of type ``Matrix`` declared with an index constraint must have index
+ ranges starting at zero:
+ 
+ .. code-block:: ada
+ 
+     M1 : Matrix (0 .. 9, 0 .. 19);
+     M2 : Matrix (2 .. 11, 3 .. 22);  -- Warning about bounds; will raise CE
+ 
+ Similarly, a subtype of ``String`` can be declared that specifies the lower
+ bound of objects of that subtype to be ``1``:
+ 
+  .. code-block:: ada
+ 
+     subtype String_1 is String (1 .. <>);
+ 
+ If a string slice is passed to a formal of subtype ``String_1`` in a call to a
+ subprogram ``S``, the slice's bounds will "slide" so that the lower bound is
+ ``1``.
+ 
+ Within ``S``, the lower bound of the formal is known to be ``1``, so, unlike a
+ normal unconstrained ``String`` formal, there is no need to worry about
+ accounting for other possible lower-bound values. Sliding of bounds also occurs
+ in other contexts, such as for object declarations with an unconstrained
+ subtype with fixed lower bound, as well as in subtype conversions.
+ 
+ Use of this feature increases safety by simplifying code, and can also improve
+ the efficiency of indexing operations, since the compiler statically knows the
+ lower bound of unconstrained array formals when the formal's subtype has index
+ ranges with static fixed lower bounds.
+ 
+ Link to the original RFC:
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-fixed-lower-bound.rst
+ 
+ Prefixed-view notation for calls to primitive subprograms of untagged types
+ ---------------------------------------------------------------------------
+ 
+ When operating on an untagged type, if it has any primitive operations, and the
+ first parameter of an operation is of the type (or is an access parameter with
+ an anonymous type that designates the type), you may invoke these operations
+ using an ``object.op(...)`` notation, where the parameter that would normally be
+ the first parameter is brought out front, and the remaining parameters (if any)
+ appear within parentheses after the name of the primitive operation.
+ 
+ This same notation is already available for tagged types. This extension allows
+ for untagged types. It is allowed for all primitive operations of the type
+ independent of whether they were originally declared in a package spec or its
+ private part, or were inherited and/or overridden as part of a derived type
+ declaration occuring anywhere, so long as the first parameter is of the type,
+ or an access parameter designating the type.
+ 
+ For example:
+ 
+ .. code-block:: ada
+ 
+     generic
+        type Elem_Type is private;
+     package Vectors is
+         type Vector is private;
+         procedure Add_Element (V : in out Vector; Elem : Elem_Type);
+         function Nth_Element (V : Vector; N : Positive) return Elem_Type;
+         function Length (V : Vector) return Natural;
+     private
+         function Capacity (V : Vector) return Natural;
+            --  Return number of elements that may be added without causing
+            --  any new allocation of space
+ 
+         type Vector is ...
+           with Type_Invariant => Vector.Length <= Vector.Capacity;
+         ...
+     end Vectors;
+ 
+     package Int_Vecs is new Vectors(Integer);
+ 
+     V : Int_Vecs.Vector;
+     ...
+     V.Add_Element(42);
+     V.Add_Element(-33);
+ 
+     pragma Assert (V.Length = 2);
+     pragma Assert (V.Nth_Element(1) = 42);
+ 
+ Link to the original RFC:
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-prefixed-untagged.rst
+ 
+ Expression defaults for generic formal functions
+ ------------------------------------------------
+ 
+ The declaration of a generic formal function is allowed to specify
+ an expression as a default, using the syntax of an expression function.
+ 
+ Here is an example of this feature:
+ 
+ .. code-block:: ada
+ 
+     generic
+        type T is private;
+        with function Copy (Item : T) return T is (Item); -- Defaults to Item
+     package Stacks is
+ 
+        type Stack is limited private;
+ 
+        procedure Push (S : in out Stack; X : T); -- Calls Copy on X
+        function Pop (S : in out Stack) return T; -- Calls Copy to return item
+ 
+     private
+        -- ...
+     end Stacks;
+ 
+ Link to the original RFC:
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-expression-functions-as-default-for-generic-formal-function-parameters.rst
+ 
+ String interpolation
+ --------------------
+ 
+ The syntax for string literals is extended to support string interpolation.
+ 
+ Within an interpolated string literal, an arbitrary expression, when
+ enclosed in ``{ ... }``, is expanded at run time into the result of calling
+ ``'Image`` on the result of evaluating the expression enclosed by the brace
+ characters, unless it is already a string or a single character.
+ 
+ Here is an example of this feature where the expressions ``Name`` and ``X + Y``
+ will be evaluated and included in the string.
+ 
+ .. code-block:: ada
+ 
+    procedure Test_Interpolation is
+       X    : Integer := 12;
+       Y    : Integer := 15;
+       Name : String := "Leo";
+    begin
+       Put_Line (f"The name is {Name} and the sum is {X + Y}.");
+    end Test_Interpolation;
+ 
+ In addition, an escape character (``\``) is provided for inserting certain
+ standard control characters (such as ``\t`` for tabulation or ``\n`` for
+ newline) or to escape characters with special significance to the
+ interpolated string syntax, namely ``"``, ``{``, ``}``,and ``\`` itself.
+ 
+ =================   =================
+ escaped_character   meaning
+ -----------------   -----------------
+ ``\a``              ALERT
+ ``\b``              BACKSPACE
+ ``\f``              FORM FEED
+ ``\n``              LINE FEED
+ ``\r``              CARRIAGE RETURN
+ ``\t``              CHARACTER TABULATION
+ ``\v``              LINE TABULATION
+ ``\0``              NUL
+ -----------------   -----------------
+ ``\\``              ``\``
+ ``\"``              ``"``
+ ``\{``              ``{``
+ ``\}``              ``}``
+ =================   =================
+ 
+ Note that, unlike normal string literals, doubled characters have no
+ special significance. So to include a double-quote or a brace character
+ in an interpolated string, they must be preceded by a ``\``.
+ For example:
+ 
+ .. code-block:: ada
+ 
+     Put_Line
+       (f"X = {X} and Y = {Y} and X+Y = {X+Y};\n" &
+        f" a double quote is \" and" &
+        f" an open brace is \{");
+ 
+ Finally, a syntax is provided for creating multi-line string literals,
+ without having to explicitly use an escape sequence such as ``\n``. For
+ example:
+ 
+ .. code-block:: ada
+ 
+     Put_Line
+       (f"This is a multi-line"
+         "string literal"
+         "There is no ambiguity about how many"
+         "spaces are included in each line");
+ 
+ Here is a link to the original RFC   :
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-string-interpolation.rst
+ 
+ Constrained attribute for generic objects
+ -----------------------------------------
+ 
+ The ``Constrained`` attribute is permitted for objects of generic types. The
+ result indicates whether the corresponding actual is constrained.
+ 
+ ``Static`` aspect on intrinsic functions
+ ----------------------------------------
+ 
+ The Ada 202x ``Static`` aspect can be specified on Intrinsic imported functions
+ and the compiler will evaluate some of these intrinsics statically, in
+ particular the ``Shift_Left`` and ``Shift_Right`` intrinsics.
+ 
+ .. _Experimental_Language_Extensions:
+ 
+ Experimental Language Extensions
+ ================================
+ 
+ Pragma Storage_Model
+ --------------------
+ 
+ This feature proposes to redesign the concepts of Storage Pools into a more
+ efficient model allowing higher performances and easier integration with low
+ footprint embedded run-times.
+ 
+ It also extends it to support distributed memory models, in particular to
+ support interactions with GPU.
+ 
+ Here is a link to the full RFC:
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-storage-model.rst
+ 
+ Simpler accessibility model
+ ---------------------------
+ 
+ The goal of this feature is to restore a common understanding of accessibility
+ rules for implementers and users alike. The new rules should both be effective
+ at preventing errors and feel natural and compatible in an Ada environment
+ while removing dynamic accessibility checking.
+ 
+ Here is a link to the full RFC:
+ https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-simpler-accessibility.md
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst gcc-14.1.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst	Tue May  7 06:51:37 2024
*************** Aspect Abstract_State
*** 66,71 ****
--- 66,77 ----
  
  This aspect is equivalent to :ref:`pragma Abstract_State<Pragma-Abstract_State>`.
  
+ Aspect Always_Terminates
+ ========================
+ .. index:: Always_Terminates
+ 
+ This boolean aspect is equivalent to :ref:`pragma Always_Terminates<Pragma-Always_Terminates>`.
+ 
  Aspect Annotate
  ===============
  
*************** Aspect Effective_Writes
*** 237,242 ****
--- 243,260 ----
  
  This aspect is equivalent to :ref:`pragma Effective_Writes<Pragma-Effective_Writes>`.
  
+ Aspect Exceptional_Cases
+ ========================
+ .. index:: Exceptional_Cases
+ 
+ This aspect may be specified for procedures and functions with side effects;
+ it can be used to list exceptions that might be propagated by the subprogram
+ with side effects in the context of its precondition, and associate them
+ with a specific postcondition.
+ 
+ For the syntax and semantics of this aspect, see the SPARK 2014 Reference
+ Manual, section 6.1.9.
+ 
  Aspect Extensions_Visible
  =========================
  .. index:: Extensions_Visible
*************** Aspect Ghost
*** 255,260 ****
--- 273,288 ----
  
  This aspect is equivalent to :ref:`pragma Ghost<Pragma-Ghost>`.
  
+ Aspect Ghost_Predicate
+ ======================
+ .. index:: Ghost_Predicate
+ 
+ This aspect introduces a subtype predicate that can reference ghost
+ entities. The subtype cannot appear as a subtype_mark in a membership test.
+ 
+ For the detailed semantics of this aspect, see the entry for subtype predicates
+ in the SPARK Reference Manual, section 3.2.4.
+ 
  Aspect Global
  =============
  .. index:: Global
*************** Aspect Linker_Section
*** 362,367 ****
--- 390,447 ----
  
  This aspect is equivalent to :ref:`pragma Linker_Section<Pragma-Linker_Section>`.
  
+ Aspect Local_Restrictions
+ =========================
+ .. index:: Local_Restrictions
+ 
+ This aspect may be specified for a subprogram (and for other declarations
+ as described below). It is used to specify that a particular subprogram does
+ not violate one or more local restrictions, nor can it call a subprogram
+ that is not subject to the same requirement. Positional aggregate syntax
+ (with parentheses, not square brackets) may be used to specify more than one
+ local restriction, as in
+ 
+ .. code-block:: ada
+ 
+   procedure Do_Something
+     with Local_Restrictions => (Some_Restriction, Another_Restriction);
+ 
+ Parentheses are currently required even in the case of specifying a single
+ local restriction (this requirement may be relaxed in the future).
+ Supported local restrictions currently include (only) No_Heap_Allocations and
+ No_Secondary_Stack.
+ No_Secondary_Stack corresponds to the GNAT-defined (global) restriction
+ of the same name. No_Heap_Allocations corresponds to the conjunction of the
+ Ada-defined restrictions No_Allocators and No_Implicit_Heap_Allocations.
+ 
+ Additional requirements are imposed in order to ensure that restriction
+ violations cannot be achieved via overriding dispatching operations,
+ calling through an access-to-subprogram value, calling a generic formal
+ subprogram, or calling through a subprogram renaming.
+ For a dispatching operation, an overrider must be subject to (at least) the
+ same restrictions as the overridden inherited subprogram; similarly, the
+ actual subprogram corresponding to a generic formal subprogram
+ in an instantiation must be subject to (at least) the same restrictions
+ as the formal subprogram. A call through an access-to-subprogram value
+ is conservatively assumed to violate all local restrictions; tasking-related
+ constructs (notably entry calls) are treated similarly. A renaming-as-body is
+ treated like a subprogram body containing a call to the renamed subprogram.
+ 
+ The Local_Restrictions aspect can be specified for a package specification,
+ in which case the aspect specification also applies to all eligible entities
+ declared with the package. This includes types. Default initialization of an
+ object of a given type is treated like a call to an implicitly-declared
+ initialization subprogram. Such a "call" is subject to the same local
+ restriction checks as any other call. If a type is subject to a local
+ restriction, then any violations of that restriction within the default
+ initialization expressions (if any) of the type are rejected. This may
+ include "calls" to the default initialization subprograms of other types.
+ 
+ Local_Restrictions aspect specifications are additive (for example, in the
+ case of a declaration that occurs within nested packages that each have
+ a Local_Restrictions specification).
+ 
+ 
  Aspect Lock_Free
  ================
  .. index:: Lock_Free
*************** Aspect Shared
*** 515,520 ****
--- 595,606 ----
  This boolean aspect is equivalent to :ref:`pragma Shared<Pragma-Shared>`
  and is thus a synonym for aspect ``Atomic``.
  
+ Aspect Side_Effects
+ ===================
+ .. index:: Side_Effects
+ 
+ This aspect is equivalent to :ref:`pragma Side_Effects<Pragma-Side_Effects>`.
+ 
  Aspect Simple_Storage_Pool
  ==========================
  .. index:: Simple_Storage_Pool
*************** Aspect Unreferenced_Objects
*** 587,592 ****
--- 673,688 ----
  
  This boolean aspect is equivalent to :ref:`pragma Unreferenced_Objects<Pragma-Unreferenced_Objects>`.
  
+ Aspect User_Aspect
+ ==================
+ .. index:: User_Aspect
+ 
+ This aspect takes an argument that is the name of an aspect defined by a
+ User_Aspect_Definition configuration pragma.
+ A User_Aspect aspect specification is semantically equivalent to
+ replicating the set of aspect specifications associated with the named
+ pragma-defined aspect.
+ 
  Aspect Value_Size
  =================
  .. index:: Value_Size
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst gcc-14.1.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst	Tue May  7 06:51:37 2024
*************** This definition is determined by the und
*** 820,826 ****
    "The circumstances where an environment variable cannot be defined.
    See A.17(16)."
  
!   There are no such implementation-defined circumstances.
  
  *
    "Environment names for which Set has the effect of Clear.  See A.17(17)."
--- 820,826 ----
    "The circumstances where an environment variable cannot be defined.
    See A.17(16)."
  
! There are no such implementation-defined circumstances.
  
  *
    "Environment names for which Set has the effect of Clear.  See A.17(17)."
*************** Execution is erroneous in that case.
*** 1154,1161 ****
  * "Whether the use of pragma Restrictions results in a reduction in program
    code or data size or execution time.  See D.7(20)."
  
!   Yes it can, but the precise circumstances and properties of such reductions
!   are difficult to characterize.
  
  *
    "The value of Barrier_Limit'Last in Synchronous_Barriers.  See D.10.1(4)."
--- 1154,1161 ----
  * "Whether the use of pragma Restrictions results in a reduction in program
    code or data size or execution time.  See D.7(20)."
  
! Yes it can, but the precise circumstances and properties of such reductions
! are difficult to characterize.
  
  *
    "The value of Barrier_Limit'Last in Synchronous_Barriers.  See D.10.1(4)."
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst gcc-14.1.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Tue May  7 06:51:37 2024
*************** this pragma serves no purpose but is ign
*** 329,334 ****
--- 329,348 ----
  rather than rejected to allow common sets of sources to be used
  in the two situations.
  
+ .. _Pragma-Always_Terminates:
+ 
+ Pragma Always_Terminates
+ ========================
+ 
+ Syntax:
+ 
+ .. code-block:: ada
+ 
+   pragma Always_Terminates [ (boolean_EXPRESSION) ];
+ 
+ For the semantics of this pragma, see the entry for aspect ``Always_Terminates``
+ in the SPARK 2014 Reference Manual, section 7.1.2.
+ 
  .. _Pragma-Annotate:
  
  Pragma Annotate
*************** configuration  pragma, or in a declarati
*** 1905,1910 ****
--- 1919,1942 ----
  till the end of the scope. If an ``Entity`` argument is present,
  the action applies only to that entity.
  
+ Pragma Exceptional_Cases
+ ========================
+ .. index:: Exceptional_Cases
+ 
+ Syntax:
+ 
+ 
+ ::
+ 
+   pragma Exceptional_Cases (EXCEPTIONAL_CASE_LIST);
+ 
+   EXCEPTIONAL_CASE_LIST ::= EXCEPTIONAL_CASE {, EXCEPTIONAL_CASE}
+   EXCEPTIONAL_CASE      ::= exception_choice {'|' exception_choice} => CONSEQUENCE
+   CONSEQUENCE           ::= Boolean_expression
+ 
+ For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
+ 6.1.9.
+ 
  Pragma Export_Function
  ======================
  .. index:: Argument passing mechanisms
*************** To compile it you will have to use the *
*** 2163,2168 ****
--- 2195,2202 ----
  for compiling System units, as explained in the
  GNAT User's Guide.
  
+ .. _Pragma_Extensions_Allowed:
+ 
  Pragma Extensions_Allowed
  =========================
  .. index:: Ada Extensions
*************** Syntax:
*** 2179,2429 ****
  
  This configuration pragma enables (via the "On" or "All" argument) or disables
  (via the "Off" argument) the implementation extension mode; the pragma takes
! precedence over the *-gnatX* and *-gnatX0* command switches.
! 
! If an argument of "All" is specified, the latest version of the Ada language
! is implemented (currently Ada 2022) and, in addition, a number
! of GNAT specific extensions are recognized. These extensions are listed
! below. An argument of "On" has the same effect except that only
! some, not all, of the listed extensions are enabled; those extensions
! are identified below.
! 
! * Constrained attribute for generic objects
! 
!   The ``Constrained`` attribute is permitted for objects of
!   generic types. The result indicates if the corresponding actual
!   is constrained.
! 
! * ``Static`` aspect on intrinsic functions
! 
!   The Ada 202x ``Static`` aspect can be specified on Intrinsic imported
!   functions and the compiler will evaluate some of these intrinsic statically,
!   in particular the ``Shift_Left`` and ``Shift_Right`` intrinsics.
! 
!   An Extensions_Allowed pragma argument of "On" enables this extension.
! 
! * ``[]`` aggregates
! 
!   This new aggregate syntax for arrays and containers is provided under -gnatX
!   to experiment and confirm this new language syntax.
! 
! * Additional ``when`` constructs
! 
!   In addition to the ``exit when CONDITION`` control structure, several
!   additional constructs are allowed following this format. Including
!   ``return when CONDITION``, ``goto when CONDITION``, and
!   ``raise [with EXCEPTION_MESSAGE] when CONDITION.``
! 
!   Some examples:
! 
!   .. code-block:: ada
! 
!       return Result when Variable > 10;
! 
!       raise Program_Error with "Element is null" when Element = null;
! 
!       goto End_Of_Subprogram when Variable = -1;
! 
! * Casing on composite values (aka pattern matching)
! 
!   The selector for a case statement may be of a composite type, subject to
!   some restrictions (described below). Aggregate syntax is used for choices
!   of such a case statement; however, in cases where a "normal" aggregate would
!   require a discrete value, a discrete subtype may be used instead; box
!   notation can also be used to match all values.
! 
!   Consider this example:
! 
!   .. code-block:: ada
! 
!       type Rec is record
!          F1, F2 : Integer;
!       end record;
! 
!       procedure Caser_1 (X : Rec) is
!       begin
!          case X is
!             when (F1 => Positive, F2 => Positive) =>
!                Do_This;
!             when (F1 => Natural, F2 => <>) | (F1 => <>, F2 => Natural) =>
!                Do_That;
!             when others =>
!                 Do_The_Other_Thing;
!          end case;
!       end Caser_1;
! 
!   If Caser_1 is called and both components of X are positive, then
!   Do_This will be called; otherwise, if either component is nonnegative
!   then Do_That will be called; otherwise, Do_The_Other_Thing will be called.
! 
!   If the set of values that match the choice(s) of an earlier alternative
!   overlaps the corresponding set of a later alternative, then the first
!   set shall be a proper subset of the second (and the later alternative
!   will not be executed if the earlier alternative "matches"). All possible
!   values of the composite type shall be covered. The composite type of the
!   selector shall be an array or record type that is neither limited
!   class-wide. Currently, a "when others =>" case choice is required; it is
!   intended that this requirement will be relaxed at some point.
! 
!   If a subcomponent's subtype does not meet certain restrictions, then
!   the only value that can be specified for that subcomponent in a case
!   choice expression is a "box" component association (which matches all
!   possible values for the subcomponent). This restriction applies if
! 
!   - the component subtype is not a record, array, or discrete type; or
! 
!   - the component subtype is subject to a non-static constraint or
!     has a predicate; or
! 
!   - the component type is an enumeration type that is subject to an
!     enumeration representation clause; or
! 
!   - the component type is a multidimensional array type or an
!     array type with a nonstatic index subtype.
! 
!   Support for casing on arrays (and on records that contain arrays) is
!   currently subject to some restrictions. Non-positional
!   array aggregates are not supported as (or within) case choices. Likewise
!   for array type and subtype names. The current implementation exceeds
!   compile-time capacity limits in some annoyingly common scenarios; the
!   message generated in such cases is usually "Capacity exceeded in compiling
!   case statement with composite selector type".
! 
!   In addition, pattern bindings are supported. This is a mechanism
!   for binding a name to a component of a matching value for use within
!   an alternative of a case statement. For a component association
!   that occurs within a case choice, the expression may be followed by
!   "is <identifier>". In the special case of a "box" component association,
!   the identifier may instead be provided within the box. Either of these
!   indicates that the given identifer denotes (a constant view of) the matching
!   subcomponent of the case selector. Binding is not yet supported for arrays
!   or subcomponents thereof.
! 
!   Consider this example (which uses type Rec from the previous example):
! 
!   .. code-block:: ada
! 
!       procedure Caser_2 (X : Rec) is
!       begin
!          case X is
!             when (F1 => Positive is Abc, F2 => Positive) =>
!                Do_This (Abc)
!             when (F1 => Natural is N1, F2 => <N2>) |
!                  (F1 => <N2>, F2 => Natural is N1) =>
!                Do_That (Param_1 => N1, Param_2 => N2);
!             when others =>
!                Do_The_Other_Thing;
!          end case;
!       end Caser_2;
! 
!   This example is the same as the previous one with respect to
!   determining whether Do_This, Do_That, or Do_The_Other_Thing will
!   be called. But for this version, Do_This takes a parameter and Do_That
!   takes two parameters. If Do_This is called, the actual parameter in the
!   call will be X.F1.
! 
!   If Do_That is called, the situation is more complex because there are two
!   choices for that alternative. If Do_That is called because the first choice
!   matched (i.e., because X.F1 is nonnegative and either X.F1 or X.F2 is zero
!   or negative), then the actual parameters of the call will be (in order)
!   X.F1 and X.F2. If Do_That is called because the second choice matched (and
!   the first one did not), then the actual parameters will be reversed.
! 
!   Within the choice list for single alternative, each choice must
!   define the same set of bindings and the component subtypes for
!   for a given identifer must all statically match. Currently, the case
!   of a binding for a nondiscrete component is not implemented.
! 
!   An Extensions_Allowed pragma argument of "On" enables this extension.
! 
! * Fixed lower bounds for array types and subtypes
! 
!   Unconstrained array types and subtypes can be specified with a lower bound
!   that is fixed to a certain value, by writing an index range that uses the
!   syntax "<lower-bound-expression> .. <>". This guarantees that all objects
!   of the type or subtype will have the specified lower bound.
! 
!   For example, a matrix type with fixed lower bounds of zero for each
!   dimension can be declared by the following:
! 
!   .. code-block:: ada
! 
!       type Matrix is
!         array (Natural range 0 .. <>, Natural range 0 .. <>) of Integer;
! 
!   Objects of type Matrix declared with an index constraint must have index
!   ranges starting at zero:
! 
!   .. code-block:: ada
! 
!       M1 : Matrix (0 .. 9, 0 .. 19);
!       M2 : Matrix (2 .. 11, 3 .. 22);  -- Warning about bounds; will raise CE
! 
!   Similarly, a subtype of String can be declared that specifies the lower
!   bound of objects of that subtype to be 1:
! 
!    .. code-block:: ada
! 
!       subtype String_1 is String (1 .. <>);
! 
!   If a string slice is passed to a formal of subtype String_1 in a call to
!   a subprogram S, the slice's bounds will "slide" so that the lower bound
!   is 1. Within S, the lower bound of the formal is known to be 1, so, unlike
!   a normal unconstrained String formal, there is no need to worry about
!   accounting for other possible lower-bound values. Sliding of bounds also
!   occurs in other contexts, such as for object declarations with an
!   unconstrained subtype with fixed lower bound, as well as in subtype
!   conversions.
! 
!   Use of this feature increases safety by simplifying code, and can also
!   improve the efficiency of indexing operations, since the compiler statically
!   knows the lower bound of unconstrained array formals when the formal's
!   subtype has index ranges with static fixed lower bounds.
! 
!   An Extensions_Allowed pragma argument of "On" enables this extension.
! 
! * Prefixed-view notation for calls to primitive subprograms of untagged types
! 
!   Since Ada 2005, calls to primitive subprograms of a tagged type that
!   have a "prefixed view" (see RM 4.1.3(9.2)) have been allowed to be
!   written using the form of a selected_component, with the first actual
!   parameter given as the prefix and the name of the subprogram as a
!   selector. This prefixed-view notation for calls is extended so as to
!   also allow such syntax for calls to primitive subprograms of untagged
!   types. The primitives of an untagged type T that have a prefixed view
!   are those where the first formal parameter of the subprogram either
!   is of type T or is an anonymous access parameter whose designated type
!   is T. For a type that has a component that happens to have the same
!   simple name as one of the type's primitive subprograms, where the
!   component is visible at the point of a selected_component using that
!   name, preference is given to the component in a selected_component
!   (as is currently the case for tagged types with such component names).
! 
!   An Extensions_Allowed pragma argument of "On" enables this extension.
! 
! * Expression defaults for generic formal functions
! 
!   The declaration of a generic formal function is allowed to specify
!   an expression as a default, using the syntax of an expression function.
! 
!   Here is an example of this feature:
! 
!   .. code-block:: ada
! 
!       generic
!          type T is private;
!          with function Copy (Item : T) return T is (Item); -- Defaults to Item
!       package Stacks is
! 
!          type Stack is limited private;
! 
!          procedure Push (S : in out Stack; X : T); -- Calls Copy on X
  
!          function Pop (S : in out Stack) return T; -- Calls Copy to return item
  
!       private
!          -- ...
!       end Stacks;
  
  .. _Pragma-Extensions_Visible:
  
--- 2213,2228 ----
  
  This configuration pragma enables (via the "On" or "All" argument) or disables
  (via the "Off" argument) the implementation extension mode; the pragma takes
! precedence over the ``-gnatX`` and ``-gnatX0`` command switches.
  
! If an argument of ``"On"`` is specified, the latest version of the Ada language
! is implemented (currently Ada 2022) and, in addition, a curated set of GNAT
! specific extensions are recognized. (See the list here
! :ref:`here<Curated_Language_Extensions>`)
  
! An argument of ``"All"`` has the same effect except that some extra
! experimental extensions are enabled (See the list here
! :ref:`here<Experimental_Language_Extensions>`)
  
  .. _Pragma-Extensions_Visible:
  
*************** Syntax:
*** 2705,2711 ****
  This is a configuration pragma
  that takes a single argument that is a simple identifier. Any subsequent
  use of a pragma whose pragma identifier matches this argument will be
! silently ignored. This may be useful when legacy code or code intended
  for compilation with some other compiler contains pragmas that match the
  name, but not the exact implementation, of a GNAT pragma. The use of this
  pragma allows such pragmas to be ignored, which may be useful in CodePeer
--- 2504,2512 ----
  This is a configuration pragma
  that takes a single argument that is a simple identifier. Any subsequent
  use of a pragma whose pragma identifier matches this argument will be
! silently ignored. Any preceding use of a pragma whose pragma identifier
! matches this argument will be parsed and then ignored.
! This may be useful when legacy code or code intended
  for compilation with some other compiler contains pragmas that match the
  name, but not the exact implementation, of a GNAT pragma. The use of this
  pragma allows such pragmas to be ignored, which may be useful in CodePeer
*************** and the Ceiling_Locking locking policy i
*** 3763,3769 ****
  actions associated with the Ceiling_Locking locking policy (described in
  Ada RM D.3) are not performed when a protected operation of the protected
  unit is executed.
!   
  Pragma Loop_Invariant
  =====================
  
--- 3564,3570 ----
  actions associated with the Ceiling_Locking locking policy (described in
  Ada RM D.3) are not performed when a protected operation of the protected
  unit is executed.
! 
  Pragma Loop_Invariant
  =====================
  
*************** Syntax:
*** 6049,6054 ****
--- 5850,5869 ----
  This pragma is provided for compatibility with other Ada implementations. It
  is recognized but ignored by all current versions of GNAT.
  
+ .. _Pragma-Side_Effects:
+ 
+ Pragma Side_Effects
+ ===================
+ 
+ Syntax:
+ 
+ .. code-block:: ada
+ 
+   pragma Side_Effects [ (static_boolean_EXPRESSION) ];
+ 
+ For the semantics of this pragma, see the entry for aspect
+ ``Side_Effects`` in the SPARK Reference Manual, section 6.1.11.
+ 
  .. _Pragma-Simple_Storage_Pool_Type:
  
  Pragma Simple_Storage_Pool_Type
*************** part or package specification. In the la
*** 7061,7066 ****
--- 6876,6912 ----
  uses up to the end of the corresponding statement sequence or
  sequence of package declarations.
  
+ Pragma User_Aspect_Definition
+ =============================
+ 
+ Syntax:
+ 
+ 
+ .. code-block:: ada
+ 
+   pragma User_Aspect_Definition
+     (Identifier {, Identifier [(Identifier {, Identifier})]});
+ 
+ 
+ This configuration pragma defines a new aspect, making it available for
+ subsequent use in a User_Aspect aspect specification. The first
+ identifier is the name of the new aspect. Any subsequent arguments
+ specify the names of other aspects. A subsequent name for which no parenthesized
+ arguments are given shall denote either a Boolean-valued
+ non-representation aspect or an aspect that has been defined by another
+ User_Aspect_Definition pragma. A name for which one or more arguments are
+ given shall be either Annotate or Local_Restrictions (and the arguments shall
+ be appropriate for the named aspect). This pragma, together with the
+ User_Aspect aspect, provides a mechanism for
+ avoiding textual duplication if some set of aspect specifications is needed
+ in multiple places. This is somewhat analogous to how profiles allow avoiding
+ duplication of Restrictions pragmas. The visibility rules for an aspect
+ defined by a User_Aspect_Definition pragma are the same as for a check name
+ introduced by a Check_Name pragma. If multiple
+ definitions are visible for some aspect at some point, then the
+ definitions must agree. A predefined aspect cannot be redefined.
+ 
+ 
  Pragma Unimplemented_Unit
  =========================
  
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_rm/security_hardening_features.rst gcc-14.1.0/gcc/ada/doc/gnat_rm/security_hardening_features.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_rm/security_hardening_features.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_rm/security_hardening_features.rst	Tue May  7 06:51:37 2024
*************** subprograms.
*** 34,39 ****
--- 34,45 ----
       pragma Machine_Attribute (Bar, "zero_call_used_regs", "all");
       --  Before returning, Bar scrubs all call-clobbered registers.
  
+      function Baz return Integer;
+      pragma Machine_Attribute (Bar, "zero_call_used_regs", "leafy");
+      --  Before returning, Bar scrubs call-clobbered registers, either
+      --  those it uses itself, if it can be identified as a leaf
+      --  function, or all of them otherwise.
+ 
  
  For usage and more details on the command-line option, on the
  ``zero_call_used_regs`` attribute, and on their use with other
*************** basic blocks take note as control flows
*** 363,368 ****
--- 369,379 ----
  returning, subprograms verify that the taken notes are consistent with
  the control-flow graph.
  
+ The performance impact of verification on leaf subprograms can be much
+ higher, while the averted risks are much lower on them.
+ Instrumentation can be disabled for leaf subprograms with
+ :switch:`-fhardcfr-skip-leaf`.
+ 
  Functions with too many basic blocks, or with multiple return points,
  call a run-time function to perform the verification.  Other functions
  perform the verification inline before returning.
*************** gets modified as follows:
*** 487,503 ****
     end;
  
  
! Verification may also be performed before No_Return calls, whether
! only nothrow ones, with
! :switch:`-fhardcfr-check-noreturn-calls=nothrow`, or all of them, with
! :switch:`-fhardcfr-check-noreturn-calls=always`.  The default is
! :switch:`-fhardcfr-check-noreturn-calls=never` for this feature, that
! disables checking before No_Return calls.
  
  When a No_Return call returns control to its caller through an
  exception, verification may have already been performed before the
! call, if :switch:`-fhardcfr-check-noreturn-calls=always` is in effect.
! The compiler arranges for already-checked No_Return calls without a
  preexisting handler to bypass the implicitly-added cleanup handler and
  thus the redundant check, but a local exception or cleanup handler, if
  present, will modify the set of visited blocks, and checking will take
--- 498,517 ----
     end;
  
  
! Verification may also be performed before No_Return calls, whether all
! of them, with :switch:`-fhardcfr-check-noreturn-calls=always`; all but
! internal subprograms involved in exception-raising or -reraising or
! subprograms explicitly marked with both :samp:`No_Return` and
! :samp:`Machine_Attribute` :samp:`expected_throw` pragmas, with
! :switch:`-fhardcfr-check-noreturn-calls=no-xthrow` (default); only
! nothrow ones, with :switch:`-fhardcfr-check-noreturn-calls=nothrow`;
! or none, with :switch:`-fhardcfr-check-noreturn-calls=never`.
  
  When a No_Return call returns control to its caller through an
  exception, verification may have already been performed before the
! call, if :switch:`-fhardcfr-check-noreturn-calls=always` or
! :switch:`-fhardcfr-check-noreturn-calls=no-xthrow` is in effect.  The
! compiler arranges for already-checked No_Return calls without a
  preexisting handler to bypass the implicitly-added cleanup handler and
  thus the redundant check, but a local exception or cleanup handler, if
  present, will modify the set of visited blocks, and checking will take
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst gcc-14.1.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst	Tue May  7 06:51:37 2024
*************** No_Dependence
*** 186,192 ****
  [RM 13.12.1] This restriction ensures at compile time that there are no
  dependences on a library unit. For GNAT, this includes implicit implementation
  dependences on units of the runtime library that are created by the compiler
! to support specific constructs of the language.
  
  No_Direct_Boolean_Operators
  ---------------------------
--- 186,202 ----
  [RM 13.12.1] This restriction ensures at compile time that there are no
  dependences on a library unit. For GNAT, this includes implicit implementation
  dependences on units of the runtime library that are created by the compiler
! to support specific constructs of the language. Here are some examples:
! 
! * ``System.Arith_64``: 64-bit arithmetics for 32-bit platforms,
! * ``System.Arith_128``: 128-bit arithmetics for 64-bit platforms,
! * ``System.Memory``: heap memory allocation routines,
! * ``System.Memory_Compare``: memory comparison routine (aka ``memcmp`` for C),
! * ``System.Memory_Copy``: memory copy routine (aka ``memcpy`` for C),
! * ``System.Memory_Move``: memoy move routine (aka ``memmove`` for C),
! * ``System.Memory_Set``: memory set routine (aka ``memset`` for C),
! * ``System.Stack_Checking[.Operations]``: stack checking without MMU,
! * ``System.GCC``: support routines from the GCC library.
  
  No_Direct_Boolean_Operators
  ---------------------------
*************** No_Unchecked_Deallocation
*** 757,762 ****
--- 767,779 ----
  [RM J.13] This restriction ensures at compile time that there are no semantic
  dependences on the predefined generic procedure Unchecked_Deallocation.
  
+ No_Use_Of_Attribute
+ -------------------
+ .. index:: No_Use_Of_Attribute
+ 
+ [RM 13.12.1] This is a standard Ada 2012 restriction that is GNAT defined in
+ earlier versions of Ada.
+ 
  No_Use_Of_Entity
  ----------------
  .. index:: No_Use_Of_Entity
*************** where ``Name`` is the fully qualified en
*** 770,775 ****
--- 787,799 ----
  
     No_Use_Of_Entity => Ada.Text_IO.Put_Line
  
+ No_Use_Of_Pragma
+ ----------------
+ .. index:: No_Use_Of_Pragma
+ 
+ [RM 13.12.1] This is a standard Ada 2012 restriction that is GNAT defined in
+ earlier versions of Ada.
+ 
  Pure_Barriers
  -------------
  .. index:: Pure_Barriers
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst gcc-14.1.0/gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst	Tue May  7 06:51:37 2024
*************** library streams facility; where
*** 70,76 ****
  *
    All files are opened using ``fopen``.
  *
!   All input/output operations use ``fread``/`fwrite`.
  
  There is no internal buffering of any kind at the Ada library level. The only
  buffering is that provided at the system level in the implementation of the
--- 70,76 ----
  *
    All files are opened using ``fopen``.
  *
!   All input/output operations use ``fread``/``fwrite``.
  
  There is no internal buffering of any kind at the Ada library level. The only
  buffering is that provided at the system level in the implementation of the
*************** The records of a Direct_IO file are simp
*** 127,134 ****
  sequence, with the first record starting at offset zero, and subsequent
  records following.  There is no control information of any kind.  For
  example, if 32-bit integers are being written, each record takes
! 4-bytes, so the record at index ``K`` starts at offset
! (``K``-1)*4.
  
  There is no limit on the size of Direct_IO files, they are expanded as
  necessary to accommodate whatever records are written to the file.
--- 127,133 ----
  sequence, with the first record starting at offset zero, and subsequent
  records following.  There is no control information of any kind.  For
  example, if 32-bit integers are being written, each record takes
! 4-bytes, so the record at index ``K`` starts at offset ``(K-1)*4``.
  
  There is no limit on the size of Direct_IO files, they are expanded as
  necessary to accommodate whatever records are written to the file.
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_rm.rst gcc-14.1.0/gcc/ada/doc/gnat_rm.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_rm.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_rm.rst	Tue May  7 06:51:37 2024
*************** GNAT Reference Manual
*** 55,60 ****
--- 55,61 ----
     gnat_rm/specialized_needs_annexes
     gnat_rm/implementation_of_specific_ada_features
     gnat_rm/implementation_of_ada_2012_features
+    gnat_rm/gnat_language_extensions
     gnat_rm/security_hardening_features
     gnat_rm/obsolescent_features
     gnat_rm/compatibility_and_porting_guide
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst gcc-14.1.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst	Tue May  7 06:51:37 2024
*************** This guide contains the following chapte
*** 38,54 ****
    using the GNU make utility with GNAT.
  
  * :ref:`GNAT_Utility_Programs` explains the various utility programs that
!   are included in the GNAT environment
  
  * :ref:`GNAT_and_Program_Execution` covers a number of topics related to
!   running, debugging, and tuning the performace of programs developed
!   with GNAT
  
  Appendices cover several additional topics:
  
  * :ref:`Platform_Specific_Information` describes the different run-time
    library implementations and also presents information on how to use
!   GNAT on several specific platforms
  
  * :ref:`Example_of_Binder_Output_File` shows the source code for the binder
    output file for a sample program.
--- 38,54 ----
    using the GNU make utility with GNAT.
  
  * :ref:`GNAT_Utility_Programs` explains the various utility programs that
!   are included in the GNAT environment.
  
  * :ref:`GNAT_and_Program_Execution` covers a number of topics related to
!   running, debugging, and tuning the performance of programs developed
!   with GNAT.
  
  Appendices cover several additional topics:
  
  * :ref:`Platform_Specific_Information` describes the different run-time
    library implementations and also presents information on how to use
!   GNAT on several specific platforms.
  
  * :ref:`Example_of_Binder_Output_File` shows the source code for the binder
    output file for a sample program.
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst gcc-14.1.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst	Tue May  7 06:51:37 2024
*************** by ``gnatmake``. It may be necessary to
*** 895,906 ****
  Examples of ``gnatmake`` Usage
  ------------------------------
  
! *gnatmake hello.adb*
    Compile all files necessary to bind and link the main program
    :file:`hello.adb` (containing unit ``Hello``) and bind and link the
    resulting object files to generate an executable file :file:`hello`.
  
! *gnatmake main1 main2 main3*
    Compile all files necessary to bind and link the main programs
    :file:`main1.adb` (containing unit ``Main1``), :file:`main2.adb`
    (containing unit ``Main2``) and :file:`main3.adb`
--- 895,906 ----
  Examples of ``gnatmake`` Usage
  ------------------------------
  
! ``gnatmake hello.adb``
    Compile all files necessary to bind and link the main program
    :file:`hello.adb` (containing unit ``Hello``) and bind and link the
    resulting object files to generate an executable file :file:`hello`.
  
! ``gnatmake main1 main2 main3``
    Compile all files necessary to bind and link the main programs
    :file:`main1.adb` (containing unit ``Main1``), :file:`main2.adb`
    (containing unit ``Main2``) and :file:`main3.adb`
*************** Examples of ``gnatmake`` Usage
*** 908,914 ****
    to generate three executable files :file:`main1`,
    :file:`main2`  and :file:`main3`.
  
! *gnatmake -q Main_Unit -cargs -O2 -bargs -l*
    Compile all files necessary to bind and link the main program unit
    ``Main_Unit`` (from file :file:`main_unit.adb`). All compilations will
    be done with optimization level 2 and the order of elaboration will be
--- 908,914 ----
    to generate three executable files :file:`main1`,
    :file:`main2`  and :file:`main3`.
  
! ``gnatmake -q Main_Unit -cargs -O2 -bargs -l``
    Compile all files necessary to bind and link the main program unit
    ``Main_Unit`` (from file :file:`main_unit.adb`). All compilations will
    be done with optimization level 2 and the order of elaboration will be
*************** You need *not* compile the following fil
*** 949,955 ****
  
  * subunits
  
! because they are compiled as part of compiling related units. GNAT
  package specs
  when the corresponding body is compiled, and subunits when the parent is
  compiled.
--- 949,955 ----
  
  * subunits
  
! because they are compiled as part of compiling related units. GNAT compiles
  package specs
  when the corresponding body is compiled, and subunits when the parent is
  compiled.
*************** two output files in the current director
*** 997,1004 ****
  file in any directory using an absolute or relative path specification
  containing the directory information.
  
- TESTING: the :switch:`--foobar{NN}` switch
- 
  .. index::  gnat1
  
  ``gcc`` is actually a driver program that looks at the extensions of
--- 997,1002 ----
*************** directories, in the following order:
*** 1068,1074 ****
  * The content of the :file:`ada_source_path` file which is part of the GNAT
    installation tree and is used to store standard libraries such as the
    GNAT Run Time Library (RTL) source files.
!   :ref:`Installing_a_library`
  
  Specifying the switch :switch:`-I-`
  inhibits the use of the directory
--- 1066,1072 ----
  * The content of the :file:`ada_source_path` file which is part of the GNAT
    installation tree and is used to store standard libraries such as the
    GNAT Run Time Library (RTL) source files.
!   See also :ref:`Installing_a_library`.
  
  Specifying the switch :switch:`-I-`
  inhibits the use of the directory
*************** Compile body in file :file:`xyz.adb` wit
*** 1159,1165 ****
      $ gcc -c -O2 -gnata xyz-def.adb
  
  Compile the child unit package in file :file:`xyz-def.adb` with extensive
! optimizations, and pragma ``Assert``/`Debug` statements
  enabled.
  
  .. code-block:: sh
--- 1157,1163 ----
      $ gcc -c -O2 -gnata xyz-def.adb
  
  Compile the child unit package in file :file:`xyz-def.adb` with extensive
! optimizations, and pragma ``Assert``/``Debug`` statements
  enabled.
  
  .. code-block:: sh
*************** Alphabetical List of All Switches
*** 1274,1280 ****
    size of the executable, compared with a traditional per-unit compilation
    with inlining across units enabled by the :switch:`-gnatn` switch.
    The drawback of this approach is that it may require more memory and that
!   the debugging information generated by -g with it might be hardly usable.
    The switch, as well as the accompanying :switch:`-Ox` switches, must be
    specified both for the compilation and the link phases.
    If the ``n`` parameter is specified, the optimization and final code
--- 1272,1278 ----
    size of the executable, compared with a traditional per-unit compilation
    with inlining across units enabled by the :switch:`-gnatn` switch.
    The drawback of this approach is that it may require more memory and that
!   the debugging information generated by ``-g`` with it might be hardly usable.
    The switch, as well as the accompanying :switch:`-Ox` switches, must be
    specified both for the compilation and the link phases.
    If the ``n`` parameter is specified, the optimization and final code
*************** Alphabetical List of All Switches
*** 1472,1478 ****
    This switch will generate an intermediate representation suitable for
    use by CodePeer (:file:`.scil` files). This switch is not compatible with
    code generation (it will, among other things, disable some switches such
!   as -gnatn, and enable others such as -gnata).
  
  
  .. index:: -gnatd  (gcc)
--- 1470,1476 ----
    This switch will generate an intermediate representation suitable for
    use by CodePeer (:file:`.scil` files). This switch is not compatible with
    code generation (it will, among other things, disable some switches such
!   as ``-gnatn``, and enable others such as ``-gnata``).
  
  
  .. index:: -gnatd  (gcc)
*************** Alphabetical List of All Switches
*** 1482,1490 ****
    the :switch:`-gnatd` specifies the specific debug options. The possible
    characters are 0-9, a-z, A-Z, optionally preceded by a dot or underscore.
    See compiler source file :file:`debug.adb` for details of the implemented
!   debug options. Certain debug options are relevant to applications
    programmers, and these are documented at appropriate points in this
!   users guide.
  
  
  .. index:: -gnatD[nn]  (gcc)
--- 1480,1488 ----
    the :switch:`-gnatd` specifies the specific debug options. The possible
    characters are 0-9, a-z, A-Z, optionally preceded by a dot or underscore.
    See compiler source file :file:`debug.adb` for details of the implemented
!   debug options. Certain debug options are relevant to application
    programmers, and these are documented at appropriate points in this
!   user's guide.
  
  
  .. index:: -gnatD[nn]  (gcc)
*************** Alphabetical List of All Switches
*** 1493,1499 ****
    Create expanded source files for source level debugging. This switch
    also suppresses generation of cross-reference information
    (see :switch:`-gnatx`). Note that this switch is not allowed if a previous
!   -gnatR switch has been given, since these two switches are not compatible.
  
  
  .. index:: -gnateA  (gcc)
--- 1491,1497 ----
    Create expanded source files for source level debugging. This switch
    also suppresses generation of cross-reference information
    (see :switch:`-gnatx`). Note that this switch is not allowed if a previous
!   ``-gnatR`` switch has been given, since these two switches are not compatible.
  
  
  .. index:: -gnateA  (gcc)
*************** Alphabetical List of All Switches
*** 1614,1619 ****
--- 1612,1625 ----
    Save result of preprocessing in a text file.
  
  
+ .. index:: -gnateH  (gcc)
+ 
+ :switch:`-gnateH`
+   Set the threshold from which the RM 13.5.1(13.3/2) clause applies to 64.
+   This is useful only on 64-bit plaforms where this threshold is 128, but
+   used to be 64 in earlier versions of the compiler.
+ 
+ 
  .. index:: -gnatei  (gcc)
  
  :switch:`-gnatei{nnn}`
*************** Alphabetical List of All Switches
*** 1638,1644 ****
    where implicit ``pragma Elaborate`` and ``pragma Elaborate_All``
    are generated. This is useful in diagnosing elaboration circularities
    caused by these implicit pragmas when using the static elaboration
!   model. See See the section in this guide on elaboration checking for
    further details. These messages are not generated by default, and are
    intended only for temporary use when debugging circularity problems.
  
--- 1644,1650 ----
    where implicit ``pragma Elaborate`` and ``pragma Elaborate_All``
    are generated. This is useful in diagnosing elaboration circularities
    caused by these implicit pragmas when using the static elaboration
!   model. See the section in this guide on elaboration checking for
    further details. These messages are not generated by default, and are
    intended only for temporary use when debugging circularity problems.
  
*************** of the pragma in the :title:`GNAT_Refere
*** 2801,2806 ****
--- 2807,2814 ----
  
    * :switch:`-gnatw.s` (overridden size clause)
  
+   * :switch:`-gnatw_s` (ineffective predicate test)
+ 
    * :switch:`-gnatwt` (tracking of deleted conditional code)
  
    * :switch:`-gnatw.u` (unordered enumeration)
*************** of the pragma in the :title:`GNAT_Refere
*** 2869,2875 ****
  .. index:: -gnatw_A
  
  :switch:`-gnatw_A`
!   *Supress warnings on anonymous allocators.*
  
    .. index:: Anonymous allocators
  
--- 2877,2883 ----
  .. index:: -gnatw_A
  
  :switch:`-gnatw_A`
!   *Suppress warnings on anonymous allocators.*
  
    .. index:: Anonymous allocators
  
*************** of the pragma in the :title:`GNAT_Refere
*** 2934,2941 ****
  
    .. index:: Conditionals, constant
  
!   This switch activates warnings for conditional expressions used in
!   tests that are known to be True or False at compile time. The default
    is that such warnings are not generated.
    Note that this warning does
    not get issued for the use of boolean constants whose
--- 2942,2949 ----
  
    .. index:: Conditionals, constant
  
!   This switch activates warnings for boolean expressions that are known to
!   be True or False at compile time. The default
    is that such warnings are not generated.
    Note that this warning does
    not get issued for the use of boolean constants whose
*************** of the pragma in the :title:`GNAT_Refere
*** 3009,3015 ****
  :switch:`-gnatw_C`
    *Suppress warnings on unknown condition in Compile_Time_Warning.*
  
!   This switch supresses warnings on a pragma Compile_Time_Warning
    or Compile_Time_Error whose condition has a value that is not
    known at compile time.
  
--- 3017,3023 ----
  :switch:`-gnatw_C`
    *Suppress warnings on unknown condition in Compile_Time_Warning.*
  
!   This switch suppresses warnings on a pragma Compile_Time_Warning
    or Compile_Time_Error whose condition has a value that is not
    known at compile time.
  
*************** of the pragma in the :title:`GNAT_Refere
*** 3365,3371 ****
    This switch activates warnings for declarations that declare a name that
    is defined in package Standard. Such declarations can be confusing,
    especially since the names in package Standard continue to be directly
!   visible, meaning that use visibiliy on such redeclared names does not
    work as expected. Names of discriminants and components in records are
    not included in this check.
  
--- 3373,3379 ----
    This switch activates warnings for declarations that declare a name that
    is defined in package Standard. Such declarations can be confusing,
    especially since the names in package Standard continue to be directly
!   visible, meaning that use visibility on such redeclared names does not
    work as expected. Names of discriminants and components in records are
    not included in this check.
  
*************** of the pragma in the :title:`GNAT_Refere
*** 3834,3839 ****
--- 3842,3866 ----
    warnings when an array component size overrides a size clause.
  
  
+ .. index:: -gnatw_s  (gcc)
+ .. index:: Warnings
+ 
+ :switch:`-gnatw_s`
+   *Activate warnings on ineffective predicate tests.*
+ 
+   This switch activates warnings on Static_Predicate aspect
+   specifications that test for values that do not belong to
+   the parent subtype. Not all such ineffective tests are detected.
+ 
+ .. index:: -gnatw_S  (gcc)
+ 
+ :switch:`-gnatw_S`
+   *Suppress warnings on ineffective predicate tests.*
+ 
+   This switch suppresses warnings on Static_Predicate aspect
+   specifications that test for values that do not belong to
+   the parent subtype.
+ 
  .. index:: -gnatwt  (gcc)
  .. index:: Deactivated code, warnings
  .. index:: Deleted code, warnings
*************** of the pragma in the :title:`GNAT_Refere
*** 4068,4074 ****
    should not complain at you.
  
  
! .. index:: -gnatwm  (gcc)
  
  :switch:`-gnatw.x`
    *Activate warnings for No_Exception_Propagation mode.*
--- 4095,4101 ----
    should not complain at you.
  
  
! .. index:: -gnatw.x  (gcc)
  
  :switch:`-gnatw.x`
    *Activate warnings for No_Exception_Propagation mode.*
*************** Style Checking
*** 4685,4691 ****
  
  .. index:: -gnaty  (gcc)
  
! The :switch:`-gnatyx` switch causes the compiler to
  enforce specified style rules. A limited set of style rules has been used
  in writing the GNAT sources themselves. This switch allows user programs
  to activate all or some of these checks. If the source program fails a
--- 4712,4718 ----
  
  .. index:: -gnaty  (gcc)
  
! The :switch:`-gnaty` switch causes the compiler to
  enforce specified style rules. A limited set of style rules has been used
  in writing the GNAT sources themselves. This switch allows user programs
  to activate all or some of these checks. If the source program fails a
*************** checks to be performed. The following ch
*** 4883,4891 ****
  
    The set of style check switches is set to match that used by the GNAT sources.
    This may be useful when developing code that is eventually intended to be
!   incorporated into GNAT. Currently this is equivalent to :switch:`-gnatyydISux`)
!   but additional style switches may be added to this set in the future without
!   advance notice.
  
  
  .. index:: -gnatyh (gcc)
--- 4910,4918 ----
  
    The set of style check switches is set to match that used by the GNAT sources.
    This may be useful when developing code that is eventually intended to be
!   incorporated into GNAT. Currently this is equivalent to
!   :switch:`-gnatyydISuxz`) but additional style switches may be added to this
!   set in the future without advance notice.
  
  
  .. index:: -gnatyh (gcc)
*************** checks to be performed. The following ch
*** 5186,5194 ****
  :switch:`-gnatyx`
    *Check extra parentheses.*
  
!   Unnecessary extra level of parentheses (C-style) are not allowed
!   around conditions in ``if`` statements, ``while`` statements and
!   ``exit`` statements.
  
  
  .. index:: -gnatyy (gcc)
--- 5213,5221 ----
  :switch:`-gnatyx`
    *Check extra parentheses.*
  
!   Unnecessary extra levels of parentheses (C-style) are not allowed
!   around conditions (or selection expressions) in ``if``, ``while``,
!   ``case``, and ``exit`` statements, as well as part of ranges.
  
  
  .. index:: -gnatyy (gcc)
*************** checks to be performed. The following ch
*** 5202,5207 ****
--- 5229,5243 ----
    :switch:`-gnatyS`, :switch:`-gnatyu`, and :switch:`-gnatyx`.
  
  
+ .. index:: -gnatyz (gcc)
+ 
+ :switch:`-gnatyz`
+   *Check extra parentheses (operator precedence).*
+ 
+   Extra levels of parentheses that are not required by operator precedence
+   rules are flagged. See also ``-gnatyx``.
+ 
+ 
  .. index:: -gnaty- (gcc)
  
  :switch:`-gnaty-`
*************** Linker switches can be specified after :
*** 6281,6308 ****
    recent and faster alternatives, but only available on GNU/Linux
    platforms.
  
-   .. only:: PRO
- 
-     The GNAT distribution for native Linux platforms includes ``mold``,
-     compiled against OpenSSL version 1.1; however, the distribution does
-     not include OpenSSL.  In order to use this linker, you may either:
- 
-     * use your system's OpenSSL library, if the version matches: in this
-       situation, you need not do anything beside using the
-       :switch:`-fuse-ld=mold` switch,
- 
-     * obtain a source distribution for OpenSSL 1.1, compile the
-       :file:`libcrypto.so` library and install it in the directory of
-       your choice, then include this directory in the
-       :envvar:`LD_LIBRARY_PATH` environment variable,
- 
-     * install another copy of ``mold`` by other means in the directory
-       of your choice, and include this directory in the :envvar:`PATH`
-       environment variable; you may find this alternative preferable if
-       the copy of ``mold`` included in GNAT does not suit your needs
-       (e.g. being able to link against your system's OpenSSL, or using
-       another version of ``mold``).
- 
  .. _Binding_with_gnatbind:
  
  Binding with ``gnatbind``
--- 6317,6322 ----
*************** be presented in subsequent sections.
*** 6510,6521 ****
    determines the initial size of the secondary stack for each task and the
    smallest amount the secondary stack can grow by.
  
!   For Ravenscar, ZFP, and Cert run-times the size of the secondary stack is
!   fixed. This switch can be used to change the default size of these stacks.
!   The default secondary stack size can be overridden on a per-task basis if
!   individual tasks have different secondary stack requirements. This is
!   achieved through the Secondary_Stack_Size aspect that takes the size of the
!   secondary stack in bytes.
  
  .. index:: -e  (gnatbind)
  
--- 6524,6535 ----
    determines the initial size of the secondary stack for each task and the
    smallest amount the secondary stack can grow by.
  
!   For Light, Light-Tasking, and Embedded run-times the size of the secondary
!   stack is fixed. This switch can be used to change the default size of these
!   stacks. The default secondary stack size can be overridden on a per-task
!   basis if individual tasks have different secondary stack requirements. This
!   is achieved through the Secondary_Stack_Size aspect, which takes the size of
!   the secondary stack in bytes.
  
  .. index:: -e  (gnatbind)
  
*************** be presented in subsequent sections.
*** 6725,6730 ****
--- 6739,6761 ----
    Generate binder file suitable for CodePeer.
  
  
+ .. index:: -Q  (gnatbind)
+ 
+ :switch:`-Q{nnn}`
+   Generate ``nnn`` additional default-sized secondary stacks.
+ 
+   Tasks declared at the library level that use default-size secondary stacks
+   have their secondary stacks allocated from a pool of stacks generated by
+   gnatbind. This allows the default secondary stack size to be quickly changed
+   by rebinding the application.
+ 
+   While the binder sizes this pool to match the number of such tasks defined in
+   the application, the pool size may need to be increased with the :switch:`-Q`
+   switch to accommodate foreign threads registered with the Light run-time. For
+   more information, please see the *The Primary and Secondary Stack* chapter in
+   the *GNAT User’s Guide Supplement for Cross Platforms*.
+ 
+ 
    .. index:: -R  (gnatbind)
  
  :switch:`-R`
*************** be presented in subsequent sections.
*** 6785,6791 ****
  
      The underlying scalar is set to a value consisting of repeated bytes, whose
      value corresponds to the given value. For example if ``BF`` is given,
!     then a 32-bit scalar value will be set to the bit patterm ``16#BFBFBFBF#``.
  
    .. index:: GNAT_INIT_SCALARS
  
--- 6816,6822 ----
  
      The underlying scalar is set to a value consisting of repeated bytes, whose
      value corresponds to the given value. For example if ``BF`` is given,
!     then a 32-bit scalar value will be set to the bit pattern ``16#BFBFBFBF#``.
  
    .. index:: GNAT_INIT_SCALARS
  
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst gcc-14.1.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst	Tue May  7 06:51:37 2024
*************** The default mode for overflow checks is
*** 2925,2949 ****
  
        General => Strict
  
! which causes all computations both inside and outside assertions to use
! the base type.
! 
! This retains compatibility with previous versions of
! GNAT which suppressed overflow checks by default and always
! used the base type for computation of intermediate results.
! 
! .. Sphinx allows no emphasis within :index: role. As a workaround we
!    point the index to "switch" and use emphasis for "-gnato".
! 
! The :index:`switch <-gnato (gcc)>` :switch:`-gnato` (with no digits following)
! is equivalent to
! 
!   ::
! 
!       General => Strict
! 
! which causes overflow checking of all intermediate overflows
! both inside and outside assertions against the base type.
  
  The pragma ``Suppress (Overflow_Check)`` disables overflow
  checking, but it has no effect on the method used for computing
--- 2925,2932 ----
  
        General => Strict
  
! which causes all computations both inside and outside assertions to use the
! base type, and is equivalent to :switch:`-gnato` (with no digits following).
  
  The pragma ``Suppress (Overflow_Check)`` disables overflow
  checking, but it has no effect on the method used for computing
*************** reasonably efficient, and can be general
*** 2964,2970 ****
  to ensure compatibility with code imported from some other
  compiler to GNAT.
  
! Setting all intermediate overflows checking (``CHECKED`` mode)
  makes sense if you want to
  make sure that your code is compatible with any other possible
  Ada implementation. This may be useful in ensuring portability
--- 2947,2953 ----
  to ensure compatibility with code imported from some other
  compiler to GNAT.
  
! Setting all intermediate overflows checking (``STRICT`` mode)
  makes sense if you want to
  make sure that your code is compatible with any other possible
  Ada implementation. This may be useful in ensuring portability
*************** requires ``DV(Source)`` = ``DV(Target)``
*** 3311,3316 ****
--- 3294,3311 ----
  passing (the dimension vector for the actual parameter must be equal to the
  dimension vector for the formal parameter).
  
+ When using dimensioned types with elementary functions it is necessary to
+ instantiate the ``Ada.Numerics.Generic_Elementary_Functions`` package using
+ the ``Mks_Type`` and not any of the derived subtypes such as ``Distance``.
+ For functions such as ``Sqrt`` the dimensional analysis will fail when using
+ the subtypes because both the parameter and return are of the same type.
+ 
+ An example instantiation
+ 
+   .. code-block:: ada
+   
+         package Mks_Numerics is new 
+            Ada.Numerics.Generic_Elementary_Functions (System.Dim.Mks.Mks_Type);
  
  .. _Stack_Related_Facilities:
  
*************** leak memory even though it does not perf
*** 3530,3541 ****
             for A'Storage_Pool use X;
             v : A;
          begin
!            for I in  1 .. 50 loop
                v := new Integer;
             end loop;
          end Internal;
       begin
!         for I in  1 .. 100 loop
             Internal;
          end loop;
       end Pooloc1;
--- 3525,3536 ----
             for A'Storage_Pool use X;
             v : A;
          begin
!            for I in 1 .. 50 loop
                v := new Integer;
             end loop;
          end Internal;
       begin
!         for I in 1 .. 100 loop
             Internal;
          end loop;
       end Pooloc1;
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst gcc-14.1.0/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst	Tue May  7 06:51:37 2024
*************** building specialized scripts.
*** 1650,1657 ****
  
    .. _The_Body_Stub_Generator_gnatstub:
  
!   The Body Stub Generator *gnatstub*
!   ==================================
  
    .. index:: ! gnatstub
  
--- 1650,1657 ----
  
    .. _The_Body_Stub_Generator_gnatstub:
  
!   The Body Stub Generator ``gnatstub``
!   ====================================
  
    .. index:: ! gnatstub
  
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst gcc-14.1.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst	Tue May  7 06:51:37 2024
*************** Other GNU/Linux distributions might be c
*** 254,259 ****
--- 254,301 ----
  for those packages.
  
  
+ .. _PIE_Enabled_By_Default_On_Linux:
+ 
+ Position Independent Executable (PIE) Enabled by Default on Linux
+ -----------------------------------------------------------------
+ 
+ GNAT generates Position Independent Executable (PIE) code by default.
+ PIE binaries are loaded into random memory locations, introducing
+ an additional layer of protection against attacks.
+ 
+ Building PIE binaries requires that all of their dependencies also be
+ built as Position Independent. If the link of your project fails with
+ an error like::
+ 
+       /[...]/ld: /path/to/object/file: relocation R_X86_64_32S against symbol
+       `symbol name' can not be used when making a PIE object;
+       recompile with -fPIE
+ 
+ it means the identified object file has not been built as Position
+ Independent.
+ 
+ If you are not interested in building PIE binaries, you can simply
+ turn this feature off by first compiling your code with :samp:`-fno-pie`
+ and then by linking with :samp:`-no-pie` (note the subtle but important
+ difference in the names of the options -- the linker option does **not**
+ have an `f` after the dash!). When using gprbuild, this is
+ achieved by updating the *Required_Switches* attribute in package `Compiler`
+ and, depending on your type of project, either attribute *Switches*
+ or attribute *Library_Options* in package `Linker`.
+ 
+ On the other hand, if you would like to build PIE binaries and you are
+ getting the error above, a quick and easy workaround to allow linking
+ to succeed again is to disable PIE during the link, thus temporarily
+ lifting the requirement that all dependencies also be Position
+ Independent code. To do so, you simply need to add :samp:`-no-pie` to
+ the list of switches passed to the linker. As part of this workaround,
+ there is no need to adjust the compiler switches.
+ 
+ From there, to be able to link your binaries with PIE and therefore
+ drop the :samp:`-no-pie` workaround, you'll need to get the identified
+ dependencies rebuilt with PIE enabled (compiled with :samp:`-fPIE`
+ and linked with :samp:`-pie`).
+ 
  .. _A_GNU_Linux_debug_quirk:
  
  A GNU/Linux Debug Quirk
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst gcc-14.1.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
*** gcc-13.2.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst	Tue May  7 06:51:37 2024
*************** GNAT also supports several other 8-bit c
*** 168,174 ****
  
  *ISO 8859-15 (Latin-9)*
    ISO 8859-15 (Latin-9) letters allowed in identifiers, with uppercase and
!   lowercase equivalence
  
  .. index:: code page 437 (IBM PC)
  
--- 168,174 ----
  
  *ISO 8859-15 (Latin-9)*
    ISO 8859-15 (Latin-9) letters allowed in identifiers, with uppercase and
!   lowercase equivalence.
  
  .. index:: code page 437 (IBM PC)
  
*************** possible encoding schemes:
*** 226,234 ****
    ``16#A345#``.
    This scheme is compatible with use of the full Wide_Character set.
  
! *Upper-Half Coding*
!   .. index:: Upper-Half Coding
  
    The wide character with encoding ``16#abcd#`` where the upper bit is on
    (in other words, 'a' is in the range 8-F) is represented as two bytes,
    ``16#ab#`` and ``16#cd#``. The second byte cannot be a format control
--- 226,234 ----
    ``16#A345#``.
    This scheme is compatible with use of the full Wide_Character set.
  
! .. index:: Upper-Half Coding
  
+ *Upper-Half Coding*
    The wide character with encoding ``16#abcd#`` where the upper bit is on
    (in other words, 'a' is in the range 8-F) is represented as two bytes,
    ``16#ab#`` and ``16#cd#``. The second byte cannot be a format control
*************** possible encoding schemes:
*** 236,244 ****
    be also used for shift-JIS or EUC, where the internal coding matches the
    external coding.
  
! *Shift JIS Coding*
!   .. index:: Shift JIS Coding
  
    A wide character is represented by a two-character sequence,
    ``16#ab#`` and
    ``16#cd#``, with the restrictions described for upper-half encoding as
--- 236,244 ----
    be also used for shift-JIS or EUC, where the internal coding matches the
    external coding.
  
! .. index:: Shift JIS Coding
  
+ *Shift JIS Coding*
    A wide character is represented by a two-character sequence,
    ``16#ab#`` and
    ``16#cd#``, with the restrictions described for upper-half encoding as
*************** possible encoding schemes:
*** 247,256 ****
    conversion. Only characters defined in the JIS code set table can be
    used with this encoding method.
  
  
  *EUC Coding*
-   .. index:: EUC Coding
- 
    A wide character is represented by a two-character sequence
    ``16#ab#`` and
    ``16#cd#``, with both characters being in the upper half. The internal
--- 247,255 ----
    conversion. Only characters defined in the JIS code set table can be
    used with this encoding method.
  
+ .. index:: EUC Coding
  
  *EUC Coding*
    A wide character is represented by a two-character sequence
    ``16#ab#`` and
    ``16#cd#``, with both characters being in the upper half. The internal
*************** recognized by GNAT::
*** 1462,1467 ****
--- 1461,1467 ----
       Unevaluated_Use_Of_Old
       Unsuppress
       Use_VADS_Size
+      User_Aspect_Definition
       Validity_Checks
       Warning_As_Error
       Warnings
*************** default, that contains calls to the elab
*** 1778,1785 ****
  compilation unit that require them, followed by
  a call to the main program. This Ada program is compiled to generate the
  object file for the main program. The name of
! the Ada file is :file:`b~xxx`.adb` (with the corresponding spec
! :file:`b~xxx`.ads`) where ``xxx`` is the name of the
  main program unit.
  
  Finally, the linker is used to build the resulting executable program,
--- 1778,1785 ----
  compilation unit that require them, followed by
  a call to the main program. This Ada program is compiled to generate the
  object file for the main program. The name of
! the Ada file is :file:`b~xxx.adb` (with the corresponding spec
! :file:`b~xxx.ads`) where ``xxx`` is the name of the
  main program unit.
  
  Finally, the linker is used to build the resulting executable program,
*************** process (see the *Installing a Library w
*** 1974,1980 ****
  When project files are not an option, it is also possible, but not recommended,
  to install the library so that the sources needed to use the library are on the
  Ada source path and the ALI files & libraries be on the Ada Object path (see
! :ref:`Search_Paths_and_the_Run-Time_Library_RTL`. Alternatively, the system
  administrator can place general-purpose libraries in the default compiler
  paths, by specifying the libraries' location in the configuration files
  :file:`ada_source_path` and :file:`ada_object_path`. These configuration files
--- 1974,1980 ----
  When project files are not an option, it is also possible, but not recommended,
  to install the library so that the sources needed to use the library are on the
  Ada source path and the ALI files & libraries be on the Ada Object path (see
! :ref:`Search_Paths_and_the_Run-Time_Library_RTL`). Alternatively, the system
  administrator can place general-purpose libraries in the default compiler
  paths, by specifying the libraries' location in the configuration files
  :file:`ada_source_path` and :file:`ada_object_path`. These configuration files
*************** finalization of all Ada libraries must b
*** 2331,2336 ****
--- 2331,2339 ----
  No call to these libraries or to the Ada run-time library should be made
  after the finalization phase.
  
+ Information on limitations of binding Ada code in non-Ada contexts can be
+ found under :ref:`Binding_with_Non-Ada_Main_Programs`.
+ 
  Note also that special care must be taken with multi-tasks
  applications. The initialization and finalization routines are not
  protected against concurrent access. If such requirement is needed it
*************** Convention identifiers are recognized by
*** 3590,3596 ****
    Ada compiler for further details on elaboration.
  
    However, it is not possible to mix the tasking run time of GNAT and
!   HP Ada 83, All the tasking operations must either be entirely within
    GNAT compiled sections of the program, or entirely within HP Ada 83
    compiled sections of the program.
  
--- 3593,3599 ----
    Ada compiler for further details on elaboration.
  
    However, it is not possible to mix the tasking run time of GNAT and
!   HP Ada 83, all the tasking operations must either be entirely within
    GNAT compiled sections of the program, or entirely within HP Ada 83
    compiled sections of the program.
  
*************** Convention identifiers are recognized by
*** 3715,3728 ****
      to perform dimensional checks:
  
  
!   .. code-block:: ada
  
!       type Distance is new Long_Float;
!       type Time     is new Long_Float;
!       type Velocity is new Long_Float;
!       function "/" (D : Distance; T : Time)
!         return Velocity;
!       pragma Import (Intrinsic, "/");
  
      This common idiom is often programmed with a generic definition and an
      explicit body. The pragma makes it simpler to introduce such declarations.
--- 3718,3731 ----
      to perform dimensional checks:
  
  
!     .. code-block:: ada
  
!         type Distance is new Long_Float;
!         type Time     is new Long_Float;
!         type Velocity is new Long_Float;
!         function "/" (D : Distance; T : Time)
!           return Velocity;
!         pragma Import (Intrinsic, "/");
  
      This common idiom is often programmed with a generic definition and an
      explicit body. The pragma makes it simpler to introduce such declarations.
*************** considered:
*** 3858,3864 ****
  
  
  * Using GNAT and G++ from two different GCC installations: If both
!   compilers are on the :envvar`PATH`, the previous method may be used. It is
    important to note that environment variables such as
    :envvar:`C_INCLUDE_PATH`, :envvar:`GCC_EXEC_PREFIX`,
    :envvar:`BINUTILS_ROOT`, and
--- 3861,3867 ----
  
  
  * Using GNAT and G++ from two different GCC installations: If both
!   compilers are on the :envvar:`PATH`, the previous method may be used. It is
    important to note that environment variables such as
    :envvar:`C_INCLUDE_PATH`, :envvar:`GCC_EXEC_PREFIX`,
    :envvar:`BINUTILS_ROOT`, and
*************** finalizing the Ada run-time system along
*** 4493,4498 ****
--- 4496,4548 ----
         return 0;
       }
  
+ .. _Partition_Wide_Settings:
+ 
+ Partition-Wide Settings
+ -----------------------
+ 
+ When building a mixed-language application it is important to be aware that
+ Ada enforces some partition-wide settings that may implicitly impact the
+ behavior of the other languages.
+ 
+ This is the case of certain signals that are reserved to the
+ implementation to implement proper Ada semantics (such as the behavior
+ of ``abort`` statements).
+ 
+ It means that the Ada part of the application may override signal handlers
+ that were previously installed by either the system or by other user code.
+ 
+ If your application requires that either system or user signals be preserved
+ then you need to instruct the Ada part not to install its own signal handler.
+ This is done using ``pragma Interrupt_State`` that provides a general
+ mechanism for overriding such uses of interrupts.
+ 
+ The set of interrupts for which the Ada run-time library sets a specific signal
+ handler is the following:
+ 
+ * Ada.Interrupts.Names.SIGSEGV
+ * Ada.Interrupts.Names.SIGBUS
+ * Ada.Interrupts.Names.SIGFPE
+ * Ada.Interrupts.Names.SIGILL
+ * Ada.Interrupts.Names.SIGABRT
+ 
+ The run-time library can be instructed not to install its signal handler for a
+ particular signal by using the configuration pragma ``Interrupt_State`` in the
+ Ada code. For example:
+ 
+ .. code-block:: ada
+ 
+    pragma Interrupt_State (Ada.Interrupts.Names.SIGSEGV, System);
+    pragma Interrupt_State (Ada.Interrupts.Names.SIGBUS,  System);
+    pragma Interrupt_State (Ada.Interrupts.Names.SIGFPE,  System);
+    pragma Interrupt_State (Ada.Interrupts.Names.SIGILL,  System);
+    pragma Interrupt_State (Ada.Interrupts.Names.SIGABRT, System);
+ 
+ Obviously, if the Ada run-time system cannot set these handlers it comes with the
+ drawback of not fully preserving Ada semantics. ``SIGSEGV``, ``SIGBUS``, ``SIGFPE``
+ and ``SIGILL`` are used to raise corresponding Ada exceptions in the application,
+ while ``SIGABRT`` is used to asynchronously abort an action or a task.
+ 
  .. _Generating_Ada_Bindings_for_C_and_C++_headers:
  
  Generating Ada Bindings for C and C++ headers
diff -Nrcpad gcc-13.2.0/gcc/ada/doc/share/conf.py gcc-14.1.0/gcc/ada/doc/share/conf.py
*** gcc-13.2.0/gcc/ada/doc/share/conf.py	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/doc/share/conf.py	Tue May  7 06:51:37 2024
*************** tags.add(get_gnat_build_type())
*** 138,147 ****
  
  # Define figures to be included
  html_theme = 'sphinx_rtd_theme'
! if os.path.isfile('adacore_transparent.png'):
      # split html and pdf logos to avoid 'same name' error in sphinx <5.2+
!     html_logo = 'adacore_transparent.png'
!     latex_logo = 'adacore_transparent.png'
  if os.path.isfile('favicon.ico'):
      html_favicon = 'favicon.ico'
  
--- 138,150 ----
  
  # Define figures to be included
  html_theme = 'sphinx_rtd_theme'
! html_theme_options = {
!     "style_nav_header_background": "#12284c",
! }
! if os.path.isfile('adacore-logo-white.png'):
      # split html and pdf logos to avoid 'same name' error in sphinx <5.2+
!     html_logo = 'adacore-logo-white.png'
!     latex_logo = 'adacore-logo-white.png'
  if os.path.isfile('favicon.ico'):
      html_favicon = 'favicon.ico'
  
diff -Nrcpad gcc-13.2.0/gcc/ada/einfo-utils.adb gcc-14.1.0/gcc/ada/einfo-utils.adb
*** gcc-13.2.0/gcc/ada/einfo-utils.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/einfo-utils.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Einfo.Utils is
*** 201,206 ****
--- 201,211 ----
          and then Ekind (Directly_Designated_Type (Id)) = E_Subprogram_Type;
     end Is_Access_Subprogram_Type;
  
+    function Is_Address_Compatible_Type          (Id : E) return B is
+    begin
+       return Is_Descendant_Of_Address (Id) or else Id = Standard_Address;
+    end Is_Address_Compatible_Type;
+ 
     function Is_Aggregate_Type                   (Id : E) return B is
     begin
        return Ekind (Id) in Aggregate_Kind;
*************** package body Einfo.Utils is
*** 1012,1023 ****
--- 1017,1031 ----
                   Id = Pragma_Refined_Depends            or else
                   Id = Pragma_Refined_Global             or else
                   Id = Pragma_Refined_State              or else
+                  Id = Pragma_Side_Effects               or else
                   Id = Pragma_Volatile_Function;
  
        --  Contract / subprogram variant / test case pragmas
  
        Is_CTC : constant Boolean :=
+                   Id = Pragma_Always_Terminates         or else
                    Id = Pragma_Contract_Cases            or else
+                   Id = Pragma_Exceptional_Cases         or else
                    Id = Pragma_Subprogram_Variant        or else
                    Id = Pragma_Test_Case;
  
*************** package body Einfo.Utils is
*** 1505,1515 ****
        Kind : constant Node_Kind := Nkind (N);
  
     begin
!       --  Identifiers, operator symbols, expanded names are entity names
  
!       return Kind = N_Identifier
!         or else Kind = N_Operator_Symbol
!         or else Kind = N_Expanded_Name
  
        --  Attribute references are entity names if they refer to an entity.
        --  Note that we don't do this by testing for the presence of the
--- 1513,1522 ----
        Kind : constant Node_Kind := Nkind (N);
  
     begin
!       --  Identifiers, operator symbols, expanded names are entity names.
!       --  (But not N_Character_Literal.)
  
!       return Kind in N_Identifier | N_Operator_Symbol | N_Expanded_Name
  
        --  Attribute references are entity names if they refer to an entity.
        --  Note that we don't do this by testing for the presence of the
*************** package body Einfo.Utils is
*** 1976,1982 ****
           end if;
  
           exit when Ekind (D) = E_Discriminant
!            and then (Is_Completely_Hidden (D) = Is_Completely_Hidden (Id));
        end loop;
  
        return D;
--- 1983,1989 ----
           end if;
  
           exit when Ekind (D) = E_Discriminant
!            and then Is_Completely_Hidden (D) = Is_Completely_Hidden (Id);
        end loop;
  
        return D;
*************** package body Einfo.Utils is
*** 2104,2111 ****
     -- Number_Formals --
     --------------------
  
!    function Number_Formals (Id : E) return Pos is
!       N      : Int;
        Formal : Entity_Id;
  
     begin
--- 2111,2118 ----
     -- Number_Formals --
     --------------------
  
!    function Number_Formals (Id : E) return Nat is
!       N      : Nat;
        Formal : Entity_Id;
  
     begin
*************** package body Einfo.Utils is
*** 2588,2594 ****
     -- Scope_Depth --
     -----------------
  
!    function Scope_Depth (Id : E) return Uint is
        Scop : Entity_Id;
  
     begin
--- 2595,2601 ----
     -- Scope_Depth --
     -----------------
  
!    function Scope_Depth (Id : Scope_Kind_Id) return Uint is
        Scop : Entity_Id;
  
     begin
*************** package body Einfo.Utils is
*** 2600,2606 ****
        return Scope_Depth_Value (Scop);
     end Scope_Depth;
  
!    function Scope_Depth_Default_0 (Id : E) return U is
     begin
        if Scope_Depth_Set (Id) then
           return Scope_Depth (Id);
--- 2607,2613 ----
        return Scope_Depth_Value (Scop);
     end Scope_Depth;
  
!    function Scope_Depth_Default_0 (Id : Scope_Kind_Id) return U is
     begin
        if Scope_Depth_Set (Id) then
           return Scope_Depth (Id);
*************** package body Einfo.Utils is
*** 2614,2620 ****
     -- Scope_Depth_Set --
     ---------------------
  
!    function Scope_Depth_Set (Id : E) return B is
     begin
        return not Is_Record_Type (Id)
          and then not Field_Is_Initial_Zero (Id, F_Scope_Depth_Value);
--- 2621,2627 ----
     -- Scope_Depth_Set --
     ---------------------
  
!    function Scope_Depth_Set (Id : Scope_Kind_Id) return B is
     begin
        return not Is_Record_Type (Id)
          and then not Field_Is_Initial_Zero (Id, F_Scope_Depth_Value);
*************** package body Einfo.Utils is
*** 3018,3024 ****
           --  Otherwise check for the case where we have a derived type or
           --  subtype, and if so get the Underlying_Type of the parent type.
  
!          elsif Etype (Id) /= Id then
              return Underlying_Type (Etype (Id));
  
           --  Otherwise we have an incomplete or private type that has no full
--- 3025,3031 ----
           --  Otherwise check for the case where we have a derived type or
           --  subtype, and if so get the Underlying_Type of the parent type.
  
!          elsif Present (Etype (Id)) and then Etype (Id) /= Id then
              return Underlying_Type (Etype (Id));
  
           --  Otherwise we have an incomplete or private type that has no full
*************** package body Einfo.Utils is
*** 3171,3177 ****
                 Index := First_Index (Id);
                 while Present (Index) loop
                    Write_Attribute (" ", Etype (Index));
!                   Index := Next_Index (Index);
                 end loop;
  
                 Write_Eol;
--- 3178,3184 ----
                 Index := First_Index (Id);
                 while Present (Index) loop
                    Write_Attribute (" ", Etype (Index));
!                   Next_Index (Index);
                 end loop;
  
                 Write_Eol;
*************** package body Einfo.Utils is
*** 3212,3264 ****
     -- Iterator Procedures --
     -------------------------
  
!    procedure Proc_Next_Component                 (N : in out Node_Id) is
     begin
        N := Next_Component (N);
!    end Proc_Next_Component;
  
!    procedure Proc_Next_Component_Or_Discriminant (N : in out Node_Id) is
     begin
!       N := Next_Entity (N);
!       while Present (N) loop
!          exit when Ekind (N) in E_Component | E_Discriminant;
!          N := Next_Entity (N);
!       end loop;
!    end Proc_Next_Component_Or_Discriminant;
  
!    procedure Proc_Next_Discriminant              (N : in out Node_Id) is
     begin
        N := Next_Discriminant (N);
!    end Proc_Next_Discriminant;
  
!    procedure Proc_Next_Formal                    (N : in out Node_Id) is
     begin
        N := Next_Formal (N);
!    end Proc_Next_Formal;
  
!    procedure Proc_Next_Formal_With_Extras        (N : in out Node_Id) is
     begin
        N := Next_Formal_With_Extras (N);
!    end Proc_Next_Formal_With_Extras;
  
!    procedure Proc_Next_Index                     (N : in out Node_Id) is
     begin
        N := Next_Index (N);
!    end Proc_Next_Index;
  
!    procedure Proc_Next_Inlined_Subprogram        (N : in out Node_Id) is
     begin
        N := Next_Inlined_Subprogram (N);
!    end Proc_Next_Inlined_Subprogram;
  
!    procedure Proc_Next_Literal                   (N : in out Node_Id) is
     begin
        N := Next_Literal (N);
!    end Proc_Next_Literal;
  
!    procedure Proc_Next_Stored_Discriminant       (N : in out Node_Id) is
     begin
        N := Next_Stored_Discriminant (N);
!    end Proc_Next_Stored_Discriminant;
  
  end Einfo.Utils;
--- 3219,3267 ----
     -- Iterator Procedures --
     -------------------------
  
!    procedure Next_Component                 (N : in out Node_Id) is
     begin
        N := Next_Component (N);
!    end Next_Component;
  
!    procedure Next_Component_Or_Discriminant (N : in out Node_Id) is
     begin
!       N := Next_Component_Or_Discriminant (N);
!    end Next_Component_Or_Discriminant;
  
!    procedure Next_Discriminant              (N : in out Node_Id) is
     begin
        N := Next_Discriminant (N);
!    end Next_Discriminant;
  
!    procedure Next_Formal                    (N : in out Node_Id) is
     begin
        N := Next_Formal (N);
!    end Next_Formal;
  
!    procedure Next_Formal_With_Extras        (N : in out Node_Id) is
     begin
        N := Next_Formal_With_Extras (N);
!    end Next_Formal_With_Extras;
  
!    procedure Next_Index                     (N : in out Node_Id) is
     begin
        N := Next_Index (N);
!    end Next_Index;
  
!    procedure Next_Inlined_Subprogram        (N : in out Node_Id) is
     begin
        N := Next_Inlined_Subprogram (N);
!    end Next_Inlined_Subprogram;
  
!    procedure Next_Literal                   (N : in out Node_Id) is
     begin
        N := Next_Literal (N);
!    end Next_Literal;
  
!    procedure Next_Stored_Discriminant       (N : in out Node_Id) is
     begin
        N := Next_Stored_Discriminant (N);
!    end Next_Stored_Discriminant;
  
  end Einfo.Utils;
diff -Nrcpad gcc-13.2.0/gcc/ada/einfo-utils.ads gcc-14.1.0/gcc/ada/einfo-utils.ads
*** gcc-13.2.0/gcc/ada/einfo-utils.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/einfo-utils.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Einfo.Utils is
*** 43,74 ****
     --  expressions, but those use different mechanisms; the fields here are not
     --  used.
  
!    function Alias (N : Entity_Id) return Entity_Id;
!    procedure Set_Alias (N : Entity_Id; Val : Entity_Id);
!    function Renamed_Entity (N : Entity_Id) return Entity_Id;
!    procedure Set_Renamed_Entity (N : Entity_Id; Val : Entity_Id);
!    function Renamed_Object (N : Entity_Id) return Node_Id;
!    procedure Set_Renamed_Object (N : Entity_Id; Val : Node_Id);
  
!    function Renamed_Entity_Or_Object (N : Entity_Id) return Node_Id;
     --  This getter is used when we don't know statically whether we want to
     --  call Renamed_Entity or Renamed_Object.
  
     procedure Set_Renamed_Object_Of_Possibly_Void
!      (N : Entity_Id; Val : Node_Id);
     --  Set_Renamed_Object doesn't allow Void; this is used in the rare cases
     --  where we set the field of an entity that might be Void. It might be a
     --  good idea to get rid of calls to this.
  
-    pragma Inline (Alias);
-    pragma Inline (Set_Alias);
-    pragma Inline (Renamed_Entity);
-    pragma Inline (Set_Renamed_Entity);
-    pragma Inline (Renamed_Object);
-    pragma Inline (Set_Renamed_Object);
-    pragma Inline (Renamed_Entity_Or_Object);
-    pragma Inline (Set_Renamed_Object_Of_Possibly_Void);
- 
     -------------------
     -- Type Synonyms --
     -------------------
--- 43,66 ----
     --  expressions, but those use different mechanisms; the fields here are not
     --  used.
  
!    function Alias (N : Entity_Id) return Entity_Id with Inline;
!    procedure Set_Alias (N : Entity_Id; Val : Entity_Id) with Inline;
!    function Renamed_Entity (N : Entity_Id) return Entity_Id with Inline;
!    procedure Set_Renamed_Entity (N : Entity_Id; Val : Entity_Id) with Inline;
!    function Renamed_Object (N : Entity_Id) return Node_Id with Inline;
!    procedure Set_Renamed_Object (N : Entity_Id; Val : Node_Id) with Inline;
  
!    function Renamed_Entity_Or_Object (N : Entity_Id) return Node_Id
!      with Inline;
     --  This getter is used when we don't know statically whether we want to
     --  call Renamed_Entity or Renamed_Object.
  
     procedure Set_Renamed_Object_Of_Possibly_Void
!      (N : Entity_Id; Val : Node_Id) with Inline;
     --  Set_Renamed_Object doesn't allow Void; this is used in the rare cases
     --  where we set the field of an entity that might be Void. It might be a
     --  good idea to get rid of calls to this.
  
     -------------------
     -- Type Synonyms --
     -------------------
*************** package Einfo.Utils is
*** 100,199 ****
     --  Is_Generic_Type where the Ekind does not provide the needed
     --  information).
  
!    function Is_Access_Object_Type               (Id : E) return B;
!    function Is_Access_Type                      (Id : E) return B;
!    function Is_Access_Protected_Subprogram_Type (Id : E) return B;
!    function Is_Access_Subprogram_Type           (Id : E) return B;
!    function Is_Aggregate_Type                   (Id : E) return B;
!    function Is_Anonymous_Access_Type            (Id : E) return B;
!    function Is_Array_Type                       (Id : E) return B;
!    function Is_Assignable                       (Id : E) return B;
!    function Is_Class_Wide_Type                  (Id : E) return B;
!    function Is_Composite_Type                   (Id : E) return B;
!    function Is_Concurrent_Body                  (Id : E) return B;
!    function Is_Concurrent_Type                  (Id : E) return B;
!    function Is_Decimal_Fixed_Point_Type         (Id : E) return B;
!    function Is_Digits_Type                      (Id : E) return B;
!    function Is_Discrete_Or_Fixed_Point_Type     (Id : E) return B;
!    function Is_Discrete_Type                    (Id : E) return B;
!    function Is_Elementary_Type                  (Id : E) return B;
!    function Is_Entry                            (Id : E) return B;
!    function Is_Enumeration_Type                 (Id : E) return B;
!    function Is_Fixed_Point_Type                 (Id : E) return B;
!    function Is_Floating_Point_Type              (Id : E) return B;
!    function Is_Formal                           (Id : E) return B;
!    function Is_Formal_Object                    (Id : E) return B;
!    function Is_Generic_Subprogram               (Id : E) return B;
!    function Is_Generic_Unit                     (Id : E) return B;
!    function Is_Ghost_Entity                     (Id : E) return B;
!    function Is_Incomplete_Or_Private_Type       (Id : E) return B;
!    function Is_Incomplete_Type                  (Id : E) return B;
!    function Is_Integer_Type                     (Id : E) return B;
!    function Is_Modular_Integer_Type             (Id : E) return B;
!    function Is_Named_Access_Type                (Id : E) return B;
!    function Is_Named_Number                     (Id : E) return B;
!    function Is_Numeric_Type                     (Id : E) return B;
!    function Is_Object                           (Id : E) return B;
!    function Is_Ordinary_Fixed_Point_Type        (Id : E) return B;
!    function Is_Overloadable                     (Id : E) return B;
!    function Is_Private_Type                     (Id : E) return B;
!    function Is_Protected_Type                   (Id : E) return B;
!    function Is_Real_Type                        (Id : E) return B;
!    function Is_Record_Type                      (Id : E) return B;
!    function Is_Scalar_Type                      (Id : E) return B;
!    function Is_Signed_Integer_Type              (Id : E) return B;
!    function Is_Subprogram                       (Id : E) return B;
!    function Is_Subprogram_Or_Entry              (Id : E) return B;
!    function Is_Subprogram_Or_Generic_Subprogram (Id : E) return B;
!    function Is_Task_Type                        (Id : E) return B;
!    function Is_Type                             (Id : E) return B;
! 
!    pragma Inline (Is_Access_Object_Type);
!    pragma Inline (Is_Access_Type);
!    pragma Inline (Is_Access_Protected_Subprogram_Type);
!    pragma Inline (Is_Access_Subprogram_Type);
!    pragma Inline (Is_Aggregate_Type);
!    pragma Inline (Is_Anonymous_Access_Type);
!    pragma Inline (Is_Array_Type);
!    pragma Inline (Is_Assignable);
!    pragma Inline (Is_Class_Wide_Type);
!    pragma Inline (Is_Composite_Type);
!    pragma Inline (Is_Concurrent_Body);
!    pragma Inline (Is_Concurrent_Type);
!    pragma Inline (Is_Decimal_Fixed_Point_Type);
!    pragma Inline (Is_Digits_Type);
!    pragma Inline (Is_Discrete_Type);
!    pragma Inline (Is_Elementary_Type);
!    pragma Inline (Is_Entry);
!    pragma Inline (Is_Enumeration_Type);
!    pragma Inline (Is_Fixed_Point_Type);
!    pragma Inline (Is_Floating_Point_Type);
!    pragma Inline (Is_Formal);
!    pragma Inline (Is_Formal_Object);
!    pragma Inline (Is_Generic_Subprogram);
!    pragma Inline (Is_Generic_Unit);
!    pragma Inline (Is_Ghost_Entity);
!    pragma Inline (Is_Incomplete_Or_Private_Type);
!    pragma Inline (Is_Incomplete_Type);
!    pragma Inline (Is_Integer_Type);
!    pragma Inline (Is_Modular_Integer_Type);
!    pragma Inline (Is_Named_Access_Type);
!    pragma Inline (Is_Named_Number);
!    pragma Inline (Is_Numeric_Type);
!    pragma Inline (Is_Object);
!    pragma Inline (Is_Ordinary_Fixed_Point_Type);
!    pragma Inline (Is_Overloadable);
!    pragma Inline (Is_Private_Type);
!    pragma Inline (Is_Protected_Type);
!    pragma Inline (Is_Real_Type);
!    pragma Inline (Is_Record_Type);
!    pragma Inline (Is_Scalar_Type);
!    pragma Inline (Is_Signed_Integer_Type);
!    pragma Inline (Is_Subprogram);
!    pragma Inline (Is_Subprogram_Or_Entry);
!    pragma Inline (Is_Subprogram_Or_Generic_Subprogram);
!    pragma Inline (Is_Task_Type);
!    pragma Inline (Is_Type);
  
     -------------------------------------
     -- Synthesized Attribute Functions --
--- 92,146 ----
     --  Is_Generic_Type where the Ekind does not provide the needed
     --  information).
  
!    function Is_Access_Object_Type               (Id : E) return B with Inline;
!    function Is_Access_Type                      (Id : E) return B with Inline;
!    function Is_Access_Protected_Subprogram_Type (Id : E) return B with Inline;
!    function Is_Access_Subprogram_Type           (Id : E) return B with Inline;
!    function Is_Address_Compatible_Type          (Id : E) return B with Inline;
!    --  Check whether the type represents an address
!    function Is_Aggregate_Type                   (Id : E) return B with Inline;
!    function Is_Anonymous_Access_Type            (Id : E) return B with Inline;
!    function Is_Array_Type                       (Id : E) return B with Inline;
!    function Is_Assignable                       (Id : E) return B with Inline;
!    function Is_Class_Wide_Type                  (Id : E) return B with Inline;
!    function Is_Composite_Type                   (Id : E) return B with Inline;
!    function Is_Concurrent_Body                  (Id : E) return B with Inline;
!    function Is_Concurrent_Type                  (Id : E) return B with Inline;
!    function Is_Decimal_Fixed_Point_Type         (Id : E) return B with Inline;
!    function Is_Digits_Type                      (Id : E) return B with Inline;
!    function Is_Discrete_Or_Fixed_Point_Type     (Id : E) return B with Inline;
!    function Is_Discrete_Type                    (Id : E) return B with Inline;
!    function Is_Elementary_Type                  (Id : E) return B with Inline;
!    function Is_Entry                            (Id : E) return B with Inline;
!    function Is_Enumeration_Type                 (Id : E) return B with Inline;
!    function Is_Fixed_Point_Type                 (Id : E) return B with Inline;
!    function Is_Floating_Point_Type              (Id : E) return B with Inline;
!    function Is_Formal                           (Id : E) return B with Inline;
!    function Is_Formal_Object                    (Id : E) return B with Inline;
!    function Is_Generic_Subprogram               (Id : E) return B with Inline;
!    function Is_Generic_Unit                     (Id : E) return B with Inline;
!    function Is_Ghost_Entity                     (Id : E) return B with Inline;
!    function Is_Incomplete_Or_Private_Type       (Id : E) return B with Inline;
!    function Is_Incomplete_Type                  (Id : E) return B with Inline;
!    function Is_Integer_Type                     (Id : E) return B with Inline;
!    function Is_Modular_Integer_Type             (Id : E) return B with Inline;
!    function Is_Named_Access_Type                (Id : E) return B with Inline;
!    function Is_Named_Number                     (Id : E) return B with Inline;
!    function Is_Numeric_Type                     (Id : E) return B with Inline;
!    function Is_Object                           (Id : E) return B with Inline;
!    function Is_Ordinary_Fixed_Point_Type        (Id : E) return B with Inline;
!    function Is_Overloadable                     (Id : E) return B with Inline;
!    function Is_Private_Type                     (Id : E) return B with Inline;
!    function Is_Protected_Type                   (Id : E) return B with Inline;
!    function Is_Real_Type                        (Id : E) return B with Inline;
!    function Is_Record_Type                      (Id : E) return B with Inline;
!    function Is_Scalar_Type                      (Id : E) return B with Inline;
!    function Is_Signed_Integer_Type              (Id : E) return B with Inline;
!    function Is_Subprogram                       (Id : E) return B with Inline;
!    function Is_Subprogram_Or_Entry              (Id : E) return B with Inline;
!    function Is_Subprogram_Or_Generic_Subprogram (Id : E) return B with Inline;
!    function Is_Task_Type                        (Id : E) return B with Inline;
!    function Is_Type                             (Id : E) return B with Inline;
  
     -------------------------------------
     -- Synthesized Attribute Functions --
*************** package Einfo.Utils is
*** 202,218 ****
     --  The functions in this section synthesize attributes from the tree,
     --  so they do not correspond to defined fields in the entity itself.
  
!    function Address_Clause                      (Id : E) return Node_Id;
!    function Aft_Value                           (Id : E) return U;
!    function Alignment_Clause                    (Id : E) return Node_Id;
!    function Base_Type                           (Id : E) return E;
!    function Declaration_Node                    (Id : E) return Node_Id;
!    function Designated_Type                     (Id : E) return E;
!    function Entry_Index_Type                    (Id : E) return E;
!    function First_Component                     (Id : E) return Entity_Id;
!    function First_Component_Or_Discriminant     (Id : E) return Entity_Id;
!    function First_Formal                        (Id : E) return Entity_Id;
!    function First_Formal_With_Extras            (Id : E) return Entity_Id;
  
     function Float_Rep
       (N : Entity_Id) return F with Inline, Pre =>
--- 149,165 ----
     --  The functions in this section synthesize attributes from the tree,
     --  so they do not correspond to defined fields in the entity itself.
  
!    function Address_Clause (Id : E) return Node_Id with Inline;
!    function Aft_Value (Id : E) return U;
!    function Alignment_Clause (Id : E) return Node_Id with Inline;
!    function Base_Type (Id : E) return E with Inline;
!    function Declaration_Node (Id : E) return Node_Id;
!    function Designated_Type (Id : E) return E;
!    function Entry_Index_Type (Id : E) return E;
!    function First_Component (Id : E) return Entity_Id;
!    function First_Component_Or_Discriminant (Id : E) return Entity_Id;
!    function First_Formal (Id : E) return Entity_Id;
!    function First_Formal_With_Extras (Id : E) return Entity_Id;
  
     function Float_Rep
       (N : Entity_Id) return F with Inline, Pre =>
*************** package Einfo.Utils is
*** 223,339 ****
        Ignore_N in E_Void_Id
           | Float_Kind_Id;
  
!    function Has_Attach_Handler                  (Id : E) return B;
!    function Has_DIC                             (Id : E) return B;
!    function Has_Entries                         (Id : E) return B;
!    function Has_Foreign_Convention              (Id : E) return B;
!    function Has_Interrupt_Handler               (Id : E) return B;
!    function Has_Invariants                      (Id : E) return B;
!    function Has_Limited_View                    (Id : E) return B;
!    function Has_Non_Limited_View                (Id : E) return B;
!    function Has_Non_Null_Abstract_State         (Id : E) return B;
!    function Has_Non_Null_Visible_Refinement     (Id : E) return B;
!    function Has_Null_Abstract_State             (Id : E) return B;
!    function Has_Null_Visible_Refinement         (Id : E) return B;
!    function Implementation_Base_Type            (Id : E) return E;
!    function Is_Base_Type                        (Id : E) return B;
     --  Note that Is_Base_Type returns True for nontypes
!    function Is_Boolean_Type                     (Id : E) return B;
!    function Is_Constant_Object                  (Id : E) return B;
!    function Is_Controlled                       (Id : E) return B;
!    function Is_Discriminal                      (Id : E) return B;
!    function Is_Dynamic_Scope                    (Id : E) return B;
!    function Is_Elaboration_Target               (Id : E) return B;
!    function Is_External_State                   (Id : E) return B;
!    function Is_Finalizer                        (Id : E) return B;
!    function Is_Full_Access                      (Id : E) return B;
!    function Is_Null_State                       (Id : E) return B;
!    function Is_Package_Or_Generic_Package       (Id : E) return B;
!    function Is_Packed_Array                     (Id : E) return B;
!    function Is_Prival                           (Id : E) return B;
!    function Is_Protected_Component              (Id : E) return B;
!    function Is_Protected_Interface              (Id : E) return B;
!    function Is_Protected_Record_Type            (Id : E) return B;
!    function Is_Relaxed_Initialization_State     (Id : E) return B;
!    function Is_Standard_Character_Type          (Id : E) return B;
!    function Is_Standard_String_Type             (Id : E) return B;
!    function Is_String_Type                      (Id : E) return B;
!    function Is_Synchronized_Interface           (Id : E) return B;
!    function Is_Synchronized_State               (Id : E) return B;
!    function Is_Task_Interface                   (Id : E) return B;
!    function Is_Task_Record_Type                 (Id : E) return B;
!    function Is_Wrapper_Package                  (Id : E) return B;
!    function Last_Formal                         (Id : E) return Entity_Id;
!    function Machine_Emax_Value                  (Id : E) return U;
!    function Machine_Emin_Value                  (Id : E) return U;
!    function Machine_Mantissa_Value              (Id : E) return U;
!    function Machine_Radix_Value                 (Id : E) return U;
!    function Model_Emin_Value                    (Id : E) return U;
!    function Model_Epsilon_Value                 (Id : E) return R;
!    function Model_Mantissa_Value                (Id : E) return U;
!    function Model_Small_Value                   (Id : E) return R;
!    function Next_Component                      (Id : E) return Entity_Id;
!    function Next_Component_Or_Discriminant      (Id : E) return Entity_Id;
!    function Next_Discriminant                   (Id : E) return Entity_Id;
!    function Next_Formal                         (Id : E) return Entity_Id;
!    function Next_Formal_With_Extras             (Id : E) return Entity_Id;
!    function Next_Index                          (Id : N) return Node_Id;
!    function Next_Literal                        (Id : E) return Entity_Id;
!    function Next_Stored_Discriminant            (Id : E) return Entity_Id;
!    function Number_Dimensions                   (Id : E) return Pos;
!    function Number_Entries                      (Id : E) return Nat;
!    function Number_Formals                      (Id : E) return Pos;
!    function Object_Size_Clause                  (Id : E) return Node_Id;
!    function Parameter_Mode                      (Id : E) return Formal_Kind;
!    function Partial_Refinement_Constituents     (Id : E) return L;
!    function Primitive_Operations                (Id : E) return L;
!    function Root_Type                           (Id : E) return E;
!    function Safe_Emax_Value                     (Id : E) return U;
!    function Safe_First_Value                    (Id : E) return R;
!    function Safe_Last_Value                     (Id : E) return R;
!    function Size_Clause                         (Id : E) return Node_Id;
!    function Stream_Size_Clause                  (Id : E) return N;
!    function Type_High_Bound                     (Id : E) return N;
!    function Type_Low_Bound                      (Id : E) return N;
!    function Underlying_Type                     (Id : E) return Entity_Id;
  
!    function Scope_Depth                         (Id : E) return U;
!    function Scope_Depth_Set                     (Id : E) return B;
  
!    function Scope_Depth_Default_0               (Id : E) return U;
     --  In rare cases, the Scope_Depth_Value (queried by Scope_Depth) is
     --  not correctly set before querying it; this may be used instead of
     --  Scope_Depth in such cases. It returns Uint_0 if the Scope_Depth_Value
     --  has not been set. See documentation in Einfo.
  
-    pragma Inline (Address_Clause);
-    pragma Inline (Alignment_Clause);
-    pragma Inline (Base_Type);
-    pragma Inline (Has_Foreign_Convention);
-    pragma Inline (Has_Non_Limited_View);
-    pragma Inline (Is_Base_Type);
-    pragma Inline (Is_Boolean_Type);
-    pragma Inline (Is_Constant_Object);
-    pragma Inline (Is_Controlled);
-    pragma Inline (Is_Discriminal);
-    pragma Inline (Is_Finalizer);
-    pragma Inline (Is_Full_Access);
-    pragma Inline (Is_Null_State);
-    pragma Inline (Is_Package_Or_Generic_Package);
-    pragma Inline (Is_Packed_Array);
-    pragma Inline (Is_Prival);
-    pragma Inline (Is_Protected_Component);
-    pragma Inline (Is_Protected_Record_Type);
-    pragma Inline (Is_String_Type);
-    pragma Inline (Is_Task_Record_Type);
-    pragma Inline (Is_Wrapper_Package);
-    pragma Inline (Scope_Depth);
-    pragma Inline (Scope_Depth_Set);
-    pragma Inline (Size_Clause);
-    pragma Inline (Stream_Size_Clause);
-    pragma Inline (Type_High_Bound);
-    pragma Inline (Type_Low_Bound);
- 
     ------------------------------------------
     -- Type Representation Attribute Fields --
     ------------------------------------------
--- 170,258 ----
        Ignore_N in E_Void_Id
           | Float_Kind_Id;
  
!    function Has_Attach_Handler (Id : E) return B;
!    function Has_DIC (Id : E) return B;
!    function Has_Entries (Id : E) return B;
!    function Has_Foreign_Convention (Id : E) return B with Inline;
!    function Has_Interrupt_Handler (Id : E) return B;
!    function Has_Invariants (Id : E) return B;
!    function Has_Limited_View (Id : E) return B;
!    function Has_Non_Limited_View (Id : E) return B with Inline;
!    function Has_Non_Null_Abstract_State (Id : E) return B;
!    function Has_Non_Null_Visible_Refinement (Id : E) return B;
!    function Has_Null_Abstract_State (Id : E) return B;
!    function Has_Null_Visible_Refinement (Id : E) return B;
!    function Implementation_Base_Type (Id : E) return E;
!    function Is_Base_Type (Id : E) return B with Inline;
     --  Note that Is_Base_Type returns True for nontypes
!    function Is_Boolean_Type (Id : E) return B with Inline;
!    function Is_Constant_Object (Id : E) return B with Inline;
!    function Is_Controlled (Id : E) return B with Inline;
!    function Is_Discriminal (Id : E) return B with Inline;
!    function Is_Dynamic_Scope (Id : E) return B;
!    function Is_Elaboration_Target (Id : E) return B;
!    function Is_External_State (Id : E) return B;
!    function Is_Finalizer (Id : E) return B with Inline;
!    function Is_Full_Access (Id : E) return B with Inline;
!    function Is_Null_State (Id : E) return B;
!    function Is_Package_Or_Generic_Package (Id : E) return B with Inline;
!    function Is_Packed_Array (Id : E) return B with Inline;
!    function Is_Prival (Id : E) return B with Inline;
!    function Is_Protected_Component (Id : E) return B with Inline;
!    function Is_Protected_Interface (Id : E) return B;
!    function Is_Protected_Record_Type (Id : E) return B with Inline;
!    function Is_Relaxed_Initialization_State (Id : E) return B;
!    function Is_Standard_Character_Type (Id : E) return B;
!    function Is_Standard_String_Type (Id : E) return B;
!    function Is_String_Type (Id : E) return B with Inline;
!    function Is_Synchronized_Interface (Id : E) return B;
!    function Is_Synchronized_State (Id : E) return B;
!    function Is_Task_Interface (Id : E) return B;
!    function Is_Task_Record_Type (Id : E) return B with Inline;
!    function Is_Wrapper_Package (Id : E) return B with Inline;
!    function Last_Formal (Id : E) return Entity_Id;
!    function Machine_Emax_Value (Id : E) return U;
!    function Machine_Emin_Value (Id : E) return U;
!    function Machine_Mantissa_Value (Id : E) return U;
!    function Machine_Radix_Value (Id : E) return U;
!    function Model_Emin_Value (Id : E) return U;
!    function Model_Epsilon_Value (Id : E) return R;
!    function Model_Mantissa_Value (Id : E) return U;
!    function Model_Small_Value (Id : E) return R;
!    function Next_Component (Id : E) return Entity_Id;
!    function Next_Component_Or_Discriminant (Id : E) return Entity_Id;
!    function Next_Discriminant (Id : E) return Entity_Id;
!    function Next_Formal (Id : E) return Entity_Id;
!    function Next_Formal_With_Extras (Id : E) return Entity_Id;
!    function Next_Index (Id : N) return Node_Id;
!    function Next_Literal (Id : E) return Entity_Id;
!    function Next_Stored_Discriminant (Id : E) return Entity_Id;
!    function Number_Dimensions (Id : E) return Pos;
!    function Number_Entries (Id : E) return Nat;
!    function Number_Formals (Id : E) return Nat;
!    function Object_Size_Clause (Id : E) return Node_Id;
!    function Parameter_Mode (Id : E) return Formal_Kind;
!    function Partial_Refinement_Constituents (Id : E) return L;
!    function Primitive_Operations (Id : E) return L;
!    function Root_Type (Id : E) return E;
!    function Safe_Emax_Value (Id : E) return U;
!    function Safe_First_Value (Id : E) return R;
!    function Safe_Last_Value (Id : E) return R;
!    function Size_Clause (Id : E) return Node_Id with Inline;
!    function Stream_Size_Clause (Id : E) return N with Inline;
!    function Type_High_Bound (Id : E) return N with Inline;
!    function Type_Low_Bound (Id : E) return N with Inline;
!    function Underlying_Type (Id : E) return Entity_Id;
  
!    function Scope_Depth (Id : Scope_Kind_Id) return U with Inline;
!    function Scope_Depth_Set (Id : Scope_Kind_Id) return B with Inline;
  
!    function Scope_Depth_Default_0 (Id : Scope_Kind_Id) return U;
     --  In rare cases, the Scope_Depth_Value (queried by Scope_Depth) is
     --  not correctly set before querying it; this may be used instead of
     --  Scope_Depth in such cases. It returns Uint_0 if the Scope_Depth_Value
     --  has not been set. See documentation in Einfo.
  
     ------------------------------------------
     -- Type Representation Attribute Fields --
     ------------------------------------------
*************** package Einfo.Utils is
*** 451,506 ****
     -- Iterators --
     ---------------
  
!    --  The call to Next_xxx (obj) is equivalent to obj := Next_xxx (obj)
!    --  We define the set of Proc_Next_xxx routines simply for the purposes
!    --  of inlining them without necessarily inlining the function.
! 
!    procedure Proc_Next_Component                 (N : in out Node_Id);
!    procedure Proc_Next_Component_Or_Discriminant (N : in out Node_Id);
!    procedure Proc_Next_Discriminant              (N : in out Node_Id);
!    procedure Proc_Next_Formal                    (N : in out Node_Id);
!    procedure Proc_Next_Formal_With_Extras        (N : in out Node_Id);
!    procedure Proc_Next_Index                     (N : in out Node_Id);
!    procedure Proc_Next_Inlined_Subprogram        (N : in out Node_Id);
!    procedure Proc_Next_Literal                   (N : in out Node_Id);
!    procedure Proc_Next_Stored_Discriminant       (N : in out Node_Id);
! 
!    pragma Inline (Proc_Next_Component);
!    pragma Inline (Proc_Next_Component_Or_Discriminant);
!    pragma Inline (Proc_Next_Discriminant);
!    pragma Inline (Proc_Next_Formal);
!    pragma Inline (Proc_Next_Formal_With_Extras);
!    pragma Inline (Proc_Next_Index);
!    pragma Inline (Proc_Next_Inlined_Subprogram);
!    pragma Inline (Proc_Next_Literal);
!    pragma Inline (Proc_Next_Stored_Discriminant);
! 
!    procedure Next_Component                 (N : in out Node_Id)
!      renames Proc_Next_Component;
! 
!    procedure Next_Component_Or_Discriminant (N : in out Node_Id)
!      renames Proc_Next_Component_Or_Discriminant;
! 
!    procedure Next_Discriminant              (N : in out Node_Id)
!      renames Proc_Next_Discriminant;
! 
!    procedure Next_Formal                    (N : in out Node_Id)
!      renames Proc_Next_Formal;
! 
!    procedure Next_Formal_With_Extras        (N : in out Node_Id)
!      renames Proc_Next_Formal_With_Extras;
! 
!    procedure Next_Index                     (N : in out Node_Id)
!      renames Proc_Next_Index;
! 
!    procedure Next_Inlined_Subprogram        (N : in out Node_Id)
!      renames Proc_Next_Inlined_Subprogram;
! 
!    procedure Next_Literal                   (N : in out Node_Id)
!      renames Proc_Next_Literal;
  
!    procedure Next_Stored_Discriminant       (N : in out Node_Id)
!      renames Proc_Next_Stored_Discriminant;
  
     ---------------------------
     -- Testing Warning Flags --
--- 370,386 ----
     -- Iterators --
     ---------------
  
!    --  Next_xxx (obj) is equivalent to obj := Next_xxx (obj)
  
!    procedure Next_Component                 (N : in out Node_Id) with Inline;
!    procedure Next_Component_Or_Discriminant (N : in out Node_Id) with Inline;
!    procedure Next_Discriminant              (N : in out Node_Id) with Inline;
!    procedure Next_Formal                    (N : in out Node_Id) with Inline;
!    procedure Next_Formal_With_Extras        (N : in out Node_Id) with Inline;
!    procedure Next_Index                     (N : in out Node_Id) with Inline;
!    procedure Next_Inlined_Subprogram        (N : in out Node_Id) with Inline;
!    procedure Next_Literal                   (N : in out Node_Id) with Inline;
!    procedure Next_Stored_Discriminant       (N : in out Node_Id) with Inline;
  
     ---------------------------
     -- Testing Warning Flags --
*************** package Einfo.Utils is
*** 561,566 ****
--- 441,447 ----
     --  node, otherwise Empty is returned. The following contract pragmas that
     --  appear in N_Contract nodes are also handled by this routine:
     --    Abstract_State
+    --    Always_Terminates
     --    Async_Readers
     --    Async_Writers
     --    Attach_Handler
*************** package Einfo.Utils is
*** 569,574 ****
--- 450,456 ----
     --    Depends
     --    Effective_Reads
     --    Effective_Writes
+    --    Exceptional_Cases
     --    Global
     --    Initial_Condition
     --    Initializes
*************** package Einfo.Utils is
*** 581,586 ****
--- 463,469 ----
     --    Refined_Global
     --    Refined_Post
     --    Refined_State
+    --    Side_Effects
     --    Subprogram_Variant
     --    Test_Case
     --    Volatile_Function
*************** package Einfo.Utils is
*** 622,628 ****
     --  is the name of a class_wide type whose root is incomplete, return the
     --  corresponding full declaration, else return T itself.
  
!    function Is_Entity_Name (N : Node_Id) return Boolean;
     --  Test if the node N is the name of an entity (i.e. is an identifier,
     --  expanded name, or an attribute reference that returns an entity).
  
--- 505,511 ----
     --  is the name of a class_wide type whose root is incomplete, return the
     --  corresponding full declaration, else return T itself.
  
!    function Is_Entity_Name (N : Node_Id) return Boolean with Inline;
     --  Test if the node N is the name of an entity (i.e. is an identifier,
     --  expanded name, or an attribute reference that returns an entity).
  
*************** package Einfo.Utils is
*** 661,668 ****
     --  Also, if the Etype of E is set and is an anonymous access type with
     --  no convention set, this anonymous type inherits the convention of E.
  
-    pragma Inline (Is_Entity_Name);
- 
     ----------------------------------
     -- Debugging Output Subprograms --
     ----------------------------------
--- 544,549 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/einfo.adb gcc-14.1.0/gcc/ada/einfo.adb
*** gcc-13.2.0/gcc/ada/einfo.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/einfo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/einfo.ads gcc-14.1.0/gcc/ada/einfo.ads
*** gcc-13.2.0/gcc/ada/einfo.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/einfo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Einfo is
*** 864,892 ****
  --       and IN OUT parameters in the absence of errors).
  
  --    Delay_Cleanups
! --       Defined in entities that have finalization lists (subprograms
! --       blocks, and tasks). Set if there are pending generic body
! --       instantiations for the corresponding entity. If this flag is
! --       set, then generation of cleanup actions for the corresponding
! --       entity must be delayed, since the insertion of the generic body
! --       may affect cleanup generation (see Inline for further details).
! 
! --    Delay_Subprogram_Descriptors
! --       Defined in entities for which exception subprogram descriptors
! --       are generated (subprograms, package declarations and package
! --       bodies). Defined if there are pending generic body instantiations
! --       for the corresponding entity. If this flag is set, then generation
! --       of the subprogram descriptor for the corresponding entities must
! --       be delayed, since the insertion of the generic body may add entries
! --       to the list of handlers.
! --
! --       Note: for subprograms, Delay_Subprogram_Descriptors is set if and
! --       only if Delay_Cleanups is set. But Delay_Cleanups can be set for a
! --       a block (in which case Delay_Subprogram_Descriptors is set for the
! --       containing subprogram). In addition Delay_Subprogram_Descriptors is
! --       set for a library level package declaration or body which contains
! --       delayed instantiations (in this case the descriptor refers to the
! --       enclosing elaboration procedure).
  
  --    Delta_Value
  --       Defined in fixed and decimal types. Points to a universal real
--- 864,875 ----
  --       and IN OUT parameters in the absence of errors).
  
  --    Delay_Cleanups
! --       Defined in entities that have finalization lists (subprograms, blocks
! --       and tasks) or finalizers (package specs and bodies). Set if there are
! --       pending package body instantiations for the corresponding entity. If
! --       it is set, then generation of cleanup actions for the corresponding
! --       entity must be delayed, since the insertion of the package bodies may
! --       affect cleanup generation (see Inline for further details).
  
  --    Delta_Value
  --       Defined in fixed and decimal types. Points to a universal real
*************** package Einfo is
*** 1148,1153 ****
--- 1131,1138 ----
  --       object for task entry calls and a Communications_Block object
  --       in the case of protected entry calls. In both cases the objects
  --       are declared in outer scopes to this block.
+ --       This is also defined in labels, because we temporarily set the
+ --       Ekind of an E_Block to E_Label in Analyze_Implicit_Label_Declaration.
  
  --    Entry_Component
  --       Defined in formal parameters (in, in out and out parameters). Used
*************** package Einfo is
*** 1346,1357 ****
  --       find the first discriminant if discriminants are present.
  
  --    First_Entity
! --       Defined in all entities which act as scopes to which a list of
! --       associated entities is attached (blocks, class subtypes and types,
! --       entries, functions, loops, packages, procedures, protected objects,
! --       record types and subtypes, private types, task types and subtypes).
! --       Points to a list of associated entities using the Next_Entity field
! --       as a chain pointer with Empty marking the end of the list.
  
  --    First_Exit_Statement
  --       Defined in E_Loop entity. The exit statements for a loop are chained
--- 1331,1344 ----
  --       find the first discriminant if discriminants are present.
  
  --    First_Entity
! --       Defined in all entities that act as scopes to which a list of
! --       associated entities is attached, and also in all [sub]types. Some
! --       entities are both; for example E_Record_Type acts as a scope and
! --       is a type. [Sub]types that do not act as scopes (e.g. scalars) are
! --       included to make it more convenient to Mutate_Entity between type
! --       kinds. Points to a list of associated entities linked through the
! --       Next_Entity field with Empty marking end-of-list.
! --       See also Last_Entity.
  
  --    First_Exit_Statement
  --       Defined in E_Loop entity. The exit statements for a loop are chained
*************** package Einfo is
*** 1690,1695 ****
--- 1677,1686 ----
  --       Exp_Dbug for a full description of the use of this flag and also the
  --       related flag Has_Qualified_Name.
  
+ --    Has_Ghost_Predicate_Aspect
+ --       Defined in all types and subtypes. Set if a Ghost_Predicate aspect
+ --       was explicitly applied to the type.
+ 
  --    Has_Gigi_Rep_Item
  --       Defined in all entities. Set if the rep item chain (referenced by
  --       First_Rep_Item and linked through the Next_Rep_Item chain) contains a
*************** package Einfo is
*** 1978,1984 ****
  --       is defined for the type.
  
  --    Has_Private_Ancestor
! --       Applies to type extensions. True if some ancestor is derived from a
  --       private type, making some components invisible and aggregates illegal.
  --       This flag is set at the point of derivation. The legality of the
  --       aggregate must be rechecked because it also depends on the visibility
--- 1969,1975 ----
  --       is defined for the type.
  
  --    Has_Private_Ancestor
! --       Applies to derived record types. True if an ancestor is derived from a
  --       private type, making some components invisible and aggregates illegal.
  --       This flag is set at the point of derivation. The legality of the
  --       aggregate must be rechecked because it also depends on the visibility
*************** package Einfo is
*** 2483,2499 ****
  --       and subtypes, string types and subtypes, and all numeric types).
  --       Set if the type or subtype is constrained.
  
  --    Is_Constr_Subt_For_U_Nominal
  --       Defined in all types and subtypes. Set only for the constructed
  --       subtype of an object whose nominal subtype is unconstrained. Note
  --       that the constructed subtype itself will be constrained.
  
- --    Is_Constr_Subt_For_UN_Aliased
- --       Defined in all types and subtypes. This flag can be set only if
- --       Is_Constr_Subt_For_U_Nominal is also set. It indicates that in
- --       addition the object concerned is aliased. This flag is used by
- --       the backend to determine whether a template must be constructed.
- 
  --    Is_Constructor
  --       Defined in function and procedure entities. Set if a pragma
  --       CPP_Constructor applies to the subprogram.
--- 2474,2490 ----
  --       and subtypes, string types and subtypes, and all numeric types).
  --       Set if the type or subtype is constrained.
  
+ --    Is_Constr_Array_Subt_With_Bounds
+ --       Defined in all types and subtypes. Set only for an array subtype
+ --       which is constrained but nevertheless requires objects of this
+ --       subtype to be allocated with their bounds. This flag is used by
+ --       the back end to determine whether the bounds must be constructed.
+ 
  --    Is_Constr_Subt_For_U_Nominal
  --       Defined in all types and subtypes. Set only for the constructed
  --       subtype of an object whose nominal subtype is unconstrained. Note
  --       that the constructed subtype itself will be constrained.
  
  --    Is_Constructor
  --       Defined in function and procedure entities. Set if a pragma
  --       CPP_Constructor applies to the subprogram.
*************** package Einfo is
*** 2736,2741 ****
--- 2727,2737 ----
  --       instantiation of a child unit, and whose entities are not visible
  --       during analysis of the instance.
  
+ --    Is_Ignored_For_Finalization
+ --       Defined in constants and variables. Set when an object must be ignored
+ --       by the general finalization mechanism because its cleanup actions are
+ --       already accounted for.
+ 
  --    Is_Ignored_Ghost_Entity
  --       Applies to all entities. Set for abstract states, [generic] packages,
  --       [generic] subprograms, components, discriminants, formal parameters,
*************** package Einfo is
*** 2743,2755 ****
  --       pragma Ghost or inherit "ghostness" from an enclosing construct, and
  --       subject to Assertion_Policy Ghost => Ignore.
  
- --    Is_Ignored_Transient
- --       Defined in constants, loop parameters of generalized iterators, and
- --       variables. Set when a transient object must be processed by one of
- --       the transient finalization mechanisms. Once marked, a transient is
- --       intentionally ignored by the general finalization mechanism because
- --       its clean up actions are context specific.
- 
  --    Is_Immediately_Visible
  --       Defined in all entities. Set if entity is immediately visible, i.e.
  --       is defined in some currently open scope (RM 8.3(4)).
--- 2739,2744 ----
*************** package Einfo is
*** 3102,3107 ****
--- 3091,3108 ----
  --       procedure which verifies the invariants of the partial view of a
  --       private type or private extension.
  
+ --    Is_Not_Self_Hidden
+ --       Defined in all entities. Roughly speaking, this is False if the
+ --       declaration of the entity is hidden from all visibility because
+ --       we are within its declaration, as defined by 8.3(16-18). When
+ --       we reach the end of the declaration or other place defined by
+ --       8.3(16-18), this is set to True. However, this flag is not used
+ --       for most overloaded declarations (but is used for enumeration
+ --       literals), and is also used for other cases of premature usage
+ --       such as defined in 3.8(10) for record components and the like.
+ --       In addition, there are cases involving discriminants where we
+ --       set this True, then temporarily False again.
+ 
  --    Is_Potentially_Use_Visible
  --       Defined in all entities. Set if entity is potentially use visible,
  --       i.e. it is defined in a package that appears in a currently active
*************** package Einfo is
*** 3510,3521 ****
  --       statements whose value is not used.
  
  --    Last_Entity
! --       Defined in all entities which act as scopes to which a list of
! --       associated entities is attached (blocks, class subtypes and types,
! --       entries, functions, loops, packages, procedures, protected objects,
! --       record types and subtypes, private types, task types and subtypes).
! --       Points to the last entry in the list of associated entities chained
! --       through the Next_Entity field. Empty if no entities are chained.
  
  --    Last_Formal (synthesized)
  --       Applies to subprograms and subprogram types, and also in entries
--- 3511,3518 ----
  --       statements whose value is not used.
  
  --    Last_Entity
! --       Defined for the same entity kinds as First_Entity. Last_Entity
! --       is the last entry in the list. Empty if no entities are chained.
  
  --    Last_Formal (synthesized)
  --       Applies to subprograms and subprogram types, and also in entries
*************** package Einfo is
*** 3538,3544 ****
  --       field may be set as a result of a linker section pragma applied to the
  --       type of the object.
  
! --    Lit_Hash
  --       Defined in enumeration types and subtypes. Non-empty only for the
  --       case of an enumeration root type, where it contains the entity for
  --       the generated hash function. See unit Exp_Imgv for full details of
--- 3535,3541 ----
  --       field may be set as a result of a linker section pragma applied to the
  --       type of the object.
  
! --    Lit_Hash [root type only]
  --       Defined in enumeration types and subtypes. Non-empty only for the
  --       case of an enumeration root type, where it contains the entity for
  --       the generated hash function. See unit Exp_Imgv for full details of
*************** package Einfo is
*** 3833,3839 ****
  
  --    Number_Formals (synthesized)
  --       Applies to subprograms and subprogram types. Yields the number of
! --       formals as a value of type Pos.
  
  --    Object_Size_Clause (synthesized)
  --       Applies to entities for types and subtypes. If an object size clause
--- 3830,3836 ----
  
  --    Number_Formals (synthesized)
  --       Applies to subprograms and subprogram types. Yields the number of
! --       formals as a value of type Nat.
  
  --    Object_Size_Clause (synthesized)
  --       Applies to entities for types and subtypes. If an object size clause
*************** package Einfo is
*** 4113,4119 ****
  --    Protected_Subprogram
  --       Defined in functions and procedures. Set for the pair of subprograms
  --       which emulate the runtime semantics of a protected subprogram. Denotes
! --       the entity of the origial protected subprogram.
  
  --    Protection_Object
  --       Applies to protected entries, entry families and subprograms. Denotes
--- 4110,4116 ----
  --    Protected_Subprogram
  --       Defined in functions and procedures. Set for the pair of subprograms
  --       which emulate the runtime semantics of a protected subprogram. Denotes
! --       the entity of the original protected subprogram.
  
  --    Protection_Object
  --       Applies to protected entries, entry families and subprograms. Denotes
*************** package Einfo is
*** 4331,4344 ****
  --       concurrent types, private types and entries, and also to record types,
  --       i.e. to any entity that can appear on the scope stack. Yields the
  --       scope depth value, which for those entities other than records is
! --       simply the scope depth value, for record entities, it is the
! --       Scope_Depth of the record scope.
  
  --    Scope_Depth_Value
  --       Defined in program units, blocks, loops, return statements,
  --       concurrent types, private types and entries.
  --       Indicates the number of scopes that statically enclose the declaration
! --       of the unit or type. Library units have a depth of zero. Note that
  --       record types can act as scopes but do NOT have this field set (see
  --       Scope_Depth above). Queries should normally be via Scope_Depth,
  --       and not call Scope_Depth_Value directly.
--- 4328,4341 ----
  --       concurrent types, private types and entries, and also to record types,
  --       i.e. to any entity that can appear on the scope stack. Yields the
  --       scope depth value, which for those entities other than records is
! --       simply the Scope_Depth_Value, and for record entities, is the
! --       Scope_Depth of the record's scope.
  
  --    Scope_Depth_Value
  --       Defined in program units, blocks, loops, return statements,
  --       concurrent types, private types and entries.
  --       Indicates the number of scopes that statically enclose the declaration
! --       of the unit or type. Library units have a depth of one. Note that
  --       record types can act as scopes but do NOT have this field set (see
  --       Scope_Depth above). Queries should normally be via Scope_Depth,
  --       and not call Scope_Depth_Value directly.
*************** package Einfo is
*** 4519,4529 ****
  --    Status_Flag_Or_Transient_Decl
  --       Defined in constant, loop, and variable entities. Applies to objects
  --       that require special treatment by the finalization machinery, such as
! --       extended return results, IF and CASE expression results, and objects
  --       inside N_Expression_With_Actions nodes. The attribute contains the
! --       entity of a flag which specifies particular behavior over a region of
! --       code or the declaration of a "hook" object.
! --       In which case is it a flag, or a hook object???
  
  --    Storage_Size_Variable [implementation base type only]
  --       Defined in access types and task type entities. This flag is set
--- 4516,4526 ----
  --    Status_Flag_Or_Transient_Decl
  --       Defined in constant, loop, and variable entities. Applies to objects
  --       that require special treatment by the finalization machinery, such as
! --       extended return objects, conditional expression results, and objects
  --       inside N_Expression_With_Actions nodes. The attribute contains the
! --       entity of a flag which specifies a particular behavior over a region
! --       of the extended return for the return objects, or the declaration of a
! --       hook object for conditional expressions and N_Expression_With_Actions.
  
  --    Storage_Size_Variable [implementation base type only]
  --       Defined in access types and task type entities. This flag is set
*************** package Einfo is
*** 4535,4545 ****
  --       share the same storage pool).
  
  --    Stored_Constraint
! --       Defined in entities that can have discriminants (concurrent types
! --       subtypes, record types and subtypes, private types and subtypes,
! --       limited private types and subtypes and incomplete types). Points
! --       to an element list containing the expressions for each of the
! --       stored discriminants for the record (sub)type.
  
  --    Stores_Attribute_Old_Prefix
  --       Defined in constants, variables, and types which are created during
--- 4532,4540 ----
  --       share the same storage pool).
  
  --    Stored_Constraint
! --       Defined in type entities. Points to an element list containing the
! --       expressions for each of the stored discriminants, if any, for the
! --       (sub)type.
  
  --    Stores_Attribute_Old_Prefix
  --       Defined in constants, variables, and types which are created during
*************** package Einfo is
*** 4769,4775 ****
  
  --    Wrapped_Statements
  --       Defined in functions, procedures, entries, and entry families. Refers
! --       to the entity of the _Wrapped_Statements procedure which gets
  --       generated as part of the expansion of contracts and postconditions
  --       and contains its enclosing subprogram's original source declarations
  --       and statements.
--- 4764,4770 ----
  
  --    Wrapped_Statements
  --       Defined in functions, procedures, entries, and entry families. Refers
! --       to the entity of the _Wrapped_Statements procedure, which gets
  --       generated as part of the expansion of contracts and postconditions
  --       and contains its enclosing subprogram's original source declarations
  --       and statements.
*************** package Einfo is
*** 4778,4784 ****
  --       Defined in subprogram entities. Set on wrappers created to handle
  --       inherited class-wide pre/post conditions that call overridden
  --       primitives. It references the parent primitive that has the
! --       class-wide pre/post conditions.
  
  ---------------------------
  -- Renaming and Aliasing --
--- 4773,4780 ----
  --       Defined in subprogram entities. Set on wrappers created to handle
  --       inherited class-wide pre/post conditions that call overridden
  --       primitives. It references the parent primitive that has the
! --       class-wide pre/post conditions. LSP stands for Liskov Substitution
! --       Principle.
  
  ---------------------------
  -- Renaming and Aliasing --
*************** package Einfo is
*** 4949,4954 ****
--- 4945,4951 ----
     --    Is_Obsolescent
     --    Is_Package_Body_Entity
     --    Is_Packed_Array_Impl_Type
+    --    Is_Not_Self_Hidden
     --    Is_Potentially_Use_Visible
     --    Is_Preelaborated
     --    Is_Primitive_Wrapper
*************** package Einfo is
*** 5031,5036 ****
--- 5028,5034 ----
     --    Has_Delayed_Rep_Aspects
     --    Has_Discriminants
     --    Has_Dynamic_Predicate_Aspect
+    --    Has_Ghost_Predicate_Aspect
     --    Has_Independent_Components           (base type only)
     --    Has_Inheritable_Invariants           (base type only)
     --    Has_Inherited_DIC                    (base type only)
*************** package Einfo is
*** 5060,5067 ****
     --    Is_Abstract_Type
     --    Is_Asynchronous
     --    Is_Atomic
     --    Is_Constr_Subt_For_U_Nominal
-    --    Is_Constr_Subt_For_UN_Aliased
     --    Is_Controlled_Active                 (base type only)
     --    Is_Eliminated
     --    Is_Frozen
--- 5058,5065 ----
     --    Is_Abstract_Type
     --    Is_Asynchronous
     --    Is_Atomic
+    --    Is_Constr_Array_Subt_With_Bounds
     --    Is_Constr_Subt_For_U_Nominal
     --    Is_Controlled_Active                 (base type only)
     --    Is_Eliminated
     --    Is_Frozen
*************** package Einfo is
*** 5325,5331 ****
     --    Is_Elaboration_Warnings_OK_Id         (constants only)
     --    Is_Eliminated
     --    Is_Finalized_Transient
!    --    Is_Ignored_Transient
     --    Is_Independent
     --    Is_Return_Object
     --    Is_True_Constant
--- 5323,5329 ----
     --    Is_Elaboration_Warnings_OK_Id         (constants only)
     --    Is_Eliminated
     --    Is_Finalized_Transient
!    --    Is_Ignored_For_Finalization
     --    Is_Independent
     --    Is_Return_Object
     --    Is_True_Constant
*************** package Einfo is
*** 5542,5548 ****
     --    Contains_Ignored_Ghost_Code
     --    Default_Expressions_Processed
     --    Delay_Cleanups
-    --    Delay_Subprogram_Descriptors
     --    Discard_Names
     --    Elaboration_Entity_Required
     --    Has_Completion
--- 5540,5545 ----
*************** package Einfo is
*** 5668,5673 ****
--- 5665,5671 ----
     --  E_Label
     --    Renamed_Object $$$
     --    Renamed_Entity $$$
+    --    Entry_Cancel_Parameter
     --    Enclosing_Scope
     --    Reachable
  
*************** package Einfo is
*** 5791,5797 ****
     --    Body_Needed_For_Inlining
     --    Body_Needed_For_SAL
     --    Contains_Ignored_Ghost_Code
-    --    Delay_Subprogram_Descriptors
     --    Discard_Names
     --    Elaborate_Body_Desirable             (non-generic case only)
     --    Elaboration_Entity_Required
--- 5789,5794 ----
*************** package Einfo is
*** 5834,5840 ****
     --    SPARK_Pragma
     --    SPARK_Aux_Pragma
     --    Contains_Ignored_Ghost_Code
-    --    Delay_Subprogram_Descriptors
     --    Ignore_SPARK_Mode_Pragmas
     --    SPARK_Aux_Pragma_Inherited
     --    SPARK_Pragma_Inherited
--- 5831,5836 ----
*************** package Einfo is
*** 5908,5914 ****
     --    Elaboration_Entity_Required
     --    Default_Expressions_Processed
     --    Delay_Cleanups
-    --    Delay_Subprogram_Descriptors
     --    Discard_Names
     --    Has_Completion
     --    Has_Expanded_Contract                (non-generic case only)
--- 5904,5909 ----
*************** package Einfo is
*** 6216,6222 ****
     --    Is_Elaboration_Warnings_OK_Id
     --    Is_Eliminated
     --    Is_Finalized_Transient
!    --    Is_Ignored_Transient
     --    Is_Independent
     --    Is_Return_Object
     --    Is_Safe_To_Reevaluate
--- 6211,6217 ----
     --    Is_Elaboration_Warnings_OK_Id
     --    Is_Eliminated
     --    Is_Finalized_Transient
!    --    Is_Ignored_For_Finalization
     --    Is_Independent
     --    Is_Return_Object
     --    Is_Safe_To_Reevaluate
diff -Nrcpad gcc-13.2.0/gcc/ada/elists.adb gcc-14.1.0/gcc/ada/elists.adb
*** gcc-13.2.0/gcc/ada/elists.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/elists.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/elists.ads gcc-14.1.0/gcc/ada/elists.ads
*** gcc-13.2.0/gcc/ada/elists.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/elists.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/elists.h gcc-14.1.0/gcc/ada/elists.h
*** gcc-13.2.0/gcc/ada/elists.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/elists.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/env.c gcc-14.1.0/gcc/ada/env.c
*** gcc-13.2.0/gcc/ada/env.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/env.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/env.h gcc-14.1.0/gcc/ada/env.h
*** gcc-13.2.0/gcc/ada/env.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/env.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2009-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2009-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/err_vars.ads gcc-14.1.0/gcc/ada/err_vars.ads
*** gcc-13.2.0/gcc/ada/err_vars.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/err_vars.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Err_Vars is
*** 100,105 ****
--- 100,110 ----
     Error_Msg_Uint_2 : Uint := No_Uint;
     --  Uint values for ^ insertion characters in message
  
+    Error_Msg_Code_Digits : constant := 4;
+    Error_Msg_Code : Nat range 0 .. 10 ** Error_Msg_Code_Digits - 1;
+    --  Nat value for [] insertion sequence in message, where a value of zero
+    --  indicates the absence of an error code.
+ 
     --  WARNING: There is a matching C declaration of these variables in fe.h
  
     Error_Msg_Sloc : Source_Ptr;
diff -Nrcpad gcc-13.2.0/gcc/ada/errno.c gcc-14.1.0/gcc/ada/errno.c
*** gcc-13.2.0/gcc/ada/errno.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/errno.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/errout.adb gcc-14.1.0/gcc/ada/errout.adb
*** gcc-13.2.0/gcc/ada/errout.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/errout.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Sinfo.Nodes;    use Sinfo.Nodes;
*** 50,55 ****
--- 50,56 ----
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
  with Stand;          use Stand;
+ with Stringt;        use Stringt;
  with Stylesw;        use Stylesw;
  with System.OS_Lib;
  with Uname;          use Uname;
*************** package body Errout is
*** 139,144 ****
--- 140,150 ----
     --  indicates if there are errors attached to the line, which forces
     --  listing on, even in the presence of pragma List (Off).
  
+    function Paren_Required (N : Node_Id) return Boolean;
+    --  Subsidiary to First_Sloc and Last_Sloc. Returns True iff parentheses
+    --  around node N are required by the Ada syntax, e.g. when N is an
+    --  expression of a qualified expression.
+ 
     procedure Set_Msg_Insertion_Column;
     --  Handle column number insertion (@ insertion character)
  
*************** package body Errout is
*** 179,184 ****
--- 185,195 ----
     --  Outputs up to N levels of qualification for the given entity. For
     --  example, the entity A.B.C.D will output B.C. if N = 2.
  
+    function Should_Ignore_Pragma_SPARK_Mode return Boolean;
+    --  Return whether pragma Ignore_Pragma (SPARK_Mode) was specified. This is
+    --  similar to Sem_Util.Should_Ignore_Pragma_Par but located here to avoid
+    --  problematic dependency on Sem_Util.
+ 
     function Special_Msg_Delete
       (Msg : String;
        N   : Node_Or_Entity_Id;
*************** package body Errout is
*** 1441,1446 ****
--- 1452,1475 ----
              raise Unrecoverable_Error;
           end if;
        end if;
+ 
+       if Has_Error_Code then
+          declare
+             Msg : constant String :=
+               "\launch ""gnatprove --explain=[]"" for more information";
+          begin
+             Has_Double_Exclam := False;
+             Has_Error_Code := False;
+             Has_Insertion_Line := False;
+ 
+             Error_Msg_Internal
+               (Msg      => Msg,
+                Span     => Span,
+                Opan     => Opan,
+                Msg_Cont => True,
+                Node     => Node);
+          end;
+       end if;
     end Error_Msg_Internal;
  
     -----------------
*************** package body Errout is
*** 1763,1768 ****
--- 1792,1815 ----
           Loc   : constant Source_Ptr := Sloc (Norig);
  
        begin
+          --  ??? For assignments that require accessiblity checks, e.g.:
+          --
+          --    Y := Func (123);
+          --
+          --  the function call gets an extra actual parameter association with
+          --  Sloc of the assigned name "Y":
+          --
+          --    Y := Func (123, A8b => 2);
+          --
+          --  We can simply ignore those extra actual parameters when
+          --  determining the Sloc range of the "Func (123)" expression.
+ 
+          if Nkind (N) = N_Parameter_Association
+            and then Is_Accessibility_Actual (N)
+          then
+             return Skip;
+          end if;
+ 
           --  Check for earlier
  
           if Loc < Eloc
*************** package body Errout is
*** 1845,1855 ****
     ----------------
  
     function First_Sloc (N : Node_Id) return Source_Ptr is
!       SI : constant Source_File_Index := Source_Index (Get_Source_Unit (N));
!       SF : constant Source_Ptr        := Source_First (SI);
!       SL : constant Source_Ptr        := Source_Last (SI);
!       F  : Node_Id;
!       S  : Source_Ptr;
  
     begin
        F := First_Node (N);
--- 1892,1903 ----
     ----------------
  
     function First_Sloc (N : Node_Id) return Source_Ptr is
!       SI  : constant Source_File_Index := Get_Source_File_Index (Sloc (N));
!       SF  : constant Source_Ptr        := Source_First (SI);
!       SL  : constant Source_Ptr        := Source_Last (SI);
!       Src : constant Source_Buffer_Ptr := Source_Text (SI);
!       F   : Node_Id;
!       S   : Source_Ptr;
  
     begin
        F := First_Node (N);
*************** package body Errout is
*** 1868,1873 ****
--- 1916,1927 ----
        --  values), but this is only for an error message so it is good enough.
  
        Node_Loop : loop
+          --  Include parentheses around the top node, except when they are
+          --  required by the syntax of the parent node.
+ 
+          exit Node_Loop when F = N
+            and then Paren_Required (N);
+ 
           Paren_Loop : for J in 1 .. Paren_Count (F) loop
  
              --  We don't look more than 12 characters behind the current
*************** package body Errout is
*** 1876,1886 ****
              Search_Loop : for K in 1 .. 12 loop
                 exit Search_Loop when S = SF;
  
!                if Source_Text (SI) (S - 1) = '(' then
                    S := S - 1;
                    exit Search_Loop;
  
!                elsif Source_Text (SI) (S - 1) <= ' ' then
                    S := S - 1;
  
                 else
--- 1930,1940 ----
              Search_Loop : for K in 1 .. 12 loop
                 exit Search_Loop when S = SF;
  
!                if Src (S - 1) = '(' then
                    S := S - 1;
                    exit Search_Loop;
  
!                elsif Src (S - 1) <= ' ' then
                    S := S - 1;
  
                 else
*************** package body Errout is
*** 1963,1973 ****
     ---------------
  
     function Last_Sloc (N : Node_Id) return Source_Ptr is
!       SI : constant Source_File_Index := Source_Index (Get_Source_Unit (N));
!       SF : constant Source_Ptr        := Source_First (SI);
!       SL : constant Source_Ptr        := Source_Last (SI);
!       F  : Node_Id;
!       S  : Source_Ptr;
  
     begin
        F := Last_Node (N);
--- 2017,2044 ----
     ---------------
  
     function Last_Sloc (N : Node_Id) return Source_Ptr is
!       procedure Skip_Char (S : in out Source_Ptr);
!       --  Skip one character of the source buffer at location S
! 
!       ---------------
!       -- Skip_Char --
!       ---------------
! 
!       procedure Skip_Char (S : in out Source_Ptr) is
!       begin
!          S := S + 1;
!       end Skip_Char;
! 
!       --  Local variables
! 
!       SI  : constant Source_File_Index := Get_Source_File_Index (Sloc (N));
!       SF  : constant Source_Ptr        := Source_First (SI);
!       SL  : constant Source_Ptr        := Source_Last (SI);
!       Src : constant Source_Buffer_Ptr := Source_Text (SI);
!       F   : Node_Id;
!       S   : Source_Ptr;
! 
!    --  Start of processing for Last_Sloc
  
     begin
        F := Last_Node (N);
*************** package body Errout is
*** 1977,1997 ****
           return S;
        end if;
  
!       --  Skip past an identifier
  
!       while S in SF .. SL - 1
!         and then Source_Text (SI) (S + 1)
!           in
!         '0' .. '9' | 'a' .. 'z' | 'A' .. 'Z' | '.' | '_'
!       loop
!          S := S + 1;
!       end loop;
  
        --  The following circuit attempts at crawling up the tree from the
        --  Last_Node, adjusting the Sloc value for any parentheses we know
        --  are present, similarly to what is done in First_Sloc.
  
        Node_Loop : loop
           Paren_Loop : for J in 1 .. Paren_Count (F) loop
  
              --  We don't look more than 12 characters after the current
--- 2048,2229 ----
           return S;
        end if;
  
!       --  For string and character literals simply forward the sloc by their
!       --  length including the closing quotes. Perhaps we should do something
!       --  special for multibyte characters, but this code is only used to emit
!       --  error messages, so it is not worth the effort.
  
!       case Nkind (F) is
!          when N_String_Literal =>
!             return S + Source_Ptr (String_Length (Strval (F))) + 1;
! 
!          when N_Character_Literal =>
!             return S + 2;
! 
!          --  Skip past integer literals, both decimal and based, integer and
!          --  real. We can't greedily accept all allowed character, because
!          --  we would consme too many of them in expressions like "123+ABC"
!          --  or "123..456", so we follow quite precisely the Ada grammar and
!          --  consume different characters depending on the context.
! 
!          when N_Integer_Literal =>
! 
!             --  Skip past the initial numeral, which either leads the decimal
!             --  literal or is the base of a based literal.
! 
!             while S < SL
!               and then Src (S + 1) in '0' .. '9' | '_'
!             loop
!                Skip_Char (S);
!             end loop;
! 
!             --  Skip past #based_numeral#, if present
! 
!             if S < SL
!               and then Src (S + 1) = '#'
!             then
!                Skip_Char (S);
! 
!                while S < SL
!                  and then
!                    Src (S + 1) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_'
!                loop
!                   Skip_Char (S);
!                end loop;
! 
!                if S < SL
!                  and then Src (S + 1) = '#'
!                then
!                   Skip_Char (S);
!                end if;
!             end if;
! 
!             --  Skip past exponent, if present
! 
!             if S < SL
!               and then Src (S + 1) in 'e' | 'E'
!             then
!                Skip_Char (S);
! 
!                --  For positive exponents the plus sign is optional, but we
!                --  can simply skip past both plus and minus.
! 
!                if S < SL
!                  and then Src (S + 1) in '+' | '-'
!                then
!                   Skip_Char (S);
!                end if;
! 
!                --  Skip past the numeral part
! 
!                while S < SL
!                  and then Src (S + 1) in '0' .. '9' | '_'
!                loop
!                   Skip_Char (S);
!                end loop;
!             end if;
! 
!          when N_Real_Literal =>
!             --  Skip past the initial numeral, which either leads the decimal
!             --  literal or is the base of a based literal.
! 
!             while S < SL
!               and then Src (S + 1) in '0' .. '9' | '_'
!             loop
!                Skip_Char (S);
!             end loop;
! 
!             if S < SL then
! 
!                --  Skip the dot and continue with a decimal literal
! 
!                if Src (S + 1) = '.' then
!                   Skip_Char (S);
! 
!                   while S < SL
!                     and then Src (S + 1) in '0' .. '9' | '_'
!                   loop
!                      Skip_Char (S);
!                   end loop;
! 
!                --  Skip the hash and continue with a based literal
! 
!                elsif Src (S + 1) = '#' then
!                   Skip_Char (S);
! 
!                   while S < SL
!                     and then
!                       Src (S + 1) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_'
!                   loop
!                      Skip_Char (S);
!                   end loop;
! 
!                   if S < SL
!                     and then Src (S + 1) = '.'
!                   then
!                      Skip_Char (S);
!                   end if;
! 
!                   while S < SL
!                     and then
!                       Src (S + 1) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_'
!                   loop
!                      Skip_Char (S);
!                   end loop;
! 
!                   if S < SL
!                     and then Src (S + 1) = '#'
!                   then
!                      Skip_Char (S);
!                   end if;
!                end if;
!             end if;
! 
!             --  Skip past exponent, if present
! 
!             if S < SL
!               and then Src (S + 1) in 'e' | 'E'
!             then
!                Skip_Char (S);
!                --  For positive exponents the plus sign is optional, but we
!                --  can simply skip past both plus and minus.
! 
!                if Src (S + 1) in '+' | '-' then
!                   Skip_Char (S);
!                end if;
! 
!                --  Skip past the numeral part
! 
!                while S < SL
!                  and then Src (S + 1) in '0' .. '9' | '_'
!                loop
!                   Skip_Char (S);
!                end loop;
!             end if;
! 
!          --  For other nodes simply skip past a keyword/identifier
! 
!          when others =>
!             while S in SF .. SL - 1
!               and then Src (S + 1)
!                 in
!               '0' .. '9' | 'a' .. 'z' | 'A' .. 'Z' | '_'
!             loop
!                Skip_Char (S);
!             end loop;
!       end case;
  
        --  The following circuit attempts at crawling up the tree from the
        --  Last_Node, adjusting the Sloc value for any parentheses we know
        --  are present, similarly to what is done in First_Sloc.
  
        Node_Loop : loop
+          --  Include parentheses around the top node, except when they are
+          --  required by the syntax of the parent node.
+ 
+          exit Node_Loop when F = N
+            and then Paren_Required (N);
+ 
           Paren_Loop : for J in 1 .. Paren_Count (F) loop
  
              --  We don't look more than 12 characters after the current
*************** package body Errout is
*** 2000,2010 ****
              Search_Loop : for K in 1 .. 12 loop
                 exit Node_Loop when S = SL;
  
!                if Source_Text (SI) (S + 1) = ')' then
                    S := S + 1;
                    exit Search_Loop;
  
!                elsif Source_Text (SI) (S + 1) <= ' ' then
                    S := S + 1;
  
                 else
--- 2232,2242 ----
              Search_Loop : for K in 1 .. 12 loop
                 exit Node_Loop when S = SL;
  
!                if Src (S + 1) = ')' then
                    S := S + 1;
                    exit Search_Loop;
  
!                elsif Src (S + 1) <= ' ' then
                    S := S + 1;
  
                 else
*************** package body Errout is
*** 2021,2027 ****
        --  Remove any trailing space
  
        while S in SF + 1 .. SL
!         and then Source_Text (SI) (S) = ' '
        loop
           S := S - 1;
        end loop;
--- 2253,2259 ----
        --  Remove any trailing space
  
        while S in SF + 1 .. SL
!         and then Src (S) = ' '
        loop
           S := S - 1;
        end loop;
*************** package body Errout is
*** 2853,2868 ****
  
              E := Errors.Table (E).Next;
  
!             --  Skip deleted messages.
!             --  Also skip continuation messages, as they have already been
!             --  printed along the message they're attached to.
  
-             while E /= No_Error_Msg
-               and then not Errors.Table (E).Deleted
-               and then not Errors.Table (E).Msg_Cont
-             loop
-                Write_Char (',');
-                Output_JSON_Message (E);
                 E := Errors.Table (E).Next;
              end loop;
           end if;
--- 3085,3103 ----
  
              E := Errors.Table (E).Next;
  
!             while E /= No_Error_Msg loop
! 
!                --  Skip deleted messages.
!                --  Also skip continuation messages, as they have already been
!                --  printed along the message they're attached to.
! 
!                if not Errors.Table (E).Deleted
!                  and then not Errors.Table (E).Msg_Cont
!                then
!                   Write_Char (',');
!                   Output_JSON_Message (E);
!                end if;
  
                 E := Errors.Table (E).Next;
              end loop;
           end if;
*************** package body Errout is
*** 3296,3301 ****
--- 3531,3553 ----
        end if;
     end Output_Source_Line;
  
+    --------------------
+    -- Paren_Required --
+    --------------------
+ 
+    function Paren_Required (N : Node_Id) return Boolean is
+    begin
+       --  In a qualifed_expression the expression part needs to be enclosed in
+       --  parentheses.
+ 
+       if Nkind (Parent (N)) = N_Qualified_Expression then
+          return N = Expression (Parent (N));
+ 
+       else
+          return False;
+       end if;
+    end Paren_Required;
+ 
     -----------------------------
     -- Remove_Warning_Messages --
     -----------------------------
*************** package body Errout is
*** 3976,3982 ****
              P := P + 1;
  
           elsif P < Text'Last and then Text (P + 1) = C
!            and then Text (P) in 'a' .. 'z' | '*' | '$'
           then
              P := P + 2;
  
--- 4228,4235 ----
              P := P + 1;
  
           elsif P < Text'Last and then Text (P + 1) = C
!            and then Text (P) in 'a' .. 'z' | 'A' .. 'Z' |
!                                 '0' .. '9' | '*' | '$'
           then
              P := P + 2;
  
*************** package body Errout is
*** 4108,4128 ****
  
              when '[' =>
  
!                --  Switch the message from a warning to an error if the flag
!                --  -gnatwE is specified to treat run-time exception warnings
!                --  as errors.
  
!                if Is_Warning_Msg
!                  and then Warning_Mode = Treat_Run_Time_Warnings_As_Errors
!                then
!                   Is_Warning_Msg   := False;
!                   Is_Runtime_Raise := True;
!                end if;
  
-                if Is_Warning_Msg then
-                   Set_Msg_Str ("will be raised at run time");
                 else
!                   Set_Msg_Str ("would have been raised at run time");
                 end if;
  
              --   ']' (may be/might have been raised at run time)
--- 4361,4389 ----
  
              when '[' =>
  
!                --  "[]" (insertion of error code)
  
!                if P <= Text'Last and then Text (P) = ']' then
!                   P := P + 1;
!                   Set_Msg_Insertion_Code;
  
                 else
!                   --  Switch the message from a warning to an error if the flag
!                   --  -gnatwE is specified to treat run-time exception warnings
!                   --  as errors.
! 
!                   if Is_Warning_Msg
!                     and then Warning_Mode = Treat_Run_Time_Warnings_As_Errors
!                   then
!                      Is_Warning_Msg   := False;
!                      Is_Runtime_Raise := True;
!                   end if;
! 
!                   if Is_Warning_Msg then
!                      Set_Msg_Str ("will be raised at run time");
!                   else
!                      Set_Msg_Str ("would have been raised at run time");
!                   end if;
                 end if;
  
              --   ']' (may be/might have been raised at run time)
*************** package body Errout is
*** 4203,4208 ****
--- 4464,4478 ----
        end if;
     end Set_Qualification;
  
+    -------------------------------------
+    -- Should_Ignore_Pragma_SPARK_Mode --
+    -------------------------------------
+ 
+    function Should_Ignore_Pragma_SPARK_Mode return Boolean is
+    begin
+       return Get_Name_Table_Boolean3 (Name_SPARK_Mode);
+    end Should_Ignore_Pragma_SPARK_Mode;
+ 
     ------------------------
     -- Special_Msg_Delete --
     ------------------------
*************** package body Errout is
*** 4266,4272 ****
  
     procedure SPARK_Msg_N (Msg : String; N : Node_Or_Entity_Id) is
     begin
!       if SPARK_Mode /= Off then
           Error_Msg_N (Msg, N);
        end if;
     end SPARK_Msg_N;
--- 4536,4549 ----
  
     procedure SPARK_Msg_N (Msg : String; N : Node_Or_Entity_Id) is
     begin
!       --  If SPARK_Mode is Off, we do not report SPARK legality errors to give
!       --  the flexibility to opt out of SPARK checking completely. We do the
!       --  same if pragma Ignore_Pragma (SPARK_Mode) was specified, as a way
!       --  for tools to ignore SPARK checking even on SPARK code.
! 
!       if SPARK_Mode /= Off
!         and then not Should_Ignore_Pragma_SPARK_Mode
!       then
           Error_Msg_N (Msg, N);
        end if;
     end SPARK_Msg_N;
*************** package body Errout is
*** 4281,4287 ****
        E   : Node_Or_Entity_Id)
     is
     begin
!       if SPARK_Mode /= Off then
           Error_Msg_NE (Msg, N, E);
        end if;
     end SPARK_Msg_NE;
--- 4558,4566 ----
        E   : Node_Or_Entity_Id)
     is
     begin
!       if SPARK_Mode /= Off
!         and then not Should_Ignore_Pragma_SPARK_Mode
!       then
           Error_Msg_NE (Msg, N, E);
        end if;
     end SPARK_Msg_NE;
diff -Nrcpad gcc-13.2.0/gcc/ada/errout.ads gcc-14.1.0/gcc/ada/errout.ads
*** gcc-13.2.0/gcc/ada/errout.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/errout.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Errout is
*** 307,315 ****
     --    Insertion character ?x? ?.x? ?_x? (warning with switch)
     --      "x" is a (lower-case) warning switch character.
     --      Like ??, but if the flag Warn_Doc_Switch is True, adds the string
!    --      "[-gnatwx]", "[-gnatw.x]", or "[-gnatw_x]", at the end of the
!    --      warning message. For continuations, use this on each continuation
!    --      message.
  
     --    Insertion character ?*? (restriction warning)
     --      Like ?, but if the flag Warn_Doc_Switch is True, adds the string
--- 307,315 ----
     --    Insertion character ?x? ?.x? ?_x? (warning with switch)
     --      "x" is a (lower-case) warning switch character.
     --      Like ??, but if the flag Warn_Doc_Switch is True, adds the string
!    --      "[-gnatwx]", "[-gnatw.x]", "[-gnatw_x]", or "[-gnatyx]" (for style
!    --      messages), at the end of the warning message. For continuations, use
!    --      this on each continuation message.
  
     --    Insertion character ?*? (restriction warning)
     --      Like ?, but if the flag Warn_Doc_Switch is True, adds the string
*************** package Errout is
*** 404,409 ****
--- 404,413 ----
     --      This is like [ except that the insertion messages say may/might,
     --      instead of will/would.
  
+    --    Insertion sequence [] (Left and right brackets: error code)
+    --      The insertion sequence [] should be replaced by an error code, whose
+    --      value is given by Error_Msg_Code.
+ 
     --    Insertion sequence "(style)" (style message)
     --      This appears only at the start of the message (and not any of its
     --      continuations, if any), and indicates that the message is a style
*************** package Errout is
*** 454,459 ****
--- 458,468 ----
     Error_Msg_Uint_2 : Uint renames Err_Vars.Error_Msg_Uint_2;
     --  Uint values for ^ insertion characters in message
  
+    Error_Msg_Code_Digits : constant := Err_Vars.Error_Msg_Code_Digits;
+    Error_Msg_Code : Nat renames Err_Vars.Error_Msg_Code;
+    --  Nat value for [] insertion sequence in message, where a value of zero
+    --  indicates the absence of an error code.
+ 
     Error_Msg_Sloc : Source_Ptr renames Err_Vars.Error_Msg_Sloc;
     --  Source location for # insertion character in message
  
*************** package Errout is
*** 600,605 ****
--- 609,634 ----
     --  Returns the flag location of the error message with the given id E
  
     ------------------------
+    -- GNAT Explain Codes --
+    ------------------------
+ 
+    --  Explain codes are used in GNATprove to provide more information on
+    --  selected error/warning messages. The subset of those codes used in
+    --  the GNAT frontend are defined here.
+ 
+    GEC_None                                 : constant := 0000;
+    GEC_Volatile_At_Library_Level            : constant := 0001;
+    GEC_Type_Early_Call_Region               : constant := 0003;
+    GEC_Volatile_Non_Interfering_Context     : constant := 0004;
+    GEC_Required_Part_Of                     : constant := 0009;
+    GEC_Ownership_Moved_Object               : constant := 0010;
+    GEC_SPARK_Mode_On_Not_Library_Level      : constant := 0011;
+    GEC_Output_In_Function_Global_Or_Depends : constant := 0014;
+    GEC_Out_Parameter_In_Function            : constant := 0015;
+    GEC_Always_Terminates_On_Function        : constant := 0016;
+    GEC_Exceptional_Cases_On_Function        : constant := 0017;
+ 
+    ------------------------
     -- List Pragmas Table --
     ------------------------
  
diff -Nrcpad gcc-13.2.0/gcc/ada/erroutc.adb gcc-14.1.0/gcc/ada/erroutc.adb
*** gcc-13.2.0/gcc/ada/erroutc.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/erroutc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Erroutc is
*** 367,383 ****
  
     function Get_Warning_Option (Id : Error_Msg_Id) return String is
        Warn     : constant Boolean         := Errors.Table (Id).Warn;
        Warn_Chr : constant String (1 .. 2) := Errors.Table (Id).Warn_Chr;
     begin
!       if Warn and then Warn_Chr /= "  " and then Warn_Chr (1) /= '?' then
           if Warn_Chr = "$ " then
              return "-gnatel";
           elsif Warn_Chr (2) = ' ' then
              return "-gnatw" & Warn_Chr (1);
           else
              return "-gnatw" & Warn_Chr;
           end if;
        end if;
        return "";
     end Get_Warning_Option;
  
--- 367,391 ----
  
     function Get_Warning_Option (Id : Error_Msg_Id) return String is
        Warn     : constant Boolean         := Errors.Table (Id).Warn;
+       Style    : constant Boolean         := Errors.Table (Id).Style;
        Warn_Chr : constant String (1 .. 2) := Errors.Table (Id).Warn_Chr;
+ 
     begin
!       if (Warn or Style)
!         and then Warn_Chr /= "  "
!         and then Warn_Chr (1) /= '?'
!       then
           if Warn_Chr = "$ " then
              return "-gnatel";
+          elsif Style then
+             return "-gnaty" & Warn_Chr (1);
           elsif Warn_Chr (2) = ' ' then
              return "-gnatw" & Warn_Chr (1);
           else
              return "-gnatw" & Warn_Chr;
           end if;
        end if;
+ 
        return "";
     end Get_Warning_Option;
  
*************** package body Erroutc is
*** 387,396 ****
  
     function Get_Warning_Tag (Id : Error_Msg_Id) return String is
        Warn     : constant Boolean         := Errors.Table (Id).Warn;
        Warn_Chr : constant String (1 .. 2) := Errors.Table (Id).Warn_Chr;
        Option   : constant String          := Get_Warning_Option (Id);
     begin
!       if Warn then
           if Warn_Chr = "? " then
              return "[enabled by default]";
           elsif Warn_Chr = "* " then
--- 395,406 ----
  
     function Get_Warning_Tag (Id : Error_Msg_Id) return String is
        Warn     : constant Boolean         := Errors.Table (Id).Warn;
+       Style    : constant Boolean         := Errors.Table (Id).Style;
        Warn_Chr : constant String (1 .. 2) := Errors.Table (Id).Warn_Chr;
        Option   : constant String          := Get_Warning_Option (Id);
+ 
     begin
!       if Warn or Style then
           if Warn_Chr = "? " then
              return "[enabled by default]";
           elsif Warn_Chr = "* " then
*************** package body Erroutc is
*** 880,886 ****
              J := J + 1;
  
           elsif J < Msg'Last and then Msg (J + 1) = C
!            and then Msg (J) in 'a' .. 'z' | '*' | '$'
           then
              Message_Class := Msg (J) & " ";
              J := J + 2;
--- 890,896 ----
              J := J + 1;
  
           elsif J < Msg'Last and then Msg (J + 1) = C
!            and then Msg (J) in 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '*' | '$'
           then
              Message_Class := Msg (J) & " ";
              J := J + 2;
*************** package body Erroutc is
*** 949,954 ****
--- 959,965 ----
        end if;
  
        Has_Double_Exclam  := False;
+       Has_Error_Code     := False;
        Has_Insertion_Line := False;
  
        --  Loop through message looking for relevant insertion sequences
*************** package body Erroutc is
*** 964,982 ****
           --  Warning message (? or < insertion sequence)
  
           elsif Msg (J) = '?' or else Msg (J) = '<' then
!             Is_Warning_Msg := Msg (J) = '?' or else Error_Msg_Warn;
!             J := J + 1;
! 
!             if Is_Warning_Msg then
                 Warning_Msg_Char := Parse_Message_Class;
-             end if;
  
!             --  Bomb if untagged warning message. This code can be uncommented
!             --  for debugging when looking for untagged warning messages.
  
!             --  if Is_Warning_Msg and then Warning_Msg_Char = ' ' then
!             --     raise Program_Error;
!             --  end if;
  
           --  Unconditional message (! insertion)
  
--- 975,994 ----
           --  Warning message (? or < insertion sequence)
  
           elsif Msg (J) = '?' or else Msg (J) = '<' then
!             if Msg (J) = '?' or else Error_Msg_Warn then
!                Is_Warning_Msg := not Is_Style_Msg;
!                J := J + 1;
                 Warning_Msg_Char := Parse_Message_Class;
  
!                --  Bomb if untagged warning message. This code can be
!                --  uncommented for debugging when looking for untagged warning
!                --  messages.
  
!                --  pragma Assert (Warning_Msg_Char /= "  ");
! 
!             else
!                J := J + 1;
!             end if;
  
           --  Unconditional message (! insertion)
  
*************** package body Erroutc is
*** 1001,1006 ****
--- 1013,1027 ----
              Is_Serious_Error := False;
              J := J + 1;
  
+          --  Error code ([] insertion)
+ 
+          elsif Msg (J) = '['
+            and then J < Msg'Last
+            and then Msg (J + 1) = ']'
+          then
+             Has_Error_Code := True;
+             J := J + 2;
+ 
           else
              J := J + 1;
           end if;
*************** package body Erroutc is
*** 1145,1150 ****
--- 1166,1207 ----
        end if;
     end Set_Msg_Char;
  
+    ----------------------------
+    -- Set_Msg_Insertion_Code --
+    ----------------------------
+ 
+    procedure Set_Msg_Insertion_Code is
+       H : constant array (Nat range 0 .. 9) of Character := "0123456789";
+       P10 : constant array (Natural range 0 .. 3) of Nat :=
+         (10 ** 0,
+          10 ** 1,
+          10 ** 2,
+          10 ** 3);
+ 
+       Code_Len : constant Natural :=
+         (case Error_Msg_Code is
+            when    0         => 0,
+            when    1 ..    9 => 1,
+            when   10 ..   99 => 2,
+            when  100 ..  999 => 3,
+            when 1000 .. 9999 => 4);
+       Code_Rest  : Nat := Error_Msg_Code;
+       Code_Digit : Nat;
+ 
+    begin
+       Set_Msg_Char ('E');
+ 
+       for J in 1 .. Error_Msg_Code_Digits - Code_Len loop
+          Set_Msg_Char ('0');
+       end loop;
+ 
+       for J in 1 .. Code_Len loop
+          Code_Digit := Code_Rest / P10 (Code_Len - J);
+          Set_Msg_Char (H (Code_Digit));
+          Code_Rest := Code_Rest - Code_Digit * P10 (Code_Len - J);
+       end loop;
+    end Set_Msg_Insertion_Code;
+ 
     ---------------------------------
     -- Set_Msg_Insertion_File_Name --
     ---------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/erroutc.ads gcc-14.1.0/gcc/ada/erroutc.ads
*** gcc-13.2.0/gcc/ada/erroutc.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/erroutc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Erroutc is
*** 51,56 ****
--- 51,60 ----
     --  Set true to indicate that the current message contains the insertion
     --  sequence !! (force warnings even in non-main unit source files).
  
+    Has_Error_Code : Boolean := False;
+    --  Set true to indicate that the current message contains the insertion
+    --  sequence [] (insert error code).
+ 
     Has_Insertion_Line : Boolean := False;
     --  Set True to indicate that the current message contains the insertion
     --  character # (insert line number reference).
*************** package Erroutc is
*** 547,552 ****
--- 551,559 ----
     --    Has_Double_Exclam is set True if the message contains the sequence !!
     --    and is otherwise set False.
     --
+    --    Has_Error_Code is set True if the message contains the sequence []
+    --    and is otherwise set False.
+    --
     --    Has_Insertion_Line is set True if the message contains the character #
     --    and is otherwise set False.
     --
*************** package Erroutc is
*** 581,586 ****
--- 588,596 ----
     --  check for special insertion characters (they are just treated as text
     --  characters if they occur).
  
+    procedure Set_Msg_Insertion_Code;
+    --  Handle error code insertion ([] insertion character)
+ 
     procedure Set_Msg_Insertion_File_Name;
     --  Handle file name insertion (left brace insertion character)
  
diff -Nrcpad gcc-13.2.0/gcc/ada/errutil.adb gcc-14.1.0/gcc/ada/errutil.adb
*** gcc-13.2.0/gcc/ada/errutil.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/errutil.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/errutil.ads gcc-14.1.0/gcc/ada/errutil.ads
*** gcc-13.2.0/gcc/ada/errutil.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/errutil.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/eval_fat.adb gcc-14.1.0/gcc/ada/eval_fat.adb
*** gcc-13.2.0/gcc/ada/eval_fat.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/eval_fat.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/eval_fat.ads gcc-14.1.0/gcc/ada/eval_fat.ads
*** gcc-13.2.0/gcc/ada/eval_fat.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/eval_fat.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exit.c gcc-14.1.0/gcc/ada/exit.c
*** gcc-13.2.0/gcc/ada/exit.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exit.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_aggr.adb gcc-14.1.0/gcc/ada/exp_aggr.adb
*** gcc-13.2.0/gcc/ada/exp_aggr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_aggr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Sem_Ch13;       use Sem_Ch13;
*** 61,68 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Mech;       use Sem_Mech;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
! use Sem_Util.Storage_Model_Support;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
--- 61,69 ----
  with Sem_Eval;       use Sem_Eval;
  with Sem_Mech;       use Sem_Mech;
  with Sem_Res;        use Sem_Res;
+ with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
!                      use Sem_Util.Storage_Model_Support;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
*************** package body Exp_Aggr is
*** 78,89 ****
  
     function Build_Assignment_With_Temporary
       (Target : Node_Id;
!       Typ    : Node_Id;
        Source : Node_Id) return List_Id;
     --  Returns a list of actions to assign Source to Target of type Typ using
!    --  an extra temporary:
!    --   Tmp := Source;
!    --   Target := Tmp;
  
     type Case_Bounds is record
       Choice_Lo   : Node_Id;
--- 79,88 ----
  
     function Build_Assignment_With_Temporary
       (Target : Node_Id;
!       Typ    : Entity_Id;
        Source : Node_Id) return List_Id;
     --  Returns a list of actions to assign Source to Target of type Typ using
!    --  an extra temporary, which can potentially be large.
  
     type Case_Bounds is record
       Choice_Lo   : Node_Id;
*************** package body Exp_Aggr is
*** 107,112 ****
--- 106,121 ----
     --  N is an aggregate (record or array). Checks the presence of default
     --  initialization (<>) in any component (Ada 2005: AI-287).
  
+    procedure Initialize_Component
+      (N         : Node_Id;
+       Comp      : Node_Id;
+       Comp_Typ  : Node_Id;
+       Init_Expr : Node_Id;
+       Stmts     : List_Id);
+     --  Perform the initialization of component Comp with expected type
+     --  Comp_Typ of aggregate N. Init_Expr denotes the initialization
+     --  expression of the component. All generated code is added to Stmts.
+ 
     function Is_CCG_Supported_Aggregate (N : Node_Id) return Boolean;
     --  Return True if aggregate N is located in a context supported by the
     --  CCG backend; False otherwise.
*************** package body Exp_Aggr is
*** 153,189 ****
     --  Returns the number of discrete choices (not including the others choice
     --  if present) contained in (sub-)aggregate N.
  
-    procedure Process_Transient_Component
-      (Loc        : Source_Ptr;
-       Comp_Typ   : Entity_Id;
-       Init_Expr  : Node_Id;
-       Fin_Call   : out Node_Id;
-       Hook_Clear : out Node_Id;
-       Aggr       : Node_Id := Empty;
-       Stmts      : List_Id := No_List);
-    --  Subsidiary to the expansion of array and record aggregates. Generate
-    --  part of the necessary code to finalize a transient component. Comp_Typ
-    --  is the component type. Init_Expr is the initialization expression of the
-    --  component which is always a function call. Fin_Call is the finalization
-    --  call used to clean up the transient function result. Hook_Clear is the
-    --  hook reset statement. Aggr and Stmts both control the placement of the
-    --  generated code. Aggr is the related aggregate. If present, all code is
-    --  inserted prior to Aggr using Insert_Action. Stmts is the initialization
-    --  statements of the component. If present, all code is added to Stmts.
- 
-    procedure Process_Transient_Component_Completion
-      (Loc        : Source_Ptr;
-       Aggr       : Node_Id;
-       Fin_Call   : Node_Id;
-       Hook_Clear : Node_Id;
-       Stmts      : List_Id);
-    --  Subsidiary to the expansion of array and record aggregates. Generate
-    --  part of the necessary code to finalize a transient component. Aggr is
-    --  the related aggregate. Fin_Clear is the finalization call used to clean
-    --  up the transient component. Hook_Clear is the hook reset statement.
-    --  Stmts is the initialization statement list for the component. All
-    --  generated code is added to Stmts.
- 
     procedure Sort_Case_Table (Case_Table : in out Case_Table_Type);
     --  Sort the Case Table using the Lower Bound of each Choice as the key.
     --  A simple insertion sort is used since the number of choices in a case
--- 162,167 ----
*************** package body Exp_Aggr is
*** 195,202 ****
     ------------------------------------------------------
  
     function Is_Build_In_Place_Aggregate_Return (N : Node_Id) return Boolean;
!    --  True if N is an aggregate (possibly qualified or converted) that is
!    --  being returned from a build-in-place function.
  
     function Build_Record_Aggr_Code
       (N   : Node_Id;
--- 173,183 ----
     ------------------------------------------------------
  
     function Is_Build_In_Place_Aggregate_Return (N : Node_Id) return Boolean;
!    --  True if N is an aggregate (possibly qualified or a dependent expression
!    --  of a conditional expression, and possibly recursively so) that is being
!    --  returned from a build-in-place function. Such qualified and conditional
!    --  expressions are transparent for this purpose because an enclosing return
!    --  is propagated resp. distributed into these expressions by the expander.
  
     function Build_Record_Aggr_Code
       (N   : Node_Id;
*************** package body Exp_Aggr is
*** 328,334 ****
     --  N is the N_Aggregate node to be expanded.
  
     function Is_Two_Dim_Packed_Array (Typ : Entity_Id) return Boolean;
!    --  For two-dimensional packed aggregates with constant bounds and constant
     --  components, it is preferable to pack the inner aggregates because the
     --  whole matrix can then be presented to the back-end as a one-dimensional
     --  list of literals. This is much more efficient than expanding into single
--- 309,315 ----
     --  N is the N_Aggregate node to be expanded.
  
     function Is_Two_Dim_Packed_Array (Typ : Entity_Id) return Boolean;
!    --  For 2D packed array aggregates with constant bounds and constant scalar
     --  components, it is preferable to pack the inner aggregates because the
     --  whole matrix can then be presented to the back-end as a one-dimensional
     --  list of literals. This is much more efficient than expanding into single
*************** package body Exp_Aggr is
*** 964,970 ****
        --  If component is limited, aggregate must be expanded because each
        --  component assignment must be built in place.
  
!       if Is_Limited_View (Component_Type (Typ)) then
           return False;
        end if;
  
--- 945,951 ----
        --  If component is limited, aggregate must be expanded because each
        --  component assignment must be built in place.
  
!       if Is_Inherently_Limited_Type (Component_Type (Typ)) then
           return False;
        end if;
  
*************** package body Exp_Aggr is
*** 1062,1067 ****
--- 1043,1049 ----
        Indexes     : List_Id := No_List) return List_Id
     is
        Loc          : constant Source_Ptr := Sloc (N);
+       Typ          : constant Entity_Id  := Etype (N);
        Index_Base   : constant Entity_Id  := Base_Type (Etype (Index));
        Index_Base_L : constant Node_Id := Type_Low_Bound (Index_Base);
        Index_Base_H : constant Node_Id := Type_High_Bound (Index_Base);
*************** package body Exp_Aggr is
*** 1082,1097 ****
  
        function Gen_Assign
          (Ind     : Node_Id;
!          Expr    : Node_Id;
!          In_Loop : Boolean := False) return List_Id;
        --  Ind must be a side-effect-free expression. If the input aggregate N
        --  to Build_Loop contains no subaggregates, then this function returns
        --  the assignment statement:
        --
        --     Into (Indexes, Ind) := Expr;
        --
!       --  Otherwise we call Build_Code recursively. Flag In_Loop should be set
!       --  when the assignment appears within a generated loop.
        --
        --  Ada 2005 (AI-287): In case of default initialized component, Expr
        --  is empty and we generate a call to the corresponding IP subprogram.
--- 1064,1077 ----
  
        function Gen_Assign
          (Ind     : Node_Id;
!          Expr    : Node_Id) return List_Id;
        --  Ind must be a side-effect-free expression. If the input aggregate N
        --  to Build_Loop contains no subaggregates, then this function returns
        --  the assignment statement:
        --
        --     Into (Indexes, Ind) := Expr;
        --
!       --  Otherwise we call Build_Code recursively.
        --
        --  Ada 2005 (AI-287): In case of default initialized component, Expr
        --  is empty and we generate a call to the corresponding IP subprogram.
*************** package body Exp_Aggr is
*** 1311,1345 ****
  
        function Gen_Assign
          (Ind     : Node_Id;
!          Expr    : Node_Id;
!          In_Loop : Boolean := False) return List_Id
         is
           function Add_Loop_Actions (Lis : List_Id) return List_Id;
           --  Collect insert_actions generated in the construction of a loop,
           --  and prepend them to the sequence of assignments to complete the
           --  eventual body of the loop.
  
-          procedure Initialize_Array_Component
-            (Arr_Comp  : Node_Id;
-             Comp_Typ  : Node_Id;
-             Init_Expr : Node_Id;
-             Stmts     : List_Id);
-          --  Perform the initialization of array component Arr_Comp with
-          --  expected type Comp_Typ. Init_Expr denotes the initialization
-          --  expression of the array component. All generated code is added
-          --  to list Stmts.
- 
-          procedure Initialize_Ctrl_Array_Component
-            (Arr_Comp  : Node_Id;
-             Comp_Typ  : Entity_Id;
-             Init_Expr : Node_Id;
-             Stmts     : List_Id);
-          --  Perform the initialization of array component Arr_Comp when its
-          --  expected type Comp_Typ needs finalization actions. Init_Expr is
-          --  the initialization expression of the array component. All hook-
-          --  related declarations are inserted prior to aggregate N. Remaining
-          --  code is added to list Stmts.
- 
           ----------------------
           -- Add_Loop_Actions --
           ----------------------
--- 1291,1303 ----
  
        function Gen_Assign
          (Ind     : Node_Id;
!          Expr    : Node_Id) return List_Id
         is
           function Add_Loop_Actions (Lis : List_Id) return List_Id;
           --  Collect insert_actions generated in the construction of a loop,
           --  and prepend them to the sequence of assignments to complete the
           --  eventual body of the loop.
  
           ----------------------
           -- Add_Loop_Actions --
           ----------------------
*************** package body Exp_Aggr is
*** 1367,1655 ****
              end if;
           end Add_Loop_Actions;
  
-          --------------------------------
-          -- Initialize_Array_Component --
-          --------------------------------
- 
-          procedure Initialize_Array_Component
-            (Arr_Comp  : Node_Id;
-             Comp_Typ  : Node_Id;
-             Init_Expr : Node_Id;
-             Stmts     : List_Id)
-          is
-             Exceptions_OK : constant Boolean :=
-                               not Restriction_Active
-                                     (No_Exception_Propagation);
- 
-             Finalization_OK : constant Boolean :=
-                                 Present (Comp_Typ)
-                                   and then Needs_Finalization (Comp_Typ);
- 
-             Full_Typ  : constant Entity_Id := Underlying_Type (Comp_Typ);
-             Adj_Call  : Node_Id;
-             Blk_Stmts : List_Id;
-             Init_Stmt : Node_Id;
- 
-          begin
-             --  Protect the initialization statements from aborts. Generate:
- 
-             --    Abort_Defer;
- 
-             if Finalization_OK and Abort_Allowed then
-                if Exceptions_OK then
-                   Blk_Stmts := New_List;
-                else
-                   Blk_Stmts := Stmts;
-                end if;
- 
-                Append_To (Blk_Stmts, Build_Runtime_Call (Loc, RE_Abort_Defer));
- 
-             --  Otherwise aborts are not allowed. All generated code is added
-             --  directly to the input list.
- 
-             else
-                Blk_Stmts := Stmts;
-             end if;
- 
-             --  Initialize the array element. Generate:
- 
-             --    Arr_Comp := Init_Expr;
- 
-             --  Note that the initialization expression is replicated because
-             --  it has to be reevaluated within a generated loop.
- 
-             Init_Stmt :=
-               Make_OK_Assignment_Statement (Loc,
-                 Name       => New_Copy_Tree (Arr_Comp),
-                 Expression => New_Copy_Tree (Init_Expr));
-             Set_No_Ctrl_Actions (Init_Stmt);
- 
-             --  If this is an aggregate for an array of arrays, each
-             --  subaggregate will be expanded as well, and even with
-             --  No_Ctrl_Actions the assignments of inner components will
-             --  require attachment in their assignments to temporaries. These
-             --  temporaries must be finalized for each subaggregate. Generate:
- 
-             --    begin
-             --       Arr_Comp := Init_Expr;
-             --    end;
- 
-             if Finalization_OK and then Is_Array_Type (Comp_Typ) then
-                Init_Stmt :=
-                  Make_Block_Statement (Loc,
-                    Handled_Statement_Sequence =>
-                      Make_Handled_Sequence_Of_Statements (Loc,
-                        Statements => New_List (Init_Stmt)));
-             end if;
- 
-             Append_To (Blk_Stmts, Init_Stmt);
- 
-             --  Adjust the tag due to a possible view conversion. Generate:
- 
-             --    Arr_Comp._tag := Full_TypP;
- 
-             if Tagged_Type_Expansion
-               and then Present (Comp_Typ)
-               and then Is_Tagged_Type (Comp_Typ)
-             then
-                Append_To (Blk_Stmts,
-                  Make_OK_Assignment_Statement (Loc,
-                    Name       =>
-                      Make_Selected_Component (Loc,
-                        Prefix        => New_Copy_Tree (Arr_Comp),
-                        Selector_Name =>
-                          New_Occurrence_Of
-                            (First_Tag_Component (Full_Typ), Loc)),
- 
-                    Expression =>
-                      Unchecked_Convert_To (RTE (RE_Tag),
-                        New_Occurrence_Of
-                          (Node (First_Elmt (Access_Disp_Table (Full_Typ))),
-                           Loc))));
-             end if;
- 
-             --  Adjust the array component. Controlled subaggregates are not
-             --  considered because each of their individual elements will
-             --  receive an adjustment of its own. Generate:
- 
-             --    [Deep_]Adjust (Arr_Comp);
- 
-             if Finalization_OK
-               and then not Is_Limited_Type (Comp_Typ)
-               and then not Is_Build_In_Place_Function_Call (Init_Expr)
-               and then not
-                 (Is_Array_Type (Comp_Typ)
-                   and then Is_Controlled (Component_Type (Comp_Typ))
-                   and then Nkind (Expr) = N_Aggregate)
-             then
-                Adj_Call :=
-                  Make_Adjust_Call
-                    (Obj_Ref => New_Copy_Tree (Arr_Comp),
-                     Typ     => Comp_Typ);
- 
-                --  Guard against a missing [Deep_]Adjust when the component
-                --  type was not frozen properly.
- 
-                if Present (Adj_Call) then
-                   Append_To (Blk_Stmts, Adj_Call);
-                end if;
-             end if;
- 
-             --  Complete the protection of the initialization statements
- 
-             if Finalization_OK and Abort_Allowed then
- 
-                --  Wrap the initialization statements in a block to catch a
-                --  potential exception. Generate:
- 
-                --    begin
-                --       Abort_Defer;
-                --       Arr_Comp := Init_Expr;
-                --       Arr_Comp._tag := Full_TypP;
-                --       [Deep_]Adjust (Arr_Comp);
-                --    at end
-                --       Abort_Undefer_Direct;
-                --    end;
- 
-                if Exceptions_OK then
-                   Append_To (Stmts,
-                     Build_Abort_Undefer_Block (Loc,
-                       Stmts   => Blk_Stmts,
-                       Context => N));
- 
-                --  Otherwise exceptions are not propagated. Generate:
- 
-                --    Abort_Defer;
-                --    Arr_Comp := Init_Expr;
-                --    Arr_Comp._tag := Full_TypP;
-                --    [Deep_]Adjust (Arr_Comp);
-                --    Abort_Undefer;
- 
-                else
-                   Append_To (Blk_Stmts,
-                     Build_Runtime_Call (Loc, RE_Abort_Undefer));
-                end if;
-             end if;
-          end Initialize_Array_Component;
- 
-          -------------------------------------
-          -- Initialize_Ctrl_Array_Component --
-          -------------------------------------
- 
-          procedure Initialize_Ctrl_Array_Component
-            (Arr_Comp  : Node_Id;
-             Comp_Typ  : Entity_Id;
-             Init_Expr : Node_Id;
-             Stmts     : List_Id)
-          is
-             Act_Aggr   : Node_Id;
-             Act_Stmts  : List_Id;
-             Expr       : Node_Id;
-             Fin_Call   : Node_Id;
-             Hook_Clear : Node_Id;
- 
-             In_Place_Expansion : Boolean;
-             --  Flag set when a nonlimited controlled function call requires
-             --  in-place expansion.
- 
-          begin
-             --  Duplicate the initialization expression in case the context is
-             --  a multi choice list or an "others" choice which plugs various
-             --  holes in the aggregate. As a result the expression is no longer
-             --  shared between the various components and is reevaluated for
-             --  each such component.
- 
-             Expr := New_Copy_Tree (Init_Expr);
-             Set_Parent (Expr, Parent (Init_Expr));
- 
-             --  Perform a preliminary analysis and resolution to determine what
-             --  the initialization expression denotes. An unanalyzed function
-             --  call may appear as an identifier or an indexed component.
- 
-             if Nkind (Expr) in N_Function_Call
-                              | N_Identifier
-                              | N_Indexed_Component
-               and then not Analyzed (Expr)
-             then
-                Preanalyze_And_Resolve (Expr, Comp_Typ);
-             end if;
- 
-             In_Place_Expansion :=
-               Nkind (Expr) = N_Function_Call
-                 and then not Is_Build_In_Place_Result_Type (Comp_Typ);
- 
-             --  The initialization expression is a controlled function call.
-             --  Perform in-place removal of side effects to avoid creating a
-             --  transient scope, which leads to premature finalization.
- 
-             --  This in-place expansion is not performed for limited transient
-             --  objects, because the initialization is already done in place.
- 
-             if In_Place_Expansion then
- 
-                --  Suppress the removal of side effects by general analysis,
-                --  because this behavior is emulated here. This avoids the
-                --  generation of a transient scope, which leads to out-of-order
-                --  adjustment and finalization.
- 
-                Set_No_Side_Effect_Removal (Expr);
- 
-                --  When the transient component initialization is related to a
-                --  range or an "others", keep all generated statements within
-                --  the enclosing loop. This way the controlled function call
-                --  will be evaluated at each iteration, and its result will be
-                --  finalized at the end of each iteration.
- 
-                if In_Loop then
-                   Act_Aggr  := Empty;
-                   Act_Stmts := Stmts;
- 
-                --  Otherwise this is a single component initialization. Hook-
-                --  related statements are inserted prior to the aggregate.
- 
-                else
-                   Act_Aggr  := N;
-                   Act_Stmts := No_List;
-                end if;
- 
-                --  Install all hook-related declarations and prepare the clean
-                --  up statements.
- 
-                Process_Transient_Component
-                  (Loc        => Loc,
-                   Comp_Typ   => Comp_Typ,
-                   Init_Expr  => Expr,
-                   Fin_Call   => Fin_Call,
-                   Hook_Clear => Hook_Clear,
-                   Aggr       => Act_Aggr,
-                   Stmts      => Act_Stmts);
-             end if;
- 
-             --  Use the noncontrolled component initialization circuitry to
-             --  assign the result of the function call to the array element.
-             --  This also performs subaggregate wrapping, tag adjustment, and
-             --  [deep] adjustment of the array element.
- 
-             Initialize_Array_Component
-               (Arr_Comp  => Arr_Comp,
-                Comp_Typ  => Comp_Typ,
-                Init_Expr => Expr,
-                Stmts     => Stmts);
- 
-             --  At this point the array element is fully initialized. Complete
-             --  the processing of the controlled array component by finalizing
-             --  the transient function result.
- 
-             if In_Place_Expansion then
-                Process_Transient_Component_Completion
-                  (Loc        => Loc,
-                   Aggr       => N,
-                   Fin_Call   => Fin_Call,
-                   Hook_Clear => Hook_Clear,
-                   Stmts      => Stmts);
-             end if;
-          end Initialize_Ctrl_Array_Component;
- 
           --  Local variables
  
           Stmts : constant List_Id := New_List;
--- 1325,1330 ----
*************** package body Exp_Aggr is
*** 1696,1708 ****
           --  Ada 2005 (AI-287): In case of default initialized component, Expr
           --  is not present (and therefore we also initialize Expr_Q to empty).
  
!          if No (Expr) then
!             Expr_Q := Empty;
!          elsif Nkind (Expr) = N_Qualified_Expression then
!             Expr_Q := Expression (Expr);
!          else
!             Expr_Q := Expr;
!          end if;
  
           if Present (Etype (N)) and then Etype (N) /= Any_Composite then
              Comp_Typ := Component_Type (Etype (N));
--- 1371,1377 ----
           --  Ada 2005 (AI-287): In case of default initialized component, Expr
           --  is not present (and therefore we also initialize Expr_Q to empty).
  
!          Expr_Q := Unqualify (Expr);
  
           if Present (Etype (N)) and then Etype (N) /= Any_Composite then
              Comp_Typ := Component_Type (Etype (N));
*************** package body Exp_Aggr is
*** 1801,1857 ****
           end if;
  
           if Present (Expr) then
! 
!             --  Handle an initialization expression of a controlled type in
!             --  case it denotes a function call. In general such a scenario
!             --  will produce a transient scope, but this will lead to wrong
!             --  order of initialization, adjustment, and finalization in the
!             --  context of aggregates.
! 
!             --    Target (1) := Ctrl_Func_Call;
! 
!             --    begin                                  --  scope
!             --       Trans_Obj : ... := Ctrl_Func_Call;  --  object
!             --       Target (1) := Trans_Obj;
!             --       Finalize (Trans_Obj);
!             --    end;
!             --    Target (1)._tag := ...;
!             --    Adjust (Target (1));
! 
!             --  In the example above, the call to Finalize occurs too early
!             --  and as a result it may leave the array component in a bad
!             --  state. Finalization of the transient object should really
!             --  happen after adjustment.
! 
!             --  To avoid this scenario, perform in-place side-effect removal
!             --  of the function call. This eliminates the transient property
!             --  of the function result and ensures correct order of actions.
! 
!             --    Res : ... := Ctrl_Func_Call;
!             --    Target (1) := Res;
!             --    Target (1)._tag := ...;
!             --    Adjust (Target (1));
!             --    Finalize (Res);
! 
!             if Present (Comp_Typ)
!               and then Needs_Finalization (Comp_Typ)
!               and then Nkind (Expr) /= N_Aggregate
!             then
!                Initialize_Ctrl_Array_Component
!                  (Arr_Comp  => Indexed_Comp,
!                   Comp_Typ  => Comp_Typ,
!                   Init_Expr => Expr,
!                   Stmts     => Stmts);
! 
!             --  Otherwise perform simple component initialization
! 
!             else
!                Initialize_Array_Component
!                  (Arr_Comp  => Indexed_Comp,
!                   Comp_Typ  => Comp_Typ,
!                   Init_Expr => Expr,
!                   Stmts     => Stmts);
!             end if;
  
           --  Ada 2005 (AI-287): In case of default initialized component, call
           --  the initialization subprogram associated with the component type.
--- 1470,1481 ----
           end if;
  
           if Present (Expr) then
!             Initialize_Component
!               (N          => N,
!                Comp       => Indexed_Comp,
!                Comp_Typ   => Comp_Typ,
!                Init_Expr  => Expr,
!                Stmts      => Stmts);
  
           --  Ada 2005 (AI-287): In case of default initialized component, call
           --  the initialization subprogram associated with the component type.
*************** package body Exp_Aggr is
*** 2059,2064 ****
--- 1683,1689 ----
              Set_Etype (L_J, Any_Type);
  
              Mutate_Ekind (L_J, E_Variable);
+             Set_Is_Not_Self_Hidden (L_J);
              Set_Scope (L_J, Ent);
           else
              L_J := Make_Temporary (Loc, 'J', L);
*************** package body Exp_Aggr is
*** 2102,2109 ****
  
           --  Construct the statements to execute in the loop body
  
!          L_Body :=
!            Gen_Assign (New_Occurrence_Of (L_J, Loc), Expr, In_Loop => True);
  
           --  Construct the final loop
  
--- 1727,1733 ----
  
           --  Construct the statements to execute in the loop body
  
!          L_Body := Gen_Assign (New_Occurrence_Of (L_J, Loc), Expr);
  
           --  Construct the final loop
  
*************** package body Exp_Aggr is
*** 2216,2222 ****
           Append_To (W_Body, W_Increment);
  
           Append_List_To (W_Body,
!            Gen_Assign (New_Occurrence_Of (W_J, Loc), Expr, In_Loop => True));
  
           --  Construct the final loop
  
--- 1840,1846 ----
           Append_To (W_Body, W_Increment);
  
           Append_List_To (W_Body,
!            Gen_Assign (New_Occurrence_Of (W_J, Loc), Expr));
  
           --  Construct the final loop
  
*************** package body Exp_Aggr is
*** 2234,2254 ****
        -- Get_Assoc_Expr --
        --------------------
  
        function Get_Assoc_Expr (Assoc : Node_Id) return Node_Id is
           Typ : constant Entity_Id := Base_Type (Etype (N));
  
        begin
           if Box_Present (Assoc) then
              if Present (Default_Aspect_Component_Value (Typ)) then
!                return Default_Aspect_Component_Value (Typ);
              elsif Needs_Simple_Initialization (Ctype) then
!                return Get_Simple_Init_Val (Ctype, N);
              else
                 return Empty;
              end if;
  
           else
!             return Expression (Assoc);
           end if;
        end Get_Assoc_Expr;
  
--- 1858,1889 ----
        -- Get_Assoc_Expr --
        --------------------
  
+       --  Duplicate the expression in case we will be generating several loops.
+       --  As a result the expression is no longer shared between the loops and
+       --  is reevaluated for each such loop.
+ 
        function Get_Assoc_Expr (Assoc : Node_Id) return Node_Id is
           Typ : constant Entity_Id := Base_Type (Etype (N));
  
        begin
           if Box_Present (Assoc) then
              if Present (Default_Aspect_Component_Value (Typ)) then
!                return New_Copy_Tree (Default_Aspect_Component_Value (Typ));
              elsif Needs_Simple_Initialization (Ctype) then
!                return New_Copy_Tree (Get_Simple_Init_Val (Ctype, N));
              else
                 return Empty;
              end if;
  
           else
!             --  The expression will be passed to Gen_Loop, which immediately
!             --  calls Parent_Kind on it, so we set Parent when it matters.
! 
!             return
!                Expr : constant Node_Id := New_Copy_Tree (Expression (Assoc))
!             do
!                Copy_Parent (To => Expr, From => Expression (Assoc));
!             end return;
           end if;
        end Get_Assoc_Expr;
  
*************** package body Exp_Aggr is
*** 2301,2312 ****
  
        Aggr_Low  : constant Node_Id := Duplicate_Subexpr_No_Checks (Aggr_L);
        Aggr_High : constant Node_Id := Duplicate_Subexpr_No_Checks (Aggr_H);
!       --  After Duplicate_Subexpr these are side-effect free
  
        Assoc  : Node_Id;
        Choice : Node_Id;
        Expr   : Node_Id;
-       Typ    : Entity_Id;
  
        Bounds : Range_Nodes;
        Low    : Node_Id renames Bounds.First;
--- 1936,1946 ----
  
        Aggr_Low  : constant Node_Id := Duplicate_Subexpr_No_Checks (Aggr_L);
        Aggr_High : constant Node_Id := Duplicate_Subexpr_No_Checks (Aggr_H);
!       --  After Duplicate_Subexpr these are side-effect-free
  
        Assoc  : Node_Id;
        Choice : Node_Id;
        Expr   : Node_Id;
  
        Bounds : Range_Nodes;
        Low    : Node_Id renames Bounds.First;
*************** package body Exp_Aggr is
*** 2324,2335 ****
     --  Start of processing for Build_Array_Aggr_Code
  
     begin
!       --  First before we start, a special case. if we have a bit packed
        --  array represented as a modular type, then clear the value to
        --  zero first, to ensure that unused bits are properly cleared.
  
-       Typ := Etype (N);
- 
        if Present (Typ)
          and then Is_Bit_Packed_Array (Typ)
          and then Is_Modular_Integer_Type (Packed_Array_Impl_Type (Typ))
--- 1958,1967 ----
     --  Start of processing for Build_Array_Aggr_Code
  
     begin
!       --  First before we start, a special case. If we have a bit packed
        --  array represented as a modular type, then clear the value to
        --  zero first, to ensure that unused bits are properly cleared.
  
        if Present (Typ)
          and then Is_Bit_Packed_Array (Typ)
          and then Is_Modular_Integer_Type (Packed_Array_Impl_Type (Typ))
*************** package body Exp_Aggr is
*** 2360,2366 ****
  
        --  Skip this if no component associations
  
!       if No (Expressions (N)) then
  
           --  STEP 1 (a): Sort the discrete choices
  
--- 1992,2001 ----
  
        --  Skip this if no component associations
  
!       if Is_Null_Aggregate (N) then
!          null;
! 
!       elsif No (Expressions (N)) then
  
           --  STEP 1 (a): Sort the discrete choices
  
*************** package body Exp_Aggr is
*** 2415,2422 ****
  
           if Present (Others_Assoc) then
              declare
!                First    : Boolean := True;
!                Dup_Expr : Node_Id;
  
              begin
                 for J in 0 .. Nb_Choices loop
--- 2050,2056 ----
  
           if Present (Others_Assoc) then
              declare
!                First : Boolean := True;
  
              begin
                 for J in 0 .. Nb_Choices loop
*************** package body Exp_Aggr is
*** 2450,2472 ****
                       end if;
                    end if;
  
!                   if First
!                     or else not Empty_Range (Low, High)
!                   then
                       First := False;
- 
-                      --  Duplicate the expression in case we will be generating
-                      --  several loops. As a result the expression is no longer
-                      --  shared between the loops and is reevaluated for each
-                      --  such loop.
- 
-                      Expr := Get_Assoc_Expr (Others_Assoc);
-                      Dup_Expr := New_Copy_Tree (Expr);
-                      Copy_Parent (To => Dup_Expr, From => Expr);
- 
                       Set_Loop_Actions (Others_Assoc, New_List);
!                      Append_List
!                        (Gen_Loop (Low, High, Dup_Expr), To => New_Code);
                    end if;
                 end loop;
              end;
--- 2084,2094 ----
                       end if;
                    end if;
  
!                   if First or else not Empty_Range (Low, High) then
                       First := False;
                       Set_Loop_Actions (Others_Assoc, New_List);
!                      Expr := Get_Assoc_Expr (Others_Assoc);
!                      Append_List (Gen_Loop (Low, High, Expr), To => New_Code);
                    end if;
                 end loop;
              end;
*************** package body Exp_Aggr is
*** 2524,2556 ****
  
     function Build_Assignment_With_Temporary
       (Target : Node_Id;
!       Typ    : Node_Id;
        Source : Node_Id) return List_Id
     is
        Loc : constant Source_Ptr := Sloc (Source);
  
        Aggr_Code : List_Id;
        Tmp       : Entity_Id;
-       Tmp_Decl  : Node_Id;
  
     begin
!       Tmp := Make_Temporary (Loc, 'A', Source);
!       Tmp_Decl :=
!         Make_Object_Declaration (Loc,
!           Defining_Identifier => Tmp,
!           Object_Definition   => New_Occurrence_Of (Typ, Loc));
!       Set_No_Initialization (Tmp_Decl, True);
  
-       Aggr_Code := New_List (Tmp_Decl);
        Append_To (Aggr_Code,
          Make_OK_Assignment_Statement (Loc,
!           Name       => New_Occurrence_Of (Tmp, Loc),
            Expression => Source));
  
        Append_To (Aggr_Code,
          Make_OK_Assignment_Statement (Loc,
            Name       => Target,
!           Expression => New_Occurrence_Of (Tmp, Loc)));
        return Aggr_Code;
     end Build_Assignment_With_Temporary;
  
--- 2146,2178 ----
  
     function Build_Assignment_With_Temporary
       (Target : Node_Id;
!       Typ    : Entity_Id;
        Source : Node_Id) return List_Id
     is
        Loc : constant Source_Ptr := Sloc (Source);
  
        Aggr_Code : List_Id;
        Tmp       : Entity_Id;
  
     begin
!       Aggr_Code := New_List;
! 
!       Tmp := Build_Temporary_On_Secondary_Stack (Loc, Typ, Aggr_Code);
  
        Append_To (Aggr_Code,
          Make_OK_Assignment_Statement (Loc,
!           Name       =>
!             Make_Explicit_Dereference (Loc,
!               Prefix => New_Occurrence_Of (Tmp, Loc)),
            Expression => Source));
  
        Append_To (Aggr_Code,
          Make_OK_Assignment_Statement (Loc,
            Name       => Target,
!           Expression =>
!             Make_Explicit_Dereference (Loc,
!               Prefix => New_Occurrence_Of (Tmp, Loc))));
! 
        return Aggr_Code;
     end Build_Assignment_With_Temporary;
  
*************** package body Exp_Aggr is
*** 2576,2589 ****
        Comp_Expr : Node_Id;
        Expr_Q    : Node_Id;
  
-       --  If this is an internal aggregate, the External_Final_List is an
-       --  expression for the controller record of the enclosing type.
- 
-       --  If the current aggregate has several controlled components, this
-       --  expression will appear in several calls to attach to the finali-
-       --  zation list, and it must not be shared.
- 
-       Ancestor_Is_Expression   : Boolean := False;
        Ancestor_Is_Subtype_Mark : Boolean := False;
  
        Init_Typ : Entity_Id := Empty;
--- 2198,2203 ----
*************** package body Exp_Aggr is
*** 2643,2668 ****
        --  The type of the aggregate is a subtype created ealier using the
        --  given values of the discriminant components of the aggregate.
  
-       procedure Initialize_Ctrl_Record_Component
-         (Rec_Comp  : Node_Id;
-          Comp_Typ  : Entity_Id;
-          Init_Expr : Node_Id;
-          Stmts     : List_Id);
-       --  Perform the initialization of controlled record component Rec_Comp.
-       --  Comp_Typ is the component type. Init_Expr is the initialization
-       --  expression for the record component. Hook-related declarations are
-       --  inserted prior to aggregate N using Insert_Action. All remaining
-       --  generated code is added to list Stmts.
- 
-       procedure Initialize_Record_Component
-         (Rec_Comp  : Node_Id;
-          Comp_Typ  : Entity_Id;
-          Init_Expr : Node_Id;
-          Stmts     : List_Id);
-       --  Perform the initialization of record component Rec_Comp. Comp_Typ
-       --  is the component type. Init_Expr is the initialization expression
-       --  of the record component. All generated code is added to list Stmts.
- 
        function Is_Int_Range_Bounds (Bounds : Node_Id) return Boolean;
        --  Check whether Bounds is a range node and its lower and higher bounds
        --  are integers literals.
--- 2257,2262 ----
*************** package body Exp_Aggr is
*** 3156,3389 ****
           end loop;
        end Init_Stored_Discriminants;
  
-       --------------------------------------
-       -- Initialize_Ctrl_Record_Component --
-       --------------------------------------
- 
-       procedure Initialize_Ctrl_Record_Component
-         (Rec_Comp  : Node_Id;
-          Comp_Typ  : Entity_Id;
-          Init_Expr : Node_Id;
-          Stmts     : List_Id)
-       is
-          Fin_Call   : Node_Id;
-          Hook_Clear : Node_Id;
- 
-          In_Place_Expansion : Boolean;
-          --  Flag set when a nonlimited controlled function call requires
-          --  in-place expansion.
- 
-       begin
-          --  Perform a preliminary analysis and resolution to determine what
-          --  the initialization expression denotes. Unanalyzed function calls
-          --  may appear as identifiers or indexed components.
- 
-          if Nkind (Init_Expr) in N_Function_Call
-                                | N_Identifier
-                                | N_Indexed_Component
-            and then not Analyzed (Init_Expr)
-          then
-             Preanalyze_And_Resolve (Init_Expr, Comp_Typ);
-          end if;
- 
-          In_Place_Expansion :=
-            Nkind (Init_Expr) = N_Function_Call
-              and then not Is_Build_In_Place_Result_Type (Comp_Typ);
- 
-          --  The initialization expression is a controlled function call.
-          --  Perform in-place removal of side effects to avoid creating a
-          --  transient scope.
- 
-          --  This in-place expansion is not performed for limited transient
-          --  objects because the initialization is already done in place.
- 
-          if In_Place_Expansion then
- 
-             --  Suppress the removal of side effects by general analysis
-             --  because this behavior is emulated here. This avoids the
-             --  generation of a transient scope, which leads to out-of-order
-             --  adjustment and finalization.
- 
-             Set_No_Side_Effect_Removal (Init_Expr);
- 
-             --  Install all hook-related declarations and prepare the clean up
-             --  statements. The generated code follows the initialization order
-             --  of individual components and discriminants, rather than being
-             --  inserted prior to the aggregate. This ensures that a transient
-             --  component which mentions a discriminant has proper visibility
-             --  of the discriminant.
- 
-             Process_Transient_Component
-               (Loc        => Loc,
-                Comp_Typ   => Comp_Typ,
-                Init_Expr  => Init_Expr,
-                Fin_Call   => Fin_Call,
-                Hook_Clear => Hook_Clear,
-                Stmts      => Stmts);
-          end if;
- 
-          --  Use the noncontrolled component initialization circuitry to
-          --  assign the result of the function call to the record component.
-          --  This also performs tag adjustment and [deep] adjustment of the
-          --  record component.
- 
-          Initialize_Record_Component
-            (Rec_Comp  => Rec_Comp,
-             Comp_Typ  => Comp_Typ,
-             Init_Expr => Init_Expr,
-             Stmts     => Stmts);
- 
-          --  At this point the record component is fully initialized. Complete
-          --  the processing of the controlled record component by finalizing
-          --  the transient function result.
- 
-          if In_Place_Expansion then
-             Process_Transient_Component_Completion
-               (Loc        => Loc,
-                Aggr       => N,
-                Fin_Call   => Fin_Call,
-                Hook_Clear => Hook_Clear,
-                Stmts      => Stmts);
-          end if;
-       end Initialize_Ctrl_Record_Component;
- 
-       ---------------------------------
-       -- Initialize_Record_Component --
-       ---------------------------------
- 
-       procedure Initialize_Record_Component
-         (Rec_Comp  : Node_Id;
-          Comp_Typ  : Entity_Id;
-          Init_Expr : Node_Id;
-          Stmts     : List_Id)
-       is
-          Exceptions_OK : constant Boolean :=
-                            not Restriction_Active (No_Exception_Propagation);
- 
-          Finalization_OK : constant Boolean := Needs_Finalization (Comp_Typ);
- 
-          Full_Typ  : constant Entity_Id := Underlying_Type (Comp_Typ);
-          Adj_Call  : Node_Id;
-          Blk_Stmts : List_Id;
-          Init_Stmt : Node_Id;
- 
-       begin
-          pragma Assert (Nkind (Init_Expr) in N_Subexpr);
- 
-          --  Protect the initialization statements from aborts. Generate:
- 
-          --    Abort_Defer;
- 
-          if Finalization_OK and Abort_Allowed then
-             if Exceptions_OK then
-                Blk_Stmts := New_List;
-             else
-                Blk_Stmts := Stmts;
-             end if;
- 
-             Append_To (Blk_Stmts, Build_Runtime_Call (Loc, RE_Abort_Defer));
- 
-          --  Otherwise aborts are not allowed. All generated code is added
-          --  directly to the input list.
- 
-          else
-             Blk_Stmts := Stmts;
-          end if;
- 
-          --  Initialize the record component. Generate:
- 
-          --    Rec_Comp := Init_Expr;
- 
-          --  Note that the initialization expression is NOT replicated because
-          --  only a single component may be initialized by it.
- 
-          Init_Stmt :=
-            Make_OK_Assignment_Statement (Loc,
-              Name       => New_Copy_Tree (Rec_Comp),
-              Expression => Init_Expr);
-          Set_No_Ctrl_Actions (Init_Stmt);
- 
-          Append_To (Blk_Stmts, Init_Stmt);
- 
-          --  Adjust the tag due to a possible view conversion. Generate:
- 
-          --    Rec_Comp._tag := Full_TypeP;
- 
-          if Tagged_Type_Expansion and then Is_Tagged_Type (Comp_Typ) then
-             Append_To (Blk_Stmts,
-               Make_OK_Assignment_Statement (Loc,
-                 Name       =>
-                   Make_Selected_Component (Loc,
-                     Prefix        => New_Copy_Tree (Rec_Comp),
-                     Selector_Name =>
-                       New_Occurrence_Of
-                         (First_Tag_Component (Full_Typ), Loc)),
- 
-                 Expression =>
-                   Unchecked_Convert_To (RTE (RE_Tag),
-                     New_Occurrence_Of
-                       (Node (First_Elmt (Access_Disp_Table (Full_Typ))),
-                        Loc))));
-          end if;
- 
-          --  Adjust the component. Generate:
- 
-          --    [Deep_]Adjust (Rec_Comp);
- 
-          if Finalization_OK
-            and then not Is_Limited_Type (Comp_Typ)
-            and then not Is_Build_In_Place_Function_Call (Init_Expr)
-          then
-             Adj_Call :=
-               Make_Adjust_Call
-                 (Obj_Ref => New_Copy_Tree (Rec_Comp),
-                  Typ     => Comp_Typ);
- 
-             --  Guard against a missing [Deep_]Adjust when the component type
-             --  was not properly frozen.
- 
-             if Present (Adj_Call) then
-                Append_To (Blk_Stmts, Adj_Call);
-             end if;
-          end if;
- 
-          --  Complete the protection of the initialization statements
- 
-          if Finalization_OK and Abort_Allowed then
- 
-             --  Wrap the initialization statements in a block to catch a
-             --  potential exception. Generate:
- 
-             --    begin
-             --       Abort_Defer;
-             --       Rec_Comp := Init_Expr;
-             --       Rec_Comp._tag := Full_TypP;
-             --       [Deep_]Adjust (Rec_Comp);
-             --    at end
-             --       Abort_Undefer_Direct;
-             --    end;
- 
-             if Exceptions_OK then
-                Append_To (Stmts,
-                  Build_Abort_Undefer_Block (Loc,
-                    Stmts   => Blk_Stmts,
-                    Context => N));
- 
-             --  Otherwise exceptions are not propagated. Generate:
- 
-             --    Abort_Defer;
-             --    Rec_Comp := Init_Expr;
-             --    Rec_Comp._tag := Full_TypP;
-             --    [Deep_]Adjust (Rec_Comp);
-             --    Abort_Undefer;
- 
-             else
-                Append_To (Blk_Stmts,
-                  Build_Runtime_Call (Loc, RE_Abort_Undefer));
-             end if;
-          end if;
-       end Initialize_Record_Component;
- 
        -------------------------
        -- Is_Int_Range_Bounds --
        -------------------------
--- 2750,2755 ----
*************** package body Exp_Aggr is
*** 3401,3419 ****
  
        function Replace_Type (Expr : Node_Id) return Traverse_Result is
        begin
!          --  Note regarding the Root_Type test below: Aggregate components for
           --  self-referential types include attribute references to the current
!          --  instance, of the form: Typ'access, etc.. These references are
           --  rewritten as references to the target of the aggregate: the
           --  left-hand side of an assignment, the entity in a declaration,
!          --  or a temporary. Without this test, we would improperly extended
!          --  this rewriting to attribute references whose prefix was not the
           --  type of the aggregate.
  
           if Nkind (Expr) = N_Attribute_Reference
             and then Is_Entity_Name (Prefix (Expr))
             and then Is_Type (Entity (Prefix (Expr)))
!            and then Root_Type (Etype (N)) = Root_Type (Entity (Prefix (Expr)))
           then
              if Is_Entity_Name (Lhs) then
                 Rewrite (Prefix (Expr), New_Occurrence_Of (Entity (Lhs), Loc));
--- 2767,2787 ----
  
        function Replace_Type (Expr : Node_Id) return Traverse_Result is
        begin
!          --  Note about the Is_Ancestor test below: aggregate components for
           --  self-referential types include attribute references to the current
!          --  instance, of the form: Typ'access, etc. These references are
           --  rewritten as references to the target of the aggregate: the
           --  left-hand side of an assignment, the entity in a declaration,
!          --  or a temporary. Without this test, we would improperly extend
!          --  this rewriting to attribute references whose prefix is not the
           --  type of the aggregate.
  
           if Nkind (Expr) = N_Attribute_Reference
             and then Is_Entity_Name (Prefix (Expr))
             and then Is_Type (Entity (Prefix (Expr)))
!            and then
!              Is_Ancestor
!                (Entity (Prefix (Expr)), Etype (N), Use_Full_View => True)
           then
              if Is_Entity_Name (Lhs) then
                 Rewrite (Prefix (Expr), New_Occurrence_Of (Entity (Lhs), Loc));
*************** package body Exp_Aggr is
*** 3476,3484 ****
        --  to the actual type of the aggregate, so that the proper components
        --  are visible. We know already that the types are compatible.
  
!       if Present (Etype (Lhs))
!         and then Is_Class_Wide_Type (Etype (Lhs))
!       then
           Target := Unchecked_Convert_To (Typ, Lhs);
        else
           Target := Lhs;
--- 2844,2850 ----
        --  to the actual type of the aggregate, so that the proper components
        --  are visible. We know already that the types are compatible.
  
!       if Present (Etype (Lhs)) and then Is_Class_Wide_Type (Etype (Lhs)) then
           Target := Unchecked_Convert_To (Typ, Lhs);
        else
           Target := Lhs;
*************** package body Exp_Aggr is
*** 3489,3500 ****
  
        if Nkind (N) = N_Extension_Aggregate then
           declare
!             Ancestor : constant Node_Id := Ancestor_Part (N);
!             Adj_Call : Node_Id;
              Assign   : List_Id;
  
           begin
!             --  If the ancestor part is a subtype mark "T", we generate
  
              --     init-proc (T (tmp));  if T is constrained and
              --     init-proc (S (tmp));  where S applies an appropriate
--- 2855,2867 ----
  
        if Nkind (N) = N_Extension_Aggregate then
           declare
!             Ancestor   : constant Node_Id := Ancestor_Part (N);
!             Ancestor_Q : constant Node_Id := Unqualify (Ancestor);
! 
              Assign   : List_Id;
  
           begin
!             --  If the ancestor part is a subtype mark T, we generate
  
              --     init-proc (T (tmp));  if T is constrained and
              --     init-proc (S (tmp));  where S applies an appropriate
*************** package body Exp_Aggr is
*** 3618,3742 ****
              --  qualified).
  
              elsif Is_Limited_Type (Etype (Ancestor))
!               and then Nkind (Unqualify (Ancestor)) in
!                          N_Aggregate | N_Extension_Aggregate
              then
-                Ancestor_Is_Expression := True;
- 
-                --  Set up finalization data for enclosing record, because
-                --  controlled subcomponents of the ancestor part will be
-                --  attached to it.
- 
-                Generate_Finalization_Actions;
- 
                 Append_List_To (L,
                    Build_Record_Aggr_Code
!                     (N   => Unqualify (Ancestor),
!                      Typ => Etype (Unqualify (Ancestor)),
                       Lhs => Target));
  
!             --  If the ancestor part is an expression "E", we generate
  
              --     T (tmp) := E;
  
              --  In Ada 2005, this includes the case of a (possibly qualified)
!             --  limited function call. The assignment will turn into a
!             --  build-in-place function call (for further details, see
              --  Make_Build_In_Place_Call_In_Assignment).
  
              else
-                Ancestor_Is_Expression := True;
                 Init_Typ := Etype (Ancestor);
  
                 --  If the ancestor part is an aggregate, force its full
                 --  expansion, which was delayed.
  
!                if Nkind (Unqualify (Ancestor)) in
!                     N_Aggregate | N_Extension_Aggregate
                 then
                    Set_Analyzed (Ancestor, False);
                    Set_Analyzed (Expression (Ancestor), False);
                 end if;
  
                 Ref := Convert_To (Init_Typ, New_Copy_Tree (Target));
-                Set_Assignment_OK (Ref);
- 
-                --  Make the assignment without usual controlled actions, since
-                --  we only want to Adjust afterwards, but not to Finalize
-                --  beforehand. Add manual Adjust when necessary.
  
                 Assign := New_List (
                   Make_OK_Assignment_Statement (Loc,
                     Name       => Ref,
                     Expression => Ancestor));
-                Set_No_Ctrl_Actions (First (Assign));
- 
-                --  Assign the tag now to make sure that the dispatching call in
-                --  the subsequent deep_adjust works properly (unless
-                --  Tagged_Type_Expansion where tags are implicit).
- 
-                if Tagged_Type_Expansion then
-                   Instr :=
-                     Make_OK_Assignment_Statement (Loc,
-                       Name       =>
-                         Make_Selected_Component (Loc,
-                           Prefix        => New_Copy_Tree (Target),
-                           Selector_Name =>
-                             New_Occurrence_Of
-                               (First_Tag_Component (Base_Type (Typ)), Loc)),
- 
-                       Expression =>
-                         Unchecked_Convert_To (RTE (RE_Tag),
-                           New_Occurrence_Of
-                             (Node (First_Elmt
-                                (Access_Disp_Table (Base_Type (Typ)))),
-                              Loc)));
- 
-                   Set_Assignment_OK (Name (Instr));
-                   Append_To (Assign, Instr);
- 
-                   --  Ada 2005 (AI-251): If tagged type has progenitors we must
-                   --  also initialize tags of the secondary dispatch tables.
- 
-                   if Has_Interfaces (Base_Type (Typ)) then
-                      Init_Secondary_Tags
-                        (Typ            => Base_Type (Typ),
-                         Target         => Target,
-                         Stmts_List     => Assign,
-                         Init_Tags_List => Assign);
-                   end if;
-                end if;
  
!                --  Call Adjust manually
  
!                if Needs_Finalization (Etype (Ancestor))
!                  and then not Is_Limited_Type (Etype (Ancestor))
!                  and then not Is_Build_In_Place_Function_Call (Ancestor)
                 then
!                   Adj_Call :=
!                     Make_Adjust_Call
!                       (Obj_Ref => New_Copy_Tree (Ref),
!                        Typ     => Etype (Ancestor));
! 
!                   --  Guard against a missing [Deep_]Adjust when the ancestor
!                   --  type was not properly frozen.
! 
!                   if Present (Adj_Call) then
!                      Append_To (Assign, Adj_Call);
!                   end if;
                 end if;
  
                 Append_To (L,
!                  Make_Unsuppress_Block (Loc, Name_Discriminant_Check, Assign));
  
                 if Has_Discriminants (Init_Typ) then
                    Check_Ancestor_Discriminants (Init_Typ);
                 end if;
              end if;
- 
-             pragma Assert (Nkind (N) = N_Extension_Aggregate);
-             pragma Assert
-               (not (Ancestor_Is_Expression and Ancestor_Is_Subtype_Mark));
           end;
  
           --  Generate assignments of hidden discriminants. If the base type is
--- 2985,3045 ----
              --  qualified).
  
              elsif Is_Limited_Type (Etype (Ancestor))
!               and then Nkind (Ancestor_Q) in N_Aggregate
!                                            | N_Extension_Aggregate
              then
                 Append_List_To (L,
                    Build_Record_Aggr_Code
!                     (N   => Ancestor_Q,
!                      Typ => Etype (Ancestor_Q),
                       Lhs => Target));
  
!             --  If the ancestor part is an expression E of type T, we generate
  
              --     T (tmp) := E;
  
              --  In Ada 2005, this includes the case of a (possibly qualified)
!             --  limited function call. The assignment will later be turned into
!             --  a build-in-place function call (for further details, see
              --  Make_Build_In_Place_Call_In_Assignment).
  
              else
                 Init_Typ := Etype (Ancestor);
  
                 --  If the ancestor part is an aggregate, force its full
                 --  expansion, which was delayed.
  
!                if Nkind (Ancestor_Q) in N_Aggregate | N_Extension_Aggregate
                 then
                    Set_Analyzed (Ancestor, False);
                    Set_Analyzed (Expression (Ancestor), False);
                 end if;
  
                 Ref := Convert_To (Init_Typ, New_Copy_Tree (Target));
  
                 Assign := New_List (
                   Make_OK_Assignment_Statement (Loc,
                     Name       => Ref,
                     Expression => Ancestor));
  
!                --  Arrange for the component to be adjusted if need be (the
!                --  call will be generated by Make_Tag_Ctrl_Assignment).
  
!                if Needs_Finalization (Init_Typ)
!                  and then not Is_Inherently_Limited_Type (Init_Typ)
                 then
!                   Set_No_Finalize_Actions (First (Assign));
!                else
!                   Set_No_Ctrl_Actions (First (Assign));
                 end if;
  
                 Append_To (L,
!                  Make_Suppress_Block (Loc, Name_Discriminant_Check, Assign));
  
                 if Has_Discriminants (Init_Typ) then
                    Check_Ancestor_Discriminants (Init_Typ);
                 end if;
              end if;
           end;
  
           --  Generate assignments of hidden discriminants. If the base type is
*************** package body Exp_Aggr is
*** 3839,3844 ****
--- 3142,3148 ----
        Comp := First (Component_Associations (N));
        while Present (Comp) loop
           Selector := Entity (First (Choices (Comp)));
+          pragma Assert (Present (Selector));
  
           --  C++ constructors
  
*************** package body Exp_Aggr is
*** 3862,3869 ****
                  Prefix        => New_Copy_Tree (Target),
                  Selector_Name => New_Occurrence_Of (Selector, Loc));
  
!             Initialize_Record_Component
!               (Rec_Comp  => Comp_Expr,
                 Comp_Typ  => Etype (Selector),
                 Init_Expr => Get_Simple_Init_Val
                                (Typ  => Etype (Selector),
--- 3166,3174 ----
                  Prefix        => New_Copy_Tree (Target),
                  Selector_Name => New_Occurrence_Of (Selector, Loc));
  
!             Initialize_Component
!               (N         => N,
!                Comp      => Comp_Expr,
                 Comp_Typ  => Etype (Selector),
                 Init_Expr => Get_Simple_Init_Val
                                (Typ  => Etype (Selector),
*************** package body Exp_Aggr is
*** 3941,3951 ****
                  Prefix        => New_Copy_Tree (Target),
                  Selector_Name => New_Occurrence_Of (Selector, Loc));
  
!             if Nkind (Expression (Comp)) = N_Qualified_Expression then
!                Expr_Q := Expression (Expression (Comp));
!             else
!                Expr_Q := Expression (Comp);
!             end if;
  
              --  Now either create the assignment or generate the code for the
              --  inner aggregate top-down.
--- 3246,3252 ----
                  Prefix        => New_Copy_Tree (Target),
                  Selector_Name => New_Occurrence_Of (Selector, Loc));
  
!             Expr_Q := Unqualify (Expression (Comp));
  
              --  Now either create the assignment or generate the code for the
              --  inner aggregate top-down.
*************** package body Exp_Aggr is
*** 4061,4067 ****
                          Decl  : Node_Id;
  
                       begin
!                         if Nkind (First (Choices (Assoc))) = N_Others_Choice
                          then
                             Decl :=
                               Build_Actual_Subtype_Of_Component
--- 3362,3370 ----
                          Decl  : Node_Id;
  
                       begin
!                         if Present (Assoc)
!                           and then
!                             Nkind (First (Choices (Assoc))) = N_Others_Choice
                          then
                             Decl :=
                               Build_Actual_Subtype_Of_Component
*************** package body Exp_Aggr is
*** 4098,4153 ****
                    end;
  
                 else
!                   --  Handle an initialization expression of a controlled type
!                   --  in case it denotes a function call. In general such a
!                   --  scenario will produce a transient scope, but this will
!                   --  lead to wrong order of initialization, adjustment, and
!                   --  finalization in the context of aggregates.
! 
!                   --    Target.Comp := Ctrl_Func_Call;
! 
!                   --    begin                                  --  scope
!                   --       Trans_Obj : ... := Ctrl_Func_Call;  --  object
!                   --       Target.Comp := Trans_Obj;
!                   --       Finalize (Trans_Obj);
!                   --    end
!                   --    Target.Comp._tag := ...;
!                   --    Adjust (Target.Comp);
! 
!                   --  In the example above, the call to Finalize occurs too
!                   --  early and as a result it may leave the record component
!                   --  in a bad state. Finalization of the transient object
!                   --  should really happen after adjustment.
! 
!                   --  To avoid this scenario, perform in-place side-effect
!                   --  removal of the function call. This eliminates the
!                   --  transient property of the function result and ensures
!                   --  correct order of actions.
! 
!                   --    Res : ... := Ctrl_Func_Call;
!                   --    Target.Comp := Res;
!                   --    Target.Comp._tag := ...;
!                   --    Adjust (Target.Comp);
!                   --    Finalize (Res);
! 
!                   if Needs_Finalization (Comp_Type)
!                     and then Nkind (Expr_Q) /= N_Aggregate
!                   then
!                      Initialize_Ctrl_Record_Component
!                        (Rec_Comp   => Comp_Expr,
!                         Comp_Typ   => Etype (Selector),
!                         Init_Expr  => Expr_Q,
!                         Stmts      => L);
! 
!                   --  Otherwise perform single component initialization
! 
!                   else
!                      Initialize_Record_Component
!                        (Rec_Comp  => Comp_Expr,
!                         Comp_Typ  => Etype (Selector),
!                         Init_Expr => Expr_Q,
!                         Stmts     => L);
!                   end if;
                 end if;
              end if;
  
--- 3401,3412 ----
                    end;
  
                 else
!                   Initialize_Component
!                     (N         => N,
!                      Comp      => Comp_Expr,
!                      Comp_Typ  => Etype (Selector),
!                      Init_Expr => Expr_Q,
!                      Stmts     => L);
                 end if;
              end if;
  
*************** package body Exp_Aggr is
*** 4238,4273 ****
           Next (Comp);
        end loop;
  
-       --  If the type is tagged, the tag needs to be initialized (unless we
-       --  are in VM-mode where tags are implicit). It is done late in the
-       --  initialization process because in some cases, we call the init
-       --  proc of an ancestor which will not leave out the right tag.
- 
-       if Ancestor_Is_Expression then
-          null;
- 
        --  For CPP types we generated a call to the C++ default constructor
        --  before the components have been initialized to ensure the proper
        --  initialization of the _Tag component (see above).
  
!       elsif Is_CPP_Class (Typ) then
           null;
  
        elsif Is_Tagged_Type (Typ) and then Tagged_Type_Expansion then
           Instr :=
!            Make_OK_Assignment_Statement (Loc,
!              Name =>
!                Make_Selected_Component (Loc,
!                  Prefix => New_Copy_Tree (Target),
!                  Selector_Name =>
!                    New_Occurrence_Of
!                      (First_Tag_Component (Base_Type (Typ)), Loc)),
! 
!              Expression =>
!                Unchecked_Convert_To (RTE (RE_Tag),
!                  New_Occurrence_Of
!                    (Node (First_Elmt (Access_Disp_Table (Base_Type (Typ)))),
!                     Loc)));
  
           Append_To (L, Instr);
  
--- 3497,3518 ----
           Next (Comp);
        end loop;
  
        --  For CPP types we generated a call to the C++ default constructor
        --  before the components have been initialized to ensure the proper
        --  initialization of the _Tag component (see above).
  
!       if Is_CPP_Class (Typ) then
           null;
  
+       --  If the type is tagged, the tag needs to be initialized (unless we
+       --  are in VM-mode where tags are implicit). It is done late in the
+       --  initialization process because in some cases, we call the init
+       --  proc of an ancestor which will not leave out the right tag.
+ 
        elsif Is_Tagged_Type (Typ) and then Tagged_Type_Expansion then
           Instr :=
!            Make_Tag_Assignment_From_Type
!              (Loc, New_Copy_Tree (Target), Base_Type (Typ));
  
           Append_To (L, Instr);
  
*************** package body Exp_Aggr is
*** 4339,4353 ****
     --------------------------------
  
     procedure Convert_Aggr_In_Assignment (N : Node_Id) is
!       Aggr : Node_Id            := Expression (N);
        Typ  : constant Entity_Id := Etype (Aggr);
        Occ  : constant Node_Id   := New_Copy_Tree (Name (N));
  
     begin
-       if Nkind (Aggr) = N_Qualified_Expression then
-          Aggr := Expression (Aggr);
-       end if;
- 
        Insert_Actions_After (N, Late_Expansion (Aggr, Typ, Occ));
     end Convert_Aggr_In_Assignment;
  
--- 3584,3594 ----
     --------------------------------
  
     procedure Convert_Aggr_In_Assignment (N : Node_Id) is
!       Aggr : constant Node_Id   := Unqualify (Expression (N));
        Typ  : constant Entity_Id := Etype (Aggr);
        Occ  : constant Node_Id   := New_Copy_Tree (Name (N));
  
     begin
        Insert_Actions_After (N, Late_Expansion (Aggr, Typ, Occ));
     end Convert_Aggr_In_Assignment;
  
*************** package body Exp_Aggr is
*** 4357,4363 ****
  
     procedure Convert_Aggr_In_Object_Decl (N : Node_Id) is
        Obj  : constant Entity_Id  := Defining_Identifier (N);
!       Aggr : Node_Id             := Expression (N);
        Loc  : constant Source_Ptr := Sloc (Aggr);
        Typ  : constant Entity_Id  := Etype (Aggr);
        Occ  : constant Node_Id    := New_Occurrence_Of (Obj, Loc);
--- 3598,3604 ----
  
     procedure Convert_Aggr_In_Object_Decl (N : Node_Id) is
        Obj  : constant Entity_Id  := Defining_Identifier (N);
!       Aggr : constant Node_Id    := Unqualify (Expression (N));
        Loc  : constant Source_Ptr := Sloc (Aggr);
        Typ  : constant Entity_Id  := Etype (Aggr);
        Occ  : constant Node_Id    := New_Occurrence_Of (Obj, Loc);
*************** package body Exp_Aggr is
*** 4437,4446 ****
     begin
        Set_Assignment_OK (Occ);
  
-       if Nkind (Aggr) = N_Qualified_Expression then
-          Aggr := Expression (Aggr);
-       end if;
- 
        if Has_Discriminants (Typ)
          and then Typ /= Etype (Obj)
          and then Is_Constrained (Etype (Obj))
--- 3678,3683 ----
*************** package body Exp_Aggr is
*** 4505,4512 ****
  
              while Present (Stmt) loop
                 if Nkind (Stmt) = N_Procedure_Call_Statement
!                  and then Get_TSS_Name (Entity (Name (Stmt)))
!                             = TSS_Slice_Assign
                 then
                    Param := First (Parameter_Associations (Stmt));
                    Insert_Actions
--- 3742,3748 ----
  
              while Present (Stmt) loop
                 if Nkind (Stmt) = N_Procedure_Call_Statement
!                  and then Is_TSS (Entity (Name (Stmt)), TSS_Slice_Assign)
                 then
                    Param := First (Parameter_Associations (Stmt));
                    Insert_Actions
*************** package body Exp_Aggr is
*** 4571,4578 ****
                                 (Storage_Model_Object
                                    (Etype (Prefix (Expression (Target))))))
           then
!             Aggr_Code := Build_Assignment_With_Temporary (Target,
!                            Typ, New_Aggr);
           else
              Aggr_Code :=
                New_List (
--- 3807,3815 ----
                                 (Storage_Model_Object
                                    (Etype (Prefix (Expression (Target))))))
           then
!             Aggr_Code :=
!               Build_Assignment_With_Temporary (Target, Typ, New_Aggr);
! 
           else
              Aggr_Code :=
                New_List (
*************** package body Exp_Aggr is
*** 5020,5028 ****
           --  excluding container aggregates as these are transformed into
           --  subprogram calls later.
  
!          (Parent_Kind in
!             N_Component_Association | N_Aggregate | N_Extension_Aggregate
!             and then not Is_Container_Aggregate (Parent_Node))
  
           --  Allocator (see Convert_Aggr_In_Allocator)
  
--- 4257,4267 ----
           --  excluding container aggregates as these are transformed into
           --  subprogram calls later.
  
!          (Parent_Kind = N_Component_Association
!            and then not Is_Container_Aggregate (Parent (Parent_Node)))
! 
!          or else (Parent_Kind in N_Aggregate | N_Extension_Aggregate
!                    and then not Is_Container_Aggregate (Parent_Node))
  
           --  Allocator (see Convert_Aggr_In_Allocator)
  
*************** package body Exp_Aggr is
*** 5055,5069 ****
           return;
        end if;
  
!       --  Otherwise, if a transient scope is required, create it now. If we
!       --  are within an initialization procedure do not create such, because
!       --  the target of the assignment must not be declared within a local
!       --  block, and because cleanup will take place on return from the
!       --  initialization procedure.
! 
!       --  Should the condition be more restrictive ???
  
!       if Requires_Transient_Scope (Typ) and then not Inside_Init_Proc then
           Establish_Transient_Scope (N, Manage_Sec_Stack => False);
        end if;
  
--- 4294,4302 ----
           return;
        end if;
  
!       --  Otherwise, if a transient scope is required, create it now
  
!       if Requires_Transient_Scope (Typ) then
           Establish_Transient_Scope (N, Manage_Sec_Stack => False);
        end if;
  
*************** package body Exp_Aggr is
*** 5837,5848 ****
        ----------------------------
  
        procedure Build_Constrained_Type (Positional : Boolean) is
!          Loc      : constant Source_Ptr := Sloc (N);
!          Agg_Type : constant Entity_Id  := Make_Temporary (Loc, 'A');
!          Comp     : Node_Id;
           Decl     : Node_Id;
!          Typ      : constant Entity_Id := Etype (N);
!          Indexes  : constant List_Id   := New_List;
           Num      : Nat;
           Sub_Agg  : Node_Id;
  
--- 5070,5078 ----
        ----------------------------
  
        procedure Build_Constrained_Type (Positional : Boolean) is
!          Agg_Type : constant Entity_Id := Make_Temporary (Loc, 'A');
           Decl     : Node_Id;
!          Indexes  : constant List_Id := New_List;
           Num      : Nat;
           Sub_Agg  : Node_Id;
  
*************** package body Exp_Aggr is
*** 5854,5873 ****
           if Positional then
              Sub_Agg := N;
  
!             for D in 1 .. Number_Dimensions (Typ) loop
!                Sub_Agg := First (Expressions (Sub_Agg));
! 
!                Comp := Sub_Agg;
!                Num := 0;
!                while Present (Comp) loop
!                   Num := Num + 1;
!                   Next (Comp);
!                end loop;
  
                 Append_To (Indexes,
                   Make_Range (Loc,
!                    Low_Bound  => Make_Integer_Literal (Loc, 1),
                     High_Bound => Make_Integer_Literal (Loc, Num)));
              end loop;
  
           else
--- 5084,5098 ----
           if Positional then
              Sub_Agg := N;
  
!             for D in 1 .. Aggr_Dimension loop
!                Num := List_Length (Expressions (Sub_Agg));
  
                 Append_To (Indexes,
                   Make_Range (Loc,
!                    Low_Bound  => Make_Integer_Literal (Loc, Uint_1),
                     High_Bound => Make_Integer_Literal (Loc, Num)));
+ 
+                Sub_Agg := First (Expressions (Sub_Agg));
              end loop;
  
           else
*************** package body Exp_Aggr is
*** 5875,5881 ****
              --  is not processable by the back end, therefore not necessarily
              --  positional. Retrieve each dimension bounds (computed earlier).
  
!             for D in 1 .. Number_Dimensions (Typ) loop
                 Append_To (Indexes,
                   Make_Range (Loc,
                     Low_Bound  => Aggr_Low  (D),
--- 5100,5106 ----
              --  is not processable by the back end, therefore not necessarily
              --  positional. Retrieve each dimension bounds (computed earlier).
  
!             for D in 1 .. Aggr_Dimension loop
                 Append_To (Indexes,
                   Make_Range (Loc,
                     Low_Bound  => Aggr_Low  (D),
*************** package body Exp_Aggr is
*** 5891,5897 ****
                     Discrete_Subtype_Definitions => Indexes,
                     Component_Definition         =>
                       Make_Component_Definition (Loc,
-                        Aliased_Present    => False,
                         Subtype_Indication =>
                           New_Occurrence_Of (Component_Type (Typ), Loc))));
  
--- 5116,5121 ----
*************** package body Exp_Aggr is
*** 5912,5918 ****
           Ind_Bounds  : constant Range_Nodes :=
             Get_Index_Bounds (Index_Bounds_Node);
  
!          Cond : Node_Id := Empty;
  
        begin
           --  For a null array aggregate check that high bound (i.e., low
--- 5136,5142 ----
           Ind_Bounds  : constant Range_Nodes :=
             Get_Index_Bounds (Index_Bounds_Node);
  
!          Cond : Node_Id;
  
        begin
           --  For a null array aggregate check that high bound (i.e., low
*************** package body Exp_Aggr is
*** 6002,6009 ****
        ----------------------------
  
        procedure Check_Same_Aggr_Bounds (Sub_Aggr : Node_Id; Dim : Pos) is
!          Sub_Bounds : constant Range_Nodes
!            := Get_Index_Bounds (Aggregate_Bounds (Sub_Aggr));
           Sub_Lo : Node_Id renames Sub_Bounds.First;
           Sub_Hi : Node_Id renames Sub_Bounds.Last;
           --  The bounds of this specific subaggregate
--- 5226,5233 ----
        ----------------------------
  
        procedure Check_Same_Aggr_Bounds (Sub_Aggr : Node_Id; Dim : Pos) is
!          Sub_Bounds : constant Range_Nodes :=
!            Get_Index_Bounds (Aggregate_Bounds (Sub_Aggr));
           Sub_Lo : Node_Id renames Sub_Bounds.First;
           Sub_Hi : Node_Id renames Sub_Bounds.Last;
           --  The bounds of this specific subaggregate
*************** package body Exp_Aggr is
*** 6013,6021 ****
           --  The bounds of the aggregate for this dimension
  
           Ind_Typ : constant Entity_Id := Aggr_Index_Typ (Dim);
!          --  The index type for this dimension.xxx
  
!          Cond  : Node_Id := Empty;
           Assoc : Node_Id;
           Expr  : Node_Id;
  
--- 5237,5245 ----
           --  The bounds of the aggregate for this dimension
  
           Ind_Typ : constant Entity_Id := Aggr_Index_Typ (Dim);
!          --  The index type for this dimension.
  
!          Cond  : Node_Id;
           Assoc : Node_Id;
           Expr  : Node_Id;
  
*************** package body Exp_Aggr is
*** 6900,6909 ****
           Parent_Kind := Nkind (Parent_Node);
        end if;
  
!       if ((Parent_Kind = N_Component_Association
!             or else Parent_Kind = N_Aggregate
!             or else Parent_Kind = N_Extension_Aggregate)
!            and then not Is_Container_Aggregate (Parent_Node))
          or else (Parent_Kind = N_Object_Declaration
                    and then (Needs_Finalization (Typ)
                               or else Is_Special_Return_Object
--- 6124,6133 ----
           Parent_Kind := Nkind (Parent_Node);
        end if;
  
!       if (Parent_Kind = N_Component_Association
!            and then not Is_Container_Aggregate (Parent (Parent_Node)))
!         or else (Parent_Kind in N_Aggregate | N_Extension_Aggregate
!                   and then not Is_Container_Aggregate (Parent_Node))
          or else (Parent_Kind = N_Object_Declaration
                    and then (Needs_Finalization (Typ)
                               or else Is_Special_Return_Object
*************** package body Exp_Aggr is
*** 6964,6970 ****
        --  If this is an array of tasks, it will be expanded into build-in-place
        --  assignments. Build an activation chain for the tasks now.
  
!       if Has_Task (Etype (N)) then
           Build_Activation_Chain_Entity (N);
        end if;
  
--- 6188,6194 ----
        --  If this is an array of tasks, it will be expanded into build-in-place
        --  assignments. Build an activation chain for the tasks now.
  
!       if Has_Task (Typ) then
           Build_Activation_Chain_Entity (N);
        end if;
  
*************** package body Exp_Aggr is
*** 7074,7080 ****
               Defining_Identifier => Tmp,
               Object_Definition   => New_Occurrence_Of (Typ, Loc));
           Set_No_Initialization (Tmp_Decl, True);
-          Set_Warnings_Off (Tmp);
  
           --  If we are within a loop, the temporary will be pushed on the
           --  stack at each iteration. If the aggregate is the expression
--- 6298,6303 ----
*************** package body Exp_Aggr is
*** 7086,7091 ****
--- 6309,6323 ----
             and then Parent_Kind = N_Allocator
           then
              Establish_Transient_Scope (N, Manage_Sec_Stack => False);
+ 
+          --  If the parent is an assignment for which no controlled actions
+          --  should take place, prevent the temporary from being finalized.
+ 
+          elsif Parent_Kind = N_Assignment_Statement
+            and then No_Ctrl_Actions (Parent_Node)
+          then
+             Mutate_Ekind (Tmp, E_Variable);
+             Set_Is_Ignored_For_Finalization (Tmp);
           end if;
  
           Insert_Action (N, Tmp_Decl);
*************** package body Exp_Aggr is
*** 7144,7163 ****
                                    (Storage_Model_Object
                                       (Etype (Prefix (Name (Parent_Node))))))
              then
!                Aggr_Code := Build_Assignment_With_Temporary (Target,
!                               Typ, New_Copy_Tree (N));
              else
                 if Maybe_In_Place_OK then
                    return;
                 end if;
  
!                Aggr_Code :=
!                  New_List (
!                    Make_Assignment_Statement (Loc,
!                      Name       => Target,
!                      Expression => New_Copy_Tree (N)));
! 
              end if;
           else
              Aggr_Code :=
                Build_Array_Aggr_Code (N,
--- 6376,6395 ----
                                    (Storage_Model_Object
                                       (Etype (Prefix (Name (Parent_Node))))))
              then
!                Aggr_Code := Build_Assignment_With_Temporary
!                               (Target, Typ, New_Copy_Tree (N));
! 
              else
                 if Maybe_In_Place_OK then
                    return;
                 end if;
  
!                Aggr_Code := New_List (
!                  Make_Assignment_Statement (Loc,
!                    Name       => Target,
!                    Expression => New_Copy_Tree (N)));
              end if;
+ 
           else
              Aggr_Code :=
                Build_Array_Aggr_Code (N,
*************** package body Exp_Aggr is
*** 7374,7379 ****
--- 6606,6613 ----
        Siz_Exp    : Node_Id := Empty;
        Count_Type : Entity_Id;
  
+       Is_Indexed_Aggregate : Boolean := False;
+ 
        function Aggregate_Size return Int;
        --  Compute number of entries in aggregate, including choices
        --  that cover a range or subtype, as well as iterated constructs.
*************** package body Exp_Aggr is
*** 7404,7410 ****
           Comp   : Node_Id;
           Choice : Node_Id;
           Lo, Hi : Node_Id;
!          Siz     : Int := 0;
  
           procedure Add_Range_Size;
           --  Compute number of components specified by a component association
--- 6638,6644 ----
           Comp   : Node_Id;
           Choice : Node_Id;
           Lo, Hi : Node_Id;
!          Siz    : Int;
  
           procedure Add_Range_Size;
           --  Compute number of components specified by a component association
*************** package body Exp_Aggr is
*** 7429,7439 ****
           end Add_Range_Size;
  
        begin
!          --  Aggregate is either all positional or all named.
  
!          if Present (Expressions (N)) then
!             Siz := List_Length (Expressions (N));
!          end if;
  
           if Present (Component_Associations (N)) then
              Comp := First (Component_Associations (N));
--- 6663,6671 ----
           end Add_Range_Size;
  
        begin
!          --  Aggregate is either all positional or all named
  
!          Siz := List_Length (Expressions (N));
  
           if Present (Component_Associations (N)) then
              Comp := First (Component_Associations (N));
*************** package body Exp_Aggr is
*** 7689,7694 ****
--- 6921,6930 ----
  
        Siz := Aggregate_Size;
  
+       ---------------------
+       --  Empty function --
+       ---------------------
+ 
        if Ekind (Entity (Empty_Subp)) = E_Function
          and then Present (First_Formal (Entity (Empty_Subp)))
        then
*************** package body Exp_Aggr is
*** 7750,7762 ****
                    Parameter_Associations =>
                      New_List (
                        Make_Integer_Literal (Loc, 1),
!                       New_Occurrence_Of
!                         (Defining_Identifier (Siz_Decl), Loc))));
           end if;
  
           Append (Init_Stat, Aggr_Code);
  
!          --  Size is dynamic: Create declaration for object, and intitialize
           --  with a call to the null container, or an assignment to it.
  
        else
--- 6986,7004 ----
                    Parameter_Associations =>
                      New_List (
                        Make_Integer_Literal (Loc, 1),
!                       Make_Type_Conversion (Loc,
!                         Subtype_Mark =>
!                           New_Occurrence_Of
!                             (Etype (First_Formal (Entity (New_Indexed_Subp))),
!                              Loc),
!                         Expression => New_Occurrence_Of
!                                         (Defining_Identifier (Siz_Decl),
!                                          Loc)))));
           end if;
  
           Append (Init_Stat, Aggr_Code);
  
!          --  Size is dynamic: Create declaration for object, and initialize
           --  with a call to the null container, or an assignment to it.
  
        else
*************** package body Exp_Aggr is
*** 7785,7790 ****
--- 7027,7078 ----
           Append (Init_Stat, Aggr_Code);
        end if;
  
+       --  Report warning on infinite recursion if an empty container aggregate
+       --  appears in the return statement of its Empty function.
+ 
+       if Ekind (Entity (Empty_Subp)) = E_Function
+         and then Nkind (Parent (N)) = N_Simple_Return_Statement
+         and then Is_Empty_List (Expressions (N))
+         and then Is_Empty_List (Component_Associations (N))
+         and then Entity (Empty_Subp) = Current_Scope
+       then
+          Error_Msg_Warn := SPARK_Mode /= On;
+          Error_Msg_N
+            ("!empty aggregate returned by the empty function of a container"
+             & " aggregate<<<", Parent (N));
+          Error_Msg_N
+            ("\this will result in infinite recursion??", Parent (N));
+       end if;
+ 
+       --  Determine whether this is an indexed aggregate (see RM 4.3.5(25/5)).
+ 
+       if Present (New_Indexed_Subp) then
+          if No (Add_Unnamed_Subp) then
+             Is_Indexed_Aggregate := True;
+ 
+          else
+             declare
+                Comp_Assns : constant List_Id := Component_Associations (N);
+                Comp_Assn  : Node_Id;
+ 
+             begin
+                if Present (Comp_Assns)
+                  and then not Is_Empty_List (Comp_Assns)
+                then
+                   Comp_Assn := First (Comp_Assns);
+ 
+                   if Nkind (Comp_Assn) = N_Component_Association
+                     or else
+                       (Nkind (Comp_Assn) = N_Iterated_Component_Association
+                         and then Present (Defining_Identifier (Comp_Assn)))
+                   then
+                      Is_Indexed_Aggregate := True;
+                   end if;
+                end if;
+             end;
+          end if;
+       end if;
+ 
        ---------------------------
        --  Positional aggregate --
        ---------------------------
*************** package body Exp_Aggr is
*** 7811,7822 ****
                    Next (Comp);
                 end loop;
              end;
-          end if;
  
           --  Indexed aggregates are handled below. Unnamed aggregates
           --  such as sets may include iterated component associations.
  
!          if No (New_Indexed_Subp) then
              Comp := First (Component_Associations (N));
              while Present (Comp) loop
                 if Nkind (Comp) = N_Iterated_Component_Association then
--- 7099,7109 ----
                    Next (Comp);
                 end loop;
              end;
  
           --  Indexed aggregates are handled below. Unnamed aggregates
           --  such as sets may include iterated component associations.
  
!          elsif not Is_Indexed_Aggregate then
              Comp := First (Component_Associations (N));
              while Present (Comp) loop
                 if Nkind (Comp) = N_Iterated_Component_Association then
*************** package body Exp_Aggr is
*** 7871,7885 ****
        -- Indexed_Aggregate --
        -----------------------
  
!       --  For an indexed aggregate there must be an Assigned_Indexeed
        --  subprogram. Note that unlike array aggregates, a container
        --  aggregate must be fully positional or fully indexed. In the
        --  first case the expansion has already taken place.
        --  TBA: the keys for an indexed aggregate must provide a dense
        --  range with no repetitions.
  
!       if Present (Assign_Indexed_Subp)
          and then Present (Component_Associations (N))
        then
           declare
              Insert : constant Entity_Id := Entity (Assign_Indexed_Subp);
--- 7158,7173 ----
        -- Indexed_Aggregate --
        -----------------------
  
!       --  For an indexed aggregate there must be an Assigned_Indexed
        --  subprogram. Note that unlike array aggregates, a container
        --  aggregate must be fully positional or fully indexed. In the
        --  first case the expansion has already taken place.
        --  TBA: the keys for an indexed aggregate must provide a dense
        --  range with no repetitions.
  
!       if Is_Indexed_Aggregate
          and then Present (Component_Associations (N))
+         and then not Is_Empty_List (Component_Associations (N))
        then
           declare
              Insert : constant Entity_Id := Entity (Assign_Indexed_Subp);
*************** package body Exp_Aggr is
*** 7896,7902 ****
  
              Comp   : Node_Id;
              Index  : Node_Id;
-             Pos    : Int := 0;
              Stat   : Node_Id;
              Key    : Node_Id;
  
--- 7184,7189 ----
*************** package body Exp_Aggr is
*** 7939,7944 ****
--- 7226,7233 ----
              end Expand_Range_Component;
  
           begin
+             pragma Assert (No (Expressions (N)));
+ 
              if Siz > 0 then
  
                 --  Modify the call to the constructor to allocate the
*************** package body Exp_Aggr is
*** 7959,8044 ****
                           Index)));
              end if;
  
!             if Present (Expressions (N)) then
!                Comp := First (Expressions (N));
! 
!                while Present (Comp) loop
! 
!                   --  Compute index position for successive components
!                   --  in the list of expressions, and use the indexed
!                   --  assignment procedure for each.
! 
!                   Index := Make_Op_Add (Loc,
!                     Left_Opnd => Type_Low_Bound (Index_Type),
!                     Right_Opnd => Make_Integer_Literal (Loc, Pos));
! 
!                   Stat := Make_Procedure_Call_Statement (Loc,
!                     Name => New_Occurrence_Of (Insert, Loc),
!                     Parameter_Associations =>
!                       New_List (New_Occurrence_Of (Temp, Loc),
!                       Index,
!                       New_Copy_Tree (Comp)));
! 
!                   Pos := Pos + 1;
! 
!                   Append (Stat, Aggr_Code);
!                   Next (Comp);
!                end loop;
!             end if;
! 
!             if Present (Component_Associations (N)) then
!                Comp := First (Component_Associations (N));
  
!                --  The choice may be a static value, or a range with
!                --  static bounds.
  
!                while Present (Comp) loop
!                   if Nkind (Comp) = N_Component_Association then
!                      Key := First (Choices (Comp));
!                      while Present (Key) loop
  
!                         --  If the expression is a box, the corresponding
!                         --  component (s) is left uninitialized.
  
!                         if Box_Present (Comp) then
!                            goto Next_Key;
  
!                         elsif Nkind (Key) = N_Range then
  
!                            --  Create loop for tne specified range,
!                            --  with copies of the expression.
  
!                            Stat :=
!                              Expand_Range_Component (Key, Expression (Comp));
  
!                         else
!                            Stat := Make_Procedure_Call_Statement (Loc,
!                              Name => New_Occurrence_Of
!                                 (Entity (Assign_Indexed_Subp), Loc),
!                                 Parameter_Associations =>
!                                   New_List (New_Occurrence_Of (Temp, Loc),
!                                   New_Copy_Tree (Key),
!                                   New_Copy_Tree (Expression (Comp))));
!                         end if;
  
!                         Append (Stat, Aggr_Code);
  
!                         <<Next_Key>>
!                         Next (Key);
!                      end loop;
  
!                   else
!                      --  Iterated component association. Discard
!                      --  positional insertion procedure.
  
                       Add_Named_Subp := Assign_Indexed_Subp;
                       Add_Unnamed_Subp := Empty;
-                      Expand_Iterated_Component (Comp);
                    end if;
  
!                   Next (Comp);
!                end loop;
!             end if;
           end;
        end if;
  
--- 7248,7307 ----
                           Index)));
              end if;
  
!             Comp := First (Component_Associations (N));
  
!             --  The choice may be a static value, or a range with
!             --  static bounds.
  
!             while Present (Comp) loop
!                if Nkind (Comp) = N_Component_Association then
!                   Key := First (Choices (Comp));
!                   while Present (Key) loop
  
!                      --  If the expression is a box, the corresponding
!                      --  component (s) is left uninitialized.
  
!                      if Box_Present (Comp) then
!                         goto Next_Key;
  
!                      elsif Nkind (Key) = N_Range then
  
!                         --  Create loop for tne specified range,
!                         --  with copies of the expression.
  
!                         Stat :=
!                           Expand_Range_Component (Key, Expression (Comp));
  
!                      else
!                         Stat := Make_Procedure_Call_Statement (Loc,
!                           Name => New_Occurrence_Of
!                              (Entity (Assign_Indexed_Subp), Loc),
!                              Parameter_Associations =>
!                                New_List (New_Occurrence_Of (Temp, Loc),
!                                New_Copy_Tree (Key),
!                                New_Copy_Tree (Expression (Comp))));
!                      end if;
  
!                      Append (Stat, Aggr_Code);
  
!                      <<Next_Key>>
!                      Next (Key);
!                   end loop;
  
!                else
!                   --  Iterated component association. Discard
!                   --  positional insertion procedure.
  
+                   if No (Iterator_Specification (Comp)) then
                       Add_Named_Subp := Assign_Indexed_Subp;
                       Add_Unnamed_Subp := Empty;
                    end if;
  
!                   Expand_Iterated_Component (Comp);
!                end if;
! 
!                Next (Comp);
!             end loop;
           end;
        end if;
  
*************** package body Exp_Aggr is
*** 8084,8089 ****
--- 7347,7358 ----
        --  choices that are ranges, subtype indications, subtype names, and
        --  iterated component associations.
  
+       function Make_Array_Delta_Assignment_LHS
+         (Choice : Node_Id; Temp : Entity_Id) return Node_Id;
+       --  Generate the LHS for the assignment associated with one
+       --  component association. This can be more complex than just an
+       --  indexed component in the case of a deep delta aggregate.
+ 
        -------------------
        -- Generate_Loop --
        -------------------
*************** package body Exp_Aggr is
*** 8120,8125 ****
--- 7389,7448 ----
                End_Label       => Empty);
        end Generate_Loop;
  
+       function Make_Array_Delta_Assignment_LHS
+         (Choice : Node_Id; Temp : Entity_Id) return Node_Id
+       is
+          function Make_Delta_Choice_LHS
+            (Choice      : Node_Id;
+             Deep_Choice : Boolean) return Node_Id;
+          --  Recursively (but recursion only in deep delta aggregate case)
+          --  build up the LHS by successively applying selectors.
+ 
+          ---------------------------
+          -- Make_Delta_Choice_LHS --
+          ---------------------------
+ 
+          function Make_Delta_Choice_LHS
+            (Choice      : Node_Id;
+             Deep_Choice : Boolean) return Node_Id
+          is
+          begin
+             if not Deep_Choice
+               or else Is_Root_Prefix_Of_Deep_Choice (Choice)
+             then
+                return Make_Indexed_Component (Sloc (Choice),
+                         Prefix      => New_Occurrence_Of (Temp, Loc),
+                         Expressions => New_List (New_Copy_Tree (Choice)));
+ 
+             else
+                --  a deep delta aggregate choice
+                pragma Assert (All_Extensions_Allowed);
+ 
+                declare
+                   --  recursively get name for prefix
+                   LHS_Prefix : constant Node_Id
+                     := Make_Delta_Choice_LHS (Prefix (Choice), Deep_Choice);
+                begin
+                   if Nkind (Choice) = N_Indexed_Component then
+                      return Make_Indexed_Component (Sloc (Choice),
+                         Prefix      => LHS_Prefix,
+                         Expressions => New_Copy_List (Expressions (Choice)));
+                   else
+                      return Make_Selected_Component (Sloc (Choice),
+                               Prefix        => LHS_Prefix,
+                               Selector_Name =>
+                                 Make_Identifier
+                                   (Sloc (Choice),
+                                    Chars (Selector_Name (Choice))));
+                   end if;
+                end;
+             end if;
+          end Make_Delta_Choice_LHS;
+       begin
+          return Make_Delta_Choice_LHS
+            (Choice, Is_Deep_Choice (Choice, Etype (N)));
+       end Make_Array_Delta_Assignment_LHS;
+ 
        --  Local variables
  
        Choice : Node_Id;
*************** package body Exp_Aggr is
*** 8156,8164 ****
                    Append_To (Deltas,
                      Make_Assignment_Statement (Sloc (Choice),
                        Name       =>
!                         Make_Indexed_Component (Sloc (Choice),
!                           Prefix      => New_Occurrence_Of (Temp, Loc),
!                           Expressions => New_List (New_Copy_Tree (Choice))),
                        Expression => New_Copy_Tree (Expression (Assoc))));
                 end if;
  
--- 7479,7485 ----
                    Append_To (Deltas,
                      Make_Assignment_Statement (Sloc (Choice),
                        Name       =>
!                         Make_Array_Delta_Assignment_LHS (Choice, Temp),
                        Expression => New_Copy_Tree (Expression (Assoc))));
                 end if;
  
*************** package body Exp_Aggr is
*** 8183,8188 ****
--- 7504,7546 ----
        Assoc  : Node_Id;
        Choice : Node_Id;
  
+       function Make_Record_Delta_Assignment_LHS
+         (Selector : Node_Id) return Node_Id;
+       --  Generate the LHS for an assignment to a component (or subcomponent
+       --  if -gnatX specified) of the result object.
+ 
+       --------------------------------------
+       -- Make_Record_Delta_Assignment_LHS --
+       --------------------------------------
+ 
+       function Make_Record_Delta_Assignment_LHS
+         (Selector : Node_Id) return Node_Id
+       is
+       begin
+          if Nkind (Selector) = N_Selected_Component then
+             --  a deep delta aggregate, requires -gnatX0
+             return
+               Make_Selected_Component
+                 (Sloc (Choice),
+                  Prefix        => Make_Record_Delta_Assignment_LHS
+                                     (Prefix (Selector)),
+                  Selector_Name =>
+                    Make_Identifier (Loc, Chars (Selector_Name (Selector))));
+          elsif Nkind (Selector) = N_Indexed_Component then
+             --  a deep delta aggregate, requires -gnatX0
+             return
+               Make_Indexed_Component
+                 (Sloc (Choice),
+                  Prefix        => Make_Record_Delta_Assignment_LHS
+                                     (Prefix (Selector)),
+                  Expressions   => Expressions (Selector));
+          else
+             return Make_Selected_Component
+                     (Sloc (Choice),
+                      Prefix        => New_Occurrence_Of (Temp, Loc),
+                      Selector_Name => Make_Identifier (Loc, Chars (Selector)));
+          end if;
+       end Make_Record_Delta_Assignment_LHS;
     begin
        Assoc := First (Component_Associations (N));
  
*************** package body Exp_Aggr is
*** 8191,8200 ****
           while Present (Choice) loop
              Append_To (Deltas,
                Make_Assignment_Statement (Sloc (Choice),
!                 Name       =>
!                   Make_Selected_Component (Sloc (Choice),
!                     Prefix        => New_Occurrence_Of (Temp, Loc),
!                     Selector_Name => Make_Identifier (Loc, Chars (Choice))),
                  Expression => New_Copy_Tree (Expression (Assoc))));
              Next (Choice);
           end loop;
--- 7549,7555 ----
           while Present (Choice) loop
              Append_To (Deltas,
                Make_Assignment_Statement (Sloc (Choice),
!                 Name       => Make_Record_Delta_Assignment_LHS (Choice),
                  Expression => New_Copy_Tree (Expression (Assoc))));
              Next (Choice);
           end loop;
*************** package body Exp_Aggr is
*** 8708,8718 ****
                 return False;
              end if;
  
!             if Nkind (Expression (C)) = N_Qualified_Expression then
!                Expr_Q := Expression (Expression (C));
!             else
!                Expr_Q := Expression (C);
!             end if;
  
              --  Return False for array components whose bounds raise
              --  constraint error.
--- 8063,8069 ----
                 return False;
              end if;
  
!             Expr_Q := Unqualify (Expression (C));
  
              --  Return False for array components whose bounds raise
              --  constraint error.
*************** package body Exp_Aggr is
*** 8910,8916 ****
        --  Extension aggregates, aggregates in extended return statements, and
        --  aggregates for C++ imported types must be expanded.
  
!       elsif Ada_Version >= Ada_2005 and then Is_Limited_View (Typ) then
           if Nkind (Parent (N)) not in
                N_Component_Association | N_Object_Declaration
           then
--- 8261,8269 ----
        --  Extension aggregates, aggregates in extended return statements, and
        --  aggregates for C++ imported types must be expanded.
  
!       elsif Ada_Version >= Ada_2005
!         and then Is_Inherently_Limited_Type (Typ)
!       then
           if Nkind (Parent (N)) not in
                N_Component_Association | N_Object_Declaration
           then
*************** package body Exp_Aggr is
*** 9079,9084 ****
--- 8432,8569 ----
        return False;
     end Has_Default_Init_Comps;
  
+    --------------------------
+    -- Initialize_Component --
+    --------------------------
+ 
+    procedure Initialize_Component
+      (N         : Node_Id;
+       Comp      : Node_Id;
+       Comp_Typ  : Node_Id;
+       Init_Expr : Node_Id;
+       Stmts     : List_Id)
+    is
+       Exceptions_OK   : constant Boolean :=
+                           not Restriction_Active (No_Exception_Propagation);
+       Finalization_OK : constant Boolean :=
+                           Present (Comp_Typ)
+                             and then Needs_Finalization (Comp_Typ);
+       Loc             : constant Source_Ptr := Sloc (N);
+ 
+       Blk_Stmts : List_Id;
+       Init_Stmt : Node_Id;
+ 
+    begin
+       pragma Assert (Nkind (Init_Expr) in N_Subexpr);
+ 
+       --  Protect the initialization statements from aborts. Generate:
+ 
+       --    Abort_Defer;
+ 
+       if Finalization_OK and Abort_Allowed then
+          if Exceptions_OK then
+             Blk_Stmts := New_List;
+          else
+             Blk_Stmts := Stmts;
+          end if;
+ 
+          Append_To (Blk_Stmts, Build_Runtime_Call (Loc, RE_Abort_Defer));
+ 
+       --  Otherwise aborts are not allowed. All generated code is added
+       --  directly to the input list.
+ 
+       else
+          Blk_Stmts := Stmts;
+       end if;
+ 
+       --  Initialize the component. Generate:
+ 
+       --    Comp := Init_Expr;
+ 
+       --  Note that the initialization expression is not duplicated because
+       --  either only a single component may be initialized by it (record)
+       --  or it has already been duplicated if need be (array).
+ 
+       Init_Stmt :=
+         Make_OK_Assignment_Statement (Loc,
+           Name       => New_Copy_Tree (Comp),
+           Expression => Relocate_Node (Init_Expr));
+ 
+       Append_To (Blk_Stmts, Init_Stmt);
+ 
+       --  Arrange for the component to be adjusted if need be (the call will be
+       --  generated by Make_Tag_Ctrl_Assignment). But, in the case of an array
+       --  aggregate, controlled subaggregates are not considered because each
+       --  of their individual elements will receive an adjustment of its own.
+ 
+       if Finalization_OK
+         and then not Is_Inherently_Limited_Type (Comp_Typ)
+         and then not
+           (Is_Array_Type (Etype (N))
+             and then Is_Array_Type (Comp_Typ)
+             and then Needs_Finalization (Component_Type (Comp_Typ))
+             and then Nkind (Unqualify (Init_Expr)) = N_Aggregate)
+       then
+          Set_No_Finalize_Actions (Init_Stmt);
+ 
+       --  Or else, only adjust the tag due to a possible view conversion
+ 
+       else
+          Set_No_Ctrl_Actions (Init_Stmt);
+ 
+          if Tagged_Type_Expansion and then Is_Tagged_Type (Comp_Typ) then
+             declare
+                Typ : Entity_Id := Underlying_Type (Comp_Typ);
+ 
+             begin
+                if Is_Concurrent_Type (Typ) then
+                   Typ := Corresponding_Record_Type (Typ);
+                end if;
+ 
+                Append_To (Blk_Stmts,
+                  Make_Tag_Assignment_From_Type
+                    (Loc, New_Copy_Tree (Comp), Typ));
+             end;
+          end if;
+       end if;
+ 
+       --  Complete the protection of the initialization statements
+ 
+       if Finalization_OK and Abort_Allowed then
+ 
+          --  Wrap the initialization statements in a block to catch a
+          --  potential exception. Generate:
+ 
+          --    begin
+          --       Abort_Defer;
+          --       Comp := Init_Expr;
+          --       Comp._tag := Full_TypP;
+          --       [Deep_]Adjust (Comp);
+          --    at end
+          --       Abort_Undefer_Direct;
+          --    end;
+ 
+          if Exceptions_OK then
+             Append_To (Stmts,
+               Build_Abort_Undefer_Block (Loc,
+                 Stmts   => Blk_Stmts,
+                 Context => N));
+ 
+          --  Otherwise exceptions are not propagated. Generate:
+ 
+          --    Abort_Defer;
+          --    Comp := Init_Expr;
+          --    Comp._tag := Full_TypP;
+          --    [Deep_]Adjust (Comp);
+          --    Abort_Undefer;
+ 
+          else
+             Append_To (Blk_Stmts,
+               Build_Runtime_Call (Loc, RE_Abort_Undefer));
+          end if;
+       end if;
+    end Initialize_Component;
+ 
     ----------------------------------------
     -- Is_Build_In_Place_Aggregate_Return --
     ----------------------------------------
*************** package body Exp_Aggr is
*** 9087,9093 ****
        P : Node_Id := Parent (N);
  
     begin
!       while Nkind (P) = N_Qualified_Expression loop
           P := Parent (P);
        end loop;
  
--- 8572,8582 ----
        P : Node_Id := Parent (N);
  
     begin
!       while Nkind (P) in N_Case_Expression
!                        | N_Case_Expression_Alternative
!                        | N_If_Expression
!                        | N_Qualified_Expression
!       loop
           P := Parent (P);
        end loop;
  
*************** package body Exp_Aggr is
*** 9111,9127 ****
     --------------------------
  
     function Is_Delayed_Aggregate (N : Node_Id) return Boolean is
!       Node : Node_Id   := N;
!       Kind : Node_Kind := Nkind (Node);
  
     begin
!       if Kind = N_Qualified_Expression then
!          Node := Expression (Node);
!          Kind := Nkind (Node);
!       end if;
! 
!       return Kind in N_Aggregate | N_Extension_Aggregate
!         and then Expansion_Delayed (Node);
     end Is_Delayed_Aggregate;
  
     --------------------------------
--- 8600,8610 ----
     --------------------------
  
     function Is_Delayed_Aggregate (N : Node_Id) return Boolean is
!       Unqual_N : constant Node_Id := Unqualify (N);
  
     begin
!       return Nkind (Unqual_N) in N_Aggregate | N_Extension_Aggregate
!         and then Expansion_Delayed (Unqual_N);
     end Is_Delayed_Aggregate;
  
     --------------------------------
*************** package body Exp_Aggr is
*** 9219,9227 ****
--- 8702,8712 ----
  
     function Is_Two_Dim_Packed_Array (Typ : Entity_Id) return Boolean is
        C : constant Uint := Component_Size (Typ);
+ 
     begin
        return Number_Dimensions (Typ) = 2
          and then Is_Bit_Packed_Array (Typ)
+         and then Is_Scalar_Type (Component_Type (Typ))
          and then C in Uint_1 | Uint_2 | Uint_4; -- False if No_Uint
     end Is_Two_Dim_Packed_Array;
  
*************** package body Exp_Aggr is
*** 9809,10103 ****
        end if;
     end Must_Slide;
  
-    ---------------------------------
-    -- Process_Transient_Component --
-    ---------------------------------
- 
-    procedure Process_Transient_Component
-      (Loc        : Source_Ptr;
-       Comp_Typ   : Entity_Id;
-       Init_Expr  : Node_Id;
-       Fin_Call   : out Node_Id;
-       Hook_Clear : out Node_Id;
-       Aggr       : Node_Id := Empty;
-       Stmts      : List_Id := No_List)
-    is
-       procedure Add_Item (Item : Node_Id);
-       --  Insert arbitrary node Item into the tree depending on the values of
-       --  Aggr and Stmts.
- 
-       --------------
-       -- Add_Item --
-       --------------
- 
-       procedure Add_Item (Item : Node_Id) is
-       begin
-          if Present (Aggr) then
-             Insert_Action (Aggr, Item);
-          else
-             pragma Assert (Present (Stmts));
-             Append_To (Stmts, Item);
-          end if;
-       end Add_Item;
- 
-       --  Local variables
- 
-       Hook_Assign : Node_Id;
-       Hook_Decl   : Node_Id;
-       Ptr_Decl    : Node_Id;
-       Res_Decl    : Node_Id;
-       Res_Id      : Entity_Id;
-       Res_Typ     : Entity_Id;
- 
-    --  Start of processing for Process_Transient_Component
- 
-    begin
-       --  Add the access type, which provides a reference to the function
-       --  result. Generate:
- 
-       --    type Res_Typ is access all Comp_Typ;
- 
-       Res_Typ := Make_Temporary (Loc, 'A');
-       Mutate_Ekind (Res_Typ, E_General_Access_Type);
-       Set_Directly_Designated_Type (Res_Typ, Comp_Typ);
- 
-       Add_Item
-         (Make_Full_Type_Declaration (Loc,
-            Defining_Identifier => Res_Typ,
-            Type_Definition     =>
-              Make_Access_To_Object_Definition (Loc,
-                All_Present        => True,
-                Subtype_Indication => New_Occurrence_Of (Comp_Typ, Loc))));
- 
-       --  Add the temporary which captures the result of the function call.
-       --  Generate:
- 
-       --    Res : constant Res_Typ := Init_Expr'Reference;
- 
-       --  Note that this temporary is effectively a transient object because
-       --  its lifetime is bounded by the current array or record component.
- 
-       Res_Id := Make_Temporary (Loc, 'R');
-       Mutate_Ekind (Res_Id, E_Constant);
-       Set_Etype (Res_Id, Res_Typ);
- 
-       --  Mark the transient object as successfully processed to avoid double
-       --  finalization.
- 
-       Set_Is_Finalized_Transient (Res_Id);
- 
-       --  Signal the general finalization machinery that this transient object
-       --  should not be considered for finalization actions because its cleanup
-       --  will be performed by Process_Transient_Component_Completion.
- 
-       Set_Is_Ignored_Transient (Res_Id);
- 
-       Res_Decl :=
-         Make_Object_Declaration (Loc,
-           Defining_Identifier => Res_Id,
-           Constant_Present    => True,
-           Object_Definition   => New_Occurrence_Of (Res_Typ, Loc),
-           Expression          =>
-             Make_Reference (Loc, New_Copy_Tree (Init_Expr)));
- 
-       Add_Item (Res_Decl);
- 
-       --  Construct all pieces necessary to hook and finalize the transient
-       --  result.
- 
-       Build_Transient_Object_Statements
-         (Obj_Decl    => Res_Decl,
-          Fin_Call    => Fin_Call,
-          Hook_Assign => Hook_Assign,
-          Hook_Clear  => Hook_Clear,
-          Hook_Decl   => Hook_Decl,
-          Ptr_Decl    => Ptr_Decl);
- 
-       --  Add the access type which provides a reference to the transient
-       --  result. Generate:
- 
-       --    type Ptr_Typ is access all Comp_Typ;
- 
-       Add_Item (Ptr_Decl);
- 
-       --  Add the temporary which acts as a hook to the transient result.
-       --  Generate:
- 
-       --    Hook : Ptr_Typ := null;
- 
-       Add_Item (Hook_Decl);
- 
-       --  Attach the transient result to the hook. Generate:
- 
-       --    Hook := Ptr_Typ (Res);
- 
-       Add_Item (Hook_Assign);
- 
-       --  The original initialization expression now references the value of
-       --  the temporary function result. Generate:
- 
-       --    Res.all
- 
-       Rewrite (Init_Expr,
-         Make_Explicit_Dereference (Loc,
-           Prefix => New_Occurrence_Of (Res_Id, Loc)));
-    end Process_Transient_Component;
- 
-    --------------------------------------------
-    -- Process_Transient_Component_Completion --
-    --------------------------------------------
- 
-    procedure Process_Transient_Component_Completion
-      (Loc        : Source_Ptr;
-       Aggr       : Node_Id;
-       Fin_Call   : Node_Id;
-       Hook_Clear : Node_Id;
-       Stmts      : List_Id)
-    is
-       Exceptions_OK : constant Boolean :=
-                         not Restriction_Active (No_Exception_Propagation);
- 
-    begin
-       pragma Assert (Present (Hook_Clear));
- 
-       --  Generate the following code if exception propagation is allowed:
- 
-       --    declare
-       --       Abort : constant Boolean := Triggered_By_Abort;
-       --         <or>
-       --       Abort : constant Boolean := False;  --  no abort
- 
-       --       E      : Exception_Occurrence;
-       --       Raised : Boolean := False;
- 
-       --    begin
-       --       [Abort_Defer;]
- 
-       --       begin
-       --          Hook := null;
-       --          [Deep_]Finalize (Res.all);
- 
-       --       exception
-       --          when others =>
-       --             if not Raised then
-       --                Raised := True;
-       --                Save_Occurrence (E,
-       --                  Get_Curent_Excep.all.all);
-       --             end if;
-       --       end;
- 
-       --       [Abort_Undefer;]
- 
-       --       if Raised and then not Abort then
-       --          Raise_From_Controlled_Operation (E);
-       --       end if;
-       --    end;
- 
-       if Exceptions_OK then
-          Abort_And_Exception : declare
-             Blk_Decls : constant List_Id := New_List;
-             Blk_Stmts : constant List_Id := New_List;
-             Fin_Stmts : constant List_Id := New_List;
- 
-             Fin_Data : Finalization_Exception_Data;
- 
-          begin
-             --  Create the declarations of the two flags and the exception
-             --  occurrence.
- 
-             Build_Object_Declarations (Fin_Data, Blk_Decls, Loc);
- 
-             --  Generate:
-             --    Abort_Defer;
- 
-             if Abort_Allowed then
-                Append_To (Blk_Stmts,
-                  Build_Runtime_Call (Loc, RE_Abort_Defer));
-             end if;
- 
-             --  Wrap the hook clear and the finalization call in order to trap
-             --  a potential exception.
- 
-             Append_To (Fin_Stmts, Hook_Clear);
- 
-             if Present (Fin_Call) then
-                Append_To (Fin_Stmts, Fin_Call);
-             end if;
- 
-             Append_To (Blk_Stmts,
-               Make_Block_Statement (Loc,
-                 Handled_Statement_Sequence =>
-                   Make_Handled_Sequence_Of_Statements (Loc,
-                     Statements         => Fin_Stmts,
-                     Exception_Handlers => New_List (
-                       Build_Exception_Handler (Fin_Data)))));
- 
-             --  Generate:
-             --    Abort_Undefer;
- 
-             if Abort_Allowed then
-                Append_To (Blk_Stmts,
-                  Build_Runtime_Call (Loc, RE_Abort_Undefer));
-             end if;
- 
-             --  Reraise the potential exception with a proper "upgrade" to
-             --  Program_Error if needed.
- 
-             Append_To (Blk_Stmts, Build_Raise_Statement (Fin_Data));
- 
-             --  Wrap everything in a block
- 
-             Append_To (Stmts,
-               Make_Block_Statement (Loc,
-                 Declarations               => Blk_Decls,
-                 Handled_Statement_Sequence =>
-                   Make_Handled_Sequence_Of_Statements (Loc,
-                     Statements => Blk_Stmts)));
-          end Abort_And_Exception;
- 
-       --  Generate the following code if exception propagation is not allowed
-       --  and aborts are allowed:
- 
-       --    begin
-       --       Abort_Defer;
-       --       Hook := null;
-       --       [Deep_]Finalize (Res.all);
-       --    at end
-       --       Abort_Undefer_Direct;
-       --    end;
- 
-       elsif Abort_Allowed then
-          Abort_Only : declare
-             Blk_Stmts : constant List_Id := New_List;
- 
-          begin
-             Append_To (Blk_Stmts, Build_Runtime_Call (Loc, RE_Abort_Defer));
-             Append_To (Blk_Stmts, Hook_Clear);
- 
-             if Present (Fin_Call) then
-                Append_To (Blk_Stmts, Fin_Call);
-             end if;
- 
-             Append_To (Stmts,
-               Build_Abort_Undefer_Block (Loc,
-                 Stmts   => Blk_Stmts,
-                 Context => Aggr));
-          end Abort_Only;
- 
-       --  Otherwise generate:
- 
-       --    Hook := null;
-       --    [Deep_]Finalize (Res.all);
- 
-       else
-          Append_To (Stmts, Hook_Clear);
- 
-          if Present (Fin_Call) then
-             Append_To (Stmts, Fin_Call);
-          end if;
-       end if;
-    end Process_Transient_Component_Completion;
- 
     ---------------------
     -- Sort_Case_Table --
     ---------------------
--- 9294,9299 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_aggr.ads gcc-14.1.0/gcc/ada/exp_aggr.ads
*** gcc-13.2.0/gcc/ada/exp_aggr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_aggr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_atag.adb gcc-14.1.0/gcc/ada/exp_atag.adb
*** gcc-13.2.0/gcc/ada/exp_atag.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_atag.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_atag.ads gcc-14.1.0/gcc/ada/exp_atag.ads
*** gcc-13.2.0/gcc/ada/exp_atag.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_atag.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_attr.adb gcc-14.1.0/gcc/ada/exp_attr.adb
*** gcc-13.2.0/gcc/ada/exp_attr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_attr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Uname;          use Uname;
*** 77,84 ****
--- 77,131 ----
  with Urealp;         use Urealp;
  with Validsw;        use Validsw;
  
+ with GNAT.HTable;
+ 
  package body Exp_Attr is
  
+    package Cached_Streaming_Ops is
+ 
+       Map_Size : constant := 63;
+       subtype Header_Num is Integer range 0 .. Map_Size - 1;
+ 
+       function Streaming_Op_Hash (Id : Entity_Id) return Header_Num is
+         (Header_Num (Id mod Map_Size));
+ 
+       --  Cache used to avoid building duplicate subprograms for a single
+       --  type/streaming-attribute pair.
+ 
+       package Read_Map is new GNAT.HTable.Simple_HTable
+         (Header_Num => Header_Num,
+          Key        => Entity_Id,
+          Element    => Entity_Id,
+          No_Element => Empty,
+          Hash       => Streaming_Op_Hash,
+          Equal      => "=");
+ 
+       package Write_Map is new GNAT.HTable.Simple_HTable
+         (Header_Num => Header_Num,
+          Key        => Entity_Id,
+          Element    => Entity_Id,
+          No_Element => Empty,
+          Hash       => Streaming_Op_Hash,
+          Equal      => "=");
+ 
+       package Input_Map is new GNAT.HTable.Simple_HTable
+         (Header_Num => Header_Num,
+          Key        => Entity_Id,
+          Element    => Entity_Id,
+          No_Element => Empty,
+          Hash       => Streaming_Op_Hash,
+          Equal      => "=");
+ 
+       package Output_Map is new GNAT.HTable.Simple_HTable
+         (Header_Num => Header_Num,
+          Key        => Entity_Id,
+          Element    => Entity_Id,
+          No_Element => Empty,
+          Hash       => Streaming_Op_Hash,
+          Equal      => "=");
+ 
+    end Cached_Streaming_Ops;
+ 
     -----------------------
     -- Local Subprograms --
     -----------------------
*************** package body Exp_Attr is
*** 210,222 ****
     --  is not a floating-point type.
  
     function Find_Stream_Subprogram
!      (Typ : Entity_Id;
!       Nam : TSS_Name_Type) return Entity_Id;
     --  Returns the stream-oriented subprogram attribute for Typ. For tagged
     --  types, the corresponding primitive operation is looked up, else the
     --  appropriate TSS from the type itself, or from its closest ancestor
     --  defining it, is returned. In both cases, inheritance of representation
!    --  aspects is thus taken into account.
  
     function Full_Base (T : Entity_Id) return Entity_Id;
     --  The stream functions need to examine the underlying representation of
--- 257,271 ----
     --  is not a floating-point type.
  
     function Find_Stream_Subprogram
!      (Typ      : Entity_Id;
!       Nam      : TSS_Name_Type;
!       Attr_Ref : Node_Id) return Entity_Id;
     --  Returns the stream-oriented subprogram attribute for Typ. For tagged
     --  types, the corresponding primitive operation is looked up, else the
     --  appropriate TSS from the type itself, or from its closest ancestor
     --  defining it, is returned. In both cases, inheritance of representation
!    --  aspects is thus taken into account. Attr_Ref is used to identify the
!    --  point from which the function result will be referenced.
  
     function Full_Base (T : Entity_Id) return Entity_Id;
     --  The stream functions need to examine the underlying representation of
*************** package body Exp_Attr is
*** 1354,1367 ****
  
        --  Local variables
  
!       Pref      : constant Node_Id   := Prefix (N);
!       Base_Typ  : constant Entity_Id := Base_Type (Etype (Pref));
!       Exprs     : constant List_Id   := Expressions (N);
        Aux_Decl  : Node_Id;
        Blk       : Node_Id := Empty;
        Decls     : List_Id;
        Installed : Boolean;
-       Loc       : Source_Ptr;
        Loop_Id   : Entity_Id;
        Loop_Stmt : Node_Id;
        Result    : Node_Id := Empty;
--- 1403,1416 ----
  
        --  Local variables
  
!       Pref      : constant Node_Id    := Prefix (N);
!       Base_Typ  : constant Entity_Id  := Base_Type (Etype (Pref));
!       Exprs     : constant List_Id    := Expressions (N);
!       Loc       : constant Source_Ptr := Sloc (N);
        Aux_Decl  : Node_Id;
        Blk       : Node_Id := Empty;
        Decls     : List_Id;
        Installed : Boolean;
        Loop_Id   : Entity_Id;
        Loop_Stmt : Node_Id;
        Result    : Node_Id := Empty;
*************** package body Exp_Attr is
*** 1402,1409 ****
           Loop_Id := Entity (Identifier (Loop_Stmt));
        end if;
  
-       Loc := Sloc (Loop_Stmt);
- 
        --  Step 2: Transform the loop
  
        --  The loop has already been transformed during the expansion of a prior
--- 1451,1456 ----
*************** package body Exp_Attr is
*** 4117,4134 ****
        -----------
  
        when Attribute_Input => Input : declare
!          P_Type : constant Entity_Id := Entity (Pref);
!          B_Type : constant Entity_Id := Base_Type (P_Type);
!          U_Type : constant Entity_Id := Underlying_Type (P_Type);
!          Strm   : constant Node_Id   := First (Exprs);
!          Fname  : Entity_Id;
!          Decl   : Node_Id;
!          Call   : Node_Id;
!          Prag   : Node_Id;
!          Arg2   : Node_Id;
!          Rfunc  : Node_Id;
  
!          Cntrl  : Node_Id := Empty;
           --  Value for controlling argument in call. Always Empty except in
           --  the dispatching (class-wide type) case, where it is a reference
           --  to the dummy object initialized to the right internal tag.
--- 4164,4182 ----
        -----------
  
        when Attribute_Input => Input : declare
!          P_Type  : constant Entity_Id := Entity (Pref);
!          B_Type  : constant Entity_Id := Base_Type (P_Type);
!          U_Type  : constant Entity_Id := Underlying_Type (P_Type);
!          Strm    : constant Node_Id   := First (Exprs);
!          Has_TSS : Boolean := False;
!          Fname   : Entity_Id;
!          Decl    : Node_Id;
!          Call    : Node_Id;
!          Prag    : Node_Id;
!          Arg2    : Node_Id;
!          Rfunc   : Node_Id;
  
!          Cntrl   : Node_Id := Empty;
           --  Value for controlling argument in call. Always Empty except in
           --  the dispatching (class-wide type) case, where it is a reference
           --  to the dummy object initialized to the right internal tag.
*************** package body Exp_Attr is
*** 4194,4203 ****
  
           --  If there is a TSS for Input, just call it
  
!          Fname := Find_Stream_Subprogram (P_Type, TSS_Stream_Input);
  
           if Present (Fname) then
!             null;
  
           else
              --  If there is a Stream_Convert pragma, use it, we rewrite
--- 4242,4251 ----
  
           --  If there is a TSS for Input, just call it
  
!          Fname := Find_Stream_Subprogram (P_Type, TSS_Stream_Input, N);
  
           if Present (Fname) then
!             Has_TSS := True;
  
           else
              --  If there is a Stream_Convert pragma, use it, we rewrite
*************** package body Exp_Attr is
*** 4254,4260 ****
  
                 if Present (Find_Inherited_TSS (P_Type, TSS_Stream_Read)) then
                    Build_Record_Or_Elementary_Input_Function
!                     (Loc, P_Type, Decl, Fname);
                    Insert_Action (N, Decl);
  
                 --  For normal cases, we call the I_xxx routine directly
--- 4302,4308 ----
  
                 if Present (Find_Inherited_TSS (P_Type, TSS_Stream_Read)) then
                    Build_Record_Or_Elementary_Input_Function
!                     (P_Type, Decl, Fname);
                    Insert_Action (N, Decl);
  
                 --  For normal cases, we call the I_xxx routine directly
*************** package body Exp_Attr is
*** 4268,4274 ****
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Input_Function (Loc, U_Type, Decl, Fname);
                 Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Dispatching case with class-wide type
--- 4316,4322 ----
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Input_Function (U_Type, Decl, Fname);
                 Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Dispatching case with class-wide type
*************** package body Exp_Attr is
*** 4397,4403 ****
                 --  constrained discriminants (see Ada 2012 AI05-0192).
  
                 Build_Record_Or_Elementary_Input_Function
!                  (Loc, U_Type, Decl, Fname);
                 Insert_Action (N, Decl);
  
                 if Nkind (Parent (N)) = N_Object_Declaration
--- 4445,4451 ----
                 --  constrained discriminants (see Ada 2012 AI05-0192).
  
                 Build_Record_Or_Elementary_Input_Function
!                  (U_Type, Decl, Fname);
                 Insert_Action (N, Decl);
  
                 if Nkind (Parent (N)) = N_Object_Declaration
*************** package body Exp_Attr is
*** 4415,4421 ****
                       while Present (Comp) loop
                          Func :=
                            Find_Stream_Subprogram
!                             (Etype (Comp), TSS_Stream_Read);
  
                          if Present (Func) then
                             Freeze_Stream_Subprogram (Func);
--- 4463,4469 ----
                       while Present (Comp) loop
                          Func :=
                            Find_Stream_Subprogram
!                             (Etype (Comp), TSS_Stream_Read, N);
  
                          if Present (Func) then
                             Freeze_Stream_Subprogram (Func);
*************** package body Exp_Attr is
*** 4445,4450 ****
--- 4493,4502 ----
           if Nkind (Parent (N)) = N_Object_Declaration then
              Freeze_Stream_Subprogram (Fname);
           end if;
+ 
+          if not Has_TSS then
+             Cached_Streaming_Ops.Input_Map.Set (P_Type, Fname);
+          end if;
        end Input;
  
        -------------------
*************** package body Exp_Attr is
*** 4999,5005 ****
           if Present (Subp) then
              Ins_Nod := Subp;
  
!          --  General case where the postcondtion checks occur after the call
           --  to _Wrapped_Statements.
  
           else
--- 5051,5057 ----
           if Present (Subp) then
              Ins_Nod := Subp;
  
!          --  General case where the postcondition checks occur after the call
           --  to _Wrapped_Statements.
  
           else
*************** package body Exp_Attr is
*** 5281,5293 ****
        ------------
  
        when Attribute_Output => Output : declare
!          P_Type : constant Entity_Id := Entity (Pref);
!          U_Type : constant Entity_Id := Underlying_Type (P_Type);
!          Pname  : Entity_Id;
!          Decl   : Node_Id;
!          Prag   : Node_Id;
!          Arg3   : Node_Id;
!          Wfunc  : Node_Id;
  
        begin
           --  If no underlying type, we have an error that will be diagnosed
--- 5333,5346 ----
        ------------
  
        when Attribute_Output => Output : declare
!          P_Type  : constant Entity_Id := Entity (Pref);
!          U_Type  : constant Entity_Id := Underlying_Type (P_Type);
!          Has_TSS : Boolean := False;
!          Pname   : Entity_Id;
!          Decl    : Node_Id;
!          Prag    : Node_Id;
!          Arg3    : Node_Id;
!          Wfunc   : Node_Id;
  
        begin
           --  If no underlying type, we have an error that will be diagnosed
*************** package body Exp_Attr is
*** 5312,5321 ****
  
           --  If TSS for Output is present, just call it
  
!          Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Output);
  
           if Present (Pname) then
!             null;
  
           else
              --  If there is a Stream_Convert pragma, use it, we rewrite
--- 5365,5374 ----
  
           --  If TSS for Output is present, just call it
  
!          Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Output, N);
  
           if Present (Pname) then
!             Has_TSS := True;
  
           else
              --  If there is a Stream_Convert pragma, use it, we rewrite
*************** package body Exp_Attr is
*** 5376,5382 ****
  
                 if Present (Find_Inherited_TSS (P_Type, TSS_Stream_Write)) then
                    Build_Record_Or_Elementary_Output_Procedure
!                     (Loc, P_Type, Decl, Pname);
                    Insert_Action (N, Decl);
  
                 --  For normal cases, we call the W_xxx routine directly
--- 5429,5435 ----
  
                 if Present (Find_Inherited_TSS (P_Type, TSS_Stream_Write)) then
                    Build_Record_Or_Elementary_Output_Procedure
!                     (P_Type, Decl, Pname);
                    Insert_Action (N, Decl);
  
                 --  For normal cases, we call the W_xxx routine directly
*************** package body Exp_Attr is
*** 5390,5396 ****
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Output_Procedure (Loc, U_Type, Decl, Pname);
                 Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Class-wide case, first output external tag, then dispatch
--- 5443,5449 ----
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Output_Procedure (U_Type, Decl, Pname);
                 Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Class-wide case, first output external tag, then dispatch
*************** package body Exp_Attr is
*** 5501,5507 ****
                 end if;
  
                 Build_Record_Or_Elementary_Output_Procedure
!                  (Loc, Base_Type (U_Type), Decl, Pname);
                 Insert_Action (N, Decl);
              end if;
           end if;
--- 5554,5560 ----
                 end if;
  
                 Build_Record_Or_Elementary_Output_Procedure
!                  (Base_Type (U_Type), Decl, Pname);
                 Insert_Action (N, Decl);
              end if;
           end if;
*************** package body Exp_Attr is
*** 5509,5514 ****
--- 5562,5571 ----
           --  If we fall through, Pname is the name of the procedure to call
  
           Rewrite_Attribute_Proc_Call (Pname);
+ 
+          if not Has_TSS then
+             Cached_Streaming_Ops.Output_Map.Set (P_Type, Pname);
+          end if;
        end Output;
  
        ---------
*************** package body Exp_Attr is
*** 5849,5855 ****
           if No (Pname) then
              --  If Put_Image is disabled, call the "unknown" version
  
!             if not Enable_Put_Image (U_Type) then
                 Rewrite (N, Build_Unknown_Put_Image_Call (N));
                 Analyze (N);
                 return;
--- 5906,5912 ----
           if No (Pname) then
              --  If Put_Image is disabled, call the "unknown" version
  
!             if not Put_Image_Enabled (U_Type) then
                 Rewrite (N, Build_Unknown_Put_Image_Call (N));
                 Analyze (N);
                 return;
*************** package body Exp_Attr is
*** 5880,5886 ****
  
                 --  ????Need Find_Optional_Prim_Op instead of Find_Prim_Op,
                 --  because we might be deriving from a predefined type, which
!                --  currently has Enable_Put_Image False.
  
                 if No (Pname) then
                    Rewrite (N, Build_Unknown_Put_Image_Call (N));
--- 5937,5943 ----
  
                 --  ????Need Find_Optional_Prim_Op instead of Find_Prim_Op,
                 --  because we might be deriving from a predefined type, which
!                --  currently has Put_Image_Enabled False.
  
                 if No (Pname) then
                    Rewrite (N, Build_Unknown_Put_Image_Call (N));
*************** package body Exp_Attr is
*** 5978,6002 ****
        when Attribute_Reduce =>
           declare
              Loc : constant Source_Ptr := Sloc (N);
!             E1  : constant Node_Id := First (Expressions (N));
!             E2  : constant Node_Id := Next (E1);
!             Bnn : constant Entity_Id := Make_Temporary (Loc, 'B', N);
!             Typ : constant Entity_Id := Etype (N);
  
!             New_Loop : Node_Id;
!             Stat     : Node_Id;
  
              function Build_Stat (Comp : Node_Id) return Node_Id;
              --  The reducer can be a function, a procedure whose first
              --  parameter is in-out, or an attribute that is a function,
              --  which (for now) can only be Min/Max. This subprogram
!             --  builds the corresponding computation for the generated loop.
  
              ----------------
              -- Build_Stat --
              ----------------
  
              function Build_Stat (Comp : Node_Id) return Node_Id is
              begin
                 if Nkind (E1) = N_Attribute_Reference then
                    Stat := Make_Assignment_Statement (Loc,
--- 6035,6061 ----
        when Attribute_Reduce =>
           declare
              Loc : constant Source_Ptr := Sloc (N);
!             E1  : constant Node_Id    := First (Expressions (N));
!             E2  : constant Node_Id    := Next (E1);
!             Bnn : constant Entity_Id  := Make_Temporary (Loc, 'B', N);
  
!             Accum_Typ : Entity_Id := Empty;
!             New_Loop  : Node_Id;
  
              function Build_Stat (Comp : Node_Id) return Node_Id;
              --  The reducer can be a function, a procedure whose first
              --  parameter is in-out, or an attribute that is a function,
              --  which (for now) can only be Min/Max. This subprogram
!             --  builds the corresponding computation for the generated loop
!             --  and retrieves the accumulator type as per RM 4.5.10(19/5).
  
              ----------------
              -- Build_Stat --
              ----------------
  
              function Build_Stat (Comp : Node_Id) return Node_Id is
+                Stat : Node_Id;
+ 
              begin
                 if Nkind (E1) = N_Attribute_Reference then
                    Stat := Make_Assignment_Statement (Loc,
*************** package body Exp_Attr is
*** 6074,6079 ****
--- 6133,6142 ----
                        End_Label => Empty,
                        Statements =>
                          New_List (Build_Stat (Relocate_Node (Expr))));
+ 
+                   --  Look at the context to find the type.
+ 
+                   Accum_Typ := Etype (N);
                 end;
  
              else
*************** package body Exp_Attr is
*** 6082,6090 ****
                 --  a container with the proper aspects.
  
                 declare
-                   Iter : Node_Id;
                    Elem : constant Entity_Id := Make_Temporary (Loc, 'E', N);
  
                 begin
                    Iter :=
                      Make_Iterator_Specification (Loc,
--- 6145,6154 ----
                 --  a container with the proper aspects.
  
                 declare
                    Elem : constant Entity_Id := Make_Temporary (Loc, 'E', N);
  
+                   Iter : Node_Id;
+ 
                 begin
                    Iter :=
                      Make_Iterator_Specification (Loc,
*************** package body Exp_Attr is
*** 6101,6106 ****
--- 6165,6205 ----
                        End_Label => Empty,
                        Statements => New_List (
                          Build_Stat (New_Occurrence_Of (Elem, Loc))));
+ 
+                   --  Look at the prefix to find the type. This is
+                   --  modeled on Analyze_Iterator_Specification in Sem_Ch5.
+ 
+                   declare
+                      Ptyp : constant Entity_Id :=
+                               Base_Type (Etype (Prefix (N)));
+ 
+                   begin
+                      if Is_Array_Type (Ptyp) then
+                         Accum_Typ := Component_Type (Ptyp);
+ 
+                      elsif Has_Aspect (Ptyp, Aspect_Iterable) then
+                         declare
+                            Element : constant Entity_Id :=
+                                        Get_Iterable_Type_Primitive
+                                          (Ptyp, Name_Element);
+                         begin
+                            if Present (Element) then
+                               Accum_Typ := Etype (Element);
+                            end if;
+                         end;
+ 
+                      else
+                         declare
+                            Element : constant Node_Id :=
+                                        Find_Value_Of_Aspect
+                                          (Ptyp, Aspect_Iterator_Element);
+                         begin
+                            if Present (Element) then
+                               Accum_Typ := Entity (Element);
+                            end if;
+                         end;
+                      end if;
+                   end;
                 end;
              end if;
  
*************** package body Exp_Attr is
*** 6110,6119 ****
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Bnn,
                       Object_Definition   =>
!                        New_Occurrence_Of (Typ, Loc),
                       Expression => Relocate_Node (E2)), New_Loop),
                   Expression => New_Occurrence_Of (Bnn, Loc)));
!             Analyze_And_Resolve (N, Typ);
           end;
  
        ----------
--- 6209,6219 ----
                     Make_Object_Declaration (Loc,
                       Defining_Identifier => Bnn,
                       Object_Definition   =>
!                        New_Occurrence_Of (Accum_Typ, Loc),
                       Expression => Relocate_Node (E2)), New_Loop),
                   Expression => New_Occurrence_Of (Bnn, Loc)));
! 
!             Analyze_And_Resolve (N, Accum_Typ);
           end;
  
        ----------
*************** package body Exp_Attr is
*** 6121,6136 ****
        ----------
  
        when Attribute_Read => Read : declare
!          P_Type : constant Entity_Id := Entity (Pref);
!          B_Type : constant Entity_Id := Base_Type (P_Type);
!          U_Type : constant Entity_Id := Underlying_Type (P_Type);
!          Pname  : Entity_Id;
!          Decl   : Node_Id;
!          Prag   : Node_Id;
!          Arg2   : Node_Id;
!          Rfunc  : Node_Id;
!          Lhs    : Node_Id;
!          Rhs    : Node_Id;
  
        begin
           --  If no underlying type, we have an error that will be diagnosed
--- 6221,6237 ----
        ----------
  
        when Attribute_Read => Read : declare
!          P_Type  : constant Entity_Id := Entity (Pref);
!          B_Type  : constant Entity_Id := Base_Type (P_Type);
!          U_Type  : constant Entity_Id := Underlying_Type (P_Type);
!          Has_TSS : Boolean := False;
!          Pname   : Entity_Id;
!          Decl    : Node_Id;
!          Prag    : Node_Id;
!          Arg2    : Node_Id;
!          Rfunc   : Node_Id;
!          Lhs     : Node_Id;
!          Rhs     : Node_Id;
  
        begin
           --  If no underlying type, we have an error that will be diagnosed
*************** package body Exp_Attr is
*** 6155,6164 ****
  
           --  The simple case, if there is a TSS for Read, just call it
  
!          Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Read);
  
           if Present (Pname) then
!             null;
  
           else
              --  If there is a Stream_Convert pragma, use it, we rewrite
--- 6256,6265 ----
  
           --  The simple case, if there is a TSS for Read, just call it
  
!          Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Read, N);
  
           if Present (Pname) then
!             Has_TSS := True;
  
           else
              --  If there is a Stream_Convert pragma, use it, we rewrite
*************** package body Exp_Attr is
*** 6258,6264 ****
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Read_Procedure (N, U_Type, Decl, Pname);
                 Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Tagged type case, use the primitive Read function. Note that
--- 6359,6365 ----
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Read_Procedure (U_Type, Decl, Pname);
                 Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Tagged type case, use the primitive Read function. Note that
*************** package body Exp_Attr is
*** 6292,6301 ****
  
                 if Has_Defaulted_Discriminants (U_Type) then
                    Build_Mutable_Record_Read_Procedure
!                     (Loc, Full_Base (U_Type), Decl, Pname);
                 else
                    Build_Record_Read_Procedure
!                     (Loc, Full_Base (U_Type), Decl, Pname);
                 end if;
  
                 Insert_Action (N, Decl);
--- 6393,6402 ----
  
                 if Has_Defaulted_Discriminants (U_Type) then
                    Build_Mutable_Record_Read_Procedure
!                     (Full_Base (U_Type), Decl, Pname);
                 else
                    Build_Record_Read_Procedure
!                     (Full_Base (U_Type), Decl, Pname);
                 end if;
  
                 Insert_Action (N, Decl);
*************** package body Exp_Attr is
*** 6303,6308 ****
--- 6404,6413 ----
           end if;
  
           Rewrite_Attribute_Proc_Call (Pname);
+ 
+          if not Has_TSS then
+             Cached_Streaming_Ops.Read_Map.Set (P_Type, Pname);
+          end if;
        end Read;
  
        ---------
*************** package body Exp_Attr is
*** 7807,7819 ****
        -----------
  
        when Attribute_Write => Write : declare
!          P_Type : constant Entity_Id := Entity (Pref);
!          U_Type : constant Entity_Id := Underlying_Type (P_Type);
!          Pname  : Entity_Id;
!          Decl   : Node_Id;
!          Prag   : Node_Id;
!          Arg3   : Node_Id;
!          Wfunc  : Node_Id;
  
        begin
           --  If no underlying type, we have an error that will be diagnosed
--- 7912,7925 ----
        -----------
  
        when Attribute_Write => Write : declare
!          P_Type  : constant Entity_Id := Entity (Pref);
!          U_Type  : constant Entity_Id := Underlying_Type (P_Type);
!          Has_TSS : Boolean := False;
!          Pname   : Entity_Id;
!          Decl    : Node_Id;
!          Prag    : Node_Id;
!          Arg3    : Node_Id;
!          Wfunc   : Node_Id;
  
        begin
           --  If no underlying type, we have an error that will be diagnosed
*************** package body Exp_Attr is
*** 7838,7847 ****
  
           --  The simple case, if there is a TSS for Write, just call it
  
!          Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Write);
  
           if Present (Pname) then
!             null;
  
           else
              --  If there is a Stream_Convert pragma, use it, we rewrite
--- 7944,7953 ----
  
           --  The simple case, if there is a TSS for Write, just call it
  
!          Pname := Find_Stream_Subprogram (P_Type, TSS_Stream_Write, N);
  
           if Present (Pname) then
!             Has_TSS := True;
  
           else
              --  If there is a Stream_Convert pragma, use it, we rewrite
*************** package body Exp_Attr is
*** 7901,7907 ****
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Write_Procedure (N, U_Type, Decl, Pname);
                 Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Tagged type case, use the primitive Write function. Note that
--- 8007,8013 ----
              --  Array type case
  
              elsif Is_Array_Type (U_Type) then
!                Build_Array_Write_Procedure (U_Type, Decl, Pname);
                 Compile_Stream_Body_In_Scope (N, Decl, U_Type);
  
              --  Tagged type case, use the primitive Write function. Note that
*************** package body Exp_Attr is
*** 7942,7951 ****
  
                 if Has_Defaulted_Discriminants (U_Type) then
                    Build_Mutable_Record_Write_Procedure
!                     (Loc, Full_Base (U_Type), Decl, Pname);
                 else
                    Build_Record_Write_Procedure
!                     (Loc, Full_Base (U_Type), Decl, Pname);
                 end if;
  
                 Insert_Action (N, Decl);
--- 8048,8057 ----
  
                 if Has_Defaulted_Discriminants (U_Type) then
                    Build_Mutable_Record_Write_Procedure
!                     (Full_Base (U_Type), Decl, Pname);
                 else
                    Build_Record_Write_Procedure
!                     (Full_Base (U_Type), Decl, Pname);
                 end if;
  
                 Insert_Action (N, Decl);
*************** package body Exp_Attr is
*** 7955,7960 ****
--- 8061,8070 ----
           --  If we fall through, Pname is the procedure to be called
  
           Rewrite_Attribute_Proc_Call (Pname);
+ 
+          if not Has_TSS then
+             Cached_Streaming_Ops.Write_Map.Set (P_Type, Pname);
+          end if;
        end Write;
  
        --  The following attributes are handled by the back end (except that
*************** package body Exp_Attr is
*** 8526,8541 ****
     ----------------------------
  
     function Find_Stream_Subprogram
!      (Typ : Entity_Id;
!       Nam : TSS_Name_Type) return Entity_Id
     is
        Base_Typ : constant Entity_Id := Base_Type (Typ);
!       Ent      : constant Entity_Id := TSS (Typ, Nam);
     begin
        if Present (Ent) then
           return Ent;
        end if;
  
        --  Stream attributes for strings are expanded into library calls. The
        --  following checks are disabled when the run-time is not available or
        --  when compiling predefined types due to bootstrap issues. As a result,
--- 8636,8728 ----
     ----------------------------
  
     function Find_Stream_Subprogram
!      (Typ      : Entity_Id;
!       Nam      : TSS_Name_Type;
!       Attr_Ref : Node_Id) return Entity_Id
     is
+ 
+       function In_Available_Context (Ent : Entity_Id) return Boolean;
+       --  Ent is a candidate result for Find_Stream_Subprogram.
+       --  If, for example, a subprogram is declared within a case
+       --  alternative then Gigi does not want to see a call to it from
+       --  outside of the case alternative. Compare placement of Ent and
+       --  Attr_Ref to prevent this situation (by returning False).
+ 
+       --------------------------
+       -- In_Available_Context --
+       --------------------------
+ 
+       function In_Available_Context (Ent : Entity_Id) return Boolean is
+          Decl : constant Node_Id := Enclosing_Declaration (Ent);
+       begin
+          if Has_Declarations (Parent (Decl)) then
+             return In_Subtree (Attr_Ref, Root => Parent (Decl));
+          elsif Is_List_Member (Decl) then
+             declare
+                List_Elem : Node_Id := Next (Decl);
+             begin
+                while Present (List_Elem) loop
+                   if In_Subtree (Attr_Ref, Root => List_Elem) then
+                      return True;
+                   end if;
+                   Next (List_Elem);
+                end loop;
+                return False;
+             end;
+          else
+             return False; --  Can this occur ???
+          end if;
+       end In_Available_Context;
+ 
+       --  Local declarations
+ 
        Base_Typ : constant Entity_Id := Base_Type (Typ);
!       Ent      : Entity_Id := TSS (Typ, Nam);
! 
!    --  Start of processing for Find_Stream_Subprogram
! 
     begin
        if Present (Ent) then
           return Ent;
        end if;
  
+       --  Everything after this point is an optimization. In other words,
+       --  there should be no *correctness* problems if we were to
+       --  unconditionally return Empty here.
+ 
+       if Is_Unchecked_Union (Base_Typ) then
+          --  Conservatively avoid possible problems (e.g., Write behaves
+          --  differently for a U_U type when called by Output vs. when
+          --  called from elsewhere).
+ 
+          return Empty;
+       end if;
+ 
+       if Nam = TSS_Stream_Read then
+          Ent := Cached_Streaming_Ops.Read_Map.Get (Typ);
+       elsif Nam = TSS_Stream_Write then
+          Ent := Cached_Streaming_Ops.Write_Map.Get (Typ);
+       elsif Nam = TSS_Stream_Input then
+          Ent := Cached_Streaming_Ops.Input_Map.Get (Typ);
+       elsif Nam = TSS_Stream_Output then
+          Ent := Cached_Streaming_Ops.Output_Map.Get (Typ);
+       end if;
+ 
+       if Present (Ent) then
+          --  Can't reuse Ent if it is no longer in scope
+ 
+          if In_Open_Scopes (Scope (Ent))
+ 
+            --  The preceding In_Open_Scopes test may not suffice if
+            --  case alternatives are involved.
+            and then In_Available_Context (Ent)
+          then
+             return Ent;
+          else
+             Ent := Empty;
+          end if;
+       end if;
+ 
        --  Stream attributes for strings are expanded into library calls. The
        --  following checks are disabled when the run-time is not available or
        --  when compiling predefined types due to bootstrap issues. As a result,
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_attr.ads gcc-14.1.0/gcc/ada/exp_attr.ads
*** gcc-13.2.0/gcc/ada/exp_attr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_attr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_cg.adb gcc-14.1.0/gcc/ada/exp_cg.adb
*** gcc-13.2.0/gcc/ada/exp_cg.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_cg.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_cg.ads gcc-14.1.0/gcc/ada/exp_cg.ads
*** gcc-13.2.0/gcc/ada/exp_cg.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_cg.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2010-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2010-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch10.ads gcc-14.1.0/gcc/ada/exp_ch10.ads
*** gcc-13.2.0/gcc/ada/exp_ch10.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch10.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch11.adb gcc-14.1.0/gcc/ada/exp_ch11.adb
*** gcc-13.2.0/gcc/ada/exp_ch11.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch11.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch11 is
*** 1210,1216 ****
  
              declare
                 Use_Test_And_Set_Flag : constant Boolean :=
!                  (not Global_No_Tasking)
                   and then RTE_Available (RE_Test_And_Set_Flag);
  
                 Flag_Decl : Node_Id;
--- 1210,1216 ----
  
              declare
                 Use_Test_And_Set_Flag : constant Boolean :=
!                  not Global_No_Tasking
                   and then RTE_Available (RE_Test_And_Set_Flag);
  
                 Flag_Decl : Node_Id;
*************** package body Exp_Ch11 is
*** 1592,1601 ****
  
        else
           --  Bypass expansion to a run-time call when back-end exception
!          --  handling is active, unless the target is CodePeer or GNATprove.
!          --  In CodePeer, raising an exception is treated as an error, while in
!          --  GNATprove all code with exceptions falls outside the subset of
!          --  code which can be formally analyzed.
  
           if not CodePeer_Mode then
              return;
--- 1592,1599 ----
  
        else
           --  Bypass expansion to a run-time call when back-end exception
!          --  handling is active, unless the target is CodePeer, where
!          --  raising an exception is treated as an error.
  
           if not CodePeer_Mode then
              return;
*************** package body Exp_Ch11 is
*** 1604,1610 ****
           --  Find innermost enclosing exception handler (there must be one,
           --  since the semantics has already verified that this raise statement
           --  is valid, and a raise with no arguments is only permitted in the
!          --  context of an exception handler.
  
           Ehand := Parent (N);
           while Nkind (Ehand) /= N_Exception_Handler loop
--- 1602,1608 ----
           --  Find innermost enclosing exception handler (there must be one,
           --  since the semantics has already verified that this raise statement
           --  is valid, and a raise with no arguments is only permitted in the
!          --  context of an exception handler).
  
           Ehand := Parent (N);
           while Nkind (Ehand) /= N_Exception_Handler loop
*************** package body Exp_Ch11 is
*** 1803,1897 ****
           --  Test for handled sequence of statements with at least one
           --  exception handler which might be the one we are looking for.
  
!          elsif Nkind (P) = N_Handled_Sequence_Of_Statements
!            and then Present (Exception_Handlers (P))
!          then
!             --  Before we proceed we need to check if the node N is covered
!             --  by the statement part of P rather than one of its exception
!             --  handlers (an exception handler obviously does not cover its
!             --  own statements).
! 
!             --  This test is more delicate than might be thought. It is not
!             --  just a matter of checking the Statements (P), because the node
!             --  might be waiting to be wrapped in a transient scope, in which
!             --  case it will end up in the block statements, even though it
!             --  is not there now.
! 
!             if Is_List_Member (N) then
!                declare
!                   LCN : constant List_Id := List_Containing (N);
! 
!                begin
!                   if LCN = Statements (P)
!                        or else
!                      LCN = SSE.Actions_To_Be_Wrapped (Before)
!                        or else
!                      LCN = SSE.Actions_To_Be_Wrapped (After)
!                        or else
!                      LCN = SSE.Actions_To_Be_Wrapped (Cleanup)
!                   then
!                      --  Loop through exception handlers
  
!                      H := First (Exception_Handlers (P));
!                      while Present (H) loop
  
!                         --  Guard against other constructs appearing in the
!                         --  list of exception handlers.
  
!                         if Nkind (H) = N_Exception_Handler then
  
!                            --  Loop through choices in one handler
  
!                            C := First (Exception_Choices (H));
!                            while Present (C) loop
  
!                               --  Deal with others case
  
!                               if Nkind (C) = N_Others_Choice then
  
!                                  --  Matching others handler, but we need
!                                  --  to ensure there is no choice parameter.
!                                  --  If there is, then we don't have a local
!                                  --  handler after all (since we do not allow
!                                  --  choice parameters for local handlers).
  
!                                  if No (Choice_Parameter (H)) then
!                                     return H;
!                                  else
!                                     return Empty;
!                                  end if;
  
!                                  --  If not others must be entity name
  
!                               elsif Nkind (C) /= N_Others_Choice then
!                                  pragma Assert (Is_Entity_Name (C));
!                                  pragma Assert (Present (Entity (C)));
  
!                                  --  Get exception being handled, dealing with
!                                  --  renaming.
  
!                                  EHandle := Get_Renamed_Entity (Entity (C));
  
!                                  --  If match, then check choice parameter
  
!                                  if ERaise = EHandle then
!                                     if No (Choice_Parameter (H)) then
!                                        return H;
!                                     else
!                                        return Empty;
!                                     end if;
!                                  end if;
!                               end if;
  
!                               Next (C);
!                            end loop;
                          end if;
! 
!                         Next (H);
!                      end loop;
                    end if;
!                end;
!             end if;
           end if;
  
           N := P;
--- 1801,1877 ----
           --  Test for handled sequence of statements with at least one
           --  exception handler which might be the one we are looking for.
  
!          --  We need to check if the node N is covered by the statement part of
!          --  P rather than one of its exception handlers (an exception handler
!          --  obviously does not cover its own statements).
  
!          --  This test is more delicate than might be thought. It is not just
!          --  a matter of checking the Statements (P), because the node might be
!          --  waiting to be wrapped in a transient scope, in which case it will
!          --  end up in the block statements, even though it is not there now.
  
!          elsif Nkind (P) = N_Handled_Sequence_Of_Statements
!            and then Is_List_Member (N)
!            and then List_Containing (N) in Statements (P)
!                                          | SSE.Actions_To_Be_Wrapped (Before)
!                                          | SSE.Actions_To_Be_Wrapped (After)
!                                          | SSE.Actions_To_Be_Wrapped (Cleanup)
!          then
!             --  Loop through exception handlers and guard against pragmas
!             --  appearing among them.
  
!             H := First_Non_Pragma (Exception_Handlers (P));
!             while Present (H) loop
  
!                --  Guard against other constructs appearing in the list of
!                --  exception handlers.
  
!                --  Loop through choices in one handler
  
!                C := First (Exception_Choices (H));
!                while Present (C) loop
  
!                   --  Deal with others case
  
!                   if Nkind (C) = N_Others_Choice then
  
!                      --  Matching others handler, but we need to ensure there
!                      --  is no choice parameter. If there is, then we don't
!                      --  have a local handler after all (since we do not allow
!                      --  choice parameters for local handlers).
  
!                      if No (Choice_Parameter (H)) then
!                         return H;
!                      else
!                         return Empty;
!                      end if;
  
!                   --  If not others must be entity name
  
!                   else
!                      pragma Assert (Is_Entity_Name (C));
!                      pragma Assert (Present (Entity (C)));
  
!                      --  Get exception being handled, dealing with renaming
  
!                      EHandle := Get_Renamed_Entity (Entity (C));
  
!                      --  If match, then check choice parameter
  
!                      if ERaise = EHandle then
!                         if No (Choice_Parameter (H)) then
!                            return H;
!                         else
!                            return Empty;
                          end if;
!                      end if;
                    end if;
! 
!                   Next (C);
!                end loop;
! 
!                Next_Non_Pragma (H);
!             end loop;
           end if;
  
           N := P;
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch11.ads gcc-14.1.0/gcc/ada/exp_ch11.ads
*** gcc-13.2.0/gcc/ada/exp_ch11.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch11.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch11 is
*** 59,65 ****
       (Ename : Entity_Id;
        Nod   : Node_Id) return Node_Id;
     --  This function searches for a local exception handler that will handle
!    --  the exception named by Ename. If such a local hander exists, then the
     --  corresponding N_Exception_Handler is returned. If no such handler is
     --  found then Empty is returned. In order to match and return True, the
     --  handler may not have a choice parameter specification. Nod is the raise
--- 59,65 ----
       (Ename : Entity_Id;
        Nod   : Node_Id) return Node_Id;
     --  This function searches for a local exception handler that will handle
!    --  the exception named by Ename. If such a local handler exists, then the
     --  corresponding N_Exception_Handler is returned. If no such handler is
     --  found then Empty is returned. In order to match and return True, the
     --  handler may not have a choice parameter specification. Nod is the raise
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch12.adb gcc-14.1.0/gcc/ada/exp_ch12.adb
*** gcc-13.2.0/gcc/ada/exp_ch12.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch12.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch12.ads gcc-14.1.0/gcc/ada/exp_ch12.ads
*** gcc-13.2.0/gcc/ada/exp_ch12.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch12.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch13.adb gcc-14.1.0/gcc/ada/exp_ch13.adb
*** gcc-13.2.0/gcc/ada/exp_ch13.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch13.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch13.ads gcc-14.1.0/gcc/ada/exp_ch13.ads
*** gcc-13.2.0/gcc/ada/exp_ch13.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch13.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch2.adb gcc-14.1.0/gcc/ada/exp_ch2.adb
*** gcc-13.2.0/gcc/ada/exp_ch2.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch2.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch2 is
*** 464,472 ****
              --  disable if either variable or its type have sync disabled.
  
              else
!                Set := (not Atomic_Synchronization_Disabled (E))
                          and then
!                       (not Atomic_Synchronization_Disabled (Etype (E)));
              end if;
  
              --  Set flag if required
--- 464,472 ----
              --  disable if either variable or its type have sync disabled.
  
              else
!                Set := not Atomic_Synchronization_Disabled (E)
                          and then
!                       not Atomic_Synchronization_Disabled (Etype (E));
              end if;
  
              --  Set flag if required
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch2.ads gcc-14.1.0/gcc/ada/exp_ch2.ads
*** gcc-13.2.0/gcc/ada/exp_ch2.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch2.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch3.adb gcc-14.1.0/gcc/ada/exp_ch3.adb
*** gcc-13.2.0/gcc/ada/exp_ch3.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch3.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch3 is
*** 139,145 ****
     --  the code expansion for controlled components (when control actions
     --  are active) can lead to very large blocks that GCC handles poorly.
  
!    procedure Build_Untagged_Equality (Typ : Entity_Id);
     --  AI05-0123: Equality on untagged records composes. This procedure
     --  builds the equality routine for an untagged record that has components
     --  of a record type that has user-defined primitive equality operations.
--- 139,145 ----
     --  the code expansion for controlled components (when control actions
     --  are active) can lead to very large blocks that GCC handles poorly.
  
!    procedure Build_Untagged_Record_Equality (Typ : Entity_Id);
     --  AI05-0123: Equality on untagged records composes. This procedure
     --  builds the equality routine for an untagged record that has components
     --  of a record type that has user-defined primitive equality operations.
*************** package body Exp_Ch3 is
*** 583,592 ****
        Ptr       : Entity_Id;
  
     begin
-       if not Expander_Active then
-          return;
-       end if;
- 
        --  Create List of actuals for indirect call. The last parameter of the
        --  subprogram declaration is the access value for the indirect call.
  
--- 583,588 ----
*************** package body Exp_Ch3 is
*** 2082,2089 ****
           Typ         : constant Entity_Id  := Underlying_Type (Etype (Id));
  
           Adj_Call : Node_Id;
!          Exp      : Node_Id   := Default;
!          Kind     : Node_Kind := Nkind (Default);
           Lhs      : Node_Id;
           Res      : List_Id;
  
--- 2078,2085 ----
           Typ         : constant Entity_Id  := Underlying_Type (Etype (Id));
  
           Adj_Call : Node_Id;
!          Exp      : Node_Id;
!          Exp_Q    : Node_Id;
           Lhs      : Node_Id;
           Res      : List_Id;
  
*************** package body Exp_Ch3 is
*** 2094,2106 ****
               Selector_Name => New_Occurrence_Of (Id, Default_Loc));
           Set_Assignment_OK (Lhs);
  
!          --  Take a copy of Exp to ensure that later copies of this component
           --  declaration in derived types see the original tree, not a node
           --  rewritten during expansion of the init_proc. If the copy contains
           --  itypes, the scope of the new itypes is the init_proc being built.
  
           declare
              Map : Elist_Id := No_Elist;
           begin
              if Has_Late_Init_Comp then
                 --  Map the type to the _Init parameter in order to
--- 2090,2103 ----
               Selector_Name => New_Occurrence_Of (Id, Default_Loc));
           Set_Assignment_OK (Lhs);
  
!          --  Take copy of Default to ensure that later copies of this component
           --  declaration in derived types see the original tree, not a node
           --  rewritten during expansion of the init_proc. If the copy contains
           --  itypes, the scope of the new itypes is the init_proc being built.
  
           declare
              Map : Elist_Id := No_Elist;
+ 
           begin
              if Has_Late_Init_Comp then
                 --  Map the type to the _Init parameter in order to
*************** package body Exp_Ch3 is
*** 2131,2137 ****
                 end if;
              end if;
  
!             Exp := New_Copy_Tree (Exp, New_Scope => Proc_Id, Map => Map);
           end;
  
           Res := New_List (
--- 2128,2134 ----
                 end if;
              end if;
  
!             Exp := New_Copy_Tree (Default, New_Scope => Proc_Id, Map => Map);
           end;
  
           Res := New_List (
*************** package body Exp_Ch3 is
*** 2141,2146 ****
--- 2138,2145 ----
  
           Set_No_Ctrl_Actions (First (Res));
  
+          Exp_Q := Unqualify (Exp);
+ 
           --  Adjust the tag if tagged (because of possible view conversions).
           --  Suppress the tag adjustment when not Tagged_Type_Expansion because
           --  tags are represented implicitly in objects, and when the record is
*************** package body Exp_Ch3 is
*** 2148,2184 ****
  
           if Is_Tagged_Type (Typ)
             and then Tagged_Type_Expansion
!            and then Nkind (Exp) /= N_Raise_Expression
!            and then (Nkind (Exp) /= N_Qualified_Expression
!                        or else Nkind (Expression (Exp)) /= N_Raise_Expression)
           then
              Append_To (Res,
!               Make_Assignment_Statement (Default_Loc,
!                 Name       =>
!                   Make_Selected_Component (Default_Loc,
!                     Prefix        =>
!                       New_Copy_Tree (Lhs, New_Scope => Proc_Id),
!                     Selector_Name =>
!                       New_Occurrence_Of
!                         (First_Tag_Component (Typ), Default_Loc)),
! 
!                 Expression =>
!                   Unchecked_Convert_To (RTE (RE_Tag),
!                     New_Occurrence_Of
!                       (Node (First_Elmt (Access_Disp_Table (Underlying_Type
!                          (Typ)))),
!                        Default_Loc))));
           end if;
  
           --  Adjust the component if controlled except if it is an aggregate
           --  that will be expanded inline.
  
-          if Kind = N_Qualified_Expression then
-             Kind := Nkind (Expression (Default));
-          end if;
- 
           if Needs_Finalization (Typ)
!            and then Kind not in N_Aggregate | N_Extension_Aggregate
             and then not Is_Build_In_Place_Function_Call (Exp)
           then
              Adj_Call :=
--- 2147,2166 ----
  
           if Is_Tagged_Type (Typ)
             and then Tagged_Type_Expansion
!            and then Nkind (Exp_Q) /= N_Raise_Expression
           then
              Append_To (Res,
!               Make_Tag_Assignment_From_Type
!                 (Default_Loc,
!                  New_Copy_Tree (Lhs, New_Scope => Proc_Id),
!                  Underlying_Type (Typ)));
           end if;
  
           --  Adjust the component if controlled except if it is an aggregate
           --  that will be expanded inline.
  
           if Needs_Finalization (Typ)
!            and then Nkind (Exp_Q) not in N_Aggregate | N_Extension_Aggregate
             and then not Is_Build_In_Place_Function_Call (Exp)
           then
              Adj_Call :=
*************** package body Exp_Ch3 is
*** 2194,2209 ****
              end if;
           end if;
  
-          --  If a component type has a predicate, add check to the component
-          --  assignment. Discriminants are handled at the point of the call,
-          --  which provides for a better error message.
- 
-          if Comes_From_Source (Exp)
-            and then Predicate_Enabled (Typ)
-          then
-             Append (Make_Predicate_Check (Typ, Exp), Res);
-          end if;
- 
           return Res;
  
        exception
--- 2176,2181 ----
*************** package body Exp_Ch3 is
*** 2808,2824 ****
                 --  Initialize the primary tag component
  
                 Init_Tags_List := New_List (
!                  Make_Assignment_Statement (Loc,
!                    Name =>
!                      Make_Selected_Component (Loc,
!                        Prefix        => Make_Identifier (Loc, Name_uInit),
!                        Selector_Name =>
!                          New_Occurrence_Of
!                            (First_Tag_Component (Rec_Type), Loc)),
!                    Expression =>
!                      New_Occurrence_Of
!                        (Node
!                          (First_Elmt (Access_Disp_Table (Rec_Type))), Loc)));
  
                 --  Ada 2005 (AI-251): Initialize the secondary tags components
                 --  located at fixed positions (tags whose position depends on
--- 2780,2787 ----
                 --  Initialize the primary tag component
  
                 Init_Tags_List := New_List (
!                  Make_Tag_Assignment_From_Type
!                    (Loc, Make_Identifier (Loc, Name_uInit), Rec_Type));
  
                 --  Ada 2005 (AI-251): Initialize the secondary tags components
                 --  located at fixed positions (tags whose position depends on
*************** package body Exp_Ch3 is
*** 2897,2913 ****
                 --  Initialize the primary tag
  
                 Init_Tags_List := New_List (
!                  Make_Assignment_Statement (Loc,
!                    Name =>
!                      Make_Selected_Component (Loc,
!                        Prefix        => Make_Identifier (Loc, Name_uInit),
!                        Selector_Name =>
!                          New_Occurrence_Of
!                            (First_Tag_Component (Rec_Type), Loc)),
!                    Expression =>
!                      New_Occurrence_Of
!                        (Node
!                          (First_Elmt (Access_Disp_Table (Rec_Type))), Loc)));
  
                 --  Ada 2005 (AI-251): Initialize the secondary tags components
                 --  located at fixed positions (tags whose position depends on
--- 2860,2867 ----
                 --  Initialize the primary tag
  
                 Init_Tags_List := New_List (
!                  Make_Tag_Assignment_From_Type
!                    (Loc, Make_Identifier (Loc, Name_uInit), Rec_Type));
  
                 --  Ada 2005 (AI-251): Initialize the secondary tags components
                 --  located at fixed positions (tags whose position depends on
*************** package body Exp_Ch3 is
*** 2946,2953 ****
                    while Present (Next (Ins_Nod))
                      and then
                        (Nkind (Ins_Nod) /= N_If_Statement
!                         or else (Nkind (First (Then_Statements (Ins_Nod)))
!                                    /= N_Procedure_Call_Statement)
                          or else not Is_Init_Proc
                                        (Name (First (Then_Statements
                                           (Ins_Nod)))))
--- 2900,2907 ----
                    while Present (Next (Ins_Nod))
                      and then
                        (Nkind (Ins_Nod) /= N_If_Statement
!                         or else Nkind (First (Then_Statements (Ins_Nod)))
!                                   /= N_Procedure_Call_Statement
                          or else not Is_Init_Proc
                                        (Name (First (Then_Statements
                                           (Ins_Nod)))))
*************** package body Exp_Ch3 is
*** 4496,4506 ****
        Set_Is_Pure (Proc_Name);
     end Build_Slice_Assignment;
  
!    -----------------------------
!    -- Build_Untagged_Equality --
!    -----------------------------
  
!    procedure Build_Untagged_Equality (Typ : Entity_Id) is
        Build_Eq : Boolean;
        Comp     : Entity_Id;
        Decl     : Node_Id;
--- 4450,4460 ----
        Set_Is_Pure (Proc_Name);
     end Build_Slice_Assignment;
  
!    ------------------------------------
!    -- Build_Untagged_Record_Equality --
!    ------------------------------------
  
!    procedure Build_Untagged_Record_Equality (Typ : Entity_Id) is
        Build_Eq : Boolean;
        Comp     : Entity_Id;
        Decl     : Node_Id;
*************** package body Exp_Ch3 is
*** 4527,4533 ****
           end if;
        end User_Defined_Eq;
  
!    --  Start of processing for Build_Untagged_Equality
  
     begin
        --  If a record component has a primitive equality operation, we must
--- 4481,4487 ----
           end if;
        end User_Defined_Eq;
  
!    --  Start of processing for Build_Untagged_Record_Equality
  
     begin
        --  If a record component has a primitive equality operation, we must
*************** package body Exp_Ch3 is
*** 4604,4610 ****
              Set_Is_Public (Op);
           end if;
        end if;
!    end Build_Untagged_Equality;
  
     -----------------------------------
     -- Build_Variant_Record_Equality --
--- 4558,4564 ----
              Set_Is_Public (Op);
           end if;
        end if;
!    end Build_Untagged_Record_Equality;
  
     -----------------------------------
     -- Build_Variant_Record_Equality --
*************** package body Exp_Ch3 is
*** 4652,4657 ****
--- 4606,4612 ----
  
     function Build_Variant_Record_Equality
       (Typ         : Entity_Id;
+       Spec_Id     : Entity_Id;
        Body_Id     : Entity_Id;
        Param_Specs : List_Id) return Node_Id
     is
*************** package body Exp_Ch3 is
*** 4698,4739 ****
  
        if Is_Unchecked_Union (Typ) then
           declare
              A          : Entity_Id;
              B          : Entity_Id;
              Discr      : Entity_Id;
              Discr_Type : Entity_Id;
              New_Discrs : Elist_Id;
  
           begin
              New_Discrs := New_Elmt_List;
  
              Discr := First_Discriminant (Typ);
              while Present (Discr) loop
                 Discr_Type := Etype (Discr);
  
                 A :=
                   Make_Defining_Identifier (Loc,
                     Chars => New_External_Name (Chars (Discr), 'A'));
  
                 B :=
                   Make_Defining_Identifier (Loc,
                     Chars => New_External_Name (Chars (Discr), 'B'));
  
!                --  Add new parameters to the parameter list
! 
!                Append_To (Param_Specs,
!                  Make_Parameter_Specification (Loc,
!                    Defining_Identifier => A,
!                    Parameter_Type      =>
!                      New_Occurrence_Of (Discr_Type, Loc)));
! 
!                Append_To (Param_Specs,
!                  Make_Parameter_Specification (Loc,
!                    Defining_Identifier => B,
!                    Parameter_Type      =>
!                      New_Occurrence_Of (Discr_Type, Loc)));
  
!                Append_Elmt (A, New_Discrs);
  
                 --  Generate the following code to compare each of the inferred
                 --  discriminants:
--- 4653,4718 ----
  
        if Is_Unchecked_Union (Typ) then
           declare
+             Right_Formal : constant Entity_Id :=
+               (if Present (Spec_Id) then Last_Formal (Spec_Id) else Right);
+             Scop : constant Entity_Id :=
+               (if Present (Spec_Id) then Spec_Id else Body_Id);
+ 
+             procedure Decorate_Extra_Formal (F, F_Typ : Entity_Id);
+             --  Decorate extra formal F with type F_Typ
+ 
+             ---------------------------
+             -- Decorate_Extra_Formal --
+             ---------------------------
+ 
+             procedure Decorate_Extra_Formal (F, F_Typ : Entity_Id) is
+             begin
+                Mutate_Ekind  (F, E_In_Parameter);
+                Set_Etype     (F, F_Typ);
+                Set_Scope     (F, Scop);
+                Set_Mechanism (F, By_Copy);
+             end Decorate_Extra_Formal;
+ 
              A          : Entity_Id;
              B          : Entity_Id;
              Discr      : Entity_Id;
              Discr_Type : Entity_Id;
+             Last_Extra : Entity_Id := Empty;
              New_Discrs : Elist_Id;
  
           begin
+             Mutate_Ekind (Body_Id, E_Subprogram_Body);
              New_Discrs := New_Elmt_List;
  
              Discr := First_Discriminant (Typ);
              while Present (Discr) loop
                 Discr_Type := Etype (Discr);
  
+                --  Add the new parameters as extra formals
+ 
                 A :=
                   Make_Defining_Identifier (Loc,
                     Chars => New_External_Name (Chars (Discr), 'A'));
  
+                Decorate_Extra_Formal (A, Discr_Type);
+ 
+                if Present (Last_Extra) then
+                   Set_Extra_Formal (Last_Extra, A);
+                else
+                   Set_Extra_Formal (Right_Formal, A);
+                   Set_Extra_Formals (Scop, A);
+                end if;
+ 
+                Append_Elmt (A, New_Discrs);
+ 
                 B :=
                   Make_Defining_Identifier (Loc,
                     Chars => New_External_Name (Chars (Discr), 'B'));
  
!                Decorate_Extra_Formal (B, Discr_Type);
  
!                Set_Extra_Formal (A, B);
!                Last_Extra := B;
  
                 --  Generate the following code to compare each of the inferred
                 --  discriminants:
*************** package body Exp_Ch3 is
*** 4752,4757 ****
--- 4731,4737 ----
                       Make_Simple_Return_Statement (Loc,
                         Expression =>
                           New_Occurrence_Of (Standard_False, Loc)))));
+ 
                 Next_Discriminant (Discr);
              end loop;
  
*************** package body Exp_Ch3 is
*** 5020,5025 ****
--- 5000,5009 ----
        --  Do not create TSS routine Finalize_Address for concurrent class-wide
        --  types. Ignore C, C++, CIL and Java types since it is assumed that the
        --  non-Ada side will handle their destruction.
+       --
+       --  Concurrent Ada types are functionally represented by an associated
+       --  "corresponding record type" (typenameV), which owns the actual TSS
+       --  finalize bodies for the type (and technically class-wide type).
  
        elsif Is_Concurrent_Type (Root)
          or else Is_C_Derivation (Root)
*************** package body Exp_Ch3 is
*** 5365,5371 ****
        --  evaluate the conditions.
  
        procedure Build_Variant_Record_Equality (Typ  : Entity_Id);
!       --  Create An Equality function for the untagged variant record Typ and
        --  attach it to the TSS list.
  
        procedure Register_Dispatch_Table_Wrappers (Typ : Entity_Id);
--- 5349,5355 ----
        --  evaluate the conditions.
  
        procedure Build_Variant_Record_Equality (Typ  : Entity_Id);
!       --  Create an equality function for the untagged variant record Typ and
        --  attach it to the TSS list.
  
        procedure Register_Dispatch_Table_Wrappers (Typ : Entity_Id);
*************** package body Exp_Ch3 is
*** 5463,5468 ****
--- 5447,5453 ----
           Discard_Node (
             Build_Variant_Record_Equality
               (Typ         => Typ,
+               Spec_Id     => Empty,
                Body_Id     => F,
                Param_Specs => New_List (
                  Make_Parameter_Specification (Loc,
*************** package body Exp_Ch3 is
*** 5849,5873 ****
           end if;
  
        --  In the untagged case, ever since Ada 83 an equality function must
!       --  be  provided for variant records that are not unchecked unions.
!       --  In Ada 2012 the equality function composes, and thus must be built
!       --  explicitly just as for tagged records.
  
        elsif Has_Discriminants (Typ)
          and then not Is_Limited_Type (Typ)
        then
!          declare
!             Comps : constant Node_Id :=
!                       Component_List (Type_Definition (Typ_Decl));
!          begin
!             if Present (Comps)
!               and then Present (Variant_Part (Comps))
!             then
!                Build_Variant_Record_Equality (Typ);
!             end if;
!          end;
  
!       --  Otherwise create primitive equality operation (AI05-0123)
  
        --  This is done unconditionally to ensure that tools can be linked
        --  properly with user programs compiled with older language versions.
--- 5834,5851 ----
           end if;
  
        --  In the untagged case, ever since Ada 83 an equality function must
!       --  be provided for variant records that are not unchecked unions.
  
        elsif Has_Discriminants (Typ)
          and then not Is_Limited_Type (Typ)
+         and then Present (Component_List (Type_Definition (Typ_Decl)))
+         and then
+           Present (Variant_Part (Component_List (Type_Definition (Typ_Decl))))
        then
!          Build_Variant_Record_Equality (Typ);
  
!       --  In Ada 2012 the equality function composes, and thus must be built
!       --  explicitly just as for tagged records.
  
        --  This is done unconditionally to ensure that tools can be linked
        --  properly with user programs compiled with older language versions.
*************** package body Exp_Ch3 is
*** 5878,5884 ****
          and then Convention (Typ) = Convention_Ada
          and then not Is_Limited_Type (Typ)
        then
!          Build_Untagged_Equality (Typ);
        end if;
  
        --  Before building the record initialization procedure, if we are
--- 5856,5862 ----
          and then Convention (Typ) = Convention_Ada
          and then not Is_Limited_Type (Typ)
        then
!          Build_Untagged_Record_Equality (Typ);
        end if;
  
        --  Before building the record initialization procedure, if we are
*************** package body Exp_Ch3 is
*** 5887,5895 ****
        --  type and the concurrent record value type. See the section "Handling
        --  of Discriminants" in the Einfo spec for details.
  
!       if Is_Concurrent_Record_Type (Typ)
!         and then Has_Discriminants (Typ)
!       then
           declare
              Ctyp       : constant Entity_Id :=
                             Corresponding_Concurrent_Type (Typ);
--- 5865,5871 ----
        --  type and the concurrent record value type. See the section "Handling
        --  of Discriminants" in the Einfo spec for details.
  
!       if Is_Concurrent_Record_Type (Typ) and then Has_Discriminants (Typ) then
           declare
              Ctyp       : constant Entity_Id :=
                             Corresponding_Concurrent_Type (Typ);
*************** package body Exp_Ch3 is
*** 6284,6289 ****
--- 6260,6270 ----
        --  temporary. Func_Id is the enclosing function. Ret_Typ is the return
        --  type of Func_Id. Alloc_Expr is the actual allocator.
  
+       function BIP_Function_Call_Id return Entity_Id;
+       --  If the object initialization expression is a call to a build-in-place
+       --  function, return the id of the called function; otherwise return
+       --  Empty.
+ 
        procedure Count_Default_Sized_Task_Stacks
          (Typ         : Entity_Id;
           Pri_Stacks  : out Int;
*************** package body Exp_Ch3 is
*** 6620,6625 ****
--- 6601,6667 ----
           end if;
        end Build_Heap_Or_Pool_Allocator;
  
+       --------------------------
+       -- BIP_Function_Call_Id --
+       --------------------------
+ 
+       function BIP_Function_Call_Id return Entity_Id is
+ 
+          function Func_Call_Id (Function_Call : Node_Id) return Entity_Id;
+          --  Return the id of the called function.
+ 
+          function Func_Call_Id (Function_Call : Node_Id) return Entity_Id is
+             Call_Node : constant Node_Id := Unqual_Conv (Function_Call);
+ 
+          begin
+             if Is_Entity_Name (Name (Call_Node)) then
+                return Entity (Name (Call_Node));
+ 
+             elsif Nkind (Name (Call_Node)) = N_Explicit_Dereference then
+                return Etype (Name (Call_Node));
+ 
+             else
+                pragma Assert (Nkind (Name (Call_Node)) = N_Selected_Component);
+                return Etype (Entity (Selector_Name (Name (Call_Node))));
+             end if;
+          end Func_Call_Id;
+ 
+          --  Local declarations
+ 
+          BIP_Func_Call : Node_Id;
+          Expr_Q        : constant Node_Id := Unqual_Conv (Expr);
+ 
+       --  Start of processing for BIP_Function_Call_Id
+ 
+       begin
+          if Is_Build_In_Place_Function_Call (Expr_Q) then
+             return Func_Call_Id (Expr_Q);
+          end if;
+ 
+          BIP_Func_Call := Unqual_BIP_Iface_Function_Call (Expr_Q);
+ 
+          if Present (BIP_Func_Call) then
+ 
+             --  In the case of an explicitly dereferenced call, return the
+             --  subprogram type.
+ 
+             if Nkind (Name (BIP_Func_Call)) = N_Explicit_Dereference then
+                return Etype (Name (BIP_Func_Call));
+             else
+                pragma Assert (Is_Entity_Name (Name (BIP_Func_Call)));
+                return Entity (Name (BIP_Func_Call));
+             end if;
+ 
+          elsif Nkind (Expr_Q) = N_Reference
+                  and then Is_Build_In_Place_Function_Call (Prefix (Expr_Q))
+          then
+             return Func_Call_Id (Prefix (Expr_Q));
+ 
+          else
+             return Empty;
+          end if;
+       end BIP_Function_Call_Id;
+ 
        -------------------------------------
        -- Count_Default_Sized_Task_Stacks --
        -------------------------------------
*************** package body Exp_Ch3 is
*** 6910,6915 ****
--- 6952,6963 ----
  
                   and then not Has_Predicates (Component_Type (Typ))
  
+                  --  Array default component value takes precedence over
+                  --  Init_Or_Norm_Scalars.
+ 
+                  and then No (Find_Aspect (Typ,
+                                            Aspect_Default_Component_Value))
+ 
                   --  The component type must have a single initialization value
  
                   and then Simple_Initialization_OK (Component_Type (Typ))
*************** package body Exp_Ch3 is
*** 7154,7161 ****
--- 7202,7265 ----
        function Make_Allocator_For_Return (Expr : Node_Id) return Node_Id is
           Alloc      : Node_Id;
           Alloc_Expr : Entity_Id;
+          Alloc_Typ  : Entity_Id;
  
        begin
+          --  If the return object's declaration does not include an expression,
+          --  then we use its subtype for the allocation. Likewise in the case
+          --  of a degenerate expression like a raise expression.
+ 
+          if No (Expr)
+            or else Nkind (Original_Node (Expr)) = N_Raise_Expression
+          then
+             Alloc_Typ := Typ;
+ 
+          --  If the return object's declaration includes an expression, then
+          --  there are two cases: either the nominal subtype of the object is
+          --  definite and we can use it for the allocation directly, or it is
+          --  not and Analyze_Object_Declaration should have built an actual
+          --  subtype from the expression.
+ 
+          --  However, there are exceptions in the latter case for interfaces
+          --  (see Analyze_Object_Declaration), as well as class-wide types and
+          --  types with unknown discriminants if they are additionally limited
+          --  (see Expand_Subtype_From_Expr), so we must cope with them.
+ 
+          elsif Is_Interface (Typ) then
+             pragma Assert (Is_Class_Wide_Type (Typ));
+ 
+             --  For interfaces, we use the type of the expression, except if
+             --  we need to put back a conversion that we have removed earlier
+             --  in the processing.
+ 
+             if Is_Class_Wide_Type (Etype (Expr)) then
+                Alloc_Typ := Typ;
+             else
+                Alloc_Typ := Etype (Expr);
+             end if;
+ 
+          elsif Is_Class_Wide_Type (Typ) then
+ 
+             --  For class-wide types, we have to make sure that we use the
+             --  dynamic type of the expression for the allocation, either by
+             --  means of its (static) subtype or through the actual subtype.
+ 
+             if Has_Tag_Of_Type (Expr) then
+                Alloc_Typ := Etype (Expr);
+ 
+             else pragma Assert (Ekind (Typ) = E_Class_Wide_Subtype
+               and then Present (Equivalent_Type (Typ)));
+ 
+                Alloc_Typ := Typ;
+             end if;
+ 
+          else pragma Assert (Is_Definite_Subtype (Typ)
+            or else (Has_Unknown_Discriminants (Typ)
+                      and then Is_Inherently_Limited_Type (Typ)));
+ 
+             Alloc_Typ := Typ;
+          end if;
+ 
           --  If the return object's declaration includes an expression and the
           --  declaration isn't marked as No_Initialization, then we generate an
           --  allocator with a qualified expression. Although this is necessary
*************** package body Exp_Ch3 is
*** 7181,7215 ****
  
              Alloc_Expr := New_Copy_Tree (Expr);
  
!             --  In the constrained array case, deal with a potential sliding.
!             --  In the interface case, put back a conversion that we may have
!             --  removed earlier in the processing.
! 
!             if (Ekind (Typ) = E_Array_Subtype
!                  or else (Is_Interface (Typ)
!                            and then Is_Class_Wide_Type (Etype (Alloc_Expr))))
!               and then Typ /= Etype (Alloc_Expr)
!             then
!                Alloc_Expr := Convert_To (Typ, Alloc_Expr);
              end if;
  
-             --  We always use the type of the expression for the qualified
-             --  expression, rather than the return object's type. We cannot
-             --  always use the return object's type because the expression
-             --  might be of a specific type and the return object mignt not.
- 
              Alloc :=
                Make_Allocator (Loc,
                  Expression =>
                    Make_Qualified_Expression (Loc,
                      Subtype_Mark =>
!                       New_Occurrence_Of (Etype (Alloc_Expr), Loc),
                      Expression   => Alloc_Expr));
  
           else
              Alloc :=
                Make_Allocator (Loc,
!                 Expression => New_Occurrence_Of (Typ, Loc));
  
              --  If the return object requires default initialization, then it
              --  will happen later following the elaboration of the renaming.
--- 7285,7306 ----
  
              Alloc_Expr := New_Copy_Tree (Expr);
  
!             if Etype (Alloc_Expr) /= Alloc_Typ then
!                Alloc_Expr := Convert_To (Alloc_Typ, Alloc_Expr);
              end if;
  
              Alloc :=
                Make_Allocator (Loc,
                  Expression =>
                    Make_Qualified_Expression (Loc,
                      Subtype_Mark =>
!                       New_Occurrence_Of (Alloc_Typ, Loc),
                      Expression   => Alloc_Expr));
  
           else
              Alloc :=
                Make_Allocator (Loc,
!                 Expression => New_Occurrence_Of (Alloc_Typ, Loc));
  
              --  If the return object requires default initialization, then it
              --  will happen later following the elaboration of the renaming.
*************** package body Exp_Ch3 is
*** 7251,7256 ****
--- 7342,7350 ----
        --  which case the init proc call must be inserted only after the bodies
        --  of the shared variable procedures have been seen.
  
+       Has_BIP_Init_Expr : Boolean := False;
+       --  Whether the object is initialized with a BIP function call
+ 
        Rewrite_As_Renaming : Boolean := False;
        --  Whether to turn the declaration into a renaming at the end
  
*************** package body Exp_Ch3 is
*** 7291,7302 ****
           Init_After := Make_Shared_Var_Procs (N);
        end if;
  
        --  If tasks are being declared, make sure we have an activation chain
        --  defined for the tasks (has no effect if we already have one), and
        --  also that a Master variable is established (and that the appropriate
        --  enclosing construct is established as a task master).
  
!       if Has_Task (Typ) or else Might_Have_Tasks (Typ) then
           Build_Activation_Chain_Entity (N);
  
           if Has_Task (Typ) then
--- 7385,7413 ----
           Init_After := Make_Shared_Var_Procs (N);
        end if;
  
+       --  Determine whether the object is initialized with a BIP function call
+ 
+       if Present (Expr) then
+          Expr_Q := Unqualify (Expr);
+ 
+          Has_BIP_Init_Expr :=
+            Is_Build_In_Place_Function_Call (Expr_Q)
+              or else Present (Unqual_BIP_Iface_Function_Call (Expr_Q))
+              or else (Nkind (Expr_Q) = N_Reference
+                         and then
+                       Is_Build_In_Place_Function_Call (Prefix (Expr_Q)));
+       end if;
+ 
        --  If tasks are being declared, make sure we have an activation chain
        --  defined for the tasks (has no effect if we already have one), and
        --  also that a Master variable is established (and that the appropriate
        --  enclosing construct is established as a task master).
  
!       if Has_Task (Typ)
!         or else Might_Have_Tasks (Typ)
!         or else (Has_BIP_Init_Expr
!                    and then Needs_BIP_Task_Actuals (BIP_Function_Call_Id))
!       then
           Build_Activation_Chain_Entity (N);
  
           if Has_Task (Typ) then
*************** package body Exp_Ch3 is
*** 7304,7320 ****
  
           --  Handle objects initialized with BIP function calls
  
!          elsif Present (Expr) then
!             Expr_Q := Unqualify (Expr);
! 
!             if Is_Build_In_Place_Function_Call (Expr_Q)
!               or else Present (Unqual_BIP_Iface_Function_Call (Expr_Q))
!               or else (Nkind (Expr_Q) = N_Reference
!                         and then
!                        Is_Build_In_Place_Function_Call (Prefix (Expr_Q)))
!             then
!                Build_Master_Entity (Def_Id);
!             end if;
           end if;
        end if;
  
--- 7415,7422 ----
  
           --  Handle objects initialized with BIP function calls
  
!          elsif Has_BIP_Init_Expr then
!             Build_Master_Entity (Def_Id);
           end if;
        end if;
  
*************** package body Exp_Ch3 is
*** 7338,7344 ****
          and then (Restriction_Active (No_Implicit_Heap_Allocations)
            or else Restriction_Active (No_Implicit_Task_Allocations))
          and then not (Ekind (Typ) in E_Array_Type | E_Array_Subtype
!                       and then (Has_Init_Expression (N)))
        then
           declare
              PS_Count, SS_Count : Int := 0;
--- 7440,7446 ----
          and then (Restriction_Active (No_Implicit_Heap_Allocations)
            or else Restriction_Active (No_Implicit_Task_Allocations))
          and then not (Ekind (Typ) in E_Array_Type | E_Array_Subtype
!                       and then Has_Init_Expression (N))
        then
           declare
              PS_Count, SS_Count : Int := 0;
*************** package body Exp_Ch3 is
*** 7583,7589 ****
                 --  and attached to the finalization list.
  
                 if Needs_Finalization (Typ)
!                  and then not Is_Limited_View (Typ)
                 then
                    Adj_Call :=
                      Make_Adjust_Call (
--- 7685,7691 ----
                 --  and attached to the finalization list.
  
                 if Needs_Finalization (Typ)
!                  and then not Is_Inherently_Limited_Type (Typ)
                 then
                    Adj_Call :=
                      Make_Adjust_Call (
*************** package body Exp_Ch3 is
*** 7989,7998 ****
  
                Is_Entity_Name (Original_Node (Obj_Def))
  
!                 --  Nor if it is effectively an unconstrained declaration
  
!                 and then not (Is_Array_Type (Typ)
!                                and then Is_Constr_Subt_For_UN_Aliased (Typ))
  
                  --  We may use a renaming if the initialization expression is a
                  --  captured function call that meets a few conditions.
--- 8091,8114 ----
  
                Is_Entity_Name (Original_Node (Obj_Def))
  
!                 --  If we have "X : S := ...;", and S is a constrained array
!                 --  subtype, then we cannot rename, because renamings ignore
!                 --  the constraints of S, so that would change the semantics
!                 --  (sliding would not occur on the initial value). This is
!                 --  only a problem for source objects though, the others have
!                 --  the correct bounds.
  
!                 and then not (Comes_From_Source (Obj_Def)
!                                and then Is_Array_Type (Typ)
!                                and then Is_Constrained (Typ))
! 
!                 --  Moreover, if we have "X : aliased S := "...;" and S is an
!                 --  unconstrained array type, then we can rename only if the
!                 --  initialization expression has an unconstrained subtype too,
!                 --  because the bounds must be present within X.
! 
!                 and then not (Is_Constr_Array_Subt_With_Bounds (Typ)
!                                and then Is_Constrained (Etype (Expr_Q)))
  
                  --  We may use a renaming if the initialization expression is a
                  --  captured function call that meets a few conditions.
*************** package body Exp_Ch3 is
*** 8000,8015 ****
                  and then
                    (Is_Renamable_Function_Call (Expr_Q)
  
!                    --  Or else if it is a variable with OK_To_Rename set
  
!                    or else (OK_To_Rename_Ref (Expr_Q)
!                              and then not Special_Ret_Obj)
  
!                    --  Or else if it is a slice of such a variable
  
!                    or else (Nkind (Expr_Q) = N_Slice
!                              and then OK_To_Rename_Ref (Prefix (Expr_Q))
!                              and then not Special_Ret_Obj));
  
              --  If the type needs finalization and is not inherently limited,
              --  then the target is adjusted after the copy and attached to the
--- 8116,8131 ----
                  and then
                    (Is_Renamable_Function_Call (Expr_Q)
  
!                     --  Or else if it is a variable with OK_To_Rename set
  
!                     or else (OK_To_Rename_Ref (Expr_Q)
!                               and then not Special_Ret_Obj)
  
!                     --  Or else if it is a slice of such a variable
  
!                     or else (Nkind (Expr_Q) = N_Slice
!                               and then OK_To_Rename_Ref (Prefix (Expr_Q))
!                               and then not Special_Ret_Obj));
  
              --  If the type needs finalization and is not inherently limited,
              --  then the target is adjusted after the copy and attached to the
*************** package body Exp_Ch3 is
*** 8021,8027 ****
              --  the object declaration into a renaming declaration.
  
              if Needs_Finalization (Typ)
!               and then not Is_Limited_View (Typ)
                and then Nkind (Expr_Q) /= N_Function_Call
                and then not Rewrite_As_Renaming
              then
--- 8137,8143 ----
              --  the object declaration into a renaming declaration.
  
              if Needs_Finalization (Typ)
!               and then not Is_Inherently_Limited_Type (Typ)
                and then Nkind (Expr_Q) /= N_Function_Call
                and then not Rewrite_As_Renaming
              then
*************** package body Exp_Ch3 is
*** 8844,8849 ****
--- 8960,8969 ----
               Subtype_Mark        => New_Occurrence_Of (Etype (Def_Id), Loc),
               Name                => Expr_Q));
  
+          --  Keep original aspects
+ 
+          Move_Aspects (Original_Node (N), N);
+ 
           --  We do not analyze this renaming declaration, because all its
           --  components have already been analyzed, and if we were to go
           --  ahead and analyze it, we would in effect be trying to generate
*************** package body Exp_Ch3 is
*** 9251,9259 ****
           --  this is indeed the case, associate the Finalize_Address routine
           --  of the full view with the finalization masters of all pending
           --  access types. This scenario applies to anonymous access types as
!          --  well.
  
           elsif Needs_Finalization (Typ)
             and then Present (Pending_Access_Types (Typ))
           then
              E := First_Elmt (Pending_Access_Types (Typ));
--- 9371,9383 ----
           --  this is indeed the case, associate the Finalize_Address routine
           --  of the full view with the finalization masters of all pending
           --  access types. This scenario applies to anonymous access types as
!          --  well. But the Finalize_Address routine is missing if the type is
!          --  class-wide and we are under restriction No_Dispatching_Calls, see
!          --  Expand_Freeze_Class_Wide_Type above for the rationale.
  
           elsif Needs_Finalization (Typ)
+            and then (not Is_Class_Wide_Type (Typ)
+                       or else not Restriction_Active (No_Dispatching_Calls))
             and then Present (Pending_Access_Types (Typ))
           then
              E := First_Elmt (Pending_Access_Types (Typ));
*************** package body Exp_Ch3 is
*** 11105,11113 ****
                  Null_Record_Present => True);
  
              --  GNATprove will use expression of an expression function as an
!             --  implicit postcondition. GNAT will not benefit from expression
!             --  function (and would struggle if we add an expression function
!             --  to freezing actions).
  
              if GNATprove_Mode then
                 Func_Body :=
--- 11229,11238 ----
                  Null_Record_Present => True);
  
              --  GNATprove will use expression of an expression function as an
!             --  implicit postcondition. GNAT will also benefit from expression
!             --  function to avoid premature freezing, but would struggle if we
!             --  added an expression function to freezing actions, so we create
!             --  the expanded form directly.
  
              if GNATprove_Mode then
                 Func_Body :=
*************** package body Exp_Ch3 is
*** 11126,11131 ****
--- 11251,11257 ----
                         Statements => New_List (
                           Make_Simple_Return_Statement (Loc,
                             Expression => Ext_Aggr))));
+                Set_Was_Expression_Function (Func_Body);
              end if;
  
              Append_To (Body_List, Func_Body);
*************** package body Exp_Ch3 is
*** 11145,11152 ****
              --  is a wrapper's body in order to get check suppression right.
  
              Set_Corresponding_Spec (Func_Body, Func_Id);
- 
-             Override_Dispatching_Operation (Tag_Typ, Subp, New_Op => Func_Id);
           end if;
  
        <<Next_Prim>>
--- 11271,11276 ----
*************** package body Exp_Ch3 is
*** 11898,11905 ****
  
        --  Spec of Put_Image
  
!       if (not No_Run_Time_Mode)
!          and then RTE_Available (RE_Root_Buffer_Type)
        then
           --  No_Run_Time_Mode implies that the declaration of Tag_Typ
           --  (like any tagged type) will be rejected. Given this, avoid
--- 12022,12029 ----
  
        --  Spec of Put_Image
  
!       if not No_Run_Time_Mode
!         and then RTE_Available (RE_Root_Buffer_Type)
        then
           --  No_Run_Time_Mode implies that the declaration of Tag_Typ
           --  (like any tagged type) will be rejected. Given this, avoid
*************** package body Exp_Ch3 is
*** 12085,12097 ****
  
     function Make_Tag_Assignment (N : Node_Id) return Node_Id is
        Loc      : constant Source_Ptr := Sloc (N);
!       Def_If   : constant Entity_Id  := Defining_Identifier (N);
        Expr     : constant Node_Id    := Expression (N);
!       Typ      : constant Entity_Id  := Etype (Def_If);
        Full_Typ : constant Entity_Id  := Underlying_Type (Typ);
  
-       New_Ref  : Node_Id;
- 
     begin
        --  This expansion activity is called during analysis
  
--- 12209,12219 ----
  
     function Make_Tag_Assignment (N : Node_Id) return Node_Id is
        Loc      : constant Source_Ptr := Sloc (N);
!       Def_Id   : constant Entity_Id  := Defining_Identifier (N);
        Expr     : constant Node_Id    := Expression (N);
!       Typ      : constant Entity_Id  := Etype (Def_Id);
        Full_Typ : constant Entity_Id  := Underlying_Type (Typ);
  
     begin
        --  This expansion activity is called during analysis
  
*************** package body Exp_Ch3 is
*** 12099,12123 ****
          and then not Is_Class_Wide_Type (Typ)
          and then not Is_CPP_Class (Typ)
          and then Tagged_Type_Expansion
!         and then Nkind (Expr) /= N_Aggregate
!         and then (Nkind (Expr) /= N_Qualified_Expression
!                    or else Nkind (Expression (Expr)) /= N_Aggregate)
        then
-          New_Ref :=
-            Make_Selected_Component (Loc,
-              Prefix        => New_Occurrence_Of (Def_If, Loc),
-              Selector_Name =>
-                New_Occurrence_Of (First_Tag_Component (Full_Typ), Loc));
- 
-          Set_Assignment_OK (New_Ref);
- 
           return
!            Make_Assignment_Statement (Loc,
!              Name       => New_Ref,
!              Expression =>
!                Unchecked_Convert_To (RTE (RE_Tag),
!                  New_Occurrence_Of
!                    (Node (First_Elmt (Access_Disp_Table (Full_Typ))), Loc)));
        else
           return Empty;
        end if;
--- 12221,12232 ----
          and then not Is_Class_Wide_Type (Typ)
          and then not Is_CPP_Class (Typ)
          and then Tagged_Type_Expansion
!         and then Nkind (Unqualify (Expr)) /= N_Aggregate
        then
           return
!            Make_Tag_Assignment_From_Type
!              (Loc, New_Occurrence_Of (Def_Id, Loc), Full_Typ);
! 
        else
           return Empty;
        end if;
*************** package body Exp_Ch3 is
*** 12413,12419 ****
        --  Body of Put_Image
  
        if No (TSS (Tag_Typ, TSS_Put_Image))
!          and then (not No_Run_Time_Mode)
           and then RTE_Available (RE_Root_Buffer_Type)
        then
           Build_Record_Put_Image_Procedure (Loc, Tag_Typ, Decl, Ent);
--- 12522,12528 ----
        --  Body of Put_Image
  
        if No (TSS (Tag_Typ, TSS_Put_Image))
!          and then not No_Run_Time_Mode
           and then RTE_Available (RE_Root_Buffer_Type)
        then
           Build_Record_Put_Image_Procedure (Loc, Tag_Typ, Decl, Ent);
*************** package body Exp_Ch3 is
*** 12429,12442 ****
        if Stream_Operation_OK (Tag_Typ, TSS_Stream_Read)
          and then No (TSS (Tag_Typ, TSS_Stream_Read))
        then
!          Build_Record_Read_Procedure (Loc, Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
        if Stream_Operation_OK (Tag_Typ, TSS_Stream_Write)
          and then No (TSS (Tag_Typ, TSS_Stream_Write))
        then
!          Build_Record_Write_Procedure (Loc, Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
--- 12538,12551 ----
        if Stream_Operation_OK (Tag_Typ, TSS_Stream_Read)
          and then No (TSS (Tag_Typ, TSS_Stream_Read))
        then
!          Build_Record_Read_Procedure (Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
        if Stream_Operation_OK (Tag_Typ, TSS_Stream_Write)
          and then No (TSS (Tag_Typ, TSS_Stream_Write))
        then
!          Build_Record_Write_Procedure (Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
*************** package body Exp_Ch3 is
*** 12448,12461 ****
          and then No (TSS (Tag_Typ, TSS_Stream_Input))
        then
           Build_Record_Or_Elementary_Input_Function
!            (Loc, Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
        if Stream_Operation_OK (Tag_Typ, TSS_Stream_Output)
          and then No (TSS (Tag_Typ, TSS_Stream_Output))
        then
!          Build_Record_Or_Elementary_Output_Procedure (Loc, Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
--- 12557,12570 ----
          and then No (TSS (Tag_Typ, TSS_Stream_Input))
        then
           Build_Record_Or_Elementary_Input_Function
!            (Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
        if Stream_Operation_OK (Tag_Typ, TSS_Stream_Output)
          and then No (TSS (Tag_Typ, TSS_Stream_Output))
        then
!          Build_Record_Or_Elementary_Output_Procedure (Tag_Typ, Decl, Ent);
           Append_To (Res, Decl);
        end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch3.ads gcc-14.1.0/gcc/ada/exp_ch3.ads
*** gcc-13.2.0/gcc/ada/exp_ch3.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch3.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch3 is
*** 109,118 ****
  
     function Build_Variant_Record_Equality
       (Typ         : Entity_Id;
        Body_Id     : Entity_Id;
        Param_Specs : List_Id) return Node_Id;
     --  Build the body of the equality function Body_Id for the untagged variant
!    --  record Typ with the given parameters specification list.
  
     function Freeze_Type (N : Node_Id) return Boolean;
     --  This function executes the freezing actions associated with the given
--- 109,120 ----
  
     function Build_Variant_Record_Equality
       (Typ         : Entity_Id;
+       Spec_Id     : Entity_Id;
        Body_Id     : Entity_Id;
        Param_Specs : List_Id) return Node_Id;
     --  Build the body of the equality function Body_Id for the untagged variant
!    --  record Typ with the given parameters specification list. If Spec_Id is
!    --  present, the body is built for a renaming of the equality function.
  
     function Freeze_Type (N : Node_Id) return Boolean;
     --  This function executes the freezing actions associated with the given
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch4.adb gcc-14.1.0/gcc/ada/exp_ch4.adb
*** gcc-13.2.0/gcc/ada/exp_ch4.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch4.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch4 is
*** 241,263 ****
     --  and X is a simple entity, and op is a comparison operator, optimizes it
     --  into a comparison of X'First and X'Last.
  
!    procedure Process_If_Case_Statements (N : Node_Id; Stmts : List_Id);
!    --  Inspect and process statement list Stmt of if or case expression N for
!    --  transient objects. If such objects are found, the routine generates code
!    --  to clean them up when the context of the expression is evaluated.
! 
!    procedure Process_Transient_In_Expression
!      (Obj_Decl : Node_Id;
!       Expr     : Node_Id;
!       Stmts    : List_Id);
     --  Subsidiary routine to the expansion of expression_with_actions, if and
!    --  case expressions. Generate all necessary code to finalize a transient
!    --  object when the enclosing context is elaborated or evaluated. Obj_Decl
!    --  denotes the declaration of the transient object, which is usually the
!    --  result of a controlled function call. Expr denotes the expression with
!    --  actions, if expression, or case expression node. Stmts denotes the
!    --  statement list which contains Decl, either at the top level or within a
!    --  nested construct.
  
     procedure Rewrite_Comparison (N : Node_Id);
     --  If N is the node for a comparison whose outcome can be determined at
--- 241,262 ----
     --  and X is a simple entity, and op is a comparison operator, optimizes it
     --  into a comparison of X'First and X'Last.
  
!    procedure Process_Transients_In_Expression
!      (Expr  : Node_Id;
!       Stmts : List_Id);
     --  Subsidiary routine to the expansion of expression_with_actions, if and
!    --  case expressions. Inspect and process actions list Stmts of expression
!    --  Expr for transient objects. If such objects are found, the routine will
!    --  generate code to finalize them when the enclosing context is elaborated
!    --  or evaluated.
! 
!    --  This specific processing is required for these expressions because the
!    --  management of transient objects for expressions implemented in Exp_Ch7
!    --  cannot deal with nested lists of actions whose effects may outlive the
!    --  lists and affect the result of the parent expressions. In these cases,
!    --  the lifetime of temporaries created in these lists must be extended to
!    --  match that of the enclosing context of the parent expressions and, in
!    --  particular, their finalization must be deferred to this context.
  
     procedure Rewrite_Comparison (N : Node_Id);
     --  If N is the node for a comparison whose outcome can be determined at
*************** package body Exp_Ch4 is
*** 555,573 ****
     ---------------------------------
  
     procedure Expand_Allocator_Expression (N : Node_Id) is
!       Loc    : constant Source_Ptr := Sloc (N);
!       Exp    : constant Node_Id    := Expression (Expression (N));
!       PtrT   : constant Entity_Id  := Etype (N);
!       DesigT : constant Entity_Id  := Designated_Type (PtrT);
! 
!       --  Local variables
  
-       Indic         : constant Node_Id   := Subtype_Mark (Expression (N));
-       T             : constant Entity_Id := Entity (Indic);
        Adj_Call      : Node_Id;
        Aggr_In_Place : Boolean;
        Node          : Node_Id;
-       Tag_Assign    : Node_Id;
        Temp          : Entity_Id;
        Temp_Decl     : Node_Id;
  
--- 554,570 ----
     ---------------------------------
  
     procedure Expand_Allocator_Expression (N : Node_Id) is
!       Loc            : constant Source_Ptr := Sloc (N);
!       Exp            : constant Node_Id    := Expression (Expression (N));
!       Indic          : constant Node_Id    := Subtype_Mark (Expression (N));
!       T              : constant Entity_Id  := Entity (Indic);
!       PtrT           : constant Entity_Id  := Etype (N);
!       DesigT         : constant Entity_Id  := Designated_Type (PtrT);
!       Special_Return : constant Boolean    := For_Special_Return_Object (N);
  
        Adj_Call      : Node_Id;
        Aggr_In_Place : Boolean;
        Node          : Node_Id;
        Temp          : Entity_Id;
        Temp_Decl     : Node_Id;
  
*************** package body Exp_Ch4 is
*** 577,584 ****
        TagR : Node_Id := Empty;
        --  Target reference for tag assignment
  
-    --  Start of processing for Expand_Allocator_Expression
- 
     begin
        --  Handle call to C++ constructor
  
--- 574,579 ----
*************** package body Exp_Ch4 is
*** 598,604 ****
  
        Apply_Constraint_Check (Exp, T, No_Sliding => True);
  
!       Apply_Predicate_Check (Exp, T);
  
        --  Check that any anonymous access discriminants are suitable
        --  for use in an allocator.
--- 593,607 ----
  
        Apply_Constraint_Check (Exp, T, No_Sliding => True);
  
!       Aggr_In_Place := Is_Delayed_Aggregate (Exp);
! 
!       --  If the expression is an aggregate to be built in place, then we need
!       --  to delay applying predicate checks, because this would result in the
!       --  creation of a temporary, which is illegal for limited types,
! 
!       if not Aggr_In_Place then
!          Apply_Predicate_Check (Exp, T);
!       end if;
  
        --  Check that any anonymous access discriminants are suitable
        --  for use in an allocator.
*************** package body Exp_Ch4 is
*** 659,666 ****
           return;
        end if;
  
-       Aggr_In_Place := Is_Delayed_Aggregate (Exp);
- 
        --  Case of tagged type or type requiring finalization
  
        if Is_Tagged_Type (T) or else Needs_Finalization (T) then
--- 662,667 ----
*************** package body Exp_Ch4 is
*** 903,909 ****
  
           --  Likewise if the allocator is made for a special return object
  
!          elsif For_Special_Return_Object (N) then
              null;
  
           elsif Is_Tagged_Type (T) and then not Is_Class_Wide_Type (T) then
--- 904,910 ----
  
           --  Likewise if the allocator is made for a special return object
  
!          elsif Special_Return then
              null;
  
           elsif Is_Tagged_Type (T) and then not Is_Class_Wide_Type (T) then
*************** package body Exp_Ch4 is
*** 923,952 ****
           end if;
  
           if Present (TagT) then
!             declare
!                Full_T : constant Entity_Id := Underlying_Type (TagT);
! 
!             begin
!                Tag_Assign :=
!                  Make_Assignment_Statement (Loc,
!                    Name       =>
!                      Make_Selected_Component (Loc,
!                        Prefix        => TagR,
!                        Selector_Name =>
!                          New_Occurrence_Of
!                            (First_Tag_Component (Full_T), Loc)),
! 
!                    Expression =>
!                      Unchecked_Convert_To (RTE (RE_Tag),
!                        New_Occurrence_Of
!                          (Elists.Node
!                            (First_Elmt (Access_Disp_Table (Full_T))), Loc)));
!             end;
! 
!             --  The previous assignment has to be done in any case
! 
!             Set_Assignment_OK (Name (Tag_Assign));
!             Insert_Action (N, Tag_Assign);
           end if;
  
           --  Generate an Adjust call if the object will be moved. In Ada 2005,
--- 924,932 ----
           end if;
  
           if Present (TagT) then
!             Insert_Action (N,
!               Make_Tag_Assignment_From_Type
!                 (Loc, TagR, Underlying_Type (TagT)));
           end if;
  
           --  Generate an Adjust call if the object will be moved. In Ada 2005,
*************** package body Exp_Ch4 is
*** 963,972 ****
  
           if Needs_Finalization (DesigT)
             and then Needs_Finalization (T)
!            and then not Is_Limited_View (T)
             and then not Aggr_In_Place
             and then Nkind (Exp) /= N_Function_Call
!            and then not For_Special_Return_Object (N)
           then
              --  An unchecked conversion is needed in the classwide case because
              --  the designated type can be an ancestor of the subtype mark of
--- 943,952 ----
  
           if Needs_Finalization (DesigT)
             and then Needs_Finalization (T)
!            and then not Is_Inherently_Limited_Type (T)
             and then not Aggr_In_Place
             and then Nkind (Exp) /= N_Function_Call
!            and then not Special_Return
           then
              --  An unchecked conversion is needed in the classwide case because
              --  the designated type can be an ancestor of the subtype mark of
*************** package body Exp_Ch4 is
*** 993,998 ****
--- 973,982 ----
           Rewrite (N, New_Occurrence_Of (Temp, Loc));
           Analyze_And_Resolve (N, PtrT);
  
+          if Aggr_In_Place then
+             Apply_Predicate_Check (N, T, Deref => True);
+          end if;
+ 
           --  Ada 2005 (AI-251): Displace the pointer to reference the record
           --  component containing the secondary dispatch table of the interface
           --  type.
*************** package body Exp_Ch4 is
*** 1033,1038 ****
--- 1017,1026 ----
           Rewrite (N, New_Occurrence_Of (Temp, Loc));
           Analyze_And_Resolve (N, PtrT);
  
+          if Aggr_In_Place then
+             Apply_Predicate_Check (N, T, Deref => True);
+          end if;
+ 
        elsif Is_Access_Type (T) and then Can_Never_Be_Null (T) then
           Install_Null_Excluding_Check (Exp);
  
*************** package body Exp_Ch4 is
*** 2296,2443 ****
           Eq_Op := TSS (Full_Type, TSS_Composite_Equality);
  
           if Present (Eq_Op) then
!             if Etype (First_Formal (Eq_Op)) /= Full_Type then
! 
!                --  Inherited equality from parent type. Convert the actuals to
!                --  match signature of operation.
! 
!                declare
!                   T : constant Entity_Id := Etype (First_Formal (Eq_Op));
! 
!                begin
!                   return
!                     Make_Function_Call (Loc,
!                       Name                   => New_Occurrence_Of (Eq_Op, Loc),
!                       Parameter_Associations => New_List (
!                         OK_Convert_To (T, Lhs),
!                         OK_Convert_To (T, Rhs)));
!                end;
! 
!             else
!                --  Comparison between Unchecked_Union components
! 
!                if Is_Unchecked_Union (Full_Type) then
!                   declare
!                      Lhs_Type      : Node_Id := Full_Type;
!                      Rhs_Type      : Node_Id := Full_Type;
!                      Lhs_Discr_Val : Node_Id;
!                      Rhs_Discr_Val : Node_Id;
! 
!                   begin
!                      --  Lhs subtype
! 
!                      if Nkind (Lhs) = N_Selected_Component then
!                         Lhs_Type := Etype (Entity (Selector_Name (Lhs)));
!                      end if;
! 
!                      --  Rhs subtype
! 
!                      if Nkind (Rhs) = N_Selected_Component then
!                         Rhs_Type := Etype (Entity (Selector_Name (Rhs)));
!                      end if;
! 
!                      --  Lhs of the composite equality
! 
!                      if Is_Constrained (Lhs_Type) then
! 
!                         --  Since the enclosing record type can never be an
!                         --  Unchecked_Union (this code is executed for records
!                         --  that do not have variants), we may reference its
!                         --  discriminant(s).
! 
!                         if Nkind (Lhs) = N_Selected_Component
!                           and then Has_Per_Object_Constraint
!                                      (Entity (Selector_Name (Lhs)))
!                         then
!                            Lhs_Discr_Val :=
!                              Make_Selected_Component (Loc,
!                                Prefix        => Prefix (Lhs),
!                                Selector_Name =>
!                                  New_Copy
!                                    (Get_Discriminant_Value
!                                       (First_Discriminant (Lhs_Type),
!                                        Lhs_Type,
!                                        Stored_Constraint (Lhs_Type))));
! 
!                         else
!                            Lhs_Discr_Val :=
!                              New_Copy
!                                (Get_Discriminant_Value
!                                   (First_Discriminant (Lhs_Type),
!                                    Lhs_Type,
!                                    Stored_Constraint (Lhs_Type)));
! 
!                         end if;
!                      else
!                         --  It is not possible to infer the discriminant since
!                         --  the subtype is not constrained.
! 
!                         return
!                           Make_Raise_Program_Error (Loc,
!                             Reason => PE_Unchecked_Union_Restriction);
!                      end if;
! 
!                      --  Rhs of the composite equality
! 
!                      if Is_Constrained (Rhs_Type) then
!                         if Nkind (Rhs) = N_Selected_Component
!                           and then Has_Per_Object_Constraint
!                                      (Entity (Selector_Name (Rhs)))
!                         then
!                            Rhs_Discr_Val :=
!                              Make_Selected_Component (Loc,
!                                Prefix        => Prefix (Rhs),
!                                Selector_Name =>
!                                  New_Copy
!                                    (Get_Discriminant_Value
!                                       (First_Discriminant (Rhs_Type),
!                                        Rhs_Type,
!                                        Stored_Constraint (Rhs_Type))));
! 
!                         else
!                            Rhs_Discr_Val :=
!                              New_Copy
!                                (Get_Discriminant_Value
!                                   (First_Discriminant (Rhs_Type),
!                                    Rhs_Type,
!                                    Stored_Constraint (Rhs_Type)));
! 
!                         end if;
!                      else
!                         return
!                           Make_Raise_Program_Error (Loc,
!                             Reason => PE_Unchecked_Union_Restriction);
!                      end if;
  
!                      --  Call the TSS equality function with the inferred
!                      --  discriminant values.
  
!                      return
!                        Make_Function_Call (Loc,
!                          Name => New_Occurrence_Of (Eq_Op, Loc),
!                          Parameter_Associations => New_List (
!                            Lhs,
!                            Rhs,
!                            Lhs_Discr_Val,
!                            Rhs_Discr_Val));
!                   end;
  
!                --  All cases other than comparing Unchecked_Union types
  
                 else
!                   declare
!                      T : constant Entity_Id := Etype (First_Formal (Eq_Op));
!                   begin
!                      return
!                        Make_Function_Call (Loc,
!                          Name                   =>
!                            New_Occurrence_Of (Eq_Op, Loc),
!                          Parameter_Associations => New_List (
!                            OK_Convert_To (T, Lhs),
!                            OK_Convert_To (T, Rhs)));
!                   end;
                 end if;
!             end if;
  
           --  Equality composes in Ada 2012 for untagged record types. It also
           --  composes for bounded strings, because they are part of the
--- 2284,2311 ----
           Eq_Op := TSS (Full_Type, TSS_Composite_Equality);
  
           if Present (Eq_Op) then
!             declare
!                Op_Typ : constant Entity_Id := Etype (First_Formal (Eq_Op));
  
!                L_Exp, R_Exp : Node_Id;
  
!             begin
!                --  Adjust operands if necessary to comparison type
  
!                if Base_Type (Full_Type) /= Base_Type (Op_Typ) then
!                   L_Exp := OK_Convert_To (Op_Typ, Lhs);
!                   R_Exp := OK_Convert_To (Op_Typ, Rhs);
  
                 else
!                   L_Exp := Relocate_Node (Lhs);
!                   R_Exp := Relocate_Node (Rhs);
                 end if;
! 
!                return
!                  Make_Function_Call (Loc,
!                    Name                   => New_Occurrence_Of (Eq_Op, Loc),
!                    Parameter_Associations => New_List (L_Exp, R_Exp));
!             end;
  
           --  Equality composes in Ada 2012 for untagged record types. It also
           --  composes for bounded strings, because they are part of the
*************** package body Exp_Ch4 is
*** 2536,2542 ****
        --  Reset to False if at least one operand is encountered which is known
        --  at compile time to be non-null. Used for handling the special case
        --  of setting the high bound to the last operand high bound for a null
!       --  result, thus ensuring a proper high bound in the super-flat case.
  
        N : constant Nat := List_Length (Opnds);
        --  Number of concatenation operands including possibly null operands
--- 2404,2410 ----
        --  Reset to False if at least one operand is encountered which is known
        --  at compile time to be non-null. Used for handling the special case
        --  of setting the high bound to the last operand high bound for a null
!       --  result, thus ensuring a proper high bound in the superflat case.
  
        N : constant Nat := List_Length (Opnds);
        --  Number of concatenation operands including possibly null operands
*************** package body Exp_Ch4 is
*** 2726,2733 ****
        --  Local Declarations
  
        Opnd_Typ   : Entity_Id;
!       Slice_Rng  : Entity_Id;
!       Subtyp_Ind : Entity_Id;
        Ent        : Entity_Id;
        Len        : Unat;
        J          : Nat;
--- 2594,2602 ----
        --  Local Declarations
  
        Opnd_Typ   : Entity_Id;
!       Slice_Rng  : Node_Id;
!       Subtyp_Ind : Node_Id;
!       Subtyp_Rng : Node_Id;
        Ent        : Entity_Id;
        Len        : Unat;
        J          : Nat;
*************** package body Exp_Ch4 is
*** 3184,3190 ****
  
        --  Handle the exceptional case where the result is null, in which case
        --  case the bounds come from the last operand (so that we get the proper
!       --  bounds if the last operand is super-flat).
  
        if Result_May_Be_Null then
           Low_Bound :=
--- 3053,3059 ----
  
        --  Handle the exceptional case where the result is null, in which case
        --  case the bounds come from the last operand (so that we get the proper
!       --  bounds if the last operand is superflat).
  
        if Result_May_Be_Null then
           Low_Bound :=
*************** package body Exp_Ch4 is
*** 3239,3244 ****
--- 3108,3119 ----
           Slice_Rng := Empty;
        end if;
  
+       Subtyp_Rng := Make_Range (Loc, Low_Bound, High_Bound);
+ 
+       --  If the result cannot be null then the range cannot be superflat
+ 
+       Set_Cannot_Be_Superflat (Subtyp_Rng, not Result_May_Be_Null);
+ 
        --  Now we construct an array object with appropriate bounds. We mark
        --  the target as internal to prevent useless initialization when
        --  Initialize_Scalars is enabled. Also since this is the actual result
*************** package body Exp_Ch4 is
*** 3249,3258 ****
            Subtype_Mark => New_Occurrence_Of (Atyp, Loc),
            Constraint   =>
              Make_Index_Or_Discriminant_Constraint (Loc,
!               Constraints => New_List (
!                 Make_Range (Loc,
!                   Low_Bound  => Low_Bound,
!                   High_Bound => High_Bound))));
  
        Ent := Make_Temporary (Loc, 'S');
        Set_Is_Internal       (Ent);
--- 3124,3130 ----
            Subtype_Mark => New_Occurrence_Of (Atyp, Loc),
            Constraint   =>
              Make_Index_Or_Discriminant_Constraint (Loc,
!               Constraints => New_List (Subtyp_Rng)));
  
        Ent := Make_Temporary (Loc, 'S');
        Set_Is_Internal       (Ent);
*************** package body Exp_Ch4 is
*** 3494,3500 ****
              --  Array case, slice assignment, skipped when argument is fixed
              --  length and known to be null.
  
!             elsif (not Is_Fixed_Length (J)) or else (Fixed_Length (J) > 0) then
                 declare
                    Assign : Node_Id :=
                               Make_Assignment_Statement (Loc,
--- 3366,3372 ----
              --  Array case, slice assignment, skipped when argument is fixed
              --  length and known to be null.
  
!             elsif not Is_Fixed_Length (J) or else Fixed_Length (J) > 0 then
                 declare
                    Assign : Node_Id :=
                               Make_Assignment_Statement (Loc,
*************** package body Exp_Ch4 is
*** 4785,4792 ****
           if Is_Array_Type (Dtyp) and then not No_Initialization (N) then
              Apply_Constraint_Check (Expression (N), Dtyp, No_Sliding => True);
  
-             Apply_Predicate_Check (Expression (N), Dtyp);
- 
              if Nkind (Expression (N)) = N_Raise_Constraint_Error then
                 Rewrite (N, New_Copy (Expression (N)));
                 Set_Etype (N, PtrT);
--- 4657,4662 ----
*************** package body Exp_Ch4 is
*** 4880,4885 ****
--- 4750,4757 ----
              Rewrite (N, New_Occurrence_Of (Temp, Loc));
              Analyze_And_Resolve (N, PtrT);
  
+             Apply_Predicate_Check (N, Dtyp, Deref => True);
+ 
           --  Case of no initialization procedure present
  
           elsif not Has_Non_Null_Base_Init_Proc (T) then
*************** package body Exp_Ch4 is
*** 4987,4992 ****
--- 4859,4883 ----
                          Expand_N_Full_Type_Declaration
                            (Parent (Base_Type (PtrT)));
  
+                      --  When the allocator has a subtype indication then a
+                      --  constraint is present and an itype has been added by
+                      --  Analyze_Allocator as the subtype of this allocator.
+ 
+                      --  If an allocator with constraints is called in the
+                      --  return statement of a function returning a general
+                      --  access type, then propagate to the itype the master
+                      --  of the general access type (since it is the master
+                      --  associated with the returned object).
+ 
+                      elsif Is_Itype (PtrT)
+                        and then Ekind (Current_Scope) = E_Function
+                        and then Ekind (Etype (Current_Scope))
+                                   = E_General_Access_Type
+                        and then In_Return_Value (N)
+                      then
+                         Set_Master_Id (PtrT,
+                           Master_Id (Etype (Current_Scope)));
+ 
                       --  The only other possibility is an itype. For this
                       --  case, the master must exist in the context. This is
                       --  the case when the allocator initializes an access
*************** package body Exp_Ch4 is
*** 5062,5074 ****
                 --  Add discriminants if discriminated type
  
                 declare
!                   Dis : Boolean := False;
!                   Typ : Entity_Id := Empty;
  
                 begin
                    if Has_Discriminants (T) then
                       Dis := True;
-                      Typ := T;
  
                    --  Type may be a private type with no visible discriminants
                    --  in which case check full view if in scope, or the
--- 4953,4964 ----
                 --  Add discriminants if discriminated type
  
                 declare
!                   Dis : Boolean   := False;
!                   Typ : Entity_Id := T;
  
                 begin
                    if Has_Discriminants (T) then
                       Dis := True;
  
                    --  Type may be a private type with no visible discriminants
                    --  in which case check full view if in scope, or the
*************** package body Exp_Ch4 is
*** 5111,5140 ****
                          Set_Expression (N, New_Occurrence_Of (Typ, Loc));
                       end if;
  
-                      --  When the designated subtype is unconstrained and
-                      --  the allocator specifies a constrained subtype (or
-                      --  such a subtype has been created, such as above by
-                      --  Build_Default_Subtype), associate that subtype with
-                      --  the dereference of the allocator's access value.
-                      --  This is needed by the back end for cases where
-                      --  the access type has a Designated_Storage_Model,
-                      --  to support allocation of a host object of the right
-                      --  size for passing to the initialization procedure.
- 
-                      if not Is_Constrained (Dtyp)
-                        and then Is_Constrained (Typ)
-                      then
-                         declare
-                            Init_Deref : constant Node_Id :=
-                              Unqual_Conv (Init_Arg1);
-                         begin
-                            pragma Assert
-                              (Nkind (Init_Deref) = N_Explicit_Dereference);
- 
-                            Set_Actual_Designated_Subtype (Init_Deref, Typ);
-                         end;
-                      end if;
- 
                       Discr := First_Elmt (Discriminant_Constraint (Typ));
                       while Present (Discr) loop
                          Nod := Node (Discr);
--- 5001,5006 ----
*************** package body Exp_Ch4 is
*** 5157,5162 ****
--- 5023,5051 ----
                          Next_Elmt (Discr);
                       end loop;
                    end if;
+ 
+                   --  When the designated subtype is unconstrained and
+                   --  the allocator specifies a constrained subtype (or
+                   --  such a subtype has been created, such as above by
+                   --  Build_Default_Subtype), associate that subtype with
+                   --  the dereference of the allocator's access value.
+                   --  This is needed by the expander for cases where the
+                   --  access type has a Designated_Storage_Model in order
+                   --  to support allocation of a host object of the right
+                   --  size for passing to the initialization procedure.
+ 
+                   if not Is_Constrained (Dtyp)
+                     and then Is_Constrained (Typ)
+                   then
+                      declare
+                         Deref : constant Node_Id := Unqual_Conv (Init_Arg1);
+ 
+                      begin
+                         pragma Assert (Nkind (Deref) = N_Explicit_Dereference);
+ 
+                         Set_Actual_Designated_Subtype (Deref, Typ);
+                      end;
+                   end if;
                 end;
  
                 --  We set the allocator as analyzed so that when we analyze
*************** package body Exp_Ch4 is
*** 5230,5235 ****
--- 5119,5126 ----
                 Rewrite (N, New_Occurrence_Of (Temp, Loc));
                 Analyze_And_Resolve (N, PtrT);
  
+                Apply_Predicate_Check (N, Dtyp, Deref => True);
+ 
                 --  When designated type has Default_Initial_Condition aspects,
                 --  make a call to the type's DIC procedure to perform the
                 --  checks. Theoretically this might also be needed for cases
*************** package body Exp_Ch4 is
*** 5307,5313 ****
        Alt        : Node_Id;
        Case_Stmt  : Node_Id;
        Decl       : Node_Id;
-       Expr       : Node_Id;
        Target     : Entity_Id := Empty;
        Target_Typ : Entity_Id;
  
--- 5198,5203 ----
*************** package body Exp_Ch4 is
*** 5362,5368 ****
  
        --  In all other cases expand into
  
-       --    do
        --       type Ptr_Typ is access all Typ;
        --       Target : Ptr_Typ;
        --       case X is
--- 5252,5257 ----
*************** package body Exp_Ch4 is
*** 5372,5378 ****
        --             Target := BX'Unrestricted_Access;
        --          ...
        --       end case;
!       --    in Target.all end;
  
        --  This approach avoids extra copies of potentially large objects. It
        --  also allows handling of values of limited or unconstrained types.
--- 5261,5268 ----
        --             Target := BX'Unrestricted_Access;
        --          ...
        --       end case;
! 
!       --  and replace the case expression by a reference to Target.all.
  
        --  This approach avoids extra copies of potentially large objects. It
        --  also allows handling of values of limited or unconstrained types.
*************** package body Exp_Ch4 is
*** 5380,5396 ****
        --  when minimizing expressions with actions (e.g. when generating C
        --  code) since it allows us to do the optimization below in more cases.
  
-       --  Small optimization: when the case expression appears in the context
-       --  of a simple return statement, expand into
- 
-       --    case X is
-       --       when A =>
-       --          return AX;
-       --       when B =>
-       --          return BX;
-       --       ...
-       --    end case;
- 
        Case_Stmt :=
          Make_Case_Statement (Loc,
            Expression   => Expression (N),
--- 5270,5275 ----
*************** package body Exp_Ch4 is
*** 5404,5420 ****
        Set_From_Conditional_Expression (Case_Stmt);
        Acts := New_List;
  
        --  Scalar/Copy case
  
        if Is_Copy_Type (Typ) then
           Target_Typ := Typ;
  
-          --  Do not perform the optimization when the return statement is
-          --  within a predicate function, as this causes spurious errors.
- 
-          Optimize_Return_Stmt :=
-            Nkind (Par) = N_Simple_Return_Statement and then not In_Predicate;
- 
        --  Otherwise create an access type to handle the general case using
        --  'Unrestricted_Access.
  
--- 5283,5311 ----
        Set_From_Conditional_Expression (Case_Stmt);
        Acts := New_List;
  
+       --  Small optimization: when the case expression appears in the context
+       --  of a simple return statement, expand into
+ 
+       --    case X is
+       --       when A =>
+       --          return AX;
+       --       when B =>
+       --          return BX;
+       --       ...
+       --    end case;
+ 
+       --  This makes the expansion much easier when expressions are calls to
+       --  a BIP function. But do not perform it when the return statement is
+       --  within a predicate function, as this causes spurious errors.
+ 
+       Optimize_Return_Stmt :=
+         Nkind (Par) = N_Simple_Return_Statement and then not In_Predicate;
+ 
        --  Scalar/Copy case
  
        if Is_Copy_Type (Typ) then
           Target_Typ := Typ;
  
        --  Otherwise create an access type to handle the general case using
        --  'Unrestricted_Access.
  
*************** package body Exp_Ch4 is
*** 5478,5493 ****
              --  limited and unconstrained cases.
  
              --  Generate:
-             --    AX'Unrestricted_Access
- 
-             if not Is_Copy_Type (Typ) then
-                Alt_Expr :=
-                  Make_Attribute_Reference (Alt_Loc,
-                    Prefix         => Relocate_Node (Alt_Expr),
-                    Attribute_Name => Name_Unrestricted_Access);
-             end if;
- 
-             --  Generate:
              --    return AX['Unrestricted_Access];
  
              if Optimize_Return_Stmt then
--- 5369,5374 ----
*************** package body Exp_Ch4 is
*** 5499,5504 ****
--- 5380,5392 ----
              --    Target := AX['Unrestricted_Access];
  
              else
+                if not Is_Copy_Type (Typ) then
+                   Alt_Expr :=
+                     Make_Attribute_Reference (Alt_Loc,
+                       Prefix         => Relocate_Node (Alt_Expr),
+                       Attribute_Name => Name_Unrestricted_Access);
+                end if;
+ 
                 LHS := New_Occurrence_Of (Target, Loc);
                 Set_Assignment_OK (LHS);
  
*************** package body Exp_Ch4 is
*** 5517,5536 ****
                 Prepend_List (Actions (Alt), Stmts);
              end if;
  
-             --  Finalize any transient objects on exit from the alternative.
-             --  This is done only in the return optimization case because
-             --  otherwise the case expression is converted into an expression
-             --  with actions which already contains this form of processing.
- 
-             if Optimize_Return_Stmt then
-                Process_If_Case_Statements (N, Stmts);
-             end if;
- 
              Append_To
                (Alternatives (Case_Stmt),
                 Make_Case_Statement_Alternative (Sloc (Alt),
                   Discrete_Choices => Discrete_Choices (Alt),
                   Statements       => Stmts));
           end;
  
           Next (Alt);
--- 5405,5421 ----
                 Prepend_List (Actions (Alt), Stmts);
              end if;
  
              Append_To
                (Alternatives (Case_Stmt),
                 Make_Case_Statement_Alternative (Sloc (Alt),
                   Discrete_Choices => Discrete_Choices (Alt),
                   Statements       => Stmts));
+ 
+             --  Finalize any transient objects on exit from the alternative.
+             --  Note that this needs to be done only after Stmts is attached
+             --  to the Alternatives list above (for Safe_To_Capture_Value).
+ 
+             Process_Transients_In_Expression (N, Stmts);
           end;
  
           Next (Alt);
*************** package body Exp_Ch4 is
*** 5542,5571 ****
           Rewrite (Par, Case_Stmt);
           Analyze (Par);
  
!       --  Otherwise convert the case expression into an expression with actions
  
        else
           Append_To (Acts, Case_Stmt);
  
           if Is_Copy_Type (Typ) then
!             Expr := New_Occurrence_Of (Target, Loc);
  
           else
!             Expr :=
                Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Target, Loc));
           end if;
  
-          --  Generate:
-          --    do
-          --       ...
-          --    in Target[.all] end;
- 
-          Rewrite (N,
-            Make_Expression_With_Actions (Loc,
-              Expression => Expr,
-              Actions    => Acts));
- 
           Analyze_And_Resolve (N, Typ);
        end if;
     end Expand_N_Case_Expression;
--- 5427,5450 ----
           Rewrite (Par, Case_Stmt);
           Analyze (Par);
  
!       --  Otherwise rewrite the case expression itself
  
        else
           Append_To (Acts, Case_Stmt);
  
           if Is_Copy_Type (Typ) then
!             Rewrite (N,
!               Make_Expression_With_Actions (Loc,
!                 Expression => New_Occurrence_Of (Target, Loc),
!                 Actions    => Acts));
  
           else
!             Insert_Actions (N, Acts);
!             Rewrite (N,
                Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Target, Loc)));
           end if;
  
           Analyze_And_Resolve (N, Typ);
        end if;
     end Expand_N_Case_Expression;
*************** package body Exp_Ch4 is
*** 5600,5611 ****
        procedure Force_Boolean_Evaluation (Expr : Node_Id);
        --  Force the evaluation of Boolean expression Expr
  
-       function Process_Action (Act : Node_Id) return Traverse_Result;
-       --  Inspect and process a single action of an expression_with_actions for
-       --  transient objects. If such objects are found, the routine generates
-       --  code to clean them up when the context of the expression is evaluated
-       --  or elaborated.
- 
        ------------------------------
        -- Force_Boolean_Evaluation --
        ------------------------------
--- 5479,5484 ----
*************** package body Exp_Ch4 is
*** 5638,5676 ****
           Analyze (Expression (N));
        end Force_Boolean_Evaluation;
  
-       --------------------
-       -- Process_Action --
-       --------------------
- 
-       function Process_Action (Act : Node_Id) return Traverse_Result is
-       begin
-          if Nkind (Act) = N_Object_Declaration
-            and then Is_Finalizable_Transient (Act, N)
-          then
-             Process_Transient_In_Expression (Act, N, Acts);
-             return Skip;
- 
-          --  Avoid processing temporary function results multiple times when
-          --  dealing with nested expression_with_actions.
-          --  Similarly, do not process temporary function results in loops.
-          --  This is done by Expand_N_Loop_Statement and Build_Finalizer.
-          --  Note that we used to wrongly return Abandon instead of Skip here:
-          --  this is wrong since it means that we were ignoring lots of
-          --  relevant subsequent statements.
- 
-          elsif Nkind (Act) in N_Expression_With_Actions | N_Loop_Statement then
-             return Skip;
-          end if;
- 
-          return OK;
-       end Process_Action;
- 
-       procedure Process_Single_Action is new Traverse_Proc (Process_Action);
- 
-       --  Local variables
- 
-       Act : Node_Id;
- 
     --  Start of processing for Expand_N_Expression_With_Actions
  
     begin
--- 5511,5516 ----
*************** package body Exp_Ch4 is
*** 5723,5739 ****
        --  the usual forced evaluation to encapsulate potential aliasing.
  
        else
           Force_Evaluation (Expression (N));
        end if;
  
!       --  Process all transient objects found within the actions of the EWA
!       --  node.
  
!       Act := First (Acts);
!       while Present (Act) loop
!          Process_Single_Action (Act);
!          Next (Act);
!       end loop;
  
        --  Deal with case where there are no actions. In this case we simply
        --  rewrite the node with its expression since we don't need the actions
--- 5563,5579 ----
        --  the usual forced evaluation to encapsulate potential aliasing.
  
        else
+          --  A check is also needed since the subtype of the EWA node and the
+          --  subtype of the expression may differ (for example, the EWA node
+          --  may have a null-excluding access subtype).
+ 
+          Apply_Constraint_Check (Expression (N), Etype (N));
           Force_Evaluation (Expression (N));
        end if;
  
!       --  Process transient objects found within the actions of the EWA node
  
!       Process_Transients_In_Expression (N, Acts);
  
        --  Deal with case where there are no actions. In this case we simply
        --  rewrite the node with its expression since we don't need the actions
*************** package body Exp_Ch4 is
*** 5760,5765 ****
--- 5600,5606 ----
        Loc   : constant Source_Ptr := Sloc (N);
        Thenx : constant Node_Id    := Next (Cond);
        Elsex : constant Node_Id    := Next (Thenx);
+       Par   : constant Node_Id    := Parent (N);
        Typ   : constant Entity_Id  := Etype (N);
  
        Force_Expand : constant Boolean := Is_Anonymous_Access_Actual (N);
*************** package body Exp_Ch4 is
*** 5800,5805 ****
--- 5641,5650 ----
        New_If  : Node_Id;
        New_N   : Node_Id;
  
+       Optimize_Return_Stmt : Boolean := False;
+       --  Flag set when the if expression can be optimized in the context of
+       --  a simple return statement.
+ 
     --  Start of processing for Expand_N_If_Expression
  
     begin
*************** package body Exp_Ch4 is
*** 5883,5891 ****
           end;
        end if;
  
!       --  If the type is limited, and the back end does not handle limited
!       --  types, then we expand as follows to avoid the possibility of
!       --  improper copying.
  
        --      type Ptr is access all Typ;
        --      Cnn : Ptr;
--- 5728,5779 ----
           end;
        end if;
  
!       --  Small optimization: when the if expression appears in the context of
!       --  a simple return statement, expand into
! 
!       --    if cond then
!       --       return then-expr
!       --    else
!       --       return else-expr;
!       --    end if;
! 
!       --  This makes the expansion much easier when expressions are calls to
!       --  a BIP function. But do not perform it when the return statement is
!       --  within a predicate function, as this causes spurious errors.
! 
!       Optimize_Return_Stmt :=
!         Nkind (Par) = N_Simple_Return_Statement
!           and then not (Ekind (Current_Scope) in E_Function | E_Procedure
!                          and then Is_Predicate_Function (Current_Scope));
! 
!       if Optimize_Return_Stmt then
!          --  When the "then" or "else" expressions involve controlled function
!          --  calls, generated temporaries are chained on the corresponding list
!          --  of actions. These temporaries need to be finalized after the if
!          --  expression is evaluated.
! 
!          Process_Transients_In_Expression (N, Then_Actions (N));
!          Process_Transients_In_Expression (N, Else_Actions (N));
! 
!          New_If :=
!            Make_Implicit_If_Statement (N,
!              Condition       => Relocate_Node (Cond),
!              Then_Statements => New_List (
!                Make_Simple_Return_Statement (Sloc (Thenx),
!                  Expression => Relocate_Node (Thenx))),
!              Else_Statements => New_List (
!                Make_Simple_Return_Statement (Sloc (Elsex),
!                  Expression => Relocate_Node (Elsex))));
! 
!          --  Preserve the original context for which the if statement is
!          --  being generated. This is needed by the finalization machinery
!          --  to prevent the premature finalization of controlled objects
!          --  found within the if statement.
! 
!          Set_From_Conditional_Expression (New_If);
! 
!       --  If the type is by reference, then we expand as follows to avoid the
!       --  possibility of improper copying.
  
        --      type Ptr is access all Typ;
        --      Cnn : Ptr;
*************** package body Exp_Ch4 is
*** 5899,5917 ****
  
        --  and replace the if expression by a reference to Cnn.all.
  
!       --  This special case can be skipped if the back end handles limited
!       --  types properly and ensures that no incorrect copies are made.
! 
!       if Is_By_Reference_Type (Typ)
!         and then not Back_End_Handles_Limited_Types
!       then
           --  When the "then" or "else" expressions involve controlled function
           --  calls, generated temporaries are chained on the corresponding list
           --  of actions. These temporaries need to be finalized after the if
           --  expression is evaluated.
  
!          Process_If_Case_Statements (N, Then_Actions (N));
!          Process_If_Case_Statements (N, Else_Actions (N));
  
           declare
              Cnn     : constant Entity_Id := Make_Temporary (Loc, 'C', N);
--- 5787,5800 ----
  
        --  and replace the if expression by a reference to Cnn.all.
  
!       elsif Is_By_Reference_Type (Typ) then
           --  When the "then" or "else" expressions involve controlled function
           --  calls, generated temporaries are chained on the corresponding list
           --  of actions. These temporaries need to be finalized after the if
           --  expression is evaluated.
  
!          Process_Transients_In_Expression (N, Then_Actions (N));
!          Process_Transients_In_Expression (N, Else_Actions (N));
  
           declare
              Cnn     : constant Entity_Id := Make_Temporary (Loc, 'C', N);
*************** package body Exp_Ch4 is
*** 6019,6024 ****
--- 5902,5915 ----
          and then not Generate_C_Code
          and then not Unnest_Subprogram_Mode
        then
+          --  When the "then" or "else" expressions involve controlled function
+          --  calls, generated temporaries are chained on the corresponding list
+          --  of actions. These temporaries need to be finalized after the if
+          --  expression is evaluated.
+ 
+          Process_Transients_In_Expression (N, Then_Actions (N));
+          Process_Transients_In_Expression (N, Else_Actions (N));
+ 
           declare
              Ityp : constant Entity_Id := Base_Type (Etype (First_Index (Typ)));
  
*************** package body Exp_Ch4 is
*** 6224,6232 ****
        --  Note that the test for being in an object declaration avoids doing an
        --  unnecessary expansion, and also avoids infinite recursion.
  
!       elsif Is_Array_Type (Typ) and then not Is_Constrained (Typ)
!         and then (Nkind (Parent (N)) /= N_Object_Declaration
!                    or else Expression (Parent (N)) /= N)
        then
           declare
              Cnn : constant Node_Id := Make_Temporary (Loc, 'C', N);
--- 6115,6124 ----
        --  Note that the test for being in an object declaration avoids doing an
        --  unnecessary expansion, and also avoids infinite recursion.
  
!       elsif Is_Array_Type (Typ)
!         and then not Is_Constrained (Typ)
!         and then not (Nkind (Par) = N_Object_Declaration
!                        and then Expression (Par) = N)
        then
           declare
              Cnn : constant Node_Id := Make_Temporary (Loc, 'C', N);
*************** package body Exp_Ch4 is
*** 6252,6264 ****
          or else Present (Else_Actions (N))
          or else Force_Expand
        then
- 
           --  We now wrap the actions into the appropriate expression
  
           if Minimize_Expression_With_Actions
             and then (Is_Elementary_Type (Underlying_Type (Typ))
                        or else Is_Constrained (Underlying_Type (Typ)))
           then
              --  If we can't use N_Expression_With_Actions nodes, then we insert
              --  the following sequence of actions (using Insert_Actions):
  
--- 6144,6163 ----
          or else Present (Else_Actions (N))
          or else Force_Expand
        then
           --  We now wrap the actions into the appropriate expression
  
           if Minimize_Expression_With_Actions
             and then (Is_Elementary_Type (Underlying_Type (Typ))
                        or else Is_Constrained (Underlying_Type (Typ)))
           then
+             --  When the "then" or "else" expressions involve controlled
+             --  function calls, generated temporaries are chained on the
+             --  corresponding list of actions. These temporaries need to
+             --  be finalized after the if expression is evaluated.
+ 
+             Process_Transients_In_Expression (N, Then_Actions (N));
+             Process_Transients_In_Expression (N, Else_Actions (N));
+ 
              --  If we can't use N_Expression_With_Actions nodes, then we insert
              --  the following sequence of actions (using Insert_Actions):
  
*************** package body Exp_Ch4 is
*** 6305,6310 ****
--- 6204,6213 ----
           --  Regular path using Expression_With_Actions
  
           else
+             --  We do not need to call Process_Transients_In_Expression on
+             --  the list of actions in this case, because the expansion of
+             --  Expression_With_Actions will do it.
+ 
              if Present (Then_Actions (N)) then
                 Rewrite (Thenx,
                   Make_Expression_With_Actions (Sloc (Thenx),
*************** package body Exp_Ch4 is
*** 6389,6402 ****
        --  in order to make sure that no branch is shared between the decisions.
  
        elsif Opt.Suppress_Control_Flow_Optimizations
!         and then Nkind (Original_Node (Parent (N))) in N_Case_Expression
!                                                      | N_Case_Statement
!                                                      | N_If_Expression
!                                                      | N_If_Statement
!                                                      | N_Goto_When_Statement
!                                                      | N_Loop_Statement
!                                                      | N_Return_When_Statement
!                                                      | N_Short_Circuit
        then
           declare
              Cnn  : constant Entity_Id := Make_Temporary (Loc, 'C');
--- 6292,6305 ----
        --  in order to make sure that no branch is shared between the decisions.
  
        elsif Opt.Suppress_Control_Flow_Optimizations
!         and then Nkind (Original_Node (Par)) in N_Case_Expression
!                                               | N_Case_Statement
!                                               | N_If_Expression
!                                               | N_If_Statement
!                                               | N_Goto_When_Statement
!                                               | N_Loop_Statement
!                                               | N_Return_When_Statement
!                                               | N_Short_Circuit
        then
           declare
              Cnn  : constant Entity_Id := Make_Temporary (Loc, 'C');
*************** package body Exp_Ch4 is
*** 6437,6456 ****
        --  change it to the SLOC of the expression which, after expansion, will
        --  correspond to what is being evaluated.
  
!       if Present (Parent (N)) and then Nkind (Parent (N)) = N_If_Statement then
!          Set_Sloc (New_If, Sloc (Parent (N)));
!          Set_Sloc (Parent (N), Loc);
        end if;
  
        --  Move Then_Actions and Else_Actions, if any, to the new if statement
  
!       Insert_List_Before (First (Then_Statements (New_If)), Then_Actions (N));
!       Insert_List_Before (First (Else_Statements (New_If)), Else_Actions (N));
  
!       Insert_Action (N, Decl);
!       Insert_Action (N, New_If);
!       Rewrite (N, New_N);
!       Analyze_And_Resolve (N, Typ);
     end Expand_N_If_Expression;
  
     -----------------
--- 6340,6374 ----
        --  change it to the SLOC of the expression which, after expansion, will
        --  correspond to what is being evaluated.
  
!       if Present (Par) and then Nkind (Par) = N_If_Statement then
!          Set_Sloc (New_If, Sloc (Par));
!          Set_Sloc (Par, Loc);
        end if;
  
        --  Move Then_Actions and Else_Actions, if any, to the new if statement
  
!       if Present (Then_Actions (N)) then
!          Prepend_List (Then_Actions (N), Then_Statements (New_If));
!       end if;
  
!       if Present (Else_Actions (N)) then
!          Prepend_List (Else_Actions (N), Else_Statements (New_If));
!       end if;
! 
!       --  Rewrite the parent return statement as an if statement
! 
!       if Optimize_Return_Stmt then
!          Rewrite (Par, New_If);
!          Analyze (Par);
! 
!       --  Otherwise rewrite the if expression itself
! 
!       else
!          Insert_Action (N, Decl);
!          Insert_Action (N, New_If);
!          Rewrite (N, New_N);
!          Analyze_And_Resolve (N, Typ);
!       end if;
     end Expand_N_If_Expression;
  
     -----------------
*************** package body Exp_Ch4 is
*** 6482,6515 ****
           ----------------------------
  
           function Is_OK_Object_Reference (Nod : Node_Id) return Boolean is
!             Obj_Ref : Node_Id;
  
           begin
-             --  Inspect the original operand
- 
-             Obj_Ref := Original_Node (Nod);
- 
              --  The object reference must be a source construct, otherwise the
              --  codefix suggestion may refer to nonexistent code from a user
              --  perspective.
  
!             if Comes_From_Source (Obj_Ref) then
!                loop
!                   if Nkind (Obj_Ref) in
!                        N_Type_Conversion |
!                        N_Unchecked_Type_Conversion |
!                        N_Qualified_Expression
!                   then
!                      Obj_Ref := Expression (Obj_Ref);
!                   else
!                      exit;
!                   end if;
!                end loop;
! 
!                return Is_Object_Reference (Obj_Ref);
!             end if;
! 
!             return False;
           end Is_OK_Object_Reference;
  
        --  Start of processing for Substitute_Valid_Test
--- 6400,6415 ----
           ----------------------------
  
           function Is_OK_Object_Reference (Nod : Node_Id) return Boolean is
!             Obj_Ref : constant Node_Id := Original_Node (Nod);
!             --  The original operand
  
           begin
              --  The object reference must be a source construct, otherwise the
              --  codefix suggestion may refer to nonexistent code from a user
              --  perspective.
  
!             return Comes_From_Source (Obj_Ref)
!               and then Is_Object_Reference (Unqual_Conv (Obj_Ref));
           end Is_OK_Object_Reference;
  
        --  Start of processing for Substitute_Valid_Test
*************** package body Exp_Ch4 is
*** 6898,6908 ****
  
                 --  If the null exclusion checks are not compatible, need to
                 --  perform further checks. In other words, we cannot have
!                --  Ltyp including null and Typ excluding null. All other cases
!                --  are OK.
  
                 Check_Null_Exclusion :=
!                  Can_Never_Be_Null (Typ) and then not Can_Never_Be_Null (Ltyp);
                 Typ := Designated_Type (Typ);
              end if;
  
--- 6798,6810 ----
  
                 --  If the null exclusion checks are not compatible, need to
                 --  perform further checks. In other words, we cannot have
!                --  Ltyp including null or Lop being null, and Typ excluding
!                --  null. All other cases are OK.
  
                 Check_Null_Exclusion :=
!                  Can_Never_Be_Null (Typ)
!                    and then (not Can_Never_Be_Null (Ltyp)
!                               or else Nkind (Lop) = N_Null);
                 Typ := Designated_Type (Typ);
              end if;
  
*************** package body Exp_Ch4 is
*** 8070,8311 ****
        -------------------------
  
        procedure Build_Equality_Call (Eq : Entity_Id) is
!          Op_Type : constant Entity_Id := Etype (First_Formal (Eq));
!          L_Exp   : Node_Id            := Relocate_Node (Lhs);
!          R_Exp   : Node_Id            := Relocate_Node (Rhs);
  
        begin
           --  Adjust operands if necessary to comparison type
  
!          if Base_Type (Op_Type) /= Base_Type (A_Typ)
             and then not Is_Class_Wide_Type (A_Typ)
           then
!             L_Exp := OK_Convert_To (Op_Type, L_Exp);
!             R_Exp := OK_Convert_To (Op_Type, R_Exp);
!          end if;
! 
!          --  If we have an Unchecked_Union, we need to add the inferred
!          --  discriminant values as actuals in the function call. At this
!          --  point, the expansion has determined that both operands have
!          --  inferable discriminants.
! 
!          if Is_Unchecked_Union (Op_Type) then
!             declare
!                Lhs_Type : constant Entity_Id := Etype (L_Exp);
!                Rhs_Type : constant Entity_Id := Etype (R_Exp);
! 
!                Lhs_Discr_Vals : Elist_Id;
!                --  List of inferred discriminant values for left operand.
! 
!                Rhs_Discr_Vals : Elist_Id;
!                --  List of inferred discriminant values for right operand.
! 
!                Discr : Entity_Id;
! 
!             begin
!                Lhs_Discr_Vals := New_Elmt_List;
!                Rhs_Discr_Vals := New_Elmt_List;
! 
!                --  Per-object constrained selected components require special
!                --  attention. If the enclosing scope of the component is an
!                --  Unchecked_Union, we cannot reference its discriminants
!                --  directly. This is why we use the extra parameters of the
!                --  equality function of the enclosing Unchecked_Union.
! 
!                --  type UU_Type (Discr : Integer := 0) is
!                --     . . .
!                --  end record;
!                --  pragma Unchecked_Union (UU_Type);
! 
!                --  1. Unchecked_Union enclosing record:
! 
!                --     type Enclosing_UU_Type (Discr : Integer := 0) is record
!                --        . . .
!                --        Comp : UU_Type (Discr);
!                --        . . .
!                --     end Enclosing_UU_Type;
!                --     pragma Unchecked_Union (Enclosing_UU_Type);
! 
!                --     Obj1 : Enclosing_UU_Type;
!                --     Obj2 : Enclosing_UU_Type (1);
! 
!                --     [. . .] Obj1 = Obj2 [. . .]
! 
!                --     Generated code:
! 
!                --     if not (uu_typeEQ (obj1.comp, obj2.comp, a, b)) then
! 
!                --  A and B are the formal parameters of the equality function
!                --  of Enclosing_UU_Type. The function always has two extra
!                --  formals to capture the inferred discriminant values for
!                --  each discriminant of the type.
! 
!                --  2. Non-Unchecked_Union enclosing record:
! 
!                --     type
!                --       Enclosing_Non_UU_Type (Discr : Integer := 0)
!                --     is record
!                --        . . .
!                --        Comp : UU_Type (Discr);
!                --        . . .
!                --     end Enclosing_Non_UU_Type;
! 
!                --     Obj1 : Enclosing_Non_UU_Type;
!                --     Obj2 : Enclosing_Non_UU_Type (1);
! 
!                --     ... Obj1 = Obj2 ...
! 
!                --     Generated code:
! 
!                --     if not (uu_typeEQ (obj1.comp, obj2.comp,
!                --                        obj1.discr, obj2.discr)) then
! 
!                --  In this case we can directly reference the discriminants of
!                --  the enclosing record.
! 
!                --  Process left operand of equality
! 
!                if Nkind (Lhs) = N_Selected_Component
!                  and then
!                    Has_Per_Object_Constraint (Entity (Selector_Name (Lhs)))
!                then
!                   --  If enclosing record is an Unchecked_Union, use formals
!                   --  corresponding to each discriminant. The name of the
!                   --  formal is that of the discriminant, with added suffix,
!                   --  see Exp_Ch3.Build_Record_Equality for details.
! 
!                   if Is_Unchecked_Union (Scope (Entity (Selector_Name (Lhs))))
!                   then
!                      Discr :=
!                        First_Discriminant
!                          (Scope (Entity (Selector_Name (Lhs))));
!                      while Present (Discr) loop
!                         Append_Elmt
!                           (Make_Identifier (Loc,
!                              Chars => New_External_Name (Chars (Discr), 'A')),
!                            To => Lhs_Discr_Vals);
!                         Next_Discriminant (Discr);
!                      end loop;
! 
!                   --  If enclosing record is of a non-Unchecked_Union type, it
!                   --  is possible to reference its discriminants directly.
! 
!                   else
!                      Discr := First_Discriminant (Lhs_Type);
!                      while Present (Discr) loop
!                         Append_Elmt
!                           (Make_Selected_Component (Loc,
!                              Prefix        => Prefix (Lhs),
!                              Selector_Name =>
!                                New_Copy
!                                  (Get_Discriminant_Value (Discr,
!                                      Lhs_Type,
!                                      Stored_Constraint (Lhs_Type)))),
!                            To => Lhs_Discr_Vals);
!                         Next_Discriminant (Discr);
!                      end loop;
!                   end if;
! 
!                --  Otherwise operand is on object with a constrained type.
!                --  Infer the discriminant values from the constraint.
! 
!                else
!                   Discr := First_Discriminant (Lhs_Type);
!                   while Present (Discr) loop
!                      Append_Elmt
!                        (New_Copy
!                           (Get_Discriminant_Value (Discr,
!                              Lhs_Type,
!                              Stored_Constraint (Lhs_Type))),
!                         To => Lhs_Discr_Vals);
!                      Next_Discriminant (Discr);
!                   end loop;
!                end if;
! 
!                --  Similar processing for right operand of equality
! 
!                if Nkind (Rhs) = N_Selected_Component
!                  and then
!                    Has_Per_Object_Constraint (Entity (Selector_Name (Rhs)))
!                then
!                   if Is_Unchecked_Union
!                        (Scope (Entity (Selector_Name (Rhs))))
!                   then
!                      Discr :=
!                        First_Discriminant
!                          (Scope (Entity (Selector_Name (Rhs))));
!                      while Present (Discr) loop
!                         Append_Elmt
!                           (Make_Identifier (Loc,
!                              Chars => New_External_Name (Chars (Discr), 'B')),
!                            To => Rhs_Discr_Vals);
!                         Next_Discriminant (Discr);
!                      end loop;
! 
!                   else
!                      Discr := First_Discriminant (Rhs_Type);
!                      while Present (Discr) loop
!                         Append_Elmt
!                           (Make_Selected_Component (Loc,
!                              Prefix        => Prefix (Rhs),
!                              Selector_Name =>
!                                New_Copy (Get_Discriminant_Value
!                                            (Discr,
!                                             Rhs_Type,
!                                             Stored_Constraint (Rhs_Type)))),
!                            To => Rhs_Discr_Vals);
!                         Next_Discriminant (Discr);
!                      end loop;
!                   end if;
! 
!                else
!                   Discr := First_Discriminant (Rhs_Type);
!                   while Present (Discr) loop
!                      Append_Elmt
!                        (New_Copy (Get_Discriminant_Value
!                                     (Discr,
!                                      Rhs_Type,
!                                      Stored_Constraint (Rhs_Type))),
!                         To => Rhs_Discr_Vals);
!                      Next_Discriminant (Discr);
!                   end loop;
!                end if;
! 
!                --  Now merge the list of discriminant values so that values
!                --  of corresponding discriminants are adjacent.
! 
!                declare
!                   Params : List_Id;
!                   L_Elmt : Elmt_Id;
!                   R_Elmt : Elmt_Id;
! 
!                begin
!                   Params := New_List (L_Exp, R_Exp);
!                   L_Elmt := First_Elmt (Lhs_Discr_Vals);
!                   R_Elmt := First_Elmt (Rhs_Discr_Vals);
!                   while Present (L_Elmt) loop
!                      Append_To (Params, Node (L_Elmt));
!                      Append_To (Params, Node (R_Elmt));
!                      Next_Elmt (L_Elmt);
!                      Next_Elmt (R_Elmt);
!                   end loop;
! 
!                   Rewrite (N,
!                     Make_Function_Call (Loc,
!                       Name                   => New_Occurrence_Of (Eq, Loc),
!                       Parameter_Associations => Params));
!                end;
!             end;
! 
!          --  Normal case, not an unchecked union
  
           else
!             Rewrite (N,
!               Make_Function_Call (Loc,
!                 Name                   => New_Occurrence_Of (Eq, Loc),
!                 Parameter_Associations => New_List (L_Exp, R_Exp)));
           end if;
  
           Analyze_And_Resolve (N, Standard_Boolean, Suppress => All_Checks);
        end Build_Equality_Call;
  
--- 7972,8000 ----
        -------------------------
  
        procedure Build_Equality_Call (Eq : Entity_Id) is
!          Op_Typ : constant Entity_Id := Etype (First_Formal (Eq));
! 
!          L_Exp, R_Exp : Node_Id;
  
        begin
           --  Adjust operands if necessary to comparison type
  
!          if Base_Type (A_Typ) /= Base_Type (Op_Typ)
             and then not Is_Class_Wide_Type (A_Typ)
           then
!             L_Exp := OK_Convert_To (Op_Typ, Lhs);
!             R_Exp := OK_Convert_To (Op_Typ, Rhs);
  
           else
!             L_Exp := Relocate_Node (Lhs);
!             R_Exp := Relocate_Node (Rhs);
           end if;
  
+          Rewrite (N,
+            Make_Function_Call (Loc,
+              Name                   => New_Occurrence_Of (Eq, Loc),
+              Parameter_Associations => New_List (L_Exp, R_Exp)));
+ 
           Analyze_And_Resolve (N, Standard_Boolean, Suppress => All_Checks);
        end Build_Equality_Call;
  
*************** package body Exp_Ch4 is
*** 8415,8422 ****
  
              return Nkind (Sindic) in N_Expanded_Name | N_Identifier
                and then Is_Unchecked_Union (Base_Type (Etype (Sindic)))
!               and then (Ekind (Entity (Sindic)) in
!                          E_Private_Type | E_Record_Type);
           end Unconstrained_UU_In_Component_Declaration;
  
           -----------------------------------------
--- 8104,8111 ----
  
              return Nkind (Sindic) in N_Expanded_Name | N_Identifier
                and then Is_Unchecked_Union (Base_Type (Etype (Sindic)))
!               and then Ekind (Entity (Sindic)) in
!                          E_Private_Type | E_Record_Type;
           end Unconstrained_UU_In_Component_Declaration;
  
           -----------------------------------------
*************** package body Exp_Ch4 is
*** 8679,8740 ****
  
           --  Ada 2005 (AI-216): Program_Error is raised when evaluating the
           --  predefined equality operator for a type which has a subcomponent
!          --  of an Unchecked_Union type whose nominal subtype is unconstrained.
  
           elsif Has_Unconstrained_UU_Component (Typl) then
              Insert_Action (N,
                Make_Raise_Program_Error (Loc,
                  Reason => PE_Unchecked_Union_Restriction));
  
-             --  Prevent Gigi from generating incorrect code by rewriting the
-             --  equality as a standard False. (is this documented somewhere???)
- 
              Rewrite (N,
                New_Occurrence_Of (Standard_False, Loc));
  
!          elsif Is_Unchecked_Union (Typl) then
! 
!             --  If we can infer the discriminants of the operands, we make a
!             --  call to the TSS equality function.
! 
!             if Has_Inferable_Discriminants (Lhs)
!                  and then
!                Has_Inferable_Discriminants (Rhs)
!             then
!                Build_Equality_Call
!                  (TSS (Root_Type (Typl), TSS_Composite_Equality));
! 
!             else
!                --  Ada 2005 (AI-216): Program_Error is raised when evaluating
!                --  the predefined equality operator for an Unchecked_Union type
!                --  if either of the operands lack inferable discriminants.
! 
!                Insert_Action (N,
!                  Make_Raise_Program_Error (Loc,
!                    Reason => PE_Unchecked_Union_Restriction));
! 
!                --  Emit a warning on source equalities only, otherwise the
!                --  message may appear out of place due to internal use. The
!                --  warning is unconditional because it is required by the
!                --  language.
! 
!                if Comes_From_Source (N) then
!                   Error_Msg_N
!                     ("Unchecked_Union discriminants cannot be determined??",
!                      N);
!                   Error_Msg_N
!                     ("\Program_Error will be raised for equality operation??",
!                      N);
!                end if;
! 
!                --  Prevent Gigi from generating incorrect code by rewriting
!                --  the equality as a standard False (documented where???).
! 
!                Rewrite (N,
!                  New_Occurrence_Of (Standard_False, Loc));
!             end if;
! 
!          --  If a type support function is present (for complex cases), use it
  
           elsif Present (TSS (Root_Type (Typl), TSS_Composite_Equality)) then
              Build_Equality_Call
--- 8368,8385 ----
  
           --  Ada 2005 (AI-216): Program_Error is raised when evaluating the
           --  predefined equality operator for a type which has a subcomponent
!          --  of an unchecked union type whose nominal subtype is unconstrained.
  
           elsif Has_Unconstrained_UU_Component (Typl) then
              Insert_Action (N,
                Make_Raise_Program_Error (Loc,
                  Reason => PE_Unchecked_Union_Restriction));
  
              Rewrite (N,
                New_Occurrence_Of (Standard_False, Loc));
  
!          --  If a type support function is present, e.g. if there is a variant
!          --  part, including an unchecked union type, use it.
  
           elsif Present (TSS (Root_Type (Typl), TSS_Composite_Equality)) then
              Build_Equality_Call
*************** package body Exp_Ch4 is
*** 9048,9054 ****
           end if;
        end if;
  
!       --  Deal with optimizing 2 ** expression to shift where possible
  
        --  Note: we used to check that Exptyp was an unsigned type. But that is
        --  an unnecessary check, since if Exp is negative, we have a run-time
--- 8693,8699 ----
           end if;
        end if;
  
!       --  Optimize 2 ** expression to shift where possible
  
        --  Note: we used to check that Exptyp was an unsigned type. But that is
        --  an unnecessary check, since if Exp is negative, we have a run-time
*************** package body Exp_Ch4 is
*** 9063,9076 ****
          and then CRT_Safe_Compile_Time_Known_Value (Base)
          and then Expr_Value (Base) = Uint_2
  
-         --  We only handle cases where the right type is a integer
- 
-         and then Is_Integer_Type (Root_Type (Exptyp))
-         and then Esize (Root_Type (Exptyp)) <= Standard_Integer_Size
- 
          --  This transformation is not applicable for a modular type with a
!         --  nonbinary modulus because we do not handle modular reduction in
!         --  a correct manner if we attempt this transformation in this case.
  
          and then not Non_Binary_Modulus (Typ)
        then
--- 8708,8715 ----
          and then CRT_Safe_Compile_Time_Known_Value (Base)
          and then Expr_Value (Base) = Uint_2
  
          --  This transformation is not applicable for a modular type with a
!         --  nonbinary modulus because shifting makes no sense in that case.
  
          and then not Non_Binary_Modulus (Typ)
        then
*************** package body Exp_Ch4 is
*** 9107,9167 ****
                 end if;
              end;
  
!          --  Here we just have 2 ** N on its own, so we can convert this to a
!          --  shift node. We are prepared to deal with overflow here, and we
!          --  also have to handle proper modular reduction for binary modular.
  
           else
!             declare
!                OK : Boolean;
!                Lo : Uint;
!                Hi : Uint;
! 
!                MaxS : Uint;
!                --  Maximum shift count with no overflow
! 
!                TestS : Boolean;
!                --  Set True if we must test the shift count
! 
!                Test_Gt : Node_Id;
!                --  Node for test against TestS
! 
!             begin
!                --  Compute maximum shift based on the underlying size. For a
!                --  modular type this is one less than the size.
! 
!                if Is_Modular_Integer_Type (Typ) then
! 
!                   --  For modular integer types, this is the size of the value
!                   --  being shifted minus one. Any larger values will cause
!                   --  modular reduction to a result of zero. Note that we do
!                   --  want the RM_Size here (e.g. mod 2 ** 7, we want a result
!                   --  of 6, since 2**7 should be reduced to zero).
! 
!                   MaxS := RM_Size (Rtyp) - 1;
! 
!                   --  For signed integer types, we use the size of the value
!                   --  being shifted minus 2. Larger values cause overflow.
! 
!                else
!                   MaxS := Esize (Rtyp) - 2;
!                end if;
! 
!                --  Determine range to see if it can be larger than MaxS
! 
!                Determine_Range (Exp, OK, Lo, Hi, Assume_Valid => True);
!                TestS := (not OK) or else Hi > MaxS;
! 
!                --  Signed integer case
  
!                if Is_Signed_Integer_Type (Typ) then
  
!                   --  Generate overflow check if overflow is active. Note that
!                   --  we can simply ignore the possibility of overflow if the
!                   --  flag is not set (means that overflow cannot happen or
!                   --  that overflow checks are suppressed).
  
!                   if Ovflo and TestS then
                       Insert_Action (N,
                         Make_Raise_Constraint_Error (Loc,
                           Condition =>
--- 8746,8771 ----
                 end if;
              end;
  
!          --  Here we have 2 ** N on its own, so we can convert this into a
!          --  shift.
  
           else
!             --  Op_Shift_Left (generated below) has modular-shift semantics;
!             --  therefore we might need to generate an overflow check here
!             --  if the type is signed.
  
!             if Is_Signed_Integer_Type (Typ) and then Ovflo then
!                declare
!                   OK : Boolean;
!                   Lo : Uint;
!                   Hi : Uint;
  
!                   MaxS : constant Uint := Esize (Rtyp) - 2;
!                   --  Maximum shift count with no overflow
!                begin
!                   Determine_Range (Exp, OK, Lo, Hi, Assume_Valid => True);
  
!                   if not OK or else Hi > MaxS then
                       Insert_Action (N,
                         Make_Raise_Constraint_Error (Loc,
                           Condition =>
*************** package body Exp_Ch4 is
*** 9170,9225 ****
                               Right_Opnd => Make_Integer_Literal (Loc, MaxS)),
                           Reason    => CE_Overflow_Check_Failed));
                    end if;
  
!                   --  Now rewrite node as Shift_Left (1, right-operand)
! 
!                   Rewrite (N,
!                     Make_Op_Shift_Left (Loc,
!                       Left_Opnd  => Make_Integer_Literal (Loc, Uint_1),
!                       Right_Opnd => Exp));
! 
!                --  Modular integer case
! 
!                else pragma Assert (Is_Modular_Integer_Type (Typ));
! 
!                   --  If shift count can be greater than MaxS, we need to wrap
!                   --  the shift in a test that will reduce the result value to
!                   --  zero if this shift count is exceeded.
! 
!                   if TestS then
! 
!                      --  Note: build node for the comparison first, before we
!                      --  reuse the Right_Opnd, so that we have proper parents
!                      --  in place for the Duplicate_Subexpr call.
! 
!                      Test_Gt :=
!                        Make_Op_Gt (Loc,
!                          Left_Opnd  => Duplicate_Subexpr (Exp),
!                          Right_Opnd => Make_Integer_Literal (Loc, MaxS));
! 
!                      Rewrite (N,
!                        Make_If_Expression (Loc,
!                          Expressions => New_List (
!                            Test_Gt,
!                            Make_Integer_Literal (Loc, Uint_0),
!                            Make_Op_Shift_Left (Loc,
!                              Left_Opnd  => Make_Integer_Literal (Loc, Uint_1),
!                              Right_Opnd => Exp))));
! 
!                   --  If we know shift count cannot be greater than MaxS, then
!                   --  it is safe to just rewrite as a shift with no test.
  
!                   else
!                      Rewrite (N,
!                        Make_Op_Shift_Left (Loc,
!                          Left_Opnd  => Make_Integer_Literal (Loc, Uint_1),
!                          Right_Opnd => Exp));
!                   end if;
!                end if;
  
!                Analyze_And_Resolve (N, Typ);
!                return;
!             end;
           end if;
        end if;
  
--- 8774,8791 ----
                               Right_Opnd => Make_Integer_Literal (Loc, MaxS)),
                           Reason    => CE_Overflow_Check_Failed));
                    end if;
+                end;
+             end if;
  
!             --  Generate Shift_Left (1, Exp)
  
!             Rewrite (N,
!               Make_Op_Shift_Left (Loc,
!                 Left_Opnd  => Make_Integer_Literal (Loc, Uint_1),
!                 Right_Opnd => Exp));
  
!             Analyze_And_Resolve (N, Typ);
!             return;
           end if;
        end if;
  
*************** package body Exp_Ch4 is
*** 9634,9639 ****
--- 9200,9212 ----
        Typ   : constant Entity_Id  := Etype (N);
        DDC   : constant Boolean    := Do_Division_Check (N);
  
+       Is_Stoele_Mod : constant Boolean :=
+         Is_RTE (Typ, RE_Address)
+           and then Nkind (Right_Opnd (N)) = N_Unchecked_Type_Conversion
+           and then
+             Is_RTE (Etype (Expression (Right_Opnd (N))), RE_Storage_Offset);
+       --  True if this is the special mod operator of System.Storage_Elements
+ 
        Left  : Node_Id;
        Right : Node_Id;
  
*************** package body Exp_Ch4 is
*** 9667,9673 ****
           end if;
        end if;
  
!       if Is_Integer_Type (Typ) then
           Apply_Divide_Checks (N);
  
           --  All done if we don't have a MOD any more, which can happen as a
--- 9240,9249 ----
           end if;
        end if;
  
!       --  For the special mod operator of System.Storage_Elements, the checks
!       --  are subsumed into the handling of the negative case below.
! 
!       if Is_Integer_Type (Typ) and then not Is_Stoele_Mod then
           Apply_Divide_Checks (N);
  
           --  All done if we don't have a MOD any more, which can happen as a
*************** package body Exp_Ch4 is
*** 9698,9703 ****
--- 9274,9280 ----
          and then ((Llo >= 0 and then Rlo >= 0)
                       or else
                    (Lhi <= 0 and then Rhi <= 0))
+         and then not Is_Stoele_Mod
        then
           Rewrite (N,
             Make_Op_Rem (Sloc (N),
*************** package body Exp_Ch4 is
*** 9737,9742 ****
--- 9314,9337 ----
              return;
           end if;
  
+          --  The negative case makes no sense since it is a case of a mod where
+          --  the left argument is unsigned and the right argument is signed. In
+          --  accordance with the (spirit of the) permission of RM 13.7.1(16),
+          --  we raise CE, and also include the zero case here. Yes, the RM says
+          --  PE, but this really is so obviously more like a constraint error.
+ 
+          if Is_Stoele_Mod and then (not ROK or else Rlo <= 0) then
+             Insert_Action (N,
+               Make_Raise_Constraint_Error (Loc,
+                 Condition =>
+                   Make_Op_Le (Loc,
+                     Left_Opnd  =>
+                       Duplicate_Subexpr_No_Checks (Expression (Right)),
+                     Right_Opnd => Make_Integer_Literal (Loc, 0)),
+                 Reason => CE_Overflow_Check_Failed));
+             return;
+          end if;
+ 
           --  If we still have a mod operator and we are in Modify_Tree_For_C
           --  mode, and we have a signed integer type, then here is where we do
           --  the rewrite in terms of Rem. Note this rewrite bypasses the need
*************** package body Exp_Ch4 is
*** 9864,9871 ****
                Expr_Value
                  (Type_Low_Bound (Base_Type (Underlying_Type (Etype (Left)))));
  
!             if ((not ROK) or else (Rlo <= (-1) and then (-1) <= Rhi))
!               and then ((not LOK) or else (Llo = LLB))
                and then not CodePeer_Mode
              then
                 Rewrite (N,
--- 9459,9466 ----
                Expr_Value
                  (Type_Low_Bound (Base_Type (Underlying_Type (Etype (Left)))));
  
!             if (not ROK or else (Rlo <= (-1) and then (-1) <= Rhi))
!               and then (not LOK or else Llo = LLB)
                and then not CodePeer_Mode
              then
                 Rewrite (N,
*************** package body Exp_Ch4 is
*** 10193,10206 ****
                      Left_Opnd  => Left_Opnd (N),
                      Right_Opnd => Right_Opnd (N)));
  
-             --  The level of parentheses is useless in GNATprove mode, and
-             --  bumping its level here leads to wrong columns being used in
-             --  check messages, hence skip it in this mode.
- 
-             if not GNATprove_Mode then
-                Set_Paren_Count (Right_Opnd (Neg), 1);
-             end if;
- 
              if Scope (Ne) /= Standard_Standard then
                 Set_Entity (Right_Opnd (Neg), Corresponding_Equality (Ne));
              end if;
--- 9788,9793 ----
*************** package body Exp_Ch4 is
*** 10621,10630 ****
        --  completely in this case.
  
        Determine_Range (Right, OK, Lo, Hi, Assume_Valid => True);
!       Lneg := (not OK) or else Lo < 0;
  
        Determine_Range (Left,  OK, Lo, Hi, Assume_Valid => True);
!       Rneg := (not OK) or else Lo < 0;
  
        --  We won't mess with trying to find out if the left operand can really
        --  be the largest negative number (that's a pain in the case of private
--- 10208,10217 ----
        --  completely in this case.
  
        Determine_Range (Right, OK, Lo, Hi, Assume_Valid => True);
!       Lneg := not OK or else Lo < 0;
  
        Determine_Range (Left,  OK, Lo, Hi, Assume_Valid => True);
!       Rneg := not OK or else Lo < 0;
  
        --  We won't mess with trying to find out if the left operand can really
        --  be the largest negative number (that's a pain in the case of private
*************** package body Exp_Ch4 is
*** 11268,11275 ****
           --  actually performed.
  
           else
!             if (not Is_Unchecked_Union
!                      (Implementation_Base_Type (Etype (Prefix (N)))))
                and then not Is_Predefined_Unit (Get_Source_Unit (N))
              then
                 Error_Msg_N
--- 10855,10862 ----
           --  actually performed.
  
           else
!             if not Is_Unchecked_Union
!                     (Implementation_Base_Type (Etype (Prefix (N))))
                and then not Is_Predefined_Unit (Get_Source_Unit (N))
              then
                 Error_Msg_N
*************** package body Exp_Ch4 is
*** 11514,11522 ****
              --  component or its type have sync disabled.
  
              elsif Is_Atomic (E) and then Is_Atomic (Etype (E)) then
!                Set := (not Atomic_Synchronization_Disabled (E))
                          and then
!                       (not Atomic_Synchronization_Disabled (Etype (E)));
  
              else
                 Set := False;
--- 11101,11109 ----
              --  component or its type have sync disabled.
  
              elsif Is_Atomic (E) and then Is_Atomic (Etype (E)) then
!                Set := not Atomic_Synchronization_Disabled (E)
                          and then
!                       not Atomic_Synchronization_Disabled (Etype (E));
  
              else
                 Set := False;
*************** package body Exp_Ch4 is
*** 12197,12204 ****
--- 11784,11795 ----
                 Expr_Id : constant Entity_Id := Make_Temporary (Loc, 'T', Conv);
                 Int_Typ : constant Entity_Id :=
                   Small_Integer_Type_For (RM_Size (Btyp), Uns => False);
+                Trunc   : constant Boolean   := Float_Truncate (Conv);
  
              begin
+                Conv := Convert_To (Int_Typ, Expression (Conv));
+                Set_Float_Truncate (Conv, Trunc);
+ 
                 --  Generate a temporary with the integer value. Required in the
                 --  CCG compiler to ensure that run-time checks reference this
                 --  integer expression (instead of the resulting fixed-point
*************** package body Exp_Ch4 is
*** 12210,12217 ****
                     Defining_Identifier => Expr_Id,
                     Object_Definition   => New_Occurrence_Of (Int_Typ, Loc),
                     Constant_Present    => True,
!                    Expression          =>
!                      Convert_To (Int_Typ, Expression (Conv))));
  
                 --  Create integer objects for range checking of result.
  
--- 11801,11807 ----
                     Defining_Identifier => Expr_Id,
                     Object_Definition   => New_Occurrence_Of (Int_Typ, Loc),
                     Constant_Present    => True,
!                    Expression          => Conv));
  
                 --  Create integer objects for range checking of result.
  
*************** package body Exp_Ch4 is
*** 12531,12537 ****
        --  Special case of converting from non-standard boolean type
  
        if Is_Boolean_Type (Operand_Type)
!         and then (Nonzero_Is_True (Operand_Type))
        then
           Adjust_Condition (Operand);
           Set_Etype (Operand, Standard_Boolean);
--- 12121,12127 ----
        --  Special case of converting from non-standard boolean type
  
        if Is_Boolean_Type (Operand_Type)
!         and then Nonzero_Is_True (Operand_Type)
        then
           Adjust_Condition (Operand);
           Set_Etype (Operand, Standard_Boolean);
*************** package body Exp_Ch4 is
*** 13264,13271 ****
  
     procedure Expand_Set_Membership (N : Node_Id) is
        Lop : constant Node_Id := Left_Opnd (N);
-       Alt : Node_Id;
-       Res : Node_Id;
  
        function Make_Cond (Alt : Node_Id) return Node_Id;
        --  If the alternative is a subtype mark, create a simple membership
--- 12854,12859 ----
*************** package body Exp_Ch4 is
*** 13294,13316 ****
           return Cond;
        end Make_Cond;
  
     --  Start of processing for Expand_Set_Membership
  
     begin
        Remove_Side_Effects (Lop);
  
-       Alt := First (Alternatives (N));
-       Res := Make_Cond (Alt);
-       Next (Alt);
- 
        --  We use left associativity as in the equivalent boolean case. This
        --  kind of canonicalization helps the optimizer of the code generator.
  
        while Present (Alt) loop
!          Res :=
!            Make_Or_Else (Sloc (Alt),
!              Left_Opnd  => Res,
!              Right_Opnd => Make_Cond (Alt));
           Next (Alt);
        end loop;
  
--- 12882,12903 ----
           return Cond;
        end Make_Cond;
  
+       --  Local variables
+ 
+       Alt : Node_Id;
+       Res : Node_Id := Empty;
+ 
     --  Start of processing for Expand_Set_Membership
  
     begin
        Remove_Side_Effects (Lop);
  
        --  We use left associativity as in the equivalent boolean case. This
        --  kind of canonicalization helps the optimizer of the code generator.
  
+       Alt := First (Alternatives (N));
        while Present (Alt) loop
!          Evolve_Or_Else (Res, Make_Cond (Alt));
           Next (Alt);
        end loop;
  
*************** package body Exp_Ch4 is
*** 13547,13552 ****
--- 13134,13384 ----
        Adjust_Result_Type (N, Typ);
     end Expand_Short_Circuit_Operator;
  
+    -------------------------------------
+    -- Expand_Unchecked_Union_Equality --
+    -------------------------------------
+ 
+    procedure Expand_Unchecked_Union_Equality (N : Node_Id) is
+       Loc : constant Source_Ptr := Sloc (N);
+       Eq  : constant Entity_Id  := Entity (Name (N));
+       Lhs : constant Node_Id    := First_Actual (N);
+       Rhs : constant Node_Id    := Next_Actual (Lhs);
+ 
+       function Get_Discr_Values (Op : Node_Id; Lhs : Boolean) return Elist_Id;
+       --  Return the list of inferred discriminant values for Op
+ 
+       ----------------------
+       -- Get_Discr_Values --
+       ----------------------
+ 
+       function Get_Discr_Values (Op : Node_Id; Lhs : Boolean) return Elist_Id
+       is
+          Typ    : constant Entity_Id := Etype (Op);
+          Values : constant Elist_Id  := New_Elmt_List;
+ 
+          function Get_Extra_Formal (Nam : Name_Id) return Entity_Id;
+          --  Return the extra formal Nam from the current scope, which must be
+          --  an equality function for an unchecked union type.
+ 
+          ----------------------
+          -- Get_Extra_Formal --
+          ----------------------
+ 
+          function Get_Extra_Formal (Nam : Name_Id) return Entity_Id is
+             Func : constant Entity_Id := Current_Scope;
+ 
+             Formal : Entity_Id;
+ 
+          begin
+             pragma Assert (Ekind (Func) = E_Function);
+ 
+             Formal := Extra_Formals (Func);
+             while Present (Formal) loop
+                if Chars (Formal) = Nam then
+                   return Formal;
+                end if;
+ 
+                Formal := Extra_Formal (Formal);
+             end loop;
+ 
+             --  An extra formal of the proper name must be found
+ 
+             raise Program_Error;
+          end Get_Extra_Formal;
+ 
+          --  Local variables
+ 
+          Discr  : Entity_Id;
+ 
+       --  Start of processing for Get_Discr_Values
+ 
+       begin
+          --  Per-object constrained selected components require special
+          --  attention. If the enclosing scope of the component is an
+          --  Unchecked_Union, we cannot reference its discriminants
+          --  directly. This is why we use the extra parameters of the
+          --  equality function of the enclosing Unchecked_Union.
+ 
+          --  type UU_Type (Discr : Integer := 0) is
+          --     . . .
+          --  end record;
+          --  pragma Unchecked_Union (UU_Type);
+ 
+          --  1. Unchecked_Union enclosing record:
+ 
+          --     type Enclosing_UU_Type (Discr : Integer := 0) is record
+          --        . . .
+          --        Comp : UU_Type (Discr);
+          --        . . .
+          --     end Enclosing_UU_Type;
+          --     pragma Unchecked_Union (Enclosing_UU_Type);
+ 
+          --     Obj1 : Enclosing_UU_Type;
+          --     Obj2 : Enclosing_UU_Type (1);
+ 
+          --     [. . .] Obj1 = Obj2 [. . .]
+ 
+          --     Generated code:
+ 
+          --     if not (uu_typeEQ (obj1.comp, obj2.comp, a, b)) then
+ 
+          --  A and B are the formal parameters of the equality function
+          --  of Enclosing_UU_Type. The function always has two extra
+          --  formals to capture the inferred discriminant values for
+          --  each discriminant of the type.
+ 
+          --  2. Non-Unchecked_Union enclosing record:
+ 
+          --     type
+          --       Enclosing_Non_UU_Type (Discr : Integer := 0)
+          --     is record
+          --        . . .
+          --        Comp : UU_Type (Discr);
+          --        . . .
+          --     end Enclosing_Non_UU_Type;
+ 
+          --     Obj1 : Enclosing_Non_UU_Type;
+          --     Obj2 : Enclosing_Non_UU_Type (1);
+ 
+          --     ... Obj1 = Obj2 ...
+ 
+          --     Generated code:
+ 
+          --     if not (uu_typeEQ (obj1.comp, obj2.comp,
+          --                        obj1.discr, obj2.discr)) then
+ 
+          --  In this case we can directly reference the discriminants of
+          --  the enclosing record.
+ 
+          if Nkind (Op) = N_Selected_Component
+            and then Has_Per_Object_Constraint (Entity (Selector_Name (Op)))
+          then
+             --  If enclosing record is an Unchecked_Union, use formals
+             --  corresponding to each discriminant. The name of the
+             --  formal is that of the discriminant, with added suffix,
+             --  see Exp_Ch3.Build_Variant_Record_Equality for details.
+ 
+             if Is_Unchecked_Union (Scope (Entity (Selector_Name (Op)))) then
+                Discr :=
+                  First_Discriminant
+                    (Scope (Entity (Selector_Name (Op))));
+                while Present (Discr) loop
+                   Append_Elmt
+                     (New_Occurrence_Of
+                       (Get_Extra_Formal
+                         (New_External_Name
+                           (Chars (Discr), (if Lhs then 'A' else 'B'))), Loc),
+                      To => Values);
+                   Next_Discriminant (Discr);
+                end loop;
+ 
+             --  If enclosing record is of a non-Unchecked_Union type, it
+             --  is possible to reference its discriminants directly.
+ 
+             else
+                Discr := First_Discriminant (Typ);
+                while Present (Discr) loop
+                   Append_Elmt
+                     (Make_Selected_Component (Loc,
+                        Prefix        => Prefix (Op),
+                        Selector_Name =>
+                          New_Copy
+                            (Get_Discriminant_Value (Discr,
+                                Typ,
+                                Stored_Constraint (Typ)))),
+                      To => Values);
+                   Next_Discriminant (Discr);
+                end loop;
+             end if;
+ 
+          --  Otherwise operand is on object with a constrained type.
+          --  Infer the discriminant values from the constraint.
+ 
+          else
+             Discr := First_Discriminant (Typ);
+             while Present (Discr) loop
+                Append_Elmt
+                  (New_Copy
+                     (Get_Discriminant_Value (Discr,
+                        Typ,
+                        Stored_Constraint (Typ))),
+                   To => Values);
+                Next_Discriminant (Discr);
+             end loop;
+          end if;
+ 
+          return Values;
+       end Get_Discr_Values;
+ 
+    --  Start of processing for Expand_Unchecked_Union_Equality
+ 
+    begin
+       --  Guard against repeated invocation on the same node
+ 
+       if Present (Next_Actual (Rhs)) then
+          return;
+       end if;
+ 
+       --  If we can infer the discriminants of the operands, make a call to Eq
+ 
+       if Has_Inferable_Discriminants (Lhs)
+            and then
+          Has_Inferable_Discriminants (Rhs)
+       then
+          declare
+             Lhs_Values : constant Elist_Id := Get_Discr_Values (Lhs, True);
+             Rhs_Values : constant Elist_Id := Get_Discr_Values (Rhs, False);
+ 
+             Formal : Entity_Id;
+             L_Elmt : Elmt_Id;
+             R_Elmt : Elmt_Id;
+ 
+          begin
+             --  Add the inferred discriminant values as extra actuals
+ 
+             Formal := Extra_Formals (Eq);
+             L_Elmt := First_Elmt (Lhs_Values);
+             R_Elmt := First_Elmt (Rhs_Values);
+ 
+             while Present (L_Elmt) loop
+                Analyze_And_Resolve (Node (L_Elmt), Etype (Formal));
+                Add_Extra_Actual_To_Call (N, Formal, Node (L_Elmt));
+ 
+                Formal := Extra_Formal (Formal);
+ 
+                Analyze_And_Resolve (Node (R_Elmt), Etype (Formal));
+                Add_Extra_Actual_To_Call (N, Formal, Node (R_Elmt));
+ 
+                Formal := Extra_Formal (Formal);
+                Next_Elmt (L_Elmt);
+                Next_Elmt (R_Elmt);
+             end loop;
+          end;
+ 
+       --  Ada 2005 (AI-216): Program_Error is raised when evaluating
+       --  the predefined equality operator for an Unchecked_Union type
+       --  if either of the operands lack inferable discriminants.
+ 
+       else
+          Insert_Action (N,
+            Make_Raise_Program_Error (Loc,
+              Reason => PE_Unchecked_Union_Restriction));
+ 
+          --  Give a warning on source equalities only, otherwise the message
+          --  may appear out of place due to internal use. It is unconditional
+          --  because it is required by the language.
+ 
+          if Comes_From_Source (Original_Node (N)) then
+             Error_Msg_N
+               ("Unchecked_Union discriminants cannot be determined??", N);
+             Error_Msg_N
+               ("\Program_Error will be raised for equality operation??", N);
+          end if;
+ 
+          Rewrite (N, New_Occurrence_Of (Standard_False, Loc));
+       end if;
+    end Expand_Unchecked_Union_Equality;
+ 
     ------------------------------------
     -- Fixup_Universal_Fixed_Operation --
     -------------------------------------
*************** package body Exp_Ch4 is
*** 15075,15251 ****
        Analyze_And_Resolve (N, Typ, Suppress => Overflow_Check);
     end Optimize_Length_Comparison;
  
!    --------------------------------
!    -- Process_If_Case_Statements --
!    --------------------------------
  
!    procedure Process_If_Case_Statements (N : Node_Id; Stmts : List_Id) is
!       Decl : Node_Id;
  
!    begin
!       Decl := First (Stmts);
!       while Present (Decl) loop
!          if Nkind (Decl) = N_Object_Declaration
!            and then Is_Finalizable_Transient (Decl, N)
!          then
!             Process_Transient_In_Expression (Decl, N, Stmts);
!          end if;
  
!          Next (Decl);
!       end loop;
!    end Process_If_Case_Statements;
  
!    -------------------------------------
!    -- Process_Transient_In_Expression --
!    -------------------------------------
  
!    procedure Process_Transient_In_Expression
!      (Obj_Decl : Node_Id;
!       Expr     : Node_Id;
!       Stmts    : List_Id)
!    is
!       Loc    : constant Source_Ptr := Sloc (Obj_Decl);
!       Obj_Id : constant Entity_Id  := Defining_Identifier (Obj_Decl);
  
!       Hook_Context : constant Node_Id := Find_Hook_Context (Expr);
!       --  The node on which to insert the hook as an action. This is usually
!       --  the innermost enclosing non-transient construct.
  
!       Fin_Call    : Node_Id;
!       Hook_Assign : Node_Id;
!       Hook_Clear  : Node_Id;
!       Hook_Decl   : Node_Id;
!       Hook_Insert : Node_Id;
!       Ptr_Decl    : Node_Id;
  
!       Fin_Context : Node_Id;
!       --  The node after which to insert the finalization actions of the
!       --  transient object.
  
!    begin
!       pragma Assert (Nkind (Expr) in N_Case_Expression
!                                    | N_Expression_With_Actions
!                                    | N_If_Expression);
  
!       --  When the context is a Boolean evaluation, all three nodes capture the
!       --  result of their computation in a local temporary:
  
!       --    do
!       --       Trans_Id : Ctrl_Typ := ...;
!       --       Result : constant Boolean := ... Trans_Id ...;
!       --       <finalize Trans_Id>
!       --    in Result end;
  
!       --  As a result, the finalization of any transient objects can safely
!       --  take place after the result capture.
  
!       --  ??? could this be extended to elementary types?
  
!       if Is_Boolean_Type (Etype (Expr)) then
!          Fin_Context := Last (Stmts);
  
!       --  Otherwise the immediate context may not be safe enough to carry
!       --  out transient object finalization due to aliasing and nesting of
!       --  constructs. Insert calls to [Deep_]Finalize after the innermost
!       --  enclosing non-transient construct.
  
!       else
!          Fin_Context := Hook_Context;
!       end if;
  
!       --  Mark the transient object as successfully processed to avoid double
!       --  finalization.
  
!       Set_Is_Finalized_Transient (Obj_Id);
  
!       --  Construct all the pieces necessary to hook and finalize a transient
!       --  object.
  
!       Build_Transient_Object_Statements
!         (Obj_Decl     => Obj_Decl,
!          Fin_Call     => Fin_Call,
!          Hook_Assign  => Hook_Assign,
!          Hook_Clear   => Hook_Clear,
!          Hook_Decl    => Hook_Decl,
!          Ptr_Decl     => Ptr_Decl,
!          Finalize_Obj => False);
  
!       --  Add the access type which provides a reference to the transient
!       --  object. Generate:
  
!       --    type Ptr_Typ is access all Desig_Typ;
  
!       Insert_Action (Hook_Context, Ptr_Decl);
  
!       --  Add the temporary which acts as a hook to the transient object.
!       --  Generate:
  
!       --    Hook : Ptr_Id := null;
  
!       Insert_Action (Hook_Context, Hook_Decl);
  
!       --  When the transient object is initialized by an aggregate, the hook
!       --  must capture the object after the last aggregate assignment takes
!       --  place. Only then is the object considered initialized. Generate:
  
!       --    Hook := Ptr_Typ (Obj_Id);
!       --      <or>
!       --    Hook := Obj_Id'Unrestricted_Access;
  
!       if Ekind (Obj_Id) in E_Constant | E_Variable
!         and then Present (Last_Aggregate_Assignment (Obj_Id))
!       then
!          Hook_Insert := Last_Aggregate_Assignment (Obj_Id);
  
!       --  Otherwise the hook seizes the related object immediately
  
!       else
!          Hook_Insert := Obj_Decl;
!       end if;
  
!       Insert_After_And_Analyze (Hook_Insert, Hook_Assign);
  
!       --  When the node is part of a return statement, there is no need to
!       --  insert a finalization call, as the general finalization mechanism
!       --  (see Build_Finalizer) would take care of the transient object on
!       --  subprogram exit. Note that it would also be impossible to insert the
!       --  finalization code after the return statement as this will render it
!       --  unreachable.
  
!       if Nkind (Fin_Context) = N_Simple_Return_Statement then
!          null;
  
!       --  Finalize the hook after the context has been evaluated. Generate:
  
!       --    if Hook /= null then
!       --       [Deep_]Finalize (Hook.all);
!       --       Hook := null;
!       --    end if;
  
!       --  Note that the value returned by Find_Hook_Context may be an operator
!       --  node, which is not a list member. We must locate the proper node in
!       --  in the tree after which to insert the finalization code.
  
!       else
!          while not Is_List_Member (Fin_Context) loop
!             Fin_Context := Parent (Fin_Context);
!          end loop;
  
!          pragma Assert (Present (Fin_Context));
  
!          Insert_Action_After (Fin_Context,
!            Make_Implicit_If_Statement (Obj_Decl,
!              Condition =>
!                Make_Op_Ne (Loc,
!                  Left_Opnd  =>
!                    New_Occurrence_Of (Defining_Entity (Hook_Decl), Loc),
!                  Right_Opnd => Make_Null (Loc)),
  
!              Then_Statements => New_List (
!                Fin_Call,
!                Hook_Clear)));
!       end if;
!    end Process_Transient_In_Expression;
  
     ------------------------
     -- Rewrite_Comparison --
--- 14907,15100 ----
        Analyze_And_Resolve (N, Typ, Suppress => Overflow_Check);
     end Optimize_Length_Comparison;
  
!    --------------------------------------
!    -- Process_Transients_In_Expression --
!    --------------------------------------
  
!    procedure Process_Transients_In_Expression
!      (Expr : Node_Id;
!       Stmts : List_Id)
!    is
!       procedure Process_Transient_In_Expression (Obj_Decl : Node_Id);
!       --  Process the object whose declaration Obj_Decl is present in Stmts
  
!       -------------------------------------
!       -- Process_Transient_In_Expression --
!       -------------------------------------
  
!       procedure Process_Transient_In_Expression (Obj_Decl : Node_Id) is
!          Loc    : constant Source_Ptr := Sloc (Obj_Decl);
!          Obj_Id : constant Entity_Id  := Defining_Identifier (Obj_Decl);
  
!          Hook_Context : constant Node_Id := Find_Hook_Context (Expr);
!          --  The node on which to insert the hook as an action. This is usually
!          --  the innermost enclosing non-transient construct.
  
!          Fin_Call    : Node_Id;
!          Hook_Assign : Node_Id;
!          Hook_Clear  : Node_Id;
!          Hook_Decl   : Node_Id;
!          Hook_Insert : Node_Id;
!          Ptr_Decl    : Node_Id;
  
!          Fin_Context : Node_Id;
!          --  The node after which to insert the finalization actions of the
!          --  transient object.
  
!       begin
!          pragma Assert (Nkind (Expr) in N_Case_Expression
!                                       | N_Expression_With_Actions
!                                       | N_If_Expression);
  
!          --  When the context is a Boolean evaluation, all three nodes capture
!          --  the result of their computation in a local temporary:
  
!          --    do
!          --       Trans_Id : Ctrl_Typ := ...;
!          --       Result : constant Boolean := ... Trans_Id ...;
!          --       <finalize Trans_Id>
!          --    in Result end;
  
!          --  As a result, the finalization of any transient objects can take
!          --  place just after the result is captured, except for the case of
!          --  conditional expressions in a simple return statement because the
!          --  return statement will be distributed into dependent expressions
!          --  (see the special handling of simple return statements below).
  
!          --  ??? could this be extended to elementary types?
  
!          if Is_Boolean_Type (Etype (Expr))
!            and then
!              (Nkind (Expr) = N_Expression_With_Actions
!                or else Nkind (Parent (Expr)) /= N_Simple_Return_Statement)
!          then
!             Fin_Context := Last (Stmts);
  
!          --  Otherwise the immediate context may not be safe enough to carry
!          --  out transient object finalization due to aliasing and nesting of
!          --  constructs. Insert calls to [Deep_]Finalize after the innermost
!          --  enclosing non-transient construct.
  
!          else
!             Fin_Context := Hook_Context;
!          end if;
  
!          --  Mark the transient object as successfully processed to avoid
!          --  double finalization.
  
!          Set_Is_Finalized_Transient (Obj_Id);
  
!          --  Construct all the pieces necessary to hook and finalize a
!          --  transient object.
  
!          Build_Transient_Object_Statements
!            (Obj_Decl     => Obj_Decl,
!             Fin_Call     => Fin_Call,
!             Hook_Assign  => Hook_Assign,
!             Hook_Clear   => Hook_Clear,
!             Hook_Decl    => Hook_Decl,
!             Ptr_Decl     => Ptr_Decl,
!             Finalize_Obj => False);
  
!          --  Add the access type which provides a reference to the transient
!          --  object. Generate:
  
!          --    type Ptr_Typ is access all Desig_Typ;
  
!          Insert_Action (Hook_Context, Ptr_Decl);
  
!          --  Add the temporary which acts as a hook to the transient object.
!          --  Generate:
  
!          --    Hook : Ptr_Id := null;
  
!          Insert_Action (Hook_Context, Hook_Decl);
  
!          --  When the transient object is initialized by an aggregate, the hook
!          --  must capture the object after the last aggregate assignment takes
!          --  place. Only then is the object considered initialized. Generate:
  
!          --    Hook := Ptr_Typ (Obj_Id);
!          --      <or>
!          --    Hook := Obj_Id'Unrestricted_Access;
  
!          if Ekind (Obj_Id) in E_Constant | E_Variable
!            and then Present (Last_Aggregate_Assignment (Obj_Id))
!          then
!             Hook_Insert := Last_Aggregate_Assignment (Obj_Id);
  
!          --  Otherwise the hook seizes the related object immediately
  
!          else
!             Hook_Insert := Obj_Decl;
!          end if;
  
!          Insert_After_And_Analyze (Hook_Insert, Hook_Assign);
  
!          --  When the node is part of a return statement, there is no need to
!          --  insert a finalization call, as the general finalization mechanism
!          --  (see Build_Finalizer) would take care of the transient object on
!          --  subprogram exit. Note that it would also be impossible to insert
!          --  the finalization code after the return statement as this will
!          --  render it unreachable.
  
!          if Nkind (Fin_Context) = N_Simple_Return_Statement then
!             null;
  
!          --  Finalize the hook after the context has been evaluated. Generate:
  
!          --    if Hook /= null then
!          --       [Deep_]Finalize (Hook.all);
!          --       Hook := null;
!          --    end if;
  
!          --  But the node returned by Find_Hook_Context may be an operator,
!          --  which is not a list member. We must locate the proper node
!          --  in the tree after which to insert the finalization code.
  
!          else
!             while not Is_List_Member (Fin_Context) loop
!                Fin_Context := Parent (Fin_Context);
!             end loop;
  
!             pragma Assert (Present (Fin_Context));
  
!             Insert_Action_After (Fin_Context,
!               Make_Implicit_If_Statement (Obj_Decl,
!                 Condition =>
!                   Make_Op_Ne (Loc,
!                     Left_Opnd  =>
!                       New_Occurrence_Of (Defining_Entity (Hook_Decl), Loc),
!                    Right_Opnd => Make_Null (Loc)),
  
!                 Then_Statements => New_List (
!                  Fin_Call,
!                   Hook_Clear)));
!          end if;
!       end Process_Transient_In_Expression;
  
!       --  Local variables
  
!       Decl : Node_Id;
! 
!    --  Start of processing for Process_Transients_In_Expression
! 
!    begin
!       pragma Assert (Nkind (Expr) in N_Case_Expression
!                                    | N_Expression_With_Actions
!                                    | N_If_Expression);
! 
!       Decl := First (Stmts);
!       while Present (Decl) loop
!          if Nkind (Decl) = N_Object_Declaration
!            and then Is_Finalizable_Transient (Decl, Expr)
!          then
!             Process_Transient_In_Expression (Decl);
!          end if;
! 
!          Next (Decl);
!       end loop;
!    end Process_Transients_In_Expression;
  
     ------------------------
     -- Rewrite_Comparison --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch4.ads gcc-14.1.0/gcc/ada/exp_ch4.ads
*** gcc-13.2.0/gcc/ada/exp_ch4.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch4.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch4 is
*** 97,103 ****
     --  individually to yield the required Boolean result. Loc is the
     --  location for the generated nodes. Typ is the type of the record, and
     --  Lhs, Rhs are the record expressions to be compared, these
!    --  expressions need not be analyzed but have to be side-effect free.
     --  Nod provides the Sloc value for generated code.
  
     procedure Expand_Set_Membership (N : Node_Id);
--- 97,103 ----
     --  individually to yield the required Boolean result. Loc is the
     --  location for the generated nodes. Typ is the type of the record, and
     --  Lhs, Rhs are the record expressions to be compared, these
!    --  expressions need not be analyzed but have to be side-effect-free.
     --  Nod provides the Sloc value for generated code.
  
     procedure Expand_Set_Membership (N : Node_Id);
*************** package Exp_Ch4 is
*** 105,110 ****
--- 105,114 ----
     --  membership test. The whole membership is rewritten connecting these
     --  with OR ELSE.
  
+    procedure Expand_Unchecked_Union_Equality (N : Node_Id);
+    --  Expand a call to the predefined equality operator of an unchecked union
+    --  type, possibly rewriting it as a raise statement.
+ 
     function Integer_Promotion_Possible (N : Node_Id) return Boolean;
     --  Returns true if the node is a type conversion whose operand is an
     --  arithmetic operation on signed integers, and the base type of the
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch5.adb gcc-14.1.0/gcc/ada/exp_ch5.adb
*** gcc-13.2.0/gcc/ada/exp_ch5.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch5.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Sem_Ch13;       use Sem_Ch13;
*** 59,64 ****
--- 59,65 ----
  with Sem_Eval;       use Sem_Eval;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
+                      use Sem_Util.Storage_Model_Support;
  with Snames;         use Snames;
  with Stand;          use Stand;
  with Stringt;        use Stringt;
*************** package body Exp_Ch5 is
*** 161,167 ****
     procedure Expand_Assign_With_Target_Names (N : Node_Id);
     --  (AI12-0125): N is an assignment statement whose RHS contains occurrences
     --  of @ that designate the value of the LHS of the assignment. If the LHS
!    --  is side-effect free the target names can be replaced with a copy of the
     --  LHS; otherwise the semantics of the assignment is described in terms of
     --  a procedure with an in-out parameter, and expanded as such.
  
--- 162,168 ----
     procedure Expand_Assign_With_Target_Names (N : Node_Id);
     --  (AI12-0125): N is an assignment statement whose RHS contains occurrences
     --  of @ that designate the value of the LHS of the assignment. If the LHS
!    --  is side-effect-free the target names can be replaced with a copy of the
     --  LHS; otherwise the semantics of the assignment is described in terms of
     --  a procedure with an in-out parameter, and expanded as such.
  
*************** package body Exp_Ch5 is
*** 180,193 ****
  
     procedure Expand_Iterator_Loop_Over_Container
       (N             : Node_Id;
-       Isc           : Node_Id;
        I_Spec        : Node_Id;
        Container     : Node_Id;
        Container_Typ : Entity_Id);
     --  Expand loop over containers that uses the form "for X of C" with an
!    --  optional subtype mark, or "for Y in C". Isc is the iteration scheme.
!    --  I_Spec is the iterator specification and Container is either the
!    --  Container (for OF) or the iterator (for IN).
  
     procedure Expand_Predicated_Loop (N : Node_Id);
     --  Expand for loop over predicated subtype
--- 181,193 ----
  
     procedure Expand_Iterator_Loop_Over_Container
       (N             : Node_Id;
        I_Spec        : Node_Id;
        Container     : Node_Id;
        Container_Typ : Entity_Id);
     --  Expand loop over containers that uses the form "for X of C" with an
!    --  optional subtype mark, or "for Y in C". I_Spec is the iterator
!    --  specification and Container is either the Container (for OF) or the
!    --  iterator (for IN).
  
     procedure Expand_Predicated_Loop (N : Node_Id);
     --  Expand for loop over predicated subtype
*************** package body Exp_Ch5 is
*** 524,530 ****
           R_Type  := Get_Actual_Subtype (Act_Rhs);
           Loop_Required := True;
  
!       --  We require a loop if the left side is possibly bit unaligned
  
        elsif Possible_Bit_Aligned_Component (Lhs)
                or else
--- 524,530 ----
           R_Type  := Get_Actual_Subtype (Act_Rhs);
           Loop_Required := True;
  
!       --  We require a loop if either side is possibly bit aligned
  
        elsif Possible_Bit_Aligned_Component (Lhs)
                or else
*************** package body Exp_Ch5 is
*** 682,695 ****
           return;
  
        --  If either operand is bit packed, then we need a loop, since we can't
!       --  be sure that the slice is byte aligned. Similarly, if either operand
!       --  is a possibly unaligned slice, then we need a loop (since the back
!       --  end cannot handle unaligned slices).
  
        elsif Is_Bit_Packed_Array (L_Type)
          or else Is_Bit_Packed_Array (R_Type)
-         or else Is_Possibly_Unaligned_Slice (Lhs)
-         or else Is_Possibly_Unaligned_Slice (Rhs)
        then
           Loop_Required := True;
  
--- 682,691 ----
           return;
  
        --  If either operand is bit packed, then we need a loop, since we can't
!       --  be sure that the slice is byte aligned.
  
        elsif Is_Bit_Packed_Array (L_Type)
          or else Is_Bit_Packed_Array (R_Type)
        then
           Loop_Required := True;
  
*************** package body Exp_Ch5 is
*** 808,814 ****
           --  if there is a change of representation since obviously two arrays
           --  with different representations cannot possibly overlap.
  
!          if (not Crep) and L_Slice and R_Slice then
              Act_L_Array := Get_Referenced_Object (Prefix (Act_Lhs));
              Act_R_Array := Get_Referenced_Object (Prefix (Act_Rhs));
  
--- 804,810 ----
           --  if there is a change of representation since obviously two arrays
           --  with different representations cannot possibly overlap.
  
!          if not Crep and L_Slice and R_Slice then
              Act_L_Array := Get_Referenced_Object (Prefix (Act_Lhs));
              Act_R_Array := Get_Referenced_Object (Prefix (Act_Rhs));
  
*************** package body Exp_Ch5 is
*** 951,956 ****
--- 947,953 ----
                and then Base_Type (L_Type) = Base_Type (R_Type)
                and then Ndim = 1
                and then not No_Ctrl_Actions (N)
+               and then not No_Finalize_Actions (N)
              then
                 declare
                    Proc    : constant Entity_Id :=
*************** package body Exp_Ch5 is
*** 1096,1103 ****
                and then Base_Type (L_Type) = Base_Type (R_Type)
                and then Ndim = 1
                and then not No_Ctrl_Actions (N)
              then
- 
                 --  Call TSS procedure for array assignment, passing the
                 --  explicit bounds of right- and left-hand sides.
  
--- 1093,1100 ----
                and then Base_Type (L_Type) = Base_Type (R_Type)
                and then Ndim = 1
                and then not No_Ctrl_Actions (N)
+               and then not No_Finalize_Actions (N)
              then
                 --  Call TSS procedure for array assignment, passing the
                 --  explicit bounds of right- and left-hand sides.
  
*************** package body Exp_Ch5 is
*** 1320,1328 ****
  
           Set_Assignment_OK (Name (Assign));
  
!          --  Propagate the No_Ctrl_Actions flag to individual assignments
  
!          Set_No_Ctrl_Actions (Assign, No_Ctrl_Actions (N));
        end;
  
        --  Now construct the loop from the inside out, with the last subscript
--- 1317,1326 ----
  
           Set_Assignment_OK (Name (Assign));
  
!          --  Propagate the No_{Ctrl,Finalize}_Actions flags to assignments
  
!          Set_No_Ctrl_Actions     (Assign, No_Ctrl_Actions (N));
!          Set_No_Finalize_Actions (Assign, No_Finalize_Actions (N));
        end;
  
        --  Now construct the loop from the inside out, with the last subscript
*************** package body Exp_Ch5 is
*** 2306,2312 ****
               Name       => Relocate_Node (LHS),
               Expression => New_RHS));
  
!       --  The left-hand side is not a direct name, but is side-effect free.
        --  Capture its value in a temporary to avoid generating a procedure.
        --  We don't do this optimization if the target object's type may need
        --  finalization actions, because we don't want extra finalizations to
--- 2304,2310 ----
               Name       => Relocate_Node (LHS),
               Expression => New_RHS));
  
!       --  The left-hand side is not a direct name, but is side-effect-free.
        --  Capture its value in a temporary to avoid generating a procedure.
        --  We don't do this optimization if the target object's type may need
        --  finalization actions, because we don't want extra finalizations to
*************** package body Exp_Ch5 is
*** 2658,2667 ****
           Convert_Aggr_In_Assignment (N);
           Rewrite (N, Make_Null_Statement (Loc));
           Analyze (N);
- 
           return;
        end if;
  
        --  Apply discriminant check if required. If Lhs is an access type to a
        --  designated type with discriminants, we must always check. If the
        --  type has unknown discriminants, more elaborate processing below.
--- 2656,2705 ----
           Convert_Aggr_In_Assignment (N);
           Rewrite (N, Make_Null_Statement (Loc));
           Analyze (N);
           return;
        end if;
  
+       --  An assignment between nonnative storage models requires creating an
+       --  intermediate temporary on the host, which can potentially be large.
+ 
+       if Nkind (Lhs) = N_Explicit_Dereference
+         and then Has_Designated_Storage_Model_Aspect (Etype (Prefix (Lhs)))
+         and then Present (Storage_Model_Copy_To
+                            (Storage_Model_Object (Etype (Prefix (Lhs)))))
+         and then Nkind (Rhs) = N_Explicit_Dereference
+         and then Has_Designated_Storage_Model_Aspect (Etype (Prefix (Rhs)))
+         and then Present (Storage_Model_Copy_From
+                            (Storage_Model_Object (Etype (Prefix (Rhs)))))
+       then
+          declare
+             Assign_Code : List_Id;
+             Tmp         : Entity_Id;
+ 
+          begin
+             Assign_Code := New_List;
+ 
+             Tmp := Build_Temporary_On_Secondary_Stack (Loc, Typ, Assign_Code);
+ 
+             Append_To (Assign_Code,
+               Make_Assignment_Statement (Loc,
+                 Name       =>
+                   Make_Explicit_Dereference (Loc,
+                     Prefix => New_Occurrence_Of (Tmp, Loc)),
+                 Expression => Relocate_Node (Rhs)));
+ 
+             Append_To (Assign_Code,
+               Make_Assignment_Statement (Loc,
+                 Name       => Relocate_Node (Lhs),
+                 Expression =>
+                   Make_Explicit_Dereference (Loc,
+                     Prefix => New_Occurrence_Of (Tmp, Loc))));
+ 
+             Insert_Actions (N, Assign_Code);
+             Rewrite (N, Make_Null_Statement (Loc));
+             return;
+          end;
+       end if;
+ 
        --  Apply discriminant check if required. If Lhs is an access type to a
        --  designated type with discriminants, we must always check. If the
        --  type has unknown discriminants, more elaborate processing below.
*************** package body Exp_Ch5 is
*** 2672,2678 ****
           --  Skip discriminant check if change of representation. Will be
           --  done when the change of representation is expanded out.
  
!          if not Crep then
              Apply_Discriminant_Check (Rhs, Etype (Lhs), Lhs);
           end if;
  
--- 2710,2716 ----
           --  Skip discriminant check if change of representation. Will be
           --  done when the change of representation is expanded out.
  
!          if not Crep and then not Suppress_Assignment_Checks (N) then
              Apply_Discriminant_Check (Rhs, Etype (Lhs), Lhs);
           end if;
  
*************** package body Exp_Ch5 is
*** 2712,2718 ****
  
              Set_Etype (Lhs, Ubt);
              Rewrite (Rhs, OK_Convert_To (Base_Type (Ubt), Rhs));
!             Apply_Discriminant_Check (Rhs, Ubt, Lhs);
              Set_Etype (Lhs, Lt);
           end;
  
--- 2750,2758 ----
  
              Set_Etype (Lhs, Ubt);
              Rewrite (Rhs, OK_Convert_To (Base_Type (Ubt), Rhs));
!             if not Suppress_Assignment_Checks (N) then
!                Apply_Discriminant_Check (Rhs, Ubt, Lhs);
!             end if;
              Set_Etype (Lhs, Lt);
           end;
  
*************** package body Exp_Ch5 is
*** 2732,2743 ****
           then
              Rewrite (Rhs, OK_Convert_To (Base_Type (Typ), Rhs));
              Rewrite (Lhs, OK_Convert_To (Base_Type (Typ), Lhs));
!             Apply_Discriminant_Check (Rhs, Typ, Lhs);
  
           elsif Is_Array_Type (Typ) and then Is_Constrained (Typ) then
              Rewrite (Rhs, OK_Convert_To (Base_Type (Typ), Rhs));
              Rewrite (Lhs, OK_Convert_To (Base_Type (Typ), Lhs));
!             Apply_Length_Check (Rhs, Typ);
           end if;
  
        --  In the access type case, we need the same discriminant check, and
--- 2772,2787 ----
           then
              Rewrite (Rhs, OK_Convert_To (Base_Type (Typ), Rhs));
              Rewrite (Lhs, OK_Convert_To (Base_Type (Typ), Lhs));
!             if not Suppress_Assignment_Checks (N) then
!                Apply_Discriminant_Check (Rhs, Typ, Lhs);
!             end if;
  
           elsif Is_Array_Type (Typ) and then Is_Constrained (Typ) then
              Rewrite (Rhs, OK_Convert_To (Base_Type (Typ), Rhs));
              Rewrite (Lhs, OK_Convert_To (Base_Type (Typ), Lhs));
!             if not Suppress_Assignment_Checks (N) then
!                Apply_Length_Check (Rhs, Typ);
!             end if;
           end if;
  
        --  In the access type case, we need the same discriminant check, and
*************** package body Exp_Ch5 is
*** 2745,2750 ****
--- 2789,2795 ----
  
        elsif Is_Access_Type (Etype (Lhs))
          and then Is_Constrained (Designated_Type (Etype (Lhs)))
+         and then not Suppress_Assignment_Checks (N)
        then
           if Has_Discriminants (Designated_Type (Etype (Lhs))) then
  
*************** package body Exp_Ch5 is
*** 2915,2921 ****
        then
           Tagged_Case : declare
              L                   : List_Id := No_List;
!             Expand_Ctrl_Actions : constant Boolean := not No_Ctrl_Actions (N);
  
           begin
              --  In the controlled case, we ensure that function calls are
--- 2960,2968 ----
        then
           Tagged_Case : declare
              L                   : List_Id := No_List;
!             Expand_Ctrl_Actions : constant Boolean
!                                     := not No_Ctrl_Actions (N)
!                                          and then not No_Finalize_Actions (N);
  
           begin
              --  In the controlled case, we ensure that function calls are
*************** package body Exp_Ch5 is
*** 3115,3124 ****
                 end if;
              end if;
  
!             Rewrite (N,
!               Make_Block_Statement (Loc,
!                 Handled_Statement_Sequence =>
!                   Make_Handled_Sequence_Of_Statements (Loc, Statements => L)));
  
              --  If no restrictions on aborts, protect the whole assignment
              --  for controlled objects as per 9.8(11).
--- 3162,3181 ----
                 end if;
              end if;
  
!             --  We will analyze the block statement with all checks suppressed
!             --  below, but we need elaboration checks for the primitives in the
!             --  case of an assignment created by the expansion of an aggregate.
! 
!             if No_Finalize_Actions (N) then
!                Rewrite (N,
!                  Make_Unsuppress_Block (Loc, Name_Elaboration_Check, L));
! 
!             else
!                Rewrite (N,
!                  Make_Block_Statement (Loc,
!                    Handled_Statement_Sequence =>
!                     Make_Handled_Sequence_Of_Statements (Loc, L)));
!             end if;
  
              --  If no restrictions on aborts, protect the whole assignment
              --  for controlled objects as per 9.8(11).
*************** package body Exp_Ch5 is
*** 3924,3930 ****
  
           Declarations : constant List_Id := New_List (Selector_Decl);
  
!       --  Start of processing for Expand_General_Case_Statment
  
        begin
           if Present (Choice_Index_Decl) then
--- 3981,3987 ----
  
           Declarations : constant List_Id := New_List (Selector_Decl);
  
!       --  Start of processing for Expand_General_Case_Statement
  
        begin
           if Present (Choice_Index_Decl) then
*************** package body Exp_Ch5 is
*** 4035,4042 ****
           end if;
  
           --  First step is to worry about possible invalid argument. The RM
!          --  requires (RM 5.4(13)) that if the result is invalid (e.g. it is
!          --  outside the base range), then Constraint_Error must be raised.
  
           --  Case of validity check required (validity checks are on, the
           --  expression is not known to be valid, and the case statement
--- 4092,4100 ----
           end if;
  
           --  First step is to worry about possible invalid argument. The RM
!          --  requires (RM 4.5.7 (21/3) and 5.4 (13)) that if the result is
!          --  invalid (e.g. it is outside the base range), then Constraint_Error
!          --  must be raised.
  
           --  Case of validity check required (validity checks are on, the
           --  expression is not known to be valid, and the case statement
*************** package body Exp_Ch5 is
*** 4079,4089 ****
  
           --  If there is only a single alternative, just replace it with the
           --  sequence of statements since obviously that is what is going to
!          --  be executed in all cases.
  
           Len := List_Length (Alternatives (N));
  
!          if Len = 1 then
  
              --  We still need to evaluate the expression if it has any side
              --  effects.
--- 4137,4151 ----
  
           --  If there is only a single alternative, just replace it with the
           --  sequence of statements since obviously that is what is going to
!          --  be executed in all cases, except if it is the node to be wrapped
!          --  by a transient scope, because this would cause the sequence of
!          --  statements to be leaked out of the transient scope.
  
           Len := List_Length (Alternatives (N));
  
!          if Len = 1
!            and then not (Scope_Is_Transient and then Node_To_Be_Wrapped = N)
!          then
  
              --  We still need to evaluate the expression if it has any side
              --  effects.
*************** package body Exp_Ch5 is
*** 4213,4219 ****
  
              --  If Predicates_Ignored is true the value does not satisfy the
              --  predicate, and there is no Others choice, Constraint_Error
!             --  must be raised (4.5.7 (21/3)).
  
              if Predicates_Ignored (Etype (Expr)) then
                 declare
--- 4275,4281 ----
  
              --  If Predicates_Ignored is true the value does not satisfy the
              --  predicate, and there is no Others choice, Constraint_Error
!             --  must be raised (RM 4.5.7 (21/3) and 5.4 (13)).
  
              if Predicates_Ignored (Etype (Expr)) then
                 declare
*************** package body Exp_Ch5 is
*** 4324,4329 ****
--- 4386,4397 ----
  
        Analyze (Init_Decl);
        Init_Name := Defining_Identifier (Init_Decl);
+       Reinit_Field_To_Zero (Init_Name, F_Has_Initial_Value,
+         Old_Ekind => (E_Variable => True, others => False));
+       Reinit_Field_To_Zero (Init_Name, F_Is_Elaboration_Checks_OK_Id);
+       Reinit_Field_To_Zero (Init_Name, F_Is_Elaboration_Warnings_OK_Id);
+       Reinit_Field_To_Zero (Init_Name, F_SPARK_Pragma);
+       Reinit_Field_To_Zero (Init_Name, F_SPARK_Pragma_Inherited);
        Mutate_Ekind (Init_Name, E_Loop_Parameter);
  
        --  The cursor was marked as a loop parameter to prevent user assignments
*************** package body Exp_Ch5 is
*** 4689,4695 ****
          and then not Opt.Suppress_Control_Flow_Optimizations
          and then Nkind (N) = N_If_Statement
          and then No (Elsif_Parts (N))
-         and then Present (Else_Statements (N))
          and then List_Length (Then_Statements (N)) = 1
          and then List_Length (Else_Statements (N)) = 1
        then
--- 4757,4762 ----
*************** package body Exp_Ch5 is
*** 4765,4771 ****
  
        else
           Expand_Iterator_Loop_Over_Container
!            (N, Isc, I_Spec, Container, Container_Typ);
        end if;
     end Expand_Iterator_Loop;
  
--- 4832,4838 ----
  
        else
           Expand_Iterator_Loop_Over_Container
!            (N, I_Spec, Container, Container_Typ);
        end if;
     end Expand_Iterator_Loop;
  
*************** package body Exp_Ch5 is
*** 5062,5068 ****
  
     procedure Expand_Iterator_Loop_Over_Container
       (N             : Node_Id;
-       Isc           : Node_Id;
        I_Spec        : Node_Id;
        Container     : Node_Id;
        Container_Typ : Entity_Id)
--- 5129,5134 ----
*************** package body Exp_Ch5 is
*** 5092,5100 ****
        --  The package in which the iterator interface is instantiated. This is
        --  typically an instance within the container package.
  
-       Pack : Entity_Id;
-       --  The package in which the container type is declared
- 
     begin
        if Present (Iterator_Filter (I_Spec)) then
           pragma Assert (Ada_Version >= Ada_2022);
--- 5158,5163 ----
*************** package body Exp_Ch5 is
*** 5129,5143 ****
        --    package Vector_Iterator_Interfaces is new
        --      Ada.Iterator_Interfaces (Cursor, Has_Element);
  
-       --  If the container type is a derived type, the cursor type is found in
-       --  the package of the ultimate ancestor type.
- 
-       if Is_Derived_Type (Container_Typ) then
-          Pack := Scope (Root_Type (Container_Typ));
-       else
-          Pack := Scope (Container_Typ);
-       end if;
- 
        if Of_Present (I_Spec) then
           Handle_Of : declare
              Container_Arg : Node_Id;
--- 5192,5197 ----
*************** package body Exp_Ch5 is
*** 5223,5228 ****
--- 5277,5285 ----
              Default_Iter : Entity_Id;
              Ent          : Entity_Id;
  
+             Cont_Type_Pack         : Entity_Id;
+             --  The package in which the container type is declared
+ 
              Reference_Control_Type : Entity_Id := Empty;
              Pseudo_Reference       : Entity_Id := Empty;
  
*************** package body Exp_Ch5 is
*** 5246,5256 ****
  
              Iter_Type := Etype (Default_Iter);
  
!             --  The iterator type, which is a class-wide type, may itself be
!             --  derived locally, so the desired instantiation is the scope of
!             --  the root type of the iterator type.
  
!             Iter_Pack := Scope (Root_Type (Etype (Iter_Type)));
  
              --  Find declarations needed for "for ... of" optimization.
              --  These declarations come from GNAT sources or sources
--- 5303,5316 ----
  
              Iter_Type := Etype (Default_Iter);
  
!             --  If the container type is a derived type, the cursor type is
!             --  found in the package of the ultimate ancestor type.
  
!             if Is_Derived_Type (Container_Typ) then
!                Cont_Type_Pack := Scope (Root_Type (Container_Typ));
!             else
!                Cont_Type_Pack := Scope (Container_Typ);
!             end if;
  
              --  Find declarations needed for "for ... of" optimization.
              --  These declarations come from GNAT sources or sources
*************** package body Exp_Ch5 is
*** 5260,5266 ****
              --  Note that we use _Next or _Previous to avoid picking up
              --  some arbitrary user-defined Next or Previous.
  
!             Ent := First_Entity (Pack);
              while Present (Ent) loop
                 --  Get_Element_Access function with one parameter called
                 --  Position.
--- 5320,5326 ----
              --  Note that we use _Next or _Previous to avoid picking up
              --  some arbitrary user-defined Next or Previous.
  
!             Ent := First_Entity (Cont_Type_Pack);
              while Present (Ent) loop
                 --  Get_Element_Access function with one parameter called
                 --  Position.
*************** package body Exp_Ch5 is
*** 5334,5339 ****
--- 5394,5404 ----
  
              Analyze_And_Resolve (Name (I_Spec));
  
+             --  The desired instantiation is the scope of an iterator interface
+             --  type that is an ancestor of the iterator type.
+ 
+             Iter_Pack := Scope (Iterator_Interface_Ancestor (Iter_Type));
+ 
              --  Find cursor type in proper iterator package, which is an
              --  instantiation of Iterator_Interfaces.
  
*************** package body Exp_Ch5 is
*** 5403,5413 ****
        else
           Iter_Type := Etype (Name (I_Spec));
  
!          --  The iterator type, which is a class-wide type, may itself be
!          --  derived locally, so the desired instantiation is the scope of
!          --  the root type of the iterator type, as in the "of" case.
  
-          Iter_Pack := Scope (Root_Type (Etype (Iter_Type)));
           Cursor := Id;
        end if;
  
--- 5468,5479 ----
        else
           Iter_Type := Etype (Name (I_Spec));
  
!          --  The instantiation in which to locate the Has_Element function
!          --  is the scope containing an iterator interface type that is
!          --  an ancestor of the iterator type.
! 
!          Iter_Pack := Scope (Iterator_Interface_Ancestor (Iter_Type));
  
           Cursor := Id;
        end if;
  
*************** package body Exp_Ch5 is
*** 5526,5541 ****
           Set_Assignment_OK (Cursor_Decl);
  
           Insert_Action (N, Cursor_Decl);
           Mutate_Ekind (Cursor, Id_Kind);
        end;
  
-       --  If the range of iteration is given by a function call that returns
-       --  a container, the finalization actions have been saved in the
-       --  Condition_Actions of the iterator. Insert them now at the head of
-       --  the loop.
- 
-       Insert_List_Before (N, Condition_Actions (Isc));
- 
        Rewrite (N, New_Loop);
        Analyze (N);
     end Expand_Iterator_Loop_Over_Container;
--- 5592,5606 ----
           Set_Assignment_OK (Cursor_Decl);
  
           Insert_Action (N, Cursor_Decl);
+          Reinit_Field_To_Zero (Cursor, F_Has_Initial_Value,
+            Old_Ekind => (E_Variable => True, others => False));
+          Reinit_Field_To_Zero (Cursor, F_Is_Elaboration_Checks_OK_Id);
+          Reinit_Field_To_Zero (Cursor, F_Is_Elaboration_Warnings_OK_Id);
+          Reinit_Field_To_Zero (Cursor, F_SPARK_Pragma);
+          Reinit_Field_To_Zero (Cursor, F_SPARK_Pragma_Inherited);
           Mutate_Ekind (Cursor, Id_Kind);
        end;
  
        Rewrite (N, New_Loop);
        Analyze (N);
     end Expand_Iterator_Loop_Over_Container;
*************** package body Exp_Ch5 is
*** 6178,6189 ****
        Res : constant List_Id    := New_List;
        T   : constant Entity_Id  := Underlying_Type (Etype (L));
  
        Comp_Asn : constant Boolean := Is_Fully_Repped_Tagged_Type (T);
        Ctrl_Act : constant Boolean := Needs_Finalization (T)
!                                        and then not No_Ctrl_Actions (N);
        Save_Tag : constant Boolean := Is_Tagged_Type (T)
                                         and then not Comp_Asn
                                         and then not No_Ctrl_Actions (N)
                                         and then Tagged_Type_Expansion;
        Adj_Call : Node_Id;
        Fin_Call : Node_Id;
--- 6243,6262 ----
        Res : constant List_Id    := New_List;
        T   : constant Entity_Id  := Underlying_Type (Etype (L));
  
+       Adj_Act  : constant Boolean := Needs_Finalization (T)
+                                        and then not No_Ctrl_Actions (N);
        Comp_Asn : constant Boolean := Is_Fully_Repped_Tagged_Type (T);
        Ctrl_Act : constant Boolean := Needs_Finalization (T)
!                                        and then not No_Ctrl_Actions (N)
!                                        and then not No_Finalize_Actions (N);
        Save_Tag : constant Boolean := Is_Tagged_Type (T)
                                         and then not Comp_Asn
                                         and then not No_Ctrl_Actions (N)
+                                        and then not No_Finalize_Actions (N)
+                                        and then Tagged_Type_Expansion;
+       Set_Tag  : constant Boolean := Is_Tagged_Type (T)
+                                        and then not Comp_Asn
+                                        and then not No_Ctrl_Actions (N)
                                         and then Tagged_Type_Expansion;
        Adj_Call : Node_Id;
        Fin_Call : Node_Id;
*************** package body Exp_Ch5 is
*** 6194,6201 ****
  
        --  We have two exceptions here:
  
!       --   1. If we are in an init proc since it is an initialization more
!       --      than an assignment.
  
        --   2. If the left-hand side is a temporary that was not initialized
        --      (or the parent part of a temporary since it is the case in
--- 6267,6274 ----
  
        --  We have two exceptions here:
  
!       --   1. If we are in an init proc or within an aggregate, since it is an
!       --      initialization more than an assignment.
  
        --   2. If the left-hand side is a temporary that was not initialized
        --      (or the parent part of a temporary since it is the case in
*************** package body Exp_Ch5 is
*** 6204,6210 ****
        --      it may be a component of an entry formal, in which case it has
        --      been rewritten and does not appear to come from source either.
  
!       --  Case of init proc
  
        if not Ctrl_Act then
           null;
--- 6277,6283 ----
        --      it may be a component of an entry formal, in which case it has
        --      been rewritten and does not appear to come from source either.
  
!       --  Case of init proc or aggregate
  
        if not Ctrl_Act then
           null;
*************** package body Exp_Ch5 is
*** 6274,6285 ****
                   Selector_Name =>
                     New_Occurrence_Of (First_Tag_Component (T), Loc)),
               Expression => New_Occurrence_Of (Tag_Id, Loc)));
        end if;
  
        --  Adjust the target after the assignment when controlled (not in the
        --  init proc since it is an initialization more than an assignment).
  
!       if Ctrl_Act then
           Adj_Call :=
             Make_Adjust_Call
               (Obj_Ref => Duplicate_Subexpr_Move_Checks (L),
--- 6347,6365 ----
                   Selector_Name =>
                     New_Occurrence_Of (First_Tag_Component (T), Loc)),
               Expression => New_Occurrence_Of (Tag_Id, Loc)));
+ 
+       --  Or else just initialize it
+ 
+       elsif Set_Tag then
+          Append_To (Res,
+            Make_Tag_Assignment_From_Type
+              (Loc, Duplicate_Subexpr_No_Checks (L), T));
        end if;
  
        --  Adjust the target after the assignment when controlled (not in the
        --  init proc since it is an initialization more than an assignment).
  
!       if Ctrl_Act or else Adj_Act then
           Adj_Call :=
             Make_Adjust_Call
               (Obj_Ref => Duplicate_Subexpr_Move_Checks (L),
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch5.ads gcc-14.1.0/gcc/ada/exp_ch5.ads
*** gcc-13.2.0/gcc/ada/exp_ch5.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch5.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch6.adb gcc-14.1.0/gcc/ada/exp_ch6.adb
*** gcc-13.2.0/gcc/ada/exp_ch6.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch6.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Expander;       use Expander;
*** 37,42 ****
--- 37,43 ----
  with Exp_Aggr;       use Exp_Aggr;
  with Exp_Atag;       use Exp_Atag;
  with Exp_Ch3;        use Exp_Ch3;
+ with Exp_Ch4;        use Exp_Ch4;
  with Exp_Ch7;        use Exp_Ch7;
  with Exp_Ch9;        use Exp_Ch9;
  with Exp_Dbug;       use Exp_Dbug;
*************** with Sem_Mech;       use Sem_Mech;
*** 70,75 ****
--- 71,77 ----
  with Sem_Res;        use Sem_Res;
  with Sem_SCIL;       use Sem_SCIL;
  with Sem_Util;       use Sem_Util;
+                      use Sem_Util.Storage_Model_Support;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
*************** package body Exp_Ch6 is
*** 192,197 ****
--- 194,203 ----
     --  the activation Chain. Note: Master_Actual can be Empty, but only if
     --  there are no tasks.
  
+    function Build_Flag_For_Function (Func_Id : Entity_Id) return Entity_Id;
+    --  Generate code to declare a boolean flag initialized to False in the
+    --  function Func_Id and return the entity for the flag.
+ 
     function Caller_Known_Size
       (Func_Call   : Node_Id;
        Result_Subt : Entity_Id) return Boolean;
*************** package body Exp_Ch6 is
*** 310,315 ****
--- 316,343 ----
     --  Insert the Post_Call list previously produced by routine Expand_Actuals
     --  or Expand_Call_Helper into the tree.
  
+    function Is_Function_Call_With_BIP_Formals (N : Node_Id) return Boolean;
+    --  Ada 2005 (AI-318-02): Returns True if N denotes a call to a function
+    --  that requires handling as a build-in-place call, that is, BIP function
+    --  calls and calls to functions with inherited BIP formals. For example:
+    --
+    --    type Iface is limited interface;
+    --    function Get_Object return Iface;
+    --    --  This function has BIP extra formals
+    --
+    --    type Root1 is limited tagged record ...
+    --    type T1 is new Root1 and Iface with ...
+    --    function Get_Object return T1;
+    --    --  This primitive requires the BIP formals, and the evaluation of
+    --    --  Is_Build_In_Place_Function_Call returns True.
+    --
+    --    type Root2 is tagged record ...
+    --    type T2 is new Root2 and Iface with ...
+    --    function Get_Object return T2;
+    --    --  This primitive inherits the BIP formals of the interface primitive
+    --    --  but, given that T2 is not a limited type, it does not require such
+    --    --  formals; therefore Is_Build_In_Place_Function_Call returns False.
+ 
     procedure Replace_Renaming_Declaration_Id
        (New_Decl  : Node_Id;
         Orig_Decl : Node_Id);
*************** package body Exp_Ch6 is
*** 479,484 ****
--- 507,514 ----
           Desig_Typ : Entity_Id;
  
        begin
+          pragma Assert (Present (Formal));
+ 
           --  If there is a finalization master actual, such as the implicit
           --  finalization master of an enclosing build-in-place function,
           --  then this must be added as an extra actual of the call.
*************** package body Exp_Ch6 is
*** 619,624 ****
--- 649,675 ----
        --  No such extra parameters are needed if there are no tasks
  
        if not Needs_BIP_Task_Actuals (Function_Id) then
+ 
+          --  However we must add dummy extra actuals if the function is
+          --  a dispatching operation that inherited these extra formals.
+ 
+          if Is_Dispatching_Operation (Function_Id)
+            and then Has_BIP_Extra_Formal (Function_Id, BIP_Task_Master)
+          then
+             Master_Formal :=
+               Build_In_Place_Formal (Function_Id, BIP_Task_Master);
+             Actual := Make_Integer_Literal (Loc, Uint_0);
+             Analyze_And_Resolve (Actual, Etype (Master_Formal));
+             Add_Extra_Actual_To_Call (Function_Call, Master_Formal, Actual);
+ 
+             Chain_Formal :=
+               Build_In_Place_Formal (Function_Id, BIP_Activation_Chain);
+             Chain_Actual := Make_Null (Loc);
+             Analyze_And_Resolve (Chain_Actual, Etype (Chain_Formal));
+             Add_Extra_Actual_To_Call
+               (Function_Call, Chain_Formal, Chain_Actual);
+          end if;
+ 
           return;
        end if;
  
*************** package body Exp_Ch6 is
*** 860,865 ****
--- 911,963 ----
        end if;
     end BIP_Suffix_Kind;
  
+    -----------------------------
+    -- Build_Flag_For_Function --
+    -----------------------------
+ 
+    function Build_Flag_For_Function (Func_Id : Entity_Id) return Entity_Id is
+       Flag_Decl : Node_Id;
+       Flag_Id   : Entity_Id;
+       Func_Bod  : Node_Id;
+       Loc       : Source_Ptr;
+ 
+    begin
+       --  Recover the function body
+ 
+       Func_Bod := Unit_Declaration_Node (Func_Id);
+ 
+       if Nkind (Func_Bod) = N_Subprogram_Declaration then
+          Func_Bod := Parent (Parent (Corresponding_Body (Func_Bod)));
+       end if;
+ 
+       if Nkind (Func_Bod) = N_Function_Specification then
+          Func_Bod := Parent (Func_Bod); -- one more level for child units
+       end if;
+ 
+       pragma Assert (Nkind (Func_Bod) = N_Subprogram_Body);
+ 
+       Loc := Sloc (Func_Bod);
+ 
+       --  Create a flag to track the function state
+ 
+       Flag_Id := Make_Temporary (Loc, 'F');
+ 
+       --  Insert the flag at the beginning of the function declarations,
+       --  generate:
+       --    Fnn : Boolean := False;
+ 
+       Flag_Decl :=
+         Make_Object_Declaration (Loc,
+           Defining_Identifier => Flag_Id,
+             Object_Definition => New_Occurrence_Of (Standard_Boolean, Loc),
+             Expression        => New_Occurrence_Of (Standard_False, Loc));
+ 
+       Prepend_To (Declarations (Func_Bod), Flag_Decl);
+       Analyze (Flag_Decl);
+ 
+       return Flag_Id;
+    end Build_Flag_For_Function;
+ 
     ---------------------------
     -- Build_In_Place_Formal --
     ---------------------------
*************** package body Exp_Ch6 is
*** 892,899 ****
        --  the Alias of an instance, which will cause the formals to have
        --  "incorrect" names.
  
!       loop
!          pragma Assert (Present (Extra_Formal));
           declare
              Name : constant String := Get_Name_String (Chars (Extra_Formal));
           begin
--- 990,996 ----
        --  the Alias of an instance, which will cause the formals to have
        --  "incorrect" names.
  
!       while Present (Extra_Formal) loop
           declare
              Name : constant String := Get_Name_String (Chars (Extra_Formal));
           begin
*************** package body Exp_Ch6 is
*** 905,910 ****
--- 1002,1011 ----
           Next_Formal_With_Extras (Extra_Formal);
        end loop;
  
+       if No (Extra_Formal) then
+          raise Program_Error;
+       end if;
+ 
        return Extra_Formal;
     end Build_In_Place_Formal;
  
*************** package body Exp_Ch6 is
*** 1936,1943 ****
        ----------------------------------
  
        procedure Add_Simple_Call_By_Copy_Code (Force : Boolean) is
           Decl   : Node_Id;
!          F_Typ  : Entity_Id := Etype (Formal);
           Incod  : Node_Id;
           Indic  : Node_Id;
           Lhs    : Node_Id;
--- 2037,2050 ----
        ----------------------------------
  
        procedure Add_Simple_Call_By_Copy_Code (Force : Boolean) is
+          With_Storage_Model : constant Boolean :=
+            Nkind (Actual) = N_Explicit_Dereference
+              and then
+                Has_Designated_Storage_Model_Aspect (Etype (Prefix (Actual)));
+ 
+          Cpcod  : List_Id;
           Decl   : Node_Id;
!          F_Typ  : Entity_Id;
           Incod  : Node_Id;
           Indic  : Node_Id;
           Lhs    : Node_Id;
*************** package body Exp_Ch6 is
*** 1952,1957 ****
--- 2059,2066 ----
              return;
           end if;
  
+          F_Typ := Etype (Formal);
+ 
           --  Handle formals whose type comes from the limited view
  
           if From_Limited_With (F_Typ)
*************** package body Exp_Ch6 is
*** 1961,1971 ****
           end if;
  
           --  Use formal type for temp, unless formal type is an unconstrained
!          --  array, in which case we don't have to worry about bounds checks,
!          --  and we use the actual type, since that has appropriate bounds.
  
!          if Is_Array_Type (F_Typ) and then not Is_Constrained (F_Typ) then
!             Indic := New_Occurrence_Of (Etype (Actual), Loc);
           else
              Indic := New_Occurrence_Of (F_Typ, Loc);
           end if;
--- 2070,2080 ----
           end if;
  
           --  Use formal type for temp, unless formal type is an unconstrained
!          --  composite, in which case we don't have to worry about checks and
!          --  we can use the actual type, since that has appropriate bounds.
  
!          if Is_Composite_Type (F_Typ) and then not Is_Constrained (F_Typ) then
!             Indic := New_Occurrence_Of (Get_Actual_Subtype (Actual), Loc);
           else
              Indic := New_Occurrence_Of (F_Typ, Loc);
           end if;
*************** package body Exp_Ch6 is
*** 1974,1980 ****
  
           Reset_Packed_Prefix;
  
-          Temp   := Make_Temporary (Loc, 'T', Actual);
           Incod  := Relocate_Node (Actual);
           Outcod := New_Copy_Tree (Incod);
  
--- 2083,2088 ----
*************** package body Exp_Ch6 is
*** 1982,1999 ****
           --  with the input parameter unless we have an OUT formal or
           --  this is an initialization call.
  
-          --  If the formal is an out parameter with discriminants, the
-          --  discriminants must be captured even if the rest of the object
-          --  is in principle uninitialized, because the discriminants may
-          --  be read by the called subprogram.
- 
           if Ekind (Formal) = E_Out_Parameter then
              Incod := Empty;
  
-             if Has_Discriminants (F_Typ) then
-                Indic := New_Occurrence_Of (Etype (Actual), Loc);
-             end if;
- 
           elsif Inside_Init_Proc then
  
              --  Skip using the actual as the expression in Decl if we are in
--- 2090,2098 ----
*************** package body Exp_Ch6 is
*** 2017,2031 ****
              end if;
           end if;
  
!          Decl :=
!            Make_Object_Declaration (Loc,
!              Defining_Identifier => Temp,
!              Object_Definition   => Indic,
!              Expression          => Incod);
  
-          if Inside_Init_Proc
-            and then No (Incod)
-          then
              --  If the call is to initialize a component of a composite type,
              --  and the component does not depend on discriminants, use the
              --  actual type of the component. This is required in case the
--- 2116,2146 ----
              end if;
           end if;
  
!          Cpcod := New_List;
! 
!          if With_Storage_Model then
!             Temp :=
!               Build_Temporary_On_Secondary_Stack (Loc, Entity (Indic), Cpcod);
! 
!             if Present (Incod) then
!                Append_To (Cpcod,
!                  Make_Assignment_Statement (Loc,
!                    Name       =>
!                      Make_Explicit_Dereference (Loc,
!                        Prefix => New_Occurrence_Of (Temp, Loc)),
!                    Expression => Incod));
!                Set_Suppress_Assignment_Checks (Last (Cpcod));
!             end if;
! 
!          else
!             Temp := Make_Temporary (Loc, 'T', Actual);
! 
!             Decl :=
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Temp,
!                 Object_Definition   => Indic,
!                 Expression          => Incod);
  
              --  If the call is to initialize a component of a composite type,
              --  and the component does not depend on discriminants, use the
              --  actual type of the component. This is required in case the
*************** package body Exp_Ch6 is
*** 2035,2057 ****
              --  discriminant, the presence of the initialization in the
              --  declaration will generate an expression for the actual subtype.
  
!             Set_No_Initialization (Decl);
!             Set_Object_Definition (Decl,
!               New_Occurrence_Of (Etype (Actual), Loc));
           end if;
  
!          Insert_Action (N, Decl);
  
           --  The actual is simply a reference to the temporary
  
!          Rewrite (Actual, New_Occurrence_Of (Temp, Loc));
  
           --  Generate copy out if OUT or IN OUT parameter
  
           if Ekind (Formal) /= E_In_Parameter then
              Lhs := Outcod;
!             Rhs := New_Occurrence_Of (Temp, Loc);
!             Set_Is_True_Constant (Temp, False);
  
              --  Deal with conversion
  
--- 2150,2191 ----
              --  discriminant, the presence of the initialization in the
              --  declaration will generate an expression for the actual subtype.
  
!             if Inside_Init_Proc and then No (Incod) then
!                Set_No_Initialization (Decl);
!                Set_Object_Definition (Decl,
!                  New_Occurrence_Of (Etype (Actual), Loc));
!             end if;
! 
!             Append_To (Cpcod, Decl);
           end if;
  
!          Insert_Actions (N, Cpcod);
  
           --  The actual is simply a reference to the temporary
  
!          if With_Storage_Model then
!             Rewrite (Actual,
!               Make_Explicit_Dereference (Loc,
!                 Prefix => New_Occurrence_Of (Temp, Loc)));
!          else
!             Rewrite (Actual, New_Occurrence_Of (Temp, Loc));
!          end if;
! 
!          Analyze (Actual);
  
           --  Generate copy out if OUT or IN OUT parameter
  
           if Ekind (Formal) /= E_In_Parameter then
              Lhs := Outcod;
! 
!             if With_Storage_Model then
!                Rhs :=
!                  Make_Explicit_Dereference (Loc,
!                    Prefix => New_Occurrence_Of (Temp, Loc));
!             else
!                Rhs := New_Occurrence_Of (Temp, Loc);
!                Set_Is_True_Constant (Temp, False);
!             end if;
  
              --  Deal with conversion
  
*************** package body Exp_Ch6 is
*** 2064,2069 ****
--- 2198,2204 ----
                Make_Assignment_Statement (Loc,
                  Name       => Lhs,
                  Expression => Rhs));
+             Set_Suppress_Assignment_Checks (Last (Post_Call));
              Set_Assignment_OK (Name (Last (Post_Call)));
           end if;
        end Add_Simple_Call_By_Copy_Code;
*************** package body Exp_Ch6 is
*** 2452,2457 ****
--- 2587,2608 ----
              elsif Is_Ref_To_Bit_Packed_Array (Actual) then
                 Add_Simple_Call_By_Copy_Code (Force => True);
  
+             --  If the actual has a nonnative storage model, we need a copy
+ 
+             elsif Nkind (Actual) = N_Explicit_Dereference
+               and then
+                 Has_Designated_Storage_Model_Aspect (Etype (Prefix (Actual)))
+               and then
+                 (Present (Storage_Model_Copy_To
+                             (Storage_Model_Object (Etype (Prefix (Actual)))))
+                   or else
+                     (Ekind (Formal) = E_In_Out_Parameter
+                       and then
+                         Present (Storage_Model_Copy_From
+                           (Storage_Model_Object (Etype (Prefix (Actual)))))))
+             then
+                Add_Simple_Call_By_Copy_Code (Force => True);
+ 
              --  If a nonscalar actual is possibly bit-aligned, we need a copy
              --  because the back-end cannot cope with such objects. In other
              --  cases where alignment forces a copy, the back-end generates
*************** package body Exp_Ch6 is
*** 2598,2603 ****
--- 2749,2765 ----
              elsif Is_Ref_To_Bit_Packed_Array (Actual) then
                 Add_Simple_Call_By_Copy_Code (Force => True);
  
+             --  If the actual has a nonnative storage model, we need a copy
+ 
+             elsif Nkind (Actual) = N_Explicit_Dereference
+               and then
+                 Has_Designated_Storage_Model_Aspect (Etype (Prefix (Actual)))
+               and then
+                 Present (Storage_Model_Copy_From
+                            (Storage_Model_Object (Etype (Prefix (Actual)))))
+             then
+                Add_Simple_Call_By_Copy_Code (Force => True);
+ 
              --  If we have a C++ constructor call, we need to create the object
  
              elsif Is_CPP_Constructor_Call (Actual) then
*************** package body Exp_Ch6 is
*** 2738,2744 ****
     -----------------
  
     procedure Expand_Call (N : Node_Id) is
!       Post_Call : List_Id;
  
        --  If this is an indirect call through an Access_To_Subprogram
        --  with contract specifications, it is rewritten as a call to
--- 2900,2939 ----
     -----------------
  
     procedure Expand_Call (N : Node_Id) is
!       function Is_Unchecked_Union_Equality (N : Node_Id) return Boolean;
!       --  Return True if N is a call to the predefined equality operator of an
!       --  unchecked union type, or a renaming thereof.
! 
!       ---------------------------------
!       -- Is_Unchecked_Union_Equality --
!       ---------------------------------
! 
!       function Is_Unchecked_Union_Equality (N : Node_Id) return Boolean is
!       begin
!          if Is_Entity_Name (Name (N))
!            and then Ekind (Entity (Name (N))) = E_Function
!            and then Present (First_Formal (Entity (Name (N))))
!            and then
!              Is_Unchecked_Union (Etype (First_Formal (Entity (Name (N)))))
!          then
!             declare
!                Func : constant Entity_Id := Entity (Name (N));
!                Typ  : constant Entity_Id := Etype (First_Formal (Func));
!                Decl : constant Node_Id   :=
!                  Original_Node (Parent (Declaration_Node (Func)));
! 
!             begin
!                return Func = TSS (Typ, TSS_Composite_Equality)
!                  or else (Nkind (Decl) = N_Subprogram_Renaming_Declaration
!                            and then Nkind (Name (Decl)) = N_Operator_Symbol
!                            and then Chars (Name (Decl)) = Name_Op_Eq
!                            and then Ekind (Entity (Name (Decl))) = E_Operator);
!             end;
! 
!          else
!             return False;
!          end if;
!       end Is_Unchecked_Union_Equality;
  
        --  If this is an indirect call through an Access_To_Subprogram
        --  with contract specifications, it is rewritten as a call to
*************** package body Exp_Ch6 is
*** 2753,2758 ****
--- 2948,2957 ----
            and then Present
              (Access_Subprogram_Wrapper (Etype (Name (N))));
  
+       Post_Call : List_Id;
+ 
+    --  Start of processing for Expand_Call
+ 
     begin
        pragma Assert (Nkind (N) in N_Entry_Call_Statement
                                  | N_Function_Call
*************** package body Exp_Ch6 is
*** 2828,2833 ****
--- 3027,3053 ----
              Analyze_And_Resolve (N, Typ);
           end;
  
+       --  Case of a call to the predefined equality operator of an unchecked
+       --  union type, which requires specific processing.
+ 
+       elsif Is_Unchecked_Union_Equality (N) then
+          declare
+             Eq : constant Entity_Id := Entity (Name (N));
+ 
+          begin
+             Expand_Unchecked_Union_Equality (N);
+ 
+             --  If the call was not rewritten as a raise, expand the actuals
+ 
+             if Nkind (N) = N_Function_Call then
+                pragma Assert (Check_Number_Of_Actuals (N, Eq));
+                Expand_Actuals (N, Eq, Post_Call);
+                pragma Assert (Is_Empty_List (Post_Call));
+             end if;
+          end;
+ 
+       --  Normal case
+ 
        else
           Expand_Call_Helper (N, Post_Call);
           Insert_Post_Call_Actions (N, Post_Call);
*************** package body Exp_Ch6 is
*** 2874,2879 ****
--- 3094,3106 ----
        --  actuals and must be handled in a recursive fashion since they can
        --  be embedded within each other.
  
+       procedure Add_Dummy_Build_In_Place_Actuals
+         (Function_Id             : Entity_Id;
+          Num_Added_Extra_Actuals : Nat := 0);
+       --  Adds dummy actuals for the BIP extra formals of the called function.
+       --  Num_Added_Extra_Actuals is the number of non-BIP extra actuals added
+       --  to the actuals immediately before calling this subprogram.
+ 
        procedure Add_Extra_Actual (Expr : Node_Id; EF : Entity_Id);
        --  Adds an extra actual to the list of extra actuals. Expr is the
        --  expression for the value of the actual, EF is the entity for the
*************** package body Exp_Ch6 is
*** 3028,3034 ****
           --  Start of processing for Insert_Level_Assign
  
           begin
!             --  Examine further nested condtionals
  
              pragma Assert (Nkind (Branch) =
                              N_Expression_With_Actions);
--- 3255,3261 ----
           --  Start of processing for Insert_Level_Assign
  
           begin
!             --  Examine further nested conditionals
  
              pragma Assert (Nkind (Branch) =
                              N_Expression_With_Actions);
*************** package body Exp_Ch6 is
*** 3132,3137 ****
--- 3359,3441 ----
              EF   => Extra_Accessibility (Formal));
        end Add_Cond_Expression_Extra_Actual;
  
+       --------------------------------------
+       -- Add_Dummy_Build_In_Place_Actuals --
+       --------------------------------------
+ 
+       procedure Add_Dummy_Build_In_Place_Actuals
+         (Function_Id             : Entity_Id;
+          Num_Added_Extra_Actuals : Nat := 0)
+       is
+          Loc        : constant Source_Ptr := Sloc (Call_Node);
+          Formal     : Entity_Id           := Extra_Formals (Function_Id);
+          Actual     : Node_Id;
+          Skip_Extra : Nat;
+ 
+       begin
+          --  We never generate extra formals if expansion is not active because
+          --  we don't need them unless we are generating code. No action needed
+          --  for thunks since they propagate all their extra actuals.
+ 
+          if not Expander_Active
+            or else Is_Thunk (Current_Scope)
+          then
+             return;
+          end if;
+ 
+          --  Skip already-added non-BIP extra actuals
+ 
+          Skip_Extra := Num_Added_Extra_Actuals;
+          while Skip_Extra > 0 loop
+             pragma Assert (not Is_Build_In_Place_Entity (Formal));
+             Formal := Extra_Formal (Formal);
+             Skip_Extra := Skip_Extra - 1;
+          end loop;
+ 
+          --  Append the dummy BIP extra actuals
+ 
+          while Present (Formal) loop
+             pragma Assert (Is_Build_In_Place_Entity (Formal));
+ 
+             --  BIPalloc
+ 
+             if Etype (Formal) = Standard_Natural then
+                Actual := Make_Integer_Literal (Loc, Uint_0);
+                Analyze_And_Resolve (Actual, Standard_Natural);
+                Add_Extra_Actual_To_Call (N, Formal, Actual);
+ 
+             --  BIPtaskmaster
+ 
+             elsif Etype (Formal) = Standard_Integer then
+                Actual := Make_Integer_Literal (Loc, Uint_0);
+                Analyze_And_Resolve (Actual, Standard_Integer);
+                Add_Extra_Actual_To_Call (N, Formal, Actual);
+ 
+             --  BIPstoragepool, BIPfinalizationmaster, BIPactivationchain,
+             --  and BIPaccess.
+ 
+             elsif Is_Access_Type (Etype (Formal)) then
+                Actual := Make_Null (Loc);
+                Analyze_And_Resolve (Actual, Etype (Formal));
+                Add_Extra_Actual_To_Call (N, Formal, Actual);
+ 
+             else
+                pragma Assert (False);
+                raise Program_Error;
+             end if;
+ 
+             Formal := Extra_Formal (Formal);
+          end loop;
+ 
+          --  Mark the call as processed build-in-place call; required
+          --  to avoid adding the extra formals twice.
+ 
+          Set_Is_Expanded_Build_In_Place_Call (Call_Node);
+ 
+          pragma Assert (Check_Number_Of_Actuals (Call_Node, Function_Id));
+          pragma Assert (Check_BIP_Actuals (Call_Node, Function_Id));
+       end Add_Dummy_Build_In_Place_Actuals;
+ 
        ----------------------
        -- Add_Extra_Actual --
        ----------------------
*************** package body Exp_Ch6 is
*** 3343,3348 ****
--- 3647,3653 ----
             or else No (Aspect)
  
             --  Do not fold if multiple applicable predicate aspects
+            or else Has_Ghost_Predicate_Aspect (Subt)
             or else Has_Aspect (Subt, Aspect_Static_Predicate)
             or else Has_Aspect (Subt, Aspect_Predicate)
             or else Augments_Other_Dynamic_Predicate (Aspect)
*************** package body Exp_Ch6 is
*** 4096,4108 ****
                 --  Generate the accessibility level based on the expression in
                 --  the constant's declaration.
  
!                Add_Extra_Actual
!                  (Expr => Accessibility_Level
!                             (Expr            => Expression
!                                                   (Parent (Entity (Prev))),
!                              Level           => Dynamic_Level,
!                              Allow_Alt_Model => False),
!                   EF   => Extra_Accessibility (Formal));
  
              --  Normal case
  
--- 4401,4423 ----
                 --  Generate the accessibility level based on the expression in
                 --  the constant's declaration.
  
!                declare
!                   Ent : Entity_Id := Entity (Prev);
! 
!                begin
!                   --  Handle deferred constants
! 
!                   if Present (Full_View (Ent)) then
!                      Ent := Full_View (Ent);
!                   end if;
! 
!                   Add_Extra_Actual
!                     (Expr => Accessibility_Level
!                                (Expr            => Expression (Parent (Ent)),
!                                 Level           => Dynamic_Level,
!                                 Allow_Alt_Model => False),
!                      EF   => Extra_Accessibility (Formal));
!                end;
  
              --  Normal case
  
*************** package body Exp_Ch6 is
*** 4364,4370 ****
              --  It may be possible that we are re-expanding an already
              --  expanded call when are are dealing with dispatching ???
  
!             if not Present (Parameter_Associations (Call_Node))
                or else Nkind (Last (Parameter_Associations (Call_Node)))
                          /= N_Parameter_Association
                or else not Is_Accessibility_Actual
--- 4679,4685 ----
              --  It may be possible that we are re-expanding an already
              --  expanded call when are are dealing with dispatching ???
  
!             if No (Parameter_Associations (Call_Node))
                or else Nkind (Last (Parameter_Associations (Call_Node)))
                          /= N_Parameter_Association
                or else not Is_Accessibility_Actual
*************** package body Exp_Ch6 is
*** 4576,4585 ****
        --  During that loop we gathered the extra actuals (the ones that
        --  correspond to Extra_Formals), so now they can be appended.
  
!       else
!          while Is_Non_Empty_List (Extra_Actuals) loop
!             Add_Actual_Parameter (Remove_Head (Extra_Actuals));
!          end loop;
        end if;
  
        --  At this point we have all the actuals, so this is the point at which
--- 4891,4925 ----
        --  During that loop we gathered the extra actuals (the ones that
        --  correspond to Extra_Formals), so now they can be appended.
  
!       elsif Is_Non_Empty_List (Extra_Actuals) then
!          declare
!             Num_Extra_Actuals : constant Nat := List_Length (Extra_Actuals);
! 
!          begin
!             while Is_Non_Empty_List (Extra_Actuals) loop
!                Add_Actual_Parameter (Remove_Head (Extra_Actuals));
!             end loop;
! 
!             --  Add dummy extra BIP actuals if we are calling a function that
!             --  inherited the BIP extra actuals but does not require them.
! 
!             if Nkind (Call_Node) = N_Function_Call
!               and then Is_Function_Call_With_BIP_Formals (Call_Node)
!               and then not Is_Build_In_Place_Function_Call (Call_Node)
!             then
!                Add_Dummy_Build_In_Place_Actuals (Subp,
!                  Num_Added_Extra_Actuals => Num_Extra_Actuals);
!             end if;
!          end;
! 
!       --  Add dummy extra BIP actuals if we are calling a function that
!       --  inherited the BIP extra actuals but does not require them.
! 
!       elsif Nkind (Call_Node) = N_Function_Call
!         and then Is_Function_Call_With_BIP_Formals (Call_Node)
!         and then not Is_Build_In_Place_Function_Call (Call_Node)
!       then
!          Add_Dummy_Build_In_Place_Actuals (Subp);
        end if;
  
        --  At this point we have all the actuals, so this is the point at which
*************** package body Exp_Ch6 is
*** 5099,5133 ****
     is
        Par : constant Node_Id := Parent (N);
  
-       function Is_Element_Reference (N : Node_Id) return Boolean;
-       --  Determine whether node N denotes a reference to an Ada 2012 container
-       --  element.
- 
-       --------------------------
-       -- Is_Element_Reference --
-       --------------------------
- 
-       function Is_Element_Reference (N : Node_Id) return Boolean is
-          Ref : constant Node_Id := Original_Node (N);
- 
-       begin
-          --  Analysis marks an element reference by setting the generalized
-          --  indexing attribute of an indexed component before the component
-          --  is rewritten into a function call.
- 
-          return
-            Nkind (Ref) = N_Indexed_Component
-              and then Present (Generalized_Indexing (Ref));
-       end Is_Element_Reference;
- 
-    --  Start of processing for Expand_Ctrl_Function_Call
- 
     begin
        --  Optimization: if the returned value is returned again, then no need
        --  to copy/readjust/finalize, we can just pass the value through (see
        --  Expand_N_Simple_Return_Statement), and thus no attachment is needed.
  
!       if Nkind (Par) = N_Simple_Return_Statement then
           return;
        end if;
  
--- 5439,5458 ----
     is
        Par : constant Node_Id := Parent (N);
  
     begin
        --  Optimization: if the returned value is returned again, then no need
        --  to copy/readjust/finalize, we can just pass the value through (see
        --  Expand_N_Simple_Return_Statement), and thus no attachment is needed.
+       --  Note that simple return statements are distributed into conditional
+       --  expressions but we may be invoked before this distribution is done.
  
!       if Nkind (Par) = N_Simple_Return_Statement
!         or else (Nkind (Par) = N_If_Expression
!                   and then Nkind (Parent (Par)) = N_Simple_Return_Statement)
!         or else (Nkind (Par) = N_Case_Expression_Alternative
!                   and then
!                     Nkind (Parent (Parent (Par))) = N_Simple_Return_Statement)
!       then
           return;
        end if;
  
*************** package body Exp_Ch6 is
*** 5135,5143 ****
        --  object, then no need to copy/readjust/finalize, we can initialize it
        --  in place. However, if the call returns on the secondary stack, then
        --  we need the expansion because we'll be renaming the temporary as the
!       --  (permanent) object.
  
!       if Nkind (Par) = N_Object_Declaration and then not Use_Sec_Stack then
           return;
        end if;
  
--- 5460,5472 ----
        --  object, then no need to copy/readjust/finalize, we can initialize it
        --  in place. However, if the call returns on the secondary stack, then
        --  we need the expansion because we'll be renaming the temporary as the
!       --  (permanent) object. We also apply it in the case of the expression of
!       --  a delta aggregate, since it is used only to initialize a temporary.
  
!       if Nkind (Par) in N_Object_Declaration | N_Delta_Aggregate
!         and then Expression (Par) = N
!         and then not Use_Sec_Stack
!       then
           return;
        end if;
  
*************** package body Exp_Ch6 is
*** 5146,5176 ****
  
        Set_Analyzed (N);
  
!       --  Apply the transformation, unless it was already applied manually
  
        if Nkind (Par) /= N_Reference then
           Remove_Side_Effects (N);
        end if;
- 
-       --  The side effect removal of the function call produced a temporary.
-       --  When the context is a case expression, if expression, or expression
-       --  with actions, the lifetime of the temporary must be extended to match
-       --  that of the context. Otherwise the function result will be finalized
-       --  too early and affect the result of the expression. To prevent this
-       --  unwanted effect, the temporary should not be considered for clean up
-       --  actions by the general finalization machinery.
- 
-       --  Exception to this rule are references to Ada 2012 container elements.
-       --  Such references must be finalized at the end of each iteration of the
-       --  related quantified expression, otherwise the container will remain
-       --  busy.
- 
-       if Nkind (N) = N_Explicit_Dereference
-         and then Within_Case_Or_If_Expression (N)
-         and then not Is_Element_Reference (N)
-       then
-          Set_Is_Ignored_Transient (Entity (Prefix (N)));
-       end if;
     end Expand_Ctrl_Function_Call;
  
     ----------------------------------------
--- 5475,5490 ----
  
        Set_Analyzed (N);
  
!       --  Apply the transformation unless it was already applied earlier. This
!       --  may happen because Remove_Side_Effects can be called during semantic
!       --  analysis, for example from Build_Actual_Subtype_Of_Component. It is
!       --  crucial to avoid creating a reference of reference here, because it
!       --  would not be subsequently recognized by the Is_Finalizable_Transient
!       --  and Requires_Cleanup_Actions predicates.
  
        if Nkind (Par) /= N_Reference then
           Remove_Side_Effects (N);
        end if;
     end Expand_Ctrl_Function_Call;
  
     ----------------------------------------
*************** package body Exp_Ch6 is
*** 5312,5360 ****
        --  perform the appropriate cleanup should it fail to return. The state
        --  of the function itself is tracked through a flag which is coupled
        --  with the scope finalizer. There is one flag per each return object
!       --  in case of multiple returns.
! 
!       if Is_BIP_Func and then Needs_Finalization (Etype (Ret_Obj_Id)) then
!          declare
!             Flag_Decl : Node_Id;
!             Flag_Id   : Entity_Id;
!             Func_Bod  : Node_Id;
! 
!          begin
!             --  Recover the function body
! 
!             Func_Bod := Unit_Declaration_Node (Func_Id);
! 
!             if Nkind (Func_Bod) = N_Subprogram_Declaration then
!                Func_Bod := Parent (Parent (Corresponding_Body (Func_Bod)));
!             end if;
! 
!             if Nkind (Func_Bod) = N_Function_Specification then
!                Func_Bod := Parent (Func_Bod); -- one more level for child units
!             end if;
! 
!             pragma Assert (Nkind (Func_Bod) = N_Subprogram_Body);
! 
!             --  Create a flag to track the function state
! 
!             Flag_Id := Make_Temporary (Loc, 'F');
!             Set_Status_Flag_Or_Transient_Decl (Ret_Obj_Id, Flag_Id);
! 
!             --  Insert the flag at the beginning of the function declarations,
!             --  generate:
!             --    Fnn : Boolean := False;
! 
!             Flag_Decl :=
!               Make_Object_Declaration (Loc,
!                 Defining_Identifier => Flag_Id,
!                   Object_Definition =>
!                     New_Occurrence_Of (Standard_Boolean, Loc),
!                   Expression        =>
!                     New_Occurrence_Of (Standard_False, Loc));
  
!             Prepend_To (Declarations (Func_Bod), Flag_Decl);
!             Analyze (Flag_Decl);
!          end;
        end if;
  
        --  Build a simple_return_statement that returns the return object when
--- 5626,5639 ----
        --  perform the appropriate cleanup should it fail to return. The state
        --  of the function itself is tracked through a flag which is coupled
        --  with the scope finalizer. There is one flag per each return object
!       --  in case of multiple extended returns. Note that the flag has already
!       --  been created if the extended return contains a nested return.
  
!       if Needs_Finalization (Etype (Ret_Obj_Id))
!         and then No (Status_Flag_Or_Transient_Decl (Ret_Obj_Id))
!       then
!          Set_Status_Flag_Or_Transient_Decl
!            (Ret_Obj_Id, Build_Flag_For_Function (Func_Id));
        end if;
  
        --  Build a simple_return_statement that returns the return object when
*************** package body Exp_Ch6 is
*** 5413,5424 ****
           --  Update the state of the function right before the object is
           --  returned.
  
!          if Is_BIP_Func and then Needs_Finalization (Etype (Ret_Obj_Id)) then
              declare
                 Flag_Id : constant Entity_Id :=
                             Status_Flag_Or_Transient_Decl (Ret_Obj_Id);
  
              begin
                 --  Generate:
                 --    Fnn := True;
  
--- 5692,5705 ----
           --  Update the state of the function right before the object is
           --  returned.
  
!          if Needs_Finalization (Etype (Ret_Obj_Id)) then
              declare
                 Flag_Id : constant Entity_Id :=
                             Status_Flag_Or_Transient_Decl (Ret_Obj_Id);
  
              begin
+                pragma Assert (Present (Flag_Id));
+ 
                 --  Generate:
                 --    Fnn := True;
  
*************** package body Exp_Ch6 is
*** 5715,5730 ****
  
        --  If local-exception-to-goto optimization active, insert dummy push
        --  statements at start, and dummy pop statements at end, but inhibit
!       --  this if we have No_Exception_Handlers, since they are useless and
!       --  interfere with analysis, e.g. by CodePeer. We also don't need these
!       --  if we're unnesting subprograms because the only purpose of these
!       --  nodes is to ensure we don't set a label in one subprogram and branch
!       --  to it in another.
  
        if (Debug_Flag_Dot_G
             or else Restriction_Active (No_Exception_Propagation))
          and then not Restriction_Active (No_Exception_Handlers)
          and then not CodePeer_Mode
          and then not Unnest_Subprogram_Mode
          and then Is_Non_Empty_List (L)
        then
--- 5996,6013 ----
  
        --  If local-exception-to-goto optimization active, insert dummy push
        --  statements at start, and dummy pop statements at end, but inhibit
!       --  this if we have No_Exception_Handlers or expanding a entry barrier
!       --  function, since they are useless and interfere with analysis (e.g. by
!       --  CodePeer) and other optimizations. We also don't need these if we're
!       --  unnesting subprograms because the only purpose of these nodes is to
!       --  ensure we don't set a label in one subprogram and branch to it in
!       --  another.
  
        if (Debug_Flag_Dot_G
             or else Restriction_Active (No_Exception_Propagation))
          and then not Restriction_Active (No_Exception_Handlers)
          and then not CodePeer_Mode
+         and then not Is_Entry_Barrier_Function (N)
          and then not Unnest_Subprogram_Mode
          and then Is_Non_Empty_List (L)
        then
*************** package body Exp_Ch6 is
*** 6082,6095 ****
        --  return of the previously declared return object.
  
        elsif Kind = E_Return_Statement then
!          Rewrite (N,
!            Make_Simple_Return_Statement (Loc,
!              Expression =>
!                New_Occurrence_Of (First_Entity (Scope_Id), Loc)));
!          Set_Comes_From_Extended_Return_Statement (N);
!          Set_Return_Statement_Entity (N, Scope_Id);
!          Expand_Simple_Function_Return (N);
!          return;
        end if;
  
        pragma Assert (Is_Entry (Scope_Id));
--- 6365,6408 ----
        --  return of the previously declared return object.
  
        elsif Kind = E_Return_Statement then
!          declare
!             Ret_Obj_Id : constant Entity_Id := First_Entity (Scope_Id);
! 
!             Flag_Id : Entity_Id;
! 
!          begin
!             --  Apply the same processing as Expand_N_Extended_Return_Statement
!             --  if the returned object needs finalization actions. Note that we
!             --  are invoked before Expand_N_Extended_Return_Statement but there
!             --  may be multiple nested returns within the extended one.
! 
!             if Needs_Finalization (Etype (Ret_Obj_Id)) then
!                if Present (Status_Flag_Or_Transient_Decl (Ret_Obj_Id)) then
!                   Flag_Id := Status_Flag_Or_Transient_Decl (Ret_Obj_Id);
!                else
!                   Flag_Id :=
!                     Build_Flag_For_Function (Return_Applies_To (Scope_Id));
!                   Set_Status_Flag_Or_Transient_Decl (Ret_Obj_Id, Flag_Id);
!                end if;
! 
!                --  Generate:
!                --    Fnn := True;
! 
!                Insert_Action (N,
!                  Make_Assignment_Statement (Loc,
!                    Name       =>
!                      New_Occurrence_Of (Flag_Id, Loc),
!                    Expression => New_Occurrence_Of (Standard_True, Loc)));
!             end if;
! 
!             Rewrite (N,
!               Make_Simple_Return_Statement (Loc,
!                 Expression => New_Occurrence_Of (Ret_Obj_Id, Loc)));
!             Set_Comes_From_Extended_Return_Statement (N);
!             Set_Return_Statement_Entity (N, Scope_Id);
!             Expand_Simple_Function_Return (N);
!             return;
!          end;
        end if;
  
        pragma Assert (Is_Entry (Scope_Id));
*************** package body Exp_Ch6 is
*** 6182,6191 ****
        --  body subprogram points to itself.
  
        Proc := Current_Scope;
!       while Present (Proc)
!         and then Scope (Proc) /= Scop
!       loop
           Proc := Scope (Proc);
        end loop;
  
        Corr := Protected_Body_Subprogram (Proc);
--- 6495,6507 ----
        --  body subprogram points to itself.
  
        Proc := Current_Scope;
!       while Present (Proc) and then Scope (Proc) /= Scop loop
           Proc := Scope (Proc);
+          if Is_Subprogram (Proc)
+            and then Present (Protected_Subprogram (Proc))
+          then
+             Proc := Protected_Subprogram (Proc);
+          end if;
        end loop;
  
        Corr := Protected_Body_Subprogram (Proc);
*************** package body Exp_Ch6 is
*** 6485,6506 ****
           end if;
        end if;
  
-       --  Assert that if F says "return G(...);"
-       --  then F and G are both b-i-p, or neither b-i-p.
- 
-       if Nkind (Exp) = N_Function_Call then
-          pragma Assert (Ekind (Scope_Id) = E_Function);
- 
-          --  This assertion works fine because Is_Build_In_Place_Function_Call
-          --  returns True for BIP function calls but also for function calls
-          --  that have BIP formals.
- 
-          pragma Assert
-            (Has_BIP_Formals (Scope_Id) =
-             Is_Build_In_Place_Function_Call (Exp));
-          null;
-       end if;
- 
        --  For the case of a simple return that does not come from an
        --  extended return, in the case of build-in-place, we rewrite
        --  "return <expression>;" to be:
--- 6801,6806 ----
*************** package body Exp_Ch6 is
*** 6555,6560 ****
--- 6855,6871 ----
           end;
        end if;
  
+       --  Assert that if F says "return G(...);"
+       --  then F and G are both b-i-p, or neither b-i-p.
+ 
+       if Nkind (Exp) = N_Function_Call then
+          pragma Assert (Ekind (Scope_Id) = E_Function);
+          pragma Assert
+            (Is_Build_In_Place_Function (Scope_Id) =
+             Is_Build_In_Place_Function_Call (Exp));
+          null;
+       end if;
+ 
        --  Here we have a simple return statement that is part of the expansion
        --  of an extended return statement (either written by the user, or
        --  generated by the above code).
*************** package body Exp_Ch6 is
*** 6568,6573 ****
--- 6879,6891 ----
        if Is_Boolean_Type (Exp_Typ) and then Nonzero_Is_True (Exp_Typ) then
           Adjust_Condition (Exp);
           Adjust_Result_Type (Exp, Exp_Typ);
+ 
+          --  The adjustment of the expression may have rewritten the return
+          --  statement itself, e.g. when it is turned into an if expression.
+ 
+          if Nkind (N) /= N_Simple_Return_Statement then
+             return;
+          end if;
        end if;
  
        --  Do validity check if enabled for returns
*************** package body Exp_Ch6 is
*** 6603,6609 ****
              Set_Enclosing_Sec_Stack_Return (N);
           end if;
  
!       elsif Is_Limited_View (R_Type) then
           null;
  
        --  No copy needed for thunks returning interface type objects since
--- 6921,6927 ----
              Set_Enclosing_Sec_Stack_Return (N);
           end if;
  
!       elsif Is_Inherently_Limited_Type (R_Type) then
           null;
  
        --  No copy needed for thunks returning interface type objects since
*************** package body Exp_Ch6 is
*** 6815,6821 ****
  
                 Temp := Make_Temporary (Loc, 'R', Alloc_Node);
  
!                Insert_List_Before_And_Analyze (N, New_List (
                   Make_Full_Type_Declaration (Loc,
                     Defining_Identifier => Acc_Typ,
                     Type_Definition     =>
--- 7133,7139 ----
  
                 Temp := Make_Temporary (Loc, 'R', Alloc_Node);
  
!                Insert_Actions (Exp, New_List (
                   Make_Full_Type_Declaration (Loc,
                     Defining_Identifier => Acc_Typ,
                     Type_Definition     =>
*************** package body Exp_Ch6 is
*** 7835,7840 ****
--- 8153,8218 ----
           raise Program_Error;
        end if;
  
+       declare
+          Result : constant Boolean := Is_Build_In_Place_Function (Function_Id);
+          --  So we can stop here in the debugger
+       begin
+          return Result;
+       end;
+    end Is_Build_In_Place_Function_Call;
+ 
+    ---------------------------------------
+    -- Is_Function_Call_With_BIP_Formals --
+    ---------------------------------------
+ 
+    function Is_Function_Call_With_BIP_Formals (N : Node_Id) return Boolean is
+       Exp_Node    : constant Node_Id := Unqual_Conv (N);
+       Function_Id : Entity_Id;
+ 
+    begin
+       --  Return False if the expander is currently inactive, since awareness
+       --  of build-in-place treatment is only relevant during expansion. Note
+       --  that Is_Build_In_Place_Function, which is called as part of this
+       --  function, is also conditioned this way, but we need to check here as
+       --  well to avoid blowing up on processing protected calls when expansion
+       --  is disabled (such as with -gnatc) since those would trip over the
+       --  raise of Program_Error below.
+ 
+       --  In SPARK mode, build-in-place calls are not expanded, so that we
+       --  may end up with a call that is neither resolved to an entity, nor
+       --  an indirect call.
+ 
+       if not Expander_Active or else Nkind (Exp_Node) /= N_Function_Call then
+          return False;
+       end if;
+ 
+       if Is_Entity_Name (Name (Exp_Node)) then
+          Function_Id := Entity (Name (Exp_Node));
+ 
+       --  In the case of an explicitly dereferenced call, use the subprogram
+       --  type generated for the dereference.
+ 
+       elsif Nkind (Name (Exp_Node)) = N_Explicit_Dereference then
+          Function_Id := Etype (Name (Exp_Node));
+ 
+       --  This may be a call to a protected function.
+ 
+       elsif Nkind (Name (Exp_Node)) = N_Selected_Component then
+          --  The selector in question might not have been analyzed due to a
+          --  previous error, so analyze it here to output the appropriate
+          --  error message instead of crashing when attempting to fetch its
+          --  entity.
+ 
+          if not Analyzed (Selector_Name (Name (Exp_Node))) then
+             Analyze (Selector_Name (Name (Exp_Node)));
+          end if;
+ 
+          Function_Id := Etype (Entity (Selector_Name (Name (Exp_Node))));
+ 
+       else
+          raise Program_Error;
+       end if;
+ 
        if Is_Build_In_Place_Function (Function_Id) then
           return True;
  
*************** package body Exp_Ch6 is
*** 7858,7864 ****
              end if;
           end;
        end if;
!    end Is_Build_In_Place_Function_Call;
  
     -----------------------------------
     -- Is_Build_In_Place_Result_Type --
--- 8236,8242 ----
              end if;
           end;
        end if;
!    end Is_Function_Call_With_BIP_Formals;
  
     -----------------------------------
     -- Is_Build_In_Place_Result_Type --
*************** package body Exp_Ch6 is
*** 7875,7881 ****
        --  of a function with a limited interface result, where the function
        --  may return objects of nonlimited descendants.
  
!       return Is_Limited_View (Typ)
          and then Ada_Version >= Ada_2005
          and then not Debug_Flag_Dot_L;
     end Is_Build_In_Place_Result_Type;
--- 8253,8259 ----
        --  of a function with a limited interface result, where the function
        --  may return objects of nonlimited descendants.
  
!       return Is_Inherently_Limited_Type (Typ)
          and then Ada_Version >= Ada_2005
          and then not Debug_Flag_Dot_L;
     end Is_Build_In_Place_Result_Type;
*************** package body Exp_Ch6 is
*** 9240,9246 ****
          and then not No_Run_Time_Mode
          and then (Has_Task (Typ)
                      or else (Is_Class_Wide_Type (Typ)
!                                and then Is_Limited_Record (Etype (Typ))
                                 and then not Has_Aspect
                                   (Etype (Typ), Aspect_No_Task_Parts)));
     end Might_Have_Tasks;
--- 9618,9624 ----
          and then not No_Run_Time_Mode
          and then (Has_Task (Typ)
                      or else (Is_Class_Wide_Type (Typ)
!                                and then Is_Limited_Record (Typ)
                                 and then not Has_Aspect
                                   (Etype (Typ), Aspect_No_Task_Parts)));
     end Might_Have_Tasks;
*************** package body Exp_Ch6 is
*** 9352,9360 ****
        --  types, and those can be used to call primitives, so the formal needs
        --  to be passed to all such build-in-place functions, primitive or not.
  
        return not Restriction_Active (No_Secondary_Stack)
          and then (Needs_Secondary_Stack (Typ) or else Is_Tagged_Type (Typ))
!         and then not Has_Foreign_Convention (Typ);
     end Needs_BIP_Alloc_Form;
  
     -------------------------------------
--- 9730,9743 ----
        --  types, and those can be used to call primitives, so the formal needs
        --  to be passed to all such build-in-place functions, primitive or not.
  
+       --  We never use build-in-place if the function has foreign convention,
+       --  but note that it is OK for a build-in-place function to return a
+       --  type with a foreign convention because the machinery ensures there
+       --  is no copying.
+ 
        return not Restriction_Active (No_Secondary_Stack)
          and then (Needs_Secondary_Stack (Typ) or else Is_Tagged_Type (Typ))
!         and then not Has_Foreign_Convention (Func_Id);
     end Needs_BIP_Alloc_Form;
  
     -------------------------------------
*************** package body Exp_Ch6 is
*** 9756,9761 ****
--- 10139,10145 ----
                 return Skip;
  
              when N_Abstract_Subprogram_Declaration
+                | N_Aspect_Specification
                 | N_At_Clause
                 | N_Call_Marker
                 | N_Empty
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch6.ads gcc-14.1.0/gcc/ada/exp_ch6.ads
*** gcc-13.2.0/gcc/ada/exp_ch6.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch6.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch6 is
*** 159,166 ****
     function Is_Build_In_Place_Function_Call (N : Node_Id) return Boolean;
     --  Ada 2005 (AI-318-02): Returns True if N denotes a call to a function
     --  that requires handling as a build-in-place call (possibly qualified or
!    --  converted); that is, BIP function calls, and calls to functions with
!    --  inherited BIP formals.
  
     function Is_Build_In_Place_Result_Type (Typ : Entity_Id) return Boolean;
     --  Ada 2005 (AI-318-02): Returns True if functions returning the type use
--- 159,165 ----
     function Is_Build_In_Place_Function_Call (N : Node_Id) return Boolean;
     --  Ada 2005 (AI-318-02): Returns True if N denotes a call to a function
     --  that requires handling as a build-in-place call (possibly qualified or
!    --  converted).
  
     function Is_Build_In_Place_Result_Type (Typ : Entity_Id) return Boolean;
     --  Ada 2005 (AI-318-02): Returns True if functions returning the type use
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch7.adb gcc-14.1.0/gcc/ada/exp_ch7.adb
*** gcc-13.2.0/gcc/ada/exp_ch7.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch7.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Uintp;          use Uintp;
*** 70,128 ****
  
  package body Exp_Ch7 is
  
-    --------------------------------
-    -- Transient Scope Management --
-    --------------------------------
- 
-    --  A transient scope is needed when certain temporary objects are created
-    --  by the compiler. These temporary objects are allocated on the secondary
-    --  stack and/or need finalization, and the transient scope is responsible
-    --  for finalizing the objects and reclaiming the memory of the secondary
-    --  stack at the appropriate time. They are generally objects allocated to
-    --  store the result of a function returning an unconstrained or controlled
-    --  value. Expressions needing to be wrapped in a transient scope may appear
-    --  in three different contexts which lead to different kinds of transient
-    --  scope expansion:
- 
-    --   1. In a simple statement (procedure call, assignment, ...). In this
-    --      case the instruction is wrapped into a transient block. See
-    --      Wrap_Transient_Statement for details.
- 
-    --   2. In an expression of a control structure (test in a IF statement,
-    --      expression in a CASE statement, ...). See Wrap_Transient_Expression
-    --      for details.
- 
-    --   3. In a expression of an object_declaration. No wrapping is possible
-    --      here, so the finalization actions, if any, are done right after the
-    --      declaration and the secondary stack deallocation is done in the
-    --      proper enclosing scope. See Wrap_Transient_Declaration for details.
- 
-    --------------------------------------------------
-    -- Transient Blocks and Finalization Management --
-    --------------------------------------------------
- 
-    procedure Insert_Actions_In_Scope_Around
-      (N         : Node_Id;
-       Clean     : Boolean;
-       Manage_SS : Boolean);
-    --  Insert the before-actions kept in the scope stack before N, and the
-    --  after-actions after N, which must be a member of a list. If flag Clean
-    --  is set, insert any cleanup actions. If flag Manage_SS is set, insert
-    --  calls to mark and release the secondary stack.
- 
-    function Make_Transient_Block
-      (Loc    : Source_Ptr;
-       Action : Node_Id;
-       Par    : Node_Id) return Node_Id;
-    --  Action is a single statement or object declaration. Par is the proper
-    --  parent of the generated block. Create a transient block whose name is
-    --  the current scope and the only handled statement is Action. If Action
-    --  involves controlled objects or secondary stack usage, the corresponding
-    --  cleanup actions are performed at the end of the block.
- 
-    procedure Store_Actions_In_Scope (AK : Scope_Action_Kind; L : List_Id);
-    --  Shared processing for Store_xxx_Actions_In_Scope
- 
     -----------------------------
     -- Finalization Management --
     -----------------------------
--- 70,75 ----
*************** package body Exp_Ch7 is
*** 281,309 ****
     --  does not contain the above constructs, the routine returns an empty
     --  list.
  
-    procedure Build_Finalizer
-      (N           : Node_Id;
-       Clean_Stmts : List_Id;
-       Mark_Id     : Entity_Id;
-       Top_Decls   : List_Id;
-       Defer_Abort : Boolean;
-       Fin_Id      : out Entity_Id);
-    --  N may denote an accept statement, block, entry body, package body,
-    --  package spec, protected body, subprogram body, or a task body. Create
-    --  a procedure which contains finalization calls for all controlled objects
-    --  declared in the declarative or statement region of N. The calls are
-    --  built in reverse order relative to the original declarations. In the
-    --  case of a task body, the routine delays the creation of the finalizer
-    --  until all statements have been moved to the task body procedure.
-    --  Clean_Stmts may contain additional context-dependent code used to abort
-    --  asynchronous calls or complete tasks (see Build_Cleanup_Statements).
-    --  Mark_Id is the secondary stack used in the current context or Empty if
-    --  missing. Top_Decls is the list on which the declaration of the finalizer
-    --  is attached in the non-package case. Defer_Abort indicates that the
-    --  statements passed in perform actions that require abort to be deferred,
-    --  such as for task termination. Fin_Id is the finalizer declaration
-    --  entity.
- 
     procedure Build_Finalizer_Call (N : Node_Id; Fin_Id : Entity_Id);
     --  N is a construct that contains a handled sequence of statements, Fin_Id
     --  is the entity of a finalizer. Create an At_End handler that covers the
--- 228,233 ----
*************** package body Exp_Ch7 is
*** 315,320 ****
--- 239,322 ----
     --  Build the deep Initialize/Adjust/Finalize for a record Typ with
     --  Has_Component_Component set and store them using the TSS mechanism.
  
+    --------------------------------
+    -- Transient Scope Management --
+    --------------------------------
+ 
+    --  A transient scope is needed when certain temporary objects are created
+    --  by the compiler. These temporary objects are allocated on the secondary
+    --  stack and/or need finalization, and the transient scope is responsible
+    --  for finalizing the objects and reclaiming the memory of the secondary
+    --  stack at the appropriate time. They are generally objects allocated to
+    --  store the result of a function returning an unconstrained or controlled
+    --  value. Expressions needing to be wrapped in a transient scope may appear
+    --  in three different contexts, which lead to different kinds of transient
+    --  scope expansion:
+ 
+    --   1. In a simple statement (procedure call, assignment, ...). In this
+    --      case the statement is wrapped into a transient block, which takes
+    --      care of the finalization actions as well as the secondary stack
+    --      deallocation, See Wrap_Transient_Statement for details.
+ 
+    --   2. In an expression of a control structure (test in a If statement,
+    --      expression in a Case statement, ...). In this case the expression
+    --      is replaced by a temporary and the enclosing statement is wrapped
+    --      into a transient block, which takes care of the finalization actions
+    --      and the secondary stack deallocation. See Wrap_Transient_Expression
+    --      for details.
+ 
+    --   3. In an expression of an object declaration. No wrapping is possible
+    --      here, so the finalization actions performed on the normal path, if
+    --      any, are done right after the declaration, and those performed on
+    --      the exceptional path, as well as the secondary stack deallocation,
+    --      are deferred to the enclosing scope. See Wrap_Transient_Declaration
+    --      for details.
+ 
+    --  A transient scope is created by calling Establish_Transient_Scope on the
+    --  node that needs to be serviced by it (the serviced node can subsequently
+    --  be retrieved by invoking Node_To_Be_Wrapped when the current scope is a
+    --  transient scope). Once this has been done, the normal processing of the
+    --  Insert_Actions procedures is blocked and the procedures are redirected
+    --  to the Store_xxx_Actions_In_Scope procedures and Store_Actions_In_Scope
+    --  is ultimately invoked to store the pending actions.
+ 
+    --  A transient scope is finalized by calling one of the Wrap_Transient_xxx
+    --  procedures depending on the context as explained above. They ultimately
+    --  invoke Insert_Actions_In_Scope_Around as per the following picture:
+ 
+    --            Wrap_Transient_Expression          Wrap_Transient_Statement
+    --                                  |              |
+    --                                  V              V
+    --                                Make_Transient_Block
+    --                                        |
+    --   Wrap_Transient_Declaration           |
+    --                          |             |
+    --                          V             V
+    --                       Insert_Actions_In_Scope_Around
+ 
+    procedure Insert_Actions_In_Scope_Around
+      (N         : Node_Id;
+       Clean     : Boolean;
+       Manage_SS : Boolean);
+    --  Insert the before-actions kept in the scope stack before N, and the
+    --  after-actions after N, which must be a member of a list. If Clean is
+    --  true, insert any cleanup actions kept in the scope stack and generate
+    --  required finalization actions for the before-actions and after-actions.
+    --  If Manage_SS is true, insert calls to mark/release the secondary stack.
+ 
+    function Make_Transient_Block
+      (Loc    : Source_Ptr;
+       Action : Node_Id;
+       Par    : Node_Id) return Node_Id;
+    --  Action is a single statement or object declaration. Par is the proper
+    --  parent of the generated block. Create a transient block whose name is
+    --  the current scope and the only handled statement is Action. If Action
+    --  involves controlled objects or secondary stack usage, the corresponding
+    --  cleanup actions are performed at the end of the block.
+ 
+    procedure Store_Actions_In_Scope (AK : Scope_Action_Kind; L : List_Id);
+    --  Shared processing for Store_xxx_Actions_In_Scope
+ 
     -------------------------------------------
     -- Unnesting procedures for CCG and LLVM --
     -------------------------------------------
*************** package body Exp_Ch7 is
*** 417,429 ****
     --  Check recursively whether a loop or block contains a subprogram that
     --  may need an activation record.
  
!    function Convert_View
!      (Proc : Entity_Id;
!       Arg  : Node_Id;
!       Ind  : Pos := 1) return Node_Id;
     --  Proc is one of the Initialize/Adjust/Finalize operations, and Arg is the
!    --  argument being passed to it. Ind indicates which formal of procedure
!    --  Proc we are trying to match. This function will, if necessary, generate
     --  a conversion between the partial and full view of Arg to match the type
     --  of the formal of Proc, or force a conversion to the class-wide type in
     --  the case where the operation is abstract.
--- 419,427 ----
     --  Check recursively whether a loop or block contains a subprogram that
     --  may need an activation record.
  
!    function Convert_View (Proc : Entity_Id; Arg  : Node_Id) return Node_Id;
     --  Proc is one of the Initialize/Adjust/Finalize operations, and Arg is the
!    --  argument being passed to it. This function will, if necessary, generate
     --  a conversion between the partial and full view of Arg to match the type
     --  of the formal of Proc, or force a conversion to the class-wide type in
     --  the case where the operation is abstract.
*************** package body Exp_Ch7 is
*** 751,756 ****
--- 749,755 ----
        Desig_Typ : Entity_Id;
        FM_Id     : Entity_Id;
        Priv_View : Entity_Id;
+       Scop      : Entity_Id;
        Unit_Decl : Node_Id;
        Unit_Id   : Entity_Id;
  
*************** package body Exp_Ch7 is
*** 789,794 ****
--- 788,805 ----
           Desig_Typ := Priv_View;
        end if;
  
+       --  For a designated type not declared at library level, we cannot create
+       --  a finalization collection attached to an outer unit since this would
+       --  generate dangling references to the dynamic scope through access-to-
+       --  procedure values designating the local Finalize_Address primitive.
+ 
+       Scop := Enclosing_Dynamic_Scope (Desig_Typ);
+       if Scop /= Standard_Standard
+         and then Scope_Depth (Scop) > Scope_Depth (Unit_Id)
+       then
+          return;
+       end if;
+ 
        --  Determine whether the current semantic unit already has an anonymous
        --  master which services the designated type.
  
*************** package body Exp_Ch7 is
*** 815,821 ****
             Typ   => Typ,
             Stmts => Make_Deep_Array_Body (Initialize_Case, Typ)));
  
!       if not Is_Limited_View (Typ) then
           Set_TSS (Typ,
             Make_Deep_Proc
               (Prim  => Adjust_Case,
--- 826,832 ----
             Typ   => Typ,
             Stmts => Make_Deep_Array_Body (Initialize_Case, Typ)));
  
!       if not Is_Inherently_Limited_Type (Typ) then
           Set_TSS (Typ,
             Make_Deep_Proc
               (Prim  => Adjust_Case,
*************** package body Exp_Ch7 is
*** 1267,1273 ****
  
           --  Associate the Finalize_Address primitive of the designated type
           --  with the finalization master of the access type. The designated
!          --  type must be forzen as Finalize_Address is generated when the
           --  freeze node is expanded.
  
           elsif Is_Frozen (Desig_Typ)
--- 1278,1284 ----
  
           --  Associate the Finalize_Address primitive of the designated type
           --  with the finalization master of the access type. The designated
!          --  type must be frozen, as Finalize_Address is generated when the
           --  freeze node is expanded.
  
           elsif Is_Frozen (Desig_Typ)
*************** package body Exp_Ch7 is
*** 1602,1620 ****
              Prepend_To (Decls, Counter_Typ_Decl);
  
              --  The counter and its associated type must be manually analyzed
!             --  since N has already been analyzed. Use the scope of the spec
!             --  when inserting in a package.
! 
!             if For_Package then
!                Push_Scope (Spec_Id);
!                Analyze (Counter_Typ_Decl);
!                Analyze (Counter_Decl);
!                Pop_Scope;
  
!             else
!                Analyze (Counter_Typ_Decl);
!                Analyze (Counter_Decl);
!             end if;
  
              Jump_Alts := New_List;
           end if;
--- 1613,1622 ----
              Prepend_To (Decls, Counter_Typ_Decl);
  
              --  The counter and its associated type must be manually analyzed
!             --  since N has already been analyzed.
  
!             Analyze (Counter_Typ_Decl);
!             Analyze (Counter_Decl);
  
              Jump_Alts := New_List;
           end if;
*************** package body Exp_Ch7 is
*** 1960,1971 ****
                 Append_To (Decls, Fin_Body);
              end if;
  
-             --  Push the name of the package
- 
-             Push_Scope (Spec_Id);
              Analyze (Fin_Spec);
              Analyze (Fin_Body);
-             Pop_Scope;
  
           --  Non-package case
  
--- 1962,1969 ----
*************** package body Exp_Ch7 is
*** 2138,2143 ****
--- 2136,2144 ----
           --  This variable is used to determine whether a nested package or
           --  instance contains at least one controlled object.
  
+          procedure Process_Package_Body (Decl : Node_Id);
+          --  Process an N_Package_Body node
+ 
           procedure Processing_Actions
             (Has_No_Init  : Boolean := False;
              Is_Protected : Boolean := False);
*************** package body Exp_Ch7 is
*** 2149,2154 ****
--- 2150,2184 ----
           --  Is_Protected should be set when the current declaration denotes a
           --  simple protected object.
  
+          --------------------------
+          -- Process_Package_Body --
+          --------------------------
+ 
+          procedure Process_Package_Body (Decl : Node_Id) is
+          begin
+             --  Do not inspect an ignored Ghost package body because all
+             --  code found within will not appear in the final tree.
+ 
+             if Is_Ignored_Ghost_Entity (Defining_Entity (Decl)) then
+                null;
+ 
+             elsif Ekind (Corresponding_Spec (Decl)) /= E_Generic_Package then
+                Old_Counter_Val := Counter_Val;
+                Process_Declarations (Declarations (Decl), Preprocess);
+ 
+                --  The nested package body is the last construct to contain
+                --  a controlled object.
+ 
+                if Preprocess
+                  and then Top_Level
+                  and then No (Last_Top_Level_Ctrl_Construct)
+                  and then Counter_Val > Old_Counter_Val
+                then
+                   Last_Top_Level_Ctrl_Construct := Decl;
+                end if;
+             end if;
+          end Process_Package_Body;
+ 
           ------------------------
           -- Processing_Actions --
           ------------------------
*************** package body Exp_Ch7 is
*** 2240,2258 ****
                 if For_Package and then Finalize_Storage_Only (Obj_Typ) then
                    null;
  
!                --  Finalization of transient objects are treated separately in
                 --  order to handle sensitive cases. These include:
  
!                --    * Aggregate expansion
!                --    * If, case, and expression with actions expansion
                 --    * Transient scopes
  
!                --  If one of those contexts has marked the transient object as
!                --  ignored, do not generate finalization actions for it.
  
!                elsif Is_Finalized_Transient (Obj_Id)
!                  or else Is_Ignored_Transient (Obj_Id)
!                then
                    null;
  
                 --  Ignored Ghost objects do not need any cleanup actions
--- 2270,2288 ----
                 if For_Package and then Finalize_Storage_Only (Obj_Typ) then
                    null;
  
!                --  Finalization of transient objects is treated separately in
                 --  order to handle sensitive cases. These include:
  
!                --    * Conditional expressions
!                --    * Expressions with actions
                 --    * Transient scopes
  
!                elsif Is_Finalized_Transient (Obj_Id) then
!                   null;
  
!                --  Finalization of specific objects is also treated separately
! 
!                elsif Is_Ignored_For_Finalization (Obj_Id) then
                    null;
  
                 --  Ignored Ghost objects do not need any cleanup actions
*************** package body Exp_Ch7 is
*** 2351,2358 ****
  
                 elsif Ekind (Obj_Id) = E_Variable
                   and then not In_Library_Level_Package_Body (Obj_Id)
!                  and then (Is_Simple_Protected_Type (Obj_Typ)
!                             or else Has_Simple_Protected_Object (Obj_Typ))
                 then
                    Processing_Actions (Is_Protected => True);
                 end if;
--- 2381,2387 ----
  
                 elsif Ekind (Obj_Id) = E_Variable
                   and then not In_Library_Level_Package_Body (Obj_Id)
!                  and then Has_Simple_Protected_Object (Obj_Typ)
                 then
                    Processing_Actions (Is_Protected => True);
                 end if;
*************** package body Exp_Ch7 is
*** 2376,2384 ****
                 elsif Is_Ignored_Ghost_Entity (Obj_Id) then
                    null;
  
!                --  Return object of a build-in-place function. This case is
!                --  recognized and marked by the expansion of an extended return
!                --  statement (see Expand_N_Extended_Return_Statement).
  
                 elsif Needs_Finalization (Obj_Typ)
                   and then Is_Return_Object (Obj_Id)
--- 2405,2413 ----
                 elsif Is_Ignored_Ghost_Entity (Obj_Id) then
                    null;
  
!                --  Return object of extended return statements. This case is
!                --  recognized and marked by the expansion of extended return
!                --  statements (see Expand_N_Extended_Return_Statement).
  
                 elsif Needs_Finalization (Obj_Typ)
                   and then Is_Return_Object (Obj_Id)
*************** package body Exp_Ch7 is
*** 2466,2609 ****
                    end if;
                 end if;
  
-                --  Call the xxx__finalize_body procedure of a library level
-                --  package instantiation if the body contains finalization
-                --  statements.
- 
-                if Present (Generic_Parent (Spec))
-                  and then Is_Library_Level_Entity (Pack_Id)
-                  and then Present (Body_Entity (Generic_Parent (Spec)))
-                then
-                   if Preprocess then
-                      declare
-                         P : Node_Id;
-                      begin
-                         P := Parent (Body_Entity (Generic_Parent (Spec)));
-                         while Present (P)
-                           and then Nkind (P) /= N_Package_Body
-                         loop
-                            P := Parent (P);
-                         end loop;
- 
-                         if Present (P) then
-                            Old_Counter_Val := Counter_Val;
-                            Process_Declarations (Declarations (P), Preprocess);
- 
-                            --  Note that we are processing the generic body
-                            --  template and not the actually instantiation
-                            --  (which is generated too late for us to process
-                            --  it), so there is no need to update in particular
-                            --  Last_Top_Level_Ctrl_Construct here.
- 
-                            if Counter_Val > Old_Counter_Val then
-                               Counter_Val := Old_Counter_Val;
-                               Set_Has_Controlled_Component (Pack_Id);
-                            end if;
-                         end if;
-                      end;
- 
-                   elsif Has_Controlled_Component (Pack_Id) then
- 
-                      --  We import the xxx__finalize_body routine since the
-                      --  generic body will be instantiated later.
- 
-                      declare
-                         Id : constant Node_Id :=
-                           Make_Defining_Identifier (Loc,
-                             New_Finalizer_Name (Defining_Unit_Name (Spec),
-                               For_Spec => False));
- 
-                      begin
-                         Set_Has_Qualified_Name       (Id);
-                         Set_Has_Fully_Qualified_Name (Id);
-                         Set_Is_Imported              (Id);
-                         Set_Has_Completion           (Id);
-                         Set_Interface_Name (Id,
-                           Make_String_Literal (Loc,
-                             Strval => Get_Name_String (Chars (Id))));
- 
-                         Append_New_To (Finalizer_Stmts,
-                           Make_Subprogram_Declaration (Loc,
-                             Make_Procedure_Specification (Loc,
-                               Defining_Unit_Name => Id)));
-                         Append_To (Finalizer_Stmts,
-                           Make_Procedure_Call_Statement (Loc,
-                             Name => New_Occurrence_Of (Id, Loc)));
-                      end;
-                   end if;
-                end if;
- 
              --  Nested package bodies, avoid generics
  
              elsif Nkind (Decl) = N_Package_Body then
  
!                --  Do not inspect an ignored Ghost package body because all
!                --  code found within will not appear in the final tree.
! 
!                if Is_Ignored_Ghost_Entity (Defining_Entity (Decl)) then
!                   null;
! 
!                elsif Ekind (Corresponding_Spec (Decl)) /= E_Generic_Package
!                then
!                   Old_Counter_Val := Counter_Val;
!                   Process_Declarations (Declarations (Decl), Preprocess);
! 
!                   --  The nested package body is the last construct to contain
!                   --  a controlled object.
! 
!                   if Preprocess
!                     and then Top_Level
!                     and then No (Last_Top_Level_Ctrl_Construct)
!                     and then Counter_Val > Old_Counter_Val
!                   then
!                      Last_Top_Level_Ctrl_Construct := Decl;
!                   end if;
!                end if;
! 
!             --  Handle a rare case caused by a controlled transient object
!             --  created as part of a record init proc. The variable is wrapped
!             --  in a block, but the block is not associated with a transient
!             --  scope.
! 
!             elsif Nkind (Decl) = N_Block_Statement
!               and then Inside_Init_Proc
!             then
!                Old_Counter_Val := Counter_Val;
! 
!                if Present (Handled_Statement_Sequence (Decl)) then
!                   Process_Declarations
!                     (Statements (Handled_Statement_Sequence (Decl)),
!                      Preprocess);
!                end if;
! 
!                Process_Declarations (Declarations (Decl), Preprocess);
! 
!                --  Either the declaration or statement list of the block has a
!                --  controlled object.
! 
!                if Preprocess
!                  and then Top_Level
!                  and then No (Last_Top_Level_Ctrl_Construct)
!                  and then Counter_Val > Old_Counter_Val
!                then
!                   Last_Top_Level_Ctrl_Construct := Decl;
!                end if;
! 
!             --  Handle the case where the original context has been wrapped in
!             --  a block to avoid interference between exception handlers and
!             --  At_End handlers. Treat the block as transparent and process its
!             --  contents.
! 
!             elsif Nkind (Decl) = N_Block_Statement
!               and then Is_Finalization_Wrapper (Decl)
              then
!                if Present (Handled_Statement_Sequence (Decl)) then
!                   Process_Declarations
!                     (Statements (Handled_Statement_Sequence (Decl)),
!                      Preprocess);
!                end if;
! 
!                Process_Declarations (Declarations (Decl), Preprocess);
              end if;
  
              Prev_Non_Pragma (Decl);
--- 2495,2509 ----
                    end if;
                 end if;
  
              --  Nested package bodies, avoid generics
  
              elsif Nkind (Decl) = N_Package_Body then
+                Process_Package_Body (Decl);
  
!             elsif Nkind (Decl) = N_Package_Body_Stub
!               and then Present (Library_Unit (Decl))
              then
!                Process_Package_Body (Proper_Body (Unit (Library_Unit (Decl))));
              end if;
  
              Prev_Non_Pragma (Decl);
*************** package body Exp_Ch7 is
*** 3085,3091 ****
        --  Start of processing for Process_Object_Declaration
  
        begin
!          --  Handle the object type and the reference to the object
  
           Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
           Obj_Typ := Base_Type (Etype (Obj_Id));
--- 2985,2993 ----
        --  Start of processing for Process_Object_Declaration
  
        begin
!          --  Handle the object type and the reference to the object. Note
!          --  that objects having simple protected components must retain
!          --  their original form for the processing below to work.
  
           Obj_Ref := New_Occurrence_Of (Obj_Id, Loc);
           Obj_Typ := Base_Type (Etype (Obj_Id));
*************** package body Exp_Ch7 is
*** 3097,3102 ****
--- 2999,3005 ----
  
              elsif Is_Concurrent_Type (Obj_Typ)
                and then Present (Corresponding_Record_Type (Obj_Typ))
+               and then not Is_Protected
              then
                 Obj_Typ := Corresponding_Record_Type (Obj_Typ);
                 Obj_Ref := Unchecked_Convert_To (Obj_Typ, Obj_Ref);
*************** package body Exp_Ch7 is
*** 3259,3270 ****
                    Fin_Stmts := New_List (Fin_Call);
                 end if;
  
!             elsif Has_Simple_Protected_Object (Obj_Typ) then
!                if Is_Record_Type (Obj_Typ) then
!                   Fin_Stmts := Cleanup_Record (Decl, Obj_Ref, Obj_Typ);
!                elsif Is_Array_Type (Obj_Typ) then
!                   Fin_Stmts := Cleanup_Array (Decl, Obj_Ref, Obj_Typ);
!                end if;
              end if;
  
              --  Generate:
--- 3162,3172 ----
                    Fin_Stmts := New_List (Fin_Call);
                 end if;
  
!             elsif Is_Array_Type (Obj_Typ) then
!                Fin_Stmts := Cleanup_Array (Decl, Obj_Ref, Obj_Typ);
! 
!             else
!                Fin_Stmts := Cleanup_Record (Decl, Obj_Ref, Obj_Typ);
              end if;
  
              --  Generate:
*************** package body Exp_Ch7 is
*** 3526,3553 ****
           end if;
        end if;
  
!       --  Do not process nested packages since those are handled by the
!       --  enclosing scope's finalizer. Do not process non-expanded package
!       --  instantiations since those will be re-analyzed and re-expanded.
  
        if For_Package
!         and then
!           (not Is_Library_Level_Entity (Spec_Id)
! 
!             --  Nested packages are library level entities, but do not need to
!             --  be processed separately.
! 
!             or else Scope_Depth (Spec_Id) /= Uint_1
!             or else (Is_Generic_Instance (Spec_Id)
!                       and then Package_Instantiation (Spec_Id) /= N))
! 
!          --  Still need to process package body instantiations which may
!          --  contain objects requiring finalization.
! 
!         and then not
!           (For_Package_Body
!             and then Is_Library_Level_Entity (Spec_Id)
!             and then Is_Generic_Instance (Spec_Id))
        then
           return;
        end if;
--- 3428,3442 ----
           end if;
        end if;
  
!       --  We do not need to process nested packages since they are handled by
!       --  the finalizer of the enclosing scope, including at library level.
!       --  And we do not build two finalizers for an instance without body that
!       --  is a library unit (see Analyze_Package_Instantiation).
  
        if For_Package
!         and then (not Is_Compilation_Unit (Spec_Id)
!                    or else (Is_Generic_Instance (Spec_Id)
!                              and then Package_Instantiation (Spec_Id) = N))
        then
           return;
        end if;
*************** package body Exp_Ch7 is
*** 3555,3560 ****
--- 3444,3453 ----
        --  Step 2: Object [pre]processing
  
        if For_Package then
+          --  For package specs and bodies, we are invoked from the Standard
+          --  scope, so we need to push the specs onto the scope stack first.
+ 
+          Push_Scope (Spec_Id);
  
           --  Preprocess the visible declarations now in order to obtain the
           --  correct number of controlled object by the time the private
*************** package body Exp_Ch7 is
*** 3632,3637 ****
--- 3525,3536 ----
        if Acts_As_Clean or Has_Ctrl_Objs or Has_Tagged_Types then
           Create_Finalizer;
        end if;
+ 
+       --  Pop the scope that was pushed above for package specs and bodies
+ 
+       if For_Package then
+          Pop_Scope;
+       end if;
     end Build_Finalizer;
  
     --------------------------
*************** package body Exp_Ch7 is
*** 3905,3911 ****
             Typ   => Typ,
             Stmts => Make_Deep_Record_Body (Initialize_Case, Typ)));
  
!       if not Is_Limited_View (Typ) then
           Set_TSS (Typ,
             Make_Deep_Proc
               (Prim  => Adjust_Case,
--- 3804,3810 ----
             Typ   => Typ,
             Stmts => Make_Deep_Record_Body (Initialize_Case, Typ)));
  
!       if not Is_Inherently_Limited_Type (Typ) then
           Set_TSS (Typ,
             Make_Deep_Proc
               (Prim  => Adjust_Case,
*************** package body Exp_Ch7 is
*** 4470,4475 ****
--- 4369,4400 ----
     begin
        E := First_Entity (Blk);
  
+       --  The compiler may generate loops with a declare block containing
+       --  nested procedures used for finalization. Recursively search for
+       --  subprograms in such constructs.
+ 
+       if Ekind (Blk) = E_Loop
+         and then Parent_Kind (Blk) = N_Loop_Statement
+       then
+          declare
+             Stmt : Node_Id := First (Statements (Parent (Blk)));
+          begin
+             while Present (Stmt) loop
+                if Nkind (Stmt) = N_Block_Statement then
+                   declare
+                      Id : constant Entity_Id :=
+                               Entity (Identifier (Stmt));
+                   begin
+                      if Contains_Subprogram (Id) then
+                         return True;
+                      end if;
+                   end;
+                end if;
+                Next (Stmt);
+             end loop;
+          end;
+       end if;
+ 
        while Present (E) loop
           if Is_Subprogram (E) then
              return True;
*************** package body Exp_Ch7 is
*** 4490,4511 ****
     -- Convert_View --
     ------------------
  
!    function Convert_View
!      (Proc : Entity_Id;
!       Arg  : Node_Id;
!       Ind  : Pos := 1) return Node_Id
!    is
!       Fent : Entity_Id := First_Entity (Proc);
!       Ftyp : Entity_Id;
        Atyp : Entity_Id;
  
     begin
-       for J in 2 .. Ind loop
-          Next_Entity (Fent);
-       end loop;
- 
-       Ftyp := Etype (Fent);
- 
        if Nkind (Arg) in N_Type_Conversion | N_Unchecked_Type_Conversion then
           Atyp := Entity (Subtype_Mark (Arg));
        else
--- 4415,4426 ----
     -- Convert_View --
     ------------------
  
!    function Convert_View (Proc : Entity_Id; Arg  : Node_Id) return Node_Id is
!       Ftyp : constant Entity_Id := Etype (First_Formal (Proc));
! 
        Atyp : Entity_Id;
  
     begin
        if Nkind (Arg) in N_Type_Conversion | N_Unchecked_Type_Conversion then
           Atyp := Entity (Subtype_Mark (Arg));
        else
*************** package body Exp_Ch7 is
*** 4515,4525 ****
        if Is_Abstract_Subprogram (Proc) and then Is_Tagged_Type (Ftyp) then
           return Unchecked_Convert_To (Class_Wide_Type (Ftyp), Arg);
  
!       elsif Ftyp /= Atyp
!         and then Present (Atyp)
!         and then (Is_Private_Type (Ftyp) or else Is_Private_Type (Atyp))
!         and then Base_Type (Underlying_Type (Atyp)) =
!                  Base_Type (Underlying_Type (Ftyp))
        then
           return Unchecked_Convert_To (Ftyp, Arg);
  
--- 4430,4442 ----
        if Is_Abstract_Subprogram (Proc) and then Is_Tagged_Type (Ftyp) then
           return Unchecked_Convert_To (Class_Wide_Type (Ftyp), Arg);
  
!       elsif Present (Atyp)
!         and then Atyp /= Ftyp
!         and then (Is_Private_Type (Ftyp)
!                    or else Is_Private_Type (Atyp)
!                    or else Is_Private_Type (Base_Type (Atyp)))
!         and then Implementation_Base_Type (Atyp) =
!                  Implementation_Base_Type (Ftyp)
        then
           return Unchecked_Convert_To (Ftyp, Arg);
  
*************** package body Exp_Ch7 is
*** 4564,4573 ****
        function Is_Package_Or_Subprogram (Id : Entity_Id) return Boolean;
        --  Determine whether arbitrary Id denotes a package or subprogram [body]
  
!       function Find_Enclosing_Transient_Scope return Entity_Id;
        --  Examine the scope stack looking for the nearest enclosing transient
        --  scope within the innermost enclosing package or subprogram. Return
!       --  Empty if no such scope exists.
  
        function Find_Transient_Context (N : Node_Id) return Node_Id;
        --  Locate a suitable context for arbitrary node N which may need to be
--- 4481,4490 ----
        function Is_Package_Or_Subprogram (Id : Entity_Id) return Boolean;
        --  Determine whether arbitrary Id denotes a package or subprogram [body]
  
!       function Find_Enclosing_Transient_Scope return Int;
        --  Examine the scope stack looking for the nearest enclosing transient
        --  scope within the innermost enclosing package or subprogram. Return
!       --  its index in the table or else -1 if no such scope exists.
  
        function Find_Transient_Context (N : Node_Id) return Node_Id;
        --  Locate a suitable context for arbitrary node N which may need to be
*************** package body Exp_Ch7 is
*** 4602,4608 ****
  
           Push_Scope (Trans_Scop);
           Scope_Stack.Table (Scope_Stack.Last).Node_To_Be_Wrapped := Context;
!          Set_Scope_Is_Transient;
  
           --  The transient scope must also manage the secondary stack
  
--- 4519,4525 ----
  
           Push_Scope (Trans_Scop);
           Scope_Stack.Table (Scope_Stack.Last).Node_To_Be_Wrapped := Context;
!          Scope_Stack.Table (Scope_Stack.Last).Is_Transient := True;
  
           --  The transient scope must also manage the secondary stack
  
*************** package body Exp_Ch7 is
*** 4693,4699 ****
        -- Find_Enclosing_Transient_Scope --
        ------------------------------------
  
!       function Find_Enclosing_Transient_Scope return Entity_Id is
        begin
           for Index in reverse Scope_Stack.First .. Scope_Stack.Last loop
              declare
--- 4610,4616 ----
        -- Find_Enclosing_Transient_Scope --
        ------------------------------------
  
!       function Find_Enclosing_Transient_Scope return Int is
        begin
           for Index in reverse Scope_Stack.First .. Scope_Stack.Last loop
              declare
*************** package body Exp_Ch7 is
*** 4708,4719 ****
                    exit;
  
                 elsif Scope.Is_Transient then
!                   return Scope.Entity;
                 end if;
              end;
           end loop;
  
!          return Empty;
        end Find_Enclosing_Transient_Scope;
  
        ----------------------------
--- 4625,4636 ----
                    exit;
  
                 elsif Scope.Is_Transient then
!                   return Index;
                 end if;
              end;
           end loop;
  
!          return -1;
        end Find_Enclosing_Transient_Scope;
  
        ----------------------------
*************** package body Exp_Ch7 is
*** 4805,4825 ****
                    return Curr;
  
                 when N_Simple_Return_Statement =>
  
!                   --  A return statement is not a valid transient context when
!                   --  the function itself requires transient scope management
!                   --  because the result will be reclaimed too early.
  
!                   if Requires_Transient_Scope (Etype
!                        (Return_Applies_To (Return_Statement_Entity (Curr))))
!                   then
!                      return Empty;
  
!                   --  General case for return statements
  
!                   else
!                      return Curr;
!                   end if;
  
                 --  Special
  
--- 4722,4750 ----
                    return Curr;
  
                 when N_Simple_Return_Statement =>
+                   declare
+                      Fun_Id : constant Entity_Id :=
+                        Return_Applies_To (Return_Statement_Entity (Curr));
  
!                   begin
!                      --  A transient context that must manage the secondary
!                      --  stack cannot be a return statement of a function that
!                      --  itself requires secondary stack management, because
!                      --  the function's result would be reclaimed too early.
!                      --  And returns of thunks never require transient scopes.
  
!                      if (Manage_Sec_Stack
!                           and then Needs_Secondary_Stack (Etype (Fun_Id)))
!                        or else Is_Thunk (Fun_Id)
!                      then
!                         return Empty;
  
!                      --  General case for return statements
  
!                      else
!                         return Curr;
!                      end if;
!                   end;
  
                 --  Special
  
*************** package body Exp_Ch7 is
*** 4902,4909 ****
  
        --  Local variables
  
!       Trans_Id : constant Entity_Id := Find_Enclosing_Transient_Scope;
!       Context  : Node_Id;
  
     --  Start of processing for Establish_Transient_Scope
  
--- 4827,4834 ----
  
        --  Local variables
  
!       Trans_Idx : constant Int := Find_Enclosing_Transient_Scope;
!       Context   : Node_Id;
  
     --  Start of processing for Establish_Transient_Scope
  
*************** package body Exp_Ch7 is
*** 4911,4923 ****
        --  Do not create a new transient scope if there is already an enclosing
        --  transient scope within the innermost enclosing package or subprogram.
  
!       if Present (Trans_Id) then
  
           --  If the transient scope was requested for purposes of managing the
!          --  secondary stack, then the existing scope must perform this task.
  
           if Manage_Sec_Stack then
!             Set_Uses_Sec_Stack (Trans_Id);
           end if;
  
           return;
--- 4836,4864 ----
        --  Do not create a new transient scope if there is already an enclosing
        --  transient scope within the innermost enclosing package or subprogram.
  
!       if Trans_Idx >= 0 then
  
           --  If the transient scope was requested for purposes of managing the
!          --  secondary stack, then the existing scope must perform this task,
!          --  unless the node to be wrapped is a return statement of a function
!          --  that requires secondary stack management, because the function's
!          --  result would be reclaimed too early (see Find_Transient_Context).
  
           if Manage_Sec_Stack then
!             declare
!                SE : Scope_Stack_Entry renames Scope_Stack.Table (Trans_Idx);
! 
!             begin
!                if Nkind (SE.Node_To_Be_Wrapped) /= N_Simple_Return_Statement
!                  or else not
!                    Needs_Secondary_Stack
!                      (Etype
!                        (Return_Applies_To
!                          (Return_Statement_Entity (SE.Node_To_Be_Wrapped))))
!                then
!                   Set_Uses_Sec_Stack (SE.Entity);
!                end if;
!             end;
           end if;
  
           return;
*************** package body Exp_Ch7 is
*** 5033,5048 ****
  
        if not Actions_Required then
           return;
- 
-       --  If the current node is a rewritten task body and the descriptors have
-       --  not been delayed (due to some nested instantiations), do not generate
-       --  redundant cleanup actions.
- 
-       elsif Is_Task_Body
-         and then Nkind (N) = N_Subprogram_Body
-         and then not Delay_Subprogram_Descriptors (Corresponding_Spec (N))
-       then
-          return;
        end if;
  
        --  If an extended return statement contains something like
--- 4974,4979 ----
*************** package body Exp_Ch7 is
*** 5177,5183 ****
--- 5108,5116 ----
     --  Encode entity names in package body
  
     procedure Expand_N_Package_Body (N : Node_Id) is
+       Id      : constant Entity_Id := Defining_Entity (N);
        Spec_Id : constant Entity_Id := Corresponding_Spec (N);
+ 
        Fin_Id  : Entity_Id;
  
     begin
*************** package body Exp_Ch7 is
*** 5231,5237 ****
  
        Qualify_Entity_Names (N);
  
!       if Ekind (Spec_Id) /= E_Generic_Package then
           Build_Finalizer
             (N           => N,
              Clean_Stmts => No_List,
--- 5164,5172 ----
  
        Qualify_Entity_Names (N);
  
!       if Ekind (Spec_Id) /= E_Generic_Package
!         and then not Delay_Cleanups (Id)
!       then
           Build_Finalizer
             (N           => N,
              Clean_Stmts => No_List,
*************** package body Exp_Ch7 is
*** 5241,5256 ****
              Fin_Id      => Fin_Id);
  
           if Present (Fin_Id) then
!             declare
!                Body_Ent : Node_Id := Defining_Unit_Name (N);
! 
!             begin
!                if Nkind (Body_Ent) = N_Defining_Program_Unit_Name then
!                   Body_Ent := Defining_Identifier (Body_Ent);
!                end if;
! 
!                Set_Finalizer (Body_Ent, Fin_Id);
!             end;
           end if;
        end if;
     end Expand_N_Package_Body;
--- 5176,5182 ----
              Fin_Id      => Fin_Id);
  
           if Present (Fin_Id) then
!             Set_Finalizer (Defining_Entity (N), Fin_Id);
           end if;
        end if;
     end Expand_N_Package_Body;
*************** package body Exp_Ch7 is
*** 5367,5373 ****
  
        Qualify_Entity_Names (N);
  
!       if Ekind (Id) /= E_Generic_Package then
           Build_Finalizer
             (N           => N,
              Clean_Stmts => No_List,
--- 5293,5301 ----
  
        Qualify_Entity_Names (N);
  
!       if Ekind (Id) /= E_Generic_Package
!         and then not Delay_Cleanups (Id)
!       then
           Build_Finalizer
             (N           => N,
              Clean_Stmts => No_List,
*************** package body Exp_Ch7 is
*** 5376,5382 ****
              Defer_Abort => False,
              Fin_Id      => Fin_Id);
  
!          Set_Finalizer (Id, Fin_Id);
        end if;
  
        --  If this is a library-level package and unnesting is enabled,
--- 5304,5312 ----
              Defer_Abort => False,
              Fin_Id      => Fin_Id);
  
!          if Present (Fin_Id) then
!             Set_Finalizer (Id, Fin_Id);
!          end if;
        end if;
  
        --  If this is a library-level package and unnesting is enabled,
*************** package body Exp_Ch7 is
*** 5749,5757 ****
              Blk_Ins   := Last_Object;
           end if;
  
!          if Clean then
!             Insert_List_After_And_Analyze (Blk_Ins, Act_Cleanup);
!          end if;
  
           --  Examine all objects in the list First_Object .. Last_Object
  
--- 5679,5685 ----
              Blk_Ins   := Last_Object;
           end if;
  
!          Insert_List_After_And_Analyze (Blk_Ins, Act_Cleanup);
  
           --  Examine all objects in the list First_Object .. Last_Object
  
*************** package body Exp_Ch7 is
*** 5932,5944 ****
             (Last_Obj, Build_SS_Release_Call (Loc, Mark_Id));
        end if;
  
!       --  Check for transient objects associated with Target and generate the
!       --  appropriate finalization actions for them.
  
!       Process_Transients_In_Scope
!         (First_Object => First_Obj,
!          Last_Object  => Last_Obj,
!          Related_Node => Target);
  
        --  Reset the action lists
  
--- 5860,5874 ----
             (Last_Obj, Build_SS_Release_Call (Loc, Mark_Id));
        end if;
  
!       --  If we are handling cleanups, check for transient objects associated
!       --  with Target and generate the required finalization actions for them.
  
!       if Clean then
!          Process_Transients_In_Scope
!            (First_Object => First_Obj,
!             Last_Object  => Last_Obj,
!             Related_Node => Target);
!       end if;
  
        --  Reset the action lists
  
*************** package body Exp_Ch7 is
*** 8474,8479 ****
--- 8404,8411 ----
               Param     => Ref,
               Skip_Self => Skip_Self);
        else
+          pragma Assert (Serious_Errors_Detected > 0
+                         or else not Has_Controlled_Component (Utyp));
           return Empty;
        end if;
     end Make_Final_Call;
*************** package body Exp_Ch7 is
*** 8597,8603 ****
            Is_Empty_Elmt_List (Discriminant_Constraint (Root_Type (Typ)))
        then
           declare
!             Parent_Typ : Entity_Id;
  
           begin
              --  Climb the parent type chain looking for a non-constrained type
--- 8529,8536 ----
            Is_Empty_Elmt_List (Discriminant_Constraint (Root_Type (Typ)))
        then
           declare
!             Parent_Typ  : Entity_Id;
!             Parent_Utyp : Entity_Id;
  
           begin
              --  Climb the parent type chain looking for a non-constrained type
*************** package body Exp_Ch7 is
*** 8618,8624 ****
                 Parent_Typ := Underlying_Record_View (Parent_Typ);
              end if;
  
!             Desig_Typ := Class_Wide_Type (Underlying_Type (Parent_Typ));
           end;
  
        --  General case
--- 8551,8580 ----
                 Parent_Typ := Underlying_Record_View (Parent_Typ);
              end if;
  
!             Parent_Utyp := Underlying_Type (Parent_Typ);
! 
!             --  Handle views created for a synchronized private extension with
!             --  known, non-defaulted discriminants. In that case, parent_typ
!             --  will be the private extension, as it is the first "non
!             --  -constrained" type in the parent chain. Unfortunately, the
!             --  underlying type, being a protected or task type, is not the
!             --  "real" type needing finalization. Rather, the "corresponding
!             --  record type" should be the designated type here. In fact, TSS
!             --  finalizer generation is specifically skipped for the nominal
!             --  class-wide type of (the full view of) a concurrent type (see
!             --  exp_ch7.Expand_Freeze_Class_Wide_Type). If we don't designate
!             --  the underlying record (Tprot_typeVC), we will end up trying to
!             --  dispatch to prot_typeVDF from an incorrectly designated
!             --  Tprot_typeC, which is, of course, not actually a member of
!             --  prot_typeV'Class, and thus incompatible.
! 
!             if Ekind (Parent_Utyp) in Concurrent_Kind
!               and then Present (Corresponding_Record_Type (Parent_Utyp))
!             then
!                Parent_Utyp := Corresponding_Record_Type (Parent_Utyp);
!             end if;
! 
!             Desig_Typ := Class_Wide_Type (Parent_Utyp);
           end;
  
        --  General case
*************** package body Exp_Ch7 is
*** 9411,9427 ****
     -----------------
  
     procedure Unnest_Loop (Loop_Stmt : Node_Id) is
        Loc        : constant Source_Ptr := Sloc (Loop_Stmt);
        Ent        : Entity_Id;
        Local_Body : Node_Id;
        Local_Call : Node_Id;
        Local_Proc : Entity_Id;
-       Local_Scop : Entity_Id;
        Loop_Copy  : constant Node_Id :=
                       Relocate_Node (Loop_Stmt);
     begin
!       Local_Scop := Entity (Identifier (Loop_Stmt));
!       Ent := First_Entity (Local_Scop);
  
        Local_Proc := Make_Temporary (Loc, 'P');
  
--- 9367,9433 ----
     -----------------
  
     procedure Unnest_Loop (Loop_Stmt : Node_Id) is
+ 
+       procedure Fixup_Inner_Scopes (Loop_Stmt : Node_Id);
+       --  The loops created by the compiler for array aggregates can have
+       --  nested finalization procedure when the type of the array components
+       --  needs finalization. It has the following form:
+ 
+       --  for J4b in 10 .. 12 loop
+       --     declare
+       --        procedure __finalizer;
+       --     begin
+       --        procedure __finalizer is
+       --          ...
+       --        end;
+       --        ...
+       --        obj (J4b) := ...;
+ 
+       --  When the compiler creates the N_Block_Statement, it sets its scope to
+       --  the upper scope (the one containing the loop).
+ 
+       --  The Unnest_Loop procedure moves the N_Loop_Statement inside a new
+       --  procedure and correctly sets the scopes for both the new procedure
+       --  and the loop entity. The inner block scope is not modified and this
+       --  leaves the Tree in an incoherent state (i.e. the inner procedure must
+       --  have its enclosing procedure in its scope ancestries).
+ 
+       --  This procedure fixes the scope links.
+ 
+       --  Another (better) fix would be to have the block scope set to be the
+       --  loop entity earlier (when the block is created or when the loop gets
+       --  an actual entity set). But unfortunately this proved harder to
+       --  implement ???
+ 
+       procedure Fixup_Inner_Scopes (Loop_Stmt : Node_Id) is
+          Stmt          : Node_Id            := First (Statements (Loop_Stmt));
+          Loop_Stmt_Ent : constant Entity_Id := Entity (Identifier (Loop_Stmt));
+          Ent_To_Fix    : Entity_Id;
+       begin
+          while Present (Stmt) loop
+             if Nkind (Stmt) = N_Block_Statement
+               and then Is_Abort_Block (Stmt)
+             then
+                Ent_To_Fix := Entity (Identifier (Stmt));
+                Set_Scope (Ent_To_Fix, Loop_Stmt_Ent);
+             elsif Nkind (Stmt) = N_Loop_Statement then
+                Fixup_Inner_Scopes (Stmt);
+             end if;
+             Next (Stmt);
+          end loop;
+       end Fixup_Inner_Scopes;
+ 
        Loc        : constant Source_Ptr := Sloc (Loop_Stmt);
        Ent        : Entity_Id;
        Local_Body : Node_Id;
        Local_Call : Node_Id;
+       Loop_Ent   : Entity_Id;
        Local_Proc : Entity_Id;
        Loop_Copy  : constant Node_Id :=
                       Relocate_Node (Loop_Stmt);
     begin
!       Loop_Ent := Entity (Identifier (Loop_Stmt));
!       Ent := First_Entity (Loop_Ent);
  
        Local_Proc := Make_Temporary (Loc, 'P');
  
*************** package body Exp_Ch7 is
*** 9450,9457 ****
        --  New procedure has the same scope as the original loop, and the scope
        --  of the loop is the new procedure.
  
!       Set_Scope (Local_Proc, Scope (Local_Scop));
!       Set_Scope (Local_Scop, Local_Proc);
  
        --  The entity list of the new procedure is that of the loop
  
--- 9456,9465 ----
        --  New procedure has the same scope as the original loop, and the scope
        --  of the loop is the new procedure.
  
!       Set_Scope (Local_Proc, Scope (Loop_Ent));
!       Set_Scope (Loop_Ent, Local_Proc);
! 
!       Fixup_Inner_Scopes (Loop_Copy);
  
        --  The entity list of the new procedure is that of the loop
  
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch7.ads gcc-14.1.0/gcc/ada/exp_ch7.ads
*** gcc-13.2.0/gcc/ada/exp_ch7.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch7.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Ch7 is
*** 118,123 ****
--- 118,146 ----
     --  finalization master must be analyzed. Insertion_Node is the insertion
     --  point before which the master is to be inserted.
  
+    procedure Build_Finalizer
+      (N           : Node_Id;
+       Clean_Stmts : List_Id;
+       Mark_Id     : Entity_Id;
+       Top_Decls   : List_Id;
+       Defer_Abort : Boolean;
+       Fin_Id      : out Entity_Id);
+    --  N may denote an accept statement, block, entry body, package body,
+    --  package spec, protected body, subprogram body, or a task body. Create
+    --  a procedure which contains finalization calls for all controlled objects
+    --  declared in the declarative or statement region of N. The calls are
+    --  built in reverse order relative to the original declarations. In the
+    --  case of a task body, the routine delays the creation of the finalizer
+    --  until all statements have been moved to the task body procedure.
+    --  Clean_Stmts may contain additional context-dependent code used to abort
+    --  asynchronous calls or complete tasks (see Build_Cleanup_Statements).
+    --  Mark_Id is the secondary stack used in the current context or Empty if
+    --  missing. Top_Decls is the list on which the declaration of the finalizer
+    --  is attached in the non-package case. Defer_Abort indicates that the
+    --  statements passed in perform actions that require abort to be deferred,
+    --  such as for task termination. Fin_Id is the finalizer declaration
+    --  entity.
+ 
     procedure Build_Late_Proc (Typ : Entity_Id; Nam : Name_Id);
     --  Build one controlling procedure when a late body overrides one of the
     --  controlling operations.
*************** package Exp_Ch7 is
*** 153,158 ****
--- 176,187 ----
     --  triggered by an abort, E_Id denotes the defining identifier of a local
     --  exception occurrence, Raised_Id is the entity of a local boolean flag.
  
+    procedure Expand_Cleanup_Actions (N : Node_Id);
+    --  Expand the necessary stuff into a scope to enable finalization of local
+    --  objects and deallocation of transient data when exiting the scope. N is
+    --  one of N_Block_Statement, N_Subprogram_Body, N_Task_Body, N_Entry_Body,
+    --  or N_Extended_Return_Statement.
+ 
     function Make_Adjust_Call
       (Obj_Ref   : Node_Id;
        Typ       : Entity_Id;
*************** package Exp_Ch7 is
*** 252,263 ****
     -- Transient Scope Management --
     --------------------------------
  
-    procedure Expand_Cleanup_Actions (N : Node_Id);
-    --  Expand the necessary stuff into a scope to enable finalization of local
-    --  objects and deallocation of transient data when exiting the scope. N is
-    --  one of N_Block_Statement, N_Subprogram_Body, N_Task_Body, N_Entry_Body,
-    --  or N_Extended_Return_Statement.
- 
     procedure Establish_Transient_Scope
       (N                : Node_Id;
        Manage_Sec_Stack : Boolean);
--- 281,286 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch8.adb gcc-14.1.0/gcc/ada/exp_ch8.adb
*** gcc-13.2.0/gcc/ada/exp_ch8.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch8.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch8 is
*** 294,303 ****
        begin
           Set_Alias (Id, Empty);
           Set_Has_Completion (Id, False);
           Rewrite (N,
             Make_Subprogram_Declaration (Loc,
               Specification => Specification (N)));
-          Set_Has_Delayed_Freeze (Id);
  
           Body_Id := Make_Defining_Identifier (Loc, Chars (Id));
           Set_Debug_Info_Needed (Body_Id);
--- 294,303 ----
        begin
           Set_Alias (Id, Empty);
           Set_Has_Completion (Id, False);
+          Set_Has_Delayed_Freeze (Id);
           Rewrite (N,
             Make_Subprogram_Declaration (Loc,
               Specification => Specification (N)));
  
           Body_Id := Make_Defining_Identifier (Loc, Chars (Id));
           Set_Debug_Info_Needed (Body_Id);
*************** package body Exp_Ch8 is
*** 306,311 ****
--- 306,312 ----
              Decl :=
                Build_Variant_Record_Equality
                  (Typ         => Typ,
+                  Spec_Id     => Id,
                   Body_Id     => Body_Id,
                   Param_Specs => Copy_Parameter_List (Id));
  
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch8.ads gcc-14.1.0/gcc/ada/exp_ch8.ads
*** gcc-13.2.0/gcc/ada/exp_ch8.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch8.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch9.adb gcc-14.1.0/gcc/ada/exp_ch9.adb
*** gcc-13.2.0/gcc/ada/exp_ch9.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch9.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Ch9 is
*** 154,161 ****
     --  N is the enclosing construct.
  
     function Build_Entry_Count_Expression
!      (Concurrent_Type : Node_Id;
!       Component_List  : List_Id;
        Loc             : Source_Ptr) return Node_Id;
     --  Compute number of entries for concurrent object. This is a count of
     --  simple entries, followed by an expression that computes the length
--- 154,160 ----
     --  N is the enclosing construct.
  
     function Build_Entry_Count_Expression
!      (Concurrent_Type : Entity_Id;
        Loc             : Source_Ptr) return Node_Id;
     --  Compute number of entries for concurrent object. This is a count of
     --  simple entries, followed by an expression that computes the length
*************** package body Exp_Ch9 is
*** 618,624 ****
  
        Prev := First_Entity (Ttyp);
        while Chars (Prev) /= Chars (Ent)
!         or else (Ekind (Prev) /= Ekind (Ent))
          or else not Sem_Ch6.Type_Conformant (Ent, Prev)
        loop
           if Ekind (Prev) = E_Entry then
--- 617,623 ----
  
        Prev := First_Entity (Ttyp);
        while Chars (Prev) /= Chars (Ent)
!         or else Ekind (Prev) /= Ekind (Ent)
          or else not Sem_Ch6.Type_Conformant (Ent, Prev)
        loop
           if Ekind (Prev) = E_Entry then
*************** package body Exp_Ch9 is
*** 1219,1227 ****
        then
           declare
              Ins_Nod : Node_Id;
  
           begin
-             Set_Has_Master_Entity (Master_Scope);
              Master_Decl := Build_Master_Declaration (Loc);
  
              --  Ensure that the master declaration is placed before its use
--- 1218,1226 ----
        then
           declare
              Ins_Nod : Node_Id;
+             Par_Nod : Node_Id;
  
           begin
              Master_Decl := Build_Master_Declaration (Loc);
  
              --  Ensure that the master declaration is placed before its use
*************** package body Exp_Ch9 is
*** 1231,1236 ****
--- 1230,1259 ----
                 Ins_Nod := Parent (Ins_Nod);
              end loop;
  
+             Par_Nod := Parent (List_Containing (Ins_Nod));
+ 
+             --  For internal blocks created by Wrap_Loop_Statement, Wrap_
+             --  Statements_In_Block, and Build_Abort_Undefer_Block, remember
+             --  that they have a task master entity declaration; required by
+             --  Build_Master_Entity to avoid creating another master entity,
+             --  and also ensures that subsequent calls to Find_Master_Scope
+             --  return this scope as the master scope of Typ.
+ 
+             if Is_Internal_Block (Par_Nod) then
+                Set_Has_Master_Entity (Entity (Identifier (Par_Nod)));
+ 
+             elsif Nkind (Par_Nod) = N_Handled_Sequence_Of_Statements
+               and then Is_Internal_Block (Parent (Par_Nod))
+             then
+                Set_Has_Master_Entity (Entity (Identifier (Parent (Par_Nod))));
+ 
+             --  Otherwise remember that this scope has an associated task
+             --  master entity declaration.
+ 
+             else
+                Set_Has_Master_Entity (Master_Scope);
+             end if;
+ 
              Insert_Before (First (List_Containing (Ins_Nod)), Master_Decl);
              Analyze (Master_Decl);
  
*************** package body Exp_Ch9 is
*** 1404,1417 ****
     ----------------------------------
  
     function Build_Entry_Count_Expression
!      (Concurrent_Type : Node_Id;
!       Component_List  : List_Id;
        Loc             : Source_Ptr) return Node_Id
     is
        Eindx  : Nat;
        Ent    : Entity_Id;
        Ecount : Node_Id;
-       Comp   : Node_Id;
        Lo     : Node_Id;
        Hi     : Node_Id;
        Typ    : Entity_Id;
--- 1427,1438 ----
     ----------------------------------
  
     function Build_Entry_Count_Expression
!      (Concurrent_Type : Entity_Id;
        Loc             : Source_Ptr) return Node_Id
     is
        Eindx  : Nat;
        Ent    : Entity_Id;
        Ecount : Node_Id;
        Lo     : Node_Id;
        Hi     : Node_Id;
        Typ    : Entity_Id;
*************** package body Exp_Ch9 is
*** 1435,1447 ****
        --  Loop through entry families building the addition nodes
  
        Ent := First_Entity (Concurrent_Type);
-       Comp := First (Component_List);
        while Present (Ent) loop
           if Ekind (Ent) = E_Entry_Family then
-             while Chars (Ent) /= Chars (Defining_Identifier (Comp)) loop
-                Next (Comp);
-             end loop;
- 
              Typ := Entry_Index_Type (Ent);
              Hi := Type_High_Bound (Typ);
              Lo := Type_Low_Bound  (Typ);
--- 1456,1463 ----
*************** package body Exp_Ch9 is
*** 3169,3196 ****
           Par := Parent (Obj_Or_Typ);
        end if;
  
-       --  For transient scopes check if the master entity is already defined
- 
-       if Is_Type (Obj_Or_Typ)
-         and then Ekind (Scope (Obj_Or_Typ)) = E_Block
-         and then Is_Internal (Scope (Obj_Or_Typ))
-       then
-          declare
-             Master_Scope : constant Entity_Id :=
-                              Find_Master_Scope (Obj_Or_Typ);
-          begin
-             if Has_Master_Entity (Master_Scope)
-               or else Is_Finalizer (Master_Scope)
-             then
-                return;
-             end if;
- 
-             if Present (Current_Entity_In_Scope (Name_uMaster)) then
-                return;
-             end if;
-          end;
-       end if;
- 
        --  When creating a master for a record component which is either a task
        --  or access-to-task, the enclosing record is the master scope and the
        --  proper insertion point is the component list.
--- 3185,3190 ----
*************** package body Exp_Ch9 is
*** 3398,3403 ****
--- 3392,3398 ----
  
        Loc : constant Source_Ptr := Sloc (N);
  
+       Block_Id  : Entity_Id;
        Bod_Id    : Entity_Id;
        Bod_Spec  : Node_Id;
        Bod_Stmts : List_Id;
*************** package body Exp_Ch9 is
*** 3456,3466 ****
  
        Analyze_Statements (Bod_Stmts);
  
!       Set_Scope (Entity (Identifier (First (Bod_Stmts))),
!                  Protected_Body_Subprogram (Ent));
  
!       Reset_Scopes_To
!         (First (Bod_Stmts), Entity (Identifier (First (Bod_Stmts))));
  
        case Corresponding_Runtime_Package (Pid) is
           when System_Tasking_Protected_Objects_Entries =>
--- 3451,3463 ----
  
        Analyze_Statements (Bod_Stmts);
  
!       Block_Id := Entity (Identifier (First (Bod_Stmts)));
  
!       Set_Scope (Block_Id, Protected_Body_Subprogram (Ent));
!       Set_Uses_Sec_Stack (Block_Id, Uses_Sec_Stack (Corresponding_Spec (N)));
! 
!       Reset_Scopes_To (First (Bod_Stmts), Block_Id);
!       Set_At_End_Proc (First (Bod_Stmts), At_End_Proc (N));
  
        case Corresponding_Runtime_Package (Pid) is
           when System_Tasking_Protected_Objects_Entries =>
*************** package body Exp_Ch9 is
*** 3557,3563 ****
           --  Establish link between subprogram body and source entry body
  
           Set_Corresponding_Entry_Body (Proc_Body, N);
-          Set_At_End_Proc (Proc_Body, At_End_Proc (N));
  
           Reset_Scopes_To (Proc_Body, Protected_Body_Subprogram (Ent));
           return Proc_Body;
--- 3554,3559 ----
*************** package body Exp_Ch9 is
*** 5468,5474 ****
  
        Prev := First_Entity (Ttyp);
        while Chars (Prev) /= Chars (Ent)
!         or else (Ekind (Prev) /= Ekind (Ent))
          or else not Sem_Ch6.Type_Conformant (Ent, Prev)
        loop
           if Ekind (Prev) = E_Entry then
--- 5464,5470 ----
  
        Prev := First_Entity (Ttyp);
        while Chars (Prev) /= Chars (Ent)
!         or else Ekind (Prev) /= Ekind (Ent)
          or else not Sem_Ch6.Type_Conformant (Ent, Prev)
        loop
           if Ekind (Prev) = E_Entry then
*************** package body Exp_Ch9 is
*** 6128,6134 ****
  
        --  Local variables
  
-       Cond_Id    : Entity_Id;
        Entry_Body : Node_Id;
        Func_Body  : Node_Id := Empty;
  
--- 6124,6129 ----
*************** package body Exp_Ch9 is
*** 6195,6224 ****
           Check_Unprotected_Barrier (Cond);
        end if;
  
!       if Is_Entity_Name (Cond) then
!          Cond_Id := Entity (Cond);
! 
!          --  Perform a small optimization of simple barrier functions. If the
!          --  scope of the condition's entity is not the barrier function, then
!          --  the condition does not depend on any of the generated renamings.
!          --  If this is the case, eliminate the renamings as they are useless.
!          --  This optimization is not performed when the condition was folded
!          --  and validity checks are in effect because the original condition
!          --  may have produced at least one check that depends on the generated
!          --  renamings.
! 
!          if Expander_Active
!            and then Scope (Cond_Id) /= Func_Id
!            and then not Validity_Check_Operands
!          then
!             Set_Declarations (Func_Body, Empty_List);
!          end if;
  
!          --  Note that after analysis variables in this context will be
!          --  replaced by the corresponding prival, that is to say a renaming
!          --  of a selected component of the form _Object.Var. If expansion is
!          --  disabled, as within a generic, we check that the entity appears in
!          --  the current scope.
        end if;
     end Expand_Entry_Barrier;
  
--- 6190,6210 ----
           Check_Unprotected_Barrier (Cond);
        end if;
  
!       --  Perform a small optimization of simple barrier functions. If the
!       --  scope of the condition's entity is not the barrier function, then
!       --  the condition does not depend on any of the generated renamings.
!       --  If this is the case, eliminate the renamings as they are useless.
!       --  This optimization is not performed when the condition was folded
!       --  and validity checks are in effect because the original condition
!       --  may have produced at least one check that depends on the generated
!       --  renamings.
  
!       if Expander_Active
!         and then Is_Entity_Name (Cond)
!         and then Scope (Entity (Cond)) /= Func_Id
!         and then not Validity_Check_Operands
!       then
!          Set_Declarations (Func_Body, Empty_List);
        end if;
     end Expand_Entry_Barrier;
  
*************** package body Exp_Ch9 is
*** 7278,7284 ****
              --  Generate:
              --    if K = Ada.Tags.TK_Limited_Tagged
              --         or else K = Ada.Tags.TK_Tagged
!             --       then
              --       Lim_Typ_Stmts
              --    else
              --       Conc_Typ_Stmts
--- 7264,7270 ----
              --  Generate:
              --    if K = Ada.Tags.TK_Limited_Tagged
              --         or else K = Ada.Tags.TK_Tagged
!             --    then
              --       Lim_Typ_Stmts
              --    else
              --       Conc_Typ_Stmts
*************** package body Exp_Ch9 is
*** 7708,7714 ****
     --         or else K = Ada.Tags.TK_Tagged
     --       then
     --          <dispatching-call>;
!    --          <triggering-statements>
  
     --       else
     --          S :=
--- 7694,7700 ----
     --         or else K = Ada.Tags.TK_Tagged
     --       then
     --          <dispatching-call>;
!    --          --  <triggering-statements> (code factorized after if-stmt)
  
     --       else
     --          S :=
*************** package body Exp_Ch9 is
*** 7733,7743 ****
     --                <dispatching-call>;
     --             end if;
  
!    --             <triggering-statements>
     --          else
     --             <else-statements>
     --          end if;
     --       end if;
     --    end;
  
     procedure Expand_N_Conditional_Entry_Call (N : Node_Id) is
--- 7719,7732 ----
     --                <dispatching-call>;
     --             end if;
  
!    --             --  <triggering-statements> (code factorized after if-stmt)
     --          else
     --             <else-statements>
+    --             goto L0; -- skip triggering statements
     --          end if;
     --       end if;
+    --       <triggering-statements>
+    --       L0:
     --    end;
  
     procedure Expand_N_Conditional_Entry_Call (N : Node_Id) is
*************** package body Exp_Ch9 is
*** 7753,7758 ****
--- 7742,7749 ----
        Decl           : Node_Id;
        Decls          : List_Id;
        Formals        : List_Id;
+       Label          : Node_Id;
+       Label_Id       : Entity_Id := Empty;
        Lim_Typ_Stmts  : List_Id;
        N_Stats        : List_Id;
        Obj            : Entity_Id;
*************** package body Exp_Ch9 is
*** 7879,7890 ****
           --       then
           --          <dispatching-call>
           --       end if;
!          --       <normal-statements>
           --    else
           --       <else-statements>
           --    end if;
  
!          N_Stats := New_Copy_Separate_List (Statements (Alt));
  
           Prepend_To (N_Stats,
             Make_Implicit_If_Statement (N,
--- 7870,7882 ----
           --       then
           --          <dispatching-call>
           --       end if;
!          --       --  <triggering-stataments> (code factorized after if-stmt)
           --    else
           --       <else-statements>
+          --       goto L0; --  skip triggering statements
           --    end if;
  
!          N_Stats := New_List;
  
           Prepend_To (N_Stats,
             Make_Implicit_If_Statement (N,
*************** package body Exp_Ch9 is
*** 7918,7923 ****
--- 7910,7923 ----
               Then_Statements =>
                 New_List (Blk)));
  
+          Label_Id := Make_Identifier (Loc, New_External_Name ('L', 0));
+          Set_Entity (Label_Id,
+            Make_Defining_Identifier (Loc, Chars (Label_Id)));
+ 
+          Append_To (Else_Statements (N),
+            Make_Goto_Statement (Loc,
+              Name => New_Occurrence_Of (Entity (Label_Id), Loc)));
+ 
           Append_To (Conc_Typ_Stmts,
             Make_Implicit_If_Statement (N,
               Condition       => New_Occurrence_Of (B, Loc),
*************** package body Exp_Ch9 is
*** 7926,7940 ****
  
           --  Generate:
           --    <dispatching-call>;
!          --    <triggering-statements>
  
!          Lim_Typ_Stmts := New_Copy_Separate_List (Statements (Alt));
!          Prepend_To (Lim_Typ_Stmts, New_Copy_Tree (Blk));
  
           --  Generate:
           --    if K = Ada.Tags.TK_Limited_Tagged
           --         or else K = Ada.Tags.TK_Tagged
!          --       then
           --       Lim_Typ_Stmts
           --    else
           --       Conc_Typ_Stmts
--- 7926,7939 ----
  
           --  Generate:
           --    <dispatching-call>;
!          --    --  <triggering-statements>  (code factorized after if-stmt)
  
!          Lim_Typ_Stmts := New_List (New_Copy_Tree (Blk));
  
           --  Generate:
           --    if K = Ada.Tags.TK_Limited_Tagged
           --         or else K = Ada.Tags.TK_Tagged
!          --    then
           --       Lim_Typ_Stmts
           --    else
           --       Conc_Typ_Stmts
*************** package body Exp_Ch9 is
*** 7946,7951 ****
--- 7945,7959 ----
               Then_Statements => Lim_Typ_Stmts,
               Else_Statements => Conc_Typ_Stmts));
  
+          Label := Make_Label (Loc, Label_Id);
+          Append_To (Decls,
+            Make_Implicit_Label_Declaration (Loc,
+              Defining_Identifier => Entity (Label_Id),
+              Label_Construct     => Label));
+ 
+          Append_List_To (Stmts, Statements (Alt)); --  triggering-statements
+          Append_To (Stmts, Label);
+ 
           Rewrite (N,
             Make_Block_Statement (Loc,
               Declarations =>
*************** package body Exp_Ch9 is
*** 8393,8401 ****
--- 8401,8411 ----
        Current_Node : Node_Id;
        Disp_Op_Body : Node_Id;
        New_Op_Body  : Node_Id;
+       New_Op_Spec  : Node_Id;
        Op_Body      : Node_Id;
        Op_Decl      : Node_Id;
        Op_Id        : Entity_Id;
+       Op_Spec      : Entity_Id;
  
        function Build_Dispatching_Subprogram_Body
          (N        : Node_Id;
*************** package body Exp_Ch9 is
*** 8512,8522 ****
                 null;
  
              when N_Subprogram_Body =>
  
                 --  Do not create bodies for eliminated operations
  
                 if not Is_Eliminated (Defining_Entity (Op_Body))
!                  and then not Is_Eliminated (Corresponding_Spec (Op_Body))
                 then
                    if Lock_Free_Active then
                       New_Op_Body :=
--- 8522,8533 ----
                 null;
  
              when N_Subprogram_Body =>
+                Op_Spec := Corresponding_Spec (Op_Body);
  
                 --  Do not create bodies for eliminated operations
  
                 if not Is_Eliminated (Defining_Entity (Op_Body))
!                  and then not Is_Eliminated (Op_Spec)
                 then
                    if Lock_Free_Active then
                       New_Op_Body :=
*************** package body Exp_Ch9 is
*** 8531,8598 ****
                    Current_Node := New_Op_Body;
                    Analyze (New_Op_Body);
  
!                   --  When the original protected body has nested subprograms,
!                   --  the new body also has them, so set the flag accordingly
!                   --  and reset the scopes of the top-level nested subprograms
                    --  and other declaration entities so that they now refer to
!                   --  the new body's entity. (It would preferable to do this
                    --  within Build_Protected_Sub_Specification, which is called
                    --  from Build_Unprotected_Subprogram_Body, but the needed
                    --  subprogram entity isn't available via Corresponding_Spec
!                   --  until after the above Analyze call.)
! 
!                   if Has_Nested_Subprogram (Corresponding_Spec (Op_Body)) then
!                      Set_Has_Nested_Subprogram
!                        (Corresponding_Spec (New_Op_Body));
  
!                      Reset_Scopes_To
!                        (New_Op_Body, Corresponding_Spec (New_Op_Body));
!                   end if;
  
                    --  Build the corresponding protected operation. This is
                    --  needed only if this is a public or private operation of
                    --  the type.
  
!                   --  Why do we need to test for Corresponding_Spec being
!                   --  present here when it's assumed to be set further above
!                   --  in the Is_Eliminated test???
! 
!                   if Present (Corresponding_Spec (Op_Body)) then
!                      Op_Decl :=
!                        Unit_Declaration_Node (Corresponding_Spec (Op_Body));
! 
!                      if Nkind (Parent (Op_Decl)) = N_Protected_Definition then
!                         if Lock_Free_Active then
!                            New_Op_Body :=
!                              Build_Lock_Free_Protected_Subprogram_Body
!                                (Op_Body, Pid, Specification (New_Op_Body));
!                         else
!                            New_Op_Body :=
!                              Build_Protected_Subprogram_Body (
!                                Op_Body, Pid, Specification (New_Op_Body));
!                         end if;
  
!                         Insert_After (Current_Node, New_Op_Body);
!                         Analyze (New_Op_Body);
!                         Current_Node := New_Op_Body;
  
!                         --  Generate an overriding primitive operation body for
!                         --  this subprogram if the protected type implements
!                         --  an interface.
  
!                         if Ada_Version >= Ada_2005
!                           and then Present (Interfaces (
!                                      Corresponding_Record_Type (Pid)))
!                         then
!                            Disp_Op_Body :=
!                              Build_Dispatching_Subprogram_Body (
!                                Op_Body, Pid, New_Op_Body);
  
!                            Insert_After (Current_Node, Disp_Op_Body);
!                            Analyze (Disp_Op_Body);
  
!                            Current_Node := Disp_Op_Body;
!                         end if;
                       end if;
                    end if;
                 end if;
--- 8542,8608 ----
                    Current_Node := New_Op_Body;
                    Analyze (New_Op_Body);
  
!                   New_Op_Spec := Corresponding_Spec (New_Op_Body);
! 
!                   --  When the original subprogram body has nested subprograms,
!                   --  the new body also has them, so set the flag accordingly.
! 
!                   Set_Has_Nested_Subprogram
!                     (New_Op_Spec, Has_Nested_Subprogram (New_Op_Spec));
! 
!                   --  Similarly, when the original subprogram body uses the
!                   --  secondary stack, the new body also does. This is needed
!                   --  when the cleanup actions of the subprogram are delayed
!                   --  because it contains a package instance with a body.
! 
!                   Set_Uses_Sec_Stack (New_Op_Spec, Uses_Sec_Stack (Op_Spec));
! 
!                   --  Now reset the scopes of the top-level nested subprograms
                    --  and other declaration entities so that they now refer to
!                   --  the new body's entity (it would preferable to do this
                    --  within Build_Protected_Sub_Specification, which is called
                    --  from Build_Unprotected_Subprogram_Body, but the needed
                    --  subprogram entity isn't available via Corresponding_Spec
!                   --  until after the above Analyze call).
  
!                   Reset_Scopes_To (New_Op_Body, New_Op_Spec);
  
                    --  Build the corresponding protected operation. This is
                    --  needed only if this is a public or private operation of
                    --  the type.
  
!                   Op_Decl := Unit_Declaration_Node (Op_Spec);
  
!                   if Nkind (Parent (Op_Decl)) = N_Protected_Definition then
!                      if Lock_Free_Active then
!                         New_Op_Body :=
!                           Build_Lock_Free_Protected_Subprogram_Body
!                             (Op_Body, Pid, Specification (New_Op_Body));
!                      else
!                         New_Op_Body :=
!                           Build_Protected_Subprogram_Body
!                             (Op_Body, Pid, Specification (New_Op_Body));
!                      end if;
  
!                      Insert_After (Current_Node, New_Op_Body);
!                      Current_Node := New_Op_Body;
!                      Analyze (New_Op_Body);
  
!                      --  Generate an overriding primitive operation body for
!                      --  this subprogram if the protected type implements
!                      --  an interface.
  
!                      if Ada_Version >= Ada_2005
!                        and then
!                          Present (Interfaces (Corresponding_Record_Type (Pid)))
!                      then
!                         Disp_Op_Body :=
!                           Build_Dispatching_Subprogram_Body (
!                             Op_Body, Pid, New_Op_Body);
  
!                         Insert_After (Current_Node, Disp_Op_Body);
!                         Current_Node := Disp_Op_Body;
!                         Analyze (Disp_Op_Body);
                       end if;
                    end if;
                 end if;
*************** package body Exp_Ch9 is
*** 9220,9226 ****
           declare
              Entry_Count_Expr   : constant Node_Id :=
                                     Build_Entry_Count_Expression
!                                      (Prot_Typ, Cdecls, Loc);
              Num_Attach_Handler : Nat := 0;
              Protection_Subtype : Node_Id;
              Ritem              : Node_Id;
--- 9230,9236 ----
           declare
              Entry_Count_Expr   : constant Node_Id :=
                                     Build_Entry_Count_Expression
!                                      (Prot_Typ, Loc);
              Num_Attach_Handler : Nat := 0;
              Protection_Subtype : Node_Id;
              Ritem              : Node_Id;
*************** package body Exp_Ch9 is
*** 12730,12736 ****
           --  Generate:
           --    if K = Ada.Tags.TK_Limited_Tagged
           --         or else K = Ada.Tags.TK_Tagged
!          --       then
           --       Lim_Typ_Stmts
           --    else
           --       Conc_Typ_Stmts
--- 12740,12746 ----
           --  Generate:
           --    if K = Ada.Tags.TK_Limited_Tagged
           --         or else K = Ada.Tags.TK_Tagged
!          --    then
           --       Lim_Typ_Stmts
           --    else
           --       Conc_Typ_Stmts
*************** package body Exp_Ch9 is
*** 14204,14210 ****
        Tdec   : Node_Id;
        Tdef   : Node_Id;
        Tnam   : Name_Id;
!       Ttyp   : Node_Id;
  
     begin
        Ttyp := Corresponding_Concurrent_Type (Task_Rec);
--- 14214,14220 ----
        Tdec   : Node_Id;
        Tdef   : Node_Id;
        Tnam   : Name_Id;
!       Ttyp   : Entity_Id;
  
     begin
        Ttyp := Corresponding_Concurrent_Type (Task_Rec);
*************** package body Exp_Ch9 is
*** 14425,14438 ****
  
           --  where a,b... are the entry family names for the task definition
  
!          Ecount :=
!            Build_Entry_Count_Expression
!              (Ttyp,
!               Component_Items
!                 (Component_List
!                    (Type_Definition
!                       (Parent (Corresponding_Record_Type (Ttyp))))),
!               Loc);
           Append_To (Args, Ecount);
  
           --  Master parameter. This is a reference to the _Master parameter of
--- 14435,14441 ----
  
           --  where a,b... are the entry family names for the task definition
  
!          Ecount := Build_Entry_Count_Expression (Ttyp, Loc);
           Append_To (Args, Ecount);
  
           --  Master parameter. This is a reference to the _Master parameter of
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_ch9.ads gcc-14.1.0/gcc/ada/exp_ch9.ads
*** gcc-13.2.0/gcc/ada/exp_ch9.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_ch9.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_code.adb gcc-14.1.0/gcc/ada/exp_code.adb
*** gcc-13.2.0/gcc/ada/exp_code.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_code.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_code.ads gcc-14.1.0/gcc/ada/exp_code.ads
*** gcc-13.2.0/gcc/ada/exp_code.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_code.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_dbug.adb gcc-14.1.0/gcc/ada/exp_dbug.adb
*** gcc-13.2.0/gcc/ada/exp_dbug.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_dbug.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_dbug.ads gcc-14.1.0/gcc/ada/exp_dbug.ads
*** gcc-13.2.0/gcc/ada/exp_dbug.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_dbug.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_disp.adb gcc-14.1.0/gcc/ada/exp_disp.adb
*** gcc-13.2.0/gcc/ada/exp_disp.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_disp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Disp is
*** 537,543 ****
              then
                 Target_List := Priv_Decls;
  
!             elsif not Present (Vis_Decls) then
                 Target_List := New_List;
                 Set_Private_Declarations (Spec, Target_List);
              else
--- 537,543 ----
              then
                 Target_List := Priv_Decls;
  
!             elsif No (Vis_Decls) then
                 Target_List := New_List;
                 Set_Private_Declarations (Spec, Target_List);
              else
*************** package body Exp_Disp is
*** 1040,1049 ****
  
        --  Ada 2005 (AI-251): Abstract interface class-wide type
  
!       elsif Is_Interface (Ctrl_Typ)
!         and then Is_Class_Wide_Type (Ctrl_Typ)
!       then
!          Controlling_Tag := Duplicate_Subexpr (Ctrl_Arg);
  
        elsif Is_Access_Type (Ctrl_Typ) then
           Controlling_Tag :=
--- 1040,1050 ----
  
        --  Ada 2005 (AI-251): Abstract interface class-wide type
  
!       elsif Is_Interface (Ctrl_Typ) and then Is_Class_Wide_Type (Ctrl_Typ) then
!          Controlling_Tag :=
!            Make_Attribute_Reference (Loc,
!              Prefix         => Duplicate_Subexpr (Ctrl_Arg),
!              Attribute_Name => Name_Tag);
  
        elsif Is_Access_Type (Ctrl_Typ) then
           Controlling_Tag :=
*************** package body Exp_Disp is
*** 1132,1149 ****
              Set_SCIL_Controlling_Tag (SCIL_Node,
                Parent (Entity (Prefix (Controlling_Tag))));
  
!          --  For a direct reference of the tag of the type the SCIL node
!          --  references the internal object declaration containing the tag
!          --  of the type.
  
           elsif Nkind (Controlling_Tag) = N_Attribute_Reference
              and then Attribute_Name (Controlling_Tag) = Name_Tag
           then
!             Set_SCIL_Controlling_Tag (SCIL_Node,
!               Parent
!                 (Node
!                   (First_Elmt
!                     (Access_Disp_Table (Entity (Prefix (Controlling_Tag)))))));
  
           --  Interfaces are not supported. For now we leave the SCIL node
           --  decorated with the Controlling_Tag. More work needed here???
--- 1133,1168 ----
              Set_SCIL_Controlling_Tag (SCIL_Node,
                Parent (Entity (Prefix (Controlling_Tag))));
  
!          --  Depending on whether a dereference is involved, the SCIL node
!          --  references the corresponding object/parameter declaration or
!          --  the internal object declaration containing the tag of the type.
  
           elsif Nkind (Controlling_Tag) = N_Attribute_Reference
              and then Attribute_Name (Controlling_Tag) = Name_Tag
           then
!             declare
!                Prefix_Node : constant Node_Id   := Prefix (Controlling_Tag);
!                Ent         : constant Entity_Id := Entity
!                  (if Nkind (Prefix_Node) = N_Explicit_Dereference then
!                     Prefix (Prefix_Node)
!                   else
!                     Prefix_Node);
! 
!             begin
!                if Ekind (Ent) in E_Record_Type
!                                | E_Record_Subtype
!                                | E_Record_Type_With_Private
!                then
!                   Set_SCIL_Controlling_Tag (SCIL_Node,
!                     Parent
!                       (Node
!                         (First_Elmt
!                           (Access_Disp_Table (Ent)))));
! 
!                else
!                   Set_SCIL_Controlling_Tag (SCIL_Node, Parent (Ent));
!                end if;
!             end;
  
           --  Interfaces are not supported. For now we leave the SCIL node
           --  decorated with the Controlling_Tag. More work needed here???
*************** package body Exp_Disp is
*** 1222,1227 ****
--- 1241,1247 ----
     ---------------------------------
  
     procedure Expand_Interface_Conversion (N : Node_Id) is
+ 
        function Underlying_Record_Type (Typ : Entity_Id) return Entity_Id;
        --  Return the underlying record type of Typ
  
*************** package body Exp_Disp is
*** 1327,1338 ****
           --  object to reference the corresponding secondary dispatch table
           --  (cf. Make_DT and Expand_Dispatching_Constructor_Call)).
  
!          --  At this stage we cannot identify whether the underlying object is
!          --  a BIP object and hence we cannot skip generating the code to try
!          --  displacing the pointer to the object. However, under configurable
!          --  runtime it is safe to skip generating code to displace the pointer
!          --  to the object, because generic dispatching constructors are not
!          --  supported.
  
           elsif Is_Interface (Iface_Typ)
             and then Is_Ancestor (Iface_Typ, Opnd, Use_Full_View => True)
--- 1347,1355 ----
           --  object to reference the corresponding secondary dispatch table
           --  (cf. Make_DT and Expand_Dispatching_Constructor_Call)).
  
!          --  Under configurable runtime it is safe to skip generating code to
!          --  displace the pointer to the object, because generic dispatching
!          --  constructors are not supported.
  
           elsif Is_Interface (Iface_Typ)
             and then Is_Ancestor (Iface_Typ, Opnd, Use_Full_View => True)
*************** package body Exp_Disp is
*** 1946,1953 ****
           then
              --  Generate:
              --     type T is access all <<type of the target formal>>
!             --     S : Storage_Offset := Storage_Offset!(Formal)
!             --                            + Offset_To_Top (address!(Formal))
  
              Decl_2 :=
                Make_Full_Type_Declaration (Loc,
--- 1963,1970 ----
           then
              --  Generate:
              --     type T is access all <<type of the target formal>>
!             --     S : constant Address := Address!(Formal)
!             --                               + Offset_To_Top (Address!(Formal))
  
              Decl_2 :=
                Make_Full_Type_Declaration (Loc,
*************** package body Exp_Disp is
*** 1979,1994 ****
                  Defining_Identifier => Make_Temporary (Loc, 'S'),
                  Constant_Present    => True,
                  Object_Definition   =>
!                   New_Occurrence_Of (RTE (RE_Storage_Offset), Loc),
                  Expression          =>
!                   Make_Op_Add (Loc,
!                     Left_Opnd  =>
!                       Unchecked_Convert_To
!                         (RTE (RE_Storage_Offset),
!                          New_Occurrence_Of
!                            (Defining_Identifier (Formal), Loc)),
!                      Right_Opnd =>
!                        Offset_To_Top));
  
              Append_To (Decl, Decl_2);
              Append_To (Decl, Decl_1);
--- 1996,2015 ----
                  Defining_Identifier => Make_Temporary (Loc, 'S'),
                  Constant_Present    => True,
                  Object_Definition   =>
!                   New_Occurrence_Of (RTE (RE_Address), Loc),
                  Expression          =>
!                   Make_Function_Call (Loc,
!                     Name =>
!                       Make_Expanded_Name (Loc,
!                         Chars => Name_Op_Add,
!                         Prefix =>
!                           New_Occurrence_Of
!                             (RTU_Entity (System_Storage_Elements), Loc),
!                         Selector_Name =>
!                           Make_Identifier (Loc, Name_Op_Add)),
!                     Parameter_Associations => New_List (
!                       New_Copy_Tree (New_Arg),
!                       Offset_To_Top)));
  
              Append_To (Decl, Decl_2);
              Append_To (Decl, Decl_1);
*************** package body Exp_Disp is
*** 2004,2019 ****
           elsif Is_Controlling_Formal (Target_Formal) then
  
              --  Generate:
!             --     S1 : Storage_Offset := Storage_Offset!(Formal'Address)
!             --                             + Offset_To_Top (Formal'Address)
!             --     S2 : Addr_Ptr := Addr_Ptr!(S1)
  
              New_Arg :=
                Make_Attribute_Reference (Loc,
                  Prefix =>
                    New_Occurrence_Of (Defining_Identifier (Formal), Loc),
!                 Attribute_Name =>
!                   Name_Address);
  
              if not RTE_Available (RE_Offset_To_Top) then
                 Offset_To_Top :=
--- 2025,2039 ----
           elsif Is_Controlling_Formal (Target_Formal) then
  
              --  Generate:
!             --     S1 : constant Address := Formal'Address
!             --                                + Offset_To_Top (Formal'Address)
!             --     S2 : constant Addr_Ptr := Addr_Ptr!(S1)
  
              New_Arg :=
                Make_Attribute_Reference (Loc,
                  Prefix =>
                    New_Occurrence_Of (Defining_Identifier (Formal), Loc),
!                 Attribute_Name => Name_Address);
  
              if not RTE_Available (RE_Offset_To_Top) then
                 Offset_To_Top :=
*************** package body Exp_Disp is
*** 2030,2048 ****
                  Defining_Identifier => Make_Temporary (Loc, 'S'),
                  Constant_Present    => True,
                  Object_Definition   =>
!                   New_Occurrence_Of (RTE (RE_Storage_Offset), Loc),
                  Expression          =>
!                   Make_Op_Add (Loc,
!                     Left_Opnd =>
!                       Unchecked_Convert_To
!                         (RTE (RE_Storage_Offset),
!                          Make_Attribute_Reference (Loc,
!                            Prefix =>
!                              New_Occurrence_Of
!                                (Defining_Identifier (Formal), Loc),
!                            Attribute_Name => Name_Address)),
!                     Right_Opnd =>
!                       Offset_To_Top));
  
              Decl_2 :=
                Make_Object_Declaration (Loc,
--- 2050,2069 ----
                  Defining_Identifier => Make_Temporary (Loc, 'S'),
                  Constant_Present    => True,
                  Object_Definition   =>
!                   New_Occurrence_Of (RTE (RE_Address), Loc),
                  Expression          =>
!                   Make_Function_Call (Loc,
!                     Name =>
!                       Make_Expanded_Name (Loc,
!                         Chars => Name_Op_Add,
!                         Prefix =>
!                           New_Occurrence_Of
!                             (RTU_Entity (System_Storage_Elements), Loc),
!                         Selector_Name =>
!                           Make_Identifier (Loc, Name_Op_Add)),
!                     Parameter_Associations => New_List (
!                       New_Copy_Tree (New_Arg),
!                       Offset_To_Top)));
  
              Decl_2 :=
                Make_Object_Declaration (Loc,
*************** package body Exp_Disp is
*** 2648,2654 ****
        Def_Id : constant Entity_Id  :=
                   Make_Defining_Identifier (Loc,
                     Name_uDisp_Asynchronous_Select);
!       Params : constant List_Id    := New_List;
  
     begin
        pragma Assert (not Restriction_Active (No_Dispatching_Calls));
--- 2669,2675 ----
        Def_Id : constant Entity_Id  :=
                   Make_Defining_Identifier (Loc,
                     Name_uDisp_Asynchronous_Select);
!       Params : List_Id;
  
     begin
        pragma Assert (not Restriction_Active (No_Dispatching_Calls));
*************** package body Exp_Disp is
*** 2663,2669 ****
  
        Set_Warnings_Off (B_Id);
  
!       Append_List_To (Params, New_List (
  
          Make_Parameter_Specification (Loc,
            Defining_Identifier => Make_Defining_Identifier (Loc, Name_uT),
--- 2684,2690 ----
  
        Set_Warnings_Off (B_Id);
  
!       Params := New_List (
  
          Make_Parameter_Specification (Loc,
            Defining_Identifier => Make_Defining_Identifier (Loc, Name_uT),
*************** package body Exp_Disp is
*** 2688,2694 ****
          Make_Parameter_Specification (Loc,
            Defining_Identifier => Make_Defining_Identifier (Loc, Name_uF),
            Parameter_Type      => New_Occurrence_Of (Standard_Boolean, Loc),
!           Out_Present         => True)));
  
        return
          Make_Procedure_Specification (Loc,
--- 2709,2715 ----
          Make_Parameter_Specification (Loc,
            Defining_Identifier => Make_Defining_Identifier (Loc, Name_uF),
            Parameter_Type      => New_Occurrence_Of (Standard_Boolean, Loc),
!           Out_Present         => True));
  
        return
          Make_Procedure_Specification (Loc,
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_disp.ads gcc-14.1.0/gcc/ada/exp_disp.ads
*** gcc-13.2.0/gcc/ada/exp_disp.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_disp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_dist.adb gcc-14.1.0/gcc/ada/exp_dist.adb
*** gcc-13.2.0/gcc/ada/exp_dist.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_dist.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Dist is
*** 3118,3125 ****
        --  Start of processing for Add_RACW_Read_Attribute
  
        begin
!          Build_Stream_Procedure (Loc,
!            RACW_Type, Body_Node, Pnam, Statements, Outp => True);
           Proc_Decl := Make_Subprogram_Declaration (Loc,
             Copy_Specification (Loc, Specification (Body_Node)));
  
--- 3118,3125 ----
        --  Start of processing for Add_RACW_Read_Attribute
  
        begin
!          Build_Stream_Procedure
!            (RACW_Type, Body_Node, Pnam, Statements, Outp => True);
           Proc_Decl := Make_Subprogram_Declaration (Loc,
             Copy_Specification (Loc, Specification (Body_Node)));
  
*************** package body Exp_Dist is
*** 3354,3360 ****
  
        begin
           Build_Stream_Procedure
!            (Loc, RACW_Type, Body_Node, Pnam, Statements, Outp => False);
  
           Proc_Decl := Make_Subprogram_Declaration (Loc,
             Copy_Specification (Loc, Specification (Body_Node)));
--- 3354,3360 ----
  
        begin
           Build_Stream_Procedure
!            (RACW_Type, Body_Node, Pnam, Statements, Outp => False);
  
           Proc_Decl := Make_Subprogram_Declaration (Loc,
             Copy_Specification (Loc, Specification (Body_Node)));
*************** package body Exp_Dist is
*** 5800,5806 ****
  
        begin
           Build_Stream_Procedure
!            (Loc, RACW_Type, Body_Node, Pnam, Statements, Outp => True);
  
           Proc_Decl := Make_Subprogram_Declaration (Loc,
             Copy_Specification (Loc, Specification (Body_Node)));
--- 5800,5806 ----
  
        begin
           Build_Stream_Procedure
!            (RACW_Type, Body_Node, Pnam, Statements, Outp => True);
  
           Proc_Decl := Make_Subprogram_Declaration (Loc,
             Copy_Specification (Loc, Specification (Body_Node)));
*************** package body Exp_Dist is
*** 6103,6109 ****
  
        begin
           Build_Stream_Procedure
!            (Loc, RACW_Type, Body_Node, Pnam, Statements, Outp => False);
  
           Proc_Decl :=
             Make_Subprogram_Declaration (Loc,
--- 6103,6109 ----
  
        begin
           Build_Stream_Procedure
!            (RACW_Type, Body_Node, Pnam, Statements, Outp => False);
  
           Proc_Decl :=
             Make_Subprogram_Declaration (Loc,
*************** package body Exp_Dist is
*** 8304,8310 ****
              CI := Component_Items (Clist);
              VP := Variant_Part (Clist);
  
!             Item := First (CI);
              while Present (Item) loop
                 Def := Defining_Identifier (Item);
  
--- 8304,8310 ----
              CI := Component_Items (Clist);
              VP := Variant_Part (Clist);
  
!             Item := First_Non_Pragma (CI);
              while Present (Item) loop
                 Def := Defining_Identifier (Item);
  
*************** package body Exp_Dist is
*** 8313,8319 ****
                      (Stmts, Container, Counter, Rec, Def);
                 end if;
  
!                Next (Item);
              end loop;
  
              if Present (VP) then
--- 8313,8319 ----
                      (Stmts, Container, Counter, Rec, Def);
                 end if;
  
!                Next_Non_Pragma (Item);
              end loop;
  
              if Present (VP) then
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_dist.ads gcc-14.1.0/gcc/ada/exp_dist.ads
*** gcc-13.2.0/gcc/ada/exp_dist.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_dist.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_fixd.adb gcc-14.1.0/gcc/ada/exp_fixd.adb
*** gcc-13.2.0/gcc/ada/exp_fixd.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_fixd.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 25,30 ****
--- 25,31 ----
  
  with Atree;          use Atree;
  with Checks;         use Checks;
+ with Debug;          use Debug;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
*************** package body Exp_Fixd is
*** 1624,1636 ****
  
        --  Fall through to use floating-point for the close result set case,
        --  as a result of the numerator or denominator of the small ratio not
!       --  being a sufficiently small integer.
  
        Set_Result (N,
          Build_Multiply (N,
            Fpt_Value (Expr),
            Real_Literal (N, Small_Ratio)),
!         Rng_Check);
     end Expand_Convert_Fixed_To_Fixed;
  
     -----------------------------------
--- 1625,1638 ----
  
        --  Fall through to use floating-point for the close result set case,
        --  as a result of the numerator or denominator of the small ratio not
!       --  being sufficiently small. See also Expand_Convert_Float_To_Fixed.
  
        Set_Result (N,
          Build_Multiply (N,
            Fpt_Value (Expr),
            Real_Literal (N, Small_Ratio)),
!         Rng_Check,
!         Trunc => not Rounded_Result (N));
     end Expand_Convert_Fixed_To_Fixed;
  
     -----------------------------------
*************** package body Exp_Fixd is
*** 1769,1791 ****
        if Small = Ureal_1 then
           Set_Result (N, Expr, Rng_Check, Trunc => True);
  
!       --  Normal case where multiply is required. Rounding is truncating
!       --  for decimal fixed point types only, see RM 4.6(29), except if the
!       --  conversion comes from an attribute reference 'Round (RM 3.5.10 (14)):
!       --  The attribute is implemented by means of a conversion that must
!       --  round.
  
        else
!          Set_Result
!            (N     => N,
!             Expr  =>
!               Build_Multiply
!                 (N => N,
!                  L => Fpt_Value (Expr),
!                  R => Real_Literal (N, Ureal_1 / Small)),
!             Rchk  => Rng_Check,
!             Trunc => Is_Decimal_Fixed_Point_Type (Result_Type)
!                        and not Rounded_Result (N));
        end if;
     end Expand_Convert_Float_To_Fixed;
  
--- 1771,1793 ----
        if Small = Ureal_1 then
           Set_Result (N, Expr, Rng_Check, Trunc => True);
  
!       --  Normal case where multiply is required. The conversion is truncating
!       --  for fixed-point types, see RM 4.6(29), except if the conversion comes
!       --  from an attribute reference 'Round (RM 3.5.10 (14)): the attribute is
!       --  implemented by means of a conversion that needs to round. However, if
!       --  the switch -gnatd.N is specified, we use rounding for ordinary fixed-
!       --  point types, for compatibility with earlier versions of the compiler.
  
        else
!          Set_Result (N,
!            Build_Multiply (N,
!              L => Fpt_Value (Expr),
!              R => Real_Literal (N, Ureal_1 / Small)),
!           Rchk  => Rng_Check,
!           Trunc => not Rounded_Result (N)
!                      and then not
!                        (Debug_Flag_Dot_NN
!                          and then Is_Ordinary_Fixed_Point_Type (Result_Type)));
        end if;
     end Expand_Convert_Float_To_Fixed;
  
*************** package body Exp_Fixd is
*** 1852,1864 ****
  
        --  Fall through to use floating-point for the close result set case,
        --  as a result of the numerator or denominator of the small value not
!       --  being a sufficiently small integer.
  
        Set_Result (N,
          Build_Multiply (N,
            Fpt_Value (Expr),
            Real_Literal (N, Ureal_1 / Small)),
!         Rng_Check);
     end Expand_Convert_Integer_To_Fixed;
  
     --------------------------------
--- 1854,1867 ----
  
        --  Fall through to use floating-point for the close result set case,
        --  as a result of the numerator or denominator of the small value not
!       --  being sufficiently small. See also Expand_Convert_Float_To_Fixed.
  
        Set_Result (N,
          Build_Multiply (N,
            Fpt_Value (Expr),
            Real_Literal (N, Ureal_1 / Small)),
!         Rng_Check,
!         Trunc => not Rounded_Result (N));
     end Expand_Convert_Integer_To_Fixed;
  
     --------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_fixd.ads gcc-14.1.0/gcc/ada/exp_fixd.ads
*** gcc-13.2.0/gcc/ada/exp_fixd.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_fixd.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_imgv.adb gcc-14.1.0/gcc/ada/exp_imgv.adb
*** gcc-13.2.0/gcc/ada/exp_imgv.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_imgv.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Imgv is
*** 61,67 ****
  
     procedure Rewrite_Object_Image
       (N         : Node_Id;
!       Pref      : Entity_Id;
        Attr_Name : Name_Id;
        Str_Typ   : Entity_Id);
     --  AI12-0124: Rewrite attribute 'Image when it is applied to an object
--- 61,67 ----
  
     procedure Rewrite_Object_Image
       (N         : Node_Id;
!       Pref      : Node_Id;
        Attr_Name : Name_Id;
        Str_Typ   : Entity_Id);
     --  AI12-0124: Rewrite attribute 'Image when it is applied to an object
*************** package body Exp_Imgv is
*** 762,768 ****
     --  Snn (1 .. Pnn) then occurs as in the other cases. A special case is
     --  when pragma Discard_Names applies, in which case we replace expr by:
  
!    --     (rt'Pos (expr))'Img
  
     --  So that the result is a space followed by the decimal value for the
     --  position of the enumeration value in the enumeration type.
--- 762,768 ----
     --  Snn (1 .. Pnn) then occurs as in the other cases. A special case is
     --  when pragma Discard_Names applies, in which case we replace expr by:
  
!    --     (rt'Pos (expr))'Image
  
     --  So that the result is a space followed by the decimal value for the
     --  position of the enumeration value in the enumeration type.
*************** package body Exp_Imgv is
*** 1211,1218 ****
             or else No (Lit_Strings (Rtyp))
           then
              --  When pragma Discard_Names applies to the first subtype, build
!             --  (Long_Long_Integer (Pref'Pos (Expr)))'Img. The conversion is
!             --  there to avoid applying 'Img directly in Universal_Integer,
              --  which can be a very large type. See also the handling of 'Val.
  
              Rewrite (N,
--- 1211,1218 ----
             or else No (Lit_Strings (Rtyp))
           then
              --  When pragma Discard_Names applies to the first subtype, build
!             --  (Long_Long_Integer (Pref'Pos (Expr)))'Image. The conversion is
!             --  there to avoid applying 'Image directly in Universal_Integer,
              --  which can be a very large type. See also the handling of 'Val.
  
              Rewrite (N,
*************** package body Exp_Imgv is
*** 1223,1230 ****
                      Prefix         => Pref,
                      Attribute_Name => Name_Pos,
                      Expressions    => New_List (Expr))),
!                 Attribute_Name =>
!                   Name_Img));
              Analyze_And_Resolve (N, Standard_String);
              return;
  
--- 1223,1229 ----
                      Prefix         => Pref,
                      Attribute_Name => Name_Pos,
                      Expressions    => New_List (Expr))),
!                 Attribute_Name => Name_Image));
              Analyze_And_Resolve (N, Standard_String);
              return;
  
*************** package body Exp_Imgv is
*** 1831,1837 ****
  
     procedure Expand_Wide_Image_Attribute (N : Node_Id) is
        Loc  : constant Source_Ptr := Sloc (N);
!       Pref : constant Entity_Id  := Prefix (N);
        Rnn  : constant Entity_Id  := Make_Temporary (Loc, 'S');
        Lnn  : constant Entity_Id  := Make_Temporary (Loc, 'P');
        Rtyp : Entity_Id;
--- 1830,1836 ----
  
     procedure Expand_Wide_Image_Attribute (N : Node_Id) is
        Loc  : constant Source_Ptr := Sloc (N);
!       Pref : constant Node_Id    := Prefix (N);
        Rnn  : constant Entity_Id  := Make_Temporary (Loc, 'S');
        Lnn  : constant Entity_Id  := Make_Temporary (Loc, 'P');
        Rtyp : Entity_Id;
*************** package body Exp_Imgv is
*** 1939,1945 ****
  
     procedure Expand_Wide_Wide_Image_Attribute (N : Node_Id) is
        Loc  : constant Source_Ptr := Sloc (N);
!       Pref : constant Entity_Id  := Prefix (N);
        Rnn  : constant Entity_Id  := Make_Temporary (Loc, 'S');
        Lnn  : constant Entity_Id  := Make_Temporary (Loc, 'P');
        Rtyp : Entity_Id;
--- 1938,1944 ----
  
     procedure Expand_Wide_Wide_Image_Attribute (N : Node_Id) is
        Loc  : constant Source_Ptr := Sloc (N);
!       Pref : constant Node_Id    := Prefix (N);
        Rnn  : constant Entity_Id  := Make_Temporary (Loc, 'S');
        Lnn  : constant Entity_Id  := Make_Temporary (Loc, 'P');
        Rtyp : Entity_Id;
*************** package body Exp_Imgv is
*** 2494,2509 ****
  
     procedure Rewrite_Object_Image
       (N         : Node_Id;
!       Pref      : Entity_Id;
        Attr_Name : Name_Id;
        Str_Typ   : Entity_Id)
     is
     begin
        Rewrite (N,
          Make_Attribute_Reference (Sloc (N),
!           Prefix         => New_Occurrence_Of (Etype (Pref), Sloc (N)),
            Attribute_Name => Attr_Name,
!           Expressions    => New_List (Relocate_Node (Pref))));
  
        Analyze_And_Resolve (N, Str_Typ);
     end Rewrite_Object_Image;
--- 2493,2527 ----
  
     procedure Rewrite_Object_Image
       (N         : Node_Id;
!       Pref      : Node_Id;
        Attr_Name : Name_Id;
        Str_Typ   : Entity_Id)
     is
+       Ptyp : Entity_Id;
+ 
     begin
+       Ptyp := Etype (Pref);
+ 
+       --  If the prefix is a component that depends on a discriminant, then
+       --  create an actual subtype for it.
+ 
+       if Nkind (Pref) = N_Selected_Component then
+          declare
+             Decl : constant Node_Id :=
+                      Build_Actual_Subtype_Of_Component (Ptyp, Pref);
+          begin
+             if Present (Decl) then
+                Insert_Action (N, Decl);
+                Ptyp := Defining_Identifier (Decl);
+             end if;
+          end;
+       end if;
+ 
        Rewrite (N,
          Make_Attribute_Reference (Sloc (N),
!           Prefix         => New_Occurrence_Of (Ptyp, Sloc (N)),
            Attribute_Name => Attr_Name,
!           Expressions    => New_List (Unchecked_Convert_To (Ptyp, Pref))));
  
        Analyze_And_Resolve (N, Str_Typ);
     end Rewrite_Object_Image;
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_imgv.ads gcc-14.1.0/gcc/ada/exp_imgv.ads
*** gcc-13.2.0/gcc/ada/exp_imgv.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_imgv.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_intr.adb gcc-14.1.0/gcc/ada/exp_intr.adb
*** gcc-13.2.0/gcc/ada/exp_intr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_intr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 24,39 ****
  ------------------------------------------------------------------------------
  
  with Atree;          use Atree;
- with Aspects;        use Aspects;
  with Checks;         use Checks;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
- with Errout;         use Errout;
  with Expander;       use Expander;
  with Exp_Atag;       use Exp_Atag;
- with Exp_Ch6;        use Exp_Ch6;
  with Exp_Ch7;        use Exp_Ch7;
  with Exp_Ch11;       use Exp_Ch11;
  with Exp_Code;       use Exp_Code;
--- 24,36 ----
*************** package body Exp_Intr is
*** 102,107 ****
--- 99,110 ----
     --  N_Free_Statement and appropriate context.
  
     procedure Expand_To_Address (N : Node_Id);
+    --  Expand a call to corresponding function from System.Storage_Elements or
+    --  declared in an instance of System.Address_To_Access_Conversions.
+ 
+    procedure Expand_To_Integer (N : Node_Id);
+    --  Expand a call to corresponding function from System.Storage_Elements
+ 
     procedure Expand_To_Pointer (N : Node_Id);
     --  Expand a call to corresponding function, declared in an instance of
     --  System.Address_To_Access_Conversions.
*************** package body Exp_Intr is
*** 282,329 ****
     begin
        pragma Assert (Is_Class_Wide_Type (Etype (Entity (Name (N)))));
  
-       --  Report case where we know that the generated code is wrong; that
-       --  is a dispatching constructor call whose controlling type has tasks
-       --  but its root type does not have tasks. In such case the constructor
-       --  subprogram of the root type does not have extra formals but the
-       --  constructor of the derivation must have extra formals.
- 
-       if not Global_No_Tasking
-         and then not No_Run_Time_Mode
-         and then Is_Build_In_Place_Function (Entity (Name (N)))
-         and then not Has_Task (Root_Type (Etype (Entity (Name (N)))))
-         and then not Has_Aspect (Root_Type (Etype (Entity (Name (N)))),
-                        Aspect_No_Task_Parts)
-       then
-          --  Case 1: Explicit tag reference (which allows static check)
- 
-          if Nkind (Tag_Arg) = N_Identifier
-            and then Present (Entity (Tag_Arg))
-            and then Is_Tag (Entity (Tag_Arg))
-          then
-             if Has_Task (Related_Type (Entity (Tag_Arg))) then
-                Error_Msg_N ("unsupported dispatching constructor call", N);
-                Error_Msg_NE
-                  ("\work around this problem by defining task component "
-                   & "type& using access-to-task-type",
-                   N, Related_Type (Entity (Tag_Arg)));
-             end if;
- 
-          --  Case 2: Dynamic tag which may fail at run time
- 
-          else
-             Error_Msg_N
-               ("unsupported dispatching constructor call if the type "
-                & "of the built object has task components??", N);
- 
-             Error_Msg_Sloc := Sloc (Root_Type (Etype (Entity (Name (N)))));
-             Error_Msg_NE
-               ("\work around this by adding ''with no_task_parts'' to "
-                & "the declaration of the root type& defined#???",
-                N, Root_Type (Etype (Entity (Name (N)))));
-          end if;
-       end if;
- 
        --  Remove side effects from tag argument early, before rewriting
        --  the dispatching constructor call, as Remove_Side_Effects relies
        --  on Tag_Arg's Parent link properly attached to the tree (once the
--- 285,290 ----
*************** package body Exp_Intr is
*** 708,713 ****
--- 669,677 ----
        elsif Nam = Name_To_Address then
           Expand_To_Address (N);
  
+       elsif Nam = Name_To_Integer then
+          Expand_To_Integer (N);
+ 
        elsif Nam = Name_To_Pointer then
           Expand_To_Pointer (N);
  
*************** package body Exp_Intr is
*** 1356,1361 ****
--- 1320,1331 ----
        Obj : Node_Id;
  
     begin
+       if Is_Modular_Integer_Type (Etype (Arg)) then
+          Rewrite (N, Unchecked_Convert_To (Etype (N), Arg));
+          Analyze (N);
+          return;
+       end if;
+ 
        Remove_Side_Effects (Arg);
  
        Obj := Make_Explicit_Dereference (Loc, Relocate_Node (Arg));
*************** package body Exp_Intr is
*** 1375,1380 ****
--- 1345,1362 ----
     end Expand_To_Address;
  
     -----------------------
+    -- Expand_To_Integer --
+    -----------------------
+ 
+    procedure Expand_To_Integer (N : Node_Id) is
+       Arg : constant Node_Id := First_Actual (N);
+ 
+    begin
+       Rewrite (N, Unchecked_Convert_To (Etype (N), Arg));
+       Analyze (N);
+    end Expand_To_Integer;
+ 
+    -----------------------
     -- Expand_To_Pointer --
     -----------------------
  
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_intr.ads gcc-14.1.0/gcc/ada/exp_intr.ads
*** gcc-13.2.0/gcc/ada/exp_intr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_intr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_pakd.adb gcc-14.1.0/gcc/ada/exp_pakd.adb
*** gcc-13.2.0/gcc/ada/exp_pakd.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_pakd.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Pakd is
*** 153,163 ****
     --  reference the corresponding packed array type.
  
     procedure Setup_Inline_Packed_Array_Reference
!      (N      : Node_Id;
!       Atyp   : Entity_Id;
!       Obj    : in out Node_Id;
!       Cmask  : out Uint;
!       Shift  : out Node_Id);
     --  This procedure performs common processing on the N_Indexed_Component
     --  parameter given as N, whose prefix is a reference to a packed array.
     --  This is used for the get and set when the component size is 1, 2, 4,
--- 153,163 ----
     --  reference the corresponding packed array type.
  
     procedure Setup_Inline_Packed_Array_Reference
!      (N     : Node_Id;
!       Atyp  : Entity_Id;
!       Obj   : in out Node_Id;
!       Cmask : out Uint;
!       Shift : out Node_Id);
     --  This procedure performs common processing on the N_Indexed_Component
     --  parameter given as N, whose prefix is a reference to a packed array.
     --  This is used for the get and set when the component size is 1, 2, 4,
*************** package body Exp_Pakd is
*** 1059,1068 ****
        Obj   : Node_Id;
        Atyp  : Entity_Id;
        PAT   : Entity_Id;
-       Ctyp  : Entity_Id;
-       Csiz  : Int;
        Cmask : Uint;
  
        Shift : Node_Id;
        --  The expression for the shift value that is required
  
--- 1059,1070 ----
        Obj   : Node_Id;
        Atyp  : Entity_Id;
        PAT   : Entity_Id;
        Cmask : Uint;
  
+       Arr_Typ : constant Entity_Id := Etype (Prefix (Lhs));
+       Ctyp    : constant Entity_Id := Component_Type (Arr_Typ);
+       Csiz    : constant Int := UI_To_Int (Component_Size (Arr_Typ));
+ 
        Shift : Node_Id;
        --  The expression for the shift value that is required
  
*************** package body Exp_Pakd is
*** 1073,1084 ****
        New_Lhs : Node_Id;
        New_Rhs : Node_Id;
  
!       Rhs_Val_Known : Boolean;
!       Rhs_Val       : Uint;
        --  If the value of the right hand side as an integer constant is
!       --  known at compile time, Rhs_Val_Known is set True, and Rhs_Val
!       --  contains the value. Otherwise Rhs_Val_Known is set False, and
!       --  the Rhs_Val is undefined.
  
        function Get_Shift return Node_Id;
        --  Function used to get the value of Shift, making sure that it
--- 1075,1083 ----
        New_Lhs : Node_Id;
        New_Rhs : Node_Id;
  
!       Rhs_Val : Uint;
        --  If the value of the right hand side as an integer constant is
!       --  known at compile time, Rhs_Val contains the value.
  
        function Get_Shift return Node_Id;
        --  Function used to get the value of Shift, making sure that it
*************** package body Exp_Pakd is
*** 1114,1121 ****
        Convert_To_Actual_Subtype (Obj);
        Atyp := Etype (Obj);
        PAT  := Packed_Array_Impl_Type (Atyp);
-       Ctyp := Component_Type (Atyp);
-       Csiz := UI_To_Int (Component_Size (Atyp));
  
        --  We remove side effects, in case the rhs modifies the lhs, because we
        --  are about to transform the rhs into an expression that first READS
--- 1113,1118 ----
*************** package body Exp_Pakd is
*** 1137,1156 ****
  
        if Nkind (Rhs) = N_String_Literal then
           declare
!             Decl : Node_Id;
!          begin
!             Decl :=
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Make_Temporary (Loc, 'T', Rhs),
                  Object_Definition   => New_Occurrence_Of (Ctyp, Loc),
                  Expression          => New_Copy_Tree (Rhs));
! 
              Insert_Actions (N, New_List (Decl));
              Rhs := New_Occurrence_Of (Defining_Identifier (Decl), Loc);
           end;
        end if;
  
-       Rhs := Convert_To (Ctyp, Rhs);
        Set_Parent (Rhs, N);
  
        --  If we are building the initialization procedure for a packed array,
--- 1134,1152 ----
  
        if Nkind (Rhs) = N_String_Literal then
           declare
!             Decl : constant Node_Id :=
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Make_Temporary (Loc, 'T', Rhs),
                  Object_Definition   => New_Occurrence_Of (Ctyp, Loc),
                  Expression          => New_Copy_Tree (Rhs));
!          begin
              Insert_Actions (N, New_List (Decl));
              Rhs := New_Occurrence_Of (Defining_Identifier (Decl), Loc);
           end;
+       else
+          Rhs := Convert_To (Ctyp, Rhs);
        end if;
  
        Set_Parent (Rhs, N);
  
        --  If we are building the initialization procedure for a packed array,
*************** package body Exp_Pakd is
*** 1232,1239 ****
           --  Determine if right side is all 0 bits or all 1 bits
  
           if Compile_Time_Known_Value (Rhs) then
!             Rhs_Val       := Expr_Rep_Value (Rhs);
!             Rhs_Val_Known := True;
  
           --  The following test catches the case of an unchecked conversion of
           --  an integer literal. This results from optimizing aggregates of
--- 1228,1234 ----
           --  Determine if right side is all 0 bits or all 1 bits
  
           if Compile_Time_Known_Value (Rhs) then
!             Rhs_Val := Expr_Rep_Value (Rhs);
  
           --  The following test catches the case of an unchecked conversion of
           --  an integer literal. This results from optimizing aggregates of
*************** package body Exp_Pakd is
*** 1242,1260 ****
           elsif Nkind (Rhs) = N_Unchecked_Type_Conversion
             and then Compile_Time_Known_Value (Expression (Rhs))
           then
!             Rhs_Val       := Expr_Rep_Value (Expression (Rhs));
!             Rhs_Val_Known := True;
  
           else
!             Rhs_Val       := No_Uint;
!             Rhs_Val_Known := False;
           end if;
  
           --  Some special checks for the case where the right hand value is
           --  known at compile time. Basically we have to take care of the
           --  implicit conversion to the subtype of the component object.
  
!          if Rhs_Val_Known then
  
              --  If we have a biased component type then we must manually do the
              --  biasing, since we are taking responsibility in this case for
--- 1237,1253 ----
           elsif Nkind (Rhs) = N_Unchecked_Type_Conversion
             and then Compile_Time_Known_Value (Expression (Rhs))
           then
!             Rhs_Val := Expr_Rep_Value (Expression (Rhs));
  
           else
!             Rhs_Val := No_Uint;
           end if;
  
           --  Some special checks for the case where the right hand value is
           --  known at compile time. Basically we have to take care of the
           --  implicit conversion to the subtype of the component object.
  
!          if Present (Rhs_Val) then
  
              --  If we have a biased component type then we must manually do the
              --  biasing, since we are taking responsibility in this case for
*************** package body Exp_Pakd is
*** 1291,1297 ****
  
           --  First we deal with the "and"
  
!          if not Rhs_Val_Known or else Rhs_Val /= Cmask then
              declare
                 Mask1 : Node_Id;
                 Lit   : Node_Id;
--- 1284,1290 ----
  
           --  First we deal with the "and"
  
!          if No (Rhs_Val) or else Rhs_Val /= Cmask then
              declare
                 Mask1 : Node_Id;
                 Lit   : Node_Id;
*************** package body Exp_Pakd is
*** 1321,1327 ****
  
           --  Then deal with the "or"
  
!          if not Rhs_Val_Known or else Rhs_Val /= 0 then
              declare
                 Or_Rhs : Node_Id;
  
--- 1314,1320 ----
  
           --  Then deal with the "or"
  
!          if No (Rhs_Val) or else Rhs_Val /= 0 then
              declare
                 Or_Rhs : Node_Id;
  
*************** package body Exp_Pakd is
*** 1361,1367 ****
                 end Fixup_Rhs;
  
              begin
!                if Rhs_Val_Known
                   and then Compile_Time_Known_Value (Get_Shift)
                 then
                    Or_Rhs :=
--- 1354,1360 ----
                 end Fixup_Rhs;
  
              begin
!                if Present (Rhs_Val)
                   and then Compile_Time_Known_Value (Get_Shift)
                 then
                    Or_Rhs :=
*************** package body Exp_Pakd is
*** 1389,1395 ****
                    --  which will be properly retyped when we analyze and
                    --  resolve the expression.
  
!                   elsif Rhs_Val_Known then
  
                       --  Note that Rhs_Val has already been normalized to
                       --  be an unsigned value with the proper number of bits.
--- 1382,1388 ----
                    --  which will be properly retyped when we analyze and
                    --  resolve the expression.
  
!                   elsif Present (Rhs_Val) then
  
                       --  Note that Rhs_Val has already been normalized to
                       --  be an unsigned value with the proper number of bits.
*************** package body Exp_Pakd is
*** 1439,1445 ****
              Bits_nn : constant Entity_Id := RTE (Bits_Id (Csiz));
              Set_nn  : Entity_Id;
              Subscr  : Node_Id;
-             Atyp    : Entity_Id;
              Rev_SSO : Node_Id;
  
           begin
--- 1432,1437 ----
*************** package body Exp_Pakd is
*** 1461,1469 ****
  
              --  Now generate the set reference
  
-             Obj := Relocate_Node (Prefix (Lhs));
-             Convert_To_Actual_Subtype (Obj);
-             Atyp := Etype (Obj);
              Compute_Linear_Subscript (Atyp, Lhs, Subscr);
  
              --  Set indication of whether the packed array has reverse SSO
--- 1453,1458 ----
*************** package body Exp_Pakd is
*** 2112,2119 ****
  
        --  We build up an expression serially that has the form
  
!       --    linear-subscript * component_size       for each array reference
!       --      +  field'Bit_Position                 for each record field
        --      +  ...
  
        loop
--- 2101,2108 ----
  
        --  We build up an expression serially that has the form
  
!       --    linear-subscript * component_size     for each array component ref
!       --      +  pref.component'Bit_Position      for each record component ref
        --      +  ...
  
        loop
*************** package body Exp_Pakd is
*** 2135,2141 ****
           elsif Nkind (Base) = N_Selected_Component then
              Term :=
                Make_Attribute_Reference (Loc,
!                 Prefix         => Selector_Name (Base),
                  Attribute_Name => Name_Bit_Position);
  
           else
--- 2124,2130 ----
           elsif Nkind (Base) = N_Selected_Component then
              Term :=
                Make_Attribute_Reference (Loc,
!                 Prefix         => Base,
                  Attribute_Name => Name_Bit_Position);
  
           else
*************** package body Exp_Pakd is
*** 2210,2216 ****
           end loop;
  
           return False;
!       end  In_Partially_Packed_Record;
  
     --  Start of processing for Known_Aligned_Enough
  
--- 2199,2205 ----
           end loop;
  
           return False;
!       end In_Partially_Packed_Record;
  
     --  Start of processing for Known_Aligned_Enough
  
*************** package body Exp_Pakd is
*** 2472,2492 ****
     -----------------------------------------
  
     procedure Setup_Inline_Packed_Array_Reference
!      (N      : Node_Id;
!       Atyp   : Entity_Id;
!       Obj    : in out Node_Id;
!       Cmask  : out Uint;
!       Shift  : out Node_Id)
     is
        Loc  : constant Source_Ptr := Sloc (N);
        PAT  : Entity_Id;
        Otyp : Entity_Id;
!       Csiz : Uint;
        Osiz : Uint;
  
     begin
-       Csiz := Component_Size (Atyp);
- 
        Convert_To_PAT_Type (Obj);
        PAT := Etype (Obj);
  
--- 2461,2479 ----
     -----------------------------------------
  
     procedure Setup_Inline_Packed_Array_Reference
!      (N     : Node_Id;
!       Atyp  : Entity_Id;
!       Obj   : in out Node_Id;
!       Cmask : out Uint;
!       Shift : out Node_Id)
     is
        Loc  : constant Source_Ptr := Sloc (N);
        PAT  : Entity_Id;
        Otyp : Entity_Id;
!       Csiz : constant Uint := Component_Size (Atyp);
        Osiz : Uint;
  
     begin
        Convert_To_PAT_Type (Obj);
        PAT := Etype (Obj);
  
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_pakd.ads gcc-14.1.0/gcc/ada/exp_pakd.ads
*** gcc-13.2.0/gcc/ada/exp_pakd.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_pakd.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_prag.adb gcc-14.1.0/gcc/ada/exp_prag.adb
*** gcc-13.2.0/gcc/ada/exp_prag.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_prag.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Prag is
*** 269,274 ****
--- 269,284 ----
        end;
     end Expand_Pragma_Abort_Defer;
  
+    -------------------------------------
+    -- Expand_Pragma_Always_Terminates --
+    -------------------------------------
+ 
+    procedure Expand_Pragma_Always_Terminates (Prag : Node_Id) is
+       pragma Unreferenced (Prag);
+    begin
+       null;
+    end Expand_Pragma_Always_Terminates;
+ 
     --------------------------
     -- Expand_Pragma_Check --
     --------------------------
*************** package body Exp_Prag is
*** 564,569 ****
--- 574,586 ----
           then
              null;
  
+          --  For Subprogram_Variant suppress the warning altogether, because
+          --  for mutually recursive subprograms with multiple variant clauses
+          --  some of the clauses might have expressions that are only meant for
+          --  verification and would always fail when executed.
+ 
+          elsif Nam = Name_Subprogram_Variant then
+             null;
           elsif Nam = Name_Assert then
              Error_Msg_N ("?.a?assertion will fail at run time", N);
           else
*************** package body Exp_Prag is
*** 668,674 ****
     --        Blocks_Id'address,
     --        Mem_Id'address,
     --        Stream_Id'address),
!    --      CUDA.Runtime_Api.Launch_Kernel (
     --        My_Proc'Address,
     --        Blocks_Id,
     --        Grids_Id,
--- 685,691 ----
     --        Blocks_Id'address,
     --        Mem_Id'address,
     --        Stream_Id'address),
!    --      CUDA.Internal.Launch_Kernel (
     --        My_Proc'Address,
     --        Blocks_Id,
     --        Grids_Id,
*************** package body Exp_Prag is
*** 686,692 ****
           Decls  : List_Id;
           Copies : Elist_Id);
        --  For each parameter in list Params, create an object declaration of
!       --  the followinng form:
        --
        --    Copy_Id : Param_Typ := Param_Val;
        --
--- 703,709 ----
           Decls  : List_Id;
           Copies : Elist_Id);
        --  For each parameter in list Params, create an object declaration of
!       --  the following form:
        --
        --    Copy_Id : Param_Typ := Param_Val;
        --
*************** package body Exp_Prag is
*** 738,745 ****
           Kernel_Arg : Entity_Id;
           Memory     : Entity_Id;
           Stream     : Entity_Id) return Node_Id;
!       --  Builds and returns a call to CUDA.Launch_Kernel using the given
!       --  arguments. Proc is the entity of the procedure passed to the
        --  CUDA_Execute pragma. Grid_Dims and Block_Dims are entities of the
        --  generated declarations that hold the kernel's dimensions. Args is the
        --  entity of the temporary array that holds the arguments of the kernel.
--- 755,762 ----
           Kernel_Arg : Entity_Id;
           Memory     : Entity_Id;
           Stream     : Entity_Id) return Node_Id;
!       --  Builds and returns a call to CUDA.Internal.Launch_Kernel using the
!       --  given arguments. Proc is the entity of the procedure passed to the
        --  CUDA_Execute pragma. Grid_Dims and Block_Dims are entities of the
        --  generated declarations that hold the kernel's dimensions. Args is the
        --  entity of the temporary array that holds the arguments of the kernel.
*************** package body Exp_Prag is
*** 1971,1976 ****
--- 1988,2034 ----
        In_Assertion_Expr := In_Assertion_Expr - 1;
     end Expand_Pragma_Contract_Cases;
  
+    -------------------------------------
+    -- Expand_Pragma_Exceptional_Cases --
+    -------------------------------------
+ 
+    --  Aspect Exceptional_Cases shoule be expanded in the following manner:
+ 
+    --  Original declaration
+ 
+    --     procedure P (...) with
+    --        Exceptional_Cases =>
+    --           (Exp_1 => True,
+    --            Exp_2 => Post_4);
+ 
+    --  Expanded body
+ 
+    --     procedure P (...) is
+    --     begin
+    --        --  normal body of of P
+    --        declare
+    --        ...
+    --        end;
+    --
+    --     exception
+    --        when Exp1 =>
+    --           pragma Assert (True);
+    --           raise;
+    --        when E : Exp2 =>
+    --           pragma Assert (Post_4);
+    --           raise;
+    --        when others =>
+    --           pragma Assert (False);
+    --           raise;
+    --     end P;
+ 
+    procedure Expand_Pragma_Exceptional_Cases (Prag : Node_Id) is
+    begin
+       --  Currently we don't expand this pragma
+ 
+       Rewrite (Prag, Make_Null_Statement (Sloc (Prag)));
+    end Expand_Pragma_Exceptional_Cases;
+ 
     ---------------------------------------
     -- Expand_Pragma_Import_Or_Interface --
     ---------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_prag.ads gcc-14.1.0/gcc/ada/exp_prag.ads
*** gcc-13.2.0/gcc/ada/exp_prag.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_prag.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Prag is
*** 31,36 ****
--- 31,40 ----
  
     procedure Expand_N_Pragma (N : Node_Id);
  
+    procedure Expand_Pragma_Always_Terminates (Prag : Node_Id);
+    --  This routine only exists for consistency with other pragmas, since
+    --  Always_Terminates has no meaningful expansion.
+ 
     procedure Expand_Pragma_Contract_Cases
       (CCs     : Node_Id;
        Subp_Id : Entity_Id;
*************** package Exp_Prag is
*** 42,47 ****
--- 46,55 ----
     --  Subp_Id's body. All generated code is added to list Stmts. If Stmts is
     --  No_List on entry, a new list is created.
  
+    procedure Expand_Pragma_Exceptional_Cases (Prag : Node_Id);
+    --  Given pragma Exceptional_Cases Prag, create the circuitry needed to
+    --  catch exceptions and evaluate consequence expressions.
+ 
     procedure Expand_Pragma_Initial_Condition
       (Pack_Id : Entity_Id;
        N       : Node_Id);
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_put_image.adb gcc-14.1.0/gcc/ada/exp_put_image.adb
*** gcc-13.2.0/gcc/ada/exp_put_image.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_put_image.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Put_Image is
*** 814,821 ****
     --  Start of processing for Build_Record_Put_Image_Procedure
  
     begin
!       if (Ada_Version < Ada_2022)
!         or else not Enable_Put_Image (Btyp)
        then
           --  generate a very simple Put_Image implementation
  
--- 814,821 ----
     --  Start of processing for Build_Record_Put_Image_Procedure
  
     begin
!       if Ada_Version < Ada_2022
!         or else not Put_Image_Enabled (Btyp)
        then
           --  generate a very simple Put_Image implementation
  
*************** package body Exp_Put_Image is
*** 845,850 ****
--- 845,870 ----
               Parameter_Associations => New_List
                 (Make_Identifier (Loc, Name_S),
                  Make_String_Literal (Loc, "(NULL RECORD)"))));
+ 
+       elsif Is_Derived_Type (Btyp)
+          and then (not Is_Tagged_Type (Btyp) or else Is_Null_Extension (Btyp))
+       then
+          declare
+             Parent_Type : constant Entity_Id := Base_Type (Etype (Btyp));
+          begin
+             Append_To (Stms,
+               Make_Attribute_Reference (Loc,
+               Prefix         => New_Occurrence_Of (Parent_Type, Loc),
+               Attribute_Name => Name_Put_Image,
+               Expressions    => New_List (
+                                   Make_Identifier (Loc, Name_S),
+                                   Make_Type_Conversion (Loc,
+                                     Subtype_Mark => New_Occurrence_Of
+                                                       (Parent_Type, Loc),
+                                     Expression => Make_Identifier
+                                                     (Loc, Name_V)))));
+          end;
+ 
        else
           Append_To (Stms,
             Make_Procedure_Call_Statement (Loc,
*************** package body Exp_Put_Image is
*** 951,961 ****
                  Entity (Prefix (N)), Append_NUL => False))));
     end Build_Unknown_Put_Image_Call;
  
!    ----------------------
!    -- Enable_Put_Image --
!    ----------------------
  
!    function Enable_Put_Image (Typ : Entity_Id) return Boolean is
     begin
        --  If this function returns False for a non-scalar type Typ, then
        --    a) calls to Typ'Image will result in calls to
--- 971,981 ----
                  Entity (Prefix (N)), Append_NUL => False))));
     end Build_Unknown_Put_Image_Call;
  
!    -----------------------
!    -- Put_Image_Enabled --
!    -----------------------
  
!    function Put_Image_Enabled (Typ : Entity_Id) return Boolean is
     begin
        --  If this function returns False for a non-scalar type Typ, then
        --    a) calls to Typ'Image will result in calls to
*************** package body Exp_Put_Image is
*** 969,981 ****
        --  The name "Sink" here is a short nickname for
        --  "Ada.Strings.Text_Buffers.Root_Buffer_Type".
        --
        --  Put_Image does not work for Remote_Types. We check the containing
        --  package, rather than the type itself, because we want to include
        --  types in the private part of a Remote_Types package.
  
        if Is_Remote_Types (Scope (Typ))
          or else Is_Remote_Call_Interface (Typ)
-         or else (Is_Tagged_Type (Typ) and then In_Predefined_Unit (Typ))
        then
           return False;
        end if;
--- 989,1001 ----
        --  The name "Sink" here is a short nickname for
        --  "Ada.Strings.Text_Buffers.Root_Buffer_Type".
        --
+ 
        --  Put_Image does not work for Remote_Types. We check the containing
        --  package, rather than the type itself, because we want to include
        --  types in the private part of a Remote_Types package.
  
        if Is_Remote_Types (Scope (Typ))
          or else Is_Remote_Call_Interface (Typ)
        then
           return False;
        end if;
*************** package body Exp_Put_Image is
*** 994,999 ****
--- 1014,1033 ----
           return False;
        end if;
  
+       if Is_Tagged_Type (Typ) then
+          if Is_Class_Wide_Type (Typ) then
+             return Put_Image_Enabled (Find_Specific_Type (Base_Type (Typ)));
+          elsif Present (Find_Aspect (Typ, Aspect_Put_Image,
+                                      Or_Rep_Item => True))
+          then
+             null;
+          elsif Is_Derived_Type (Typ) then
+             return Put_Image_Enabled (Etype (Base_Type (Typ)));
+          elsif Is_Predefined_Unit (Get_Code_Unit (Typ)) then
+             return False;
+          end if;
+       end if;
+ 
        --  ???Disable Put_Image on type Root_Buffer_Type declared in
        --  Ada.Strings.Text_Buffers. Note that we can't call Is_RTU on
        --  Ada_Strings_Text_Buffers, because it's not known yet (we might be
*************** package body Exp_Put_Image is
*** 1030,1036 ****
        end if;
  
        return True;
!    end Enable_Put_Image;
  
     -------------------------
     -- Make_Put_Image_Name --
--- 1064,1070 ----
        end if;
  
        return True;
!    end Put_Image_Enabled;
  
     -------------------------
     -- Make_Put_Image_Name --
*************** package body Exp_Put_Image is
*** 1126,1132 ****
        --  Attribute names that will be mapped to the corresponding result types
        --  and functions.
  
!       Attribute_Name_Id : constant Name_Id := Attribute_Name (N);
  
        Result_Typ    : constant Entity_Id :=
          (case Image_Name_Id'(Attribute_Name_Id) is
--- 1160,1168 ----
        --  Attribute names that will be mapped to the corresponding result types
        --  and functions.
  
!       Attribute_Name_Id : constant Name_Id :=
!         (if Attribute_Name (N) = Name_Img then Name_Image
!          else Attribute_Name (N));
  
        Result_Typ    : constant Entity_Id :=
          (case Image_Name_Id'(Attribute_Name_Id) is
*************** package body Exp_Put_Image is
*** 1188,1197 ****
--- 1224,1264 ----
               Parameter_Associations => New_List (Sink_Exp, String_Exp));
        end Put_String_Exp;
  
+       --  Local variables
+ 
+       Tag_Node : Node_Id;
+ 
     --  Start of processing for Build_Image_Call
  
     begin
        if Is_Class_Wide_Type (U_Type) then
+ 
+          --  For interface types we must generate code to displace the pointer
+          --  to the object to reference the base of the underlying object.
+ 
+          --  Generate:
+          --    To_Tag_Ptr (Image_Prefix'Address).all
+ 
+          --  Note that Image_Prefix'Address is recursively expanded into a
+          --  call to Ada.Tags.Base_Address (Image_Prefix'Address).
+ 
+          if Is_Interface (U_Type) then
+             Tag_Node :=
+               Make_Explicit_Dereference (Loc,
+                 Unchecked_Convert_To (RTE (RE_Tag_Ptr),
+                   Make_Attribute_Reference (Loc,
+                     Prefix => Duplicate_Subexpr (Image_Prefix),
+                     Attribute_Name => Name_Address)));
+ 
+          --  Common case
+ 
+          else
+             Tag_Node :=
+               Make_Attribute_Reference (Loc,
+                 Prefix         => Duplicate_Subexpr (Image_Prefix),
+                 Attribute_Name => Name_Tag);
+          end if;
+ 
           --  Generate qualified-expression syntax; qualification name comes
           --  from calling Ada.Tags.Wide_Wide_Expanded_Name.
  
*************** package body Exp_Put_Image is
*** 1206,1215 ****
                  (Make_Function_Call (Loc,
                     Name => New_Occurrence_Of
                               (RTE (RE_Wide_Wide_Expanded_Name), Loc),
!                    Parameter_Associations => New_List (
!                      Make_Attribute_Reference (Loc,
!                        Prefix         => Duplicate_Subexpr (Image_Prefix),
!                        Attribute_Name => Name_Tag))),
                   Wide_Wide => True);
  
              Qualification : constant Node_Id :=
--- 1273,1279 ----
                  (Make_Function_Call (Loc,
                     Name => New_Occurrence_Of
                               (RTE (RE_Wide_Wide_Expanded_Name), Loc),
!                    Parameter_Associations => New_List (Tag_Node)),
                   Wide_Wide => True);
  
              Qualification : constant Node_Id :=
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_put_image.ads gcc-14.1.0/gcc/ada/exp_put_image.ads
*** gcc-13.2.0/gcc/ada/exp_put_image.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_put_image.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Put_Image is
*** 39,45 ****
     --  are calls to T'Put_Image in different units, there will be duplicates;
     --  each unit will get a copy of the T'Put_Image procedure.
  
!    function Enable_Put_Image (Typ : Entity_Id) return Boolean;
     --  True if the predefined Put_Image should be enabled for type T. Put_Image
     --  is always enabled if there is a user-specified one.
  
--- 39,45 ----
     --  are calls to T'Put_Image in different units, there will be duplicates;
     --  each unit will get a copy of the T'Put_Image procedure.
  
!    function Put_Image_Enabled (Typ : Entity_Id) return Boolean;
     --  True if the predefined Put_Image should be enabled for type T. Put_Image
     --  is always enabled if there is a user-specified one.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_sel.adb gcc-14.1.0/gcc/ada/exp_sel.adb
*** gcc-13.2.0/gcc/ada/exp_sel.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_sel.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Einfo;          use Einfo;
*** 27,36 ****
  with Einfo.Entities; use Einfo.Entities;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
- with Opt;            use Opt;
  with Rtsfind;        use Rtsfind;
! with Sinfo;          use Sinfo;
! with Sinfo.Nodes;    use Sinfo.Nodes;
  with Snames;         use Snames;
  with Stand;          use Stand;
  with Tbuild;         use Tbuild;
--- 27,34 ----
  with Einfo.Entities; use Einfo.Entities;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
  with Rtsfind;        use Rtsfind;
! with Sem_Util;       use Sem_Util;
  with Snames;         use Snames;
  with Stand;          use Stand;
  with Tbuild;         use Tbuild;
*************** package body Exp_Sel is
*** 151,168 ****
        Obj   : Entity_Id) return Entity_Id
     is
        K        : constant Entity_Id := Make_Temporary (Loc, 'K');
!       Tag_Node : Node_Id;
  
     begin
-       if Tagged_Type_Expansion then
-          Tag_Node := Unchecked_Convert_To (RTE (RE_Tag), Obj);
-       else
-          Tag_Node :=
-            Make_Attribute_Reference (Loc,
-              Prefix         => Obj,
-              Attribute_Name => Name_Tag);
-       end if;
- 
        Append_To (Decls,
          Make_Object_Declaration (Loc,
            Defining_Identifier => K,
--- 149,160 ----
        Obj   : Entity_Id) return Entity_Id
     is
        K        : constant Entity_Id := Make_Temporary (Loc, 'K');
!       Tag_Node : constant Node_Id   :=
!         Make_Attribute_Reference (Loc,
!           Prefix         => New_Copy_Tree (Obj),
!           Attribute_Name => Name_Tag);
  
     begin
        Append_To (Decls,
          Make_Object_Declaration (Loc,
            Defining_Identifier => K,
*************** package body Exp_Sel is
*** 172,177 ****
--- 164,170 ----
              Make_Function_Call (Loc,
                Name => New_Occurrence_Of (RTE (RE_Get_Tagged_Kind), Loc),
                Parameter_Associations => New_List (Tag_Node))));
+ 
        return K;
     end Build_K;
  
*************** package body Exp_Sel is
*** 202,249 ****
        Obj      : Entity_Id;
        Call_Ent : Entity_Id) return Node_Id
     is
-       Typ : constant Entity_Id := Etype (Obj);
- 
     begin
!       if Tagged_Type_Expansion then
!          return
!            Make_Assignment_Statement (Loc,
!              Name       => New_Occurrence_Of (S, Loc),
!              Expression =>
!                Make_Function_Call (Loc,
!                  Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
!                  Parameter_Associations => New_List (
!                    Unchecked_Convert_To (RTE (RE_Tag), Obj),
!                    Make_Integer_Literal (Loc, DT_Position (Call_Ent)))));
! 
!       --  VM targets
! 
!       else
!          return
!            Make_Assignment_Statement (Loc,
!              Name       => New_Occurrence_Of (S, Loc),
!              Expression =>
!                Make_Function_Call (Loc,
!                  Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
! 
!                  Parameter_Associations => New_List (
! 
!                      --  Obj_Typ
! 
!                    Make_Attribute_Reference (Loc,
!                      Prefix => Obj,
!                      Attribute_Name => Name_Tag),
! 
!                      --  Iface_Typ
! 
!                    Make_Attribute_Reference (Loc,
!                      Prefix => New_Occurrence_Of (Typ, Loc),
!                      Attribute_Name => Name_Tag),
! 
!                      --  Position
! 
!                    Make_Integer_Literal (Loc, DT_Position (Call_Ent)))));
!       end if;
     end Build_S_Assignment;
  
  end Exp_Sel;
--- 195,212 ----
        Obj      : Entity_Id;
        Call_Ent : Entity_Id) return Node_Id
     is
     begin
!       return
!         Make_Assignment_Statement (Loc,
!           Name       => New_Occurrence_Of (S, Loc),
!           Expression =>
!             Make_Function_Call (Loc,
!               Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
!               Parameter_Associations => New_List (
!                 Make_Attribute_Reference (Loc,
!                   Prefix => New_Copy_Tree (Obj),
!                   Attribute_Name => Name_Tag),
!                 Make_Integer_Literal (Loc, DT_Position (Call_Ent)))));
     end Build_S_Assignment;
  
  end Exp_Sel;
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_sel.ads gcc-14.1.0/gcc/ada/exp_sel.ads
*** gcc-13.2.0/gcc/ada/exp_sel.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_sel.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_smem.adb gcc-14.1.0/gcc/ada/exp_smem.adb
*** gcc-13.2.0/gcc/ada/exp_smem.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_smem.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_smem.ads gcc-14.1.0/gcc/ada/exp_smem.ads
*** gcc-13.2.0/gcc/ada/exp_smem.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_smem.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_spark.adb gcc-14.1.0/gcc/ada/exp_spark.adb
*** gcc-13.2.0/gcc/ada/exp_spark.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_spark.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 23,28 ****
--- 23,29 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Einfo;          use Einfo;
*************** with Restrict;       use Restrict;
*** 43,51 ****
--- 44,54 ----
  with Rident;         use Rident;
  with Rtsfind;        use Rtsfind;
  with Sem;            use Sem;
+ with Sem_Aggr;       use Sem_Aggr;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Ch7;        use Sem_Ch7;
  with Sem_Ch8;        use Sem_Ch8;
+ with Sem_Ch13;       use Sem_Ch13;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
*************** package body Exp_SPARK is
*** 63,68 ****
--- 66,75 ----
     -- Local Subprograms --
     -----------------------
  
+    procedure Expand_SPARK_N_Aggregate (N : Node_Id);
+    --  Perform specific expansion of container aggregates, to ensure suitable
+    --  checking of expressions.
+ 
     procedure Expand_SPARK_N_Attribute_Reference (N : Node_Id);
     --  Perform attribute-reference-specific expansion
  
*************** package body Exp_SPARK is
*** 101,107 ****
     --  expanded body would compare the _parent component, which is
     --  intentionally not generated in the GNATprove mode.
     --
!    --  We build the DIC procedure body here as well.
  
     ------------------
     -- Expand_SPARK --
--- 108,114 ----
     --  expanded body would compare the _parent component, which is
     --  intentionally not generated in the GNATprove mode.
     --
!    --  We build the DIC and Type_Invariant procedure bodies here as well.
  
     ------------------
     -- Expand_SPARK --
*************** package body Exp_SPARK is
*** 138,143 ****
--- 145,153 ----
           when N_Delta_Aggregate =>
              Expand_SPARK_N_Delta_Aggregate (N);
  
+          when N_Aggregate =>
+             Expand_SPARK_N_Aggregate (N);
+ 
           when N_Expanded_Name
              | N_Identifier
           =>
*************** package body Exp_SPARK is
*** 186,200 ****
       (Typ  : Entity_Id;
        Aggr : Node_Id)
     is
        Assoc     : Node_Id;
        Comp      : Node_Id;
-       Comp_Id   : Entity_Id;
        Comp_Type : Entity_Id;
        Expr      : Node_Id;
        Index     : Node_Id;
        Index_Typ : Entity_Id;
        New_Assoc : Node_Id;
  
     begin
        --  Apply scalar range checks on the updated components, if needed
  
--- 196,242 ----
       (Typ  : Entity_Id;
        Aggr : Node_Id)
     is
+       procedure Apply_Range_Checks (Choice : Node_Id);
+       --  Apply range checks on indexes from a deep choice
+ 
+       ------------------------
+       -- Apply_Range_Checks --
+       ------------------------
+ 
+       procedure Apply_Range_Checks (Choice : Node_Id) is
+          Pref  : Node_Id := Choice;
+          Index : N_Subexpr_Id;
+       begin
+          loop
+             if Nkind (Pref) = N_Indexed_Component then
+                Index := First (Expressions (Pref));
+                Apply_Scalar_Range_Check (Index, Etype (Index));
+ 
+             elsif Is_Array_Type (Typ)
+               and then Is_Root_Prefix_Of_Deep_Choice (Pref)
+             then
+                Index := Pref;
+                Apply_Scalar_Range_Check (Index, Etype (Index));
+             end if;
+ 
+             exit when Is_Root_Prefix_Of_Deep_Choice (Pref);
+ 
+             Pref := Prefix (Pref);
+          end loop;
+       end Apply_Range_Checks;
+ 
+       --  Local variables
+ 
        Assoc     : Node_Id;
        Comp      : Node_Id;
        Comp_Type : Entity_Id;
        Expr      : Node_Id;
        Index     : Node_Id;
        Index_Typ : Entity_Id;
        New_Assoc : Node_Id;
  
+    --  Start of processing for Expand_SPARK_Delta_Or_Update
+ 
     begin
        --  Apply scalar range checks on the updated components, if needed
  
*************** package body Exp_SPARK is
*** 277,282 ****
--- 319,327 ----
                    if Nkind (Index) in N_Range | N_Subtype_Indication then
                       null;
  
+                   elsif Is_Deep_Choice (Index, Typ) then
+                      Apply_Range_Checks (Index);
+ 
                    --  Otherwise the index denotes a single expression where
                    --  range checks need to be applied or a subtype name
                    --  (without range constraints) where applying checks is
*************** package body Exp_SPARK is
*** 346,360 ****
              Comp := First (Choices (Assoc));
  
              while Present (Comp) loop
!                Comp_Id   := Entity (Comp);
!                Comp_Type := Etype (Comp_Id);
  
                 New_Assoc :=
                   Make_Component_Association
                     (Sloc       => Sloc (Assoc),
!                     Choices    =>
!                       New_List
!                         (New_Occurrence_Of (Comp_Id, Sloc (Comp))),
                      Expression => New_Copy_Tree (Expr));
  
                 --  New association must be attached to the aggregate before we
--- 391,406 ----
              Comp := First (Choices (Assoc));
  
              while Present (Comp) loop
!                if Is_Deep_Choice (Comp, Typ) then
!                   Comp_Type := Etype (Comp);
!                else
!                   Comp_Type := Etype (Entity (Comp));
!                end if;
  
                 New_Assoc :=
                   Make_Component_Association
                     (Sloc       => Sloc (Assoc),
!                     Choices    => New_List (New_Copy_Tree (Comp)),
                      Expression => New_Copy_Tree (Expr));
  
                 --  New association must be attached to the aggregate before we
*************** package body Exp_SPARK is
*** 364,369 ****
--- 410,419 ----
  
                 Analyze_And_Resolve (Expression (New_Assoc), Comp_Type);
  
+                if Is_Deep_Choice (Comp, Typ) then
+                   Apply_Range_Checks (First (Choices (New_Assoc)));
+                end if;
+ 
                 if Is_Scalar_Type (Comp_Type) then
                    Apply_Scalar_Range_Check
                      (Expression (New_Assoc), Comp_Type);
*************** package body Exp_SPARK is
*** 377,382 ****
--- 427,569 ----
        end if;
     end Expand_SPARK_Delta_Or_Update;
  
+    ------------------------------
+    -- Expand_SPARK_N_Aggregate --
+    ------------------------------
+ 
+    procedure Expand_SPARK_N_Aggregate (N : Node_Id) is
+ 
+       --  Local subprograms
+ 
+       procedure Parse_Named_Subp
+         (Subp         : Subprogram_Kind_Id;
+          Key_Type     : out Type_Kind_Id;
+          Element_Type : out Type_Kind_Id);
+       --  Retrieve key and element types from subprogram for named addition
+ 
+       procedure Parse_Unnamed_Subp
+         (Subp         : Subprogram_Kind_Id;
+          Element_Type : out Type_Kind_Id);
+       --  Retrieve element types from subprogram for unnamed addition
+ 
+       procedure Wrap_For_Checks (Expr : N_Subexpr_Id; Typ : Type_Kind_Id);
+       --  If Expr might require a range check for conversion to type Typ, set
+       --  Do_Range_Check on Expr. In all cases, wrap Expr in a type conversion
+       --  if Typ is not the type of Expr already, for GNATprove to correctly
+       --  identity the target type for the range check and insert any other
+       --  checks.
+ 
+       ----------------------
+       -- Parse_Named_Subp --
+       ----------------------
+ 
+       procedure Parse_Named_Subp
+         (Subp         : Subprogram_Kind_Id;
+          Key_Type     : out Type_Kind_Id;
+          Element_Type : out Type_Kind_Id)
+       is
+          Formal : Entity_Id := First_Formal (Subp);
+       begin
+          Next_Formal (Formal);
+          Key_Type := Etype (Formal);
+          Next_Formal (Formal);
+          Element_Type := Etype (Formal);
+       end Parse_Named_Subp;
+ 
+       ------------------------
+       -- Parse_Unnamed_Subp --
+       ------------------------
+ 
+       procedure Parse_Unnamed_Subp
+         (Subp         : Subprogram_Kind_Id;
+          Element_Type : out Type_Kind_Id)
+       is
+          Formal : Entity_Id := First_Formal (Subp);
+       begin
+          Next_Formal (Formal);
+          Element_Type := Etype (Formal);
+       end Parse_Unnamed_Subp;
+ 
+       ---------------------
+       -- Wrap_For_Checks --
+       ---------------------
+ 
+       procedure Wrap_For_Checks (Expr : N_Subexpr_Id; Typ : Type_Kind_Id) is
+       begin
+          if Is_Scalar_Type (Typ) then
+             Apply_Scalar_Range_Check (Expr, Typ);
+          end if;
+ 
+          Convert_To_And_Rewrite (Typ, Expr);
+       end Wrap_For_Checks;
+ 
+       --  Local variables
+ 
+       Typ : constant Entity_Id := Etype (N);
+       Asp : constant Node_Id := Find_Value_Of_Aspect (Typ, Aspect_Aggregate);
+ 
+       Empty_Subp          : Node_Id := Empty;
+       Add_Named_Subp      : Node_Id := Empty;
+       Add_Unnamed_Subp    : Node_Id := Empty;
+       New_Indexed_Subp    : Node_Id := Empty;
+       Assign_Indexed_Subp : Node_Id := Empty;
+       Key_Type            : Entity_Id;
+       Element_Type        : Entity_Id;
+ 
+       Assocs : constant List_Id := Component_Associations (N);
+       Exprs  : constant List_Id := Expressions (N);
+       Choice : Node_Id;
+       Assoc  : Node_Id;
+       Expr   : Node_Id;
+ 
+    --  Start of processing for Expand_SPARK_N_Aggregate
+ 
+    begin
+       if Is_Container_Aggregate (N) then
+ 
+          Parse_Aspect_Aggregate (Asp,
+            Empty_Subp, Add_Named_Subp, Add_Unnamed_Subp,
+            New_Indexed_Subp, Assign_Indexed_Subp);
+ 
+          Assoc := First (Assocs);
+          Expr := First (Exprs);
+ 
+          --  Both lists could be empty as in [] but they can't be both
+          --  non-empty.
+          pragma Assert (not (Present (Assoc) and then Present (Expr)));
+ 
+          --  Deal with cases supported in GNATprove:
+          --  - named container aggregate which is not an indexed aggregate
+          --  - positional container aggregate
+ 
+          if Present (Assoc)
+            and then Present (Add_Named_Subp)
+          then
+             Parse_Named_Subp (Entity (Add_Named_Subp), Key_Type, Element_Type);
+ 
+             while Present (Assoc) loop
+                Choice := First (Choice_List (Assoc));
+ 
+                while Present (Choice) loop
+                   Wrap_For_Checks (Choice, Key_Type);
+                   Next (Choice);
+                end loop;
+ 
+                Wrap_For_Checks (Expression (Assoc), Element_Type);
+                Next (Assoc);
+             end loop;
+ 
+          elsif Present (Expr) then
+             Parse_Unnamed_Subp (Entity (Add_Unnamed_Subp), Element_Type);
+ 
+             while Present (Expr) loop
+                Wrap_For_Checks (Expr, Element_Type);
+                Next (Expr);
+             end loop;
+          end if;
+       end if;
+    end Expand_SPARK_N_Aggregate;
+ 
     ----------------------------------
     -- Expand_SPARK_N_Freeze_Entity --
     ----------------------------------
*************** package body Exp_SPARK is
*** 920,934 ****
  
        Set_Ghost_Mode (Typ);
  
!       --  When a DIC is inherited by a tagged type, it may need to be
!       --  specialized to the descendant type, hence build a separate DIC
!       --  procedure for it as done during regular expansion for compilation.
  
!       if Has_DIC (Typ) and then Is_Tagged_Type (Typ) then
!          --  Why is this needed for DIC, but not for other aspects (such as
!          --  Type_Invariant)???
  
!          Build_DIC_Procedure_Body (Typ);
        end if;
  
        if Ekind (Typ) = E_Record_Type
--- 1107,1159 ----
  
        Set_Ghost_Mode (Typ);
  
!       --  Generate the [spec and] body of the invariant procedure tasked with
!       --  the runtime verification of all invariants that pertain to the type.
!       --  This includes invariants on the partial and full view, inherited
!       --  class-wide invariants from parent types or interfaces, and invariants
!       --  on array elements or record components. But skip internal types.
  
!       if Is_Itype (Typ) then
!          null;
  
!       elsif Is_Interface (Typ) then
! 
!          --  Interfaces are treated as the partial view of a private type in
!          --  order to achieve uniformity with the general case. As a result, an
!          --  interface receives only a "partial" invariant procedure which is
!          --  never called.
! 
!          if Has_Own_Invariants (Typ) then
!             Build_Invariant_Procedure_Body
!               (Typ               => Typ,
!                Partial_Invariant => Is_Interface (Typ));
!          end if;
! 
!       --  Non-interface types
! 
!       --  Do not generate invariant procedure within other assertion
!       --  subprograms, which may involve local declarations of local
!       --  subtypes to which these checks do not apply.
! 
!       else
!          if Has_Invariants (Typ) then
!             if not Predicate_Check_In_Scope (Typ)
!               or else (Ekind (Current_Scope) = E_Function
!                         and then Is_Predicate_Function (Current_Scope))
!             then
!                null;
!             else
!                Build_Invariant_Procedure_Body (Typ);
!             end if;
!          end if;
! 
!          --  Generate the [spec and] body of the procedure tasked with the
!          --  run-time verification of pragma Default_Initial_Condition's
!          --  expression.
! 
!          if Has_DIC (Typ) then
!             Build_DIC_Procedure_Body (Typ);
!          end if;
        end if;
  
        if Ekind (Typ) = E_Record_Type
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_spark.ads gcc-14.1.0/gcc/ada/exp_spark.ads
*** gcc-13.2.0/gcc/ada/exp_spark.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_spark.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_strm.adb gcc-14.1.0/gcc/ada/exp_strm.adb
*** gcc-13.2.0/gcc/ada/exp_strm.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_strm.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Strm is
*** 51,70 ****
     -----------------------
  
     procedure Build_Array_Read_Write_Procedure
!      (Nod  : Node_Id;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Nam  : Name_Id);
     --  Common routine shared to build either an array Read procedure or an
     --  array Write procedure, Nam is Name_Read or Name_Write to select which.
     --  Pnam is the defining identifier for the constructed procedure. The
!    --  other parameters are as for Build_Array_Read_Procedure except that
!    --  the first parameter Nod supplies the Sloc to be used to generate code.
  
     procedure Build_Record_Read_Write_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Nam  : Name_Id);
--- 51,67 ----
     -----------------------
  
     procedure Build_Array_Read_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Nam  : Name_Id);
     --  Common routine shared to build either an array Read procedure or an
     --  array Write procedure, Nam is Name_Read or Name_Write to select which.
     --  Pnam is the defining identifier for the constructed procedure. The
!    --  other parameters are as for Build_Array_Read_Procedure.
  
     procedure Build_Record_Read_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Nam  : Name_Id);
*************** package body Exp_Strm is
*** 74,81 ****
     --  as for Build_Record_Read_Procedure.
  
     procedure Build_Stream_Function
!      (Loc   : Source_Ptr;
!       Typ   : Entity_Id;
        Decl  : out Node_Id;
        Fnam  : Entity_Id;
        Decls : List_Id;
--- 71,77 ----
     --  as for Build_Record_Read_Procedure.
  
     procedure Build_Stream_Function
!      (Typ   : Entity_Id;
        Decl  : out Node_Id;
        Fnam  : Entity_Id;
        Decls : List_Id;
*************** package body Exp_Strm is
*** 140,150 ****
     --  reference, so the name must be unique.
  
     procedure Build_Array_Input_Function
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Fnam : out Entity_Id)
     is
        Dim    : constant Pos := Number_Dimensions (Typ);
        Lnam   : Name_Id;
        Hnam   : Name_Id;
--- 136,146 ----
     --  reference, so the name must be unique.
  
     procedure Build_Array_Input_Function
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Fnam : out Entity_Id)
     is
+       Loc    : constant Source_Ptr := Sloc (Typ);
        Dim    : constant Pos := Number_Dimensions (Typ);
        Lnam   : Name_Id;
        Hnam   : Name_Id;
*************** package body Exp_Strm is
*** 235,241 ****
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Input));
  
!       Build_Stream_Function (Loc, Typ, Decl, Fnam, Decls, Stms);
     end Build_Array_Input_Function;
  
     ----------------------------------
--- 231,237 ----
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Input));
  
!       Build_Stream_Function (Typ, Decl, Fnam, Decls, Stms);
     end Build_Array_Input_Function;
  
     ----------------------------------
*************** package body Exp_Strm is
*** 243,253 ****
     ----------------------------------
  
     procedure Build_Array_Output_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
        Stms : List_Id;
        Indx : Node_Id;
  
--- 239,249 ----
     ----------------------------------
  
     procedure Build_Array_Output_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
+       Loc  : constant Source_Ptr := Sloc (Typ);
        Stms : List_Id;
        Indx : Node_Id;
  
*************** package body Exp_Strm is
*** 301,307 ****
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Output));
  
!       Build_Stream_Procedure (Loc, Typ, Decl, Pnam, Stms, Outp => False);
     end Build_Array_Output_Procedure;
  
     --------------------------------
--- 297,303 ----
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Output));
  
!       Build_Stream_Procedure (Typ, Decl, Pnam, Stms, Outp => False);
     end Build_Array_Output_Procedure;
  
     --------------------------------
*************** package body Exp_Strm is
*** 309,326 ****
     --------------------------------
  
     procedure Build_Array_Read_Procedure
!      (Nod  : Node_Id;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
!       Loc : constant Source_Ptr := Sloc (Nod);
  
     begin
        Pnam :=
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Read));
!       Build_Array_Read_Write_Procedure (Nod, Typ, Decl, Pnam, Name_Read);
     end Build_Array_Read_Procedure;
  
     --------------------------------------
--- 305,321 ----
     --------------------------------
  
     procedure Build_Array_Read_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
!       Loc : constant Source_Ptr := Sloc (Typ);
  
     begin
        Pnam :=
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Read));
!       Build_Array_Read_Write_Procedure (Typ, Decl, Pnam, Name_Read);
     end Build_Array_Read_Procedure;
  
     --------------------------------------
*************** package body Exp_Strm is
*** 345,357 ****
     --  The out keyword for V is supplied in the Read case
  
     procedure Build_Array_Read_Write_Procedure
!      (Nod  : Node_Id;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Nam  : Name_Id)
     is
!       Loc  : constant Source_Ptr := Sloc (Nod);
        Ndim : constant Pos        := Number_Dimensions (Typ);
        Ctyp : constant Entity_Id  := Component_Type (Typ);
  
--- 340,351 ----
     --  The out keyword for V is supplied in the Read case
  
     procedure Build_Array_Read_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Nam  : Name_Id)
     is
!       Loc  : constant Source_Ptr := Sloc (Typ);
        Ndim : constant Pos        := Number_Dimensions (Typ);
        Ctyp : constant Entity_Id  := Component_Type (Typ);
  
*************** package body Exp_Strm is
*** 402,408 ****
  
        for J in 1 .. Ndim loop
           Stm :=
!            Make_Implicit_Loop_Statement (Nod,
               Iteration_Scheme =>
                 Make_Iteration_Scheme (Loc,
                   Loop_Parameter_Specification =>
--- 396,402 ----
  
        for J in 1 .. Ndim loop
           Stm :=
!            Make_Implicit_Loop_Statement (Typ,
               Iteration_Scheme =>
                 Make_Iteration_Scheme (Loc,
                   Loop_Parameter_Specification =>
*************** package body Exp_Strm is
*** 424,430 ****
        end loop;
  
        Build_Stream_Procedure
!         (Loc, Typ, Decl, Pnam, New_List (Stm), Outp => Nam = Name_Read);
     end Build_Array_Read_Write_Procedure;
  
     ---------------------------------
--- 418,424 ----
        end loop;
  
        Build_Stream_Procedure
!         (Typ, Decl, Pnam, New_List (Stm), Outp => Nam = Name_Read);
     end Build_Array_Read_Write_Procedure;
  
     ---------------------------------
*************** package body Exp_Strm is
*** 432,448 ****
     ---------------------------------
  
     procedure Build_Array_Write_Procedure
!      (Nod  : Node_Id;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
!       Loc : constant Source_Ptr := Sloc (Nod);
     begin
        Pnam :=
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Write));
!       Build_Array_Read_Write_Procedure (Nod, Typ, Decl, Pnam, Name_Write);
     end Build_Array_Write_Procedure;
  
     ---------------------------------
--- 426,441 ----
     ---------------------------------
  
     procedure Build_Array_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
!       Loc : constant Source_Ptr := Sloc (Typ);
     begin
        Pnam :=
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Write));
!       Build_Array_Read_Write_Procedure (Typ, Decl, Pnam, Name_Write);
     end Build_Array_Write_Procedure;
  
     ---------------------------------
*************** package body Exp_Strm is
*** 894,904 ****
     -----------------------------------------
  
     procedure Build_Mutable_Record_Read_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
        Out_Formal : Node_Id;
        --  Expression denoting the out formal parameter
  
--- 887,898 ----
     -----------------------------------------
  
     procedure Build_Mutable_Record_Read_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
+       Loc  : constant Source_Ptr := Sloc (Typ);
+ 
        Out_Formal : Node_Id;
        --  Expression denoting the out formal parameter
  
*************** package body Exp_Strm is
*** 951,957 ****
             Make_Raise_Program_Error (Loc,
               Reason => PE_Unchecked_Union_Restriction));
  
!          Build_Stream_Procedure (Loc, Typ, Decl, Pnam, Stms, Outp => True);
           return;
        end if;
  
--- 945,951 ----
             Make_Raise_Program_Error (Loc,
               Reason => PE_Unchecked_Union_Restriction));
  
!          Build_Stream_Procedure (Typ, Decl, Pnam, Stms, Outp => True);
           return;
        end if;
  
*************** package body Exp_Strm is
*** 1007,1013 ****
        --  Generate reads for the components of the record (including those
        --  that depend on discriminants).
  
!       Build_Record_Read_Write_Procedure (Loc, Typ, Decl, Pnam, Name_Read);
  
        --  Save original statement sequence for component assignments, and
        --  replace it with Stms.
--- 1001,1007 ----
        --  Generate reads for the components of the record (including those
        --  that depend on discriminants).
  
!       Build_Record_Read_Write_Procedure (Typ, Decl, Pnam, Name_Read);
  
        --  Save original statement sequence for component assignments, and
        --  replace it with Stms.
*************** package body Exp_Strm is
*** 1066,1076 ****
     ------------------------------------------
  
     procedure Build_Mutable_Record_Write_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
        Stms  : List_Id;
        Disc  : Entity_Id;
        D_Ref : Node_Id;
--- 1060,1070 ----
     ------------------------------------------
  
     procedure Build_Mutable_Record_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
+       Loc   : constant Source_Ptr := Sloc (Typ);
        Stms  : List_Id;
        Disc  : Entity_Id;
        D_Ref : Node_Id;
*************** package body Exp_Strm is
*** 1111,1117 ****
        Pnam :=
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Write));
!       Build_Record_Read_Write_Procedure (Loc, Typ, Decl, Pnam, Name_Write);
  
        --  Write the discriminants before the rest of the components, so
        --  that discriminant values are properly set of variants, etc.
--- 1105,1111 ----
        Pnam :=
          Make_Defining_Identifier (Loc,
            Chars => Make_TSS_Name_Local (Typ, TSS_Stream_Write));
!       Build_Record_Read_Write_Procedure (Typ, Decl, Pnam, Name_Write);
  
        --  Write the discriminants before the rest of the components, so
        --  that discriminant values are properly set of variants, etc.
*************** package body Exp_Strm is
*** 1152,1162 ****
     --  an elementary type, then no Cn constants are defined.
  
     procedure Build_Record_Or_Elementary_Input_Function
!      (Loc            : Source_Ptr;
!       Typ            : Entity_Id;
        Decl           : out Node_Id;
        Fnam           : out Entity_Id)
     is
        B_Typ      : constant Entity_Id := Underlying_Type (Base_Type (Typ));
        Cn         : Name_Id;
        Constr     : List_Id;
--- 1146,1156 ----
     --  an elementary type, then no Cn constants are defined.
  
     procedure Build_Record_Or_Elementary_Input_Function
!      (Typ            : Entity_Id;
        Decl           : out Node_Id;
        Fnam           : out Entity_Id)
     is
+       Loc        : constant Source_Ptr := Sloc (Typ);
        B_Typ      : constant Entity_Id := Underlying_Type (Base_Type (Typ));
        Cn         : Name_Id;
        Constr     : List_Id;
*************** package body Exp_Strm is
*** 1288,1294 ****
  
        Fnam := Make_Stream_Subprogram_Name (Loc, B_Typ, TSS_Stream_Input);
  
!       Build_Stream_Function (Loc, B_Typ, Decl, Fnam, Decls, Stms);
     end Build_Record_Or_Elementary_Input_Function;
  
     -------------------------------------------------
--- 1282,1288 ----
  
        Fnam := Make_Stream_Subprogram_Name (Loc, B_Typ, TSS_Stream_Input);
  
!       Build_Stream_Function (B_Typ, Decl, Fnam, Decls, Stms);
     end Build_Record_Or_Elementary_Input_Function;
  
     -------------------------------------------------
*************** package body Exp_Strm is
*** 1296,1306 ****
     -------------------------------------------------
  
     procedure Build_Record_Or_Elementary_Output_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
        Stms     : List_Id;
        Disc     : Entity_Id;
        Disc_Ref : Node_Id;
--- 1290,1300 ----
     -------------------------------------------------
  
     procedure Build_Record_Or_Elementary_Output_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
+       Loc      : constant Source_Ptr := Sloc (Typ);
        Stms     : List_Id;
        Disc     : Entity_Id;
        Disc_Ref : Node_Id;
*************** package body Exp_Strm is
*** 1356,1362 ****
  
        Pnam := Make_Stream_Subprogram_Name (Loc, Typ, TSS_Stream_Output);
  
!       Build_Stream_Procedure (Loc, Typ, Decl, Pnam, Stms, Outp => False);
     end Build_Record_Or_Elementary_Output_Procedure;
  
     ---------------------------------
--- 1350,1356 ----
  
        Pnam := Make_Stream_Subprogram_Name (Loc, Typ, TSS_Stream_Output);
  
!       Build_Stream_Procedure (Typ, Decl, Pnam, Stms, Outp => False);
     end Build_Record_Or_Elementary_Output_Procedure;
  
     ---------------------------------
*************** package body Exp_Strm is
*** 1364,1377 ****
     ---------------------------------
  
     procedure Build_Record_Read_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
     begin
        Pnam := Make_Stream_Subprogram_Name (Loc, Typ, TSS_Stream_Read);
!       Build_Record_Read_Write_Procedure (Loc, Typ, Decl, Pnam, Name_Read);
     end Build_Record_Read_Procedure;
  
     ---------------------------------------
--- 1358,1371 ----
     ---------------------------------
  
     procedure Build_Record_Read_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
+       Loc : constant Source_Ptr := Sloc (Typ);
     begin
        Pnam := Make_Stream_Subprogram_Name (Loc, Typ, TSS_Stream_Read);
!       Build_Record_Read_Write_Procedure (Typ, Decl, Pnam, Name_Read);
     end Build_Record_Read_Procedure;
  
     ---------------------------------------
*************** package body Exp_Strm is
*** 1407,1418 ****
     --  The out keyword for V is supplied in the Read case
  
     procedure Build_Record_Read_Write_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Nam  : Name_Id)
     is
        Rdef : Node_Id;
        Stms : List_Id;
        Typt : Entity_Id;
--- 1401,1412 ----
     --  The out keyword for V is supplied in the Read case
  
     procedure Build_Record_Read_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Nam  : Name_Id)
     is
+       Loc  : constant Source_Ptr := Sloc (Typ);
        Rdef : Node_Id;
        Stms : List_Id;
        Typt : Entity_Id;
*************** package body Exp_Strm is
*** 1616,1622 ****
        end if;
  
        Build_Stream_Procedure
!         (Loc, Typ, Decl, Pnam, Stms, Outp => Nam = Name_Read);
     end Build_Record_Read_Write_Procedure;
  
     ----------------------------------
--- 1610,1616 ----
        end if;
  
        Build_Stream_Procedure
!         (Typ, Decl, Pnam, Stms, Outp => Nam = Name_Read);
     end Build_Record_Read_Write_Procedure;
  
     ----------------------------------
*************** package body Exp_Strm is
*** 1624,1637 ****
     ----------------------------------
  
     procedure Build_Record_Write_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
     begin
        Pnam := Make_Stream_Subprogram_Name (Loc, Typ, TSS_Stream_Write);
!       Build_Record_Read_Write_Procedure (Loc, Typ, Decl, Pnam, Name_Write);
     end Build_Record_Write_Procedure;
  
     -------------------------------
--- 1618,1631 ----
     ----------------------------------
  
     procedure Build_Record_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id)
     is
+       Loc : constant Source_Ptr := Sloc (Typ);
     begin
        Pnam := Make_Stream_Subprogram_Name (Loc, Typ, TSS_Stream_Write);
!       Build_Record_Read_Write_Procedure (Typ, Decl, Pnam, Name_Write);
     end Build_Record_Write_Procedure;
  
     -------------------------------
*************** package body Exp_Strm is
*** 1674,1686 ****
     ---------------------------
  
     procedure Build_Stream_Function
!      (Loc   : Source_Ptr;
!       Typ   : Entity_Id;
        Decl  : out Node_Id;
        Fnam  : Entity_Id;
        Decls : List_Id;
        Stms  : List_Id)
     is
        Spec : Node_Id;
  
     begin
--- 1668,1680 ----
     ---------------------------
  
     procedure Build_Stream_Function
!      (Typ   : Entity_Id;
        Decl  : out Node_Id;
        Fnam  : Entity_Id;
        Decls : List_Id;
        Stms  : List_Id)
     is
+       Loc  : constant Source_Ptr := Sloc (Typ);
        Spec : Node_Id;
  
     begin
*************** package body Exp_Strm is
*** 1719,1731 ****
     ----------------------------
  
     procedure Build_Stream_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Stms : List_Id;
        Outp : Boolean)
     is
        Spec : Node_Id;
  
     begin
--- 1713,1725 ----
     ----------------------------
  
     procedure Build_Stream_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Stms : List_Id;
        Outp : Boolean)
     is
+       Loc  : constant Source_Ptr := Sloc (Typ);
        Spec : Node_Id;
  
     begin
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_strm.ads gcc-14.1.0/gcc/ada/exp_strm.ads
*** gcc-13.2.0/gcc/ada/exp_strm.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_strm.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Strm is
*** 57,94 ****
     --  results are the declaration and name (entity) of the subprogram.
  
     procedure Build_Array_Input_Function
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Fnam : out Entity_Id);
     --  Build function for Input attribute for array type
  
     procedure Build_Array_Output_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure for Output attribute for array type
  
     procedure Build_Array_Read_Procedure
!      (Nod  : Node_Id;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
!    --  Build procedure for Read attribute for array type. Nod provides the
!    --  Sloc value for generated code.
  
     procedure Build_Array_Write_Procedure
!      (Nod  : Node_Id;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
!    --  Build procedure for Write attribute for array type. Nod provides the
!    --  Sloc value for generated code.
  
     procedure Build_Mutable_Record_Read_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure to Read a record with default discriminants.
--- 57,87 ----
     --  results are the declaration and name (entity) of the subprogram.
  
     procedure Build_Array_Input_Function
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Fnam : out Entity_Id);
     --  Build function for Input attribute for array type
  
     procedure Build_Array_Output_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure for Output attribute for array type
  
     procedure Build_Array_Read_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
!    --  Build procedure for Read attribute for array type.
  
     procedure Build_Array_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
!    --  Build procedure for Write attribute for array type.
  
     procedure Build_Mutable_Record_Read_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure to Read a record with default discriminants.
*************** package Exp_Strm is
*** 96,103 ****
     --  same manner as is done for 'Input.
  
     procedure Build_Mutable_Record_Write_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure to write a record with default discriminants.
--- 89,95 ----
     --  same manner as is done for 'Input.
  
     procedure Build_Mutable_Record_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure to write a record with default discriminants.
*************** package Exp_Strm is
*** 105,112 ****
     --  the same manner as is done for 'Output.
  
     procedure Build_Record_Or_Elementary_Input_Function
!      (Loc            : Source_Ptr;
!       Typ            : Entity_Id;
        Decl           : out Node_Id;
        Fnam           : out Entity_Id);
     --  Build function for Input attribute for record type or for an elementary
--- 97,103 ----
     --  the same manner as is done for 'Output.
  
     procedure Build_Record_Or_Elementary_Input_Function
!      (Typ            : Entity_Id;
        Decl           : out Node_Id;
        Fnam           : out Entity_Id);
     --  Build function for Input attribute for record type or for an elementary
*************** package Exp_Strm is
*** 115,122 ****
     --  runtime library routine directly).
  
     procedure Build_Record_Or_Elementary_Output_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure for Output attribute for record type or for an
--- 106,112 ----
     --  runtime library routine directly).
  
     procedure Build_Record_Or_Elementary_Output_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure for Output attribute for record type or for an
*************** package Exp_Strm is
*** 125,146 ****
     --  Output calls the appropriate runtime library routine directly.
  
     procedure Build_Record_Read_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure for Read attribute for record type
  
     procedure Build_Record_Write_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure for Write attribute for record type
  
     procedure Build_Stream_Procedure
!      (Loc  : Source_Ptr;
!       Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Stms : List_Id;
--- 115,133 ----
     --  Output calls the appropriate runtime library routine directly.
  
     procedure Build_Record_Read_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure for Read attribute for record type
  
     procedure Build_Record_Write_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : out Entity_Id);
     --  Build procedure for Write attribute for record type
  
     procedure Build_Stream_Procedure
!      (Typ  : Entity_Id;
        Decl : out Node_Id;
        Pnam : Entity_Id;
        Stms : List_Id;
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_tss.adb gcc-14.1.0/gcc/ada/exp_tss.adb
*** gcc-13.2.0/gcc/ada/exp_tss.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_tss.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_tss.ads gcc-14.1.0/gcc/ada/exp_tss.ads
*** gcc-13.2.0/gcc/ada/exp_tss.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_tss.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_unst.adb gcc-14.1.0/gcc/ada/exp_unst.adb
*** gcc-13.2.0/gcc/ada/exp_unst.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_unst.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Exp_Unst is
*** 643,649 ****
  
                    --  Conversion case
  
!                   elsif Nkind (N) = N_Type_Conversion then
                       Note_Uplevel_Bound (Expression (N), Ref);
                    end if;
                 end Note_Uplevel_Bound;
--- 643,651 ----
  
                    --  Conversion case
  
!                   elsif Nkind (N) in
!                           N_Type_Conversion | N_Unchecked_Type_Conversion
!                   then
                       Note_Uplevel_Bound (Expression (N), Ref);
                    end if;
                 end Note_Uplevel_Bound;
*************** package body Exp_Unst is
*** 1255,1265 ****
                       return Skip;
                    end if;
  
!                --  Pragmas and component declarations are ignored. Quantified
!                --  expressions are expanded into explicit loops and the
!                --  original epression must be ignored.
  
!                when N_Component_Declaration
                    | N_Pragma
                    | N_Quantified_Expression
                 =>
--- 1257,1268 ----
                       return Skip;
                    end if;
  
!                --  Aspects, pragmas and component declarations are ignored.
!                --  Quantified expressions are expanded into explicit loops
!                --  and the original epression must be ignored.
  
!                when N_Aspect_Specification
!                   | N_Component_Declaration
                    | N_Pragma
                    | N_Quantified_Expression
                 =>
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_unst.ads gcc-14.1.0/gcc/ada/exp_unst.ads
*** gcc-13.2.0/gcc/ada/exp_unst.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_unst.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Exp_Unst is
*** 42,52 ****
     --  references, and implements an appropriate static chain approach to
     --  dealing with such uplevel references.
  
!    --  However, we also want to be able to interface with back ends that do
!    --  not easily handle such uplevel references. One example is the back end
!    --  that translates the tree into standard C source code. In the future,
!    --  other back ends might need the same capability (e.g. a back end that
!    --  generated LLVM intermediate code).
  
     --  We could imagine simply handling such references in the appropriate
     --  back end. For example the back end that generates C could recognize
--- 42,49 ----
     --  references, and implements an appropriate static chain approach to
     --  dealing with such uplevel references.
  
!    --  However, we also want to be able to interface with back ends that do not
!    --  easily handle such uplevel references. One example is the LLVM back end.
  
     --  We could imagine simply handling such references in the appropriate
     --  back end. For example the back end that generates C could recognize
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_util.adb gcc-14.1.0/gcc/ada/exp_util.adb
*** gcc-13.2.0/gcc/ada/exp_util.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_util.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Checks;         use Checks;
*** 30,36 ****
  with Debug;          use Debug;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
- with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
  with Exp_Aggr;       use Exp_Aggr;
--- 30,35 ----
*************** package body Exp_Util is
*** 238,244 ****
  
     function Side_Effect_Free_Attribute (Name : Name_Id) return Boolean;
     --  Return True if the evaluation of the given attribute is considered
!    --  side-effect free, independently of its prefix and expressions.
  
     -------------------------------------
     -- Activate_Atomic_Synchronization --
--- 237,243 ----
  
     function Side_Effect_Free_Attribute (Name : Name_Id) return Boolean;
     --  Return True if the evaluation of the given attribute is considered
!    --  side-effect-free, independently of its prefix and expressions.
  
     -------------------------------------
     -- Activate_Atomic_Synchronization --
*************** package body Exp_Util is
*** 937,942 ****
--- 936,951 ----
          Needs_Finalization (Desig_Typ)
            and then not No_Heap_Finalization (Ptr_Typ);
  
+       --  The allocation/deallocation of a controlled object must be associated
+       --  with an attachment to/detachment from a finalization master, but the
+       --  implementation cannot guarantee this property for every anonymous
+       --  access tyoe, see Build_Anonymous_Collection.
+ 
+       if Needs_Fin and then No (Finalization_Master (Ptr_Typ)) then
+          pragma Assert (Ekind (Ptr_Typ) = E_Anonymous_Access_Type);
+          Needs_Fin := False;
+       end if;
+ 
        if Needs_Fin then
  
           --  Do nothing if the access type may never allocate / deallocate
*************** package body Exp_Util is
*** 946,956 ****
              return;
           end if;
  
-          --  The allocation / deallocation of a controlled object must be
-          --  chained on / detached from a finalization master.
- 
-          pragma Assert (Present (Finalization_Master (Ptr_Typ)));
- 
        --  The only other kind of allocation / deallocation supported by this
        --  routine is on / from a subpool.
  
--- 955,960 ----
*************** package body Exp_Util is
*** 1853,1859 ****
  
        begin
           pragma Assert (Present (DIC_Expr));
!          Expr := New_Copy_Tree (DIC_Expr);
  
           --  Perform the following substitution:
  
--- 1857,1871 ----
  
        begin
           pragma Assert (Present (DIC_Expr));
! 
!          --  We need to preanalyze the expression itself inside a generic to
!          --  be able to capture global references present in it.
! 
!          if Inside_A_Generic then
!             Expr := DIC_Expr;
!          else
!             Expr := New_Copy_Tree (DIC_Expr);
!          end if;
  
           --  Perform the following substitution:
  
*************** package body Exp_Util is
*** 1886,1892 ****
           --  routines.
  
           if Present (DIC_Asp) then
!             Set_Entity (Identifier (DIC_Asp), New_Copy_Tree (Expr));
           end if;
  
           --  Once the DIC assertion expression is fully processed, add a check
--- 1898,1904 ----
           --  routines.
  
           if Present (DIC_Asp) then
!             Set_Expression_Copy (DIC_Asp, New_Copy_Tree (Expr));
           end if;
  
           --  Once the DIC assertion expression is fully processed, add a check
*************** package body Exp_Util is
*** 3111,3117 ****
                    return;
                 end if;
  
!                Expr := New_Copy_Tree (Prag_Expr);
  
                 --  Substitute all references to type T with references to the
                 --  _object formal parameter.
--- 3123,3136 ----
                    return;
                 end if;
  
!                --  We need to preanalyze the expression itself inside a generic
!                --  to be able to capture global references present in it.
! 
!                if Inside_A_Generic then
!                   Expr := Prag_Expr;
!                else
!                   Expr := New_Copy_Tree (Prag_Expr);
!                end if;
  
                 --  Substitute all references to type T with references to the
                 --  _object formal parameter.
*************** package body Exp_Util is
*** 3139,3145 ****
                 --  Check_Aspect_At_xxx routines.
  
                 if Present (Prag_Asp) then
!                   Set_Entity (Identifier (Prag_Asp), New_Copy_Tree (Expr));
                 end if;
  
                 Add_Invariant_Check (Prag, Expr, Checks);
--- 3158,3164 ----
                 --  Check_Aspect_At_xxx routines.
  
                 if Present (Prag_Asp) then
!                   Set_Expression_Copy (Prag_Asp, New_Copy_Tree (Expr));
                 end if;
  
                 Add_Invariant_Check (Prag, Expr, Checks);
*************** package body Exp_Util is
*** 3309,3315 ****
                    --  if it has invariants of its own or inherits class-wide
                    --  invariants from parent or interface types.
  
!                   pragma Assert (Present (Proc_Id));
  
                    --  Generate:
                    --    <Comp_Typ>Invariant (T (_object).<Comp_Id>);
--- 3328,3340 ----
                    --  if it has invariants of its own or inherits class-wide
                    --  invariants from parent or interface types.
  
!                   --  However, given that the invariant procedure is built by
!                   --  the expander, it is not available compiling generic units
!                   --  or when the sources have errors, since expansion is then
!                   --  disabled.
! 
!                   pragma Assert (Present (Proc_Id)
!                     or else not Expander_Active);
  
                    --  Generate:
                    --    <Comp_Typ>Invariant (T (_object).<Comp_Id>);
*************** package body Exp_Util is
*** 3318,3324 ****
                    --  assertions are disabled or Assertion_Policy Ignore is in
                    --  effect.
  
!                   if not Has_Null_Body (Proc_Id) then
                       Append_New_To (Comp_Checks,
                         Make_Procedure_Call_Statement (Loc,
                           Name                   =>
--- 3343,3351 ----
                    --  assertions are disabled or Assertion_Policy Ignore is in
                    --  effect.
  
!                   if Present (Proc_Id)
!                     and then not Has_Null_Body (Proc_Id)
!                   then
                       Append_New_To (Comp_Checks,
                         Make_Procedure_Call_Statement (Loc,
                           Name                   =>
*************** package body Exp_Util is
*** 4699,4704 ****
--- 4726,4780 ----
        return Build_Task_Image_Function (Loc, Decls, Stats, Res);
     end Build_Task_Record_Image;
  
+    ----------------------------------------
+    -- Build_Temporary_On_Secondary_Stack --
+    ----------------------------------------
+ 
+    function Build_Temporary_On_Secondary_Stack
+      (Loc  : Source_Ptr;
+       Typ  : Entity_Id;
+       Code : List_Id) return Entity_Id
+    is
+       Acc_Typ   : Entity_Id;
+       Alloc     : Node_Id;
+       Alloc_Obj : Entity_Id;
+ 
+    begin
+       pragma Assert (RTE_Available (RE_SS_Pool)
+         and then not Needs_Finalization (Typ));
+ 
+       Acc_Typ := Make_Temporary (Loc, 'A');
+       Mutate_Ekind (Acc_Typ, E_Access_Type);
+       Set_Associated_Storage_Pool (Acc_Typ, RTE (RE_SS_Pool));
+ 
+       Append_To (Code,
+         Make_Full_Type_Declaration (Loc,
+           Defining_Identifier => Acc_Typ,
+           Type_Definition     =>
+             Make_Access_To_Object_Definition (Loc,
+               All_Present        => True,
+               Subtype_Indication =>
+                 New_Occurrence_Of (Typ, Loc))));
+ 
+       Alloc :=
+         Make_Allocator (Loc, Expression => New_Occurrence_Of (Typ, Loc));
+       Set_No_Initialization (Alloc);
+ 
+       Alloc_Obj := Make_Temporary (Loc, 'R');
+ 
+       Append_To (Code,
+         Make_Object_Declaration (Loc,
+           Defining_Identifier => Alloc_Obj,
+           Constant_Present    => True,
+           Object_Definition   =>
+             New_Occurrence_Of (Acc_Typ, Loc),
+           Expression          => Alloc));
+ 
+       Set_Uses_Sec_Stack (Current_Scope);
+ 
+       return Alloc_Obj;
+    end Build_Temporary_On_Secondary_Stack;
+ 
     ---------------------------------------
     -- Build_Transient_Object_Statements --
     ---------------------------------------
*************** package body Exp_Util is
*** 4895,4901 ****
     -- Component_May_Be_Bit_Aligned --
     ----------------------------------
  
!    function Component_May_Be_Bit_Aligned (Comp : Entity_Id) return Boolean is
        UT : Entity_Id;
  
     begin
--- 4971,4980 ----
     -- Component_May_Be_Bit_Aligned --
     ----------------------------------
  
!    function Component_May_Be_Bit_Aligned
!      (Comp      : Entity_Id;
!       For_Slice : Boolean := False) return Boolean
!    is
        UT : Entity_Id;
  
     begin
*************** package body Exp_Util is
*** 4915,4926 ****
           return False;
  
        --  If we know that we have a small (at most the maximum integer size)
!       --  record or bit-packed array, then everything is fine, since the back
!       --  end can handle these cases correctly.
  
        elsif Known_Esize (Comp)
          and then Esize (Comp) <= System_Max_Integer_Size
!         and then (Is_Record_Type (UT) or else Is_Bit_Packed_Array (UT))
        then
           return False;
  
--- 4994,5009 ----
           return False;
  
        --  If we know that we have a small (at most the maximum integer size)
!       --  bit-packed array or record without variant part, then everything is
!       --  fine, since the back end can handle these cases correctly, except if
!       --  a slice is involved.
  
        elsif Known_Esize (Comp)
          and then Esize (Comp) <= System_Max_Integer_Size
!         and then (Is_Bit_Packed_Array (UT)
!                    or else (Is_Record_Type (UT)
!                              and then not Has_Variant_Part (UT)))
!         and then not For_Slice
        then
           return False;
  
*************** package body Exp_Util is
*** 5849,5855 ****
        --  function being called is build-in-place. This will have to be revised
        --  when build-in-place functions are generalized to other types.
  
!       elsif Is_Limited_View (Exp_Typ)
          and then
           (Is_Class_Wide_Type (Exp_Typ)
             or else Is_Interface (Exp_Typ)
--- 5932,5938 ----
        --  function being called is build-in-place. This will have to be revised
        --  when build-in-place functions are generalized to other types.
  
!       elsif Is_Inherently_Limited_Type (Exp_Typ)
          and then
           (Is_Class_Wide_Type (Exp_Typ)
             or else Is_Interface (Exp_Typ)
*************** package body Exp_Util is
*** 6223,6228 ****
--- 6306,6317 ----
  
        Typ := Underlying_Type (Typ);
  
+       --  We cannot find the operation if there is no full view available
+ 
+       if No (Typ) then
+          return Empty;
+       end if;
+ 
        --  Loop through primitive operations
  
        Prim := First_Elmt (Primitive_Operations (Typ));
*************** package body Exp_Util is
*** 7219,7224 ****
--- 7308,7314 ----
              when N_Indexed_Component
                |  N_Selected_Component
                |  N_Aggregate
+               |  N_Extension_Aggregate
              =>
                 return True;
  
*************** package body Exp_Util is
*** 8274,8279 ****
--- 8364,8376 ----
        function Is_Allocated (Trans_Id : Entity_Id) return Boolean;
        --  Determine whether transient object Trans_Id is allocated on the heap
  
+       function Is_Indexed_Container
+         (Trans_Id   : Entity_Id;
+          First_Stmt : Node_Id) return Boolean;
+       --  Determine whether transient object Trans_Id denotes a container which
+       --  is in the process of being indexed in the statement list starting
+       --  from First_Stmt.
+ 
        function Is_Iterated_Container
          (Trans_Id   : Entity_Id;
           First_Stmt : Node_Id) return Boolean;
*************** package body Exp_Util is
*** 8317,8381 ****
  
           Call := Unqual_Conv (Call);
  
           if Is_Build_In_Place_Function_Call (Call) then
              declare
                 Caller_Allocation_Val : constant Uint :=
                   UI_From_Int (BIP_Allocation_Form'Pos (Caller_Allocation));
  
-                Access_Nam : Name_Id := No_Name;
                 Access_OK  : Boolean := False;
-                Actual     : Node_Id;
-                Alloc_Nam  : Name_Id := No_Name;
                 Alloc_OK   : Boolean := True;
-                Formal     : Node_Id;
-                Func_Id    : Entity_Id;
                 Param      : Node_Id;
  
              begin
                 --  Examine all parameter associations of the function call
  
                 Param := First (Parameter_Associations (Call));
                 while Present (Param) loop
                    if Nkind (Param) = N_Parameter_Association
                      and then Nkind (Selector_Name (Param)) = N_Identifier
                    then
!                      Actual := Explicit_Actual_Parameter (Param);
!                      Formal := Selector_Name (Param);
! 
!                      --  Construct the names of formals BIPaccess and BIPalloc
!                      --  using the function name retrieved from an arbitrary
!                      --  formal.
! 
!                      if Access_Nam = No_Name
!                        and then Alloc_Nam = No_Name
!                        and then Present (Entity (Formal))
!                      then
!                         Func_Id := Scope (Entity (Formal));
! 
!                         Access_Nam :=
!                           New_External_Name (Chars (Func_Id),
!                             BIP_Formal_Suffix (BIP_Object_Access));
! 
!                         Alloc_Nam :=
!                           New_External_Name (Chars (Func_Id),
!                             BIP_Formal_Suffix (BIP_Alloc_Form));
!                      end if;
  
!                      --  A nonnull BIPaccess has been found
  
!                      if Chars (Formal) = Access_Nam
!                        and then Nkind (Actual) /= N_Null
!                      then
!                         Access_OK := True;
!                      end if;
  
!                      --  A BIPalloc has been found
  
!                      if Chars (Formal) = Alloc_Nam
!                        and then Nkind (Actual) = N_Integer_Literal
!                      then
!                         Alloc_OK := Intval (Actual) = Caller_Allocation_Val;
!                      end if;
                    end if;
  
                    Next (Param);
--- 8414,8486 ----
  
           Call := Unqual_Conv (Call);
  
+          --  We search for a formal with a matching suffix. We can't search
+          --  for the full name, because of the code at the end of Sem_Ch6.-
+          --  Create_Extra_Formals, which copies the Extra_Formals over to
+          --  the Alias of an instance, which will cause the formals to have
+          --  "incorrect" names. See also Exp_Ch6.Build_In_Place_Formal.
+ 
           if Is_Build_In_Place_Function_Call (Call) then
              declare
                 Caller_Allocation_Val : constant Uint :=
                   UI_From_Int (BIP_Allocation_Form'Pos (Caller_Allocation));
+                Access_Suffix         : constant String :=
+                  BIP_Formal_Suffix (BIP_Object_Access);
+                Alloc_Suffix          : constant String :=
+                  BIP_Formal_Suffix (BIP_Alloc_Form);
+ 
+                function Has_Suffix (Name, Suffix : String) return Boolean;
+                --  Return True if Name has suffix Suffix
+ 
+                ----------------
+                -- Has_Suffix --
+                ----------------
+ 
+                function Has_Suffix (Name, Suffix : String) return Boolean is
+                   Len : constant Natural := Suffix'Length;
+ 
+                begin
+                   return Name'Length > Len
+                     and then Name (Name'Last - Len + 1 .. Name'Last) = Suffix;
+                end Has_Suffix;
  
                 Access_OK  : Boolean := False;
                 Alloc_OK   : Boolean := True;
                 Param      : Node_Id;
  
              begin
                 --  Examine all parameter associations of the function call
  
                 Param := First (Parameter_Associations (Call));
+ 
                 while Present (Param) loop
                    if Nkind (Param) = N_Parameter_Association
                      and then Nkind (Selector_Name (Param)) = N_Identifier
                    then
!                      declare
!                         Actual : constant Node_Id
!                           := Explicit_Actual_Parameter (Param);
!                         Formal : constant Node_Id
!                           := Selector_Name (Param);
!                         Name   : constant String
!                           := Get_Name_String (Chars (Formal));
  
!                      begin
!                         --  A nonnull BIPaccess has been found
  
!                         if Has_Suffix (Name, Access_Suffix)
!                           and then Nkind (Actual) /= N_Null
!                         then
!                            Access_OK := True;
  
!                         --  A BIPalloc has been found
  
!                         elsif Has_Suffix (Name, Alloc_Suffix)
!                           and then Nkind (Actual) = N_Integer_Literal
!                         then
!                            Alloc_OK := Intval (Actual) = Caller_Allocation_Val;
!                         end if;
!                      end;
                    end if;
  
                    Next (Param);
*************** package body Exp_Util is
*** 8548,8553 ****
--- 8653,8743 ----
               and then Nkind (Expr) = N_Allocator;
        end Is_Allocated;
  
+       --------------------------
+       -- Is_Indexed_Container --
+       --------------------------
+ 
+       function Is_Indexed_Container
+         (Trans_Id   : Entity_Id;
+          First_Stmt : Node_Id) return Boolean
+       is
+          Aspect : Node_Id;
+          Call   : Node_Id;
+          Index  : Entity_Id;
+          Param  : Node_Id;
+          Stmt   : Node_Id;
+          Typ    : Entity_Id;
+ 
+       begin
+          --  It is not possible to iterate over containers in non-Ada 2012 code
+ 
+          if Ada_Version < Ada_2012 then
+             return False;
+          end if;
+ 
+          Typ := Etype (Trans_Id);
+ 
+          --  Handle access type created for the reference below
+ 
+          if Is_Access_Type (Typ) then
+             Typ := Designated_Type (Typ);
+          end if;
+ 
+          --  Look for aspect Constant_Indexing. It may be part of a type
+          --  declaration for a container, or inherited from a base type
+          --  or parent type.
+ 
+          Aspect := Find_Value_Of_Aspect (Typ, Aspect_Constant_Indexing);
+ 
+          if Present (Aspect) then
+             Index := Entity (Aspect);
+ 
+             --  Examine the statements following the container object and
+             --  look for a call to the default indexing routine where the
+             --  first parameter is the transient. Such a call appears as:
+ 
+             --     It : Access_To_Constant_Reference_Type :=
+             --            Constant_Indexing (Trans_Id.all, ...)'reference;
+ 
+             Stmt := First_Stmt;
+             while Present (Stmt) loop
+ 
+                --  Detect an object declaration which is initialized by a
+                --  controlled function call.
+ 
+                if Nkind (Stmt) = N_Object_Declaration
+                  and then Present (Expression (Stmt))
+                  and then Nkind (Expression (Stmt)) = N_Reference
+                  and then Nkind (Prefix (Expression (Stmt))) = N_Function_Call
+                then
+                   Call := Prefix (Expression (Stmt));
+ 
+                   --  The call must invoke the default indexing routine of
+                   --  the container and the transient object must appear as
+                   --  the first actual parameter. Skip any calls whose names
+                   --  are not entities.
+ 
+                   if Is_Entity_Name (Name (Call))
+                     and then Entity (Name (Call)) = Index
+                     and then Present (Parameter_Associations (Call))
+                   then
+                      Param := First (Parameter_Associations (Call));
+ 
+                      if Nkind (Param) = N_Explicit_Dereference
+                        and then Entity (Prefix (Param)) = Trans_Id
+                      then
+                         return True;
+                      end if;
+                   end if;
+                end if;
+ 
+                Next (Stmt);
+             end loop;
+          end if;
+ 
+          return False;
+       end Is_Indexed_Container;
+ 
        ---------------------------
        -- Is_Iterated_Container --
        ---------------------------
*************** package body Exp_Util is
*** 8572,8578 ****
  
           Typ := Etype (Trans_Id);
  
!          --  Handle access type created for secondary stack use
  
           if Is_Access_Type (Typ) then
              Typ := Designated_Type (Typ);
--- 8762,8768 ----
  
           Typ := Etype (Trans_Id);
  
!          --  Handle access type created for the reference below
  
           if Is_Access_Type (Typ) then
              Typ := Designated_Type (Typ);
*************** package body Exp_Util is
*** 8592,8604 ****
              --  first parameter is the transient. Such a call appears as:
  
              --     It : Access_To_CW_Iterator :=
!             --            Iterate (Tran_Id.all, ...)'reference;
  
              Stmt := First_Stmt;
              while Present (Stmt) loop
  
                 --  Detect an object declaration which is initialized by a
!                --  secondary stack function call.
  
                 if Nkind (Stmt) = N_Object_Declaration
                   and then Present (Expression (Stmt))
--- 8782,8794 ----
              --  first parameter is the transient. Such a call appears as:
  
              --     It : Access_To_CW_Iterator :=
!             --            Iterate (Trans_Id.all, ...)'reference;
  
              Stmt := First_Stmt;
              while Present (Stmt) loop
  
                 --  Detect an object declaration which is initialized by a
!                --  controlled function call.
  
                 if Nkind (Stmt) = N_Object_Declaration
                   and then Present (Expression (Stmt))
*************** package body Exp_Util is
*** 8717,8723 ****
            --  transient objects must exist for as long as the loop is around,
            --  otherwise any operation carried out by the iterator will fail.
  
!           and then not Is_Iterated_Container (Obj_Id, Decl);
     end Is_Finalizable_Transient;
  
     ---------------------------------
--- 8907,8917 ----
            --  transient objects must exist for as long as the loop is around,
            --  otherwise any operation carried out by the iterator will fail.
  
!           and then not Is_Iterated_Container (Obj_Id, Decl)
! 
!           --  Likewise for indexed containers in the context of iterator loops
! 
!           and then not Is_Indexed_Container (Obj_Id, Decl);
     end Is_Finalizable_Transient;
  
     ---------------------------------
*************** package body Exp_Util is
*** 9167,9173 ****
     begin
        --  Build-in-place calls usually appear in 'reference format. Note that
        --  the accessibility check machinery may add an extra 'reference due to
!       --  side effect removal.
  
        while Nkind (Call) = N_Reference loop
           Call := Prefix (Call);
--- 9361,9367 ----
     begin
        --  Build-in-place calls usually appear in 'reference format. Note that
        --  the accessibility check machinery may add an extra 'reference due to
!       --  side-effect removal.
  
        while Nkind (Call) = N_Reference loop
           Call := Prefix (Call);
*************** package body Exp_Util is
*** 9214,9219 ****
--- 9408,9542 ----
          and then Has_Controlling_Result (Id);
     end Is_Secondary_Stack_Thunk;
  
+    ----------------------------
+    -- Is_Statically_Disabled --
+    ----------------------------
+ 
+    function Is_Statically_Disabled
+      (N             : Node_Id;
+       Value         : Boolean;
+       Include_Valid : Boolean)
+       return Boolean
+    is
+       function Is_Discrete_Literal (N : Node_Id) return Boolean;
+       --  Returns whether N is an integer, character or enumeration literal
+ 
+       -------------------------
+       -- Is_Discrete_Literal --
+       -------------------------
+ 
+       function Is_Discrete_Literal (N : Node_Id) return Boolean is
+         (Nkind (N) in N_Integer_Literal | N_Character_Literal
+           or else (Nkind (N) in N_Identifier | N_Expanded_Name
+                     and then Ekind (Entity (N)) = E_Enumeration_Literal));
+ 
+       Expr_N : constant Node_Id :=
+         (if Is_Static_Expression (N)
+            and then Entity (N) in Standard_True | Standard_False
+            and then Is_Rewrite_Substitution (N)
+          then Original_Node (N)
+          else N);
+ 
+    --  Start of processing for Is_Statically_Disabled
+ 
+    begin
+       --  A "statically disabled" condition which evaluates to Value is either:
+ 
+       case Nkind (Expr_N) is
+ 
+          --  an AND or AND THEN operator when:
+          --  - Value is True and both operands are statically disabled
+          --    conditions evaluated to True.
+          --  - Value is False and at least one operand is a statically disabled
+          --    condition evaluated to False.
+ 
+          when N_Op_And | N_And_Then =>
+             return
+               (if Value then
+                  (Is_Statically_Disabled
+                     (Left_Opnd (Expr_N), Value, Include_Valid)
+                   and then Is_Statically_Disabled
+                     (Right_Opnd (Expr_N), Value, Include_Valid))
+                else
+                  (Is_Statically_Disabled
+                     (Left_Opnd (Expr_N), Value, Include_Valid)
+                   or else Is_Statically_Disabled
+                     (Right_Opnd (Expr_N), Value, Include_Valid)));
+ 
+          --  an OR or OR ELSE operator when:
+          --  - Value is True and at least one operand is a statically disabled
+          --    condition evaluated to True.
+          --  - Value is False and both operands are statically disabled
+          --    conditions evaluated to False.
+ 
+          when N_Op_Or | N_Or_Else =>
+             return
+               (if Value then
+                  (Is_Statically_Disabled
+                     (Left_Opnd (Expr_N), Value, Include_Valid)
+                   or else Is_Statically_Disabled
+                     (Right_Opnd (Expr_N), Value, Include_Valid))
+                else
+                  (Is_Statically_Disabled
+                     (Left_Opnd (Expr_N), Value, Include_Valid)
+                   and then Is_Statically_Disabled
+                     (Right_Opnd (Expr_N), Value, Include_Valid)));
+ 
+          --  a NOT operator when the right operand is a statically disabled
+          --  condition evaluated to the negation of Value.
+ 
+          when N_Op_Not =>
+             return Is_Statically_Disabled
+               (Right_Opnd (Expr_N), not Value, Include_Valid);
+ 
+          --  a static constant when it is of a boolean type with aspect
+          --  Warnings Off.
+ 
+          when N_Identifier | N_Expanded_Name =>
+             return Is_Static_Expression (Expr_N)
+               and then Value = Is_True (Expr_Value (Expr_N))
+               and then Ekind (Entity (Expr_N)) = E_Constant
+               and then Has_Warnings_Off (Entity (Expr_N));
+ 
+          --  a relational_operator where one operand is a static constant with
+          --  aspect Warnings Off and the other operand is a literal of the
+          --  corresponding type.
+ 
+          when N_Op_Compare =>
+             declare
+                Left  : constant Node_Id := Left_Opnd (Expr_N);
+                Right : constant Node_Id := Right_Opnd (Expr_N);
+             begin
+                return
+                  Is_Static_Expression (N)
+                    and then Value = Is_True (Expr_Value (N))
+                    and then
+                      ((Is_Discrete_Literal (Right)
+                          and then Nkind (Left) in N_Identifier
+                                                 | N_Expanded_Name
+                          and then Ekind (Entity (Left)) = E_Constant
+                          and then Has_Warnings_Off (Entity (Left)))
+                       or else
+                         (Is_Discrete_Literal (Left)
+                            and then Nkind (Right) in N_Identifier
+                                                    | N_Expanded_Name
+                            and then Ekind (Entity (Right)) = E_Constant
+                            and then Has_Warnings_Off (Entity (Right))));
+             end;
+ 
+          --  a reference to 'Valid or 'Valid_Scalar if Include_Valid is True
+ 
+          when N_Attribute_Reference =>
+             return Include_Valid
+               and then Get_Attribute_Id (Attribute_Name (Expr_N)) in
+                 Attribute_Valid | Attribute_Valid_Scalars
+               and then Value;
+ 
+          when others =>
+             return False;
+       end case;
+    end Is_Statically_Disabled;
+ 
     --------------------------------
     -- Is_Uninitialized_Aggregate --
     --------------------------------
*************** package body Exp_Util is
*** 9390,9397 ****
              --  if/case statement and either
              --    a) we are in an instance and the condition/selector
              --       has a statically known value; or
!             --    b) the condition/selector is a simple identifier and
!             --       warnings off is set for this identifier.
              --  Dead code is common and reasonable in instances, so we don't
              --  want a warning in that case.
  
--- 9713,9723 ----
              --  if/case statement and either
              --    a) we are in an instance and the condition/selector
              --       has a statically known value; or
!             --    b) the selector of a case statement is a simple identifier
!             --       and warnings off is set for this identifier; or
!             --    c) the condition of an if statement is a "statically
!             --       disabled" condition which evaluates to False as described
!             --       in section 7.3.2 of SPARK User's Guide.
              --  Dead code is common and reasonable in instances, so we don't
              --  want a warning in that case.
  
*************** package body Exp_Util is
*** 9400,9418 ****
              begin
                 if Nkind (Parent (N)) = N_If_Statement then
                    C := Condition (Parent (N));
                 elsif Nkind (Parent (N)) = N_Case_Statement_Alternative then
                    C := Expression (Parent (Parent (N)));
-                end if;
  
!                if Present (C) then
!                   if (In_Instance and Compile_Time_Known_Value (C))
!                     or else (Nkind (C) = N_Identifier
!                              and then Present (Entity (C))
!                              and then Has_Warnings_Off (Entity (C)))
                    then
                       W := False;
                    end if;
                 end if;
              end;
  
              --  Generate warning if not suppressed
--- 9726,9754 ----
              begin
                 if Nkind (Parent (N)) = N_If_Statement then
                    C := Condition (Parent (N));
+ 
+                   if Is_Statically_Disabled
+                     (C, Value => False, Include_Valid => False)
+                   then
+                      W := False;
+                   end if;
+ 
                 elsif Nkind (Parent (N)) = N_Case_Statement_Alternative then
                    C := Expression (Parent (Parent (N)));
  
!                   if Nkind (C) = N_Identifier
!                     and then Present (Entity (C))
!                     and then Has_Warnings_Off (Entity (C))
                    then
                       W := False;
                    end if;
                 end if;
+ 
+                if Present (C)
+                  and then (In_Instance and Compile_Time_Known_Value (C))
+                then
+                   W := False;
+                end if;
              end;
  
              --  Generate warning if not suppressed
*************** package body Exp_Util is
*** 9757,9767 ****
     -------------------------
  
     function Make_Invariant_Call (Expr : Node_Id) return Node_Id is
!       Loc : constant Source_Ptr := Sloc (Expr);
!       Typ : constant Entity_Id  := Base_Type (Etype (Expr));
        pragma Assert (Has_Invariants (Typ));
!       Proc_Id : constant Entity_Id := Invariant_Procedure (Typ);
        pragma Assert (Present (Proc_Id));
     begin
        --  The invariant procedure has a null body if assertions are disabled or
        --  Assertion_Policy Ignore is in effect. In that case, generate a null
--- 10093,10108 ----
     -------------------------
  
     function Make_Invariant_Call (Expr : Node_Id) return Node_Id is
!       Loc      : constant Source_Ptr := Sloc (Expr);
!       Typ      : constant Entity_Id  := Base_Type (Etype (Expr));
        pragma Assert (Has_Invariants (Typ));
!       Proc_Id  : constant Entity_Id := Invariant_Procedure (Typ);
        pragma Assert (Present (Proc_Id));
+       Inv_Typ  : constant Entity_Id
+                    := Base_Type (Etype (First_Formal (Proc_Id)));
+ 
+       Arg : Node_Id;
+ 
     begin
        --  The invariant procedure has a null body if assertions are disabled or
        --  Assertion_Policy Ignore is in effect. In that case, generate a null
*************** package body Exp_Util is
*** 9769,9779 ****
  
        if Has_Null_Body (Proc_Id) then
           return Make_Null_Statement (Loc);
        else
           return
             Make_Procedure_Call_Statement (Loc,
               Name                   => New_Occurrence_Of (Proc_Id, Loc),
!              Parameter_Associations => New_List (Relocate_Node (Expr)));
        end if;
     end Make_Invariant_Call;
  
--- 10110,10130 ----
  
        if Has_Null_Body (Proc_Id) then
           return Make_Null_Statement (Loc);
+ 
        else
+          --  As done elsewhere, for example in Build_Initialization_Call, we
+          --  may need to bridge the gap between views of the type.
+ 
+          if Inv_Typ /= Typ then
+             Arg := OK_Convert_To (Inv_Typ, Expr);
+          else
+             Arg := Relocate_Node (Expr);
+          end if;
+ 
           return
             Make_Procedure_Call_Statement (Loc,
               Name                   => New_Occurrence_Of (Proc_Id, Loc),
!              Parameter_Associations => New_List (Arg));
        end if;
     end Make_Invariant_Call;
  
*************** package body Exp_Util is
*** 9945,9950 ****
--- 10296,10303 ----
  
        --  Compute proper name to use, we need to get this right so that the
        --  right set of check policies apply to the Check pragma we are making.
+       --  The presence or not of a Ghost_Predicate does not influence the
+       --  choice of the applicable check policy.
  
        if Has_Dynamic_Predicate_Aspect (Typ) then
           Nam := Name_Dynamic_Predicate;
*************** package body Exp_Util is
*** 10173,10178 ****
--- 10526,10558 ----
                Constraints => List_Constr));
     end Make_Subtype_From_Expr;
  
+    -----------------------------------
+    -- Make_Tag_Assignment_From_Type --
+    -----------------------------------
+ 
+    function Make_Tag_Assignment_From_Type
+      (Loc    : Source_Ptr;
+       Target : Node_Id;
+       Typ    : Entity_Id) return Node_Id
+    is
+       Nam : constant Node_Id :=
+               Make_Selected_Component (Loc,
+                 Prefix => Target,
+                 Selector_Name =>
+                   New_Occurrence_Of (First_Tag_Component (Typ), Loc));
+ 
+    begin
+       Set_Assignment_OK (Nam);
+ 
+       return
+         Make_Assignment_Statement (Loc,
+           Name       => Nam,
+           Expression =>
+             Unchecked_Convert_To (RTE (RE_Tag),
+               New_Occurrence_Of
+                 (Node (First_Elmt (Access_Disp_Table (Typ))), Loc)));
+    end Make_Tag_Assignment_From_Type;
+ 
     -----------------------------
     -- Make_Variant_Comparison --
     -----------------------------
*************** package body Exp_Util is
*** 11128,11134 ****
     -- Possible_Bit_Aligned_Component --
     ------------------------------------
  
!    function Possible_Bit_Aligned_Component (N : Node_Id) return Boolean is
     begin
        --  Do not process an unanalyzed node because it is not yet decorated and
        --  most checks performed below will fail.
--- 11508,11517 ----
     -- Possible_Bit_Aligned_Component --
     ------------------------------------
  
!    function Possible_Bit_Aligned_Component
!      (N         : Node_Id;
!       For_Slice : Boolean := False) return Boolean
!    is
     begin
        --  Do not process an unanalyzed node because it is not yet decorated and
        --  most checks performed below will fail.
*************** package body Exp_Util is
*** 11166,11172 ****
                 --  indexing from a possibly unaligned component.
  
                 else
!                   return Possible_Bit_Aligned_Component (P);
                 end if;
              end;
  
--- 11549,11555 ----
                 --  indexing from a possibly unaligned component.
  
                 else
!                   return Possible_Bit_Aligned_Component (P, For_Slice);
                 end if;
              end;
  
*************** package body Exp_Util is
*** 11181,11194 ****
                 --  This is the crucial test: if the component itself causes
                 --  trouble, then we can stop and return True.
  
!                if Component_May_Be_Bit_Aligned (Comp) then
                    return True;
  
                 --  Otherwise, we need to test the prefix, to see if we are
                 --  selecting from a possibly unaligned component.
  
                 else
!                   return Possible_Bit_Aligned_Component (P);
                 end if;
              end;
  
--- 11564,11577 ----
                 --  This is the crucial test: if the component itself causes
                 --  trouble, then we can stop and return True.
  
!                if Component_May_Be_Bit_Aligned (Comp, For_Slice) then
                    return True;
  
                 --  Otherwise, we need to test the prefix, to see if we are
                 --  selecting from a possibly unaligned component.
  
                 else
!                   return Possible_Bit_Aligned_Component (P, For_Slice);
                 end if;
              end;
  
*************** package body Exp_Util is
*** 11196,11208 ****
           --  then for sure the slice is.
  
           when N_Slice =>
!             return Possible_Bit_Aligned_Component (Prefix (N));
  
           --  For an unchecked conversion, check whether the expression may
           --  be bit aligned.
  
           when N_Unchecked_Type_Conversion =>
!             return Possible_Bit_Aligned_Component (Expression (N));
  
           --  If we have none of the above, it means that we have fallen off the
           --  top testing prefixes recursively, and we now have a stand alone
--- 11579,11591 ----
           --  then for sure the slice is.
  
           when N_Slice =>
!             return Possible_Bit_Aligned_Component (Prefix (N), True);
  
           --  For an unchecked conversion, check whether the expression may
           --  be bit aligned.
  
           when N_Unchecked_Type_Conversion =>
!             return Possible_Bit_Aligned_Component (Expression (N), For_Slice);
  
           --  If we have none of the above, it means that we have fallen off the
           --  top testing prefixes recursively, and we now have a stand alone
*************** package body Exp_Util is
*** 11210,11224 ****
           --  in which case we need to look into the renamed object.
  
           when others =>
!             if Is_Entity_Name (N)
                and then Is_Object (Entity (N))
                and then Present (Renamed_Object (Entity (N)))
!             then
!                return
!                  Possible_Bit_Aligned_Component (Renamed_Object (Entity (N)));
!             else
!                return False;
!             end if;
        end case;
     end Possible_Bit_Aligned_Component;
  
--- 11593,11603 ----
           --  in which case we need to look into the renamed object.
  
           when others =>
!             return Is_Entity_Name (N)
                and then Is_Object (Entity (N))
                and then Present (Renamed_Object (Entity (N)))
!               and then Possible_Bit_Aligned_Component
!                          (Renamed_Object (Entity (N)), For_Slice);
        end case;
     end Possible_Bit_Aligned_Component;
  
*************** package body Exp_Util is
*** 11638,11656 ****
  
        function Possible_Side_Effect_In_SPARK (Exp : Node_Id) return Boolean is
        begin
!         --  Side-effect removal in SPARK should only occur when not inside a
!         --  generic and not doing a preanalysis, inside an object renaming or
!         --  a type declaration or a for-loop iteration scheme.
  
!          return not Inside_A_Generic
             and then Full_Analysis
!            and then Nkind (Enclosing_Declaration (Exp)) in
!                       N_Component_Declaration
!                     | N_Full_Type_Declaration
!                     | N_Iterator_Specification
!                     | N_Loop_Parameter_Specification
!                     | N_Object_Renaming_Declaration
!                     | N_Subtype_Declaration;
        end Possible_Side_Effect_In_SPARK;
  
        --  Local variables
--- 12017,12087 ----
  
        function Possible_Side_Effect_In_SPARK (Exp : Node_Id) return Boolean is
        begin
!          --  Side-effect removal in SPARK should only occur when not inside a
!          --  generic and not doing a preanalysis, inside an object renaming or
!          --  a type declaration or a for-loop iteration scheme.
  
!          if not Inside_A_Generic
             and then Full_Analysis
!          then
! 
!             case Nkind (Enclosing_Declaration (Exp)) is
!                when N_Component_Declaration
!                   | N_Full_Type_Declaration
!                   | N_Iterator_Specification
!                   | N_Loop_Parameter_Specification
!                   | N_Object_Renaming_Declaration
!                =>
!                   return True;
! 
!                --  If the expression belongs to an itype declaration, then
!                --  check if side effects are allowed in the original
!                --  associated node.
! 
!                when N_Subtype_Declaration =>
!                   declare
!                      Subt : constant Entity_Id :=
!                        Defining_Identifier (Enclosing_Declaration (Exp));
!                   begin
!                      if Is_Itype (Subt) then
! 
!                         --  When this routine is called while the itype
!                         --  is being created, the entity might not yet be
!                         --  decorated with the associated node, but should
!                         --  have the related expression.
! 
!                         if Present (Associated_Node_For_Itype (Subt)) then
!                            return
!                              Possible_Side_Effect_In_SPARK
!                                (Associated_Node_For_Itype (Subt));
! 
!                         elsif Present (Related_Expression (Subt)) then
!                            return
!                              Possible_Side_Effect_In_SPARK
!                                (Related_Expression (Subt));
! 
!                         --  When the itype doesn't have any indication of its
!                         --  origin (which currently only happens for packed
!                         --  array types created by freezing that shouldn't
!                         --  be picked by GNATprove anyway), then we can
!                         --  conservatively assume that the expression can
!                         --  be kept as it appears in the source code.
! 
!                         else
!                            pragma Assert (Is_Packed_Array_Impl_Type (Subt));
!                            return False;
!                         end if;
!                      else
!                         return True;
!                      end if;
!                   end;
! 
!                when others =>
!                   return False;
!             end case;
!          else
!             return False;
!          end if;
        end Possible_Side_Effect_In_SPARK;
  
        --  Local variables
*************** package body Exp_Util is
*** 11688,11702 ****
        then
           return;
  
!       --  Nothing to do if prior expansion determined that a function call does
!       --  not require side effect removal.
! 
!       elsif Nkind (Exp) = N_Function_Call
!         and then No_Side_Effect_Removal (Exp)
!       then
!          return;
! 
!       --  No action needed for side-effect free expressions
  
        elsif Check_Side_Effects
          and then Side_Effect_Free (Exp, Name_Req, Variable_Ref)
--- 12119,12125 ----
        then
           return;
  
!       --  No action needed for side-effect-free expressions
  
        elsif Check_Side_Effects
          and then Side_Effect_Free (Exp, Name_Req, Variable_Ref)
*************** package body Exp_Util is
*** 11721,11735 ****
  
        Scope_Suppress.Suppress := (others => True);
  
!       --  If this is a side-effect free attribute reference whose expressions
!       --  are also side-effect free and whose prefix is not a name, remove the
        --  side effects of the prefix. A copy of the prefix is required in this
        --  case and it is better not to make an additional one for the attribute
        --  itself, because the return type of many of them is universal integer,
        --  which is a very large type for a temporary.
        --  The prefix of an attribute reference Reduce may be syntactically an
        --  aggregate, but will be expanded into a loop, so no need to remove
!       --  side-effects.
  
        if Nkind (Exp) = N_Attribute_Reference
          and then Side_Effect_Free_Attribute (Attribute_Name (Exp))
--- 12144,12158 ----
  
        Scope_Suppress.Suppress := (others => True);
  
!       --  If this is a side-effect-free attribute reference whose expressions
!       --  are also side-effect-free and whose prefix is not a name, remove the
        --  side effects of the prefix. A copy of the prefix is required in this
        --  case and it is better not to make an additional one for the attribute
        --  itself, because the return type of many of them is universal integer,
        --  which is a very large type for a temporary.
        --  The prefix of an attribute reference Reduce may be syntactically an
        --  aggregate, but will be expanded into a loop, so no need to remove
!       --  side effects.
  
        if Nkind (Exp) = N_Attribute_Reference
          and then Side_Effect_Free_Attribute (Attribute_Name (Exp))
*************** package body Exp_Util is
*** 11963,11969 ****
        --  Otherwise we generate a reference to the expression
  
        else
!          --  When generating C code we cannot consider side effect free object
           --  declarations that have discriminants and are initialized by means
           --  of a function call since on this target there is no secondary
           --  stack to store the return value and the expander may generate an
--- 12386,12392 ----
        --  Otherwise we generate a reference to the expression
  
        else
!          --  When generating C code we cannot consider side-effect-free object
           --  declarations that have discriminants and are initialized by means
           --  of a function call since on this target there is no secondary
           --  stack to store the return value and the expander may generate an
*************** package body Exp_Util is
*** 11997,12003 ****
  
           if Ada_Version >= Ada_2005
             and then Nkind (Exp) = N_Function_Call
!            and then Is_Limited_View (Etype (Exp))
             and then Nkind (Parent (Exp)) /= N_Object_Declaration
           then
              declare
--- 12420,12426 ----
  
           if Ada_Version >= Ada_2005
             and then Nkind (Exp) = N_Function_Call
!            and then Is_Inherently_Limited_Type (Etype (Exp))
             and then Nkind (Parent (Exp)) /= N_Object_Declaration
           then
              declare
*************** package body Exp_Util is
*** 12654,12672 ****
              if Lib_Level and then Finalize_Storage_Only (Obj_Typ) then
                 null;
  
!             --  Finalization of transient objects are treated separately in
              --  order to handle sensitive cases. These include:
  
!             --    * Aggregate expansion
!             --    * If, case, and expression with actions expansion
              --    * Transient scopes
  
!             --  If one of those contexts has marked the transient object as
!             --  ignored, do not generate finalization actions for it.
  
!             elsif Is_Finalized_Transient (Obj_Id)
!               or else Is_Ignored_Transient (Obj_Id)
!             then
                 null;
  
              --  Ignored Ghost objects do not need any cleanup actions because
--- 13077,13095 ----
              if Lib_Level and then Finalize_Storage_Only (Obj_Typ) then
                 null;
  
!             --  Finalization of transient objects is treated separately in
              --  order to handle sensitive cases. These include:
  
!             --    * Conditional expressions
!             --    * Expressions with actions
              --    * Transient scopes
  
!             elsif Is_Finalized_Transient (Obj_Id) then
!                null;
  
!             --  Finalization of specific objects is also treated separately
! 
!             elsif Is_Ignored_For_Finalization (Obj_Id) then
                 null;
  
              --  Ignored Ghost objects do not need any cleanup actions because
*************** package body Exp_Util is
*** 12734,12743 ****
              --  Simple protected objects which use type System.Tasking.
              --  Protected_Objects.Protection to manage their locks should be
              --  treated as controlled since they require manual cleanup.
  
              elsif Ekind (Obj_Id) = E_Variable
!               and then (Is_Simple_Protected_Type (Obj_Typ)
!                          or else Has_Simple_Protected_Object (Obj_Typ))
              then
                 return True;
              end if;
--- 13157,13194 ----
              --  Simple protected objects which use type System.Tasking.
              --  Protected_Objects.Protection to manage their locks should be
              --  treated as controlled since they require manual cleanup.
+             --  The only exception is illustrated in the following example:
+ 
+             --     package Pkg is
+             --        type Ctrl is new Controlled ...
+             --        procedure Finalize (Obj : in out Ctrl);
+             --        Lib_Obj : Ctrl;
+             --     end Pkg;
+ 
+             --     package body Pkg is
+             --        protected Prot is
+             --           procedure Do_Something (Obj : in out Ctrl);
+             --        end Prot;
+ 
+             --        protected body Prot is
+             --           procedure Do_Something (Obj : in out Ctrl) is ...
+             --        end Prot;
+ 
+             --        procedure Finalize (Obj : in out Ctrl) is
+             --        begin
+             --           Prot.Do_Something (Obj);
+             --        end Finalize;
+             --     end Pkg;
+ 
+             --  Since for the most part entities in package bodies depend on
+             --  those in package specs, Prot's lock should be cleaned up
+             --  first. The subsequent cleanup of the spec finalizes Lib_Obj.
+             --  This act however attempts to invoke Do_Something and fails
+             --  because the lock has disappeared.
  
              elsif Ekind (Obj_Id) = E_Variable
!               and then not In_Library_Level_Package_Body (Obj_Id)
!               and then Has_Simple_Protected_Object (Obj_Typ)
              then
                 return True;
              end if;
*************** package body Exp_Util is
*** 12761,12769 ****
              elsif Is_Ignored_Ghost_Entity (Obj_Id) then
                 null;
  
!             --  Return object of a build-in-place function. This case is
!             --  recognized and marked by the expansion of an extended return
!             --  statement (see Expand_N_Extended_Return_Statement).
  
              elsif Needs_Finalization (Obj_Typ)
                and then Is_Return_Object (Obj_Id)
--- 13212,13220 ----
              elsif Is_Ignored_Ghost_Entity (Obj_Id) then
                 null;
  
!             --  Return object of extended return statements. This case is
!             --  recognized and marked by the expansion of extended return
!             --  statements (see Expand_N_Extended_Return_Statement).
  
              elsif Needs_Finalization (Obj_Typ)
                and then Is_Return_Object (Obj_Id)
*************** package body Exp_Util is
*** 12839,12865 ****
              then
                 return True;
              end if;
- 
-          elsif Nkind (Decl) = N_Block_Statement
-            and then
- 
-            --  Handle a rare case caused by a controlled transient object
-            --  created as part of a record init proc. The variable is wrapped
-            --  in a block, but the block is not associated with a transient
-            --  scope.
- 
-            (Inside_Init_Proc
- 
-            --  Handle the case where the original context has been wrapped in
-            --  a block to avoid interference between exception handlers and
-            --  At_End handlers. Treat the block as transparent and process its
-            --  contents.
- 
-              or else Is_Finalization_Wrapper (Decl))
-          then
-             if Requires_Cleanup_Actions (Decl, Lib_Level) then
-                return True;
-             end if;
           end if;
  
           Next (Decl);
--- 13290,13295 ----
*************** package body Exp_Util is
*** 13308,13319 ****
        function Safe_Prefixed_Reference (N : Node_Id) return Boolean;
        --  The argument N is a construct where the Prefix is dereferenced if it
        --  is an access type and the result is a variable. The call returns True
!       --  if the construct is side effect free (not considering side effects in
        --  other than the prefix which are to be tested by the caller).
  
        function Within_In_Parameter (N : Node_Id) return Boolean;
        --  Determines if N is a subcomponent of a composite in-parameter. If so,
!       --  N is not side-effect free when the actual is global and modifiable
        --  indirectly from within a subprogram, because it may be passed by
        --  reference. The front-end must be conservative here and assume that
        --  this may happen with any array or record type. On the other hand, we
--- 13738,13749 ----
        function Safe_Prefixed_Reference (N : Node_Id) return Boolean;
        --  The argument N is a construct where the Prefix is dereferenced if it
        --  is an access type and the result is a variable. The call returns True
!       --  if the construct is side-effect-free (not considering side effects in
        --  other than the prefix which are to be tested by the caller).
  
        function Within_In_Parameter (N : Node_Id) return Boolean;
        --  Determines if N is a subcomponent of a composite in-parameter. If so,
!       --  N is not side-effect-free when the actual is global and modifiable
        --  indirectly from within a subprogram, because it may be passed by
        --  reference. The front-end must be conservative here and assume that
        --  this may happen with any array or record type. On the other hand, we
*************** package body Exp_Util is
*** 13330,13336 ****
  
        function Safe_Prefixed_Reference (N : Node_Id) return Boolean is
        begin
!          --  If prefix is not side effect free, definitely not safe
  
           if not Side_Effect_Free (Prefix (N), Name_Req, Variable_Ref) then
              return False;
--- 13760,13766 ----
  
        function Safe_Prefixed_Reference (N : Node_Id) return Boolean is
        begin
!          --  If prefix is not side-effect-free, definitely not safe
  
           if not Side_Effect_Free (Prefix (N), Name_Req, Variable_Ref) then
              return False;
*************** package body Exp_Util is
*** 13432,13438 ****
           then
              return False;
  
!          --  All other cases are side effect free
  
           else
              return True;
--- 13862,13868 ----
           then
              return False;
  
!          --  All other cases are side-effect-free
  
           else
              return True;
*************** package body Exp_Util is
*** 13473,13479 ****
        --  However, we would prefer to consider that they are side effects,
        --  since the back end CSE does not work very well on expressions which
        --  can raise Constraint_Error. On the other hand if we don't consider
!       --  them to be side effect free, then we get some awkward expansions
        --  in -gnato mode, resulting in code insertions at a point where we
        --  do not have a clear model for performing the insertions.
  
--- 13903,13909 ----
        --  However, we would prefer to consider that they are side effects,
        --  since the back end CSE does not work very well on expressions which
        --  can raise Constraint_Error. On the other hand if we don't consider
!       --  them to be side-effect-free, then we get some awkward expansions
        --  in -gnato mode, resulting in code insertions at a point where we
        --  do not have a clear model for performing the insertions.
  
*************** package body Exp_Util is
*** 13481,13487 ****
  
        if Is_Entity_Name (N) then
  
!          --  A type reference is always side effect free
  
           if Is_Type (Entity (N)) then
              return True;
--- 13911,13917 ----
  
        if Is_Entity_Name (N) then
  
!          --  A type reference is always side-effect-free
  
           if Is_Type (Entity (N)) then
              return True;
*************** package body Exp_Util is
*** 13502,13513 ****
              return True;
           end if;
  
!       --  A value known at compile time is always side effect free
  
        elsif Compile_Time_Known_Value (N) then
           return True;
  
!       --  A variable renaming is not side-effect free, because the renaming
        --  will function like a macro in the front-end in some cases, and an
        --  assignment can modify the component designated by N, so we need to
        --  create a temporary for it.
--- 13932,13943 ----
              return True;
           end if;
  
!       --  A value known at compile time is always side-effect-free
  
        elsif Compile_Time_Known_Value (N) then
           return True;
  
!       --  A variable renaming is not side-effect-free, because the renaming
        --  will function like a macro in the front-end in some cases, and an
        --  assignment can modify the component designated by N, so we need to
        --  create a temporary for it.
*************** package body Exp_Util is
*** 13541,13547 ****
                 return Safe_Prefixed_Reference (RO);
  
              --  In all other cases, designated object cannot be changed so
!             --  we are side effect free.
  
              else
                 return True;
--- 13971,13977 ----
                 return Safe_Prefixed_Reference (RO);
  
              --  In all other cases, designated object cannot be changed so
!             --  we are side-effect-free.
  
              else
                 return True;
*************** package body Exp_Util is
*** 13581,13588 ****
  
        case Nkind (N) is
  
!          --  An attribute reference is side-effect free if its expressions
!          --  are side-effect free and its prefix is side-effect free or is
           --  an entity reference.
  
           when N_Attribute_Reference =>
--- 14011,14018 ----
  
        case Nkind (N) is
  
!          --  An attribute reference is side-effect-free if its expressions
!          --  are side-effect-free and its prefix is side-effect-free or is
           --  an entity reference.
  
           when N_Attribute_Reference =>
*************** package body Exp_Util is
*** 13594,13601 ****
                        or else
                      Side_Effect_Free (Prefix (N), Name_Req, Variable_Ref));
  
!          --  A binary operator is side effect free if and both operands are
!          --  side effect free. For this purpose binary operators include
           --  short circuit forms.
  
           when N_Binary_Op
--- 14024,14031 ----
                        or else
                      Side_Effect_Free (Prefix (N), Name_Req, Variable_Ref));
  
!          --  A binary operator is side-effect-free if and both operands are
!          --  side-effect-free. For this purpose binary operators include
           --  short circuit forms.
  
           when N_Binary_Op
*************** package body Exp_Util is
*** 13616,13629 ****
                      else Side_Effect_Free
                             (Alternatives (N), Name_Req, Variable_Ref));
  
!          --  An explicit dereference is side effect free only if it is
!          --  a side effect free prefixed reference.
  
           when N_Explicit_Dereference =>
              return Safe_Prefixed_Reference (N);
  
!          --  An expression with action is side effect free if its expression
!          --  is side effect free and it has no actions.
  
           when N_Expression_With_Actions =>
              return
--- 14046,14059 ----
                      else Side_Effect_Free
                             (Alternatives (N), Name_Req, Variable_Ref));
  
!          --  An explicit dereference is side-effect-free only if it is
!          --  a side-effect-free prefixed reference.
  
           when N_Explicit_Dereference =>
              return Safe_Prefixed_Reference (N);
  
!          --  An expression with action is side-effect-free if its expression
!          --  is side-effect-free and it has no actions.
  
           when N_Expression_With_Actions =>
              return
*************** package body Exp_Util is
*** 13631,13644 ****
                  and then Side_Effect_Free
                             (Expression (N), Name_Req, Variable_Ref);
  
!          --  A call to _rep_to_pos is side effect free, since we generate
           --  this pure function call ourselves. Moreover it is critically
           --  important to make this exception, since otherwise we can have
!          --  discriminants in array components which don't look side effect
           --  free in the case of an array whose index type is an enumeration
           --  type with an enumeration rep clause.
  
!          --  All other function calls are not side effect free
  
           when N_Function_Call =>
              return
--- 14061,14074 ----
                  and then Side_Effect_Free
                             (Expression (N), Name_Req, Variable_Ref);
  
!          --  A call to _rep_to_pos is side-effect-free, since we generate
           --  this pure function call ourselves. Moreover it is critically
           --  important to make this exception, since otherwise we can have
!          --  discriminants in array components which don't look side-effect
           --  free in the case of an array whose index type is an enumeration
           --  type with an enumeration rep clause.
  
!          --  All other function calls are not side-effect-free
  
           when N_Function_Call =>
              return
*************** package body Exp_Util is
*** 13648,13655 ****
                             (First (Parameter_Associations (N)),
                              Name_Req, Variable_Ref);
  
!          --  An IF expression is side effect free if it's of a scalar type, and
!          --  all its components are all side effect free (conditions and then
           --  actions and else actions). We restrict to scalar types, since it
           --  is annoying to deal with things like (if A then B else C)'First
           --  where the type involved is a string type.
--- 14078,14085 ----
                             (First (Parameter_Associations (N)),
                              Name_Req, Variable_Ref);
  
!          --  An IF expression is side-effect-free if it's of a scalar type, and
!          --  all its components are all side-effect-free (conditions and then
           --  actions and else actions). We restrict to scalar types, since it
           --  is annoying to deal with things like (if A then B else C)'First
           --  where the type involved is a string type.
*************** package body Exp_Util is
*** 13660,13668 ****
                  and then Side_Effect_Free
                             (Expressions (N), Name_Req, Variable_Ref);
  
!          --  An indexed component is side effect free if it is a side
           --  effect free prefixed reference and all the indexing
!          --  expressions are side effect free.
  
           when N_Indexed_Component =>
              return
--- 14090,14098 ----
                  and then Side_Effect_Free
                             (Expressions (N), Name_Req, Variable_Ref);
  
!          --  An indexed component is side-effect-free if it is a side
           --  effect free prefixed reference and all the indexing
!          --  expressions are side-effect-free.
  
           when N_Indexed_Component =>
              return
*************** package body Exp_Util is
*** 13670,13676 ****
                  and then Safe_Prefixed_Reference (N);
  
           --  A type qualification, type conversion, or unchecked expression is
!          --  side effect free if the expression is side effect free.
  
           when N_Qualified_Expression
              | N_Type_Conversion
--- 14100,14106 ----
                  and then Safe_Prefixed_Reference (N);
  
           --  A type qualification, type conversion, or unchecked expression is
!          --  side-effect-free if the expression is side-effect-free.
  
           when N_Qualified_Expression
              | N_Type_Conversion
*************** package body Exp_Util is
*** 13678,13712 ****
           =>
              return Side_Effect_Free (Expression (N), Name_Req, Variable_Ref);
  
!          --  A selected component is side effect free only if it is a side
           --  effect free prefixed reference.
  
           when N_Selected_Component =>
              return Safe_Prefixed_Reference (N);
  
!          --  A range is side effect free if the bounds are side effect free
  
           when N_Range =>
              return Side_Effect_Free (Low_Bound (N),  Name_Req, Variable_Ref)
                       and then
                     Side_Effect_Free (High_Bound (N), Name_Req, Variable_Ref);
  
!          --  A slice is side effect free if it is a side effect free
!          --  prefixed reference and the bounds are side effect free.
  
           when N_Slice =>
              return
                 Side_Effect_Free (Discrete_Range (N), Name_Req, Variable_Ref)
                   and then Safe_Prefixed_Reference (N);
  
!          --  A unary operator is side effect free if the operand
!          --  is side effect free.
  
           when N_Unary_Op =>
              return Side_Effect_Free (Right_Opnd (N), Name_Req, Variable_Ref);
  
!          --  An unchecked type conversion is side effect free only if it
!          --  is safe and its argument is side effect free.
  
           when N_Unchecked_Type_Conversion =>
              return
--- 14108,14142 ----
           =>
              return Side_Effect_Free (Expression (N), Name_Req, Variable_Ref);
  
!          --  A selected component is side-effect-free only if it is a side
           --  effect free prefixed reference.
  
           when N_Selected_Component =>
              return Safe_Prefixed_Reference (N);
  
!          --  A range is side-effect-free if the bounds are side-effect-free
  
           when N_Range =>
              return Side_Effect_Free (Low_Bound (N),  Name_Req, Variable_Ref)
                       and then
                     Side_Effect_Free (High_Bound (N), Name_Req, Variable_Ref);
  
!          --  A slice is side-effect-free if it is a side-effect-free
!          --  prefixed reference and the bounds are side-effect-free.
  
           when N_Slice =>
              return
                 Side_Effect_Free (Discrete_Range (N), Name_Req, Variable_Ref)
                   and then Safe_Prefixed_Reference (N);
  
!          --  A unary operator is side-effect-free if the operand
!          --  is side-effect-free.
  
           when N_Unary_Op =>
              return Side_Effect_Free (Right_Opnd (N), Name_Req, Variable_Ref);
  
!          --  An unchecked type conversion is side-effect-free only if it
!          --  is safe and its argument is side-effect-free.
  
           when N_Unchecked_Type_Conversion =>
              return
*************** package body Exp_Util is
*** 13714,13720 ****
                  and then Side_Effect_Free
                             (Expression (N), Name_Req, Variable_Ref);
  
!          --  A literal is side effect free
  
           when N_Character_Literal
              | N_Integer_Literal
--- 14144,14150 ----
                  and then Side_Effect_Free
                             (Expression (N), Name_Req, Variable_Ref);
  
!          --  A literal is side-effect-free
  
           when N_Character_Literal
              | N_Integer_Literal
*************** package body Exp_Util is
*** 13723,13729 ****
           =>
              return True;
  
!          --  An aggregate is side effect free if all its values are compile
           --  time known.
  
           when N_Aggregate =>
--- 14153,14159 ----
           =>
              return True;
  
!          --  An aggregate is side-effect-free if all its values are compile
           --  time known.
  
           when N_Aggregate =>
*************** package body Exp_Util is
*** 13739,13745 ****
        end case;
     end Side_Effect_Free;
  
!    --  A list is side effect free if all elements of the list are side
     --  effect free.
  
     function Side_Effect_Free
--- 14169,14175 ----
        end case;
     end Side_Effect_Free;
  
!    --  A list is side-effect-free if all elements of the list are side
     --  effect free.
  
     function Side_Effect_Free
*************** package body Exp_Util is
*** 14028,14033 ****
--- 14458,14464 ----
     ----------------------------------
  
     function Within_Case_Or_If_Expression (N : Node_Id) return Boolean is
+       Nod : Node_Id;
        Par : Node_Id;
  
     begin
*************** package body Exp_Util is
*** 14035,14053 ****
        --  can be expanded into Expression_With_Actions, hence the test of the
        --  original node.
  
!       Par := Parent (N);
        while Present (Par) loop
!          if Nkind (Original_Node (Par)) in N_Case_Expression | N_If_Expression
           then
              return True;
  
           --  Prevent the search from going too far
  
           elsif Is_Body_Or_Package_Declaration (Par) then
              return False;
           end if;
  
!          Par := Parent (Par);
        end loop;
  
        return False;
--- 14466,14503 ----
        --  can be expanded into Expression_With_Actions, hence the test of the
        --  original node.
  
!       Nod := N;
!       Par := Parent (Nod);
! 
        while Present (Par) loop
!          if Nkind (Original_Node (Par)) = N_Case_Expression
!            and then Nod /= Expression (Original_Node (Par))
           then
              return True;
  
+          elsif Nkind (Original_Node (Par)) = N_If_Expression
+            and then Nod /= First (Expressions (Original_Node (Par)))
+          then
+             return True;
+ 
+          --  Stop at contexts where temporaries may be contained
+ 
+          elsif Nkind (Par) in N_Aggregate
+                             | N_Delta_Aggregate
+                             | N_Extension_Aggregate
+                             | N_Block_Statement
+                             | N_Loop_Statement
+          then
+             return False;
+ 
           --  Prevent the search from going too far
  
           elsif Is_Body_Or_Package_Declaration (Par) then
              return False;
           end if;
  
!          Nod := Par;
!          Par := Parent (Nod);
        end loop;
  
        return False;
diff -Nrcpad gcc-13.2.0/gcc/ada/exp_util.ads gcc-14.1.0/gcc/ada/exp_util.ads
*** gcc-13.2.0/gcc/ada/exp_util.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/exp_util.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 25,30 ****
--- 25,31 ----
  
  --  Package containing utility procedures used throughout the expander
  
+ with Einfo.Utils;    use Einfo.Utils;
  with Exp_Tss;        use Exp_Tss;
  with Namet;          use Namet;
  with Rtsfind;        use Rtsfind;
*************** package Exp_Util is
*** 351,356 ****
--- 352,369 ----
     --  is false, the call is for a stand-alone object, and the generated
     --  function itself must do its own cleanups.
  
+    function Build_Temporary_On_Secondary_Stack
+      (Loc  : Source_Ptr;
+       Typ  : Entity_Id;
+       Code : List_Id) return Entity_Id;
+    --  Build a temporary of type Typ on the secondary stack, appending the
+    --  necessary actions to Code, and return a constant holding the access
+    --  value designating this temporary, under the assumption that Typ does
+    --  not need finalization.
+ 
+    --  This should be used when Typ can potentially be large, to avoid putting
+    --  too much pressure on the primary stack, for example with storage models.
+ 
     procedure Build_Transient_Object_Statements
       (Obj_Decl     : Node_Id;
        Fin_Call     : out Node_Id;
*************** package Exp_Util is
*** 360,368 ****
        Ptr_Decl     : out Node_Id;
        Finalize_Obj : Boolean := True);
     --  Subsidiary to the processing of transient objects in transient scopes,
!    --  if expressions, case expressions, expression_with_action nodes, array
!    --  aggregates, and record aggregates. Obj_Decl denotes the declaration of
!    --  the transient object. Generate the following nodes:
     --
     --    * Fin_Call - the call to [Deep_]Finalize which cleans up the transient
     --    object if flag Finalize_Obj is set to True, or finalizes the hook when
--- 373,381 ----
        Ptr_Decl     : out Node_Id;
        Finalize_Obj : Boolean := True);
     --  Subsidiary to the processing of transient objects in transient scopes,
!    --  if expressions, case expressions, and expression_with_action nodes.
!    --  Obj_Decl denotes the declaration of the transient object. Generate the
!    --  following nodes:
     --
     --    * Fin_Call - the call to [Deep_]Finalize which cleans up the transient
     --    object if flag Finalize_Obj is set to True, or finalizes the hook when
*************** package Exp_Util is
*** 387,402 ****
     --  since for floating-point, abs, unary "-", and unary "+" can never
     --  case overflow.
  
!    function Component_May_Be_Bit_Aligned (Comp : Entity_Id) return Boolean;
     --  This function is in charge of detecting record components that may cause
!    --  trouble for the back end if an attempt is made to access the component
!    --  as a whole. The back end can handle such accesses with no problem if the
!    --  components involved are small (64 bits or less) records or scalar items
     --  (including bit-packed arrays represented with a modular type), or else
     --  if they are aligned on byte boundaries (i.e. starting on a byte boundary
     --  and occupying an integral number of bytes).
     --
!    --  However, problems arise for records larger than 64 bits, or for arrays
     --  (other than bit-packed arrays represented with a modular type) if the
     --  component either does not start on a byte boundary or does not occupy an
     --  integral number of bytes (i.e. there are some bits possibly shared with
--- 400,418 ----
     --  since for floating-point, abs, unary "-", and unary "+" can never
     --  case overflow.
  
!    function Component_May_Be_Bit_Aligned
!      (Comp      : Entity_Id;
!       For_Slice : Boolean := False) return Boolean;
     --  This function is in charge of detecting record components that may cause
!    --  trouble for the back end if an attempt is made to access the component,
!    --  either as a whole if For_Slice is False, or through an array slice if
!    --  For_Slice is True. The back end can handle such accesses only if the
!    --  components involved are small (64/128 bits or less) records or scalars
     --  (including bit-packed arrays represented with a modular type), or else
     --  if they are aligned on byte boundaries (i.e. starting on a byte boundary
     --  and occupying an integral number of bytes).
     --
!    --  However problems arise for records larger than 64/128 bits or for arrays
     --  (other than bit-packed arrays represented with a modular type) if the
     --  component either does not start on a byte boundary or does not occupy an
     --  integral number of bytes (i.e. there are some bits possibly shared with
*************** package Exp_Util is
*** 635,647 ****
     --  current declarative part to look for an address clause for the object
     --  being declared, and returns the clause if one is found, returns
     --  Empty otherwise.
-    --
-    --  Note: this function can be costly and must be invoked with special care.
-    --  Possibly we could introduce a flag at parse time indicating the presence
-    --  of an address clause to speed this up???
-    --
-    --  Note: currently this function does not scan the private part, that seems
-    --  like a potential bug ???
  
     type Force_Evaluation_Mode is (Relaxed, Strict);
  
--- 651,656 ----
*************** package Exp_Util is
*** 660,666 ****
     --  of the same expression won't generate multiple side effects, whereas
     --  Force_Evaluation further guarantees that all evaluations will yield
     --  the same result. If Mode is Relaxed then calls to this subprogram have
!    --  no effect if Exp is side-effect free; if Mode is Strict and Exp is not
     --  a static expression then no side-effect check is performed on Exp and
     --  temporaries are unconditionally generated.
     --
--- 669,675 ----
     --  of the same expression won't generate multiple side effects, whereas
     --  Force_Evaluation further guarantees that all evaluations will yield
     --  the same result. If Mode is Relaxed then calls to this subprogram have
!    --  no effect if Exp is side-effect-free; if Mode is Strict and Exp is not
     --  a static expression then no side-effect check is performed on Exp and
     --  temporaries are unconditionally generated.
     --
*************** package Exp_Util is
*** 848,853 ****
--- 857,878 ----
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
+    function Is_Statically_Disabled
+      (N             : Node_Id;
+       Value         : Boolean;
+       Include_Valid : Boolean)
+       return Boolean
+    with Pre => Nkind (N) in N_Subexpr and then Is_Boolean_Type (Etype (N));
+    --  Returns whether N is a "statically disabled" condition which evaluates
+    --  to Value, as described in section 7.3.2 of SPARK User's Guide.
+    --
+    --  If Include_Valid is True, a reference to 'Valid or 'Valid_Scalar is
+    --  considered as disabled for Value=True, which is useful in GNATprove, as
+    --  proof considers that these attributes always return the value True. In
+    --  general, Include_Valid is set to True in the proof phase of GNATprove,
+    --  as 'Valid is assumed to always evaluate to True, but not in the flow
+    --  analysis phase of GNATprove, which does not make this assumption.
+ 
     function Is_Untagged_Derivation (T : Entity_Id) return Boolean;
     --  Returns true if type T is not tagged and is a derived type,
     --  or is a private type whose completion is such a type.
*************** package Exp_Util is
*** 913,918 ****
--- 938,954 ----
     --  wide type. Set Related_Id to request an external name for the subtype
     --  rather than an internal temporary.
  
+    function Make_Tag_Assignment_From_Type
+      (Loc    : Source_Ptr;
+       Target : Node_Id;
+       Typ    : Entity_Id) return Node_Id
+    with
+      Pre => (not Is_Concurrent_Type (Typ));
+    --  Return an assignment of the tag of tagged type Typ to prefix Target,
+    --  which must be a record object of a descendant of Typ. Typ cannot be a
+    --  concurrent type; for concurrent types, the corresponding record types
+    --  should be passed to this function instead.
+ 
     function Make_Variant_Comparison
       (Loc      : Source_Ptr;
        Typ      : Entity_Id;
*************** package Exp_Util is
*** 986,992 ****
     --  address might be captured in a way we do not detect. A value of True is
     --  returned only if the replacement is safe.
  
!    function Possible_Bit_Aligned_Component (N : Node_Id) return Boolean;
     --  This function is used during processing the assignment of a record or an
     --  array, or the construction of an aggregate. The argument N is either the
     --  left or the right hand side of an assignment and the function determines
--- 1022,1030 ----
     --  address might be captured in a way we do not detect. A value of True is
     --  returned only if the replacement is safe.
  
!    function Possible_Bit_Aligned_Component
!      (N         : Node_Id;
!       For_Slice : Boolean := False) return Boolean;
     --  This function is used during processing the assignment of a record or an
     --  array, or the construction of an aggregate. The argument N is either the
     --  left or the right hand side of an assignment and the function determines
*************** package Exp_Util is
*** 1036,1047 ****
     --  call and is analyzed and resolved on return. Name_Req may only be set to
     --  True if Exp has the form of a name, and the effect is to guarantee that
     --  any replacement maintains the form of name. If Renaming_Req is set to
!    --  True, the routine produces an object renaming reclaration capturing the
     --  expression. If Variable_Ref is set to True, a variable is considered as
     --  side effect (used in implementing Force_Evaluation). Note: after call to
     --  Remove_Side_Effects, it is safe to call New_Copy_Tree to obtain a copy
     --  of the resulting expression. If Check_Side_Effects is set to True then
!    --  no action is performed if Exp is known to be side-effect free.
     --
     --  Related_Id denotes the entity of the context where Expr appears. Flags
     --  Is_Low_Bound and Is_High_Bound specify whether the expression to check
--- 1074,1085 ----
     --  call and is analyzed and resolved on return. Name_Req may only be set to
     --  True if Exp has the form of a name, and the effect is to guarantee that
     --  any replacement maintains the form of name. If Renaming_Req is set to
!    --  True, the routine produces an object renaming declaration capturing the
     --  expression. If Variable_Ref is set to True, a variable is considered as
     --  side effect (used in implementing Force_Evaluation). Note: after call to
     --  Remove_Side_Effects, it is safe to call New_Copy_Tree to obtain a copy
     --  of the resulting expression. If Check_Side_Effects is set to True then
!    --  no action is performed if Exp is known to be side-effect-free.
     --
     --  Related_Id denotes the entity of the context where Expr appears. Flags
     --  Is_Low_Bound and Is_High_Bound specify whether the expression to check
*************** package Exp_Util is
*** 1172,1178 ****
       (L            : List_Id;
        Name_Req     : Boolean := False;
        Variable_Ref : Boolean := False) return Boolean;
!    --  Determines if all elements of the list L are side-effect free. Name_Req
     --  and Variable_Ref are as described above.
  
     procedure Silly_Boolean_Array_Not_Test (N : Node_Id; T : Entity_Id);
--- 1210,1216 ----
       (L            : List_Id;
        Name_Req     : Boolean := False;
        Variable_Ref : Boolean := False) return Boolean;
!    --  Determines if all elements of the list L are side-effect-free. Name_Req
     --  and Variable_Ref are as described above.
  
     procedure Silly_Boolean_Array_Not_Test (N : Node_Id; T : Entity_Id);
*************** package Exp_Util is
*** 1221,1227 ****
     --  extension to verify legality rules on inherited conditions.
  
     function Within_Case_Or_If_Expression (N : Node_Id) return Boolean;
!    --  Determine whether arbitrary node N is within a case or an if expression
  
  private
     pragma Inline (Duplicate_Subexpr);
--- 1259,1268 ----
     --  extension to verify legality rules on inherited conditions.
  
     function Within_Case_Or_If_Expression (N : Node_Id) return Boolean;
!    --  Determine whether arbitrary node N is immediately within a dependent
!    --  expression of a case or an if expression. The criterion is whether
!    --  temporaries created by the actions attached to N need to outlive an
!    --  enclosing case or if expression.
  
  private
     pragma Inline (Duplicate_Subexpr);
diff -Nrcpad gcc-13.2.0/gcc/ada/expander.adb gcc-14.1.0/gcc/ada/expander.adb
*** gcc-13.2.0/gcc/ada/expander.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/expander.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/expander.ads gcc-14.1.0/gcc/ada/expander.ads
*** gcc-13.2.0/gcc/ada/expander.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/expander.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/expect.c gcc-14.1.0/gcc/ada/expect.c
*** gcc-13.2.0/gcc/ada/expect.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/expect.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2001-2023, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2001-2024, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 41,46 ****
--- 41,47 ----
  
  #include "adaint.h"
  #include <sys/types.h>
+ #include <string.h>
  
  #if defined (__vxworks) && defined (__RTP__)
  # include <wait.h>
*************** __gnat_waitpid (int pid)
*** 346,356 ****
       return -1;
    }
  
!   if WIFEXITED (status) {
       status = WEXITSTATUS (status);
!   } else if WIFSIGNALED (status) {
       status = WTERMSIG (status);
!   } else if WIFSTOPPED (status) {
       status = WSTOPSIG (status);
    }
  
--- 347,357 ----
       return -1;
    }
  
!   if (WIFEXITED (status)) {
       status = WEXITSTATUS (status);
!   } else if (WIFSIGNALED (status)) {
       status = WTERMSIG (status);
!   } else if (WIFSTOPPED (status)) {
       status = WSTOPSIG (status);
    }
  
diff -Nrcpad gcc-13.2.0/gcc/ada/fe.h gcc-14.1.0/gcc/ada/fe.h
*** gcc-13.2.0/gcc/ada/fe.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fe.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** extern Boolean In_Extended_Main_Code_Uni
*** 220,227 ****
  #define Unnest_Subprogram_Mode		opt__unnest_subprogram_mode
  
  typedef enum {
!   Ada_83, Ada_95, Ada_2005, Ada_2012, Ada_2022, Ada_With_Extensions
  } Ada_Version_Type;
  
  extern Ada_Version_Type Ada_Version;
  extern Boolean Back_End_Inlining;
--- 220,230 ----
  #define Unnest_Subprogram_Mode		opt__unnest_subprogram_mode
  
  typedef enum {
!   Ada_83, Ada_95, Ada_2005, Ada_2012, Ada_2022
  } Ada_Version_Type;
+ // Ada_With_Core_Extensions and Ada_With_All_Extensions (see opt.ads) are not
+ // used on the C side for now. If we decide to use them, we should import
+ // All_Extensions_Allowed and Core_Extensions_Allowed functions.
  
  extern Ada_Version_Type Ada_Version;
  extern Boolean Back_End_Inlining;
*************** extern Boolean Is_Derived_Type			(Entity
*** 297,304 ****
--- 300,309 ----
  /* sem_eval: */
  
  #define Compile_Time_Known_Value	sem_eval__compile_time_known_value
+ #define Is_Null_Range			sem_eval__is_null_range
  
  extern Boolean Compile_Time_Known_Value	(Node_Id);
+ extern Boolean Is_Null_Range 		(Node_Id, Node_Id);
  
  /* sem_util: */
  
*************** Entity_Kind Parameter_Mode (E Id);
*** 678,685 ****
  // The following is needed because Convention in Sem_Util is a renaming
  // of Basic_Convention.
  
! #define Convention einfo__entities__basic_convention
! Convention_Id Convention (N Node);
  
  // See comments regarding Entity_Or_Associated_Node in Sinfo.Utils.
  
--- 683,694 ----
  // The following is needed because Convention in Sem_Util is a renaming
  // of Basic_Convention.
  
! static inline Convention_Id
! Convention (N Node)
! {
!   extern Byte einfo__entities__basic_convention (N Node);
!   return (Convention_Id) einfo__entities__basic_convention (Node);
! }
  
  // See comments regarding Entity_Or_Associated_Node in Sinfo.Utils.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/final.c gcc-14.1.0/gcc/ada/final.c
*** gcc-13.2.0/gcc/ada/final.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/final.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/fmap.adb gcc-14.1.0/gcc/ada/fmap.adb
*** gcc-13.2.0/gcc/ada/fmap.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fmap.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Fmap is
*** 319,325 ****
  
              exit when First > Last;
  
!             if (Last < First + 2) or else (Src (Last - 1) /= '%')
                or else (Src (Last) /= 's' and then Src (Last) /= 'b')
              then
                 Write_Line
--- 319,325 ----
  
              exit when First > Last;
  
!             if Last < First + 2 or else Src (Last - 1) /= '%'
                or else (Src (Last) /= 's' and then Src (Last) /= 'b')
              then
                 Write_Line
diff -Nrcpad gcc-13.2.0/gcc/ada/fmap.ads gcc-14.1.0/gcc/ada/fmap.ads
*** gcc-13.2.0/gcc/ada/fmap.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fmap.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/fname-sf.adb gcc-14.1.0/gcc/ada/fname-sf.adb
*** gcc-13.2.0/gcc/ada/fname-sf.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fname-sf.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/fname-sf.ads gcc-14.1.0/gcc/ada/fname-sf.ads
*** gcc-13.2.0/gcc/ada/fname-sf.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fname-sf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/fname-uf.adb gcc-14.1.0/gcc/ada/fname-uf.adb
*** gcc-13.2.0/gcc/ada/fname-uf.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fname-uf.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/fname-uf.ads gcc-14.1.0/gcc/ada/fname-uf.ads
*** gcc-13.2.0/gcc/ada/fname-uf.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fname-uf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/fname.adb gcc-14.1.0/gcc/ada/fname.adb
*** gcc-13.2.0/gcc/ada/fname.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fname.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/fname.ads gcc-14.1.0/gcc/ada/fname.ads
*** gcc-13.2.0/gcc/ada/fname.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/fname.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/freeze.adb gcc-14.1.0/gcc/ada/freeze.adb
*** gcc-13.2.0/gcc/ada/freeze.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/freeze.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Tss;        use Exp_Tss;
*** 42,47 ****
--- 42,48 ----
  with Ghost;          use Ghost;
  with Layout;         use Layout;
  with Lib;            use Lib;
+ with Local_Restrict;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
*************** package body Freeze is
*** 797,803 ****
           --  limited objects.
  
           if Present (Init)
!            and then not Is_Limited_View (Typ)
           then
              --  Capture initialization value at point of declaration, and make
              --  explicit assignment legal, because object may be a constant.
--- 798,804 ----
           --  limited objects.
  
           if Present (Init)
!            and then not Is_Inherently_Limited_Type (Typ)
           then
              --  Capture initialization value at point of declaration, and make
              --  explicit assignment legal, because object may be a constant.
*************** package body Freeze is
*** 1555,1561 ****
           Par_Prim     : Entity_Id;
           Wrapped_Subp : Entity_Id) return Node_Id
        is
-          Par_Typ    : constant Entity_Id := Find_Dispatching_Type (Par_Prim);
           Actuals    : constant List_Id   := Empty_List;
           Call       : Node_Id;
           Formal     : Entity_Id := First_Formal (Par_Prim);
--- 1556,1561 ----
*************** package body Freeze is
*** 1571,1582 ****
              --  If the controlling argument is inherited, add conversion to
              --  parent type for the call.
  
!             if Etype (Formal) = Par_Typ
!               and then Is_Controlling_Formal (Formal)
!             then
                 Append_To (Actuals,
                   Make_Type_Conversion (Loc,
!                    New_Occurrence_Of (Par_Typ, Loc),
                     New_Occurrence_Of (New_Formal, Loc)));
              else
                 Append_To (Actuals, New_Occurrence_Of (New_Formal, Loc));
--- 1571,1580 ----
              --  If the controlling argument is inherited, add conversion to
              --  parent type for the call.
  
!             if Is_Controlling_Formal (Formal) then
                 Append_To (Actuals,
                   Make_Type_Conversion (Loc,
!                    New_Occurrence_Of (Etype (Formal), Loc),
                     New_Occurrence_Of (New_Formal, Loc)));
              else
                 Append_To (Actuals, New_Occurrence_Of (New_Formal, Loc));
*************** package body Freeze is
*** 1904,1911 ****
                       if Iface_Prim /= Par_Prim
                         and then Chars (Iface_Prim) = Chars (Prim)
                         and then Comes_From_Source (Iface_Prim)
!                        and then (Is_Interface_Conformant
!                                    (R, Iface_Prim, Prim))
                       then
                          Check_Same_Strub_Mode (Prim, Iface_Prim);
                       end if;
--- 1902,1909 ----
                       if Iface_Prim /= Par_Prim
                         and then Chars (Iface_Prim) = Chars (Prim)
                         and then Comes_From_Source (Iface_Prim)
!                        and then Is_Interface_Conformant
!                                   (R, Iface_Prim, Prim)
                       then
                          Check_Same_Strub_Mode (Prim, Iface_Prim);
                       end if;
*************** package body Freeze is
*** 4113,4121 ****
           procedure Check_Large_Modular_Array (Typ : Entity_Id);
           --  Check that the size of array type Typ can be computed without
           --  overflow, and generates a Storage_Error otherwise. This is only
!          --  relevant for array types whose index has System_Max_Integer_Size
!          --  bits, where wrap-around arithmetic might yield a meaningless value
!          --  for the length of the array, or its corresponding attribute.
  
           procedure Check_Pragma_Thread_Local_Storage (Var_Id : Entity_Id);
           --  Ensure that the initialization state of variable Var_Id subject
--- 4111,4120 ----
           procedure Check_Large_Modular_Array (Typ : Entity_Id);
           --  Check that the size of array type Typ can be computed without
           --  overflow, and generates a Storage_Error otherwise. This is only
!          --  relevant for array types whose index is a modular type with
!          --  Standard_Long_Long_Integer_Size bits: wrap-around arithmetic
!          --  might yield a meaningless value for the length of the array,
!          --  or its corresponding attribute.
  
           procedure Check_Pragma_Thread_Local_Storage (Var_Id : Entity_Id);
           --  Ensure that the initialization state of variable Var_Id subject
*************** package body Freeze is
*** 4173,4180 ****
              --  Storage_Error.
  
              if Is_Modular_Integer_Type (Idx_Typ)
!               and then RM_Size (Idx_Typ) = RM_Size (Standard_Long_Long_Integer)
              then
                 Insert_Action (Declaration_Node (E),
                   Make_Raise_Storage_Error (Obj_Loc,
                     Condition =>
--- 4172,4195 ----
              --  Storage_Error.
  
              if Is_Modular_Integer_Type (Idx_Typ)
!               and then RM_Size (Idx_Typ) = Standard_Long_Long_Integer_Size
              then
+                --  Ensure that the type of the object is elaborated before
+                --  the check itself is emitted to avoid elaboration issues
+                --  in the code generator at the library level.
+ 
+                if Is_Itype (Etype (E))
+                  and then In_Open_Scopes (Scope (Etype (E)))
+                then
+                   declare
+                      Ref_Node : constant Node_Id :=
+                                   Make_Itype_Reference (Obj_Loc);
+                   begin
+                      Set_Itype (Ref_Node, Etype (E));
+                      Insert_Action (Declaration_Node (E), Ref_Node);
+                   end;
+                end if;
+ 
                 Insert_Action (Declaration_Node (E),
                   Make_Raise_Storage_Error (Obj_Loc,
                     Condition =>
*************** package body Freeze is
*** 5500,5506 ****
  
              if Warn_On_Redundant_Constructs then
                 Error_Msg_N -- CODEFIX
!                  ("??pragma Pack has no effect, no unplaced components",
                    Get_Rep_Pragma (Rec, Name_Pack));
              end if;
           end if;
--- 5515,5521 ----
  
              if Warn_On_Redundant_Constructs then
                 Error_Msg_N -- CODEFIX
!                  ("?r?pragma Pack has no effect, no unplaced components",
                    Get_Rep_Pragma (Rec, Name_Pack));
              end if;
           end if;
*************** package body Freeze is
*** 5674,5750 ****
              end if;
           end if;
  
-          --  The following checks are relevant only when SPARK_Mode is on as
-          --  they are not standard Ada legality rules.
- 
-          if SPARK_Mode = On then
- 
-             --  A discriminated type cannot be effectively volatile
-             --  (SPARK RM 7.1.3(5)).
- 
-             if Is_Effectively_Volatile (Rec) then
-                if Has_Discriminants (Rec) then
-                   Error_Msg_N ("discriminated type & cannot be volatile", Rec);
-                end if;
- 
-             --  A non-effectively volatile record type cannot contain
-             --  effectively volatile components (SPARK RM 7.1.3(6)).
- 
-             else
-                Comp := First_Component (Rec);
-                while Present (Comp) loop
-                   if Comes_From_Source (Comp)
-                     and then Is_Effectively_Volatile (Etype (Comp))
-                   then
-                      Error_Msg_Name_1 := Chars (Rec);
-                      Error_Msg_N
-                        ("component & of non-volatile type % cannot be "
-                         & "volatile", Comp);
-                   end if;
- 
-                   Next_Component (Comp);
-                end loop;
-             end if;
- 
-             --  A type which does not yield a synchronized object cannot have
-             --  a component that yields a synchronized object (SPARK RM 9.5).
- 
-             if not Yields_Synchronized_Object (Rec) then
-                Comp := First_Component (Rec);
-                while Present (Comp) loop
-                   if Comes_From_Source (Comp)
-                     and then Yields_Synchronized_Object (Etype (Comp))
-                   then
-                      Error_Msg_Name_1 := Chars (Rec);
-                      Error_Msg_N
-                        ("component & of non-synchronized type % cannot be "
-                         & "synchronized", Comp);
-                   end if;
- 
-                   Next_Component (Comp);
-                end loop;
-             end if;
- 
-             --  A Ghost type cannot have a component of protected or task type
-             --  (SPARK RM 6.9(19)).
- 
-             if Is_Ghost_Entity (Rec) then
-                Comp := First_Component (Rec);
-                while Present (Comp) loop
-                   if Comes_From_Source (Comp)
-                     and then Is_Concurrent_Type (Etype (Comp))
-                   then
-                      Error_Msg_Name_1 := Chars (Rec);
-                      Error_Msg_N
-                        ("component & of ghost type % cannot be concurrent",
-                         Comp);
-                   end if;
- 
-                   Next_Component (Comp);
-                end loop;
-             end if;
-          end if;
- 
           --  Make sure that if we have an iterator aspect, then we have
           --  either Constant_Indexing or Variable_Indexing.
  
--- 5689,5694 ----
*************** package body Freeze is
*** 6066,6077 ****
           then
              --  Here we do the wrap
  
-             --  Note on calls to Copy_Separate_Tree. The trees we are copying
-             --  here are fully analyzed, but we definitely want fully syntactic
-             --  unanalyzed trees in the body we construct, so that the analysis
-             --  generates the right visibility, and that is exactly what the
-             --  calls to Copy_Separate_Tree give us.
- 
              Prag := Copy_Import_Pragma;
  
              --  Fix up spec so it is no longer imported and has convention Ada
--- 6010,6015 ----
*************** package body Freeze is
*** 6127,6137 ****
  
              Bod :=
                Make_Subprogram_Body (Loc,
!                 Specification              =>
!                   Copy_Separate_Tree (Spec),
                  Declarations               => New_List (
                    Make_Subprogram_Declaration (Loc,
!                     Specification => Copy_Separate_Tree (Spec)),
                    Prag),
                  Handled_Statement_Sequence =>
                    Make_Handled_Sequence_Of_Statements (Loc,
--- 6065,6074 ----
  
              Bod :=
                Make_Subprogram_Body (Loc,
!                 Specification              => Copy_Subprogram_Spec (Spec),
                  Declarations               => New_List (
                    Make_Subprogram_Declaration (Loc,
!                     Specification => Copy_Subprogram_Spec (Spec)),
                    Prag),
                  Handled_Statement_Sequence =>
                    Make_Handled_Sequence_Of_Statements (Loc,
*************** package body Freeze is
*** 6181,6187 ****
        --  Do not freeze if already frozen since we only need one freeze node
  
        if Is_Frozen (E) then
!          Result := No_List;
           goto Leave;
  
        --  Do not freeze if we are preanalyzing without freezing
--- 6118,6137 ----
        --  Do not freeze if already frozen since we only need one freeze node
  
        if Is_Frozen (E) then
! 
!          if Is_Itype (E)
!            and then not Is_Base_Type (E)
!            and then not Is_Frozen (Etype (E))
!          then
!             --  If a frozen subtype of an unfrozen type seems impossible
!             --  then see Analyze_Protected_Definition.Undelay_Itypes.
! 
!             Result := Freeze_Entity
!                         (Etype (E), N, Do_Freeze_Profile => Do_Freeze_Profile);
!          else
!             Result := No_List;
!          end if;
! 
           goto Leave;
  
        --  Do not freeze if we are preanalyzing without freezing
*************** package body Freeze is
*** 6438,6444 ****
  
              --  Check for needing to wrap imported subprogram
  
!             Wrap_Imported_Subprogram (E);
  
              --  Freeze all parameter types and the return type (RM 13.14(14)).
              --  However skip this for internal subprograms. This is also where
--- 6388,6396 ----
  
              --  Check for needing to wrap imported subprogram
  
!             if not Inside_A_Generic then
!                Wrap_Imported_Subprogram (E);
!             end if;
  
              --  Freeze all parameter types and the return type (RM 13.14(14)).
              --  However skip this for internal subprograms. This is also where
*************** package body Freeze is
*** 7286,7295 ****
           elsif Is_Integer_Type (E) then
              Adjust_Esize_For_Alignment (E);
  
!             if Is_Modular_Integer_Type (E)
!               and then Warn_On_Suspicious_Modulus_Value
!             then
!                Check_Suspicious_Modulus (E);
              end if;
  
           --  The pool applies to named and anonymous access types, but not
--- 7238,7257 ----
           elsif Is_Integer_Type (E) then
              Adjust_Esize_For_Alignment (E);
  
!             if Is_Modular_Integer_Type (E) then
!                --  Standard_Address has been built with the assumption that its
!                --  modulus was System_Address_Size, but this is not a universal
!                --  property and may need to be corrected.
! 
!                if Is_RTE (E, RE_Address) then
!                   Set_Modulus (Standard_Address, Modulus (E));
!                   Set_Intval
!                     (High_Bound (Scalar_Range (Standard_Address)),
!                      Modulus (E) - 1);
! 
!                elsif Warn_On_Suspicious_Modulus_Value then
!                   Check_Suspicious_Modulus (E);
!                end if;
              end if;
  
           --  The pool applies to named and anonymous access types, but not
*************** package body Freeze is
*** 7413,7419 ****
                 --  be an array type, or a nonlimited record type).
  
                 if Has_Private_Declaration (E) then
!                   if (not Is_Record_Type (E) or else not Is_Limited_View (E))
                      and then not Is_Private_Type (E)
                    then
                       Error_Msg_Name_1 := Name_Simple_Storage_Pool_Type;
--- 7375,7382 ----
                 --  be an array type, or a nonlimited record type).
  
                 if Has_Private_Declaration (E) then
!                   if (not Is_Record_Type (E)
!                        or else not Is_Inherently_Limited_Type (E))
                      and then not Is_Private_Type (E)
                    then
                       Error_Msg_Name_1 := Name_Simple_Storage_Pool_Type;
*************** package body Freeze is
*** 7991,7996 ****
--- 7954,7973 ----
  
           Adjust_Esize_For_Alignment (Typ);
        end if;
+ 
+       --  Reject a very large size on a type with a non-standard representation
+       --  because Expand_Freeze_Enumeration_Type cannot deal with it.
+ 
+       if Has_Non_Standard_Rep (Typ)
+         and then Known_Esize (Typ)
+         and then Esize (Typ) > System_Max_Integer_Size
+       then
+          Error_Msg_N
+            ("enumeration type with representation clause too large", Typ);
+          Error_Msg_Uint_1 := UI_From_Int (System_Max_Integer_Size);
+          Error_Msg_N
+            ("\the size of such a type cannot exceed ^ bits", Typ);
+       end if;
     end Freeze_Enumeration_Type;
  
     -----------------------
*************** package body Freeze is
*** 7999,8004 ****
--- 7976,7991 ----
  
     procedure Freeze_Expression (N : Node_Id) is
  
+       function Declared_In_Expanded_Body
+         (N   : Node_Id;
+          Typ : Entity_Id;
+          Nam : Entity_Id) return Boolean;
+       --  Given the N_Handled_Sequence_Of_Statements node of an expander
+       --  generated subprogram body, determines if the frozen entity is
+       --  declared inside this body. This is recognized locating the
+       --  enclosing subprogram of the entity Name or its Type and
+       --  checking if it is this subprogram body.
+ 
        function Find_Aggregate_Component_Desig_Type return Entity_Id;
        --  If the expression is an array aggregate, the type of the component
        --  expressions is also frozen. If the component type is an access type
*************** package body Freeze is
*** 8019,8024 ****
--- 8006,8050 ----
        --  Determines whether an entity E referenced in node N is declared in
        --  the list L.
  
+       -------------------------------
+       -- Declared_In_Expanded_Body --
+       -------------------------------
+ 
+       function Declared_In_Expanded_Body
+         (N   : Node_Id;
+          Typ : Entity_Id;
+          Nam : Entity_Id) return Boolean
+       is
+          pragma Assert (In_Expanded_Body (N));
+ 
+          Subp_Body : constant Node_Id := Parent (N);
+          Subp_Id   : Entity_Id;
+          Scop      : Entity_Id;
+ 
+       begin
+          if Acts_As_Spec (Subp_Body) then
+             Subp_Id := Unique_Defining_Entity (Specification (Subp_Body));
+          else
+             Subp_Id := Corresponding_Spec (Subp_Body);
+          end if;
+ 
+          if Present (Typ) then
+             Scop := Scope (Typ);
+          elsif Present (Nam) then
+             Scop := Scope (Nam);
+          else
+             Scop := Standard_Standard;
+          end if;
+ 
+          while Scop /= Standard_Standard
+            and then not Is_Subprogram (Scop)
+          loop
+             Scop := Scope (Scop);
+          end loop;
+ 
+          return Scop = Subp_Id;
+       end Declared_In_Expanded_Body;
+ 
        -----------------------------------------
        -- Find_Aggregate_Component_Desig_Type --
        -----------------------------------------
*************** package body Freeze is
*** 8065,8075 ****
           if Nkind (P) /= N_Subprogram_Body then
              return False;
  
!          --  AI12-0157: An expression function that is a completion is a freeze
!          --  point. If the body is the result of expansion, it is not.
  
           elsif Was_Expression_Function (P) then
!             return not Comes_From_Source (P);
  
           --  This is the body of a generated predicate function
  
--- 8091,8103 ----
           if Nkind (P) /= N_Subprogram_Body then
              return False;
  
!          --  Treat the generated body of an expression function like other
!          --  bodies generated during expansion (e.g. stream subprograms) so
!          --  that those bodies are not treated as freezing points.
  
           elsif Was_Expression_Function (P) then
!             pragma Assert (not Comes_From_Source (P));
!             return True;
  
           --  This is the body of a generated predicate function
  
*************** package body Freeze is
*** 8113,8122 ****
           Decl_Node : Node_Id;
  
        begin
!          --  If E is an itype, pretend that it is declared in N
  
           if Is_Itype (E) then
!             Decl_Node := N;
           else
              Decl_Node := Declaration_Node (E);
           end if;
--- 8141,8159 ----
           Decl_Node : Node_Id;
  
        begin
!          --  If E is an itype, pretend that it is declared in N except for a
!          --  class-wide subtype with an equivalent type, because this latter
!          --  type comes with a bona-fide declaration node.
  
           if Is_Itype (E) then
!             if Ekind (E) = E_Class_Wide_Subtype
!               and then Present (Equivalent_Type (E))
!             then
!                Decl_Node := Declaration_Node (Equivalent_Type (E));
!             else
!                Decl_Node := N;
!             end if;
! 
           else
              Decl_Node := Declaration_Node (E);
           end if;
*************** package body Freeze is
*** 8137,8150 ****
  
        Allocator_Typ : Entity_Id := Empty;
  
-       Freeze_Outside : Boolean := False;
-       --  This flag is set true if the entity must be frozen outside the
-       --  current subprogram. This happens in the case of expander generated
-       --  subprograms (_Init_Proc, _Input, _Output, _Read, _Write) which do
-       --  not freeze all entities like other bodies, but which nevertheless
-       --  may reference entities that have to be frozen before the body and
-       --  obviously cannot be frozen inside the body.
- 
        Freeze_Outside_Subp  : Entity_Id := Empty;
        --  This entity is set if we are inside a subprogram body and the frozen
        --  entity is defined in the enclosing scope of this subprogram. In such
--- 8174,8179 ----
*************** package body Freeze is
*** 8284,8290 ****
  
        if Desig_Typ /= Empty
          and then (Is_Frozen (Desig_Typ)
!                    or else (not Is_Fully_Defined (Desig_Typ)))
        then
           Desig_Typ := Empty;
        end if;
--- 8313,8319 ----
  
        if Desig_Typ /= Empty
          and then (Is_Frozen (Desig_Typ)
!                    or else not Is_Fully_Defined (Desig_Typ))
        then
           Desig_Typ := Empty;
        end if;
*************** package body Freeze is
*** 8427,8433 ****
  
                    if not In_Spec_Expression
                      and then Nkind (N) = N_Identifier
!                     and then (Present (Entity (N)))
                    then
                       --  We recognize the discriminant case by just looking for
                       --  a reference to a discriminant. It can only be one for
--- 8456,8462 ----
  
                    if not In_Spec_Expression
                      and then Nkind (N) = N_Identifier
!                     and then Present (Entity (N))
                    then
                       --  We recognize the discriminant case by just looking for
                       --  a reference to a discriminant. It can only be one for
*************** package body Freeze is
*** 8489,8567 ****
                    --  An exception occurs when the sequence of statements is
                    --  for an expander generated body that did not do the usual
                    --  freeze all operation. In this case we usually want to
!                   --  freeze outside this body, not inside it, and we skip
!                   --  past the subprogram body that we are inside.
! 
!                   if In_Expanded_Body (Parent_P) then
!                      declare
!                         Subp_Body : constant Node_Id := Parent (Parent_P);
!                         Spec_Id   : Entity_Id;
! 
!                      begin
!                         --  Freeze the entity only when it is declared inside
!                         --  the body of the expander generated procedure. This
!                         --  case is recognized by the subprogram scope of the
!                         --  entity or its type, which is either the spec of an
!                         --  enclosing body, or (in the case of init_procs for
!                         --  which there is no separate spec) the current scope.
! 
!                         if Nkind (Subp_Body) = N_Subprogram_Body then
!                            declare
!                               S : Entity_Id;
! 
!                            begin
!                               Spec_Id := Corresponding_Spec (Subp_Body);
! 
!                               if Present (Typ) then
!                                  S := Scope (Typ);
!                               elsif Present (Nam) then
!                                  S := Scope (Nam);
!                               else
!                                  S := Standard_Standard;
!                               end if;
! 
!                               while S /= Standard_Standard
!                                 and then not Is_Subprogram (S)
!                               loop
!                                  S := Scope (S);
!                               end loop;
! 
!                               if S = Spec_Id then
!                                  exit;
! 
!                               elsif Present (Typ)
!                                 and then Scope (Typ) = Current_Scope
!                                 and then
!                                   Defining_Entity (Subp_Body) = Current_Scope
!                               then
!                                  exit;
!                               end if;
!                            end;
!                         end if;
! 
!                         --  If the entity is not frozen by an expression
!                         --  function that is not a completion, continue
!                         --  climbing the tree.
! 
!                         if Nkind (Subp_Body) = N_Subprogram_Body
!                           and then Was_Expression_Function (Subp_Body)
!                         then
!                            null;
! 
!                         --  Freeze outside the body
! 
!                         else
!                            Parent_P := Parent (Parent_P);
!                            Freeze_Outside := True;
!                         end if;
!                      end;
! 
!                   --  Here if normal case where we are in handled statement
!                   --  sequence and want to do the insertion right there.
  
!                   else
!                      exit;
!                   end if;
  
                 --  If parent is a body or a spec or a block, then the current
                 --  node is a statement or declaration and we can insert the
--- 8518,8528 ----
                    --  An exception occurs when the sequence of statements is
                    --  for an expander generated body that did not do the usual
                    --  freeze all operation. In this case we usually want to
!                   --  freeze outside this body, not inside it, unless the
!                   --  entity is declared inside this expander generated body.
  
!                   exit when not In_Expanded_Body (Parent_P)
!                     or else Declared_In_Expanded_Body (Parent_P, Typ, Nam);
  
                 --  If parent is a body or a spec or a block, then the current
                 --  node is a statement or declaration and we can insert the
*************** package body Freeze is
*** 8597,8603 ****
                    | N_Selective_Accept
                    | N_Triggering_Alternative
                 =>
!                   exit when Is_List_Member (P);
  
                 --  The freeze nodes produced by an expression coming from the
                 --  Actions list of an N_Expression_With_Actions, short-circuit
--- 8558,8594 ----
                    | N_Selective_Accept
                    | N_Triggering_Alternative
                 =>
!                   if No (Current_Subprogram) then
!                      exit when Is_List_Member (P);
! 
!                   --  Check exceptional case documented above for an enclosing
!                   --  handled sequence of statements.
! 
!                   else
!                      declare
!                         Par : Node_Id := Parent (Parent_P);
! 
!                      begin
!                         while Present (Par)
!                           and then
!                             Nkind (Par) /= N_Handled_Sequence_Of_Statements
!                           and then Nkind (Parent (Par)) /= N_Subprogram_Body
!                         loop
!                            Par := Parent (Par);
!                         end loop;
! 
!                         --  If we don't have a parent, then we are not in a
!                         --  well-formed tree and we ignore the freeze request.
!                         --  See previous comment in the enclosing loop.
! 
!                         if No (Par) then
!                            return;
!                         end if;
! 
!                         exit when not In_Expanded_Body (Par)
!                           or else Declared_In_Expanded_Body (Par, Typ, Nam);
!                      end;
!                   end if;
  
                 --  The freeze nodes produced by an expression coming from the
                 --  Actions list of an N_Expression_With_Actions, short-circuit
*************** package body Freeze is
*** 8687,8693 ****
        --  placing them at the proper place, after the generic unit.
  
        if (In_Spec_Exp and not Inside_A_Generic)
-         or else Freeze_Outside
          or else (Is_Type (Current_Scope)
                    and then (not Is_Concurrent_Type (Current_Scope)
                               or else not Has_Completion (Current_Scope)))
--- 8678,8683 ----
*************** package body Freeze is
*** 8712,8728 ****
  
              --  The current scope may be that of a constrained component of
              --  an enclosing record declaration, or of a loop of an enclosing
!             --  quantified expression, which is above the current scope in the
!             --  scope stack. Indeed in the context of a quantified expression,
!             --  a scope is created and pushed above the current scope in order
!             --  to emulate the loop-like behavior of the quantified expression.
              --  If the expression is within a top-level pragma, as for a pre-
              --  condition on a library-level subprogram, nothing to do.
  
              if not Is_Compilation_Unit (Current_Scope)
                and then (Is_Record_Type (Scope (Current_Scope))
!                          or else Nkind (Parent (Current_Scope)) =
!                                                      N_Quantified_Expression)
              then
                 Pos := Pos - 1;
              end if;
--- 8702,8720 ----
  
              --  The current scope may be that of a constrained component of
              --  an enclosing record declaration, or of a loop of an enclosing
!             --  quantified expression or aggregate with an iterated component
!             --  in Ada 2022, which is above the current scope in the scope
!             --  stack. Indeed in the context of a quantified expression or
!             --  an aggregate with an iterated component, an internal scope is
!             --  created and pushed above the current scope in order to emulate
!             --  the loop-like behavior of the construct.
              --  If the expression is within a top-level pragma, as for a pre-
              --  condition on a library-level subprogram, nothing to do.
  
              if not Is_Compilation_Unit (Current_Scope)
                and then (Is_Record_Type (Scope (Current_Scope))
!                          or else (Ekind (Current_Scope) = E_Loop
!                                    and then Is_Internal (Current_Scope)))
              then
                 Pos := Pos - 1;
              end if;
*************** package body Freeze is
*** 10130,10135 ****
--- 10122,10134 ----
             ("pragma Inline_Always not allowed for dispatching subprograms", E);
        end if;
  
+       if Is_Dispatching_Operation (E)
+         and then Present (Overridden_Operation (E))
+       then
+          Local_Restrict.Check_Overriding
+            (Overrider_Op => E, Overridden_Op => Overridden_Operation (E));
+       end if;
+ 
        --  Because of the implicit representation of inherited predefined
        --  operators in the front-end, the overriding status of the operation
        --  may be affected when a full view of a type is analyzed, and this is
diff -Nrcpad gcc-13.2.0/gcc/ada/freeze.ads gcc-14.1.0/gcc/ada/freeze.ads
*** gcc-13.2.0/gcc/ada/freeze.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/freeze.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/frontend.adb gcc-14.1.0/gcc/ada/frontend.adb
*** gcc-13.2.0/gcc/ada/frontend.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/frontend.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 426,449 ****
  
              --  Cleanup processing after completing main analysis
  
!             --  In GNATprove_Mode we do not perform most expansions but body
!             --  instantiation is needed.
  
!             pragma Assert
!               (Operating_Mode = Generate_Code
!                 or else Operating_Mode = Check_Semantics);
  
-             if Operating_Mode = Generate_Code
-               or else GNATprove_Mode
-             then
                 Instantiate_Bodies;
-             end if;
  
!             --  Analyze all inlined bodies, check access-before-elaboration
!             --  rules, and remove ignored Ghost code when generating code or
!             --  compiling for GNATprove.
  
-             if Operating_Mode = Generate_Code or else GNATprove_Mode then
                 if Inline_Processing_Required then
                    Analyze_Inlined_Bodies;
                 end if;
--- 426,442 ----
  
              --  Cleanup processing after completing main analysis
  
!             pragma Assert (Operating_Mode in Check_Semantics | Generate_Code);
  
!             if Operating_Mode = Generate_Code or else GNATprove_Mode then
! 
!                --  In GNATprove_Mode we do not perform most expansions but body
!                --  instantiation is needed.
  
                 Instantiate_Bodies;
  
!                --  Analyze inlined bodies if required
  
                 if Inline_Processing_Required then
                    Analyze_Inlined_Bodies;
                 end if;
*************** begin
*** 455,460 ****
--- 448,455 ----
                    Collect_Garbage_Entities;
                 end if;
  
+                --  Check access-before-elaboration rules
+ 
                 if Legacy_Elaboration_Checks then
                    Check_Elab_Calls;
                 end if;
*************** begin
*** 570,575 ****
     if Mapping_File_Name /= null then
        Fmap.Update_Mapping_File (Mapping_File_Name.all);
     end if;
- 
-    return;
  end Frontend;
--- 565,568 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/frontend.ads gcc-14.1.0/gcc/ada/frontend.ads
*** gcc-13.2.0/gcc/ada/frontend.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/frontend.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/Make-lang.in gcc-14.1.0/gcc/ada/gcc-interface/Make-lang.in
*** gcc-13.2.0/gcc/ada/gcc-interface/Make-lang.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/Make-lang.in	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Top level -*- makefile -*- fragment for GNU Ada (GNAT).
! # Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level -*- makefile -*- fragment for GNU Ada (GNAT).
! # Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** else
*** 71,80 ****
    ADAFLAGS=$(COMMON_ADAFLAGS)
  endif
  
  ALL_ADAFLAGS = \
!   $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) $(CHECKING_ADAFLAGS) $(WARN_ADAFLAGS)
  FORCE_DEBUG_ADAFLAGS = -g
- ADA_CFLAGS =
  COMMON_ADA_INCLUDES = -I- -I. -Iada/generated -Iada -I$(srcdir)/ada
  
  STAGE1_LIBS=
--- 71,81 ----
    ADAFLAGS=$(COMMON_ADAFLAGS)
  endif
  
+ ADA_CFLAGS =
  ALL_ADAFLAGS = \
!   $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) $(CHECKING_ADAFLAGS) \
!   $(WARN_ADAFLAGS) $(PICFLAG)
  FORCE_DEBUG_ADAFLAGS = -g
  COMMON_ADA_INCLUDES = -I- -I. -Iada/generated -Iada -I$(srcdir)/ada
  
  STAGE1_LIBS=
*************** GNAT_ADA_OBJS =	\
*** 370,375 ****
--- 371,377 ----
   ada/lib-xref.o	\
   ada/lib.o	\
   ada/live.o	\
+  ada/local_restrict.o \
   ada/namet-sp.o	\
   ada/namet.o	\
   ada/nlists.o	\
*************** GNAT_ADA_OBJS+= \
*** 536,541 ****
--- 538,545 ----
   ada/libgnat/s-secsta.o	\
   ada/libgnat/s-soflin.o	\
   ada/libgnat/s-soliin.o	\
+  ada/libgnat/s-spark.o	\
+  ada/libgnat/s-spcuop.o	\
   ada/libgnat/s-stache.o	\
   ada/libgnat/s-stalib.o	\
   ada/libgnat/s-stoele.o	\
*************** GNAT_ADA_OBJS+= \
*** 547,554 ****
--- 551,561 ----
   ada/libgnat/s-trasym.o \
   ada/libgnat/s-unstyp.o	\
   ada/libgnat/s-valint.o	\
+  ada/libgnat/s-valspe.o	\
   ada/libgnat/s-valuns.o	\
   ada/libgnat/s-valuti.o	\
+  ada/libgnat/s-vs_int.o \
+  ada/libgnat/s-vs_uns.o \
   ada/libgnat/s-wchcnv.o	\
   ada/libgnat/s-wchcon.o	\
   ada/libgnat/s-wchjis.o	\
*************** ada.install-pdf: $(ADA_PDFFILES)
*** 882,891 ****
  	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \
  	done
  
- ada.html:
- 
- ada.install-html:
- 
  doc/gnat_ugn.dvi: ada/gnat_ugn.texi \
  	$(gcc_docdir)/include/fdl.texi	\
  	$(gcc_docdir)/include/gcc-common.texi gcc-vers.texi
--- 889,894 ----
*************** doc/gnat_rm.pdf: ada/gnat_rm.texi $(gcc_
*** 910,915 ****
--- 913,949 ----
  doc/gnat-style.pdf: ada/gnat-style.texi $(gcc_docdir)/include/fdl.texi
  	$(TEXI2PDF) -c -I $(abs_docdir)/include -o $@ $<
  
+ ADA_TEXI_FILES = \
+        ada/gnat_rm.texi \
+        ada/gnat_ugn.texi \
+        $(gcc_docdir)/include/fdl.texi \
+        $(gcc_docdir)/include/gpl_v3.texi \
+        $(gcc_docdir)/include/gcc-common.texi \
+        gcc-vers.texi
+ 
+ $(build_htmldir)/ada/index.html: $(ADA_TEXI_FILES)
+ 	$(mkinstalldirs) $(@D)
+ 	rm -f $(@D)/*
+ 	$(TEXI2HTML) -I $(gcc_docdir)/include -I $(srcdir)/ada -o $(@D) $<
+ 
+ ada.html: $(build_htmldir)/ada/index.html
+ ada.install-html: $(build_htmldir)/ada
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)"
+ 	@for p in $(build_htmldir)/ada; do \
+ 	  if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
+ 	  f=$(html__strip_dir) \
+ 	  if test -d "$$d$$p"; then \
+ 	    echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+ 	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
+ 	  else \
+ 	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
+ 	  fi; \
+ 	done
+ 
  # Install hooks:
  # gnat1 is installed elsewhere as part of $(COMPILERS).
  
*************** ada/b_gnat1.adb : $(GNAT1_ADA_OBJS)
*** 1109,1115 ****
  ada/b_gnat1.o : ada/b_gnat1.adb
          # Do not use ADAFLAGS to get rid of -gnatg which generates a lot
          # of style messages.
! 	$(CC) -c $(CFLAGS) $(ADA_CFLAGS) -gnatp -gnatws $(ADA_INCLUDES) \
  	    $< $(ADA_OUTPUT_OPTION)
  
  ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o
--- 1143,1149 ----
  ada/b_gnat1.o : ada/b_gnat1.adb
          # Do not use ADAFLAGS to get rid of -gnatg which generates a lot
          # of style messages.
! 	$(CC) -c $(CFLAGS) $(ADA_CFLAGS) $(PICFLAG) -gnatp -gnatws $(ADA_INCLUDES) \
  	    $< $(ADA_OUTPUT_OPTION)
  
  ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o
*************** ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/g
*** 1118,1124 ****
  	$(MV) b_gnatb.adb b_gnatb.ads ada/
  
  ada/b_gnatb.o : ada/b_gnatb.adb
! 	$(CC) -c $(CFLAGS) $(ADA_CFLAGS) -gnatp -gnatws $(ADA_INCLUDES) \
  	    $< $(ADA_OUTPUT_OPTION)
  
  include $(srcdir)/ada/Make-generated.in
--- 1152,1158 ----
  	$(MV) b_gnatb.adb b_gnatb.ads ada/
  
  ada/b_gnatb.o : ada/b_gnatb.adb
! 	$(CC) -c $(CFLAGS) $(ADA_CFLAGS) $(PICFLAG) -gnatp -gnatws $(ADA_INCLUDES) \
  	    $< $(ADA_OUTPUT_OPTION)
  
  include $(srcdir)/ada/Make-generated.in
*************** ada/gnatvsn.o : ada/gnatvsn.adb ada/gene
*** 1172,1188 ****
  	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION)
  	@$(ADA_DEPS)
  
- # Dependencies for windows specific tool (mdll)
- 
- ada/mdll.o : ada/mdll.adb ada/mdll.ads ada/mdll-fil.ads ada/mdll-utl.ads
- 	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION)
- 
- ada/mdll-fil.o : ada/mdll-fil.adb ada/mdll.ads ada/mdll-fil.ads
- 	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION)
- 
- ada/mdll-utl.o : ada/mdll-utl.adb ada/mdll.ads ada/mdll-utl.ads ada/sdefault.ads ada/types.ads
- 	$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION)
- 
  # All generated files.  Perhaps we should build all of these in the same
  # subdirectory, and get rid of ada/bldtools.
  # Warning: the files starting with ada/gnat.ads are not really generated,
--- 1206,1211 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/Makefile.in gcc-14.1.0/gcc/ada/gcc-interface/Makefile.in
*** gcc-13.2.0/gcc/ada/gcc-interface/Makefile.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/Makefile.in	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Makefile for GNU Ada Compiler (GNAT).
! #   Copyright (C) 1994-2023 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Makefile for GNU Ada Compiler (GNAT).
! #   Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** LS = ls
*** 91,96 ****
--- 91,97 ----
  RANLIB = @RANLIB@
  RANLIB_FLAGS = @ranlib_flags@
  AWK = @AWK@
+ PICFLAG = @PICFLAG@
  
  COMPILER = $(CC)
  COMPILER_FLAGS = $(CFLAGS)
*************** ALL_CPPFLAGS = $(CPPFLAGS)
*** 239,245 ****
--- 240,250 ----
  ALL_COMPILERFLAGS = $(ALL_CFLAGS)
  
  # This is where we get libiberty.a from.
+ ifneq ($(findstring $(PICFLAG),-fPIC -fPIE),)
+ LIBIBERTY = ../../libiberty/pic/libiberty.a
+ else
  LIBIBERTY = ../../libiberty/libiberty.a
+ endif
  
  # We need to link against libbacktrace because diagnostic.c in
  # libcommon.a uses it.
*************** TOOLS_LIBS = ../version.o ../link.o ../t
*** 257,263 ****
    $(SYSLIBS) $(TGT_LIB)
  
  # Add -no-pie to TOOLS_LIBS since some of them are compiled with -fno-PIE.
! TOOLS_LIBS += @NO_PIE_FLAG@
  
  # Specify the directories to be searched for header files.
  # Both . and srcdir are used, in that order,
--- 262,268 ----
    $(SYSLIBS) $(TGT_LIB)
  
  # Add -no-pie to TOOLS_LIBS since some of them are compiled with -fno-PIE.
! TOOLS_LIBS += @LD_PICFLAG@
  
  # Specify the directories to be searched for header files.
  # Both . and srcdir are used, in that order,
*************** gnatlib-shared-darwin:
*** 789,800 ****
  		$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
  		$(SO_OPTS) \
  		-Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
! 		$(MISCLIB)
  	cd $(RTSDIR); $(GCC_FOR_ADA_RTS) -dynamiclib $(PICFLAG_FOR_TARGET) \
  		-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
  		$(GNATRTL_TASKING_OBJS) \
  		$(SO_OPTS) \
  		-Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
  		$(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
  	cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
  		libgnat$(soext)
--- 794,808 ----
  		$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
  		$(SO_OPTS) \
  		-Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
! 		-nodefaultrpaths -Wl,-rpath,@loader_path/,-rpath,@loader_path/.. \
! 		-Wl,-rpath,@loader_path/../../../../ $(MISCLIB)
  	cd $(RTSDIR); $(GCC_FOR_ADA_RTS) -dynamiclib $(PICFLAG_FOR_TARGET) \
  		-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
  		$(GNATRTL_TASKING_OBJS) \
  		$(SO_OPTS) \
  		-Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+ 		-nodefaultrpaths -Wl,-rpath,@loader_path/,-rpath,@loader_path/.. \
+ 		-Wl,-rpath,@loader_path/../../../../ \
  		$(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
  	cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
  		libgnat$(soext)
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/ada-builtin-types.def gcc-14.1.0/gcc/ada/gcc-interface/ada-builtin-types.def
*** gcc-13.2.0/gcc/ada/gcc-interface/ada-builtin-types.def	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/ada-builtin-types.def	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* This file contains the type definitions for the builtins exclusively
     used in the GNU Ada compiler.
  
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,7 ----
  /* This file contains the type definitions for the builtins exclusively
     used in the GNU Ada compiler.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/ada-builtins.def gcc-14.1.0/gcc/ada/gcc-interface/ada-builtins.def
*** gcc-13.2.0/gcc/ada/gcc-interface/ada-builtins.def	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/ada-builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* This file contains the definitions for the builtins exclusively used
     in the GNU Ada compiler.
  
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,7 ----
  /* This file contains the definitions for the builtins exclusively used
     in the GNU Ada compiler.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/ada-tree.def gcc-14.1.0/gcc/ada/gcc-interface/ada-tree.def
*** gcc-13.2.0/gcc/ada/gcc-interface/ada-tree.def	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/ada-tree.def	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              Specification                               *
   *                                                                          *
!  *            Copyright (C) 1992-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              Specification                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/ada-tree.h gcc-14.1.0/gcc/ada/gcc-interface/ada-tree.h
*** gcc-13.2.0/gcc/ada/gcc-interface/ada-tree.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/ada-tree.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/ada.h gcc-14.1.0/gcc/ada/gcc-interface/ada.h
*** gcc-13.2.0/gcc/ada/gcc-interface/ada.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/ada.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/config-lang.in gcc-14.1.0/gcc/ada/gcc-interface/config-lang.in
*** gcc-13.2.0/gcc/ada/gcc-interface/config-lang.in	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/config-lang.in	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2023 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/cuintp.cc gcc-14.1.0/gcc/ada/gcc-interface/cuintp.cc
*** gcc-13.2.0/gcc/ada/gcc-interface/cuintp.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/cuintp.cc	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/decl.cc gcc-14.1.0/gcc/ada/gcc-interface/decl.cc
*** gcc-13.2.0/gcc/ada/gcc-interface/decl.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/decl.cc	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** struct GTY((for_user)) tree_entity_vec_m
*** 163,179 ****
    vec<Entity_Id, va_gc_atomic> *to;
  };
  
- void
- gt_pch_nx (Entity_Id &)
- {
- }
- 
- void
- gt_pch_nx (Entity_Id *x, gt_pointer_operator op, void *cookie)
- {
-   op (x, NULL, cookie);
- }
- 
  struct dummy_type_hasher : ggc_cache_ptr_hash<tree_entity_vec_map>
  {
    static inline hashval_t
--- 163,168 ----
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 785,791 ****
  	if ((TREE_CODE (gnu_type) == UNCONSTRAINED_ARRAY_TYPE
  	     && No (gnat_renamed_obj))
  	    || TYPE_IS_DUMMY_P (gnu_type)
! 	    || TREE_CODE (gnu_type) == VOID_TYPE)
  	  {
  	    gcc_assert (type_annotate_only);
  	    if (this_global)
--- 774,780 ----
  	if ((TREE_CODE (gnu_type) == UNCONSTRAINED_ARRAY_TYPE
  	     && No (gnat_renamed_obj))
  	    || TYPE_IS_DUMMY_P (gnu_type)
! 	    || VOID_TYPE_P (gnu_type))
  	  {
  	    gcc_assert (type_annotate_only);
  	    if (this_global)
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 840,846 ****
  		    if (TREE_CODE (gnu_expr) == COMPONENT_REF
  			&& TYPE_IS_PADDING_P
  			   (TREE_TYPE (TREE_OPERAND (gnu_expr, 0)))
! 			&& TREE_CODE (TREE_OPERAND (gnu_expr, 0)) == VAR_DECL
  			&& (TREE_READONLY (TREE_OPERAND (gnu_expr, 0))
  			    || DECL_READONLY_ONCE_ELAB
  			       (TREE_OPERAND (gnu_expr, 0))))
--- 829,835 ----
  		    if (TREE_CODE (gnu_expr) == COMPONENT_REF
  			&& TYPE_IS_PADDING_P
  			   (TREE_TYPE (TREE_OPERAND (gnu_expr, 0)))
! 			&& VAR_P (TREE_OPERAND (gnu_expr, 0))
  			&& (TREE_READONLY (TREE_OPERAND (gnu_expr, 0))
  			    || DECL_READONLY_ONCE_ELAB
  			       (TREE_OPERAND (gnu_expr, 0))))
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 900,906 ****
  	     || (TYPE_SIZE (gnu_type)
  		 && integer_zerop (TYPE_SIZE (gnu_type))
  		 && !TREE_OVERFLOW (TYPE_SIZE (gnu_type))))
! 	    && !Is_Constr_Subt_For_UN_Aliased (gnat_type)
  	    && No (gnat_renamed_obj)
  	    && No (Address_Clause (gnat_entity)))
  	  gnu_size = bitsize_unit_node;
--- 889,895 ----
  	     || (TYPE_SIZE (gnu_type)
  		 && integer_zerop (TYPE_SIZE (gnu_type))
  		 && !TREE_OVERFLOW (TYPE_SIZE (gnu_type))))
! 	    && !Is_Constr_Array_Subt_With_Bounds (gnat_type)
  	    && No (gnat_renamed_obj)
  	    && No (Address_Clause (gnat_entity)))
  	  gnu_size = bitsize_unit_node;
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 918,924 ****
  		    && kind != E_Exception
  		    && kind != E_Out_Parameter
  		    && Is_Composite_Type (gnat_type)
! 		    && !Is_Constr_Subt_For_UN_Aliased (gnat_type)
  		    && !Is_Exported (gnat_entity)
  		    && !imported_p
  		    && No (gnat_renamed_obj)
--- 907,913 ----
  		    && kind != E_Exception
  		    && kind != E_Out_Parameter
  		    && Is_Composite_Type (gnat_type)
! 		    && !Is_Constr_Array_Subt_With_Bounds (gnat_type)
  		    && !Is_Exported (gnat_entity)
  		    && !imported_p
  		    && No (gnat_renamed_obj)
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 943,953 ****
  	    check_ok_for_atomic_type (gnu_inner, gnat_entity, true);
  	  }
  
! 	/* If this is an aliased object with an unconstrained array nominal
! 	   subtype, make a type that includes the template.  We will either
! 	   allocate or create a variable of that type, see below.  */
! 	if (Is_Constr_Subt_For_UN_Aliased (gnat_type)
! 	    && Is_Array_Type (gnat_und_type)
  	    && !type_annotate_only)
  	  {
  	    tree gnu_array = gnat_to_gnu_type (Base_Type (gnat_type));
--- 932,941 ----
  	    check_ok_for_atomic_type (gnu_inner, gnat_entity, true);
  	  }
  
! 	/* If this is an array allocated with its bounds, make a type that
! 	   includes the template.  We will either allocate it or create a
! 	   variable of that type, see below.  */
! 	if (Is_Constr_Array_Subt_With_Bounds (gnat_type)
  	    && !type_annotate_only)
  	  {
  	    tree gnu_array = gnat_to_gnu_type (Base_Type (gnat_type));
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 997,1003 ****
  	   size might be zero at run time, we force at least the unit size.  */
  	if (Is_Aliased (gnat_entity)
  	    && Is_Constrained (gnat_type)
! 	    && !Is_Constr_Subt_For_UN_Aliased (gnat_type)
  	    && Is_Array_Type (gnat_und_type)
  	    && !TREE_CONSTANT (gnu_object_size))
  	  gnu_size = size_binop (MAX_EXPR, gnu_object_size, bitsize_unit_node);
--- 985,991 ----
  	   size might be zero at run time, we force at least the unit size.  */
  	if (Is_Aliased (gnat_entity)
  	    && Is_Constrained (gnat_type)
! 	    && !Is_Constr_Array_Subt_With_Bounds (gnat_type)
  	    && Is_Array_Type (gnat_und_type)
  	    && !TREE_CONSTANT (gnu_object_size))
  	  gnu_size = size_binop (MAX_EXPR, gnu_object_size, bitsize_unit_node);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1076,1084 ****
  		|| EXPRESSION_CLASS_P (inner)
  		/* We need to detect the case where a temporary is created to
  		   hold the return value, since we cannot safely rename it at
! 		   top level as it lives only in the elaboration routine.  */
! 		|| (TREE_CODE (inner) == VAR_DECL
! 		    && DECL_RETURN_VALUE_P (inner))
  		/* We also need to detect the case where the front-end creates
  		   a dangling 'reference to a function call at top level and
  		   substitutes it in the renaming, for example:
--- 1064,1076 ----
  		|| EXPRESSION_CLASS_P (inner)
  		/* We need to detect the case where a temporary is created to
  		   hold the return value, since we cannot safely rename it at
! 		   top level because it lives only in the elaboration routine.
! 		   But, at a lower level, an object initialized by a function
! 		   call may be (implicitly) renamed as this temporary by the
! 		   front-end and, in this case, we cannot make a copy.  */
! 		|| (VAR_P (inner)
! 		    && DECL_RETURN_VALUE_P (inner)
! 		    && global_bindings_p ())
  		/* We also need to detect the case where the front-end creates
  		   a dangling 'reference to a function call at top level and
  		   substitutes it in the renaming, for example:
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1092,1103 ****
  		     q__b : boolean renames q__R1s.all.e (1);
  
  		   We cannot safely rename the rewritten expression since the
! 		   underlying object lives only in the elaboration routine.  */
! 		|| (TREE_CODE (inner) == INDIRECT_REF
  		    && (inner
  			= remove_conversions (TREE_OPERAND (inner, 0), true))
! 		    && TREE_CODE (inner) == VAR_DECL
! 		    && DECL_RETURN_VALUE_P (inner)))
  	      ;
  
  	    /* Otherwise, this is an lvalue being renamed, so it needs to be
--- 1084,1097 ----
  		     q__b : boolean renames q__R1s.all.e (1);
  
  		   We cannot safely rename the rewritten expression since the
! 		   underlying object lives only in the elaboration routine but,
! 		   as above, this cannot be done at a lower level.  */
! 		|| (INDIRECT_REF_P (inner)
  		    && (inner
  			= remove_conversions (TREE_OPERAND (inner, 0), true))
! 		    && VAR_P (inner)
! 		    && DECL_RETURN_VALUE_P (inner)
! 		    && global_bindings_p ()))
  	      ;
  
  	    /* Otherwise, this is an lvalue being renamed, so it needs to be
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1150,1162 ****
  		   the entity as indirect reference to the renamed object.  */
  		if (Materialize_Entity (gnat_entity))
  		  {
  		    gnu_type = build_reference_type (gnu_type);
  		    const_flag = true;
  		    volatile_flag = false;
  
  		    gnu_expr = build_unary_op (ADDR_EXPR, gnu_type, gnu_expr);
  
! 		    create_var_decl (gnu_entity_name, gnu_ext_name,
  				     TREE_TYPE (gnu_expr), gnu_expr,
  				     const_flag, Is_Public (gnat_entity),
  				     imported_p, static_flag, volatile_flag,
--- 1144,1167 ----
  		   the entity as indirect reference to the renamed object.  */
  		if (Materialize_Entity (gnat_entity))
  		  {
+ 		    /* If this is an array allocated with its bounds, we make
+ 		       its type a thin reference, the reference counterpart of
+ 		       a thin pointer, exactly as we would have done in the
+ 		       non-renaming case below.  */
+ 		    if (Is_Constr_Array_Subt_With_Bounds (gnat_type)
+ 			&& !type_annotate_only)
+ 		      {
+ 			tree gnu_array
+ 			  = gnat_to_gnu_type (Base_Type (gnat_type));
+ 			gnu_type = TYPE_OBJECT_RECORD_TYPE (gnu_array);
+ 		      }
  		    gnu_type = build_reference_type (gnu_type);
  		    const_flag = true;
  		    volatile_flag = false;
  
  		    gnu_expr = build_unary_op (ADDR_EXPR, gnu_type, gnu_expr);
  
! 		    create_var_decl (gnu_entity_name, NULL_TREE,
  				     TREE_TYPE (gnu_expr), gnu_expr,
  				     const_flag, Is_Public (gnat_entity),
  				     imported_p, static_flag, volatile_flag,
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1212,1218 ****
  	    && (POINTER_TYPE_P (gnu_type) || TYPE_IS_FAT_POINTER_P (gnu_type))
  	    && !gnu_expr
  	    && !Is_Imported (gnat_entity))
! 	  gnu_expr = integer_zero_node;
  
  	/* If we are defining the object and it has an Address clause, we must
  	   either get the address expression from the saved GCC tree for the
--- 1217,1223 ----
  	    && (POINTER_TYPE_P (gnu_type) || TYPE_IS_FAT_POINTER_P (gnu_type))
  	    && !gnu_expr
  	    && !Is_Imported (gnat_entity))
! 	  gnu_expr = null_pointer_node;
  
  	/* If we are defining the object and it has an Address clause, we must
  	   either get the address expression from the saved GCC tree for the
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1246,1253 ****
  	    /* If this is an aliased object with an unconstrained array nominal
  	       subtype, then it can overlay only another aliased object with an
  	       unconstrained array nominal subtype and compatible template.  */
! 	    if (Is_Constr_Subt_For_UN_Aliased (gnat_type)
! 		&& Is_Array_Type (gnat_und_type)
  		&& !type_annotate_only)
  	      {
  		tree rec_type = TREE_TYPE (gnu_type);
--- 1251,1257 ----
  	    /* If this is an aliased object with an unconstrained array nominal
  	       subtype, then it can overlay only another aliased object with an
  	       unconstrained array nominal subtype and compatible template.  */
! 	    if (Is_Constr_Array_Subt_With_Bounds (gnat_type)
  		&& !type_annotate_only)
  	      {
  		tree rec_type = TREE_TYPE (gnu_type);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1481,1494 ****
  				       (TREE_TYPE (TYPE_FIELDS (gnu_type))))))
  	  static_flag = true;
  
! 	/* If this is an aliased object with an unconstrained array nominal
! 	   subtype, we make its type a thin reference, i.e. the reference
! 	   counterpart of a thin pointer, so it points to the array part.
! 	   This is aimed to make it easier for the debugger to decode the
! 	   object.  Note that we have to do it this late because of the
! 	   couple of allocation adjustments that might be made above.  */
! 	if (Is_Constr_Subt_For_UN_Aliased (gnat_type)
! 	    && Is_Array_Type (gnat_und_type)
  	    && !type_annotate_only)
  	  {
  	    /* In case the object with the template has already been allocated
--- 1485,1497 ----
  				       (TREE_TYPE (TYPE_FIELDS (gnu_type))))))
  	  static_flag = true;
  
! 	/* If this is an array allocated with its bounds, we make its type a
! 	   thin reference, i.e. the reference counterpart of a thin pointer,
! 	   so that it points to the array part.  This is aimed at making it
! 	   easier for the debugger to decode the object.  Note that we have
! 	   to do it this late because of the couple of allocation adjustments
! 	   that might be made above.  */
! 	if (Is_Constr_Array_Subt_With_Bounds (gnat_type)
  	    && !type_annotate_only)
  	  {
  	    /* In case the object with the template has already been allocated
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1527,1533 ****
  
  	/* If this name is external or a name was specified, use it, but don't
  	   use the Interface_Name with an address clause (see cd30005).  */
! 	if ((Is_Public (gnat_entity) && !Is_Imported (gnat_entity))
  	    || (Present (Interface_Name (gnat_entity))
  		&& No (Address_Clause (gnat_entity))))
  	  gnu_ext_name = create_concat_name (gnat_entity, NULL);
--- 1530,1536 ----
  
  	/* If this name is external or a name was specified, use it, but don't
  	   use the Interface_Name with an address clause (see cd30005).  */
! 	if ((Is_Public (gnat_entity) && !imported_p)
  	    || (Present (Interface_Name (gnat_entity))
  		&& No (Address_Clause (gnat_entity))))
  	  gnu_ext_name = create_concat_name (gnat_entity, NULL);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1611,1617 ****
  	   and optimization isn't enabled, then force it in memory so that
  	   a register won't be allocated to it with possible subparts left
  	   uninitialized and reaching the register allocator.  */
! 	else if (TREE_CODE (gnu_decl) == VAR_DECL
  		 && !DECL_EXTERNAL (gnu_decl)
  		 && !TREE_STATIC (gnu_decl)
  		 && DECL_MODE (gnu_decl) != BLKmode
--- 1614,1620 ----
  	   and optimization isn't enabled, then force it in memory so that
  	   a register won't be allocated to it with possible subparts left
  	   uninitialized and reaching the register allocator.  */
! 	else if (VAR_P (gnu_decl)
  		 && !DECL_EXTERNAL (gnu_decl)
  		 && !TREE_STATIC (gnu_decl)
  		 && DECL_MODE (gnu_decl) != BLKmode
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2108,2114 ****
  	tree *gnu_index_types = XALLOCAVEC (tree, ndim);
  	tree *gnu_temp_fields = XALLOCAVEC (tree, ndim);
  	tree gnu_max_size = size_one_node;
! 	tree comp_type, tem, obj;
  	Entity_Id gnat_index;
  	alias_set_type ptr_set = -1;
  	int index;
--- 2111,2117 ----
  	tree *gnu_index_types = XALLOCAVEC (tree, ndim);
  	tree *gnu_temp_fields = XALLOCAVEC (tree, ndim);
  	tree gnu_max_size = size_one_node;
! 	tree comp_type, fld, tem, obj;
  	Entity_Id gnat_index;
  	alias_set_type ptr_set = -1;
  	int index;
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2181,2191 ****
  	   if the FIELD_DECLs are distinct as objects.  */
  	if (COMPLETE_TYPE_P (gnu_fat_type))
  	  {
! 	    tem = TYPE_FIELDS (gnu_fat_type);
! 	    if (TYPE_ALIAS_SET_KNOWN_P (TREE_TYPE (tem)))
! 	      ptr_set = TYPE_ALIAS_SET (TREE_TYPE (tem));
! 	    TREE_TYPE (tem) = ptr_type_node;
! 	    TREE_TYPE (DECL_CHAIN (tem)) = gnu_ptr_template;
  	    TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (gnu_fat_type)) = 0;
  	    for (tree t = gnu_fat_type; t; t = TYPE_NEXT_VARIANT (t))
  	      SET_TYPE_UNCONSTRAINED_ARRAY (t, gnu_type);
--- 2184,2194 ----
  	   if the FIELD_DECLs are distinct as objects.  */
  	if (COMPLETE_TYPE_P (gnu_fat_type))
  	  {
! 	    fld = TYPE_FIELDS (gnu_fat_type);
! 	    if (TYPE_ALIAS_SET_KNOWN_P (TYPE_CANONICAL (TREE_TYPE (fld))))
! 	      ptr_set = TYPE_ALIAS_SET (TYPE_CANONICAL (TREE_TYPE (fld)));
! 	    TREE_TYPE (fld) = ptr_type_node;
! 	    TREE_TYPE (DECL_CHAIN (fld)) = gnu_ptr_template;
  	    TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (gnu_fat_type)) = 0;
  	    for (tree t = gnu_fat_type; t; t = TYPE_NEXT_VARIANT (t))
  	      SET_TYPE_UNCONSTRAINED_ARRAY (t, gnu_type);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2194,2208 ****
  	  {
  	    /* We make the fields addressable for the sake of compatibility
  	       with languages for which the regular fields are addressable.  */
! 	    tem
  	      = create_field_decl (get_identifier ("P_ARRAY"),
  				   ptr_type_node, gnu_fat_type,
  				   NULL_TREE, NULL_TREE, 0, 1);
! 	    DECL_CHAIN (tem)
  	      = create_field_decl (get_identifier ("P_BOUNDS"),
  				   gnu_ptr_template, gnu_fat_type,
  				   NULL_TREE, NULL_TREE, 0, 1);
! 	    finish_fat_pointer_type (gnu_fat_type, tem);
  	    SET_TYPE_UNCONSTRAINED_ARRAY (gnu_fat_type, gnu_type);
  	  }
  
--- 2197,2211 ----
  	  {
  	    /* We make the fields addressable for the sake of compatibility
  	       with languages for which the regular fields are addressable.  */
! 	    fld
  	      = create_field_decl (get_identifier ("P_ARRAY"),
  				   ptr_type_node, gnu_fat_type,
  				   NULL_TREE, NULL_TREE, 0, 1);
! 	    DECL_CHAIN (fld)
  	      = create_field_decl (get_identifier ("P_BOUNDS"),
  				   gnu_ptr_template, gnu_fat_type,
  				   NULL_TREE, NULL_TREE, 0, 1);
! 	    finish_fat_pointer_type (gnu_fat_type, fld);
  	    SET_TYPE_UNCONSTRAINED_ARRAY (gnu_fat_type, gnu_type);
  	  }
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2227,2233 ****
  	   fields once we build them.  */
  	tem = build3 (COMPONENT_REF, gnu_ptr_template,
  		      build0 (PLACEHOLDER_EXPR, gnu_fat_type),
! 		      DECL_CHAIN (TYPE_FIELDS (gnu_fat_type)), NULL_TREE);
  	gnu_template_reference
  	  = build_unary_op (INDIRECT_REF, gnu_template_type, tem);
  	TREE_READONLY (gnu_template_reference) = 1;
--- 2230,2236 ----
  	   fields once we build them.  */
  	tem = build3 (COMPONENT_REF, gnu_ptr_template,
  		      build0 (PLACEHOLDER_EXPR, gnu_fat_type),
! 		      DECL_CHAIN (fld), NULL_TREE);
  	gnu_template_reference
  	  = build_unary_op (INDIRECT_REF, gnu_template_type, tem);
  	TREE_READONLY (gnu_template_reference) = 1;
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2241,2249 ****
  	     index += (convention_fortran_p ? - 1 : 1),
  	     gnat_index = Next_Index (gnat_index))
  	  {
  	    const bool is_flb
! 	      = Is_Fixed_Lower_Bound_Index_Subtype (Etype (gnat_index));
! 	    tree gnu_index_type = get_unpadded_type (Etype (gnat_index));
  	    tree gnu_orig_min = TYPE_MIN_VALUE (gnu_index_type);
  	    tree gnu_orig_max = TYPE_MAX_VALUE (gnu_index_type);
  	    tree gnu_index_base_type = get_base_type (gnu_index_type);
--- 2244,2253 ----
  	     index += (convention_fortran_p ? - 1 : 1),
  	     gnat_index = Next_Index (gnat_index))
  	  {
+ 	    const Entity_Id gnat_index_type = Etype (gnat_index);
  	    const bool is_flb
! 	      = Is_Fixed_Lower_Bound_Index_Subtype (gnat_index_type);
! 	    tree gnu_index_type = get_unpadded_type (gnat_index_type);
  	    tree gnu_orig_min = TYPE_MIN_VALUE (gnu_index_type);
  	    tree gnu_orig_max = TYPE_MAX_VALUE (gnu_index_type);
  	    tree gnu_index_base_type = get_base_type (gnu_index_type);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2392,2397 ****
--- 2396,2406 ----
  	  = (Is_Packed (gnat_entity)
  	     || Is_Packed_Array_Impl_Type (gnat_entity));
  
+ 	TYPE_BIT_PACKED_ARRAY_TYPE_P (tem)
+ 	  = (Is_Packed_Array_Impl_Type (gnat_entity)
+ 	     ? Is_Bit_Packed_Array (Original_Array_Type (gnat_entity))
+ 	     : Is_Bit_Packed_Array (gnat_entity));
+ 
  	if (Treat_As_Volatile (gnat_entity))
  	  tem = change_qualified_type (tem, TYPE_QUAL_VOLATILE);
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2404,2415 ****
  	   type since the implementation type may vary between constrained
  	   subtypes and unconstrained base type.  */
  	if (Present (PAT))
! 	  TREE_TYPE (TYPE_FIELDS (gnu_fat_type))
! 	    = build_pointer_type_for_mode (tem, ptr_mode, true);
  	else
! 	  TREE_TYPE (TYPE_FIELDS (gnu_fat_type)) = build_pointer_type (tem);
  	if (ptr_set != -1)
! 	  TYPE_ALIAS_SET (TREE_TYPE (TYPE_FIELDS (gnu_fat_type))) = ptr_set;
  
  	/* If the maximum size doesn't overflow, use it.  */
  	if (gnu_max_size
--- 2413,2423 ----
  	   type since the implementation type may vary between constrained
  	   subtypes and unconstrained base type.  */
  	if (Present (PAT))
! 	  TREE_TYPE (fld) = build_pointer_type_for_mode (tem, ptr_mode, true);
  	else
! 	  TREE_TYPE (fld) = build_pointer_type (tem);
  	if (ptr_set != -1)
! 	  TYPE_ALIAS_SET (TYPE_CANONICAL (TREE_TYPE (fld))) = ptr_set;
  
  	/* If the maximum size doesn't overflow, use it.  */
  	if (gnu_max_size
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2479,2484 ****
--- 2487,2493 ----
  	  const int ndim = Number_Dimensions (gnat_entity);
  	  tree gnu_base_type = gnu_type;
  	  tree *gnu_index_types = XALLOCAVEC (tree, ndim);
+ 	  bool *gnu_null_ranges = XALLOCAVEC (bool, ndim);
  	  tree gnu_max_size = size_one_node;
  	  bool need_index_type_struct = false;
  	  int index;
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2494,2500 ****
  	       gnat_index = Next_Index (gnat_index),
  	       gnat_base_index = Next_Index (gnat_base_index))
  	    {
! 	      tree gnu_index_type = get_unpadded_type (Etype (gnat_index));
  	      tree gnu_orig_min = TYPE_MIN_VALUE (gnu_index_type);
  	      tree gnu_orig_max = TYPE_MAX_VALUE (gnu_index_type);
  	      tree gnu_index_base_type = get_base_type (gnu_index_type);
--- 2503,2510 ----
  	       gnat_index = Next_Index (gnat_index),
  	       gnat_base_index = Next_Index (gnat_base_index))
  	    {
! 	      const Entity_Id gnat_index_type = Etype (gnat_index);
! 	      tree gnu_index_type = get_unpadded_type (gnat_index_type);
  	      tree gnu_orig_min = TYPE_MIN_VALUE (gnu_index_type);
  	      tree gnu_orig_max = TYPE_MAX_VALUE (gnu_index_type);
  	      tree gnu_index_base_type = get_base_type (gnu_index_type);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2548,2553 ****
--- 2558,2574 ----
  		  else
  		    gnu_min = gnu_orig_min;
  
+ 		  if (DECL_P (gnu_min)
+ 		      && DECL_INITIAL (gnu_min) != NULL_TREE
+ 		      && (TREE_CODE (gnu_min) != INTEGER_CST
+ 			  || TREE_OVERFLOW (gnu_min)))
+ 		    {
+ 		      tree tmp = max_value (DECL_INITIAL(gnu_min), false);
+ 		      if (TREE_CODE (tmp) == INTEGER_CST
+ 			  && !TREE_OVERFLOW (tmp))
+ 			gnu_min = tmp;
+ 		    }
+ 
  		  if (TREE_CODE (gnu_min) != INTEGER_CST
  		      || TREE_OVERFLOW (gnu_min))
  		    gnu_min = TYPE_MIN_VALUE (TREE_TYPE (gnu_min));
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2557,2562 ****
--- 2578,2594 ----
  		  else
  		    gnu_max = gnu_orig_max;
  
+ 		  if (DECL_P (gnu_max)
+ 		      && DECL_INITIAL (gnu_max) != NULL_TREE
+ 		      && (TREE_CODE (gnu_max) != INTEGER_CST
+ 			  || TREE_OVERFLOW (gnu_max)))
+ 		    {
+ 		      tree tmp = max_value (DECL_INITIAL(gnu_max), true);
+ 		      if (TREE_CODE (tmp) == INTEGER_CST
+ 			  && !TREE_OVERFLOW (tmp))
+ 			gnu_max = tmp;
+ 		    }
+ 
  		  if (TREE_CODE (gnu_max) != INTEGER_CST
  		      || TREE_OVERFLOW (gnu_max))
  		    gnu_max = TYPE_MAX_VALUE (TREE_TYPE (gnu_max));
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2671,2676 ****
--- 2703,2715 ----
  		= create_index_type (gnu_min, gnu_high, gnu_index_type,
  				     gnat_entity);
  
+ 	      /* Record whether the range is known to be null at compile time
+ 		 to disambiguate it from too large ranges.  */
+ 	      const Entity_Id gnat_ui_type = Underlying_Type (gnat_index_type);
+ 	      gnu_null_ranges[index]
+ 		= Is_Null_Range (Type_Low_Bound (gnat_ui_type),
+ 				 Type_High_Bound (gnat_ui_type));
+ 
  	      /* We need special types for debugging information to point to
  		 the index types if they have variable bounds, are not integer
  		 types, are biased or are wider than sizetype.  These are GNAT
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2737,2743 ****
  	      if (array_type_has_nonaliased_component (gnu_type, gnat_entity))
  		set_nonaliased_component_on_array_type (gnu_type);
  
! 	      /* Kludge to remove the TREE_OVERFLOW flag for the sake of LTO
  		 on maximally-sized array types designed by access types.  */
  	      if (integer_zerop (TYPE_SIZE (gnu_type))
  		  && TREE_OVERFLOW (TYPE_SIZE (gnu_type))
--- 2776,2789 ----
  	      if (array_type_has_nonaliased_component (gnu_type, gnat_entity))
  		set_nonaliased_component_on_array_type (gnu_type);
  
! 	      /* Clear the TREE_OVERFLOW flag, if any, for null arrays.  */
! 	      if (gnu_null_ranges[index])
! 		{
! 		  TYPE_SIZE (gnu_type) = bitsize_zero_node;
! 		  TYPE_SIZE_UNIT (gnu_type) = size_zero_node;
! 		}
! 
! 	      /* Kludge to clear the TREE_OVERFLOW flag for the sake of LTO
  		 on maximally-sized array types designed by access types.  */
  	      if (integer_zerop (TYPE_SIZE (gnu_type))
  		  && TREE_OVERFLOW (TYPE_SIZE (gnu_type))
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2803,2809 ****
  
  	  TYPE_BIT_PACKED_ARRAY_TYPE_P (gnu_type)
  	    = (Is_Packed_Array_Impl_Type (gnat_entity)
! 	       && Is_Bit_Packed_Array (Original_Array_Type (gnat_entity)));
  
  	  /* If the maximum size doesn't overflow, use it.  */
  	  if (gnu_max_size
--- 2849,2856 ----
  
  	  TYPE_BIT_PACKED_ARRAY_TYPE_P (gnu_type)
  	    = (Is_Packed_Array_Impl_Type (gnat_entity)
! 	       ? Is_Bit_Packed_Array (Original_Array_Type (gnat_entity))
! 	       : Is_Bit_Packed_Array (gnat_entity));
  
  	  /* If the maximum size doesn't overflow, use it.  */
  	  if (gnu_max_size
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2958,2963 ****
--- 3005,3022 ----
  		    TREE_TYPE (TYPE_FIELDS (gnu_type)) = gnu_inner;
  		}
  	    }
+ 
+ 	  /* Otherwise, if an alignment is specified, use it if valid and, if
+ 	     the alignment was requested with an explicit clause, state so.  */
+ 	  else if (Known_Alignment (gnat_entity))
+ 	    {
+ 	      SET_TYPE_ALIGN (gnu_type,
+ 			      validate_alignment (Alignment (gnat_entity),
+ 						  gnat_entity,
+ 						  TYPE_ALIGN (gnu_type)));
+ 	      if (Present (Alignment_Clause (gnat_entity)))
+ 		TYPE_USER_ALIGN (gnu_type) = 1;
+ 	    }
  	}
        break;
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 3954,3963 ****
  	  = gnu_ext_name_for_subprog (gnat_entity, gnu_entity_name);
  	const enum inline_status_t inline_status
  	  = inline_status_for_subprog (gnat_entity);
- 	bool public_flag = Is_Public (gnat_entity) || imported_p;
  	/* Subprograms marked both Intrinsic and Always_Inline need not
  	   have a body of their own.  */
! 	bool extern_flag
  	  = ((Is_Public (gnat_entity) && !definition)
  	     || imported_p
  	     || (Is_Intrinsic_Subprogram (gnat_entity)
--- 4013,4021 ----
  	  = gnu_ext_name_for_subprog (gnat_entity, gnu_entity_name);
  	const enum inline_status_t inline_status
  	  = inline_status_for_subprog (gnat_entity);
  	/* Subprograms marked both Intrinsic and Always_Inline need not
  	   have a body of their own.  */
! 	const bool extern_flag
  	  = ((Is_Public (gnat_entity) && !definition)
  	     || imported_p
  	     || (Is_Intrinsic_Subprogram (gnat_entity)
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4112,4121 ****
  	    else
  	      gnu_decl
  		= create_subprog_decl (gnu_entity_name, gnu_ext_name,
! 				       gnu_type, gnu_param_list,
! 				       inline_status, public_flag,
! 				       extern_flag, artificial_p,
! 				       debug_info_p,
  				       definition && imported_p, attr_list,
  				       gnat_entity);
  	  }
--- 4170,4178 ----
  	    else
  	      gnu_decl
  		= create_subprog_decl (gnu_entity_name, gnu_ext_name,
! 				       gnu_type, gnu_param_list, inline_status,
! 				       Is_Public (gnat_entity) || imported_p,
! 				       extern_flag, artificial_p, debug_info_p,
  				       definition && imported_p, attr_list,
  				       gnat_entity);
  	  }
*************** inline_status_for_subprog (Entity_Id sub
*** 5076,5082 ****
        tree gnu_type;
  
        /* This is a kludge to work around a pass ordering issue: for small
! 	 record types with many components, i.e. typically bit-fields, the
  	 initialization routine can contain many assignments that will be
  	 merged by the GIMPLE store merging pass.  But this pass runs very
  	 late in the pipeline, in particular after the inlining decisions
--- 5133,5139 ----
        tree gnu_type;
  
        /* This is a kludge to work around a pass ordering issue: for small
! 	 record types with many components, i.e. typically bitfields, the
  	 initialization routine can contain many assignments that will be
  	 merged by the GIMPLE store merging pass.  But this pass runs very
  	 late in the pipeline, in particular after the inlining decisions
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6279,6284 ****
--- 6336,6347 ----
  
  	  if (debug_info_p)
  	    rest_of_record_type_compilation (gnu_cico_return_type);
+ 
+ 	  /* Declare it now since it will never be declared otherwise.  This
+ 	     is necessary to ensure that its subtrees are properly marked.  */
+ 	  create_type_decl (TYPE_NAME (gnu_cico_return_type),
+ 			    gnu_cico_return_type,
+ 			    true, debug_info_p, gnat_subprog);
  	}
  
        gnu_return_type = gnu_cico_return_type;
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6440,6445 ****
--- 6503,6530 ----
  			}
  		      break;
  
+ 		    case BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N:
+ 		    case BUILT_IN_ATOMIC_STORE_N:
+ 		      /* This is a generic builtin overloaded on its second
+ 			 parameter type, so do type resolution based on it.  */
+ 		      if (list_length (gnu_param_type_list) >= 3
+ 			  && type_for_atomic_builtin_p
+ 			       (list_second (gnu_param_type_list)))
+ 			gnu_builtin_decl
+ 			  = resolve_atomic_builtin
+ 			      (fncode, list_second (gnu_param_type_list));
+ 		      else
+ 			{
+ 			  post_error
+ 			    ("??cannot import type-generic 'G'C'C builtin!",
+ 			     gnat_subprog);
+ 			  post_error
+ 			    ("\\?use a supported second parameter type",
+ 			     gnat_subprog);
+ 			  gnu_builtin_decl = NULL_TREE;
+ 			}
+ 		      break;
+ 
  		    case BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N:
  		      /* This is a generic builtin overloaded on its third
  			 parameter type, so do type resolution based on it.  */
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6461,6469 ****
  			}
  		      break;
  
- 		    case BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N:
  		    case BUILT_IN_SYNC_LOCK_RELEASE_N:
- 		    case BUILT_IN_ATOMIC_STORE_N:
  		      post_error
  			("??unsupported type-generic 'G'C'C builtin!",
  			 gnat_subprog);
--- 6546,6552 ----
*************** range_cannot_be_superflat (Node_Id gnat_
*** 6673,6678 ****
--- 6756,6765 ----
    Node_Id gnat_scalar_range;
    tree gnu_lb, gnu_hb, gnu_lb_minus_one;
  
+   /* This is the easy case.  */
+   if (Cannot_Be_Superflat (gnat_range))
+     return true;
+ 
    /* If the low bound is not constant, take the worst case by finding an upper
       bound for its type, repeatedly if need be.  */
    while (Nkind (gnat_lb) != N_Integer_Literal
*************** range_cannot_be_superflat (Node_Id gnat_
*** 6717,6724 ****
  static bool
  constructor_address_p (tree gnu_expr)
  {
!   while (TREE_CODE (gnu_expr) == NOP_EXPR
! 	 || TREE_CODE (gnu_expr) == CONVERT_EXPR
  	 || TREE_CODE (gnu_expr) == NON_LVALUE_EXPR)
      gnu_expr = TREE_OPERAND (gnu_expr, 0);
  
--- 6804,6810 ----
  static bool
  constructor_address_p (tree gnu_expr)
  {
!   while (CONVERT_EXPR_P (gnu_expr)
  	 || TREE_CODE (gnu_expr) == NON_LVALUE_EXPR)
      gnu_expr = TREE_OPERAND (gnu_expr, 0);
  
*************** elaborate_entity (Entity_Id gnat_entity)
*** 6862,6867 ****
--- 6948,6956 ----
  	}
        break;
  
+       /* -Wswitch warning avoidance.  */
+     default:
+       break;
      }
  }
  
*************** elaborate_expression_1 (tree gnu_expr, E
*** 7061,7067 ****
  
        expr_variable_p
  	= !(inner
! 	    && TREE_CODE (inner) == VAR_DECL
  	    && (TREE_READONLY (inner) || DECL_READONLY_ONCE_ELAB (inner)));
      }
  
--- 7150,7156 ----
  
        expr_variable_p
  	= !(inner
! 	    && VAR_P (inner)
  	    && (TREE_READONLY (inner) || DECL_READONLY_ONCE_ELAB (inner)));
      }
  
*************** gnat_to_gnu_field (Entity_Id gnat_field,
*** 7658,7663 ****
--- 7747,7764 ----
        gnu_field_type = maybe_pad_type (gnu_field_type, gnu_size, 0, gnat_field,
  				       false, definition, true);
  
+       /* For a bitfield, if the type still has BLKmode, try again to change it
+ 	 to an integral mode form.  This may be necessary on strict-alignment
+ 	 platforms with a size clause that is much larger than the field type,
+ 	 because maybe_pad_type has preserved the alignment of the field type,
+ 	 which may be too low for the new size.  */
+       if (!needs_strict_alignment
+ 	  && RECORD_OR_UNION_TYPE_P (gnu_field_type)
+ 	  && !TYPE_FAT_POINTER_P (gnu_field_type)
+ 	  && TYPE_MODE (gnu_field_type) == BLKmode
+ 	  && is_bitfield)
+ 	gnu_field_type = make_packable_type (gnu_field_type, true, 1);
+ 
        /* If a padding record was made, declare it now since it will never be
  	 declared otherwise.  This is necessary to ensure that its subtrees
  	 are properly marked.  */
*************** annotate_value (tree gnu_size)
*** 8811,8816 ****
--- 8912,8918 ----
  	return No_Uint;
        break;
  
+     case PARM_DECL:
      case VAR_DECL:
        tcode = Dynamic_Val;
        ops[0] = UI_From_Int (++var_count);
*************** check_ok_for_atomic_type (tree type, Ent
*** 9692,9698 ****
         gnat_node = Next_Rep_Item (gnat_node))
      if (Nkind (gnat_node) == N_Pragma)
        {
! 	unsigned char pragma_id
  	  = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_node)));
  
  	if ((pragma_id == Pragma_Atomic && !component_p)
--- 9794,9800 ----
         gnat_node = Next_Rep_Item (gnat_node))
      if (Nkind (gnat_node) == N_Pragma)
        {
! 	const Pragma_Id pragma_id
  	  = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_node)));
  
  	if ((pragma_id == Pragma_Atomic && !component_p)
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/gadaint.h gcc-14.1.0/gcc/ada/gcc-interface/gadaint.h
*** gcc-13.2.0/gcc/ada/gcc-interface/gadaint.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/gadaint.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2010-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2010-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/gigi.h gcc-14.1.0/gcc/ada/gcc-interface/gigi.h
*** gcc-13.2.0/gcc/ada/gcc-interface/gigi.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/gigi.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** enum alias_set_op
*** 158,171 ****
    ALIAS_SET_SUPERSET
  };
  
! /* Relate the alias sets of GNU_NEW_TYPE and GNU_OLD_TYPE according to OP.
     If this is a multi-dimensional array type, do this recursively.
  
     OP may be
     - ALIAS_SET_COPY:     the new set is made a copy of the old one.
     - ALIAS_SET_SUPERSET: the new set is made a superset of the old one.
     - ALIAS_SET_SUBSET:   the new set is made a subset of the old one.  */
! extern void relate_alias_sets (tree gnu_new_type, tree gnu_old_type,
  			       enum alias_set_op op);
  
  /* Given GNAT_ENTITY, an object (constant, variable, parameter, exception)
--- 158,171 ----
    ALIAS_SET_SUPERSET
  };
  
! /* Relate the alias sets of NEW_TYPE and OLD_TYPE according to OP.
     If this is a multi-dimensional array type, do this recursively.
  
     OP may be
     - ALIAS_SET_COPY:     the new set is made a copy of the old one.
     - ALIAS_SET_SUPERSET: the new set is made a superset of the old one.
     - ALIAS_SET_SUBSET:   the new set is made a subset of the old one.  */
! extern void relate_alias_sets (tree new_type, tree old_type,
  			       enum alias_set_op op);
  
  /* Given GNAT_ENTITY, an object (constant, variable, parameter, exception)
*************** extern void gigi (Node_Id gnat_root,
*** 245,255 ****
  		  struct List_Header *list_headers_ptr,
  		  Nat number_file,
  		  struct File_Info_Type *file_info_ptr,
  		  Entity_Id standard_boolean,
- 		  Entity_Id standard_integer,
  		  Entity_Id standard_character,
- 		  Entity_Id standard_long_long_float,
  		  Entity_Id standard_exception_type,
  		  Int gigi_operating_mode);
  
  #ifdef __cplusplus
--- 245,256 ----
  		  struct List_Header *list_headers_ptr,
  		  Nat number_file,
  		  struct File_Info_Type *file_info_ptr,
+ 		  Entity_Id standard_address,
  		  Entity_Id standard_boolean,
  		  Entity_Id standard_character,
  		  Entity_Id standard_exception_type,
+ 		  Entity_Id standard_integer,
+ 		  Entity_Id standard_long_long_float,
  		  Int gigi_operating_mode);
  
  #ifdef __cplusplus
*************** struct attrib
*** 349,355 ****
  };
  
  /* Table of machine-independent internal attributes.  */
! extern const struct attribute_spec gnat_internal_attribute_table[];
  
  /* Define the entries in the standard data array.  */
  enum standard_datatypes
--- 350,356 ----
  };
  
  /* Table of machine-independent internal attributes.  */
! extern const struct scoped_attribute_specs gnat_internal_attribute_table;
  
  /* Define the entries in the standard data array.  */
  enum standard_datatypes
*************** extern void update_pointer_to (tree old_
*** 762,767 ****
--- 763,774 ----
     minimum (if !MAX_P) possible value of the discriminant.  */
  extern tree max_size (tree exp, bool max_p);
  
+ /* Try to compute the maximum (if MAX_P) or minimum (if !MAX_P) value for the
+    expression EXP, for very simple expressions.  Substitute variable references
+    with their respective type's min/max values.  Return the computed value if
+    any, or EXP if no value can be computed. */
+ extern tree max_value (tree exp, bool max_p);
+ 
  /* Remove all conversions that are done in EXP.  This includes converting
     from a padded type or to a left-justified modular type.  If TRUE_ADDRESS
     is true, always return the address of the containing object even if
*************** operand_type (tree expr)
*** 1231,1236 ****
--- 1238,1251 ----
    return TREE_TYPE (TREE_OPERAND (expr, 0));
  }
  
+ /* Return the second value of a list.  */
+ 
+ static inline tree
+ list_second (tree list)
+ {
+   return TREE_VALUE (TREE_CHAIN (list));
+ }
+ 
  /* Return the third value of a list.  */
  
  static inline tree
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/lang-specs.h gcc-14.1.0/gcc/ada/gcc-interface/lang-specs.h
*** gcc-13.2.0/gcc/ada/gcc-interface/lang-specs.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/lang-specs.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 1992-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 1992-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/lang.opt gcc-14.1.0/gcc/ada/gcc-interface/lang.opt
*** gcc-13.2.0/gcc/ada/gcc-interface/lang.opt	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/lang.opt	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ; Options for the Ada front end.
! ; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,5 ----
  ; Options for the Ada front end.
! ; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/lang.opt.urls gcc-14.1.0/gcc/ada/gcc-interface/lang.opt.urls
*** gcc-13.2.0/gcc/ada/gcc-interface/lang.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/gcc-interface/lang.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,30 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/ada/gcc-interface/lang.opt and generated HTML
+ 
+ I
+ UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I)
+ 
+ ; skipping UrlSuffix for 'Wall' due to multiple URLs:
+ ;   duplicate: 'gcc/Standard-Libraries.html#index-Wall-1'
+ ;   duplicate: 'gcc/Warning-Options.html#index-Wall'
+ Wall
+ LangUrlSuffix_D(gdc/Warnings.html#index-Wall)
+ 
+ nostdinc
+ UrlSuffix(gcc/Directory-Options.html#index-nostdinc) LangUrlSuffix_D(gdc/Directory-Options.html#index-nostdinc)
+ 
+ nostdlib
+ UrlSuffix(gcc/Link-Options.html#index-nostdlib)
+ 
+ ; skipping UrlSuffix for 'fshort-enums' due to multiple URLs:
+ ;   duplicate: 'gcc/Code-Gen-Options.html#index-fshort-enums'
+ ;   duplicate: 'gcc/Non-bugs.html#index-fshort-enums-3'
+ ;   duplicate: 'gcc/Structures-unions-enumerations-and-bit-fields-implementation.html#index-fshort-enums-1'
+ 
+ ; skipping UrlSuffix for 'fsigned-char' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-fsigned-char'
+ ;   duplicate: 'gcc/Characters-implementation.html#index-fsigned-char-1'
+ 
+ ; skipping UrlSuffix for 'funsigned-char' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-funsigned-char'
+ ;   duplicate: 'gcc/Characters-implementation.html#index-funsigned-char-1'
+ 
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/misc.cc gcc-14.1.0/gcc/ada/gcc-interface/misc.cc
*** gcc-13.2.0/gcc/ada/gcc-interface/misc.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/misc.cc	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                           C Implementation File                          *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                           C Implementation File                          *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** gnat_post_options (const char **pfilenam
*** 267,278 ****
    /* No return type warnings for Ada.  */
    warn_return_type = 0;
  
-   /* No string overflow warnings for Ada.  */
-   warn_stringop_overflow = 0;
- 
    /* No caret by default for Ada.  */
    if (!OPTION_SET_P (flag_diagnostics_show_caret))
!     global_dc->show_caret = false;
  
    /* Copy global settings to local versions.  */
    gnat_encodings = global_options.x_gnat_encodings;
--- 267,275 ----
    /* No return type warnings for Ada.  */
    warn_return_type = 0;
  
    /* No caret by default for Ada.  */
    if (!OPTION_SET_P (flag_diagnostics_show_caret))
!     global_dc->m_source_printing.enabled = false;
  
    /* Copy global settings to local versions.  */
    gnat_encodings = global_options.x_gnat_encodings;
*************** static void
*** 296,302 ****
  internal_error_function (diagnostic_context *context, const char *msgid,
  			 va_list *ap)
  {
-   text_info tinfo;
    char *buffer, *p, *loc;
    String_Template temp, temp_loc;
    String_Pointer sp, sp_loc;
--- 293,298 ----
*************** internal_error_function (diagnostic_cont
*** 312,320 ****
    pp_clear_output_area (context->printer);
  
    /* Format the message into the pretty-printer.  */
!   tinfo.format_spec = msgid;
!   tinfo.args_ptr = ap;
!   tinfo.err_no = errno;
    pp_format_verbatim (context->printer, &tinfo);
  
    /* Extract a (writable) pointer to the formatted text.  */
--- 308,314 ----
    pp_clear_output_area (context->printer);
  
    /* Format the message into the pretty-printer.  */
!   text_info tinfo (msgid, ap, errno);
    pp_format_verbatim (context->printer, &tinfo);
  
    /* Extract a (writable) pointer to the formatted text.  */
*************** internal_error_function (diagnostic_cont
*** 333,345 ****
    sp.Bounds = &temp;
    sp.Array = buffer;
  
!   xloc = expand_location (input_location);
!   if (context->show_column && xloc.column != 0)
!     loc = xasprintf ("%s:%d:%d", xloc.file, xloc.line, xloc.column);
    else
!     loc = xasprintf ("%s:%d", xloc.file, xloc.line);
!   temp_loc.Low_Bound = 1;
!   temp_loc.High_Bound = strlen (loc);
    sp_loc.Bounds = &temp_loc;
    sp_loc.Array = loc;
  
--- 327,349 ----
    sp.Bounds = &temp;
    sp.Array = buffer;
  
!   if (input_location == UNKNOWN_LOCATION)
!     {
!       loc = NULL;
!       temp_loc.Low_Bound = 1;
!       temp_loc.High_Bound = 0;
!     }
    else
!     {
!       xloc = expand_location (input_location);
!       if (context->m_show_column && xloc.column != 0)
! 	loc = xasprintf ("%s:%d:%d", xloc.file, xloc.line, xloc.column);
!       else
! 	loc = xasprintf ("%s:%d", xloc.file, xloc.line);
!       temp_loc.Low_Bound = 1;
!       temp_loc.High_Bound = strlen (loc);
!     }
! 
    sp_loc.Bounds = &temp_loc;
    sp_loc.Array = loc;
  
*************** gnat_init (void)
*** 371,377 ****
    line_table->default_range_bits = 0;
  
    /* Register our internal error function.  */
!   global_dc->internal_error = &internal_error_function;
  
    return true;
  }
--- 375,381 ----
    line_table->default_range_bits = 0;
  
    /* Register our internal error function.  */
!   global_dc->m_internal_error = &internal_error_function;
  
    return true;
  }
*************** gnat_get_array_descr_info (const_tree co
*** 767,773 ****
  {
    tree type = const_cast<tree> (const_type);
    tree first_dimen, dimen;
!   bool is_packed_array, is_array;
    int i;
  
    /* Temporaries created in the first pass and used in the second one for thin
--- 771,777 ----
  {
    tree type = const_cast<tree> (const_type);
    tree first_dimen, dimen;
!   bool is_bit_packed_array, is_array;
    int i;
  
    /* Temporaries created in the first pass and used in the second one for thin
*************** gnat_get_array_descr_info (const_tree co
*** 777,791 ****
    tree thinptr_template_expr = NULL_TREE;
    tree thinptr_bound_field = NULL_TREE;
  
!   /* If we have an implementation type for a packed array, get the orignial
       array type.  */
    if (TYPE_IMPL_PACKED_ARRAY_P (type) && TYPE_ORIGINAL_PACKED_ARRAY (type))
      {
        type = TYPE_ORIGINAL_PACKED_ARRAY (type);
-       is_packed_array = true;
      }
    else
!     is_packed_array = false;
  
    /* First pass: gather all information about this array except everything
       related to dimensions.  */
--- 781,795 ----
    tree thinptr_template_expr = NULL_TREE;
    tree thinptr_bound_field = NULL_TREE;
  
!   /* If we have an implementation type for a packed array, get the original
       array type.  */
    if (TYPE_IMPL_PACKED_ARRAY_P (type) && TYPE_ORIGINAL_PACKED_ARRAY (type))
      {
+       is_bit_packed_array = BIT_PACKED_ARRAY_TYPE_P (type);
        type = TYPE_ORIGINAL_PACKED_ARRAY (type);
      }
    else
!     is_bit_packed_array = false;
  
    /* First pass: gather all information about this array except everything
       related to dimensions.  */
*************** gnat_get_array_descr_info (const_tree co
*** 843,850 ****
       order, so our view here has reversed dimensions.  */
    const bool convention_fortran_p = TYPE_CONVENTION_FORTRAN_P (first_dimen);
  
!   if (TYPE_PACKED (first_dimen))
!     is_packed_array = true;
  
    /* ??? For row major ordering, we probably want to emit nothing and
       instead specify it as the default in Dw_TAG_compile_unit.  */
--- 847,854 ----
       order, so our view here has reversed dimensions.  */
    const bool convention_fortran_p = TYPE_CONVENTION_FORTRAN_P (first_dimen);
  
!   if (BIT_PACKED_ARRAY_TYPE_P (first_dimen))
!     is_bit_packed_array = true;
  
    /* ??? For row major ordering, we probably want to emit nothing and
       instead specify it as the default in Dw_TAG_compile_unit.  */
*************** gnat_get_array_descr_info (const_tree co
*** 968,974 ****
        /* We need to specify a bit stride when it does not correspond to the
  	 natural size of the contained elements.  ??? Note that we do not
  	 support packed records and nested packed arrays.  */
!       else if (is_packed_array)
  	{
  	  info->stride = get_array_bit_stride (info->element_type);
  	  info->stride_in_bits = true;
--- 972,978 ----
        /* We need to specify a bit stride when it does not correspond to the
  	 natural size of the contained elements.  ??? Note that we do not
  	 support packed records and nested packed arrays.  */
!       else if (is_bit_packed_array)
  	{
  	  info->stride = get_array_bit_stride (info->element_type);
  	  info->stride_in_bits = true;
*************** get_lang_specific (tree node)
*** 1348,1353 ****
--- 1352,1362 ----
    return TYPE_LANG_SPECIFIC (node);
  }
  
+ const struct scoped_attribute_specs *const gnat_attribute_table[] =
+ {
+   &gnat_internal_attribute_table
+ };
+ 
  /* Definitions for our language-specific hooks.  */
  
  #undef  LANG_HOOKS_NAME
*************** get_lang_specific (tree node)
*** 1413,1419 ****
  #undef  LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO
  #define LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO gnat_get_fixed_point_type_info
  #undef  LANG_HOOKS_ATTRIBUTE_TABLE
! #define LANG_HOOKS_ATTRIBUTE_TABLE	gnat_internal_attribute_table
  #undef  LANG_HOOKS_BUILTIN_FUNCTION
  #define LANG_HOOKS_BUILTIN_FUNCTION	gnat_builtin_function
  #undef  LANG_HOOKS_INIT_TS
--- 1422,1428 ----
  #undef  LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO
  #define LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO gnat_get_fixed_point_type_info
  #undef  LANG_HOOKS_ATTRIBUTE_TABLE
! #define LANG_HOOKS_ATTRIBUTE_TABLE	gnat_attribute_table
  #undef  LANG_HOOKS_BUILTIN_FUNCTION
  #define LANG_HOOKS_BUILTIN_FUNCTION	gnat_builtin_function
  #undef  LANG_HOOKS_INIT_TS
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/system.ads gcc-14.1.0/gcc/ada/gcc-interface/system.ads
*** gcc-13.2.0/gcc/ada/gcc-interface/system.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/system.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/targtyps.cc gcc-14.1.0/gcc/ada/gcc-interface/targtyps.cc
*** gcc-13.2.0/gcc/ada/gcc-interface/targtyps.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/targtyps.cc	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/trans.cc gcc-14.1.0/gcc/ada/gcc-interface/trans.cc
*** gcc-13.2.0/gcc/ada/gcc-interface/trans.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/trans.cc	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 69,74 ****
--- 69,89 ----
  #include "ada-tree.h"
  #include "gigi.h"
  
+ /* The following #include is for strub_make_callable.
+ 
+    This function marks a function as safe to call from strub contexts.  We mark
+    Ada subprograms that may be called implicitly by the compiler, and that won't
+    leave on the stack caller data passed to them.  This stops implicit calls
+    introduced in subprograms that have their stack scrubbed from being flagged
+    as unsafe, even in -fstrub=strict mode.
+ 
+    These subprograms are also marked with the strub(callable) attribute in Ada
+    sources, but their declarations aren't necessarily imported by GNAT, or made
+    visible to gigi, in units that end up relying on them.  So when gigi
+    introduces their declarations on its own, it must also add the attribute, by
+    calling strub_make_callable.  */
+ #include "ipa-strub.h"
+ 
  /* We should avoid allocating more than ALLOCA_THRESHOLD bytes via alloca,
     for fear of running out of stack space.  If we need more, we use xmalloc
     instead.  */
*************** gigi (Node_Id gnat_root,
*** 290,300 ****
        struct List_Header *list_headers_ptr,
        Nat number_file,
        struct File_Info_Type *file_info_ptr,
        Entity_Id standard_boolean,
-       Entity_Id standard_integer,
        Entity_Id standard_character,
-       Entity_Id standard_long_long_float,
        Entity_Id standard_exception_type,
        Int gigi_operating_mode)
  {
    Node_Id gnat_iter;
--- 305,316 ----
        struct List_Header *list_headers_ptr,
        Nat number_file,
        struct File_Info_Type *file_info_ptr,
+       Entity_Id standard_address,
        Entity_Id standard_boolean,
        Entity_Id standard_character,
        Entity_Id standard_exception_type,
+       Entity_Id standard_integer,
+       Entity_Id standard_long_long_float,
        Int gigi_operating_mode)
  {
    Node_Id gnat_iter;
*************** gigi (Node_Id gnat_root,
*** 375,388 ****
    double_float_alignment = get_target_double_float_alignment ();
    double_scalar_alignment = get_target_double_scalar_alignment ();
  
!   /* Record the builtin types.  Define `integer' and `character' first so that
!      dbx will output them first.  */
    record_builtin_type ("integer", integer_type_node, false);
    record_builtin_type ("character", char_type_node, false);
    record_builtin_type ("boolean", boolean_type_node, false);
    record_builtin_type ("void", void_type_node, false);
  
!   /* Save the type we made for integer as the type for Standard.Integer.  */
    save_gnu_tree (Base_Type (standard_integer),
  		 TYPE_NAME (integer_type_node),
  		 false);
--- 391,409 ----
    double_float_alignment = get_target_double_float_alignment ();
    double_scalar_alignment = get_target_double_scalar_alignment ();
  
!   /* Record the builtin types.  */
!   record_builtin_type ("address", pointer_sized_int_node, false);
    record_builtin_type ("integer", integer_type_node, false);
    record_builtin_type ("character", char_type_node, false);
    record_builtin_type ("boolean", boolean_type_node, false);
    record_builtin_type ("void", void_type_node, false);
  
!   /* Save the type we made for address as the type for Standard.Address.  */
!   save_gnu_tree (Base_Type (standard_address),
! 		 TYPE_NAME (pointer_sized_int_node),
! 		 false);
! 
!   /* Likewise for integer as the type for Standard.Integer.  */
    save_gnu_tree (Base_Type (standard_integer),
  		 TYPE_NAME (integer_type_node),
  		 false);
*************** gigi (Node_Id gnat_root,
*** 448,453 ****
--- 469,475 ----
  						     int64_type, NULL_TREE),
  			   NULL_TREE, is_default, true, true, true, false,
  			   false, NULL, Empty);
+   strub_make_callable (mulv64_decl);
  
    if (Enable_128bit_Types)
      {
*************** gigi (Node_Id gnat_root,
*** 460,465 ****
--- 482,488 ----
  							 NULL_TREE),
  			       NULL_TREE, is_default, true, true, true, false,
  			       false, NULL, Empty);
+       strub_make_callable (mulv128_decl);
      }
  
    /* Name of the _Parent field in tagged record types.  */
*************** gigi (Node_Id gnat_root,
*** 513,518 ****
--- 536,542 ----
  			   ftype, NULL_TREE,
  			   is_default, true, true, true, false, false, NULL,
  			   Empty);
+   set_call_expr_flags (reraise_zcx_decl, ECF_NORETURN | ECF_XTHROW);
  
    /* Dummy objects to materialize "others" and "all others" in the exception
       tables.  These are exported by a-exexpr-gcc.adb, so see this unit for
*************** build_raise_check (int check, enum excep
*** 715,720 ****
--- 739,746 ----
      = create_subprog_decl (get_identifier (Name_Buffer), NULL_TREE, ftype,
  			   NULL_TREE, is_default, true, true, true, false,
  			   false, NULL, Empty);
+   strub_make_callable (result);
+   set_call_expr_flags (result, ECF_NORETURN | ECF_XTHROW);
  
    return result;
  }
*************** lvalue_required_p (Node_Id gnat_node, tr
*** 808,814 ****
      case N_Pragma:
        if (Is_Pragma_Name (Chars (Pragma_Identifier (gnat_parent))))
  	{
! 	  const unsigned char id
  	    = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_parent)));
  	  return id == Pragma_Inspection_Point;
  	}
--- 834,840 ----
      case N_Pragma:
        if (Is_Pragma_Name (Chars (Pragma_Identifier (gnat_parent))))
  	{
! 	  const Pragma_Id id
  	    = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_parent)));
  	  return id == Pragma_Inspection_Point;
  	}
*************** Identifier_to_gnu (Node_Id gnat_node, tr
*** 1241,1247 ****
        /* Do the final dereference.  */
        gnu_result = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_result);
  
!       if ((TREE_CODE (gnu_result) == INDIRECT_REF
  	   || TREE_CODE (gnu_result) == UNCONSTRAINED_ARRAY_REF)
  	  && No (Address_Clause (gnat_entity)))
  	TREE_THIS_NOTRAP (gnu_result) = 1;
--- 1267,1273 ----
        /* Do the final dereference.  */
        gnu_result = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_result);
  
!       if ((INDIRECT_REF_P (gnu_result)
  	   || TREE_CODE (gnu_result) == UNCONSTRAINED_ARRAY_REF)
  	  && No (Address_Clause (gnat_entity)))
  	TREE_THIS_NOTRAP (gnu_result) = 1;
*************** Identifier_to_gnu (Node_Id gnat_node, tr
*** 1296,1302 ****
       avoid problematic conversions to the nominal subtype.  But remove any
       padding from the resulting type.  */
    if (FUNC_OR_METHOD_TYPE_P (TREE_TYPE (gnu_result))
!       || Is_Constr_Subt_For_UN_Aliased (gnat_result_type)
        || (Ekind (gnat_entity) == E_Constant
  	  && Present (Full_View (gnat_entity))
  	  && Has_Discriminants (gnat_result_type)
--- 1322,1328 ----
       avoid problematic conversions to the nominal subtype.  But remove any
       padding from the resulting type.  */
    if (FUNC_OR_METHOD_TYPE_P (TREE_TYPE (gnu_result))
!       || Is_Constr_Array_Subt_With_Bounds (gnat_result_type)
        || (Ekind (gnat_entity) == E_Constant
  	  && Present (Full_View (gnat_entity))
  	  && Has_Discriminants (gnat_result_type)
*************** Pragma_to_gnu (Node_Id gnat_node)
*** 1325,1331 ****
    if (!Is_Pragma_Name (Chars (Pragma_Identifier (gnat_node))))
      return gnu_result;
  
!   const unsigned char id
      = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_node)));
  
    /* Save the expression of pragma Compile_Time_{Error|Warning} for later.  */
--- 1351,1357 ----
    if (!Is_Pragma_Name (Chars (Pragma_Identifier (gnat_node))))
      return gnu_result;
  
!   const Pragma_Id id
      = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_node)));
  
    /* Save the expression of pragma Compile_Time_{Error|Warning} for later.  */
*************** get_type_length (tree type, tree result_
*** 1664,1670 ****
     should place the result type.  ATTRIBUTE is the attribute ID.  */
  
  static tree
! Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, int attribute)
  {
    const Node_Id gnat_prefix = Prefix (gnat_node);
    tree gnu_prefix = gnat_to_gnu (gnat_prefix);
--- 1690,1697 ----
     should place the result type.  ATTRIBUTE is the attribute ID.  */
  
  static tree
! Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p,
! 		  Attribute_Id attribute)
  {
    const Node_Id gnat_prefix = Prefix (gnat_node);
    tree gnu_prefix = gnat_to_gnu (gnat_prefix);
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 1708,1719 ****
      case Attr_Address:
      case Attr_Unrestricted_Access:
        /* Conversions don't change the address of references but can cause
! 	 build_unary_op to miss the references below, so strip them off.
  	 On the contrary, if the address-of operation causes a temporary
  	 to be created, then it must be created with the proper type.  */
        gnu_expr = remove_conversions (gnu_prefix,
  				     !Must_Be_Byte_Aligned (gnat_node));
!       if (REFERENCE_CLASS_P (gnu_expr))
  	gnu_prefix = gnu_expr;
  
        /* If we are taking 'Address of an unconstrained object, this is the
--- 1735,1751 ----
      case Attr_Address:
      case Attr_Unrestricted_Access:
        /* Conversions don't change the address of references but can cause
! 	 build_unary_op to miss the references below so strip them off.
! 
!          Also remove the conversions applied to declarations as the intent is
!          to take the decls' address, not that of the copies that the
!          conversions may create.
! 
  	 On the contrary, if the address-of operation causes a temporary
  	 to be created, then it must be created with the proper type.  */
        gnu_expr = remove_conversions (gnu_prefix,
  				     !Must_Be_Byte_Aligned (gnat_node));
!       if (REFERENCE_CLASS_P (gnu_expr) || DECL_P (gnu_expr))
  	gnu_prefix = gnu_expr;
  
        /* If we are taking 'Address of an unconstrained object, this is the
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 1939,1962 ****
  	  /* If this is a dereference and we have a special dynamic constrained
  	     subtype on the prefix, use it to compute the size; otherwise, use
  	     the designated subtype.  */
! 	  if (Nkind (gnat_prefix) == N_Explicit_Dereference)
  	    {
! 	      Node_Id gnat_actual_subtype
! 		= Actual_Designated_Subtype (gnat_prefix);
  	      tree gnu_ptr_type
  		= TREE_TYPE (gnat_to_gnu (Prefix (gnat_prefix)));
  
! 	      if (TYPE_IS_FAT_OR_THIN_POINTER_P (gnu_ptr_type)
! 		  && Present (gnat_actual_subtype))
! 		{
! 		  tree gnu_actual_obj_type
! 		    = gnat_to_gnu_type (gnat_actual_subtype);
! 		  gnu_type
! 		    = build_unc_object_type_from_ptr (gnu_ptr_type,
! 						      gnu_actual_obj_type,
! 						      get_identifier ("SIZE"),
! 						      false);
! 		}
  	    }
  
  	  gnu_result = TYPE_SIZE (gnu_type);
--- 1971,1990 ----
  	  /* If this is a dereference and we have a special dynamic constrained
  	     subtype on the prefix, use it to compute the size; otherwise, use
  	     the designated subtype.  */
! 	  if (Nkind (gnat_prefix) == N_Explicit_Dereference
! 	      && Present (Actual_Designated_Subtype (gnat_prefix)))
  	    {
! 	      tree gnu_actual_obj_type
! 		= gnat_to_gnu_type (Actual_Designated_Subtype (gnat_prefix));
  	      tree gnu_ptr_type
  		= TREE_TYPE (gnat_to_gnu (Prefix (gnat_prefix)));
  
! 	      if (TYPE_IS_FAT_OR_THIN_POINTER_P (gnu_ptr_type))
! 		gnu_type
! 		  = build_unc_object_type_from_ptr (gnu_ptr_type,
! 						    gnu_actual_obj_type,
! 						    get_identifier ("SIZE"),
! 						    false);
  	    }
  
  	  gnu_result = TYPE_SIZE (gnu_type);
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 1971,1977 ****
        if (TREE_CODE (gnu_prefix) != TYPE_DECL)
  	{
  	  gnu_result = SUBSTITUTE_PLACEHOLDER_IN_EXPR (gnu_result, gnu_prefix);
! 	  if (Present (gnat_smo))
  	    gnu_result = INSTANTIATE_LOAD_IN_EXPR (gnu_result, gnat_smo);
  	}
        else if (CONTAINS_PLACEHOLDER_P (gnu_result))
--- 1999,2006 ----
        if (TREE_CODE (gnu_prefix) != TYPE_DECL)
  	{
  	  gnu_result = SUBSTITUTE_PLACEHOLDER_IN_EXPR (gnu_result, gnu_prefix);
! 	  if (Present (gnat_smo)
! 	      && Present (Storage_Model_Copy_From (gnat_smo)))
  	    gnu_result = INSTANTIATE_LOAD_IN_EXPR (gnu_result, gnat_smo);
  	}
        else if (CONTAINS_PLACEHOLDER_P (gnu_result))
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 2204,2210 ****
  	   handling.  Note that these attributes could not have been used on
  	   an unconstrained array type.  */
  	gnu_result = SUBSTITUTE_PLACEHOLDER_IN_EXPR (gnu_result, gnu_prefix);
! 	if (Present (gnat_smo))
  	  gnu_result = INSTANTIATE_LOAD_IN_EXPR (gnu_result, gnat_smo);
  
  	/* Cache the expression we have just computed.  Since we want to do it
--- 2233,2240 ----
  	   handling.  Note that these attributes could not have been used on
  	   an unconstrained array type.  */
  	gnu_result = SUBSTITUTE_PLACEHOLDER_IN_EXPR (gnu_result, gnu_prefix);
! 	if (Present (gnat_smo)
! 	    && Present (Storage_Model_Copy_From (gnat_smo)))
  	  gnu_result = INSTANTIATE_LOAD_IN_EXPR (gnu_result, gnat_smo);
  
  	/* Cache the expression we have just computed.  Since we want to do it
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 2361,2372 ****
  	  case Attr_Bit_Position:
  	    gnu_result = gnu_field_bitpos;
  	    break;
  	  }
  
  	/* If this has a PLACEHOLDER_EXPR, qualify it by the object we are
  	   handling.  */
  	gnu_result = SUBSTITUTE_PLACEHOLDER_IN_EXPR (gnu_result, gnu_prefix);
! 	if (Present (gnat_smo))
  	  gnu_result = INSTANTIATE_LOAD_IN_EXPR (gnu_result, gnat_smo);
  	break;
        }
--- 2391,2407 ----
  	  case Attr_Bit_Position:
  	    gnu_result = gnu_field_bitpos;
  	    break;
+ 
+ 	    /* -Wswitch warning avoidance.  */
+ 	  default:
+ 	    break;
  	  }
  
  	/* If this has a PLACEHOLDER_EXPR, qualify it by the object we are
  	   handling.  */
  	gnu_result = SUBSTITUTE_PLACEHOLDER_IN_EXPR (gnu_result, gnu_prefix);
! 	if (Present (gnat_smo)
! 	    && Present (Storage_Model_Copy_From (gnat_smo)))
  	  gnu_result = INSTANTIATE_LOAD_IN_EXPR (gnu_result, gnat_smo);
  	break;
        }
*************** Case_Statement_to_gnu (Node_Id gnat_node
*** 2690,2700 ****
  	 never been problematic, but not for case expressions in Ada 2012.  */
        if (choices_added_p)
  	{
! 	  const bool is_case_expression
! 	    = (Nkind (Parent (gnat_node)) == N_Expression_With_Actions);
! 	  tree group
! 	    = build_stmt_group (Statements (gnat_when), !is_case_expression);
! 	  bool group_may_fallthru = block_may_fallthru (group);
  	  add_stmt (group);
  	  if (group_may_fallthru)
  	    {
--- 2725,2733 ----
  	 never been problematic, but not for case expressions in Ada 2012.  */
        if (choices_added_p)
  	{
! 	  const bool case_expr_p = From_Conditional_Expression (gnat_node);
! 	  tree group = build_stmt_group (Statements (gnat_when), !case_expr_p);
! 	  const bool group_may_fallthru = block_may_fallthru (group);
  	  add_stmt (group);
  	  if (group_may_fallthru)
  	    {
*************** Loop_Statement_to_gnu (Node_Id gnat_node
*** 3006,3012 ****
  	}
  
        /* We use two different strategies to translate the loop, depending on
! 	 whether optimization is enabled.
  
  	 If it is, we generate the canonical loop form expected by the loop
  	 optimizer and the loop vectorizer, which is the do-while form:
--- 3039,3047 ----
  	}
  
        /* We use two different strategies to translate the loop, depending on
! 	 whether optimization is enabled, except for the very peculiar case
! 	 of a loop running over a boolean type where we use the simpler form
! 	 in order to avoid manipulating negative values in a boolean context.
  
  	 If it is, we generate the canonical loop form expected by the loop
  	 optimizer and the loop vectorizer, which is the do-while form:
*************** Loop_Statement_to_gnu (Node_Id gnat_node
*** 3052,3058 ****
  
  	 which works in all cases.  */
  
!       if (optimize && !optimize_debug)
  	{
  	  /* We can use the do-while form directly if GNU_FIRST-1 doesn't
  	     overflow.  */
--- 3087,3095 ----
  
  	 which works in all cases.  */
  
!       if (optimize
! 	  && !optimize_debug
! 	  && TREE_CODE (gnu_base_type) != BOOLEAN_TYPE)
  	{
  	  /* We can use the do-while form directly if GNU_FIRST-1 doesn't
  	     overflow.  */
*************** struct nrv_data
*** 3391,3397 ****
  static inline bool
  is_nrv_p (bitmap nrv, tree t)
  {
!   return TREE_CODE (t) == VAR_DECL && bitmap_bit_p (nrv, DECL_UID (t));
  }
  
  /* Helper function for walk_tree, used by finalize_nrv below.  */
--- 3428,3434 ----
  static inline bool
  is_nrv_p (bitmap nrv, tree t)
  {
!   return VAR_P (t) && bitmap_bit_p (nrv, DECL_UID (t));
  }
  
  /* Helper function for walk_tree, used by finalize_nrv below.  */
*************** Subprogram_Body_to_gnu (Node_Id gnat_nod
*** 3894,3901 ****
      gnu_return_var_elmt = NULL_TREE;
  
    /* If the function returns by invisible reference, make it explicit in the
!      function body.  See gnat_to_gnu_subprog_type for more details.  */
!   if (TREE_ADDRESSABLE (gnu_subprog_type))
      {
        TREE_TYPE (gnu_result_decl)
  	= build_reference_type (TREE_TYPE (gnu_result_decl));
--- 3931,3941 ----
      gnu_return_var_elmt = NULL_TREE;
  
    /* If the function returns by invisible reference, make it explicit in the
!      function body, but beware that maybe_make_gnu_thunk may already have done
!      it if the function is inlined across units.  See gnat_to_gnu_subprog_type
!      for more details.  */
!   if (TREE_ADDRESSABLE (gnu_subprog_type)
!       && TREE_CODE (TREE_TYPE (gnu_result_decl)) != REFERENCE_TYPE)
      {
        TREE_TYPE (gnu_result_decl)
  	= build_reference_type (TREE_TYPE (gnu_result_decl));
*************** Subprogram_Body_to_gnu (Node_Id gnat_nod
*** 4136,4142 ****
         gnat_param = Next_Formal_With_Extras (gnat_param))
      {
        tree gnu_param = get_gnu_tree (gnat_param);
!       bool is_var_decl = (TREE_CODE (gnu_param) == VAR_DECL);
  
        annotate_object (gnat_param, TREE_TYPE (gnu_param), NULL_TREE,
  		       DECL_BY_REF_P (gnu_param));
--- 4176,4182 ----
         gnat_param = Next_Formal_With_Extras (gnat_param))
      {
        tree gnu_param = get_gnu_tree (gnat_param);
!       bool is_var_decl = VAR_P (gnu_param);
  
        annotate_object (gnat_param, TREE_TYPE (gnu_param), NULL_TREE,
  		       DECL_BY_REF_P (gnu_param));
*************** static inline bool
*** 4254,4261 ****
  node_is_component (Node_Id gnat_node)
  {
    const Node_Kind k = Nkind (gnat_node);
!   return
!     (k == N_Indexed_Component || k == N_Selected_Component || k == N_Slice);
  }
  
  /* Compute whether GNAT_NODE requires atomic access and set TYPE to the type
--- 4294,4309 ----
  node_is_component (Node_Id gnat_node)
  {
    const Node_Kind k = Nkind (gnat_node);
!   return k == N_Indexed_Component || k == N_Selected_Component || k == N_Slice;
! }
! 
! /* Return true if GNAT_NODE is a type conversion.  */
! 
! static inline bool
! node_is_type_conversion (Node_Id gnat_node)
! {
!   const Node_Kind k = Nkind (gnat_node);
!   return k == N_Type_Conversion || k == N_Unchecked_Type_Conversion;
  }
  
  /* Compute whether GNAT_NODE requires atomic access and set TYPE to the type
*************** static void
*** 4273,4279 ****
  get_atomic_access (Node_Id gnat_node, atomic_acces_t *type, bool *sync)
  {
    Node_Id gnat_parent, gnat_temp;
!   unsigned char attr_id;
  
    /* First, scan the parent to filter out irrelevant cases.  */
    gnat_parent = Parent (gnat_node);
--- 4321,4327 ----
  get_atomic_access (Node_Id gnat_node, atomic_acces_t *type, bool *sync)
  {
    Node_Id gnat_parent, gnat_temp;
!   Attribute_Id attr_id;
  
    /* First, scan the parent to filter out irrelevant cases.  */
    gnat_parent = Parent (gnat_node);
*************** get_atomic_access (Node_Id gnat_node, at
*** 4306,4313 ****
      }
  
    /* Now strip any type conversion from GNAT_NODE.  */
!   if (Nkind (gnat_node) == N_Type_Conversion
!       || Nkind (gnat_node) == N_Unchecked_Type_Conversion)
      gnat_node = Expression (gnat_node);
  
    /* Up to Ada 2012, for Atomic itself, only reads and updates of the object as
--- 4354,4360 ----
      }
  
    /* Now strip any type conversion from GNAT_NODE.  */
!   if (node_is_type_conversion (gnat_node))
      gnat_node = Expression (gnat_node);
  
    /* Up to Ada 2012, for Atomic itself, only reads and updates of the object as
*************** static void
*** 4392,4412 ****
  get_storage_model_access (Node_Id gnat_node, Entity_Id *gnat_smo)
  {
    const Node_Id gnat_parent = Parent (gnat_node);
  
!   /* If we are the prefix of the parent, then the access is above us.  */
!   if (node_is_component (gnat_parent) && Prefix (gnat_parent) == gnat_node)
      {
!       *gnat_smo = Empty;
        return;
      }
  
!   /* Now strip any type conversion from GNAT_NODE.  */
!   if (Nkind (gnat_node) == N_Type_Conversion
!       || Nkind (gnat_node) == N_Unchecked_Type_Conversion)
!     gnat_node = Expression (gnat_node);
  
    while (node_is_component (gnat_node))
!     gnat_node = Prefix (gnat_node);
  
    *gnat_smo = get_storage_model (gnat_node);
  }
--- 4439,4482 ----
  get_storage_model_access (Node_Id gnat_node, Entity_Id *gnat_smo)
  {
    const Node_Id gnat_parent = Parent (gnat_node);
+   *gnat_smo = Empty;
  
!   switch (Nkind (gnat_parent))
      {
!     case N_Attribute_Reference:
!       /* If the parent is an attribute reference that requires an lvalue and
!          gnat_node is the Prefix (i.e. not a parameter), we do not need to
!          actually access any storage. */
!       if (lvalue_required_for_attribute_p (gnat_parent)
!           && Prefix (gnat_parent) == gnat_node)
!         return;
!       break;
! 
!     case N_Object_Renaming_Declaration:
!       /* Nothing to do for the identifier in an object renaming declaration,
!          the renaming itself does not need storage model access. */
        return;
+ 
+     default:
+       break;
      }
  
!   /* If we are the prefix of the parent, then the access is above us.  */
!   if ((node_is_component (gnat_parent) && Prefix (gnat_parent) == gnat_node)
!       || (node_is_type_conversion (gnat_parent)
! 	  && node_is_component (Parent (gnat_parent))
! 	  && Prefix (Parent (gnat_parent)) == gnat_parent))
!     return;
  
+   /* Find the innermost prefix in GNAT_NODE, stripping any type conversion.  */
+   if (node_is_type_conversion (gnat_node))
+     gnat_node = Expression (gnat_node);
    while (node_is_component (gnat_node))
!     {
!       gnat_node = Prefix (gnat_node);
!       if (node_is_type_conversion (gnat_node))
! 	gnat_node = Expression (gnat_node);
!     }
  
    *gnat_smo = get_storage_model (gnat_node);
  }
*************** elaborate_profile (Entity_Id first_forma
*** 4536,4549 ****
     N_Assignment_Statement and the result is to be placed into that object.
     ATOMIC_ACCESS is the type of atomic access to be used for the assignment
     to GNU_TARGET.  If, in addition, ATOMIC_SYNC is true, then the assignment
!    to GNU_TARGET requires atomic synchronization.  GNAT_STORAGE_MODEL is the
!    storage model object to be used for the assignment to GNU_TARGET or Empty
!    if there is none.  */
  
  static tree
  Call_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_target,
! 	     atomic_acces_t atomic_access, bool atomic_sync,
! 	     Entity_Id gnat_storage_model)
  {
    const bool function_call = (Nkind (gnat_node) == N_Function_Call);
    const bool returning_value = (function_call && !gnu_target);
--- 4606,4618 ----
     N_Assignment_Statement and the result is to be placed into that object.
     ATOMIC_ACCESS is the type of atomic access to be used for the assignment
     to GNU_TARGET.  If, in addition, ATOMIC_SYNC is true, then the assignment
!    to GNU_TARGET requires atomic synchronization.  GNAT_SMO is the storage
!    model object to be used for the assignment to GNU_TARGET or Empty if there
!    is none.  */
  
  static tree
  Call_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_target,
! 	     atomic_acces_t atomic_access, bool atomic_sync, Entity_Id gnat_smo)
  {
    const bool function_call = (Nkind (gnat_node) == N_Function_Call);
    const bool returning_value = (function_call && !gnu_target);
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4556,4562 ****
    /* The FUNCTION_TYPE node giving the GCC type of the subprogram.  */
    tree gnu_subprog_type = TREE_TYPE (gnu_subprog);
    /* The return type of the FUNCTION_TYPE.  */
!   tree gnu_result_type;;
    const bool frontend_builtin
      = (TREE_CODE (gnu_subprog) == FUNCTION_DECL
         && DECL_BUILT_IN_CLASS (gnu_subprog) == BUILT_IN_FRONTEND);
--- 4625,4631 ----
    /* The FUNCTION_TYPE node giving the GCC type of the subprogram.  */
    tree gnu_subprog_type = TREE_TYPE (gnu_subprog);
    /* The return type of the FUNCTION_TYPE.  */
!   tree gnu_result_type;
    const bool frontend_builtin
      = (TREE_CODE (gnu_subprog) == FUNCTION_DECL
         && DECL_BUILT_IN_CLASS (gnu_subprog) == BUILT_IN_FRONTEND);
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4575,4581 ****
    Node_Id gnat_actual;
    atomic_acces_t aa_type;
    bool aa_sync;
-   Entity_Id gnat_smo;
  
    /* The only way we can make a call via an access type is if GNAT_NAME is an
       explicit dereference.  In that case, get the list of formal args from the
--- 4644,4649 ----
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4639,4645 ****
      }
  
    /* We must elaborate the entire profile now because, if it references types
!      that were initially incomplete,, their elaboration changes the contents
       of GNU_SUBPROG_TYPE and, in particular, may change the result type.  */
    elaborate_profile (gnat_formal, gnat_result_type);
  
--- 4707,4713 ----
      }
  
    /* We must elaborate the entire profile now because, if it references types
!      that were initially incomplete, their elaboration changes the contents
       of GNU_SUBPROG_TYPE and, in particular, may change the result type.  */
    elaborate_profile (gnat_formal, gnat_result_type);
  
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4727,4734 ****
  		 != TYPE_SIZE (TREE_TYPE (gnu_target))
  	      && type_is_padding_self_referential (gnu_result_type))
  	  || (gnu_target
! 	      && Present (gnat_storage_model)
! 	      && Present (Storage_Model_Copy_To (gnat_storage_model)))))
      {
        gnu_retval = create_temporary ("R", gnu_result_type);
        DECL_RETURN_VALUE_P (gnu_retval) = 1;
--- 4795,4802 ----
  		 != TYPE_SIZE (TREE_TYPE (gnu_target))
  	      && type_is_padding_self_referential (gnu_result_type))
  	  || (gnu_target
! 	      && Present (gnat_smo)
! 	      && Present (Storage_Model_Copy_To (gnat_smo)))))
      {
        gnu_retval = create_temporary ("R", gnu_result_type);
        DECL_RETURN_VALUE_P (gnu_retval) = 1;
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4799,4817 ****
  	      = build_compound_expr (TREE_TYPE (gnu_name), init, gnu_name);
  	}
  
!       get_storage_model_access (gnat_actual, &gnat_smo);
! 
!       /* If we are passing a non-addressable actual parameter by reference,
! 	 pass the address of a copy.  Likewise if it needs to be accessed with
! 	 a storage model.  In the In Out or Out case, set up to copy back out
! 	 after the call.  */
        if (is_by_ref_formal_parm
  	  && (gnu_name_type = gnat_to_gnu_type (Etype (gnat_name)))
! 	  && (!addressable_p (gnu_name, gnu_name_type)
! 	      || (Present (gnat_smo)
! 		  && (Present (Storage_Model_Copy_From (gnat_smo))
! 		      || (!in_param
! 			  && Present (Storage_Model_Copy_To (gnat_smo)))))))
  	{
  	  tree gnu_orig = gnu_name, gnu_temp, gnu_stmt;
  
--- 4867,4878 ----
  	      = build_compound_expr (TREE_TYPE (gnu_name), init, gnu_name);
  	}
  
!       /* If we are passing a non-addressable parameter by reference, pass the
! 	 address of a copy.  In the In Out or Out case, set up to copy back
! 	 out after the call.  */
        if (is_by_ref_formal_parm
  	  && (gnu_name_type = gnat_to_gnu_type (Etype (gnat_name)))
! 	  && !addressable_p (gnu_name, gnu_name_type))
  	{
  	  tree gnu_orig = gnu_name, gnu_temp, gnu_stmt;
  
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4882,4921 ****
  	    }
  
  	  /* Create an explicit temporary holding the copy.  */
- 	  tree gnu_temp_type;
- 	  if (Nkind (gnat_actual) == N_Explicit_Dereference
- 	      && Present (Actual_Designated_Subtype (gnat_actual)))
- 	    gnu_temp_type
- 	      = gnat_to_gnu_type (Actual_Designated_Subtype (gnat_actual));
- 	  else
- 	    gnu_temp_type = TREE_TYPE (gnu_name);
  
  	  /* Do not initialize it for the _Init parameter of an initialization
  	     procedure since no data is meant to be passed in.  */
  	  if (Ekind (gnat_formal) == E_Out_Parameter
  	      && Is_Entity_Name (gnat_subprog)
  	      && Is_Init_Proc (Entity (gnat_subprog)))
! 	    gnu_name = gnu_temp = create_temporary ("A", gnu_temp_type);
  
  	  /* Initialize it on the fly like for an implicit temporary in the
  	     other cases, as we don't necessarily have a statement list.  */
  	  else
  	    {
! 	      if (Present (gnat_smo)
! 		  && Present (Storage_Model_Copy_From (gnat_smo)))
! 		{
! 		  gnu_temp = create_temporary ("A", gnu_temp_type);
! 		  gnu_stmt
! 		    = build_storage_model_load (gnat_smo, gnu_temp,
! 						gnu_name,
! 						TYPE_SIZE_UNIT (gnu_temp_type));
! 		  set_expr_location_from_node (gnu_stmt, gnat_actual);
! 		}
! 	      else
! 		gnu_temp = create_init_temporary ("A", gnu_name, &gnu_stmt,
! 						  gnat_actual);
! 
! 	      gnu_name = build_compound_expr (gnu_temp_type, gnu_stmt,
  					      gnu_temp);
  	    }
  
--- 4943,4963 ----
  	    }
  
  	  /* Create an explicit temporary holding the copy.  */
  
  	  /* Do not initialize it for the _Init parameter of an initialization
  	     procedure since no data is meant to be passed in.  */
  	  if (Ekind (gnat_formal) == E_Out_Parameter
  	      && Is_Entity_Name (gnat_subprog)
  	      && Is_Init_Proc (Entity (gnat_subprog)))
! 	    gnu_name = gnu_temp = create_temporary ("A", TREE_TYPE (gnu_name));
  
  	  /* Initialize it on the fly like for an implicit temporary in the
  	     other cases, as we don't necessarily have a statement list.  */
  	  else
  	    {
! 	      gnu_temp = create_init_temporary ("A", gnu_name, &gnu_stmt,
! 						gnat_actual);
! 	      gnu_name = build_compound_expr (TREE_TYPE (gnu_name), gnu_stmt,
  					      gnu_temp);
  	    }
  
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4931,4946 ****
  		     (TREE_OPERAND (TREE_OPERAND (gnu_orig, 1), 1)))
  		gnu_orig = TREE_OPERAND (gnu_orig, 2);
  
! 	      if (Present (gnat_smo)
! 		  && Present (Storage_Model_Copy_To (gnat_smo)))
! 		gnu_stmt
! 		  = build_storage_model_store (gnat_smo, gnu_orig,
! 					       gnu_temp,
! 					       TYPE_SIZE_UNIT (gnu_temp_type));
! 	      else
! 		gnu_stmt
! 		  = build_binary_op (MODIFY_EXPR, NULL_TREE, gnu_orig,
! 				     gnu_temp);
  	      set_expr_location_from_node (gnu_stmt, gnat_node);
  
  	      append_to_statement_list (gnu_stmt, &gnu_after_list);
--- 4973,4980 ----
  		     (TREE_OPERAND (TREE_OPERAND (gnu_orig, 1), 1)))
  		gnu_orig = TREE_OPERAND (gnu_orig, 2);
  
! 	      gnu_stmt
! 		= build_binary_op (MODIFY_EXPR, NULL_TREE, gnu_orig, gnu_temp);
  	      set_expr_location_from_node (gnu_stmt, gnat_node);
  
  	      append_to_statement_list (gnu_stmt, &gnu_after_list);
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4951,4969 ****
        tree gnu_actual = gnu_name;
  
        /* If atomic access is required for an In or In Out actual parameter,
! 	 build the atomic load.  Or else, if storage model access is required,
! 	 build the special load.  */
        if (is_true_formal_parm
  	  && !is_by_ref_formal_parm
! 	  && Ekind (gnat_formal) != E_Out_Parameter)
! 	{
! 	  if (simple_atomic_access_required_p (gnat_actual, &aa_sync))
! 	    gnu_actual = build_atomic_load (gnu_actual, aa_sync);
! 
! 	  else if (Present (gnat_smo)
! 		   && Present (Storage_Model_Copy_From (gnat_smo)))
! 	    gnu_actual = build_storage_model_load (gnat_smo, gnu_actual);
! 	}
  
        /* If this was a procedure call, we may not have removed any padding.
  	 So do it here for the part we will use as an input, if any.  */
--- 4985,4996 ----
        tree gnu_actual = gnu_name;
  
        /* If atomic access is required for an In or In Out actual parameter,
! 	 build the atomic load.  */
        if (is_true_formal_parm
  	  && !is_by_ref_formal_parm
! 	  && Ekind (gnat_formal) != E_Out_Parameter
! 	  && simple_atomic_access_required_p (gnat_actual, &aa_sync))
! 	gnu_actual = build_atomic_load (gnu_actual, aa_sync);
  
        /* If this was a procedure call, we may not have removed any padding.
  	 So do it here for the part we will use as an input, if any.  */
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5012,5027 ****
  		gnu_actual = convert (get_unpadded_type (Etype (gnat_actual)),
  				      gnu_actual);
  
! 	      /* If we have the constructed subtype of an aliased object
! 		 with an unconstrained nominal subtype, the type of the
! 		 actual includes the template, although it is formally
! 		 constrained.  So we need to convert it back to the real
! 		 constructed subtype to retrieve the constrained part
! 		 and takes its address.  */
  	      if (TREE_CODE (TREE_TYPE (gnu_actual)) == RECORD_TYPE
  		  && TYPE_CONTAINS_TEMPLATE_P (TREE_TYPE (gnu_actual))
! 		  && Is_Constr_Subt_For_UN_Aliased (Etype (gnat_actual))
! 		  && Is_Array_Type (Underlying_Type (Etype (gnat_actual))))
  		gnu_actual = convert (gnu_actual_type, gnu_actual);
  	    }
  
--- 5039,5052 ----
  		gnu_actual = convert (get_unpadded_type (Etype (gnat_actual)),
  				      gnu_actual);
  
! 	      /* If it is the constructed subtype of an array allocated with
! 		 its bounds, the type of the actual includes the template,
! 		 although it is formally constrained.  So we need to convert
! 		 it back to the real constructed subtype to retrieve the
! 		 constrained part and takes its address.  */
  	      if (TREE_CODE (TREE_TYPE (gnu_actual)) == RECORD_TYPE
  		  && TYPE_CONTAINS_TEMPLATE_P (TREE_TYPE (gnu_actual))
! 		  && Is_Constr_Array_Subt_With_Bounds (Etype (gnat_actual)))
  		gnu_actual = convert (gnu_actual_type, gnu_actual);
  	    }
  
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5327,5333 ****
  	      }
  
  	    get_atomic_access (gnat_actual, &aa_type, &aa_sync);
- 	    get_storage_model_access (gnat_actual, &gnat_smo);
  
  	    /* If an outer atomic access is required for an actual parameter,
  	       build the load-modify-store sequence.  */
--- 5352,5357 ----
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5341,5353 ****
  	      gnu_result
  		= build_atomic_store (gnu_actual, gnu_result, aa_sync);
  
- 	    /* Or else, if a storage model access is required, build the special
- 	       store.  */
- 	    else if (Present (gnat_smo)
- 		     && Present (Storage_Model_Copy_To (gnat_smo)))
- 	      gnu_result
- 		= build_storage_model_store (gnat_smo, gnu_actual, gnu_result);
- 
  	    /* Otherwise build a regular assignment.  */
  	    else
  	      gnu_result = build_binary_op (MODIFY_EXPR, NULL_TREE,
--- 5365,5370 ----
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 5422,5432 ****
  	      = build_load_modify_store (gnu_target, gnu_call, gnat_node);
  	  else if (atomic_access == SIMPLE_ATOMIC)
  	    gnu_call = build_atomic_store (gnu_target, gnu_call, atomic_sync);
! 	  else if (Present (gnat_storage_model)
! 		   && Present (Storage_Model_Copy_To (gnat_storage_model)))
  	    gnu_call
! 	      = build_storage_model_store (gnat_storage_model, gnu_target,
! 					   gnu_call);
  	  else
  	    gnu_call
  	      = build_binary_op (op_code, NULL_TREE, gnu_target, gnu_call);
--- 5439,5448 ----
  	      = build_load_modify_store (gnu_target, gnu_call, gnat_node);
  	  else if (atomic_access == SIMPLE_ATOMIC)
  	    gnu_call = build_atomic_store (gnu_target, gnu_call, atomic_sync);
! 	  else if (Present (gnat_smo)
! 		   && Present (Storage_Model_Copy_To (gnat_smo)))
  	    gnu_call
! 	      = build_storage_model_store (gnat_smo, gnu_target, gnu_call);
  	  else
  	    gnu_call
  	      = build_binary_op (op_code, NULL_TREE, gnu_target, gnu_call);
*************** lhs_or_actual_p (Node_Id gnat_node)
*** 6139,6154 ****
  static bool
  present_in_lhs_or_actual_p (Node_Id gnat_node)
  {
!   if (lhs_or_actual_p (gnat_node))
!     return true;
! 
!   const Node_Kind kind = Nkind (Parent (gnat_node));
! 
!   if ((kind == N_Type_Conversion || kind == N_Unchecked_Type_Conversion)
!       && lhs_or_actual_p (Parent (gnat_node)))
!     return true;
! 
!   return false;
  }
  
  /* Return true if GNAT_NODE, an unchecked type conversion, is a no-op as far
--- 6155,6163 ----
  static bool
  present_in_lhs_or_actual_p (Node_Id gnat_node)
  {
!   return lhs_or_actual_p (gnat_node)
! 	 || (node_is_type_conversion (Parent (gnat_node))
! 	     && lhs_or_actual_p (Parent (gnat_node)));
  }
  
  /* Return true if GNAT_NODE, an unchecked type conversion, is a no-op as far
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6728,6734 ****
  	    gnu_result
  	      = build_binary_op (ARRAY_REF, NULL_TREE, gnu_result, gnu_expr);
  
! 	    if (Present (gnat_smo))
  	      instantiate_load_in_array_ref (gnu_result, gnat_smo);
  	  }
  
--- 6737,6744 ----
  	    gnu_result
  	      = build_binary_op (ARRAY_REF, NULL_TREE, gnu_result, gnu_expr);
  
! 	    if (Present (gnat_smo)
! 	        && Present (Storage_Model_Copy_From (gnat_smo)))
  	      instantiate_load_in_array_ref (gnu_result, gnat_smo);
  	  }
  
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6773,6779 ****
  	gnu_result = build_binary_op (ARRAY_RANGE_REF, gnu_result_type,
  				      gnu_array_object, gnu_expr);
  
! 	if (Present (gnat_smo))
  	  instantiate_load_in_array_ref (gnu_result, gnat_smo);
  
  	/* If storage model access is required on the RHS, build the load.  */
--- 6783,6790 ----
  	gnu_result = build_binary_op (ARRAY_RANGE_REF, gnu_result_type,
  				      gnu_array_object, gnu_expr);
  
! 	if (Present (gnat_smo)
! 	    && Present (Storage_Model_Copy_From (gnat_smo)))
  	  instantiate_load_in_array_ref (gnu_result, gnat_smo);
  
  	/* If storage model access is required on the RHS, build the load.  */
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6870,6876 ****
      case N_Attribute_Reference:
        {
  	/* The attribute designator.  */
! 	const int attr = Get_Attribute_Id (Attribute_Name (gnat_node));
  
  	/* The Elab_Spec and Elab_Body attributes are special in that Prefix
  	   is a unit, not an object with a GCC equivalent.  */
--- 6881,6887 ----
      case N_Attribute_Reference:
        {
  	/* The attribute designator.  */
! 	const Attribute_Id attr = Get_Attribute_Id (Attribute_Name (gnat_node));
  
  	/* The Elab_Spec and Elab_Body attributes are special in that Prefix
  	   is a unit, not an object with a GCC equivalent.  */
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6908,6914 ****
  	    && TYPE_CONTAINS_TEMPLATE_P (gnu_result_type))
  	  gnu_aggr_type
  	    = TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (gnu_result_type)));
! 	else if (TREE_CODE (gnu_result_type) == VECTOR_TYPE)
  	  gnu_aggr_type = TYPE_REPRESENTATIVE_ARRAY (gnu_result_type);
  	else
  	  gnu_aggr_type = gnu_result_type;
--- 6919,6925 ----
  	    && TYPE_CONTAINS_TEMPLATE_P (gnu_result_type))
  	  gnu_aggr_type
  	    = TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (gnu_result_type)));
! 	else if (VECTOR_TYPE_P (gnu_result_type))
  	  gnu_aggr_type = TYPE_REPRESENTATIVE_ARRAY (gnu_result_type);
  	else
  	  gnu_aggr_type = gnu_result_type;
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7127,7135 ****
  	    gnu_rhs = convert (gnu_count_type, gnu_rhs);
  	    gnu_max_shift
  	      = convert (TREE_TYPE (gnu_rhs), TYPE_SIZE (gnu_type));
! 	    /* If the result type is larger than a word, then declare the dependence
! 	       on the libgcc routine.  */
! 	    if (TYPE_PRECISION (gnu_result_type) > BITS_PER_WORD)
  	      Check_Restriction_No_Dependence_On_System (Name_Gcc, gnat_node);
  	  }
  
--- 7138,7146 ----
  	    gnu_rhs = convert (gnu_count_type, gnu_rhs);
  	    gnu_max_shift
  	      = convert (TREE_TYPE (gnu_rhs), TYPE_SIZE (gnu_type));
! 	    /* If the result type is larger than a word, then declare the
! 	       dependence on the libgcc routine.  */
! 	    if (TYPE_PRECISION (gnu_type) > BITS_PER_WORD)
  	      Check_Restriction_No_Dependence_On_System (Name_Gcc, gnat_node);
  	  }
  
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7146,7152 ****
  	/* If this is a modulo/remainder and the result type is larger than a
  	   word, then declare the dependence on the libgcc routine.  */
  	else if ((kind == N_Op_Mod ||kind == N_Op_Rem)
! 		 && TYPE_PRECISION (gnu_result_type) > BITS_PER_WORD)
  	  Check_Restriction_No_Dependence_On_System (Name_Gcc, gnat_node);
  
  	/* Pending generic support for efficient vector logical operations in
--- 7157,7163 ----
  	/* If this is a modulo/remainder and the result type is larger than a
  	   word, then declare the dependence on the libgcc routine.  */
  	else if ((kind == N_Op_Mod ||kind == N_Op_Rem)
! 		 && TYPE_PRECISION (gnu_type) > BITS_PER_WORD)
  	  Check_Restriction_No_Dependence_On_System (Name_Gcc, gnat_node);
  
  	/* Pending generic support for efficient vector logical operations in
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7406,7418 ****
        /* Otherwise we need to build the assignment statement manually.  */
        else
  	{
  	  const Node_Id gnat_expr = Expression (gnat_node);
  	  const Node_Id gnat_inner
  	    = Nkind (gnat_expr) == N_Qualified_Expression
  	      ? Expression (gnat_expr)
  	      : gnat_expr;
! 	  const Entity_Id gnat_type
! 	    = Underlying_Type (Etype (Name (gnat_node)));
  	  const bool use_memset_p
  	    = Is_Array_Type (gnat_type)
  	      && Nkind (gnat_inner) == N_Aggregate
--- 7417,7429 ----
        /* Otherwise we need to build the assignment statement manually.  */
        else
  	{
+ 	  const Node_Id gnat_name = Name (gnat_node);
  	  const Node_Id gnat_expr = Expression (gnat_node);
  	  const Node_Id gnat_inner
  	    = Nkind (gnat_expr) == N_Qualified_Expression
  	      ? Expression (gnat_expr)
  	      : gnat_expr;
! 	  const Entity_Id gnat_type = Underlying_Type (Etype (gnat_name));
  	  const bool use_memset_p
  	    = Is_Array_Type (gnat_type)
  	      && Nkind (gnat_inner) == N_Aggregate
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7437,7444 ****
  
  	  gigi_checking_assert (!Do_Range_Check (gnat_expr));
  
! 	  get_atomic_access (Name (gnat_node), &aa_type, &aa_sync);
! 	  get_storage_model_access (Name (gnat_node), &gnat_smo);
  
  	  /* If an outer atomic access is required on the LHS, build the load-
  	     modify-store sequence.  */
--- 7448,7455 ----
  
  	  gigi_checking_assert (!Do_Range_Check (gnat_expr));
  
! 	  get_atomic_access (gnat_name, &aa_type, &aa_sync);
! 	  get_storage_model_access (gnat_name, &gnat_smo);
  
  	  /* If an outer atomic access is required on the LHS, build the load-
  	     modify-store sequence.  */
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7455,7493 ****
  	  else if (Present (gnat_smo)
  		   && Present (Storage_Model_Copy_To (gnat_smo)))
  	    {
  	      /* We obviously cannot use memset in this case.  */
  	      gcc_assert (!use_memset_p);
  
! 	      tree t = remove_conversions (gnu_rhs, false);
! 
! 	      /* If a storage model load is present on the RHS then instantiate
! 		 the temporary associated with it now, lest it be of variable
! 		 size and thus could not be instantiated by gimplification.  */
! 	      if (TREE_CODE (t) == LOAD_EXPR)
  		{
! 		  t = TREE_OPERAND (t, 1);
! 		  gcc_assert (TREE_CODE (t) == CALL_EXPR);
! 
! 		  tree elem
! 		    = build_nonstandard_integer_type (BITS_PER_UNIT, 1);
! 		  tree size = fold_convert (sizetype, CALL_EXPR_ARG (t, 3));
! 		  tree index = build_index_type (size);
! 		  tree temp
! 		    = create_temporary ("L", build_array_type (elem, index));
! 		  tree arg = CALL_EXPR_ARG (t, 1);
! 		  CALL_EXPR_ARG (t, 1)
! 		    = build_unary_op (ADDR_EXPR, TREE_TYPE (arg), temp);
! 
! 		  start_stmt_group ();
! 		  add_stmt (t);
! 		  t = build_storage_model_store (gnat_smo, gnu_lhs, temp);
! 		  add_stmt (t);
! 		  gnu_result = end_stmt_group ();
  		}
- 
  	      else
! 		gnu_result
! 		  = build_storage_model_store (gnat_smo, gnu_lhs, gnu_rhs);
  	    }
  
  	  /* Or else, use memset when the conditions are met.  This has already
--- 7466,7491 ----
  	  else if (Present (gnat_smo)
  		   && Present (Storage_Model_Copy_To (gnat_smo)))
  	    {
+ 	      tree gnu_size;
+ 
  	      /* We obviously cannot use memset in this case.  */
  	      gcc_assert (!use_memset_p);
  
! 	      /* If this is a dereference with a special dynamic constrained
! 		 subtype on the node, use it to compute the size.  */
! 	      if (Nkind (gnat_name) == N_Explicit_Dereference
! 		  && Present (Actual_Designated_Subtype (gnat_name)))
  		{
! 		  tree gnu_actual_obj_type
! 		    = gnat_to_gnu_type (Actual_Designated_Subtype (gnat_name));
! 		  gnu_size = TYPE_SIZE_UNIT (gnu_actual_obj_type);
  		}
  	      else
! 		gnu_size = NULL_TREE;
! 
! 	      gnu_result
! 		= build_storage_model_store (gnat_smo, gnu_lhs, gnu_rhs,
! 					     gnu_size);
  	    }
  
  	  /* Or else, use memset when the conditions are met.  This has already
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7740,7746 ****
  		gnu_result = build2 (INIT_EXPR, void_type_node,
  				     gnu_ret_deref, gnu_ret_val);
  		/* Avoid a useless copy with __builtin_return_slot.  */
! 		if (TREE_CODE (gnu_ret_val) == INDIRECT_REF)
  		  gnu_result
  		    = build3 (COND_EXPR, void_type_node,
  			      fold_build2 (NE_EXPR, boolean_type_node,
--- 7738,7744 ----
  		gnu_result = build2 (INIT_EXPR, void_type_node,
  				     gnu_ret_deref, gnu_ret_val);
  		/* Avoid a useless copy with __builtin_return_slot.  */
! 		if (INDIRECT_REF_P (gnu_ret_val))
  		  gnu_result
  		    = build3 (COND_EXPR, void_type_node,
  			      fold_build2 (NE_EXPR, boolean_type_node,
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8415,8421 ****
  
    /* If we're supposed to return something of void_type, it means we have
       something we're elaborating for effect, so just return.  */
!   if (TREE_CODE (gnu_result_type) == VOID_TYPE)
      return gnu_result;
  
    /* If the result is a constant that overflowed, raise Constraint_Error.  */
--- 8413,8419 ----
  
    /* If we're supposed to return something of void_type, it means we have
       something we're elaborating for effect, so just return.  */
!   if (VOID_TYPE_P (gnu_result_type))
      return gnu_result;
  
    /* If the result is a constant that overflowed, raise Constraint_Error.  */
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8475,8482 ****
  
         5. If this is a reference to an unconstrained array which is used either
  	  as the prefix of an attribute reference that requires an lvalue or in
! 	  a return statement, then return the result unmodified because we want
! 	  to return the original bounds.
  
         6. Finally, if the type of the result is already correct.  */
  
--- 8473,8480 ----
  
         5. If this is a reference to an unconstrained array which is used either
  	  as the prefix of an attribute reference that requires an lvalue or in
! 	  a return statement without storage pool, return the result unmodified
! 	  because we want to return the original bounds.
  
         6. Finally, if the type of the result is already correct.  */
  
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8542,8548 ****
  	   && Present (Parent (gnat_node))
  	   && ((Nkind (Parent (gnat_node)) == N_Attribute_Reference
  	        && lvalue_required_for_attribute_p (Parent (gnat_node)))
! 	       || Nkind (Parent (gnat_node)) == N_Simple_Return_Statement))
      ;
  
    else if (TREE_TYPE (gnu_result) != gnu_result_type)
--- 8540,8547 ----
  	   && Present (Parent (gnat_node))
  	   && ((Nkind (Parent (gnat_node)) == N_Attribute_Reference
  	        && lvalue_required_for_attribute_p (Parent (gnat_node)))
! 	       || (Nkind (Parent (gnat_node)) == N_Simple_Return_Statement
! 		   && No (Storage_Pool (Parent (gnat_node))))))
      ;
  
    else if (TREE_TYPE (gnu_result) != gnu_result_type)
*************** gnat_to_gnu_external (Node_Id gnat_node)
*** 8588,8594 ****
      current_function_decl = NULL_TREE;
  
    /* Do not import locations from external units.  */
!   if (gnu_result && EXPR_P (gnu_result))
      SET_EXPR_LOCATION (gnu_result, UNKNOWN_LOCATION);
  
    return gnu_result;
--- 8587,8593 ----
      current_function_decl = NULL_TREE;
  
    /* Do not import locations from external units.  */
!   if (CAN_HAVE_LOCATION_P (gnu_result))
      SET_EXPR_LOCATION (gnu_result, UNKNOWN_LOCATION);
  
    return gnu_result;
*************** add_decl_expr (tree gnu_decl, Node_Id gn
*** 8722,8728 ****
  	 Note that walk_tree knows how to deal with TYPE_DECL, but neither
  	 VAR_DECL nor CONST_DECL.  This appears to be somewhat arbitrary.  */
        MARK_VISITED (gnu_stmt);
!       if (TREE_CODE (gnu_decl) == VAR_DECL
  	  || TREE_CODE (gnu_decl) == CONST_DECL)
  	{
  	  MARK_VISITED (DECL_SIZE (gnu_decl));
--- 8721,8727 ----
  	 Note that walk_tree knows how to deal with TYPE_DECL, but neither
  	 VAR_DECL nor CONST_DECL.  This appears to be somewhat arbitrary.  */
        MARK_VISITED (gnu_stmt);
!       if (VAR_P (gnu_decl)
  	  || TREE_CODE (gnu_decl) == CONST_DECL)
  	{
  	  MARK_VISITED (DECL_SIZE (gnu_decl));
*************** add_decl_expr (tree gnu_decl, Node_Id gn
*** 8739,8745 ****
        && !TYPE_FAT_POINTER_P (type))
      MARK_VISITED (TYPE_ADA_SIZE (type));
  
!   if (TREE_CODE (gnu_decl) == VAR_DECL && (gnu_init = DECL_INITIAL (gnu_decl)))
      {
        /* If this is a variable and an initializer is attached to it, it must be
  	 valid for the context.  Similar to init_const in create_var_decl.  */
--- 8738,8744 ----
        && !TYPE_FAT_POINTER_P (type))
      MARK_VISITED (TYPE_ADA_SIZE (type));
  
!   if (VAR_P (gnu_decl) && (gnu_init = DECL_INITIAL (gnu_decl)))
      {
        /* If this is a variable and an initializer is attached to it, it must be
  	 valid for the context.  Similar to init_const in create_var_decl.  */
*************** gnat_gimplify_expr (tree *expr_p, gimple
*** 8971,9006 ****
  	  }
        break;
  
-     case CALL_EXPR:
-       /* If we are passing a constant fat pointer CONSTRUCTOR, make sure it is
- 	 put into static memory; this performs a restricted version of constant
- 	 propagation on fat pointers in calls.  But do not do it for strings to
- 	 avoid blocking concatenation in the caller when it is inlined.  */
-       for (int i = 0; i < call_expr_nargs (expr); i++)
- 	{
- 	  tree arg = CALL_EXPR_ARG (expr, i);
- 
- 	  if (TREE_CODE (arg) == CONSTRUCTOR
- 	      && TREE_CONSTANT (arg)
- 	      && TYPE_IS_FAT_POINTER_P (TREE_TYPE (arg)))
- 	    {
- 	      tree t = CONSTRUCTOR_ELT (arg, 0)->value;
- 	      if (TREE_CODE (t) == NOP_EXPR)
- 		t = TREE_OPERAND (t, 0);
- 	      if (TREE_CODE (t) == ADDR_EXPR)
- 		t = TREE_OPERAND (t, 0);
- 	      if (TREE_CODE (t) != STRING_CST)
- 		CALL_EXPR_ARG (expr, i) = tree_output_constant_def (arg);
- 	    }
- 	}
-       break;
- 
      case DECL_EXPR:
        op = DECL_EXPR_DECL (expr);
  
        /* The expressions for the RM bounds must be gimplified to ensure that
  	 they are properly elaborated.  See gimplify_decl_expr.  */
!       if ((TREE_CODE (op) == TYPE_DECL || TREE_CODE (op) == VAR_DECL)
  	  && !TYPE_SIZES_GIMPLIFIED (TREE_TYPE (op))
  	  && (INTEGRAL_TYPE_P (TREE_TYPE (op))
  	      || SCALAR_FLOAT_TYPE_P (TREE_TYPE (op))))
--- 8970,8981 ----
  	  }
        break;
  
      case DECL_EXPR:
        op = DECL_EXPR_DECL (expr);
  
        /* The expressions for the RM bounds must be gimplified to ensure that
  	 they are properly elaborated.  See gimplify_decl_expr.  */
!       if ((TREE_CODE (op) == TYPE_DECL || VAR_P (op))
  	  && !TYPE_SIZES_GIMPLIFIED (TREE_TYPE (op))
  	  && (INTEGRAL_TYPE_P (TREE_TYPE (op))
  	      || SCALAR_FLOAT_TYPE_P (TREE_TYPE (op))))
*************** gnat_gimplify_expr (tree *expr_p, gimple
*** 9032,9038 ****
  	  || TREE_CODE (type) == UNCONSTRAINED_ARRAY_TYPE)
  	*expr_p = build_unary_op (INDIRECT_REF, NULL_TREE,
  				  convert (build_pointer_type (type),
! 					   integer_zero_node));
  
        /* Otherwise, just make a VAR_DECL.  */
        else
--- 9007,9013 ----
  	  || TREE_CODE (type) == UNCONSTRAINED_ARRAY_TYPE)
  	*expr_p = build_unary_op (INDIRECT_REF, NULL_TREE,
  				  convert (build_pointer_type (type),
! 					   null_pointer_node));
  
        /* Otherwise, just make a VAR_DECL.  */
        else
*************** maybe_make_gnu_thunk (Entity_Id gnat_thu
*** 11047,11053 ****
       same transformation as Subprogram_Body_to_gnu here.  */
    if (TREE_ADDRESSABLE (TREE_TYPE (gnu_target))
        && DECL_EXTERNAL (gnu_target)
!       && !POINTER_TYPE_P (TREE_TYPE (DECL_RESULT (gnu_target))))
      {
        TREE_TYPE (DECL_RESULT (gnu_target))
  	= build_reference_type (TREE_TYPE (DECL_RESULT (gnu_target)));
--- 11022,11028 ----
       same transformation as Subprogram_Body_to_gnu here.  */
    if (TREE_ADDRESSABLE (TREE_TYPE (gnu_target))
        && DECL_EXTERNAL (gnu_target)
!       && TREE_CODE (TREE_TYPE (DECL_RESULT (gnu_target))) != REFERENCE_TYPE)
      {
        TREE_TYPE (DECL_RESULT (gnu_target))
  	= build_reference_type (TREE_TYPE (DECL_RESULT (gnu_target)));
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/utils.cc gcc-14.1.0/gcc/ada/gcc-interface/utils.cc
*** gcc-13.2.0/gcc/ada/gcc-interface/utils.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/utils.cc	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 39,44 ****
--- 39,45 ----
  #include "varasm.h"
  #include "toplev.h"
  #include "opts.h"
+ #include "ipa-strub.h"
  #include "output.h"
  #include "debug.h"
  #include "convert.h"
*************** tree gnat_raise_decls_ext[(int) LAST_REA
*** 87,92 ****
--- 88,94 ----
  /* Forward declarations for handlers of attributes.  */
  static tree handle_const_attribute (tree *, tree, tree, int, bool *);
  static tree handle_nothrow_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_expected_throw_attribute (tree *, tree, tree, int, bool *);
  static tree handle_pure_attribute (tree *, tree, tree, int, bool *);
  static tree handle_novops_attribute (tree *, tree, tree, int, bool *);
  static tree handle_nonnull_attribute (tree *, tree, tree, int, bool *);
*************** static const struct attribute_spec::excl
*** 129,141 ****
    { NULL, false, false, false },
  };
  
  /* Fake handler for attributes we don't properly support, typically because
     they'd require dragging a lot of the common-c front-end circuitry.  */
  static tree fake_attribute_handler (tree *, tree, tree, int, bool *);
  
  /* Table of machine-independent internal attributes for Ada.  We support
     this minimal set of attributes to accommodate the needs of builtins.  */
! const struct attribute_spec gnat_internal_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
--- 131,171 ----
    { NULL, false, false, false },
  };
  
+ static const struct attribute_spec::exclusions attr_always_inline_exclusions[] =
+ {
+   { "noinline", true, true, true },
+   { "target_clones", true, true, true },
+   { NULL, false, false, false },
+ };
+ 
+ static const struct attribute_spec::exclusions attr_noinline_exclusions[] =
+ {
+   { "always_inline", true, true, true },
+   { NULL, false, false, false },
+ };
+ 
+ static const struct attribute_spec::exclusions attr_target_exclusions[] =
+ {
+   { "target_clones", TARGET_HAS_FMV_TARGET_ATTRIBUTE,
+     TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE },
+   { NULL, false, false, false },
+ };
+ 
+ static const struct attribute_spec::exclusions attr_target_clones_exclusions[] =
+ {
+   { "always_inline", true, true, true },
+   { "target", TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE,
+     TARGET_HAS_FMV_TARGET_ATTRIBUTE },
+   { NULL, false, false, false },
+ };
+ 
  /* Fake handler for attributes we don't properly support, typically because
     they'd require dragging a lot of the common-c front-end circuitry.  */
  static tree fake_attribute_handler (tree *, tree, tree, int, bool *);
  
  /* Table of machine-independent internal attributes for Ada.  We support
     this minimal set of attributes to accommodate the needs of builtins.  */
! static const attribute_spec gnat_internal_attributes[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
*************** const struct attribute_spec gnat_interna
*** 143,148 ****
--- 173,180 ----
      handle_const_attribute, NULL },
    { "nothrow",      0, 0,  true,  false, false, false,
      handle_nothrow_attribute, NULL },
+   { "expected_throw", 0, 0, true,  false, false, false,
+     handle_expected_throw_attribute, NULL },
    { "pure",         0, 0,  true,  false, false, false,
      handle_pure_attribute, NULL },
    { "no vops",      0, 0,  true,  false, false, false,
*************** const struct attribute_spec gnat_interna
*** 162,168 ****
    { "strub",	    0, 1, false, true, false, true,
      handle_strub_attribute, NULL },
    { "noinline",     0, 0,  true,  false, false, false,
!     handle_noinline_attribute, NULL },
    { "noclone",      0, 0,  true,  false, false, false,
      handle_noclone_attribute, NULL },
    { "no_icf",       0, 0,  true,  false, false, false,
--- 194,200 ----
    { "strub",	    0, 1, false, true, false, true,
      handle_strub_attribute, NULL },
    { "noinline",     0, 0,  true,  false, false, false,
!     handle_noinline_attribute, attr_noinline_exclusions },
    { "noclone",      0, 0,  true,  false, false, false,
      handle_noclone_attribute, NULL },
    { "no_icf",       0, 0,  true,  false, false, false,
*************** const struct attribute_spec gnat_interna
*** 172,178 ****
    { "leaf",         0, 0,  true,  false, false, false,
      handle_leaf_attribute, NULL },
    { "always_inline",0, 0,  true,  false, false, false,
!     handle_always_inline_attribute, NULL },
    { "malloc",       0, 0,  true,  false, false, false,
      handle_malloc_attribute, NULL },
    { "type generic", 0, 0,  false, true,  true,  false,
--- 204,210 ----
    { "leaf",         0, 0,  true,  false, false, false,
      handle_leaf_attribute, NULL },
    { "always_inline",0, 0,  true,  false, false, false,
!     handle_always_inline_attribute, attr_always_inline_exclusions },
    { "malloc",       0, 0,  true,  false, false, false,
      handle_malloc_attribute, NULL },
    { "type generic", 0, 0,  false, true,  true,  false,
*************** const struct attribute_spec gnat_interna
*** 189,197 ****
    { "simd",         0, 1,  true,  false, false, false,
      handle_simd_attribute, NULL },
    { "target",       1, -1, true,  false, false, false,
!     handle_target_attribute, NULL },
    { "target_clones",1, -1, true,  false, false, false,
!     handle_target_clones_attribute, NULL },
  
    { "vector_size",  1, 1,  false, true,  false, false,
      handle_vector_size_attribute, NULL },
--- 221,229 ----
    { "simd",         0, 1,  true,  false, false, false,
      handle_simd_attribute, NULL },
    { "target",       1, -1, true,  false, false, false,
!     handle_target_attribute, attr_target_exclusions },
    { "target_clones",1, -1, true,  false, false, false,
!     handle_target_clones_attribute, attr_target_clones_exclusions },
  
    { "vector_size",  1, 1,  false, true,  false, false,
      handle_vector_size_attribute, NULL },
*************** const struct attribute_spec gnat_interna
*** 214,222 ****
    /* This is handled entirely in the front end.  */
    { "hardbool",     0, 0,  false, true, false, true,
      fake_attribute_handler, NULL },
  
!   { NULL,           0, 0,  false, false, false, false,
!     NULL, NULL }
  };
  
  /* Associates a GNAT tree node to a GCC tree node. It is used in
--- 246,256 ----
    /* This is handled entirely in the front end.  */
    { "hardbool",     0, 0,  false, true, false, true,
      fake_attribute_handler, NULL },
+ };
  
! const scoped_attribute_specs gnat_internal_attribute_table =
! {
!   "gnu", { gnat_internal_attributes }
  };
  
  /* Associates a GNAT tree node to a GCC tree node. It is used in
*************** canonicalize_pad_type (tree type)
*** 1482,1488 ****
     IS_COMPONENT_TYPE is true if this is being done for the component type of
     an array.  DEFINITION is true if this type is being defined.  SET_RM_SIZE
     is true if the RM size of the resulting type is to be set to SIZE too; in
!    this case, the padded type is canonicalized before being returned.  */
  
  tree
  maybe_pad_type (tree type, tree size, unsigned int align,
--- 1516,1529 ----
     IS_COMPONENT_TYPE is true if this is being done for the component type of
     an array.  DEFINITION is true if this type is being defined.  SET_RM_SIZE
     is true if the RM size of the resulting type is to be set to SIZE too; in
!    this case, the padded type is canonicalized before being returned.
! 
!    Note that, if TYPE is an array, then we pad it even if it has already got
!    an alignment of ALIGN, provided that it's larger than the alignment of the
!    element type.  This ensures that the size of the type is a multiple of its
!    alignment as required by the GCC type system, and alleviates the oddity of
!    the larger alignment, which is used to implement alignment clauses present
!    on unconstrained array types.  */
  
  tree
  maybe_pad_type (tree type, tree size, unsigned int align,
*************** maybe_pad_type (tree type, tree size, un
*** 1490,1496 ****
  		bool definition, bool set_rm_size)
  {
    tree orig_size = TYPE_SIZE (type);
!   unsigned int orig_align = TYPE_ALIGN (type);
    tree record, field;
  
    /* If TYPE is a padded type, see if it agrees with any size and alignment
--- 1531,1540 ----
  		bool definition, bool set_rm_size)
  {
    tree orig_size = TYPE_SIZE (type);
!   unsigned int orig_align
!     = TREE_CODE (type) == ARRAY_TYPE
!       ? TYPE_ALIGN (TREE_TYPE (type))
!       : TYPE_ALIGN (type);
    tree record, field;
  
    /* If TYPE is a padded type, see if it agrees with any size and alignment
*************** maybe_pad_type (tree type, tree size, un
*** 1512,1518 ****
  
        type = TREE_TYPE (TYPE_FIELDS (type));
        orig_size = TYPE_SIZE (type);
!       orig_align = TYPE_ALIGN (type);
      }
  
    /* If the size is either not being changed or is being made smaller (which
--- 1556,1565 ----
  
        type = TREE_TYPE (TYPE_FIELDS (type));
        orig_size = TYPE_SIZE (type);
!       orig_align
! 	= TREE_CODE (type) == ARRAY_TYPE
! 	  ? TYPE_ALIGN (TREE_TYPE (type))
! 	  : TYPE_ALIGN (type);
      }
  
    /* If the size is either not being changed or is being made smaller (which
*************** maybe_pad_type (tree type, tree size, un
*** 1562,1567 ****
--- 1609,1615 ----
       at the RTL level when the stand-alone object is accessed as a whole.  */
    if (align > 0
        && RECORD_OR_UNION_TYPE_P (type)
+       && !TYPE_IS_FAT_POINTER_P (type)
        && TYPE_MODE (type) == BLKmode
        && !TYPE_BY_REFERENCE_P (type)
        && TREE_CODE (orig_size) == INTEGER_CST
*************** set_reverse_storage_order_on_pad_type (t
*** 1775,1781 ****
    return canonicalize_pad_type (type);
  }
  
! /* Relate the alias sets of GNU_NEW_TYPE and GNU_OLD_TYPE according to OP.
     If this is a multi-dimensional array type, do this recursively.
  
     OP may be
--- 1823,1829 ----
    return canonicalize_pad_type (type);
  }
  
! /* Relate the alias sets of NEW_TYPE and OLD_TYPE according to OP.
     If this is a multi-dimensional array type, do this recursively.
  
     OP may be
*************** set_reverse_storage_order_on_pad_type (t
*** 1784,1813 ****
     - ALIAS_SET_SUBSET:   the new set is made a subset of the old one.  */
  
  void
! relate_alias_sets (tree gnu_new_type, tree gnu_old_type, enum alias_set_op op)
  {
    /* Remove any padding from GNU_OLD_TYPE.  It doesn't matter in the case
       of a one-dimensional array, since the padding has the same alias set
       as the field type, but if it's a multi-dimensional array, we need to
       see the inner types.  */
!   while (TREE_CODE (gnu_old_type) == RECORD_TYPE
! 	 && (TYPE_JUSTIFIED_MODULAR_P (gnu_old_type)
! 	     || TYPE_PADDING_P (gnu_old_type)))
!     gnu_old_type = TREE_TYPE (TYPE_FIELDS (gnu_old_type));
  
    /* Unconstrained array types are deemed incomplete and would thus be given
       alias set 0.  Retrieve the underlying array type.  */
!   if (TREE_CODE (gnu_old_type) == UNCONSTRAINED_ARRAY_TYPE)
!     gnu_old_type
!       = TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (gnu_old_type))));
!   if (TREE_CODE (gnu_new_type) == UNCONSTRAINED_ARRAY_TYPE)
!     gnu_new_type
!       = TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (gnu_new_type))));
  
!   if (TREE_CODE (gnu_new_type) == ARRAY_TYPE
!       && TREE_CODE (TREE_TYPE (gnu_new_type)) == ARRAY_TYPE
!       && TYPE_MULTI_ARRAY_P (TREE_TYPE (gnu_new_type)))
!     relate_alias_sets (TREE_TYPE (gnu_new_type), TREE_TYPE (gnu_old_type), op);
  
    switch (op)
      {
--- 1832,1859 ----
     - ALIAS_SET_SUBSET:   the new set is made a subset of the old one.  */
  
  void
! relate_alias_sets (tree new_type, tree old_type, enum alias_set_op op)
  {
    /* Remove any padding from GNU_OLD_TYPE.  It doesn't matter in the case
       of a one-dimensional array, since the padding has the same alias set
       as the field type, but if it's a multi-dimensional array, we need to
       see the inner types.  */
!   while (TREE_CODE (old_type) == RECORD_TYPE
! 	 && (TYPE_JUSTIFIED_MODULAR_P (old_type)
! 	     || TYPE_PADDING_P (old_type)))
!     old_type = TREE_TYPE (TYPE_FIELDS (old_type));
  
    /* Unconstrained array types are deemed incomplete and would thus be given
       alias set 0.  Retrieve the underlying array type.  */
!   if (TREE_CODE (old_type) == UNCONSTRAINED_ARRAY_TYPE)
!     old_type = TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (old_type))));
!   if (TREE_CODE (new_type) == UNCONSTRAINED_ARRAY_TYPE)
!     new_type = TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (new_type))));
  
!   if (TREE_CODE (new_type) == ARRAY_TYPE
!       && TREE_CODE (TREE_TYPE (new_type)) == ARRAY_TYPE
!       && TYPE_MULTI_ARRAY_P (TREE_TYPE (new_type)))
!     relate_alias_sets (TREE_TYPE (new_type), TREE_TYPE (old_type), op);
  
    switch (op)
      {
*************** relate_alias_sets (tree gnu_new_type, tr
*** 1816,1834 ****
  	 aliasing settings because this can break the aliasing relationship
  	 between the array type and its element type.  */
        if (flag_checking || flag_strict_aliasing)
! 	gcc_assert (!(TREE_CODE (gnu_new_type) == ARRAY_TYPE
! 		      && TREE_CODE (gnu_old_type) == ARRAY_TYPE
! 		      && TYPE_NONALIASED_COMPONENT (gnu_new_type)
! 			 != TYPE_NONALIASED_COMPONENT (gnu_old_type)));
  
!       TYPE_ALIAS_SET (gnu_new_type) = get_alias_set (gnu_old_type);
        break;
  
      case ALIAS_SET_SUBSET:
      case ALIAS_SET_SUPERSET:
        {
! 	alias_set_type old_set = get_alias_set (gnu_old_type);
! 	alias_set_type new_set = get_alias_set (gnu_new_type);
  
  	/* Do nothing if the alias sets conflict.  This ensures that we
  	   never call record_alias_subset several times for the same pair
--- 1862,1881 ----
  	 aliasing settings because this can break the aliasing relationship
  	 between the array type and its element type.  */
        if (flag_checking || flag_strict_aliasing)
! 	gcc_assert (!(TREE_CODE (new_type) == ARRAY_TYPE
! 		      && TREE_CODE (old_type) == ARRAY_TYPE
! 		      && TYPE_NONALIASED_COMPONENT (new_type)
! 			 != TYPE_NONALIASED_COMPONENT (old_type)));
  
!       /* The alias set always lives on the TYPE_CANONICAL.  */
!       TYPE_ALIAS_SET (TYPE_CANONICAL (new_type)) = get_alias_set (old_type);
        break;
  
      case ALIAS_SET_SUBSET:
      case ALIAS_SET_SUPERSET:
        {
! 	alias_set_type old_set = get_alias_set (old_type);
! 	alias_set_type new_set = get_alias_set (new_type);
  
  	/* Do nothing if the alias sets conflict.  This ensures that we
  	   never call record_alias_subset several times for the same pair
*************** relate_alias_sets (tree gnu_new_type, tr
*** 1847,1853 ****
        gcc_unreachable ();
      }
  
!   record_component_aliases (gnu_new_type);
  }
  
  /* Record TYPE as a builtin type for Ada.  NAME is the name of the type.
--- 1894,1900 ----
        gcc_unreachable ();
      }
  
!   record_component_aliases (new_type);
  }
  
  /* Record TYPE as a builtin type for Ada.  NAME is the name of the type.
*************** finish_record_type (tree record_type, tr
*** 2155,2161 ****
        /* If this is a padding record, we never want to make the size smaller
  	 than what was specified in it, if any.  */
        if (TYPE_IS_PADDING_P (record_type) && had_size)
! 	size = TYPE_SIZE (record_type);
        else
  	size = round_up (size, BITS_PER_UNIT);
  
--- 2202,2208 ----
        /* If this is a padding record, we never want to make the size smaller
  	 than what was specified in it, if any.  */
        if (TYPE_IS_PADDING_P (record_type) && had_size)
! 	size = round_up (TYPE_SIZE (record_type), BITS_PER_UNIT);
        else
  	size = round_up (size, BITS_PER_UNIT);
  
*************** create_var_decl (tree name, tree asm_nam
*** 2802,2808 ****
        if (TREE_CODE (inner) == ADDR_EXPR
  	  && ((TREE_CODE (TREE_OPERAND (inner, 0)) == CALL_EXPR
  	       && !call_is_atomic_load (TREE_OPERAND (inner, 0)))
! 	      || (TREE_CODE (TREE_OPERAND (inner, 0)) == VAR_DECL
  		  && DECL_RETURN_VALUE_P (TREE_OPERAND (inner, 0)))))
  	DECL_RETURN_VALUE_P (var_decl) = 1;
      }
--- 2849,2855 ----
        if (TREE_CODE (inner) == ADDR_EXPR
  	  && ((TREE_CODE (TREE_OPERAND (inner, 0)) == CALL_EXPR
  	       && !call_is_atomic_load (TREE_OPERAND (inner, 0)))
! 	      || (VAR_P (TREE_OPERAND (inner, 0))
  		  && DECL_RETURN_VALUE_P (TREE_OPERAND (inner, 0)))))
  	DECL_RETURN_VALUE_P (var_decl) = 1;
      }
*************** create_var_decl (tree name, tree asm_nam
*** 2853,2859 ****
       support global BSS sections, uninitialized global variables would
       go in DATA instead, thus increasing the size of the executable.  */
    if (!flag_no_common
!       && TREE_CODE (var_decl) == VAR_DECL
        && TREE_PUBLIC (var_decl)
        && !have_global_bss_p ())
      DECL_COMMON (var_decl) = 1;
--- 2900,2906 ----
       support global BSS sections, uninitialized global variables would
       go in DATA instead, thus increasing the size of the executable.  */
    if (!flag_no_common
!       && VAR_P (var_decl)
        && TREE_PUBLIC (var_decl)
        && !have_global_bss_p ())
      DECL_COMMON (var_decl) = 1;
*************** create_var_decl (tree name, tree asm_nam
*** 2871,2883 ****
      DECL_IGNORED_P (var_decl) = 1;
  
    /* ??? Some attributes cannot be applied to CONST_DECLs.  */
!   if (TREE_CODE (var_decl) == VAR_DECL)
      process_attributes (&var_decl, &attr_list, true, gnat_node);
  
    /* Add this decl to the current binding level.  */
    gnat_pushdecl (var_decl, gnat_node);
  
!   if (TREE_CODE (var_decl) == VAR_DECL && asm_name)
      {
        /* Let the target mangle the name if this isn't a verbatim asm.  */
        if (*IDENTIFIER_POINTER (asm_name) != '*')
--- 2918,2930 ----
      DECL_IGNORED_P (var_decl) = 1;
  
    /* ??? Some attributes cannot be applied to CONST_DECLs.  */
!   if (VAR_P (var_decl))
      process_attributes (&var_decl, &attr_list, true, gnat_node);
  
    /* Add this decl to the current binding level.  */
    gnat_pushdecl (var_decl, gnat_node);
  
!   if (VAR_P (var_decl) && asm_name)
      {
        /* Let the target mangle the name if this isn't a verbatim asm.  */
        if (*IDENTIFIER_POINTER (asm_name) != '*')
*************** fntype_same_flags_p (const_tree t, tree
*** 3826,3831 ****
--- 3873,3972 ----
  	 && TREE_ADDRESSABLE (t) == return_by_invisi_ref_p;
  }
  
+ /* Try to compute the maximum (if MAX_P) or minimum (if !MAX_P) value for the
+    expression EXP, for very simple expressions.  Substitute variable references
+    with their respective type's min/max values.  Return the computed value if
+    any, or EXP if no value can be computed. */
+ 
+ tree
+ max_value (tree exp, bool max_p)
+ {
+   enum tree_code code = TREE_CODE (exp);
+   tree type = TREE_TYPE (exp);
+   tree op0, op1, op2;
+ 
+   switch (TREE_CODE_CLASS (code))
+     {
+     case tcc_declaration:
+       if (VAR_P (exp))
+         return fold_convert (type,
+                              max_p
+                              ? TYPE_MAX_VALUE (type) : TYPE_MIN_VALUE (type));
+       break;
+ 
+     case tcc_vl_exp:
+       if (code == CALL_EXPR)
+ 	{
+           tree t;
+ 
+           t = maybe_inline_call_in_expr (exp);
+           if (t)
+             return max_value (t, max_p);
+         }
+       break;
+ 
+     case tcc_comparison:
+       return build_int_cst (type, max_p ? 1 : 0);
+ 
+     case tcc_unary:
+       op0 = TREE_OPERAND (exp, 0);
+ 
+       if (code == NON_LVALUE_EXPR)
+         return max_value (op0, max_p);
+ 
+       if (code == NEGATE_EXPR)
+         return max_value (op0, !max_p);
+ 
+       if (code == NOP_EXPR)
+ 	return fold_convert (type, max_value (op0, max_p));
+ 
+       break;
+ 
+     case tcc_binary:
+       op0 = TREE_OPERAND (exp, 0);
+       op1 = TREE_OPERAND (exp, 1);
+ 
+       switch (code) {
+       case PLUS_EXPR:
+       case MULT_EXPR:
+         return fold_build2 (code, type, max_value(op0, max_p),
+                             max_value (op1, max_p));
+       case MINUS_EXPR:
+       case TRUNC_DIV_EXPR:
+         return fold_build2 (code, type, max_value(op0, max_p),
+                             max_value (op1, !max_p));
+       default:
+         break;
+       }
+       break;
+ 
+     case tcc_expression:
+       if (code == COND_EXPR)
+         {
+           op0 = TREE_OPERAND (exp, 0);
+           op1 = TREE_OPERAND (exp, 1);
+           op2 = TREE_OPERAND (exp, 2);
+ 
+           if (!op1 || !op2)
+             break;
+ 
+           op1 = max_value (op1, max_p);
+           op2 = max_value (op2, max_p);
+ 
+           if (op1 == TREE_OPERAND (exp, 1) && op2 == TREE_OPERAND (exp, 2))
+             break;
+ 
+           return fold_build2 (max_p ? MAX_EXPR : MIN_EXPR, type, op1, op2);
+ 	}
+       break;
+ 
+     default:
+       break;
+     }
+   return exp;
+ }
+ 
+ 
  /* EXP is an expression for the size of an object.  If this size contains
     discriminant references, replace them with the maximum (if MAX_P) or
     minimum (if !MAX_P) possible value of the discriminant.
*************** max_size (tree exp, bool max_p)
*** 3863,3868 ****
--- 4004,4010 ----
  	  n = call_expr_nargs (exp);
  	  gcc_assert (n > 0);
  	  argarray = XALLOCAVEC (tree, n);
+ 	  /* This is used to remove possible placeholder in call args.  */
  	  for (i = 0; i < n; i++)
  	    argarray[i] = max_size (CALL_EXPR_ARG (exp, i), max_p);
  	  return build_call_array (type, CALL_EXPR_FN (exp), n, argarray);
*************** unchecked_convert (tree type, tree expr,
*** 5543,5549 ****
  	}
      }
  
!   /* Likewise if we are converting from a fixed-szie type to a type with self-
       referential size.  We use the max size to do the padding in this case.  */
    else if (!INDIRECT_REF_P (expr)
  	   && TREE_CODE (expr) != STRING_CST
--- 5685,5691 ----
  	}
      }
  
!   /* Likewise if we are converting from a fixed-size type to a type with self-
       referential size.  We use the max size to do the padding in this case.  */
    else if (!INDIRECT_REF_P (expr)
  	   && TREE_CODE (expr) != STRING_CST
*************** handle_nothrow_attribute (tree *node, tr
*** 6378,6383 ****
--- 6520,6541 ----
    return NULL_TREE;
  }
  
+ /* Handle a "expected_throw" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ static tree
+ handle_expected_throw_attribute (tree *node, tree ARG_UNUSED (name),
+ 				 tree ARG_UNUSED (args), int ARG_UNUSED (flags),
+ 				 bool *no_add_attrs)
+ {
+   if (TREE_CODE (*node) == FUNCTION_DECL)
+     /* No flag to set here.  */;
+   else
+     *no_add_attrs = true;
+ 
+   return NULL_TREE;
+ }
+ 
  /* Handle a "pure" attribute; arguments as in
     struct attribute_spec.handler.  */
  
*************** handle_no_stack_protector_attribute (tre
*** 6612,6620 ****
     struct attribute_spec.handler.  */
  
  static tree
! handle_strub_attribute (tree *, tree, tree, int, bool *no_add_attrs)
  {
!   *no_add_attrs = true;
    return NULL_TREE;
  }
  
--- 6770,6846 ----
     struct attribute_spec.handler.  */
  
  static tree
! handle_strub_attribute (tree *node, tree name,
! 			tree args,
! 			int ARG_UNUSED (flags), bool *no_add_attrs)
  {
!   bool enable = true;
! 
!   if (args && FUNCTION_POINTER_TYPE_P (*node))
!     *node = TREE_TYPE (*node);
! 
!   if (args && FUNC_OR_METHOD_TYPE_P (*node))
!     {
!       switch (strub_validate_fn_attr_parm (TREE_VALUE (args)))
! 	{
! 	case 1:
! 	case 2:
! 	  enable = true;
! 	  break;
! 
! 	case 0:
! 	  warning (OPT_Wattributes,
! 		   "%qE attribute ignored because of argument %qE",
! 		   name, TREE_VALUE (args));
! 	  *no_add_attrs = true;
! 	  enable = false;
! 	  break;
! 
! 	case -1:
! 	case -2:
! 	  enable = false;
! 	  break;
! 
! 	default:
! 	  gcc_unreachable ();
! 	}
! 
!       args = TREE_CHAIN (args);
!     }
! 
!   if (args)
!     {
!       warning (OPT_Wattributes,
! 	       "ignoring attribute %qE because of excess arguments"
! 	       " starting at %qE",
! 	       name, TREE_VALUE (args));
!       *no_add_attrs = true;
!       enable = false;
!     }
! 
!   /* Warn about unmet expectations that the strub attribute works like a
!      qualifier.  ??? Could/should we extend it to the element/field types
!      here?  */
!   if (TREE_CODE (*node) == ARRAY_TYPE
!       || VECTOR_TYPE_P (*node)
!       || TREE_CODE (*node) == COMPLEX_TYPE)
!     warning (OPT_Wattributes,
! 	     "attribute %qE does not apply to elements"
! 	     " of non-scalar type %qT",
! 	     name, *node);
!   else if (RECORD_OR_UNION_TYPE_P (*node))
!     warning (OPT_Wattributes,
! 	     "attribute %qE does not apply to fields"
! 	     " of aggregate type %qT",
! 	     name, *node);
! 
!   /* If we see a strub-enabling attribute, and we're at the default setting,
!      implicitly or explicitly, note that the attribute was seen, so that we can
!      reduce the compile-time overhead to nearly zero when the strub feature is
!      not used.  */
!   if (enable && flag_strub < -2)
!     flag_strub += 2;
! 
    return NULL_TREE;
  }
  
*************** handle_noinline_attribute (tree *node, t
*** 6627,6642 ****
  			   int ARG_UNUSED (flags), bool *no_add_attrs)
  {
    if (TREE_CODE (*node) == FUNCTION_DECL)
!     {
!       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (*node)))
! 	{
! 	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
! 		   "with attribute %qs", name, "always_inline");
! 	  *no_add_attrs = true;
! 	}
!       else
! 	DECL_UNINLINABLE (*node) = 1;
!     }
    else
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
--- 6853,6859 ----
  			   int ARG_UNUSED (flags), bool *no_add_attrs)
  {
    if (TREE_CODE (*node) == FUNCTION_DECL)
!     DECL_UNINLINABLE (*node) = 1;
    else
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
*************** handle_target_attribute (tree *node, tre
*** 6935,6946 ****
        warning (OPT_Wattributes, "%qE attribute ignored", name);
        *no_add_attrs = true;
      }
-   else if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (*node)))
-     {
-       warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
- 		   "with %qs attribute", name, "target_clones");
-       *no_add_attrs = true;
-     }
    else if (!targetm.target_option.valid_attribute_p (*node, name, args, flags))
      *no_add_attrs = true;
  
--- 7152,7157 ----
*************** handle_target_clones_attribute (tree *no
*** 6968,6990 ****
  {
    /* Ensure we have a function type.  */
    if (TREE_CODE (*node) == FUNCTION_DECL)
!     {
!       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (*node)))
! 	{
! 	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
! 		   "with %qs attribute", name, "always_inline");
! 	  *no_add_attrs = true;
! 	}
!       else if (lookup_attribute ("target", DECL_ATTRIBUTES (*node)))
! 	{
! 	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
! 		   "with %qs attribute", name, "target");
! 	  *no_add_attrs = true;
! 	}
!       else
! 	/* Do not inline functions with multiple clone targets.  */
! 	DECL_UNINLINABLE (*node) = 1;
!     }
    else
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
--- 7179,7186 ----
  {
    /* Ensure we have a function type.  */
    if (TREE_CODE (*node) == FUNCTION_DECL)
!     /* Do not inline functions with multiple clone targets.  */
!     DECL_UNINLINABLE (*node) = 1;
    else
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
*************** def_builtin_1 (enum built_in_function fn
*** 7156,7162 ****
  static int flag_isoc94 = 0;
  static int flag_isoc99 = 0;
  static int flag_isoc11 = 0;
! static int flag_isoc2x = 0;
  
  /* Install what the common builtins.def offers plus our local additions.
  
--- 7352,7358 ----
  static int flag_isoc94 = 0;
  static int flag_isoc99 = 0;
  static int flag_isoc11 = 0;
! static int flag_isoc23 = 0;
  
  /* Install what the common builtins.def offers plus our local additions.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/gcc-interface/utils2.cc gcc-14.1.0/gcc/ada/gcc-interface/utils2.cc
*** gcc-13.2.0/gcc/ada/gcc-interface/utils2.cc	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gcc-interface/utils2.cc	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** get_base_type (tree type)
*** 68,74 ****
  
    while (TREE_TYPE (type)
  	 && (TREE_CODE (type) == INTEGER_TYPE
! 	     || TREE_CODE (type) == REAL_TYPE))
      type = TREE_TYPE (type);
  
    return type;
--- 68,74 ----
  
    while (TREE_TYPE (type)
  	 && (TREE_CODE (type) == INTEGER_TYPE
! 	     || SCALAR_FLOAT_TYPE_P (type)))
      type = TREE_TYPE (type);
  
    return type;
*************** build_atomic_load (tree src, bool sync)
*** 692,704 ****
      = build_int_cst (integer_type_node,
  		     sync ? MEMMODEL_SEQ_CST : MEMMODEL_RELAXED);
    tree orig_src = src;
!   tree t, addr, val;
    unsigned int size;
    int fncode;
  
    /* Remove conversions to get the address of the underlying object.  */
    src = remove_conversions (src, false);
!   size = resolve_atomic_size (TREE_TYPE (src));
    if (size == 0)
      return orig_src;
  
--- 692,705 ----
      = build_int_cst (integer_type_node,
  		     sync ? MEMMODEL_SEQ_CST : MEMMODEL_RELAXED);
    tree orig_src = src;
!   tree type, t, addr, val;
    unsigned int size;
    int fncode;
  
    /* Remove conversions to get the address of the underlying object.  */
    src = remove_conversions (src, false);
!   type = TREE_TYPE (src);
!   size = resolve_atomic_size (type);
    if (size == 0)
      return orig_src;
  
*************** build_atomic_load (tree src, bool sync)
*** 710,716 ****
  
    /* First reinterpret the loaded bits in the original type of the load,
       then convert to the expected result type.  */
!   t = fold_build1 (VIEW_CONVERT_EXPR, TREE_TYPE (src), val);
    return convert (TREE_TYPE (orig_src), t);
  }
  
--- 711,717 ----
  
    /* First reinterpret the loaded bits in the original type of the load,
       then convert to the expected result type.  */
!   t = fold_build1 (VIEW_CONVERT_EXPR, type, val);
    return convert (TREE_TYPE (orig_src), t);
  }
  
*************** build_atomic_store (tree dest, tree src,
*** 728,740 ****
      = build_int_cst (integer_type_node,
  		     sync ? MEMMODEL_SEQ_CST : MEMMODEL_RELAXED);
    tree orig_dest = dest;
!   tree t, int_type, addr;
    unsigned int size;
    int fncode;
  
    /* Remove conversions to get the address of the underlying object.  */
    dest = remove_conversions (dest, false);
!   size = resolve_atomic_size (TREE_TYPE (dest));
    if (size == 0)
      return build_binary_op (MODIFY_EXPR, NULL_TREE, orig_dest, src);
  
--- 729,742 ----
      = build_int_cst (integer_type_node,
  		     sync ? MEMMODEL_SEQ_CST : MEMMODEL_RELAXED);
    tree orig_dest = dest;
!   tree type, t, int_type, addr;
    unsigned int size;
    int fncode;
  
    /* Remove conversions to get the address of the underlying object.  */
    dest = remove_conversions (dest, false);
!   type = TREE_TYPE (dest);
!   size = resolve_atomic_size (type);
    if (size == 0)
      return build_binary_op (MODIFY_EXPR, NULL_TREE, orig_dest, src);
  
*************** build_atomic_store (tree dest, tree src,
*** 746,757 ****
       then reinterpret them in the effective type.  But if the original type
       is a padded type with the same size, convert to the inner type instead,
       as we don't want to artificially introduce a CONSTRUCTOR here.  */
!   if (TYPE_IS_PADDING_P (TREE_TYPE (dest))
!       && TYPE_SIZE (TREE_TYPE (dest))
! 	 == TYPE_SIZE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (dest)))))
!     src = convert (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (dest))), src);
    else
!     src = convert (TREE_TYPE (dest), src);
    src = fold_build1 (VIEW_CONVERT_EXPR, int_type, src);
    addr = build_unary_op (ADDR_EXPR, ptr_type, dest);
  
--- 748,758 ----
       then reinterpret them in the effective type.  But if the original type
       is a padded type with the same size, convert to the inner type instead,
       as we don't want to artificially introduce a CONSTRUCTOR here.  */
!   if (TYPE_IS_PADDING_P (type)
!       && TYPE_SIZE (type) == TYPE_SIZE (TREE_TYPE (TYPE_FIELDS (type))))
!     src = convert (TREE_TYPE (TYPE_FIELDS (type)), src);
    else
!     src = convert (type, src);
    src = fold_build1 (VIEW_CONVERT_EXPR, int_type, src);
    addr = build_unary_op (ADDR_EXPR, ptr_type, dest);
  
*************** build_binary_op (enum tree_code op_code,
*** 877,883 ****
  	 them; we'll be putting them back below if needed.  Likewise for
  	 conversions between record types, except for justified modular types.
  	 But don't do this if the right operand is not BLKmode (for packed
! 	 arrays) unless we are not changing the mode.  */
        while ((CONVERT_EXPR_P (left_operand)
  	      || TREE_CODE (left_operand) == VIEW_CONVERT_EXPR)
  	     && (((INTEGRAL_TYPE_P (left_type)
--- 878,885 ----
  	 them; we'll be putting them back below if needed.  Likewise for
  	 conversions between record types, except for justified modular types.
  	 But don't do this if the right operand is not BLKmode (for packed
! 	 arrays) unless we are not changing the mode, or if both ooperands
! 	 are view conversions to the same type.  */
        while ((CONVERT_EXPR_P (left_operand)
  	      || TREE_CODE (left_operand) == VIEW_CONVERT_EXPR)
  	     && (((INTEGRAL_TYPE_P (left_type)
*************** build_binary_op (enum tree_code op_code,
*** 889,895 ****
  		     && TREE_CODE (operand_type (left_operand)) == RECORD_TYPE
  		     && (TYPE_MODE (right_type) == BLKmode
  			 || TYPE_MODE (left_type)
! 			    == TYPE_MODE (operand_type (left_operand))))))
  	{
  	  left_operand = TREE_OPERAND (left_operand, 0);
  	  left_type = TREE_TYPE (left_operand);
--- 891,900 ----
  		     && TREE_CODE (operand_type (left_operand)) == RECORD_TYPE
  		     && (TYPE_MODE (right_type) == BLKmode
  			 || TYPE_MODE (left_type)
! 			    == TYPE_MODE (operand_type (left_operand)))
! 		     && !(TREE_CODE (left_operand) == VIEW_CONVERT_EXPR
! 			  && TREE_CODE (right_operand) == VIEW_CONVERT_EXPR
! 			  && left_type == right_type))))
  	{
  	  left_operand = TREE_OPERAND (left_operand, 0);
  	  left_type = TREE_TYPE (left_operand);
*************** build_binary_op (enum tree_code op_code,
*** 986,992 ****
  	    break;
  	}
  
!       gcc_assert (TREE_CODE (result) == INDIRECT_REF
  		  || TREE_CODE (result) == NULL_EXPR
  		  || TREE_CODE (result) == SAVE_EXPR
  		  || DECL_P (result));
--- 991,997 ----
  	    break;
  	}
  
!       gcc_assert (INDIRECT_REF_P (result)
  		  || TREE_CODE (result) == NULL_EXPR
  		  || TREE_CODE (result) == SAVE_EXPR
  		  || DECL_P (result));
*************** build_binary_op (enum tree_code op_code,
*** 1137,1150 ****
  	      tree left_ref_type = TREE_TYPE (left_base_type);
  	      tree right_ref_type = TREE_TYPE (right_base_type);
  
! 	      /* Anonymous access types in Ada 2005 can point to different
! 		 members of a tagged hierarchy or different function types.  */
! 	      gcc_assert (TYPE_MAIN_VARIANT (left_ref_type)
! 			  == TYPE_MAIN_VARIANT (right_ref_type)
! 			  || (TYPE_ALIGN_OK (left_ref_type)
! 			      && TYPE_ALIGN_OK (right_ref_type))
! 			  || (TREE_CODE (left_ref_type) == FUNCTION_TYPE
! 			      && TREE_CODE (right_ref_type) == FUNCTION_TYPE));
  	      best_type = left_base_type;
  	    }
  
--- 1142,1151 ----
  	      tree left_ref_type = TREE_TYPE (left_base_type);
  	      tree right_ref_type = TREE_TYPE (right_base_type);
  
! 	      /* Anonymous access types in Ada 2005 may point to compatible
! 		 object subtypes or function types in the language sense.  */
! 	      gcc_assert (FUNCTION_POINTER_TYPE_P (left_ref_type)
! 			  == FUNCTION_POINTER_TYPE_P (right_ref_type));
  	      best_type = left_base_type;
  	    }
  
*************** build_unary_op (enum tree_code op_code,
*** 1423,1429 ****
  	     the corresponding address, e.g. for an allocator.  However do
  	     it for a return value to expose it for later recognition.  */
  	  if (TREE_CODE (type) == UNCONSTRAINED_ARRAY_TYPE
! 	      || (TREE_CODE (TREE_OPERAND (operand, 1)) == VAR_DECL
  		  && DECL_RETURN_VALUE_P (TREE_OPERAND (operand, 1))))
  	    {
  	      result = build_unary_op (ADDR_EXPR, result_type,
--- 1424,1430 ----
  	     the corresponding address, e.g. for an allocator.  However do
  	     it for a return value to expose it for later recognition.  */
  	  if (TREE_CODE (type) == UNCONSTRAINED_ARRAY_TYPE
! 	      || (VAR_P (TREE_OPERAND (operand, 1))
  		  && DECL_RETURN_VALUE_P (TREE_OPERAND (operand, 1))))
  	    {
  	      result = build_unary_op (ADDR_EXPR, result_type,
*************** build_unary_op (enum tree_code op_code,
*** 1597,1607 ****
  	if (!TYPE_IS_FAT_POINTER_P (type) && TYPE_VOLATILE (TREE_TYPE (type)))
  	  {
  	    TREE_SIDE_EFFECTS (result) = 1;
! 	    if (TREE_CODE (result) == INDIRECT_REF)
  	      TREE_THIS_VOLATILE (result) = TYPE_VOLATILE (TREE_TYPE (result));
  	  }
  
! 	if ((TREE_CODE (result) == INDIRECT_REF
  	     || TREE_CODE (result) == UNCONSTRAINED_ARRAY_REF)
  	    && can_never_be_null)
  	  TREE_THIS_NOTRAP (result) = 1;
--- 1598,1608 ----
  	if (!TYPE_IS_FAT_POINTER_P (type) && TYPE_VOLATILE (TREE_TYPE (type)))
  	  {
  	    TREE_SIDE_EFFECTS (result) = 1;
! 	    if (INDIRECT_REF_P (result))
  	      TREE_THIS_VOLATILE (result) = TYPE_VOLATILE (TREE_TYPE (result));
  	  }
  
! 	if ((INDIRECT_REF_P (result)
  	     || TREE_CODE (result) == UNCONSTRAINED_ARRAY_REF)
  	    && can_never_be_null)
  	  TREE_THIS_NOTRAP (result) = 1;
*************** build_simple_component_ref (tree record,
*** 2016,2022 ****
  
    /* The failure of this assertion will very likely come from a missing
       insertion of an explicit dereference.  */
!   gcc_assert (RECORD_OR_UNION_TYPE_P (type) && COMPLETE_TYPE_P (type));
  
    /* Try to fold a conversion from another record or union type unless the type
       contains a placeholder as it might be needed for a later substitution.  */
--- 2017,2026 ----
  
    /* The failure of this assertion will very likely come from a missing
       insertion of an explicit dereference.  */
!   gcc_assert (RECORD_OR_UNION_TYPE_P (type));
! 
!   /* The type must be frozen at this point.  */
!   gcc_assert (COMPLETE_TYPE_P (type));
  
    /* Try to fold a conversion from another record or union type unless the type
       contains a placeholder as it might be needed for a later substitution.  */
*************** gnat_protect_expr (tree exp)
*** 2926,2932 ****
  
    /* Likewise if we're indirectly referencing part of something.  */
    if (code == COMPONENT_REF
!       && TREE_CODE (TREE_OPERAND (exp, 0)) == INDIRECT_REF)
      return build3 (code, type, gnat_protect_expr (TREE_OPERAND (exp, 0)),
  		   TREE_OPERAND (exp, 1), NULL_TREE);
  
--- 2930,2936 ----
  
    /* Likewise if we're indirectly referencing part of something.  */
    if (code == COMPONENT_REF
!       && INDIRECT_REF_P (TREE_OPERAND (exp, 0)))
      return build3 (code, type, gnat_protect_expr (TREE_OPERAND (exp, 0)),
  		   TREE_OPERAND (exp, 1), NULL_TREE);
  
*************** gnat_invariant_expr (tree expr)
*** 3263,3269 ****
  
    /* Look through temporaries created to capture values.  */
    while ((TREE_CODE (expr) == CONST_DECL
! 	  || (TREE_CODE (expr) == VAR_DECL && TREE_READONLY (expr)))
  	 && decl_function_context (expr) == current_function_decl
  	 && DECL_INITIAL (expr))
      {
--- 3267,3273 ----
  
    /* Look through temporaries created to capture values.  */
    while ((TREE_CODE (expr) == CONST_DECL
! 	  || (VAR_P (expr) && TREE_READONLY (expr)))
  	 && decl_function_context (expr) == current_function_decl
  	 && DECL_INITIAL (expr))
      {
*************** object:
*** 3362,3368 ****
    if (TREE_CODE (t) == PARM_DECL)
      return fold_convert (type, expr);
  
!   if (TREE_CODE (t) == VAR_DECL
        && (DECL_EXTERNAL (t)
  	  || decl_function_context (t) != current_function_decl))
      return fold_convert (type, expr);
--- 3366,3372 ----
    if (TREE_CODE (t) == PARM_DECL)
      return fold_convert (type, expr);
  
!   if (VAR_P (t)
        && (DECL_EXTERNAL (t)
  	  || decl_function_context (t) != current_function_decl))
      return fold_convert (type, expr);
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-fields.ads gcc-14.1.0/gcc/ada/gen_il-fields.ads
*** gcc-13.2.0/gcc/ada/gen_il-fields.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-fields.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Gen_IL.Fields is
*** 50,56 ****
        Error_Posted,
        Small_Paren_Count,
        Check_Actuals,
-       Has_Aspects,
        Is_Ignored_Ghost_Node,
        Link,
  
--- 50,55 ----
*************** package Gen_IL.Fields is
*** 67,73 ****
        Acts_As_Spec,
        Actual_Designated_Subtype,
        Address_Warning_Posted,
!       Aggregate_Bounds,
        Aliased_Present,
        All_Others,
        All_Present,
--- 66,72 ----
        Acts_As_Spec,
        Actual_Designated_Subtype,
        Address_Warning_Posted,
!       Aggregate_Bounds_Or_Ancestor_Type,
        Aliased_Present,
        All_Others,
        All_Present,
*************** package Gen_IL.Fields is
*** 77,82 ****
--- 76,82 ----
        Array_Aggregate,
        Aspect_On_Partial_View,
        Aspect_Rep_Item,
+       Aspect_Specifications,
        Assignment_OK,
        Attribute_Name,
        At_End_Proc,
*************** package Gen_IL.Fields is
*** 87,92 ****
--- 87,93 ----
        Body_Required,
        Body_To_Inline,
        Box_Present,
+       Cannot_Be_Superflat,
        Char_Literal_Value,
        Chars,
        Check_Address_Alignment,
*************** package Gen_IL.Fields is
*** 98,103 ****
--- 99,105 ----
        Comes_From_Check_Or_Contract,
        Comes_From_Extended_Return_Statement,
        Comes_From_Iterator,
+       Compare_Type,
        Compile_Time_Known_Aggregate,
        Component_Associations,
        Component_Clauses,
*************** package Gen_IL.Fields is
*** 209,214 ****
--- 211,217 ----
        Has_Pragma_Suppress_All,
        Has_Private_View,
        Has_Relative_Deadline_Pragma,
+       Has_Secondary_Private_View,
        Has_Self_Reference,
        Has_SP_Choice,
        Has_Storage_Size_Pragma,
*************** package Gen_IL.Fields is
*** 252,258 ****
        Is_Entry_Barrier_Function,
        Is_Expanded_Build_In_Place_Call,
        Is_Expanded_Contract,
-       Is_Finalization_Wrapper,
        Is_Folded_In_Parser,
        Is_Generic_Contract_Pragma,
        Is_Homogeneous_Aggregate,
--- 255,260 ----
*************** package Gen_IL.Fields is
*** 320,328 ****
        No_Ctrl_Actions,
        No_Elaboration_Check,
        No_Entities_Ref_In_Spec,
        No_Initialization,
        No_Minimize_Eliminate,
-       No_Side_Effect_Removal,
        No_Truncation,
        Null_Excluding_Subtype,
        Null_Exclusion_Present,
--- 322,330 ----
        No_Ctrl_Actions,
        No_Elaboration_Check,
        No_Entities_Ref_In_Spec,
+       No_Finalize_Actions,
        No_Initialization,
        No_Minimize_Eliminate,
        No_Truncation,
        Null_Excluding_Subtype,
        Null_Exclusion_Present,
*************** package Gen_IL.Fields is
*** 489,495 ****
        Default_Expressions_Processed,
        Default_Value,
        Delay_Cleanups,
-       Delay_Subprogram_Descriptors,
        Delta_Value,
        Dependent_Instances,
        Depends_On_Private,
--- 491,496 ----
*************** package Gen_IL.Fields is
*** 578,583 ****
--- 579,585 ----
        Has_Expanded_Contract,
        Has_Forward_Instantiation,
        Has_Fully_Qualified_Name,
+       Has_Ghost_Predicate_Aspect,
        Has_Gigi_Rep_Item,
        Has_Homonym,
        Has_Implicit_Dereference,
*************** package Gen_IL.Fields is
*** 684,691 ****
        Is_Compilation_Unit,
        Is_Completely_Hidden,
        Is_Concurrent_Record_Type,
        Is_Constr_Subt_For_U_Nominal,
-       Is_Constr_Subt_For_UN_Aliased,
        Is_Constrained,
        Is_Constructor,
        Is_Controlled_Active,
--- 686,693 ----
        Is_Compilation_Unit,
        Is_Completely_Hidden,
        Is_Concurrent_Record_Type,
+       Is_Constr_Array_Subt_With_Bounds,
        Is_Constr_Subt_For_U_Nominal,
        Is_Constrained,
        Is_Constructor,
        Is_Controlled_Active,
*************** package Gen_IL.Fields is
*** 719,726 ****
        Is_Hidden,
        Is_Hidden_Non_Overridden_Subpgm,
        Is_Hidden_Open_Scope,
        Is_Ignored_Ghost_Entity,
-       Is_Ignored_Transient,
        Is_Immediately_Visible,
        Is_Implementation_Defined,
        Is_Imported,
--- 721,728 ----
        Is_Hidden,
        Is_Hidden_Non_Overridden_Subpgm,
        Is_Hidden_Open_Scope,
+       Is_Ignored_For_Finalization,
        Is_Ignored_Ghost_Entity,
        Is_Immediately_Visible,
        Is_Implementation_Defined,
        Is_Imported,
*************** package Gen_IL.Fields is
*** 751,756 ****
--- 753,759 ----
        Is_Package_Body_Entity,
        Is_Packed,
        Is_Packed_Array_Impl_Type,
+       Is_Not_Self_Hidden,
        Is_Param_Block_Component_Type,
        Is_Partial_Invariant_Procedure,
        Is_Potentially_Use_Visible,
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-gen-gen_entities.adb gcc-14.1.0/gcc/ada/gen_il-gen-gen_entities.adb
*** gcc-13.2.0/gcc/ada/gen_il-gen-gen_entities.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-gen-gen_entities.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 57,63 ****
          Sm (Debug_Info_Off, Flag),
          Sm (Default_Expressions_Processed, Flag),
          Sm (Delay_Cleanups, Flag),
-         Sm (Delay_Subprogram_Descriptors, Flag),
          Sm (Depends_On_Private, Flag),
          Sm (Disable_Controlled, Flag, Base_Type_Only),
          Sm (Discard_Names, Flag),
--- 57,62 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 130,137 ****
          Sm (Is_Class_Wide_Equivalent_Type, Flag),
          Sm (Is_Compilation_Unit, Flag),
          Sm (Is_Concurrent_Record_Type, Flag),
          Sm (Is_Constr_Subt_For_U_Nominal, Flag),
-         Sm (Is_Constr_Subt_For_UN_Aliased, Flag),
          Sm (Is_Constrained, Flag),
          Sm (Is_Constructor, Flag),
          Sm (Is_Controlled_Active, Flag, Base_Type_Only),
--- 129,136 ----
          Sm (Is_Class_Wide_Equivalent_Type, Flag),
          Sm (Is_Compilation_Unit, Flag),
          Sm (Is_Concurrent_Record_Type, Flag),
+         Sm (Is_Constr_Array_Subt_With_Bounds, Flag),
          Sm (Is_Constr_Subt_For_U_Nominal, Flag),
          Sm (Is_Constrained, Flag),
          Sm (Is_Constructor, Flag),
          Sm (Is_Controlled_Active, Flag, Base_Type_Only),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 177,182 ****
--- 176,182 ----
          Sm (Is_Package_Body_Entity, Flag),
          Sm (Is_Packed, Flag, Impl_Base_Type_Only),
          Sm (Is_Packed_Array_Impl_Type, Flag),
+         Sm (Is_Not_Self_Hidden, Flag),
          Sm (Is_Potentially_Use_Visible, Flag),
          Sm (Is_Preelaborated, Flag),
          Sm (Is_Private_Descendant, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 249,254 ****
--- 249,256 ----
         --  resolution on calls).
         (Sm (Alignment, Unat),
          Sm (Contract, Node_Id),
+         Sm (First_Entity, Node_Id),
+         Sm (Last_Entity, Node_Id),
          Sm (Is_Elaboration_Warnings_OK_Id, Flag),
          Sm (Original_Record_Component, Node_Id),
          Sm (Scope_Depth_Value, Unat),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 284,297 ****
          Sm (Esize, Uint),
          Sm (RM_Size, Uint),
          Sm (Extra_Formal, Node_Id),
-         Sm (First_Entity, Node_Id),
          Sm (Generic_Homonym, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
          Sm (Handler_Records, List_Id),
          Sm (Has_Static_Discriminants, Flag),
          Sm (Inner_Instances, Elist_Id),
          Sm (Interface_Name, Node_Id),
-         Sm (Last_Entity, Node_Id),
          Sm (Next_Inlined_Subprogram, Node_Id),
          Sm (Renamed_Or_Alias, Node_Id), -- See Einfo.Utils
          Sm (Return_Applies_To, Node_Id),
--- 286,297 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 337,343 ****
          Sm (Esize, Uint),
          Sm (Interface_Name, Node_Id),
          Sm (Is_Finalized_Transient, Flag),
!         Sm (Is_Ignored_Transient, Flag),
          Sm (Linker_Section_Pragma, Node_Id),
          Sm (Related_Expression, Node_Id),
          Sm (Status_Flag_Or_Transient_Decl, Node_Id)));
--- 337,343 ----
          Sm (Esize, Uint),
          Sm (Interface_Name, Node_Id),
          Sm (Is_Finalized_Transient, Flag),
!         Sm (Is_Ignored_For_Finalization, Flag),
          Sm (Linker_Section_Pragma, Node_Id),
          Sm (Related_Expression, Node_Id),
          Sm (Status_Flag_Or_Transient_Decl, Node_Id)));
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 467,472 ****
--- 467,474 ----
          Sm (Predicates_Ignored, Flag),
          Sm (Esize, Uint),
          Sm (Finalize_Storage_Only, Flag, Base_Type_Only),
+         Sm (First_Entity, Node_Id),
+         Sm (Last_Entity, Node_Id),
          Sm (Full_View, Node_Id),
          Sm (Has_Completion_In_Body, Flag),
          Sm (Has_Constrained_Partial_View, Flag, Base_Type_Only),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 474,479 ****
--- 476,482 ----
          Sm (Has_Dispatch_Table, Flag,
              Pre => "Is_Tagged_Type (N)"),
          Sm (Has_Dynamic_Predicate_Aspect, Flag),
+         Sm (Has_Ghost_Predicate_Aspect, Flag),
          Sm (Has_Inheritable_Invariants, Flag, Base_Type_Only),
          Sm (Has_Inherited_DIC, Flag, Base_Type_Only),
          Sm (Has_Inherited_Invariants, Flag, Base_Type_Only),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 525,531 ****
          Sm (Subprograms_For_Type, Elist_Id),
          Sm (Suppress_Initialization, Flag),
          Sm (Universal_Aliasing, Flag, Impl_Base_Type_Only),
!         Sm (Renamed_Or_Alias, Node_Id)));
  
     Ab (Elementary_Kind, Type_Kind);
  
--- 528,535 ----
          Sm (Subprograms_For_Type, Elist_Id),
          Sm (Suppress_Initialization, Flag),
          Sm (Universal_Aliasing, Flag, Impl_Base_Type_Only),
!         Sm (Renamed_Or_Alias, Node_Id),
!         Sm (Stored_Constraint, Elist_Id)));
  
     Ab (Elementary_Kind, Type_Kind);
  
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 550,557 ****
  
     Cc (E_Enumeration_Type, Enumeration_Kind,
         --  Enumeration types, created by an enumeration type declaration
!        (Sm (Enum_Pos_To_Rep, Node_Id),
!         Sm (First_Entity, Node_Id)));
  
     Cc (E_Enumeration_Subtype, Enumeration_Kind);
         --  Enumeration subtypes, created by an explicit or implicit subtype
--- 554,560 ----
  
     Cc (E_Enumeration_Type, Enumeration_Kind,
         --  Enumeration types, created by an enumeration type declaration
!        (Sm (Enum_Pos_To_Rep, Node_Id)));
  
     Cc (E_Enumeration_Subtype, Enumeration_Kind);
         --  Enumeration subtypes, created by an explicit or implicit subtype
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 560,567 ****
     Ab (Integer_Kind, Discrete_Kind,
         (Sm (Has_Shift_Operator, Flag, Base_Type_Only)));
  
!    Ab (Signed_Integer_Kind, Integer_Kind,
!        (Sm (First_Entity, Node_Id)));
  
     Cc (E_Signed_Integer_Type, Signed_Integer_Kind);
         --  Signed integer type, used for the anonymous base type of the
--- 563,569 ----
     Ab (Integer_Kind, Discrete_Kind,
         (Sm (Has_Shift_Operator, Flag, Base_Type_Only)));
  
!    Ab (Signed_Integer_Kind, Integer_Kind);
  
     Cc (E_Signed_Integer_Type, Signed_Integer_Kind);
         --  Signed integer type, used for the anonymous base type of the
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 669,678 ****
         --  context does not provide one, the backend will see Allocator_Type
         --  itself (which will already have been frozen).
  
!    Cc (E_General_Access_Type, Access_Kind,
         --  An access type created by an access type declaration with the all
         --  keyword present.
-        (Sm (First_Entity, Node_Id)));
  
     Ab (Access_Subprogram_Kind, Access_Kind);
  
--- 671,679 ----
         --  context does not provide one, the backend will see Allocator_Type
         --  itself (which will already have been frozen).
  
!    Cc (E_General_Access_Type, Access_Kind);
         --  An access type created by an access type declaration with the all
         --  keyword present.
  
     Ab (Access_Subprogram_Kind, Access_Kind);
  
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 728,741 ****
     Cc (E_Array_Type, Array_Kind,
         --  An array type created by an array type declaration. Includes all
         --  cases of arrays, except for string types.
!        (Sm (First_Entity, Node_Id),
!         Sm (Static_Real_Or_String_Predicate, Node_Id)));
  
     Cc (E_Array_Subtype, Array_Kind,
         --  An array subtype, created by an explicit array subtype declaration,
         --  or the use of an anonymous array subtype.
         (Sm (Predicated_Parent, Node_Id),
-         Sm (First_Entity, Node_Id),
          Sm (Static_Real_Or_String_Predicate, Node_Id)));
  
     Cc (E_String_Literal_Subtype, Array_Kind,
--- 729,740 ----
     Cc (E_Array_Type, Array_Kind,
         --  An array type created by an array type declaration. Includes all
         --  cases of arrays, except for string types.
!        (Sm (Static_Real_Or_String_Predicate, Node_Id)));
  
     Cc (E_Array_Subtype, Array_Kind,
         --  An array subtype, created by an explicit array subtype declaration,
         --  or the use of an anonymous array subtype.
         (Sm (Predicated_Parent, Node_Id),
          Sm (Static_Real_Or_String_Predicate, Node_Id)));
  
     Cc (E_String_Literal_Subtype, Array_Kind,
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 747,762 ****
     Ab (Class_Wide_Kind, Aggregate_Kind,
         (Sm (C_Pass_By_Copy, Flag, Impl_Base_Type_Only),
          Sm (Equivalent_Type, Node_Id),
-         Sm (First_Entity, Node_Id),
          Sm (Has_Complex_Representation, Flag, Impl_Base_Type_Only),
          Sm (Has_Record_Rep_Clause, Flag, Impl_Base_Type_Only),
          Sm (Interfaces, Elist_Id),
-         Sm (Last_Entity, Node_Id),
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Non_Limited_View, Node_Id),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
!         Sm (Reverse_Bit_Order, Flag, Base_Type_Only),
!         Sm (Stored_Constraint, Elist_Id)));
  
     Cc (E_Class_Wide_Type, Class_Wide_Kind,
         --  A class wide type, created by any tagged type declaration (i.e. if
--- 746,758 ----
     Ab (Class_Wide_Kind, Aggregate_Kind,
         (Sm (C_Pass_By_Copy, Flag, Impl_Base_Type_Only),
          Sm (Equivalent_Type, Node_Id),
          Sm (Has_Complex_Representation, Flag, Impl_Base_Type_Only),
          Sm (Has_Record_Rep_Clause, Flag, Impl_Base_Type_Only),
          Sm (Interfaces, Elist_Id),
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Non_Limited_View, Node_Id),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
!         Sm (Reverse_Bit_Order, Flag, Base_Type_Only)));
  
     Cc (E_Class_Wide_Type, Class_Wide_Kind,
         --  A class wide type, created by any tagged type declaration (i.e. if
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 778,792 ****
          Sm (Corresponding_Concurrent_Type, Node_Id),
          Sm (Corresponding_Remote_Type, Node_Id),
          Sm (Dispatch_Table_Wrappers, Elist_Id, Impl_Base_Type_Only),
-         Sm (First_Entity, Node_Id),
          Sm (Has_Complex_Representation, Flag, Impl_Base_Type_Only),
          Sm (Has_Record_Rep_Clause, Flag, Impl_Base_Type_Only),
          Sm (Interfaces, Elist_Id),
-         Sm (Last_Entity, Node_Id),
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
          Sm (Reverse_Bit_Order, Flag, Base_Type_Only),
-         Sm (Stored_Constraint, Elist_Id),
          Sm (Underlying_Record_View, Node_Id)));
  
     Cc (E_Record_Subtype, Aggregate_Kind,
--- 774,785 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 798,819 ****
          Sm (Corresponding_Remote_Type, Node_Id),
          Sm (Predicated_Parent, Node_Id),
          Sm (Dispatch_Table_Wrappers, Elist_Id, Impl_Base_Type_Only),
-         Sm (First_Entity, Node_Id),
          Sm (Has_Complex_Representation, Flag, Impl_Base_Type_Only),
          Sm (Has_Record_Rep_Clause, Flag, Impl_Base_Type_Only),
          Sm (Interfaces, Elist_Id),
-         Sm (Last_Entity, Node_Id),
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
          Sm (Reverse_Bit_Order, Flag, Base_Type_Only),
-         Sm (Stored_Constraint, Elist_Id),
          Sm (Underlying_Record_View, Node_Id)));
  
     Ab (Incomplete_Or_Private_Kind, Composite_Kind,
!        (Sm (First_Entity, Node_Id),
!         Sm (Last_Entity, Node_Id),
!         Sm (Private_Dependents, Elist_Id),
!         Sm (Stored_Constraint, Elist_Id)));
  
     Ab (Private_Kind, Incomplete_Or_Private_Kind,
         (Sm (Underlying_Full_View, Node_Id)));
--- 791,806 ----
          Sm (Corresponding_Remote_Type, Node_Id),
          Sm (Predicated_Parent, Node_Id),
          Sm (Dispatch_Table_Wrappers, Elist_Id, Impl_Base_Type_Only),
          Sm (Has_Complex_Representation, Flag, Impl_Base_Type_Only),
          Sm (Has_Record_Rep_Clause, Flag, Impl_Base_Type_Only),
          Sm (Interfaces, Elist_Id),
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
          Sm (Reverse_Bit_Order, Flag, Base_Type_Only),
          Sm (Underlying_Record_View, Node_Id)));
  
     Ab (Incomplete_Or_Private_Kind, Composite_Kind,
!        (Sm (Private_Dependents, Elist_Id)));
  
     Ab (Private_Kind, Incomplete_Or_Private_Kind,
         (Sm (Underlying_Full_View, Node_Id)));
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 893,903 ****
  
     Ab (Concurrent_Kind, Composite_Kind,
         (Sm (Corresponding_Record_Type, Node_Id),
-         Sm (First_Entity, Node_Id),
          Sm (First_Private_Entity, Node_Id),
!         Sm (Last_Entity, Node_Id),
!         Sm (Scope_Depth_Value, Unat),
!         Sm (Stored_Constraint, Elist_Id)));
  
     Ab (Task_Kind, Concurrent_Kind,
         (Sm (Has_Storage_Size_Clause, Flag, Impl_Base_Type_Only),
--- 880,887 ----
  
     Ab (Concurrent_Kind, Composite_Kind,
         (Sm (Corresponding_Record_Type, Node_Id),
          Sm (First_Private_Entity, Node_Id),
!         Sm (Scope_Depth_Value, Unat)));
  
     Ab (Task_Kind, Concurrent_Kind,
         (Sm (Has_Storage_Size_Clause, Flag, Impl_Base_Type_Only),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 951,958 ****
         (Sm (Access_Subprogram_Wrapper, Node_Id),
          Sm (Extra_Accessibility_Of_Result, Node_Id),
          Sm (Extra_Formals, Node_Id),
-         Sm (First_Entity, Node_Id),
-         Sm (Last_Entity, Node_Id),
          Sm (Needs_No_Actuals, Flag)));
  
     Ab (Overloadable_Kind, Entity_Kind,
--- 935,940 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1243,1248 ****
--- 1225,1231 ----
         --  implicit label declaration, not the occurrence of the label itself,
         --  which is simply a direct name referring to the label.
         (Sm (Enclosing_Scope, Node_Id),
+         Sm (Entry_Cancel_Parameter, Node_Id),
          Sm (Reachable, Flag),
          Sm (Renamed_Or_Alias, Node_Id)));
  
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1440,1443 ****
--- 1423,1453 ----
               E_Subprogram_Body,
               E_Subprogram_Type));
  
+    --  Entities that represent scopes. These can be on the scope stack,
+    --  and Scope_Depth can be queried. These are the kinds that have
+    --  the Scope_Depth_Value attribute, plus Record_Kind, which has
+    --  a synthesized Scope_Depth.
+ 
+    Union (Scope_Kind,
+           Children =>
+             (E_Void,
+              E_Private_Type,
+              E_Private_Subtype,
+              E_Limited_Private_Type,
+              E_Limited_Private_Subtype,
+              Concurrent_Kind,
+              Subprogram_Kind,
+              E_Entry,
+              E_Entry_Family,
+              E_Block,
+              Generic_Unit_Kind,
+              E_Loop,
+              E_Return_Statement,
+              E_Package,
+              E_Package_Body,
+              E_Subprogram_Body,
+              Record_Kind,
+              E_Incomplete_Type,
+              E_Subprogram_Type));
+ 
  end Gen_IL.Gen.Gen_Entities;
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-gen-gen_nodes.adb gcc-14.1.0/gcc/ada/gen_il-gen-gen_nodes.adb
*** gcc-13.2.0/gcc/ada/gen_il-gen-gen_nodes.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-gen-gen_nodes.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 62,68 ****
          Sm (Error_Posted, Flag),
          Sm (Small_Paren_Count, Small_Paren_Count_Type),
          Sm (Check_Actuals, Flag),
-         Sm (Has_Aspects, Flag),
          Sm (Is_Ignored_Ghost_Node, Flag),
          Sm (Link, Union_Id)));
  
--- 62,67 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 170,182 ****
          Sy (Selector_Name, Node_Id, Default_Empty),
          Sm (Atomic_Sync_Required, Flag),
          Sm (Has_Private_View, Flag),
          Sm (Is_Elaboration_Checks_OK_Node, Flag),
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (Redundant_Use, Flag)));
  
     Ab (N_Direct_Name, N_Has_Entity,
!        (Sm (Has_Private_View, Flag)));
  
     Cc (N_Identifier, N_Direct_Name,
         (Sy (Chars, Name_Id, Default_No_Name),
--- 169,183 ----
          Sy (Selector_Name, Node_Id, Default_Empty),
          Sm (Atomic_Sync_Required, Flag),
          Sm (Has_Private_View, Flag),
+         Sm (Has_Secondary_Private_View, Flag),
          Sm (Is_Elaboration_Checks_OK_Node, Flag),
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (Redundant_Use, Flag)));
  
     Ab (N_Direct_Name, N_Has_Entity,
!        (Sm (Has_Private_View, Flag),
!         Sm (Has_Secondary_Private_View, Flag)));
  
     Cc (N_Identifier, N_Direct_Name,
         (Sy (Chars, Name_Id, Default_No_Name),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 197,203 ****
  
     Ab (N_Op, N_Has_Entity,
         (Sm (Do_Overflow_Check, Flag),
!         Sm (Has_Private_View, Flag)));
  
     Ab (N_Binary_Op, N_Op);
  
--- 198,205 ----
  
     Ab (N_Op, N_Has_Entity,
         (Sm (Do_Overflow_Check, Flag),
!         Sm (Has_Private_View, Flag),
!         Sm (Has_Secondary_Private_View, Flag)));
  
     Ab (N_Binary_Op, N_Op);
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 252,259 ****
          Sm (Do_Division_Check, Flag)));
  
     Ab (N_Op_Boolean, N_Binary_Op);
!    --  Binary operators that take operands of a boolean type, and yield a
!    --  result of a boolean type.
  
     Cc (N_Op_And, N_Op_Boolean,
         (Sm (Chars, Name_Id),
--- 254,260 ----
          Sm (Do_Division_Check, Flag)));
  
     Ab (N_Op_Boolean, N_Binary_Op);
!    --  Binary operators that yield a result of a boolean type
  
     Cc (N_Op_And, N_Op_Boolean,
         (Sm (Chars, Name_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 266,297 ****
     Cc (N_Op_Eq, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
  
     Cc (N_Op_Ge, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
  
     Cc (N_Op_Gt, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
  
     Cc (N_Op_Le, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
  
     Cc (N_Op_Lt, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
  
     Cc (N_Op_Ne, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id)));
  
     Cc (N_Op_Or, N_Op_Boolean,
         (Sm (Chars, Name_Id),
--- 267,304 ----
     Cc (N_Op_Eq, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
     Cc (N_Op_Ge, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
     Cc (N_Op_Gt, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
     Cc (N_Op_Le, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
     Cc (N_Op_Lt, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
     Cc (N_Op_Ne, N_Op_Compare,
         (Sm (Chars, Name_Id),
          Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sm (Compare_Type, Node_Id)));
  
     Cc (N_Op_Or, N_Op_Boolean,
         (Sm (Chars, Name_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 401,408 ****
     Cc (N_Function_Call, N_Subprogram_Call,
         (Sy (Name, Node_Id, Default_Empty),
          Sy (Parameter_Associations, List_Id, Default_No_List),
!         Sm (Is_Expanded_Build_In_Place_Call, Flag),
!         Sm (No_Side_Effect_Removal, Flag)));
  
     Cc (N_Procedure_Call_Statement, N_Subprogram_Call,
         (Sy (Name, Node_Id, Default_Empty),
--- 408,414 ----
     Cc (N_Function_Call, N_Subprogram_Call,
         (Sy (Name, Node_Id, Default_Empty),
          Sy (Parameter_Associations, List_Id, Default_No_List),
!         Sm (Is_Expanded_Build_In_Place_Call, Flag)));
  
     Cc (N_Procedure_Call_Statement, N_Subprogram_Call,
         (Sy (Name, Node_Id, Default_Empty),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 487,493 ****
          Sy (Is_Parenthesis_Aggregate, Flag),
          Sy (Is_Homogeneous_Aggregate, Flag),
          Sy (Is_Enum_Array_Aggregate, Flag),
!         Sm (Aggregate_Bounds, Node_Id),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
          Sm (Compile_Time_Known_Aggregate, Flag),
          Sm (Expansion_Delayed, Flag),
--- 493,499 ----
          Sy (Is_Parenthesis_Aggregate, Flag),
          Sy (Is_Homogeneous_Aggregate, Flag),
          Sy (Is_Enum_Array_Aggregate, Flag),
!         Sm (Aggregate_Bounds_Or_Ancestor_Type, Node_Id),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
          Sm (Compile_Time_Known_Aggregate, Flag),
          Sm (Expansion_Delayed, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 531,537 ****
     Cc (N_Range, N_Subexpr,
         (Sy (Low_Bound, Node_Id),
          Sy (High_Bound, Node_Id),
!         Sy (Includes_Infinities, Flag)));
  
     Cc (N_Reference, N_Subexpr,
         (Sy (Prefix, Node_Id)));
--- 537,544 ----
     Cc (N_Range, N_Subexpr,
         (Sy (Low_Bound, Node_Id),
          Sy (High_Bound, Node_Id),
!         Sm (Cannot_Be_Superflat, Flag),
!         Sm (Includes_Infinities, Flag)));
  
     Cc (N_Reference, N_Subexpr,
         (Sy (Prefix, Node_Id)));
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 589,594 ****
--- 596,602 ----
         (Sy (Defining_Identifier, Node_Id),
          Sy (Component_Definition, Node_Id),
          Sy (Expression, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (More_Ids, Flag),
          Sm (Prev_Ids, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 598,608 ****
--- 606,618 ----
          Sy (Parameter_Specifications, List_Id, Default_No_List),
          Sy (Must_Override, Flag),
          Sy (Must_Not_Override, Flag),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Body, Node_Id)));
  
     Cc (N_Expression_Function, N_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Expression, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Spec, Node_Id)));
  
     Cc (N_Formal_Object_Declaration, N_Declaration,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 613,618 ****
--- 623,629 ----
          Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (Access_Definition, Node_Id, Default_Empty),
          Sy (Default_Expression, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (More_Ids, Flag),
          Sm (Prev_Ids, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 621,632 ****
          Sy (Formal_Type_Definition, Node_Id),
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Unknown_Discriminants_Present, Flag),
!         Sy (Default_Subtype_Mark, Node_Id)));
  
     Cc (N_Full_Type_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Type_Definition, Node_Id),
          Sm (Discr_Check_Funcs_Built, Flag),
          Sm (Incomplete_View, Node_Id)));
  
--- 632,645 ----
          Sy (Formal_Type_Definition, Node_Id),
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Unknown_Discriminants_Present, Flag),
!         Sy (Default_Subtype_Mark, Node_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Full_Type_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Type_Definition, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Discr_Check_Funcs_Built, Flag),
          Sm (Incomplete_View, Node_Id)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 659,664 ****
--- 672,678 ----
          Sy (Object_Definition, Node_Id),
          Sy (Expression, Node_Id, Default_Empty),
          Sy (Has_Init_Expression, Flag),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Assignment_OK, Flag),
          Sm (Corresponding_Generic_Association, Node_Id),
          Sm (Exception_Junk, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 674,679 ****
--- 688,694 ----
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Interface_List, List_Id, Default_No_List),
          Sy (Protected_Definition, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Body, Node_Id)));
  
     Cc (N_Private_Extension_Declaration, N_Declaration,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 685,690 ****
--- 700,706 ----
          Sy (Synchronized_Present, Flag),
          Sy (Subtype_Indication, Node_Id, Default_Empty),
          Sy (Interface_List, List_Id, Default_No_List),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Uninitialized_Variable, Node_Id)));
  
     Cc (N_Private_Type_Declaration, N_Declaration,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 693,704 ****
          Sy (Unknown_Discriminants_Present, Flag),
          Sy (Abstract_Present, Flag),
          Sy (Tagged_Present, Flag),
!         Sy (Limited_Present, Flag)));
  
     Cc (N_Subtype_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Subtype_Indication, Node_Id, Default_Empty),
          Sm (Exception_Junk, Flag),
          Sm (Generic_Parent_Type, Node_Id)));
  
--- 709,722 ----
          Sy (Unknown_Discriminants_Present, Flag),
          Sy (Abstract_Present, Flag),
          Sy (Tagged_Present, Flag),
!         Sy (Limited_Present, Flag),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Subtype_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Subtype_Indication, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Exception_Junk, Flag),
          Sm (Generic_Parent_Type, Node_Id)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 719,724 ****
--- 737,743 ----
          Sy (Null_Present, Flag),
          Sy (Must_Override, Flag),
          Sy (Must_Not_Override, Flag),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Null_Statement, Node_Id)));
  
     Ab (N_Access_To_Subprogram_Definition, Node_Kind);
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 749,754 ****
--- 768,774 ----
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Interface_List, List_Id, Default_No_List),
          Sy (Task_Definition, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Body, Node_Id)));
  
     Ab (N_Body_Stub, N_Later_Decl_Item,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 757,772 ****
          Sm (Library_Unit, Node_Id)));
  
     Cc (N_Package_Body_Stub, N_Body_Stub,
!        (Sy (Defining_Identifier, Node_Id)));
  
     Cc (N_Protected_Body_Stub, N_Body_Stub,
!        (Sy (Defining_Identifier, Node_Id)));
  
     Cc (N_Subprogram_Body_Stub, N_Body_Stub,
!        (Sy (Specification, Node_Id)));
  
     Cc (N_Task_Body_Stub, N_Body_Stub,
!        (Sy (Defining_Identifier, Node_Id)));
  
     Ab (N_Generic_Instantiation, N_Later_Decl_Item,
         (Sm (Instance_Spec, Node_Id),
--- 777,796 ----
          Sm (Library_Unit, Node_Id)));
  
     Cc (N_Package_Body_Stub, N_Body_Stub,
!        (Sy (Defining_Identifier, Node_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Protected_Body_Stub, N_Body_Stub,
!        (Sy (Defining_Identifier, Node_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Subprogram_Body_Stub, N_Body_Stub,
!        (Sy (Specification, Node_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Task_Body_Stub, N_Body_Stub,
!        (Sy (Defining_Identifier, Node_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Generic_Instantiation, N_Later_Decl_Item,
         (Sm (Instance_Spec, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 784,802 ****
          Sy (Name, Node_Id, Default_Empty),
          Sy (Generic_Associations, List_Id, Default_No_List),
          Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag)));
  
     Cc (N_Procedure_Instantiation, N_Subprogram_Instantiation,
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
          Sy (Generic_Associations, List_Id, Default_No_List),
          Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag)));
  
     Cc (N_Package_Instantiation, N_Generic_Instantiation,
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
!         Sy (Generic_Associations, List_Id, Default_No_List)));
  
     Ab (N_Proper_Body, N_Later_Decl_Item,
         (Sm (Corresponding_Spec, Node_Id),
--- 808,829 ----
          Sy (Name, Node_Id, Default_Empty),
          Sy (Generic_Associations, List_Id, Default_No_List),
          Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Procedure_Instantiation, N_Subprogram_Instantiation,
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
          Sy (Generic_Associations, List_Id, Default_No_List),
          Sy (Must_Override, Flag),
!         Sy (Must_Not_Override, Flag),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Package_Instantiation, N_Generic_Instantiation,
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
!         Sy (Generic_Associations, List_Id, Default_No_List),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Proper_Body, N_Later_Decl_Item,
         (Sm (Corresponding_Spec, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 808,814 ****
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
!         Sy (At_End_Proc, Node_Id, Default_Empty)));
  
     Cc (N_Subprogram_Body, N_Unit_Body,
         (Sy (Specification, Node_Id),
--- 835,842 ----
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
!         Sy (At_End_Proc, Node_Id, Default_Empty),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Subprogram_Body, N_Unit_Body,
         (Sy (Specification, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 816,821 ****
--- 844,850 ----
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (Bad_Is_Detected, Flag),
          Sy (At_End_Proc, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Acts_As_Spec, Flag),
          Sm (Corresponding_Entry_Body, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 831,843 ****
     Cc (N_Protected_Body, N_Proper_Body,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
!         Sy (End_Label, Node_Id, Default_Empty)));
  
     Cc (N_Task_Body, N_Proper_Body,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (At_End_Proc, Node_Id, Default_Empty),
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Is_Task_Master, Flag)));
  
--- 860,874 ----
     Cc (N_Protected_Body, N_Proper_Body,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
!         Sy (End_Label, Node_Id, Default_Empty),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Task_Body, N_Proper_Body,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (At_End_Proc, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Is_Task_Master, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 847,852 ****
--- 878,884 ----
  
     Cc (N_Package_Declaration, N_Later_Decl_Item,
         (Sy (Specification, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Corresponding_Body, Node_Id),
          Sm (Parent_Spec, Node_Id)));
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 854,863 ****
     Cc (N_Single_Task_Declaration, N_Later_Decl_Item,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Interface_List, List_Id, Default_No_List),
!         Sy (Task_Definition, Node_Id, Default_Empty)));
  
     Cc (N_Subprogram_Declaration, N_Later_Decl_Item,
         (Sy (Specification, Node_Id),
          Sm (Body_To_Inline, Node_Id),
          Sm (Corresponding_Body, Node_Id),
          Sm (Is_Entry_Barrier_Function, Flag),
--- 886,897 ----
     Cc (N_Single_Task_Declaration, N_Later_Decl_Item,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Interface_List, List_Id, Default_No_List),
!         Sy (Task_Definition, Node_Id, Default_Empty),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Subprogram_Declaration, N_Later_Decl_Item,
         (Sy (Specification, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Body_To_Inline, Node_Id),
          Sm (Corresponding_Body, Node_Id),
          Sm (Is_Entry_Barrier_Function, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 881,891 ****
     Cc (N_Generic_Package_Declaration, N_Generic_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Generic_Formal_Declarations, List_Id),
          Sm (Activation_Chain_Entity, Node_Id)));
  
     Cc (N_Generic_Subprogram_Declaration, N_Generic_Declaration,
         (Sy (Specification, Node_Id),
!         Sy (Generic_Formal_Declarations, List_Id)));
  
     Ab (N_Array_Type_Definition, Node_Kind);
  
--- 915,927 ----
     Cc (N_Generic_Package_Declaration, N_Generic_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Generic_Formal_Declarations, List_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Activation_Chain_Entity, Node_Id)));
  
     Cc (N_Generic_Subprogram_Declaration, N_Generic_Declaration,
         (Sy (Specification, Node_Id),
!         Sy (Generic_Formal_Declarations, List_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Array_Type_Definition, Node_Kind);
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 901,907 ****
  
     Cc (N_Exception_Renaming_Declaration, N_Renaming_Declaration,
         (Sy (Defining_Identifier, Node_Id),
!         Sy (Name, Node_Id, Default_Empty)));
  
     Cc (N_Object_Renaming_Declaration, N_Renaming_Declaration,
         (Sy (Defining_Identifier, Node_Id),
--- 937,944 ----
  
     Cc (N_Exception_Renaming_Declaration, N_Renaming_Declaration,
         (Sy (Defining_Identifier, Node_Id),
!         Sy (Name, Node_Id, Default_Empty),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Object_Renaming_Declaration, N_Renaming_Declaration,
         (Sy (Defining_Identifier, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 909,932 ****
          Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (Access_Definition, Node_Id, Default_Empty),
          Sy (Name, Node_Id, Default_Empty),
          Sm (Comes_From_Iterator, Flag),
          Sm (Corresponding_Generic_Association, Node_Id)));
  
     Cc (N_Package_Renaming_Declaration, N_Renaming_Declaration,
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
          Sm (Parent_Spec, Node_Id)));
  
     Cc (N_Subprogram_Renaming_Declaration, N_Renaming_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
          Sm (Corresponding_Formal_Spec, Node_Id),
          Sm (Corresponding_Spec, Node_Id),
          Sm (From_Default, Flag),
          Sm (Parent_Spec, Node_Id)));
  
     Ab (N_Generic_Renaming_Declaration, N_Renaming_Declaration,
!        (Sm (Parent_Spec, Node_Id)));
  
     Cc (N_Generic_Function_Renaming_Declaration, N_Generic_Renaming_Declaration,
         (Sy (Defining_Unit_Name, Node_Id),
--- 946,973 ----
          Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (Access_Definition, Node_Id, Default_Empty),
          Sy (Name, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Comes_From_Iterator, Flag),
          Sm (Corresponding_Generic_Association, Node_Id)));
  
     Cc (N_Package_Renaming_Declaration, N_Renaming_Declaration,
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Parent_Spec, Node_Id)));
  
     Cc (N_Subprogram_Renaming_Declaration, N_Renaming_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Corresponding_Formal_Spec, Node_Id),
          Sm (Corresponding_Spec, Node_Id),
          Sm (From_Default, Flag),
          Sm (Parent_Spec, Node_Id)));
  
     Ab (N_Generic_Renaming_Declaration, N_Renaming_Declaration,
!        (Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sm (Parent_Spec, Node_Id)));
  
     Cc (N_Generic_Function_Renaming_Declaration, N_Generic_Renaming_Declaration,
         (Sy (Defining_Unit_Name, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 969,974 ****
--- 1010,1016 ----
          Sm (Is_Elaboration_Code, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (No_Ctrl_Actions, Flag),
+         Sm (No_Finalize_Actions, Flag),
          Sm (Suppress_Assignment_Checks, Flag)));
  
     Cc (N_Asynchronous_Select, N_Statement_Other_Than_Procedure_Call,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 987,993 ****
          Sm (Cleanup_Actions, List_Id),
          Sm (Exception_Junk, Flag),
          Sm (Is_Abort_Block, Flag),
-         Sm (Is_Finalization_Wrapper, Flag),
          Sm (Is_Initialization_Block, Flag),
          Sm (Is_Task_Master, Flag)));
  
--- 1029,1034 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1145,1157 ****
         (Sy (Specification, Node_Id),
          Sy (Default_Name, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
!         Sy (Box_Present, Flag)));
  
     Cc (N_Formal_Concrete_Subprogram_Declaration, N_Formal_Subprogram_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Default_Name, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
!         Sy (Box_Present, Flag)));
  
     Ab (N_Push_Pop_xxx_Label, Node_Kind);
  
--- 1186,1200 ----
         (Sy (Specification, Node_Id),
          Sy (Default_Name, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
!         Sy (Box_Present, Flag),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Formal_Concrete_Subprogram_Declaration, N_Formal_Subprogram_Declaration,
         (Sy (Specification, Node_Id),
          Sy (Default_Name, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
!         Sy (Box_Present, Flag),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Ab (N_Push_Pop_xxx_Label, Node_Kind);
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1188,1194 ****
         (Sy (Statements, List_Id, Default_Empty_List)));
  
     Cc (N_Abstract_Subprogram_Declaration, Node_Kind,
!        (Sy (Specification, Node_Id)));
  
     Cc (N_Access_Definition, Node_Kind,
         (Sy (Null_Exclusion_Present, Flag, Default_False),
--- 1231,1238 ----
         (Sy (Statements, List_Id, Default_Empty_List)));
  
     Cc (N_Abstract_Subprogram_Declaration, Node_Kind,
!        (Sy (Specification, Node_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Access_Definition, Node_Kind,
         (Sy (Null_Exclusion_Present, Flag, Default_False),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1212,1217 ****
--- 1256,1262 ----
          Sm (Aspect_On_Partial_View, Flag),
          Sm (Aspect_Rep_Item, Node_Id),
          Sm (Entity_Or_Associated_Node, Node_Id), -- just Entity
+         Sm (Expression_Copy, Node_Id),
          Sm (Is_Boolean_Aspect, Flag),
          Sm (Is_Checked, Flag),
          Sm (Is_Delayed_Aspect, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1344,1350 ****
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (At_End_Proc, Node_Id, Default_Empty),
!         Sm (Activation_Chain_Entity, Node_Id)));
  
     Cc (N_Entry_Call_Alternative, Node_Kind,
         (Sy (Entry_Call_Statement, Node_Id),
--- 1389,1397 ----
          Sy (Declarations, List_Id, Default_No_List),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
          Sy (At_End_Proc, Node_Id, Default_Empty),
!         Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sm (Activation_Chain_Entity, Node_Id),
!         Sm (Corresponding_Spec, Node_Id)));
  
     Cc (N_Entry_Call_Alternative, Node_Kind,
         (Sy (Entry_Call_Statement, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1357,1362 ****
--- 1404,1410 ----
  
     Cc (N_Exception_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Expression, Node_Id),
          Sm (More_Ids, Flag),
          Sm (Prev_Ids, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1398,1403 ****
--- 1446,1452 ----
          Sy (Name, Node_Id, Default_Empty),
          Sy (Generic_Associations, List_Id, Default_No_List),
          Sy (Box_Present, Flag),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Instance_Spec, Node_Id),
          Sm (Is_Known_Guaranteed_ABE, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1481,1486 ****
--- 1530,1536 ----
          Sy (Visible_Declarations, List_Id),
          Sy (Private_Declarations, List_Id, Default_No_List),
          Sy (End_Label, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Generic_Parent, Node_Id),
          Sm (Limited_View_Installed, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1498,1503 ****
--- 1548,1554 ----
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Parameter_Type, Node_Id),
          Sy (Expression, Node_Id, Default_Empty),
+         Sy (Aspect_Specifications, List_Id, Default_No_List),
          Sm (Default_Expression, Node_Id),
          Sm (More_Ids, Flag),
          Sm (Prev_Ids, Flag)));
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1556,1562 ****
     Cc (N_Single_Protected_Declaration, Node_Kind,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Interface_List, List_Id, Default_No_List),
!         Sy (Protected_Definition, Node_Id)));
  
     Cc (N_Subunit, Node_Kind,
         (Sy (Name, Node_Id, Default_Empty),
--- 1607,1614 ----
     Cc (N_Single_Protected_Declaration, Node_Kind,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Interface_List, List_Id, Default_No_List),
!         Sy (Protected_Definition, Node_Id),
!         Sy (Aspect_Specifications, List_Id, Default_No_List)));
  
     Cc (N_Subunit, Node_Kind,
         (Sy (Name, Node_Id, Default_Empty),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1604,1610 ****
          Sm (Dcheck_Function, Node_Id),
          Sm (Enclosing_Variant, Node_Id),
          Sm (Has_SP_Choice, Flag),
!         Sm (Present_Expr, Valid_Uint)));
  
     Cc (N_Variant_Part, Node_Kind,
         (Sy (Name, Node_Id, Default_Empty),
--- 1656,1662 ----
          Sm (Dcheck_Function, Node_Id),
          Sm (Enclosing_Variant, Node_Id),
          Sm (Has_SP_Choice, Flag),
!         Sm (Present_Expr, Uint)));
  
     Cc (N_Variant_Part, Node_Kind,
         (Sy (Name, Node_Id, Default_Empty),
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-gen.adb gcc-14.1.0/gcc/ada/gen_il-gen.adb
*** gcc-13.2.0/gcc/ada/gen_il-gen.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-gen.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Gen_IL.Gen is
*** 2957,2965 ****
           --  Current Node_Kind'Pos or Entity_Kind'Pos to be printed
  
           procedure Put_Enum_Lit (T : Node_Or_Entity_Type);
!          --  Print out the #define corresponding to the Ada enumeration literal
           --  for T in Node_Kind and Entity_Kind (i.e. concrete types).
!          --  This looks like "#define Some_Kind <pos>", where Some_Kind
           --  is the Node_Kind or Entity_Kind enumeration literal, and
           --  <pos> is Node_Kind'Pos or Entity_Kind'Pos of that literal.
  
--- 2957,2965 ----
           --  Current Node_Kind'Pos or Entity_Kind'Pos to be printed
  
           procedure Put_Enum_Lit (T : Node_Or_Entity_Type);
!          --  Print out the enumerator corresponding to the Ada enumeration literal
           --  for T in Node_Kind and Entity_Kind (i.e. concrete types).
!          --  This looks like "Some_Kind = <pos>", where Some_Kind
           --  is the Node_Kind or Entity_Kind enumeration literal, and
           --  <pos> is Node_Kind'Pos or Entity_Kind'Pos of that literal.
  
*************** package body Gen_IL.Gen is
*** 2970,2976 ****
           procedure Put_Enum_Lit (T : Node_Or_Entity_Type) is
           begin
              if T in Concrete_Type then
!                Put (S, "#define " & Image (T) & " " & Image (Cur_Pos) & LF);
                 Cur_Pos := Cur_Pos + 1;
              end if;
           end Put_Enum_Lit;
--- 2970,2976 ----
           procedure Put_Enum_Lit (T : Node_Or_Entity_Type) is
           begin
              if T in Concrete_Type then
!                Put (S, "  " & Image (T) & " = " & Image (Cur_Pos) & "," & LF);
                 Cur_Pos := Cur_Pos + 1;
              end if;
           end Put_Enum_Lit;
*************** package body Gen_IL.Gen is
*** 2990,2996 ****
--- 2990,2998 ----
        begin
           Put_Union_Membership (S, Root, Only_Prototypes => True);
  
+          Put (S, "enum " & Node_Or_Entity (Root) & "_Kind : unsigned int {" & LF);
           Iterate_Types (Root, Pre => Put_Enum_Lit'Access);
+          Put (S, "};" & LF);
  
           Put (S, "#define Number_" & Node_Or_Entity (Root) & "_Kinds " &
                Image (Cur_Pos) & "" & LF & LF);
*************** package body Gen_IL.Gen is
*** 3046,3052 ****
              Put (S, "unsigned int Raw = slot;" & LF);
           end if;
  
!          Put (S, Get_Set_Id_Image (Rec.Field_Type) & " val = ");
  
           if Field_Has_Special_Default (Rec.Field_Type) then
              Increase_Indent (S, 2);
--- 3048,3055 ----
              Put (S, "unsigned int Raw = slot;" & LF);
           end if;
  
!          Put (S, Get_Set_Id_Image (Rec.Field_Type) & " val = (" &
!                 Get_Set_Id_Image (Rec.Field_Type) & ") ");
  
           if Field_Has_Special_Default (Rec.Field_Type) then
              Increase_Indent (S, 2);
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-gen.ads gcc-14.1.0/gcc/ada/gen_il-gen.ads
*** gcc-13.2.0/gcc/ada/gen_il-gen.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-gen.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-internals.adb gcc-14.1.0/gcc/ada/gen_il-internals.adb
*** gcc-13.2.0/gcc/ada/gen_il-internals.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-internals.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Gen_IL.Internals is
*** 289,296 ****
              return "Has_SP_Choice";
           when Ignore_SPARK_Mode_Pragmas =>
              return "Ignore_SPARK_Mode_Pragmas";
-          when Is_Constr_Subt_For_UN_Aliased =>
-             return "Is_Constr_Subt_For_UN_Aliased";
           when Is_CPP_Class =>
              return "Is_CPP_Class";
           when Is_CUDA_Kernel =>
--- 289,294 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-internals.ads gcc-14.1.0/gcc/ada/gen_il-internals.ads
*** gcc-13.2.0/gcc/ada/gen_il-internals.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-internals.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-main.adb gcc-14.1.0/gcc/ada/gen_il-main.adb
*** gcc-13.2.0/gcc/ada/gen_il-main.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-main.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il-types.ads gcc-14.1.0/gcc/ada/gen_il-types.ads
*** gcc-13.2.0/gcc/ada/gen_il-types.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il-types.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Gen_IL.Types is
*** 177,182 ****
--- 177,183 ----
        Record_Kind,
        Record_Field_Kind,
        Scalar_Kind,
+       Scope_Kind,
        Signed_Integer_Kind,
        Subprogram_Type_Or_Kind,
        Subprogram_Kind,
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il.adb gcc-14.1.0/gcc/ada/gen_il.adb
*** gcc-13.2.0/gcc/ada/gen_il.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gen_il.ads gcc-14.1.0/gcc/ada/gen_il.ads
*** gcc-13.2.0/gcc/ada/gen_il.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gen_il.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/get_scos.adb gcc-14.1.0/gcc/ada/get_scos.adb
*** gcc-13.2.0/gcc/ada/get_scos.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/get_scos.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/get_scos.ads gcc-14.1.0/gcc/ada/get_scos.ads
*** gcc-13.2.0/gcc/ada/get_scos.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/get_scos.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/get_targ.adb gcc-14.1.0/gcc/ada/get_targ.adb
*** gcc-13.2.0/gcc/ada/get_targ.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/get_targ.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Get_Targ is
*** 279,293 ****
     end Get_Back_End_Config_File;
  
     -----------------------------
-    -- Get_Max_Unaligned_Field --
-    -----------------------------
- 
-    function Get_Max_Unaligned_Field return Pos is
-    begin
-       return 64;  -- Can be different on some targets
-    end Get_Max_Unaligned_Field;
- 
-    -----------------------------
     -- Register_Back_End_Types --
     -----------------------------
  
--- 279,284 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/get_targ.ads gcc-14.1.0/gcc/ada/get_targ.ads
*** gcc-13.2.0/gcc/ada/get_targ.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/get_targ.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Get_Targ is
*** 110,119 ****
  
     --  Other subprograms
  
-    function Get_Max_Unaligned_Field return Pos;
-    --  Returns the maximum supported size in bits for a field that is
-    --  not aligned on a storage unit boundary.
- 
     type C_String is array (0 .. 255) of aliased Character;
     pragma Convention (C, C_String);
  
--- 110,115 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/ghost.adb gcc-14.1.0/gcc/ada/ghost.adb
*** gcc-13.2.0/gcc/ada/ghost.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/ghost.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Einfo.Entities; use Einfo.Entities;
*** 31,37 ****
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
- with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
  with Sem;            use Sem;
--- 31,36 ----
*************** package body Ghost is
*** 101,111 ****
     --  mode Mode. Mark all formals parameters when N denotes a subprogram or a
     --  body.
  
-    function Name_To_Ghost_Mode (Mode : Name_Id) return Ghost_Mode_Type;
-    pragma Inline (Name_To_Ghost_Mode);
-    --  Convert a Ghost mode denoted by name Mode into its respective enumerated
-    --  value.
- 
     procedure Record_Ignored_Ghost_Node (N : Node_Or_Entity_Id);
     --  Save ignored Ghost node or entity N in table Ignored_Ghost_Nodes for
     --  later elimination.
--- 100,105 ----
*************** package body Ghost is
*** 490,502 ****
                 --  A reference to a Ghost entity can appear within an aspect
                 --  specification (SPARK RM 6.9(10)). The precise checking will
                 --  occur when analyzing the corresponding pragma. We make an
!                --  exception for predicate aspects that only allow referencing
!                --  a Ghost entity when the corresponding type declaration is
!                --  Ghost (SPARK RM 6.9(11)).
  
                 elsif Nkind (Par) = N_Aspect_Specification
!                  and then not Same_Aspect
!                                 (Get_Aspect_Id (Par), Aspect_Predicate)
                 then
                    return True;
  
--- 484,498 ----
                 --  A reference to a Ghost entity can appear within an aspect
                 --  specification (SPARK RM 6.9(10)). The precise checking will
                 --  occur when analyzing the corresponding pragma. We make an
!                --  exception for predicate aspects other than Ghost_Predicate
!                --  that only allow referencing a Ghost entity when the
!                --  corresponding type declaration is Ghost (SPARK RM 6.9(11)).
  
                 elsif Nkind (Par) = N_Aspect_Specification
!                  and then
!                    (Get_Aspect_Id (Par) = Aspect_Ghost_Predicate
!                      or else not Same_Aspect
!                                    (Get_Aspect_Id (Par), Aspect_Predicate))
                 then
                    return True;
  
*************** package body Ghost is
*** 659,665 ****
        --  declaration and at the point of use match.
  
        if Is_OK_Ghost_Context (Ghost_Ref) then
!          Check_Ghost_Policy (Ghost_Id, Ghost_Ref);
  
        --  Otherwise the Ghost entity appears in a non-Ghost context and affects
        --  its behavior or value (SPARK RM 6.9(10,11)).
--- 655,663 ----
        --  declaration and at the point of use match.
  
        if Is_OK_Ghost_Context (Ghost_Ref) then
!          if Present (Ghost_Id) then
!             Check_Ghost_Policy (Ghost_Id, Ghost_Ref);
!          end if;
  
        --  Otherwise the Ghost entity appears in a non-Ghost context and affects
        --  its behavior or value (SPARK RM 6.9(10,11)).
*************** package body Ghost is
*** 677,682 ****
--- 675,681 ----
                 Ghost_Ref);
              Error_Msg_N
                ("\either make the type ghost "
+                & "or use a Ghost_Predicate "
                 & "or use a type invariant on a private type", Ghost_Ref);
           end if;
        end if;
*************** package body Ghost is
*** 1198,1203 ****
--- 1197,1212 ----
        return False;
     end Is_Ghost_Assignment;
  
+    ----------------------------------
+    -- Is_Ghost_Attribute_Reference --
+    ----------------------------------
+ 
+    function Is_Ghost_Attribute_Reference (N : Node_Id) return Boolean is
+    begin
+       return Nkind (N) = N_Attribute_Reference
+         and then Attribute_Name (N) = Name_Initialized;
+    end Is_Ghost_Attribute_Reference;
+ 
     --------------------------
     -- Is_Ghost_Declaration --
     --------------------------
*************** package body Ghost is
*** 1877,1885 ****
        --  a Ghost entity.
  
        if Is_Checked_Ghost_Entity (Id) then
!          Set_Is_Checked_Ghost_Pragma (N);
  
        elsif Is_Ignored_Ghost_Entity (Id) then
           Set_Is_Ignored_Ghost_Pragma (N);
           Set_Is_Ignored_Ghost_Node (N);
           Record_Ignored_Ghost_Node (N);
--- 1886,1907 ----
        --  a Ghost entity.
  
        if Is_Checked_Ghost_Entity (Id) then
!          Mark_Ghost_Pragma (N, Check);
  
        elsif Is_Ignored_Ghost_Entity (Id) then
+          Mark_Ghost_Pragma (N, Ignore);
+       end if;
+    end Mark_Ghost_Pragma;
+ 
+    procedure Mark_Ghost_Pragma
+      (N    : Node_Id;
+       Mode : Ghost_Mode_Type)
+    is
+    begin
+       if Mode = Check then
+          Set_Is_Checked_Ghost_Pragma (N);
+ 
+       else
           Set_Is_Ignored_Ghost_Pragma (N);
           Set_Is_Ignored_Ghost_Node (N);
           Record_Ignored_Ghost_Node (N);
*************** package body Ghost is
*** 2007,2015 ****
  
              Rewrite (N, Make_Null_Statement (Sloc (N)));
  
-             --  Eliminate any aspects hanging off the ignored Ghost node
- 
-             Remove_Aspects (N);
           end if;
        end Remove_Ignored_Ghost_Node;
  
--- 2029,2034 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/ghost.ads gcc-14.1.0/gcc/ada/ghost.ads
*** gcc-13.2.0/gcc/ada/ghost.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/ghost.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 26,31 ****
--- 26,32 ----
  --  This package contains routines that deal with the static and runtime
  --  semantics of Ghost entities.
  
+ with Namet; use Namet;
  with Opt;   use Opt;
  with Types; use Types;
  
*************** package Ghost is
*** 110,115 ****
--- 111,120 ----
     --  Determine whether arbitrary node N denotes an assignment statement whose
     --  target is a Ghost entity.
  
+    function Is_Ghost_Attribute_Reference (N : Node_Id) return Boolean;
+    --  Determine whether arbitrary node N denotes an attribute reference which
+    --  denotes a Ghost attribute.
+ 
     function Is_Ghost_Declaration (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N denotes a declaration which defines
     --  a Ghost entity.
*************** package Ghost is
*** 214,219 ****
--- 219,229 ----
     --
     --    * The pragma is associated with Ghost entity Id
  
+    procedure Mark_Ghost_Pragma
+      (N    : Node_Id;
+       Mode : Ghost_Mode_Type);
+    --  Mark pragma N as Ghost with the corresponding Mode
+ 
     procedure Mark_Ghost_Renaming
       (N  : Node_Id;
        Id : Entity_Id);
*************** package Ghost is
*** 221,226 ****
--- 231,241 ----
     --
     --    * Renamed entity Id denotes a Ghost entity
  
+    function Name_To_Ghost_Mode (Mode : Name_Id) return Ghost_Mode_Type;
+    pragma Inline (Name_To_Ghost_Mode);
+    --  Convert a Ghost mode denoted by name Mode into its respective enumerated
+    --  value.
+ 
     procedure Remove_Ignored_Ghost_Code;
     --  Remove all code marked as ignored Ghost from the trees of all qualifying
     --  units (SPARK RM 6.9(4)).
diff -Nrcpad gcc-13.2.0/gcc/ada/gnat-style.texi gcc-14.1.0/gcc/ada/gnat-style.texi
*** gcc-13.2.0/gcc/ada/gnat-style.texi	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnat-style.texi	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  @setfilename gnat-style.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.1.1.@*
  @end ifinfo
  @settitle GNAT Coding Style A Guide for GNAT Developers
  @defindex ge
--- 3,9 ----
  @setfilename gnat-style.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.3.0.@*
  @end ifinfo
  @settitle GNAT Coding Style A Guide for GNAT Developers
  @defindex ge
***************
*** 19,29 ****
  
  @copying
  @quotation
! GNAT Coding Style: A Guide for GNAT Developers , Aug 25, 2022
  
  AdaCore
  
! Copyright @copyright{} 2008-2022, Free Software Foundation
  @end quotation
  
  @end copying
--- 19,29 ----
  
  @copying
  @quotation
! GNAT Coding Style: A Guide for GNAT Developers , Dec 21, 2023
  
  AdaCore
  
! Copyright @copyright{} 2008-2024, Free Software Foundation
  @end quotation
  
  @end copying
diff -Nrcpad gcc-13.2.0/gcc/ada/gnat1drv.adb gcc-14.1.0/gcc/ada/gnat1drv.adb
*** gcc-13.2.0/gcc/ada/gnat1drv.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnat1drv.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure Gnat1drv is
*** 712,738 ****
           Suppress_Options.Suppress (Alignment_Check) := True;
        end if;
  
-       --  Set switch indicating if back end can handle limited types, and
-       --  guarantee that no incorrect copies are made (e.g. in the context
-       --  of an if or case expression).
- 
-       --  Debug flag -gnatd.L decisively sets usage on
- 
-       if Debug_Flag_Dot_LL then
-          Back_End_Handles_Limited_Types := True;
- 
-       --  If no debug flag, usage off for SCIL cases
- 
-       elsif Generate_SCIL then
-          Back_End_Handles_Limited_Types := False;
- 
-       --  Otherwise normal gcc back end, for now still turn flag off by
-       --  default, since there are unresolved problems in the front end.
- 
-       else
-          Back_End_Handles_Limited_Types := False;
-       end if;
- 
        --  Return slot support is disabled if -gnatd_r is specified
  
        if Debug_Flag_Underscore_R then
--- 712,717 ----
*************** begin
*** 1396,1401 ****
--- 1375,1391 ----
           Back_End_Mode := Skip;
        end if;
  
+       --  Ensure that we properly register a dependency on system.ads, since
+       --  even if we do not semantically depend on this, Targparm has read
+       --  system parameters from the system.ads file.
+ 
+       Lib.Writ.Ensure_System_Dependency;
+ 
+       --  Add dependencies, if any, on preprocessing data file and on
+       --  preprocessing definition file(s).
+ 
+       Prepcomp.Add_Dependencies;
+ 
        --  At this stage Back_End_Mode is set to indicate if the backend should
        --  be called to generate code. If it is Skip, then code generation has
        --  been turned off, even though code was requested by the original
*************** begin
*** 1542,1558 ****
           return;
        end if;
  
-       --  Ensure that we properly register a dependency on system.ads, since
-       --  even if we do not semantically depend on this, Targparm has read
-       --  system parameters from the system.ads file.
- 
-       Lib.Writ.Ensure_System_Dependency;
- 
-       --  Add dependencies, if any, on preprocessing data file and on
-       --  preprocessing definition file(s).
- 
-       Prepcomp.Add_Dependencies;
- 
        if GNATprove_Mode then
  
           --  In GNATprove mode we're writing the ALI much earlier than usual
--- 1532,1537 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/gnat1drv.ads gcc-14.1.0/gcc/ada/gnat1drv.ads
*** gcc-13.2.0/gcc/ada/gnat1drv.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnat1drv.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnat_cuda.adb gcc-14.1.0/gcc/ada/gnat_cuda.adb
*** gcc-13.2.0/gcc/ada/gnat_cuda.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnat_cuda.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnat_cuda.ads gcc-14.1.0/gcc/ada/gnat_cuda.ads
*** gcc-13.2.0/gcc/ada/gnat_cuda.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnat_cuda.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnat_rm.texi gcc-14.1.0/gcc/ada/gnat_rm.texi
*** gcc-13.2.0/gcc/ada/gnat_rm.texi	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnat_rm.texi	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  @setfilename gnat_rm.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.2.3.@*
  @end ifinfo
  @settitle GNAT Reference Manual
  @defindex ge
--- 3,9 ----
  @setfilename gnat_rm.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.3.0.@*
  @end ifinfo
  @settitle GNAT Reference Manual
  @defindex ge
***************
*** 19,29 ****
  
  @copying
  @quotation
! GNAT Reference Manual , Dec 01, 2022
  
  AdaCore
  
! Copyright @copyright{} 2008-2023, Free Software Foundation
  @end quotation
  
  @end copying
--- 19,29 ----
  
  @copying
  @quotation
! GNAT Reference Manual , Apr 15, 2024
  
  AdaCore
  
! Copyright @copyright{} 2008-2024, Free Software Foundation
  @end quotation
  
  @end copying
*************** included in the section entitled @ref{1,
*** 77,82 ****
--- 77,83 ----
  * Specialized Needs Annexes:: 
  * Implementation of Specific Ada Features:: 
  * Implementation of Ada 2012 Features:: 
+ * GNAT language extensions:: 
  * Security Hardening Features:: 
  * Obsolescent Features:: 
  * Compatibility and Porting Guide:: 
*************** Implementation Defined Pragmas
*** 105,110 ****
--- 106,112 ----
  * Pragma Ada_2022:: 
  * Pragma Aggregate_Individually_Assign:: 
  * Pragma Allow_Integer_Address:: 
+ * Pragma Always_Terminates:: 
  * Pragma Annotate:: 
  * Pragma Assert:: 
  * Pragma Assert_And_Cut:: 
*************** Implementation Defined Pragmas
*** 149,154 ****
--- 151,157 ----
  * Pragma Elaboration_Checks:: 
  * Pragma Eliminate:: 
  * Pragma Enable_Atomic_Synchronization:: 
+ * Pragma Exceptional_Cases:: 
  * Pragma Export_Function:: 
  * Pragma Export_Object:: 
  * Pragma Export_Procedure:: 
*************** Implementation Defined Pragmas
*** 253,258 ****
--- 256,262 ----
  * Pragma Shared:: 
  * Pragma Short_Circuit_And_Or:: 
  * Pragma Short_Descriptors:: 
+ * Pragma Side_Effects:: 
  * Pragma Simple_Storage_Pool_Type:: 
  * Pragma Source_File_Name:: 
  * Pragma Source_File_Name_Project:: 
*************** Implementation Defined Pragmas
*** 277,282 ****
--- 281,287 ----
  * Pragma Type_Invariant_Class:: 
  * Pragma Unchecked_Union:: 
  * Pragma Unevaluated_Use_Of_Old:: 
+ * Pragma User_Aspect_Definition:: 
  * Pragma Unimplemented_Unit:: 
  * Pragma Universal_Aliasing:: 
  * Pragma Unmodified:: 
*************** Implementation Defined Pragmas
*** 298,303 ****
--- 303,309 ----
  Implementation Defined Aspects
  
  * Aspect Abstract_State:: 
+ * Aspect Always_Terminates:: 
  * Aspect Annotate:: 
  * Aspect Async_Readers:: 
  * Aspect Async_Writers:: 
*************** Implementation Defined Aspects
*** 310,318 ****
--- 316,326 ----
  * Aspect Disable_Controlled:: 
  * Aspect Effective_Reads:: 
  * Aspect Effective_Writes:: 
+ * Aspect Exceptional_Cases:: 
  * Aspect Extensions_Visible:: 
  * Aspect Favor_Top_Level:: 
  * Aspect Ghost:: 
+ * Aspect Ghost_Predicate:: 
  * Aspect Global:: 
  * Aspect Initial_Condition:: 
  * Aspect Initializes:: 
*************** Implementation Defined Aspects
*** 321,326 ****
--- 329,335 ----
  * Aspect Invariant’Class:: 
  * Aspect Iterable:: 
  * Aspect Linker_Section:: 
+ * Aspect Local_Restrictions:: 
  * Aspect Lock_Free:: 
  * Aspect Max_Queue_Length:: 
  * Aspect No_Caching:: 
*************** Implementation Defined Aspects
*** 343,348 ****
--- 352,358 ----
  * Aspect Secondary_Stack_Size:: 
  * Aspect Scalar_Storage_Order:: 
  * Aspect Shared:: 
+ * Aspect Side_Effects:: 
  * Aspect Simple_Storage_Pool:: 
  * Aspect Simple_Storage_Pool_Type:: 
  * Aspect SPARK_Mode:: 
*************** Implementation Defined Aspects
*** 354,359 ****
--- 364,370 ----
  * Aspect Unmodified:: 
  * Aspect Unreferenced:: 
  * Aspect Unreferenced_Objects:: 
+ * Aspect User_Aspect:: 
  * Aspect Value_Size:: 
  * Aspect Volatile_Full_Access:: 
  * Aspect Volatile_Function:: 
*************** Partition-Wide Restrictions
*** 519,525 ****
--- 530,538 ----
  * No_Unchecked_Access:: 
  * No_Unchecked_Conversion:: 
  * No_Unchecked_Deallocation:: 
+ * No_Use_Of_Attribute:: 
  * No_Use_Of_Entity:: 
+ * No_Use_Of_Pragma:: 
  * Pure_Barriers:: 
  * Simple_Barriers:: 
  * Static_Priorities:: 
*************** Code Generation for Array Aggregates
*** 869,874 ****
--- 882,910 ----
  * Aggregates with nonstatic bounds:: 
  * Aggregates in assignment statements:: 
  
+ GNAT language extensions
+ 
+ * How to activate the extended GNAT Ada superset:: 
+ * Curated Extensions:: 
+ * Experimental Language Extensions:: 
+ 
+ Curated Extensions
+ 
+ * Local Declarations Without Block:: 
+ * Conditional when constructs:: 
+ * Case pattern matching:: 
+ * Fixed lower bounds for array types and subtypes:: 
+ * Prefixed-view notation for calls to primitive subprograms of untagged types:: 
+ * Expression defaults for generic formal functions:: 
+ * String interpolation:: 
+ * Constrained attribute for generic objects:: 
+ * Static aspect on intrinsic functions:: 
+ 
+ Experimental Language Extensions
+ 
+ * Pragma Storage_Model:: 
+ * Simpler accessibility model:: 
+ 
  Security Hardening Features
  
  * Register Scrubbing:: 
*************** consideration, the use of these pragmas
*** 1190,1195 ****
--- 1226,1232 ----
  * Pragma Ada_2022:: 
  * Pragma Aggregate_Individually_Assign:: 
  * Pragma Allow_Integer_Address:: 
+ * Pragma Always_Terminates:: 
  * Pragma Annotate:: 
  * Pragma Assert:: 
  * Pragma Assert_And_Cut:: 
*************** consideration, the use of these pragmas
*** 1234,1239 ****
--- 1271,1277 ----
  * Pragma Elaboration_Checks:: 
  * Pragma Eliminate:: 
  * Pragma Enable_Atomic_Synchronization:: 
+ * Pragma Exceptional_Cases:: 
  * Pragma Export_Function:: 
  * Pragma Export_Object:: 
  * Pragma Export_Procedure:: 
*************** consideration, the use of these pragmas
*** 1338,1343 ****
--- 1376,1382 ----
  * Pragma Shared:: 
  * Pragma Short_Circuit_And_Or:: 
  * Pragma Short_Descriptors:: 
+ * Pragma Side_Effects:: 
  * Pragma Simple_Storage_Pool_Type:: 
  * Pragma Source_File_Name:: 
  * Pragma Source_File_Name_Project:: 
*************** consideration, the use of these pragmas
*** 1362,1367 ****
--- 1401,1407 ----
  * Pragma Type_Invariant_Class:: 
  * Pragma Unchecked_Union:: 
  * Pragma Unevaluated_Use_Of_Old:: 
+ * Pragma User_Aspect_Definition:: 
  * Pragma Unimplemented_Unit:: 
  * Pragma Universal_Aliasing:: 
  * Pragma Unmodified:: 
*************** in memory for space and performance reas
*** 1648,1654 ****
  this behavior so that record aggregates are instead always converted into
  individual assignment statements.
  
! @node Pragma Allow_Integer_Address,Pragma Annotate,Pragma Aggregate_Individually_Assign,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-allow-integer-address}@anchor{27}
  @section Pragma Allow_Integer_Address
  
--- 1688,1694 ----
  this behavior so that record aggregates are instead always converted into
  individual assignment statements.
  
! @node Pragma Allow_Integer_Address,Pragma Always_Terminates,Pragma Aggregate_Individually_Assign,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-allow-integer-address}@anchor{27}
  @section Pragma Allow_Integer_Address
  
*************** this pragma serves no purpose but is ign
*** 1698,1705 ****
  rather than rejected to allow common sets of sources to be used
  in the two situations.
  
! @node Pragma Annotate,Pragma Assert,Pragma Allow_Integer_Address,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id3}@anchor{28}@anchor{gnat_rm/implementation_defined_pragmas pragma-annotate}@anchor{29}
  @section Pragma Annotate
  
  
--- 1738,1759 ----
  rather than rejected to allow common sets of sources to be used
  in the two situations.
  
! @node Pragma Always_Terminates,Pragma Annotate,Pragma Allow_Integer_Address,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id3}@anchor{28}@anchor{gnat_rm/implementation_defined_pragmas pragma-always-terminates}@anchor{29}
! @section Pragma Always_Terminates
! 
! 
! Syntax:
! 
! @example
! pragma Always_Terminates [ (boolean_EXPRESSION) ];
! @end example
! 
! For the semantics of this pragma, see the entry for aspect @code{Always_Terminates}
! in the SPARK 2014 Reference Manual, section 7.1.2.
! 
! @node Pragma Annotate,Pragma Assert,Pragma Always_Terminates,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id4}@anchor{2a}@anchor{gnat_rm/implementation_defined_pragmas pragma-annotate}@anchor{2b}
  @section Pragma Annotate
  
  
*************** affect the compilation process in any wa
*** 1734,1740 ****
  a configuration pragma.
  
  @node Pragma Assert,Pragma Assert_And_Cut,Pragma Annotate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assert}@anchor{2a}
  @section Pragma Assert
  
  
--- 1788,1794 ----
  a configuration pragma.
  
  @node Pragma Assert,Pragma Assert_And_Cut,Pragma Annotate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assert}@anchor{2c}
  @section Pragma Assert
  
  
*************** of Ada, and the DISABLE policy is an imp
*** 1800,1806 ****
  addition.
  
  @node Pragma Assert_And_Cut,Pragma Assertion_Policy,Pragma Assert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assert-and-cut}@anchor{2b}
  @section Pragma Assert_And_Cut
  
  
--- 1854,1860 ----
  addition.
  
  @node Pragma Assert_And_Cut,Pragma Assertion_Policy,Pragma Assert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assert-and-cut}@anchor{2d}
  @section Pragma Assert_And_Cut
  
  
*************** formal verification. The pragma also ser
*** 1827,1833 ****
  documentation.
  
  @node Pragma Assertion_Policy,Pragma Assume,Pragma Assert_And_Cut,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assertion-policy}@anchor{2c}
  @section Pragma Assertion_Policy
  
  
--- 1881,1887 ----
  documentation.
  
  @node Pragma Assertion_Policy,Pragma Assume,Pragma Assert_And_Cut,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assertion-policy}@anchor{2e}
  @section Pragma Assertion_Policy
  
  
*************** applies to @code{Assert}, @code{Assert_A
*** 1914,1920 ****
  @code{Assume}, @code{Loop_Invariant}, and @code{Loop_Variant}.
  
  @node Pragma Assume,Pragma Assume_No_Invalid_Values,Pragma Assertion_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume}@anchor{2d}
  @section Pragma Assume
  
  
--- 1968,1974 ----
  @code{Assume}, @code{Loop_Invariant}, and @code{Loop_Variant}.
  
  @node Pragma Assume,Pragma Assume_No_Invalid_Values,Pragma Assertion_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume}@anchor{2f}
  @section Pragma Assume
  
  
*************** is met, and documents the need to ensure
*** 1948,1954 ****
  reference to information outside the program.
  
  @node Pragma Assume_No_Invalid_Values,Pragma Async_Readers,Pragma Assume,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume-no-invalid-values}@anchor{2e}
  @section Pragma Assume_No_Invalid_Values
  
  
--- 2002,2008 ----
  reference to information outside the program.
  
  @node Pragma Assume_No_Invalid_Values,Pragma Async_Readers,Pragma Assume,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume-no-invalid-values}@anchor{30}
  @section Pragma Assume_No_Invalid_Values
  
  
*************** is erroneous so there are no guarantees
*** 2001,2007 ****
  case, and it is recommended that these two options not be used together.
  
  @node Pragma Async_Readers,Pragma Async_Writers,Pragma Assume_No_Invalid_Values,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id4}@anchor{2f}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-readers}@anchor{30}
  @section Pragma Async_Readers
  
  
--- 2055,2061 ----
  case, and it is recommended that these two options not be used together.
  
  @node Pragma Async_Readers,Pragma Async_Writers,Pragma Assume_No_Invalid_Values,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{31}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-readers}@anchor{32}
  @section Pragma Async_Readers
  
  
*************** For the semantics of this pragma, see th
*** 2015,2021 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Async_Writers,Pragma Attribute_Definition,Pragma Async_Readers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{31}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-writers}@anchor{32}
  @section Pragma Async_Writers
  
  
--- 2069,2075 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Async_Writers,Pragma Attribute_Definition,Pragma Async_Readers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id6}@anchor{33}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-writers}@anchor{34}
  @section Pragma Async_Writers
  
  
*************** For the semantics of this pragma, see th
*** 2029,2035 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Attribute_Definition,Pragma C_Pass_By_Copy,Pragma Async_Writers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-attribute-definition}@anchor{33}
  @section Pragma Attribute_Definition
  
  
--- 2083,2089 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Attribute_Definition,Pragma C_Pass_By_Copy,Pragma Async_Writers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-attribute-definition}@anchor{35}
  @section Pragma Attribute_Definition
  
  
*************** code to be written that takes advantage
*** 2055,2061 ****
  compilable with earlier compilers.
  
  @node Pragma C_Pass_By_Copy,Pragma Check,Pragma Attribute_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-c-pass-by-copy}@anchor{34}
  @section Pragma C_Pass_By_Copy
  
  
--- 2109,2115 ----
  compilable with earlier compilers.
  
  @node Pragma C_Pass_By_Copy,Pragma Check,Pragma Attribute_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-c-pass-by-copy}@anchor{36}
  @section Pragma C_Pass_By_Copy
  
  
*************** You can also pass records by copy by spe
*** 2099,2105 ****
  passing mechanisms on a parameter by parameter basis.
  
  @node Pragma Check,Pragma Check_Float_Overflow,Pragma C_Pass_By_Copy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check}@anchor{35}
  @section Pragma Check
  
  
--- 2153,2159 ----
  passing mechanisms on a parameter by parameter basis.
  
  @node Pragma Check,Pragma Check_Float_Overflow,Pragma C_Pass_By_Copy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check}@anchor{37}
  @section Pragma Check
  
  
*************** of these identifiers in @code{Assertion_
*** 2138,2144 ****
  pragmas, where they are used to refer to sets of assertions.
  
  @node Pragma Check_Float_Overflow,Pragma Check_Name,Pragma Check,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-float-overflow}@anchor{36}
  @section Pragma Check_Float_Overflow
  
  
--- 2192,2198 ----
  pragmas, where they are used to refer to sets of assertions.
  
  @node Pragma Check_Float_Overflow,Pragma Check_Name,Pragma Check,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-float-overflow}@anchor{38}
  @section Pragma Check_Float_Overflow
  
  
*************** This mode can also be set by use of the
*** 2194,2200 ****
  switch `-gnateF'.
  
  @node Pragma Check_Name,Pragma Check_Policy,Pragma Check_Float_Overflow,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-name}@anchor{37}
  @section Pragma Check_Name
  
  
--- 2248,2254 ----
  switch `-gnateF'.
  
  @node Pragma Check_Name,Pragma Check_Policy,Pragma Check_Float_Overflow,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-name}@anchor{39}
  @section Pragma Check_Name
  
  
*************** Check names introduced by this pragma ar
*** 2230,2236 ****
  switches (in particular -gnatp) in the usual manner.
  
  @node Pragma Check_Policy,Pragma Comment,Pragma Check_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-policy}@anchor{38}
  @section Pragma Check_Policy
  
  
--- 2284,2290 ----
  switches (in particular -gnatp) in the usual manner.
  
  @node Pragma Check_Policy,Pragma Comment,Pragma Check_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-policy}@anchor{3a}
  @section Pragma Check_Policy
  
  
*************** policy setting @code{DISABLE} causes the
*** 2310,2316 ****
  @code{Check} pragma to be completely ignored and not analyzed.
  
  @node Pragma Comment,Pragma Common_Object,Pragma Check_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-comment}@anchor{39}
  @section Pragma Comment
  
  
--- 2364,2370 ----
  @code{Check} pragma to be completely ignored and not analyzed.
  
  @node Pragma Comment,Pragma Common_Object,Pragma Check_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-comment}@anchor{3b}
  @section Pragma Comment
  
  
*************** anywhere in the main source unit), and i
*** 2329,2335 ****
  is used, all comments are retained.
  
  @node Pragma Common_Object,Pragma Compile_Time_Error,Pragma Comment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-common-object}@anchor{3a}
  @section Pragma Common_Object
  
  
--- 2383,2389 ----
  is used, all comments are retained.
  
  @node Pragma Common_Object,Pragma Compile_Time_Error,Pragma Comment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-common-object}@anchor{3c}
  @section Pragma Common_Object
  
  
*************** indicating that the necessary attribute
*** 2361,2367 ****
  pragma is not available.
  
  @node Pragma Compile_Time_Error,Pragma Compile_Time_Warning,Pragma Common_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas compile-time-error}@anchor{3b}@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-error}@anchor{3c}
  @section Pragma Compile_Time_Error
  
  
--- 2415,2421 ----
  pragma is not available.
  
  @node Pragma Compile_Time_Error,Pragma Compile_Time_Warning,Pragma Common_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas compile-time-error}@anchor{3d}@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-error}@anchor{3e}
  @section Pragma Compile_Time_Error
  
  
*************** the value given as the second argument.
*** 2388,2394 ****
  embedded ASCII.LF characters to break the message into multiple lines.
  
  @node Pragma Compile_Time_Warning,Pragma Complete_Representation,Pragma Compile_Time_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-warning}@anchor{3d}
  @section Pragma Compile_Time_Warning
  
  
--- 2442,2448 ----
  embedded ASCII.LF characters to break the message into multiple lines.
  
  @node Pragma Compile_Time_Warning,Pragma Complete_Representation,Pragma Compile_Time_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-warning}@anchor{3f}
  @section Pragma Compile_Time_Warning
  
  
*************** for example that it is not fully impleme
*** 2415,2425 ****
  
  In previous versions of the compiler, combining `-gnatwe' with
  Compile_Time_Warning resulted in a fatal error. Now the compiler always emits
! a warning. You can use @ref{3b,,Pragma Compile_Time_Error} to force the generation of
  an error.
  
  @node Pragma Complete_Representation,Pragma Complex_Representation,Pragma Compile_Time_Warning,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complete-representation}@anchor{3e}
  @section Pragma Complete_Representation
  
  
--- 2469,2479 ----
  
  In previous versions of the compiler, combining `-gnatwe' with
  Compile_Time_Warning resulted in a fatal error. Now the compiler always emits
! a warning. You can use @ref{3d,,Pragma Compile_Time_Error} to force the generation of
  an error.
  
  @node Pragma Complete_Representation,Pragma Complex_Representation,Pragma Compile_Time_Warning,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complete-representation}@anchor{40}
  @section Pragma Complete_Representation
  
  
*************** complete, and that this invariant is mai
*** 2438,2444 ****
  added to the record in the future.
  
  @node Pragma Complex_Representation,Pragma Component_Alignment,Pragma Complete_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complex-representation}@anchor{3f}
  @section Pragma Complex_Representation
  
  
--- 2492,2498 ----
  added to the record in the future.
  
  @node Pragma Complex_Representation,Pragma Component_Alignment,Pragma Complete_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complex-representation}@anchor{41}
  @section Pragma Complex_Representation
  
  
*************** records by pointer, and the use of this
*** 2460,2466 ****
  this type in floating-point registers.
  
  @node Pragma Component_Alignment,Pragma Constant_After_Elaboration,Pragma Complex_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-component-alignment}@anchor{40}
  @section Pragma Component_Alignment
  
  
--- 2514,2520 ----
  this type in floating-point registers.
  
  @node Pragma Component_Alignment,Pragma Constant_After_Elaboration,Pragma Complex_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-component-alignment}@anchor{42}
  @section Pragma Component_Alignment
  
  
*************** pragma @code{Pack}, pragma @code{Compone
*** 2551,2557 ****
  clause), the GNAT uses the default alignment as described previously.
  
  @node Pragma Constant_After_Elaboration,Pragma Contract_Cases,Pragma Component_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id6}@anchor{41}@anchor{gnat_rm/implementation_defined_pragmas pragma-constant-after-elaboration}@anchor{42}
  @section Pragma Constant_After_Elaboration
  
  
--- 2605,2611 ----
  clause), the GNAT uses the default alignment as described previously.
  
  @node Pragma Constant_After_Elaboration,Pragma Contract_Cases,Pragma Component_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id7}@anchor{43}@anchor{gnat_rm/implementation_defined_pragmas pragma-constant-after-elaboration}@anchor{44}
  @section Pragma Constant_After_Elaboration
  
  
*************** For the semantics of this pragma, see th
*** 2565,2571 ****
  @code{Constant_After_Elaboration} in the SPARK 2014 Reference Manual, section 3.3.1.
  
  @node Pragma Contract_Cases,Pragma Convention_Identifier,Pragma Constant_After_Elaboration,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id7}@anchor{43}@anchor{gnat_rm/implementation_defined_pragmas pragma-contract-cases}@anchor{44}
  @section Pragma Contract_Cases
  
  
--- 2619,2625 ----
  @code{Constant_After_Elaboration} in the SPARK 2014 Reference Manual, section 3.3.1.
  
  @node Pragma Contract_Cases,Pragma Convention_Identifier,Pragma Constant_After_Elaboration,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id8}@anchor{45}@anchor{gnat_rm/implementation_defined_pragmas pragma-contract-cases}@anchor{46}
  @section Pragma Contract_Cases
  
  
*************** and that the consequence for this case s
*** 2650,2656 ****
  returns.
  
  @node Pragma Convention_Identifier,Pragma CPP_Class,Pragma Contract_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-convention-identifier}@anchor{45}
  @section Pragma Convention_Identifier
  
  
--- 2704,2710 ----
  returns.
  
  @node Pragma Convention_Identifier,Pragma CPP_Class,Pragma Contract_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-convention-identifier}@anchor{47}
  @section Pragma Convention_Identifier
  
  
*************** define a convention identifier @code{Lib
*** 2686,2692 ****
  would be used system-wide.
  
  @node Pragma CPP_Class,Pragma CPP_Constructor,Pragma Convention_Identifier,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-class}@anchor{46}
  @section Pragma CPP_Class
  
  
--- 2740,2746 ----
  would be used system-wide.
  
  @node Pragma CPP_Class,Pragma CPP_Constructor,Pragma Convention_Identifier,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-class}@anchor{48}
  @section Pragma CPP_Class
  
  
*************** functions (see pragma @code{CPP_Construc
*** 2711,2724 ****
  limited if not explicitly declared as limited or derived from a limited
  type, and an error is issued in that case.
  
! See @ref{47,,Interfacing to C++} for related information.
  
  Note: Pragma @code{CPP_Class} is currently obsolete. It is supported
  for backward compatibility but its functionality is available
  using pragma @code{Import} with @code{Convention} = @code{CPP}.
  
  @node Pragma CPP_Constructor,Pragma CPP_Virtual,Pragma CPP_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-constructor}@anchor{48}
  @section Pragma CPP_Constructor
  
  
--- 2765,2778 ----
  limited if not explicitly declared as limited or derived from a limited
  type, and an error is issued in that case.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  Note: Pragma @code{CPP_Class} is currently obsolete. It is supported
  for backward compatibility but its functionality is available
  using pragma @code{Import} with @code{Convention} = @code{CPP}.
  
  @node Pragma CPP_Constructor,Pragma CPP_Virtual,Pragma CPP_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-constructor}@anchor{4a}
  @section Pragma CPP_Constructor
  
  
*************** on the Ada side and the type is implicit
*** 2769,2775 ****
  Pragma @code{CPP_Constructor} is intended primarily for automatic generation
  using an automatic binding generator tool (such as the @code{-fdump-ada-spec}
  GCC switch).
! See @ref{47,,Interfacing to C++} for more related information.
  
  Note: The use of functions returning class-wide types for constructors is
  currently obsolete. They are supported for backward compatibility. The
--- 2823,2829 ----
  Pragma @code{CPP_Constructor} is intended primarily for automatic generation
  using an automatic binding generator tool (such as the @code{-fdump-ada-spec}
  GCC switch).
! See @ref{49,,Interfacing to C++} for more related information.
  
  Note: The use of functions returning class-wide types for constructors is
  currently obsolete. They are supported for backward compatibility. The
*************** because the imported C++ constructors al
*** 2778,2784 ****
  that is, they never return an object whose type is a descendant of type T.
  
  @node Pragma CPP_Virtual,Pragma CPP_Vtable,Pragma CPP_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-virtual}@anchor{49}
  @section Pragma CPP_Virtual
  
  
--- 2832,2838 ----
  that is, they never return an object whose type is a descendant of type T.
  
  @node Pragma CPP_Virtual,Pragma CPP_Vtable,Pragma CPP_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-virtual}@anchor{4b}
  @section Pragma CPP_Virtual
  
  
*************** purposes. It used to be required to ensu
*** 2791,2800 ****
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{47,,Interfacing to C++} for related information.
  
  @node Pragma CPP_Vtable,Pragma CPU,Pragma CPP_Virtual,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-vtable}@anchor{4a}
  @section Pragma CPP_Vtable
  
  
--- 2845,2854 ----
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  @node Pragma CPP_Vtable,Pragma CPU,Pragma CPP_Virtual,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-vtable}@anchor{4c}
  @section Pragma CPP_Vtable
  
  
*************** It used to be required to ensure compati
*** 2806,2815 ****
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{47,,Interfacing to C++} for related information.
  
  @node Pragma CPU,Pragma Deadline_Floor,Pragma CPP_Vtable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpu}@anchor{4b}
  @section Pragma CPU
  
  
--- 2860,2869 ----
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  @node Pragma CPU,Pragma Deadline_Floor,Pragma CPP_Vtable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpu}@anchor{4d}
  @section Pragma CPU
  
  
*************** versions of Ada as an implementation-def
*** 2824,2830 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Deadline_Floor,Pragma Debug,Pragma CPU,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-deadline-floor}@anchor{4c}
  @section Pragma Deadline_Floor
  
  
--- 2878,2884 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Deadline_Floor,Pragma Debug,Pragma CPU,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-deadline-floor}@anchor{4e}
  @section Pragma Deadline_Floor
  
  
*************** deadline inherited by a task when the ta
*** 2839,2845 ****
  It is effective only when the EDF scheduling policy is used.
  
  @node Pragma Debug,Pragma Debug_Policy,Pragma Deadline_Floor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug}@anchor{4d}
  @section Pragma Debug
  
  
--- 2893,2899 ----
  It is effective only when the EDF scheduling policy is used.
  
  @node Pragma Debug,Pragma Debug_Policy,Pragma Deadline_Floor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug}@anchor{4f}
  @section Pragma Debug
  
  
*************** or by use of the pragma @code{Check_Poli
*** 2867,2873 ****
  @code{Debug}.
  
  @node Pragma Debug_Policy,Pragma Default_Initial_Condition,Pragma Debug,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug-policy}@anchor{4e}
  @section Pragma Debug_Policy
  
  
--- 2921,2927 ----
  @code{Debug}.
  
  @node Pragma Debug_Policy,Pragma Default_Initial_Condition,Pragma Debug,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug-policy}@anchor{50}
  @section Pragma Debug_Policy
  
  
*************** with a first argument of @code{Debug}. I
*** 2882,2888 ****
  compatibility reasons.
  
  @node Pragma Default_Initial_Condition,Pragma Default_Scalar_Storage_Order,Pragma Debug_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id8}@anchor{4f}@anchor{gnat_rm/implementation_defined_pragmas pragma-default-initial-condition}@anchor{50}
  @section Pragma Default_Initial_Condition
  
  
--- 2936,2942 ----
  compatibility reasons.
  
  @node Pragma Default_Initial_Condition,Pragma Default_Scalar_Storage_Order,Pragma Debug_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id9}@anchor{51}@anchor{gnat_rm/implementation_defined_pragmas pragma-default-initial-condition}@anchor{52}
  @section Pragma Default_Initial_Condition
  
  
*************** For the semantics of this pragma, see th
*** 2896,2902 ****
  @code{Default_Initial_Condition} in the SPARK 2014 Reference Manual, section 7.3.3.
  
  @node Pragma Default_Scalar_Storage_Order,Pragma Default_Storage_Pool,Pragma Default_Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-scalar-storage-order}@anchor{51}
  @section Pragma Default_Scalar_Storage_Order
  
  
--- 2950,2956 ----
  @code{Default_Initial_Condition} in the SPARK 2014 Reference Manual, section 7.3.3.
  
  @node Pragma Default_Scalar_Storage_Order,Pragma Default_Storage_Pool,Pragma Default_Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-scalar-storage-order}@anchor{53}
  @section Pragma Default_Scalar_Storage_Order
  
  
*************** it may significantly degrade the run-tim
*** 2969,2975 ****
  the default scalar storage order ought to be changed only on a local basis.
  
  @node Pragma Default_Storage_Pool,Pragma Depends,Pragma Default_Scalar_Storage_Order,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-storage-pool}@anchor{52}
  @section Pragma Default_Storage_Pool
  
  
--- 3023,3029 ----
  the default scalar storage order ought to be changed only on a local basis.
  
  @node Pragma Default_Storage_Pool,Pragma Depends,Pragma Default_Scalar_Storage_Order,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-storage-pool}@anchor{54}
  @section Pragma Default_Storage_Pool
  
  
*************** versions of Ada as an implementation-def
*** 2986,2992 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Depends,Pragma Detect_Blocking,Pragma Default_Storage_Pool,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id9}@anchor{53}@anchor{gnat_rm/implementation_defined_pragmas pragma-depends}@anchor{54}
  @section Pragma Depends
  
  
--- 3040,3046 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Depends,Pragma Detect_Blocking,Pragma Default_Storage_Pool,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id10}@anchor{55}@anchor{gnat_rm/implementation_defined_pragmas pragma-depends}@anchor{56}
  @section Pragma Depends
  
  
*************** For the semantics of this pragma, see th
*** 3019,3025 ****
  SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Detect_Blocking,Pragma Disable_Atomic_Synchronization,Pragma Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-detect-blocking}@anchor{55}
  @section Pragma Detect_Blocking
  
  
--- 3073,3079 ----
  SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Detect_Blocking,Pragma Disable_Atomic_Synchronization,Pragma Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-detect-blocking}@anchor{57}
  @section Pragma Detect_Blocking
  
  
*************** blocking operations within a protected o
*** 3037,3043 ****
  if that happens.
  
  @node Pragma Disable_Atomic_Synchronization,Pragma Dispatching_Domain,Pragma Detect_Blocking,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-disable-atomic-synchronization}@anchor{56}
  @section Pragma Disable_Atomic_Synchronization
  
  
--- 3091,3097 ----
  if that happens.
  
  @node Pragma Disable_Atomic_Synchronization,Pragma Dispatching_Domain,Pragma Detect_Blocking,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-disable-atomic-synchronization}@anchor{58}
  @section Pragma Disable_Atomic_Synchronization
  
  
*************** till the end of the scope. If an @code{E
*** 3063,3069 ****
  the action applies only to that entity.
  
  @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-dispatching-domain}@anchor{57}
  @section Pragma Dispatching_Domain
  
  
--- 3117,3123 ----
  the action applies only to that entity.
  
  @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-dispatching-domain}@anchor{59}
  @section Pragma Dispatching_Domain
  
  
*************** versions of Ada as an implementation-def
*** 3078,3084 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Effective_Reads,Pragma Effective_Writes,Pragma Dispatching_Domain,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id10}@anchor{58}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-reads}@anchor{59}
  @section Pragma Effective_Reads
  
  
--- 3132,3138 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Effective_Reads,Pragma Effective_Writes,Pragma Dispatching_Domain,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id11}@anchor{5a}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-reads}@anchor{5b}
  @section Pragma Effective_Reads
  
  
*************** For the semantics of this pragma, see th
*** 3092,3098 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Effective_Writes,Pragma Elaboration_Checks,Pragma Effective_Reads,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id11}@anchor{5a}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-writes}@anchor{5b}
  @section Pragma Effective_Writes
  
  
--- 3146,3152 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Effective_Writes,Pragma Elaboration_Checks,Pragma Effective_Reads,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id12}@anchor{5c}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-writes}@anchor{5d}
  @section Pragma Effective_Writes
  
  
*************** For the semantics of this pragma, see th
*** 3106,3112 ****
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Elaboration_Checks,Pragma Eliminate,Pragma Effective_Writes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-elaboration-checks}@anchor{5c}
  @section Pragma Elaboration_Checks
  
  
--- 3160,3166 ----
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Elaboration_Checks,Pragma Eliminate,Pragma Effective_Writes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-elaboration-checks}@anchor{5e}
  @section Pragma Elaboration_Checks
  
  
*************** effect. If the pragma argument is @code{
*** 3143,3149 ****
  is in effect.
  
  @node Pragma Eliminate,Pragma Enable_Atomic_Synchronization,Pragma Elaboration_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-eliminate}@anchor{5d}
  @section Pragma Eliminate
  
  
--- 3197,3203 ----
  is in effect.
  
  @node Pragma Eliminate,Pragma Enable_Atomic_Synchronization,Pragma Elaboration_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-eliminate}@anchor{5f}
  @section Pragma Eliminate
  
  
*************** pragma Eliminate (Q, Proc,
*** 3309,3316 ****
  @end example
  @end quotation
  
! @node Pragma Enable_Atomic_Synchronization,Pragma Export_Function,Pragma Eliminate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-enable-atomic-synchronization}@anchor{5e}
  @section Pragma Enable_Atomic_Synchronization
  
  
--- 3363,3370 ----
  @end example
  @end quotation
  
! @node Pragma Enable_Atomic_Synchronization,Pragma Exceptional_Cases,Pragma Eliminate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-enable-atomic-synchronization}@anchor{60}
  @section Pragma Enable_Atomic_Synchronization
  
  
*************** configuration  pragma, or in a declarati
*** 3337,3344 ****
  till the end of the scope. If an @code{Entity} argument is present,
  the action applies only to that entity.
  
! @node Pragma Export_Function,Pragma Export_Object,Pragma Enable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-function}@anchor{5f}
  @section Pragma Export_Function
  
  
--- 3391,3418 ----
  till the end of the scope. If an @code{Entity} argument is present,
  the action applies only to that entity.
  
! @node Pragma Exceptional_Cases,Pragma Export_Function,Pragma Enable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-exceptional-cases}@anchor{61}
! @section Pragma Exceptional_Cases
! 
! 
! @geindex Exceptional_Cases
! 
! Syntax:
! 
! @example
! pragma Exceptional_Cases (EXCEPTIONAL_CASE_LIST);
! 
! EXCEPTIONAL_CASE_LIST ::= EXCEPTIONAL_CASE @{, EXCEPTIONAL_CASE@}
! EXCEPTIONAL_CASE      ::= exception_choice @{'|' exception_choice@} => CONSEQUENCE
! CONSEQUENCE           ::= Boolean_expression
! @end example
! 
! For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
! 6.1.9.
! 
! @node Pragma Export_Function,Pragma Export_Object,Pragma Exceptional_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-function}@anchor{62}
  @section Pragma Export_Function
  
  
*************** string. In this case, no external name i
*** 3410,3416 ****
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Object,Pragma Export_Procedure,Pragma Export_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-object}@anchor{60}
  @section Pragma Export_Object
  
  
--- 3484,3490 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Object,Pragma Export_Procedure,Pragma Export_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-object}@anchor{63}
  @section Pragma Export_Object
  
  
*************** of portability), but it is not required.
*** 3435,3441 ****
  but otherwise ignored by GNAT.
  
  @node Pragma Export_Procedure,Pragma Export_Valued_Procedure,Pragma Export_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-procedure}@anchor{61}
  @section Pragma Export_Procedure
  
  
--- 3509,3515 ----
  but otherwise ignored by GNAT.
  
  @node Pragma Export_Procedure,Pragma Export_Valued_Procedure,Pragma Export_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-procedure}@anchor{64}
  @section Pragma Export_Procedure
  
  
*************** string. In this case, no external name i
*** 3488,3494 ****
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Valued_Procedure,Pragma Extend_System,Pragma Export_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-valued-procedure}@anchor{62}
  @section Pragma Export_Valued_Procedure
  
  
--- 3562,3568 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Valued_Procedure,Pragma Extend_System,Pragma Export_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-valued-procedure}@anchor{65}
  @section Pragma Export_Valued_Procedure
  
  
*************** string. In this case, no external name i
*** 3546,3552 ****
  still allows the specification of parameter mechanisms.
  
  @node Pragma Extend_System,Pragma Extensions_Allowed,Pragma Export_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-extend-system}@anchor{63}
  @section Pragma Extend_System
  
  
--- 3620,3626 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Extend_System,Pragma Extensions_Allowed,Pragma Export_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-extend-system}@anchor{66}
  @section Pragma Extend_System
  
  
*************** for compiling System units, as explained
*** 3597,3603 ****
  GNAT User’s Guide.
  
  @node Pragma Extensions_Allowed,Pragma Extensions_Visible,Pragma Extend_System,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-allowed}@anchor{64}
  @section Pragma Extensions_Allowed
  
  
--- 3671,3677 ----
  GNAT User’s Guide.
  
  @node Pragma Extensions_Allowed,Pragma Extensions_Visible,Pragma Extend_System,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id13}@anchor{67}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-allowed}@anchor{68}
  @section Pragma Extensions_Allowed
  
  
*************** pragma Extensions_Allowed (On | Off | Al
*** 3613,3889 ****
  
  This configuration pragma enables (via the “On” or “All” argument) or disables
  (via the “Off” argument) the implementation extension mode; the pragma takes
! precedence over the `-gnatX' and `-gnatX0' command switches.
! 
! If an argument of “All” is specified, the latest version of the Ada language
! is implemented (currently Ada 2022) and, in addition, a number
! of GNAT specific extensions are recognized. These extensions are listed
! below. An argument of “On” has the same effect except that only
! some, not all, of the listed extensions are enabled; those extensions
! are identified below.
! 
! 
! @itemize *
! 
! @item 
! Constrained attribute for generic objects
! 
! The @code{Constrained} attribute is permitted for objects of
! generic types. The result indicates if the corresponding actual
! is constrained.
! 
! @item 
! @code{Static} aspect on intrinsic functions
! 
! The Ada 202x @code{Static} aspect can be specified on Intrinsic imported
! functions and the compiler will evaluate some of these intrinsic statically,
! in particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
! 
! An Extensions_Allowed pragma argument of “On” enables this extension.
! 
! @item 
! @code{[]} aggregates
! 
! This new aggregate syntax for arrays and containers is provided under -gnatX
! to experiment and confirm this new language syntax.
! 
! @item 
! Additional @code{when} constructs
! 
! In addition to the @code{exit when CONDITION} control structure, several
! additional constructs are allowed following this format. Including
! @code{return when CONDITION}, @code{goto when CONDITION}, and
! @code{raise [with EXCEPTION_MESSAGE] when CONDITION.}
! 
! Some examples:
! 
! @example
! return Result when Variable > 10;
! 
! raise Program_Error with "Element is null" when Element = null;
! 
! goto End_Of_Subprogram when Variable = -1;
! @end example
! 
! @item 
! Casing on composite values (aka pattern matching)
! 
! The selector for a case statement may be of a composite type, subject to
! some restrictions (described below). Aggregate syntax is used for choices
! of such a case statement; however, in cases where a “normal” aggregate would
! require a discrete value, a discrete subtype may be used instead; box
! notation can also be used to match all values.
! 
! Consider this example:
! 
! @example
! type Rec is record
!    F1, F2 : Integer;
! end record;
! 
! procedure Caser_1 (X : Rec) is
! begin
!    case X is
!       when (F1 => Positive, F2 => Positive) =>
!          Do_This;
!       when (F1 => Natural, F2 => <>) | (F1 => <>, F2 => Natural) =>
!          Do_That;
!       when others =>
!           Do_The_Other_Thing;
!    end case;
! end Caser_1;
! @end example
! 
! If Caser_1 is called and both components of X are positive, then
! Do_This will be called; otherwise, if either component is nonnegative
! then Do_That will be called; otherwise, Do_The_Other_Thing will be called.
! 
! If the set of values that match the choice(s) of an earlier alternative
! overlaps the corresponding set of a later alternative, then the first
! set shall be a proper subset of the second (and the later alternative
! will not be executed if the earlier alternative “matches”). All possible
! values of the composite type shall be covered. The composite type of the
! selector shall be an array or record type that is neither limited
! class-wide. Currently, a “when others =>” case choice is required; it is
! intended that this requirement will be relaxed at some point.
! 
! If a subcomponent’s subtype does not meet certain restrictions, then
! the only value that can be specified for that subcomponent in a case
! choice expression is a “box” component association (which matches all
! possible values for the subcomponent). This restriction applies if
! 
! 
! @itemize -
! 
! @item 
! the component subtype is not a record, array, or discrete type; or
! 
! @item 
! the component subtype is subject to a non-static constraint or
! has a predicate; or
! 
! @item 
! the component type is an enumeration type that is subject to an
! enumeration representation clause; or
! 
! @item 
! the component type is a multidimensional array type or an
! array type with a nonstatic index subtype.
! @end itemize
! 
! Support for casing on arrays (and on records that contain arrays) is
! currently subject to some restrictions. Non-positional
! array aggregates are not supported as (or within) case choices. Likewise
! for array type and subtype names. The current implementation exceeds
! compile-time capacity limits in some annoyingly common scenarios; the
! message generated in such cases is usually “Capacity exceeded in compiling
! case statement with composite selector type”.
! 
! In addition, pattern bindings are supported. This is a mechanism
! for binding a name to a component of a matching value for use within
! an alternative of a case statement. For a component association
! that occurs within a case choice, the expression may be followed by
! “is <identifier>”. In the special case of a “box” component association,
! the identifier may instead be provided within the box. Either of these
! indicates that the given identifer denotes (a constant view of) the matching
! subcomponent of the case selector. Binding is not yet supported for arrays
! or subcomponents thereof.
! 
! Consider this example (which uses type Rec from the previous example):
! 
! @example
! procedure Caser_2 (X : Rec) is
! begin
!    case X is
!       when (F1 => Positive is Abc, F2 => Positive) =>
!          Do_This (Abc)
!       when (F1 => Natural is N1, F2 => <N2>) |
!            (F1 => <N2>, F2 => Natural is N1) =>
!          Do_That (Param_1 => N1, Param_2 => N2);
!       when others =>
!          Do_The_Other_Thing;
!    end case;
! end Caser_2;
! @end example
! 
! This example is the same as the previous one with respect to
! determining whether Do_This, Do_That, or Do_The_Other_Thing will
! be called. But for this version, Do_This takes a parameter and Do_That
! takes two parameters. If Do_This is called, the actual parameter in the
! call will be X.F1.
! 
! If Do_That is called, the situation is more complex because there are two
! choices for that alternative. If Do_That is called because the first choice
! matched (i.e., because X.F1 is nonnegative and either X.F1 or X.F2 is zero
! or negative), then the actual parameters of the call will be (in order)
! X.F1 and X.F2. If Do_That is called because the second choice matched (and
! the first one did not), then the actual parameters will be reversed.
! 
! Within the choice list for single alternative, each choice must
! define the same set of bindings and the component subtypes for
! for a given identifer must all statically match. Currently, the case
! of a binding for a nondiscrete component is not implemented.
! 
! An Extensions_Allowed pragma argument of “On” enables this extension.
! 
! @item 
! Fixed lower bounds for array types and subtypes
! 
! Unconstrained array types and subtypes can be specified with a lower bound
! that is fixed to a certain value, by writing an index range that uses the
! syntax “<lower-bound-expression> .. <>”. This guarantees that all objects
! of the type or subtype will have the specified lower bound.
! 
! For example, a matrix type with fixed lower bounds of zero for each
! dimension can be declared by the following:
! 
! @example
! type Matrix is
!   array (Natural range 0 .. <>, Natural range 0 .. <>) of Integer;
! @end example
! 
! Objects of type Matrix declared with an index constraint must have index
! ranges starting at zero:
! 
! @example
! M1 : Matrix (0 .. 9, 0 .. 19);
! M2 : Matrix (2 .. 11, 3 .. 22);  -- Warning about bounds; will raise CE
! @end example
! 
! Similarly, a subtype of String can be declared that specifies the lower
! bound of objects of that subtype to be 1:
! 
! @quotation
! 
! @example
! subtype String_1 is String (1 .. <>);
! @end example
! @end quotation
! 
! If a string slice is passed to a formal of subtype String_1 in a call to
! a subprogram S, the slice’s bounds will “slide” so that the lower bound
! is 1. Within S, the lower bound of the formal is known to be 1, so, unlike
! a normal unconstrained String formal, there is no need to worry about
! accounting for other possible lower-bound values. Sliding of bounds also
! occurs in other contexts, such as for object declarations with an
! unconstrained subtype with fixed lower bound, as well as in subtype
! conversions.
! 
! Use of this feature increases safety by simplifying code, and can also
! improve the efficiency of indexing operations, since the compiler statically
! knows the lower bound of unconstrained array formals when the formal’s
! subtype has index ranges with static fixed lower bounds.
! 
! An Extensions_Allowed pragma argument of “On” enables this extension.
! 
! @item 
! Prefixed-view notation for calls to primitive subprograms of untagged types
! 
! Since Ada 2005, calls to primitive subprograms of a tagged type that
! have a “prefixed view” (see RM 4.1.3(9.2)) have been allowed to be
! written using the form of a selected_component, with the first actual
! parameter given as the prefix and the name of the subprogram as a
! selector. This prefixed-view notation for calls is extended so as to
! also allow such syntax for calls to primitive subprograms of untagged
! types. The primitives of an untagged type T that have a prefixed view
! are those where the first formal parameter of the subprogram either
! is of type T or is an anonymous access parameter whose designated type
! is T. For a type that has a component that happens to have the same
! simple name as one of the type’s primitive subprograms, where the
! component is visible at the point of a selected_component using that
! name, preference is given to the component in a selected_component
! (as is currently the case for tagged types with such component names).
! 
! An Extensions_Allowed pragma argument of “On” enables this extension.
! 
! @item 
! Expression defaults for generic formal functions
! 
! The declaration of a generic formal function is allowed to specify
! an expression as a default, using the syntax of an expression function.
! 
! Here is an example of this feature:
! 
! @example
! generic
!    type T is private;
!    with function Copy (Item : T) return T is (Item); -- Defaults to Item
! package Stacks is
! 
!    type Stack is limited private;
! 
!    procedure Push (S : in out Stack; X : T); -- Calls Copy on X
  
!    function Pop (S : in out Stack) return T; -- Calls Copy to return item
  
! private
!    -- ...
! end Stacks;
! @end example
! @end itemize
  
  @node Pragma Extensions_Visible,Pragma External,Pragma Extensions_Allowed,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id12}@anchor{65}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-visible}@anchor{66}
  @section Pragma Extensions_Visible
  
  
--- 3687,3705 ----
  
  This configuration pragma enables (via the “On” or “All” argument) or disables
  (via the “Off” argument) the implementation extension mode; the pragma takes
! precedence over the @code{-gnatX} and @code{-gnatX0} command switches.
  
! If an argument of @code{"On"} is specified, the latest version of the Ada language
! is implemented (currently Ada 2022) and, in addition, a curated set of GNAT
! specific extensions are recognized. (See the list here
! @ref{69,,here})
  
! An argument of @code{"All"} has the same effect except that some extra
! experimental extensions are enabled (See the list here
! @ref{6a,,here})
  
  @node Pragma Extensions_Visible,Pragma External,Pragma Extensions_Allowed,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id14}@anchor{6b}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-visible}@anchor{6c}
  @section Pragma Extensions_Visible
  
  
*************** For the semantics of this pragma, see th
*** 3897,3903 ****
  in the SPARK 2014 Reference Manual, section 6.1.7.
  
  @node Pragma External,Pragma External_Name_Casing,Pragma Extensions_Visible,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external}@anchor{67}
  @section Pragma External
  
  
--- 3713,3719 ----
  in the SPARK 2014 Reference Manual, section 6.1.7.
  
  @node Pragma External,Pragma External_Name_Casing,Pragma Extensions_Visible,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external}@anchor{6d}
  @section Pragma External
  
  
*************** used this pragma for exactly the same pu
*** 3918,3924 ****
  @code{Export} before the latter was standardized.
  
  @node Pragma External_Name_Casing,Pragma Fast_Math,Pragma External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external-name-casing}@anchor{68}
  @section Pragma External_Name_Casing
  
  
--- 3734,3740 ----
  @code{Export} before the latter was standardized.
  
  @node Pragma External_Name_Casing,Pragma Fast_Math,Pragma External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external-name-casing}@anchor{6e}
  @section Pragma External_Name_Casing
  
  
*************** pragma External_Name_Casing (Uppercase,
*** 4007,4013 ****
  to enforce the upper casing of all external symbols.
  
  @node Pragma Fast_Math,Pragma Favor_Top_Level,Pragma External_Name_Casing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-fast-math}@anchor{69}
  @section Pragma Fast_Math
  
  
--- 3823,3829 ----
  to enforce the upper casing of all external symbols.
  
  @node Pragma Fast_Math,Pragma Favor_Top_Level,Pragma External_Name_Casing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-fast-math}@anchor{6f}
  @section Pragma Fast_Math
  
  
*************** under control of the pragma, rather than
*** 4036,4042 ****
  @end table
  
  @node Pragma Favor_Top_Level,Pragma Finalize_Storage_Only,Pragma Fast_Math,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id13}@anchor{6a}@anchor{gnat_rm/implementation_defined_pragmas pragma-favor-top-level}@anchor{6b}
  @section Pragma Favor_Top_Level
  
  
--- 3852,3858 ----
  @end table
  
  @node Pragma Favor_Top_Level,Pragma Finalize_Storage_Only,Pragma Fast_Math,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id15}@anchor{70}@anchor{gnat_rm/implementation_defined_pragmas pragma-favor-top-level}@anchor{71}
  @section Pragma Favor_Top_Level
  
  
*************** When this pragma is used, dynamically ge
*** 4055,4061 ****
  targets for nested subprograms. See restriction @code{No_Implicit_Dynamic_Code}.
  
  @node Pragma Finalize_Storage_Only,Pragma Float_Representation,Pragma Favor_Top_Level,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-finalize-storage-only}@anchor{6c}
  @section Pragma Finalize_Storage_Only
  
  
--- 3871,3877 ----
  targets for nested subprograms. See restriction @code{No_Implicit_Dynamic_Code}.
  
  @node Pragma Finalize_Storage_Only,Pragma Float_Representation,Pragma Favor_Top_Level,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-finalize-storage-only}@anchor{72}
  @section Pragma Finalize_Storage_Only
  
  
*************** name. Note that this pragma does not sup
*** 4075,4081 ****
  heap-allocated objects (see pragma @code{No_Heap_Finalization}).
  
  @node Pragma Float_Representation,Pragma Ghost,Pragma Finalize_Storage_Only,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-float-representation}@anchor{6d}
  @section Pragma Float_Representation
  
  
--- 3891,3897 ----
  heap-allocated objects (see pragma @code{No_Heap_Finalization}).
  
  @node Pragma Float_Representation,Pragma Ghost,Pragma Finalize_Storage_Only,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-float-representation}@anchor{73}
  @section Pragma Float_Representation
  
  
*************** No other value of digits is permitted.
*** 4110,4116 ****
  @end itemize
  
  @node Pragma Ghost,Pragma Global,Pragma Float_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id14}@anchor{6e}@anchor{gnat_rm/implementation_defined_pragmas pragma-ghost}@anchor{6f}
  @section Pragma Ghost
  
  
--- 3926,3932 ----
  @end itemize
  
  @node Pragma Ghost,Pragma Global,Pragma Float_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id16}@anchor{74}@anchor{gnat_rm/implementation_defined_pragmas pragma-ghost}@anchor{75}
  @section Pragma Ghost
  
  
*************** For the semantics of this pragma, see th
*** 4124,4130 ****
  2014 Reference Manual, section 6.9.
  
  @node Pragma Global,Pragma Ident,Pragma Ghost,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id15}@anchor{70}@anchor{gnat_rm/implementation_defined_pragmas pragma-global}@anchor{71}
  @section Pragma Global
  
  
--- 3940,3946 ----
  2014 Reference Manual, section 6.9.
  
  @node Pragma Global,Pragma Ident,Pragma Ghost,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id17}@anchor{76}@anchor{gnat_rm/implementation_defined_pragmas pragma-global}@anchor{77}
  @section Pragma Global
  
  
*************** For the semantics of this pragma, see th
*** 4149,4155 ****
  SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Ident,Pragma Ignore_Pragma,Pragma Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ident}@anchor{72}
  @section Pragma Ident
  
  
--- 3965,3971 ----
  SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Ident,Pragma Ignore_Pragma,Pragma Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ident}@anchor{78}
  @section Pragma Ident
  
  
*************** This pragma is identical in effect to pr
*** 4163,4169 ****
  for compatibility with other Ada compilers providing this pragma.
  
  @node Pragma Ignore_Pragma,Pragma Implementation_Defined,Pragma Ident,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ignore-pragma}@anchor{73}
  @section Pragma Ignore_Pragma
  
  
--- 3979,3985 ----
  for compatibility with other Ada compilers providing this pragma.
  
  @node Pragma Ignore_Pragma,Pragma Implementation_Defined,Pragma Ident,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ignore-pragma}@anchor{79}
  @section Pragma Ignore_Pragma
  
  
*************** pragma Ignore_Pragma (pragma_IDENTIFIER)
*** 4176,4189 ****
  This is a configuration pragma
  that takes a single argument that is a simple identifier. Any subsequent
  use of a pragma whose pragma identifier matches this argument will be
! silently ignored. This may be useful when legacy code or code intended
  for compilation with some other compiler contains pragmas that match the
  name, but not the exact implementation, of a GNAT pragma. The use of this
  pragma allows such pragmas to be ignored, which may be useful in CodePeer
  mode, or during porting of legacy code.
  
  @node Pragma Implementation_Defined,Pragma Implemented,Pragma Ignore_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{74}
  @section Pragma Implementation_Defined
  
  
--- 3992,4007 ----
  This is a configuration pragma
  that takes a single argument that is a simple identifier. Any subsequent
  use of a pragma whose pragma identifier matches this argument will be
! silently ignored. Any preceding use of a pragma whose pragma identifier
! matches this argument will be parsed and then ignored.
! This may be useful when legacy code or code intended
  for compilation with some other compiler contains pragmas that match the
  name, but not the exact implementation, of a GNAT pragma. The use of this
  pragma allows such pragmas to be ignored, which may be useful in CodePeer
  mode, or during porting of legacy code.
  
  @node Pragma Implementation_Defined,Pragma Implemented,Pragma Ignore_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{7a}
  @section Pragma Implementation_Defined
  
  
*************** for the purpose of implementing the No_I
*** 4210,4216 ****
  restriction.
  
  @node Pragma Implemented,Pragma Implicit_Packing,Pragma Implementation_Defined,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{75}
  @section Pragma Implemented
  
  
--- 4028,4034 ----
  restriction.
  
  @node Pragma Implemented,Pragma Implicit_Packing,Pragma Implementation_Defined,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{7b}
  @section Pragma Implemented
  
  
*************** By_Any shares the behavior of By_Entry a
*** 4256,4262 ****
  the target’s overriding subprogram kind.
  
  @node Pragma Implicit_Packing,Pragma Import_Function,Pragma Implemented,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{76}
  @section Pragma Implicit_Packing
  
  
--- 4074,4080 ----
  the target’s overriding subprogram kind.
  
  @node Pragma Implicit_Packing,Pragma Import_Function,Pragma Implemented,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{7c}
  @section Pragma Implicit_Packing
  
  
*************** sufficient. The use of pragma Implicit_P
*** 4310,4316 ****
  declaration to compile without an explicit pragma Pack.
  
  @node Pragma Import_Function,Pragma Import_Object,Pragma Implicit_Packing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{77}
  @section Pragma Import_Function
  
  
--- 4128,4134 ----
  declaration to compile without an explicit pragma Pack.
  
  @node Pragma Import_Function,Pragma Import_Object,Pragma Implicit_Packing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{7d}
  @section Pragma Import_Function
  
  
*************** notation.  If the mechanism is not speci
*** 4375,4381 ****
  is used.
  
  @node Pragma Import_Object,Pragma Import_Procedure,Pragma Import_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{78}
  @section Pragma Import_Object
  
  
--- 4193,4199 ----
  is used.
  
  @node Pragma Import_Object,Pragma Import_Procedure,Pragma Import_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{7e}
  @section Pragma Import_Object
  
  
*************** point of view).  @code{size} is syntax c
*** 4401,4407 ****
  GNAT.
  
  @node Pragma Import_Procedure,Pragma Import_Valued_Procedure,Pragma Import_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{79}
  @section Pragma Import_Procedure
  
  
--- 4219,4225 ----
  GNAT.
  
  @node Pragma Import_Procedure,Pragma Import_Valued_Procedure,Pragma Import_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{7f}
  @section Pragma Import_Procedure
  
  
*************** applies to a procedure rather than a fun
*** 4441,4447 ****
  @code{Result_Type} and @code{Result_Mechanism} are not permitted.
  
  @node Pragma Import_Valued_Procedure,Pragma Independent,Pragma Import_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{7a}
  @section Pragma Import_Valued_Procedure
  
  
--- 4259,4265 ----
  @code{Result_Type} and @code{Result_Mechanism} are not permitted.
  
  @node Pragma Import_Valued_Procedure,Pragma Independent,Pragma Import_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{80}
  @section Pragma Import_Valued_Procedure
  
  
*************** pragma Import that specifies the desired
*** 4494,4500 ****
  default convention is Ada, which is almost certainly not what is required.
  
  @node Pragma Independent,Pragma Independent_Components,Pragma Import_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{7b}
  @section Pragma Independent
  
  
--- 4312,4318 ----
  default convention is Ada, which is almost certainly not what is required.
  
  @node Pragma Independent,Pragma Independent_Components,Pragma Import_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{81}
  @section Pragma Independent
  
  
*************** constraints on the representation of the
*** 4516,4522 ****
  tight packing).
  
  @node Pragma Independent_Components,Pragma Initial_Condition,Pragma Independent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{7c}
  @section Pragma Independent_Components
  
  
--- 4334,4340 ----
  tight packing).
  
  @node Pragma Independent_Components,Pragma Initial_Condition,Pragma Independent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{82}
  @section Pragma Independent_Components
  
  
*************** constraints on the representation of the
*** 4537,4543 ****
  tight packing).
  
  @node Pragma Initial_Condition,Pragma Initialize_Scalars,Pragma Independent_Components,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id16}@anchor{7d}@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{7e}
  @section Pragma Initial_Condition
  
  
--- 4355,4361 ----
  tight packing).
  
  @node Pragma Initial_Condition,Pragma Initialize_Scalars,Pragma Independent_Components,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id18}@anchor{83}@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{84}
  @section Pragma Initial_Condition
  
  
*************** For the semantics of this pragma, see th
*** 4551,4557 ****
  in the SPARK 2014 Reference Manual, section 7.1.6.
  
  @node Pragma Initialize_Scalars,Pragma Initializes,Pragma Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{7f}
  @section Pragma Initialize_Scalars
  
  
--- 4369,4375 ----
  in the SPARK 2014 Reference Manual, section 7.1.6.
  
  @node Pragma Initialize_Scalars,Pragma Initializes,Pragma Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{85}
  @section Pragma Initialize_Scalars
  
  
*************** good idea to turn on stack checking (see
*** 4660,4666 ****
  GNAT User’s Guide) when using this pragma.
  
  @node Pragma Initializes,Pragma Inline_Always,Pragma Initialize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id17}@anchor{80}@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{81}
  @section Pragma Initializes
  
  
--- 4478,4484 ----
  GNAT User’s Guide) when using this pragma.
  
  @node Pragma Initializes,Pragma Inline_Always,Pragma Initialize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id19}@anchor{86}@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{87}
  @section Pragma Initializes
  
  
*************** For the semantics of this pragma, see th
*** 4687,4693 ****
  SPARK 2014 Reference Manual, section 7.1.5.
  
  @node Pragma Inline_Always,Pragma Inline_Generic,Pragma Initializes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id18}@anchor{82}@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{83}
  @section Pragma Inline_Always
  
  
--- 4505,4511 ----
  SPARK 2014 Reference Manual, section 7.1.5.
  
  @node Pragma Inline_Always,Pragma Inline_Generic,Pragma Initializes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id20}@anchor{88}@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{89}
  @section Pragma Inline_Always
  
  
*************** apply this pragma to a primitive operati
*** 4706,4712 ****
  restrictions, the compiler is allowed to remove the out-of-line body of @code{NAME}.
  
  @node Pragma Inline_Generic,Pragma Interface,Pragma Inline_Always,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{84}
  @section Pragma Inline_Generic
  
  
--- 4524,4530 ----
  restrictions, the compiler is allowed to remove the out-of-line body of @code{NAME}.
  
  @node Pragma Inline_Generic,Pragma Interface,Pragma Inline_Always,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{8a}
  @section Pragma Inline_Generic
  
  
*************** than to check that the given names are a
*** 4724,4730 ****
  generic instances.
  
  @node Pragma Interface,Pragma Interface_Name,Pragma Inline_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{85}
  @section Pragma Interface
  
  
--- 4542,4548 ----
  generic instances.
  
  @node Pragma Interface,Pragma Interface_Name,Pragma Inline_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{8b}
  @section Pragma Interface
  
  
*************** maintaining Ada 83/Ada 95 compatibility
*** 4751,4757 ****
  Ada 83 compilers.
  
  @node Pragma Interface_Name,Pragma Interrupt_Handler,Pragma Interface,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{86}
  @section Pragma Interface_Name
  
  
--- 4569,4575 ----
  Ada 83 compilers.
  
  @node Pragma Interface_Name,Pragma Interrupt_Handler,Pragma Interface,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{8c}
  @section Pragma Interface_Name
  
  
*************** for an interfaced subprogram, and is pro
*** 4770,4776 ****
  least one of @code{External_Name} or @code{Link_Name}.
  
  @node Pragma Interrupt_Handler,Pragma Interrupt_State,Pragma Interface_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{87}
  @section Pragma Interrupt_Handler
  
  
--- 4588,4594 ----
  least one of @code{External_Name} or @code{Link_Name}.
  
  @node Pragma Interrupt_Handler,Pragma Interrupt_State,Pragma Interface_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{8d}
  @section Pragma Interrupt_Handler
  
  
*************** This program unit pragma is supported fo
*** 4784,4790 ****
  as described in Annex C of the Ada Reference Manual.
  
  @node Pragma Interrupt_State,Pragma Invariant,Pragma Interrupt_Handler,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{88}
  @section Pragma Interrupt_State
  
  
--- 4602,4608 ----
  as described in Annex C of the Ada Reference Manual.
  
  @node Pragma Interrupt_State,Pragma Invariant,Pragma Interrupt_Handler,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{8e}
  @section Pragma Interrupt_State
  
  
*************** with an application’s runtime behavior
*** 4870,4876 ****
  and in the case of the signal used to implement the @code{abort} statement.
  
  @node Pragma Invariant,Pragma Keep_Names,Pragma Interrupt_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id19}@anchor{89}@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{8a}
  @section Pragma Invariant
  
  
--- 4688,4694 ----
  and in the case of the signal used to implement the @code{abort} statement.
  
  @node Pragma Invariant,Pragma Keep_Names,Pragma Interrupt_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id21}@anchor{8f}@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{90}
  @section Pragma Invariant
  
  
*************** For further details on the use of this p
*** 4909,4915 ****
  of the Type_Invariant aspect.
  
  @node Pragma Keep_Names,Pragma License,Pragma Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{8b}
  @section Pragma Keep_Names
  
  
--- 4727,4733 ----
  of the Type_Invariant aspect.
  
  @node Pragma Keep_Names,Pragma License,Pragma Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{91}
  @section Pragma Keep_Names
  
  
*************** use a @code{Discard_Names} pragma in the
*** 4929,4935 ****
  want to retain the names for specific enumeration types.
  
  @node Pragma License,Pragma Link_With,Pragma Keep_Names,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{8c}
  @section Pragma License
  
  
--- 4747,4753 ----
  want to retain the names for specific enumeration types.
  
  @node Pragma License,Pragma Link_With,Pragma Keep_Names,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{92}
  @section Pragma License
  
  
*************** GPL, but no warning for @code{GNAT.Socke
*** 5024,5030 ****
  run time, and is therefore licensed under the modified GPL.
  
  @node Pragma Link_With,Pragma Linker_Alias,Pragma License,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{8d}
  @section Pragma Link_With
  
  
--- 4842,4848 ----
  run time, and is therefore licensed under the modified GPL.
  
  @node Pragma Link_With,Pragma Linker_Alias,Pragma License,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{93}
  @section Pragma Link_With
  
  
*************** separate arguments to the linker. In add
*** 5048,5054 ****
  multiple arguments, with the same effect as successive pragmas.
  
  @node Pragma Linker_Alias,Pragma Linker_Constructor,Pragma Link_With,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{8e}
  @section Pragma Linker_Alias
  
  
--- 4866,4872 ----
  multiple arguments, with the same effect as successive pragmas.
  
  @node Pragma Linker_Alias,Pragma Linker_Constructor,Pragma Link_With,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{94}
  @section Pragma Linker_Alias
  
  
*************** end p;
*** 5089,5095 ****
  @end example
  
  @node Pragma Linker_Constructor,Pragma Linker_Destructor,Pragma Linker_Alias,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{8f}
  @section Pragma Linker_Constructor
  
  
--- 4907,4913 ----
  @end example
  
  @node Pragma Linker_Constructor,Pragma Linker_Destructor,Pragma Linker_Alias,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{95}
  @section Pragma Linker_Constructor
  
  
*************** listed above. Where possible, the use of
*** 5119,5125 ****
  to the use of this pragma.
  
  @node Pragma Linker_Destructor,Pragma Linker_Section,Pragma Linker_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{90}
  @section Pragma Linker_Destructor
  
  
--- 4937,4943 ----
  to the use of this pragma.
  
  @node Pragma Linker_Destructor,Pragma Linker_Section,Pragma Linker_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{96}
  @section Pragma Linker_Destructor
  
  
*************** See @code{pragma Linker_Constructor} for
*** 5142,5148 ****
  because of these specific contexts.
  
  @node Pragma Linker_Section,Pragma Lock_Free,Pragma Linker_Destructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id20}@anchor{91}@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{92}
  @section Pragma Linker_Section
  
  
--- 4960,4966 ----
  because of these specific contexts.
  
  @node Pragma Linker_Section,Pragma Lock_Free,Pragma Linker_Destructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id22}@anchor{97}@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{98}
  @section Pragma Linker_Section
  
  
*************** end IO_Card;
*** 5216,5222 ****
  @end example
  
  @node Pragma Lock_Free,Pragma Loop_Invariant,Pragma Linker_Section,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id21}@anchor{93}@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{94}
  @section Pragma Lock_Free
  
  
--- 5034,5040 ----
  @end example
  
  @node Pragma Lock_Free,Pragma Loop_Invariant,Pragma Linker_Section,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id23}@anchor{99}@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{9a}
  @section Pragma Lock_Free
  
  
*************** Ada RM D.3) are not performed when a pro
*** 5274,5280 ****
  unit is executed.
  
  @node Pragma Loop_Invariant,Pragma Loop_Optimize,Pragma Lock_Free,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{95}
  @section Pragma Loop_Invariant
  
  
--- 5092,5098 ----
  unit is executed.
  
  @node Pragma Loop_Invariant,Pragma Loop_Optimize,Pragma Lock_Free,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{9b}
  @section Pragma Loop_Invariant
  
  
*************** attribute can only be used within the ex
*** 5307,5313 ****
  pragma. For full details, see documentation of attribute @code{Loop_Entry}.
  
  @node Pragma Loop_Optimize,Pragma Loop_Variant,Pragma Loop_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{96}
  @section Pragma Loop_Optimize
  
  
--- 5125,5131 ----
  pragma. For full details, see documentation of attribute @code{Loop_Entry}.
  
  @node Pragma Loop_Optimize,Pragma Loop_Variant,Pragma Loop_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{9c}
  @section Pragma Loop_Optimize
  
  
*************** compiler in order to enable the relevant
*** 5369,5375 ****
  vectorization.
  
  @node Pragma Loop_Variant,Pragma Machine_Attribute,Pragma Loop_Optimize,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{97}
  @section Pragma Loop_Variant
  
  
--- 5187,5193 ----
  vectorization.
  
  @node Pragma Loop_Variant,Pragma Machine_Attribute,Pragma Loop_Optimize,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{9d}
  @section Pragma Loop_Variant
  
  
*************** The @code{Loop_Entry} attribute may be u
*** 5416,5422 ****
  @code{Loop_Variant} pragma to refer to values on entry to the loop.
  
  @node Pragma Machine_Attribute,Pragma Main,Pragma Loop_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{98}
  @section Pragma Machine_Attribute
  
  
--- 5234,5240 ----
  @code{Loop_Variant} pragma to refer to values on entry to the loop.
  
  @node Pragma Machine_Attribute,Pragma Main,Pragma Loop_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{9e}
  @section Pragma Machine_Attribute
  
  
*************** which may make this pragma unusable for
*** 5442,5448 ****
  For further information see @cite{GNU Compiler Collection (GCC) Internals}.
  
  @node Pragma Main,Pragma Main_Storage,Pragma Machine_Attribute,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{99}
  @section Pragma Main
  
  
--- 5260,5266 ----
  For further information see @cite{GNU Compiler Collection (GCC) Internals}.
  
  @node Pragma Main,Pragma Main_Storage,Pragma Machine_Attribute,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{9f}
  @section Pragma Main
  
  
*************** This pragma is provided for compatibilit
*** 5462,5468 ****
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Main_Storage,Pragma Max_Queue_Length,Pragma Main,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{9a}
  @section Pragma Main_Storage
  
  
--- 5280,5286 ----
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Main_Storage,Pragma Max_Queue_Length,Pragma Main,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{a0}
  @section Pragma Main_Storage
  
  
*************** This pragma is provided for compatibilit
*** 5481,5487 ****
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Max_Queue_Length,Pragma No_Body,Pragma Main_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id22}@anchor{9b}@anchor{gnat_rm/implementation_defined_pragmas pragma-max-queue-length}@anchor{9c}
  @section Pragma Max_Queue_Length
  
  
--- 5299,5305 ----
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Max_Queue_Length,Pragma No_Body,Pragma Main_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id24}@anchor{a1}@anchor{gnat_rm/implementation_defined_pragmas pragma-max-queue-length}@anchor{a2}
  @section Pragma Max_Queue_Length
  
  
*************** entry.
*** 5499,5505 ****
  A value of -1 represents no additional restriction on queue length.
  
  @node Pragma No_Body,Pragma No_Caching,Pragma Max_Queue_Length,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{9d}
  @section Pragma No_Body
  
  
--- 5317,5323 ----
  A value of -1 represents no additional restriction on queue length.
  
  @node Pragma No_Body,Pragma No_Caching,Pragma Max_Queue_Length,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{a3}
  @section Pragma No_Body
  
  
*************** dummy body with a No_Body pragma ensures
*** 5522,5528 ****
  earlier versions of the package body.
  
  @node Pragma No_Caching,Pragma No_Component_Reordering,Pragma No_Body,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id23}@anchor{9e}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-caching}@anchor{9f}
  @section Pragma No_Caching
  
  
--- 5340,5346 ----
  earlier versions of the package body.
  
  @node Pragma No_Caching,Pragma No_Component_Reordering,Pragma No_Body,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id25}@anchor{a4}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-caching}@anchor{a5}
  @section Pragma No_Caching
  
  
*************** For the semantics of this pragma, see th
*** 5536,5542 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma No_Component_Reordering,Pragma No_Elaboration_Code_All,Pragma No_Caching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-component-reordering}@anchor{a0}
  @section Pragma No_Component_Reordering
  
  
--- 5354,5360 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma No_Component_Reordering,Pragma No_Elaboration_Code_All,Pragma No_Caching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-component-reordering}@anchor{a6}
  @section Pragma No_Component_Reordering
  
  
*************** declared in units to which the pragma ap
*** 5555,5561 ****
  that this pragma be used consistently within a partition.
  
  @node Pragma No_Elaboration_Code_All,Pragma No_Heap_Finalization,Pragma No_Component_Reordering,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id24}@anchor{a1}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{a2}
  @section Pragma No_Elaboration_Code_All
  
  
--- 5373,5379 ----
  that this pragma be used consistently within a partition.
  
  @node Pragma No_Elaboration_Code_All,Pragma No_Heap_Finalization,Pragma No_Component_Reordering,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id26}@anchor{a7}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{a8}
  @section Pragma No_Elaboration_Code_All
  
  
*************** current unit, it must also have the No_E
*** 5574,5580 ****
  It may be applied to package or subprogram specs or their generic versions.
  
  @node Pragma No_Heap_Finalization,Pragma No_Inline,Pragma No_Elaboration_Code_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-heap-finalization}@anchor{a3}
  @section Pragma No_Heap_Finalization
  
  
--- 5392,5398 ----
  It may be applied to package or subprogram specs or their generic versions.
  
  @node Pragma No_Heap_Finalization,Pragma No_Inline,Pragma No_Elaboration_Code_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-heap-finalization}@anchor{a9}
  @section Pragma No_Heap_Finalization
  
  
*************** lose its @code{No_Heap_Finalization} pra
*** 5606,5612 ****
  appear at the library level.
  
  @node Pragma No_Inline,Pragma No_Return,Pragma No_Heap_Finalization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id25}@anchor{a4}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{a5}
  @section Pragma No_Inline
  
  
--- 5424,5430 ----
  appear at the library level.
  
  @node Pragma No_Inline,Pragma No_Return,Pragma No_Heap_Finalization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id27}@anchor{aa}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{ab}
  @section Pragma No_Inline
  
  
*************** in particular it is not subject to the u
*** 5624,5630 ****
  pragma @code{Inline_Always} for the same @code{NAME}.
  
  @node Pragma No_Return,Pragma No_Strict_Aliasing,Pragma No_Inline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{a6}
  @section Pragma No_Return
  
  
--- 5442,5448 ----
  pragma @code{Inline_Always} for the same @code{NAME}.
  
  @node Pragma No_Return,Pragma No_Strict_Aliasing,Pragma No_Inline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{ac}
  @section Pragma No_Return
  
  
*************** available in all earlier versions of Ada
*** 5651,5657 ****
  pragma.
  
  @node Pragma No_Strict_Aliasing,Pragma No_Tagged_Streams,Pragma No_Return,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{a7}
  @section Pragma No_Strict_Aliasing
  
  
--- 5469,5475 ----
  pragma.
  
  @node Pragma No_Strict_Aliasing,Pragma No_Tagged_Streams,Pragma No_Return,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{ad}
  @section Pragma No_Strict_Aliasing
  
  
*************** in the @cite{GNAT User’s Guide}.
*** 5673,5679 ****
  This pragma currently has no effects on access to unconstrained array types.
  
  @node Pragma No_Tagged_Streams,Pragma Normalize_Scalars,Pragma No_Strict_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id26}@anchor{a8}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{a9}
  @section Pragma No_Tagged_Streams
  
  
--- 5491,5497 ----
  This pragma currently has no effects on access to unconstrained array types.
  
  @node Pragma No_Tagged_Streams,Pragma Normalize_Scalars,Pragma No_Strict_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id28}@anchor{ae}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{af}
  @section Pragma No_Tagged_Streams
  
  
*************** with empty strings. This is useful to av
*** 5712,5718 ****
  level but has a negative impact on the debuggability of tagged types.
  
  @node Pragma Normalize_Scalars,Pragma Obsolescent,Pragma No_Tagged_Streams,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{aa}
  @section Pragma Normalize_Scalars
  
  
--- 5530,5536 ----
  level but has a negative impact on the debuggability of tagged types.
  
  @node Pragma Normalize_Scalars,Pragma Obsolescent,Pragma No_Tagged_Streams,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{b0}
  @section Pragma Normalize_Scalars
  
  
*************** will always generate an invalid value if
*** 5794,5800 ****
  @end table
  
  @node Pragma Obsolescent,Pragma Optimize_Alignment,Pragma Normalize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id27}@anchor{ab}@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{ac}
  @section Pragma Obsolescent
  
  
--- 5612,5618 ----
  @end table
  
  @node Pragma Obsolescent,Pragma Optimize_Alignment,Pragma Normalize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id29}@anchor{b1}@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{b2}
  @section Pragma Obsolescent
  
  
*************** So if you specify @code{Entity =>} for t
*** 5890,5896 ****
  argument is present, it must be preceded by @code{Message =>}.
  
  @node Pragma Optimize_Alignment,Pragma Ordered,Pragma Obsolescent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{ad}
  @section Pragma Optimize_Alignment
  
  
--- 5708,5714 ----
  argument is present, it must be preceded by @code{Message =>}.
  
  @node Pragma Optimize_Alignment,Pragma Ordered,Pragma Obsolescent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{b3}
  @section Pragma Optimize_Alignment
  
  
*************** latter are compiled by default in pragma
*** 5976,5982 ****
  pragma appears at the start of the file.
  
  @node Pragma Ordered,Pragma Overflow_Mode,Pragma Optimize_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{ae}
  @section Pragma Ordered
  
  
--- 5794,5800 ----
  pragma appears at the start of the file.
  
  @node Pragma Ordered,Pragma Overflow_Mode,Pragma Optimize_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{b4}
  @section Pragma Ordered
  
  
*************** For additional information please refer
*** 6068,6074 ****
  `-gnatw.u' switch in the GNAT User’s Guide.
  
  @node Pragma Overflow_Mode,Pragma Overriding_Renamings,Pragma Ordered,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{af}
  @section Pragma Overflow_Mode
  
  
--- 5886,5892 ----
  `-gnatw.u' switch in the GNAT User’s Guide.
  
  @node Pragma Overflow_Mode,Pragma Overriding_Renamings,Pragma Ordered,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{b5}
  @section Pragma Overflow_Mode
  
  
*************** The pragma @code{Unsuppress (Overflow_Ch
*** 6107,6113 ****
  overflow checking, but does not affect the overflow mode.
  
  @node Pragma Overriding_Renamings,Pragma Part_Of,Pragma Overflow_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{b0}
  @section Pragma Overriding_Renamings
  
  
--- 5925,5931 ----
  overflow checking, but does not affect the overflow mode.
  
  @node Pragma Overriding_Renamings,Pragma Part_Of,Pragma Overflow_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{b6}
  @section Pragma Overriding_Renamings
  
  
*************** RM 8.3 (15) stipulates that an overridde
*** 6142,6148 ****
  declaration of the overriding operation.
  
  @node Pragma Part_Of,Pragma Partition_Elaboration_Policy,Pragma Overriding_Renamings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id28}@anchor{b1}@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{b2}
  @section Pragma Part_Of
  
  
--- 5960,5966 ----
  declaration of the overriding operation.
  
  @node Pragma Part_Of,Pragma Partition_Elaboration_Policy,Pragma Overriding_Renamings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id30}@anchor{b7}@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{b8}
  @section Pragma Part_Of
  
  
*************** For the semantics of this pragma, see th
*** 6158,6164 ****
  SPARK 2014 Reference Manual, section 7.2.6.
  
  @node Pragma Partition_Elaboration_Policy,Pragma Passive,Pragma Part_Of,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{b3}
  @section Pragma Partition_Elaboration_Policy
  
  
--- 5976,5982 ----
  SPARK 2014 Reference Manual, section 7.2.6.
  
  @node Pragma Partition_Elaboration_Policy,Pragma Passive,Pragma Part_Of,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{b9}
  @section Pragma Partition_Elaboration_Policy
  
  
*************** versions of Ada as an implementation-def
*** 6175,6181 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Passive,Pragma Persistent_BSS,Pragma Partition_Elaboration_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{b4}
  @section Pragma Passive
  
  
--- 5993,5999 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Passive,Pragma Persistent_BSS,Pragma Partition_Elaboration_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{ba}
  @section Pragma Passive
  
  
*************** For more information on the subject of p
*** 6199,6205 ****
  ‘Passive Task Optimization’ in the GNAT Users Guide.
  
  @node Pragma Persistent_BSS,Pragma Post,Pragma Passive,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id29}@anchor{b5}@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{b6}
  @section Pragma Persistent_BSS
  
  
--- 6017,6023 ----
  ‘Passive Task Optimization’ in the GNAT Users Guide.
  
  @node Pragma Persistent_BSS,Pragma Post,Pragma Passive,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id31}@anchor{bb}@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{bc}
  @section Pragma Persistent_BSS
  
  
*************** If this pragma is used on a target where
*** 6230,6236 ****
  then the pragma will be ignored. See also @code{pragma Linker_Section}.
  
  @node Pragma Post,Pragma Postcondition,Pragma Persistent_BSS,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{b7}
  @section Pragma Post
  
  
--- 6048,6054 ----
  then the pragma will be ignored. See also @code{pragma Linker_Section}.
  
  @node Pragma Post,Pragma Postcondition,Pragma Persistent_BSS,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{bd}
  @section Pragma Post
  
  
*************** appear at the start of the declarations
*** 6255,6261 ****
  (preceded only by other pragmas).
  
  @node Pragma Postcondition,Pragma Post_Class,Pragma Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{b8}
  @section Pragma Postcondition
  
  
--- 6073,6079 ----
  (preceded only by other pragmas).
  
  @node Pragma Postcondition,Pragma Post_Class,Pragma Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{be}
  @section Pragma Postcondition
  
  
*************** Ada 2012, and has been retained in its o
*** 6420,6426 ****
  compatibility purposes.
  
  @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{b9}
  @section Pragma Post_Class
  
  
--- 6238,6244 ----
  compatibility purposes.
  
  @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{bf}
  @section Pragma Post_Class
  
  
*************** policy that controls this pragma is @cod
*** 6455,6461 ****
  @code{Post_Class}.
  
  @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{ba}
  @section Pragma Pre
  
  
--- 6273,6279 ----
  @code{Post_Class}.
  
  @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{c0}
  @section Pragma Pre
  
  
*************** appear at the start of the declarations
*** 6480,6486 ****
  (preceded only by other pragmas).
  
  @node Pragma Precondition,Pragma Predicate,Pragma Pre,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{bb}
  @section Pragma Precondition
  
  
--- 6298,6304 ----
  (preceded only by other pragmas).
  
  @node Pragma Precondition,Pragma Predicate,Pragma Pre,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{c1}
  @section Pragma Precondition
  
  
*************** Ada 2012, and has been retained in its o
*** 6539,6545 ****
  compatibility purposes.
  
  @node Pragma Predicate,Pragma Predicate_Failure,Pragma Precondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id30}@anchor{bc}@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{bd}
  @section Pragma Predicate
  
  
--- 6357,6363 ----
  compatibility purposes.
  
  @node Pragma Predicate,Pragma Predicate_Failure,Pragma Precondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id32}@anchor{c2}@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{c3}
  @section Pragma Predicate
  
  
*************** defined for subtype B). When following t
*** 6593,6599 ****
  use of predicates should be avoided.
  
  @node Pragma Predicate_Failure,Pragma Preelaborable_Initialization,Pragma Predicate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-predicate-failure}@anchor{be}
  @section Pragma Predicate_Failure
  
  
--- 6411,6417 ----
  use of predicates should be avoided.
  
  @node Pragma Predicate_Failure,Pragma Preelaborable_Initialization,Pragma Predicate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-predicate-failure}@anchor{c4}
  @section Pragma Predicate_Failure
  
  
*************** the language-defined
*** 6610,6616 ****
  @code{Predicate_Failure} aspect, and shares its restrictions and semantics.
  
  @node Pragma Preelaborable_Initialization,Pragma Prefix_Exception_Messages,Pragma Predicate_Failure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{bf}
  @section Pragma Preelaborable_Initialization
  
  
--- 6428,6434 ----
  @code{Predicate_Failure} aspect, and shares its restrictions and semantics.
  
  @node Pragma Preelaborable_Initialization,Pragma Prefix_Exception_Messages,Pragma Predicate_Failure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{c5}
  @section Pragma Preelaborable_Initialization
  
  
*************** versions of Ada as an implementation-def
*** 6625,6631 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Prefix_Exception_Messages,Pragma Pre_Class,Pragma Preelaborable_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{c0}
  @section Pragma Prefix_Exception_Messages
  
  
--- 6443,6449 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Prefix_Exception_Messages,Pragma Pre_Class,Pragma Preelaborable_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{c6}
  @section Pragma Prefix_Exception_Messages
  
  
*************** prefixing in this case, you can always c
*** 6656,6662 ****
  @code{GNAT.Source_Info.Enclosing_Entity} and prepend the string manually.
  
  @node Pragma Pre_Class,Pragma Priority_Specific_Dispatching,Pragma Prefix_Exception_Messages,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{c1}
  @section Pragma Pre_Class
  
  
--- 6474,6480 ----
  @code{GNAT.Source_Info.Enclosing_Entity} and prepend the string manually.
  
  @node Pragma Pre_Class,Pragma Priority_Specific_Dispatching,Pragma Prefix_Exception_Messages,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{c7}
  @section Pragma Pre_Class
  
  
*************** policy that controls this pragma is @cod
*** 6691,6697 ****
  @code{Pre_Class}.
  
  @node Pragma Priority_Specific_Dispatching,Pragma Profile,Pragma Pre_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{c2}
  @section Pragma Priority_Specific_Dispatching
  
  
--- 6509,6515 ----
  @code{Pre_Class}.
  
  @node Pragma Priority_Specific_Dispatching,Pragma Profile,Pragma Pre_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{c8}
  @section Pragma Priority_Specific_Dispatching
  
  
*************** versions of Ada as an implementation-def
*** 6715,6721 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Profile,Pragma Profile_Warnings,Pragma Priority_Specific_Dispatching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{c3}
  @section Pragma Profile
  
  
--- 6533,6539 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Profile,Pragma Profile_Warnings,Pragma Priority_Specific_Dispatching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{c9}
  @section Pragma Profile
  
  
*************** conforming Ada constructs.  The profile
*** 6994,7000 ****
  @end itemize
  
  @node Pragma Profile_Warnings,Pragma Propagate_Exceptions,Pragma Profile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{c4}
  @section Pragma Profile_Warnings
  
  
--- 6812,6818 ----
  @end itemize
  
  @node Pragma Profile_Warnings,Pragma Propagate_Exceptions,Pragma Profile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{ca}
  @section Pragma Profile_Warnings
  
  
*************** violations of the profile generate warni
*** 7012,7018 ****
  of error messages.
  
  @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{c5}
  @section Pragma Propagate_Exceptions
  
  
--- 6830,6836 ----
  of error messages.
  
  @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{cb}
  @section Pragma Propagate_Exceptions
  
  
*************** purposes. It used to be used in connecti
*** 7031,7037 ****
  a now-obsolete mechanism for implementation of exceptions.
  
  @node Pragma Provide_Shift_Operators,Pragma Psect_Object,Pragma Propagate_Exceptions,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{c6}
  @section Pragma Provide_Shift_Operators
  
  
--- 6849,6855 ----
  a now-obsolete mechanism for implementation of exceptions.
  
  @node Pragma Provide_Shift_Operators,Pragma Psect_Object,Pragma Propagate_Exceptions,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{cc}
  @section Pragma Provide_Shift_Operators
  
  
*************** including the function declarations for
*** 7051,7057 ****
  with the pragma Import (Intrinsic, …) statements.
  
  @node Pragma Psect_Object,Pragma Pure_Function,Pragma Provide_Shift_Operators,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{c7}
  @section Pragma Psect_Object
  
  
--- 6869,6875 ----
  with the pragma Import (Intrinsic, …) statements.
  
  @node Pragma Psect_Object,Pragma Pure_Function,Pragma Provide_Shift_Operators,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{cd}
  @section Pragma Psect_Object
  
  
*************** EXTERNAL_SYMBOL ::=
*** 7071,7077 ****
  This pragma is identical in effect to pragma @code{Common_Object}.
  
  @node Pragma Pure_Function,Pragma Rational,Pragma Psect_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id31}@anchor{c8}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{c9}
  @section Pragma Pure_Function
  
  
--- 6889,6895 ----
  This pragma is identical in effect to pragma @code{Common_Object}.
  
  @node Pragma Pure_Function,Pragma Rational,Pragma Psect_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id33}@anchor{ce}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{cf}
  @section Pragma Pure_Function
  
  
*************** unit is not a Pure unit in the categoriz
*** 7133,7139 ****
  thus marked is free to @code{with} non-pure units.
  
  @node Pragma Rational,Pragma Ravenscar,Pragma Pure_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{ca}
  @section Pragma Rational
  
  
--- 6951,6957 ----
  thus marked is free to @code{with} non-pure units.
  
  @node Pragma Rational,Pragma Ravenscar,Pragma Pure_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{d0}
  @section Pragma Rational
  
  
*************** pragma Profile (Rational);
*** 7151,7157 ****
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{cb}
  @section Pragma Ravenscar
  
  
--- 6969,6975 ----
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{d1}
  @section Pragma Ravenscar
  
  
*************** pragma Profile (Ravenscar);
*** 7171,7177 ****
  which is the preferred method of setting the @code{Ravenscar} profile.
  
  @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id32}@anchor{cc}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{cd}
  @section Pragma Refined_Depends
  
  
--- 6989,6995 ----
  which is the preferred method of setting the @code{Ravenscar} profile.
  
  @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id34}@anchor{d2}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{d3}
  @section Pragma Refined_Depends
  
  
*************** For the semantics of this pragma, see th
*** 7204,7210 ****
  the SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id33}@anchor{ce}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{cf}
  @section Pragma Refined_Global
  
  
--- 7022,7028 ----
  the SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d4}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{d5}
  @section Pragma Refined_Global
  
  
*************** For the semantics of this pragma, see th
*** 7229,7235 ****
  the SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id34}@anchor{d0}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{d1}
  @section Pragma Refined_Post
  
  
--- 7047,7053 ----
  the SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id36}@anchor{d6}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{d7}
  @section Pragma Refined_Post
  
  
*************** For the semantics of this pragma, see th
*** 7243,7249 ****
  the SPARK 2014 Reference Manual, section 7.2.7.
  
  @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d2}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{d3}
  @section Pragma Refined_State
  
  
--- 7061,7067 ----
  the SPARK 2014 Reference Manual, section 7.2.7.
  
  @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id37}@anchor{d8}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{d9}
  @section Pragma Refined_State
  
  
*************** For the semantics of this pragma, see th
*** 7269,7275 ****
  the SPARK 2014 Reference Manual, section 7.2.2.
  
  @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{d4}
  @section Pragma Relative_Deadline
  
  
--- 7087,7093 ----
  the SPARK 2014 Reference Manual, section 7.2.2.
  
  @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{da}
  @section Pragma Relative_Deadline
  
  
*************** versions of Ada as an implementation-def
*** 7284,7290 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Remote_Access_Type,Pragma Rename_Pragma,Pragma Relative_Deadline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id36}@anchor{d5}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{d6}
  @section Pragma Remote_Access_Type
  
  
--- 7102,7108 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Remote_Access_Type,Pragma Rename_Pragma,Pragma Relative_Deadline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{db}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{dc}
  @section Pragma Remote_Access_Type
  
  
*************** pertaining to remote access to class-wid
*** 7310,7316 ****
  actual type must be a remote access to class-wide type.
  
  @node Pragma Rename_Pragma,Pragma Restricted_Run_Time,Pragma Remote_Access_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rename-pragma}@anchor{d7}
  @section Pragma Rename_Pragma
  
  
--- 7128,7134 ----
  actual type must be a remote access to class-wide type.
  
  @node Pragma Rename_Pragma,Pragma Restricted_Run_Time,Pragma Remote_Access_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rename-pragma}@anchor{dd}
  @section Pragma Rename_Pragma
  
  
*************** Pragma Inline_Only will not necessarily
*** 7349,7355 ****
  compiler; it’s up to you to make sure the semantics are close enough.
  
  @node Pragma Restricted_Run_Time,Pragma Restriction_Warnings,Pragma Rename_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{d8}
  @section Pragma Restricted_Run_Time
  
  
--- 7167,7173 ----
  compiler; it’s up to you to make sure the semantics are close enough.
  
  @node Pragma Restricted_Run_Time,Pragma Restriction_Warnings,Pragma Rename_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{de}
  @section Pragma Restricted_Run_Time
  
  
*************** which is the preferred method of setting
*** 7370,7376 ****
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{d9}
  @section Pragma Restriction_Warnings
  
  
--- 7188,7194 ----
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{df}
  @section Pragma Restriction_Warnings
  
  
*************** generating a warning, but any other use
*** 7408,7414 ****
  defined pragmas will cause a warning to be generated.
  
  @node Pragma Reviewable,Pragma Secondary_Stack_Size,Pragma Restriction_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{da}
  @section Pragma Reviewable
  
  
--- 7226,7232 ----
  defined pragmas will cause a warning to be generated.
  
  @node Pragma Reviewable,Pragma Secondary_Stack_Size,Pragma Restriction_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{e0}
  @section Pragma Reviewable
  
  
*************** comprehensive messages identifying possi
*** 7512,7518 ****
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id37}@anchor{db}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{dc}
  @section Pragma Secondary_Stack_Size
  
  
--- 7330,7336 ----
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{e1}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{e2}
  @section Pragma Secondary_Stack_Size
  
  
*************** Note the pragma cannot appear when the r
*** 7548,7554 ****
  is in effect.
  
  @node Pragma Share_Generic,Pragma Shared,Pragma Secondary_Stack_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{dd}
  @section Pragma Share_Generic
  
  
--- 7366,7372 ----
  is in effect.
  
  @node Pragma Share_Generic,Pragma Shared,Pragma Secondary_Stack_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{e3}
  @section Pragma Share_Generic
  
  
*************** than to check that the given names are a
*** 7566,7572 ****
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{de}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{df}
  @section Pragma Shared
  
  
--- 7384,7390 ----
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e4}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{e5}
  @section Pragma Shared
  
  
*************** This pragma is provided for compatibilit
*** 7574,7580 ****
  semantics are identical to pragma Atomic.
  
  @node Pragma Short_Circuit_And_Or,Pragma Short_Descriptors,Pragma Shared,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{e0}
  @section Pragma Short_Circuit_And_Or
  
  
--- 7392,7398 ----
  semantics are identical to pragma Atomic.
  
  @node Pragma Short_Circuit_And_Or,Pragma Short_Descriptors,Pragma Shared,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{e6}
  @section Pragma Short_Circuit_And_Or
  
  
*************** short-circuited logical operators. If th
*** 7592,7599 ****
  within the file being compiled, it applies only to the file being compiled.
  There is no requirement that all units in a partition use this option.
  
! @node Pragma Short_Descriptors,Pragma Simple_Storage_Pool_Type,Pragma Short_Circuit_And_Or,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{e1}
  @section Pragma Short_Descriptors
  
  
--- 7410,7417 ----
  within the file being compiled, it applies only to the file being compiled.
  There is no requirement that all units in a partition use this option.
  
! @node Pragma Short_Descriptors,Pragma Side_Effects,Pragma Short_Circuit_And_Or,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{e7}
  @section Pragma Short_Descriptors
  
  
*************** pragma Short_Descriptors;
*** 7606,7613 ****
  This pragma is provided for compatibility with other Ada implementations. It
  is recognized but ignored by all current versions of GNAT.
  
! @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Short_Descriptors,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{e2}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{e3}
  @section Pragma Simple_Storage_Pool_Type
  
  
--- 7424,7445 ----
  This pragma is provided for compatibility with other Ada implementations. It
  is recognized but ignored by all current versions of GNAT.
  
! @node Pragma Side_Effects,Pragma Simple_Storage_Pool_Type,Pragma Short_Descriptors,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{e8}@anchor{gnat_rm/implementation_defined_pragmas pragma-side-effects}@anchor{e9}
! @section Pragma Side_Effects
! 
! 
! Syntax:
! 
! @example
! pragma Side_Effects [ (static_boolean_EXPRESSION) ];
! @end example
! 
! For the semantics of this pragma, see the entry for aspect
! @code{Side_Effects} in the SPARK Reference Manual, section 6.1.11.
! 
! @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Side_Effects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{ea}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{eb}
  @section Pragma Simple_Storage_Pool_Type
  
  
*************** storage-management discipline).
*** 7661,7667 ****
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{e4,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
--- 7493,7499 ----
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{ec,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
*************** type Acc is access My_Data_Type;
*** 7671,7681 ****
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{e4,,Simple_Storage_Pool}
  for further details.
  
  @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e5}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{e6}
  @section Pragma Source_File_Name
  
  
--- 7503,7513 ----
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{ec,,Simple_Storage_Pool}
  for further details.
  
  @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id43}@anchor{ed}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{ee}
  @section Pragma Source_File_Name
  
  
*************** aware of these pragmas, and so other too
*** 7767,7786 ****
  be aware of the intended naming conventions. If you are using project files,
  file naming is controlled by Source_File_Name_Project pragmas, which are
  usually supplied automatically by the project manager. A pragma
! Source_File_Name cannot appear after a @ref{e7,,Pragma Source_File_Name_Project}.
  
  For more details on the use of the @code{Source_File_Name} pragma, see the
  sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes}
  in the @cite{GNAT User’s Guide}.
  
  @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{e8}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{e7}
  @section Pragma Source_File_Name_Project
  
  
  This pragma has the same syntax and semantics as pragma Source_File_Name.
  It is only allowed as a stand-alone configuration pragma.
! It cannot appear after a @ref{e6,,Pragma Source_File_Name}, and
  most importantly, once pragma Source_File_Name_Project appears,
  no further Source_File_Name pragmas are allowed.
  
--- 7599,7618 ----
  be aware of the intended naming conventions. If you are using project files,
  file naming is controlled by Source_File_Name_Project pragmas, which are
  usually supplied automatically by the project manager. A pragma
! Source_File_Name cannot appear after a @ref{ef,,Pragma Source_File_Name_Project}.
  
  For more details on the use of the @code{Source_File_Name} pragma, see the
  sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes}
  in the @cite{GNAT User’s Guide}.
  
  @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id44}@anchor{f0}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{ef}
  @section Pragma Source_File_Name_Project
  
  
  This pragma has the same syntax and semantics as pragma Source_File_Name.
  It is only allowed as a stand-alone configuration pragma.
! It cannot appear after a @ref{ee,,Pragma Source_File_Name}, and
  most importantly, once pragma Source_File_Name_Project appears,
  no further Source_File_Name pragmas are allowed.
  
*************** Source_File_Name or Source_File_Name_Pro
*** 7792,7798 ****
  known to the project manager).
  
  @node Pragma Source_Reference,Pragma SPARK_Mode,Pragma Source_File_Name_Project,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{e9}
  @section Pragma Source_Reference
  
  
--- 7624,7630 ----
  known to the project manager).
  
  @node Pragma Source_Reference,Pragma SPARK_Mode,Pragma Source_File_Name_Project,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{f1}
  @section Pragma Source_Reference
  
  
*************** string expression other than a string li
*** 7816,7822 ****
  is needed for error messages issued by all phases of the compiler.
  
  @node Pragma SPARK_Mode,Pragma Static_Elaboration_Desired,Pragma Source_Reference,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{ea}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{eb}
  @section Pragma SPARK_Mode
  
  
--- 7648,7654 ----
  is needed for error messages issued by all phases of the compiler.
  
  @node Pragma SPARK_Mode,Pragma Static_Elaboration_Desired,Pragma Source_Reference,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{f2}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{f3}
  @section Pragma SPARK_Mode
  
  
*************** SPARK_Mode (@code{Off}), then that pragm
*** 7898,7904 ****
  the package body.
  
  @node Pragma Static_Elaboration_Desired,Pragma Stream_Convert,Pragma SPARK_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{ec}
  @section Pragma Static_Elaboration_Desired
  
  
--- 7730,7736 ----
  the package body.
  
  @node Pragma Static_Elaboration_Desired,Pragma Stream_Convert,Pragma SPARK_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{f4}
  @section Pragma Static_Elaboration_Desired
  
  
*************** construction of larger aggregates with s
*** 7922,7928 ****
  choice.)
  
  @node Pragma Stream_Convert,Pragma Style_Checks,Pragma Static_Elaboration_Desired,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{ed}
  @section Pragma Stream_Convert
  
  
--- 7754,7760 ----
  choice.)
  
  @node Pragma Stream_Convert,Pragma Style_Checks,Pragma Static_Elaboration_Desired,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{f5}
  @section Pragma Stream_Convert
  
  
*************** the pragma is silently ignored, and the
*** 7999,8005 ****
  attributes is used instead.
  
  @node Pragma Style_Checks,Pragma Subtitle,Pragma Stream_Convert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{ee}
  @section Pragma Style_Checks
  
  
--- 7831,7837 ----
  attributes is used instead.
  
  @node Pragma Style_Checks,Pragma Subtitle,Pragma Stream_Convert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{f6}
  @section Pragma Style_Checks
  
  
*************** Rf2 : Integer := ARG;      -- OK, no err
*** 8072,8078 ****
  @end example
  
  @node Pragma Subtitle,Pragma Suppress,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{ef}
  @section Pragma Subtitle
  
  
--- 7904,7910 ----
  @end example
  
  @node Pragma Subtitle,Pragma Suppress,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{f7}
  @section Pragma Subtitle
  
  
*************** This pragma is recognized for compatibil
*** 8086,8092 ****
  but is ignored by GNAT.
  
  @node Pragma Suppress,Pragma Suppress_All,Pragma Subtitle,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{f0}
  @section Pragma Suppress
  
  
--- 7918,7924 ----
  but is ignored by GNAT.
  
  @node Pragma Suppress,Pragma Suppress_All,Pragma Subtitle,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{f8}
  @section Pragma Suppress
  
  
*************** Of course, run-time checks are omitted w
*** 8159,8165 ****
  that they will not fail, whether or not checks are suppressed.
  
  @node Pragma Suppress_All,Pragma Suppress_Debug_Info,Pragma Suppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{f1}
  @section Pragma Suppress_All
  
  
--- 7991,7997 ----
  that they will not fail, whether or not checks are suppressed.
  
  @node Pragma Suppress_All,Pragma Suppress_Debug_Info,Pragma Suppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{f9}
  @section Pragma Suppress_All
  
  
*************** The use of the standard Ada pragma @code
*** 8178,8184 ****
  as a normal configuration pragma is the preferred usage in GNAT.
  
  @node Pragma Suppress_Debug_Info,Pragma Suppress_Exception_Locations,Pragma Suppress_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id43}@anchor{f2}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{f3}
  @section Pragma Suppress_Debug_Info
  
  
--- 8010,8016 ----
  as a normal configuration pragma is the preferred usage in GNAT.
  
  @node Pragma Suppress_Debug_Info,Pragma Suppress_Exception_Locations,Pragma Suppress_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id46}@anchor{fa}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{fb}
  @section Pragma Suppress_Debug_Info
  
  
*************** for the specified entity. It is intended
*** 8193,8199 ****
  the debugger, and navigating around debugger problems.
  
  @node Pragma Suppress_Exception_Locations,Pragma Suppress_Initialization,Pragma Suppress_Debug_Info,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{f4}
  @section Pragma Suppress_Exception_Locations
  
  
--- 8025,8031 ----
  the debugger, and navigating around debugger problems.
  
  @node Pragma Suppress_Exception_Locations,Pragma Suppress_Initialization,Pragma Suppress_Debug_Info,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{fc}
  @section Pragma Suppress_Exception_Locations
  
  
*************** a partition, so it is fine to have some
*** 8216,8222 ****
  with this pragma and others compiled in normal mode without it.
  
  @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id44}@anchor{f5}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{f6}
  @section Pragma Suppress_Initialization
  
  
--- 8048,8054 ----
  with this pragma and others compiled in normal mode without it.
  
  @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id47}@anchor{fd}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{fe}
  @section Pragma Suppress_Initialization
  
  
*************** is suppressed, just as though its subtyp
*** 8261,8267 ****
  Suppress_Initialization, as described above.
  
  @node Pragma Task_Name,Pragma Task_Storage,Pragma Suppress_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{f7}
  @section Pragma Task_Name
  
  
--- 8093,8099 ----
  Suppress_Initialization, as described above.
  
  @node Pragma Task_Name,Pragma Task_Storage,Pragma Suppress_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{ff}
  @section Pragma Task_Name
  
  
*************** end;
*** 8317,8323 ****
  @end example
  
  @node Pragma Task_Storage,Pragma Test_Case,Pragma Task_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{f8}
  @section Pragma Task_Storage
  
  
--- 8149,8155 ----
  @end example
  
  @node Pragma Task_Storage,Pragma Test_Case,Pragma Task_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{100}
  @section Pragma Task_Storage
  
  
*************** created, depending on the target.  This
*** 8337,8343 ****
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{f9}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{fa}
  @section Pragma Test_Case
  
  
--- 8169,8175 ----
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{101}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{102}
  @section Pragma Test_Case
  
  
*************** postcondition. Mode @code{Robustness} in
*** 8393,8399 ****
  postcondition of the subprogram should be ignored for this test case.
  
  @node Pragma Thread_Local_Storage,Pragma Time_Slice,Pragma Test_Case,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id46}@anchor{fb}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{fc}
  @section Pragma Thread_Local_Storage
  
  
--- 8225,8231 ----
  postcondition of the subprogram should be ignored for this test case.
  
  @node Pragma Thread_Local_Storage,Pragma Time_Slice,Pragma Test_Case,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{103}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{104}
  @section Pragma Thread_Local_Storage
  
  
*************** If this pragma is used on a system where
*** 8431,8437 ****
  then an error message will be generated and the program will be rejected.
  
  @node Pragma Time_Slice,Pragma Title,Pragma Thread_Local_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{fd}
  @section Pragma Time_Slice
  
  
--- 8263,8269 ----
  then an error message will be generated and the program will be rejected.
  
  @node Pragma Time_Slice,Pragma Title,Pragma Thread_Local_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{105}
  @section Pragma Time_Slice
  
  
*************** It is ignored if it is used in a system
*** 8447,8453 ****
  or if it appears in other than the main program unit.
  
  @node Pragma Title,Pragma Type_Invariant,Pragma Time_Slice,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{fe}
  @section Pragma Title
  
  
--- 8279,8285 ----
  or if it appears in other than the main program unit.
  
  @node Pragma Title,Pragma Type_Invariant,Pragma Time_Slice,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{106}
  @section Pragma Title
  
  
*************** notation is used, and named and position
*** 8472,8478 ****
  following the normal rules for procedure calls in Ada.
  
  @node Pragma Type_Invariant,Pragma Type_Invariant_Class,Pragma Title,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{ff}
  @section Pragma Type_Invariant
  
  
--- 8304,8310 ----
  following the normal rules for procedure calls in Ada.
  
  @node Pragma Type_Invariant,Pragma Type_Invariant_Class,Pragma Title,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{107}
  @section Pragma Type_Invariant
  
  
*************** controlled by the assertion identifier @
*** 8493,8499 ****
  rather than @code{Invariant}.
  
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id47}@anchor{100}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{101}
  @section Pragma Type_Invariant_Class
  
  
--- 8325,8331 ----
  rather than @code{Invariant}.
  
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{108}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{109}
  @section Pragma Type_Invariant_Class
  
  
*************** policy that controls this pragma is @cod
*** 8520,8526 ****
  not @code{Type_Invariant_Class}.
  
  @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{102}
  @section Pragma Unchecked_Union
  
  
--- 8352,8358 ----
  not @code{Type_Invariant_Class}.
  
  @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{10a}
  @section Pragma Unchecked_Union
  
  
*************** pragma, making it language defined, and
*** 8539,8546 ****
  version in all language modes (Ada 83, Ada 95, and Ada 2005). For full
  details, consult the Ada 2012 Reference Manual, section B.3.3.
  
! @node Pragma Unevaluated_Use_Of_Old,Pragma Unimplemented_Unit,Pragma Unchecked_Union,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{103}
  @section Pragma Unevaluated_Use_Of_Old
  
  
--- 8371,8378 ----
  version in all language modes (Ada 83, Ada 95, and Ada 2005). For full
  details, consult the Ada 2012 Reference Manual, section B.3.3.
  
! @node Pragma Unevaluated_Use_Of_Old,Pragma User_Aspect_Definition,Pragma Unchecked_Union,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{10b}
  @section Pragma Unevaluated_Use_Of_Old
  
  
*************** part or package specification. In the la
*** 8594,8601 ****
  uses up to the end of the corresponding statement sequence or
  sequence of package declarations.
  
! @node Pragma Unimplemented_Unit,Pragma Universal_Aliasing,Pragma Unevaluated_Use_Of_Old,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{104}
  @section Pragma Unimplemented_Unit
  
  
--- 8426,8463 ----
  uses up to the end of the corresponding statement sequence or
  sequence of package declarations.
  
! @node Pragma User_Aspect_Definition,Pragma Unimplemented_Unit,Pragma Unevaluated_Use_Of_Old,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-user-aspect-definition}@anchor{10c}
! @section Pragma User_Aspect_Definition
! 
! 
! Syntax:
! 
! @example
! pragma User_Aspect_Definition
!   (Identifier @{, Identifier [(Identifier @{, Identifier@})]@});
! @end example
! 
! This configuration pragma defines a new aspect, making it available for
! subsequent use in a User_Aspect aspect specification. The first
! identifier is the name of the new aspect. Any subsequent arguments
! specify the names of other aspects. A subsequent name for which no parenthesized
! arguments are given shall denote either a Boolean-valued
! non-representation aspect or an aspect that has been defined by another
! User_Aspect_Definition pragma. A name for which one or more arguments are
! given shall be either Annotate or Local_Restrictions (and the arguments shall
! be appropriate for the named aspect). This pragma, together with the
! User_Aspect aspect, provides a mechanism for
! avoiding textual duplication if some set of aspect specifications is needed
! in multiple places. This is somewhat analogous to how profiles allow avoiding
! duplication of Restrictions pragmas. The visibility rules for an aspect
! defined by a User_Aspect_Definition pragma are the same as for a check name
! introduced by a Check_Name pragma. If multiple
! definitions are visible for some aspect at some point, then the
! definitions must agree. A predefined aspect cannot be redefined.
! 
! @node Pragma Unimplemented_Unit,Pragma Universal_Aliasing,Pragma User_Aspect_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{10d}
  @section Pragma Unimplemented_Unit
  
  
*************** The abort only happens if code is being
*** 8615,8621 ****
  specs of unimplemented packages in syntax or semantic checking mode.
  
  @node Pragma Universal_Aliasing,Pragma Unmodified,Pragma Unimplemented_Unit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{105}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{106}
  @section Pragma Universal_Aliasing
  
  
--- 8477,8483 ----
  specs of unimplemented packages in syntax or semantic checking mode.
  
  @node Pragma Universal_Aliasing,Pragma Unmodified,Pragma Unimplemented_Unit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10e}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{10f}
  @section Pragma Universal_Aliasing
  
  
*************** situations in which it must be suppresse
*** 8634,8640 ****
  @code{Optimization and Strict Aliasing} in the @cite{GNAT User’s Guide}.
  
  @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{107}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{108}
  @section Pragma Unmodified
  
  
--- 8496,8502 ----
  @code{Optimization and Strict Aliasing} in the @cite{GNAT User’s Guide}.
  
  @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{110}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{111}
  @section Pragma Unmodified
  
  
*************** Thus it is never necessary to use @code{
*** 8668,8674 ****
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{109}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{10a}
  @section Pragma Unreferenced
  
  
--- 8530,8536 ----
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id53}@anchor{112}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{113}
  @section Pragma Unreferenced
  
  
*************** Note that if a warning is desired for al
*** 8714,8720 ****
  regardless of whether they occur in the same unit as the subprogram
  declaration, then this pragma should not be used (calls from another
  unit would not be flagged); pragma Obsolescent can be used instead
! for this purpose, see @ref{ac,,Pragma Obsolescent}.
  
  The second form of pragma @code{Unreferenced} is used within a context
  clause. In this case the arguments must be unit names of units previously
--- 8576,8582 ----
  regardless of whether they occur in the same unit as the subprogram
  declaration, then this pragma should not be used (calls from another
  unit would not be flagged); pragma Obsolescent can be used instead
! for this purpose, see @ref{b2,,Pragma Obsolescent}.
  
  The second form of pragma @code{Unreferenced} is used within a context
  clause. In this case the arguments must be unit names of units previously
*************** Thus it is never necessary to use @code{
*** 8730,8736 ****
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced_Objects,Pragma Unreserve_All_Interrupts,Pragma Unreferenced,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10b}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{10c}
  @section Pragma Unreferenced_Objects
  
  
--- 8592,8598 ----
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced_Objects,Pragma Unreserve_All_Interrupts,Pragma Unreferenced,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id54}@anchor{114}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{115}
  @section Pragma Unreferenced_Objects
  
  
*************** compiler will automatically suppress unw
*** 8755,8761 ****
  not being referenced.
  
  @node Pragma Unreserve_All_Interrupts,Pragma Unsuppress,Pragma Unreferenced_Objects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{10d}
  @section Pragma Unreserve_All_Interrupts
  
  
--- 8617,8623 ----
  not being referenced.
  
  @node Pragma Unreserve_All_Interrupts,Pragma Unsuppress,Pragma Unreferenced_Objects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{116}
  @section Pragma Unreserve_All_Interrupts
  
  
*************** handled, see pragma @code{Interrupt_Stat
*** 8791,8797 ****
  of the @code{Unreserve_All_Interrupts} pragma.
  
  @node Pragma Unsuppress,Pragma Unused,Pragma Unreserve_All_Interrupts,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{10e}
  @section Pragma Unsuppress
  
  
--- 8653,8659 ----
  of the @code{Unreserve_All_Interrupts} pragma.
  
  @node Pragma Unsuppress,Pragma Unused,Pragma Unreserve_All_Interrupts,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{117}
  @section Pragma Unsuppress
  
  
*************** number of implementation-defined check n
*** 8827,8833 ****
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{10f}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{110}
  @section Pragma Unused
  
  
--- 8689,8695 ----
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id55}@anchor{118}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{119}
  @section Pragma Unused
  
  
*************** Thus it is never necessary to use @code{
*** 8861,8867 ****
  variables, though it is harmless to do so.
  
  @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unused,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{111}
  @section Pragma Use_VADS_Size
  
  
--- 8723,8729 ----
  variables, though it is harmless to do so.
  
  @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unused,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{11a}
  @section Pragma Use_VADS_Size
  
  
*************** as implemented in the VADS compiler.  Se
*** 8885,8891 ****
  attribute for further details.
  
  @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{112}
  @section Pragma Validity_Checks
  
  
--- 8747,8753 ----
  attribute for further details.
  
  @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{11b}
  @section Pragma Validity_Checks
  
  
*************** A := C;                       -- C will
*** 8941,8947 ****
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id53}@anchor{113}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{114}
  @section Pragma Volatile
  
  
--- 8803,8809 ----
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11c}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{11d}
  @section Pragma Volatile
  
  
*************** implementation of pragma Volatile is upw
*** 8959,8965 ****
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id54}@anchor{115}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{116}
  @section Pragma Volatile_Full_Access
  
  
--- 8821,8827 ----
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id57}@anchor{11e}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{11f}
  @section Pragma Volatile_Full_Access
  
  
*************** is not to the whole object; the compiler
*** 8985,8991 ****
  access only part of the object in this case.
  
  @node Pragma Volatile_Function,Pragma Warning_As_Error,Pragma Volatile_Full_Access,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id55}@anchor{117}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{118}
  @section Pragma Volatile_Function
  
  
--- 8847,8853 ----
  access only part of the object in this case.
  
  @node Pragma Volatile_Function,Pragma Warning_As_Error,Pragma Volatile_Full_Access,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id58}@anchor{120}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{121}
  @section Pragma Volatile_Function
  
  
*************** For the semantics of this pragma, see th
*** 8999,9005 ****
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{119}
  @section Pragma Warning_As_Error
  
  
--- 8861,8867 ----
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{122}
  @section Pragma Warning_As_Error
  
  
*************** you can use multiple pragma Warning_As_E
*** 9039,9045 ****
  
  The above use of patterns to match the message applies only to warning
  messages generated by the front end. This pragma can also be applied to
! warnings provided by the back end and mentioned in @ref{11a,,Pragma Warnings}.
  By using a single full `-Wxxx' switch in the pragma, such warnings
  can also be treated as errors.
  
--- 8901,8907 ----
  
  The above use of patterns to match the message applies only to warning
  messages generated by the front end. This pragma can also be applied to
! warnings provided by the back end and mentioned in @ref{123,,Pragma Warnings}.
  By using a single full `-Wxxx' switch in the pragma, such warnings
  can also be treated as errors.
  
*************** the tag is changed from “warning:” t
*** 9089,9095 ****
  “[warning-as-error]” is appended to the end of the message.
  
  @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11b}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{11a}
  @section Pragma Warnings
  
  
--- 8951,8957 ----
  “[warning-as-error]” is appended to the end of the message.
  
  @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id59}@anchor{124}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{123}
  @section Pragma Warnings
  
  
*************** selectively for each tool, and as a cons
*** 9245,9251 ****
  Warnings with switch @code{-gnatw.w}.
  
  @node Pragma Weak_External,Pragma Wide_Character_Encoding,Pragma Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{11c}
  @section Pragma Weak_External
  
  
--- 9107,9113 ----
  Warnings with switch @code{-gnatw.w}.
  
  @node Pragma Weak_External,Pragma Wide_Character_Encoding,Pragma Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{125}
  @section Pragma Weak_External
  
  
*************** end External_Module;
*** 9296,9302 ****
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{11d}
  @section Pragma Wide_Character_Encoding
  
  
--- 9158,9164 ----
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{126}
  @section Pragma Wide_Character_Encoding
  
  
*************** encoding within that file, and does not
*** 9327,9333 ****
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{11e}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{11f}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{120}
  @chapter Implementation Defined Aspects
  
  
--- 9189,9195 ----
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{127}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{128}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{129}
  @chapter Implementation Defined Aspects
  
  
*************** or attribute definition clause.
*** 9383,9388 ****
--- 9245,9251 ----
  
  @menu
  * Aspect Abstract_State:: 
+ * Aspect Always_Terminates:: 
  * Aspect Annotate:: 
  * Aspect Async_Readers:: 
  * Aspect Async_Writers:: 
*************** or attribute definition clause.
*** 9395,9403 ****
--- 9258,9268 ----
  * Aspect Disable_Controlled:: 
  * Aspect Effective_Reads:: 
  * Aspect Effective_Writes:: 
+ * Aspect Exceptional_Cases:: 
  * Aspect Extensions_Visible:: 
  * Aspect Favor_Top_Level:: 
  * Aspect Ghost:: 
+ * Aspect Ghost_Predicate:: 
  * Aspect Global:: 
  * Aspect Initial_Condition:: 
  * Aspect Initializes:: 
*************** or attribute definition clause.
*** 9406,9411 ****
--- 9271,9277 ----
  * Aspect Invariant’Class:: 
  * Aspect Iterable:: 
  * Aspect Linker_Section:: 
+ * Aspect Local_Restrictions:: 
  * Aspect Lock_Free:: 
  * Aspect Max_Queue_Length:: 
  * Aspect No_Caching:: 
*************** or attribute definition clause.
*** 9428,9433 ****
--- 9294,9300 ----
  * Aspect Secondary_Stack_Size:: 
  * Aspect Scalar_Storage_Order:: 
  * Aspect Shared:: 
+ * Aspect Side_Effects:: 
  * Aspect Simple_Storage_Pool:: 
  * Aspect Simple_Storage_Pool_Type:: 
  * Aspect SPARK_Mode:: 
*************** or attribute definition clause.
*** 9439,9444 ****
--- 9306,9312 ----
  * Aspect Unmodified:: 
  * Aspect Unreferenced:: 
  * Aspect Unreferenced_Objects:: 
+ * Aspect User_Aspect:: 
  * Aspect Value_Size:: 
  * Aspect Volatile_Full_Access:: 
  * Aspect Volatile_Function:: 
*************** or attribute definition clause.
*** 9446,9453 ****
  
  @end menu
  
! @node Aspect Abstract_State,Aspect Annotate,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{121}
  @section Aspect Abstract_State
  
  
--- 9314,9321 ----
  
  @end menu
  
! @node Aspect Abstract_State,Aspect Always_Terminates,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{12a}
  @section Aspect Abstract_State
  
  
*************** or attribute definition clause.
*** 9455,9462 ****
  
  This aspect is equivalent to @ref{1e,,pragma Abstract_State}.
  
! @node Aspect Annotate,Aspect Async_Readers,Aspect Abstract_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-annotate}@anchor{122}
  @section Aspect Annotate
  
  
--- 9323,9339 ----
  
  This aspect is equivalent to @ref{1e,,pragma Abstract_State}.
  
! @node Aspect Always_Terminates,Aspect Annotate,Aspect Abstract_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-always-terminates}@anchor{12b}
! @section Aspect Always_Terminates
! 
! 
! @geindex Always_Terminates
! 
! This boolean aspect is equivalent to @ref{29,,pragma Always_Terminates}.
! 
! @node Aspect Annotate,Aspect Async_Readers,Aspect Always_Terminates,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-annotate}@anchor{12c}
  @section Aspect Annotate
  
  
*************** This aspect is equivalent to @ref{1e,,pr
*** 9464,9470 ****
  
  There are three forms of this aspect (where ID is an identifier,
  and ARG is a general expression),
! corresponding to @ref{29,,pragma Annotate}.
  
  
  @table @asis
--- 9341,9347 ----
  
  There are three forms of this aspect (where ID is an identifier,
  and ARG is a general expression),
! corresponding to @ref{2b,,pragma Annotate}.
  
  
  @table @asis
*************** Equivalent to @code{pragma Annotate (ID,
*** 9483,9545 ****
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{123}
  @section Aspect Async_Readers
  
  
  @geindex Async_Readers
  
! This boolean aspect is equivalent to @ref{30,,pragma Async_Readers}.
  
  @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{124}
  @section Aspect Async_Writers
  
  
  @geindex Async_Writers
  
! This boolean aspect is equivalent to @ref{32,,pragma Async_Writers}.
  
  @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{125}
  @section Aspect Constant_After_Elaboration
  
  
  @geindex Constant_After_Elaboration
  
! This aspect is equivalent to @ref{42,,pragma Constant_After_Elaboration}.
  
  @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{126}
  @section Aspect Contract_Cases
  
  
  @geindex Contract_Cases
  
! This aspect is equivalent to @ref{44,,pragma Contract_Cases}, the sequence
  of clauses being enclosed in parentheses so that syntactically it is an
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{127}
  @section Aspect Depends
  
  
  @geindex Depends
  
! This aspect is equivalent to @ref{54,,pragma Depends}.
  
  @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{128}
  @section Aspect Default_Initial_Condition
  
  
  @geindex Default_Initial_Condition
  
! This aspect is equivalent to @ref{50,,pragma Default_Initial_Condition}.
  
  @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{129}
  @section Aspect Dimension
  
  
--- 9360,9422 ----
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{12d}
  @section Aspect Async_Readers
  
  
  @geindex Async_Readers
  
! This boolean aspect is equivalent to @ref{32,,pragma Async_Readers}.
  
  @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{12e}
  @section Aspect Async_Writers
  
  
  @geindex Async_Writers
  
! This boolean aspect is equivalent to @ref{34,,pragma Async_Writers}.
  
  @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{12f}
  @section Aspect Constant_After_Elaboration
  
  
  @geindex Constant_After_Elaboration
  
! This aspect is equivalent to @ref{44,,pragma Constant_After_Elaboration}.
  
  @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{130}
  @section Aspect Contract_Cases
  
  
  @geindex Contract_Cases
  
! This aspect is equivalent to @ref{46,,pragma Contract_Cases}, the sequence
  of clauses being enclosed in parentheses so that syntactically it is an
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{131}
  @section Aspect Depends
  
  
  @geindex Depends
  
! This aspect is equivalent to @ref{56,,pragma Depends}.
  
  @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{132}
  @section Aspect Default_Initial_Condition
  
  
  @geindex Default_Initial_Condition
  
! This aspect is equivalent to @ref{52,,pragma Default_Initial_Condition}.
  
  @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{133}
  @section Aspect Dimension
  
  
*************** Note that when the dimensioned type is a
*** 9575,9581 ****
  dimension value must be an integer literal.
  
  @node Aspect Dimension_System,Aspect Disable_Controlled,Aspect Dimension,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{12a}
  @section Aspect Dimension_System
  
  
--- 9452,9458 ----
  dimension value must be an integer literal.
  
  @node Aspect Dimension_System,Aspect Disable_Controlled,Aspect Dimension,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{134}
  @section Aspect Dimension_System
  
  
*************** See section ‘Performing Dimensionality
*** 9635,9641 ****
  Guide for detailed examples of use of the dimension system.
  
  @node Aspect Disable_Controlled,Aspect Effective_Reads,Aspect Dimension_System,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{12b}
  @section Aspect Disable_Controlled
  
  
--- 9512,9518 ----
  Guide for detailed examples of use of the dimension system.
  
  @node Aspect Disable_Controlled,Aspect Effective_Reads,Aspect Dimension_System,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{135}
  @section Aspect Disable_Controlled
  
  
*************** where for example you might want a recor
*** 9648,9757 ****
  whether some run-time check is enabled or suppressed.
  
  @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Disable_Controlled,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{12c}
  @section Aspect Effective_Reads
  
  
  @geindex Effective_Reads
  
! This aspect is equivalent to @ref{59,,pragma Effective_Reads}.
  
! @node Aspect Effective_Writes,Aspect Extensions_Visible,Aspect Effective_Reads,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{12d}
  @section Aspect Effective_Writes
  
  
  @geindex Effective_Writes
  
! This aspect is equivalent to @ref{5b,,pragma Effective_Writes}.
  
! @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{12e}
  @section Aspect Extensions_Visible
  
  
  @geindex Extensions_Visible
  
! This aspect is equivalent to @ref{66,,pragma Extensions_Visible}.
  
  @node Aspect Favor_Top_Level,Aspect Ghost,Aspect Extensions_Visible,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{12f}
  @section Aspect Favor_Top_Level
  
  
  @geindex Favor_Top_Level
  
! This boolean aspect is equivalent to @ref{6b,,pragma Favor_Top_Level}.
  
! @node Aspect Ghost,Aspect Global,Aspect Favor_Top_Level,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{130}
  @section Aspect Ghost
  
  
  @geindex Ghost
  
! This aspect is equivalent to @ref{6f,,pragma Ghost}.
  
! @node Aspect Global,Aspect Initial_Condition,Aspect Ghost,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{131}
  @section Aspect Global
  
  
  @geindex Global
  
! This aspect is equivalent to @ref{71,,pragma Global}.
  
  @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{132}
  @section Aspect Initial_Condition
  
  
  @geindex Initial_Condition
  
! This aspect is equivalent to @ref{7e,,pragma Initial_Condition}.
  
  @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{133}
  @section Aspect Initializes
  
  
  @geindex Initializes
  
! This aspect is equivalent to @ref{81,,pragma Initializes}.
  
  @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{134}
  @section Aspect Inline_Always
  
  
  @geindex Inline_Always
  
! This boolean aspect is equivalent to @ref{83,,pragma Inline_Always}.
  
  @node Aspect Invariant,Aspect Invariant’Class,Aspect Inline_Always,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{135}
  @section Aspect Invariant
  
  
  @geindex Invariant
  
! This aspect is equivalent to @ref{8a,,pragma Invariant}. It is a
  synonym for the language defined aspect @code{Type_Invariant} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Invariant’Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{136}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{101,,pragma Type_Invariant_Class}. It is a
  synonym for the language defined aspect @code{Type_Invariant'Class} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant’Class,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{137}
  @section Aspect Iterable
  
  
--- 9525,9662 ----
  whether some run-time check is enabled or suppressed.
  
  @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Disable_Controlled,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{136}
  @section Aspect Effective_Reads
  
  
  @geindex Effective_Reads
  
! This aspect is equivalent to @ref{5b,,pragma Effective_Reads}.
  
! @node Aspect Effective_Writes,Aspect Exceptional_Cases,Aspect Effective_Reads,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{137}
  @section Aspect Effective_Writes
  
  
  @geindex Effective_Writes
  
! This aspect is equivalent to @ref{5d,,pragma Effective_Writes}.
  
! @node Aspect Exceptional_Cases,Aspect Extensions_Visible,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exceptional-cases}@anchor{138}
! @section Aspect Exceptional_Cases
! 
! 
! @geindex Exceptional_Cases
! 
! This aspect may be specified for procedures and functions with side effects;
! it can be used to list exceptions that might be propagated by the subprogram
! with side effects in the context of its precondition, and associate them
! with a specific postcondition.
! 
! For the syntax and semantics of this aspect, see the SPARK 2014 Reference
! Manual, section 6.1.9.
! 
! @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Exceptional_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{139}
  @section Aspect Extensions_Visible
  
  
  @geindex Extensions_Visible
  
! This aspect is equivalent to @ref{6c,,pragma Extensions_Visible}.
  
  @node Aspect Favor_Top_Level,Aspect Ghost,Aspect Extensions_Visible,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{13a}
  @section Aspect Favor_Top_Level
  
  
  @geindex Favor_Top_Level
  
! This boolean aspect is equivalent to @ref{71,,pragma Favor_Top_Level}.
  
! @node Aspect Ghost,Aspect Ghost_Predicate,Aspect Favor_Top_Level,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{13b}
  @section Aspect Ghost
  
  
  @geindex Ghost
  
! This aspect is equivalent to @ref{75,,pragma Ghost}.
  
! @node Aspect Ghost_Predicate,Aspect Global,Aspect Ghost,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost-predicate}@anchor{13c}
! @section Aspect Ghost_Predicate
! 
! 
! @geindex Ghost_Predicate
! 
! This aspect introduces a subtype predicate that can reference ghost
! entities. The subtype cannot appear as a subtype_mark in a membership test.
! 
! For the detailed semantics of this aspect, see the entry for subtype predicates
! in the SPARK Reference Manual, section 3.2.4.
! 
! @node Aspect Global,Aspect Initial_Condition,Aspect Ghost_Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{13d}
  @section Aspect Global
  
  
  @geindex Global
  
! This aspect is equivalent to @ref{77,,pragma Global}.
  
  @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{13e}
  @section Aspect Initial_Condition
  
  
  @geindex Initial_Condition
  
! This aspect is equivalent to @ref{84,,pragma Initial_Condition}.
  
  @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{13f}
  @section Aspect Initializes
  
  
  @geindex Initializes
  
! This aspect is equivalent to @ref{87,,pragma Initializes}.
  
  @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{140}
  @section Aspect Inline_Always
  
  
  @geindex Inline_Always
  
! This boolean aspect is equivalent to @ref{89,,pragma Inline_Always}.
  
  @node Aspect Invariant,Aspect Invariant’Class,Aspect Inline_Always,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{141}
  @section Aspect Invariant
  
  
  @geindex Invariant
  
! This aspect is equivalent to @ref{90,,pragma Invariant}. It is a
  synonym for the language defined aspect @code{Type_Invariant} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Invariant’Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{142}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{109,,pragma Type_Invariant_Class}. It is a
  synonym for the language defined aspect @code{Type_Invariant'Class} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant’Class,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{143}
  @section Aspect Iterable
  
  
*************** function Get_Element (Cont : Container;
*** 9834,9907 ****
  
  This aspect is used in the GNAT-defined formal container packages.
  
! @node Aspect Linker_Section,Aspect Lock_Free,Aspect Iterable,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{138}
  @section Aspect Linker_Section
  
  
  @geindex Linker_Section
  
! This aspect is equivalent to @ref{92,,pragma Linker_Section}.
  
! @node Aspect Lock_Free,Aspect Max_Queue_Length,Aspect Linker_Section,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{139}
  @section Aspect Lock_Free
  
  
  @geindex Lock_Free
  
! This boolean aspect is equivalent to @ref{94,,pragma Lock_Free}.
  
  @node Aspect Max_Queue_Length,Aspect No_Caching,Aspect Lock_Free,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-max-queue-length}@anchor{13a}
  @section Aspect Max_Queue_Length
  
  
  @geindex Max_Queue_Length
  
! This aspect is equivalent to @ref{9c,,pragma Max_Queue_Length}.
  
  @node Aspect No_Caching,Aspect No_Elaboration_Code_All,Aspect Max_Queue_Length,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-caching}@anchor{13b}
  @section Aspect No_Caching
  
  
  @geindex No_Caching
  
! This boolean aspect is equivalent to @ref{9f,,pragma No_Caching}.
  
  @node Aspect No_Elaboration_Code_All,Aspect No_Inline,Aspect No_Caching,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{13c}
  @section Aspect No_Elaboration_Code_All
  
  
  @geindex No_Elaboration_Code_All
  
! This aspect is equivalent to @ref{a2,,pragma No_Elaboration_Code_All}
  for a program unit.
  
  @node Aspect No_Inline,Aspect No_Tagged_Streams,Aspect No_Elaboration_Code_All,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-inline}@anchor{13d}
  @section Aspect No_Inline
  
  
  @geindex No_Inline
  
! This boolean aspect is equivalent to @ref{a5,,pragma No_Inline}.
  
  @node Aspect No_Tagged_Streams,Aspect No_Task_Parts,Aspect No_Inline,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{13e}
  @section Aspect No_Tagged_Streams
  
  
  @geindex No_Tagged_Streams
  
! This aspect is equivalent to @ref{a9,,pragma No_Tagged_Streams} with an
  argument specifying a root tagged type (thus this aspect can only be
  applied to such a type).
  
  @node Aspect No_Task_Parts,Aspect Object_Size,Aspect No_Tagged_Streams,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-task-parts}@anchor{13f}
  @section Aspect No_Task_Parts
  
  
--- 9739,9866 ----
  
  This aspect is used in the GNAT-defined formal container packages.
  
! @node Aspect Linker_Section,Aspect Local_Restrictions,Aspect Iterable,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{144}
  @section Aspect Linker_Section
  
  
  @geindex Linker_Section
  
! This aspect is equivalent to @ref{98,,pragma Linker_Section}.
  
! @node Aspect Local_Restrictions,Aspect Lock_Free,Aspect Linker_Section,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-local-restrictions}@anchor{145}
! @section Aspect Local_Restrictions
! 
! 
! @geindex Local_Restrictions
! 
! This aspect may be specified for a subprogram (and for other declarations
! as described below). It is used to specify that a particular subprogram does
! not violate one or more local restrictions, nor can it call a subprogram
! that is not subject to the same requirement. Positional aggregate syntax
! (with parentheses, not square brackets) may be used to specify more than one
! local restriction, as in
! 
! @example
! procedure Do_Something
!   with Local_Restrictions => (Some_Restriction, Another_Restriction);
! @end example
! 
! Parentheses are currently required even in the case of specifying a single
! local restriction (this requirement may be relaxed in the future).
! Supported local restrictions currently include (only) No_Heap_Allocations and
! No_Secondary_Stack.
! No_Secondary_Stack corresponds to the GNAT-defined (global) restriction
! of the same name. No_Heap_Allocations corresponds to the conjunction of the
! Ada-defined restrictions No_Allocators and No_Implicit_Heap_Allocations.
! 
! Additional requirements are imposed in order to ensure that restriction
! violations cannot be achieved via overriding dispatching operations,
! calling through an access-to-subprogram value, calling a generic formal
! subprogram, or calling through a subprogram renaming.
! For a dispatching operation, an overrider must be subject to (at least) the
! same restrictions as the overridden inherited subprogram; similarly, the
! actual subprogram corresponding to a generic formal subprogram
! in an instantiation must be subject to (at least) the same restrictions
! as the formal subprogram. A call through an access-to-subprogram value
! is conservatively assumed to violate all local restrictions; tasking-related
! constructs (notably entry calls) are treated similarly. A renaming-as-body is
! treated like a subprogram body containing a call to the renamed subprogram.
! 
! The Local_Restrictions aspect can be specified for a package specification,
! in which case the aspect specification also applies to all eligible entities
! declared with the package. This includes types. Default initialization of an
! object of a given type is treated like a call to an implicitly-declared
! initialization subprogram. Such a “call” is subject to the same local
! restriction checks as any other call. If a type is subject to a local
! restriction, then any violations of that restriction within the default
! initialization expressions (if any) of the type are rejected. This may
! include “calls” to the default initialization subprograms of other types.
! 
! Local_Restrictions aspect specifications are additive (for example, in the
! case of a declaration that occurs within nested packages that each have
! a Local_Restrictions specification).
! 
! @node Aspect Lock_Free,Aspect Max_Queue_Length,Aspect Local_Restrictions,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{146}
  @section Aspect Lock_Free
  
  
  @geindex Lock_Free
  
! This boolean aspect is equivalent to @ref{9a,,pragma Lock_Free}.
  
  @node Aspect Max_Queue_Length,Aspect No_Caching,Aspect Lock_Free,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-max-queue-length}@anchor{147}
  @section Aspect Max_Queue_Length
  
  
  @geindex Max_Queue_Length
  
! This aspect is equivalent to @ref{a2,,pragma Max_Queue_Length}.
  
  @node Aspect No_Caching,Aspect No_Elaboration_Code_All,Aspect Max_Queue_Length,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-caching}@anchor{148}
  @section Aspect No_Caching
  
  
  @geindex No_Caching
  
! This boolean aspect is equivalent to @ref{a5,,pragma No_Caching}.
  
  @node Aspect No_Elaboration_Code_All,Aspect No_Inline,Aspect No_Caching,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{149}
  @section Aspect No_Elaboration_Code_All
  
  
  @geindex No_Elaboration_Code_All
  
! This aspect is equivalent to @ref{a8,,pragma No_Elaboration_Code_All}
  for a program unit.
  
  @node Aspect No_Inline,Aspect No_Tagged_Streams,Aspect No_Elaboration_Code_All,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-inline}@anchor{14a}
  @section Aspect No_Inline
  
  
  @geindex No_Inline
  
! This boolean aspect is equivalent to @ref{ab,,pragma No_Inline}.
  
  @node Aspect No_Tagged_Streams,Aspect No_Task_Parts,Aspect No_Inline,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{14b}
  @section Aspect No_Tagged_Streams
  
  
  @geindex No_Tagged_Streams
  
! This aspect is equivalent to @ref{af,,pragma No_Tagged_Streams} with an
  argument specifying a root tagged type (thus this aspect can only be
  applied to such a type).
  
  @node Aspect No_Task_Parts,Aspect Object_Size,Aspect No_Tagged_Streams,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-task-parts}@anchor{14c}
  @section Aspect No_Task_Parts
  
  
*************** away certain tasking-related code that w
*** 9917,9967 ****
  for T’Class, because descendants of T might contain tasks.
  
  @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Task_Parts,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{140}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{141,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{142}
  @section Aspect Obsolescent
  
  
  @geindex Obsolescent
  
! This aspect is equivalent to @ref{ac,,pragma Obsolescent}. Note that the
  evaluation of this aspect happens at the point of occurrence, it is not
  delayed until the freeze point.
  
  @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{143}
  @section Aspect Part_Of
  
  
  @geindex Part_Of
  
! This aspect is equivalent to @ref{b2,,pragma Part_Of}.
  
  @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{144}
  @section Aspect Persistent_BSS
  
  
  @geindex Persistent_BSS
  
! This boolean aspect is equivalent to @ref{b6,,pragma Persistent_BSS}.
  
  @node Aspect Predicate,Aspect Pure_Function,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{145}
  @section Aspect Predicate
  
  
  @geindex Predicate
  
! This aspect is equivalent to @ref{bd,,pragma Predicate}. It is thus
  similar to the language defined aspects @code{Dynamic_Predicate}
  and @code{Static_Predicate} except that whether the resulting
  predicate is static or dynamic is controlled by the form of the
--- 9876,9926 ----
  for T’Class, because descendants of T might contain tasks.
  
  @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Task_Parts,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{14d}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{14e,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{14f}
  @section Aspect Obsolescent
  
  
  @geindex Obsolescent
  
! This aspect is equivalent to @ref{b2,,pragma Obsolescent}. Note that the
  evaluation of this aspect happens at the point of occurrence, it is not
  delayed until the freeze point.
  
  @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{150}
  @section Aspect Part_Of
  
  
  @geindex Part_Of
  
! This aspect is equivalent to @ref{b8,,pragma Part_Of}.
  
  @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{151}
  @section Aspect Persistent_BSS
  
  
  @geindex Persistent_BSS
  
! This boolean aspect is equivalent to @ref{bc,,pragma Persistent_BSS}.
  
  @node Aspect Predicate,Aspect Pure_Function,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{152}
  @section Aspect Predicate
  
  
  @geindex Predicate
  
! This aspect is equivalent to @ref{c3,,pragma Predicate}. It is thus
  similar to the language defined aspects @code{Dynamic_Predicate}
  and @code{Static_Predicate} except that whether the resulting
  predicate is static or dynamic is controlled by the form of the
*************** expression. It is also separately contro
*** 9969,10020 ****
  @code{Assertion_Policy}.
  
  @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{146}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{c9,,pragma Pure_Function}.
  
  @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{147}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{cd,,pragma Refined_Depends}.
  
  @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{148}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{cf,,pragma Refined_Global}.
  
  @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{149}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{d1,,pragma Refined_Post}.
  
  @node Aspect Refined_State,Aspect Relaxed_Initialization,Aspect Refined_Post,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{14a}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{d3,,pragma Refined_State}.
  
  @node Aspect Relaxed_Initialization,Aspect Remote_Access_Type,Aspect Refined_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-relaxed-initialization}@anchor{14b}
  @section Aspect Relaxed_Initialization
  
  
--- 9928,9979 ----
  @code{Assertion_Policy}.
  
  @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{153}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{cf,,pragma Pure_Function}.
  
  @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{154}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{d3,,pragma Refined_Depends}.
  
  @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{155}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{d5,,pragma Refined_Global}.
  
  @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{156}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{d7,,pragma Refined_Post}.
  
  @node Aspect Refined_State,Aspect Relaxed_Initialization,Aspect Refined_Post,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{157}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{d9,,pragma Refined_State}.
  
  @node Aspect Relaxed_Initialization,Aspect Remote_Access_Type,Aspect Refined_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-relaxed-initialization}@anchor{158}
  @section Aspect Relaxed_Initialization
  
  
*************** For the syntax and semantics of this asp
*** 10024,10210 ****
  Manual, section 6.10.
  
  @node Aspect Remote_Access_Type,Aspect Secondary_Stack_Size,Aspect Relaxed_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{14c}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{d6,,pragma Remote_Access_Type}.
  
  @node Aspect Secondary_Stack_Size,Aspect Scalar_Storage_Order,Aspect Remote_Access_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{14d}
  @section Aspect Secondary_Stack_Size
  
  
  @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{dc,,pragma Secondary_Stack_Size}.
  
  @node Aspect Scalar_Storage_Order,Aspect Shared,Aspect Secondary_Stack_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{14e}
  @section Aspect Scalar_Storage_Order
  
  
  @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{14f,,attribute Scalar_Storage_Order}.
  
! @node Aspect Shared,Aspect Simple_Storage_Pool,Aspect Scalar_Storage_Order,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{150}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{df,,pragma Shared}
  and is thus a synonym for aspect @code{Atomic}.
  
! @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Shared,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{151}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{e4,,attribute Simple_Storage_Pool}.
  
  @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{152}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{e3,,pragma Simple_Storage_Pool_Type}.
  
  @node Aspect SPARK_Mode,Aspect Suppress_Debug_Info,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{153}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{eb,,pragma SPARK_Mode} and
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
  @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect SPARK_Mode,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{154}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{f3,,pragma Suppress_Debug_Info}.
  
  @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{155}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{f6,,pragma Suppress_Initialization}.
  
  @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{156}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{fa,,pragma Test_Case}.
  
  @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{157}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{fc,,pragma Thread_Local_Storage}.
  
  @node Aspect Universal_Aliasing,Aspect Unmodified,Aspect Thread_Local_Storage,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{158}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{106,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{159}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{108,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{15a}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{10a,,pragma Unreferenced}.
  
  When using the @code{-gnat2022} switch, this aspect is also supported on formal
  parameters, which is in particular the only form possible for expression
  functions.
  
! @node Aspect Unreferenced_Objects,Aspect Value_Size,Aspect Unreferenced,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{15b}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{10c,,pragma Unreferenced_Objects}.
  
! @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect Unreferenced_Objects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{15c}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{15d,,attribute Value_Size}.
  
  @node Aspect Volatile_Full_Access,Aspect Volatile_Function,Aspect Value_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{15e}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{116,,pragma Volatile_Full_Access}.
  
  @node Aspect Volatile_Function,Aspect Warnings,Aspect Volatile_Full_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{15f}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{118,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{160}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{11a,,pragma Warnings},
  where the first argument is @code{ON} or @code{OFF} and the second argument
  is the entity.
  
  @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top
! @anchor{gnat_rm/implementation_defined_attributes doc}@anchor{161}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{162}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
--- 9983,10191 ----
  Manual, section 6.10.
  
  @node Aspect Remote_Access_Type,Aspect Secondary_Stack_Size,Aspect Relaxed_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{159}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{dc,,pragma Remote_Access_Type}.
  
  @node Aspect Secondary_Stack_Size,Aspect Scalar_Storage_Order,Aspect Remote_Access_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{15a}
  @section Aspect Secondary_Stack_Size
  
  
  @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{e2,,pragma Secondary_Stack_Size}.
  
  @node Aspect Scalar_Storage_Order,Aspect Shared,Aspect Secondary_Stack_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{15b}
  @section Aspect Scalar_Storage_Order
  
  
  @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{15c,,attribute Scalar_Storage_Order}.
  
! @node Aspect Shared,Aspect Side_Effects,Aspect Scalar_Storage_Order,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{15d}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{e5,,pragma Shared}
  and is thus a synonym for aspect @code{Atomic}.
  
! @node Aspect Side_Effects,Aspect Simple_Storage_Pool,Aspect Shared,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-side-effects}@anchor{15e}
! @section Aspect Side_Effects
! 
! 
! @geindex Side_Effects
! 
! This aspect is equivalent to @ref{e9,,pragma Side_Effects}.
! 
! @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Side_Effects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{15f}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{ec,,attribute Simple_Storage_Pool}.
  
  @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{160}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{eb,,pragma Simple_Storage_Pool_Type}.
  
  @node Aspect SPARK_Mode,Aspect Suppress_Debug_Info,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{161}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{f3,,pragma SPARK_Mode} and
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
  @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect SPARK_Mode,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{162}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{fb,,pragma Suppress_Debug_Info}.
  
  @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{163}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{fe,,pragma Suppress_Initialization}.
  
  @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{164}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{102,,pragma Test_Case}.
  
  @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{165}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{104,,pragma Thread_Local_Storage}.
  
  @node Aspect Universal_Aliasing,Aspect Unmodified,Aspect Thread_Local_Storage,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{166}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{10f,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{167}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{111,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{168}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{113,,pragma Unreferenced}.
  
  When using the @code{-gnat2022} switch, this aspect is also supported on formal
  parameters, which is in particular the only form possible for expression
  functions.
  
! @node Aspect Unreferenced_Objects,Aspect User_Aspect,Aspect Unreferenced,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{169}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{115,,pragma Unreferenced_Objects}.
  
! @node Aspect User_Aspect,Aspect Value_Size,Aspect Unreferenced_Objects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-user-aspect}@anchor{16a}
! @section Aspect User_Aspect
! 
! 
! @geindex User_Aspect
! 
! This aspect takes an argument that is the name of an aspect defined by a
! User_Aspect_Definition configuration pragma.
! A User_Aspect aspect specification is semantically equivalent to
! replicating the set of aspect specifications associated with the named
! pragma-defined aspect.
! 
! @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect User_Aspect,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{16b}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{16c,,attribute Value_Size}.
  
  @node Aspect Volatile_Full_Access,Aspect Volatile_Function,Aspect Value_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{16d}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{11f,,pragma Volatile_Full_Access}.
  
  @node Aspect Volatile_Function,Aspect Warnings,Aspect Volatile_Full_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{16e}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{121,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{16f}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{123,,pragma Warnings},
  where the first argument is @code{ON} or @code{OFF} and the second argument
  is the entity.
  
  @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top
! @anchor{gnat_rm/implementation_defined_attributes doc}@anchor{170}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{171}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
*************** consideration, you should minimize the u
*** 10310,10316 ****
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{163}
  @section Attribute Abort_Signal
  
  
--- 10291,10297 ----
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{172}
  @section Attribute Abort_Signal
  
  
*************** completely outside the normal semantics
*** 10324,10330 ****
  intercept the abort exception).
  
  @node Attribute Address_Size,Attribute Asm_Input,Attribute Abort_Signal,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{164}
  @section Attribute Address_Size
  
  
--- 10305,10311 ----
  intercept the abort exception).
  
  @node Attribute Address_Size,Attribute Asm_Input,Attribute Abort_Signal,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{173}
  @section Attribute Address_Size
  
  
*************** reference to System.Address’Size is no
*** 10340,10346 ****
  is a private type.
  
  @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{165}
  @section Attribute Asm_Input
  
  
--- 10321,10327 ----
  is a private type.
  
  @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{174}
  @section Attribute Asm_Input
  
  
*************** to be a static expression, and is the co
*** 10354,10363 ****
  value to be used as the input argument.  The possible values for the
  constant are the same as those used in the RTL, and are dependent on
  the configuration file used to built the GCC back end.
! @ref{166,,Machine Code Insertions}
  
  @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{167}
  @section Attribute Asm_Output
  
  
--- 10335,10344 ----
  value to be used as the input argument.  The possible values for the
  constant are the same as those used in the RTL, and are dependent on
  the configuration file used to built the GCC back end.
! @ref{175,,Machine Code Insertions}
  
  @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{176}
  @section Attribute Asm_Output
  
  
*************** result.  The possible values for constra
*** 10373,10382 ****
  the RTL, and are dependent on the configuration file used to build the
  GCC back end.  If there are no output operands, then this argument may
  either be omitted, or explicitly given as @code{No_Output_Operands}.
! @ref{166,,Machine Code Insertions}
  
  @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{168}
  @section Attribute Atomic_Always_Lock_Free
  
  
--- 10354,10363 ----
  the RTL, and are dependent on the configuration file used to build the
  GCC back end.  If there are no output operands, then this argument may
  either be omitted, or explicitly given as @code{No_Output_Operands}.
! @ref{175,,Machine Code Insertions}
  
  @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{177}
  @section Attribute Atomic_Always_Lock_Free
  
  
*************** and False otherwise.  The result indicat
*** 10388,10394 ****
  supported by the target for the given type.
  
  @node Attribute Bit,Attribute Bit_Position,Attribute Atomic_Always_Lock_Free,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{169}
  @section Attribute Bit
  
  
--- 10369,10375 ----
  supported by the target for the given type.
  
  @node Attribute Bit,Attribute Bit_Position,Attribute Atomic_Always_Lock_Free,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{178}
  @section Attribute Bit
  
  
*************** This attribute is designed to be compati
*** 10419,10425 ****
  and implementation of the @code{Bit} attribute.
  
  @node Attribute Bit_Position,Attribute Code_Address,Attribute Bit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{16a}
  @section Attribute Bit_Position
  
  
--- 10400,10406 ----
  and implementation of the @code{Bit} attribute.
  
  @node Attribute Bit_Position,Attribute Code_Address,Attribute Bit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{179}
  @section Attribute Bit_Position
  
  
*************** type `universal_integer'.  The value dep
*** 10434,10440 ****
  the containing record @code{R}.
  
  @node Attribute Code_Address,Attribute Compiler_Version,Attribute Bit_Position,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{16b}
  @section Attribute Code_Address
  
  
--- 10415,10421 ----
  the containing record @code{R}.
  
  @node Attribute Code_Address,Attribute Compiler_Version,Attribute Bit_Position,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{17a}
  @section Attribute Code_Address
  
  
*************** the same value as is returned by the cor
*** 10477,10483 ****
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{16c}
  @section Attribute Compiler_Version
  
  
--- 10458,10464 ----
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{17b}
  @section Attribute Compiler_Version
  
  
*************** prefix) yields a static string identifyi
*** 10488,10494 ****
  being used to compile the unit containing the attribute reference.
  
  @node Attribute Constrained,Attribute Default_Bit_Order,Attribute Compiler_Version,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{16d}
  @section Attribute Constrained
  
  
--- 10469,10475 ----
  being used to compile the unit containing the attribute reference.
  
  @node Attribute Constrained,Attribute Default_Bit_Order,Attribute Compiler_Version,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{17c}
  @section Attribute Constrained
  
  
*************** record type without discriminants is alw
*** 10503,10509 ****
  compatible with older Ada compilers, including notably DEC Ada.
  
  @node Attribute Default_Bit_Order,Attribute Default_Scalar_Storage_Order,Attribute Constrained,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{16e}
  @section Attribute Default_Bit_Order
  
  
--- 10484,10490 ----
  compatible with older Ada compilers, including notably DEC Ada.
  
  @node Attribute Default_Bit_Order,Attribute Default_Scalar_Storage_Order,Attribute Constrained,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{17d}
  @section Attribute Default_Bit_Order
  
  
*************** as a @code{Pos} value (0 for @code{High_
*** 10520,10526 ****
  @code{Default_Bit_Order} in package @code{System}.
  
  @node Attribute Default_Scalar_Storage_Order,Attribute Deref,Attribute Default_Bit_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{16f}
  @section Attribute Default_Scalar_Storage_Order
  
  
--- 10501,10507 ----
  @code{Default_Bit_Order} in package @code{System}.
  
  @node Attribute Default_Scalar_Storage_Order,Attribute Deref,Attribute Default_Bit_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{17e}
  @section Attribute Default_Scalar_Storage_Order
  
  
*************** equal to @code{Default_Bit_Order} if uns
*** 10537,10543 ****
  @code{System.Bit_Order} value. This is a static attribute.
  
  @node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{170}
  @section Attribute Deref
  
  
--- 10518,10524 ----
  @code{System.Bit_Order} value. This is a static attribute.
  
  @node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{17f}
  @section Attribute Deref
  
  
*************** a named access-to-@cite{typ} type, excep
*** 10550,10556 ****
  used on the left side of an assignment.
  
  @node Attribute Descriptor_Size,Attribute Elaborated,Attribute Deref,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{171}
  @section Attribute Descriptor_Size
  
  
--- 10531,10537 ----
  used on the left side of an assignment.
  
  @node Attribute Descriptor_Size,Attribute Elaborated,Attribute Deref,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{180}
  @section Attribute Descriptor_Size
  
  
*************** since @code{Positive} has an alignment o
*** 10579,10585 ****
  which yields a size of 32 bits, i.e. including 16 bits of padding.
  
  @node Attribute Elaborated,Attribute Elab_Body,Attribute Descriptor_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{172}
  @section Attribute Elaborated
  
  
--- 10560,10566 ----
  which yields a size of 32 bits, i.e. including 16 bits of padding.
  
  @node Attribute Elaborated,Attribute Elab_Body,Attribute Descriptor_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{181}
  @section Attribute Elaborated
  
  
*************** units has been completed.  An exception
*** 10594,10600 ****
  elaboration, the value is always False for such units.
  
  @node Attribute Elab_Body,Attribute Elab_Spec,Attribute Elaborated,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{173}
  @section Attribute Elab_Body
  
  
--- 10575,10581 ----
  elaboration, the value is always False for such units.
  
  @node Attribute Elab_Body,Attribute Elab_Spec,Attribute Elaborated,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{182}
  @section Attribute Elab_Body
  
  
*************** e.g., if it is necessary to do selective
*** 10610,10616 ****
  error.
  
  @node Attribute Elab_Spec,Attribute Elab_Subp_Body,Attribute Elab_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{174}
  @section Attribute Elab_Spec
  
  
--- 10591,10597 ----
  error.
  
  @node Attribute Elab_Spec,Attribute Elab_Subp_Body,Attribute Elab_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{183}
  @section Attribute Elab_Spec
  
  
*************** Ada code, e.g., if it is necessary to do
*** 10626,10632 ****
  some error.
  
  @node Attribute Elab_Subp_Body,Attribute Emax,Attribute Elab_Spec,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{175}
  @section Attribute Elab_Subp_Body
  
  
--- 10607,10613 ----
  some error.
  
  @node Attribute Elab_Subp_Body,Attribute Emax,Attribute Elab_Spec,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{184}
  @section Attribute Elab_Subp_Body
  
  
*************** elaboration procedure by the binder in C
*** 10640,10646 ****
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{176}
  @section Attribute Emax
  
  
--- 10621,10627 ----
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{185}
  @section Attribute Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 10653,10659 ****
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{177}
  @section Attribute Enabled
  
  
--- 10634,10640 ----
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{186}
  @section Attribute Enabled
  
  
*************** a @code{pragma Suppress} or @code{pragma
*** 10677,10683 ****
  the package or subprogram, controlling whether the check will be present.
  
  @node Attribute Enum_Rep,Attribute Enum_Val,Attribute Enabled,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{178}
  @section Attribute Enum_Rep
  
  
--- 10658,10664 ----
  the package or subprogram, controlling whether the check will be present.
  
  @node Attribute Enum_Rep,Attribute Enum_Val,Attribute Enabled,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{187}
  @section Attribute Enum_Rep
  
  
*************** integer calculation is done at run time,
*** 10717,10723 ****
  may raise @code{Constraint_Error}.
  
  @node Attribute Enum_Val,Attribute Epsilon,Attribute Enum_Rep,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{179}
  @section Attribute Enum_Val
  
  
--- 10698,10704 ----
  may raise @code{Constraint_Error}.
  
  @node Attribute Enum_Val,Attribute Epsilon,Attribute Enum_Rep,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{188}
  @section Attribute Enum_Val
  
  
*************** absence of an enumeration representation
*** 10743,10749 ****
  attribute (i.e., the result is static if the argument is static).
  
  @node Attribute Epsilon,Attribute Fast_Math,Attribute Enum_Val,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{17a}
  @section Attribute Epsilon
  
  
--- 10724,10730 ----
  attribute (i.e., the result is static if the argument is static).
  
  @node Attribute Epsilon,Attribute Fast_Math,Attribute Enum_Val,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{189}
  @section Attribute Epsilon
  
  
*************** the Ada 83 reference manual for an exact
*** 10756,10762 ****
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{17b}
  @section Attribute Fast_Math
  
  
--- 10737,10743 ----
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{18a}
  @section Attribute Fast_Math
  
  
*************** prefix) yields a static Boolean value th
*** 10767,10773 ****
  @code{Fast_Math} is active, and False otherwise.
  
  @node Attribute Finalization_Size,Attribute Fixed_Value,Attribute Fast_Math,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-finalization-size}@anchor{17c}
  @section Attribute Finalization_Size
  
  
--- 10748,10754 ----
  @code{Fast_Math} is active, and False otherwise.
  
  @node Attribute Finalization_Size,Attribute Fixed_Value,Attribute Fast_Math,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-finalization-size}@anchor{18b}
  @section Attribute Finalization_Size
  
  
*************** class-wide type whose tag denotes a type
*** 10785,10791 ****
  Note that only heap-allocated objects contain finalization data.
  
  @node Attribute Fixed_Value,Attribute From_Any,Attribute Finalization_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{17d}
  @section Attribute Fixed_Value
  
  
--- 10766,10772 ----
  Note that only heap-allocated objects contain finalization data.
  
  @node Attribute Fixed_Value,Attribute From_Any,Attribute Finalization_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{18c}
  @section Attribute Fixed_Value
  
  
*************** This attribute is primarily intended for
*** 10812,10818 ****
  input-output functions for fixed-point values.
  
  @node Attribute From_Any,Attribute Has_Access_Values,Attribute Fixed_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{17e}
  @section Attribute From_Any
  
  
--- 10793,10799 ----
  input-output functions for fixed-point values.
  
  @node Attribute From_Any,Attribute Has_Access_Values,Attribute Fixed_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{18d}
  @section Attribute From_Any
  
  
*************** This internal attribute is used for the
*** 10822,10828 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Has_Access_Values,Attribute Has_Discriminants,Attribute From_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{17f}
  @section Attribute Has_Access_Values
  
  
--- 10803,10809 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Has_Access_Values,Attribute Has_Discriminants,Attribute From_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{18e}
  @section Attribute Has_Access_Values
  
  
*************** definitions.  If the attribute is applie
*** 10840,10846 ****
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Has_Discriminants,Attribute Has_Tagged_Values,Attribute Has_Access_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{180}
  @section Attribute Has_Discriminants
  
  
--- 10821,10827 ----
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Has_Discriminants,Attribute Has_Tagged_Values,Attribute Has_Access_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{18f}
  @section Attribute Has_Discriminants
  
  
*************** definitions.  If the attribute is applie
*** 10856,10862 ****
  indicates whether or not the corresponding actual type has discriminants.
  
  @node Attribute Has_Tagged_Values,Attribute Img,Attribute Has_Discriminants,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-tagged-values}@anchor{181}
  @section Attribute Has_Tagged_Values
  
  
--- 10837,10843 ----
  indicates whether or not the corresponding actual type has discriminants.
  
  @node Attribute Has_Tagged_Values,Attribute Img,Attribute Has_Discriminants,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-tagged-values}@anchor{190}
  @section Attribute Has_Tagged_Values
  
  
*************** definitions. If the attribute is applied
*** 10873,10879 ****
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Img,Attribute Initialized,Attribute Has_Tagged_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{182}
  @section Attribute Img
  
  
--- 10854,10860 ----
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Img,Attribute Initialized,Attribute Has_Tagged_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{191}
  @section Attribute Img
  
  
*************** that returns the appropriate string when
*** 10903,10909 ****
  in an instantiation as a function parameter.
  
  @node Attribute Initialized,Attribute Integer_Value,Attribute Img,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-initialized}@anchor{183}
  @section Attribute Initialized
  
  
--- 10884,10890 ----
  in an instantiation as a function parameter.
  
  @node Attribute Initialized,Attribute Integer_Value,Attribute Img,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-initialized}@anchor{192}
  @section Attribute Initialized
  
  
*************** For the syntax and semantics of this att
*** 10913,10919 ****
  Manual, section 6.10.
  
  @node Attribute Integer_Value,Attribute Invalid_Value,Attribute Initialized,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{184}
  @section Attribute Integer_Value
  
  
--- 10894,10900 ----
  Manual, section 6.10.
  
  @node Attribute Integer_Value,Attribute Invalid_Value,Attribute Initialized,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{193}
  @section Attribute Integer_Value
  
  
*************** This attribute is primarily intended for
*** 10941,10947 ****
  standard input-output functions for fixed-point values.
  
  @node Attribute Invalid_Value,Attribute Iterable,Attribute Integer_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{185}
  @section Attribute Invalid_Value
  
  
--- 10922,10928 ----
  standard input-output functions for fixed-point values.
  
  @node Attribute Invalid_Value,Attribute Iterable,Attribute Integer_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{194}
  @section Attribute Invalid_Value
  
  
*************** including the ability to modify the valu
*** 10955,10961 ****
  relevant environment variables at run time.
  
  @node Attribute Iterable,Attribute Large,Attribute Invalid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-iterable}@anchor{186}
  @section Attribute Iterable
  
  
--- 10936,10942 ----
  relevant environment variables at run time.
  
  @node Attribute Iterable,Attribute Large,Attribute Invalid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-iterable}@anchor{195}
  @section Attribute Iterable
  
  
*************** relevant environment variables at run ti
*** 10964,10970 ****
  Equivalent to Aspect Iterable.
  
  @node Attribute Large,Attribute Library_Level,Attribute Iterable,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{187}
  @section Attribute Large
  
  
--- 10945,10951 ----
  Equivalent to Aspect Iterable.
  
  @node Attribute Large,Attribute Library_Level,Attribute Iterable,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{196}
  @section Attribute Large
  
  
*************** the Ada 83 reference manual for an exact
*** 10977,10983 ****
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{188}
  @section Attribute Library_Level
  
  
--- 10958,10964 ----
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{197}
  @section Attribute Library_Level
  
  
*************** end Gen;
*** 11003,11009 ****
  @end example
  
  @node Attribute Loop_Entry,Attribute Machine_Size,Attribute Library_Level,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{189}
  @section Attribute Loop_Entry
  
  
--- 10984,10990 ----
  @end example
  
  @node Attribute Loop_Entry,Attribute Machine_Size,Attribute Library_Level,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{198}
  @section Attribute Loop_Entry
  
  
*************** entry. This copy is not performed if the
*** 11036,11042 ****
  corresponding pragmas are ignored or disabled.
  
  @node Attribute Machine_Size,Attribute Mantissa,Attribute Loop_Entry,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{18a}
  @section Attribute Machine_Size
  
  
--- 11017,11023 ----
  corresponding pragmas are ignored or disabled.
  
  @node Attribute Machine_Size,Attribute Mantissa,Attribute Loop_Entry,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{199}
  @section Attribute Machine_Size
  
  
*************** This attribute is identical to the @code
*** 11046,11052 ****
  provided for compatibility with the DEC Ada 83 attribute of this name.
  
  @node Attribute Mantissa,Attribute Maximum_Alignment,Attribute Machine_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{18b}
  @section Attribute Mantissa
  
  
--- 11027,11033 ----
  provided for compatibility with the DEC Ada 83 attribute of this name.
  
  @node Attribute Mantissa,Attribute Maximum_Alignment,Attribute Machine_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{19a}
  @section Attribute Mantissa
  
  
*************** the Ada 83 reference manual for an exact
*** 11059,11065 ****
  this attribute.
  
  @node Attribute Maximum_Alignment,Attribute Max_Integer_Size,Attribute Mantissa,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{18c}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{18d}
  @section Attribute Maximum_Alignment
  
  
--- 11040,11046 ----
  this attribute.
  
  @node Attribute Maximum_Alignment,Attribute Max_Integer_Size,Attribute Mantissa,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{19b}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{19c}
  @section Attribute Maximum_Alignment
  
  
*************** for an object, guaranteeing that it is p
*** 11075,11081 ****
  cases.
  
  @node Attribute Max_Integer_Size,Attribute Mechanism_Code,Attribute Maximum_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-max-integer-size}@anchor{18e}
  @section Attribute Max_Integer_Size
  
  
--- 11056,11062 ----
  cases.
  
  @node Attribute Max_Integer_Size,Attribute Mechanism_Code,Attribute Maximum_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-max-integer-size}@anchor{19d}
  @section Attribute Max_Integer_Size
  
  
*************** prefix) provides the size of the largest
*** 11086,11092 ****
  the target. The result is a static constant.
  
  @node Attribute Mechanism_Code,Attribute Null_Parameter,Attribute Max_Integer_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{18f}
  @section Attribute Mechanism_Code
  
  
--- 11067,11073 ----
  the target. The result is a static constant.
  
  @node Attribute Mechanism_Code,Attribute Null_Parameter,Attribute Max_Integer_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{19e}
  @section Attribute Mechanism_Code
  
  
*************** by reference
*** 11117,11123 ****
  @end table
  
  @node Attribute Null_Parameter,Attribute Object_Size,Attribute Mechanism_Code,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{190}
  @section Attribute Null_Parameter
  
  
--- 11098,11104 ----
  @end table
  
  @node Attribute Null_Parameter,Attribute Object_Size,Attribute Mechanism_Code,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{19f}
  @section Attribute Null_Parameter
  
  
*************** There is no way of indicating this witho
*** 11142,11148 ****
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{141}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{191}
  @section Attribute Object_Size
  
  
--- 11123,11129 ----
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{14e}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{1a0}
  @section Attribute Object_Size
  
  
*************** Similar additional checks are performed
*** 11212,11218 ****
  statically matching subtypes.
  
  @node Attribute Old,Attribute Passed_By_Reference,Attribute Object_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{192}
  @section Attribute Old
  
  
--- 11193,11199 ----
  statically matching subtypes.
  
  @node Attribute Old,Attribute Passed_By_Reference,Attribute Object_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{1a1}
  @section Attribute Old
  
  
*************** definition are allowed under control of
*** 11227,11233 ****
  implementation defined pragma @code{Unevaluated_Use_Of_Old}.
  
  @node Attribute Passed_By_Reference,Attribute Pool_Address,Attribute Old,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{193}
  @section Attribute Passed_By_Reference
  
  
--- 11208,11214 ----
  implementation defined pragma @code{Unevaluated_Use_Of_Old}.
  
  @node Attribute Passed_By_Reference,Attribute Pool_Address,Attribute Old,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{1a2}
  @section Attribute Passed_By_Reference
  
  
*************** passed by copy in calls.  For scalar typ
*** 11243,11249 ****
  and is static.  For non-scalar types, the result is nonstatic.
  
  @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{194}
  @section Attribute Pool_Address
  
  
--- 11224,11230 ----
  and is static.  For non-scalar types, the result is nonstatic.
  
  @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{1a3}
  @section Attribute Pool_Address
  
  
*************** For an object created by @code{new}, @co
*** 11265,11271 ****
  what is passed to @code{Allocate} and returned from @code{Deallocate}.
  
  @node Attribute Range_Length,Attribute Restriction_Set,Attribute Pool_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{195}
  @section Attribute Range_Length
  
  
--- 11246,11252 ----
  what is passed to @code{Allocate} and returned from @code{Deallocate}.
  
  @node Attribute Range_Length,Attribute Restriction_Set,Attribute Pool_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{1a4}
  @section Attribute Range_Length
  
  
*************** applied to the index subtype of a one di
*** 11278,11284 ****
  same result as @code{Length} applied to the array itself.
  
  @node Attribute Restriction_Set,Attribute Result,Attribute Range_Length,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{196}
  @section Attribute Restriction_Set
  
  
--- 11259,11265 ----
  same result as @code{Length} applied to the array itself.
  
  @node Attribute Restriction_Set,Attribute Result,Attribute Range_Length,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{1a5}
  @section Attribute Restriction_Set
  
  
*************** Restrictions pragma, they are not analyz
*** 11348,11354 ****
  so they do not have a type.
  
  @node Attribute Result,Attribute Safe_Emax,Attribute Restriction_Set,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{197}
  @section Attribute Result
  
  
--- 11329,11335 ----
  so they do not have a type.
  
  @node Attribute Result,Attribute Safe_Emax,Attribute Restriction_Set,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{1a6}
  @section Attribute Result
  
  
*************** For a further discussion of the use of t
*** 11361,11367 ****
  see the description of pragma Postcondition.
  
  @node Attribute Safe_Emax,Attribute Safe_Large,Attribute Result,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{198}
  @section Attribute Safe_Emax
  
  
--- 11342,11348 ----
  see the description of pragma Postcondition.
  
  @node Attribute Safe_Emax,Attribute Safe_Large,Attribute Result,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{1a7}
  @section Attribute Safe_Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 11374,11380 ****
  this attribute.
  
  @node Attribute Safe_Large,Attribute Safe_Small,Attribute Safe_Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{199}
  @section Attribute Safe_Large
  
  
--- 11355,11361 ----
  this attribute.
  
  @node Attribute Safe_Large,Attribute Safe_Small,Attribute Safe_Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{1a8}
  @section Attribute Safe_Large
  
  
*************** the Ada 83 reference manual for an exact
*** 11387,11393 ****
  this attribute.
  
  @node Attribute Safe_Small,Attribute Scalar_Storage_Order,Attribute Safe_Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{19a}
  @section Attribute Safe_Small
  
  
--- 11368,11374 ----
  this attribute.
  
  @node Attribute Safe_Small,Attribute Scalar_Storage_Order,Attribute Safe_Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{1a9}
  @section Attribute Safe_Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11400,11406 ****
  this attribute.
  
  @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{14f}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{19b}
  @section Attribute Scalar_Storage_Order
  
  
--- 11381,11387 ----
  this attribute.
  
  @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{15c}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{1aa}
  @section Attribute Scalar_Storage_Order
  
  
*************** Note that debuggers may be unable to dis
*** 11563,11569 ****
  components of a type for which the opposite storage order is specified.
  
  @node Attribute Simple_Storage_Pool,Attribute Small,Attribute Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{e4}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{19c}
  @section Attribute Simple_Storage_Pool
  
  
--- 11544,11550 ----
  components of a type for which the opposite storage order is specified.
  
  @node Attribute Simple_Storage_Pool,Attribute Small,Attribute Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{ec}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{1ab}
  @section Attribute Simple_Storage_Pool
  
  
*************** as defined in section 13.11.2 of the Ada
*** 11626,11632 ****
  term `simple storage pool' is substituted for `storage pool'.
  
  @node Attribute Small,Attribute Small_Denominator,Attribute Simple_Storage_Pool,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{19d}
  @section Attribute Small
  
  
--- 11607,11613 ----
  term `simple storage pool' is substituted for `storage pool'.
  
  @node Attribute Small,Attribute Small_Denominator,Attribute Simple_Storage_Pool,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{1ac}
  @section Attribute Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11642,11648 ****
  this attribute when applied to floating-point types.
  
  @node Attribute Small_Denominator,Attribute Small_Numerator,Attribute Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-denominator}@anchor{19e}
  @section Attribute Small_Denominator
  
  
--- 11623,11629 ----
  this attribute when applied to floating-point types.
  
  @node Attribute Small_Denominator,Attribute Small_Numerator,Attribute Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-denominator}@anchor{1ad}
  @section Attribute Small_Denominator
  
  
*************** denominator in the representation of @co
*** 11655,11661 ****
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Small_Numerator,Attribute Storage_Unit,Attribute Small_Denominator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-numerator}@anchor{19f}
  @section Attribute Small_Numerator
  
  
--- 11636,11642 ----
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Small_Numerator,Attribute Storage_Unit,Attribute Small_Denominator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-numerator}@anchor{1ae}
  @section Attribute Small_Numerator
  
  
*************** numerator in the representation of @code
*** 11668,11674 ****
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Storage_Unit,Attribute Stub_Type,Attribute Small_Numerator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{1a0}
  @section Attribute Storage_Unit
  
  
--- 11649,11655 ----
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Storage_Unit,Attribute Stub_Type,Attribute Small_Numerator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{1af}
  @section Attribute Storage_Unit
  
  
*************** with coprime factors (i.e. as an irreduc
*** 11678,11684 ****
  prefix) provides the same value as @code{System.Storage_Unit}.
  
  @node Attribute Stub_Type,Attribute System_Allocator_Alignment,Attribute Storage_Unit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{1a1}
  @section Attribute Stub_Type
  
  
--- 11659,11665 ----
  prefix) provides the same value as @code{System.Storage_Unit}.
  
  @node Attribute Stub_Type,Attribute System_Allocator_Alignment,Attribute Storage_Unit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{1b0}
  @section Attribute Stub_Type
  
  
*************** unit @code{System.Partition_Interface}.
*** 11702,11708 ****
  an implicit dependency on this unit.
  
  @node Attribute System_Allocator_Alignment,Attribute Target_Name,Attribute Stub_Type,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{1a2}
  @section Attribute System_Allocator_Alignment
  
  
--- 11683,11689 ----
  an implicit dependency on this unit.
  
  @node Attribute System_Allocator_Alignment,Attribute Target_Name,Attribute Stub_Type,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{1b1}
  @section Attribute System_Allocator_Alignment
  
  
*************** with alignment too large or to enable a
*** 11719,11725 ****
  alignment request is larger than this value.
  
  @node Attribute Target_Name,Attribute To_Address,Attribute System_Allocator_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{1a3}
  @section Attribute Target_Name
  
  
--- 11700,11706 ----
  alignment request is larger than this value.
  
  @node Attribute Target_Name,Attribute To_Address,Attribute System_Allocator_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{1b2}
  @section Attribute Target_Name
  
  
*************** standard gcc target name without the ter
*** 11732,11738 ****
  example, GNAT 5.0 on windows yields “i586-pc-mingw32msv”).
  
  @node Attribute To_Address,Attribute To_Any,Attribute Target_Name,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{1a4}
  @section Attribute To_Address
  
  
--- 11713,11719 ----
  example, GNAT 5.0 on windows yields “i586-pc-mingw32msv”).
  
  @node Attribute To_Address,Attribute To_Any,Attribute Target_Name,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{1b3}
  @section Attribute To_Address
  
  
*************** modular manner (e.g., -1 means the same
*** 11755,11761 ****
  a 32 bits machine).
  
  @node Attribute To_Any,Attribute Type_Class,Attribute To_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{1a5}
  @section Attribute To_Any
  
  
--- 11736,11742 ----
  a 32 bits machine).
  
  @node Attribute To_Any,Attribute Type_Class,Attribute To_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{1b4}
  @section Attribute To_Any
  
  
*************** This internal attribute is used for the
*** 11765,11771 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Type_Class,Attribute Type_Key,Attribute To_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{1a6}
  @section Attribute Type_Class
  
  
--- 11746,11752 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Type_Class,Attribute Type_Key,Attribute To_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{1b5}
  @section Attribute Type_Class
  
  
*************** applies to all concurrent types.  This a
*** 11795,11801 ****
  be compatible with the DEC Ada 83 attribute of the same name.
  
  @node Attribute Type_Key,Attribute TypeCode,Attribute Type_Class,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{1a7}
  @section Attribute Type_Key
  
  
--- 11776,11782 ----
  be compatible with the DEC Ada 83 attribute of the same name.
  
  @node Attribute Type_Key,Attribute TypeCode,Attribute Type_Class,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{1b6}
  @section Attribute Type_Key
  
  
*************** about the type or subtype. This provides
*** 11807,11813 ****
  other implementations that support this attribute.
  
  @node Attribute TypeCode,Attribute Unconstrained_Array,Attribute Type_Key,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{1a8}
  @section Attribute TypeCode
  
  
--- 11788,11794 ----
  other implementations that support this attribute.
  
  @node Attribute TypeCode,Attribute Unconstrained_Array,Attribute Type_Key,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{1b7}
  @section Attribute TypeCode
  
  
*************** This internal attribute is used for the
*** 11817,11823 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute TypeCode,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{1a9}
  @section Attribute Unconstrained_Array
  
  
--- 11798,11804 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute TypeCode,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{1b8}
  @section Attribute Unconstrained_Array
  
  
*************** still static, and yields the result of a
*** 11831,11837 ****
  generic actual.
  
  @node Attribute Universal_Literal_String,Attribute Unrestricted_Access,Attribute Unconstrained_Array,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{1aa}
  @section Attribute Universal_Literal_String
  
  
--- 11812,11818 ----
  generic actual.
  
  @node Attribute Universal_Literal_String,Attribute Unrestricted_Access,Attribute Unconstrained_Array,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{1b9}
  @section Attribute Universal_Literal_String
  
  
*************** end;
*** 11859,11865 ****
  @end example
  
  @node Attribute Unrestricted_Access,Attribute Update,Attribute Universal_Literal_String,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{1ab}
  @section Attribute Unrestricted_Access
  
  
--- 11840,11846 ----
  @end example
  
  @node Attribute Unrestricted_Access,Attribute Update,Attribute Universal_Literal_String,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{1ba}
  @section Attribute Unrestricted_Access
  
  
*************** In general this is a risky approach. It
*** 12046,12052 ****
  of GNAT to another, so are best avoided if possible.
  
  @node Attribute Update,Attribute Valid_Value,Attribute Unrestricted_Access,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{1ac}
  @section Attribute Update
  
  
--- 12027,12033 ----
  of GNAT to another, so are best avoided if possible.
  
  @node Attribute Update,Attribute Valid_Value,Attribute Unrestricted_Access,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{1bb}
  @section Attribute Update
  
  
*************** A := A'Update ((1, 2) => 20, (3, 4) => 3
*** 12127,12133 ****
  which changes element (1,2) to 20 and (3,4) to 30.
  
  @node Attribute Valid_Value,Attribute Valid_Scalars,Attribute Update,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-value}@anchor{1ad}
  @section Attribute Valid_Value
  
  
--- 12108,12114 ----
  which changes element (1,2) to 20 and (3,4) to 30.
  
  @node Attribute Valid_Value,Attribute Valid_Scalars,Attribute Update,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-value}@anchor{1bc}
  @section Attribute Valid_Value
  
  
*************** a String, and returns Boolean. @code{T'V
*** 12139,12145 ****
  if and only if @code{T'Value (S)} would not raise Constraint_Error.
  
  @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Valid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1ae}
  @section Attribute Valid_Scalars
  
  
--- 12120,12126 ----
  if and only if @code{T'Value (S)} would not raise Constraint_Error.
  
  @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Valid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1bd}
  @section Attribute Valid_Scalars
  
  
*************** write a function with a single use of th
*** 12173,12179 ****
  function from multiple places.
  
  @node Attribute VADS_Size,Attribute Value_Size,Attribute Valid_Scalars,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{1af}
  @section Attribute VADS_Size
  
  
--- 12154,12160 ----
  function from multiple places.
  
  @node Attribute VADS_Size,Attribute Value_Size,Attribute Valid_Scalars,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{1be}
  @section Attribute VADS_Size
  
  
*************** gives the result that would be obtained
*** 12193,12199 ****
  the corresponding type.
  
  @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{15d}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1b0}
  @section Attribute Value_Size
  
  
--- 12174,12180 ----
  the corresponding type.
  
  @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{16c}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1bf}
  @section Attribute Value_Size
  
  
*************** a value of the given subtype.  It is the
*** 12207,12213 ****
  but, unlike @code{Size}, may be set for non-first subtypes.
  
  @node Attribute Wchar_T_Size,Attribute Word_Size,Attribute Value_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{1b1}
  @section Attribute Wchar_T_Size
  
  
--- 12188,12194 ----
  but, unlike @code{Size}, may be set for non-first subtypes.
  
  @node Attribute Wchar_T_Size,Attribute Word_Size,Attribute Value_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{1c0}
  @section Attribute Wchar_T_Size
  
  
*************** primarily for constructing the definitio
*** 12219,12225 ****
  package @code{Interfaces.C}. The result is a static constant.
  
  @node Attribute Word_Size,,Attribute Wchar_T_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{1b2}
  @section Attribute Word_Size
  
  
--- 12200,12206 ----
  package @code{Interfaces.C}. The result is a static constant.
  
  @node Attribute Word_Size,,Attribute Wchar_T_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{1c1}
  @section Attribute Word_Size
  
  
*************** prefix) provides the value @code{System.
*** 12230,12236 ****
  a static constant.
  
  @node Standard and Implementation Defined Restrictions,Implementation Advice,Implementation Defined Attributes,Top
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions doc}@anchor{1b3}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1b4}@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}
  @chapter Standard and Implementation Defined Restrictions
  
  
--- 12211,12217 ----
  a static constant.
  
  @node Standard and Implementation Defined Restrictions,Implementation Advice,Implementation Defined Attributes,Top
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions doc}@anchor{1c2}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1c3}@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}
  @chapter Standard and Implementation Defined Restrictions
  
  
*************** language defined or GNAT-specific, are l
*** 12259,12265 ****
  @end menu
  
  @node Partition-Wide Restrictions,Program Unit Level Restrictions,,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{1b5}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1b6}
  @section Partition-Wide Restrictions
  
  
--- 12240,12246 ----
  @end menu
  
  @node Partition-Wide Restrictions,Program Unit Level Restrictions,,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{1c4}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1c5}
  @section Partition-Wide Restrictions
  
  
*************** then all compilation units in the partit
*** 12341,12347 ****
--- 12322,12330 ----
  * No_Unchecked_Access:: 
  * No_Unchecked_Conversion:: 
  * No_Unchecked_Deallocation:: 
+ * No_Use_Of_Attribute:: 
  * No_Use_Of_Entity:: 
+ * No_Use_Of_Pragma:: 
  * Pure_Barriers:: 
  * Simple_Barriers:: 
  * Static_Priorities:: 
*************** then all compilation units in the partit
*** 12350,12356 ****
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1b7}
  @subsection Immediate_Reclamation
  
  
--- 12333,12339 ----
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1c6}
  @subsection Immediate_Reclamation
  
  
*************** deallocation, any storage reserved at ru
*** 12362,12368 ****
  immediately reclaimed when the object no longer exists.
  
  @node Max_Asynchronous_Select_Nesting,Max_Entry_Queue_Length,Immediate_Reclamation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{1b8}
  @subsection Max_Asynchronous_Select_Nesting
  
  
--- 12345,12351 ----
  immediately reclaimed when the object no longer exists.
  
  @node Max_Asynchronous_Select_Nesting,Max_Entry_Queue_Length,Immediate_Reclamation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{1c7}
  @subsection Max_Asynchronous_Select_Nesting
  
  
*************** detected at compile time. Violations of
*** 12374,12380 ****
  other than zero cause Storage_Error to be raised.
  
  @node Max_Entry_Queue_Length,Max_Protected_Entries,Max_Asynchronous_Select_Nesting,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{1b9}
  @subsection Max_Entry_Queue_Length
  
  
--- 12357,12363 ----
  other than zero cause Storage_Error to be raised.
  
  @node Max_Entry_Queue_Length,Max_Protected_Entries,Max_Asynchronous_Select_Nesting,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{1c8}
  @subsection Max_Entry_Queue_Length
  
  
*************** compatibility purposes (and a warning wi
*** 12395,12401 ****
  warnings on obsolescent features are activated).
  
  @node Max_Protected_Entries,Max_Select_Alternatives,Max_Entry_Queue_Length,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{1ba}
  @subsection Max_Protected_Entries
  
  
--- 12378,12384 ----
  warnings on obsolescent features are activated).
  
  @node Max_Protected_Entries,Max_Select_Alternatives,Max_Entry_Queue_Length,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{1c9}
  @subsection Max_Protected_Entries
  
  
*************** bounds of every entry family of a protec
*** 12406,12412 ****
  defined by a discriminant of a subtype whose corresponding bound is static.
  
  @node Max_Select_Alternatives,Max_Storage_At_Blocking,Max_Protected_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{1bb}
  @subsection Max_Select_Alternatives
  
  
--- 12389,12395 ----
  defined by a discriminant of a subtype whose corresponding bound is static.
  
  @node Max_Select_Alternatives,Max_Storage_At_Blocking,Max_Protected_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{1ca}
  @subsection Max_Select_Alternatives
  
  
*************** defined by a discriminant of a subtype w
*** 12415,12421 ****
  [RM D.7] Specifies the maximum number of alternatives in a selective accept.
  
  @node Max_Storage_At_Blocking,Max_Task_Entries,Max_Select_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{1bc}
  @subsection Max_Storage_At_Blocking
  
  
--- 12398,12404 ----
  [RM D.7] Specifies the maximum number of alternatives in a selective accept.
  
  @node Max_Storage_At_Blocking,Max_Task_Entries,Max_Select_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{1cb}
  @subsection Max_Storage_At_Blocking
  
  
*************** Storage_Size that can be retained by a b
*** 12426,12432 ****
  restriction causes Storage_Error to be raised.
  
  @node Max_Task_Entries,Max_Tasks,Max_Storage_At_Blocking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{1bd}
  @subsection Max_Task_Entries
  
  
--- 12409,12415 ----
  restriction causes Storage_Error to be raised.
  
  @node Max_Task_Entries,Max_Tasks,Max_Storage_At_Blocking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{1cc}
  @subsection Max_Task_Entries
  
  
*************** defined by a discriminant of a subtype w
*** 12439,12445 ****
  corresponding bound is static.
  
  @node Max_Tasks,No_Abort_Statements,Max_Task_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{1be}
  @subsection Max_Tasks
  
  
--- 12422,12428 ----
  corresponding bound is static.
  
  @node Max_Tasks,No_Abort_Statements,Max_Task_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{1cd}
  @subsection Max_Tasks
  
  
*************** time. Violations of this restriction wit
*** 12452,12458 ****
  Storage_Error to be raised.
  
  @node No_Abort_Statements,No_Access_Parameter_Allocators,Max_Tasks,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{1bf}
  @subsection No_Abort_Statements
  
  
--- 12435,12441 ----
  Storage_Error to be raised.
  
  @node No_Abort_Statements,No_Access_Parameter_Allocators,Max_Tasks,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{1ce}
  @subsection No_Abort_Statements
  
  
*************** Storage_Error to be raised.
*** 12462,12468 ****
  no calls to Task_Identification.Abort_Task.
  
  @node No_Access_Parameter_Allocators,No_Access_Subprograms,No_Abort_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{1c0}
  @subsection No_Access_Parameter_Allocators
  
  
--- 12445,12451 ----
  no calls to Task_Identification.Abort_Task.
  
  @node No_Access_Parameter_Allocators,No_Access_Subprograms,No_Abort_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{1cf}
  @subsection No_Access_Parameter_Allocators
  
  
*************** occurrences of an allocator as the actua
*** 12473,12479 ****
  parameter.
  
  @node No_Access_Subprograms,No_Allocators,No_Access_Parameter_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{1c1}
  @subsection No_Access_Subprograms
  
  
--- 12456,12462 ----
  parameter.
  
  @node No_Access_Subprograms,No_Allocators,No_Access_Parameter_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{1d0}
  @subsection No_Access_Subprograms
  
  
*************** parameter.
*** 12483,12489 ****
  declarations of access-to-subprogram types.
  
  @node No_Allocators,No_Anonymous_Allocators,No_Access_Subprograms,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{1c2}
  @subsection No_Allocators
  
  
--- 12466,12472 ----
  declarations of access-to-subprogram types.
  
  @node No_Allocators,No_Anonymous_Allocators,No_Access_Subprograms,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{1d1}
  @subsection No_Allocators
  
  
*************** declarations of access-to-subprogram typ
*** 12493,12499 ****
  occurrences of an allocator.
  
  @node No_Anonymous_Allocators,No_Asynchronous_Control,No_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{1c3}
  @subsection No_Anonymous_Allocators
  
  
--- 12476,12482 ----
  occurrences of an allocator.
  
  @node No_Anonymous_Allocators,No_Asynchronous_Control,No_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{1d2}
  @subsection No_Anonymous_Allocators
  
  
*************** occurrences of an allocator.
*** 12503,12509 ****
  occurrences of an allocator of anonymous access type.
  
  @node No_Asynchronous_Control,No_Calendar,No_Anonymous_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{1c4}
  @subsection No_Asynchronous_Control
  
  
--- 12486,12492 ----
  occurrences of an allocator of anonymous access type.
  
  @node No_Asynchronous_Control,No_Calendar,No_Anonymous_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{1d3}
  @subsection No_Asynchronous_Control
  
  
*************** occurrences of an allocator of anonymous
*** 12513,12519 ****
  dependences on the predefined package Asynchronous_Task_Control.
  
  @node No_Calendar,No_Coextensions,No_Asynchronous_Control,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{1c5}
  @subsection No_Calendar
  
  
--- 12496,12502 ----
  dependences on the predefined package Asynchronous_Task_Control.
  
  @node No_Calendar,No_Coextensions,No_Asynchronous_Control,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{1d4}
  @subsection No_Calendar
  
  
*************** dependences on the predefined package As
*** 12523,12529 ****
  dependences on package Calendar.
  
  @node No_Coextensions,No_Default_Initialization,No_Calendar,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{1c6}
  @subsection No_Coextensions
  
  
--- 12506,12512 ----
  dependences on package Calendar.
  
  @node No_Coextensions,No_Default_Initialization,No_Calendar,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{1d5}
  @subsection No_Coextensions
  
  
*************** dependences on package Calendar.
*** 12533,12539 ****
  coextensions. See 3.10.2.
  
  @node No_Default_Initialization,No_Delay,No_Coextensions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{1c7}
  @subsection No_Default_Initialization
  
  
--- 12516,12522 ----
  coextensions. See 3.10.2.
  
  @node No_Default_Initialization,No_Delay,No_Coextensions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{1d6}
  @subsection No_Default_Initialization
  
  
*************** is to prohibit all cases of variables de
*** 12550,12556 ****
  initializer (including the case of OUT scalar parameters).
  
  @node No_Delay,No_Dependence,No_Default_Initialization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{1c8}
  @subsection No_Delay
  
  
--- 12533,12539 ----
  initializer (including the case of OUT scalar parameters).
  
  @node No_Delay,No_Dependence,No_Default_Initialization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{1d7}
  @subsection No_Delay
  
  
*************** initializer (including the case of OUT s
*** 12560,12566 ****
  delay statements and no semantic dependences on package Calendar.
  
  @node No_Dependence,No_Direct_Boolean_Operators,No_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{1c9}
  @subsection No_Dependence
  
  
--- 12543,12549 ----
  delay statements and no semantic dependences on package Calendar.
  
  @node No_Dependence,No_Direct_Boolean_Operators,No_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{1d8}
  @subsection No_Dependence
  
  
*************** delay statements and no semantic depende
*** 12569,12578 ****
  [RM 13.12.1] This restriction ensures at compile time that there are no
  dependences on a library unit. For GNAT, this includes implicit implementation
  dependences on units of the runtime library that are created by the compiler
! to support specific constructs of the language.
  
  @node No_Direct_Boolean_Operators,No_Dispatch,No_Dependence,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{1ca}
  @subsection No_Direct_Boolean_Operators
  
  
--- 12552,12592 ----
  [RM 13.12.1] This restriction ensures at compile time that there are no
  dependences on a library unit. For GNAT, this includes implicit implementation
  dependences on units of the runtime library that are created by the compiler
! to support specific constructs of the language. Here are some examples:
! 
! 
! @itemize *
! 
! @item 
! @code{System.Arith_64}: 64-bit arithmetics for 32-bit platforms,
! 
! @item 
! @code{System.Arith_128}: 128-bit arithmetics for 64-bit platforms,
! 
! @item 
! @code{System.Memory}: heap memory allocation routines,
! 
! @item 
! @code{System.Memory_Compare}: memory comparison routine (aka @code{memcmp} for C),
! 
! @item 
! @code{System.Memory_Copy}: memory copy routine (aka @code{memcpy} for C),
! 
! @item 
! @code{System.Memory_Move}: memoy move routine (aka @code{memmove} for C),
! 
! @item 
! @code{System.Memory_Set}: memory set routine (aka @code{memset} for C),
! 
! @item 
! @code{System.Stack_Checking[.Operations]}: stack checking without MMU,
! 
! @item 
! @code{System.GCC}: support routines from the GCC library.
! @end itemize
  
  @node No_Direct_Boolean_Operators,No_Dispatch,No_Dependence,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{1d9}
  @subsection No_Direct_Boolean_Operators
  
  
*************** protocol requires the use of short-circu
*** 12585,12591 ****
  composite boolean operations.
  
  @node No_Dispatch,No_Dispatching_Calls,No_Direct_Boolean_Operators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{1cb}
  @subsection No_Dispatch
  
  
--- 12599,12605 ----
  composite boolean operations.
  
  @node No_Dispatch,No_Dispatching_Calls,No_Direct_Boolean_Operators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{1da}
  @subsection No_Dispatch
  
  
*************** composite boolean operations.
*** 12595,12601 ****
  occurrences of @code{T'Class}, for any (tagged) subtype @code{T}.
  
  @node No_Dispatching_Calls,No_Dynamic_Attachment,No_Dispatch,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{1cc}
  @subsection No_Dispatching_Calls
  
  
--- 12609,12615 ----
  occurrences of @code{T'Class}, for any (tagged) subtype @code{T}.
  
  @node No_Dispatching_Calls,No_Dynamic_Attachment,No_Dispatch,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{1db}
  @subsection No_Dispatching_Calls
  
  
*************** end Example;
*** 12656,12662 ****
  @end example
  
  @node No_Dynamic_Attachment,No_Dynamic_Priorities,No_Dispatching_Calls,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{1cd}
  @subsection No_Dynamic_Attachment
  
  
--- 12670,12676 ----
  @end example
  
  @node No_Dynamic_Attachment,No_Dynamic_Priorities,No_Dispatching_Calls,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{1dc}
  @subsection No_Dynamic_Attachment
  
  
*************** compatibility purposes (and a warning wi
*** 12675,12681 ****
  warnings on obsolescent features are activated).
  
  @node No_Dynamic_Priorities,No_Entry_Calls_In_Elaboration_Code,No_Dynamic_Attachment,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{1ce}
  @subsection No_Dynamic_Priorities
  
  
--- 12689,12695 ----
  warnings on obsolescent features are activated).
  
  @node No_Dynamic_Priorities,No_Entry_Calls_In_Elaboration_Code,No_Dynamic_Attachment,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{1dd}
  @subsection No_Dynamic_Priorities
  
  
*************** warnings on obsolescent features are act
*** 12684,12690 ****
  [RM D.7] There are no semantic dependencies on the package Dynamic_Priorities.
  
  @node No_Entry_Calls_In_Elaboration_Code,No_Enumeration_Maps,No_Dynamic_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{1cf}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
--- 12698,12704 ----
  [RM D.7] There are no semantic dependencies on the package Dynamic_Priorities.
  
  @node No_Entry_Calls_In_Elaboration_Code,No_Enumeration_Maps,No_Dynamic_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{1de}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
*************** restriction, the compiler can assume tha
*** 12696,12702 ****
  in a task can be executed at elaboration time.
  
  @node No_Enumeration_Maps,No_Exception_Handlers,No_Entry_Calls_In_Elaboration_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{1d0}
  @subsection No_Enumeration_Maps
  
  
--- 12710,12716 ----
  in a task can be executed at elaboration time.
  
  @node No_Enumeration_Maps,No_Exception_Handlers,No_Entry_Calls_In_Elaboration_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{1df}
  @subsection No_Enumeration_Maps
  
  
*************** enumeration maps are used (that is Image
*** 12707,12713 ****
  to enumeration types).
  
  @node No_Exception_Handlers,No_Exception_Propagation,No_Enumeration_Maps,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{1d1}
  @subsection No_Exception_Handlers
  
  
--- 12721,12727 ----
  to enumeration types).
  
  @node No_Exception_Handlers,No_Exception_Propagation,No_Enumeration_Maps,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{1e0}
  @subsection No_Exception_Handlers
  
  
*************** statement generated by the compiler). Th
*** 12732,12738 ****
  represents the line number in the source program where the raise occurs.
  
  @node No_Exception_Propagation,No_Exception_Registration,No_Exception_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{1d2}
  @subsection No_Exception_Propagation
  
  
--- 12746,12752 ----
  represents the line number in the source program where the raise occurs.
  
  @node No_Exception_Propagation,No_Exception_Registration,No_Exception_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{1e1}
  @subsection No_Exception_Propagation
  
  
*************** the package GNAT.Current_Exception is no
*** 12749,12755 ****
  statements (raise with no operand) are not permitted.
  
  @node No_Exception_Registration,No_Exceptions,No_Exception_Propagation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{1d3}
  @subsection No_Exception_Registration
  
  
--- 12763,12769 ----
  statements (raise with no operand) are not permitted.
  
  @node No_Exception_Registration,No_Exceptions,No_Exception_Propagation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{1e2}
  @subsection No_Exception_Registration
  
  
*************** code is simplified by omitting the other
*** 12763,12769 ****
  of exceptions when they are declared.
  
  @node No_Exceptions,No_Finalization,No_Exception_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{1d4}
  @subsection No_Exceptions
  
  
--- 12777,12783 ----
  of exceptions when they are declared.
  
  @node No_Exceptions,No_Finalization,No_Exception_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{1e3}
  @subsection No_Exceptions
  
  
*************** raise statements and no exception handle
*** 12774,12780 ****
  generation of language-defined run-time checks.
  
  @node No_Finalization,No_Fixed_Point,No_Exceptions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{1d5}
  @subsection No_Finalization
  
  
--- 12788,12794 ----
  generation of language-defined run-time checks.
  
  @node No_Finalization,No_Fixed_Point,No_Exceptions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{1e4}
  @subsection No_Finalization
  
  
*************** object or a nested component, either dec
*** 12815,12821 ****
  deallocation of a controlled object no longer finalizes its contents.
  
  @node No_Fixed_Point,No_Floating_Point,No_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{1d6}
  @subsection No_Fixed_Point
  
  
--- 12829,12835 ----
  deallocation of a controlled object no longer finalizes its contents.
  
  @node No_Fixed_Point,No_Floating_Point,No_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{1e5}
  @subsection No_Fixed_Point
  
  
*************** deallocation of a controlled object no l
*** 12825,12831 ****
  occurrences of fixed point types and operations.
  
  @node No_Floating_Point,No_Implicit_Conditionals,No_Fixed_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{1d7}
  @subsection No_Floating_Point
  
  
--- 12839,12845 ----
  occurrences of fixed point types and operations.
  
  @node No_Floating_Point,No_Implicit_Conditionals,No_Fixed_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{1e6}
  @subsection No_Floating_Point
  
  
*************** occurrences of fixed point types and ope
*** 12835,12841 ****
  occurrences of floating point types and operations.
  
  @node No_Implicit_Conditionals,No_Implicit_Dynamic_Code,No_Floating_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{1d8}
  @subsection No_Implicit_Conditionals
  
  
--- 12849,12855 ----
  occurrences of floating point types and operations.
  
  @node No_Implicit_Conditionals,No_Implicit_Dynamic_Code,No_Floating_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{1e7}
  @subsection No_Implicit_Conditionals
  
  
*************** normal manner. Constructs generating imp
*** 12851,12857 ****
  of composite objects and the Max/Min attributes.
  
  @node No_Implicit_Dynamic_Code,No_Implicit_Heap_Allocations,No_Implicit_Conditionals,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{1d9}
  @subsection No_Implicit_Dynamic_Code
  
  
--- 12865,12871 ----
  of composite objects and the Max/Min attributes.
  
  @node No_Implicit_Dynamic_Code,No_Implicit_Heap_Allocations,No_Implicit_Conditionals,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{1e8}
  @subsection No_Implicit_Dynamic_Code
  
  
*************** foreign-language convention; primitive o
*** 12881,12887 ****
  types.
  
  @node No_Implicit_Heap_Allocations,No_Implicit_Protected_Object_Allocations,No_Implicit_Dynamic_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{1da}
  @subsection No_Implicit_Heap_Allocations
  
  
--- 12895,12901 ----
  types.
  
  @node No_Implicit_Heap_Allocations,No_Implicit_Protected_Object_Allocations,No_Implicit_Dynamic_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{1e9}
  @subsection No_Implicit_Heap_Allocations
  
  
*************** types.
*** 12890,12896 ****
  [RM D.7] No constructs are allowed to cause implicit heap allocation.
  
  @node No_Implicit_Protected_Object_Allocations,No_Implicit_Task_Allocations,No_Implicit_Heap_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-protected-object-allocations}@anchor{1db}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
--- 12904,12910 ----
  [RM D.7] No constructs are allowed to cause implicit heap allocation.
  
  @node No_Implicit_Protected_Object_Allocations,No_Implicit_Task_Allocations,No_Implicit_Heap_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-protected-object-allocations}@anchor{1ea}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
*************** types.
*** 12900,12906 ****
  protected object.
  
  @node No_Implicit_Task_Allocations,No_Initialize_Scalars,No_Implicit_Protected_Object_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-task-allocations}@anchor{1dc}
  @subsection No_Implicit_Task_Allocations
  
  
--- 12914,12920 ----
  protected object.
  
  @node No_Implicit_Task_Allocations,No_Initialize_Scalars,No_Implicit_Protected_Object_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-task-allocations}@anchor{1eb}
  @subsection No_Implicit_Task_Allocations
  
  
*************** protected object.
*** 12909,12915 ****
  [GNAT] No constructs are allowed to cause implicit heap allocation of a task.
  
  @node No_Initialize_Scalars,No_IO,No_Implicit_Task_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{1dd}
  @subsection No_Initialize_Scalars
  
  
--- 12923,12929 ----
  [GNAT] No constructs are allowed to cause implicit heap allocation of a task.
  
  @node No_Initialize_Scalars,No_IO,No_Implicit_Task_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{1ec}
  @subsection No_Initialize_Scalars
  
  
*************** code, and in particular eliminates dummy
*** 12921,12927 ****
  are otherwise generated for some record and array types.
  
  @node No_IO,No_Local_Allocators,No_Initialize_Scalars,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{1de}
  @subsection No_IO
  
  
--- 12935,12941 ----
  are otherwise generated for some record and array types.
  
  @node No_IO,No_Local_Allocators,No_Initialize_Scalars,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{1ed}
  @subsection No_IO
  
  
*************** dependences on any of the library units
*** 12932,12938 ****
  Text_IO, Wide_Text_IO, Wide_Wide_Text_IO, or Stream_IO.
  
  @node No_Local_Allocators,No_Local_Protected_Objects,No_IO,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{1df}
  @subsection No_Local_Allocators
  
  
--- 12946,12952 ----
  Text_IO, Wide_Text_IO, Wide_Wide_Text_IO, or Stream_IO.
  
  @node No_Local_Allocators,No_Local_Protected_Objects,No_IO,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{1ee}
  @subsection No_Local_Allocators
  
  
*************** occurrences of an allocator in subprogra
*** 12943,12949 ****
  and entry bodies.
  
  @node No_Local_Protected_Objects,No_Local_Tagged_Types,No_Local_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{1e0}
  @subsection No_Local_Protected_Objects
  
  
--- 12957,12963 ----
  and entry bodies.
  
  @node No_Local_Protected_Objects,No_Local_Tagged_Types,No_Local_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{1ef}
  @subsection No_Local_Protected_Objects
  
  
*************** and entry bodies.
*** 12953,12959 ****
  only declared at the library level.
  
  @node No_Local_Tagged_Types,No_Local_Timing_Events,No_Local_Protected_Objects,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-tagged-types}@anchor{1e1}
  @subsection No_Local_Tagged_Types
  
  
--- 12967,12973 ----
  only declared at the library level.
  
  @node No_Local_Tagged_Types,No_Local_Timing_Events,No_Local_Protected_Objects,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-tagged-types}@anchor{1f0}
  @subsection No_Local_Tagged_Types
  
  
*************** only declared at the library level.
*** 12963,12969 ****
  declared at the library level.
  
  @node No_Local_Timing_Events,No_Long_Long_Integers,No_Local_Tagged_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{1e2}
  @subsection No_Local_Timing_Events
  
  
--- 12977,12983 ----
  declared at the library level.
  
  @node No_Local_Timing_Events,No_Long_Long_Integers,No_Local_Tagged_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{1f1}
  @subsection No_Local_Timing_Events
  
  
*************** declared at the library level.
*** 12973,12979 ****
  declared at the library level.
  
  @node No_Long_Long_Integers,No_Multiple_Elaboration,No_Local_Timing_Events,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{1e3}
  @subsection No_Long_Long_Integers
  
  
--- 12987,12993 ----
  declared at the library level.
  
  @node No_Long_Long_Integers,No_Multiple_Elaboration,No_Local_Timing_Events,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{1f2}
  @subsection No_Long_Long_Integers
  
  
*************** implicit base type is Long_Long_Integer,
*** 12985,12991 ****
  Long_Integer’Size.
  
  @node No_Multiple_Elaboration,No_Nested_Finalization,No_Long_Long_Integers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{1e4}
  @subsection No_Multiple_Elaboration
  
  
--- 12999,13005 ----
  Long_Integer’Size.
  
  @node No_Multiple_Elaboration,No_Nested_Finalization,No_Long_Long_Integers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{1f3}
  @subsection No_Multiple_Elaboration
  
  
*************** possible, including non-Ada main program
*** 13001,13007 ****
  permitted and will be diagnosed by the binder.
  
  @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{1e5}
  @subsection No_Nested_Finalization
  
  
--- 13015,13021 ----
  permitted and will be diagnosed by the binder.
  
  @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{1f4}
  @subsection No_Nested_Finalization
  
  
*************** permitted and will be diagnosed by the b
*** 13010,13016 ****
  [RM D.7] All objects requiring finalization are declared at the library level.
  
  @node No_Protected_Type_Allocators,No_Protected_Types,No_Nested_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{1e6}
  @subsection No_Protected_Type_Allocators
  
  
--- 13024,13030 ----
  [RM D.7] All objects requiring finalization are declared at the library level.
  
  @node No_Protected_Type_Allocators,No_Protected_Types,No_Nested_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{1f5}
  @subsection No_Protected_Type_Allocators
  
  
*************** permitted and will be diagnosed by the b
*** 13020,13026 ****
  expressions that attempt to allocate protected objects.
  
  @node No_Protected_Types,No_Recursion,No_Protected_Type_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{1e7}
  @subsection No_Protected_Types
  
  
--- 13034,13040 ----
  expressions that attempt to allocate protected objects.
  
  @node No_Protected_Types,No_Recursion,No_Protected_Type_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{1f6}
  @subsection No_Protected_Types
  
  
*************** expressions that attempt to allocate pro
*** 13030,13036 ****
  declarations of protected types or protected objects.
  
  @node No_Recursion,No_Reentrancy,No_Protected_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{1e8}
  @subsection No_Recursion
  
  
--- 13044,13050 ----
  declarations of protected types or protected objects.
  
  @node No_Recursion,No_Reentrancy,No_Protected_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{1f7}
  @subsection No_Recursion
  
  
*************** declarations of protected types or prote
*** 13040,13046 ****
  part of its execution.
  
  @node No_Reentrancy,No_Relative_Delay,No_Recursion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{1e9}
  @subsection No_Reentrancy
  
  
--- 13054,13060 ----
  part of its execution.
  
  @node No_Reentrancy,No_Relative_Delay,No_Recursion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{1f8}
  @subsection No_Reentrancy
  
  
*************** part of its execution.
*** 13050,13056 ****
  two tasks at the same time.
  
  @node No_Relative_Delay,No_Requeue_Statements,No_Reentrancy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{1ea}
  @subsection No_Relative_Delay
  
  
--- 13064,13070 ----
  two tasks at the same time.
  
  @node No_Relative_Delay,No_Requeue_Statements,No_Reentrancy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{1f9}
  @subsection No_Relative_Delay
  
  
*************** relative statements and prevents express
*** 13061,13067 ****
  appearing in source code.
  
  @node No_Requeue_Statements,No_Secondary_Stack,No_Relative_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{1eb}
  @subsection No_Requeue_Statements
  
  
--- 13075,13081 ----
  appearing in source code.
  
  @node No_Requeue_Statements,No_Secondary_Stack,No_Relative_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{1fa}
  @subsection No_Requeue_Statements
  
  
*************** compatibility purposes (and a warning wi
*** 13079,13085 ****
  warnings on oNobsolescent features are activated).
  
  @node No_Secondary_Stack,No_Select_Statements,No_Requeue_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{1ec}
  @subsection No_Secondary_Stack
  
  
--- 13093,13099 ----
  warnings on oNobsolescent features are activated).
  
  @node No_Secondary_Stack,No_Select_Statements,No_Requeue_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{1fb}
  @subsection No_Secondary_Stack
  
  
*************** stack is used to implement functions ret
*** 13092,13098 ****
  secondary stacks for tasks (excluding the environment task) at run time.
  
  @node No_Select_Statements,No_Specific_Termination_Handlers,No_Secondary_Stack,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{1ed}
  @subsection No_Select_Statements
  
  
--- 13106,13112 ----
  secondary stacks for tasks (excluding the environment task) at run time.
  
  @node No_Select_Statements,No_Specific_Termination_Handlers,No_Secondary_Stack,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{1fc}
  @subsection No_Select_Statements
  
  
*************** secondary stacks for tasks (excluding th
*** 13102,13108 ****
  kind are permitted, that is the keyword @code{select} may not appear.
  
  @node No_Specific_Termination_Handlers,No_Specification_of_Aspect,No_Select_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{1ee}
  @subsection No_Specific_Termination_Handlers
  
  
--- 13116,13122 ----
  kind are permitted, that is the keyword @code{select} may not appear.
  
  @node No_Specific_Termination_Handlers,No_Specification_of_Aspect,No_Select_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{1fd}
  @subsection No_Specific_Termination_Handlers
  
  
*************** kind are permitted, that is the keyword
*** 13112,13118 ****
  or to Ada.Task_Termination.Specific_Handler.
  
  @node No_Specification_of_Aspect,No_Standard_Allocators_After_Elaboration,No_Specific_Termination_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{1ef}
  @subsection No_Specification_of_Aspect
  
  
--- 13126,13132 ----
  or to Ada.Task_Termination.Specific_Handler.
  
  @node No_Specification_of_Aspect,No_Standard_Allocators_After_Elaboration,No_Specific_Termination_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{1fe}
  @subsection No_Specification_of_Aspect
  
  
*************** specification, attribute definition clau
*** 13123,13129 ****
  given aspect.
  
  @node No_Standard_Allocators_After_Elaboration,No_Standard_Storage_Pools,No_Specification_of_Aspect,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{1f0}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
--- 13137,13143 ----
  given aspect.
  
  @node No_Standard_Allocators_After_Elaboration,No_Standard_Storage_Pools,No_Specification_of_Aspect,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{1ff}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
*************** library items of the partition has compl
*** 13135,13141 ****
  is raised.
  
  @node No_Standard_Storage_Pools,No_Stream_Optimizations,No_Standard_Allocators_After_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{1f1}
  @subsection No_Standard_Storage_Pools
  
  
--- 13149,13155 ----
  is raised.
  
  @node No_Standard_Storage_Pools,No_Stream_Optimizations,No_Standard_Allocators_After_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{200}
  @subsection No_Standard_Storage_Pools
  
  
*************** have an explicit Storage_Pool attribute
*** 13147,13153 ****
  user-defined storage pool.
  
  @node No_Stream_Optimizations,No_Streams,No_Standard_Storage_Pools,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{1f2}
  @subsection No_Stream_Optimizations
  
  
--- 13161,13167 ----
  user-defined storage pool.
  
  @node No_Stream_Optimizations,No_Streams,No_Standard_Storage_Pools,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{201}
  @subsection No_Stream_Optimizations
  
  
*************** due to their superior performance. When
*** 13160,13166 ****
  compiler performs all IO operations on a per-character basis.
  
  @node No_Streams,No_Tagged_Type_Registration,No_Stream_Optimizations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{1f3}
  @subsection No_Streams
  
  
--- 13174,13180 ----
  compiler performs all IO operations on a per-character basis.
  
  @node No_Streams,No_Tagged_Type_Registration,No_Stream_Optimizations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{202}
  @subsection No_Streams
  
  
*************** unit declaring a tagged type should be c
*** 13181,13187 ****
  though this is not required.
  
  @node No_Tagged_Type_Registration,No_Task_Allocators,No_Streams,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tagged-type-registration}@anchor{1f4}
  @subsection No_Tagged_Type_Registration
  
  
--- 13195,13201 ----
  though this is not required.
  
  @node No_Tagged_Type_Registration,No_Task_Allocators,No_Streams,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tagged-type-registration}@anchor{203}
  @subsection No_Tagged_Type_Registration
  
  
*************** are declared. This restriction may be ne
*** 13196,13202 ****
  the No_Elaboration_Code restriction.
  
  @node No_Task_Allocators,No_Task_At_Interrupt_Priority,No_Tagged_Type_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{1f5}
  @subsection No_Task_Allocators
  
  
--- 13210,13216 ----
  the No_Elaboration_Code restriction.
  
  @node No_Task_Allocators,No_Task_At_Interrupt_Priority,No_Tagged_Type_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{204}
  @subsection No_Task_Allocators
  
  
*************** the No_Elaboration_Code restriction.
*** 13206,13212 ****
  or types containing task subcomponents.
  
  @node No_Task_At_Interrupt_Priority,No_Task_Attributes_Package,No_Task_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-at-interrupt-priority}@anchor{1f6}
  @subsection No_Task_At_Interrupt_Priority
  
  
--- 13220,13226 ----
  or types containing task subcomponents.
  
  @node No_Task_At_Interrupt_Priority,No_Task_Attributes_Package,No_Task_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-at-interrupt-priority}@anchor{205}
  @subsection No_Task_At_Interrupt_Priority
  
  
*************** a consequence, the tasks are always crea
*** 13218,13224 ****
  that an interrupt priority.
  
  @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_At_Interrupt_Priority,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{1f7}
  @subsection No_Task_Attributes_Package
  
  
--- 13232,13238 ----
  that an interrupt priority.
  
  @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_At_Interrupt_Priority,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{206}
  @subsection No_Task_Attributes_Package
  
  
*************** compatibility purposes (and a warning wi
*** 13235,13241 ****
  warnings on obsolescent features are activated).
  
  @node No_Task_Hierarchy,No_Task_Termination,No_Task_Attributes_Package,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{1f8}
  @subsection No_Task_Hierarchy
  
  
--- 13249,13255 ----
  warnings on obsolescent features are activated).
  
  @node No_Task_Hierarchy,No_Task_Termination,No_Task_Attributes_Package,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{207}
  @subsection No_Task_Hierarchy
  
  
*************** warnings on obsolescent features are act
*** 13245,13251 ****
  directly on the environment task of the partition.
  
  @node No_Task_Termination,No_Tasking,No_Task_Hierarchy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{1f9}
  @subsection No_Task_Termination
  
  
--- 13259,13265 ----
  directly on the environment task of the partition.
  
  @node No_Task_Termination,No_Tasking,No_Task_Hierarchy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{208}
  @subsection No_Task_Termination
  
  
*************** directly on the environment task of the
*** 13254,13260 ****
  [RM D.7] Tasks that terminate are erroneous.
  
  @node No_Tasking,No_Terminate_Alternatives,No_Task_Termination,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{1fa}
  @subsection No_Tasking
  
  
--- 13268,13274 ----
  [RM D.7] Tasks that terminate are erroneous.
  
  @node No_Tasking,No_Terminate_Alternatives,No_Task_Termination,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{209}
  @subsection No_Tasking
  
  
*************** and cause an error message to be output
*** 13267,13273 ****
  binder.
  
  @node No_Terminate_Alternatives,No_Unchecked_Access,No_Tasking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{1fb}
  @subsection No_Terminate_Alternatives
  
  
--- 13281,13287 ----
  binder.
  
  @node No_Terminate_Alternatives,No_Unchecked_Access,No_Tasking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{20a}
  @subsection No_Terminate_Alternatives
  
  
*************** binder.
*** 13276,13282 ****
  [RM D.7] There are no selective accepts with terminate alternatives.
  
  @node No_Unchecked_Access,No_Unchecked_Conversion,No_Terminate_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{1fc}
  @subsection No_Unchecked_Access
  
  
--- 13290,13296 ----
  [RM D.7] There are no selective accepts with terminate alternatives.
  
  @node No_Unchecked_Access,No_Unchecked_Conversion,No_Terminate_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{20b}
  @subsection No_Unchecked_Access
  
  
*************** binder.
*** 13286,13292 ****
  occurrences of the Unchecked_Access attribute.
  
  @node No_Unchecked_Conversion,No_Unchecked_Deallocation,No_Unchecked_Access,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-conversion}@anchor{1fd}
  @subsection No_Unchecked_Conversion
  
  
--- 13300,13306 ----
  occurrences of the Unchecked_Access attribute.
  
  @node No_Unchecked_Conversion,No_Unchecked_Deallocation,No_Unchecked_Access,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-conversion}@anchor{20c}
  @subsection No_Unchecked_Conversion
  
  
*************** occurrences of the Unchecked_Access attr
*** 13295,13302 ****
  [RM J.13] This restriction ensures at compile time that there are no semantic
  dependences on the predefined generic function Unchecked_Conversion.
  
! @node No_Unchecked_Deallocation,No_Use_Of_Entity,No_Unchecked_Conversion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-deallocation}@anchor{1fe}
  @subsection No_Unchecked_Deallocation
  
  
--- 13309,13316 ----
  [RM J.13] This restriction ensures at compile time that there are no semantic
  dependences on the predefined generic function Unchecked_Conversion.
  
! @node No_Unchecked_Deallocation,No_Use_Of_Attribute,No_Unchecked_Conversion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-deallocation}@anchor{20d}
  @subsection No_Unchecked_Deallocation
  
  
*************** dependences on the predefined generic fu
*** 13305,13312 ****
  [RM J.13] This restriction ensures at compile time that there are no semantic
  dependences on the predefined generic procedure Unchecked_Deallocation.
  
! @node No_Use_Of_Entity,Pure_Barriers,No_Unchecked_Deallocation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{1ff}
  @subsection No_Use_Of_Entity
  
  
--- 13319,13336 ----
  [RM J.13] This restriction ensures at compile time that there are no semantic
  dependences on the predefined generic procedure Unchecked_Deallocation.
  
! @node No_Use_Of_Attribute,No_Use_Of_Entity,No_Unchecked_Deallocation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-attribute}@anchor{20e}
! @subsection No_Use_Of_Attribute
! 
! 
! @geindex No_Use_Of_Attribute
! 
! [RM 13.12.1] This is a standard Ada 2012 restriction that is GNAT defined in
! earlier versions of Ada.
! 
! @node No_Use_Of_Entity,No_Use_Of_Pragma,No_Use_Of_Attribute,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{20f}
  @subsection No_Use_Of_Entity
  
  
*************** where @code{Name} is the fully qualified
*** 13325,13332 ****
  No_Use_Of_Entity => Ada.Text_IO.Put_Line
  @end example
  
! @node Pure_Barriers,Simple_Barriers,No_Use_Of_Entity,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions pure-barriers}@anchor{200}
  @subsection Pure_Barriers
  
  
--- 13349,13366 ----
  No_Use_Of_Entity => Ada.Text_IO.Put_Line
  @end example
  
! @node No_Use_Of_Pragma,Pure_Barriers,No_Use_Of_Entity,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-pragma}@anchor{210}
! @subsection No_Use_Of_Pragma
! 
! 
! @geindex No_Use_Of_Pragma
! 
! [RM 13.12.1] This is a standard Ada 2012 restriction that is GNAT defined in
! earlier versions of Ada.
! 
! @node Pure_Barriers,Simple_Barriers,No_Use_Of_Pragma,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions pure-barriers}@anchor{211}
  @subsection Pure_Barriers
  
  
*************** but still ensures absence of side effect
*** 13377,13383 ****
  during the evaluation of the barriers.
  
  @node Simple_Barriers,Static_Priorities,Pure_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{201}
  @subsection Simple_Barriers
  
  
--- 13411,13417 ----
  during the evaluation of the barriers.
  
  @node Simple_Barriers,Static_Priorities,Pure_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{212}
  @subsection Simple_Barriers
  
  
*************** compatibility purposes (and a warning wi
*** 13396,13402 ****
  warnings on obsolescent features are activated).
  
  @node Static_Priorities,Static_Storage_Size,Simple_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{202}
  @subsection Static_Priorities
  
  
--- 13430,13436 ----
  warnings on obsolescent features are activated).
  
  @node Static_Priorities,Static_Storage_Size,Simple_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{213}
  @subsection Static_Priorities
  
  
*************** are static, and that there are no depend
*** 13407,13413 ****
  @code{Ada.Dynamic_Priorities}.
  
  @node Static_Storage_Size,,Static_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{203}
  @subsection Static_Storage_Size
  
  
--- 13441,13447 ----
  @code{Ada.Dynamic_Priorities}.
  
  @node Static_Storage_Size,,Static_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{214}
  @subsection Static_Storage_Size
  
  
*************** are static, and that there are no depend
*** 13417,13423 ****
  in a Storage_Size pragma or attribute definition clause is static.
  
  @node Program Unit Level Restrictions,,Partition-Wide Restrictions,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{204}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{205}
  @section Program Unit Level Restrictions
  
  
--- 13451,13457 ----
  in a Storage_Size pragma or attribute definition clause is static.
  
  @node Program Unit Level Restrictions,,Partition-Wide Restrictions,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{215}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{216}
  @section Program Unit Level Restrictions
  
  
*************** other compilation units in the partition
*** 13448,13454 ****
  @end menu
  
  @node No_Elaboration_Code,No_Dynamic_Accessibility_Checks,,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{206}
  @subsection No_Elaboration_Code
  
  
--- 13482,13488 ----
  @end menu
  
  @node No_Elaboration_Code,No_Dynamic_Accessibility_Checks,,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{217}
  @subsection No_Elaboration_Code
  
  
*************** associated with the unit. This counter i
*** 13504,13510 ****
  before elaboration and to control multiple elaboration attempts.
  
  @node No_Dynamic_Accessibility_Checks,No_Dynamic_Sized_Objects,No_Elaboration_Code,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-accessibility-checks}@anchor{207}
  @subsection No_Dynamic_Accessibility_Checks
  
  
--- 13538,13544 ----
  before elaboration and to control multiple elaboration attempts.
  
  @node No_Dynamic_Accessibility_Checks,No_Dynamic_Sized_Objects,No_Elaboration_Code,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-accessibility-checks}@anchor{218}
  @subsection No_Dynamic_Accessibility_Checks
  
  
*************** In all other cases, the level of T is as
*** 13553,13559 ****
  @end itemize
  
  @node No_Dynamic_Sized_Objects,No_Entry_Queue,No_Dynamic_Accessibility_Checks,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{208}
  @subsection No_Dynamic_Sized_Objects
  
  
--- 13587,13593 ----
  @end itemize
  
  @node No_Dynamic_Sized_Objects,No_Entry_Queue,No_Dynamic_Accessibility_Checks,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{219}
  @subsection No_Dynamic_Sized_Objects
  
  
*************** access discriminants. It is often a good
*** 13571,13577 ****
  with No_Secondary_Stack.
  
  @node No_Entry_Queue,No_Implementation_Aspect_Specifications,No_Dynamic_Sized_Objects,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{209}
  @subsection No_Entry_Queue
  
  
--- 13605,13611 ----
  with No_Secondary_Stack.
  
  @node No_Entry_Queue,No_Implementation_Aspect_Specifications,No_Dynamic_Sized_Objects,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{21a}
  @subsection No_Entry_Queue
  
  
*************** checked at compile time.  A program exec
*** 13584,13590 ****
  is made to queue a second task on such an entry.
  
  @node No_Implementation_Aspect_Specifications,No_Implementation_Attributes,No_Entry_Queue,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{20a}
  @subsection No_Implementation_Aspect_Specifications
  
  
--- 13618,13624 ----
  is made to queue a second task on such an entry.
  
  @node No_Implementation_Aspect_Specifications,No_Implementation_Attributes,No_Entry_Queue,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{21b}
  @subsection No_Implementation_Aspect_Specifications
  
  
*************** GNAT-defined aspects are present.  With
*** 13595,13601 ****
  aspects that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Attributes,No_Implementation_Identifiers,No_Implementation_Aspect_Specifications,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{20b}
  @subsection No_Implementation_Attributes
  
  
--- 13629,13635 ----
  aspects that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Attributes,No_Implementation_Identifiers,No_Implementation_Aspect_Specifications,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{21c}
  @subsection No_Implementation_Attributes
  
  
*************** attributes that can be used are those de
*** 13607,13613 ****
  Manual.
  
  @node No_Implementation_Identifiers,No_Implementation_Pragmas,No_Implementation_Attributes,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{20c}
  @subsection No_Implementation_Identifiers
  
  
--- 13641,13647 ----
  Manual.
  
  @node No_Implementation_Identifiers,No_Implementation_Pragmas,No_Implementation_Attributes,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{21d}
  @subsection No_Implementation_Identifiers
  
  
*************** implementation-defined identifiers (mark
*** 13618,13624 ****
  occur within language-defined packages.
  
  @node No_Implementation_Pragmas,No_Implementation_Restrictions,No_Implementation_Identifiers,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{20d}
  @subsection No_Implementation_Pragmas
  
  
--- 13652,13658 ----
  occur within language-defined packages.
  
  @node No_Implementation_Pragmas,No_Implementation_Restrictions,No_Implementation_Identifiers,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{21e}
  @subsection No_Implementation_Pragmas
  
  
*************** GNAT-defined pragmas are present.  With
*** 13629,13635 ****
  pragmas that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Restrictions,No_Implementation_Units,No_Implementation_Pragmas,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{20e}
  @subsection No_Implementation_Restrictions
  
  
--- 13663,13669 ----
  pragmas that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Restrictions,No_Implementation_Units,No_Implementation_Pragmas,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{21f}
  @subsection No_Implementation_Restrictions
  
  
*************** are present.  With this restriction, the
*** 13641,13647 ****
  that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Units,No_Implicit_Aliasing,No_Implementation_Restrictions,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{20f}
  @subsection No_Implementation_Units
  
  
--- 13675,13681 ----
  that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Units,No_Implicit_Aliasing,No_Implementation_Restrictions,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{220}
  @subsection No_Implementation_Units
  
  
*************** mention in the context clause of any imp
*** 13652,13658 ****
  of packages Ada, Interfaces, or System.
  
  @node No_Implicit_Aliasing,No_Implicit_Loops,No_Implementation_Units,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{210}
  @subsection No_Implicit_Aliasing
  
  
--- 13686,13692 ----
  of packages Ada, Interfaces, or System.
  
  @node No_Implicit_Aliasing,No_Implicit_Loops,No_Implementation_Units,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{221}
  @subsection No_Implicit_Aliasing
  
  
*************** to be aliased, and in such cases, it can
*** 13667,13673 ****
  the standard attribute Unchecked_Access which is preferable.
  
  @node No_Implicit_Loops,No_Obsolescent_Features,No_Implicit_Aliasing,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{211}
  @subsection No_Implicit_Loops
  
  
--- 13701,13707 ----
  the standard attribute Unchecked_Access which is preferable.
  
  @node No_Implicit_Loops,No_Obsolescent_Features,No_Implicit_Aliasing,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{222}
  @subsection No_Implicit_Loops
  
  
*************** arrays larger than about 5000 scalar com
*** 13684,13690 ****
  is set in the spec of a package, it will not apply to its body.
  
  @node No_Obsolescent_Features,No_Wide_Characters,No_Implicit_Loops,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{212}
  @subsection No_Obsolescent_Features
  
  
--- 13718,13724 ----
  is set in the spec of a package, it will not apply to its body.
  
  @node No_Obsolescent_Features,No_Wide_Characters,No_Implicit_Loops,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{223}
  @subsection No_Obsolescent_Features
  
  
*************** is set in the spec of a package, it will
*** 13694,13700 ****
  features are used, as defined in Annex J of the Ada Reference Manual.
  
  @node No_Wide_Characters,Static_Dispatch_Tables,No_Obsolescent_Features,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{213}
  @subsection No_Wide_Characters
  
  
--- 13728,13734 ----
  features are used, as defined in Annex J of the Ada Reference Manual.
  
  @node No_Wide_Characters,Static_Dispatch_Tables,No_Obsolescent_Features,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{224}
  @subsection No_Wide_Characters
  
  
*************** appear in the program (that is literals
*** 13708,13714 ****
  type @code{Character}).
  
  @node Static_Dispatch_Tables,SPARK_05,No_Wide_Characters,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-dispatch-tables}@anchor{214}
  @subsection Static_Dispatch_Tables
  
  
--- 13742,13748 ----
  type @code{Character}).
  
  @node Static_Dispatch_Tables,SPARK_05,No_Wide_Characters,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-dispatch-tables}@anchor{225}
  @subsection Static_Dispatch_Tables
  
  
*************** type @code{Character}).
*** 13718,13724 ****
  associated with dispatch tables can be placed in read-only memory.
  
  @node SPARK_05,,Static_Dispatch_Tables,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{215}
  @subsection SPARK_05
  
  
--- 13752,13758 ----
  associated with dispatch tables can be placed in read-only memory.
  
  @node SPARK_05,,Static_Dispatch_Tables,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{226}
  @subsection SPARK_05
  
  
*************** gnatprove -P project.gpr --mode=check_al
*** 13741,13747 ****
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{216}@anchor{gnat_rm/implementation_advice id1}@anchor{217}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
--- 13775,13781 ----
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{227}@anchor{gnat_rm/implementation_advice id1}@anchor{228}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
*************** case the text describes what GNAT does a
*** 13839,13845 ****
  @end menu
  
  @node RM 1 1 3 20 Error Detection,RM 1 1 3 31 Child Units,,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{218}
  @section RM 1.1.3(20): Error Detection
  
  
--- 13873,13879 ----
  @end menu
  
  @node RM 1 1 3 20 Error Detection,RM 1 1 3 31 Child Units,,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{229}
  @section RM 1.1.3(20): Error Detection
  
  
*************** or diagnosed at compile time.
*** 13856,13862 ****
  @geindex Child Units
  
  @node RM 1 1 3 31 Child Units,RM 1 1 5 12 Bounded Errors,RM 1 1 3 20 Error Detection,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{219}
  @section RM 1.1.3(31): Child Units
  
  
--- 13890,13896 ----
  @geindex Child Units
  
  @node RM 1 1 3 31 Child Units,RM 1 1 5 12 Bounded Errors,RM 1 1 3 20 Error Detection,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{22a}
  @section RM 1.1.3(31): Child Units
  
  
*************** Followed.
*** 13872,13878 ****
  @geindex Bounded errors
  
  @node RM 1 1 5 12 Bounded Errors,RM 2 8 16 Pragmas,RM 1 1 3 31 Child Units,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{21a}
  @section RM 1.1.5(12): Bounded Errors
  
  
--- 13906,13912 ----
  @geindex Bounded errors
  
  @node RM 1 1 5 12 Bounded Errors,RM 2 8 16 Pragmas,RM 1 1 3 31 Child Units,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{22b}
  @section RM 1.1.5(12): Bounded Errors
  
  
*************** runtime.
*** 13889,13895 ****
  @geindex Pragmas
  
  @node RM 2 8 16 Pragmas,RM 2 8 17-19 Pragmas,RM 1 1 5 12 Bounded Errors,Implementation Advice
! @anchor{gnat_rm/implementation_advice id2}@anchor{21b}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{21c}
  @section RM 2.8(16): Pragmas
  
  
--- 13923,13929 ----
  @geindex Pragmas
  
  @node RM 2 8 16 Pragmas,RM 2 8 17-19 Pragmas,RM 1 1 5 12 Bounded Errors,Implementation Advice
! @anchor{gnat_rm/implementation_advice id2}@anchor{22c}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{22d}
  @section RM 2.8(16): Pragmas
  
  
*************** that this advice not be followed.  For d
*** 14002,14008 ****
  @ref{7,,Implementation Defined Pragmas}.
  
  @node RM 2 8 17-19 Pragmas,RM 3 5 2 5 Alternative Character Sets,RM 2 8 16 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{21d}
  @section RM 2.8(17-19): Pragmas
  
  
--- 14036,14042 ----
  @ref{7,,Implementation Defined Pragmas}.
  
  @node RM 2 8 17-19 Pragmas,RM 3 5 2 5 Alternative Character Sets,RM 2 8 16 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{22e}
  @section RM 2.8(17-19): Pragmas
  
  
*************** replacing @code{library_items}.”
*** 14023,14036 ****
  @end itemize
  @end quotation
  
! See @ref{21c,,RM 2.8(16); Pragmas}.
  
  @geindex Character Sets
  
  @geindex Alternative Character Sets
  
  @node RM 3 5 2 5 Alternative Character Sets,RM 3 5 4 28 Integer Types,RM 2 8 17-19 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{21e}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
--- 14057,14070 ----
  @end itemize
  @end quotation
  
! See @ref{22d,,RM 2.8(16); Pragmas}.
  
  @geindex Character Sets
  
  @geindex Alternative Character Sets
  
  @node RM 3 5 2 5 Alternative Character Sets,RM 3 5 4 28 Integer Types,RM 2 8 17-19 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{22f}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
*************** there is no such restriction.
*** 14058,14064 ****
  @geindex Integer types
  
  @node RM 3 5 4 28 Integer Types,RM 3 5 4 29 Integer Types,RM 3 5 2 5 Alternative Character Sets,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{21f}
  @section RM 3.5.4(28): Integer Types
  
  
--- 14092,14098 ----
  @geindex Integer types
  
  @node RM 3 5 4 28 Integer Types,RM 3 5 4 29 Integer Types,RM 3 5 2 5 Alternative Character Sets,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{230}
  @section RM 3.5.4(28): Integer Types
  
  
*************** are supported for convenient interface t
*** 14077,14083 ****
  types of the machine are easily available.
  
  @node RM 3 5 4 29 Integer Types,RM 3 5 5 8 Enumeration Values,RM 3 5 4 28 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{220}
  @section RM 3.5.4(29): Integer Types
  
  
--- 14111,14117 ----
  types of the machine are easily available.
  
  @node RM 3 5 4 29 Integer Types,RM 3 5 5 8 Enumeration Values,RM 3 5 4 28 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{231}
  @section RM 3.5.4(29): Integer Types
  
  
*************** Followed.
*** 14093,14099 ****
  @geindex Enumeration values
  
  @node RM 3 5 5 8 Enumeration Values,RM 3 5 7 17 Float Types,RM 3 5 4 29 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{221}
  @section RM 3.5.5(8): Enumeration Values
  
  
--- 14127,14133 ----
  @geindex Enumeration values
  
  @node RM 3 5 5 8 Enumeration Values,RM 3 5 7 17 Float Types,RM 3 5 4 29 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{232}
  @section RM 3.5.5(8): Enumeration Values
  
  
*************** Followed.
*** 14113,14119 ****
  @geindex Float types
  
  @node RM 3 5 7 17 Float Types,RM 3 6 2 11 Multidimensional Arrays,RM 3 5 5 8 Enumeration Values,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{222}
  @section RM 3.5.7(17): Float Types
  
  
--- 14147,14153 ----
  @geindex Float types
  
  @node RM 3 5 7 17 Float Types,RM 3 6 2 11 Multidimensional Arrays,RM 3 5 5 8 Enumeration Values,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{233}
  @section RM 3.5.7(17): Float Types
  
  
*************** is a software rather than a hardware for
*** 14143,14149 ****
  @geindex multidimensional
  
  @node RM 3 6 2 11 Multidimensional Arrays,RM 9 6 30-31 Duration’Small,RM 3 5 7 17 Float Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{223}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
--- 14177,14183 ----
  @geindex multidimensional
  
  @node RM 3 6 2 11 Multidimensional Arrays,RM 9 6 30-31 Duration’Small,RM 3 5 7 17 Float Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{234}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
*************** Followed.
*** 14161,14167 ****
  @geindex Duration'Small
  
  @node RM 9 6 30-31 Duration’Small,RM 10 2 1 12 Consistent Representation,RM 3 6 2 11 Multidimensional Arrays,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{224}
  @section RM 9.6(30-31): Duration’Small
  
  
--- 14195,14201 ----
  @geindex Duration'Small
  
  @node RM 9 6 30-31 Duration’Small,RM 10 2 1 12 Consistent Representation,RM 3 6 2 11 Multidimensional Arrays,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{235}
  @section RM 9.6(30-31): Duration’Small
  
  
*************** it need not be the same time base as use
*** 14182,14188 ****
  Followed.
  
  @node RM 10 2 1 12 Consistent Representation,RM 11 4 1 19 Exception Information,RM 9 6 30-31 Duration’Small,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{225}
  @section RM 10.2.1(12): Consistent Representation
  
  
--- 14216,14222 ----
  Followed.
  
  @node RM 10 2 1 12 Consistent Representation,RM 11 4 1 19 Exception Information,RM 9 6 30-31 Duration’Small,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{236}
  @section RM 10.2.1(12): Consistent Representation
  
  
*************** advice without severely impacting effici
*** 14204,14210 ****
  @geindex Exception information
  
  @node RM 11 4 1 19 Exception Information,RM 11 5 28 Suppression of Checks,RM 10 2 1 12 Consistent Representation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{226}
  @section RM 11.4.1(19): Exception Information
  
  
--- 14238,14244 ----
  @geindex Exception information
  
  @node RM 11 4 1 19 Exception Information,RM 11 5 28 Suppression of Checks,RM 10 2 1 12 Consistent Representation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{237}
  @section RM 11.4.1(19): Exception Information
  
  
*************** Pragma @code{Discard_Names}.
*** 14235,14241 ****
  @geindex suppression of
  
  @node RM 11 5 28 Suppression of Checks,RM 13 1 21-24 Representation Clauses,RM 11 4 1 19 Exception Information,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{227}
  @section RM 11.5(28): Suppression of Checks
  
  
--- 14269,14275 ----
  @geindex suppression of
  
  @node RM 11 5 28 Suppression of Checks,RM 13 1 21-24 Representation Clauses,RM 11 4 1 19 Exception Information,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{238}
  @section RM 11.5(28): Suppression of Checks
  
  
*************** Followed.
*** 14250,14256 ****
  @geindex Representation clauses
  
  @node RM 13 1 21-24 Representation Clauses,RM 13 2 6-8 Packed Types,RM 11 5 28 Suppression of Checks,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{228}
  @section RM 13.1 (21-24): Representation Clauses
  
  
--- 14284,14290 ----
  @geindex Representation clauses
  
  @node RM 13 1 21-24 Representation Clauses,RM 13 2 6-8 Packed Types,RM 11 5 28 Suppression of Checks,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{239}
  @section RM 13.1 (21-24): Representation Clauses
  
  
*************** Followed.
*** 14299,14305 ****
  @geindex Packed types
  
  @node RM 13 2 6-8 Packed Types,RM 13 3 14-19 Address Clauses,RM 13 1 21-24 Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{229}
  @section RM 13.2(6-8): Packed Types
  
  
--- 14333,14339 ----
  @geindex Packed types
  
  @node RM 13 2 6-8 Packed Types,RM 13 3 14-19 Address Clauses,RM 13 1 21-24 Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{23a}
  @section RM 13.2(6-8): Packed Types
  
  
*************** subcomponent of the packed type.
*** 14330,14336 ****
  @geindex Address clauses
  
  @node RM 13 3 14-19 Address Clauses,RM 13 3 29-35 Alignment Clauses,RM 13 2 6-8 Packed Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{22a}
  @section RM 13.3(14-19): Address Clauses
  
  
--- 14364,14370 ----
  @geindex Address clauses
  
  @node RM 13 3 14-19 Address Clauses,RM 13 3 29-35 Alignment Clauses,RM 13 2 6-8 Packed Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{23b}
  @section RM 13.3(14-19): Address Clauses
  
  
*************** Followed.
*** 14383,14389 ****
  @geindex Alignment clauses
  
  @node RM 13 3 29-35 Alignment Clauses,RM 13 3 42-43 Size Clauses,RM 13 3 14-19 Address Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{22b}
  @section RM 13.3(29-35): Alignment Clauses
  
  
--- 14417,14423 ----
  @geindex Alignment clauses
  
  @node RM 13 3 29-35 Alignment Clauses,RM 13 3 42-43 Size Clauses,RM 13 3 14-19 Address Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{23c}
  @section RM 13.3(29-35): Alignment Clauses
  
  
*************** Followed.
*** 14440,14446 ****
  @geindex Size clauses
  
  @node RM 13 3 42-43 Size Clauses,RM 13 3 50-56 Size Clauses,RM 13 3 29-35 Alignment Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{22c}
  @section RM 13.3(42-43): Size Clauses
  
  
--- 14474,14480 ----
  @geindex Size clauses
  
  @node RM 13 3 42-43 Size Clauses,RM 13 3 50-56 Size Clauses,RM 13 3 29-35 Alignment Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{23d}
  @section RM 13.3(42-43): Size Clauses
  
  
*************** object’s @code{Alignment} (if the @cod
*** 14458,14464 ****
  Followed.
  
  @node RM 13 3 50-56 Size Clauses,RM 13 3 71-73 Component Size Clauses,RM 13 3 42-43 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{22d}
  @section RM 13.3(50-56): Size Clauses
  
  
--- 14492,14498 ----
  Followed.
  
  @node RM 13 3 50-56 Size Clauses,RM 13 3 71-73 Component Size Clauses,RM 13 3 42-43 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{23e}
  @section RM 13.3(50-56): Size Clauses
  
  
*************** Followed.
*** 14509,14515 ****
  @geindex Component_Size clauses
  
  @node RM 13 3 71-73 Component Size Clauses,RM 13 4 9-10 Enumeration Representation Clauses,RM 13 3 50-56 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{22e}
  @section RM 13.3(71-73): Component Size Clauses
  
  
--- 14543,14549 ----
  @geindex Component_Size clauses
  
  @node RM 13 3 71-73 Component Size Clauses,RM 13 4 9-10 Enumeration Representation Clauses,RM 13 3 50-56 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{23f}
  @section RM 13.3(71-73): Component Size Clauses
  
  
*************** Followed.
*** 14543,14549 ****
  @geindex enumeration
  
  @node RM 13 4 9-10 Enumeration Representation Clauses,RM 13 5 1 17-22 Record Representation Clauses,RM 13 3 71-73 Component Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{22f}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
--- 14577,14583 ----
  @geindex enumeration
  
  @node RM 13 4 9-10 Enumeration Representation Clauses,RM 13 5 1 17-22 Record Representation Clauses,RM 13 3 71-73 Component Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{240}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
*************** Followed.
*** 14565,14571 ****
  @geindex records
  
  @node RM 13 5 1 17-22 Record Representation Clauses,RM 13 5 2 5 Storage Place Attributes,RM 13 4 9-10 Enumeration Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{230}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
--- 14599,14605 ----
  @geindex records
  
  @node RM 13 5 1 17-22 Record Representation Clauses,RM 13 5 2 5 Storage Place Attributes,RM 13 4 9-10 Enumeration Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{241}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
*************** and all mentioned features are implement
*** 14625,14631 ****
  @geindex Storage place attributes
  
  @node RM 13 5 2 5 Storage Place Attributes,RM 13 5 3 7-8 Bit Ordering,RM 13 5 1 17-22 Record Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{231}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
--- 14659,14665 ----
  @geindex Storage place attributes
  
  @node RM 13 5 2 5 Storage Place Attributes,RM 13 5 3 7-8 Bit Ordering,RM 13 5 1 17-22 Record Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{242}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
*************** Followed.  There are no such components
*** 14645,14651 ****
  @geindex Bit ordering
  
  @node RM 13 5 3 7-8 Bit Ordering,RM 13 7 37 Address as Private,RM 13 5 2 5 Storage Place Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{232}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
--- 14679,14685 ----
  @geindex Bit ordering
  
  @node RM 13 5 3 7-8 Bit Ordering,RM 13 7 37 Address as Private,RM 13 5 2 5 Storage Place Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{243}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
*************** Thus non-default bit ordering is not sup
*** 14665,14671 ****
  @geindex as private type
  
  @node RM 13 7 37 Address as Private,RM 13 7 1 16 Address Operations,RM 13 5 3 7-8 Bit Ordering,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{233}
  @section RM 13.7(37): Address as Private
  
  
--- 14699,14705 ----
  @geindex as private type
  
  @node RM 13 7 37 Address as Private,RM 13 7 1 16 Address Operations,RM 13 5 3 7-8 Bit Ordering,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{244}
  @section RM 13.7(37): Address as Private
  
  
*************** Followed.
*** 14683,14689 ****
  @geindex operations of
  
  @node RM 13 7 1 16 Address Operations,RM 13 9 14-17 Unchecked Conversion,RM 13 7 37 Address as Private,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{234}
  @section RM 13.7.1(16): Address Operations
  
  
--- 14717,14723 ----
  @geindex operations of
  
  @node RM 13 7 1 16 Address Operations,RM 13 9 14-17 Unchecked Conversion,RM 13 7 37 Address as Private,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{245}
  @section RM 13.7.1(16): Address Operations
  
  
*************** operation raises @code{Program_Error}, s
*** 14701,14707 ****
  @geindex Unchecked conversion
  
  @node RM 13 9 14-17 Unchecked Conversion,RM 13 11 23-25 Implicit Heap Usage,RM 13 7 1 16 Address Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{235}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
--- 14735,14741 ----
  @geindex Unchecked conversion
  
  @node RM 13 9 14-17 Unchecked Conversion,RM 13 11 23-25 Implicit Heap Usage,RM 13 7 1 16 Address Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{246}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
*************** Followed.
*** 14745,14751 ****
  @geindex implicit
  
  @node RM 13 11 23-25 Implicit Heap Usage,RM 13 11 2 17 Unchecked Deallocation,RM 13 9 14-17 Unchecked Conversion,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{236}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
--- 14779,14785 ----
  @geindex implicit
  
  @node RM 13 11 23-25 Implicit Heap Usage,RM 13 11 2 17 Unchecked Deallocation,RM 13 9 14-17 Unchecked Conversion,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{247}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
*************** Followed.
*** 14796,14802 ****
  @geindex Unchecked deallocation
  
  @node RM 13 11 2 17 Unchecked Deallocation,RM 13 13 2 1 6 Stream Oriented Attributes,RM 13 11 23-25 Implicit Heap Usage,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{237}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
--- 14830,14836 ----
  @geindex Unchecked deallocation
  
  @node RM 13 11 2 17 Unchecked Deallocation,RM 13 13 2 1 6 Stream Oriented Attributes,RM 13 11 23-25 Implicit Heap Usage,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{248}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
*************** Followed.
*** 14811,14817 ****
  @geindex Stream oriented attributes
  
  @node RM 13 13 2 1 6 Stream Oriented Attributes,RM A 1 52 Names of Predefined Numeric Types,RM 13 11 2 17 Unchecked Deallocation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-13-2-1-6-stream-oriented-attributes}@anchor{238}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
--- 14845,14851 ----
  @geindex Stream oriented attributes
  
  @node RM 13 13 2 1 6 Stream Oriented Attributes,RM A 1 52 Names of Predefined Numeric Types,RM 13 11 2 17 Unchecked Deallocation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-13-2-1-6-stream-oriented-attributes}@anchor{249}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
*************** scalar types. This XDR alternative can b
*** 14842,14848 ****
  @geindex Stream oriented attributes
  
  @node RM A 1 52 Names of Predefined Numeric Types,RM A 3 2 49 Ada Characters Handling,RM 13 13 2 1 6 Stream Oriented Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{239}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
--- 14876,14882 ----
  @geindex Stream oriented attributes
  
  @node RM A 1 52 Names of Predefined Numeric Types,RM A 3 2 49 Ada Characters Handling,RM 13 13 2 1 6 Stream Oriented Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{24a}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
*************** Followed.
*** 14860,14866 ****
  @geindex Ada.Characters.Handling
  
  @node RM A 3 2 49 Ada Characters Handling,RM A 4 4 106 Bounded-Length String Handling,RM A 1 52 Names of Predefined Numeric Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{23a}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
--- 14894,14900 ----
  @geindex Ada.Characters.Handling
  
  @node RM A 3 2 49 Ada Characters Handling,RM A 4 4 106 Bounded-Length String Handling,RM A 1 52 Names of Predefined Numeric Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{24b}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
*************** Followed.  GNAT provides no such localiz
*** 14877,14883 ****
  @geindex Bounded-length strings
  
  @node RM A 4 4 106 Bounded-Length String Handling,RM A 5 2 46-47 Random Number Generation,RM A 3 2 49 Ada Characters Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{23b}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
--- 14911,14917 ----
  @geindex Bounded-length strings
  
  @node RM A 4 4 106 Bounded-Length String Handling,RM A 5 2 46-47 Random Number Generation,RM A 3 2 49 Ada Characters Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{24c}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
*************** Followed.  No implicit pointers or dynam
*** 14892,14898 ****
  @geindex Random number generation
  
  @node RM A 5 2 46-47 Random Number Generation,RM A 10 7 23 Get_Immediate,RM A 4 4 106 Bounded-Length String Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{23c}
  @section RM A.5.2(46-47): Random Number Generation
  
  
--- 14926,14932 ----
  @geindex Random number generation
  
  @node RM A 5 2 46-47 Random Number Generation,RM A 10 7 23 Get_Immediate,RM A 4 4 106 Bounded-Length String Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{24d}
  @section RM A.5.2(46-47): Random Number Generation
  
  
*************** condition here to hold true.
*** 14921,14927 ****
  @geindex Get_Immediate
  
  @node RM A 10 7 23 Get_Immediate,RM A 18 Containers,RM A 5 2 46-47 Random Number Generation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{23d}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
--- 14955,14961 ----
  @geindex Get_Immediate
  
  @node RM A 10 7 23 Get_Immediate,RM A 18 Containers,RM A 5 2 46-47 Random Number Generation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{24e}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
*************** this functionality.
*** 14945,14951 ****
  @geindex Containers
  
  @node RM A 18 Containers,RM B 1 39-41 Pragma Export,RM A 10 7 23 Get_Immediate,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-18-containers}@anchor{23e}
  @section RM A.18: @code{Containers}
  
  
--- 14979,14985 ----
  @geindex Containers
  
  @node RM A 18 Containers,RM B 1 39-41 Pragma Export,RM A 10 7 23 Get_Immediate,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-18-containers}@anchor{24f}
  @section RM A.18: @code{Containers}
  
  
*************** follow the implementation advice.
*** 14966,14972 ****
  @geindex Export
  
  @node RM B 1 39-41 Pragma Export,RM B 2 12-13 Package Interfaces,RM A 18 Containers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{23f}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
--- 15000,15006 ----
  @geindex Export
  
  @node RM B 1 39-41 Pragma Export,RM B 2 12-13 Package Interfaces,RM A 18 Containers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{250}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
*************** Followed.
*** 15014,15020 ****
  @geindex Interfaces
  
  @node RM B 2 12-13 Package Interfaces,RM B 3 63-71 Interfacing with C,RM B 1 39-41 Pragma Export,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{240}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
--- 15048,15054 ----
  @geindex Interfaces
  
  @node RM B 2 12-13 Package Interfaces,RM B 3 63-71 Interfacing with C,RM B 1 39-41 Pragma Export,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{251}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
*************** Followed.  GNAT provides all the package
*** 15044,15050 ****
  @geindex interfacing with
  
  @node RM B 3 63-71 Interfacing with C,RM B 4 95-98 Interfacing with COBOL,RM B 2 12-13 Package Interfaces,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{241}
  @section RM B.3(63-71): Interfacing with C
  
  
--- 15078,15084 ----
  @geindex interfacing with
  
  @node RM B 3 63-71 Interfacing with C,RM B 4 95-98 Interfacing with COBOL,RM B 2 12-13 Package Interfaces,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{252}
  @section RM B.3(63-71): Interfacing with C
  
  
*************** Followed.
*** 15132,15138 ****
  @geindex interfacing with
  
  @node RM B 4 95-98 Interfacing with COBOL,RM B 5 22-26 Interfacing with Fortran,RM B 3 63-71 Interfacing with C,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{242}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
--- 15166,15172 ----
  @geindex interfacing with
  
  @node RM B 4 95-98 Interfacing with COBOL,RM B 5 22-26 Interfacing with Fortran,RM B 3 63-71 Interfacing with C,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{253}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
*************** Followed.
*** 15173,15179 ****
  @geindex interfacing with
  
  @node RM B 5 22-26 Interfacing with Fortran,RM C 1 3-5 Access to Machine Operations,RM B 4 95-98 Interfacing with COBOL,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{243}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
--- 15207,15213 ----
  @geindex interfacing with
  
  @node RM B 5 22-26 Interfacing with Fortran,RM C 1 3-5 Access to Machine Operations,RM B 4 95-98 Interfacing with COBOL,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{254}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
*************** Followed.
*** 15224,15230 ****
  @geindex Machine operations
  
  @node RM C 1 3-5 Access to Machine Operations,RM C 1 10-16 Access to Machine Operations,RM B 5 22-26 Interfacing with Fortran,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{244}
  @section RM C.1(3-5): Access to Machine Operations
  
  
--- 15258,15264 ----
  @geindex Machine operations
  
  @node RM C 1 3-5 Access to Machine Operations,RM C 1 10-16 Access to Machine Operations,RM B 5 22-26 Interfacing with Fortran,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{255}
  @section RM C.1(3-5): Access to Machine Operations
  
  
*************** object that is specified as exported.”
*** 15259,15265 ****
  Followed.
  
  @node RM C 1 10-16 Access to Machine Operations,RM C 3 28 Interrupt Support,RM C 1 3-5 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{245}
  @section RM C.1(10-16): Access to Machine Operations
  
  
--- 15293,15299 ----
  Followed.
  
  @node RM C 1 10-16 Access to Machine Operations,RM C 3 28 Interrupt Support,RM C 1 3-5 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{256}
  @section RM C.1(10-16): Access to Machine Operations
  
  
*************** Followed on any target supporting such o
*** 15320,15326 ****
  @geindex Interrupt support
  
  @node RM C 3 28 Interrupt Support,RM C 3 1 20-21 Protected Procedure Handlers,RM C 1 10-16 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{246}
  @section RM C.3(28): Interrupt Support
  
  
--- 15354,15360 ----
  @geindex Interrupt support
  
  @node RM C 3 28 Interrupt Support,RM C 3 1 20-21 Protected Procedure Handlers,RM C 1 10-16 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{257}
  @section RM C.3(28): Interrupt Support
  
  
*************** of interrupt blocking.
*** 15338,15344 ****
  @geindex Protected procedure handlers
  
  @node RM C 3 1 20-21 Protected Procedure Handlers,RM C 3 2 25 Package Interrupts,RM C 3 28 Interrupt Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{247}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
--- 15372,15378 ----
  @geindex Protected procedure handlers
  
  @node RM C 3 1 20-21 Protected Procedure Handlers,RM C 3 2 25 Package Interrupts,RM C 3 28 Interrupt Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{258}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
*************** Followed.  Compile time warnings are giv
*** 15364,15370 ****
  @geindex Interrupts
  
  @node RM C 3 2 25 Package Interrupts,RM C 4 14 Pre-elaboration Requirements,RM C 3 1 20-21 Protected Procedure Handlers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{248}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
--- 15398,15404 ----
  @geindex Interrupts
  
  @node RM C 3 2 25 Package Interrupts,RM C 4 14 Pre-elaboration Requirements,RM C 3 1 20-21 Protected Procedure Handlers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{259}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
*************** Followed.
*** 15382,15388 ****
  @geindex Pre-elaboration requirements
  
  @node RM C 4 14 Pre-elaboration Requirements,RM C 5 8 Pragma Discard_Names,RM C 3 2 25 Package Interrupts,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{249}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
--- 15416,15422 ----
  @geindex Pre-elaboration requirements
  
  @node RM C 4 14 Pre-elaboration Requirements,RM C 5 8 Pragma Discard_Names,RM C 3 2 25 Package Interrupts,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{25a}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
*************** Followed.  Executable code is generated
*** 15398,15404 ****
  to initialize large arrays.
  
  @node RM C 5 8 Pragma Discard_Names,RM C 7 2 30 The Package Task_Attributes,RM C 4 14 Pre-elaboration Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{24a}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
--- 15432,15438 ----
  to initialize large arrays.
  
  @node RM C 5 8 Pragma Discard_Names,RM C 7 2 30 The Package Task_Attributes,RM C 4 14 Pre-elaboration Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{25b}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
*************** Followed.
*** 15416,15422 ****
  @geindex Task_Attributes
  
  @node RM C 7 2 30 The Package Task_Attributes,RM D 3 17 Locking Policies,RM C 5 8 Pragma Discard_Names,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{24b}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
--- 15450,15456 ----
  @geindex Task_Attributes
  
  @node RM C 7 2 30 The Package Task_Attributes,RM D 3 17 Locking Policies,RM C 5 8 Pragma Discard_Names,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{25c}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
*************** Not followed.  This implementation is no
*** 15437,15443 ****
  @geindex Locking Policies
  
  @node RM D 3 17 Locking Policies,RM D 4 16 Entry Queuing Policies,RM C 7 2 30 The Package Task_Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{24c}
  @section RM D.3(17): Locking Policies
  
  
--- 15471,15477 ----
  @geindex Locking Policies
  
  @node RM D 3 17 Locking Policies,RM D 4 16 Entry Queuing Policies,RM C 7 2 30 The Package Task_Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{25d}
  @section RM D.3(17): Locking Policies
  
  
*************** whose names (@code{Inheritance_Locking}
*** 15454,15460 ****
  @geindex Entry queuing policies
  
  @node RM D 4 16 Entry Queuing Policies,RM D 6 9-10 Preemptive Abort,RM D 3 17 Locking Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{24d}
  @section RM D.4(16): Entry Queuing Policies
  
  
--- 15488,15494 ----
  @geindex Entry queuing policies
  
  @node RM D 4 16 Entry Queuing Policies,RM D 6 9-10 Preemptive Abort,RM D 3 17 Locking Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{25e}
  @section RM D.4(16): Entry Queuing Policies
  
  
*************** Followed.  No such implementation-define
*** 15469,15475 ****
  @geindex Preemptive abort
  
  @node RM D 6 9-10 Preemptive Abort,RM D 7 21 Tasking Restrictions,RM D 4 16 Entry Queuing Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{24e}
  @section RM D.6(9-10): Preemptive Abort
  
  
--- 15503,15509 ----
  @geindex Preemptive abort
  
  @node RM D 6 9-10 Preemptive Abort,RM D 7 21 Tasking Restrictions,RM D 4 16 Entry Queuing Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{25f}
  @section RM D.6(9-10): Preemptive Abort
  
  
*************** Followed.
*** 15495,15501 ****
  @geindex Tasking restrictions
  
  @node RM D 7 21 Tasking Restrictions,RM D 8 47-49 Monotonic Time,RM D 6 9-10 Preemptive Abort,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{24f}
  @section RM D.7(21): Tasking Restrictions
  
  
--- 15529,15535 ----
  @geindex Tasking restrictions
  
  @node RM D 7 21 Tasking Restrictions,RM D 8 47-49 Monotonic Time,RM D 6 9-10 Preemptive Abort,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{260}
  @section RM D.7(21): Tasking Restrictions
  
  
*************** pragma @code{Profile (Restricted)} for m
*** 15514,15520 ****
  @geindex monotonic
  
  @node RM D 8 47-49 Monotonic Time,RM E 5 28-29 Partition Communication Subsystem,RM D 7 21 Tasking Restrictions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{250}
  @section RM D.8(47-49): Monotonic Time
  
  
--- 15548,15554 ----
  @geindex monotonic
  
  @node RM D 8 47-49 Monotonic Time,RM E 5 28-29 Partition Communication Subsystem,RM D 7 21 Tasking Restrictions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{261}
  @section RM D.8(47-49): Monotonic Time
  
  
*************** Followed.
*** 15549,15555 ****
  @geindex PCS
  
  @node RM E 5 28-29 Partition Communication Subsystem,RM F 7 COBOL Support,RM D 8 47-49 Monotonic Time,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{251}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
--- 15583,15589 ----
  @geindex PCS
  
  @node RM E 5 28-29 Partition Communication Subsystem,RM F 7 COBOL Support,RM D 8 47-49 Monotonic Time,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{262}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
*************** GNAT.
*** 15577,15583 ****
  @geindex COBOL support
  
  @node RM F 7 COBOL Support,RM F 1 2 Decimal Radix Support,RM E 5 28-29 Partition Communication Subsystem,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{252}
  @section RM F(7): COBOL Support
  
  
--- 15611,15617 ----
  @geindex COBOL support
  
  @node RM F 7 COBOL Support,RM F 1 2 Decimal Radix Support,RM E 5 28-29 Partition Communication Subsystem,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{263}
  @section RM F(7): COBOL Support
  
  
*************** Followed.
*** 15597,15603 ****
  @geindex Decimal radix support
  
  @node RM F 1 2 Decimal Radix Support,RM G Numerics,RM F 7 COBOL Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{253}
  @section RM F.1(2): Decimal Radix Support
  
  
--- 15631,15637 ----
  @geindex Decimal radix support
  
  @node RM F 1 2 Decimal Radix Support,RM G Numerics,RM F 7 COBOL Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{264}
  @section RM F.1(2): Decimal Radix Support
  
  
*************** representations.
*** 15613,15619 ****
  @geindex Numerics
  
  @node RM G Numerics,RM G 1 1 56-58 Complex Types,RM F 1 2 Decimal Radix Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{254}
  @section RM G: Numerics
  
  
--- 15647,15653 ----
  @geindex Numerics
  
  @node RM G Numerics,RM G 1 1 56-58 Complex Types,RM F 1 2 Decimal Radix Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{265}
  @section RM G: Numerics
  
  
*************** Followed.
*** 15633,15639 ****
  @geindex Complex types
  
  @node RM G 1 1 56-58 Complex Types,RM G 1 2 49 Complex Elementary Functions,RM G Numerics,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{255}
  @section RM G.1.1(56-58): Complex Types
  
  
--- 15667,15673 ----
  @geindex Complex types
  
  @node RM G 1 1 56-58 Complex Types,RM G 1 2 49 Complex Elementary Functions,RM G Numerics,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{266}
  @section RM G.1.1(56-58): Complex Types
  
  
*************** Followed.
*** 15695,15701 ****
  @geindex Complex elementary functions
  
  @node RM G 1 2 49 Complex Elementary Functions,RM G 2 4 19 Accuracy Requirements,RM G 1 1 56-58 Complex Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{256}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
--- 15729,15735 ----
  @geindex Complex elementary functions
  
  @node RM G 1 2 49 Complex Elementary Functions,RM G 2 4 19 Accuracy Requirements,RM G 1 1 56-58 Complex Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{267}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
*************** Followed.
*** 15717,15723 ****
  @geindex Accuracy requirements
  
  @node RM G 2 4 19 Accuracy Requirements,RM G 2 6 15 Complex Arithmetic Accuracy,RM G 1 2 49 Complex Elementary Functions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{257}
  @section RM G.2.4(19): Accuracy Requirements
  
  
--- 15751,15757 ----
  @geindex Accuracy requirements
  
  @node RM G 2 4 19 Accuracy Requirements,RM G 2 6 15 Complex Arithmetic Accuracy,RM G 1 2 49 Complex Elementary Functions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{268}
  @section RM G.2.4(19): Accuracy Requirements
  
  
*************** Followed.
*** 15741,15747 ****
  @geindex complex arithmetic
  
  @node RM G 2 6 15 Complex Arithmetic Accuracy,RM H 6 15/2 Pragma Partition_Elaboration_Policy,RM G 2 4 19 Accuracy Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{258}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
--- 15775,15781 ----
  @geindex complex arithmetic
  
  @node RM G 2 6 15 Complex Arithmetic Accuracy,RM H 6 15/2 Pragma Partition_Elaboration_Policy,RM G 2 4 19 Accuracy Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{269}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
*************** Followed.
*** 15759,15765 ****
  @geindex Sequential elaboration policy
  
  @node RM H 6 15/2 Pragma Partition_Elaboration_Policy,,RM G 2 6 15 Complex Arithmetic Accuracy,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{259}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
--- 15793,15799 ----
  @geindex Sequential elaboration policy
  
  @node RM H 6 15/2 Pragma Partition_Elaboration_Policy,,RM G 2 6 15 Complex Arithmetic Accuracy,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{26a}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
*************** immediately terminated.”
*** 15774,15780 ****
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{25a}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{25b}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
--- 15808,15814 ----
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{26b}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{26c}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
*************** See separate section on data representat
*** 16623,16629 ****
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{120,,Implementation Defined Aspects}.
  
  
  @itemize *
--- 16657,16663 ----
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{129,,Implementation Defined Aspects}.
  
  
  @itemize *
*************** When the @code{Pattern} parameter is not
*** 17069,17075 ****
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{25c,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
--- 17103,17109 ----
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{26d,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
*************** This definition is determined by the und
*** 17097,17105 ****
--- 17131,17143 ----
  @item 
  “The circumstances where an environment variable cannot be defined.
  See A.17(16).”
+ @end itemize
  
  There are no such implementation-defined circumstances.
  
+ 
+ @itemize *
+ 
  @item 
  “Environment names for which Set has the effect of Clear.  See A.17(17).”
  @end itemize
*************** Execution is erroneous in that case.
*** 17762,17771 ****
--- 17800,17813 ----
  @item 
  “Whether the use of pragma Restrictions results in a reduction in program
  code or data size or execution time.  See D.7(20).”
+ @end itemize
  
  Yes it can, but the precise circumstances and properties of such reductions
  are difficult to characterize.
  
+ 
+ @itemize *
+ 
  @item 
  “The value of Barrier_Limit’Last in Synchronous_Barriers.  See D.10.1(4).”
  @end itemize
*************** Information on those subjects is not yet
*** 18159,18165 ****
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{25d}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{25e}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
--- 18201,18207 ----
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{26e}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{26f}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
*************** Ada standard does not require Ada compil
*** 18197,18203 ****
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{25f}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{260}
  @section Intrinsic Operators
  
  
--- 18239,18245 ----
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{270}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{271}
  @section Intrinsic Operators
  
  
*************** It is also possible to specify such oper
*** 18228,18234 ****
  full views are appropriate arithmetic types.
  
  @node Compilation_ISO_Date,Compilation_Date,Intrinsic Operators,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-iso-date}@anchor{261}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{262}
  @section Compilation_ISO_Date
  
  
--- 18270,18276 ----
  full views are appropriate arithmetic types.
  
  @node Compilation_ISO_Date,Compilation_Date,Intrinsic Operators,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-iso-date}@anchor{272}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{273}
  @section Compilation_ISO_Date
  
  
*************** application program should simply call t
*** 18242,18248 ****
  the current compilation (in local time format YYYY-MM-DD).
  
  @node Compilation_Date,Compilation_Time,Compilation_ISO_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{263}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{264}
  @section Compilation_Date
  
  
--- 18284,18290 ----
  the current compilation (in local time format YYYY-MM-DD).
  
  @node Compilation_Date,Compilation_Time,Compilation_ISO_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{274}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{275}
  @section Compilation_Date
  
  
*************** Same as Compilation_ISO_Date, except the
*** 18252,18258 ****
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{265}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{266}
  @section Compilation_Time
  
  
--- 18294,18300 ----
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{276}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{277}
  @section Compilation_Time
  
  
*************** application program should simply call t
*** 18266,18272 ****
  the current compilation (in local time format HH:MM:SS).
  
  @node Enclosing_Entity,Exception_Information,Compilation_Time,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{267}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{268}
  @section Enclosing_Entity
  
  
--- 18308,18314 ----
  the current compilation (in local time format HH:MM:SS).
  
  @node Enclosing_Entity,Exception_Information,Compilation_Time,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{278}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{279}
  @section Enclosing_Entity
  
  
*************** application program should simply call t
*** 18280,18286 ****
  the current subprogram, package, task, entry, or protected subprogram.
  
  @node Exception_Information,Exception_Message,Enclosing_Entity,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{269}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{26a}
  @section Exception_Information
  
  
--- 18322,18328 ----
  the current subprogram, package, task, entry, or protected subprogram.
  
  @node Exception_Information,Exception_Message,Enclosing_Entity,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{27a}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{27b}
  @section Exception_Information
  
  
*************** so an application program should simply
*** 18294,18300 ****
  the exception information associated with the current exception.
  
  @node Exception_Message,Exception_Name,Exception_Information,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{26b}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{26c}
  @section Exception_Message
  
  
--- 18336,18342 ----
  the exception information associated with the current exception.
  
  @node Exception_Message,Exception_Name,Exception_Information,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{27c}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{27d}
  @section Exception_Message
  
  
*************** so an application program should simply
*** 18308,18314 ****
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{26d}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{26e}
  @section Exception_Name
  
  
--- 18350,18356 ----
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{27e}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{27f}
  @section Exception_Name
  
  
*************** so an application program should simply
*** 18322,18328 ****
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{26f}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{270}
  @section File
  
  
--- 18364,18370 ----
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{280}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{281}
  @section File
  
  
*************** application program should simply call t
*** 18336,18342 ****
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{271}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{272}
  @section Line
  
  
--- 18378,18384 ----
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{282}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{283}
  @section Line
  
  
*************** application program should simply call t
*** 18350,18356 ****
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{273}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{274}
  @section Shifts and Rotates
  
  
--- 18392,18398 ----
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{284}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{285}
  @section Shifts and Rotates
  
  
*************** corresponding operator for modular type.
*** 18393,18399 ****
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{275}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{276}
  @section Source_Location
  
  
--- 18435,18441 ----
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{286}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{287}
  @section Source_Location
  
  
*************** application program should simply call t
*** 18407,18413 ****
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{277}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{278}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
--- 18449,18455 ----
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{288}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{289}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
*************** and this section describes the additiona
*** 18453,18459 ****
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{279}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{27a}
  @section Alignment Clauses
  
  
--- 18495,18501 ----
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{28a}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{28b}
  @section Alignment Clauses
  
  
*************** For elementary types, the alignment is t
*** 18475,18481 ****
  objects of the type divided by @code{Storage_Unit},
  and the maximum alignment supported by the target.
  (This maximum alignment is given by the GNAT-specific attribute
! @code{Standard'Maximum_Alignment}; see @ref{18c,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
--- 18517,18523 ----
  objects of the type divided by @code{Storage_Unit},
  and the maximum alignment supported by the target.
  (This maximum alignment is given by the GNAT-specific attribute
! @code{Standard'Maximum_Alignment}; see @ref{19b,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
*************** assumption is non-portable, and other co
*** 18584,18590 ****
  alignments for the subtype @code{RS}.
  
  @node Size Clauses,Storage_Size Clauses,Alignment Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{27b}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{27c}
  @section Size Clauses
  
  
--- 18626,18632 ----
  alignments for the subtype @code{RS}.
  
  @node Size Clauses,Storage_Size Clauses,Alignment Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{28c}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{28d}
  @section Size Clauses
  
  
*************** if it is known that a Size value can be
*** 18661,18667 ****
  type Integer.
  
  @node Storage_Size Clauses,Size of Variant Record Objects,Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{27d}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{27e}
  @section Storage_Size Clauses
  
  
--- 18703,18709 ----
  type Integer.
  
  @node Storage_Size Clauses,Size of Variant Record Objects,Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{28e}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{28f}
  @section Storage_Size Clauses
  
  
*************** Of course in practice, there will not be
*** 18734,18740 ****
  case of such an access declaration.
  
  @node Size of Variant Record Objects,Biased Representation,Storage_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{27f}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{280}
  @section Size of Variant Record Objects
  
  
--- 18776,18782 ----
  case of such an access declaration.
  
  @node Size of Variant Record Objects,Biased Representation,Storage_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{290}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{291}
  @section Size of Variant Record Objects
  
  
*************** the maximum size, regardless of the curr
*** 18844,18850 ****
  variant value.
  
  @node Biased Representation,Value_Size and Object_Size Clauses,Size of Variant Record Objects,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{281}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{282}
  @section Biased Representation
  
  
--- 18886,18892 ----
  variant value.
  
  @node Biased Representation,Value_Size and Object_Size Clauses,Size of Variant Record Objects,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{292}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{293}
  @section Biased Representation
  
  
*************** biased representation can be used for al
*** 18882,18888 ****
  enumeration types for which a representation clause is given.
  
  @node Value_Size and Object_Size Clauses,Component_Size Clauses,Biased Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{283}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{284}
  @section Value_Size and Object_Size Clauses
  
  
--- 18924,18930 ----
  enumeration types for which a representation clause is given.
  
  @node Value_Size and Object_Size Clauses,Component_Size Clauses,Biased Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{294}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{295}
  @section Value_Size and Object_Size Clauses
  
  
*************** definition clause forces biased represen
*** 19198,19204 ****
  warning can be turned off using @code{-gnatw.B}.
  
  @node Component_Size Clauses,Bit_Order Clauses,Value_Size and Object_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{285}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{286}
  @section Component_Size Clauses
  
  
--- 19240,19246 ----
  warning can be turned off using @code{-gnatw.B}.
  
  @node Component_Size Clauses,Bit_Order Clauses,Value_Size and Object_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{296}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{297}
  @section Component_Size Clauses
  
  
*************** and a pragma Pack for the same array typ
*** 19246,19252 ****
  clauses are given, the pragma Pack will be ignored.
  
  @node Bit_Order Clauses,Effect of Bit_Order on Byte Ordering,Component_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{287}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{288}
  @section Bit_Order Clauses
  
  
--- 19288,19294 ----
  clauses are given, the pragma Pack will be ignored.
  
  @node Bit_Order Clauses,Effect of Bit_Order on Byte Ordering,Component_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{298}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{299}
  @section Bit_Order Clauses
  
  
*************** if desired.  The following section conta
*** 19352,19358 ****
  details regarding the issue of byte ordering.
  
  @node Effect of Bit_Order on Byte Ordering,Pragma Pack for Arrays,Bit_Order Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{289}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{28a}
  @section Effect of Bit_Order on Byte Ordering
  
  
--- 19394,19400 ----
  details regarding the issue of byte ordering.
  
  @node Effect of Bit_Order on Byte Ordering,Pragma Pack for Arrays,Bit_Order Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{29a}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{29b}
  @section Effect of Bit_Order on Byte Ordering
  
  
*************** to set the boolean constant @code{Master
*** 19609,19615 ****
  an appropriate manner.
  
  @node Pragma Pack for Arrays,Pragma Pack for Records,Effect of Bit_Order on Byte Ordering,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{28b}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{28c}
  @section Pragma Pack for Arrays
  
  
--- 19651,19657 ----
  an appropriate manner.
  
  @node Pragma Pack for Arrays,Pragma Pack for Records,Effect of Bit_Order on Byte Ordering,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{29c}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{29d}
  @section Pragma Pack for Arrays
  
  
*************** Here 31-bit packing is achieved as requi
*** 19729,19735 ****
  since in this case the programmer intention is clear.
  
  @node Pragma Pack for Records,Record Representation Clauses,Pragma Pack for Arrays,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{28d}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{28e}
  @section Pragma Pack for Records
  
  
--- 19771,19777 ----
  since in this case the programmer intention is clear.
  
  @node Pragma Pack for Records,Record Representation Clauses,Pragma Pack for Arrays,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{29e}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{29f}
  @section Pragma Pack for Records
  
  
*************** array that is longer than 64 bits, so it
*** 19813,19819 ****
  boundary, and takes an integral number of bytes, i.e., 72 bits.
  
  @node Record Representation Clauses,Handling of Records with Holes,Pragma Pack for Records,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{28f}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{290}
  @section Record Representation Clauses
  
  
--- 19855,19861 ----
  boundary, and takes an integral number of bytes, i.e., 72 bits.
  
  @node Record Representation Clauses,Handling of Records with Holes,Pragma Pack for Records,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{2a0}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{2a1}
  @section Record Representation Clauses
  
  
*************** end record;
*** 19892,19898 ****
  @end example
  
  @node Handling of Records with Holes,Enumeration Clauses,Record Representation Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{291}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{292}
  @section Handling of Records with Holes
  
  
--- 19934,19940 ----
  @end example
  
  @node Handling of Records with Holes,Enumeration Clauses,Record Representation Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{2a2}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{2a3}
  @section Handling of Records with Holes
  
  
*************** for Hrec'Size use 64;
*** 19968,19974 ****
  @end example
  
  @node Enumeration Clauses,Address Clauses,Handling of Records with Holes,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{293}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{294}
  @section Enumeration Clauses
  
  
--- 20010,20016 ----
  @end example
  
  @node Enumeration Clauses,Address Clauses,Handling of Records with Holes,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{2a4}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{2a5}
  @section Enumeration Clauses
  
  
*************** the overhead of converting representatio
*** 20011,20017 ****
  positional values, (i.e., the value delivered by the @code{Pos} attribute).
  
  @node Address Clauses,Use of Address Clauses for Memory-Mapped I/O,Enumeration Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{295}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{296}
  @section Address Clauses
  
  
--- 20053,20059 ----
  positional values, (i.e., the value delivered by the @code{Pos} attribute).
  
  @node Address Clauses,Use of Address Clauses for Memory-Mapped I/O,Enumeration Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{2a6}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{2a7}
  @section Address Clauses
  
  
*************** then the program compiles without the wa
*** 20351,20357 ****
  the output @code{X was not clobbered}.
  
  @node Use of Address Clauses for Memory-Mapped I/O,Effect of Convention on Representation,Address Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{297}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{298}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
--- 20393,20399 ----
  the output @code{X was not clobbered}.
  
  @node Use of Address Clauses for Memory-Mapped I/O,Effect of Convention on Representation,Address Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{2a8}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{2a9}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
*************** provides the pragma @code{Volatile_Full_
*** 20409,20415 ****
  pragma @code{Atomic} and will give the additional guarantee.
  
  @node Effect of Convention on Representation,Conventions and Anonymous Access Types,Use of Address Clauses for Memory-Mapped I/O,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{299}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{29a}
  @section Effect of Convention on Representation
  
  
--- 20451,20457 ----
  pragma @code{Atomic} and will give the additional guarantee.
  
  @node Effect of Convention on Representation,Conventions and Anonymous Access Types,Use of Address Clauses for Memory-Mapped I/O,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{2aa}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{2ab}
  @section Effect of Convention on Representation
  
  
*************** when one of these values is read, any no
*** 20487,20493 ****
  @end itemize
  
  @node Conventions and Anonymous Access Types,Determining the Representations chosen by GNAT,Effect of Convention on Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{29b}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{29c}
  @section Conventions and Anonymous Access Types
  
  
--- 20529,20535 ----
  @end itemize
  
  @node Conventions and Anonymous Access Types,Determining the Representations chosen by GNAT,Effect of Convention on Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{2ac}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{2ad}
  @section Conventions and Anonymous Access Types
  
  
*************** package ConvComp is
*** 20563,20569 ****
  @end example
  
  @node Determining the Representations chosen by GNAT,,Conventions and Anonymous Access Types,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{29d}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{29e}
  @section Determining the Representations chosen by GNAT
  
  
--- 20605,20611 ----
  @end example
  
  @node Determining the Representations chosen by GNAT,,Conventions and Anonymous Access Types,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{2ae}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{2af}
  @section Determining the Representations chosen by GNAT
  
  
*************** generated by the compiler into the origi
*** 20715,20721 ****
  the actual representation to be used.
  
  @node Standard Library Routines,The Implementation of Standard I/O,Representation Clauses and Pragmas,Top
! @anchor{gnat_rm/standard_library_routines doc}@anchor{29f}@anchor{gnat_rm/standard_library_routines id1}@anchor{2a0}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
--- 20757,20763 ----
  the actual representation to be used.
  
  @node Standard Library Routines,The Implementation of Standard I/O,Representation Clauses and Pragmas,Top
! @anchor{gnat_rm/standard_library_routines doc}@anchor{2b0}@anchor{gnat_rm/standard_library_routines id1}@anchor{2b1}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
*************** For packages in Interfaces and System, a
*** 21539,21545 ****
  available in GNAT, see the Ada 2012 RM for full details.
  
  @node The Implementation of Standard I/O,The GNAT Library,Standard Library Routines,Top
! @anchor{gnat_rm/the_implementation_of_standard_i_o doc}@anchor{2a1}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2a2}@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}
  @chapter The Implementation of Standard I/O
  
  
--- 21581,21587 ----
  available in GNAT, see the Ada 2012 RM for full details.
  
  @node The Implementation of Standard I/O,The GNAT Library,Standard Library Routines,Top
! @anchor{gnat_rm/the_implementation_of_standard_i_o doc}@anchor{2b2}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2b3}@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}
  @chapter The Implementation of Standard I/O
  
  
*************** these additional facilities are also des
*** 21591,21597 ****
  @end menu
  
  @node Standard I/O Packages,FORM Strings,,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{2a3}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2a4}
  @section Standard I/O Packages
  
  
--- 21633,21639 ----
  @end menu
  
  @node Standard I/O Packages,FORM Strings,,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{2b4}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2b5}
  @section Standard I/O Packages
  
  
*************** library streams facility; where
*** 21647,21653 ****
  All files are opened using @code{fopen}.
  
  @item 
! All input/output operations use @code{fread}/@cite{fwrite}.
  @end itemize
  
  There is no internal buffering of any kind at the Ada library level. The only
--- 21689,21695 ----
  All files are opened using @code{fopen}.
  
  @item 
! All input/output operations use @code{fread}/@code{fwrite}.
  @end itemize
  
  There is no internal buffering of any kind at the Ada library level. The only
*************** flush the common I/O streams and in part
*** 21662,21668 ****
  elaborating the Ada code.
  
  @node FORM Strings,Direct_IO,Standard I/O Packages,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{2a5}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2a6}
  @section FORM Strings
  
  
--- 21704,21710 ----
  elaborating the Ada code.
  
  @node FORM Strings,Direct_IO,Standard I/O Packages,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{2b6}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2b7}
  @section FORM Strings
  
  
*************** unrecognized keyword appears in a form s
*** 21688,21694 ****
  and not considered invalid.
  
  @node Direct_IO,Sequential_IO,FORM Strings,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{2a7}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2a8}
  @section Direct_IO
  
  
--- 21730,21736 ----
  and not considered invalid.
  
  @node Direct_IO,Sequential_IO,FORM Strings,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{2b8}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2b9}
  @section Direct_IO
  
  
*************** The records of a Direct_IO file are simp
*** 21701,21714 ****
  sequence, with the first record starting at offset zero, and subsequent
  records following.  There is no control information of any kind.  For
  example, if 32-bit integers are being written, each record takes
! 4-bytes, so the record at index @code{K} starts at offset
! (@code{K}-1)*4.
  
  There is no limit on the size of Direct_IO files, they are expanded as
  necessary to accommodate whatever records are written to the file.
  
  @node Sequential_IO,Text_IO,Direct_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{2a9}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2aa}
  @section Sequential_IO
  
  
--- 21743,21755 ----
  sequence, with the first record starting at offset zero, and subsequent
  records following.  There is no control information of any kind.  For
  example, if 32-bit integers are being written, each record takes
! 4-bytes, so the record at index @code{K} starts at offset @code{(K-1)*4}.
  
  There is no limit on the size of Direct_IO files, they are expanded as
  necessary to accommodate whatever records are written to the file.
  
  @node Sequential_IO,Text_IO,Direct_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{2ba}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2bb}
  @section Sequential_IO
  
  
*************** using Stream_IO, and this is the preferr
*** 21755,21761 ****
  above program fragment rewritten to use Stream_IO will work correctly.
  
  @node Text_IO,Wide_Text_IO,Sequential_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{2ab}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2ac}
  @section Text_IO
  
  
--- 21796,21802 ----
  above program fragment rewritten to use Stream_IO will work correctly.
  
  @node Text_IO,Wide_Text_IO,Sequential_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{2bc}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2bd}
  @section Text_IO
  
  
*************** the file.
*** 21838,21844 ****
  @end menu
  
  @node Stream Pointer Positioning,Reading and Writing Non-Regular Files,,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{2ad}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2ae}
  @subsection Stream Pointer Positioning
  
  
--- 21879,21885 ----
  @end menu
  
  @node Stream Pointer Positioning,Reading and Writing Non-Regular Files,,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{2be}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2bf}
  @subsection Stream Pointer Positioning
  
  
*************** between two Ada files, then the differen
*** 21874,21880 ****
  situations.
  
  @node Reading and Writing Non-Regular Files,Get_Immediate,Stream Pointer Positioning,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{2af}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2b0}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 21915,21921 ----
  situations.
  
  @node Reading and Writing Non-Regular Files,Get_Immediate,Stream Pointer Positioning,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{2c0}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2c1}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** to read data past that end of
*** 21925,21931 ****
  file indication, until another end of file indication is entered.
  
  @node Get_Immediate,Treating Text_IO Files as Streams,Reading and Writing Non-Regular Files,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{2b1}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2b2}
  @subsection Get_Immediate
  
  
--- 21966,21972 ----
  file indication, until another end of file indication is entered.
  
  @node Get_Immediate,Treating Text_IO Files as Streams,Reading and Writing Non-Regular Files,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{2c2}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2c3}
  @subsection Get_Immediate
  
  
*************** possible), it is undefined whether the F
*** 21943,21949 ****
  page mark.
  
  @node Treating Text_IO Files as Streams,Text_IO Extensions,Get_Immediate,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{2b3}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2b4}
  @subsection Treating Text_IO Files as Streams
  
  
--- 21984,21990 ----
  page mark.
  
  @node Treating Text_IO Files as Streams,Text_IO Extensions,Get_Immediate,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{2c4}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2c5}
  @subsection Treating Text_IO Files as Streams
  
  
*************** skipped and the effect is similar to tha
*** 21959,21965 ****
  @code{Get_Immediate}.
  
  @node Text_IO Extensions,Text_IO Facilities for Unbounded Strings,Treating Text_IO Files as Streams,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{2b5}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2b6}
  @subsection Text_IO Extensions
  
  
--- 22000,22006 ----
  @code{Get_Immediate}.
  
  @node Text_IO Extensions,Text_IO Facilities for Unbounded Strings,Treating Text_IO Files as Streams,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{2c6}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2c7}
  @subsection Text_IO Extensions
  
  
*************** the string is to be read.
*** 21987,21993 ****
  @end itemize
  
  @node Text_IO Facilities for Unbounded Strings,,Text_IO Extensions,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{2b7}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2b8}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
--- 22028,22034 ----
  @end itemize
  
  @node Text_IO Facilities for Unbounded Strings,,Text_IO Extensions,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{2c8}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2c9}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
*************** files @code{a-szuzti.ads} and @code{a-sz
*** 22035,22041 ****
  @code{Wide_Wide_Text_IO} functionality for unbounded wide wide strings.
  
  @node Wide_Text_IO,Wide_Wide_Text_IO,Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{2b9}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2ba}
  @section Wide_Text_IO
  
  
--- 22076,22082 ----
  @code{Wide_Wide_Text_IO} functionality for unbounded wide wide strings.
  
  @node Wide_Text_IO,Wide_Wide_Text_IO,Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{2ca}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2cb}
  @section Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22282,22293 ****
  @end menu
  
  @node Stream Pointer Positioning<2>,Reading and Writing Non-Regular Files<2>,,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{2bb}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2bc}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2ac,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the
--- 22323,22334 ----
  @end menu
  
  @node Stream Pointer Positioning<2>,Reading and Writing Non-Regular Files<2>,,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{2cc}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2cd}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2bd,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the
*************** to a normal program using @code{Wide_Tex
*** 22306,22312 ****
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<2>,,Stream Pointer Positioning<2>,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{2bd}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2be}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22347,22353 ----
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<2>,,Stream Pointer Positioning<2>,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{2ce}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2cf}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22317,22323 ****
  it is possible to read beyond an end of file.
  
  @node Wide_Wide_Text_IO,Stream_IO,Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{2bf}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2c0}
  @section Wide_Wide_Text_IO
  
  
--- 22358,22364 ----
  it is possible to read beyond an end of file.
  
  @node Wide_Wide_Text_IO,Stream_IO,Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{2d0}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2d1}
  @section Wide_Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22486,22497 ****
  @end menu
  
  @node Stream Pointer Positioning<3>,Reading and Writing Non-Regular Files<3>,,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{2c1}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2c2}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2ac,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the
--- 22527,22538 ----
  @end menu
  
  @node Stream Pointer Positioning<3>,Reading and Writing Non-Regular Files<3>,,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{2d2}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2d3}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2bd,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the
*************** to a normal program using @code{Wide_Wid
*** 22510,22516 ****
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<3>,,Stream Pointer Positioning<3>,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{2c3}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2c4}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22551,22557 ----
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<3>,,Stream Pointer Positioning<3>,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{2d4}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2d5}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22521,22527 ****
  it is possible to read beyond an end of file.
  
  @node Stream_IO,Text Translation,Wide_Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{2c5}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2c6}
  @section Stream_IO
  
  
--- 22562,22568 ----
  it is possible to read beyond an end of file.
  
  @node Stream_IO,Text Translation,Wide_Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{2d6}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2d7}
  @section Stream_IO
  
  
*************** manner described for stream attributes.
*** 22543,22549 ****
  @end itemize
  
  @node Text Translation,Shared Files,Stream_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{2c7}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2c8}
  @section Text Translation
  
  
--- 22584,22590 ----
  @end itemize
  
  @node Text Translation,Shared Files,Stream_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{2d8}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2d9}
  @section Text Translation
  
  
*************** mode. (corresponds to_O_U16TEXT).
*** 22577,22583 ****
  @end itemize
  
  @node Shared Files,Filenames encoding,Text Translation,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{2c9}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2ca}
  @section Shared Files
  
  
--- 22618,22624 ----
  @end itemize
  
  @node Shared Files,Filenames encoding,Text Translation,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{2da}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2db}
  @section Shared Files
  
  
*************** heterogeneous input-output.  Although th
*** 22640,22646 ****
  for this purpose (using the stream attributes)
  
  @node Filenames encoding,File content encoding,Shared Files,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{2cb}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2cc}
  @section Filenames encoding
  
  
--- 22681,22687 ----
  for this purpose (using the stream attributes)
  
  @node Filenames encoding,File content encoding,Shared Files,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{2dc}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2dd}
  @section Filenames encoding
  
  
*************** platform. On the other Operating Systems
*** 22680,22686 ****
  UTF-8 natively.
  
  @node File content encoding,Open Modes,Filenames encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{2cd}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2ce}
  @section File content encoding
  
  
--- 22721,22727 ----
  UTF-8 natively.
  
  @node File content encoding,Open Modes,Filenames encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{2de}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2df}
  @section File content encoding
  
  
*************** Unicode 8-bit encoding
*** 22713,22719 ****
  This encoding is only supported on the Windows platform.
  
  @node Open Modes,Operations on C Streams,File content encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{2cf}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2d0}
  @section Open Modes
  
  
--- 22754,22760 ----
  This encoding is only supported on the Windows platform.
  
  @node Open Modes,Operations on C Streams,File content encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{2e0}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2e1}
  @section Open Modes
  
  
*************** subsequently requires switching from rea
*** 22816,22822 ****
  then the file is reopened in @code{r+} mode to permit the required operation.
  
  @node Operations on C Streams,Interfacing to C Streams,Open Modes,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{2d1}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2d2}
  @section Operations on C Streams
  
  
--- 22857,22863 ----
  then the file is reopened in @code{r+} mode to permit the required operation.
  
  @node Operations on C Streams,Interfacing to C Streams,Open Modes,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{2e2}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2e3}
  @section Operations on C Streams
  
  
*************** end Interfaces.C_Streams;
*** 22976,22982 ****
  @end example
  
  @node Interfacing to C Streams,,Operations on C Streams,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{2d3}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2d4}
  @section Interfacing to C Streams
  
  
--- 23017,23023 ----
  @end example
  
  @node Interfacing to C Streams,,Operations on C Streams,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{2e4}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2e5}
  @section Interfacing to C Streams
  
  
*************** imported from a C program, allowing an A
*** 23069,23075 ****
  existing C file.
  
  @node The GNAT Library,Interfacing to Other Languages,The Implementation of Standard I/O,Top
! @anchor{gnat_rm/the_gnat_library doc}@anchor{2d5}@anchor{gnat_rm/the_gnat_library id1}@anchor{2d6}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
--- 23110,23116 ----
  existing C file.
  
  @node The GNAT Library,Interfacing to Other Languages,The Implementation of Standard I/O,Top
! @anchor{gnat_rm/the_gnat_library doc}@anchor{2e6}@anchor{gnat_rm/the_gnat_library id1}@anchor{2e7}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
*************** of GNAT, and will generate a warning mes
*** 23255,23261 ****
  @end menu
  
  @node Ada Characters Latin_9 a-chlat9 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{2d7}@anchor{gnat_rm/the_gnat_library id2}@anchor{2d8}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
--- 23296,23302 ----
  @end menu
  
  @node Ada Characters Latin_9 a-chlat9 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{2e8}@anchor{gnat_rm/the_gnat_library id2}@anchor{2e9}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23272,23278 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_1 a-cwila1 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Latin_9 a-chlat9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{2d9}@anchor{gnat_rm/the_gnat_library id3}@anchor{2da}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
--- 23313,23319 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_1 a-cwila1 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Latin_9 a-chlat9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{2ea}@anchor{gnat_rm/the_gnat_library id3}@anchor{2eb}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23289,23295 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila9-ads}@anchor{2db}@anchor{gnat_rm/the_gnat_library id4}@anchor{2dc}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
--- 23330,23336 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila9-ads}@anchor{2ec}@anchor{gnat_rm/the_gnat_library id4}@anchor{2ed}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23306,23312 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{2dd}@anchor{gnat_rm/the_gnat_library id5}@anchor{2de}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
--- 23347,23353 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{2ee}@anchor{gnat_rm/the_gnat_library id5}@anchor{2ef}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23323,23329 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Containers Bounded_Holders a-coboho ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{2df}@anchor{gnat_rm/the_gnat_library id6}@anchor{2e0}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
--- 23364,23370 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Containers Bounded_Holders a-coboho ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{2f0}@anchor{gnat_rm/the_gnat_library id6}@anchor{2f1}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23340,23346 ****
  (RM A.3.3(27)).
  
  @node Ada Containers Bounded_Holders a-coboho ads,Ada Command_Line Environment a-colien ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{2e1}@anchor{gnat_rm/the_gnat_library id7}@anchor{2e2}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
--- 23381,23387 ----
  (RM A.3.3(27)).
  
  @node Ada Containers Bounded_Holders a-coboho ads,Ada Command_Line Environment a-colien ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{2f2}@anchor{gnat_rm/the_gnat_library id7}@anchor{2f3}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
*************** This child of @code{Ada.Containers} defi
*** 23352,23358 ****
  Indefinite_Holders that avoids heap allocation.
  
  @node Ada Command_Line Environment a-colien ads,Ada Command_Line Remove a-colire ads,Ada Containers Bounded_Holders a-coboho ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{2e3}@anchor{gnat_rm/the_gnat_library id8}@anchor{2e4}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
--- 23393,23399 ----
  Indefinite_Holders that avoids heap allocation.
  
  @node Ada Command_Line Environment a-colien ads,Ada Command_Line Remove a-colire ads,Ada Containers Bounded_Holders a-coboho ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{2f4}@anchor{gnat_rm/the_gnat_library id8}@anchor{2f5}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
*************** provides a mechanism for obtaining envir
*** 23365,23371 ****
  where this concept makes sense.
  
  @node Ada Command_Line Remove a-colire ads,Ada Command_Line Response_File a-clrefi ads,Ada Command_Line Environment a-colien ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{2e5}@anchor{gnat_rm/the_gnat_library id9}@anchor{2e6}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
--- 23406,23412 ----
  where this concept makes sense.
  
  @node Ada Command_Line Remove a-colire ads,Ada Command_Line Response_File a-clrefi ads,Ada Command_Line Environment a-colien ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{2f6}@anchor{gnat_rm/the_gnat_library id9}@anchor{2f7}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
*************** to further calls to the subprograms in @
*** 23383,23389 ****
  will not see the removed argument.
  
  @node Ada Command_Line Response_File a-clrefi ads,Ada Direct_IO C_Streams a-diocst ads,Ada Command_Line Remove a-colire ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{2e7}@anchor{gnat_rm/the_gnat_library id10}@anchor{2e8}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
--- 23424,23430 ----
  will not see the removed argument.
  
  @node Ada Command_Line Response_File a-clrefi ads,Ada Direct_IO C_Streams a-diocst ads,Ada Command_Line Remove a-colire ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{2f8}@anchor{gnat_rm/the_gnat_library id10}@anchor{2f9}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
*************** Using a response file allow passing a se
*** 23403,23409 ****
  than the maximum allowed by the system on the command line.
  
  @node Ada Direct_IO C_Streams a-diocst ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Command_Line Response_File a-clrefi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{2e9}@anchor{gnat_rm/the_gnat_library id11}@anchor{2ea}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
--- 23444,23450 ----
  than the maximum allowed by the system on the command line.
  
  @node Ada Direct_IO C_Streams a-diocst ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Command_Line Response_File a-clrefi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{2fa}@anchor{gnat_rm/the_gnat_library id11}@anchor{2fb}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23418,23424 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Direct_IO C_Streams a-diocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{2eb}@anchor{gnat_rm/the_gnat_library id12}@anchor{2ec}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
--- 23459,23465 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Direct_IO C_Streams a-diocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{2fc}@anchor{gnat_rm/the_gnat_library id12}@anchor{2fd}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
*************** exception occurrence (@code{Null_Occurre
*** 23432,23438 ****
  an exception.
  
  @node Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Exceptions Traceback a-exctra ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{2ed}@anchor{gnat_rm/the_gnat_library id13}@anchor{2ee}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
--- 23473,23479 ----
  an exception.
  
  @node Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Exceptions Traceback a-exctra ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{2fe}@anchor{gnat_rm/the_gnat_library id13}@anchor{2ff}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
*************** exceptions (hence the name last chance),
*** 23446,23452 ****
  terminating the program. Note that this subprogram never returns.
  
  @node Ada Exceptions Traceback a-exctra ads,Ada Sequential_IO C_Streams a-siocst ads,Ada Exceptions Last_Chance_Handler a-elchha ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{2ef}@anchor{gnat_rm/the_gnat_library id14}@anchor{2f0}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
--- 23487,23493 ----
  terminating the program. Note that this subprogram never returns.
  
  @node Ada Exceptions Traceback a-exctra ads,Ada Sequential_IO C_Streams a-siocst ads,Ada Exceptions Last_Chance_Handler a-elchha ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{300}@anchor{gnat_rm/the_gnat_library id14}@anchor{301}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
*************** give a traceback array of addresses base
*** 23459,23465 ****
  occurrence.
  
  @node Ada Sequential_IO C_Streams a-siocst ads,Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Exceptions Traceback a-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{2f1}@anchor{gnat_rm/the_gnat_library id15}@anchor{2f2}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
--- 23500,23506 ----
  occurrence.
  
  @node Ada Sequential_IO C_Streams a-siocst ads,Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Exceptions Traceback a-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{302}@anchor{gnat_rm/the_gnat_library id15}@anchor{303}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23474,23480 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Strings Unbounded Text_IO a-suteio ads,Ada Sequential_IO C_Streams a-siocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{2f3}@anchor{gnat_rm/the_gnat_library id16}@anchor{2f4}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
--- 23515,23521 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Strings Unbounded Text_IO a-suteio ads,Ada Sequential_IO C_Streams a-siocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{304}@anchor{gnat_rm/the_gnat_library id16}@anchor{305}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23489,23495 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Strings Unbounded Text_IO a-suteio ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Streams Stream_IO C_Streams a-ssicst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{2f5}@anchor{gnat_rm/the_gnat_library id17}@anchor{2f6}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
--- 23530,23536 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Strings Unbounded Text_IO a-suteio ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Streams Stream_IO C_Streams a-ssicst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{306}@anchor{gnat_rm/the_gnat_library id17}@anchor{307}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
*************** strings, avoiding the necessity for an i
*** 23506,23512 ****
  with ordinary strings.
  
  @node Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Strings Unbounded Text_IO a-suteio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{2f7}@anchor{gnat_rm/the_gnat_library id18}@anchor{2f8}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
--- 23547,23553 ----
  with ordinary strings.
  
  @node Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Strings Unbounded Text_IO a-suteio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{308}@anchor{gnat_rm/the_gnat_library id18}@anchor{309}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
*************** wide strings, avoiding the necessity for
*** 23523,23529 ****
  with ordinary wide strings.
  
  @node Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Task_Initialization a-tasini ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{2f9}@anchor{gnat_rm/the_gnat_library id19}@anchor{2fa}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
--- 23564,23570 ----
  with ordinary wide strings.
  
  @node Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Task_Initialization a-tasini ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{30a}@anchor{gnat_rm/the_gnat_library id19}@anchor{30b}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
*************** wide wide strings, avoiding the necessit
*** 23540,23546 ****
  with ordinary wide wide strings.
  
  @node Ada Task_Initialization a-tasini ads,Ada Text_IO C_Streams a-tiocst ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-task-initialization-a-tasini-ads}@anchor{2fb}@anchor{gnat_rm/the_gnat_library id20}@anchor{2fc}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
--- 23581,23587 ----
  with ordinary wide wide strings.
  
  @node Ada Task_Initialization a-tasini ads,Ada Text_IO C_Streams a-tiocst ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-task-initialization-a-tasini-ads}@anchor{30c}@anchor{gnat_rm/the_gnat_library id20}@anchor{30d}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
*************** parameterless procedures. Note that such
*** 23552,23558 ****
  those tasks activated after the handler is set.
  
  @node Ada Text_IO C_Streams a-tiocst ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Task_Initialization a-tasini ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{2fd}@anchor{gnat_rm/the_gnat_library id21}@anchor{2fe}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
--- 23593,23599 ----
  those tasks activated after the handler is set.
  
  @node Ada Text_IO C_Streams a-tiocst ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Task_Initialization a-tasini ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{30e}@anchor{gnat_rm/the_gnat_library id21}@anchor{30f}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23567,23573 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Wide_Characters Unicode a-wichun ads,Ada Text_IO C_Streams a-tiocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{2ff}@anchor{gnat_rm/the_gnat_library id22}@anchor{300}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
--- 23608,23614 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Wide_Characters Unicode a-wichun ads,Ada Text_IO C_Streams a-tiocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{310}@anchor{gnat_rm/the_gnat_library id22}@anchor{311}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
*************** execution (for example a standard input
*** 23582,23588 ****
  interactive).
  
  @node Ada Wide_Characters Unicode a-wichun ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{301}@anchor{gnat_rm/the_gnat_library id23}@anchor{302}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
--- 23623,23629 ----
  interactive).
  
  @node Ada Wide_Characters Unicode a-wichun ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{312}@anchor{gnat_rm/the_gnat_library id23}@anchor{313}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
*************** This package provides subprograms that a
*** 23595,23601 ****
  Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Characters Unicode a-wichun ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{303}@anchor{gnat_rm/the_gnat_library id24}@anchor{304}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
--- 23636,23642 ----
  Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Characters Unicode a-wichun ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{314}@anchor{gnat_rm/the_gnat_library id24}@anchor{315}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23610,23616 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{305}@anchor{gnat_rm/the_gnat_library id25}@anchor{306}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
--- 23651,23657 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{316}@anchor{gnat_rm/the_gnat_library id25}@anchor{317}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
*************** execution (for example a standard input
*** 23625,23631 ****
  interactive).
  
  @node Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{307}@anchor{gnat_rm/the_gnat_library id26}@anchor{308}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
--- 23666,23672 ----
  interactive).
  
  @node Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{318}@anchor{gnat_rm/the_gnat_library id26}@anchor{319}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
*************** This package provides subprograms that a
*** 23638,23644 ****
  Wide_Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{309}@anchor{gnat_rm/the_gnat_library id27}@anchor{30a}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
--- 23679,23685 ----
  Wide_Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{31a}@anchor{gnat_rm/the_gnat_library id27}@anchor{31b}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23653,23659 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,GNAT Altivec g-altive ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{30b}@anchor{gnat_rm/the_gnat_library id28}@anchor{30c}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
--- 23694,23700 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,GNAT Altivec g-altive ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{31c}@anchor{gnat_rm/the_gnat_library id28}@anchor{31d}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
*************** change during execution (for example a s
*** 23668,23674 ****
  redefined to be interactive).
  
  @node GNAT Altivec g-altive ads,GNAT Altivec Conversions g-altcon ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{30d}@anchor{gnat_rm/the_gnat_library id29}@anchor{30e}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
--- 23709,23715 ----
  redefined to be interactive).
  
  @node GNAT Altivec g-altive ads,GNAT Altivec Conversions g-altcon ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{31e}@anchor{gnat_rm/the_gnat_library id29}@anchor{31f}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
*************** definitions of constants and types commo
*** 23681,23687 ****
  binding.
  
  @node GNAT Altivec Conversions g-altcon ads,GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec g-altive ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{30f}@anchor{gnat_rm/the_gnat_library id30}@anchor{310}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
--- 23722,23728 ----
  binding.
  
  @node GNAT Altivec Conversions g-altcon ads,GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec g-altive ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{320}@anchor{gnat_rm/the_gnat_library id30}@anchor{321}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
*************** binding.
*** 23692,23698 ****
  This package provides the Vector/View conversion routines.
  
  @node GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Conversions g-altcon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{311}@anchor{gnat_rm/the_gnat_library id31}@anchor{312}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
--- 23733,23739 ----
  This package provides the Vector/View conversion routines.
  
  @node GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Conversions g-altcon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{322}@anchor{gnat_rm/the_gnat_library id31}@anchor{323}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
*************** library. The hard binding is provided as
*** 23706,23712 ****
  is common to both bindings.
  
  @node GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Vector_Views g-alvevi ads,GNAT Altivec Vector_Operations g-alveop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{313}@anchor{gnat_rm/the_gnat_library id32}@anchor{314}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
--- 23747,23753 ----
  is common to both bindings.
  
  @node GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Vector_Views g-alvevi ads,GNAT Altivec Vector_Operations g-alveop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{324}@anchor{gnat_rm/the_gnat_library id32}@anchor{325}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
*************** This package exposes the various vector
*** 23718,23724 ****
  to AltiVec facilities.
  
  @node GNAT Altivec Vector_Views g-alvevi ads,GNAT Array_Split g-arrspl ads,GNAT Altivec Vector_Types g-alvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{315}@anchor{gnat_rm/the_gnat_library id33}@anchor{316}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
--- 23759,23765 ----
  to AltiVec facilities.
  
  @node GNAT Altivec Vector_Views g-alvevi ads,GNAT Array_Split g-arrspl ads,GNAT Altivec Vector_Types g-alvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{326}@anchor{gnat_rm/the_gnat_library id33}@anchor{327}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
*************** vector elements and provides a simple wa
*** 23733,23739 ****
  objects.
  
  @node GNAT Array_Split g-arrspl ads,GNAT AWK g-awk ads,GNAT Altivec Vector_Views g-alvevi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{317}@anchor{gnat_rm/the_gnat_library id34}@anchor{318}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
--- 23774,23780 ----
  objects.
  
  @node GNAT Array_Split g-arrspl ads,GNAT AWK g-awk ads,GNAT Altivec Vector_Views g-alvevi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{328}@anchor{gnat_rm/the_gnat_library id34}@anchor{329}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
*************** an array wherever the separators appear,
*** 23746,23752 ****
  to the resulting slices.
  
  @node GNAT AWK g-awk ads,GNAT Binary_Search g-binsea ads,GNAT Array_Split g-arrspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{319}@anchor{gnat_rm/the_gnat_library id35}@anchor{31a}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
--- 23787,23793 ----
  to the resulting slices.
  
  @node GNAT AWK g-awk ads,GNAT Binary_Search g-binsea ads,GNAT Array_Split g-arrspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{32a}@anchor{gnat_rm/the_gnat_library id35}@anchor{32b}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
*************** or more files containing formatted data.
*** 23761,23767 ****
  where each record is a line and a field is a data element in this line.
  
  @node GNAT Binary_Search g-binsea ads,GNAT Bind_Environment g-binenv ads,GNAT AWK g-awk ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-binary-search-g-binsea-ads}@anchor{31b}@anchor{gnat_rm/the_gnat_library id36}@anchor{31c}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
--- 23802,23808 ----
  where each record is a line and a field is a data element in this line.
  
  @node GNAT Binary_Search g-binsea ads,GNAT Bind_Environment g-binenv ads,GNAT AWK g-awk ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-binary-search-g-binsea-ads}@anchor{32c}@anchor{gnat_rm/the_gnat_library id36}@anchor{32d}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
*************** Allow binary search of a sorted array (o
*** 23773,23779 ****
  the generic does not reference the array directly).
  
  @node GNAT Bind_Environment g-binenv ads,GNAT Branch_Prediction g-brapre ads,GNAT Binary_Search g-binsea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bind-environment-g-binenv-ads}@anchor{31d}@anchor{gnat_rm/the_gnat_library id37}@anchor{31e}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
--- 23814,23820 ----
  the generic does not reference the array directly).
  
  @node GNAT Bind_Environment g-binenv ads,GNAT Branch_Prediction g-brapre ads,GNAT Binary_Search g-binsea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bind-environment-g-binenv-ads}@anchor{32e}@anchor{gnat_rm/the_gnat_library id37}@anchor{32f}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
*************** These associations can be specified usin
*** 23786,23792 ****
  line switch.
  
  @node GNAT Branch_Prediction g-brapre ads,GNAT Bounded_Buffers g-boubuf ads,GNAT Bind_Environment g-binenv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-branch-prediction-g-brapre-ads}@anchor{31f}@anchor{gnat_rm/the_gnat_library id38}@anchor{320}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
--- 23827,23833 ----
  line switch.
  
  @node GNAT Branch_Prediction g-brapre ads,GNAT Bounded_Buffers g-boubuf ads,GNAT Bind_Environment g-binenv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-branch-prediction-g-brapre-ads}@anchor{330}@anchor{gnat_rm/the_gnat_library id38}@anchor{331}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
*************** line switch.
*** 23797,23803 ****
  Provides routines giving hints to the branch predictor of the code generator.
  
  @node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT Branch_Prediction g-brapre ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{321}@anchor{gnat_rm/the_gnat_library id39}@anchor{322}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
--- 23838,23844 ----
  Provides routines giving hints to the branch predictor of the code generator.
  
  @node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT Branch_Prediction g-brapre ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{332}@anchor{gnat_rm/the_gnat_library id39}@anchor{333}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
*************** useful directly or as parts of the imple
*** 23812,23818 ****
  such as mailboxes.
  
  @node GNAT Bounded_Mailboxes g-boumai ads,GNAT Bubble_Sort g-bubsor ads,GNAT Bounded_Buffers g-boubuf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{323}@anchor{gnat_rm/the_gnat_library id40}@anchor{324}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
--- 23853,23859 ----
  such as mailboxes.
  
  @node GNAT Bounded_Mailboxes g-boumai ads,GNAT Bubble_Sort g-bubsor ads,GNAT Bounded_Buffers g-boubuf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{334}@anchor{gnat_rm/the_gnat_library id40}@anchor{335}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
*************** such as mailboxes.
*** 23825,23831 ****
  Provides a thread-safe asynchronous intertask mailbox communication facility.
  
  @node GNAT Bubble_Sort g-bubsor ads,GNAT Bubble_Sort_A g-busora ads,GNAT Bounded_Mailboxes g-boumai ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{325}@anchor{gnat_rm/the_gnat_library id41}@anchor{326}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
--- 23866,23872 ----
  Provides a thread-safe asynchronous intertask mailbox communication facility.
  
  @node GNAT Bubble_Sort g-bubsor ads,GNAT Bubble_Sort_A g-busora ads,GNAT Bounded_Mailboxes g-boumai ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{336}@anchor{gnat_rm/the_gnat_library id41}@anchor{337}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
*************** data items.  Exchange and comparison pro
*** 23840,23846 ****
  access-to-procedure values.
  
  @node GNAT Bubble_Sort_A g-busora ads,GNAT Bubble_Sort_G g-busorg ads,GNAT Bubble_Sort g-bubsor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{327}@anchor{gnat_rm/the_gnat_library id42}@anchor{328}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
--- 23881,23887 ----
  access-to-procedure values.
  
  @node GNAT Bubble_Sort_A g-busora ads,GNAT Bubble_Sort_G g-busorg ads,GNAT Bubble_Sort g-bubsor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{338}@anchor{gnat_rm/the_gnat_library id42}@anchor{339}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
*************** access-to-procedure values. This is an o
*** 23856,23862 ****
  compatibility. Usually @code{GNAT.Bubble_Sort} will be preferable.
  
  @node GNAT Bubble_Sort_G g-busorg ads,GNAT Byte_Order_Mark g-byorma ads,GNAT Bubble_Sort_A g-busora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{329}@anchor{gnat_rm/the_gnat_library id43}@anchor{32a}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
--- 23897,23903 ----
  compatibility. Usually @code{GNAT.Bubble_Sort} will be preferable.
  
  @node GNAT Bubble_Sort_G g-busorg ads,GNAT Byte_Order_Mark g-byorma ads,GNAT Bubble_Sort_A g-busora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{33a}@anchor{gnat_rm/the_gnat_library id43}@anchor{33b}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 23872,23878 ****
  multiple instantiations.
  
  @node GNAT Byte_Order_Mark g-byorma ads,GNAT Byte_Swapping g-bytswa ads,GNAT Bubble_Sort_G g-busorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{32b}@anchor{gnat_rm/the_gnat_library id44}@anchor{32c}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
--- 23913,23919 ----
  multiple instantiations.
  
  @node GNAT Byte_Order_Mark g-byorma ads,GNAT Byte_Swapping g-bytswa ads,GNAT Bubble_Sort_G g-busorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{33c}@anchor{gnat_rm/the_gnat_library id44}@anchor{33d}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
*************** the encoding of the string. The routine
*** 23888,23894 ****
  sequences for various UCS input formats.
  
  @node GNAT Byte_Swapping g-bytswa ads,GNAT Calendar g-calend ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{32d}@anchor{gnat_rm/the_gnat_library id45}@anchor{32e}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
--- 23929,23935 ----
  sequences for various UCS input formats.
  
  @node GNAT Byte_Swapping g-bytswa ads,GNAT Calendar g-calend ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{33e}@anchor{gnat_rm/the_gnat_library id45}@anchor{33f}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
*************** General routines for swapping the bytes
*** 23902,23908 ****
  Machine-specific implementations are available in some cases.
  
  @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{32f}@anchor{gnat_rm/the_gnat_library id46}@anchor{330}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
--- 23943,23949 ----
  Machine-specific implementations are available in some cases.
  
  @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{340}@anchor{gnat_rm/the_gnat_library id46}@anchor{341}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
*************** Also provides conversion of @code{Ada.Ca
*** 23916,23922 ****
  C @code{timeval} format.
  
  @node GNAT Calendar Time_IO g-catiio ads,GNAT CRC32 g-crc32 ads,GNAT Calendar g-calend ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{331}@anchor{gnat_rm/the_gnat_library id47}@anchor{332}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
--- 23957,23963 ----
  C @code{timeval} format.
  
  @node GNAT Calendar Time_IO g-catiio ads,GNAT CRC32 g-crc32 ads,GNAT Calendar g-calend ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{342}@anchor{gnat_rm/the_gnat_library id47}@anchor{343}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
*************** C @code{timeval} format.
*** 23927,23933 ****
  @geindex GNAT.Calendar.Time_IO (g-catiio.ads)
  
  @node GNAT CRC32 g-crc32 ads,GNAT Case_Util g-casuti ads,GNAT Calendar Time_IO g-catiio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{333}@anchor{gnat_rm/the_gnat_library id48}@anchor{334}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
--- 23968,23974 ----
  @geindex GNAT.Calendar.Time_IO (g-catiio.ads)
  
  @node GNAT CRC32 g-crc32 ads,GNAT Case_Util g-casuti ads,GNAT Calendar Time_IO g-catiio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{344}@anchor{gnat_rm/the_gnat_library id48}@anchor{345}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
*************** of this algorithm see
*** 23944,23950 ****
  Aug. 1988.  Sarwate, D.V.
  
  @node GNAT Case_Util g-casuti ads,GNAT CGI g-cgi ads,GNAT CRC32 g-crc32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{335}@anchor{gnat_rm/the_gnat_library id49}@anchor{336}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
--- 23985,23991 ----
  Aug. 1988.  Sarwate, D.V.
  
  @node GNAT Case_Util g-casuti ads,GNAT CGI g-cgi ads,GNAT CRC32 g-crc32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{346}@anchor{gnat_rm/the_gnat_library id49}@anchor{347}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
*************** without the overhead of the full casing
*** 23959,23965 ****
  in @code{Ada.Characters.Handling}.
  
  @node GNAT CGI g-cgi ads,GNAT CGI Cookie g-cgicoo ads,GNAT Case_Util g-casuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{337}@anchor{gnat_rm/the_gnat_library id50}@anchor{338}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
--- 24000,24006 ----
  in @code{Ada.Characters.Handling}.
  
  @node GNAT CGI g-cgi ads,GNAT CGI Cookie g-cgicoo ads,GNAT Case_Util g-casuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{348}@anchor{gnat_rm/the_gnat_library id50}@anchor{349}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
*************** builds a table whose index is the key an
*** 23974,23980 ****
  with this table.
  
  @node GNAT CGI Cookie g-cgicoo ads,GNAT CGI Debug g-cgideb ads,GNAT CGI g-cgi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{339}@anchor{gnat_rm/the_gnat_library id51}@anchor{33a}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
--- 24015,24021 ----
  with this table.
  
  @node GNAT CGI Cookie g-cgicoo ads,GNAT CGI Debug g-cgideb ads,GNAT CGI g-cgi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{34a}@anchor{gnat_rm/the_gnat_library id51}@anchor{34b}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
*************** Common Gateway Interface (CGI).  It expo
*** 23989,23995 ****
  cookies (piece of information kept in the Web client software).
  
  @node GNAT CGI Debug g-cgideb ads,GNAT Command_Line g-comlin ads,GNAT CGI Cookie g-cgicoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{33b}@anchor{gnat_rm/the_gnat_library id52}@anchor{33c}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
--- 24030,24036 ----
  cookies (piece of information kept in the Web client software).
  
  @node GNAT CGI Debug g-cgideb ads,GNAT Command_Line g-comlin ads,GNAT CGI Cookie g-cgicoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{34c}@anchor{gnat_rm/the_gnat_library id52}@anchor{34d}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
*************** This is a package to help debugging CGI
*** 24001,24007 ****
  programs written in Ada.
  
  @node GNAT Command_Line g-comlin ads,GNAT Compiler_Version g-comver ads,GNAT CGI Debug g-cgideb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{33d}@anchor{gnat_rm/the_gnat_library id53}@anchor{33e}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
--- 24042,24048 ----
  programs written in Ada.
  
  @node GNAT Command_Line g-comlin ads,GNAT Compiler_Version g-comver ads,GNAT CGI Debug g-cgideb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{34e}@anchor{gnat_rm/the_gnat_library id53}@anchor{34f}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
*************** including the ability to scan for named
*** 24014,24020 ****
  and expand file names using wildcard notations.
  
  @node GNAT Compiler_Version g-comver ads,GNAT Ctrl_C g-ctrl_c ads,GNAT Command_Line g-comlin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{33f}@anchor{gnat_rm/the_gnat_library id54}@anchor{340}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
--- 24055,24061 ----
  and expand file names using wildcard notations.
  
  @node GNAT Compiler_Version g-comver ads,GNAT Ctrl_C g-ctrl_c ads,GNAT Command_Line g-comlin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{350}@anchor{gnat_rm/the_gnat_library id54}@anchor{351}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
*************** of the compiler if a consistent tool set
*** 24032,24038 ****
  of a partition).
  
  @node GNAT Ctrl_C g-ctrl_c ads,GNAT Current_Exception g-curexc ads,GNAT Compiler_Version g-comver ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{341}@anchor{gnat_rm/the_gnat_library id55}@anchor{342}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
--- 24073,24079 ----
  of a partition).
  
  @node GNAT Ctrl_C g-ctrl_c ads,GNAT Current_Exception g-curexc ads,GNAT Compiler_Version g-comver ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{352}@anchor{gnat_rm/the_gnat_library id55}@anchor{353}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
*************** of a partition).
*** 24043,24049 ****
  Provides a simple interface to handle Ctrl-C keyboard events.
  
  @node GNAT Current_Exception g-curexc ads,GNAT Debug_Pools g-debpoo ads,GNAT Ctrl_C g-ctrl_c ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{343}@anchor{gnat_rm/the_gnat_library id56}@anchor{344}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
--- 24084,24090 ----
  Provides a simple interface to handle Ctrl-C keyboard events.
  
  @node GNAT Current_Exception g-curexc ads,GNAT Debug_Pools g-debpoo ads,GNAT Ctrl_C g-ctrl_c ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{354}@anchor{gnat_rm/the_gnat_library id56}@anchor{355}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
*************** This is particularly useful in simulatin
*** 24060,24066 ****
  obtaining information about exceptions provided by Ada 83 compilers.
  
  @node GNAT Debug_Pools g-debpoo ads,GNAT Debug_Utilities g-debuti ads,GNAT Current_Exception g-curexc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{345}@anchor{gnat_rm/the_gnat_library id57}@anchor{346}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
--- 24101,24107 ----
  obtaining information about exceptions provided by Ada 83 compilers.
  
  @node GNAT Debug_Pools g-debpoo ads,GNAT Debug_Utilities g-debuti ads,GNAT Current_Exception g-curexc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{356}@anchor{gnat_rm/the_gnat_library id57}@anchor{357}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
*************** problems.
*** 24077,24083 ****
  See @code{The GNAT Debug_Pool Facility} section in the @cite{GNAT User’s Guide}.
  
  @node GNAT Debug_Utilities g-debuti ads,GNAT Decode_String g-decstr ads,GNAT Debug_Pools g-debpoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{347}@anchor{gnat_rm/the_gnat_library id58}@anchor{348}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
--- 24118,24124 ----
  See @code{The GNAT Debug_Pool Facility} section in the @cite{GNAT User’s Guide}.
  
  @node GNAT Debug_Utilities g-debuti ads,GNAT Decode_String g-decstr ads,GNAT Debug_Pools g-debpoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{358}@anchor{gnat_rm/the_gnat_library id58}@anchor{359}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
*************** to and from string images of address val
*** 24090,24096 ****
  for hexadecimal literals.
  
  @node GNAT Decode_String g-decstr ads,GNAT Decode_UTF8_String g-deutst ads,GNAT Debug_Utilities g-debuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{349}@anchor{gnat_rm/the_gnat_library id59}@anchor{34a}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
--- 24131,24137 ----
  for hexadecimal literals.
  
  @node GNAT Decode_String g-decstr ads,GNAT Decode_UTF8_String g-deutst ads,GNAT Debug_Utilities g-debuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{35a}@anchor{gnat_rm/the_gnat_library id59}@anchor{35b}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
*************** Useful in conjunction with Unicode chara
*** 24114,24120 ****
  preinstantiation for UTF-8. See next entry.
  
  @node GNAT Decode_UTF8_String g-deutst ads,GNAT Directory_Operations g-dirope ads,GNAT Decode_String g-decstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{34b}@anchor{gnat_rm/the_gnat_library id60}@anchor{34c}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
--- 24155,24161 ----
  preinstantiation for UTF-8. See next entry.
  
  @node GNAT Decode_UTF8_String g-deutst ads,GNAT Directory_Operations g-dirope ads,GNAT Decode_String g-decstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{35c}@anchor{gnat_rm/the_gnat_library id60}@anchor{35d}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
*************** preinstantiation for UTF-8. See next ent
*** 24135,24141 ****
  A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding.
  
  @node GNAT Directory_Operations g-dirope ads,GNAT Directory_Operations Iteration g-diopit ads,GNAT Decode_UTF8_String g-deutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{34d}@anchor{gnat_rm/the_gnat_library id61}@anchor{34e}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
--- 24176,24182 ----
  A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding.
  
  @node GNAT Directory_Operations g-dirope ads,GNAT Directory_Operations Iteration g-diopit ads,GNAT Decode_UTF8_String g-deutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{35e}@anchor{gnat_rm/the_gnat_library id61}@anchor{35f}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
*************** the current directory, making new direct
*** 24148,24154 ****
  directory.
  
  @node GNAT Directory_Operations Iteration g-diopit ads,GNAT Dynamic_HTables g-dynhta ads,GNAT Directory_Operations g-dirope ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{34f}@anchor{gnat_rm/the_gnat_library id62}@anchor{350}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
--- 24189,24195 ----
  directory.
  
  @node GNAT Directory_Operations Iteration g-diopit ads,GNAT Dynamic_HTables g-dynhta ads,GNAT Directory_Operations g-dirope ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{360}@anchor{gnat_rm/the_gnat_library id62}@anchor{361}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
*************** A child unit of GNAT.Directory_Operation
*** 24160,24166 ****
  for iterating through directories.
  
  @node GNAT Dynamic_HTables g-dynhta ads,GNAT Dynamic_Tables g-dyntab ads,GNAT Directory_Operations Iteration g-diopit ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{351}@anchor{gnat_rm/the_gnat_library id63}@anchor{352}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
--- 24201,24207 ----
  for iterating through directories.
  
  @node GNAT Dynamic_HTables g-dynhta ads,GNAT Dynamic_Tables g-dyntab ads,GNAT Directory_Operations Iteration g-diopit ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{362}@anchor{gnat_rm/the_gnat_library id63}@anchor{363}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
*************** dynamic instances of the hash table, whi
*** 24178,24184 ****
  @code{GNAT.HTable} creates a single instance of the hash table.
  
  @node GNAT Dynamic_Tables g-dyntab ads,GNAT Encode_String g-encstr ads,GNAT Dynamic_HTables g-dynhta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{353}@anchor{gnat_rm/the_gnat_library id64}@anchor{354}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
--- 24219,24225 ----
  @code{GNAT.HTable} creates a single instance of the hash table.
  
  @node GNAT Dynamic_Tables g-dyntab ads,GNAT Encode_String g-encstr ads,GNAT Dynamic_HTables g-dynhta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{364}@anchor{gnat_rm/the_gnat_library id64}@anchor{365}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
*************** dynamic instances of the table, while an
*** 24198,24204 ****
  @code{GNAT.Table} creates a single instance of the table type.
  
  @node GNAT Encode_String g-encstr ads,GNAT Encode_UTF8_String g-enutst ads,GNAT Dynamic_Tables g-dyntab ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{355}@anchor{gnat_rm/the_gnat_library id65}@anchor{356}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
--- 24239,24245 ----
  @code{GNAT.Table} creates a single instance of the table type.
  
  @node GNAT Encode_String g-encstr ads,GNAT Encode_UTF8_String g-enutst ads,GNAT Dynamic_Tables g-dyntab ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{366}@anchor{gnat_rm/the_gnat_library id65}@anchor{367}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
*************** encoding method. Useful in conjunction w
*** 24220,24226 ****
  Note there is a preinstantiation for UTF-8. See next entry.
  
  @node GNAT Encode_UTF8_String g-enutst ads,GNAT Exception_Actions g-excact ads,GNAT Encode_String g-encstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{357}@anchor{gnat_rm/the_gnat_library id66}@anchor{358}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
--- 24261,24267 ----
  Note there is a preinstantiation for UTF-8. See next entry.
  
  @node GNAT Encode_UTF8_String g-enutst ads,GNAT Exception_Actions g-excact ads,GNAT Encode_String g-encstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{368}@anchor{gnat_rm/the_gnat_library id66}@anchor{369}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
*************** Note there is a preinstantiation for UTF
*** 24241,24247 ****
  A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding.
  
  @node GNAT Exception_Actions g-excact ads,GNAT Exception_Traces g-exctra ads,GNAT Encode_UTF8_String g-enutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{359}@anchor{gnat_rm/the_gnat_library id67}@anchor{35a}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
--- 24282,24288 ----
  A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding.
  
  @node GNAT Exception_Actions g-excact ads,GNAT Exception_Traces g-exctra ads,GNAT Encode_UTF8_String g-enutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{36a}@anchor{gnat_rm/the_gnat_library id67}@anchor{36b}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
*************** for specific exceptions, or when any exc
*** 24254,24260 ****
  can be used for instance to force a core dump to ease debugging.
  
  @node GNAT Exception_Traces g-exctra ads,GNAT Exceptions g-except ads,GNAT Exception_Actions g-excact ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{35b}@anchor{gnat_rm/the_gnat_library id68}@anchor{35c}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
--- 24295,24301 ----
  can be used for instance to force a core dump to ease debugging.
  
  @node GNAT Exception_Traces g-exctra ads,GNAT Exceptions g-except ads,GNAT Exception_Actions g-excact ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{36c}@anchor{gnat_rm/the_gnat_library id68}@anchor{36d}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
*************** Provides an interface allowing to contro
*** 24268,24274 ****
  occurrences.
  
  @node GNAT Exceptions g-except ads,GNAT Expect g-expect ads,GNAT Exception_Traces g-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exceptions-g-except-ads}@anchor{35d}@anchor{gnat_rm/the_gnat_library id69}@anchor{35e}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
--- 24309,24315 ----
  occurrences.
  
  @node GNAT Exceptions g-except ads,GNAT Expect g-expect ads,GNAT Exception_Traces g-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exceptions-g-except-ads}@anchor{36e}@anchor{gnat_rm/the_gnat_library id69}@anchor{36f}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
*************** predefined exceptions, and for example a
*** 24289,24295 ****
  @code{Constraint_Error} with a message from a pure subprogram.
  
  @node GNAT Expect g-expect ads,GNAT Expect TTY g-exptty ads,GNAT Exceptions g-except ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{35f}@anchor{gnat_rm/the_gnat_library id70}@anchor{360}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
--- 24330,24336 ----
  @code{Constraint_Error} with a message from a pure subprogram.
  
  @node GNAT Expect g-expect ads,GNAT Expect TTY g-exptty ads,GNAT Exceptions g-except ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{370}@anchor{gnat_rm/the_gnat_library id70}@anchor{371}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
*************** It is not implemented for cross ports, a
*** 24305,24311 ****
  implemented for VxWorks or LynxOS.
  
  @node GNAT Expect TTY g-exptty ads,GNAT Float_Control g-flocon ads,GNAT Expect g-expect ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{361}@anchor{gnat_rm/the_gnat_library id71}@anchor{362}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
--- 24346,24352 ----
  implemented for VxWorks or LynxOS.
  
  @node GNAT Expect TTY g-exptty ads,GNAT Float_Control g-flocon ads,GNAT Expect g-expect ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{372}@anchor{gnat_rm/the_gnat_library id71}@anchor{373}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
*************** ports. It is not implemented for cross p
*** 24317,24323 ****
  in particular is not implemented for VxWorks or LynxOS.
  
  @node GNAT Float_Control g-flocon ads,GNAT Formatted_String g-forstr ads,GNAT Expect TTY g-exptty ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{363}@anchor{gnat_rm/the_gnat_library id72}@anchor{364}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
--- 24358,24364 ----
  in particular is not implemented for VxWorks or LynxOS.
  
  @node GNAT Float_Control g-flocon ads,GNAT Formatted_String g-forstr ads,GNAT Expect TTY g-exptty ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{374}@anchor{gnat_rm/the_gnat_library id72}@anchor{375}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
*************** library calls may cause this mode to be
*** 24331,24337 ****
  in this package can be used to reestablish the required mode.
  
  @node GNAT Formatted_String g-forstr ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Float_Control g-flocon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{365}@anchor{gnat_rm/the_gnat_library id73}@anchor{366}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
--- 24372,24378 ----
  in this package can be used to reestablish the required mode.
  
  @node GNAT Formatted_String g-forstr ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Float_Control g-flocon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{376}@anchor{gnat_rm/the_gnat_library id73}@anchor{377}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
*************** derived from Integer, Float or enumerati
*** 24346,24352 ****
  formatted string.
  
  @node GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Heap_Sort g-heasor ads,GNAT Formatted_String g-forstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-generic-fast-math-functions-g-gfmafu-ads}@anchor{367}@anchor{gnat_rm/the_gnat_library id74}@anchor{368}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
--- 24387,24393 ----
  formatted string.
  
  @node GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Heap_Sort g-heasor ads,GNAT Formatted_String g-forstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-generic-fast-math-functions-g-gfmafu-ads}@anchor{378}@anchor{gnat_rm/the_gnat_library id74}@anchor{379}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
*************** have a vector implementation that can be
*** 24364,24370 ****
  compiler when auto-vectorization is enabled.
  
  @node GNAT Heap_Sort g-heasor ads,GNAT Heap_Sort_A g-hesora ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{369}@anchor{gnat_rm/the_gnat_library id75}@anchor{36a}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
--- 24405,24411 ----
  compiler when auto-vectorization is enabled.
  
  @node GNAT Heap_Sort g-heasor ads,GNAT Heap_Sort_A g-hesora ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{37a}@anchor{gnat_rm/the_gnat_library id75}@anchor{37b}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
*************** access-to-procedure values.  The algorit
*** 24378,24384 ****
  that performs approximately N*log(N) comparisons in the worst case.
  
  @node GNAT Heap_Sort_A g-hesora ads,GNAT Heap_Sort_G g-hesorg ads,GNAT Heap_Sort g-heasor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{36b}@anchor{gnat_rm/the_gnat_library id76}@anchor{36c}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
--- 24419,24425 ----
  that performs approximately N*log(N) comparisons in the worst case.
  
  @node GNAT Heap_Sort_A g-hesora ads,GNAT Heap_Sort_G g-hesorg ads,GNAT Heap_Sort g-heasor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{37c}@anchor{gnat_rm/the_gnat_library id76}@anchor{37d}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
*************** This differs from @code{GNAT.Heap_Sort}
*** 24394,24400 ****
  interface, but may be slightly more efficient.
  
  @node GNAT Heap_Sort_G g-hesorg ads,GNAT HTable g-htable ads,GNAT Heap_Sort_A g-hesora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{36d}@anchor{gnat_rm/the_gnat_library id77}@anchor{36e}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
--- 24435,24441 ----
  interface, but may be slightly more efficient.
  
  @node GNAT Heap_Sort_G g-hesorg ads,GNAT HTable g-htable ads,GNAT Heap_Sort_A g-hesora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{37e}@anchor{gnat_rm/the_gnat_library id77}@anchor{37f}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 24408,24414 ****
  multiple instantiations.
  
  @node GNAT HTable g-htable ads,GNAT IO g-io ads,GNAT Heap_Sort_G g-hesorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{36f}@anchor{gnat_rm/the_gnat_library id78}@anchor{370}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
--- 24449,24455 ----
  multiple instantiations.
  
  @node GNAT HTable g-htable ads,GNAT IO g-io ads,GNAT Heap_Sort_G g-hesorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{380}@anchor{gnat_rm/the_gnat_library id78}@anchor{381}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
*************** data.  Provides two approaches, one a si
*** 24421,24427 ****
  allowing arbitrary dynamic hash tables.
  
  @node GNAT IO g-io ads,GNAT IO_Aux g-io_aux ads,GNAT HTable g-htable ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{371}@anchor{gnat_rm/the_gnat_library id79}@anchor{372}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
--- 24462,24468 ----
  allowing arbitrary dynamic hash tables.
  
  @node GNAT IO g-io ads,GNAT IO_Aux g-io_aux ads,GNAT HTable g-htable ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{382}@anchor{gnat_rm/the_gnat_library id79}@anchor{383}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
*************** Standard_Input, and writing characters,
*** 24437,24443 ****
  Standard_Output or Standard_Error.
  
  @node GNAT IO_Aux g-io_aux ads,GNAT Lock_Files g-locfil ads,GNAT IO g-io ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{373}@anchor{gnat_rm/the_gnat_library id80}@anchor{374}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
--- 24478,24484 ----
  Standard_Output or Standard_Error.
  
  @node GNAT IO_Aux g-io_aux ads,GNAT Lock_Files g-locfil ads,GNAT IO g-io ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{384}@anchor{gnat_rm/the_gnat_library id80}@anchor{385}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
*************** Provides some auxiliary functions for us
*** 24451,24457 ****
  for whether a file exists, and functions for reading a line of text.
  
  @node GNAT Lock_Files g-locfil ads,GNAT MBBS_Discrete_Random g-mbdira ads,GNAT IO_Aux g-io_aux ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{375}@anchor{gnat_rm/the_gnat_library id81}@anchor{376}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
--- 24492,24498 ----
  for whether a file exists, and functions for reading a line of text.
  
  @node GNAT Lock_Files g-locfil ads,GNAT MBBS_Discrete_Random g-mbdira ads,GNAT IO_Aux g-io_aux ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{386}@anchor{gnat_rm/the_gnat_library id81}@anchor{387}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
*************** Provides a general interface for using f
*** 24465,24471 ****
  providing program level synchronization.
  
  @node GNAT MBBS_Discrete_Random g-mbdira ads,GNAT MBBS_Float_Random g-mbflra ads,GNAT Lock_Files g-locfil ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{377}@anchor{gnat_rm/the_gnat_library id82}@anchor{378}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
--- 24506,24512 ----
  providing program level synchronization.
  
  @node GNAT MBBS_Discrete_Random g-mbdira ads,GNAT MBBS_Float_Random g-mbflra ads,GNAT Lock_Files g-locfil ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{388}@anchor{gnat_rm/the_gnat_library id82}@anchor{389}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
*************** The original implementation of @code{Ada
*** 24477,24483 ****
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MBBS_Float_Random g-mbflra ads,GNAT MD5 g-md5 ads,GNAT MBBS_Discrete_Random g-mbdira ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{379}@anchor{gnat_rm/the_gnat_library id83}@anchor{37a}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
--- 24518,24524 ----
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MBBS_Float_Random g-mbflra ads,GNAT MD5 g-md5 ads,GNAT MBBS_Discrete_Random g-mbdira ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{38a}@anchor{gnat_rm/the_gnat_library id83}@anchor{38b}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
*************** The original implementation of @code{Ada
*** 24489,24495 ****
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MD5 g-md5 ads,GNAT Memory_Dump g-memdum ads,GNAT MBBS_Float_Random g-mbflra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{37b}@anchor{gnat_rm/the_gnat_library id84}@anchor{37c}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
--- 24530,24536 ----
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MD5 g-md5 ads,GNAT Memory_Dump g-memdum ads,GNAT MBBS_Float_Random g-mbflra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{38c}@anchor{gnat_rm/the_gnat_library id84}@anchor{38d}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
*************** the HMAC-MD5 message authentication func
*** 24502,24508 ****
  FIPS PUB 198.
  
  @node GNAT Memory_Dump g-memdum ads,GNAT Most_Recent_Exception g-moreex ads,GNAT MD5 g-md5 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{37d}@anchor{gnat_rm/the_gnat_library id85}@anchor{37e}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
--- 24543,24549 ----
  FIPS PUB 198.
  
  @node GNAT Memory_Dump g-memdum ads,GNAT Most_Recent_Exception g-moreex ads,GNAT MD5 g-md5 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{38e}@anchor{gnat_rm/the_gnat_library id85}@anchor{38f}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
*************** standard output or standard error files.
*** 24515,24521 ****
  output.
  
  @node GNAT Most_Recent_Exception g-moreex ads,GNAT OS_Lib g-os_lib ads,GNAT Memory_Dump g-memdum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{37f}@anchor{gnat_rm/the_gnat_library id86}@anchor{380}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
--- 24556,24562 ----
  output.
  
  @node GNAT Most_Recent_Exception g-moreex ads,GNAT OS_Lib g-os_lib ads,GNAT Memory_Dump g-memdum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{390}@anchor{gnat_rm/the_gnat_library id86}@anchor{391}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
*************** various logging purposes, including dupl
*** 24529,24535 ****
  Ada 83 implementation dependent extensions.
  
  @node GNAT OS_Lib g-os_lib ads,GNAT Perfect_Hash_Generators g-pehage ads,GNAT Most_Recent_Exception g-moreex ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{381}@anchor{gnat_rm/the_gnat_library id87}@anchor{382}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
--- 24570,24576 ----
  Ada 83 implementation dependent extensions.
  
  @node GNAT OS_Lib g-os_lib ads,GNAT Perfect_Hash_Generators g-pehage ads,GNAT Most_Recent_Exception g-moreex ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{392}@anchor{gnat_rm/the_gnat_library id87}@anchor{393}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
*************** including a portable spawn procedure, an
*** 24545,24551 ****
  and error return codes.
  
  @node GNAT Perfect_Hash_Generators g-pehage ads,GNAT Random_Numbers g-rannum ads,GNAT OS_Lib g-os_lib ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{383}@anchor{gnat_rm/the_gnat_library id88}@anchor{384}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
--- 24586,24592 ----
  and error return codes.
  
  @node GNAT Perfect_Hash_Generators g-pehage ads,GNAT Random_Numbers g-rannum ads,GNAT OS_Lib g-os_lib ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{394}@anchor{gnat_rm/the_gnat_library id88}@anchor{395}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
*************** hashcode are in the same order. These ha
*** 24563,24569 ****
  convenient for use with realtime applications.
  
  @node GNAT Random_Numbers g-rannum ads,GNAT Regexp g-regexp ads,GNAT Perfect_Hash_Generators g-pehage ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{385}@anchor{gnat_rm/the_gnat_library id89}@anchor{386}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
--- 24604,24610 ----
  convenient for use with realtime applications.
  
  @node GNAT Random_Numbers g-rannum ads,GNAT Regexp g-regexp ads,GNAT Perfect_Hash_Generators g-pehage ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{396}@anchor{gnat_rm/the_gnat_library id89}@anchor{397}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
*************** Provides random number capabilities whic
*** 24575,24581 ****
  standard Ada library and are more convenient to use.
  
  @node GNAT Regexp g-regexp ads,GNAT Registry g-regist ads,GNAT Random_Numbers g-rannum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{25c}@anchor{gnat_rm/the_gnat_library id90}@anchor{387}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
--- 24616,24622 ----
  standard Ada library and are more convenient to use.
  
  @node GNAT Regexp g-regexp ads,GNAT Registry g-regist ads,GNAT Random_Numbers g-rannum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{26d}@anchor{gnat_rm/the_gnat_library id90}@anchor{398}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
*************** simplest of the three pattern matching p
*** 24591,24597 ****
  suitable for ‘file globbing’ applications.
  
  @node GNAT Registry g-regist ads,GNAT Regpat g-regpat ads,GNAT Regexp g-regexp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{388}@anchor{gnat_rm/the_gnat_library id91}@anchor{389}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
--- 24632,24638 ----
  suitable for ‘file globbing’ applications.
  
  @node GNAT Registry g-regist ads,GNAT Regpat g-regpat ads,GNAT Regexp g-regexp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{399}@anchor{gnat_rm/the_gnat_library id91}@anchor{39a}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
*************** registry API, but at a lower level of ab
*** 24605,24611 ****
  package provided with the Win32Ada binding
  
  @node GNAT Regpat g-regpat ads,GNAT Rewrite_Data g-rewdat ads,GNAT Registry g-regist ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{38a}@anchor{gnat_rm/the_gnat_library id92}@anchor{38b}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
--- 24646,24652 ----
  package provided with the Win32Ada binding
  
  @node GNAT Regpat g-regpat ads,GNAT Rewrite_Data g-rewdat ads,GNAT Registry g-regist ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{39b}@anchor{gnat_rm/the_gnat_library id92}@anchor{39c}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
*************** from the original V7 style regular expre
*** 24620,24626 ****
  Henry Spencer (and binary compatible with this C library).
  
  @node GNAT Rewrite_Data g-rewdat ads,GNAT Secondary_Stack_Info g-sestin ads,GNAT Regpat g-regpat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{38c}@anchor{gnat_rm/the_gnat_library id93}@anchor{38d}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
--- 24661,24667 ----
  Henry Spencer (and binary compatible with this C library).
  
  @node GNAT Rewrite_Data g-rewdat ads,GNAT Secondary_Stack_Info g-sestin ads,GNAT Regpat g-regpat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{39d}@anchor{gnat_rm/the_gnat_library id93}@anchor{39e}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
*************** full content to be processed is not load
*** 24634,24640 ****
  this interface usable for large files or socket streams.
  
  @node GNAT Secondary_Stack_Info g-sestin ads,GNAT Semaphores g-semaph ads,GNAT Rewrite_Data g-rewdat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{38e}@anchor{gnat_rm/the_gnat_library id94}@anchor{38f}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
--- 24675,24681 ----
  this interface usable for large files or socket streams.
  
  @node GNAT Secondary_Stack_Info g-sestin ads,GNAT Semaphores g-semaph ads,GNAT Rewrite_Data g-rewdat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{39f}@anchor{gnat_rm/the_gnat_library id94}@anchor{3a0}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
*************** Provides the capability to query the hig
*** 24646,24652 ****
  secondary stack.
  
  @node GNAT Semaphores g-semaph ads,GNAT Serial_Communications g-sercom ads,GNAT Secondary_Stack_Info g-sestin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{390}@anchor{gnat_rm/the_gnat_library id95}@anchor{391}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
--- 24687,24693 ----
  secondary stack.
  
  @node GNAT Semaphores g-semaph ads,GNAT Serial_Communications g-sercom ads,GNAT Secondary_Stack_Info g-sestin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{3a1}@anchor{gnat_rm/the_gnat_library id95}@anchor{3a2}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
*************** secondary stack.
*** 24657,24663 ****
  Provides classic counting and binary semaphores using protected types.
  
  @node GNAT Serial_Communications g-sercom ads,GNAT SHA1 g-sha1 ads,GNAT Semaphores g-semaph ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{392}@anchor{gnat_rm/the_gnat_library id96}@anchor{393}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
--- 24698,24704 ----
  Provides classic counting and binary semaphores using protected types.
  
  @node GNAT Serial_Communications g-sercom ads,GNAT SHA1 g-sha1 ads,GNAT Semaphores g-semaph ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{3a3}@anchor{gnat_rm/the_gnat_library id96}@anchor{3a4}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
*************** Provides a simple interface to send and
*** 24669,24675 ****
  port. This is only supported on GNU/Linux and Windows.
  
  @node GNAT SHA1 g-sha1 ads,GNAT SHA224 g-sha224 ads,GNAT Serial_Communications g-sercom ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{394}@anchor{gnat_rm/the_gnat_library id97}@anchor{395}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
--- 24710,24716 ----
  port. This is only supported on GNU/Linux and Windows.
  
  @node GNAT SHA1 g-sha1 ads,GNAT SHA224 g-sha224 ads,GNAT Serial_Communications g-sercom ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{3a5}@anchor{gnat_rm/the_gnat_library id97}@anchor{3a6}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
*************** and RFC 3174, and the HMAC-SHA1 message
*** 24682,24688 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA224 g-sha224 ads,GNAT SHA256 g-sha256 ads,GNAT SHA1 g-sha1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{396}@anchor{gnat_rm/the_gnat_library id98}@anchor{397}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
--- 24723,24729 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA224 g-sha224 ads,GNAT SHA256 g-sha256 ads,GNAT SHA1 g-sha1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{3a7}@anchor{gnat_rm/the_gnat_library id98}@anchor{3a8}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
*************** and the HMAC-SHA224 message authenticati
*** 24695,24701 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA256 g-sha256 ads,GNAT SHA384 g-sha384 ads,GNAT SHA224 g-sha224 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{398}@anchor{gnat_rm/the_gnat_library id99}@anchor{399}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
--- 24736,24742 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA256 g-sha256 ads,GNAT SHA384 g-sha384 ads,GNAT SHA224 g-sha224 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{3a9}@anchor{gnat_rm/the_gnat_library id99}@anchor{3aa}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
*************** and the HMAC-SHA256 message authenticati
*** 24708,24714 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA384 g-sha384 ads,GNAT SHA512 g-sha512 ads,GNAT SHA256 g-sha256 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{39a}@anchor{gnat_rm/the_gnat_library id100}@anchor{39b}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
--- 24749,24755 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA384 g-sha384 ads,GNAT SHA512 g-sha512 ads,GNAT SHA256 g-sha256 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{3ab}@anchor{gnat_rm/the_gnat_library id100}@anchor{3ac}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
*************** and the HMAC-SHA384 message authenticati
*** 24721,24727 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA512 g-sha512 ads,GNAT Signals g-signal ads,GNAT SHA384 g-sha384 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{39c}@anchor{gnat_rm/the_gnat_library id101}@anchor{39d}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
--- 24762,24768 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA512 g-sha512 ads,GNAT Signals g-signal ads,GNAT SHA384 g-sha384 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{3ad}@anchor{gnat_rm/the_gnat_library id101}@anchor{3ae}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
*************** and the HMAC-SHA512 message authenticati
*** 24734,24740 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT Signals g-signal ads,GNAT Sockets g-socket ads,GNAT SHA512 g-sha512 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{39e}@anchor{gnat_rm/the_gnat_library id102}@anchor{39f}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
--- 24775,24781 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT Signals g-signal ads,GNAT Sockets g-socket ads,GNAT SHA512 g-sha512 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{3af}@anchor{gnat_rm/the_gnat_library id102}@anchor{3b0}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
*************** Provides the ability to manipulate the b
*** 24746,24752 ****
  targets.
  
  @node GNAT Sockets g-socket ads,GNAT Source_Info g-souinf ads,GNAT Signals g-signal ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{3a0}@anchor{gnat_rm/the_gnat_library id103}@anchor{3a1}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
--- 24787,24793 ----
  targets.
  
  @node GNAT Sockets g-socket ads,GNAT Source_Info g-souinf ads,GNAT Signals g-signal ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{3b1}@anchor{gnat_rm/the_gnat_library id103}@anchor{3b2}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
*************** on all native GNAT ports and on VxWorks
*** 24761,24767 ****
  the LynxOS cross port.
  
  @node GNAT Source_Info g-souinf ads,GNAT Spelling_Checker g-speche ads,GNAT Sockets g-socket ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{3a2}@anchor{gnat_rm/the_gnat_library id104}@anchor{3a3}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
--- 24802,24808 ----
  the LynxOS cross port.
  
  @node GNAT Source_Info g-souinf ads,GNAT Spelling_Checker g-speche ads,GNAT Sockets g-socket ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{3b3}@anchor{gnat_rm/the_gnat_library id104}@anchor{3b4}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
*************** subprograms yielding the date and time o
*** 24775,24781 ****
  C macros @code{__DATE__} and @code{__TIME__})
  
  @node GNAT Spelling_Checker g-speche ads,GNAT Spelling_Checker_Generic g-spchge ads,GNAT Source_Info g-souinf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{3a4}@anchor{gnat_rm/the_gnat_library id105}@anchor{3a5}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
--- 24816,24822 ----
  C macros @code{__DATE__} and @code{__TIME__})
  
  @node GNAT Spelling_Checker g-speche ads,GNAT Spelling_Checker_Generic g-spchge ads,GNAT Source_Info g-souinf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{3b5}@anchor{gnat_rm/the_gnat_library id105}@anchor{3b6}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
*************** Provides a function for determining whet
*** 24787,24793 ****
  near misspelling of another string.
  
  @node GNAT Spelling_Checker_Generic g-spchge ads,GNAT Spitbol Patterns g-spipat ads,GNAT Spelling_Checker g-speche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{3a6}@anchor{gnat_rm/the_gnat_library id106}@anchor{3a7}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
--- 24828,24834 ----
  near misspelling of another string.
  
  @node GNAT Spelling_Checker_Generic g-spchge ads,GNAT Spitbol Patterns g-spipat ads,GNAT Spelling_Checker g-speche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{3b7}@anchor{gnat_rm/the_gnat_library id106}@anchor{3b8}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
*************** determining whether one string is a plau
*** 24800,24806 ****
  string.
  
  @node GNAT Spitbol Patterns g-spipat ads,GNAT Spitbol g-spitbo ads,GNAT Spelling_Checker_Generic g-spchge ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{3a8}@anchor{gnat_rm/the_gnat_library id107}@anchor{3a9}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
--- 24841,24847 ----
  string.
  
  @node GNAT Spitbol Patterns g-spipat ads,GNAT Spitbol g-spitbo ads,GNAT Spelling_Checker_Generic g-spchge ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{3b9}@anchor{gnat_rm/the_gnat_library id107}@anchor{3ba}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
*************** the SNOBOL4 dynamic pattern construction
*** 24816,24822 ****
  efficient algorithm developed by Robert Dewar for the SPITBOL system.
  
  @node GNAT Spitbol g-spitbo ads,GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Patterns g-spipat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{3aa}@anchor{gnat_rm/the_gnat_library id108}@anchor{3ab}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
--- 24857,24863 ----
  efficient algorithm developed by Robert Dewar for the SPITBOL system.
  
  @node GNAT Spitbol g-spitbo ads,GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Patterns g-spipat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{3bb}@anchor{gnat_rm/the_gnat_library id108}@anchor{3bc}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
*************** useful for constructing arbitrary mappin
*** 24831,24837 ****
  the SNOBOL4 TABLE function.
  
  @node GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol g-spitbo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{3ac}@anchor{gnat_rm/the_gnat_library id109}@anchor{3ad}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
--- 24872,24878 ----
  the SNOBOL4 TABLE function.
  
  @node GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol g-spitbo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{3bd}@anchor{gnat_rm/the_gnat_library id109}@anchor{3be}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
*************** for type @code{Standard.Boolean}, giving
*** 24846,24852 ****
  string values.
  
  @node GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol Table_VString g-sptavs ads,GNAT Spitbol Table_Boolean g-sptabo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{3ae}@anchor{gnat_rm/the_gnat_library id110}@anchor{3af}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
--- 24887,24893 ----
  string values.
  
  @node GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol Table_VString g-sptavs ads,GNAT Spitbol Table_Boolean g-sptabo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{3bf}@anchor{gnat_rm/the_gnat_library id110}@anchor{3c0}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
*************** for type @code{Standard.Integer}, giving
*** 24863,24869 ****
  from string to integer values.
  
  @node GNAT Spitbol Table_VString g-sptavs ads,GNAT SSE g-sse ads,GNAT Spitbol Table_Integer g-sptain ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{3b0}@anchor{gnat_rm/the_gnat_library id111}@anchor{3b1}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
--- 24904,24910 ----
  from string to integer values.
  
  @node GNAT Spitbol Table_VString g-sptavs ads,GNAT SSE g-sse ads,GNAT Spitbol Table_Integer g-sptain ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{3c1}@anchor{gnat_rm/the_gnat_library id111}@anchor{3c2}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
*************** a variable length string type, giving an
*** 24880,24886 ****
  maps from strings to strings.
  
  @node GNAT SSE g-sse ads,GNAT SSE Vector_Types g-ssvety ads,GNAT Spitbol Table_VString g-sptavs ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{3b2}@anchor{gnat_rm/the_gnat_library id112}@anchor{3b3}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
--- 24921,24927 ----
  maps from strings to strings.
  
  @node GNAT SSE g-sse ads,GNAT SSE Vector_Types g-ssvety ads,GNAT Spitbol Table_VString g-sptavs ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{3c3}@anchor{gnat_rm/the_gnat_library id112}@anchor{3c4}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
*************** targets.  It exposes vector component ty
*** 24892,24898 ****
  introduction to the binding contents and use.
  
  @node GNAT SSE Vector_Types g-ssvety ads,GNAT String_Hash g-strhas ads,GNAT SSE g-sse ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{3b4}@anchor{gnat_rm/the_gnat_library id113}@anchor{3b5}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
--- 24933,24939 ----
  introduction to the binding contents and use.
  
  @node GNAT SSE Vector_Types g-ssvety ads,GNAT String_Hash g-strhas ads,GNAT SSE g-sse ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{3c5}@anchor{gnat_rm/the_gnat_library id113}@anchor{3c6}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
*************** introduction to the binding contents and
*** 24901,24907 ****
  SSE vector types for use with SSE related intrinsics.
  
  @node GNAT String_Hash g-strhas ads,GNAT Strings g-string ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-hash-g-strhas-ads}@anchor{3b6}@anchor{gnat_rm/the_gnat_library id114}@anchor{3b7}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
--- 24942,24948 ----
  SSE vector types for use with SSE related intrinsics.
  
  @node GNAT String_Hash g-strhas ads,GNAT Strings g-string ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-hash-g-strhas-ads}@anchor{3c7}@anchor{gnat_rm/the_gnat_library id114}@anchor{3c8}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
*************** Provides a generic hash function working
*** 24913,24919 ****
  type and the hash result type are parameters.
  
  @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT String_Hash g-strhas ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{3b8}@anchor{gnat_rm/the_gnat_library id115}@anchor{3b9}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
--- 24954,24960 ----
  type and the hash result type are parameters.
  
  @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT String_Hash g-strhas ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{3c9}@anchor{gnat_rm/the_gnat_library id115}@anchor{3ca}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
*************** Common String access types and related s
*** 24923,24929 ****
  defines a string access and an array of string access types.
  
  @node GNAT String_Split g-strspl ads,GNAT Table g-table ads,GNAT Strings g-string ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{3ba}@anchor{gnat_rm/the_gnat_library id116}@anchor{3bb}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
--- 24964,24970 ----
  defines a string access and an array of string access types.
  
  @node GNAT String_Split g-strspl ads,GNAT Table g-table ads,GNAT Strings g-string ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{3cb}@anchor{gnat_rm/the_gnat_library id116}@anchor{3cc}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
*************** to the resulting slices. This package is
*** 24937,24943 ****
  @code{GNAT.Array_Split}.
  
  @node GNAT Table g-table ads,GNAT Task_Lock g-tasloc ads,GNAT String_Split g-strspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{3bc}@anchor{gnat_rm/the_gnat_library id117}@anchor{3bd}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
--- 24978,24984 ----
  @code{GNAT.Array_Split}.
  
  @node GNAT Table g-table ads,GNAT Task_Lock g-tasloc ads,GNAT String_Split g-strspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{3cd}@anchor{gnat_rm/the_gnat_library id117}@anchor{3ce}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
*************** while an instantiation of @code{GNAT.Dyn
*** 24957,24963 ****
  used to define dynamic instances of the table.
  
  @node GNAT Task_Lock g-tasloc ads,GNAT Time_Stamp g-timsta ads,GNAT Table g-table ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{3be}@anchor{gnat_rm/the_gnat_library id118}@anchor{3bf}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
--- 24998,25004 ----
  used to define dynamic instances of the table.
  
  @node GNAT Task_Lock g-tasloc ads,GNAT Time_Stamp g-timsta ads,GNAT Table g-table ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{3cf}@anchor{gnat_rm/the_gnat_library id118}@anchor{3d0}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
*************** single global task lock.  Appropriate fo
*** 24974,24980 ****
  between tasks is very rarely expected.
  
  @node GNAT Time_Stamp g-timsta ads,GNAT Threads g-thread ads,GNAT Task_Lock g-tasloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{3c0}@anchor{gnat_rm/the_gnat_library id119}@anchor{3c1}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
--- 25015,25021 ----
  between tasks is very rarely expected.
  
  @node GNAT Time_Stamp g-timsta ads,GNAT Threads g-thread ads,GNAT Task_Lock g-tasloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{3d1}@anchor{gnat_rm/the_gnat_library id119}@anchor{3d2}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
*************** represents the current date and time in
*** 24989,24995 ****
  routine with minimal code and there are no dependencies on any other unit.
  
  @node GNAT Threads g-thread ads,GNAT Traceback g-traceb ads,GNAT Time_Stamp g-timsta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{3c2}@anchor{gnat_rm/the_gnat_library id120}@anchor{3c3}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
--- 25030,25036 ----
  routine with minimal code and there are no dependencies on any other unit.
  
  @node GNAT Threads g-thread ads,GNAT Traceback g-traceb ads,GNAT Time_Stamp g-timsta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{3d3}@anchor{gnat_rm/the_gnat_library id120}@anchor{3d4}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
*************** further details if your program has thre
*** 25006,25012 ****
  environment which then accesses Ada code.
  
  @node GNAT Traceback g-traceb ads,GNAT Traceback Symbolic g-trasym ads,GNAT Threads g-thread ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{3c4}@anchor{gnat_rm/the_gnat_library id121}@anchor{3c5}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
--- 25047,25053 ----
  environment which then accesses Ada code.
  
  @node GNAT Traceback g-traceb ads,GNAT Traceback Symbolic g-trasym ads,GNAT Threads g-thread ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{3d5}@anchor{gnat_rm/the_gnat_library id121}@anchor{3d6}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
*************** Provides a facility for obtaining non-sy
*** 25018,25024 ****
  in various debugging situations.
  
  @node GNAT Traceback Symbolic g-trasym ads,GNAT UTF_32 g-utf_32 ads,GNAT Traceback g-traceb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{3c6}@anchor{gnat_rm/the_gnat_library id122}@anchor{3c7}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
--- 25059,25065 ----
  in various debugging situations.
  
  @node GNAT Traceback Symbolic g-trasym ads,GNAT UTF_32 g-utf_32 ads,GNAT Traceback g-traceb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{3d7}@anchor{gnat_rm/the_gnat_library id122}@anchor{3d8}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
*************** in various debugging situations.
*** 25027,25033 ****
  @geindex Trace back facilities
  
  @node GNAT UTF_32 g-utf_32 ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Traceback Symbolic g-trasym ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-g-utf-32-ads}@anchor{3c8}@anchor{gnat_rm/the_gnat_library id123}@anchor{3c9}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
--- 25068,25074 ----
  @geindex Trace back facilities
  
  @node GNAT UTF_32 g-utf_32 ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Traceback Symbolic g-trasym ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-g-utf-32-ads}@anchor{3d9}@anchor{gnat_rm/the_gnat_library id123}@anchor{3da}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
*************** lower case to upper case fold routine co
*** 25046,25052 ****
  the Ada 2005 rules for identifier equivalence.
  
  @node GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Wide_Spelling_Checker g-wispch ads,GNAT UTF_32 g-utf_32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-spelling-checker-g-u3spch-ads}@anchor{3ca}@anchor{gnat_rm/the_gnat_library id124}@anchor{3cb}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
--- 25087,25093 ----
  the Ada 2005 rules for identifier equivalence.
  
  @node GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Wide_Spelling_Checker g-wispch ads,GNAT UTF_32 g-utf_32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-spelling-checker-g-u3spch-ads}@anchor{3db}@anchor{gnat_rm/the_gnat_library id124}@anchor{3dc}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
*************** near misspelling of another wide wide st
*** 25059,25065 ****
  using the UTF_32_String type defined in System.Wch_Cnv.
  
  @node GNAT Wide_Spelling_Checker g-wispch ads,GNAT Wide_String_Split g-wistsp ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{3cc}@anchor{gnat_rm/the_gnat_library id125}@anchor{3cd}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
--- 25100,25106 ----
  using the UTF_32_String type defined in System.Wch_Cnv.
  
  @node GNAT Wide_Spelling_Checker g-wispch ads,GNAT Wide_String_Split g-wistsp ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{3dd}@anchor{gnat_rm/the_gnat_library id125}@anchor{3de}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
*************** Provides a function for determining whet
*** 25071,25077 ****
  near misspelling of another wide string.
  
  @node GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Spelling_Checker g-wispch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{3ce}@anchor{gnat_rm/the_gnat_library id126}@anchor{3cf}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
--- 25112,25118 ----
  near misspelling of another wide string.
  
  @node GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Spelling_Checker g-wispch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{3df}@anchor{gnat_rm/the_gnat_library id126}@anchor{3e0}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25085,25091 ****
  @code{GNAT.Array_Split}.
  
  @node GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Wide_String_Split g-zistsp ads,GNAT Wide_String_Split g-wistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{3d0}@anchor{gnat_rm/the_gnat_library id127}@anchor{3d1}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
--- 25126,25132 ----
  @code{GNAT.Array_Split}.
  
  @node GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Wide_String_Split g-zistsp ads,GNAT Wide_String_Split g-wistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{3e1}@anchor{gnat_rm/the_gnat_library id127}@anchor{3e2}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
*************** Provides a function for determining whet
*** 25097,25103 ****
  near misspelling of another wide wide string.
  
  @node GNAT Wide_Wide_String_Split g-zistsp ads,Interfaces C Extensions i-cexten ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{3d2}@anchor{gnat_rm/the_gnat_library id128}@anchor{3d3}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
--- 25138,25144 ----
  near misspelling of another wide wide string.
  
  @node GNAT Wide_Wide_String_Split g-zistsp ads,Interfaces C Extensions i-cexten ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{3e3}@anchor{gnat_rm/the_gnat_library id128}@anchor{3e4}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25111,25117 ****
  @code{GNAT.Array_Split}.
  
  @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id129}@anchor{3d4}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3d5}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
--- 25152,25158 ----
  @code{GNAT.Array_Split}.
  
  @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id129}@anchor{3e5}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3e6}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
*************** for use with either manually or automati
*** 25122,25128 ****
  to C libraries.
  
  @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id130}@anchor{3d6}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3d7}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
--- 25163,25169 ----
  to C libraries.
  
  @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id130}@anchor{3e7}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3e8}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
*************** This package is a binding for the most c
*** 25135,25141 ****
  on C streams.
  
  @node Interfaces Packed_Decimal i-pacdec ads,Interfaces VxWorks i-vxwork ads,Interfaces C Streams i-cstrea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id131}@anchor{3d8}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3d9}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
--- 25176,25182 ----
  on C streams.
  
  @node Interfaces Packed_Decimal i-pacdec ads,Interfaces VxWorks i-vxwork ads,Interfaces C Streams i-cstrea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id131}@anchor{3e9}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3ea}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
*************** from a packed decimal format compatible
*** 25150,25156 ****
  mainframes.
  
  @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks Int_Connection i-vxinco ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id132}@anchor{3da}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3db}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
--- 25191,25197 ----
  mainframes.
  
  @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks Int_Connection i-vxinco ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id132}@anchor{3eb}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3ec}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
*************** In particular, it interfaces with the
*** 25166,25172 ****
  VxWorks hardware interrupt facilities.
  
  @node Interfaces VxWorks Int_Connection i-vxinco ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id133}@anchor{3dc}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-int-connection-i-vxinco-ads}@anchor{3dd}
  @section @code{Interfaces.VxWorks.Int_Connection} (@code{i-vxinco.ads})
  
  
--- 25207,25213 ----
  VxWorks hardware interrupt facilities.
  
  @node Interfaces VxWorks Int_Connection i-vxinco ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id133}@anchor{3ed}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-int-connection-i-vxinco-ads}@anchor{3ee}
  @section @code{Interfaces.VxWorks.Int_Connection} (@code{i-vxinco.ads})
  
  
*************** intConnect() with a custom routine for i
*** 25182,25188 ****
  handlers.
  
  @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks Int_Connection i-vxinco ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id134}@anchor{3de}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3df}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
--- 25223,25229 ----
  handlers.
  
  @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks Int_Connection i-vxinco ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id134}@anchor{3ef}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3f0}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
*************** function codes. A particular use of this
*** 25205,25211 ****
  to enable the use of Get_Immediate under VxWorks.
  
  @node System Address_Image s-addima ads,System Assertions s-assert ads,Interfaces VxWorks IO i-vxwoio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id135}@anchor{3e0}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{3e1}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
--- 25246,25252 ----
  to enable the use of Get_Immediate under VxWorks.
  
  @node System Address_Image s-addima ads,System Assertions s-assert ads,Interfaces VxWorks IO i-vxwoio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id135}@anchor{3f1}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{3f2}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
*************** function that gives an (implementation d
*** 25221,25227 ****
  string which identifies an address.
  
  @node System Assertions s-assert ads,System Atomic_Counters s-atocou ads,System Address_Image s-addima ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id136}@anchor{3e2}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{3e3}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
--- 25262,25268 ----
  string which identifies an address.
  
  @node System Assertions s-assert ads,System Atomic_Counters s-atocou ads,System Address_Image s-addima ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id136}@anchor{3f3}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{3f4}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
*************** by an run-time assertion failure, as wel
*** 25237,25243 ****
  is used internally to raise this assertion.
  
  @node System Atomic_Counters s-atocou ads,System Memory s-memory ads,System Assertions s-assert ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id137}@anchor{3e4}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{3e5}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
--- 25278,25284 ----
  is used internally to raise this assertion.
  
  @node System Atomic_Counters s-atocou ads,System Memory s-memory ads,System Assertions s-assert ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id137}@anchor{3f5}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{3f6}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
*************** on most targets, including all Alpha, AA
*** 25251,25257 ****
  x86, and x86_64 platforms.
  
  @node System Memory s-memory ads,System Multiprocessors s-multip ads,System Atomic_Counters s-atocou ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id138}@anchor{3e6}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{3e7}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
--- 25292,25298 ----
  x86, and x86_64 platforms.
  
  @node System Memory s-memory ads,System Multiprocessors s-multip ads,System Atomic_Counters s-atocou ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id138}@anchor{3f7}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{3f8}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
*************** calls to this unit may be made for low l
*** 25269,25275 ****
  example see the body of @code{GNAT.Tables}).
  
  @node System Multiprocessors s-multip ads,System Multiprocessors Dispatching_Domains s-mudido ads,System Memory s-memory ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id139}@anchor{3e8}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{3e9}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
--- 25310,25316 ----
  example see the body of @code{GNAT.Tables}).
  
  @node System Multiprocessors s-multip ads,System Multiprocessors Dispatching_Domains s-mudido ads,System Memory s-memory ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id139}@anchor{3f9}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{3fa}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25282,25288 ****
  technically an implementation-defined addition).
  
  @node System Multiprocessors Dispatching_Domains s-mudido ads,System Partition_Interface s-parint ads,System Multiprocessors s-multip ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id140}@anchor{3ea}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{3eb}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
--- 25323,25329 ----
  technically an implementation-defined addition).
  
  @node System Multiprocessors Dispatching_Domains s-mudido ads,System Partition_Interface s-parint ads,System Multiprocessors s-multip ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id140}@anchor{3fb}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{3fc}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25295,25301 ****
  technically an implementation-defined addition).
  
  @node System Partition_Interface s-parint ads,System Pool_Global s-pooglo ads,System Multiprocessors Dispatching_Domains s-mudido ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id141}@anchor{3ec}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{3ed}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
--- 25336,25342 ----
  technically an implementation-defined addition).
  
  @node System Partition_Interface s-parint ads,System Pool_Global s-pooglo ads,System Multiprocessors Dispatching_Domains s-mudido ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id141}@anchor{3fd}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{3fe}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
*************** is used primarily in a distribution cont
*** 25308,25314 ****
  with @code{GLADE}.
  
  @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id142}@anchor{3ee}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{3ef}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
--- 25349,25355 ----
  with @code{GLADE}.
  
  @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id142}@anchor{3ff}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{400}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
*************** declared. It uses malloc/free to allocat
*** 25325,25331 ****
  do any automatic reclamation.
  
  @node System Pool_Local s-pooloc ads,System Restrictions s-restri ads,System Pool_Global s-pooglo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id143}@anchor{3f0}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{3f1}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
--- 25366,25372 ----
  do any automatic reclamation.
  
  @node System Pool_Local s-pooloc ads,System Restrictions s-restri ads,System Pool_Global s-pooglo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id143}@anchor{401}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{402}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
*************** a list of allocated blocks, so that all
*** 25342,25348 ****
  be freed automatically when the pool is finalized.
  
  @node System Restrictions s-restri ads,System Rident s-rident ads,System Pool_Local s-pooloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id144}@anchor{3f2}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{3f3}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
--- 25383,25389 ----
  be freed automatically when the pool is finalized.
  
  @node System Restrictions s-restri ads,System Rident s-rident ads,System Pool_Local s-pooloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id144}@anchor{403}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{404}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
*************** compiler determined information on which
*** 25358,25364 ****
  are violated by one or more packages in the partition.
  
  @node System Rident s-rident ads,System Strings Stream_Ops s-ststop ads,System Restrictions s-restri ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id145}@anchor{3f4}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{3f5}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
--- 25399,25405 ----
  are violated by one or more packages in the partition.
  
  @node System Rident s-rident ads,System Strings Stream_Ops s-ststop ads,System Restrictions s-restri ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id145}@anchor{405}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{406}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
*************** since the necessary instantiation is inc
*** 25374,25380 ****
  package System.Restrictions.
  
  @node System Strings Stream_Ops s-ststop ads,System Unsigned_Types s-unstyp ads,System Rident s-rident ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id146}@anchor{3f6}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{3f7}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
--- 25415,25421 ----
  package System.Restrictions.
  
  @node System Strings Stream_Ops s-ststop ads,System Unsigned_Types s-unstyp ads,System Rident s-rident ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id146}@anchor{407}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{408}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
*************** stream attributes are applied to string
*** 25390,25396 ****
  package can be used directly by application programs.
  
  @node System Unsigned_Types s-unstyp ads,System Wch_Cnv s-wchcnv ads,System Strings Stream_Ops s-ststop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id147}@anchor{3f8}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{3f9}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
--- 25431,25437 ----
  package can be used directly by application programs.
  
  @node System Unsigned_Types s-unstyp ads,System Wch_Cnv s-wchcnv ads,System Strings Stream_Ops s-ststop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id147}@anchor{409}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{40a}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
*************** also contains some related definitions f
*** 25403,25409 ****
  used by the compiler in connection with packed array types.
  
  @node System Wch_Cnv s-wchcnv ads,System Wch_Con s-wchcon ads,System Unsigned_Types s-unstyp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id148}@anchor{3fa}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{3fb}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
--- 25444,25450 ----
  used by the compiler in connection with packed array types.
  
  @node System Wch_Cnv s-wchcnv ads,System Wch_Con s-wchcon ads,System Unsigned_Types s-unstyp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id148}@anchor{40b}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{40c}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
*************** encoding method.  It uses definitions in
*** 25424,25430 ****
  package @code{System.Wch_Con}.
  
  @node System Wch_Con s-wchcon ads,,System Wch_Cnv s-wchcnv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id149}@anchor{3fc}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{3fd}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
--- 25465,25471 ----
  package @code{System.Wch_Con}.
  
  @node System Wch_Con s-wchcon ads,,System Wch_Cnv s-wchcnv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id149}@anchor{40d}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{40e}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
*************** in ordinary strings.  These definitions
*** 25436,25442 ****
  the package @code{System.Wch_Cnv}.
  
  @node Interfacing to Other Languages,Specialized Needs Annexes,The GNAT Library,Top
! @anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{3fe}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{3ff}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
--- 25477,25483 ----
  the package @code{System.Wch_Cnv}.
  
  @node Interfacing to Other Languages,Specialized Needs Annexes,The GNAT Library,Top
! @anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{40f}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{410}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
*************** provided.
*** 25454,25460 ****
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{400}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{401}
  @section Interfacing to C
  
  
--- 25495,25501 ----
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{411}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{412}
  @section Interfacing to C
  
  
*************** of the length corresponding to the @code
*** 25594,25600 ****
  @end itemize
  
  @node Interfacing to C++,Interfacing to COBOL,Interfacing to C,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{47}@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{402}
  @section Interfacing to C++
  
  
--- 25635,25641 ----
  @end itemize
  
  @node Interfacing to C++,Interfacing to COBOL,Interfacing to C,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{49}@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{413}
  @section Interfacing to C++
  
  
*************** The @code{External_Name} is the name of
*** 25651,25657 ****
  cover a specific C++ exception in an exception handler.
  
  @node Interfacing to COBOL,Interfacing to Fortran,Interfacing to C++,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{403}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{404}
  @section Interfacing to COBOL
  
  
--- 25692,25698 ----
  cover a specific C++ exception in an exception handler.
  
  @node Interfacing to COBOL,Interfacing to Fortran,Interfacing to C++,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{414}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{415}
  @section Interfacing to COBOL
  
  
*************** Interfacing to COBOL is achieved as desc
*** 25659,25665 ****
  the Ada Reference Manual.
  
  @node Interfacing to Fortran,Interfacing to non-GNAT Ada code,Interfacing to COBOL,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{405}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{406}
  @section Interfacing to Fortran
  
  
--- 25700,25706 ----
  the Ada Reference Manual.
  
  @node Interfacing to Fortran,Interfacing to non-GNAT Ada code,Interfacing to COBOL,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{416}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{417}
  @section Interfacing to Fortran
  
  
*************** multi-dimensional array causes the array
*** 25669,25675 ****
  order as required for convenient interface to Fortran.
  
  @node Interfacing to non-GNAT Ada code,,Interfacing to Fortran,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{407}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{408}
  @section Interfacing to non-GNAT Ada code
  
  
--- 25710,25716 ----
  order as required for convenient interface to Fortran.
  
  @node Interfacing to non-GNAT Ada code,,Interfacing to Fortran,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{418}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{419}
  @section Interfacing to non-GNAT Ada code
  
  
*************** values or simple record types without va
*** 25693,25699 ****
  types with fixed bounds.
  
  @node Specialized Needs Annexes,Implementation of Specific Ada Features,Interfacing to Other Languages,Top
! @anchor{gnat_rm/specialized_needs_annexes doc}@anchor{409}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{40a}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
--- 25734,25740 ----
  types with fixed bounds.
  
  @node Specialized Needs Annexes,Implementation of Specific Ada Features,Interfacing to Other Languages,Top
! @anchor{gnat_rm/specialized_needs_annexes doc}@anchor{41a}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{41b}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
*************** in Ada 2005) is fully implemented.
*** 25734,25740 ****
  @end table
  
  @node Implementation of Specific Ada Features,Implementation of Ada 2012 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{40b}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{40c}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
--- 25775,25781 ----
  @end table
  
  @node Implementation of Specific Ada Features,Implementation of Ada 2012 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{41c}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{41d}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
*************** facilities.
*** 25753,25759 ****
  @end menu
  
  @node Machine Code Insertions,GNAT Implementation of Tasking,,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{40d}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{166}
  @section Machine Code Insertions
  
  
--- 25794,25800 ----
  @end menu
  
  @node Machine Code Insertions,GNAT Implementation of Tasking,,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{41e}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{175}
  @section Machine Code Insertions
  
  
*************** according to normal visibility rules. In
*** 25921,25927 ****
  qualification is required.
  
  @node GNAT Implementation of Tasking,GNAT Implementation of Shared Passive Packages,Machine Code Insertions,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{40e}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{40f}
  @section GNAT Implementation of Tasking
  
  
--- 25962,25968 ----
  qualification is required.
  
  @node GNAT Implementation of Tasking,GNAT Implementation of Shared Passive Packages,Machine Code Insertions,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{41f}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{420}
  @section GNAT Implementation of Tasking
  
  
*************** to compliance with the Real-Time Systems
*** 25937,25943 ****
  @end menu
  
  @node Mapping Ada Tasks onto the Underlying Kernel Threads,Ensuring Compliance with the Real-Time Annex,,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{410}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{411}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
--- 25978,25984 ----
  @end menu
  
  @node Mapping Ada Tasks onto the Underlying Kernel Threads,Ensuring Compliance with the Real-Time Annex,,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{421}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{422}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
*************** support this functionality when the pare
*** 26006,26012 ****
  @geindex Forking a new process
  
  @node Ensuring Compliance with the Real-Time Annex,Support for Locking Policies,Mapping Ada Tasks onto the Underlying Kernel Threads,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{412}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{413}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
--- 26047,26053 ----
  @geindex Forking a new process
  
  @node Ensuring Compliance with the Real-Time Annex,Support for Locking Policies,Mapping Ada Tasks onto the Underlying Kernel Threads,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{423}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{424}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
*************** placed at the end.
*** 26057,26063 ****
  @c Support_for_Locking_Policies
  
  @node Support for Locking Policies,,Ensuring Compliance with the Real-Time Annex,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features support-for-locking-policies}@anchor{414}
  @subsection Support for Locking Policies
  
  
--- 26098,26104 ----
  @c Support_for_Locking_Policies
  
  @node Support for Locking Policies,,Ensuring Compliance with the Real-Time Annex,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features support-for-locking-policies}@anchor{425}
  @subsection Support for Locking Policies
  
  
*************** then ceiling locking is used.
*** 26091,26097 ****
  Otherwise, the @code{Ceiling_Locking} policy is ignored.
  
  @node GNAT Implementation of Shared Passive Packages,Code Generation for Array Aggregates,GNAT Implementation of Tasking,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{415}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{416}
  @section GNAT Implementation of Shared Passive Packages
  
  
--- 26132,26138 ----
  Otherwise, the @code{Ceiling_Locking} policy is ignored.
  
  @node GNAT Implementation of Shared Passive Packages,Code Generation for Array Aggregates,GNAT Implementation of Tasking,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{426}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{427}
  @section GNAT Implementation of Shared Passive Packages
  
  
*************** This is used to provide the required loc
*** 26189,26195 ****
  semantics for proper protected object synchronization.
  
  @node Code Generation for Array Aggregates,The Size of Discriminated Records with Default Discriminants,GNAT Implementation of Shared Passive Packages,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{417}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{418}
  @section Code Generation for Array Aggregates
  
  
--- 26230,26236 ----
  semantics for proper protected object synchronization.
  
  @node Code Generation for Array Aggregates,The Size of Discriminated Records with Default Discriminants,GNAT Implementation of Shared Passive Packages,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{428}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{429}
  @section Code Generation for Array Aggregates
  
  
*************** component values and static subtypes als
*** 26220,26226 ****
  @end menu
  
  @node Static constant aggregates with static bounds,Constant aggregates with unconstrained nominal types,,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{419}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{41a}
  @subsection Static constant aggregates with static bounds
  
  
--- 26261,26267 ----
  @end menu
  
  @node Static constant aggregates with static bounds,Constant aggregates with unconstrained nominal types,,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{42a}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{42b}
  @subsection Static constant aggregates with static bounds
  
  
*************** Zero2: constant two_dim := (others => (o
*** 26267,26273 ****
  @end example
  
  @node Constant aggregates with unconstrained nominal types,Aggregates with static bounds,Static constant aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{41b}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{41c}
  @subsection Constant aggregates with unconstrained nominal types
  
  
--- 26308,26314 ----
  @end example
  
  @node Constant aggregates with unconstrained nominal types,Aggregates with static bounds,Static constant aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{42c}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{42d}
  @subsection Constant aggregates with unconstrained nominal types
  
  
*************** Cr_Unc : constant One_Unc := (12,24,36);
*** 26282,26288 ****
  @end example
  
  @node Aggregates with static bounds,Aggregates with nonstatic bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{41d}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{41e}
  @subsection Aggregates with static bounds
  
  
--- 26323,26329 ----
  @end example
  
  @node Aggregates with static bounds,Aggregates with nonstatic bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{42e}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{42f}
  @subsection Aggregates with static bounds
  
  
*************** end loop;
*** 26310,26316 ****
  @end example
  
  @node Aggregates with nonstatic bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-nonstatic-bounds}@anchor{41f}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{420}
  @subsection Aggregates with nonstatic bounds
  
  
--- 26351,26357 ----
  @end example
  
  @node Aggregates with nonstatic bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-nonstatic-bounds}@anchor{430}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{431}
  @subsection Aggregates with nonstatic bounds
  
  
*************** have to be applied to sub-arrays individ
*** 26321,26327 ****
  compatible subtypes.
  
  @node Aggregates in assignment statements,,Aggregates with nonstatic bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{421}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{422}
  @subsection Aggregates in assignment statements
  
  
--- 26362,26368 ----
  compatible subtypes.
  
  @node Aggregates in assignment statements,,Aggregates with nonstatic bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{432}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{433}
  @subsection Aggregates in assignment statements
  
  
*************** a temporary (created either by the front
*** 26363,26369 ****
  that temporary will be copied onto the target.
  
  @node The Size of Discriminated Records with Default Discriminants,Image Values For Nonscalar Types,Code Generation for Array Aggregates,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{423}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{424}
  @section The Size of Discriminated Records with Default Discriminants
  
  
--- 26404,26410 ----
  that temporary will be copied onto the target.
  
  @node The Size of Discriminated Records with Default Discriminants,Image Values For Nonscalar Types,Code Generation for Array Aggregates,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{434}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{435}
  @section The Size of Discriminated Records with Default Discriminants
  
  
*************** say) must be consistent, so it is impera
*** 26443,26449 ****
  remain invariant.
  
  @node Image Values For Nonscalar Types,Strict Conformance to the Ada Reference Manual,The Size of Discriminated Records with Default Discriminants,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{425}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{426}
  @section Image Values For Nonscalar Types
  
  
--- 26484,26490 ----
  remain invariant.
  
  @node Image Values For Nonscalar Types,Strict Conformance to the Ada Reference Manual,The Size of Discriminated Records with Default Discriminants,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{436}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{437}
  @section Image Values For Nonscalar Types
  
  
*************** control of image text is required for so
*** 26463,26469 ****
  explicitly specified.
  
  @node Strict Conformance to the Ada Reference Manual,,Image Values For Nonscalar Types,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id15}@anchor{427}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{428}
  @section Strict Conformance to the Ada Reference Manual
  
  
--- 26504,26510 ----
  explicitly specified.
  
  @node Strict Conformance to the Ada Reference Manual,,Image Values For Nonscalar Types,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id15}@anchor{438}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{439}
  @section Strict Conformance to the Ada Reference Manual
  
  
*************** machines that are not fully compliant wi
*** 26489,26496 ****
  behavior (although at the cost of a significant performance penalty), so
  infinite and NaN values are properly generated.
  
! @node Implementation of Ada 2012 Features,Security Hardening Features,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{429}@anchor{gnat_rm/implementation_of_ada_2012_features id1}@anchor{42a}@anchor{gnat_rm/implementation_of_ada_2012_features implementation-of-ada-2012-features}@anchor{14}
  @chapter Implementation of Ada 2012 Features
  
  
--- 26530,26537 ----
  behavior (although at the cost of a significant performance penalty), so
  infinite and NaN values are properly generated.
  
! @node Implementation of Ada 2012 Features,GNAT language extensions,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{43a}@anchor{gnat_rm/implementation_of_ada_2012_features id1}@anchor{43b}@anchor{gnat_rm/implementation_of_ada_2012_features implementation-of-ada-2012-features}@anchor{14}
  @chapter Implementation of Ada 2012 Features
  
  
*************** where the type of the returned value is
*** 28655,28662 ****
  RM References:  H.04 (8/1)
  @end itemize
  
! @node Security Hardening Features,Obsolescent Features,Implementation of Ada 2012 Features,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{42b}@anchor{gnat_rm/security_hardening_features id1}@anchor{42c}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
--- 28696,29376 ----
  RM References:  H.04 (8/1)
  @end itemize
  
! @node GNAT language extensions,Security Hardening Features,Implementation of Ada 2012 Features,Top
! @anchor{gnat_rm/gnat_language_extensions doc}@anchor{43c}@anchor{gnat_rm/gnat_language_extensions gnat-language-extensions}@anchor{43d}@anchor{gnat_rm/gnat_language_extensions id1}@anchor{43e}
! @chapter GNAT language extensions
! 
! 
! The GNAT compiler implements a certain number of language extensions on top of
! the latest Ada standard, implementing its own extended superset of Ada.
! 
! There are two sets of language extensions:
! 
! 
! @itemize *
! 
! @item 
! The first is the curated set. The features in that set are features that we
! consider being worthy additions to the Ada language, and that we want to make
! available to users early on.
! 
! @item 
! The second is the experimental set. It includes the first, but also
! experimental features, that are here because they’re still in an early
! prototyping phase.
! @end itemize
! 
! @menu
! * How to activate the extended GNAT Ada superset:: 
! * Curated Extensions:: 
! * Experimental Language Extensions:: 
! 
! @end menu
! 
! @node How to activate the extended GNAT Ada superset,Curated Extensions,,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions how-to-activate-the-extended-gnat-ada-superset}@anchor{43f}
! @section How to activate the extended GNAT Ada superset
! 
! 
! There are two ways to activate the extended GNAT Ada superset:
! 
! 
! @itemize *
! 
! @item 
! The @ref{68,,Pragma Extensions_Allowed}. To activate
! the curated set of extensions, you should use
! @end itemize
! 
! @example
! pragma Extensions_Allowed (On)
! @end example
! 
! As a configuration pragma, you can either put it at the beginning of a source
! file, or in a @code{.adc} file corresponding to your project.
! 
! 
! @itemize *
! 
! @item 
! The @code{-gnatX} option, that you can pass to the compiler directly, will
! activate the curated subset of extensions.
! @end itemize
! 
! @cartouche
! @quotation Attention 
! You can activate the extended set of extensions by using either
! the @code{-gnatX0} command line flag, or the pragma @code{Extensions_Allowed} with
! @code{All} as an argument. However, it is not recommended you use this subset
! for serious projects, and is only means as a playground/technology preview.
! @end quotation
! @end cartouche
! 
! @node Curated Extensions,Experimental Language Extensions,How to activate the extended GNAT Ada superset,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions curated-extensions}@anchor{440}@anchor{gnat_rm/gnat_language_extensions curated-language-extensions}@anchor{69}
! @section Curated Extensions
! 
! 
! @menu
! * Local Declarations Without Block:: 
! * Conditional when constructs:: 
! * Case pattern matching:: 
! * Fixed lower bounds for array types and subtypes:: 
! * Prefixed-view notation for calls to primitive subprograms of untagged types:: 
! * Expression defaults for generic formal functions:: 
! * String interpolation:: 
! * Constrained attribute for generic objects:: 
! * Static aspect on intrinsic functions:: 
! 
! @end menu
! 
! @node Local Declarations Without Block,Conditional when constructs,,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions local-declarations-without-block}@anchor{441}
! @subsection Local Declarations Without Block
! 
! 
! A basic_declarative_item may appear at the place of any statement.
! This avoids the heavy syntax of block_statements just to declare
! something locally.
! 
! Link to the original RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-local-vars-without-block.md}
! For example:
! 
! @example
! if X > 5 then
!    X := X + 1;
! 
!    Squared : constant Integer := X**2;
! 
!    X := X + Squared;
! end if;
! @end example
! 
! @node Conditional when constructs,Case pattern matching,Local Declarations Without Block,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{442}
! @subsection Conditional when constructs
! 
! 
! This feature extends the use of @code{when} as a way to condition a control-flow
! related statement, to all control-flow related statements.
! 
! To do a conditional return in a procedure the following syntax should be used:
! 
! @example
! procedure P (Condition : Boolean) is
! begin
!    return when Condition;
! end;
! @end example
! 
! This will return from the procedure if @code{Condition} is true.
! 
! When being used in a function the conditional part comes after the return value:
! 
! @example
! function Is_Null (I : Integer) return Boolean is
! begin
!    return True when I = 0;
!    return False;
! end;
! @end example
! 
! In a similar way to the @code{exit when} a @code{goto ... when} can be employed:
! 
! @example
! procedure Low_Level_Optimized is
!    Flags : Bitmapping;
! begin
!    Do_1 (Flags);
!    goto Cleanup when Flags (1);
! 
!    Do_2 (Flags);
!    goto Cleanup when Flags (32);
! 
!    --  ...
! 
! <<Cleanup>>
!    --  ...
! end;
! @end example
! 
! @c code-block
! 
! To use a conditional raise construct:
! 
! @example
! procedure Foo is
! begin
!    raise Error when Imported_C_Func /= 0;
! end;
! @end example
! 
! An exception message can also be added:
! 
! @example
! procedure Foo is
! begin
!    raise Error with "Unix Error"
!      when Imported_C_Func /= 0;
! end;
! @end example
! 
! Link to the original RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-conditional-when-constructs.rst}
! 
! @node Case pattern matching,Fixed lower bounds for array types and subtypes,Conditional when constructs,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{443}
! @subsection Case pattern matching
! 
! 
! The selector for a case statement (but not yet for a case expression) may be of a composite type, subject to
! some restrictions (described below). Aggregate syntax is used for choices
! of such a case statement; however, in cases where a “normal” aggregate would
! require a discrete value, a discrete subtype may be used instead; box
! notation can also be used to match all values.
! 
! Consider this example:
! 
! @example
! type Rec is record
!    F1, F2 : Integer;
! end record;
! 
! procedure Caser_1 (X : Rec) is
! begin
!    case X is
!       when (F1 => Positive, F2 => Positive) =>
!          Do_This;
!       when (F1 => Natural, F2 => <>) | (F1 => <>, F2 => Natural) =>
!          Do_That;
!       when others =>
!           Do_The_Other_Thing;
!    end case;
! end Caser_1;
! @end example
! 
! If @code{Caser_1} is called and both components of X are positive, then
! @code{Do_This} will be called; otherwise, if either component is nonnegative
! then @code{Do_That} will be called; otherwise, @code{Do_The_Other_Thing} will be
! called.
! 
! In addition, pattern bindings are supported. This is a mechanism
! for binding a name to a component of a matching value for use within
! an alternative of a case statement. For a component association
! that occurs within a case choice, the expression may be followed by
! @code{is <identifier>}. In the special case of a “box” component association,
! the identifier may instead be provided within the box. Either of these
! indicates that the given identifier denotes (a constant view of) the matching
! subcomponent of the case selector.
! 
! @cartouche
! @quotation Attention 
! Binding is not yet supported for arrays or subcomponents
! thereof.
! @end quotation
! @end cartouche
! 
! Consider this example (which uses type @code{Rec} from the previous example):
! 
! @example
! procedure Caser_2 (X : Rec) is
! begin
!    case X is
!       when (F1 => Positive is Abc, F2 => Positive) =>
!          Do_This (Abc)
!       when (F1 => Natural is N1, F2 => <N2>) |
!            (F1 => <N2>, F2 => Natural is N1) =>
!          Do_That (Param_1 => N1, Param_2 => N2);
!       when others =>
!          Do_The_Other_Thing;
!    end case;
! end Caser_2;
! @end example
! 
! This example is the same as the previous one with respect to determining
! whether @code{Do_This}, @code{Do_That}, or @code{Do_The_Other_Thing} will be called. But
! for this version, @code{Do_This} takes a parameter and @code{Do_That} takes two
! parameters. If @code{Do_This} is called, the actual parameter in the call will be
! @code{X.F1}.
! 
! If @code{Do_That} is called, the situation is more complex because there are two
! choices for that alternative. If @code{Do_That} is called because the first choice
! matched (i.e., because @code{X.F1} is nonnegative and either @code{X.F1} or @code{X.F2}
! is zero or negative), then the actual parameters of the call will be (in order)
! @code{X.F1} and @code{X.F2}. If @code{Do_That} is called because the second choice
! matched (and the first one did not), then the actual parameters will be
! reversed.
! 
! Within the choice list for single alternative, each choice must define the same
! set of bindings and the component subtypes for for a given identifer must all
! statically match. Currently, the case of a binding for a nondiscrete component
! is not implemented.
! 
! If the set of values that match the choice(s) of an earlier alternative
! overlaps the corresponding set of a later alternative, then the first set shall
! be a proper subset of the second (and the later alternative will not be
! executed if the earlier alternative “matches”). All possible values of the
! composite type shall be covered. The composite type of the selector shall be an
! array or record type that is neither limited nor class-wide. Currently, a “when
! others =>” case choice is required; it is intended that this requirement will
! be relaxed at some point.
! 
! If a subcomponent’s subtype does not meet certain restrictions, then the only
! value that can be specified for that subcomponent in a case choice expression
! is a “box” component association (which matches all possible values for the
! subcomponent). This restriction applies if:
! 
! 
! @itemize -
! 
! @item 
! the component subtype is not a record, array, or discrete type; or
! 
! @item 
! the component subtype is subject to a non-static constraint or has a
! predicate; or:
! 
! @item 
! the component type is an enumeration type that is subject to an enumeration
! representation clause; or
! 
! @item 
! the component type is a multidimensional array type or an array type with a
! nonstatic index subtype.
! @end itemize
! 
! Support for casing on arrays (and on records that contain arrays) is
! currently subject to some restrictions. Non-positional
! array aggregates are not supported as (or within) case choices. Likewise
! for array type and subtype names. The current implementation exceeds
! compile-time capacity limits in some annoyingly common scenarios; the
! message generated in such cases is usually “Capacity exceeded in compiling
! case statement with composite selector type”.
! 
! Link to the original RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-pattern-matching.rst}
! 
! @node Fixed lower bounds for array types and subtypes,Prefixed-view notation for calls to primitive subprograms of untagged types,Case pattern matching,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions fixed-lower-bounds-for-array-types-and-subtypes}@anchor{444}
! @subsection Fixed lower bounds for array types and subtypes
! 
! 
! Unconstrained array types and subtypes can be specified with a lower bound that
! is fixed to a certain value, by writing an index range that uses the syntax
! @code{<lower-bound-expression> .. <>}. This guarantees that all objects of the
! type or subtype will have the specified lower bound.
! 
! For example, a matrix type with fixed lower bounds of zero for each dimension
! can be declared by the following:
! 
! @example
! type Matrix is
!   array (Natural range 0 .. <>, Natural range 0 .. <>) of Integer;
! @end example
! 
! Objects of type @code{Matrix} declared with an index constraint must have index
! ranges starting at zero:
! 
! @example
! M1 : Matrix (0 .. 9, 0 .. 19);
! M2 : Matrix (2 .. 11, 3 .. 22);  -- Warning about bounds; will raise CE
! @end example
! 
! Similarly, a subtype of @code{String} can be declared that specifies the lower
! bound of objects of that subtype to be @code{1}:
! 
! @quotation
! 
! @example
! subtype String_1 is String (1 .. <>);
! @end example
! @end quotation
! 
! If a string slice is passed to a formal of subtype @code{String_1} in a call to a
! subprogram @code{S}, the slice’s bounds will “slide” so that the lower bound is
! @code{1}.
! 
! Within @code{S}, the lower bound of the formal is known to be @code{1}, so, unlike a
! normal unconstrained @code{String} formal, there is no need to worry about
! accounting for other possible lower-bound values. Sliding of bounds also occurs
! in other contexts, such as for object declarations with an unconstrained
! subtype with fixed lower bound, as well as in subtype conversions.
! 
! Use of this feature increases safety by simplifying code, and can also improve
! the efficiency of indexing operations, since the compiler statically knows the
! lower bound of unconstrained array formals when the formal’s subtype has index
! ranges with static fixed lower bounds.
! 
! Link to the original RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-fixed-lower-bound.rst}
! 
! @node Prefixed-view notation for calls to primitive subprograms of untagged types,Expression defaults for generic formal functions,Fixed lower bounds for array types and subtypes,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions prefixed-view-notation-for-calls-to-primitive-subprograms-of-untagged-types}@anchor{445}
! @subsection Prefixed-view notation for calls to primitive subprograms of untagged types
! 
! 
! When operating on an untagged type, if it has any primitive operations, and the
! first parameter of an operation is of the type (or is an access parameter with
! an anonymous type that designates the type), you may invoke these operations
! using an @code{object.op(...)} notation, where the parameter that would normally be
! the first parameter is brought out front, and the remaining parameters (if any)
! appear within parentheses after the name of the primitive operation.
! 
! This same notation is already available for tagged types. This extension allows
! for untagged types. It is allowed for all primitive operations of the type
! independent of whether they were originally declared in a package spec or its
! private part, or were inherited and/or overridden as part of a derived type
! declaration occuring anywhere, so long as the first parameter is of the type,
! or an access parameter designating the type.
! 
! For example:
! 
! @example
! generic
!    type Elem_Type is private;
! package Vectors is
!     type Vector is private;
!     procedure Add_Element (V : in out Vector; Elem : Elem_Type);
!     function Nth_Element (V : Vector; N : Positive) return Elem_Type;
!     function Length (V : Vector) return Natural;
! private
!     function Capacity (V : Vector) return Natural;
!        --  Return number of elements that may be added without causing
!        --  any new allocation of space
! 
!     type Vector is ...
!       with Type_Invariant => Vector.Length <= Vector.Capacity;
!     ...
! end Vectors;
! 
! package Int_Vecs is new Vectors(Integer);
! 
! V : Int_Vecs.Vector;
! ...
! V.Add_Element(42);
! V.Add_Element(-33);
! 
! pragma Assert (V.Length = 2);
! pragma Assert (V.Nth_Element(1) = 42);
! @end example
! 
! Link to the original RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-prefixed-untagged.rst}
! 
! @node Expression defaults for generic formal functions,String interpolation,Prefixed-view notation for calls to primitive subprograms of untagged types,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions expression-defaults-for-generic-formal-functions}@anchor{446}
! @subsection Expression defaults for generic formal functions
! 
! 
! The declaration of a generic formal function is allowed to specify
! an expression as a default, using the syntax of an expression function.
! 
! Here is an example of this feature:
! 
! @example
! generic
!    type T is private;
!    with function Copy (Item : T) return T is (Item); -- Defaults to Item
! package Stacks is
! 
!    type Stack is limited private;
! 
!    procedure Push (S : in out Stack; X : T); -- Calls Copy on X
!    function Pop (S : in out Stack) return T; -- Calls Copy to return item
! 
! private
!    -- ...
! end Stacks;
! @end example
! 
! Link to the original RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-expression-functions-as-default-for-generic-formal-function-parameters.rst}
! 
! @node String interpolation,Constrained attribute for generic objects,Expression defaults for generic formal functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions string-interpolation}@anchor{447}
! @subsection String interpolation
! 
! 
! The syntax for string literals is extended to support string interpolation.
! 
! Within an interpolated string literal, an arbitrary expression, when
! enclosed in @code{@{ ... @}}, is expanded at run time into the result of calling
! @code{'Image} on the result of evaluating the expression enclosed by the brace
! characters, unless it is already a string or a single character.
! 
! Here is an example of this feature where the expressions @code{Name} and @code{X + Y}
! will be evaluated and included in the string.
! 
! @example
! procedure Test_Interpolation is
!    X    : Integer := 12;
!    Y    : Integer := 15;
!    Name : String := "Leo";
! begin
!    Put_Line (f"The name is @{Name@} and the sum is @{X + Y@}.");
! end Test_Interpolation;
! @end example
! 
! In addition, an escape character (@code{\}) is provided for inserting certain
! standard control characters (such as @code{\t} for tabulation or @code{\n} for
! newline) or to escape characters with special significance to the
! interpolated string syntax, namely @code{"}, @code{@{}, @code{@}},and @code{\} itself.
! 
! 
! @multitable {xxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxx} 
! @item
! 
! escaped_character
! 
! @tab
! 
! meaning
! 
! @item
! 
! @code{\a}
! 
! @tab
! 
! ALERT
! 
! @item
! 
! @code{\b}
! 
! @tab
! 
! BACKSPACE
! 
! @item
! 
! @code{\f}
! 
! @tab
! 
! FORM FEED
! 
! @item
! 
! @code{\n}
! 
! @tab
! 
! LINE FEED
! 
! @item
! 
! @code{\r}
! 
! @tab
! 
! CARRIAGE RETURN
! 
! @item
! 
! @code{\t}
! 
! @tab
! 
! CHARACTER TABULATION
! 
! @item
! 
! @code{\v}
! 
! @tab
! 
! LINE TABULATION
! 
! @item
! 
! @code{\0}
! 
! @tab
! 
! NUL
! 
! @item
! 
! @code{\\}
! 
! @tab
! 
! @code{\}
! 
! @item
! 
! @code{\"}
! 
! @tab
! 
! @code{"}
! 
! @item
! 
! @code{\@{}
! 
! @tab
! 
! @code{@{}
! 
! @item
! 
! @code{\@}}
! 
! @tab
! 
! @code{@}}
! 
! @end multitable
! 
! 
! Note that, unlike normal string literals, doubled characters have no
! special significance. So to include a double-quote or a brace character
! in an interpolated string, they must be preceded by a @code{\}.
! For example:
! 
! @example
! Put_Line
!   (f"X = @{X@} and Y = @{Y@} and X+Y = @{X+Y@};\n" &
!    f" a double quote is \" and" &
!    f" an open brace is \@{");
! @end example
! 
! Finally, a syntax is provided for creating multi-line string literals,
! without having to explicitly use an escape sequence such as @code{\n}. For
! example:
! 
! @example
! Put_Line
!   (f"This is a multi-line"
!     "string literal"
!     "There is no ambiguity about how many"
!     "spaces are included in each line");
! @end example
! 
! Here is a link to the original RFC   :
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-string-interpolation.rst}
! 
! @node Constrained attribute for generic objects,Static aspect on intrinsic functions,String interpolation,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions constrained-attribute-for-generic-objects}@anchor{448}
! @subsection Constrained attribute for generic objects
! 
! 
! The @code{Constrained} attribute is permitted for objects of generic types. The
! result indicates whether the corresponding actual is constrained.
! 
! @node Static aspect on intrinsic functions,,Constrained attribute for generic objects,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions static-aspect-on-intrinsic-functions}@anchor{449}
! @subsection @code{Static} aspect on intrinsic functions
! 
! 
! The Ada 202x @code{Static} aspect can be specified on Intrinsic imported functions
! and the compiler will evaluate some of these intrinsics statically, in
! particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
! 
! @node Experimental Language Extensions,,Curated Extensions,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6a}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{44a}
! @section Experimental Language Extensions
! 
! 
! @menu
! * Pragma Storage_Model:: 
! * Simpler accessibility model:: 
! 
! @end menu
! 
! @node Pragma Storage_Model,Simpler accessibility model,,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions pragma-storage-model}@anchor{44b}
! @subsection Pragma Storage_Model
! 
! 
! This feature proposes to redesign the concepts of Storage Pools into a more
! efficient model allowing higher performances and easier integration with low
! footprint embedded run-times.
! 
! It also extends it to support distributed memory models, in particular to
! support interactions with GPU.
! 
! Here is a link to the full RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-storage-model.rst}
! 
! @node Simpler accessibility model,,Pragma Storage_Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{44c}
! @subsection Simpler accessibility model
! 
! 
! The goal of this feature is to restore a common understanding of accessibility
! rules for implementers and users alike. The new rules should both be effective
! at preventing errors and feel natural and compatible in an Ada environment
! while removing dynamic accessibility checking.
! 
! Here is a link to the full RFC:
! @indicateurl{https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-simpler-accessibility.md}
! 
! @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{44d}@anchor{gnat_rm/security_hardening_features id1}@anchor{44e}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
*************** change.
*** 28678,28684 ****
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{42d}
  @section Register Scrubbing
  
  
--- 29392,29398 ----
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{44f}
  @section Register Scrubbing
  
  
*************** pragma Machine_Attribute (Foo, "zero_cal
*** 28699,28704 ****
--- 29413,29424 ----
  function Bar return Integer;
  pragma Machine_Attribute (Bar, "zero_call_used_regs", "all");
  --  Before returning, Bar scrubs all call-clobbered registers.
+ 
+ function Baz return Integer;
+ pragma Machine_Attribute (Bar, "zero_call_used_regs", "leafy");
+ --  Before returning, Bar scrubs call-clobbered registers, either
+ --  those it uses itself, if it can be identified as a leaf
+ --  function, or all of them otherwise.
  @end example
  
  For usage and more details on the command-line option, on the
*************** programming languages, see @cite{Using t
*** 28708,28714 ****
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{42e}
  @section Stack Scrubbing
  
  
--- 29428,29434 ----
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{450}
  @section Stack Scrubbing
  
  
*************** Bar_Callable_Ptr.
*** 28852,28858 ****
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{42f}
  @section Hardened Conditionals
  
  
--- 29572,29578 ----
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{451}
  @section Hardened Conditionals
  
  
*************** be used with other programming languages
*** 28942,28948 ****
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{430}
  @section Hardened Booleans
  
  
--- 29662,29668 ----
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{452}
  @section Hardened Booleans
  
  
*************** and more details on that attribute, see
*** 29003,29009 ****
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{431}
  @section Control Flow Redundancy
  
  
--- 29723,29729 ----
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{453}
  @section Control Flow Redundancy
  
  
*************** basic blocks take note as control flows
*** 29017,29022 ****
--- 29737,29747 ----
  returning, subprograms verify that the taken notes are consistent with
  the control-flow graph.
  
+ The performance impact of verification on leaf subprograms can be much
+ higher, while the averted risks are much lower on them.
+ Instrumentation can be disabled for leaf subprograms with
+ @code{-fhardcfr-skip-leaf}.
+ 
  Functions with too many basic blocks, or with multiple return points,
  call a run-time function to perform the verification.  Other functions
  perform the verification inline before returning.
*************** exception
*** 29136,29152 ****
  end;
  @end example
  
! Verification may also be performed before No_Return calls, whether
! only nothrow ones, with
! @code{-fhardcfr-check-noreturn-calls=nothrow}, or all of them, with
! @code{-fhardcfr-check-noreturn-calls=always}.  The default is
! @code{-fhardcfr-check-noreturn-calls=never} for this feature, that
! disables checking before No_Return calls.
  
  When a No_Return call returns control to its caller through an
  exception, verification may have already been performed before the
! call, if @code{-fhardcfr-check-noreturn-calls=always} is in effect.
! The compiler arranges for already-checked No_Return calls without a
  preexisting handler to bypass the implicitly-added cleanup handler and
  thus the redundant check, but a local exception or cleanup handler, if
  present, will modify the set of visited blocks, and checking will take
--- 29861,29880 ----
  end;
  @end example
  
! Verification may also be performed before No_Return calls, whether all
! of them, with @code{-fhardcfr-check-noreturn-calls=always}; all but
! internal subprograms involved in exception-raising or -reraising or
! subprograms explicitly marked with both @code{No_Return} and
! @code{Machine_Attribute} @code{expected_throw} pragmas, with
! @code{-fhardcfr-check-noreturn-calls=no-xthrow} (default); only
! nothrow ones, with @code{-fhardcfr-check-noreturn-calls=nothrow};
! or none, with @code{-fhardcfr-check-noreturn-calls=never}.
  
  When a No_Return call returns control to its caller through an
  exception, verification may have already been performed before the
! call, if @code{-fhardcfr-check-noreturn-calls=always} or
! @code{-fhardcfr-check-noreturn-calls=no-xthrow} is in effect.  The
! compiler arranges for already-checked No_Return calls without a
  preexisting handler to bypass the implicitly-added cleanup handler and
  thus the redundant check, but a local exception or cleanup handler, if
  present, will modify the set of visited blocks, and checking will take
*************** see @cite{Using the GNU Compiler Collect
*** 29163,29169 ****
  can be used with other programming languages supported by GCC.
  
  @node Obsolescent Features,Compatibility and Porting Guide,Security Hardening Features,Top
! @anchor{gnat_rm/obsolescent_features doc}@anchor{432}@anchor{gnat_rm/obsolescent_features id1}@anchor{433}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
--- 29891,29897 ----
  can be used with other programming languages supported by GCC.
  
  @node Obsolescent Features,Compatibility and Porting Guide,Security Hardening Features,Top
! @anchor{gnat_rm/obsolescent_features doc}@anchor{454}@anchor{gnat_rm/obsolescent_features id1}@anchor{455}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
*************** compatibility purposes.
*** 29182,29188 ****
  @end menu
  
  @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{434}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{435}
  @section pragma No_Run_Time
  
  
--- 29910,29916 ----
  @end menu
  
  @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{456}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{457}
  @section pragma No_Run_Time
  
  
*************** preferred usage is to use an appropriate
*** 29195,29201 ****
  includes just those features that are to be made accessible.
  
  @node pragma Ravenscar,pragma Restricted_Run_Time,pragma No_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id3}@anchor{436}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{437}
  @section pragma Ravenscar
  
  
--- 29923,29929 ----
  includes just those features that are to be made accessible.
  
  @node pragma Ravenscar,pragma Restricted_Run_Time,pragma No_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id3}@anchor{458}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{459}
  @section pragma Ravenscar
  
  
*************** The pragma @code{Ravenscar} has exactly
*** 29204,29210 ****
  is part of the new Ada 2005 standard.
  
  @node pragma Restricted_Run_Time,pragma Task_Info,pragma Ravenscar,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id4}@anchor{438}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{439}
  @section pragma Restricted_Run_Time
  
  
--- 29932,29938 ----
  is part of the new Ada 2005 standard.
  
  @node pragma Restricted_Run_Time,pragma Task_Info,pragma Ravenscar,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id4}@anchor{45a}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{45b}
  @section pragma Restricted_Run_Time
  
  
*************** preferred since the Ada 2005 pragma @cod
*** 29214,29220 ****
  this kind of implementation dependent addition.
  
  @node pragma Task_Info,package System Task_Info s-tasinf ads,pragma Restricted_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id5}@anchor{43a}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{43b}
  @section pragma Task_Info
  
  
--- 29942,29948 ----
  this kind of implementation dependent addition.
  
  @node pragma Task_Info,package System Task_Info s-tasinf ads,pragma Restricted_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id5}@anchor{45c}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{45d}
  @section pragma Task_Info
  
  
*************** in the spec of package System.Task_Info
*** 29240,29246 ****
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{43c}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{43d}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
--- 29968,29974 ----
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{45e}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{45f}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
*************** to support the @code{Task_Info} pragma.
*** 29250,29256 ****
  standard replacement for GNAT’s @code{Task_Info} functionality.
  
  @node Compatibility and Porting Guide,GNU Free Documentation License,Obsolescent Features,Top
! @anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{43e}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{43f}
  @chapter Compatibility and Porting Guide
  
  
--- 29978,29984 ----
  standard replacement for GNAT’s @code{Task_Info} functionality.
  
  @node Compatibility and Porting Guide,GNU Free Documentation License,Obsolescent Features,Top
! @anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{460}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{461}
  @chapter Compatibility and Porting Guide
  
  
*************** applications developed in other Ada envi
*** 29272,29278 ****
  @end menu
  
  @node Writing Portable Fixed-Point Declarations,Compatibility with Ada 83,,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{440}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{441}
  @section Writing Portable Fixed-Point Declarations
  
  
--- 30000,30006 ----
  @end menu
  
  @node Writing Portable Fixed-Point Declarations,Compatibility with Ada 83,,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{462}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{463}
  @section Writing Portable Fixed-Point Declarations
  
  
*************** If you follow this scheme you will be gu
*** 29394,29400 ****
  types will be portable.
  
  @node Compatibility with Ada 83,Compatibility between Ada 95 and Ada 2005,Writing Portable Fixed-Point Declarations,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{442}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{443}
  @section Compatibility with Ada 83
  
  
--- 30122,30128 ----
  types will be portable.
  
  @node Compatibility with Ada 83,Compatibility between Ada 95 and Ada 2005,Writing Portable Fixed-Point Declarations,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{464}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{465}
  @section Compatibility with Ada 83
  
  
*************** following subsections treat the most lik
*** 29422,29428 ****
  @end menu
  
  @node Legal Ada 83 programs that are illegal in Ada 95,More deterministic semantics,,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{444}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{445}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
--- 30150,30156 ----
  @end menu
  
  @node Legal Ada 83 programs that are illegal in Ada 95,More deterministic semantics,,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{466}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{467}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
*************** the fix is usually simply to add the @co
*** 29522,29528 ****
  @end itemize
  
  @node More deterministic semantics,Changed semantics,Legal Ada 83 programs that are illegal in Ada 95,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{446}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{447}
  @subsection More deterministic semantics
  
  
--- 30250,30256 ----
  @end itemize
  
  @node More deterministic semantics,Changed semantics,Legal Ada 83 programs that are illegal in Ada 95,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{468}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{469}
  @subsection More deterministic semantics
  
  
*************** which open select branches are executed.
*** 29550,29556 ****
  @end itemize
  
  @node Changed semantics,Other language compatibility issues,More deterministic semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{448}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{449}
  @subsection Changed semantics
  
  
--- 30278,30284 ----
  @end itemize
  
  @node Changed semantics,Other language compatibility issues,More deterministic semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{46a}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{46b}
  @subsection Changed semantics
  
  
*************** covers only the restricted range.
*** 29592,29598 ****
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{44a}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{44b}
  @subsection Other language compatibility issues
  
  
--- 30320,30326 ----
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{46c}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{46d}
  @subsection Other language compatibility issues
  
  
*************** include @code{pragma Interface} and the
*** 29625,29631 ****
  @end itemize
  
  @node Compatibility between Ada 95 and Ada 2005,Implementation-dependent characteristics,Compatibility with Ada 83,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{44c}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{44d}
  @section Compatibility between Ada 95 and Ada 2005
  
  
--- 30353,30359 ----
  @end itemize
  
  @node Compatibility between Ada 95 and Ada 2005,Implementation-dependent characteristics,Compatibility with Ada 83,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{46e}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{46f}
  @section Compatibility between Ada 95 and Ada 2005
  
  
*************** can declare a function returning a value
*** 29697,29703 ****
  @end itemize
  
  @node Implementation-dependent characteristics,Compatibility with Other Ada Systems,Compatibility between Ada 95 and Ada 2005,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{44e}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{44f}
  @section Implementation-dependent characteristics
  
  
--- 30425,30431 ----
  @end itemize
  
  @node Implementation-dependent characteristics,Compatibility with Other Ada Systems,Compatibility between Ada 95 and Ada 2005,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{470}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{471}
  @section Implementation-dependent characteristics
  
  
*************** transition from certain Ada 83 compilers
*** 29720,29726 ****
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{450}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{451}
  @subsection Implementation-defined pragmas
  
  
--- 30448,30454 ----
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{472}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{473}
  @subsection Implementation-defined pragmas
  
  
*************** avoiding compiler rejection of units tha
*** 29742,29748 ****
  relevant in a GNAT context and hence are not otherwise implemented.
  
  @node Implementation-defined attributes,Libraries,Implementation-defined pragmas,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{452}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{453}
  @subsection Implementation-defined attributes
  
  
--- 30470,30476 ----
  relevant in a GNAT context and hence are not otherwise implemented.
  
  @node Implementation-defined attributes,Libraries,Implementation-defined pragmas,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{474}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{475}
  @subsection Implementation-defined attributes
  
  
*************** Ada 83, GNAT supplies the attributes @co
*** 29756,29762 ****
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{454}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{455}
  @subsection Libraries
  
  
--- 30484,30490 ----
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{476}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{477}
  @subsection Libraries
  
  
*************** be preferable to retrofit the applicatio
*** 29785,29791 ****
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{456}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{457}
  @subsection Elaboration order
  
  
--- 30513,30519 ----
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{478}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{479}
  @subsection Elaboration order
  
  
*************** pragmas either globally (as an effect of
*** 29821,29827 ****
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{458}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{459}
  @subsection Target-specific aspects
  
  
--- 30549,30555 ----
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{47a}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{47b}
  @subsection Target-specific aspects
  
  
*************** on the robustness of the original design
*** 29834,29843 ****
  Ada 2005 and Ada 2012) are sometimes
  incompatible with typical Ada 83 compiler practices regarding implicit
  packing, the meaning of the Size attribute, and the size of access values.
! GNAT’s approach to these issues is described in @ref{45a,,Representation Clauses}.
  
  @node Compatibility with Other Ada Systems,Representation Clauses,Implementation-dependent characteristics,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{45b}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{45c}
  @section Compatibility with Other Ada Systems
  
  
--- 30562,30571 ----
  Ada 2005 and Ada 2012) are sometimes
  incompatible with typical Ada 83 compiler practices regarding implicit
  packing, the meaning of the Size attribute, and the size of access values.
! GNAT’s approach to these issues is described in @ref{47c,,Representation Clauses}.
  
  @node Compatibility with Other Ada Systems,Representation Clauses,Implementation-dependent characteristics,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{47d}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{47e}
  @section Compatibility with Other Ada Systems
  
  
*************** far beyond this minimal set, as describe
*** 29880,29886 ****
  @end itemize
  
  @node Representation Clauses,Compatibility with HP Ada 83,Compatibility with Other Ada Systems,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{45d}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{45a}
  @section Representation Clauses
  
  
--- 30608,30614 ----
  @end itemize
  
  @node Representation Clauses,Compatibility with HP Ada 83,Compatibility with Other Ada Systems,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{47f}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{47c}
  @section Representation Clauses
  
  
*************** with thin pointers.
*** 29973,29979 ****
  @end itemize
  
  @node Compatibility with HP Ada 83,,Representation Clauses,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{45e}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{45f}
  @section Compatibility with HP Ada 83
  
  
--- 30701,30707 ----
  @end itemize
  
  @node Compatibility with HP Ada 83,,Representation Clauses,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{480}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{481}
  @section Compatibility with HP Ada 83
  
  
*************** extension of package System.
*** 30003,30009 ****
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{460}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{461}
  @chapter GNU Free Documentation License
  
  
--- 30731,30737 ----
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{482}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{483}
  @chapter GNU Free Documentation License
  
  
diff -Nrcpad gcc-13.2.0/gcc/ada/gnat_ugn.texi gcc-14.1.0/gcc/ada/gnat_ugn.texi
*** gcc-13.2.0/gcc/ada/gnat_ugn.texi	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnat_ugn.texi	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  @setfilename gnat_ugn.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.2.3.@*
  @end ifinfo
  @settitle GNAT User's Guide for Native Platforms
  @defindex ge
--- 3,9 ----
  @setfilename gnat_ugn.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 5.3.0.@*
  @end ifinfo
  @settitle GNAT User's Guide for Native Platforms
  @defindex ge
***************
*** 19,29 ****
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Jan 03, 2023
  
  AdaCore
  
! Copyright @copyright{} 2008-2023, Free Software Foundation
  @end quotation
  
  @end copying
--- 19,29 ----
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Apr 15, 2024
  
  AdaCore
  
! Copyright @copyright{} 2008-2024, Free Software Foundation
  @end quotation
  
  @end copying
*************** Mixed Language Programming
*** 198,203 ****
--- 198,204 ----
  * Interfacing to C:: 
  * Calling Conventions:: 
  * Building Mixed Ada and C++ Programs:: 
+ * Partition-Wide Settings:: 
  * Generating Ada Bindings for C and C++ headers:: 
  * Generating C Headers for Ada Specifications:: 
  
*************** Specifying a Run-Time Library
*** 431,436 ****
--- 432,438 ----
  GNU/Linux Topics
  
  * Required Packages on GNU/Linux:: 
+ * Position Independent Executable (PIE) Enabled by Default on Linux: Position Independent Executable PIE Enabled by Default on Linux. 
  * A GNU/Linux Debug Quirk:: 
  
  Microsoft Windows Topics
*************** using the GNU make utility with GNAT.
*** 589,600 ****
  
  @item 
  @ref{b,,GNAT Utility Programs} explains the various utility programs that
! are included in the GNAT environment
  
  @item 
  @ref{c,,GNAT and Program Execution} covers a number of topics related to
! running, debugging, and tuning the performace of programs developed
! with GNAT
  @end itemize
  
  Appendices cover several additional topics:
--- 591,602 ----
  
  @item 
  @ref{b,,GNAT Utility Programs} explains the various utility programs that
! are included in the GNAT environment.
  
  @item 
  @ref{c,,GNAT and Program Execution} covers a number of topics related to
! running, debugging, and tuning the performance of programs developed
! with GNAT.
  @end itemize
  
  Appendices cover several additional topics:
*************** Appendices cover several additional topi
*** 605,611 ****
  @item 
  @ref{d,,Platform-Specific Information} describes the different run-time
  library implementations and also presents information on how to use
! GNAT on several specific platforms
  
  @item 
  @ref{e,,Example of Binder Output File} shows the source code for the binder
--- 607,613 ----
  @item 
  @ref{d,,Platform-Specific Information} describes the different run-time
  library implementations and also presents information on how to use
! GNAT on several specific platforms.
  
  @item 
  @ref{e,,Example of Binder Output File} shows the source code for the binder
*************** lowercase equivalence.
*** 1287,1293 ****
  @item `ISO 8859-15 (Latin-9)'
  
  ISO 8859-15 (Latin-9) letters allowed in identifiers, with uppercase and
! lowercase equivalence
  @end table
  
  @geindex code page 437 (IBM PC)
--- 1289,1295 ----
  @item `ISO 8859-15 (Latin-9)'
  
  ISO 8859-15 (Latin-9) letters allowed in identifiers, with uppercase and
! lowercase equivalence.
  @end table
  
  @geindex code page 437 (IBM PC)
*************** characters (using uppercase letters) of
*** 1361,1382 ****
  example, ESC A345 is used to represent the wide character with code
  @code{16#A345#}.
  This scheme is compatible with use of the full Wide_Character set.
! 
! @item `Upper-Half Coding'
  
  @geindex Upper-Half Coding
  
  The wide character with encoding @code{16#abcd#} where the upper bit is on
  (in other words, ‘a’ is in the range 8-F) is represented as two bytes,
  @code{16#ab#} and @code{16#cd#}. The second byte cannot be a format control
  character, but is not required to be in the upper half. This method can
  be also used for shift-JIS or EUC, where the internal coding matches the
  external coding.
! 
! @item `Shift JIS Coding'
  
  @geindex Shift JIS Coding
  
  A wide character is represented by a two-character sequence,
  @code{16#ab#} and
  @code{16#cd#}, with the restrictions described for upper-half encoding as
--- 1363,1392 ----
  example, ESC A345 is used to represent the wide character with code
  @code{16#A345#}.
  This scheme is compatible with use of the full Wide_Character set.
! @end table
  
  @geindex Upper-Half Coding
  
+ 
+ @table @asis
+ 
+ @item `Upper-Half Coding'
+ 
  The wide character with encoding @code{16#abcd#} where the upper bit is on
  (in other words, ‘a’ is in the range 8-F) is represented as two bytes,
  @code{16#ab#} and @code{16#cd#}. The second byte cannot be a format control
  character, but is not required to be in the upper half. This method can
  be also used for shift-JIS or EUC, where the internal coding matches the
  external coding.
! @end table
  
  @geindex Shift JIS Coding
  
+ 
+ @table @asis
+ 
+ @item `Shift JIS Coding'
+ 
  A wide character is represented by a two-character sequence,
  @code{16#ab#} and
  @code{16#cd#}, with the restrictions described for upper-half encoding as
*************** described above. The internal character
*** 1384,1394 ****
  character according to the standard algorithm for Shift-JIS
  conversion. Only characters defined in the JIS code set table can be
  used with this encoding method.
! 
! @item `EUC Coding'
  
  @geindex EUC Coding
  
  A wide character is represented by a two-character sequence
  @code{16#ab#} and
  @code{16#cd#}, with both characters being in the upper half. The internal
--- 1394,1408 ----
  character according to the standard algorithm for Shift-JIS
  conversion. Only characters defined in the JIS code set table can be
  used with this encoding method.
! @end table
  
  @geindex EUC Coding
  
+ 
+ @table @asis
+ 
+ @item `EUC Coding'
+ 
  A wide character is represented by a two-character sequence
  @code{16#ab#} and
  @code{16#cd#}, with both characters being in the upper half. The internal
*************** Task_Dispatching_Policy
*** 2866,2871 ****
--- 2880,2886 ----
  Unevaluated_Use_Of_Old
  Unsuppress
  Use_VADS_Size
+ User_Aspect_Definition
  Validity_Checks
  Warning_As_Error
  Warnings
*************** default, that contains calls to the elab
*** 3230,3237 ****
  compilation unit that require them, followed by
  a call to the main program. This Ada program is compiled to generate the
  object file for the main program. The name of
! the Ada file is @code{b~xxx}.adb` (with the corresponding spec
! @code{b~xxx}.ads`) where @code{xxx} is the name of the
  main program unit.
  
  Finally, the linker is used to build the resulting executable program,
--- 3245,3252 ----
  compilation unit that require them, followed by
  a call to the main program. This Ada program is compiled to generate the
  object file for the main program. The name of
! the Ada file is @code{b~xxx.adb} (with the corresponding spec
! @code{b~xxx.ads}) where @code{xxx} is the name of the
  main program unit.
  
  Finally, the linker is used to build the resulting executable program,
*************** process (see the `Installing a Library w
*** 3469,3475 ****
  When project files are not an option, it is also possible, but not recommended,
  to install the library so that the sources needed to use the library are on the
  Ada source path and the ALI files & libraries be on the Ada Object path (see
! @ref{73,,Search Paths and the Run-Time Library (RTL)}. Alternatively, the system
  administrator can place general-purpose libraries in the default compiler
  paths, by specifying the libraries’ location in the configuration files
  @code{ada_source_path} and @code{ada_object_path}. These configuration files
--- 3484,3490 ----
  When project files are not an option, it is also possible, but not recommended,
  to install the library so that the sources needed to use the library are on the
  Ada source path and the ALI files & libraries be on the Ada Object path (see
! @ref{73,,Search Paths and the Run-Time Library (RTL)}). Alternatively, the system
  administrator can place general-purpose libraries in the default compiler
  paths, by specifying the libraries’ location in the configuration files
  @code{ada_source_path} and @code{ada_object_path}. These configuration files
*************** finalization of all Ada libraries must b
*** 3855,3860 ****
--- 3870,3878 ----
  No call to these libraries or to the Ada run-time library should be made
  after the finalization phase.
  
+ Information on limitations of binding Ada code in non-Ada contexts can be
+ found under @ref{7e,,Binding with Non-Ada Main Programs}.
+ 
  Note also that special care must be taken with multi-tasks
  applications. The initialization and finalization routines are not
  protected against concurrent access. If such requirement is needed it
*************** must be ensured at the application level
*** 3862,3868 ****
  system services like a mutex or a critical-section.
  
  @node Restrictions in Stand-alone Libraries,,Creating a Stand-alone Library to be used in a non-Ada context,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id45}@anchor{7e}@anchor{gnat_ugn/the_gnat_compilation_model restrictions-in-stand-alone-libraries}@anchor{7f}
  @subsubsection Restrictions in Stand-alone Libraries
  
  
--- 3880,3886 ----
  system services like a mutex or a critical-section.
  
  @node Restrictions in Stand-alone Libraries,,Creating a Stand-alone Library to be used in a non-Ada context,Stand-alone Ada Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id45}@anchor{7f}@anchor{gnat_ugn/the_gnat_compilation_model restrictions-in-stand-alone-libraries}@anchor{80}
  @subsubsection Restrictions in Stand-alone Libraries
  
  
*************** In practice these attributes are rarely
*** 3908,3914 ****
  to be a consideration.
  
  @node Rebuilding the GNAT Run-Time Library,,Stand-alone Ada Libraries,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id46}@anchor{80}@anchor{gnat_ugn/the_gnat_compilation_model rebuilding-the-gnat-run-time-library}@anchor{81}
  @subsection Rebuilding the GNAT Run-Time Library
  
  
--- 3926,3932 ----
  to be a consideration.
  
  @node Rebuilding the GNAT Run-Time Library,,Stand-alone Ada Libraries,GNAT and Libraries
! @anchor{gnat_ugn/the_gnat_compilation_model id46}@anchor{81}@anchor{gnat_ugn/the_gnat_compilation_model rebuilding-the-gnat-run-time-library}@anchor{82}
  @subsection Rebuilding the GNAT Run-Time Library
  
  
*************** experiments or debugging, and is not sup
*** 3944,3950 ****
  @geindex Conditional compilation
  
  @node Conditional Compilation,Mixed Language Programming,GNAT and Libraries,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model conditional-compilation}@anchor{2b}@anchor{gnat_ugn/the_gnat_compilation_model id47}@anchor{82}
  @section Conditional Compilation
  
  
--- 3962,3968 ----
  @geindex Conditional compilation
  
  @node Conditional Compilation,Mixed Language Programming,GNAT and Libraries,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model conditional-compilation}@anchor{2b}@anchor{gnat_ugn/the_gnat_compilation_model id47}@anchor{83}
  @section Conditional Compilation
  
  
*************** gnatprep preprocessor utility.
*** 3961,3967 ****
  @end menu
  
  @node Modeling Conditional Compilation in Ada,Preprocessing with gnatprep,,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id48}@anchor{83}@anchor{gnat_ugn/the_gnat_compilation_model modeling-conditional-compilation-in-ada}@anchor{84}
  @subsection Modeling Conditional Compilation in Ada
  
  
--- 3979,3985 ----
  @end menu
  
  @node Modeling Conditional Compilation in Ada,Preprocessing with gnatprep,,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id48}@anchor{84}@anchor{gnat_ugn/the_gnat_compilation_model modeling-conditional-compilation-in-ada}@anchor{85}
  @subsection Modeling Conditional Compilation in Ada
  
  
*************** be achieved using Ada in general, and GN
*** 4012,4018 ****
  @end menu
  
  @node Use of Boolean Constants,Debugging - A Special Case,,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id49}@anchor{85}@anchor{gnat_ugn/the_gnat_compilation_model use-of-boolean-constants}@anchor{86}
  @subsubsection Use of Boolean Constants
  
  
--- 4030,4036 ----
  @end menu
  
  @node Use of Boolean Constants,Debugging - A Special Case,,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id49}@anchor{86}@anchor{gnat_ugn/the_gnat_compilation_model use-of-boolean-constants}@anchor{87}
  @subsubsection Use of Boolean Constants
  
  
*************** Then any other unit requiring conditiona
*** 4056,4062 ****
  of @code{Config} to make the constants visible.
  
  @node Debugging - A Special Case,Conditionalizing Declarations,Use of Boolean Constants,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model debugging-a-special-case}@anchor{87}@anchor{gnat_ugn/the_gnat_compilation_model id50}@anchor{88}
  @subsubsection Debugging - A Special Case
  
  
--- 4074,4080 ----
  of @code{Config} to make the constants visible.
  
  @node Debugging - A Special Case,Conditionalizing Declarations,Use of Boolean Constants,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model debugging-a-special-case}@anchor{88}@anchor{gnat_ugn/the_gnat_compilation_model id50}@anchor{89}
  @subsubsection Debugging - A Special Case
  
  
*************** end if;
*** 4169,4175 ****
  @end example
  
  @node Conditionalizing Declarations,Use of Alternative Implementations,Debugging - A Special Case,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model conditionalizing-declarations}@anchor{89}@anchor{gnat_ugn/the_gnat_compilation_model id51}@anchor{8a}
  @subsubsection Conditionalizing Declarations
  
  
--- 4187,4193 ----
  @end example
  
  @node Conditionalizing Declarations,Use of Alternative Implementations,Debugging - A Special Case,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model conditionalizing-declarations}@anchor{8a}@anchor{gnat_ugn/the_gnat_compilation_model id51}@anchor{8b}
  @subsubsection Conditionalizing Declarations
  
  
*************** constant was introduced as @code{System.
*** 4234,4240 ****
  need to define this one yourself).
  
  @node Use of Alternative Implementations,Preprocessing,Conditionalizing Declarations,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id52}@anchor{8b}@anchor{gnat_ugn/the_gnat_compilation_model use-of-alternative-implementations}@anchor{8c}
  @subsubsection Use of Alternative Implementations
  
  
--- 4252,4258 ----
  need to define this one yourself).
  
  @node Use of Alternative Implementations,Preprocessing,Conditionalizing Declarations,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id52}@anchor{8c}@anchor{gnat_ugn/the_gnat_compilation_model use-of-alternative-implementations}@anchor{8d}
  @subsubsection Use of Alternative Implementations
  
  
*************** The same idea can also be implemented us
*** 4368,4374 ****
  calls.
  
  @node Preprocessing,,Use of Alternative Implementations,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id53}@anchor{8d}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing}@anchor{8e}
  @subsubsection Preprocessing
  
  
--- 4386,4392 ----
  calls.
  
  @node Preprocessing,,Use of Alternative Implementations,Modeling Conditional Compilation in Ada
! @anchor{gnat_ugn/the_gnat_compilation_model id53}@anchor{8e}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing}@anchor{8f}
  @subsubsection Preprocessing
  
  
*************** The preprocessor may be used in two sepa
*** 4391,4397 ****
  separately from the compiler, to generate a separate output source file
  that is then fed to the compiler as a separate step. This is the
  @code{gnatprep} utility, whose use is fully described in
! @ref{8f,,Preprocessing with gnatprep}.
  
  The preprocessing language allows such constructs as
  
--- 4409,4415 ----
  separately from the compiler, to generate a separate output source file
  that is then fed to the compiler as a separate step. This is the
  @code{gnatprep} utility, whose use is fully described in
! @ref{90,,Preprocessing with gnatprep}.
  
  The preprocessing language allows such constructs as
  
*************** often more convenient. In this approach
*** 4411,4420 ****
  the compilation process. The compiler is given the preprocessor input which
  includes @code{#if} lines etc, and then the compiler carries out the
  preprocessing internally and processes the resulting output.
! For more details on this approach, see @ref{90,,Integrated Preprocessing}.
  
  @node Preprocessing with gnatprep,Integrated Preprocessing,Modeling Conditional Compilation in Ada,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id54}@anchor{91}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing-with-gnatprep}@anchor{8f}
  @subsection Preprocessing with @code{gnatprep}
  
  
--- 4429,4438 ----
  the compilation process. The compiler is given the preprocessor input which
  includes @code{#if} lines etc, and then the compiler carries out the
  preprocessing internally and processes the resulting output.
! For more details on this approach, see @ref{91,,Integrated Preprocessing}.
  
  @node Preprocessing with gnatprep,Integrated Preprocessing,Modeling Conditional Compilation in Ada,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id54}@anchor{92}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing-with-gnatprep}@anchor{90}
  @subsection Preprocessing with @code{gnatprep}
  
  
*************** For further discussion of conditional co
*** 4439,4445 ****
  @end menu
  
  @node Preprocessing Symbols,Using gnatprep,,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id55}@anchor{92}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing-symbols}@anchor{93}
  @subsubsection Preprocessing Symbols
  
  
--- 4457,4463 ----
  @end menu
  
  @node Preprocessing Symbols,Using gnatprep,,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id55}@anchor{93}@anchor{gnat_ugn/the_gnat_compilation_model preprocessing-symbols}@anchor{94}
  @subsubsection Preprocessing Symbols
  
  
*************** normal Ada (case-insensitive) rules for
*** 4449,4455 ****
  all characters need to be in the ASCII set (no accented letters).
  
  @node Using gnatprep,Switches for gnatprep,Preprocessing Symbols,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id56}@anchor{94}@anchor{gnat_ugn/the_gnat_compilation_model using-gnatprep}@anchor{95}
  @subsubsection Using @code{gnatprep}
  
  
--- 4467,4473 ----
  all characters need to be in the ASCII set (no accented letters).
  
  @node Using gnatprep,Switches for gnatprep,Preprocessing Symbols,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id56}@anchor{95}@anchor{gnat_ugn/the_gnat_compilation_model using-gnatprep}@anchor{96}
  @subsubsection Using @code{gnatprep}
  
  
*************** optional, and can be replaced by the use
*** 4507,4513 ****
  @end itemize
  
  @node Switches for gnatprep,Form of Definitions File,Using gnatprep,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id57}@anchor{96}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-gnatprep}@anchor{97}
  @subsubsection Switches for @code{gnatprep}
  
  
--- 4525,4531 ----
  @end itemize
  
  @node Switches for gnatprep,Form of Definitions File,Using gnatprep,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model id57}@anchor{97}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-gnatprep}@anchor{98}
  @subsubsection Switches for @code{gnatprep}
  
  
*************** deleted lines are completely removed fro
*** 4658,4664 ****
  specified, in which case -b is assumed.
  
  @node Form of Definitions File,Form of Input Text for gnatprep,Switches for gnatprep,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model form-of-definitions-file}@anchor{98}@anchor{gnat_ugn/the_gnat_compilation_model id58}@anchor{99}
  @subsubsection Form of Definitions File
  
  
--- 4676,4682 ----
  specified, in which case -b is assumed.
  
  @node Form of Definitions File,Form of Input Text for gnatprep,Switches for gnatprep,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model form-of-definitions-file}@anchor{99}@anchor{gnat_ugn/the_gnat_compilation_model id58}@anchor{9a}
  @subsubsection Form of Definitions File
  
  
*************** the usual @code{--},
*** 4688,4694 ****
  and comments may be added to the definitions lines.
  
  @node Form of Input Text for gnatprep,,Form of Definitions File,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model form-of-input-text-for-gnatprep}@anchor{9a}@anchor{gnat_ugn/the_gnat_compilation_model id59}@anchor{9b}
  @subsubsection Form of Input Text for @code{gnatprep}
  
  
--- 4706,4712 ----
  and comments may be added to the definitions lines.
  
  @node Form of Input Text for gnatprep,,Form of Definitions File,Preprocessing with gnatprep
! @anchor{gnat_ugn/the_gnat_compilation_model form-of-input-text-for-gnatprep}@anchor{9b}@anchor{gnat_ugn/the_gnat_compilation_model id59}@anchor{9c}
  @subsubsection Form of Input Text for @code{gnatprep}
  
  
*************** Header : String := $XYZ;
*** 4820,4826 ****
  and then the substitution will occur as desired.
  
  @node Integrated Preprocessing,,Preprocessing with gnatprep,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id60}@anchor{9c}@anchor{gnat_ugn/the_gnat_compilation_model integrated-preprocessing}@anchor{90}
  @subsection Integrated Preprocessing
  
  
--- 4838,4844 ----
  and then the substitution will occur as desired.
  
  @node Integrated Preprocessing,,Preprocessing with gnatprep,Conditional Compilation
! @anchor{gnat_ugn/the_gnat_compilation_model id60}@anchor{9d}@anchor{gnat_ugn/the_gnat_compilation_model integrated-preprocessing}@anchor{91}
  @subsection Integrated Preprocessing
  
  
*************** because @code{gnatmake} cannot compute t
*** 4881,4887 ****
  preprocessing.
  
  The actual preprocessing function is described in detail in
! @ref{8f,,Preprocessing with gnatprep}. This section explains the switches
  that relate to integrated preprocessing.
  
  @geindex -gnatep (gcc)
--- 4899,4905 ----
  preprocessing.
  
  The actual preprocessing function is described in detail in
! @ref{90,,Preprocessing with gnatprep}. This section explains the switches
  that relate to integrated preprocessing.
  
  @geindex -gnatep (gcc)
*************** lines starting with the character ‘*�
*** 4980,4986 ****
  
  After the file name or ‘*’, an optional literal string specifies the name of
  the definition file to be used for preprocessing
! (@ref{98,,Form of Definitions File}). The definition files are found by the
  compiler in one of the source directories. In some cases, when compiling
  a source in a directory other than the current directory, if the definition
  file is in the current directory, it may be necessary to add the current
--- 4998,5004 ----
  
  After the file name or ‘*’, an optional literal string specifies the name of
  the definition file to be used for preprocessing
! (@ref{99,,Form of Definitions File}). The definition files are found by the
  compiler in one of the source directories. In some cases, when compiling
  a source in a directory other than the current directory, if the definition
  file is in the current directory, it may be necessary to add the current
*************** the output file will be @code{foo.adb.pr
*** 5072,5078 ****
  @end table
  
  @node Mixed Language Programming,GNAT and Other Compilation Models,Conditional Compilation,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id61}@anchor{9d}@anchor{gnat_ugn/the_gnat_compilation_model mixed-language-programming}@anchor{2c}
  @section Mixed Language Programming
  
  
--- 5090,5096 ----
  @end table
  
  @node Mixed Language Programming,GNAT and Other Compilation Models,Conditional Compilation,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id61}@anchor{9e}@anchor{gnat_ugn/the_gnat_compilation_model mixed-language-programming}@anchor{2c}
  @section Mixed Language Programming
  
  
*************** with a focus on combining Ada with C or
*** 5085,5097 ****
  * Interfacing to C:: 
  * Calling Conventions:: 
  * Building Mixed Ada and C++ Programs:: 
  * Generating Ada Bindings for C and C++ headers:: 
  * Generating C Headers for Ada Specifications:: 
  
  @end menu
  
  @node Interfacing to C,Calling Conventions,,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model id62}@anchor{9e}@anchor{gnat_ugn/the_gnat_compilation_model interfacing-to-c}@anchor{9f}
  @subsection Interfacing to C
  
  
--- 5103,5116 ----
  * Interfacing to C:: 
  * Calling Conventions:: 
  * Building Mixed Ada and C++ Programs:: 
+ * Partition-Wide Settings:: 
  * Generating Ada Bindings for C and C++ headers:: 
  * Generating C Headers for Ada Specifications:: 
  
  @end menu
  
  @node Interfacing to C,Calling Conventions,,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model id62}@anchor{9f}@anchor{gnat_ugn/the_gnat_compilation_model interfacing-to-c}@anchor{a0}
  @subsection Interfacing to C
  
  
*************** $ gnatmake my_main.adb -largs file1.o fi
*** 5202,5208 ****
  If the main program is in a language other than Ada, then you may have
  more than one entry point into the Ada subsystem. You must use a special
  binder option to generate callable routines that initialize and
! finalize the Ada units (@ref{a0,,Binding with Non-Ada Main Programs}).
  Calls to the initialization and finalization routines must be inserted
  in the main program, or some other appropriate point in the code. The
  call to initialize the Ada units must occur before the first Ada
--- 5221,5227 ----
  If the main program is in a language other than Ada, then you may have
  more than one entry point into the Ada subsystem. You must use a special
  binder option to generate callable routines that initialize and
! finalize the Ada units (@ref{7e,,Binding with Non-Ada Main Programs}).
  Calls to the initialization and finalization routines must be inserted
  in the main program, or some other appropriate point in the code. The
  call to initialize the Ada units must occur before the first Ada
*************** elaboration of the GNAT components. Cons
*** 5365,5371 ****
  Ada compiler for further details on elaboration.
  
  However, it is not possible to mix the tasking run time of GNAT and
! HP Ada 83, All the tasking operations must either be entirely within
  GNAT compiled sections of the program, or entirely within HP Ada 83
  compiled sections of the program.
  @end table
--- 5384,5390 ----
  Ada compiler for further details on elaboration.
  
  However, it is not possible to mix the tasking run time of GNAT and
! HP Ada 83, all the tasking operations must either be entirely within
  GNAT compiled sections of the program, or entirely within HP Ada 83
  compiled sections of the program.
  @end table
*************** The corresponding operator declaration m
*** 5536,5559 ****
  that have the same root numeric type (for example, all three are long_float
  types). This simplifies the definition of operations that use type checking
  to perform dimensional checks:
- @end itemize
  
  @example
!   type Distance is new Long_Float;
!   type Time     is new Long_Float;
!   type Velocity is new Long_Float;
!   function "/" (D : Distance; T : Time)
!     return Velocity;
!   pragma Import (Intrinsic, "/");
  
  This common idiom is often programmed with a generic definition and an
  explicit body. The pragma makes it simpler to introduce such declarations.
  It incurs no overhead in compilation time or code size, because it is
  implemented as a single machine instruction.
- @end example
- 
- 
- @itemize *
  
  @item 
  General subprogram entities. This is used  to bind an Ada subprogram
--- 5555,5574 ----
  that have the same root numeric type (for example, all three are long_float
  types). This simplifies the definition of operations that use type checking
  to perform dimensional checks:
  
  @example
! type Distance is new Long_Float;
! type Time     is new Long_Float;
! type Velocity is new Long_Float;
! function "/" (D : Distance; T : Time)
!   return Velocity;
! pragma Import (Intrinsic, "/");
! @end example
  
  This common idiom is often programmed with a generic definition and an
  explicit body. The pragma makes it simpler to introduce such declarations.
  It incurs no overhead in compilation time or code size, because it is
  implemented as a single machine instruction.
  
  @item 
  General subprogram entities. This is used  to bind an Ada subprogram
*************** And from now on the identifier Fortran77
*** 5641,5647 ****
  identifier (for example in an @code{Import} pragma) with the same
  meaning as Fortran.
  
! @node Building Mixed Ada and C++ Programs,Generating Ada Bindings for C and C++ headers,Calling Conventions,Mixed Language Programming
  @anchor{gnat_ugn/the_gnat_compilation_model building-mixed-ada-and-c-programs}@anchor{a3}@anchor{gnat_ugn/the_gnat_compilation_model id64}@anchor{a4}
  @subsection Building Mixed Ada and C++ Programs
  
--- 5656,5662 ----
  identifier (for example in an @code{Import} pragma) with the same
  meaning as Fortran.
  
! @node Building Mixed Ada and C++ Programs,Partition-Wide Settings,Calling Conventions,Mixed Language Programming
  @anchor{gnat_ugn/the_gnat_compilation_model building-mixed-ada-and-c-programs}@anchor{a3}@anchor{gnat_ugn/the_gnat_compilation_model id64}@anchor{a4}
  @subsection Building Mixed Ada and C++ Programs
  
*************** $ gnatmake ada_unit -largs file1.o file2
*** 5723,5729 ****
  
  @item 
  Using GNAT and G++ from two different GCC installations: If both
! compilers are on the :envvar`PATH`, the previous method may be used. It is
  important to note that environment variables such as
  @geindex C_INCLUDE_PATH
  @geindex environment variable; C_INCLUDE_PATH
--- 5738,5747 ----
  
  @item 
  Using GNAT and G++ from two different GCC installations: If both
! compilers are on the 
! @geindex PATH
! @geindex environment variable; PATH
! @code{PATH}, the previous method may be used. It is
  important to note that environment variables such as
  @geindex C_INCLUDE_PATH
  @geindex environment variable; C_INCLUDE_PATH
*************** int main ()
*** 6377,6384 ****
  @}
  @end example
  
! @node Generating Ada Bindings for C and C++ headers,Generating C Headers for Ada Specifications,Building Mixed Ada and C++ Programs,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model generating-ada-bindings-for-c-and-c-headers}@anchor{a7}@anchor{gnat_ugn/the_gnat_compilation_model id70}@anchor{b0}
  @subsection Generating Ada Bindings for C and C++ headers
  
  
--- 6395,6462 ----
  @}
  @end example
  
! @node Partition-Wide Settings,Generating Ada Bindings for C and C++ headers,Building Mixed Ada and C++ Programs,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model id70}@anchor{b0}@anchor{gnat_ugn/the_gnat_compilation_model partition-wide-settings}@anchor{b1}
! @subsection Partition-Wide Settings
! 
! 
! When building a mixed-language application it is important to be aware that
! Ada enforces some partition-wide settings that may implicitly impact the
! behavior of the other languages.
! 
! This is the case of certain signals that are reserved to the
! implementation to implement proper Ada semantics (such as the behavior
! of @code{abort} statements).
! 
! It means that the Ada part of the application may override signal handlers
! that were previously installed by either the system or by other user code.
! 
! If your application requires that either system or user signals be preserved
! then you need to instruct the Ada part not to install its own signal handler.
! This is done using @code{pragma Interrupt_State} that provides a general
! mechanism for overriding such uses of interrupts.
! 
! The set of interrupts for which the Ada run-time library sets a specific signal
! handler is the following:
! 
! 
! @itemize *
! 
! @item 
! Ada.Interrupts.Names.SIGSEGV
! 
! @item 
! Ada.Interrupts.Names.SIGBUS
! 
! @item 
! Ada.Interrupts.Names.SIGFPE
! 
! @item 
! Ada.Interrupts.Names.SIGILL
! 
! @item 
! Ada.Interrupts.Names.SIGABRT
! @end itemize
! 
! The run-time library can be instructed not to install its signal handler for a
! particular signal by using the configuration pragma @code{Interrupt_State} in the
! Ada code. For example:
! 
! @example
! pragma Interrupt_State (Ada.Interrupts.Names.SIGSEGV, System);
! pragma Interrupt_State (Ada.Interrupts.Names.SIGBUS,  System);
! pragma Interrupt_State (Ada.Interrupts.Names.SIGFPE,  System);
! pragma Interrupt_State (Ada.Interrupts.Names.SIGILL,  System);
! pragma Interrupt_State (Ada.Interrupts.Names.SIGABRT, System);
! @end example
! 
! Obviously, if the Ada run-time system cannot set these handlers it comes with the
! drawback of not fully preserving Ada semantics. @code{SIGSEGV}, @code{SIGBUS}, @code{SIGFPE}
! and @code{SIGILL} are used to raise corresponding Ada exceptions in the application,
! while @code{SIGABRT} is used to asynchronously abort an action or a task.
! 
! @node Generating Ada Bindings for C and C++ headers,Generating C Headers for Ada Specifications,Partition-Wide Settings,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model generating-ada-bindings-for-c-and-c-headers}@anchor{a7}@anchor{gnat_ugn/the_gnat_compilation_model id71}@anchor{b2}
  @subsection Generating Ada Bindings for C and C++ headers
  
  
*************** even if your code is compiled using earl
*** 6429,6435 ****
  @end menu
  
  @node Running the Binding Generator,Generating Bindings for C++ Headers,,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model id71}@anchor{b1}@anchor{gnat_ugn/the_gnat_compilation_model running-the-binding-generator}@anchor{b2}
  @subsubsection Running the Binding Generator
  
  
--- 6507,6513 ----
  @end menu
  
  @node Running the Binding Generator,Generating Bindings for C++ Headers,,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model id72}@anchor{b3}@anchor{gnat_ugn/the_gnat_compilation_model running-the-binding-generator}@anchor{b4}
  @subsubsection Running the Binding Generator
  
  
*************** $ gcc -c -fdump-ada-spec readline1.h
*** 6495,6501 ****
  @end example
  
  @node Generating Bindings for C++ Headers,Switches,Running the Binding Generator,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model generating-bindings-for-c-headers}@anchor{b3}@anchor{gnat_ugn/the_gnat_compilation_model id72}@anchor{b4}
  @subsubsection Generating Bindings for C++ Headers
  
  
--- 6573,6579 ----
  @end example
  
  @node Generating Bindings for C++ Headers,Switches,Running the Binding Generator,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model generating-bindings-for-c-headers}@anchor{b5}@anchor{gnat_ugn/the_gnat_compilation_model id73}@anchor{b6}
  @subsubsection Generating Bindings for C++ Headers
  
  
*************** use Class_Dog;
*** 6596,6602 ****
  @end example
  
  @node Switches,,Generating Bindings for C++ Headers,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model switches}@anchor{b5}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-ada-binding-generation}@anchor{b6}
  @subsubsection Switches
  
  
--- 6674,6680 ----
  @end example
  
  @node Switches,,Generating Bindings for C++ Headers,Generating Ada Bindings for C and C++ headers
! @anchor{gnat_ugn/the_gnat_compilation_model switches}@anchor{b7}@anchor{gnat_ugn/the_gnat_compilation_model switches-for-ada-binding-generation}@anchor{b8}
  @subsubsection Switches
  
  
*************** Extract comments from headers and genera
*** 6644,6650 ****
  @end table
  
  @node Generating C Headers for Ada Specifications,,Generating Ada Bindings for C and C++ headers,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model generating-c-headers-for-ada-specifications}@anchor{b7}@anchor{gnat_ugn/the_gnat_compilation_model id73}@anchor{b8}
  @subsection Generating C Headers for Ada Specifications
  
  
--- 6722,6728 ----
  @end table
  
  @node Generating C Headers for Ada Specifications,,Generating Ada Bindings for C and C++ headers,Mixed Language Programming
! @anchor{gnat_ugn/the_gnat_compilation_model generating-c-headers-for-ada-specifications}@anchor{b9}@anchor{gnat_ugn/the_gnat_compilation_model id74}@anchor{ba}
  @subsection Generating C Headers for Ada Specifications
  
  
*************** Subprogram declarations
*** 6687,6693 ****
  @end menu
  
  @node Running the C Header Generator,,,Generating C Headers for Ada Specifications
! @anchor{gnat_ugn/the_gnat_compilation_model running-the-c-header-generator}@anchor{b9}
  @subsubsection Running the C Header Generator
  
  
--- 6765,6771 ----
  @end menu
  
  @node Running the C Header Generator,,,Generating C Headers for Ada Specifications
! @anchor{gnat_ugn/the_gnat_compilation_model running-the-c-header-generator}@anchor{bb}
  @subsubsection Running the C Header Generator
  
  
*************** You can then @code{include} @code{pack1.
*** 6755,6761 ****
  call subprograms, reference objects, and constants.
  
  @node GNAT and Other Compilation Models,Using GNAT Files with External Tools,Mixed Language Programming,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model gnat-and-other-compilation-models}@anchor{2d}@anchor{gnat_ugn/the_gnat_compilation_model id74}@anchor{ba}
  @section GNAT and Other Compilation Models
  
  
--- 6833,6839 ----
  call subprograms, reference objects, and constants.
  
  @node GNAT and Other Compilation Models,Using GNAT Files with External Tools,Mixed Language Programming,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model gnat-and-other-compilation-models}@anchor{2d}@anchor{gnat_ugn/the_gnat_compilation_model id75}@anchor{bc}
  @section GNAT and Other Compilation Models
  
  
*************** used for Ada 83.
*** 6771,6777 ****
  @end menu
  
  @node Comparison between GNAT and C/C++ Compilation Models,Comparison between GNAT and Conventional Ada Library Models,,GNAT and Other Compilation Models
! @anchor{gnat_ugn/the_gnat_compilation_model comparison-between-gnat-and-c-c-compilation-models}@anchor{bb}@anchor{gnat_ugn/the_gnat_compilation_model id75}@anchor{bc}
  @subsection Comparison between GNAT and C/C++ Compilation Models
  
  
--- 6849,6855 ----
  @end menu
  
  @node Comparison between GNAT and C/C++ Compilation Models,Comparison between GNAT and Conventional Ada Library Models,,GNAT and Other Compilation Models
! @anchor{gnat_ugn/the_gnat_compilation_model comparison-between-gnat-and-c-c-compilation-models}@anchor{bd}@anchor{gnat_ugn/the_gnat_compilation_model id76}@anchor{be}
  @subsection Comparison between GNAT and C/C++ Compilation Models
  
  
*************** elaboration, a C++ compiler would simply
*** 6805,6811 ****
  malfunctioned at run time.
  
  @node Comparison between GNAT and Conventional Ada Library Models,,Comparison between GNAT and C/C++ Compilation Models,GNAT and Other Compilation Models
! @anchor{gnat_ugn/the_gnat_compilation_model comparison-between-gnat-and-conventional-ada-library-models}@anchor{bd}@anchor{gnat_ugn/the_gnat_compilation_model id76}@anchor{be}
  @subsection Comparison between GNAT and Conventional Ada Library Models
  
  
--- 6883,6889 ----
  malfunctioned at run time.
  
  @node Comparison between GNAT and Conventional Ada Library Models,,Comparison between GNAT and C/C++ Compilation Models,GNAT and Other Compilation Models
! @anchor{gnat_ugn/the_gnat_compilation_model comparison-between-gnat-and-conventional-ada-library-models}@anchor{bf}@anchor{gnat_ugn/the_gnat_compilation_model id77}@anchor{c0}
  @subsection Comparison between GNAT and Conventional Ada Library Models
  
  
*************** of rules saying what source files must b
*** 6873,6879 ****
  compiled.
  
  @node Using GNAT Files with External Tools,,GNAT and Other Compilation Models,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id77}@anchor{bf}@anchor{gnat_ugn/the_gnat_compilation_model using-gnat-files-with-external-tools}@anchor{2e}
  @section Using GNAT Files with External Tools
  
  
--- 6951,6957 ----
  compiled.
  
  @node Using GNAT Files with External Tools,,GNAT and Other Compilation Models,The GNAT Compilation Model
! @anchor{gnat_ugn/the_gnat_compilation_model id78}@anchor{c1}@anchor{gnat_ugn/the_gnat_compilation_model using-gnat-files-with-external-tools}@anchor{2e}
  @section Using GNAT Files with External Tools
  
  
*************** used with tools designed for other langu
*** 6887,6893 ****
  @end menu
  
  @node Using Other Utility Programs with GNAT,The External Symbol Naming Scheme of GNAT,,Using GNAT Files with External Tools
! @anchor{gnat_ugn/the_gnat_compilation_model id78}@anchor{c0}@anchor{gnat_ugn/the_gnat_compilation_model using-other-utility-programs-with-gnat}@anchor{c1}
  @subsection Using Other Utility Programs with GNAT
  
  
--- 6965,6971 ----
  @end menu
  
  @node Using Other Utility Programs with GNAT,The External Symbol Naming Scheme of GNAT,,Using GNAT Files with External Tools
! @anchor{gnat_ugn/the_gnat_compilation_model id79}@anchor{c2}@anchor{gnat_ugn/the_gnat_compilation_model using-other-utility-programs-with-gnat}@anchor{c3}
  @subsection Using Other Utility Programs with GNAT
  
  
*************** gprof (a profiling program), gdb (the FS
*** 6902,6908 ****
  as Purify.
  
  @node The External Symbol Naming Scheme of GNAT,,Using Other Utility Programs with GNAT,Using GNAT Files with External Tools
! @anchor{gnat_ugn/the_gnat_compilation_model id79}@anchor{c2}@anchor{gnat_ugn/the_gnat_compilation_model the-external-symbol-naming-scheme-of-gnat}@anchor{c3}
  @subsection The External Symbol Naming Scheme of GNAT
  
  
--- 6980,6986 ----
  as Purify.
  
  @node The External Symbol Naming Scheme of GNAT,,Using Other Utility Programs with GNAT,Using GNAT Files with External Tools
! @anchor{gnat_ugn/the_gnat_compilation_model id80}@anchor{c4}@anchor{gnat_ugn/the_gnat_compilation_model the-external-symbol-naming-scheme-of-gnat}@anchor{c5}
  @subsection The External Symbol Naming Scheme of GNAT
  
  
*************** the external name of this procedure will
*** 6961,6979 ****
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node Building Executable Programs with GNAT,GNAT Utility Programs,The GNAT Compilation Model,Top
! @anchor{gnat_ugn/building_executable_programs_with_gnat doc}@anchor{c4}@anchor{gnat_ugn/building_executable_programs_with_gnat building-executable-programs-with-gnat}@anchor{a}@anchor{gnat_ugn/building_executable_programs_with_gnat id1}@anchor{c5}
  @chapter Building Executable Programs with GNAT
  
  
  This chapter describes first the gnatmake tool
! (@ref{c6,,Building with gnatmake}),
  which automatically determines the set of sources
  needed by an Ada compilation unit and executes the necessary
  (re)compilations, binding and linking.
  It also explains how to use each tool individually: the
! compiler (gcc, see @ref{c7,,Compiling with gcc}),
! binder (gnatbind, see @ref{c8,,Binding with gnatbind}),
! and linker (gnatlink, see @ref{c9,,Linking with gnatlink})
  to build executable programs.
  Finally, this chapter provides examples of
  how to make use of the general GNU make mechanism
--- 7039,7057 ----
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node Building Executable Programs with GNAT,GNAT Utility Programs,The GNAT Compilation Model,Top
! @anchor{gnat_ugn/building_executable_programs_with_gnat doc}@anchor{c6}@anchor{gnat_ugn/building_executable_programs_with_gnat building-executable-programs-with-gnat}@anchor{a}@anchor{gnat_ugn/building_executable_programs_with_gnat id1}@anchor{c7}
  @chapter Building Executable Programs with GNAT
  
  
  This chapter describes first the gnatmake tool
! (@ref{c8,,Building with gnatmake}),
  which automatically determines the set of sources
  needed by an Ada compilation unit and executes the necessary
  (re)compilations, binding and linking.
  It also explains how to use each tool individually: the
! compiler (gcc, see @ref{c9,,Compiling with gcc}),
! binder (gnatbind, see @ref{ca,,Binding with gnatbind}),
! and linker (gnatlink, see @ref{cb,,Linking with gnatlink})
  to build executable programs.
  Finally, this chapter provides examples of
  how to make use of the general GNU make mechanism
*************** in a GNAT context (see @ref{70,,Using th
*** 6992,6998 ****
  @end menu
  
  @node Building with gnatmake,Compiling with gcc,,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat building-with-gnatmake}@anchor{ca}@anchor{gnat_ugn/building_executable_programs_with_gnat the-gnat-make-program-gnatmake}@anchor{c6}
  @section Building with @code{gnatmake}
  
  
--- 7070,7076 ----
  @end menu
  
  @node Building with gnatmake,Compiling with gcc,,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat building-with-gnatmake}@anchor{cc}@anchor{gnat_ugn/building_executable_programs_with_gnat the-gnat-make-program-gnatmake}@anchor{c8}
  @section Building with @code{gnatmake}
  
  
*************** to @code{gnatmake}.
*** 7056,7062 ****
  @end menu
  
  @node Running gnatmake,Switches for gnatmake,,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id2}@anchor{cb}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatmake}@anchor{cc}
  @subsection Running @code{gnatmake}
  
  
--- 7134,7140 ----
  @end menu
  
  @node Running gnatmake,Switches for gnatmake,,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id2}@anchor{cd}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatmake}@anchor{ce}
  @subsection Running @code{gnatmake}
  
  
*************** All @code{gnatmake} output (except when
*** 7091,7097 ****
  @code{-M} switch is sent to @code{stdout}.
  
  @node Switches for gnatmake,Mode Switches for gnatmake,Running gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id3}@anchor{cd}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatmake}@anchor{ce}
  @subsection Switches for @code{gnatmake}
  
  
--- 7169,7175 ----
  @code{-M} switch is sent to @code{stdout}.
  
  @node Switches for gnatmake,Mode Switches for gnatmake,Running gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id3}@anchor{cf}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatmake}@anchor{d0}
  @subsection Switches for @code{gnatmake}
  
  
*************** Verbosity level High. Equivalent to -v.
*** 7733,7739 ****
  @item @code{-vP`x'}
  
  Indicate the verbosity of the parsing of GNAT project files.
! See @ref{cf,,Switches Related to Project Files}.
  @end table
  
  @geindex -x (gnatmake)
--- 7811,7817 ----
  @item @code{-vP`x'}
  
  Indicate the verbosity of the parsing of GNAT project files.
! See @ref{d1,,Switches Related to Project Files}.
  @end table
  
  @geindex -x (gnatmake)
*************** command line need to be sources of a pro
*** 7757,7763 ****
  Indicate that external variable @code{name} has the value @code{value}.
  The Project Manager will use this value for occurrences of
  @code{external(name)} when parsing the project file.
! @ref{cf,,Switches Related to Project Files}.
  @end table
  
  @geindex -z (gnatmake)
--- 7835,7841 ----
  Indicate that external variable @code{name} has the value @code{value}.
  The Project Manager will use this value for occurrences of
  @code{external(name)} when parsing the project file.
! @ref{d1,,Switches Related to Project Files}.
  @end table
  
  @geindex -z (gnatmake)
*************** The selected path is handled like a norm
*** 7928,7934 ****
  @end table
  
  @node Mode Switches for gnatmake,Notes on the Command Line,Switches for gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id4}@anchor{d0}@anchor{gnat_ugn/building_executable_programs_with_gnat mode-switches-for-gnatmake}@anchor{d1}
  @subsection Mode Switches for @code{gnatmake}
  
  
--- 8006,8012 ----
  @end table
  
  @node Mode Switches for gnatmake,Notes on the Command Line,Switches for gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id4}@anchor{d2}@anchor{gnat_ugn/building_executable_programs_with_gnat mode-switches-for-gnatmake}@anchor{d3}
  @subsection Mode Switches for @code{gnatmake}
  
  
*************** or @code{-largs}.
*** 7988,7994 ****
  @end table
  
  @node Notes on the Command Line,How gnatmake Works,Mode Switches for gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id5}@anchor{d2}@anchor{gnat_ugn/building_executable_programs_with_gnat notes-on-the-command-line}@anchor{d3}
  @subsection Notes on the Command Line
  
  
--- 8066,8072 ----
  @end table
  
  @node Notes on the Command Line,How gnatmake Works,Mode Switches for gnatmake,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat id5}@anchor{d4}@anchor{gnat_ugn/building_executable_programs_with_gnat notes-on-the-command-line}@anchor{d5}
  @subsection Notes on the Command Line
  
  
*************** that the debugging information may be ou
*** 8058,8064 ****
  @end itemize
  
  @node How gnatmake Works,Examples of gnatmake Usage,Notes on the Command Line,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat how-gnatmake-works}@anchor{d4}@anchor{gnat_ugn/building_executable_programs_with_gnat id6}@anchor{d5}
  @subsection How @code{gnatmake} Works
  
  
--- 8136,8142 ----
  @end itemize
  
  @node How gnatmake Works,Examples of gnatmake Usage,Notes on the Command Line,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat how-gnatmake-works}@anchor{d6}@anchor{gnat_ugn/building_executable_programs_with_gnat id6}@anchor{d7}
  @subsection How @code{gnatmake} Works
  
  
*************** by @code{gnatmake}. It may be necessary
*** 8105,8124 ****
  -f.
  
  @node Examples of gnatmake Usage,,How gnatmake Works,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatmake-usage}@anchor{d6}@anchor{gnat_ugn/building_executable_programs_with_gnat id7}@anchor{d7}
  @subsection Examples of @code{gnatmake} Usage
  
  
  
  @table @asis
  
! @item `gnatmake hello.adb'
  
  Compile all files necessary to bind and link the main program
  @code{hello.adb} (containing unit @code{Hello}) and bind and link the
  resulting object files to generate an executable file @code{hello}.
  
! @item `gnatmake main1 main2 main3'
  
  Compile all files necessary to bind and link the main programs
  @code{main1.adb} (containing unit @code{Main1}), @code{main2.adb}
--- 8183,8202 ----
  -f.
  
  @node Examples of gnatmake Usage,,How gnatmake Works,Building with gnatmake
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatmake-usage}@anchor{d8}@anchor{gnat_ugn/building_executable_programs_with_gnat id7}@anchor{d9}
  @subsection Examples of @code{gnatmake} Usage
  
  
  
  @table @asis
  
! @item @code{gnatmake hello.adb}
  
  Compile all files necessary to bind and link the main program
  @code{hello.adb} (containing unit @code{Hello}) and bind and link the
  resulting object files to generate an executable file @code{hello}.
  
! @item @code{gnatmake main1 main2 main3}
  
  Compile all files necessary to bind and link the main programs
  @code{main1.adb} (containing unit @code{Main1}), @code{main2.adb}
*************** Compile all files necessary to bind and
*** 8127,8133 ****
  to generate three executable files @code{main1},
  @code{main2}  and @code{main3}.
  
! @item `gnatmake -q Main_Unit -cargs -O2 -bargs -l'
  
  Compile all files necessary to bind and link the main program unit
  @code{Main_Unit} (from file @code{main_unit.adb}). All compilations will
--- 8205,8211 ----
  to generate three executable files @code{main1},
  @code{main2}  and @code{main3}.
  
! @item @code{gnatmake -q Main_Unit -cargs -O2 -bargs -l}
  
  Compile all files necessary to bind and link the main program unit
  @code{Main_Unit} (from file @code{main_unit.adb}). All compilations will
*************** displaying commands it is executing.
*** 8137,8143 ****
  @end table
  
  @node Compiling with gcc,Compiler Switches,Building with gnatmake,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-with-gcc}@anchor{c7}@anchor{gnat_ugn/building_executable_programs_with_gnat id8}@anchor{d8}
  @section Compiling with @code{gcc}
  
  
--- 8215,8221 ----
  @end table
  
  @node Compiling with gcc,Compiler Switches,Building with gnatmake,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-with-gcc}@anchor{c9}@anchor{gnat_ugn/building_executable_programs_with_gnat id8}@anchor{da}
  @section Compiling with @code{gcc}
  
  
*************** that can be used to control the behavior
*** 8154,8160 ****
  @end menu
  
  @node Compiling Programs,Search Paths and the Run-Time Library RTL,,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-programs}@anchor{d9}@anchor{gnat_ugn/building_executable_programs_with_gnat id9}@anchor{da}
  @subsection Compiling Programs
  
  
--- 8232,8238 ----
  @end menu
  
  @node Compiling Programs,Search Paths and the Run-Time Library RTL,,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-programs}@anchor{db}@anchor{gnat_ugn/building_executable_programs_with_gnat id9}@anchor{dc}
  @subsection Compiling Programs
  
  
*************** the spec of a library unit which has a b
*** 8190,8196 ****
  subunits
  @end itemize
  
! because they are compiled as part of compiling related units. GNAT
  package specs
  when the corresponding body is compiled, and subunits when the parent is
  compiled.
--- 8268,8274 ----
  subunits
  @end itemize
  
! because they are compiled as part of compiling related units. GNAT compiles
  package specs
  when the corresponding body is compiled, and subunits when the parent is
  compiled.
*************** two output files in the current director
*** 8240,8247 ****
  file in any directory using an absolute or relative path specification
  containing the directory information.
  
- TESTING: the @code{--foobar`NN'} switch
- 
  @geindex gnat1
  
  @code{gcc} is actually a driver program that looks at the extensions of
--- 8318,8323 ----
*************** calls @code{gnat1} (the Ada compiler) tw
*** 8267,8277 ****
  The compiler generates two object files @code{x.o} and @code{y.o}
  and the two ALI files @code{x.ali} and @code{y.ali}.
  
! Any switches apply to all the files listed, see @ref{db,,Compiler Switches} for a
  list of available @code{gcc} switches.
  
  @node Search Paths and the Run-Time Library RTL,Order of Compilation Issues,Compiling Programs,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat id10}@anchor{dc}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-and-the-run-time-library-rtl}@anchor{73}
  @subsection Search Paths and the Run-Time Library (RTL)
  
  
--- 8343,8353 ----
  The compiler generates two object files @code{x.o} and @code{y.o}
  and the two ALI files @code{x.ali} and @code{y.ali}.
  
! Any switches apply to all the files listed, see @ref{dd,,Compiler Switches} for a
  list of available @code{gcc} switches.
  
  @node Search Paths and the Run-Time Library RTL,Order of Compilation Issues,Compiling Programs,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat id10}@anchor{de}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-and-the-run-time-library-rtl}@anchor{73}
  @subsection Search Paths and the Run-Time Library (RTL)
  
  
*************** names separated by colons (semicolons wh
*** 8328,8334 ****
  The content of the @code{ada_source_path} file which is part of the GNAT
  installation tree and is used to store standard libraries such as the
  GNAT Run Time Library (RTL) source files.
! @ref{72,,Installing a library}
  @end itemize
  
  Specifying the switch @code{-I-}
--- 8404,8410 ----
  The content of the @code{ada_source_path} file which is part of the GNAT
  installation tree and is used to store standard libraries such as the
  GNAT Run Time Library (RTL) source files.
! See also @ref{72,,Installing a library}.
  @end itemize
  
  Specifying the switch @code{-I-}
*************** in compiling sources from multiple direc
*** 8370,8376 ****
  development environments much more flexible.
  
  @node Order of Compilation Issues,Examples,Search Paths and the Run-Time Library RTL,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat id11}@anchor{dd}@anchor{gnat_ugn/building_executable_programs_with_gnat order-of-compilation-issues}@anchor{de}
  @subsection Order of Compilation Issues
  
  
--- 8446,8452 ----
  development environments much more flexible.
  
  @node Order of Compilation Issues,Examples,Search Paths and the Run-Time Library RTL,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat id11}@anchor{df}@anchor{gnat_ugn/building_executable_programs_with_gnat order-of-compilation-issues}@anchor{e0}
  @subsection Order of Compilation Issues
  
  
*************** described above), or you will receive a
*** 8411,8417 ****
  @end itemize
  
  @node Examples,,Order of Compilation Issues,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples}@anchor{df}@anchor{gnat_ugn/building_executable_programs_with_gnat id12}@anchor{e0}
  @subsection Examples
  
  
--- 8487,8493 ----
  @end itemize
  
  @node Examples,,Order of Compilation Issues,Compiling with gcc
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples}@anchor{e1}@anchor{gnat_ugn/building_executable_programs_with_gnat id12}@anchor{e2}
  @subsection Examples
  
  
*************** $ gcc -c -O2 -gnata xyz-def.adb
*** 8428,8434 ****
  @end example
  
  Compile the child unit package in file @code{xyz-def.adb} with extensive
! optimizations, and pragma @code{Assert}/@cite{Debug} statements
  enabled.
  
  @example
--- 8504,8510 ----
  @end example
  
  Compile the child unit package in file @code{xyz-def.adb} with extensive
! optimizations, and pragma @code{Assert}/@code{Debug} statements
  enabled.
  
  @example
*************** Compile the subunit in file @code{abc-de
*** 8439,8445 ****
  mode.
  
  @node Compiler Switches,Linker Switches,Compiling with gcc,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiler-switches}@anchor{e1}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gcc}@anchor{db}
  @section Compiler Switches
  
  
--- 8515,8521 ----
  mode.
  
  @node Compiler Switches,Linker Switches,Compiling with gcc,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiler-switches}@anchor{e3}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gcc}@anchor{dd}
  @section Compiler Switches
  
  
*************** compilation units.
*** 8478,8484 ****
  @end menu
  
  @node Alphabetical List of All Switches,Output and Error Message Control,,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat alphabetical-list-of-all-switches}@anchor{e2}@anchor{gnat_ugn/building_executable_programs_with_gnat id13}@anchor{e3}
  @subsection Alphabetical List of All Switches
  
  
--- 8554,8560 ----
  @end menu
  
  @node Alphabetical List of All Switches,Output and Error Message Control,,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat alphabetical-list-of-all-switches}@anchor{e4}@anchor{gnat_ugn/building_executable_programs_with_gnat id13}@anchor{e5}
  @subsection Alphabetical List of All Switches
  
  
*************** This can also speed up the compilation o
*** 8598,8604 ****
  size of the executable, compared with a traditional per-unit compilation
  with inlining across units enabled by the @code{-gnatn} switch.
  The drawback of this approach is that it may require more memory and that
! the debugging information generated by -g with it might be hardly usable.
  The switch, as well as the accompanying @code{-Ox} switches, must be
  specified both for the compilation and the link phases.
  If the @code{n} parameter is specified, the optimization and final code
--- 8674,8680 ----
  size of the executable, compared with a traditional per-unit compilation
  with inlining across units enabled by the @code{-gnatn} switch.
  The drawback of this approach is that it may require more memory and that
! the debugging information generated by @code{-g} with it might be hardly usable.
  The switch, as well as the accompanying @code{-Ox} switches, must be
  specified both for the compilation and the link phases.
  If the @code{n} parameter is specified, the optimization and final code
*************** and thus producing inferior code.
*** 8676,8682 ****
  
  Causes the compiler to avoid assumptions regarding non-aliasing
  of objects of different types. See
! @ref{e4,,Optimization and Strict Aliasing} for details.
  @end table
  
  @geindex -fno-strict-overflow (gcc)
--- 8752,8758 ----
  
  Causes the compiler to avoid assumptions regarding non-aliasing
  of objects of different types. See
! @ref{e6,,Optimization and Strict Aliasing} for details.
  @end table
  
  @geindex -fno-strict-overflow (gcc)
*************** for very peculiar cases of low-level pro
*** 8702,8708 ****
  @item @code{-fstack-check}
  
  Activates stack checking.
! See @ref{e5,,Stack Overflow Checking} for details.
  @end table
  
  @geindex -fstack-usage (gcc)
--- 8778,8784 ----
  @item @code{-fstack-check}
  
  Activates stack checking.
! See @ref{e7,,Stack Overflow Checking} for details.
  @end table
  
  @geindex -fstack-usage (gcc)
*************** See @ref{e5,,Stack Overflow Checking} fo
*** 8713,8719 ****
  @item @code{-fstack-usage}
  
  Makes the compiler output stack usage information for the program, on a
! per-subprogram basis. See @ref{e6,,Static Stack Usage Analysis} for details.
  @end table
  
  @geindex -g (gcc)
--- 8789,8795 ----
  @item @code{-fstack-usage}
  
  Makes the compiler output stack usage information for the program, on a
! per-subprogram basis. See @ref{e8,,Static Stack Usage Analysis} for details.
  @end table
  
  @geindex -g (gcc)
*************** Generate brief messages to @code{stderr}
*** 8853,8859 ****
  @item @code{-gnatB}
  
  Assume no invalid (bad) values except for ‘Valid attribute use
! (@ref{e7,,Validity Checking}).
  @end table
  
  @geindex -gnatc (gcc)
--- 8929,8935 ----
  @item @code{-gnatB}
  
  Assume no invalid (bad) values except for ‘Valid attribute use
! (@ref{e9,,Validity Checking}).
  @end table
  
  @geindex -gnatc (gcc)
*************** Generate CodePeer intermediate format (n
*** 8885,8891 ****
  This switch will generate an intermediate representation suitable for
  use by CodePeer (@code{.scil} files). This switch is not compatible with
  code generation (it will, among other things, disable some switches such
! as -gnatn, and enable others such as -gnata).
  @end table
  
  @geindex -gnatd (gcc)
--- 8961,8967 ----
  This switch will generate an intermediate representation suitable for
  use by CodePeer (@code{.scil} files). This switch is not compatible with
  code generation (it will, among other things, disable some switches such
! as @code{-gnatn}, and enable others such as @code{-gnata}).
  @end table
  
  @geindex -gnatd (gcc)
*************** Specify debug options for the compiler.
*** 8899,8907 ****
  the @code{-gnatd} specifies the specific debug options. The possible
  characters are 0-9, a-z, A-Z, optionally preceded by a dot or underscore.
  See compiler source file @code{debug.adb} for details of the implemented
! debug options. Certain debug options are relevant to applications
  programmers, and these are documented at appropriate points in this
! users guide.
  @end table
  
  @geindex -gnatD[nn] (gcc)
--- 8975,8983 ----
  the @code{-gnatd} specifies the specific debug options. The possible
  characters are 0-9, a-z, A-Z, optionally preceded by a dot or underscore.
  See compiler source file @code{debug.adb} for details of the implemented
! debug options. Certain debug options are relevant to application
  programmers, and these are documented at appropriate points in this
! user’s guide.
  @end table
  
  @geindex -gnatD[nn] (gcc)
*************** users guide.
*** 8914,8920 ****
  Create expanded source files for source level debugging. This switch
  also suppresses generation of cross-reference information
  (see @code{-gnatx}). Note that this switch is not allowed if a previous
! -gnatR switch has been given, since these two switches are not compatible.
  @end table
  
  @geindex -gnateA (gcc)
--- 8990,8996 ----
  Create expanded source files for source level debugging. This switch
  also suppresses generation of cross-reference information
  (see @code{-gnatx}). Note that this switch is not allowed if a previous
! @code{-gnatR} switch has been given, since these two switches are not compatible.
  @end table
  
  @geindex -gnateA (gcc)
*************** Disable atomic synchronization
*** 9013,9019 ****
  @item @code{-gnateDsymbol[=`value']}
  
  Defines a symbol, associated with @code{value}, for preprocessing.
! (@ref{90,,Integrated Preprocessing}).
  @end table
  
  @geindex -gnateE (gcc)
--- 9089,9095 ----
  @item @code{-gnateDsymbol[=`value']}
  
  Defines a symbol, associated with @code{value}, for preprocessing.
! (@ref{91,,Integrated Preprocessing}).
  @end table
  
  @geindex -gnateE (gcc)
*************** for unconstrained predefined types. See
*** 9063,9069 ****
  
  The @code{-gnatc} switch must always be specified before this switch, e.g.
  @code{-gnatceg}. Generate a C header from the Ada input file. See
! @ref{b7,,Generating C Headers for Ada Specifications} for more
  information.
  @end quotation
  
--- 9139,9145 ----
  
  The @code{-gnatc} switch must always be specified before this switch, e.g.
  @code{-gnatceg}. Generate a C header from the Ada input file. See
! @ref{b9,,Generating C Headers for Ada Specifications} for more
  information.
  @end quotation
  
*************** information.
*** 9077,9082 ****
--- 9153,9170 ----
  Save result of preprocessing in a text file.
  @end table
  
+ @geindex -gnateH (gcc)
+ 
+ 
+ @table @asis
+ 
+ @item @code{-gnateH}
+ 
+ Set the threshold from which the RM 13.5.1(13.3/2) clause applies to 64.
+ This is useful only on 64-bit plaforms where this threshold is 128, but
+ used to be 64 in earlier versions of the compiler.
+ @end table
+ 
  @geindex -gnatei (gcc)
  
  
*************** messages showing
*** 9113,9119 ****
  where implicit @code{pragma Elaborate} and @code{pragma Elaborate_All}
  are generated. This is useful in diagnosing elaboration circularities
  caused by these implicit pragmas when using the static elaboration
! model. See See the section in this guide on elaboration checking for
  further details. These messages are not generated by default, and are
  intended only for temporary use when debugging circularity problems.
  @end table
--- 9201,9207 ----
  where implicit @code{pragma Elaborate} and @code{pragma Elaborate_All}
  are generated. This is useful in diagnosing elaboration circularities
  caused by these implicit pragmas when using the static elaboration
! model. See the section in this guide on elaboration checking for
  further details. These messages are not generated by default, and are
  intended only for temporary use when debugging circularity problems.
  @end table
*************** This switch turns off the info messages
*** 9137,9143 ****
  
  Specify a mapping file
  (the equal sign is optional)
! (@ref{e8,,Units to Sources Mapping Files}).
  @end table
  
  @geindex -gnatep (gcc)
--- 9225,9231 ----
  
  Specify a mapping file
  (the equal sign is optional)
! (@ref{ea,,Units to Sources Mapping Files}).
  @end table
  
  @geindex -gnatep (gcc)
*************** Specify a mapping file
*** 9149,9155 ****
  
  Specify a preprocessing data file
  (the equal sign is optional)
! (@ref{90,,Integrated Preprocessing}).
  @end table
  
  @geindex -gnateP (gcc)
--- 9237,9243 ----
  
  Specify a preprocessing data file
  (the equal sign is optional)
! (@ref{91,,Integrated Preprocessing}).
  @end table
  
  @geindex -gnateP (gcc)
*************** support this switch.
*** 9349,9355 ****
  @item @code{-gnateV}
  
  Check that all actual parameters of a subprogram call are valid according to
! the rules of validity checking (@ref{e7,,Validity Checking}).
  @end table
  
  @geindex -gnateY (gcc)
--- 9437,9443 ----
  @item @code{-gnateV}
  
  Check that all actual parameters of a subprogram call are valid according to
! the rules of validity checking (@ref{e9,,Validity Checking}).
  @end table
  
  @geindex -gnateY (gcc)
*************** overflow checking is enabled.
*** 9701,9707 ****
  Note that division by zero is a separate check that is not
  controlled by this switch (divide-by-zero checking is on by default).
  
! See also @ref{e9,,Specifying the Desired Mode}.
  @end table
  
  @geindex -gnatp (gcc)
--- 9789,9795 ----
  Note that division by zero is a separate check that is not
  controlled by this switch (divide-by-zero checking is on by default).
  
! See also @ref{eb,,Specifying the Desired Mode}.
  @end table
  
  @geindex -gnatp (gcc)
*************** See also @ref{e9,,Specifying the Desired
*** 9711,9717 ****
  
  @item @code{-gnatp}
  
! Suppress all checks. See @ref{ea,,Run-Time Checks} for details. This switch
  has no effect if cancelled by a subsequent @code{-gnat-p} switch.
  @end table
  
--- 9799,9805 ----
  
  @item @code{-gnatp}
  
! Suppress all checks. See @ref{ec,,Run-Time Checks} for details. This switch
  has no effect if cancelled by a subsequent @code{-gnat-p} switch.
  @end table
  
*************** Verbose mode. Full error output with sou
*** 9837,9843 ****
  
  @item @code{-gnatV}
  
! Control level of validity checking (@ref{e7,,Validity Checking}).
  @end table
  
  @geindex -gnatw (gcc)
--- 9925,9931 ----
  
  @item @code{-gnatV}
  
! Control level of validity checking (@ref{e9,,Validity Checking}).
  @end table
  
  @geindex -gnatw (gcc)
*************** Control level of validity checking (@ref
*** 9850,9856 ****
  Warning mode where
  @code{xxx} is a string of option letters that denotes
  the exact warnings that
! are enabled or disabled (@ref{eb,,Warning Message Control}).
  @end table
  
  @geindex -gnatW (gcc)
--- 9938,9944 ----
  Warning mode where
  @code{xxx} is a string of option letters that denotes
  the exact warnings that
! are enabled or disabled (@ref{ed,,Warning Message Control}).
  @end table
  
  @geindex -gnatW (gcc)
*************** Enable all GNAT implementation extension
*** 9901,9907 ****
  
  @item @code{-gnaty}
  
! Enable built-in style checks (@ref{ec,,Style Checking}).
  @end table
  
  @geindex -gnatz (gcc)
--- 9989,9995 ----
  
  @item @code{-gnaty}
  
! Enable built-in style checks (@ref{ee,,Style Checking}).
  @end table
  
  @geindex -gnatz (gcc)
*************** Optimize space usage
*** 10044,10050 ****
  @end multitable
  
  
! See also @ref{ed,,Optimization Levels}.
  @end table
  
  @geindex -pass-exit-codes (gcc)
--- 10132,10138 ----
  @end multitable
  
  
! See also @ref{ef,,Optimization Levels}.
  @end table
  
  @geindex -pass-exit-codes (gcc)
*************** exit status.
*** 10066,10072 ****
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the run-time library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{ce,,Switches for gnatmake}).
  @end table
  
  @geindex -S (gcc)
--- 10154,10160 ----
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the run-time library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}).
  @end table
  
  @geindex -S (gcc)
*************** as warning mode modifiers (see descripti
*** 10192,10198 ****
  @item 
  Once a ‘V’ appears in the string (that is a use of the @code{-gnatV}
  switch), then all further characters in the switch are interpreted
! as validity checking options (@ref{e7,,Validity Checking}).
  
  @item 
  Option ‘em’, ‘ec’, ‘ep’, ‘l=’ and ‘R’ must be the last options in
--- 10280,10286 ----
  @item 
  Once a ‘V’ appears in the string (that is a use of the @code{-gnatV}
  switch), then all further characters in the switch are interpreted
! as validity checking options (@ref{e9,,Validity Checking}).
  
  @item 
  Option ‘em’, ‘ec’, ‘ep’, ‘l=’ and ‘R’ must be the last options in
*************** a combined list of options.
*** 10200,10206 ****
  @end itemize
  
  @node Output and Error Message Control,Warning Message Control,Alphabetical List of All Switches,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id14}@anchor{ee}@anchor{gnat_ugn/building_executable_programs_with_gnat output-and-error-message-control}@anchor{ef}
  @subsection Output and Error Message Control
  
  
--- 10288,10294 ----
  @end itemize
  
  @node Output and Error Message Control,Warning Message Control,Alphabetical List of All Switches,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id14}@anchor{f0}@anchor{gnat_ugn/building_executable_programs_with_gnat output-and-error-message-control}@anchor{f1}
  @subsection Output and Error Message Control
  
  
*************** since ALI files are never generated if @
*** 10495,10501 ****
  @end table
  
  @node Warning Message Control,Debugging and Assertion Control,Output and Error Message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id15}@anchor{f0}@anchor{gnat_ugn/building_executable_programs_with_gnat warning-message-control}@anchor{eb}
  @subsection Warning Message Control
  
  
--- 10583,10589 ----
  @end table
  
  @node Warning Message Control,Debugging and Assertion Control,Output and Error Message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id15}@anchor{f2}@anchor{gnat_ugn/building_executable_programs_with_gnat warning-message-control}@anchor{ed}
  @subsection Warning Message Control
  
  
*************** switch are:
*** 10742,10747 ****
--- 10830,10838 ----
  @code{-gnatw.s} (overridden size clause)
  
  @item 
+ @code{-gnatw_s} (ineffective predicate test)
+ 
+ @item 
  @code{-gnatwt} (tracking of deleted conditional code)
  
  @item 
*************** RM 3.10.2 (14).
*** 10835,10841 ****
  
  @item @code{-gnatw_A}
  
! `Supress warnings on anonymous allocators.'
  
  @geindex Anonymous allocators
  
--- 10926,10932 ----
  
  @item @code{-gnatw_A}
  
! `Suppress warnings on anonymous allocators.'
  
  @geindex Anonymous allocators
  
*************** of biased representation.
*** 10921,10928 ****
  @geindex Conditionals
  @geindex constant
  
! This switch activates warnings for conditional expressions used in
! tests that are known to be True or False at compile time. The default
  is that such warnings are not generated.
  Note that this warning does
  not get issued for the use of boolean constants whose
--- 11012,11019 ----
  @geindex Conditionals
  @geindex constant
  
! This switch activates warnings for boolean expressions that are known to
! be True or False at compile time. The default
  is that such warnings are not generated.
  Note that this warning does
  not get issued for the use of boolean constants whose
*************** The default is that such warnings are ge
*** 11018,11024 ****
  
  `Suppress warnings on unknown condition in Compile_Time_Warning.'
  
! This switch supresses warnings on a pragma Compile_Time_Warning
  or Compile_Time_Error whose condition has a value that is not
  known at compile time.
  @end table
--- 11109,11115 ----
  
  `Suppress warnings on unknown condition in Compile_Time_Warning.'
  
! This switch suppresses warnings on a pragma Compile_Time_Warning
  or Compile_Time_Error whose condition has a value that is not
  known at compile time.
  @end table
*************** This switch disables warnings on variabl
*** 11498,11504 ****
  This switch activates warnings for declarations that declare a name that
  is defined in package Standard. Such declarations can be confusing,
  especially since the names in package Standard continue to be directly
! visible, meaning that use visibiliy on such redeclared names does not
  work as expected. Names of discriminants and components in records are
  not included in this check.
  @end table
--- 11589,11595 ----
  This switch activates warnings for declarations that declare a name that
  is defined in package Standard. Such declarations can be confusing,
  especially since the names in package Standard continue to be directly
! visible, meaning that use visibility on such redeclared names does not
  work as expected. Names of discriminants and components in records are
  not included in this check.
  @end table
*************** representation clauses that override siz
*** 12154,12159 ****
--- 12245,12280 ----
  warnings when an array component size overrides a size clause.
  @end table
  
+ @geindex -gnatw_s (gcc)
+ 
+ @geindex Warnings
+ 
+ 
+ @table @asis
+ 
+ @item @code{-gnatw_s}
+ 
+ `Activate warnings on ineffective predicate tests.'
+ 
+ This switch activates warnings on Static_Predicate aspect
+ specifications that test for values that do not belong to
+ the parent subtype. Not all such ineffective tests are detected.
+ @end table
+ 
+ @geindex -gnatw_S (gcc)
+ 
+ 
+ @table @asis
+ 
+ @item @code{-gnatw_S}
+ 
+ `Suppress warnings on ineffective predicate tests.'
+ 
+ This switch suppresses warnings on Static_Predicate aspect
+ specifications that test for values that do not belong to
+ the parent subtype.
+ @end table
+ 
  @geindex -gnatwt (gcc)
  
  @geindex Deactivated code
*************** you know what you are doing in writing t
*** 12470,12476 ****
  should not complain at you.
  @end table
  
! @geindex -gnatwm (gcc)
  
  
  @table @asis
--- 12591,12597 ----
  should not complain at you.
  @end table
  
! @geindex -gnatw.x (gcc)
  
  
  @table @asis
*************** used in conjunction with an optimization
*** 12666,12672 ****
  @item @code{-Wstack-usage=`len'}
  
  Warn if the stack usage of a subprogram might be larger than @code{len} bytes.
! See @ref{e6,,Static Stack Usage Analysis} for details.
  @end table
  
  @geindex -Wall (gcc)
--- 12787,12793 ----
  @item @code{-Wstack-usage=`len'}
  
  Warn if the stack usage of a subprogram might be larger than @code{len} bytes.
! See @ref{e8,,Static Stack Usage Analysis} for details.
  @end table
  
  @geindex -Wall (gcc)
*************** When no switch @code{-gnatw} is used, th
*** 12867,12873 ****
  @end quotation
  
  @node Debugging and Assertion Control,Validity Checking,Warning Message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-and-assertion-control}@anchor{f1}@anchor{gnat_ugn/building_executable_programs_with_gnat id16}@anchor{f2}
  @subsection Debugging and Assertion Control
  
  
--- 12988,12994 ----
  @end quotation
  
  @node Debugging and Assertion Control,Validity Checking,Warning Message Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-and-assertion-control}@anchor{f3}@anchor{gnat_ugn/building_executable_programs_with_gnat id16}@anchor{f4}
  @subsection Debugging and Assertion Control
  
  
*************** is @code{False}, the exception @code{Ass
*** 12972,12978 ****
  @end table
  
  @node Validity Checking,Style Checking,Debugging and Assertion Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id17}@anchor{f3}@anchor{gnat_ugn/building_executable_programs_with_gnat validity-checking}@anchor{e7}
  @subsection Validity Checking
  
  
--- 13093,13099 ----
  @end table
  
  @node Validity Checking,Style Checking,Debugging and Assertion Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id17}@anchor{f5}@anchor{gnat_ugn/building_executable_programs_with_gnat validity-checking}@anchor{e9}
  @subsection Validity Checking
  
  
*************** the validity checking mode at the progra
*** 13270,13276 ****
  temporary disabling of validity checks.
  
  @node Style Checking,Run-Time Checks,Validity Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id18}@anchor{f4}@anchor{gnat_ugn/building_executable_programs_with_gnat style-checking}@anchor{ec}
  @subsection Style Checking
  
  
--- 13391,13397 ----
  temporary disabling of validity checks.
  
  @node Style Checking,Run-Time Checks,Validity Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id18}@anchor{f6}@anchor{gnat_ugn/building_executable_programs_with_gnat style-checking}@anchor{ee}
  @subsection Style Checking
  
  
*************** temporary disabling of validity checks.
*** 13278,13284 ****
  
  @geindex -gnaty (gcc)
  
! The @code{-gnatyx} switch causes the compiler to
  enforce specified style rules. A limited set of style rules has been used
  in writing the GNAT sources themselves. This switch allows user programs
  to activate all or some of these checks. If the source program fails a
--- 13399,13405 ----
  
  @geindex -gnaty (gcc)
  
! The @code{-gnaty} switch causes the compiler to
  enforce specified style rules. A limited set of style rules has been used
  in writing the GNAT sources themselves. This switch allows user programs
  to activate all or some of these checks. If the source program fails a
*************** in the source text.
*** 13535,13543 ****
  
  The set of style check switches is set to match that used by the GNAT sources.
  This may be useful when developing code that is eventually intended to be
! incorporated into GNAT. Currently this is equivalent to @code{-gnatyydISux})
! but additional style switches may be added to this set in the future without
! advance notice.
  @end table
  
  @geindex -gnatyh (gcc)
--- 13656,13664 ----
  
  The set of style check switches is set to match that used by the GNAT sources.
  This may be useful when developing code that is eventually intended to be
! incorporated into GNAT. Currently this is equivalent to
! @code{-gnatyydISuxz}) but additional style switches may be added to this
! set in the future without advance notice.
  @end table
  
  @geindex -gnatyh (gcc)
*************** one blank line occurs in sequence.
*** 13931,13939 ****
  
  `Check extra parentheses.'
  
! Unnecessary extra level of parentheses (C-style) are not allowed
! around conditions in @code{if} statements, @code{while} statements and
! @code{exit} statements.
  @end table
  
  @geindex -gnatyy (gcc)
--- 14052,14060 ----
  
  `Check extra parentheses.'
  
! Unnecessary extra levels of parentheses (C-style) are not allowed
! around conditions (or selection expressions) in @code{if}, @code{while},
! @code{case}, and @code{exit} statements, as well as part of ranges.
  @end table
  
  @geindex -gnatyy (gcc)
*************** options enabled with the exception of @c
*** 13951,13956 ****
--- 14072,14090 ----
  @code{-gnatyS}, @code{-gnatyu}, and @code{-gnatyx}.
  @end table
  
+ @geindex -gnatyz (gcc)
+ 
+ 
+ @table @asis
+ 
+ @item @code{-gnatyz}
+ 
+ `Check extra parentheses (operator precedence).'
+ 
+ Extra levels of parentheses that are not required by operator precedence
+ rules are flagged. See also @code{-gnatyx}.
+ @end table
+ 
  @geindex -gnaty- (gcc)
  
  
*************** built-in standard style check options ar
*** 14010,14016 ****
  The switch @code{-gnatyN} clears any previously set style checks.
  
  @node Run-Time Checks,Using gcc for Syntax Checking,Style Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id19}@anchor{f5}@anchor{gnat_ugn/building_executable_programs_with_gnat run-time-checks}@anchor{ea}
  @subsection Run-Time Checks
  
  
--- 14144,14150 ----
  The switch @code{-gnatyN} clears any previously set style checks.
  
  @node Run-Time Checks,Using gcc for Syntax Checking,Style Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id19}@anchor{f7}@anchor{gnat_ugn/building_executable_programs_with_gnat run-time-checks}@anchor{ec}
  @subsection Run-Time Checks
  
  
*************** on subprogram calls and generic instanti
*** 14204,14210 ****
  Note that @code{-gnatE} is not necessary for safety, because in the
  default mode, GNAT ensures statically that the checks would not fail.
  For full details of the effect and use of this switch,
! @ref{c7,,Compiling with gcc}.
  @end table
  
  @geindex -fstack-check (gcc)
--- 14338,14344 ----
  Note that @code{-gnatE} is not necessary for safety, because in the
  default mode, GNAT ensures statically that the checks would not fail.
  For full details of the effect and use of this switch,
! @ref{c9,,Compiling with gcc}.
  @end table
  
  @geindex -fstack-check (gcc)
*************** For full details of the effect and use o
*** 14220,14226 ****
  @item @code{-fstack-check}
  
  Activates stack overflow checking. For full details of the effect and use of
! this switch see @ref{e5,,Stack Overflow Checking}.
  @end table
  
  @geindex Unsuppress
--- 14354,14360 ----
  @item @code{-fstack-check}
  
  Activates stack overflow checking. For full details of the effect and use of
! this switch see @ref{e7,,Stack Overflow Checking}.
  @end table
  
  @geindex Unsuppress
*************** checks) or @code{Unsuppress} (to add bac
*** 14231,14237 ****
  the program source.
  
  @node Using gcc for Syntax Checking,Using gcc for Semantic Checking,Run-Time Checks,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id20}@anchor{f6}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-syntax-checking}@anchor{f7}
  @subsection Using @code{gcc} for Syntax Checking
  
  
--- 14365,14371 ----
  the program source.
  
  @node Using gcc for Syntax Checking,Using gcc for Semantic Checking,Run-Time Checks,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id20}@anchor{f8}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-syntax-checking}@anchor{f9}
  @subsection Using @code{gcc} for Syntax Checking
  
  
*************** together. This is primarily used by the
*** 14288,14294 ****
  @end table
  
  @node Using gcc for Semantic Checking,Compiling Different Versions of Ada,Using gcc for Syntax Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id21}@anchor{f8}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-semantic-checking}@anchor{f9}
  @subsection Using @code{gcc} for Semantic Checking
  
  
--- 14422,14428 ----
  @end table
  
  @node Using gcc for Semantic Checking,Compiling Different Versions of Ada,Using gcc for Syntax Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id21}@anchor{fa}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-semantic-checking}@anchor{fb}
  @subsection Using @code{gcc} for Semantic Checking
  
  
*************** and specifications where a separate body
*** 14335,14341 ****
  @end table
  
  @node Compiling Different Versions of Ada,Character Set Control,Using gcc for Semantic Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-different-versions-of-ada}@anchor{6}@anchor{gnat_ugn/building_executable_programs_with_gnat id22}@anchor{fa}
  @subsection Compiling Different Versions of Ada
  
  
--- 14469,14475 ----
  @end table
  
  @node Compiling Different Versions of Ada,Character Set Control,Using gcc for Semantic Checking,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat compiling-different-versions-of-ada}@anchor{6}@anchor{gnat_ugn/building_executable_programs_with_gnat id22}@anchor{fc}
  @subsection Compiling Different Versions of Ada
  
  
*************** extensions enabled by this switch, see t
*** 14500,14506 ****
  @end table
  
  @node Character Set Control,File Naming Control,Compiling Different Versions of Ada,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat character-set-control}@anchor{31}@anchor{gnat_ugn/building_executable_programs_with_gnat id23}@anchor{fb}
  @subsection Character Set Control
  
  
--- 14634,14640 ----
  @end table
  
  @node Character Set Control,File Naming Control,Compiling Different Versions of Ada,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat character-set-control}@anchor{31}@anchor{gnat_ugn/building_executable_programs_with_gnat id23}@anchor{fd}
  @subsection Character Set Control
  
  
*************** comments are ended by an appropriate (CR
*** 14727,14733 ****
  This is a common mode for many programs with foreign language comments.
  
  @node File Naming Control,Subprogram Inlining Control,Character Set Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat file-naming-control}@anchor{fc}@anchor{gnat_ugn/building_executable_programs_with_gnat id24}@anchor{fd}
  @subsection File Naming Control
  
  
--- 14861,14867 ----
  This is a common mode for many programs with foreign language comments.
  
  @node File Naming Control,Subprogram Inlining Control,Character Set Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat file-naming-control}@anchor{fe}@anchor{gnat_ugn/building_executable_programs_with_gnat id24}@anchor{ff}
  @subsection File Naming Control
  
  
*************** For the source file naming rules, @ref{3
*** 14747,14753 ****
  @end table
  
  @node Subprogram Inlining Control,Auxiliary Output Control,File Naming Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id25}@anchor{fe}@anchor{gnat_ugn/building_executable_programs_with_gnat subprogram-inlining-control}@anchor{ff}
  @subsection Subprogram Inlining Control
  
  
--- 14881,14887 ----
  @end table
  
  @node Subprogram Inlining Control,Auxiliary Output Control,File Naming Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id25}@anchor{100}@anchor{gnat_ugn/building_executable_programs_with_gnat subprogram-inlining-control}@anchor{101}
  @subsection Subprogram Inlining Control
  
  
*************** If you specify this switch the compiler
*** 14780,14786 ****
  creating an extra source dependency for the resulting object file, and
  where possible, the call will be inlined.
  For further details on when inlining is possible
! see @ref{100,,Inlining of Subprograms}.
  @end table
  
  @geindex -gnatN (gcc)
--- 14914,14920 ----
  creating an extra source dependency for the resulting object file, and
  where possible, the call will be inlined.
  For further details on when inlining is possible
! see @ref{102,,Inlining of Subprograms}.
  @end table
  
  @geindex -gnatN (gcc)
*************** inlining, but that is no longer the case
*** 14800,14806 ****
  @end table
  
  @node Auxiliary Output Control,Debugging Control,Subprogram Inlining Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat auxiliary-output-control}@anchor{101}@anchor{gnat_ugn/building_executable_programs_with_gnat id26}@anchor{102}
  @subsection Auxiliary Output Control
  
  
--- 14934,14940 ----
  @end table
  
  @node Auxiliary Output Control,Debugging Control,Subprogram Inlining Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat auxiliary-output-control}@anchor{103}@anchor{gnat_ugn/building_executable_programs_with_gnat id26}@anchor{104}
  @subsection Auxiliary Output Control
  
  
*************** An object file has been generated for ev
*** 14870,14876 ****
  @end table
  
  @node Debugging Control,Exception Handling Control,Auxiliary Output Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-control}@anchor{103}@anchor{gnat_ugn/building_executable_programs_with_gnat id27}@anchor{104}
  @subsection Debugging Control
  
  
--- 15004,15010 ----
  @end table
  
  @node Debugging Control,Exception Handling Control,Auxiliary Output Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-control}@anchor{105}@anchor{gnat_ugn/building_executable_programs_with_gnat id27}@anchor{106}
  @subsection Debugging Control
  
  
*************** encodings for the rest.
*** 15219,15225 ****
  @end table
  
  @node Exception Handling Control,Units to Sources Mapping Files,Debugging Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat exception-handling-control}@anchor{105}@anchor{gnat_ugn/building_executable_programs_with_gnat id28}@anchor{106}
  @subsection Exception Handling Control
  
  
--- 15353,15359 ----
  @end table
  
  @node Exception Handling Control,Units to Sources Mapping Files,Debugging Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat exception-handling-control}@anchor{107}@anchor{gnat_ugn/building_executable_programs_with_gnat id28}@anchor{108}
  @subsection Exception Handling Control
  
  
*************** is available for the target in use, othe
*** 15287,15297 ****
  
  The same option @code{--RTS} must be used both for @code{gcc}
  and @code{gnatbind}. Passing this option to @code{gnatmake}
! (@ref{ce,,Switches for gnatmake}) will ensure the required consistency
  through the compilation and binding steps.
  
  @node Units to Sources Mapping Files,Code Generation Control,Exception Handling Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id29}@anchor{107}@anchor{gnat_ugn/building_executable_programs_with_gnat units-to-sources-mapping-files}@anchor{e8}
  @subsection Units to Sources Mapping Files
  
  
--- 15421,15431 ----
  
  The same option @code{--RTS} must be used both for @code{gcc}
  and @code{gnatbind}. Passing this option to @code{gnatmake}
! (@ref{d0,,Switches for gnatmake}) will ensure the required consistency
  through the compilation and binding steps.
  
  @node Units to Sources Mapping Files,Code Generation Control,Exception Handling Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id29}@anchor{109}@anchor{gnat_ugn/building_executable_programs_with_gnat units-to-sources-mapping-files}@anchor{ea}
  @subsection Units to Sources Mapping Files
  
  
*************** mapping file and communicates it to the
*** 15343,15349 ****
  @end table
  
  @node Code Generation Control,,Units to Sources Mapping Files,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat code-generation-control}@anchor{108}@anchor{gnat_ugn/building_executable_programs_with_gnat id30}@anchor{109}
  @subsection Code Generation Control
  
  
--- 15477,15483 ----
  @end table
  
  @node Code Generation Control,,Units to Sources Mapping Files,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat code-generation-control}@anchor{10a}@anchor{gnat_ugn/building_executable_programs_with_gnat id30}@anchor{10b}
  @subsection Code Generation Control
  
  
*************** there is no point in using @code{-m} swi
*** 15372,15378 ****
  unless you actually see a performance improvement.
  
  @node Linker Switches,Binding with gnatbind,Compiler Switches,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id31}@anchor{10a}@anchor{gnat_ugn/building_executable_programs_with_gnat linker-switches}@anchor{10b}
  @section Linker Switches
  
  
--- 15506,15512 ----
  unless you actually see a performance improvement.
  
  @node Linker Switches,Binding with gnatbind,Compiler Switches,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id31}@anchor{10c}@anchor{gnat_ugn/building_executable_programs_with_gnat linker-switches}@anchor{10d}
  @section Linker Switches
  
  
*************** Linker to be used. The default is @code{
*** 15389,15399 ****
  (for @code{ld.gold}) and @code{mold} (for @code{ld.mold}) are more
  recent and faster alternatives, but only available on GNU/Linux
  platforms.
- 
  @end table
  
  @node Binding with gnatbind,Linking with gnatlink,Linker Switches,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-gnatbind}@anchor{c8}@anchor{gnat_ugn/building_executable_programs_with_gnat id32}@anchor{10c}
  @section Binding with @code{gnatbind}
  
  
--- 15523,15532 ----
  (for @code{ld.gold}) and @code{mold} (for @code{ld.mold}) are more
  recent and faster alternatives, but only available on GNU/Linux
  platforms.
  @end table
  
  @node Binding with gnatbind,Linking with gnatlink,Linker Switches,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-gnatbind}@anchor{ca}@anchor{gnat_ugn/building_executable_programs_with_gnat id32}@anchor{10e}
  @section Binding with @code{gnatbind}
  
  
*************** to be read by the @code{gnatlink} utilit
*** 15444,15450 ****
  @end menu
  
  @node Running gnatbind,Switches for gnatbind,,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id33}@anchor{10d}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatbind}@anchor{10e}
  @subsection Running @code{gnatbind}
  
  
--- 15577,15583 ----
  @end menu
  
  @node Running gnatbind,Switches for gnatbind,,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id33}@anchor{10f}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatbind}@anchor{110}
  @subsection Running @code{gnatbind}
  
  
*************** Ada code provided the @code{-g} switch i
*** 15529,15535 ****
  @code{gnatbind} and @code{gnatlink}.
  
  @node Switches for gnatbind,Command-Line Access,Running gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id34}@anchor{10f}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatbind}@anchor{110}
  @subsection Switches for @code{gnatbind}
  
  
--- 15662,15668 ----
  @code{gnatbind} and @code{gnatlink}.
  
  @node Switches for gnatbind,Command-Line Access,Running gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id34}@anchor{111}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatbind}@anchor{112}
  @subsection Switches for @code{gnatbind}
  
  
*************** a chain of blocks in the heap. In this c
*** 15661,15672 ****
  determines the initial size of the secondary stack for each task and the
  smallest amount the secondary stack can grow by.
  
! For Ravenscar, ZFP, and Cert run-times the size of the secondary stack is
! fixed. This switch can be used to change the default size of these stacks.
! The default secondary stack size can be overridden on a per-task basis if
! individual tasks have different secondary stack requirements. This is
! achieved through the Secondary_Stack_Size aspect that takes the size of the
! secondary stack in bytes.
  @end table
  
  @geindex -e (gnatbind)
--- 15794,15805 ----
  determines the initial size of the secondary stack for each task and the
  smallest amount the secondary stack can grow by.
  
! For Light, Light-Tasking, and Embedded run-times the size of the secondary
! stack is fixed. This switch can be used to change the default size of these
! stacks. The default secondary stack size can be overridden on a per-task
! basis if individual tasks have different secondary stack requirements. This
! is achieved through the Secondary_Stack_Size aspect, which takes the size of
! the secondary stack in bytes.
  @end table
  
  @geindex -e (gnatbind)
*************** Currently the same as @code{-Ea}.
*** 15724,15730 ****
  
  @item @code{-f`elab-order'}
  
! Force elaboration order. For further details see @ref{111,,Elaboration Control}
  and @ref{f,,Elaboration Order Handling in GNAT}.
  @end table
  
--- 15857,15863 ----
  
  @item @code{-f`elab-order'}
  
! Force elaboration order. For further details see @ref{113,,Elaboration Control}
  and @ref{f,,Elaboration Order Handling in GNAT}.
  @end table
  
*************** Legacy elaboration order model enabled.
*** 15773,15779 ****
  @item @code{-H32}
  
  Use 32-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{112,,Dynamic Allocation Control}.
  @end table
  
  @geindex -H64 (gnatbind)
--- 15906,15912 ----
  @item @code{-H32}
  
  Use 32-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{114,,Dynamic Allocation Control}.
  @end table
  
  @geindex -H64 (gnatbind)
*************** For further details see @ref{112,,Dynami
*** 15786,15792 ****
  @item @code{-H64}
  
  Use 64-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{112,,Dynamic Allocation Control}.
  
  @geindex -I (gnatbind)
  
--- 15919,15925 ----
  @item @code{-H64}
  
  Use 64-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{114,,Dynamic Allocation Control}.
  
  @geindex -I (gnatbind)
  
*************** Output chosen elaboration order.
*** 15829,15835 ****
  @item @code{-L`xxx'}
  
  Bind the units for library building. In this case the @code{adainit} and
! @code{adafinal} procedures (@ref{a0,,Binding with Non-Ada Main Programs})
  are renamed to @code{@var{xxx}init} and
  @code{@var{xxx}final}.
  Implies -n.
--- 15962,15968 ----
  @item @code{-L`xxx'}
  
  Bind the units for library building. In this case the @code{adainit} and
! @code{adafinal} procedures (@ref{7e,,Binding with Non-Ada Main Programs})
  are renamed to @code{@var{xxx}init} and
  @code{@var{xxx}final}.
  Implies -n.
*************** Do not look for library files in the sys
*** 15900,15906 ****
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the run-time library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{ce,,Switches for gnatmake}).
  
  @geindex -o (gnatbind)
  
--- 16033,16039 ----
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the run-time library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}).
  
  @geindex -o (gnatbind)
  
*************** Pessimistic (worst-case) elaboration ord
*** 15927,15932 ****
--- 16060,16086 ----
  @item @code{-P}
  
  Generate binder file suitable for CodePeer.
+ @end table
+ 
+ @geindex -Q (gnatbind)
+ 
+ 
+ @table @asis
+ 
+ @item @code{-Q`nnn'}
+ 
+ Generate @code{nnn} additional default-sized secondary stacks.
+ 
+ Tasks declared at the library level that use default-size secondary stacks
+ have their secondary stacks allocated from a pool of stacks generated by
+ gnatbind. This allows the default secondary stack size to be quickly changed
+ by rebinding the application.
+ 
+ While the binder sizes this pool to match the number of such tasks defined in
+ the application, the pool size may need to be increased with the @code{-Q}
+ switch to accommodate foreign threads registered with the Light run-time. For
+ more information, please see the `The Primary and Secondary Stack' chapter in
+ the `GNAT User’s Guide Supplement for Cross Platforms'.
  
  @geindex -R (gnatbind)
  
*************** one bits. For floating-point, a large va
*** 15996,16002 ****
  
  The underlying scalar is set to a value consisting of repeated bytes, whose
  value corresponds to the given value. For example if @code{BF} is given,
! then a 32-bit scalar value will be set to the bit patterm @code{16#BFBFBFBF#}.
  @end itemize
  
  @geindex GNAT_INIT_SCALARS
--- 16150,16156 ----
  
  The underlying scalar is set to a value consisting of repeated bytes, whose
  value corresponds to the given value. For example if @code{BF} is given,
! then a 32-bit scalar value will be set to the bit pattern @code{16#BFBFBFBF#}.
  @end itemize
  
  @geindex GNAT_INIT_SCALARS
*************** Enable dynamic stack usage, with @code{n
*** 16054,16060 ****
  at program termination. A result is generated when a task
  terminates. Results that can’t be stored are displayed on the fly, at
  task termination. This option is currently not supported on Itanium
! platforms. (See @ref{113,,Dynamic Stack Usage Analysis} for details.)
  
  @geindex -v (gnatbind)
  
--- 16208,16214 ----
  at program termination. A result is generated when a task
  terminates. Results that can’t be stored are displayed on the fly, at
  task termination. This option is currently not supported on Itanium
! platforms. (See @ref{115,,Dynamic Stack Usage Analysis} for details.)
  
  @geindex -v (gnatbind)
  
*************** no arguments.
*** 16134,16140 ****
  @end menu
  
  @node Consistency-Checking Modes,Binder Error Message Control,,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat consistency-checking-modes}@anchor{114}@anchor{gnat_ugn/building_executable_programs_with_gnat id35}@anchor{115}
  @subsubsection Consistency-Checking Modes
  
  
--- 16288,16294 ----
  @end menu
  
  @node Consistency-Checking Modes,Binder Error Message Control,,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat consistency-checking-modes}@anchor{116}@anchor{gnat_ugn/building_executable_programs_with_gnat id35}@anchor{117}
  @subsubsection Consistency-Checking Modes
  
  
*************** case the checking against sources has al
*** 16188,16194 ****
  @end table
  
  @node Binder Error Message Control,Elaboration Control,Consistency-Checking Modes,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binder-error-message-control}@anchor{116}@anchor{gnat_ugn/building_executable_programs_with_gnat id36}@anchor{117}
  @subsubsection Binder Error Message Control
  
  
--- 16342,16348 ----
  @end table
  
  @node Binder Error Message Control,Elaboration Control,Consistency-Checking Modes,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binder-error-message-control}@anchor{118}@anchor{gnat_ugn/building_executable_programs_with_gnat id36}@anchor{119}
  @subsubsection Binder Error Message Control
  
  
*************** with extreme care.
*** 16298,16304 ****
  @end table
  
  @node Elaboration Control,Output Control,Binder Error Message Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat elaboration-control}@anchor{111}@anchor{gnat_ugn/building_executable_programs_with_gnat id37}@anchor{118}
  @subsubsection Elaboration Control
  
  
--- 16452,16458 ----
  @end table
  
  @node Elaboration Control,Output Control,Binder Error Message Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat elaboration-control}@anchor{113}@anchor{gnat_ugn/building_executable_programs_with_gnat id37}@anchor{11a}
  @subsubsection Elaboration Control
  
  
*************** debugging/experimental use.
*** 16383,16389 ****
  @end table
  
  @node Output Control,Dynamic Allocation Control,Elaboration Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id38}@anchor{119}@anchor{gnat_ugn/building_executable_programs_with_gnat output-control}@anchor{11a}
  @subsubsection Output Control
  
  
--- 16537,16543 ----
  @end table
  
  @node Output Control,Dynamic Allocation Control,Elaboration Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id38}@anchor{11b}@anchor{gnat_ugn/building_executable_programs_with_gnat output-control}@anchor{11c}
  @subsubsection Output Control
  
  
*************** be used to improve code generation in so
*** 16464,16470 ****
  @end table
  
  @node Dynamic Allocation Control,Binding with Non-Ada Main Programs,Output Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat dynamic-allocation-control}@anchor{112}@anchor{gnat_ugn/building_executable_programs_with_gnat id39}@anchor{11b}
  @subsubsection Dynamic Allocation Control
  
  
--- 16618,16624 ----
  @end table
  
  @node Dynamic Allocation Control,Binding with Non-Ada Main Programs,Output Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat dynamic-allocation-control}@anchor{114}@anchor{gnat_ugn/building_executable_programs_with_gnat id39}@anchor{11d}
  @subsubsection Dynamic Allocation Control
  
  
*************** unless explicitly overridden by a @code{
*** 16490,16496 ****
  These switches are only effective on VMS platforms.
  
  @node Binding with Non-Ada Main Programs,Binding Programs with No Main Subprogram,Dynamic Allocation Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-non-ada-main-programs}@anchor{a0}@anchor{gnat_ugn/building_executable_programs_with_gnat id40}@anchor{11c}
  @subsubsection Binding with Non-Ada Main Programs
  
  
--- 16644,16650 ----
  These switches are only effective on VMS platforms.
  
  @node Binding with Non-Ada Main Programs,Binding Programs with No Main Subprogram,Dynamic Allocation Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-non-ada-main-programs}@anchor{7e}@anchor{gnat_ugn/building_executable_programs_with_gnat id40}@anchor{11e}
  @subsubsection Binding with Non-Ada Main Programs
  
  
*************** side effect is that this could be the wr
*** 16586,16592 ****
  where floating point computation could be broken after this call.
  
  @node Binding Programs with No Main Subprogram,,Binding with Non-Ada Main Programs,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-programs-with-no-main-subprogram}@anchor{11d}@anchor{gnat_ugn/building_executable_programs_with_gnat id41}@anchor{11e}
  @subsubsection Binding Programs with No Main Subprogram
  
  
--- 16740,16746 ----
  where floating point computation could be broken after this call.
  
  @node Binding Programs with No Main Subprogram,,Binding with Non-Ada Main Programs,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat binding-programs-with-no-main-subprogram}@anchor{11f}@anchor{gnat_ugn/building_executable_programs_with_gnat id41}@anchor{120}
  @subsubsection Binding Programs with No Main Subprogram
  
  
*************** the binder switch
*** 16617,16623 ****
  @end table
  
  @node Command-Line Access,Search Paths for gnatbind,Switches for gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat command-line-access}@anchor{11f}@anchor{gnat_ugn/building_executable_programs_with_gnat id42}@anchor{120}
  @subsection Command-Line Access
  
  
--- 16771,16777 ----
  @end table
  
  @node Command-Line Access,Search Paths for gnatbind,Switches for gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat command-line-access}@anchor{121}@anchor{gnat_ugn/building_executable_programs_with_gnat id42}@anchor{122}
  @subsection Command-Line Access
  
  
*************** required, your main program must set @co
*** 16647,16653 ****
  it.
  
  @node Search Paths for gnatbind,Examples of gnatbind Usage,Command-Line Access,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id43}@anchor{121}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-for-gnatbind}@anchor{76}
  @subsection Search Paths for @code{gnatbind}
  
  
--- 16801,16807 ----
  it.
  
  @node Search Paths for gnatbind,Examples of gnatbind Usage,Command-Line Access,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id43}@anchor{123}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-for-gnatbind}@anchor{76}
  @subsection Search Paths for @code{gnatbind}
  
  
*************** in compiling sources from multiple direc
*** 16751,16757 ****
  development environments much more flexible.
  
  @node Examples of gnatbind Usage,,Search Paths for gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatbind-usage}@anchor{122}@anchor{gnat_ugn/building_executable_programs_with_gnat id44}@anchor{123}
  @subsection Examples of @code{gnatbind} Usage
  
  
--- 16905,16911 ----
  development environments much more flexible.
  
  @node Examples of gnatbind Usage,,Search Paths for gnatbind,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatbind-usage}@anchor{124}@anchor{gnat_ugn/building_executable_programs_with_gnat id44}@anchor{125}
  @subsection Examples of @code{gnatbind} Usage
  
  
*************** since gnatlink will not be able to find
*** 16780,16786 ****
  @end quotation
  
  @node Linking with gnatlink,Using the GNU make Utility,Binding with gnatbind,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id45}@anchor{124}@anchor{gnat_ugn/building_executable_programs_with_gnat linking-with-gnatlink}@anchor{c9}
  @section Linking with @code{gnatlink}
  
  
--- 16934,16940 ----
  @end quotation
  
  @node Linking with gnatlink,Using the GNU make Utility,Binding with gnatbind,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id45}@anchor{126}@anchor{gnat_ugn/building_executable_programs_with_gnat linking-with-gnatlink}@anchor{cb}
  @section Linking with @code{gnatlink}
  
  
*************** generated by the @code{gnatbind} to dete
*** 16801,16807 ****
  @end menu
  
  @node Running gnatlink,Switches for gnatlink,,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id46}@anchor{125}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatlink}@anchor{126}
  @subsection Running @code{gnatlink}
  
  
--- 16955,16961 ----
  @end menu
  
  @node Running gnatlink,Switches for gnatlink,,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id46}@anchor{127}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatlink}@anchor{128}
  @subsection Running @code{gnatlink}
  
  
*************** $ gnatlink my_prog -Wl,-Map,MAPFILE
*** 16860,16867 ****
  
  Using @code{linker options} it is possible to set the program stack and
  heap size.
! See @ref{127,,Setting Stack Size from gnatlink} and
! @ref{128,,Setting Heap Size from gnatlink}.
  
  @code{gnatlink} determines the list of objects required by the Ada
  program and prepends them to the list of objects passed to the linker.
--- 17014,17021 ----
  
  Using @code{linker options} it is possible to set the program stack and
  heap size.
! See @ref{129,,Setting Stack Size from gnatlink} and
! @ref{12a,,Setting Heap Size from gnatlink}.
  
  @code{gnatlink} determines the list of objects required by the Ada
  program and prepends them to the list of objects passed to the linker.
*************** program and prepends them to the list of
*** 16870,16876 ****
  presented to the linker.
  
  @node Switches for gnatlink,,Running gnatlink,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id47}@anchor{129}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatlink}@anchor{12a}
  @subsection Switches for @code{gnatlink}
  
  
--- 17024,17030 ----
  presented to the linker.
  
  @node Switches for gnatlink,,Running gnatlink,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id47}@anchor{12b}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatlink}@anchor{12c}
  @subsection Switches for @code{gnatlink}
  
  
*************** switch.
*** 17065,17071 ****
  @end table
  
  @node Using the GNU make Utility,,Linking with gnatlink,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id48}@anchor{12b}@anchor{gnat_ugn/building_executable_programs_with_gnat using-the-gnu-make-utility}@anchor{70}
  @section Using the GNU @code{make} Utility
  
  
--- 17219,17225 ----
  @end table
  
  @node Using the GNU make Utility,,Linking with gnatlink,Building Executable Programs with GNAT
! @anchor{gnat_ugn/building_executable_programs_with_gnat id48}@anchor{12d}@anchor{gnat_ugn/building_executable_programs_with_gnat using-the-gnu-make-utility}@anchor{70}
  @section Using the GNU @code{make} Utility
  
  
*************** switch.
*** 17074,17080 ****
  
  This chapter offers some examples of makefiles that solve specific
  problems. It does not explain how to write a makefile, nor does it try to replace the
! @code{gnatmake} utility (@ref{c6,,Building with gnatmake}).
  
  All the examples in this section are specific to the GNU version of
  make. Although @code{make} is a standard utility, and the basic language
--- 17228,17234 ----
  
  This chapter offers some examples of makefiles that solve specific
  problems. It does not explain how to write a makefile, nor does it try to replace the
! @code{gnatmake} utility (@ref{c8,,Building with gnatmake}).
  
  All the examples in this section are specific to the GNU version of
  make. Although @code{make} is a standard utility, and the basic language
*************** is the same, these examples use some adv
*** 17090,17096 ****
  @end menu
  
  @node Using gnatmake in a Makefile,Automatically Creating a List of Directories,,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat id49}@anchor{12c}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gnatmake-in-a-makefile}@anchor{12d}
  @subsection Using gnatmake in a Makefile
  
  
--- 17244,17250 ----
  @end menu
  
  @node Using gnatmake in a Makefile,Automatically Creating a List of Directories,,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat id49}@anchor{12e}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gnatmake-in-a-makefile}@anchor{12f}
  @subsection Using gnatmake in a Makefile
  
  
*************** the appropriate directories.
*** 17109,17115 ****
  
  Note that you should also read the example on how to automatically
  create the list of directories
! (@ref{12e,,Automatically Creating a List of Directories})
  which might help you in case your project has a lot of subdirectories.
  
  @example
--- 17263,17269 ----
  
  Note that you should also read the example on how to automatically
  create the list of directories
! (@ref{130,,Automatically Creating a List of Directories})
  which might help you in case your project has a lot of subdirectories.
  
  @example
*************** clean::
*** 17189,17195 ****
  @end example
  
  @node Automatically Creating a List of Directories,Generating the Command Line Switches,Using gnatmake in a Makefile,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat automatically-creating-a-list-of-directories}@anchor{12e}@anchor{gnat_ugn/building_executable_programs_with_gnat id50}@anchor{12f}
  @subsection Automatically Creating a List of Directories
  
  
--- 17343,17349 ----
  @end example
  
  @node Automatically Creating a List of Directories,Generating the Command Line Switches,Using gnatmake in a Makefile,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat automatically-creating-a-list-of-directories}@anchor{130}@anchor{gnat_ugn/building_executable_programs_with_gnat id50}@anchor{131}
  @subsection Automatically Creating a List of Directories
  
  
*************** DIRS := $@{shell find $@{ROOT_DIRECTORY@
*** 17262,17273 ****
  @end example
  
  @node Generating the Command Line Switches,Overcoming Command Line Length Limits,Automatically Creating a List of Directories,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat generating-the-command-line-switches}@anchor{130}@anchor{gnat_ugn/building_executable_programs_with_gnat id51}@anchor{131}
  @subsection Generating the Command Line Switches
  
  
  Once you have created the list of directories as explained in the
! previous section (@ref{12e,,Automatically Creating a List of Directories}),
  you can easily generate the command line arguments to pass to gnatmake.
  
  For the sake of completeness, this example assumes that the source path
--- 17416,17427 ----
  @end example
  
  @node Generating the Command Line Switches,Overcoming Command Line Length Limits,Automatically Creating a List of Directories,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat generating-the-command-line-switches}@anchor{132}@anchor{gnat_ugn/building_executable_programs_with_gnat id51}@anchor{133}
  @subsection Generating the Command Line Switches
  
  
  Once you have created the list of directories as explained in the
! previous section (@ref{130,,Automatically Creating a List of Directories}),
  you can easily generate the command line arguments to pass to gnatmake.
  
  For the sake of completeness, this example assumes that the source path
*************** all:
*** 17288,17294 ****
  @end example
  
  @node Overcoming Command Line Length Limits,,Generating the Command Line Switches,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat id52}@anchor{132}@anchor{gnat_ugn/building_executable_programs_with_gnat overcoming-command-line-length-limits}@anchor{133}
  @subsection Overcoming Command Line Length Limits
  
  
--- 17442,17448 ----
  @end example
  
  @node Overcoming Command Line Length Limits,,Generating the Command Line Switches,Using the GNU make Utility
! @anchor{gnat_ugn/building_executable_programs_with_gnat id52}@anchor{134}@anchor{gnat_ugn/building_executable_programs_with_gnat overcoming-command-line-length-limits}@anchor{135}
  @subsection Overcoming Command Line Length Limits
  
  
*************** even none on most systems).
*** 17303,17309 ****
  
  It assumes that you have created a list of directories in your Makefile,
  using one of the methods presented in
! @ref{12e,,Automatically Creating a List of Directories}.
  For the sake of completeness, we assume that the object
  path (where the ALI files are found) is different from the sources patch.
  
--- 17457,17463 ----
  
  It assumes that you have created a list of directories in your Makefile,
  using one of the methods presented in
! @ref{130,,Automatically Creating a List of Directories}.
  For the sake of completeness, we assume that the object
  path (where the ALI files are found) is different from the sources patch.
  
*************** all:
*** 17346,17352 ****
  @end example
  
  @node GNAT Utility Programs,GNAT and Program Execution,Building Executable Programs with GNAT,Top
! @anchor{gnat_ugn/gnat_utility_programs doc}@anchor{134}@anchor{gnat_ugn/gnat_utility_programs gnat-utility-programs}@anchor{b}@anchor{gnat_ugn/gnat_utility_programs id1}@anchor{135}
  @chapter GNAT Utility Programs
  
  
--- 17500,17506 ----
  @end example
  
  @node GNAT Utility Programs,GNAT and Program Execution,Building Executable Programs with GNAT,Top
! @anchor{gnat_ugn/gnat_utility_programs doc}@anchor{136}@anchor{gnat_ugn/gnat_utility_programs gnat-utility-programs}@anchor{b}@anchor{gnat_ugn/gnat_utility_programs id1}@anchor{137}
  @chapter GNAT Utility Programs
  
  
*************** This chapter describes a number of utili
*** 17357,17366 ****
  @itemize *
  
  @item 
! @ref{136,,The File Cleanup Utility gnatclean}
  
  @item 
! @ref{137,,The GNAT Library Browser gnatls}
  @end itemize
  
  Other GNAT utilities are described elsewhere in this manual:
--- 17511,17520 ----
  @itemize *
  
  @item 
! @ref{138,,The File Cleanup Utility gnatclean}
  
  @item 
! @ref{139,,The GNAT Library Browser gnatls}
  @end itemize
  
  Other GNAT utilities are described elsewhere in this manual:
*************** Other GNAT utilities are described elsew
*** 17378,17384 ****
  @ref{1d,,Renaming Files with gnatchop}
  
  @item 
! @ref{8f,,Preprocessing with gnatprep}
  @end itemize
  
  @menu
--- 17532,17538 ----
  @ref{1d,,Renaming Files with gnatchop}
  
  @item 
! @ref{90,,Preprocessing with gnatprep}
  @end itemize
  
  @menu
*************** Other GNAT utilities are described elsew
*** 17388,17394 ****
  @end menu
  
  @node The File Cleanup Utility gnatclean,The GNAT Library Browser gnatls,,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id2}@anchor{138}@anchor{gnat_ugn/gnat_utility_programs the-file-cleanup-utility-gnatclean}@anchor{136}
  @section The File Cleanup Utility @code{gnatclean}
  
  
--- 17542,17548 ----
  @end menu
  
  @node The File Cleanup Utility gnatclean,The GNAT Library Browser gnatls,,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id2}@anchor{13a}@anchor{gnat_ugn/gnat_utility_programs the-file-cleanup-utility-gnatclean}@anchor{138}
  @section The File Cleanup Utility @code{gnatclean}
  
  
*************** generated files and executable files.
*** 17408,17414 ****
  @end menu
  
  @node Running gnatclean,Switches for gnatclean,,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id3}@anchor{139}@anchor{gnat_ugn/gnat_utility_programs running-gnatclean}@anchor{13a}
  @subsection Running @code{gnatclean}
  
  
--- 17562,17568 ----
  @end menu
  
  @node Running gnatclean,Switches for gnatclean,,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id3}@anchor{13b}@anchor{gnat_ugn/gnat_utility_programs running-gnatclean}@anchor{13c}
  @subsection Running @code{gnatclean}
  
  
*************** the linker. In informative-only mode, sp
*** 17432,17438 ****
  normal mode is listed, but no file is actually deleted.
  
  @node Switches for gnatclean,,Running gnatclean,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id4}@anchor{13b}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatclean}@anchor{13c}
  @subsection Switches for @code{gnatclean}
  
  
--- 17586,17592 ----
  normal mode is listed, but no file is actually deleted.
  
  @node Switches for gnatclean,,Running gnatclean,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id4}@anchor{13d}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatclean}@anchor{13e}
  @subsection Switches for @code{gnatclean}
  
  
*************** Verbose mode.
*** 17583,17589 ****
  @item @code{-vP`x'}
  
  Indicates the verbosity of the parsing of GNAT project files.
! @ref{cf,,Switches Related to Project Files}.
  @end table
  
  @geindex -X (gnatclean)
--- 17737,17743 ----
  @item @code{-vP`x'}
  
  Indicates the verbosity of the parsing of GNAT project files.
! @ref{d1,,Switches Related to Project Files}.
  @end table
  
  @geindex -X (gnatclean)
*************** Indicates the verbosity of the parsing o
*** 17596,17602 ****
  Indicates that external variable @code{name} has the value @code{value}.
  The Project Manager will use this value for occurrences of
  @code{external(name)} when parsing the project file.
! See @ref{cf,,Switches Related to Project Files}.
  @end table
  
  @geindex -aO (gnatclean)
--- 17750,17756 ----
  Indicates that external variable @code{name} has the value @code{value}.
  The Project Manager will use this value for occurrences of
  @code{external(name)} when parsing the project file.
! See @ref{d1,,Switches Related to Project Files}.
  @end table
  
  @geindex -aO (gnatclean)
*************** where @code{gnatclean} was invoked.
*** 17634,17640 ****
  @end table
  
  @node The GNAT Library Browser gnatls,,The File Cleanup Utility gnatclean,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id5}@anchor{13d}@anchor{gnat_ugn/gnat_utility_programs the-gnat-library-browser-gnatls}@anchor{137}
  @section The GNAT Library Browser @code{gnatls}
  
  
--- 17788,17794 ----
  @end table
  
  @node The GNAT Library Browser gnatls,,The File Cleanup Utility gnatclean,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id5}@anchor{13f}@anchor{gnat_ugn/gnat_utility_programs the-gnat-library-browser-gnatls}@anchor{139}
  @section The GNAT Library Browser @code{gnatls}
  
  
*************** as well as various characteristics.
*** 17655,17661 ****
  @end menu
  
  @node Running gnatls,Switches for gnatls,,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id6}@anchor{13e}@anchor{gnat_ugn/gnat_utility_programs running-gnatls}@anchor{13f}
  @subsection Running @code{gnatls}
  
  
--- 17809,17815 ----
  @end menu
  
  @node Running gnatls,Switches for gnatls,,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id6}@anchor{140}@anchor{gnat_ugn/gnat_utility_programs running-gnatls}@anchor{141}
  @subsection Running @code{gnatls}
  
  
*************** version of the same source that has been
*** 17735,17741 ****
  @end table
  
  @node Switches for gnatls,Example of gnatls Usage,Running gnatls,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id7}@anchor{140}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatls}@anchor{141}
  @subsection Switches for @code{gnatls}
  
  
--- 17889,17895 ----
  @end table
  
  @node Switches for gnatls,Example of gnatls Usage,Running gnatls,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id7}@anchor{142}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatls}@anchor{143}
  @subsection Switches for @code{gnatls}
  
  
*************** Several such switches may be specified s
*** 17850,17856 ****
  @item @code{-aO`dir'}, @code{-aI`dir'}, @code{-I`dir'}, @code{-I-}, @code{-nostdinc}
  
  Source path manipulation. Same meaning as the equivalent @code{gnatmake}
! flags (@ref{ce,,Switches for gnatmake}).
  @end table
  
  @geindex -aP (gnatls)
--- 18004,18010 ----
  @item @code{-aO`dir'}, @code{-aI`dir'}, @code{-I`dir'}, @code{-I-}, @code{-nostdinc}
  
  Source path manipulation. Same meaning as the equivalent @code{gnatmake}
! flags (@ref{d0,,Switches for gnatmake}).
  @end table
  
  @geindex -aP (gnatls)
*************** Add @code{dir} at the beginning of the p
*** 17871,17877 ****
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the runtime library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{ce,,Switches for gnatmake}).
  @end table
  
  @geindex -v (gnatls)
--- 18025,18031 ----
  @item @code{--RTS=`rts-path'}
  
  Specifies the default location of the runtime library. Same meaning as the
! equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}).
  @end table
  
  @geindex -v (gnatls)
*************** by the user.
*** 17917,17923 ****
  @end table
  
  @node Example of gnatls Usage,,Switches for gnatls,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs example-of-gnatls-usage}@anchor{142}@anchor{gnat_ugn/gnat_utility_programs id8}@anchor{143}
  @subsection Example of @code{gnatls} Usage
  
  
--- 18071,18077 ----
  @end table
  
  @node Example of gnatls Usage,,Switches for gnatls,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs example-of-gnatls-usage}@anchor{144}@anchor{gnat_ugn/gnat_utility_programs id8}@anchor{145}
  @subsection Example of @code{gnatls} Usage
  
  
*************** instr.ads
*** 18003,18009 ****
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node GNAT and Program Execution,Platform-Specific Information,GNAT Utility Programs,Top
! @anchor{gnat_ugn/gnat_and_program_execution doc}@anchor{144}@anchor{gnat_ugn/gnat_and_program_execution gnat-and-program-execution}@anchor{c}@anchor{gnat_ugn/gnat_and_program_execution id1}@anchor{145}
  @chapter GNAT and Program Execution
  
  
--- 18157,18163 ----
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node GNAT and Program Execution,Platform-Specific Information,GNAT Utility Programs,Top
! @anchor{gnat_ugn/gnat_and_program_execution doc}@anchor{146}@anchor{gnat_ugn/gnat_and_program_execution gnat-and-program-execution}@anchor{c}@anchor{gnat_ugn/gnat_and_program_execution id1}@anchor{147}
  @chapter GNAT and Program Execution
  
  
*************** This chapter covers several topics:
*** 18013,18037 ****
  @itemize *
  
  @item 
! @ref{146,,Running and Debugging Ada Programs}
  
  @item 
! @ref{147,,Profiling}
  
  @item 
! @ref{148,,Improving Performance}
  
  @item 
! @ref{149,,Overflow Check Handling in GNAT}
  
  @item 
! @ref{14a,,Performing Dimensionality Analysis in GNAT}
  
  @item 
! @ref{14b,,Stack Related Facilities}
  
  @item 
! @ref{14c,,Memory Management Issues}
  @end itemize
  
  @menu
--- 18167,18191 ----
  @itemize *
  
  @item 
! @ref{148,,Running and Debugging Ada Programs}
  
  @item 
! @ref{149,,Profiling}
  
  @item 
! @ref{14a,,Improving Performance}
  
  @item 
! @ref{14b,,Overflow Check Handling in GNAT}
  
  @item 
! @ref{14c,,Performing Dimensionality Analysis in GNAT}
  
  @item 
! @ref{14d,,Stack Related Facilities}
  
  @item 
! @ref{14e,,Memory Management Issues}
  @end itemize
  
  @menu
*************** This chapter covers several topics:
*** 18046,18052 ****
  @end menu
  
  @node Running and Debugging Ada Programs,Profiling,,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id2}@anchor{146}@anchor{gnat_ugn/gnat_and_program_execution running-and-debugging-ada-programs}@anchor{14d}
  @section Running and Debugging Ada Programs
  
  
--- 18200,18206 ----
  @end menu
  
  @node Running and Debugging Ada Programs,Profiling,,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id2}@anchor{148}@anchor{gnat_ugn/gnat_and_program_execution running-and-debugging-ada-programs}@anchor{14f}
  @section Running and Debugging Ada Programs
  
  
*************** the incorrect user program.
*** 18100,18106 ****
  @end menu
  
  @node The GNAT Debugger GDB,Running GDB,,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id3}@anchor{14e}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debugger-gdb}@anchor{14f}
  @subsection The GNAT Debugger GDB
  
  
--- 18254,18260 ----
  @end menu
  
  @node The GNAT Debugger GDB,Running GDB,,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id3}@anchor{150}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debugger-gdb}@anchor{151}
  @subsection The GNAT Debugger GDB
  
  
*************** the debugging information and can respon
*** 18157,18163 ****
  variables, and more generally to report on the state of execution.
  
  @node Running GDB,Introduction to GDB Commands,The GNAT Debugger GDB,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id4}@anchor{150}@anchor{gnat_ugn/gnat_and_program_execution running-gdb}@anchor{151}
  @subsection Running GDB
  
  
--- 18311,18317 ----
  variables, and more generally to report on the state of execution.
  
  @node Running GDB,Introduction to GDB Commands,The GNAT Debugger GDB,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id4}@anchor{152}@anchor{gnat_ugn/gnat_and_program_execution running-gdb}@anchor{153}
  @subsection Running GDB
  
  
*************** exactly as if the debugger were not pres
*** 18184,18190 ****
  describes some of the additional commands that can be given to @code{GDB}.
  
  @node Introduction to GDB Commands,Using Ada Expressions,Running GDB,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id5}@anchor{152}@anchor{gnat_ugn/gnat_and_program_execution introduction-to-gdb-commands}@anchor{153}
  @subsection Introduction to GDB Commands
  
  
--- 18338,18344 ----
  describes some of the additional commands that can be given to @code{GDB}.
  
  @node Introduction to GDB Commands,Using Ada Expressions,Running GDB,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id5}@anchor{154}@anchor{gnat_ugn/gnat_and_program_execution introduction-to-gdb-commands}@anchor{155}
  @subsection Introduction to GDB Commands
  
  
*************** Note that most commands can be abbreviat
*** 18392,18398 ****
  (for example, c for continue, bt for backtrace).
  
  @node Using Ada Expressions,Calling User-Defined Subprograms,Introduction to GDB Commands,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id6}@anchor{154}@anchor{gnat_ugn/gnat_and_program_execution using-ada-expressions}@anchor{155}
  @subsection Using Ada Expressions
  
  
--- 18546,18552 ----
  (for example, c for continue, bt for backtrace).
  
  @node Using Ada Expressions,Calling User-Defined Subprograms,Introduction to GDB Commands,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id6}@anchor{156}@anchor{gnat_ugn/gnat_and_program_execution using-ada-expressions}@anchor{157}
  @subsection Using Ada Expressions
  
  
*************** their packages, regardless of context. W
*** 18430,18436 ****
  For details on the supported Ada syntax, see @cite{Debugging with GDB}.
  
  @node Calling User-Defined Subprograms,Using the next Command in a Function,Using Ada Expressions,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution calling-user-defined-subprograms}@anchor{156}@anchor{gnat_ugn/gnat_and_program_execution id7}@anchor{157}
  @subsection Calling User-Defined Subprograms
  
  
--- 18584,18590 ----
  For details on the supported Ada syntax, see @cite{Debugging with GDB}.
  
  @node Calling User-Defined Subprograms,Using the next Command in a Function,Using Ada Expressions,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution calling-user-defined-subprograms}@anchor{158}@anchor{gnat_ugn/gnat_and_program_execution id7}@anchor{159}
  @subsection Calling User-Defined Subprograms
  
  
*************** elements directly from GDB, you can writ
*** 18489,18495 ****
  the elements in the desired format.
  
  @node Using the next Command in a Function,Stopping When Ada Exceptions Are Raised,Calling User-Defined Subprograms,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id8}@anchor{158}@anchor{gnat_ugn/gnat_and_program_execution using-the-next-command-in-a-function}@anchor{159}
  @subsection Using the `next' Command in a Function
  
  
--- 18643,18649 ----
  the elements in the desired format.
  
  @node Using the next Command in a Function,Stopping When Ada Exceptions Are Raised,Calling User-Defined Subprograms,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id8}@anchor{15a}@anchor{gnat_ugn/gnat_and_program_execution using-the-next-command-in-a-function}@anchor{15b}
  @subsection Using the `next' Command in a Function
  
  
*************** The value returned is always that from t
*** 18512,18518 ****
  that was stepped through.
  
  @node Stopping When Ada Exceptions Are Raised,Ada Tasks,Using the next Command in a Function,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id9}@anchor{15a}@anchor{gnat_ugn/gnat_and_program_execution stopping-when-ada-exceptions-are-raised}@anchor{15b}
  @subsection Stopping When Ada Exceptions Are Raised
  
  
--- 18666,18672 ----
  that was stepped through.
  
  @node Stopping When Ada Exceptions Are Raised,Ada Tasks,Using the next Command in a Function,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id9}@anchor{15c}@anchor{gnat_ugn/gnat_and_program_execution stopping-when-ada-exceptions-are-raised}@anchor{15d}
  @subsection Stopping When Ada Exceptions Are Raised
  
  
*************** argument, prints out only those exceptio
*** 18569,18575 ****
  @geindex Tasks (in gdb)
  
  @node Ada Tasks,Debugging Generic Units,Stopping When Ada Exceptions Are Raised,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution ada-tasks}@anchor{15c}@anchor{gnat_ugn/gnat_and_program_execution id10}@anchor{15d}
  @subsection Ada Tasks
  
  
--- 18723,18729 ----
  @geindex Tasks (in gdb)
  
  @node Ada Tasks,Debugging Generic Units,Stopping When Ada Exceptions Are Raised,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution ada-tasks}@anchor{15e}@anchor{gnat_ugn/gnat_and_program_execution id10}@anchor{15f}
  @subsection Ada Tasks
  
  
*************** see @cite{Debugging with GDB}.
*** 18656,18662 ****
  @geindex Generics
  
  @node Debugging Generic Units,Remote Debugging with gdbserver,Ada Tasks,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution debugging-generic-units}@anchor{15e}@anchor{gnat_ugn/gnat_and_program_execution id11}@anchor{15f}
  @subsection Debugging Generic Units
  
  
--- 18810,18816 ----
  @geindex Generics
  
  @node Debugging Generic Units,Remote Debugging with gdbserver,Ada Tasks,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution debugging-generic-units}@anchor{160}@anchor{gnat_ugn/gnat_and_program_execution id11}@anchor{161}
  @subsection Debugging Generic Units
  
  
*************** other units.
*** 18715,18721 ****
  @geindex Remote Debugging with gdbserver
  
  @node Remote Debugging with gdbserver,GNAT Abnormal Termination or Failure to Terminate,Debugging Generic Units,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id12}@anchor{160}@anchor{gnat_ugn/gnat_and_program_execution remote-debugging-with-gdbserver}@anchor{161}
  @subsection Remote Debugging with gdbserver
  
  
--- 18869,18875 ----
  @geindex Remote Debugging with gdbserver
  
  @node Remote Debugging with gdbserver,GNAT Abnormal Termination or Failure to Terminate,Debugging Generic Units,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id12}@anchor{162}@anchor{gnat_ugn/gnat_and_program_execution remote-debugging-with-gdbserver}@anchor{163}
  @subsection Remote Debugging with gdbserver
  
  
*************** GNAT provides support for gdbserver on x
*** 18773,18779 ****
  @geindex Abnormal Termination or Failure to Terminate
  
  @node GNAT Abnormal Termination or Failure to Terminate,Naming Conventions for GNAT Source Files,Remote Debugging with gdbserver,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution gnat-abnormal-termination-or-failure-to-terminate}@anchor{162}@anchor{gnat_ugn/gnat_and_program_execution id13}@anchor{163}
  @subsection GNAT Abnormal Termination or Failure to Terminate
  
  
--- 18927,18933 ----
  @geindex Abnormal Termination or Failure to Terminate
  
  @node GNAT Abnormal Termination or Failure to Terminate,Naming Conventions for GNAT Source Files,Remote Debugging with gdbserver,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution gnat-abnormal-termination-or-failure-to-terminate}@anchor{164}@anchor{gnat_ugn/gnat_and_program_execution id13}@anchor{165}
  @subsection GNAT Abnormal Termination or Failure to Terminate
  
  
*************** Finally, you can start
*** 18828,18834 ****
  @code{gdb} directly on the @code{gnat1} executable. @code{gnat1} is the
  front-end of GNAT, and can be run independently (normally it is just
  called from @code{gcc}). You can use @code{gdb} on @code{gnat1} as you
! would on a C program (but @ref{14f,,The GNAT Debugger GDB} for caveats). The
  @code{where} command is the first line of attack; the variable
  @code{lineno} (seen by @code{print lineno}), used by the second phase of
  @code{gnat1} and by the @code{gcc} backend, indicates the source line at
--- 18982,18988 ----
  @code{gdb} directly on the @code{gnat1} executable. @code{gnat1} is the
  front-end of GNAT, and can be run independently (normally it is just
  called from @code{gcc}). You can use @code{gdb} on @code{gnat1} as you
! would on a C program (but @ref{151,,The GNAT Debugger GDB} for caveats). The
  @code{where} command is the first line of attack; the variable
  @code{lineno} (seen by @code{print lineno}), used by the second phase of
  @code{gnat1} and by the @code{gcc} backend, indicates the source line at
*************** the source file.
*** 18837,18843 ****
  @end itemize
  
  @node Naming Conventions for GNAT Source Files,Getting Internal Debugging Information,GNAT Abnormal Termination or Failure to Terminate,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id14}@anchor{164}@anchor{gnat_ugn/gnat_and_program_execution naming-conventions-for-gnat-source-files}@anchor{165}
  @subsection Naming Conventions for GNAT Source Files
  
  
--- 18991,18997 ----
  @end itemize
  
  @node Naming Conventions for GNAT Source Files,Getting Internal Debugging Information,GNAT Abnormal Termination or Failure to Terminate,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id14}@anchor{166}@anchor{gnat_ugn/gnat_and_program_execution naming-conventions-for-gnat-source-files}@anchor{167}
  @subsection Naming Conventions for GNAT Source Files
  
  
*************** the other @code{.c} files are modificati
*** 18918,18924 ****
  @end itemize
  
  @node Getting Internal Debugging Information,Stack Traceback,Naming Conventions for GNAT Source Files,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution getting-internal-debugging-information}@anchor{166}@anchor{gnat_ugn/gnat_and_program_execution id15}@anchor{167}
  @subsection Getting Internal Debugging Information
  
  
--- 19072,19078 ----
  @end itemize
  
  @node Getting Internal Debugging Information,Stack Traceback,Naming Conventions for GNAT Source Files,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution getting-internal-debugging-information}@anchor{168}@anchor{gnat_ugn/gnat_and_program_execution id15}@anchor{169}
  @subsection Getting Internal Debugging Information
  
  
*************** are replaced with run-time calls.
*** 18946,18952 ****
  @geindex stack unwinding
  
  @node Stack Traceback,Pretty-Printers for the GNAT runtime,Getting Internal Debugging Information,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id16}@anchor{168}@anchor{gnat_ugn/gnat_and_program_execution stack-traceback}@anchor{169}
  @subsection Stack Traceback
  
  
--- 19100,19106 ----
  @geindex stack unwinding
  
  @node Stack Traceback,Pretty-Printers for the GNAT runtime,Getting Internal Debugging Information,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id16}@anchor{16a}@anchor{gnat_ugn/gnat_and_program_execution stack-traceback}@anchor{16b}
  @subsection Stack Traceback
  
  
*************** is enabled, and no exception is raised d
*** 18975,18981 ****
  @end menu
  
  @node Non-Symbolic Traceback,Symbolic Traceback,,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id17}@anchor{16a}@anchor{gnat_ugn/gnat_and_program_execution non-symbolic-traceback}@anchor{16b}
  @subsubsection Non-Symbolic Traceback
  
  
--- 19129,19135 ----
  @end menu
  
  @node Non-Symbolic Traceback,Symbolic Traceback,,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id17}@anchor{16c}@anchor{gnat_ugn/gnat_and_program_execution non-symbolic-traceback}@anchor{16d}
  @subsubsection Non-Symbolic Traceback
  
  
*************** To enable this feature you must use the
*** 18991,18997 ****
  this option a stack traceback is stored as part of exception information.
  
  You can translate this information using the @code{addr2line} tool, provided that
! the program is compiled with debugging options (see @ref{db,,Compiler Switches})
  and linked at a fixed position with @code{-no-pie}.
  
  Here is a simple example with @code{gnatmake}:
--- 19145,19151 ----
  this option a stack traceback is stored as part of exception information.
  
  You can translate this information using the @code{addr2line} tool, provided that
! the program is compiled with debugging options (see @ref{dd,,Compiler Switches})
  and linked at a fixed position with @code{-no-pie}.
  
  Here is a simple example with @code{gnatmake}:
*************** $ addr2line -e stb -a -f -p --demangle=g
*** 19108,19114 ****
  From this traceback we can see that the exception was raised in @code{stb.adb}
  at line 5, which was reached from a procedure call in @code{stb.adb} at line
  10, and so on. The @code{b~std.adb} is the binder file, which contains the
! call to the main program. @ref{10e,,Running gnatbind}. The remaining entries are
  assorted runtime routines and the output will vary from platform to platform.
  
  It is also possible to use @code{GDB} with these traceback addresses to debug
--- 19262,19268 ----
  From this traceback we can see that the exception was raised in @code{stb.adb}
  at line 5, which was reached from a procedure call in @code{stb.adb} at line
  10, and so on. The @code{b~std.adb} is the binder file, which contains the
! call to the main program. @ref{110,,Running gnatbind}. The remaining entries are
  assorted runtime routines and the output will vary from platform to platform.
  
  It is also possible to use @code{GDB} with these traceback addresses to debug
*************** addresses need to be specified in C form
*** 19296,19302 ****
  @geindex symbolic
  
  @node Symbolic Traceback,,Non-Symbolic Traceback,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id18}@anchor{16c}@anchor{gnat_ugn/gnat_and_program_execution symbolic-traceback}@anchor{16d}
  @subsubsection Symbolic Traceback
  
  
--- 19450,19456 ----
  @geindex symbolic
  
  @node Symbolic Traceback,,Non-Symbolic Traceback,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id18}@anchor{16e}@anchor{gnat_ugn/gnat_and_program_execution symbolic-traceback}@anchor{16f}
  @subsubsection Symbolic Traceback
  
  
*************** which will also be printed if an unhandl
*** 19415,19421 ****
  program.
  
  @node Pretty-Printers for the GNAT runtime,,Stack Traceback,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id19}@anchor{16e}@anchor{gnat_ugn/gnat_and_program_execution pretty-printers-for-the-gnat-runtime}@anchor{16f}
  @subsection Pretty-Printers for the GNAT runtime
  
  
--- 19569,19575 ----
  program.
  
  @node Pretty-Printers for the GNAT runtime,,Stack Traceback,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id19}@anchor{170}@anchor{gnat_ugn/gnat_and_program_execution pretty-printers-for-the-gnat-runtime}@anchor{171}
  @subsection Pretty-Printers for the GNAT runtime
  
  
*************** for more information.
*** 19522,19528 ****
  @geindex Profiling
  
  @node Profiling,Improving Performance,Running and Debugging Ada Programs,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id20}@anchor{170}@anchor{gnat_ugn/gnat_and_program_execution profiling}@anchor{147}
  @section Profiling
  
  
--- 19676,19682 ----
  @geindex Profiling
  
  @node Profiling,Improving Performance,Running and Debugging Ada Programs,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id20}@anchor{172}@anchor{gnat_ugn/gnat_and_program_execution profiling}@anchor{149}
  @section Profiling
  
  
*************** This section describes how to use the @c
*** 19538,19544 ****
  @end menu
  
  @node Profiling an Ada Program with gprof,,,Profiling
! @anchor{gnat_ugn/gnat_and_program_execution id21}@anchor{171}@anchor{gnat_ugn/gnat_and_program_execution profiling-an-ada-program-with-gprof}@anchor{172}
  @subsection Profiling an Ada Program with gprof
  
  
--- 19692,19698 ----
  @end menu
  
  @node Profiling an Ada Program with gprof,,,Profiling
! @anchor{gnat_ugn/gnat_and_program_execution id21}@anchor{173}@anchor{gnat_ugn/gnat_and_program_execution profiling-an-ada-program-with-gprof}@anchor{174}
  @subsection Profiling an Ada Program with gprof
  
  
*************** to interpret the results.
*** 19592,19598 ****
  @end menu
  
  @node Compilation for profiling,Program execution,,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution compilation-for-profiling}@anchor{173}@anchor{gnat_ugn/gnat_and_program_execution id22}@anchor{174}
  @subsubsection Compilation for profiling
  
  
--- 19746,19752 ----
  @end menu
  
  @node Compilation for profiling,Program execution,,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution compilation-for-profiling}@anchor{175}@anchor{gnat_ugn/gnat_and_program_execution id22}@anchor{176}
  @subsubsection Compilation for profiling
  
  
*************** Note that on Windows, gprof does not sup
*** 19623,19629 ****
  should be added to the linker flags to disable this feature.
  
  @node Program execution,Running gprof,Compilation for profiling,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id23}@anchor{175}@anchor{gnat_ugn/gnat_and_program_execution program-execution}@anchor{176}
  @subsubsection Program execution
  
  
--- 19777,19783 ----
  should be added to the linker flags to disable this feature.
  
  @node Program execution,Running gprof,Compilation for profiling,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id23}@anchor{177}@anchor{gnat_ugn/gnat_and_program_execution program-execution}@anchor{178}
  @subsubsection Program execution
  
  
*************** generated in the directory where the pro
*** 19638,19644 ****
  already exists, it will be overwritten.
  
  @node Running gprof,Interpretation of profiling results,Program execution,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id24}@anchor{177}@anchor{gnat_ugn/gnat_and_program_execution running-gprof}@anchor{178}
  @subsubsection Running gprof
  
  
--- 19792,19798 ----
  already exists, it will be overwritten.
  
  @node Running gprof,Interpretation of profiling results,Program execution,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id24}@anchor{179}@anchor{gnat_ugn/gnat_and_program_execution running-gprof}@anchor{17a}
  @subsubsection Running gprof
  
  
*************** may be given; only one @code{function_na
*** 19751,19757 ****
  @end table
  
  @node Interpretation of profiling results,,Running gprof,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id25}@anchor{179}@anchor{gnat_ugn/gnat_and_program_execution interpretation-of-profiling-results}@anchor{17a}
  @subsubsection Interpretation of profiling results
  
  
--- 19905,19911 ----
  @end table
  
  @node Interpretation of profiling results,,Running gprof,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id25}@anchor{17b}@anchor{gnat_ugn/gnat_and_program_execution interpretation-of-profiling-results}@anchor{17c}
  @subsubsection Interpretation of profiling results
  
  
*************** and the subprograms that it calls. It al
*** 19768,19774 ****
  spent in each of those callers/called subprograms.
  
  @node Improving Performance,Overflow Check Handling in GNAT,Profiling,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id26}@anchor{148}@anchor{gnat_ugn/gnat_and_program_execution improving-performance}@anchor{17b}
  @section Improving Performance
  
  
--- 19922,19928 ----
  spent in each of those callers/called subprograms.
  
  @node Improving Performance,Overflow Check Handling in GNAT,Profiling,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id26}@anchor{14a}@anchor{gnat_ugn/gnat_and_program_execution improving-performance}@anchor{17d}
  @section Improving Performance
  
  
*************** which can reduce the size of program exe
*** 19789,19795 ****
  @end menu
  
  @node Performance Considerations,Text_IO Suggestions,,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id27}@anchor{17c}@anchor{gnat_ugn/gnat_and_program_execution performance-considerations}@anchor{17d}
  @subsection Performance Considerations
  
  
--- 19943,19949 ----
  @end menu
  
  @node Performance Considerations,Text_IO Suggestions,,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id27}@anchor{17e}@anchor{gnat_ugn/gnat_and_program_execution performance-considerations}@anchor{17f}
  @subsection Performance Considerations
  
  
*************** some guidelines on debugging optimized c
*** 19850,19856 ****
  @end menu
  
  @node Controlling Run-Time Checks,Use of Restrictions,,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution controlling-run-time-checks}@anchor{17e}@anchor{gnat_ugn/gnat_and_program_execution id28}@anchor{17f}
  @subsubsection Controlling Run-Time Checks
  
  
--- 20004,20010 ----
  @end menu
  
  @node Controlling Run-Time Checks,Use of Restrictions,,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution controlling-run-time-checks}@anchor{180}@anchor{gnat_ugn/gnat_and_program_execution id28}@anchor{181}
  @subsubsection Controlling Run-Time Checks
  
  
*************** necessary checking is done at compile ti
*** 19864,19870 ****
  @geindex -gnato (gcc)
  
  The gnat switch, @code{-gnatp} allows this default to be modified. See
! @ref{ea,,Run-Time Checks}.
  
  Our experience is that the default is suitable for most development
  purposes.
--- 20018,20024 ----
  @geindex -gnato (gcc)
  
  The gnat switch, @code{-gnatp} allows this default to be modified. See
! @ref{ec,,Run-Time Checks}.
  
  Our experience is that the default is suitable for most development
  purposes.
*************** remove checks) or @code{pragma Unsuppres
*** 19902,19908 ****
  checks) in the program source.
  
  @node Use of Restrictions,Optimization Levels,Controlling Run-Time Checks,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id29}@anchor{180}@anchor{gnat_ugn/gnat_and_program_execution use-of-restrictions}@anchor{181}
  @subsubsection Use of Restrictions
  
  
--- 20056,20062 ----
  checks) in the program source.
  
  @node Use of Restrictions,Optimization Levels,Controlling Run-Time Checks,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id29}@anchor{182}@anchor{gnat_ugn/gnat_and_program_execution use-of-restrictions}@anchor{183}
  @subsubsection Use of Restrictions
  
  
*************** that this also means that you can write
*** 19937,19943 ****
  possibility of an immediate abort at any point.
  
  @node Optimization Levels,Debugging Optimized Code,Use of Restrictions,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id30}@anchor{182}@anchor{gnat_ugn/gnat_and_program_execution optimization-levels}@anchor{ed}
  @subsubsection Optimization Levels
  
  
--- 20091,20097 ----
  possibility of an immediate abort at any point.
  
  @node Optimization Levels,Debugging Optimized Code,Use of Restrictions,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id30}@anchor{184}@anchor{gnat_ugn/gnat_and_program_execution optimization-levels}@anchor{ef}
  @subsubsection Optimization Levels
  
  
*************** the slowest compilation time.
*** 20018,20024 ****
  
  Full optimization as in @code{-O2};
  also uses more aggressive automatic inlining of subprograms within a unit
! (@ref{100,,Inlining of Subprograms}) and attempts to vectorize loops.
  @end table
  
  @item 
--- 20172,20178 ----
  
  Full optimization as in @code{-O2};
  also uses more aggressive automatic inlining of subprograms within a unit
! (@ref{102,,Inlining of Subprograms}) and attempts to vectorize loops.
  @end table
  
  @item 
*************** levels.
*** 20058,20067 ****
  Note regarding the use of @code{-O3}: The use of this optimization level
  ought not to be automatically preferred over that of level @code{-O2},
  since it often results in larger executables which may run more slowly.
! See further discussion of this point in @ref{100,,Inlining of Subprograms}.
  
  @node Debugging Optimized Code,Inlining of Subprograms,Optimization Levels,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution debugging-optimized-code}@anchor{183}@anchor{gnat_ugn/gnat_and_program_execution id31}@anchor{184}
  @subsubsection Debugging Optimized Code
  
  
--- 20212,20221 ----
  Note regarding the use of @code{-O3}: The use of this optimization level
  ought not to be automatically preferred over that of level @code{-O2},
  since it often results in larger executables which may run more slowly.
! See further discussion of this point in @ref{102,,Inlining of Subprograms}.
  
  @node Debugging Optimized Code,Inlining of Subprograms,Optimization Levels,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution debugging-optimized-code}@anchor{185}@anchor{gnat_ugn/gnat_and_program_execution id31}@anchor{186}
  @subsubsection Debugging Optimized Code
  
  
*************** on the resulting executable,
*** 20189,20195 ****
  which removes both debugging information and global symbols.
  
  @node Inlining of Subprograms,Floating Point Operations,Debugging Optimized Code,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id32}@anchor{185}@anchor{gnat_ugn/gnat_and_program_execution inlining-of-subprograms}@anchor{100}
  @subsubsection Inlining of Subprograms
  
  
--- 20343,20349 ----
  which removes both debugging information and global symbols.
  
  @node Inlining of Subprograms,Floating Point Operations,Debugging Optimized Code,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id32}@anchor{187}@anchor{gnat_ugn/gnat_and_program_execution inlining-of-subprograms}@anchor{102}
  @subsubsection Inlining of Subprograms
  
  
*************** indeed you should use @code{-O3} only if
*** 20328,20334 ****
  improves performance for your program.
  
  @node Floating Point Operations,Vectorization of loops,Inlining of Subprograms,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution floating-point-operations}@anchor{186}@anchor{gnat_ugn/gnat_and_program_execution id33}@anchor{187}
  @subsubsection Floating Point Operations
  
  
--- 20482,20488 ----
  improves performance for your program.
  
  @node Floating Point Operations,Vectorization of loops,Inlining of Subprograms,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution floating-point-operations}@anchor{188}@anchor{gnat_ugn/gnat_and_program_execution id33}@anchor{189}
  @subsubsection Floating Point Operations
  
  
*************** so it is permissible to mix units compil
*** 20376,20382 ****
  switches.
  
  @node Vectorization of loops,Other Optimization Switches,Floating Point Operations,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id34}@anchor{188}@anchor{gnat_ugn/gnat_and_program_execution vectorization-of-loops}@anchor{189}
  @subsubsection Vectorization of loops
  
  
--- 20530,20536 ----
  switches.
  
  @node Vectorization of loops,Other Optimization Switches,Floating Point Operations,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id34}@anchor{18a}@anchor{gnat_ugn/gnat_and_program_execution vectorization-of-loops}@anchor{18b}
  @subsubsection Vectorization of loops
  
  
*************** placed immediately within the loop will
*** 20527,20533 ****
  omit the non-vectorized version of the loop as well as the run-time test.
  
  @node Other Optimization Switches,Optimization and Strict Aliasing,Vectorization of loops,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id35}@anchor{18a}@anchor{gnat_ugn/gnat_and_program_execution other-optimization-switches}@anchor{18b}
  @subsubsection Other Optimization Switches
  
  
--- 20681,20687 ----
  omit the non-vectorized version of the loop as well as the run-time test.
  
  @node Other Optimization Switches,Optimization and Strict Aliasing,Vectorization of loops,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id35}@anchor{18c}@anchor{gnat_ugn/gnat_and_program_execution other-optimization-switches}@anchor{18d}
  @subsubsection Other Optimization Switches
  
  
*************** the `Submodel Options' section in the `H
*** 20544,20550 ****
  chapter of @cite{Using the GNU Compiler Collection (GCC)}.
  
  @node Optimization and Strict Aliasing,Aliased Variables and Optimization,Other Optimization Switches,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id36}@anchor{18c}@anchor{gnat_ugn/gnat_and_program_execution optimization-and-strict-aliasing}@anchor{e4}
  @subsubsection Optimization and Strict Aliasing
  
  
--- 20698,20704 ----
  chapter of @cite{Using the GNU Compiler Collection (GCC)}.
  
  @node Optimization and Strict Aliasing,Aliased Variables and Optimization,Other Optimization Switches,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id36}@anchor{18e}@anchor{gnat_ugn/gnat_and_program_execution optimization-and-strict-aliasing}@anchor{e6}
  @subsubsection Optimization and Strict Aliasing
  
  
*************** review any uses of unchecked conversion
*** 20784,20790 ****
  particularly if you are getting the warnings described above.
  
  @node Aliased Variables and Optimization,Atomic Variables and Optimization,Optimization and Strict Aliasing,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution aliased-variables-and-optimization}@anchor{18d}@anchor{gnat_ugn/gnat_and_program_execution id37}@anchor{18e}
  @subsubsection Aliased Variables and Optimization
  
  
--- 20938,20944 ----
  particularly if you are getting the warnings described above.
  
  @node Aliased Variables and Optimization,Atomic Variables and Optimization,Optimization and Strict Aliasing,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution aliased-variables-and-optimization}@anchor{18f}@anchor{gnat_ugn/gnat_and_program_execution id37}@anchor{190}
  @subsubsection Aliased Variables and Optimization
  
  
*************** This means that the above example will i
*** 20842,20848 ****
  that is, it will produce the expected results.
  
  @node Atomic Variables and Optimization,Passive Task Optimization,Aliased Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution atomic-variables-and-optimization}@anchor{18f}@anchor{gnat_ugn/gnat_and_program_execution id38}@anchor{190}
  @subsubsection Atomic Variables and Optimization
  
  
--- 20996,21002 ----
  that is, it will produce the expected results.
  
  @node Atomic Variables and Optimization,Passive Task Optimization,Aliased Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution atomic-variables-and-optimization}@anchor{191}@anchor{gnat_ugn/gnat_and_program_execution id38}@anchor{192}
  @subsubsection Atomic Variables and Optimization
  
  
*************** such synchronization code is not require
*** 20923,20929 ****
  useful to disable it.
  
  @node Passive Task Optimization,,Atomic Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id39}@anchor{191}@anchor{gnat_ugn/gnat_and_program_execution passive-task-optimization}@anchor{192}
  @subsubsection Passive Task Optimization
  
  
--- 21077,21083 ----
  useful to disable it.
  
  @node Passive Task Optimization,,Atomic Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id39}@anchor{193}@anchor{gnat_ugn/gnat_and_program_execution passive-task-optimization}@anchor{194}
  @subsubsection Passive Task Optimization
  
  
*************** that typically clients of the tasks who
*** 20968,20974 ****
  to be modified, only the task definition itself.
  
  @node Text_IO Suggestions,Reducing Size of Executables with Unused Subprogram/Data Elimination,Performance Considerations,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id40}@anchor{193}@anchor{gnat_ugn/gnat_and_program_execution text-io-suggestions}@anchor{194}
  @subsection @code{Text_IO} Suggestions
  
  
--- 21122,21128 ----
  to be modified, only the task definition itself.
  
  @node Text_IO Suggestions,Reducing Size of Executables with Unused Subprogram/Data Elimination,Performance Considerations,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id40}@anchor{195}@anchor{gnat_ugn/gnat_and_program_execution text-io-suggestions}@anchor{196}
  @subsection @code{Text_IO} Suggestions
  
  
*************** of the standard output file, or change t
*** 20991,20997 ****
  be buffered using @code{Interfaces.C_Streams.setvbuf}.
  
  @node Reducing Size of Executables with Unused Subprogram/Data Elimination,,Text_IO Suggestions,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id41}@anchor{195}@anchor{gnat_ugn/gnat_and_program_execution reducing-size-of-executables-with-unused-subprogram-data-elimination}@anchor{196}
  @subsection Reducing Size of Executables with Unused Subprogram/Data Elimination
  
  
--- 21145,21151 ----
  be buffered using @code{Interfaces.C_Streams.setvbuf}.
  
  @node Reducing Size of Executables with Unused Subprogram/Data Elimination,,Text_IO Suggestions,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id41}@anchor{197}@anchor{gnat_ugn/gnat_and_program_execution reducing-size-of-executables-with-unused-subprogram-data-elimination}@anchor{198}
  @subsection Reducing Size of Executables with Unused Subprogram/Data Elimination
  
  
*************** your executable just by setting options
*** 21008,21014 ****
  @end menu
  
  @node About unused subprogram/data elimination,Compilation options,,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution about-unused-subprogram-data-elimination}@anchor{197}@anchor{gnat_ugn/gnat_and_program_execution id42}@anchor{198}
  @subsubsection About unused subprogram/data elimination
  
  
--- 21162,21168 ----
  @end menu
  
  @node About unused subprogram/data elimination,Compilation options,,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution about-unused-subprogram-data-elimination}@anchor{199}@anchor{gnat_ugn/gnat_and_program_execution id42}@anchor{19a}
  @subsubsection About unused subprogram/data elimination
  
  
*************** architecture and on all cross platforms
*** 21024,21030 ****
  In both cases GNU binutils version 2.16 or later are required to enable it.
  
  @node Compilation options,Example of unused subprogram/data elimination,About unused subprogram/data elimination,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution compilation-options}@anchor{199}@anchor{gnat_ugn/gnat_and_program_execution id43}@anchor{19a}
  @subsubsection Compilation options
  
  
--- 21178,21184 ----
  In both cases GNU binutils version 2.16 or later are required to enable it.
  
  @node Compilation options,Example of unused subprogram/data elimination,About unused subprogram/data elimination,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution compilation-options}@anchor{19b}@anchor{gnat_ugn/gnat_and_program_execution id43}@anchor{19c}
  @subsubsection Compilation options
  
  
*************** The GNAT static library is now compiled
*** 21063,21069 ****
  and data of the GNAT library from your executable.
  
  @node Example of unused subprogram/data elimination,,Compilation options,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution example-of-unused-subprogram-data-elimination}@anchor{19b}@anchor{gnat_ugn/gnat_and_program_execution id44}@anchor{19c}
  @subsubsection Example of unused subprogram/data elimination
  
  
--- 21217,21223 ----
  and data of the GNAT library from your executable.
  
  @node Example of unused subprogram/data elimination,,Compilation options,Reducing Size of Executables with Unused Subprogram/Data Elimination
! @anchor{gnat_ugn/gnat_and_program_execution example-of-unused-subprogram-data-elimination}@anchor{19d}@anchor{gnat_ugn/gnat_and_program_execution id44}@anchor{19e}
  @subsubsection Example of unused subprogram/data elimination
  
  
*************** appropriate options.
*** 21133,21139 ****
  @geindex Checks (overflow)
  
  @node Overflow Check Handling in GNAT,Performing Dimensionality Analysis in GNAT,Improving Performance,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id45}@anchor{149}@anchor{gnat_ugn/gnat_and_program_execution overflow-check-handling-in-gnat}@anchor{19d}
  @section Overflow Check Handling in GNAT
  
  
--- 21287,21293 ----
  @geindex Checks (overflow)
  
  @node Overflow Check Handling in GNAT,Performing Dimensionality Analysis in GNAT,Improving Performance,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id45}@anchor{14b}@anchor{gnat_ugn/gnat_and_program_execution overflow-check-handling-in-gnat}@anchor{19f}
  @section Overflow Check Handling in GNAT
  
  
*************** This section explains how to control the
*** 21149,21155 ****
  @end menu
  
  @node Background,Management of Overflows in GNAT,,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution background}@anchor{19e}@anchor{gnat_ugn/gnat_and_program_execution id46}@anchor{19f}
  @subsection Background
  
  
--- 21303,21309 ----
  @end menu
  
  @node Background,Management of Overflows in GNAT,,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution background}@anchor{1a0}@anchor{gnat_ugn/gnat_and_program_execution id46}@anchor{1a1}
  @subsection Background
  
  
*************** exception raised because of the intermed
*** 21275,21281 ****
  would prefer this precondition to be considered True at run time).
  
  @node Management of Overflows in GNAT,Specifying the Desired Mode,Background,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id47}@anchor{1a0}@anchor{gnat_ugn/gnat_and_program_execution management-of-overflows-in-gnat}@anchor{1a1}
  @subsection Management of Overflows in GNAT
  
  
--- 21429,21435 ----
  would prefer this precondition to be considered True at run time).
  
  @node Management of Overflows in GNAT,Specifying the Desired Mode,Background,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id47}@anchor{1a2}@anchor{gnat_ugn/gnat_and_program_execution management-of-overflows-in-gnat}@anchor{1a3}
  @subsection Management of Overflows in GNAT
  
  
*************** out in the normal manner (with infinite
*** 21389,21395 ****
  range checks).
  
  @node Specifying the Desired Mode,Default Settings,Management of Overflows in GNAT,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id48}@anchor{1a2}@anchor{gnat_ugn/gnat_and_program_execution specifying-the-desired-mode}@anchor{e9}
  @subsection Specifying the Desired Mode
  
  
--- 21543,21549 ----
  range checks).
  
  @node Specifying the Desired Mode,Default Settings,Management of Overflows in GNAT,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id48}@anchor{1a4}@anchor{gnat_ugn/gnat_and_program_execution specifying-the-desired-mode}@anchor{eb}
  @subsection Specifying the Desired Mode
  
  
*************** causing all intermediate operations to b
*** 21513,21519 ****
  type (@code{STRICT} mode).
  
  @node Default Settings,Implementation Notes,Specifying the Desired Mode,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution default-settings}@anchor{1a3}@anchor{gnat_ugn/gnat_and_program_execution id49}@anchor{1a4}
  @subsection Default Settings
  
  
--- 21667,21673 ----
  type (@code{STRICT} mode).
  
  @node Default Settings,Implementation Notes,Specifying the Desired Mode,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution default-settings}@anchor{1a5}@anchor{gnat_ugn/gnat_and_program_execution id49}@anchor{1a6}
  @subsection Default Settings
  
  
*************** General => Strict
*** 21526,21555 ****
  @end example
  @end quotation
  
! which causes all computations both inside and outside assertions to use
! the base type.
! 
! This retains compatibility with previous versions of
! GNAT which suppressed overflow checks by default and always
! used the base type for computation of intermediate results.
! 
! @c Sphinx allows no emphasis within :index: role. As a workaround we
! @c point the index to "switch" and use emphasis for "-gnato".
! 
! The 
! @geindex -gnato (gcc)
! switch @code{-gnato} (with no digits following)
! is equivalent to
! 
! @quotation
! 
! @example
! General => Strict
! @end example
! @end quotation
! 
! which causes overflow checking of all intermediate overflows
! both inside and outside assertions against the base type.
  
  The pragma @code{Suppress (Overflow_Check)} disables overflow
  checking, but it has no effect on the method used for computing
--- 21680,21687 ----
  @end example
  @end quotation
  
! which causes all computations both inside and outside assertions to use the
! base type, and is equivalent to @code{-gnato} (with no digits following).
  
  The pragma @code{Suppress (Overflow_Check)} disables overflow
  checking, but it has no effect on the method used for computing
*************** checking, but it has no effect on the me
*** 21560,21566 ****
  intermediate results.
  
  @node Implementation Notes,,Default Settings,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id50}@anchor{1a5}@anchor{gnat_ugn/gnat_and_program_execution implementation-notes}@anchor{1a6}
  @subsection Implementation Notes
  
  
--- 21692,21698 ----
  intermediate results.
  
  @node Implementation Notes,,Default Settings,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id50}@anchor{1a7}@anchor{gnat_ugn/gnat_and_program_execution implementation-notes}@anchor{1a8}
  @subsection Implementation Notes
  
  
*************** reasonably efficient, and can be general
*** 21569,21575 ****
  to ensure compatibility with code imported from some other
  compiler to GNAT.
  
! Setting all intermediate overflows checking (@code{CHECKED} mode)
  makes sense if you want to
  make sure that your code is compatible with any other possible
  Ada implementation. This may be useful in ensuring portability
--- 21701,21707 ----
  to ensure compatibility with code imported from some other
  compiler to GNAT.
  
! Setting all intermediate overflows checking (@code{STRICT} mode)
  makes sense if you want to
  make sure that your code is compatible with any other possible
  Ada implementation. This may be useful in ensuring portability
*************** platforms for which @code{Long_Long_Inte
*** 21608,21614 ****
  platforms).
  
  @node Performing Dimensionality Analysis in GNAT,Stack Related Facilities,Overflow Check Handling in GNAT,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id51}@anchor{14a}@anchor{gnat_ugn/gnat_and_program_execution performing-dimensionality-analysis-in-gnat}@anchor{1a7}
  @section Performing Dimensionality Analysis in GNAT
  
  
--- 21740,21746 ----
  platforms).
  
  @node Performing Dimensionality Analysis in GNAT,Stack Related Facilities,Overflow Check Handling in GNAT,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id51}@anchor{14c}@anchor{gnat_ugn/gnat_and_program_execution performing-dimensionality-analysis-in-gnat}@anchor{1a9}
  @section Performing Dimensionality Analysis in GNAT
  
  
*************** requires @code{DV(Source)} = @code{DV(Ta
*** 21994,22001 ****
  passing (the dimension vector for the actual parameter must be equal to the
  dimension vector for the formal parameter).
  
  @node Stack Related Facilities,Memory Management Issues,Performing Dimensionality Analysis in GNAT,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id52}@anchor{14b}@anchor{gnat_ugn/gnat_and_program_execution stack-related-facilities}@anchor{1a8}
  @section Stack Related Facilities
  
  
--- 22126,22149 ----
  passing (the dimension vector for the actual parameter must be equal to the
  dimension vector for the formal parameter).
  
+ When using dimensioned types with elementary functions it is necessary to
+ instantiate the @code{Ada.Numerics.Generic_Elementary_Functions} package using
+ the @code{Mks_Type} and not any of the derived subtypes such as @code{Distance}.
+ For functions such as @code{Sqrt} the dimensional analysis will fail when using
+ the subtypes because both the parameter and return are of the same type.
+ 
+ An example instantiation
+ 
+ @quotation
+ 
+ @example
+ package Mks_Numerics is new
+    Ada.Numerics.Generic_Elementary_Functions (System.Dim.Mks.Mks_Type);
+ @end example
+ @end quotation
+ 
  @node Stack Related Facilities,Memory Management Issues,Performing Dimensionality Analysis in GNAT,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id52}@anchor{14d}@anchor{gnat_ugn/gnat_and_program_execution stack-related-facilities}@anchor{1aa}
  @section Stack Related Facilities
  
  
*************** particular, it deals with dynamic and st
*** 22011,22017 ****
  @end menu
  
  @node Stack Overflow Checking,Static Stack Usage Analysis,,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id53}@anchor{1a9}@anchor{gnat_ugn/gnat_and_program_execution stack-overflow-checking}@anchor{e5}
  @subsection Stack Overflow Checking
  
  
--- 22159,22165 ----
  @end menu
  
  @node Stack Overflow Checking,Static Stack Usage Analysis,,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id53}@anchor{1ab}@anchor{gnat_ugn/gnat_and_program_execution stack-overflow-checking}@anchor{e7}
  @subsection Stack Overflow Checking
  
  
*************** If the space is exceeded, then a @code{S
*** 22048,22054 ****
  
  For declared tasks, the default stack size is defined by the GNAT runtime,
  whose size may be modified at bind time through the @code{-d} bind switch
! (@ref{110,,Switches for gnatbind}). Task specific stack sizes may be set using the
  @code{Storage_Size} pragma.
  
  For the environment task, the stack size is determined by the operating system.
--- 22196,22202 ----
  
  For declared tasks, the default stack size is defined by the GNAT runtime,
  whose size may be modified at bind time through the @code{-d} bind switch
! (@ref{112,,Switches for gnatbind}). Task specific stack sizes may be set using the
  @code{Storage_Size} pragma.
  
  For the environment task, the stack size is determined by the operating system.
*************** Consequently, to modify the size of the
*** 22056,22062 ****
  operating system documentation.
  
  @node Static Stack Usage Analysis,Dynamic Stack Usage Analysis,Stack Overflow Checking,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id54}@anchor{1aa}@anchor{gnat_ugn/gnat_and_program_execution static-stack-usage-analysis}@anchor{e6}
  @subsection Static Stack Usage Analysis
  
  
--- 22204,22210 ----
  operating system documentation.
  
  @node Static Stack Usage Analysis,Dynamic Stack Usage Analysis,Stack Overflow Checking,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id54}@anchor{1ac}@anchor{gnat_ugn/gnat_and_program_execution static-stack-usage-analysis}@anchor{e8}
  @subsection Static Stack Usage Analysis
  
  
*************** subprogram whose stack usage might be la
*** 22105,22111 ****
  bytes.  The wording is in keeping with the qualifier documented above.
  
  @node Dynamic Stack Usage Analysis,,Static Stack Usage Analysis,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution dynamic-stack-usage-analysis}@anchor{113}@anchor{gnat_ugn/gnat_and_program_execution id55}@anchor{1ab}
  @subsection Dynamic Stack Usage Analysis
  
  
--- 22253,22259 ----
  bytes.  The wording is in keeping with the qualifier documented above.
  
  @node Dynamic Stack Usage Analysis,,Static Stack Usage Analysis,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution dynamic-stack-usage-analysis}@anchor{115}@anchor{gnat_ugn/gnat_and_program_execution id55}@anchor{1ad}
  @subsection Dynamic Stack Usage Analysis
  
  
*************** The package @code{GNAT.Task_Stack_Usage}
*** 22187,22193 ****
  stack-usage reports at run time. See its body for the details.
  
  @node Memory Management Issues,,Stack Related Facilities,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id56}@anchor{14c}@anchor{gnat_ugn/gnat_and_program_execution memory-management-issues}@anchor{1ac}
  @section Memory Management Issues
  
  
--- 22335,22341 ----
  stack-usage reports at run time. See its body for the details.
  
  @node Memory Management Issues,,Stack Related Facilities,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id56}@anchor{14e}@anchor{gnat_ugn/gnat_and_program_execution memory-management-issues}@anchor{1ae}
  @section Memory Management Issues
  
  
*************** incorrect uses of access values (includi
*** 22203,22209 ****
  @end menu
  
  @node Some Useful Memory Pools,The GNAT Debug Pool Facility,,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id57}@anchor{1ad}@anchor{gnat_ugn/gnat_and_program_execution some-useful-memory-pools}@anchor{1ae}
  @subsection Some Useful Memory Pools
  
  
--- 22351,22357 ----
  @end menu
  
  @node Some Useful Memory Pools,The GNAT Debug Pool Facility,,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id57}@anchor{1af}@anchor{gnat_ugn/gnat_and_program_execution some-useful-memory-pools}@anchor{1b0}
  @subsection Some Useful Memory Pools
  
  
*************** procedure Pooloc1 is
*** 22255,22266 ****
        for A'Storage_Pool use X;
        v : A;
     begin
!       for I in  1 .. 50 loop
           v := new Integer;
        end loop;
     end Internal;
  begin
!    for I in  1 .. 100 loop
        Internal;
     end loop;
  end Pooloc1;
--- 22403,22414 ----
        for A'Storage_Pool use X;
        v : A;
     begin
!       for I in 1 .. 50 loop
           v := new Integer;
        end loop;
     end Internal;
  begin
!    for I in 1 .. 100 loop
        Internal;
     end loop;
  end Pooloc1;
*************** for T1'Storage_Size use 10_000;
*** 22284,22290 ****
  @end quotation
  
  @node The GNAT Debug Pool Facility,,Some Useful Memory Pools,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id58}@anchor{1af}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debug-pool-facility}@anchor{1b0}
  @subsection The GNAT Debug Pool Facility
  
  
--- 22432,22438 ----
  @end quotation
  
  @node The GNAT Debug Pool Facility,,Some Useful Memory Pools,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id58}@anchor{1b1}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debug-pool-facility}@anchor{1b2}
  @subsection The GNAT Debug Pool Facility
  
  
*************** Debug Pool info:
*** 22447,22453 ****
  @c -- E.g. Ada |nbsp| 95
  
  @node Platform-Specific Information,Example of Binder Output File,GNAT and Program Execution,Top
! @anchor{gnat_ugn/platform_specific_information doc}@anchor{1b1}@anchor{gnat_ugn/platform_specific_information id1}@anchor{1b2}@anchor{gnat_ugn/platform_specific_information platform-specific-information}@anchor{d}
  @chapter Platform-Specific Information
  
  
--- 22595,22601 ----
  @c -- E.g. Ada |nbsp| 95
  
  @node Platform-Specific Information,Example of Binder Output File,GNAT and Program Execution,Top
! @anchor{gnat_ugn/platform_specific_information doc}@anchor{1b3}@anchor{gnat_ugn/platform_specific_information id1}@anchor{1b4}@anchor{gnat_ugn/platform_specific_information platform-specific-information}@anchor{d}
  @chapter Platform-Specific Information
  
  
*************** related to the GNAT implementation on sp
*** 22465,22471 ****
  @end menu
  
  @node Run-Time Libraries,Specifying a Run-Time Library,,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id2}@anchor{1b3}@anchor{gnat_ugn/platform_specific_information run-time-libraries}@anchor{1b4}
  @section Run-Time Libraries
  
  
--- 22613,22619 ----
  @end menu
  
  @node Run-Time Libraries,Specifying a Run-Time Library,,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id2}@anchor{1b5}@anchor{gnat_ugn/platform_specific_information run-time-libraries}@anchor{1b6}
  @section Run-Time Libraries
  
  
*************** are supplied on various GNAT platforms.
*** 22526,22532 ****
  @end menu
  
  @node Summary of Run-Time Configurations,,,Run-Time Libraries
! @anchor{gnat_ugn/platform_specific_information id3}@anchor{1b5}@anchor{gnat_ugn/platform_specific_information summary-of-run-time-configurations}@anchor{1b6}
  @subsection Summary of Run-Time Configurations
  
  
--- 22674,22680 ----
  @end menu
  
  @node Summary of Run-Time Configurations,,,Run-Time Libraries
! @anchor{gnat_ugn/platform_specific_information id3}@anchor{1b7}@anchor{gnat_ugn/platform_specific_information summary-of-run-time-configurations}@anchor{1b8}
  @subsection Summary of Run-Time Configurations
  
  
*************** ZCX
*** 22626,22632 ****
  
  
  @node Specifying a Run-Time Library,GNU/Linux Topics,Run-Time Libraries,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id4}@anchor{1b7}@anchor{gnat_ugn/platform_specific_information specifying-a-run-time-library}@anchor{1b8}
  @section Specifying a Run-Time Library
  
  
--- 22774,22780 ----
  
  
  @node Specifying a Run-Time Library,GNU/Linux Topics,Run-Time Libraries,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id4}@anchor{1b9}@anchor{gnat_ugn/platform_specific_information specifying-a-run-time-library}@anchor{1ba}
  @section Specifying a Run-Time Library
  
  
*************** Alternatively, you can specify @code{rts
*** 22713,22719 ****
  
  Selecting another run-time library temporarily can be
  achieved by using the @code{--RTS} switch, e.g., @code{--RTS=sjlj}
! @anchor{gnat_ugn/platform_specific_information choosing-the-scheduling-policy}@anchor{1b9}
  @geindex SCHED_FIFO scheduling policy
  
  @geindex SCHED_RR scheduling policy
--- 22861,22867 ----
  
  Selecting another run-time library temporarily can be
  achieved by using the @code{--RTS} switch, e.g., @code{--RTS=sjlj}
! @anchor{gnat_ugn/platform_specific_information choosing-the-scheduling-policy}@anchor{1bb}
  @geindex SCHED_FIFO scheduling policy
  
  @geindex SCHED_RR scheduling policy
*************** achieved by using the @code{--RTS} switc
*** 22726,22732 ****
  @end menu
  
  @node Choosing the Scheduling Policy,,,Specifying a Run-Time Library
! @anchor{gnat_ugn/platform_specific_information id5}@anchor{1ba}
  @subsection Choosing the Scheduling Policy
  
  
--- 22874,22880 ----
  @end menu
  
  @node Choosing the Scheduling Policy,,,Specifying a Run-Time Library
! @anchor{gnat_ugn/platform_specific_information id5}@anchor{1bc}
  @subsection Choosing the Scheduling Policy
  
  
*************** have sufficient priviledge for running t
*** 22788,22794 ****
  @geindex GNU/Linux
  
  @node GNU/Linux Topics,Microsoft Windows Topics,Specifying a Run-Time Library,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information gnu-linux-topics}@anchor{1bb}@anchor{gnat_ugn/platform_specific_information id6}@anchor{1bc}
  @section GNU/Linux Topics
  
  
--- 22936,22942 ----
  @geindex GNU/Linux
  
  @node GNU/Linux Topics,Microsoft Windows Topics,Specifying a Run-Time Library,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information gnu-linux-topics}@anchor{1bd}@anchor{gnat_ugn/platform_specific_information id6}@anchor{1be}
  @section GNU/Linux Topics
  
  
*************** This section describes topics that are s
*** 22796,22807 ****
  
  @menu
  * Required Packages on GNU/Linux:: 
  * A GNU/Linux Debug Quirk:: 
  
  @end menu
  
! @node Required Packages on GNU/Linux,A GNU/Linux Debug Quirk,,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information id7}@anchor{1bd}@anchor{gnat_ugn/platform_specific_information required-packages-on-gnu-linux}@anchor{1be}
  @subsection Required Packages on GNU/Linux
  
  
--- 22944,22956 ----
  
  @menu
  * Required Packages on GNU/Linux:: 
+ * Position Independent Executable (PIE) Enabled by Default on Linux: Position Independent Executable PIE Enabled by Default on Linux. 
  * A GNU/Linux Debug Quirk:: 
  
  @end menu
  
! @node Required Packages on GNU/Linux,Position Independent Executable PIE Enabled by Default on Linux,,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information id7}@anchor{1bf}@anchor{gnat_ugn/platform_specific_information required-packages-on-gnu-linux}@anchor{1c0}
  @subsection Required Packages on GNU/Linux
  
  
*************** Debian, Ubuntu: @code{libc6:i386}, @code
*** 22837,22844 ****
  Other GNU/Linux distributions might be choosing a different name
  for those packages.
  
! @node A GNU/Linux Debug Quirk,,Required Packages on GNU/Linux,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information a-gnu-linux-debug-quirk}@anchor{1bf}@anchor{gnat_ugn/platform_specific_information id8}@anchor{1c0}
  @subsection A GNU/Linux Debug Quirk
  
  
--- 22986,23037 ----
  Other GNU/Linux distributions might be choosing a different name
  for those packages.
  
! @node Position Independent Executable PIE Enabled by Default on Linux,A GNU/Linux Debug Quirk,Required Packages on GNU/Linux,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information pie-enabled-by-default-on-linux}@anchor{1c1}@anchor{gnat_ugn/platform_specific_information position-independent-executable-pie-enabled-by-default-on-linux}@anchor{1c2}
! @subsection Position Independent Executable (PIE) Enabled by Default on Linux
! 
! 
! GNAT generates Position Independent Executable (PIE) code by default.
! PIE binaries are loaded into random memory locations, introducing
! an additional layer of protection against attacks.
! 
! Building PIE binaries requires that all of their dependencies also be
! built as Position Independent. If the link of your project fails with
! an error like:
! 
! @example
! /[...]/ld: /path/to/object/file: relocation R_X86_64_32S against symbol
! `symbol name' can not be used when making a PIE object;
! recompile with -fPIE
! @end example
! 
! it means the identified object file has not been built as Position
! Independent.
! 
! If you are not interested in building PIE binaries, you can simply
! turn this feature off by first compiling your code with @code{-fno-pie}
! and then by linking with @code{-no-pie} (note the subtle but important
! difference in the names of the options – the linker option does `not'
! have an @cite{f} after the dash!). When using gprbuild, this is
! achieved by updating the `Required_Switches' attribute in package @cite{Compiler}
! and, depending on your type of project, either attribute `Switches'
! or attribute `Library_Options' in package @cite{Linker}.
! 
! On the other hand, if you would like to build PIE binaries and you are
! getting the error above, a quick and easy workaround to allow linking
! to succeed again is to disable PIE during the link, thus temporarily
! lifting the requirement that all dependencies also be Position
! Independent code. To do so, you simply need to add @code{-no-pie} to
! the list of switches passed to the linker. As part of this workaround,
! there is no need to adjust the compiler switches.
! 
! From there, to be able to link your binaries with PIE and therefore
! drop the @code{-no-pie} workaround, you’ll need to get the identified
! dependencies rebuilt with PIE enabled (compiled with @code{-fPIE}
! and linked with @code{-pie}).
! 
! @node A GNU/Linux Debug Quirk,,Position Independent Executable PIE Enabled by Default on Linux,GNU/Linux Topics
! @anchor{gnat_ugn/platform_specific_information a-gnu-linux-debug-quirk}@anchor{1c3}@anchor{gnat_ugn/platform_specific_information id8}@anchor{1c4}
  @subsection A GNU/Linux Debug Quirk
  
  
*************** the symptoms most commonly observed.
*** 22858,22864 ****
  @geindex Windows
  
  @node Microsoft Windows Topics,Mac OS Topics,GNU/Linux Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id9}@anchor{1c1}@anchor{gnat_ugn/platform_specific_information microsoft-windows-topics}@anchor{1c2}
  @section Microsoft Windows Topics
  
  
--- 23051,23057 ----
  @geindex Windows
  
  @node Microsoft Windows Topics,Mac OS Topics,GNU/Linux Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id9}@anchor{1c5}@anchor{gnat_ugn/platform_specific_information microsoft-windows-topics}@anchor{1c6}
  @section Microsoft Windows Topics
  
  
*************** platforms.
*** 22879,22885 ****
  @end menu
  
  @node Using GNAT on Windows,Using a network installation of GNAT,,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id10}@anchor{1c3}@anchor{gnat_ugn/platform_specific_information using-gnat-on-windows}@anchor{1c4}
  @subsection Using GNAT on Windows
  
  
--- 23072,23078 ----
  @end menu
  
  @node Using GNAT on Windows,Using a network installation of GNAT,,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id10}@anchor{1c7}@anchor{gnat_ugn/platform_specific_information using-gnat-on-windows}@anchor{1c8}
  @subsection Using GNAT on Windows
  
  
*************** uninstall or integrate different GNAT pr
*** 22956,22962 ****
  @end itemize
  
  @node Using a network installation of GNAT,CONSOLE and WINDOWS subsystems,Using GNAT on Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id11}@anchor{1c5}@anchor{gnat_ugn/platform_specific_information using-a-network-installation-of-gnat}@anchor{1c6}
  @subsection Using a network installation of GNAT
  
  
--- 23149,23155 ----
  @end itemize
  
  @node Using a network installation of GNAT,CONSOLE and WINDOWS subsystems,Using GNAT on Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id11}@anchor{1c9}@anchor{gnat_ugn/platform_specific_information using-a-network-installation-of-gnat}@anchor{1ca}
  @subsection Using a network installation of GNAT
  
  
*************** transfer of large amounts of data across
*** 22983,22989 ****
  serious performance penalty.
  
  @node CONSOLE and WINDOWS subsystems,Temporary Files,Using a network installation of GNAT,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information console-and-windows-subsystems}@anchor{1c7}@anchor{gnat_ugn/platform_specific_information id12}@anchor{1c8}
  @subsection CONSOLE and WINDOWS subsystems
  
  
--- 23176,23182 ----
  serious performance penalty.
  
  @node CONSOLE and WINDOWS subsystems,Temporary Files,Using a network installation of GNAT,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information console-and-windows-subsystems}@anchor{1cb}@anchor{gnat_ugn/platform_specific_information id12}@anchor{1cc}
  @subsection CONSOLE and WINDOWS subsystems
  
  
*************** $ gnatmake winprog -largs -mwindows
*** 23008,23014 ****
  @end quotation
  
  @node Temporary Files,Disabling Command Line Argument Expansion,CONSOLE and WINDOWS subsystems,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id13}@anchor{1c9}@anchor{gnat_ugn/platform_specific_information temporary-files}@anchor{1ca}
  @subsection Temporary Files
  
  
--- 23201,23207 ----
  @end quotation
  
  @node Temporary Files,Disabling Command Line Argument Expansion,CONSOLE and WINDOWS subsystems,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id13}@anchor{1cd}@anchor{gnat_ugn/platform_specific_information temporary-files}@anchor{1ce}
  @subsection Temporary Files
  
  
*************** environments where you may not have writ
*** 23047,23053 ****
  directories.
  
  @node Disabling Command Line Argument Expansion,Windows Socket Timeouts,Temporary Files,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information disabling-command-line-argument-expansion}@anchor{1cb}
  @subsection Disabling Command Line Argument Expansion
  
  
--- 23240,23246 ----
  directories.
  
  @node Disabling Command Line Argument Expansion,Windows Socket Timeouts,Temporary Files,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information disabling-command-line-argument-expansion}@anchor{1cf}
  @subsection Disabling Command Line Argument Expansion
  
  
*************** Ada.Command_Line.Argument (1) -> "'*.txt
*** 23118,23124 ****
  @end example
  
  @node Windows Socket Timeouts,Mixed-Language Programming on Windows,Disabling Command Line Argument Expansion,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information windows-socket-timeouts}@anchor{1cc}
  @subsection Windows Socket Timeouts
  
  
--- 23311,23317 ----
  @end example
  
  @node Windows Socket Timeouts,Mixed-Language Programming on Windows,Disabling Command Line Argument Expansion,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information windows-socket-timeouts}@anchor{1d0}
  @subsection Windows Socket Timeouts
  
  
*************** shorter than 500 ms is needed on these W
*** 23164,23170 ****
  Check_Selector should be added before any socket read or write operations.
  
  @node Mixed-Language Programming on Windows,Windows Specific Add-Ons,Windows Socket Timeouts,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id14}@anchor{1cd}@anchor{gnat_ugn/platform_specific_information mixed-language-programming-on-windows}@anchor{1ce}
  @subsection Mixed-Language Programming on Windows
  
  
--- 23357,23363 ----
  Check_Selector should be added before any socket read or write operations.
  
  @node Mixed-Language Programming on Windows,Windows Specific Add-Ons,Windows Socket Timeouts,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id14}@anchor{1d1}@anchor{gnat_ugn/platform_specific_information mixed-language-programming-on-windows}@anchor{1d2}
  @subsection Mixed-Language Programming on Windows
  
  
*************** to use the Microsoft tools for your C++
*** 23186,23197 ****
  Encapsulate your C++ code in a DLL to be linked with your Ada
  application. In this case, use the Microsoft or whatever environment to
  build the DLL and use GNAT to build your executable
! (@ref{1cf,,Using DLLs with GNAT}).
  
  @item 
  Or you can encapsulate your Ada code in a DLL to be linked with the
  other part of your application. In this case, use GNAT to build the DLL
! (@ref{1d0,,Building DLLs with GNAT Project files}) and use the Microsoft
  or whatever environment to build your executable.
  @end itemize
  
--- 23379,23390 ----
  Encapsulate your C++ code in a DLL to be linked with your Ada
  application. In this case, use the Microsoft or whatever environment to
  build the DLL and use GNAT to build your executable
! (@ref{1d3,,Using DLLs with GNAT}).
  
  @item 
  Or you can encapsulate your Ada code in a DLL to be linked with the
  other part of your application. In this case, use GNAT to build the DLL
! (@ref{1d4,,Building DLLs with GNAT Project files}) and use the Microsoft
  or whatever environment to build your executable.
  @end itemize
  
*************** native SEH support is used.
*** 23248,23254 ****
  @end menu
  
  @node Windows Calling Conventions,Introduction to Dynamic Link Libraries DLLs,,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id15}@anchor{1d1}@anchor{gnat_ugn/platform_specific_information windows-calling-conventions}@anchor{1d2}
  @subsubsection Windows Calling Conventions
  
  
--- 23441,23447 ----
  @end menu
  
  @node Windows Calling Conventions,Introduction to Dynamic Link Libraries DLLs,,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id15}@anchor{1d5}@anchor{gnat_ugn/platform_specific_information windows-calling-conventions}@anchor{1d6}
  @subsubsection Windows Calling Conventions
  
  
*************** are available for Windows:
*** 23293,23299 ****
  @end menu
  
  @node C Calling Convention,Stdcall Calling Convention,,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information c-calling-convention}@anchor{1d3}@anchor{gnat_ugn/platform_specific_information id16}@anchor{1d4}
  @subsubsection @code{C} Calling Convention
  
  
--- 23486,23492 ----
  @end menu
  
  @node C Calling Convention,Stdcall Calling Convention,,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information c-calling-convention}@anchor{1d7}@anchor{gnat_ugn/platform_specific_information id16}@anchor{1d8}
  @subsubsection @code{C} Calling Convention
  
  
*************** is missing, as in the above example, thi
*** 23335,23344 ****
  When importing a variable defined in C, you should always use the @code{C}
  calling convention unless the object containing the variable is part of a
  DLL (in which case you should use the @code{Stdcall} calling
! convention, @ref{1d5,,Stdcall Calling Convention}).
  
  @node Stdcall Calling Convention,Win32 Calling Convention,C Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id17}@anchor{1d6}@anchor{gnat_ugn/platform_specific_information stdcall-calling-convention}@anchor{1d5}
  @subsubsection @code{Stdcall} Calling Convention
  
  
--- 23528,23537 ----
  When importing a variable defined in C, you should always use the @code{C}
  calling convention unless the object containing the variable is part of a
  DLL (in which case you should use the @code{Stdcall} calling
! convention, @ref{1d9,,Stdcall Calling Convention}).
  
  @node Stdcall Calling Convention,Win32 Calling Convention,C Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id17}@anchor{1da}@anchor{gnat_ugn/platform_specific_information stdcall-calling-convention}@anchor{1d9}
  @subsubsection @code{Stdcall} Calling Convention
  
  
*************** Note that to ease building cross-platfor
*** 23435,23441 ****
  will be handled as a @code{C} calling convention on non-Windows platforms.
  
  @node Win32 Calling Convention,DLL Calling Convention,Stdcall Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id18}@anchor{1d7}@anchor{gnat_ugn/platform_specific_information win32-calling-convention}@anchor{1d8}
  @subsubsection @code{Win32} Calling Convention
  
  
--- 23628,23634 ----
  will be handled as a @code{C} calling convention on non-Windows platforms.
  
  @node Win32 Calling Convention,DLL Calling Convention,Stdcall Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id18}@anchor{1db}@anchor{gnat_ugn/platform_specific_information win32-calling-convention}@anchor{1dc}
  @subsubsection @code{Win32} Calling Convention
  
  
*************** This convention, which is GNAT-specific
*** 23443,23449 ****
  @code{Stdcall} calling convention described above.
  
  @node DLL Calling Convention,,Win32 Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information dll-calling-convention}@anchor{1d9}@anchor{gnat_ugn/platform_specific_information id19}@anchor{1da}
  @subsubsection @code{DLL} Calling Convention
  
  
--- 23636,23642 ----
  @code{Stdcall} calling convention described above.
  
  @node DLL Calling Convention,,Win32 Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information dll-calling-convention}@anchor{1dd}@anchor{gnat_ugn/platform_specific_information id19}@anchor{1de}
  @subsubsection @code{DLL} Calling Convention
  
  
*************** This convention, which is GNAT-specific
*** 23451,23457 ****
  @code{Stdcall} calling convention described above.
  
  @node Introduction to Dynamic Link Libraries DLLs,Using DLLs with GNAT,Windows Calling Conventions,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id20}@anchor{1db}@anchor{gnat_ugn/platform_specific_information introduction-to-dynamic-link-libraries-dlls}@anchor{1dc}
  @subsubsection Introduction to Dynamic Link Libraries (DLLs)
  
  
--- 23644,23650 ----
  @code{Stdcall} calling convention described above.
  
  @node Introduction to Dynamic Link Libraries DLLs,Using DLLs with GNAT,Windows Calling Conventions,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id20}@anchor{1df}@anchor{gnat_ugn/platform_specific_information introduction-to-dynamic-link-libraries-dlls}@anchor{1e0}
  @subsubsection Introduction to Dynamic Link Libraries (DLLs)
  
  
*************** As a side note, an interesting differenc
*** 23535,23544 ****
  Unix shared libraries, is the fact that on most Unix systems all public
  routines are exported by default in a Unix shared library, while under
  Windows it is possible (but not required) to list exported routines in
! a definition file (see @ref{1dd,,The Definition File}).
  
  @node Using DLLs with GNAT,Building DLLs with GNAT Project files,Introduction to Dynamic Link Libraries DLLs,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id21}@anchor{1de}@anchor{gnat_ugn/platform_specific_information using-dlls-with-gnat}@anchor{1cf}
  @subsubsection Using DLLs with GNAT
  
  
--- 23728,23737 ----
  Unix shared libraries, is the fact that on most Unix systems all public
  routines are exported by default in a Unix shared library, while under
  Windows it is possible (but not required) to list exported routines in
! a definition file (see @ref{1e1,,The Definition File}).
  
  @node Using DLLs with GNAT,Building DLLs with GNAT Project files,Introduction to Dynamic Link Libraries DLLs,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id21}@anchor{1e2}@anchor{gnat_ugn/platform_specific_information using-dlls-with-gnat}@anchor{1d3}
  @subsubsection Using DLLs with GNAT
  
  
*************** example a fictitious DLL called @code{AP
*** 23629,23635 ****
  @end menu
  
  @node Creating an Ada Spec for the DLL Services,Creating an Import Library,,Using DLLs with GNAT
! @anchor{gnat_ugn/platform_specific_information creating-an-ada-spec-for-the-dll-services}@anchor{1df}@anchor{gnat_ugn/platform_specific_information id22}@anchor{1e0}
  @subsubsection Creating an Ada Spec for the DLL Services
  
  
--- 23822,23828 ----
  @end menu
  
  @node Creating an Ada Spec for the DLL Services,Creating an Import Library,,Using DLLs with GNAT
! @anchor{gnat_ugn/platform_specific_information creating-an-ada-spec-for-the-dll-services}@anchor{1e3}@anchor{gnat_ugn/platform_specific_information id22}@anchor{1e4}
  @subsubsection Creating an Ada Spec for the DLL Services
  
  
*************** end API;
*** 23669,23675 ****
  @end quotation
  
  @node Creating an Import Library,,Creating an Ada Spec for the DLL Services,Using DLLs with GNAT
! @anchor{gnat_ugn/platform_specific_information creating-an-import-library}@anchor{1e1}@anchor{gnat_ugn/platform_specific_information id23}@anchor{1e2}
  @subsubsection Creating an Import Library
  
  
--- 23862,23868 ----
  @end quotation
  
  @node Creating an Import Library,,Creating an Ada Spec for the DLL Services,Using DLLs with GNAT
! @anchor{gnat_ugn/platform_specific_information creating-an-import-library}@anchor{1e5}@anchor{gnat_ugn/platform_specific_information id23}@anchor{1e6}
  @subsubsection Creating an Import Library
  
  
*************** as in this case it is possible to link d
*** 23683,23689 ****
  DLL. Otherwise read on.
  
  @geindex Definition file
! @anchor{gnat_ugn/platform_specific_information the-definition-file}@anchor{1dd}
  @subsubheading The Definition File
  
  
--- 23876,23882 ----
  DLL. Otherwise read on.
  
  @geindex Definition file
! @anchor{gnat_ugn/platform_specific_information the-definition-file}@anchor{1e1}
  @subsubheading The Definition File
  
  
*************** EXPORTS
*** 23731,23747 ****
  @end table
  
  Note that you must specify the correct suffix (@code{@@@var{nn}})
! (see @ref{1d2,,Windows Calling Conventions}) for a Stdcall
  calling convention function in the exported symbols list.
  
  There can actually be other sections in a definition file, but these
  sections are not relevant to the discussion at hand.
! @anchor{gnat_ugn/platform_specific_information create-def-file-automatically}@anchor{1e3}
  @subsubheading Creating a Definition File Automatically
  
  
  You can automatically create the definition file @code{API.def}
! (see @ref{1dd,,The Definition File}) from a DLL.
  For that use the @code{dlltool} program as follows:
  
  @quotation
--- 23924,23940 ----
  @end table
  
  Note that you must specify the correct suffix (@code{@@@var{nn}})
! (see @ref{1d6,,Windows Calling Conventions}) for a Stdcall
  calling convention function in the exported symbols list.
  
  There can actually be other sections in a definition file, but these
  sections are not relevant to the discussion at hand.
! @anchor{gnat_ugn/platform_specific_information create-def-file-automatically}@anchor{1e7}
  @subsubheading Creating a Definition File Automatically
  
  
  You can automatically create the definition file @code{API.def}
! (see @ref{1e1,,The Definition File}) from a DLL.
  For that use the @code{dlltool} program as follows:
  
  @quotation
*************** $ dlltool API.dll -z API.def --export-al
*** 23751,23757 ****
  @end example
  
  Note that if some routines in the DLL have the @code{Stdcall} convention
! (@ref{1d2,,Windows Calling Conventions}) with stripped @code{@@@var{nn}}
  suffix then you’ll have to edit @code{api.def} to add it, and specify
  @code{-k} to @code{gnatdll} when creating the import library.
  
--- 23944,23950 ----
  @end example
  
  Note that if some routines in the DLL have the @code{Stdcall} convention
! (@ref{1d6,,Windows Calling Conventions}) with stripped @code{@@@var{nn}}
  suffix then you’ll have to edit @code{api.def} to add it, and specify
  @code{-k} to @code{gnatdll} when creating the import library.
  
*************** tells you what symbol is expected. You j
*** 23775,23787 ****
  definition file and add the right suffix.
  @end itemize
  @end quotation
! @anchor{gnat_ugn/platform_specific_information gnat-style-import-library}@anchor{1e4}
  @subsubheading GNAT-Style Import Library
  
  
  To create a static import library from @code{API.dll} with the GNAT tools
  you should create the .def file, then use @code{gnatdll} tool
! (see @ref{1e5,,Using gnatdll}) as follows:
  
  @quotation
  
--- 23968,23980 ----
  definition file and add the right suffix.
  @end itemize
  @end quotation
! @anchor{gnat_ugn/platform_specific_information gnat-style-import-library}@anchor{1e8}
  @subsubheading GNAT-Style Import Library
  
  
  To create a static import library from @code{API.dll} with the GNAT tools
  you should create the .def file, then use @code{gnatdll} tool
! (see @ref{1e9,,Using gnatdll}) as follows:
  
  @quotation
  
*************** definition file name is @code{xyz.def},
*** 23797,23811 ****
  be @code{libxyz.a}. Note that in the previous example option
  @code{-e} could have been removed because the name of the definition
  file (before the @code{.def} suffix) is the same as the name of the
! DLL (@ref{1e5,,Using gnatdll} for more information about @code{gnatdll}).
  @end quotation
! @anchor{gnat_ugn/platform_specific_information msvs-style-import-library}@anchor{1e6}
  @subsubheading Microsoft-Style Import Library
  
  
  A Microsoft import library is needed only if you plan to make an
  Ada DLL available to applications developed with Microsoft
! tools (@ref{1ce,,Mixed-Language Programming on Windows}).
  
  To create a Microsoft-style import library for @code{API.dll} you
  should create the .def file, then build the actual import library using
--- 23990,24004 ----
  be @code{libxyz.a}. Note that in the previous example option
  @code{-e} could have been removed because the name of the definition
  file (before the @code{.def} suffix) is the same as the name of the
! DLL (@ref{1e9,,Using gnatdll} for more information about @code{gnatdll}).
  @end quotation
! @anchor{gnat_ugn/platform_specific_information msvs-style-import-library}@anchor{1ea}
  @subsubheading Microsoft-Style Import Library
  
  
  A Microsoft import library is needed only if you plan to make an
  Ada DLL available to applications developed with Microsoft
! tools (@ref{1d2,,Mixed-Language Programming on Windows}).
  
  To create a Microsoft-style import library for @code{API.dll} you
  should create the .def file, then build the actual import library using
*************** See the Microsoft documentation for furt
*** 23829,23835 ****
  @end quotation
  
  @node Building DLLs with GNAT Project files,Building DLLs with GNAT,Using DLLs with GNAT,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat-project-files}@anchor{1d0}@anchor{gnat_ugn/platform_specific_information id24}@anchor{1e7}
  @subsubsection Building DLLs with GNAT Project files
  
  
--- 24022,24028 ----
  @end quotation
  
  @node Building DLLs with GNAT Project files,Building DLLs with GNAT,Using DLLs with GNAT,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat-project-files}@anchor{1d4}@anchor{gnat_ugn/platform_specific_information id24}@anchor{1eb}
  @subsubsection Building DLLs with GNAT Project files
  
  
*************** when inside the @code{DllMain} routine w
*** 23845,23851 ****
  of shared libraries, so it is not possible to have library level tasks in SALs.
  
  @node Building DLLs with GNAT,Building DLLs with gnatdll,Building DLLs with GNAT Project files,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat}@anchor{1e8}@anchor{gnat_ugn/platform_specific_information id25}@anchor{1e9}
  @subsubsection Building DLLs with GNAT
  
  
--- 24038,24044 ----
  of shared libraries, so it is not possible to have library level tasks in SALs.
  
  @node Building DLLs with GNAT,Building DLLs with gnatdll,Building DLLs with GNAT Project files,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat}@anchor{1ec}@anchor{gnat_ugn/platform_specific_information id25}@anchor{1ed}
  @subsubsection Building DLLs with GNAT
  
  
*************** $ gcc -shared -shared-libgcc -o api.dll
*** 23876,23882 ****
  It is important to note that in this case all symbols found in the
  object files are automatically exported. It is possible to restrict
  the set of symbols to export by passing to @code{gcc} a definition
! file (see @ref{1dd,,The Definition File}).
  For example:
  
  @example
--- 24069,24075 ----
  It is important to note that in this case all symbols found in the
  object files are automatically exported. It is possible to restrict
  the set of symbols to export by passing to @code{gcc} a definition
! file (see @ref{1e1,,The Definition File}).
  For example:
  
  @example
*************** $ gnatmake main -Iapilib -bargs -shared
*** 23914,23920 ****
  @end quotation
  
  @node Building DLLs with gnatdll,Ada DLLs and Finalization,Building DLLs with GNAT,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnatdll}@anchor{1ea}@anchor{gnat_ugn/platform_specific_information id26}@anchor{1eb}
  @subsubsection Building DLLs with gnatdll
  
  
--- 24107,24113 ----
  @end quotation
  
  @node Building DLLs with gnatdll,Ada DLLs and Finalization,Building DLLs with GNAT,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information building-dlls-with-gnatdll}@anchor{1ee}@anchor{gnat_ugn/platform_specific_information id26}@anchor{1ef}
  @subsubsection Building DLLs with gnatdll
  
  
*************** $ gnatmake main -Iapilib -bargs -shared
*** 23922,23929 ****
  @geindex building
  
  Note that it is preferred to use GNAT Project files
! (@ref{1d0,,Building DLLs with GNAT Project files}) or the built-in GNAT
! DLL support (@ref{1e8,,Building DLLs with GNAT}) or to build DLLs.
  
  This section explains how to build DLLs containing Ada code using
  @code{gnatdll}. These DLLs will be referred to as Ada DLLs in the
--- 24115,24122 ----
  @geindex building
  
  Note that it is preferred to use GNAT Project files
! (@ref{1d4,,Building DLLs with GNAT Project files}) or the built-in GNAT
! DLL support (@ref{1ec,,Building DLLs with GNAT}) or to build DLLs.
  
  This section explains how to build DLLs containing Ada code using
  @code{gnatdll}. These DLLs will be referred to as Ada DLLs in the
*************** non-Ada applications are as follows:
*** 23939,23958 ****
  You need to mark each Ada entity exported by the DLL with a @code{C} or
  @code{Stdcall} calling convention to avoid any Ada name mangling for the
  entities exported by the DLL
! (see @ref{1ec,,Exporting Ada Entities}). You can
  skip this step if you plan to use the Ada DLL only from Ada applications.
  
  @item 
  Your Ada code must export an initialization routine which calls the routine
  @code{adainit} generated by @code{gnatbind} to perform the elaboration of
! the Ada code in the DLL (@ref{1ed,,Ada DLLs and Elaboration}). The initialization
  routine exported by the Ada DLL must be invoked by the clients of the DLL
  to initialize the DLL.
  
  @item 
  When useful, the DLL should also export a finalization routine which calls
  routine @code{adafinal} generated by @code{gnatbind} to perform the
! finalization of the Ada code in the DLL (@ref{1ee,,Ada DLLs and Finalization}).
  The finalization routine exported by the Ada DLL must be invoked by the
  clients of the DLL when the DLL services are no further needed.
  
--- 24132,24151 ----
  You need to mark each Ada entity exported by the DLL with a @code{C} or
  @code{Stdcall} calling convention to avoid any Ada name mangling for the
  entities exported by the DLL
! (see @ref{1f0,,Exporting Ada Entities}). You can
  skip this step if you plan to use the Ada DLL only from Ada applications.
  
  @item 
  Your Ada code must export an initialization routine which calls the routine
  @code{adainit} generated by @code{gnatbind} to perform the elaboration of
! the Ada code in the DLL (@ref{1f1,,Ada DLLs and Elaboration}). The initialization
  routine exported by the Ada DLL must be invoked by the clients of the DLL
  to initialize the DLL.
  
  @item 
  When useful, the DLL should also export a finalization routine which calls
  routine @code{adafinal} generated by @code{gnatbind} to perform the
! finalization of the Ada code in the DLL (@ref{1f2,,Ada DLLs and Finalization}).
  The finalization routine exported by the Ada DLL must be invoked by the
  clients of the DLL when the DLL services are no further needed.
  
*************** of the programming languages to which yo
*** 23962,23972 ****
  
  @item 
  You must provide a definition file listing the exported entities
! (@ref{1dd,,The Definition File}).
  
  @item 
  Finally you must use @code{gnatdll} to produce the DLL and the import
! library (@ref{1e5,,Using gnatdll}).
  @end itemize
  
  Note that a relocatable DLL stripped using the @code{strip}
--- 24155,24165 ----
  
  @item 
  You must provide a definition file listing the exported entities
! (@ref{1e1,,The Definition File}).
  
  @item 
  Finally you must use @code{gnatdll} to produce the DLL and the import
! library (@ref{1e9,,Using gnatdll}).
  @end itemize
  
  Note that a relocatable DLL stripped using the @code{strip}
*************** chapter of the `GPRbuild User’s Guide'
*** 23986,23992 ****
  @end menu
  
  @node Limitations When Using Ada DLLs from Ada,Exporting Ada Entities,,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information limitations-when-using-ada-dlls-from-ada}@anchor{1ef}
  @subsubsection Limitations When Using Ada DLLs from Ada
  
  
--- 24179,24185 ----
  @end menu
  
  @node Limitations When Using Ada DLLs from Ada,Exporting Ada Entities,,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information limitations-when-using-ada-dlls-from-ada}@anchor{1f3}
  @subsubsection Limitations When Using Ada DLLs from Ada
  
  
*************** It is completely safe to exchange plain
*** 24007,24013 ****
  Windows object handles, etc.
  
  @node Exporting Ada Entities,Ada DLLs and Elaboration,Limitations When Using Ada DLLs from Ada,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information exporting-ada-entities}@anchor{1ec}@anchor{gnat_ugn/platform_specific_information id27}@anchor{1f0}
  @subsubsection Exporting Ada Entities
  
  
--- 24200,24206 ----
  Windows object handles, etc.
  
  @node Exporting Ada Entities,Ada DLLs and Elaboration,Limitations When Using Ada DLLs from Ada,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information exporting-ada-entities}@anchor{1f0}@anchor{gnat_ugn/platform_specific_information id27}@anchor{1f4}
  @subsubsection Exporting Ada Entities
  
  
*************** end API;
*** 24107,24116 ****
  Note that if you do not export the Ada entities with a @code{C} or
  @code{Stdcall} convention you will have to provide the mangled Ada names
  in the definition file of the Ada DLL
! (@ref{1f1,,Creating the Definition File}).
  
  @node Ada DLLs and Elaboration,,Exporting Ada Entities,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information ada-dlls-and-elaboration}@anchor{1ed}@anchor{gnat_ugn/platform_specific_information id28}@anchor{1f2}
  @subsubsection Ada DLLs and Elaboration
  
  
--- 24300,24309 ----
  Note that if you do not export the Ada entities with a @code{C} or
  @code{Stdcall} convention you will have to provide the mangled Ada names
  in the definition file of the Ada DLL
! (@ref{1f5,,Creating the Definition File}).
  
  @node Ada DLLs and Elaboration,,Exporting Ada Entities,Building DLLs with gnatdll
! @anchor{gnat_ugn/platform_specific_information ada-dlls-and-elaboration}@anchor{1f1}@anchor{gnat_ugn/platform_specific_information id28}@anchor{1f6}
  @subsubsection Ada DLLs and Elaboration
  
  
*************** To achieve this you must export an initi
*** 24125,24134 ****
  (@code{Initialize_API} in the previous example), which must be invoked
  before using any of the DLL services. This elaboration routine must call
  the Ada elaboration routine @code{adainit} generated by the GNAT binder
! (@ref{a0,,Binding with Non-Ada Main Programs}). See the body of
  @code{Initialize_Api} for an example. Note that the GNAT binder is
  automatically invoked during the DLL build process by the @code{gnatdll}
! tool (@ref{1e5,,Using gnatdll}).
  
  When a DLL is loaded, Windows systematically invokes a routine called
  @code{DllMain}. It would therefore be possible to call @code{adainit}
--- 24318,24327 ----
  (@code{Initialize_API} in the previous example), which must be invoked
  before using any of the DLL services. This elaboration routine must call
  the Ada elaboration routine @code{adainit} generated by the GNAT binder
! (@ref{7e,,Binding with Non-Ada Main Programs}). See the body of
  @code{Initialize_Api} for an example. Note that the GNAT binder is
  automatically invoked during the DLL build process by the @code{gnatdll}
! tool (@ref{1e9,,Using gnatdll}).
  
  When a DLL is loaded, Windows systematically invokes a routine called
  @code{DllMain}. It would therefore be possible to call @code{adainit}
*************** time), which means that the GNAT run-tim
*** 24141,24147 ****
  newly created task to complete its initialization.
  
  @node Ada DLLs and Finalization,Creating a Spec for Ada DLLs,Building DLLs with gnatdll,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information ada-dlls-and-finalization}@anchor{1ee}@anchor{gnat_ugn/platform_specific_information id29}@anchor{1f3}
  @subsubsection Ada DLLs and Finalization
  
  
--- 24334,24340 ----
  newly created task to complete its initialization.
  
  @node Ada DLLs and Finalization,Creating a Spec for Ada DLLs,Building DLLs with gnatdll,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information ada-dlls-and-finalization}@anchor{1f2}@anchor{gnat_ugn/platform_specific_information id29}@anchor{1f7}
  @subsubsection Ada DLLs and Finalization
  
  
*************** invoke the DLL finalization routine, if
*** 24152,24165 ****
  routine is in charge of releasing all resources acquired by the DLL. In the
  case of the Ada code contained in the DLL, this is achieved by calling
  routine @code{adafinal} generated by the GNAT binder
! (@ref{a0,,Binding with Non-Ada Main Programs}).
  See the body of @code{Finalize_Api} for an
  example. As already pointed out the GNAT binder is automatically invoked
  during the DLL build process by the @code{gnatdll} tool
! (@ref{1e5,,Using gnatdll}).
  
  @node Creating a Spec for Ada DLLs,GNAT and Windows Resources,Ada DLLs and Finalization,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information creating-a-spec-for-ada-dlls}@anchor{1f4}@anchor{gnat_ugn/platform_specific_information id30}@anchor{1f5}
  @subsubsection Creating a Spec for Ada DLLs
  
  
--- 24345,24358 ----
  routine is in charge of releasing all resources acquired by the DLL. In the
  case of the Ada code contained in the DLL, this is achieved by calling
  routine @code{adafinal} generated by the GNAT binder
! (@ref{7e,,Binding with Non-Ada Main Programs}).
  See the body of @code{Finalize_Api} for an
  example. As already pointed out the GNAT binder is automatically invoked
  during the DLL build process by the @code{gnatdll} tool
! (@ref{1e9,,Using gnatdll}).
  
  @node Creating a Spec for Ada DLLs,GNAT and Windows Resources,Ada DLLs and Finalization,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information creating-a-spec-for-ada-dlls}@anchor{1f8}@anchor{gnat_ugn/platform_specific_information id30}@anchor{1f9}
  @subsubsection Creating a Spec for Ada DLLs
  
  
*************** end API;
*** 24217,24223 ****
  @end menu
  
  @node Creating the Definition File,Using gnatdll,,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information creating-the-definition-file}@anchor{1f1}@anchor{gnat_ugn/platform_specific_information id31}@anchor{1f6}
  @subsubsection Creating the Definition File
  
  
--- 24410,24416 ----
  @end menu
  
  @node Creating the Definition File,Using gnatdll,,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information creating-the-definition-file}@anchor{1f5}@anchor{gnat_ugn/platform_specific_information id31}@anchor{1fa}
  @subsubsection Creating the Definition File
  
  
*************** EXPORTS
*** 24253,24259 ****
  @end quotation
  
  @node Using gnatdll,,Creating the Definition File,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information id32}@anchor{1f7}@anchor{gnat_ugn/platform_specific_information using-gnatdll}@anchor{1e5}
  @subsubsection Using @code{gnatdll}
  
  
--- 24446,24452 ----
  @end quotation
  
  @node Using gnatdll,,Creating the Definition File,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information id32}@anchor{1fb}@anchor{gnat_ugn/platform_specific_information using-gnatdll}@anchor{1e9}
  @subsubsection Using @code{gnatdll}
  
  
*************** asks @code{gnatlink} to generate the rou
*** 24464,24470 ****
  is loaded into memory.
  
  @item 
! @code{gnatdll} uses @code{dlltool} (see @ref{1f8,,Using dlltool}) to build the
  export table (@code{api.exp}). The export table contains the relocation
  information in a form which can be used during the final link to ensure
  that the Windows loader is able to place the DLL anywhere in memory.
--- 24657,24663 ----
  is loaded into memory.
  
  @item 
! @code{gnatdll} uses @code{dlltool} (see @ref{1fc,,Using dlltool}) to build the
  export table (@code{api.exp}). The export table contains the relocation
  information in a form which can be used during the final link to ensure
  that the Windows loader is able to place the DLL anywhere in memory.
*************** $ gnatbind -n api
*** 24503,24509 ****
  $ gnatlink api api.exp -o api.dll -mdll
  @end example
  @end itemize
! @anchor{gnat_ugn/platform_specific_information using-dlltool}@anchor{1f8}
  @subsubheading Using @code{dlltool}
  
  
--- 24696,24702 ----
  $ gnatlink api api.exp -o api.dll -mdll
  @end example
  @end itemize
! @anchor{gnat_ugn/platform_specific_information using-dlltool}@anchor{1fc}
  @subsubheading Using @code{dlltool}
  
  
*************** DLL in the static import library generat
*** 24562,24568 ****
  @item @code{-k}
  
  Kill @code{@@@var{nn}} from exported names
! (@ref{1d2,,Windows Calling Conventions}
  for a discussion about @code{Stdcall}-style symbols).
  @end table
  
--- 24755,24761 ----
  @item @code{-k}
  
  Kill @code{@@@var{nn}} from exported names
! (@ref{1d6,,Windows Calling Conventions}
  for a discussion about @code{Stdcall}-style symbols).
  @end table
  
*************** Use @code{assembler-name} as the assembl
*** 24618,24624 ****
  @end table
  
  @node GNAT and Windows Resources,Using GNAT DLLs from Microsoft Visual Studio Applications,Creating a Spec for Ada DLLs,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information gnat-and-windows-resources}@anchor{1f9}@anchor{gnat_ugn/platform_specific_information id33}@anchor{1fa}
  @subsubsection GNAT and Windows Resources
  
  
--- 24811,24817 ----
  @end table
  
  @node GNAT and Windows Resources,Using GNAT DLLs from Microsoft Visual Studio Applications,Creating a Spec for Ada DLLs,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information gnat-and-windows-resources}@anchor{1fd}@anchor{gnat_ugn/platform_specific_information id33}@anchor{1fe}
  @subsubsection GNAT and Windows Resources
  
  
*************** the corresponding Microsoft documentatio
*** 24713,24719 ****
  @end menu
  
  @node Building Resources,Compiling Resources,,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information building-resources}@anchor{1fb}@anchor{gnat_ugn/platform_specific_information id34}@anchor{1fc}
  @subsubsection Building Resources
  
  
--- 24906,24912 ----
  @end menu
  
  @node Building Resources,Compiling Resources,,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information building-resources}@anchor{1ff}@anchor{gnat_ugn/platform_specific_information id34}@anchor{200}
  @subsubsection Building Resources
  
  
*************** complete description of the resource scr
*** 24733,24739 ****
  Microsoft documentation.
  
  @node Compiling Resources,Using Resources,Building Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information compiling-resources}@anchor{1fd}@anchor{gnat_ugn/platform_specific_information id35}@anchor{1fe}
  @subsubsection Compiling Resources
  
  
--- 24926,24932 ----
  Microsoft documentation.
  
  @node Compiling Resources,Using Resources,Building Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information compiling-resources}@anchor{201}@anchor{gnat_ugn/platform_specific_information id35}@anchor{202}
  @subsubsection Compiling Resources
  
  
*************** $ windres -i myres.res -o myres.o
*** 24775,24781 ****
  @end quotation
  
  @node Using Resources,,Compiling Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information id36}@anchor{1ff}@anchor{gnat_ugn/platform_specific_information using-resources}@anchor{200}
  @subsubsection Using Resources
  
  
--- 24968,24974 ----
  @end quotation
  
  @node Using Resources,,Compiling Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information id36}@anchor{203}@anchor{gnat_ugn/platform_specific_information using-resources}@anchor{204}
  @subsubsection Using Resources
  
  
*************** $ gnatmake myprog -largs myres.o
*** 24795,24801 ****
  @end quotation
  
  @node Using GNAT DLLs from Microsoft Visual Studio Applications,Debugging a DLL,GNAT and Windows Resources,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information using-gnat-dll-from-msvs}@anchor{201}@anchor{gnat_ugn/platform_specific_information using-gnat-dlls-from-microsoft-visual-studio-applications}@anchor{202}
  @subsubsection Using GNAT DLLs from Microsoft Visual Studio Applications
  
  
--- 24988,24994 ----
  @end quotation
  
  @node Using GNAT DLLs from Microsoft Visual Studio Applications,Debugging a DLL,GNAT and Windows Resources,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information using-gnat-dll-from-msvs}@anchor{205}@anchor{gnat_ugn/platform_specific_information using-gnat-dlls-from-microsoft-visual-studio-applications}@anchor{206}
  @subsubsection Using GNAT DLLs from Microsoft Visual Studio Applications
  
  
*************** $ gprbuild -p mylib.gpr
*** 24829,24835 ****
  @item 
  Produce a .def file for the symbols you need to interface with, either by
  hand or automatically with possibly some manual adjustments
! (see @ref{1e3,,Creating Definition File Automatically}):
  @end enumerate
  
  @quotation
--- 25022,25028 ----
  @item 
  Produce a .def file for the symbols you need to interface with, either by
  hand or automatically with possibly some manual adjustments
! (see @ref{1e7,,Creating Definition File Automatically}):
  @end enumerate
  
  @quotation
*************** $ dlltool libmylib.dll -z libmylib.def -
*** 24846,24852 ****
  Make sure that MSVS command-line tools are accessible on the path.
  
  @item 
! Create the Microsoft-style import library (see @ref{1e6,,MSVS-Style Import Library}):
  @end enumerate
  
  @quotation
--- 25039,25045 ----
  Make sure that MSVS command-line tools are accessible on the path.
  
  @item 
! Create the Microsoft-style import library (see @ref{1ea,,MSVS-Style Import Library}):
  @end enumerate
  
  @quotation
*************** or copy the DLL into into the directory
*** 24888,24894 ****
  @end enumerate
  
  @node Debugging a DLL,Setting Stack Size from gnatlink,Using GNAT DLLs from Microsoft Visual Studio Applications,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information debugging-a-dll}@anchor{203}@anchor{gnat_ugn/platform_specific_information id37}@anchor{204}
  @subsubsection Debugging a DLL
  
  
--- 25081,25087 ----
  @end enumerate
  
  @node Debugging a DLL,Setting Stack Size from gnatlink,Using GNAT DLLs from Microsoft Visual Studio Applications,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information debugging-a-dll}@anchor{207}@anchor{gnat_ugn/platform_specific_information id37}@anchor{208}
  @subsubsection Debugging a DLL
  
  
*************** tools suite used to build the DLL.
*** 24926,24932 ****
  @end menu
  
  @node Program and DLL Both Built with GCC/GNAT,Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Debugging a DLL
! @anchor{gnat_ugn/platform_specific_information id38}@anchor{205}@anchor{gnat_ugn/platform_specific_information program-and-dll-both-built-with-gcc-gnat}@anchor{206}
  @subsubsection Program and DLL Both Built with GCC/GNAT
  
  
--- 25119,25125 ----
  @end menu
  
  @node Program and DLL Both Built with GCC/GNAT,Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Debugging a DLL
! @anchor{gnat_ugn/platform_specific_information id38}@anchor{209}@anchor{gnat_ugn/platform_specific_information program-and-dll-both-built-with-gcc-gnat}@anchor{20a}
  @subsubsection Program and DLL Both Built with GCC/GNAT
  
  
*************** the process. Let’s suppose here that t
*** 24936,24942 ****
  @code{ada_main} and that in the DLL there is an entry point named
  @code{ada_dll}.
  
! The DLL (@ref{1dc,,Introduction to Dynamic Link Libraries (DLLs)}) and
  program must have been built with the debugging information (see GNAT -g
  switch). Here are the step-by-step instructions for debugging it:
  
--- 25129,25135 ----
  @code{ada_main} and that in the DLL there is an entry point named
  @code{ada_dll}.
  
! The DLL (@ref{1e0,,Introduction to Dynamic Link Libraries (DLLs)}) and
  program must have been built with the debugging information (see GNAT -g
  switch). Here are the step-by-step instructions for debugging it:
  
*************** Set a breakpoint inside the DLL
*** 24973,24982 ****
  
  At this stage a breakpoint is set inside the DLL. From there on
  you can use the standard approach to debug the whole program
! (@ref{14d,,Running and Debugging Ada Programs}).
  
  @node Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Program and DLL Both Built with GCC/GNAT,Debugging a DLL
! @anchor{gnat_ugn/platform_specific_information id39}@anchor{207}@anchor{gnat_ugn/platform_specific_information program-built-with-foreign-tools-and-dll-built-with-gcc-gnat}@anchor{208}
  @subsubsection Program Built with Foreign Tools and DLL Built with GCC/GNAT
  
  
--- 25166,25175 ----
  
  At this stage a breakpoint is set inside the DLL. From there on
  you can use the standard approach to debug the whole program
! (@ref{14f,,Running and Debugging Ada Programs}).
  
  @node Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Program and DLL Both Built with GCC/GNAT,Debugging a DLL
! @anchor{gnat_ugn/platform_specific_information id39}@anchor{20b}@anchor{gnat_ugn/platform_specific_information program-built-with-foreign-tools-and-dll-built-with-gcc-gnat}@anchor{20c}
  @subsubsection Program Built with Foreign Tools and DLL Built with GCC/GNAT
  
  
*************** example some C code built with Microsoft
*** 24993,24999 ****
  DLL named @code{test.dll} containing an Ada entry point named
  @code{ada_dll}.
  
! The DLL (see @ref{1dc,,Introduction to Dynamic Link Libraries (DLLs)}) must have
  been built with debugging information (see the GNAT @code{-g} option).
  
  @subsubheading Debugging the DLL Directly
--- 25186,25192 ----
  DLL named @code{test.dll} containing an Ada entry point named
  @code{ada_dll}.
  
! The DLL (see @ref{1e0,,Introduction to Dynamic Link Libraries (DLLs)}) must have
  been built with debugging information (see the GNAT @code{-g} option).
  
  @subsubheading Debugging the DLL Directly
*************** Continue the program.
*** 25059,25065 ****
  
  This will run the program until it reaches the breakpoint that has been
  set. From that point you can use the standard way to debug a program
! as described in (@ref{14d,,Running and Debugging Ada Programs}).
  @end itemize
  
  It is also possible to debug the DLL by attaching to a running process.
--- 25252,25258 ----
  
  This will run the program until it reaches the breakpoint that has been
  set. From that point you can use the standard way to debug a program
! as described in (@ref{14f,,Running and Debugging Ada Programs}).
  @end itemize
  
  It is also possible to debug the DLL by attaching to a running process.
*************** Continue process execution.
*** 25129,25138 ****
  This last step will resume the process execution, and stop at
  the breakpoint we have set. From there you can use the standard
  approach to debug a program as described in
! @ref{14d,,Running and Debugging Ada Programs}.
  
  @node Setting Stack Size from gnatlink,Setting Heap Size from gnatlink,Debugging a DLL,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id40}@anchor{209}@anchor{gnat_ugn/platform_specific_information setting-stack-size-from-gnatlink}@anchor{127}
  @subsubsection Setting Stack Size from @code{gnatlink}
  
  
--- 25322,25331 ----
  This last step will resume the process execution, and stop at
  the breakpoint we have set. From there you can use the standard
  approach to debug a program as described in
! @ref{14f,,Running and Debugging Ada Programs}.
  
  @node Setting Stack Size from gnatlink,Setting Heap Size from gnatlink,Debugging a DLL,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id40}@anchor{20d}@anchor{gnat_ugn/platform_specific_information setting-stack-size-from-gnatlink}@anchor{129}
  @subsubsection Setting Stack Size from @code{gnatlink}
  
  
*************** because the comma is a separator for thi
*** 25175,25181 ****
  @end itemize
  
  @node Setting Heap Size from gnatlink,,Setting Stack Size from gnatlink,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id41}@anchor{20a}@anchor{gnat_ugn/platform_specific_information setting-heap-size-from-gnatlink}@anchor{128}
  @subsubsection Setting Heap Size from @code{gnatlink}
  
  
--- 25368,25374 ----
  @end itemize
  
  @node Setting Heap Size from gnatlink,,Setting Stack Size from gnatlink,Mixed-Language Programming on Windows
! @anchor{gnat_ugn/platform_specific_information id41}@anchor{20e}@anchor{gnat_ugn/platform_specific_information setting-heap-size-from-gnatlink}@anchor{12a}
  @subsubsection Setting Heap Size from @code{gnatlink}
  
  
*************** because the comma is a separator for thi
*** 25208,25214 ****
  @end itemize
  
  @node Windows Specific Add-Ons,,Mixed-Language Programming on Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information win32-specific-addons}@anchor{20b}@anchor{gnat_ugn/platform_specific_information windows-specific-add-ons}@anchor{20c}
  @subsection Windows Specific Add-Ons
  
  
--- 25401,25407 ----
  @end itemize
  
  @node Windows Specific Add-Ons,,Mixed-Language Programming on Windows,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information win32-specific-addons}@anchor{20f}@anchor{gnat_ugn/platform_specific_information windows-specific-add-ons}@anchor{210}
  @subsection Windows Specific Add-Ons
  
  
*************** This section describes the Windows speci
*** 25221,25227 ****
  @end menu
  
  @node Win32Ada,wPOSIX,,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id42}@anchor{20d}@anchor{gnat_ugn/platform_specific_information win32ada}@anchor{20e}
  @subsubsection Win32Ada
  
  
--- 25414,25420 ----
  @end menu
  
  @node Win32Ada,wPOSIX,,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id42}@anchor{211}@anchor{gnat_ugn/platform_specific_information win32ada}@anchor{212}
  @subsubsection Win32Ada
  
  
*************** gprbuild p.gpr
*** 25252,25258 ****
  @end quotation
  
  @node wPOSIX,,Win32Ada,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id43}@anchor{20f}@anchor{gnat_ugn/platform_specific_information wposix}@anchor{210}
  @subsubsection wPOSIX
  
  
--- 25445,25451 ----
  @end quotation
  
  @node wPOSIX,,Win32Ada,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id43}@anchor{213}@anchor{gnat_ugn/platform_specific_information wposix}@anchor{214}
  @subsubsection wPOSIX
  
  
*************** gprbuild p.gpr
*** 25285,25291 ****
  @end quotation
  
  @node Mac OS Topics,,Microsoft Windows Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id44}@anchor{211}@anchor{gnat_ugn/platform_specific_information mac-os-topics}@anchor{212}
  @section Mac OS Topics
  
  
--- 25478,25484 ----
  @end quotation
  
  @node Mac OS Topics,,Microsoft Windows Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id44}@anchor{215}@anchor{gnat_ugn/platform_specific_information mac-os-topics}@anchor{216}
  @section Mac OS Topics
  
  
*************** platform.
*** 25300,25306 ****
  @end menu
  
  @node Codesigning the Debugger,,,Mac OS Topics
! @anchor{gnat_ugn/platform_specific_information codesigning-the-debugger}@anchor{213}
  @subsection Codesigning the Debugger
  
  
--- 25493,25499 ----
  @end menu
  
  @node Codesigning the Debugger,,,Mac OS Topics
! @anchor{gnat_ugn/platform_specific_information codesigning-the-debugger}@anchor{217}
  @subsection Codesigning the Debugger
  
  
*************** the location where you installed GNAT.
*** 25381,25387 ****
  in the Unix group @code{_developer}.
  
  @node Example of Binder Output File,Elaboration Order Handling in GNAT,Platform-Specific Information,Top
! @anchor{gnat_ugn/example_of_binder_output doc}@anchor{214}@anchor{gnat_ugn/example_of_binder_output example-of-binder-output-file}@anchor{e}@anchor{gnat_ugn/example_of_binder_output id1}@anchor{215}
  @chapter Example of Binder Output File
  
  
--- 25574,25580 ----
  in the Unix group @code{_developer}.
  
  @node Example of Binder Output File,Elaboration Order Handling in GNAT,Platform-Specific Information,Top
! @anchor{gnat_ugn/example_of_binder_output doc}@anchor{218}@anchor{gnat_ugn/example_of_binder_output example-of-binder-output-file}@anchor{e}@anchor{gnat_ugn/example_of_binder_output id1}@anchor{219}
  @chapter Example of Binder Output File
  
  
*************** elaboration code in your own application
*** 26133,26139 ****
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node Elaboration Order Handling in GNAT,Inline Assembler,Example of Binder Output File,Top
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat doc}@anchor{216}@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order-handling-in-gnat}@anchor{f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id1}@anchor{217}
  @chapter Elaboration Order Handling in GNAT
  
  
--- 26326,26332 ----
  @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
  
  @node Elaboration Order Handling in GNAT,Inline Assembler,Example of Binder Output File,Top
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat doc}@anchor{21a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order-handling-in-gnat}@anchor{f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id1}@anchor{21b}
  @chapter Elaboration Order Handling in GNAT
  
  
*************** GNAT, either automatically or with expli
*** 26163,26169 ****
  @end menu
  
  @node Elaboration Code,Elaboration Order,,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-code}@anchor{218}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id2}@anchor{219}
  @section Elaboration Code
  
  
--- 26356,26362 ----
  @end menu
  
  @node Elaboration Code,Elaboration Order,,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-code}@anchor{21c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id2}@anchor{21d}
  @section Elaboration Code
  
  
*************** elaborated.
*** 26311,26317 ****
  @end itemize
  
  @node Elaboration Order,Checking the Elaboration Order,Elaboration Code,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order}@anchor{21a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id3}@anchor{21b}
  @section Elaboration Order
  
  
--- 26504,26510 ----
  @end itemize
  
  @node Elaboration Order,Checking the Elaboration Order,Elaboration Code,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order}@anchor{21e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id3}@anchor{21f}
  @section Elaboration Order
  
  
*************** however a compiler may not always find s
*** 26480,26486 ****
  respect to control and data flow.
  
  @node Checking the Elaboration Order,Controlling the Elaboration Order in Ada,Elaboration Order,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat checking-the-elaboration-order}@anchor{21c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id4}@anchor{21d}
  @section Checking the Elaboration Order
  
  
--- 26673,26679 ----
  respect to control and data flow.
  
  @node Checking the Elaboration Order,Controlling the Elaboration Order in Ada,Elaboration Order,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat checking-the-elaboration-order}@anchor{220}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id4}@anchor{221}
  @section Checking the Elaboration Order
  
  
*************** order.
*** 26541,26547 ****
  @end itemize
  
  @node Controlling the Elaboration Order in Ada,Controlling the Elaboration Order in GNAT,Checking the Elaboration Order,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order-in-ada}@anchor{21e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id5}@anchor{21f}
  @section Controlling the Elaboration Order in Ada
  
  
--- 26734,26740 ----
  @end itemize
  
  @node Controlling the Elaboration Order in Ada,Controlling the Elaboration Order in GNAT,Checking the Elaboration Order,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order-in-ada}@anchor{222}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id5}@anchor{223}
  @section Controlling the Elaboration Order in Ada
  
  
*************** is that the program continues to stay in
*** 26869,26875 ****
  orders exist) even if maintenance changes the bodies of targets.
  
  @node Controlling the Elaboration Order in GNAT,Mixing Elaboration Models,Controlling the Elaboration Order in Ada,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order-in-gnat}@anchor{220}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id6}@anchor{221}
  @section Controlling the Elaboration Order in GNAT
  
  
--- 27062,27068 ----
  orders exist) even if maintenance changes the bodies of targets.
  
  @node Controlling the Elaboration Order in GNAT,Mixing Elaboration Models,Controlling the Elaboration Order in Ada,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order-in-gnat}@anchor{224}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id6}@anchor{225}
  @section Controlling the Elaboration Order in GNAT
  
  
*************** The dynamic, legacy, and static models c
*** 26999,27005 ****
  may not diagnose certain elaboration issues or install run-time checks.
  
  @node Mixing Elaboration Models,ABE Diagnostics,Controlling the Elaboration Order in GNAT,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id7}@anchor{222}@anchor{gnat_ugn/elaboration_order_handling_in_gnat mixing-elaboration-models}@anchor{223}
  @section Mixing Elaboration Models
  
  
--- 27192,27198 ----
  may not diagnose certain elaboration issues or install run-time checks.
  
  @node Mixing Elaboration Models,ABE Diagnostics,Controlling the Elaboration Order in GNAT,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id7}@anchor{226}@anchor{gnat_ugn/elaboration_order_handling_in_gnat mixing-elaboration-models}@anchor{227}
  @section Mixing Elaboration Models
  
  
*************** warning:   "y.ads" which has static elab
*** 27046,27052 ****
  The warnings can be suppressed by binder switch @code{-ws}.
  
  @node ABE Diagnostics,SPARK Diagnostics,Mixing Elaboration Models,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat abe-diagnostics}@anchor{224}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id8}@anchor{225}
  @section ABE Diagnostics
  
  
--- 27239,27245 ----
  The warnings can be suppressed by binder switch @code{-ws}.
  
  @node ABE Diagnostics,SPARK Diagnostics,Mixing Elaboration Models,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat abe-diagnostics}@anchor{228}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id8}@anchor{229}
  @section ABE Diagnostics
  
  
*************** declaration @code{Safe} because the body
*** 27153,27159 ****
  elaborated at that point.
  
  @node SPARK Diagnostics,Elaboration Circularities,ABE Diagnostics,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id9}@anchor{226}@anchor{gnat_ugn/elaboration_order_handling_in_gnat spark-diagnostics}@anchor{227}
  @section SPARK Diagnostics
  
  
--- 27346,27352 ----
  elaborated at that point.
  
  @node SPARK Diagnostics,Elaboration Circularities,ABE Diagnostics,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id9}@anchor{22a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat spark-diagnostics}@anchor{22b}
  @section SPARK Diagnostics
  
  
*************** rules.
*** 27179,27185 ****
  @end quotation
  
  @node Elaboration Circularities,Resolving Elaboration Circularities,SPARK Diagnostics,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-circularities}@anchor{228}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id10}@anchor{229}
  @section Elaboration Circularities
  
  
--- 27372,27378 ----
  @end quotation
  
  @node Elaboration Circularities,Resolving Elaboration Circularities,SPARK Diagnostics,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-circularities}@anchor{22c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id10}@anchor{22d}
  @section Elaboration Circularities
  
  
*************** This section enumerates various tactics
*** 27279,27285 ****
  @end itemize
  
  @node Resolving Elaboration Circularities,Elaboration-related Compiler Switches,Elaboration Circularities,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id11}@anchor{22a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat resolving-elaboration-circularities}@anchor{22b}
  @section Resolving Elaboration Circularities
  
  
--- 27472,27478 ----
  @end itemize
  
  @node Resolving Elaboration Circularities,Elaboration-related Compiler Switches,Elaboration Circularities,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id11}@anchor{22e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat resolving-elaboration-circularities}@anchor{22f}
  @section Resolving Elaboration Circularities
  
  
*************** Use the relaxed dynamic-elaboration mode
*** 27551,27557 ****
  @end itemize
  
  @node Elaboration-related Compiler Switches,Summary of Procedures for Elaboration Control,Resolving Elaboration Circularities,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-related-compiler-switches}@anchor{22c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id12}@anchor{22d}
  @section Elaboration-related Compiler Switches
  
  
--- 27744,27750 ----
  @end itemize
  
  @node Elaboration-related Compiler Switches,Summary of Procedures for Elaboration Control,Resolving Elaboration Circularities,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-related-compiler-switches}@anchor{230}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id12}@anchor{231}
  @section Elaboration-related Compiler Switches
  
  
*************** checks. The example above will still fai
*** 27732,27738 ****
  @end table
  
  @node Summary of Procedures for Elaboration Control,Inspecting the Chosen Elaboration Order,Elaboration-related Compiler Switches,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id13}@anchor{22e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat summary-of-procedures-for-elaboration-control}@anchor{22f}
  @section Summary of Procedures for Elaboration Control
  
  
--- 27925,27931 ----
  @end table
  
  @node Summary of Procedures for Elaboration Control,Inspecting the Chosen Elaboration Order,Elaboration-related Compiler Switches,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id13}@anchor{232}@anchor{gnat_ugn/elaboration_order_handling_in_gnat summary-of-procedures-for-elaboration-control}@anchor{233}
  @section Summary of Procedures for Elaboration Control
  
  
*************** Use the relaxed dynamic elaboration mode
*** 27790,27796 ****
  @end itemize
  
  @node Inspecting the Chosen Elaboration Order,,Summary of Procedures for Elaboration Control,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id14}@anchor{230}@anchor{gnat_ugn/elaboration_order_handling_in_gnat inspecting-the-chosen-elaboration-order}@anchor{231}
  @section Inspecting the Chosen Elaboration Order
  
  
--- 27983,27989 ----
  @end itemize
  
  @node Inspecting the Chosen Elaboration Order,,Summary of Procedures for Elaboration Control,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat id14}@anchor{234}@anchor{gnat_ugn/elaboration_order_handling_in_gnat inspecting-the-chosen-elaboration-order}@anchor{235}
  @section Inspecting the Chosen Elaboration Order
  
  
*************** gdbstr (body)
*** 27933,27939 ****
  @end quotation
  
  @node Inline Assembler,GNU Free Documentation License,Elaboration Order Handling in GNAT,Top
! @anchor{gnat_ugn/inline_assembler doc}@anchor{232}@anchor{gnat_ugn/inline_assembler id1}@anchor{233}@anchor{gnat_ugn/inline_assembler inline-assembler}@anchor{10}
  @chapter Inline Assembler
  
  
--- 28126,28132 ----
  @end quotation
  
  @node Inline Assembler,GNU Free Documentation License,Elaboration Order Handling in GNAT,Top
! @anchor{gnat_ugn/inline_assembler doc}@anchor{236}@anchor{gnat_ugn/inline_assembler id1}@anchor{237}@anchor{gnat_ugn/inline_assembler inline-assembler}@anchor{10}
  @chapter Inline Assembler
  
  
*************** and with assembly language programming.
*** 27992,27998 ****
  @end menu
  
  @node Basic Assembler Syntax,A Simple Example of Inline Assembler,,Inline Assembler
! @anchor{gnat_ugn/inline_assembler basic-assembler-syntax}@anchor{234}@anchor{gnat_ugn/inline_assembler id2}@anchor{235}
  @section Basic Assembler Syntax
  
  
--- 28185,28191 ----
  @end menu
  
  @node Basic Assembler Syntax,A Simple Example of Inline Assembler,,Inline Assembler
! @anchor{gnat_ugn/inline_assembler basic-assembler-syntax}@anchor{238}@anchor{gnat_ugn/inline_assembler id2}@anchor{239}
  @section Basic Assembler Syntax
  
  
*************** Intel: Destination first; for example @c
*** 28108,28114 ****
  
  
  @node A Simple Example of Inline Assembler,Output Variables in Inline Assembler,Basic Assembler Syntax,Inline Assembler
! @anchor{gnat_ugn/inline_assembler a-simple-example-of-inline-assembler}@anchor{236}@anchor{gnat_ugn/inline_assembler id3}@anchor{237}
  @section A Simple Example of Inline Assembler
  
  
--- 28301,28307 ----
  
  
  @node A Simple Example of Inline Assembler,Output Variables in Inline Assembler,Basic Assembler Syntax,Inline Assembler
! @anchor{gnat_ugn/inline_assembler a-simple-example-of-inline-assembler}@anchor{23a}@anchor{gnat_ugn/inline_assembler id3}@anchor{23b}
  @section A Simple Example of Inline Assembler
  
  
*************** If there are no errors, @code{as} will g
*** 28257,28263 ****
  @code{nothing.out}.
  
  @node Output Variables in Inline Assembler,Input Variables in Inline Assembler,A Simple Example of Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id4}@anchor{238}@anchor{gnat_ugn/inline_assembler output-variables-in-inline-assembler}@anchor{239}
  @section Output Variables in Inline Assembler
  
  
--- 28450,28456 ----
  @code{nothing.out}.
  
  @node Output Variables in Inline Assembler,Input Variables in Inline Assembler,A Simple Example of Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id4}@anchor{23c}@anchor{gnat_ugn/inline_assembler output-variables-in-inline-assembler}@anchor{23d}
  @section Output Variables in Inline Assembler
  
  
*************** end Get_Flags_3;
*** 28624,28630 ****
  @end quotation
  
  @node Input Variables in Inline Assembler,Inlining Inline Assembler Code,Output Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id5}@anchor{23a}@anchor{gnat_ugn/inline_assembler input-variables-in-inline-assembler}@anchor{23b}
  @section Input Variables in Inline Assembler
  
  
--- 28817,28823 ----
  @end quotation
  
  @node Input Variables in Inline Assembler,Inlining Inline Assembler Code,Output Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id5}@anchor{23e}@anchor{gnat_ugn/inline_assembler input-variables-in-inline-assembler}@anchor{23f}
  @section Input Variables in Inline Assembler
  
  
*************** _increment__incr.1:
*** 28713,28719 ****
  @end quotation
  
  @node Inlining Inline Assembler Code,Other Asm Functionality,Input Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id6}@anchor{23c}@anchor{gnat_ugn/inline_assembler inlining-inline-assembler-code}@anchor{23d}
  @section Inlining Inline Assembler Code
  
  
--- 28906,28912 ----
  @end quotation
  
  @node Inlining Inline Assembler Code,Other Asm Functionality,Input Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id6}@anchor{240}@anchor{gnat_ugn/inline_assembler inlining-inline-assembler-code}@anchor{241}
  @section Inlining Inline Assembler Code
  
  
*************** movl %esi,%eax
*** 28784,28790 ****
  thus saving the overhead of stack frame setup and an out-of-line call.
  
  @node Other Asm Functionality,,Inlining Inline Assembler Code,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id7}@anchor{23e}@anchor{gnat_ugn/inline_assembler other-asm-functionality}@anchor{23f}
  @section Other @code{Asm} Functionality
  
  
--- 28977,28983 ----
  thus saving the overhead of stack frame setup and an out-of-line call.
  
  @node Other Asm Functionality,,Inlining Inline Assembler Code,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id7}@anchor{242}@anchor{gnat_ugn/inline_assembler other-asm-functionality}@anchor{243}
  @section Other @code{Asm} Functionality
  
  
*************** and @code{Volatile}, which inhibits unwa
*** 28799,28805 ****
  @end menu
  
  @node The Clobber Parameter,The Volatile Parameter,,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id8}@anchor{240}@anchor{gnat_ugn/inline_assembler the-clobber-parameter}@anchor{241}
  @subsection The @code{Clobber} Parameter
  
  
--- 28992,28998 ----
  @end menu
  
  @node The Clobber Parameter,The Volatile Parameter,,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id8}@anchor{244}@anchor{gnat_ugn/inline_assembler the-clobber-parameter}@anchor{245}
  @subsection The @code{Clobber} Parameter
  
  
*************** Use ‘register’ name @code{memory} if
*** 28863,28869 ****
  @end itemize
  
  @node The Volatile Parameter,,The Clobber Parameter,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id9}@anchor{242}@anchor{gnat_ugn/inline_assembler the-volatile-parameter}@anchor{243}
  @subsection The @code{Volatile} Parameter
  
  
--- 29056,29062 ----
  @end itemize
  
  @node The Volatile Parameter,,The Clobber Parameter,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id9}@anchor{246}@anchor{gnat_ugn/inline_assembler the-volatile-parameter}@anchor{247}
  @subsection The @code{Volatile} Parameter
  
  
*************** to @code{True} only if the compiler’s
*** 28899,28905 ****
  problems.
  
  @node GNU Free Documentation License,Index,Inline Assembler,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{244}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{245}
  @chapter GNU Free Documentation License
  
  
--- 29092,29098 ----
  problems.
  
  @node GNU Free Documentation License,Index,Inline Assembler,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{248}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{249}
  @chapter GNU Free Documentation License
  
  
*************** to permit their use in free software.
*** 29388,29394 ****
  @printindex ge
  
  @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{                              }
! @anchor{cf}@w{                              }
  
  @c %**end of body
  @bye
--- 29581,29587 ----
  @printindex ge
  
  @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{                              }
! @anchor{d1}@w{                              }
  
  @c %**end of body
  @bye
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatbind.adb gcc-14.1.0/gcc/ada/gnatbind.adb
*** gcc-13.2.0/gcc/ada/gnatbind.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatbind.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatbind.ads gcc-14.1.0/gcc/ada/gnatbind.ads
*** gcc-13.2.0/gcc/ada/gnatbind.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatbind.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatchop.adb gcc-14.1.0/gcc/ada/gnatchop.adb
*** gcc-13.2.0/gcc/ada/gnatchop.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatchop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatclean.adb gcc-14.1.0/gcc/ada/gnatclean.adb
*** gcc-13.2.0/gcc/ada/gnatclean.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatclean.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatcmd.adb gcc-14.1.0/gcc/ada/gnatcmd.adb
*** gcc-13.2.0/gcc/ada/gnatcmd.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatcmd.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatcmd.ads gcc-14.1.0/gcc/ada/gnatcmd.ads
*** gcc-13.2.0/gcc/ada/gnatcmd.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatcmd.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatdll.adb gcc-14.1.0/gcc/ada/gnatdll.adb
*** gcc-13.2.0/gcc/ada/gnatdll.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatdll.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatkr.adb gcc-14.1.0/gcc/ada/gnatkr.adb
*** gcc-13.2.0/gcc/ada/gnatkr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatkr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatkr.ads gcc-14.1.0/gcc/ada/gnatkr.ads
*** gcc-13.2.0/gcc/ada/gnatkr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatkr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatlink.adb gcc-14.1.0/gcc/ada/gnatlink.adb
*** gcc-13.2.0/gcc/ada/gnatlink.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatlink.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatlink.ads gcc-14.1.0/gcc/ada/gnatlink.ads
*** gcc-13.2.0/gcc/ada/gnatlink.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatlink.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatls.adb gcc-14.1.0/gcc/ada/gnatls.adb
*** gcc-13.2.0/gcc/ada/gnatls.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatls.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure Gnatls is
*** 1414,1420 ****
           First := 3;
           loop
              while First <= Name_Len
!               and then (Name_Buffer (First) = Path_Separator)
              loop
                 First := First + 1;
              end loop;
--- 1414,1420 ----
           First := 3;
           loop
              while First <= Name_Len
!               and then Name_Buffer (First) = Path_Separator
              loop
                 First := First + 1;
              end loop;
*************** begin
*** 2170,2176 ****
              First := Prj_Path'First;
              loop
                 while First <= Prj_Path'Last
!                  and then (Prj_Path (First) = Path_Separator)
                 loop
                    First := First + 1;
                 end loop;
--- 2170,2176 ----
              First := Prj_Path'First;
              loop
                 while First <= Prj_Path'Last
!                  and then Prj_Path (First) = Path_Separator
                 loop
                    First := First + 1;
                 end loop;
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatls.ads gcc-14.1.0/gcc/ada/gnatls.ads
*** gcc-13.2.0/gcc/ada/gnatls.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatls.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatmake.adb gcc-14.1.0/gcc/ada/gnatmake.adb
*** gcc-13.2.0/gcc/ada/gnatmake.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatmake.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatmake.ads gcc-14.1.0/gcc/ada/gnatmake.ads
*** gcc-13.2.0/gcc/ada/gnatmake.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatmake.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatname.adb gcc-14.1.0/gcc/ada/gnatname.adb
*** gcc-13.2.0/gcc/ada/gnatname.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatname.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatname.ads gcc-14.1.0/gcc/ada/gnatname.ads
*** gcc-13.2.0/gcc/ada/gnatname.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatname.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatprep.adb gcc-14.1.0/gcc/ada/gnatprep.adb
*** gcc-13.2.0/gcc/ada/gnatprep.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatprep.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatprep.ads gcc-14.1.0/gcc/ada/gnatprep.ads
*** gcc-13.2.0/gcc/ada/gnatprep.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatprep.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatvsn.adb gcc-14.1.0/gcc/ada/gnatvsn.adb
*** gcc-13.2.0/gcc/ada/gnatvsn.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatvsn.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gnatvsn.ads gcc-14.1.0/gcc/ada/gnatvsn.ads
*** gcc-13.2.0/gcc/ada/gnatvsn.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gnatvsn.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Gnatvsn is
*** 32,45 ****
     --  Static string identifying this version, that can be used as an argument
     --  to e.g. pragma Ident.
  
!    Library_Version : constant String := "13";
     --  Library version. It needs to be updated whenever the major version
     --  number is changed.
     --
     --  Note: Makefile.in uses the library version string to construct the
     --  soname value.
  
!    Current_Year : constant String := "2023";
     --  Used in printing copyright messages
  
     Verbose_Library_Version : constant String := "GNAT Lib v" & Library_Version;
--- 32,45 ----
     --  Static string identifying this version, that can be used as an argument
     --  to e.g. pragma Ident.
  
!    Library_Version : constant String := "14";
     --  Library version. It needs to be updated whenever the major version
     --  number is changed.
     --
     --  Note: Makefile.in uses the library version string to construct the
     --  soname value.
  
!    Current_Year : constant String := "2024";
     --  Used in printing copyright messages
  
     Verbose_Library_Version : constant String := "GNAT Lib v" & Library_Version;
diff -Nrcpad gcc-13.2.0/gcc/ada/gprep.adb gcc-14.1.0/gcc/ada/gprep.adb
*** gcc-13.2.0/gcc/ada/gprep.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gprep.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GPrep is
*** 228,234 ****
        --  the deleted lines are not put as comment, we must output them as
        --  blank lines.
  
!       if Source_Ref_Pragma and (not Opt.Comment_Deleted_Lines) then
           Opt.Blank_Deleted_Lines := True;
        end if;
  
--- 228,234 ----
        --  the deleted lines are not put as comment, we must output them as
        --  blank lines.
  
!       if Source_Ref_Pragma and not Opt.Comment_Deleted_Lines then
           Opt.Blank_Deleted_Lines := True;
        end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/gprep.ads gcc-14.1.0/gcc/ada/gprep.ads
*** gcc-13.2.0/gcc/ada/gprep.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gprep.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/gsocket.h gcc-14.1.0/gcc/ada/gsocket.h
*** gcc-13.2.0/gcc/ada/gsocket.h	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/gsocket.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *         Copyright (C) 2004-2023, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *         Copyright (C) 2004-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/hostparm.ads gcc-14.1.0/gcc/ada/hostparm.ads
*** gcc-13.2.0/gcc/ada/hostparm.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/hostparm.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/impunit.adb gcc-14.1.0/gcc/ada/impunit.adb
*** gcc-13.2.0/gcc/ada/impunit.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/impunit.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2000-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2000-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/impunit.ads gcc-14.1.0/gcc/ada/impunit.ads
*** gcc-13.2.0/gcc/ada/impunit.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/impunit.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/indepsw-aix.adb gcc-14.1.0/gcc/ada/indepsw-aix.adb
*** gcc-13.2.0/gcc/ada/indepsw-aix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/indepsw-aix.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                              (AIX version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                              (AIX version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/indepsw-darwin.adb gcc-14.1.0/gcc/ada/indepsw-darwin.adb
*** gcc-13.2.0/gcc/ada/indepsw-darwin.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/indepsw-darwin.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                            (Darwin version)                              --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                            (Darwin version)                              --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/indepsw-gnu.adb gcc-14.1.0/gcc/ada/indepsw-gnu.adb
*** gcc-13.2.0/gcc/ada/indepsw-gnu.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/indepsw-gnu.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                              (GNU version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                              (GNU version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/indepsw.adb gcc-14.1.0/gcc/ada/indepsw.adb
*** gcc-13.2.0/gcc/ada/indepsw.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/indepsw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/indepsw.ads gcc-14.1.0/gcc/ada/indepsw.ads
*** gcc-13.2.0/gcc/ada/indepsw.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/indepsw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/init.c gcc-14.1.0/gcc/ada/init.c
*** gcc-13.2.0/gcc/ada/init.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/init.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** __gnat_error_handler (int sig,
*** 248,254 ****
    switch (sig)
      {
      case SIGSEGV:
!       /* FIXME: we need to detect the case of a *real* SIGSEGV.  */
        exception = &storage_error;
        msg = "stack overflow or erroneous memory access";
        break;
--- 248,254 ----
    switch (sig)
      {
      case SIGSEGV:
!       /* ??? we need to detect the case of a *real* SIGSEGV.  */
        exception = &storage_error;
        msg = "stack overflow or erroneous memory access";
        break;
*************** __gnat_error_handler (int sig, siginfo_t
*** 340,346 ****
    switch (sig)
      {
      case SIGSEGV:
!       /* FIXME: we need to detect the case of a *real* SIGSEGV.  */
        exception = &storage_error;
        msg = "stack overflow or erroneous memory access";
        break;
--- 340,346 ----
    switch (sig)
      {
      case SIGSEGV:
!       /* ??? we need to detect the case of a *real* SIGSEGV.  */
        exception = &storage_error;
        msg = "stack overflow or erroneous memory access";
        break;
diff -Nrcpad gcc-13.2.0/gcc/ada/initialize.c gcc-14.1.0/gcc/ada/initialize.c
*** gcc-13.2.0/gcc/ada/initialize.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/initialize.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/inline.adb gcc-14.1.0/gcc/ada/inline.adb
*** gcc-13.2.0/gcc/ada/inline.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/inline.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Inline is
*** 312,320 ****
--- 312,322 ----
     --  Remove all aspects and/or pragmas that have no meaning in inlined body
     --  Body_Decl. The analysis of these items is performed on the non-inlined
     --  body. The items currently removed are:
+    --    Always_Terminates
     --    Contract_Cases
     --    Global
     --    Depends
+    --    Exceptional_Cases
     --    Postcondition
     --    Precondition
     --    Refined_Global
*************** package body Inline is
*** 333,349 ****
     -- Deferred Cleanup Actions --
     ------------------------------
  
!    --  The cleanup actions for scopes that contain instantiations is delayed
!    --  until after expansion of those instantiations, because they may contain
!    --  finalizable objects or tasks that affect the cleanup code. A scope
!    --  that contains instantiations only needs to be finalized once, even
!    --  if it contains more than one instance. We keep a list of scopes
!    --  that must still be finalized, and call cleanup_actions after all
!    --  the instantiations have been completed.
  
     To_Clean : Elist_Id;
  
!    procedure Add_Scope_To_Clean (Inst : Entity_Id);
     --  Build set of scopes on which cleanup actions must be performed
  
     procedure Cleanup_Scopes;
--- 335,351 ----
     -- Deferred Cleanup Actions --
     ------------------------------
  
!    --  The cleanup actions for scopes that contain package instantiations with
!    --  a body are delayed until after the package body is instantiated. because
!    --  the body may contain finalizable objects or other constructs that affect
!    --  the cleanup code. A scope that contains such instantiations only needs
!    --  to be finalized once, even though it may contain more than one instance.
!    --  We keep a list of scopes that must still be finalized and Cleanup_Scopes
!    --  will be invoked after all the body instantiations have been completed.
  
     To_Clean : Elist_Id;
  
!    procedure Add_Scope_To_Clean (Scop : Entity_Id);
     --  Build set of scopes on which cleanup actions must be performed
  
     procedure Cleanup_Scopes;
*************** package body Inline is
*** 782,788 ****
     --  Add_Pending_Instantiation --
     --------------------------------
  
!    procedure Add_Pending_Instantiation (Inst : Node_Id; Act_Decl : Node_Id) is
        Act_Decl_Id : Entity_Id;
        Index       : Int;
  
--- 784,794 ----
     --  Add_Pending_Instantiation --
     --------------------------------
  
!    procedure Add_Pending_Instantiation
!      (Inst     : Node_Id;
!       Act_Decl : Node_Id;
!       Fin_Scop : Node_Id := Empty)
!    is
        Act_Decl_Id : Entity_Id;
        Index       : Int;
  
*************** package body Inline is
*** 801,811 ****
        --  for later processing by Instantiate_Bodies.
  
        Pending_Instantiations.Append
!         ((Act_Decl                 => Act_Decl,
            Config_Switches          => Save_Config_Switches,
            Current_Sem_Unit         => Current_Sem_Unit,
            Expander_Status          => Expander_Active,
-           Inst_Node                => Inst,
            Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
            Scope_Suppress           => Scope_Suppress,
            Warnings                 => Save_Warnings));
--- 807,818 ----
        --  for later processing by Instantiate_Bodies.
  
        Pending_Instantiations.Append
!         ((Inst_Node                => Inst,
!           Act_Decl                 => Act_Decl,
!           Fin_Scop                 => Fin_Scop,
            Config_Switches          => Save_Config_Switches,
            Current_Sem_Unit         => Current_Sem_Unit,
            Expander_Status          => Expander_Active,
            Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
            Scope_Suppress           => Scope_Suppress,
            Warnings                 => Save_Warnings));
*************** package body Inline is
*** 837,873 ****
     -- Add_Scope_To_Clean --
     ------------------------
  
!    procedure Add_Scope_To_Clean (Inst : Entity_Id) is
!       Scop : constant Entity_Id := Enclosing_Dynamic_Scope (Inst);
        Elmt : Elmt_Id;
  
     begin
-       --  If the instance appears in a library-level package declaration,
-       --  all finalization is global, and nothing needs doing here.
- 
-       if Scop = Standard_Standard then
-          return;
-       end if;
- 
-       --  If the instance is within a generic unit, no finalization code
-       --  can be generated. Note that at this point all bodies have been
-       --  analyzed, and the scope stack itself is not present, and the flag
-       --  Inside_A_Generic is not set.
- 
-       declare
-          S : Entity_Id;
- 
-       begin
-          S := Scope (Inst);
-          while Present (S) and then S /= Standard_Standard loop
-             if Is_Generic_Unit (S) then
-                return;
-             end if;
- 
-             S := Scope (S);
-          end loop;
-       end;
- 
        Elmt := First_Elmt (To_Clean);
        while Present (Elmt) loop
           if Node (Elmt) = Scop then
--- 844,853 ----
     -- Add_Scope_To_Clean --
     ------------------------
  
!    procedure Add_Scope_To_Clean (Scop : Entity_Id) is
        Elmt : Elmt_Id;
  
     begin
        Elmt := First_Elmt (To_Clean);
        while Present (Elmt) loop
           if Node (Elmt) = Scop then
*************** package body Inline is
*** 1523,1528 ****
--- 1503,1512 ----
        --  an unconstrained record type with per-object constraints on component
        --  types.
  
+       function Has_Skip_Proof_Annotation (Id : Entity_Id) return Boolean;
+       --  Returns True if subprogram Id has an annotation Skip_Proof or
+       --  Skip_Flow_And_Proof.
+ 
        function Has_Some_Contract (Id : Entity_Id) return Boolean;
        --  Return True if subprogram Id has any contract. The presence of
        --  Extensions_Visible or Volatile_Function is also considered as a
*************** package body Inline is
*** 1721,1726 ****
--- 1705,1749 ----
           return False;
        end Has_Formal_With_Discriminant_Dependent_Fields;
  
+       -------------------------------
+       -- Has_Skip_Proof_Annotation --
+       -------------------------------
+ 
+       function Has_Skip_Proof_Annotation (Id : Entity_Id) return Boolean is
+          Decl : Node_Id := Unit_Declaration_Node (Id);
+ 
+       begin
+          Next (Decl);
+ 
+          while Present (Decl)
+            and then Nkind (Decl) = N_Pragma
+          loop
+             if Get_Pragma_Id (Decl) = Pragma_Annotate
+               and then List_Length (Pragma_Argument_Associations (Decl)) = 3
+             then
+                declare
+                   Arg1      : constant Node_Id :=
+                     First (Pragma_Argument_Associations (Decl));
+                   Arg2      : constant Node_Id := Next (Arg1);
+                   Arg1_Name : constant String :=
+                     Get_Name_String (Chars (Get_Pragma_Arg (Arg1)));
+                   Arg2_Name : constant String :=
+                     Get_Name_String (Chars (Get_Pragma_Arg (Arg2)));
+                begin
+                   if Arg1_Name = "gnatprove"
+                     and then Arg2_Name in "skip_proof" | "skip_flow_and_proof"
+                   then
+                      return True;
+                   end if;
+                end;
+             end if;
+ 
+             Next (Decl);
+          end loop;
+ 
+          return False;
+       end Has_Skip_Proof_Annotation;
+ 
        -----------------------
        -- Has_Some_Contract --
        -----------------------
*************** package body Inline is
*** 1923,1928 ****
--- 1946,1957 ----
        elsif Maybe_Traversal_Function (Id) then
           return False;
  
+       --  Do not inline subprograms with the Skip_Proof or Skip_Flow_And_Proof
+       --  annotation, which should be handled separately.
+ 
+       elsif Has_Skip_Proof_Annotation (Id) then
+          return False;
+ 
        --  Otherwise, this is a subprogram declared inside the private part of a
        --  package, or inside a package body, or locally in a subprogram, and it
        --  does not have any contract. Inline it.
*************** package body Inline is
*** 1954,1962 ****
        then
           declare
              Len1 : constant Positive :=
!               String (String'("cannot inline"))'Length;
              Len2 : constant Positive :=
!               String (String'("info: no contextual analysis of"))'Length;
  
              New_Msg : String (1 .. Msg'Length + Len2 - Len1);
  
--- 1983,1991 ----
        then
           declare
              Len1 : constant Positive :=
!               String'("cannot inline")'Length;
              Len2 : constant Positive :=
!               String'("info: no contextual analysis of")'Length;
  
              New_Msg : String (1 .. Msg'Length + Len2 - Len1);
  
*************** package body Inline is
*** 2015,2031 ****
  
           Error_Msg_NE (Msg (Msg'First .. Msg'Last - 1), N, Subp);
  
-       --  In GNATprove mode, issue an info message when -gnatd_f is set and
-       --  Suppress_Info is False, and indicate that the subprogram is not
-       --  always inlined by setting flag Is_Inlined_Always to False.
- 
-       elsif GNATprove_Mode then
-          Set_Is_Inlined_Always (Subp, False);
- 
-          if Debug_Flag_Underscore_F and not Suppress_Info then
-             Error_Msg_NE (Msg, N, Subp);
-          end if;
- 
        else
  
           --  Do not emit warning if this is a predefined unit which is not
--- 2044,2049 ----
*************** package body Inline is
*** 2815,2851 ****
     --------------------
  
     procedure Cleanup_Scopes is
-       Elmt : Elmt_Id;
        Decl : Node_Id;
        Scop : Entity_Id;
  
     begin
        Elmt := First_Elmt (To_Clean);
        while Present (Elmt) loop
           Scop := Node (Elmt);
  
!          if Ekind (Scop) = E_Entry then
!             Scop := Protected_Body_Subprogram (Scop);
! 
!          elsif Is_Subprogram (Scop)
!            and then Is_Protected_Type (Underlying_Type (Scope (Scop)))
!            and then Present (Protected_Body_Subprogram (Scop))
!          then
!             --  If a protected operation contains an instance, its cleanup
!             --  operations have been delayed, and the subprogram has been
!             --  rewritten in the expansion of the enclosing protected body. It
!             --  is the corresponding subprogram that may require the cleanup
!             --  operations, so propagate the information that triggers cleanup
!             --  activity.
! 
!             Set_Uses_Sec_Stack
!               (Protected_Body_Subprogram (Scop),
!                 Uses_Sec_Stack (Scop));
! 
!             Scop := Protected_Body_Subprogram (Scop);
!          end if;
! 
!          if Ekind (Scop) = E_Block then
              Decl := Parent (Block_Node (Scop));
  
           else
--- 2833,2851 ----
     --------------------
  
     procedure Cleanup_Scopes is
        Decl : Node_Id;
+       Elmt : Elmt_Id;
+       Fin  : Entity_Id;
+       Kind : Entity_Kind;
        Scop : Entity_Id;
  
     begin
        Elmt := First_Elmt (To_Clean);
        while Present (Elmt) loop
           Scop := Node (Elmt);
+          Kind := Ekind (Scop);
  
!          if Kind = E_Block then
              Decl := Parent (Block_Node (Scop));
  
           else
*************** package body Inline is
*** 2859,2872 ****
              end if;
           end if;
  
!          Push_Scope (Scop);
!          Expand_Cleanup_Actions (Decl);
!          End_Scope;
  
           Next_Elmt (Elmt);
        end loop;
     end Cleanup_Scopes;
  
     procedure Establish_Actual_Mapping_For_Inlined_Call
       (N                     : Node_Id;
        Subp                  : Entity_Id;
--- 2859,2913 ----
              end if;
           end if;
  
!          --  Finalizers are built only for package specs and bodies that are
!          --  compilation units, so check that we do not have anything else.
!          --  Moreover, they must be built at most once for each entity during
!          --  the compilation of the main unit. However, if other units are
!          --  later compiled for inlining purposes, they may also contain body
!          --  instances and, therefore, appear again here, so we need to make
!          --  sure that we do not build two finalizers for them (note that the
!          --  contents of the finalizer for these units is irrelevant since it
!          --  is not output in the generated code).
! 
!          if Kind in E_Package | E_Package_Body then
!             declare
!                Unit_Entity : constant Entity_Id :=
!                  (if Kind = E_Package then Scop else Spec_Entity (Scop));
! 
!             begin
!                pragma Assert (Is_Compilation_Unit (Unit_Entity)
!                  and then (No (Finalizer (Scop))
!                             or else Unit_Entity /= Main_Unit_Entity));
! 
!                if No (Finalizer (Scop)) then
!                   Build_Finalizer
!                     (N           => Decl,
!                      Clean_Stmts => No_List,
!                      Mark_Id     => Empty,
!                      Top_Decls   => No_List,
!                      Defer_Abort => False,
!                      Fin_Id      => Fin);
! 
!                   if Present (Fin) then
!                      Set_Finalizer (Scop, Fin);
!                   end if;
!                end if;
!             end;
! 
!          else
!             Push_Scope (Scop);
!             Expand_Cleanup_Actions (Decl);
!             Pop_Scope;
!          end if;
  
           Next_Elmt (Elmt);
        end loop;
     end Cleanup_Scopes;
  
+    -----------------------------------------------
+    -- Establish_Actual_Mapping_For_Inlined_Call --
+    -----------------------------------------------
+ 
     procedure Establish_Actual_Mapping_For_Inlined_Call
       (N                     : Node_Id;
        Subp                  : Entity_Id;
*************** package body Inline is
*** 2947,2971 ****
        F := First_Formal (Subp);
        A := First_Actual (N);
        while Present (F) loop
-          if Present (Renamed_Object (F)) then
- 
-             --  If expander is active, it is an error to try to inline a
-             --  recursive subprogram. In GNATprove mode, just indicate that the
-             --  inlining will not happen, and mark the subprogram as not always
-             --  inlined.
- 
-             if GNATprove_Mode then
-                Cannot_Inline
-                  ("cannot inline call to recursive subprogram?", N, Subp);
-                Set_Is_Inlined_Always (Subp, False);
-             else
-                Error_Msg_N
-                  ("cannot inline call to recursive subprogram", N);
-             end if;
- 
-             return;
-          end if;
- 
           --  Reset Last_Assignment for any parameters of mode out or in out, to
           --  prevent spurious warnings about overwriting for assignments to the
           --  formal in the inlined code.
--- 2988,2993 ----
*************** package body Inline is
*** 3577,3592 ****
        function Process_Formals_In_Aspects
          (N : Node_Id) return Traverse_Result
        is
-          A : Node_Id;
- 
        begin
!          if Has_Aspects (N) then
!             A := First (Aspect_Specifications (N));
!             while Present (A) loop
!                Replace_Formals (Expression (A));
! 
!                Next (A);
!             end loop;
           end if;
           return OK;
        end Process_Formals_In_Aspects;
--- 3599,3607 ----
        function Process_Formals_In_Aspects
          (N : Node_Id) return Traverse_Result
        is
        begin
!          if Nkind (N) = N_Aspect_Specification then
!             Replace_Formals (Expression (N));
           end if;
           return OK;
        end Process_Formals_In_Aspects;
*************** package body Inline is
*** 3681,3687 ****
              Insert_After (Parent (Entity (N)), Blk);
  
           --  If the context is an assignment, and the left-hand side is free of
!          --  side-effects, the replacement is also safe.
  
           elsif Nkind (Parent (N)) = N_Assignment_Statement
             and then
--- 3696,3702 ----
              Insert_After (Parent (Entity (N)), Blk);
  
           --  If the context is an assignment, and the left-hand side is free of
!          --  side effects, the replacement is also safe.
  
           elsif Nkind (Parent (N)) = N_Assignment_Statement
             and then
*************** package body Inline is
*** 4105,4110 ****
--- 4120,4126 ----
                Object_Definition   =>
                  New_Copy_Tree (Object_Definition (Parent (Targ1))));
           Replace_Formals (Decl);
+          Set_No_Initialization (Decl);
           Rewrite (Parent (N), Decl);
           Analyze (Parent (N));
  
*************** package body Inline is
*** 4851,4856 ****
--- 4867,4874 ----
        ------------------------
  
        procedure Instantiate_Body (Info : Pending_Body_Info) is
+          Scop : Entity_Id;
+ 
        begin
           --  If the instantiation node is absent, it has been removed as part
           --  of unreachable code.
*************** package body Inline is
*** 4865,4873 ****
           elsif Nkind (Info.Inst_Node) = N_Package_Body then
              null;
  
!          elsif Nkind (Info.Act_Decl) = N_Package_Declaration then
              Instantiate_Package_Body (Info);
!             Add_Scope_To_Clean (Defining_Entity (Info.Act_Decl));
  
           else
              Instantiate_Subprogram_Body (Info);
--- 4883,4929 ----
           elsif Nkind (Info.Inst_Node) = N_Package_Body then
              null;
  
!          --  For other package instances, instantiate the body and register the
!          --  finalization scope, if any, for subsequent generation of cleanups.
! 
!          elsif Nkind (Info.Inst_Node) = N_Package_Instantiation then
! 
!             --  If the enclosing finalization scope is a package body, set the
!             --  In_Package_Body flag on its spec. This is required, in the case
!             --  where the body contains other package instantiations that have
!             --  a body, for Analyze_Package_Instantiation to compute a correct
!             --  finalization scope.
! 
!             if Present (Info.Fin_Scop)
!               and then Ekind (Info.Fin_Scop) = E_Package_Body
!             then
!                Set_In_Package_Body (Spec_Entity (Info.Fin_Scop), True);
!             end if;
! 
              Instantiate_Package_Body (Info);
! 
!             if Present (Info.Fin_Scop) then
!                Scop := Info.Fin_Scop;
! 
!                --  If the enclosing finalization scope is dynamic, the instance
!                --  may have been relocated, for example if it was declared in a
!                --  protected entry, protected subprogram, or task body.
! 
!                if Is_Dynamic_Scope (Scop) then
!                   Scop :=
!                     Enclosing_Dynamic_Scope (Defining_Entity (Info.Act_Decl));
!                end if;
! 
!                Add_Scope_To_Clean (Scop);
! 
!                --  Reset the In_Package_Body flag if it was set above
! 
!                if Ekind (Info.Fin_Scop) = E_Package_Body then
!                   Set_In_Package_Body (Spec_Entity (Info.Fin_Scop), False);
!                end if;
!             end if;
! 
!          --  For subprogram instances, always instantiate the body
  
           else
              Instantiate_Subprogram_Body (Info);
*************** package body Inline is
*** 5183,5191 ****
              end if;
  
              if Present (Item_Id)
!               and then Chars (Item_Id) in Name_Contract_Cases
                                          | Name_Global
                                          | Name_Depends
                                          | Name_Postcondition
                                          | Name_Precondition
                                          | Name_Refined_Global
--- 5239,5249 ----
              end if;
  
              if Present (Item_Id)
!               and then Chars (Item_Id) in Name_Always_Terminates
!                                         | Name_Contract_Cases
                                          | Name_Global
                                          | Name_Depends
+                                         | Name_Exceptional_Cases
                                          | Name_Postcondition
                                          | Name_Precondition
                                          | Name_Refined_Global
diff -Nrcpad gcc-13.2.0/gcc/ada/inline.ads gcc-14.1.0/gcc/ada/inline.ads
*** gcc-13.2.0/gcc/ada/inline.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/inline.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Inline is
*** 61,69 ****
--- 61,75 ----
     --  See full description in body of Sem_Ch12 for more details
  
     type Pending_Body_Info is record
+       Inst_Node : Node_Id;
+       --  Node for instantiation that requires the body
+ 
        Act_Decl : Node_Id;
        --  Declaration for package or subprogram spec for instantiation
  
+       Fin_Scop : Node_Id;
+       --  Enclosing finalization scope for package instantiation
+ 
        Config_Switches : Config_Switches_Type;
        --  Capture the values of configuration switches
  
*************** package Inline is
*** 76,84 ****
        --  If the body is instantiated only for semantic checking, expansion
        --  must be inhibited.
  
-       Inst_Node : Node_Id;
-       --  Node for instantiation that requires the body
- 
        Scope_Suppress           : Suppress_Record;
        Local_Suppress_Stack_Top : Suppress_Stack_Entry_Ptr;
        --  Save suppress information at the point of instantiation. Used to
--- 82,87 ----
*************** package Inline is
*** 119,125 ****
     --  Add E's enclosing unit to Inlined_Bodies so that E can be subsequently
     --  retrieved and analyzed. N is the node giving rise to the call to E.
  
!    procedure Add_Pending_Instantiation (Inst : Node_Id; Act_Decl : Node_Id);
     --  Add an entry in the table of generic bodies to be instantiated.
  
     procedure Analyze_Inlined_Bodies;
--- 122,131 ----
     --  Add E's enclosing unit to Inlined_Bodies so that E can be subsequently
     --  retrieved and analyzed. N is the node giving rise to the call to E.
  
!    procedure Add_Pending_Instantiation
!      (Inst     : Node_Id;
!       Act_Decl : Node_Id;
!       Fin_Scop : Node_Id := Empty);
     --  Add an entry in the table of generic bodies to be instantiated.
  
     procedure Analyze_Inlined_Bodies;
diff -Nrcpad gcc-13.2.0/gcc/ada/itypes.adb gcc-14.1.0/gcc/ada/itypes.adb
*** gcc-13.2.0/gcc/ada/itypes.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/itypes.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/itypes.ads gcc-14.1.0/gcc/ada/itypes.ads
*** gcc-13.2.0/gcc/ada/itypes.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/itypes.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/krunch.adb gcc-14.1.0/gcc/ada/krunch.adb
*** gcc-13.2.0/gcc/ada/krunch.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/krunch.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/krunch.ads gcc-14.1.0/gcc/ada/krunch.ads
*** gcc-13.2.0/gcc/ada/krunch.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/krunch.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/layout.adb gcc-14.1.0/gcc/ada/layout.adb
*** gcc-13.2.0/gcc/ada/layout.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/layout.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/layout.ads gcc-14.1.0/gcc/ada/layout.ads
*** gcc-13.2.0/gcc/ada/layout.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/layout.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-list.adb gcc-14.1.0/gcc/ada/lib-list.adb
*** gcc-13.2.0/gcc/ada/lib-list.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-list.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-load.adb gcc-14.1.0/gcc/ada/lib-load.adb
*** gcc-13.2.0/gcc/ada/lib-load.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-load.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Lib.Load is
*** 645,655 ****
                    if Is_Predefined_File_Name (Fname) then
                       Error_Msg_Unit_1 := Uname_Actual;
                       Error_Msg
!                        ("$$ is not a language defined unit", Load_Msg_Sloc);
                    else
                       Error_Msg_File_1 := Fname;
                       Error_Msg_Unit_1 := Uname_Actual;
!                      Error_Msg ("file{ does not contain unit$", Load_Msg_Sloc);
                    end if;
  
                    Write_Dependency_Chain;
--- 645,660 ----
                    if Is_Predefined_File_Name (Fname) then
                       Error_Msg_Unit_1 := Uname_Actual;
                       Error_Msg
!                        ("$$ is not a language defined unit",
!                         Load_Msg_Sloc,
!                         Error_Node);
                    else
                       Error_Msg_File_1 := Fname;
                       Error_Msg_Unit_1 := Uname_Actual;
!                      Error_Msg
!                        ("file{ does not contain unit$",
!                         Load_Msg_Sloc,
!                         Error_Node);
                    end if;
  
                    Write_Dependency_Chain;
*************** package body Lib.Load is
*** 697,703 ****
              end if;
  
              if Present (Error_Node) then
!                Error_Msg ("circular unit dependency", Load_Msg_Sloc);
                 Write_Dependency_Chain;
              else
                 Load_Stack.Decrement_Last;
--- 702,709 ----
              end if;
  
              if Present (Error_Node) then
!                Error_Msg
!                  ("circular unit dependency", Load_Msg_Sloc, Error_Node);
                 Write_Dependency_Chain;
              else
                 Load_Stack.Decrement_Last;
*************** package body Lib.Load is
*** 798,808 ****
              then
                 Error_Msg_File_1 := Unit_File_Name (Corr_Body);
                 Error_Msg
!                  ("cannot compile subprogram in file {!", Load_Msg_Sloc);
                 Error_Msg_File_1 := Unit_File_Name (Unum);
                 Error_Msg
                   ("\incorrect spec in file { must be removed first!",
!                   Load_Msg_Sloc);
                 Unum := No_Unit;
                 goto Done;
              end if;
--- 804,817 ----
              then
                 Error_Msg_File_1 := Unit_File_Name (Corr_Body);
                 Error_Msg
!                  ("cannot compile subprogram in file {!",
!                   Load_Msg_Sloc,
!                   Error_Node);
                 Error_Msg_File_1 := Unit_File_Name (Unum);
                 Error_Msg
                   ("\incorrect spec in file { must be removed first!",
!                   Load_Msg_Sloc,
!                   Error_Node);
                 Unum := No_Unit;
                 goto Done;
              end if;
*************** package body Lib.Load is
*** 879,893 ****
  
                    Error_Msg_Unit_1 := Uname_Actual;
                    Error_Msg -- CODEFIX
!                     ("$$ is not a predefined library unit", Load_Msg_Sloc);
  
                 else
                    Error_Msg_File_1 := Fname;
  
                    if Src_Ind = No_Access_To_Source_File then
!                      Error_Msg ("no read access to file{", Load_Msg_Sloc);
                    else
!                      Error_Msg ("file{ not found", Load_Msg_Sloc);
                    end if;
                 end if;
  
--- 888,908 ----
  
                    Error_Msg_Unit_1 := Uname_Actual;
                    Error_Msg -- CODEFIX
!                     ("$$ is not a predefined library unit",
!                      Load_Msg_Sloc,
!                      Error_Node);
  
                 else
                    Error_Msg_File_1 := Fname;
  
                    if Src_Ind = No_Access_To_Source_File then
!                      Error_Msg
!                        ("no read access to file{",
!                         Load_Msg_Sloc,
!                         Error_Node
!                         );
                    else
!                      Error_Msg ("file{ not found", Load_Msg_Sloc, Error_Node);
                    end if;
                 end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-load.ads gcc-14.1.0/gcc/ada/lib-load.ads
*** gcc-13.2.0/gcc/ada/lib-load.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-load.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-sort.adb gcc-14.1.0/gcc/ada/lib-sort.adb
*** gcc-13.2.0/gcc/ada/lib-sort.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-sort.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-util.adb gcc-14.1.0/gcc/ada/lib-util.adb
*** gcc-13.2.0/gcc/ada/lib-util.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-util.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-util.ads gcc-14.1.0/gcc/ada/lib-util.ads
*** gcc-13.2.0/gcc/ada/lib-util.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-util.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-writ.adb gcc-14.1.0/gcc/ada/lib-writ.adb
*** gcc-13.2.0/gcc/ada/lib-writ.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-writ.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Rident;         use Rident;
*** 50,55 ****
--- 50,56 ----
  with Stand;          use Stand;
  with Scn;            use Scn;
  with Sem_Eval;       use Sem_Eval;
+ with Sem_Util;       use Sem_Util;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
*************** package body Lib.Writ is
*** 524,533 ****
           Write_Info_Str (" O");
           Write_Info_Char (OA_Setting (Unit_Num));
  
!          if Ekind (Uent) in E_Package | E_Package_Body
!            and then Present (Finalizer (Uent))
!          then
!             Write_Info_Str (" PF");
           end if;
  
           if Is_Preelaborated (Uent) then
--- 525,544 ----
           Write_Info_Str (" O");
           Write_Info_Char (OA_Setting (Unit_Num));
  
!          --  For a package instance with a body that is a library unit, the two
!          --  compilation units share Cunit_Entity so we cannot rely on Uent.
! 
!          if Ukind in N_Package_Declaration | N_Package_Body then
!             declare
!                E : constant Entity_Id := Defining_Entity (Unit (Unode));
! 
!             begin
!                if Ekind (E) in E_Package | E_Package_Body
!                  and then Present (Finalizer (E))
!                then
!                   Write_Info_Str (" PF");
!                end if;
!             end;
           end if;
  
           if Is_Preelaborated (Uent) then
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-writ.ads gcc-14.1.0/gcc/ada/lib-writ.ads
*** gcc-13.2.0/gcc/ada/lib-writ.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-writ.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-xref-spark_specific.adb gcc-14.1.0/gcc/ada/lib-xref-spark_specific.adb
*** gcc-13.2.0/gcc/ada/lib-xref-spark_specific.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-xref-spark_specific.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-xref.adb gcc-14.1.0/gcc/ada/lib-xref.adb
*** gcc-13.2.0/gcc/ada/lib-xref.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-xref.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Einfo;          use Einfo;
*** 29,34 ****
--- 29,35 ----
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
+ with Exp_Tss;        use Exp_Tss;
  with Lib.Util;       use Lib.Util;
  with Nlists;         use Nlists;
  with Opt;            use Opt;
*************** package body Lib.Xref is
*** 706,712 ****
              Set_Referenced (E);
  
           --  For the case where the entity is on the left hand side of an
!          --  assignment statment, we do nothing here.
  
           --  The processing for Analyze_Assignment_Statement will set the
           --  Referenced_As_LHS flag.
--- 707,713 ----
              Set_Referenced (E);
  
           --  For the case where the entity is on the left hand side of an
!          --  assignment statement, we do nothing here.
  
           --  The processing for Analyze_Assignment_Statement will set the
           --  Referenced_As_LHS flag.
*************** package body Lib.Xref is
*** 789,798 ****
           elsif Kind = E_In_Out_Parameter
             and then Is_Assignable (E)
           then
!             --  For sure this counts as a normal read reference
  
!             Set_Referenced (E);
!             Set_Last_Assignment (E, Empty);
  
              --  We count it as being referenced as an out parameter if the
              --  option is set to warn on all out parameters, except that we
--- 790,804 ----
           elsif Kind = E_In_Out_Parameter
             and then Is_Assignable (E)
           then
!             --  We count it as a read reference unless we're calling a
!             --  type support subprogram such as deep finalize.
  
!             if not Is_Entity_Name (Name (Call))
!               or else Get_TSS_Name (Entity (Name (Call))) = TSS_Null
!             then
!                Set_Referenced (E);
!                Set_Last_Assignment (E, Empty);
!             end if;
  
              --  We count it as being referenced as an out parameter if the
              --  option is set to warn on all out parameters, except that we
diff -Nrcpad gcc-13.2.0/gcc/ada/lib-xref.ads gcc-14.1.0/gcc/ada/lib-xref.ads
*** gcc-13.2.0/gcc/ada/lib-xref.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib-xref.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib.adb gcc-14.1.0/gcc/ada/lib.adb
*** gcc-13.2.0/gcc/ada/lib.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/lib.ads gcc-14.1.0/gcc/ada/lib.ads
*** gcc-13.2.0/gcc/ada/lib.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/lib.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-astaco.adb gcc-14.1.0/gcc/ada/libgnarl/a-astaco.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-astaco.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-astaco.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-dispat.adb gcc-14.1.0/gcc/ada/libgnarl/a-dispat.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-dispat.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-dispat.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-dynpri.adb gcc-14.1.0/gcc/ada/libgnarl/a-dynpri.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-dynpri.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-dynpri.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-etgrbu.ads gcc-14.1.0/gcc/ada/libgnarl/a-etgrbu.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-etgrbu.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-etgrbu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-exetim__darwin.adb gcc-14.1.0/gcc/ada/libgnarl/a-exetim__darwin.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-exetim__darwin.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-exetim__darwin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-exetim__default.ads gcc-14.1.0/gcc/ada/libgnarl/a-exetim__default.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-exetim__default.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-exetim__default.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-exetim__mingw.adb gcc-14.1.0/gcc/ada/libgnarl/a-exetim__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-exetim__mingw.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-exetim__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-exetim__mingw.ads gcc-14.1.0/gcc/ada/libgnarl/a-exetim__mingw.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-exetim__mingw.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-exetim__mingw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-exetim__posix.adb gcc-14.1.0/gcc/ada/libgnarl/a-exetim__posix.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-exetim__posix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-exetim__posix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-interr.adb gcc-14.1.0/gcc/ada/libgnarl/a-interr.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-interr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-interr.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-interr.ads gcc-14.1.0/gcc/ada/libgnarl/a-interr.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-interr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-interr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__aix.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__aix.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__aix.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__aix.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__darwin.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__darwin.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__darwin.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__darwin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__dragonfly.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__dragonfly.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__dragonfly.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__dragonfly.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__dummy.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__dummy.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__dummy.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__dummy.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                           (No Tasking Version)                           --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                           (No Tasking Version)                           --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__freebsd.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__freebsd.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__freebsd.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__freebsd.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__hpux.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__hpux.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__hpux.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__hpux.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__linux.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__linux.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__linux.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__linux.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__lynxos.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__lynxos.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__lynxos.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__lynxos.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__mingw.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__mingw.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__mingw.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__mingw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__qnx.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__qnx.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__qnx.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__qnx.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__rtems.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__rtems.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__rtems.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__rtems.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 1991-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 1991-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__solaris.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__solaris.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__solaris.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__solaris.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-intnam__vxworks.ads gcc-14.1.0/gcc/ada/libgnarl/a-intnam__vxworks.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-intnam__vxworks.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-intnam__vxworks.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-reatim.adb gcc-14.1.0/gcc/ada/libgnarl/a-reatim.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-reatim.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-reatim.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 307,312 ****
--- 307,315 ----
     --  Start of processing for Time_Of
  
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
+ 
        --  If SC is so far out of range that there is no possibility of the
        --  addition of TS getting it back in range, raise an exception right
        --  away. That way we don't have to worry about SC values overflowing.
*************** is
*** 356,361 ****
--- 359,366 ----
              Out_Of_Range;
           end if;
        end if;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Time_Of;
  
     -----------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-reatim.ads gcc-14.1.0/gcc/ada/libgnarl/a-reatim.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-reatim.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-reatim.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** pragma Elaborate_All (System.Task_Primit
*** 39,47 ****
  package Ada.Real_Time with
    SPARK_Mode,
    Abstract_State => (Clock_Time with Synchronous),
!   Initializes    => Clock_Time
  is
-    pragma Annotate (GNATprove, Always_Return, Real_Time);
  
     pragma Compile_Time_Error
       (Duration'Size /= 64,
--- 39,47 ----
  package Ada.Real_Time with
    SPARK_Mode,
    Abstract_State => (Clock_Time with Synchronous),
!   Initializes    => Clock_Time,
!   Always_Terminates
  is
  
     pragma Compile_Time_Error
       (Duration'Size /= 64,
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-retide.adb gcc-14.1.0/gcc/ada/libgnarl/a-retide.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-retide.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-retide.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-retide.ads gcc-14.1.0/gcc/ada/libgnarl/a-retide.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-retide.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-retide.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-rttiev.adb gcc-14.1.0/gcc/ada/libgnarl/a-rttiev.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-rttiev.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-rttiev.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2005-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2005-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-rttiev.ads gcc-14.1.0/gcc/ada/libgnarl/a-rttiev.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-rttiev.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-rttiev.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2005-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2005-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package Ada.Real_Time.Timing_Events is
*** 61,66 ****
--- 61,72 ----
  
     function Time_Of_Event (Event : Timing_Event) return Time;
  
+    --  The compilation closure of this version (as opposed to the hie version)
+    --  of Ada.Real_TIme.Timing_Events includes a specification of a
+    --  Concurrent Partition_Elaboration_Policy. Thus, a bind-time error
+    --  will result if this unit occurs in the same partition as a conflicting
+    --  Partition_Elaboration_Policy specification.
+ 
  private
  
     type Timing_Event is new Ada.Finalization.Limited_Controlled with record
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-synbar.adb gcc-14.1.0/gcc/ada/libgnarl/a-synbar.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-synbar.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-synbar.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-synbar.ads gcc-14.1.0/gcc/ada/libgnarl/a-synbar.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-synbar.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-synbar.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-synbar__posix.adb gcc-14.1.0/gcc/ada/libgnarl/a-synbar__posix.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-synbar__posix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-synbar__posix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-synbar__posix.ads gcc-14.1.0/gcc/ada/libgnarl/a-synbar__posix.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-synbar__posix.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-synbar__posix.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-sytaco.adb gcc-14.1.0/gcc/ada/libgnarl/a-sytaco.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-sytaco.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-sytaco.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-sytaco.ads gcc-14.1.0/gcc/ada/libgnarl/a-sytaco.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-sytaco.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-sytaco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-tasatt.adb gcc-14.1.0/gcc/ada/libgnarl/a-tasatt.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-tasatt.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-tasatt.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,34 ****
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Storage_Elements;
  with System.Tasking;
  with System.Tasking.Initialization;
  with System.Tasking.Task_Attributes;
*************** with Ada.Unchecked_Deallocation;
*** 43,48 ****
--- 44,50 ----
  package body Ada.Task_Attributes is
  
     use System,
+        System.Storage_Elements,
         System.Tasking.Initialization,
         System.Tasking,
         System.Tasking.Task_Attributes;
*************** package body Ada.Task_Attributes is
*** 75,108 ****
     --  System.Tasking.Task_Attributes.Attribute_Record and to allow unchecked
     --  conversions between Attribute_Access and Real_Attribute_Access.
  
!    function New_Attribute (Val : Attribute) return Atomic_Address;
     --  Create a new Real_Attribute using Val, and return its address. The
     --  returned value can be converted via To_Real_Attribute.
  
!    procedure Deallocate (Ptr : Atomic_Address);
     --  Free memory associated with Ptr, a Real_Attribute_Access in reality
  
     function To_Real_Attribute is new
!      Ada.Unchecked_Conversion (Atomic_Address, Real_Attribute_Access);
  
     pragma Warnings (Off);
     --  Kill warning about possible size mismatch
  
     function To_Address is new
!      Ada.Unchecked_Conversion (Attribute, Atomic_Address);
     function To_Attribute is new
!      Ada.Unchecked_Conversion (Atomic_Address, Attribute);
  
     type Unsigned is mod 2 ** Integer'Size;
-    function To_Address is new
-      Ada.Unchecked_Conversion (Attribute, System.Address);
     function To_Unsigned is new
       Ada.Unchecked_Conversion (Attribute, Unsigned);
  
     pragma Warnings (On);
  
     function To_Address is new
!      Ada.Unchecked_Conversion (Real_Attribute_Access, Atomic_Address);
  
     pragma Warnings (Off);
     --  Kill warning about possible aliasing
--- 77,108 ----
     --  System.Tasking.Task_Attributes.Attribute_Record and to allow unchecked
     --  conversions between Attribute_Access and Real_Attribute_Access.
  
!    function New_Attribute (Val : Attribute) return System.Address;
     --  Create a new Real_Attribute using Val, and return its address. The
     --  returned value can be converted via To_Real_Attribute.
  
!    procedure Deallocate (Ptr : System.Address);
     --  Free memory associated with Ptr, a Real_Attribute_Access in reality
  
     function To_Real_Attribute is new
!      Ada.Unchecked_Conversion (System.Address, Real_Attribute_Access);
  
     pragma Warnings (Off);
     --  Kill warning about possible size mismatch
  
     function To_Address is new
!      Ada.Unchecked_Conversion (Attribute, System.Address);
     function To_Attribute is new
!      Ada.Unchecked_Conversion (System.Address, Attribute);
  
     type Unsigned is mod 2 ** Integer'Size;
     function To_Unsigned is new
       Ada.Unchecked_Conversion (Attribute, Unsigned);
  
     pragma Warnings (On);
  
     function To_Address is new
!      Ada.Unchecked_Conversion (Real_Attribute_Access, System.Address);
  
     pragma Warnings (Off);
     --  Kill warning about possible aliasing
*************** package body Ada.Task_Attributes is
*** 121,132 ****
  
     Fast_Path : constant Boolean :=
                   (Attribute'Size = Integer'Size
!                    and then Attribute'Alignment <= Atomic_Address'Alignment
                     and then To_Unsigned (Initial_Value) = 0)
                   or else (Attribute'Size = System.Address'Size
!                    and then Attribute'Alignment <= Atomic_Address'Alignment
!                    and then To_Address (Initial_Value) = System.Null_Address);
!    --  If the attribute fits in an Atomic_Address (both size and alignment)
     --  and Initial_Value is 0 (or null), then we will map the attribute
     --  directly into ATCB.Attributes (Index), otherwise we will create
     --  a level of indirection and instead use Attributes (Index) as a
--- 121,132 ----
  
     Fast_Path : constant Boolean :=
                   (Attribute'Size = Integer'Size
!                    and then Attribute'Alignment <= System.Address'Alignment
                     and then To_Unsigned (Initial_Value) = 0)
                   or else (Attribute'Size = System.Address'Size
!                    and then Attribute'Alignment <= System.Address'Alignment
!                    and then To_Address (Initial_Value) = Null_Address);
!    --  If the attribute fits in a System.Address (both size and alignment)
     --  and Initial_Value is 0 (or null), then we will map the attribute
     --  directly into ATCB.Attributes (Index), otherwise we will create
     --  a level of indirection and instead use Attributes (Index) as a
*************** package body Ada.Task_Attributes is
*** 153,163 ****
           while C /= null loop
              STPO.Write_Lock (C);
  
!             if C.Attributes (Index) /= 0
                and then Require_Finalization (Index)
              then
                 Deallocate (C.Attributes (Index));
!                C.Attributes (Index) := 0;
              end if;
  
              STPO.Unlock (C);
--- 153,163 ----
           while C /= null loop
              STPO.Write_Lock (C);
  
!             if C.Attributes (Index) /= Null_Address
                and then Require_Finalization (Index)
              then
                 Deallocate (C.Attributes (Index));
!                C.Attributes (Index) := Null_Address;
              end if;
  
              STPO.Unlock (C);
*************** package body Ada.Task_Attributes is
*** 173,179 ****
     -- Deallocate --
     ----------------
  
!    procedure Deallocate (Ptr : Atomic_Address) is
        Obj : Real_Attribute_Access := To_Real_Attribute (Ptr);
     begin
        Free (Obj);
--- 173,179 ----
     -- Deallocate --
     ----------------
  
!    procedure Deallocate (Ptr : System.Address) is
        Obj : Real_Attribute_Access := To_Real_Attribute (Ptr);
     begin
        Free (Obj);
*************** package body Ada.Task_Attributes is
*** 183,189 ****
     -- New_Attribute --
     -------------------
  
!    function New_Attribute (Val : Attribute) return Atomic_Address is
        Tmp : Real_Attribute_Access;
     begin
        Tmp := new Real_Attribute'(Free  => Deallocate'Unrestricted_Access,
--- 183,189 ----
     -- New_Attribute --
     -------------------
  
!    function New_Attribute (Val : Attribute) return System.Address is
        Tmp : Real_Attribute_Access;
     begin
        Tmp := new Real_Attribute'(Free  => Deallocate'Unrestricted_Access,
*************** package body Ada.Task_Attributes is
*** 223,229 ****
           Self_Id := STPO.Self;
           Task_Lock (Self_Id);
  
!          if TT.Attributes (Index) = 0 then
              TT.Attributes (Index) := New_Attribute (Initial_Value);
           end if;
  
--- 223,229 ----
           Self_Id := STPO.Self;
           Task_Lock (Self_Id);
  
!          if TT.Attributes (Index) = Null_Address then
              TT.Attributes (Index) := New_Attribute (Initial_Value);
           end if;
  
*************** package body Ada.Task_Attributes is
*** 266,276 ****
           Task_Lock (Self_Id);
  
           declare
!             Attr : Atomic_Address renames TT.Attributes (Index);
           begin
!             if Attr /= 0 then
                 Deallocate (Attr);
!                Attr := 0;
              end if;
           end;
  
--- 266,276 ----
           Task_Lock (Self_Id);
  
           declare
!             Attr : System.Address renames TT.Attributes (Index);
           begin
!             if Attr /= Null_Address then
                 Deallocate (Attr);
!                Attr := Null_Address;
              end if;
           end;
  
*************** package body Ada.Task_Attributes is
*** 304,310 ****
           --  No finalization needed, simply set to Val
  
           if Attribute'Size = Integer'Size then
!             TT.Attributes (Index) := Atomic_Address (To_Unsigned (Val));
           else
              TT.Attributes (Index) := To_Address (Val);
           end if;
--- 304,311 ----
           --  No finalization needed, simply set to Val
  
           if Attribute'Size = Integer'Size then
!             TT.Attributes (Index) :=
!               To_Address (Integer_Address (To_Unsigned (Val)));
           else
              TT.Attributes (Index) := To_Address (Val);
           end if;
*************** package body Ada.Task_Attributes is
*** 314,323 ****
           Task_Lock (Self_Id);
  
           declare
!             Attr : Atomic_Address renames TT.Attributes (Index);
  
           begin
!             if Attr /= 0 then
                 Deallocate (Attr);
              end if;
  
--- 315,324 ----
           Task_Lock (Self_Id);
  
           declare
!             Attr : System.Address renames TT.Attributes (Index);
  
           begin
!             if Attr /= Null_Address then
                 Deallocate (Attr);
              end if;
  
*************** package body Ada.Task_Attributes is
*** 357,366 ****
           Task_Lock (Self_Id);
  
           declare
!             Attr : Atomic_Address renames TT.Attributes (Index);
  
           begin
!             if Attr = 0 then
                 Task_Unlock (Self_Id);
                 return Initial_Value;
  
--- 358,367 ----
           Task_Lock (Self_Id);
  
           declare
!             Attr : System.Address renames TT.Attributes (Index);
  
           begin
!             if Attr = Null_Address then
                 Task_Unlock (Self_Id);
                 return Initial_Value;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-tasatt.ads gcc-14.1.0/gcc/ada/libgnarl/a-tasatt.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-tasatt.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-tasatt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-taside.adb gcc-14.1.0/gcc/ada/libgnarl/a-taside.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-taside.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-taside.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-taside.ads gcc-14.1.0/gcc/ada/libgnarl/a-taside.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-taside.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-taside.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-tasini.adb gcc-14.1.0/gcc/ada/libgnarl/a-tasini.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-tasini.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-tasini.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-tasini.ads gcc-14.1.0/gcc/ada/libgnarl/a-tasini.ads
*** gcc-13.2.0/gcc/ada/libgnarl/a-tasini.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-tasini.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/a-taster.adb gcc-14.1.0/gcc/ada/libgnarl/a-taster.adb
*** gcc-13.2.0/gcc/ada/libgnarl/a-taster.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/a-taster.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-boubuf.adb gcc-14.1.0/gcc/ada/libgnarl/g-boubuf.adb
*** gcc-13.2.0/gcc/ada/libgnarl/g-boubuf.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-boubuf.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-boubuf.ads gcc-14.1.0/gcc/ada/libgnarl/g-boubuf.ads
*** gcc-13.2.0/gcc/ada/libgnarl/g-boubuf.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-boubuf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-boumai.ads gcc-14.1.0/gcc/ada/libgnarl/g-boumai.ads
*** gcc-13.2.0/gcc/ada/libgnarl/g-boumai.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-boumai.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-semaph.adb gcc-14.1.0/gcc/ada/libgnarl/g-semaph.adb
*** gcc-13.2.0/gcc/ada/libgnarl/g-semaph.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-semaph.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-semaph.ads gcc-14.1.0/gcc/ada/libgnarl/g-semaph.ads
*** gcc-13.2.0/gcc/ada/libgnarl/g-semaph.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-semaph.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-signal.adb gcc-14.1.0/gcc/ada/libgnarl/g-signal.adb
*** gcc-13.2.0/gcc/ada/libgnarl/g-signal.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-signal.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-signal.ads gcc-14.1.0/gcc/ada/libgnarl/g-signal.ads
*** gcc-13.2.0/gcc/ada/libgnarl/g-signal.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-signal.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-tastus.ads gcc-14.1.0/gcc/ada/libgnarl/g-tastus.ads
*** gcc-13.2.0/gcc/ada/libgnarl/g-tastus.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-tastus.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-thread.adb gcc-14.1.0/gcc/ada/libgnarl/g-thread.adb
*** gcc-13.2.0/gcc/ada/libgnarl/g-thread.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-thread.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1998-2023, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1998-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/g-thread.ads gcc-14.1.0/gcc/ada/libgnarl/g-thread.ads
*** gcc-13.2.0/gcc/ada/libgnarl/g-thread.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/g-thread.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/i-vxinco.adb gcc-14.1.0/gcc/ada/libgnarl/i-vxinco.adb
*** gcc-13.2.0/gcc/ada/libgnarl/i-vxinco.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/i-vxinco.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --                        Copyright (C) 2016-2023, AdaCore                  --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --                        Copyright (C) 2016-2024, AdaCore                  --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/i-vxinco.ads gcc-14.1.0/gcc/ada/libgnarl/i-vxinco.ads
*** gcc-13.2.0/gcc/ada/libgnarl/i-vxinco.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/i-vxinco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                        Copyright (C) 2016-2023, AdaCore                  --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                        Copyright (C) 2016-2024, AdaCore                  --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-inmaop.ads gcc-14.1.0/gcc/ada/libgnarl/s-inmaop.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-inmaop.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-inmaop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-inmaop__dummy.adb gcc-14.1.0/gcc/ada/libgnarl/s-inmaop__dummy.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-inmaop__dummy.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-inmaop__dummy.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-inmaop__hwint.adb gcc-14.1.0/gcc/ada/libgnarl/s-inmaop__hwint.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-inmaop__hwint.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-inmaop__hwint.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-inmaop__posix.adb gcc-14.1.0/gcc/ada/libgnarl/s-inmaop__posix.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-inmaop__posix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-inmaop__posix.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Interrupt_Management
*** 135,140 ****
--- 135,141 ----
  
     begin
        Result := sigwait (Mask, Sig'Access);
+       pragma Assert (Result = 0);
  
        if Result /= 0 then
           return 0;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-interr.adb gcc-14.1.0/gcc/ada/libgnarl/s-interr.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-interr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-interr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Interrupts is
*** 187,206 ****
     --  needed to accomplish locking per Interrupt base. Also is needed to
     --  decide whether to create a new Server_Task.
  
!    --  Type and Head, Tail of the list containing Registered Interrupt
!    --  Handlers. These definitions are used to register the handlers
!    --  specified by the pragma Interrupt_Handler.
  
     type Registered_Handler;
     type R_Link is access all Registered_Handler;
  
     type Registered_Handler is record
!       H    : System.Address := System.Null_Address;
!       Next : R_Link := null;
     end record;
  
!    Registered_Handler_Head : R_Link := null;
!    Registered_Handler_Tail : R_Link := null;
  
     Access_Hold : Server_Task_Access;
     --  Variable used to allocate Server_Task using "new"
--- 187,209 ----
     --  needed to accomplish locking per Interrupt base. Also is needed to
     --  decide whether to create a new Server_Task.
  
!    --  Type and the list containing Registered Interrupt Handlers. These
!    --  definitions are used to register the handlers specified by the pragma
!    --  Interrupt_Handler.
! 
!    --------------------------
!    -- Handler Registration --
!    --------------------------
  
     type Registered_Handler;
     type R_Link is access all Registered_Handler;
  
     type Registered_Handler is record
!       H    : System.Address;
!       Next : R_Link;
     end record;
  
!    Registered_Handlers : R_Link := null;
  
     Access_Hold : Server_Task_Access;
     --  Variable used to allocate Server_Task using "new"
*************** package body System.Interrupts is
*** 254,260 ****
     is
        Interrupt : constant Interrupt_ID :=
                      Interrupt_ID (Storage_Elements.To_Integer (Int_Ref));
- 
     begin
        if Is_Reserved (Interrupt) then
           raise Program_Error with
--- 257,262 ----
*************** package body System.Interrupts is
*** 538,543 ****
--- 540,546 ----
     -------------------
  
     function Is_Registered (Handler : Parameterless_Handler) return Boolean is
+       Ptr : R_Link := Registered_Handlers;
  
        type Acc_Proc is access procedure;
  
*************** package body System.Interrupts is
*** 549,555 ****
        function To_Fat_Ptr is new Ada.Unchecked_Conversion
          (Parameterless_Handler, Fat_Ptr);
  
-       Ptr : R_Link;
        Fat : Fat_Ptr;
  
     begin
--- 552,557 ----
*************** package body System.Interrupts is
*** 559,565 ****
  
        Fat := To_Fat_Ptr (Handler);
  
-       Ptr := Registered_Handler_Head;
        while Ptr /= null loop
           if Ptr.H = Fat.Handler_Addr.all'Address then
              return True;
--- 561,566 ----
*************** package body System.Interrupts is
*** 600,607 ****
     ---------------------------------
  
     procedure Register_Interrupt_Handler (Handler_Addr : System.Address) is
-       New_Node_Ptr : R_Link;
- 
     begin
        --  This routine registers the Handler as usable for Dynamic Interrupt
        --  Handler. Routines attaching and detaching Handler dynamically should
--- 601,606 ----
*************** package body System.Interrupts is
*** 615,631 ****
  
        pragma Assert (Handler_Addr /= System.Null_Address);
  
!       New_Node_Ptr := new Registered_Handler;
!       New_Node_Ptr.H := Handler_Addr;
! 
!       if Registered_Handler_Head = null then
!          Registered_Handler_Head := New_Node_Ptr;
!          Registered_Handler_Tail := New_Node_Ptr;
! 
!       else
!          Registered_Handler_Tail.Next := New_Node_Ptr;
!          Registered_Handler_Tail := New_Node_Ptr;
!       end if;
     end Register_Interrupt_Handler;
  
     -----------------------
--- 614,621 ----
  
        pragma Assert (Handler_Addr /= System.Null_Address);
  
!       Registered_Handlers :=
!        new Registered_Handler'(H => Handler_Addr, Next => Registered_Handlers);
     end Register_Interrupt_Handler;
  
     -----------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-interr.ads gcc-14.1.0/gcc/ada/libgnarl/s-interr.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-interr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-interr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-interr__dummy.adb gcc-14.1.0/gcc/ada/libgnarl/s-interr__dummy.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-interr__dummy.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-interr__dummy.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-interr__hwint.adb gcc-14.1.0/gcc/ada/libgnarl/s-interr__hwint.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-interr__hwint.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-interr__hwint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Interrupts is
*** 141,160 ****
     pragma Volatile_Components (User_Entry);
     --  Holds the task and entry index (if any) for each interrupt
  
!    --  Type and Head, Tail of the list containing Registered Interrupt
!    --  Handlers. These definitions are used to register the handlers
!    --  specified by the pragma Interrupt_Handler.
  
     type Registered_Handler;
     type R_Link is access all Registered_Handler;
  
     type Registered_Handler is record
!       H    : System.Address := System.Null_Address;
!       Next : R_Link := null;
     end record;
  
!    Registered_Handler_Head : R_Link := null;
!    Registered_Handler_Tail : R_Link := null;
  
     Server_ID : array (Interrupt_ID) of System.Tasking.Task_Id :=
                   (others => System.Tasking.Null_Task);
--- 141,163 ----
     pragma Volatile_Components (User_Entry);
     --  Holds the task and entry index (if any) for each interrupt
  
!    --  Type and the list containing Registered Interrupt Handlers. These
!    --  definitions are used to register the handlers specified by the pragma
!    --  Interrupt_Handler.
! 
!    --------------------------
!    -- Handler Registration --
!    --------------------------
  
     type Registered_Handler;
     type R_Link is access all Registered_Handler;
  
     type Registered_Handler is record
!       H    : System.Address;
!       Next : R_Link;
     end record;
  
!    Registered_Handlers : R_Link := null;
  
     Server_ID : array (Interrupt_ID) of System.Tasking.Task_Id :=
                   (others => System.Tasking.Null_Task);
*************** package body System.Interrupts is
*** 543,548 ****
--- 546,552 ----
     -------------------
  
     function Is_Registered (Handler : Parameterless_Handler) return Boolean is
+       Ptr : R_Link := Registered_Handlers;
  
        type Acc_Proc is access procedure;
  
*************** package body System.Interrupts is
*** 554,560 ****
        function To_Fat_Ptr is new Ada.Unchecked_Conversion
          (Parameterless_Handler, Fat_Ptr);
  
-       Ptr : R_Link;
        Fat : Fat_Ptr;
  
     begin
--- 558,563 ----
*************** package body System.Interrupts is
*** 564,570 ****
  
        Fat := To_Fat_Ptr (Handler);
  
-       Ptr := Registered_Handler_Head;
        while Ptr /= null loop
           if Ptr.H = Fat.Handler_Addr.all'Address then
              return True;
--- 567,572 ----
*************** package body System.Interrupts is
*** 635,642 ****
     --------------------------------
  
     procedure Register_Interrupt_Handler (Handler_Addr : System.Address) is
-       New_Node_Ptr : R_Link;
- 
     begin
        --  This routine registers a handler as usable for dynamic interrupt
        --  handler association. Routines attaching and detaching handlers
--- 637,642 ----
*************** package body System.Interrupts is
*** 650,665 ****
  
        pragma Assert (Handler_Addr /= System.Null_Address);
  
!       New_Node_Ptr := new Registered_Handler;
!       New_Node_Ptr.H := Handler_Addr;
! 
!       if Registered_Handler_Head = null then
!          Registered_Handler_Head := New_Node_Ptr;
!          Registered_Handler_Tail := New_Node_Ptr;
!       else
!          Registered_Handler_Tail.Next := New_Node_Ptr;
!          Registered_Handler_Tail := New_Node_Ptr;
!       end if;
     end Register_Interrupt_Handler;
  
     -----------------------
--- 650,657 ----
  
        pragma Assert (Handler_Addr /= System.Null_Address);
  
!       Registered_Handlers :=
!        new Registered_Handler'(H => Handler_Addr, Next => Registered_Handlers);
     end Register_Interrupt_Handler;
  
     -----------------------
*************** package body System.Interrupts is
*** 882,888 ****
                To_System (Interrupt_Access_Hold.all'Identity);
           end if;
  
!          if (New_Handler = null) and then Old_Handler /= null then
  
              --  Restore default handler
  
--- 874,880 ----
                To_System (Interrupt_Access_Hold.all'Identity);
           end if;
  
!          if New_Handler = null and then Old_Handler /= null then
  
              --  Restore default handler
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-interr__sigaction.adb gcc-14.1.0/gcc/ada/libgnarl/s-interr__sigaction.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-interr__sigaction.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-interr__sigaction.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Interrupts is
*** 91,99 ****
     pragma Convention (C, Signal_Handler);
     --  This procedure is used to handle all the signals
  
!    --  Type and Head, Tail of the list containing Registered Interrupt
!    --  Handlers. These definitions are used to register the handlers
!    --  specified by the pragma Interrupt_Handler.
  
     --------------------------
     -- Handler Registration --
--- 91,99 ----
     pragma Convention (C, Signal_Handler);
     --  This procedure is used to handle all the signals
  
!    --  Type and the list containing Registered Interrupt Handlers. These
!    --  definitions are used to register the handlers specified by the pragma
!    --  Interrupt_Handler.
  
     --------------------------
     -- Handler Registration --
*************** package body System.Interrupts is
*** 103,110 ****
     type R_Link is access all Registered_Handler;
  
     type Registered_Handler is record
!       H    : System.Address := System.Null_Address;
!       Next : R_Link := null;
     end record;
  
     Registered_Handlers : R_Link := null;
--- 103,110 ----
     type R_Link is access all Registered_Handler;
  
     type Registered_Handler is record
!       H    : System.Address;
!       Next : R_Link;
     end record;
  
     Registered_Handlers : R_Link := null;
*************** package body System.Interrupts is
*** 471,476 ****
--- 471,488 ----
  
     procedure Register_Interrupt_Handler (Handler_Addr : System.Address) is
     begin
+       --  This routine registers a handler as usable for dynamic interrupt
+       --  handler association. Routines attaching and detaching handlers
+       --  dynamically should determine whether the handler is registered.
+       --  Program_Error should be raised if it is not registered.
+ 
+       --  Pragma Interrupt_Handler can only appear in a library level PO
+       --  definition and instantiation. Therefore, we do not need to implement
+       --  an unregister operation. Nor do we need to protect the queue
+       --  structure with a lock.
+ 
+       pragma Assert (Handler_Addr /= System.Null_Address);
+ 
        Registered_Handlers :=
         new Registered_Handler'(H => Handler_Addr, Next => Registered_Handlers);
     end Register_Interrupt_Handler;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-interr__vxworks.adb gcc-14.1.0/gcc/ada/libgnarl/s-interr__vxworks.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-interr__vxworks.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-interr__vxworks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Interrupts is
*** 164,183 ****
     pragma Volatile_Components (User_Entry);
     --  Holds the task and entry index (if any) for each interrupt / signal
  
!    --  Type and Head, Tail of the list containing Registered Interrupt
!    --  Handlers. These definitions are used to register the handlers
!    --  specified by the pragma Interrupt_Handler.
  
     type Registered_Handler;
     type R_Link is access all Registered_Handler;
  
     type Registered_Handler is record
!       H    : System.Address := System.Null_Address;
!       Next : R_Link := null;
     end record;
  
!    Registered_Handler_Head : R_Link := null;
!    Registered_Handler_Tail : R_Link := null;
  
     Server_ID : array (Interrupt_ID) of System.Tasking.Task_Id :=
                   (others => System.Tasking.Null_Task);
--- 164,186 ----
     pragma Volatile_Components (User_Entry);
     --  Holds the task and entry index (if any) for each interrupt / signal
  
!    --  Type and the list containing Registered Interrupt Handlers. These
!    --  definitions are used to register the handlers specified by the pragma
!    --  Interrupt_Handler.
! 
!    --------------------------
!    -- Handler Registration --
!    --------------------------
  
     type Registered_Handler;
     type R_Link is access all Registered_Handler;
  
     type Registered_Handler is record
!       H    : System.Address;
!       Next : R_Link;
     end record;
  
!    Registered_Handlers : R_Link := null;
  
     Server_ID : array (Interrupt_ID) of System.Tasking.Task_Id :=
                   (others => System.Tasking.Null_Task);
*************** package body System.Interrupts is
*** 583,588 ****
--- 586,592 ----
     -------------------
  
     function Is_Registered (Handler : Parameterless_Handler) return Boolean is
+       Ptr : R_Link := Registered_Handlers;
  
        type Acc_Proc is access procedure;
  
*************** package body System.Interrupts is
*** 594,600 ****
        function To_Fat_Ptr is new Ada.Unchecked_Conversion
          (Parameterless_Handler, Fat_Ptr);
  
-       Ptr : R_Link;
        Fat : Fat_Ptr;
  
     begin
--- 598,603 ----
*************** package body System.Interrupts is
*** 604,610 ****
  
        Fat := To_Fat_Ptr (Handler);
  
-       Ptr := Registered_Handler_Head;
        while Ptr /= null loop
           if Ptr.H = Fat.Handler_Addr.all'Address then
              return True;
--- 607,612 ----
*************** package body System.Interrupts is
*** 675,682 ****
     --------------------------------
  
     procedure Register_Interrupt_Handler (Handler_Addr : System.Address) is
-       New_Node_Ptr : R_Link;
- 
     begin
        --  This routine registers a handler as usable for dynamic interrupt
        --  handler association. Routines attaching and detaching handlers
--- 677,682 ----
*************** package body System.Interrupts is
*** 690,705 ****
  
        pragma Assert (Handler_Addr /= System.Null_Address);
  
!       New_Node_Ptr := new Registered_Handler;
!       New_Node_Ptr.H := Handler_Addr;
! 
!       if Registered_Handler_Head = null then
!          Registered_Handler_Head := New_Node_Ptr;
!          Registered_Handler_Tail := New_Node_Ptr;
!       else
!          Registered_Handler_Tail.Next := New_Node_Ptr;
!          Registered_Handler_Tail := New_Node_Ptr;
!       end if;
     end Register_Interrupt_Handler;
  
     -----------------------
--- 690,697 ----
  
        pragma Assert (Handler_Addr /= System.Null_Address);
  
!       Registered_Handlers :=
!        new Registered_Handler'(H => Handler_Addr, Next => Registered_Handlers);
     end Register_Interrupt_Handler;
  
     -----------------------
*************** package body System.Interrupts is
*** 922,928 ****
                To_System (Interrupt_Access_Hold.all'Identity);
           end if;
  
!          if (New_Handler = null) and then Old_Handler /= null then
  
              --  Restore default handler
  
--- 914,920 ----
                To_System (Interrupt_Access_Hold.all'Identity);
           end if;
  
!          if New_Handler = null and then Old_Handler /= null then
  
              --  Restore default handler
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman.ads gcc-14.1.0/gcc/ada/libgnarl/s-intman.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__android.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__android.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__android.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__android.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__dummy.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__dummy.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__dummy.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__dummy.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__lynxos.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__lynxos.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__lynxos.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__lynxos.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__mingw.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__mingw.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__posix.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__posix.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__posix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__posix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__qnx.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__qnx.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__qnx.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__qnx.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__rtems.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__rtems.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__rtems.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__rtems.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__rtems.ads gcc-14.1.0/gcc/ada/libgnarl/s-intman__rtems.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__rtems.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__rtems.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__solaris.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__solaris.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__solaris.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__solaris.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__susv3.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__susv3.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__susv3.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__susv3.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__vxworks.adb gcc-14.1.0/gcc/ada/libgnarl/s-intman__vxworks.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__vxworks.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__vxworks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-intman__vxworks.ads gcc-14.1.0/gcc/ada/libgnarl/s-intman__vxworks.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-intman__vxworks.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-intman__vxworks.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux__alpha.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux__alpha.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux__alpha.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux__alpha.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux__android.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux__android.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux__android.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux__android.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux__hppa.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux__hppa.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux__hppa.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux__hppa.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux__loongarch.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux__loongarch.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux__loongarch.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux__loongarch.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,134 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS               --
+ --                                                                          --
+ --                          S Y S T E M .  L I N U X                        --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
+ --                                                                          --
+ -- GNARL is free software; you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the LoongArch version of this package
+ 
+ --  This package encapsulates cpu specific differences between implementations
+ --  of GNU/Linux, in order to share s-osinte-linux.ads.
+ 
+ --  PLEASE DO NOT add any with-clauses to this package or remove the pragma
+ --  Preelaborate. This package is designed to be a bottom-level (leaf) package
+ 
+ with Interfaces.C;
+ with System.Parameters;
+ 
+ package System.Linux is
+    pragma Preelaborate;
+ 
+    ----------
+    -- Time --
+    ----------
+ 
+    subtype int         is Interfaces.C.int;
+    subtype long        is Interfaces.C.long;
+    subtype suseconds_t is Interfaces.C.long;
+    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
+      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
+    subtype clockid_t   is Interfaces.C.int;
+ 
+    type timespec is record
+       tv_sec  : time_t;
+       tv_nsec : long;
+    end record;
+    pragma Convention (C, timespec);
+ 
+    type timeval is record
+       tv_sec  : time_t;
+       tv_usec : suseconds_t;
+    end record;
+    pragma Convention (C, timeval);
+ 
+    -----------
+    -- Errno --
+    -----------
+ 
+    EAGAIN    : constant := 11;
+    EINTR     : constant := 4;
+    EINVAL    : constant := 22;
+    ENOMEM    : constant := 12;
+    EPERM     : constant := 1;
+    ETIMEDOUT : constant := 110;
+ 
+    -------------
+    -- Signals --
+    -------------
+ 
+    SIGHUP     : constant := 1; --  hangup
+    SIGINT     : constant := 2; --  interrupt (rubout)
+    SIGQUIT    : constant := 3; --  quit (ASCD FS)
+    SIGILL     : constant := 4; --  illegal instruction (not reset)
+    SIGTRAP    : constant := 5; --  trace trap (not reset)
+    SIGIOT     : constant := 6; --  IOT instruction
+    SIGABRT    : constant := 6; --  used by abort, replace SIGIOT in the  future
+    SIGBUS     : constant := 7; --  bus error
+    SIGFPE     : constant := 8; --  floating point exception
+    SIGKILL    : constant := 9; --  kill (cannot be caught or ignored)
+    SIGUSR1    : constant := 10; --  user defined signal 1
+    SIGSEGV    : constant := 11; --  segmentation violation
+    SIGUSR2    : constant := 12; --  user defined signal 2
+    SIGPIPE    : constant := 13; --  write on a pipe with no one to read it
+    SIGALRM    : constant := 14; --  alarm clock
+    SIGTERM    : constant := 15; --  software termination signal from kill
+    SIGSTKFLT  : constant := 16; --  coprocessor stack fault (Linux)
+    SIGCLD     : constant := 17; --  alias for SIGCHLD
+    SIGCHLD    : constant := 17; --  child status change
+    SIGCONT    : constant := 18; --  stopped process has been continued
+    SIGSTOP    : constant := 19; --  stop (cannot be caught or ignored)
+    SIGTSTP    : constant := 20; --  user stop requested from tty
+    SIGTTIN    : constant := 21; --  background tty read attempted
+    SIGTTOU    : constant := 22; --  background tty write attempted
+    SIGURG     : constant := 23; --  urgent condition on IO channel
+    SIGXCPU    : constant := 24; --  CPU time limit exceeded
+    SIGXFSZ    : constant := 25; --  filesize limit exceeded
+    SIGVTALRM  : constant := 26; --  virtual timer expired
+    SIGPROF    : constant := 27; --  profiling timer expired
+    SIGWINCH   : constant := 28; --  window size change
+    SIGPOLL    : constant := 29; --  pollable event occurred
+    SIGIO      : constant := 29; --  I/O now possible (4.2 BSD)
+    SIGPWR     : constant := 30; --  power-fail restart
+    SIGSYS     : constant := 31; --  bad system call
+    SIG32      : constant := 32; --  glibc internal signal
+    SIG33      : constant := 33; --  glibc internal signal
+    SIG34      : constant := 34; --  glibc internal signal
+ 
+    --  These don't exist for Linux/LoongArch.  The constants are present
+    --  so that we can continue to use a-intnam-linux.ads.
+    SIGLOST    : constant := 0; --  File lock lost
+    SIGUNUSED  : constant := 0; --  unused signal (GNU/Linux)
+    SIGEMT     : constant := 0; --  EMT
+ 
+    --  struct_sigaction offsets
+ 
+    sa_handler_pos : constant := 0;
+    sa_mask_pos    : constant := Standard'Address_Size / 8;
+    sa_flags_pos   : constant := 128 + sa_mask_pos;
+ 
+    SA_SIGINFO  : constant := 16#04#;
+    SA_ONSTACK  : constant := 16#08000000#;
+ 
+ end System.Linux;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux__mips.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux__mips.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux__mips.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux__mips.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux__riscv.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux__riscv.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux__riscv.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux__riscv.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux__sparc.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux__sparc.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux__sparc.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux__sparc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-linux__x32.ads gcc-14.1.0/gcc/ada/libgnarl/s-linux__x32.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-linux__x32.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-linux__x32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2013-2023, Free Software Foundation, Inc.         --
  --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-mudido.adb gcc-14.1.0/gcc/ada/libgnarl/s-mudido.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-mudido.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-mudido.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-mudido.ads gcc-14.1.0/gcc/ada/libgnarl/s-mudido.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-mudido.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-mudido.ads	Tue May  7 06:51:37 2024
*************** with Ada.Task_Identification;
*** 20,29 ****
  private with System.Tasking;
  
  package System.Multiprocessors.Dispatching_Domains is
-    --  pragma Preelaborate (Dispatching_Domains);
-    --  ??? According to AI 167 this unit should be preelaborate, but it cannot
-    --  be preelaborate because it depends on Ada.Real_Time which is not
-    --  preelaborate.
  
     Dispatching_Domain_Error : exception;
  
--- 20,25 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-mudido__affinity.adb gcc-14.1.0/gcc/ada/libgnarl/s-mudido__affinity.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-mudido__affinity.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-mudido__affinity.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__aix.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__aix.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__aix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__aix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__aix.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__aix.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__aix.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__aix.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__android.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__android.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__android.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__android.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__android.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__android.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__android.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__android.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private
*** 622,628 ****
  
     type pthread_mutexattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_MUTEXATTR_SIZE);
!    end  record;
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
--- 622,628 ----
  
     type pthread_mutexattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_MUTEXATTR_SIZE);
!    end record;
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__darwin.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__darwin.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__darwin.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__darwin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__darwin.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__darwin.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__darwin.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__darwin.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__dummy.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__dummy.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__dummy.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__dummy.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__freebsd.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__freebsd.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__freebsd.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__freebsd.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__freebsd.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__freebsd.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__freebsd.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__freebsd.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__gnu.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__gnu.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__gnu.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__gnu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2015-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2015-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__gnu.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__gnu.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__gnu.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__gnu.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__hpux-dce.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__hpux-dce.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__hpux-dce.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__hpux-dce.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__hpux-dce.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__hpux-dce.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__hpux-dce.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__hpux-dce.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__hpux.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__hpux.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__hpux.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__hpux.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-2017, Florida State University          --
! --            Copyright (C) 1995-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-2017, Florida State University          --
! --            Copyright (C) 1995-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-1994, Florida State University          --
! --            Copyright (C) 1995-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-1994, Florida State University          --
! --            Copyright (C) 1995-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__linux.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__linux.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__linux.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private
*** 652,658 ****
  
     type pthread_mutexattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_MUTEXATTR_SIZE);
!    end  record;
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
--- 652,658 ----
  
     type pthread_mutexattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_MUTEXATTR_SIZE);
!    end record;
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__mingw.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__mingw.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__mingw.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__mingw.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__posix.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__posix.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__posix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__posix.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__qnx.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__qnx.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__qnx.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__qnx.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.OS_Interface is
*** 87,93 ****
       (Prio : System.Any_Priority) return Interfaces.C.int
     is
     begin
!       return Interfaces.C.int (Prio) + 1;
     end To_Target_Priority;
  
     -----------------
--- 87,93 ----
       (Prio : System.Any_Priority) return Interfaces.C.int
     is
     begin
!       return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
     -----------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__qnx.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__qnx.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__qnx.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__qnx.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.OS_Interface is
*** 562,569 ****
  
  private
  
!    type sigset_t is array (1 .. 2) of Interfaces.Unsigned_32;
     pragma Convention (C, sigset_t);
  
     type pid_t is new int;
  
--- 562,571 ----
  
  private
  
!    type sigset_t is
!      array (0 .. OS_Constants.SIZEOF_sigset - 1) of unsigned_char;
     pragma Convention (C, sigset_t);
+    for sigset_t'Alignment use Interfaces.C.unsigned_long'Alignment;
  
     type pid_t is new int;
  
*************** private
*** 595,601 ****
  
     type pthread_mutexattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_MUTEXATTR_SIZE);
!    end  record;
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
--- 597,603 ----
  
     type pthread_mutexattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_MUTEXATTR_SIZE);
!    end record;
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__rtems.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__rtems.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__rtems.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__rtems.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__rtems.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__rtems.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__rtems.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__rtems.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private
*** 617,623 ****
  
     type pthread_mutexattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_MUTEXATTR_SIZE);
!    end  record;
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
--- 617,623 ----
  
     type pthread_mutexattr_t is record
        Data : char_array (1 .. OS_Constants.PTHREAD_MUTEXATTR_SIZE);
!    end record;
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__solaris.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__solaris.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__solaris.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__solaris.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__solaris.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__solaris.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__solaris.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__solaris.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__vxworks.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__vxworks.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__vxworks.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__vxworks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --         Copyright (C) 1997-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --         Copyright (C) 1997-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__vxworks.ads gcc-14.1.0/gcc/ada/libgnarl/s-osinte__vxworks.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__vxworks.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__vxworks.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                   S p e c                                --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-osinte__x32.adb gcc-14.1.0/gcc/ada/libgnarl/s-osinte__x32.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-osinte__x32.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-osinte__x32.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-proinf.adb gcc-14.1.0/gcc/ada/libgnarl/s-proinf.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-proinf.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-proinf.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-proinf.ads gcc-14.1.0/gcc/ada/libgnarl/s-proinf.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-proinf.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-proinf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1996-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1996-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-putaim.adb gcc-14.1.0/gcc/ada/libgnarl/s-putaim.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-putaim.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-putaim.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-putaim.ads gcc-14.1.0/gcc/ada/libgnarl/s-putaim.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-putaim.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-putaim.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-qnx.ads gcc-14.1.0/gcc/ada/libgnarl/s-qnx.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-qnx.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-qnx.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2017-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2017-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-solita.adb gcc-14.1.0/gcc/ada/libgnarl/s-solita.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-solita.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-solita.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-solita.ads gcc-14.1.0/gcc/ada/libgnarl/s-solita.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-solita.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-solita.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-stusta.adb gcc-14.1.0/gcc/ada/libgnarl/s-stusta.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-stusta.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-stusta.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-stusta.ads gcc-14.1.0/gcc/ada/libgnarl/s-stusta.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-stusta.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-stusta.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taasde.adb gcc-14.1.0/gcc/ada/libgnarl/s-taasde.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taasde.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taasde.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taasde.ads gcc-14.1.0/gcc/ada/libgnarl/s-taasde.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taasde.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taasde.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tadeca.adb gcc-14.1.0/gcc/ada/libgnarl/s-tadeca.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tadeca.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tadeca.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tadeca.ads gcc-14.1.0/gcc/ada/libgnarl/s-tadeca.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tadeca.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tadeca.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tadert.adb gcc-14.1.0/gcc/ada/libgnarl/s-tadert.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tadert.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tadert.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tadert.ads gcc-14.1.0/gcc/ada/libgnarl/s-tadert.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tadert.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tadert.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taenca.adb gcc-14.1.0/gcc/ada/libgnarl/s-taenca.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taenca.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taenca.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taenca.ads gcc-14.1.0/gcc/ada/libgnarl/s-taenca.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taenca.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taenca.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprob.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprob.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprob.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprob.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprob.ads gcc-14.1.0/gcc/ada/libgnarl/s-taprob.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprob.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprob.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop.ads gcc-14.1.0/gcc/ada/libgnarl/s-taprop.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__dummy.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__dummy.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__dummy.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__dummy.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__hpux-dce.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__hpux-dce.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__hpux-dce.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__hpux-dce.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__linux.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__linux.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__linux.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Task_Primitives.Oper
*** 966,981 ****
  
        --  Handle dispatching domains
  
!       --  To avoid changing CPU affinities when not needed, we set the
!       --  affinity only when assigning to a domain other than the default
!       --  one, or when the default one has been modified.
! 
!       elsif T.Common.Domain /= null and then
!         (T.Common.Domain /= ST.System_Domain
!           or else T.Common.Domain.all /=
!                     [Multiprocessors.CPU'First ..
!                      Multiprocessors.Number_Of_CPUs => True])
!       then
           declare
              CPUs    : constant size_t :=
                          C.size_t (Multiprocessors.Number_Of_CPUs);
--- 966,972 ----
  
        --  Handle dispatching domains
  
!       else
           declare
              CPUs    : constant size_t :=
                          C.size_t (Multiprocessors.Number_Of_CPUs);
*************** package body System.Task_Primitives.Oper
*** 1497,1513 ****
  
              --  Handle dispatching domains
  
!             elsif T.Common.Domain /= null and then
!               (T.Common.Domain /= ST.System_Domain
!                 or else T.Common.Domain.all /=
!                           [Multiprocessors.CPU'First ..
!                            Multiprocessors.Number_Of_CPUs => True])
!             then
                 --  Set the affinity to all the processors belonging to the
!                --  dispatching domain. To avoid changing CPU affinities when
!                --  not needed, we set the affinity only when assigning to a
!                --  domain other than the default one, or when the default one
!                --  has been modified.
  
                 CPU_Set := CPU_ALLOC (CPUs);
                 System.OS_Interface.CPU_ZERO (Size, CPU_Set);
--- 1488,1496 ----
  
              --  Handle dispatching domains
  
!             else
                 --  Set the affinity to all the processors belonging to the
!                --  dispatching domain.
  
                 CPU_Set := CPU_ALLOC (CPUs);
                 System.OS_Interface.CPU_ZERO (Size, CPU_Set);
*************** package body System.Task_Primitives.Oper
*** 1519,1536 ****
                 end loop;
              end if;
  
!             --  We set the new affinity if needed. Otherwise, the new task
!             --  will inherit its creator's CPU affinity mask (according to
!             --  the documentation of pthread_setaffinity_np), which is
!             --  consistent with Ada's required semantics.
! 
!             if CPU_Set /= null then
!                Result :=
!                  pthread_setaffinity_np (T.Common.LL.Thread, Size, CPU_Set);
!                pragma Assert (Result = 0);
  
!                CPU_FREE (CPU_Set);
!             end if;
           end;
        end if;
     end Set_Task_Affinity;
--- 1502,1512 ----
                 end loop;
              end if;
  
!             Result :=
!               pthread_setaffinity_np (T.Common.LL.Thread, Size, CPU_Set);
!             pragma Assert (Result = 0);
  
!             CPU_FREE (CPU_Set);
           end;
        end if;
     end Set_Task_Affinity;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__mingw.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__mingw.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__posix.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__posix.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__posix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__posix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__qnx.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__qnx.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__qnx.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__qnx.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System.Interrupt_Management;
*** 49,54 ****
--- 49,55 ----
  with System.OS_Constants;
  with System.OS_Primitives;
  with System.Task_Info;
+ with System.Multiprocessors;
  
  with System.Soft_Links;
  --  We use System.Soft_Links instead of System.Tasking.Initialization
*************** package body System.Task_Primitives.Oper
*** 1317,1328 ****
     -----------------------
  
     procedure Set_Task_Affinity (T : ST.Task_Id) is
!       pragma Unreferenced (T);
  
!    begin
!       --  Setting task affinity is not supported by the underlying system
  
!       null;
     end Set_Task_Affinity;
  
  end System.Task_Primitives.Operations;
--- 1318,1363 ----
     -----------------------
  
     procedure Set_Task_Affinity (T : ST.Task_Id) is
!       use type Multiprocessors.CPU_Range;
  
!       function Thread_Ctl_Ext
!         (Pid     : pid_t;
!          Tid     : Thread_Id;
!          Command : Interfaces.C.unsigned;
!          Runmask : Interfaces.C.size_t) return Interfaces.C.int
!       with
!         Import, Convention => C, External_Name => "ThreadCtlExt";
!       --  Thread_Ctl_Ext is a generic thread control function in QNX.
!       --  It is defined locally because in the C API its second
!       --  argument is a void pointer that takes different actual
!       --  pointer types or values depending on the command. This
!       --  particular instance of this function only accepts the
!       --  NTO_TCTL_RUNMASK command. The void * pointer in the C
!       --  interface is interpreted as bitmask for this command.
!       --  In the binding size_t is used as an integer type that
!       --  always has the same size as a pointer.
  
!       NTO_TCTL_RUNMASK : constant := 4;
!       --  Command for Thread_Ctl. Using this command in Thread_Ctl
!       --  allows the caller to pass a bitmask that describes on
!       --  which CPU the current thread is allowed to run on.
! 
!       Pid     : constant pid_t := getpid;
!       Result  : Interfaces.C.int;
!       Runmask : Interfaces.C.size_t;
!       --  Each set bit in runmask represents a processor that the thread
!       --  can run on. If all bits are set to one the thread can run on any CPU.
!    begin
!       if T.Common.Base_CPU = Multiprocessors.Not_A_Specific_CPU then
!          Runmask := Interfaces.C.size_t'Last;
!       else
!          Runmask :=
!            Interfaces.C.size_t
!              (2 ** Natural (T.Common.Base_CPU - Multiprocessors.CPU'First));
!       end if;
!       Result :=
!          Thread_Ctl_Ext (Pid, Get_Thread_Id (T), NTO_TCTL_RUNMASK, Runmask);
!       pragma Assert (Result = 0);
     end Set_Task_Affinity;
  
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__rtems.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__rtems.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__rtems.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__rtems.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__solaris.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__solaris.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__solaris.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__solaris.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taprop__vxworks.adb gcc-14.1.0/gcc/ada/libgnarl/s-taprop__vxworks.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taprop__vxworks.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taprop__vxworks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tarest.adb gcc-14.1.0/gcc/ada/libgnarl/s-tarest.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tarest.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tarest.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1999-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1999-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tarest.ads gcc-14.1.0/gcc/ada/libgnarl/s-tarest.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tarest.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tarest.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasdeb.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasdeb.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasdeb.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasdeb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasdeb.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasdeb.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasdeb.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasdeb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasinf.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                           (Compiler Interface)                           --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                           (Compiler Interface)                           --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasinf.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__linux.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__linux.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__linux.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__linux.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__linux.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__linux.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__linux.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__linux.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2007-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2007-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__mingw.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__mingw.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__mingw.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__mingw.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__mingw.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__mingw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2007-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__solaris.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__solaris.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__solaris.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__solaris.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__solaris.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__solaris.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__solaris.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__solaris.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasini.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasini.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasini.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasini.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Tasking.Initializati
*** 758,764 ****
     -------------------------
  
     procedure Finalize_Attributes (T : Task_Id) is
!       Attr : Atomic_Address;
  
     begin
        for J in T.Attributes'Range loop
--- 758,764 ----
     -------------------------
  
     procedure Finalize_Attributes (T : Task_Id) is
!       Attr : System.Address;
  
     begin
        for J in T.Attributes'Range loop
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasini.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasini.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasini.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasini.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taskin.adb gcc-14.1.0/gcc/ada/libgnarl/s-taskin.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-taskin.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taskin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taskin.ads gcc-14.1.0/gcc/ada/libgnarl/s-taskin.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taskin.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taskin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Tasking is
*** 958,968 ****
     type Entry_Call_Array is array (ATC_Level_Index) of
       aliased Entry_Call_Record;
  
-    type Atomic_Address is mod Memory_Size;
-    pragma Atomic (Atomic_Address);
     type Attribute_Array is
!      array (1 .. Parameters.Max_Attribute_Count) of Atomic_Address;
!    --  Array of task attributes. The value (Atomic_Address) will either be
     --  converted to a task attribute if it fits, or to a pointer to a record
     --  by Ada.Task_Attributes.
  
--- 958,967 ----
     type Entry_Call_Array is array (ATC_Level_Index) of
       aliased Entry_Call_Record;
  
     type Attribute_Array is
!      array (1 .. Parameters.Max_Attribute_Count) of System.Address;
!    pragma Atomic_Components (Attribute_Array);
!    --  Array of task attributes. The value (System.Address) will either be
     --  converted to a task attribute if it fits, or to a pointer to a record
     --  by Ada.Task_Attributes.
  
*************** package System.Tasking is
*** 1157,1163 ****
        --  non-terminated task so that the associated storage is automatically
        --  reclaimed when the task terminates.
  
!       Attributes : Attribute_Array := [others => 0];
        --  Task attributes
  
        --  IMPORTANT Note: the Entry_Queues field is last for efficiency of
--- 1156,1162 ----
        --  non-terminated task so that the associated storage is automatically
        --  reclaimed when the task terminates.
  
!       Attributes : Attribute_Array := [others => Null_Address];
        --  Task attributes
  
        --  IMPORTANT Note: the Entry_Queues field is last for efficiency of
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taspri__dummy.ads gcc-14.1.0/gcc/ada/libgnarl/s-taspri__dummy.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taspri__dummy.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taspri__dummy.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taspri__hpux-dce.ads gcc-14.1.0/gcc/ada/libgnarl/s-taspri__hpux-dce.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taspri__hpux-dce.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taspri__hpux-dce.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taspri__lynxos.ads gcc-14.1.0/gcc/ada/libgnarl/s-taspri__lynxos.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taspri__lynxos.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taspri__lynxos.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taspri__mingw.ads gcc-14.1.0/gcc/ada/libgnarl/s-taspri__mingw.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taspri__mingw.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taspri__mingw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads gcc-14.1.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taspri__posix.ads gcc-14.1.0/gcc/ada/libgnarl/s-taspri__posix.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taspri__posix.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taspri__posix.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taspri__solaris.ads gcc-14.1.0/gcc/ada/libgnarl/s-taspri__solaris.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taspri__solaris.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taspri__solaris.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-taspri__vxworks.ads gcc-14.1.0/gcc/ada/libgnarl/s-taspri__vxworks.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-taspri__vxworks.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-taspri__vxworks.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasque.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasque.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasque.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasque.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasque.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasque.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasque.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasque.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasren.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasren.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasren.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasren.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasren.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasren.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasren.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasren.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasres.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasres.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasres.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasres.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1998-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1998-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tassta.adb gcc-14.1.0/gcc/ada/libgnarl/s-tassta.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tassta.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tassta.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Tasking.Stages is
*** 1615,1622 ****
  
              --  Usually, C.Common.Activator = Self_ID implies C.Master_Of_Task
              --  = CM. The only case where C is pending activation by this
!             --  task, but the master of C is not CM is in Ada 2005, when C is
!             --  part of a return object of a build-in-place function.
  
              pragma Assert (C.Common.State = Unactivated);
  
--- 1615,1622 ----
  
              --  Usually, C.Common.Activator = Self_ID implies C.Master_Of_Task
              --  = CM. The only case where C is pending activation by this
!             --  task, but the master of C is not CM is when C is part of a
!             --  return object of a build-in-place function.
  
              pragma Assert (C.Common.State = Unactivated);
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tassta.ads gcc-14.1.0/gcc/ada/libgnarl/s-tassta.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tassta.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tassta.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasuti.adb gcc-14.1.0/gcc/ada/libgnarl/s-tasuti.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasuti.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasuti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tasuti.ads gcc-14.1.0/gcc/ada/libgnarl/s-tasuti.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tasuti.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tasuti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tataat.adb gcc-14.1.0/gcc/ada/libgnarl/s-tataat.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tataat.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tataat.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tataat.ads gcc-14.1.0/gcc/ada/libgnarl/s-tataat.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tataat.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tataat.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 35,41 ****
  
  package System.Tasking.Task_Attributes is
  
!    type Deallocator is access procedure (Ptr : Atomic_Address);
     pragma Favor_Top_Level (Deallocator);
  
     type Attribute_Record is record
--- 35,41 ----
  
  package System.Tasking.Task_Attributes is
  
!    type Deallocator is access procedure (Ptr : System.Address);
     pragma Favor_Top_Level (Deallocator);
  
     type Attribute_Record is record
*************** package System.Tasking.Task_Attributes i
*** 48,54 ****
     pragma No_Strict_Aliasing (Attribute_Access);
  
     function To_Attribute is new
!      Ada.Unchecked_Conversion (Atomic_Address, Attribute_Access);
  
     function Next_Index (Require_Finalization : Boolean) return Integer;
     --  Return the next attribute index available. Require_Finalization is True
--- 48,54 ----
     pragma No_Strict_Aliasing (Attribute_Access);
  
     function To_Attribute is new
!      Ada.Unchecked_Conversion (System.Address, Attribute_Access);
  
     function Next_Index (Require_Finalization : Boolean) return Integer;
     --  Return the next attribute index available. Require_Finalization is True
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpinop.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpinop.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpinop.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpinop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpinop.ads gcc-14.1.0/gcc/ada/libgnarl/s-tpinop.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpinop.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpinop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpoaal.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpoaal.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpoaal.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpoaal.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --        Copyright (C) 2011-2023, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --        Copyright (C) 2011-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpoben.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpoben.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpoben.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpoben.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                               B o d y                                    --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                               B o d y                                    --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpoben.ads gcc-14.1.0/gcc/ada/libgnarl/s-tpoben.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpoben.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpoben.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpobmu.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpobmu.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpobmu.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpobmu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                     M U L T I P R O C E S S O R S                        --
  --                               B o d y                                    --
  --                                                                          --
! --                       Copyright (C) 2010-2023, AdaCore                   --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                     M U L T I P R O C E S S O R S                        --
  --                               B o d y                                    --
  --                                                                          --
! --                       Copyright (C) 2010-2024, AdaCore                   --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpobmu.ads gcc-14.1.0/gcc/ada/libgnarl/s-tpobmu.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpobmu.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpobmu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                     M U L T I P R O C E S S O R S                        --
  --                                S p e c                                   --
  --                                                                          --
! --                     Copyright (C) 2010-2023, AdaCore                     --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                     M U L T I P R O C E S S O R S                        --
  --                                S p e c                                   --
  --                                                                          --
! --                     Copyright (C) 2010-2024, AdaCore                     --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpobop.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpobop.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpobop.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpobop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpobop.ads gcc-14.1.0/gcc/ada/libgnarl/s-tpobop.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpobop.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpobop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpopmo.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpopmo.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpopmo.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpopmo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Specific is
*** 95,106 ****
        Result := pthread_getspecific (ATCB_Key);
  
        --  If the key value is Null then it is a non-Ada task
! 
!       if Result /= System.Null_Address then
!          return To_Task_Id (Result);
!       else
!          return Register_Foreign_Thread;
!       end if;
     end Self;
  
  end Specific;
--- 95,104 ----
        Result := pthread_getspecific (ATCB_Key);
  
        --  If the key value is Null then it is a non-Ada task
!       return
!          (if Result /= System.Null_Address then To_Task_Id (Result)
!           else Register_Foreign_Thread
!          );
     end Self;
  
  end Specific;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__posix.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__posix.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__posix.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__posix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__tls.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__tls.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__tls.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__tls.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tporft.adb gcc-14.1.0/gcc/ada/libgnarl/s-tporft.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tporft.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tporft.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tposen.adb gcc-14.1.0/gcc/ada/libgnarl/s-tposen.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-tposen.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tposen.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1998-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1998-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Tasking.Protected_Ob
*** 345,355 ****
  
        pragma Assert (Entry_Call.State /= Cancelled);
  
        if Entry_Call.State /= Done then
-          STPO.Write_Lock (Self_Id);
           Wait_For_Completion (Entry_Call'Access);
-          STPO.Unlock (Self_Id);
        end if;
  
        Check_Exception (Self_Id, Entry_Call'Access);
     end Protected_Single_Entry_Call;
--- 345,361 ----
  
        pragma Assert (Entry_Call.State /= Cancelled);
  
+       --  Note that we need to acquire Self_Id's lock before checking the value
+       --  of Entry_Call.State, even though the latter is specified as atomic
+       --  with a pragma. If we didn't, another task could execute the entry on
+       --  our behalf right between the check of Entry_Call.State and the call
+       --  to Wait_For_Completion, and that would cause a deadlock.
+ 
+       STPO.Write_Lock (Self_Id);
        if Entry_Call.State /= Done then
           Wait_For_Completion (Entry_Call'Access);
        end if;
+       STPO.Unlock (Self_Id);
  
        Check_Exception (Self_Id, Entry_Call'Access);
     end Protected_Single_Entry_Call;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-tposen.ads gcc-14.1.0/gcc/ada/libgnarl/s-tposen.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-tposen.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-tposen.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwext.adb gcc-14.1.0/gcc/ada/libgnarl/s-vxwext.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwext.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwext.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwext.ads gcc-14.1.0/gcc/ada/libgnarl/s-vxwext.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwext.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwext.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__kernel.adb gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__kernel.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__kernel.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__kernel.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__kernel.ads gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__kernel.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__kernel.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__kernel.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__rtp.adb gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__rtp.adb
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__rtp.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__rtp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__rtp.ads gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__rtp.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwext__rtp.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwext__rtp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads gcc-14.1.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwork__arm.ads gcc-14.1.0/gcc/ada/libgnarl/s-vxwork__arm.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwork__arm.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwork__arm.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwork__ppc.ads gcc-14.1.0/gcc/ada/libgnarl/s-vxwork__ppc.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwork__ppc.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwork__ppc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/s-vxwork__x86.ads gcc-14.1.0/gcc/ada/libgnarl/s-vxwork__x86.ads
*** gcc-13.2.0/gcc/ada/libgnarl/s-vxwork__x86.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/s-vxwork__x86.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can  redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can  redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnarl/thread.c gcc-14.1.0/gcc/ada/libgnarl/thread.c
*** gcc-13.2.0/gcc/ada/libgnarl/thread.c	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnarl/thread.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2011-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2011-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-assert.adb gcc-14.1.0/gcc/ada/libgnat/a-assert.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-assert.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-assert.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-assert.ads gcc-14.1.0/gcc/ada/libgnat/a-assert.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-assert.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-assert.ads	Tue May  7 06:51:37 2024
***************
*** 4,10 ****
  --                                                                          --
  --                       A D A . A S S E R T I O N S                        --
  --                                                                          --
! --            Copyright (C) 2015-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
--- 4,10 ----
  --                                                                          --
  --                       A D A . A S S E R T I O N S                        --
  --                                                                          --
! --            Copyright (C) 2015-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-btgbso.adb gcc-14.1.0/gcc/ada/libgnat/a-btgbso.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-btgbso.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-btgbso.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-btgbso.ads gcc-14.1.0/gcc/ada/libgnat/a-btgbso.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-btgbso.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-btgbso.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-calari.adb gcc-14.1.0/gcc/ada/libgnat/a-calari.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-calari.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-calari.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-calari.ads gcc-14.1.0/gcc/ada/libgnat/a-calari.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-calari.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-calari.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-calcon.adb gcc-14.1.0/gcc/ada/libgnat/a-calcon.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-calcon.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-calcon.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --        Copyright (C) 2008-2023, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --        Copyright (C) 2008-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-calcon.ads gcc-14.1.0/gcc/ada/libgnat/a-calcon.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-calcon.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-calcon.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-caldel.adb gcc-14.1.0/gcc/ada/libgnat/a-caldel.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-caldel.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-caldel.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-caldel.ads gcc-14.1.0/gcc/ada/libgnat/a-caldel.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-caldel.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-caldel.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-calend.adb gcc-14.1.0/gcc/ada/libgnat/a-calend.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-calend.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-calend.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-calend.ads gcc-14.1.0/gcc/ada/libgnat/a-calend.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-calend.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-calend.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** is
*** 102,117 ****
  
     function "+" (Left : Time;     Right : Duration) return Time
     with
!      Global => null;
     function "+" (Left : Duration; Right : Time)     return Time
     with
!      Global => null;
     function "-" (Left : Time;     Right : Duration) return Time
     with
!      Global => null;
     function "-" (Left : Time;     Right : Time)     return Duration
     with
!      Global => null;
     --  The first three functions will raise Time_Error if the resulting time
     --  value is less than the start of Ada time in UTC or greater than the
     --  end of Ada time in UTC. The last function will raise Time_Error if the
--- 102,117 ----
  
     function "+" (Left : Time;     Right : Duration) return Time
     with
!      SPARK_Mode => Off;
     function "+" (Left : Duration; Right : Time)     return Time
     with
!      SPARK_Mode => Off;
     function "-" (Left : Time;     Right : Duration) return Time
     with
!      SPARK_Mode => Off;
     function "-" (Left : Time;     Right : Time)     return Duration
     with
!      SPARK_Mode => Off;
     --  The first three functions will raise Time_Error if the resulting time
     --  value is less than the start of Ada time in UTC or greater than the
     --  end of Ada time in UTC. The last function will raise Time_Error if the
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-calfor.adb gcc-14.1.0/gcc/ada/libgnat/a-calfor.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-calfor.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-calfor.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Calendar.Formatting is
*** 590,599 ****
        Leap_Second : Boolean := False;
        Time_Zone   : Time_Zones.Time_Offset := 0) return Time
     is
-       Adj_Year  : Year_Number  := Year;
-       Adj_Month : Month_Number := Month;
-       Adj_Day   : Day_Number   := Day;
- 
        H  : constant Integer := 1;
        M  : constant Integer := 1;
        Se : constant Integer := 1;
--- 590,595 ----
*************** package body Ada.Calendar.Formatting is
*** 612,643 ****
           raise Constraint_Error;
        end if;
  
-       --  A Seconds value of 86_400 denotes a new day. This case requires an
-       --  adjustment to the input values.
- 
-       if Seconds = 86_400.0 then
-          if Day < Days_In_Month (Month)
-            or else (Is_Leap (Year)
-                       and then Month = 2)
-          then
-             Adj_Day := Day + 1;
-          else
-             Adj_Day := 1;
- 
-             if Month < 12 then
-                Adj_Month := Month + 1;
-             else
-                Adj_Month := 1;
-                Adj_Year  := Year + 1;
-             end if;
-          end if;
-       end if;
- 
        return
          Formatting_Operations.Time_Of
!           (Year         => Adj_Year,
!            Month        => Adj_Month,
!            Day          => Adj_Day,
             Day_Secs     => Seconds,
             Hour         => H,
             Minute       => M,
--- 608,618 ----
           raise Constraint_Error;
        end if;
  
        return
          Formatting_Operations.Time_Of
!           (Year         => Year,
!            Month        => Month,
!            Day          => Day,
             Day_Secs     => Seconds,
             Hour         => H,
             Minute       => M,
*************** package body Ada.Calendar.Formatting is
*** 802,808 ****
  
     function Value (Elapsed_Time : String) return Duration is
        D          : String (1 .. 11);
!       Hour       : Hour_Number;
        Minute     : Minute_Number;
        Second     : Second_Number;
        Sub_Second : Second_Duration := 0.0;
--- 777,783 ----
  
     function Value (Elapsed_Time : String) return Duration is
        D          : String (1 .. 11);
!       Hour       : Natural;
        Minute     : Minute_Number;
        Second     : Second_Number;
        Sub_Second : Second_Duration := 0.0;
*************** package body Ada.Calendar.Formatting is
*** 842,848 ****
  
        --  Value extraction
  
!       Hour   := Hour_Number   (Hour_Number'Value   (D (1 .. 2)));
        Minute := Minute_Number (Minute_Number'Value (D (4 .. 5)));
        Second := Second_Number (Second_Number'Value (D (7 .. 8)));
  
--- 817,823 ----
  
        --  Value extraction
  
!       Hour   := Natural       (Natural'Value       (D (1 .. 2)));
        Minute := Minute_Number (Minute_Number'Value (D (4 .. 5)));
        Second := Second_Number (Second_Number'Value (D (7 .. 8)));
  
*************** package body Ada.Calendar.Formatting is
*** 862,870 ****
           raise Constraint_Error;
        end if;
  
!       return Seconds_Of (Hour, Minute, Second, Sub_Second);
  
     exception
        when others => raise Constraint_Error;
     end Value;
  
--- 837,850 ----
           raise Constraint_Error;
        end if;
  
!       return Duration (Hour * 3600)
!         + Duration (Minute * 60)
!         + Duration (Second)
!         + Sub_Second;
  
     exception
+       --  CE is mandated, but preserve trace if CE already.
+       when Constraint_Error => raise;
        when others => raise Constraint_Error;
     end Value;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-calfor.ads gcc-14.1.0/gcc/ada/libgnat/a-calfor.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-calfor.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-calfor.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-catizo.adb gcc-14.1.0/gcc/ada/libgnat/a-catizo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-catizo.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-catizo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbdlli.adb gcc-14.1.0/gcc/ada/libgnat/a-cbdlli.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cbdlli.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbdlli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbdlli.ads gcc-14.1.0/gcc/ada/libgnat/a-cbdlli.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cbdlli.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbdlli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 276,287 ****
     type Node_Array is array (Count_Type range <>) of Node_Type;
  
     type List (Capacity : Count_Type) is tagged record
-       Nodes  : Node_Array (1 .. Capacity);
        Free   : Count_Type'Base := -1;
        First  : Count_Type := 0;
        Last   : Count_Type := 0;
        Length : Count_Type := 0;
        TC     : aliased Tamper_Counts;
     end record with Put_Image => Put_Image;
  
     procedure Put_Image
--- 276,287 ----
     type Node_Array is array (Count_Type range <>) of Node_Type;
  
     type List (Capacity : Count_Type) is tagged record
        Free   : Count_Type'Base := -1;
        First  : Count_Type := 0;
        Last   : Count_Type := 0;
        Length : Count_Type := 0;
        TC     : aliased Tamper_Counts;
+       Nodes  : Node_Array (1 .. Capacity);
     end record with Put_Image => Put_Image;
  
     procedure Put_Image
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbhama.adb gcc-14.1.0/gcc/ada/libgnat/a-cbhama.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cbhama.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbhama.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbhama.ads gcc-14.1.0/gcc/ada/libgnat/a-cbhama.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cbhama.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbhama.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbhase.adb gcc-14.1.0/gcc/ada/libgnat/a-cbhase.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cbhase.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbhase.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbhase.ads gcc-14.1.0/gcc/ada/libgnat/a-cbhase.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cbhase.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbhase.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbmutr.adb gcc-14.1.0/gcc/ada/libgnat/a-cbmutr.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cbmutr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbmutr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2011-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2011-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbmutr.ads gcc-14.1.0/gcc/ada/libgnat/a-cbmutr.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cbmutr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbmutr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cborma.adb gcc-14.1.0/gcc/ada/libgnat/a-cborma.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cborma.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cborma.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cborma.ads gcc-14.1.0/gcc/ada/libgnat/a-cborma.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cborma.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cborma.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cborse.adb gcc-14.1.0/gcc/ada/libgnat/a-cborse.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cborse.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cborse.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cborse.ads gcc-14.1.0/gcc/ada/libgnat/a-cborse.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cborse.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cborse.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbprqu.adb gcc-14.1.0/gcc/ada/libgnat/a-cbprqu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cbprqu.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbprqu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbprqu.ads gcc-14.1.0/gcc/ada/libgnat/a-cbprqu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cbprqu.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbprqu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbsyqu.adb gcc-14.1.0/gcc/ada/libgnat/a-cbsyqu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cbsyqu.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbsyqu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cbsyqu.ads gcc-14.1.0/gcc/ada/libgnat/a-cbsyqu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cbsyqu.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cbsyqu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cdlili.adb gcc-14.1.0/gcc/ada/libgnat/a-cdlili.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cdlili.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cdlili.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cdlili.ads gcc-14.1.0/gcc/ada/libgnat/a-cdlili.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cdlili.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cdlili.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cfdlli.ads gcc-14.1.0/gcc/ada/libgnat/a-cfdlli.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cfdlli.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cfdlli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cfhama.ads gcc-14.1.0/gcc/ada/libgnat/a-cfhama.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cfhama.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cfhama.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cfhase.ads gcc-14.1.0/gcc/ada/libgnat/a-cfhase.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cfhase.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cfhase.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cfidll.ads gcc-14.1.0/gcc/ada/libgnat/a-cfidll.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cfidll.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cfidll.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cfinse.ads gcc-14.1.0/gcc/ada/libgnat/a-cfinse.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cfinse.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cfinse.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cfinve.ads gcc-14.1.0/gcc/ada/libgnat/a-cfinve.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cfinve.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cfinve.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cforma.ads gcc-14.1.0/gcc/ada/libgnat/a-cforma.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cforma.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cforma.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cforse.ads gcc-14.1.0/gcc/ada/libgnat/a-cforse.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cforse.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cforse.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cgaaso.adb gcc-14.1.0/gcc/ada/libgnat/a-cgaaso.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cgaaso.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cgaaso.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cgaaso.ads gcc-14.1.0/gcc/ada/libgnat/a-cgaaso.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cgaaso.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cgaaso.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cgarso.adb gcc-14.1.0/gcc/ada/libgnat/a-cgarso.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cgarso.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cgarso.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cgcaso.adb gcc-14.1.0/gcc/ada/libgnat/a-cgcaso.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cgcaso.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cgcaso.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chacon.adb gcc-14.1.0/gcc/ada/libgnat/a-chacon.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-chacon.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chacon.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chacon.ads gcc-14.1.0/gcc/ada/libgnat/a-chacon.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chacon.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chacon.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chahan.adb gcc-14.1.0/gcc/ada/libgnat/a-chahan.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-chahan.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chahan.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chahan.ads gcc-14.1.0/gcc/ada/libgnat/a-chahan.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chahan.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chahan.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** pragma Assertion_Policy (Post => Ignore)
*** 40,53 ****
  
  with Ada.Characters.Latin_1;
  
! package Ada.Characters.Handling
!   with SPARK_Mode
  is
     pragma Pure;
     --  In accordance with Ada 2005 AI-362
  
-    pragma Annotate (GNATprove, Always_Return, Handling);
- 
     ----------------------------------------
     -- Character Classification Functions --
     ----------------------------------------
--- 40,52 ----
  
  with Ada.Characters.Latin_1;
  
! package Ada.Characters.Handling with
!   SPARK_Mode,
!   Always_Terminates
  is
     pragma Pure;
     --  In accordance with Ada 2005 AI-362
  
     ----------------------------------------
     -- Character Classification Functions --
     ----------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chlat9.ads gcc-14.1.0/gcc/ada/libgnat/a-chlat9.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chlat9.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chlat9.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgbk.adb gcc-14.1.0/gcc/ada/libgnat/a-chtgbk.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgbk.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgbk.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgbk.ads gcc-14.1.0/gcc/ada/libgnat/a-chtgbk.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgbk.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgbk.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgbo.adb gcc-14.1.0/gcc/ada/libgnat/a-chtgbo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgbo.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgbo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgbo.ads gcc-14.1.0/gcc/ada/libgnat/a-chtgbo.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgbo.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgbo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgfk.adb gcc-14.1.0/gcc/ada/libgnat/a-chtgfk.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgfk.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgfk.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgfk.ads gcc-14.1.0/gcc/ada/libgnat/a-chtgfk.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgfk.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgfk.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgfo.adb gcc-14.1.0/gcc/ada/libgnat/a-chtgfo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgfo.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgfo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgfo.ads gcc-14.1.0/gcc/ada/libgnat/a-chtgfo.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgfo.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgfo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgke.adb gcc-14.1.0/gcc/ada/libgnat/a-chtgke.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgke.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgke.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgke.ads gcc-14.1.0/gcc/ada/libgnat/a-chtgke.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgke.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgke.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgop.adb gcc-14.1.0/gcc/ada/libgnat/a-chtgop.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgop.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chtgop.ads gcc-14.1.0/gcc/ada/libgnat/a-chtgop.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chtgop.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chtgop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chzla1.ads gcc-14.1.0/gcc/ada/libgnat/a-chzla1.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chzla1.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chzla1.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-chzla9.ads gcc-14.1.0/gcc/ada/libgnat/a-chzla9.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-chzla9.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-chzla9.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cidlli.adb gcc-14.1.0/gcc/ada/libgnat/a-cidlli.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cidlli.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cidlli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 1283,1304 ****
     is
        First_Time : Boolean := True;
        use System.Put_Images;
  
!       procedure Put_Elem (Position : Cursor);
!       procedure Put_Elem (Position : Cursor) is
!       begin
           if First_Time then
              First_Time := False;
           else
              Simple_Array_Between (S);
           end if;
  
!          Element_Type'Put_Image (S, Element (Position));
!       end Put_Elem;
  
-    begin
-       Array_Before (S);
-       Iterate (V, Put_Elem'Access);
        Array_After (S);
     end Put_Image;
  
--- 1283,1301 ----
     is
        First_Time : Boolean := True;
        use System.Put_Images;
+    begin
+       Array_Before (S);
  
!       for X of V loop
           if First_Time then
              First_Time := False;
           else
              Simple_Array_Between (S);
           end if;
  
!          Element_Type'Put_Image (S, X);
!       end loop;
  
        Array_After (S);
     end Put_Image;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cidlli.ads gcc-14.1.0/gcc/ada/libgnat/a-cidlli.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cidlli.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cidlli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cihama.adb gcc-14.1.0/gcc/ada/libgnat/a-cihama.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cihama.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cihama.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cihama.ads gcc-14.1.0/gcc/ada/libgnat/a-cihama.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cihama.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cihama.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cihase.adb gcc-14.1.0/gcc/ada/libgnat/a-cihase.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cihase.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cihase.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cihase.ads gcc-14.1.0/gcc/ada/libgnat/a-cihase.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cihase.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cihase.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cimutr.adb gcc-14.1.0/gcc/ada/libgnat/a-cimutr.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cimutr.adb	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cimutr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cimutr.ads gcc-14.1.0/gcc/ada/libgnat/a-cimutr.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cimutr.ads	Thu Jul 27 08:13:03 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cimutr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ciorma.adb gcc-14.1.0/gcc/ada/libgnat/a-ciorma.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ciorma.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ciorma.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ciorma.ads gcc-14.1.0/gcc/ada/libgnat/a-ciorma.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ciorma.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ciorma.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ciormu.adb gcc-14.1.0/gcc/ada/libgnat/a-ciormu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ciormu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ciormu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ciormu.ads gcc-14.1.0/gcc/ada/libgnat/a-ciormu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ciormu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ciormu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ciorse.adb gcc-14.1.0/gcc/ada/libgnat/a-ciorse.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ciorse.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ciorse.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ciorse.ads gcc-14.1.0/gcc/ada/libgnat/a-ciorse.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ciorse.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ciorse.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-clrefi.adb gcc-14.1.0/gcc/ada/libgnat/a-clrefi.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-clrefi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-clrefi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-clrefi.ads gcc-14.1.0/gcc/ada/libgnat/a-clrefi.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-clrefi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-clrefi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coboho.adb gcc-14.1.0/gcc/ada/libgnat/a-coboho.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-coboho.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coboho.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2015-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2015-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coboho.ads gcc-14.1.0/gcc/ada/libgnat/a-coboho.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-coboho.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coboho.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cobove.adb gcc-14.1.0/gcc/ada/libgnat/a-cobove.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cobove.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cobove.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cobove.ads gcc-14.1.0/gcc/ada/libgnat/a-cobove.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cobove.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cobove.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cofove.ads gcc-14.1.0/gcc/ada/libgnat/a-cofove.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cofove.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cofove.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cofuma.ads gcc-14.1.0/gcc/ada/libgnat/a-cofuma.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cofuma.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cofuma.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cofuse.ads gcc-14.1.0/gcc/ada/libgnat/a-cofuse.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cofuse.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cofuse.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cofuve.ads gcc-14.1.0/gcc/ada/libgnat/a-cofuve.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cofuve.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cofuve.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cogeso.adb gcc-14.1.0/gcc/ada/libgnat/a-cogeso.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cogeso.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cogeso.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cogeso.ads gcc-14.1.0/gcc/ada/libgnat/a-cogeso.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cogeso.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cogeso.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cohama.adb gcc-14.1.0/gcc/ada/libgnat/a-cohama.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cohama.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cohama.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cohama.ads gcc-14.1.0/gcc/ada/libgnat/a-cohama.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cohama.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cohama.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cohase.adb gcc-14.1.0/gcc/ada/libgnat/a-cohase.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cohase.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cohase.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cohase.ads gcc-14.1.0/gcc/ada/libgnat/a-cohase.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cohase.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cohase.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cohata.ads gcc-14.1.0/gcc/ada/libgnat/a-cohata.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cohata.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cohata.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coinho.adb gcc-14.1.0/gcc/ada/libgnat/a-coinho.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-coinho.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coinho.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coinho.ads gcc-14.1.0/gcc/ada/libgnat/a-coinho.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-coinho.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coinho.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coinho__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-coinho__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-coinho__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coinho__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Containers.Indefinite_H
*** 149,156 ****
           raise Constraint_Error with "container is empty";
        end if;
  
-       Detach (Container);
- 
        declare
           Ref : constant Constant_Reference_Type :=
                   (Element => Container.Reference.Element.all'Access,
--- 149,154 ----
*************** package body Ada.Containers.Indefinite_H
*** 305,312 ****
           raise Constraint_Error with "container is empty";
        end if;
  
-       Detach (Container);
- 
        B := B + 1;
  
        begin
--- 303,308 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coinho__shared.ads gcc-14.1.0/gcc/ada/libgnat/a-coinho__shared.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-coinho__shared.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coinho__shared.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coinve.adb gcc-14.1.0/gcc/ada/libgnat/a-coinve.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-coinve.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coinve.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 2679,2700 ****
     is
        First_Time : Boolean := True;
        use System.Put_Images;
  
!       procedure Put_Elem (Position : Cursor);
!       procedure Put_Elem (Position : Cursor) is
!       begin
           if First_Time then
              First_Time := False;
           else
              Simple_Array_Between (S);
           end if;
  
!          Element_Type'Put_Image (S, Element (Position));
!       end Put_Elem;
  
-    begin
-       Array_Before (S);
-       Iterate (V, Put_Elem'Access);
        Array_After (S);
     end Put_Image;
  
--- 2679,2697 ----
     is
        First_Time : Boolean := True;
        use System.Put_Images;
+    begin
+       Array_Before (S);
  
!       for X of V loop
           if First_Time then
              First_Time := False;
           else
              Simple_Array_Between (S);
           end if;
  
!          Element_Type'Put_Image (S, X);
!       end loop;
  
        Array_After (S);
     end Put_Image;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coinve.ads gcc-14.1.0/gcc/ada/libgnat/a-coinve.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-coinve.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coinve.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-colien.adb gcc-14.1.0/gcc/ada/libgnat/a-colien.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-colien.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-colien.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-colien.ads gcc-14.1.0/gcc/ada/libgnat/a-colien.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-colien.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-colien.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-colire.adb gcc-14.1.0/gcc/ada/libgnat/a-colire.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-colire.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-colire.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-colire.ads gcc-14.1.0/gcc/ada/libgnat/a-colire.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-colire.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-colire.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-comlin.adb gcc-14.1.0/gcc/ada/libgnat/a-comlin.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-comlin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-comlin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Command_Line is
*** 77,92 ****
  
     function Argument_Count return Natural is
     begin
!       if not Initialized then
!          --  RM A.15 (11)
!          return 0;
!       end if;
! 
!       if Remove_Args = null then
!          return Arg_Count - 1;
!       else
!          return Remove_Count;
!       end if;
     end Argument_Count;
  
     -----------------
--- 77,87 ----
  
     function Argument_Count return Natural is
     begin
!       return
!          (if not Initialized then 0  --  RM A.15 (11)
!           elsif Remove_Args = null then Arg_Count - 1
!           else Remove_Count
!          );
     end Argument_Count;
  
     -----------------
*************** package body Ada.Command_Line is
*** 107,112 ****
--- 102,109 ----
  
     function Command_Name return String is
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
        if not Initialized then
           return "";
        end if;
*************** package body Ada.Command_Line is
*** 118,123 ****
--- 115,121 ----
           Fill_Arg (Arg'Address, 0);
           return Arg;
        end;
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Command_Name;
  
  end Ada.Command_Line;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-comlin.ads gcc-14.1.0/gcc/ada/libgnat/a-comlin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-comlin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-comlin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-comutr.adb gcc-14.1.0/gcc/ada/libgnat/a-comutr.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-comutr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-comutr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-comutr.ads gcc-14.1.0/gcc/ada/libgnat/a-comutr.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-comutr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-comutr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-conhel.adb gcc-14.1.0/gcc/ada/libgnat/a-conhel.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-conhel.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-conhel.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2015-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2015-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-conhel.ads gcc-14.1.0/gcc/ada/libgnat/a-conhel.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-conhel.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-conhel.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-convec.adb gcc-14.1.0/gcc/ada/libgnat/a-convec.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-convec.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-convec.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-convec.ads gcc-14.1.0/gcc/ada/libgnat/a-convec.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-convec.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-convec.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coorma.adb gcc-14.1.0/gcc/ada/libgnat/a-coorma.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-coorma.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coorma.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coorma.ads gcc-14.1.0/gcc/ada/libgnat/a-coorma.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-coorma.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coorma.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coormu.adb gcc-14.1.0/gcc/ada/libgnat/a-coormu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-coormu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coormu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coormu.ads gcc-14.1.0/gcc/ada/libgnat/a-coormu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-coormu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coormu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coorse.adb gcc-14.1.0/gcc/ada/libgnat/a-coorse.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-coorse.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coorse.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coorse.ads gcc-14.1.0/gcc/ada/libgnat/a-coorse.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-coorse.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coorse.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coprnu.adb gcc-14.1.0/gcc/ada/libgnat/a-coprnu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-coprnu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coprnu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-coprnu.ads gcc-14.1.0/gcc/ada/libgnat/a-coprnu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-coprnu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-coprnu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-costso.adb gcc-14.1.0/gcc/ada/libgnat/a-costso.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-costso.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-costso.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Containers.Stable_Sorti
*** 124,130 ****
              --  Start of processing for Merge_Parts
  
              begin
!                while (P1.Length /= 0) or (P2.Length /= 0) loop
                    if P1.Length = 0 then
                       Take_From_P2 := True;
                    elsif P2.Length = 0 then
--- 124,130 ----
              --  Start of processing for Merge_Parts
  
              begin
!                while P1.Length /= 0 or P2.Length /= 0 loop
                    if P1.Length = 0 then
                       Take_From_P2 := True;
                    elsif P2.Length = 0 then
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-costso.ads gcc-14.1.0/gcc/ada/libgnat/a-costso.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-costso.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-costso.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-crbltr.ads gcc-14.1.0/gcc/ada/libgnat/a-crbltr.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-crbltr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-crbltr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-crbtgk.adb gcc-14.1.0/gcc/ada/libgnat/a-crbtgk.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-crbtgk.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-crbtgk.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-crbtgk.ads gcc-14.1.0/gcc/ada/libgnat/a-crbtgk.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-crbtgk.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-crbtgk.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-crbtgo.adb gcc-14.1.0/gcc/ada/libgnat/a-crbtgo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-crbtgo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-crbtgo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-crbtgo.ads gcc-14.1.0/gcc/ada/libgnat/a-crbtgo.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-crbtgo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-crbtgo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-crdlli.adb gcc-14.1.0/gcc/ada/libgnat/a-crdlli.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-crdlli.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-crdlli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-crdlli.ads gcc-14.1.0/gcc/ada/libgnat/a-crdlli.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-crdlli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-crdlli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** private
*** 314,324 ****
     type Node_Array is array (Count_Type range <>) of Node_Type;
  
     type List (Capacity : Count_Type) is tagged limited record
-       Nodes  : Node_Array (1 .. Capacity);
        Free   : Count_Type'Base := -1;
        First  : Count_Type := 0;
        Last   : Count_Type := 0;
        Length : Count_Type := 0;
     end record;
  
     type List_Access is access all List;
--- 314,324 ----
     type Node_Array is array (Count_Type range <>) of Node_Type;
  
     type List (Capacity : Count_Type) is tagged limited record
        Free   : Count_Type'Base := -1;
        First  : Count_Type := 0;
        Last   : Count_Type := 0;
        Length : Count_Type := 0;
+       Nodes  : Node_Array (1 .. Capacity);
     end record;
  
     type List_Access is access all List;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-csquin.ads gcc-14.1.0/gcc/ada/libgnat/a-csquin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-csquin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-csquin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cuprqu.adb gcc-14.1.0/gcc/ada/libgnat/a-cuprqu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cuprqu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cuprqu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cuprqu.ads gcc-14.1.0/gcc/ada/libgnat/a-cuprqu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cuprqu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cuprqu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cusyqu.adb gcc-14.1.0/gcc/ada/libgnat/a-cusyqu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-cusyqu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cusyqu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cusyqu.ads gcc-14.1.0/gcc/ada/libgnat/a-cusyqu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cusyqu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cusyqu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cwila1.ads gcc-14.1.0/gcc/ada/libgnat/a-cwila1.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cwila1.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cwila1.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-cwila9.ads gcc-14.1.0/gcc/ada/libgnat/a-cwila9.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-cwila9.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-cwila9.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-decima.adb gcc-14.1.0/gcc/ada/libgnat/a-decima.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-decima.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-decima.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-decima.ads gcc-14.1.0/gcc/ada/libgnat/a-decima.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-decima.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-decima.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-decima__128.ads gcc-14.1.0/gcc/ada/libgnat/a-decima__128.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-decima__128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-decima__128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-dhfina.adb gcc-14.1.0/gcc/ada/libgnat/a-dhfina.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-dhfina.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-dhfina.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Directories.Hierarchica
*** 307,313 ****
        --  Check that directory is valid
  
        if Separated_Dir /= ""
!         and then (not Is_Valid_Path_Name (Separated_Dir & Relative_Name))
        then
           raise Name_Error with
             "invalid path composition """ & Separated_Dir & Relative_Name & '"';
--- 307,313 ----
        --  Check that directory is valid
  
        if Separated_Dir /= ""
!         and then not Is_Valid_Path_Name (Separated_Dir & Relative_Name)
        then
           raise Name_Error with
             "invalid path composition """ & Separated_Dir & Relative_Name & '"';
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-dhfina.ads gcc-14.1.0/gcc/ada/libgnat/a-dhfina.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-dhfina.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-dhfina.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-diocst.adb gcc-14.1.0/gcc/ada/libgnat/a-diocst.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-diocst.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-diocst.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-diocst.ads gcc-14.1.0/gcc/ada/libgnat/a-diocst.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-diocst.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-diocst.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-direct.adb gcc-14.1.0/gcc/ada/libgnat/a-direct.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-direct.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-direct.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Directories is
*** 176,184 ****
           raise Name_Error with
             "invalid directory path name """ & Containing_Directory & '"';
  
!       elsif
!         Extension'Length = 0 and then (not Is_Valid_Simple_Name (Name))
!       then
           raise Name_Error with
             "invalid simple name """ & Name & '"';
  
--- 176,182 ----
           raise Name_Error with
             "invalid directory path name """ & Containing_Directory & '"';
  
!       elsif Extension'Length = 0 and then not Is_Valid_Simple_Name (Name) then
           raise Name_Error with
             "invalid simple name """ & Name & '"';
  
*************** package body Ada.Directories is
*** 1381,1393 ****
                               Compose (Directory, File_Name) & ASCII.NUL;
                    Path   : String renames
                               Path_C (Path_C'First .. Path_C'Last - 1);
-                   Found  : Boolean := False;
                    Attr   : aliased File_Attributes;
                    Exists : Integer;
                    Error  : Integer;
-                   Kind   : File_Kind;
-                   Size   : File_Size;
  
                 begin
                    --  Get the file attributes for the directory item
  
--- 1379,1399 ----
                               Compose (Directory, File_Name) & ASCII.NUL;
                    Path   : String renames
                               Path_C (Path_C'First .. Path_C'Last - 1);
                    Attr   : aliased File_Attributes;
                    Exists : Integer;
                    Error  : Integer;
  
+                   type Result (Found : Boolean := False) is record
+                      case Found is
+                         when True =>
+                            Kind : File_Kind;
+                            Size : File_Size;
+                         when False =>
+                            null;
+                      end case;
+                   end record;
+ 
+                   Res : Result := (Found => False);
                 begin
                    --  Get the file attributes for the directory item
  
*************** package body Ada.Directories is
*** 1416,1447 ****
  
                    elsif Exists = 1 then
                       if Is_Regular_File_Attr (Path_C'Address, Attr'Access) = 1
-                        and then Filter (Ordinary_File)
                       then
!                         Found := True;
!                         Kind := Ordinary_File;
!                         Size :=
!                           File_Size
!                             (File_Length_Attr
!                                (-1, Path_C'Address, Attr'Access));
  
                       elsif Is_Directory_Attr (Path_C'Address, Attr'Access) = 1
-                        and then Filter (File_Kind'First)
                       then
!                         Found := True;
!                         Kind := File_Kind'First;
!                         --  File_Kind'First is used instead of Directory due
!                         --  to a name overload issue with the procedure
!                         --  parameter Directory.
!                         Size := 0;
  
                       elsif Filter (Special_File) then
!                         Found := True;
!                         Kind := Special_File;
!                         Size := 0;
                       end if;
  
!                      if Found then
                          Search.State.Dir_Contents.Append
                            (Directory_Entry_Type'
                               (Valid             => True,
--- 1422,1451 ----
  
                    elsif Exists = 1 then
                       if Is_Regular_File_Attr (Path_C'Address, Attr'Access) = 1
                       then
!                         if Filter (Ordinary_File) then
!                            Res := (Found => True,
!                                    Kind => Ordinary_File,
!                                    Size => File_Size
!                                      (File_Length_Attr
!                                         (-1, Path_C'Address, Attr'Access)));
  
+                         end if;
                       elsif Is_Directory_Attr (Path_C'Address, Attr'Access) = 1
                       then
!                         if Filter (File_Kind'First) then
!                            Res := (Found => True,
!                                    Kind => File_Kind'First,
!                                    Size => 0);
!                         end if;
  
                       elsif Filter (Special_File) then
!                         Res := (Found => True,
!                                 Kind => Special_File,
!                                 Size => 0);
                       end if;
  
!                      if Res.Found then
                          Search.State.Dir_Contents.Append
                            (Directory_Entry_Type'
                               (Valid             => True,
*************** package body Ada.Directories is
*** 1449,1457 ****
                                  To_Unbounded_String (File_Name),
                                Full_Name         => To_Unbounded_String (Path),
                                Attr_Error_Code   => 0,
!                               Kind              => Kind,
                                Modification_Time => Modification_Time (Path),
!                               Size              => Size));
                       end if;
                    end if;
                 end;
--- 1453,1461 ----
                                  To_Unbounded_String (File_Name),
                                Full_Name         => To_Unbounded_String (Path),
                                Attr_Error_Code   => 0,
!                               Kind              => Res.Kind,
                                Modification_Time => Modification_Time (Path),
!                               Size              => Res.Size));
                       end if;
                    end if;
                 end;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-direct.ads gcc-14.1.0/gcc/ada/libgnat/a-direct.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-direct.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-direct.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived for use with GNAT from AI-00248,  which is --
  -- expected to be a part of a future expected revised Ada Reference Manual. --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived for use with GNAT from AI-00248,  which is --
  -- expected to be a part of a future expected revised Ada Reference Manual. --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-direio.adb gcc-14.1.0/gcc/ada/libgnat/a-direio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-direio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-direio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-direio.ads gcc-14.1.0/gcc/ada/libgnat/a-direio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-direio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-direio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-dirval.adb gcc-14.1.0/gcc/ada/libgnat/a-dirval.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-dirval.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-dirval.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                             (POSIX Version)                              --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                             (POSIX Version)                              --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-dirval.ads gcc-14.1.0/gcc/ada/libgnat/a-dirval.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-dirval.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-dirval.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-dirval__mingw.adb gcc-14.1.0/gcc/ada/libgnat/a-dirval__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-dirval__mingw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-dirval__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-einuoc.adb gcc-14.1.0/gcc/ada/libgnat/a-einuoc.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-einuoc.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-einuoc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-einuoc.ads gcc-14.1.0/gcc/ada/libgnat/a-einuoc.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-einuoc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-einuoc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-elchha.adb gcc-14.1.0/gcc/ada/libgnat/a-elchha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-elchha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-elchha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-elchha.ads gcc-14.1.0/gcc/ada/libgnat/a-elchha.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-elchha.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-elchha.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-envvar.adb gcc-14.1.0/gcc/ada/libgnat/a-envvar.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-envvar.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-envvar.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-excach.adb gcc-14.1.0/gcc/ada/libgnat/a-excach.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-excach.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-excach.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 66,73 ****
          (Traceback   => Excep.Tracebacks,
           Max_Len     => Max_Tracebacks,
           Len         => Excep.Num_Tracebacks,
!          Exclude_Min => Code_Address_For_AAA,
!          Exclude_Max => Code_Address_For_ZZZ,
           Skip_Frames => 3);
     end if;
  
--- 66,73 ----
          (Traceback   => Excep.Tracebacks,
           Max_Len     => Max_Tracebacks,
           Len         => Excep.Num_Tracebacks,
!          Exclude_Min => AAA'Code_Address,
!          Exclude_Max => ZZZ'Code_Address,
           Skip_Frames => 3);
     end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-except.adb gcc-14.1.0/gcc/ada/libgnat/a-except.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-except.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-except.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Exceptions is
*** 65,93 ****
     --  from C clients using the given external name, even though they are not
     --  technically visible in the Ada sense.
  
!    function Code_Address_For_AAA return System.Address;
!    function Code_Address_For_ZZZ return System.Address;
!    --  Return start and end of procedures in this package
     --
!    --  These procedures are used to provide exclusion bounds in
!    --  calls to Call_Chain at exception raise points from this unit. The
!    --  purpose is to arrange for the exception tracebacks not to include
!    --  frames from subprograms involved in the raise process, as these are
!    --  meaningless from the user's standpoint.
     --
     --  For these bounds to be meaningful, we need to ensure that the object
!    --  code for the subprograms involved in processing a raise is located
!    --  after the object code Code_Address_For_AAA and before the object
!    --  code Code_Address_For_ZZZ. This will indeed be the case as long as
!    --  the following rules are respected:
     --
     --  1) The bodies of the subprograms involved in processing a raise
!    --     are located after the body of Code_Address_For_AAA and before the
!    --     body of Code_Address_For_ZZZ.
     --
     --  2) No pragma Inline applies to any of these subprograms, as this
     --     could delay the corresponding assembly output until the end of
     --     the unit.
  
     procedure Call_Chain (Excep : EOA);
     --  Store up to Max_Tracebacks in Excep, corresponding to the current
--- 65,96 ----
     --  from C clients using the given external name, even though they are not
     --  technically visible in the Ada sense.
  
!    procedure AAA;
!    procedure ZZZ;
!    --  Start and end of procedures in this package
     --
!    --  These procedures are used to provide exclusion bounds in calls to
!    --  Call_Chain at exception raise points from this unit. The purpose is
!    --  to arrange for the exception tracebacks not to include frames from
!    --  subprograms involved in the raise process, as these are meaningless
!    --  from the user's standpoint.
     --
     --  For these bounds to be meaningful, we need to ensure that the object
!    --  code for the subprograms involved in processing a raise is located after
!    --  the object code AAA and before the object code ZZZ. This will indeed be
!    --  the case as long as the following rules are respected:
     --
     --  1) The bodies of the subprograms involved in processing a raise
!    --     are located after the body of AAA and before the body of ZZZ.
     --
     --  2) No pragma Inline applies to any of these subprograms, as this
     --     could delay the corresponding assembly output until the end of
     --     the unit.
+    --
+    --  To obtain the address of AAA and ZZZ, use the Code_Address attribute
+    --  instead of the Address attribute as the latter will return the address
+    --  of a stub or descriptor on some platforms. This include IA-64,
+    --  PowerPC/AIX, big-endian PowerPC64 and HPUX.
  
     procedure Call_Chain (Excep : EOA);
     --  Store up to Max_Tracebacks in Excep, corresponding to the current
*************** package body Ada.Exceptions is
*** 226,231 ****
--- 229,235 ----
  
        procedure Propagate_Exception (Excep : Exception_Occurrence);
        pragma No_Return (Propagate_Exception);
+       pragma Machine_Attribute (Propagate_Exception, "expected_throw");
        --  This procedure propagates the exception represented by Excep
  
     end Exception_Propagation;
*************** package body Ada.Exceptions is
*** 253,258 ****
--- 257,264 ----
  
     procedure Complete_And_Propagate_Occurrence (X : EOA);
     pragma No_Return (Complete_And_Propagate_Occurrence);
+    pragma Machine_Attribute (Complete_And_Propagate_Occurrence,
+                              "expected_throw");
     --  This is a simple wrapper to Complete_Occurrence and
     --  Exception_Propagation.Propagate_Exception.
  
*************** package body Ada.Exceptions is
*** 277,282 ****
--- 283,289 ----
      (Ada, Raise_Exception_No_Defer,
       "ada__exceptions__raise_exception_no_defer");
     pragma No_Return (Raise_Exception_No_Defer);
+    pragma Machine_Attribute (Raise_Exception_No_Defer, "expected_throw");
     --  Similar to Raise_Exception, but with no abort deferral
  
     procedure Raise_From_Signal_Handler
*************** package body Ada.Exceptions is
*** 285,290 ****
--- 292,298 ----
     pragma Export
       (C, Raise_From_Signal_Handler, "__gnat_raise_from_signal_handler");
     pragma No_Return (Raise_From_Signal_Handler);
+    pragma Machine_Attribute (Raise_From_Signal_Handler, "expected_throw");
     --  This routine is used to raise an exception from a signal handler. The
     --  signal handler has already stored the machine state (i.e. the state that
     --  corresponds to the location at which the signal was raised). E is the
*************** package body Ada.Exceptions is
*** 298,303 ****
--- 306,312 ----
  
     procedure Raise_With_Msg (E : Exception_Id);
     pragma No_Return (Raise_With_Msg);
+    pragma Machine_Attribute (Raise_With_Msg, "expected_throw");
     pragma Export (C, Raise_With_Msg, "__gnat_raise_with_msg");
     --  Raises an exception with given exception id value. A message
     --  is associated with the raise, and has already been stored in the
*************** package body Ada.Exceptions is
*** 311,316 ****
--- 320,326 ----
        C : Integer := 0;
        M : System.Address := System.Null_Address);
     pragma No_Return (Raise_With_Location_And_Msg);
+    pragma Machine_Attribute (Raise_With_Location_And_Msg, "expected_throw");
     --  Raise an exception with given exception id value. A filename and line
     --  number is associated with the raise and is stored in the exception
     --  occurrence and in addition a column and a string message M may be
*************** package body Ada.Exceptions is
*** 318,323 ****
--- 328,334 ----
  
     procedure Raise_Constraint_Error (File : System.Address; Line : Integer);
     pragma No_Return (Raise_Constraint_Error);
+    pragma Machine_Attribute (Raise_Constraint_Error, "expected_throw");
     pragma Export (C, Raise_Constraint_Error, "__gnat_raise_constraint_error");
     --  Raise constraint error with file:line information
  
*************** package body Ada.Exceptions is
*** 327,338 ****
--- 338,351 ----
        Column : Integer;
        Msg    : System.Address);
     pragma No_Return (Raise_Constraint_Error_Msg);
+    pragma Machine_Attribute (Raise_Constraint_Error_Msg, "expected_throw");
     pragma Export
       (C, Raise_Constraint_Error_Msg, "__gnat_raise_constraint_error_msg");
     --  Raise constraint error with file:line:col + msg information
  
     procedure Raise_Program_Error (File : System.Address; Line : Integer);
     pragma No_Return (Raise_Program_Error);
+    pragma Machine_Attribute (Raise_Program_Error, "expected_throw");
     pragma Export (C, Raise_Program_Error, "__gnat_raise_program_error");
     --  Raise program error with file:line information
  
*************** package body Ada.Exceptions is
*** 341,352 ****
--- 354,367 ----
        Line : Integer;
        Msg  : System.Address);
     pragma No_Return (Raise_Program_Error_Msg);
+    pragma Machine_Attribute (Raise_Program_Error_Msg, "expected_throw");
     pragma Export
       (C, Raise_Program_Error_Msg, "__gnat_raise_program_error_msg");
     --  Raise program error with file:line + msg information
  
     procedure Raise_Storage_Error (File : System.Address; Line : Integer);
     pragma No_Return (Raise_Storage_Error);
+    pragma Machine_Attribute (Raise_Storage_Error, "expected_throw");
     pragma Export (C, Raise_Storage_Error, "__gnat_raise_storage_error");
     --  Raise storage error with file:line information
  
*************** package body Ada.Exceptions is
*** 355,360 ****
--- 370,376 ----
        Line : Integer;
        Msg  : System.Address);
     pragma No_Return (Raise_Storage_Error_Msg);
+    pragma Machine_Attribute (Raise_Storage_Error_Msg, "expected_throw");
     pragma Export
       (C, Raise_Storage_Error_Msg, "__gnat_raise_storage_error_msg");
     --  Raise storage error with file:line + reason msg information
*************** package body Ada.Exceptions is
*** 382,387 ****
--- 398,404 ----
  
     procedure Reraise;
     pragma No_Return (Reraise);
+    pragma Machine_Attribute (Reraise, "expected_throw");
     pragma Export (C, Reraise, "__gnat_reraise");
     --  Reraises the exception referenced by the Current_Excep field
     --  of the TSD (all fields of this exception occurrence are set).
*************** package body Ada.Exceptions is
*** 629,634 ****
--- 646,741 ----
     pragma No_Return (Rcheck_CE_Invalid_Data_Ext);
     pragma No_Return (Rcheck_CE_Range_Check_Ext);
  
+    --  These procedures are all expected to raise an exception.
+    --  These attributes are not visible to callers; they are made
+    --  visible in trans.c:build_raise_check.
+ 
+    pragma Machine_Attribute (Rcheck_CE_Access_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Null_Access_Parameter,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Discriminant_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Divide_By_Zero,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Explicit_Raise,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Index_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Invalid_Data,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Length_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Null_Exception_Id,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Null_Not_Allowed,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Overflow_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Partition_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Range_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Tag_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Access_Before_Elaboration,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Accessibility_Check,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Address_Of_Intrinsic,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Aliased_Parameters,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_All_Guards_Closed,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Bad_Predicated_Generic_Type,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Build_In_Place_Mismatch,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Current_Task_In_Entry_Body,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Duplicated_Entry_Address,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Explicit_Raise,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Implicit_Return,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Misaligned_Address_Value,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Missing_Return,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Non_Transportable_Actual,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Overlaid_Controlled_Object,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Potentially_Blocking_Operation,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Stream_Operation_Not_Allowed,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Stubbed_Subprogram_Called,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Unchecked_Union_Restriction,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Finalize_Raised_Exception,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_SE_Empty_Storage_Pool,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_SE_Explicit_Raise,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_SE_Infinite_Recursion,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_SE_Object_Too_Large,
+                              "expected_throw");
+ 
+    pragma Machine_Attribute (Rcheck_CE_Access_Check_Ext,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Index_Check_Ext,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Invalid_Data_Ext,
+                              "expected_throw");
+    pragma Machine_Attribute (Rcheck_CE_Range_Check_Ext,
+                              "expected_throw");
+ 
     --  Make all of these procedures callable from strub contexts.
     --  These attributes are not visible to callers; they are made
     --  visible in trans.c:build_raise_check.
*************** package body Ada.Exceptions is
*** 771,794 ****
     Rmsg_36 : constant String := "stream operation not allowed"     & NUL;
     Rmsg_37 : constant String := "build-in-place mismatch"          & NUL;
  
!    --------------------------
!    -- Code_Address_For_AAA --
!    --------------------------
  
     --  This function gives us the start of the PC range for addresses within
     --  the exception unit itself. We hope that gigi/gcc keep all the procedures
     --  in their original order.
  
!    function Code_Address_For_AAA return System.Address is
!    begin
!       --  We are using a label instead of Code_Address_For_AAA'Address because
!       --  on some platforms the latter does not yield the address we want, but
!       --  the address of a stub or of a descriptor instead. This is the case at
!       --  least on PA-HPUX.
! 
!       <<Start_Of_AAA>>
!       return Start_Of_AAA'Address;
!    end Code_Address_For_AAA;
  
     ----------------
     -- Call_Chain --
--- 878,892 ----
     Rmsg_36 : constant String := "stream operation not allowed"     & NUL;
     Rmsg_37 : constant String := "build-in-place mismatch"          & NUL;
  
!    ---------
!    -- AAA --
!    ---------
  
     --  This function gives us the start of the PC range for addresses within
     --  the exception unit itself. We hope that gigi/gcc keep all the procedures
     --  in their original order.
  
!    procedure AAA is null;
  
     ----------------
     -- Call_Chain --
*************** package body Ada.Exceptions is
*** 1816,1833 ****
        return W (1 .. L);
     end Wide_Wide_Exception_Name;
  
!    --------------------------
!    -- Code_Address_For_ZZZ --
!    --------------------------
  
     --  This function gives us the end of the PC range for addresses
     --  within the exception unit itself. We hope that gigi/gcc keeps all the
     --  procedures in their original order.
  
!    function Code_Address_For_ZZZ return System.Address is
!    begin
!       <<Start_Of_ZZZ>>
!       return Start_Of_ZZZ'Address;
!    end Code_Address_For_ZZZ;
  
  end Ada.Exceptions;
--- 1914,1927 ----
        return W (1 .. L);
     end Wide_Wide_Exception_Name;
  
!    ---------
!    -- ZZZ --
!    ---------
  
     --  This function gives us the end of the PC range for addresses
     --  within the exception unit itself. We hope that gigi/gcc keeps all the
     --  procedures in their original order.
  
!    procedure ZZZ is null;
  
  end Ada.Exceptions;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-except.ads gcc-14.1.0/gcc/ada/libgnat/a-except.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-except.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-except.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package Ada.Exceptions is
*** 120,126 ****
  
     --  Ada 2005 (AI-438): The language revision introduces the following
     --  subprograms and attribute definitions. We do not provide them
!    --  explicitly. instead, the corresponding stream attributes are made
     --  available through a pragma Stream_Convert in the private part.
  
     --  procedure Read_Exception_Occurrence
--- 120,126 ----
  
     --  Ada 2005 (AI-438): The language revision introduces the following
     --  subprograms and attribute definitions. We do not provide them
!    --  explicitly. Instead, the corresponding stream attributes are made
     --  available through a pragma Stream_Convert in the private part.
  
     --  procedure Read_Exception_Occurrence
*************** private
*** 163,168 ****
--- 163,176 ----
  
     Null_Id : constant Exception_Id := null;
  
+    pragma Machine_Attribute (Raise_Exception, "expected_throw");
+    pragma Machine_Attribute (Reraise_Occurrence, "expected_throw");
+    --  Tell the compiler that an exception is likely after calling
+    --  these subprograms. This could eventually be used for hot/cold
+    --  partitioning. For now, this only enables the control flow
+    --  redundancy to avoid duplicating a check before the No_Return
+    --  call and in the exception handler for the call.
+ 
     -------------------------
     -- Private Subprograms --
     -------------------------
*************** private
*** 177,182 ****
--- 185,191 ----
  
     procedure Raise_Exception_Always (E : Exception_Id; Message : String := "");
     pragma No_Return (Raise_Exception_Always);
+    pragma Machine_Attribute (Raise_Exception_Always, "expected_throw");
     pragma Export (Ada, Raise_Exception_Always, "__gnat_raise_exception");
     --  This differs from Raise_Exception only in that the caller has determined
     --  that for sure the parameter E is not null, and that therefore no check
*************** private
*** 195,200 ****
--- 204,212 ----
             "__gnat_raise_from_controlled_operation");
     --  Raise Program_Error, providing information about X (an exception raised
     --  during a controlled operation) in the exception message.
+    pragma Machine_Attribute (Raise_From_Controlled_Operation,
+                              "expected_throw");
+    --  Mark it like internal exception-raising subprograms
  
     procedure Reraise_Library_Exception_If_Any;
     pragma Export
*************** private
*** 205,210 ****
--- 217,223 ----
  
     procedure Reraise_Occurrence_Always (X : Exception_Occurrence);
     pragma No_Return (Reraise_Occurrence_Always);
+    pragma Machine_Attribute (Reraise_Occurrence_Always, "expected_throw");
     --  This differs from Raise_Occurrence only in that the caller guarantees
     --  that for sure the parameter X is not the null occurrence, and that
     --  therefore this procedure cannot return. The expander uses this routine
*************** private
*** 212,217 ****
--- 225,231 ----
  
     procedure Reraise_Occurrence_No_Defer (X : Exception_Occurrence);
     pragma No_Return (Reraise_Occurrence_No_Defer);
+    pragma Machine_Attribute (Reraise_Occurrence_No_Defer, "expected_throw");
     --  Exactly like Reraise_Occurrence, except that abort is not deferred
     --  before the call and the parameter X is known not to be the null
     --  occurrence. This is used in generated code when it is known that abort
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-exctra.adb gcc-14.1.0/gcc/ada/libgnat/a-exctra.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-exctra.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-exctra.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-exctra.ads gcc-14.1.0/gcc/ada/libgnat/a-exctra.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-exctra.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-exctra.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-exexda.adb gcc-14.1.0/gcc/ada/libgnat/a-exexda.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-exexda.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-exexda.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-exexpr.adb gcc-14.1.0/gcc/ada/libgnat/a-exexpr.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-exexpr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-exexpr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-exextr.adb gcc-14.1.0/gcc/ada/libgnat/a-exextr.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-exextr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-exextr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-exstat.adb gcc-14.1.0/gcc/ada/libgnat/a-exstat.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-exstat.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-exstat.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-finali.adb gcc-14.1.0/gcc/ada/libgnat/a-finali.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-finali.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-finali.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-finali.ads gcc-14.1.0/gcc/ada/libgnat/a-finali.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-finali.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-finali.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-locale.adb gcc-14.1.0/gcc/ada/libgnat/a-locale.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-locale.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-locale.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-locale.ads gcc-14.1.0/gcc/ada/libgnat/a-locale.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-locale.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-locale.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nagefl.ads gcc-14.1.0/gcc/ada/libgnat/a-nagefl.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nagefl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nagefl.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (Generic Wrapper)                             --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Generic Wrapper)                             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-naliop.ads gcc-14.1.0/gcc/ada/libgnat/a-naliop.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-naliop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-naliop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-naliop__nolibm.ads gcc-14.1.0/gcc/ada/libgnat/a-naliop__nolibm.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-naliop__nolibm.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-naliop__nolibm.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nallfl.ads gcc-14.1.0/gcc/ada/libgnat/a-nallfl.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nallfl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nallfl.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                    (Instrinsic Version, Long Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (Instrinsic Version, Long Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nallfl__wraplf.ads gcc-14.1.0/gcc/ada/libgnat/a-nallfl__wraplf.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nallfl__wraplf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nallfl__wraplf.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --              (Long Long Float Wrapper in terms of Long Float)            --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --              (Long Long Float Wrapper in terms of Long Float)            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nalofl.ads gcc-14.1.0/gcc/ada/libgnat/a-nalofl.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nalofl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nalofl.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                       (Intrinsic Version, Long Float)                    --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (Intrinsic Version, Long Float)                    --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nalofl__simd.ads gcc-14.1.0/gcc/ada/libgnat/a-nalofl__simd.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nalofl__simd.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nalofl__simd.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                     (Intrinsic/SIMD Version, Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                     (Intrinsic/SIMD Version, Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nashfl.ads gcc-14.1.0/gcc/ada/libgnat/a-nashfl.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nashfl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nashfl.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                  (Short Float Wrapper in terms of Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                  (Short Float Wrapper in terms of Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nashfl__wraplf.ads gcc-14.1.0/gcc/ada/libgnat/a-nashfl__wraplf.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nashfl__wraplf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nashfl__wraplf.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                (Short Float Wrapper in terms of Long Float)              --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                (Short Float Wrapper in terms of Long Float)              --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nbnbig.adb gcc-14.1.0/gcc/ada/libgnat/a-nbnbig.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-nbnbig.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nbnbig.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nbnbig.ads gcc-14.1.0/gcc/ada/libgnat/a-nbnbig.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nbnbig.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nbnbig.ads	Tue May  7 06:51:37 2024
*************** pragma Assertion_Policy (Ghost => Ignore
*** 30,38 ****
  package Ada.Numerics.Big_Numbers.Big_Integers_Ghost with
     SPARK_Mode,
     Ghost,
!    Pure
  is
-    pragma Annotate (GNATprove, Always_Return, Big_Integers_Ghost);
  
     type Big_Integer is private
       with Integer_Literal => From_Universal_Image;
--- 30,38 ----
  package Ada.Numerics.Big_Numbers.Big_Integers_Ghost with
     SPARK_Mode,
     Ghost,
!    Pure,
!    Always_Terminates
  is
  
     type Big_Integer is private
       with Integer_Literal => From_Universal_Image;
*************** is
*** 75,87 ****
       with Dynamic_Predicate =>
              (if Is_Valid (Big_Positive)
               then Big_Positive > To_Big_Integer (0)),
!           Predicate_Failure => (raise Constraint_Error);
  
     subtype Big_Natural is Big_Integer
       with Dynamic_Predicate =>
              (if Is_Valid (Big_Natural)
               then Big_Natural >= To_Big_Integer (0)),
!           Predicate_Failure => (raise Constraint_Error);
  
     function In_Range
       (Arg : Valid_Big_Integer; Low, High : Big_Integer) return Boolean
--- 75,87 ----
       with Dynamic_Predicate =>
              (if Is_Valid (Big_Positive)
               then Big_Positive > To_Big_Integer (0)),
!           Predicate_Failure => raise Constraint_Error;
  
     subtype Big_Natural is Big_Integer
       with Dynamic_Predicate =>
              (if Is_Valid (Big_Natural)
               then Big_Natural >= To_Big_Integer (0)),
!           Predicate_Failure => raise Constraint_Error;
  
     function In_Range
       (Arg : Valid_Big_Integer; Low, High : Big_Integer) return Boolean
*************** is
*** 96,102 ****
       Pre    => In_Range (Arg,
                           Low  => To_Big_Integer (Integer'First),
                           High => To_Big_Integer (Integer'Last))
!                 or else (raise Constraint_Error),
       Global => null;
  
     generic
--- 96,102 ----
       Pre    => In_Range (Arg,
                           Low  => To_Big_Integer (Integer'First),
                           High => To_Big_Integer (Integer'Last))
!                 or else raise Constraint_Error,
       Global => null;
  
     generic
*************** is
*** 112,118 ****
          Pre    => In_Range (Arg,
                              Low  => To_Big_Integer (Int'First),
                              High => To_Big_Integer (Int'Last))
!                    or else (raise Constraint_Error),
          Global => null;
     end Signed_Conversions;
  
--- 112,118 ----
          Pre    => In_Range (Arg,
                              Low  => To_Big_Integer (Int'First),
                              High => To_Big_Integer (Int'Last))
!                    or else raise Constraint_Error,
          Global => null;
     end Signed_Conversions;
  
*************** is
*** 129,135 ****
          Pre    => In_Range (Arg,
                              Low  => To_Big_Integer (Int'First),
                              High => To_Big_Integer (Int'Last))
!                    or else (raise Constraint_Error),
          Global => null;
  
     end Unsigned_Conversions;
--- 129,135 ----
          Pre    => In_Range (Arg,
                              Low  => To_Big_Integer (Int'First),
                              High => To_Big_Integer (Int'Last))
!                    or else raise Constraint_Error,
          Global => null;
  
     end Unsigned_Conversions;
*************** is
*** 207,213 ****
     with
       Import,
       Pre    => (L /= To_Big_Integer (0) and R /= To_Big_Integer (0))
!              or else (raise Constraint_Error),
       Global => null;
  
  private
--- 207,213 ----
     with
       Import,
       Pre    => (L /= To_Big_Integer (0) and R /= To_Big_Integer (0))
!                or else raise Constraint_Error,
       Global => null;
  
  private
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nbnbin.adb gcc-14.1.0/gcc/ada/libgnat/a-nbnbin.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-nbnbin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nbnbin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Numerics.Big_Numbers.Bi
*** 160,166 ****
  
     function To_Integer (Arg : Valid_Big_Integer) return Integer is
     begin
!       return Integer (From_Bignum (Get_Bignum (Arg)));
     end To_Integer;
  
     ------------------------
--- 160,166 ----
  
     function To_Integer (Arg : Valid_Big_Integer) return Integer is
     begin
!       return Integer (Long_Long_Integer'(From_Bignum (Get_Bignum (Arg))));
     end To_Integer;
  
     ------------------------
*************** package body Ada.Numerics.Big_Numbers.Bi
*** 186,192 ****
  
        function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
        begin
!          return Int (From_Bignum (Get_Bignum (Arg)));
        end From_Big_Integer;
  
     end Signed_Conversions;
--- 186,192 ----
  
        function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
        begin
!          return Int (Long_Long_Long_Integer'(From_Bignum (Get_Bignum (Arg))));
        end From_Big_Integer;
  
     end Signed_Conversions;
*************** package body Ada.Numerics.Big_Numbers.Bi
*** 214,220 ****
  
        function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
        begin
!          return Int (From_Bignum (Get_Bignum (Arg)));
        end From_Big_Integer;
  
     end Unsigned_Conversions;
--- 214,220 ----
  
        function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
        begin
!          return Int (Unsigned_128'(From_Bignum (Get_Bignum (Arg))));
        end From_Big_Integer;
  
     end Unsigned_Conversions;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nbnbin.ads gcc-14.1.0/gcc/ada/libgnat/a-nbnbin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nbnbin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nbnbin.ads	Tue May  7 06:51:37 2024
*************** with Ada.Strings.Text_Buffers; use Ada.S
*** 18,27 ****
  private with Ada.Finalization;
  private with System;
  
! package Ada.Numerics.Big_Numbers.Big_Integers
!   with Preelaborate
  is
-    pragma Annotate (GNATprove, Always_Return, Big_Integers);
  
     type Big_Integer is private
       with Integer_Literal => From_Universal_Image,
--- 18,27 ----
  private with Ada.Finalization;
  private with System;
  
! package Ada.Numerics.Big_Numbers.Big_Integers with
!   Preelaborate,
!   Always_Terminates
  is
  
     type Big_Integer is private
       with Integer_Literal => From_Universal_Image,
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nbnbin__gmp.adb gcc-14.1.0/gcc/ada/libgnat/a-nbnbin__gmp.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-nbnbin__gmp.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nbnbin__gmp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nbnbre.adb gcc-14.1.0/gcc/ada/libgnat/a-nbnbre.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-nbnbre.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nbnbre.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nbnbre.ads gcc-14.1.0/gcc/ada/libgnat/a-nbnbre.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nbnbre.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nbnbre.ads	Tue May  7 06:51:37 2024
*************** with Ada.Numerics.Big_Numbers.Big_Intege
*** 17,26 ****
  
  with Ada.Strings.Text_Buffers; use Ada.Strings.Text_Buffers;
  
! package Ada.Numerics.Big_Numbers.Big_Reals
!   with Preelaborate
  is
-    pragma Annotate (GNATprove, Always_Return, Big_Reals);
  
     type Big_Real is private with
       Real_Literal => From_Universal_Image,
--- 17,26 ----
  
  with Ada.Strings.Text_Buffers; use Ada.Strings.Text_Buffers;
  
! package Ada.Numerics.Big_Numbers.Big_Reals with
!   Preelaborate,
!   Always_Terminates
  is
  
     type Big_Real is private with
       Real_Literal => From_Universal_Image,
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ngcefu.adb gcc-14.1.0/gcc/ada/libgnat/a-ngcefu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ngcefu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ngcefu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ngcoar.adb gcc-14.1.0/gcc/ada/libgnat/a-ngcoar.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ngcoar.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ngcoar.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2006-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2006-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ngcoty.adb gcc-14.1.0/gcc/ada/libgnat/a-ngcoty.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ngcoty.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ngcoty.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ngcoty.ads gcc-14.1.0/gcc/ada/libgnat/a-ngcoty.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ngcoty.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ngcoty.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ngelfu.adb gcc-14.1.0/gcc/ada/libgnat/a-ngelfu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ngelfu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ngelfu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ngelfu.ads gcc-14.1.0/gcc/ada/libgnat/a-ngelfu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ngelfu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ngelfu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** generic
*** 37,46 ****
     type Float_Type is digits <>;
  
  package Ada.Numerics.Generic_Elementary_Functions with
!   SPARK_Mode => On
  is
     pragma Pure;
-    pragma Annotate (GNATprove, Always_Return, Generic_Elementary_Functions);
  
     --  Preconditions in this unit are meant for analysis only, not for run-time
     --  checking, so that the expected exceptions are raised when calling
--- 37,46 ----
     type Float_Type is digits <>;
  
  package Ada.Numerics.Generic_Elementary_Functions with
!   SPARK_Mode => On,
!   Always_Terminates
  is
     pragma Pure;
  
     --  Preconditions in this unit are meant for analysis only, not for run-time
     --  checking, so that the expected exceptions are raised when calling
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ngrear.adb gcc-14.1.0/gcc/ada/libgnat/a-ngrear.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ngrear.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ngrear.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ngrear.ads gcc-14.1.0/gcc/ada/libgnat/a-ngrear.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ngrear.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ngrear.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nlelfu.ads gcc-14.1.0/gcc/ada/libgnat/a-nlelfu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nlelfu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nlelfu.ads	Tue May  7 06:51:37 2024
*************** package Ada.Numerics.Long_Elementary_Fun
*** 19,22 ****
    new Ada.Numerics.Generic_Elementary_Functions (Long_Float);
  
  pragma Pure (Long_Elementary_Functions);
- pragma Annotate (GNATprove, Always_Return, Long_Elementary_Functions);
--- 19,21 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nllefu.ads gcc-14.1.0/gcc/ada/libgnat/a-nllefu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nllefu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nllefu.ads	Tue May  7 06:51:37 2024
*************** package Ada.Numerics.Long_Long_Elementar
*** 19,22 ****
    new Ada.Numerics.Generic_Elementary_Functions (Long_Long_Float);
  
  pragma Pure (Long_Long_Elementary_Functions);
- pragma Annotate (GNATprove, Always_Return, Long_Long_Elementary_Functions);
--- 19,21 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nselfu.ads gcc-14.1.0/gcc/ada/libgnat/a-nselfu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nselfu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nselfu.ads	Tue May  7 06:51:37 2024
*************** package Ada.Numerics.Short_Elementary_Fu
*** 19,22 ****
    new Ada.Numerics.Generic_Elementary_Functions (Short_Float);
  
  pragma Pure (Short_Elementary_Functions);
- pragma Annotate (GNATprove, Always_Return, Short_Elementary_Functions);
--- 19,21 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nuauco.ads gcc-14.1.0/gcc/ada/libgnat/a-nuauco.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nuauco.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nuauco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nuauco__x86.ads gcc-14.1.0/gcc/ada/libgnat/a-nuauco__x86.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nuauco__x86.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nuauco__x86.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nuaufl.ads gcc-14.1.0/gcc/ada/libgnat/a-nuaufl.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nuaufl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nuaufl.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (Intrinsic Version, Float)                        --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (Intrinsic Version, Float)                        --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nuaufl__simd.ads gcc-14.1.0/gcc/ada/libgnat/a-nuaufl__simd.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nuaufl__simd.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nuaufl__simd.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (Intrinsic/SIMD Version, Float)                     --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (Intrinsic/SIMD Version, Float)                     --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads gcc-14.1.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                       (Double-based Version, Float)                      --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (Double-based Version, Float)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nudira.adb gcc-14.1.0/gcc/ada/libgnat/a-nudira.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-nudira.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nudira.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nudira.ads gcc-14.1.0/gcc/ada/libgnat/a-nudira.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nudira.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nudira.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nuelfu.ads gcc-14.1.0/gcc/ada/libgnat/a-nuelfu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nuelfu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nuelfu.ads	Tue May  7 06:51:37 2024
*************** package Ada.Numerics.Elementary_Function
*** 19,22 ****
    new Ada.Numerics.Generic_Elementary_Functions (Float);
  
  pragma Pure (Elementary_Functions);
- pragma Annotate (GNATprove, Always_Return, Elementary_Functions);
--- 19,21 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nuflra.adb gcc-14.1.0/gcc/ada/libgnat/a-nuflra.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-nuflra.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nuflra.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-nuflra.ads gcc-14.1.0/gcc/ada/libgnat/a-nuflra.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-nuflra.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-nuflra.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-numaux.ads gcc-14.1.0/gcc/ada/libgnat/a-numaux.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-numaux.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-numaux.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-rbtgbk.adb gcc-14.1.0/gcc/ada/libgnat/a-rbtgbk.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-rbtgbk.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-rbtgbk.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-rbtgbk.ads gcc-14.1.0/gcc/ada/libgnat/a-rbtgbk.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-rbtgbk.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-rbtgbk.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-rbtgbo.adb gcc-14.1.0/gcc/ada/libgnat/a-rbtgbo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-rbtgbo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-rbtgbo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Containers.Red_Black_Tr
*** 207,227 ****
        pragma Assert (Tree.Last  /= 0);
        pragma Assert (Parent (N (Tree.Root)) = 0);
  
!       pragma Assert ((Tree.Length > 1)
                         or else (Tree.First = Tree.Last
                                   and then Tree.First = Tree.Root));
  
!       pragma Assert ((Left (N (Node)) = 0)
!                         or else (Parent (N (Left (N (Node)))) = Node));
  
!       pragma Assert ((Right (N (Node)) = 0)
!                         or else (Parent (N (Right (N (Node)))) = Node));
  
!       pragma Assert (((Parent (N (Node)) = 0) and then (Tree.Root = Node))
!                         or else ((Parent (N (Node)) /= 0) and then
!                                   ((Left (N (Parent (N (Node)))) = Node)
                                        or else
!                                    (Right (N (Parent (N (Node)))) = Node))));
  
        if Left (N (Z)) = 0 then
           if Right (N (Z)) = 0 then
--- 207,227 ----
        pragma Assert (Tree.Last  /= 0);
        pragma Assert (Parent (N (Tree.Root)) = 0);
  
!       pragma Assert (Tree.Length > 1
                         or else (Tree.First = Tree.Last
                                   and then Tree.First = Tree.Root));
  
!       pragma Assert (Left (N (Node)) = 0
!                        or else Parent (N (Left (N (Node)))) = Node);
  
!       pragma Assert (Right (N (Node)) = 0
!                        or else Parent (N (Right (N (Node)))) = Node);
  
!       pragma Assert ((Parent (N (Node)) = 0 and then Tree.Root = Node)
!                         or else (Parent (N (Node)) /= 0 and then
!                                   (Left (N (Parent (N (Node)))) = Node
                                        or else
!                                    Right (N (Parent (N (Node)))) = Node)));
  
        if Left (N (Z)) = 0 then
           if Right (N (Z)) = 0 then
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-rbtgbo.ads gcc-14.1.0/gcc/ada/libgnat/a-rbtgbo.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-rbtgbo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-rbtgbo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-rbtgso.adb gcc-14.1.0/gcc/ada/libgnat/a-rbtgso.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-rbtgso.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-rbtgso.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-rbtgso.ads gcc-14.1.0/gcc/ada/libgnat/a-rbtgso.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-rbtgso.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-rbtgso.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sbecin.adb gcc-14.1.0/gcc/ada/libgnat/a-sbecin.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-sbecin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sbecin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sbecin.ads gcc-14.1.0/gcc/ada/libgnat/a-sbecin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-sbecin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sbecin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sbhcin.adb gcc-14.1.0/gcc/ada/libgnat/a-sbhcin.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-sbhcin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sbhcin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sbhcin.ads gcc-14.1.0/gcc/ada/libgnat/a-sbhcin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-sbhcin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sbhcin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sblcin.adb gcc-14.1.0/gcc/ada/libgnat/a-sblcin.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-sblcin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sblcin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sblcin.ads gcc-14.1.0/gcc/ada/libgnat/a-sblcin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-sblcin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sblcin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-secain.adb gcc-14.1.0/gcc/ada/libgnat/a-secain.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-secain.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-secain.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-secain.ads gcc-14.1.0/gcc/ada/libgnat/a-secain.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-secain.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-secain.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sequio.adb gcc-14.1.0/gcc/ada/libgnat/a-sequio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-sequio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sequio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sequio.ads gcc-14.1.0/gcc/ada/libgnat/a-sequio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-sequio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sequio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sfecin.ads gcc-14.1.0/gcc/ada/libgnat/a-sfecin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-sfecin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sfecin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sfhcin.ads gcc-14.1.0/gcc/ada/libgnat/a-sfhcin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-sfhcin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sfhcin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sflcin.ads gcc-14.1.0/gcc/ada/libgnat/a-sflcin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-sflcin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sflcin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-shcain.adb gcc-14.1.0/gcc/ada/libgnat/a-shcain.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-shcain.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-shcain.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-shcain.ads gcc-14.1.0/gcc/ada/libgnat/a-shcain.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-shcain.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-shcain.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-siocst.adb gcc-14.1.0/gcc/ada/libgnat/a-siocst.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-siocst.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-siocst.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-siocst.ads gcc-14.1.0/gcc/ada/libgnat/a-siocst.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-siocst.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-siocst.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-slcain.adb gcc-14.1.0/gcc/ada/libgnat/a-slcain.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-slcain.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-slcain.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-slcain.ads gcc-14.1.0/gcc/ada/libgnat/a-slcain.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-slcain.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-slcain.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ssicst.adb gcc-14.1.0/gcc/ada/libgnat/a-ssicst.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ssicst.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ssicst.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ssicst.ads gcc-14.1.0/gcc/ada/libgnat/a-ssicst.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ssicst.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ssicst.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stboha.adb gcc-14.1.0/gcc/ada/libgnat/a-stboha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stboha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stboha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbubo.adb gcc-14.1.0/gcc/ada/libgnat/a-stbubo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stbubo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbubo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbubo.ads gcc-14.1.0/gcc/ada/libgnat/a-stbubo.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stbubo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbubo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbufi.adb gcc-14.1.0/gcc/ada/libgnat/a-stbufi.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stbufi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbufi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbufi.ads gcc-14.1.0/gcc/ada/libgnat/a-stbufi.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stbufi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbufi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbufo.adb gcc-14.1.0/gcc/ada/libgnat/a-stbufo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stbufo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbufo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbufo.ads gcc-14.1.0/gcc/ada/libgnat/a-stbufo.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stbufo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbufo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbuun.adb gcc-14.1.0/gcc/ada/libgnat/a-stbuun.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stbuun.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbuun.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbuut.adb gcc-14.1.0/gcc/ada/libgnat/a-stbuut.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stbuut.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbuut.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stbuut.ads gcc-14.1.0/gcc/ada/libgnat/a-stbuut.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stbuut.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stbuut.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stmaco.ads gcc-14.1.0/gcc/ada/libgnat/a-stmaco.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stmaco.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stmaco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-storio.adb gcc-14.1.0/gcc/ada/libgnat/a-storio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-storio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-storio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strbou.adb gcc-14.1.0/gcc/ada/libgnat/a-strbou.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-strbou.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strbou.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strbou.ads gcc-14.1.0/gcc/ada/libgnat/a-strbou.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-strbou.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strbou.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** with Ada.Strings.Maps; use type Ada.Stri
*** 47,55 ****
  with Ada.Strings.Superbounded;
  with Ada.Strings.Search;
  
! package Ada.Strings.Bounded with SPARK_Mode is
     pragma Preelaborate;
-    pragma Annotate (GNATprove, Always_Return, Bounded);
  
     generic
        Max : Positive;
--- 47,57 ----
  with Ada.Strings.Superbounded;
  with Ada.Strings.Search;
  
! package Ada.Strings.Bounded with
!   SPARK_Mode,
!   Always_Terminates
! is
     pragma Preelaborate;
  
     generic
        Max : Positive;
*************** package Ada.Strings.Bounded with SPARK_M
*** 57,63 ****
  
     package Generic_Bounded_Length with SPARK_Mode,
       Initial_Condition => Length (Null_Bounded_String) = 0,
!      Abstract_State    => null
     is
        --  Preconditions in this unit are meant for analysis only, not for
        --  run-time checking, so that the expected exceptions are raised. This
--- 59,66 ----
  
     package Generic_Bounded_Length with SPARK_Mode,
       Initial_Condition => Length (Null_Bounded_String) = 0,
!      Abstract_State    => null,
!      Always_Terminates
     is
        --  Preconditions in this unit are meant for analysis only, not for
        --  run-time checking, so that the expected exceptions are raised. This
*************** package Ada.Strings.Bounded with SPARK_M
*** 69,75 ****
                                 Post           => Ignore,
                                 Contract_Cases => Ignore,
                                 Ghost          => Ignore);
-       pragma Annotate (GNATprove, Always_Return, Generic_Bounded_Length);
  
        Max_Length : constant Positive := Max;
  
--- 72,77 ----
*************** package Ada.Strings.Bounded with SPARK_M
*** 1341,1346 ****
--- 1343,1351 ----
              (for all K in 1 .. Length (Source) =>
                 Element (Translate'Result, K) = Mapping (Element (Source, K))),
          Global => null;
+       pragma Annotate (GNATprove, False_Positive,
+                        "call via access-to-subprogram",
+                        "function Mapping must always terminate");
  
        procedure Translate
          (Source  : in out Bounded_String;
*************** package Ada.Strings.Bounded with SPARK_M
*** 1352,1357 ****
--- 1357,1365 ----
              (for all K in 1 .. Length (Source) =>
                 Element (Source, K) = Mapping (Element (Source'Old, K))),
          Global => null;
+       pragma Annotate (GNATprove, False_Positive,
+                        "call via access-to-subprogram",
+                        "function Mapping must always terminate");
  
        ---------------------------------------
        -- String Transformation Subprograms --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stream.adb gcc-14.1.0/gcc/ada/libgnat/a-stream.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stream.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stream.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2013-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2013-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stream.ads gcc-14.1.0/gcc/ada/libgnat/a-stream.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stream.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stream.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strfix.adb gcc-14.1.0/gcc/ada/libgnat/a-strfix.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-strfix.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strfix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Strings.Fixed with SPAR
*** 773,784 ****
--- 773,790 ----
        do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Mapping.all (Source (J));
+             pragma Annotate (GNATprove, False_Positive,
+                              "call via access-to-subprogram",
+                              "function Mapping must always terminate");
              pragma Loop_Invariant
                (for all K in Source'First .. J =>
                   Result (K - (Source'First - 1))'Initialized);
              pragma Loop_Invariant
                (for all K in Source'First .. J =>
                   Result (K - (Source'First - 1)) = Mapping (Source (K)));
+             pragma Annotate (GNATprove, False_Positive,
+                              "call via access-to-subprogram",
+                              "function Mapping must always terminate");
           end loop;
        end return;
     end Translate;
*************** package body Ada.Strings.Fixed with SPAR
*** 791,799 ****
--- 797,811 ----
     begin
        for J in Source'Range loop
           Source (J) := Mapping.all (Source (J));
+          pragma Annotate (GNATprove, False_Positive,
+                           "call via access-to-subprogram",
+                           "function Mapping must always terminate");
           pragma Loop_Invariant
             (for all K in Source'First .. J =>
                Source (K) = Mapping (Source'Loop_Entry (K)));
+          pragma Annotate (GNATprove, False_Positive,
+                           "call via access-to-subprogram",
+                           "function Mapping must always terminate");
        end loop;
     end Translate;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strfix.ads gcc-14.1.0/gcc/ada/libgnat/a-strfix.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-strfix.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strfix.ads	Tue May  7 06:51:37 2024
*************** pragma Assertion_Policy (Pre
*** 46,52 ****
  with Ada.Strings.Maps; use type Ada.Strings.Maps.Character_Mapping_Function;
  with Ada.Strings.Search;
  
! package Ada.Strings.Fixed with SPARK_Mode is
     pragma Preelaborate;
  
     --------------------------------------------------------------
--- 46,55 ----
  with Ada.Strings.Maps; use type Ada.Strings.Maps.Character_Mapping_Function;
  with Ada.Strings.Search;
  
! package Ada.Strings.Fixed with
!   SPARK_Mode,
!   Always_Terminates
! is
     pragma Preelaborate;
  
     --------------------------------------------------------------
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 60,70 ****
        Justify : Alignment  := Left;
        Pad     : Character  := Space)
     with
! 
!      --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  The Move procedure copies characters from Source to Target. If Source
     --  has the same length as Target, then the effect is to assign Source to
     --  Target. If Source is shorter than Target then:
--- 63,71 ----
        Justify : Alignment  := Left;
        Pad     : Character  := Space)
     with
!      Global            => null,
!      Exceptional_Cases =>
!        (Length_Error => Target'Length'Old < Source'Length and Drop = Error);
     --  The Move procedure copies characters from Source to Target. If Source
     --  has the same length as Target, then the effect is to assign Source to
     --  Target. If Source is shorter than Target then:
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 169,176 ****
          others
          =>
            Index'Result = 0),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     pragma Ada_05 (Index);
  
     function Index
--- 170,176 ----
          others
          =>
            Index'Result = 0),
!      Global         => null;
     pragma Ada_05 (Index);
  
     function Index
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 233,240 ****
          others
          =>
            Index'Result = 0),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     pragma Ada_05 (Index);
  
     --  Each Index function searches, starting from From, for a slice of
--- 233,239 ----
          others
          =>
            Index'Result = 0),
!      Global         => null;
     pragma Ada_05 (Index);
  
     --  Each Index function searches, starting from From, for a slice of
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 303,310 ****
          others
          =>
            Index'Result = 0),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
  
     function Index
       (Source  : String;
--- 302,308 ----
          others
          =>
            Index'Result = 0),
!      Global         => null;
  
     function Index
       (Source  : String;
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 359,366 ****
          others
          =>
            Index'Result = 0),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
  
     --  If Going = Forward, returns:
     --
--- 357,363 ----
          others
          =>
            Index'Result = 0),
!      Global         => null;
  
     --  If Going = Forward, returns:
     --
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 413,420 ****
                         and then (J < Index'Result) = (Going = Forward)
                    then (Test = Inside)
                         /= Ada.Strings.Maps.Is_In (Source (J), Set)))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
  
     function Index
       (Source  : String;
--- 410,416 ----
                         and then (J < Index'Result) = (Going = Forward)
                    then (Test = Inside)
                         /= Ada.Strings.Maps.Is_In (Source (J), Set)))),
!      Global         => null;
  
     function Index
       (Source  : String;
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 470,477 ****
                                  or else (J > From) = (Going = Forward))
                    then (Test = Inside)
                         /= Ada.Strings.Maps.Is_In (Source (J), Set)))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     pragma Ada_05 (Index);
     --  Index searches for the first or last occurrence of any of a set of
     --  characters (when Test=Inside), or any of the complement of a set of
--- 466,472 ----
                                  or else (J > From) = (Going = Forward))
                    then (Test = Inside)
                         /= Ada.Strings.Maps.Is_In (Source (J), Set)))),
!      Global         => null;
     pragma Ada_05 (Index);
     --  Index searches for the first or last occurrence of any of a set of
     --  characters (when Test=Inside), or any of the complement of a set of
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 531,538 ****
                         and then (J = From or else (J > From)
                                  = (Going = Forward))
                    then Source (J) = ' '))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     pragma Ada_05 (Index_Non_Blank);
     --  Returns Index (Source, Maps.To_Set(Space), From, Outside, Going)
  
--- 526,532 ----
                         and then (J = From or else (J > From)
                                  = (Going = Forward))
                    then Source (J) = ' '))),
!      Global         => null;
     pragma Ada_05 (Index_Non_Blank);
     --  Returns Index (Source, Maps.To_Set(Space), From, Outside, Going)
  
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 570,577 ****
                         and then (J < Index_Non_Blank'Result)
                                = (Going = Forward)
                    then Source (J) = ' '))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     --  Returns Index (Source, Maps.To_Set(Space), Outside, Going)
  
     function Count
--- 564,570 ----
                         and then (J < Index_Non_Blank'Result)
                                = (Going = Forward)
                    then Source (J) = ' '))),
!      Global         => null;
     --  Returns Index (Source, Maps.To_Set(Space), Outside, Going)
  
     function Count
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 579,596 ****
        Pattern : String;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre      => Pattern'Length /= 0,
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
  
     function Count
       (Source  : String;
        Pattern : String;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre      => Pattern'Length /= 0 and then Mapping /= null,
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
  
     --  Returns the maximum number of nonoverlapping slices of Source that match
     --  Pattern with respect to Mapping. If Pattern is the null string then
--- 572,587 ----
        Pattern : String;
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     with
!      Pre    => Pattern'Length /= 0,
!      Global => null;
  
     function Count
       (Source  : String;
        Pattern : String;
        Mapping : Maps.Character_Mapping_Function) return Natural
     with
!      Pre    => Pattern'Length /= 0 and then Mapping /= null,
!      Global => null;
  
     --  Returns the maximum number of nonoverlapping slices of Source that match
     --  Pattern with respect to Mapping. If Pattern is the null string then
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 600,607 ****
       (Source : String;
        Set    : Maps.Character_Set) return Natural
     with
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
     --  Returns the number of occurrences in Source of characters that are in
     --  Set.
  
--- 591,597 ----
       (Source : String;
        Set    : Maps.Character_Set) return Natural
     with
!      Global => null;
     --  Returns the number of occurrences in Source of characters that are in
     --  Set.
  
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 659,666 ****
                 then
                   (Test = Inside)
                   /= Ada.Strings.Maps.Is_In (Source (Last + 1), Set))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     pragma Ada_2012 (Find_Token);
     --  If Source is not the null string and From is not in Source'Range, then
     --  Index_Error is raised. Otherwise, First is set to the index of the first
--- 649,655 ----
                 then
                   (Test = Inside)
                   /= Ada.Strings.Maps.Is_In (Source (Last + 1), Set))),
!      Global         => null;
     pragma Ada_2012 (Find_Token);
     --  If Source is not the null string and From is not in Source'Range, then
     --  Index_Error is raised. Otherwise, First is set to the index of the first
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 722,729 ****
                 then
                   (Test = Inside)
                   /= Ada.Strings.Maps.Is_In (Source (Last + 1), Set))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     --  Equivalent to Find_Token (Source, Set, Source'First, Test, First, Last)
  
     ------------------------------------
--- 711,717 ----
                 then
                   (Test = Inside)
                   /= Ada.Strings.Maps.Is_In (Source (Last + 1), Set))),
!      Global         => null;
     --  Equivalent to Find_Token (Source, Set, Source'First, Test, First, Last)
  
     ------------------------------------
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 752,759 ****
             (for all J in Source'Range =>
                Translate'Result (J - Source'First + 1)
                = Mapping (Source (J))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
  
     function Translate
       (Source  : String;
--- 740,749 ----
             (for all J in Source'Range =>
                Translate'Result (J - Source'First + 1)
                = Mapping (Source (J))),
!      Global => null;
!    pragma Annotate (GNATprove, False_Positive,
!                     "call via access-to-subprogram",
!                     "function Mapping must always terminate");
  
     function Translate
       (Source  : String;
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 776,783 ****
             (for all J in Source'Range =>
                Translate'Result (J - Source'First + 1)
                = Ada.Strings.Maps.Value (Mapping, Source (J))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
  
     --  Returns the string S whose length is Source'Length and such that S (I)
     --  is the character to which Mapping maps the corresponding element of
--- 766,772 ----
             (for all J in Source'Range =>
                Translate'Result (J - Source'First + 1)
                = Ada.Strings.Maps.Value (Mapping, Source (J))),
!      Global => null;
  
     --  Returns the string S whose length is Source'Length and such that S (I)
     --  is the character to which Mapping maps the corresponding element of
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 787,815 ****
       (Source  : in out String;
        Mapping : Maps.Character_Mapping_Function)
     with
!      Pre      => Mapping /= null,
!      Post     =>
  
         --  Each character in Source after the call is the translation of the
         --  character at the same position before the call, through Mapping.
  
         (for all J in Source'Range => Source (J) = Mapping (Source'Old (J))),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
  
     procedure Translate
       (Source  : in out String;
        Mapping : Maps.Character_Mapping)
     with
!      Post     =>
  
         --  Each character in Source after the call is the translation of the
         --  character at the same position before the call, through Mapping.
  
         (for all J in Source'Range =>
            Source (J) = Ada.Strings.Maps.Value (Mapping, Source'Old (J))),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
  
     --  Equivalent to Source := Translate(Source, Mapping)
  
--- 776,805 ----
       (Source  : in out String;
        Mapping : Maps.Character_Mapping_Function)
     with
!      Pre    => Mapping /= null,
!      Post   =>
  
         --  Each character in Source after the call is the translation of the
         --  character at the same position before the call, through Mapping.
  
         (for all J in Source'Range => Source (J) = Mapping (Source'Old (J))),
!      Global => null;
!    pragma Annotate (GNATprove, False_Positive,
!                     "call via access-to-subprogram",
!                     "function Mapping must always terminate");
  
     procedure Translate
       (Source  : in out String;
        Mapping : Maps.Character_Mapping)
     with
!      Post   =>
  
         --  Each character in Source after the call is the translation of the
         --  character at the same position before the call, through Mapping.
  
         (for all J in Source'Range =>
            Source (J) = Ada.Strings.Maps.Value (Mapping, Source'Old (J))),
!      Global => null;
  
     --  Equivalent to Source := Translate(Source, Mapping)
  
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 902,909 ****
                    (Low - Source'First + By'Length + 1
                     .. Replace_Slice'Result'Last)
                  = Source (Low .. Source'Last))),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     --  If Low > Source'Last + 1, or High < Source'First - 1, then Index_Error
     --  is propagated. Otherwise:
     --
--- 892,898 ----
                    (Low - Source'First + By'Length + 1
                     .. Replace_Slice'Result'Last)
                  = Source (Low .. Source'Last))),
!      Global         => null;
     --  If Low > Source'Last + 1, or High < Source'First - 1, then Index_Error
     --  is propagated. Otherwise:
     --
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 923,929 ****
        Justify : Alignment  := Left;
        Pad     : Character  := Space)
     with
!      Pre      =>
         Low - 1 <= Source'Last
           and then High >= Source'First - 1
           and then (if High >= Low
--- 912,918 ----
        Justify : Alignment  := Left;
        Pad     : Character  := Space)
     with
!      Pre               =>
         Low - 1 <= Source'Last
           and then High >= Source'First - 1
           and then (if High >= Low
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 932,942 ****
                             - By'Length
                             - Natural'Max (Source'Last - High, 0)
                     else Source'Length <= Natural'Last - By'Length),
! 
!    --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  Equivalent to:
     --
     --    Move (Replace_Slice (Source, Low, High, By),
--- 921,928 ----
                             - By'Length
                             - Natural'Max (Source'Last - High, 0)
                     else Source'Length <= Natural'Last - By'Length),
!      Global            => null,
!      Exceptional_Cases => (Length_Error => Drop = Error);
     --  Equivalent to:
     --
     --    Move (Replace_Slice (Source, Low, High, By),
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 982,989 ****
                  (Before - Source'First + New_Item'Length + 1
                   .. Insert'Result'Last)
                = Source (Before .. Source'Last)),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     --  Propagates Index_Error if Before is not in
     --  Source'First .. Source'Last + 1; otherwise, returns
     --  Source (Source'First .. Before - 1)
--- 968,974 ----
                  (Before - Source'First + New_Item'Length + 1
                   .. Insert'Result'Last)
                = Source (Before .. Source'Last)),
!      Global         => null;
     --  Propagates Index_Error if Before is not in
     --  Source'First .. Source'Last + 1; otherwise, returns
     --  Source (Source'First .. Before - 1)
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 995,1008 ****
        New_Item : String;
        Drop     : Truncation := Error)
     with
!      Pre      =>
         Before - 1 in Source'First - 1 .. Source'Last
           and then Source'Length <= Natural'Last - New_Item'Length,
! 
!      --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  Equivalent to Move (Insert (Source, Before, New_Item), Source, Drop)
  
     function Overwrite
--- 980,990 ----
        New_Item : String;
        Drop     : Truncation := Error)
     with
!      Pre               =>
         Before - 1 in Source'First - 1 .. Source'Last
           and then Source'Length <= Natural'Last - New_Item'Length,
!      Global            => null,
!      Exceptional_Cases => (Length_Error => Drop = Error);
     --  Equivalent to Move (Insert (Source, Before, New_Item), Source, Drop)
  
     function Overwrite
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1051,1058 ****
                  (Position - Source'First + New_Item'Length + 1
                   .. Overwrite'Result'Last)
                = Source (Position + New_Item'Length .. Source'Last)),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
     --  Propagates Index_Error if Position is not in
     --  Source'First .. Source'Last + 1; otherwise, returns the string obtained
     --  from Source by consecutively replacing characters starting at Position
--- 1033,1039 ----
                  (Position - Source'First + New_Item'Length + 1
                   .. Overwrite'Result'Last)
                = Source (Position + New_Item'Length .. Source'Last)),
!      Global   => null;
     --  Propagates Index_Error if Position is not in
     --  Source'First .. Source'Last + 1; otherwise, returns the string obtained
     --  from Source by consecutively replacing characters starting at Position
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1066,1081 ****
        New_Item : String;
        Drop     : Truncation := Right)
     with
!      Pre      =>
         Position - 1 in Source'First - 1 .. Source'Last
           and then
             (if Position - Source'First >= Source'Length - New_Item'Length
              then Position - Source'First <= Natural'Last - New_Item'Length),
! 
!      --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  Equivalent to Move(Overwrite(Source, Position, New_Item), Source, Drop)
  
     function Delete
--- 1047,1059 ----
        New_Item : String;
        Drop     : Truncation := Right)
     with
!      Pre               =>
         Position - 1 in Source'First - 1 .. Source'Last
           and then
             (if Position - Source'First >= Source'Length - New_Item'Length
              then Position - Source'First <= Natural'Last - New_Item'Length),
!      Global            => null,
!      Exceptional_Cases => (Length_Error => Drop = Error);
     --  Equivalent to Move(Overwrite(Source, Position, New_Item), Source, Drop)
  
     function Delete
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1123,1130 ****
          others          =>
            Delete'Result'Length = Source'Length
              and then Delete'Result = Source),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     --  If From <= Through, the returned string is
     --  Replace_Slice(Source, From, Through, ""); otherwise, it is Source with
     --  lower bound 1.
--- 1101,1107 ----
          others          =>
            Delete'Result'Length = Source'Length
              and then Delete'Result = Source),
!      Global         => null;
     --  If From <= Through, the returned string is
     --  Replace_Slice(Source, From, Through, ""); otherwise, it is Source with
     --  lower bound 1.
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1136,1149 ****
        Justify : Alignment := Left;
        Pad     : Character := Space)
     with
!      Pre      => (if From <= Through
                    then (From in Source'Range
                            and then Through <= Source'Last)),
! 
!      --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  Equivalent to:
     --
     --     Move (Delete (Source, From, Through),
--- 1113,1122 ----
        Justify : Alignment := Left;
        Pad     : Character := Space)
     with
!      Pre    => (if From <= Through
                    then (From in Source'Range
                            and then Through <= Source'Last)),
!      Global => null;
     --  Equivalent to:
     --
     --     Move (Delete (Source, From, Through),
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1157,1163 ****
       (Source : String;
        Side   : Trim_End) return String
     with
!      Post     =>
  
         --  Lower bound of the returned string is 1
  
--- 1130,1136 ----
       (Source : String;
        Side   : Trim_End) return String
     with
!      Post   =>
  
         --  Lower bound of the returned string is 1
  
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1182,1189 ****
                      else Index_Non_Blank (Source, Backward));
                 begin
                   Trim'Result = Source (Low .. High))),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
     --  Returns the string obtained by removing from Source all leading Space
     --  characters (if Side = Left), all trailing Space characters (if
     --  Side = Right), or all leading and trailing Space characters (if
--- 1155,1161 ----
                      else Index_Non_Blank (Source, Backward));
                 begin
                   Trim'Result = Source (Low .. High))),
!      Global => null;
     --  Returns the string obtained by removing from Source all leading Space
     --  characters (if Side = Left), all trailing Space characters (if
     --  Side = Right), or all leading and trailing Space characters (if
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1195,1205 ****
        Justify : Alignment := Left;
        Pad     : Character := Space)
     with
! 
!      --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  Equivalent to:
     --
     --     Move (Trim (Source, Side), Source, Justify=>Justify, Pad=>Pad).
--- 1167,1173 ----
        Justify : Alignment := Left;
        Pad     : Character := Space)
     with
!      Global => null;
     --  Equivalent to:
     --
     --     Move (Trim (Source, Side), Source, Justify=>Justify, Pad=>Pad).
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1236,1243 ****
                  Index (Source, Right, Outside, Backward);
              begin
                Trim'Result = Source (Low .. High))),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
     --  Returns the string obtained by removing from Source all leading
     --  characters in Left and all trailing characters in Right.
  
--- 1204,1210 ----
                  Index (Source, Right, Outside, Backward);
              begin
                Trim'Result = Source (Low .. High))),
!      Global => null;
     --  Returns the string obtained by removing from Source all leading
     --  characters in Left and all trailing characters in Right.
  
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1248,1258 ****
        Justify : Alignment := Strings.Left;
        Pad     : Character := Space)
     with
! 
!      --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  Equivalent to:
     --
     --     Move (Trim (Source, Left, Right),
--- 1215,1221 ----
        Justify : Alignment := Strings.Left;
        Pad     : Character := Space)
     with
!      Global => null;
     --  Equivalent to:
     --
     --     Move (Trim (Source, Left, Right),
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1289,1296 ****
              and then
                Head'Result (Source'Length + 1 .. Count)
                = [1 .. Count - Source'Length => Pad]),
!      Global         => null,
!      Annotate       => (GNATprove, Always_Return);
     --  Returns a string of length Count. If Count <= Source'Length, the string
     --  comprises the first Count characters of Source. Otherwise, its contents
     --  are Source concatenated with Count - Source'Length Pad characters.
--- 1252,1258 ----
              and then
                Head'Result (Source'Length + 1 .. Count)
                = [1 .. Count - Source'Length => Pad]),
!      Global         => null;
     --  Returns a string of length Count. If Count <= Source'Length, the string
     --  comprises the first Count characters of Source. Otherwise, its contents
     --  are Source concatenated with Count - Source'Length Pad characters.
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1301,1311 ****
        Justify : Alignment := Left;
        Pad     : Character := Space)
     with
! 
!      --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  Equivalent to:
     --
     --     Move (Head (Source, Count, Pad),
--- 1263,1270 ----
        Justify : Alignment := Left;
        Pad     : Character := Space)
     with
!      Global            => null,
!      Exceptional_Cases => (Length_Error => Count > Source'Length'Old);
     --  Equivalent to:
     --
     --     Move (Head (Source, Count, Pad),
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1354,1361 ****
                 and then
                   Tail'Result (Count - Source'Length + 1 .. Tail'Result'Last)
                   = Source)),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
     --  Returns a string of length Count. If Count <= Source'Length, the string
     --  comprises the last Count characters of Source. Otherwise, its contents
     --  are Count-Source'Length Pad characters concatenated with Source.
--- 1313,1319 ----
                 and then
                   Tail'Result (Count - Source'Length + 1 .. Tail'Result'Last)
                   = Source)),
!      Global         => null;
     --  Returns a string of length Count. If Count <= Source'Length, the string
     --  comprises the last Count characters of Source. Otherwise, its contents
     --  are Count-Source'Length Pad characters concatenated with Source.
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1366,1376 ****
        Justify : Alignment := Left;
        Pad     : Character := Space)
     with
! 
!      --  Incomplete contract
! 
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
     --  Equivalent to:
     --
     --     Move (Tail (Source, Count, Pad),
--- 1324,1331 ----
        Justify : Alignment := Left;
        Pad     : Character := Space)
     with
!      Global            => null,
!      Exceptional_Cases => (Length_Error => Count > Source'Length'Old);
     --  Equivalent to:
     --
     --     Move (Tail (Source, Count, Pad),
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1384,1390 ****
       (Left  : Natural;
        Right : Character) return String
     with
!      Post     =>
  
         --  Lower bound of the returned string is 1
  
--- 1339,1345 ----
       (Left  : Natural;
        Right : Character) return String
     with
!      Post   =>
  
         --  Lower bound of the returned string is 1
  
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1397,1404 ****
           --  All characters of the returned string are Right
  
           and then (for all C of "*"'Result => C = Right),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
  
     function "*"
       (Left  : Natural;
--- 1352,1358 ----
           --  All characters of the returned string are Right
  
           and then (for all C of "*"'Result => C = Right),
!      Global => null;
  
     function "*"
       (Left  : Natural;
*************** package Ada.Strings.Fixed with SPARK_Mod
*** 1421,1428 ****
           and then
             (for all K in "*"'Result'Range =>
                "*"'Result (K) = Right (Right'First + (K - 1) mod Right'Length)),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
  
     --  These functions replicate a character or string a specified number of
     --  times. The first function returns a string whose length is Left and each
--- 1375,1381 ----
           and then
             (for all K in "*"'Result'Range =>
                "*"'Result (K) = Right (Right'First + (K - 1) mod Right'Length)),
!      Global => null;
  
     --  These functions replicate a character or string a specified number of
     --  times. The first function returns a string whose length is Left and each
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strhas.adb gcc-14.1.0/gcc/ada/libgnat/a-strhas.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-strhas.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strhas.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strmap.adb gcc-14.1.0/gcc/ada/libgnat/a-strmap.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-strmap.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strmap.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 545,551 ****
                   Result (Char) =
                     ((for some Prev in Ranges'First .. R - 1 =>
                         Char in Ranges (Prev).Low .. Ranges (Prev).High)
!                     or else (Char in Ranges (R).Low .. C)));
           end loop;
  
           pragma Loop_Invariant
--- 545,551 ----
                   Result (Char) =
                     ((for some Prev in Ranges'First .. R - 1 =>
                         Char in Ranges (Prev).Low .. Ranges (Prev).High)
!                     or else Char in Ranges (R).Low .. C));
           end loop;
  
           pragma Loop_Invariant
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strmap.ads gcc-14.1.0/gcc/ada/libgnat/a-strmap.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-strmap.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strmap.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** pragma Assertion_Policy (Pre   => Ignore
*** 48,61 ****
  
  with Ada.Characters.Latin_1;
  
! package Ada.Strings.Maps
!   with SPARK_Mode
  is
     pragma Pure;
     --  In accordance with Ada 2005 AI-362
  
-    pragma Annotate (GNATprove, Always_Return, Maps);
- 
     --------------------------------
     -- Character Set Declarations --
     --------------------------------
--- 48,60 ----
  
  with Ada.Characters.Latin_1;
  
! package Ada.Strings.Maps with
!   SPARK_Mode,
!   Always_Terminates
  is
     pragma Pure;
     --  In accordance with Ada 2005 AI-362
  
     --------------------------------
     -- Character Set Declarations --
     --------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strsea.adb gcc-14.1.0/gcc/ada/libgnat/a-strsea.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-strsea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strsea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Strings.Search with SPA
*** 185,190 ****
--- 185,193 ----
           Ind := Ind + 1;
           for K in Pattern'Range loop
              if Pattern (K) /= Mapping (Source (Ind + (K - Pattern'First))) then
+                pragma Annotate (GNATprove, False_Positive,
+                                 "call via access-to-subprogram",
+                                 "function Mapping must always terminate");
                 pragma Assert (not (Match (Source, Pattern, Mapping, Ind)));
                 goto Cont;
              end if;
*************** package body Ada.Strings.Search with SPA
*** 192,197 ****
--- 195,203 ----
              pragma Loop_Invariant
                (for all J in Pattern'First .. K =>
                   Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
+             pragma Annotate (GNATprove, False_Positive,
+                              "call via access-to-subprogram",
+                              "function Mapping must always terminate");
           end loop;
  
           pragma Assert (Match (Source, Pattern, Mapping, Ind));
*************** package body Ada.Strings.Search with SPA
*** 489,500 ****
--- 495,512 ----
                 if Pattern (K) /= Mapping.all
                   (Source (Ind + (K - Pattern'First)))
                 then
+                   pragma Annotate (GNATprove, False_Positive,
+                                    "call via access-to-subprogram",
+                                    "function Mapping must always terminate");
                    goto Cont1;
                 end if;
  
                 pragma Loop_Invariant
                   (for all J in Pattern'First .. K =>
                     Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
+                pragma Annotate (GNATprove, False_Positive,
+                                 "call via access-to-subprogram",
+                                 "function Mapping must always terminate");
              end loop;
  
              pragma Assert (Match (Source, Pattern, Mapping, Ind));
*************** package body Ada.Strings.Search with SPA
*** 515,533 ****
                 if Pattern (K) /= Mapping.all
                   (Source (Ind + (K - Pattern'First)))
                 then
                    goto Cont2;
                 end if;
  
                 pragma Loop_Invariant
                   (for all J in Pattern'First .. K =>
                     Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
              end loop;
  
              return Ind;
  
              <<Cont2>>
              pragma Loop_Invariant
!               (for all J in Ind .. (Source'Last - PL1) =>
                  not (Match (Source, Pattern, Mapping, J)));
              null;
           end loop;
--- 527,551 ----
                 if Pattern (K) /= Mapping.all
                   (Source (Ind + (K - Pattern'First)))
                 then
+                   pragma Annotate (GNATprove, False_Positive,
+                                    "call via access-to-subprogram",
+                                    "function Mapping must always terminate");
                    goto Cont2;
                 end if;
  
                 pragma Loop_Invariant
                   (for all J in Pattern'First .. K =>
                     Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
+                pragma Annotate (GNATprove, False_Positive,
+                                 "call via access-to-subprogram",
+                                 "function Mapping must always terminate");
              end loop;
  
              return Ind;
  
              <<Cont2>>
              pragma Loop_Invariant
!               (for all J in Ind .. Source'Last - PL1 =>
                  not (Match (Source, Pattern, Mapping, J)));
              null;
           end loop;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strsea.ads gcc-14.1.0/gcc/ada/libgnat/a-strsea.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-strsea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strsea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 50,58 ****
  
  with Ada.Strings.Maps; use type Ada.Strings.Maps.Character_Mapping_Function;
  
! package Ada.Strings.Search with SPARK_Mode is
     pragma Preelaborate;
-    pragma Annotate (GNATprove, Always_Return, Search);
  
     --  The ghost function Match tells whether the slice of Source starting at
     --  From and of length Pattern'Length matches with Pattern with respect to
--- 50,60 ----
  
  with Ada.Strings.Maps; use type Ada.Strings.Maps.Character_Mapping_Function;
  
! package Ada.Strings.Search with
!   SPARK_Mode,
!   Always_Terminates
! is
     pragma Preelaborate;
  
     --  The ghost function Match tells whether the slice of Source starting at
     --  From and of length Pattern'Length matches with Pattern with respect to
*************** package Ada.Strings.Search with SPARK_Mo
*** 74,79 ****
--- 76,84 ----
         and then Source'Length > 0
         and then From in Source'First .. Source'Last - (Pattern'Length - 1),
       Global => null;
+    pragma Annotate (GNATprove, False_Positive,
+                     "call via access-to-subprogram",
+                     "function Mapping must always terminate");
  
     function Match
       (Source  : String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strsto.ads gcc-14.1.0/gcc/ada/libgnat/a-strsto.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-strsto.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strsto.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strsup.adb gcc-14.1.0/gcc/ada/libgnat/a-strsup.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-strsup.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strsup.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,40 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Ghost code, loop invariants and assertions in this unit are meant for
  --  analysis only, not for run-time checking, as it would be too costly
  --  otherwise. This is enforced by setting the assertion policy to Ignore.
  
  pragma Assertion_Policy (Ghost          => Ignore,
                           Loop_Invariant => Ignore,
                           Assert         => Ignore);
  
  with Ada.Strings.Maps; use Ada.Strings.Maps;
--- 29,41 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Ghost code, loop (in)variants and assertions in this unit are meant for
  --  analysis only, not for run-time checking, as it would be too costly
  --  otherwise. This is enforced by setting the assertion policy to Ignore.
  
  pragma Assertion_Policy (Ghost          => Ignore,
                           Loop_Invariant => Ignore,
+                          Loop_Variant   => Ignore,
                           Assert         => Ignore);
  
  with Ada.Strings.Maps; use Ada.Strings.Maps;
*************** package body Ada.Strings.Superbounded wi
*** 1570,1575 ****
--- 1571,1577 ----
                      (for all K in 1 .. Indx =>
                         Result.Data (K) =
                           Item (Item'First + (K - 1) mod Ilen));
+                   pragma Loop_Variant (Increases => Indx);
                 end loop;
  
                 Result.Data (Indx + 1 .. Max_Length) := Super_String_Data
*************** package body Ada.Strings.Superbounded wi
*** 1609,1614 ****
--- 1611,1617 ----
                      (for all K in Indx + 1 .. Max_Length =>
                         Result.Data (K) =
                           Item (Item'Last - (Max_Length - K) mod Ilen));
+                   pragma Loop_Variant (Decreases => Indx);
                 end loop;
  
                 Result.Data (1 .. Indx) :=
*************** package body Ada.Strings.Superbounded wi
*** 1654,1659 ****
--- 1657,1663 ----
        Low    : Positive;
        High   : Natural) return Super_String
     is
+       Len : constant Natural := (if Low > High then 0 else High - Low + 1);
     begin
        return Result : Super_String (Source.Max_Length) do
           if Low - 1 > Source.Current_Length
*************** package body Ada.Strings.Superbounded wi
*** 1662,1670 ****
              raise Index_Error;
           end if;
  
!          Result.Current_Length := (if Low > High then 0 else High - Low + 1);
!          Result.Data (1 .. Result.Current_Length) :=
!            Source.Data (Low .. High);
        end return;
     end Super_Slice;
  
--- 1666,1673 ----
              raise Index_Error;
           end if;
  
!          Result.Data (1 .. Len) := Source.Data (Low .. High);
!          Result.Current_Length := Len;
        end return;
     end Super_Slice;
  
*************** package body Ada.Strings.Superbounded wi
*** 1674,1679 ****
--- 1677,1683 ----
        Low    : Positive;
        High   : Natural)
     is
+       Len : constant Natural := (if Low > High then 0 else High - Low + 1);
     begin
        if Low - 1 > Source.Current_Length
          or else High > Source.Current_Length
*************** package body Ada.Strings.Superbounded wi
*** 1681,1688 ****
           raise Index_Error;
        end if;
  
!       Target.Current_Length := (if Low > High then 0 else High - Low + 1);
!       Target.Data (1 .. Target.Current_Length) := Source.Data (Low .. High);
     end Super_Slice;
  
     ----------------
--- 1685,1692 ----
           raise Index_Error;
        end if;
  
!       Target.Data (1 .. Len) := Source.Data (Low .. High);
!       Target.Current_Length := Len;
     end Super_Slice;
  
     ----------------
*************** package body Ada.Strings.Superbounded wi
*** 1784,1789 ****
--- 1788,1799 ----
                    Source.Data (1 .. Npad) := [others => Pad];
                    Source.Data (Npad + 1 .. Max_Length) :=
                      Temp (1 .. Max_Length - Npad);
+ 
+                   pragma Assert
+                     (Source.Data (1 .. Npad) = [1 .. Npad => Pad]);
+                   pragma Assert
+                     (Source.Data (Npad + 1 .. Max_Length)
+                      = Temp (1 .. Max_Length - Npad));
                 end if;
  
              when Strings.Left =>
*************** package body Ada.Strings.Superbounded wi
*** 1844,1853 ****
--- 1854,1869 ----
     begin
        for J in 1 .. Source.Current_Length loop
           Result.Data (J) := Mapping.all (Source.Data (J));
+          pragma Annotate (GNATprove, False_Positive,
+                           "call via access-to-subprogram",
+                           "function Mapping must always terminate");
           pragma Loop_Invariant (Result.Data (1 .. J)'Initialized);
           pragma Loop_Invariant
             (for all K in 1 .. J =>
                Result.Data (K) = Mapping (Source.Data (K)));
+          pragma Annotate (GNATprove, False_Positive,
+                           "call via access-to-subprogram",
+                           "function Mapping must always terminate");
        end loop;
  
        Result.Current_Length := Source.Current_Length;
*************** package body Ada.Strings.Superbounded wi
*** 1861,1869 ****
--- 1877,1891 ----
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Mapping.all (Source.Data (J));
+          pragma Annotate (GNATprove, False_Positive,
+                           "call via access-to-subprogram",
+                           "function Mapping must always terminate");
           pragma Loop_Invariant
             (for all K in 1 .. J =>
                Source.Data (K) = Mapping (Source'Loop_Entry.Data (K)));
+          pragma Annotate (GNATprove, False_Positive,
+                           "call via access-to-subprogram",
+                           "function Mapping must always terminate");
        end loop;
     end Super_Translate;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strsup.ads gcc-14.1.0/gcc/ada/libgnat/a-strsup.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-strsup.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strsup.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Strings.Maps; use type Ada.Stri
*** 51,57 ****
  with Ada.Strings.Search;
  with Ada.Strings.Text_Buffers;
  
! package Ada.Strings.Superbounded with SPARK_Mode is
     pragma Preelaborate;
  
     --  Type Bounded_String in Ada.Strings.Bounded.Generic_Bounded_Length is
--- 51,60 ----
  with Ada.Strings.Search;
  with Ada.Strings.Text_Buffers;
  
! package Ada.Strings.Superbounded with
!   SPARK_Mode,
!   Always_Terminates
! is
     pragma Preelaborate;
  
     --  Type Bounded_String in Ada.Strings.Bounded.Generic_Bounded_Length is
*************** package Ada.Strings.Superbounded with SP
*** 68,74 ****
        --  Leaving it out is more efficient.
     end record
     with
!      Predicate =>
         Current_Length <= Max_Length
           and then Data (1 .. Current_Length)'Initialized,
       Put_Image => Put_Image;
--- 71,77 ----
        --  Leaving it out is more efficient.
     end record
     with
!      Ghost_Predicate =>
         Current_Length <= Max_Length
           and then Data (1 .. Current_Length)'Initialized,
       Put_Image => Put_Image;
*************** package Ada.Strings.Superbounded with SP
*** 1406,1411 ****
--- 1409,1417 ----
              Super_Element (Super_Translate'Result, K) =
                Mapping (Super_Element (Source, K))),
       Global => null;
+    pragma Annotate (GNATprove, False_Positive,
+                     "call via access-to-subprogram",
+                     "function Mapping must always terminate");
  
     procedure Super_Translate
       (Source  : in out Super_String;
*************** package Ada.Strings.Superbounded with SP
*** 1418,1423 ****
--- 1424,1432 ----
              Super_Element (Source, K) =
                Mapping (Super_Element (Source'Old, K))),
       Global => null;
+    pragma Annotate (GNATprove, False_Positive,
+                     "call via access-to-subprogram",
+                     "function Mapping must always terminate");
  
     ---------------------------------------
     -- String Transformation Subprograms --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strunb.adb gcc-14.1.0/gcc/ada/libgnat/a-strunb.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-strunb.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strunb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strunb.ads gcc-14.1.0/gcc/ada/libgnat/a-strunb.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-strunb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strunb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private with Ada.Strings.Text_Buffers;
*** 54,63 ****
  
  package Ada.Strings.Unbounded with
    SPARK_Mode,
!   Initial_Condition => Length (Null_Unbounded_String) = 0
  is
     pragma Preelaborate;
-    pragma Annotate (GNATprove, Always_Return, Unbounded);
  
     type Unbounded_String is private with
       Default_Initial_Condition => Length (Unbounded_String) = 0;
--- 54,63 ----
  
  package Ada.Strings.Unbounded with
    SPARK_Mode,
!   Initial_Condition => Length (Null_Unbounded_String) = 0,
!   Always_Terminates
  is
     pragma Preelaborate;
  
     type Unbounded_String is private with
       Default_Initial_Condition => Length (Unbounded_String) = 0;
*************** is
*** 86,106 ****
     function To_Unbounded_String
       (Source : String)  return Unbounded_String
     with
!      Post   => Length (To_Unbounded_String'Result) = Source'Length,
       Global => null;
     --  Returns an Unbounded_String that represents Source
  
     function To_Unbounded_String
       (Length : Natural) return Unbounded_String
     with
!      Post   =>
!        Ada.Strings.Unbounded.Length (To_Unbounded_String'Result) = Length,
!      Global => null;
     --  Returns an Unbounded_String that represents an uninitialized String
     --  whose length is Length.
  
     function To_String (Source : Unbounded_String) return String with
!      Post   => To_String'Result'Length = Length (Source),
       Global => null;
     --  Returns the String with lower bound 1 represented by Source
  
--- 86,107 ----
     function To_Unbounded_String
       (Source : String)  return Unbounded_String
     with
!      Post   => To_String (To_Unbounded_String'Result) = Source,
       Global => null;
     --  Returns an Unbounded_String that represents Source
  
     function To_Unbounded_String
       (Length : Natural) return Unbounded_String
     with
!      SPARK_Mode => Off,
!      Global     => null;
     --  Returns an Unbounded_String that represents an uninitialized String
     --  whose length is Length.
  
     function To_String (Source : Unbounded_String) return String with
!      Post   =>
!        To_String'Result'First = 1
!          and then To_String'Result'Length = Length (Source),
       Global => null;
     --  Returns the String with lower bound 1 represented by Source
  
*************** is
*** 115,120 ****
--- 116,122 ----
       (Target : out Unbounded_String;
        Source : String)
     with
+      Post   => To_String (Target) = Source,
       Global => null;
     pragma Ada_05 (Set_Unbounded_String);
     --  Sets Target to an Unbounded_String that represents Source
*************** is
*** 198,203 ****
--- 200,206 ----
        Index  : Positive) return Character
     with
       Pre    => Index <= Length (Source),
+      Post   => Element'Result = To_String (Source) (Index),
       Global => null;
     --  Returns the character at position Index in the string represented by
     --  Source; propagates Index_Error if Index > Length (Source).
*************** is
*** 259,276 ****
--- 262,282 ----
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "="'Result = (To_String (Left) = To_String (Right)),
       Global => null;
  
     function "="
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => "="'Result = (To_String (Left) = Right),
       Global => null;
  
     function "="
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "="'Result = (Left = To_String (Right)),
       Global => null;
  
     function "<"
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strunb__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-strunb__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-strunb__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strunb__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-strunb__shared.ads gcc-14.1.0/gcc/ada/libgnat/a-strunb__shared.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-strunb__shared.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-strunb__shared.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private with System.Atomic_Counters;
*** 83,92 ****
  private with Ada.Strings.Text_Buffers;
  
  package Ada.Strings.Unbounded with
!   Initial_Condition => Length (Null_Unbounded_String) = 0
  is
     pragma Preelaborate;
-    pragma Annotate (GNATprove, Always_Return, Unbounded);
  
     type Unbounded_String is private with
       Default_Initial_Condition => Length (Unbounded_String) = 0;
--- 83,92 ----
  private with Ada.Strings.Text_Buffers;
  
  package Ada.Strings.Unbounded with
!   Initial_Condition => Length (Null_Unbounded_String) = 0,
!   Always_Terminates
  is
     pragma Preelaborate;
  
     type Unbounded_String is private with
       Default_Initial_Condition => Length (Unbounded_String) = 0;
*************** is
*** 108,131 ****
     function To_Unbounded_String
       (Source : String)  return Unbounded_String
     with
!      Post   => Length (To_Unbounded_String'Result) = Source'Length,
       Global => null;
  
     function To_Unbounded_String
       (Length : Natural) return Unbounded_String
     with
!      Post   =>
!        Ada.Strings.Unbounded.Length (To_Unbounded_String'Result) = Length,
!      Global => null;
  
     function To_String (Source : Unbounded_String) return String with
!      Post   => To_String'Result'Length = Length (Source),
       Global => null;
  
     procedure Set_Unbounded_String
       (Target : out Unbounded_String;
        Source : String)
     with
       Global => null;
     pragma Ada_05 (Set_Unbounded_String);
  
--- 108,133 ----
     function To_Unbounded_String
       (Source : String)  return Unbounded_String
     with
!      Post   => To_String (To_Unbounded_String'Result) = Source,
       Global => null;
  
     function To_Unbounded_String
       (Length : Natural) return Unbounded_String
     with
!      SPARK_Mode => Off,
!      Global     => null;
  
     function To_String (Source : Unbounded_String) return String with
!      Post   =>
!        To_String'Result'First = 1
!          and then To_String'Result'Length = Length (Source),
       Global => null;
  
     procedure Set_Unbounded_String
       (Target : out Unbounded_String;
        Source : String)
     with
+      Post   => To_String (Target) = Source,
       Global => null;
     pragma Ada_05 (Set_Unbounded_String);
  
*************** is
*** 198,203 ****
--- 200,206 ----
        Index  : Positive) return Character
     with
       Pre    => Index <= Length (Source),
+      Post   => Element'Result = To_String (Source) (Index),
       Global => null;
  
     procedure Replace_Element
*************** is
*** 244,261 ****
--- 247,267 ----
       (Left  : Unbounded_String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "="'Result = (To_String (Left) = To_String (Right)),
       Global => null;
  
     function "="
       (Left  : Unbounded_String;
        Right : String) return Boolean
     with
+      Post   => "="'Result = (To_String (Left) = Right),
       Global => null;
  
     function "="
       (Left  : String;
        Right : Unbounded_String) return Boolean
     with
+      Post   => "="'Result = (Left = To_String (Right)),
       Global => null;
  
     function "<"
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ststbo.adb gcc-14.1.0/gcc/ada/libgnat/a-ststbo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ststbo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ststbo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ststbo.ads gcc-14.1.0/gcc/ada/libgnat/a-ststbo.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ststbo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ststbo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ststio.adb gcc-14.1.0/gcc/ada/libgnat/a-ststio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ststio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ststio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Streams.Stream_IO is
*** 354,360 ****
        --  mode now. Note that we can use Inout_File as the mode for the
        --  call since File_IO handles all modes for all file types.
  
!       if ((File.Mode = FCB.In_File) /= (Mode = In_File))
          and then not File.Update_Mode
        then
           FIO.Reset (AP (File)'Unrestricted_Access, FCB.Inout_File);
--- 354,360 ----
        --  mode now. Note that we can use Inout_File as the mode for the
        --  call since File_IO handles all modes for all file types.
  
!       if (File.Mode = FCB.In_File) /= (Mode = In_File)
          and then not File.Update_Mode
        then
           FIO.Reset (AP (File)'Unrestricted_Access, FCB.Inout_File);
*************** package body Ada.Streams.Stream_IO is
*** 367,377 ****
        FIO.Append_Set (AP (File));
  
        if File.Mode = FCB.Append_File then
!          if Standard'Address_Size = 64 then
              File.Index := Count (ftell64 (File.Stream)) + 1;
           else
              File.Index := Count (ftell (File.Stream)) + 1;
           end if;
        end if;
  
        File.Last_Op := Op_Other;
--- 367,379 ----
        FIO.Append_Set (AP (File));
  
        if File.Mode = FCB.Append_File then
!          pragma Warnings (Off, "condition is always *");
!          if Memory_Size = 2**64 then
              File.Index := Count (ftell64 (File.Stream)) + 1;
           else
              File.Index := Count (ftell (File.Stream)) + 1;
           end if;
+          pragma Warnings (On);
        end if;
  
        File.Last_Op := Op_Other;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ststio.ads gcc-14.1.0/gcc/ada/libgnat/a-ststio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ststio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ststio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ststun.adb gcc-14.1.0/gcc/ada/libgnat/a-ststun.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ststun.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ststun.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ststun.ads gcc-14.1.0/gcc/ada/libgnat/a-ststun.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ststun.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ststun.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sttebu.adb gcc-14.1.0/gcc/ada/libgnat/a-sttebu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-sttebu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sttebu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stunau.adb gcc-14.1.0/gcc/ada/libgnat/a-stunau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stunau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stunau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stunau.ads gcc-14.1.0/gcc/ada/libgnat/a-stunau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stunau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stunau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stunau__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-stunau__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stunau__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stunau__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stunha.adb gcc-14.1.0/gcc/ada/libgnat/a-stunha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stunha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stunha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stuten.adb gcc-14.1.0/gcc/ada/libgnat/a-stuten.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stuten.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stuten.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2010-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2010-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwibo.adb gcc-14.1.0/gcc/ada/libgnat/a-stwibo.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stwibo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwibo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwibo.ads gcc-14.1.0/gcc/ada/libgnat/a-stwibo.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stwibo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwibo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwifi.adb gcc-14.1.0/gcc/ada/libgnat/a-stwifi.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stwifi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwifi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwiha.adb gcc-14.1.0/gcc/ada/libgnat/a-stwiha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stwiha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwiha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwima.adb gcc-14.1.0/gcc/ada/libgnat/a-stwima.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stwima.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwima.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwima.ads gcc-14.1.0/gcc/ada/libgnat/a-stwima.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stwima.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwima.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwise.adb gcc-14.1.0/gcc/ada/libgnat/a-stwise.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stwise.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwise.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwise.ads gcc-14.1.0/gcc/ada/libgnat/a-stwise.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stwise.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwise.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwisu.adb gcc-14.1.0/gcc/ada/libgnat/a-stwisu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stwisu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwisu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwisu.ads gcc-14.1.0/gcc/ada/libgnat/a-stwisu.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stwisu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwisu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwiun.adb gcc-14.1.0/gcc/ada/libgnat/a-stwiun.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stwiun.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwiun.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwiun.ads gcc-14.1.0/gcc/ada/libgnat/a-stwiun.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stwiun.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwiun.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwiun__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-stwiun__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stwiun__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwiun__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stwiun__shared.ads gcc-14.1.0/gcc/ada/libgnat/a-stwiun__shared.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stwiun__shared.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stwiun__shared.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzbou.adb gcc-14.1.0/gcc/ada/libgnat/a-stzbou.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stzbou.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzbou.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzbou.ads gcc-14.1.0/gcc/ada/libgnat/a-stzbou.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stzbou.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzbou.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzfix.adb gcc-14.1.0/gcc/ada/libgnat/a-stzfix.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stzfix.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzfix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzhas.adb gcc-14.1.0/gcc/ada/libgnat/a-stzhas.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stzhas.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzhas.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2009-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzmap.adb gcc-14.1.0/gcc/ada/libgnat/a-stzmap.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stzmap.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzmap.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzmap.ads gcc-14.1.0/gcc/ada/libgnat/a-stzmap.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stzmap.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzmap.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzsea.adb gcc-14.1.0/gcc/ada/libgnat/a-stzsea.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stzsea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzsea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzsea.ads gcc-14.1.0/gcc/ada/libgnat/a-stzsea.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stzsea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzsea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzsup.adb gcc-14.1.0/gcc/ada/libgnat/a-stzsup.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stzsup.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzsup.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzsup.ads gcc-14.1.0/gcc/ada/libgnat/a-stzsup.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stzsup.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzsup.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzunb.adb gcc-14.1.0/gcc/ada/libgnat/a-stzunb.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stzunb.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzunb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzunb.ads gcc-14.1.0/gcc/ada/libgnat/a-stzunb.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stzunb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzunb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzunb__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-stzunb__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-stzunb__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzunb__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-stzunb__shared.ads gcc-14.1.0/gcc/ada/libgnat/a-stzunb__shared.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-stzunb__shared.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-stzunb__shared.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suecin.adb gcc-14.1.0/gcc/ada/libgnat/a-suecin.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-suecin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suecin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suecin.ads gcc-14.1.0/gcc/ada/libgnat/a-suecin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-suecin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suecin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suenco.adb gcc-14.1.0/gcc/ada/libgnat/a-suenco.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-suenco.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suenco.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Strings.UTF_Encoding.Co
*** 391,397 ****
  
              Result (Len + 1) :=
                Character'Val
!                 (2#11110_000# or (Shift_Right (zzzzz, 2)));
              Result (Len + 2) :=
                Character'Val
                  (2#10_000000# or Shift_Left (zzzzz and 2#11#, 4)
--- 391,397 ----
  
              Result (Len + 1) :=
                Character'Val
!                 (2#11110_000# or Shift_Right (zzzzz, 2));
              Result (Len + 2) :=
                Character'Val
                  (2#10_000000# or Shift_Left (zzzzz and 2#11#, 4)
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suenst.adb gcc-14.1.0/gcc/ada/libgnat/a-suenst.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-suenst.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suenst.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suewst.adb gcc-14.1.0/gcc/ada/libgnat/a-suewst.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-suewst.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suewst.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suezst.adb gcc-14.1.0/gcc/ada/libgnat/a-suezst.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-suezst.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suezst.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suhcin.adb gcc-14.1.0/gcc/ada/libgnat/a-suhcin.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-suhcin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suhcin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suhcin.ads gcc-14.1.0/gcc/ada/libgnat/a-suhcin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-suhcin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suhcin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sulcin.adb gcc-14.1.0/gcc/ada/libgnat/a-sulcin.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-sulcin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sulcin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-sulcin.ads gcc-14.1.0/gcc/ada/libgnat/a-sulcin.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-sulcin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-sulcin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suteio.adb gcc-14.1.0/gcc/ada/libgnat/a-suteio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-suteio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suteio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suteio.ads gcc-14.1.0/gcc/ada/libgnat/a-suteio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-suteio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suteio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-suteio__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-suteio__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-suteio__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-suteio__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swbwha.adb gcc-14.1.0/gcc/ada/libgnat/a-swbwha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-swbwha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swbwha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swmwco.ads gcc-14.1.0/gcc/ada/libgnat/a-swmwco.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-swmwco.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swmwco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swunau.adb gcc-14.1.0/gcc/ada/libgnat/a-swunau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-swunau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swunau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swunau.ads gcc-14.1.0/gcc/ada/libgnat/a-swunau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-swunau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swunau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swunau__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-swunau__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-swunau__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swunau__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swuwha.adb gcc-14.1.0/gcc/ada/libgnat/a-swuwha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-swuwha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swuwha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swuwti.adb gcc-14.1.0/gcc/ada/libgnat/a-swuwti.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-swuwti.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swuwti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swuwti.ads gcc-14.1.0/gcc/ada/libgnat/a-swuwti.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-swuwti.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swuwti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-swuwti__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-swuwti__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-swuwti__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-swuwti__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szbzha.adb gcc-14.1.0/gcc/ada/libgnat/a-szbzha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-szbzha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szbzha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szmzco.ads gcc-14.1.0/gcc/ada/libgnat/a-szmzco.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-szmzco.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szmzco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szunau.adb gcc-14.1.0/gcc/ada/libgnat/a-szunau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-szunau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szunau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szunau.ads gcc-14.1.0/gcc/ada/libgnat/a-szunau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-szunau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szunau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szunau__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-szunau__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-szunau__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szunau__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szuzha.adb gcc-14.1.0/gcc/ada/libgnat/a-szuzha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-szuzha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szuzha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szuzti.adb gcc-14.1.0/gcc/ada/libgnat/a-szuzti.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-szuzti.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szuzti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szuzti.ads gcc-14.1.0/gcc/ada/libgnat/a-szuzti.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-szuzti.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szuzti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-szuzti__shared.adb gcc-14.1.0/gcc/ada/libgnat/a-szuzti__shared.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-szuzti__shared.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-szuzti__shared.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tags.adb gcc-14.1.0/gcc/ada/libgnat/a-tags.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tags.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tags.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ada.Tags is
*** 93,99 ****
     --  Disable warnings on possible aliasing problem
  
     function To_Tag is
!      new Unchecked_Conversion (Integer_Address, Tag);
  
     function To_Dispatch_Table_Ptr is
        new Ada.Unchecked_Conversion (Tag, Dispatch_Table_Ptr);
--- 93,102 ----
     --  Disable warnings on possible aliasing problem
  
     function To_Tag is
!      new Unchecked_Conversion (System.Address, Tag);
! 
!    function To_Tag (S : Integer_Address) return Tag is
!      (To_Tag (To_Address (S)));
  
     function To_Dispatch_Table_Ptr is
        new Ada.Unchecked_Conversion (Tag, Dispatch_Table_Ptr);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tags.ads gcc-14.1.0/gcc/ada/libgnat/a-tags.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tags.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tags.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-teioed.adb gcc-14.1.0/gcc/ada/libgnat/a-teioed.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-teioed.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-teioed.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-teioed.ads gcc-14.1.0/gcc/ada/libgnat/a-teioed.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-teioed.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-teioed.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-textio.adb gcc-14.1.0/gcc/ada/libgnat/a-textio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-textio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-textio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-textio.ads gcc-14.1.0/gcc/ada/libgnat/a-textio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-textio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-textio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package Ada.Text_IO with
*** 59,65 ****
    SPARK_Mode,
    Abstract_State    => File_System,
    Initializes       => File_System,
!   Initial_Condition => Line_Length = 0 and Page_Length = 0
  is
     pragma Elaborate_Body;
  
--- 59,66 ----
    SPARK_Mode,
    Abstract_State    => File_System,
    Initializes       => File_System,
!   Initial_Condition => Line_Length = 0 and Page_Length = 0,
!   Always_Terminates
  is
     pragma Elaborate_Body;
  
*************** is
*** 101,115 ****
        Name : String := "";
        Form : String := "")
     with
!      Pre      => not Is_Open (File),
!      Post     =>
         Is_Open (File)
         and then Ada.Text_IO.Mode (File) = Mode
         and then (if Mode /= In_File
                     then (Line_Length (File) = 0
                           and then Page_Length (File) = 0)),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Open
       (File : in out File_Type;
--- 102,116 ----
        Name : String := "";
        Form : String := "")
     with
!      Pre               => not Is_Open (File),
!      Post              =>
         Is_Open (File)
         and then Ada.Text_IO.Mode (File) = Mode
         and then (if Mode /= In_File
                     then (Line_Length (File) = 0
                           and then Page_Length (File) = 0)),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Name_Error | Use_Error => Standard.True);
  
     procedure Open
       (File : in out File_Type;
*************** is
*** 117,179 ****
        Name : String;
        Form : String := "")
     with
!      Pre      => not Is_Open (File),
!      Post     =>
        Is_Open (File)
        and then Ada.Text_IO.Mode (File) = Mode
        and then (if Mode /= In_File
                    then (Line_Length (File) = 0
                          and then Page_Length (File) = 0)),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Close  (File : in out File_Type) with
!      Pre      => Is_Open (File),
!      Post     => not Is_Open (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
     procedure Delete (File : in out File_Type) with
!      Pre      => Is_Open (File),
!      Post     => not Is_Open (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Reset  (File : in out File_Type; Mode : File_Mode) with
!      Pre      => Is_Open (File),
!      Post     =>
         Is_Open (File)
         and then Ada.Text_IO.Mode (File) = Mode
         and then (if Mode /= In_File
                     then (Line_Length (File) = 0
                           and then Page_Length (File) = 0)),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Reset  (File : in out File_Type) with
!      Pre      => Is_Open (File),
!      Post     =>
         Is_Open (File)
         and Mode (File)'Old = Mode (File)
         and (if Mode (File) /= In_File
                  then (Line_Length (File) = 0
                        and then Page_Length (File) = 0)),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     function Mode (File : File_Type) return File_Mode with
!      Pre      => Is_Open (File),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
     function Name (File : File_Type) return String with
!      Pre      => Is_Open (File),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
     function Form (File : File_Type) return String with
!      Pre      => Is_Open (File),
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
  
     function Is_Open (File : File_Type) return Boolean with
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
  
     ------------------------------------------------------
     -- Control of default input, output and error files --
--- 118,180 ----
        Name : String;
        Form : String := "")
     with
!      Pre               => not Is_Open (File),
!      Post              =>
        Is_Open (File)
        and then Ada.Text_IO.Mode (File) = Mode
        and then (if Mode /= In_File
                    then (Line_Length (File) = 0
                          and then Page_Length (File) = 0)),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Name_Error | Use_Error => Standard.True);
  
     procedure Close  (File : in out File_Type) with
!      Pre    => Is_Open (File),
!      Post   => not Is_Open (File),
!      Global => (In_Out => File_System);
! 
     procedure Delete (File : in out File_Type) with
!      Pre               => Is_Open (File),
!      Post              => not Is_Open (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Use_Error => Standard.True);
! 
     procedure Reset  (File : in out File_Type; Mode : File_Mode) with
!      Pre               => Is_Open (File),
!      Post              =>
         Is_Open (File)
         and then Ada.Text_IO.Mode (File) = Mode
         and then (if Mode /= In_File
                     then (Line_Length (File) = 0
                           and then Page_Length (File) = 0)),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Use_Error => Standard.True);
! 
     procedure Reset  (File : in out File_Type) with
!      Pre               => Is_Open (File),
!      Post              =>
         Is_Open (File)
         and Mode (File)'Old = Mode (File)
         and (if Mode (File) /= In_File
                  then (Line_Length (File) = 0
                        and then Page_Length (File) = 0)),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Use_Error => Standard.True);
  
     function Mode (File : File_Type) return File_Mode with
!      Pre    => Is_Open (File),
!      Global => null;
! 
     function Name (File : File_Type) return String with
!      Pre        => Is_Open (File),
!      SPARK_Mode => Off;
! 
     function Form (File : File_Type) return String with
!      Pre    => Is_Open (File),
!      Global => null;
  
     function Is_Open (File : File_Type) return Boolean with
!      Global => null;
  
     ------------------------------------------------------
     -- Control of default input, output and error files --
*************** is
*** 209,550 ****
     --  an oversight, and was intended to be IN, see AI95-00057.
  
     procedure Flush (File : File_Type) with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
     procedure Flush with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     --------------------------------------------
     -- Specification of line and page lengths --
     --------------------------------------------
  
     procedure Set_Line_Length (File : File_Type; To : Count) with
!      Pre      => Is_Open (File)  and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File) = To
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Set_Line_Length (To : Count) with
!      Post     =>
         Line_Length = To
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Set_Page_Length (File : File_Type; To : Count) with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Page_Length (File) = To
         and Line_Length (File)'Old = Line_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Set_Page_Length (To : Count) with
!      Post     =>
         Page_Length = To
         and Line_Length'Old = Line_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     function Line_Length (File : File_Type) return Count with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Global   => (Input => File_System);
     function Line_Length return Count with
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     function Page_Length (File : File_Type) return Count with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Global   => (Input => File_System);
     function Page_Length return Count with
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     ------------------------------------
     -- Column, Line, and Page Control --
     ------------------------------------
  
     procedure New_Line (File : File_Type; Spacing : Positive_Count := 1) with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
     procedure New_Line (Spacing : Positive_Count := 1) with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure Skip_Line (File : File_Type; Spacing : Positive_Count := 1) with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Skip_Line (Spacing : Positive_Count := 1) with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     function End_Of_Line (File : File_Type) return Boolean with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
     function End_Of_Line return Boolean with
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure New_Page (File : File_Type) with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
     procedure New_Page with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure Skip_Page (File : File_Type) with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Skip_Page with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     function End_Of_Page (File : File_Type) return Boolean with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
     function End_Of_Page return Boolean with
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     function End_Of_File (File : File_Type) return Boolean with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
     function End_Of_File return Boolean with
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure Set_Col (File : File_Type;  To : Positive_Count) with
!      Pre            =>
         Is_Open (File)
         and then (if Mode (File) /= In_File
                       then (Line_Length (File) = 0
                             or else To <= Line_Length (File))),
!      Contract_Cases =>
         (Mode (File) /= In_File =>
                Line_Length (File)'Old = Line_Length (File)
                and Page_Length (File)'Old = Page_Length (File),
          others                 => True),
!      Global         => (In_Out => File_System),
!      Annotate       => (GNATprove, Might_Not_Return);
     procedure Set_Col (To : Positive_Count) with
!      Pre      => Line_Length = 0 or To <= Line_Length,
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Set_Line (File : File_Type; To : Positive_Count) with
!      Pre            =>
         Is_Open (File)
         and then (if Mode (File) /= In_File
                       then (Page_Length (File) = 0
                             or else To <= Page_Length (File))),
!      Contract_Cases =>
         (Mode (File) /= In_File =>
                Line_Length (File)'Old = Line_Length (File)
                and Page_Length (File)'Old = Page_Length (File),
          others                 => True),
!      Global         => (In_Out => File_System),
!      Annotate       => (GNATprove, Might_Not_Return);
     procedure Set_Line (To : Positive_Count) with
!      Pre      => Page_Length = 0 or To <= Page_Length,
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     function Col (File : File_Type) return Positive_Count with
!      Pre      => Is_Open (File),
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
     function Col return Positive_Count with
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     function Line (File : File_Type) return Positive_Count with
!      Pre      => Is_Open (File),
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
     function Line return Positive_Count with
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     function Page (File : File_Type) return Positive_Count with
!      Pre      => Is_Open (File),
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
     function Page return Positive_Count with
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     ----------------------------
     -- Character Input-Output --
     ----------------------------
  
     procedure Get (File : File_Type; Item : out Character) with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Get (Item : out Character) with
!      Post   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Put (File : File_Type; Item : Character) with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
     procedure Put (Item : Character) with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure Look_Ahead
       (File        : File_Type;
        Item        : out Character;
        End_Of_Line : out Boolean)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure Look_Ahead
       (Item        : out Character;
        End_Of_Line : out Boolean)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (Input => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure Get_Immediate
       (File : File_Type;
        Item : out Character)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get_Immediate
       (Item : out Character)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get_Immediate
       (File      : File_Type;
        Item      : out Character;
        Available : out Boolean)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get_Immediate
       (Item      : out Character;
        Available : out Boolean)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     -------------------------
     -- String Input-Output --
     -------------------------
  
     procedure Get (File : File_Type; Item : out String) with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Get (Item : out String) with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Put (File : File_Type; Item : String) with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
     procedure Put (Item : String) with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure Get_Line
       (File : File_Type;
        Item : out String;
        Last : out Natural)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Post     => (if Item'Length > 0 then Last in Item'First - 1 .. Item'Last
!                else Last = Item'First - 1),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get_Line
       (Item : out String;
        Last : out Natural)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length
         and (if Item'Length > 0 then Last in Item'First - 1 .. Item'Last
!             else Last = Item'First - 1),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     function Get_Line (File : File_Type) return String with SPARK_Mode => Off;
     pragma Ada_05 (Get_Line);
--- 210,550 ----
     --  an oversight, and was intended to be IN, see AI95-00057.
  
     procedure Flush (File : File_Type) with
!      Pre    => Is_Open (File) and then Mode (File) /= In_File,
!      Post   =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global => (In_Out => File_System);
! 
     procedure Flush with
!      Post   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global => (In_Out => File_System);
  
     --------------------------------------------
     -- Specification of line and page lengths --
     --------------------------------------------
  
     procedure Set_Line_Length (File : File_Type; To : Count) with
!      Pre               => Is_Open (File)  and then Mode (File) /= In_File,
!      Post              =>
         Line_Length (File) = To
         and Page_Length (File)'Old = Page_Length (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Use_Error => Standard.True);
! 
     procedure Set_Line_Length (To : Count) with
!      Post              =>
         Line_Length = To
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Use_Error => Standard.True);
  
     procedure Set_Page_Length (File : File_Type; To : Count) with
!      Pre               => Is_Open (File) and then Mode (File) /= In_File,
!      Post              =>
         Page_Length (File) = To
         and Line_Length (File)'Old = Line_Length (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Use_Error => Standard.True);
! 
     procedure Set_Page_Length (To : Count) with
!      Post              =>
         Page_Length = To
         and Line_Length'Old = Line_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Use_Error => Standard.True);
  
     function Line_Length (File : File_Type) return Count with
!      Pre    => Is_Open (File) and then Mode (File) /= In_File,
!      Global => (Input => File_System);
! 
     function Line_Length return Count with
!      Global => (Input => File_System);
  
     function Page_Length (File : File_Type) return Count with
!      Pre    => Is_Open (File) and then Mode (File) /= In_File,
!      Global => (Input => File_System);
! 
     function Page_Length return Count with
!      Global => (Input => File_System);
  
     ------------------------------------
     -- Column, Line, and Page Control --
     ------------------------------------
  
     procedure New_Line (File : File_Type; Spacing : Positive_Count := 1) with
!      Pre    => Is_Open (File) and then Mode (File) /= In_File,
!      Post   =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global => (In_Out => File_System);
! 
     procedure New_Line (Spacing : Positive_Count := 1) with
!      Post   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global => (In_Out => File_System);
  
     procedure Skip_Line (File : File_Type; Spacing : Positive_Count := 1) with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
! 
     procedure Skip_Line (Spacing : Positive_Count := 1) with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
  
     function End_Of_Line (File : File_Type) return Boolean with
!      Pre    => Is_Open (File) and then Mode (File) = In_File,
!      Global => (Input => File_System);
! 
     function End_Of_Line return Boolean with
!      Global => (Input => File_System);
  
     procedure New_Page (File : File_Type) with
!      Pre    => Is_Open (File) and then Mode (File) /= In_File,
!      Post   =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global => (In_Out => File_System);
! 
     procedure New_Page with
!      Post   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global => (In_Out => File_System);
  
     procedure Skip_Page (File : File_Type) with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
! 
     procedure Skip_Page with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
  
     function End_Of_Page (File : File_Type) return Boolean with
!      Pre    => Is_Open (File) and then Mode (File) = In_File,
!      Global => (Input => File_System);
! 
     function End_Of_Page return Boolean with
!      Global => (Input => File_System);
  
     function End_Of_File (File : File_Type) return Boolean with
!      Pre    => Is_Open (File) and then Mode (File) = In_File,
!      Global => (Input => File_System);
! 
     function End_Of_File return Boolean with
!      Global => (Input => File_System);
  
     procedure Set_Col (File : File_Type;  To : Positive_Count) with
!      Pre               =>
         Is_Open (File)
         and then (if Mode (File) /= In_File
                       then (Line_Length (File) = 0
                             or else To <= Line_Length (File))),
!      Contract_Cases    =>
         (Mode (File) /= In_File =>
                Line_Length (File)'Old = Line_Length (File)
                and Page_Length (File)'Old = Page_Length (File),
          others                 => True),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
! 
     procedure Set_Col (To : Positive_Count) with
!      Pre               => Line_Length = 0 or To <= Line_Length,
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
  
     procedure Set_Line (File : File_Type; To : Positive_Count) with
!      Pre               =>
         Is_Open (File)
         and then (if Mode (File) /= In_File
                       then (Page_Length (File) = 0
                             or else To <= Page_Length (File))),
!      Contract_Cases    =>
         (Mode (File) /= In_File =>
                Line_Length (File)'Old = Line_Length (File)
                and Page_Length (File)'Old = Page_Length (File),
          others                 => True),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
! 
     procedure Set_Line (To : Positive_Count) with
!      Pre               => Page_Length = 0 or To <= Page_Length,
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
  
     function Col (File : File_Type) return Positive_Count with
!      SPARK_Mode => Off;
! 
     function Col return Positive_Count with
!      SPARK_Mode => Off;
  
     function Line (File : File_Type) return Positive_Count with
!      SPARK_Mode => Off;
! 
     function Line return Positive_Count with
!      SPARK_Mode => Off;
  
     function Page (File : File_Type) return Positive_Count with
!      SPARK_Mode => Off;
! 
     function Page return Positive_Count with
!      SPARK_Mode => Off;
  
     ----------------------------
     -- Character Input-Output --
     ----------------------------
  
     procedure Get (File : File_Type; Item : out Character) with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
! 
     procedure Get (Item : out Character) with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
! 
     procedure Put (File : File_Type; Item : Character) with
!      Pre    => Is_Open (File) and then Mode (File) /= In_File,
!      Post   =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global => (In_Out => File_System);
! 
     procedure Put (Item : Character) with
!      Post   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global => (In_Out => File_System);
  
     procedure Look_Ahead
       (File        : File_Type;
        Item        : out Character;
        End_Of_Line : out Boolean)
     with
!      Pre    => Is_Open (File) and then Mode (File) = In_File,
!      Global => (Input => File_System);
  
     procedure Look_Ahead
       (Item        : out Character;
        End_Of_Line : out Boolean)
     with
!      Post   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global => (Input => File_System);
  
     procedure Get_Immediate
       (File : File_Type;
        Item : out Character)
     with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
  
     procedure Get_Immediate
       (Item : out Character)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
  
     procedure Get_Immediate
       (File      : File_Type;
        Item      : out Character;
        Available : out Boolean)
     with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
  
     procedure Get_Immediate
       (Item      : out Character;
        Available : out Boolean)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Standard.True);
  
     -------------------------
     -- String Input-Output --
     -------------------------
  
     procedure Get (File : File_Type; Item : out String) with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Item'Length'Old > 0);
! 
     procedure Get (Item : out String) with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (End_Error => Item'Length'Old > 0);
! 
     procedure Put (File : File_Type; Item : String) with
!      Pre    => Is_Open (File) and then Mode (File) /= In_File,
!      Post   =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global => (In_Out => File_System);
! 
     procedure Put (Item : String) with
!      Post   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global => (In_Out => File_System);
  
     procedure Get_Line
       (File : File_Type;
        Item : out String;
        Last : out Natural)
     with
!      Relaxed_Initialization => Item,
!      Pre                    => Is_Open (File) and then Mode (File) = In_File,
!      Post                   =>
!        (if Item'Length > 0 then Last in Item'First - 1 .. Item'Last
!         else Last = Item'First - 1)
!        and (for all I in Item'First .. Last => Item (I)'Initialized),
!      Global                 => (In_Out => File_System),
!      Exceptional_Cases      => (End_Error => Item'Length'Old > 0);
  
     procedure Get_Line
       (Item : out String;
        Last : out Natural)
     with
!      Relaxed_Initialization => Item,
!      Post                   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length
         and (if Item'Length > 0 then Last in Item'First - 1 .. Item'Last
!             else Last = Item'First - 1)
!        and (for all I in Item'First .. Last => Item (I)'Initialized),
!      Global                => (In_Out => File_System),
!      Exceptional_Cases     => (End_Error => Item'Length'Old > 0);
  
     function Get_Line (File : File_Type) return String with SPARK_Mode => Off;
     pragma Ada_05 (Get_Line);
*************** is
*** 556,576 ****
       (File : File_Type;
        Item : String)
     with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     procedure Put_Line
       (Item : String)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Always_Return);
  
     ---------------------------------------
     -- Generic packages for Input-Output --
--- 556,574 ----
       (File : File_Type;
        Item : String)
     with
!      Pre    => Is_Open (File) and then Mode (File) /= In_File,
!      Post   =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global => (In_Out => File_System);
  
     procedure Put_Line
       (Item : String)
     with
!      Post   =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global => (In_Out => File_System);
  
     ---------------------------------------
     -- Generic packages for Input-Output --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiboio.adb gcc-14.1.0/gcc/ada/libgnat/a-tiboio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tiboio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiboio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ticoau.adb gcc-14.1.0/gcc/ada/libgnat/a-ticoau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ticoau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ticoau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ticoau.ads gcc-14.1.0/gcc/ada/libgnat/a-ticoau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ticoau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ticoau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ticoio.adb gcc-14.1.0/gcc/ada/libgnat/a-ticoio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ticoio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ticoio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ticoio.ads gcc-14.1.0/gcc/ada/libgnat/a-ticoio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ticoio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ticoio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tideau.adb gcc-14.1.0/gcc/ada/libgnat/a-tideau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tideau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tideau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tideau.ads gcc-14.1.0/gcc/ada/libgnat/a-tideau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tideau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tideau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tideio.adb gcc-14.1.0/gcc/ada/libgnat/a-tideio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tideio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tideio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tideio.ads gcc-14.1.0/gcc/ada/libgnat/a-tideio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tideio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tideio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 43,49 ****
  private generic
     type Num is delta <> digits <>;
  
! package Ada.Text_IO.Decimal_IO is
  
     Default_Fore : Field := Num'Fore;
     Default_Aft  : Field := Num'Aft;
--- 43,51 ----
  private generic
     type Num is delta <> digits <>;
  
! package Ada.Text_IO.Decimal_IO with
!   Always_Terminates
! is
  
     Default_Fore : Field := Num'Fore;
     Default_Aft  : Field := Num'Aft;
*************** package Ada.Text_IO.Decimal_IO is
*** 54,72 ****
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (File : File_Type;
--- 56,74 ----
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Put
       (File : File_Type;
*************** package Ada.Text_IO.Decimal_IO is
*** 75,86 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (Item : Num;
--- 77,88 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Pre               => Is_Open (File) and then Mode (File) /= In_File,
!      Post              =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length (File) /= 0);
  
     procedure Put
       (Item : Num;
*************** package Ada.Text_IO.Decimal_IO is
*** 88,98 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (From : String;
--- 90,100 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Ada.Text_IO.Line_Length /= 0);
  
     procedure Get
       (From : String;
*************** package Ada.Text_IO.Decimal_IO is
*** 100,106 ****
        Last : out Positive)
     with
       Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (To   : out String;
--- 102,108 ----
        Last : out Positive)
     with
       Global   => null,
!      Exceptional_Cases => (Data_Error => Standard.True);
  
     procedure Put
       (To   : out String;
*************** package Ada.Text_IO.Decimal_IO is
*** 108,115 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
  private
     pragma Inline (Get);
--- 110,117 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Global            => null,
!      Exceptional_Cases => (Layout_Error => Standard.True);
  
  private
     pragma Inline (Get);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tideio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-tideio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tideio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tideio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tienau.adb gcc-14.1.0/gcc/ada/libgnat/a-tienau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tienau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tienau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tienau.ads gcc-14.1.0/gcc/ada/libgnat/a-tienau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tienau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tienau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tienio.adb gcc-14.1.0/gcc/ada/libgnat/a-tienio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tienio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tienio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tienio.ads gcc-14.1.0/gcc/ada/libgnat/a-tienio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tienio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tienio.ads	Tue May  7 06:51:37 2024
***************
*** 23,43 ****
  private generic
     type Enum is (<>);
  
! package Ada.Text_IO.Enumeration_IO is
  
     Default_Width : Field := 0;
     Default_Setting : Type_Set := Upper_Case;
  
     procedure Get (File : File_Type; Item : out Enum) with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
     procedure Get (Item : out Enum) with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (File  : File_Type;
--- 23,46 ----
  private generic
     type Enum is (<>);
  
! package Ada.Text_IO.Enumeration_IO with
!   Always_Terminates
! is
  
     Default_Width : Field := 0;
     Default_Setting : Type_Set := Upper_Case;
  
     procedure Get (File : File_Type; Item : out Enum) with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
! 
     procedure Get (Item : out Enum) with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Put
       (File  : File_Type;
*************** package Ada.Text_IO.Enumeration_IO is
*** 45,82 ****
        Width : Field := Default_Width;
        Set   : Type_Set := Default_Setting)
     with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (Item  : Enum;
        Width : Field := Default_Width;
        Set   : Type_Set := Default_Setting)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (From : String;
        Item : out Enum;
        Last : out Positive)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (To   : out String;
        Item : Enum;
        Set  : Type_Set := Default_Setting)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
  end Ada.Text_IO.Enumeration_IO;
--- 48,85 ----
        Width : Field := Default_Width;
        Set   : Type_Set := Default_Setting)
     with
!      Pre               => Is_Open (File) and then Mode (File) /= In_File,
!      Post              =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length (File) /= 0);
  
     procedure Put
       (Item  : Enum;
        Width : Field := Default_Width;
        Set   : Type_Set := Default_Setting)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Ada.Text_IO.Line_Length /= 0);
  
     procedure Get
       (From : String;
        Item : out Enum;
        Last : out Positive)
     with
!      Global            => null,
!      Exceptional_Cases => (Data_Error => Standard.True);
  
     procedure Put
       (To   : out String;
        Item : Enum;
        Set  : Type_Set := Default_Setting)
     with
!      Global            => null,
!      Exceptional_Cases => (Layout_Error => Standard.True);
  
  end Ada.Text_IO.Enumeration_IO;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tifiau.adb gcc-14.1.0/gcc/ada/libgnat/a-tifiau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tifiau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tifiau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tifiau.ads gcc-14.1.0/gcc/ada/libgnat/a-tifiau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tifiau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tifiau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tifiio.adb gcc-14.1.0/gcc/ada/libgnat/a-tifiio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tifiio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tifiio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tifiio.ads gcc-14.1.0/gcc/ada/libgnat/a-tifiio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tifiio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tifiio.ads	Tue May  7 06:51:37 2024
***************
*** 23,29 ****
  private generic
     type Num is delta <>;
  
! package Ada.Text_IO.Fixed_IO with SPARK_Mode => On is
  
     Default_Fore : Field := Num'Fore;
     Default_Aft  : Field := Num'Aft;
--- 23,32 ----
  private generic
     type Num is delta <>;
  
! package Ada.Text_IO.Fixed_IO with
!   SPARK_Mode => On,
!   Always_Terminates
! is
  
     Default_Fore : Field := Num'Fore;
     Default_Aft  : Field := Num'Aft;
*************** package Ada.Text_IO.Fixed_IO with SPARK_
*** 34,52 ****
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (File : File_Type;
--- 37,55 ----
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Put
       (File : File_Type;
*************** package Ada.Text_IO.Fixed_IO with SPARK_
*** 55,66 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (Item : Num;
--- 58,69 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Pre               => Is_Open (File) and then Mode (File) /= In_File,
!      Post              =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length (File) /= 0);
  
     procedure Put
       (Item : Num;
*************** package Ada.Text_IO.Fixed_IO with SPARK_
*** 68,86 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (From : String;
        Item : out Num;
        Last : out Positive)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (To   : out String;
--- 71,89 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Ada.Text_IO.Line_Length /= 0);
  
     procedure Get
       (From : String;
        Item : out Num;
        Last : out Positive)
     with
!      Global            => null,
!      Exceptional_Cases => (Data_Error => Standard.True);
  
     procedure Put
       (To   : out String;
*************** package Ada.Text_IO.Fixed_IO with SPARK_
*** 88,95 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
  private
     pragma Inline (Get);
--- 91,98 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Global            => null,
!      Exceptional_Cases => (Layout_Error => Standard.True);
  
  private
     pragma Inline (Get);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tifiio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-tifiio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tifiio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tifiio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiflau.adb gcc-14.1.0/gcc/ada/libgnat/a-tiflau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tiflau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiflau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiflau.ads gcc-14.1.0/gcc/ada/libgnat/a-tiflau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tiflau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiflau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiflio.adb gcc-14.1.0/gcc/ada/libgnat/a-tiflio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tiflio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiflio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiflio.ads gcc-14.1.0/gcc/ada/libgnat/a-tiflio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tiflio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiflio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 43,49 ****
  private generic
     type Num is digits <>;
  
! package Ada.Text_IO.Float_IO with SPARK_Mode => On is
  
     Default_Fore : Field := 2;
     Default_Aft  : Field := Num'Digits - 1;
--- 43,52 ----
  private generic
     type Num is digits <>;
  
! package Ada.Text_IO.Float_IO with
!   SPARK_Mode => On,
!   Always_Terminates
! is
  
     Default_Fore : Field := 2;
     Default_Aft  : Field := Num'Digits - 1;
*************** package Ada.Text_IO.Float_IO with SPARK_
*** 54,72 ****
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (File : File_Type;
--- 57,75 ----
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Put
       (File : File_Type;
*************** package Ada.Text_IO.Float_IO with SPARK_
*** 75,86 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (Item : Num;
--- 78,89 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Pre               => Is_Open (File) and then Mode (File) /= In_File,
!      Post              =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length (File) /= 0);
  
     procedure Put
       (Item : Num;
*************** package Ada.Text_IO.Float_IO with SPARK_
*** 88,106 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (From : String;
        Item : out Num;
        Last : out Positive)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (To   : out String;
--- 91,109 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length /= 0);
  
     procedure Get
       (From : String;
        Item : out Num;
        Last : out Positive)
     with
!      Global            => null,
!      Exceptional_Cases => (Data_Error => Standard.True);
  
     procedure Put
       (To   : out String;
*************** package Ada.Text_IO.Float_IO with SPARK_
*** 108,115 ****
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
  private
     pragma Inline (Get);
--- 111,118 ----
        Aft  : Field := Default_Aft;
        Exp  : Field := Default_Exp)
     with
!      Global            => null,
!      Exceptional_Cases => (Layout_Error => Standard.True);
  
  private
     pragma Inline (Get);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tigeau.adb gcc-14.1.0/gcc/ada/libgnat/a-tigeau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tigeau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tigeau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tigeau.ads gcc-14.1.0/gcc/ada/libgnat/a-tigeau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tigeau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tigeau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tigeli.adb gcc-14.1.0/gcc/ada/libgnat/a-tigeli.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tigeli.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tigeli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiinau.adb gcc-14.1.0/gcc/ada/libgnat/a-tiinau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tiinau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiinau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiinau.ads gcc-14.1.0/gcc/ada/libgnat/a-tiinau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tiinau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiinau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiinio.adb gcc-14.1.0/gcc/ada/libgnat/a-tiinio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tiinio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiinio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiinio.ads gcc-14.1.0/gcc/ada/libgnat/a-tiinio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tiinio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiinio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 43,49 ****
  private generic
     type Num is range <>;
  
! package Ada.Text_IO.Integer_IO is
  
     Default_Width : Field := Num'Width;
     Default_Base  : Number_Base := 10;
--- 43,51 ----
  private generic
     type Num is range <>;
  
! package Ada.Text_IO.Integer_IO with
!   Always_Terminates
! is
  
     Default_Width : Field := Num'Width;
     Default_Base  : Number_Base := 10;
*************** package Ada.Text_IO.Integer_IO is
*** 53,71 ****
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (File  : File_Type;
--- 55,73 ----
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Put
       (File  : File_Type;
*************** package Ada.Text_IO.Integer_IO is
*** 73,111 ****
        Width : Field := Default_Width;
        Base  : Number_Base := Default_Base)
     with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (Item  : Num;
        Width : Field := Default_Width;
        Base  : Number_Base := Default_Base)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (From : String;
        Item : out Num;
        Last : out Positive)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (To   : out String;
        Item : Num;
        Base : Number_Base := Default_Base)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
  private
     pragma Inline (Get);
--- 75,113 ----
        Width : Field := Default_Width;
        Base  : Number_Base := Default_Base)
     with
!      Pre               => Is_Open (File) and then Mode (File) /= In_File,
!      Post              =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length (File) /= 0);
  
     procedure Put
       (Item  : Num;
        Width : Field := Default_Width;
        Base  : Number_Base := Default_Base)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length /= 0);
  
     procedure Get
       (From : String;
        Item : out Num;
        Last : out Positive)
     with
!      Global            => null,
!      Exceptional_Cases => (Data_Error => Standard.True);
  
     procedure Put
       (To   : out String;
        Item : Num;
        Base : Number_Base := Default_Base)
     with
!      Global            => null,
!      Exceptional_Cases => (Layout_Error => Standard.True);
  
  private
     pragma Inline (Get);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiinio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-tiinio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tiinio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiinio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-timoio.adb gcc-14.1.0/gcc/ada/libgnat/a-timoio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-timoio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-timoio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-timoio.ads gcc-14.1.0/gcc/ada/libgnat/a-timoio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-timoio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-timoio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 43,49 ****
  private generic
     type Num is mod <>;
  
! package Ada.Text_IO.Modular_IO is
  
     Default_Width : Field := Num'Width;
     Default_Base  : Number_Base := 10;
--- 43,51 ----
  private generic
     type Num is mod <>;
  
! package Ada.Text_IO.Modular_IO with
!   Always_Terminates
! is
  
     Default_Width : Field := Num'Width;
     Default_Base  : Number_Base := 10;
*************** package Ada.Text_IO.Modular_IO is
*** 53,71 ****
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre      => Is_Open (File) and then Mode (File) = In_File,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (File  : File_Type;
--- 55,73 ----
        Item  : out Num;
        Width : Field := 0)
     with
!      Pre               => Is_Open (File) and then Mode (File) = In_File,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Get
       (Item  : out Num;
        Width : Field := 0)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Data_Error | End_Error => Standard.True);
  
     procedure Put
       (File  : File_Type;
*************** package Ada.Text_IO.Modular_IO is
*** 73,111 ****
        Width : Field := Default_Width;
        Base  : Number_Base := Default_Base)
     with
!      Pre      => Is_Open (File) and then Mode (File) /= In_File,
!      Post     =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (Item  : Num;
        Width : Field := Default_Width;
        Base  : Number_Base := Default_Base)
     with
!      Post     =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global   => (In_Out => File_System),
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Get
       (From : String;
        Item : out Num;
        Last : out Positive)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
     procedure Put
       (To   : out String;
        Item : Num;
        Base : Number_Base := Default_Base)
     with
!      Global   => null,
!      Annotate => (GNATprove, Might_Not_Return);
  
  private
     pragma Inline (Get);
--- 75,113 ----
        Width : Field := Default_Width;
        Base  : Number_Base := Default_Base)
     with
!      Pre               => Is_Open (File) and then Mode (File) /= In_File,
!      Post              =>
         Line_Length (File)'Old = Line_Length (File)
         and Page_Length (File)'Old = Page_Length (File),
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length (File) /= 0);
  
     procedure Put
       (Item  : Num;
        Width : Field := Default_Width;
        Base  : Number_Base := Default_Base)
     with
!      Post              =>
         Line_Length'Old = Line_Length
         and Page_Length'Old = Page_Length,
!      Global            => (In_Out => File_System),
!      Exceptional_Cases => (Layout_Error => Line_Length /= 0);
  
     procedure Get
       (From : String;
        Item : out Num;
        Last : out Positive)
     with
!      Global            => null,
!      Exceptional_Cases => (Data_Error => Standard.True);
  
     procedure Put
       (To   : out String;
        Item : Num;
        Base : Number_Base := Default_Base)
     with
!      Global            => null,
!      Exceptional_Cases => (Layout_Error => Standard.True);
  
  private
     pragma Inline (Get);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-timoio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-timoio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-timoio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-timoio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiocst.adb gcc-14.1.0/gcc/ada/libgnat/a-tiocst.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tiocst.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiocst.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tiocst.ads gcc-14.1.0/gcc/ada/libgnat/a-tiocst.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tiocst.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tiocst.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tirsfi.adb gcc-14.1.0/gcc/ada/libgnat/a-tirsfi.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-tirsfi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tirsfi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-tirsfi.ads gcc-14.1.0/gcc/ada/libgnat/a-tirsfi.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-tirsfi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-tirsfi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-titest.adb gcc-14.1.0/gcc/ada/libgnat/a-titest.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-titest.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-titest.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-undesu.adb gcc-14.1.0/gcc/ada/libgnat/a-undesu.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-undesu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-undesu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wichha.adb gcc-14.1.0/gcc/ada/libgnat/a-wichha.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wichha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wichha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wichun.adb gcc-14.1.0/gcc/ada/libgnat/a-wichun.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wichun.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wichun.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wichun.ads gcc-14.1.0/gcc/ada/libgnat/a-wichun.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wichun.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wichun.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-witeio.adb gcc-14.1.0/gcc/ada/libgnat/a-witeio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-witeio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-witeio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-witeio.ads gcc-14.1.0/gcc/ada/libgnat/a-witeio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-witeio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-witeio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wrstfi.adb gcc-14.1.0/gcc/ada/libgnat/a-wrstfi.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wrstfi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wrstfi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wrstfi.ads gcc-14.1.0/gcc/ada/libgnat/a-wrstfi.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wrstfi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wrstfi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtcoau.adb gcc-14.1.0/gcc/ada/libgnat/a-wtcoau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtcoau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtcoau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtcoau.ads gcc-14.1.0/gcc/ada/libgnat/a-wtcoau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtcoau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtcoau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtcoio.adb gcc-14.1.0/gcc/ada/libgnat/a-wtcoio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtcoio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtcoio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtcstr.adb gcc-14.1.0/gcc/ada/libgnat/a-wtcstr.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtcstr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtcstr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtcstr.ads gcc-14.1.0/gcc/ada/libgnat/a-wtcstr.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtcstr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtcstr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtdeau.adb gcc-14.1.0/gcc/ada/libgnat/a-wtdeau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtdeau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtdeau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtdeau.ads gcc-14.1.0/gcc/ada/libgnat/a-wtdeau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtdeau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtdeau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtdeio.adb gcc-14.1.0/gcc/ada/libgnat/a-wtdeio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtdeio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtdeio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtdeio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-wtdeio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtdeio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtdeio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtedit.adb gcc-14.1.0/gcc/ada/libgnat/a-wtedit.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtedit.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtedit.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtedit.ads gcc-14.1.0/gcc/ada/libgnat/a-wtedit.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtedit.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtedit.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtenau.adb gcc-14.1.0/gcc/ada/libgnat/a-wtenau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtenau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtenau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtenau.ads gcc-14.1.0/gcc/ada/libgnat/a-wtenau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtenau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtenau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtenio.adb gcc-14.1.0/gcc/ada/libgnat/a-wtenio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtenio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtenio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtfiau.adb gcc-14.1.0/gcc/ada/libgnat/a-wtfiau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtfiau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtfiau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtfiau.ads gcc-14.1.0/gcc/ada/libgnat/a-wtfiau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtfiau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtfiau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtfiio.adb gcc-14.1.0/gcc/ada/libgnat/a-wtfiio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtfiio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtfiio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtfiio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-wtfiio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtfiio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtfiio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtflau.adb gcc-14.1.0/gcc/ada/libgnat/a-wtflau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtflau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtflau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtflau.ads gcc-14.1.0/gcc/ada/libgnat/a-wtflau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtflau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtflau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtflio.adb gcc-14.1.0/gcc/ada/libgnat/a-wtflio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtflio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtflio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtgeau.adb gcc-14.1.0/gcc/ada/libgnat/a-wtgeau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtgeau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtgeau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtgeau.ads gcc-14.1.0/gcc/ada/libgnat/a-wtgeau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtgeau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtgeau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtinau.adb gcc-14.1.0/gcc/ada/libgnat/a-wtinau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtinau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtinau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtinau.ads gcc-14.1.0/gcc/ada/libgnat/a-wtinau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtinau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtinau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtinio.adb gcc-14.1.0/gcc/ada/libgnat/a-wtinio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtinio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtinio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtinio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-wtinio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtinio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtinio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtmoio.adb gcc-14.1.0/gcc/ada/libgnat/a-wtmoio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtmoio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtmoio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtmoio.ads gcc-14.1.0/gcc/ada/libgnat/a-wtmoio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-wtmoio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtmoio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT.  In accordance with the copyright of that document, you can freely --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wtmoio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-wtmoio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wtmoio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wtmoio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wttest.adb gcc-14.1.0/gcc/ada/libgnat/a-wttest.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wttest.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wttest.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-wwboio.adb gcc-14.1.0/gcc/ada/libgnat/a-wwboio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-wwboio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-wwboio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-zchhan.adb gcc-14.1.0/gcc/ada/libgnat/a-zchhan.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-zchhan.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-zchhan.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-zchuni.adb gcc-14.1.0/gcc/ada/libgnat/a-zchuni.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-zchuni.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-zchuni.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-zchuni.ads gcc-14.1.0/gcc/ada/libgnat/a-zchuni.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-zchuni.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-zchuni.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-zrstfi.adb gcc-14.1.0/gcc/ada/libgnat/a-zrstfi.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-zrstfi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-zrstfi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-zrstfi.ads gcc-14.1.0/gcc/ada/libgnat/a-zrstfi.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-zrstfi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-zrstfi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztcoau.adb gcc-14.1.0/gcc/ada/libgnat/a-ztcoau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztcoau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztcoau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztcoio.adb gcc-14.1.0/gcc/ada/libgnat/a-ztcoio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztcoio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztcoio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztcstr.adb gcc-14.1.0/gcc/ada/libgnat/a-ztcstr.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztcstr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztcstr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztcstr.ads gcc-14.1.0/gcc/ada/libgnat/a-ztcstr.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztcstr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztcstr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztdeau.adb gcc-14.1.0/gcc/ada/libgnat/a-ztdeau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztdeau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztdeau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztdeau.ads gcc-14.1.0/gcc/ada/libgnat/a-ztdeau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztdeau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztdeau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztdeio.adb gcc-14.1.0/gcc/ada/libgnat/a-ztdeio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztdeio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztdeio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztdeio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-ztdeio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztdeio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztdeio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztedit.adb gcc-14.1.0/gcc/ada/libgnat/a-ztedit.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztedit.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztedit.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztedit.ads gcc-14.1.0/gcc/ada/libgnat/a-ztedit.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztedit.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztedit.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztenau.adb gcc-14.1.0/gcc/ada/libgnat/a-ztenau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztenau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztenau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztenau.ads gcc-14.1.0/gcc/ada/libgnat/a-ztenau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztenau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztenau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztenio.adb gcc-14.1.0/gcc/ada/libgnat/a-ztenio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztenio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztenio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztexio.adb gcc-14.1.0/gcc/ada/libgnat/a-ztexio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztexio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztexio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztexio.ads gcc-14.1.0/gcc/ada/libgnat/a-ztexio.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztexio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztexio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztfiau.adb gcc-14.1.0/gcc/ada/libgnat/a-ztfiau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztfiau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztfiau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztfiau.ads gcc-14.1.0/gcc/ada/libgnat/a-ztfiau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztfiau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztfiau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztfiio.adb gcc-14.1.0/gcc/ada/libgnat/a-ztfiio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztfiio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztfiio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztfiio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-ztfiio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztfiio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztfiio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztflau.adb gcc-14.1.0/gcc/ada/libgnat/a-ztflau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztflau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztflau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztflau.ads gcc-14.1.0/gcc/ada/libgnat/a-ztflau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztflau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztflau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztflio.adb gcc-14.1.0/gcc/ada/libgnat/a-ztflio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztflio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztflio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztgeau.adb gcc-14.1.0/gcc/ada/libgnat/a-ztgeau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztgeau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztgeau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztgeau.ads gcc-14.1.0/gcc/ada/libgnat/a-ztgeau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztgeau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztgeau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztinau.adb gcc-14.1.0/gcc/ada/libgnat/a-ztinau.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztinau.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztinau.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztinau.ads gcc-14.1.0/gcc/ada/libgnat/a-ztinau.ads
*** gcc-13.2.0/gcc/ada/libgnat/a-ztinau.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztinau.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztinio.adb gcc-14.1.0/gcc/ada/libgnat/a-ztinio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztinio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztinio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztinio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-ztinio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztinio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztinio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztmoio.adb gcc-14.1.0/gcc/ada/libgnat/a-ztmoio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztmoio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztmoio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-ztmoio__128.adb gcc-14.1.0/gcc/ada/libgnat/a-ztmoio__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-ztmoio__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-ztmoio__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-zttest.adb gcc-14.1.0/gcc/ada/libgnat/a-zttest.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-zttest.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-zttest.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/a-zzboio.adb gcc-14.1.0/gcc/ada/libgnat/a-zzboio.adb
*** gcc-13.2.0/gcc/ada/libgnat/a-zzboio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/a-zzboio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-allein.ads gcc-14.1.0/gcc/ada/libgnat/g-allein.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-allein.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-allein.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-alleve.adb gcc-14.1.0/gcc/ada/libgnat/g-alleve.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-alleve.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-alleve.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Altivec.Low_Level_Vect
*** 643,650 ****
  
        begin
           for J in Varray_Type'Range loop
!             All_Element := All_Element and then (D (J) = Bool_True);
!             Any_Element := Any_Element or else  (D (J) = Bool_True);
           end loop;
  
           if A = CR6_LT then
--- 643,650 ----
  
        begin
           for J in Varray_Type'Range loop
!             All_Element := All_Element and then D (J) = Bool_True;
!             Any_Element := Any_Element or else  D (J) = Bool_True;
           end loop;
  
           if A = CR6_LT then
*************** package body GNAT.Altivec.Low_Level_Vect
*** 1089,1096 ****
  
        begin
           for J in Varray_Type'Range loop
!             All_Element := All_Element and then (D (J) = Bool_True);
!             Any_Element := Any_Element or else  (D (J) = Bool_True);
           end loop;
  
           if A = CR6_LT then
--- 1089,1096 ----
  
        begin
           for J in Varray_Type'Range loop
!             All_Element := All_Element and then D (J) = Bool_True;
!             Any_Element := Any_Element or else  D (J) = Bool_True;
           end loop;
  
           if A = CR6_LT then
*************** package body GNAT.Altivec.Low_Level_Vect
*** 1582,1588 ****
        D : C_float;
  
     begin
!       if (Bits (VSCR, NJ_POS, NJ_POS) = 1)
          and then abs (X) < 2.0 ** (-126)
        then
           D := (if X < 0.0 then -0.0 else +0.0);
--- 1582,1588 ----
        D : C_float;
  
     begin
!       if Bits (VSCR, NJ_POS, NJ_POS) = 1
          and then abs (X) < 2.0 ** (-126)
        then
           D := (if X < 0.0 then -0.0 else +0.0);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-alleve.ads gcc-14.1.0/gcc/ada/libgnat/g-alleve.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-alleve.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-alleve.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-alleve__hard.adb gcc-14.1.0/gcc/ada/libgnat/g-alleve__hard.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-alleve__hard.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-alleve__hard.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-alleve__hard.ads gcc-14.1.0/gcc/ada/libgnat/g-alleve__hard.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-alleve__hard.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-alleve__hard.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-altcon.adb gcc-14.1.0/gcc/ada/libgnat/g-altcon.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-altcon.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-altcon.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-altcon.ads gcc-14.1.0/gcc/ada/libgnat/g-altcon.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-altcon.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-altcon.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-altive.ads gcc-14.1.0/gcc/ada/libgnat/g-altive.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-altive.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-altive.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-alveop.adb gcc-14.1.0/gcc/ada/libgnat/g-alveop.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-alveop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-alveop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2004-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2004-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-alveop.ads gcc-14.1.0/gcc/ada/libgnat/g-alveop.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-alveop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-alveop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-alvety.ads gcc-14.1.0/gcc/ada/libgnat/g-alvety.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-alvety.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-alvety.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-alvevi.ads gcc-14.1.0/gcc/ada/libgnat/g-alvevi.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-alvevi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-alvevi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-arrspl.adb gcc-14.1.0/gcc/ada/libgnat/g-arrspl.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-arrspl.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-arrspl.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-arrspl.ads gcc-14.1.0/gcc/ada/libgnat/g-arrspl.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-arrspl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-arrspl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-awk.adb gcc-14.1.0/gcc/ada/libgnat/g-awk.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-awk.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-awk.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-awk.ads gcc-14.1.0/gcc/ada/libgnat/g-awk.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-awk.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-awk.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-binenv.adb gcc-14.1.0/gcc/ada/libgnat/g-binenv.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-binenv.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-binenv.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-binenv.ads gcc-14.1.0/gcc/ada/libgnat/g-binenv.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-binenv.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-binenv.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-binsea.adb gcc-14.1.0/gcc/ada/libgnat/g-binsea.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-binsea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-binsea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2023, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-binsea.ads gcc-14.1.0/gcc/ada/libgnat/g-binsea.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-binsea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-binsea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2023, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-brapre.ads gcc-14.1.0/gcc/ada/libgnat/g-brapre.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-brapre.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-brapre.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2019-2023, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2019-2024, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-bubsor.adb gcc-14.1.0/gcc/ada/libgnat/g-bubsor.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-bubsor.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-bubsor.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-bubsor.ads gcc-14.1.0/gcc/ada/libgnat/g-bubsor.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-bubsor.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-bubsor.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-busora.adb gcc-14.1.0/gcc/ada/libgnat/g-busora.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-busora.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-busora.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-busora.ads gcc-14.1.0/gcc/ada/libgnat/g-busora.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-busora.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-busora.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-busorg.adb gcc-14.1.0/gcc/ada/libgnat/g-busorg.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-busorg.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-busorg.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-busorg.ads gcc-14.1.0/gcc/ada/libgnat/g-busorg.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-busorg.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-busorg.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-byorma.adb gcc-14.1.0/gcc/ada/libgnat/g-byorma.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-byorma.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-byorma.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-byorma.ads gcc-14.1.0/gcc/ada/libgnat/g-byorma.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-byorma.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-byorma.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-bytswa.adb gcc-14.1.0/gcc/ada/libgnat/g-bytswa.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-bytswa.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-bytswa.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-bytswa.ads gcc-14.1.0/gcc/ada/libgnat/g-bytswa.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-bytswa.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-bytswa.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-calend.adb gcc-14.1.0/gcc/ada/libgnat/g-calend.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-calend.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-calend.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-calend.ads gcc-14.1.0/gcc/ada/libgnat/g-calend.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-calend.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-calend.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-casuti.adb gcc-14.1.0/gcc/ada/libgnat/g-casuti.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-casuti.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-casuti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-casuti.ads gcc-14.1.0/gcc/ada/libgnat/g-casuti.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-casuti.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-casuti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-catiio.adb gcc-14.1.0/gcc/ada/libgnat/g-catiio.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-catiio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-catiio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Calendar.Time_IO is
*** 849,855 ****
        begin
           Advance_Digits (Num_Digits => 1);
  
!          while Index <= Date'Length and then Symbol in '0' .. '9' loop
              Advance;
           end loop;
  
--- 849,855 ----
        begin
           Advance_Digits (Num_Digits => 1);
  
!          while Index <= Date'Last and then Symbol in '0' .. '9' loop
              Advance;
           end loop;
  
*************** package body GNAT.Calendar.Time_IO is
*** 1005,1011 ****
  
        --  Check for trailing characters
  
!       if Index /= Date'Length + 1 then
           raise Wrong_Syntax;
        end if;
  
--- 1005,1011 ----
  
        --  Check for trailing characters
  
!       if Index /= Date'Last + 1 then
           raise Wrong_Syntax;
        end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-catiio.ads gcc-14.1.0/gcc/ada/libgnat/g-catiio.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-catiio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-catiio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-cgi.adb gcc-14.1.0/gcc/ada/libgnat/g-cgi.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-cgi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-cgi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2001-2023, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2001-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-cgi.ads gcc-14.1.0/gcc/ada/libgnat/g-cgi.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-cgi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-cgi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-cgicoo.adb gcc-14.1.0/gcc/ada/libgnat/g-cgicoo.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-cgicoo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-cgicoo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-cgicoo.ads gcc-14.1.0/gcc/ada/libgnat/g-cgicoo.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-cgicoo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-cgicoo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-cgideb.adb gcc-14.1.0/gcc/ada/libgnat/g-cgideb.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-cgideb.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-cgideb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-cgideb.ads gcc-14.1.0/gcc/ada/libgnat/g-cgideb.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-cgideb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-cgideb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-comlin.adb gcc-14.1.0/gcc/ada/libgnat/g-comlin.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-comlin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-comlin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-comlin.ads gcc-14.1.0/gcc/ada/libgnat/g-comlin.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-comlin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-comlin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-comver.adb gcc-14.1.0/gcc/ada/libgnat/g-comver.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-comver.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-comver.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-comver.ads gcc-14.1.0/gcc/ada/libgnat/g-comver.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-comver.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-comver.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-cppexc.adb gcc-14.1.0/gcc/ada/libgnat/g-cppexc.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-cppexc.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-cppexc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2023, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-cppexc.ads gcc-14.1.0/gcc/ada/libgnat/g-cppexc.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-cppexc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-cppexc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2023, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-crc32.adb gcc-14.1.0/gcc/ada/libgnat/g-crc32.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-crc32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-crc32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-crc32.ads gcc-14.1.0/gcc/ada/libgnat/g-crc32.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-crc32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-crc32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2004-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2004-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-ctrl_c.adb gcc-14.1.0/gcc/ada/libgnat/g-ctrl_c.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-ctrl_c.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-ctrl_c.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2023, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-ctrl_c.ads gcc-14.1.0/gcc/ada/libgnat/g-ctrl_c.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-ctrl_c.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-ctrl_c.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2023, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-curexc.ads gcc-14.1.0/gcc/ada/libgnat/g-curexc.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-curexc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-curexc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 1996-2023, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 1996-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-debpoo.adb gcc-14.1.0/gcc/ada/libgnat/g-debpoo.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-debpoo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-debpoo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Debug_Pools is
*** 362,374 ****
     --  These procedures are used as markers when computing the stacktraces,
     --  so that addresses in the debug pool itself are not reported to the user.
  
-    Code_Address_For_Allocate_End    : System.Address := System.Null_Address;
-    Code_Address_For_Deallocate_End  : System.Address;
-    Code_Address_For_Dereference_End : System.Address;
-    --  Taking the address of the above procedures will not work on some
-    --  architectures (HPUX for instance). Thus we do the same thing that
-    --  is done in a-except.adb, and get the address of labels instead.
- 
     procedure Skip_Levels
       (Depth               : Natural;
        Trace               : Tracebacks_Array;
--- 362,367 ----
*************** package body GNAT.Debug_Pools is
*** 906,912 ****
                 Set_Handled;
              else
                 Ptr.Valid (Offset / System.Storage_Unit) :=
!                  Ptr.Valid (Offset / System.Storage_Unit) and (not Bit);
              end if;
           end if;
        end Set_Valid;
--- 899,905 ----
                 Set_Handled;
              else
                 Ptr.Valid (Offset / System.Storage_Unit) :=
!                  Ptr.Valid (Offset / System.Storage_Unit) and not Bit;
              end if;
           end if;
        end Set_Valid;
*************** package body GNAT.Debug_Pools is
*** 944,951 ****
        pragma Unreferenced (Lock);
  
     begin
-       <<Allocate_Label>>
- 
        if Disable then
           Storage_Address :=
             System.CRTL.malloc (System.CRTL.size_t (Size_In_Storage_Elements));
--- 937,942 ----
*************** package body GNAT.Debug_Pools is
*** 1022,1029 ****
            (Pool                => Pool,
             Kind                => Alloc,
             Size                => Size_In_Storage_Elements,
!            Ignored_Frame_Start => Allocate_Label'Address,
!            Ignored_Frame_End   => Code_Address_For_Allocate_End);
  
        pragma Warnings (Off);
        --  Turn warning on alignment for convert call off. We know that in fact
--- 1013,1020 ----
            (Pool                => Pool,
             Kind                => Alloc,
             Size                => Size_In_Storage_Elements,
!            Ignored_Frame_Start => Allocate'Code_Address,
!            Ignored_Frame_End   => Allocate_End'Code_Address);
  
        pragma Warnings (Off);
        --  Turn warning on alignment for convert call off. We know that in fact
*************** package body GNAT.Debug_Pools is
*** 1073,1080 ****
           Put (Output_File (Pool),
                "), at ");
           Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                    Allocate_Label'Address,
!                    Code_Address_For_Deallocate_End);
        end if;
  
        --  Update internal data
--- 1064,1071 ----
           Put (Output_File (Pool),
                "), at ");
           Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                    Allocate'Code_Address,
!                    Deallocate_End'Code_Address);
        end if;
  
        --  Update internal data
*************** package body GNAT.Debug_Pools is
*** 1106,1116 ****
     --  is done in a-except, so that we can hide the traceback frames internal
     --  to this package
  
!    procedure Allocate_End is
!    begin
!       <<Allocate_End_Label>>
!       Code_Address_For_Allocate_End := Allocate_End_Label'Address;
!    end Allocate_End;
  
     -------------------
     -- Set_Dead_Beef --
--- 1097,1103 ----
     --  is done in a-except, so that we can hide the traceback frames internal
     --  to this package
  
!    procedure Allocate_End is null;
  
     -------------------
     -- Set_Dead_Beef --
*************** package body GNAT.Debug_Pools is
*** 1476,1483 ****
        Header_Block_Size_Was_Less_Than_0 : Boolean := True;
  
     begin
-       <<Deallocate_Label>>
- 
        declare
           Lock : Scope_Lock;
           pragma Unreferenced (Lock);
--- 1463,1468 ----
*************** package body GNAT.Debug_Pools is
*** 1518,1525 ****
                 Put (Output_File (Pool), "), at ");
  
                 Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                          Deallocate_Label'Address,
!                          Code_Address_For_Deallocate_End);
                 Print_Traceback (Output_File (Pool),
                                  "   Memory was allocated at ",
                                  Header.Alloc_Traceback);
--- 1503,1510 ----
                 Put (Output_File (Pool), "), at ");
  
                 Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                          Deallocate'Code_Address,
!                          Deallocate_End'Code_Address);
                 Print_Traceback (Output_File (Pool),
                                  "   Memory was allocated at ",
                                  Header.Alloc_Traceback);
*************** package body GNAT.Debug_Pools is
*** 1569,1576 ****
                   (Find_Or_Create_Traceback
                        (Pool, Dealloc,
                         Header.Block_Size,
!                        Deallocate_Label'Address,
!                        Code_Address_For_Deallocate_End)),
                 Next               => System.Null_Address,
                 Block_Size         => -Header.Block_Size);
  
--- 1554,1561 ----
                   (Find_Or_Create_Traceback
                        (Pool, Dealloc,
                         Header.Block_Size,
!                        Deallocate'Code_Address,
!                        Deallocate_End'Code_Address)),
                 Next               => System.Null_Address,
                 Block_Size         => -Header.Block_Size);
  
*************** package body GNAT.Debug_Pools is
*** 1608,1615 ****
                 Put (Output_File (Pool),
                      "error: Freeing Null_Address, at ");
                 Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                          Deallocate_Label'Address,
!                          Code_Address_For_Deallocate_End);
                 return;
              end if;
           end if;
--- 1593,1600 ----
                 Put (Output_File (Pool),
                      "error: Freeing Null_Address, at ");
                 Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                          Deallocate'Code_Address,
!                          Deallocate_End'Code_Address);
                 return;
              end if;
           end if;
*************** package body GNAT.Debug_Pools is
*** 1629,1636 ****
              Put (Output_File (Pool),
                   "error: Freeing not allocated storage, at ");
              Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                       Deallocate_Label'Address,
!                       Code_Address_For_Deallocate_End);
           end if;
  
        elsif Header_Block_Size_Was_Less_Than_0 then
--- 1614,1621 ----
              Put (Output_File (Pool),
                   "error: Freeing not allocated storage, at ");
              Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                       Deallocate'Code_Address,
!                       Deallocate_End'Code_Address);
           end if;
  
        elsif Header_Block_Size_Was_Less_Than_0 then
*************** package body GNAT.Debug_Pools is
*** 1640,1647 ****
              Put (Output_File (Pool),
                   "error: Freeing already deallocated storage, at ");
              Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                       Deallocate_Label'Address,
!                       Code_Address_For_Deallocate_End);
              Print_Traceback (Output_File (Pool),
                               "   Memory already deallocated at ",
                              To_Traceback (Header.Dealloc_Traceback));
--- 1625,1632 ----
              Put (Output_File (Pool),
                   "error: Freeing already deallocated storage, at ");
              Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                       Deallocate'Code_Address,
!                       Deallocate_End'Code_Address);
              Print_Traceback (Output_File (Pool),
                               "   Memory already deallocated at ",
                              To_Traceback (Header.Dealloc_Traceback));
*************** package body GNAT.Debug_Pools is
*** 1661,1671 ****
  
     --  This is making assumptions about code order that may be invalid ???
  
!    procedure Deallocate_End is
!    begin
!       <<Deallocate_End_Label>>
!       Code_Address_For_Deallocate_End := Deallocate_End_Label'Address;
!    end Deallocate_End;
  
     -----------------
     -- Dereference --
--- 1646,1652 ----
  
     --  This is making assumptions about code order that may be invalid ???
  
!    procedure Deallocate_End is null;
  
     -----------------
     -- Dereference --
*************** package body GNAT.Debug_Pools is
*** 1690,1697 ****
        --  now invalid pointer would appear as valid). Instead, we prefer
        --  optimum performance for dereferences.
  
-       <<Dereference_Label>>
- 
        if not Valid then
           if Pool.Raise_Exceptions then
              raise Accessing_Not_Allocated_Storage;
--- 1671,1676 ----
*************** package body GNAT.Debug_Pools is
*** 1699,1706 ****
              Put (Output_File (Pool),
                   "error: Accessing not allocated storage, at ");
              Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                       Dereference_Label'Address,
!                       Code_Address_For_Dereference_End);
           end if;
  
        else
--- 1678,1685 ----
              Put (Output_File (Pool),
                   "error: Accessing not allocated storage, at ");
              Put_Line (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                       Deallocate'Code_Address,
!                       Dereference_End'Code_Address);
           end if;
  
        else
*************** package body GNAT.Debug_Pools is
*** 1714,1721 ****
                      "error: Accessing deallocated storage, at ");
                 Put_Line
                   (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                   Dereference_Label'Address,
!                   Code_Address_For_Dereference_End);
                 Print_Traceback (Output_File (Pool), "  First deallocation at ",
                                  To_Traceback (Header.Dealloc_Traceback));
                 Print_Traceback (Output_File (Pool), "  Initial allocation at ",
--- 1693,1700 ----
                      "error: Accessing deallocated storage, at ");
                 Put_Line
                   (Output_File (Pool), Pool.Stack_Trace_Depth, null,
!                   Deallocate'Code_Address,
!                   Dereference_End'Code_Address);
                 Print_Traceback (Output_File (Pool), "  First deallocation at ",
                                  To_Traceback (Header.Dealloc_Traceback));
                 Print_Traceback (Output_File (Pool), "  Initial allocation at ",
*************** package body GNAT.Debug_Pools is
*** 1735,1745 ****
  
     --  This is making assumptions about code order that may be invalid ???
  
!    procedure Dereference_End is
!    begin
!       <<Dereference_End_Label>>
!       Code_Address_For_Dereference_End := Dereference_End_Label'Address;
!    end Dereference_End;
  
     ----------------
     -- Print_Info --
--- 1714,1720 ----
  
     --  This is making assumptions about code order that may be invalid ???
  
!    procedure Dereference_End is null;
  
     ----------------
     -- Print_Info --
*************** package body GNAT.Debug_Pools is
*** 2512,2521 ****
        Put_Line (Standard_Output, S);
     end Stdout_Put_Line;
  
- --  Package initialization
- 
- begin
-    Allocate_End;
-    Deallocate_End;
-    Dereference_End;
  end GNAT.Debug_Pools;
--- 2487,2490 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-debpoo.ads gcc-14.1.0/gcc/ada/libgnat/g-debpoo.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-debpoo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-debpoo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-debuti.adb gcc-14.1.0/gcc/ada/libgnat/g-debuti.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-debuti.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-debuti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-debuti.ads gcc-14.1.0/gcc/ada/libgnat/g-debuti.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-debuti.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-debuti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with System;
*** 39,46 ****
  package GNAT.Debug_Utilities is
     pragma Pure;
  
!    Address_64 : constant Boolean := Standard'Address_Size = 64;
!    --  Set true if 64 bit addresses (assumes only 32 and 64 are possible)
  
     Address_Image_Length : constant := 13 + 10 * Boolean'Pos (Address_64);
     --  Length of string returned by Image function for an address
--- 39,46 ----
  package GNAT.Debug_Utilities is
     pragma Pure;
  
!    Address_64 : constant Boolean := System.Memory_Size = 2**64;
!    --  Set true if 64-bit addresses (assumes only 32 and 64 are possible)
  
     Address_Image_Length : constant := 13 + 10 * Boolean'Pos (Address_64);
     --  Length of string returned by Image function for an address
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-decstr.adb gcc-14.1.0/gcc/ada/libgnat/g-decstr.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-decstr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-decstr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-decstr.ads gcc-14.1.0/gcc/ada/libgnat/g-decstr.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-decstr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-decstr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-deutst.ads gcc-14.1.0/gcc/ada/libgnat/g-deutst.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-deutst.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-deutst.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-diopit.adb gcc-14.1.0/gcc/ada/libgnat/g-diopit.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-diopit.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-diopit.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-diopit.ads gcc-14.1.0/gcc/ada/libgnat/g-diopit.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-diopit.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-diopit.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-dirope.adb gcc-14.1.0/gcc/ada/libgnat/g-dirope.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-dirope.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-dirope.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Directory_Operations i
*** 636,642 ****
  
        if not Is_Open (Dir) then
           Free (Dir);
-          Dir := Null_Dir;
           raise Directory_Error;
        end if;
     end Open;
--- 636,641 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-dirope.ads gcc-14.1.0/gcc/ada/libgnat/g-dirope.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-dirope.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-dirope.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Directory_Operations is
*** 210,217 ****
     procedure Open (Dir : out Dir_Type; Dir_Name : Dir_Name_Str);
     --  Opens the directory named by Dir_Name and returns a Dir_Type value
     --  that refers to this directory, and is positioned at the first entry.
!    --  Raises Directory_Error if Dir_Name cannot be accessed. In that case
!    --  Dir will be set to Null_Dir.
  
     procedure Close (Dir : in out Dir_Type);
     --  Closes the directory stream referred to by Dir. After calling Close
--- 210,216 ----
     procedure Open (Dir : out Dir_Type; Dir_Name : Dir_Name_Str);
     --  Opens the directory named by Dir_Name and returns a Dir_Type value
     --  that refers to this directory, and is positioned at the first entry.
!    --  Raises Directory_Error if Dir_Name cannot be accessed.
  
     procedure Close (Dir : in out Dir_Type);
     --  Closes the directory stream referred to by Dir. After calling Close
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-dynhta.adb gcc-14.1.0/gcc/ada/libgnat/g-dynhta.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-dynhta.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-dynhta.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Dynamic_HTables is
*** 56,64 ****
        --  range of Bucket_Range_Type.
  
        return
!         ((Left  and Mask) * Half)
              or
!          (Right and Mask);
     end Hash_Two_Keys;
  
     -------------------
--- 56,64 ----
        --  range of Bucket_Range_Type.
  
        return
!         (Left  and Mask) * Half
              or
!         (Right and Mask);
     end Hash_Two_Keys;
  
     -------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-dynhta.ads gcc-14.1.0/gcc/ada/libgnat/g-dynhta.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-dynhta.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-dynhta.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-dyntab.adb gcc-14.1.0/gcc/ada/libgnat/g-dyntab.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-dyntab.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-dyntab.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-dyntab.ads gcc-14.1.0/gcc/ada/libgnat/g-dyntab.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-dyntab.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-dyntab.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-eacodu.adb gcc-14.1.0/gcc/ada/libgnat/g-eacodu.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-eacodu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-eacodu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-encstr.adb gcc-14.1.0/gcc/ada/libgnat/g-encstr.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-encstr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-encstr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2007-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2007-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-encstr.ads gcc-14.1.0/gcc/ada/libgnat/g-encstr.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-encstr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-encstr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-enutst.ads gcc-14.1.0/gcc/ada/libgnat/g-enutst.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-enutst.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-enutst.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-excact.adb gcc-14.1.0/gcc/ada/libgnat/g-excact.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-excact.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-excact.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-excact.ads gcc-14.1.0/gcc/ada/libgnat/g-excact.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-excact.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-excact.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-except.ads gcc-14.1.0/gcc/ada/libgnat/g-except.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-except.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-except.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-exctra.adb gcc-14.1.0/gcc/ada/libgnat/g-exctra.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-exctra.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-exctra.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-exctra.ads gcc-14.1.0/gcc/ada/libgnat/g-exctra.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-exctra.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-exctra.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-expect.adb gcc-14.1.0/gcc/ada/libgnat/g-expect.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-expect.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-expect.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-expect.ads gcc-14.1.0/gcc/ada/libgnat/g-expect.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-expect.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-expect.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-exptty.adb gcc-14.1.0/gcc/ada/libgnat/g-exptty.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-exptty.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-exptty.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2023, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-exptty.ads gcc-14.1.0/gcc/ada/libgnat/g-exptty.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-exptty.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-exptty.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2023, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-flocon.ads gcc-14.1.0/gcc/ada/libgnat/g-flocon.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-flocon.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-flocon.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-forstr.adb gcc-14.1.0/gcc/ada/libgnat/g-forstr.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-forstr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-forstr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-forstr.ads gcc-14.1.0/gcc/ada/libgnat/g-forstr.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-forstr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-forstr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-gfmafu.ads gcc-14.1.0/gcc/ada/libgnat/g-gfmafu.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-gfmafu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-gfmafu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-graphs.adb gcc-14.1.0/gcc/ada/libgnat/g-graphs.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-graphs.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-graphs.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-graphs.ads gcc-14.1.0/gcc/ada/libgnat/g-graphs.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-graphs.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-graphs.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-heasor.adb gcc-14.1.0/gcc/ada/libgnat/g-heasor.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-heasor.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-heasor.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-heasor.ads gcc-14.1.0/gcc/ada/libgnat/g-heasor.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-heasor.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-heasor.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-hesora.adb gcc-14.1.0/gcc/ada/libgnat/g-hesora.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-hesora.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-hesora.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-hesora.ads gcc-14.1.0/gcc/ada/libgnat/g-hesora.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-hesora.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-hesora.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-hesorg.adb gcc-14.1.0/gcc/ada/libgnat/g-hesorg.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-hesorg.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-hesorg.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-hesorg.ads gcc-14.1.0/gcc/ada/libgnat/g-hesorg.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-hesorg.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-hesorg.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-htable.adb gcc-14.1.0/gcc/ada/libgnat/g-htable.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-htable.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-htable.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-htable.ads gcc-14.1.0/gcc/ada/libgnat/g-htable.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-htable.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-htable.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-io.adb gcc-14.1.0/gcc/ada/libgnat/g-io.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-io.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-io.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-io.ads gcc-14.1.0/gcc/ada/libgnat/g-io.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-io.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-io.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-io_aux.adb gcc-14.1.0/gcc/ada/libgnat/g-io_aux.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-io_aux.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-io_aux.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-io_aux.ads gcc-14.1.0/gcc/ada/libgnat/g-io_aux.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-io_aux.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-io_aux.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-lists.adb gcc-14.1.0/gcc/ada/libgnat/g-lists.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-lists.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-lists.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-lists.ads gcc-14.1.0/gcc/ada/libgnat/g-lists.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-lists.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-lists.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-locfil.adb gcc-14.1.0/gcc/ada/libgnat/g-locfil.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-locfil.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-locfil.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-locfil.ads gcc-14.1.0/gcc/ada/libgnat/g-locfil.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-locfil.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-locfil.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-mbdira.adb gcc-14.1.0/gcc/ada/libgnat/g-mbdira.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-mbdira.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-mbdira.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-mbdira.ads gcc-14.1.0/gcc/ada/libgnat/g-mbdira.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-mbdira.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-mbdira.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-mbflra.adb gcc-14.1.0/gcc/ada/libgnat/g-mbflra.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-mbflra.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-mbflra.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-mbflra.ads gcc-14.1.0/gcc/ada/libgnat/g-mbflra.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-mbflra.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-mbflra.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-md5.adb gcc-14.1.0/gcc/ada/libgnat/g-md5.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-md5.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-md5.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-md5.ads gcc-14.1.0/gcc/ada/libgnat/g-md5.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-md5.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-md5.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-memdum.adb gcc-14.1.0/gcc/ada/libgnat/g-memdum.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-memdum.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-memdum.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-memdum.ads gcc-14.1.0/gcc/ada/libgnat/g-memdum.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-memdum.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-memdum.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-moreex.adb gcc-14.1.0/gcc/ada/libgnat/g-moreex.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-moreex.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-moreex.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-moreex.ads gcc-14.1.0/gcc/ada/libgnat/g-moreex.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-moreex.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-moreex.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-os_lib.adb gcc-14.1.0/gcc/ada/libgnat/g-os_lib.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-os_lib.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-os_lib.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-os_lib.ads gcc-14.1.0/gcc/ada/libgnat/g-os_lib.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-os_lib.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-os_lib.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-pehage.adb gcc-14.1.0/gcc/ada/libgnat/g-pehage.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-pehage.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-pehage.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-pehage.ads gcc-14.1.0/gcc/ada/libgnat/g-pehage.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-pehage.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-pehage.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-rannum.adb gcc-14.1.0/gcc/ada/libgnat/g-rannum.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-rannum.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-rannum.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-rannum.ads gcc-14.1.0/gcc/ada/libgnat/g-rannum.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-rannum.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-rannum.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-regexp.adb gcc-14.1.0/gcc/ada/libgnat/g-regexp.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-regexp.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-regexp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-regexp.ads gcc-14.1.0/gcc/ada/libgnat/g-regexp.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-regexp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-regexp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 52,63 ****
  --       it provides "globbing patterns" that are useful in implementing
  --       unix or DOS style wildcard matching for file names.
  
! --     GNAT.Regpat (files g-regpat.ads/s-regpat.ads/g-regpat.adb)
  --       This is a more complete implementation of Unix-style regular
! --       expressions, copied from the original V7 style regular expression
! --       library written in C by Henry Spencer. It is functionally the
! --       same as this library, and uses the same internal data structures
! --       stored in a binary compatible manner.
  
  --     GNAT.Spitbol.Patterns (files g-spipat.ads/g-spipat.adb)
  --       This is a completely general pattern matching package based on the
--- 52,62 ----
  --       it provides "globbing patterns" that are useful in implementing
  --       unix or DOS style wildcard matching for file names.
  
! --     GNAT.Regpat (files g-regpat.ads/s-regpat.ads/s-regpat.adb)
  --       This is a more complete implementation of Unix-style regular
! --       expressions, copied from the Perl regular expression engine,
! --       written originally in C by Henry Spencer. It is functionally the
! --       same as that library.
  
  --     GNAT.Spitbol.Patterns (files g-spipat.ads/g-spipat.adb)
  --       This is a completely general pattern matching package based on the
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-regist.adb gcc-14.1.0/gcc/ada/libgnat/g-regist.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-regist.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-regist.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2001-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2001-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-regist.ads gcc-14.1.0/gcc/ada/libgnat/g-regist.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-regist.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-regist.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-regpat.adb gcc-14.1.0/gcc/ada/libgnat/g-regpat.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-regpat.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-regpat.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2023, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-regpat.ads gcc-14.1.0/gcc/ada/libgnat/g-regpat.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-regpat.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-regpat.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-rewdat.adb gcc-14.1.0/gcc/ada/libgnat/g-rewdat.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-rewdat.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-rewdat.adb	Tue May  7 06:51:37 2024
***************
*** 5,11 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 5,11 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-rewdat.ads gcc-14.1.0/gcc/ada/libgnat/g-rewdat.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-rewdat.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-rewdat.ads	Tue May  7 06:51:37 2024
***************
*** 5,11 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 5,11 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sechas.adb gcc-14.1.0/gcc/ada/libgnat/g-sechas.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sechas.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sechas.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sechas.ads gcc-14.1.0/gcc/ada/libgnat/g-sechas.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sechas.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sechas.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sehamd.adb gcc-14.1.0/gcc/ada/libgnat/g-sehamd.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sehamd.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sehamd.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sehamd.ads gcc-14.1.0/gcc/ada/libgnat/g-sehamd.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sehamd.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sehamd.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sehash.adb gcc-14.1.0/gcc/ada/libgnat/g-sehash.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sehash.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sehash.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sehash.ads gcc-14.1.0/gcc/ada/libgnat/g-sehash.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sehash.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sehash.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sercom.adb gcc-14.1.0/gcc/ada/libgnat/g-sercom.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sercom.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sercom.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sercom.ads gcc-14.1.0/gcc/ada/libgnat/g-sercom.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sercom.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sercom.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2023, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sercom__linux.adb gcc-14.1.0/gcc/ada/libgnat/g-sercom__linux.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sercom__linux.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sercom__linux.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2023, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Serial_Communications
*** 304,310 ****
           Current.c_cc (VMIN)  := char'Val (0);
           Current.c_cc (VTIME) := char'Val (Natural (Timeout * 10));
  
!          Current.c_lflag := Current.c_lflag or (not ICANON);
        end if;
  
        Res := cfsetispeed (Current'Address, C_Data_Rate (Rate));
--- 304,310 ----
           Current.c_cc (VMIN)  := char'Val (0);
           Current.c_cc (VTIME) := char'Val (Natural (Timeout * 10));
  
!          Current.c_lflag := Current.c_lflag or not ICANON;
        end if;
  
        Res := cfsetispeed (Current'Address, C_Data_Rate (Rate));
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sercom__mingw.adb gcc-14.1.0/gcc/ada/libgnat/g-sercom__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sercom__mingw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sercom__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2023, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sestin.ads gcc-14.1.0/gcc/ada/libgnat/g-sestin.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sestin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sestin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2004-2023, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2004-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sets.adb gcc-14.1.0/gcc/ada/libgnat/g-sets.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sets.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sets.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2023, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sets.ads gcc-14.1.0/gcc/ada/libgnat/g-sets.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sets.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sets.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2023, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2024, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sha1.adb gcc-14.1.0/gcc/ada/libgnat/g-sha1.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sha1.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sha1.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sha1.ads gcc-14.1.0/gcc/ada/libgnat/g-sha1.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sha1.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sha1.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sha224.ads gcc-14.1.0/gcc/ada/libgnat/g-sha224.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sha224.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sha224.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sha256.ads gcc-14.1.0/gcc/ada/libgnat/g-sha256.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sha256.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sha256.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2023, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sha384.ads gcc-14.1.0/gcc/ada/libgnat/g-sha384.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sha384.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sha384.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2023, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sha512.ads gcc-14.1.0/gcc/ada/libgnat/g-sha512.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sha512.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sha512.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2023, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2024, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-shsh32.adb gcc-14.1.0/gcc/ada/libgnat/g-shsh32.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-shsh32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-shsh32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-shsh32.ads gcc-14.1.0/gcc/ada/libgnat/g-shsh32.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-shsh32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-shsh32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-shsh64.adb gcc-14.1.0/gcc/ada/libgnat/g-shsh64.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-shsh64.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-shsh64.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-shsh64.ads gcc-14.1.0/gcc/ada/libgnat/g-shsh64.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-shsh64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-shsh64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-shshco.adb gcc-14.1.0/gcc/ada/libgnat/g-shshco.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-shshco.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-shshco.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-shshco.ads gcc-14.1.0/gcc/ada/libgnat/g-shshco.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-shshco.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-shshco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-soccon.ads gcc-14.1.0/gcc/ada/libgnat/g-soccon.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-soccon.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-soccon.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socket.adb gcc-14.1.0/gcc/ada/libgnat/g-socket.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-socket.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socket.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body GNAT.Sockets is
*** 120,126 ****
                  IPv6_Only           => SOSC.IPV6_V6ONLY,
                  Send_Timeout        => SOSC.SO_SNDTIMEO,
                  Receive_Timeout     => SOSC.SO_RCVTIMEO,
!                 Busy_Polling        => SOSC.SO_BUSY_POLL];
     --  ??? Note: for OpenSolaris, Receive_Packet_Info should be IP_RECVPKTINFO,
     --  but for Linux compatibility this constant is the same as IP_PKTINFO.
  
--- 120,127 ----
                  IPv6_Only           => SOSC.IPV6_V6ONLY,
                  Send_Timeout        => SOSC.SO_SNDTIMEO,
                  Receive_Timeout     => SOSC.SO_RCVTIMEO,
!                 Busy_Polling        => SOSC.SO_BUSY_POLL,
!                 Bind_To_Device      => SOSC.SO_BINDTODEVICE];
     --  ??? Note: for OpenSolaris, Receive_Packet_Info should be IP_RECVPKTINFO,
     --  but for Linux compatibility this constant is the same as IP_PKTINFO.
  
*************** package body GNAT.Sockets is
*** 1413,1429 ****
        use type C.unsigned;
        use type C.unsigned_char;
  
        V8  : aliased Two_Ints;
        V4  : aliased C.int;
        U4  : aliased C.unsigned;
        V1  : aliased C.unsigned_char;
        VT  : aliased Timeval;
        Len : aliased C.int;
        Add : System.Address;
        Res : C.int;
        Opt : Option_Type (Name);
        Onm : Interfaces.C.int;
- 
     begin
        if Name in Specific_Option_Name then
           Onm := Options (Name);
--- 1414,1434 ----
        use type C.unsigned;
        use type C.unsigned_char;
  
+       --  SOSC.IF_NAMESIZE may be not defined, ensure that we have at least
+       --  a valid range for VS declared below.
+       NS  : constant Interfaces.C.size_t :=
+               (if SOSC.IF_NAMESIZE = -1 then 256 else SOSC.IF_NAMESIZE);
        V8  : aliased Two_Ints;
        V4  : aliased C.int;
        U4  : aliased C.unsigned;
        V1  : aliased C.unsigned_char;
+       VS  : aliased C.char_array (1 .. NS); -- for devices name
        VT  : aliased Timeval;
        Len : aliased C.int;
        Add : System.Address;
        Res : C.int;
        Opt : Option_Type (Name);
        Onm : Interfaces.C.int;
     begin
        if Name in Specific_Option_Name then
           Onm := Options (Name);
*************** package body GNAT.Sockets is
*** 1491,1496 ****
--- 1496,1506 ----
           =>
              Len := V8'Size / 8;
              Add := V8'Address;
+ 
+          when Bind_To_Device
+          =>
+             Len := VS'Length;
+             Add := VS'Address;
        end case;
  
        Res :=
*************** package body GNAT.Sockets is
*** 1589,1594 ****
--- 1599,1607 ----
              else
                 Opt.Timeout := To_Duration (VT);
              end if;
+ 
+          when Bind_To_Device =>
+             Opt.Device := ASU.To_Unbounded_String (C.To_Ada (VS));
        end case;
  
        return Opt;
*************** package body GNAT.Sockets is
*** 2616,2621 ****
--- 2629,2638 ----
        V4  : aliased C.int;
        U4  : aliased C.unsigned;
        V1  : aliased C.unsigned_char;
+       VS  : aliased C.char_array
+               (1 .. (if Option.Name = Bind_To_Device
+                      then C.size_t (ASU.Length (Option.Device) + 1)
+                      else 0));
        VT  : aliased Timeval;
        Len : C.int;
        Add : System.Address := Null_Address;
*************** package body GNAT.Sockets is
*** 2754,2759 ****
--- 2771,2781 ----
                 Len := VT'Size / 8;
                 Add := VT'Address;
              end if;
+ 
+          when Bind_To_Device =>
+             VS := C.To_C (ASU.To_String (Option.Device));
+             Len := C.int (VS'Length);
+             Add := VS'Address;
        end case;
  
        if Option.Name in Specific_Option_Name then
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socket.ads gcc-14.1.0/gcc/ada/libgnat/g-socket.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-socket.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socket.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Sockets is
*** 841,846 ****
--- 841,849 ----
        --  Sets the approximate time in microseconds to busy poll on a blocking
        --  receive when there is no data.
  
+       Bind_To_Device,  -- SO_BINDTODEVICE
+       --  Bind to a specific NIC (Network Interface Controller)
+ 
        -------------------------------
        -- IP_Protocol_For_TCP_Level --
        -------------------------------
*************** package GNAT.Sockets is
*** 986,991 ****
--- 989,996 ----
                Receive_Timeout =>
              Timeout : Timeval_Duration;
  
+          when Bind_To_Device =>
+             Device : Ada.Strings.Unbounded.Unbounded_String;
        end case;
     end record;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socket__dummy.adb gcc-14.1.0/gcc/ada/libgnat/g-socket__dummy.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-socket__dummy.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socket__dummy.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socket__dummy.ads gcc-14.1.0/gcc/ada/libgnat/g-socket__dummy.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-socket__dummy.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socket__dummy.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socpol.adb gcc-14.1.0/gcc/ada/libgnat/g-socpol.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-socpol.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socpol.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socpol.ads gcc-14.1.0/gcc/ada/libgnat/g-socpol.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-socpol.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socpol.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socpol__dummy.adb gcc-14.1.0/gcc/ada/libgnat/g-socpol__dummy.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-socpol__dummy.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socpol__dummy.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2023, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2024, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socpol__dummy.ads gcc-14.1.0/gcc/ada/libgnat/g-socpol__dummy.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-socpol__dummy.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socpol__dummy.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2023, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2024, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socthi.adb gcc-14.1.0/gcc/ada/libgnat/g-socthi.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-socthi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socthi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socthi.ads gcc-14.1.0/gcc/ada/libgnat/g-socthi.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-socthi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socthi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socthi__dummy.adb gcc-14.1.0/gcc/ada/libgnat/g-socthi__dummy.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-socthi__dummy.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socthi__dummy.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socthi__dummy.ads gcc-14.1.0/gcc/ada/libgnat/g-socthi__dummy.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-socthi__dummy.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socthi__dummy.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socthi__mingw.adb gcc-14.1.0/gcc/ada/libgnat/g-socthi__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-socthi__mingw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socthi__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socthi__mingw.ads gcc-14.1.0/gcc/ada/libgnat/g-socthi__mingw.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-socthi__mingw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socthi__mingw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socthi__vxworks.adb gcc-14.1.0/gcc/ada/libgnat/g-socthi__vxworks.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-socthi__vxworks.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socthi__vxworks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-socthi__vxworks.ads gcc-14.1.0/gcc/ada/libgnat/g-socthi__vxworks.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-socthi__vxworks.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-socthi__vxworks.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-soliop.ads gcc-14.1.0/gcc/ada/libgnat/g-soliop.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-soliop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-soliop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-soliop__lynxos.ads gcc-14.1.0/gcc/ada/libgnat/g-soliop__lynxos.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-soliop__lynxos.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-soliop__lynxos.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-soliop__mingw.ads gcc-14.1.0/gcc/ada/libgnat/g-soliop__mingw.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-soliop__mingw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-soliop__mingw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-soliop__qnx.ads gcc-14.1.0/gcc/ada/libgnat/g-soliop__qnx.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-soliop__qnx.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-soliop__qnx.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-soliop__solaris.ads gcc-14.1.0/gcc/ada/libgnat/g-soliop__solaris.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-soliop__solaris.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-soliop__solaris.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sopowa.adb gcc-14.1.0/gcc/ada/libgnat/g-sopowa.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sopowa.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sopowa.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sopowa__mingw.adb gcc-14.1.0/gcc/ada/libgnat/g-sopowa__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sopowa__mingw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sopowa__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sopowa__posix.adb gcc-14.1.0/gcc/ada/libgnat/g-sopowa__posix.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sopowa__posix.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sopowa__posix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sothco.adb gcc-14.1.0/gcc/ada/libgnat/g-sothco.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sothco.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sothco.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sothco.ads gcc-14.1.0/gcc/ada/libgnat/g-sothco.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sothco.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sothco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2008-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2008-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sothco__dummy.adb gcc-14.1.0/gcc/ada/libgnat/g-sothco__dummy.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sothco__dummy.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sothco__dummy.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2008-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2008-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sothco__dummy.ads gcc-14.1.0/gcc/ada/libgnat/g-sothco__dummy.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sothco__dummy.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sothco__dummy.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-souinf.ads gcc-14.1.0/gcc/ada/libgnat/g-souinf.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-souinf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-souinf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package GNAT.Source_Info with
*** 41,47 ****
     Abstract_State =>
       (Source_Code_Information with
           External => (Async_Writers, Async_Readers)),
!    Annotate => (GNATprove, Always_Return)
  is
     pragma Preelaborate;
     --  Note that this unit is Preelaborate, but not Pure, that's because the
--- 41,47 ----
     Abstract_State =>
       (Source_Code_Information with
           External => (Async_Writers, Async_Readers)),
!    Always_Terminates
  is
     pragma Preelaborate;
     --  Note that this unit is Preelaborate, but not Pure, that's because the
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-spchge.adb gcc-14.1.0/gcc/ada/libgnat/g-spchge.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-spchge.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-spchge.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-spchge.ads gcc-14.1.0/gcc/ada/libgnat/g-spchge.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-spchge.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-spchge.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-speche.adb gcc-14.1.0/gcc/ada/libgnat/g-speche.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-speche.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-speche.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-speche.ads gcc-14.1.0/gcc/ada/libgnat/g-speche.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-speche.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-speche.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-spipat.adb gcc-14.1.0/gcc/ada/libgnat/g-spipat.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-spipat.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-spipat.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-spipat.ads gcc-14.1.0/gcc/ada/libgnat/g-spipat.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-spipat.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-spipat.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 58,64 ****
  --       stored in a binary compatible manner.
  
  --     GNAT.Spitbol.Patterns (files g-spipat.ads/g-spipat.adb)
! --       This is a completely general patterm matching package based on the
  --       pattern language of SNOBOL4, as implemented in SPITBOL. The pattern
  --       language is modeled on context free grammars, with context sensitive
  --       extensions that provide full (type 0) computational capabilities.
--- 58,64 ----
  --       stored in a binary compatible manner.
  
  --     GNAT.Spitbol.Patterns (files g-spipat.ads/g-spipat.adb)
! --       This is a completely general pattern matching package based on the
  --       pattern language of SNOBOL4, as implemented in SPITBOL. The pattern
  --       language is modeled on context free grammars, with context sensitive
  --       extensions that provide full (type 0) computational capabilities.
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-spitbo.adb gcc-14.1.0/gcc/ada/libgnat/g-spitbo.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-spitbo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-spitbo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-spitbo.ads gcc-14.1.0/gcc/ada/libgnat/g-spitbo.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-spitbo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-spitbo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-spogwa.adb gcc-14.1.0/gcc/ada/libgnat/g-spogwa.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-spogwa.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-spogwa.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-spogwa.ads gcc-14.1.0/gcc/ada/libgnat/g-spogwa.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-spogwa.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-spogwa.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sptabo.ads gcc-14.1.0/gcc/ada/libgnat/g-sptabo.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sptabo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sptabo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sptain.ads gcc-14.1.0/gcc/ada/libgnat/g-sptain.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sptain.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sptain.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sptavs.ads gcc-14.1.0/gcc/ada/libgnat/g-sptavs.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sptavs.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sptavs.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sse.ads gcc-14.1.0/gcc/ada/libgnat/g-sse.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-sse.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sse.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-ssvety.ads gcc-14.1.0/gcc/ada/libgnat/g-ssvety.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-ssvety.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-ssvety.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2009-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2009-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-sthcso.adb gcc-14.1.0/gcc/ada/libgnat/g-sthcso.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-sthcso.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-sthcso.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-stheme.adb gcc-14.1.0/gcc/ada/libgnat/g-stheme.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-stheme.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-stheme.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-strhas.ads gcc-14.1.0/gcc/ada/libgnat/g-strhas.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-strhas.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-strhas.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-string.adb gcc-14.1.0/gcc/ada/libgnat/g-string.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-string.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-string.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-string.ads gcc-14.1.0/gcc/ada/libgnat/g-string.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-string.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-string.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-strspl.ads gcc-14.1.0/gcc/ada/libgnat/g-strspl.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-strspl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-strspl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-stseme.adb gcc-14.1.0/gcc/ada/libgnat/g-stseme.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-stseme.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-stseme.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-stsifd__sockets.adb gcc-14.1.0/gcc/ada/libgnat/g-stsifd__sockets.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-stsifd__sockets.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-stsifd__sockets.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-table.adb gcc-14.1.0/gcc/ada/libgnat/g-table.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-table.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-table.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-table.ads gcc-14.1.0/gcc/ada/libgnat/g-table.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-table.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-table.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-tasloc.adb gcc-14.1.0/gcc/ada/libgnat/g-tasloc.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-tasloc.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-tasloc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-tasloc.ads gcc-14.1.0/gcc/ada/libgnat/g-tasloc.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-tasloc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-tasloc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-timsta.adb gcc-14.1.0/gcc/ada/libgnat/g-timsta.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-timsta.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-timsta.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-timsta.ads gcc-14.1.0/gcc/ada/libgnat/g-timsta.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-timsta.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-timsta.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2008-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2008-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-traceb.adb gcc-14.1.0/gcc/ada/libgnat/g-traceb.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-traceb.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-traceb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 1999-2023, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 1999-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-traceb.ads gcc-14.1.0/gcc/ada/libgnat/g-traceb.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-traceb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-traceb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-trasym.adb gcc-14.1.0/gcc/ada/libgnat/g-trasym.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-trasym.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-trasym.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-trasym.ads gcc-14.1.0/gcc/ada/libgnat/g-trasym.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-trasym.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-trasym.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-tty.adb gcc-14.1.0/gcc/ada/libgnat/g-tty.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-tty.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-tty.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-tty.ads gcc-14.1.0/gcc/ada/libgnat/g-tty.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-tty.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-tty.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-u3spch.adb gcc-14.1.0/gcc/ada/libgnat/g-u3spch.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-u3spch.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-u3spch.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-u3spch.ads gcc-14.1.0/gcc/ada/libgnat/g-u3spch.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-u3spch.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-u3spch.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-utf_32.adb gcc-14.1.0/gcc/ada/libgnat/g-utf_32.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-utf_32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-utf_32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-utf_32.ads gcc-14.1.0/gcc/ada/libgnat/g-utf_32.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-utf_32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-utf_32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-wispch.adb gcc-14.1.0/gcc/ada/libgnat/g-wispch.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-wispch.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-wispch.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-wispch.ads gcc-14.1.0/gcc/ada/libgnat/g-wispch.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-wispch.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-wispch.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-wistsp.ads gcc-14.1.0/gcc/ada/libgnat/g-wistsp.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-wistsp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-wistsp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-zspche.adb gcc-14.1.0/gcc/ada/libgnat/g-zspche.adb
*** gcc-13.2.0/gcc/ada/libgnat/g-zspche.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-zspche.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-zspche.ads gcc-14.1.0/gcc/ada/libgnat/g-zspche.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-zspche.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-zspche.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/g-zstspl.ads gcc-14.1.0/gcc/ada/libgnat/g-zstspl.ads
*** gcc-13.2.0/gcc/ada/libgnat/g-zstspl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/g-zstspl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/gnat.ads gcc-14.1.0/gcc/ada/libgnat/gnat.ads
*** gcc-13.2.0/gcc/ada/libgnat/gnat.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/gnat.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1992-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1992-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-c.adb gcc-14.1.0/gcc/ada/libgnat/i-c.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-c.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-c.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 186,192 ****
       (Item     : char_array;
        Trim_Nul : Boolean := True) return String
     is
!       Count : Natural := 0;
        From  : size_t;
  
     begin
--- 186,192 ----
       (Item     : char_array;
        Trim_Nul : Boolean := True) return String
     is
!       Count : Natural;
        From  : size_t;
  
     begin
*************** is
*** 200,205 ****
--- 200,206 ----
              pragma Loop_Invariant
                (for all J in Item'First .. From when J /= From =>
                   Item (J) /= nul);
+             pragma Loop_Variant (Increases => From);
  
              if From > Item'Last then
                 raise Terminator_Error;
*************** is
*** 257,262 ****
--- 258,264 ----
              pragma Loop_Invariant
                (for all J in Item'First .. From when J /= From =>
                  Item (J) /= nul);
+             pragma Loop_Variant (Increases => From);
  
              if From > Item'Last then
                 raise Terminator_Error;
*************** is
*** 333,338 ****
--- 335,341 ----
              pragma Loop_Invariant
                (for all J in Item'First .. From when J /= From =>
                   Item (J) /= wide_nul);
+             pragma Loop_Variant (Increases => From);
  
              if From > Item'Last then
                 raise Terminator_Error;
*************** is
*** 390,395 ****
--- 393,399 ----
              pragma Loop_Invariant
                (for all J in Item'First .. From when J /= From =>
                  Item (J) /= wide_nul);
+             pragma Loop_Variant (Increases => From);
  
              if From > Item'Last then
                 raise Terminator_Error;
*************** is
*** 466,471 ****
--- 470,476 ----
              pragma Loop_Invariant
                (for all J in Item'First .. From when J /= From =>
                   Item (J) /= char16_nul);
+             pragma Loop_Variant (Increases => From);
  
              if From > Item'Last then
                 raise Terminator_Error;
*************** is
*** 523,528 ****
--- 528,534 ----
              pragma Loop_Invariant
                (for all J in Item'First .. From when J /= From =>
                  Item (J) /= char16_nul);
+             pragma Loop_Variant (Increases => From);
  
              if From > Item'Last then
                 raise Terminator_Error;
*************** is
*** 599,604 ****
--- 605,612 ----
              pragma Loop_Invariant
                (for all J in Item'First .. From when J /= From =>
                   Item (J) /= char32_nul);
+             pragma Loop_Invariant (From <= Item'First + C_Length_Ghost (Item));
+             pragma Loop_Variant (Increases => From);
  
              if From > Item'Last then
                 raise Terminator_Error;
*************** is
*** 656,661 ****
--- 664,670 ----
              pragma Loop_Invariant
                (for all J in Item'First .. From when J /= From =>
                  Item (J) /= char32_nul);
+             pragma Loop_Variant (Increases => From);
  
              if From > Item'Last then
                 raise Terminator_Error;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-c.ads gcc-14.1.0/gcc/ada/libgnat/i-c.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-c.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-c.ads	Tue May  7 06:51:37 2024
*************** pragma Assertion_Policy (Pre
*** 24,35 ****
                           Contract_Cases => Ignore,
                           Ghost          => Ignore);
  
  with System.Parameters;
  
! package Interfaces.C
!   with SPARK_Mode, Pure
  is
-    pragma Annotate (GNATprove, Always_Return, C);
  
     --  Each of the types declared in Interfaces.C is C-compatible.
  
--- 24,37 ----
                           Contract_Cases => Ignore,
                           Ghost          => Ignore);
  
+ with System;
  with System.Parameters;
  
! package Interfaces.C with
!   SPARK_Mode,
!   Pure,
!   Always_Terminates
  is
  
     --  Each of the types declared in Interfaces.C is C-compatible.
  
*************** is
*** 82,91 ****
     --  a non-private system.address type.
  
     type ptrdiff_t is
!      range -(2 ** (System.Parameters.ptr_bits - Integer'(1))) ..
!            +(2 ** (System.Parameters.ptr_bits - Integer'(1)) - 1);
  
!    type size_t is mod 2 ** System.Parameters.ptr_bits;
  
     --  Boolean type
  
--- 84,92 ----
     --  a non-private system.address type.
  
     type ptrdiff_t is
!      range -System.Memory_Size / 2 .. System.Memory_Size / 2 - 1;
  
!    type size_t is mod System.Memory_Size;
  
     --  Boolean type
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cexten.ads gcc-14.1.0/gcc/ada/libgnat/i-cexten.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-cexten.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cexten.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cexten__128.ads gcc-14.1.0/gcc/ada/libgnat/i-cexten__128.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-cexten__128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cexten__128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cheri.adb gcc-14.1.0/gcc/ada/libgnat/i-cheri.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-cheri.adb	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/i-cheri.adb	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,75 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                       I N T E R F A C E S . C H E R I                    --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --                     Copyright (C) 2023-2024, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package body Interfaces.CHERI is
+ 
+    ----------------------------
+    -- Set_Address_And_Bounds --
+    ----------------------------
+ 
+    procedure Set_Address_And_Bounds
+      (Cap     : in out Capability;
+       Address :        System.Storage_Elements.Integer_Address;
+       Length  :        Bounds_Length)
+    is
+    begin
+       Cap := Capability_With_Address_And_Bounds (Cap, Address, Length);
+    end Set_Address_And_Bounds;
+ 
+    ----------------------------------
+    -- Set_Address_And_Exact_Bounds --
+    ----------------------------------
+ 
+    procedure Set_Address_And_Exact_Bounds
+      (Cap     : in out Capability;
+       Address :        System.Storage_Elements.Integer_Address;
+       Length  :        Bounds_Length)
+    is
+    begin
+       Cap := Capability_With_Address_And_Exact_Bounds (Cap, Address, Length);
+    end Set_Address_And_Exact_Bounds;
+ 
+    ----------------------
+    -- Align_Address_Up --
+    ----------------------
+ 
+    function Align_Address_Up
+      (Address : System.Storage_Elements.Integer_Address;
+       Length  : Bounds_Length)
+       return System.Storage_Elements.Integer_Address
+    is
+       Mask : constant System.Storage_Elements.Integer_Address :=
+         Representable_Alignment_Mask (Length);
+    begin
+       return (Address + (not Mask)) and Mask;
+    end Align_Address_Up;
+ 
+ end Interfaces.CHERI;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cheri.ads gcc-14.1.0/gcc/ada/libgnat/i-cheri.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-cheri.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/i-cheri.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,486 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                       I N T E R F A C E S . C H E R I                    --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --                     Copyright (C) 2023-2024, AdaCore                     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package provides bindings to CHERI intrinsics and some common
+ --  operations on capabilities.
+ 
+ with System;
+ with System.Storage_Elements;
+ 
+ package Interfaces.CHERI with
+   Preelaborate,
+   No_Elaboration_Code_All
+ is
+ 
+    use type System.Storage_Elements.Integer_Address;
+ 
+    subtype Capability is System.Address;
+ 
+    type Bounds_Length is range 0 .. System.Memory_Size - 1 with
+      Size => System.Word_Size;
+ 
+    ----------------------------
+    -- Capability Permissions --
+    ----------------------------
+ 
+    type Permissions_Mask is mod System.Memory_Size with
+      Size => System.Word_Size;
+ 
+    Global                  : constant Permissions_Mask := 16#0001#;
+    Executive               : constant Permissions_Mask := 16#0002#;
+    Mutable_Load            : constant Permissions_Mask := 16#0040#;
+    Compartment_Id          : constant Permissions_Mask := 16#0080#;
+    Branch_Sealed_Pair      : constant Permissions_Mask := 16#0100#;
+    Access_System_Registers : constant Permissions_Mask := 16#0200#;
+    Permit_Unseal           : constant Permissions_Mask := 16#0400#;
+    Permit_Seal             : constant Permissions_Mask := 16#0800#;
+    Permit_Store_Local      : constant Permissions_Mask := 16#1000#;
+    Permit_Store_Capability : constant Permissions_Mask := 16#2000#;
+    Permit_Load_Capability  : constant Permissions_Mask := 16#4000#;
+    Permit_Execute          : constant Permissions_Mask := 16#8000#;
+    Permit_Store            : constant Permissions_Mask := 16#1_0000#;
+    Permit_Load             : constant Permissions_Mask := 16#2_0000#;
+ 
+    function "and"
+      (Cap  : Capability;
+       Mask : Permissions_Mask)
+       return Capability
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_perms_and";
+    --  Perform a bitwise-AND of a capability permissions and the specified
+    --  mask, returning the new capability.
+ 
+    function Get_Permissions (Cap : Capability) return Permissions_Mask with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_perms_get";
+    --  Get the permissions of a capability
+ 
+    function Clear_Permissions
+      (Cap  : Capability;
+       Mask : Permissions_Mask)
+       return Capability is
+         (Cap and not Mask);
+    --  Clear the specified permissions of a capability, returning the new
+    --  capability.
+ 
+    function Has_All_Permissions
+      (Cap         : Capability;
+       Permissions : Permissions_Mask)
+       return Boolean is
+         ((Get_Permissions (Cap) and Permissions) = Permissions);
+    --  Query whether all of the specified permission bits are set in a
+    --  capability's permissions flags.
+ 
+    -----------------------
+    -- Common Intrinsics --
+    -----------------------
+ 
+    function Capability_With_Address
+      (Cap  : Capability;
+       Addr : System.Storage_Elements.Integer_Address)
+       return Capability
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_address_set";
+    --  Return a new capability with the same bounds and permissions as Cap,
+    --  with the address set to Addr.
+ 
+    function Get_Address
+      (Cap : Capability)
+       return System.Storage_Elements.Integer_Address
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_address_get";
+    --  Get the address of a capability
+ 
+    procedure Set_Address
+      (Cap  : in out Capability;
+       Addr :        System.Storage_Elements.Integer_Address)
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_address_set";
+    --  Set the address of a capability
+ 
+    function Get_Base
+      (Cap : Capability)
+       return System.Storage_Elements.Integer_Address
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_base_get";
+    --  Get the lower bound of a capability
+ 
+    function Get_Offset (Cap : Capability) return Bounds_Length with
+      Import,  Convention => Intrinsic,
+      External_Name => "__builtin_cheri_offset_get";
+    --  Get the difference between the address and the lower bound of a
+    --  capability.
+ 
+    procedure Set_Offset
+      (Cap    : in out Capability;
+       Offset :        Bounds_Length)
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_offset_set";
+    --  Set the address relative to the lower bound of a capability
+ 
+    function Capability_With_Offset
+      (Cap   : Capability;
+       Value : Bounds_Length)
+       return Capability
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_offset_set";
+    --  Set the address relative to the lower bound of a capability, returning
+    --  the new capability.
+ 
+    function Increment_Offset
+      (Cap   : Capability;
+       Value : Bounds_Length)
+       return Capability
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_offset_increment";
+    --  Increment the address of a capability by the specified amount,
+    --  returning the new capability.
+ 
+    function Get_Length (Cap : Capability) return Bounds_Length with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_length_get";
+    --  Get the length of a capability's bounds
+ 
+    function Clear_Tag (Cap : Capability) return Capability with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_tag_clear";
+    --  Clear the capability validity tag, returning the new capability
+ 
+    function Get_Tag (Cap : Capability) return Boolean with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_tag_get";
+    --  Get the validty tag of a capability
+ 
+    function Is_Valid (Cap : Capability) return Boolean is (Get_Tag (Cap));
+    --  Check whether a capability is valid
+ 
+    function Is_Invalid (Cap : Capability) return Boolean is
+      (not Is_Valid (Cap));
+    --  Check whether a capability is invalid
+ 
+    function Is_Equal_Exact (A, B : Capability) return Boolean with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_equal_exact";
+    --  Check for bit equality between two capabilities
+ 
+    function Is_Subset (A, B : Capability) return Boolean with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_subset_test";
+    --  Returns True if capability A is a subset or equal to capability B
+ 
+    --------------------
+    -- Bounds Setting --
+    --------------------
+ 
+    function Capability_With_Bounds
+      (Cap    : Capability;
+       Length : Bounds_Length)
+       return Capability
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_bounds_set";
+    --  Narrow the bounds of a capability so that the lower bound is the
+    --  current address and the upper bound is suitable for the Length,
+    --  returning the new capability.
+    --
+    --  Note that the effective bounds of the returned capability may be wider
+    --  than the range Get_Address (Cap) .. Get_Address (Cap) + Length - 1 due
+    --  to capability compression, but they will always be a subset of the
+    --  original bounds.
+ 
+    function Capability_With_Exact_Bounds
+      (Cap    : Capability;
+       Length : Bounds_Length)
+       return Capability
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_bounds_set_exact";
+    --  Narrow the bounds of a capability so that the lower bound is the
+    --  current address and the upper bound is suitable for the Length,
+    --  returning the new capability.
+    --
+    --  This is similar to Capability_With_Bounds but will clear the capability
+    --  tag in the returned capability if the bounds cannot be set exactly, due
+    --  to capability compression.
+ 
+    function Capability_With_Address_And_Bounds
+      (Cap     : Capability;
+       Address : System.Storage_Elements.Integer_Address;
+       Length  : Bounds_Length)
+       return Capability is
+         (Capability_With_Bounds
+            (Capability_With_Address (Cap, Address), Length));
+    --  Set the address and narrow the bounds of the capability so that the
+    --  lower bound is Address and the upper bound is Address + Length,
+    --  returning the new capability.
+    --
+    --  Note that the effective bounds of the returned capability may be wider
+    --  than the range Address .. Address + Length - 1 due to capability
+    --  compression, but they will always be a subset of the original bounds.
+ 
+    function Capability_With_Address_And_Exact_Bounds
+      (Cap     : Capability;
+       Address : System.Storage_Elements.Integer_Address;
+       Length  : Bounds_Length)
+       return Capability is
+         (Capability_With_Exact_Bounds
+            (Capability_With_Address (Cap, Address), Length));
+    --  Set the address and narrow the bounds of the capability so that the
+    --  lower bound is Address and the upper bound is Address + Length,
+    --  returning the new capability.
+    --
+    --  This is similar to Capability_With_Address_And_Bounds but will clear the
+    --  capability tag in the returned capability if the bounds cannot be set
+    --  exactly, due to capability compression.
+ 
+    procedure Set_Bounds
+      (Cap    : in out Capability;
+       Length :        Bounds_Length)
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_bounds_set";
+    --  Narrow the bounds of a capability so that the lower bound is the
+    --  current address and the upper bound is suitable for the Length.
+    --
+    --  Note that the effective bounds of the output capability may be wider
+    --  than the range Get_Address (Cap) .. Get_Address (Cap) + Length - 1 due
+    --  to capability compression, but they will always be a subset of the
+    --  original bounds.
+ 
+    procedure Set_Exact_Bounds
+      (Cap    : in out Capability;
+       Length :        Bounds_Length)
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_bounds_set_exact";
+    --  Narrow the bounds of a capability so that the lower bound is the
+    --  current address and the upper bound is suitable for the Length.
+    --
+    --  This is similar to Set_Bounds but will clear the capability tag if the
+    --  bounds cannot be set exactly, due to capability compression.
+ 
+    procedure Set_Address_And_Bounds
+      (Cap     : in out Capability;
+       Address :        System.Storage_Elements.Integer_Address;
+       Length  :        Bounds_Length)
+    with
+      Inline_Always;
+    --  Set the address and narrow the bounds of the capability so that the
+    --  lower bound is Address and the upper bound is Address + Length.
+    --
+    --  Note that the effective bounds of the output capability may be wider
+    --  than the range Address .. Address + Length - 1 due to capability
+    --  compression, but they will always be a subset of the original bounds.
+ 
+    procedure Set_Address_And_Exact_Bounds
+      (Cap     : in out Capability;
+       Address :        System.Storage_Elements.Integer_Address;
+       Length  :        Bounds_Length)
+    with
+      Inline_Always;
+    --  Set the address and narrow the bounds of the capability so that the
+    --  lower bound is Address and the upper bound is Address + Length.
+    --
+    --  This is similar to Set_Address_And_Bounds but will clear the capability
+    --  tag if the bounds cannot be set exactly, due to capability compression.
+ 
+    function Representable_Length (Length : Bounds_Length) return Bounds_Length
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_round_representable_length";
+    --  Returns the length that a capability would have after using Set_Bounds
+    --  to set the Length (assuming appropriate alignment of the base).
+ 
+    function Representable_Alignment_Mask
+      (Length : Bounds_Length)
+       return System.Storage_Elements.Integer_Address
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_representable_alignment_mask";
+    --  Returns a bitmask that can be used to align an address downwards such
+    --  that it is sufficiently aligned to create a precisely bounded
+    --  capability.
+ 
+    function Align_Address_Down
+      (Address : System.Storage_Elements.Integer_Address;
+       Length  : Bounds_Length)
+       return System.Storage_Elements.Integer_Address is
+         (Address and Representable_Alignment_Mask (Length));
+    --  Align an address such that it is sufficiently aligned to create a
+    --  precisely bounded capability, rounding down if necessary.
+    --
+    --  Due to capability compression, the upper and lower bounds of a
+    --  capability must be aligned based on the length of the bounds to ensure
+    --  that the capability is representable. This function aligns an address
+    --  down to the next boundary if it is not already aligned.
+ 
+    function Capability_With_Address_Aligned_Down
+      (Cap    : Capability;
+       Length : Bounds_Length)
+       return Capability is
+         (Capability_With_Address
+           (Cap, Align_Address_Down (Get_Address (Cap), Length)));
+    --  Align a capability's address such that it is sufficiently aligned to
+    --  create a precisely bounded capability, rounding down if necessary.
+    --
+    --  Due to capability compression, the upper and lower bounds of a
+    --  capability must be aligned based on the length of the bounds to ensure
+    --  that the capability is representable. This function aligns an address
+    --  down to the next boundary if it is not already aligned.
+ 
+    function Align_Address_Up
+      (Address : System.Storage_Elements.Integer_Address;
+       Length  : Bounds_Length)
+       return System.Storage_Elements.Integer_Address
+    with
+      Inline;
+    --  Align an address such that it is sufficiently aligned to create a
+    --  precisely bounded capability, rounding upwards if necessary.
+    --
+    --  Due to capability compression, the upper and lower bounds of a
+    --  capability must be aligned based on the length of the bounds to ensure
+    --  that the capability is representable. This function aligns an address up
+    --  to the next boundary if it is not already aligned.
+ 
+    function Capability_With_Address_Aligned_Up
+      (Cap    : Capability;
+       Length : Bounds_Length)
+       return Capability is
+         (Capability_With_Address
+            (Cap, Align_Address_Up (Get_Address (Cap), Length)));
+    --  Align a capability's address such that it is sufficiently aligned to
+    --  create a precisely bounded capability, rounding upwards if necessary.
+    --
+    --  Due to capability compression, the upper and lower bounds of a
+    --  capability must be aligned based on the length of the bounds to ensure
+    --  that the capability is representable. This function aligns an address up
+    --  to the next boundary if it is not already aligned.
+ 
+    ------------------------------------------
+    -- Object Types, Sealing, and Unsealing --
+    ------------------------------------------
+ 
+    type Object_Type is
+      range -2**(System.Word_Size - 1) .. +2**(System.Word_Size - 1) - 1 with
+      Size => System.Word_Size;
+ 
+    Type_Unsealed : constant Object_Type := 0;
+    Type_Sentry   : constant Object_Type := 1;
+ 
+    function Get_Object_Type (Cap : Capability) return Object_Type with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_type_get";
+    --  Get the object type of a capability
+ 
+    function Is_Sealed (Cap : Capability) return Boolean with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_sealed_get";
+    --  Check whether a capability is sealed
+ 
+    function Is_Unsealed (Cap : Capability) return Boolean is
+      (not Is_Sealed (Cap));
+    --  Check whether a capability is unsealed
+ 
+    function Is_Sentry (Cap : Capability) return Boolean is
+      (Get_Object_Type (Cap) = Type_Sentry);
+    --  Check whether a capability is a sealed entry
+ 
+    function Create_Sentry (Cap : Capability) return Capability with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_seal_entry";
+    --  Create a sealed entry and return the new capability.
+ 
+    function Seal
+      (Cap         : Capability;
+       Sealing_Cap : Capability)
+       return Capability
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_seal";
+    --  Seal a capability with a sealing capability, by setting the object type
+    --  of the capability to the Sealing_Cap's value, returning the sealed
+    --  capability.
+ 
+    function Unseal
+      (Cap           : Capability;
+       Unsealing_Cap : Capability)
+       return Capability
+    with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_unseal";
+    --  Unseal a capability with an unsealing capability, by checking the object
+    --  type of the capability against the Sealing_Cap's value, returning the
+    --  unsealed capability.
+ 
+    -----------------------------------
+    -- Capability Register Accessors --
+    -----------------------------------
+ 
+    function Get_PCC return System.Address with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_program_counter_get";
+    --  Get the Program Counter Capablity (PCC)
+ 
+    function Get_DDC return System.Address with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_global_data_get";
+    --  Get the Default Data Capability (DDC)
+ 
+    function Get_CSP return System.Address with
+      Import, Convention => Intrinsic,
+      External_Name => "__builtin_cheri_stack_get";
+    --  Get the Capability Stack Pointer (CSP)
+ 
+    ---------------------------
+    -- Capability Exceptions --
+    ---------------------------
+ 
+    Capability_Bound_Error : exception;
+    --  An out-of-bounds access was attempted
+ 
+    Capability_Permission_Error : exception;
+    --  An attempted access exceeded the permissions granted by a capability
+ 
+    Capability_Sealed_Error : exception;
+    --  A sealed capability was dereferenced
+ 
+    Capability_Tag_Error : exception;
+    --  An invalid capability was dereferenced
+ 
+ end Interfaces.CHERI;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cobol.adb gcc-14.1.0/gcc/ada/libgnat/i-cobol.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-cobol.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cobol.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cobol.ads gcc-14.1.0/gcc/ada/libgnat/i-cobol.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-cobol.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cobol.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                             (ASCII Version)                              --
  --                                                                          --
! --          Copyright (C) 1993-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                             (ASCII Version)                              --
  --                                                                          --
! --          Copyright (C) 1993-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cpoint.adb gcc-14.1.0/gcc/ada/libgnat/i-cpoint.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-cpoint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cpoint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,47 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Interfaces.C.Strings; use Interfaces.C.Strings;
! with System;               use System;
  
  with Ada.Unchecked_Conversion;
  
  package body Interfaces.C.Pointers is
  
!    type Addr is mod 2 ** System.Parameters.ptr_bits;
  
!    function To_Pointer is new Ada.Unchecked_Conversion (Addr,      Pointer);
!    function To_Addr    is new Ada.Unchecked_Conversion (Pointer,   Addr);
!    function To_Addr    is new Ada.Unchecked_Conversion (ptrdiff_t, Addr);
!    function To_Ptrdiff is new Ada.Unchecked_Conversion (Addr,      ptrdiff_t);
  
     Elmt_Size : constant ptrdiff_t :=
                   (Element_Array'Component_Size
--- 29,48 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Interfaces.C.Strings;    use Interfaces.C.Strings;
! with System.Storage_Elements; use System.Storage_Elements;
! with System;                  use System;
  
  with Ada.Unchecked_Conversion;
  
  package body Interfaces.C.Pointers is
  
!    subtype Offset is Storage_Offset;
  
!    function To_Pointer is new Ada.Unchecked_Conversion (Address,   Pointer);
!    function To_Addr    is new Ada.Unchecked_Conversion (Pointer,   Address);
!    function To_Offset  is new Ada.Unchecked_Conversion (ptrdiff_t, Offset);
!    function To_Ptrdiff is new Ada.Unchecked_Conversion (Offset,    ptrdiff_t);
  
     Elmt_Size : constant ptrdiff_t :=
                   (Element_Array'Component_Size
*************** package body Interfaces.C.Pointers is
*** 59,65 ****
           raise Pointer_Error;
        end if;
  
!       return To_Pointer (To_Addr (Left) + To_Addr (Elmt_Size * Right));
     end "+";
  
     function "+" (Left : ptrdiff_t; Right : Pointer) return Pointer is
--- 60,66 ----
           raise Pointer_Error;
        end if;
  
!       return To_Pointer (To_Addr (Left) + To_Offset (Elmt_Size * Right));
     end "+";
  
     function "+" (Left : ptrdiff_t; Right : Pointer) return Pointer is
*************** package body Interfaces.C.Pointers is
*** 68,74 ****
           raise Pointer_Error;
        end if;
  
!       return To_Pointer (To_Addr (Elmt_Size * Left) + To_Addr (Right));
     end "+";
  
     ---------
--- 69,75 ----
           raise Pointer_Error;
        end if;
  
!       return To_Pointer (To_Offset (Elmt_Size * Left) + To_Addr (Right));
     end "+";
  
     ---------
*************** package body Interfaces.C.Pointers is
*** 81,87 ****
           raise Pointer_Error;
        end if;
  
!       return To_Pointer (To_Addr (Left) - To_Addr (Right * Elmt_Size));
     end "-";
  
     function "-" (Left : Pointer; Right : Pointer) return ptrdiff_t is
--- 82,88 ----
           raise Pointer_Error;
        end if;
  
!       return To_Pointer (To_Addr (Left) - To_Offset (Right * Elmt_Size));
     end "-";
  
     function "-" (Left : Pointer; Right : Pointer) return ptrdiff_t is
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cpoint.ads gcc-14.1.0/gcc/ada/libgnat/i-cpoint.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-cpoint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cpoint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cstrea.adb gcc-14.1.0/gcc/ada/libgnat/i-cstrea.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-cstrea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cstrea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Interfaces.C_Streams is
*** 130,133 ****
--- 130,142 ----
        return C_setvbuf (stream, buffer, mode, size);
     end setvbuf;
  
+    ------------
+    -- unlink --
+    ------------
+ 
+    function unlink (filename : chars) return int is
+    begin
+       return System.CRTL.unlink (filename);
+    end unlink;
+ 
  end Interfaces.C_Streams;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cstrea.ads gcc-14.1.0/gcc/ada/libgnat/i-cstrea.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-cstrea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cstrea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Interfaces.C_Streams is
*** 197,204 ****
     function ungetc (c : int; stream : FILEs) return int
       renames System.CRTL.ungetc;
  
!    function unlink (filename : chars) return int
!      renames System.CRTL.unlink;
  
     ---------------------
     -- Extra functions --
--- 197,203 ----
     function ungetc (c : int; stream : FILEs) return int
       renames System.CRTL.ungetc;
  
!    function unlink (filename : chars) return int;
  
     ---------------------
     -- Extra functions --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cstrin.adb gcc-14.1.0/gcc/ada/libgnat/i-cstrin.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-cstrin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cstrin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 92,103 ****
  
     procedure Free (Item : in out chars_ptr) is
     begin
!       if Item = Null_Ptr then
!          return;
        end if;
- 
-       Memory_Free (Item);
-       Item := Null_Ptr;
     end Free;
  
     --------------------
--- 92,101 ----
  
     procedure Free (Item : in out chars_ptr) is
     begin
!       if Item /= Null_Ptr then
!          Memory_Free (Item);
!          Item := Null_Ptr;
        end if;
     end Free;
  
     --------------------
*************** is
*** 187,192 ****
--- 185,192 ----
  
     function Position_Of_Nul (Into : char_array) return size_t is
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
        for J in Into'Range loop
           if Into (J) = nul then
              return J;
*************** is
*** 194,199 ****
--- 194,201 ----
        end loop;
  
        return Into'Last + 1;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Position_Of_Nul;
  
     ------------
*************** is
*** 226,231 ****
--- 228,235 ----
        Nul_Check : Boolean := False) return chars_ptr
     is
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
        if Item = null then
           return Null_Ptr;
        elsif Nul_Check
*************** is
*** 235,240 ****
--- 239,246 ----
        else
           return To_chars_ptr (Item (Item'First)'Address);
        end if;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end To_Chars_Ptr;
  
     ------------
*************** is
*** 302,307 ****
--- 308,315 ----
        Length : size_t) return char_array
     is
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
        if Item = Null_Ptr then
           raise Dereference_Error;
        end if;
*************** is
*** 328,333 ****
--- 336,343 ----
  
           return Result;
        end;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Value;
  
     function Value (Item : chars_ptr) return String is
*************** is
*** 336,344 ****
     end Value;
  
     function Value (Item : chars_ptr; Length : size_t) return String is
!       Result : char_array (0 .. Length);
  
     begin
        --  As per AI-00177, this is equivalent to:
  
        --    To_Ada (Value (Item, Length) & nul);
--- 346,358 ----
     end Value;
  
     function Value (Item : chars_ptr; Length : size_t) return String is
!       Result : String (1 .. Natural (Length));
!       C : char;
  
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
+ 
        --  As per AI-00177, this is equivalent to:
  
        --    To_Ada (Value (Item, Length) & nul);
*************** is
*** 347,362 ****
           raise Dereference_Error;
        end if;
  
!       for J in 0 .. Length - 1 loop
!          Result (J) := Peek (Item + J);
  
!          if Result (J) = nul then
!             return To_Ada (Result (0 .. J));
           end if;
        end loop;
  
!       Result (Length) := nul;
!       return To_Ada (Result);
     end Value;
  
  end Interfaces.C.Strings;
--- 361,379 ----
           raise Dereference_Error;
        end if;
  
!       for J in Result'Range loop
!          C := Peek (Item + size_t (J - 1));
  
!          if C = nul then
!             return Result (1 .. J - 1);
!          else
!             Result (J) := To_Ada (C);
           end if;
        end loop;
  
!       return Result;
! 
!       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Value;
  
  end Interfaces.C.Strings;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-cstrin.ads gcc-14.1.0/gcc/ada/libgnat/i-cstrin.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-cstrin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-cstrin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 36,50 ****
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
  --  setting the corresponding assertion policy to Ignore. These preconditions
! --  protect from Dereference_Error and Update_Error, but not from
! --  Storage_Error.
  
  pragma Assertion_Policy (Pre => Ignore);
  
  package Interfaces.C.Strings with
    SPARK_Mode     => On,
    Abstract_State => (C_Memory),
!   Initializes    => (C_Memory)
  is
     pragma Preelaborate;
  
--- 36,51 ----
  --  Preconditions in this unit are meant for analysis only, not for run-time
  --  checking, so that the expected exceptions are raised. This is enforced by
  --  setting the corresponding assertion policy to Ignore. These preconditions
! --  protect from Constraint_Error, Dereference_Error and Update_Error, but not
! --  from Storage_Error.
  
  pragma Assertion_Policy (Pre => Ignore);
  
  package Interfaces.C.Strings with
    SPARK_Mode     => On,
    Abstract_State => (C_Memory),
!   Initializes    => (C_Memory),
!   Always_Terminates
  is
     pragma Preelaborate;
  
*************** is
*** 67,73 ****
       (Item      : char_array_access;
        Nul_Check : Boolean := False) return chars_ptr
     with
!      SPARK_Mode => Off;
  
     function New_Char_Array (Chars : char_array) return chars_ptr with
       Volatile_Function,
--- 68,74 ----
       (Item      : char_array_access;
        Nul_Check : Boolean := False) return chars_ptr
     with
!      SPARK_Mode => Off;  --  To_Chars_Ptr'Result is aliased with Item
  
     function New_Char_Array (Chars : char_array) return chars_ptr with
       Volatile_Function,
*************** is
*** 94,100 ****
       (Item   : chars_ptr;
        Length : size_t) return char_array
     with
!      Pre    => Item /= Null_Ptr,
       Global => (Input => C_Memory);
  
     function Value (Item : chars_ptr) return String with
--- 95,101 ----
       (Item   : chars_ptr;
        Length : size_t) return char_array
     with
!      Pre    => Item /= Null_Ptr and then Length /= 0,
       Global => (Input => C_Memory);
  
     function Value (Item : chars_ptr) return String with
*************** is
*** 105,111 ****
       (Item   : chars_ptr;
        Length : size_t) return String
     with
!      Pre    => Item /= Null_Ptr,
       Global => (Input => C_Memory);
  
     function Strlen (Item : chars_ptr) return size_t with
--- 106,112 ----
       (Item   : chars_ptr;
        Length : size_t) return String
     with
!      Pre    => Item /= Null_Ptr and then Length /= 0,
       Global => (Input => C_Memory);
  
     function Strlen (Item : chars_ptr) return size_t with
*************** is
*** 120,129 ****
     with
       Pre    =>
         Item /= Null_Ptr
!          and then
!       (if Check then
!          Strlen (Item) <= size_t'Last - Offset
!            and then Strlen (Item) + Offset <= Chars'Length),
       Global => (In_Out => C_Memory);
  
     procedure Update
--- 121,129 ----
     with
       Pre    =>
         Item /= Null_Ptr
!          and then (Chars'First /= 0 or else Chars'Last /= size_t'Last)
!          and then Chars'Length <= size_t'Last - Offset
!          and then Chars'Length + Offset <= Strlen (Item),
       Global => (In_Out => C_Memory);
  
     procedure Update
*************** is
*** 134,143 ****
     with
       Pre    =>
         Item /= Null_Ptr
!          and then
!       (if Check then
!          Strlen (Item) <= size_t'Last - Offset
!            and then Strlen (Item) + Offset <= Str'Length),
       Global => (In_Out => C_Memory);
  
     Update_Error : exception;
--- 134,141 ----
     with
       Pre    =>
         Item /= Null_Ptr
!          and then Str'Length <= size_t'Last - Offset
!          and then Str'Length + Offset <= Strlen (Item),
       Global => (In_Out => C_Memory);
  
     Update_Error : exception;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-fortra.adb gcc-14.1.0/gcc/ada/libgnat/i-fortra.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-fortra.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-fortra.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-pacdec.adb gcc-14.1.0/gcc/ada/libgnat/i-pacdec.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-pacdec.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-pacdec.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-pacdec.ads gcc-14.1.0/gcc/ada/libgnat/i-pacdec.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-pacdec.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-pacdec.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-vxwoio.adb gcc-14.1.0/gcc/ada/libgnat/i-vxwoio.adb
*** gcc-13.2.0/gcc/ada/libgnat/i-vxwoio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-vxwoio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2002-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2002-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-vxwoio.ads gcc-14.1.0/gcc/ada/libgnat/i-vxwoio.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-vxwoio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-vxwoio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2002-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2002-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-vxwork.ads gcc-14.1.0/gcc/ada/libgnat/i-vxwork.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-vxwork.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-vxwork.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/i-vxwork__x86.ads gcc-14.1.0/gcc/ada/libgnat/i-vxwork__x86.ads
*** gcc-13.2.0/gcc/ada/libgnat/i-vxwork__x86.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/i-vxwork__x86.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/interfac.ads gcc-14.1.0/gcc/ada/libgnat/interfac.ads
*** gcc-13.2.0/gcc/ada/libgnat/interfac.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/interfac.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 35,44 ****
  
  --  This is the compiler version of this unit
  
! package Interfaces is
     pragma No_Elaboration_Code_All;
     pragma Pure;
-    pragma Annotate (GNATprove, Always_Return, Interfaces);
  
     --  All identifiers in this unit are implementation defined
  
--- 35,45 ----
  
  --  This is the compiler version of this unit
  
! package Interfaces with
!   Always_Terminates
! is
     pragma No_Elaboration_Code_All;
     pragma Pure;
  
     --  All identifiers in this unit are implementation defined
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/interfac__2020.ads gcc-14.1.0/gcc/ada/libgnat/interfac__2020.ads
*** gcc-13.2.0/gcc/ada/libgnat/interfac__2020.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/interfac__2020.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 35,44 ****
  
  --  This is the runtime version of this unit (not used during GNAT build)
  
! package Interfaces is
     pragma No_Elaboration_Code_All;
     pragma Pure;
-    pragma Annotate (GNATprove, Always_Return, Interfaces);
  
     --  All identifiers in this unit are implementation defined
  
--- 35,45 ----
  
  --  This is the runtime version of this unit (not used during GNAT build)
  
! package Interfaces with
!   Always_Terminates
! is
     pragma No_Elaboration_Code_All;
     pragma Pure;
  
     --  All identifiers in this unit are implementation defined
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/libada.gpr gcc-14.1.0/gcc/ada/libgnat/libada.gpr
*** gcc-13.2.0/gcc/ada/libgnat/libada.gpr	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/libada.gpr	Tue May  7 06:51:37 2024
***************
*** 6,18 ****
  -- 1. Create a new directory (e.g. "rts-debug"), then copy the adainclude
  --    directory from the reference runtime that you want to rebuild.
  --    You can find the relevant adainclude directory by running the command
! --    gprls [--target=<target>] [--RTS=<runtime>] and using the adainclude
  --    directory listed. For example:
! --     $ cd <reference directory>
! --     $ mkdir rts-debug
! --     $ cd rts-debug
! --     $ cp -a `gprls -v | grep adainclude` .
! --     $ cd adainclude
  --
  --    or under Windows:
  --
--- 6,19 ----
  -- 1. Create a new directory (e.g. "rts-debug"), then copy the adainclude
  --    directory from the reference runtime that you want to rebuild.
  --    You can find the relevant adainclude directory by running the command
! --    gprls -v [--target=<target>] [--RTS=<runtime>] and using the adainclude
  --    directory listed. For example:
! --    $ cd <reference directory>
! --    $ mkdir rts-debug
! --    $ cd rts-debug
! --    $ cp -a `gprls -v \
! --      [--target=<target>] --RTS=native | grep adainclude` .
! --    $ cd adainclude
  --
  --    or under Windows:
  --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/libgnat_common.gpr gcc-14.1.0/gcc/ada/libgnat/libgnat_common.gpr
*** gcc-13.2.0/gcc/ada/libgnat/libgnat_common.gpr	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/libgnat_common.gpr	Tue May  7 06:51:37 2024
*************** abstract project Libgnat_Common is
*** 5,11 ****
                     ("-I../include", "-DIN_RTS=1", "-fexceptions",
                      "-DSTANDALONE") &
                     External_As_List ("EXTRALIBFLAGS", " ");
!    Ada_Flags    := Common_Flags & ("-nostdinc", "-I../adainclude")
                     & Split (External ("ADAFLAGS", "-gnatpg"), " ");
     Library_Kind := External ("LIBRARY_KIND", "static");
  
--- 5,11 ----
                     ("-I../include", "-DIN_RTS=1", "-fexceptions",
                      "-DSTANDALONE") &
                     External_As_List ("EXTRALIBFLAGS", " ");
!    Ada_Flags    := Common_Flags & ("-nostdinc", "-I../adainclude", "-gnatg")
                     & Split (External ("ADAFLAGS", "-gnatpg"), " ");
     Library_Kind := External ("LIBRARY_KIND", "static");
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/memtrack.adb gcc-14.1.0/gcc/ada/libgnat/memtrack.adb
*** gcc-13.2.0/gcc/ada/libgnat/memtrack.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/memtrack.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-addima.adb gcc-14.1.0/gcc/ada/libgnat/s-addima.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-addima.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-addima.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-addima.ads gcc-14.1.0/gcc/ada/libgnat/s-addima.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-addima.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-addima.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-addope.adb gcc-14.1.0/gcc/ada/libgnat/s-addope.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-addope.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-addope.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-addope.ads gcc-14.1.0/gcc/ada/libgnat/s-addope.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-addope.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-addope.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-aoinar.adb gcc-14.1.0/gcc/ada/libgnat/s-aoinar.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-aoinar.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-aoinar.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-aoinar.ads gcc-14.1.0/gcc/ada/libgnat/s-aoinar.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-aoinar.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-aoinar.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-aomoar.adb gcc-14.1.0/gcc/ada/libgnat/s-aomoar.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-aomoar.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-aomoar.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-aomoar.ads gcc-14.1.0/gcc/ada/libgnat/s-aomoar.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-aomoar.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-aomoar.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-aotase.adb gcc-14.1.0/gcc/ada/libgnat/s-aotase.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-aotase.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-aotase.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-aotase.ads gcc-14.1.0/gcc/ada/libgnat/s-aotase.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-aotase.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-aotase.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-aridou.adb gcc-14.1.0/gcc/ada/libgnat/s-aridou.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-aridou.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-aridou.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,34 ****
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ pragma Annotate (Gnatcheck, Exempt_On, "Metrics_LSLOC",
+                  "limit exceeded due to proof code");
+ 
  with Ada.Unchecked_Conversion;
  with System.SPARK.Cut_Operations; use System.SPARK.Cut_Operations;
  
*************** is
*** 45,51 ****
                              Contract_Cases => Ignore,
                              Ghost          => Ignore,
                              Loop_Invariant => Ignore,
!                             Assert         => Ignore);
  
     pragma Suppress (Overflow_Check);
     pragma Suppress (Range_Check);
--- 48,55 ----
                              Contract_Cases => Ignore,
                              Ghost          => Ignore,
                              Loop_Invariant => Ignore,
!                             Assert         => Ignore,
!                             Assert_And_Cut => Ignore);
  
     pragma Suppress (Overflow_Check);
     pragma Suppress (Range_Check);
*************** is
*** 89,94 ****
--- 93,101 ----
       (On, "non-preelaborable call not allowed in preelaborated unit");
     pragma Warnings (On, "non-static constant in preelaborated unit");
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     -----------------------
     -- Local Subprograms --
     -----------------------
*************** is
*** 138,153 ****
       (Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (X1))
                      + Big_2xxSingle * Big (Double_Uns (X2))
                                      + Big (Double_Uns (X3)))
!    with Ghost;
     --  X1&X2&X3 as a big integer
  
-    function Big3 (X1, X2, X3 : Big_Integer) return Big_Integer is
-      (Big_2xxSingle * Big_2xxSingle * X1
-                     + Big_2xxSingle * X2
-                                     + X3)
-    with Ghost;
-    --  Version of Big3 on big integers
- 
     function Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) return Boolean
     with
       Post => Le3'Result = (Big3 (X1, X2, X3) <= Big3 (Y1, Y2, Y3));
--- 145,155 ----
       (Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (X1))
                      + Big_2xxSingle * Big (Double_Uns (X2))
                                      + Big (Double_Uns (X3)))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
     --  X1&X2&X3 as a big integer
  
     function Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) return Boolean
     with
       Post => Le3'Result = (Big3 (X1, X2, X3) <= Big3 (Y1, Y2, Y3));
*************** is
*** 169,177 ****
  
     function To_Neg_Int (A : Double_Uns) return Double_Int
     with
!      Annotate => (GNATprove, Always_Return),
!      Pre      => In_Double_Int_Range (-Big (A)),
!      Post     => Big (To_Neg_Int'Result) = -Big (A);
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1), then the corresponding nonpositive signed
     --  integer (obtained by negating the given value) is returned, otherwise
--- 171,178 ----
  
     function To_Neg_Int (A : Double_Uns) return Double_Int
     with
!      Pre  => In_Double_Int_Range (-Big (A)),
!      Post => Big (To_Neg_Int'Result) = -Big (A);
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1), then the corresponding nonpositive signed
     --  integer (obtained by negating the given value) is returned, otherwise
*************** is
*** 179,187 ****
  
     function To_Pos_Int (A : Double_Uns) return Double_Int
     with
!      Annotate => (GNATprove, Always_Return),
!      Pre      => In_Double_Int_Range (Big (A)),
!      Post     => Big (To_Pos_Int'Result) = Big (A);
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1) - 1, then the corresponding non-negative
     --  signed integer is returned, otherwise constraint error is raised.
--- 180,187 ----
  
     function To_Pos_Int (A : Double_Uns) return Double_Int
     with
!      Pre  => In_Double_Int_Range (Big (A)),
!      Post => Big (To_Pos_Int'Result) = Big (A);
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1) - 1, then the corresponding non-negative
     --  signed integer is returned, otherwise constraint error is raised.
*************** is
*** 307,312 ****
--- 307,317 ----
       Pre  => A * S = B * S + R and then S /= 0,
       Post => A = B + R / S;
  
+    procedure Lemma_Div_Mult (X : Big_Natural; Y : Big_Positive)
+    with
+      Ghost,
+      Post => X / Y * Y > X - Y;
+ 
     procedure Lemma_Double_Big_2xxSingle
     with
       Ghost,
*************** is
*** 645,650 ****
--- 650,656 ----
     is null;
     procedure Lemma_Div_Ge (X, Y, Z : Big_Integer) is null;
     procedure Lemma_Div_Lt (X, Y, Z : Big_Natural) is null;
+    procedure Lemma_Div_Mult (X : Big_Natural; Y : Big_Positive) is null;
     procedure Lemma_Double_Big_2xxSingle is null;
     procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Double_Uns) is null;
     procedure Lemma_Double_Shift (X : Single_Uns; S, S1 : Natural) is null;
*************** is
*** 811,816 ****
--- 817,824 ----
     -- Double_Divide --
     -------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Metrics_Cyclomatic_Complexity",
+                     "limit exceeded due to proof code");
     procedure Double_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
*************** is
*** 1069,1085 ****
  
        T1 := Ylo * Zlo;
  
-       pragma Assert (Big (T2) = Big (Double_Uns'(Yhi * Zlo))
-                               + Big (Double_Uns'(Ylo * Zhi)));
        Lemma_Mult_Distribution (Big_2xxSingle,
                                 Big (Double_Uns'(Yhi * Zlo)),
                                 Big (Double_Uns'(Ylo * Zhi)));
-       pragma Assert (Mult = Big_2xxSingle * Big (T2) + Big (T1));
        Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-       pragma Assert
-         (Mult = Big_2xxSingle * Big (T2)
-               + Big_2xxSingle * Big (Double_Uns (Hi (T1)))
-                               + Big (Double_Uns (Lo (T1))));
        Lemma_Mult_Distribution (Big_2xxSingle,
                                 Big (T2),
                                 Big (Double_Uns (Hi (T1))));
--- 1077,1086 ----
*************** is
*** 1087,1103 ****
  
        T2 := T2 + Hi (T1);
  
-       pragma Assert
-         (Mult = Big_2xxSingle * Big (T2) + Big (Double_Uns (Lo (T1))));
        Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
        Lemma_Mult_Distribution (Big_2xxSingle,
                                 Big (Double_Uns (Hi (T2))),
                                 Big (Double_Uns (Lo (T2))));
        Lemma_Double_Big_2xxSingle;
-       pragma Assert
-         (Mult = Big_2xxDouble * Big (Double_Uns (Hi (T2)))
-               + Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                               + Big (Double_Uns (Lo (T1))));
  
        if Hi (T2) /= 0 then
           R := X;
--- 1088,1098 ----
*************** is
*** 1231,1236 ****
--- 1226,1232 ----
  
        Prove_Signs;
     end Double_Divide;
+    pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_Cyclomatic_Complexity");
  
     ---------
     -- Le3 --
*************** is
*** 1468,1473 ****
--- 1464,1471 ----
                (Double_Uns'(2 ** (M - 1)), 2, Double_Uns'(2**M));
              pragma Assert (Big (Double_Uns'(2))**M = Big_2xx (M));
           end if;
+       else
+          pragma Assert (Big (Double_Uns'(2))**M = Big_2xx (M));
        end if;
     end Lemma_Powers_Of_2_Commutation;
  
*************** is
*** 1543,1557 ****
--- 1541,1593 ----
          Post => X / Double_Uns'(2) ** I / Double_Uns'(2)
            = X / Double_Uns'(2) ** (I + 1);
  
+       procedure Lemma_Quot_Rem (X, Div, Q, R : Double_Uns)
+       with
+         Ghost,
+         Pre  => Div /= 0
+           and then X = Q * Div + R
+           and then Q <= Double_Uns'Last / Div
+           and then R <= Double_Uns'Last - Q * Div
+           and then R < Div,
+         Post => Q = X / Div;
+       pragma Annotate (GNATprove, False_Positive, "postcondition might fail",
+                        "Q is the quotient of X by Div");
+ 
        procedure Lemma_Div_Pow2 (X : Double_Uns; I : Natural) is
+ 
+          --  Local lemmas
+ 
+          procedure Lemma_Mult_Le (X, Y, Z : Double_Uns)
+          with
+            Ghost,
+            Pre  => X <= 1,
+            Post => X * Z <= Z;
+ 
+          procedure Lemma_Mult_Le (X, Y, Z : Double_Uns) is null;
+ 
+          --  Local variables
+ 
           Div1 : constant Double_Uns := Double_Uns'(2) ** I;
           Div2 : constant Double_Uns := Double_Uns'(2);
           Left : constant Double_Uns := X / Div1 / Div2;
+          R2   : constant Double_Uns := X / Div1 - Left * Div2;
+          pragma Assert (R2 <= Div2 - 1);
+          R1   : constant Double_Uns := X - X / Div1 * Div1;
+          pragma Assert (R1 < Div1);
+ 
+       --  Start of processing for Lemma_Div_Pow2
+ 
        begin
+          pragma Assert (X = Left * (Div1 * Div2) + R2 * Div1 + R1);
+          Lemma_Mult_Le (R2, Div2 - 1, Div1);
+          pragma Assert (R2 * Div1 + R1 < Div1 * Div2);
+          Lemma_Quot_Rem (X, Div1 * Div2, Left, R2 * Div1 + R1);
           pragma Assert (Left = X / (Div1 * Div2));
           pragma Assert (Div1 * Div2 = Double_Uns'(2) ** (I + 1));
        end Lemma_Div_Pow2;
  
+       procedure Lemma_Quot_Rem (X, Div, Q, R : Double_Uns) is null;
+ 
        XX : Double_Uns := X;
  
     begin
*************** is
*** 1869,1874 ****
--- 1905,1912 ----
     -- Scaled_Divide --
     -------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Metrics_Cyclomatic_Complexity",
+                     "limit exceeded due to proof code");
     procedure Scaled_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
*************** is
*** 1932,1938 ****
                                + Big_2xxSingle * Big_2xxSingle * D2
                                                + Big_2xxSingle * D3
                                                                + D4)
!       with Ghost;
  
        function Is_Scaled_Mult_Decomposition
          (D1, D2, D3, D4 : Big_Integer)
--- 1970,1978 ----
                                + Big_2xxSingle * Big_2xxSingle * D2
                                                + Big_2xxSingle * D3
                                                                + D4)
!       with
!         Ghost,
!         Annotate => (GNATprove, Inline_For_Proof);
  
        function Is_Scaled_Mult_Decomposition
          (D1, D2, D3, D4 : Big_Integer)
*************** is
*** 1945,1951 ****
                                                             + D4)
        with
          Ghost,
!         Pre  => Scale < Double_Size;
  
        --  Local lemmas
  
--- 1985,1992 ----
                                                             + D4)
        with
          Ghost,
!         Annotate => (GNATprove, Inline_For_Proof),
!         Pre => Scale < Double_Size;
  
        --  Local lemmas
  
*************** is
*** 2115,2126 ****
        --  fourth component.
  
        procedure Prove_Scaled_Mult_Decomposition_Regroup3
!         (D1, D2, D3, D4 : Big_Integer)
        with
          Ghost,
          Pre  => Scale < Double_Size
!           and then Is_Scaled_Mult_Decomposition (D1, D2, D3, D4),
!         Post => Is_Scaled_Mult_Decomposition (0, 0, Big3 (D1, D2, D3), D4);
        --  Proves scaled decomposition of Mult after regrouping on third
        --  component.
  
--- 2156,2170 ----
        --  fourth component.
  
        procedure Prove_Scaled_Mult_Decomposition_Regroup3
!         (D1, D2, D3, D4 : Single_Uns)
        with
          Ghost,
          Pre  => Scale < Double_Size
!           and then Is_Scaled_Mult_Decomposition
!             (Big (Double_Uns (D1)), Big (Double_Uns (D2)),
!              Big (Double_Uns (D3)), Big (Double_Uns (D4))),
!         Post => Is_Scaled_Mult_Decomposition (0, 0, Big3 (D1, D2, D3),
!                                               Big (Double_Uns (D4)));
        --  Proves scaled decomposition of Mult after regrouping on third
        --  component.
  
*************** is
*** 2221,2237 ****
           pragma Assert (Big_D3 = Big_T2);
           pragma Assert (Big_2xxSingle * Big_D3 = Big_2xxSingle * Big_T2);
           Lemma_Mult_Commutation (2 ** Scale, Double_Uns (D (4)), T3);
-          pragma Assert (Big_D4 = Big_T3);
           pragma Assert
!            (By (Is_Scaled_Mult_Decomposition (0, Big_T1, Big_T2, Big_T3),
!             By (Big_2xxSingle * Big_2xxSingle * Big_D12 =
!                 Big_2xxSingle * Big_2xxSingle * Big_T1,
!                 Big_D12 = Big_T1)
!               and then
!             By (Big_2xxSingle * Big_D3  = Big_2xxSingle * Big_T2,
!                 Big_D3 = Big_T2)
!               and then
!             Big_D4 = Big_T3));
           Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
           Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
           Lemma_Hi_Lo (T3, Hi (T3), Lo (T3));
--- 2265,2272 ----
           pragma Assert (Big_D3 = Big_T2);
           pragma Assert (Big_2xxSingle * Big_D3 = Big_2xxSingle * Big_T2);
           Lemma_Mult_Commutation (2 ** Scale, Double_Uns (D (4)), T3);
           pragma Assert
!            (Is_Scaled_Mult_Decomposition (0, Big_T1, Big_T2, Big_T3));
           Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
           Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
           Lemma_Hi_Lo (T3, Hi (T3), Lo (T3));
*************** is
*** 2247,2306 ****
           Lemma_Mult_Distribution (Big_2xxSingle,
                                    Big (Double_Uns (Lo (T2))),
                                    Big (Double_Uns (Hi (T3))));
-          pragma Assert
-            (By (Is_Scaled_Mult_Decomposition
-               (Big (Double_Uns (Hi (T1))),
-                Big (Double_Uns (Lo (T1))) + Big (Double_Uns (Hi (T2))),
-                Big (Double_Uns (Lo (T2))) + Big (Double_Uns (Hi (T3))),
-                Big (Double_Uns (Lo (T3)))),
-             --  Start from stating equality between the expanded values of
-             --  the right-hand side in the known and desired assertions over
-             --  Is_Scaled_Mult_Decomposition.
-             By (Big_2xxSingle * Big_2xxSingle * Big_2xxSingle *
-               Big (Double_Uns (Hi (T1)))
-             + Big_2xxSingle * Big_2xxSingle *
-               (Big (Double_Uns (Lo (T1))) + Big (Double_Uns (Hi (T2))))
-             + Big_2xxSingle *
-               (Big (Double_Uns (Lo (T2))) + Big (Double_Uns (Hi (T3))))
-             + Big (Double_Uns (Lo (T3))) =
-               Big_2xxSingle * Big_2xxSingle * Big_2xxSingle * 0
-             + Big_2xxSingle * Big_2xxSingle * Big_T1
-             + Big_2xxSingle * Big_T2
-             + Big_T3,
-               --  Now list all known equalities that contribute
-               Big_2xxSingle * Big_2xxSingle * Big_2xxSingle *
-               Big (Double_Uns (Hi (T1)))
-             + Big_2xxSingle * Big_2xxSingle *
-               (Big (Double_Uns (Lo (T1))) + Big (Double_Uns (Hi (T2))))
-             + Big_2xxSingle *
-               (Big (Double_Uns (Lo (T2))) + Big (Double_Uns (Hi (T3))))
-             + Big (Double_Uns (Lo (T3))) =
-               Big_2xxSingle * Big_2xxSingle * Big_2xxSingle *
-                 Big (Double_Uns (Hi (T1)))
-             + Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Lo (T1)))
-             + Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
-             + Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-             + Big_2xxSingle * Big (Double_Uns (Hi (T3)))
-             + Big (Double_Uns (Lo (T3)))
-               and then
-             By (Big_2xxSingle * Big_2xxSingle * Big (T1)
-             = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle
-             * Big (Double_Uns (Hi (T1)))
-             + Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Lo (T1))),
-             Big_2xxSingle * Big_2xxSingle * Big (T1)
-             = Big_2xxSingle * Big_2xxSingle
-             * (Big_2xxSingle * Big (Double_Uns (Hi (T1)))
-                + Big (Double_Uns (Lo (T1)))))
-               and then
-             By (Big_2xxSingle * Big (T2)
-             = Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
-             + Big_2xxSingle * Big (Double_Uns (Lo (T2))),
-             Big_2xxSingle * Big (T2)
-             = Big_2xxSingle * (Big_2xxSingle * Big (Double_Uns (Hi (T2)))
-               + Big (Double_Uns (Lo (T2)))))
-               and then
-             Big (T3) = Big_2xxSingle * Big (Double_Uns (Hi (T3)))
-             + Big (Double_Uns (Lo (T3))))));
           Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
                                    Big (Double_Uns (Lo (T1))),
                                    Big (Double_Uns (Hi (T2))));
--- 2282,2287 ----
*************** is
*** 2310,2333 ****
                            Double_Uns (Lo (T2)) + Double_Uns (Hi (T3)));
           Lemma_Add_Commutation (Double_Uns (Lo (T1)), Hi (T2));
           Lemma_Add_Commutation (Double_Uns (Lo (T2)), Hi (T3));
-          pragma Assert
-            (By (Is_Scaled_Mult_Decomposition
-               (Big (Double_Uns (Hi (T1))),
-                Big (Double_Uns (Lo (T1) or Hi (T2))),
-                Big (Double_Uns (Lo (T2) or Hi (T3))),
-                Big (Double_Uns (Lo (T3)))),
-             By (Big_2xxSingle * Big_2xxSingle
-               * Big (Double_Uns (Lo (T1) or Hi (T2))) =
-                 Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Lo (T1)))
-               + Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2))),
-               Big_2xxSingle * Big_2xxSingle
-               * Big (Double_Uns (Lo (T1)) + Double_Uns (Hi (T2))) =
-                 Big_2xxSingle * Big_2xxSingle
-               * (Big (Double_Uns (Lo (T1))) + Big (Double_Uns (Hi (T2)))))
-               and then
-             Big_2xxSingle * Big (Double_Uns (Lo (T2) or Hi (T3))) =
-             Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-             + Big_2xxSingle * Big (Double_Uns (Hi (T3)))));
        end Prove_Dividend_Scaling;
  
        --------------------------
--- 2291,2296 ----
*************** is
*** 2342,2354 ****
           Lemma_Hi_Lo (T3, Hi (T3), S2);
           Lemma_Mult_Commutation (Double_Uns (Q), Double_Uns (Lo (Zu)), T1);
           Lemma_Mult_Commutation (Double_Uns (Q), Double_Uns (Hi (Zu)), T2);
!          pragma Assert (Big (Double_Uns (Q)) * Big (Zu) =
!                           Big_2xxSingle * Big (T2) + Big (T1));
           pragma Assert (Big (Double_Uns (Q)) * Big (Zu) =
             Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
!          + Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T3)))
!                          + Big_2xxSingle * Big (Double_Uns (S2))
                                           + Big (Double_Uns (S3)));
           pragma Assert (Double_Uns (Hi (T3)) + Hi (T2) = Double_Uns (S1));
           Lemma_Add_Commutation (Double_Uns (Hi (T3)), Hi (T2));
           pragma Assert
--- 2305,2334 ----
           Lemma_Hi_Lo (T3, Hi (T3), S2);
           Lemma_Mult_Commutation (Double_Uns (Q), Double_Uns (Lo (Zu)), T1);
           Lemma_Mult_Commutation (Double_Uns (Q), Double_Uns (Hi (Zu)), T2);
!          Lemma_Mult_Distribution (Big (Double_Uns (Q)),
!                                   Big_2xxSingle * Big (Double_Uns (Hi (Zu))),
!                                   Big (Double_Uns (Lo (Zu))));
!          Lemma_Substitution
!            (Big (Double_Uns (Q)) * Big (Zu),
!             Big (Double_Uns (Q)),
!             Big (Zu),
!             Big_2xxSingle * Big (Double_Uns (Hi (Zu)))
!               + Big (Double_Uns (Lo (Zu))),
!             Big_0);
           pragma Assert (Big (Double_Uns (Q)) * Big (Zu) =
             Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
!                          + Big_2xxSingle * Big (Double_Uns (Lo (T2)))
!                          + Big_2xxSingle * Big (Double_Uns (Hi (T1)))
                                           + Big (Double_Uns (S3)));
+          Lemma_Add_Commutation (Double_Uns (Lo (T2)), Hi (T1));
+          pragma Assert
+            (By (Big (Double_Uns (Q)) * Big (Zu) =
+               Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
+                             + Big_2xxSingle * Big (T3)
+                                             + Big (Double_Uns (S3)),
+               Big_2xxSingle * Big (Double_Uns (Lo (T2)))
+             + Big_2xxSingle * Big (Double_Uns (Hi (T1)))
+             = Big_2xxSingle * Big (T3)));
           pragma Assert (Double_Uns (Hi (T3)) + Hi (T2) = Double_Uns (S1));
           Lemma_Add_Commutation (Double_Uns (Hi (T3)), Hi (T2));
           pragma Assert
*************** is
*** 2357,2376 ****
           Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
                                    Big (Double_Uns (Hi (T3))),
                                    Big (Double_Uns (Hi (T2))));
-          pragma Assert
-            (Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
-             + Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T3)))
-             = Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (S1)));
-          pragma Assert (Big (Double_Uns (Q)) * Big (Zu) =
-            Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (S1))
-                          + Big_2xxSingle * Big (Double_Uns (S2))
-                                          + Big (Double_Uns (S3)));
-          pragma Assert
-            (By (Big (Double_Uns (Q)) * Big (Zu) = Big3 (S1, S2, S3),
-               Big3 (S1, S2, S3) =
-                 Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (S1))
-                               + Big_2xxSingle * Big (Double_Uns (S2))
-                                               + Big (Double_Uns (S3))));
        end Prove_Multiplication;
  
        -------------------------------------
--- 2337,2342 ----
*************** is
*** 2492,2498 ****
        ----------------------------------------------
  
        procedure Prove_Scaled_Mult_Decomposition_Regroup3
!         (D1, D2, D3, D4 : Big_Integer)
        is null;
  
        ------------------
--- 2458,2464 ----
        ----------------------------------------------
  
        procedure Prove_Scaled_Mult_Decomposition_Regroup3
!         (D1, D2, D3, D4 : Single_Uns)
        is null;
  
        ------------------
*************** is
*** 2578,2635 ****
        Lemma_Abs_Commutation (X);
        Lemma_Abs_Commutation (Y);
        Lemma_Mult_Decomposition (Mult, Xu, Yu, Xhi, Xlo, Yhi, Ylo);
-       pragma Assert
-         (Is_Mult_Decomposition
-            (D1 => 0,
-             D2 => Big (Double_Uns'(Xhi * Yhi)),
-             D3 => Big (Double_Uns'(Xhi * Ylo)) + Big (Double_Uns'(Xlo * Yhi)),
-             D4 => Big (Double_Uns'(Xlo * Ylo))));
  
        T1 := Xlo * Ylo;
        D (4) := Lo (T1);
        D (3) := Hi (T1);
  
        Lemma_Hi_Lo (T1, D (3), D (4));
-       pragma Assert
-         (Is_Mult_Decomposition
-            (D1 => 0,
-             D2 => Big (Double_Uns'(Xhi * Yhi)),
-             D3 => Big (Double_Uns'(Xhi * Ylo)) + Big (Double_Uns'(Xlo * Yhi))
-               + Big (Double_Uns (D (3))),
-             D4 => Big (Double_Uns (D (4)))));
  
        if Yhi /= 0 then
           T1 := Xlo * Yhi;
  
           Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-          pragma Assert
-            (Is_Mult_Decomposition
-               (D1 => 0,
-                D2 => Big (Double_Uns'(Xhi * Yhi)) + Big (Double_Uns (Hi (T1))),
-                D3 => Big (Double_Uns'(Xhi * Ylo)) + Big (Double_Uns (Lo (T1)))
-                  + Big (Double_Uns (D (3))),
-                D4 => Big (Double_Uns (D (4)))));
  
           T2 := D (3) + Lo (T1);
  
           Lemma_Add_Commutation (Double_Uns (Lo (T1)), D (3));
-          pragma Assert
-            (Is_Mult_Decomposition
-               (D1 => 0,
-                D2 => Big (Double_Uns'(Xhi * Yhi)) + Big (Double_Uns (Hi (T1))),
-                D3 => Big (Double_Uns'(Xhi * Ylo)) + Big (T2),
-                D4 => Big (Double_Uns (D (4)))));
           Lemma_Mult_Distribution (Big_2xxSingle,
                                    Big (Double_Uns (D (3))),
                                    Big (Double_Uns (Lo (T1))));
           Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          pragma Assert
-            (Is_Mult_Decomposition
-               (D1 => 0,
-                D2 => Big (Double_Uns'(Xhi * Yhi)) + Big (Double_Uns (Hi (T1)))
-                  + Big (Double_Uns (Hi (T2))),
-                D3 => Big (Double_Uns'(Xhi * Ylo)) + Big (Double_Uns (Lo (T2))),
-                D4 => Big (Double_Uns (D (4)))));
  
           D (3) := Lo (T2);
           D (2) := Hi (T1) + Hi (T2);
--- 2544,2568 ----
*************** is
*** 2639,2668 ****
           pragma Assert
             (Big (Double_Uns (Hi (T1))) + Big (Double_Uns (Hi (T2))) =
                Big (Double_Uns (D (2))));
-          pragma Assert
-            (Is_Mult_Decomposition
-               (D1 => 0,
-                D2 => Big (Double_Uns'(Xhi * Yhi)) + Big (Double_Uns (D (2))),
-                D3 => Big (Double_Uns'(Xhi * Ylo)) + Big (Double_Uns (D (3))),
-                D4 => Big (Double_Uns (D (4)))));
  
           if Xhi /= 0 then
              T1 := Xhi * Ylo;
  
              Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-             pragma Assert
-               (By (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns'(Xhi * Yhi)) + Big (Double_Uns (D (2)))
-                     + Big (Double_Uns (Hi (T1))),
-                   D3 => Big (Double_Uns (Lo (T1))) + Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))),
-                (By (Big_2xxSingle * Big (T1) =
-                     Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T1)))
-                     + Big_2xxSingle * Big (Double_Uns (Lo (T1))),
-                     Big_2xxSingle * Big (T1) =
-                     Big_2xxSingle * (Big_2xxSingle * Big (Double_Uns (Hi (T1)))
-                     + Big (Double_Uns (Lo (T1))))))));
  
              T2 := D (3) + Lo (T1);
  
--- 2572,2582 ----
*************** is
*** 2681,2755 ****
              T3 := D (2) + Hi (T1);
  
              Lemma_Add_Commutation (Double_Uns (D (2)), Hi (T1));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns'(Xhi * Yhi)) + Big (T3)
-                     + Big (Double_Uns (Hi (T2))),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
              Lemma_Add_Commutation (T3, Hi (T2));
  
              T3 := T3 + Hi (T2);
              T2 := Double_Uns'(Xhi * Yhi);
  
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (T2) + Big (T3),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
              Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-             pragma Assert
-               (By (Is_Mult_Decomposition
-                  (D1 => Big (Double_Uns (Hi (T2))),
-                   D2 => Big (Double_Uns (Lo (T2))) + Big (T3),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))),
-                By (Big_2xxSingle * Big_2xxSingle * Big (T2) =
-                    Big_2xxSingle * Big_2xxSingle * Big_2xxSingle
-                  * Big (Double_Uns (Hi (T2)))
-                  + Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Lo (T2))),
-                Big_2xxSingle * Big_2xxSingle *
-                  (Big_2xxSingle * Big (Double_Uns (Hi (T2)))
-                                 + Big (Double_Uns (Lo (T2))))
-                  = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle
-                      * Big (Double_Uns (Hi (T2)))
-                    + Big_2xxSingle * Big_2xxSingle
-                      * Big (Double_Uns (Lo (T2))))));
  
              T1 := T3 + Lo (T2);
              D (2) := Lo (T1);
  
              Lemma_Add_Commutation (T3, Lo (T2));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => Big (Double_Uns (Hi (T2))),
-                   D2 => Big (T1),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
              Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-             pragma Assert
-               (By (Is_Mult_Decomposition
-                 (D1 => Big (Double_Uns (Hi (T2))) + Big (Double_Uns (Hi (T1))),
-                  D2 => Big (Double_Uns (D (2))),
-                  D3 => Big (Double_Uns (D (3))),
-                  D4 => Big (Double_Uns (D (4)))),
-                By (Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Lo (T1))) =
-                    Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (D (2))),
-                    D (2) = Lo (T1))
-                  and then
-                By (Big_2xxSingle * Big_2xxSingle * Big (T1) =
-                    Big_2xxSingle * Big_2xxSingle * Big_2xxSingle
-                  * Big (Double_Uns (Hi (T1)))
-                  + Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Lo (T1))),
-                Big_2xxSingle * Big_2xxSingle *
-                  (Big_2xxSingle * Big (Double_Uns (Hi (T1)))
-                                 + Big (Double_Uns (Lo (T1))))
-                  = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle
-                      * Big (Double_Uns (Hi (T1)))
-                    + Big_2xxSingle * Big_2xxSingle
-                      * Big (Double_Uns (Lo (T1))))));
  
              D (1) := Hi (T2) + Hi (T1);
  
--- 2595,2612 ----
*************** is
*** 2759,2833 ****
              pragma Assert
                (Big (Double_Uns (Hi (T2))) + Big (Double_Uns (Hi (T1))) =
                     Big (Double_Uns (D (1))));
- 
              pragma Assert
!               (By (Is_Mult_Decomposition
!                  (D1 => Big (Double_Uns (D (1))),
!                   D2 => Big (Double_Uns (D (2))),
!                   D3 => Big (Double_Uns (D (3))),
!                   D4 => Big (Double_Uns (D (4)))),
!                Big_2xxSingle * Big_2xxSingle * Big_2xxSingle *
!                  Big (Double_Uns (D (1)))
!                = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle *
!                  (Big (Double_Uns (Hi (T2)) + Double_Uns (Hi (T1))))));
           else
              D (1) := 0;
  
              pragma Assert
!               (By (Is_Mult_Decomposition
!                  (D1 => Big (Double_Uns (D (1))),
!                   D2 => Big (Double_Uns (D (2))),
!                   D3 => Big (Double_Uns (D (3))),
!                   D4 => Big (Double_Uns (D (4)))),
!                Big (Double_Uns'(Xhi * Yhi)) = 0
!                  and then Big (Double_Uns'(Xhi * Ylo)) = 0
!                  and then Big (Double_Uns (D (1))) = 0));
           end if;
  
-          pragma Assert
-            (Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
-                                    D2 => Big (Double_Uns (D (2))),
-                                    D3 => Big (Double_Uns (D (3))),
-                                    D4 => Big (Double_Uns (D (4)))));
        else
-          pragma Assert
-            (By (Is_Mult_Decomposition
-               (D1 => 0,
-                D2 => 0,
-                D3 => Big (Double_Uns'(Xhi * Ylo)) + Big (Double_Uns (D (3))),
-                D4 => Big (Double_Uns (D (4)))),
-             Big (Double_Uns'(Xhi * Yhi)) = 0
-               and then Big (Double_Uns'(Xlo * Yhi)) = 0));
- 
           if Xhi /= 0 then
              T1 := Xhi * Ylo;
  
              Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
              pragma Assert
!               (By (Is_Mult_Decomposition
                   (D1 => 0,
                    D2 => Big (Double_Uns (Hi (T1))),
                    D3 => Big (Double_Uns (Lo (T1))) + Big (Double_Uns (D (3))),
!                   D4 => Big (Double_Uns (D (4)))),
!                Big_2xxSingle * Big (Double_Uns'(Xhi * Ylo)) =
!                  Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T1)))
!                    + Big_2xxSingle * Big (Double_Uns (Lo (T1)))));
  
              T2 := D (3) + Lo (T1);
  
              Lemma_Add_Commutation (Double_Uns (Lo (T1)), D (3));
              pragma Assert
!               (By (Is_Mult_Decomposition
                   (D1 => 0,
                    D2 => Big (Double_Uns (Hi (T1))),
                    D3 => Big (T2),
!                   D4 => Big (Double_Uns (D (4)))),
!                Big_2xxSingle * Big (T2) =
!                  Big_2xxSingle *
!                    (Big (Double_Uns (Lo (T1))) + Big (Double_Uns (D (3))))));
!             Lemma_Mult_Distribution (Big_2xxSingle,
!                                      Big (Double_Uns (D (3))),
!                                      Big (Double_Uns (Lo (T1))));
              Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
  
              D (3) := Lo (T2);
--- 2616,2657 ----
              pragma Assert
                (Big (Double_Uns (Hi (T2))) + Big (Double_Uns (Hi (T1))) =
                     Big (Double_Uns (D (1))));
              pragma Assert
!               (Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
!                                       D2 => Big (Double_Uns (D (2))),
!                                       D3 => Big (Double_Uns (D (3))),
!                                       D4 => Big (Double_Uns (D (4)))));
           else
              D (1) := 0;
  
              pragma Assert
!               (Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
!                                       D2 => Big (Double_Uns (D (2))),
!                                       D3 => Big (Double_Uns (D (3))),
!                                       D4 => Big (Double_Uns (D (4)))));
           end if;
  
        else
           if Xhi /= 0 then
              T1 := Xhi * Ylo;
  
              Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
              pragma Assert
!               (Is_Mult_Decomposition
                   (D1 => 0,
                    D2 => Big (Double_Uns (Hi (T1))),
                    D3 => Big (Double_Uns (Lo (T1))) + Big (Double_Uns (D (3))),
!                   D4 => Big (Double_Uns (D (4)))));
  
              T2 := D (3) + Lo (T1);
  
              Lemma_Add_Commutation (Double_Uns (Lo (T1)), D (3));
              pragma Assert
!               (Is_Mult_Decomposition
                   (D1 => 0,
                    D2 => Big (Double_Uns (Hi (T1))),
                    D3 => Big (T2),
!                   D4 => Big (Double_Uns (D (4)))));
              Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
  
              D (3) := Lo (T2);
*************** is
*** 2849,2870 ****
              D (2) := 0;
  
              pragma Assert
!               (By (Is_Mult_Decomposition
                   (D1 => 0,
                    D2 => Big (Double_Uns (D (2))),
                    D3 => Big (Double_Uns (D (3))),
!                   D4 => Big (Double_Uns (D (4)))),
!                Big (Double_Uns'(Xhi * Ylo)) = 0
!                  and then Big (Double_Uns (D (2))) = 0));
           end if;
  
           D (1) := 0;
        end if;
  
!       pragma Assert (Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
!                                             D2 => Big (Double_Uns (D (2))),
!                                             D3 => Big (Double_Uns (D (3))),
!                                             D4 => Big (Double_Uns (D (4)))));
  
        --  Now it is time for the dreaded multiple precision division. First an
        --  easy case, check for the simple case of a one digit divisor.
--- 2673,2714 ----
              D (2) := 0;
  
              pragma Assert
!               (Is_Mult_Decomposition
                   (D1 => 0,
                    D2 => Big (Double_Uns (D (2))),
                    D3 => Big (Double_Uns (D (3))),
!                   D4 => Big (Double_Uns (D (4)))));
           end if;
  
           D (1) := 0;
        end if;
  
!       pragma Assert_And_Cut
!         --  Restate the precondition
!         (Z /= 0
!          and then In_Double_Int_Range
!            (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                           Big (X) * Big (Y) / Big (Z),
!                                           Big (X) * Big (Y) rem Big (Z))
!             else Big (X) * Big (Y) / Big (Z))
!          --  Restate the value of local variables
!          and then Zu = abs Z
!          and then Zhi = Hi (Zu)
!          and then Zlo = Lo (Zu)
!          and then Mult = abs (Big (X) * Big (Y))
!          and then Quot = Big (X) * Big (Y) / Big (Z)
!          and then Big_R = Big (X) * Big (Y) rem Big (Z)
!          and then
!            (if Round then
!               Big_Q = Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
!             else
!               Big_Q = Quot)
!          --  Summarize first part of the procedure
!          and then D'Initialized
!          and then Is_Mult_Decomposition (D1 => Big (Double_Uns (D (1))),
!                                          D2 => Big (Double_Uns (D (2))),
!                                          D3 => Big (Double_Uns (D (3))),
!                                          D4 => Big (Double_Uns (D (4)))));
  
        --  Now it is time for the dreaded multiple precision division. First an
        --  easy case, check for the simple case of a one digit divisor.
*************** is
*** 2872,2880 ****
        if Zhi = 0 then
           if D (1) /= 0 or else D (2) >= Zlo then
              if D (1) > 0 then
-                pragma Assert
-                  (Mult >= Big_2xxSingle * Big_2xxSingle * Big_2xxSingle
-                           * Big (Double_Uns (D (1))));
                 Lemma_Double_Big_2xxSingle;
                 Lemma_Mult_Positive (Big_2xxDouble, Big_2xxSingle);
                 Lemma_Ge_Mult (Big (Double_Uns (D (1))),
--- 2716,2721 ----
*************** is
*** 2915,2920 ****
--- 2756,2763 ----
        elsif (D (1) & D (2)) >= Zu then
           Lemma_Hi_Lo (D (1) & D (2), D (1), D (2));
           Lemma_Ge_Commutation (D (1) & D (2), Zu);
+          pragma Assert
+            (Mult >= Big_2xxSingle * Big_2xxSingle * Big (D (1) & D (2)));
           Prove_Overflow;
           Raise_Error;
  
*************** is
*** 2928,2935 ****
           --  First normalize the divisor so that it has the leading bit on.
           --  We do this by finding the appropriate left shift amount.
  
           Lemma_Lt_Commutation (D (1) & D (2), Zu);
!          pragma Assert (Mult < Big_2xxDouble * Big (Zu));
  
           Shift := Single_Size;
           Mask  := Single_Uns'Last;
--- 2771,2780 ----
           --  First normalize the divisor so that it has the leading bit on.
           --  We do this by finding the appropriate left shift amount.
  
+          Lemma_Hi_Lo (D (1) & D (2), D (1), D (2));
           Lemma_Lt_Commutation (D (1) & D (2), Zu);
!          pragma Assert
!            (Mult < Big_2xxDouble * Big (Zu));
  
           Shift := Single_Size;
           Mask  := Single_Uns'Last;
*************** is
*** 3127,3133 ****
                Big (D (1) & D (2)),
                Big_2xxSingle * Big (Double_Uns (D (3)))
                              + Big (Double_Uns (D (4))));
!          pragma Assert (Big (D (1) & D (2)) < Big (Zu));
  
           --  Loop to compute quotient digits, runs twice for Qd (1) and Qd (2)
  
--- 2972,2982 ----
                Big (D (1) & D (2)),
                Big_2xxSingle * Big (Double_Uns (D (3)))
                              + Big (Double_Uns (D (4))));
!          pragma Assert
!            (By (Big (D (1) & D (2)) < Big (Zu),
!             Big_2xxDouble * (Big (Zu) - Big (D (1) & D (2))) >
!               Big_2xxSingle * Big (Double_Uns (D (3)))
!             + Big (Double_Uns (D (4)))));
  
           --  Loop to compute quotient digits, runs twice for Qd (1) and Qd (2)
  
*************** is
*** 3152,3158 ****
              --  Local ghost variables
  
              Qd1  : Single_Uns := 0 with Ghost;
!             D234 : Big_Integer := 0 with Ghost;
              D123 : constant Big_Integer := Big3 (D (1), D (2), D (3))
                with Ghost;
              D4   : constant Big_Integer := Big (Double_Uns (D (4)))
--- 3001,3007 ----
              --  Local ghost variables
  
              Qd1  : Single_Uns := 0 with Ghost;
!             D234 : Big_Integer with Ghost, Relaxed_Initialization;
              D123 : constant Big_Integer := Big3 (D (1), D (2), D (3))
                with Ghost;
              D4   : constant Big_Integer := Big (Double_Uns (D (4)))
*************** is
*** 3160,3170 ****
  
           begin
              Prove_Scaled_Mult_Decomposition_Regroup3
!               (Big (Double_Uns (D (1))),
!                Big (Double_Uns (D (2))),
!                Big (Double_Uns (D (3))),
!                Big (Double_Uns (D (4))));
!             pragma Assert (Mult * Big_2xx (Scale) = Big_2xxSingle * D123 + D4);
  
              for J in 1 .. 2 loop
                 Lemma_Hi_Lo (D (J) & D (J + 1), D (J), D (J + 1));
--- 3009,3018 ----
  
           begin
              Prove_Scaled_Mult_Decomposition_Regroup3
!               (D (1), D (2), D (3), D (4));
!             pragma Assert
!               (By (Mult * Big_2xx (Scale) = Big_2xxSingle * D123 + D4,
!                Is_Scaled_Mult_Decomposition (0, 0, D123, D4)));
  
              for J in 1 .. 2 loop
                 Lemma_Hi_Lo (D (J) & D (J + 1), D (J), D (J + 1));
*************** is
*** 3206,3213 ****
                    Lemma_Div_Lt
                      (Big3 (D (J), D (J + 1), D (J + 2)),
                       Big_2xxSingle, Big (Zu));
!                   pragma Assert (Big (Double_Uns (Qd (J))) >=
!                     Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu));
  
                 else
                    Qd (J) := Lo ((D (J) & D (J + 1)) / Zhi);
--- 3054,3063 ----
                    Lemma_Div_Lt
                      (Big3 (D (J), D (J + 1), D (J + 2)),
                       Big_2xxSingle, Big (Zu));
!                   pragma Assert
!                     (By (Big (Double_Uns (Qd (J))) >=
!                        Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu),
!                      Big (Double_Uns (Qd (J))) = Big_2xxSingle - 1));
  
                 else
                    Qd (J) := Lo ((D (J) & D (J + 1)) / Zhi);
*************** is
*** 3216,3221 ****
--- 3066,3072 ----
                 end if;
  
                 pragma Assert (for all K in 1 .. J => Qd (K)'Initialized);
+                Lemma_Div_Mult (Big3 (D (J), D (J + 1), D (J + 2)), Big (Zu));
                 Lemma_Gt_Mult
                   (Big (Double_Uns (Qd (J))),
                    Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu),
*************** is
*** 3285,3290 ****
--- 3136,3146 ----
                       Qd (J) := Qd (J) - 1;
  
                       pragma Assert (Qd (J) = Prev);
+                      pragma Assert (Qd (J)'Initialized);
+                      if J = 2 then
+                         pragma Assert (Qd (J - 1)'Initialized);
+                      end if;
+                      pragma Assert (for all K in 1 .. J => Qd (K)'Initialized);
                    end;
  
                    pragma Assert
*************** is
*** 3316,3341 ****
                    Lemma_Mult_Non_Negative
                      (Big_2xxSingle, Big (Double_Uns (D (J + 1))));
                    pragma Assert
!                     (By (Big3 (D (J), D (J + 1), D (J + 2)) >=
                         Big_2xxSingle * Big_2xxSingle
!                        * Big (Double_Uns (D (J))),
!                      By (Big3 (D (J), D (J + 1), D (J + 2))
!                      - Big_2xxSingle * Big_2xxSingle
!                        * Big (Double_Uns (D (J)))
!                      = Big_2xxSingle * Big (Double_Uns (D (J + 1)))
!                                      + Big (Double_Uns (D (J + 2))),
!                      Big3 (D (J), D (J + 1), D (J + 2)) =
!                        Big_2xxSingle
!                        * Big_2xxSingle * Big (Double_Uns (D (J)))
!                        + Big_2xxSingle * Big (Double_Uns (D (J + 1)))
!                                        + Big (Double_Uns (D (J + 2))))
!                        and then
!                      By (Big_2xxSingle * Big (Double_Uns (D (J + 1)))
!                                        + Big (Double_Uns (D (J + 2))) >= 0,
!                      Big_2xxSingle * Big (Double_Uns (D (J + 1))) >= 0
!                        and then
!                      Big (Double_Uns (D (J + 2))) >= 0
!                     )));
                    Lemma_Ge_Commutation (Double_Uns (D (J)), Double_Uns'(1));
                    Lemma_Ge_Mult (Big (Double_Uns (D (J))),
                                   Big (Double_Uns'(1)),
--- 3172,3180 ----
                    Lemma_Mult_Non_Negative
                      (Big_2xxSingle, Big (Double_Uns (D (J + 1))));
                    pragma Assert
!                     (Big3 (D (J), D (J + 1), D (J + 2)) >=
                         Big_2xxSingle * Big_2xxSingle
!                        * Big (Double_Uns (D (J))));
                    Lemma_Ge_Commutation (Double_Uns (D (J)), Double_Uns'(1));
                    Lemma_Ge_Mult (Big (Double_Uns (D (J))),
                                   Big (Double_Uns'(1)),
*************** is
*** 3365,3397 ****
                    pragma Assert (Qd1 = Qd (1));
                    pragma Assert
                      (By (Mult * Big_2xx (Scale) =
-                        Big_2xxSingle * Big (Double_Uns (Qd1)) * Big (Zu)
-                      + Big3 (S1, S2, S3)
-                      + Big3 (D (2), D (3), D (4)),
-                      Big3 (D (2), D (3), D (4)) = D234 - Big3 (S1, S2, S3)));
-                   pragma Assert
-                     (By (Mult * Big_2xx (Scale) =
                         Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
                                       + Big (Double_Uns (Qd (2))) * Big (Zu)
                       + Big_2xxSingle * Big (Double_Uns (D (3)))
                                       + Big (Double_Uns (D (4))),
!                      Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                        = Big_2xxSingle * Big (Double_Uns (Qd1)) * Big (Zu)
!                        and then
!                      Big3 (S1, S2, S3) = Big (Double_Uns (Qd (2))) * Big (Zu)
!                        and then
!                      By (Big3 (D (2), D (3), D (4))
!                          = Big_2xxSingle * Big (Double_Uns (D (3)))
!                                          + Big (Double_Uns (D (4))),
!                         Big3 (D (2), D (3), D (4))
!                          = Big_2xxSingle * Big_2xxSingle *
!                            Big (Double_Uns (D (2)))
!                            + Big_2xxSingle * Big (Double_Uns (D (3)))
!                                            + Big (Double_Uns (D (4)))
!                           and then
!                        Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (D (2)))
!                         = 0)
!                     ));
                 end if;
              end loop;
           end;
--- 3204,3220 ----
                    pragma Assert (Qd1 = Qd (1));
                    pragma Assert
                      (By (Mult * Big_2xx (Scale) =
                         Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
                                       + Big (Double_Uns (Qd (2))) * Big (Zu)
                       + Big_2xxSingle * Big (Double_Uns (D (3)))
                                       + Big (Double_Uns (D (4))),
!                      By (Mult * Big_2xx (Scale) =
!                        Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                        + Big3 (D (2), D (3), D (4)) + Big3 (S1, S2, S3),
!                      Mult * Big_2xx (Scale) =
!                        Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                        + D234)));
! 
                 end if;
              end loop;
           end;
*************** is
*** 3424,3434 ****
  
           Ru := Shift_Right (Ru, Scale);
  
!          Lemma_Shift_Right (Zu, Scale);
  
!          Zu := Shift_Right (Zu, Scale);
  
!          Lemma_Simplify (Big (Double_Uns'(abs Z)), Big_2xx (Scale));
        end if;
  
        pragma Assert (Big (Ru) = abs Big_R);
--- 3247,3278 ----
  
           Ru := Shift_Right (Ru, Scale);
  
!          declare
!             --  Local lemma required to help automatic provers
!             procedure Lemma_Div_Congruent
!               (X, Y : Big_Natural;
!                Z    : Big_Positive)
!             with
!               Ghost,
!               Pre  => X = Y,
!               Post => X / Z = Y / Z;
  
!             procedure Lemma_Div_Congruent
!               (X, Y : Big_Natural;
!                Z    : Big_Positive)
!             is null;
  
!          begin
!             Lemma_Shift_Right (Zu, Scale);
!             Lemma_Div_Congruent (Big (Zu),
!                                  Big (Double_Uns'(abs Z)) * Big_2xx (Scale),
!                                  Big_2xx (Scale));
! 
!             Zu := Shift_Right (Zu, Scale);
! 
!             Lemma_Simplify (Big (Double_Uns'(abs Z)), Big_2xx (Scale));
!             pragma Assert (Big (Zu) = Big (Double_Uns'(abs Z)));
!          end;
        end if;
  
        pragma Assert (Big (Ru) = abs Big_R);
*************** is
*** 3481,3486 ****
--- 3325,3331 ----
        Prove_Sign_R;
        Prove_Signs;
     end Scaled_Divide;
+    pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_Cyclomatic_Complexity");
  
     ----------
     -- Sub3 --
*************** is
*** 3543,3554 ****
           Lemma_Add_Commutation (Double_Uns (X1), Y1);
           Lemma_Add_Commutation (Double_Uns (X2), Y2);
           Lemma_Add_Commutation (Double_Uns (X3), Y3);
-          pragma Assert (Double_Uns (Single_Uns'(X1 + Y1))
-                         = Double_Uns (X1) + Double_Uns (Y1));
-          pragma Assert (Double_Uns (Single_Uns'(X2 + Y2))
-                         = Double_Uns (X2) + Double_Uns (Y2));
-          pragma Assert (Double_Uns (Single_Uns'(X3 + Y3))
-                         = Double_Uns (X3) + Double_Uns (Y3));
        end Lemma_Add3_No_Carry;
  
        ---------------------
--- 3388,3393 ----
*************** is
*** 3826,3829 ****
--- 3665,3671 ----
        end if;
     end To_Pos_Int;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Arith_Double;
+ 
+ pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_LSLOC");
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-aridou.ads gcc-14.1.0/gcc/ada/libgnat/s-aridou.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-aridou.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-aridou.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 77,94 ****
  
     function Big (Arg : Double_Int) return Big_Integer is
       (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
  
     package Unsigned_Conversion is
       new BI_Ghost.Unsigned_Conversions (Int => Double_Uns);
  
     function Big (Arg : Double_Uns) return Big_Integer is
       (Unsigned_Conversion.To_Big_Integer (Arg))
!    with Ghost;
  
     function In_Double_Int_Range (Arg : Big_Integer) return Boolean is
       (BI_Ghost.In_Range (Arg, Big (Double_Int'First), Big (Double_Int'Last)))
!    with Ghost;
  
     function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
     with
--- 77,100 ----
  
     function Big (Arg : Double_Int) return Big_Integer is
       (Signed_Conversion.To_Big_Integer (Arg))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
  
     package Unsigned_Conversion is
       new BI_Ghost.Unsigned_Conversions (Int => Double_Uns);
  
     function Big (Arg : Double_Uns) return Big_Integer is
       (Unsigned_Conversion.To_Big_Integer (Arg))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
  
     function In_Double_Int_Range (Arg : Big_Integer) return Boolean is
       (BI_Ghost.In_Range (Arg, Big (Double_Int'First), Big (Double_Int'Last)))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
  
     function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
     with
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-arit128.adb gcc-14.1.0/gcc/ada/libgnat/s-arit128.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-arit128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-arit128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-arit128.ads gcc-14.1.0/gcc/ada/libgnat/s-arit128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-arit128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-arit128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-arit32.adb gcc-14.1.0/gcc/ada/libgnat/s-arit32.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-arit32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-arit32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 104,112 ****
  
     function To_Neg_Int (A : Uns32) return Int32
     with
!      Annotate => (GNATprove, Always_Return),
!      Pre      => In_Int32_Range (-Big (A)),
!      Post     => Big (To_Neg_Int'Result) = -Big (A);
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2**31, then the corresponding nonpositive signed integer (obtained
     --  by negating the given value) is returned, otherwise constraint error is
--- 104,111 ----
  
     function To_Neg_Int (A : Uns32) return Int32
     with
!      Pre  => In_Int32_Range (-Big (A)),
!      Post => Big (To_Neg_Int'Result) = -Big (A);
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2**31, then the corresponding nonpositive signed integer (obtained
     --  by negating the given value) is returned, otherwise constraint error is
*************** is
*** 114,122 ****
  
     function To_Pos_Int (A : Uns32) return Int32
     with
!      Annotate => (GNATprove, Always_Return),
!      Pre      => In_Int32_Range (Big (A)),
!      Post     => Big (To_Pos_Int'Result) = Big (A);
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2**31 - 1, then the corresponding nonnegative signed integer is
     --  returned, otherwise constraint error is raised.
--- 113,120 ----
  
     function To_Pos_Int (A : Uns32) return Int32
     with
!      Pre  => In_Int32_Range (Big (A)),
!      Post => Big (To_Pos_Int'Result) = Big (A);
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2**31 - 1, then the corresponding nonnegative signed integer is
     --  returned, otherwise constraint error is raised.
*************** is
*** 195,206 ****
         or else (X >= Big_0 and then Y <= Big_0),
       Post => X * Y <= Big_0;
  
-    procedure Lemma_Neg_Div (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X / Y = (-X) / (-Y);
- 
     procedure Lemma_Neg_Rem (X, Y : Big_Integer)
     with
       Ghost,
--- 193,198 ----
*************** is
*** 223,228 ****
--- 215,221 ----
     -----------------------------
  
     procedure Lemma_Abs_Commutation (X : Int32) is null;
+    procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer) is null;
     procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer) is null;
     procedure Lemma_Div_Commutation (X, Y : Uns64) is null;
     procedure Lemma_Div_Ge (X, Y, Z : Big_Integer) is null;
*************** is
*** 235,256 ****
     procedure Lemma_Rem_Commutation (X, Y : Uns64) is null;
  
     -------------------------------
-    -- Lemma_Abs_Div_Commutation --
-    -------------------------------
- 
-    procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer) is
-    begin
-       if Y < 0 then
-          if X < 0 then
-             pragma Assert (abs (X / Y) = abs (X / (-Y)));
-          else
-             Lemma_Neg_Div (X, Y);
-             pragma Assert (abs (X / Y) = abs ((-X) / (-Y)));
-          end if;
-       end if;
-    end Lemma_Abs_Div_Commutation;
- 
-    -------------------------------
     -- Lemma_Abs_Rem_Commutation --
     -------------------------------
  
--- 228,233 ----
*************** is
*** 277,292 ****
        pragma Assert (Uns64 (Xlo) = Xu mod 2 ** 32);
     end Lemma_Hi_Lo;
  
-    -------------------
-    -- Lemma_Neg_Div --
-    -------------------
- 
-    procedure Lemma_Neg_Div (X, Y : Big_Integer) is
-    begin
-       pragma Assert ((-X) / (-Y) = -(X / (-Y)));
-       pragma Assert (X / (-Y) = -(X / Y));
-    end Lemma_Neg_Div;
- 
     -----------------
     -- Raise_Error --
     -----------------
--- 254,259 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-arit32.ads gcc-14.1.0/gcc/ada/libgnat/s-arit32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-arit32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-arit32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-arit64.adb gcc-14.1.0/gcc/ada/libgnat/s-arit64.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-arit64.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-arit64.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-arit64.ads gcc-14.1.0/gcc/ada/libgnat/s-arit64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-arit64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-arit64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-assert.adb gcc-14.1.0/gcc/ada/libgnat/s-assert.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-assert.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-assert.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-assert.ads gcc-14.1.0/gcc/ada/libgnat/s-assert.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-assert.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-assert.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atacco.adb gcc-14.1.0/gcc/ada/libgnat/s-atacco.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-atacco.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atacco.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,36 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package does not require a body, since it is a package renaming. We
! --  provide a dummy file containing a No_Body pragma so that previous versions
! --  of the body (which did exist) will not interfere.
  
  pragma No_Body;
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package does not require a body. We provide a dummy file containing a
! --  No_Body pragma so that previous versions of the body (which did exist) will
! --  not interfere.
  
  pragma No_Body;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atacco.ads gcc-14.1.0/gcc/ada/libgnat/s-atacco.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-atacco.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atacco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System.Address_To_Access_Convers
*** 55,65 ****
     --  of no strict aliasing.
  
     function To_Pointer (Value : Address)        return Object_Pointer with
!      Global   => null,
!      Annotate => (GNATprove, Always_Return);
     function To_Address (Value : Object_Pointer) return Address with
!      SPARK_Mode => Off,
!      Annotate => (GNATprove, Always_Return);
  
     pragma Import (Intrinsic, To_Pointer);
     pragma Import (Intrinsic, To_Address);
--- 55,63 ----
     --  of no strict aliasing.
  
     function To_Pointer (Value : Address)        return Object_Pointer with
!      Global => null;
     function To_Address (Value : Object_Pointer) return Address with
!      SPARK_Mode => Off;
  
     pragma Import (Intrinsic, To_Pointer);
     pragma Import (Intrinsic, To_Address);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atocou.adb gcc-14.1.0/gcc/ada/libgnat/s-atocou.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-atocou.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atocou.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atocou.ads gcc-14.1.0/gcc/ada/libgnat/s-atocou.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-atocou.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atocou.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atocou__builtin.adb gcc-14.1.0/gcc/ada/libgnat/s-atocou__builtin.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-atocou__builtin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atocou__builtin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atoope.ads gcc-14.1.0/gcc/ada/libgnat/s-atoope.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-atoope.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atoope.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atopex.adb gcc-14.1.0/gcc/ada/libgnat/s-atopex.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-atopex.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atopex.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atopex.ads gcc-14.1.0/gcc/ada/libgnat/s-atopex.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-atopex.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atopex.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2023, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2024, Free Software Foundation, Inc.  --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atopri.adb gcc-14.1.0/gcc/ada/libgnat/s-atopri.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-atopri.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atopri.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --              Copyright (C) 2012-2023, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --              Copyright (C) 2012-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Atomic_Primitives is
*** 59,64 ****
--- 59,67 ----
          new Atomic_Compare_Exchange (Atomic_Type);
  
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
+ 
        if Expected /= Desired then
           if Atomic_Type'Atomic_Always_Lock_Free then
              return My_Atomic_Compare_Exchange (Ptr, Expected'Address, Desired);
*************** package body System.Atomic_Primitives is
*** 68,73 ****
--- 71,78 ----
        end if;
  
        return True;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Lock_Free_Try_Write;
  
  end System.Atomic_Primitives;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atopri.ads gcc-14.1.0/gcc/ada/libgnat/s-atopri.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-atopri.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-atopri.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --              Copyright (C) 2012-2023, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --              Copyright (C) 2012-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Atomic_Primitives is
*** 80,85 ****
--- 80,98 ----
  
     generic
        type Atomic_Type is mod <>;
+    procedure Atomic_Store
+      (Ptr   : Address;
+       Value : Atomic_Type;
+       Model : Mem_Model := Seq_Cst);
+    pragma Import (Intrinsic, Atomic_Store, "__atomic_store_n");
+ 
+    procedure Atomic_Store_8  is new Atomic_Store (uint8);
+    procedure Atomic_Store_16 is new Atomic_Store (uint16);
+    procedure Atomic_Store_32 is new Atomic_Store (uint32);
+    procedure Atomic_Store_64 is new Atomic_Store (uint64);
+ 
+    generic
+       type Atomic_Type is mod <>;
     function Atomic_Compare_Exchange
       (Ptr           : Address;
        Expected      : Address;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-atopri__32.ads gcc-14.1.0/gcc/ada/libgnat/s-atopri__32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-atopri__32.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-atopri__32.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,161 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --               S Y S T E M . A T O M I C _ P R I M I T I V E S            --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --              Copyright (C) 2012-2024, Free Software Foundation, Inc.     --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package contains both atomic primitives defined from GCC built-in
+ --  functions and operations used by the compiler to generate the lock-free
+ --  implementation of protected objects.
+ --  This is the version that only contains primitives available on 32 bit
+ --  platforms.
+ 
+ with Interfaces.C;
+ 
+ package System.Atomic_Primitives is
+    pragma Pure;
+ 
+    type uint is mod 2 ** Long_Integer'Size;
+ 
+    type uint8  is mod 2**8
+      with Size => 8;
+ 
+    type uint16 is mod 2**16
+      with Size => 16;
+ 
+    type uint32 is mod 2**32
+      with Size => 32;
+ 
+    Relaxed : constant := 0;
+    Consume : constant := 1;
+    Acquire : constant := 2;
+    Release : constant := 3;
+    Acq_Rel : constant := 4;
+    Seq_Cst : constant := 5;
+    Last    : constant := 6;
+ 
+    subtype Mem_Model is Integer range Relaxed .. Last;
+ 
+    ------------------------------------
+    -- GCC built-in atomic primitives --
+    ------------------------------------
+ 
+    generic
+       type Atomic_Type is mod <>;
+    function Atomic_Load
+      (Ptr   : Address;
+       Model : Mem_Model := Seq_Cst) return Atomic_Type;
+    pragma Import (Intrinsic, Atomic_Load, "__atomic_load_n");
+ 
+    function Atomic_Load_8  is new Atomic_Load (uint8);
+    function Atomic_Load_16 is new Atomic_Load (uint16);
+    function Atomic_Load_32 is new Atomic_Load (uint32);
+ 
+    generic
+       type Atomic_Type is mod <>;
+    procedure Atomic_Store
+      (Ptr   : Address;
+       Value : Atomic_Type;
+       Model : Mem_Model := Seq_Cst);
+    pragma Import (Intrinsic, Atomic_Store, "__atomic_store_n");
+ 
+    procedure Atomic_Store_8  is new Atomic_Store (uint8);
+    procedure Atomic_Store_16 is new Atomic_Store (uint16);
+    procedure Atomic_Store_32 is new Atomic_Store (uint32);
+ 
+    generic
+       type Atomic_Type is mod <>;
+    function Atomic_Compare_Exchange
+      (Ptr           : Address;
+       Expected      : Address;
+       Desired       : Atomic_Type;
+       Weak          : Boolean   := False;
+       Success_Model : Mem_Model := Seq_Cst;
+       Failure_Model : Mem_Model := Seq_Cst) return Boolean;
+    pragma Import
+      (Intrinsic, Atomic_Compare_Exchange, "__atomic_compare_exchange_n");
+ 
+    function Atomic_Compare_Exchange_8  is new Atomic_Compare_Exchange (uint8);
+    function Atomic_Compare_Exchange_16 is new Atomic_Compare_Exchange (uint16);
+    function Atomic_Compare_Exchange_32 is new Atomic_Compare_Exchange (uint32);
+ 
+    function Atomic_Test_And_Set
+      (Ptr   : System.Address;
+       Model : Mem_Model := Seq_Cst) return Boolean;
+    pragma Import (Intrinsic, Atomic_Test_And_Set, "__atomic_test_and_set");
+ 
+    procedure Atomic_Clear
+      (Ptr   : System.Address;
+       Model : Mem_Model := Seq_Cst);
+    pragma Import (Intrinsic, Atomic_Clear, "__atomic_clear");
+ 
+    function Atomic_Always_Lock_Free
+      (Size : Interfaces.C.size_t;
+       Ptr  : System.Address := System.Null_Address) return Boolean;
+    pragma Import
+      (Intrinsic, Atomic_Always_Lock_Free, "__atomic_always_lock_free");
+ 
+    --------------------------
+    -- Lock-free operations --
+    --------------------------
+ 
+    --  The lock-free implementation uses two atomic instructions for the
+    --  expansion of protected operations:
+ 
+    --  * Lock_Free_Read atomically loads the value contained in Ptr (with the
+    --    Acquire synchronization mode).
+ 
+    --  * Lock_Free_Try_Write atomically tries to write the Desired value into
+    --    Ptr if Ptr contains the Expected value. It returns true if the value
+    --    in Ptr was changed, or False if it was not, in which case Expected is
+    --    updated to the unexpected value in Ptr. Note that it does nothing and
+    --    returns true if Desired and Expected are equal.
+ 
+    generic
+       type Atomic_Type is mod <>;
+    function Lock_Free_Read (Ptr : Address) return Atomic_Type;
+ 
+    function Lock_Free_Read_8  is new Lock_Free_Read (uint8);
+    function Lock_Free_Read_16 is new Lock_Free_Read (uint16);
+    function Lock_Free_Read_32 is new Lock_Free_Read (uint32);
+ 
+    generic
+       type Atomic_Type is mod <>;
+    function Lock_Free_Try_Write
+      (Ptr      : Address;
+       Expected : in out Atomic_Type;
+       Desired  : Atomic_Type) return Boolean;
+ 
+    function Lock_Free_Try_Write_8  is new Lock_Free_Try_Write (uint8);
+    function Lock_Free_Try_Write_16 is new Lock_Free_Try_Write (uint16);
+    function Lock_Free_Try_Write_32 is new Lock_Free_Try_Write (uint32);
+ 
+ private
+    pragma Inline (Lock_Free_Read);
+    pragma Inline (Lock_Free_Try_Write);
+ end System.Atomic_Primitives;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-auxdec.adb gcc-14.1.0/gcc/ada/libgnat/s-auxdec.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-auxdec.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-auxdec.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/Or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/Or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-auxdec.ads gcc-14.1.0/gcc/ada/libgnat/s-auxdec.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-auxdec.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-auxdec.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-bignum.adb gcc-14.1.0/gcc/ada/libgnat/s-bignum.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-bignum.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-bignum.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-bignum.ads gcc-14.1.0/gcc/ada/libgnat/s-bignum.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-bignum.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-bignum.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-bitfie.ads gcc-14.1.0/gcc/ada/libgnat/s-bitfie.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-bitfie.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-bitfie.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2023, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2024, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-bitops.adb gcc-14.1.0/gcc/ada/libgnat/s-bitops.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-bitops.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-bitops.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Bit_Ops is
*** 112,117 ****
--- 112,120 ----
        RightB : constant Bits := To_Bits (Right);
  
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
+ 
        if Llen /= Rlen then
           return False;
  
*************** package body System.Bit_Ops is
*** 134,139 ****
--- 137,144 ----
              end if;
           end;
        end if;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Bit_Eq;
  
     -------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-bitops.ads gcc-14.1.0/gcc/ada/libgnat/s-bitops.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-bitops.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-bitops.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-bituti.adb gcc-14.1.0/gcc/ada/libgnat/s-bituti.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-bituti.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-bituti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --               Copyright (C) 2019-2023, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --               Copyright (C) 2019-2024, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,39 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
  package body System.Bitfield_Utils is
  
     package body G is
  
!       Val_Bytes : constant Address := Address (Val'Size / Storage_Unit);
  
        --  A Val_2 can cross a memory page boundary (e.g. an 8-byte Val_2 that
        --  starts 4 bytes before the end of a page). If the bit field also
--- 29,41 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Storage_Elements; use System.Storage_Elements;
+ 
  package body System.Bitfield_Utils is
  
     package body G is
  
!       Val_Bytes : constant Storage_Count := Val'Size / Storage_Unit;
  
        --  A Val_2 can cross a memory page boundary (e.g. an 8-byte Val_2 that
        --  starts 4 bytes before the end of a page). If the bit field also
*************** package body System.Bitfield_Utils is
*** 119,125 ****
           Size : Small_Size)
          return Val_2 is
        begin
!          pragma Assert (Src_Address mod Val'Alignment = 0);
  
           --  Bit field fits in first half; fetch just one Val. On little
           --  endian, we want that in the low half, but on big endian, we
--- 121,127 ----
           Size : Small_Size)
          return Val_2 is
        begin
!          pragma Assert (Src_Address mod Storage_Count'(Val'Alignment) = 0);
  
           --  Bit field fits in first half; fetch just one Val. On little
           --  endian, we want that in the low half, but on big endian, we
*************** package body System.Bitfield_Utils is
*** 154,160 ****
           V : Val_2;
           Size : Small_Size) is
        begin
!          pragma Assert (Dest_Address mod Val'Alignment = 0);
  
           --  Comments in Get_Val_2 apply, except we're storing instead of
           --  fetching.
--- 156,162 ----
           V : Val_2;
           Size : Small_Size) is
        begin
!          pragma Assert (Dest_Address mod Storage_Count'(Val'Alignment) = 0);
  
           --  Comments in Get_Val_2 apply, except we're storing instead of
           --  fetching.
*************** package body System.Bitfield_Utils is
*** 381,398 ****
           --  Align the Address values as for Val and Val_2, and adjust the
           --  Bit_Offsets accordingly.
  
!          Src_Adjust     : constant Address := Src_Address mod Val_Bytes;
           Al_Src_Address : constant Address := Src_Address - Src_Adjust;
           Al_Src_Offset  : constant Bit_Offset :=
             Src_Offset + Bit_Offset (Src_Adjust * Storage_Unit);
  
!          Dest_Adjust     : constant Address := Dest_Address mod Val_Bytes;
           Al_Dest_Address : constant Address := Dest_Address - Dest_Adjust;
           Al_Dest_Offset  : constant Bit_Offset :=
             Dest_Offset + Bit_Offset (Dest_Adjust * Storage_Unit);
  
!          pragma Assert (Al_Src_Address mod Val'Alignment = 0);
!          pragma Assert (Al_Dest_Address mod Val'Alignment = 0);
        begin
           --  Optimized small case
  
--- 383,401 ----
           --  Align the Address values as for Val and Val_2, and adjust the
           --  Bit_Offsets accordingly.
  
!          Src_Adjust     : constant Storage_Offset := Src_Address mod Val_Bytes;
           Al_Src_Address : constant Address := Src_Address - Src_Adjust;
           Al_Src_Offset  : constant Bit_Offset :=
             Src_Offset + Bit_Offset (Src_Adjust * Storage_Unit);
  
!          Dest_Adjust     : constant Storage_Offset :=
!            Dest_Address mod Val_Bytes;
           Al_Dest_Address : constant Address := Dest_Address - Dest_Adjust;
           Al_Dest_Offset  : constant Bit_Offset :=
             Dest_Offset + Bit_Offset (Dest_Adjust * Storage_Unit);
  
!          pragma Assert (Al_Src_Address mod Storage_Count'(Val'Alignment) = 0);
!          pragma Assert (Al_Dest_Address mod Storage_Count'(Val'Alignment) = 0);
        begin
           --  Optimized small case
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-bituti.ads gcc-14.1.0/gcc/ada/libgnat/s-bituti.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-bituti.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-bituti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2023, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2024, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-boarop.ads gcc-14.1.0/gcc/ada/libgnat/s-boarop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-boarop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-boarop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-boustr.adb gcc-14.1.0/gcc/ada/libgnat/s-boustr.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-boustr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-boustr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-boustr.ads gcc-14.1.0/gcc/ada/libgnat/s-boustr.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-boustr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-boustr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-bytswa.ads gcc-14.1.0/gcc/ada/libgnat/s-bytswa.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-bytswa.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-bytswa.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-carsi8.adb gcc-14.1.0/gcc/ada/libgnat/s-carsi8.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-carsi8.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-carsi8.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 58,63 ****
--- 59,67 ----
     function To_Big_Bytes is new
       Ada.Unchecked_Conversion (System.Address, Big_Bytes_Ptr);
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     ----------------------
     -- Compare_Array_S8 --
     ----------------------
*************** package body System.Compare_Array_Signed
*** 91,98 ****
           for J in 0 .. Words_To_Compare - 1 loop
              if LeftP (J) /= RightP (J) then
                 return Compare_Array_S8_Unaligned
!                         (AddA (Left,  Address (4 * J)),
!                          AddA (Right, Address (4 * J)),
                           4, 4);
              end if;
           end loop;
--- 95,102 ----
           for J in 0 .. Words_To_Compare - 1 loop
              if LeftP (J) /= RightP (J) then
                 return Compare_Array_S8_Unaligned
!                         (Left  + Storage_Offset (4 * J),
!                          Right + Storage_Offset (4 * J),
                           4, 4);
              end if;
           end loop;
*************** package body System.Compare_Array_Signed
*** 105,112 ****
           --    * Words_To_Compare = Compare_Len / 4
           --    * Bytes_Compared_As_Words = Words_To_Compare * 4
           return Compare_Array_S8_Unaligned
!                   (AddA (Left,  Address (Bytes_Compared_As_Words)),
!                    AddA (Right, Address (Bytes_Compared_As_Words)),
                     Left_Len  - Bytes_Compared_As_Words,
                     Right_Len - Bytes_Compared_As_Words);
        end;
--- 109,116 ----
           --    * Words_To_Compare = Compare_Len / 4
           --    * Bytes_Compared_As_Words = Words_To_Compare * 4
           return Compare_Array_S8_Unaligned
!                         (Left  + Storage_Offset (Bytes_Compared_As_Words),
!                          Right + Storage_Offset (Bytes_Compared_As_Words),
                     Left_Len  - Bytes_Compared_As_Words,
                     Right_Len - Bytes_Compared_As_Words);
        end;
*************** package body System.Compare_Array_Signed
*** 147,150 ****
--- 151,155 ----
        end if;
     end Compare_Array_S8_Unaligned;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Compare_Array_Signed_8;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-carsi8.ads gcc-14.1.0/gcc/ada/libgnat/s-carsi8.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-carsi8.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-carsi8.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-carun8.adb gcc-14.1.0/gcc/ada/libgnat/s-carun8.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-carun8.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-carun8.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 57,62 ****
--- 58,66 ----
     function To_Big_Bytes is new
       Ada.Unchecked_Conversion (System.Address, Big_Bytes_Ptr);
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     ----------------------
     -- Compare_Array_U8 --
     ----------------------
*************** package body System.Compare_Array_Unsign
*** 72,78 ****
     begin
        --  If operands are non-aligned, or length is too short, go by bytes
  
!       if (ModA (OrA (Left, Right), 4) /= 0) or else Compare_Len < 4 then
           return Compare_Array_U8_Unaligned (Left, Right, Left_Len, Right_Len);
        end if;
  
--- 76,82 ----
     begin
        --  If operands are non-aligned, or length is too short, go by bytes
  
!       if ModA (OrA (Left, Right), 4) /= 0 or else Compare_Len < 4 then
           return Compare_Array_U8_Unaligned (Left, Right, Left_Len, Right_Len);
        end if;
  
*************** package body System.Compare_Array_Unsign
*** 90,97 ****
           for J in 0 .. Words_To_Compare - 1 loop
              if LeftP (J) /= RightP (J) then
                 return Compare_Array_U8_Unaligned
!                         (AddA (Left,  Address (4 * J)),
!                          AddA (Right, Address (4 * J)),
                           4, 4);
              end if;
           end loop;
--- 94,101 ----
           for J in 0 .. Words_To_Compare - 1 loop
              if LeftP (J) /= RightP (J) then
                 return Compare_Array_U8_Unaligned
!                         (Left  + Storage_Offset (4 * J),
!                          Right + Storage_Offset (4 * J),
                           4, 4);
              end if;
           end loop;
*************** package body System.Compare_Array_Unsign
*** 104,111 ****
           --    * Words_To_Compare = Compare_Len / 4
           --    * Bytes_Compared_As_Words = Words_To_Compare * 4
           return Compare_Array_U8_Unaligned
!                   (AddA (Left,  Address (Bytes_Compared_As_Words)),
!                    AddA (Right, Address (Bytes_Compared_As_Words)),
                     Left_Len  - Bytes_Compared_As_Words,
                     Right_Len - Bytes_Compared_As_Words);
        end;
--- 108,115 ----
           --    * Words_To_Compare = Compare_Len / 4
           --    * Bytes_Compared_As_Words = Words_To_Compare * 4
           return Compare_Array_U8_Unaligned
!                   (Left  + Storage_Offset (Bytes_Compared_As_Words),
!                    Right + Storage_Offset (Bytes_Compared_As_Words),
                     Left_Len  - Bytes_Compared_As_Words,
                     Right_Len - Bytes_Compared_As_Words);
        end;
*************** package body System.Compare_Array_Unsign
*** 146,149 ****
--- 150,154 ----
        end if;
     end Compare_Array_U8_Unaligned;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Compare_Array_Unsigned_8;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-carun8.ads gcc-14.1.0/gcc/ada/libgnat/s-carun8.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-carun8.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-carun8.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casi128.adb gcc-14.1.0/gcc/ada/libgnat/s-casi128.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-casi128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casi128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 80,87 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 16);
!             R := AddA (R, 16);
           end loop;
  
        --  Case of going by unaligned quadruple words
--- 81,88 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (16);
!             R := R + Storage_Offset (16);
           end loop;
  
        --  Case of going by unaligned quadruple words
*************** package body System.Compare_Array_Signed
*** 97,104 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 16);
!             R := AddA (R, 16);
           end loop;
        end if;
  
--- 98,105 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (16);
!             R := R + Storage_Offset (16);
           end loop;
        end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casi128.ads gcc-14.1.0/gcc/ada/libgnat/s-casi128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-casi128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casi128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casi16.adb gcc-14.1.0/gcc/ada/libgnat/s-casi16.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-casi16.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casi16.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 58,63 ****
--- 59,67 ----
     -- Compare_Array_S16 --
     -----------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     function Compare_Array_S16
       (Left      : System.Address;
        Right     : System.Address;
*************** package body System.Compare_Array_Signed
*** 79,86 ****
             and then W (L).all = W (R).all
           loop
              Clen := Clen - 2;
!             L := AddA (L, 4);
!             R := AddA (R, 4);
           end loop;
        end if;
  
--- 83,90 ----
             and then W (L).all = W (R).all
           loop
              Clen := Clen - 2;
!             L := L + Storage_Offset (4);
!             R := R + Storage_Offset (4);
           end loop;
        end if;
  
*************** package body System.Compare_Array_Signed
*** 97,104 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 2);
!             R := AddA (R, 2);
           end loop;
  
        --  Case of going by unaligned half words
--- 101,108 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (2);
!             R := R + Storage_Offset (2);
           end loop;
  
        --  Case of going by unaligned half words
*************** package body System.Compare_Array_Signed
*** 114,121 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 2);
!             R := AddA (R, 2);
           end loop;
        end if;
  
--- 118,125 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (2);
!             R := R + Storage_Offset (2);
           end loop;
        end if;
  
*************** package body System.Compare_Array_Signed
*** 130,133 ****
--- 134,138 ----
        end if;
     end Compare_Array_S16;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Compare_Array_Signed_16;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casi16.ads gcc-14.1.0/gcc/ada/libgnat/s-casi16.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-casi16.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casi16.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casi32.adb gcc-14.1.0/gcc/ada/libgnat/s-casi32.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-casi32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casi32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 53,58 ****
--- 54,62 ----
     -- Compare_Array_S32 --
     -----------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     function Compare_Array_S32
       (Left      : System.Address;
        Right     : System.Address;
*************** package body System.Compare_Array_Signed
*** 80,87 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 4);
!             R := AddA (R, 4);
           end loop;
  
        --  Case of going by unaligned words
--- 84,91 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (4);
!             R := R + Storage_Offset (4);
           end loop;
  
        --  Case of going by unaligned words
*************** package body System.Compare_Array_Signed
*** 97,104 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 4);
!             R := AddA (R, 4);
           end loop;
        end if;
  
--- 101,108 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (4);
!             R := R + Storage_Offset (4);
           end loop;
        end if;
  
*************** package body System.Compare_Array_Signed
*** 113,116 ****
--- 117,121 ----
        end if;
     end Compare_Array_S32;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Compare_Array_Signed_32;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casi32.ads gcc-14.1.0/gcc/ada/libgnat/s-casi32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-casi32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casi32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casi64.adb gcc-14.1.0/gcc/ada/libgnat/s-casi64.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-casi64.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casi64.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Signed
*** 53,58 ****
--- 54,62 ----
     -- Compare_Array_S64 --
     -----------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     function Compare_Array_S64
       (Left      : System.Address;
        Right     : System.Address;
*************** package body System.Compare_Array_Signed
*** 80,87 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 8);
!             R := AddA (R, 8);
           end loop;
  
        --  Case of going by unaligned double words
--- 84,91 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (8);
!             R := R + Storage_Offset (8);
           end loop;
  
        --  Case of going by unaligned double words
*************** package body System.Compare_Array_Signed
*** 97,104 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 8);
!             R := AddA (R, 8);
           end loop;
        end if;
  
--- 101,108 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (8);
!             R := R + Storage_Offset (8);
           end loop;
        end if;
  
*************** package body System.Compare_Array_Signed
*** 113,116 ****
--- 117,121 ----
        end if;
     end Compare_Array_S64;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Compare_Array_Signed_64;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casi64.ads gcc-14.1.0/gcc/ada/libgnat/s-casi64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-casi64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casi64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casuti.adb gcc-14.1.0/gcc/ada/libgnat/s-casuti.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-casuti.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casuti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-casuti.ads gcc-14.1.0/gcc/ada/libgnat/s-casuti.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-casuti.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-casuti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-caun128.adb gcc-14.1.0/gcc/ada/libgnat/s-caun128.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-caun128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-caun128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 79,86 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 16);
!             R := AddA (R, 16);
           end loop;
  
        --  Case of going by unaligned quadruple words
--- 80,87 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (16);
!             R := R + Storage_Offset (16);
           end loop;
  
        --  Case of going by unaligned quadruple words
*************** package body System.Compare_Array_Unsign
*** 96,103 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 16);
!             R := AddA (R, 16);
           end loop;
        end if;
  
--- 97,104 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (16);
!             R := R + Storage_Offset (16);
           end loop;
        end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-caun128.ads gcc-14.1.0/gcc/ada/libgnat/s-caun128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-caun128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-caun128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-caun16.adb gcc-14.1.0/gcc/ada/libgnat/s-caun16.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-caun16.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-caun16.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 58,63 ****
--- 59,67 ----
     -- Compare_Array_U16 --
     -----------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     function Compare_Array_U16
       (Left      : System.Address;
        Right     : System.Address;
*************** package body System.Compare_Array_Unsign
*** 79,86 ****
             and then W (L).all = W (R).all
           loop
              Clen := Clen - 2;
!             L := AddA (L, 4);
!             R := AddA (R, 4);
           end loop;
        end if;
  
--- 83,90 ----
             and then W (L).all = W (R).all
           loop
              Clen := Clen - 2;
!             L := L + Storage_Offset (4);
!             R := R + Storage_Offset (4);
           end loop;
        end if;
  
*************** package body System.Compare_Array_Unsign
*** 97,104 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 2);
!             R := AddA (R, 2);
           end loop;
  
        --  Case of going by unaligned half words
--- 101,108 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (2);
!             R := R + Storage_Offset (2);
           end loop;
  
        --  Case of going by unaligned half words
*************** package body System.Compare_Array_Unsign
*** 114,121 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 2);
!             R := AddA (R, 2);
           end loop;
        end if;
  
--- 118,125 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (2);
!             R := R + Storage_Offset (2);
           end loop;
        end if;
  
*************** package body System.Compare_Array_Unsign
*** 130,133 ****
--- 134,138 ----
        end if;
     end Compare_Array_U16;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Compare_Array_Unsigned_16;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-caun16.ads gcc-14.1.0/gcc/ada/libgnat/s-caun16.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-caun16.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-caun16.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-caun32.adb gcc-14.1.0/gcc/ada/libgnat/s-caun32.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-caun32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-caun32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 53,58 ****
--- 54,62 ----
     -- Compare_Array_U32 --
     -----------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     function Compare_Array_U32
       (Left      : System.Address;
        Right     : System.Address;
*************** package body System.Compare_Array_Unsign
*** 80,87 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 4);
!             R := AddA (R, 4);
           end loop;
  
        --  Case of going by unaligned words
--- 84,91 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (4);
!             R := R + Storage_Offset (4);
           end loop;
  
        --  Case of going by unaligned words
*************** package body System.Compare_Array_Unsign
*** 97,104 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 4);
!             R := AddA (R, 4);
           end loop;
        end if;
  
--- 101,108 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (4);
!             R := R + Storage_Offset (4);
           end loop;
        end if;
  
*************** package body System.Compare_Array_Unsign
*** 113,116 ****
--- 117,121 ----
        end if;
     end Compare_Array_U32;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Compare_Array_Unsigned_32;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-caun32.ads gcc-14.1.0/gcc/ada/libgnat/s-caun32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-caun32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-caun32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-caun64.adb gcc-14.1.0/gcc/ada/libgnat/s-caun64.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-caun64.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-caun64.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 30,35 ****
--- 30,36 ----
  ------------------------------------------------------------------------------
  
  with System.Address_Operations; use System.Address_Operations;
+ with System.Storage_Elements;   use System.Storage_Elements;
  
  with Ada.Unchecked_Conversion;
  
*************** package body System.Compare_Array_Unsign
*** 52,57 ****
--- 53,61 ----
     -- Compare_Array_U64 --
     -----------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
     function Compare_Array_U64
       (Left      : System.Address;
        Right     : System.Address;
*************** package body System.Compare_Array_Unsign
*** 79,86 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 8);
!             R := AddA (R, 8);
           end loop;
  
        --  Case of going by unaligned double words
--- 83,90 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (8);
!             R := R + Storage_Offset (8);
           end loop;
  
        --  Case of going by unaligned double words
*************** package body System.Compare_Array_Unsign
*** 96,103 ****
              end if;
  
              Clen := Clen - 1;
!             L := AddA (L, 8);
!             R := AddA (R, 8);
           end loop;
        end if;
  
--- 100,107 ----
              end if;
  
              Clen := Clen - 1;
!             L := L + Storage_Offset (8);
!             R := R + Storage_Offset (8);
           end loop;
        end if;
  
*************** package body System.Compare_Array_Unsign
*** 112,115 ****
--- 116,120 ----
        end if;
     end Compare_Array_U64;
  
+    pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Compare_Array_Unsigned_64;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-caun64.ads gcc-14.1.0/gcc/ada/libgnat/s-caun64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-caun64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-caun64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-chepoo.ads gcc-14.1.0/gcc/ada/libgnat/s-chepoo.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-chepoo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-chepoo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-commun.adb gcc-14.1.0/gcc/ada/libgnat/s-commun.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-commun.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-commun.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-commun.ads gcc-14.1.0/gcc/ada/libgnat/s-commun.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-commun.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-commun.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca2.adb gcc-14.1.0/gcc/ada/libgnat/s-conca2.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-conca2.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca2.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca2.ads gcc-14.1.0/gcc/ada/libgnat/s-conca2.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-conca2.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca2.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca3.adb gcc-14.1.0/gcc/ada/libgnat/s-conca3.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-conca3.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca3.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca3.ads gcc-14.1.0/gcc/ada/libgnat/s-conca3.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-conca3.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca3.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca4.adb gcc-14.1.0/gcc/ada/libgnat/s-conca4.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-conca4.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca4.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca4.ads gcc-14.1.0/gcc/ada/libgnat/s-conca4.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-conca4.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca4.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca5.adb gcc-14.1.0/gcc/ada/libgnat/s-conca5.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-conca5.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca5.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca5.ads gcc-14.1.0/gcc/ada/libgnat/s-conca5.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-conca5.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca5.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca6.adb gcc-14.1.0/gcc/ada/libgnat/s-conca6.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-conca6.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca6.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca6.ads gcc-14.1.0/gcc/ada/libgnat/s-conca6.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-conca6.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca6.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca7.adb gcc-14.1.0/gcc/ada/libgnat/s-conca7.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-conca7.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca7.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca7.ads gcc-14.1.0/gcc/ada/libgnat/s-conca7.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-conca7.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca7.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca8.adb gcc-14.1.0/gcc/ada/libgnat/s-conca8.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-conca8.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca8.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca8.ads gcc-14.1.0/gcc/ada/libgnat/s-conca8.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-conca8.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca8.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca9.adb gcc-14.1.0/gcc/ada/libgnat/s-conca9.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-conca9.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca9.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-conca9.ads gcc-14.1.0/gcc/ada/libgnat/s-conca9.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-conca9.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-conca9.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-crc32.adb gcc-14.1.0/gcc/ada/libgnat/s-crc32.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-crc32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-crc32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-crc32.ads gcc-14.1.0/gcc/ada/libgnat/s-crc32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-crc32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-crc32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-crtl.ads gcc-14.1.0/gcc/ada/libgnat/s-crtl.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-crtl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-crtl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.CRTL is
*** 55,64 ****
  
     subtype off_t is Long_Integer;
  
!    type size_t is mod 2 ** Standard'Address_Size;
  
!    type ssize_t is range -(2 ** (Standard'Address_Size - 1))
!                       .. +(2 ** (Standard'Address_Size - 1)) - 1;
  
     type int64 is new Long_Long_Integer;
     --  Note: we use Long_Long_Integer'First instead of -2 ** 63 to allow this
--- 55,63 ----
  
     subtype off_t is Long_Integer;
  
!    type size_t is mod System.Memory_Size;
  
!    type ssize_t is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
  
     type int64 is new Long_Long_Integer;
     --  Note: we use Long_Long_Integer'First instead of -2 ** 63 to allow this
*************** package System.CRTL is
*** 221,227 ****
     function ungetc (c : int; stream : FILEs) return int;
     pragma Import (C, ungetc, "ungetc");
  
!    function unlink (filename : chars) return int;
     pragma Import (C, unlink, "__gnat_unlink");
  
     function open (filename : chars; oflag : int) return int;
--- 220,227 ----
     function ungetc (c : int; stream : FILEs) return int;
     pragma Import (C, ungetc, "ungetc");
  
!    function unlink (filename : chars;
!      encoding : Filename_Encoding := Unspecified) return int;
     pragma Import (C, unlink, "__gnat_unlink");
  
     function open (filename : chars; oflag : int) return int;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dfmkio.ads gcc-14.1.0/gcc/ada/libgnat/s-dfmkio.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dfmkio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dfmkio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dfmopr.ads gcc-14.1.0/gcc/ada/libgnat/s-dfmopr.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dfmopr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dfmopr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2023, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dgmgop.ads gcc-14.1.0/gcc/ada/libgnat/s-dgmgop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dgmgop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dgmgop.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-diflio.adb gcc-14.1.0/gcc/ada/libgnat/s-diflio.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-diflio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-diflio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-diflio.ads gcc-14.1.0/gcc/ada/libgnat/s-diflio.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-diflio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-diflio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-diflmk.ads gcc-14.1.0/gcc/ada/libgnat/s-diflmk.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-diflmk.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-diflmk.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-digemk.ads gcc-14.1.0/gcc/ada/libgnat/s-digemk.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-digemk.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-digemk.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-diinio.adb gcc-14.1.0/gcc/ada/libgnat/s-diinio.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-diinio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-diinio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-diinio.ads gcc-14.1.0/gcc/ada/libgnat/s-diinio.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-diinio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-diinio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dilomk.ads gcc-14.1.0/gcc/ada/libgnat/s-dilomk.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dilomk.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dilomk.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dim.ads gcc-14.1.0/gcc/ada/libgnat/s-dim.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dim.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dim.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dimkio.ads gcc-14.1.0/gcc/ada/libgnat/s-dimkio.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dimkio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dimkio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dimmks.ads gcc-14.1.0/gcc/ada/libgnat/s-dimmks.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dimmks.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dimmks.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-direio.adb gcc-14.1.0/gcc/ada/libgnat/s-direio.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-direio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-direio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-direio.ads gcc-14.1.0/gcc/ada/libgnat/s-direio.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-direio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-direio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dlmkio.ads gcc-14.1.0/gcc/ada/libgnat/s-dlmkio.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dlmkio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dlmkio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dlmopr.ads gcc-14.1.0/gcc/ada/libgnat/s-dlmopr.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dlmopr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dlmopr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2023, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2024, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dmotpr.ads gcc-14.1.0/gcc/ada/libgnat/s-dmotpr.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dmotpr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dmotpr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dorepr.adb gcc-14.1.0/gcc/ada/libgnat/s-dorepr.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-dorepr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dorepr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dorepr__fma.adb gcc-14.1.0/gcc/ada/libgnat/s-dorepr__fma.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-dorepr__fma.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dorepr__fma.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dourea.adb gcc-14.1.0/gcc/ada/libgnat/s-dourea.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-dourea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dourea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dourea.ads gcc-14.1.0/gcc/ada/libgnat/s-dourea.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dourea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dourea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dsaser.ads gcc-14.1.0/gcc/ada/libgnat/s-dsaser.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dsaser.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dsaser.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dwalin.adb gcc-14.1.0/gcc/ada/libgnat/s-dwalin.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-dwalin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dwalin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Dwarf_Lines is
*** 46,51 ****
--- 46,55 ----
  
     subtype Offset is Object_Reader.Offset;
  
+    function "-" (Left, Right : Address) return uint32;
+    pragma Import (Intrinsic, "-");
+    --  Return the difference between two addresses as an unsigned offset
+ 
     function Get_Load_Displacement (C : Dwarf_Context) return Storage_Offset;
     --  Return the displacement between the load address present in the binary
     --  and the run-time address at which it is loaded (i.e. non-zero for PIE).
*************** package body System.Dwarf_Lines is
*** 1542,1548 ****
                 exit when Ar_Start = Null_Address and Ar_Len = 0;
  
                 Len   := uint32 (Ar_Len);
!                Start := uint32 (Address'(Ar_Start - C.Low));
  
                 --  Search START in the array
  
--- 1546,1552 ----
                 exit when Ar_Start = Null_Address and Ar_Len = 0;
  
                 Len   := uint32 (Ar_Len);
!                Start := uint32'(Ar_Start - C.Low);
  
                 --  Search START in the array
  
*************** package body System.Dwarf_Lines is
*** 1762,1768 ****
  
        if C.Cache /= null then
           declare
!             Addr_Off : constant uint32 := uint32 (Address'(Addr - C.Low));
  
              First, Last, Mid : Natural;
           begin
--- 1766,1772 ----
  
        if C.Cache /= null then
           declare
!             Off : constant uint32 := uint32'(Addr - C.Low);
  
              First, Last, Mid : Natural;
           begin
*************** package body System.Dwarf_Lines is
*** 1772,1788 ****
  
              while First <= Last loop
                 Mid := First + (Last - First) / 2;
!                if Addr_Off < C.Cache (Mid).First then
                    Last := Mid - 1;
!                elsif Addr_Off >= C.Cache (Mid).First + C.Cache (Mid).Size then
                    First := Mid + 1;
                 else
                    exit;
                 end if;
              end loop;
  
!             if Addr_Off >= C.Cache (Mid).First
!               and then Addr_Off < C.Cache (Mid).First + C.Cache (Mid).Size
              then
                 Line_Offset := Offset (C.Cache (Mid).Line);
                 S := Read_Symbol (C.Obj.all, Offset (C.Cache (Mid).Sym));
--- 1776,1792 ----
  
              while First <= Last loop
                 Mid := First + (Last - First) / 2;
!                if Off < C.Cache (Mid).First then
                    Last := Mid - 1;
!                elsif Off >= C.Cache (Mid).First + C.Cache (Mid).Size then
                    First := Mid + 1;
                 else
                    exit;
                 end if;
              end loop;
  
!             if Off >= C.Cache (Mid).First
!               and then Off < C.Cache (Mid).First + C.Cache (Mid).Size
              then
                 Line_Offset := Offset (C.Cache (Mid).Line);
                 S := Read_Symbol (C.Obj.all, Offset (C.Cache (Mid).Sym));
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-dwalin.ads gcc-14.1.0/gcc/ada/libgnat/s-dwalin.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-dwalin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-dwalin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-elaall.adb gcc-14.1.0/gcc/ada/libgnat/s-elaall.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-elaall.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-elaall.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-elaall.ads gcc-14.1.0/gcc/ada/libgnat/s-elaall.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-elaall.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-elaall.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-excdeb.adb gcc-14.1.0/gcc/ada/libgnat/s-excdeb.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-excdeb.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-excdeb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-excdeb.ads gcc-14.1.0/gcc/ada/libgnat/s-excdeb.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-excdeb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-excdeb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-except.adb gcc-14.1.0/gcc/ada/libgnat/s-except.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-except.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-except.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-except.ads gcc-14.1.0/gcc/ada/libgnat/s-except.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-except.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-except.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-excmac__arm.adb gcc-14.1.0/gcc/ada/libgnat/s-excmac__arm.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-excmac__arm.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-excmac__arm.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2013-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2013-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-excmac__arm.ads gcc-14.1.0/gcc/ada/libgnat/s-excmac__arm.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-excmac__arm.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-excmac__arm.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-excmac__gcc.adb gcc-14.1.0/gcc/ada/libgnat/s-excmac__gcc.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-excmac__gcc.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-excmac__gcc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-excmac__gcc.ads gcc-14.1.0/gcc/ada/libgnat/s-excmac__gcc.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-excmac__gcc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-excmac__gcc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exctab.adb gcc-14.1.0/gcc/ada/libgnat/s-exctab.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-exctab.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exctab.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exctab.ads gcc-14.1.0/gcc/ada/libgnat/s-exctab.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exctab.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exctab.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exctra.adb gcc-14.1.0/gcc/ada/libgnat/s-exctra.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-exctra.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exctra.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exctra.ads gcc-14.1.0/gcc/ada/libgnat/s-exctra.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exctra.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exctra.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnflt.ads gcc-14.1.0/gcc/ada/libgnat/s-exnflt.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exnflt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnflt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnint.adb gcc-14.1.0/gcc/ada/libgnat/s-exnint.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-exnint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnint.ads gcc-14.1.0/gcc/ada/libgnat/s-exnint.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exnint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnlfl.ads gcc-14.1.0/gcc/ada/libgnat/s-exnlfl.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exnlfl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnlfl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnllf.adb gcc-14.1.0/gcc/ada/libgnat/s-exnllf.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-exnllf.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnllf.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnllf.ads gcc-14.1.0/gcc/ada/libgnat/s-exnllf.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exnllf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnllf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnlli.adb gcc-14.1.0/gcc/ada/libgnat/s-exnlli.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-exnlli.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnlli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnlli.ads gcc-14.1.0/gcc/ada/libgnat/s-exnlli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exnlli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnlli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exnllli.ads gcc-14.1.0/gcc/ada/libgnat/s-exnllli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exnllli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exnllli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expint.adb gcc-14.1.0/gcc/ada/libgnat/s-expint.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-expint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expint.ads gcc-14.1.0/gcc/ada/libgnat/s-expint.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-expint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-explli.adb gcc-14.1.0/gcc/ada/libgnat/s-explli.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-explli.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-explli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-explli.ads gcc-14.1.0/gcc/ada/libgnat/s-explli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-explli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-explli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expllli.ads gcc-14.1.0/gcc/ada/libgnat/s-expllli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-expllli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expllli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-explllu.ads gcc-14.1.0/gcc/ada/libgnat/s-explllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-explllu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-explllu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expllu.adb gcc-14.1.0/gcc/ada/libgnat/s-expllu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-expllu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expllu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expllu.ads gcc-14.1.0/gcc/ada/libgnat/s-expllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-expllu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expllu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expmod.adb gcc-14.1.0/gcc/ada/libgnat/s-expmod.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-expmod.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expmod.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 109,117 ****
  
        procedure Lemma_Euclidean_Mod (Q, F, R : Big_Natural) with
          Pre  => F /= 0,
!         Post => (Q * F + R) mod F = R mod F;
  
!       procedure Lemma_Euclidean_Mod (Q, F, R : Big_Natural) is null;
  
        Left  : constant Big_Natural := (X + Y) mod B;
        Right : constant Big_Natural := ((X mod B) + (Y mod B)) mod B;
--- 109,129 ----
  
        procedure Lemma_Euclidean_Mod (Q, F, R : Big_Natural) with
          Pre  => F /= 0,
!         Post => (Q * F + R) mod F = R mod F,
!         Subprogram_Variant => (Decreases => Q);
  
!       -------------------------
!       -- Lemma_Euclidean_Mod --
!       -------------------------
! 
!       procedure Lemma_Euclidean_Mod (Q, F, R : Big_Natural) is
!       begin
!          if Q > 0 then
!             Lemma_Euclidean_Mod (Q - 1, F, R);
!          end if;
!       end Lemma_Euclidean_Mod;
! 
!       --  Local variables
  
        Left  : constant Big_Natural := (X + Y) mod B;
        Right : constant Big_Natural := ((X mod B) + (Y mod B)) mod B;
*************** is
*** 164,169 ****
--- 176,184 ----
              Lemma_Mod_Mod (A, B);
              Lemma_Exp_Mod (A, Exp - 1, B);
              Lemma_Mult_Mod (A, A ** (Exp - 1), B);
+             pragma Assert
+               ((A mod B) * (A mod B) ** (Exp - 1) = (A mod B) ** Exp);
+             pragma Assert (A * A ** (Exp - 1) = A ** Exp);
              pragma Assert (Left = Right);
           end;
        end if;
*************** is
*** 190,195 ****
--- 205,211 ----
              pragma Assert (Left = Right);
           else
              pragma Assert (Y mod B = 0);
+             pragma Assert (Y / B * B = Y);
              pragma Assert ((X * Y) mod B = (X * Y) - (X * Y) / B * B);
              pragma Assert
                ((X * Y) mod B = (X * Y) - (X * (Y / B) * B) / B * B);
*************** is
*** 309,314 ****
--- 325,331 ----
              Lemma_Mod_Mod (Rest * Rest, Big (Modulus));
              Lemma_Mod_Ident (Big (Result), Big (Modulus));
              Lemma_Mult_Mod (Big (Result), Rest * Rest, Big (Modulus));
+             pragma Assert (Big (Factor) >= 0);
              Lemma_Mult_Mod (Big (Result), Big (Factor) ** Exp,
                                 Big (Modulus));
              pragma Assert (Equal_Modulo
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expmod.ads gcc-14.1.0/gcc/ada/libgnat/s-expmod.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-expmod.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expmod.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exponn.adb gcc-14.1.0/gcc/ada/libgnat/s-exponn.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-exponn.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exponn.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 108,113 ****
--- 108,116 ----
        --  Ghost variable to hold Factor**Exp between Exp and Factor updates
  
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
+ 
        --  We use the standard logarithmic approach, Exp gets shifted right
        --  testing successive low order bits and Factor is the value of the
        --  base raised to the next power of 2.
*************** is
*** 173,178 ****
--- 176,183 ----
        pragma Assert (Big (Result) = Big (Left) ** Right);
  
        return Result;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Expon;
  
     ----------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exponn.ads gcc-14.1.0/gcc/ada/libgnat/s-exponn.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exponn.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exponn.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exponr.adb gcc-14.1.0/gcc/ada/libgnat/s-exponr.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-exponr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exponr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exponr.ads gcc-14.1.0/gcc/ada/libgnat/s-exponr.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exponr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exponr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expont.adb gcc-14.1.0/gcc/ada/libgnat/s-expont.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-expont.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expont.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 108,113 ****
--- 108,116 ----
        --  Ghost variable to hold Factor**Exp between Exp and Factor updates
  
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
+ 
        --  We use the standard logarithmic approach, Exp gets shifted right
        --  testing successive low order bits and Factor is the value of the
        --  base raised to the next power of 2.
*************** is
*** 173,178 ****
--- 176,183 ----
        pragma Assert (Big (Result) = Big (Left) ** Right);
  
        return Result;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Expon;
  
     ----------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expont.ads gcc-14.1.0/gcc/ada/libgnat/s-expont.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-expont.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expont.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exponu.adb gcc-14.1.0/gcc/ada/libgnat/s-exponu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-exponu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exponu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-exponu.ads gcc-14.1.0/gcc/ada/libgnat/s-exponu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-exponu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-exponu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expuns.adb gcc-14.1.0/gcc/ada/libgnat/s-expuns.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-expuns.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expuns.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-expuns.ads gcc-14.1.0/gcc/ada/libgnat/s-expuns.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-expuns.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-expuns.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fatflt.ads gcc-14.1.0/gcc/ada/libgnat/s-fatflt.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fatflt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fatflt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fatgen.adb gcc-14.1.0/gcc/ada/libgnat/s-fatgen.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-fatgen.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fatgen.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fatgen.ads gcc-14.1.0/gcc/ada/libgnat/s-fatgen.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fatgen.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fatgen.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fatlfl.ads gcc-14.1.0/gcc/ada/libgnat/s-fatlfl.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fatlfl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fatlfl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fatllf.ads gcc-14.1.0/gcc/ada/libgnat/s-fatllf.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fatllf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fatllf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-ficobl.ads gcc-14.1.0/gcc/ada/libgnat/s-ficobl.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-ficobl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-ficobl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1992-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1992-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-filatt.ads gcc-14.1.0/gcc/ada/libgnat/s-filatt.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-filatt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-filatt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2013-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2013-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fileio.adb gcc-14.1.0/gcc/ada/libgnat/s-fileio.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-fileio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fileio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.File_IO is
*** 350,355 ****
--- 350,356 ----
        declare
           Filename : aliased constant String := File.Name.all;
           Is_Temporary_File : constant Boolean := File.Is_Temporary_File;
+          Encoding : constant CRTL.Filename_Encoding := File.Encoding;
  
        begin
           Close (File_Ptr);
*************** package body System.File_IO is
*** 360,366 ****
           --  it's a temporary file, then closing it already unlinked it.
  
           if not Is_Temporary_File then
!             if unlink (Filename'Address) = -1 then
                 raise Use_Error with OS_Lib.Errno_Message;
              end if;
           end if;
--- 361,367 ----
           --  it's a temporary file, then closing it already unlinked it.
  
           if not Is_Temporary_File then
!             if System.CRTL.unlink (Filename'Address, Encoding) = -1 then
                 raise Use_Error with OS_Lib.Errno_Message;
              end if;
           end if;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fileio.ads gcc-14.1.0/gcc/ada/libgnat/s-fileio.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fileio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fileio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-finmas.adb gcc-14.1.0/gcc/ada/libgnat/s-finmas.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-finmas.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-finmas.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Finalization_Masters
*** 70,89 ****
        return System.Storage_Elements."+" (Addr, Offset);
     end Add_Offset_To_Address;
  
-    ------------
-    -- Attach --
-    ------------
- 
-    procedure Attach (N : not null FM_Node_Ptr; L : not null FM_Node_Ptr) is
-    begin
-       Lock_Task.all;
-       Attach_Unprotected (N, L);
-       Unlock_Task.all;
- 
-       --  Note: No need to unlock in case of an exception because the above
-       --  code can never raise one.
-    end Attach;
- 
     ------------------------
     -- Attach_Unprotected --
     ------------------------
--- 70,75 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-finmas.ads gcc-14.1.0/gcc/ada/libgnat/s-finmas.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-finmas.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-finmas.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Finalization_Masters is
*** 71,80 ****
     type Finalization_Master_Ptr is access all Finalization_Master;
     for Finalization_Master_Ptr'Storage_Size use 0;
  
-    procedure Attach (N : not null FM_Node_Ptr; L : not null FM_Node_Ptr);
-    --  Compiler interface, do not call from within the run-time. Prepend a
-    --  node to a specific finalization master.
- 
     procedure Attach_Unprotected
       (N : not null FM_Node_Ptr;
        L : not null FM_Node_Ptr);
--- 71,76 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-finroo.adb gcc-14.1.0/gcc/ada/libgnat/s-finroo.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-finroo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-finroo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-finroo.ads gcc-14.1.0/gcc/ada/libgnat/s-finroo.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-finroo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-finroo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-flocon.adb gcc-14.1.0/gcc/ada/libgnat/s-flocon.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-flocon.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-flocon.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-flocon.ads gcc-14.1.0/gcc/ada/libgnat/s-flocon.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-flocon.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-flocon.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-flocon__none.adb gcc-14.1.0/gcc/ada/libgnat/s-flocon__none.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-flocon__none.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-flocon__none.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2023, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2024, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fode128.ads gcc-14.1.0/gcc/ada/libgnat/s-fode128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fode128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fode128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fode32.ads gcc-14.1.0/gcc/ada/libgnat/s-fode32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fode32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fode32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fode64.ads gcc-14.1.0/gcc/ada/libgnat/s-fode64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fode64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fode64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fofi128.ads gcc-14.1.0/gcc/ada/libgnat/s-fofi128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fofi128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fofi128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fofi32.ads gcc-14.1.0/gcc/ada/libgnat/s-fofi32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fofi32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fofi32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fofi64.ads gcc-14.1.0/gcc/ada/libgnat/s-fofi64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fofi64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fofi64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fore_d.adb gcc-14.1.0/gcc/ada/libgnat/s-fore_d.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-fore_d.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fore_d.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fore_d.ads gcc-14.1.0/gcc/ada/libgnat/s-fore_d.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fore_d.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fore_d.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fore_f.adb gcc-14.1.0/gcc/ada/libgnat/s-fore_f.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-fore_f.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fore_f.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-fore_f.ads gcc-14.1.0/gcc/ada/libgnat/s-fore_f.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-fore_f.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-fore_f.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-forrea.adb gcc-14.1.0/gcc/ada/libgnat/s-forrea.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-forrea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-forrea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-forrea.ads gcc-14.1.0/gcc/ada/libgnat/s-forrea.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-forrea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-forrea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-gearop.adb gcc-14.1.0/gcc/ada/libgnat/s-gearop.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-gearop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-gearop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 901,907 ****
                (for all KK in R'Range (2) => R (J, KK)'Initialized);
           end loop;
        end return;
!    end  Matrix_Matrix_Product;
  
     ----------------------------
     -- Matrix_Vector_Solution --
--- 901,907 ----
                (for all KK in R'Range (2) => R (J, KK)'Initialized);
           end loop;
        end return;
!    end Matrix_Matrix_Product;
  
     ----------------------------
     -- Matrix_Vector_Solution --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-gearop.ads gcc-14.1.0/gcc/ada/libgnat/s-gearop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-gearop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-gearop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-genbig.adb gcc-14.1.0/gcc/ada/libgnat/s-genbig.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-genbig.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-genbig.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Generic_Bignums is
*** 49,54 ****
--- 49,58 ----
     --  Compose double digit value from two single digit values
  
     subtype LLI is Long_Long_Integer;
+    subtype LLLI is Long_Long_Long_Integer;
+ 
+    LLLI_Is_128 : constant Boolean := Long_Long_Long_Integer'Size = 128;
+    --  True if Long_Long_Long_Integer is 128-bit large
  
     One_Data : constant Digit_Vector (1 .. 1) := [1];
     --  Constant one
*************** package body System.Generic_Bignums is
*** 318,324 ****
  
        elsif X.Len = 1 and then X.D (1) = 1 then
           return Normalize
!            (X.D, Neg => X.Neg and then ((Y.D (Y.Len) and 1) = 1));
  
        --  If the absolute value of the base is greater than 1, then the
        --  exponent must not be bigger than one word, otherwise the result
--- 322,328 ----
  
        elsif X.Len = 1 and then X.D (1) = 1 then
           return Normalize
!            (X.D, Neg => X.Neg and then (Y.D (Y.Len) and 1) = 1);
  
        --  If the absolute value of the base is greater than 1, then the
        --  exponent must not be bigger than one word, otherwise the result
*************** package body System.Generic_Bignums is
*** 694,707 ****
        --  Lengths are different, that's decisive since no leading zeroes
  
        elsif X'Last /= Y'Last then
!          return (if (X'Last > Y'Last) xor X_Neg then GT else LT);
  
        --  Need to compare data
  
        else
           for J in X'Range loop
              if X (J) /= Y (J) then
!                return (if (X (J) > Y (J)) xor X_Neg then GT else LT);
              end if;
           end loop;
  
--- 698,711 ----
        --  Lengths are different, that's decisive since no leading zeroes
  
        elsif X'Last /= Y'Last then
!          return (if X'Last > Y'Last xor X_Neg then GT else LT);
  
        --  Need to compare data
  
        else
           for J in X'Range loop
              if X (J) /= Y (J) then
!                return (if X (J) > Y (J) xor X_Neg then GT else LT);
              end if;
           end loop;
  
*************** package body System.Generic_Bignums is
*** 1041,1062 ****
     -- From_Bignum --
     -----------------
  
!    function From_Bignum (X : Bignum) return Long_Long_Integer is
     begin
        if X.Len = 0 then
           return 0;
  
        elsif X.Len = 1 then
!          return (if X.Neg then -LLI (X.D (1)) else LLI (X.D (1)));
  
        elsif X.Len = 2 then
           declare
              Mag : constant DD := X.D (1) & X.D (2);
           begin
!             if X.Neg and then Mag <= 2 ** 63 then
!                return -LLI (Mag);
!             elsif Mag < 2 ** 63 then
!                return LLI (Mag);
              end if;
           end;
        end if;
--- 1045,1092 ----
     -- From_Bignum --
     -----------------
  
!    function From_Bignum (X : Bignum) return Long_Long_Long_Integer is
     begin
        if X.Len = 0 then
           return 0;
  
        elsif X.Len = 1 then
!          return (if X.Neg then -LLLI (X.D (1)) else LLLI (X.D (1)));
  
        elsif X.Len = 2 then
           declare
              Mag : constant DD := X.D (1) & X.D (2);
           begin
!             if X.Neg and then (Mag <= 2 ** 63 or else LLLI_Is_128) then
!                return -LLLI (Mag);
!             elsif Mag < 2 ** 63 or else LLLI_Is_128 then
!                return LLLI (Mag);
!             end if;
!          end;
! 
!       elsif X.Len = 3 and then LLLI_Is_128 then
!          declare
!             Hi  : constant SD := X.D (1);
!             Lo  : constant DD := X.D (2) & X.D (3);
!             Mag : constant Unsigned_128 :=
!                     Shift_Left (Unsigned_128 (Hi), 64) + Unsigned_128 (Lo);
!          begin
!             return (if X.Neg then -LLLI (Mag) else LLLI (Mag));
!          end;
! 
!       elsif X.Len = 4 and then LLLI_Is_128 then
!          declare
!             Hi  : constant DD := X.D (1) & X.D (2);
!             Lo  : constant DD := X.D (3) & X.D (4);
!             Mag : constant Unsigned_128 :=
!                     Shift_Left (Unsigned_128 (Hi), 64) + Unsigned_128 (Lo);
!          begin
!             if X.Neg
!               and then (Hi < 2 ** 63 or else (Hi = 2 ** 63 and then Lo = 0))
!             then
!                return -LLLI (Mag);
!             elsif Hi < 2 ** 63 then
!                return LLLI (Mag);
              end if;
           end;
        end if;
*************** package body System.Generic_Bignums is
*** 1064,1069 ****
--- 1094,1137 ----
        raise Constraint_Error with "expression value out of range";
     end From_Bignum;
  
+    function From_Bignum (X : Bignum) return Long_Long_Integer is
+    begin
+       return Long_Long_Integer (Long_Long_Long_Integer'(From_Bignum (X)));
+    end From_Bignum;
+ 
+    function From_Bignum (X : Bignum) return Unsigned_128 is
+    begin
+       if X.Neg then
+          null;
+ 
+       elsif X.Len = 0 then
+          return 0;
+ 
+       elsif X.Len = 1 then
+          return Unsigned_128 (X.D (1));
+ 
+       elsif X.Len = 2 then
+          return Unsigned_128 (DD'(X.D (1) & X.D (2)));
+ 
+       elsif X.Len = 3 and then LLLI_Is_128 then
+          return
+            Shift_Left (Unsigned_128 (X.D (1)), 64) +
+              Unsigned_128 (DD'(X.D (2) & X.D (3)));
+ 
+       elsif X.Len = 4 and then LLLI_Is_128 then
+          return
+            Shift_Left (Unsigned_128 (DD'(X.D (1) & X.D (2))), 64) +
+              Unsigned_128 (DD'(X.D (3) & X.D (4)));
+       end if;
+ 
+       raise Constraint_Error with "expression value out of range";
+    end From_Bignum;
+ 
+    function From_Bignum (X : Bignum) return Unsigned_64 is
+    begin
+       return Unsigned_64 (Unsigned_128'(From_Bignum (X)));
+    end From_Bignum;
+ 
     -------------------------
     -- Bignum_In_LLI_Range --
     -------------------------
*************** package body System.Generic_Bignums is
*** 1161,1189 ****
        elsif X = -2 ** 63 then
           return Allocate_Big_Integer ([2 ** 31, 0], True);
  
!       elsif Long_Long_Long_Integer'Size = 128
!         and then X = Long_Long_Long_Integer'First
!       then
           return Allocate_Big_Integer ([2 ** 31, 0, 0, 0], True);
  
        --  Other negative numbers
  
        elsif X < 0 then
!          if Long_Long_Long_Integer'Size = 64 then
              return Allocate_Big_Integer
                       ((SD ((-X) / Base), SD ((-X) mod Base)), True);
-          else
-             return Convert_128 (-X, True);
           end if;
  
        --  Positive numbers
  
        else
!          if Long_Long_Long_Integer'Size = 64 then
              return Allocate_Big_Integer
                       ((SD (X / Base), SD (X mod Base)), False);
-          else
-             return Convert_128 (X, False);
           end if;
        end if;
     end To_Bignum;
--- 1229,1255 ----
        elsif X = -2 ** 63 then
           return Allocate_Big_Integer ([2 ** 31, 0], True);
  
!       elsif LLLI_Is_128 and then X = Long_Long_Long_Integer'First then
           return Allocate_Big_Integer ([2 ** 31, 0, 0, 0], True);
  
        --  Other negative numbers
  
        elsif X < 0 then
!          if LLLI_Is_128 then
!             return Convert_128 (-X, True);
!          else
              return Allocate_Big_Integer
                       ((SD ((-X) / Base), SD ((-X) mod Base)), True);
           end if;
  
        --  Positive numbers
  
        else
!          if LLLI_Is_128 then
!             return Convert_128 (X, False);
!          else
              return Allocate_Big_Integer
                       ((SD (X / Base), SD (X mod Base)), False);
           end if;
        end if;
     end To_Bignum;
*************** package body System.Generic_Bignums is
*** 1285,1291 ****
        function Image (Arg : Bignum) return String is
        begin
           if Big_LT (Arg, Big_Base'Unchecked_Access) then
!             return [Hex_Chars (Natural (From_Bignum (Arg)))];
           else
              declare
                 Div    : aliased Big_Integer;
--- 1351,1357 ----
        function Image (Arg : Bignum) return String is
        begin
           if Big_LT (Arg, Big_Base'Unchecked_Access) then
!             return [Hex_Chars (Natural (LLI'(From_Bignum (Arg))))];
           else
              declare
                 Div    : aliased Big_Integer;
*************** package body System.Generic_Bignums is
*** 1294,1300 ****
  
              begin
                 Div_Rem (Arg, Big_Base'Unchecked_Access, Div, Remain);
!                R := Natural (From_Bignum (To_Bignum (Remain)));
                 Free_Big_Integer (Remain);
  
                 return S : constant String :=
--- 1360,1366 ----
  
              begin
                 Div_Rem (Arg, Big_Base'Unchecked_Access, Div, Remain);
!                R := Natural (LLI'(From_Bignum (To_Bignum (Remain))));
                 Free_Big_Integer (Remain);
  
                 return S : constant String :=
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-genbig.ads gcc-14.1.0/gcc/ada/libgnat/s-genbig.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-genbig.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-genbig.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Generic_Bignums is
*** 117,122 ****
--- 117,134 ----
     --  Convert Bignum to Long_Long_Integer. Constraint_Error raised with
     --  appropriate message if value is out of range of Long_Long_Integer.
  
+    function From_Bignum (X : Bignum) return Long_Long_Long_Integer;
+    --  Convert Bignum to Long_Long_Long_Integer. Constraint_Error raised with
+    --  appropriate message if value is out of range of Long_Long_Long_Integer.
+ 
+    function From_Bignum (X : Bignum) return Interfaces.Unsigned_64;
+    --  Convert Bignum to Unsigned_64. Constraint_Error raised with
+    --  appropriate message if value is out of range of Unsigned_64.
+ 
+    function From_Bignum (X : Bignum) return Interfaces.Unsigned_128;
+    --  Convert Bignum to Unsigned_128. Constraint_Error raised with
+    --  appropriate message if value is out of range of Unsigned_128.
+ 
     function To_String
       (X : Bignum; Width : Natural := 0; Base : Positive := 10)
        return String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-geveop.adb gcc-14.1.0/gcc/ada/libgnat/s-geveop.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-geveop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-geveop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Ada.Unchecked_Conversion;
*** 36,44 ****
  
  package body System.Generic_Vector_Operations is
  
!    IU : constant Integer := Integer (Storage_Unit);
!    VU : constant Address := Address (Vectors.Vector'Size / IU);
!    EU : constant Address := Address (Element_Array'Component_Size / IU);
  
     ----------------------
     -- Binary_Operation --
--- 36,45 ----
  
  package body System.Generic_Vector_Operations is
  
!    IU : constant Integer       := Integer (Storage_Unit);
!    VU : constant Storage_Count := Storage_Count (Vectors.Vector'Size / IU);
!    EU : constant Storage_Count :=
!           Storage_Count (Element_Array'Component_Size / IU);
  
     ----------------------
     -- Binary_Operation --
*************** package body System.Generic_Vector_Opera
*** 53,62 ****
        YA : Address := Y;
        --  Address of next element to process in R, X and Y
  
!       VI : constant Integer_Address := To_Integer (VU);
  
        Unaligned : constant Integer_Address :=
!                     Boolean'Pos (ModA (OrA (OrA (RA, XA), YA), VU) /= 0) - 1;
        --  Zero iff one or more argument addresses is not aligned, else all 1's
  
        type Vector_Ptr is access all Vectors.Vector;
--- 54,63 ----
        YA : Address := Y;
        --  Address of next element to process in R, X and Y
  
!       VI : constant Integer_Address := Integer_Address (VU);
  
        Unaligned : constant Integer_Address :=
!                     Boolean'Pos (OrA (OrA (RA, XA), YA) mod VU /= 0) - 1;
        --  Zero iff one or more argument addresses is not aligned, else all 1's
  
        type Vector_Ptr is access all Vectors.Vector;
*************** package body System.Generic_Vector_Opera
*** 73,95 ****
        --  Vector'Size > Storage_Unit
        --  VI > 0
        SA : constant Address :=
!              AddA (XA, To_Address
!                          ((Integer_Address (Length) / VI * VI) and Unaligned));
        --  First address of argument X to start serial processing
  
     begin
        while XA < SA loop
           VP (RA).all := Vector_Op (VP (XA).all, VP (YA).all);
!          XA := AddA (XA, VU);
!          YA := AddA (YA, VU);
!          RA := AddA (RA, VU);
        end loop;
  
        while XA < X + Length loop
           EP (RA).all := Element_Op (EP (XA).all, EP (YA).all);
!          XA := AddA (XA, EU);
!          YA := AddA (YA, EU);
!          RA := AddA (RA, EU);
        end loop;
     end Binary_Operation;
  
--- 74,96 ----
        --  Vector'Size > Storage_Unit
        --  VI > 0
        SA : constant Address :=
!              XA + Storage_Offset
!                     ((Integer_Address (Length) / VI * VI) and Unaligned);
        --  First address of argument X to start serial processing
  
     begin
        while XA < SA loop
           VP (RA).all := Vector_Op (VP (XA).all, VP (YA).all);
!          XA := XA + VU;
!          YA := YA + VU;
!          RA := RA + VU;
        end loop;
  
        while XA < X + Length loop
           EP (RA).all := Element_Op (EP (XA).all, EP (YA).all);
!          XA := XA + EU;
!          YA := YA + EU;
!          RA := RA + EU;
        end loop;
     end Binary_Operation;
  
*************** package body System.Generic_Vector_Opera
*** 105,114 ****
        XA : Address := X;
        --  Address of next element to process in R and X
  
!       VI : constant Integer_Address := To_Integer (VU);
  
        Unaligned : constant Integer_Address :=
!                     Boolean'Pos (ModA (OrA (RA, XA), VU) /= 0) - 1;
        --  Zero iff one or more argument addresses is not aligned, else all 1's
  
        type Vector_Ptr is access all Vectors.Vector;
--- 106,115 ----
        XA : Address := X;
        --  Address of next element to process in R and X
  
!       VI : constant Integer_Address := Integer_Address (VU);
  
        Unaligned : constant Integer_Address :=
!                     Boolean'Pos (OrA (RA, XA) mod VU /= 0) - 1;
        --  Zero iff one or more argument addresses is not aligned, else all 1's
  
        type Vector_Ptr is access all Vectors.Vector;
*************** package body System.Generic_Vector_Opera
*** 125,145 ****
        --  Vector'Size > Storage_Unit
        --  VI > 0
        SA : constant Address :=
!              AddA (XA, To_Address
!                          ((Integer_Address (Length) / VI * VI) and Unaligned));
        --  First address of argument X to start serial processing
  
     begin
        while XA < SA loop
           VP (RA).all := Vector_Op (VP (XA).all);
!          XA := AddA (XA, VU);
!          RA := AddA (RA, VU);
        end loop;
  
        while XA < X + Length loop
           EP (RA).all := Element_Op (EP (XA).all);
!          XA := AddA (XA, EU);
!          RA := AddA (RA, EU);
        end loop;
     end Unary_Operation;
  
--- 126,146 ----
        --  Vector'Size > Storage_Unit
        --  VI > 0
        SA : constant Address :=
!              XA + Storage_Offset
!                     ((Integer_Address (Length) / VI * VI) and Unaligned);
        --  First address of argument X to start serial processing
  
     begin
        while XA < SA loop
           VP (RA).all := Vector_Op (VP (XA).all);
!          XA := XA + VU;
!          RA := RA + VU;
        end loop;
  
        while XA < X + Length loop
           EP (RA).all := Element_Op (EP (XA).all);
!          XA := XA + EU;
!          RA := RA + EU;
        end loop;
     end Unary_Operation;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-geveop.ads gcc-14.1.0/gcc/ada/libgnat/s-geveop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-geveop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-geveop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-gloloc.adb gcc-14.1.0/gcc/ada/libgnat/s-gloloc.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-gloloc.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-gloloc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-gloloc.ads gcc-14.1.0/gcc/ada/libgnat/s-gloloc.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-gloloc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-gloloc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-gloloc__mingw.adb gcc-14.1.0/gcc/ada/libgnat/s-gloloc__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-gloloc__mingw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-gloloc__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-htable.adb gcc-14.1.0/gcc/ada/libgnat/s-htable.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-htable.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-htable.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1995-2023, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1995-2024, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-htable.ads gcc-14.1.0/gcc/ada/libgnat/s-htable.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-htable.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-htable.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imageb.adb gcc-14.1.0/gcc/ada/libgnat/s-imageb.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imageb.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imageb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Image_B is
*** 88,155 ****
        S : out String;
        P : in out Natural)
     is
!       Start : constant Natural := P;
!       F, T  : Natural;
        BU    : constant Uns := Uns (B);
        Hex   : constant array
                  (Uns range 0 .. 15) of Character := "0123456789ABCDEF";
  
!       procedure Set_Digits (T : Uns);
!       --  Set digits of absolute value of T
  
!       ----------------
!       -- Set_Digits --
!       ----------------
  
!       procedure Set_Digits (T : Uns) is
!       begin
!          if T >= BU then
!             Set_Digits (T / BU);
!             P := P + 1;
!             S (P) := Hex (T mod BU);
!          else
!             P := P + 1;
!             S (P) := Hex (T);
!          end if;
!       end Set_Digits;
  
!    --  Start of processing for Set_Image_Based_Unsigned
  
!    begin
  
        if B >= 10 then
-          P := P + 1;
           S (P) := '1';
        end if;
  
        P := P + 1;
-       S (P) := Character'Val (Character'Pos ('0') + B mod 10);
  
-       P := P + 1;
        S (P) := '#';
- 
-       Set_Digits (V);
- 
        P := P + 1;
-       S (P) := '#';
- 
-       --  Add leading spaces if required by width parameter
- 
-       if P - Start < W then
-          F := P;
-          P := Start + W;
-          T := P;
  
!          while F > Start loop
!             S (T) := S (F);
!             T := T - 1;
!             F := F - 1;
!          end loop;
  
!          for J in Start + 1 .. T loop
!             S (J) := ' ';
!          end loop;
!       end if;
  
     end Set_Image_Based_Unsigned;
  
--- 88,140 ----
        S : out String;
        P : in out Natural)
     is
!       Start : constant Natural := P + 1;
        BU    : constant Uns := Uns (B);
        Hex   : constant array
                  (Uns range 0 .. 15) of Character := "0123456789ABCDEF";
  
!       Nb_Digits : Natural := 1;
!       T : Uns := V;
  
!    begin
  
!       --  First we compute the number of characters needed for representing
!       --  the number.
!       loop
!          T := T / BU;
!          exit when T = 0;
!          Nb_Digits := Nb_Digits + 1;
!       end loop;
  
!       P := Start;
  
!       --  Pad S with spaces up to W reduced by Nb_Digits plus extra 3-4
!       --  characters needed for displaying the base.
!       while P < Start + W - Nb_Digits - 3 - B / 10 loop
!          S (P) := ' ';
!          P := P + 1;
!       end loop;
  
        if B >= 10 then
           S (P) := '1';
+          P := P + 1;
        end if;
  
+       S (P) := Hex (BU mod 10);
        P := P + 1;
  
        S (P) := '#';
        P := P + 1;
  
!       --  We now populate digits from the end of the value to the beginning
!       T := V;
!       for J in reverse P .. P + Nb_Digits - 1 loop
!          S (J) := Hex (T mod BU);
!          T := T / BU;
!       end loop;
  
!       P := P + Nb_Digits;
!       S (P) := '#';
  
     end Set_Image_Based_Unsigned;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imageb.ads gcc-14.1.0/gcc/ada/libgnat/s-imageb.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imageb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imageb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imaged.adb gcc-14.1.0/gcc/ada/libgnat/s-imaged.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imaged.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imaged.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imaged.ads gcc-14.1.0/gcc/ada/libgnat/s-imaged.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imaged.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imaged.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imagef.adb gcc-14.1.0/gcc/ada/libgnat/s-imagef.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imagef.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imagef.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Image_F is
*** 70,85 ****
     --  if the small is larger than 1, and smaller than 2**(Int'Size - 1) / 10
     --  if the small is smaller than 1.
  
-    Unsigned_Width_Ghost : constant Natural := Int'Width;
- 
     package Uns_Spec is new System.Value_U_Spec (Uns);
!    package Int_Spec is new System.Value_I_Spec (Int, Uns, Uns_Spec.Uns_Params);
  
     package Image_I is new System.Image_I
!      (Int                  => Int,
!       Uns                  => Uns,
!       Unsigned_Width_Ghost => Unsigned_Width_Ghost,
!       Int_Params           => Int_Spec.Int_Params);
  
     procedure Set_Image_Integer
       (V : Int;
--- 70,83 ----
     --  if the small is larger than 1, and smaller than 2**(Int'Size - 1) / 10
     --  if the small is smaller than 1.
  
     package Uns_Spec is new System.Value_U_Spec (Uns);
!    package Int_Spec is new System.Value_I_Spec (Int, Uns, Uns_Spec);
  
     package Image_I is new System.Image_I
!      (Int    => Int,
!       Uns    => Uns,
!       U_Spec => Uns_Spec,
!       I_Spec => Int_Spec);
  
     procedure Set_Image_Integer
       (V : Int;
*************** package body System.Image_F is
*** 309,314 ****
--- 307,315 ----
        YY : Int := Y;
        --  First two operands of the scaled divide
  
+       J : Natural;
+       --  Loop index
+ 
     begin
        --  Set the first character like Image
  
*************** package body System.Image_F is
*** 319,377 ****
           Ndigs := 0;
        end if;
  
!       for J in 1 .. N loop
!          exit when XX = 0;
  
           Scaled_Divide (XX, YY, Z, Q, R => XX, Round => False);
  
!          if J = 1 then
!             if Q /= 0 then
!                Set_Image_Integer (Q, Digs, Ndigs);
!             end if;
! 
!             Scale := Scale + D;
  
!             --  Prepare for next round, if any
  
!             YY := 10**Maxdigs;
  
!          else
!             pragma Assert (-10**Maxdigs < Q and then Q < 10**Maxdigs);
  
!             Len := 0;
!             Set_Image_Integer (abs Q, Buf, Len);
  
!             pragma Assert (1 <= Len and then Len <= Maxdigs);
  
!             --  If no character but the space has been written, write the
!             --  minus if need be, since Set_Image_Integer did not do it.
  
!             if Ndigs <= 1 then
!                if Q /= 0 then
!                   if Ndigs = 0 then
!                      Digs (1) := '-';
!                   end if;
  
!                   Digs (2 .. Len + 1) := Buf (1 .. Len);
!                   Ndigs := Len + 1;
                 end if;
  
!             --  Or else pad the output with zeroes up to Maxdigs
  
!             else
!                for K in 1 .. Maxdigs - Len loop
!                   Digs (Ndigs + K) := '0';
!                end loop;
  
!                for K in 1 .. Len loop
!                   Digs (Ndigs + Maxdigs - Len + K) := Buf (K);
!                end loop;
  
!                Ndigs := Ndigs + Maxdigs;
!             end if;
  
!             Scale := Scale + Maxdigs;
           end if;
        end loop;
  
        --  If no digit was output, this is zero
--- 320,380 ----
           Ndigs := 0;
        end if;
  
!       --  First round of scaled divide
  
+       if XX /= 0 then
           Scaled_Divide (XX, YY, Z, Q, R => XX, Round => False);
+          if Q /= 0 then
+             Set_Image_Integer (Q, Digs, Ndigs);
+          end if;
  
!          Scale := Scale + D;
  
!          --  Prepare for next round, if any
  
!          YY := 10**Maxdigs;
!       end if;
  
!       J := 2;
!       while J <= N and then XX /= 0 loop
!          Scaled_Divide (XX, YY, Z, Q, R => XX, Round => False);
  
!          pragma Assert (-10**Maxdigs < Q and then Q < 10**Maxdigs);
  
!          Len := 0;
!          Set_Image_Integer (abs Q, Buf, Len);
  
!          pragma Assert (1 <= Len and then Len <= Maxdigs);
  
!          --  If no character but the space has been written, write the
!          --  minus if need be, since Set_Image_Integer did not do it.
  
!          if Ndigs <= 1 then
!             if Q /= 0 then
!                if Ndigs = 0 then
!                   Digs (1) := '-';
                 end if;
  
!                Digs (2 .. Len + 1) := Buf (1 .. Len);
!                Ndigs := Len + 1;
!             end if;
  
!          --  Or else pad the output with zeroes up to Maxdigs
  
!          else
!             for K in 1 .. Maxdigs - Len loop
!                Digs (Ndigs + K) := '0';
!             end loop;
  
!             for K in 1 .. Len loop
!                Digs (Ndigs + Maxdigs - Len + K) := Buf (K);
!             end loop;
  
!             Ndigs := Ndigs + Maxdigs;
           end if;
+ 
+          Scale := Scale + Maxdigs;
+          J := J + 1;
        end loop;
  
        --  If no digit was output, this is zero
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imagef.ads gcc-14.1.0/gcc/ada/libgnat/s-imagef.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imagef.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imagef.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imagei.adb gcc-14.1.0/gcc/ada/libgnat/s-imagei.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imagei.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imagei.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 32,37 ****
--- 32,39 ----
  with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
+ with System.Val_Spec;
+ 
  package body System.Image_I is
  
     --  Ghost code, loop invariants and assertions in this unit are meant for
*************** package body System.Image_I is
*** 149,155 ****
            and then UP.Only_Decimal_Ghost (S, From => 2, To => P)
            and then UP.Scan_Based_Number_Ghost (S, From => 2, To => P)
              = UP.Wrap_Option (IP.Abs_Uns_Of_Int (V)),
!         Post => not System.Val_Util.Only_Space_Ghost (S, 1, P)
            and then IP.Is_Integer_Ghost (S (1 .. P))
            and then IP.Is_Value_Integer_Ghost (S (1 .. P), V);
        --  Ghost lemma to prove the value of Value_Integer from the value of
--- 151,157 ----
            and then UP.Only_Decimal_Ghost (S, From => 2, To => P)
            and then UP.Scan_Based_Number_Ghost (S, From => 2, To => P)
              = UP.Wrap_Option (IP.Abs_Uns_Of_Int (V)),
!         Post => not System.Val_Spec.Only_Space_Ghost (S, 1, P)
            and then IP.Is_Integer_Ghost (S (1 .. P))
            and then IP.Is_Value_Integer_Ghost (S (1 .. P), V);
        --  Ghost lemma to prove the value of Value_Integer from the value of
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imagei.ads gcc-14.1.0/gcc/ada/libgnat/s-imagei.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imagei.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imagei.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 45,67 ****
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Val_Util;
  
  generic
     type Int is range <>;
     type Uns is mod <>;
  
!    Unsigned_Width_Ghost : Natural;
  
!    with package Int_Params is new System.Val_Util.Int_Params
!      (Int => Int, Uns => Uns, others => <>)
!    with Ghost;
  
  package System.Image_I is
!    package IP renames Int_Params;
!    package UP renames IP.Uns_Params;
     use type UP.Uns_Option;
  
     procedure Image_Integer
       (V : Int;
        S : in out String;
--- 45,70 ----
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Value_I_Spec;
! with System.Value_U_Spec;
  
  generic
     type Int is range <>;
     type Uns is mod <>;
  
!    --  Additional parameters for ghost subprograms used inside contracts
  
!    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
!    with package I_Spec is new System.Value_I_Spec
!      (Int => Int, Uns => Uns, U_Spec => U_Spec) with Ghost;
  
  package System.Image_I is
!    package IP renames I_Spec;
!    package UP renames U_Spec;
     use type UP.Uns_Option;
  
+    Unsigned_Width_Ghost : constant Natural := U_Spec.Max_Log10 + 2 with Ghost;
+ 
     procedure Image_Integer
       (V : Int;
        S : in out String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imagen.adb gcc-14.1.0/gcc/ada/libgnat/s-imagen.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imagen.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imagen.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imagen.ads gcc-14.1.0/gcc/ada/libgnat/s-imagen.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imagen.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imagen.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imager.adb gcc-14.1.0/gcc/ada/libgnat/s-imager.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imager.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imager.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imager.ads gcc-14.1.0/gcc/ada/libgnat/s-imager.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imager.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imager.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imageu.adb gcc-14.1.0/gcc/ada/libgnat/s-imageu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imageu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imageu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 31,36 ****
--- 31,37 ----
  
  with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
+ with System.Val_Spec;
  
  package body System.Image_U is
  
*************** package body System.Image_U is
*** 54,70 ****
  
     Big_10 : constant Big_Integer := Big (10) with Ghost;
  
-    --  Maximum value of exponent for 10 that fits in Uns'Base
-    function Max_Log10 return Natural is
-      (case Uns'Base'Size is
-         when 8   => 2,
-         when 16  => 4,
-         when 32  => 9,
-         when 64  => 19,
-         when 128 => 38,
-         when others => raise Program_Error)
-    with Ghost;
- 
     ------------------
     -- Local Lemmas --
     ------------------
--- 55,60 ----
*************** package body System.Image_U is
*** 86,96 ****
       Ghost,
       Post => X / Y / Z = X / (Y * Z);
  
-    procedure Lemma_Unsigned_Width_Ghost
-    with
-      Ghost,
-      Post => Unsigned_Width_Ghost = Max_Log10 + 2;
- 
     ---------------------------
     -- Lemma_Div_Commutation --
     ---------------------------
--- 76,81 ----
*************** package body System.Image_U is
*** 117,134 ****
        pragma Assert (X / YZ = XYZ + R / YZ);
     end Lemma_Div_Twice;
  
-    --------------------------------
-    -- Lemma_Unsigned_Width_Ghost --
-    --------------------------------
- 
-    procedure Lemma_Unsigned_Width_Ghost is
-    begin
-       pragma Assert (Unsigned_Width_Ghost <= Max_Log10 + 2);
-       pragma Assert (Big (Uns'Last) > Big_10 ** Max_Log10);
-       pragma Assert (Big (Uns'Last) < Big_10 ** (Unsigned_Width_Ghost - 1));
-       pragma Assert (Unsigned_Width_Ghost >= Max_Log10 + 2);
-    end Lemma_Unsigned_Width_Ghost;
- 
     --------------------
     -- Image_Unsigned --
     --------------------
--- 102,107 ----
*************** package body System.Image_U is
*** 147,158 ****
            and then S'Last < Integer'Last
            and then P in 2 .. S'Last
            and then S (1) = ' '
!           and then Uns_Params.Only_Decimal_Ghost (S, From => 2, To => P)
!           and then Uns_Params.Scan_Based_Number_Ghost (S, From => 2, To => P)
!             = Uns_Params.Wrap_Option (V),
!         Post => not System.Val_Util.Only_Space_Ghost (S, 1, P)
!           and then Uns_Params.Is_Unsigned_Ghost (S (1 .. P))
!           and then Uns_Params.Is_Value_Unsigned_Ghost (S (1 .. P), V);
        --  Ghost lemma to prove the value of Value_Unsigned from the value of
        --  Scan_Based_Number_Ghost on a decimal string.
  
--- 120,131 ----
            and then S'Last < Integer'Last
            and then P in 2 .. S'Last
            and then S (1) = ' '
!           and then U_Spec.Only_Decimal_Ghost (S, From => 2, To => P)
!           and then U_Spec.Scan_Based_Number_Ghost (S, From => 2, To => P)
!             = U_Spec.Wrap_Option (V),
!         Post => not System.Val_Spec.Only_Space_Ghost (S, 1, P)
!           and then U_Spec.Is_Unsigned_Ghost (S (1 .. P))
!           and then U_Spec.Is_Value_Unsigned_Ghost (S (1 .. P), V);
        --  Ghost lemma to prove the value of Value_Unsigned from the value of
        --  Scan_Based_Number_Ghost on a decimal string.
  
*************** package body System.Image_U is
*** 166,178 ****
           pragma Assert (Str'First = 1);
           pragma Assert (S (2) /= ' ');
           pragma Assert
!            (Uns_Params.Only_Decimal_Ghost (Str, From => 2, To => P));
!          Uns_Params.Prove_Scan_Based_Number_Ghost_Eq
             (S, Str, From => 2, To => P);
           pragma Assert
!            (Uns_Params.Scan_Based_Number_Ghost (Str, From => 2, To => P)
!             = Uns_Params.Wrap_Option (V));
!          Uns_Params.Prove_Scan_Only_Decimal_Ghost (Str, V);
        end Prove_Value_Unsigned;
  
     --  Start of processing for Image_Unsigned
--- 139,151 ----
           pragma Assert (Str'First = 1);
           pragma Assert (S (2) /= ' ');
           pragma Assert
!            (U_Spec.Only_Decimal_Ghost (Str, From => 2, To => P));
!          U_Spec.Prove_Scan_Based_Number_Ghost_Eq
             (S, Str, From => 2, To => P);
           pragma Assert
!            (U_Spec.Scan_Based_Number_Ghost (Str, From => 2, To => P)
!             = U_Spec.Wrap_Option (V));
!          U_Spec.Prove_Scan_Only_Decimal_Ghost (Str, V);
        end Prove_Value_Unsigned;
  
     --  Start of processing for Image_Unsigned
*************** package body System.Image_U is
*** 227,233 ****
        with
          Ghost,
          Pre  => R in 0 .. 9,
!         Post => Uns_Params.Hexa_To_Unsigned_Ghost (Character'Val (48 + R)) = R;
        --  Ghost lemma to prove that Hexa_To_Unsigned_Ghost returns the source
        --  figure when applied to the corresponding character.
  
--- 200,206 ----
        with
          Ghost,
          Pre  => R in 0 .. 9,
!         Post => U_Spec.Hexa_To_Unsigned_Ghost (Character'Val (48 + R)) = R;
        --  Ghost lemma to prove that Hexa_To_Unsigned_Ghost returns the source
        --  figure when applied to the corresponding character.
  
*************** package body System.Image_U is
*** 245,270 ****
              and then (for all I in P + 1 .. Max => Prev_S (I) = S (I))
              and then S (P) in '0' .. '9'
              and then V <= Uns'Last / 10
!             and then Uns'Last - Uns_Params.Hexa_To_Unsigned_Ghost (S (P))
                >= 10 * V
              and then Prev_V =
!               V * 10 + Uns_Params.Hexa_To_Unsigned_Ghost (S (P))
              and then
                (if P = Max then Prev_V = Res
!                else Uns_Params.Scan_Based_Number_Ghost
                   (Str  => Prev_S,
                    From => P + 1,
                    To   => Max,
                    Base => 10,
!                   Acc  => Prev_V) = Uns_Params.Wrap_Option (Res)),
            Post =>
              (for all I in P .. Max => S (I) in '0' .. '9')
!             and then Uns_Params.Scan_Based_Number_Ghost
                (Str  => S,
                 From => P,
                 To   => Max,
                 Base => 10,
!                Acc  => V) = Uns_Params.Wrap_Option (Res);
        --  Ghost lemma to prove that Scan_Based_Number_Ghost is preserved
        --  through an iteration of the loop.
  
--- 218,243 ----
              and then (for all I in P + 1 .. Max => Prev_S (I) = S (I))
              and then S (P) in '0' .. '9'
              and then V <= Uns'Last / 10
!             and then Uns'Last - U_Spec.Hexa_To_Unsigned_Ghost (S (P))
                >= 10 * V
              and then Prev_V =
!               V * 10 + U_Spec.Hexa_To_Unsigned_Ghost (S (P))
              and then
                (if P = Max then Prev_V = Res
!                else U_Spec.Scan_Based_Number_Ghost
                   (Str  => Prev_S,
                    From => P + 1,
                    To   => Max,
                    Base => 10,
!                   Acc  => Prev_V) = U_Spec.Wrap_Option (Res)),
            Post =>
              (for all I in P .. Max => S (I) in '0' .. '9')
!             and then U_Spec.Scan_Based_Number_Ghost
                (Str  => S,
                 From => P,
                 To   => Max,
                 Base => 10,
!                Acc  => V) = U_Spec.Wrap_Option (Res);
        --  Ghost lemma to prove that Scan_Based_Number_Ghost is preserved
        --  through an iteration of the loop.
  
*************** package body System.Image_U is
*** 287,303 ****
        is
           pragma Unreferenced (Res);
        begin
!          Uns_Params.Lemma_Scan_Based_Number_Ghost_Step
             (Str  => S,
              From => P,
              To   => Max,
              Base => 10,
              Acc  => V);
           if P < Max then
!             Uns_Params.Prove_Scan_Based_Number_Ghost_Eq
                (Prev_S, S, P + 1, Max, 10, Prev_V);
           else
!             Uns_Params.Lemma_Scan_Based_Number_Ghost_Base
                (Str  => S,
                 From => P + 1,
                 To   => Max,
--- 260,276 ----
        is
           pragma Unreferenced (Res);
        begin
!          U_Spec.Lemma_Scan_Based_Number_Ghost_Step
             (Str  => S,
              From => P,
              To   => Max,
              Base => 10,
              Acc  => V);
           if P < Max then
!             U_Spec.Prove_Scan_Based_Number_Ghost_Eq
                (Prev_S, S, P + 1, Max, 10, Prev_V);
           else
!             U_Spec.Lemma_Scan_Based_Number_Ghost_Base
                (Str  => S,
                 From => P + 1,
                 To   => Max,
*************** package body System.Image_U is
*** 314,321 ****
        --  No check is done since, as documented in the specification, the
        --  caller guarantees that S is long enough to hold the result.
  
-       Lemma_Unsigned_Width_Ghost;
- 
        --  First we compute the number of characters needed for representing
        --  the number.
        loop
--- 287,292 ----
*************** package body System.Image_U is
*** 359,365 ****
           Prove_Euclidian
             (Val  => Prev_Value,
              Quot => Value,
!             Rest => Uns_Params.Hexa_To_Unsigned_Ghost (S (P + J)));
  
           Prove_Scan_Iter
             (S, Prev_S, Value, Prev_Value, V, P + J, P + Nb_Digits);
--- 330,336 ----
           Prove_Euclidian
             (Val  => Prev_Value,
              Quot => Value,
!             Rest => U_Spec.Hexa_To_Unsigned_Ghost (S (P + J)));
  
           Prove_Scan_Iter
             (S, Prev_S, Value, Prev_Value, V, P + J, P + Nb_Digits);
*************** package body System.Image_U is
*** 368,385 ****
           pragma Loop_Invariant
             (for all K in S'First .. P => S (K) = S_Init (K));
           pragma Loop_Invariant
!            (Uns_Params.Only_Decimal_Ghost
                (S, From => P + J, To => P + Nb_Digits));
           pragma Loop_Invariant (Pow = Big_10 ** (Nb_Digits - J + 1));
           pragma Loop_Invariant (Big (Value) = Big (V) / Pow);
           pragma Loop_Invariant
!            (Uns_Params.Scan_Based_Number_Ghost
                (Str  => S,
                 From => P + J,
                 To   => P + Nb_Digits,
                 Base => 10,
                 Acc  => Value)
!               = Uns_Params.Wrap_Option (V));
        end loop;
        pragma Assert (Big (Value) = Big (V) / (Big_10 ** Nb_Digits));
        pragma Assert (Value = 0);
--- 339,356 ----
           pragma Loop_Invariant
             (for all K in S'First .. P => S (K) = S_Init (K));
           pragma Loop_Invariant
!            (U_Spec.Only_Decimal_Ghost
                (S, From => P + J, To => P + Nb_Digits));
           pragma Loop_Invariant (Pow = Big_10 ** (Nb_Digits - J + 1));
           pragma Loop_Invariant (Big (Value) = Big (V) / Pow);
           pragma Loop_Invariant
!            (U_Spec.Scan_Based_Number_Ghost
                (Str  => S,
                 From => P + J,
                 To   => P + Nb_Digits,
                 Base => 10,
                 Acc  => Value)
!               = U_Spec.Wrap_Option (V));
        end loop;
        pragma Assert (Big (Value) = Big (V) / (Big_10 ** Nb_Digits));
        pragma Assert (Value = 0);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imageu.ads gcc-14.1.0/gcc/ada/libgnat/s-imageu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imageu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imageu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 45,51 ****
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Val_Util;
  
  generic
  
--- 45,51 ----
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Value_U_Spec;
  
  generic
  
*************** generic
*** 53,66 ****
  
     --  Additional parameters for ghost subprograms used inside contracts
  
!    Unsigned_Width_Ghost : Natural;
! 
!    with package Uns_Params is new System.Val_Util.Uns_Params
!      (Uns => Uns, others => <>)
!    with Ghost;
  
  package System.Image_U is
!    use all type Uns_Params.Uns_Option;
  
     procedure Image_Unsigned
       (V : Uns;
--- 53,64 ----
  
     --  Additional parameters for ghost subprograms used inside contracts
  
!    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
  
  package System.Image_U is
!    use all type U_Spec.Uns_Option;
! 
!    Unsigned_Width_Ghost : constant Natural := U_Spec.Max_Log10 + 2 with Ghost;
  
     procedure Image_Unsigned
       (V : Uns;
*************** package System.Image_U is
*** 71,77 ****
         and then S'Last < Integer'Last
         and then S'Last >= Unsigned_Width_Ghost,
       Post => P in S'Range
!        and then Uns_Params.Is_Value_Unsigned_Ghost (S (1 .. P), V);
     pragma Inline (Image_Unsigned);
     --  Computes Uns'Image (V) and stores the result in S (1 .. P) setting
     --  the resulting value of P. The caller guarantees that S is long enough to
--- 69,75 ----
         and then S'Last < Integer'Last
         and then S'Last >= Unsigned_Width_Ghost,
       Post => P in S'Range
!        and then U_Spec.Is_Value_Unsigned_Ghost (S (1 .. P), V);
     pragma Inline (Image_Unsigned);
     --  Computes Uns'Image (V) and stores the result in S (1 .. P) setting
     --  the resulting value of P. The caller guarantees that S is long enough to
*************** package System.Image_U is
*** 89,98 ****
         and then P <= S'Last - Unsigned_Width_Ghost + 1,
       Post => S (S'First .. P'Old) = S'Old (S'First .. P'Old)
         and then P in P'Old + 1 .. S'Last
!        and then Uns_Params.Only_Decimal_Ghost (S, From => P'Old + 1, To => P)
!        and then Uns_Params.Scan_Based_Number_Ghost
           (S, From => P'Old + 1, To => P)
!          = Uns_Params.Wrap_Option (V);
     --  Stores the image of V in S starting at S (P + 1), P is updated to point
     --  to the last character stored. The value stored is identical to the value
     --  of Uns'Image (V) except that no leading space is stored. The caller
--- 87,96 ----
         and then P <= S'Last - Unsigned_Width_Ghost + 1,
       Post => S (S'First .. P'Old) = S'Old (S'First .. P'Old)
         and then P in P'Old + 1 .. S'Last
!        and then U_Spec.Only_Decimal_Ghost (S, From => P'Old + 1, To => P)
!        and then U_Spec.Scan_Based_Number_Ghost
           (S, From => P'Old + 1, To => P)
!          = U_Spec.Wrap_Option (V);
     --  Stores the image of V in S starting at S (P + 1), P is updated to point
     --  to the last character stored. The value stored is identical to the value
     --  of Uns'Image (V) except that no leading space is stored. The caller
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imagew.adb gcc-14.1.0/gcc/ada/libgnat/s-imagew.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imagew.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imagew.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Image_W is
*** 86,151 ****
        S : out String;
        P : in out Natural)
     is
!       Start : constant Natural := P;
!       F, T  : Natural;
! 
!       procedure Set_Digits (T : Uns);
!       --  Set digits of absolute value of T
! 
!       ----------------
!       -- Set_Digits --
!       ----------------
! 
!       procedure Set_Digits (T : Uns) is
!       begin
!          if T >= 10 then
!             Set_Digits (T / 10);
!             pragma Assert (P >= (S'First - 1) and P < S'Last and
!                            P < Natural'Last);
!             --  No check is done since, as documented in the specification,
!             --  the caller guarantees that S is long enough to hold the result.
!             P := P + 1;
!             S (P) := Character'Val (T mod 10 + Character'Pos ('0'));
! 
!          else
!             pragma Assert (P >= (S'First - 1) and P < S'Last and
!                            P < Natural'Last);
!             --  No check is done since, as documented in the specification,
!             --  the caller guarantees that S is long enough to hold the result.
!             P := P + 1;
!             S (P) := Character'Val (T + Character'Pos ('0'));
!          end if;
!       end Set_Digits;
! 
!    --  Start of processing for Set_Image_Width_Unsigned
  
     begin
-       Set_Digits (V);
  
!       --  Add leading spaces if required by width parameter
  
!       if P - Start < W then
!          F := P;
!          P := P + (W - (P - Start));
!          T := P;
  
!          while F > Start loop
!             pragma Assert (T >= S'First and T <= S'Last and
!                            F >= S'First and F <= S'Last);
!             --  No check is done since, as documented in the specification,
!             --  the caller guarantees that S is long enough to hold the result.
!             S (T) := S (F);
!             T := T - 1;
!             F := F - 1;
!          end loop;
  
!          for J in Start + 1 .. T loop
!             pragma Assert (J >= S'First and J <= S'Last);
!             --  No check is done since, as documented in the specification,
!             --  the caller guarantees that S is long enough to hold the result.
!             S (J) := ' ';
!          end loop;
!       end if;
  
     end Set_Image_Width_Unsigned;
  
--- 86,121 ----
        S : out String;
        P : in out Natural)
     is
!       Start : constant Natural := P + 1;
!       Nb_Digits : Natural := 1;
!       T : Uns := V;
  
     begin
  
!       --  First we compute the number of characters needed for representing
!       --  the number.
!       loop
!          T := T / 10;
!          exit when T = 0;
!          Nb_Digits := Nb_Digits + 1;
!       end loop;
  
!       P := Start;
  
!       --  Pad S with spaces up to W reduced by Nb_Digits
!       while P < Start + W - Nb_Digits loop
!          S (P) := ' ';
!          P := P + 1;
!       end loop;
  
!       --  We now populate digits from the end of the value to the beginning
!       T := V;
!       for J in reverse  P .. P + Nb_Digits - 1 loop
!          S (J) := Character'Val (T mod 10 + Character'Pos ('0'));
!          T := T / 10;
!       end loop;
! 
!       P := P + Nb_Digits - 1;
  
     end Set_Image_Width_Unsigned;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imagew.ads gcc-14.1.0/gcc/ada/libgnat/s-imagew.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imagew.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imagew.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imde128.ads gcc-14.1.0/gcc/ada/libgnat/s-imde128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imde128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imde128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imde32.ads gcc-14.1.0/gcc/ada/libgnat/s-imde32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imde32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imde32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imde64.ads gcc-14.1.0/gcc/ada/libgnat/s-imde64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imde64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imde64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imen16.ads gcc-14.1.0/gcc/ada/libgnat/s-imen16.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imen16.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imen16.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imen32.ads gcc-14.1.0/gcc/ada/libgnat/s-imen32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imen32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imen32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imenu8.ads gcc-14.1.0/gcc/ada/libgnat/s-imenu8.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imenu8.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imenu8.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imfi128.ads gcc-14.1.0/gcc/ada/libgnat/s-imfi128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imfi128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imfi128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imfi32.ads gcc-14.1.0/gcc/ada/libgnat/s-imfi32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imfi32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imfi32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imfi64.ads gcc-14.1.0/gcc/ada/libgnat/s-imfi64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imfi64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imfi64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgbiu.adb gcc-14.1.0/gcc/ada/libgnat/s-imgbiu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgbiu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgbiu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgbiu.ads gcc-14.1.0/gcc/ada/libgnat/s-imgbiu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgbiu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgbiu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgboo.adb gcc-14.1.0/gcc/ada/libgnat/s-imgboo.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgboo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgboo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Ghost
*** 37,44 ****
                           Loop_Invariant => Ignore,
                           Assert         => Ignore);
  
- with System.Val_Util;
- 
  package body System.Img_Bool
    with SPARK_Mode
  is
--- 37,42 ----
*************** is
*** 58,69 ****
           S (1 .. 4) := "TRUE";
           P := 4;
           pragma Assert
!            (System.Val_Util.First_Non_Space_Ghost (S, S'First, S'Last) = 1);
        else
           S (1 .. 5) := "FALSE";
           P := 5;
           pragma Assert
!            (System.Val_Util.First_Non_Space_Ghost (S, S'First, S'Last) = 1);
        end if;
     end Image_Boolean;
  
--- 56,67 ----
           S (1 .. 4) := "TRUE";
           P := 4;
           pragma Assert
!            (System.Val_Spec.First_Non_Space_Ghost (S, S'First, S'Last) = 1);
        else
           S (1 .. 5) := "FALSE";
           P := 5;
           pragma Assert
!            (System.Val_Spec.First_Non_Space_Ghost (S, S'First, S'Last) = 1);
        end if;
     end Image_Boolean;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgboo.ads gcc-14.1.0/gcc/ada/libgnat/s-imgboo.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgboo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgboo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 42,48 ****
                           Contract_Cases => Ignore,
                           Ghost          => Ignore);
  
! with System.Val_Bool;
  
  package System.Img_Bool
    with SPARK_Mode, Preelaborate
--- 42,48 ----
                           Contract_Cases => Ignore,
                           Ghost          => Ignore);
  
! with System.Val_Spec;
  
  package System.Img_Bool
    with SPARK_Mode, Preelaborate
*************** is
*** 56,63 ****
       Pre  => S'First = 1
         and then (if V then S'Length >= 4 else S'Length >= 5),
       Post => (if V then P = 4 else P = 5)
!        and then System.Val_Bool.Is_Boolean_Image_Ghost (S (1 .. P))
!        and then System.Val_Bool.Value_Boolean (S (1 .. P)) = V;
     --  Computes Boolean'Image (V) and stores the result in S (1 .. P)
     --  setting the resulting value of P. The caller guarantees that S
     --  is long enough to hold the result, and that S'First is 1.
--- 56,62 ----
       Pre  => S'First = 1
         and then (if V then S'Length >= 4 else S'Length >= 5),
       Post => (if V then P = 4 else P = 5)
!        and then System.Val_Spec.Is_Boolean_Image_Ghost (S (1 .. P), V);
     --  Computes Boolean'Image (V) and stores the result in S (1 .. P)
     --  setting the resulting value of P. The caller guarantees that S
     --  is long enough to hold the result, and that S'First is 1.
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgcha.adb gcc-14.1.0/gcc/ada/libgnat/s-imgcha.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgcha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgcha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgcha.ads gcc-14.1.0/gcc/ada/libgnat/s-imgcha.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgcha.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgcha.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgflt.ads gcc-14.1.0/gcc/ada/libgnat/s-imgflt.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgflt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgflt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgint.adb gcc-14.1.0/gcc/ada/libgnat/s-imgint.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgint.ads gcc-14.1.0/gcc/ada/libgnat/s-imgint.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,54 ****
  
  with System.Image_I;
  with System.Unsigned_Types;
! with System.Val_Int;
! with System.Wid_Uns;
  
  package System.Img_Int
    with SPARK_Mode
--- 47,54 ----
  
  with System.Image_I;
  with System.Unsigned_Types;
! with System.Vs_Int;
! with System.Vs_Uns;
  
  package System.Img_Int
    with SPARK_Mode
*************** is
*** 56,66 ****
     subtype Unsigned is Unsigned_Types.Unsigned;
  
     package Impl is new Image_I
!      (Int                  => Integer,
!       Uns                  => Unsigned,
!       Unsigned_Width_Ghost =>
!          Wid_Uns.Width_Unsigned (0, Unsigned'Last),
!       Int_Params           => System.Val_Int.Impl.Spec.Int_Params);
  
     procedure Image_Integer
       (V : Integer;
--- 56,65 ----
     subtype Unsigned is Unsigned_Types.Unsigned;
  
     package Impl is new Image_I
!      (Int    => Integer,
!       Uns    => Unsigned,
!       U_Spec => System.Vs_Uns.Spec,
!       I_Spec => System.Vs_Int.Spec);
  
     procedure Image_Integer
       (V : Integer;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imglfl.ads gcc-14.1.0/gcc/ada/libgnat/s-imglfl.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imglfl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imglfl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgllb.adb gcc-14.1.0/gcc/ada/libgnat/s-imgllb.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgllb.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgllb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgllb.ads gcc-14.1.0/gcc/ada/libgnat/s-imgllb.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgllb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgllb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgllf.ads gcc-14.1.0/gcc/ada/libgnat/s-imgllf.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgllf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgllf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imglli.adb gcc-14.1.0/gcc/ada/libgnat/s-imglli.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imglli.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imglli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imglli.ads gcc-14.1.0/gcc/ada/libgnat/s-imglli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imglli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imglli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,54 ****
  
  with System.Image_I;
  with System.Unsigned_Types;
! with System.Val_LLI;
! with System.Wid_LLU;
  
  package System.Img_LLI
    with SPARK_Mode
--- 47,54 ----
  
  with System.Image_I;
  with System.Unsigned_Types;
! with System.Vs_LLI;
! with System.Vs_LLU;
  
  package System.Img_LLI
    with SPARK_Mode
*************** is
*** 56,67 ****
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
     package Impl is new Image_I
!      (Int                  => Long_Long_Integer,
!       Uns                  => Long_Long_Unsigned,
!       Unsigned_Width_Ghost =>
!          Wid_LLU.Width_Long_Long_Unsigned
!            (0, Long_Long_Unsigned'Last),
!       Int_Params           => System.Val_LLI.Impl.Spec.Int_Params);
  
     procedure Image_Long_Long_Integer
       (V : Long_Long_Integer;
--- 56,65 ----
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
     package Impl is new Image_I
!      (Int    => Long_Long_Integer,
!       Uns    => Long_Long_Unsigned,
!       U_Spec => System.Vs_LLU.Spec,
!       I_Spec => System.Vs_LLI.Spec);
  
     procedure Image_Long_Long_Integer
       (V : Long_Long_Integer;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imglllb.ads gcc-14.1.0/gcc/ada/libgnat/s-imglllb.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imglllb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imglllb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgllli.ads gcc-14.1.0/gcc/ada/libgnat/s-imgllli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgllli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgllli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,54 ****
  
  with System.Image_I;
  with System.Unsigned_Types;
! with System.Val_LLLI;
! with System.Wid_LLLU;
  
  package System.Img_LLLI
    with SPARK_Mode
--- 47,54 ----
  
  with System.Image_I;
  with System.Unsigned_Types;
! with System.Vs_LLLI;
! with System.Vs_LLLU;
  
  package System.Img_LLLI
    with SPARK_Mode
*************** is
*** 56,67 ****
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
     package Impl is new Image_I
!      (Int                  => Long_Long_Long_Integer,
!       Uns                  => Long_Long_Long_Unsigned,
!       Unsigned_Width_Ghost =>
!          Wid_LLLU.Width_Long_Long_Long_Unsigned
!            (0, Long_Long_Long_Unsigned'Last),
!       Int_Params           => System.Val_LLLI.Impl.Spec.Int_Params);
  
     procedure Image_Long_Long_Long_Integer
       (V : Long_Long_Long_Integer;
--- 56,65 ----
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
     package Impl is new Image_I
!      (Int    => Long_Long_Long_Integer,
!       Uns    => Long_Long_Long_Unsigned,
!       U_Spec => System.Vs_LLLU.Spec,
!       I_Spec => System.Vs_LLLI.Spec);
  
     procedure Image_Long_Long_Long_Integer
       (V : Long_Long_Long_Integer;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imglllu.ads gcc-14.1.0/gcc/ada/libgnat/s-imglllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imglllu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imglllu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,54 ****
  
  with System.Image_U;
  with System.Unsigned_Types;
! with System.Val_LLLU;
! with System.Wid_LLLU;
  
  package System.Img_LLLU
    with SPARK_Mode
--- 47,53 ----
  
  with System.Image_U;
  with System.Unsigned_Types;
! with System.Vs_LLLU;
  
  package System.Img_LLLU
    with SPARK_Mode
*************** is
*** 56,66 ****
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
     package Impl is new Image_U
!      (Uns                  => Long_Long_Long_Unsigned,
!       Unsigned_Width_Ghost =>
!          Wid_LLLU.Width_Long_Long_Long_Unsigned
!         (0, Long_Long_Long_Unsigned'Last),
!       Uns_Params           => System.Val_LLLU.Impl.Spec.Uns_Params);
  
     procedure Image_Long_Long_Long_Unsigned
       (V : Long_Long_Long_Unsigned;
--- 55,62 ----
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
     package Impl is new Image_U
!      (Uns    => Long_Long_Long_Unsigned,
!       U_Spec => System.Vs_LLLU.Spec);
  
     procedure Image_Long_Long_Long_Unsigned
       (V : Long_Long_Long_Unsigned;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imglllw.ads gcc-14.1.0/gcc/ada/libgnat/s-imglllw.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imglllw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imglllw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgllu.adb gcc-14.1.0/gcc/ada/libgnat/s-imgllu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgllu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgllu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgllu.ads gcc-14.1.0/gcc/ada/libgnat/s-imgllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgllu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgllu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,54 ****
  
  with System.Image_U;
  with System.Unsigned_Types;
! with System.Val_LLU;
! with System.Wid_LLU;
  
  package System.Img_LLU
    with SPARK_Mode
--- 47,53 ----
  
  with System.Image_U;
  with System.Unsigned_Types;
! with System.Vs_LLU;
  
  package System.Img_LLU
    with SPARK_Mode
*************** is
*** 56,65 ****
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
     package Impl is new Image_U
!      (Uns                  => Long_Long_Unsigned,
!       Unsigned_Width_Ghost =>
!          Wid_LLU.Width_Long_Long_Unsigned (0, Long_Long_Unsigned'Last),
!       Uns_Params           => System.Val_LLU.Impl.Spec.Uns_Params);
  
     procedure Image_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
--- 55,62 ----
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
     package Impl is new Image_U
!      (Uns    => Long_Long_Unsigned,
!       U_Spec => System.Vs_LLU.Spec);
  
     procedure Image_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgllw.adb gcc-14.1.0/gcc/ada/libgnat/s-imgllw.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgllw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgllw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgllw.ads gcc-14.1.0/gcc/ada/libgnat/s-imgllw.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgllw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgllw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgrea.adb gcc-14.1.0/gcc/ada/libgnat/s-imgrea.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgrea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgrea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgrea.ads gcc-14.1.0/gcc/ada/libgnat/s-imgrea.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgrea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgrea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imguns.adb gcc-14.1.0/gcc/ada/libgnat/s-imguns.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imguns.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imguns.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imguns.ads gcc-14.1.0/gcc/ada/libgnat/s-imguns.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imguns.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imguns.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,54 ****
  
  with System.Image_U;
  with System.Unsigned_Types;
! with System.Val_Uns;
! with System.Wid_Uns;
  
  package System.Img_Uns
    with SPARK_Mode
--- 47,53 ----
  
  with System.Image_U;
  with System.Unsigned_Types;
! with System.Vs_Uns;
  
  package System.Img_Uns
    with SPARK_Mode
*************** is
*** 56,65 ****
     subtype Unsigned is Unsigned_Types.Unsigned;
  
     package Impl is new Image_U
!      (Uns                  => Unsigned,
!       Unsigned_Width_Ghost =>
!          Wid_Uns.Width_Unsigned (0, Unsigned'Last),
!       Uns_Params           => System.Val_Uns.Impl.Spec.Uns_Params);
  
     procedure Image_Unsigned
       (V : Unsigned;
--- 55,62 ----
     subtype Unsigned is Unsigned_Types.Unsigned;
  
     package Impl is new Image_U
!      (Uns    => Unsigned,
!       U_Spec => System.Vs_Uns.Spec);
  
     procedure Image_Unsigned
       (V : Unsigned;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imguti.adb gcc-14.1.0/gcc/ada/libgnat/s-imguti.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imguti.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imguti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Img_Util is
*** 37,42 ****
--- 37,44 ----
     -- Set_Decimal_Digits --
     ------------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Unassigned_OUT_Parameters",
+                     "the OUT parameter is assigned by component");
     procedure Set_Decimal_Digits
       (Digs  : in out String;
        NDigs : Natural;
*************** package body System.Img_Util is
*** 47,52 ****
--- 49,56 ----
        Aft   : Natural;
        Exp   : Natural)
     is
+       pragma Annotate (Gnatcheck, Exempt_Off, "Unassigned_OUT_Parameters");
+ 
        pragma Assert (NDigs >= 1);
        pragma Assert (Digs'First = 1);
        pragma Assert (Digs'First < Digs'Last);
*************** package body System.Img_Util is
*** 119,124 ****
--- 123,131 ----
           pragma Assert (Digs'First < Digs'Last);
  
        begin
+          pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
+ 
           --  Nothing to do if rounding past the last digit we have
  
           if N >= LD then
*************** package body System.Img_Util is
*** 178,183 ****
--- 185,192 ----
                 Digits_Before_Point := Digits_Before_Point + 1;
              end if;
           end if;
+ 
+          pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
        end Round;
  
        ---------
*************** package body System.Img_Util is
*** 226,232 ****
        begin
           pragma Assert (S >= Digs'First and E <= Digs'Last);
           --  S and E should be in the Digs array range
-          --  TBC: Analysis should be completed
           for J in S .. E loop
              Set (Digs (J));
           end loop;
--- 235,240 ----
*************** package body System.Img_Util is
*** 246,251 ****
--- 254,262 ----
     --  Start of processing for Set_Decimal_Digits
  
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                     "early returns for performance");
+ 
        --  Case of exponent given
  
        if Exp > 0 then
*************** package body System.Img_Util is
*** 398,409 ****
--- 409,424 ----
              end if;
           end if;
        end if;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Set_Decimal_Digits;
  
     --------------------------------
     -- Set_Floating_Invalid_Value --
     --------------------------------
  
+    pragma Annotate (Gnatcheck, Exempt_On, "Unassigned_OUT_Parameters",
+                     "the OUT parameter is assigned by component");
     procedure Set_Floating_Invalid_Value
       (V    : Floating_Invalid_Value;
        S    : out String;
*************** package body System.Img_Util is
*** 412,417 ****
--- 427,434 ----
        Aft  : Natural;
        Exp  : Natural)
     is
+       pragma Annotate (Gnatcheck, Exempt_Off, "Unassigned_OUT_Parameters");
+ 
        procedure Set (C : Character);
        --  Sets character C in output buffer
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imguti.ads gcc-14.1.0/gcc/ada/libgnat/s-imguti.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imguti.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imguti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgwch.adb gcc-14.1.0/gcc/ada/libgnat/s-imgwch.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgwch.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgwch.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgwch.ads gcc-14.1.0/gcc/ada/libgnat/s-imgwch.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgwch.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgwch.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgwiu.adb gcc-14.1.0/gcc/ada/libgnat/s-imgwiu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-imgwiu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgwiu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-imgwiu.ads gcc-14.1.0/gcc/ada/libgnat/s-imgwiu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-imgwiu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-imgwiu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-io.adb gcc-14.1.0/gcc/ada/libgnat/s-io.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-io.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-io.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-io.ads gcc-14.1.0/gcc/ada/libgnat/s-io.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-io.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-io.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-llflex.ads gcc-14.1.0/gcc/ada/libgnat/s-llflex.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-llflex.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-llflex.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-maccod.ads gcc-14.1.0/gcc/ada/libgnat/s-maccod.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-maccod.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-maccod.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mantis.adb gcc-14.1.0/gcc/ada/libgnat/s-mantis.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-mantis.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mantis.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mantis.ads gcc-14.1.0/gcc/ada/libgnat/s-mantis.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-mantis.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mantis.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mastop.adb gcc-14.1.0/gcc/ada/libgnat/s-mastop.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-mastop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mastop.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                             (Dummy version)                              --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                             (Dummy version)                              --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mastop.ads gcc-14.1.0/gcc/ada/libgnat/s-mastop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-mastop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mastop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-memcop.ads gcc-14.1.0/gcc/ada/libgnat/s-memcop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-memcop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-memcop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-memory.adb gcc-14.1.0/gcc/ada/libgnat/s-memory.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-memory.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-memory.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-memory.ads gcc-14.1.0/gcc/ada/libgnat/s-memory.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-memory.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-memory.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 43,49 ****
  package System.Memory is
     pragma Elaborate_Body;
  
!    type size_t is mod 2 ** Standard'Address_Size;
     --  Note: the reason we redefine this here instead of using the
     --  definition in Interfaces.C is that we do not want to drag in
     --  all of Interfaces.C just because System.Memory is used.
--- 43,49 ----
  package System.Memory is
     pragma Elaborate_Body;
  
!    type size_t is mod Memory_Size;
     --  Note: the reason we redefine this here instead of using the
     --  definition in Interfaces.C is that we do not want to drag in
     --  all of Interfaces.C just because System.Memory is used.
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mmap.adb gcc-14.1.0/gcc/ada/libgnat/s-mmap.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-mmap.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mmap.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
*************** package body System.Mmap is
*** 75,81 ****
        --  Whether this region is actually memory mapped
  
        Mutable       : Boolean;
!       --  If the file is opened for reading, wheter this region is writable
  
        Buffer        : System.Strings.String_Access;
        --  When this region is not actually memory mapped, contains the
--- 75,81 ----
        --  Whether this region is actually memory mapped
  
        Mutable       : Boolean;
!       --  If the file is opened for reading, whether this region is writable
  
        Buffer        : System.Strings.String_Access;
        --  When this region is not actually memory mapped, contains the
*************** package body System.Mmap is
*** 284,292 ****
        if (File.File.Write or else Region.Mutable = Mutable)
          and then
          Req_Offset >= Region.System_Offset
!         and then
!             (Req_Offset + Req_Length
!              <= Region.System_Offset + Region.System_Size)
        then
           Region.User_Offset := Req_Offset;
           Compute_Data (Region);
--- 284,291 ----
        if (File.File.Write or else Region.Mutable = Mutable)
          and then
          Req_Offset >= Region.System_Offset
!         and then Req_Offset + Req_Length <=
!                  Region.System_Offset + Region.System_Size
        then
           Region.User_Offset := Req_Offset;
           Compute_Data (Region);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mmap.ads gcc-14.1.0/gcc/ada/libgnat/s-mmap.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-mmap.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mmap.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mmauni__long.ads gcc-14.1.0/gcc/ada/libgnat/s-mmauni__long.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-mmauni__long.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mmauni__long.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mmosin__mingw.adb gcc-14.1.0/gcc/ada/libgnat/s-mmosin__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-mmosin__mingw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mmosin__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mmosin__mingw.ads gcc-14.1.0/gcc/ada/libgnat/s-mmosin__mingw.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-mmosin__mingw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mmosin__mingw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mmosin__unix.adb gcc-14.1.0/gcc/ada/libgnat/s-mmosin__unix.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-mmosin__unix.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mmosin__unix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-mmosin__unix.ads gcc-14.1.0/gcc/ada/libgnat/s-mmosin__unix.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-mmosin__unix.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-mmosin__unix.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2023, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2024, AdaCore                     --
  --                                                                          --
  -- This library is free software;  you can redistribute it and/or modify it --
  -- under terms of the  GNU General Public License  as published by the Free --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-multip.adb gcc-14.1.0/gcc/ada/libgnat/s-multip.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-multip.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-multip.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 2010-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 2010-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Multiprocessors is
*** 36,41 ****
--- 36,44 ----
  
     function Number_Of_CPUs return CPU is
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "early returns for performance");
+ 
        if CPU'Last = 1 then
           return 1;
        else
*************** package body System.Multiprocessors is
*** 46,51 ****
--- 49,56 ----
              return CPU (Gnat_Number_Of_CPUs);
           end;
        end if;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Number_Of_CPUs;
  
  end System.Multiprocessors;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-objrea.adb gcc-14.1.0/gcc/ada/libgnat/s-objrea.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-objrea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-objrea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-objrea.ads gcc-14.1.0/gcc/ada/libgnat/s-objrea.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-objrea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-objrea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-optide.adb gcc-14.1.0/gcc/ada/libgnat/s-optide.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-optide.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-optide.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-os_lib.adb gcc-14.1.0/gcc/ada/libgnat/s-os_lib.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-os_lib.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-os_lib.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-os_lib.ads gcc-14.1.0/gcc/ada/libgnat/s-os_lib.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-os_lib.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-os_lib.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim.ads gcc-14.1.0/gcc/ada/libgnat/s-osprim.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__darwin.adb gcc-14.1.0/gcc/ada/libgnat/s-osprim__darwin.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__darwin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__darwin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__lynxos.ads gcc-14.1.0/gcc/ada/libgnat/s-osprim__lynxos.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__lynxos.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__lynxos.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__mingw.adb gcc-14.1.0/gcc/ada/libgnat/s-osprim__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__mingw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__posix.adb gcc-14.1.0/gcc/ada/libgnat/s-osprim__posix.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__posix.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__posix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__posix2008.adb gcc-14.1.0/gcc/ada/libgnat/s-osprim__posix2008.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__posix2008.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__posix2008.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__rtems.adb gcc-14.1.0/gcc/ada/libgnat/s-osprim__rtems.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__rtems.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__rtems.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__solaris.adb gcc-14.1.0/gcc/ada/libgnat/s-osprim__solaris.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__solaris.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__solaris.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__unix.adb gcc-14.1.0/gcc/ada/libgnat/s-osprim__unix.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__unix.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__unix.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-osprim__x32.adb gcc-14.1.0/gcc/ada/libgnat/s-osprim__x32.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-osprim__x32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-osprim__x32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2013-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2013-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack03.adb gcc-14.1.0/gcc/ada/libgnat/s-pack03.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack03.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack03.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_03 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_03;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_03;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack03.ads gcc-14.1.0/gcc/ada/libgnat/s-pack03.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack03.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack03.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack05.adb gcc-14.1.0/gcc/ada/libgnat/s-pack05.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack05.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack05.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_05 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_05;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_05;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack05.ads gcc-14.1.0/gcc/ada/libgnat/s-pack05.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack05.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack05.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack06.adb gcc-14.1.0/gcc/ada/libgnat/s-pack06.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack06.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack06.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_06 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_06;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_06;
  
     -------------
*************** package body System.Pack_06 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_06;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_06;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack06.ads gcc-14.1.0/gcc/ada/libgnat/s-pack06.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack06.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack06.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack07.adb gcc-14.1.0/gcc/ada/libgnat/s-pack07.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack07.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack07.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_07 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_07;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_07;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack07.ads gcc-14.1.0/gcc/ada/libgnat/s-pack07.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack07.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack07.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack09.adb gcc-14.1.0/gcc/ada/libgnat/s-pack09.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack09.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack09.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_09 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_09;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_09;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack09.ads gcc-14.1.0/gcc/ada/libgnat/s-pack09.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack09.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack09.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack10.adb gcc-14.1.0/gcc/ada/libgnat/s-pack10.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack10.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack10.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_10 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_10;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_10;
  
     -------------
*************** package body System.Pack_10 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_10;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_10;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack10.ads gcc-14.1.0/gcc/ada/libgnat/s-pack10.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack10.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack10.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack100.adb gcc-14.1.0/gcc/ada/libgnat/s-pack100.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack100.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack100.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_100 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_100;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_100;
  
     -------------
*************** package body System.Pack_100 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_100;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_100;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack100.ads gcc-14.1.0/gcc/ada/libgnat/s-pack100.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack100.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack100.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack101.adb gcc-14.1.0/gcc/ada/libgnat/s-pack101.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack101.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack101.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_101 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_101;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_101;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack101.ads gcc-14.1.0/gcc/ada/libgnat/s-pack101.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack101.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack101.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack102.adb gcc-14.1.0/gcc/ada/libgnat/s-pack102.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack102.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack102.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_102 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_102;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_102;
  
     -------------
*************** package body System.Pack_102 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_102;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_102;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack102.ads gcc-14.1.0/gcc/ada/libgnat/s-pack102.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack102.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack102.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack103.adb gcc-14.1.0/gcc/ada/libgnat/s-pack103.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack103.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack103.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_103 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_103;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_103;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack103.ads gcc-14.1.0/gcc/ada/libgnat/s-pack103.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack103.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack103.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack104.adb gcc-14.1.0/gcc/ada/libgnat/s-pack104.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack104.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack104.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_104 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_104;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_104;
  
     -------------
*************** package body System.Pack_104 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_104;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_104;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack104.ads gcc-14.1.0/gcc/ada/libgnat/s-pack104.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack104.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack104.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack105.adb gcc-14.1.0/gcc/ada/libgnat/s-pack105.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack105.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack105.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_105 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_105;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_105;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack105.ads gcc-14.1.0/gcc/ada/libgnat/s-pack105.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack105.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack105.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack106.adb gcc-14.1.0/gcc/ada/libgnat/s-pack106.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack106.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack106.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_106 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_106;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_106;
  
     -------------
*************** package body System.Pack_106 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_106;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_106;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack106.ads gcc-14.1.0/gcc/ada/libgnat/s-pack106.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack106.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack106.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack107.adb gcc-14.1.0/gcc/ada/libgnat/s-pack107.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack107.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack107.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_107 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_107;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_107;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack107.ads gcc-14.1.0/gcc/ada/libgnat/s-pack107.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack107.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack107.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack108.adb gcc-14.1.0/gcc/ada/libgnat/s-pack108.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack108.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack108.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_108 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_108;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_108;
  
     -------------
*************** package body System.Pack_108 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_108;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_108;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack108.ads gcc-14.1.0/gcc/ada/libgnat/s-pack108.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack108.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack108.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack109.adb gcc-14.1.0/gcc/ada/libgnat/s-pack109.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack109.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack109.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_109 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_109;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_109;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack109.ads gcc-14.1.0/gcc/ada/libgnat/s-pack109.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack109.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack109.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack11.adb gcc-14.1.0/gcc/ada/libgnat/s-pack11.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack11.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack11.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_11 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_11;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_11;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack11.ads gcc-14.1.0/gcc/ada/libgnat/s-pack11.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack11.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack11.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack110.adb gcc-14.1.0/gcc/ada/libgnat/s-pack110.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack110.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack110.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_110 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_110;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_110;
  
     -------------
*************** package body System.Pack_110 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_110;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_110;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack110.ads gcc-14.1.0/gcc/ada/libgnat/s-pack110.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack110.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack110.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack111.adb gcc-14.1.0/gcc/ada/libgnat/s-pack111.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack111.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack111.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_111 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_111;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_111;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack111.ads gcc-14.1.0/gcc/ada/libgnat/s-pack111.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack111.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack111.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack112.adb gcc-14.1.0/gcc/ada/libgnat/s-pack112.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack112.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack112.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_112 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_112;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_112;
  
     -------------
*************** package body System.Pack_112 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_112;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_112;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack112.ads gcc-14.1.0/gcc/ada/libgnat/s-pack112.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack112.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack112.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack113.adb gcc-14.1.0/gcc/ada/libgnat/s-pack113.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack113.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack113.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_113 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_113;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_113;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack113.ads gcc-14.1.0/gcc/ada/libgnat/s-pack113.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack113.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack113.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack114.adb gcc-14.1.0/gcc/ada/libgnat/s-pack114.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack114.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack114.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_114 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_114;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_114;
  
     -------------
*************** package body System.Pack_114 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_114;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_114;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack114.ads gcc-14.1.0/gcc/ada/libgnat/s-pack114.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack114.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack114.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack115.adb gcc-14.1.0/gcc/ada/libgnat/s-pack115.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack115.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack115.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_115 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_115;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_115;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack115.ads gcc-14.1.0/gcc/ada/libgnat/s-pack115.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack115.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack115.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack116.adb gcc-14.1.0/gcc/ada/libgnat/s-pack116.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack116.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack116.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_116 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_116;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_116;
  
     -------------
*************** package body System.Pack_116 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_116;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_116;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack116.ads gcc-14.1.0/gcc/ada/libgnat/s-pack116.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack116.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack116.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack117.adb gcc-14.1.0/gcc/ada/libgnat/s-pack117.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack117.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack117.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_117 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_117;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_117;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack117.ads gcc-14.1.0/gcc/ada/libgnat/s-pack117.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack117.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack117.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack118.adb gcc-14.1.0/gcc/ada/libgnat/s-pack118.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack118.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack118.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_118 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_118;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_118;
  
     -------------
*************** package body System.Pack_118 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_118;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_118;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack118.ads gcc-14.1.0/gcc/ada/libgnat/s-pack118.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack118.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack118.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack119.adb gcc-14.1.0/gcc/ada/libgnat/s-pack119.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack119.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack119.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_119 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_119;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_119;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack119.ads gcc-14.1.0/gcc/ada/libgnat/s-pack119.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack119.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack119.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack12.adb gcc-14.1.0/gcc/ada/libgnat/s-pack12.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack12.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack12.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_12 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_12;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_12;
  
     -------------
*************** package body System.Pack_12 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_12;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_12;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack12.ads gcc-14.1.0/gcc/ada/libgnat/s-pack12.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack12.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack12.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack120.adb gcc-14.1.0/gcc/ada/libgnat/s-pack120.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack120.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack120.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_120 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_120;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_120;
  
     -------------
*************** package body System.Pack_120 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_120;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_120;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack120.ads gcc-14.1.0/gcc/ada/libgnat/s-pack120.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack120.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack120.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack121.adb gcc-14.1.0/gcc/ada/libgnat/s-pack121.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack121.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack121.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_121 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_121;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_121;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack121.ads gcc-14.1.0/gcc/ada/libgnat/s-pack121.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack121.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack121.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack122.adb gcc-14.1.0/gcc/ada/libgnat/s-pack122.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack122.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack122.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_122 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_122;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_122;
  
     -------------
*************** package body System.Pack_122 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_122;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_122;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack122.ads gcc-14.1.0/gcc/ada/libgnat/s-pack122.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack122.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack122.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack123.adb gcc-14.1.0/gcc/ada/libgnat/s-pack123.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack123.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack123.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_123 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_123;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_123;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack123.ads gcc-14.1.0/gcc/ada/libgnat/s-pack123.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack123.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack123.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack124.adb gcc-14.1.0/gcc/ada/libgnat/s-pack124.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack124.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack124.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_124 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_124;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_124;
  
     -------------
*************** package body System.Pack_124 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_124;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_124;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack124.ads gcc-14.1.0/gcc/ada/libgnat/s-pack124.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack124.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack124.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack125.adb gcc-14.1.0/gcc/ada/libgnat/s-pack125.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack125.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack125.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_125 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_125;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_125;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack125.ads gcc-14.1.0/gcc/ada/libgnat/s-pack125.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack125.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack125.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack126.adb gcc-14.1.0/gcc/ada/libgnat/s-pack126.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack126.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack126.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_126 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_126;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_126;
  
     -------------
*************** package body System.Pack_126 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_126;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_126;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack126.ads gcc-14.1.0/gcc/ada/libgnat/s-pack126.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack126.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack126.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack127.adb gcc-14.1.0/gcc/ada/libgnat/s-pack127.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack127.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack127.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_127 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_127;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_127;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack127.ads gcc-14.1.0/gcc/ada/libgnat/s-pack127.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack127.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack127.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack13.adb gcc-14.1.0/gcc/ada/libgnat/s-pack13.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack13.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack13.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_13 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_13;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_13;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack13.ads gcc-14.1.0/gcc/ada/libgnat/s-pack13.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack13.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack13.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack14.adb gcc-14.1.0/gcc/ada/libgnat/s-pack14.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack14.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack14.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_14 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_14;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_14;
  
     -------------
*************** package body System.Pack_14 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_14;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_14;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack14.ads gcc-14.1.0/gcc/ada/libgnat/s-pack14.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack14.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack14.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack15.adb gcc-14.1.0/gcc/ada/libgnat/s-pack15.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack15.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack15.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_15 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_15;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_15;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack15.ads gcc-14.1.0/gcc/ada/libgnat/s-pack15.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack15.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack15.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack17.adb gcc-14.1.0/gcc/ada/libgnat/s-pack17.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack17.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack17.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_17 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_17;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_17;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack17.ads gcc-14.1.0/gcc/ada/libgnat/s-pack17.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack17.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack17.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack18.adb gcc-14.1.0/gcc/ada/libgnat/s-pack18.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack18.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack18.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_18 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_18;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_18;
  
     -------------
*************** package body System.Pack_18 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_18;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_18;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack18.ads gcc-14.1.0/gcc/ada/libgnat/s-pack18.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack18.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack18.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack19.adb gcc-14.1.0/gcc/ada/libgnat/s-pack19.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack19.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack19.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_19 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_19;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_19;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack19.ads gcc-14.1.0/gcc/ada/libgnat/s-pack19.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack19.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack19.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack20.adb gcc-14.1.0/gcc/ada/libgnat/s-pack20.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack20.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack20.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_20 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_20;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_20;
  
     -------------
*************** package body System.Pack_20 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_20;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_20;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack20.ads gcc-14.1.0/gcc/ada/libgnat/s-pack20.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack20.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack20.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack21.adb gcc-14.1.0/gcc/ada/libgnat/s-pack21.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack21.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack21.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_21 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_21;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_21;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack21.ads gcc-14.1.0/gcc/ada/libgnat/s-pack21.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack21.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack21.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack22.adb gcc-14.1.0/gcc/ada/libgnat/s-pack22.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack22.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack22.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_22 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_22;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_22;
  
     -------------
*************** package body System.Pack_22 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_22;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_22;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack22.ads gcc-14.1.0/gcc/ada/libgnat/s-pack22.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack22.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack22.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack23.adb gcc-14.1.0/gcc/ada/libgnat/s-pack23.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack23.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack23.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_23 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_23;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_23;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack23.ads gcc-14.1.0/gcc/ada/libgnat/s-pack23.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack23.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack23.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack24.adb gcc-14.1.0/gcc/ada/libgnat/s-pack24.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack24.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack24.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_24 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_24;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_24;
  
     -------------
*************** package body System.Pack_24 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_24;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_24;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack24.ads gcc-14.1.0/gcc/ada/libgnat/s-pack24.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack24.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack24.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack25.adb gcc-14.1.0/gcc/ada/libgnat/s-pack25.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack25.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack25.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_25 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_25;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_25;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack25.ads gcc-14.1.0/gcc/ada/libgnat/s-pack25.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack25.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack25.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack26.adb gcc-14.1.0/gcc/ada/libgnat/s-pack26.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack26.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack26.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_26 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_26;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_26;
  
     -------------
*************** package body System.Pack_26 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_26;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_26;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack26.ads gcc-14.1.0/gcc/ada/libgnat/s-pack26.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack26.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack26.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack27.adb gcc-14.1.0/gcc/ada/libgnat/s-pack27.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack27.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack27.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_27 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_27;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_27;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack27.ads gcc-14.1.0/gcc/ada/libgnat/s-pack27.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack27.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack27.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack28.adb gcc-14.1.0/gcc/ada/libgnat/s-pack28.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack28.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack28.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_28 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_28;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_28;
  
     -------------
*************** package body System.Pack_28 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_28;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_28;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack28.ads gcc-14.1.0/gcc/ada/libgnat/s-pack28.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack28.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack28.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack29.adb gcc-14.1.0/gcc/ada/libgnat/s-pack29.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack29.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack29.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_29 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_29;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_29;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack29.ads gcc-14.1.0/gcc/ada/libgnat/s-pack29.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack29.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack29.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack30.adb gcc-14.1.0/gcc/ada/libgnat/s-pack30.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack30.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack30.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_30 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_30;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_30;
  
     -------------
*************** package body System.Pack_30 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_30;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_30;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack30.ads gcc-14.1.0/gcc/ada/libgnat/s-pack30.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack30.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack30.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack31.adb gcc-14.1.0/gcc/ada/libgnat/s-pack31.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack31.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack31.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_31 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_31;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_31;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack31.ads gcc-14.1.0/gcc/ada/libgnat/s-pack31.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack31.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack31.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack33.adb gcc-14.1.0/gcc/ada/libgnat/s-pack33.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack33.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack33.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_33 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_33;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_33;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack33.ads gcc-14.1.0/gcc/ada/libgnat/s-pack33.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack33.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack33.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack34.adb gcc-14.1.0/gcc/ada/libgnat/s-pack34.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack34.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack34.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_34 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_34;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_34;
  
     -------------
*************** package body System.Pack_34 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_34;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_34;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack34.ads gcc-14.1.0/gcc/ada/libgnat/s-pack34.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack34.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack34.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack35.adb gcc-14.1.0/gcc/ada/libgnat/s-pack35.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack35.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack35.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_35 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_35;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_35;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack35.ads gcc-14.1.0/gcc/ada/libgnat/s-pack35.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack35.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack35.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack36.adb gcc-14.1.0/gcc/ada/libgnat/s-pack36.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack36.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack36.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_36 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_36;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_36;
  
     -------------
*************** package body System.Pack_36 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_36;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_36;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack36.ads gcc-14.1.0/gcc/ada/libgnat/s-pack36.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack36.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack36.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack37.adb gcc-14.1.0/gcc/ada/libgnat/s-pack37.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack37.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack37.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_37 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_37;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_37;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack37.ads gcc-14.1.0/gcc/ada/libgnat/s-pack37.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack37.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack37.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack38.adb gcc-14.1.0/gcc/ada/libgnat/s-pack38.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack38.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack38.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_38 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_38;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_38;
  
     -------------
*************** package body System.Pack_38 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_38;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_38;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack38.ads gcc-14.1.0/gcc/ada/libgnat/s-pack38.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack38.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack38.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack39.adb gcc-14.1.0/gcc/ada/libgnat/s-pack39.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack39.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack39.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_39 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_39;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_39;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack39.ads gcc-14.1.0/gcc/ada/libgnat/s-pack39.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack39.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack39.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack40.adb gcc-14.1.0/gcc/ada/libgnat/s-pack40.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack40.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack40.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_40 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_40;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_40;
  
     -------------
*************** package body System.Pack_40 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_40;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_40;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack40.ads gcc-14.1.0/gcc/ada/libgnat/s-pack40.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack40.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack40.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack41.adb gcc-14.1.0/gcc/ada/libgnat/s-pack41.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack41.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack41.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_41 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_41;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_41;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack41.ads gcc-14.1.0/gcc/ada/libgnat/s-pack41.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack41.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack41.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack42.adb gcc-14.1.0/gcc/ada/libgnat/s-pack42.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack42.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack42.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_42 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_42;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_42;
  
     -------------
*************** package body System.Pack_42 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_42;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_42;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack42.ads gcc-14.1.0/gcc/ada/libgnat/s-pack42.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack42.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack42.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack43.adb gcc-14.1.0/gcc/ada/libgnat/s-pack43.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack43.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack43.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_43 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_43;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_43;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack43.ads gcc-14.1.0/gcc/ada/libgnat/s-pack43.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack43.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack43.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack44.adb gcc-14.1.0/gcc/ada/libgnat/s-pack44.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack44.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack44.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_44 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_44;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_44;
  
     -------------
*************** package body System.Pack_44 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_44;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_44;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack44.ads gcc-14.1.0/gcc/ada/libgnat/s-pack44.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack44.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack44.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack45.adb gcc-14.1.0/gcc/ada/libgnat/s-pack45.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack45.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack45.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_45 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_45;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_45;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack45.ads gcc-14.1.0/gcc/ada/libgnat/s-pack45.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack45.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack45.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack46.adb gcc-14.1.0/gcc/ada/libgnat/s-pack46.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack46.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack46.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_46 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_46;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_46;
  
     -------------
*************** package body System.Pack_46 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_46;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_46;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack46.ads gcc-14.1.0/gcc/ada/libgnat/s-pack46.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack46.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack46.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack47.adb gcc-14.1.0/gcc/ada/libgnat/s-pack47.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack47.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack47.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_47 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_47;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_47;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack47.ads gcc-14.1.0/gcc/ada/libgnat/s-pack47.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack47.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack47.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack48.adb gcc-14.1.0/gcc/ada/libgnat/s-pack48.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack48.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack48.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_48 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_48;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_48;
  
     -------------
*************** package body System.Pack_48 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_48;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_48;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack48.ads gcc-14.1.0/gcc/ada/libgnat/s-pack48.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack48.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack48.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack49.adb gcc-14.1.0/gcc/ada/libgnat/s-pack49.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack49.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack49.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_49 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_49;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_49;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack49.ads gcc-14.1.0/gcc/ada/libgnat/s-pack49.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack49.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack49.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack50.adb gcc-14.1.0/gcc/ada/libgnat/s-pack50.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack50.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack50.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_50 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_50;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_50;
  
     -------------
*************** package body System.Pack_50 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_50;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_50;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack50.ads gcc-14.1.0/gcc/ada/libgnat/s-pack50.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack50.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack50.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack51.adb gcc-14.1.0/gcc/ada/libgnat/s-pack51.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack51.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack51.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_51 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_51;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_51;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack51.ads gcc-14.1.0/gcc/ada/libgnat/s-pack51.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack51.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack51.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack52.adb gcc-14.1.0/gcc/ada/libgnat/s-pack52.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack52.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack52.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_52 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_52;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_52;
  
     -------------
*************** package body System.Pack_52 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_52;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_52;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack52.ads gcc-14.1.0/gcc/ada/libgnat/s-pack52.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack52.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack52.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack53.adb gcc-14.1.0/gcc/ada/libgnat/s-pack53.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack53.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack53.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_53 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_53;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_53;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack53.ads gcc-14.1.0/gcc/ada/libgnat/s-pack53.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack53.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack53.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack54.adb gcc-14.1.0/gcc/ada/libgnat/s-pack54.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack54.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack54.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_54 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_54;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_54;
  
     -------------
*************** package body System.Pack_54 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_54;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_54;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack54.ads gcc-14.1.0/gcc/ada/libgnat/s-pack54.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack54.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack54.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack55.adb gcc-14.1.0/gcc/ada/libgnat/s-pack55.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack55.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack55.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_55 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_55;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_55;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack55.ads gcc-14.1.0/gcc/ada/libgnat/s-pack55.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack55.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack55.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack56.adb gcc-14.1.0/gcc/ada/libgnat/s-pack56.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack56.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack56.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_56 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_56;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_56;
  
     -------------
*************** package body System.Pack_56 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_56;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_56;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack56.ads gcc-14.1.0/gcc/ada/libgnat/s-pack56.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack56.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack56.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack57.adb gcc-14.1.0/gcc/ada/libgnat/s-pack57.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack57.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack57.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_57 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_57;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_57;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack57.ads gcc-14.1.0/gcc/ada/libgnat/s-pack57.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack57.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack57.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack58.adb gcc-14.1.0/gcc/ada/libgnat/s-pack58.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack58.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack58.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_58 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_58;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_58;
  
     -------------
*************** package body System.Pack_58 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_58;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_58;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack58.ads gcc-14.1.0/gcc/ada/libgnat/s-pack58.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack58.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack58.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack59.adb gcc-14.1.0/gcc/ada/libgnat/s-pack59.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack59.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack59.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_59 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_59;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_59;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack59.ads gcc-14.1.0/gcc/ada/libgnat/s-pack59.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack59.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack59.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack60.adb gcc-14.1.0/gcc/ada/libgnat/s-pack60.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack60.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack60.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_60 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_60;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_60;
  
     -------------
*************** package body System.Pack_60 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_60;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_60;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack60.ads gcc-14.1.0/gcc/ada/libgnat/s-pack60.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack60.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack60.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack61.adb gcc-14.1.0/gcc/ada/libgnat/s-pack61.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack61.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack61.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_61 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_61;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_61;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack61.ads gcc-14.1.0/gcc/ada/libgnat/s-pack61.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack61.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack61.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack62.adb gcc-14.1.0/gcc/ada/libgnat/s-pack62.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack62.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack62.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_62 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_62;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_62;
  
     -------------
*************** package body System.Pack_62 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_62;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_62;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack62.ads gcc-14.1.0/gcc/ada/libgnat/s-pack62.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack62.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack62.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack63.adb gcc-14.1.0/gcc/ada/libgnat/s-pack63.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack63.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack63.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_63 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_63;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_63;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack63.ads gcc-14.1.0/gcc/ada/libgnat/s-pack63.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack63.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack63.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack65.adb gcc-14.1.0/gcc/ada/libgnat/s-pack65.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack65.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack65.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_65 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_65;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_65;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack65.ads gcc-14.1.0/gcc/ada/libgnat/s-pack65.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack65.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack65.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack66.adb gcc-14.1.0/gcc/ada/libgnat/s-pack66.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack66.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack66.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_66 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_66;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_66;
  
     -------------
*************** package body System.Pack_66 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_66;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_66;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack66.ads gcc-14.1.0/gcc/ada/libgnat/s-pack66.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack66.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack66.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack67.adb gcc-14.1.0/gcc/ada/libgnat/s-pack67.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack67.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack67.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_67 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_67;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_67;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack67.ads gcc-14.1.0/gcc/ada/libgnat/s-pack67.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack67.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack67.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack68.adb gcc-14.1.0/gcc/ada/libgnat/s-pack68.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack68.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack68.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_68 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_68;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_68;
  
     -------------
*************** package body System.Pack_68 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_68;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_68;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack68.ads gcc-14.1.0/gcc/ada/libgnat/s-pack68.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack68.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack68.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack69.adb gcc-14.1.0/gcc/ada/libgnat/s-pack69.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack69.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack69.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_69 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_69;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_69;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack69.ads gcc-14.1.0/gcc/ada/libgnat/s-pack69.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack69.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack69.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack70.adb gcc-14.1.0/gcc/ada/libgnat/s-pack70.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack70.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack70.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_70 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_70;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_70;
  
     -------------
*************** package body System.Pack_70 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_70;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_70;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack70.ads gcc-14.1.0/gcc/ada/libgnat/s-pack70.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack70.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack70.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack71.adb gcc-14.1.0/gcc/ada/libgnat/s-pack71.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack71.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack71.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_71 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_71;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_71;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack71.ads gcc-14.1.0/gcc/ada/libgnat/s-pack71.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack71.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack71.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack72.adb gcc-14.1.0/gcc/ada/libgnat/s-pack72.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack72.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack72.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_72 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_72;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_72;
  
     -------------
*************** package body System.Pack_72 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_72;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_72;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack72.ads gcc-14.1.0/gcc/ada/libgnat/s-pack72.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack72.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack72.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack73.adb gcc-14.1.0/gcc/ada/libgnat/s-pack73.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack73.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack73.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_73 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_73;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_73;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack73.ads gcc-14.1.0/gcc/ada/libgnat/s-pack73.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack73.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack73.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack74.adb gcc-14.1.0/gcc/ada/libgnat/s-pack74.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack74.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack74.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_74 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_74;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_74;
  
     -------------
*************** package body System.Pack_74 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_74;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_74;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack74.ads gcc-14.1.0/gcc/ada/libgnat/s-pack74.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack74.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack74.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack75.adb gcc-14.1.0/gcc/ada/libgnat/s-pack75.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack75.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack75.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_75 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_75;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_75;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack75.ads gcc-14.1.0/gcc/ada/libgnat/s-pack75.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack75.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack75.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack76.adb gcc-14.1.0/gcc/ada/libgnat/s-pack76.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack76.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack76.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_76 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_76;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_76;
  
     -------------
*************** package body System.Pack_76 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_76;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_76;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack76.ads gcc-14.1.0/gcc/ada/libgnat/s-pack76.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack76.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack76.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack77.adb gcc-14.1.0/gcc/ada/libgnat/s-pack77.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack77.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack77.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_77 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_77;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_77;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack77.ads gcc-14.1.0/gcc/ada/libgnat/s-pack77.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack77.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack77.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack78.adb gcc-14.1.0/gcc/ada/libgnat/s-pack78.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack78.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack78.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_78 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_78;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_78;
  
     -------------
*************** package body System.Pack_78 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_78;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_78;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack78.ads gcc-14.1.0/gcc/ada/libgnat/s-pack78.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack78.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack78.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack79.adb gcc-14.1.0/gcc/ada/libgnat/s-pack79.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack79.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack79.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_79 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_79;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_79;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack79.ads gcc-14.1.0/gcc/ada/libgnat/s-pack79.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack79.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack79.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack80.adb gcc-14.1.0/gcc/ada/libgnat/s-pack80.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack80.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack80.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_80 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_80;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_80;
  
     -------------
*************** package body System.Pack_80 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_80;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_80;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack80.ads gcc-14.1.0/gcc/ada/libgnat/s-pack80.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack80.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack80.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack81.adb gcc-14.1.0/gcc/ada/libgnat/s-pack81.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack81.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack81.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_81 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_81;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_81;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack81.ads gcc-14.1.0/gcc/ada/libgnat/s-pack81.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack81.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack81.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack82.adb gcc-14.1.0/gcc/ada/libgnat/s-pack82.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack82.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack82.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_82 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_82;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_82;
  
     -------------
*************** package body System.Pack_82 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_82;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_82;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack82.ads gcc-14.1.0/gcc/ada/libgnat/s-pack82.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack82.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack82.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack83.adb gcc-14.1.0/gcc/ada/libgnat/s-pack83.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack83.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack83.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_83 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_83;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_83;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack83.ads gcc-14.1.0/gcc/ada/libgnat/s-pack83.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack83.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack83.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack84.adb gcc-14.1.0/gcc/ada/libgnat/s-pack84.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack84.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack84.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_84 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_84;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_84;
  
     -------------
*************** package body System.Pack_84 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_84;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_84;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack84.ads gcc-14.1.0/gcc/ada/libgnat/s-pack84.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack84.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack84.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack85.adb gcc-14.1.0/gcc/ada/libgnat/s-pack85.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack85.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack85.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_85 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_85;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_85;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack85.ads gcc-14.1.0/gcc/ada/libgnat/s-pack85.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack85.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack85.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack86.adb gcc-14.1.0/gcc/ada/libgnat/s-pack86.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack86.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack86.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_86 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_86;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_86;
  
     -------------
*************** package body System.Pack_86 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_86;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_86;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack86.ads gcc-14.1.0/gcc/ada/libgnat/s-pack86.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack86.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack86.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack87.adb gcc-14.1.0/gcc/ada/libgnat/s-pack87.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack87.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack87.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_87 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_87;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_87;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack87.ads gcc-14.1.0/gcc/ada/libgnat/s-pack87.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack87.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack87.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack88.adb gcc-14.1.0/gcc/ada/libgnat/s-pack88.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack88.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack88.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_88 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_88;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_88;
  
     -------------
*************** package body System.Pack_88 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_88;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_88;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack88.ads gcc-14.1.0/gcc/ada/libgnat/s-pack88.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack88.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack88.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack89.adb gcc-14.1.0/gcc/ada/libgnat/s-pack89.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack89.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack89.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_89 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_89;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_89;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack89.ads gcc-14.1.0/gcc/ada/libgnat/s-pack89.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack89.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack89.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack90.adb gcc-14.1.0/gcc/ada/libgnat/s-pack90.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack90.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack90.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_90 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_90;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_90;
  
     -------------
*************** package body System.Pack_90 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_90;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_90;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack90.ads gcc-14.1.0/gcc/ada/libgnat/s-pack90.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack90.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack90.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack91.adb gcc-14.1.0/gcc/ada/libgnat/s-pack91.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack91.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack91.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_91 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_91;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_91;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack91.ads gcc-14.1.0/gcc/ada/libgnat/s-pack91.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack91.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack91.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack92.adb gcc-14.1.0/gcc/ada/libgnat/s-pack92.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack92.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack92.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_92 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_92;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_92;
  
     -------------
*************** package body System.Pack_92 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_92;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_92;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack92.ads gcc-14.1.0/gcc/ada/libgnat/s-pack92.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack92.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack92.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack93.adb gcc-14.1.0/gcc/ada/libgnat/s-pack93.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack93.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack93.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_93 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_93;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_93;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack93.ads gcc-14.1.0/gcc/ada/libgnat/s-pack93.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack93.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack93.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack94.adb gcc-14.1.0/gcc/ada/libgnat/s-pack94.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack94.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack94.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_94 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_94;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_94;
  
     -------------
*************** package body System.Pack_94 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_94;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_94;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack94.ads gcc-14.1.0/gcc/ada/libgnat/s-pack94.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack94.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack94.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack95.adb gcc-14.1.0/gcc/ada/libgnat/s-pack95.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack95.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack95.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_95 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_95;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_95;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack95.ads gcc-14.1.0/gcc/ada/libgnat/s-pack95.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack95.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack95.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack96.adb gcc-14.1.0/gcc/ada/libgnat/s-pack96.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack96.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack96.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_96 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_96;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_96;
  
     -------------
*************** package body System.Pack_96 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_96;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_96;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack96.ads gcc-14.1.0/gcc/ada/libgnat/s-pack96.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack96.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack96.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack97.adb gcc-14.1.0/gcc/ada/libgnat/s-pack97.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack97.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack97.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_97 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_97;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_97;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack97.ads gcc-14.1.0/gcc/ada/libgnat/s-pack97.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack97.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack97.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack98.adb gcc-14.1.0/gcc/ada/libgnat/s-pack98.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack98.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack98.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_98 is
*** 104,133 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_98;
  
     -------------
--- 104,132 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_98;
  
     -------------
*************** package body System.Pack_98 is
*** 143,172 ****
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end GetU_98;
  
     ------------
--- 142,170 ----
        C  : ClusterU_Ref     with Address => A'Address, Import;
        RC : Rev_ClusterU_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end GetU_98;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack98.ads gcc-14.1.0/gcc/ada/libgnat/s-pack98.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack98.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack98.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack99.adb gcc-14.1.0/gcc/ada/libgnat/s-pack99.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pack99.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack99.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pack_99 is
*** 89,118 ****
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       if Rev_SSO then
!          case N07 (Uns (N) mod 8) is
!             when 0 => return RC.E0;
!             when 1 => return RC.E1;
!             when 2 => return RC.E2;
!             when 3 => return RC.E3;
!             when 4 => return RC.E4;
!             when 5 => return RC.E5;
!             when 6 => return RC.E6;
!             when 7 => return RC.E7;
!          end case;
  
!       else
!          case N07 (Uns (N) mod 8) is
!             when 0 => return C.E0;
!             when 1 => return C.E1;
!             when 2 => return C.E2;
!             when 3 => return C.E3;
!             when 4 => return C.E4;
!             when 5 => return C.E5;
!             when 6 => return C.E6;
!             when 7 => return C.E7;
!          end case;
!       end if;
     end Get_99;
  
     ------------
--- 89,117 ----
        C  : Cluster_Ref     with Address => A'Address, Import;
        RC : Rev_Cluster_Ref with Address => A'Address, Import;
     begin
!       return
!          (if Rev_SSO then
!             (case N07 (Uns (N) mod 8) is
!                when 0 => RC.E0,
!                when 1 => RC.E1,
!                when 2 => RC.E2,
!                when 3 => RC.E3,
!                when 4 => RC.E4,
!                when 5 => RC.E5,
!                when 6 => RC.E6,
!                when 7 => RC.E7)
  
!          else
!             (case N07 (Uns (N) mod 8) is
!                when 0 => C.E0,
!                when 1 => C.E1,
!                when 2 => C.E2,
!                when 3 => C.E3,
!                when 4 => C.E4,
!                when 5 => C.E5,
!                when 6 => C.E6,
!                when 7 => C.E7)
!          );
     end Get_99;
  
     ------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pack99.ads gcc-14.1.0/gcc/ada/libgnat/s-pack99.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pack99.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pack99.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parame.adb gcc-14.1.0/gcc/ada/libgnat/s-parame.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-parame.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parame.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Parameters is
*** 58,63 ****
--- 58,65 ----
     begin
        if Default_Stack_Size = -1 then
           return 2 * 1024 * 1024;
+       elsif Size_Type (Default_Stack_Size) < Minimum_Stack_Size then
+          return Minimum_Stack_Size;
        else
           return Size_Type (Default_Stack_Size);
        end if;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parame.ads gcc-14.1.0/gcc/ada/libgnat/s-parame.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-parame.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parame.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Parameters is
*** 53,61 ****
     -- Task And Stack Allocation Control --
     ---------------------------------------
  
!    type Size_Type is range
!      -(2 ** (Integer'(Standard'Address_Size) - 1)) ..
!      +(2 ** (Integer'(Standard'Address_Size) - 1)) - 1;
     --  Type used to provide task stack sizes to the runtime. Sized to permit
     --  stack sizes of up to half the total addressable memory space. This may
     --  seem excessively large (even for 32-bit systems), however there are many
--- 53,59 ----
     -- Task And Stack Allocation Control --
     ---------------------------------------
  
!    type Size_Type is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
     --  Type used to provide task stack sizes to the runtime. Sized to permit
     --  stack sizes of up to half the total addressable memory space. This may
     --  seem excessively large (even for 32-bit systems), however there are many
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parame__hpux.ads gcc-14.1.0/gcc/ada/libgnat/s-parame__hpux.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-parame__hpux.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parame__hpux.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Parameters is
*** 53,61 ****
     -- Task And Stack Allocation Control --
     ---------------------------------------
  
!    type Size_Type is range
!      -(2 ** (Integer'(Standard'Address_Size) - 1)) ..
!      +(2 ** (Integer'(Standard'Address_Size) - 1)) - 1;
     --  Type used to provide task stack sizes to the runtime. Sized to permit
     --  stack sizes of up to half the total addressable memory space. This may
     --  seem excessively large (even for 32-bit systems), however there are many
--- 53,59 ----
     -- Task And Stack Allocation Control --
     ---------------------------------------
  
!    type Size_Type is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
     --  Type used to provide task stack sizes to the runtime. Sized to permit
     --  stack sizes of up to half the total addressable memory space. This may
     --  seem excessively large (even for 32-bit systems), however there are many
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parame__posix2008.ads gcc-14.1.0/gcc/ada/libgnat/s-parame__posix2008.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-parame__posix2008.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parame__posix2008.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Parameters is
*** 53,61 ****
     -- Task And Stack Allocation Control --
     ---------------------------------------
  
!    type Size_Type is range
!      -(2 ** (Integer'(Standard'Address_Size) - 1)) ..
!      +(2 ** (Integer'(Standard'Address_Size) - 1)) - 1;
     --  Type used to provide task stack sizes to the runtime. Sized to permit
     --  stack sizes of up to half the total addressable memory space. This may
     --  seem excessively large (even for 32-bit systems), however there are many
--- 53,59 ----
     -- Task And Stack Allocation Control --
     ---------------------------------------
  
!    type Size_Type is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
     --  Type used to provide task stack sizes to the runtime. Sized to permit
     --  stack sizes of up to half the total addressable memory space. This may
     --  seem excessively large (even for 32-bit systems), however there are many
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parame__qnx.adb gcc-14.1.0/gcc/ada/libgnat/s-parame__qnx.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-parame__qnx.adb	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-parame__qnx.adb	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,81 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                    S Y S T E M . P A R A M E T E R S                     --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the version for AArch64 QNX
+ 
+ package body System.Parameters is
+ 
+    -------------------------
+    -- Adjust_Storage_Size --
+    -------------------------
+ 
+    function Adjust_Storage_Size (Size : Size_Type) return Size_Type is
+    begin
+       return
+          (if Size = Unspecified_Size then Default_Stack_Size
+           elsif Size < Minimum_Stack_Size then Minimum_Stack_Size
+           else Size
+          );
+    end Adjust_Storage_Size;
+ 
+    ------------------------
+    -- Default_Stack_Size --
+    ------------------------
+ 
+    function Default_Stack_Size return Size_Type is
+       Default_Stack_Size : constant Integer;
+       pragma Import (C, Default_Stack_Size, "__gl_default_stack_size");
+    begin
+       return
+          (if Default_Stack_Size = -1
+           then
+              (256 * 1024) --  256K is the default stack size on aarch64 QNX
+           elsif Size_Type (Default_Stack_Size) < Minimum_Stack_Size
+           then
+              Minimum_Stack_Size
+           else
+              Size_Type (Default_Stack_Size)
+          );
+    end Default_Stack_Size;
+ 
+    ------------------------
+    -- Minimum_Stack_Size --
+    ------------------------
+ 
+    function Minimum_Stack_Size return Size_Type is
+    begin
+       --  256 is the value of PTHREAD_STACK_MIN on QNX and
+       --  12K is required for stack-checking. The value is
+       --  rounded up to a multiple of a 4K page.
+       return 16 * 1024;
+    end Minimum_Stack_Size;
+ 
+ end System.Parameters;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parame__rtems.adb gcc-14.1.0/gcc/ada/libgnat/s-parame__rtems.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-parame__rtems.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parame__rtems.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Parameters is
*** 63,68 ****
--- 63,70 ----
     begin
        if Default_Stack_Size = -1 then
           return 32 * 1024;
+       elsif Size_Type (Default_Stack_Size) < Minimum_Stack_Size then
+          return Minimum_Stack_Size;
        else
           return Size_Type (Default_Stack_Size);
        end if;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parame__vxworks.adb gcc-14.1.0/gcc/ada/libgnat/s-parame__vxworks.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-parame__vxworks.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parame__vxworks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Parameters is
*** 58,68 ****
     begin
        if Default_Stack_Size = -1 then
           if Stack_Check_Limits then
-             return 32 * 1024;
              --  Extra stack to allow for 12K exception area.
           else
              return 20 * 1024;
           end if;
        else
           return Size_Type (Default_Stack_Size);
        end if;
--- 58,70 ----
     begin
        if Default_Stack_Size = -1 then
           if Stack_Check_Limits then
              --  Extra stack to allow for 12K exception area.
+             return 32 * 1024;
           else
              return 20 * 1024;
           end if;
+       elsif Size_Type (Default_Stack_Size) < Minimum_Stack_Size then
+          return Minimum_Stack_Size;
        else
           return Size_Type (Default_Stack_Size);
        end if;
*************** package body System.Parameters is
*** 74,80 ****
  
     function Minimum_Stack_Size return Size_Type is
     begin
!       return 8 * 1024;
     end Minimum_Stack_Size;
  
  end System.Parameters;
--- 76,87 ----
  
     function Minimum_Stack_Size return Size_Type is
     begin
!       if Stack_Check_Limits then
!          --  Extra stack to allow for 12K exception area.
!          return 20 * 1024;
!       else
!          return 8 * 1024;
!       end if;
     end Minimum_Stack_Size;
  
  end System.Parameters;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parame__vxworks.ads gcc-14.1.0/gcc/ada/libgnat/s-parame__vxworks.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-parame__vxworks.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parame__vxworks.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Parameters is
*** 53,61 ****
     -- Task And Stack Allocation Control --
     ---------------------------------------
  
!    type Size_Type is range
!      -(2 ** (Integer'(Standard'Address_Size) - 1)) ..
!      +(2 ** (Integer'(Standard'Address_Size) - 1)) - 1;
     --  Type used to provide task stack sizes to the runtime. Sized to permit
     --  stack sizes of up to half the total addressable memory space. This may
     --  seem excessively large (even for 32-bit systems), however there are many
--- 53,59 ----
     -- Task And Stack Allocation Control --
     ---------------------------------------
  
!    type Size_Type is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
     --  Type used to provide task stack sizes to the runtime. Sized to permit
     --  stack sizes of up to half the total addressable memory space. This may
     --  seem excessively large (even for 32-bit systems), however there are many
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parint.adb gcc-14.1.0/gcc/ada/libgnat/s-parint.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-parint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parint.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                  B o d y                                 --
  --                   (Dummy body for non-distributed case)                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                   (Dummy body for non-distributed case)                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-parint.ads gcc-14.1.0/gcc/ada/libgnat/s-parint.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-parint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-parint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pehage.adb gcc-14.1.0/gcc/ada/libgnat/s-pehage.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pehage.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pehage.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pehage.ads gcc-14.1.0/gcc/ada/libgnat/s-pehage.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pehage.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pehage.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pooglo.adb gcc-14.1.0/gcc/ada/libgnat/s-pooglo.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pooglo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pooglo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pooglo.ads gcc-14.1.0/gcc/ada/libgnat/s-pooglo.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pooglo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pooglo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pooloc.adb gcc-14.1.0/gcc/ada/libgnat/s-pooloc.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-pooloc.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pooloc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-pooloc.ads gcc-14.1.0/gcc/ada/libgnat/s-pooloc.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-pooloc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-pooloc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-poosiz.adb gcc-14.1.0/gcc/ada/libgnat/s-poosiz.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-poosiz.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-poosiz.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Pool_Size is
*** 408,412 ****
           pragma Warnings (On);
        end Size;
  
!    end  Variable_Size_Management;
  end System.Pool_Size;
--- 408,412 ----
           pragma Warnings (On);
        end Size;
  
!    end Variable_Size_Management;
  end System.Pool_Size;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-poosiz.ads gcc-14.1.0/gcc/ada/libgnat/s-poosiz.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-poosiz.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-poosiz.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-powflt.ads gcc-14.1.0/gcc/ada/libgnat/s-powflt.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-powflt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-powflt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-powlfl.ads gcc-14.1.0/gcc/ada/libgnat/s-powlfl.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-powlfl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-powlfl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-powllf.ads gcc-14.1.0/gcc/ada/libgnat/s-powllf.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-powllf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-powllf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-purexc.ads gcc-14.1.0/gcc/ada/libgnat/s-purexc.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-purexc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-purexc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-putima.adb gcc-14.1.0/gcc/ada/libgnat/s-putima.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-putima.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-putima.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 32,38 ****
  with Ada.Strings.Text_Buffers.Utils;
  use Ada.Strings.Text_Buffers;
  use Ada.Strings.Text_Buffers.Utils;
! with Ada.Unchecked_Conversion;
  
  package body System.Put_Images is
  
--- 32,38 ----
  with Ada.Strings.Text_Buffers.Utils;
  use Ada.Strings.Text_Buffers;
  use Ada.Strings.Text_Buffers.Utils;
! with System.Storage_Elements; use System.Storage_Elements;
  
  package body System.Put_Images is
  
*************** package body System.Put_Images is
*** 118,126 ****
       (S : in out Sink'Class; X : Long_Long_Long_Unsigned)
       renames LLL_Integer_Images.Put_Image;
  
!    type Signed_Address is range
!      -2**(Standard'Address_Size - 1) .. 2**(Standard'Address_Size - 1) - 1;
!    type Unsigned_Address is mod 2**Standard'Address_Size;
     package Hex is new Generic_Integer_Images
       (Signed_Address, Unsigned_Address, Base => 16);
  
--- 118,125 ----
       (S : in out Sink'Class; X : Long_Long_Long_Unsigned)
       renames LLL_Integer_Images.Put_Image;
  
!    type Signed_Address is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
!    type Unsigned_Address is mod Memory_Size;
     package Hex is new Generic_Integer_Images
       (Signed_Address, Unsigned_Address, Base => 16);
  
*************** package body System.Put_Images is
*** 133,147 ****
     procedure Put_Image_Pointer
       (S : in out Sink'Class; X : Pointer; Type_Kind : String)
     is
-       function Cast is new Ada.Unchecked_Conversion
-         (System.Address, Unsigned_Address);
     begin
        if X = null then
           Put_UTF_8 (S, "null");
        else
           Put_UTF_8 (S, "(");
           Put_UTF_8 (S, Type_Kind);
!          Hex.Put_Image (S, Cast (X.all'Address));
           Put_UTF_8 (S, ")");
        end if;
     end Put_Image_Pointer;
--- 132,144 ----
     procedure Put_Image_Pointer
       (S : in out Sink'Class; X : Pointer; Type_Kind : String)
     is
     begin
        if X = null then
           Put_UTF_8 (S, "null");
        else
           Put_UTF_8 (S, "(");
           Put_UTF_8 (S, Type_Kind);
!          Hex.Put_Image (S, Unsigned_Address (To_Integer (X.all'Address)));
           Put_UTF_8 (S, ")");
        end if;
     end Put_Image_Pointer;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-putima.ads gcc-14.1.0/gcc/ada/libgnat/s-putima.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-putima.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-putima.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-rannum.adb gcc-14.1.0/gcc/ada/libgnat/s-rannum.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-rannum.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-rannum.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-rannum.ads gcc-14.1.0/gcc/ada/libgnat/s-rannum.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-rannum.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-rannum.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-ransee.adb gcc-14.1.0/gcc/ada/libgnat/s-ransee.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-ransee.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-ransee.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-ransee.ads gcc-14.1.0/gcc/ada/libgnat/s-ransee.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-ransee.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-ransee.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-regexp.adb gcc-14.1.0/gcc/ada/libgnat/s-regexp.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-regexp.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-regexp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-regexp.ads gcc-14.1.0/gcc/ada/libgnat/s-regexp.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-regexp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-regexp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-regpat.adb gcc-14.1.0/gcc/ada/libgnat/s-regpat.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-regpat.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-regpat.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2023, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2024, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Regpat is
*** 895,901 ****
           Flags.SP_Start := Flags.SP_Start or else New_Flags.SP_Start;
  
           while Parse_Pos <= Parse_End
!            and then (E (Parse_Pos) = '|')
           loop
              Parse_Pos := Parse_Pos + 1;
              Parse_Branch (New_Flags, False, Br);
--- 895,901 ----
           Flags.SP_Start := Flags.SP_Start or else New_Flags.SP_Start;
  
           while Parse_Pos <= Parse_End
!            and then E (Parse_Pos) = '|'
           loop
              Parse_Pos := Parse_Pos + 1;
              Parse_Branch (New_Flags, False, Br);
*************** package body System.Regpat is
*** 979,985 ****
           C := Expression (Parse_Pos);
           Parse_Pos := Parse_Pos + 1;
  
!          case (C) is
              when '^' =>
                 IP :=
                   Emit_Node
--- 979,985 ----
           C := Expression (Parse_Pos);
           Parse_Pos := Parse_Pos + 1;
  
!          case C is
              when '^' =>
                 IP :=
                   Emit_Node
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-regpat.ads gcc-14.1.0/gcc/ada/libgnat/s-regpat.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-regpat.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-regpat.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-resfil.adb gcc-14.1.0/gcc/ada/libgnat/s-resfil.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-resfil.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-resfil.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-resfil.ads gcc-14.1.0/gcc/ada/libgnat/s-resfil.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-resfil.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-resfil.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-restri.adb gcc-14.1.0/gcc/ada/libgnat/s-restri.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-restri.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-restri.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-restri.ads gcc-14.1.0/gcc/ada/libgnat/s-restri.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-restri.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-restri.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-retsta.ads gcc-14.1.0/gcc/ada/libgnat/s-retsta.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-retsta.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-retsta.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-rident.ads gcc-14.1.0/gcc/ada/libgnat/s-rident.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-rident.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-rident.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Rident is
*** 449,455 ****
                             No_Asynchronous_Control         => True,
                             No_Dynamic_Attachment           => True,
                             No_Dynamic_CPU_Assignment       => True,
-                            No_Dynamic_Priorities           => True,
                             No_Local_Protected_Objects      => True,
                             No_Protected_Type_Allocators    => True,
                             No_Requeue_Statements           => True,
--- 449,454 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-rpc.adb gcc-14.1.0/gcc/ada/libgnat/s-rpc.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-rpc.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-rpc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-rpc.ads gcc-14.1.0/gcc/ada/libgnat/s-rpc.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-rpc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-rpc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-scaval.adb gcc-14.1.0/gcc/ada/libgnat/s-scaval.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-scaval.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-scaval.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-scaval.ads gcc-14.1.0/gcc/ada/libgnat/s-scaval.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-scaval.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-scaval.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-scaval__128.adb gcc-14.1.0/gcc/ada/libgnat/s-scaval__128.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-scaval__128.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-scaval__128.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-scaval__128.ads gcc-14.1.0/gcc/ada/libgnat/s-scaval__128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-scaval__128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-scaval__128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-secsta.adb gcc-14.1.0/gcc/ada/libgnat/s-secsta.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-secsta.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-secsta.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-secsta.ads gcc-14.1.0/gcc/ada/libgnat/s-secsta.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-secsta.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-secsta.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-sequio.adb gcc-14.1.0/gcc/ada/libgnat/s-sequio.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-sequio.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-sequio.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-sequio.ads gcc-14.1.0/gcc/ada/libgnat/s-sequio.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-sequio.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-sequio.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-shabig.ads gcc-14.1.0/gcc/ada/libgnat/s-shabig.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-shabig.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-shabig.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-shasto.adb gcc-14.1.0/gcc/ada/libgnat/s-shasto.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-shasto.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-shasto.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-shasto.ads gcc-14.1.0/gcc/ada/libgnat/s-shasto.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-shasto.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-shasto.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-soflin.adb gcc-14.1.0/gcc/ada/libgnat/s-soflin.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-soflin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-soflin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-soflin.ads gcc-14.1.0/gcc/ada/libgnat/s-soflin.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-soflin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-soflin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-soliin.adb gcc-14.1.0/gcc/ada/libgnat/s-soliin.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-soliin.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-soliin.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2017-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2017-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-soliin.ads gcc-14.1.0/gcc/ada/libgnat/s-soliin.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-soliin.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-soliin.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2017-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2017-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-spark.ads gcc-14.1.0/gcc/ada/libgnat/s-spark.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-spark.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-spark.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-spcuop.adb gcc-14.1.0/gcc/ada/libgnat/s-spcuop.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-spcuop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-spcuop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2022-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-spcuop.ads gcc-14.1.0/gcc/ada/libgnat/s-spcuop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-spcuop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-spcuop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 45,51 ****
  package System.SPARK.Cut_Operations with
    SPARK_Mode,
    Pure,
!   Annotate => (GNATprove, Always_Return)
  is
  
     function By (Consequence, Premise : Boolean) return Boolean with
--- 45,51 ----
  package System.SPARK.Cut_Operations with
    SPARK_Mode,
    Pure,
!   Always_Terminates
  is
  
     function By (Consequence, Premise : Boolean) return Boolean with
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-spsufi.adb gcc-14.1.0/gcc/ada/libgnat/s-spsufi.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-spsufi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-spsufi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-spsufi.ads gcc-14.1.0/gcc/ada/libgnat/s-spsufi.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-spsufi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-spsufi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stache.adb gcc-14.1.0/gcc/ada/libgnat/s-stache.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stache.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stache.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 1999-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 1999-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stache.ads gcc-14.1.0/gcc/ada/libgnat/s-stache.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stache.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stache.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1999-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1999-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stalib.adb gcc-14.1.0/gcc/ada/libgnat/s-stalib.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stalib.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stalib.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stalib.ads gcc-14.1.0/gcc/ada/libgnat/s-stalib.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stalib.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stalib.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-statxd.adb gcc-14.1.0/gcc/ada/libgnat/s-statxd.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-statxd.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-statxd.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GARLIC is free software;  you can redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GARLIC is free software;  you can redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Stream_Attributes.XD
*** 295,302 ****
        FP : Fat_Pointer;
  
     begin
!       FP.P1 := I_AS (Stream).P1;
!       FP.P2 := I_AS (Stream).P1;
  
        return FP;
     end I_AD;
--- 295,302 ----
        FP : Fat_Pointer;
  
     begin
!       FP.P1 := I_AS (Stream);
!       FP.P2 := I_AS (Stream);
  
        return FP;
     end I_AD;
*************** package body System.Stream_Attributes.XD
*** 321,327 ****
              U := U * BB + XDR_TM (S (N));
           end loop;
  
!          return (P1 => To_XDR_SA (XDR_SA (U)));
        end if;
     end I_AS;
  
--- 321,327 ----
              U := U * BB + XDR_TM (S (N));
           end loop;
  
!          return To_XDR_SA (XDR_SA (U));
        end if;
     end I_AS;
  
*************** package body System.Stream_Attributes.XD
*** 1181,1187 ****
  
     procedure W_AS (Stream : not null access RST; Item : Thin_Pointer) is
        S : XDR_S_TM;
!       U : XDR_TM := XDR_TM (To_XDR_SA (Item.P1));
  
     begin
        for N in reverse S'Range loop
--- 1181,1187 ----
  
     procedure W_AS (Stream : not null access RST; Item : Thin_Pointer) is
        S : XDR_S_TM;
!       U : XDR_TM := XDR_TM (To_XDR_SA (Item));
  
     begin
        for N in reverse S'Range loop
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-statxd.ads gcc-14.1.0/gcc/ada/libgnat/s-statxd.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-statxd.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-statxd.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stausa.adb gcc-14.1.0/gcc/ada/libgnat/s-stausa.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stausa.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stausa.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2004-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2004-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stausa.ads gcc-14.1.0/gcc/ada/libgnat/s-stausa.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stausa.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stausa.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2004-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2004-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stchop.adb gcc-14.1.0/gcc/ada/libgnat/s-stchop.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stchop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stchop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Stack_Checking.Opera
*** 234,244 ****
           --  it is essential to use our local copy of Stack.
  
        begin
!          if (Stack_Grows_Down and then
!                (not (Frame_Address <= My_Stack.Base)))
             or else
              (not Stack_Grows_Down and then
!                (not (Frame_Address >= My_Stack.Base)))
           then
              --  The returned Base is lower than the stored one, so assume that
              --  the original one wasn't right and use the current Frame_Address
--- 234,243 ----
           --  it is essential to use our local copy of Stack.
  
        begin
!          if (Stack_Grows_Down and then not (Frame_Address <= My_Stack.Base))
             or else
              (not Stack_Grows_Down and then
!                not (Frame_Address >= My_Stack.Base))
           then
              --  The returned Base is lower than the stored one, so assume that
              --  the original one wasn't right and use the current Frame_Address
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stchop.ads gcc-14.1.0/gcc/ada/libgnat/s-stchop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stchop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stchop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stchop__limit.ads gcc-14.1.0/gcc/ada/libgnat/s-stchop__limit.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stchop__limit.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stchop__limit.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stchop__vxworks.adb gcc-14.1.0/gcc/ada/libgnat/s-stchop__vxworks.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stchop__vxworks.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stchop__vxworks.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stoele.adb gcc-14.1.0/gcc/ada/libgnat/s-stoele.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stoele.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stoele.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,129 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Ada.Unchecked_Conversion;
! 
! package body System.Storage_Elements is
! 
!    pragma Suppress (All_Checks);
! 
!    --  Conversion to/from address
! 
!    --  Note qualification below of To_Address to avoid ambiguities systems
!    --  where Address is a visible integer type.
! 
!    function To_Address is
!      new Ada.Unchecked_Conversion (Storage_Offset, Address);
!    function To_Offset  is
!      new Ada.Unchecked_Conversion (Address, Storage_Offset);
! 
!    --  Conversion to/from integers
! 
!    --  These functions must be place first because they are inlined_always
!    --  and are used and inlined in other subprograms defined in this unit.
! 
!    ----------------
!    -- To_Address --
!    ----------------
! 
!    function To_Address (Value : Integer_Address) return Address is
!    begin
!       return Address (Value);
!    end To_Address;
! 
!    ----------------
!    -- To_Integer --
!    ----------------
! 
!    function To_Integer (Value : Address) return Integer_Address is
!    begin
!       return Integer_Address (Value);
!    end To_Integer;
! 
!    --  Address arithmetic
! 
!    ---------
!    -- "+" --
!    ---------
! 
!    function "+" (Left : Address; Right : Storage_Offset) return Address is
!    begin
!       return Storage_Elements.To_Address
!         (To_Integer (Left) + To_Integer (To_Address (Right)));
!    end "+";
! 
!    function "+" (Left : Storage_Offset; Right : Address) return Address is
!    begin
!       return Storage_Elements.To_Address
!         (To_Integer (To_Address (Left)) + To_Integer (Right));
!    end "+";
! 
!    ---------
!    -- "-" --
!    ---------
! 
!    function "-" (Left : Address; Right : Storage_Offset) return Address is
!    begin
!       return Storage_Elements.To_Address
!         (To_Integer (Left) - To_Integer (To_Address (Right)));
!    end "-";
! 
!    function "-" (Left, Right : Address) return Storage_Offset is
!    begin
!       return To_Offset (Storage_Elements.To_Address
!                          (To_Integer (Left) - To_Integer (Right)));
!    end "-";
! 
!    -----------
!    -- "mod" --
!    -----------
! 
!    function "mod"
!      (Left  : Address;
!       Right : Storage_Offset) return Storage_Offset
!    is
!    begin
!       if Right > 0 then
!          return Storage_Offset
!            (To_Integer (Left) mod Integer_Address (Right));
! 
!          --  The negative case makes no sense since it is a case of a mod where
!          --  the left argument is unsigned and the right argument is signed. In
!          --  accordance with the (spirit of the) permission of RM 13.7.1(16),
!          --  we raise CE, and also include the zero case here. Yes, the RM says
!          --  PE, but this really is so obviously more like a constraint error.
! 
!       else
!          raise Constraint_Error;
!       end if;
!    end "mod";
  
! end System.Storage_Elements;
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package does not require a body. We provide a dummy file containing a
! --  No_Body pragma so that previous versions of the body (which did exist) will
! --  not interfere.
  
! pragma No_Body;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stoele.ads gcc-14.1.0/gcc/ada/libgnat/s-stoele.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stoele.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stoele.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 37,62 ****
  --  extra declarations that can be introduced into System using Extend_System.
  --  It is a good idea to avoid use clauses for this package.
  
! package System.Storage_Elements is
     pragma Pure;
     --  Note that we take advantage of the implementation permission to make
     --  this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005,
     --  this is Pure in any case (AI-362).
  
!    pragma Annotate (GNATprove, Always_Return, Storage_Elements);
! 
!    --  We also add the pragma Pure_Function to the operations in this package,
!    --  because otherwise functions with parameters derived from Address are
!    --  treated as non-pure by the back-end (see exp_ch6.adb). This is because
!    --  in many cases such a parameter is used to hide read/out access to
!    --  objects, and it would be unsafe to treat such functions as pure.
  
!    type Storage_Offset is range
!      -(2 ** (Integer'(Standard'Address_Size) - 1)) ..
!      +(2 ** (Integer'(Standard'Address_Size) - 1)) - Long_Long_Integer'(1);
!    --  Note: the reason for the Long_Long_Integer qualification here is to
!    --  avoid a bogus ambiguity when this unit is analyzed in an rtsfind
!    --  context.
  
     subtype Storage_Count is Storage_Offset range 0 .. Storage_Offset'Last;
  
--- 37,54 ----
  --  extra declarations that can be introduced into System using Extend_System.
  --  It is a good idea to avoid use clauses for this package.
  
! package System.Storage_Elements with
!   Always_Terminates
! is
     pragma Pure;
     --  Note that we take advantage of the implementation permission to make
     --  this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005,
     --  this is Pure in any case (AI-362).
  
!    pragma No_Elaboration_Code_All;
!    --  Allow the use of that restriction in units that WITH this unit
  
!    type Storage_Offset is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
  
     subtype Storage_Count is Storage_Offset range 0 .. Storage_Offset'Last;
  
*************** package System.Storage_Elements is
*** 73,116 ****
     --  Address arithmetic
  
     function "+" (Left : Address; Right : Storage_Offset) return Address;
-    pragma Convention (Intrinsic, "+");
-    pragma Inline_Always ("+");
-    pragma Pure_Function ("+");
- 
     function "+" (Left : Storage_Offset; Right : Address) return Address;
!    pragma Convention (Intrinsic, "+");
!    pragma Inline_Always ("+");
!    pragma Pure_Function ("+");
  
     function "-" (Left : Address; Right : Storage_Offset) return Address;
-    pragma Convention (Intrinsic, "-");
-    pragma Inline_Always ("-");
-    pragma Pure_Function ("-");
- 
     function "-" (Left, Right : Address) return Storage_Offset;
!    pragma Convention (Intrinsic, "-");
!    pragma Inline_Always ("-");
!    pragma Pure_Function ("-");
  
     function "mod"
       (Left  : Address;
!       Right : Storage_Offset) return  Storage_Offset;
!    pragma Convention (Intrinsic, "mod");
!    pragma Inline_Always ("mod");
!    pragma Pure_Function ("mod");
  
     --  Conversion to/from integers
  
     type Integer_Address is mod Memory_Size;
  
     function To_Address (Value : Integer_Address) return Address;
!    pragma Convention (Intrinsic, To_Address);
!    pragma Inline_Always (To_Address);
!    pragma Pure_Function (To_Address);
  
     function To_Integer (Value : Address) return Integer_Address;
!    pragma Convention (Intrinsic, To_Integer);
!    pragma Inline_Always (To_Integer);
!    pragma Pure_Function (To_Integer);
  
  end System.Storage_Elements;
--- 65,90 ----
     --  Address arithmetic
  
     function "+" (Left : Address; Right : Storage_Offset) return Address;
     function "+" (Left : Storage_Offset; Right : Address) return Address;
!    pragma Import (Intrinsic, "+");
  
     function "-" (Left : Address; Right : Storage_Offset) return Address;
     function "-" (Left, Right : Address) return Storage_Offset;
!    pragma Import (Intrinsic, "-");
  
     function "mod"
       (Left  : Address;
!       Right : Storage_Offset) return Storage_Offset;
!    pragma Import (Intrinsic, "mod");
  
     --  Conversion to/from integers
  
     type Integer_Address is mod Memory_Size;
  
     function To_Address (Value : Integer_Address) return Address;
!    pragma Import (Intrinsic, To_Address);
  
     function To_Integer (Value : Address) return Integer_Address;
!    pragma Import (Intrinsic, To_Integer);
  
  end System.Storage_Elements;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stopoo.adb gcc-14.1.0/gcc/ada/libgnat/s-stopoo.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stopoo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stopoo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stopoo.ads gcc-14.1.0/gcc/ada/libgnat/s-stopoo.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stopoo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stopoo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stposu.adb gcc-14.1.0/gcc/ada/libgnat/s-stposu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stposu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stposu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stposu.ads gcc-14.1.0/gcc/ada/libgnat/s-stposu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stposu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stposu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stratt.adb gcc-14.1.0/gcc/ada/libgnat/s-stratt.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stratt.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stratt.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stratt.ads gcc-14.1.0/gcc/ada/libgnat/s-stratt.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-stratt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-stratt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package System.Stream_Attributes is
*** 67,75 ****
     --  (double address) form. The following types are used to hold access
     --  values using unchecked conversions.
  
!    type Thin_Pointer is record
!       P1 : System.Address;
!    end record;
  
     type Fat_Pointer is record
        P1 : System.Address;
--- 67,73 ----
     --  (double address) form. The following types are used to hold access
     --  values using unchecked conversions.
  
!    subtype Thin_Pointer is System.Address;
  
     type Fat_Pointer is record
        P1 : System.Address;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-stratt__cheri.adb gcc-14.1.0/gcc/ada/libgnat/s-stratt__cheri.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-stratt__cheri.adb	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-stratt__cheri.adb	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1019 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --             S Y S T E M . S T R E A M _ A T T R I B U T E S              --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This is the CHERI variant of this package
+ 
+ with Ada.IO_Exceptions;
+ with Ada.Streams; use Ada.Streams;
+ with Ada.Unchecked_Conversion;
+ with System.Stream_Attributes.XDR;
+ 
+ package body System.Stream_Attributes is
+ 
+    XDR_Stream : constant Integer;
+    pragma Import (C, XDR_Stream, "__gl_xdr_stream");
+    --  This imported value is used to determine whether the build had the
+    --  binder switch "-xdr" present which enables XDR streaming and sets this
+    --  flag to 1.
+ 
+    function XDR_Support return Boolean is (XDR_Stream = 1);
+    pragma Inline (XDR_Support);
+    --  Return True if XDR streaming should be used. Note that 128-bit integers
+    --  are not supported by the XDR protocol and will raise Device_Error.
+ 
+    Err : exception renames Ada.IO_Exceptions.End_Error;
+    --  Exception raised if insufficient data read (note that the RM implies
+    --  that Data_Error might be the appropriate choice, but AI95-00132
+    --  decides with a binding interpretation that End_Error is preferred).
+ 
+    SU : constant := System.Storage_Unit;
+ 
+    subtype SEA is Ada.Streams.Stream_Element_Array;
+    subtype SEO is Ada.Streams.Stream_Element_Offset;
+ 
+    generic function UC renames Ada.Unchecked_Conversion;
+ 
+    --  Subtypes used to define Stream_Element_Array values that map
+    --  into the elementary types, using unchecked conversion.
+ 
+    Thin_Pointer_Size : constant := System.Address'Size;
+    Fat_Pointer_Size  : constant := System.Address'Size * 2;
+ 
+    subtype S_AD   is SEA (1 .. (Fat_Pointer_Size              + SU - 1) / SU);
+    subtype S_AS   is SEA (1 .. (Thin_Pointer_Size             + SU - 1) / SU);
+    subtype S_B    is SEA (1 .. (Boolean'Size                  + SU - 1) / SU);
+    subtype S_C    is SEA (1 .. (Character'Size                + SU - 1) / SU);
+    subtype S_F    is SEA (1 .. (Float'Size                    + SU - 1) / SU);
+    subtype S_I    is SEA (1 .. (Integer'Size                  + SU - 1) / SU);
+    subtype S_I24  is SEA (1 .. (Integer_24'Size               + SU - 1) / SU);
+    subtype S_LF   is SEA (1 .. (Long_Float'Size               + SU - 1) / SU);
+    subtype S_LI   is SEA (1 .. (Long_Integer'Size             + SU - 1) / SU);
+    subtype S_LLF  is SEA (1 .. (Long_Long_Float'Size          + SU - 1) / SU);
+    subtype S_LLI  is SEA (1 .. (Long_Long_Integer'Size        + SU - 1) / SU);
+    subtype S_LLLI is SEA (1 .. (Long_Long_Long_Integer'Size   + SU - 1) / SU);
+    subtype S_LLLU is
+                   SEA (1 .. (UST.Long_Long_Long_Unsigned'Size + SU - 1) / SU);
+    subtype S_LLU  is SEA (1 .. (UST.Long_Long_Unsigned'Size   + SU - 1) / SU);
+    subtype S_LU   is SEA (1 .. (UST.Long_Unsigned'Size        + SU - 1) / SU);
+    subtype S_SF   is SEA (1 .. (Short_Float'Size              + SU - 1) / SU);
+    subtype S_SI   is SEA (1 .. (Short_Integer'Size            + SU - 1) / SU);
+    subtype S_SSI  is SEA (1 .. (Short_Short_Integer'Size      + SU - 1) / SU);
+    subtype S_SSU  is SEA (1 .. (UST.Short_Short_Unsigned'Size + SU - 1) / SU);
+    subtype S_SU   is SEA (1 .. (UST.Short_Unsigned'Size       + SU - 1) / SU);
+    subtype S_U    is SEA (1 .. (UST.Unsigned'Size             + SU - 1) / SU);
+    subtype S_U24  is SEA (1 .. (Unsigned_24'Size              + SU - 1) / SU);
+    subtype S_WC   is SEA (1 .. (Wide_Character'Size           + SU - 1) / SU);
+    subtype S_WWC  is SEA (1 .. (Wide_Wide_Character'Size      + SU - 1) / SU);
+ 
+    --  Unchecked conversions from the elementary type to the stream type
+ 
+    function From_AD   is new UC (Fat_Pointer,                 S_AD);
+    function From_AS   is new UC (Thin_Pointer,                S_AS);
+    function From_F    is new UC (Float,                       S_F);
+    function From_I    is new UC (Integer,                     S_I);
+    function From_I24  is new UC (Integer_24,                  S_I24);
+    function From_LF   is new UC (Long_Float,                  S_LF);
+    function From_LI   is new UC (Long_Integer,                S_LI);
+    function From_LLF  is new UC (Long_Long_Float,             S_LLF);
+    function From_LLI  is new UC (Long_Long_Integer,           S_LLI);
+    function From_LLLI is new UC (Long_Long_Long_Integer,      S_LLLI);
+    function From_LLLU is new UC (UST.Long_Long_Long_Unsigned, S_LLLU);
+    function From_LLU  is new UC (UST.Long_Long_Unsigned,      S_LLU);
+    function From_LU   is new UC (UST.Long_Unsigned,           S_LU);
+    function From_SF   is new UC (Short_Float,                 S_SF);
+    function From_SI   is new UC (Short_Integer,               S_SI);
+    function From_SSI  is new UC (Short_Short_Integer,         S_SSI);
+    function From_SSU  is new UC (UST.Short_Short_Unsigned,    S_SSU);
+    function From_SU   is new UC (UST.Short_Unsigned,          S_SU);
+    function From_U    is new UC (UST.Unsigned,                S_U);
+    function From_U24  is new UC (Unsigned_24,                 S_U24);
+    function From_WC   is new UC (Wide_Character,              S_WC);
+    function From_WWC  is new UC (Wide_Wide_Character,         S_WWC);
+ 
+    --  Unchecked conversions from the stream type to elementary type
+ 
+    function To_F    is new UC (S_F,    Float);
+    function To_I    is new UC (S_I,    Integer);
+    function To_I24  is new UC (S_I24,  Integer_24);
+    function To_LF   is new UC (S_LF,   Long_Float);
+    function To_LI   is new UC (S_LI,   Long_Integer);
+    function To_LLF  is new UC (S_LLF,  Long_Long_Float);
+    function To_LLI  is new UC (S_LLI,  Long_Long_Integer);
+    function To_LLLI is new UC (S_LLLI, Long_Long_Long_Integer);
+    function To_LLLU is new UC (S_LLLU, UST.Long_Long_Long_Unsigned);
+    function To_LLU  is new UC (S_LLU,  UST.Long_Long_Unsigned);
+    function To_LU   is new UC (S_LU,   UST.Long_Unsigned);
+    function To_SF   is new UC (S_SF,   Short_Float);
+    function To_SI   is new UC (S_SI,   Short_Integer);
+    function To_SSI  is new UC (S_SSI,  Short_Short_Integer);
+    function To_SSU  is new UC (S_SSU,  UST.Short_Short_Unsigned);
+    function To_SU   is new UC (S_SU,   UST.Short_Unsigned);
+    function To_U    is new UC (S_U,    UST.Unsigned);
+    function To_U24  is new UC (S_U24,  Unsigned_24);
+    function To_WC   is new UC (S_WC,   Wide_Character);
+    function To_WWC  is new UC (S_WWC,  Wide_Wide_Character);
+ 
+    -----------------
+    -- Block_IO_OK --
+    -----------------
+ 
+    function Block_IO_OK return Boolean is
+    begin
+       return not XDR_Support;
+    end Block_IO_OK;
+ 
+    ----------
+    -- I_AD --
+    ----------
+ 
+    function I_AD (Stream : not null access RST) return Fat_Pointer is
+       pragma Unreferenced (Stream);
+    begin
+       raise Program_Error with "Operation not supported on CHERI targets";
+ 
+       return Fat_Pointer'(Null_Address, Null_Address);
+    end I_AD;
+ 
+    ----------
+    -- I_AS --
+    ----------
+ 
+    function I_AS (Stream : not null access RST) return Thin_Pointer is
+       pragma Unreferenced (Stream);
+    begin
+       raise Program_Error with "Operation not supported on CHERI targets";
+ 
+       return Null_Address;
+    end I_AS;
+ 
+    ---------
+    -- I_B --
+    ---------
+ 
+    function I_B (Stream : not null access RST) return Boolean is
+       T : S_B;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_B (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return Boolean'Val (T (1));
+       end if;
+    end I_B;
+ 
+    ---------
+    -- I_C --
+    ---------
+ 
+    function I_C (Stream : not null access RST) return Character is
+       T : S_C;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_C (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return Character'Val (T (1));
+       end if;
+    end I_C;
+ 
+    ---------
+    -- I_F --
+    ---------
+ 
+    function I_F (Stream : not null access RST) return Float is
+       T : S_F;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_F (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_F (T);
+       end if;
+    end I_F;
+ 
+    ---------
+    -- I_I --
+    ---------
+ 
+    function I_I (Stream : not null access RST) return Integer is
+       T : S_I;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_I (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_I (T);
+       end if;
+    end I_I;
+ 
+    -----------
+    -- I_I24 --
+    -----------
+ 
+    function I_I24 (Stream : not null access RST) return Integer_24 is
+       T : S_I24;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_I24 (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_I24 (T);
+       end if;
+    end I_I24;
+ 
+    ----------
+    -- I_LF --
+    ----------
+ 
+    function I_LF (Stream : not null access RST) return Long_Float is
+       T : S_LF;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_LF (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_LF (T);
+       end if;
+    end I_LF;
+ 
+    ----------
+    -- I_LI --
+    ----------
+ 
+    function I_LI (Stream : not null access RST) return Long_Integer is
+       T : S_LI;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_LI (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_LI (T);
+       end if;
+    end I_LI;
+ 
+    -----------
+    -- I_LLF --
+    -----------
+ 
+    function I_LLF (Stream : not null access RST) return Long_Long_Float is
+       T : S_LLF;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_LLF (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_LLF (T);
+       end if;
+    end I_LLF;
+ 
+    -----------
+    -- I_LLI --
+    -----------
+ 
+    function I_LLI (Stream : not null access RST) return Long_Long_Integer is
+       T : S_LLI;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_LLI (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_LLI (T);
+       end if;
+    end I_LLI;
+ 
+    ------------
+    -- I_LLLI --
+    ------------
+ 
+    function I_LLLI (Stream : not null access RST) return Long_Long_Long_Integer
+    is
+       T : S_LLLI;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          raise Ada.IO_Exceptions.Device_Error;
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_LLLI (T);
+       end if;
+    end I_LLLI;
+ 
+    ------------
+    -- I_LLLU --
+    ------------
+ 
+    function I_LLLU
+      (Stream : not null access RST) return UST.Long_Long_Long_Unsigned
+    is
+       T : S_LLLU;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          raise Ada.IO_Exceptions.Device_Error;
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_LLLU (T);
+       end if;
+    end I_LLLU;
+ 
+    -----------
+    -- I_LLU --
+    -----------
+ 
+    function I_LLU
+      (Stream : not null access RST) return UST.Long_Long_Unsigned
+    is
+       T : S_LLU;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_LLU (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_LLU (T);
+       end if;
+    end I_LLU;
+ 
+    ----------
+    -- I_LU --
+    ----------
+ 
+    function I_LU (Stream : not null access RST) return UST.Long_Unsigned is
+       T : S_LU;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_LU (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_LU (T);
+       end if;
+    end I_LU;
+ 
+    ----------
+    -- I_SF --
+    ----------
+ 
+    function I_SF (Stream : not null access RST) return Short_Float is
+       T : S_SF;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_SF (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_SF (T);
+       end if;
+    end I_SF;
+ 
+    ----------
+    -- I_SI --
+    ----------
+ 
+    function I_SI (Stream : not null access RST) return Short_Integer is
+       T : S_SI;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_SI (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_SI (T);
+       end if;
+    end I_SI;
+ 
+    -----------
+    -- I_SSI --
+    -----------
+ 
+    function I_SSI (Stream : not null access RST) return Short_Short_Integer is
+       T : S_SSI;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_SSI (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_SSI (T);
+       end if;
+    end I_SSI;
+ 
+    -----------
+    -- I_SSU --
+    -----------
+ 
+    function I_SSU
+      (Stream : not null access RST) return UST.Short_Short_Unsigned
+    is
+       T : S_SSU;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_SSU (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_SSU (T);
+       end if;
+    end I_SSU;
+ 
+    ----------
+    -- I_SU --
+    ----------
+ 
+    function I_SU (Stream : not null access RST) return UST.Short_Unsigned is
+       T : S_SU;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_SU (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_SU (T);
+       end if;
+    end I_SU;
+ 
+    ---------
+    -- I_U --
+    ---------
+ 
+    function I_U (Stream : not null access RST) return UST.Unsigned is
+       T : S_U;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_U (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_U (T);
+       end if;
+    end I_U;
+ 
+    -----------
+    -- I_U24 --
+    -----------
+ 
+    function I_U24 (Stream : not null access RST) return Unsigned_24 is
+       T : S_U24;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_U24 (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_U24 (T);
+       end if;
+    end I_U24;
+ 
+    ----------
+    -- I_WC --
+    ----------
+ 
+    function I_WC (Stream : not null access RST) return Wide_Character is
+       T : S_WC;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_WC (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_WC (T);
+       end if;
+    end I_WC;
+ 
+    -----------
+    -- I_WWC --
+    -----------
+ 
+    function I_WWC (Stream : not null access RST) return Wide_Wide_Character is
+       T : S_WWC;
+       L : SEO;
+ 
+    begin
+       if XDR_Support then
+          return XDR.I_WWC (Stream);
+       end if;
+ 
+       Ada.Streams.Read (Stream.all, T, L);
+ 
+       if L < T'Last then
+          raise Err;
+       else
+          return To_WWC (T);
+       end if;
+    end I_WWC;
+ 
+    ----------
+    -- W_AD --
+    ----------
+ 
+    procedure W_AD (Stream : not null access RST; Item : Fat_Pointer) is
+       T : constant S_AD := From_AD (Item);
+    begin
+       if XDR_Support then
+          XDR.W_AD (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, T);
+    end W_AD;
+ 
+    ----------
+    -- W_AS --
+    ----------
+ 
+    procedure W_AS (Stream : not null access RST; Item : Thin_Pointer) is
+       T : constant S_AS := From_AS (Item);
+    begin
+       if XDR_Support then
+          XDR.W_AS (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, T);
+    end W_AS;
+ 
+    ---------
+    -- W_B --
+    ---------
+ 
+    procedure W_B (Stream : not null access RST; Item : Boolean) is
+       T : S_B;
+    begin
+       if XDR_Support then
+          XDR.W_B (Stream, Item);
+          return;
+       end if;
+ 
+       T (1) := Boolean'Pos (Item);
+       Ada.Streams.Write (Stream.all, T);
+    end W_B;
+ 
+    ---------
+    -- W_C --
+    ---------
+ 
+    procedure W_C (Stream : not null access RST; Item : Character) is
+       T : S_C;
+    begin
+       if XDR_Support then
+          XDR.W_C (Stream, Item);
+          return;
+       end if;
+ 
+       T (1) := Character'Pos (Item);
+       Ada.Streams.Write (Stream.all, T);
+    end W_C;
+ 
+    ---------
+    -- W_F --
+    ---------
+ 
+    procedure W_F (Stream : not null access RST; Item : Float) is
+    begin
+       if XDR_Support then
+          XDR.W_F (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_F (Item));
+    end W_F;
+ 
+    ---------
+    -- W_I --
+    ---------
+ 
+    procedure W_I (Stream : not null access RST; Item : Integer) is
+    begin
+       if XDR_Support then
+          XDR.W_I (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_I (Item));
+    end W_I;
+ 
+    -----------
+    -- W_I24 --
+    -----------
+ 
+    procedure W_I24 (Stream : not null access RST; Item : Integer_24) is
+    begin
+       if XDR_Support then
+          XDR.W_I24 (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_I24 (Item));
+    end W_I24;
+ 
+    ----------
+    -- W_LF --
+    ----------
+ 
+    procedure W_LF (Stream : not null access RST; Item : Long_Float) is
+    begin
+       if XDR_Support then
+          XDR.W_LF (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_LF (Item));
+    end W_LF;
+ 
+    ----------
+    -- W_LI --
+    ----------
+ 
+    procedure W_LI (Stream : not null access RST; Item : Long_Integer) is
+    begin
+       if XDR_Support then
+          XDR.W_LI (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_LI (Item));
+    end W_LI;
+ 
+    -----------
+    -- W_LLF --
+    -----------
+ 
+    procedure W_LLF (Stream : not null access RST; Item : Long_Long_Float) is
+    begin
+       if XDR_Support then
+          XDR.W_LLF (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_LLF (Item));
+    end W_LLF;
+ 
+    -----------
+    -- W_LLI --
+    -----------
+ 
+    procedure W_LLI (Stream : not null access RST; Item : Long_Long_Integer) is
+    begin
+       if XDR_Support then
+          XDR.W_LLI (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_LLI (Item));
+    end W_LLI;
+ 
+    ------------
+    -- W_LLLI --
+    ------------
+ 
+    procedure W_LLLI
+      (Stream : not null access RST; Item : Long_Long_Long_Integer) is
+    begin
+       if XDR_Support then
+          raise Ada.IO_Exceptions.Device_Error;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_LLLI (Item));
+    end W_LLLI;
+ 
+    ------------
+    -- W_LLLU --
+    ------------
+ 
+    procedure W_LLLU
+      (Stream : not null access RST; Item : UST.Long_Long_Long_Unsigned)
+    is
+    begin
+       if XDR_Support then
+          raise Ada.IO_Exceptions.Device_Error;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_LLLU (Item));
+    end W_LLLU;
+ 
+    -----------
+    -- W_LLU --
+    -----------
+ 
+    procedure W_LLU
+      (Stream : not null access RST; Item : UST.Long_Long_Unsigned)
+    is
+    begin
+       if XDR_Support then
+          XDR.W_LLU (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_LLU (Item));
+    end W_LLU;
+ 
+    ----------
+    -- W_LU --
+    ----------
+ 
+    procedure W_LU (Stream : not null access RST; Item : UST.Long_Unsigned) is
+    begin
+       if XDR_Support then
+          XDR.W_LU (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_LU (Item));
+    end W_LU;
+ 
+    ----------
+    -- W_SF --
+    ----------
+ 
+    procedure W_SF (Stream : not null access RST; Item : Short_Float) is
+    begin
+       if XDR_Support then
+          XDR.W_SF (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_SF (Item));
+    end W_SF;
+ 
+    ----------
+    -- W_SI --
+    ----------
+ 
+    procedure W_SI (Stream : not null access RST; Item : Short_Integer) is
+    begin
+       if XDR_Support then
+          XDR.W_SI (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_SI (Item));
+    end W_SI;
+ 
+    -----------
+    -- W_SSI --
+    -----------
+ 
+    procedure W_SSI
+      (Stream : not null access RST; Item : Short_Short_Integer)
+    is
+    begin
+       if XDR_Support then
+          XDR.W_SSI (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_SSI (Item));
+    end W_SSI;
+ 
+    -----------
+    -- W_SSU --
+    -----------
+ 
+    procedure W_SSU
+      (Stream : not null access RST; Item : UST.Short_Short_Unsigned)
+    is
+    begin
+       if XDR_Support then
+          XDR.W_SSU (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_SSU (Item));
+    end W_SSU;
+ 
+    ----------
+    -- W_SU --
+    ----------
+ 
+    procedure W_SU (Stream : not null access RST; Item : UST.Short_Unsigned) is
+    begin
+       if XDR_Support then
+          XDR.W_SU (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_SU (Item));
+    end W_SU;
+ 
+    ---------
+    -- W_U --
+    ---------
+ 
+    procedure W_U (Stream : not null access RST; Item : UST.Unsigned) is
+    begin
+       if XDR_Support then
+          XDR.W_U (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_U (Item));
+    end W_U;
+ 
+    -----------
+    -- W_U24 --
+    -----------
+ 
+    procedure W_U24 (Stream : not null access RST; Item : Unsigned_24) is
+    begin
+       if XDR_Support then
+          XDR.W_U24 (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_U24 (Item));
+    end W_U24;
+ 
+    ----------
+    -- W_WC --
+    ----------
+ 
+    procedure W_WC (Stream : not null access RST; Item : Wide_Character) is
+    begin
+       if XDR_Support then
+          XDR.W_WC (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_WC (Item));
+    end W_WC;
+ 
+    -----------
+    -- W_WWC --
+    -----------
+ 
+    procedure W_WWC
+      (Stream : not null access RST; Item : Wide_Wide_Character)
+    is
+    begin
+       if XDR_Support then
+          XDR.W_WWC (Stream, Item);
+          return;
+       end if;
+ 
+       Ada.Streams.Write (Stream.all, From_WWC (Item));
+    end W_WWC;
+ 
+ end System.Stream_Attributes;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-strcom.adb gcc-14.1.0/gcc/ada/libgnat/s-strcom.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-strcom.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-strcom.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.String_Compare is
*** 70,76 ****
     begin
        --  If operands are non-aligned, or length is too short, go by bytes
  
!       if (((Left or Right) and 2#11#) /= 0) or else Compare_Len < 4 then
           return Str_Compare_Bytes (Left, Right, Left_Len, Right_Len);
        end if;
  
--- 70,76 ----
     begin
        --  If operands are non-aligned, or length is too short, go by bytes
  
!       if ((Left or Right) and 2#11#) /= 0 or else Compare_Len < 4 then
           return Str_Compare_Bytes (Left, Right, Left_Len, Right_Len);
        end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-strcom.ads gcc-14.1.0/gcc/ada/libgnat/s-strcom.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-strcom.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-strcom.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-strhas.adb gcc-14.1.0/gcc/ada/libgnat/s-strhas.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-strhas.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-strhas.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-strhas.ads gcc-14.1.0/gcc/ada/libgnat/s-strhas.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-strhas.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-strhas.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-string.adb gcc-14.1.0/gcc/ada/libgnat/s-string.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-string.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-string.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-string.ads gcc-14.1.0/gcc/ada/libgnat/s-string.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-string.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-string.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-ststop.adb gcc-14.1.0/gcc/ada/libgnat/s-ststop.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-ststop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-ststop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-ststop.ads gcc-14.1.0/gcc/ada/libgnat/s-ststop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-ststop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-ststop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-tasloc.adb gcc-14.1.0/gcc/ada/libgnat/s-tasloc.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-tasloc.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-tasloc.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-tasloc.ads gcc-14.1.0/gcc/ada/libgnat/s-tasloc.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-tasloc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-tasloc.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-traceb.adb gcc-14.1.0/gcc/ada/libgnat/s-traceb.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-traceb.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-traceb.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-traceb.ads gcc-14.1.0/gcc/ada/libgnat/s-traceb.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-traceb.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-traceb.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-traceb__hpux.adb gcc-14.1.0/gcc/ada/libgnat/s-traceb__hpux.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-traceb__hpux.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-traceb__hpux.adb	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-traceb__mastop.adb gcc-14.1.0/gcc/ada/libgnat/s-traceb__mastop.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-traceb__mastop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-traceb__mastop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-traent.adb gcc-14.1.0/gcc/ada/libgnat/s-traent.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-traent.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-traent.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-traent.ads gcc-14.1.0/gcc/ada/libgnat/s-traent.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-traent.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-traent.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-trasym.adb gcc-14.1.0/gcc/ada/libgnat/s-trasym.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-trasym.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-trasym.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-trasym.ads gcc-14.1.0/gcc/ada/libgnat/s-trasym.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-trasym.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-trasym.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-trasym__dwarf.adb gcc-14.1.0/gcc/ada/libgnat/s-trasym__dwarf.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-trasym__dwarf.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-trasym__dwarf.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-tsmona.adb gcc-14.1.0/gcc/ada/libgnat/s-tsmona.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-tsmona.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-tsmona.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-tsmona__linux.adb gcc-14.1.0/gcc/ada/libgnat/s-tsmona__linux.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-tsmona__linux.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-tsmona__linux.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Module_Name is
*** 93,115 ****
        pragma Convention (C, link_map_acc);
  
        type link_map is record
!          l_addr : Address;
           --  Base address of the shared object
  
!          l_name : Address;
           --  Null-terminated absolute file name
  
!          l_ld   : Address;
           --  Dynamic section
  
!          l_next, l_prev : link_map_acc;
           --  Chain
        end record;
        pragma Convention (C, link_map);
  
        type r_debug_type is record
!          r_version : Integer;
!          r_map : link_map_acc;
        end record;
        pragma Convention (C, r_debug_type);
  
--- 93,122 ----
        pragma Convention (C, link_map_acc);
  
        type link_map is record
!          l_addr : aliased Address;
           --  Base address of the shared object
  
!          l_name : aliased Address;
           --  Null-terminated absolute file name
  
!          l_ld   : aliased Address;
           --  Dynamic section
  
!          l_next, l_prev : aliased link_map_acc;
           --  Chain
        end record;
        pragma Convention (C, link_map);
  
+       type r_debug_state is (RT_CONSISTENT, RT_ADD, RT_DELETE);
+       pragma Convention (C, r_debug_state);
+       pragma Unreferenced (RT_CONSISTENT, RT_ADD, RT_DELETE);
+ 
        type r_debug_type is record
!          r_version : aliased int;
!          r_map     : aliased link_map_acc;
!          r_brk     : aliased Address;
!          r_state   : aliased r_debug_state;
!          r_ldbase  : aliased Address;
        end record;
        pragma Convention (C, r_debug_type);
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-tsmona__mingw.adb gcc-14.1.0/gcc/ada/libgnat/s-tsmona__mingw.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-tsmona__mingw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-tsmona__mingw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2023, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2024, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-unstyp.ads gcc-14.1.0/gcc/ada/libgnat/s-unstyp.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-unstyp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-unstyp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-utf_32.adb gcc-14.1.0/gcc/ada/libgnat/s-utf_32.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-utf_32.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-utf_32.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-utf_32.ads gcc-14.1.0/gcc/ada/libgnat/s-utf_32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-utf_32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-utf_32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vade128.ads gcc-14.1.0/gcc/ada/libgnat/s-vade128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vade128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vade128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vade32.ads gcc-14.1.0/gcc/ada/libgnat/s-vade32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vade32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vade32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vade64.ads gcc-14.1.0/gcc/ada/libgnat/s-vade64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vade64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vade64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vaen16.ads gcc-14.1.0/gcc/ada/libgnat/s-vaen16.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vaen16.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vaen16.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vaen32.ads gcc-14.1.0/gcc/ada/libgnat/s-vaen32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vaen32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vaen32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vaenu8.ads gcc-14.1.0/gcc/ada/libgnat/s-vaenu8.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vaenu8.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vaenu8.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vafi128.ads gcc-14.1.0/gcc/ada/libgnat/s-vafi128.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vafi128.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vafi128.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vafi32.ads gcc-14.1.0/gcc/ada/libgnat/s-vafi32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vafi32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vafi32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vafi64.ads gcc-14.1.0/gcc/ada/libgnat/s-vafi64.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vafi64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vafi64.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vaispe.adb gcc-14.1.0/gcc/ada/libgnat/s-vaispe.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-vaispe.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vaispe.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Value_I_Spec is
*** 71,84 ****
     begin
        Prove_Conversion_Is_Identity (Val, Uval);
        pragma Assert
!         (Uns_Params.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last)));
        pragma Assert
!         (Uns_Params.Scan_Split_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
!       Uns_Params.Lemma_Exponent_Unsigned_Ghost_Base (Uval, 0, 10);
        pragma Assert
!         (Uns_Params.Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
        pragma Assert (Only_Space_Ghost
!         (Str, Uns_Params.Raw_Unsigned_Last_Ghost
                          (Str, Fst_Num, Str'Last), Str'Last));
        pragma Assert (Is_Integer_Ghost (Str));
        pragma Assert (Is_Value_Integer_Ghost (Str, Val));
--- 71,84 ----
     begin
        Prove_Conversion_Is_Identity (Val, Uval);
        pragma Assert
!         (U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last)));
        pragma Assert
!         (U_Spec.Scan_Split_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
!       U_Spec.Lemma_Exponent_Unsigned_Ghost_Base (Uval, 0, 10);
        pragma Assert
!         (U_Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
        pragma Assert (Only_Space_Ghost
!         (Str, U_Spec.Raw_Unsigned_Last_Ghost
                          (Str, Fst_Num, Str'Last), Str'Last));
        pragma Assert (Is_Integer_Ghost (Str));
        pragma Assert (Is_Value_Integer_Ghost (Str, Val));
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vaispe.ads gcc-14.1.0/gcc/ada/libgnat/s-vaispe.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vaispe.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vaispe.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 44,50 ****
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Val_Util; use System.Val_Util;
  
  generic
  
--- 44,51 ----
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Value_U_Spec;
! with System.Val_Spec; use System.Val_Spec;
  
  generic
  
*************** generic
*** 52,71 ****
  
     type Uns is mod <>;
  
!    --  Additional parameters for specification subprograms on modular Unsigned
!    --  integers.
  
!    with package Uns_Params is new System.Val_Util.Uns_Params
!      (Uns => Uns, others => <>)
!    with Ghost;
  
  package System.Value_I_Spec with
     Ghost,
     SPARK_Mode,
!    Annotate => (GNATprove, Always_Return)
  is
     pragma Preelaborate;
!    use all type Uns_Params.Uns_Option;
  
     function Uns_Is_Valid_Int (Minus : Boolean; Uval : Uns) return Boolean is
       (if Minus then Uval <= Uns (Int'Last) + 1
--- 53,69 ----
  
     type Uns is mod <>;
  
!    --  Additional parameters for ghost subprograms used inside contracts
  
!    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
  
  package System.Value_I_Spec with
     Ghost,
     SPARK_Mode,
!    Always_Terminates
  is
     pragma Preelaborate;
!    use all type U_Spec.Uns_Option;
  
     function Uns_Is_Valid_Int (Minus : Boolean; Uval : Uns) return Boolean is
       (if Minus then Uval <= Uns (Int'Last) + 1
*************** is
*** 113,128 ****
          Fst_Num   : constant Positive :=
            (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1 else Non_Blank);
        begin
!         Uns_Params.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last))
!           and then Uns_Params.Raw_Unsigned_No_Overflow_Ghost
               (Str, Fst_Num, Str'Last)
            and then
              Uns_Is_Valid_Int
                (Minus => Str (Non_Blank) = '-',
!                Uval  => Uns_Params.Scan_Raw_Unsigned_Ghost
                   (Str, Fst_Num, Str'Last))
            and then Only_Space_Ghost
!             (Str, Uns_Params.Raw_Unsigned_Last_Ghost
               (Str, Fst_Num, Str'Last), Str'Last))
     with
       Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
--- 111,126 ----
          Fst_Num   : constant Positive :=
            (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1 else Non_Blank);
        begin
!         U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last))
!           and then U_Spec.Raw_Unsigned_No_Overflow_Ghost
               (Str, Fst_Num, Str'Last)
            and then
              Uns_Is_Valid_Int
                (Minus => Str (Non_Blank) = '-',
!                Uval  => U_Spec.Scan_Raw_Unsigned_Ghost
                   (Str, Fst_Num, Str'Last))
            and then Only_Space_Ghost
!             (Str, U_Spec.Raw_Unsigned_Last_Ghost
               (Str, Fst_Num, Str'Last), Str'Last))
     with
       Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
*************** is
*** 140,146 ****
          Fst_Num   : constant Positive :=
            (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1 else Non_Blank);
          Uval      : constant Uns :=
!           Uns_Params.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Str'Last);
        begin
          Is_Int_Of_Uns (Minus => Str (Non_Blank) = '-',
                         Uval  => Uval,
--- 138,144 ----
          Fst_Num   : constant Positive :=
            (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1 else Non_Blank);
          Uval      : constant Uns :=
!           U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Str'Last);
        begin
          Is_Int_Of_Uns (Minus => Str (Non_Blank) = '-',
                         Uval  => Uval,
*************** is
*** 160,189 ****
         and then Str'Length >= 2
         and then Str (Str'First) in ' ' | '-'
         and then (Str (Str'First) = '-') = (Val < 0)
!        and then Uns_Params.Only_Decimal_Ghost (Str, Str'First + 1, Str'Last)
!        and then Uns_Params.Scan_Based_Number_Ghost
           (Str, Str'First + 1, Str'Last)
!          = Uns_Params.Wrap_Option (Abs_Uns_Of_Int (Val)),
       Post => Is_Integer_Ghost (Slide_If_Necessary (Str))
         and then Is_Value_Integer_Ghost (Str, Val);
     --  Ghost lemma used in the proof of 'Image implementation, to prove that
     --  the result of Value_Integer on a decimal string is the same as the
     --  signing the result of Scan_Based_Number_Ghost.
  
-    --  Bundle Int type with other types, constants and subprograms used in
-    --  ghost code, so that this package can be instantiated once and used
-    --  multiple times as generic formal for a given Int type.
- 
-    package Int_Params is new System.Val_Util.Int_Params
-      (Uns                             => Uns,
-       Int                             => Int,
-       P_Uns_Params                    => Uns_Params,
-       P_Is_Integer_Ghost              => Is_Integer_Ghost,
-       P_Is_Value_Integer_Ghost        => Is_Value_Integer_Ghost,
-       P_Is_Int_Of_Uns                 => Is_Int_Of_Uns,
-       P_Abs_Uns_Of_Int                => Abs_Uns_Of_Int,
-       P_Prove_Scan_Only_Decimal_Ghost => Prove_Scan_Only_Decimal_Ghost);
- 
  private
  
     ----------------
--- 158,173 ----
         and then Str'Length >= 2
         and then Str (Str'First) in ' ' | '-'
         and then (Str (Str'First) = '-') = (Val < 0)
!        and then U_Spec.Only_Decimal_Ghost (Str, Str'First + 1, Str'Last)
!        and then U_Spec.Scan_Based_Number_Ghost
           (Str, Str'First + 1, Str'Last)
!          = U_Spec.Wrap_Option (Abs_Uns_Of_Int (Val)),
       Post => Is_Integer_Ghost (Slide_If_Necessary (Str))
         and then Is_Value_Integer_Ghost (Str, Val);
     --  Ghost lemma used in the proof of 'Image implementation, to prove that
     --  the result of Value_Integer on a decimal string is the same as the
     --  signing the result of Scan_Based_Number_Ghost.
  
  private
  
     ----------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valboo.adb gcc-14.1.0/gcc/ada/libgnat/s-valboo.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valboo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valboo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 55,61 ****
     begin
        Normalize_String (S, F, L);
  
!       pragma Assert (F = System.Val_Util.First_Non_Space_Ghost
                       (S, Str'First, Str'Last));
  
        if S (F .. L) = "TRUE" then
--- 55,61 ----
     begin
        Normalize_String (S, F, L);
  
!       pragma Assert (F = System.Val_Spec.First_Non_Space_Ghost
                       (S, Str'First, Str'Last));
  
        if S (F .. L) = "TRUE" then
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valboo.ads gcc-14.1.0/gcc/ada/libgnat/s-valboo.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valboo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valboo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 40,89 ****
                           Contract_Cases => Ignore,
                           Ghost          => Ignore);
  
! with System.Val_Util;
  
  package System.Val_Bool
    with SPARK_Mode
  is
     pragma Preelaborate;
  
-    function Is_Boolean_Image_Ghost (Str : String) return Boolean is
-      (not System.Val_Util.Only_Space_Ghost (Str, Str'First, Str'Last)
-         and then
-       (declare
-          F : constant Positive := System.Val_Util.First_Non_Space_Ghost
-            (Str, Str'First, Str'Last);
-        begin
-          (F <= Str'Last - 3
-           and then Str (F)     in 't' | 'T'
-           and then Str (F + 1) in 'r' | 'R'
-           and then Str (F + 2) in 'u' | 'U'
-           and then Str (F + 3) in 'e' | 'E'
-           and then
-             (if F + 3 < Str'Last then
-                System.Val_Util.Only_Space_Ghost (Str, F + 4, Str'Last)))
-            or else
-          (F <= Str'Last - 4
-           and then Str (F)     in 'f' | 'F'
-           and then Str (F + 1) in 'a' | 'A'
-           and then Str (F + 2) in 'l' | 'L'
-           and then Str (F + 3) in 's' | 'S'
-           and then Str (F + 4) in 'e' | 'E'
-           and then
-             (if F + 4 < Str'Last then
-                System.Val_Util.Only_Space_Ghost (Str, F + 5, Str'Last)))))
-    with
-      Ghost;
-    --  Ghost function that returns True iff Str is the image of a boolean, that
-    --  is "true" or "false" in any capitalization, possibly surounded by space
-    --  characters.
- 
     function Value_Boolean (Str : String) return Boolean
     with
!      Pre  => Is_Boolean_Image_Ghost (Str),
       Post =>
         Value_Boolean'Result =
!          (Str (System.Val_Util.First_Non_Space_Ghost
              (Str, Str'First, Str'Last)) in 't' | 'T');
     --  Computes Boolean'Value (Str)
  
--- 40,59 ----
                           Contract_Cases => Ignore,
                           Ghost          => Ignore);
  
! with System.Val_Spec;
  
  package System.Val_Bool
    with SPARK_Mode
  is
     pragma Preelaborate;
  
     function Value_Boolean (Str : String) return Boolean
     with
!      Pre  => System.Val_Spec.Is_Boolean_Image_Ghost (Str, True)
!        or else System.Val_Spec.Is_Boolean_Image_Ghost (Str, False),
       Post =>
         Value_Boolean'Result =
!          (Str (System.Val_Spec.First_Non_Space_Ghost
              (Str, Str'First, Str'Last)) in 't' | 'T');
     --  Computes Boolean'Value (Str)
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valcha.adb gcc-14.1.0/gcc/ada/libgnat/s-valcha.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valcha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valcha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valcha.ads gcc-14.1.0/gcc/ada/libgnat/s-valcha.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valcha.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valcha.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valflt.ads gcc-14.1.0/gcc/ada/libgnat/s-valflt.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valflt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valflt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valint.adb gcc-14.1.0/gcc/ada/libgnat/s-valint.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valint.ads gcc-14.1.0/gcc/ada/libgnat/s-valint.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,52 ****
--- 47,54 ----
  with System.Unsigned_Types;
  with System.Val_Uns;
  with System.Value_I;
+ with System.Vs_Int;
+ with System.Vs_Uns;
  
  package System.Val_Int with SPARK_Mode is
     pragma Preelaborate;
*************** package System.Val_Int with SPARK_Mode i
*** 57,63 ****
       (Int               => Integer,
        Uns               => Unsigned,
        Scan_Raw_Unsigned => Val_Uns.Scan_Raw_Unsigned,
!       Uns_Params        => System.Val_Uns.Impl.Spec.Uns_Params);
  
     procedure Scan_Integer
       (Str : String;
--- 59,66 ----
       (Int               => Integer,
        Uns               => Unsigned,
        Scan_Raw_Unsigned => Val_Uns.Scan_Raw_Unsigned,
!       U_Spec            => System.Vs_Uns.Spec,
!       Spec              => System.Vs_Int.Spec);
  
     procedure Scan_Integer
       (Str : String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vallfl.ads gcc-14.1.0/gcc/ada/libgnat/s-vallfl.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vallfl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vallfl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valllf.ads gcc-14.1.0/gcc/ada/libgnat/s-valllf.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valllf.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valllf.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vallli.adb gcc-14.1.0/gcc/ada/libgnat/s-vallli.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-vallli.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vallli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vallli.ads gcc-14.1.0/gcc/ada/libgnat/s-vallli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vallli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vallli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,52 ****
--- 47,54 ----
  with System.Unsigned_Types;
  with System.Val_LLU;
  with System.Value_I;
+ with System.Vs_LLI;
+ with System.Vs_LLU;
  
  package System.Val_LLI with SPARK_Mode is
     pragma Preelaborate;
*************** package System.Val_LLI with SPARK_Mode i
*** 57,63 ****
       (Int               => Long_Long_Integer,
        Uns               => Long_Long_Unsigned,
        Scan_Raw_Unsigned => Val_LLU.Scan_Raw_Long_Long_Unsigned,
!       Uns_Params        => System.Val_LLU.Impl.Spec.Uns_Params);
  
     procedure Scan_Long_Long_Integer
       (Str  : String;
--- 59,66 ----
       (Int               => Long_Long_Integer,
        Uns               => Long_Long_Unsigned,
        Scan_Raw_Unsigned => Val_LLU.Scan_Raw_Long_Long_Unsigned,
!       U_Spec            => System.Vs_LLU.Spec,
!       Spec              => System.Vs_LLI.Spec);
  
     procedure Scan_Long_Long_Integer
       (Str  : String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valllli.ads gcc-14.1.0/gcc/ada/libgnat/s-valllli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valllli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valllli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 47,52 ****
--- 47,54 ----
  with System.Unsigned_Types;
  with System.Val_LLLU;
  with System.Value_I;
+ with System.Vs_LLLI;
+ with System.Vs_LLLU;
  
  package System.Val_LLLI with SPARK_Mode is
     pragma Preelaborate;
*************** package System.Val_LLLI with SPARK_Mode
*** 57,63 ****
       (Int               => Long_Long_Long_Integer,
        Uns               => Long_Long_Long_Unsigned,
        Scan_Raw_Unsigned => Val_LLLU.Scan_Raw_Long_Long_Long_Unsigned,
!       Uns_Params        => System.Val_LLLU.Impl.Spec.Uns_Params);
  
     procedure Scan_Long_Long_Long_Integer
       (Str  : String;
--- 59,66 ----
       (Int               => Long_Long_Long_Integer,
        Uns               => Long_Long_Long_Unsigned,
        Scan_Raw_Unsigned => Val_LLLU.Scan_Raw_Long_Long_Long_Unsigned,
!       U_Spec            => System.Vs_LLLU.Spec,
!       Spec              => System.Vs_LLLI.Spec);
  
     procedure Scan_Long_Long_Long_Integer
       (Str  : String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vallllu.ads gcc-14.1.0/gcc/ada/libgnat/s-vallllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vallllu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vallllu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 46,58 ****
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_LLLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Long_Unsigned);
  
     procedure Scan_Raw_Long_Long_Long_Unsigned
       (Str : String;
--- 46,59 ----
  
  with System.Unsigned_Types;
  with System.Value_U;
+ with System.Vs_LLLU;
  
  package System.Val_LLLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Long_Unsigned, System.Vs_LLLU.Spec);
  
     procedure Scan_Raw_Long_Long_Long_Unsigned
       (Str : String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valllu.adb gcc-14.1.0/gcc/ada/libgnat/s-valllu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valllu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valllu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valllu.ads gcc-14.1.0/gcc/ada/libgnat/s-valllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valllu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valllu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 46,58 ****
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_LLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Unsigned);
  
     procedure Scan_Raw_Long_Long_Unsigned
       (Str : String;
--- 46,59 ----
  
  with System.Unsigned_Types;
  with System.Value_U;
+ with System.Vs_LLU;
  
  package System.Val_LLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Unsigned, System.Vs_LLU.Spec);
  
     procedure Scan_Raw_Long_Long_Unsigned
       (Str : String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valrea.adb gcc-14.1.0/gcc/ada/libgnat/s-valrea.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valrea.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valrea.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valrea.ads gcc-14.1.0/gcc/ada/libgnat/s-valrea.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valrea.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valrea.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valspe.adb gcc-14.1.0/gcc/ada/libgnat/s-valspe.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valspe.adb	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-valspe.adb	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,87 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                      S Y S T E M . V A L _ S P E C                       --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  Ghost code, loop invariants and assertions in this unit are meant for
+ --  analysis only, not for run-time checking, as it would be too costly
+ --  otherwise. This is enforced by setting the assertion policy to Ignore.
+ 
+ pragma Assertion_Policy (Ghost          => Ignore,
+                          Loop_Invariant => Ignore,
+                          Assert         => Ignore);
+ 
+ package body System.Val_Spec
+   with SPARK_Mode
+ is
+ 
+    ---------------------------
+    -- First_Non_Space_Ghost --
+    ---------------------------
+ 
+    function First_Non_Space_Ghost
+      (S        : String;
+       From, To : Integer) return Positive
+    is
+    begin
+       for J in From .. To loop
+          if S (J) /= ' ' then
+             return J;
+          end if;
+ 
+          pragma Loop_Invariant (for all K in From .. J => S (K) = ' ');
+       end loop;
+ 
+       raise Program_Error;
+    end First_Non_Space_Ghost;
+ 
+    -----------------------
+    -- Last_Number_Ghost --
+    -----------------------
+ 
+    function Last_Number_Ghost (Str : String) return Positive is
+    begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "occurs in ghost code, not executable");
+ 
+       for J in Str'Range loop
+          if Str (J) not in '0' .. '9' | '_' then
+             return J - 1;
+          end if;
+ 
+          pragma Loop_Invariant
+            (for all K in Str'First .. J => Str (K) in '0' .. '9' | '_');
+       end loop;
+ 
+       return Str'Last;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
+    end Last_Number_Ghost;
+ 
+ end System.Val_Spec;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valspe.ads gcc-14.1.0/gcc/ada/libgnat/s-valspe.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valspe.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-valspe.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,247 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                      S Y S T E M . V A L _ S P E C                       --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package provides some common specification functions used by the
+ --  s-valxxx files.
+ 
+ --  Preconditions in this unit are meant for analysis only, not for run-time
+ --  checking, so that the expected exceptions are raised. This is enforced by
+ --  setting the corresponding assertion policy to Ignore. Postconditions and
+ --  contract cases should not be executed at runtime as well, in order not to
+ --  slow down the execution of these functions.
+ 
+ pragma Assertion_Policy (Pre            => Ignore,
+                          Post           => Ignore,
+                          Contract_Cases => Ignore,
+                          Ghost          => Ignore);
+ 
+ package System.Val_Spec with
+   SPARK_Mode,
+   Pure,
+   Ghost
+ is
+    pragma Unevaluated_Use_Of_Old (Allow);
+ 
+    function Only_Space_Ghost (S : String; From, To : Integer) return Boolean is
+       (for all J in From .. To => S (J) = ' ')
+    with
+      Pre  => From > To or else (From >= S'First and then To <= S'Last),
+      Post => True;
+    --  Ghost function that returns True if S has only space characters from
+    --  index From to index To.
+ 
+    function First_Non_Space_Ghost
+      (S        : String;
+       From, To : Integer) return Positive
+    with
+      Pre  => From in S'Range
+        and then To in S'Range
+        and then not Only_Space_Ghost (S, From, To),
+      Post => First_Non_Space_Ghost'Result in From .. To
+        and then S (First_Non_Space_Ghost'Result) /= ' '
+        and then Only_Space_Ghost
+          (S, From, First_Non_Space_Ghost'Result - 1);
+    --  Ghost function that returns the index of the first non-space character
+    --  in S, which necessarily exists given the precondition on S.
+ 
+    function Is_Boolean_Image_Ghost
+      (Str : String;
+       Val : Boolean) return Boolean
+    is
+      (not Only_Space_Ghost (Str, Str'First, Str'Last)
+         and then
+       (declare
+          F : constant Positive := First_Non_Space_Ghost
+            (Str, Str'First, Str'Last);
+        begin
+          (Val
+           and then F <= Str'Last - 3
+           and then Str (F)     in 't' | 'T'
+           and then Str (F + 1) in 'r' | 'R'
+           and then Str (F + 2) in 'u' | 'U'
+           and then Str (F + 3) in 'e' | 'E'
+           and then
+             (if F + 3 < Str'Last then
+                Only_Space_Ghost (Str, F + 4, Str'Last)))
+            or else
+          (not Val
+           and then F <= Str'Last - 4
+           and then Str (F)     in 'f' | 'F'
+           and then Str (F + 1) in 'a' | 'A'
+           and then Str (F + 2) in 'l' | 'L'
+           and then Str (F + 3) in 's' | 'S'
+           and then Str (F + 4) in 'e' | 'E'
+           and then
+             (if F + 4 < Str'Last then
+                Only_Space_Ghost (Str, F + 5, Str'Last)))))
+    with
+      Ghost;
+    --  Ghost function that returns True iff Str is the image of boolean Val,
+    --  that is "true" or "false" in any capitalization, possibly surounded by
+    --  space characters.
+ 
+    function Only_Number_Ghost (Str : String; From, To : Integer) return Boolean
+    is
+       (for all J in From .. To => Str (J) in '0' .. '9' | '_')
+    with
+      Pre => From > To or else (From >= Str'First and then To <= Str'Last);
+    --  Ghost function that returns True if S has only number characters from
+    --  index From to index To.
+ 
+    function Last_Number_Ghost (Str : String) return Positive
+    with
+      Pre  => Str /= "" and then Str (Str'First) in '0' .. '9',
+      Post => Last_Number_Ghost'Result in Str'Range
+        and then (if Last_Number_Ghost'Result < Str'Last then
+                    Str (Last_Number_Ghost'Result + 1) not in '0' .. '9' | '_')
+        and then Only_Number_Ghost (Str, Str'First, Last_Number_Ghost'Result);
+    --  Ghost function that returns the index of the last character in S that
+    --  is either a figure or underscore, which necessarily exists given the
+    --  precondition on Str.
+ 
+    function Is_Natural_Format_Ghost (Str : String) return Boolean is
+      (Str /= ""
+         and then Str (Str'First) in '0' .. '9'
+         and then
+         (declare
+            L : constant Positive := Last_Number_Ghost (Str);
+          begin
+            Str (L) in '0' .. '9'
+              and then (for all J in Str'First .. L =>
+                          (if Str (J) = '_' then Str (J + 1) /= '_'))));
+    --  Ghost function that determines if Str has the correct format for a
+    --  natural number, consisting in a sequence of figures possibly separated
+    --  by single underscores. It may be followed by other characters.
+ 
+    function Starts_As_Exponent_Format_Ghost
+      (Str  : String;
+       Real : Boolean := False) return Boolean
+    is
+      (Str'Length > 1
+       and then Str (Str'First) in 'E' | 'e'
+       and then
+         (declare
+             Plus_Sign  : constant Boolean := Str (Str'First + 1) = '+';
+             Minus_Sign : constant Boolean := Str (Str'First + 1) = '-';
+             Sign       : constant Boolean := Plus_Sign or Minus_Sign;
+          begin
+            (if Minus_Sign then Real)
+             and then (if Sign then Str'Length > 2)
+             and then
+               (declare
+                  Start : constant Natural :=
+                   (if Sign then Str'First + 2 else Str'First + 1);
+                begin
+                  Str (Start) in '0' .. '9')));
+    --  Ghost function that determines if Str is recognized as something which
+    --  might be an exponent, ie. it starts with an 'e', capitalized or not,
+    --  followed by an optional sign which can only be '-' if we are working on
+    --  real numbers (Real is True), and then a digit in decimal notation.
+ 
+    function Is_Opt_Exponent_Format_Ghost
+      (Str  : String;
+       Real : Boolean := False) return Boolean
+    is
+      (not Starts_As_Exponent_Format_Ghost (Str, Real)
+       or else
+         (declare
+            Start : constant Natural :=
+              (if Str (Str'First + 1) in '+' | '-' then Str'First + 2
+               else Str'First + 1);
+          begin Is_Natural_Format_Ghost (Str (Start .. Str'Last))));
+    --  Ghost function that determines if Str has the correct format for an
+    --  optional exponent, that is, either it does not start as an exponent, or
+    --  it is in a correct format for a natural number.
+ 
+    function Scan_Natural_Ghost
+      (Str : String;
+       P   : Natural;
+       Acc : Natural)
+       return Natural
+    with
+      Subprogram_Variant => (Increases => P),
+      Pre => Str /= "" and then Str (Str'First) in '0' .. '9'
+        and then Str'Last < Natural'Last
+        and then P in Str'First .. Last_Number_Ghost (Str) + 1;
+    --  Ghost function that recursively computes the natural number in Str, up
+    --  to the first number greater or equal to Natural'Last / 10, assuming Acc
+    --  has been scanned already and scanning continues at index P.
+ 
+    function Scan_Exponent_Ghost
+      (Str  : String;
+       Real : Boolean := False)
+       return Integer
+    is
+      (declare
+         Plus_Sign  : constant Boolean := Str (Str'First + 1) = '+';
+         Minus_Sign : constant Boolean := Str (Str'First + 1) = '-';
+         Sign       : constant Boolean := Plus_Sign or Minus_Sign;
+         Start      : constant Natural :=
+           (if Sign then Str'First + 2 else Str'First + 1);
+         Value      : constant Natural :=
+           Scan_Natural_Ghost (Str (Start .. Str'Last), Start, 0);
+       begin
+         (if Minus_Sign then -Value else Value))
+    with
+      Pre  => Str'Last < Natural'Last
+        and then Starts_As_Exponent_Format_Ghost (Str, Real),
+      Post => (if not Real then Scan_Exponent_Ghost'Result >= 0);
+    --  Ghost function that scans an exponent
+ 
+ private
+ 
+    ------------------------
+    -- Scan_Natural_Ghost --
+    ------------------------
+ 
+    function Scan_Natural_Ghost
+      (Str : String;
+       P   : Natural;
+       Acc : Natural)
+       return Natural
+    is
+      (if P > Str'Last
+         or else Str (P) not in '0' .. '9' | '_'
+         or else Acc >= Integer'Last / 10
+       then
+         Acc
+       elsif Str (P) = '_' then
+         Scan_Natural_Ghost (Str, P + 1, Acc)
+       else
+         (declare
+            Shift_Acc : constant Natural :=
+              Acc * 10 +
+                (Integer'(Character'Pos (Str (P))) -
+                   Integer'(Character'Pos ('0')));
+          begin
+            Scan_Natural_Ghost (Str, P + 1, Shift_Acc)));
+ 
+ end System.Val_Spec;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valued.adb gcc-14.1.0/gcc/ada/libgnat/s-valued.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valued.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valued.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valued.ads gcc-14.1.0/gcc/ada/libgnat/s-valued.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valued.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valued.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuef.adb gcc-14.1.0/gcc/ada/libgnat/s-valuef.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valuef.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuef.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuef.ads gcc-14.1.0/gcc/ada/libgnat/s-valuef.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valuef.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuef.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuei.adb gcc-14.1.0/gcc/ada/libgnat/s-valuei.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valuei.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuei.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,34 ****
--- 29,36 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.Val_Util; use System.Val_Util;
+ 
  package body System.Value_I is
  
     --  Ghost code, loop invariants and assertions in this unit are meant for
*************** package body System.Value_I is
*** 98,104 ****
  
        Scan_Raw_Unsigned (Str, Ptr, Max, Uval);
        pragma Assert
!         (Uval = Uns_Params.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max));
  
        --  Deal with overflow cases, and also with largest negative number
  
--- 100,106 ----
  
        Scan_Raw_Unsigned (Str, Ptr, Max, Uval);
        pragma Assert
!         (Uval = U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max));
  
        --  Deal with overflow cases, and also with largest negative number
  
*************** package body System.Value_I is
*** 175,181 ****
              end;
  
              pragma Assert
!               (P = Uns_Params.Raw_Unsigned_Last_Ghost
                   (Str, Fst_Num, Str'Last));
  
              Scan_Trailing_Blanks (Str, P);
--- 177,183 ----
              end;
  
              pragma Assert
!               (P = U_Spec.Raw_Unsigned_Last_Ghost
                   (Str, Fst_Num, Str'Last));
  
              Scan_Trailing_Blanks (Str, P);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuei.ads gcc-14.1.0/gcc/ada/libgnat/s-valuei.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valuei.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuei.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 38,45 ****
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Val_Util; use System.Val_Util;
  with System.Value_I_Spec;
  
  generic
  
--- 38,46 ----
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Val_Spec; use System.Val_Spec;
  with System.Value_I_Spec;
+ with System.Value_U_Spec;
  
  generic
  
*************** generic
*** 55,69 ****
  
     --  Additional parameters for ghost subprograms used inside contracts
  
!    with package Uns_Params is new System.Val_Util.Uns_Params
!      (Uns => Uns, others => <>)
     with Ghost;
  
  package System.Value_I is
     pragma Preelaborate;
-    use all type Uns_Params.Uns_Option;
- 
-    package Spec is new System.Value_I_Spec (Int, Uns, Uns_Params);
  
     procedure Scan_Integer
       (Str : String;
--- 56,68 ----
  
     --  Additional parameters for ghost subprograms used inside contracts
  
!    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
!    with package Spec is new System.Value_I_Spec
!      (Int => Int, Uns => Uns, U_Spec => U_Spec)
     with Ghost;
  
  package System.Value_I is
     pragma Preelaborate;
  
     procedure Scan_Integer
       (Str : String;
*************** package System.Value_I is
*** 84,95 ****
                (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
                 else Non_Blank);
            begin
!             Uns_Params.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Max))
!               and then Uns_Params.Raw_Unsigned_No_Overflow_Ghost
                  (Str, Fst_Num, Max)
                and then Spec.Uns_Is_Valid_Int
                  (Minus => Str (Non_Blank) = '-',
!                  Uval  => Uns_Params.Scan_Raw_Unsigned_Ghost
                     (Str, Fst_Num, Max))),
      Post =>
        (declare
--- 83,94 ----
                (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
                 else Non_Blank);
            begin
!             U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Max))
!               and then U_Spec.Raw_Unsigned_No_Overflow_Ghost
                  (Str, Fst_Num, Max)
                and then Spec.Uns_Is_Valid_Int
                  (Minus => Str (Non_Blank) = '-',
!                  Uval  => U_Spec.Scan_Raw_Unsigned_Ghost
                     (Str, Fst_Num, Max))),
      Post =>
        (declare
*************** package System.Value_I is
*** 99,110 ****
             (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
              else Non_Blank);
           Uval      : constant Uns :=
!             Uns_Params.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max);
         begin
             Spec.Is_Int_Of_Uns (Minus => Str (Non_Blank) = '-',
                                 Uval  => Uval,
                                 Val   => Res)
!            and then Ptr.all = Uns_Params.Raw_Unsigned_Last_Ghost
               (Str, Fst_Num, Max));
     --  This procedure scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
--- 98,109 ----
             (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
              else Non_Blank);
           Uval      : constant Uns :=
!             U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max);
         begin
             Spec.Is_Int_Of_Uns (Minus => Str (Non_Blank) = '-',
                                 Uval  => Uval,
                                 Val   => Res)
!            and then Ptr.all = U_Spec.Raw_Unsigned_Last_Ghost
               (Str, Fst_Num, Max));
     --  This procedure scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuen.adb gcc-14.1.0/gcc/ada/libgnat/s-valuen.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valuen.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuen.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuen.ads gcc-14.1.0/gcc/ada/libgnat/s-valuen.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valuen.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuen.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuer.adb gcc-14.1.0/gcc/ada/libgnat/s-valuer.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valuer.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuer.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuer.ads gcc-14.1.0/gcc/ada/libgnat/s-valuer.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valuer.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuer.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valueu.adb gcc-14.1.0/gcc/ada/libgnat/s-valueu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valueu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valueu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 29,34 ****
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with System.SPARK.Cut_Operations; use System.SPARK.Cut_Operations;
+ with System.Val_Util;             use System.Val_Util;
+ 
  package body System.Value_U is
  
     --  Ghost code, loop invariants and assertions in this unit are meant for
*************** package body System.Value_U is
*** 138,147 ****
          Spec.Scan_Based_Number_Ghost (Str, Ptr.all, Last_Num_Init)
        with Ghost;
        Starts_As_Based : constant Boolean :=
!         Last_Num_Init < Max - 1
!         and then Str (Last_Num_Init + 1) in '#' | ':'
!         and then Str (Last_Num_Init + 2) in
!         '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
        with Ghost;
        Last_Num_Based  : constant Integer :=
          (if Starts_As_Based
--- 141,147 ----
          Spec.Scan_Based_Number_Ghost (Str, Ptr.all, Last_Num_Init)
        with Ghost;
        Starts_As_Based : constant Boolean :=
!         Spec.Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, Max)
        with Ghost;
        Last_Num_Based  : constant Integer :=
          (if Starts_As_Based
*************** package body System.Value_U is
*** 149,157 ****
           else Last_Num_Init)
        with Ghost;
        Is_Based        : constant Boolean :=
!         Starts_As_Based
!         and then Last_Num_Based < Max
!         and then Str (Last_Num_Based + 1) = Str (Last_Num_Init + 1)
        with Ghost;
        Based_Val       : constant Spec.Uns_Option :=
          (if Starts_As_Based and then not Init_Val.Overflow
--- 149,156 ----
           else Last_Num_Init)
        with Ghost;
        Is_Based        : constant Boolean :=
!         Spec.Raw_Unsigned_Is_Based_Ghost
!           (Str, Last_Num_Init, Last_Num_Based, Max)
        with Ghost;
        Based_Val       : constant Spec.Uns_Option :=
          (if Starts_As_Based and then not Init_Val.Overflow
*************** package body System.Value_U is
*** 174,179 ****
--- 173,179 ----
        P := Ptr.all;
        Spec.Lemma_Scan_Based_Number_Ghost_Step (Str, P, Last_Num_Init);
        Uval := Character'Pos (Str (P)) - Character'Pos ('0');
+       pragma Assert (Str (P) in '0' .. '9');
        P := P + 1;
  
        --  Scan out digits of what is either the number or the base.
*************** package body System.Value_U is
*** 215,233 ****
              --  Accumulate result, checking for overflow
  
              else
                 Spec.Lemma_Scan_Based_Number_Ghost_Step
                   (Str, P, Last_Num_Init, Acc => Uval);
                 Spec.Lemma_Scan_Based_Number_Ghost_Overflow
                   (Str, P, Last_Num_Init, Acc => Uval);
  
                 if Uval <= Umax then
-                   pragma Assert
-                     (Spec.Hexa_To_Unsigned_Ghost (Str (P)) = Digit);
                    Uval := 10 * Uval + Digit;
                    pragma Assert
                      (if not Overflow
                       then Init_Val = Spec.Scan_Based_Number_Ghost
!                        (Str, P + 1, Last_Num_Init, Acc => Uval));
  
                 elsif Uval > Umax10 then
                    Overflow := True;
--- 215,238 ----
              --  Accumulate result, checking for overflow
  
              else
+                pragma Assert
+                  (By
+                     (Str (P) in '0' .. '9',
+                      By
+                        (Character'Pos (Str (P)) >= Character'Pos ('0'),
+                         Uns '(Character'Pos (Str (P))) >=
+                             Character'Pos ('0'))));
                 Spec.Lemma_Scan_Based_Number_Ghost_Step
                   (Str, P, Last_Num_Init, Acc => Uval);
                 Spec.Lemma_Scan_Based_Number_Ghost_Overflow
                   (Str, P, Last_Num_Init, Acc => Uval);
  
                 if Uval <= Umax then
                    Uval := 10 * Uval + Digit;
                    pragma Assert
                      (if not Overflow
                       then Init_Val = Spec.Scan_Based_Number_Ghost
!                             (Str, P + 1, Last_Num_Init, Acc => Uval));
  
                 elsif Uval > Umax10 then
                    Overflow := True;
*************** package body System.Value_U is
*** 241,247 ****
                    pragma Assert
                      (if not Overflow
                       then Init_Val = Spec.Scan_Based_Number_Ghost
!                        (Str, P + 1, Last_Num_Init, Acc => Uval));
                 end if;
  
                 P := P + 1;
--- 246,253 ----
                    pragma Assert
                      (if not Overflow
                       then Init_Val = Spec.Scan_Based_Number_Ghost
!                             (Str, P + 1, Last_Num_Init, Acc => Uval));
! 
                 end if;
  
                 P := P + 1;
*************** package body System.Value_U is
*** 252,258 ****
        end;
  
        pragma Assert_And_Cut
!         (P = Last_Num_Init + 1
           and then Overflow = Init_Val.Overflow
           and then (if not Overflow then Init_Val.Value = Uval));
  
--- 258,266 ----
        end;
  
        pragma Assert_And_Cut
!         (By
!            (P = Last_Num_Init + 1,
!             P > Max or else Str (P) not in '_' | '0' .. '9')
           and then Overflow = Init_Val.Overflow
           and then (if not Overflow then Init_Val.Value = Uval));
  
*************** package body System.Value_U is
*** 313,325 ****
                 --  already stored in Ptr.all.
  
                 else
                    Spec.Lemma_Scan_Based_Number_Ghost_Base
                      (Str, P, Last_Num_Based, Base, Uval);
                    Uval := Base;
                    Base := 10;
                    pragma Assert (Ptr.all = Last_Num_Init + 1);
                    pragma Assert
!                     (if Starts_As_Based then P = Last_Num_Based + 1);
                    pragma Assert (not Is_Based);
                    pragma Assert (if not Overflow then Uval = Init_Val.Value);
                    exit;
--- 321,344 ----
                 --  already stored in Ptr.all.
  
                 else
+                   pragma Assert
+                     (By
+                        (Spec.Only_Hexa_Ghost (Str, P, Last_Num_Based),
+                         P > Last_Num_Init + 1
+                         and Spec.Only_Hexa_Ghost
+                           (Str, Last_Num_Init + 2, Last_Num_Based)));
                    Spec.Lemma_Scan_Based_Number_Ghost_Base
                      (Str, P, Last_Num_Based, Base, Uval);
                    Uval := Base;
                    Base := 10;
                    pragma Assert (Ptr.all = Last_Num_Init + 1);
                    pragma Assert
!                     (if Starts_As_Based
!                      then By
!                        (P = Last_Num_Based + 1,
!                         P <= Last_Num_Based + 1
!                         and Str (P) not in
!                         '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_'));
                    pragma Assert (not Is_Based);
                    pragma Assert (if not Overflow then Uval = Init_Val.Value);
                    exit;
*************** package body System.Value_U is
*** 394,404 ****
                    Ptr.all := P + 1;
                    pragma Assert (P = Last_Num_Based + 1);
                    pragma Assert (Ptr.all = Last_Num_Based + 2);
!                   pragma Assert (Starts_As_Based);
!                   pragma Assert (Last_Num_Based < Max);
!                   pragma Assert (Str (Last_Num_Based + 1) = Base_Char);
!                   pragma Assert (Base_Char = Str (Last_Num_Init + 1));
!                   pragma Assert (Is_Based);
                    Spec.Lemma_Scan_Based_Number_Ghost_Base
                      (Str, P, Last_Num_Based, Base, Uval);
                    exit;
--- 413,427 ----
                    Ptr.all := P + 1;
                    pragma Assert (P = Last_Num_Based + 1);
                    pragma Assert (Ptr.all = Last_Num_Based + 2);
!                   pragma Assert
!                     (By
!                        (Is_Based,
!                         So
!                           (Starts_As_Based,
!                            So
!                              (Last_Num_Based < Max,
!                               Str (Last_Num_Based + 1) = Base_Char
!                               and Base_Char = Str (Last_Num_Init + 1)))));
                    Spec.Lemma_Scan_Based_Number_Ghost_Base
                      (Str, P, Last_Num_Based, Base, Uval);
                    exit;
*************** package body System.Value_U is
*** 414,454 ****
                      (if not Overflow
                       then Based_Val = Spec.Scan_Based_Number_Ghost
                         (Str, P, Last_Num_Based, Base, Uval));
!                   pragma Assert (Str (P) /= '_');
!                   pragma Assert (Str (P) /= Base_Char);
                 end if;
  
                 Lemma_Digit_Not_Last (Str, P, Last_Num_Init + 2, Max);
!                pragma Assert (Str (P) /= '_');
!                pragma Assert (Str (P) /= Base_Char);
              end loop;
           end;
           pragma Assert
             (if Starts_As_Based then P = Last_Num_Based + 1
              else P = Last_Num_Init + 2);
           pragma Assert
!            (Last_Num_Init < Max - 1
!             and then Str (Last_Num_Init + 1) in '#' | ':');
!          pragma Assert
!            (Overflow =
!               (Init_Val.Overflow
!                or else Init_Val.Value not in 2 .. 16
!                or else (Starts_As_Based and then Based_Val.Overflow)));
!          pragma Assert
!            (Overflow /= Spec.Scan_Split_No_Overflow_Ghost (Str, Ptr_Old, Max));
        end if;
  
        pragma Assert_And_Cut
          (Overflow /= Spec.Scan_Split_No_Overflow_Ghost (Str, Ptr_Old, Max)
-          and then
-            (if not Overflow then
-                 (if Is_Based then Uval = Based_Val.Value
-                  else Uval = Init_Val.Value))
           and then Ptr.all = First_Exp
           and then Base in 2 .. 16
           and then
             (if not Overflow then
!                 (if Is_Based then Base = Init_Val.Value else Base = 10)));
  
        --  Come here with scanned unsigned value in Uval. The only remaining
        --  required step is to deal with exponent if one is present.
--- 437,476 ----
                      (if not Overflow
                       then Based_Val = Spec.Scan_Based_Number_Ghost
                         (Str, P, Last_Num_Based, Base, Uval));
!                   pragma Assert (Str (P) not in '_' | Base_Char);
                 end if;
  
                 Lemma_Digit_Not_Last (Str, P, Last_Num_Init + 2, Max);
!                pragma Assert (Str (P) not in '_' | Base_Char);
              end loop;
           end;
           pragma Assert
             (if Starts_As_Based then P = Last_Num_Based + 1
              else P = Last_Num_Init + 2);
           pragma Assert
!            (By
!               (Overflow /= Spec.Scan_Split_No_Overflow_Ghost
!                    (Str, Ptr_Old, Max),
!                So
!                  (Last_Num_Init < Max - 1
!                   and then Str (Last_Num_Init + 1) in '#' | ':',
!                   Overflow =
!                     (Init_Val.Overflow
!                      or else Init_Val.Value not in 2 .. 16
!                      or else (Starts_As_Based and Based_Val.Overflow)))));
        end if;
  
        pragma Assert_And_Cut
          (Overflow /= Spec.Scan_Split_No_Overflow_Ghost (Str, Ptr_Old, Max)
           and then Ptr.all = First_Exp
           and then Base in 2 .. 16
           and then
             (if not Overflow then
!                 (if Is_Based then Base = Init_Val.Value else Base = 10))
!          and then
!            (if not Overflow then
!                 (if Is_Based then Uval = Based_Val.Value
!                  else Uval = Init_Val.Value)));
  
        --  Come here with scanned unsigned value in Uval. The only remaining
        --  required step is to deal with exponent if one is present.
*************** package body System.Value_U is
*** 456,462 ****
        Scan_Exponent (Str, Ptr, Max, Expon);
  
        pragma Assert
!         (Ptr.all = Spec.Raw_Unsigned_Last_Ghost (Str, Ptr_Old, Max));
        pragma Assert
          (if not Overflow
           then Spec.Scan_Split_Value_Ghost (Str, Ptr_Old, Max) =
--- 478,491 ----
        Scan_Exponent (Str, Ptr, Max, Expon);
  
        pragma Assert
!         (By
!            (Ptr.all = Spec.Raw_Unsigned_Last_Ghost (Str, Ptr_Old, Max),
!             Ptr.all =
!               (if not Starts_As_Exponent_Format_Ghost (Str (First_Exp .. Max))
!                then First_Exp
!                elsif Str (First_Exp + 1) in '-' | '+' then
!                  Last_Number_Ghost (Str (First_Exp + 2 .. Max)) + 1
!                else Last_Number_Ghost (Str (First_Exp + 1 .. Max)) + 1)));
        pragma Assert
          (if not Overflow
           then Spec.Scan_Split_Value_Ghost (Str, Ptr_Old, Max) =
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valueu.ads gcc-14.1.0/gcc/ada/libgnat/s-valueu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valueu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valueu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 45,61 ****
                           Subprogram_Variant => Ignore);
  
  with System.Value_U_Spec;
! with System.Val_Util; use System.Val_Util;
  
  generic
  
     type Uns is mod <>;
  
  package System.Value_U is
     pragma Preelaborate;
  
-    package Spec is new System.Value_U_Spec (Uns);
- 
     procedure Scan_Raw_Unsigned
       (Str : String;
        Ptr : not null access Integer;
--- 45,63 ----
                           Subprogram_Variant => Ignore);
  
  with System.Value_U_Spec;
! with System.Val_Spec; use System.Val_Spec;
  
  generic
  
     type Uns is mod <>;
  
+    --  Additional parameters for ghost subprograms used inside contracts
+ 
+    with package Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
+ 
  package System.Value_U is
     pragma Preelaborate;
  
     procedure Scan_Raw_Unsigned
       (Str : String;
        Ptr : not null access Integer;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuns.adb gcc-14.1.0/gcc/ada/libgnat/s-valuns.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valuns.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuns.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuns.ads gcc-14.1.0/gcc/ada/libgnat/s-valuns.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valuns.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuns.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 46,58 ****
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_Uns with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Value_U (Unsigned);
  
     procedure Scan_Raw_Unsigned
       (Str : String;
--- 46,59 ----
  
  with System.Unsigned_Types;
  with System.Value_U;
+ with System.Vs_Uns;
  
  package System.Val_Uns with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Value_U (Unsigned, System.Vs_Uns.Spec);
  
     procedure Scan_Raw_Unsigned
       (Str : String;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuti.adb gcc-14.1.0/gcc/ada/libgnat/s-valuti.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valuti.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuti.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** is
*** 62,105 ****
        end if;
     end Bad_Value;
  
-    ---------------------------
-    -- First_Non_Space_Ghost --
-    ---------------------------
- 
-    function First_Non_Space_Ghost
-      (S        : String;
-       From, To : Integer) return Positive
-    is
-    begin
-       for J in From .. To loop
-          if S (J) /= ' ' then
-             return J;
-          end if;
- 
-          pragma Loop_Invariant (for all K in From .. J => S (K) = ' ');
-       end loop;
- 
-       raise Program_Error;
-    end First_Non_Space_Ghost;
- 
-    -----------------------
-    -- Last_Number_Ghost --
-    -----------------------
- 
-    function Last_Number_Ghost (Str : String) return Positive is
-    begin
-       for J in Str'Range loop
-          if Str (J) not in '0' .. '9' | '_' then
-             return J - 1;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Str'First .. J => Str (K) in '0' .. '9' | '_');
-       end loop;
- 
-       return Str'Last;
-    end Last_Number_Ghost;
- 
     ----------------------
     -- Normalize_String --
     ----------------------
--- 62,67 ----
*************** is
*** 123,128 ****
--- 85,91 ----
        while F < L and then S (F) = ' ' loop
           pragma Loop_Invariant (F in S'First .. L - 1);
           pragma Loop_Invariant (for all J in S'First .. F => S (J) = ' ');
+          pragma Loop_Variant (Increases => F);
           F := F + 1;
        end loop;
  
*************** is
*** 139,144 ****
--- 102,108 ----
        while S (L) = ' ' loop
           pragma Loop_Invariant (L in F + 1 .. S'Last);
           pragma Loop_Invariant (for all J in L .. S'Last => S (J) = ' ');
+          pragma Loop_Variant (Decreases => L);
           L := L - 1;
        end loop;
  
*************** is
*** 222,231 ****
  
        declare
           Rest : constant String := Str (P .. Max) with Ghost;
!          Last : constant Natural := Last_Number_Ghost (Rest) with Ghost;
  
        begin
!          pragma Assert (Is_Natural_Format_Ghost (Rest));
  
           loop
              pragma Assert (Str (P) in '0' .. '9');
--- 186,195 ----
  
        declare
           Rest : constant String := Str (P .. Max) with Ghost;
!          Last : constant Natural := Sp.Last_Number_Ghost (Rest) with Ghost;
  
        begin
!          pragma Assert (Sp.Is_Natural_Format_Ghost (Rest));
  
           loop
              pragma Assert (Str (P) in '0' .. '9');
*************** is
*** 238,245 ****
              pragma Loop_Invariant (P in Rest'First .. Last);
              pragma Loop_Invariant (Str (P) in '0' .. '9');
              pragma Loop_Invariant
!               (Scan_Natural_Ghost (Rest, Rest'First, 0)
!                = Scan_Natural_Ghost (Rest, P + 1, X));
  
              P := P + 1;
  
--- 202,209 ----
              pragma Loop_Invariant (P in Rest'First .. Last);
              pragma Loop_Invariant (Str (P) in '0' .. '9');
              pragma Loop_Invariant
!               (Sp.Scan_Natural_Ghost (Rest, Rest'First, 0)
!                = Sp.Scan_Natural_Ghost (Rest, P + 1, X));
  
              P := P + 1;
  
*************** is
*** 299,305 ****
  
        Start := P;
  
!       pragma Assert (Start = First_Non_Space_Ghost (Str, Ptr.all, Max));
  
        --  Skip past an initial plus sign
  
--- 263,269 ----
  
        Start := P;
  
!       pragma Assert (Start = Sp.First_Non_Space_Ghost (Str, Ptr.all, Max));
  
        --  Skip past an initial plus sign
  
*************** is
*** 355,361 ****
  
        Start := P;
  
!       pragma Assert (Start = First_Non_Space_Ghost (Str, Ptr.all, Max));
  
        --  Remember an initial minus sign
  
--- 319,325 ----
  
        Start := P;
  
!       pragma Assert (Start = Sp.First_Non_Space_Ghost (Str, Ptr.all, Max));
  
        --  Remember an initial minus sign
  
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valuti.ads gcc-14.1.0/gcc/ada/libgnat/s-valuti.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valuti.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valuti.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 43,100 ****
                           Ghost          => Ignore);
  
  with System.Case_Util;
  
  package System.Val_Util
    with SPARK_Mode, Pure
  is
     pragma Unevaluated_Use_Of_Old (Allow);
  
     procedure Bad_Value (S : String)
     with
!      Depends => (null => S);
     pragma No_Return (Bad_Value);
     --  Raises constraint error with message: bad input for 'Value: "xxx"
  
-    function Only_Space_Ghost (S : String; From, To : Integer) return Boolean is
-       (for all J in From .. To => S (J) = ' ')
-    with
-      Ghost,
-      Pre  => From > To or else (From >= S'First and then To <= S'Last),
-      Post => True;
-    --  Ghost function that returns True if S has only space characters from
-    --  index From to index To.
- 
-    function First_Non_Space_Ghost
-      (S        : String;
-       From, To : Integer) return Positive
-    with
-      Ghost,
-      Pre  => From in S'Range
-        and then To in S'Range
-        and then not Only_Space_Ghost (S, From, To),
-      Post => First_Non_Space_Ghost'Result in From .. To
-        and then S (First_Non_Space_Ghost'Result) /= ' '
-        and then Only_Space_Ghost
-          (S, From, First_Non_Space_Ghost'Result - 1);
-    --  Ghost function that returns the index of the first non-space character
-    --  in S, which necessarily exists given the precondition on S.
- 
     procedure Normalize_String
       (S    : in out String;
        F, L : out Integer)
     with
!      Post => (if Only_Space_Ghost (S'Old, S'First, S'Last) then
                  F > L
                else
                  F >= S'First
                    and then L <= S'Last
                    and then F <= L
!                   and then Only_Space_Ghost (S'Old, S'First, F - 1)
                    and then S'Old (F) /= ' '
                    and then S'Old (L) /= ' '
                    and then
                      (if L < S'Last then
!                       Only_Space_Ghost (S'Old, L + 1, S'Last))
                    and then
                      (if S'Old (F) /= ''' then
                        (for all J in S'Range =>
--- 43,80 ----
                           Ghost          => Ignore);
  
  with System.Case_Util;
+ with System.Val_Spec;
  
  package System.Val_Util
    with SPARK_Mode, Pure
  is
     pragma Unevaluated_Use_Of_Old (Allow);
  
+    package Sp renames System.Val_Spec;
+ 
     procedure Bad_Value (S : String)
     with
!      Depends => (null => S),
!      Exceptional_Cases => (others => Standard.False);
     pragma No_Return (Bad_Value);
     --  Raises constraint error with message: bad input for 'Value: "xxx"
  
     procedure Normalize_String
       (S    : in out String;
        F, L : out Integer)
     with
!      Post => (if Sp.Only_Space_Ghost (S'Old, S'First, S'Last) then
                  F > L
                else
                  F >= S'First
                    and then L <= S'Last
                    and then F <= L
!                   and then Sp.Only_Space_Ghost (S'Old, S'First, F - 1)
                    and then S'Old (F) /= ' '
                    and then S'Old (L) /= ' '
                    and then
                      (if L < S'Last then
!                       Sp.Only_Space_Ghost (S'Old, L + 1, S'Last))
                    and then
                      (if S'Old (F) /= ''' then
                        (for all J in S'Range =>
*************** is
*** 118,135 ****
       Pre  =>
         --  Ptr.all .. Max is either an empty range, or a valid range in Str
         (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Only_Space_Ghost (Str, Ptr.all, Max)
         and then
           (declare
              F : constant Positive :=
!               First_Non_Space_Ghost (Str, Ptr.all, Max);
            begin
              (if Str (F) in '+' | '-' then
                 F <= Max - 1 and then Str (F + 1) /= ' ')),
       Post =>
         (declare
            F : constant Positive :=
!             First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
          begin
            Minus = (Str (F) = '-')
              and then Ptr.all = (if Str (F) in '+' | '-' then F + 1 else F)
--- 98,115 ----
       Pre  =>
         --  Ptr.all .. Max is either an empty range, or a valid range in Str
         (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Sp.Only_Space_Ghost (Str, Ptr.all, Max)
         and then
           (declare
              F : constant Positive :=
!               Sp.First_Non_Space_Ghost (Str, Ptr.all, Max);
            begin
              (if Str (F) in '+' | '-' then
                 F <= Max - 1 and then Str (F + 1) /= ' ')),
       Post =>
         (declare
            F : constant Positive :=
!             Sp.First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
          begin
            Minus = (Str (F) = '-')
              and then Ptr.all = (if Str (F) in '+' | '-' then F + 1 else F)
*************** is
*** 163,304 ****
       Pre  =>
         --  Ptr.all .. Max is either an empty range, or a valid range in Str
         (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Only_Space_Ghost (Str, Ptr.all, Max)
         and then
           (declare
              F : constant Positive :=
!               First_Non_Space_Ghost (Str, Ptr.all, Max);
            begin
              (if Str (F) = '+' then
                 F <= Max - 1 and then Str (F + 1) /= ' ')),
       Post =>
         (declare
            F : constant Positive :=
!             First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
          begin
            Ptr.all = (if Str (F) = '+' then F + 1 else F)
              and then Start = F);
     --  Same as Scan_Sign, but allows only plus, not minus. This is used for
     --  modular types.
  
-    function Only_Number_Ghost (Str : String; From, To : Integer) return Boolean
-    is
-       (for all J in From .. To => Str (J) in '0' .. '9' | '_')
-    with
-      Ghost,
-      Pre => From > To or else (From >= Str'First and then To <= Str'Last);
-    --  Ghost function that returns True if S has only number characters from
-    --  index From to index To.
- 
-    function Last_Number_Ghost (Str : String) return Positive
-    with
-      Ghost,
-      Pre  => Str /= "" and then Str (Str'First) in '0' .. '9',
-      Post => Last_Number_Ghost'Result in Str'Range
-        and then (if Last_Number_Ghost'Result < Str'Last then
-                    Str (Last_Number_Ghost'Result + 1) not in '0' .. '9' | '_')
-        and then Only_Number_Ghost (Str, Str'First, Last_Number_Ghost'Result);
-    --  Ghost function that returns the index of the last character in S that
-    --  is either a figure or underscore, which necessarily exists given the
-    --  precondition on Str.
- 
-    function Is_Natural_Format_Ghost (Str : String) return Boolean is
-      (Str /= ""
-         and then Str (Str'First) in '0' .. '9'
-         and then
-         (declare
-            L : constant Positive := Last_Number_Ghost (Str);
-          begin
-            Str (L) in '0' .. '9'
-              and then (for all J in Str'First .. L =>
-                          (if Str (J) = '_' then Str (J + 1) /= '_'))))
-    with
-      Ghost;
-    --  Ghost function that determines if Str has the correct format for a
-    --  natural number, consisting in a sequence of figures possibly separated
-    --  by single underscores. It may be followed by other characters.
- 
-    function Starts_As_Exponent_Format_Ghost
-      (Str  : String;
-       Real : Boolean := False) return Boolean
-    is
-      (Str'Length > 1
-       and then Str (Str'First) in 'E' | 'e'
-       and then
-         (declare
-             Plus_Sign  : constant Boolean := Str (Str'First + 1) = '+';
-             Minus_Sign : constant Boolean := Str (Str'First + 1) = '-';
-             Sign       : constant Boolean := Plus_Sign or Minus_Sign;
-          begin
-            (if Minus_Sign then Real)
-             and then (if Sign then Str'Length > 2)
-             and then
-               (declare
-                  Start : constant Natural :=
-                   (if Sign then Str'First + 2 else Str'First + 1);
-                begin
-                  Str (Start) in '0' .. '9')))
-    with
-      Ghost;
-    --  Ghost function that determines if Str is recognized as something which
-    --  might be an exponent, ie. it starts with an 'e', capitalized or not,
-    --  followed by an optional sign which can only be '-' if we are working on
-    --  real numbers (Real is True), and then a digit in decimal notation.
- 
-    function Is_Opt_Exponent_Format_Ghost
-      (Str  : String;
-       Real : Boolean := False) return Boolean
-    is
-      (not Starts_As_Exponent_Format_Ghost (Str, Real)
-       or else
-         (declare
-            Start : constant Natural :=
-              (if Str (Str'First + 1) in '+' | '-' then Str'First + 2
-               else Str'First + 1);
-          begin Is_Natural_Format_Ghost (Str (Start .. Str'Last))))
-    with
-      Ghost;
-    --  Ghost function that determines if Str has the correct format for an
-    --  optional exponent, that is, either it does not start as an exponent, or
-    --  it is in a correct format for a natural number.
- 
-    function Scan_Natural_Ghost
-      (Str : String;
-       P   : Natural;
-       Acc : Natural)
-       return Natural
-    with
-      Ghost,
-      Subprogram_Variant => (Increases => P),
-      Pre => Str /= "" and then Str (Str'First) in '0' .. '9'
-        and then Str'Last < Natural'Last
-        and then P in Str'First .. Last_Number_Ghost (Str) + 1;
-    --  Ghost function that recursively computes the natural number in Str, up
-    --  to the first number greater or equal to Natural'Last / 10, assuming Acc
-    --  has been scanned already and scanning continues at index P.
- 
-    function Scan_Exponent_Ghost
-      (Str  : String;
-       Real : Boolean := False)
-       return Integer
-    is
-      (declare
-         Plus_Sign  : constant Boolean := Str (Str'First + 1) = '+';
-         Minus_Sign : constant Boolean := Str (Str'First + 1) = '-';
-         Sign       : constant Boolean := Plus_Sign or Minus_Sign;
-         Start      : constant Natural :=
-           (if Sign then Str'First + 2 else Str'First + 1);
-         Value      : constant Natural :=
-           Scan_Natural_Ghost (Str (Start .. Str'Last), Start, 0);
-       begin
-         (if Minus_Sign then -Value else Value))
-    with
-      Ghost,
-      Pre  => Str'Last < Natural'Last
-        and then Starts_As_Exponent_Format_Ghost (Str, Real),
-      Post => (if not Real then Scan_Exponent_Ghost'Result >= 0);
-    --  Ghost function that scans an exponent
- 
     procedure Scan_Exponent
       (Str  : String;
        Ptr  : not null access Integer;
--- 143,166 ----
       Pre  =>
         --  Ptr.all .. Max is either an empty range, or a valid range in Str
         (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Sp.Only_Space_Ghost (Str, Ptr.all, Max)
         and then
           (declare
              F : constant Positive :=
!               Sp.First_Non_Space_Ghost (Str, Ptr.all, Max);
            begin
              (if Str (F) = '+' then
                 F <= Max - 1 and then Str (F + 1) /= ' ')),
       Post =>
         (declare
            F : constant Positive :=
!             Sp.First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
          begin
            Ptr.all = (if Str (F) = '+' then F + 1 else F)
              and then Start = F);
     --  Same as Scan_Sign, but allows only plus, not minus. This is used for
     --  modular types.
  
     procedure Scan_Exponent
       (Str  : String;
        Ptr  : not null access Integer;
*************** is
*** 310,323 ****
         --  Ptr.all .. Max is either an empty range, or a valid range in Str
         (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
           and then Max < Natural'Last
!          and then Is_Opt_Exponent_Format_Ghost (Str (Ptr.all .. Max), Real),
       Post =>
!        (if Starts_As_Exponent_Format_Ghost (Str (Ptr.all'Old .. Max), Real)
!         then Exp = Scan_Exponent_Ghost (Str (Ptr.all'Old .. Max), Real)
            and then
            (if Str (Ptr.all'Old + 1) in '-' | '+' then
!              Ptr.all = Last_Number_Ghost (Str (Ptr.all'Old + 2 .. Max)) + 1
!            else Ptr.all = Last_Number_Ghost (Str (Ptr.all'Old + 1 .. Max)) + 1)
          else Exp = 0 and Ptr.all = Ptr.all'Old);
     --  Called to scan a possible exponent. Str, Ptr, Max are as described above
     --  for Scan_Sign. If Ptr.all < Max and Str (Ptr.all) = 'E' or 'e', then an
--- 172,186 ----
         --  Ptr.all .. Max is either an empty range, or a valid range in Str
         (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
           and then Max < Natural'Last
!          and then Sp.Is_Opt_Exponent_Format_Ghost (Str (Ptr.all .. Max), Real),
       Post =>
!        (if Sp.Starts_As_Exponent_Format_Ghost (Str (Ptr.all'Old .. Max), Real)
!         then Exp = Sp.Scan_Exponent_Ghost (Str (Ptr.all'Old .. Max), Real)
            and then
            (if Str (Ptr.all'Old + 1) in '-' | '+' then
!              Ptr.all = Sp.Last_Number_Ghost (Str (Ptr.all'Old + 2 .. Max)) + 1
!            else
!              Ptr.all = Sp.Last_Number_Ghost (Str (Ptr.all'Old + 1 .. Max)) + 1)
          else Exp = 0 and Ptr.all = Ptr.all'Old);
     --  Called to scan a possible exponent. Str, Ptr, Max are as described above
     --  for Scan_Sign. If Ptr.all < Max and Str (Ptr.all) = 'E' or 'e', then an
*************** is
*** 336,342 ****
     procedure Scan_Trailing_Blanks (Str : String; P : Positive)
     with
       Pre => P >= Str'First
!        and then Only_Space_Ghost (Str, P, Str'Last);
     --  Checks that the remainder of the field Str (P .. Str'Last) is all
     --  blanks. Raises Constraint_Error if a non-blank character is found.
  
--- 199,205 ----
     procedure Scan_Trailing_Blanks (Str : String; P : Positive)
     with
       Pre => P >= Str'First
!        and then Sp.Only_Space_Ghost (Str, P, Str'Last);
     --  Checks that the remainder of the field Str (P .. Str'Last) is all
     --  blanks. Raises Constraint_Error if a non-blank character is found.
  
*************** is
*** 374,675 ****
     --  no check for this case, the caller must ensure this condition is met.
     pragma Warnings (GNATprove, On, """Ptr"" is not modified");
  
-    --  Bundle Uns type with other types, constants and subprograms used in
-    --  ghost code, so that this package can be instantiated once and used
-    --  multiple times as generic formal for a given Uns type.
-    generic
-       type Uns is mod <>;
-       type P_Uns_Option is private with Ghost;
-       with function P_Wrap_Option (Value : Uns) return P_Uns_Option
-         with Ghost;
-       with function P_Hexa_To_Unsigned_Ghost (X : Character) return Uns
-         with Ghost;
-       with function P_Scan_Overflows_Ghost
-         (Digit : Uns;
-          Base  : Uns;
-          Acc   : Uns) return Boolean
-         with Ghost;
-       with function P_Is_Raw_Unsigned_Format_Ghost
-         (Str : String) return Boolean
-         with Ghost;
-       with function P_Scan_Split_No_Overflow_Ghost
-         (Str      : String;
-          From, To : Integer)
-       return Boolean
-         with Ghost;
-       with function P_Raw_Unsigned_No_Overflow_Ghost
-         (Str      : String;
-          From, To : Integer)
-       return Boolean
-         with Ghost;
- 
-       with function P_Exponent_Unsigned_Ghost
-         (Value : Uns;
-          Exp   : Natural;
-          Base  : Uns := 10) return P_Uns_Option
-         with Ghost;
-       with procedure P_Lemma_Exponent_Unsigned_Ghost_Base
-         (Value : Uns;
-          Exp   : Natural;
-          Base  : Uns := 10)
-         with Ghost;
-       with procedure P_Lemma_Exponent_Unsigned_Ghost_Overflow
-         (Value : Uns;
-          Exp   : Natural;
-          Base  : Uns := 10)
-         with Ghost;
-       with procedure P_Lemma_Exponent_Unsigned_Ghost_Step
-         (Value : Uns;
-          Exp   : Natural;
-          Base  : Uns := 10)
-         with Ghost;
- 
-       with function P_Scan_Raw_Unsigned_Ghost
-         (Str      : String;
-          From, To : Integer)
-       return Uns
-         with Ghost;
-       with procedure P_Lemma_Scan_Based_Number_Ghost_Base
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-         with Ghost;
-       with procedure P_Lemma_Scan_Based_Number_Ghost_Underscore
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-         with Ghost;
-       with procedure P_Lemma_Scan_Based_Number_Ghost_Overflow
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-         with Ghost;
-       with procedure P_Lemma_Scan_Based_Number_Ghost_Step
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-         with Ghost;
- 
-       with function P_Raw_Unsigned_Last_Ghost
-         (Str      : String;
-          From, To : Integer)
-       return Positive
-         with Ghost;
-       with function P_Only_Decimal_Ghost
-         (Str      : String;
-          From, To : Integer)
-       return Boolean
-         with Ghost;
-       with function P_Scan_Based_Number_Ghost
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-       return P_Uns_Option
-         with Ghost;
-       with function P_Is_Unsigned_Ghost (Str : String) return Boolean
-         with Ghost;
-       with function P_Is_Value_Unsigned_Ghost
-         (Str : String;
-          Val : Uns) return Boolean
-         with Ghost;
- 
-       with procedure P_Prove_Scan_Only_Decimal_Ghost
-         (Str : String;
-          Val : Uns)
-         with Ghost;
-       with procedure P_Prove_Scan_Based_Number_Ghost_Eq
-         (Str1, Str2 : String;
-          From, To   : Integer;
-          Base       : Uns := 10;
-          Acc        : Uns := 0)
-         with Ghost;
- 
-    package Uns_Params is
-       subtype Uns_Option is P_Uns_Option with Ghost;
-       function Wrap_Option (Value : Uns) return Uns_Option renames
-         P_Wrap_Option;
-       function Hexa_To_Unsigned_Ghost
-         (X : Character) return Uns
-          renames P_Hexa_To_Unsigned_Ghost;
-       function Scan_Overflows_Ghost
-         (Digit : Uns;
-          Base  : Uns;
-          Acc   : Uns) return Boolean
-          renames P_Scan_Overflows_Ghost;
-       function Is_Raw_Unsigned_Format_Ghost
-         (Str : String) return Boolean
-          renames P_Is_Raw_Unsigned_Format_Ghost;
-       function Scan_Split_No_Overflow_Ghost
-         (Str      : String;
-          From, To : Integer) return Boolean
-          renames P_Scan_Split_No_Overflow_Ghost;
-       function Raw_Unsigned_No_Overflow_Ghost
-         (Str      : String;
-          From, To : Integer) return Boolean
-          renames P_Raw_Unsigned_No_Overflow_Ghost;
- 
-       function Exponent_Unsigned_Ghost
-         (Value : Uns;
-          Exp   : Natural;
-          Base  : Uns := 10) return Uns_Option
-          renames P_Exponent_Unsigned_Ghost;
-       procedure Lemma_Exponent_Unsigned_Ghost_Base
-         (Value : Uns;
-          Exp   : Natural;
-          Base  : Uns := 10)
-          renames P_Lemma_Exponent_Unsigned_Ghost_Base;
-       procedure Lemma_Exponent_Unsigned_Ghost_Overflow
-         (Value : Uns;
-          Exp   : Natural;
-          Base  : Uns := 10)
-          renames P_Lemma_Exponent_Unsigned_Ghost_Overflow;
-       procedure Lemma_Exponent_Unsigned_Ghost_Step
-         (Value : Uns;
-          Exp   : Natural;
-          Base  : Uns := 10)
-          renames P_Lemma_Exponent_Unsigned_Ghost_Step;
- 
-       function Scan_Raw_Unsigned_Ghost
-         (Str      : String;
-          From, To : Integer) return Uns
-          renames P_Scan_Raw_Unsigned_Ghost;
-       procedure Lemma_Scan_Based_Number_Ghost_Base
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-          renames P_Lemma_Scan_Based_Number_Ghost_Base;
-       procedure Lemma_Scan_Based_Number_Ghost_Underscore
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-          renames P_Lemma_Scan_Based_Number_Ghost_Underscore;
-       procedure Lemma_Scan_Based_Number_Ghost_Overflow
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-          renames P_Lemma_Scan_Based_Number_Ghost_Overflow;
-       procedure Lemma_Scan_Based_Number_Ghost_Step
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0)
-          renames P_Lemma_Scan_Based_Number_Ghost_Step;
- 
-       function Raw_Unsigned_Last_Ghost
-         (Str      : String;
-          From, To : Integer) return Positive
-          renames P_Raw_Unsigned_Last_Ghost;
-       function Only_Decimal_Ghost
-         (Str      : String;
-          From, To : Integer) return Boolean
-          renames P_Only_Decimal_Ghost;
-       function Scan_Based_Number_Ghost
-         (Str      : String;
-          From, To : Integer;
-          Base     : Uns := 10;
-          Acc      : Uns := 0) return Uns_Option
-          renames P_Scan_Based_Number_Ghost;
-       function Is_Unsigned_Ghost (Str : String) return Boolean
-          renames P_Is_Unsigned_Ghost;
-       function Is_Value_Unsigned_Ghost
-         (Str : String;
-          Val : Uns) return Boolean
-          renames P_Is_Value_Unsigned_Ghost;
- 
-       procedure Prove_Scan_Only_Decimal_Ghost
-         (Str : String;
-          Val : Uns)
-          renames P_Prove_Scan_Only_Decimal_Ghost;
-       procedure Prove_Scan_Based_Number_Ghost_Eq
-         (Str1, Str2 : String;
-          From, To   : Integer;
-          Base       : Uns := 10;
-          Acc        : Uns := 0)
-       renames P_Prove_Scan_Based_Number_Ghost_Eq;
-    end Uns_Params;
- 
-    --  Bundle Int type with other types, constants and subprograms used in
-    --  ghost code, so that this package can be instantiated once and used
-    --  multiple times as generic formal for a given Int type.
-    generic
-       type Int is range <>;
-       type Uns is mod <>;
- 
-       with package P_Uns_Params is new System.Val_Util.Uns_Params
-         (Uns => Uns, others => <>)
-          with Ghost;
- 
-       with function P_Abs_Uns_Of_Int (Val : Int) return Uns
-          with Ghost;
-       with function P_Is_Int_Of_Uns
-         (Minus : Boolean;
-          Uval  : Uns;
-          Val   : Int)
-       return Boolean
-          with Ghost;
-       with function P_Is_Integer_Ghost (Str : String) return Boolean
-          with Ghost;
-       with function P_Is_Value_Integer_Ghost
-         (Str : String;
-          Val : Int) return Boolean
-          with Ghost;
-       with procedure P_Prove_Scan_Only_Decimal_Ghost (Str : String; Val : Int)
-          with Ghost;
- 
-    package Int_Params is
-       package Uns_Params renames P_Uns_Params;
-       function Abs_Uns_Of_Int (Val : Int) return Uns renames
-         P_Abs_Uns_Of_Int;
-       function Is_Int_Of_Uns
-         (Minus : Boolean;
-          Uval  : Uns;
-          Val   : Int)
-       return Boolean
-          renames P_Is_Int_Of_Uns;
-       function Is_Integer_Ghost (Str : String) return Boolean renames
-         P_Is_Integer_Ghost;
-       function Is_Value_Integer_Ghost
-         (Str : String;
-          Val : Int) return Boolean
-          renames P_Is_Value_Integer_Ghost;
-       procedure Prove_Scan_Only_Decimal_Ghost (Str : String; Val : Int) renames
-         P_Prove_Scan_Only_Decimal_Ghost;
-    end Int_Params;
- 
- private
- 
-    ------------------------
-    -- Scan_Natural_Ghost --
-    ------------------------
- 
-    function Scan_Natural_Ghost
-      (Str : String;
-       P   : Natural;
-       Acc : Natural)
-       return Natural
-    is
-      (if P > Str'Last
-         or else Str (P) not in '0' .. '9' | '_'
-         or else Acc >= Integer'Last / 10
-       then
-         Acc
-       elsif Str (P) = '_' then
-         Scan_Natural_Ghost (Str, P + 1, Acc)
-       else
-         (declare
-            Shift_Acc : constant Natural :=
-              Acc * 10 +
-                (Integer'(Character'Pos (Str (P))) -
-                   Integer'(Character'Pos ('0')));
-          begin
-            Scan_Natural_Ghost (Str, P + 1, Shift_Acc)));
- 
  end System.Val_Util;
--- 237,240 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valwch.adb gcc-14.1.0/gcc/ada/libgnat/s-valwch.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-valwch.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valwch.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-valwch.ads gcc-14.1.0/gcc/ada/libgnat/s-valwch.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-valwch.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-valwch.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vauspe.adb gcc-14.1.0/gcc/ada/libgnat/s-vauspe.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-vauspe.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vauspe.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body System.Value_U_Spec with SP
*** 56,61 ****
--- 56,64 ----
  
     function Last_Hexa_Ghost (Str : String) return Positive is
     begin
+       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
+                        "occurs in ghost code, not executable");
+ 
        for J in Str'Range loop
           if Str (J) not in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' then
              return J - 1;
*************** package body System.Value_U_Spec with SP
*** 67,72 ****
--- 70,77 ----
        end loop;
  
        return Str'Last;
+ 
+       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Last_Hexa_Ghost;
  
     -----------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vauspe.ads gcc-14.1.0/gcc/ada/libgnat/s-vauspe.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vauspe.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vauspe.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** pragma Assertion_Policy (Pre
*** 44,50 ****
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Val_Util; use System.Val_Util;
  
  generic
  
--- 44,50 ----
                           Ghost              => Ignore,
                           Subprogram_Variant => Ignore);
  
! with System.Val_Spec; use System.Val_Spec;
  
  generic
  
*************** generic
*** 53,62 ****
  package System.Value_U_Spec with
     Ghost,
     SPARK_Mode,
!    Annotate => (GNATprove, Always_Return)
  is
     pragma Preelaborate;
  
     type Uns_Option (Overflow : Boolean := False) is record
        case Overflow is
           when True =>
--- 53,75 ----
  package System.Value_U_Spec with
     Ghost,
     SPARK_Mode,
!    Always_Terminates
  is
     pragma Preelaborate;
  
+    --  Maximum value of exponent for 10 that fits in Uns'Base
+    function Max_Log10 return Natural is
+      (case Uns'Base'Size is
+         when 8   => 2,
+         when 16  => 4,
+         when 32  => 9,
+         when 64  => 19,
+         when 128 => 38,
+         when others => raise Program_Error)
+    with Ghost;
+ 
+    pragma Annotate (Gnatcheck, Exempt_On, "Discriminated_Records",
+                     "variant record only used in proof code");
     type Uns_Option (Overflow : Boolean := False) is record
        case Overflow is
           when True =>
*************** is
*** 65,70 ****
--- 78,84 ----
              Value : Uns := 0;
        end case;
     end record;
+    pragma Annotate (Gnatcheck, Exempt_Off, "Discriminated_Records");
  
     function Wrap_Option (Value : Uns) return Uns_Option is
       (Overflow => False, Value => Value);
*************** is
*** 279,302 ****
              Exponent_Unsigned_Ghost (Value * Base, Exp - 1, Base));
     --  Normal case: exponentiation without overflows
  
     function Is_Raw_Unsigned_Format_Ghost (Str : String) return Boolean is
       (Is_Natural_Format_Ghost (Str)
        and then
          (declare
             Last_Num_Init   : constant Integer := Last_Number_Ghost (Str);
             Starts_As_Based : constant Boolean :=
!              Last_Num_Init < Str'Last - 1
!              and then Str (Last_Num_Init + 1) in '#' | ':'
!              and then Str (Last_Num_Init + 2) in
!                '0' .. '9' | 'a' .. 'f' | 'A' .. 'F';
             Last_Num_Based  : constant Integer :=
               (if Starts_As_Based
                then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. Str'Last))
                else Last_Num_Init);
             Is_Based        : constant Boolean :=
!              Starts_As_Based
!              and then Last_Num_Based < Str'Last
!              and then Str (Last_Num_Based + 1) = Str (Last_Num_Init + 1);
             First_Exp       : constant Integer :=
               (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
           begin
--- 293,342 ----
              Exponent_Unsigned_Ghost (Value * Base, Exp - 1, Base));
     --  Normal case: exponentiation without overflows
  
+    function Raw_Unsigned_Starts_As_Based_Ghost
+      (Str               : String;
+       Last_Num_Init, To : Integer)
+       return Boolean
+    is
+      (Last_Num_Init < To - 1
+       and then Str (Last_Num_Init + 1) in '#' | ':'
+       and then Str (Last_Num_Init + 2) in
+       '0' .. '9' | 'a' .. 'f' | 'A' .. 'F')
+    with Ghost,
+      Pre => Last_Num_Init in Str'Range
+      and then To in Str'Range;
+    --  Return True if Str starts as a based number
+ 
+    function Raw_Unsigned_Is_Based_Ghost
+      (Str            : String;
+       Last_Num_Init  : Integer;
+       Last_Num_Based : Integer;
+       To             : Integer)
+       return Boolean
+    is
+      (Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To)
+       and then Last_Num_Based < To
+       and then Str (Last_Num_Based + 1) = Str (Last_Num_Init + 1))
+    with Ghost,
+      Pre => Last_Num_Init in Str'Range
+      and then Last_Num_Based in Last_Num_Init .. Str'Last
+      and then To in Str'Range;
+    --  Return True if Str is a based number
+ 
     function Is_Raw_Unsigned_Format_Ghost (Str : String) return Boolean is
       (Is_Natural_Format_Ghost (Str)
        and then
          (declare
             Last_Num_Init   : constant Integer := Last_Number_Ghost (Str);
             Starts_As_Based : constant Boolean :=
!              Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, Str'Last);
             Last_Num_Based  : constant Integer :=
               (if Starts_As_Based
                then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. Str'Last))
                else Last_Num_Init);
             Is_Based        : constant Boolean :=
!              Raw_Unsigned_Is_Based_Ghost
!                (Str, Last_Num_Init, Last_Num_Based, Str'Last);
             First_Exp       : constant Integer :=
               (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
           begin
*************** is
*** 330,339 ****
          Init_Val        : constant Uns_Option :=
            Scan_Based_Number_Ghost (Str, From, Last_Num_Init);
          Starts_As_Based : constant Boolean :=
!           Last_Num_Init < To - 1
!           and then Str (Last_Num_Init + 1) in '#' | ':'
!           and then Str (Last_Num_Init + 2) in
!           '0' .. '9' | 'a' .. 'f' | 'A' .. 'F';
          Last_Num_Based  : constant Integer :=
            (if Starts_As_Based
             then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
--- 370,376 ----
          Init_Val        : constant Uns_Option :=
            Scan_Based_Number_Ghost (Str, From, Last_Num_Init);
          Starts_As_Based : constant Boolean :=
!           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
          Last_Num_Based  : constant Integer :=
            (if Starts_As_Based
             then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
*************** is
*** 378,395 ****
          Init_Val        : constant Uns_Option :=
            Scan_Based_Number_Ghost (Str, From, Last_Num_Init);
          Starts_As_Based : constant Boolean :=
!           Last_Num_Init < To - 1
!           and then Str (Last_Num_Init + 1) in '#' | ':'
!           and then Str (Last_Num_Init + 2) in
!           '0' .. '9' | 'a' .. 'f' | 'A' .. 'F';
          Last_Num_Based  : constant Integer :=
            (if Starts_As_Based
             then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
             else Last_Num_Init);
          Is_Based        : constant Boolean :=
!           Starts_As_Based
!           and then Last_Num_Based < To
!           and then Str (Last_Num_Based + 1) = Str (Last_Num_Init + 1);
          Based_Val       : constant Uns_Option :=
            (if Starts_As_Based and then not Init_Val.Overflow
             then Scan_Based_Number_Ghost
--- 415,427 ----
          Init_Val        : constant Uns_Option :=
            Scan_Based_Number_Ghost (Str, From, Last_Num_Init);
          Starts_As_Based : constant Boolean :=
!           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
          Last_Num_Based  : constant Integer :=
            (if Starts_As_Based
             then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
             else Last_Num_Init);
          Is_Based        : constant Boolean :=
!           Raw_Unsigned_Is_Based_Ghost (Str, Last_Num_Init, Last_Num_Based, To);
          Based_Val       : constant Uns_Option :=
            (if Starts_As_Based and then not Init_Val.Overflow
             then Scan_Based_Number_Ghost
*************** is
*** 468,485 ****
          Last_Num_Init   : constant Integer :=
            Last_Number_Ghost (Str (From .. To));
          Starts_As_Based : constant Boolean :=
!           Last_Num_Init < To - 1
!           and then Str (Last_Num_Init + 1) in '#' | ':'
!           and then Str (Last_Num_Init + 2) in
!           '0' .. '9' | 'a' .. 'f' | 'A' .. 'F';
          Last_Num_Based  : constant Integer :=
            (if Starts_As_Based
             then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
             else Last_Num_Init);
          Is_Based        : constant Boolean :=
!           Starts_As_Based
!           and then Last_Num_Based < To
!           and then Str (Last_Num_Based + 1) = Str (Last_Num_Init + 1);
          First_Exp       : constant Integer :=
            (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
        begin
--- 500,512 ----
          Last_Num_Init   : constant Integer :=
            Last_Number_Ghost (Str (From .. To));
          Starts_As_Based : constant Boolean :=
!           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
          Last_Num_Based  : constant Integer :=
            (if Starts_As_Based
             then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
             else Last_Num_Init);
          Is_Based        : constant Boolean :=
!           Raw_Unsigned_Is_Based_Ghost (Str, Last_Num_Init, Last_Num_Based, To);
          First_Exp       : constant Integer :=
            (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
        begin
*************** is
*** 492,498 ****
       Pre  => Str'Last /= Positive'Last
         and then From in Str'Range
         and then To in From .. Str'Last
!        and then Str (From) in '0' .. '9';
     --  Ghost function that returns the position of the cursor once an unsigned
     --  number has been seen.
  
--- 519,526 ----
       Pre  => Str'Last /= Positive'Last
         and then From in Str'Range
         and then To in From .. Str'Last
!        and then Str (From) in '0' .. '9',
!      Post => Raw_Unsigned_Last_Ghost'Result >= From;
     --  Ghost function that returns the position of the cursor once an unsigned
     --  number has been seen.
  
*************** is
*** 584,629 ****
     --  ghost code, so that this package can be instantiated once and used
     --  multiple times as generic formal for a given Int type.
  
-    package Uns_Params is new System.Val_Util.Uns_Params
-      (Uns                                        => Uns,
-       P_Uns_Option                               => Uns_Option,
-       P_Wrap_Option                              => Wrap_Option,
-       P_Hexa_To_Unsigned_Ghost                   => Hexa_To_Unsigned_Ghost,
-       P_Scan_Overflows_Ghost                     => Scan_Overflows_Ghost,
-       P_Is_Raw_Unsigned_Format_Ghost             =>
-          Is_Raw_Unsigned_Format_Ghost,
-       P_Scan_Split_No_Overflow_Ghost             =>
-          Scan_Split_No_Overflow_Ghost,
-       P_Raw_Unsigned_No_Overflow_Ghost           =>
-          Raw_Unsigned_No_Overflow_Ghost,
-       P_Exponent_Unsigned_Ghost                  => Exponent_Unsigned_Ghost,
-       P_Lemma_Exponent_Unsigned_Ghost_Base       =>
-          Lemma_Exponent_Unsigned_Ghost_Base,
-       P_Lemma_Exponent_Unsigned_Ghost_Overflow   =>
-          Lemma_Exponent_Unsigned_Ghost_Overflow,
-       P_Lemma_Exponent_Unsigned_Ghost_Step       =>
-          Lemma_Exponent_Unsigned_Ghost_Step,
-       P_Scan_Raw_Unsigned_Ghost                  => Scan_Raw_Unsigned_Ghost,
-       P_Lemma_Scan_Based_Number_Ghost_Base       =>
-          Lemma_Scan_Based_Number_Ghost_Base,
-       P_Lemma_Scan_Based_Number_Ghost_Underscore =>
-          Lemma_Scan_Based_Number_Ghost_Underscore,
-       P_Lemma_Scan_Based_Number_Ghost_Overflow   =>
-          Lemma_Scan_Based_Number_Ghost_Overflow,
-       P_Lemma_Scan_Based_Number_Ghost_Step       =>
-          Lemma_Scan_Based_Number_Ghost_Step,
-       P_Raw_Unsigned_Last_Ghost                  => Raw_Unsigned_Last_Ghost,
-       P_Only_Decimal_Ghost                       => Only_Decimal_Ghost,
-       P_Scan_Based_Number_Ghost                  => Scan_Based_Number_Ghost,
-       P_Is_Unsigned_Ghost                        =>
-          Is_Unsigned_Ghost,
-       P_Is_Value_Unsigned_Ghost                  =>
-          Is_Value_Unsigned_Ghost,
-       P_Prove_Scan_Only_Decimal_Ghost            =>
-          Prove_Scan_Only_Decimal_Ghost,
-       P_Prove_Scan_Based_Number_Ghost_Eq         =>
-          Prove_Scan_Based_Number_Ghost_Eq);
- 
  private
  
     ----------------
--- 612,617 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-veboop.adb gcc-14.1.0/gcc/ada/libgnat/s-veboop.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-veboop.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-veboop.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-veboop.ads gcc-14.1.0/gcc/ada/libgnat/s-veboop.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-veboop.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-veboop.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vector.ads gcc-14.1.0/gcc/ada/libgnat/s-vector.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vector.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vector.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vercon.adb gcc-14.1.0/gcc/ada/libgnat/s-vercon.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-vercon.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vercon.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vercon.ads gcc-14.1.0/gcc/ada/libgnat/s-vercon.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vercon.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-vercon.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vs_int.ads gcc-14.1.0/gcc/ada/libgnat/s-vs_int.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vs_int.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-vs_int.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,59 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                         S Y S T E M . V S _ I N T                        --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package contains specification functions for scanning signed Integer
+ --  values for use in Text_IO.Integer_IO, and the Value attribute.
+ 
+ --  Preconditions in this unit are meant for analysis only, not for run-time
+ --  checking, so that the expected exceptions are raised. This is enforced by
+ --  setting the corresponding assertion policy to Ignore. Postconditions and
+ --  contract cases should not be executed at runtime as well, in order not to
+ --  slow down the execution of these functions.
+ 
+ pragma Assertion_Policy (Pre                => Ignore,
+                          Post               => Ignore,
+                          Contract_Cases     => Ignore,
+                          Ghost              => Ignore,
+                          Subprogram_Variant => Ignore);
+ 
+ with System.Unsigned_Types;
+ with System.Value_I_Spec;
+ with System.Vs_Uns;
+ 
+ package System.Vs_Int with SPARK_Mode, Ghost is
+    pragma Preelaborate;
+ 
+    subtype Unsigned is Unsigned_Types.Unsigned;
+ 
+    package Spec is new System.Value_I_Spec
+      (Integer, Unsigned, System.Vs_Uns.Spec);
+ 
+ end System.Vs_Int;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vs_lli.ads gcc-14.1.0/gcc/ada/libgnat/s-vs_lli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vs_lli.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-vs_lli.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,60 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                         S Y S T E M . V S _ L L I                        --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package contains specification functions for scanning
+ --  Long_Long_Integer values for use in Text_IO.Integer_IO, and the Value
+ --  attribute.
+ 
+ --  Preconditions in this unit are meant for analysis only, not for run-time
+ --  checking, so that the expected exceptions are raised. This is enforced by
+ --  setting the corresponding assertion policy to Ignore. Postconditions and
+ --  contract cases should not be executed at runtime as well, in order not to
+ --  slow down the execution of these functions.
+ 
+ pragma Assertion_Policy (Pre                => Ignore,
+                          Post               => Ignore,
+                          Contract_Cases     => Ignore,
+                          Ghost              => Ignore,
+                          Subprogram_Variant => Ignore);
+ 
+ with System.Unsigned_Types;
+ with System.Value_I_Spec;
+ with System.Vs_LLU;
+ 
+ package System.Vs_LLI with SPARK_Mode, Ghost is
+    pragma Preelaborate;
+ 
+    subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
+ 
+    package Spec is new System.Value_I_Spec
+      (Long_Long_Integer, Long_Long_Unsigned, System.Vs_LLU.Spec);
+ 
+ end System.Vs_LLI;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vs_llu.ads gcc-14.1.0/gcc/ada/libgnat/s-vs_llu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vs_llu.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-vs_llu.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,58 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                         S Y S T E M . V S _ L L U                        --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package contains specification functions for scanning
+ --  Long_Long_Unsigned values for use in Text_IO.Modular_IO, and the Value
+ --  attribute.
+ 
+ --  Preconditions in this unit are meant for analysis only, not for run-time
+ --  checking, so that the expected exceptions are raised. This is enforced by
+ --  setting the corresponding assertion policy to Ignore. Postconditions and
+ --  contract cases should not be executed at runtime as well, in order not to
+ --  slow down the execution of these functions.
+ 
+ pragma Assertion_Policy (Pre                => Ignore,
+                          Post               => Ignore,
+                          Contract_Cases     => Ignore,
+                          Ghost              => Ignore,
+                          Subprogram_Variant => Ignore);
+ 
+ with System.Unsigned_Types;
+ with System.Value_U_Spec;
+ 
+ package System.Vs_LLU with SPARK_Mode, Ghost is
+    pragma Preelaborate;
+ 
+    subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
+ 
+    package Spec is new System.Value_U_Spec (Long_Long_Unsigned);
+ 
+ end System.Vs_LLU;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vs_uns.ads gcc-14.1.0/gcc/ada/libgnat/s-vs_uns.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vs_uns.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-vs_uns.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,57 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                         S Y S T E M . V S _ U N S                        --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package contains specification functions for scanning modular Unsigned
+ --  values for use in Text_IO.Modular_IO, and the Value attribute.
+ 
+ --  Preconditions in this unit are meant for analysis only, not for run-time
+ --  checking, so that the expected exceptions are raised. This is enforced by
+ --  setting the corresponding assertion policy to Ignore. Postconditions and
+ --  contract cases should not be executed at runtime as well, in order not to
+ --  slow down the execution of these functions.
+ 
+ pragma Assertion_Policy (Pre                => Ignore,
+                          Post               => Ignore,
+                          Contract_Cases     => Ignore,
+                          Ghost              => Ignore,
+                          Subprogram_Variant => Ignore);
+ 
+ with System.Unsigned_Types;
+ with System.Value_U_Spec;
+ 
+ package System.Vs_Uns with SPARK_Mode, Ghost is
+    pragma Preelaborate;
+ 
+    subtype Unsigned is Unsigned_Types.Unsigned;
+ 
+    package Spec is new System.Value_U_Spec (Unsigned);
+ 
+ end System.Vs_Uns;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vsllli.ads gcc-14.1.0/gcc/ada/libgnat/s-vsllli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vsllli.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-vsllli.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,60 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                        S Y S T E M . V S _ L L L I                       --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package contains specification functions for scanning
+ --  Long_Long_Long_Integer values for use in Text_IO.Integer_IO, and the Value
+ --  attribute.
+ 
+ --  Preconditions in this unit are meant for analysis only, not for run-time
+ --  checking, so that the expected exceptions are raised. This is enforced by
+ --  setting the corresponding assertion policy to Ignore. Postconditions and
+ --  contract cases should not be executed at runtime as well, in order not to
+ --  slow down the execution of these functions.
+ 
+ pragma Assertion_Policy (Pre                => Ignore,
+                          Post               => Ignore,
+                          Contract_Cases     => Ignore,
+                          Ghost              => Ignore,
+                          Subprogram_Variant => Ignore);
+ 
+ with System.Unsigned_Types;
+ with System.Value_I_Spec;
+ with System.Vs_LLLU;
+ 
+ package System.Vs_LLLI with SPARK_Mode, Ghost is
+    pragma Preelaborate;
+ 
+    subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
+ 
+    package Spec is new System.Value_I_Spec
+      (Long_Long_Long_Integer, Long_Long_Long_Unsigned, System.Vs_LLLU.Spec);
+ 
+ end System.Vs_LLLI;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-vslllu.ads gcc-14.1.0/gcc/ada/libgnat/s-vslllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-vslllu.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/s-vslllu.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,58 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                        S Y S T E M . V S _ L L L U                       --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2023-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package contains specification functions for scanning
+ --  Long_Long_Long_Unsigned values for use in Text_IO.Modular_IO, and the Value
+ --  attribute.
+ 
+ --  Preconditions in this unit are meant for analysis only, not for run-time
+ --  checking, so that the expected exceptions are raised. This is enforced by
+ --  setting the corresponding assertion policy to Ignore. Postconditions and
+ --  contract cases should not be executed at runtime as well, in order not to
+ --  slow down the execution of these functions.
+ 
+ pragma Assertion_Policy (Pre                => Ignore,
+                          Post               => Ignore,
+                          Contract_Cases     => Ignore,
+                          Ghost              => Ignore,
+                          Subprogram_Variant => Ignore);
+ 
+ with System.Unsigned_Types;
+ with System.Value_U_Spec;
+ 
+ package System.Vs_LLLU with SPARK_Mode, Ghost is
+    pragma Preelaborate;
+ 
+    subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
+ 
+    package Spec is new System.Value_U_Spec (Long_Long_Long_Unsigned);
+ 
+ end System.Vs_LLLU;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchcnv.adb gcc-14.1.0/gcc/ada/libgnat/s-wchcnv.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-wchcnv.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchcnv.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchcnv.ads gcc-14.1.0/gcc/ada/libgnat/s-wchcnv.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-wchcnv.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchcnv.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchcon.adb gcc-14.1.0/gcc/ada/libgnat/s-wchcon.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-wchcon.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchcon.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchcon.ads gcc-14.1.0/gcc/ada/libgnat/s-wchcon.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-wchcon.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchcon.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchjis.adb gcc-14.1.0/gcc/ada/libgnat/s-wchjis.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-wchjis.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchjis.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchjis.ads gcc-14.1.0/gcc/ada/libgnat/s-wchjis.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-wchjis.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchjis.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchstw.adb gcc-14.1.0/gcc/ada/libgnat/s-wchstw.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-wchstw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchstw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchstw.ads gcc-14.1.0/gcc/ada/libgnat/s-wchstw.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-wchstw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchstw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchwts.adb gcc-14.1.0/gcc/ada/libgnat/s-wchwts.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-wchwts.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchwts.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wchwts.ads gcc-14.1.0/gcc/ada/libgnat/s-wchwts.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-wchwts.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wchwts.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widboo.adb gcc-14.1.0/gcc/ada/libgnat/s-widboo.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-widboo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widboo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widboo.ads gcc-14.1.0/gcc/ada/libgnat/s-widboo.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widboo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widboo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widcha.adb gcc-14.1.0/gcc/ada/libgnat/s-widcha.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-widcha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widcha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widcha.ads gcc-14.1.0/gcc/ada/libgnat/s-widcha.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widcha.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widcha.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widenu.adb gcc-14.1.0/gcc/ada/libgnat/s-widenu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-widenu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widenu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widenu.ads gcc-14.1.0/gcc/ada/libgnat/s-widenu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widenu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widenu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widint.ads gcc-14.1.0/gcc/ada/libgnat/s-widint.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widlli.adb gcc-14.1.0/gcc/ada/libgnat/s-widlli.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-widlli.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widlli.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widlli.ads gcc-14.1.0/gcc/ada/libgnat/s-widlli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widlli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widlli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widllli.ads gcc-14.1.0/gcc/ada/libgnat/s-widllli.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widllli.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widllli.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widlllu.ads gcc-14.1.0/gcc/ada/libgnat/s-widlllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widlllu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widlllu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widllu.adb gcc-14.1.0/gcc/ada/libgnat/s-widllu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-widllu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widllu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widllu.ads gcc-14.1.0/gcc/ada/libgnat/s-widllu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widllu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widllu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widthi.adb gcc-14.1.0/gcc/ada/libgnat/s-widthi.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-widthi.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widthi.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 166,174 ****
        end loop;
  
        declare
!          F : constant Big_Integer := Big_10 ** (W - 2) with Ghost;
!          Q : constant Big_Integer := Big (T_Init) / F with Ghost;
!          R : constant Big_Integer := Big (T_Init) rem F with Ghost;
        begin
           pragma Assert (Q < Big_10);
           pragma Assert (Big (T_Init) = Q * F + R);
--- 166,174 ----
        end loop;
  
        declare
!          F : constant Big_Positive := Big_10 ** (W - 2) with Ghost;
!          Q : constant Big_Natural := Big (T_Init) / F with Ghost;
!          R : constant Big_Natural := Big (T_Init) rem F with Ghost;
        begin
           pragma Assert (Q < Big_10);
           pragma Assert (Big (T_Init) = Q * F + R);
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widthi.ads gcc-14.1.0/gcc/ada/libgnat/s-widthi.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widthi.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widthi.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widthu.adb gcc-14.1.0/gcc/ada/libgnat/s-widthu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-widthu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widthu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widthu.ads gcc-14.1.0/gcc/ada/libgnat/s-widthu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widthu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widthu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widuns.ads gcc-14.1.0/gcc/ada/libgnat/s-widuns.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widuns.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widuns.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widwch.adb gcc-14.1.0/gcc/ada/libgnat/s-widwch.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-widwch.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widwch.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-widwch.ads gcc-14.1.0/gcc/ada/libgnat/s-widwch.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-widwch.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-widwch.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-win32.ads gcc-14.1.0/gcc/ada/libgnat/s-win32.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-win32.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-win32.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-winext.ads gcc-14.1.0/gcc/ada/libgnat/s-winext.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-winext.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-winext.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2023, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2024, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wwdcha.adb gcc-14.1.0/gcc/ada/libgnat/s-wwdcha.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-wwdcha.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wwdcha.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wwdcha.ads gcc-14.1.0/gcc/ada/libgnat/s-wwdcha.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-wwdcha.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wwdcha.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                           --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                           --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wwdenu.adb gcc-14.1.0/gcc/ada/libgnat/s-wwdenu.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-wwdenu.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wwdenu.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wwdenu.ads gcc-14.1.0/gcc/ada/libgnat/s-wwdenu.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-wwdenu.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wwdenu.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wwdwch.adb gcc-14.1.0/gcc/ada/libgnat/s-wwdwch.adb
*** gcc-13.2.0/gcc/ada/libgnat/s-wwdwch.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wwdwch.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/s-wwdwch.ads gcc-14.1.0/gcc/ada/libgnat/s-wwdwch.ads
*** gcc-13.2.0/gcc/ada/libgnat/s-wwdwch.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/s-wwdwch.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-aix.ads gcc-14.1.0/gcc/ada/libgnat/system-aix.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-aix.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-aix.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (AIX/PPC Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (AIX/PPC Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 116,121 ****
--- 116,123 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-darwin-arm.ads gcc-14.1.0/gcc/ada/libgnat/system-darwin-arm.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-darwin-arm.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-darwin-arm.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (Darwin/ARM Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/ARM Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 132,137 ****
--- 132,139 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-darwin-ppc.ads gcc-14.1.0/gcc/ada/libgnat/system-darwin-ppc.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-darwin-ppc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-darwin-ppc.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (Darwin/PPC Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/PPC Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 132,137 ****
--- 132,139 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-darwin-x86.ads gcc-14.1.0/gcc/ada/libgnat/system-darwin-x86.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-darwin-x86.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-darwin-x86.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (Darwin/x86 Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/x86 Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 132,137 ****
--- 132,139 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-djgpp.ads gcc-14.1.0/gcc/ada/libgnat/system-djgpp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-djgpp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-djgpp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (DJGPP Version)                               --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (DJGPP Version)                               --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads gcc-14.1.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (DragonFly BSD/x86_64 Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (DragonFly BSD/x86_64 Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-freebsd.ads gcc-14.1.0/gcc/ada/libgnat/system-freebsd.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-freebsd.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-freebsd.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (FreeBSD Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (FreeBSD Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 107,112 ****
--- 107,114 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-hpux-ia64.ads gcc-14.1.0/gcc/ada/libgnat/system-hpux-ia64.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-hpux-ia64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-hpux-ia64.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                           (HP-UX/ia64 Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                           (HP-UX/ia64 Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-hpux.ads gcc-14.1.0/gcc/ada/libgnat/system-hpux.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-hpux.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-hpux.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                             (HP-UX Version)                              --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                             (HP-UX Version)                              --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-alpha.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-alpha.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-alpha.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-alpha.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (GNU-Linux/alpha Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/alpha Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-arm.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-arm.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-arm.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-arm.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (GNU-Linux/ARM Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/ARM Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 115,120 ****
--- 115,122 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-hppa.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-hppa.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-hppa.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-hppa.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (GNU/Linux-HPPA Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU/Linux-HPPA Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-ia64.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-ia64.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-ia64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-ia64.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (GNU-Linux/ia64 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/ia64 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 114,119 ****
--- 114,121 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-loongarch.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-loongarch.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-loongarch.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-loongarch.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,145 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                        GNAT RUN-TIME COMPONENTS                          --
+ --                                                                          --
+ --                               S Y S T E M                                --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                       (GNU-Linux/LoongArch Version)                      --
+ --                                                                          --
+ --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- This specification is derived from the Ada Reference Manual for use with --
+ -- GNAT. The copyright notice above, and the license provisions that follow --
+ -- apply solely to the  contents of the part following the private keyword. --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+ --                                                                          --
+ -- As a special exception under Section 7 of GPL version 3, you are granted --
+ -- additional permissions described in the GCC Runtime Library Exception,   --
+ -- version 3.1, as published by the Free Software Foundation.               --
+ --                                                                          --
+ -- You should have received a copy of the GNU General Public License and    --
+ -- a copy of the GCC Runtime Library Exception along with this program;     --
+ -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+ -- <http://www.gnu.org/licenses/>.                                          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ package System is
+    pragma Pure;
+    --  Note that we take advantage of the implementation permission to make
+    --  this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada
+    --  2005, this is Pure in any case (AI-362).
+ 
+    pragma No_Elaboration_Code_All;
+    --  Allow the use of that restriction in units that WITH this unit
+ 
+    type Name is (SYSTEM_NAME_GNAT);
+    System_Name : constant Name := SYSTEM_NAME_GNAT;
+ 
+    --  System-Dependent Named Numbers
+ 
+    Min_Int             : constant := -2 ** (Standard'Max_Integer_Size - 1);
+    Max_Int             : constant :=  2 ** (Standard'Max_Integer_Size - 1) - 1;
+ 
+    Max_Binary_Modulus    : constant := 2 ** Standard'Max_Integer_Size;
+    Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1;
+ 
+    Max_Base_Digits       : constant := Long_Long_Float'Digits;
+    Max_Digits            : constant := Long_Long_Float'Digits;
+ 
+    Max_Mantissa          : constant := Standard'Max_Integer_Size - 1;
+    Fine_Delta            : constant := 2.0 ** (-Max_Mantissa);
+ 
+    Tick                  : constant := 0.000_001;
+ 
+    --  Storage-related Declarations
+ 
+    type Address is private;
+    pragma Preelaborable_Initialization (Address);
+    Null_Address : constant Address;
+ 
+    Storage_Unit : constant := 8;
+    Word_Size    : constant := Standard'Word_Size;
+    Memory_Size  : constant := 2 ** Word_Size;
+ 
+    --  Address comparison
+ 
+    function "<"  (Left, Right : Address) return Boolean;
+    function "<=" (Left, Right : Address) return Boolean;
+    function ">"  (Left, Right : Address) return Boolean;
+    function ">=" (Left, Right : Address) return Boolean;
+    function "="  (Left, Right : Address) return Boolean;
+ 
+    pragma Import (Intrinsic, "<");
+    pragma Import (Intrinsic, "<=");
+    pragma Import (Intrinsic, ">");
+    pragma Import (Intrinsic, ">=");
+    pragma Import (Intrinsic, "=");
+ 
+    --  Other System-Dependent Declarations
+ 
+    type Bit_Order is (High_Order_First, Low_Order_First);
+    Default_Bit_Order : constant Bit_Order := Low_Order_First;
+    pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning
+ 
+    --  Priority-related Declarations (RM D.1)
+ 
+    Max_Priority           : constant Positive := 30;
+    Max_Interrupt_Priority : constant Positive := 31;
+ 
+    subtype Any_Priority       is Integer      range  0 .. 31;
+    subtype Priority           is Any_Priority range  0 .. 30;
+    subtype Interrupt_Priority is Any_Priority range 31 .. 31;
+ 
+    Default_Priority : constant Priority := 15;
+ 
+ private
+ 
+    type Address is mod Memory_Size;
+    Null_Address : constant Address := 0;
+ 
+    --------------------------------------
+    -- System Implementation Parameters --
+    --------------------------------------
+ 
+    --  These parameters provide information about the target that is used
+    --  by the compiler. They are in the private part of System, where they
+    --  can be accessed using the special circuitry in the Targparm unit
+    --  whose source should be consulted for more detailed descriptions
+    --  of the individual switch values.
+ 
+    Backend_Divide_Checks     : constant Boolean := False;
+    Backend_Overflow_Checks   : constant Boolean := True;
+    Command_Line_Args         : constant Boolean := True;
+    Configurable_Run_Time     : constant Boolean := False;
+    Denorm                    : constant Boolean := True;
+    Duration_32_Bits          : constant Boolean := False;
+    Exit_Status_Supported     : constant Boolean := True;
+    Machine_Overflows         : constant Boolean := False;
+    Machine_Rounds            : constant Boolean := True;
+    Preallocated_Stacks       : constant Boolean := False;
+    Signed_Zeros              : constant Boolean := True;
+    Stack_Check_Default       : constant Boolean := False;
+    Stack_Check_Probes        : constant Boolean := True;
+    Stack_Check_Limits        : constant Boolean := False;
+    Support_Aggregates        : constant Boolean := True;
+    Support_Composite_Assign  : constant Boolean := True;
+    Support_Composite_Compare : constant Boolean := True;
+    Support_Long_Shifts       : constant Boolean := True;
+    Always_Compatible_Rep     : constant Boolean := False;
+    Suppress_Standard_Library : constant Boolean := False;
+    Use_Ada_Main_Program_Name : constant Boolean := False;
+    Frontend_Exceptions       : constant Boolean := False;
+    ZCX_By_Default            : constant Boolean := True;
+ 
+ end System;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-m68k.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-m68k.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-m68k.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-m68k.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (GNU/Linux/m68k Version)                         --
  --                                                                          --
! --          Copyright (C) 2014-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU/Linux/m68k Version)                         --
  --                                                                          --
! --          Copyright (C) 2014-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 116,121 ****
--- 116,123 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-mips.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-mips.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-mips.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-mips.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (GNU-Linux/MIPS Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/MIPS Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 107,112 ****
--- 107,114 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-ppc.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-ppc.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-ppc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-ppc.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (GNU-Linux/PPC Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/PPC Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 115,120 ****
--- 115,122 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
*************** private
*** 142,147 ****
--- 144,150 ----
     Stack_Check_Probes        : constant Boolean := True;
     Stack_Check_Limits        : constant Boolean := False;
     Support_Aggregates        : constant Boolean := True;
+    Support_Atomic_Primitives : constant Boolean := True;
     Support_Composite_Assign  : constant Boolean := True;
     Support_Composite_Compare : constant Boolean := True;
     Support_Long_Shifts       : constant Boolean := True;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-riscv.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-riscv.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-riscv.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-riscv.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (GNU-Linux/RISC-V Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/RISC-V Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-s390.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-s390.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-s390.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-s390.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (GNU-Linux/s390 Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/s390 Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-sh4.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-sh4.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-sh4.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-sh4.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (GNU-Linux/sh4 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/sh4 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 114,119 ****
--- 114,121 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-sparc.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-sparc.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-sparc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-sparc.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (GNU/Linux-SPARC Version)                       --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU/Linux-SPARC Version)                       --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-linux-x86.ads gcc-14.1.0/gcc/ada/libgnat/system-linux-x86.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-linux-x86.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-linux-x86.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (GNU-Linux/x86 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/x86 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 114,119 ****
--- 114,121 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-lynxos178-ppc.ads gcc-14.1.0/gcc/ada/libgnat/system-lynxos178-ppc.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-lynxos178-ppc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-lynxos178-ppc.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (LynxOS-178 PPC Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (LynxOS-178 PPC Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 121,126 ****
--- 121,128 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-lynxos178-x86.ads gcc-14.1.0/gcc/ada/libgnat/system-lynxos178-x86.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-lynxos178-x86.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-lynxos178-x86.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (LynxOS-178 X86 Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (LynxOS-178 X86 Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 121,126 ****
--- 121,128 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-mingw.ads gcc-14.1.0/gcc/ada/libgnat/system-mingw.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-mingw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-mingw.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-qnx-arm.ads gcc-14.1.0/gcc/ada/libgnat/system-qnx-arm.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-qnx-arm.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-qnx-arm.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (QNX-ARM/AARCH64 Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (QNX-ARM/AARCH64 Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 95,120 ****
  
     --  Priority-related Declarations (RM D.1)
  
-    --  System priority is Ada priority + 1, so lies in the range 1 .. 63.
-    --
     --  If the scheduling policy is SCHED_FIFO or SCHED_RR the runtime makes use
     --  of the entire range provided by the system.
     --
     --  If the scheduling policy is SCHED_OTHER the only valid system priority
     --  is 1 and other values are simply ignored.
  
!    Max_Priority           : constant Positive := 61;
!    Max_Interrupt_Priority : constant Positive := 62;
  
!    subtype Any_Priority       is Integer      range  0 .. 62;
!    subtype Priority           is Any_Priority range  0 .. 61;
!    subtype Interrupt_Priority is Any_Priority range 62 .. 62;
  
!    Default_Priority : constant Priority := 30;
  
  private
  
     type Address is mod Memory_Size;
     Null_Address : constant Address := 0;
  
     --------------------------------------
--- 95,120 ----
  
     --  Priority-related Declarations (RM D.1)
  
     --  If the scheduling policy is SCHED_FIFO or SCHED_RR the runtime makes use
     --  of the entire range provided by the system.
     --
     --  If the scheduling policy is SCHED_OTHER the only valid system priority
     --  is 1 and other values are simply ignored.
  
!    Max_Priority           : constant Positive := 62;
!    Max_Interrupt_Priority : constant Positive := 63;
  
!    subtype Any_Priority       is Integer      range  1 .. 63;
!    subtype Priority           is Any_Priority range  1 .. 62;
!    subtype Interrupt_Priority is Any_Priority range 63 .. 63;
  
!    Default_Priority : constant Priority := 10;
  
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-rtems.ads gcc-14.1.0/gcc/ada/libgnat/system-rtems.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-rtems.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-rtems.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 123,128 ****
--- 123,130 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-solaris-sparc.ads gcc-14.1.0/gcc/ada/libgnat/system-solaris-sparc.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-solaris-sparc.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-solaris-sparc.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (SUN Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (SUN Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-solaris-x86.ads gcc-14.1.0/gcc/ada/libgnat/system-solaris-x86.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-solaris-x86.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-solaris-x86.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (x86 Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (x86 Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 106,111 ****
--- 106,113 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (VxWorks 6 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 6 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 119,124 ****
--- 119,126 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (VxWorks 6.x SMP PPC RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (VxWorks 6.x SMP PPC RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 120,130 ****
--- 120,133 ----
  
  private
  
+    pragma Linker_Options ("-msmp");
     pragma Linker_Options ("--specs=vxworks-smp-ppc-link.spec");
     pragma Linker_Options ("--specs=vxworks-ppc-link.spec");
     --  Setup proper set of -L's for this configuration
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (VxWorks 6.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks 6.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 124,129 ****
--- 124,131 ----
     --  Setup proper set of -L's for this configuration
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                        (VxWorks 7.x AARCH64 RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (VxWorks 7.x AARCH64 RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 124,129 ****
--- 124,131 ----
     --  Define the symbol wrs_rtp_base
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (VxWorks 7.x AARCH64 Kernel)                        --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7.x AARCH64 Kernel)                        --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 121,126 ****
--- 121,128 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                           (VxWorks 7 ARM RTP)                            --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                           (VxWorks 7 ARM RTP)                            --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 121,126 ****
--- 121,128 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-arm.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-arm.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-arm.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-arm.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (VxWorks Version ARM)                           --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks Version ARM)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 119,124 ****
--- 119,126 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 119,124 ****
--- 119,126 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
*************** private
*** 146,152 ****
     Stack_Check_Probes        : constant Boolean := True;
     Stack_Check_Limits        : constant Boolean := False;
     Support_Aggregates        : constant Boolean := True;
!    Support_Atomic_Primitives : constant Boolean := False;
     Support_Composite_Assign  : constant Boolean := True;
     Support_Composite_Compare : constant Boolean := True;
     Support_Long_Shifts       : constant Boolean := True;
--- 148,154 ----
     Stack_Check_Probes        : constant Boolean := True;
     Stack_Check_Limits        : constant Boolean := False;
     Support_Aggregates        : constant Boolean := True;
!    Support_Atomic_Primitives : constant Boolean := True;
     Support_Composite_Assign  : constant Boolean := True;
     Support_Composite_Compare : constant Boolean := True;
     Support_Long_Shifts       : constant Boolean := True;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                          (VxWorks 7.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks 7.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 124,129 ****
--- 124,131 ----
     --  Define the symbol wrs_rtp_base
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
*************** private
*** 151,157 ****
     Stack_Check_Probes        : constant Boolean := True;
     Stack_Check_Limits        : constant Boolean := False;
     Support_Aggregates        : constant Boolean := True;
!    Support_Atomic_Primitives : constant Boolean := False;
     Support_Composite_Assign  : constant Boolean := True;
     Support_Composite_Compare : constant Boolean := True;
     Support_Long_Shifts       : constant Boolean := True;
--- 153,159 ----
     Stack_Check_Probes        : constant Boolean := True;
     Stack_Check_Limits        : constant Boolean := False;
     Support_Aggregates        : constant Boolean := True;
!    Support_Atomic_Primitives : constant Boolean := True;
     Support_Composite_Assign  : constant Boolean := True;
     Support_Composite_Compare : constant Boolean := True;
     Support_Long_Shifts       : constant Boolean := True;
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                       (VxWorks 7.x PPC64 Kernel)                         --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (VxWorks 7.x PPC64 Kernel)                         --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 121,126 ****
--- 121,128 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                         (VxWorks 7.x PPC64 RTP)                          --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (VxWorks 7.x PPC64 RTP)                          --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 124,129 ****
--- 124,131 ----
     --  Define the symbol wrs_rtp_base
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version x86)                      --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version x86)                      --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 119,124 ****
--- 119,126 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                     (VxWorks 7 Version x86 for RTPs)                     --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                     (VxWorks 7 Version x86 for RTPs)                     --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 122,127 ****
--- 122,129 ----
     --  Define the symbol wrs_rtp_base
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                    (VxWorks 7 Kernel Version x86_64)                     --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (VxWorks 7 Kernel Version x86_64)                     --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** package System is
*** 119,124 ****
--- 119,126 ----
  private
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
*** gcc-13.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                 S p e c                                  --
  --                    (VxWorks 7 Version x86_64 for RTPs)                   --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (VxWorks 7 Version x86_64 for RTPs)                   --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** private
*** 122,127 ****
--- 122,129 ----
     --  Define the symbol wrs_rtp_base
  
     type Address is mod Memory_Size;
+    for Address'Size use Standard'Address_Size;
+ 
     Null_Address : constant Address := 0;
  
     --------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/link.c gcc-14.1.0/gcc/ada/link.c
*** gcc-13.2.0/gcc/ada/link.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/link.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/live.adb gcc-14.1.0/gcc/ada/live.adb
*** gcc-13.2.0/gcc/ada/live.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/live.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Live is
*** 344,350 ****
                 end if;
  
              when N_Entity'Range =>
!                if (Ekind (N) = E_Component) and then not Marked (Marks, N) then
                    if Present (Discriminant_Checking_Func (N)) then
                       Process (Discriminant_Checking_Func (N));
                    end if;
--- 344,350 ----
                 end if;
  
              when N_Entity'Range =>
!                if Ekind (N) = E_Component and then not Marked (Marks, N) then
                    if Present (Discriminant_Checking_Func (N)) then
                       Process (Discriminant_Checking_Func (N));
                    end if;
diff -Nrcpad gcc-13.2.0/gcc/ada/live.ads gcc-14.1.0/gcc/ada/live.ads
*** gcc-13.2.0/gcc/ada/live.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/live.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/local_restrict.adb gcc-14.1.0/gcc/ada/local_restrict.adb
*** gcc-13.2.0/gcc/ada/local_restrict.adb	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/local_restrict.adb	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,268 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                        L O C A L _ R E S T R I C T                       --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Aspects;        use Aspects;
+ with Atree;          use Atree;
+ with Einfo;          use Einfo;
+ with Einfo.Entities; use Einfo.Entities;
+ with Einfo.Utils;    use Einfo.Utils;
+ with Errout;         use Errout;
+ with Lib;            use Lib;
+ with Restrict;       use Restrict;
+ with Rident;         use Rident;
+ with Sem_Aux;        use Sem_Aux;
+ with Sem_Ch13;       use Sem_Ch13;
+ with Sem_Util;       use Sem_Util;
+ with Sinfo.Nodes;    use Sinfo.Nodes;
+ with Sinfo.Utils;    use Sinfo.Utils;
+ 
+ package body Local_Restrict is
+    function L_R_Image (L_R : Local_Restriction) return String is
+      (case L_R is when No_Secondary_Stack => "No_Secondary_Stack",
+         when No_Heap_Allocations => "No_Heap_Allocations");
+    --  Like Local_Restriction'Image, but with casing appropriate for
+    --  error messages.
+ 
+    function Active_Restriction
+      (L_R : Local_Restriction; E : Entity_Id := Current_Scope) return Node_Id;
+    --  Returns the Local_Restrictions aspect specification that is in effect
+    --  for E and that imposes the given local restriction; returns Empty if
+    --  no such aspect specification exists.
+ 
+    procedure Check_For_Corresponding_Local_Restriction
+      (Violated : All_Restrictions; N : Node_Id);
+    --  Generate error for node N if a violation of the given (non-local)
+    --  restriction implies a violation of a corresponding local restriction
+    --  that is in effect.
+ 
+    procedure Check_For_Local_Restriction
+      (L_R : Local_Restriction; N : Node_Id);
+    --  Generate error for node N if given restriction is in effect.
+ 
+    ------------------------
+    -- Active_Restriction --
+    ------------------------
+ 
+    function Active_Restriction
+      (L_R : Local_Restriction; E : Entity_Id := Current_Scope) return Node_Id
+    is
+       Scop   : Node_Id := E;
+       Result : Node_Id;
+    begin
+       --  If performance of this function becomes a problem then
+       --  one possible solution would be cache a set of scopes
+       --  for which it is known that no local restrictions apply.
+       --  Perhaps with fixed size (maybe 8?) and LRU replacement?
+       --
+       --  Or perhaps just a single global Boolean indicating that
+       --  no Local_Restrictions aspect specification has been seen
+       --  at any time in any context during the current compilation.
+       --  If the flag is set, then Active_Restriction returns Empty
+       --  without any looping.
+ 
+       while Present (Scop) loop
+          Result := Find_Aspect (Scop, Aspect_Local_Restrictions);
+          if Present (Result)
+            and then Parse_Aspect_Local_Restrictions (Result) (L_R)
+          then
+             return Result;
+          end if;
+ 
+          Scop := Enclosing_Declaration (Scop);
+          if Present (Scop) then
+             Scop := Parent (Scop);
+             if Present (Scop) then
+                --  For a subprogram associated with a type, we don't care
+                --  where the type was frozen; continue from the type.
+ 
+                if Nkind (Scop) = N_Freeze_Entity then
+                   Scop := Scope (Entity (Scop));
+                elsif Nkind (Parent (Scop)) = N_Freeze_Entity then
+                   Scop := Scope (Entity (Parent (Scop)));
+                else
+                   Scop := Find_Enclosing_Scope (Scop);
+                end if;
+             end if;
+          end if;
+       end loop;
+ 
+       return Empty;
+    end Active_Restriction;
+ 
+    -----------------------------------------------
+    -- Check_For_Corresponding_Local_Restriction --
+    -----------------------------------------------
+ 
+    procedure Check_For_Corresponding_Local_Restriction
+      (Violated : All_Restrictions; N : Node_Id)
+    is
+       L_R : Local_Restriction;
+    begin
+       --  Some restrictions map to a corresponding local restriction.
+       --  In those cases, check whether the local restriction is in effect.
+       --  This is the point at which the specific semantics of each
+       --  local restriction is effectively defined.
+       case Violated is
+          when No_Secondary_Stack =>
+             L_R := No_Secondary_Stack;
+          when No_Allocators | No_Implicit_Heap_Allocations =>
+             L_R := No_Heap_Allocations;
+          when others =>
+             return;
+       end case;
+ 
+       Check_For_Local_Restriction (L_R, N);
+    end Check_For_Corresponding_Local_Restriction;
+ 
+    ---------------------------------
+    -- Check_For_Local_Restriction --
+    ---------------------------------
+ 
+    procedure Check_For_Local_Restriction
+      (L_R : Local_Restriction; N : Node_Id)
+    is
+       L_R_Aspect_Spec : constant Node_Id := Active_Restriction (L_R);
+    begin
+       if Present (L_R_Aspect_Spec) then
+          Error_Msg_Sloc := Sloc (L_R_Aspect_Spec);
+          Error_Msg_N
+            ("violation of local restriction " & L_R_Image (L_R) & "#", N);
+       end if;
+    end Check_For_Local_Restriction;
+ 
+    ----------------
+    -- Check_Call --
+    ----------------
+ 
+    procedure Check_Call (Call : Node_Id; Callee : Entity_Id := Empty) is
+       Restrictions_Enforced_By_Callee : Local_Restriction_Set :=
+         (others => False);
+ 
+       Real_Callee : Entity_Id;
+    begin
+       if Present (Callee) then
+          Real_Callee := Ultimate_Alias (Callee);
+ 
+          if Is_Intrinsic_Subprogram (Real_Callee)
+            or else In_Predefined_Unit (Real_Callee)
+          then
+             --  If an intrinsic or predefined subprogram violates a local
+             --  restriction then we don't catch it here. For that, we rely
+             --  on the same mechanism that is used to catch violations of
+             --  the corresponding global restriction (i.e., the
+             --  Local_Restriction_Checking_Hook call in Check_Restriction).
+             return;
+          end if;
+ 
+          for L_R in Local_Restriction loop
+             if Present (Active_Restriction (L_R, Real_Callee)) then
+                Restrictions_Enforced_By_Callee (L_R) := True;
+             end if;
+          end loop;
+       end if;
+ 
+       for L_R in Local_Restriction loop
+          if not Restrictions_Enforced_By_Callee (L_R) then
+             --  Complain if caller must enforce L_R and callee
+             --  does not promise to do that.
+ 
+             Check_For_Local_Restriction (L_R, Call);
+          end if;
+       end loop;
+    end Check_Call;
+ 
+    -----------------------
+    --  Check_Overriding --
+    -----------------------
+ 
+    procedure Check_Overriding (Overrider_Op, Overridden_Op : Entity_Id) is
+       Ultimate_Overrider  : constant Entity_Id :=
+         Ultimate_Alias (Overrider_Op);
+       Ultimate_Overridden : constant Entity_Id :=
+         Ultimate_Alias (Overridden_Op);
+    begin
+       --  a minor optimization
+       if Ultimate_Overrider = Ultimate_Overridden then
+          return;
+       end if;
+ 
+       for L_R in Local_Restriction loop
+          if Present (Active_Restriction (L_R, Ultimate_Overridden))
+            and then No (Active_Restriction (L_R, Ultimate_Overrider))
+          then
+             Error_Msg_Sloc :=
+               Sloc (Active_Restriction (L_R, Ultimate_Overridden));
+             Error_Msg_N
+               ("overriding incompatible with local restriction " &
+                L_R_Image (L_R) & "#",
+                Ultimate_Overrider);
+          end if;
+       end loop;
+    end Check_Overriding;
+ 
+    ------------------------------------------
+    -- Check_Actual_Subprogram_For_Instance --
+    ------------------------------------------
+ 
+    procedure Check_Actual_Subprogram_For_Instance
+      (Actual_Subp_Name : Node_Id; Formal_Subp : Entity_Id)
+    is
+       Actual_Subp : Entity_Id := Empty;
+    begin
+       if Is_Entity_Name (Actual_Subp_Name) then
+          Actual_Subp := Entity (Actual_Subp_Name);
+       end if;
+ 
+       for L_R in Local_Restriction loop
+          --  Complain if some local restriction is in effect for
+          --  the formal subprogram but not for the actual subprogram.
+ 
+          if Present (Active_Restriction (L_R, Formal_Subp))
+            and then
+              (No (Actual_Subp)
+                or else No (Active_Restriction (L_R, Actual_Subp)))
+          then
+             Error_Msg_Sloc := Sloc (Active_Restriction (L_R, Formal_Subp));
+             Error_Msg_N
+               ("actual subprogram incompatible with local restriction " &
+                L_R_Image (L_R) & " #",
+                Actual_Subp_Name);
+          end if;
+       end loop;
+    end Check_Actual_Subprogram_For_Instance;
+ 
+ begin
+    --  Allow package Restrict to call package Local_Restrict without
+    --  pulling the bulk of semantics into the closure of package Restrict.
+    --
+    --  For example, if an allocator is encountered, then package
+    --  Restrict is called to check whether a No_Allocators restriction is
+    --  in effect. At that point, we also want to check whether a
+    --  No_Heap_Allocations local restriction is in effect. This
+    --  registration makes that possible.
+ 
+    Local_Restrictions.Local_Restriction_Checking_Hook :=
+      Check_For_Corresponding_Local_Restriction'Access;
+ end Local_Restrict;
diff -Nrcpad gcc-13.2.0/gcc/ada/local_restrict.ads gcc-14.1.0/gcc/ada/local_restrict.ads
*** gcc-13.2.0/gcc/ada/local_restrict.ads	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/ada/local_restrict.ads	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,59 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                        L O C A L _ R E S T R I C T                       --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is free software;  you can  redistribute it  and/or modify it under --
+ -- terms of the  GNU General Public License as published  by the Free Soft- --
+ -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
+ -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+ -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+ -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+ -- for  more details.  You should have  received  a copy of the GNU General --
+ -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+ -- http://www.gnu.org/licenses for a complete copy of the license.          --
+ --                                                                          --
+ -- GNAT was originally developed  by the GNAT team at  New York University. --
+ -- Extensive contributions were provided by Ada Core Technologies Inc.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  This package deals with the implementation of the Local_Restrictions aspect
+ 
+ with Types;  use Types;
+ 
+ package Local_Restrict is
+    type Local_Restriction is (No_Secondary_Stack, No_Heap_Allocations);
+    --  A local restriction can be mentioned in a Local_Restrictions aspect
+    --  specification. A local restriction might apply, for example, to a
+    --  single subprogram. No_Secondary_Stack corresponds to the
+    --  GNAT-defined restriction of the same name. No_Heap_Allocations
+    --  corresponds to the conjunction of the RM-defined restrictions
+    --  No_Allocators and No_Implicit_Heap_Allocations. If a subprogram is
+    --  subject to a local restriction, then any subprogram that it calls
+    --  shall be known to satisfy that restriction.
+ 
+    type Local_Restriction_Set is array (Local_Restriction) of Boolean;
+ 
+    procedure Check_Call (Call : Node_Id; Callee : Entity_Id := Empty);
+    --  Check whether a call violates any local restrictions that are
+    --  in effect. An empty callee indicates that the callee should be
+    --  conservatively assumed to violate any local restrictions that
+    --  are in effect (for example, for an entry call or a call through
+    --  an access-to-subprogram value).
+ 
+    procedure Check_Overriding (Overrider_Op, Overridden_Op : Entity_Id);
+    --  Check that all of the local restrictions in effect for
+    --  Overridden_Op are also in effect for Overrider_Op.
+ 
+    procedure Check_Actual_Subprogram_For_Instance
+      (Actual_Subp_Name : Node_Id; Formal_Subp : Entity_Id);
+    --  Check that all of the local restrictions in effect for
+    --  Formal_Subp are also in effect for Actual_Subp.
+ 
+ end Local_Restrict;
diff -Nrcpad gcc-13.2.0/gcc/ada/locales.c gcc-14.1.0/gcc/ada/locales.c
*** gcc-13.2.0/gcc/ada/locales.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/locales.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2010-2023, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2010-2024, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/make.adb gcc-14.1.0/gcc/ada/make.adb
*** gcc-13.2.0/gcc/ada/make.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/make.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/make.ads gcc-14.1.0/gcc/ada/make.ads
*** gcc-13.2.0/gcc/ada/make.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/make.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/make_util.adb gcc-14.1.0/gcc/ada/make_util.adb
*** gcc-13.2.0/gcc/ada/make_util.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/make_util.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/make_util.ads gcc-14.1.0/gcc/ada/make_util.ads
*** gcc-13.2.0/gcc/ada/make_util.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/make_util.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/makeusg.adb gcc-14.1.0/gcc/ada/makeusg.adb
*** gcc-13.2.0/gcc/ada/makeusg.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/makeusg.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/makeusg.ads gcc-14.1.0/gcc/ada/makeusg.ads
*** gcc-13.2.0/gcc/ada/makeusg.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/makeusg.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/mdll-fil.adb gcc-14.1.0/gcc/ada/mdll-fil.adb
*** gcc-13.2.0/gcc/ada/mdll-fil.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/mdll-fil.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/mdll-fil.ads gcc-14.1.0/gcc/ada/mdll-fil.ads
*** gcc-13.2.0/gcc/ada/mdll-fil.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/mdll-fil.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/mdll-utl.adb gcc-14.1.0/gcc/ada/mdll-utl.adb
*** gcc-13.2.0/gcc/ada/mdll-utl.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/mdll-utl.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/mdll-utl.ads gcc-14.1.0/gcc/ada/mdll-utl.ads
*** gcc-13.2.0/gcc/ada/mdll-utl.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/mdll-utl.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/mdll.adb gcc-14.1.0/gcc/ada/mdll.adb
*** gcc-13.2.0/gcc/ada/mdll.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/mdll.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/mdll.ads gcc-14.1.0/gcc/ada/mdll.ads
*** gcc-13.2.0/gcc/ada/mdll.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/mdll.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/mingw32.h gcc-14.1.0/gcc/ada/mingw32.h
*** gcc-13.2.0/gcc/ada/mingw32.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/mingw32.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2002-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2002-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/mkdir.c gcc-14.1.0/gcc/ada/mkdir.c
*** gcc-13.2.0/gcc/ada/mkdir.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/mkdir.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2002-2023, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2002-2024, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/namet-sp.adb gcc-14.1.0/gcc/ada/namet-sp.adb
*** gcc-13.2.0/gcc/ada/namet-sp.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/namet-sp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/namet-sp.ads gcc-14.1.0/gcc/ada/namet-sp.ads
*** gcc-13.2.0/gcc/ada/namet-sp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/namet-sp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/namet.adb gcc-14.1.0/gcc/ada/namet.adb
*** gcc-13.2.0/gcc/ada/namet.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/namet.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/namet.ads gcc-14.1.0/gcc/ada/namet.ads
*** gcc-13.2.0/gcc/ada/namet.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/namet.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/namet.h gcc-14.1.0/gcc/ada/namet.h
*** gcc-13.2.0/gcc/ada/namet.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/namet.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/nlists.adb gcc-14.1.0/gcc/ada/nlists.adb
*** gcc-13.2.0/gcc/ada/nlists.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/nlists.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/nlists.ads gcc-14.1.0/gcc/ada/nlists.ads
*** gcc-13.2.0/gcc/ada/nlists.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/nlists.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Nlists is
*** 43,51 ****
     --  this header, which may be used to access the nodes in the list using
     --  the set of routines that define this interface.
  
-    --  Note: node lists can contain either nodes or entities (extended nodes)
-    --  or a mixture of nodes and extended nodes.
- 
     function In_Same_List (N1, N2 : Node_Or_Entity_Id) return Boolean;
     pragma Inline (In_Same_List);
     --  Equivalent to List_Containing (N1) = List_Containing (N2)
--- 43,48 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/nlists.h gcc-14.1.0/gcc/ada/nlists.h
*** gcc-13.2.0/gcc/ada/nlists.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/nlists.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/opt.adb gcc-14.1.0/gcc/ada/opt.adb
*** gcc-13.2.0/gcc/ada/opt.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/opt.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/opt.ads gcc-14.1.0/gcc/ada/opt.ads
*** gcc-13.2.0/gcc/ada/opt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/opt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Opt is
*** 81,88 ****
     --  so that tests like Ada_Version >= Ada_95 are legitimate and useful.
     --  Think twice before using "="; Ada_Version >= Ada_2012 is more likely
     --  what you want, because it will apply to future versions of the language.
     --  Note that Ada_With_All_Extensions should always be last since it should
!    --  always be a superset of the other Ada versions.
  
     --  WARNING: There is a matching C declaration of this type in fe.h
  
--- 81,93 ----
     --  so that tests like Ada_Version >= Ada_95 are legitimate and useful.
     --  Think twice before using "="; Ada_Version >= Ada_2012 is more likely
     --  what you want, because it will apply to future versions of the language.
+    --
     --  Note that Ada_With_All_Extensions should always be last since it should
!    --  always be a superset of the other Ada versions. Likewise, the
!    --  penultimate one should be Ada_With_Core_Extensions.
!    --
!    --  Use the ..._Extensions_Allowed functions below instead of referring
!    --  directly to Ada_With_..._Extensions.
  
     --  WARNING: There is a matching C declaration of this type in fe.h
  
*************** package Opt is
*** 100,105 ****
--- 105,120 ----
  
     --  WARNING: There is a matching C declaration of this variable in fe.h
  
+    function All_Extensions_Allowed return Boolean is
+      (Ada_Version = Ada_With_All_Extensions);
+    --  True if GNAT specific language extensions are allowed. See GNAT RM for
+    --  details.
+ 
+    function Core_Extensions_Allowed return Boolean is
+      (Ada_Version >= Ada_With_Core_Extensions);
+    --  True if some but not all GNAT specific language extensions are allowed.
+    --  See GNAT RM for details.
+ 
     Ada_Version_Pragma : Node_Id := Empty;
     --  Reflects the Ada_xxx pragma that resulted in setting Ada_Version. Used
     --  to specialize error messages complaining about the Ada version in use.
*************** package Opt is
*** 194,209 ****
     --  Unchecked_Conversion instantiations require checking based on annotated
     --  values.
  
-    Back_End_Handles_Limited_Types : Boolean;
-    --  This flag is set True if the back end can properly handle limited or
-    --  other by reference types, and avoid copies. If this flag is False, then
-    --  the front end does special expansion for if/case expressions to make
-    --  sure that no copy occurs. If the flag is True, then the expansion for
-    --  if and case expressions relies on the back end properly handling things.
-    --  Currently the default is False for all cases (set in gnat1drv). The
-    --  default can be modified using -gnatd.L (sets the flag True). This is
-    --  used to test the possibility of having the backend handle this.
- 
     Back_End_Inlining : Boolean := False;
     --  GNAT
     --  Set True to activate inlining by back-end expansion. This is the normal
--- 209,214 ----
*************** package Opt is
*** 594,609 ****
     --  Set to True to convert nonbinary modular additions into code
     --  that relies on the front-end expansion of operator Mod.
  
-    function All_Extensions_Allowed return Boolean is
-      (Ada_Version = Ada_With_All_Extensions);
-    --  True if GNAT specific language extensions are allowed. See GNAT RM for
-    --  details.
- 
-    function Core_Extensions_Allowed return Boolean is
-      (Ada_Version >= Ada_With_Core_Extensions);
-    --  True if some but not all GNAT specific language extensions are allowed.
-    --  See GNAT RM for details.
- 
     type External_Casing_Type is (
       As_Is,       -- External names cased as they appear in the Ada source
       Uppercase,   -- External names forced to all uppercase letters
--- 599,604 ----
*************** package Opt is
*** 1337,1342 ****
--- 1332,1342 ----
     --  GNATPREP
     --  Set to True if -C switch used.
  
+    Reverse_Bit_Order_Threshold : Int := -1;
+    --  GNAT
+    --  Set to the threshold from which the RM 13.5.1(13.3/2) clause applies,
+    --  or -1 if the size of the largest machine scalar is to be used.
+ 
     RTS_Lib_Path_Name : String_Ptr := null;
     RTS_Src_Path_Name : String_Ptr := null;
     --  GNAT
diff -Nrcpad gcc-13.2.0/gcc/ada/osint-b.adb gcc-14.1.0/gcc/ada/osint-b.adb
*** gcc-13.2.0/gcc/ada/osint-b.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint-b.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint-b.ads gcc-14.1.0/gcc/ada/osint-b.ads
*** gcc-13.2.0/gcc/ada/osint-b.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint-b.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint-c.adb gcc-14.1.0/gcc/ada/osint-c.adb
*** gcc-13.2.0/gcc/ada/osint-c.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint-c.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint-c.ads gcc-14.1.0/gcc/ada/osint-c.ads
*** gcc-13.2.0/gcc/ada/osint-c.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint-c.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint-l.adb gcc-14.1.0/gcc/ada/osint-l.adb
*** gcc-13.2.0/gcc/ada/osint-l.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint-l.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint-l.ads gcc-14.1.0/gcc/ada/osint-l.ads
*** gcc-13.2.0/gcc/ada/osint-l.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint-l.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint-m.adb gcc-14.1.0/gcc/ada/osint-m.adb
*** gcc-13.2.0/gcc/ada/osint-m.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint-m.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint-m.ads gcc-14.1.0/gcc/ada/osint-m.ads
*** gcc-13.2.0/gcc/ada/osint-m.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint-m.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint.adb gcc-14.1.0/gcc/ada/osint.adb
*** gcc-13.2.0/gcc/ada/osint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/osint.ads gcc-14.1.0/gcc/ada/osint.ads
*** gcc-13.2.0/gcc/ada/osint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/osint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/output.adb gcc-14.1.0/gcc/ada/output.adb
*** gcc-13.2.0/gcc/ada/output.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/output.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/output.ads gcc-14.1.0/gcc/ada/output.ads
*** gcc-13.2.0/gcc/ada/output.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/output.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch10.adb gcc-14.1.0/gcc/ada/par-ch10.adb
*** gcc-13.2.0/gcc/ada/par-ch10.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch10.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch11.adb gcc-14.1.0/gcc/ada/par-ch11.adb
*** gcc-13.2.0/gcc/ada/par-ch11.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch11.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch12.adb gcc-14.1.0/gcc/ada/par-ch12.adb
*** gcc-13.2.0/gcc/ada/par-ch12.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch12.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch13.adb gcc-14.1.0/gcc/ada/par-ch13.adb
*** gcc-13.2.0/gcc/ada/par-ch13.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch13.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch13 is
*** 945,951 ****
           --  Here aspects are allowed, and we store them
  
           else
-             Set_Parent (Aspects, Decl);
              Set_Aspect_Specifications (Decl, Aspects);
           end if;
        end if;
--- 945,950 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch2.adb gcc-14.1.0/gcc/ada/par-ch2.adb
*** gcc-13.2.0/gcc/ada/par-ch2.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch2.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch2 is
*** 225,230 ****
--- 225,231 ----
     function P_Interpolated_String_Literal return Node_Id is
        Elements_List : constant List_Id := New_List;
        NL_Node       : Node_Id;
+       Saved_State   : constant Boolean := Inside_Interpolated_String_Literal;
        String_Node   : Node_Id;
  
     begin
*************** package body Ch2 is
*** 245,253 ****
              --  Interpolated expression
  
              if Token = Tok_Left_Curly_Bracket then
!                Scan; --  past '{'
!                Append_To (Elements_List, P_Expression);
!                T_Right_Curly_Bracket;
              else
                 if Prev_Token = Tok_String_Literal then
                    NL_Node := New_Node (N_String_Literal, Token_Ptr);
--- 246,262 ----
              --  Interpolated expression
  
              if Token = Tok_Left_Curly_Bracket then
!                declare
!                   Saved_In_Expr : constant Boolean :=
!                     Inside_Interpolated_String_Expression;
! 
!                begin
!                   Scan; --  past '{'
!                   Inside_Interpolated_String_Expression := True;
!                   Append_To (Elements_List, P_Expression);
!                   Inside_Interpolated_String_Expression := Saved_In_Expr;
!                   T_Right_Curly_Bracket;
!                end;
              else
                 if Prev_Token = Tok_String_Literal then
                    NL_Node := New_Node (N_String_Literal, Token_Ptr);
*************** package body Ch2 is
*** 266,272 ****
           end loop;
        end if;
  
!       Inside_Interpolated_String_Literal := False;
        Set_Expressions (String_Node, Elements_List);
  
        return String_Node;
--- 275,281 ----
           end loop;
        end if;
  
!       Inside_Interpolated_String_Literal := Saved_State;
        Set_Expressions (String_Node, Elements_List);
  
        return String_Node;
*************** package body Ch2 is
*** 371,377 ****
  
        if SIS_Entry_Active then
           Import_Check_Required :=
!            (Prag_Name = Name_Import) or else (Prag_Name = Name_Interface);
        else
           Import_Check_Required := False;
        end if;
--- 380,386 ----
  
        if SIS_Entry_Active then
           Import_Check_Required :=
!            Prag_Name = Name_Import or else Prag_Name = Name_Interface;
        else
           Import_Check_Required := False;
        end if;
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch3.adb gcc-14.1.0/gcc/ada/par-ch3.adb
*** gcc-13.2.0/gcc/ada/par-ch3.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch3.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch3 is
*** 1466,1472 ****
           Save_Scan_State (Scan_State); -- at colon
           T_Colon;
  
!       --  If we have identifier followed by := then we assume that what is
        --  really meant is an assignment statement. The assignment statement
        --  is scanned out and added to the list of declarations. An exception
        --  occurs if the := is followed by the keyword constant, in which case
--- 1466,1472 ----
           Save_Scan_State (Scan_State); -- at colon
           T_Colon;
  
!       --  If we have an identifier followed by := then we assume that what is
        --  really meant is an assignment statement. The assignment statement
        --  is scanned out and added to the list of declarations. An exception
        --  occurs if the := is followed by the keyword constant, in which case
*************** package body Ch3 is
*** 3064,3073 ****
--- 3064,3088 ----
        elsif Token = Tok_Dot_Dot then
           Range_Node := New_Node (N_Range, Token_Ptr);
           Set_Low_Bound (Range_Node, Expr_Node);
+ 
+          if Style_Check then
+             Style.Check_Xtra_Parens (Expr_Node);
+          end if;
+ 
           Scan; -- past ..
           Expr_Node := P_Expression;
           Check_Simple_Expression (Expr_Node);
           Set_High_Bound (Range_Node, Expr_Node);
+ 
+          --  If Expr_Node (ignoring parentheses) is not a simple expression
+          --  then emit a style check.
+ 
+          if Style_Check
+            and then Nkind (Expr_Node) not in N_Op_Boolean | N_Subexpr
+          then
+             Style.Check_Xtra_Parens (Expr_Node);
+          end if;
+ 
           return Range_Node;
  
        --  Otherwise we must have a subtype mark, or an Ada 2012 iterator
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch4.adb gcc-14.1.0/gcc/ada/par-ch4.adb
*** gcc-13.2.0/gcc/ada/par-ch4.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch4.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch4 is
*** 34,50 ****
  
     --  Attributes that cannot have arguments
  
!    Is_Parameterless_Attribute : constant Attribute_Class_Array :=
!      (Attribute_Base         => True,
!       Attribute_Body_Version => True,
!       Attribute_Class        => True,
!       Attribute_External_Tag => True,
!       Attribute_Img          => True,
!       Attribute_Loop_Entry   => True,
!       Attribute_Old          => True,
!       Attribute_Result       => True,
!       Attribute_Stub_Type    => True,
!       Attribute_Version      => True,
        Attribute_Type_Key     => True,
        others                 => False);
     --  This map contains True for parameterless attributes that return a string
--- 34,50 ----
  
     --  Attributes that cannot have arguments
  
!    Is_Parameterless_Attribute : constant Attribute_Set :=
!      (Attribute_Base         |
!       Attribute_Body_Version |
!       Attribute_Class        |
!       Attribute_External_Tag |
!       Attribute_Img          |
!       Attribute_Loop_Entry   |
!       Attribute_Old          |
!       Attribute_Result       |
!       Attribute_Stub_Type    |
!       Attribute_Version      |
        Attribute_Type_Key     => True,
        others                 => False);
     --  This map contains True for parameterless attributes that return a string
*************** package body Ch4 is
*** 1393,1398 ****
--- 1393,1400 ----
        Start_Token : constant Token_Type := Token;
        --  Used to prevent mismatches (...] and [...)
  
+       Saved_Delta_Aggregate_Flag : constant Boolean := Inside_Delta_Aggregate;
+ 
     --  Start of processing for P_Aggregate_Or_Paren_Expr
  
     begin
*************** package body Ch4 is
*** 1497,1502 ****
--- 1499,1505 ----
              Scan; -- past WITH
              if Token = Tok_Delta then
                 Scan; -- past DELTA
+                Inside_Delta_Aggregate := True;
                 Aggregate_Node := New_Node (N_Delta_Aggregate, Lparen_Sloc);
                 Set_Expression (Aggregate_Node, Expr_Node);
                 Expr_Node := Empty;
*************** package body Ch4 is
*** 1707,1712 ****
--- 1710,1725 ----
        end if;
  
        Set_Component_Associations (Aggregate_Node, Assoc_List);
+ 
+       --  Inside_Delta_Aggregate is only tested if Serious_Errors = 0, so
+       --  it is ok if we fail to restore the saved I_D_A value in an error
+       --  path. In particular, it is ok that we do not restore it if
+       --  Error_Resync is propagated. Earlier return statements (which return
+       --  without restoring the saved I_D_A value) should either be in error
+       --  paths or in paths where I_D_A could not have been modified.
+ 
+       Inside_Delta_Aggregate := Saved_Delta_Aggregate_Flag;
+ 
        return Aggregate_Node;
     end P_Aggregate_Or_Paren_Expr;
  
*************** package body Ch4 is
*** 2519,2524 ****
--- 2532,2640 ----
           Expr_Form := EF_Simple;
        end if;
  
+       --  If all extensions are enabled and we have a deep delta aggregate
+       --  whose type is an array type with an element type that is a
+       --  record type, then we can encounter legal things like
+       --    with delta (Some_Index_Expression).Some_Component
+       --  where a parenthesized expression precedes a dot.
+       --  Similarly, if the element type is an array type then we can see
+       --    with delta (Some_Index_Expression)(Another_Index_Expression)
+       --  where a parenthesized expression precedes a left parenthesis.
+ 
+       if Token in Tok_Dot | Tok_Left_Paren
+         and then Prev_Token = Tok_Right_Paren
+         and then Serious_Errors_Detected = 0
+         and then Inside_Delta_Aggregate
+         and then All_Extensions_Allowed
+       then
+          if Token = Tok_Dot then
+             Node2 := New_Node (N_Selected_Component, Token_Ptr);
+             Scan; -- past dot
+             declare
+                Tail  : constant Node_Id := P_Simple_Expression;
+                --  remaining selectors occurring after the dot
+ 
+                Rover : Node_Id := Tail;
+                Prev  : Node_Id := Empty;
+             begin
+                --  If Tail already has a prefix, then we want to prepend
+                --  Node1 onto that prefix and then return Tail.
+                --  Otherwise, Tail should simply be an identifier so
+                --  we want to build a Selected_Component with Tail as the
+                --  selector name and return that.
+ 
+                Set_Prefix (Node2, Node1);
+ 
+                while Nkind (Rover)
+                        in N_Indexed_Component | N_Selected_Component loop
+                   Prev := Rover;
+                   Rover := Prefix (Rover);
+                end loop;
+ 
+                case Nkind (Prev) is
+                   when N_Selected_Component | N_Indexed_Component =>
+                      --  We've scanned a dot, so an identifier should follow
+                      if Nkind (Prefix (Prev)) = N_Identifier then
+                         Set_Selector_Name (Node2, Prefix (Prev));
+                         Set_Prefix (Prev, Node2);
+                         return Tail;
+                      end if;
+ 
+                   when N_Empty =>
+                      --  We've scanned a dot, so an identifier should follow
+                      if Nkind (Tail) = N_Identifier then
+                         Set_Selector_Name (Node2, Tail);
+                         return Node2;
+                      end if;
+ 
+                   when others =>
+                      null;
+                end case;
+ 
+                --  fall through to error case
+             end;
+          else
+             Node2 := New_Node (N_Indexed_Component, Token_Ptr);
+             declare
+                Tail  : constant Node_Id := P_Simple_Expression;
+                --  remaining selectors
+ 
+                Rover : Node_Id := Tail;
+                Prev  : Node_Id := Empty;
+             begin
+                --  If Tail already has a prefix, then we want to prepend
+                --  Node1 onto that prefix and then return Tail.
+                --  Otherwise, Tail should be an index expression and
+                --  we want to build an Indexed_Component with Tail as the
+                --  index value and return that.
+ 
+                Set_Prefix (Node2, Node1);
+ 
+                while Nkind (Rover)
+                        in N_Indexed_Component | N_Selected_Component loop
+                   Prev := Rover;
+                   Rover := Prefix (Rover);
+                end loop;
+ 
+                case Nkind (Prev) is
+                   when N_Selected_Component | N_Indexed_Component =>
+                      Set_Expressions (Node2, New_List (Prefix (Prev)));
+                      Set_Prefix (Prev, Node2);
+                      return Tail;
+ 
+                   when N_Empty =>
+                      Set_Expressions (Node2, New_List (Tail));
+                      return Node2;
+ 
+                   when others =>
+                      null;
+                end case;
+ 
+                --  fall through to error case
+             end;
+          end if;
+       end if;
+ 
        --  Come here at end of simple expression, where we do a couple of
        --  special checks to improve error recovery.
  
*************** package body Ch4 is
*** 2529,2536 ****
        if Token = Tok_Dot then
           Error_Msg_SC ("prefix for selection is not a name");
  
!          --  If qualified expression, comment and continue, otherwise something
!          --  is pretty nasty so do an Error_Resync call.
  
           if Ada_Version < Ada_2012
             and then Nkind (Node1) = N_Qualified_Expression
--- 2645,2652 ----
        if Token = Tok_Dot then
           Error_Msg_SC ("prefix for selection is not a name");
  
!          --  If qualified expression, comment and continue, otherwise
!          --  something is pretty nasty so do an Error_Resync call.
  
           if Ada_Version < Ada_2012
             and then Nkind (Node1) = N_Qualified_Expression
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch5.adb gcc-14.1.0/gcc/ada/par-ch5.adb
*** gcc-13.2.0/gcc/ada/par-ch5.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch5.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch5 is
*** 1196,1202 ****
             and then Start_Column /= Scopes (Scope.Last).Ecol
           then
              Error_Msg_Col := Scopes (Scope.Last).Ecol;
!             Error_Msg_SC ("(style) this token should be@");
           end if;
        end Check_If_Column;
  
--- 1196,1202 ----
             and then Start_Column /= Scopes (Scope.Last).Ecol
           then
              Error_Msg_Col := Scopes (Scope.Last).Ecol;
!             Error_Msg_SC ("(style) this token should be@?l?");
           end if;
        end Check_If_Column;
  
*************** package body Ch5 is
*** 1355,1376 ****
  
           return Cond;
  
!       --  Otherwise check for redundant parentheses but do not emit messages
!       --  about expressions that require parentheses (e.g. conditional,
!       --  quantified or declaration expressions).
  
        else
!          if Style_Check
!            and then
!              Paren_Count (Cond) >
!                (if Nkind (Cond) in N_Case_Expression
!                                  | N_Expression_With_Actions
!                                  | N_If_Expression
!                                  | N_Quantified_Expression
!                 then 1
!                 else 0)
!          then
!             Style.Check_Xtra_Parens (First_Sloc (Cond));
           end if;
  
           --  And return the result
--- 1355,1365 ----
  
           return Cond;
  
!       --  Otherwise check for redundant parentheses
  
        else
!          if Style_Check then
!             Style.Check_Xtra_Parens (Cond);
           end if;
  
           --  And return the result
*************** package body Ch5 is
*** 1395,1400 ****
--- 1384,1390 ----
  
     function P_Case_Statement return Node_Id is
        Case_Node         : Node_Id;
+       Expr              : Node_Id;
        Alternatives_List : List_Id;
        First_When_Loc    : Source_Ptr;
  
*************** package body Ch5 is
*** 1409,1415 ****
        Scopes (Scope.Last).Node := Case_Node;
  
        Scan; -- past CASE
!       Set_Expression (Case_Node, P_Expression_No_Right_Paren);
        TF_Is;
  
        --  Prepare to parse case statement alternatives
--- 1399,1412 ----
        Scopes (Scope.Last).Node := Case_Node;
  
        Scan; -- past CASE
! 
!       Expr := P_Expression_No_Right_Paren;
! 
!       if Style_Check then
!          Style.Check_Xtra_Parens (Expr);
!       end if;
! 
!       Set_Expression (Case_Node, Expr);
        TF_Is;
  
        --  Prepare to parse case statement alternatives
*************** package body Ch5 is
*** 2206,2212 ****
                and then Token_Is_At_Start_Of_Line
                and then Start_Column /= Error_Msg_Col
              then
!                Error_Msg_SC ("(style) BEGIN in wrong column, should be@");
  
              else
                 Scopes (Scope.Last).Ecol := Start_Column;
--- 2203,2209 ----
                and then Token_Is_At_Start_Of_Line
                and then Start_Column /= Error_Msg_Col
              then
!                Error_Msg_SC ("(style) BEGIN in wrong column, should be@?l?");
  
              else
                 Scopes (Scope.Last).Ecol := Start_Column;
*************** package body Ch5 is
*** 2244,2250 ****
              --  END, EOF, or a token which starts declarations.
  
              elsif Parent_Nkind = N_Package_Body
!               and then (Token in Tok_End | Tok_EOF | Token_Class_Declk)
              then
                 Set_Null_HSS (Parent);
  
--- 2241,2247 ----
              --  END, EOF, or a token which starts declarations.
  
              elsif Parent_Nkind = N_Package_Body
!               and then Token in Tok_End | Tok_EOF | Token_Class_Declk
              then
                 Set_Null_HSS (Parent);
  
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch6.adb gcc-14.1.0/gcc/ada/par-ch6.adb
*** gcc-13.2.0/gcc/ada/par-ch6.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch6.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch6 is
*** 935,941 ****
                    --  the body.
  
                    if Is_Non_Empty_List (Aspects) then
-                      Set_Parent (Aspects, Body_Node);
                       Set_Aspect_Specifications (Body_Node, Aspects);
                    end if;
  
--- 935,940 ----
*************** package body Ch6 is
*** 974,980 ****
  
           else
              if Is_Non_Empty_List (Aspects) then
-                Set_Parent (Aspects, Decl_Node);
                 Set_Aspect_Specifications (Decl_Node, Aspects);
              end if;
  
--- 973,978 ----
*************** package body Ch6 is
*** 1713,1719 ****
  
           if Style.Mode_In_Check and then Token /= Tok_Out then
              Error_Msg_SP -- CODEFIX
!               ("(style) IN should be omitted");
           end if;
  
           --  Since Ada 2005, formal objects can have an anonymous access type,
--- 1711,1717 ----
  
           if Style.Mode_In_Check and then Token /= Tok_Out then
              Error_Msg_SP -- CODEFIX
!               ("(style) IN should be omitted?I?");
           end if;
  
           --  Since Ada 2005, formal objects can have an anonymous access type,
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch7.adb gcc-14.1.0/gcc/ada/par-ch7.adb
*** gcc-13.2.0/gcc/ada/par-ch7.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch7.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch7 is
*** 162,170 ****
  
              --  Move the aspect specifications to the body node
  
!             if Has_Aspects (Dummy_Node) then
!                Move_Aspects (From => Dummy_Node, To => Package_Node);
!             end if;
  
              Parse_Decls_Begin_End (Package_Node);
           end if;
--- 162,168 ----
  
              --  Move the aspect specifications to the body node
  
!             Move_Aspects (From => Dummy_Node, To => Package_Node);
  
              Parse_Decls_Begin_End (Package_Node);
           end if;
*************** package body Ch7 is
*** 261,267 ****
                         and then Start_Column /= Error_Msg_Col
                       then
                          Error_Msg_SC
!                           ("(style) PRIVATE in wrong column, should be@");
                       end if;
                    end if;
  
--- 259,265 ----
                         and then Start_Column /= Error_Msg_Col
                       then
                          Error_Msg_SC
!                           ("(style) PRIVATE in wrong column, should be@?l?");
                       end if;
                    end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch8.adb gcc-14.1.0/gcc/ada/par-ch8.adb
*** gcc-13.2.0/gcc/ada/par-ch8.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch8.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-ch9.adb gcc-14.1.0/gcc/ada/par-ch9.adb
*** gcc-13.2.0/gcc/ada/par-ch9.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-ch9.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Ch9 is
*** 140,148 ****
  
              --  Move the aspect specifications to the body node
  
!             if Has_Aspects (Dummy_Node) then
!                Move_Aspects (From => Dummy_Node, To => Task_Node);
!             end if;
  
              Parse_Decls_Begin_End (Task_Node);
  
--- 140,146 ----
  
              --  Move the aspect specifications to the body node
  
!             Move_Aspects (From => Dummy_Node, To => Task_Node);
  
              Parse_Decls_Begin_End (Task_Node);
  
diff -Nrcpad gcc-13.2.0/gcc/ada/par-endh.adb gcc-14.1.0/gcc/ada/par-endh.adb
*** gcc-13.2.0/gcc/ada/par-endh.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-endh.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Endh is
*** 820,828 ****
        --  Cases where a label is definitely allowed on the END line
  
        elsif End_Type = E_Name then
!          Syntax_OK := (not Explicit_Start_Label (SS_Index))
                           or else
!                       (not Scopes (SS_Index).Lreq);
  
        --  Otherwise we have cases which don't allow labels anyway, so we
        --  certainly accept an END which does not have a label.
--- 820,828 ----
        --  Cases where a label is definitely allowed on the END line
  
        elsif End_Type = E_Name then
!          Syntax_OK := not Explicit_Start_Label (SS_Index)
                           or else
!                       not Scopes (SS_Index).Lreq;
  
        --  Otherwise we have cases which don't allow labels anyway, so we
        --  certainly accept an END which does not have a label.
*************** package body Endh is
*** 1131,1137 ****
                 then
                    Error_Msg_Col := Scopes (Scope.Last).Ecol;
                    Error_Msg
!                     ("(style) END in wrong column, should be@", End_Sloc);
                 end if;
              end if;
  
--- 1131,1137 ----
                 then
                    Error_Msg_Col := Scopes (Scope.Last).Ecol;
                    Error_Msg
!                     ("(style) END in wrong column, should be@?l?", End_Sloc);
                 end if;
              end if;
  
*************** package body Endh is
*** 1164,1174 ****
                         and then
                           (Scope.Last = 1
                              or else
!                               (not Explicit_Start_Label (Scope.Last - 1))
                                   or else
!                               (not Same_Label
!                                      (End_Labl,
!                                       Scopes (Scope.Last - 1).Labl)))
                       then
                          T_Semicolon;
                          Error_Msg ("duplicate end line ignored", End_Loc);
--- 1164,1174 ----
                         and then
                           (Scope.Last = 1
                              or else
!                               not Explicit_Start_Label (Scope.Last - 1)
                                   or else
!                               not Same_Label
!                                     (End_Labl,
!                                      Scopes (Scope.Last - 1).Labl))
                       then
                          T_Semicolon;
                          Error_Msg ("duplicate end line ignored", End_Loc);
diff -Nrcpad gcc-13.2.0/gcc/ada/par-labl.adb gcc-14.1.0/gcc/ada/par-labl.adb
*** gcc-13.2.0/gcc/ada/par-labl.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-labl.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-load.adb gcc-14.1.0/gcc/ada/par-load.adb
*** gcc-13.2.0/gcc/ada/par-load.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-load.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-prag.adb gcc-14.1.0/gcc/ada/par-prag.adb
*** gcc-13.2.0/gcc/ada/par-prag.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-prag.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** function Prag (Pragma_Node : Node_Id; Se
*** 120,126 ****
     procedure Add_List_Pragma_Entry (PT : List_Pragma_Type; Loc : Source_Ptr) is
     begin
        if List_Pragmas.Last < List_Pragmas.First
!         or else (List_Pragmas.Table (List_Pragmas.Last)) /= ((PT, Loc))
        then
           List_Pragmas.Append ((PT, Loc));
        end if;
--- 120,126 ----
     procedure Add_List_Pragma_Entry (PT : List_Pragma_Type; Loc : Source_Ptr) is
     begin
        if List_Pragmas.Last < List_Pragmas.First
!         or else List_Pragmas.Table (List_Pragmas.Last) /= (PT, Loc)
        then
           List_Pragmas.Append ((PT, Loc));
        end if;
*************** function Prag (Pragma_Node : Node_Id; Se
*** 176,182 ****
        Error : Boolean := Nkind (Expression (Arg)) /= N_Identifier;
     begin
        if not Error then
!          Error := (Chars (Argx) not in Name_On | Name_Off)
             and then not (All_OK_Too and Chars (Argx) = Name_All);
        end if;
        if Error then
--- 176,182 ----
        Error : Boolean := Nkind (Expression (Arg)) /= N_Identifier;
     begin
        if not Error then
!          Error := Chars (Argx) not in Name_On | Name_Off
             and then not (All_OK_Too and Chars (Argx) = Name_All);
        end if;
        if Error then
*************** begin
*** 1085,1090 ****
--- 1085,1146 ----
        when Pragma_Suppress_All =>
           Set_Has_Pragma_Suppress_All (Cunit (Current_Source_Unit));
  
+       -----------------------------------
+       -- User_Aspect_Definition (GNAT) --
+       -----------------------------------
+ 
+       --  pragma User_Aspect_Definition
+       --    (Identifier, {, Identifier [(Identifier {, Identifier})]});
+ 
+       when Pragma_User_Aspect_Definition =>
+          if Arg_Count < 1 then
+             Check_Arg_Count (1);
+          end if;
+          declare
+             OK   : Boolean := True;
+             Expr : Node_Id;
+ 
+             function All_Identifiers (L : List_Id) return Boolean;
+             --  Return True if every list element has Nkind = N_Identifier.
+ 
+             ---------------------
+             -- All_Identifiers --
+             ---------------------
+             function All_Identifiers (L : List_Id) return Boolean is
+                N : Node_Id := First (L);
+             begin
+                while Present (N) loop
+                   if Nkind (N) /= N_Identifier then
+                      return False;
+                   end if;
+                   Next (N);
+                end loop;
+                return True;
+             end All_Identifiers;
+ 
+          begin
+             Arg_Node := Arg1;
+             while Present (Arg_Node) and OK loop
+                Check_No_Identifier (Arg_Node);
+                Expr := Expression (Arg_Node);
+                case Nkind (Expr) is
+                   when N_Identifier =>
+                      OK := True;
+                   when N_Indexed_Component =>
+                      OK := Arg_Node /= Arg1 -- first arg must be identifier
+                              and then Nkind (Prefix (Expr)) = N_Identifier
+                              and then All_Identifiers (Expressions (Expr));
+                   when others =>
+                      OK := False;
+                end case;
+                Next (Arg_Node);
+             end loop;
+             if not OK then
+                Error_Msg_N ("incorrect argument for pragma%", Arg_Node);
+                raise Error_Resync;
+             end if;
+          end;
+ 
        ----------------------
        -- Warning_As_Error --
        ----------------------
*************** begin
*** 1150,1162 ****
           -------------------------------------
  
           function First_Arg_Is_Matching_Tool_Name return Boolean is
           begin
!             return Nkind (Arg1) = N_Identifier
  
                --  Return True if the tool name is GNAT, and we're not in
                --  GNATprove or CodePeer mode...
  
!               and then ((Chars (Arg1) = Name_Gnat
                            and then not
                              (CodePeer_Mode or GNATprove_Mode))
  
--- 1206,1219 ----
           -------------------------------------
  
           function First_Arg_Is_Matching_Tool_Name return Boolean is
+             Expr : constant Node_Id := Get_Pragma_Arg (Arg1);
           begin
!             return Nkind (Expr) = N_Identifier
  
                --  Return True if the tool name is GNAT, and we're not in
                --  GNATprove or CodePeer mode...
  
!               and then ((Chars (Expr) = Name_Gnat
                            and then not
                              (CodePeer_Mode or GNATprove_Mode))
  
*************** begin
*** 1164,1170 ****
                --  mode.
  
                          or else
!                         (Chars (Arg1) = Name_Gnatprove
                            and then GNATprove_Mode));
           end First_Arg_Is_Matching_Tool_Name;
  
--- 1221,1227 ----
                --  mode.
  
                          or else
!                         (Chars (Expr) = Name_Gnatprove
                            and then GNATprove_Mode));
           end First_Arg_Is_Matching_Tool_Name;
  
*************** begin
*** 1189,1195 ****
           --------------
  
           function Last_Arg return Node_Id is
!                Last_Arg : Node_Id;
  
           begin
              if Arg_Count = 1 then
--- 1246,1252 ----
           --------------
  
           function Last_Arg return Node_Id is
!             Last_Arg : Node_Id;
  
           begin
              if Arg_Count = 1 then
*************** begin
*** 1314,1319 ****
--- 1371,1377 ----
           | Pragma_Aggregate_Individually_Assign
           | Pragma_All_Calls_Remote
           | Pragma_Allow_Integer_Address
+          | Pragma_Always_Terminates
           | Pragma_Annotate
           | Pragma_Assert
           | Pragma_Assert_And_Cut
*************** begin
*** 1370,1375 ****
--- 1428,1434 ----
           | Pragma_Elaboration_Checks
           | Pragma_Eliminate
           | Pragma_Enable_Atomic_Synchronization
+          | Pragma_Exceptional_Cases
           | Pragma_Export
           | Pragma_Export_Function
           | Pragma_Export_Object
*************** begin
*** 1485,1490 ****
--- 1544,1550 ----
           | Pragma_Rename_Pragma
           | Pragma_Restricted_Run_Time
           | Pragma_Reviewable
+          | Pragma_Side_Effects
           | Pragma_SPARK_Mode
           | Pragma_Secondary_Stack_Size
           | Pragma_Share_Generic
diff -Nrcpad gcc-13.2.0/gcc/ada/par-sync.adb gcc-14.1.0/gcc/ada/par-sync.adb
*** gcc-13.2.0/gcc/ada/par-sync.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-sync.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-tchk.adb gcc-14.1.0/gcc/ada/par-tchk.adb
*** gcc-13.2.0/gcc/ada/par-tchk.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-tchk.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par-util.adb gcc-14.1.0/gcc/ada/par-util.adb
*** gcc-13.2.0/gcc/ada/par-util.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par-util.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Util is
*** 165,171 ****
          and then Start_Column <= Scopes (Scope.Last).Ecol
        then
           Error_Msg_BC -- CODEFIX
!            ("(style) incorrect layout");
        end if;
     end Check_Bad_Layout;
  
--- 165,171 ----
          and then Start_Column <= Scopes (Scope.Last).Ecol
        then
           Error_Msg_BC -- CODEFIX
!            ("(style) incorrect layout?l?");
        end if;
     end Check_Bad_Layout;
  
*************** package body Util is
*** 713,719 ****
          and then Scope.Last = Style_Max_Nesting_Level + 1
        then
           Error_Msg
!            ("(style) maximum nesting level exceeded",
              First_Non_Blank_Location);
        end if;
  
--- 713,719 ----
          and then Scope.Last = Style_Max_Nesting_Level + 1
        then
           Error_Msg
!            ("(style) maximum nesting level exceeded?L?",
              First_Non_Blank_Location);
        end if;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/par.adb gcc-14.1.0/gcc/ada/par.adb
*** gcc-13.2.0/gcc/ada/par.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** function Par (Configuration_Pragmas : Bo
*** 76,81 ****
--- 76,90 ----
     --  Variable used to save values of config switches while we parse the
     --  new unit, to be restored on exit for proper recursive behavior.
  
+    Inside_Delta_Aggregate : Boolean := False;
+    --  True within a delta aggregate (but only after the "delta" token has
+    --  been scanned). Used to distinguish syntax errors from syntactically
+    --  correct "deep" delta aggregates (enabled via -gnatX0).
+    Save_Style_Checks : Style_Check_Options;
+    Save_Style_Check  : Boolean;
+    --  Variables for storing the original state of whether style checks should
+    --  be active in general and which particular ones should be checked.
+ 
     --------------------
     -- Error Recovery --
     --------------------
*************** begin
*** 1596,1601 ****
--- 1605,1615 ----
     else
        Save_Config_Attrs := Save_Config_Switches;
  
+       --  Store the state of Style_Checks pragamas
+ 
+       Save_Style_Check := Style_Check;
+       Save_Style_Check_Options (Save_Style_Checks);
+ 
        --  The following loop runs more than once in syntax check mode
        --  where we allow multiple compilation units in the same file
        --  and in Multiple_Unit_Per_file mode where we skip units till
*************** begin
*** 1653,1658 ****
--- 1667,1673 ----
           --  syntax mode we are interested in all units in the file.
  
           else
+ 
              declare
                 Comp_Unit_Node : constant Node_Id := P_Compilation_Unit;
  
*************** begin
*** 1739,1744 ****
--- 1754,1766 ----
           Restore_Config_Switches (Save_Config_Attrs);
        end loop;
  
+       --  Restore the state of Style_Checks after parsing the unit to
+       --  avoid parsed pragmas affecting other units.
+ 
+       Reset_Style_Check_Options;
+       Set_Style_Check_Options (Save_Style_Checks);
+       Style_Check := Save_Style_Check;
+ 
        --  Now that we have completely parsed the source file, we can complete
        --  the source file table entry.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/par.ads gcc-14.1.0/gcc/ada/par.ads
*** gcc-13.2.0/gcc/ada/par.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/par_sco.adb gcc-14.1.0/gcc/ada/par_sco.adb
*** gcc-13.2.0/gcc/ada/par_sco.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par_sco.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Par_SCO is
*** 398,404 ****
        function Check_Node (N : Node_Id) return Traverse_Result;
        --  Determine if Nkind (N) indicates the presence of a decision (i.e. N
        --  is a logical operator, which is a decision in itself, or an
!       --  IF-expression whose Condition attribute is a decision).
  
        ----------------
        -- Check_Node --
--- 398,405 ----
        function Check_Node (N : Node_Id) return Traverse_Result;
        --  Determine if Nkind (N) indicates the presence of a decision (i.e. N
        --  is a logical operator, which is a decision in itself, or an
!       --  IF-expression whose Condition attribute is a decision, or a
!       --  quantified expression, whose predicate is a decision).
  
        ----------------
        -- Check_Node --
*************** package body Par_SCO is
*** 409,418 ****
           --  If we are not sure this is a logical operator (AND and OR may be
           --  turned into logical operators with the Short_Circuit_And_Or
           --  pragma), assume it is. Putative decisions will be discarded if
!          --  needed in the secord pass.
  
           if Is_Logical_Operator (N) /= False
             or else Nkind (N) = N_If_Expression
           then
              return Abandon;
           else
--- 410,420 ----
           --  If we are not sure this is a logical operator (AND and OR may be
           --  turned into logical operators with the Short_Circuit_And_Or
           --  pragma), assume it is. Putative decisions will be discarded if
!          --  needed in the second pass.
  
           if Is_Logical_Operator (N) /= False
             or else Nkind (N) = N_If_Expression
+            or else Nkind (N) = N_Quantified_Expression
           then
              return Abandon;
           else
*************** package body Par_SCO is
*** 749,754 ****
--- 751,763 ----
        begin
           case Nkind (N) is
  
+             --  Aspect specifications have dedicated processings (see
+             --  Traverse_Aspects) so ignore them here, so that they are
+             --  processed only once.
+ 
+             when N_Aspect_Specification =>
+                return Skip;
+ 
              --  Logical operators, output table entries and then process
              --  operands recursively to deal with nested conditions.
  
*************** package body Par_SCO is
*** 827,834 ****
  
              when N_Quantified_Expression =>
                 declare
!                   Cond : constant Node_Id := Condition (N);
                 begin
                    Process_Decisions (Cond, 'W', Pragma_Sloc);
                    return Skip;
                 end;
--- 836,850 ----
  
              when N_Quantified_Expression =>
                 declare
!                   Cond   : constant Node_Id := Condition (N);
!                   I_Spec : Node_Id := Empty;
                 begin
+                   if Present (Iterator_Specification (N)) then
+                      I_Spec := Iterator_Specification (N);
+                   else
+                      I_Spec := Loop_Parameter_Specification (N);
+                   end if;
+                   Process_Decisions (I_Spec, 'X', Pragma_Sloc);
                    Process_Decisions (Cond, 'W', Pragma_Sloc);
                    return Skip;
                 end;
*************** package body Par_SCO is
*** 1680,1685 ****
--- 1696,1705 ----
           C1 : Character;
  
        begin
+          if not Has_Aspects (N) then
+             return;
+          end if;
+ 
           AN := First (Aspect_Specifications (N));
           while Present (AN) loop
              AE := Expression (AN);
*************** package body Par_SCO is
*** 2399,2406 ****
                 end if;
           end case;
  
-          --  Process aspects if present
- 
           Traverse_Aspects (N);
        end Traverse_One;
  
--- 2419,2424 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/par_sco.ads gcc-14.1.0/gcc/ada/par_sco.ads
*** gcc-13.2.0/gcc/ada/par_sco.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/par_sco.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/pprint.adb gcc-14.1.0/gcc/ada/pprint.adb
*** gcc-13.2.0/gcc/ada/pprint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/pprint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Atree;          use Atree;
*** 27,32 ****
--- 27,33 ----
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
+ with Errout;         use Errout;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Opt;            use Opt;
*************** package body Pprint is
*** 53,65 ****
       (Expr    : Node_Id;
        Default : String) return String
     is
-       From_Source  : constant Boolean :=
-                        Comes_From_Source (Expr)
-                          and then not Opt.Debug_Generated_Code;
-       Append_Paren : Natural := 0;
-       Left         : Node_Id := Original_Node (Expr);
-       Right        : Node_Id := Original_Node (Expr);
- 
        function Expr_Name
          (Expr        : Node_Id;
           Take_Prefix : Boolean := True;
--- 54,59 ----
*************** package body Pprint is
*** 70,77 ****
        --  Expand_Type is True and Expr is a type, try to expand Expr (an
        --  internally generated type) into a user understandable name.
  
!       Max_List : constant := 3;
!       --  Limit number of list elements to dump
  
        Max_Expr_Elements : constant := 24;
        --  Limit number of elements in an expression for use by Expr_Name
--- 64,87 ----
        --  Expand_Type is True and Expr is a type, try to expand Expr (an
        --  internally generated type) into a user understandable name.
  
!       function Count_Parentheses (S : String; C : Character) return Natural
!         with Pre => C in '(' | ')';
!       --  Returns the number of times parenthesis character C should be added
!       --  to string S for getting a correctly parenthesized result. For C = '('
!       --  this means prepending the character, for C = ')' this means appending
!       --  the character.
! 
!       function Fix_Parentheses (S : String) return String;
!       --  Counts the number of required opening and closing parentheses in S to
!       --  respectively prepend and append for getting correct parentheses. Then
!       --  returns S with opening parentheses prepended and closing parentheses
!       --  appended so that the result is correctly parenthesized.
! 
!       Max_List_Depth : constant := 3;
!       --  Limit number of nested lists to print
! 
!       Max_List_Length : constant := 3;
!       --  Limit number of list elements to print
  
        Max_Expr_Elements : constant := 24;
        --  Limit number of elements in an expression for use by Expr_Name
*************** package body Pprint is
*** 79,172 ****
        Num_Elements : Natural := 0;
        --  Current number of elements processed by Expr_Name
  
!       function List_Name
!         (List      : Node_Id;
!          Add_Space : Boolean := True;
!          Add_Paren : Boolean := True) return String;
        --  Return a string corresponding to List
  
        ---------------
        -- List_Name --
        ---------------
  
!       function List_Name
!         (List      : Node_Id;
!          Add_Space : Boolean := True;
!          Add_Paren : Boolean := True) return String
!       is
!          function Internal_List_Name
!            (List      : Node_Id;
!             First     : Boolean := True;
!             Add_Space : Boolean := True;
!             Add_Paren : Boolean := True;
!             Num       : Natural := 1) return String;
!          --  Created for purposes of recursing on embedded lists
  
!          ------------------------
!          -- Internal_List_Name --
!          ------------------------
  
!          function Internal_List_Name
!            (List      : Node_Id;
!             First     : Boolean := True;
!             Add_Space : Boolean := True;
!             Add_Paren : Boolean := True;
!             Num       : Natural := 1) return String
!          is
!          begin
!             if No (List) then
!                if First or else not Add_Paren then
!                   return "";
!                else
!                   return ")";
!                end if;
!             elsif Num > Max_List then
!                if Add_Paren then
!                   return ", ...)";
                 else
!                   return ", ...";
                 end if;
              end if;
  
!             --  Continue recursing on the list - handling the first element
!             --  in a special way.
  
!             return
!               (if First then
!                   (if Add_Space and Add_Paren then " ("
!                    elsif Add_Paren then "("
!                    elsif Add_Space then " "
!                    else "")
!                else ", ")
!                & Expr_Name (List)
!                & Internal_List_Name
!                    (List      => Next (List),
!                     First     => False,
!                     Add_Paren => Add_Paren,
!                     Num       => Num + 1);
!          end Internal_List_Name;
  
!       --  Start of processing for List_Name
  
!       begin
!          --  Prevent infinite recursion by limiting depth to 3
  
!          if List_Name_Count > 3 then
!             return "...";
!          end if;
  
!          List_Name_Count := List_Name_Count + 1;
  
!          declare
!             Result : constant String :=
!                        Internal_List_Name
!                          (List      => List,
!                           Add_Space => Add_Space,
!                           Add_Paren => Add_Paren);
!          begin
!             List_Name_Count := List_Name_Count - 1;
!             return Result;
!          end;
        end List_Name;
  
        ---------------
--- 89,174 ----
        Num_Elements : Natural := 0;
        --  Current number of elements processed by Expr_Name
  
!       function List_Name (List : List_Id) return String;
        --  Return a string corresponding to List
  
        ---------------
        -- List_Name --
        ---------------
  
!       function List_Name (List : List_Id) return String is
!          Buf  : Bounded_String;
!          Elmt : Node_Id;
  
!          Printed_Elmts : Natural := 0;
  
!       begin
!          --  Give up if the printed list is too deep
! 
!          if List_Name_Count > Max_List_Depth then
!             return "...";
!          end if;
! 
!          List_Name_Count := List_Name_Count + 1;
! 
!          Elmt := First (List);
!          while Present (Elmt) loop
! 
!             --  Print component_association as "x | y | z => 12345"
! 
!             if Nkind (Elmt) = N_Component_Association then
!                declare
!                   Choice : Node_Id := First (Choices (Elmt));
!                begin
!                   while Present (Choice) loop
!                      Append (Buf, Expr_Name (Choice));
!                      Next (Choice);
! 
!                      if Present (Choice) then
!                         Append (Buf, " | ");
!                      end if;
!                   end loop;
!                end;
!                Append (Buf, " => ");
!                if Box_Present (Elmt) then
!                   Append (Buf, "<>");
                 else
!                   Append (Buf, Expr_Name (Expression (Elmt)));
                 end if;
+ 
+             --  Print parameter_association as "x => 12345"
+ 
+             elsif Nkind (Elmt) = N_Parameter_Association then
+                Append (Buf, Expr_Name (Selector_Name (Elmt)));
+                Append (Buf, " => ");
+                Append (Buf, Expr_Name (Explicit_Actual_Parameter (Elmt)));
+ 
+             --  Print expression itself as "12345"
+ 
+             else
+                Append (Buf, Expr_Name (Elmt));
              end if;
  
!             Next (Elmt);
!             Printed_Elmts := Printed_Elmts + 1;
  
!             --  Separate next element with a comma, if necessary
  
!             if Present (Elmt) then
!                Append (Buf, ", ");
  
!                --  Abbreviate remaining elements as "...", if limit exceeded
  
!                if Printed_Elmts = Max_List_Length then
!                   Append (Buf, "...");
!                   exit;
!                end if;
!             end if;
!          end loop;
  
!          List_Name_Count := List_Name_Count - 1;
  
!          return To_String (Buf);
        end List_Name;
  
        ---------------
*************** package body Pprint is
*** 185,201 ****
              return "...";
           end if;
  
!          case Nkind (Expr) is
!             when N_Defining_Identifier
!                | N_Identifier
!             =>
                 return Ident_Image (Expr, Expression_Image.Expr, Expand_Type);
  
              when N_Character_Literal =>
                 declare
                    Char : constant Int := UI_To_Int (Char_Literal_Value (Expr));
                 begin
!                   if Char in 32 .. 127 then
                       return "'" & Character'Val (Char) & "'";
                    else
                       UI_Image (Char_Literal_Value (Expr));
--- 187,230 ----
              return "...";
           end if;
  
!          --  Just print pieces of aggregate nodes, even though they are not
!          --  expressions. It is too much trouble to handle them any better.
! 
!          if Nkind (Expr) = N_Component_Association then
! 
!             pragma Assert (Box_Present (Expr));
! 
!             declare
!                Buf    : Bounded_String;
!                Choice : Node_Id := First (Choices (Expr));
!             begin
!                while Present (Choice) loop
!                   Append (Buf, Expr_Name (Choice));
!                   Next (Choice);
! 
!                   if Present (Choice) then
!                      Append (Buf, " | ");
!                   end if;
!                end loop;
! 
!                Append (Buf, " => <>");
! 
!                return To_String (Buf);
!             end;
! 
!          elsif Nkind (Expr) = N_Others_Choice then
!             return "others";
!          end if;
! 
!          case N_Subexpr'(Nkind (Expr)) is
!             when N_Identifier =>
                 return Ident_Image (Expr, Expression_Image.Expr, Expand_Type);
  
              when N_Character_Literal =>
                 declare
                    Char : constant Int := UI_To_Int (Char_Literal_Value (Expr));
                 begin
!                   if Char in 32 .. 126 then
                       return "'" & Character'Val (Char) & "'";
                    else
                       UI_Image (Char_Literal_Value (Expr));
*************** package body Pprint is
*** 218,227 ****
  
              when N_Aggregate =>
                 if Present (Expressions (Expr)) then
!                   return
!                     List_Name
!                       (List      => First (Expressions (Expr)),
!                        Add_Space => False);
  
                 --  Do not return empty string for (others => <>) aggregate
                 --  of a componentless record type. At least one caller (the
--- 247,253 ----
  
              when N_Aggregate =>
                 if Present (Expressions (Expr)) then
!                   return '(' & List_Name (Expressions (Expr)) & ')';
  
                 --  Do not return empty string for (others => <>) aggregate
                 --  of a componentless record type. At least one caller (the
*************** package body Pprint is
*** 234,252 ****
                    return ("(null record)");
  
                 else
!                   return
!                     List_Name
!                       (List      => First (Component_Associations (Expr)),
!                        Add_Space => False,
!                        Add_Paren => False);
                 end if;
  
              when N_Extension_Aggregate =>
!                return "(" & Expr_Name (Ancestor_Part (Expr)) & " with "
!                  & List_Name
!                      (List      => First (Expressions (Expr)),
!                       Add_Space => False,
!                       Add_Paren => False) & ")";
  
              when N_Attribute_Reference =>
                 if Take_Prefix then
--- 260,271 ----
                    return ("(null record)");
  
                 else
!                   return '(' & List_Name (Component_Associations (Expr)) & ')';
                 end if;
  
              when N_Extension_Aggregate =>
!                return '(' & Expr_Name (Ancestor_Part (Expr))
!                  & " with (" & List_Name (Expressions (Expr)) & ')';
  
              when N_Attribute_Reference =>
                 if Take_Prefix then
*************** package body Pprint is
*** 304,310 ****
                       return Str;
                    end;
                 else
!                   return "'" & Get_Name_String (Attribute_Name (Expr));
                 end if;
  
              when N_Explicit_Dereference =>
--- 323,329 ----
                       return Str;
                    end;
                 else
!                   return ''' & Get_Name_String (Attribute_Name (Expr));
                 end if;
  
              when N_Explicit_Dereference =>
*************** package body Pprint is
*** 379,392 ****
                    return "." & Expr_Name (Selector_Name (Expr));
                 end if;
  
-             when N_Component_Association =>
-                return "("
-                  & List_Name
-                      (List      => First (Choices (Expr)),
-                       Add_Space => False,
-                       Add_Paren => False)
-                  & " => " & Expr_Name (Expression (Expr)) & ")";
- 
              when N_If_Expression =>
                 declare
                    Cond_Expr : constant Node_Id := First (Expressions (Expr));
--- 398,403 ----
*************** package body Pprint is
*** 436,441 ****
--- 447,461 ----
                    return "[program_error]";
                 end if;
  
+             when N_Raise_Storage_Error =>
+                if Present (Condition (Expr)) then
+                   return
+                     "[storage_error when "
+                       & Expr_Name (Condition (Expr)) & "]";
+                else
+                   return "[storage_error]";
+                end if;
+ 
              when N_Range =>
                 return
                   Expr_Name (Low_Bound (Expr)) & ".." &
*************** package body Pprint is
*** 573,581 ****
              when N_Op_Not =>
                 return "not (" & Expr_Name (Right_Opnd (Expr)) & ")";
  
-             when N_Parameter_Association =>
-                return Expr_Name (Explicit_Actual_Parameter (Expr));
- 
              when N_Type_Conversion =>
  
                 --  Most conversions are not very interesting (used inside
--- 593,598 ----
*************** package body Pprint is
*** 602,610 ****
                 if Take_Prefix then
                    return
                      Expr_Name (Prefix (Expr))
!                       & List_Name (First (Expressions (Expr)));
                 else
!                   return List_Name (First (Expressions (Expr)));
                 end if;
  
              when N_Function_Call =>
--- 619,627 ----
                 if Take_Prefix then
                    return
                      Expr_Name (Prefix (Expr))
!                       & " (" & List_Name (Expressions (Expr)) & ')';
                 else
!                   return List_Name (Expressions (Expr));
                 end if;
  
              when N_Function_Call =>
*************** package body Pprint is
*** 614,925 ****
                 --  parentheses around function call to mark it specially.
  
                 if Default = "" then
!                   return '('
!                     & Expr_Name (Name (Expr))
!                     & List_Name (First (Parameter_Associations (Expr)))
!                     & ')';
!                else
                    return
                      Expr_Name (Name (Expr))
!                       & List_Name (First (Parameter_Associations (Expr)));
                 end if;
  
              when N_Null =>
                 return "null";
  
!             when N_Others_Choice =>
!                return "others";
! 
!             when others =>
!                return "...";
!          end case;
!       end Expr_Name;
! 
!    --  Start of processing for Expression_Image
! 
!    begin
!       if not From_Source then
!          declare
!             S : constant String := Expr_Name (Expr);
!          begin
!             if S = "..." then
!                return Default;
!             else
!                return S;
!             end if;
!          end;
!       end if;
! 
!       --  Reach to the underlying expression for an expression-with-actions
! 
!       if Nkind (Expr) = N_Expression_With_Actions then
!          return Expression_Image (Expression (Expr), Default);
!       end if;
! 
!       --  Compute left (start) and right (end) slocs for the expression
!       --  Consider using Sinput.Sloc_Range instead, except that it does not
!       --  work properly currently???
! 
!       loop
!          case Nkind (Left) is
!             when N_And_Then
!                | N_Binary_Op
!                | N_Membership_Test
!                | N_Or_Else
!             =>
!                Left := Original_Node (Left_Opnd (Left));
! 
!             when N_Attribute_Reference
!                | N_Expanded_Name
!                | N_Explicit_Dereference
!                | N_Indexed_Component
                 | N_Reference
!                | N_Selected_Component
!                | N_Slice
!             =>
!                Left := Original_Node (Prefix (Left));
! 
!             when N_Defining_Program_Unit_Name
!                | N_Designator
!                | N_Function_Call
!             =>
!                Left := Original_Node (Name (Left));
! 
!             when N_Range =>
!                Left := Original_Node (Low_Bound (Left));
! 
!             when N_Qualified_Expression
!                | N_Type_Conversion
              =>
!                Left := Original_Node (Subtype_Mark (Left));
! 
!             --  For any other item, quit loop
! 
!             when others =>
!                exit;
           end case;
!       end loop;
! 
!       loop
!          case Nkind (Right) is
!             when N_And_Then
!                | N_Membership_Test
!                | N_Op
!                | N_Or_Else
!             =>
!                Right := Original_Node (Right_Opnd (Right));
! 
!             when N_Expanded_Name
!                | N_Selected_Component
!             =>
!                Right := Original_Node (Selector_Name (Right));
! 
!             when N_Qualified_Expression
!                | N_Type_Conversion
!             =>
!                Right := Original_Node (Expression (Right));
! 
!                --  If argument does not already account for a closing
!                --  parenthesis, count one here.
! 
!                if Nkind (Right) not in N_Aggregate | N_Quantified_Expression
!                then
!                   Append_Paren := Append_Paren + 1;
!                end if;
  
!             when N_Designator =>
!                Right := Original_Node (Identifier (Right));
  
!             when N_Defining_Program_Unit_Name =>
!                Right := Original_Node (Defining_Identifier (Right));
  
!             when N_Range =>
!                Right := Original_Node (High_Bound (Right));
  
!             when N_Parameter_Association =>
!                Right := Original_Node (Explicit_Actual_Parameter (Right));
  
!             when N_Component_Association =>
!                if Present (Expression (Right)) then
!                   Right := Expression (Right);
!                else
!                   Right := Last (Choices (Right));
!                end if;
  
!             when N_Indexed_Component =>
!                Right := Original_Node (Last (Expressions (Right)));
!                Append_Paren := Append_Paren + 1;
  
!             when N_Function_Call =>
!                if Present (Parameter_Associations (Right)) then
!                   declare
!                      Rover : Node_Id;
!                      Found : Boolean;
  
!                   begin
!                      --  Avoid source position confusion associated with
!                      --  parameters for which Comes_From_Source is False.
  
!                      Rover := First (Parameter_Associations (Right));
!                      Found := False;
!                      while Present (Rover) loop
!                         if Comes_From_Source (Original_Node (Rover)) then
!                            Right := Original_Node (Rover);
!                            Found := True;
!                         end if;
  
!                         Next (Rover);
!                      end loop;
  
!                      if Found then
!                         Append_Paren := Append_Paren + 1;
!                      end if;
  
!                      --  Quit loop if no Comes_From_Source parameters
  
!                      exit when not Found;
!                   end;
  
!                --  Quit loop if no parameters
  
!                else
!                   exit;
!                end if;
  
!             when N_Quantified_Expression =>
!                Right        := Original_Node (Condition (Right));
!                Append_Paren := Append_Paren + 1;
  
!             when N_Aggregate =>
                 declare
!                   Aggr : constant Node_Id := Right;
!                   Sub  : Node_Id;
! 
                 begin
!                   Sub := First (Expressions (Aggr));
!                   while Present (Sub) loop
!                      if Sloc (Sub) > Sloc (Right) then
!                         Right := Sub;
!                      end if;
  
!                      Next (Sub);
!                   end loop;
  
!                   Sub := First (Component_Associations (Aggr));
!                   while Present (Sub) loop
!                      if Sloc (Sub) > Sloc (Right) then
!                         Right := Sub;
!                      end if;
  
!                      Next (Sub);
!                   end loop;
  
!                   exit when Right = Aggr;
  
!                   Append_Paren := Append_Paren + 1;
!                end;
  
!             --  For all other items, quit the loop
  
!             when others =>
!                exit;
!          end case;
!       end loop;
  
        declare
!          Scn      : Source_Ptr := Original_Location (Sloc (Left));
!          End_Sloc : constant Source_Ptr :=
!                       Original_Location (Sloc (Right));
!          Src      : constant Source_Buffer_Ptr :=
!                       Source_Text (Get_Source_File_Index (Scn));
  
        begin
!          if Scn > End_Sloc then
!             return Default;
!          end if;
! 
!          declare
!             Threshold        : constant := 256;
!             Buffer           : String (1 .. Natural (End_Sloc - Scn));
!             Index            : Natural := 0;
!             Skipping_Comment : Boolean := False;
!             Underscore       : Boolean := False;
! 
!          begin
!             if Right /= Expr then
!                while Scn < End_Sloc loop
!                   case Src (Scn) is
! 
!                      --  Give up on non ASCII characters
! 
!                      when Character'Val (128) .. Character'Last =>
!                         Append_Paren := 0;
!                         Index := 0;
!                         Right := Expr;
!                         exit;
! 
!                      when ' '
!                         | ASCII.HT
!                      =>
!                         if not Skipping_Comment and then not Underscore then
!                            Underscore := True;
!                            Index := Index + 1;
!                            Buffer (Index) := ' ';
!                         end if;
  
!                      --  CR/LF/FF is the end of any comment
  
!                      when ASCII.CR
!                         | ASCII.FF
!                         | ASCII.LF
!                      =>
!                         Skipping_Comment := False;
  
!                      when others =>
!                         Underscore := False;
  
!                         if not Skipping_Comment then
  
!                            --  Ignore comment
  
!                            if Src (Scn) = '-' and then Src (Scn + 1) = '-' then
!                               Skipping_Comment := True;
  
!                            else
!                               Index := Index + 1;
!                               Buffer (Index) := Src (Scn);
!                            end if;
!                         end if;
!                   end case;
  
!                   --  Give up on too long strings
  
!                   if Index >= Threshold then
!                      return Buffer (1 .. Index) & "...";
                    end if;
  
!                   Scn := Scn + 1;
!                end loop;
              end if;
  
!             if Index < 1 then
!                declare
!                   S : constant String := Expr_Name (Right);
!                begin
!                   if S = "..." then
!                      return Default;
!                   else
!                      return S;
!                   end if;
!                end;
  
!             else
!                return
!                  Buffer (1 .. Index)
!                    & Expr_Name (Right, False)
!                    & (1 .. Append_Paren => ')');
!             end if;
!          end;
        end;
     end Expression_Image;
  
--- 631,869 ----
                 --  parentheses around function call to mark it specially.
  
                 if Default = "" then
!                   if Present (Parameter_Associations (Expr)) then
!                      return '('
!                        & Expr_Name (Name (Expr))
!                        & " ("
!                        & List_Name (Parameter_Associations (Expr))
!                        & "))";
!                   else
!                      return '(' & Expr_Name (Name (Expr)) & ')';
!                   end if;
!                elsif Present (Parameter_Associations (Expr)) then
                    return
                      Expr_Name (Name (Expr))
!                       & " (" & List_Name (Parameter_Associations (Expr)) & ')';
!                else
!                   return Expr_Name (Name (Expr));
                 end if;
  
              when N_Null =>
                 return "null";
  
!             when N_Case_Expression
!                | N_Delta_Aggregate
!                | N_Interpolated_String_Literal
!                | N_Op_Rotate_Left
!                | N_Op_Rotate_Right
!                | N_Operator_Symbol
!                | N_Procedure_Call_Statement
!                | N_Quantified_Expression
!                | N_Raise_Expression
                 | N_Reference
!                | N_Target_Name
              =>
!                return "...";
           end case;
!       end Expr_Name;
  
!       -----------------------
!       -- Count_Parentheses --
!       -----------------------
  
!       function Count_Parentheses (S : String; C : Character) return Natural is
  
!          procedure Next_Char (Count : in out Natural; C, D, Ch : Character);
!          --  Process next character Ch and update the number Count of C
!          --  characters to add for correct parenthesizing, where D is the
!          --  opposite parenthesis.
  
!          ---------------
!          -- Next_Char --
!          ---------------
  
!          procedure Next_Char (Count : in out Natural; C, D, Ch : Character) is
!          begin
!             if Ch = D then
!                Count := Count + 1;
!             elsif Ch = C and then Count > 0 then
!                Count := Count - 1;
!             end if;
!          end Next_Char;
  
!          --  Local variables
  
!          Count : Natural := 0;
  
!       --  Start of processing for Count_Parentheses
  
!       begin
!          if C = '(' then
!             for Ch of reverse S loop
!                Next_Char (Count, C, ')', Ch);
!             end loop;
!          else
!             for Ch of S loop
!                Next_Char (Count, C, '(', Ch);
!             end loop;
!          end if;
  
!          return Count;
!       end Count_Parentheses;
  
!       ---------------------
!       -- Fix_Parentheses --
!       ---------------------
  
!       function Fix_Parentheses (S : String) return String is
!          Count_Open  : constant Natural := Count_Parentheses (S, '(');
!          Count_Close : constant Natural := Count_Parentheses (S, ')');
!       begin
!          return (1 .. Count_Open => '(') & S & (1 .. Count_Close => ')');
!       end Fix_Parentheses;
  
!       --  Local variables
  
!       Left, Right : Source_Ptr;
  
!    --  Start of processing for Expression_Image
  
!    begin
!       --  Since this is an expression pretty-printer, it should not be called
!       --  for anything but an expression. However, currently CodePeer calls
!       --  it for defining identifiers. This should be fixed in the CodePeer
!       --  itself, but for now simply return the default (if present) or print
!       --  name of the defining identifier.
  
!       if Nkind (Expr) = N_Defining_Identifier then
!          pragma Assert (CodePeer_Mode);
!          if Comes_From_Source (Expr)
!            or else Opt.Debug_Generated_Code
!          then
!             if Default = "" then
                 declare
!                   Nam : constant Name_Id := Chars (Expr);
!                   Buf : Bounded_String
!                     (Max_Length => Natural (Length_Of_Name (Nam)));
                 begin
!                   Adjust_Name_Case (Buf, Sloc (Expr));
!                   Append (Buf, Nam);
!                   return To_String (Buf);
!                end;
!             else
!                return Default;
!             end if;
!          else
!             declare
!                S : constant String :=
!                  Ident_Image
!                    (Expr => Expr, Orig_Expr => Expr, Expand_Type => True);
!             begin
!                if S = "..." then
!                   return Default;
!                else
!                   return S;
!                end if;
!             end;
!          end if;
!       else
!          pragma Assert (Nkind (Expr) in N_Subexpr);
!       end if;
  
!       --  ??? The following should be primarily needed for CodePeer
  
!       if not Comes_From_Source (Expr)
!         or else Opt.Debug_Generated_Code
!       then
!          declare
!             S : constant String := Expr_Name (Expr);
!          begin
!             if S = "..." then
!                return Default;
!             else
!                return S;
!             end if;
!          end;
!       end if;
  
!       --  Reach to the underlying expression for an expression-with-actions
  
!       if Nkind (Expr) = N_Expression_With_Actions then
!          return Expression_Image (Expression (Expr), Default);
!       end if;
  
!       --  Compute left (start) and right (end) slocs for the expression
  
!       Left  := First_Sloc (Expr);
!       Right := Last_Sloc (Expr);
  
!       if Left > Right then
!          return Default;
!       end if;
  
        declare
!          Scn : Source_Ptr := Left;
!          Src : constant not null Source_Buffer_Ptr :=
!            Source_Text (Get_Source_File_Index (Scn));
  
+          Threshold        : constant := 256;
+          Buffer           : String (1 .. Natural (Right - Left + 1));
+          Index            : Natural := 0;
+          Skipping_Comment : Boolean := False;
+          Underscore       : Boolean := False;
        begin
!          while Scn <= Right loop
!             case Src (Scn) is
  
!                --  Give up on non ASCII characters
  
!                when Character'Val (128) .. Character'Last =>
!                   Index := 0;
!                   exit;
  
!                when ' '
!                   | ASCII.HT
!                =>
!                   if not Skipping_Comment and then not Underscore then
!                      Underscore := True;
!                      Index := Index + 1;
!                      Buffer (Index) := ' ';
!                   end if;
  
!                --  CR/LF/FF is the end of any comment
  
!                when ASCII.CR
!                   | ASCII.FF
!                   | ASCII.LF
!                =>
!                   Skipping_Comment := False;
  
!                when others =>
!                   Underscore := False;
  
!                   if not Skipping_Comment then
  
!                      --  Ignore comment
  
!                      if Src (Scn) = '-' and then Src (Scn + 1) = '-' then
!                         Skipping_Comment := True;
!                      else
!                         Index := Index + 1;
!                         Buffer (Index) := Src (Scn);
!                      end if;
                    end if;
+             end case;
  
!             --  Give up on too long strings
! 
!             if Index >= Threshold then
!                return Buffer (1 .. Index) & "...";
              end if;
  
!             Scn := Scn + 1;
!          end loop;
  
!          return Fix_Parentheses (Buffer (1 .. Index));
        end;
     end Expression_Image;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/pprint.ads gcc-14.1.0/gcc/ada/pprint.ads
*** gcc-13.2.0/gcc/ada/pprint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/pprint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/prep.adb gcc-14.1.0/gcc/ada/prep.adb
*** gcc-13.2.0/gcc/ada/prep.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/prep.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/prep.ads gcc-14.1.0/gcc/ada/prep.ads
*** gcc-13.2.0/gcc/ada/prep.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/prep.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/prepcomp.adb gcc-14.1.0/gcc/ada/prepcomp.adb
*** gcc-13.2.0/gcc/ada/prepcomp.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/prepcomp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/prepcomp.ads gcc-14.1.0/gcc/ada/prepcomp.ads
*** gcc-13.2.0/gcc/ada/prepcomp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/prepcomp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/put_scos.adb gcc-14.1.0/gcc/ada/put_scos.adb
*** gcc-13.2.0/gcc/ada/put_scos.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/put_scos.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/put_scos.ads gcc-14.1.0/gcc/ada/put_scos.ads
*** gcc-13.2.0/gcc/ada/put_scos.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/put_scos.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/raise-gcc.c gcc-14.1.0/gcc/ada/raise-gcc.c
*** gcc-13.2.0/gcc/ada/raise-gcc.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/raise-gcc.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2023, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2024, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 50,59 ****
--- 50,61 ----
  
  #ifdef __cplusplus
  # include <cstdarg>
+ # include <cstddef>
  # include <cstdlib>
  #else
  # include <stdarg.h>
  # include <stdbool.h>
+ # include <stddef.h>
  # include <stdlib.h>
  #endif
  
*************** get_ip_from_context (_Unwind_Context *uw
*** 592,597 ****
--- 594,604 ----
  #else
    _Unwind_Ptr ip = _Unwind_GetIP (uw_context);
  #endif
+ 
+ #if !defined(__USING_SJLJ_EXCEPTIONS__) && defined(__CHERI__)
+   ip = __builtin_code_address_from_pointer ((void *)ip);
+ #endif
+ 
    /* Subtract 1 if necessary because GetIPInfo yields a call return address
       in this case, while we are interested in information for the call point.
       This does not always yield the exact call instruction address but always
*************** get_call_site_action_for (_Unwind_Ptr ip
*** 850,856 ****
--- 857,883 ----
        /* Note that all call-site encodings are "absolute" displacements.  */
        p = read_encoded_value (0, region->call_site_encoding, p, &cs_start);
        p = read_encoded_value (0, region->call_site_encoding, p, &cs_len);
+ #ifdef __CHERI_PURE_CAPABILITY__
+       // Single uleb128 value as the capability marker.
+       _Unwind_Ptr marker = 0;
+       p = read_encoded_value (0, DW_EH_PE_uleb128, p, &marker);
+       if (marker == 0xd)
+ 	{
+ 	  /* 8-byte offset to the (indirected) capability. */
+ 	  p = read_encoded_value (0, DW_EH_PE_pcrel | DW_EH_PE_udata8, p,
+ 				  &cs_lp);
+ 	}
+       else if (marker)
+ 	{
+ 	  /* Unsupported landing pad marker value. */
+ 	  abort ();
+ 	}
+       else
+ 	cs_lp = 0; // No landing pad.
+ #else
        p = read_encoded_value (0, region->call_site_encoding, p, &cs_lp);
+ #endif
+ 
        p = read_uleb128 (p, &cs_action);
  
        db (DB_CSITE,
*************** get_call_site_action_for (_Unwind_Ptr ip
*** 859,876 ****
  	  (char *)region->lp_base + cs_lp, (void *)cs_lp);
  
        /* The table is sorted, so if we've passed the IP, stop.  */
!       if (ip < region->base + cs_start)
   	break;
  
        /* If we have a match, fill the ACTION fields accordingly.  */
!       else if (ip < region->base + cs_start + cs_len)
  	{
  	  /* Let the caller know there may be an action to take, but let it
  	     determine the kind.  */
  	  action->kind = unknown;
  
  	  if (cs_lp)
! 	    action->landing_pad = region->lp_base + cs_lp;
  	  else
  	    action->landing_pad = 0;
  
--- 886,909 ----
  	  (char *)region->lp_base + cs_lp, (void *)cs_lp);
  
        /* The table is sorted, so if we've passed the IP, stop.  */
!       if (ip < region->base + (size_t)cs_start)
   	break;
  
        /* If we have a match, fill the ACTION fields accordingly.  */
!       else if (ip < region->base + (size_t)cs_start + (size_t)cs_len)
  	{
  	  /* Let the caller know there may be an action to take, but let it
  	     determine the kind.  */
  	  action->kind = unknown;
  
  	  if (cs_lp)
! 	    {
! #ifdef __CHERI_PURE_CAPABILITY__
! 	      action->landing_pad = *(_Unwind_Ptr *)cs_lp;
! #else
! 	      action->landing_pad = region->lp_base + cs_lp;
! #endif
! 	    }
  	  else
  	    action->landing_pad = 0;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/raise.c gcc-14.1.0/gcc/ada/raise.c
*** gcc-13.2.0/gcc/ada/raise.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/raise.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2023, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2024, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/raise.h gcc-14.1.0/gcc/ada/raise.h
*** gcc-13.2.0/gcc/ada/raise.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/raise.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/repinfo-input.adb gcc-14.1.0/gcc/ada/repinfo-input.adb
*** gcc-13.2.0/gcc/ada/repinfo-input.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/repinfo-input.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2018-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2018-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/repinfo-input.ads gcc-14.1.0/gcc/ada/repinfo-input.ads
*** gcc-13.2.0/gcc/ada/repinfo-input.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/repinfo-input.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2018-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2018-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/repinfo.adb gcc-14.1.0/gcc/ada/repinfo.adb
*** gcc-13.2.0/gcc/ada/repinfo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/repinfo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Repinfo is
*** 428,439 ****
           end if;
  
        --  Alignment is not always set for task, protected, and class-wide
!       --  types. Representation aspects are not computed for types in a
!       --  generic unit.
  
        else
           pragma Assert
!            (Is_Concurrent_Type (Ent) or else
                Is_Class_Wide_Type (Ent) or else
                Sem_Util.In_Generic_Scope (Ent));
        end if;
--- 428,448 ----
           end if;
  
        --  Alignment is not always set for task, protected, and class-wide
!       --  types, or when doing semantic analysis only. Representation aspects
!       --  are not computed for types in a generic unit.
  
        else
+          --  Add unknown alignment entry in JSON format to ensure the format is
+          --  valid, as a comma is added by the caller before another field.
+ 
+          if List_Representation_Info_To_JSON then
+             Write_Str ("  ""Alignment"": ");
+             Write_Unknown_Val;
+          end if;
+ 
           pragma Assert
!            (not Expander_Active or else
!               Is_Concurrent_Type (Ent) or else
                Is_Class_Wide_Type (Ent) or else
                Sem_Util.In_Generic_Scope (Ent));
        end if;
*************** package body Repinfo is
*** 991,1002 ****
        procedure List_Structural_Record_Layout
          (Ent       : Entity_Id;
           Ext_Ent   : Entity_Id;
!          Ext_Level : Nat := 0;
           Variant   : Node_Id := Empty;
           Indent    : Natural := 0);
        --  Internal recursive procedure to display the structural layout.
        --  If Ext_Ent is not equal to Ent, it is an extension of Ent and
!       --  Ext_Level is the number of successive extensions between them.
        --  If Variant is present, it's for a variant in the variant part
        --  instead of the common part of Ent. Indent is the indentation.
  
--- 1000,1016 ----
        procedure List_Structural_Record_Layout
          (Ent       : Entity_Id;
           Ext_Ent   : Entity_Id;
!          Ext_Level : Integer := 0;
           Variant   : Node_Id := Empty;
           Indent    : Natural := 0);
        --  Internal recursive procedure to display the structural layout.
        --  If Ext_Ent is not equal to Ent, it is an extension of Ent and
!       --  Ext_Level is the number of successive extensions between them,
!       --  with the convention that this number is positive when we are
!       --  called from the fixed part of Ext_Ent and negative when we are
!       --  called from the variant part of Ext_Ent, if any; this is needed
!       --  because the fixed and variant parts of a parent of an extension
!       --  cannot be listed contiguously from this extension's viewpoint.
        --  If Variant is present, it's for a variant in the variant part
        --  instead of the common part of Ent. Indent is the indentation.
  
*************** package body Repinfo is
*** 1086,1092 ****
                       goto Continue;
                    end if;
  
!                   UI_Image (Spos);
                 else
                    --  If the record is not packed, then we know that all fields
                    --  whose position is not specified have starting normalized
--- 1100,1106 ----
                       goto Continue;
                    end if;
  
!                   UI_Image (Spos, Format => Decimal);
                 else
                    --  If the record is not packed, then we know that all fields
                    --  whose position is not specified have starting normalized
*************** package body Repinfo is
*** 1162,1168 ****
                 Spos := Spos + 1;
              end if;
  
!             UI_Image (Spos);
              Spaces (Max_Spos_Length - UI_Image_Length);
              Write_Str (UI_Image_Buffer (1 .. UI_Image_Length));
  
--- 1176,1182 ----
                 Spos := Spos + 1;
              end if;
  
!             UI_Image (Spos, Format => Decimal);
              Spaces (Max_Spos_Length - UI_Image_Length);
              Write_Str (UI_Image_Buffer (1 .. UI_Image_Length));
  
*************** package body Repinfo is
*** 1362,1368 ****
        procedure List_Structural_Record_Layout
          (Ent       : Entity_Id;
           Ext_Ent   : Entity_Id;
!          Ext_Level : Nat := 0;
           Variant   : Node_Id := Empty;
           Indent    : Natural := 0)
        is
--- 1376,1382 ----
        procedure List_Structural_Record_Layout
          (Ent       : Entity_Id;
           Ext_Ent   : Entity_Id;
!          Ext_Level : Integer := 0;
           Variant   : Node_Id := Empty;
           Indent    : Natural := 0)
        is
*************** package body Repinfo is
*** 1381,1387 ****
              Derived_Disc : Entity_Id;
  
           begin
!             Derived_Disc := First_Discriminant (Ext_Ent);
  
              --  Loop over the discriminants of the extension
  
--- 1395,1410 ----
              Derived_Disc : Entity_Id;
  
           begin
!             --  Deal with an extension of a type with unknown discriminants
! 
!             if Has_Unknown_Discriminants (Ext_Ent)
!               and then Present (Underlying_Record_View (Ext_Ent))
!             then
!                Derived_Disc :=
!                  First_Discriminant (Underlying_Record_View (Ext_Ent));
!             else
!                Derived_Disc := First_Discriminant (Ext_Ent);
!             end if;
  
              --  Loop over the discriminants of the extension
  
*************** package body Repinfo is
*** 1418,1423 ****
--- 1441,1447 ----
           Comp       : Node_Id;
           Comp_List  : Node_Id;
           First      : Boolean := True;
+          Parent_Ent : Entity_Id := Empty;
           Var        : Node_Id;
  
        --  Start of processing for List_Structural_Record_Layout
*************** package body Repinfo is
*** 1471,1478 ****
                          raise Not_In_Extended_Main;
                       end if;
  
!                      List_Structural_Record_Layout
!                        (Parent_Type, Ext_Ent, Ext_Level + 1);
                    end if;
  
                    First := False;
--- 1495,1505 ----
                          raise Not_In_Extended_Main;
                       end if;
  
!                      Parent_Ent := Parent_Type;
!                      if Ext_Level >= 0 then
!                         List_Structural_Record_Layout
!                           (Parent_Ent, Ext_Ent, Ext_Level + 1);
!                      end if;
                    end if;
  
                    First := False;
*************** package body Repinfo is
*** 1488,1493 ****
--- 1515,1521 ----
  
                 if Has_Discriminants (Ent)
                   and then not Is_Unchecked_Union (Ent)
+                  and then Ext_Level >= 0
                 then
                    Disc := First_Discriminant (Ent);
                    while Present (Disc) loop
*************** package body Repinfo is
*** 1509,1515 ****
--- 1537,1548 ----
  
                          if No (Listed_Disc) then
                             goto Continue_Disc;
+ 
+                         elsif not Known_Normalized_Position (Listed_Disc) then
+                            Listed_Disc :=
+                              Original_Record_Component (Listed_Disc);
                          end if;
+ 
                       else
                          Listed_Disc := Disc;
                       end if;
*************** package body Repinfo is
*** 1543,1549 ****
  
           --  Now deal with the regular components, if any
  
!          if Present (Component_Items (Comp_List)) then
              Comp := First_Non_Pragma (Component_Items (Comp_List));
              while Present (Comp) loop
  
--- 1576,1584 ----
  
           --  Now deal with the regular components, if any
  
!          if Present (Component_Items (Comp_List))
!            and then (Present (Variant) or else Ext_Level >= 0)
!          then
              Comp := First_Non_Pragma (Component_Items (Comp_List));
              while Present (Comp) loop
  
*************** package body Repinfo is
*** 1571,1576 ****
--- 1606,1625 ----
              end loop;
           end if;
  
+          --  Stop there if we are called from the fixed part of Ext_Ent,
+          --  we'll do the variant part when called from its variant part.
+ 
+          if Ext_Level > 0 then
+             return;
+          end if;
+ 
+          --  List the layout of the variant part of the parent, if any
+ 
+          if Present (Parent_Ent) then
+             List_Structural_Record_Layout
+               (Parent_Ent, Ext_Ent, Ext_Level - 1);
+          end if;
+ 
           --  We are done if there is no variant part
  
           if No (Variant_Part (Comp_List)) then
*************** package body Repinfo is
*** 1582,1588 ****
           Write_Line ("  ],");
           Spaces (Indent);
           Write_Str ("  """);
!          for J in 1 .. Ext_Level loop
              Write_Str ("parent_");
           end loop;
           Write_Str ("variant"" : [");
--- 1631,1637 ----
           Write_Line ("  ],");
           Spaces (Indent);
           Write_Str ("  """);
!          for J in Ext_Level .. -1 loop
              Write_Str ("parent_");
           end loop;
           Write_Str ("variant"" : [");
diff -Nrcpad gcc-13.2.0/gcc/ada/repinfo.ads gcc-14.1.0/gcc/ada/repinfo.ads
*** gcc-13.2.0/gcc/ada/repinfo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/repinfo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Repinfo is
*** 244,250 ****
     --    "present" and "record" are present for every variant. The value of
     --    "present" is a boolean expression that evaluates to true when the
     --    components of the variant are contained in the record type and to
!    --    false when they are not. The value of "record" is the list of
     --    components in the variant. "variant" is present only if the variant
     --    itself has a variant part and its value is the list of (sub)variants.
  
--- 244,253 ----
     --    "present" and "record" are present for every variant. The value of
     --    "present" is a boolean expression that evaluates to true when the
     --    components of the variant are contained in the record type and to
!    --    false when they are not, with the exception that a value of 1 means
!    --    that the components of the variant are contained in the record type
!    --    only when the "present" member of all the preceding variants in the
!    --    variant list evaluates to false. The value of "record" is the list of
     --    components in the variant. "variant" is present only if the variant
     --    itself has a variant part and its value is the list of (sub)variants.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/repinfo.h gcc-14.1.0/gcc/ada/repinfo.h
*** gcc-13.2.0/gcc/ada/repinfo.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/repinfo.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1999-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1999-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/restrict.adb gcc-14.1.0/gcc/ada/restrict.adb
*** gcc-13.2.0/gcc/ada/restrict.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/restrict.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Restrict is
*** 509,514 ****
--- 509,526 ----
           Update_Restrictions (Main_Restrictions);
        end if;
  
+       declare
+          use Local_Restrictions;
+       begin
+          if Local_Restriction_Checking_Hook /= null then
+             --  A given global restriction (which may or may not be in
+             --  effect) has been violated. Even if the global restriction
+             --  is not in effect, a corresponding local restriction may be
+             --  in effect (in which case the violation needs to be flagged).
+             Local_Restriction_Checking_Hook.all (R, N);
+          end if;
+       end;
+ 
        --  Nothing to do if restriction message suppressed
  
        if Suppress_Restriction_Message (N) then
diff -Nrcpad gcc-13.2.0/gcc/ada/restrict.ads gcc-14.1.0/gcc/ada/restrict.ads
*** gcc-13.2.0/gcc/ada/restrict.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/restrict.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Restrict is
*** 601,606 ****
--- 601,620 ----
     --  Add specified restriction to stored configuration boolean restrictions.
     --  This is used for handling the special case of No_Elaboration_Code.
  
+    package Local_Restrictions is
+       --  In the body of package Restrict, we want to call a subprogram
+       --  declared in package Local_Restrict. Doing this in the obvious
+       --  way introduces problems (by pulling the bulk of semantics into
+       --  the closure of package Restrict). So we declare an access-to-subp
+       --  object here and call through it later if it happens to be non-null;
+       --  it is initialized in the body of package Local_Restrict.
+ 
+       type Local_Restriction_Checking_Proc_Ref is access
+         procedure (R : All_Restrictions; N : Node_Id);
+ 
+       Local_Restriction_Checking_Hook : Local_Restriction_Checking_Proc_Ref;
+    end Local_Restrictions;
+ 
  private
     type Save_Cunit_Boolean_Restrictions is
       array (Cunit_Boolean_Restrictions) of Boolean;
diff -Nrcpad gcc-13.2.0/gcc/ada/rident.ads gcc-14.1.0/gcc/ada/rident.ads
*** gcc-13.2.0/gcc/ada/rident.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/rident.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/rtfinal.c gcc-14.1.0/gcc/ada/rtfinal.c
*** gcc-13.2.0/gcc/ada/rtfinal.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/rtfinal.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/rtinit.c gcc-14.1.0/gcc/ada/rtinit.c
*** gcc-13.2.0/gcc/ada/rtinit.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/rtinit.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/rtsfind.adb gcc-14.1.0/gcc/ada/rtsfind.adb
*** gcc-13.2.0/gcc/ada/rtsfind.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/rtsfind.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Rtsfind is
*** 1023,1028 ****
--- 1023,1035 ----
        U        : RT_Unit_Table_Record renames RT_Unit_Table (U_Id);
        Priv_Par : constant Elist_Id := New_Elmt_List;
        Lib_Unit : Node_Id;
+       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
+       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
+       Saved_ISMP : constant Boolean        :=
+                      Ignore_SPARK_Mode_Pragmas_In_Instance;
+       Saved_SM  : constant SPARK_Mode_Type := SPARK_Mode;
+       Saved_SMP : constant Node_Id         := SPARK_Mode_Pragma;
+       --  Save Ghost and SPARK mode-related data to restore on exit
  
        procedure Save_Private_Visibility;
        --  If the current unit is the body of child unit or the spec of a
*************** package body Rtsfind is
*** 1034,1039 ****
--- 1041,1049 ----
        procedure Restore_Private_Visibility;
        --  Restore the visibility of ancestors after compiling RTU
  
+       procedure Restore_SPARK_Context;
+       --  Restore Ghost and SPARK mode-related data saved on procedure entry
+ 
        --------------------------------
        -- Restore_Private_Visibility --
        --------------------------------
*************** package body Rtsfind is
*** 1075,1089 ****
           end loop;
        end Save_Private_Visibility;
  
!       --  Local variables
  
!       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
!       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
!       Saved_ISMP : constant Boolean        :=
!                      Ignore_SPARK_Mode_Pragmas_In_Instance;
!       Saved_SM  : constant SPARK_Mode_Type := SPARK_Mode;
!       Saved_SMP : constant Node_Id         := SPARK_Mode_Pragma;
!       --  Save Ghost and SPARK mode-related data to restore on exit
  
     --  Start of processing for Load_RTU
  
--- 1085,1100 ----
           end loop;
        end Save_Private_Visibility;
  
!       ---------------------------
!       -- Restore_SPARK_Context --
!       ---------------------------
  
!       procedure Restore_SPARK_Context is
!       begin
!          Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!          Restore_Ghost_Region (Saved_GM, Saved_IGR);
!          Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
!       end Restore_SPARK_Context;
  
     --  Start of processing for Load_RTU
  
*************** package body Rtsfind is
*** 1195,1203 ****
           Set_Is_Potentially_Use_Visible (U.Entity, True);
        end if;
  
!       Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
!       Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
     end Load_RTU;
  
     --------------------
--- 1206,1222 ----
           Set_Is_Potentially_Use_Visible (U.Entity, True);
        end if;
  
!       Restore_SPARK_Context;
! 
!    exception
!       --  The Load_Fail procedure that is called when the result of Load_Unit
!       --  is not satisfactory raises an exception. As the compiler is able to
!       --  recover in some cases (i.e. when RE_Not_Available is raised), we need
!       --  to restore the SPARK/Ghost context correctly.
! 
!       when others =>
!          Restore_SPARK_Context;
!          raise;
     end Load_RTU;
  
     --------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/rtsfind.ads gcc-14.1.0/gcc/ada/rtsfind.ads
*** gcc-13.2.0/gcc/ada/rtsfind.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/rtsfind.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Rtsfind is
*** 179,185 ****
  
        CUDA_Driver_Types,
        CUDA_Internal,
-       CUDA_Runtime_Api,
        CUDA_Vector_Types,
  
        --  Interfaces
--- 179,184 ----
*************** package Rtsfind is
*** 919,925 ****
       RE_Attr_Long_Long_Float,            -- System.Fat_LLF
  
       RE_Add_Offset_To_Address,           -- System.Finalization_Masters
-      RE_Attach,                          -- System.Finalization_Masters
       RE_Base_Pool,                       -- System.Finalization_Masters
       RE_Finalization_Master,             -- System.Finalization_Masters
       RE_Finalization_Master_Ptr,         -- System.Finalization_Masters
--- 918,923 ----
*************** package Rtsfind is
*** 2564,2570 ****
       RE_Attr_Long_Long_Float             => System_Fat_LLF,
  
       RE_Add_Offset_To_Address            => System_Finalization_Masters,
-      RE_Attach                           => System_Finalization_Masters,
       RE_Base_Pool                        => System_Finalization_Masters,
       RE_Finalization_Master              => System_Finalization_Masters,
       RE_Finalization_Master_Ptr          => System_Finalization_Masters,
--- 2562,2567 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/runtime.h gcc-14.1.0/gcc/ada/runtime.h
*** gcc-13.2.0/gcc/ada/runtime.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/runtime.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2019-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2019-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/s-oscons-tmplt.c gcc-14.1.0/gcc/ada/s-oscons-tmplt.c
*** gcc-13.2.0/gcc/ada/s-oscons-tmplt.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/s-oscons-tmplt.c	Tue May  7 06:51:37 2024
***************
*** 7,13 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 7,13 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** CND(SO_KEEPALIVE, "Enable keep-alive msg
*** 1545,1550 ****
--- 1545,1555 ----
  #endif
  CND(SO_LINGER, "Defer close to flush data")
  
+ #ifndef SO_BINDTODEVICE
+ # define SO_BINDTODEVICE -1
+ #endif
+ CND(SO_BINDTODEVICE, "Bind to a NIC - Network Interface Controller")
+ 
  #ifndef SO_BROADCAST
  # define SO_BROADCAST -1
  #endif
*************** CND(SIZEOF_struct_hostent, "struct hoste
*** 1796,1806 ****
  #define SIZEOF_struct_servent (sizeof (struct servent))
  CND(SIZEOF_struct_servent, "struct servent")
  
- #if defined (__linux__) || defined (__ANDROID__) || defined (__QNX__)
- #define SIZEOF_sigset (sizeof (sigset_t))
- CND(SIZEOF_sigset, "sigset")
- #endif
- 
  #if defined(_WIN32) || defined(__vxworks)
  #define SIZEOF_nfds_t sizeof (int) * 8
  #define SIZEOF_socklen_t sizeof (size_t)
--- 1801,1806 ----
*************** CST(Poll_Linkname, "")
*** 1938,1943 ****
--- 1938,1948 ----
  
  #endif /* HAVE_SOCKETS */
  
+ #if defined (__linux__) || defined (__ANDROID__) || defined (__QNX__)
+ #define SIZEOF_sigset (sizeof (sigset_t))
+ CND(SIZEOF_sigset, "sigset")
+ #endif
+ 
  /*
  
     ---------------------
*************** CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU
*** 1970,1976 ****
  
  #if defined(__linux__) || defined(__FreeBSD__) \
   || (defined(_AIX) && defined(_AIXVERSION_530)) \
!  || defined(__DragonFly__) || defined(__QNX__)
  /** On these platforms use system provided monotonic clock instead of
   ** the default CLOCK_REALTIME. We then need to set up cond var attributes
   ** appropriately (see thread.c).
--- 1975,1982 ----
  
  #if defined(__linux__) || defined(__FreeBSD__) \
   || (defined(_AIX) && defined(_AIXVERSION_530)) \
!  || defined(__DragonFly__) || defined(__QNX__) \
!  || defined (__vxworks)
  /** On these platforms use system provided monotonic clock instead of
   ** the default CLOCK_REALTIME. We then need to set up cond var attributes
   ** appropriately (see thread.c).
diff -Nrcpad gcc-13.2.0/gcc/ada/scans.adb gcc-14.1.0/gcc/ada/scans.adb
*** gcc-13.2.0/gcc/ada/scans.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scans.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/scans.ads gcc-14.1.0/gcc/ada/scans.ads
*** gcc-13.2.0/gcc/ada/scans.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scans.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Scans is
*** 482,487 ****
--- 482,490 ----
     --  or aspect. Used to allow/require nonstandard style rules for =>+ with
     --  -gnatyt.
  
+    Inside_Interpolated_String_Expression : Boolean := False;
+    --  True while parsing an interpolated string expression
+ 
     Inside_Interpolated_String_Literal : Boolean := False;
     --  True while parsing an interpolated string literal
  
diff -Nrcpad gcc-13.2.0/gcc/ada/scil_ll.adb gcc-14.1.0/gcc/ada/scil_ll.adb
*** gcc-13.2.0/gcc/ada/scil_ll.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scil_ll.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/scil_ll.ads gcc-14.1.0/gcc/ada/scil_ll.ads
*** gcc-13.2.0/gcc/ada/scil_ll.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scil_ll.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/scn.adb gcc-14.1.0/gcc/ada/scn.adb
*** gcc-13.2.0/gcc/ada/scn.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scn.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/scn.ads gcc-14.1.0/gcc/ada/scn.ads
*** gcc-13.2.0/gcc/ada/scn.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scn.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/scng.adb gcc-14.1.0/gcc/ada/scng.adb
*** gcc-13.2.0/gcc/ada/scng.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scng.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Scng is
*** 951,962 ****
              C3   : Character;
  
           begin
              --  Token_Name is currently set to Error_Name. The following
              --  section of code resets Token_Name to the proper Name_Op_xx
              --  value if the string is a valid operator symbol, otherwise it is
              --  left set to Error_Name.
  
!             if Slen = 1 then
                 C1 := Source (Token_Ptr + 1);
  
                 case C1 is
--- 951,970 ----
              C3   : Character;
  
           begin
+             --  Skip processing operator symbols if we are scanning an
+             --  interpolated string literal.
+ 
+             if Inside_Interpolated_String_Literal
+               and then not Inside_Interpolated_String_Expression
+             then
+                null;
+ 
              --  Token_Name is currently set to Error_Name. The following
              --  section of code resets Token_Name to the proper Name_Op_xx
              --  value if the string is a valid operator symbol, otherwise it is
              --  left set to Error_Name.
  
!             elsif Slen = 1 then
                 C1 := Source (Token_Ptr + 1);
  
                 case C1 is
*************** package body Scng is
*** 1527,1536 ****
              end if;
  
           --  Left curly bracket, treated as right paren but proper delimiter
!          --  of interpolated string literals when all extensions are allowed.
  
           when '{' =>
!             if All_Extensions_Allowed then
                 Scan_Ptr := Scan_Ptr + 1;
                 Token := Tok_Left_Curly_Bracket;
  
--- 1535,1544 ----
              end if;
  
           --  Left curly bracket, treated as right paren but proper delimiter
!          --  of interpolated string literals when core extensions are allowed.
  
           when '{' =>
!             if Core_Extensions_Allowed then
                 Scan_Ptr := Scan_Ptr + 1;
                 Token := Tok_Left_Curly_Bracket;
  
*************** package body Scng is
*** 1962,1971 ****
              return;
  
           --  Right curly bracket, treated as right paren but proper delimiter
!          --  of interpolated string literals when all extensions are allowed.
  
           when '}' =>
!             if All_Extensions_Allowed then
                 Token := Tok_Right_Curly_Bracket;
  
              else
--- 1970,1979 ----
              return;
  
           --  Right curly bracket, treated as right paren but proper delimiter
!          --  of interpolated string literals when core extensions are allowed.
  
           when '}' =>
!             if Core_Extensions_Allowed then
                 Token := Tok_Right_Curly_Bracket;
  
              else
*************** package body Scng is
*** 2125,2131 ****
           --  Lower case letters
  
           when 'a' .. 'z' =>
!             if All_Extensions_Allowed
                and then Source (Scan_Ptr) = 'f'
                and then Source (Scan_Ptr + 1) = '"'
              then
--- 2133,2139 ----
           --  Lower case letters
  
           when 'a' .. 'z' =>
!             if Core_Extensions_Allowed
                and then Source (Scan_Ptr) = 'f'
                and then Source (Scan_Ptr + 1) = '"'
              then
*************** package body Scng is
*** 2145,2151 ****
           --  Upper case letters
  
           when 'A' .. 'Z' =>
!             if All_Extensions_Allowed
                and then Source (Scan_Ptr) = 'F'
                and then Source (Scan_Ptr + 1) = '"'
              then
--- 2153,2159 ----
           --  Upper case letters
  
           when 'A' .. 'Z' =>
!             if Core_Extensions_Allowed
                and then Source (Scan_Ptr) = 'F'
                and then Source (Scan_Ptr + 1) = '"'
              then
diff -Nrcpad gcc-13.2.0/gcc/ada/scng.ads gcc-14.1.0/gcc/ada/scng.ads
*** gcc-13.2.0/gcc/ada/scng.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scng.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/scos.adb gcc-14.1.0/gcc/ada/scos.adb
*** gcc-13.2.0/gcc/ada/scos.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scos.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/scos.ads gcc-14.1.0/gcc/ada/scos.ads
*** gcc-13.2.0/gcc/ada/scos.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scos.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/scos.h gcc-14.1.0/gcc/ada/scos.h
*** gcc-13.2.0/gcc/ada/scos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/scos.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2014-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2014-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sdefault.ads gcc-14.1.0/gcc/ada/sdefault.ads
*** gcc-13.2.0/gcc/ada/sdefault.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sdefault.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/seh_init.c gcc-14.1.0/gcc/ada/seh_init.c
*** gcc-13.2.0/gcc/ada/seh_init.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/seh_init.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2005-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2005-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sem.adb gcc-14.1.0/gcc/ada/sem.adb
*** gcc-13.2.0/gcc/ada/sem.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Atree;          use Atree;
*** 27,33 ****
  with Debug;          use Debug;
  with Debug_A;        use Debug_A;
  with Einfo;          use Einfo;
- with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Exp_SPARK;      use Exp_SPARK;
--- 27,32 ----
*************** package body Sem is
*** 760,765 ****
--- 759,787 ----
  
        Debug_A_Exit ("analyzing  ", N, "  (done)");
  
+       --  Set Is_Not_Self_Hidden flag. RM-8.3(16) says a declaration
+       --  is no longer hidden from all visibility after "the end of the
+       --  declaration", so we set the flag here (in addition to setting it
+       --  elsewhere to handle the "except..." cases of 8.3(16)). However,
+       --  we implement 3.8(10) using the same flag, so in that case we
+       --  need to defer the setting until the end of the record.
+ 
+       declare
+          E : constant Entity_Id := Defining_Entity_Or_Empty (N);
+       begin
+          if Present (E) then
+             if Ekind (E) = E_Void
+               and then Nkind (N) = N_Component_Declaration
+               and then Present (Scope (E))
+               and then Ekind (Scope (E)) = E_Record_Type
+             then
+                null; -- Set it later, in Analyze_Component_Declaration
+             elsif not Is_Not_Self_Hidden (E) then
+                Set_Is_Not_Self_Hidden (E);
+             end if;
+          end if;
+       end;
+ 
        --  Mark relevant use-type and use-package clauses as effective
        --  preferring the original node over the analyzed one in the case that
        --  constant folding has occurred and removed references that need to be
diff -Nrcpad gcc-13.2.0/gcc/ada/sem.ads gcc-14.1.0/gcc/ada/sem.ads
*** gcc-13.2.0/gcc/ada/sem.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 201,206 ****
--- 201,207 ----
  --  called Preanalyze_And_Resolve and is in Sem_Res.
  
  with Alloc;
+ with Einfo.Entities; use Einfo.Entities;
  with Opt;    use Opt;
  with Table;
  with Types;  use Types;
*************** package Sem is
*** 485,491 ****
     --  configuration file.
  
     type Scope_Stack_Entry is record
!       Entity : Entity_Id;
        --  Entity representing the scope
  
        Last_Subprogram_Name : String_Ptr;
--- 486,492 ----
     --  configuration file.
  
     type Scope_Stack_Entry is record
!       Entity : Scope_Kind_Id;
        --  Entity representing the scope
  
        Last_Subprogram_Name : String_Ptr;
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_aggr.adb gcc-14.1.0/gcc/ada/sem_aggr.adb
*** gcc-13.2.0/gcc/ada/sem_aggr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_aggr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Aspects;        use Aspects;
*** 27,38 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Einfo;          use Einfo;
- with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
  with Expander;       use Expander;
- with Exp_Ch6;        use Exp_Ch6;
  with Exp_Tss;        use Exp_Tss;
  with Exp_Util;       use Exp_Util;
  with Freeze;         use Freeze;
--- 27,36 ----
*************** package body Sem_Aggr is
*** 423,428 ****
--- 421,429 ----
  
     procedure Resolve_Delta_Array_Aggregate  (N : Node_Id; Typ : Entity_Id);
     procedure Resolve_Delta_Record_Aggregate (N : Node_Id; Typ : Entity_Id);
+    procedure Resolve_Deep_Delta_Assoc (N : Node_Id; Typ : Entity_Id);
+    --  Resolve the names/expressions in a component association for
+    --  a deep delta aggregate. Typ is the type of the enclosing object.
  
     ------------------------
     -- Array_Aggr_Subtype --
*************** package body Sem_Aggr is
*** 464,471 ****
           This_Range : constant Node_Id := Aggregate_Bounds (N);
           --  The aggregate range node of this specific sub-aggregate
  
!          This_Low  : constant Node_Id := Low_Bound  (Aggregate_Bounds (N));
!          This_High : constant Node_Id := High_Bound (Aggregate_Bounds (N));
           --  The aggregate bounds of this specific sub-aggregate
  
           Assoc : Node_Id;
--- 465,472 ----
           This_Range : constant Node_Id := Aggregate_Bounds (N);
           --  The aggregate range node of this specific sub-aggregate
  
!          This_Low  : constant Node_Id := Low_Bound  (This_Range);
!          This_High : constant Node_Id := High_Bound (This_Range);
           --  The aggregate bounds of this specific sub-aggregate
  
           Assoc : Node_Id;
*************** package body Sem_Aggr is
*** 759,764 ****
--- 760,787 ----
        end if;
     end Check_Expr_OK_In_Limited_Aggregate;
  
+    --------------------
+    -- Is_Deep_Choice --
+    --------------------
+ 
+    function Is_Deep_Choice
+      (Choice    : Node_Id;
+       Aggr_Type : Type_Kind_Id) return Boolean
+    is
+       Pref : Node_Id := Choice;
+    begin
+       while not Is_Root_Prefix_Of_Deep_Choice (Pref) loop
+          Pref := Prefix (Pref);
+       end loop;
+ 
+       if Is_Array_Type (Aggr_Type) then
+          return Paren_Count (Pref) > 0
+            and then Pref /= Choice;
+       else
+          return Pref /= Choice;
+       end if;
+    end Is_Deep_Choice;
+ 
     -------------------------
     -- Is_Others_Aggregate --
     -------------------------
*************** package body Sem_Aggr is
*** 771,776 ****
--- 794,810 ----
          and then Nkind (First (Choice_List (First (Assoc)))) = N_Others_Choice;
     end Is_Others_Aggregate;
  
+    -----------------------------------
+    -- Is_Root_Prefix_Of_Deep_Choice --
+    -----------------------------------
+ 
+    function Is_Root_Prefix_Of_Deep_Choice (Pref : Node_Id) return Boolean is
+    begin
+       return Paren_Count (Pref) > 0
+         or else Nkind (Pref) not in N_Indexed_Component
+                                   | N_Selected_Component;
+    end Is_Root_Prefix_Of_Deep_Choice;
+ 
     -------------------------
     -- Is_Single_Aggregate --
     -------------------------
*************** package body Sem_Aggr is
*** 828,834 ****
  
     begin
        P := Loc + 1;
!       for J in  1 .. Strlen loop
           C := Get_String_Char (Str, J);
           Set_Character_Literal_Name (C);
  
--- 862,868 ----
  
     begin
        P := Loc + 1;
!       for J in 1 .. Strlen loop
           C := Get_String_Char (Str, J);
           Set_Character_Literal_Name (C);
  
*************** package body Sem_Aggr is
*** 1065,1070 ****
--- 1099,1117 ----
  
           Resolve_Container_Aggregate (N, Typ);
  
+       --  Check Ada 2022 empty aggregate [] initializing a record type that has
+       --  aspect aggregate; the empty aggregate will be expanded into a call to
+       --  the empty function specified in the aspect aggregate.
+ 
+       elsif Has_Aspect (Typ, Aspect_Aggregate)
+         and then Ekind (Typ) = E_Record_Type
+         and then Is_Homogeneous_Aggregate (N)
+         and then Is_Empty_List (Expressions (N))
+         and then Is_Empty_List (Component_Associations (N))
+         and then Ada_Version >= Ada_2022
+       then
+          Resolve_Container_Aggregate (N, Typ);
+ 
        elsif Is_Record_Type (Typ) then
           Resolve_Record_Aggregate (N, Typ);
  
*************** package body Sem_Aggr is
*** 1180,1185 ****
--- 1227,1233 ----
                                   | N_Component_Declaration
                                   | N_Parameter_Specification
                                   | N_Qualified_Expression
+                                  | N_Unchecked_Type_Conversion
                                   | N_Reference
                                   | N_Aggregate
                                   | N_Extension_Aggregate
*************** package body Sem_Aggr is
*** 1330,1344 ****
        --  In this event we do not resolve Expr unless expansion is disabled.
        --  To know why, see the DELAYED COMPONENT RESOLUTION note above.
        --
!       --  NOTE: In the case of "... => <>", we pass the in the
!       --  N_Component_Association node as Expr, since there is no Expression in
!       --  that case, and we need a Sloc for the error message.
  
        procedure Resolve_Iterated_Component_Association
          (N         : Node_Id;
           Index_Typ : Entity_Id);
        --  For AI12-061
  
        ---------
        -- Add --
        ---------
--- 1378,1398 ----
        --  In this event we do not resolve Expr unless expansion is disabled.
        --  To know why, see the DELAYED COMPONENT RESOLUTION note above.
        --
!       --  NOTE: In the case of "... => <>", we pass the N_Component_Association
!       --  node as Expr, since there is no Expression and we need a Sloc for the
!       --  error message.
  
        procedure Resolve_Iterated_Component_Association
          (N         : Node_Id;
           Index_Typ : Entity_Id);
        --  For AI12-061
  
+       procedure Warn_On_Null_Component_Association (Expr : Node_Id);
+       --  Expr is either a conditional expression or a case expression of an
+       --  iterated component association initializing the aggregate N with
+       --  components that can never be null. Report warning on associations
+       --  that may initialize some component with a null value.
+ 
        ---------
        -- Add --
        ---------
*************** package body Sem_Aggr is
*** 1783,1789 ****
           Choice : Node_Id;
           Dummy  : Boolean;
           Scop   : Entity_Id;
!          Expr   : Node_Id;
  
        --  Start of processing for Resolve_Iterated_Component_Association
  
--- 1837,1843 ----
           Choice : Node_Id;
           Dummy  : Boolean;
           Scop   : Entity_Id;
!          Expr   : constant Node_Id := Expression (N);
  
        --  Start of processing for Resolve_Iterated_Component_Association
  
*************** package body Sem_Aggr is
*** 1843,1862 ****
  
              Set_Etype (Id, Index_Typ);
              Mutate_Ekind (Id, E_Variable);
              Set_Scope (Id, Scop);
           end if;
  
!          --  Analyze  expression without expansion, to verify legality.
           --  When generating code, we then remove references to the index
           --  variable, because the expression will be analyzed anew after
           --  rewritting as a loop with a new index variable; when not
           --  generating code we leave the analyzed expression as it is.
  
-          Expr := Expression (N);
- 
-          Expander_Mode_Save_And_Set (False);
           Dummy := Resolve_Aggr_Expr (Expr, Single_Elmt => False);
-          Expander_Mode_Restore;
  
           if Operating_Mode /= Check_Semantics then
              Remove_References (Expr);
--- 1897,1913 ----
  
              Set_Etype (Id, Index_Typ);
              Mutate_Ekind (Id, E_Variable);
+             Set_Is_Not_Self_Hidden (Id);
              Set_Scope (Id, Scop);
           end if;
  
!          --  Analyze expression without expansion, to verify legality.
           --  When generating code, we then remove references to the index
           --  variable, because the expression will be analyzed anew after
           --  rewritting as a loop with a new index variable; when not
           --  generating code we leave the analyzed expression as it is.
  
           Dummy := Resolve_Aggr_Expr (Expr, Single_Elmt => False);
  
           if Operating_Mode /= Check_Semantics then
              Remove_References (Expr);
*************** package body Sem_Aggr is
*** 1875,1880 ****
--- 1926,2057 ----
           End_Scope;
        end Resolve_Iterated_Component_Association;
  
+       ----------------------------------------
+       -- Warn_On_Null_Component_Association --
+       ----------------------------------------
+ 
+       procedure Warn_On_Null_Component_Association (Expr : Node_Id) is
+          Comp_Typ : constant Entity_Id := Component_Type (Etype (N));
+ 
+          procedure Check_Case_Expr (N : Node_Id);
+          --  Check if a case expression may initialize some component with a
+          --  null value.
+ 
+          procedure Check_Cond_Expr (N : Node_Id);
+          --  Check if a conditional expression may initialize some component
+          --  with a null value.
+ 
+          procedure Check_Expr (Expr : Node_Id);
+          --  Check if an expression may initialize some component with a
+          --  null value.
+ 
+          procedure Warn_On_Null_Expression_And_Rewrite (Null_Expr : Node_Id);
+          --  Report warning on known null expression and replace the expression
+          --  by a raise constraint error node.
+ 
+          ---------------------
+          -- Check_Case_Expr --
+          ---------------------
+ 
+          procedure Check_Case_Expr (N : Node_Id) is
+             Alt_Node : Node_Id := First (Alternatives (N));
+ 
+          begin
+             while Present (Alt_Node) loop
+                Check_Expr (Expression (Alt_Node));
+                Next (Alt_Node);
+             end loop;
+          end Check_Case_Expr;
+ 
+          ---------------------
+          -- Check_Cond_Expr --
+          ---------------------
+ 
+          procedure Check_Cond_Expr (N : Node_Id) is
+             If_Expr   : Node_Id := N;
+             Then_Expr : Node_Id;
+             Else_Expr : Node_Id;
+ 
+          begin
+             Then_Expr := Next (First (Expressions (If_Expr)));
+             Else_Expr := Next (Then_Expr);
+ 
+             Check_Expr (Then_Expr);
+ 
+             --  Process elsif parts (if any)
+ 
+             while Nkind (Else_Expr) = N_If_Expression loop
+                If_Expr   := Else_Expr;
+                Then_Expr := Next (First (Expressions (If_Expr)));
+                Else_Expr := Next (Then_Expr);
+ 
+                Check_Expr (Then_Expr);
+             end loop;
+ 
+             if Known_Null (Else_Expr) then
+                Warn_On_Null_Expression_And_Rewrite (Else_Expr);
+             end if;
+          end Check_Cond_Expr;
+ 
+          ----------------
+          -- Check_Expr --
+          ----------------
+ 
+          procedure Check_Expr (Expr : Node_Id) is
+          begin
+             if Known_Null (Expr) then
+                Warn_On_Null_Expression_And_Rewrite (Expr);
+ 
+             elsif Nkind (Expr) = N_If_Expression then
+                Check_Cond_Expr (Expr);
+ 
+             elsif Nkind (Expr) = N_Case_Expression then
+                Check_Case_Expr (Expr);
+             end if;
+          end Check_Expr;
+ 
+          -----------------------------------------
+          -- Warn_On_Null_Expression_And_Rewrite --
+          -----------------------------------------
+ 
+          procedure Warn_On_Null_Expression_And_Rewrite (Null_Expr : Node_Id) is
+          begin
+             Error_Msg_N
+               ("(Ada 2005) NULL not allowed in null-excluding component??",
+                Null_Expr);
+             Error_Msg_N
+               ("\Constraint_Error might be raised at run time??", Null_Expr);
+ 
+             --  We cannot use Apply_Compile_Time_Constraint_Error because in
+             --  some cases the components are rewritten and the runtime error
+             --  would be missed.
+ 
+             Rewrite (Null_Expr,
+               Make_Raise_Constraint_Error (Sloc (Null_Expr),
+                 Reason => CE_Access_Check_Failed));
+ 
+             Set_Etype    (Null_Expr, Comp_Typ);
+             Set_Analyzed (Null_Expr);
+          end Warn_On_Null_Expression_And_Rewrite;
+ 
+       --  Start of processing for Warn_On_Null_Component_Association
+ 
+       begin
+          pragma Assert (Can_Never_Be_Null (Comp_Typ));
+ 
+          case Nkind (Expr) is
+             when N_If_Expression =>
+                Check_Cond_Expr (Expr);
+ 
+             when N_Case_Expression =>
+                Check_Case_Expr (Expr);
+ 
+             when others =>
+                pragma Assert (False);
+                null;
+          end case;
+       end Warn_On_Null_Component_Association;
+ 
        --  Local variables
  
        Assoc   : Node_Id;
*************** package body Sem_Aggr is
*** 1938,1944 ****
  
        --  STEP 1: make sure the aggregate is correctly formatted
  
!       if Present (Component_Associations (N)) then
  
           --  Verify that all or none of the component associations
           --  include an iterator specification.
--- 2115,2124 ----
  
        --  STEP 1: make sure the aggregate is correctly formatted
  
!       if Is_Null_Aggregate (N) then
!          null;
! 
!       elsif Present (Component_Associations (N)) then
  
           --  Verify that all or none of the component associations
           --  include an iterator specification.
*************** package body Sem_Aggr is
*** 2037,2045 ****
                       if Is_Type (E) and then Has_Predicates (E) then
                          Freeze_Before (N, E);
  
!                         if Has_Dynamic_Predicate_Aspect (E) then
                             Error_Msg_NE
!                              ("subtype& has dynamic predicate, not allowed "
                                & "in aggregate choice", Choice, E);
  
                          elsif not Is_OK_Static_Subtype (E) then
--- 2217,2227 ----
                       if Is_Type (E) and then Has_Predicates (E) then
                          Freeze_Before (N, E);
  
!                         if Has_Dynamic_Predicate_Aspect (E)
!                           or else Has_Ghost_Predicate_Aspect (E)
!                         then
                             Error_Msg_NE
!                              ("subtype& has non-static predicate, not allowed "
                                & "in aggregate choice", Choice, E);
  
                          elsif not Is_OK_Static_Subtype (E) then
*************** package body Sem_Aggr is
*** 2144,2151 ****
              -----------------
  
              function Empty_Range (A : Node_Id) return Boolean is
!                R : constant Node_Id := First (Choices (A));
              begin
                 return No (Next (R))
                   and then Nkind (R) = N_Range
                   and then Compile_Time_Compare
--- 2326,2340 ----
              -----------------
  
              function Empty_Range (A : Node_Id) return Boolean is
!                R : Node_Id;
! 
              begin
+                if Nkind (A) = N_Iterated_Component_Association then
+                   R := First (Discrete_Choices (A));
+                else
+                   R := First (Choices (A));
+                end if;
+ 
                 return No (Next (R))
                   and then Nkind (R) = N_Range
                   and then Compile_Time_Compare
*************** package body Sem_Aggr is
*** 2215,2224 ****
                       Resolve_Discrete_Subtype_Indication (Choice, Index_Base);
  
                       if Has_Dynamic_Predicate_Aspect
!                        (Entity (Subtype_Mark (Choice)))
                       then
                          Error_Msg_NE
!                           ("subtype& has dynamic predicate, "
                             & "not allowed in aggregate choice",
                             Choice, Entity (Subtype_Mark (Choice)));
                       end if;
--- 2404,2415 ----
                       Resolve_Discrete_Subtype_Indication (Choice, Index_Base);
  
                       if Has_Dynamic_Predicate_Aspect
!                           (Entity (Subtype_Mark (Choice)))
!                        or else Has_Ghost_Predicate_Aspect
!                                  (Entity (Subtype_Mark (Choice)))
                       then
                          Error_Msg_NE
!                           ("subtype& has non-static predicate, "
                             & "not allowed in aggregate choice",
                             Choice, Entity (Subtype_Mark (Choice)));
                       end if;
*************** package body Sem_Aggr is
*** 2301,2308 ****
                       --  this discrete choice specifies a single value.
  
                       Single_Choice :=
!                        (Nb_Discrete_Choices = Prev_Nb_Discrete_Choices + 1)
!                          and then (Low = High);
  
                       exit;
                    end if;
--- 2492,2499 ----
                       --  this discrete choice specifies a single value.
  
                       Single_Choice :=
!                        Nb_Discrete_Choices = Prev_Nb_Discrete_Choices + 1
!                          and then Low = High;
  
                       exit;
                    end if;
*************** package body Sem_Aggr is
*** 2311,2320 ****
                 --  Ada 2005 (AI-231)
  
                 if Ada_Version >= Ada_2005
-                  and then Known_Null (Expression (Assoc))
                   and then not Empty_Range (Assoc)
                 then
!                   Check_Can_Never_Be_Null (Etype (N), Expression (Assoc));
                 end if;
  
                 --  Ada 2005 (AI-287): In case of default initialized component
--- 2502,2529 ----
                 --  Ada 2005 (AI-231)
  
                 if Ada_Version >= Ada_2005
                   and then not Empty_Range (Assoc)
                 then
!                   if Known_Null (Expression (Assoc)) then
!                      Check_Can_Never_Be_Null (Etype (N), Expression (Assoc));
! 
!                   --  Report warning on iterated component association that may
!                   --  initialize some component of an array of null-excluding
!                   --  access type components with a null value. For example:
! 
!                   --     type AList is array (...) of not null access Integer;
!                   --     L : AList :=
!                   --          [for J in A'Range =>
!                   --            (if Func (J) = 0 then A(J)'Access else Null)];
! 
!                   elsif Ada_Version >= Ada_2022
!                     and then Can_Never_Be_Null (Component_Type (Etype (N)))
!                     and then Nkind (Assoc) = N_Iterated_Component_Association
!                     and then Nkind (Expression (Assoc)) in N_If_Expression
!                                                          | N_Case_Expression
!                   then
!                      Warn_On_Null_Component_Association (Expression (Assoc));
!                   end if;
                 end if;
  
                 --  Ada 2005 (AI-287): In case of default initialized component
*************** package body Sem_Aggr is
*** 3060,3080 ****
                              (Iterator_Specification (Comp)));
              end if;
  
!             --  Key expression must have the type of the key. We analyze
              --  a copy of the original expression, because it will be
              --  reanalyzed and copied as needed during expansion of the
              --  corresponding loop.
  
              Key_Expr := Key_Expression (Comp);
!             Analyze_And_Resolve (New_Copy_Tree (Key_Expr), Key_Type);
              End_Scope;
  
           elsif Present (Iterator_Specification (Comp)) then
              Copy    := Copy_Separate_Tree (Iterator_Specification (Comp));
              Id_Name :=
                Chars (Defining_Identifier (Iterator_Specification (Comp)));
  
!             Analyze (Copy);
              Typ := Etype (Defining_Identifier (Copy));
  
           else
--- 3269,3304 ----
                              (Iterator_Specification (Comp)));
              end if;
  
!             --  Key expression must have the type of the key. We preanalyze
              --  a copy of the original expression, because it will be
              --  reanalyzed and copied as needed during expansion of the
              --  corresponding loop.
  
              Key_Expr := Key_Expression (Comp);
!             Preanalyze_And_Resolve (New_Copy_Tree (Key_Expr), Key_Type);
              End_Scope;
  
+             Typ := Key_Type;
+ 
           elsif Present (Iterator_Specification (Comp)) then
+             --  Create a temporary scope to avoid some modifications from
+             --  escaping the Analyze call below. The original Tree will be
+             --  reanalyzed later.
+ 
+             Ent := New_Internal_Entity
+                      (E_Loop, Current_Scope, Sloc (Comp), 'L');
+             Set_Etype  (Ent, Standard_Void_Type);
+             Set_Parent (Ent, Parent (Comp));
+             Push_Scope (Ent);
+ 
              Copy    := Copy_Separate_Tree (Iterator_Specification (Comp));
              Id_Name :=
                Chars (Defining_Identifier (Iterator_Specification (Comp)));
  
!             Preanalyze (Copy);
! 
!             End_Scope;
! 
              Typ := Etype (Defining_Identifier (Copy));
  
           else
*************** package body Sem_Aggr is
*** 3093,3099 ****
  
                 elsif Present (Key_Type) then
                    Analyze_And_Resolve (Choice, Key_Type);
! 
                 else
                    Typ := Etype (Choice);  --  assume unique for now
                 end if;
--- 3317,3323 ----
  
                 elsif Present (Key_Type) then
                    Analyze_And_Resolve (Choice, Key_Type);
!                   Typ := Key_Type;
                 else
                    Typ := Etype (Choice);  --  assume unique for now
                 end if;
*************** package body Sem_Aggr is
*** 3123,3136 ****
  
           Enter_Name (Id);
  
!          if No (Key_Type) then
!             pragma Assert (Present (Typ));
!             Set_Etype (Id, Typ);
!          else
!             Set_Etype (Id, Key_Type);
!          end if;
  
           Mutate_Ekind (Id, E_Variable);
           Set_Scope (Id, Ent);
           Set_Referenced (Id);
  
--- 3347,3357 ----
  
           Enter_Name (Id);
  
!          pragma Assert (Present (Typ));
!          Set_Etype (Id, Typ);
  
           Mutate_Ekind (Id, E_Variable);
+          Set_Is_Not_Self_Hidden (Id);
           Set_Scope (Id, Ent);
           Set_Referenced (Id);
  
*************** package body Sem_Aggr is
*** 3157,3162 ****
--- 3378,3385 ----
  
        if Present (Add_Unnamed_Subp)
          and then No (New_Indexed_Subp)
+         and then Present (Etype (Add_Unnamed_Subp))
+         and then Etype (Add_Unnamed_Subp) /= Any_Type
        then
           declare
              Elmt_Type : constant Entity_Id :=
*************** package body Sem_Aggr is
*** 3200,3206 ****
              end if;
           end;
  
!       elsif Present (Add_Named_Subp) then
           declare
              --  Retrieves types of container, key, and element from the
              --  specified insertion procedure.
--- 3423,3431 ----
              end if;
           end;
  
!       elsif Present (Add_Named_Subp)
!         and then Etype (Add_Named_Subp) /= Any_Type
!       then
           declare
              --  Retrieves types of container, key, and element from the
              --  specified insertion procedure.
*************** package body Sem_Aggr is
*** 3210,3220 ****
              Key_Type  : constant Entity_Id := Etype (Next_Formal (Container));
              Elmt_Type : constant Entity_Id :=
                                   Etype (Next_Formal (Next_Formal (Container)));
!             Comp   : Node_Id;
!             Choice : Node_Id;
  
           begin
!             Comp := First (Component_Associations (N));
              while Present (Comp) loop
                 if Nkind (Comp) = N_Component_Association then
                    Choice := First (Choices (Comp));
--- 3435,3459 ----
              Key_Type  : constant Entity_Id := Etype (Next_Formal (Container));
              Elmt_Type : constant Entity_Id :=
                                   Etype (Next_Formal (Next_Formal (Container)));
! 
!             Comp_Assocs : constant List_Id := Component_Associations (N);
!             Comp        : Node_Id;
!             Choice      : Node_Id;
  
           begin
!             --  In the Add_Named case, the aggregate must consist of named
!             --  associations (Add_Unnnamed is not allowed), so we issue an
!             --  error if there are positional associations.
! 
!             if No (Comp_Assocs)
!               and then Present (Expressions (N))
!             then
!                Error_Msg_N ("container aggregate must be "
!                  & "named, not positional", N);
!                return;
!             end if;
! 
!             Comp := First (Comp_Assocs);
              while Present (Comp) loop
                 if Nkind (Comp) = N_Component_Association then
                    Choice := First (Choices (Comp));
*************** package body Sem_Aggr is
*** 3242,3248 ****
              end loop;
           end;
  
!       elsif Present (Assign_Indexed_Subp) then
           --  Indexed Aggregate. Positional or indexed component
           --  can be present, but not both. Choices must be static
           --  values or ranges with static bounds.
--- 3481,3489 ----
              end loop;
           end;
  
!       elsif Present (Assign_Indexed_Subp)
!         and then Etype (Assign_Indexed_Subp) /= Any_Type
!       then
           --  Indexed Aggregate. Positional or indexed component
           --  can be present, but not both. Choices must be static
           --  values or ranges with static bounds.
*************** package body Sem_Aggr is
*** 3347,3353 ****
                                end if;
                             end if;
                          else
!                            Choice := First (Choices (Comp));
  
                             while Present (Choice) loop
                                Get_Index_Bounds (Choice, Lo, Hi);
--- 3588,3610 ----
                                end if;
                             end if;
                          else
! 
!                            --  If Nkind is N_Iterated_Component_Association,
!                            --  this corresponds to an iterator_specification
!                            --  with a loop_parameter_specification, and we
!                            --  have to pick up Discrete_Choices. In this case
!                            --  there will be just one "choice", which will
!                            --  typically be a range.
! 
!                            if Nkind (Comp) = N_Iterated_Component_Association
!                            then
!                               Choice := First (Discrete_Choices (Comp));
! 
!                            --  Case where there's a list of choices
! 
!                            else
!                               Choice := First (Choices (Comp));
!                            end if;
  
                             while Present (Choice) loop
                                Get_Index_Bounds (Choice, Lo, Hi);
*************** package body Sem_Aggr is
*** 3468,3473 ****
--- 3725,3732 ----
        Choice : Node_Id;
        Expr   : Node_Id;
  
+       Deep_Choice_Seen : Boolean := False;
+ 
     begin
        Assoc := First (Deltas);
        while Present (Assoc) loop
*************** package body Sem_Aggr is
*** 3503,3508 ****
--- 3762,3768 ----
                 if No (Scope (Id)) then
                    Set_Etype (Id, Index_Type);
                    Mutate_Ekind (Id, E_Variable);
+                   Set_Is_Not_Self_Hidden (Id);
                    Set_Scope (Id, Ent);
                 end if;
                 Enter_Name (Id);
*************** package body Sem_Aggr is
*** 3519,3549 ****
           else
              Choice := First (Choice_List (Assoc));
              while Present (Choice) loop
!                Analyze (Choice);
  
!                if Nkind (Choice) = N_Others_Choice then
!                   Error_Msg_N
!                     ("OTHERS not allowed in delta aggregate", Choice);
  
!                elsif Is_Entity_Name (Choice)
!                  and then Is_Type (Entity (Choice))
!                then
!                   --  Choice covers a range of values
  
!                   if Base_Type (Entity (Choice)) /=
!                      Base_Type (Index_Type)
                    then
!                      Error_Msg_NE
!                        ("choice does not match index type of &",
!                         Choice, Typ);
!                   end if;
  
!                elsif Nkind (Choice) = N_Subtype_Indication then
!                   Resolve_Discrete_Subtype_Indication
!                     (Choice, Base_Type (Index_Type));
  
!                else
!                   Resolve (Choice, Index_Type);
                 end if;
  
                 Next (Choice);
--- 3779,3817 ----
           else
              Choice := First (Choice_List (Assoc));
              while Present (Choice) loop
!                if Is_Deep_Choice (Choice, Typ) then
!                   pragma Assert (All_Extensions_Allowed);
!                   Deep_Choice_Seen := True;
  
!                   --  a deep delta aggregate
!                   Resolve_Deep_Delta_Assoc (Assoc, Typ);
!                else
!                   Analyze (Choice);
  
!                   if Nkind (Choice) = N_Others_Choice then
!                      Error_Msg_N
!                        ("OTHERS not allowed in delta aggregate", Choice);
  
!                   elsif Is_Entity_Name (Choice)
!                     and then Is_Type (Entity (Choice))
                    then
!                      --  Choice covers a range of values
  
!                      if Base_Type (Entity (Choice)) /=
!                         Base_Type (Index_Type)
!                      then
!                         Error_Msg_NE
!                           ("choice does not match index type of &",
!                            Choice, Typ);
!                      end if;
  
!                   elsif Nkind (Choice) = N_Subtype_Indication then
!                      Resolve_Discrete_Subtype_Indication
!                        (Choice, Base_Type (Index_Type));
! 
!                   else
!                      Resolve (Choice, Index_Type);
!                   end if;
                 end if;
  
                 Next (Choice);
*************** package body Sem_Aggr is
*** 3558,3564 ****
              if Box_Present (Assoc) then
                 Error_Msg_N
                   ("'<'> in array delta aggregate is not allowed", Assoc);
!             else
                 Analyze_And_Resolve (Expression (Assoc), Component_Type (Typ));
              end if;
           end if;
--- 3826,3832 ----
              if Box_Present (Assoc) then
                 Error_Msg_N
                   ("'<'> in array delta aggregate is not allowed", Assoc);
!             elsif not Deep_Choice_Seen then
                 Analyze_And_Resolve (Expression (Assoc), Component_Type (Typ));
              end if;
           end if;
*************** package body Sem_Aggr is
*** 3579,3592 ****
        Comp_Ref : Entity_Id := Empty; -- init to avoid warning
        Variant  : Node_Id;
  
!       procedure Check_Variant (Id : Entity_Id);
        --  If a given component of the delta aggregate appears in a variant
        --  part, verify that it is within the same variant as that of previous
        --  specified variant components of the delta.
  
!       function Get_Component (Nam : Node_Id) return Entity_Id;
!       --  Locate component with a given name and return it. If none found then
!       --  report error and return Empty.
  
        function Nested_In (V1 : Node_Id; V2 : Node_Id) return Boolean;
        --  Determine whether variant V1 is within variant V2
--- 3847,3861 ----
        Comp_Ref : Entity_Id := Empty; -- init to avoid warning
        Variant  : Node_Id;
  
!       procedure Check_Variant (Id : Node_Id);
        --  If a given component of the delta aggregate appears in a variant
        --  part, verify that it is within the same variant as that of previous
        --  specified variant components of the delta.
  
!       function Get_Component_Type
!         (Selector : Node_Id; Enclosing_Type : Entity_Id) return Entity_Id;
!       --  Locate component with a given name and return its type.
!       --  If none found then report error and return Empty.
  
        function Nested_In (V1 : Node_Id; V2 : Node_Id) return Boolean;
        --  Determine whether variant V1 is within variant V2
*************** package body Sem_Aggr is
*** 3598,3604 ****
        --  Check_Variant --
        --------------------
  
!       procedure Check_Variant (Id : Entity_Id) is
           Comp         : Entity_Id;
           Comp_Variant : Node_Id;
  
--- 3867,3873 ----
        --  Check_Variant --
        --------------------
  
!       procedure Check_Variant (Id : Node_Id) is
           Comp         : Entity_Id;
           Comp_Variant : Node_Id;
  
*************** package body Sem_Aggr is
*** 3649,3678 ****
           end if;
        end Check_Variant;
  
!       -------------------
!       -- Get_Component --
!       -------------------
  
!       function Get_Component (Nam : Node_Id) return Entity_Id is
           Comp : Entity_Id;
- 
        begin
!          Comp := First_Entity (Typ);
           while Present (Comp) loop
!             if Chars (Comp) = Chars (Nam) then
                 if Ekind (Comp) = E_Discriminant then
!                   Error_Msg_N ("delta cannot apply to discriminant", Nam);
                 end if;
  
!                return Comp;
              end if;
  
              Next_Entity (Comp);
           end loop;
  
!          Error_Msg_NE ("type& has no component with this name", Nam, Typ);
           return Empty;
!       end Get_Component;
  
        ---------------
        -- Nested_In --
--- 3918,3997 ----
           end if;
        end Check_Variant;
  
!       ------------------------
!       -- Get_Component_Type --
!       ------------------------
  
!       function Get_Component_Type
!         (Selector : Node_Id; Enclosing_Type : Entity_Id) return Entity_Id
!       is
           Comp : Entity_Id;
        begin
!          case Nkind (Selector) is
!             when N_Selected_Component | N_Indexed_Component =>
!                --  a deep delta aggregate choice
! 
!                declare
!                   Prefix_Type : constant Entity_Id :=
!                     Get_Component_Type (Prefix (Selector), Enclosing_Type);
!                begin
!                   if No (Prefix_Type) then
!                      pragma Assert (Serious_Errors_Detected > 0);
!                      return Empty;
!                   end if;
! 
!                   --  Set the type of the prefix for GNATprove
! 
!                   Set_Etype (Prefix (Selector), Prefix_Type);
! 
!                   if Nkind (Selector) = N_Selected_Component then
!                      return Get_Component_Type
!                               (Selector_Name (Selector),
!                                Enclosing_Type => Prefix_Type);
!                   elsif not Is_Array_Type (Prefix_Type) then
!                      Error_Msg_NE
!                        ("type& is not an array type",
!                         Selector, Prefix_Type);
!                   elsif Number_Dimensions (Prefix_Type) /= 1 then
!                      Error_Msg_NE
!                        ("array type& not one-dimensional",
!                         Selector, Prefix_Type);
!                   elsif List_Length (Expressions (Selector)) /= 1 then
!                      Error_Msg_NE
!                        ("wrong number of indices for array type&",
!                         Selector, Prefix_Type);
!                   else
!                      Analyze_And_Resolve
!                        (First (Expressions (Selector)),
!                         Etype (First_Index (Prefix_Type)));
!                      return Component_Type (Prefix_Type);
!                   end if;
!                end;
! 
!             when others =>
!                null;
!          end case;
! 
!          Comp := First_Entity (Enclosing_Type);
           while Present (Comp) loop
!             if Chars (Comp) = Chars (Selector) then
                 if Ekind (Comp) = E_Discriminant then
!                   Error_Msg_N ("delta cannot apply to discriminant", Selector);
                 end if;
  
!                Set_Entity (Selector, Comp);
!                Set_Etype  (Selector, Etype (Comp));
! 
!                return Etype (Comp);
              end if;
  
              Next_Entity (Comp);
           end loop;
  
!          Error_Msg_NE
!            ("type& has no component with this name", Selector, Enclosing_Type);
           return Empty;
!       end Get_Component_Type;
  
        ---------------
        -- Nested_In --
*************** package body Sem_Aggr is
*** 3717,3726 ****
  
        Deltas : constant List_Id := Component_Associations (N);
  
!       Assoc     : Node_Id;
!       Choice    : Node_Id;
!       Comp      : Entity_Id;
!       Comp_Type : Entity_Id := Empty; -- init to avoid warning
  
     --  Start of processing for Resolve_Delta_Record_Aggregate
  
--- 4036,4045 ----
  
        Deltas : constant List_Id := Component_Associations (N);
  
!       Assoc       : Node_Id;
!       Choice      : Node_Id;
!       Comp_Type   : Entity_Id := Empty; -- init to avoid warning
!       Deep_Choice : Boolean;
  
     --  Start of processing for Resolve_Delta_Record_Aggregate
  
*************** package body Sem_Aggr is
*** 3731,3749 ****
        while Present (Assoc) loop
           Choice := First (Choice_List (Assoc));
           while Present (Choice) loop
!             Comp := Get_Component (Choice);
  
!             if Present (Comp) then
!                Check_Variant (Choice);
  
!                Comp_Type := Etype (Comp);
  
!                --  Decorate the component reference by setting its entity and
!                --  type, as otherwise backends like GNATprove would have to
!                --  rediscover this information by themselves.
  
!                Set_Entity (Choice, Comp);
!                Set_Etype  (Choice, Comp_Type);
              else
                 Comp_Type := Any_Type;
              end if;
--- 4050,4076 ----
        while Present (Assoc) loop
           Choice := First (Choice_List (Assoc));
           while Present (Choice) loop
!             Deep_Choice := Nkind (Choice) /= N_Identifier;
!             if Deep_Choice then
!                Error_Msg_GNAT_Extension
!                  ("deep delta aggregate", Sloc (Choice));
!             end if;
  
!             Comp_Type := Get_Component_Type
!                           (Selector => Choice, Enclosing_Type => Typ);
  
!             --  Set the type of the choice for GNATprove
  
!             if Deep_Choice then
!                Set_Etype (Choice, Comp_Type);
!             end if;
  
!             if Present (Comp_Type) then
!                if not Deep_Choice then
!                   --  ??? Not clear yet how RM 4.3.1(17.7) applies to a
!                   --  deep delta aggregate.
!                   Check_Variant (Choice);
!                end if;
              else
                 Comp_Type := Any_Type;
              end if;
*************** package body Sem_Aggr is
*** 3779,3784 ****
--- 4106,4200 ----
        end loop;
     end Resolve_Delta_Record_Aggregate;
  
+    ------------------------------
+    -- Resolve_Deep_Delta_Assoc --
+    ------------------------------
+ 
+    procedure Resolve_Deep_Delta_Assoc (N : Node_Id; Typ : Entity_Id) is
+       Choice         : constant Node_Id := First (Choice_List (N));
+       Enclosing_Type : Entity_Id := Typ;
+ 
+       procedure Resolve_Choice_Prefix
+         (Choice_Prefix : Node_Id; Enclosing_Type : in out Entity_Id);
+       --  Recursively analyze selectors. Enclosing_Type is set to
+       --  type of the last component.
+ 
+       ---------------------------
+       -- Resolve_Choice_Prefix --
+       ---------------------------
+ 
+       procedure Resolve_Choice_Prefix
+         (Choice_Prefix : Node_Id; Enclosing_Type : in out Entity_Id)
+       is
+          Selector : Node_Id := Choice_Prefix;
+       begin
+          if not Is_Root_Prefix_Of_Deep_Choice (Choice_Prefix) then
+             Resolve_Choice_Prefix (Prefix (Choice_Prefix), Enclosing_Type);
+ 
+             if Nkind (Choice_Prefix) = N_Selected_Component then
+                Selector := Selector_Name (Choice_Prefix);
+             else
+                pragma Assert (Nkind (Choice_Prefix) = N_Indexed_Component);
+                Selector := First (Expressions (Choice_Prefix));
+             end if;
+          end if;
+ 
+          if Is_Array_Type (Enclosing_Type) then
+             Analyze_And_Resolve (Selector,
+                                  Etype (First_Index (Enclosing_Type)));
+             Enclosing_Type := Component_Type (Enclosing_Type);
+          else
+             declare
+                Comp : Entity_Id := First_Entity (Enclosing_Type);
+                Found : Boolean := False;
+             begin
+                while Present (Comp) and not Found loop
+                   if Chars (Comp) = Chars (Selector) then
+                      if Ekind (Comp) = E_Discriminant then
+                         Error_Msg_N ("delta cannot apply to discriminant",
+                                      Selector);
+                      end if;
+                      Found := True;
+                      Set_Entity (Selector, Comp);
+                      Set_Etype (Selector, Etype (Comp));
+                      Set_Analyzed (Selector);
+                      Enclosing_Type := Etype (Comp);
+                   else
+                      Next_Entity (Comp);
+                   end if;
+                end loop;
+                if not Found then
+                   Error_Msg_NE
+                     ("type& has no component with this name",
+                      Selector, Enclosing_Type);
+                end if;
+             end;
+          end if;
+ 
+          --  Set the type of the prefix for GNATprove, except for the root
+          --  prefix, whose type is already the expected one for a record
+          --  delta aggregate, or the type of the array index for an
+          --  array delta aggregate (the only case here really since
+          --  Resolve_Deep_Delta_Assoc is only called for array delta
+          --  aggregates).
+ 
+          if Selector /= Choice_Prefix then
+             Set_Etype (Choice_Prefix, Enclosing_Type);
+          end if;
+       end Resolve_Choice_Prefix;
+    begin
+       declare
+          Unimplemented : exception; -- TEMPORARY
+       begin
+          if Present (Next (Choice)) then
+             raise Unimplemented;
+          end if;
+       end;
+ 
+       Resolve_Choice_Prefix (Choice, Enclosing_Type);
+       Analyze_And_Resolve (Expression (N), Enclosing_Type);
+    end Resolve_Deep_Delta_Assoc;
+ 
     ---------------------------------
     -- Resolve_Extension_Aggregate --
     ---------------------------------
*************** package body Sem_Aggr is
*** 3815,3825 ****
        --  Verify that the type of the ancestor part is a non-private ancestor
        --  of the expected type, which must be a type extension.
  
-       procedure Transform_BIP_Assignment (Typ : Entity_Id);
-       --  For an extension aggregate whose ancestor part is a build-in-place
-       --  call returning a nonlimited type, this is used to transform the
-       --  assignment to the ancestor part to use a temp.
- 
        ----------------------------
        -- Valid_Limited_Ancestor --
        ----------------------------
--- 4231,4236 ----
*************** package body Sem_Aggr is
*** 3911,3936 ****
           return False;
        end Valid_Ancestor_Type;
  
-       ------------------------------
-       -- Transform_BIP_Assignment --
-       ------------------------------
- 
-       procedure Transform_BIP_Assignment (Typ : Entity_Id) is
-          Loc      : constant Source_Ptr := Sloc (N);
-          Def_Id   : constant Entity_Id  := Make_Temporary (Loc, 'Y', A);
-          Obj_Decl : constant Node_Id    :=
-                       Make_Object_Declaration (Loc,
-                         Defining_Identifier => Def_Id,
-                         Constant_Present    => True,
-                         Object_Definition   => New_Occurrence_Of (Typ, Loc),
-                         Expression          => A,
-                         Has_Init_Expression => True);
-       begin
-          Set_Etype (Def_Id, Typ);
-          Set_Ancestor_Part (N, New_Occurrence_Of (Def_Id, Loc));
-          Insert_Action (N, Obj_Decl);
-       end Transform_BIP_Assignment;
- 
     --  Start of processing for Resolve_Extension_Aggregate
  
     begin
--- 4322,4327 ----
*************** package body Sem_Aggr is
*** 4104,4122 ****
                 --  an AdaCore query to the ARG after this test was added.
  
                 Error_Msg_N ("ancestor part must be statically tagged", A);
-             else
-                --  We are using the build-in-place protocol, but we can't build
-                --  in place, because we need to call the function before
-                --  allocating the aggregate. Could do better for null
-                --  extensions, and maybe for nondiscriminated types.
-                --  This is wrong for limited, but those were wrong already.
- 
-                if not Is_Limited_View (A_Type)
-                  and then Is_Build_In_Place_Function_Call (A)
-                then
-                   Transform_BIP_Assignment (A_Type);
-                end if;
  
                 Resolve_Record_Aggregate (N, Typ);
              end if;
           end if;
--- 4495,4502 ----
                 --  an AdaCore query to the ARG after this test was added.
  
                 Error_Msg_N ("ancestor part must be statically tagged", A);
  
+             else
                 Resolve_Record_Aggregate (N, Typ);
              end if;
           end if;
*************** package body Sem_Aggr is
*** 4166,4172 ****
           Append (Make_Range (Loc, New_Copy_Tree (Lo), Hi), Constr);
           Analyze_And_Resolve (Last (Constr), Etype (Index));
  
!          Index := Next_Index (Index);
        end loop;
  
        Set_Compile_Time_Known_Aggregate (N);
--- 4546,4552 ----
           Append (Make_Range (Loc, New_Copy_Tree (Lo), Hi), Constr);
           Analyze_And_Resolve (Last (Constr), Etype (Index));
  
!          Next_Index (Index);
        end loop;
  
        Set_Compile_Time_Known_Aggregate (N);
*************** package body Sem_Aggr is
*** 4220,4233 ****
        --  either New_Assoc_List, or the association being built for an inner
        --  aggregate.
  
-       procedure Add_Discriminant_Values
-         (New_Aggr   : Node_Id;
-          Assoc_List : List_Id);
-       --  The constraint to a component may be given by a discriminant of the
-       --  enclosing type, in which case we have to retrieve its value, which is
-       --  part of the enclosing aggregate. Assoc_List provides the discriminant
-       --  associations of the current type or of some enclosing record.
- 
        function Discriminant_Present (Input_Discr : Entity_Id) return Boolean;
        --  If aggregate N is a regular aggregate this routine will return True.
        --  Otherwise, if N is an extension aggregate, then Input_Discr denotes
--- 4600,4605 ----
*************** package body Sem_Aggr is
*** 4270,4282 ****
        --  An error message is emitted if the components taking their value from
        --  the others choice do not have same type.
  
-       procedure Propagate_Discriminants
-         (Aggr       : Node_Id;
-          Assoc_List : List_Id);
-       --  Nested components may themselves be discriminated types constrained
-       --  by outer discriminants, whose values must be captured before the
-       --  aggregate is expanded into assignments.
- 
        procedure Resolve_Aggr_Expr (Expr : Node_Id; Component : Entity_Id);
        --  Analyzes and resolves expression Expr against the Etype of the
        --  Component. This routine also applies all appropriate checks to Expr.
--- 4642,4647 ----
*************** package body Sem_Aggr is
*** 4333,4402 ****
           end if;
        end Add_Association;
  
-       -----------------------------
-       -- Add_Discriminant_Values --
-       -----------------------------
- 
-       procedure Add_Discriminant_Values
-         (New_Aggr   : Node_Id;
-          Assoc_List : List_Id)
-       is
-          Assoc      : Node_Id;
-          Discr      : Entity_Id;
-          Discr_Elmt : Elmt_Id;
-          Discr_Val  : Node_Id;
-          Val        : Entity_Id;
- 
-       begin
-          Discr      := First_Discriminant (Etype (New_Aggr));
-          Discr_Elmt := First_Elmt (Discriminant_Constraint (Etype (New_Aggr)));
-          while Present (Discr_Elmt) loop
-             Discr_Val := Node (Discr_Elmt);
- 
-             --  If the constraint is given by a discriminant then it is a
-             --  discriminant of an enclosing record, and its value has already
-             --  been placed in the association list.
- 
-             if Is_Entity_Name (Discr_Val)
-               and then Ekind (Entity (Discr_Val)) = E_Discriminant
-             then
-                Val := Entity (Discr_Val);
- 
-                Assoc := First (Assoc_List);
-                while Present (Assoc) loop
-                   if Present (Entity (First (Choices (Assoc))))
-                     and then Entity (First (Choices (Assoc))) = Val
-                   then
-                      Discr_Val := Expression (Assoc);
-                      exit;
-                   end if;
- 
-                   Next (Assoc);
-                end loop;
-             end if;
- 
-             Add_Association
-               (Discr, New_Copy_Tree (Discr_Val),
-                Component_Associations (New_Aggr));
- 
-             --  If the discriminant constraint is a current instance, mark the
-             --  current aggregate so that the self-reference can be expanded
-             --  later. The constraint may refer to the subtype of aggregate, so
-             --  use base type for comparison.
- 
-             if Nkind (Discr_Val) = N_Attribute_Reference
-               and then Is_Entity_Name (Prefix (Discr_Val))
-               and then Is_Type (Entity (Prefix (Discr_Val)))
-               and then Base_Type (Etype (N)) = Entity (Prefix (Discr_Val))
-             then
-                Set_Has_Self_Reference (N);
-             end if;
- 
-             Next_Elmt (Discr_Elmt);
-             Next_Discriminant (Discr);
-          end loop;
-       end Add_Discriminant_Values;
- 
        --------------------------
        -- Discriminant_Present --
        --------------------------
--- 4698,4703 ----
*************** package body Sem_Aggr is
*** 4675,4681 ****
                          then
                             Error_Msg_Node_2 := Typ;
                             Error_Msg_NE
!                              ("component&? of type& is uninitialized",
                                Assoc, Selector_Name);
  
                             --  An additional reminder if the component type
--- 4976,4982 ----
                          then
                             Error_Msg_Node_2 := Typ;
                             Error_Msg_NE
!                              ("??component& of type& is uninitialized",
                                Assoc, Selector_Name);
  
                             --  An additional reminder if the component type
*************** package body Sem_Aggr is
*** 4720,4818 ****
           return Expr;
        end Get_Value;
  
-       -----------------------------
-       -- Propagate_Discriminants --
-       -----------------------------
- 
-       procedure Propagate_Discriminants
-         (Aggr       : Node_Id;
-          Assoc_List : List_Id)
-       is
-          Loc : constant Source_Ptr := Sloc (N);
- 
-          procedure Process_Component (Comp : Entity_Id);
-          --  Add one component with a box association to the inner aggregate,
-          --  and recurse if component is itself composite.
- 
-          -----------------------
-          -- Process_Component --
-          -----------------------
- 
-          procedure Process_Component (Comp : Entity_Id) is
-             T        : constant Entity_Id := Etype (Comp);
-             New_Aggr : Node_Id;
- 
-          begin
-             if Is_Record_Type (T) and then Has_Discriminants (T) then
-                New_Aggr := Make_Aggregate (Loc, No_List, New_List);
-                Set_Etype (New_Aggr, T);
- 
-                Add_Association
-                  (Comp, New_Aggr, Component_Associations (Aggr));
- 
-                --  Collect discriminant values and recurse
- 
-                Add_Discriminant_Values (New_Aggr, Assoc_List);
-                Propagate_Discriminants (New_Aggr, Assoc_List);
- 
-                Build_Constrained_Itype
-                  (New_Aggr, T, Component_Associations (New_Aggr));
-             else
-                Add_Association
-                  (Comp, Empty, Component_Associations (Aggr),
-                   Is_Box_Present => True);
-             end if;
-          end Process_Component;
- 
-          --  Local variables
- 
-          Aggr_Type  : constant Entity_Id := Base_Type (Etype (Aggr));
-          Components : constant Elist_Id  := New_Elmt_List;
-          Def_Node   : constant Node_Id   :=
-                        Type_Definition (Declaration_Node (Aggr_Type));
- 
-          Comp      : Node_Id;
-          Comp_Elmt : Elmt_Id;
-          Errors    : Boolean;
- 
-       --  Start of processing for Propagate_Discriminants
- 
-       begin
-          --  The component type may be a variant type. Collect the components
-          --  that are ruled by the known values of the discriminants. Their
-          --  values have already been inserted into the component list of the
-          --  current aggregate.
- 
-          if Nkind (Def_Node) = N_Record_Definition
-            and then Present (Component_List (Def_Node))
-            and then Present (Variant_Part (Component_List (Def_Node)))
-          then
-             Gather_Components (Aggr_Type,
-               Component_List (Def_Node),
-               Governed_By   => Component_Associations (Aggr),
-               Into          => Components,
-               Report_Errors => Errors);
- 
-             Comp_Elmt := First_Elmt (Components);
-             while Present (Comp_Elmt) loop
-                if Ekind (Node (Comp_Elmt)) /= E_Discriminant then
-                   Process_Component (Node (Comp_Elmt));
-                end if;
- 
-                Next_Elmt (Comp_Elmt);
-             end loop;
- 
-             --  No variant part, iterate over all components
- 
-          else
-             Comp := First_Component (Etype (Aggr));
-             while Present (Comp) loop
-                Process_Component (Comp);
-                Next_Component (Comp);
-             end loop;
-          end if;
-       end Propagate_Discriminants;
- 
        -----------------------
        -- Resolve_Aggr_Expr --
        -----------------------
--- 5021,5026 ----
*************** package body Sem_Aggr is
*** 5413,5430 ****
                 Parent_Typ := Etype (Parent_Typ);
  
                 --  Check whether a private parent requires the use of
!                --  an extension aggregate. This test does not apply in
!                --  an instantiation: if the generic unit is legal so is
!                --  the instance.
  
                 if Nkind (Parent (Base_Type (Parent_Typ))) =
                                          N_Private_Type_Declaration
                   or else Nkind (Parent (Base_Type (Parent_Typ))) =
                                          N_Private_Extension_Declaration
                 then
!                   if Nkind (N) /= N_Extension_Aggregate
!                     and then not In_Instance
!                   then
                       Error_Msg_NE
                         ("type of aggregate has private ancestor&!",
                          N, Parent_Typ);
--- 5621,5634 ----
                 Parent_Typ := Etype (Parent_Typ);
  
                 --  Check whether a private parent requires the use of
!                --  an extension aggregate.
  
                 if Nkind (Parent (Base_Type (Parent_Typ))) =
                                          N_Private_Type_Declaration
                   or else Nkind (Parent (Base_Type (Parent_Typ))) =
                                          N_Private_Extension_Declaration
                 then
!                   if Nkind (N) /= N_Extension_Aggregate then
                       Error_Msg_NE
                         ("type of aggregate has private ancestor&!",
                          N, Parent_Typ);
*************** package body Sem_Aggr is
*** 5466,5472 ****
                 end if;
  
                 Record_Def := Type_Definition (Parent (Base_Type (Parent_Typ)));
!                Gather_Components (Empty,
                   Component_List (Record_Extension_Part (Record_Def)),
                   Governed_By   => New_Assoc_List,
                   Into          => Components,
--- 5670,5676 ----
                 end if;
  
                 Record_Def := Type_Definition (Parent (Base_Type (Parent_Typ)));
!                Gather_Components (Parent_Typ,
                   Component_List (Record_Extension_Part (Record_Def)),
                   Governed_By   => New_Assoc_List,
                   Into          => Components,
*************** package body Sem_Aggr is
*** 5508,5514 ****
  
        --  STEP 6: Find component Values
  
-       Component := Empty;
        Component_Elmt := First_Elmt (Components);
  
        --  First scan the remaining positional associations in the aggregate.
--- 5712,5717 ----
*************** package body Sem_Aggr is
*** 5669,5775 ****
                       Assoc_List => New_Assoc_List);
                    Set_Has_Self_Reference (N);
  
!                elsif Needs_Simple_Initialization (Ctyp) then
                    Add_Association
                      (Component      => Component,
                       Expr           => Empty,
                       Assoc_List     => New_Assoc_List,
                       Is_Box_Present => True);
  
-                elsif Has_Non_Null_Base_Init_Proc (Ctyp)
-                  or else not Expander_Active
-                then
-                   if Is_Record_Type (Ctyp)
-                     and then Has_Discriminants (Ctyp)
-                     and then not Is_Private_Type (Ctyp)
-                   then
-                      --  We build a partially initialized aggregate with the
-                      --  values of the discriminants and box initialization
-                      --  for the rest, if other components are present.
- 
-                      --  The type of the aggregate is the known subtype of
-                      --  the component. The capture of discriminants must be
-                      --  recursive because subcomponents may be constrained
-                      --  (transitively) by discriminants of enclosing types.
-                      --  For a private type with discriminants, a call to the
-                      --  initialization procedure will be generated, and no
-                      --  subaggregate is needed.
- 
-                      Capture_Discriminants : declare
-                         Loc  : constant Source_Ptr := Sloc (N);
-                         Expr : Node_Id;
- 
-                      begin
-                         Expr := Make_Aggregate (Loc, No_List, New_List);
-                         Set_Etype (Expr, Ctyp);
- 
-                         --  If the enclosing type has discriminants, they have
-                         --  been collected in the aggregate earlier, and they
-                         --  may appear as constraints of subcomponents.
- 
-                         --  Similarly if this component has discriminants, they
-                         --  might in turn be propagated to their components.
- 
-                         if Has_Discriminants (Typ) then
-                            Add_Discriminant_Values (Expr, New_Assoc_List);
-                            Propagate_Discriminants (Expr, New_Assoc_List);
- 
-                         elsif Has_Discriminants (Ctyp) then
-                            Add_Discriminant_Values
-                              (Expr, Component_Associations (Expr));
-                            Propagate_Discriminants
-                              (Expr, Component_Associations (Expr));
- 
-                            Build_Constrained_Itype
-                              (Expr, Ctyp, Component_Associations (Expr));
- 
-                         else
-                            declare
-                               Comp : Entity_Id;
- 
-                            begin
-                               --  If the type has additional components, create
-                               --  an OTHERS box association for them.
- 
-                               Comp := First_Component (Ctyp);
-                               while Present (Comp) loop
-                                  if Ekind (Comp) = E_Component then
-                                     if not Is_Record_Type (Etype (Comp)) then
-                                        Append_To
-                                          (Component_Associations (Expr),
-                                           Make_Component_Association (Loc,
-                                             Choices     =>
-                                               New_List (
-                                                 Make_Others_Choice (Loc)),
-                                             Expression  => Empty,
-                                             Box_Present => True));
-                                     end if;
- 
-                                     exit;
-                                  end if;
- 
-                                  Next_Component (Comp);
-                               end loop;
-                            end;
-                         end if;
- 
-                         Add_Association
-                           (Component  => Component,
-                            Expr       => Expr,
-                            Assoc_List => New_Assoc_List);
-                      end Capture_Discriminants;
- 
-                   --  Otherwise the component type is not a record, or it has
-                   --  not discriminants, or it is private.
- 
-                   else
-                      Add_Association
-                        (Component      => Component,
-                         Expr           => Empty,
-                         Assoc_List     => New_Assoc_List,
-                         Is_Box_Present => True);
-                   end if;
- 
                 --  Otherwise we only need to resolve the expression if the
                 --  component has partially initialized values (required to
                 --  expand the corresponding assignments and run-time checks).
--- 5872,5887 ----
                       Assoc_List => New_Assoc_List);
                    Set_Has_Self_Reference (N);
  
!                elsif Needs_Simple_Initialization (Ctyp)
!                  or else Has_Non_Null_Base_Init_Proc (Ctyp)
!                  or else not Expander_Active
!                then
                    Add_Association
                      (Component      => Component,
                       Expr           => Empty,
                       Assoc_List     => New_Assoc_List,
                       Is_Box_Present => True);
  
                 --  Otherwise we only need to resolve the expression if the
                 --  component has partially initialized values (required to
                 --  expand the corresponding assignments and run-time checks).
*************** package body Sem_Aggr is
*** 5830,5844 ****
                      ("OTHERS must represent at least one component", Selectr);
  
                 elsif Others_Box = 1 and then Warn_On_Redundant_Constructs then
!                   Error_Msg_N ("OTHERS choice is redundant?", Box_Node);
                    Error_Msg_N
!                     ("\previous choices cover all components?", Box_Node);
                 end if;
  
                 exit Verification;
              end if;
  
              while Present (Selectr) loop
                 New_Assoc := First (New_Assoc_List);
                 while Present (New_Assoc) loop
                    Component := First (Choices (New_Assoc));
--- 5942,5957 ----
                      ("OTHERS must represent at least one component", Selectr);
  
                 elsif Others_Box = 1 and then Warn_On_Redundant_Constructs then
!                   Error_Msg_N ("OTHERS choice is redundant?r?", Box_Node);
                    Error_Msg_N
!                     ("\previous choices cover all components?r?", Box_Node);
                 end if;
  
                 exit Verification;
              end if;
  
              while Present (Selectr) loop
+                Component := Empty;
                 New_Assoc := First (New_Assoc_List);
                 while Present (New_Assoc) loop
                    Component := First (Choices (New_Assoc));
*************** package body Sem_Aggr is
*** 5854,5859 ****
--- 5967,5977 ----
                    Next (New_Assoc);
                 end loop;
  
+                --  If we found an association, then this is a legal component
+                --  of the type in question.
+ 
+                pragma Assert (if Present (New_Assoc) then Present (Component));
+ 
                 --  If no association, this is not a legal component of the type
                 --  in question, unless its association is provided with a box.
  
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_aggr.ads gcc-14.1.0/gcc/ada/sem_aggr.ads
*** gcc-13.2.0/gcc/ada/sem_aggr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_aggr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 26,32 ****
  --  This package contains the resolution code for aggregates. It is logically
  --  part of Sem_Res, but is split off since the aggregate code is so complex.
  
! with Types; use Types;
  
  package Sem_Aggr is
  
--- 26,33 ----
  --  This package contains the resolution code for aggregates. It is logically
  --  part of Sem_Res, but is split off since the aggregate code is so complex.
  
! with Einfo.Entities; use Einfo.Entities;
! with Types;          use Types;
  
  package Sem_Aggr is
  
*************** package Sem_Aggr is
*** 50,53 ****
--- 51,65 ----
     function Is_Null_Array_Aggregate_High_Bound (N : Node_Id) return Boolean;
     --  Returns True for the high bound of a null array aggregate.
  
+    function Is_Deep_Choice
+      (Choice    : Node_Id;
+       Aggr_Type : Type_Kind_Id) return Boolean;
+    --  Returns whether Choice from a delta aggregate of type Aggr_Type is a
+    --  deep choice.
+ 
+    function Is_Root_Prefix_Of_Deep_Choice (Pref : Node_Id) return Boolean;
+    --  Returns whether prefix Pref of a deep choice is its root prefix. Except
+    --  for its use in Is_Deep_Choice, this function should only be called on
+    --  prefixes of a deep choice as identified by Is_Deep_Choice.
+ 
  end Sem_Aggr;
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_attr.adb gcc-14.1.0/gcc/ada/sem_attr.adb
*** gcc-13.2.0/gcc/ada/sem_attr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_attr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Dist;       use Exp_Dist;
*** 41,46 ****
--- 41,47 ----
  with Exp_Util;       use Exp_Util;
  with Expander;       use Expander;
  with Freeze;         use Freeze;
+ with Ghost;          use Ghost;
  with Gnatvsn;        use Gnatvsn;
  with Itypes;         use Itypes;
  with Lib;            use Lib;
*************** package body Sem_Attr is
*** 104,111 ****
     --  In Ada 83 mode, these are the only recognized attributes. In other Ada
     --  modes all these attributes are recognized, even if removed in Ada 95.
  
!    Attribute_83 : constant Attribute_Class_Array := Attribute_Class_Array'(
!       Attribute_Address                      |
        Attribute_Aft                          |
        Attribute_Alignment                    |
        Attribute_Base                         |
--- 105,112 ----
     --  In Ada 83 mode, these are the only recognized attributes. In other Ada
     --  modes all these attributes are recognized, even if removed in Ada 95.
  
!    Attribute_83 : constant Attribute_Set :=
!      (Attribute_Address                      |
        Attribute_Aft                          |
        Attribute_Alignment                    |
        Attribute_Base                         |
*************** package body Sem_Attr is
*** 153,160 ****
     --  RM which are not defined in Ada 95. These are recognized in Ada 95 mode,
     --  but in Ada 95 they are considered to be implementation defined.
  
!    Attribute_05 : constant Attribute_Class_Array := Attribute_Class_Array'(
!       Attribute_Machine_Rounding             |
        Attribute_Mod                          |
        Attribute_Priority                     |
        Attribute_Stream_Size                  |
--- 154,161 ----
     --  RM which are not defined in Ada 95. These are recognized in Ada 95 mode,
     --  but in Ada 95 they are considered to be implementation defined.
  
!    Attribute_05 : constant Attribute_Set :=
!      (Attribute_Machine_Rounding             |
        Attribute_Mod                          |
        Attribute_Priority                     |
        Attribute_Stream_Size                  |
*************** package body Sem_Attr is
*** 165,172 ****
     --  RM which are not defined in Ada 2005. These are recognized in Ada 95
     --  and Ada 2005 modes, but are considered to be implementation defined.
  
!    Attribute_12 : constant Attribute_Class_Array := Attribute_Class_Array'(
!       Attribute_First_Valid                  |
        Attribute_Has_Same_Storage             |
        Attribute_Last_Valid                   |
        Attribute_Max_Alignment_For_Allocation => True,
--- 166,173 ----
     --  RM which are not defined in Ada 2005. These are recognized in Ada 95
     --  and Ada 2005 modes, but are considered to be implementation defined.
  
!    Attribute_12 : constant Attribute_Set :=
!      (Attribute_First_Valid                  |
        Attribute_Has_Same_Storage             |
        Attribute_Last_Valid                   |
        Attribute_Max_Alignment_For_Allocation => True,
*************** package body Sem_Attr is
*** 176,185 ****
     --  RM which are not defined in Ada 2012. These are recognized in Ada
     --  95/2005/2012 modes, but are considered to be implementation defined.
  
!    Attribute_22 : constant Attribute_Class_Array := Attribute_Class_Array'(
!       Attribute_Enum_Rep                     |
!       Attribute_Enum_Val                     => True,
!       Attribute_Index                        => True,
        Attribute_Preelaborable_Initialization => True,
        others                                 => False);
  
--- 177,186 ----
     --  RM which are not defined in Ada 2012. These are recognized in Ada
     --  95/2005/2012 modes, but are considered to be implementation defined.
  
!    Attribute_22 : constant Attribute_Set :=
!      (Attribute_Enum_Rep                     |
!       Attribute_Enum_Val                     |
!       Attribute_Index                        |
        Attribute_Preelaborable_Initialization => True,
        others                                 => False);
  
*************** package body Sem_Attr is
*** 187,195 ****
     --  of their prefixes or result in an access value. Such prefixes can be
     --  considered as lvalues.
  
!    Attribute_Name_Implies_Lvalue_Prefix : constant Attribute_Class_Array :=
!       Attribute_Class_Array'(
!       Attribute_Access                       |
        Attribute_Address                      |
        Attribute_Input                        |
        Attribute_Read                         |
--- 188,195 ----
     --  of their prefixes or result in an access value. Such prefixes can be
     --  considered as lvalues.
  
!    Attribute_Name_Implies_Lvalue_Prefix : constant Attribute_Set :=
!      (Attribute_Access                       |
        Attribute_Address                      |
        Attribute_Input                        |
        Attribute_Read                         |
*************** package body Sem_Attr is
*** 1068,1076 ****
                    Analyze (N);
                    return;
  
!                --  OK if a task type, this test needs sharpening up ???
  
!                elsif Is_Task_Type (Typ) then
                    null;
  
                 --  OK if self-reference in an aggregate in Ada 2005, and
--- 1068,1078 ----
                    Analyze (N);
                    return;
  
!                --  OK if current task.
  
!                elsif Is_Task_Type (Typ)
!                  and then In_Open_Scopes (Typ)
!                then
                    null;
  
                 --  OK if self-reference in an aggregate in Ada 2005, and
*************** package body Sem_Attr is
*** 1364,1371 ****
           --  yet on its definite context.
  
           if Inside_Class_Condition_Preanalysis then
!             Legal   := True;
!             Spec_Id := Current_Scope;
              return;
           end if;
  
--- 1366,1392 ----
           --  yet on its definite context.
  
           if Inside_Class_Condition_Preanalysis then
!             Legal := True;
! 
!             --  Search for the subprogram that has this class-wide condition;
!             --  required to avoid reporting spurious errors since the current
!             --  scope may not be appropriate because the attribute may be
!             --  referenced from the inner scope of, for example, quantified
!             --  expressions.
! 
!             --  Although the expression is not installed on its definite
!             --  context, we know that the subprogram has been placed in the
!             --  scope stack by Preanalyze_Condition; we also know that it is
!             --  not a generic subprogram since class-wide pre/postconditions
!             --  can only be applied for primitive operations of tagged types.
! 
!             if Is_Subprogram (Current_Scope) then
!                Spec_Id := Current_Scope;
!             else
!                Spec_Id := Enclosing_Subprogram (Current_Scope);
!             end if;
! 
!             pragma Assert (Is_Dispatching_Operation (Spec_Id));
              return;
           end if;
  
*************** package body Sem_Attr is
*** 1402,1407 ****
--- 1423,1436 ----
              elsif Prag_Nam = Name_Contract_Cases then
                 Check_Placement_In_Contract_Cases (Prag);
  
+             --  Attributes 'Old and 'Result are allowed to appear in
+             --  consequence of aspect or pragma Exceptional_Cases. We already
+             --  examined the exception_choice part of contract syntax, so we
+             --  can accept all remaining occurrences within the pragma.
+ 
+             elsif Prag_Nam = Name_Exceptional_Cases then
+                null;
+ 
              --  Attribute 'Result is allowed to appear in aspect or pragma
              --  [Refined_]Depends (SPARK RM 6.1.5(11)).
  
*************** package body Sem_Attr is
*** 1485,1490 ****
--- 1514,1520 ----
           elsif Nkind (Subp_Decl) not in N_Abstract_Subprogram_Declaration
                                        | N_Entry_Declaration
                                        | N_Expression_Function
+                                       | N_Full_Type_Declaration
                                        | N_Generic_Subprogram_Declaration
                                        | N_Subprogram_Body
                                        | N_Subprogram_Body_Stub
*************** package body Sem_Attr is
*** 1983,1992 ****
                 Flag_Non_Static_Expr
                   ("expression for dimension must be static!", E1);
                 Error_Attr;
- 
-             elsif Expr_Value (E1) > D or else Expr_Value (E1) < 1 then
-                Error_Attr ("invalid dimension number for array type", E1);
              end if;
           end if;
  
           if (Style_Check and Style_Check_Array_Attribute_Index)
--- 2013,2032 ----
                 Flag_Non_Static_Expr
                   ("expression for dimension must be static!", E1);
                 Error_Attr;
              end if;
+ 
+             declare
+                Value : constant Uint := Expr_Value (E1);
+             begin
+ 
+                if Value > D or else Value < 1 then
+                   Error_Attr ("invalid dimension number for array type", E1);
+                end if;
+ 
+                --  Replace the static value to simplify the tree for gigi
+                Fold_Uint (E1, Value, True);
+             end;
+ 
           end if;
  
           if (Style_Check and Style_Check_Array_Attribute_Index)
*************** package body Sem_Attr is
*** 2488,2494 ****
             or else In_Spec_Expression
           then
              return;
!          else
              Check_Fully_Declared (P_Type, P);
           end if;
        end Check_Not_Incomplete_Type;
--- 2528,2534 ----
             or else In_Spec_Expression
           then
              return;
!          elsif not Is_Current_Instance (P) then
              Check_Fully_Declared (P_Type, P);
           end if;
        end Check_Not_Incomplete_Type;
*************** package body Sem_Attr is
*** 3298,3304 ****
  
              --  Check for missing/bad expression (result of previous error)
  
!             if No (E1) or else Etype (E1) = Any_Type then
                 raise Bad_Attribute;
              end if;
           end if;
--- 3338,3347 ----
  
              --  Check for missing/bad expression (result of previous error)
  
!             if No (E1)
!               or else (Etype (E1) = Any_Type and then Full_Analysis)
!             then
!                Check_Error_Detected;
                 raise Bad_Attribute;
              end if;
           end if;
*************** package body Sem_Attr is
*** 4613,4619 ****
  
           if Comes_From_Source (N) then
  
!             --  This attribute be prefixed with references to objects or
              --  values (such as a current instance value given within a type
              --  or subtype aspect).
  
--- 4656,4662 ----
  
           if Comes_From_Source (N) then
  
!             --  This attribute can be prefixed with references to objects or
              --  values (such as a current instance value given within a type
              --  or subtype aspect).
  
*************** package body Sem_Attr is
*** 4621,4626 ****
--- 4664,4676 ----
                and then not Is_Current_Instance_Reference_In_Type_Aspect (P)
              then
                 Error_Attr_P ("prefix of % attribute must be object");
+ 
+             --  Just like attribute 'Valid_Scalars this attribute is illegal
+             --  on unchecked union types.
+ 
+             elsif Has_Unchecked_Union (Validated_View (P_Type)) then
+                Error_Attr_P
+                  ("attribute % not allowed for Unchecked_Union type");
              end if;
           end if;
  
*************** package body Sem_Attr is
*** 4744,4751 ****
              Loop_Decl : constant Node_Id := Label_Construct (Parent (Loop_Id));
  
              function Check_Reference (Nod : Node_Id) return Traverse_Result;
!             --  Determine whether a reference mentions an entity declared
!             --  within the related loop.
  
              function Declared_Within (Nod : Node_Id) return Boolean;
              --  Determine whether Nod appears in the subtree of Loop_Decl but
--- 4794,4802 ----
              Loop_Decl : constant Node_Id := Label_Construct (Parent (Loop_Id));
  
              function Check_Reference (Nod : Node_Id) return Traverse_Result;
!             --  Detect attribute 'Loop_Entry in prefix P and determine whether
!             --  a reference mentions an entity declared within the related
!             --  loop.
  
              function Declared_Within (Nod : Node_Id) return Boolean;
              --  Determine whether Nod appears in the subtree of Loop_Decl but
*************** package body Sem_Attr is
*** 4756,4763 ****
              ---------------------
  
              function Check_Reference (Nod : Node_Id) return Traverse_Result is
              begin
!                if Nkind (Nod) = N_Identifier
                   and then Present (Entity (Nod))
                   and then Declared_Within (Declaration_Node (Entity (Nod)))
                 then
--- 4807,4828 ----
              ---------------------
  
              function Check_Reference (Nod : Node_Id) return Traverse_Result is
+                Orig_Nod : constant Node_Id := Original_Node (Nod);
+                --  Check presence of Loop_Entry in the prefix P by looking at
+                --  the original node for Nod, as it will have been rewritten
+                --  into its own prefix if the assertion is ignored (see code
+                --  below).
+ 
              begin
!                if Is_Attribute_Loop_Entry (Orig_Nod) then
!                   Error_Msg_Name_1 := Name_Loop_Entry;
!                   Error_Msg_Name_2 := Name_Loop_Entry;
!                   Error_Msg_N
!                     ("attribute % cannot appear in the prefix of attribute %",
!                      Nod);
!                   return Abandon;
! 
!                elsif Nkind (Nod) = N_Identifier
                   and then Present (Entity (Nod))
                   and then Declared_Within (Declaration_Node (Entity (Nod)))
                 then
*************** package body Sem_Attr is
*** 4916,4922 ****
           --  Loop_Entry must create a constant initialized by the evaluated
           --  prefix.
  
!          if Is_Limited_View (Etype (P)) then
              Error_Attr_P ("prefix of attribute % cannot be limited");
           end if;
  
--- 4981,4987 ----
           --  Loop_Entry must create a constant initialized by the evaluated
           --  prefix.
  
!          if Is_Inherently_Limited_Type (Etype (P)) then
              Error_Attr_P ("prefix of attribute % cannot be limited");
           end if;
  
*************** package body Sem_Attr is
*** 5856,5862 ****
              --  When a qualified name is used for the prefix, homonyms may come
              --  before the current function in the homonym chain.
  
!             elsif Has_Homonym (Pref_Id) then
                 return Denote_Same_Function (Homonym (Pref_Id), Spec_Id);
              end if;
  
--- 5921,5929 ----
              --  When a qualified name is used for the prefix, homonyms may come
              --  before the current function in the homonym chain.
  
!             elsif Has_Homonym (Pref_Id)
!               and then Present (Homonym (Pref_Id))
!             then
                 return Denote_Same_Function (Homonym (Pref_Id), Spec_Id);
              end if;
  
*************** package body Sem_Attr is
*** 5971,5976 ****
--- 6038,6055 ----
                         ("incorrect prefix for attribute %, expected %", P);
                    end if;
  
+                --  If the prefix is an access-to-subprogram type, then it must
+                --  be the same as the annotated type.
+ 
+                elsif Is_Access_Subprogram_Type (Pref_Id) then
+                   if Pref_Id = Spec_Id then
+                      Set_Etype (N, Etype (Designated_Type (Spec_Id)));
+                   else
+                      Error_Msg_Name_2 := Chars (Spec_Id);
+                      Error_Attr
+                        ("incorrect prefix for attribute %, expected %", P);
+                   end if;
+ 
                 --  Otherwise the prefix denotes some other form of subprogram
                 --  entity.
  
*************** package body Sem_Attr is
*** 6378,6394 ****
                         or else Size_Known_At_Compile_Time (Entity (P)))
           then
              declare
!                Siz : Uint;
  
              begin
!                if Known_Static_RM_Size (Entity (P)) then
!                   Siz := RM_Size (Entity (P));
                 else
!                   Siz := Esize (Entity (P));
                 end if;
  
!                Rewrite (N, Make_Integer_Literal (Sloc (N), Siz));
!                Analyze (N);
              end;
           end if;
  
--- 6457,6486 ----
                         or else Size_Known_At_Compile_Time (Entity (P)))
           then
              declare
!                Prefix_E : Entity_Id := Entity (P);
!                Siz      : Uint;
  
              begin
!                --  Handle private and incomplete types
! 
!                if Present (Underlying_Type (Prefix_E)) then
!                   Prefix_E := Underlying_Type (Prefix_E);
!                end if;
! 
!                if Known_Static_RM_Size (Prefix_E) then
!                   Siz := RM_Size (Prefix_E);
                 else
!                   Siz := Esize (Prefix_E);
                 end if;
  
!                --  Protect the frontend against cases where the attribute
!                --  Size_Known_At_Compile_Time is set, but the Esize value
!                --  is not available (see Einfo.ads).
! 
!                if Present (Siz) then
!                   Rewrite (N, Make_Integer_Literal (Sloc (N), Siz));
!                   Analyze (N);
!                end if;
              end;
           end if;
  
*************** package body Sem_Attr is
*** 7265,7271 ****
           then
              Error_Attr_P ("prefix of attribute % must be a record or array");
  
!          elsif Is_Limited_View (P_Type) then
              Error_Attr ("prefix of attribute % cannot be limited", N);
  
           elsif Nkind (E1) /= N_Aggregate then
--- 7357,7363 ----
           then
              Error_Attr_P ("prefix of attribute % must be a record or array");
  
!          elsif Is_Inherently_Limited_Type (P_Type) then
              Error_Attr ("prefix of attribute % cannot be limited", N);
  
           elsif Nkind (E1) /= N_Aggregate then
*************** package body Sem_Attr is
*** 7598,7604 ****
  
        --  In SPARK certain attributes (see below) depend on Tasking_State.
        --  Ensure that the entity is available for gnat2why by loading it.
!       --  See SPARK RM 9(18) for the relevant rule.
  
        if GNATprove_Mode then
           case Attr_Id is
--- 7690,7696 ----
  
        --  In SPARK certain attributes (see below) depend on Tasking_State.
        --  Ensure that the entity is available for gnat2why by loading it.
!       --  See SPARK RM 9(19) for the relevant rule.
  
        if GNATprove_Mode then
           case Attr_Id is
*************** package body Sem_Attr is
*** 8385,8393 ****
          --  However, the attribute Unconstrained_Array must be evaluated,
          --  since it is documented to be a static attribute (and can for
          --  example appear in a Compile_Time_Warning pragma). The frozen
!         --  status of the type does not affect its evaluation.
  
!         and then Id /= Attribute_Unconstrained_Array
        then
           return;
        end if;
--- 8477,8489 ----
          --  However, the attribute Unconstrained_Array must be evaluated,
          --  since it is documented to be a static attribute (and can for
          --  example appear in a Compile_Time_Warning pragma). The frozen
!         --  status of the type does not affect its evaluation. Likewise
!         --  for attributes intended to be used with generic definitions.
  
!         and then Id not in Attribute_Unconstrained_Array
!                         |  Attribute_Has_Access_Values
!                         |  Attribute_Has_Discriminants
!                         |  Attribute_Has_Tagged_Values
        then
           return;
        end if;
*************** package body Sem_Attr is
*** 8597,8602 ****
--- 8693,8718 ----
              Set_Raises_Constraint_Error (N);
           end if;
  
+          --  RM 13.14(8/4): a nonstatic expression in a spec expression does
+          --  not cause freezing, so the representation attributes cannot be
+          --  evaluated at this point if the type is not already frozen.
+ 
+          if not Static
+            and then In_Spec_Expression
+            and then Id in Attribute_Alignment
+                        |  Attribute_Component_Size
+                        |  Attribute_Max_Alignment_For_Allocation
+                        |  Attribute_Max_Size_In_Storage_Elements
+                        |  Attribute_Object_Size
+                        |  Attribute_Size
+                        |  Attribute_Small
+                        |  Attribute_VADS_Size
+                        |  Attribute_Value_Size
+            and then not Is_Frozen (P_Type)
+          then
+             return;
+          end if;
+ 
        --  Array case. We enforce the constrained requirement of (RM 4.9(7-8))
        --  since we can't do anything with unconstrained arrays. In addition,
        --  only the First, Last and Length attributes are possibly static.
*************** package body Sem_Attr is
*** 10943,10948 ****
--- 11059,11067 ----
        --  Returns True if Declared_Entity is declared within the declarative
        --  region of Generic_Unit; otherwise returns False.
  
+       function Is_Thin_Pointer_To_Unc_Array (T : Entity_Id) return Boolean;
+       --  Return True if T is a thin pointer to an unconstrained array type
+ 
        ----------------------------------
        -- Declared_Within_Generic_Unit --
        ----------------------------------
*************** package body Sem_Attr is
*** 10970,10975 ****
--- 11089,11116 ----
           return False;
        end Declared_Within_Generic_Unit;
  
+       ----------------------------------
+       -- Is_Thin_Pointer_To_Unc_Array --
+       ----------------------------------
+ 
+       function Is_Thin_Pointer_To_Unc_Array (T : Entity_Id) return Boolean is
+       begin
+          if Is_Access_Type (T)
+            and then Has_Size_Clause (T)
+            and then RM_Size (T) = System_Address_Size
+          then
+             declare
+                DT : constant Entity_Id := Designated_Type (T);
+ 
+             begin
+                return Is_Array_Type (DT) and then not Is_Constrained (DT);
+             end;
+ 
+          else
+             return False;
+          end if;
+       end Is_Thin_Pointer_To_Unc_Array;
+ 
     --  Start of processing for Resolve_Attribute
  
     begin
*************** package body Sem_Attr is
*** 10992,10997 ****
--- 11133,11144 ----
           Set_Etype (N, Typ);
        end if;
  
+       --  A Ghost attribute must appear in a specific context
+ 
+       if Is_Ghost_Attribute_Reference (N) then
+          Check_Ghost_Context (Empty, N);
+       end if;
+ 
        --  Remaining processing depends on attribute
  
        case Attr_Id is
*************** package body Sem_Attr is
*** 11445,11453 ****
                 end if;
              end if;
  
!             if Attr_Id in Attribute_Access | Attribute_Unchecked_Access
!               and then (Ekind (Btyp) = E_General_Access_Type
!                          or else Ekind (Btyp) = E_Anonymous_Access_Type)
              then
                 --  Ada 2005 (AI-230): Check the accessibility of anonymous
                 --  access types for stand-alone objects, record and array
--- 11592,11598 ----
                 end if;
              end if;
  
!             if Ekind (Btyp) in E_General_Access_Type | E_Anonymous_Access_Type
              then
                 --  Ada 2005 (AI-230): Check the accessibility of anonymous
                 --  access types for stand-alone objects, record and array
*************** package body Sem_Attr is
*** 11455,11460 ****
--- 11600,11606 ----
                 --  the level is the same of the enclosing composite type.
  
                 if Ada_Version >= Ada_2005
+                  and then Attr_Id = Attribute_Access
                   and then (Is_Local_Anonymous_Access (Btyp)
  
                              --  Handle cases where Btyp is the anonymous access
*************** package body Sem_Attr is
*** 11462,11468 ****
  
                              or else Nkind (Associated_Node_For_Itype (Btyp)) =
                                                          N_Object_Declaration)
-                  and then Attr_Id = Attribute_Access
  
                   --  Verify that static checking is OK (namely that we aren't
                   --  in a specific context requiring dynamic checks on
--- 11608,11613 ----
*************** package body Sem_Attr is
*** 11501,11507 ****
                    end if;
                 end if;
  
!                if Is_Dependent_Component_Of_Mutable_Object (P) then
                    Error_Msg_F
                      ("illegal attribute for discriminant-dependent component",
                       P);
--- 11646,11654 ----
                    end if;
                 end if;
  
!                if Attr_Id /= Attribute_Unrestricted_Access
!                  and then Is_Dependent_Component_Of_Mutable_Object (P)
!                then
                    Error_Msg_F
                      ("illegal attribute for discriminant-dependent component",
                       P);
*************** package body Sem_Attr is
*** 11516,11522 ****
                    Nom_Subt := Base_Type (Nom_Subt);
                 end if;
  
!                if Is_Tagged_Type (Designated_Type (Typ)) then
  
                    --  If the attribute is in the context of an access
                    --  parameter, then the prefix is allowed to be of
--- 11663,11681 ----
                    Nom_Subt := Base_Type (Nom_Subt);
                 end if;
  
!                --  We do not enforce static matching for Unrestricted_Access
!                --  except for a thin pointer to an unconstrained array type,
!                --  because, in this case, the designated object must contain
!                --  its bounds, which means that it must have an unconstrained
!                --  nominal subtype (and be aliased, as will be checked below).
! 
!                if Attr_Id = Attribute_Unrestricted_Access
!                  and then not (Is_Thin_Pointer_To_Unc_Array (Typ)
!                                 and then Is_Aliased_View (Original_Node (P)))
!                then
!                   null;
! 
!                elsif Is_Tagged_Type (Designated_Type (Typ)) then
  
                    --  If the attribute is in the context of an access
                    --  parameter, then the prefix is allowed to be of
*************** package body Sem_Attr is
*** 11626,11633 ****
  
                    Compatible_Alt_Checks : constant Boolean :=
                      No_Dynamic_Acc_Checks and then not Debug_Flag_Underscore_B;
                 begin
!                   if Attr_Id /= Attribute_Unchecked_Access
                      and then (Ekind (Btyp) = E_General_Access_Type
                                 or else No_Dynamic_Acc_Checks)
  
--- 11785,11793 ----
  
                    Compatible_Alt_Checks : constant Boolean :=
                      No_Dynamic_Acc_Checks and then not Debug_Flag_Underscore_B;
+ 
                 begin
!                   if Attr_Id = Attribute_Access
                      and then (Ekind (Btyp) = E_General_Access_Type
                                 or else No_Dynamic_Acc_Checks)
  
*************** package body Sem_Attr is
*** 11817,11838 ****
                 --  Check for unrestricted access where expected type is a thin
                 --  pointer to an unconstrained array.
  
!                elsif Has_Size_Clause (Typ)
!                  and then RM_Size (Typ) = System_Address_Size
!                then
!                   declare
!                      DT : constant Entity_Id := Designated_Type (Typ);
!                   begin
!                      if Is_Array_Type (DT)
!                        and then not Is_Constrained (DT)
!                      then
!                         Error_Msg_N
!                           ("illegal use of Unrestricted_Access attribute", P);
!                         Error_Msg_N
!                           ("\attempt to generate thin pointer to unaliased "
!                            & "object", P);
!                      end if;
!                   end;
                 end if;
              end if;
  
--- 11977,11988 ----
                 --  Check for unrestricted access where expected type is a thin
                 --  pointer to an unconstrained array.
  
!                elsif Is_Thin_Pointer_To_Unc_Array (Typ) then
!                   Error_Msg_N
!                     ("illegal use of Unrestricted_Access attribute", P);
!                   Error_Msg_N
!                     ("\attempt to generate thin pointer to unaliased "
!                      & "object", P);
                 end if;
              end if;
  
*************** package body Sem_Attr is
*** 11983,11997 ****
              | Attribute_Code_Address
           =>
              --  To be safe, assume that if the address of a variable is taken,
!             --  it may be modified via this address, so note modification.
  
!             if Is_Variable (P) then
                 Note_Possible_Modification (P, Sure => False);
              end if;
  
!             if Nkind (P) in N_Subexpr
!               and then Is_Overloaded (P)
!             then
                 Get_First_Interp (P, Index, It);
                 Get_Next_Interp (Index, It);
  
--- 12133,12149 ----
              | Attribute_Code_Address
           =>
              --  To be safe, assume that if the address of a variable is taken,
!             --  it may be modified via this address, so note modification,
!             --  unless the address is compared directly, which should not be
!             --  considered a modification.
  
!             if Is_Variable (P)
!               and then Nkind (Parent (N)) not in N_Op_Compare
!             then
                 Note_Possible_Modification (P, Sure => False);
              end if;
  
!             if Nkind (P) in N_Subexpr and then Is_Overloaded (P) then
                 Get_First_Interp (P, Index, It);
                 Get_Next_Interp (Index, It);
  
*************** package body Sem_Attr is
*** 12005,12015 ****
              if not Is_Entity_Name (P)
                or else not Is_Overloadable (Entity (P))
              then
!                if not Is_Task_Type (Etype (P))
!                  or else Nkind (P) = N_Explicit_Dereference
!                then
!                   Resolve (P);
!                end if;
              end if;
  
              --  If this is the name of a derived subprogram, or that of a
--- 12157,12163 ----
              if not Is_Entity_Name (P)
                or else not Is_Overloadable (Entity (P))
              then
!                Resolve (P);
              end if;
  
              --  If this is the name of a derived subprogram, or that of a
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_attr.ads gcc-14.1.0/gcc/ada/sem_attr.ads
*** gcc-13.2.0/gcc/ada/sem_attr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_attr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Attr is
*** 46,53 ****
     --  in GNAT, as well as constructing an array of flags indicating which
     --  attributes these are.
  
!    Attribute_Impl_Def : constant Attribute_Class_Array :=
!      Attribute_Class_Array'(
  
        ------------------
        -- Abort_Signal --
--- 46,53 ----
     --  in GNAT, as well as constructing an array of flags indicating which
     --  attributes these are.
  
!    Attribute_Impl_Def : constant Attribute_Set :=
!      (
  
        ------------------
        -- Abort_Signal --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_aux.adb gcc-14.1.0/gcc/ada/sem_aux.adb
*** gcc-13.2.0/gcc/ada/sem_aux.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_aux.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Aux is
*** 728,737 ****
        CList : Node_Id;
  
     begin
-       if not Is_Type (Typ) then
-          return False;
-       end if;
- 
        FSTyp := First_Subtype (Typ);
  
        if not Has_Discriminants (FSTyp) then
--- 728,733 ----
*************** package body Sem_Aux is
*** 1021,1075 ****
        end if;
     end Is_Generic_Formal;
  
-    -------------------------------
-    -- Is_Immutably_Limited_Type --
-    -------------------------------
- 
-    function Is_Immutably_Limited_Type (Ent : Entity_Id) return Boolean is
-       Btype : constant Entity_Id := Available_View (Base_Type (Ent));
- 
-    begin
-       if Is_Limited_Record (Btype) then
-          return True;
- 
-       elsif Ekind (Btype) = E_Limited_Private_Type
-         and then Nkind (Parent (Btype)) = N_Formal_Type_Declaration
-       then
-          return not In_Package_Body (Scope ((Btype)));
- 
-       elsif Is_Private_Type (Btype) then
- 
-          --  AI05-0063: A type derived from a limited private formal type is
-          --  not immutably limited in a generic body.
- 
-          if Is_Derived_Type (Btype)
-            and then Is_Generic_Type (Etype (Btype))
-          then
-             if not Is_Limited_Type (Etype (Btype)) then
-                return False;
- 
-             --  A descendant of a limited formal type is not immutably limited
-             --  in the generic body, or in the body of a generic child.
- 
-             elsif Ekind (Scope (Etype (Btype))) = E_Generic_Package then
-                return not In_Package_Body (Scope (Btype));
- 
-             else
-                return False;
-             end if;
- 
-          else
-             return False;
-          end if;
- 
-       elsif Is_Concurrent_Type (Btype) then
-          return True;
- 
-       else
-          return False;
-       end if;
-    end Is_Immutably_Limited_Type;
- 
     ---------------------
     -- Is_Limited_Type --
     ---------------------
--- 1017,1022 ----
*************** package body Sem_Aux is
*** 1152,1162 ****
        end if;
     end Is_Limited_Type;
  
!    ---------------------
!    -- Is_Limited_View --
!    ---------------------
  
!    function Is_Limited_View (Ent : Entity_Id) return Boolean is
        Btype : constant Entity_Id := Available_View (Base_Type (Ent));
  
     begin
--- 1099,1158 ----
        end if;
     end Is_Limited_Type;
  
!    -------------------------------
!    -- Is_Immutably_Limited_Type --
!    -------------------------------
  
!    function Is_Immutably_Limited_Type (Ent : Entity_Id) return Boolean is
!       Btype : constant Entity_Id := Available_View (Base_Type (Ent));
! 
!    begin
!       if Is_Limited_Record (Btype) then
!          return True;
! 
!       elsif Ekind (Btype) = E_Limited_Private_Type
!         and then Nkind (Parent (Btype)) = N_Formal_Type_Declaration
!       then
!          return not In_Package_Body (Scope ((Btype)));
! 
!       elsif Is_Private_Type (Btype) then
! 
!          --  AI05-0063: A type derived from a limited private formal type is
!          --  not immutably limited in a generic body.
! 
!          if Is_Derived_Type (Btype)
!            and then Is_Generic_Type (Etype (Btype))
!          then
!             if not Is_Limited_Type (Etype (Btype)) then
!                return False;
! 
!             --  A descendant of a limited formal type is not immutably limited
!             --  in the generic body, or in the body of a generic child.
! 
!             elsif Ekind (Scope (Etype (Btype))) = E_Generic_Package then
!                return not In_Package_Body (Scope (Btype));
! 
!             else
!                return False;
!             end if;
! 
!          else
!             return False;
!          end if;
! 
!       elsif Is_Concurrent_Type (Btype) then
!          return True;
! 
!       else
!          return False;
!       end if;
!    end Is_Immutably_Limited_Type;
! 
!    --------------------------------
!    -- Is_Inherently_Limited_Type --
!    --------------------------------
! 
!    function Is_Inherently_Limited_Type (Ent : Entity_Id) return Boolean is
        Btype : constant Entity_Id := Available_View (Base_Type (Ent));
  
     begin
*************** package body Sem_Aux is
*** 1196,1202 ****
                 if No (Utyp) then
                    return False;
                 else
!                   return Is_Limited_View (Utyp);
                 end if;
              end;
           end if;
--- 1192,1198 ----
                 if No (Utyp) then
                    return False;
                 else
!                   return Is_Inherently_Limited_Type (Utyp);
                 end if;
              end;
           end if;
*************** package body Sem_Aux is
*** 1214,1220 ****
           --  of a type that is not inherently limited.
  
           if Is_Class_Wide_Type (Btype) then
!             return Is_Limited_View (Root_Type (Btype));
  
           else
              declare
--- 1210,1216 ----
           --  of a type that is not inherently limited.
  
           if Is_Class_Wide_Type (Btype) then
!             return Is_Inherently_Limited_Type (Root_Type (Btype));
  
           else
              declare
*************** package body Sem_Aux is
*** 1231,1237 ****
                    --  limited interfaces.
  
                    if not Is_Interface (Etype (C))
!                     and then Is_Limited_View (Etype (C))
                    then
                       return True;
                    end if;
--- 1227,1233 ----
                    --  limited interfaces.
  
                    if not Is_Interface (Etype (C))
!                     and then Is_Inherently_Limited_Type (Etype (C))
                    then
                       return True;
                    end if;
*************** package body Sem_Aux is
*** 1244,1255 ****
           end if;
  
        elsif Is_Array_Type (Btype) then
!          return Is_Limited_View (Component_Type (Btype));
  
        else
           return False;
        end if;
!    end Is_Limited_View;
  
     ----------------------
     -- Nearest_Ancestor --
--- 1240,1251 ----
           end if;
  
        elsif Is_Array_Type (Btype) then
!          return Is_Inherently_Limited_Type (Component_Type (Btype));
  
        else
           return False;
        end if;
!    end Is_Inherently_Limited_Type;
  
     ----------------------
     -- Nearest_Ancestor --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_aux.ads gcc-14.1.0/gcc/ada/sem_aux.ads
*** gcc-13.2.0/gcc/ada/sem_aux.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_aux.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Aux is
*** 311,323 ****
     --  used to set the visibility of generic formals of a generic package
     --  declared with a box or with partial parameterization.
  
     function Is_Immutably_Limited_Type (Ent : Entity_Id) return Boolean;
     --  Implements definition in Ada 2012 RM-7.5 (8.1/3). This differs from the
     --  following predicate in that an untagged record with immutably limited
     --  components is NOT by itself immutably limited. This matters, e.g. when
     --  checking the legality of an access to the current instance.
  
!    function Is_Limited_View (Ent : Entity_Id) return Boolean;
     --  Ent is any entity. True for a type that is "inherently" limited (i.e.
     --  cannot become nonlimited). From the Ada 2005 RM-7.5(8.1/2), "a type with
     --  a part that is of a task, protected, or explicitly limited record type".
--- 311,330 ----
     --  used to set the visibility of generic formals of a generic package
     --  declared with a box or with partial parameterization.
  
+    function Is_Limited_Type (Ent : Entity_Id) return Boolean;
+    --  Ent is any entity. Returns true if Ent is a limited type (limited
+    --  private type, limited interface type, task type, protected type,
+    --  composite containing a limited component, or a subtype of any of
+    --  these types). This older routine overlaps with the next ones, this
+    --  should be cleaned up???
+ 
     function Is_Immutably_Limited_Type (Ent : Entity_Id) return Boolean;
     --  Implements definition in Ada 2012 RM-7.5 (8.1/3). This differs from the
     --  following predicate in that an untagged record with immutably limited
     --  components is NOT by itself immutably limited. This matters, e.g. when
     --  checking the legality of an access to the current instance.
  
!    function Is_Inherently_Limited_Type (Ent : Entity_Id) return Boolean;
     --  Ent is any entity. True for a type that is "inherently" limited (i.e.
     --  cannot become nonlimited). From the Ada 2005 RM-7.5(8.1/2), "a type with
     --  a part that is of a task, protected, or explicitly limited record type".
*************** package Sem_Aux is
*** 327,339 ****
     --  for other types, too. This is also used for identifying pure procedures
     --  whose calls should not be eliminated (RM 10.2.1(18/2)).
  
-    function Is_Limited_Type (Ent : Entity_Id) return Boolean;
-    --  Ent is any entity. Returns true if Ent is a limited type (limited
-    --  private type, limited interface type, task type, protected type,
-    --  composite containing a limited component, or a subtype of any of
-    --  these types). This older routine overlaps with the previous one, this
-    --  should be cleaned up???
- 
     function Nearest_Ancestor (Typ : Entity_Id) return Entity_Id;
     --  Given a subtype Typ, this function finds out the nearest ancestor from
     --  which constraints and predicates are inherited. There is no simple link
--- 334,339 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_case.adb gcc-14.1.0/gcc/ada/sem_case.adb
*** gcc-13.2.0/gcc/ada/sem_case.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_case.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Case is
*** 2752,2758 ****
                 procedure Test_Point_For_Match is
                    function In_Range (Val : Uint; Rang : Discrete_Range_Info)
                      return Boolean is
!                     ((Rang.Low <= Val) and then (Val <= Rang.High));
                 begin
                    pragma Assert (not Done);
                    Matches (Next_Index) :=
--- 2752,2758 ----
                 procedure Test_Point_For_Match is
                    function In_Range (Val : Uint; Rang : Discrete_Range_Info)
                      return Boolean is
!                     (Rang.Low <= Val and then Val <= Rang.High);
                 begin
                    pragma Assert (not Done);
                    Matches (Next_Index) :=
*************** package body Sem_Case is
*** 3429,3436 ****
                       Others_Seen := True;
                    else
                       if Flag_Overlapping_Within_One_Alternative
!                         and then (Compare (Matches (Choice.Alternative),
!                                   Choice.Matches) /= Disjoint)
                       then
                          Error_Msg_N
                            ("bad overlapping within one alternative", N);
--- 3429,3436 ----
                       Others_Seen := True;
                    else
                       if Flag_Overlapping_Within_One_Alternative
!                         and then Compare (Matches (Choice.Alternative),
!                                           Choice.Matches) /= Disjoint
                       then
                          Error_Msg_N
                            ("bad overlapping within one alternative", N);
*************** package body Sem_Case is
*** 3479,3485 ****
                    Union (Target => Covered, Source => Matches (A1));
                 end loop;
  
!                if (not Others_Seen) and then not Complement_Is_Empty (Covered)
                 then
                    Error_Msg_N ("not all values are covered", N);
                 end if;
--- 3479,3485 ----
                    Union (Target => Covered, Source => Matches (A1));
                 end loop;
  
!                if not Others_Seen and then not Complement_Is_Empty (Covered)
                 then
                    Error_Msg_N ("not all values are covered", N);
                 end if;
*************** package body Sem_Case is
*** 3686,3691 ****
--- 3686,3692 ----
                             if not Is_Discrete_Type (E)
                               or else not Has_Static_Predicate (E)
                               or else Has_Dynamic_Predicate_Aspect (E)
+                              or else Has_Ghost_Predicate_Aspect (E)
                             then
                                Bad_Predicated_Subtype_Use
                                  ("cannot use subtype& with non-static "
*************** package body Sem_Case is
*** 3823,3829 ****
                (Choice_Table,
                 Bounds_Type,
                 Subtyp,
!                Others_Present or else (Choice_Type = Universal_Integer),
                 N);
  
              --  If no others choice we are all done, otherwise we have one more
--- 3824,3830 ----
                (Choice_Table,
                 Bounds_Type,
                 Subtyp,
!                Others_Present or else Choice_Type = Universal_Integer,
                 N);
  
              --  If no others choice we are all done, otherwise we have one more
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_case.ads gcc-14.1.0/gcc/ada/sem_case.ads
*** gcc-13.2.0/gcc/ada/sem_case.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_case.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_cat.adb gcc-14.1.0/gcc/ada/sem_cat.adb
*** gcc-13.2.0/gcc/ada/sem_cat.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_cat.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Cat is
*** 346,359 ****
  
        if Null_Present (Recdef) then
           return;
-       else
-          Component_Decl := First (Component_Items (Component_List (Recdef)));
        end if;
  
!       while Present (Component_Decl)
!         and then Nkind (Component_Decl) = N_Component_Declaration
!       loop
!          if Present (Expression (Component_Decl))
             and then Nkind (Expression (Component_Decl)) /= N_Null
             and then not Is_OK_Static_Expression (Expression (Component_Decl))
  
--- 346,358 ----
  
        if Null_Present (Recdef) then
           return;
        end if;
  
!       Component_Decl := First (Component_Items (Component_List (Recdef)));
! 
!       while Present (Component_Decl) loop
!          if Nkind (Component_Decl) = N_Component_Declaration
!            and then Present (Expression (Component_Decl))
             and then Nkind (Expression (Component_Decl)) /= N_Null
             and then not Is_OK_Static_Expression (Expression (Component_Decl))
  
*************** package body Sem_Cat is
*** 562,568 ****
        --  There are no constraints on the body of Remote_Call_Interface or
        --  Remote_Types packages.
  
!       return (Unit_Entity /= Standard_Standard)
          and then (Is_Preelaborated (Unit_Entity)
                      or else Is_Pure (Unit_Entity)
                      or else Is_Shared_Passive (Unit_Entity)
--- 561,567 ----
        --  There are no constraints on the body of Remote_Call_Interface or
        --  Remote_Types packages.
  
!       return Unit_Entity /= Standard_Standard
          and then (Is_Preelaborated (Unit_Entity)
                      or else Is_Pure (Unit_Entity)
                      or else Is_Shared_Passive (Unit_Entity)
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_cat.ads gcc-14.1.0/gcc/ada/sem_cat.ads
*** gcc-13.2.0/gcc/ada/sem_cat.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_cat.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch10.adb gcc-14.1.0/gcc/ada/sem_ch10.adb
*** gcc-13.2.0/gcc/ada/sem_ch10.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch10.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch10 is
*** 85,90 ****
--- 85,98 ----
     procedure Analyze_Context (N : Node_Id);
     --  Analyzes items in the context clause of compilation unit
  
+    procedure Analyze_Required_Limited_With_Units (N : Node_Id);
+    --  Subsidiary of Analyze_Compilation_Unit. Perform full analysis of the
+    --  limited-with units of N when it is a package declaration that does not
+    --  require a package body, and the profile of some subprogram defined in N
+    --  depends on shadow incomplete type entities visible through limited-with
+    --  context clauses. This analysis is required to provide the backend with
+    --  the non-limited view of these shadow entities.
+ 
     procedure Build_Limited_Views (N : Node_Id);
     --  Build and decorate the list of shadow entities for a package mentioned
     --  in a limited_with clause. If the package was not previously analyzed
*************** package body Sem_Ch10 is
*** 230,235 ****
--- 238,246 ----
     --  Reset all visibility flags on unit after compiling it, either as a main
     --  unit or as a unit in the context.
  
+    procedure Replace (Old_E, New_E : Entity_Id);
+    --  Replace Old_E by New_E on visibility list
+ 
     procedure Unchain (E : Entity_Id);
     --  Remove single entity from visibility list
  
*************** package body Sem_Ch10 is
*** 627,632 ****
--- 638,644 ----
        Par_Spec_Name : Unit_Name_Type;
        Spec_Id       : Entity_Id;
        Unum          : Unit_Number_Type;
+       Options       : Style_Check_Options;
  
     --  Start of processing for Analyze_Compilation_Unit
  
*************** package body Sem_Ch10 is
*** 706,711 ****
--- 718,728 ----
           Set_Context_Pending (N);
        end if;
  
+       --  Store the style check options before analyzing context pragmas that
+       --  might change them for this compilation unit.
+ 
+       Save_Style_Check_Options (Options);
+ 
        Analyze_Context (N);
  
        Set_Context_Pending (N, False);
*************** package body Sem_Ch10 is
*** 1384,1395 ****
--- 1401,1423 ----
           Pop_Scope;
        end if;
  
+       --  Finally restore all the original style check options
+ 
+       Set_Style_Check_Options (Options);
+ 
        --  If No_Elaboration_Code_All was encountered, this is where we do the
        --  transitive test of with'ed units to make sure they have the aspect.
        --  This is delayed till the end of analyzing the compilation unit to
        --  ensure that the pragma/aspect, if present, has been analyzed.
  
        Check_No_Elab_Code_All (N);
+ 
+       --  If this is a main compilation containing a package declaration that
+       --  requires no package body, and the profile of some subprogram depends
+       --  on shadow incomplete entities then perform full analysis of its
+       --  limited-with units.
+ 
+       Analyze_Required_Limited_With_Units (N);
     end Analyze_Compilation_Unit;
  
     ---------------------
*************** package body Sem_Ch10 is
*** 1669,1677 ****
           Mutate_Ekind (Id, E_Package_Body);
           Set_Etype (Id, Standard_Void_Type);
  
!          if Has_Aspects (N) then
!             Analyze_Aspect_Specifications (N, Id);
!          end if;
  
           Set_Has_Completion (Nam);
           Set_Corresponding_Spec_Of_Stub (N, Nam);
--- 1697,1703 ----
           Mutate_Ekind (Id, E_Package_Body);
           Set_Etype (Id, Standard_Void_Type);
  
!          Analyze_Aspect_Specifications (N, Id);
  
           Set_Has_Completion (Nam);
           Set_Corresponding_Spec_Of_Stub (N, Nam);
*************** package body Sem_Ch10 is
*** 2011,2019 ****
           Mutate_Ekind (Id, E_Protected_Body);
           Set_Etype (Id, Standard_Void_Type);
  
!          if Has_Aspects (N) then
!             Analyze_Aspect_Specifications (N, Id);
!          end if;
  
           Set_Has_Completion (Etype (Nam));
           Set_Corresponding_Spec_Of_Stub (N, Nam);
--- 2037,2043 ----
           Mutate_Ekind (Id, E_Protected_Body);
           Set_Etype (Id, Standard_Void_Type);
  
!          Analyze_Aspect_Specifications (N, Id);
  
           Set_Has_Completion (Etype (Nam));
           Set_Corresponding_Spec_Of_Stub (N, Nam);
*************** package body Sem_Ch10 is
*** 2024,2029 ****
--- 2048,2196 ----
        end if;
     end Analyze_Protected_Body_Stub;
  
+    -----------------------------------------
+    -- Analyze_Required_Limited_With_Units --
+    -----------------------------------------
+ 
+    procedure Analyze_Required_Limited_With_Units (N : Node_Id) is
+       Unit_Node : constant Node_Id   := Unit (N);
+       Spec_Id   : constant Entity_Id := Defining_Entity (Unit_Node);
+ 
+       function Depends_On_Limited_Views (Pkg_Id : Entity_Id) return Boolean;
+       --  Determines whether the given package has some subprogram with a
+       --  profile that depends on shadow incomplete type entities of a
+       --  limited-with unit.
+ 
+       function Has_Limited_With_Clauses return Boolean;
+       --  Determines whether the compilation unit N has limited-with context
+       --  clauses.
+ 
+       ------------------------------
+       -- Has_Limited_With_Clauses --
+       ------------------------------
+ 
+       function Has_Limited_With_Clauses return Boolean is
+          Item : Node_Id := First (Context_Items (N));
+ 
+       begin
+          while Present (Item) loop
+             if Nkind (Item) = N_With_Clause
+               and then Limited_Present (Item)
+               and then not Implicit_With (Item)
+             then
+                return True;
+             end if;
+ 
+             Next (Item);
+          end loop;
+ 
+          return False;
+       end Has_Limited_With_Clauses;
+ 
+       ------------------------------
+       -- Depends_On_Limited_Views --
+       ------------------------------
+ 
+       function Depends_On_Limited_Views (Pkg_Id : Entity_Id) return Boolean is
+ 
+          function Has_Limited_View_Types (Subp : Entity_Id) return Boolean;
+          --  Determines whether the type of some formal of Subp, or its return
+          --  type, is a shadow incomplete entity of a limited-with unit.
+ 
+          ----------------------------
+          -- Has_Limited_View_Types --
+          ----------------------------
+ 
+          function Has_Limited_View_Types (Subp : Entity_Id) return Boolean is
+             Formal : Entity_Id := First_Formal (Subp);
+ 
+          begin
+             while Present (Formal) loop
+                if From_Limited_With (Etype (Formal))
+                  and then Has_Non_Limited_View (Etype (Formal))
+                  and then Ekind (Non_Limited_View (Etype (Formal)))
+                             = E_Incomplete_Type
+                then
+                   return True;
+                end if;
+ 
+                Formal := Next_Formal (Formal);
+             end loop;
+ 
+             if Ekind (Subp) = E_Function
+               and then From_Limited_With (Etype (Subp))
+               and then Has_Non_Limited_View (Etype (Subp))
+               and then Ekind (Non_Limited_View (Etype (Subp)))
+                          = E_Incomplete_Type
+             then
+                return True;
+             end if;
+ 
+             return False;
+          end Has_Limited_View_Types;
+ 
+          --  Local variables
+ 
+          E : Entity_Id := First_Entity (Pkg_Id);
+ 
+       begin
+          while Present (E) loop
+             if Is_Subprogram (E)
+               and then Has_Limited_View_Types (E)
+             then
+                return True;
+ 
+             --  Recursion on nested packages skipping package renamings
+ 
+             elsif Ekind (E) = E_Package
+               and then No (Renamed_Entity (E))
+               and then Depends_On_Limited_Views (E)
+             then
+                return True;
+             end if;
+ 
+             Next_Entity (E);
+          end loop;
+ 
+          return False;
+       end Depends_On_Limited_Views;
+ 
+       --  Local variables
+ 
+       Item : Node_Id;
+ 
+    --  Start of processing for Analyze_Required_Limited_With_Units
+ 
+    begin
+       --  Cases where no action is required
+ 
+       if not Expander_Active
+         or else Nkind (Unit_Node) /= N_Package_Declaration
+         or else Main_Unit_Entity /= Spec_Id
+         or else Is_Generic_Unit (Spec_Id)
+         or else Unit_Requires_Body (Spec_Id)
+         or else not Has_Limited_With_Clauses
+         or else not Depends_On_Limited_Views (Spec_Id)
+       then
+          return;
+       end if;
+ 
+       --  Perform full analyis of limited-with units to provide the backend
+       --  with the full-view of shadow entities.
+ 
+       Item := First (Context_Items (N));
+       while Present (Item) loop
+          if Nkind (Item) = N_With_Clause
+            and then Limited_Present (Item)
+            and then not Implicit_With (Item)
+          then
+             Semantics (Library_Unit (Item));
+          end if;
+ 
+          Next (Item);
+       end loop;
+    end Analyze_Required_Limited_With_Units;
+ 
     ----------------------------------
     -- Analyze_Subprogram_Body_Stub --
     ----------------------------------
*************** package body Sem_Ch10 is
*** 2051,2058 ****
           Decl := First (Declarations (Parent (N)));
           while Present (Decl) and then Decl /= N loop
              if Nkind (Decl) = N_Subprogram_Body_Stub
!               and then (Chars (Defining_Unit_Name (Specification (Decl))) =
!                         Chars (Defining_Unit_Name (Specification (N))))
              then
                 Error_Msg_N ("identifier for stub is not unique", N);
              end if;
--- 2218,2225 ----
           Decl := First (Declarations (Parent (N)));
           while Present (Decl) and then Decl /= N loop
              if Nkind (Decl) = N_Subprogram_Body_Stub
!               and then Chars (Defining_Unit_Name (Specification (Decl))) =
!                        Chars (Defining_Unit_Name (Specification (N)))
              then
                 Error_Msg_N ("identifier for stub is not unique", N);
              end if;
*************** package body Sem_Ch10 is
*** 2522,2530 ****
           Mutate_Ekind (Id, E_Task_Body);
           Set_Etype (Id, Standard_Void_Type);
  
!          if Has_Aspects (N) then
!             Analyze_Aspect_Specifications (N, Id);
!          end if;
  
           Generate_Reference (Nam, Id, 'b');
           Set_Corresponding_Spec_Of_Stub (N, Nam);
--- 2689,2695 ----
           Mutate_Ekind (Id, E_Task_Body);
           Set_Etype (Id, Standard_Void_Type);
  
!          Analyze_Aspect_Specifications (N, Id);
  
           Generate_Reference (Nam, Id, 'b');
           Set_Corresponding_Spec_Of_Stub (N, Nam);
*************** package body Sem_Ch10 is
*** 3148,3153 ****
--- 3313,3319 ----
        --  incomplete type, and carries the corresponding attributes.
  
        Mutate_Ekind           (Ent, E_Incomplete_Type);
+       Set_Is_Not_Self_Hidden (Ent);
        Set_Etype              (Ent, Ent);
        Set_Full_View          (Ent, Empty);
        Set_Is_First_Subtype   (Ent);
*************** package body Sem_Ch10 is
*** 4194,4199 ****
--- 4360,4369 ----
                       Set_Subtype_Indication (Decl,
                         New_Occurrence_Of (Non_Lim_View, Sloc (Def_Id)));
                       Set_Etype (Def_Id, Non_Lim_View);
+                      Reinit_Field_To_Zero (Def_Id, F_Non_Limited_View,
+                        Old_Ekind => (E_Incomplete_Subtype => True,
+                                      others => False));
+                      Reinit_Field_To_Zero (Def_Id, F_Private_Dependents);
                       Mutate_Ekind
                         (Def_Id, Subtype_Kind (Ekind (Non_Lim_View)));
                       Set_Analyzed (Decl, False);
*************** package body Sem_Ch10 is
*** 4359,4365 ****
              then
                 --  If the unit is an ancestor of the current one, it is the
                 --  case of a private limited with clause on a child unit, and
!                --  the compilation of one of its descendants, In that case the
                 --  limited view is errelevant.
  
                 if Limited_Present (Item) then
--- 4529,4535 ----
              then
                 --  If the unit is an ancestor of the current one, it is the
                 --  case of a private limited with clause on a child unit, and
!                --  the compilation of one of its descendants, in that case the
                 --  limited view is errelevant.
  
                 if Limited_Present (Item) then
*************** package body Sem_Ch10 is
*** 4696,4704 ****
                 --  Save for subsequent examination of import pragmas.
  
                 if Comes_From_Source (Decl)
!                  and then (Nkind (Decl) in N_Subprogram_Declaration
!                                          | N_Subprogram_Renaming_Declaration
!                                          | N_Generic_Subprogram_Declaration)
                 then
                    Append_Elmt (Defining_Entity (Decl), Subp_List);
  
--- 4866,4874 ----
                 --  Save for subsequent examination of import pragmas.
  
                 if Comes_From_Source (Decl)
!                  and then Nkind (Decl) in N_Subprogram_Declaration
!                                         | N_Subprogram_Renaming_Declaration
!                                         | N_Generic_Subprogram_Declaration
                 then
                    Append_Elmt (Defining_Entity (Decl), Subp_List);
  
*************** package body Sem_Ch10 is
*** 5147,5161 ****
                and then not Is_Child_Unit (Lim_Typ)
              then
                 declare
!                   Non_Lim_View : constant Entity_Id :=
!                                    Non_Limited_View (Lim_Typ);
  
                    Prev : Entity_Id;
  
                 begin
!                   Prev := Current_Entity (Lim_Typ);
! 
!                   --  Replace Non_Lim_View in the homonyms list, so that the
                    --  limited view becomes available.
  
                    --  If the nonlimited view is a record with an anonymous
--- 5317,5328 ----
                and then not Is_Child_Unit (Lim_Typ)
              then
                 declare
!                   Typ : constant Entity_Id := Non_Limited_View (Lim_Typ);
  
                    Prev : Entity_Id;
  
                 begin
!                   --  Replace Typ by Lim_Typ in the homonyms list, so that the
                    --  limited view becomes available.
  
                    --  If the nonlimited view is a record with an anonymous
*************** package body Sem_Ch10 is
*** 5187,5224 ****
                    --
                    --  [*] denotes the visible entity (Current_Entity)
  
!                   if Prev = Non_Lim_View
!                     or else
!                       (Ekind (Prev) = E_Incomplete_Type
!                         and then Full_View (Prev) = Non_Lim_View)
!                     or else
!                       (Ekind (Prev) = E_Incomplete_Type
!                         and then From_Limited_With (Prev)
!                         and then
!                           Ekind (Non_Limited_View (Prev)) = E_Incomplete_Type
!                         and then
!                           Full_View (Non_Limited_View (Prev)) = Non_Lim_View)
!                   then
!                      Set_Current_Entity (Lim_Typ);
  
!                   else
!                      while Present (Homonym (Prev))
!                        and then Homonym (Prev) /= Non_Lim_View
!                      loop
!                         Prev := Homonym (Prev);
!                      end loop;
  
!                      Set_Homonym (Prev, Lim_Typ);
!                   end if;
  
!                   Set_Homonym (Lim_Typ, Homonym (Non_Lim_View));
!                end;
  
!                if Debug_Flag_I then
!                   Write_Str ("   (homonym) chain ");
!                   Write_Name (Chars (Lim_Typ));
!                   Write_Eol;
!                end if;
              end if;
  
              Next_Entity (Lim_Typ);
--- 5354,5400 ----
                    --
                    --  [*] denotes the visible entity (Current_Entity)
  
!                   Prev := Current_Entity (Lim_Typ);
  
!                   while Present (Prev) loop
!                      --  This is a regular replacement
  
!                      if Prev = Typ
!                        or else (Ekind (Prev) = E_Incomplete_Type
!                                  and then Full_View (Prev) = Typ)
!                      then
!                         Replace (Prev, Lim_Typ);
  
!                         if Debug_Flag_I then
!                            Write_Str ("   (homonym) replace ");
!                            Write_Name (Chars (Typ));
!                            Write_Eol;
!                         end if;
  
!                         exit;
! 
!                      --  This is where E1 is replaced with E4
! 
!                      elsif Ekind (Prev) = E_Incomplete_Type
!                        and then From_Limited_With (Prev)
!                        and then
!                          Ekind (Non_Limited_View (Prev)) = E_Incomplete_Type
!                        and then Full_View (Non_Limited_View (Prev)) = Typ
!                      then
!                         Replace (Prev, Lim_Typ);
! 
!                         if Debug_Flag_I then
!                            Write_Str ("   (homonym) E1 -> E4 ");
!                            Write_Name (Chars (Typ));
!                            Write_Eol;
!                         end if;
! 
!                         exit;
!                      end if;
! 
!                      Prev := Homonym (Prev);
!                   end loop;
!                end;
              end if;
  
              Next_Entity (Lim_Typ);
*************** package body Sem_Ch10 is
*** 5311,5316 ****
--- 5487,5496 ----
        if Debug_Flag_I then
           if Private_Present (With_Clause) then
              Write_Str ("install private withed unit ");
+          elsif Parent_With (With_Clause) then
+             Write_Str ("install parent withed unit ");
+          elsif Implicit_With (With_Clause) then
+             Write_Str ("install implicit withed unit ");
           else
              Write_Str ("install withed unit ");
           end if;
*************** package body Sem_Ch10 is
*** 5827,5833 ****
              Mutate_Ekind (Shadow, Ekind (Ent));
           end if;
  
!          Set_Is_Internal       (Shadow);
           Set_From_Limited_With (Shadow);
  
           --  Add the new shadow entity to the limited view of the package
--- 6007,6014 ----
              Mutate_Ekind (Shadow, Ekind (Ent));
           end if;
  
!          Set_Is_Not_Self_Hidden (Shadow);
!          Set_Is_Internal (Shadow);
           Set_From_Limited_With (Shadow);
  
           --  Add the new shadow entity to the limited view of the package
*************** package body Sem_Ch10 is
*** 5894,5899 ****
--- 6075,6081 ----
        procedure Decorate_State (Ent : Entity_Id; Scop : Entity_Id) is
        begin
           Mutate_Ekind            (Ent, E_Abstract_State);
+          Set_Is_Not_Self_Hidden  (Ent);
           Set_Etype               (Ent, Standard_Void_Type);
           Set_Scope               (Ent, Scop);
           Set_Encapsulating_State (Ent, Empty);
*************** package body Sem_Ch10 is
*** 6254,6264 ****
              raise Program_Error;
        end case;
  
!       --  The withed unit may not be analyzed, but the with calause itself
        --  must be minimally decorated. This ensures that the checks on unused
        --  with clauses also process limieted withs.
  
        Mutate_Ekind (Pack, E_Package);
        Set_Etype (Pack, Standard_Void_Type);
  
        if Is_Entity_Name (Nam) then
--- 6436,6447 ----
              raise Program_Error;
        end case;
  
!       --  The withed unit may not be analyzed, but the with clause itself
        --  must be minimally decorated. This ensures that the checks on unused
        --  with clauses also process limieted withs.
  
        Mutate_Ekind (Pack, E_Package);
+       Set_Is_Not_Self_Hidden (Pack);
        Set_Etype (Pack, Standard_Void_Type);
  
        if Is_Entity_Name (Nam) then
*************** package body Sem_Ch10 is
*** 6650,6658 ****
           ------------------------------
  
           procedure Restore_Chain_For_Shadow (Shadow : Entity_Id) is
!             Is_E3 : Boolean;
              Prev  : Entity_Id;
-             Typ   : Entity_Id;
  
           begin
              --  If the package has incomplete types, the limited view of the
--- 6833,6842 ----
           ------------------------------
  
           procedure Restore_Chain_For_Shadow (Shadow : Entity_Id) is
!             Typ : constant Entity_Id := Non_Limited_View (Shadow);
!             pragma Assert (not In_Chain (Typ));
! 
              Prev  : Entity_Id;
  
           begin
              --  If the package has incomplete types, the limited view of the
*************** package body Sem_Ch10 is
*** 6661,6669 ****
              --  the incomplete type at stake. This in turn has a full view
              --  E3 that is the full declaration, with a corresponding
              --  shadow entity E4. When reinstalling the nonlimited view,
!             --  the nonvisible entity E1 is first replaced with E2, but then
!             --  E3 must *not* become the visible entity as it is replacing E4
!             --  in the homonyms list and simply be ignored.
              --
              --           regular views          limited views
              --
--- 6845,6852 ----
              --  the incomplete type at stake. This in turn has a full view
              --  E3 that is the full declaration, with a corresponding
              --  shadow entity E4. When reinstalling the nonlimited view,
!             --  the visible entity E4 is replaced directly with E2 in the
!             --  the homonyms list and E3 is simply ignored.
              --
              --           regular views          limited views
              --
*************** package body Sem_Ch10 is
*** 6676,6715 ****
              --
              --  [*] denotes the visible entity (Current_Entity)
  
!             Typ := Non_Limited_View (Shadow);
!             pragma Assert (not In_Chain (Typ));
  
!             Is_E3 := Nkind (Parent (Typ)) = N_Full_Type_Declaration
!               and then Present (Incomplete_View (Parent (Typ)));
  
!             Prev := Current_Entity (Shadow);
  
!             if Prev = Shadow then
!                if Is_E3 then
!                   Set_Name_Entity_Id (Chars (Prev), Homonym (Prev));
!                   return;
  
!                else
!                   Set_Current_Entity (Typ);
!                end if;
  
!             else
!                while Present (Homonym (Prev))
!                  and then Homonym (Prev) /= Shadow
!                loop
!                   Prev := Homonym (Prev);
!                end loop;
  
!                if Is_E3 then
!                   Set_Homonym (Prev, Homonym (Shadow));
!                   return;
  
!                else
!                   Set_Homonym (Prev, Typ);
                 end if;
-             end if;
  
!             Set_Homonym (Typ, Homonym (Shadow));
           end Restore_Chain_For_Shadow;
  
           --------------------
--- 6859,6900 ----
              --
              --  [*] denotes the visible entity (Current_Entity)
  
!             Prev := Current_Entity (Shadow);
  
!             while Present (Prev) loop
!                --  This is a regular replacement
  
!                if Prev = Shadow then
!                   Replace (Prev, Typ);
  
!                   if Debug_Flag_I then
!                      Write_Str ("   (homonym) replace ");
!                      Write_Name (Chars (Typ));
!                      Write_Eol;
!                   end if;
  
!                   exit;
  
!                --  This is where E4 is replaced with E2
  
!                elsif Ekind (Prev) = E_Incomplete_Type
!                  and then From_Limited_With (Prev)
!                  and then Ekind (Typ) = E_Incomplete_Type
!                  and then Full_View (Typ) = Non_Limited_View (Prev)
!                then
!                   Replace (Prev, Typ);
  
!                   if Debug_Flag_I then
!                      Write_Str ("   (homonym) E4 -> E2 ");
!                      Write_Name (Chars (Typ));
!                      Write_Eol;
!                   end if;
! 
!                   exit;
                 end if;
  
!                Prev := Homonym (Prev);
!             end loop;
           end Restore_Chain_For_Shadow;
  
           --------------------
*************** package body Sem_Ch10 is
*** 7012,7017 ****
--- 7197,7231 ----
     end sm;
  
     -------------
+    -- Replace --
+    -------------
+ 
+    procedure Replace (Old_E, New_E : Entity_Id) is
+       Prev : Entity_Id;
+ 
+    begin
+       Prev := Current_Entity (Old_E);
+ 
+       if No (Prev) then
+          return;
+ 
+       elsif Prev = Old_E then
+          Set_Current_Entity (New_E);
+          Set_Homonym (New_E, Homonym (Old_E));
+ 
+       else
+          while Present (Prev) and then Homonym (Prev) /= Old_E loop
+             Prev := Homonym (Prev);
+          end loop;
+ 
+          if Present (Prev) then
+             Set_Homonym (Prev, New_E);
+             Set_Homonym (New_E, Homonym (Old_E));
+          end if;
+       end if;
+    end Replace;
+ 
+    -------------
     -- Unchain --
     -------------
  
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch10.ads gcc-14.1.0/gcc/ada/sem_ch10.ads
*** gcc-13.2.0/gcc/ada/sem_ch10.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch10.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch11.adb gcc-14.1.0/gcc/ada/sem_ch11.adb
*** gcc-13.2.0/gcc/ada/sem_ch11.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch11.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch11 is
*** 70,78 ****
        Set_Is_Statically_Allocated (Id);
        Set_Is_Pure                 (Id, PF);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
     end Analyze_Exception_Declaration;
  
     --------------------------------
--- 70,76 ----
        Set_Is_Statically_Allocated (Id);
        Set_Is_Pure                 (Id, PF);
  
!       Analyze_Aspect_Specifications (N, Id);
     end Analyze_Exception_Declaration;
  
     --------------------------------
*************** package body Sem_Ch11 is
*** 120,126 ****
                 elsif Nkind (Id1) /= N_Others_Choice
                   and then
                     (Id_Entity = Entity (Id1)
!                      or else (Id_Entity = Renamed_Entity (Entity (Id1))))
                 then
                    if Handler /= Parent (Id) then
                       Error_Msg_Sloc := Sloc (Id1);
--- 118,124 ----
                 elsif Nkind (Id1) /= N_Others_Choice
                   and then
                     (Id_Entity = Entity (Id1)
!                      or else Id_Entity = Renamed_Entity (Entity (Id1)))
                 then
                    if Handler /= Parent (Id) then
                       Error_Msg_Sloc := Sloc (Id1);
*************** package body Sem_Ch11 is
*** 136,145 ****
                    end if;
                 end if;
  
!                Next_Non_Pragma (Id1);
              end loop;
  
!             Next (Handler);
           end loop;
        end Check_Duplication;
  
--- 134,143 ----
                    end if;
                 end if;
  
!                Next (Id1);
              end loop;
  
!             Next_Non_Pragma (Handler);
           end loop;
        end Check_Duplication;
  
*************** package body Sem_Ch11 is
*** 151,165 ****
           H : Node_Id;
  
        begin
!          H := First (L);
           while Present (H) loop
!             if Nkind (H) /= N_Pragma
!               and then Nkind (First (Exception_Choices (H))) = N_Others_Choice
!             then
                 return True;
              end if;
  
!             Next (H);
           end loop;
  
           return False;
--- 149,161 ----
           H : Node_Id;
  
        begin
!          H := First_Non_Pragma (L);
           while Present (H) loop
!             if Nkind (First (Exception_Choices (H))) = N_Others_Choice then
                 return True;
              end if;
  
!             Next_Non_Pragma (H);
           end loop;
  
           return False;
*************** package body Sem_Ch11 is
*** 234,239 ****
--- 230,236 ----
  
                 Enter_Name (Choice);
                 Mutate_Ekind (Choice, E_Variable);
+                Set_Is_Not_Self_Hidden (Choice);
  
                 if RTE_Available (RE_Exception_Occurrence) then
                    Set_Etype (Choice, RTE (RE_Exception_Occurrence));
*************** package body Sem_Ch11 is
*** 544,554 ****
              if Present (P) and then Nkind (P) = N_Assignment_Statement then
                 L := Name (P);
  
!                --  Give warning for assignment to scalar formal
  
!                if Is_Scalar_Type (Etype (L))
!                  and then Is_Entity_Name (L)
                   and then Is_Formal (Entity (L))
  
                   --  Do this only for parameters to the current subprogram.
                   --  This avoids some false positives for the nested case.
--- 541,552 ----
              if Present (P) and then Nkind (P) = N_Assignment_Statement then
                 L := Name (P);
  
!                --  Give warning for assignment to by-copy formal
  
!                if Is_Entity_Name (L)
                   and then Is_Formal (Entity (L))
+                  and then Is_By_Copy_Type (Etype (L))
+                  and then not Is_Aliased (Entity (L))
  
                   --  Do this only for parameters to the current subprogram.
                   --  This avoids some false positives for the nested case.
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch11.ads gcc-14.1.0/gcc/ada/sem_ch11.ads
*** gcc-13.2.0/gcc/ada/sem_ch11.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch11.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch12.adb gcc-14.1.0/gcc/ada/sem_ch12.adb
*** gcc-13.2.0/gcc/ada/sem_ch12.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch12.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch12 is
*** 261,269 ****
     --  as annotations:
  
     --     package                  subprogram [body]
!    --       Abstract_State           Contract_Cases
!    --       Initial_Condition        Depends
!    --       Initializes              Extensions_Visible
     --                                Global
     --     package body               Post
     --       Refined_State            Post_Class
--- 261,271 ----
     --  as annotations:
  
     --     package                  subprogram [body]
!    --       Abstract_State           Always_Terminates
!    --       Initial_Condition        Contract_Cases
!    --       Initializes              Depends
!    --                                Exceptional_Cases
!    --                                Extensions_Visible
     --                                Global
     --     package body               Post
     --       Refined_State            Post_Class
*************** package body Sem_Ch12 is
*** 580,585 ****
--- 582,594 ----
     --  Recurse on an actual that is a formal package whose declaration has
     --  a box.
  
+    function Component_Type_For_Private_View (T : Entity_Id) return Entity_Id;
+    --  Return the component type of array type T, with the following addition:
+    --  if this component type itself is an array type which has not been first
+    --  declared as private, then recurse on it. This makes it possible to deal
+    --  with arrays of arrays the same way as multi-dimensional arrays in the
+    --  mechanism handling private views.
+ 
     function Contains_Instance_Of
       (Inner : Entity_Id;
        Outer : Entity_Id;
*************** package body Sem_Ch12 is
*** 658,663 ****
--- 667,675 ----
     --  the instance and the generic, so that the back-end can establish the
     --  proper order of elaboration.
  
+    function Get_Associated_Entity (Id : Entity_Id) return Entity_Id;
+    --  Similar to Get_Associated_Node below, but for entities
+ 
     function Get_Associated_Node (N : Node_Id) return Node_Id;
     --  In order to propagate semantic information back from the analyzed copy
     --  to the original generic, we maintain links between selected nodes in the
*************** package body Sem_Ch12 is
*** 2457,2462 ****
--- 2469,2479 ----
          Make_Full_Type_Declaration (Loc,
            Defining_Identifier => T,
            Type_Definition     => Def));
+ 
+       --  Keep the aspects from the original node
+ 
+       Move_Aspects (Original_Node (N), N);
+ 
        Analyze (N);
        Set_Is_Generic_Type (T);
     end Analyze_Formal_Derived_Interface_Type;
*************** package body Sem_Ch12 is
*** 2507,2512 ****
--- 2524,2534 ----
        end if;
  
        Rewrite (N, New_N);
+ 
+       --  Keep the aspects from the original node
+ 
+       Move_Aspects (Original_Node (N), N);
+ 
        Analyze (N);
  
        if Unk_Disc then
*************** package body Sem_Ch12 is
*** 2519,2524 ****
--- 2541,2552 ----
           end if;
        end if;
  
+       if Subtype_Mark (Def) <= Empty_Or_Error then
+          pragma Assert (Serious_Errors_Detected > 0);
+          --  avoid passing bad argument to Entity
+          return;
+       end if;
+ 
        --  If the parent type has a known size, so does the formal, which makes
        --  legal representation clauses that involve the formal.
  
*************** package body Sem_Ch12 is
*** 2639,2644 ****
--- 2667,2677 ----
            Type_Definition     => Def);
  
        Rewrite (N, New_N);
+ 
+       --  Keep the aspects from the original node
+ 
+       Move_Aspects (Original_Node (N), N);
+ 
        Analyze (N);
        Set_Is_Generic_Type (T);
     end Analyze_Formal_Interface_Type;
*************** package body Sem_Ch12 is
*** 2805,2813 ****
           end if;
        end if;
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
  
        if Parent_Installed then
           Remove_Parent;
--- 2838,2844 ----
           end if;
        end if;
  
!       Analyze_Aspect_Specifications (N, Id);
  
        if Parent_Installed then
           Remove_Parent;
*************** package body Sem_Ch12 is
*** 3186,3191 ****
--- 3217,3223 ----
           Renaming_In_Par :=
             Make_Defining_Identifier (Loc, Chars (Gen_Unit));
           Mutate_Ekind (Renaming_In_Par, E_Package);
+          Set_Is_Not_Self_Hidden (Renaming_In_Par);
           Set_Etype (Renaming_In_Par, Standard_Void_Type);
           Set_Scope (Renaming_In_Par, Parent_Instance);
           Set_Parent (Renaming_In_Par, Parent (Formal));
*************** package body Sem_Ch12 is
*** 3260,3271 ****
        Set_Has_Completion (Pack_Id, True);
  
     <<Leave>>
!       if Has_Aspects (N) then
!          --  Unclear that any other aspects may appear here, analyze them
!          --  for completion, given that the grammar allows their appearance.
  
!          Analyze_Aspect_Specifications (N, Pack_Id);
!       end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Save_ISMP;
     end Analyze_Formal_Package_Declaration;
--- 3292,3301 ----
        Set_Has_Completion (Pack_Id, True);
  
     <<Leave>>
!       --  Unclear that any other aspects may appear here, analyze them
!       --  for completion, given that the grammar allows their appearance.
  
!       Analyze_Aspect_Specifications (N, Pack_Id);
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Save_ISMP;
     end Analyze_Formal_Package_Declaration;
*************** package body Sem_Ch12 is
*** 3580,3588 ****
        end if;
  
     <<Leave>>
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Nam);
!       end if;
  
        if Parent_Installed then
           Remove_Parent;
--- 3610,3616 ----
        end if;
  
     <<Leave>>
!       Analyze_Aspect_Specifications (N, Nam);
  
        if Parent_Installed then
           Remove_Parent;
*************** package body Sem_Ch12 is
*** 3676,3684 ****
           Validate_Formal_Type_Default (N);
        end if;
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, T);
!       end if;
  
        if Parent_Installed then
           Remove_Parent;
--- 3704,3710 ----
           Validate_Formal_Type_Default (N);
        end if;
  
!       Analyze_Aspect_Specifications (N, T);
  
        if Parent_Installed then
           Remove_Parent;
*************** package body Sem_Ch12 is
*** 3826,3836 ****
        Set_Parent_Spec (New_N, Save_Parent);
        Rewrite (N, New_N);
  
-       --  Once the contents of the generic copy and the template are swapped,
-       --  do the same for their respective aspect specifications.
- 
-       Exchange_Aspects (N, New_N);
- 
        --  Collect all contract-related source pragmas found within the template
        --  and attach them to the contract of the package spec. This contract is
        --  used in the capture of global references within annotations.
--- 3852,3857 ----
*************** package body Sem_Ch12 is
*** 3846,3851 ****
--- 3867,3873 ----
  
        Enter_Name (Id);
        Mutate_Ekind (Id, E_Generic_Package);
+       Set_Is_Not_Self_Hidden (Id);
        Set_Etype (Id, Standard_Void_Type);
  
        --  Set SPARK_Mode from context
*************** package body Sem_Ch12 is
*** 3867,3875 ****
        --  Analyze aspects now, so that generated pragmas appear in the
        --  declarations before building and analyzing the generic copy.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
  
        Push_Scope (Id);
        Enter_Generic_Scope (Id);
--- 3889,3895 ----
        --  Analyze aspects now, so that generated pragmas appear in the
        --  declarations before building and analyzing the generic copy.
  
!       Analyze_Aspect_Specifications (N, Id);
  
        Push_Scope (Id);
        Enter_Generic_Scope (Id);
*************** package body Sem_Ch12 is
*** 3989,3999 ****
        Set_Parent_Spec (New_N, Save_Parent);
        Rewrite (N, New_N);
  
-       --  Once the contents of the generic copy and the template are swapped,
-       --  do the same for their respective aspect specifications.
- 
-       Exchange_Aspects (N, New_N);
- 
        --  Collect all contract-related source pragmas found within the template
        --  and attach them to the contract of the subprogram spec. This contract
        --  is used in the capture of global references within annotations.
--- 4009,4014 ----
*************** package body Sem_Ch12 is
*** 4093,4104 ****
           Set_Etype (Id, Standard_Void_Type);
        end if;
  
        --  Analyze the aspects of the generic copy to ensure that all generated
        --  pragmas (if any) perform their semantic effects.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
  
        --  For a library unit, we have reconstructed the entity for the unit,
        --  and must reset it in the library tables. We also make sure that
--- 4108,4119 ----
           Set_Etype (Id, Standard_Void_Type);
        end if;
  
+       Set_Is_Not_Self_Hidden (Id);
+ 
        --  Analyze the aspects of the generic copy to ensure that all generated
        --  pragmas (if any) perform their semantic effects.
  
!       Analyze_Aspect_Specifications (N, Id);
  
        --  For a library unit, we have reconstructed the entity for the unit,
        --  and must reset it in the library tables. We also make sure that
*************** package body Sem_Ch12 is
*** 4336,4341 ****
--- 4351,4357 ----
  
        Generate_Definition (Act_Decl_Id);
        Mutate_Ekind (Act_Decl_Id, E_Package);
+       Set_Is_Not_Self_Hidden (Act_Decl_Id);
  
        --  Initialize list of incomplete actuals before analysis
  
*************** package body Sem_Ch12 is
*** 4788,4878 ****
              Needs_Body := False;
           end if;
  
           if Needs_Body then
!             --  Indicate that the enclosing scopes contain an instantiation,
!             --  and that cleanup actions should be delayed until after the
!             --  instance body is expanded.
  
!             Check_Forward_Instantiation (Gen_Decl);
!             if Nkind (N) = N_Package_Instantiation then
!                declare
!                   Enclosing_Master : Entity_Id;
  
!                begin
!                   --  Loop to search enclosing masters
  
!                   Enclosing_Master := Current_Scope;
!                   Scope_Loop : while Enclosing_Master /= Standard_Standard loop
!                      if Ekind (Enclosing_Master) = E_Package then
!                         if Is_Compilation_Unit (Enclosing_Master) then
!                            if In_Package_Body (Enclosing_Master) then
!                               Set_Delay_Subprogram_Descriptors
!                                 (Body_Entity (Enclosing_Master));
!                            else
!                               Set_Delay_Subprogram_Descriptors
!                                 (Enclosing_Master);
!                            end if;
  
!                            exit Scope_Loop;
  
!                         else
!                            Enclosing_Master := Scope (Enclosing_Master);
!                         end if;
  
!                      elsif Is_Generic_Unit (Enclosing_Master)
!                        or else Ekind (Enclosing_Master) = E_Void
!                      then
!                         --  Cleanup actions will eventually be performed on the
!                         --  enclosing subprogram or package instance, if any.
!                         --  Enclosing scope is void in the formal part of a
!                         --  generic subprogram.
  
!                         exit Scope_Loop;
  
!                      else
!                         if Ekind (Enclosing_Master) = E_Entry
!                           and then
!                             Ekind (Scope (Enclosing_Master)) = E_Protected_Type
!                         then
!                            if not Expander_Active then
!                               exit Scope_Loop;
                             else
!                               Enclosing_Master :=
!                                 Protected_Body_Subprogram (Enclosing_Master);
                             end if;
-                         end if;
- 
-                         Set_Delay_Cleanups (Enclosing_Master);
  
!                         while Ekind (Enclosing_Master) = E_Block loop
!                            Enclosing_Master := Scope (Enclosing_Master);
!                         end loop;
! 
!                         if Is_Subprogram (Enclosing_Master) then
!                            Set_Delay_Subprogram_Descriptors (Enclosing_Master);
  
!                         elsif Is_Task_Type (Enclosing_Master) then
!                            declare
!                               TBP : constant Node_Id :=
!                                       Get_Task_Body_Procedure
!                                         (Enclosing_Master);
!                            begin
!                               if Present (TBP) then
!                                  Set_Delay_Subprogram_Descriptors (TBP);
!                                  Set_Delay_Cleanups (TBP);
!                               end if;
!                            end;
                          end if;
  
!                         exit Scope_Loop;
!                      end if;
!                   end loop Scope_Loop;
!                end;
  
!                --  Make entry in table
  
!                Add_Pending_Instantiation (N, Act_Decl);
!             end if;
           end if;
  
           Set_Categorization_From_Pragmas (Act_Decl);
--- 4804,4868 ----
              Needs_Body := False;
           end if;
  
+          --  If the context requires a full instantiation, set things up for
+          --  subsequent construction of the body.
+ 
           if Needs_Body then
!             declare
!                Fin_Scop, S : Entity_Id;
  
!             begin
!                Check_Forward_Instantiation (Gen_Decl);
  
!                Fin_Scop := Empty;
  
!                --  For a package instantiation that is not a compilation unit,
!                --  indicate that cleanup actions of the innermost enclosing
!                --  scope for which they are generated should be delayed until
!                --  after the package body is instantiated.
  
!                if Nkind (N) = N_Package_Instantiation
!                  and then not Is_Compilation_Unit (Act_Decl_Id)
!                then
!                   S := Current_Scope;
  
!                   while S /= Standard_Standard loop
!                      --  Cleanup actions are not generated within generic units
!                      --  or in the formal part of generic units.
  
!                      if not Expander_Active then
!                         exit;
  
!                      --  For package scopes, cleanup actions are generated only
!                      --  for compilation units, for spec and body separately.
  
!                      elsif Ekind (S) = E_Package then
!                         if Is_Compilation_Unit (S) then
!                            if In_Package_Body (S) then
!                               Fin_Scop := Body_Entity (S);
                             else
!                               Fin_Scop := S;
                             end if;
  
!                            Set_Delay_Cleanups (Fin_Scop);
!                            exit;
  
!                         else
!                            S := Scope (S);
                          end if;
  
!                      --  Cleanup actions are generated for all dynamic scopes
  
!                      else
!                         Fin_Scop := S;
!                         Set_Delay_Cleanups (Fin_Scop);
!                         exit;
!                      end if;
!                   end loop;
!                end if;
  
!                Add_Pending_Instantiation (N, Act_Decl, Fin_Scop);
!             end;
           end if;
  
           Set_Categorization_From_Pragmas (Act_Decl);
*************** package body Sem_Ch12 is
*** 4956,4964 ****
              --  take into account categorization pragmas before analyzing the
              --  instance.
  
!             if Has_Aspects (N) then
!                Analyze_Aspect_Specifications (N, Act_Decl_Id);
!             end if;
  
              Analyze (Act_Decl);
              Set_Unit (Parent (N), N);
--- 4946,4952 ----
              --  take into account categorization pragmas before analyzing the
              --  instance.
  
!             Analyze_Aspect_Specifications (N, Act_Decl_Id);
  
              Analyze (Act_Decl);
              Set_Unit (Parent (N), N);
*************** package body Sem_Ch12 is
*** 5002,5011 ****
           Set_First_Private_Entity (Defining_Unit_Name (Unit_Renaming),
             First_Private_Entity (Act_Decl_Id));
  
!          --  If the instantiation will receive a body, the unit will be
!          --  transformed into a package body, and receive its own elaboration
!          --  entity. Otherwise, the nature of the unit is now a package
!          --  declaration.
  
           if Nkind (Parent (N)) = N_Compilation_Unit
             and then not Needs_Body
--- 4990,5001 ----
           Set_First_Private_Entity (Defining_Unit_Name (Unit_Renaming),
             First_Private_Entity (Act_Decl_Id));
  
!          --  If the instantiation needs a body, the unit will be turned into
!          --  a package body and receive its own elaboration entity. Otherwise,
!          --  the nature of the unit is now a package declaration.
! 
!          --  Note that the below rewriting means that Act_Decl, which has been
!          --  analyzed and expanded, will be re-expanded as the rewritten N.
  
           if Nkind (Parent (N)) = N_Compilation_Unit
             and then not Needs_Body
*************** package body Sem_Ch12 is
*** 5069,5075 ****
        end if;
  
     <<Leave>>
!       if Has_Aspects (N) and then Nkind (Parent (N)) /= N_Compilation_Unit then
           Analyze_Aspect_Specifications (N, Act_Decl_Id);
        end if;
  
--- 5059,5065 ----
        end if;
  
     <<Leave>>
!       if Nkind (Parent (N)) /= N_Compilation_Unit then
           Analyze_Aspect_Specifications (N, Act_Decl_Id);
        end if;
  
*************** package body Sem_Ch12 is
*** 5269,5279 ****
  
           Instantiate_Package_Body
             (Body_Info =>
!              ((Act_Decl                 => Act_Decl,
                 Config_Switches          => Config_Attrs,
                 Current_Sem_Unit         => Current_Sem_Unit,
                 Expander_Status          => Expander_Active,
-                Inst_Node                => N,
                 Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                 Scope_Suppress           => Scope_Suppress,
                 Warnings                 => Save_Warnings)),
--- 5259,5270 ----
  
           Instantiate_Package_Body
             (Body_Info =>
!              ((Inst_Node                => N,
!                Act_Decl                 => Act_Decl,
!                Fin_Scop                 => Empty,
                 Config_Switches          => Config_Attrs,
                 Current_Sem_Unit         => Current_Sem_Unit,
                 Expander_Status          => Expander_Active,
                 Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                 Scope_Suppress           => Scope_Suppress,
                 Warnings                 => Save_Warnings)),
*************** package body Sem_Ch12 is
*** 5324,5330 ****
                    Par : Entity_Id;
                 begin
                    Par := Scope (Curr_Scope);
!                   while (Present (Par)) and then Par /= Standard_Standard loop
                       Install_Private_Declarations (Par);
                       Par := Scope (Par);
                    end loop;
--- 5315,5321 ----
                    Par : Entity_Id;
                 begin
                    Par := Scope (Curr_Scope);
!                   while Present (Par) and then Par /= Standard_Standard loop
                       Install_Private_Declarations (Par);
                       Par := Scope (Par);
                    end loop;
*************** package body Sem_Ch12 is
*** 5383,5393 ****
        else
           Instantiate_Package_Body
             (Body_Info =>
!              ((Act_Decl                 => Act_Decl,
                 Config_Switches          => Save_Config_Switches,
                 Current_Sem_Unit         => Current_Sem_Unit,
                 Expander_Status          => Expander_Active,
-                Inst_Node                => N,
                 Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                 Scope_Suppress           => Scope_Suppress,
                 Warnings                 => Save_Warnings)),
--- 5374,5385 ----
        else
           Instantiate_Package_Body
             (Body_Info =>
!              ((Inst_Node                => N,
!                Act_Decl                 => Act_Decl,
!                Fin_Scop                 => Empty,
                 Config_Switches          => Save_Config_Switches,
                 Current_Sem_Unit         => Current_Sem_Unit,
                 Expander_Status          => Expander_Active,
                 Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                 Scope_Suppress           => Scope_Suppress,
                 Warnings                 => Save_Warnings)),
*************** package body Sem_Ch12 is
*** 6131,6136 ****
--- 6123,6147 ----
           Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
     end Analyze_Subprogram_Instantiation;
  
+    ---------------------------
+    -- Get_Associated_Entity --
+    ---------------------------
+ 
+    function Get_Associated_Entity (Id : Entity_Id) return Entity_Id is
+       Assoc : Entity_Id;
+ 
+    begin
+       Assoc := Associated_Entity (Id);
+ 
+       if Present (Assoc) then
+          while Present (Associated_Entity (Assoc)) loop
+             Assoc := Associated_Entity (Assoc);
+          end loop;
+       end if;
+ 
+       return Assoc;
+    end Get_Associated_Entity;
+ 
     -------------------------
     -- Get_Associated_Node --
     -------------------------
*************** package body Sem_Ch12 is
*** 6338,6351 ****
  
        Rewrite (N, Act_Body);
  
-       --  Propagate the aspect specifications from the package body template to
-       --  the instantiated version of the package body.
- 
-       if Has_Aspects (Act_Body) then
-          Set_Aspect_Specifications
-            (N, New_Copy_List_Tree (Aspect_Specifications (Act_Body)));
-       end if;
- 
        Body_Cunit := Parent (N);
  
        --  The two compilation unit nodes are linked by the Library_Unit field
--- 6349,6354 ----
*************** package body Sem_Ch12 is
*** 6976,6983 ****
       (Instance      : Entity_Id;
        Is_Formal_Box : Boolean)
     is
!       E      : Entity_Id;
        Astype : Entity_Id;
  
     begin
        E := First_Entity (Instance);
--- 6979,7077 ----
       (Instance      : Entity_Id;
        Is_Formal_Box : Boolean)
     is
!       Gen_Id : constant Entity_Id
!         := (if Is_Generic_Unit (Instance) then
!               Instance
!             elsif Is_Wrapper_Package (Instance) then
!               Generic_Parent
!                 (Specification
!                   (Unit_Declaration_Node (Related_Instance (Instance))))
!             else
!               Generic_Parent (Package_Specification (Instance)));
!       --  The generic unit
! 
!       Parent_Scope : constant Entity_Id := Scope (Gen_Id);
!       --  The enclosing scope of the generic unit
! 
!       procedure Check_Actual_Type (Typ : Entity_Id);
!       --  If the type of the actual is a private type declared in the enclosing
!       --  scope of the generic, either directly or through packages nested in
!       --  bodies, but not a derived type of a private type declared elsewhere,
!       --  then the body of the generic sees the full view of the type because
!       --  it has to appear in the package body. If the type is private now then
!       --  exchange views to restore the proper visibility in the instance.
! 
!       -----------------------
!       -- Check_Actual_Type --
!       -----------------------
! 
!       procedure Check_Actual_Type (Typ : Entity_Id) is
!          Btyp : constant Entity_Id := Base_Type (Typ);
! 
!          function Scope_Within_Body_Or_Same
!            (Inner : Entity_Id;
!             Outer : Entity_Id) return Boolean;
!          --  Determine whether scope Inner is within the body of scope Outer
!          --  or is Outer itself.
! 
!          -------------------------------
!          -- Scope_Within_Body_Or_Same --
!          -------------------------------
! 
!          function Scope_Within_Body_Or_Same
!            (Inner : Entity_Id;
!             Outer : Entity_Id) return Boolean
!          is
!             Curr : Entity_Id := Inner;
! 
!          begin
!             while Curr /= Standard_Standard loop
!                if Curr = Outer then
!                   return True;
! 
!                elsif Is_Package_Body_Entity (Curr) then
!                   Curr := Scope (Curr);
! 
!                else
!                   exit;
!                end if;
!             end loop;
! 
!             return False;
!          end Scope_Within_Body_Or_Same;
! 
!       begin
!          --  The exchange is only needed if the generic is defined
!          --  within a package which is not a common ancestor of the
!          --  scope of the instance, and is not already in scope.
! 
!          if Is_Private_Type (Btyp)
!            and then not Has_Private_Ancestor (Btyp)
!            and then Ekind (Parent_Scope) in E_Package | E_Generic_Package
!            and then Scope_Within_Body_Or_Same (Parent_Scope, Scope (Btyp))
!            and then Parent_Scope /= Scope (Instance)
!            and then not Is_Child_Unit (Gen_Id)
!          then
!             Switch_View (Btyp);
! 
!             --  If the type of the entity is a subtype, it may also have
!             --  to be made visible, together with the base type of its
!             --  full view, after exchange.
! 
!             if Is_Private_Type (Typ) then
!                Switch_View (Typ);
!                Switch_View (Base_Type (Typ));
!             end if;
!          end if;
!       end Check_Actual_Type;
! 
!       --  Local variables
! 
        Astype : Entity_Id;
+       E      : Entity_Id;
+       Formal : Node_Id;
+ 
+    --  Start of processing for Check_Generic_Actuals
  
     begin
        E := First_Entity (Instance);
*************** package body Sem_Ch12 is
*** 6987,6996 ****
             and then Scope (Etype (E)) /= Instance
             and then Is_Entity_Name (Subtype_Indication (Parent (E)))
           then
!             --  Restore the proper view of the actual from the information
!             --  saved earlier by Instantiate_Type.
  
!             Check_Private_View (Subtype_Indication (Parent (E)));
  
              --  If the actual is itself the formal of a parent instance,
              --  then also restore the proper view of its actual and so on.
--- 7081,7107 ----
             and then Scope (Etype (E)) /= Instance
             and then Is_Entity_Name (Subtype_Indication (Parent (E)))
           then
!             declare
!                Indic : constant Node_Id := Subtype_Indication (Parent (E));
  
!             begin
!                --  Restore the proper view of the actual from the information
!                --  saved earlier by Instantiate_Type.
! 
!                Check_Private_View (Indic);
! 
!                --  If this view is an array type, check its component type.
!                --  This handles the case of an array type whose component
!                --  type is private, used as the actual in an instantiation
!                --  of a generic construct declared in the same package as
!                --  the component type and taking an array type with this
!                --  component type as formal type parameter.
! 
!                if Is_Array_Type (Etype (Indic)) then
!                   Check_Actual_Type
!                     (Component_Type_For_Private_View (Etype (Indic)));
!                end if;
!             end;
  
              --  If the actual is itself the formal of a parent instance,
              --  then also restore the proper view of its actual and so on.
*************** package body Sem_Ch12 is
*** 7095,7154 ****
              Set_Is_Hidden (E, False);
           end if;
  
!          if Ekind (E) = E_Constant then
! 
!             --  If the type of the actual is a private type declared in the
!             --  enclosing scope of the generic unit, the body of the generic
!             --  sees the full view of the type (because it has to appear in
!             --  the corresponding package body). If the type is private now,
!             --  exchange views to restore the proper visiblity in the instance.
! 
!             declare
!                Typ : constant Entity_Id := Base_Type (Etype (E));
!                --  The type of the actual
! 
!                Gen_Id : Entity_Id;
!                --  The generic unit
! 
!                Parent_Scope : Entity_Id;
!                --  The enclosing scope of the generic unit
! 
!             begin
!                if Is_Wrapper_Package (Instance) then
!                   Gen_Id :=
!                     Generic_Parent
!                       (Specification
!                         (Unit_Declaration_Node
!                           (Related_Instance (Instance))));
!                else
!                   Gen_Id :=
!                     Generic_Parent (Package_Specification (Instance));
!                end if;
! 
!                Parent_Scope := Scope (Gen_Id);
  
!                --  The exchange is only needed if the generic is defined
!                --  within a package which is not a common ancestor of the
!                --  scope of the instance, and is not already in scope.
  
!                if Is_Private_Type (Typ)
!                  and then Scope (Typ) = Parent_Scope
!                  and then Scope (Instance) /= Parent_Scope
!                  and then Ekind (Parent_Scope) = E_Package
!                  and then not Is_Child_Unit (Gen_Id)
!                then
!                   Switch_View (Typ);
  
!                   --  If the type of the entity is a subtype, it may also have
!                   --  to be made visible, together with the base type of its
!                   --  full view, after exchange.
  
!                   if Is_Private_Type (Etype (E)) then
!                      Switch_View (Etype (E));
!                      Switch_View (Base_Type (Etype (E)));
!                   end if;
!                end if;
!             end;
           end if;
  
           Next_Entity (E);
--- 7206,7232 ----
              Set_Is_Hidden (E, False);
           end if;
  
!          --  Check directly the type of the actual objects, including the
!          --  component type for array types.
  
!          if Ekind (E) in E_Constant | E_Variable then
!             Check_Actual_Type (Etype (E));
  
!             if Is_Array_Type (Etype (E)) then
!                Check_Actual_Type (Component_Type (Etype (E)));
!             end if;
  
!          --  As well as the type of formal parameters of actual subprograms
  
!          elsif Ekind (E) in E_Function | E_Procedure
!            and then Is_Generic_Actual_Subprogram (E)
!            and then Present (Alias (E))
!          then
!             Formal := First_Formal (Alias (E));
!             while Present (Formal) loop
!                Check_Actual_Type (Etype (Formal));
!                Next_Formal (Formal);
!             end loop;
           end if;
  
           Next_Entity (E);
*************** package body Sem_Ch12 is
*** 7166,7172 ****
        Loc      : constant Source_Ptr := Sloc (Gen_Id);
        Gen_Par  : Entity_Id := Empty;
        E        : Entity_Id;
!       Inst_Par : Entity_Id;
        S        : Node_Id;
  
        function Find_Generic_Child
--- 7244,7250 ----
        Loc      : constant Source_Ptr := Sloc (Gen_Id);
        Gen_Par  : Entity_Id := Empty;
        E        : Entity_Id;
!       Inst_Par : Entity_Id := Empty;
        S        : Node_Id;
  
        function Find_Generic_Child
*************** package body Sem_Ch12 is
*** 7372,7387 ****
                 --  the instance of Gpar, so this is illegal. The test below
                 --  recognizes this particular case.
  
!                if Is_Child_Unit (E)
!                  and then not Comes_From_Source (Entity (Prefix (Gen_Id)))
!                  and then (not In_Instance
!                             or else Nkind (Parent (Parent (Gen_Id))) =
!                                                          N_Compilation_Unit)
!                then
!                   Error_Msg_N
!                     ("prefix of generic child unit must be instance of parent",
!                       Gen_Id);
!                end if;
  
                 if not In_Open_Scopes (Inst_Par)
                   and then Nkind (Parent (Gen_Id)) not in
--- 7450,7539 ----
                 --  the instance of Gpar, so this is illegal. The test below
                 --  recognizes this particular case.
  
!                declare
!                   --  We want to reject the final instantiation in
!                   --    generic package G1 is end G1;
!                   --    generic package G1.G2 is end G1.G2;
!                   --    with G1; package I1 is new G1;
!                   --    with G1.G2; package I1.I2 is new G1.G2;
!                   --  because the use of G1.G2 should instead be either
!                   --  I1.G2 or simply G2. However, the tree that is built
!                   --  in this case is wrong. In the expanded copy
!                   --  of G2, we need (and therefore generate) a renaming
!                   --    package G1 renames I1;
!                   --  but this renaming should not participate in resolving
!                   --  this occurrence of the name "G1.G2"; unfortunately,
!                   --  it does. Rather than correct this error, we compensate
!                   --  for it in this function.
!                   --
!                   --  We also perform another adjustment here. If we are
!                   --  currently inside a generic package, then that
!                   --  generic package needs to be treated as a package.
!                   --  For example, if a generic Aaa declares a nested generic
!                   --  Bbb (perhaps as a child unit) then Aaa can also legally
!                   --  declare an instance of Aaa.Bbb.
! 
!                   function Adjusted_Inst_Par_Ekind return Entity_Kind;
! 
!                   -----------------------------
!                   -- Adjusted_Inst_Par_Ekind --
!                   -----------------------------
! 
!                   function Adjusted_Inst_Par_Ekind return Entity_Kind is
!                      Prefix_Entity   : Entity_Id;
!                      Inst_Par_GP     : Node_Id;
!                      Inst_Par_Parent : Node_Id := Parent (Inst_Par);
!                   begin
!                      if Nkind (Inst_Par_Parent) = N_Defining_Program_Unit_Name
!                      then
!                         Inst_Par_Parent := Parent (Inst_Par_Parent);
!                      end if;
! 
!                      Inst_Par_GP := Generic_Parent (Inst_Par_Parent);
! 
!                      if Nkind (Gen_Id) = N_Expanded_Name
!                        and then Present (Inst_Par_GP)
!                        and then Ekind (Inst_Par_GP) = E_Generic_Package
!                      then
!                         Prefix_Entity := Entity (Prefix (Gen_Id));
! 
!                         if Present (Prefix_Entity)
!                            and then not Comes_From_Source (Prefix_Entity)
!                            and then Nkind (Parent (Prefix_Entity)) =
!                                       N_Package_Renaming_Declaration
!                            and then Chars (Prefix_Entity) = Chars (Inst_Par_GP)
!                         then
!                            return E_Generic_Package;
!                         end if;
!                      end if;
! 
!                      if Ekind (Inst_Par) = E_Generic_Package
!                        and then In_Open_Scopes (Inst_Par)
!                      then
!                         --  If we are inside a generic package then
!                         --  treat it as a package.
!                         return E_Package;
!                      end if;
! 
!                      --  The usual path
!                      return Ekind (Inst_Par);
!                   end Adjusted_Inst_Par_Ekind;
! 
!                begin
!                   if Is_Child_Unit (E)
!                     and then (No (Inst_Par)
!                               or else Adjusted_Inst_Par_Ekind =
!                                       E_Generic_Package)
!                     and then (not In_Instance
!                               or else Nkind (Parent (Parent (Gen_Id))) =
!                                         N_Compilation_Unit)
!                   then
!                      Error_Msg_N
!                        ("prefix of generic child unit must be " &
!                           "instance of parent",
!                         Gen_Id);
!                   end if;
!                end;
  
                 if not In_Open_Scopes (Inst_Par)
                   and then Nkind (Parent (Gen_Id)) not in
*************** package body Sem_Ch12 is
*** 7614,7659 ****
     ------------------------
  
     procedure Check_Private_View (N : Node_Id) is
!       T : constant Entity_Id := Etype (N);
!       BT : Entity_Id;
  
!    begin
!       --  Exchange views if the type was not private in the generic but is
!       --  private at the point of instantiation. Do not exchange views if
!       --  the scope of the type is in scope. This can happen if both generic
!       --  and instance are sibling units, or if type is defined in a parent.
!       --  In this case the visibility of the type will be correct for all
!       --  semantic checks.
  
!       if Present (T) then
!          BT := Base_Type (T);
  
           if Is_Private_Type (T)
-            and then not Has_Private_View (N)
             and then Present (Full_View (T))
             and then not In_Open_Scopes (Scope (T))
           then
-             --  In the generic, the full declaration was visible
- 
              Switch_View (T);
  
!          elsif Has_Private_View (N)
!            and then not Is_Private_Type (T)
!            and then not Has_Been_Exchanged (T)
!            and then (not In_Open_Scopes (Scope (T))
!                       or else Nkind (Parent (N)) = N_Subtype_Declaration)
!          then
!             --  In the generic, only the private declaration was visible
! 
!             --  If the type appears in a subtype declaration, the subtype in
!             --  instance must have a view compatible with that of its parent,
!             --  which must be exchanged (see corresponding code in Restore_
!             --  Private_Views) so we make an exception to the open scope rule.
! 
!             Prepend_Elmt (T, Exchanged_Views);
!             Exchange_Declarations (Etype (Get_Associated_Node (N)));
! 
!          --  Finally, a non-private subtype may have a private base type, which
           --  must be exchanged for consistency. This can happen when a package
           --  body is instantiated, when the scope stack is empty but in fact
           --  the subtype and the base type are declared in an enclosing scope.
--- 7766,7803 ----
     ------------------------
  
     procedure Check_Private_View (N : Node_Id) is
!       Comparison : constant Boolean := Nkind (N) in N_Op_Compare;
!       Typ        : constant Entity_Id :=
!         (if Comparison then Compare_Type (N) else Etype (N));
  
!       procedure Check_Private_Type (T : Entity_Id; Private_View : Boolean);
!       --  Check that the available view of T matches Private_View and, if not,
!       --  switch the view of T or of its base type.
  
!       procedure Check_Private_Type (T : Entity_Id; Private_View : Boolean) is
!          BT : constant Entity_Id := Base_Type (T);
! 
!       begin
!          --  If the full declaration was not visible in the generic, stop here
! 
!          if Private_View then
!             return;
!          end if;
! 
!          --  Exchange views if the type was not private in the generic but is
!          --  private at the point of instantiation. Do not exchange views if
!          --  the scope of the type is in scope. This can happen if both generic
!          --  and instance are sibling units, or if type is defined in a parent.
!          --  In this case the visibility of the type will be correct for all
!          --  semantic checks.
  
           if Is_Private_Type (T)
             and then Present (Full_View (T))
             and then not In_Open_Scopes (Scope (T))
           then
              Switch_View (T);
  
!          --  Finally, a nonprivate subtype may have a private base type, which
           --  must be exchanged for consistency. This can happen when a package
           --  body is instantiated, when the scope stack is empty but in fact
           --  the subtype and the base type are declared in an enclosing scope.
*************** package body Sem_Ch12 is
*** 7665,7679 ****
           --  provision for that case in Switch_View).
  
           elsif not Is_Private_Type (T)
-            and then not Has_Private_View (N)
             and then Is_Private_Type (BT)
             and then Present (Full_View (BT))
-            and then not Is_Generic_Type (BT)
             and then not In_Open_Scopes (BT)
           then
              Prepend_Elmt (Full_View (BT), Exchanged_Views);
              Exchange_Declarations (BT);
           end if;
        end if;
     end Check_Private_View;
  
--- 7809,7878 ----
           --  provision for that case in Switch_View).
  
           elsif not Is_Private_Type (T)
             and then Is_Private_Type (BT)
             and then Present (Full_View (BT))
             and then not In_Open_Scopes (BT)
           then
              Prepend_Elmt (Full_View (BT), Exchanged_Views);
              Exchange_Declarations (BT);
           end if;
+       end Check_Private_Type;
+ 
+    begin
+       if Present (Typ) then
+          --  If the type appears in a subtype declaration, the subtype in
+          --  instance must have a view compatible with that of its parent,
+          --  which must be exchanged (see corresponding code in Restore_
+          --  Private_Views) so we make an exception to the open scope rule
+          --  implemented by Check_Private_Type above.
+ 
+          if Has_Private_View (N)
+            and then not Is_Private_Type (Typ)
+            and then not Has_Been_Exchanged (Typ)
+            and then (not In_Open_Scopes (Scope (Typ))
+                       or else Nkind (Parent (N)) = N_Subtype_Declaration)
+          then
+             declare
+                Assoc : constant Node_Id := Get_Associated_Node (N);
+ 
+             begin
+                --  In the generic, only the private declaration was visible
+ 
+                Prepend_Elmt (Typ, Exchanged_Views);
+                Exchange_Declarations
+                  (if Comparison then Compare_Type (Assoc) else Etype (Assoc));
+             end;
+ 
+          --  Check that the available views of Typ match their respective flag.
+          --  Note that the type of a visible discriminant is never private.
+ 
+          else
+             Check_Private_Type (Typ, Has_Private_View (N));
+ 
+             if Is_Access_Type (Typ) then
+                Check_Private_Type
+                  (Designated_Type (Typ), Has_Secondary_Private_View (N));
+ 
+             elsif Is_Array_Type (Typ) then
+                Check_Private_Type
+                  (Component_Type_For_Private_View (Typ),
+                   Has_Secondary_Private_View (N));
+ 
+             elsif (Is_Record_Type (Typ) or else Is_Concurrent_Type (Typ))
+               and then Has_Discriminants (Typ)
+             then
+                declare
+                   Disc : Entity_Id;
+ 
+                begin
+                   Disc := First_Discriminant (Typ);
+                   while Present (Disc) loop
+                      Check_Private_Type (Etype (Disc), False);
+                      Next_Discriminant (Disc);
+                   end loop;
+                end;
+             end if;
+          end if;
        end if;
     end Check_Private_View;
  
*************** package body Sem_Ch12 is
*** 7719,7724 ****
--- 7918,7938 ----
        return Result;
     end Check_Hidden_Primitives;
  
+    -------------------------------------
+    -- Component_Type_For_Private_View --
+    -------------------------------------
+ 
+    function Component_Type_For_Private_View (T : Entity_Id) return Entity_Id is
+       Typ : constant Entity_Id := Component_Type (T);
+ 
+    begin
+       if Is_Array_Type (Typ) and then not Has_Private_Declaration (Typ) then
+          return Component_Type_For_Private_View (Typ);
+       else
+          return Typ;
+       end if;
+    end Component_Type_For_Private_View;
+ 
     --------------------------
     -- Contains_Instance_Of --
     --------------------------
*************** package body Sem_Ch12 is
*** 7939,7952 ****
  
        New_N := New_Copy (N);
  
-       --  Copy aspects if present
- 
-       if Has_Aspects (N) then
-          Set_Has_Aspects (New_N, False);
-          Set_Aspect_Specifications
-            (New_N, Copy_Generic_List (Aspect_Specifications (N), Parent_Id));
-       end if;
- 
        --  If we are instantiating, we want to adjust the sloc based on the
        --  current S_Adjustment. However, if this is the root node of a subunit,
        --  we need to defer that adjustment to below (see "elsif Instantiating
--- 8153,8158 ----
*************** package body Sem_Ch12 is
*** 7966,7976 ****
  
        --  Special casing for identifiers and other entity names and operators
  
!       if Nkind (New_N) in N_Character_Literal
!                         | N_Expanded_Name
!                         | N_Identifier
!                         | N_Operator_Symbol
!                         | N_Op
        then
           if not Instantiating then
  
--- 8172,8182 ----
  
        --  Special casing for identifiers and other entity names and operators
  
!       if Nkind (N) in N_Character_Literal
!                     | N_Expanded_Name
!                     | N_Identifier
!                     | N_Operator_Symbol
!                     | N_Op
        then
           if not Instantiating then
  
*************** package body Sem_Ch12 is
*** 8049,8165 ****
                       Set_Entity (New_N, Entity (Assoc));
                       Check_Private_View (N);
  
-                      --  Here we deal with a very peculiar case for which the
-                      --  Has_Private_View mechanism is not sufficient, because
-                      --  the reference to the type is implicit in the tree,
-                      --  that is to say, it's not referenced from a node but
-                      --  only from another type, namely through Component_Type.
- 
-                      --    package P is
- 
-                      --      type Pt is private;
- 
-                      --      generic
-                      --        type Ft is array (Positive range <>) of Pt;
-                      --      package G is
-                      --        procedure Check (F1, F2 : Ft; Lt : Boolean);
-                      --      end G;
- 
-                      --    private
-                      --      type Pt is new Boolean;
-                      --    end P;
- 
-                      --    package body P is
-                      --      package body G is
-                      --        procedure Check (F1, F2 : Ft; Lt : Boolean) is
-                      --        begin
-                      --          if (F1 < F2) /= Lt then
-                      --            null;
-                      --          end if;
-                      --        end Check;
-                      --      end G;
-                      --    end P;
- 
-                      --    type Arr is array (Positive range <>) of P.Pt;
- 
-                      --    package Inst is new P.G (Arr);
- 
-                      --  Pt is a global type for the generic package G and it
-                      --  is not referenced in its body, but only as component
-                      --  type of Ft, which is a local type. This means that no
-                      --  references to Pt or Ft are seen during the copy of the
-                      --  body, the only reference to Pt being seen is when the
-                      --  actuals are checked by Check_Generic_Actuals, but Pt
-                      --  is still private at this point. In the end, the views
-                      --  of Pt are not switched in the body and, therefore, the
-                      --  array comparison is rejected because the component is
-                      --  still private.
- 
-                      --  Adding e.g. a dummy variable of type Pt in the body is
-                      --  sufficient to make everything work, so we generate an
-                      --  artificial reference to Pt on the fly and thus force
-                      --  the switching of views on the grounds that, if the
-                      --  comparison was accepted during the semantic analysis
-                      --  of the generic, this means that the component cannot
-                      --  have been private (see Sem_Type.Valid_Comparison_Arg).
- 
-                      if Nkind (Assoc) in N_Op_Compare
-                        and then Present (Etype (Left_Opnd (Assoc)))
-                        and then Is_Array_Type (Etype (Left_Opnd (Assoc)))
-                        and then Present (Etype (Right_Opnd (Assoc)))
-                        and then Is_Array_Type (Etype (Right_Opnd (Assoc)))
-                      then
-                         declare
-                            Ltyp : constant Entity_Id :=
-                                                      Etype (Left_Opnd (Assoc));
-                            Rtyp : constant Entity_Id :=
-                                                     Etype (Right_Opnd (Assoc));
-                         begin
-                            if Is_Private_Type (Component_Type (Ltyp)) then
-                               Check_Private_View
-                                 (New_Occurrence_Of (Component_Type (Ltyp),
-                                  Sloc (N)));
-                            end if;
-                            if Is_Private_Type (Component_Type (Rtyp)) then
-                               Check_Private_View
-                                 (New_Occurrence_Of (Component_Type (Rtyp),
-                                  Sloc (N)));
-                            end if;
-                         end;
- 
-                      --  Here is a similar case, for the Designated_Type of an
-                      --  access type that is present as target type in a type
-                      --  conversion from another access type. In this case, if
-                      --  the base types of the designated types are different
-                      --  and the conversion was accepted during the semantic
-                      --  analysis of the generic, this means that the target
-                      --  type cannot have been private (see Valid_Conversion).
- 
-                      elsif Nkind (Assoc) = N_Identifier
-                        and then Nkind (Parent (Assoc)) = N_Type_Conversion
-                        and then Subtype_Mark (Parent (Assoc)) = Assoc
-                        and then Present (Etype (Assoc))
-                        and then Is_Access_Type (Etype (Assoc))
-                        and then Present (Etype (Expression (Parent (Assoc))))
-                        and then
-                          Is_Access_Type (Etype (Expression (Parent (Assoc))))
-                      then
-                         declare
-                            Targ_Desig : constant Entity_Id :=
-                              Designated_Type (Etype (Assoc));
-                            Expr_Desig : constant Entity_Id :=
-                              Designated_Type
-                                (Etype (Expression (Parent (Assoc))));
-                         begin
-                            if Base_Type (Targ_Desig) /= Base_Type (Expr_Desig)
-                              and then Is_Private_Type (Targ_Desig)
-                            then
-                               Check_Private_View
-                                 (New_Occurrence_Of (Targ_Desig, Sloc (N)));
-                            end if;
-                         end;
-                      end if;
- 
                    --  The node is a reference to a global type and acts as the
                    --  subtype mark of a qualified expression created in order
                    --  to aid resolution of accidental overloading in instances.
--- 8255,8260 ----
*************** package body Sem_Ch12 is
*** 8174,8179 ****
--- 8269,8283 ----
                    then
                       Set_Entity (New_N, Assoc);
  
+                   --  Cope with the rewriting into expanded name that may have
+                   --  occurred in between, e.g. in Check_Generic_Child_Unit for
+                   --  generic renaming declarations.
+ 
+                   elsif Nkind (Assoc) = N_Expanded_Name then
+                      Rewrite (N, New_Copy_Tree (Assoc));
+                      Set_Associated_Node (N, Assoc);
+                      return Copy_Generic_Node (N, Parent_Id, Instantiating);
+ 
                    --  The name in the call may be a selected component if the
                    --  call has not been analyzed yet, as may be the case for
                    --  pre/post conditions in a generic unit.
*************** package body Sem_Ch12 is
*** 8182,8193 ****
                      and then Is_Entity_Name (Name (Assoc))
                    then
                       Set_Entity (New_N, Entity (Name (Assoc)));
  
                    elsif Nkind (Assoc) in N_Entity
!                     and then (Expander_Active or
!                                 (GNATprove_Mode
!                                   and then not In_Spec_Expression
!                                   and then not Inside_A_Generic))
                    then
                       --  Inlining case: we are copying a tree that contains
                       --  global entities, which are preserved in the copy to be
--- 8286,8298 ----
                      and then Is_Entity_Name (Name (Assoc))
                    then
                       Set_Entity (New_N, Entity (Name (Assoc)));
+                      Check_Private_View (N);
  
                    elsif Nkind (Assoc) in N_Entity
!                     and then (Expander_Active
!                                or else (GNATprove_Mode
!                                          and then not In_Spec_Expression
!                                          and then not Inside_A_Generic))
                    then
                       --  Inlining case: we are copying a tree that contains
                       --  global entities, which are preserved in the copy to be
*************** package body Sem_Ch12 is
*** 8400,8437 ****
              Set_Associated_Node (N, New_N);
  
           else
!             if Present (Get_Associated_Node (N))
!               and then Nkind (Get_Associated_Node (N)) = Nkind (N)
!             then
!                --  In the generic the aggregate has some composite type. If at
!                --  the point of instantiation the type has a private view,
!                --  install the full view (and that of its ancestors, if any).
  
!                declare
!                   T   : Entity_Id := (Etype (Get_Associated_Node (New_N)));
!                   Rt  : Entity_Id;
  
!                begin
!                   if Present (T) and then Is_Private_Type (T) then
!                      Switch_View (T);
!                   end if;
  
!                   if Present (T)
!                     and then Is_Tagged_Type (T)
!                     and then Is_Derived_Type (T)
!                   then
!                      Rt := Root_Type (T);
  
!                      loop
!                         T := Etype (T);
  
!                         if Is_Private_Type (T) then
!                            Switch_View (T);
!                         end if;
  
!                         exit when T = Rt;
!                      end loop;
!                   end if;
                 end;
              end if;
           end if;
--- 8505,8552 ----
              Set_Associated_Node (N, New_N);
  
           else
!             --  If, in the generic, the aggregate has a global composite type
!             --  and, at the point of instantiation, the type has a private view
!             --  then install the full view.
  
!             declare
!                Assoc : constant Node_Id := Get_Associated_Node (N);
  
!             begin
!                if Present (Assoc)
!                  and then Nkind (Assoc) = Nkind (N)
!                  and then Present (Etype (Assoc))
!                  and then Is_Private_Type (Etype (Assoc))
!                then
!                   Switch_View (Etype (Assoc));
!                end if;
!             end;
  
!             --  Moreover, for a full aggregate, if the type is a derived tagged
!             --  type and has a global ancestor, then also restore the full view
!             --  of this ancestor and do so up to the root type. Beware that the
!             --  Ancestor_Type field is overloaded, so test that it's an entity.
  
!             if Nkind (N) = N_Aggregate
!               and then Present (Ancestor_Type (N))
!               and then Nkind (Ancestor_Type (N)) in N_Entity
!             then
!                declare
!                   Root_Typ : constant Entity_Id :=
!                                Root_Type (Ancestor_Type (N));
  
!                   Typ : Entity_Id := Ancestor_Type (N);
  
!                begin
!                   loop
!                      if Is_Private_Type (Typ) then
!                         Switch_View (Typ);
!                      end if;
! 
!                      exit when Typ = Root_Typ;
! 
!                      Typ := Etype (Typ);
!                   end loop;
                 end;
              end if;
           end if;
*************** package body Sem_Ch12 is
*** 8494,8499 ****
--- 8609,8639 ----
              Copy_Descendants;
           end;
  
+       --  Loop parameter specifications do not have an identifier denoting the
+       --  index type, so we must locate it through the defining identifier to
+       --  check whether the views are consistent.
+ 
+       elsif Nkind (N) = N_Loop_Parameter_Specification
+         and then Instantiating
+       then
+          declare
+             Id : constant Entity_Id :=
+                    Get_Associated_Entity (Defining_Identifier (N));
+ 
+             Index_T : Entity_Id;
+ 
+          begin
+             if Present (Id) and then Present (Etype (Id)) then
+                Index_T := First_Subtype (Etype (Id));
+ 
+                if Present (Index_T) and then Is_Private_Type (Index_T) then
+                   Switch_View (Index_T);
+                end if;
+             end if;
+ 
+             Copy_Descendants;
+          end;
+ 
        --  For a proper body, we must catch the case of a proper body that
        --  replaces a stub. This represents the point at which a separate
        --  compilation unit, and hence template file, may be referenced, so we
*************** package body Sem_Ch12 is
*** 11480,11498 ****
                 Actual);
           end if;
  
-          --  Check actual/formal compatibility with respect to the four
-          --  volatility refinement aspects.
- 
-          declare
-             Actual_Obj : constant Entity_Id :=
-               Get_Enclosing_Deep_Object (Actual);
-          begin
-             Check_Volatility_Compatibility
-               (Actual_Obj, A_Gen_Obj, "actual object",
-                "its corresponding formal object of mode in out",
-                Srcpos_Bearer => Actual);
-          end;
- 
           --  The actual for a ghost generic formal IN OUT parameter should be a
           --  ghost object (SPARK RM 6.9(14)).
  
--- 11620,11625 ----
*************** package body Sem_Ch12 is
*** 11700,11721 ****
             ("actual must exclude null to match generic formal#", Actual);
        end if;
  
-       --  An effectively volatile object cannot be used as an actual in a
-       --  generic instantiation (SPARK RM 7.1.3(7)). The following check is
-       --  relevant only when SPARK_Mode is on as it is not a standard Ada
-       --  legality rule, and also verifies that the actual is an object.
- 
-       if SPARK_Mode = On
-         and then Present (Actual)
-         and then Is_Object_Reference (Actual)
-         and then Is_Effectively_Volatile_Object (Actual)
-         and then not Is_Effectively_Volatile (A_Gen_Obj)
-       then
-          Error_Msg_N
-            ("volatile object cannot act as actual in generic instantiation",
-             Actual);
-       end if;
- 
        return List;
     end Instantiate_Object;
  
--- 11827,11832 ----
*************** package body Sem_Ch12 is
*** 11924,11935 ****
           return;
        end if;
  
-       --  The package being instantiated may be subject to pragma Ghost. Set
-       --  the mode now to ensure that any nodes generated during instantiation
-       --  are properly marked as Ghost.
- 
-       Set_Ghost_Mode (Act_Decl_Id);
- 
        Expander_Mode_Save_And_Set (Body_Info.Expander_Status);
  
        --  Re-establish the state of information on which checks are suppressed.
--- 12035,12040 ----
*************** package body Sem_Ch12 is
*** 12042,12047 ****
--- 12147,12158 ----
           Instantiation_Node := Inst_Node;
        end if;
  
+       --  The package being instantiated may be subject to pragma Ghost. Set
+       --  the mode now to ensure that any nodes generated during instantiation
+       --  are properly marked as Ghost.
+ 
+       Set_Ghost_Mode (Act_Decl_Id);
+ 
        if Present (Gen_Body_Id) then
           Save_Env (Gen_Unit, Act_Decl_Id);
           Style_Check := False;
*************** package body Sem_Ch12 is
*** 12175,12183 ****
             and then Nkind (Gen_Id) = N_Expanded_Name
           then
              Par_Ent := Entity (Prefix (Gen_Id));
-             Par_Vis := Is_Immediately_Visible (Par_Ent);
-             Install_Parent (Par_Ent, In_Body => True);
-             Par_Installed := True;
  
           elsif Ekind (Scope (Gen_Unit)) = E_Generic_Package
             and then Ekind (Scope (Act_Decl_Id)) = E_Package
--- 12286,12291 ----
*************** package body Sem_Ch12 is
*** 12189,12200 ****
              Par_Ent := Entity
                (Prefix (Name (Get_Unit_Instantiation_Node
                                 (Scope (Act_Decl_Id)))));
-             Par_Vis := Is_Immediately_Visible (Par_Ent);
-             Install_Parent (Par_Ent, In_Body => True);
-             Par_Installed := True;
  
           elsif Is_Child_Unit (Gen_Unit) then
              Par_Ent := Scope (Gen_Unit);
              Par_Vis := Is_Immediately_Visible (Par_Ent);
              Install_Parent (Par_Ent, In_Body => True);
              Par_Installed := True;
--- 12297,12308 ----
              Par_Ent := Entity
                (Prefix (Name (Get_Unit_Instantiation_Node
                                 (Scope (Act_Decl_Id)))));
  
           elsif Is_Child_Unit (Gen_Unit) then
              Par_Ent := Scope (Gen_Unit);
+          end if;
+ 
+          if Present (Par_Ent) then
              Par_Vis := Is_Immediately_Visible (Par_Ent);
              Install_Parent (Par_Ent, In_Body => True);
              Par_Installed := True;
*************** package body Sem_Ch12 is
*** 12484,12495 ****
           return;
        end if;
  
-       --  The subprogram being instantiated may be subject to pragma Ghost. Set
-       --  the mode now to ensure that any nodes generated during instantiation
-       --  are properly marked as Ghost.
- 
-       Set_Ghost_Mode (Act_Decl_Id);
- 
        Expander_Mode_Save_And_Set (Body_Info.Expander_Status);
  
        --  Re-establish the state of information on which checks are suppressed.
--- 12592,12597 ----
*************** package body Sem_Ch12 is
*** 12527,12532 ****
--- 12629,12640 ----
  
        Instantiation_Node := Inst_Node;
  
+       --  The subprogram being instantiated may be subject to pragma Ghost. Set
+       --  the mode now to ensure that any nodes generated during instantiation
+       --  are properly marked as Ghost.
+ 
+       Set_Ghost_Mode (Act_Decl_Id);
+ 
        if Present (Gen_Body_Id) then
           Gen_Body := Unit_Declaration_Node (Gen_Body_Id);
  
*************** package body Sem_Ch12 is
*** 12611,12622 ****
             and then Nkind (Gen_Id) = N_Expanded_Name
           then
              Par_Ent := Entity (Prefix (Gen_Id));
-             Par_Vis := Is_Immediately_Visible (Par_Ent);
-             Install_Parent (Par_Ent, In_Body => True);
-             Par_Installed := True;
- 
           elsif Is_Child_Unit (Gen_Unit) then
              Par_Ent := Scope (Gen_Unit);
              Par_Vis := Is_Immediately_Visible (Par_Ent);
              Install_Parent (Par_Ent, In_Body => True);
              Par_Installed := True;
--- 12719,12729 ----
             and then Nkind (Gen_Id) = N_Expanded_Name
           then
              Par_Ent := Entity (Prefix (Gen_Id));
           elsif Is_Child_Unit (Gen_Unit) then
              Par_Ent := Scope (Gen_Unit);
+          end if;
+ 
+          if Present (Par_Ent) then
              Par_Vis := Is_Immediately_Visible (Par_Ent);
              Install_Parent (Par_Ent, In_Body => True);
              Par_Installed := True;
*************** package body Sem_Ch12 is
*** 12902,12915 ****
                   ("actual for& must have Independent_Components specified",
                       Actual, A_Gen_T);
              end if;
- 
-             --  Check actual/formal compatibility with respect to the four
-             --  volatility refinement aspects.
- 
-             Check_Volatility_Compatibility
-               (Act_T, A_Gen_T,
-                "actual type", "its corresponding formal type",
-                Srcpos_Bearer => Actual);
           end if;
        end Check_Shared_Variable_Control_Aspects;
  
--- 13009,13014 ----
*************** package body Sem_Ch12 is
*** 13429,13436 ****
                 Ancestor := Get_Instance_Of (Ancestor);
  
              else
!                Ancestor :=
!                  Get_Instance_Of (Base_Type (Get_Instance_Of (A_Gen_T)));
              end if;
  
           --  Check whether parent is a previous formal of the current generic
--- 13528,13534 ----
                 Ancestor := Get_Instance_Of (Ancestor);
  
              else
!                Ancestor := Get_Instance_Of (Etype (Get_Instance_Of (A_Gen_T)));
              end if;
  
           --  Check whether parent is a previous formal of the current generic
*************** package body Sem_Ch12 is
*** 13959,13967 ****
                      and then (Ekind (Base_Type (Etype (Actual_Discr)))) =
                                  E_Anonymous_Access_Type
                      and then
!                       Get_Instance_Of
!                         (Designated_Type (Base_Type (Formal_Subt))) =
!                            Designated_Type (Base_Type (Etype (Actual_Discr)))
                    then
                       null;
  
--- 14057,14066 ----
                      and then (Ekind (Base_Type (Etype (Actual_Discr)))) =
                                  E_Anonymous_Access_Type
                      and then
!                       Subtypes_Match
!                         (Get_Instance_Of
!                            (Designated_Type (Base_Type (Formal_Subt))),
!                          Designated_Type (Base_Type (Etype (Actual_Discr))))
                    then
                       null;
  
*************** package body Sem_Ch12 is
*** 14087,14210 ****
        if Get_Instance_Of (A_Gen_T) /= A_Gen_T then
           Error_Msg_N ("duplicate instantiation of generic type", Actual);
           return New_List (Error);
  
!       elsif not Is_Entity_Name (Actual)
          or else not Is_Type (Entity (Actual))
        then
           Error_Msg_NE
             ("expect valid subtype mark to instantiate &", Actual, Gen_T);
           Abandon_Instantiation (Actual);
  
!       else
!          Act_T := Entity (Actual);
  
!          --  Ada 2005 (AI-216): An Unchecked_Union subtype shall only be passed
!          --  as a generic actual parameter if the corresponding formal type
!          --  does not have a known_discriminant_part, or is a formal derived
!          --  type that is an Unchecked_Union type.
  
!          if Is_Unchecked_Union (Base_Type (Act_T)) then
!             if not Has_Discriminants (A_Gen_T)
!               or else (Is_Derived_Type (A_Gen_T)
!                         and then Is_Unchecked_Union (A_Gen_T))
!             then
!                null;
!             else
!                Error_Msg_N ("unchecked union cannot be the actual for a "
!                             & "discriminated formal type", Act_T);
  
-             end if;
           end if;
  
!          --  Deal with fixed/floating restrictions
  
!          if Is_Floating_Point_Type (Act_T) then
!             Check_Restriction (No_Floating_Point, Actual);
!          elsif Is_Fixed_Point_Type (Act_T) then
!             Check_Restriction (No_Fixed_Point, Actual);
!          end if;
  
!          --  Deal with error of using incomplete type as generic actual.
!          --  This includes limited views of a type, even if the non-limited
!          --  view may be available.
  
!          if Ekind (Act_T) = E_Incomplete_Type
!            or else (Is_Class_Wide_Type (Act_T)
!                      and then Ekind (Root_Type (Act_T)) = E_Incomplete_Type)
!          then
!             --  If the formal is an incomplete type, the actual can be
!             --  incomplete as well, but if an actual incomplete type has
!             --  a full view, then we'll retrieve that.
  
!             if Ekind (A_Gen_T) = E_Incomplete_Type
!               and then No (Full_View (Act_T))
!             then
!                null;
  
!             elsif Is_Class_Wide_Type (Act_T)
!               or else No (Full_View (Act_T))
!             then
!                Error_Msg_N ("premature use of incomplete type", Actual);
!                Abandon_Instantiation (Actual);
  
!             else
!                Act_T := Full_View (Act_T);
!                Set_Entity (Actual, Act_T);
  
!                if Has_Private_Component (Act_T) then
!                   Error_Msg_N
!                     ("premature use of type with private component", Actual);
!                end if;
              end if;
  
!          --  Deal with error of premature use of private type as generic actual
  
!          elsif Is_Private_Type (Act_T)
             and then Is_Private_Type (Base_Type (Act_T))
             and then not Is_Generic_Type (Act_T)
             and then not Is_Derived_Type (Act_T)
             and then No (Full_View (Root_Type (Act_T)))
           then
!             --  If the formal is an incomplete type, the actual can be
!             --  private or incomplete as well.
! 
!             if Ekind (A_Gen_T) = E_Incomplete_Type then
!                null;
!             else
!                Error_Msg_N ("premature use of private type", Actual);
!             end if;
  
           elsif Has_Private_Component (Act_T) then
              Error_Msg_N
                ("premature use of type with private component", Actual);
           end if;
  
!          Set_Instance_Of (A_Gen_T, Act_T);
  
!          --  If the type is generic, the class-wide type may also be used
  
!          if Is_Tagged_Type (A_Gen_T)
!            and then Is_Tagged_Type (Act_T)
!            and then not Is_Class_Wide_Type (A_Gen_T)
!          then
!             Set_Instance_Of (Class_Wide_Type (A_Gen_T),
!               Class_Wide_Type (Act_T));
!          end if;
  
!          if not Is_Abstract_Type (A_Gen_T)
!            and then Is_Abstract_Type (Act_T)
!          then
!             Error_Msg_N
!               ("actual of non-abstract formal cannot be abstract", Actual);
!          end if;
  
!          --  A generic scalar type is a first subtype for which we generate
!          --  an anonymous base type. Indicate that the instance of this base
!          --  is the base type of the actual.
  
!          if Is_Scalar_Type (A_Gen_T) then
!             Set_Instance_Of (Etype (A_Gen_T), Etype (Act_T));
!          end if;
        end if;
  
        Check_Shared_Variable_Control_Aspects;
--- 14186,14305 ----
        if Get_Instance_Of (A_Gen_T) /= A_Gen_T then
           Error_Msg_N ("duplicate instantiation of generic type", Actual);
           return New_List (Error);
+       end if;
  
!       if not Is_Entity_Name (Actual)
          or else not Is_Type (Entity (Actual))
        then
           Error_Msg_NE
             ("expect valid subtype mark to instantiate &", Actual, Gen_T);
           Abandon_Instantiation (Actual);
+       end if;
  
!       Act_T := Entity (Actual);
  
!       --  Ada 2005 (AI-216): An Unchecked_Union subtype shall only be passed
!       --  as a generic actual parameter if the corresponding formal type
!       --  does not have a known_discriminant_part, or is a formal derived
!       --  type that is an Unchecked_Union type.
  
!       if Is_Unchecked_Union (Base_Type (Act_T)) then
!          if not Has_Discriminants (A_Gen_T)
!            or else (Is_Derived_Type (A_Gen_T)
!                      and then Is_Unchecked_Union (A_Gen_T))
!          then
!             null;
!          else
!             Error_Msg_N ("unchecked union cannot be the actual for a "
!                          & "discriminated formal type", Act_T);
  
           end if;
+       end if;
  
!       --  Deal with fixed/floating restrictions
  
!       if Is_Floating_Point_Type (Act_T) then
!          Check_Restriction (No_Floating_Point, Actual);
!       elsif Is_Fixed_Point_Type (Act_T) then
!          Check_Restriction (No_Fixed_Point, Actual);
!       end if;
  
!       --  Deal with error of using incomplete type as generic actual.
!       --  This includes limited views of a type, even if the non-limited
!       --  view may be available.
  
!       if Ekind (Act_T) = E_Incomplete_Type
!         or else (Is_Class_Wide_Type (Act_T)
!                   and then Ekind (Root_Type (Act_T)) = E_Incomplete_Type)
!       then
!          --  If the formal is an incomplete type, the actual can be
!          --  incomplete as well, but if an actual incomplete type has
!          --  a full view, then we'll retrieve that.
  
!          if Ekind (A_Gen_T) = E_Incomplete_Type
!            and then No (Full_View (Act_T))
!          then
!             null;
  
!          elsif Is_Class_Wide_Type (Act_T)
!            or else No (Full_View (Act_T))
!          then
!             Error_Msg_N ("premature use of incomplete type", Actual);
!             Abandon_Instantiation (Actual);
  
!          else
!             Act_T := Full_View (Act_T);
!             Set_Entity (Actual, Act_T);
  
!             if Has_Private_Component (Act_T) then
!                Error_Msg_N
!                  ("premature use of type with private component", Actual);
              end if;
+          end if;
  
!       --  Deal with error of premature use of private type as generic actual,
!       --  which is allowed for incomplete formals.
  
!       elsif Ekind (A_Gen_T) /= E_Incomplete_Type then
!          if Is_Private_Type (Act_T)
             and then Is_Private_Type (Base_Type (Act_T))
             and then not Is_Generic_Type (Act_T)
             and then not Is_Derived_Type (Act_T)
             and then No (Full_View (Root_Type (Act_T)))
           then
!             Error_Msg_N ("premature use of private type", Actual);
  
           elsif Has_Private_Component (Act_T) then
              Error_Msg_N
                ("premature use of type with private component", Actual);
           end if;
+       end if;
  
!       Set_Instance_Of (A_Gen_T, Act_T);
  
!       --  If the type is generic, the class-wide type may also be used
  
!       if Is_Tagged_Type (A_Gen_T)
!         and then Is_Tagged_Type (Act_T)
!         and then not Is_Class_Wide_Type (A_Gen_T)
!       then
!          Set_Instance_Of (Class_Wide_Type (A_Gen_T),
!            Class_Wide_Type (Act_T));
!       end if;
  
!       if not Is_Abstract_Type (A_Gen_T)
!         and then Is_Abstract_Type (Act_T)
!       then
!          Error_Msg_N
!            ("actual of non-abstract formal cannot be abstract", Actual);
!       end if;
  
!       --  A generic scalar type is a first subtype for which we generate
!       --  an anonymous base type. Indicate that the instance of this base
!       --  is the base type of the actual.
  
!       if Is_Scalar_Type (A_Gen_T) then
!          Set_Instance_Of (Etype (A_Gen_T), Etype (Act_T));
        end if;
  
        Check_Shared_Variable_Control_Aspects;
*************** package body Sem_Ch12 is
*** 14317,14322 ****
--- 14412,14425 ----
  
        if Is_Private_Type (Act_T) then
           Set_Has_Private_View (Subtype_Indication (Decl_Node));
+ 
+       elsif (Is_Access_Type (Act_T)
+               and then Is_Private_Type (Designated_Type (Act_T)))
+         or else (Is_Array_Type (Act_T)
+                   and then
+                  Is_Private_Type (Component_Type_For_Private_View (Act_T)))
+       then
+          Set_Has_Secondary_Private_View (Subtype_Indication (Decl_Node));
        end if;
  
        --  In Ada 2012 the actual may be a limited view. Indicate that
*************** package body Sem_Ch12 is
*** 14715,14727 ****
                          Decl := First_Elmt (Previous_Instances);
                          while Present (Decl) loop
                             Info :=
!                              (Act_Decl                 =>
                                  Instance_Spec (Node (Decl)),
                                Config_Switches          => Save_Config_Switches,
                                Current_Sem_Unit         =>
                                  Get_Code_Unit (Sloc (Node (Decl))),
                                Expander_Status          => Exp_Status,
-                               Inst_Node                => Node (Decl),
                                Local_Suppress_Stack_Top =>
                                  Local_Suppress_Stack_Top,
                                Scope_Suppress           => Scope_Suppress,
--- 14818,14831 ----
                          Decl := First_Elmt (Previous_Instances);
                          while Present (Decl) loop
                             Info :=
!                              (Inst_Node                => Node (Decl),
!                               Act_Decl                 =>
                                  Instance_Spec (Node (Decl)),
+                               Fin_Scop                 => Empty,
                                Config_Switches          => Save_Config_Switches,
                                Current_Sem_Unit         =>
                                  Get_Code_Unit (Sloc (Node (Decl))),
                                Expander_Status          => Exp_Status,
                                Local_Suppress_Stack_Top =>
                                  Local_Suppress_Stack_Top,
                                Scope_Suppress           => Scope_Suppress,
*************** package body Sem_Ch12 is
*** 14775,14786 ****
  
                    Instantiate_Package_Body
                      (Body_Info =>
!                        ((Act_Decl                 => True_Parent,
                           Config_Switches          => Save_Config_Switches,
                           Current_Sem_Unit         =>
                             Get_Code_Unit (Sloc (Inst_Node)),
                           Expander_Status          => Exp_Status,
-                          Inst_Node                => Inst_Node,
                           Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                           Scope_Suppress           => Scope_Suppress,
                           Warnings                 => Save_Warnings)),
--- 14879,14891 ----
  
                    Instantiate_Package_Body
                      (Body_Info =>
!                        ((Inst_Node                => Inst_Node,
!                          Act_Decl                 => True_Parent,
!                          Fin_Scop                 => Empty,
                           Config_Switches          => Save_Config_Switches,
                           Current_Sem_Unit         =>
                             Get_Code_Unit (Sloc (Inst_Node)),
                           Expander_Status          => Exp_Status,
                           Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                           Scope_Suppress           => Scope_Suppress,
                           Warnings                 => Save_Warnings)),
*************** package body Sem_Ch12 is
*** 15722,15727 ****
--- 15827,15839 ----
        --  This is the recursive procedure that does the work, once the
        --  enclosing generic scope has been established.
  
+       procedure Set_Global_Type (N : Node_Id; N2 : Node_Id);
+       --  If the type of N2 is global to the generic unit, save the type in
+       --  the generic node. Just as we perform name capture for explicit
+       --  references within the generic, we must capture the global types
+       --  of local entities because they may participate in resolution in
+       --  the instance.
+ 
        ---------------
        -- Is_Global --
        ---------------
*************** package body Sem_Ch12 is
*** 15915,15981 ****
        ------------------
  
        procedure Reset_Entity (N : Node_Id) is
-          procedure Set_Global_Type (N : Node_Id; N2 : Node_Id);
-          --  If the type of N2 is global to the generic unit, save the type in
-          --  the generic node. Just as we perform name capture for explicit
-          --  references within the generic, we must capture the global types
-          --  of local entities because they may participate in resolution in
-          --  the instance.
- 
           function Top_Ancestor (E : Entity_Id) return Entity_Id;
           --  Find the ultimate ancestor of the current unit. If it is not a
           --  generic unit, then the name of the current unit in the prefix of
           --  an expanded name must be replaced with its generic homonym to
           --  ensure that it will be properly resolved in an instance.
  
-          ---------------------
-          -- Set_Global_Type --
-          ---------------------
- 
-          procedure Set_Global_Type (N : Node_Id; N2 : Node_Id) is
-             Typ : constant Entity_Id := Etype (N2);
- 
-          begin
-             Set_Etype (N, Typ);
- 
-             --  If the entity of N is not the associated node, this is a
-             --  nested generic and it has an associated node as well, whose
-             --  type is already the full view (see below). Indicate that the
-             --  original node has a private view.
- 
-             if Entity (N) /= N2 and then Has_Private_View (Entity (N)) then
-                Set_Has_Private_View (N);
-             end if;
- 
-             --  If not a private type, nothing else to do
- 
-             if not Is_Private_Type (Typ) then
-                null;
- 
-             --  If it is a derivation of a private type in a context where no
-             --  full view is needed, nothing to do either.
- 
-             elsif No (Full_View (Typ)) and then Typ /= Etype (Typ) then
-                null;
- 
-             --  Otherwise mark the type for flipping and use the full view when
-             --  available.
- 
-             else
-                Set_Has_Private_View (N);
- 
-                if Present (Full_View (Typ)) then
-                   Set_Etype (N2, Full_View (Typ));
-                end if;
-             end if;
- 
-             if Is_Floating_Point_Type (Typ)
-               and then Has_Dimension_System (Typ)
-             then
-                Copy_Dimensions (N2, N);
-             end if;
-          end Set_Global_Type;
- 
           ------------------
           -- Top_Ancestor --
           ------------------
--- 16027,16038 ----
*************** package body Sem_Ch12 is
*** 16414,16420 ****
                    return
                      Is_Generic_Declaration_Or_Body
                        (Unit_Declaration_Node
!                         (Associated_Entity (Defining_Entity (Nod))));
  
                 --  Otherwise the generic unit being processed is not the top
                 --  level template. It is safe to capture of global references
--- 16471,16477 ----
                    return
                      Is_Generic_Declaration_Or_Body
                        (Unit_Declaration_Node
!                         (Get_Associated_Entity (Defining_Entity (Nod))));
  
                 --  Otherwise the generic unit being processed is not the top
                 --  level template. It is safe to capture of global references
*************** package body Sem_Ch12 is
*** 16463,16468 ****
--- 16520,16555 ----
              if No (N2) or else No (Typ) or else not Is_Global (Typ) then
                 Set_Associated_Node (N, Empty);
  
+                --  For a full aggregate, if the type is local but is a derived
+                --  tagged type of a global ancestor, we will need to have the
+                --  full view of this global ancestor available in the instance
+                --  in order to analyze the full aggregate.
+ 
+                if Present (N2)
+                  and then Nkind (N2) = N_Aggregate
+                  and then Present (Typ)
+                  and then Is_Tagged_Type (Typ)
+                  and then Is_Derived_Type (Typ)
+                then
+                   declare
+                      Root_Typ : constant Entity_Id := Root_Type (Typ);
+ 
+                      Parent_Typ : Entity_Id := Typ;
+ 
+                   begin
+                      loop
+                         Parent_Typ := Etype (Parent_Typ);
+ 
+                         if Is_Global (Parent_Typ) then
+                            Set_Ancestor_Type (N, Parent_Typ);
+                            exit;
+                         end if;
+ 
+                         exit when Parent_Typ = Root_Typ;
+                      end loop;
+                   end;
+                end if;
+ 
                 --  If the aggregate is an actual in a call, it has been
                 --  resolved in the current context, to some local type. The
                 --  enclosing call may have been disambiguated by the aggregate,
*************** package body Sem_Ch12 is
*** 16501,16506 ****
--- 16588,16606 ----
                        Subtype_Mark => Nam,
                        Expression   => Relocate_Node (N));
                 end if;
+ 
+             --  For a full aggregate, if the type is global and a derived
+             --  tagged type, we will also need to have the full view of its
+             --  ancestor available in the instance in order to analyze the
+             --  full aggregate.
+ 
+             elsif Present (N2)
+               and then Nkind (N2) = N_Aggregate
+               and then Present (Typ)
+               and then Is_Tagged_Type (Typ)
+               and then Is_Derived_Type (Typ)
+             then
+                Set_Ancestor_Type (N, Etype (Typ));
              end if;
  
              if Nkind (N) = N_Aggregate then
*************** package body Sem_Ch12 is
*** 16579,16585 ****
                    E := Entity (Name (N2));
  
                    if Present (E) and then Is_Global (E) then
!                      Set_Etype (N, Etype (N2));
                    else
                       Set_Associated_Node (N, Empty);
                       Set_Etype (N, Empty);
--- 16679,16685 ----
                    E := Entity (Name (N2));
  
                    if Present (E) and then Is_Global (E) then
!                      Set_Global_Type (N, N2);
                    else
                       Set_Associated_Node (N, Empty);
                       Set_Etype (N, Empty);
*************** package body Sem_Ch12 is
*** 16613,16620 ****
--- 16713,16722 ----
                      and then Is_Global (Entity (Prefix (N2)))
                    then
                       Set_Associated_Node (N, Prefix (N2));
+                      Set_Global_Type (N, Prefix (N2));
  
                    elsif Nkind (Prefix (N2)) = N_Function_Call
+                     and then Is_Entity_Name (Name (Prefix (N2)))
                      and then Present (Entity (Name (Prefix (N2))))
                      and then Is_Global (Entity (Name (Prefix (N2))))
                    then
*************** package body Sem_Ch12 is
*** 16625,16630 ****
--- 16727,16735 ----
                               Name =>
                                 New_Occurrence_Of
                                   (Entity (Name (Prefix (N2))), Loc))));
+                      Set_Associated_Node
+                        (Name (Prefix (N)), Name (Prefix (N2)));
+                      Set_Global_Type (Name (Prefix (N)), Name (Prefix (N2)));
  
                    else
                       Set_Associated_Node (N, Empty);
*************** package body Sem_Ch12 is
*** 16650,16664 ****
  
           procedure Save_References_In_Operator (N : Node_Id) is
           begin
              --  The node did not undergo a transformation
  
!             if Nkind (N) = Nkind (Get_Associated_Node (N)) then
                 if Nkind (N) = N_Op_Concat then
!                   Set_Is_Component_Left_Opnd (N,
!                     Is_Component_Left_Opnd (Get_Associated_Node (N)));
! 
!                   Set_Is_Component_Right_Opnd (N,
!                     Is_Component_Right_Opnd (Get_Associated_Node (N)));
                 end if;
  
                 Reset_Entity (N);
--- 16755,16770 ----
  
           procedure Save_References_In_Operator (N : Node_Id) is
           begin
+             N2 := Get_Associated_Node (N);
+ 
              --  The node did not undergo a transformation
  
!             if Nkind (N) = Nkind (N2) then
                 if Nkind (N) = N_Op_Concat then
!                   Set_Is_Component_Left_Opnd
!                     (N, Is_Component_Left_Opnd (N2));
!                   Set_Is_Component_Right_Opnd
!                     (N, Is_Component_Right_Opnd (N2));
                 end if;
  
                 Reset_Entity (N);
*************** package body Sem_Ch12 is
*** 16668,16675 ****
              --  applicable.
  
              else
-                N2 := Get_Associated_Node (N);
- 
                 --  The operator resoved to a function call
  
                 if Nkind (N2) = N_Function_Call then
--- 16774,16779 ----
*************** package body Sem_Ch12 is
*** 16684,16690 ****
                    E := Entity (Name (N2));
  
                    if Present (E) and then Is_Global (E) then
!                      Set_Etype (N, Etype (N2));
                    else
                       Set_Associated_Node (N, Empty);
                       Set_Etype           (N, Empty);
--- 16788,16794 ----
                    E := Entity (Name (N2));
  
                    if Present (E) and then Is_Global (E) then
!                      Set_Global_Type (N, N2);
                    else
                       Set_Associated_Node (N, Empty);
                       Set_Etype           (N, Empty);
*************** package body Sem_Ch12 is
*** 16826,16855 ****
           elsif Nkind (N) = N_Pragma then
              Save_References_In_Pragma (N);
  
           else
              Save_References_In_Descendants (N);
           end if;
  
!          --  Save all global references found within the aspect specifications
!          --  of the related node.
  
!          if Permits_Aspect_Specifications (N) and then Has_Aspects (N) then
  
!             --  The capture of global references within aspects associated with
!             --  generic packages, subprograms or their bodies must be delayed
!             --  due to timing of annotation analysis. Global references are
!             --  still captured in routine Save_Global_References_In_Contract.
  
!             if Requires_Delayed_Save (N) then
!                null;
  
!             --  Otherwise save all global references within the aspects
  
!             else
!                Save_Global_References_In_Aspects (N);
              end if;
           end if;
!       end Save_References;
  
     --  Start of processing for Save_Global_References
  
--- 16930,17060 ----
           elsif Nkind (N) = N_Pragma then
              Save_References_In_Pragma (N);
  
+          elsif Nkind (N) =  N_Aspect_Specification then
+             declare
+                P : constant Node_Id := Parent (N);
+                Expr : Node_Id;
+             begin
+ 
+                if Permits_Aspect_Specifications (P) then
+ 
+                   --  The capture of global references within aspects
+                   --  associated with generic packages, subprograms or
+                   --  their bodies must be delayed due to timing of
+                   --  annotation analysis. Global references are still
+                   --  captured in routine Save_Global_References_In_Contract.
+ 
+                   if Requires_Delayed_Save (Original_Node (P)) then
+                      null;
+ 
+                      --  Otherwise save all global references within the
+                      --  aspects
+ 
+                   else
+                      Expr := Expression (N);
+ 
+                      if Present (Expr) then
+                         Save_Global_References (Expr);
+                      end if;
+                   end if;
+                end if;
+             end;
+ 
+          --  Do not walk the node pointed to by Label_Construct twice
+ 
+          elsif Nkind (N) = N_Implicit_Label_Declaration then
+             null;
+ 
           else
              Save_References_In_Descendants (N);
           end if;
  
!       end Save_References;
  
!       ---------------------
!       -- Set_Global_Type --
!       ---------------------
  
!       procedure Set_Global_Type (N : Node_Id; N2 : Node_Id) is
!          Comparison : constant Boolean   := Nkind (N2) in N_Op_Compare;
!          Typ        : constant Entity_Id :=
!            (if Comparison then Compare_Type (N2) else Etype (N2));
  
!       begin
!          --  For a comparison (or equality) operator, the Etype is Boolean, so
!          --  it is always global. But the type subject to the Has_Private_View
!          --  processing is the Compare_Type, so we must specifically check it.
  
!          if Comparison then
!             Set_Etype (N, Etype (N2));
  
!             if not Is_Global (Typ) then
!                return;
              end if;
+ 
+             Set_Compare_Type (N, Typ);
+ 
+          else
+             Set_Etype (N, Typ);
           end if;
! 
!          --  If the entity of N is not the associated node, this is a
!          --  nested generic and it has an associated node as well, whose
!          --  type is already the full view (see below). Indicate that the
!          --  original node has a private view.
! 
!          if Entity (N) /= N2 then
!             if Has_Private_View (Entity (N)) then
!                Set_Has_Private_View (N);
!             end if;
! 
!             if Has_Secondary_Private_View (Entity (N)) then
!                Set_Has_Secondary_Private_View (N);
!             end if;
!          end if;
! 
!          --  If not a private type, deal with a secondary private view
! 
!          if not Is_Private_Type (Typ) then
!             if (Is_Access_Type (Typ)
!                  and then Is_Private_Type (Designated_Type (Typ)))
!               or else (Is_Array_Type (Typ)
!                         and then
!                        Is_Private_Type (Component_Type_For_Private_View (Typ)))
!             then
!                Set_Has_Secondary_Private_View (N);
!             end if;
! 
!          --  If it is a derivation of a private type in a context where no
!          --  full view is needed, nothing to do either.
! 
!          elsif No (Full_View (Typ)) and then Typ /= Etype (Typ) then
!             null;
! 
!          --  Otherwise mark the type for flipping and set the full view on N2
!          --  when available, which is necessary for Check_Private_View to swap
!          --  back the views in case the full declaration of Typ is visible in
!          --  the instantiation context. Note that this will be problematic if
!          --  N2 is re-analyzed later, e.g. if it's a default value in a call.
! 
!          else
!             Set_Has_Private_View (N);
! 
!             if Present (Full_View (Typ)) then
!                if Comparison then
!                   Set_Compare_Type (N2, Full_View (Typ));
!                else
!                   Set_Etype (N2, Full_View (Typ));
!                end if;
!             end if;
!          end if;
! 
!          if Is_Floating_Point_Type (Typ)
!            and then Has_Dimension_System (Typ)
!          then
!             Copy_Dimensions (N2, N);
!          end if;
!       end Set_Global_Type;
  
     --  Start of processing for Save_Global_References
  
*************** package body Sem_Ch12 is
*** 17213,17220 ****
                      and then (Ekind (Base_Type (Etype (Actual_Discr)))) =
                                  E_Anonymous_Access_Type
                      and then
!                         Designated_Type (Base_Type (Formal_Subt)) =
!                            Designated_Type (Base_Type (Etype (Actual_Discr)))
                    then
                       null;
  
--- 17418,17431 ----
                      and then (Ekind (Base_Type (Etype (Actual_Discr)))) =
                                  E_Anonymous_Access_Type
                      and then
!                         Base_Type
!                           (Designated_Type (Base_Type (Formal_Subt))) =
!                         Base_Type
!                           (Designated_Type (Base_Type (Etype (Actual_Discr))))
!                     and then
!                         Subtypes_Statically_Match
!                          (Designated_Type (Base_Type (Formal_Subt)),
!                           Designated_Type (Base_Type (Etype (Actual_Discr))))
                    then
                       null;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch12.ads gcc-14.1.0/gcc/ada/sem_ch12.ads
*** gcc-13.2.0/gcc/ada/sem_ch12.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch12.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Ch12 is
*** 204,210 ****
     --  the current view after instantiation. The processing is driven by the
     --  current private status of the type of the node, and Has_Private_View,
     --  a flag that is set at the point of generic compilation. If view and
!    --  flag are inconsistent then the type is updated appropriately.
     --
     --  This subprogram is used in Check_Generic_Actuals and Copy_Generic_Node,
     --  and is exported here for the purpose of front-end inlining (see Exp_Ch6.
--- 204,212 ----
     --  the current view after instantiation. The processing is driven by the
     --  current private status of the type of the node, and Has_Private_View,
     --  a flag that is set at the point of generic compilation. If view and
!    --  flag are inconsistent then the type is updated appropriately. A second
!    --  flag Has_Secondary_Private_View is used to update a second type related
!    --  to this type if need be.
     --
     --  This subprogram is used in Check_Generic_Actuals and Copy_Generic_Node,
     --  and is exported here for the purpose of front-end inlining (see Exp_Ch6.
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch13.adb gcc-14.1.0/gcc/ada/sem_ch13.adb
*** gcc-13.2.0/gcc/ada/sem_ch13.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch13.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Exp_Ch3;          use Exp_Ch3;
*** 38,43 ****
--- 38,44 ----
  with Exp_Disp;         use Exp_Disp;
  with Exp_Tss;          use Exp_Tss;
  with Exp_Util;         use Exp_Util;
+ with Expander;         use Expander;
  with Freeze;           use Freeze;
  with Ghost;            use Ghost;
  with Lib;              use Lib;
*************** package body Sem_Ch13 is
*** 107,112 ****
--- 108,118 ----
     --  others_choice is static if the corresponding expression is static.
     --  The staticness of the bounds is checked separately.
  
+    procedure Analyze_User_Aspect_Aspect_Specification (N : Node_Id);
+    --  Analyze a User_Aspect aspect specification. Called from outside
+    --  this package (in addition to locally), but the call from aspect.adb
+    --  is via an access-to-subprogram value.
+ 
     procedure Build_Discrete_Static_Predicate
       (Typ  : Entity_Id;
        Expr : Node_Id;
*************** package body Sem_Ch13 is
*** 132,140 ****
     function Build_Predicate_Function_Declaration
        (Typ : Entity_Id) return Node_Id;
     --  Build the declaration for a predicate function. The declaration is built
!    --  at the end of the declarative part containing the type definition, which
!    --  may be before the freeze point of the type. The predicate expression is
!    --  preanalyzed at this point, to catch visibility errors.
  
     procedure Build_Predicate_Function (Typ : Entity_Id; N : Node_Id);
     --  If Typ has predicates (indicated by Has_Predicates being set for Typ),
--- 138,144 ----
     function Build_Predicate_Function_Declaration
        (Typ : Entity_Id) return Node_Id;
     --  Build the declaration for a predicate function. The declaration is built
!    --  at the same time as the body but inserted before, as explained below.
  
     procedure Build_Predicate_Function (Typ : Entity_Id; N : Node_Id);
     --  If Typ has predicates (indicated by Has_Predicates being set for Typ),
*************** package body Sem_Ch13 is
*** 259,269 ****
     --  containers.
  
     procedure Resolve_Aspect_Aggregate
!     (Typ  : Entity_Id;
!      Expr : Node_Id);
     --  Resolve each one of the operations specified in the specification of
     --  Aspect_Aggregate.
  
     procedure Validate_Aspect_Stable_Properties
       (E : Entity_Id; N : Node_Id; Class_Present : Boolean);
     --  Check legality of functions given in the Ada 2022 Stable_Properties
--- 263,276 ----
     --  containers.
  
     procedure Resolve_Aspect_Aggregate
!      (Typ  : Entity_Id;
!       Expr : Node_Id);
     --  Resolve each one of the operations specified in the specification of
     --  Aspect_Aggregate.
  
+    procedure Validate_Aspect_Local_Restrictions (E : Entity_Id; N : Node_Id);
+    --  Check legality of a Local_Restrictions aspect specification
+ 
     procedure Validate_Aspect_Stable_Properties
       (E : Entity_Id; N : Node_Id; Class_Present : Boolean);
     --  Check legality of functions given in the Ada 2022 Stable_Properties
*************** package body Sem_Ch13 is
*** 427,433 ****
  
     procedure Adjust_Record_For_Reverse_Bit_Order (R : Entity_Id) is
        Max_Machine_Scalar_Size : constant Uint :=
!                                   UI_From_Int (System_Max_Integer_Size);
        --  We use this as the maximum machine scalar size
  
        SSU : constant Uint := UI_From_Int (System_Storage_Unit);
--- 434,442 ----
  
     procedure Adjust_Record_For_Reverse_Bit_Order (R : Entity_Id) is
        Max_Machine_Scalar_Size : constant Uint :=
!         UI_From_Int (if Reverse_Bit_Order_Threshold >= 0
!                      then Reverse_Bit_Order_Threshold
!                      else System_Max_Integer_Size);
        --  We use this as the maximum machine scalar size
  
        SSU : constant Uint := UI_From_Int (System_Storage_Unit);
*************** package body Sem_Ch13 is
*** 1408,1427 ****
--- 1417,1456 ----
           Is_Instance : Boolean := False);
        --  Subsidiary to the analysis of aspects
        --    Abstract_State
+       --    Always_Terminates
        --    Attach_Handler
+       --    Async_Readers
+       --    Async_Writers
+       --    Constant_After_Elaboration
        --    Contract_Cases
+       --    Convention
+       --    Default_Initial_Condition
+       --    Default_Storage_Pool
        --    Depends
+       --    Effective_Reads
+       --    Effective_Writes
+       --    Exceptional_Cases
+       --    Extensions_Visible
        --    Ghost
        --    Global
        --    Initial_Condition
        --    Initializes
+       --    Max_Entry_Queue_Depth
+       --    Max_Entry_Queue_Length
+       --    Max_Queue_Length
+       --    No_Caching
+       --    Part_Of
        --    Post
        --    Pre
        --    Refined_Depends
        --    Refined_Global
+       --    Refined_Post
        --    Refined_State
+       --    Side_Effects
        --    SPARK_Mode
+       --    Secondary_Stack_Size
        --    Subprogram_Variant
+       --    Volatile_Function
        --    Warnings
        --  Insert pragma Prag such that it mimics the placement of a source
        --  pragma of the same kind. Flag Is_Generic should be set when the
*************** package body Sem_Ch13 is
*** 1644,1650 ****
        Ent    : Node_Id;
  
        L : constant List_Id := Aspect_Specifications (N);
-       pragma Assert (Present (L));
  
        Ins_Node : Node_Id := N;
        --  Insert pragmas/attribute definition clause after this node when no
--- 1673,1678 ----
*************** package body Sem_Ch13 is
*** 1667,1676 ****
        --  analyzed right now.
  
        --  Note that there is a special handling for Pre, Post, Test_Case,
!       --  Contract_Cases and Subprogram_Variant aspects. In these cases, we do
!       --  not have to worry about delay issues, since the pragmas themselves
!       --  deal with delay of visibility for the expression analysis. Thus, we
!       --  just insert the pragma after the node N.
  
        --  Loop through aspects
  
--- 1695,1709 ----
        --  analyzed right now.
  
        --  Note that there is a special handling for Pre, Post, Test_Case,
!       --  Contract_Cases, Always_Terminates, Exceptional_Cases and
!       --  Subprogram_Variant aspects. In these cases, we do not have to worry
!       --  about delay issues, since the pragmas themselves deal with delay of
!       --  visibility for the expression analysis. Thus, we just insert the
!       --  pragma after the node N.
! 
!       if No (L) then
!          return;
!       end if;
  
        --  Loop through aspects
  
*************** package body Sem_Ch13 is
*** 2731,2737 ****
  
              --  Mark aspect analyzed (actual analysis is delayed till later)
  
!             Set_Analyzed (Aspect);
              Set_Entity (Aspect, E);
  
              --  Build the reference to E that will be used in the built pragmas
--- 2764,2780 ----
  
              --  Mark aspect analyzed (actual analysis is delayed till later)
  
!             if A_Id /= Aspect_User_Aspect then
!                --  Analyzed flag is handled differently for a User_Aspect
!                --  aspect specification because it can also be analyzed
!                --  "on demand" from Aspects.Find_Aspect. So that analysis
!                --  tests for the case where the aspect specification has
!                --  already been analyzed (in which case it just returns)
!                --  and takes care of calling Set_Analyzed.
! 
!                Set_Analyzed (Aspect);
!             end if;
! 
              Set_Entity (Aspect, E);
  
              --  Build the reference to E that will be used in the built pragmas
*************** package body Sem_Ch13 is
*** 2840,2848 ****
              --  requires its own analysis procedure (see sem_ch6).
  
              if Nkind (Expr) = N_Operator_Symbol then
!                Set_Entity (Id, Expr);
              else
!                Set_Entity (Id, New_Copy_Tree (Expr));
              end if;
  
              --  Set Delay_Required as appropriate to aspect
--- 2883,2891 ----
              --  requires its own analysis procedure (see sem_ch6).
  
              if Nkind (Expr) = N_Operator_Symbol then
!                Set_Expression_Copy (Aspect, Expr);
              else
!                Set_Expression_Copy (Aspect, New_Copy_Tree (Expr));
              end if;
  
              --  Set Delay_Required as appropriate to aspect
*************** package body Sem_Ch13 is
*** 2908,2917 ****
              end case;
  
              if Delay_Required
- 
                 and then (A_Id = Aspect_Stable_Properties
                            or else A_Id = Aspect_Designated_Storage_Model
!                           or else A_Id = Aspect_Storage_Model_Type)
                 --  ??? It seems like we should do this for all aspects, not
                 --  just these, but that causes as-yet-undiagnosed regressions.
  
--- 2951,2960 ----
              end case;
  
              if Delay_Required
                 and then (A_Id = Aspect_Stable_Properties
                            or else A_Id = Aspect_Designated_Storage_Model
!                           or else A_Id = Aspect_Storage_Model_Type
!                           or else A_Id = Aspect_Aggregate)
                 --  ??? It seems like we should do this for all aspects, not
                 --  just these, but that causes as-yet-undiagnosed regressions.
  
*************** package body Sem_Ch13 is
*** 3062,3077 ****
                           Expression => Relocate_Node (Expr))),
                       Pragma_Name                  => Name_Linker_Section);
  
!                   --  Linker_Section does not need delaying, as its argument
!                   --  must be a static string. Furthermore, if applied to
!                   --  an object with an explicit initialization, the object
!                   --  must be frozen in order to elaborate the initialization
!                   --  code. (This is already done for types with implicit
!                   --  initialization, such as protected types.)
  
!                   if Nkind (N) = N_Object_Declaration
!                     and then Has_Init_Expression (N)
!                   then
                       Delay_Required := False;
                    end if;
  
--- 3105,3115 ----
                           Expression => Relocate_Node (Expr))),
                       Pragma_Name                  => Name_Linker_Section);
  
!                   --  No need to delay the processing if the entity is already
!                   --  frozen. This should only happen for subprogram bodies.
  
!                   if Is_Frozen (E) then
!                      pragma Assert (Nkind (N) = N_Subprogram_Body);
                       Delay_Required := False;
                    end if;
  
*************** package body Sem_Ch13 is
*** 3108,3113 ****
--- 3146,3152 ----
                 --  Dynamic_Predicate, Predicate, Static_Predicate
  
                 when Aspect_Dynamic_Predicate
+                   | Aspect_Ghost_Predicate
                    | Aspect_Predicate
                    | Aspect_Static_Predicate
                 =>
*************** package body Sem_Ch13 is
*** 3158,3163 ****
--- 3197,3204 ----
  
                    elsif A_Id = Aspect_Static_Predicate then
                       Set_Has_Static_Predicate_Aspect (E);
+                   elsif A_Id = Aspect_Ghost_Predicate then
+                      Set_Has_Ghost_Predicate_Aspect (E);
                    end if;
  
                    --  If the type is private, indicate that its completion
*************** package body Sem_Ch13 is
*** 3171,3176 ****
--- 3212,3219 ----
                          Set_Has_Dynamic_Predicate_Aspect (Full_View (E));
                       elsif A_Id = Aspect_Static_Predicate then
                          Set_Has_Static_Predicate_Aspect (Full_View (E));
+                      elsif A_Id = Aspect_Ghost_Predicate then
+                         Set_Has_Ghost_Predicate_Aspect (Full_View (E));
                       end if;
  
                       Set_Has_Delayed_Aspects (Full_View (E));
*************** package body Sem_Ch13 is
*** 3216,3223 ****
                       goto Continue;
  
                    elsif not (Directly_Specified (E, Aspect_Dynamic_Predicate)
!                     or else Directly_Specified (E, Aspect_Static_Predicate)
!                     or else Directly_Specified (E, Aspect_Predicate))
                    then
                       Error_Msg_N
                         ("Predicate_Failure requires accompanying" &
--- 3259,3267 ----
                       goto Continue;
  
                    elsif not (Directly_Specified (E, Aspect_Dynamic_Predicate)
!                     or else Directly_Specified (E, Aspect_Predicate)
!                     or else Directly_Specified (E, Aspect_Ghost_Predicate)
!                     or else Directly_Specified (E, Aspect_Static_Predicate))
                    then
                       Error_Msg_N
                         ("Predicate_Failure requires accompanying" &
*************** package body Sem_Ch13 is
*** 3912,3917 ****
--- 3956,3976 ----
  
                    goto Continue;
  
+                --  Aspect Side_Effects is never delayed because it is
+                --  equivalent to a source pragma which appears after
+                --  the related subprogram.
+ 
+                when Aspect_Side_Effects =>
+                   Aitem := Make_Aitem_Pragma
+                     (Pragma_Argument_Associations => New_List (
+                        Make_Pragma_Argument_Association (Loc,
+                          Expression => Relocate_Node (Expr))),
+                      Pragma_Name                  => Name_Side_Effects);
+ 
+                   Decorate (Aspect, Aitem);
+                   Insert_Pragma (Aitem);
+                   goto Continue;
+ 
                 --  SPARK_Mode
  
                 when Aspect_SPARK_Mode =>
*************** package body Sem_Ch13 is
*** 4071,4076 ****
--- 4130,4141 ----
                    Insert_Pragma (Aitem);
                    goto Continue;
  
+                --  User_Aspect
+ 
+                when Aspect_User_Aspect =>
+                   Analyze_User_Aspect_Aspect_Specification (Aspect);
+                   goto Continue;
+ 
                 --  Volatile_Function
  
                 --  Aspect Volatile_Function is never delayed because it is
*************** package body Sem_Ch13 is
*** 4203,4212 ****
--- 4268,4285 ----
                    Aitem := Empty;
  
                 when Aspect_Aggregate =>
+                   --  We will be checking that the aspect is not specified on a
+                   --  non-array type in Check_Aspect_At_Freeze_Point
+ 
                    Validate_Aspect_Aggregate (Expr);
                    Record_Rep_Item (E, Aspect);
                    goto Continue;
  
+                when Aspect_Local_Restrictions =>
+                   Validate_Aspect_Local_Restrictions (E, Expr);
+                   Record_Rep_Item (E, Aspect);
+                   goto Continue;
+ 
                 when Aspect_Stable_Properties =>
                    Validate_Aspect_Stable_Properties
                      (E, Expr, Class_Present => Class_Present (Aspect));
*************** package body Sem_Ch13 is
*** 4288,4295 ****
  
                 --  Case 4: Aspects requiring special handling
  
!                --  Pre/Post/Test_Case/Contract_Cases/Subprogram_Variant whose
!                --  corresponding pragmas take care of the delay.
  
                 --  Pre/Post
  
--- 4361,4369 ----
  
                 --  Case 4: Aspects requiring special handling
  
!                --  Pre/Post/Test_Case/Contract_Cases/Always_Terminates/
!                --  Exceptional_Cases and Subprogram_Variant whose corresponding
!                --  pragmas take care of the delay.
  
                 --  Pre/Post
  
*************** package body Sem_Ch13 is
*** 4521,4526 ****
--- 4595,4626 ----
                    Insert_Pragma (Aitem);
                    goto Continue;
  
+                --  Always_Terminates
+ 
+                when Aspect_Always_Terminates =>
+                   Aitem := Make_Aitem_Pragma
+                     (Pragma_Argument_Associations => New_List (
+                        Make_Pragma_Argument_Association (Loc,
+                          Expression => Relocate_Node (Expr))),
+                      Pragma_Name                  => Name_Always_Terminates);
+ 
+                   Decorate (Aspect, Aitem);
+                   Insert_Pragma (Aitem);
+                   goto Continue;
+ 
+                --  Exceptional_Cases
+ 
+                when Aspect_Exceptional_Cases =>
+                   Aitem := Make_Aitem_Pragma
+                     (Pragma_Argument_Associations => New_List (
+                        Make_Pragma_Argument_Association (Loc,
+                          Expression => Relocate_Node (Expr))),
+                      Pragma_Name                  => Name_Exceptional_Cases);
+ 
+                   Decorate (Aspect, Aitem);
+                   Insert_Pragma (Aitem);
+                   goto Continue;
+ 
                 --  Subprogram_Variant
  
                 when Aspect_Subprogram_Variant =>
*************** package body Sem_Ch13 is
*** 4725,4733 ****
              --  For an aspect that applies to a type, indicate whether it
              --  appears on a partial view of the type.
  
!             if Is_Type (E)
!               and then Is_Private_Type (E)
!             then
                 Set_Aspect_On_Partial_View (Aspect);
              end if;
  
--- 4825,4831 ----
              --  For an aspect that applies to a type, indicate whether it
              --  appears on a partial view of the type.
  
!             if Is_Type (E) and then Is_Private_Type (E) then
                 Set_Aspect_On_Partial_View (Aspect);
              end if;
  
*************** package body Sem_Ch13 is
*** 5027,5033 ****
        --  aspects are allowed to break this rule (for all applicable cases, see
        --  table Aspects.Aspect_On_Body_Or_Stub_OK).
  
!       if Spec_Id /= Body_Id and then not Aspects_On_Body_Or_Stub_OK (N) then
           Diagnose_Misplaced_Aspects (Spec_Id);
        else
           Analyze_Aspect_Specifications (N, Body_Id);
--- 5125,5134 ----
        --  aspects are allowed to break this rule (for all applicable cases, see
        --  table Aspects.Aspect_On_Body_Or_Stub_OK).
  
!       if  Spec_Id /= Body_Id
!          and then Has_Aspects (N)
!          and then not Aspects_On_Body_Or_Stub_OK (N)
!       then
           Diagnose_Misplaced_Aspects (Spec_Id);
        else
           Analyze_Aspect_Specifications (N, Body_Id);
*************** package body Sem_Ch13 is
*** 5775,5813 ****
        ------------------------------
  
        procedure Check_Iterator_Functions is
!          function Valid_Default_Iterator (Subp : Entity_Id) return Boolean;
!          --  Check one possible interpretation for validity
  
           ----------------------------
           -- Valid_Default_Iterator --
           ----------------------------
  
!          function Valid_Default_Iterator (Subp : Entity_Id) return Boolean is
!             Root_T : constant Entity_Id := Root_Type (Etype (Etype (Subp)));
!             Formal : Entity_Id;
  
           begin
              if not Check_Primitive_Function (Subp) then
                 return False;
  
              --  The return type must be derived from a type in an instance
              --  of Iterator.Interfaces, and thus its root type must have a
              --  predefined name.
  
!             elsif Chars (Root_T) /= Name_Forward_Iterator
!              and then Chars (Root_T) /= Name_Reversible_Iterator
              then
!                return False;
  
!             else
!                Formal := First_Formal (Subp);
              end if;
  
              --  False if any subsequent formal has no default expression
  
              Next_Formal (Formal);
              while Present (Formal) loop
                 if No (Expression (Parent (Formal))) then
                    return False;
                 end if;
  
--- 5876,5991 ----
        ------------------------------
  
        procedure Check_Iterator_Functions is
!          function Valid_Default_Iterator (Subp     : Entity_Id;
!                                           Ref_Node : Node_Id := Empty)
!                                           return Boolean;
!          --  Check one possible interpretation for validity. If
!          --  Ref_Node is present report errors on violations.
  
           ----------------------------
           -- Valid_Default_Iterator --
           ----------------------------
  
!          function Valid_Default_Iterator (Subp     : Entity_Id;
!                                           Ref_Node : Node_Id := Empty)
!                                           return Boolean
!          is
!             Return_Type : constant Entity_Id := Etype (Etype (Subp));
!             Return_Node : Node_Id;
!             Root_T      : constant Entity_Id := Root_Type (Return_Type);
!             Formal      : Entity_Id;
! 
!             function Valid_Iterator_Name (E : Entity_Id) return Boolean
!             is (Chars (E) in Name_Forward_Iterator | Name_Reversible_Iterator);
! 
!             function Valid_Iterator_Name (L : Elist_Id) return Boolean;
! 
!             -------------------------
!             -- Valid_Iterator_Name --
!             -------------------------
! 
!             function Valid_Iterator_Name (L : Elist_Id) return Boolean
!             is
!                Iface_Elmt : Elmt_Id := First_Elmt (L);
!             begin
!                while Present (Iface_Elmt) loop
!                   if Valid_Iterator_Name (Node (Iface_Elmt)) then
!                      return True;
!                   end if;
!                   Next_Elmt (Iface_Elmt);
!                end loop;
! 
!                return False;
!             end Valid_Iterator_Name;
  
           begin
+             if Subp = Any_Id then
+                if Present (Ref_Node) then
+ 
+                   --  Subp is not resolved and an error will be posted about
+                   --  it later
+ 
+                   Error_Msg_N ("improper function for default iterator!",
+                      Ref_Node);
+                end if;
+ 
+                return False;
+             end if;
+ 
              if not Check_Primitive_Function (Subp) then
+                if Present (Ref_Node) then
+                   Error_Msg_N ("improper function for default iterator!",
+                      Ref_Node);
+                   Error_Msg_Sloc := Sloc (Subp);
+                   Error_Msg_NE
+                      ("\\default iterator defined # "
+                      & "must be a primitive function",
+                      Ref_Node, Subp);
+                end if;
+ 
                 return False;
+             end if;
  
              --  The return type must be derived from a type in an instance
              --  of Iterator.Interfaces, and thus its root type must have a
              --  predefined name.
  
!             if not Valid_Iterator_Name (Root_T)
!                and then not (Has_Interfaces (Return_Type) and then
!                   Valid_Iterator_Name (Interfaces (Return_Type)))
              then
!                if Present (Ref_Node) then
  
!                   Return_Node := Result_Definition (Parent (Subp));
! 
!                   Error_Msg_N ("improper function for default iterator!",
!                      Ref_Node);
!                   Error_Msg_Sloc := Sloc (Return_Node);
!                   Error_Msg_NE ("\\return type & # "
!                      & "must inherit from either "
!                      & "Forward_Iterator or Reversible_Iterator",
!                      Ref_Node, Return_Node);
!                end if;
! 
!                return False;
              end if;
  
+             Formal := First_Formal (Subp);
+ 
              --  False if any subsequent formal has no default expression
  
              Next_Formal (Formal);
              while Present (Formal) loop
                 if No (Expression (Parent (Formal))) then
+                   if Present (Ref_Node) then
+                      Error_Msg_N ("improper function for default iterator!",
+                         Ref_Node);
+                      Error_Msg_Sloc := Sloc (Formal);
+                      Error_Msg_NE ("\\formal parameter & # "
+                         & "must have a default expression",
+                         Ref_Node, Formal);
+                   end if;
+ 
                    return False;
                 end if;
  
*************** package body Sem_Ch13 is
*** 5819,5824 ****
--- 5997,6004 ----
              return True;
           end Valid_Default_Iterator;
  
+          Ignore : Boolean;
+ 
        --  Start of processing for Check_Iterator_Functions
  
        begin
*************** package body Sem_Ch13 is
*** 5839,5847 ****
  
              --  Flag the default_iterator as well as the denoted function.
  
!             if not Valid_Default_Iterator (Entity (Expr)) then
!                Error_Msg_N ("improper function for default iterator!", Expr);
!             end if;
  
           else
              declare
--- 6019,6025 ----
  
              --  Flag the default_iterator as well as the denoted function.
  
!             Ignore := Valid_Default_Iterator (Entity (Expr), Expr);
  
           else
              declare
*************** package body Sem_Ch13 is
*** 8749,8754 ****
--- 8927,9057 ----
        end if;
     end Analyze_Record_Representation_Clause;
  
+    ----------------------------------------------
+    -- Analyze_User_Aspect_Aspect_Specification --
+    ----------------------------------------------
+ 
+    procedure Analyze_User_Aspect_Aspect_Specification (N : Node_Id) is
+       OK : Boolean := True;
+ 
+       procedure Analyze_One_User_Aspect (Id : Node_Id);
+       --  A User_Aspect aspect specification may specify multiple
+       --  user-defined aspects. This procedure is called for each one.
+ 
+       -----------------------------
+       -- Analyze_One_User_Aspect --
+       -----------------------------
+ 
+       procedure Analyze_One_User_Aspect (Id : Node_Id) is
+          UAD_Pragma : constant Node_Id :=
+            User_Aspect_Support.Registered_UAD_Pragma (Chars (Id));
+ 
+          Arg : Node_Id;
+       begin
+          if No (UAD_Pragma) then
+             Error_Msg_N ("No definition for user-defined aspect", Id);
+             return;
+          end if;
+ 
+          --  Process args in reverse order so that inserted
+          --  aspect specs end up in "right" order (although
+          --  order shouldn't matter).
+          Arg := Last (Pragma_Argument_Associations (UAD_Pragma));
+ 
+          --  Skip first argument, which is the name of the
+          --  user-defined aspect.
+          while Present (Prev (Arg)) loop
+             declare
+                Exp             : constant Node_Id := Expression (Arg);
+                New_Sloc        : constant Source_Ptr := Sloc (N);
+                New_Aspect_Spec : Node_Id;
+                New_Exp         : Node_Id;
+                New_Exp_List    : List_Id;
+             begin
+                case Nkind (Exp) is
+                   when N_Identifier =>
+                      New_Aspect_Spec :=
+                        Make_Aspect_Specification
+                          (New_Sloc,
+                           Identifier =>
+                             New_Copy_Tree (Exp, New_Sloc => New_Sloc));
+ 
+                   when N_Indexed_Component =>
+                      New_Exp_List := New_List;
+ 
+                      declare
+                         Index_Exp : Node_Id := First (Expressions (Exp));
+                      begin
+                         while Present (Index_Exp) loop
+                            Append (New_Copy_Tree
+                                      (Index_Exp, New_Sloc => New_Sloc),
+                                    To => New_Exp_List);
+                            Next (Index_Exp);
+                         end loop;
+                      end;
+ 
+                      New_Exp := Make_Aggregate
+                        (Sloc => New_Sloc,
+                         Expressions => New_Exp_List,
+                         Is_Parenthesis_Aggregate => True);
+ 
+                      New_Aspect_Spec :=
+                        Make_Aspect_Specification
+                          (New_Sloc,
+                           Identifier =>
+                             New_Copy_Tree (Prefix (Exp), New_Sloc => New_Sloc),
+                           Expression => New_Exp);
+ 
+                   when others =>
+                      raise Program_Error;
+                end case;
+ 
+                Insert_After (After => N, Node => New_Aspect_Spec);
+             end;
+             Arg := Prev (Arg);
+          end loop;
+       end Analyze_One_User_Aspect;
+    begin
+       if Analyzed (N) then
+          return;
+       end if;
+ 
+       --  This aspect can be specified for any entity whose
+       --  syntax allows an aspect specification.
+       --  The analysis code below constructs new aspect
+       --  specifications for the given entity; each might
+       --  turn out to be legal or illegal. That is determined
+       --  when each of these new aspect_specs is analyzed.
+ 
+       case Nkind (Expression (N)) is
+          when N_Identifier =>
+             Analyze_One_User_Aspect (Expression (N));
+          when N_Aggregate =>
+             OK := Is_Parenthesis_Aggregate (Expression (N));
+             declare
+                Id : Node_Id := First (Expressions (Expression (N)));
+             begin
+                while Present (Id) loop
+                   if Nkind (Id) = N_Identifier then
+                      Analyze_One_User_Aspect (Id);
+                   else
+                      OK := False;
+                   end if;
+                   Next (Id);
+                end loop;
+             end;
+          when others =>
+             OK := False;
+       end case;
+ 
+       if not OK then
+          Error_Msg_N
+            ("Bad argument for User_Aspect aspect specification", N);
+       end if;
+ 
+       Set_Analyzed (N);
+    end Analyze_User_Aspect_Aspect_Specification;
+ 
     -------------------------------------
     -- Build_Discrete_Static_Predicate --
     -------------------------------------
*************** package body Sem_Ch13 is
*** 8872,8877 ****
--- 9175,9184 ----
        --  Given a type, if it has a static predicate, then set Result to the
        --  predicate as a range list, otherwise set Static.all to False.
  
+       procedure Warn_If_Test_Ineffective (REntry : REnt; N : Node_Id);
+       --  Issue a warning if REntry includes only values that are
+       --  outside the range TLo .. THi.
+ 
        -----------
        -- "and" --
        -----------
*************** package body Sem_Ch13 is
*** 9126,9133 ****
          (Exp    : Node_Id;
           Static : access Boolean) return RList
        is
!          Op  : Node_Kind;
!          Val : Uint;
  
        begin
           --  Static expression can only be true or false
--- 9433,9441 ----
          (Exp    : Node_Id;
           Static : access Boolean) return RList
        is
!          Op         : Node_Kind;
!          Val        : Uint;
!          Val_Bearer : Node_Id;
  
        begin
           --  Static expression can only be true or false
*************** package body Sem_Ch13 is
*** 9178,9191 ****
                 if Is_Type_Ref (Left_Opnd (Exp))
                   and then Is_OK_Static_Expression (Right_Opnd (Exp))
                 then
!                   Val := Expr_Value (Right_Opnd (Exp));
  
                 --  Typ is right operand
  
                 elsif Is_Type_Ref (Right_Opnd (Exp))
                   and then Is_OK_Static_Expression (Left_Opnd (Exp))
                 then
!                   Val := Expr_Value (Left_Opnd (Exp));
  
                    --  Invert sense of comparison
  
--- 9486,9499 ----
                 if Is_Type_Ref (Left_Opnd (Exp))
                   and then Is_OK_Static_Expression (Right_Opnd (Exp))
                 then
!                   Val_Bearer := Right_Opnd (Exp);
  
                 --  Typ is right operand
  
                 elsif Is_Type_Ref (Right_Opnd (Exp))
                   and then Is_OK_Static_Expression (Left_Opnd (Exp))
                 then
!                   Val_Bearer := Left_Opnd (Exp);
  
                    --  Invert sense of comparison
  
*************** package body Sem_Ch13 is
*** 9204,9233 ****
                    return False_Range;
                 end if;
  
                 --  Construct range according to comparison operation
  
!                case Op is
!                   when N_Op_Eq =>
!                      return RList'(1 => REnt'(Val, Val));
  
!                   when N_Op_Ge =>
!                      return RList'(1 => REnt'(Val, BHi));
  
!                   when N_Op_Gt =>
!                      return RList'(1 => REnt'(Val + 1, BHi));
  
!                   when N_Op_Le =>
!                      return RList'(1 => REnt'(BLo, Val));
  
!                   when N_Op_Lt =>
!                      return RList'(1 => REnt'(BLo, Val - 1));
  
!                   when N_Op_Ne =>
!                      return RList'(REnt'(BLo, Val - 1), REnt'(Val + 1, BHi));
  
!                   when others  =>
!                      raise Program_Error;
!                end case;
  
              --  Membership (IN)
  
--- 9512,9552 ----
                    return False_Range;
                 end if;
  
+                Val := Expr_Value (Val_Bearer);
+ 
                 --  Construct range according to comparison operation
  
!                declare
!                   REntry : REnt;
!                begin
!                   case Op is
!                      when N_Op_Eq =>
!                         REntry := (Val, Val);
  
!                      when N_Op_Ge =>
!                         REntry := (Val, THi);
  
!                      when N_Op_Gt =>
!                         REntry := (Val + 1, THi);
  
!                      when N_Op_Le =>
!                         REntry := (TLo, Val);
  
!                      when N_Op_Lt =>
!                         REntry := (TLo, Val - 1);
  
!                      when N_Op_Ne =>
!                         Warn_If_Test_Ineffective ((Val, Val), Val_Bearer);
!                         return RList'(REnt'(TLo, Val - 1),
!                                       REnt'(Val + 1, THi));
  
!                      when others  =>
!                         raise Program_Error;
!                   end case;
! 
!                   Warn_If_Test_Ineffective (REntry, Val_Bearer);
!                   return RList'(1 => REntry);
!                end;
  
              --  Membership (IN)
  
*************** package body Sem_Ch13 is
*** 9443,9449 ****
              else
                 SLo := Expr_Value (Low_Bound  (N));
                 SHi := Expr_Value (High_Bound (N));
!                return RList'(1 => REnt'(SLo, SHi));
              end if;
  
           --  Others case
--- 9762,9773 ----
              else
                 SLo := Expr_Value (Low_Bound  (N));
                 SHi := Expr_Value (High_Bound (N));
!                declare
!                   REntry : constant REnt := (SLo, SHi);
!                begin
!                   Warn_If_Test_Ineffective (REntry, N);
!                   return RList'(1 => REntry);
!                end;
              end if;
  
           --  Others case
*************** package body Sem_Ch13 is
*** 9469,9475 ****
  
           elsif Is_OK_Static_Expression (N) then
              Val := Expr_Value (N);
!             return RList'(1 => REnt'(Val, Val));
  
           --  Identifier (other than static expression) case
  
--- 9793,9804 ----
  
           elsif Is_OK_Static_Expression (N) then
              Val := Expr_Value (N);
!             declare
!                REntry : constant REnt := (Val, Val);
!             begin
!                Warn_If_Test_Ineffective (REntry, N);
!                return RList'(1 => REntry);
!             end;
  
           --  Identifier (other than static expression) case
  
*************** package body Sem_Ch13 is
*** 9541,9546 ****
--- 9870,9918 ----
           end;
        end Stat_Pred;
  
+       procedure Warn_If_Test_Ineffective (REntry : REnt; N : Node_Id) is
+ 
+          procedure IPT_Warning (Msg : String);
+          --  Emit warning
+ 
+          -----------------
+          -- IPT_Warning --
+          -----------------
+          procedure IPT_Warning (Msg : String) is
+          begin
+             Error_Msg_N ("ineffective predicate test " & Msg & "?_s?", N);
+          end IPT_Warning;
+ 
+       --  Start of processing for Warn_If_Test_Ineffective
+ 
+       begin
+          --  Do nothing if warning disabled
+ 
+          if not Warn_On_Ineffective_Predicate_Test then
+             null;
+ 
+          --  skip null-range corner cases
+ 
+          elsif REntry.Lo > REntry.Hi or else TLo > THi then
+             null;
+ 
+          --  warn if no overlap between subtype bounds and the given range
+ 
+          elsif REntry.Lo > THi or else REntry.Hi < TLo then
+             Error_Msg_Uint_1 := REntry.Lo;
+             if REntry.Lo /= REntry.Hi then
+                Error_Msg_Uint_2 := REntry.Hi;
+                IPT_Warning ("range: ^ .. ^");
+             elsif Is_Enumeration_Type (Typ) and then
+                Nkind (N) in N_Identifier | N_Expanded_Name
+             then
+                IPT_Warning ("value: &");
+             else
+                IPT_Warning ("value: ^");
+             end if;
+          end if;
+       end Warn_If_Test_Ineffective;
+ 
     --  Start of processing for Build_Discrete_Static_Predicate
  
     begin
*************** package body Sem_Ch13 is
*** 9671,9680 ****
  
                 --  Resolve new expression in function context
  
-                Install_Formals (Predicate_Function (Typ));
                 Push_Scope (Predicate_Function (Typ));
                 Analyze_And_Resolve (Expr, Standard_Boolean);
!                Pop_Scope;
              end if;
           end;
        end;
--- 10043,10052 ----
  
                 --  Resolve new expression in function context
  
                 Push_Scope (Predicate_Function (Typ));
+                Install_Formals (Predicate_Function (Typ));
                 Analyze_And_Resolve (Expr, Standard_Boolean);
!                End_Scope;
              end if;
           end;
        end;
*************** package body Sem_Ch13 is
*** 9853,9861 ****
     procedure Build_Predicate_Function (Typ : Entity_Id; N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (Typ);
  
        Expr : Node_Id;
        --  This is the expression for the result of the function. It is
!       --  is build by connecting the component predicates with AND THEN.
  
        Object_Name : Name_Id;
        --  Name for argument of Predicate procedure. Note that we use the same
--- 10225,10237 ----
     procedure Build_Predicate_Function (Typ : Entity_Id; N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (Typ);
  
+       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
+       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
+       --  Save the Ghost-related attributes to restore on exit
+ 
        Expr : Node_Id;
        --  This is the expression for the result of the function. It is
!       --  built by connecting the component predicates with AND THEN.
  
        Object_Name : Name_Id;
        --  Name for argument of Predicate procedure. Note that we use the same
*************** package body Sem_Ch13 is
*** 9871,9876 ****
--- 10247,10255 ----
        SId : Entity_Id;
        --  Its entity
  
+       Restore_Scope : Boolean;
+       --  True if the current scope must be restored on exit
+ 
        Ancestor_Predicate_Function_Called : Boolean := False;
        --  Does this predicate function include a call to the
        --  predication function of an ancestor subtype?
*************** package body Sem_Ch13 is
*** 10002,10007 ****
--- 10381,10396 ----
           --  Start of processing for Add_Predicate
  
           begin
+             --  A ghost predicate is checked only when Ghost mode is enabled.
+             --  Add a condition for the presence of a predicate to be recorded,
+             --  which is needed to generate the corresponding predicate
+             --  function.
+ 
+             if Is_Ignored_Ghost_Pragma (Prag) then
+                Add_Condition (New_Occurrence_Of (Standard_True, Sloc (Prag)));
+                return;
+             end if;
+ 
              --  Mark corresponding SCO as enabled
  
              Set_SCO_Pragma_Enabled (Sloc (Prag));
*************** package body Sem_Ch13 is
*** 10033,10039 ****
                    --  Check_Aspect_At_xxx routines.
  
                    if Present (Asp) then
!                      Set_Entity (Identifier (Asp), New_Copy_Tree (Arg2_Copy));
                    end if;
  
                    --  "and"-in the Arg2 condition to evolving expression
--- 10422,10428 ----
                    --  Check_Aspect_At_xxx routines.
  
                    if Present (Asp) then
!                      Set_Expression_Copy (Asp, New_Copy_Tree (Arg2_Copy));
                    end if;
  
                    --  "and"-in the Arg2 condition to evolving expression
*************** package body Sem_Ch13 is
*** 10122,10133 ****
           Replace_Type_References (N, Typ);
        end Replace_Current_Instance_References;
  
-       --  Local variables
- 
-       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
-       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
-       --  Save the Ghost-related attributes to restore on exit
- 
     --  Start of processing for Build_Predicate_Function
  
     begin
--- 10511,10516 ----
*************** package body Sem_Ch13 is
*** 10166,10171 ****
--- 10549,10563 ----
           return;
        end if;
  
+       --  Ensure that the declarations are added to the scope of the type
+ 
+       if Scope (Typ) /= Current_Scope then
+          Push_Scope (Scope (Typ));
+          Restore_Scope := True;
+       else
+          Restore_Scope := False;
+       end if;
+ 
        --  The related type may be subject to pragma Ghost. Set the mode now to
        --  ensure that the predicate functions are properly marked as Ghost.
  
*************** package body Sem_Ch13 is
*** 10479,10485 ****
                 Set_Analyzed (FBody);
              end if;
  
!             --  Static predicate functions are always side-effect free, and
              --  in most cases dynamic predicate functions are as well. Mark
              --  them as such whenever possible, so redundant predicate checks
              --  can be optimized. If there is a variable reference within the
--- 10871,10877 ----
                 Set_Analyzed (FBody);
              end if;
  
!             --  Static predicate functions are always side-effect-free, and
              --  in most cases dynamic predicate functions are as well. Mark
              --  them as such whenever possible, so redundant predicate checks
              --  can be optimized. If there is a variable reference within the
*************** package body Sem_Ch13 is
*** 10584,10589 ****
--- 10976,10985 ----
        end if;
  
        Restore_Ghost_Region (Saved_GM, Saved_IGR);
+ 
+       if Restore_Scope then
+          Pop_Scope;
+       end if;
     end Build_Predicate_Function;
  
     ------------------------------------------
*************** package body Sem_Ch13 is
*** 10695,10708 ****
        Ident : constant Node_Id   := Identifier (ASN);
        A_Id  : constant Aspect_Id := Get_Aspect_Id (Chars (Ident));
  
!       End_Decl_Expr : constant Node_Id := Entity (Ident);
        --  Expression to be analyzed at end of declarations
  
        Freeze_Expr : constant Node_Id := Expression (ASN);
        --  Expression from call to Check_Aspect_At_Freeze_Point.
  
        T : constant Entity_Id :=
!             (if Present (Freeze_Expr) and (A_Id /= Aspect_Stable_Properties)
               then Etype (Original_Node (Freeze_Expr))
               else Empty);
        --  Type required for preanalyze call. We use the original expression to
--- 11091,11104 ----
        Ident : constant Node_Id   := Identifier (ASN);
        A_Id  : constant Aspect_Id := Get_Aspect_Id (Chars (Ident));
  
!       End_Decl_Expr : constant Node_Id := Expression_Copy (ASN);
        --  Expression to be analyzed at end of declarations
  
        Freeze_Expr : constant Node_Id := Expression (ASN);
        --  Expression from call to Check_Aspect_At_Freeze_Point.
  
        T : constant Entity_Id :=
!             (if Present (Freeze_Expr) and A_Id /= Aspect_Stable_Properties
               then Etype (Original_Node (Freeze_Expr))
               else Empty);
        --  Type required for preanalyze call. We use the original expression to
*************** package body Sem_Ch13 is
*** 10828,10835 ****
           --  also make its potential components accessible.
  
           if not Analyzed (Freeze_Expr) and then Inside_A_Generic then
!             if A_Id in Aspect_Dynamic_Predicate | Aspect_Predicate |
!                        Aspect_Static_Predicate
              then
                 Push_Type (Ent);
                 Preanalyze_Spec_Expression (Freeze_Expr, Standard_Boolean);
--- 11224,11233 ----
           --  also make its potential components accessible.
  
           if not Analyzed (Freeze_Expr) and then Inside_A_Generic then
!             if A_Id in Aspect_Dynamic_Predicate
!                      | Aspect_Ghost_Predicate
!                      | Aspect_Predicate
!                      | Aspect_Static_Predicate
              then
                 Push_Type (Ent);
                 Preanalyze_Spec_Expression (Freeze_Expr, Standard_Boolean);
*************** package body Sem_Ch13 is
*** 10859,10864 ****
--- 11257,11263 ----
  
           if Present (Freeze_Expr) and then No (T) then
              if A_Id in Aspect_Dynamic_Predicate
+                      | Aspect_Ghost_Predicate
                       | Aspect_Predicate
                       | Aspect_Priority
                       | Aspect_Static_Predicate
*************** package body Sem_Ch13 is
*** 10887,10892 ****
--- 11286,11292 ----
  
           elsif A_Id in Aspect_CPU
                       | Aspect_Dynamic_Predicate
+                      | Aspect_Ghost_Predicate
                       | Aspect_Predicate
                       | Aspect_Priority
                       | Aspect_Static_Predicate
*************** package body Sem_Ch13 is
*** 10945,10951 ****
  
        --  Make a copy of the expression to be preanalyzed
  
!       Set_Expression (ASN, New_Copy_Tree (Entity (Ident)));
  
        --  Find type for preanalyze call
  
--- 11345,11351 ----
  
        --  Make a copy of the expression to be preanalyzed
  
!       Set_Expression (ASN, New_Copy_Tree (Expression_Copy (ASN)));
  
        --  Find type for preanalyze call
  
*************** package body Sem_Ch13 is
*** 11049,11054 ****
--- 11449,11457 ----
           when Aspect_Linker_Section =>
              T := Standard_String;
  
+          when Aspect_Local_Restrictions =>
+             return;
+ 
           when Aspect_Synchronization =>
              return;
  
*************** package body Sem_Ch13 is
*** 11122,11127 ****
--- 11525,11535 ----
              return;
  
           when Aspect_Aggregate =>
+             if Is_Array_Type (Entity (ASN)) then
+                Error_Msg_N
+                  ("aspect& can only be applied to non-array type",
+                   Ident);
+             end if;
              Resolve_Aspect_Aggregate (Entity (ASN), Expression (ASN));
              return;
  
*************** package body Sem_Ch13 is
*** 11135,11140 ****
--- 11543,11549 ----
  
           when Aspect_Dynamic_Predicate
              | Aspect_Invariant
+             | Aspect_Ghost_Predicate
              | Aspect_Predicate
              | Aspect_Static_Predicate
              | Aspect_Type_Invariant
*************** package body Sem_Ch13 is
*** 11189,11194 ****
--- 11598,11604 ----
           --  Here is the list of aspects that don't require delay analysis
  
           when Aspect_Abstract_State
+             | Aspect_Always_Terminates
              | Aspect_Annotate
              | Aspect_Async_Readers
              | Aspect_Async_Writers
*************** package body Sem_Ch13 is
*** 11198,11203 ****
--- 11608,11614 ----
              | Aspect_Depends
              | Aspect_Dimension
              | Aspect_Dimension_System
+             | Aspect_Exceptional_Cases
              | Aspect_Effective_Reads
              | Aspect_Effective_Writes
              | Aspect_Extensions_Visible
*************** package body Sem_Ch13 is
*** 11219,11224 ****
--- 11630,11636 ----
              | Aspect_Postcondition
              | Aspect_Pre
              | Aspect_Precondition
+             | Aspect_Side_Effects
              | Aspect_Refined_Depends
              | Aspect_Refined_Global
              | Aspect_Refined_Post
*************** package body Sem_Ch13 is
*** 11230,11235 ****
--- 11642,11648 ----
              | Aspect_Test_Case
              | Aspect_Unimplemented
              | Aspect_Unsuppress
+             | Aspect_User_Aspect
              | Aspect_Volatile_Function
           =>
              raise Program_Error;
*************** package body Sem_Ch13 is
*** 11872,12034 ****
              Sbit : Uint;
              Abit : out Uint)
           is
!             Compl : Integer;
! 
!          begin
!             Compl := Integer (List_Length (Component_Items (CL)));
! 
!             if DS /= No_List then
!                Compl := Compl + Integer (List_Length (DS));
!             end if;
  
!             declare
!                Comps : array (Natural range 0 .. Compl) of Entity_Id;
!                --  Gather components (zero entry is for sort routine)
  
!                Ncomps : Natural := 0;
!                --  Number of entries stored in Comps (starting at Comps (1))
  
!                Citem : Node_Id;
!                --  One component item or discriminant specification
  
!                Nbit  : Uint;
!                --  Starting bit for next component
  
!                CEnt  : Entity_Id;
!                --  Component entity
  
!                Variant : Node_Id;
!                --  One variant
  
!                function Lt (Op1, Op2 : Natural) return Boolean;
!                --  Compare routine for Sort
  
!                procedure Move (From : Natural; To : Natural);
!                --  Move routine for Sort
  
!                package Sorting is new GNAT.Heap_Sort_G (Move, Lt);
  
!                --------
!                -- Lt --
!                --------
  
!                function Lt (Op1, Op2 : Natural) return Boolean is
!                   K1 : constant Boolean :=
!                     Known_Component_Bit_Offset (Comps (Op1));
!                   K2 : constant Boolean :=
!                     Known_Component_Bit_Offset (Comps (Op2));
!                   --  Record representation clauses can be incomplete, so the
!                   --  Component_Bit_Offsets can be unknown.
!                begin
!                   if K1 then
!                      if K2 then
!                         return Component_Bit_Offset (Comps (Op1))
!                              < Component_Bit_Offset (Comps (Op2));
!                      else
!                         return True;
!                      end if;
                    else
!                      return K2;
                    end if;
!                end Lt;
! 
!                ----------
!                -- Move --
!                ----------
  
!                procedure Move (From : Natural; To : Natural) is
!                begin
!                   Comps (To) := Comps (From);
!                end Move;
  
              begin
!                --  Gather discriminants into Comp
  
!                Citem := First (DS);
!                while Present (Citem) loop
!                   if Nkind (Citem) = N_Discriminant_Specification then
!                      declare
!                         Ent : constant Entity_Id :=
!                                 Defining_Identifier (Citem);
!                      begin
!                         if Ekind (Ent) = E_Discriminant then
!                            Ncomps := Ncomps + 1;
!                            Comps (Ncomps) := Ent;
!                         end if;
!                      end;
!                   end if;
  
!                   Next (Citem);
!                end loop;
  
!                --  Gather component entities into Comp
  
!                Citem := First (Component_Items (CL));
!                while Present (Citem) loop
!                   if Nkind (Citem) = N_Component_Declaration then
!                      Ncomps := Ncomps + 1;
!                      Comps (Ncomps) := Defining_Identifier (Citem);
!                   end if;
  
!                   Next (Citem);
!                end loop;
  
!                --  Now sort the component entities based on the first bit.
!                --  Note we already know there are no overlapping components.
  
!                Sorting.Sort (Ncomps);
  
!                --  Loop through entries checking for holes
  
!                Nbit := Sbit;
!                for J in 1 .. Ncomps loop
!                   CEnt := Comps (J);
!                   pragma Annotate (CodePeer, Modified, CEnt);
  
!                   declare
!                      CBO : constant Uint := Component_Bit_Offset (CEnt);
  
!                   begin
!                      --  Skip components with unknown offsets
  
!                      if Present (CBO) and then CBO >= 0 then
!                         Error_Msg_Uint_1 := CBO - Nbit;
  
!                         if Warn and then Error_Msg_Uint_1 > 0 then
!                            Error_Msg_NE
!                              ("?.h?^-bit gap before component&",
!                               Component_Name (Component_Clause (CEnt)),
!                               CEnt);
!                         end if;
  
!                         Nbit := CBO + Esize (CEnt);
                       end if;
-                   end;
-                end loop;
  
!                --  Set Abit to just after the last nonvariant component
  
!                Abit := Nbit;
  
!                --  Process variant parts recursively if present. Set Abit to
!                --  the maximum for all variant parts.
  
!                if Present (Variant_Part (CL)) then
!                   declare
!                      Var_Start : constant Uint := Nbit;
!                   begin
!                      Variant := First (Variants (Variant_Part (CL)));
!                      while Present (Variant) loop
!                         Check_Component_List
!                           (No_List, Component_List (Variant), Var_Start, Nbit);
!                         Next (Variant);
!                         if Nbit > Abit then
!                            Abit := Nbit;
!                         end if;
!                      end loop;
!                   end;
!                end if;
!             end;
           end Check_Component_List;
  
           --  Local variables
--- 12285,12441 ----
              Sbit : Uint;
              Abit : out Uint)
           is
!             Compl : constant Natural :=
!               Natural (List_Length (Component_Items (CL)) + List_Length (DS));
  
!             Comps : array (Natural range 0 .. Compl) of Entity_Id;
!             --  Gather components (zero entry is for sort routine)
  
!             Ncomps : Natural := 0;
!             --  Number of entries stored in Comps (starting at Comps (1))
  
!             Citem : Node_Id;
!             --  One component item or discriminant specification
  
!             Nbit  : Uint;
!             --  Starting bit for next component
  
!             CEnt  : Entity_Id;
!             --  Component entity
  
!             Variant : Node_Id;
!             --  One variant
  
!             function Lt (Op1, Op2 : Natural) return Boolean;
!             --  Compare routine for Sort
  
!             procedure Move (From : Natural; To : Natural);
!             --  Move routine for Sort
  
!             package Sorting is new GNAT.Heap_Sort_G (Move, Lt);
  
!             --------
!             -- Lt --
!             --------
  
!             function Lt (Op1, Op2 : Natural) return Boolean is
!                K1 : constant Boolean :=
!                  Known_Component_Bit_Offset (Comps (Op1));
!                K2 : constant Boolean :=
!                  Known_Component_Bit_Offset (Comps (Op2));
!                --  Record representation clauses can be incomplete, so the
!                --  Component_Bit_Offsets can be unknown.
!             begin
!                if K1 then
!                   if K2 then
!                      return Component_Bit_Offset (Comps (Op1))
!                           < Component_Bit_Offset (Comps (Op2));
                    else
!                      return True;
                    end if;
!                else
!                   return K2;
!                end if;
!             end Lt;
  
!             ----------
!             -- Move --
!             ----------
  
+             procedure Move (From : Natural; To : Natural) is
              begin
!                Comps (To) := Comps (From);
!             end Move;
  
!          --  Start of processing for Check_Component_List
  
!          begin
!             --  Gather discriminants into Comp
  
!             Citem := First (DS);
!             while Present (Citem) loop
!                if Nkind (Citem) = N_Discriminant_Specification then
!                   declare
!                      Ent : constant Entity_Id :=
!                              Defining_Identifier (Citem);
!                   begin
!                      if Ekind (Ent) = E_Discriminant then
!                         Ncomps := Ncomps + 1;
!                         Comps (Ncomps) := Ent;
!                      end if;
!                   end;
!                end if;
  
!                Next (Citem);
!             end loop;
  
!             --  Gather component entities into Comp
  
!             Citem := First (Component_Items (CL));
!             while Present (Citem) loop
!                if Nkind (Citem) = N_Component_Declaration then
!                   Ncomps := Ncomps + 1;
!                   Comps (Ncomps) := Defining_Identifier (Citem);
!                end if;
  
!                Next (Citem);
!             end loop;
  
!             --  Now sort the component entities based on the first bit.
!             --  Note we already know there are no overlapping components.
  
!             Sorting.Sort (Ncomps);
  
!             --  Loop through entries checking for holes
  
!             Nbit := Sbit;
!             for J in 1 .. Ncomps loop
!                CEnt := Comps (J);
!                pragma Annotate (CodePeer, Modified, CEnt);
  
!                declare
!                   CBO : constant Uint := Component_Bit_Offset (CEnt);
  
!                begin
!                   --  Skip components with unknown offsets
  
!                   if Present (CBO) and then CBO >= 0 then
!                      Error_Msg_Uint_1 := CBO - Nbit;
! 
!                      if Warn and then Error_Msg_Uint_1 > 0 then
!                         Error_Msg_NE
!                           ("?.h?^-bit gap before component&",
!                            Component_Name (Component_Clause (CEnt)),
!                            CEnt);
                       end if;
  
!                      Nbit := CBO + Esize (CEnt);
!                   end if;
!                end;
!             end loop;
  
!             --  Set Abit to just after the last nonvariant component
  
!             Abit := Nbit;
  
!             --  Process variant parts recursively if present. Set Abit to the
!             --  maximum for all variant parts.
! 
!             if Present (Variant_Part (CL)) then
!                declare
!                   Var_Start : constant Uint := Nbit;
!                begin
!                   Variant := First (Variants (Variant_Part (CL)));
!                   while Present (Variant) loop
!                      Check_Component_List
!                        (No_List, Component_List (Variant), Var_Start, Nbit);
!                      Next (Variant);
!                      if Nbit > Abit then
!                         Abit := Nbit;
!                      end if;
!                   end loop;
!                end;
!             end if;
           end Check_Component_List;
  
           --  Local variables
*************** package body Sem_Ch13 is
*** 13149,13154 ****
--- 13556,13562 ----
                 then
                    if Get_Aspect_Id (Ritem) in Aspect_CPU
                                              | Aspect_Dynamic_Predicate
+                                             | Aspect_Ghost_Predicate
                                              | Aspect_Predicate
                                              | Aspect_Static_Predicate
                                              | Aspect_Priority
*************** package body Sem_Ch13 is
*** 14161,14167 ****
        --   transformed into just "(S /= 0)", which would appear to be
        --   a predicate-static expression (and therefore legal).
  
!       if Original_Node (Expr) /= Expr then
  
           --  Emit warnings for predicates that are always True or always False
           --  and were not originally expressed as Boolean literals.
--- 14569,14575 ----
        --   transformed into just "(S /= 0)", which would appear to be
        --   a predicate-static expression (and therefore legal).
  
!       if Is_Rewrite_Substitution (Expr) then
  
           --  Emit warnings for predicates that are always True or always False
           --  and were not originally expressed as Boolean literals.
*************** package body Sem_Ch13 is
*** 15419,15433 ****
  
        function Visible_Component (Comp : Name_Id) return Entity_Id is
           E : Entity_Id;
        begin
!          --  Types with nameable components are record, task, and protected
!          --  types, and discriminated private types.
  
!          if Ekind (T) in E_Record_Type
!                        | E_Task_Type
!                        | E_Protected_Type
!            or else (Is_Private_Type (T) and then Has_Discriminants (T))
!          then
              --  This is a sequential search, which seems acceptable
              --  efficiency-wise, given the typical size of component
              --  lists, protected operation lists, task item lists, and
--- 15827,15837 ----
  
        function Visible_Component (Comp : Name_Id) return Entity_Id is
           E : Entity_Id;
+ 
        begin
!          --  Types with nameable components are record, task, protected types
  
!          if Ekind (T) in E_Record_Type | E_Task_Type | E_Protected_Type then
              --  This is a sequential search, which seems acceptable
              --  efficiency-wise, given the typical size of component
              --  lists, protected operation lists, task item lists, and
*************** package body Sem_Ch13 is
*** 15441,15446 ****
--- 15845,15890 ----
  
                 Next_Entity (E);
              end loop;
+ 
+          --  Private discriminated types may have visible discriminants
+ 
+          elsif Is_Private_Type (T) and then Has_Discriminants (T) then
+             declare
+                Decl : constant Node_Id := Declaration_Node (T);
+ 
+                Discr : Node_Id;
+ 
+             begin
+                --  Loop over the discriminants listed in the discriminant part
+                --  of the private type declaration to find one with a matching
+                --  name; then, if it exists, return the discriminant entity of
+                --  the same name in the type, which is that of its full view.
+ 
+                if Nkind (Decl) in N_Private_Extension_Declaration
+                                 | N_Private_Type_Declaration
+                  and then Present (Discriminant_Specifications (Decl))
+                then
+                   Discr := First (Discriminant_Specifications (Decl));
+ 
+                   while Present (Discr) loop
+                      if Chars (Defining_Identifier (Discr)) = Comp then
+                         Discr := First_Discriminant (T);
+ 
+                         while Present (Discr) loop
+                            if Chars (Discr) = Comp then
+                               return Discr;
+                            end if;
+ 
+                            Next_Discriminant (Discr);
+                         end loop;
+ 
+                         pragma Assert (False);
+                      end if;
+ 
+                      Next (Discr);
+                   end loop;
+                end if;
+             end;
           end if;
  
           --  Nothing by that name
*************** package body Sem_Ch13 is
*** 15540,15545 ****
--- 15984,15993 ----
                       Resolve_Aspect_Stable_Properties
                         (Entity (ASN), Expr, Class_Present (ASN));
  
+                   when Aspect_Local_Restrictions =>
+                      --  Expression is an aggregate, but only syntactically
+                      null;
+ 
                    --  For now we only deal with aspects that do not generate
                    --  subprograms, or that may mention current instances of
                    --  types. These will require special handling???.
*************** package body Sem_Ch13 is
*** 15550,15570 ****
                       null;
  
                    when Aspect_Dynamic_Predicate
!                      | Aspect_Static_Predicate
                       | Aspect_Predicate
                    =>
                       --  Preanalyze expression after type replacement to catch
                       --  name resolution errors if the predicate function has
                       --  not been built yet.
                       --  Note that we cannot use Preanalyze_Spec_Expression
!                      --  because of the special handling required for
!                      --  quantifiers, see comments on Resolve_Aspect_Expression
!                      --  above.
  
                       if No (Predicate_Function (E)) then
!                         Push_Type (E);
!                         Resolve_Aspect_Expression (Expr);
!                         Pop_Type (E);
                       end if;
  
                    when Pre_Post_Aspects =>
--- 15998,16033 ----
                       null;
  
                    when Aspect_Dynamic_Predicate
!                      | Aspect_Ghost_Predicate
                       | Aspect_Predicate
+                      | Aspect_Static_Predicate
                    =>
                       --  Preanalyze expression after type replacement to catch
                       --  name resolution errors if the predicate function has
                       --  not been built yet.
+ 
                       --  Note that we cannot use Preanalyze_Spec_Expression
!                      --  directly because of the special handling required for
!                      --  quantifiers (see comments on Resolve_Aspect_Expression
!                      --  above) but we need to emulate it properly.
  
                       if No (Predicate_Function (E)) then
!                         declare
!                            Save_In_Spec_Expression : constant Boolean :=
!                                                        In_Spec_Expression;
!                            Save_Full_Analysis : constant Boolean :=
!                                                   Full_Analysis;
!                         begin
!                            In_Spec_Expression := True;
!                            Full_Analysis := False;
!                            Expander_Mode_Save_And_Set (False);
!                            Push_Type (E);
!                            Resolve_Aspect_Expression (Expr);
!                            Pop_Type (E);
!                            Expander_Mode_Restore;
!                            Full_Analysis := Save_Full_Analysis;
!                            In_Spec_Expression := Save_In_Spec_Expression;
!                         end;
                       end if;
  
                    when Pre_Post_Aspects =>
*************** package body Sem_Ch13 is
*** 15677,15682 ****
--- 16140,16213 ----
        end loop;
     end Parse_Aspect_Aggregate;
  
+    -------------------------------------
+    -- Parse_Aspect_Local_Restrictions --
+    -------------------------------------
+ 
+    function Parse_Aspect_Local_Restrictions (Aspect_Spec : Node_Id)
+      return Local_Restrict.Local_Restriction_Set
+    is
+       use Local_Restrict;
+ 
+       Result : Local_Restriction_Set := (others => False);
+       Id     : Node_Id := Expression (Aspect_Spec);
+       Is_Agg : constant Boolean := Nkind (Id) = N_Aggregate
+         and then not Is_Empty_List (Expressions (Id));
+    begin
+       if Is_Agg then
+          Id := First (Expressions (Id));
+       end if;
+ 
+       while Present (Id) loop
+          if Nkind (Id) /= N_Identifier then
+             Error_Msg_N ("local restriction name not an identifier", Id);
+             exit;
+          end if;
+ 
+          declare
+             Found : Boolean := False;
+             Nam : constant Name_Id := Chars (Id);
+          begin
+             for L_R in Local_Restriction loop
+                declare
+                   S : String := L_R'Img;
+                begin
+                   --  Note that the instance of System.Case_Util.To_Lower that
+                   --  has signature
+                   --
+                   --     function To_Lower (A : String) return String
+                   --
+                   --  cannot be used here because it is not present in the
+                   --  run-time library used by the bootstrap compiler at the
+                   --  time of writing.
+                   To_Lower (S);
+                   if Length_Of_Name (Nam) = S'Length
+                     and then Get_Name_String (Nam) = S
+                   then
+                      if Result (L_R) then
+                         Error_Msg_N ("local restriction duplicated", Id);
+                         exit;
+                      end if;
+                      Found := True;
+                      Result (L_R) := True;
+                      exit;
+                   end if;
+                end;
+             end loop;
+ 
+             if not Found then
+                Error_Msg_N ("invalid local restriction name", Id);
+                exit;
+             end if;
+          end;
+ 
+          exit when not Is_Agg;
+          Next (Id);
+       end loop;
+ 
+       return Result;
+    end Parse_Aspect_Local_Restrictions;
+ 
     ------------------------------------
     -- Parse_Aspect_Stable_Properties --
     ------------------------------------
*************** package body Sem_Ch13 is
*** 15687,15693 ****
        function Extract_Entity (Expr : Node_Id) return Entity_Id;
        --  Given an element of a Stable_Properties aspect spec, return the
        --  associated entity.
!       --  This function updates the Negated flag as a side-effect.
  
        --------------------
        -- Extract_Entity --
--- 16218,16224 ----
        function Extract_Entity (Expr : Node_Id) return Entity_Id;
        --  Given an element of a Stable_Properties aspect spec, return the
        --  associated entity.
!       --  This function updates the Negated flag as a side effect.
  
        --------------------
        -- Extract_Entity --
*************** package body Sem_Ch13 is
*** 15794,15802 ****
        end if;
     end Validate_Aspect_Aggregate;
  
!    -------------------------------
     -- Validate_Aspect_Stable_Properties --
!    -------------------------------
  
     procedure Validate_Aspect_Stable_Properties
       (E : Entity_Id; N : Node_Id; Class_Present : Boolean)
--- 16325,16380 ----
        end if;
     end Validate_Aspect_Aggregate;
  
!    -----------------------------------------
!    --  Validate_Aspect_Local_Restrictions --
!    -----------------------------------------
! 
!    procedure Validate_Aspect_Local_Restrictions (E : Entity_Id; N : Node_Id) is
!       use Local_Restrict;
!    begin
!       --  Do not check Is_Parenthesis_Aggregate. We don't want to
!       --  disallow the more familiar parens, but we also don't
!       --  want to require parens for a homogeneous list.
! 
!       if Nkind (N) = N_Identifier and then Paren_Count (N) = 1 then
!          --  a positional aggregate with one element (in effect) is ok
!          null;
!       elsif Nkind (N) /= N_Aggregate
!         or else No (Expressions (N))
!         or else Present (Component_Associations (N))
!       then
!          Error_Msg_N
!            ("aspect Local_Restrictions requires a parenthesized list", N);
!          return;
!       end if;
! 
!       declare
!          Set : constant Local_Restriction_Set
!            := Parse_Aspect_Local_Restrictions (Parent (N));
!          pragma Unreferenced (Set);
!       begin
!          null;
!       end;
! 
!       --  This will be relaxed later, e.g. for generic subprograms or
!       --  for packages.
! 
!       if Ekind (E) in Subprogram_Kind | E_Package then
!          if Get_Renamed_Entity (E) /= E then
!             Error_Msg_N
!               ("aspect Local_Restrictions cannot be specified for "
!                  & "a renaming", N);
!          end if;
!       else
!          Error_Msg_N
!            ("aspect Local_Restrictions can only be specified for "
!               & "a subprogram or package spec", N);
!       end if;
!    end Validate_Aspect_Local_Restrictions;
! 
!    ---------------------------------------
     -- Validate_Aspect_Stable_Properties --
!    ---------------------------------------
  
     procedure Validate_Aspect_Stable_Properties
       (E : Entity_Id; N : Node_Id; Class_Present : Boolean)
*************** package body Sem_Ch13 is
*** 15882,15888 ****
     begin
        Error_Msg_Ada_2022_Feature ("aspect Stable_Properties", Sloc (N));
  
!       if (not Is_Aspect_Of_Type) and then (not Is_Subprogram (E)) then
           Error_Msg_N ("Stable_Properties aspect can only be specified for "
                        & "a type or a subprogram", N);
        elsif Class_Present then
--- 16460,16466 ----
     begin
        Error_Msg_Ada_2022_Feature ("aspect Stable_Properties", Sloc (N));
  
!       if not Is_Aspect_Of_Type and then not Is_Subprogram (E) then
           Error_Msg_N ("Stable_Properties aspect can only be specified for "
                        & "a type or a subprogram", N);
        elsif Class_Present then
*************** package body Sem_Ch13 is
*** 15905,15911 ****
        if Nkind (N) = N_Aggregate then
           if Present (Component_Associations (N))
              or else Null_Record_Present (N)
!             or else not Present (Expressions (N))
           then
              Error_Msg_N ("bad Stable_Properties aspect specification", N);
              return;
--- 16483,16489 ----
        if Nkind (N) = N_Aggregate then
           if Present (Component_Associations (N))
              or else Null_Record_Present (N)
!             or else No (Expressions (N))
           then
              Error_Msg_N ("bad Stable_Properties aspect specification", N);
              return;
*************** package body Sem_Ch13 is
*** 16269,16275 ****
           Op_Name := Chars (First (Choices (Assoc)));
  
           --  When verifying the consistency of aspects between the freeze point
!          --  and the end of declarqtions, we use a copy which is not analyzed
           --  yet, so do it now.
  
           Subp_Id := Expression (Assoc);
--- 16847,16853 ----
           Op_Name := Chars (First (Choices (Assoc)));
  
           --  When verifying the consistency of aspects between the freeze point
!          --  and the end of declarations, we use a copy which is not analyzed
           --  yet, so do it now.
  
           Subp_Id := Expression (Assoc);
*************** package body Sem_Ch13 is
*** 16343,16349 ****
              It : Interp;
  
              function Is_Property_Function (E : Entity_Id) return Boolean;
!             --  Implements RM 7.3.4 definition of "property function".
  
              function Is_Property_Function (E : Entity_Id) return Boolean is
              begin
--- 16921,16931 ----
              It : Interp;
  
              function Is_Property_Function (E : Entity_Id) return Boolean;
!             --  Implements RM 7.3.4 definition of "property function"
! 
!             --------------------------
!             -- Is_Property_Function --
!             --------------------------
  
              function Is_Property_Function (E : Entity_Id) return Boolean is
              begin
*************** package body Sem_Ch13 is
*** 16359,16365 ****
  
                    function Matches_Param_Type (Typ : Entity_Id)
                      return Boolean is
!                     ((Base_Type (Typ) = Param_Type)
                       or else
                       (Is_Class_Wide_Type (Param_Type)
                        and then Is_Ancestor (Root_Type (Param_Type),
--- 16941,16947 ----
  
                    function Matches_Param_Type (Typ : Entity_Id)
                      return Boolean is
!                     (Base_Type (Typ) = Param_Type
                       or else
                       (Is_Class_Wide_Type (Param_Type)
                        and then Is_Ancestor (Root_Type (Param_Type),
*************** package body Sem_Ch13 is
*** 16876,16883 ****
        Sz : Unat;
  
     begin
-       Reinit_Alignment (T);
- 
        --  Find the minimum standard size (8,16,32,64,128) that fits
  
        Lo := Enumeration_Rep (Entity (Type_Low_Bound (T)));
--- 17458,17463 ----
*************** package body Sem_Ch13 is
*** 17742,17753 ****
          and then Is_Descendant_Of_Address (Source)
          and then In_Same_Source_Unit (Target, N)
        then
!          Set_Can_Use_Internal_Rep (Target, False);
        elsif Is_Access_Subprogram_Type (Source)
          and then Is_Descendant_Of_Address (Target)
          and then In_Same_Source_Unit (Source, N)
        then
!          Set_Can_Use_Internal_Rep (Source, False);
        end if;
  
        --  Generate N_Validate_Unchecked_Conversion node for back end in case
--- 18322,18333 ----
          and then Is_Descendant_Of_Address (Source)
          and then In_Same_Source_Unit (Target, N)
        then
!          Set_Can_Use_Internal_Rep (Base_Type (Target), False);
        elsif Is_Access_Subprogram_Type (Source)
          and then Is_Descendant_Of_Address (Target)
          and then In_Same_Source_Unit (Source, N)
        then
!          Set_Can_Use_Internal_Rep (Base_Type (Source), False);
        end if;
  
        --  Generate N_Validate_Unchecked_Conversion node for back end in case
*************** package body Sem_Ch13 is
*** 17989,17992 ****
--- 18569,18575 ----
        end loop;
     end Validate_Unchecked_Conversions;
  
+ begin
+    User_Aspect_Support.Analyze_User_Aspect_Aspect_Specification_Hook :=
+      Analyze_User_Aspect_Aspect_Specification'Access;
  end Sem_Ch13;
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch13.ads gcc-14.1.0/gcc/ada/sem_ch13.ads
*** gcc-13.2.0/gcc/ada/sem_ch13.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch13.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 23,28 ****
--- 23,29 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with Local_Restrict;
  with Types; use Types;
  with Sem_Disp; use Sem_Disp;
  with Uintp; use Uintp;
*************** package Sem_Ch13 is
*** 78,85 ****
     procedure Set_Enum_Esize (T : Entity_Id);
     --  This routine sets the Esize field for an enumeration type T, based
     --  on the current representation information available for T. Note that
!    --  the setting of the RM_Size field is not affected. This routine also
!    --  initializes the alignment field to zero.
  
     Unknown_Minimum_Size : constant Nonzero_Int := -1;
  
--- 79,85 ----
     procedure Set_Enum_Esize (T : Entity_Id);
     --  This routine sets the Esize field for an enumeration type T, based
     --  on the current representation information available for T. Note that
!    --  the setting of the RM_Size field is not affected.
  
     Unknown_Minimum_Size : constant Nonzero_Int := -1;
  
*************** package Sem_Ch13 is
*** 147,152 ****
--- 147,157 ----
     --  used to verify the structure of the aspect, and resolve and expand an
     --  aggregate for a container type that carries the aspect.
  
+    function Parse_Aspect_Local_Restrictions (Aspect_Spec : Node_Id)
+      return Local_Restrict.Local_Restriction_Set;
+    --  Utility to unpack the set of local restrictions specified in a
+    --  Local_Restrictions aspect specification.
+ 
     function Parse_Aspect_Stable_Properties
       (Aspect_Spec : Node_Id; Negated : out Boolean) return Subprogram_List;
     --  Utility to unpack the subprograms in a Stable_Properties list;
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch2.adb gcc-14.1.0/gcc/ada/sem_ch2.adb
*** gcc-13.2.0/gcc/ada/sem_ch2.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch2.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch2.ads gcc-14.1.0/gcc/ada/sem_ch2.ads
*** gcc-13.2.0/gcc/ada/sem_ch2.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch2.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch3.adb gcc-14.1.0/gcc/ada/sem_ch3.adb
*** gcc-13.2.0/gcc/ada/sem_ch3.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch3.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch3 is
*** 1442,1467 ****
           end if;
  
           Set_Etype (T, T);
- 
-          --  For SPARK, check that the designated type is compatible with
-          --  respect to volatility with the access type.
- 
-          if SPARK_Mode /= Off
-             and then Comes_From_Source (T)
-          then
-             --  ??? UNIMPLEMENTED
-             --  In the case where the designated type is incomplete at this
-             --  point, performing this check here is harmless but the check
-             --  will need to be repeated when the designated type is complete.
- 
-             --  The preceding call to Comes_From_Source is needed because the
-             --  FE sometimes introduces implicitly declared access types. See,
-             --  for example, the expansion of nested_po.ads in OA28-015.
- 
-             Check_Volatility_Compatibility
-               (Full_Desig, T, "designated type", "access type",
-                Srcpos_Bearer => T);
-          end if;
        end if;
  
        --  If the type has appeared already in a with_type clause, it is frozen
--- 1442,1447 ----
*************** package body Sem_Ch3 is
*** 1688,1693 ****
--- 1668,1698 ----
     -------------------------------------
  
     procedure Add_Internal_Interface_Entities (Tagged_Type : Entity_Id) is
+ 
+       function Error_Posted_In_Formals (Subp : Entity_Id) return Boolean;
+       --  Determine if an error has been posted in some formal of Subp.
+ 
+       -----------------------------
+       -- Error_Posted_In_Formals --
+       -----------------------------
+ 
+       function Error_Posted_In_Formals (Subp : Entity_Id) return Boolean is
+          Formal : Entity_Id := First_Formal (Subp);
+ 
+       begin
+          while Present (Formal) loop
+             if Error_Posted (Formal) then
+                return True;
+             end if;
+ 
+             Next_Formal (Formal);
+          end loop;
+ 
+          return False;
+       end Error_Posted_In_Formals;
+ 
+       --  Local variables
+ 
        Elmt          : Elmt_Id;
        Iface         : Entity_Id;
        Iface_Elmt    : Elmt_Id;
*************** package body Sem_Ch3 is
*** 1741,1746 ****
--- 1746,1831 ----
  
                 pragma Assert (Present (Prim));
  
+                --  Check subtype conformance; we skip this check if errors have
+                --  been reported in the primitive (or in the formals of the
+                --  primitive) because Find_Primitive_Covering_Interface relies
+                --  on the subprogram Type_Conformant to locate the primitive,
+                --  and reports errors if the formals don't match.
+ 
+                if not Error_Posted (Prim)
+                  and then not Error_Posted_In_Formals (Prim)
+                then
+                   declare
+                      Alias_Prim : Entity_Id;
+                      Alias_Typ  : Entity_Id;
+                      Err_Loc    : Node_Id := Empty;
+                      Ret_Type   : Entity_Id;
+ 
+                   begin
+                      --  For inherited primitives, in case of reporting an
+                      --  error, the error must be reported on this primitive
+                      --  (i.e. in the name of its type declaration); otherwise
+                      --  the error would be reported in the formal of the
+                      --  alias primitive defined on its parent type.
+ 
+                      if Nkind (Parent (Prim)) = N_Full_Type_Declaration then
+                         Err_Loc := Prim;
+                      end if;
+ 
+                      --  Check subtype conformance of procedures, functions
+                      --  with matching return type, or functions not returning
+                      --  interface types.
+ 
+                      if Ekind (Prim) = E_Procedure
+                        or else Etype (Iface_Prim) = Etype (Prim)
+                        or else not Is_Interface (Etype (Iface_Prim))
+                      then
+                         Check_Subtype_Conformant
+                           (New_Id  => Prim,
+                            Old_Id  => Iface_Prim,
+                            Err_Loc => Err_Loc,
+                            Skip_Controlling_Formals => True);
+ 
+                      --  Check subtype conformance of functions returning an
+                      --  interface type; temporarily force both entities to
+                      --  return the same type. Required because subprogram
+                      --  Subtype_Conformant does not handle this case.
+ 
+                      else
+                         Ret_Type := Etype (Iface_Prim);
+                         Set_Etype (Iface_Prim, Etype (Prim));
+ 
+                         Check_Subtype_Conformant
+                           (New_Id  => Prim,
+                            Old_Id  => Iface_Prim,
+                            Err_Loc => Err_Loc,
+                            Skip_Controlling_Formals => True);
+ 
+                         Set_Etype (Iface_Prim, Ret_Type);
+                      end if;
+ 
+                      --  Complete the error when reported on inherited
+                      --  primitives.
+ 
+                      if Nkind (Parent (Prim)) = N_Full_Type_Declaration
+                        and then (Error_Posted (Prim)
+                                    or else Error_Posted_In_Formals (Prim))
+                        and then Present (Alias (Prim))
+                      then
+                         Alias_Prim := Ultimate_Alias (Prim);
+                         Alias_Typ  := Find_Dispatching_Type (Alias_Prim);
+ 
+                         if Alias_Typ /= Tagged_Type
+                           and then Is_Ancestor (Alias_Typ, Tagged_Type)
+                         then
+                            Error_Msg_Sloc := Sloc (Alias_Prim);
+                            Error_Msg_N
+                              ("in primitive inherited from #!", Prim);
+                         end if;
+                      end if;
+                   end;
+                end if;
+ 
                 --  Ada 2012 (AI05-0197): If the name of the covering primitive
                 --  differs from the name of the interface primitive then it is
                 --  a private primitive inherited from a parent type. In such
*************** package body Sem_Ch3 is
*** 1868,1874 ****
     -----------------------------------
  
     procedure Analyze_Component_Declaration (N : Node_Id) is
-       Loc : constant Source_Ptr := Sloc (Component_Definition (N));
        Id  : constant Entity_Id  := Defining_Identifier (N);
        E   : constant Node_Id    := Expression (N);
        Typ : constant Node_Id    :=
--- 1953,1958 ----
*************** package body Sem_Ch3 is
*** 2205,2232 ****
           end if;
        end if;
  
-       --  When possible, build the default subtype
- 
-       if Build_Default_Subtype_OK (T) then
-          declare
-             Act_T : constant Entity_Id := Build_Default_Subtype (T, N);
- 
-          begin
-             Set_Etype (Id, Act_T);
- 
-             --  Rewrite component definition to use the constrained subtype
- 
-             Rewrite (Component_Definition (N),
-               Make_Component_Definition (Loc,
-                 Subtype_Indication => New_Occurrence_Of (Act_T, Loc)));
-          end;
-       end if;
- 
        Set_Original_Record_Component (Id, Id);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
  
        Analyze_Dimension (N);
     end Analyze_Component_Declaration;
--- 2289,2297 ----
           end if;
        end if;
  
        Set_Original_Record_Component (Id, Id);
  
!       Analyze_Aspect_Specifications (N, Id);
  
        Analyze_Dimension (N);
     end Analyze_Component_Declaration;
*************** package body Sem_Ch3 is
*** 3224,3229 ****
--- 3289,3295 ----
  
                 if Ada_Version >= Ada_2022
                   and then Present (Aspect_Specifications (N))
+                  and then Expander_Active
                 then
                    Build_Access_Subprogram_Wrapper (N);
                 end if;
*************** package body Sem_Ch3 is
*** 3252,3264 ****
              when N_Derived_Type_Definition =>
                 Derived_Type_Declaration (T, N, T /= Def_Id);
  
-                --  Inherit predicates from parent, and protect against illegal
-                --  derivations.
- 
-                if Is_Type (T) and then Has_Predicates (T) then
-                   Set_Has_Predicates (Def_Id);
-                end if;
- 
                 --  Save the scenario for examination by the ABE Processing
                 --  phase.
  
--- 3318,3323 ----
*************** package body Sem_Ch3 is
*** 3304,3310 ****
        --  case we bypass this.
  
        if Ekind (T) /= E_Void then
!          if not Present (Direct_Primitive_Operations (T)) then
              if Etype (T) = T then
                 Set_Direct_Primitive_Operations (T, New_Elmt_List);
  
--- 3363,3369 ----
        --  case we bypass this.
  
        if Ekind (T) /= E_Void then
!          if No (Direct_Primitive_Operations (T)) then
              if Etype (T) = T then
                 Set_Direct_Primitive_Operations (T, New_Elmt_List);
  
*************** package body Sem_Ch3 is
*** 3316,3323 ****
  
              elsif Etype (T) = Base_Type (T) then
  
!                if not Present (Direct_Primitive_Operations (Base_Type (T)))
!                then
                    Set_Direct_Primitive_Operations
                      (Base_Type (T), New_Elmt_List);
                 end if;
--- 3375,3381 ----
  
              elsif Etype (T) = Base_Type (T) then
  
!                if No (Direct_Primitive_Operations (Base_Type (T))) then
                    Set_Direct_Primitive_Operations
                      (Base_Type (T), New_Elmt_List);
                 end if;
*************** package body Sem_Ch3 is
*** 3335,3341 ****
           --  If T already has a Direct_Primitive_Operations list but its
           --  base type doesn't then set the base type's list to T's list.
  
!          elsif not Present (Direct_Primitive_Operations (Base_Type (T))) then
              Set_Direct_Primitive_Operations
                (Base_Type (T), Direct_Primitive_Operations (T));
           end if;
--- 3393,3399 ----
           --  If T already has a Direct_Primitive_Operations list but its
           --  base type doesn't then set the base type's list to T's list.
  
!          elsif No (Direct_Primitive_Operations (Base_Type (T))) then
              Set_Direct_Primitive_Operations
                (Base_Type (T), Direct_Primitive_Operations (T));
           end if;
*************** package body Sem_Ch3 is
*** 3445,3469 ****
        --  them to the entity for the type which is currently the partial
        --  view, but which is the one that will be frozen.
  
!       if Has_Aspects (N) then
! 
!          --  In most cases the partial view is a private type, and both views
!          --  appear in different declarative parts. In the unusual case where
!          --  the partial view is incomplete, perform the analysis on the
!          --  full view, to prevent freezing anomalies with the corresponding
!          --  class-wide type, which otherwise might be frozen before the
!          --  dispatch table is built.
  
!          if Prev /= Def_Id
!            and then Ekind (Prev) /= E_Incomplete_Type
!          then
!             Analyze_Aspect_Specifications (N, Prev);
  
!          --  Normal case
  
!          else
!             Analyze_Aspect_Specifications (N, Def_Id);
!          end if;
        end if;
  
        if Is_Derived_Type (Prev)
--- 3503,3524 ----
        --  them to the entity for the type which is currently the partial
        --  view, but which is the one that will be frozen.
  
!       --  In most cases the partial view is a private type, and both views
!       --  appear in different declarative parts. In the unusual case where
!       --  the partial view is incomplete, perform the analysis on the
!       --  full view, to prevent freezing anomalies with the corresponding
!       --  class-wide type, which otherwise might be frozen before the
!       --  dispatch table is built.
  
!       if Prev /= Def_Id
!         and then Ekind (Prev) /= E_Incomplete_Type
!       then
!          Analyze_Aspect_Specifications (N, Prev);
  
!       --  Normal case
  
!       else
!          Analyze_Aspect_Specifications (N, Def_Id);
        end if;
  
        if Is_Derived_Type (Prev)
*************** package body Sem_Ch3 is
*** 3613,3619 ****
     --------------------------------
  
     procedure Analyze_Number_Declaration (N : Node_Id) is
!       E     : constant Node_Id   := Expression (N);
        Id    : constant Entity_Id := Defining_Identifier (N);
        Index : Interp_Index;
        It    : Interp;
--- 3668,3674 ----
     --------------------------------
  
     procedure Analyze_Number_Declaration (N : Node_Id) is
!       E     : Node_Id            := Expression (N);
        Id    : constant Entity_Id := Defining_Identifier (N);
        Index : Interp_Index;
        It    : Interp;
*************** package body Sem_Ch3 is
*** 3639,3652 ****
  
        Set_Is_Pure (Id, Is_Pure (Current_Scope));
  
-       --  Process expression, replacing error by integer zero, to avoid
-       --  cascaded errors or aborts further along in the processing
- 
        --  Replace Error by integer zero, which seems least likely to cause
        --  cascaded errors.
  
        if E = Error then
!          Rewrite (E, Make_Integer_Literal (Sloc (E), Uint_0));
           Set_Error_Posted (E);
        end if;
  
--- 3694,3706 ----
  
        Set_Is_Pure (Id, Is_Pure (Current_Scope));
  
        --  Replace Error by integer zero, which seems least likely to cause
        --  cascaded errors.
  
        if E = Error then
!          pragma Assert (Serious_Errors_Detected > 0);
!          E := Make_Integer_Literal (Sloc (N), Uint_0);
!          Set_Expression (N, E);
           Set_Error_Posted (E);
        end if;
  
*************** package body Sem_Ch3 is
*** 3658,3666 ****
  
        if not Is_Overloaded (E) then
           T := Etype (E);
!          if Has_Dynamic_Predicate_Aspect (T) then
              Error_Msg_N
!               ("subtype has dynamic predicate, "
                 & "not allowed in number declaration", N);
           end if;
  
--- 3712,3722 ----
  
        if not Is_Overloaded (E) then
           T := Etype (E);
!          if Has_Dynamic_Predicate_Aspect (T)
!            or else Has_Ghost_Predicate_Aspect (T)
!          then
              Error_Msg_N
!               ("subtype has non-static predicate, "
                 & "not allowed in number declaration", N);
           end if;
  
*************** package body Sem_Ch3 is
*** 4376,4382 ****
  
        --  If not a deferred constant, then the object declaration freezes
        --  its type, unless the object is of an anonymous type and has delayed
!       --  aspects. In that case the type is frozen when the object itself is.
  
        else
           Check_Fully_Declared (T, N);
--- 4432,4439 ----
  
        --  If not a deferred constant, then the object declaration freezes
        --  its type, unless the object is of an anonymous type and has delayed
!       --  aspects (in that case the type is frozen when the object itself is)
!       --  or the context is a spec expression.
  
        else
           Check_Fully_Declared (T, N);
*************** package body Sem_Ch3 is
*** 4386,4392 ****
             and then Is_Itype (T)
           then
              Set_Has_Delayed_Freeze (T);
!          else
              Freeze_Before (N, T);
           end if;
        end if;
--- 4443,4449 ----
             and then Is_Itype (T)
           then
              Set_Has_Delayed_Freeze (T);
!          elsif not In_Spec_Expression then
              Freeze_Before (N, T);
           end if;
        end if;
*************** package body Sem_Ch3 is
*** 4694,4699 ****
--- 4751,4766 ----
           elsif No (E) and then Is_Null_Record_Type (T) then
              null;
  
+          --  If there is an address clause for this object, do not generate a
+          --  predicate check here. It will be generated later, at the freezng
+          --  point. It would be wrong to generate references to the object
+          --  here, before the address has been determined.
+ 
+          elsif Has_Aspect (Id, Aspect_Address)
+            or else Present (Following_Address_Clause (N))
+          then
+             null;
+ 
           --  Do not generate a predicate check if the initialization expression
           --  is a type conversion whose target subtype statically matches the
           --  object's subtype because the conversion has been subjected to the
*************** package body Sem_Ch3 is
*** 4713,4719 ****
              declare
                 Check : constant Node_Id :=
                           Make_Predicate_Check (T, New_Occurrence_Of (Id, Loc));
- 
              begin
                 if No (Next_Decl) then
                    Append_To (List_Containing (N), Check);
--- 4780,4785 ----
*************** package body Sem_Ch3 is
*** 4890,4912 ****
  
              if Act_T /= T then
                 declare
!                   Full_View_Present : constant Boolean :=
!                     Is_Private_Type (Act_T)
!                       and then Present (Full_View (Act_T));
                    --  Propagate attributes to full view when needed
  
                 begin
                    Set_Is_Constr_Subt_For_U_Nominal (Act_T);
  
!                   if Full_View_Present then
!                      Set_Is_Constr_Subt_For_U_Nominal (Full_View (Act_T));
                    end if;
  
!                   if Aliased_Present (N) then
!                      Set_Is_Constr_Subt_For_UN_Aliased (Act_T);
  
!                      if Full_View_Present then
!                         Set_Is_Constr_Subt_For_UN_Aliased (Full_View (Act_T));
                       end if;
                    end if;
  
--- 4956,4987 ----
  
              if Act_T /= T then
                 declare
!                   Full_Act_T : constant Entity_Id :=
!                     (if Is_Private_Type (Act_T)
!                      then Full_View (Act_T)
!                      else Empty);
                    --  Propagate attributes to full view when needed
  
                 begin
                    Set_Is_Constr_Subt_For_U_Nominal (Act_T);
  
!                   if Present (Full_Act_T) then
!                      Set_Is_Constr_Subt_For_U_Nominal (Full_Act_T);
                    end if;
  
!                   --  If the object is aliased, then it may be pointed to by an
!                   --  access-to-unconstrained-array value, which means that it
!                   --  must be allocated with its bounds.
  
!                   if Aliased_Present (N)
!                     and then (Is_Array_Type (Act_T)
!                                or else (Present (Full_Act_T)
!                                          and then Is_Array_Type (Full_Act_T)))
!                   then
!                      Set_Is_Constr_Array_Subt_With_Bounds (Act_T);
! 
!                      if Present (Full_Act_T) then
!                         Set_Is_Constr_Array_Subt_With_Bounds (Full_Act_T);
                       end if;
                    end if;
  
*************** package body Sem_Ch3 is
*** 4956,4964 ****
              Apply_Length_Check (E, T);
           end if;
  
!       --  When possible, build the default subtype
  
!       elsif Build_Default_Subtype_OK (T) then
           if No (E) then
              Act_T := Build_Default_Subtype (T, N);
           else
--- 5031,5041 ----
              Apply_Length_Check (E, T);
           end if;
  
!       --  When possible, and not a deferred constant, build the default subtype
  
!       elsif Build_Default_Subtype_OK (T)
!         and then (not Constant_Present (N) or else Present (E))
!       then
           if No (E) then
              Act_T := Build_Default_Subtype (T, N);
           else
*************** package body Sem_Ch3 is
*** 4971,4976 ****
--- 5048,5054 ----
           end if;
  
           Rewrite (Object_Definition (N), New_Occurrence_Of (Act_T, Loc));
+          Freeze_Before (N, Act_T);
  
        elsif Nkind (E) = N_Function_Call
          and then Constant_Present (N)
*************** package body Sem_Ch3 is
*** 5229,5237 ****
           Set_Encapsulating_State (Id, Empty);
        end if;
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
  
        Analyze_Dimension (N);
  
--- 5307,5313 ----
           Set_Encapsulating_State (Id, Empty);
        end if;
  
!       Analyze_Aspect_Specifications (N, Id);
  
        Analyze_Dimension (N);
  
*************** package body Sem_Ch3 is
*** 5375,5381 ****
        Set_Convention       (T, Convention     (Parent_Type));
        Set_First_Rep_Item   (T, First_Rep_Item (Parent_Type));
        Set_Is_First_Subtype (T);
-       Make_Class_Wide_Type (T);
  
        --  Set the SPARK mode from the current context
  
--- 5451,5456 ----
*************** package body Sem_Ch3 is
*** 5511,5519 ****
        Set_Has_Private_Extension (Parent_Type);
  
     <<Leave>>
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, T);
!       end if;
     end Analyze_Private_Extension_Declaration;
  
     ---------------------------------
--- 5586,5592 ----
        Set_Has_Private_Extension (Parent_Type);
  
     <<Leave>>
!       Analyze_Aspect_Specifications (N, T);
     end Analyze_Private_Extension_Declaration;
  
     ---------------------------------
*************** package body Sem_Ch3 is
*** 5544,5550 ****
        --  avoided here, when the created subtype declaration is analyzed. (See
        --  Build_Derived_Types)
  
!       --  This also happens when the full view of a private type is derived
        --  type with constraints. In this case the entity has been introduced
        --  in the private declaration.
  
--- 5617,5623 ----
        --  avoided here, when the created subtype declaration is analyzed. (See
        --  Build_Derived_Types)
  
!       --  This also happens when the full view of a private type is a derived
        --  type with constraints. In this case the entity has been introduced
        --  in the private declaration.
  
*************** package body Sem_Ch3 is
*** 5958,5974 ****
        --  If this is a subtype declaration for an actual in an instance,
        --  inherit static and dynamic predicates if any.
  
-       --  If declaration has no aspect specifications, inherit predicate
-       --  info as well. Unclear how to handle the case of both specified
-       --  and inherited predicates ??? Other inherited aspects, such as
-       --  invariants, should be OK, but the combination with later pragmas
-       --  may also require special merging.
- 
        if Has_Predicates (T)
          and then Present (Predicate_Function (T))
!         and then
!           ((In_Instance and then not Comes_From_Source (N))
!              or else No (Aspect_Specifications (N)))
        then
           --  Inherit Subprograms_For_Type from the full view, if present
  
--- 6031,6040 ----
        --  If this is a subtype declaration for an actual in an instance,
        --  inherit static and dynamic predicates if any.
  
        if Has_Predicates (T)
          and then Present (Predicate_Function (T))
!         and then In_Instance
!         and then not Comes_From_Source (N)
        then
           --  Inherit Subprograms_For_Type from the full view, if present
  
*************** package body Sem_Ch3 is
*** 6133,6141 ****
        Check_Eliminated (Id);
  
     <<Leave>>
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
  
        Analyze_Dimension (N);
  
--- 6199,6205 ----
        Check_Eliminated (Id);
  
     <<Leave>>
!       Analyze_Aspect_Specifications (N, Id);
  
        Analyze_Dimension (N);
  
*************** package body Sem_Ch3 is
*** 6462,6474 ****
        end if;
  
        if Nkind (Def) = N_Constrained_Array_Definition then
- 
-          if Ekind (T) in Incomplete_Or_Private_Kind then
-             Reinit_Field_To_Zero (T, F_Stored_Constraint);
-          else
-             pragma Assert (Ekind (T) = E_Void);
-          end if;
- 
           --  Establish Implicit_Base as unconstrained base type
  
           Implicit_Base := Create_Itype (E_Array_Type, P, Related_Id, 'B');
--- 6526,6531 ----
*************** package body Sem_Ch3 is
*** 6509,6521 ****
        --  Unconstrained array case
  
        else pragma Assert (Nkind (Def) = N_Unconstrained_Array_Definition);
- 
-          if Ekind (T) in Incomplete_Or_Private_Kind then
-             Reinit_Field_To_Zero (T, F_Stored_Constraint);
-          else
-             pragma Assert (Ekind (T) = E_Void);
-          end if;
- 
           Mutate_Ekind                 (T, E_Array_Type);
           Reinit_Size_Align            (T);
           Set_Etype                    (T, T);
--- 6566,6571 ----
*************** package body Sem_Ch3 is
*** 6862,6886 ****
        declare
           Asp  : Node_Id;
           A_Id : Aspect_Id;
-          Cond : Node_Id;
-          Expr : Node_Id;
  
        begin
           Asp := First (Aspect_Specifications (Decl));
           while Present (Asp) loop
              A_Id := Get_Aspect_Id (Chars (Identifier (Asp)));
              if A_Id = Aspect_Pre or else A_Id = Aspect_Post then
!                Cond := Asp;
!                Expr := Expression (Cond);
!                Replace_Type_Name (Expr);
!                Next (Asp);
! 
!                Remove (Cond);
!                Append (Cond, Contracts);
! 
!             else
!                Next (Asp);
              end if;
           end loop;
        end;
  
--- 6912,6927 ----
        declare
           Asp  : Node_Id;
           A_Id : Aspect_Id;
  
        begin
           Asp := First (Aspect_Specifications (Decl));
           while Present (Asp) loop
              A_Id := Get_Aspect_Id (Chars (Identifier (Asp)));
              if A_Id = Aspect_Pre or else A_Id = Aspect_Post then
!                Append (New_Copy_Tree (Asp), Contracts);
!                Replace_Type_Name (Expression (Last (Contracts)));
              end if;
+             Next (Asp);
           end loop;
        end;
  
*************** package body Sem_Ch3 is
*** 6938,6953 ****
        --  may be handled as a dispatching operation and erroneously registered
        --  in a dispatch table.
  
!       if not GNATprove_Mode then
!          Append_Freeze_Action (Id, New_Decl);
! 
!       --  Under GNATprove mode there is no such problem but we do not declare
!       --  it in the freezing actions since they are not analyzed under this
!       --  mode.
! 
!       else
!          Insert_After (Decl, New_Decl);
!       end if;
  
        Set_Access_Subprogram_Wrapper (Designated_Type (Id), Subp);
        Build_Access_Subprogram_Wrapper_Body (Decl, New_Decl);
--- 6979,6985 ----
        --  may be handled as a dispatching operation and erroneously registered
        --  in a dispatch table.
  
!       Append_Freeze_Action (Id, New_Decl);
  
        Set_Access_Subprogram_Wrapper (Designated_Type (Id), Subp);
        Build_Access_Subprogram_Wrapper_Body (Decl, New_Decl);
*************** package body Sem_Ch3 is
*** 7055,7061 ****
        Desig_Type := Designated_Type (Derived_Type);
  
        if Is_Composite_Type (Desig_Type)
!         and then (not Is_Array_Type (Desig_Type))
          and then Has_Discriminants (Desig_Type)
          and then Base_Type (Desig_Type) /= Desig_Type
        then
--- 7087,7093 ----
        Desig_Type := Designated_Type (Derived_Type);
  
        if Is_Composite_Type (Desig_Type)
!         and then not Is_Array_Type (Desig_Type)
          and then Has_Discriminants (Desig_Type)
          and then Base_Type (Desig_Type) /= Desig_Type
        then
*************** package body Sem_Ch3 is
*** 7134,7139 ****
--- 7166,7176 ----
                      Constraint => Constraint (Indic)));
  
              Rewrite (N, New_Indic);
+ 
+             --  Keep the aspects from the original node
+ 
+             Move_Aspects (Original_Node (N), N);
+ 
              Analyze (N);
           end if;
  
*************** package body Sem_Ch3 is
*** 7313,7318 ****
--- 7350,7359 ----
                  Defining_Identifier => Derived_Type,
                  Subtype_Indication  => New_Indic));
  
+             --  Keep the aspects from the original node
+ 
+             Move_Aspects (Original_Node (N), N);
+ 
              Analyze (N);
              return;
           end;
*************** package body Sem_Ch3 is
*** 7333,7339 ****
        Set_Is_Constrained
          (Derived_Type,
           (Is_Constrained (Parent_Type) or else Constraint_Present)
!            and then not Present (Discriminant_Specifications (N)));
  
        if Constraint_Present then
           if not Has_Discriminants (Parent_Type) then
--- 7374,7380 ----
        Set_Is_Constrained
          (Derived_Type,
           (Is_Constrained (Parent_Type) or else Constraint_Present)
!            and then No (Discriminant_Specifications (N)));
  
        if Constraint_Present then
           if not Has_Discriminants (Parent_Type) then
*************** package body Sem_Ch3 is
*** 7603,7608 ****
--- 7644,7650 ----
              end if;
  
              Mutate_Ekind             (New_Lit, E_Enumeration_Literal);
+             Set_Is_Not_Self_Hidden   (New_Lit);
              Set_Enumeration_Pos      (New_Lit, Enumeration_Pos (Literal));
              Set_Enumeration_Rep      (New_Lit, Enumeration_Rep (Literal));
              Set_Enumeration_Rep_Expr (New_Lit, Empty);
*************** package body Sem_Ch3 is
*** 7740,7751 ****
                     Make_Range_Constraint (Loc,
                       Range_Expression => Rang_Expr))));
  
           Analyze (N);
  
           --  Propagate the aspects from the original type declaration to the
           --  declaration of the implicit base.
  
!          Move_Aspects (From => Original_Node (N), To => Type_Decl);
  
           --  Apply a range check. Since this range expression doesn't have an
           --  Etype, we have to specifically pass the Source_Typ parameter. Is
--- 7782,7797 ----
                     Make_Range_Constraint (Loc,
                       Range_Expression => Rang_Expr))));
  
+          --  Keep the aspects from the orignal node
+ 
+          Move_Aspects (Original_Node (N), N);
+ 
           Analyze (N);
  
           --  Propagate the aspects from the original type declaration to the
           --  declaration of the implicit base.
  
!          Copy_Aspects (From => N, To => Type_Decl);
  
           --  Apply a range check. Since this range expression doesn't have an
           --  Etype, we have to specifically pass the Source_Typ parameter. Is
*************** package body Sem_Ch3 is
*** 8137,8142 ****
--- 8183,8189 ----
              Build_Derived_Type
                (N, Full_Parent, Full_Der,
                 Is_Completion => False, Derive_Subps => False);
+             Set_Is_Not_Self_Hidden (Full_Der);
           end if;
  
           Set_Has_Private_Declaration (Full_Der);
*************** package body Sem_Ch3 is
*** 8703,8709 ****
  
     --  5. FIRST TRANSFORMATION FOR DERIVED RECORDS
     --
!    --  Regardless of whether we dealing with a tagged or untagged type
     --  we will transform all derived type declarations of the form
     --
     --               type T is new R (...) [with ...];
--- 8750,8756 ----
  
     --  5. FIRST TRANSFORMATION FOR DERIVED RECORDS
     --
!    --  Regardless of whether we are dealing with a tagged or untagged type
     --  we will transform all derived type declarations of the form
     --
     --               type T is new R (...) [with ...];
*************** package body Sem_Ch3 is
*** 9071,9079 ****
     --  Start of processing for Build_Derived_Record_Type
  
     begin
        if Ekind (Parent_Type) = E_Record_Type_With_Private
-         and then Present (Full_View (Parent_Type))
          and then Has_Discriminants (Parent_Type)
        then
           Parent_Base := Base_Type (Full_View (Parent_Type));
        else
--- 9118,9133 ----
     --  Start of processing for Build_Derived_Record_Type
  
     begin
+       --  If the parent type is a private extension with discriminants, we
+       --  need to have an unconstrained type on which to apply the inherited
+       --  constraint, so we get to the full view. However, this means that the
+       --  derived type and its implicit base type created below will not point
+       --  to the same view of their respective parent type and, thus, special
+       --  glue code like Exp_Ch7.Convert_View is needed to bridge this gap.
+ 
        if Ekind (Parent_Type) = E_Record_Type_With_Private
          and then Has_Discriminants (Parent_Type)
+         and then Present (Full_View (Parent_Type))
        then
           Parent_Base := Base_Type (Full_View (Parent_Type));
        else
*************** package body Sem_Ch3 is
*** 9090,9095 ****
--- 9144,9179 ----
           Parent_Base := Base_Type (Parent_Base);
        end if;
  
+       --  If the parent base is a private type and only its full view has
+       --  discriminants, use the full view's base type.
+ 
+       --  This can happen when we are deriving from a subtype of a derived type
+       --  of a private type derived from a discriminated type with known
+       --  discriminant:
+       --
+       --  package Pkg;
+       --     type Root_Type(I: Positive) is record
+       --       ...
+       --     end record;
+       --     type Bounded_Root_Type is private;
+       --  private
+       --     type Bounded_Root_Type is new Root_Type(10);
+       --  end Pkg;
+       --
+       --  package Pkg2 is
+       --     type Constrained_Root_Type is new Pkg.Bounded_Root_Type;
+       --  end Pkg2;
+       --  subtype Sub_Base is Pkg2.Constrained_Root_Type;
+       --  type New_Der_Type is new Sub_Base;
+ 
+       if Is_Private_Type (Parent_Base)
+         and then Present (Full_View (Parent_Base))
+         and then not Has_Discriminants (Parent_Base)
+         and then Has_Discriminants (Full_View (Parent_Base))
+       then
+          Parent_Base := Base_Type (Full_View (Parent_Base));
+       end if;
+ 
        --  AI05-0115: if this is a derivation from a private type in some
        --  other scope that may lead to invisible components for the derived
        --  type, mark it accordingly.
*************** package body Sem_Ch3 is
*** 9218,9227 ****
        then
           --  First, we must analyze the constraint (see comment in point 5.)
           --  The constraint may come from the subtype indication of the full
!          --  declaration.
  
           if Constraint_Present then
              New_Discrs := Build_Discriminant_Constraints (Parent_Type, Indic);
  
           --  If there is no explicit constraint, there might be one that is
           --  inherited from a constrained parent type. In that case verify that
--- 9302,9315 ----
        then
           --  First, we must analyze the constraint (see comment in point 5.)
           --  The constraint may come from the subtype indication of the full
!          --  declaration. Temporarily set the state of the Derived_Type to
!          --  "self-hidden" (see RM-8.3(17)).
  
           if Constraint_Present then
+             pragma Assert (Is_Not_Self_Hidden (Derived_Type));
+             Set_Is_Not_Self_Hidden (Derived_Type, False);
              New_Discrs := Build_Discriminant_Constraints (Parent_Type, Indic);
+             Set_Is_Not_Self_Hidden (Derived_Type);
  
           --  If there is no explicit constraint, there might be one that is
           --  inherited from a constrained parent type. In that case verify that
*************** package body Sem_Ch3 is
*** 9317,9323 ****
              Is_Completion => False, Derive_Subps => False);
  
           --  ??? This needs re-examination to determine whether the
!          --  above call can simply be replaced by a call to Analyze.
  
           Set_Analyzed (New_Decl);
  
--- 9405,9411 ----
              Is_Completion => False, Derive_Subps => False);
  
           --  ??? This needs re-examination to determine whether the
!          --  following call can simply be replaced by a call to Analyze.
  
           Set_Analyzed (New_Decl);
  
*************** package body Sem_Ch3 is
*** 9362,9367 ****
--- 9450,9459 ----
               Defining_Identifier => Derived_Type,
               Subtype_Indication  => New_Indic));
  
+          --  Keep the aspects from the original node
+ 
+          Move_Aspects (Original_Node (N), N);
+ 
           Analyze (N);
  
           --  Derivation of subprograms must be delayed until the full subtype
*************** package body Sem_Ch3 is
*** 9496,9504 ****
  
        --  AI-419: Limitedness is not inherited from an interface parent, so to
        --  be limited in that case the type must be explicitly declared as
!       --  limited. However, task and protected interfaces are always limited.
  
!       if Limited_Present (Type_Def) then
           Set_Is_Limited_Record (Derived_Type);
  
        elsif Is_Limited_Record (Parent_Type)
--- 9588,9602 ----
  
        --  AI-419: Limitedness is not inherited from an interface parent, so to
        --  be limited in that case the type must be explicitly declared as
!       --  limited, or synchronized. While task and protected interfaces are
!       --  always limited, a synchronized private extension might not inherit
!       --  from such interfaces, and so we also need to recognize the
!       --  explicit limitedness implied by a synchronized private extension
!       --  that does not derive from a synchronized interface (see RM-7.3(6/2)).
  
!       if Limited_Present (Type_Def)
!         or else Synchronized_Present (Type_Def)
!       then
           Set_Is_Limited_Record (Derived_Type);
  
        elsif Is_Limited_Record (Parent_Type)
*************** package body Sem_Ch3 is
*** 9519,9529 ****
        if Discriminant_Specs then
           Set_Has_Unknown_Discriminants (Derived_Type, False);
  
!          --  The following call initializes fields Has_Discriminants and
!          --  Discriminant_Constraint, unless we are processing the completion
!          --  of a private type declaration.
  
!          Check_Or_Process_Discriminants (N, Derived_Type);
  
           --  For untagged types, the constraint on the Parent_Type must be
           --  present and is used to rename the discriminants.
--- 9617,9635 ----
        if Discriminant_Specs then
           Set_Has_Unknown_Discriminants (Derived_Type, False);
  
!          --  The following call to Check_Or_Process_Discriminants initializes
!          --  fields Has_Discriminants and Discriminant_Constraint, unless we
!          --  are processing the completion of a private type declaration.
!          --  Temporarily set the state of the Derived_Type to "self-hidden"
!          --  (see RM-8.3(17)), unless it is already the case.
  
!          if Is_Not_Self_Hidden (Derived_Type) then
!             Set_Is_Not_Self_Hidden (Derived_Type, False);
!             Check_Or_Process_Discriminants (N, Derived_Type);
!             Set_Is_Not_Self_Hidden (Derived_Type);
!          else
!             Check_Or_Process_Discriminants (N, Derived_Type);
!          end if;
  
           --  For untagged types, the constraint on the Parent_Type must be
           --  present and is used to rename the discriminants.
*************** package body Sem_Ch3 is
*** 9923,9928 ****
--- 10029,10039 ----
              Replace_Discriminants (Derived_Type, New_Decl);
           end if;
  
+          --  Relocate the aspects from the original type
+ 
+          Remove_Aspects (New_Decl);
+          Move_Aspects (N, New_Decl);
+ 
           --  Insert the new derived type declaration
  
           Rewrite (N, New_Decl);
*************** package body Sem_Ch3 is
*** 9931,9938 ****
  
        --  There is no completion for record extensions declared in the
        --  parameter part of a generic, so we need to complete processing for
!       --  these generic record extensions here. The Record_Type_Definition call
!       --  will change the Ekind of the components from E_Void to E_Component.
  
        elsif Private_Extension and then Is_Generic_Type (Derived_Type) then
           Record_Type_Definition (Empty, Derived_Type);
--- 10042,10049 ----
  
        --  There is no completion for record extensions declared in the
        --  parameter part of a generic, so we need to complete processing for
!       --  these generic record extensions here. Record_Type_Definition will
!       --  set the Is_Not_Self_Hidden flag.
  
        elsif Private_Extension and then Is_Generic_Type (Derived_Type) then
           Record_Type_Definition (Empty, Derived_Type);
*************** package body Sem_Ch3 is
*** 10030,10038 ****
        --  Set common attributes
  
        if Ekind (Derived_Type) in Incomplete_Or_Private_Kind
!         and then Ekind (Parent_Base) in Modular_Integer_Kind | Array_Kind
        then
!          Reinit_Field_To_Zero (Derived_Type, F_Stored_Constraint);
        end if;
  
        Set_Scope                  (Derived_Type, Current_Scope);
--- 10141,10149 ----
        --  Set common attributes
  
        if Ekind (Derived_Type) in Incomplete_Or_Private_Kind
!         and then Ekind (Parent_Base) in Elementary_Kind
        then
!          Reinit_Field_To_Zero (Derived_Type, F_Discriminant_Constraint);
        end if;
  
        Set_Scope                  (Derived_Type, Current_Scope);
*************** package body Sem_Ch3 is
*** 10139,10153 ****
           end if;
        end if;
  
!       --  We similarly inherit predicates. Note that for scalar derived types
!       --  the predicate is inherited from the first subtype, and not from its
!       --  (anonymous) base type.
  
!       if Has_Predicates (Parent_Type)
!         or else Has_Predicates (First_Subtype (Parent_Type))
!       then
!          Set_Has_Predicates (Derived_Type);
!       end if;
  
        --  The derived type inherits representation clauses from the parent
        --  type, and from any interfaces.
--- 10250,10258 ----
           end if;
        end if;
  
!       --  We similarly inherit predicates
  
!       Inherit_Predicate_Flags (Derived_Type, Parent_Type, Only_Flags => True);
  
        --  The derived type inherits representation clauses from the parent
        --  type, and from any interfaces.
*************** package body Sem_Ch3 is
*** 10232,10238 ****
        --  If not already set, initialize the derived type's list of primitive
        --  operations to an empty element list.
  
!       if not Present (Direct_Primitive_Operations (Derived_Type)) then
           Set_Direct_Primitive_Operations (Derived_Type, New_Elmt_List);
  
           --  If Etype of the derived type is the base type (as opposed to
--- 10337,10343 ----
        --  If not already set, initialize the derived type's list of primitive
        --  operations to an empty element list.
  
!       if No (Direct_Primitive_Operations (Derived_Type)) then
           Set_Direct_Primitive_Operations (Derived_Type, New_Elmt_List);
  
           --  If Etype of the derived type is the base type (as opposed to
*************** package body Sem_Ch3 is
*** 10242,10249 ****
           --  between the two.
  
           if Etype (Derived_Type) = Base_Type (Derived_Type)
!            and then
!              not Present (Direct_Primitive_Operations (Etype (Derived_Type)))
           then
              Set_Direct_Primitive_Operations
                (Etype (Derived_Type),
--- 10347,10353 ----
           --  between the two.
  
           if Etype (Derived_Type) = Base_Type (Derived_Type)
!            and then No (Direct_Primitive_Operations (Etype (Derived_Type)))
           then
              Set_Direct_Primitive_Operations
                (Etype (Derived_Type),
*************** package body Sem_Ch3 is
*** 11514,11520 ****
        --  or else be a partial view.
  
        if Nkind (Discriminant_Type (D)) = N_Access_Definition then
!          if Is_Limited_View (Current_Scope)
             or else
               (Nkind (Parent (Current_Scope)) = N_Private_Type_Declaration
                 and then Limited_Present (Parent (Current_Scope)))
--- 11618,11624 ----
        --  or else be a partial view.
  
        if Nkind (Discriminant_Type (D)) = N_Access_Definition then
!          if Is_Inherently_Limited_Type (Current_Scope)
             or else
               (Nkind (Parent (Current_Scope)) = N_Private_Type_Declaration
                 and then Limited_Present (Parent (Current_Scope)))
*************** package body Sem_Ch3 is
*** 11973,11978 ****
--- 12077,12084 ----
           return;
        end if;
  
+       Set_Is_Not_Self_Hidden (Typ);
+ 
        Comp := First (Component_Items (Comp_List));
        while Present (Comp) loop
           if Nkind (Comp) = N_Component_Declaration then
*************** package body Sem_Ch3 is
*** 12322,12328 ****
        --  Check all components to ensure no default expressions
  
        if Present (Clist) then
!          Comp := First (Component_Items (Clist));
           while Present (Comp) loop
              if Present (Expression (Comp)) then
                 Error_Msg_N
--- 12428,12434 ----
        --  Check all components to ensure no default expressions
  
        if Present (Clist) then
!          Comp := First_Non_Pragma (Component_Items (Clist));
           while Present (Comp) loop
              if Present (Expression (Comp)) then
                 Error_Msg_N
*************** package body Sem_Ch3 is
*** 12330,12336 ****
                    & "default expression", Expression (Comp));
              end if;
  
!             Next (Comp);
           end loop;
        end if;
     end Check_CPP_Type_Has_No_Defaults;
--- 12436,12442 ----
                    & "default expression", Expression (Comp));
              end if;
  
!             Next_Non_Pragma (Comp);
           end loop;
        end if;
     end Check_CPP_Type_Has_No_Defaults;
*************** package body Sem_Ch3 is
*** 12944,12956 ****
  
        --  Set common attributes for all subtypes: kind, convention, etc.
  
!       Mutate_Ekind         (Full, Subtype_Kind (Ekind (Full_Base)));
!       Set_Convention       (Full, Convention (Full_Base));
        Set_Is_First_Subtype (Full, False);
!       Set_Scope            (Full, Scope (Priv));
!       Set_Size_Info        (Full, Full_Base);
!       Copy_RM_Size         (To => Full, From => Full_Base);
!       Set_Is_Itype         (Full);
  
        --  A subtype of a private-type-without-discriminants, whose full-view
        --  has discriminants with default expressions, is not constrained.
--- 13050,13063 ----
  
        --  Set common attributes for all subtypes: kind, convention, etc.
  
!       Mutate_Ekind (Full, Subtype_Kind (Ekind (Full_Base)));
!       Set_Is_Not_Self_Hidden (Full);
!       Set_Convention (Full, Convention (Full_Base));
        Set_Is_First_Subtype (Full, False);
!       Set_Scope (Full, Scope (Priv));
!       Set_Size_Info (Full, Full_Base);
!       Copy_RM_Size (To => Full, From => Full_Base);
!       Set_Is_Itype (Full);
  
        --  A subtype of a private-type-without-discriminants, whose full-view
        --  has discriminants with default expressions, is not constrained.
*************** package body Sem_Ch3 is
*** 13693,13699 ****
        Suffix      : Character)
     is
        C                     : constant Node_Id := Constraint (SI);
!       Number_Of_Constraints : Nat := 0;
        Index                 : Node_Id;
        S, T                  : Entity_Id;
        Constraint_OK         : Boolean := True;
--- 13800,13806 ----
        Suffix      : Character)
     is
        C                     : constant Node_Id := Constraint (SI);
!       Number_Of_Constraints : constant Nat := List_Length (Constraints (C));
        Index                 : Node_Id;
        S, T                  : Entity_Id;
        Constraint_OK         : Boolean := True;
*************** package body Sem_Ch3 is
*** 13719,13730 ****
           Constraint_OK := False;
  
        else
-          S := First (Constraints (C));
-          while Present (S) loop
-             Number_Of_Constraints := Number_Of_Constraints + 1;
-             Next (S);
-          end loop;
- 
           --  In either case, the index constraint must provide a discrete
           --  range for each index of the array type and the type of each
           --  discrete range must be the same as that of the corresponding
--- 13826,13831 ----
*************** package body Sem_Ch3 is
*** 14322,14327 ****
--- 14423,14430 ----
        Set_Is_Constrained    (T_Sub, True);
        Set_First_Entity      (T_Sub, First_Entity (Corr_Rec));
        Set_Last_Entity       (T_Sub, Last_Entity  (Corr_Rec));
+       Set_Direct_Primitive_Operations
+         (T_Sub, Direct_Primitive_Operations (Corr_Rec));
  
        if Has_Discriminants (Prot_Subt) then -- False only if errors.
           Set_Discriminant_Constraint
*************** package body Sem_Ch3 is
*** 15108,15113 ****
--- 15211,15217 ----
        --  in the private part is the full declaration.
  
        Exchange_Entities (Priv, Full);
+       Set_Is_Not_Self_Hidden (Priv);
        Append_Entity (Full, Scope (Full));
     end Copy_And_Swap;
  
*************** package body Sem_Ch3 is
*** 15169,15176 ****
        Loc         : constant Source_Ptr := Sloc (Subt);
        Comp_List   : constant Elist_Id   := New_Elmt_List;
        Parent_Type : constant Entity_Id  := Etype (Typ);
-       Assoc_List  : constant List_Id    := New_List;
  
        Discr_Val             : Elmt_Id;
        Errors                : Boolean;
        New_C                 : Entity_Id;
--- 15273,15280 ----
        Loc         : constant Source_Ptr := Sloc (Subt);
        Comp_List   : constant Elist_Id   := New_Elmt_List;
        Parent_Type : constant Entity_Id  := Etype (Typ);
  
+       Assoc_List            : List_Id;
        Discr_Val             : Elmt_Id;
        Errors                : Boolean;
        New_C                 : Entity_Id;
*************** package body Sem_Ch3 is
*** 15199,15206 ****
  
        procedure Collect_Fixed_Components (Typ : Entity_Id) is
        begin
!       --  Build association list for discriminants, and find components of the
!       --  variant part selected by the values of the discriminants.
  
           Old_C := First_Discriminant (Typ);
           Discr_Val := First_Elmt (Constraints);
--- 15303,15312 ----
  
        procedure Collect_Fixed_Components (Typ : Entity_Id) is
        begin
!          --  Build association list for discriminants, and find components of
!          --  the variant part selected by the values of the discriminants.
! 
!          Assoc_List := New_List;
  
           Old_C := First_Discriminant (Typ);
           Discr_Val := First_Elmt (Constraints);
*************** package body Sem_Ch3 is
*** 15301,15313 ****
        -----------------------
  
        function Is_Variant_Record (T : Entity_Id) return Boolean is
        begin
!          return Nkind (Parent (T)) = N_Full_Type_Declaration
!            and then Nkind (Type_Definition (Parent (T))) = N_Record_Definition
!            and then Present (Component_List (Type_Definition (Parent (T))))
             and then
!              Present
!                (Variant_Part (Component_List (Type_Definition (Parent (T)))));
        end Is_Variant_Record;
  
     --  Start of processing for Create_Constrained_Components
--- 15407,15419 ----
        -----------------------
  
        function Is_Variant_Record (T : Entity_Id) return Boolean is
+          Decl : constant Node_Id := Parent (T);
        begin
!          return Nkind (Decl) = N_Full_Type_Declaration
!            and then Nkind (Type_Definition (Decl)) = N_Record_Definition
!            and then Present (Component_List (Type_Definition (Decl)))
             and then
!              Present (Variant_Part (Component_List (Type_Definition (Decl))));
        end Is_Variant_Record;
  
     --  Start of processing for Create_Constrained_Components
*************** package body Sem_Ch3 is
*** 15435,15444 ****
           Gather_Components
             (Typ,
              Component_List (Type_Definition (Parent (Typ))),
!             Governed_By          => Assoc_List,
!             Into                 => Comp_List,
!             Report_Errors        => Errors,
!             Allow_Compile_Time   => True);
           pragma Assert (not Errors or else Serious_Errors_Detected > 0);
  
           Create_All_Components;
--- 15541,15550 ----
           Gather_Components
             (Typ,
              Component_List (Type_Definition (Parent (Typ))),
!             Governed_By        => Assoc_List,
!             Into               => Comp_List,
!             Report_Errors      => Errors,
!             Allow_Compile_Time => True);
           pragma Assert (not Errors or else Serious_Errors_Detected > 0);
  
           Create_All_Components;
*************** package body Sem_Ch3 is
*** 15458,15467 ****
           Gather_Components
             (Typ,
              Component_List (Type_Definition (Parent (Parent_Type))),
!             Governed_By          => Assoc_List,
!             Into                 => Comp_List,
!             Report_Errors        => Errors,
!             Allow_Compile_Time   => True);
  
           --  Note: previously there was a check at this point that no errors
           --  were detected. As a consequence of AI05-220 there may be an error
--- 15564,15573 ----
           Gather_Components
             (Typ,
              Component_List (Type_Definition (Parent (Parent_Type))),
!             Governed_By        => Assoc_List,
!             Into               => Comp_List,
!             Report_Errors      => Errors,
!             Allow_Compile_Time => True);
  
           --  Note: previously there was a check at this point that no errors
           --  were detected. As a consequence of AI05-220 there may be an error
*************** package body Sem_Ch3 is
*** 15863,15869 ****
        --  derived type.
  
        procedure Replace_Type (Id, New_Id : Entity_Id);
!       --  When the type is an anonymous access type, create a new access type
        --  designating the derived type.
  
        procedure Set_Derived_Name;
--- 15969,15979 ----
        --  derived type.
  
        procedure Replace_Type (Id, New_Id : Entity_Id);
!       --  Set the Etype of New_Id to the appropriate subtype determined from
!       --  the Etype of Id, following (RM 3.4 (18, 19, 20, 21)). Id is either
!       --  the parent type's primitive subprogram or one of its formals, and
!       --  New_Id is the corresponding entity for the derived type. When the
!       --  Etype of Id is an anonymous access type, create a new access type
        --  designating the derived type.
  
        procedure Set_Derived_Name;
*************** package body Sem_Ch3 is
*** 15915,15921 ****
  
        procedure Replace_Type (Id, New_Id : Entity_Id) is
           Id_Type  : constant Entity_Id := Etype (Id);
-          Acc_Type : Entity_Id;
           Par      : constant Node_Id := Parent (Derived_Type);
  
        begin
--- 16025,16030 ----
*************** package body Sem_Ch3 is
*** 15927,15932 ****
--- 16036,16042 ----
  
           if Ekind (Id_Type) = E_Anonymous_Access_Type then
              declare
+                Acc_Type  : Entity_Id;
                 Desig_Typ : Entity_Id := Designated_Type (Id_Type);
  
              begin
*************** package body Sem_Ch3 is
*** 16008,16014 ****
              --  of the parent, and we can also use it rather than its base,
              --  which can lead to more efficient code.
  
!             if Etype (Id) = Parent_Type then
                 if Is_Scalar_Type (Parent_Type)
                   and then
                     Subtypes_Statically_Compatible (Parent_Type, Derived_Type)
--- 16118,16124 ----
              --  of the parent, and we can also use it rather than its base,
              --  which can lead to more efficient code.
  
!             if Id_Type = Parent_Type then
                 if Is_Scalar_Type (Parent_Type)
                   and then
                     Subtypes_Statically_Compatible (Parent_Type, Derived_Type)
*************** package body Sem_Ch3 is
*** 16033,16039 ****
              end if;
  
           else
!             Set_Etype (New_Id, Etype (Id));
           end if;
        end Replace_Type;
  
--- 16143,16149 ----
              end if;
  
           else
!             Set_Etype (New_Id, Id_Type);
           end if;
        end Replace_Type;
  
*************** package body Sem_Ch3 is
*** 16056,16061 ****
--- 16166,16172 ----
     begin
        New_Subp := New_Entity (Nkind (Parent_Subp), Sloc (Derived_Type));
        Mutate_Ekind (New_Subp, Ekind (Parent_Subp));
+       Set_Is_Not_Self_Hidden (New_Subp);
  
        --  Check whether the inherited subprogram is a private operation that
        --  should be inherited but not yet made visible. Such subprograms can
*************** package body Sem_Ch3 is
*** 16219,16224 ****
--- 16330,16336 ----
  
        if No (Actual_Subp) then
           if Is_Intrinsic_Subprogram (Parent_Subp) then
+             Set_Convention (New_Subp, Convention_Intrinsic);
              Set_Is_Intrinsic_Subprogram (New_Subp);
  
              if Present (Alias (Parent_Subp))
*************** package body Sem_Ch3 is
*** 17206,17234 ****
     begin
        Parent_Type := Find_Type_Of_Subtype_Indic (Indic);
  
-       if SPARK_Mode = On
-         and then Is_Tagged_Type (Parent_Type)
-       then
-          declare
-             Partial_View : constant Entity_Id :=
-                              Incomplete_Or_Partial_View (Parent_Type);
- 
-          begin
-             --  If the partial view was not found then the parent type is not
-             --  a private type. Otherwise check if the partial view is a tagged
-             --  private type.
- 
-             if Present (Partial_View)
-               and then Is_Private_Type (Partial_View)
-               and then not Is_Tagged_Type (Partial_View)
-             then
-                Error_Msg_NE
-                  ("cannot derive from & declared as untagged private "
-                   & "(SPARK RM 3.4(1))", N, Partial_View);
-             end if;
-          end;
-       end if;
- 
        --  Ada 2005 (AI-251): In case of interface derivation check that the
        --  parent is also an interface.
  
--- 17318,17323 ----
*************** package body Sem_Ch3 is
*** 17367,17374 ****
              Error_Msg_N ("type cannot be used in its own definition", Indic);
           end if;
  
!          Mutate_Ekind     (T, Ekind (Parent_Type));
!          Set_Etype        (T, Any_Type);
           Set_Scalar_Range (T, Scalar_Range (Any_Type));
  
           --  Initialize the list of primitive operations to an empty list,
--- 17456,17463 ----
              Error_Msg_N ("type cannot be used in its own definition", Indic);
           end if;
  
!          Mutate_Ekind (T, Ekind (Parent_Type));
!          Set_Etype (T, Any_Type);
           Set_Scalar_Range (T, Scalar_Range (Any_Type));
  
           --  Initialize the list of primitive operations to an empty list,
*************** package body Sem_Ch3 is
*** 17671,17676 ****
--- 17760,17767 ----
  
        --  Avoid deriving parent primitives of underlying record views
  
+       Set_Is_Not_Self_Hidden (T);
+ 
        Build_Derived_Type (N, Parent_Type, T, Is_Completion,
          Derive_Subps => not Is_Underlying_Record_View (T));
  
*************** package body Sem_Ch3 is
*** 17759,17764 ****
--- 17850,17856 ----
        while Present (L) loop
           if Ekind (L) /= E_Enumeration_Literal then
              Mutate_Ekind (L, E_Enumeration_Literal);
+             Set_Is_Not_Self_Hidden (L);
              Set_Enumeration_Pos (L, Ev);
              Set_Enumeration_Rep (L, Ev);
              Set_Is_Known_Valid  (L, True);
*************** package body Sem_Ch3 is
*** 18422,18440 ****
              Analyze (Subtype_Mark (Obj_Def));
  
              declare
!                Base_T : constant Entity_Id := Entity (Subtype_Mark (Obj_Def));
!                Decl   : constant Node_Id :=
                   Make_Subtype_Declaration (Sloc (P),
                     Defining_Identifier => T,
!                    Subtype_Indication  => Relocate_Node (Obj_Def));
              begin
                 Set_Etype  (T, Base_T);
                 Mutate_Ekind  (T, Subtype_Kind (Ekind (Base_T)));
!                Set_Parent (T, Obj_Def);
  
                 if Ekind (T) = E_Array_Subtype then
!                   Set_First_Index (T, First_Index (Base_T));
!                   Set_Is_Constrained (T);
  
                 elsif Ekind (T) = E_Record_Subtype then
                    Set_First_Entity (T, First_Entity (Base_T));
--- 18514,18534 ----
              Analyze (Subtype_Mark (Obj_Def));
  
              declare
!                Base_T  : constant Entity_Id := Entity (Subtype_Mark (Obj_Def));
!                New_Def : constant Node_Id   := New_Copy_Tree (Obj_Def);
!                Decl    : constant Node_Id   :=
                   Make_Subtype_Declaration (Sloc (P),
                     Defining_Identifier => T,
!                    Subtype_Indication  => New_Def);
! 
              begin
                 Set_Etype  (T, Base_T);
                 Mutate_Ekind  (T, Subtype_Kind (Ekind (Base_T)));
!                Set_Parent (T, Decl);
!                Set_Scope (T, Current_Scope);
  
                 if Ekind (T) = E_Array_Subtype then
!                   Constrain_Array (T, New_Def, Related_Nod, T, 'P');
  
                 elsif Ekind (T) = E_Record_Subtype then
                    Set_First_Entity (T, First_Entity (Base_T));
*************** package body Sem_Ch3 is
*** 18520,18526 ****
        --  Otherwise we have a subtype mark without a constraint
  
        elsif Error_Posted (S) then
!          Rewrite (S, New_Occurrence_Of (Any_Id, Sloc (S)));
           return Any_Type;
  
        else
--- 18614,18623 ----
        --  Otherwise we have a subtype mark without a constraint
  
        elsif Error_Posted (S) then
!          --  Don't rewrite if S is Empty or Error
!          if S > Empty_Or_Error then
!             Rewrite (S, New_Occurrence_Of (Any_Id, Sloc (S)));
!          end if;
           return Any_Type;
  
        else
*************** package body Sem_Ch3 is
*** 19206,19227 ****
              end if;
           end if;
  
-          --  In derived tagged types it is illegal to reference a non
-          --  discriminant component in the parent type. To catch this, mark
-          --  these components with an Ekind of E_Void. This will be reset in
-          --  Record_Type_Definition after processing the record extension of
-          --  the derived type.
- 
-          --  If the declaration is a private extension, there is no further
-          --  record extension to process, and the components retain their
-          --  current kind, because they are visible at this point.
- 
-          if Is_Tagged and then Ekind (New_C) = E_Component
-            and then Nkind (N) /= N_Private_Extension_Declaration
-          then
-             Mutate_Ekind (New_C, E_Void);
-          end if;
- 
           if Plain_Discrim then
              Set_Corresponding_Discriminant (New_C, Old_C);
              Build_Discriminal (New_C);
--- 19303,19308 ----
*************** package body Sem_Ch3 is
*** 19726,19731 ****
--- 19807,19815 ----
           if Ekind (CW_Type) in E_Task_Type | E_Protected_Type then
              Reinit_Field_To_Zero (CW_Type, F_SPARK_Aux_Pragma_Inherited);
           end if;
+ 
+       elsif Ekind (CW_Type) = E_Record_Type then
+          Reinit_Field_To_Zero (CW_Type, F_Corresponding_Concurrent_Type);
        end if;
  
        Mutate_Ekind                    (CW_Type, E_Class_Wide_Type);
*************** package body Sem_Ch3 is
*** 20112,20121 ****
  
        Analyze_And_Resolve (Mod_Expr, Any_Integer);
  
-       if Ekind (T) in Incomplete_Or_Private_Kind then
-          Reinit_Field_To_Zero (T, F_Stored_Constraint);
-       end if;
- 
        Set_Etype (T, T);
        Mutate_Ekind (T, E_Modular_Integer_Type);
        Reinit_Alignment (T);
--- 20196,20201 ----
*************** package body Sem_Ch3 is
*** 20232,20237 ****
--- 20312,20318 ----
        Op := Make_Defining_Operator_Symbol (Loc, Name_Op_Concat);
  
        Mutate_Ekind                (Op, E_Operator);
+       Set_Is_Not_Self_Hidden      (Op);
        Set_Scope                   (Op, Current_Scope);
        Set_Etype                   (Op, Typ);
        Set_Homonym                 (Op, Get_Name_Entity_Id (Name_Op_Concat));
*************** package body Sem_Ch3 is
*** 20894,20912 ****
              end if;
           end if;
  
-          --  A discriminant cannot be effectively volatile (SPARK RM 7.1.3(4)).
-          --  This check is relevant only when SPARK_Mode is on as it is not a
-          --  standard Ada legality rule. The only way for a discriminant to be
-          --  effectively volatile is to have an effectively volatile type, so
-          --  we check this directly, because the Ekind of Discr might not be
-          --  set yet (to help preventing cascaded errors on derived types).
- 
-          if SPARK_Mode = On
-            and then Is_Effectively_Volatile (Discr_Type)
-          then
-             Error_Msg_N ("discriminant cannot be volatile", Discr);
-          end if;
- 
           Next (Discr);
        end loop;
  
--- 20975,20980 ----
*************** package body Sem_Ch3 is
*** 20950,20955 ****
--- 21018,21024 ----
           end if;
  
           Mutate_Ekind (Id, E_Discriminant);
+          Set_Is_Not_Self_Hidden (Id);
           Reinit_Component_Location (Id);
           Reinit_Esize (Id);
           Set_Discriminant_Number (Id, Discr_Number);
*************** package body Sem_Ch3 is
*** 22772,22777 ****
--- 22841,22848 ----
           T := Prev_T;
        end if;
  
+       Set_Is_Not_Self_Hidden (T);
+ 
        Final_Storage_Only := not Is_Controlled (T);
  
        --  Ada 2005: Check whether an explicit "limited" is present in a derived
*************** package body Sem_Ch3 is
*** 22813,22818 ****
--- 22884,22890 ----
           then
              Mutate_Ekind (Component, E_Component);
              Reinit_Component_Location (Component);
+             Set_Is_Not_Self_Hidden (Component);
           end if;
  
           Propagate_Concurrent_Flags (T, Etype (Component));
*************** package body Sem_Ch3 is
*** 23032,23040 ****
        --  Reset the kind of the subtype during analysis of the range, to
        --  catch possible premature use in the bounds themselves.
  
-       Mutate_Ekind (Def_Id, E_Void);
        Process_Range_Expr_In_Decl (R, Subt, Subtyp => Def_Id);
!       Mutate_Ekind (Def_Id, Kind);
     end Set_Scalar_Range_For_Subtype;
  
     --------------------------------------------------------
--- 23104,23111 ----
        --  Reset the kind of the subtype during analysis of the range, to
        --  catch possible premature use in the bounds themselves.
  
        Process_Range_Expr_In_Decl (R, Subt, Subtyp => Def_Id);
!       pragma Assert (Ekind (Def_Id) = Kind);
     end Set_Scalar_Range_For_Subtype;
  
     --------------------------------------------------------
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch3.ads gcc-14.1.0/gcc/ada/sem_ch3.ads
*** gcc-13.2.0/gcc/ada/sem_ch3.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch3.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch4.adb gcc-14.1.0/gcc/ada/sem_ch4.adb
*** gcc-13.2.0/gcc/ada/sem_ch4.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch4.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Sinfo;          use Sinfo;
*** 65,70 ****
--- 65,71 ----
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
+ with Style;          use Style;
  with Tbuild;         use Tbuild;
  with Uintp;          use Uintp;
  with Warnsw;         use Warnsw;
*************** package body Sem_Ch4 is
*** 255,262 ****
     --  type is not directly visible. The routine uses this type to emit a more
     --  informative message.
  
!    function Has_Possible_Literal_Aspects (N : Node_Id) return Boolean;
!    --  Ada_2022: if an operand is a literal it may be subject to an
     --  implicit conversion to a type for which a user-defined literal
     --  function exists. During the first pass of type resolution we do
     --  not know the context imposed on the literal, so we assume that
--- 256,263 ----
     --  type is not directly visible. The routine uses this type to emit a more
     --  informative message.
  
!    function Has_Possible_User_Defined_Literal (N : Node_Id) return Boolean;
!    --  Ada 2022: if an operand is a literal, it may be subject to an
     --  implicit conversion to a type for which a user-defined literal
     --  function exists. During the first pass of type resolution we do
     --  not know the context imposed on the literal, so we assume that
*************** package body Sem_Ch4 is
*** 1539,1546 ****
--- 1540,1553 ----
  
                 Set_Etype (N, Full_View (Etype (N)));
  
+             --  If the call is within a thunk, the nonlimited view should be
+             --  analyzed eventually (see also Analyze_Return_Type).
+ 
              elsif From_Limited_With (Etype (N))
                and then Present (Non_Limited_View (Etype (N)))
+               and then
+                 (Ekind (Non_Limited_View (Etype (N))) /= E_Incomplete_Type
+                   or else Is_Thunk (Current_Scope))
              then
                 Set_Etype (N, Non_Limited_View (Etype (N)));
  
*************** package body Sem_Ch4 is
*** 2050,2057 ****
        --  For the predefined case, the result is Boolean, regardless of the
        --  type of the operands. The operands may even be limited, if they are
        --  generic actuals. If they are overloaded, label the operands with the
!       --  common type that must be present, or with the type of the formal of
!       --  the user-defined function.
  
        if Present (Entity (N)) then
           Op_Id := Entity (N);
--- 2057,2065 ----
        --  For the predefined case, the result is Boolean, regardless of the
        --  type of the operands. The operands may even be limited, if they are
        --  generic actuals. If they are overloaded, label the operands with the
!       --  compare type if it is present, typically because it is a global type
!       --  in a generic instance, or with the common type that must be present,
!       --  or with the type of the formal of the user-defined function.
  
        if Present (Entity (N)) then
           Op_Id := Entity (N);
*************** package body Sem_Ch4 is
*** 2064,2070 ****
  
           if Is_Overloaded (L) then
              if Ekind (Op_Id) = E_Operator then
!                Set_Etype (L, Intersect_Types (L, R));
              else
                 Set_Etype (L, Etype (First_Formal (Op_Id)));
              end if;
--- 2072,2081 ----
  
           if Is_Overloaded (L) then
              if Ekind (Op_Id) = E_Operator then
!                Set_Etype (L,
!                  (if Present (Compare_Type (N))
!                   then Compare_Type (N)
!                   else Intersect_Types (L, R)));
              else
                 Set_Etype (L, Etype (First_Formal (Op_Id)));
              end if;
*************** package body Sem_Ch4 is
*** 2072,2078 ****
  
           if Is_Overloaded (R) then
              if Ekind (Op_Id) = E_Operator then
!                Set_Etype (R, Intersect_Types (L, R));
              else
                 Set_Etype (R, Etype (Next_Formal (First_Formal (Op_Id))));
              end if;
--- 2083,2092 ----
  
           if Is_Overloaded (R) then
              if Ekind (Op_Id) = E_Operator then
!                Set_Etype (R,
!                  (if Present (Compare_Type (N))
!                   then Compare_Type (N)
!                   else Intersect_Types (L, R)));
              else
                 Set_Etype (R, Etype (Next_Formal (First_Formal (Op_Id))));
              end if;
*************** package body Sem_Ch4 is
*** 2092,2107 ****
           end loop;
        end if;
  
!       --  If there was no match, and the operator is inequality, this may be
        --  a case where inequality has not been made explicit, as for tagged
        --  types. Analyze the node as the negation of an equality operation.
!       --  This cannot be done earlier, because before analysis we cannot rule
        --  out the presence of an explicit inequality.
  
!       if Etype (N) = Any_Type
!         and then Nkind (N) = N_Op_Ne
!       then
           Op_Id := Get_Name_Entity_Id (Name_Op_Eq);
           while Present (Op_Id) loop
              if Ekind (Op_Id) = E_Operator then
                 Find_Comparison_Equality_Types (L, R, Op_Id, N);
--- 2106,2120 ----
           end loop;
        end if;
  
!       --  If there was no match and the operator is inequality, this may be
        --  a case where inequality has not been made explicit, as for tagged
        --  types. Analyze the node as the negation of an equality operation.
!       --  This cannot be done earlier because, before analysis, we cannot rule
        --  out the presence of an explicit inequality.
  
!       if Etype (N) = Any_Type and then Nkind (N) = N_Op_Ne then
           Op_Id := Get_Name_Entity_Id (Name_Op_Eq);
+ 
           while Present (Op_Id) loop
              if Ekind (Op_Id) = E_Operator then
                 Find_Comparison_Equality_Types (L, R, Op_Id, N);
*************** package body Sem_Ch4 is
*** 2291,2297 ****
              while Present (It.Nam) loop
                 T := It.Typ;
  
!                if No (First_Formal (Base_Type (Designated_Type (T)))) then
                    Set_Etype (P, T);
                 else
                    Remove_Interp (I);
--- 2304,2312 ----
              while Present (It.Nam) loop
                 T := It.Typ;
  
!                if Is_Access_Type (T)
!                  and then No (First_Formal (Base_Type (Designated_Type (T))))
!                then
                    Set_Etype (P, T);
                 else
                    Remove_Interp (I);
*************** package body Sem_Ch4 is
*** 2368,2373 ****
--- 2383,2398 ----
        procedure Check_Action_OK (A : Node_Id) is
        begin
           if not Comes_From_Source (N) or else not Comes_From_Source (A) then
+ 
+             --  If, for example, an (illegal) expression function is
+             --  transformed into a "vanilla" function then we don't want to
+             --  allow it just because Comes_From_Source is now False. So look
+             --  at the Original_Node.
+ 
+             if Is_Rewrite_Substitution (A) then
+                Check_Action_OK (Original_Node (A));
+             end if;
+ 
              return; -- Allow anything in generated code
           end if;
  
*************** package body Sem_Ch4 is
*** 2400,2409 ****
                    return; -- ???For now; the RM rule is a bit more complicated
                 end if;
  
              when others =>
!                null; -- Nothing else allowed, not even pragmas
           end case;
  
           Error_Msg_N ("object renaming or constant declaration expected", A);
        end Check_Action_OK;
  
--- 2425,2451 ----
                    return; -- ???For now; the RM rule is a bit more complicated
                 end if;
  
+             when N_Pragma =>
+                declare
+                   --  See AI22-0045 pragma categorization.
+                   subtype Executable_Pragma_Id is Pragma_Id
+                     with Predicate => Executable_Pragma_Id in
+                         --  language-defined executable pragmas
+                       Pragma_Assert | Pragma_Inspection_Point
+ 
+                         --  GNAT-defined executable pragmas
+                         | Pragma_Assume | Pragma_Debug;
+                begin
+                   if Get_Pragma_Id (A) in Executable_Pragma_Id then
+                      return;
+                   end if;
+                end;
+ 
              when others =>
!                null; -- Nothing else allowed
           end case;
  
+          --  We could mention pragmas in the message text; let's not.
           Error_Msg_N ("object renaming or constant declaration expected", A);
        end Check_Action_OK;
  
*************** package body Sem_Ch4 is
*** 3124,3129 ****
--- 3166,3185 ----
  
        Operator_Check (N);
        Check_Function_Writable_Actuals (N);
+ 
+       if Style_Check then
+          if Nkind (L) not in N_Short_Circuit | N_Op_And | N_Op_Or | N_Op_Xor
+            and then Is_Boolean_Type (Etype (L))
+          then
+             Check_Xtra_Parens_Precedence (L);
+          end if;
+ 
+          if Nkind (R) not in N_Short_Circuit | N_Op_And | N_Op_Or | N_Op_Xor
+            and then Is_Boolean_Type (Etype (R))
+          then
+             Check_Xtra_Parens_Precedence (R);
+          end if;
+       end if;
     end Analyze_Logical_Op;
  
     ---------------------------
*************** package body Sem_Ch4 is
*** 3385,3390 ****
--- 3441,3466 ----
  
           Analyze_Set_Membership;
  
+          declare
+             Alt : Node_Id;
+          begin
+             Alt := First (Alternatives (N));
+             while Present (Alt) loop
+                if Is_Entity_Name (Alt) and then Is_Type (Entity (Alt)) then
+                   Check_Fully_Declared (Entity (Alt), Alt);
+ 
+                   if Has_Ghost_Predicate_Aspect (Entity (Alt)) then
+                      Error_Msg_NE
+                        ("subtype& has ghost predicate, "
+                         & "not allowed in membership test",
+                         Alt, Entity (Alt));
+                   end if;
+                end if;
+ 
+                Next (Alt);
+             end loop;
+          end;
+ 
        elsif Nkind (R) = N_Range
          or else (Nkind (R) = N_Attribute_Reference
                    and then Attribute_Name (R) = Name_Range)
*************** package body Sem_Ch4 is
*** 3404,3409 ****
--- 3480,3492 ----
              Find_Type (R);
              Check_Fully_Declared (Entity (R), R);
  
+             if Has_Ghost_Predicate_Aspect (Entity (R)) then
+                Error_Msg_NE
+                  ("subtype& has ghost predicate, "
+                   & "not allowed in membership test",
+                   R, Entity (R));
+             end if;
+ 
           elsif Ada_Version >= Ada_2012 and then Find_Interp then
              Op := Make_Op_Eq (Loc, Left_Opnd => L, Right_Opnd => R);
              Resolve_Membership_Equality (Op, Etype (L));
*************** package body Sem_Ch4 is
*** 4024,4030 ****
                             Actual, Etype (Etype (Formal)));
                       end if;
  
!                      Wrong_Type (Actual, Etype (Formal));
  
                       if Nkind (Actual) = N_Op_Eq
                         and then Nkind (Left_Opnd (Actual)) = N_Identifier
--- 4107,4117 ----
                             Actual, Etype (Etype (Formal)));
                       end if;
  
!                      --  If we are going to output a secondary error message
!                      --  below, we need to have Wrong_Type output the main one.
! 
!                      Wrong_Type
!                        (Actual, Etype (Formal), Multiple => All_Errors_Mode);
  
                       if Nkind (Actual) = N_Op_Eq
                         and then Nkind (Left_Opnd (Actual)) = N_Identifier
*************** package body Sem_Ch4 is
*** 4838,4853 ****
        --  the discriminant values for a discriminant constraint)
        --  are unprefixed discriminant names.
  
-       procedure Find_Component_In_Instance (Rec : Entity_Id);
-       --  In an instance, a component of a private extension may not be visible
-       --  while it was visible in the generic. Search candidate scope for a
-       --  component with the proper identifier. This is only done if all other
-       --  searches have failed. If a match is found, the Etype of both N and
-       --  Sel are set from this component, and the entity of Sel is set to
-       --  reference this component. If no match is found, Entity (Sel) remains
-       --  unset. For a derived type that is an actual of the instance, the
-       --  desired component may be found in any ancestor.
- 
        function Has_Mode_Conformant_Spec (Comp : Entity_Id) return Boolean;
        --  It is known that the parent of N denotes a subprogram call. Comp
        --  is an overloadable component of the concurrent type of the prefix.
--- 4925,4930 ----
*************** package body Sem_Ch4 is
*** 4866,4871 ****
--- 4943,4956 ----
        --  _Procedure, and collect all its interpretations (since it may be an
        --  overloaded interface primitive); otherwise return False.
  
+       function Try_Selected_Component_In_Instance
+         (Typ : Entity_Id) return Boolean;
+       --  If Typ is the actual for a formal derived type, or a derived type
+       --  thereof, the component inherited from the generic parent may not
+       --  be visible in the actual, but the selected component is legal. Climb
+       --  up the derivation chain of the generic parent type and return True if
+       --  we find the proper ancestor type; otherwise return False.
+ 
        ------------------------------------------------------
        -- Constraint_Has_Unprefixed_Discriminant_Reference --
        ------------------------------------------------------
*************** package body Sem_Ch4 is
*** 4873,4882 ****
        function Constraint_Has_Unprefixed_Discriminant_Reference
          (Typ : Entity_Id) return Boolean
        is
- 
           function Is_Discriminant_Name (N : Node_Id) return Boolean is
!            ((Nkind (N) = N_Identifier)
!               and then (Ekind (Entity (N)) = E_Discriminant));
        begin
           if Is_Array_Type (Typ) then
              declare
--- 4958,4966 ----
        function Constraint_Has_Unprefixed_Discriminant_Reference
          (Typ : Entity_Id) return Boolean
        is
           function Is_Discriminant_Name (N : Node_Id) return Boolean is
!            (Nkind (N) = N_Identifier
!               and then Ekind (Entity (N)) = E_Discriminant);
        begin
           if Is_Array_Type (Typ) then
              declare
*************** package body Sem_Ch4 is
*** 4916,4964 ****
           return False;
        end Constraint_Has_Unprefixed_Discriminant_Reference;
  
-       --------------------------------
-       -- Find_Component_In_Instance --
-       --------------------------------
- 
-       procedure Find_Component_In_Instance (Rec : Entity_Id) is
-          Comp : Entity_Id;
-          Typ  : Entity_Id;
- 
-       begin
-          Typ := Rec;
-          while Present (Typ) loop
-             Comp := First_Component (Typ);
-             while Present (Comp) loop
-                if Chars (Comp) = Chars (Sel) then
-                   Set_Entity_With_Checks (Sel, Comp);
-                   Set_Etype (Sel, Etype (Comp));
-                   Set_Etype (N,   Etype (Comp));
-                   return;
-                end if;
- 
-                Next_Component (Comp);
-             end loop;
- 
-             --  If not found, the component may be declared in the parent
-             --  type or its full view, if any.
- 
-             if Is_Derived_Type (Typ) then
-                Typ := Etype (Typ);
- 
-                if Is_Private_Type (Typ) then
-                   Typ := Full_View (Typ);
-                end if;
- 
-             else
-                return;
-             end if;
-          end loop;
- 
-          --  If we fall through, no match, so no changes made
- 
-          return;
-       end Find_Component_In_Instance;
- 
        ------------------------------
        -- Has_Mode_Conformant_Spec --
        ------------------------------
--- 5000,5005 ----
*************** package body Sem_Ch4 is
*** 5096,5101 ****
--- 5137,5262 ----
           return Present (Candidate);
        end Try_By_Protected_Procedure_Prefixed_View;
  
+       ----------------------------------------
+       -- Try_Selected_Component_In_Instance --
+       ----------------------------------------
+ 
+       function Try_Selected_Component_In_Instance
+         (Typ : Entity_Id) return Boolean
+       is
+          procedure Find_Component_In_Instance (Rec : Entity_Id);
+          --  In an instance, a component of a private extension may not be
+          --  visible while it was visible in the generic. Search candidate
+          --  scope for a component with the proper identifier. If a match is
+          --  found, the Etype of both N and Sel are set from this component,
+          --  and the entity of Sel is set to reference this component. If no
+          --  match is found, Entity (Sel) remains unset. For a derived type
+          --  that is an actual of the instance, the desired component may be
+          --  found in any ancestor.
+ 
+          --------------------------------
+          -- Find_Component_In_Instance --
+          --------------------------------
+ 
+          procedure Find_Component_In_Instance (Rec : Entity_Id) is
+             Comp : Entity_Id;
+             Typ  : Entity_Id;
+ 
+          begin
+             Typ := Rec;
+             while Present (Typ) loop
+                Comp := First_Component (Typ);
+                while Present (Comp) loop
+                   if Chars (Comp) = Chars (Sel) then
+                      Set_Entity_With_Checks (Sel, Comp);
+                      Set_Etype (Sel, Etype (Comp));
+                      Set_Etype (N,   Etype (Comp));
+                      return;
+                   end if;
+ 
+                   Next_Component (Comp);
+                end loop;
+ 
+                --  If not found, the component may be declared in the parent
+                --  type or its full view, if any.
+ 
+                if Is_Derived_Type (Typ) then
+                   Typ := Etype (Typ);
+ 
+                   if Is_Private_Type (Typ) then
+                      Typ := Full_View (Typ);
+                   end if;
+ 
+                else
+                   return;
+                end if;
+             end loop;
+ 
+             --  If we fall through, no match, so no changes made
+ 
+             return;
+          end Find_Component_In_Instance;
+ 
+          --  Local variables
+ 
+          Par : Entity_Id;
+ 
+       --  Start of processing for Try_Selected_Component_In_Instance
+ 
+       begin
+          pragma Assert (In_Instance and then Is_Tagged_Type (Typ));
+          pragma Assert (Etype (N) = Any_Type);
+ 
+          --  Climb up derivation chain to generic actual subtype
+ 
+          Par := Typ;
+          while not Is_Generic_Actual_Type (Par) loop
+             if Ekind (Par) = E_Record_Type then
+                Par := Parent_Subtype (Par);
+                exit when No (Par);
+             else
+                exit when Par = Etype (Par);
+                Par := Etype (Par);
+             end if;
+          end loop;
+ 
+          --  If Par is a generic actual, look for component in ancestor types.
+          --  Skip this if we have no Declaration_Node, as is the case for
+          --  itypes.
+ 
+          if Present (Par)
+            and then Is_Generic_Actual_Type (Par)
+            and then Present (Declaration_Node (Par))
+          then
+             Par := Generic_Parent_Type (Declaration_Node (Par));
+             loop
+                Find_Component_In_Instance (Par);
+                exit when Present (Entity (Sel))
+                  or else Par = Etype (Par);
+                Par := Etype (Par);
+             end loop;
+ 
+          --  Another special case: the type is an extension of a private
+          --  type T, either is an actual in an instance or is immediately
+          --  visible, and we are in the body of the instance, which means
+          --  the generic body had a full view of the type declaration for
+          --  T or some ancestor that defines the component in question.
+          --  This happens because Is_Visible_Component returned False on
+          --  this component, as T or the ancestor is still private since
+          --  the Has_Private_View mechanism is bypassed because T or the
+          --  ancestor is not directly referenced in the generic body.
+ 
+          elsif Is_Derived_Type (Typ)
+            and then (Used_As_Generic_Actual (Typ)
+                       or else Is_Immediately_Visible (Typ))
+            and then In_Instance_Body
+          then
+             Find_Component_In_Instance (Parent_Subtype (Typ));
+          end if;
+ 
+          return Etype (N) /= Any_Type;
+       end Try_Selected_Component_In_Instance;
+ 
     --  Start of processing for Analyze_Selected_Component
  
     begin
*************** package body Sem_Ch4 is
*** 5449,5454 ****
--- 5610,5631 ----
              elsif Try_By_Protected_Procedure_Prefixed_View then
                 return;
  
+             --  If the prefix type is the actual for a formal derived type,
+             --  or a derived type thereof, the component inherited from the
+             --  generic parent may not be visible in the actual, but the
+             --  selected component is legal. This case must be handled before
+             --  trying the object.operation notation to avoid reporting
+             --  spurious errors, but must be skipped when Is_Prefixed_Call has
+             --  been set (because that means that this node was resolved to an
+             --  Object.Operation call when the generic unit was analyzed).
+ 
+             elsif In_Instance
+               and then not Is_Prefixed_Call (N)
+               and then Is_Tagged_Type (Prefix_Type)
+               and then Try_Selected_Component_In_Instance (Type_To_Use)
+             then
+                return;
+ 
              elsif Try_Object_Operation (N) then
                 return;
              end if;
*************** package body Sem_Ch4 is
*** 5809,5873 ****
           --  Similarly, if this is the actual for a formal derived type, or
           --  a derived type thereof, the component inherited from the generic
           --  parent may not be visible in the actual, but the selected
!          --  component is legal. Climb up the derivation chain of the generic
!          --  parent type until we find the proper ancestor type.
  
           elsif In_Instance and then Is_Tagged_Type (Prefix_Type) then
-             declare
-                Par : Entity_Id := Prefix_Type;
-             begin
-                --  Climb up derivation chain to generic actual subtype
- 
-                while not Is_Generic_Actual_Type (Par) loop
-                   if Ekind (Par) = E_Record_Type then
-                      Par := Parent_Subtype (Par);
-                      exit when No (Par);
-                   else
-                      exit when Par = Etype (Par);
-                      Par := Etype (Par);
-                   end if;
-                end loop;
- 
-                if Present (Par) and then Is_Generic_Actual_Type (Par) then
  
!                   --  Now look for component in ancestor types
! 
!                   Par := Generic_Parent_Type (Declaration_Node (Par));
!                   loop
!                      Find_Component_In_Instance (Par);
!                      exit when Present (Entity (Sel))
!                        or else Par = Etype (Par);
!                      Par := Etype (Par);
!                   end loop;
! 
!                --  Another special case: the type is an extension of a private
!                --  type T, either is an actual in an instance or is immediately
!                --  visible, and we are in the body of the instance, which means
!                --  the generic body had a full view of the type declaration for
!                --  T or some ancestor that defines the component in question.
!                --  This happens because Is_Visible_Component returned False on
!                --  this component, as T or the ancestor is still private since
!                --  the Has_Private_View mechanism is bypassed because T or the
!                --  ancestor is not directly referenced in the generic body.
  
!                elsif Is_Derived_Type (Type_To_Use)
!                  and then (Used_As_Generic_Actual (Type_To_Use)
!                             or else Is_Immediately_Visible (Type_To_Use))
!                  and then In_Instance_Body
!                then
!                   Find_Component_In_Instance (Parent_Subtype (Type_To_Use));
!                end if;
!             end;
  
              --  The search above must have eventually succeeded, since the
              --  selected component was legal in the generic.
  
!             if No (Entity (Sel)) then
                 raise Program_Error;
              end if;
  
-             return;
- 
           --  Component not found, specialize error message when appropriate
  
           else
--- 5986,6008 ----
           --  Similarly, if this is the actual for a formal derived type, or
           --  a derived type thereof, the component inherited from the generic
           --  parent may not be visible in the actual, but the selected
!          --  component is legal.
  
           elsif In_Instance and then Is_Tagged_Type (Prefix_Type) then
  
!             --  Climb up the derivation chain of the generic parent type until
!             --  we find the proper ancestor type.
  
!             if Try_Selected_Component_In_Instance (Type_To_Use) then
!                return;
  
              --  The search above must have eventually succeeded, since the
              --  selected component was legal in the generic.
  
!             else
                 raise Program_Error;
              end if;
  
           --  Component not found, specialize error message when appropriate
  
           else
*************** package body Sem_Ch4 is
*** 5892,5908 ****
                       --  Emit appropriate message. The node will be replaced
                       --  by an appropriate raise statement.
  
!                      --  Note that in SPARK mode, as with all calls to apply a
!                      --  compile time constraint error, this will be made into
!                      --  an error to simplify the processing of the formal
!                      --  verification backend.
  
                       Apply_Compile_Time_Constraint_Error
                         (N, "component not present in }??",
                          CE_Discriminant_Check_Failed,
                          Ent          => Prefix_Type,
                          Emit_Message =>
!                           SPARK_Mode = On or not In_Instance_Not_Visible);
                       return;
                    end if;
  
--- 6027,6043 ----
                       --  Emit appropriate message. The node will be replaced
                       --  by an appropriate raise statement.
  
!                      --  Note that in GNATprove mode, as with all calls to
!                      --  apply a compile time constraint error, this will be
!                      --  made into an error to simplify the processing of the
!                      --  formal verification backend.
  
                       Apply_Compile_Time_Constraint_Error
                         (N, "component not present in }??",
                          CE_Discriminant_Check_Failed,
                          Ent          => Prefix_Type,
                          Emit_Message =>
!                           GNATprove_Mode or not In_Instance_Not_Visible);
                       return;
                    end if;
  
*************** package body Sem_Ch4 is
*** 5997,6002 ****
--- 6132,6149 ----
           Resolve (R, Standard_Boolean);
           Set_Etype (N, Standard_Boolean);
        end if;
+ 
+       if Style_Check then
+          if Nkind (L) not in N_Short_Circuit | N_Op_And | N_Op_Or | N_Op_Xor
+          then
+             Check_Xtra_Parens_Precedence (L);
+          end if;
+ 
+          if Nkind (R) not in N_Short_Circuit | N_Op_And | N_Op_Or | N_Op_Xor
+          then
+             Check_Xtra_Parens_Precedence (R);
+          end if;
+       end if;
     end Analyze_Short_Circuit;
  
     -------------------
*************** package body Sem_Ch4 is
*** 7519,7537 ****
  
        if Etype (N) = Any_Type then
           declare
!             L     : Node_Id;
!             R     : Node_Id;
!             Op_Id : Entity_Id := Empty;
  
           begin
-             R := Right_Opnd (N);
- 
-             if Nkind (N) in N_Binary_Op then
-                L := Left_Opnd (N);
-             else
-                L := Empty;
-             end if;
- 
              --  If either operand has no type, then don't complain further,
              --  since this simply means that we have a propagated error.
  
--- 7666,7676 ----
  
        if Etype (N) = Any_Type then
           declare
!             L : constant Node_Id :=
!                   (if Nkind (N) in N_Binary_Op then Left_Opnd (N) else Empty);
!             R : constant Node_Id := Right_Opnd (N);
  
           begin
              --  If either operand has no type, then don't complain further,
              --  since this simply means that we have a propagated error.
  
*************** package body Sem_Ch4 is
*** 7612,7620 ****
              then
                 return;
  
!             elsif Present (Entity (N))
!               and then Has_Possible_Literal_Aspects (N)
!             then
                 return;
  
              --  If we have a logical operator, one of whose operands is
--- 7751,7760 ----
              then
                 return;
  
!             --  The handling of user-defined literals is deferred to the second
!             --  pass of resolution.
! 
!             elsif Has_Possible_User_Defined_Literal (N) then
                 return;
  
              --  If we have a logical operator, one of whose operands is
*************** package body Sem_Ch4 is
*** 7829,7945 ****
                 end if;
              end if;
  
!             --  If we fall through then just give general message. Note that in
!             --  the following messages, if the operand is overloaded we choose
!             --  an arbitrary type to complain about, but that is probably more
!             --  useful than not giving a type at all.
! 
!             if Nkind (N) in N_Unary_Op then
!                Error_Msg_Node_2 := Etype (R);
!                Error_Msg_N ("operator& not defined for}", N);
!                return;
! 
!             else
!                if Nkind (N) in N_Binary_Op then
!                   if not Is_Overloaded (L)
!                     and then not Is_Overloaded (R)
!                     and then Base_Type (Etype (L)) = Base_Type (Etype (R))
!                   then
!                      Error_Msg_Node_2 := First_Subtype (Etype (R));
!                      Error_Msg_N ("there is no applicable operator& for}", N);
! 
!                   else
!                      --  Another attempt to find a fix: one of the candidate
!                      --  interpretations may not be use-visible. This has
!                      --  already been checked for predefined operators, so
!                      --  we examine only user-defined functions.
! 
!                      Op_Id := Get_Name_Entity_Id (Chars (N));
! 
!                      while Present (Op_Id) loop
!                         if Ekind (Op_Id) /= E_Operator
!                           and then Is_Overloadable (Op_Id)
!                         then
!                            if not Is_Immediately_Visible (Op_Id)
!                              and then not In_Use (Scope (Op_Id))
!                              and then not Is_Abstract_Subprogram (Op_Id)
!                              and then not Is_Hidden (Op_Id)
!                              and then Ekind (Scope (Op_Id)) = E_Package
!                              and then
!                                Has_Compatible_Type
!                                  (L, Etype (First_Formal (Op_Id)))
!                              and then Present
!                               (Next_Formal (First_Formal (Op_Id)))
!                              and then
!                                Has_Compatible_Type
!                                  (R,
!                                   Etype (Next_Formal (First_Formal (Op_Id))))
!                            then
!                               Error_Msg_N
!                                 ("no legal interpretation for operator&", N);
!                               Error_Msg_NE
!                                 ("\use clause on& would make operation legal",
!                                  N, Scope (Op_Id));
!                               exit;
!                            end if;
!                         end if;
! 
!                         Op_Id := Homonym (Op_Id);
!                      end loop;
! 
!                      if No (Op_Id) then
!                         Error_Msg_N ("invalid operand types for operator&", N);
! 
!                         if Nkind (N) /= N_Op_Concat then
!                            Error_Msg_NE ("\left operand has}!",  N, Etype (L));
!                            Error_Msg_NE ("\right operand has}!", N, Etype (R));
! 
!                            --  For multiplication and division operators with
!                            --  a fixed-point operand and an integer operand,
!                            --  indicate that the integer operand should be of
!                            --  type Integer.
! 
!                            if Nkind (N) in N_Op_Multiply | N_Op_Divide
!                              and then Is_Fixed_Point_Type (Etype (L))
!                              and then Is_Integer_Type (Etype (R))
!                            then
!                               Error_Msg_N
!                                 ("\convert right operand to `Integer`", N);
! 
!                            elsif Nkind (N) = N_Op_Multiply
!                              and then Is_Fixed_Point_Type (Etype (R))
!                              and then Is_Integer_Type (Etype (L))
!                            then
!                               Error_Msg_N
!                                 ("\convert left operand to `Integer`", N);
!                            end if;
! 
!                         --  For concatenation operators it is more difficult to
!                         --  determine which is the wrong operand. It is worth
!                         --  flagging explicitly an access type, for those who
!                         --  might think that a dereference happens here.
! 
!                         elsif Is_Access_Type (Etype (L)) then
!                            Error_Msg_N ("\left operand is access type", N);
  
!                         elsif Is_Access_Type (Etype (R)) then
!                            Error_Msg_N ("\right operand is access type", N);
!                         end if;
!                      end if;
!                   end if;
!                end if;
!             end if;
           end;
        end if;
     end Operator_Check;
  
!    ----------------------------------
!    -- Has_Possible_Literal_Aspects --
!    ----------------------------------
  
!    function Has_Possible_Literal_Aspects (N : Node_Id) return Boolean is
        R : constant Node_Id := Right_Opnd (N);
-       L : Node_Id := Empty;
  
        procedure Check_Literal_Opnd (Opnd : Node_Id);
        --  If an operand is a literal to which an aspect may apply,
--- 7969,7987 ----
                 end if;
              end if;
  
!             --  If we fall through then just give general message
  
!             Unresolved_Operator (N);
           end;
        end if;
     end Operator_Check;
  
!    ---------------------------------------
!    -- Has_Possible_User_Defined_Literal --
!    ---------------------------------------
  
!    function Has_Possible_User_Defined_Literal (N : Node_Id) return Boolean is
        R : constant Node_Id := Right_Opnd (N);
  
        procedure Check_Literal_Opnd (Opnd : Node_Id);
        --  If an operand is a literal to which an aspect may apply,
*************** package body Sem_Ch4 is
*** 7953,7977 ****
        begin
           if Nkind (Opnd) in N_Numeric_Or_String_Literal
             or else (Is_Entity_Name (Opnd)
!              and then Present (Entity (Opnd))
!              and then Is_Named_Number (Entity (Opnd)))
           then
              Add_One_Interp (N, Etype (Opnd), Etype (Opnd));
           end if;
        end Check_Literal_Opnd;
  
!    --  Start of processing for Has_Possible_Literal_Aspects
  
     begin
        if Ada_Version < Ada_2022 then
           return False;
        end if;
  
-       if Nkind (N) in N_Binary_Op then
-          L := Left_Opnd (N);
-       else
-          L := Empty;
-       end if;
        Check_Literal_Opnd (R);
  
        --  Check left operand only if right one did not provide a
--- 7995,8014 ----
        begin
           if Nkind (Opnd) in N_Numeric_Or_String_Literal
             or else (Is_Entity_Name (Opnd)
!                      and then Present (Entity (Opnd))
!                      and then Is_Named_Number (Entity (Opnd)))
           then
              Add_One_Interp (N, Etype (Opnd), Etype (Opnd));
           end if;
        end Check_Literal_Opnd;
  
!    --  Start of processing for Has_Possible_User_Defined_Literal
  
     begin
        if Ada_Version < Ada_2022 then
           return False;
        end if;
  
        Check_Literal_Opnd (R);
  
        --  Check left operand only if right one did not provide a
*************** package body Sem_Ch4 is
*** 7987,8000 ****
        --  determine whether a user-defined literal may apply to
        --  either or both.
  
!       if Present (L)
!         and then Etype (N) = Any_Type
!       then
!          Check_Literal_Opnd (L);
        end if;
  
        return Etype (N) /= Any_Type;
!    end Has_Possible_Literal_Aspects;
  
     -----------------------------------------------
     -- Nondispatching_Call_To_Abstract_Operation --
--- 8024,8035 ----
        --  determine whether a user-defined literal may apply to
        --  either or both.
  
!       if Nkind (N) in N_Binary_Op and then Etype (N) = Any_Type then
!          Check_Literal_Opnd (Left_Opnd (N));
        end if;
  
        return Etype (N) /= Any_Type;
!    end Has_Possible_User_Defined_Literal;
  
     -----------------------------------------------
     -- Nondispatching_Call_To_Abstract_Operation --
*************** package body Sem_Ch4 is
*** 8440,8448 ****
              --  resolution does not depend on the type of the parameter that
              --  includes the indexing operation.
  
!             elsif Nkind (Parent (Par)) in N_Subprogram_Call
!               and then Is_Entity_Name (Name (Parent (Par)))
!             then
                 declare
                    Proc : Entity_Id;
  
--- 8475,8495 ----
              --  resolution does not depend on the type of the parameter that
              --  includes the indexing operation.
  
!             elsif Nkind (Parent (Par)) in N_Subprogram_Call then
! 
!                if not Is_Entity_Name (Name (Parent (Par))) then
! 
!                   --  ??? We don't know what to do with an N_Selected_Component
!                   --  node for a prefixed-notation call to AA.BB where AA's
!                   --  type is known, but BB has not yet been resolved. In that
!                   --  case, the preceding Is_Entity_Name call returns False.
!                   --  Incorrectly returning False here will usually work
!                   --  better than incorrectly returning True, so that's what
!                   --  we do for now.
! 
!                   return False;
!                end if;
! 
                 declare
                    Proc : Entity_Id;
  
*************** package body Sem_Ch4 is
*** 9884,9890 ****
           if (not Is_Tagged_Type (Obj_Type)
                and then
                  (not (Core_Extensions_Allowed or Allow_Extensions)
!                   or else not Present (Primitive_Operations (Obj_Type))))
             or else Is_Incomplete_Type (Obj_Type)
           then
              Obj_Type := Prev_Obj_Type;
--- 9931,9937 ----
           if (not Is_Tagged_Type (Obj_Type)
                and then
                  (not (Core_Extensions_Allowed or Allow_Extensions)
!                   or else No (Primitive_Operations (Obj_Type))))
             or else Is_Incomplete_Type (Obj_Type)
           then
              Obj_Type := Prev_Obj_Type;
*************** package body Sem_Ch4 is
*** 10196,10204 ****
  
                 elsif not Comes_From_Source (Visible_Op)
                   and then Alias (Visible_Op) = Op
-                  and then not Is_Hidden (Visible_Op)
                 then
!                   return True;
                 end if;
  
                 Visible_Op := Homonym (Visible_Op);
--- 10243,10257 ----
  
                 elsif not Comes_From_Source (Visible_Op)
                   and then Alias (Visible_Op) = Op
                 then
!                   --  If Visible_Op or what it overrides is not hidden, then we
!                   --  have found what we're looking for.
! 
!                   if not Is_Hidden (Visible_Op)
!                     or else not Is_Hidden (Overridden_Operation (Op))
!                   then
!                      return True;
!                   end if;
                 end if;
  
                 Visible_Op := Homonym (Visible_Op);
*************** package body Sem_Ch4 is
*** 10620,10625 ****
--- 10673,10778 ----
        end if;
     end Try_Object_Operation;
  
+    -------------------------
+    -- Unresolved_Operator --
+    -------------------------
+ 
+    procedure Unresolved_Operator (N : Node_Id) is
+       L : constant Node_Id :=
+             (if Nkind (N) in N_Binary_Op then Left_Opnd (N) else Empty);
+       R : constant Node_Id := Right_Opnd (N);
+ 
+       Op_Id : Entity_Id;
+ 
+    begin
+       --  Note that in the following messages, if the operand is overloaded we
+       --  choose an arbitrary type to complain about, but that is probably more
+       --  useful than not giving a type at all.
+ 
+       if Nkind (N) in N_Unary_Op then
+          Error_Msg_Node_2 := Etype (R);
+          Error_Msg_N ("operator& not defined for}", N);
+ 
+       elsif Nkind (N) in N_Binary_Op then
+          if not Is_Overloaded (L)
+            and then not Is_Overloaded (R)
+            and then Base_Type (Etype (L)) = Base_Type (Etype (R))
+          then
+             Error_Msg_Node_2 := First_Subtype (Etype (R));
+             Error_Msg_N ("there is no applicable operator& for}", N);
+ 
+          else
+             --  Another attempt to find a fix: one of the candidate
+             --  interpretations may not be use-visible. This has
+             --  already been checked for predefined operators, so
+             --  we examine only user-defined functions.
+ 
+             Op_Id := Get_Name_Entity_Id (Chars (N));
+ 
+             while Present (Op_Id) loop
+                if Ekind (Op_Id) /= E_Operator
+                  and then Is_Overloadable (Op_Id)
+                  and then not Is_Immediately_Visible (Op_Id)
+                  and then not In_Use (Scope (Op_Id))
+                  and then not Is_Abstract_Subprogram (Op_Id)
+                  and then not Is_Hidden (Op_Id)
+                  and then Ekind (Scope (Op_Id)) = E_Package
+                  and then Has_Compatible_Type (L, Etype (First_Formal (Op_Id)))
+                  and then Present (Next_Formal (First_Formal (Op_Id)))
+                  and then
+                    Has_Compatible_Type
+                      (R, Etype (Next_Formal (First_Formal (Op_Id))))
+                then
+                   Error_Msg_N ("no legal interpretation for operator&", N);
+                   Error_Msg_NE ("\use clause on& would make operation legal",
+                                 N, Scope (Op_Id));
+                   exit;
+                end if;
+ 
+                Op_Id := Homonym (Op_Id);
+             end loop;
+ 
+             if No (Op_Id) then
+                Error_Msg_N ("invalid operand types for operator&", N);
+ 
+                if Nkind (N) /= N_Op_Concat then
+                   Error_Msg_NE ("\left operand has}!",  N, Etype (L));
+                   Error_Msg_NE ("\right operand has}!", N, Etype (R));
+ 
+                   --  For multiplication and division operators with
+                   --  a fixed-point operand and an integer operand,
+                   --  indicate that the integer operand should be of
+                   --  type Integer.
+ 
+                   if Nkind (N) in N_Op_Multiply | N_Op_Divide
+                     and then Is_Fixed_Point_Type (Etype (L))
+                     and then Is_Integer_Type (Etype (R))
+                   then
+                      Error_Msg_N ("\convert right operand to `Integer`", N);
+ 
+                   elsif Nkind (N) = N_Op_Multiply
+                     and then Is_Fixed_Point_Type (Etype (R))
+                     and then Is_Integer_Type (Etype (L))
+                   then
+                      Error_Msg_N ("\convert left operand to `Integer`", N);
+                   end if;
+ 
+                --  For concatenation operators it is more difficult to
+                --  determine which is the wrong operand. It is worth
+                --  flagging explicitly an access type, for those who
+                --  might think that a dereference happens here.
+ 
+                elsif Is_Access_Type (Etype (L)) then
+                   Error_Msg_N ("\left operand is access type", N);
+ 
+                elsif Is_Access_Type (Etype (R)) then
+                   Error_Msg_N ("\right operand is access type", N);
+                end if;
+             end if;
+          end if;
+       end if;
+    end Unresolved_Operator;
+ 
     ---------
     -- wpo --
     ---------
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch4.ads gcc-14.1.0/gcc/ada/sem_ch4.ads
*** gcc-13.2.0/gcc/ada/sem_ch4.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch4.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Ch4  is
*** 88,91 ****
--- 88,94 ----
     --  of a non-tagged type is allowed as if Extensions_Allowed returned True.
     --  This is used to issue better error messages.
  
+    procedure Unresolved_Operator (N : Node_Id);
+    --  Give an error for an unresolved operator
+ 
  end Sem_Ch4;
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch5.adb gcc-14.1.0/gcc/ada/sem_ch5.adb
*** gcc-13.2.0/gcc/ada/sem_ch5.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch5.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch5 is
*** 91,99 ****
  
     function Has_Sec_Stack_Call (N : Node_Id) return Boolean;
     --  N is the node for an arbitrary construct. This function searches the
!    --  construct N to see if any expressions within it contain function
!    --  calls that use the secondary stack, returning True if any such call
!    --  is found, and False otherwise.
  
     procedure Preanalyze_Range (R_Copy : Node_Id);
     --  Determine expected type of range or domain of iteration of Ada 2012
--- 91,104 ----
  
     function Has_Sec_Stack_Call (N : Node_Id) return Boolean;
     --  N is the node for an arbitrary construct. This function searches the
!    --  construct N to see if it contains a function call that returns on the
!    --  secondary stack, returning True if any such call is found, and False
!    --  otherwise.
! 
!    --  ??? The implementation invokes Sem_Util.Requires_Transient_Scope so it
!    --  will return True if N contains a function call that needs finalization,
!    --  in addition to the above specification. See Analyze_Loop_Statement for
!    --  a similar comment about this entanglement.
  
     procedure Preanalyze_Range (R_Copy : Node_Id);
     --  Determine expected type of range or domain of iteration of Ada 2012
*************** package body Sem_Ch5 is
*** 113,119 ****
  
     procedure Analyze_Assignment (N : Node_Id) is
        Lhs : constant Node_Id := Name (N);
!       Rhs : Node_Id          := Expression (N);
  
        procedure Diagnose_Non_Variable_Lhs (N : Node_Id);
        --  N is the node for the left hand side of an assignment, and it is not
--- 118,124 ----
  
     procedure Analyze_Assignment (N : Node_Id) is
        Lhs : constant Node_Id := Name (N);
!       Rhs : constant Node_Id := Expression (N);
  
        procedure Diagnose_Non_Variable_Lhs (N : Node_Id);
        --  N is the node for the left hand side of an assignment, and it is not
*************** package body Sem_Ch5 is
*** 137,163 ****
        --  nominal subtype. This procedure is used to deal with cases where the
        --  nominal subtype must be replaced by the actual subtype.
  
-       procedure Transform_BIP_Assignment (Typ : Entity_Id);
-       function Should_Transform_BIP_Assignment
-         (Typ : Entity_Id) return Boolean;
-       --  If the right-hand side of an assignment statement is a build-in-place
-       --  call we cannot build in place, so we insert a temp initialized with
-       --  the call, and transform the assignment statement to copy the temp.
-       --  Transform_BIP_Assignment does the transformation, and
-       --  Should_Transform_BIP_Assignment determines whether we should.
-       --  The same goes for qualified expressions and conversions whose
-       --  operand is such a call.
-       --
-       --  This is only for nonlimited types; assignment statements are illegal
-       --  for limited types, but are generated internally for aggregates and
-       --  init procs. These limited-type are not really assignment statements
-       --  -- conceptually, they are initializations, so should not be
-       --  transformed.
-       --
-       --  Similarly, for nonlimited types, aggregates and init procs generate
-       --  assignment statements that are really initializations. These are
-       --  marked No_Ctrl_Actions.
- 
        function Within_Function return Boolean;
        --  Determine whether the current scope is a function or appears within
        --  one.
--- 142,147 ----
*************** package body Sem_Ch5 is
*** 324,333 ****
           then
              Opnd_Type := Get_Actual_Subtype (Opnd);
  
!          --  If assignment operand is a component reference, then we get the
!          --  actual subtype of the component for the unconstrained case.
  
!          elsif Nkind (Opnd) in N_Selected_Component | N_Explicit_Dereference
             and then not Is_Unchecked_Union (Opnd_Type)
           then
              Decl := Build_Actual_Subtype_Of_Component (Opnd_Type, Opnd);
--- 308,320 ----
           then
              Opnd_Type := Get_Actual_Subtype (Opnd);
  
!          --  If the assignment operand is a component reference, then we build
!          --  the actual subtype of the component for the unconstrained case,
!          --  unless there is already one or the type is an unchecked union.
  
!          elsif (Nkind (Opnd) = N_Selected_Component
!                  or else (Nkind (Opnd) = N_Explicit_Dereference
!                            and then No (Actual_Designated_Subtype (Opnd))))
             and then not Is_Unchecked_Union (Opnd_Type)
           then
              Decl := Build_Actual_Subtype_Of_Component (Opnd_Type, Opnd);
*************** package body Sem_Ch5 is
*** 351,437 ****
           end if;
        end Set_Assignment_Type;
  
-       -------------------------------------
-       -- Should_Transform_BIP_Assignment --
-       -------------------------------------
- 
-       function Should_Transform_BIP_Assignment
-         (Typ : Entity_Id) return Boolean
-       is
-       begin
-          if Expander_Active
-            and then not Is_Limited_View (Typ)
-            and then Is_Build_In_Place_Result_Type (Typ)
-            and then not No_Ctrl_Actions (N)
-          then
-             --  This function is called early, before name resolution is
-             --  complete, so we have to deal with things that might turn into
-             --  function calls later. N_Function_Call and N_Op nodes are the
-             --  obvious case. An N_Identifier or N_Expanded_Name is a
-             --  parameterless function call if it denotes a function.
-             --  Finally, an attribute reference can be a function call.
- 
-             declare
-                Unqual_Rhs : constant Node_Id := Unqual_Conv (Rhs);
-             begin
-                case Nkind (Unqual_Rhs) is
-                   when N_Function_Call
-                      | N_Op
-                   =>
-                      return True;
- 
-                   when N_Expanded_Name
-                      | N_Identifier
-                   =>
-                      return
-                        Ekind (Entity (Unqual_Rhs)) in E_Function | E_Operator;
- 
-                   --  T'Input will turn into a call whose result type is T
- 
-                   when N_Attribute_Reference =>
-                      return Attribute_Name (Unqual_Rhs) = Name_Input;
- 
-                   when others =>
-                      return False;
-                end case;
-             end;
-          else
-             return False;
-          end if;
-       end Should_Transform_BIP_Assignment;
- 
-       ------------------------------
-       -- Transform_BIP_Assignment --
-       ------------------------------
- 
-       procedure Transform_BIP_Assignment (Typ : Entity_Id) is
- 
-          --  Tranform "X : [constant] T := F (...);" into:
-          --
-          --     Temp : constant T := F (...);
-          --     X := Temp;
- 
-          Loc      : constant Source_Ptr := Sloc (N);
-          Def_Id   : constant Entity_Id  := Make_Temporary (Loc, 'Y', Rhs);
-          Obj_Decl : constant Node_Id    :=
-                       Make_Object_Declaration (Loc,
-                         Defining_Identifier => Def_Id,
-                         Constant_Present    => True,
-                         Object_Definition   => New_Occurrence_Of (Typ, Loc),
-                         Expression          => Rhs,
-                         Has_Init_Expression => True);
- 
-       begin
-          Set_Etype (Def_Id, Typ);
-          Set_Expression (N, New_Occurrence_Of (Def_Id, Loc));
- 
-          --  At this point, Rhs is no longer equal to Expression (N), so:
- 
-          Rhs := Expression (N);
- 
-          Insert_Action (N, Obj_Decl);
-       end Transform_BIP_Assignment;
- 
        ---------------------
        -- Within_Function --
        ---------------------
--- 338,343 ----
*************** package body Sem_Ch5 is
*** 607,662 ****
           end if;
        end if;
  
-       --  Deal with build-in-place calls for nonlimited types. We don't do this
-       --  later, because resolving the rhs tranforms it incorrectly for build-
-       --  in-place.
- 
-       if Should_Transform_BIP_Assignment (Typ => T1) then
- 
-          --  In certain cases involving user-defined concatenation operators,
-          --  we need to resolve the right-hand side before transforming the
-          --  assignment.
- 
-          case Nkind (Unqual_Conv (Rhs)) is
-             when N_Function_Call =>
-                declare
-                   Actual     : Node_Id :=
-                     First (Parameter_Associations (Unqual_Conv (Rhs)));
-                   Actual_Exp : Node_Id;
- 
-                begin
-                   while Present (Actual) loop
-                      if Nkind (Actual) = N_Parameter_Association then
-                         Actual_Exp := Explicit_Actual_Parameter (Actual);
-                      else
-                         Actual_Exp := Actual;
-                      end if;
- 
-                      if Nkind (Actual_Exp) = N_Op_Concat then
-                         Resolve (Rhs, T1);
-                         exit;
-                      end if;
- 
-                      Next (Actual);
-                   end loop;
-                end;
- 
-             when N_Attribute_Reference
-                | N_Expanded_Name
-                | N_Identifier
-                | N_Op
-             =>
-                null;
- 
-             when others =>
-                raise Program_Error;
-          end case;
- 
-          Transform_BIP_Assignment (Typ => T1);
-       end if;
- 
-       pragma Assert (not Should_Transform_BIP_Assignment (Typ => T1));
- 
        --  The resulting assignment type is T1, so now we will resolve the left
        --  hand side of the assignment using this determined type.
  
--- 513,518 ----
*************** package body Sem_Ch5 is
*** 1300,1307 ****
              Full_Analysis := Save_Full_Analysis;
              Current_Assignment := Empty;
           end if;
- 
-          pragma Assert (not Should_Transform_BIP_Assignment (Typ => T1));
        end if;
     end Analyze_Assignment;
  
--- 1156,1161 ----
*************** package body Sem_Ch5 is
*** 2259,2269 ****
           Ent : Entity_Id;
  
        begin
!          --  If iterator type is derived, the cursor is declared in the scope
!          --  of the parent type.
  
           if Is_Derived_Type (Typ) then
!             Ent := First_Entity (Scope (Etype (Typ)));
           else
              Ent := First_Entity (Scope (Typ));
           end if;
--- 2113,2140 ----
           Ent : Entity_Id;
  
        begin
!          --  If the iterator type is derived and it has an iterator interface
!          --  type as an ancestor, then the cursor type is declared in the scope
!          --  of that interface type.
  
           if Is_Derived_Type (Typ) then
!             declare
!                Iter_Iface : constant Entity_Id :=
!                               Iterator_Interface_Ancestor (Typ);
! 
!             begin
!                if Present (Iter_Iface) then
!                   Ent := First_Entity (Scope (Iter_Iface));
! 
!                --  If there's not an iterator interface, then retrieve the
!                --  scope associated with the parent type and start from its
!                --  first entity.
! 
!                else
!                   Ent := First_Entity (Scope (Etype (Typ)));
!                end if;
!             end;
! 
           else
              Ent := First_Entity (Scope (Typ));
           end if;
*************** package body Sem_Ch5 is
*** 2371,2376 ****
--- 2242,2248 ----
        --  iterator name.
  
        Mutate_Ekind (Def_Id, E_Variable);
+       Set_Is_Not_Self_Hidden (Def_Id);
  
        --  Provide a link between the iterator variable and the container, for
        --  subsequent use in cross-reference and modification information.
*************** package body Sem_Ch5 is
*** 2649,2654 ****
--- 2521,2527 ----
  
        else
           Mutate_Ekind (Def_Id, E_Loop_Parameter);
+          Set_Is_Not_Self_Hidden (Def_Id);
           Error_Msg_Ada_2012_Feature ("container iterator", Sloc (N));
  
           --  OF present
*************** package body Sem_Ch5 is
*** 2702,2707 ****
--- 2575,2581 ----
  
                       if Has_Aspect (Typ, Aspect_Variable_Indexing) then
                          Mutate_Ekind (Def_Id, E_Variable);
+                         Set_Is_Not_Self_Hidden (Def_Id);
                       end if;
  
                       --  If the container is a constant, iterating over it
*************** package body Sem_Ch5 is
*** 2963,2969 ****
             and then Has_Predicates (T)
             and then (not Has_Static_Predicate (T)
                        or else not Is_Static_Subtype (T)
!                       or else Has_Dynamic_Predicate_Aspect (T))
           then
              --  Seems a confusing message for the case of a static predicate
              --  with a non-static subtype???
--- 2837,2844 ----
             and then Has_Predicates (T)
             and then (not Has_Static_Predicate (T)
                        or else not Is_Static_Subtype (T)
!                       or else Has_Dynamic_Predicate_Aspect (T)
!                       or else Has_Ghost_Predicate_Aspect (T))
           then
              --  Seems a confusing message for the case of a static predicate
              --  with a non-static subtype???
*************** package body Sem_Ch5 is
*** 3326,3331 ****
--- 3201,3207 ----
        end if;
  
        Mutate_Ekind (Id, E_Loop_Parameter);
+       Set_Is_Not_Self_Hidden (Id);
  
        --  A quantified expression which appears in a pre- or post-condition may
        --  be analyzed multiple times. The analysis of the range creates several
*************** package body Sem_Ch5 is
*** 3576,3589 ****
        if Present (Iterator_Filter (N)) then
           Preanalyze_And_Resolve (Iterator_Filter (N), Standard_Boolean);
        end if;
- 
-       --  A loop parameter cannot be effectively volatile (SPARK RM 7.1.3(4)).
-       --  This check is relevant only when SPARK_Mode is on as it is not a
-       --  standard Ada legality check.
- 
-       if SPARK_Mode = On and then Is_Effectively_Volatile (Id) then
-          Error_Msg_N ("loop parameter cannot be volatile", Id);
-       end if;
     end Analyze_Loop_Parameter_Specification;
  
     ----------------------------
--- 3452,3457 ----
*************** package body Sem_Ch5 is
*** 3772,3780 ****
                 Cont_Typ := Etype (Nam_Copy);
  
                 --  The iterator loop is traversing an array. This case does not
!                --  require any transformation.
  
!                if Is_Array_Type (Cont_Typ) then
                    null;
  
                 --  Otherwise unconditionally wrap the loop statement within
--- 3640,3652 ----
                 Cont_Typ := Etype (Nam_Copy);
  
                 --  The iterator loop is traversing an array. This case does not
!                --  require any transformation, unless the name contains a call
!                --  that returns on the secondary stack since we need to release
!                --  the space allocated there.
  
!                if Is_Array_Type (Cont_Typ)
!                  and then not Has_Sec_Stack_Call (Nam_Copy)
!                then
                    null;
  
                 --  Otherwise unconditionally wrap the loop statement within
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch5.ads gcc-14.1.0/gcc/ada/sem_ch5.ads
*** gcc-13.2.0/gcc/ada/sem_ch5.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch5.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch6.adb gcc-14.1.0/gcc/ada/sem_ch6.adb
*** gcc-13.2.0/gcc/ada/sem_ch6.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch6.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Inline;         use Inline;
*** 47,58 ****
--- 47,60 ----
  with Itypes;         use Itypes;
  with Lib.Xref;       use Lib.Xref;
  with Layout;         use Layout;
+ with Local_Restrict;
  with Namet;          use Namet;
  with Lib;            use Lib;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
  with Opt;            use Opt;
  with Output;         use Output;
+ with Restrict;       use Restrict;
  with Rtsfind;        use Rtsfind;
  with Sem;            use Sem;
  with Sem_Aux;        use Sem_Aux;
*************** package body Sem_Ch6 is
*** 226,231 ****
--- 228,237 ----
     --  Preanalysis of default expressions of subprogram formals. N is the
     --  expression to be analyzed and T is the expected type.
  
+    procedure Set_Formal_Mode (Formal_Id : Entity_Id);
+    --  Set proper Ekind to reflect formal mode (in, out, in out), and set
+    --  miscellaneous other attributes.
+ 
     procedure Set_Formal_Validity (Formal_Id : Entity_Id);
     --  Formal_Id is an formal parameter entity. This procedure deals with
     --  setting the proper validity status for this entity, which depends on
*************** package body Sem_Ch6 is
*** 284,292 ****
        Generate_Reference_To_Formals (Subp_Id);
        Check_Eliminated (Subp_Id);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Subp_Id);
!       end if;
     end Analyze_Abstract_Subprogram_Declaration;
  
     ---------------------------------
--- 290,296 ----
        Generate_Reference_To_Formals (Subp_Id);
        Check_Eliminated (Subp_Id);
  
!       Analyze_Aspect_Specifications (N, Subp_Id);
     end Analyze_Abstract_Subprogram_Declaration;
  
     ---------------------------------
*************** package body Sem_Ch6 is
*** 357,362 ****
--- 361,373 ----
  
        Ret := Make_Simple_Return_Statement (LocX, Expr);
  
+       --  Remove parens around the expression, so that if the expression will
+       --  appear without them when pretty-printed in error messages.
+ 
+       if Paren_Count (Expr) > 0 then
+          Set_Paren_Count (Expr, Paren_Count (Expr) - 1);
+       end if;
+ 
        New_Body :=
          Make_Subprogram_Body (Loc,
            Specification              => New_Spec,
*************** package body Sem_Ch6 is
*** 379,387 ****
           --  function to the proper body when the expression function acts
           --  as a completion.
  
!          if Has_Aspects (N) then
!             Move_Aspects (N, To => New_Body);
!          end if;
  
           Relocate_Pragmas_To_Body (New_Body);
  
--- 390,396 ----
           --  function to the proper body when the expression function acts
           --  as a completion.
  
!          Move_Aspects (N, To => New_Body);
  
           Relocate_Pragmas_To_Body (New_Body);
  
*************** package body Sem_Ch6 is
*** 419,429 ****
           Generate_Reference (Prev, Defining_Entity (N), 'b', Force => True);
           Rewrite (N, New_Body);
  
!          --  Remove any existing aspects from the original node because the act
!          --  of rewriting causes the list to be shared between the two nodes.
  
           Orig_N := Original_Node (N);
!          Remove_Aspects (Orig_N);
  
           --  Propagate any pragmas that apply to expression function to the
           --  proper body when the expression function acts as a completion.
--- 428,437 ----
           Generate_Reference (Prev, Defining_Entity (N), 'b', Force => True);
           Rewrite (N, New_Body);
  
!          --  Keep the aspects from the original node
  
           Orig_N := Original_Node (N);
!          Move_Aspects (Orig_N, N);
  
           --  Propagate any pragmas that apply to expression function to the
           --  proper body when the expression function acts as a completion.
*************** package body Sem_Ch6 is
*** 477,487 ****
  
           Rewrite (N, Make_Subprogram_Declaration (Loc, Specification => Spec));
  
!          --  Remove any existing aspects from the original node because the act
!          --  of rewriting causes the list to be shared between the two nodes.
  
           Orig_N := Original_Node (N);
!          Remove_Aspects (Orig_N);
  
           Analyze (N);
  
--- 485,494 ----
  
           Rewrite (N, Make_Subprogram_Declaration (Loc, Specification => Spec));
  
!          --  Keep the aspects from the original node
  
           Orig_N := Original_Node (N);
!          Move_Aspects (Orig_N, N);
  
           Analyze (N);
  
*************** package body Sem_Ch6 is
*** 838,843 ****
--- 845,851 ----
                and then Serious_Errors_Detected = 0
                and then Is_Access_Type (R_Type)
                and then Nkind (Expr) not in N_Null | N_Raise_Expression
+               and then Is_Access_Type (Etype (Expr))
                and then Is_Interface (Designated_Type (R_Type))
                and then Is_Progenitor (Designated_Type (R_Type),
                                        Designated_Type (Etype (Expr)))
*************** package body Sem_Ch6 is
*** 847,852 ****
--- 855,868 ----
              end if;
  
              Resolve (Expr, R_Type);
+ 
+             --  The expansion of the expression may have rewritten the return
+             --  statement itself, e.g. when it is a conditional expression.
+ 
+             if Nkind (N) /= N_Simple_Return_Statement then
+                return;
+             end if;
+ 
              Check_Limited_Return (N, Expr, R_Type);
  
              Check_Return_Construct_Accessibility (N, Stm_Entity);
*************** package body Sem_Ch6 is
*** 942,950 ****
  
           --  Defend against previous errors
  
!          if Nkind (Expr) = N_Empty
!            or else No (Etype (Expr))
!          then
              return;
           end if;
  
--- 958,964 ----
  
           --  Defend against previous errors
  
!          if Nkind (Expr) = N_Empty or else No (Etype (Expr)) then
              return;
           end if;
  
*************** package body Sem_Ch6 is
*** 1051,1057 ****
           --  get generated elsewhere.
  
           if (Ada_Version < Ada_2005 or else Debug_Flag_Dot_L)
!            and then Is_Limited_View (Etype (Scope_Id))
             and then Static_Accessibility_Level (Expr, Zero_On_Dynamic_Level)
                        > Subprogram_Access_Level (Scope_Id)
           then
--- 1065,1071 ----
           --  get generated elsewhere.
  
           if (Ada_Version < Ada_2005 or else Debug_Flag_Dot_L)
!            and then Is_Inherently_Limited_Type (Etype (Scope_Id))
             and then Static_Accessibility_Level (Expr, Zero_On_Dynamic_Level)
                        > Subprogram_Access_Level (Scope_Id)
           then
*************** package body Sem_Ch6 is
*** 1121,1131 ****
           New_N := Copy_Generic_Node (N, Empty, Instantiating => False);
           Rewrite (N, New_N);
  
-          --  Once the contents of the generic copy and the template are
-          --  swapped, do the same for their respective aspect specifications.
- 
-          Exchange_Aspects (N, New_N);
- 
           --  Collect all contract-related source pragmas found within the
           --  template and attach them to the contract of the subprogram body.
           --  This contract is used in the capture of global references within
--- 1135,1140 ----
*************** package body Sem_Ch6 is
*** 1225,1230 ****
--- 1234,1243 ----
               (E_Function | E_Procedure |
                  E_Generic_Function | E_Generic_Procedure => True,
                others => False));
+          Reinit_Field_To_Zero (Body_Id, F_Needs_No_Actuals);
+          if Ekind (Body_Id) in E_Function | E_Procedure then
+             Reinit_Field_To_Zero (Body_Id, F_Is_Inlined_Always);
+          end if;
           Mutate_Ekind       (Body_Id, E_Subprogram_Body);
           Set_Convention     (Body_Id, Convention (Gen_Id));
           Set_Is_Obsolescent (Body_Id, Is_Obsolescent (Gen_Id));
*************** package body Sem_Ch6 is
*** 1267,1275 ****
           --  Analyze any aspect specifications that appear on the generic
           --  subprogram body.
  
!          if Has_Aspects (N) then
!             Analyze_Aspects_On_Subprogram_Body_Or_Stub (N);
!          end if;
  
           --  Process the contract of the subprogram body after analyzing all
           --  the contract-related pragmas within the declarations.
--- 1280,1286 ----
           --  Analyze any aspect specifications that appear on the generic
           --  subprogram body.
  
!          Analyze_Aspects_On_Subprogram_Body_Or_Stub (N);
  
           --  Process the contract of the subprogram body after analyzing all
           --  the contract-related pragmas within the declarations.
*************** package body Sem_Ch6 is
*** 1484,1489 ****
--- 1495,1501 ----
  
           Is_Completion := True;
           Rewrite (N, Null_Body);
+          Move_Aspects (Original_Node (N), N);
           Analyze (N);
        end if;
  
*************** package body Sem_Ch6 is
*** 1741,1751 ****
          and then Ekind (Entity (Selector_Name (P)))
                     in E_Entry | E_Function | E_Procedure
        then
!          --  When front-end inlining is enabled, as with SPARK_Mode, a call
           --  in prefix notation may still be missing its controlling argument,
           --  so perform the transformation now.
  
!          if SPARK_Mode = On and then In_Inlined_Body then
              declare
                 Subp : constant Entity_Id := Entity (Selector_Name (P));
                 Typ  : constant Entity_Id := Etype (Prefix (P));
--- 1753,1763 ----
          and then Ekind (Entity (Selector_Name (P)))
                     in E_Entry | E_Function | E_Procedure
        then
!          --  When front-end inlining is enabled, as with GNATprove mode, a call
           --  in prefix notation may still be missing its controlling argument,
           --  so perform the transformation now.
  
!          if GNATprove_Mode and then In_Inlined_Body then
              declare
                 Subp : constant Entity_Id := Entity (Selector_Name (P));
                 Typ  : constant Entity_Id := Etype (Prefix (P));
*************** package body Sem_Ch6 is
*** 2033,2039 ****
  
     procedure Analyze_Return_Type (N : Node_Id) is
        Designator : constant Entity_Id := Defining_Entity (N);
!       Typ        : Entity_Id := Empty;
  
     begin
        --  Normal case where result definition does not indicate an error
--- 2045,2051 ----
  
     procedure Analyze_Return_Type (N : Node_Id) is
        Designator : constant Entity_Id := Defining_Entity (N);
!       Typ        : Entity_Id;
  
     begin
        --  Normal case where result definition does not indicate an error
*************** package body Sem_Ch6 is
*** 2198,2203 ****
--- 2210,2259 ----
        end if;
     end Analyze_Return_Type;
  
+    --------------------------------------------
+    -- Analyze_SPARK_Subprogram_Specification --
+    --------------------------------------------
+ 
+    procedure Analyze_SPARK_Subprogram_Specification (N : Node_Id) is
+       Spec_Id : constant Entity_Id := Defining_Entity (N);
+       Formal  : Entity_Id;
+ 
+    begin
+       if not Comes_From_Source (Spec_Id) then
+          return;
+       end if;
+ 
+       --  The following checks are relevant only when SPARK_Mode is On as
+       --  these are not standard Ada legality rules.
+ 
+       if No (SPARK_Pragma (Spec_Id))
+         or else Get_SPARK_Mode_From_Annotation (SPARK_Pragma (Spec_Id)) /= On
+       then
+          return;
+       end if;
+ 
+       Formal := First_Formal (Spec_Id);
+       while Present (Formal) loop
+          if Ekind (Spec_Id) in E_Function | E_Generic_Function
+            and then not Is_Function_With_Side_Effects (Spec_Id)
+          then
+             --  A function cannot have a parameter of mode IN OUT or OUT
+             --  (SPARK RM 6.1).
+ 
+             if Ekind (Formal) in E_In_Out_Parameter
+                                | E_Out_Parameter
+             then
+                Error_Msg_Code := GEC_Out_Parameter_In_Function;
+                Error_Msg_N
+                  ("function cannot have parameter of mode `OUT` or "
+                   & "`IN OUT` in SPARK '[[]']", Formal);
+             end if;
+          end if;
+ 
+          Next_Formal (Formal);
+       end loop;
+    end Analyze_SPARK_Subprogram_Specification;
+ 
     -----------------------------
     -- Analyze_Subprogram_Body --
     -----------------------------
*************** package body Sem_Ch6 is
*** 2262,2268 ****
        Mask_Types : Elist_Id  := No_Elist;
        Prot_Typ   : Entity_Id := Empty;
        Spec_Decl  : Node_Id   := Empty;
!       Spec_Id    : Entity_Id;
  
        Last_Real_Spec_Entity : Entity_Id := Empty;
        --  When we analyze a separate spec, the entity chain ends up containing
--- 2318,2324 ----
        Mask_Types : Elist_Id  := No_Elist;
        Prot_Typ   : Entity_Id := Empty;
        Spec_Decl  : Node_Id   := Empty;
!       Spec_Id    : Entity_Id := Empty;
  
        Last_Real_Spec_Entity : Entity_Id := Empty;
        --  When we analyze a separate spec, the entity chain ends up containing
*************** package body Sem_Ch6 is
*** 2860,2868 ****
  
                    --  Move aspects to the new spec
  
!                   if Has_Aspects (N) then
!                      Move_Aspects (N, To => Decl);
!                   end if;
  
                    Insert_Before (N, Decl);
                    Analyze (Decl);
--- 2916,2922 ----
  
                    --  Move aspects to the new spec
  
!                   Move_Aspects (N, To => Decl);
  
                    Insert_Before (N, Decl);
                    Analyze (Decl);
*************** package body Sem_Ch6 is
*** 3895,3900 ****
--- 3949,3955 ----
             and then Serious_Errors_Detected = 0
           then
              Set_Has_Delayed_Freeze (Spec_Id);
+             Create_Extra_Formals (Spec_Id);
              Freeze_Before (N, Spec_Id);
           end if;
        end if;
*************** package body Sem_Ch6 is
*** 4002,4014 ****
              Reference_Body_Formals (Spec_Id, Body_Id);
           end if;
  
!          Reinit_Field_To_Zero (Body_Id, F_Has_Out_Or_In_Out_Parameter);
!          Reinit_Field_To_Zero (Body_Id, F_Needs_No_Actuals,
!            Old_Ekind => (E_Function | E_Procedure => True, others => False));
!          Reinit_Field_To_Zero (Body_Id, F_Is_Predicate_Function,
!            Old_Ekind => (E_Function | E_Procedure => True, others => False));
!          Reinit_Field_To_Zero (Body_Id, F_Protected_Subprogram,
             Old_Ekind => (E_Function | E_Procedure => True, others => False));
  
           if Ekind (Body_Id) = E_Procedure then
              Reinit_Field_To_Zero (Body_Id, F_Receiving_Entry);
--- 4057,4073 ----
              Reference_Body_Formals (Spec_Id, Body_Id);
           end if;
  
!          Reinit_Field_To_Zero (Body_Id, F_Has_Out_Or_In_Out_Parameter,
             Old_Ekind => (E_Function | E_Procedure => True, others => False));
+          Reinit_Field_To_Zero (Body_Id, F_Needs_No_Actuals);
+          Reinit_Field_To_Zero (Body_Id, F_Is_Predicate_Function);
+          Reinit_Field_To_Zero (Body_Id, F_Protected_Subprogram);
+          Reinit_Field_To_Zero (Body_Id, F_Is_Inlined_Always);
+          Reinit_Field_To_Zero (Body_Id, F_Is_Generic_Actual_Subprogram);
+          Reinit_Field_To_Zero (Body_Id, F_Is_Primitive_Wrapper);
+          Reinit_Field_To_Zero (Body_Id, F_Is_Private_Primitive);
+          Reinit_Field_To_Zero (Body_Id, F_Original_Protected_Subprogram);
+          Reinit_Field_To_Zero (Body_Id, F_Wrapped_Entity);
  
           if Ekind (Body_Id) = E_Procedure then
              Reinit_Field_To_Zero (Body_Id, F_Receiving_Entry);
*************** package body Sem_Ch6 is
*** 4294,4302 ****
        --  or a statement part, and it cannot be inlined.
  
        if Nkind (N) = N_Subprogram_Body_Stub then
!          if Has_Aspects (N) then
!             Analyze_Aspects_On_Subprogram_Body_Or_Stub (N);
!          end if;
  
           goto Leave;
        end if;
--- 4353,4359 ----
        --  or a statement part, and it cannot be inlined.
  
        if Nkind (N) = N_Subprogram_Body_Stub then
!          Analyze_Aspects_On_Subprogram_Body_Or_Stub (N);
  
           goto Leave;
        end if;
*************** package body Sem_Ch6 is
*** 4434,4439 ****
--- 4491,4500 ----
           begin
              while Present (Prot_Ext_Formal) loop
                 pragma Assert (Present (Impl_Ext_Formal));
+                pragma Assert (not Is_Build_In_Place_Entity (Prot_Ext_Formal)
+                  or else BIP_Suffix_Kind (Impl_Ext_Formal)
+                            = BIP_Suffix_Kind (Prot_Ext_Formal));
+ 
                 Set_Protected_Formal (Prot_Ext_Formal, Impl_Ext_Formal);
                 Next_Formal_With_Extras (Prot_Ext_Formal);
                 Next_Formal_With_Extras (Impl_Ext_Formal);
*************** package body Sem_Ch6 is
*** 4539,4547 ****
  
        --  Analyze any aspect specifications that appear on the subprogram body
  
!       if Has_Aspects (N) then
!          Analyze_Aspects_On_Subprogram_Body_Or_Stub (N);
!       end if;
  
        --  Process the contract of the subprogram body after analyzing all the
        --  contract-related pragmas within the declarations.
--- 4600,4606 ----
  
        --  Analyze any aspect specifications that appear on the subprogram body
  
!       Analyze_Aspects_On_Subprogram_Body_Or_Stub (N);
  
        --  Process the contract of the subprogram body after analyzing all the
        --  contract-related pragmas within the declarations.
*************** package body Sem_Ch6 is
*** 4549,4554 ****
--- 4608,4636 ----
        Analyze_Pragmas_In_Declarations (Body_Id);
        Analyze_Entry_Or_Subprogram_Body_Contract (Body_Id);
  
+       --  Apply SPARK legality checks
+ 
+       Analyze_SPARK_Subprogram_Specification (Specification (N));
+ 
+       --  A function with side effects shall not be an expression function
+       --  (SPARK RM 6.1.11(6)).
+ 
+       if Present (Spec_Id)
+         and then (Is_Expression_Function (Spec_Id)
+                   or else Is_Expression_Function (Body_Id))
+         and then Is_Function_With_Side_Effects (Spec_Id)
+       then
+          if From_Aspect_Specification
+            (Get_Pragma (Spec_Id, Pragma_Side_Effects))
+          then
+             Error_Msg_N ("aspect Side_Effects not allowed"
+                          & " on an expression function", N);
+          else
+             Error_Msg_N ("pragma Side_Effects not allowed"
+                          & " on an expression function", N);
+          end if;
+       end if;
+ 
        Set_Actual_Subtypes (N, Current_Scope);
  
        --  Add a declaration for the Protection object, renaming declarations
*************** package body Sem_Ch6 is
*** 5155,5163 ****
        --  case the subprogram is a compilation unit and one of its aspects is
        --  converted into a categorization pragma.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Designator);
!       end if;
  
        if Scop /= Standard_Standard and then not Is_Child_Unit (Designator) then
           Set_Categorization_From_Scope (Designator, Scop);
--- 5237,5251 ----
        --  case the subprogram is a compilation unit and one of its aspects is
        --  converted into a categorization pragma.
  
!       Analyze_Aspect_Specifications (N, Designator);
! 
!       --  The legality of a function specification in SPARK depends on whether
!       --  the function is a function with or without side effects. Analyze the
!       --  pragma in advance if present, before specific SPARK legality checks.
! 
!       Analyze_Pragmas_If_Present (N, Pragma_SPARK_Mode);
!       Analyze_Pragmas_If_Present (N, Pragma_Side_Effects);
!       Analyze_SPARK_Subprogram_Specification (Specification (N));
  
        if Scop /= Standard_Standard and then not Is_Child_Unit (Designator) then
           Set_Categorization_From_Scope (Designator, Scop);
*************** package body Sem_Ch6 is
*** 5233,5244 ****
           Set_Etype (Designator, Standard_Void_Type);
        end if;
  
        --  Flag Is_Inlined_Always is True by default, and reversed to False for
        --  those subprograms which could be inlined in GNATprove mode (because
!       --  Body_To_Inline is non-Empty) but should not be inlined.
  
        if GNATprove_Mode then
           Set_Is_Inlined_Always (Designator);
        end if;
  
        --  Introduce new scope for analysis of the formals and the return type
--- 5321,5337 ----
           Set_Etype (Designator, Standard_Void_Type);
        end if;
  
+       Set_Is_Not_Self_Hidden (Designator);
+ 
        --  Flag Is_Inlined_Always is True by default, and reversed to False for
        --  those subprograms which could be inlined in GNATprove mode (because
!       --  Body_To_Inline is non-Empty) but should not be inlined. Flag
!       --  Is_Inlined is True by default and reversed to False when inlining
!       --  fails because the subprogram is detected to be recursive.
  
        if GNATprove_Mode then
           Set_Is_Inlined_Always (Designator);
+          Set_Is_Inlined (Designator);
        end if;
  
        --  Introduce new scope for analysis of the formals and the return type
*************** package body Sem_Ch6 is
*** 5280,5285 ****
--- 5373,5379 ----
  
           if Ada_Version >= Ada_2005
             and then not Is_Invariant_Procedure_Or_Body (Designator)
+            and then not Is_Init_Proc (Designator)
           then
              declare
                 Formal     : Entity_Id;
*************** package body Sem_Ch6 is
*** 5980,6020 ****
                --  avoids some redundant error messages.
  
                and then not Error_Posted (New_Formal)
-             then
-                --  It is allowed to omit the null-exclusion in case of stream
-                --  attribute subprograms. We recognize stream subprograms
-                --  through their TSS-generated suffix.
  
!                declare
!                   TSS_Name : constant TSS_Name_Type := Get_TSS_Name (New_Id);
  
!                begin
!                   if TSS_Name /= TSS_Stream_Read
!                     and then TSS_Name /= TSS_Stream_Write
!                     and then TSS_Name /= TSS_Stream_Input
!                     and then TSS_Name /= TSS_Stream_Output
!                   then
!                      --  Here we have a definite conformance error. It is worth
!                      --  special casing the error message for the case of a
!                      --  controlling formal (which excludes null).
  
!                      if Is_Controlling_Formal (New_Formal) then
!                         Error_Msg_Node_2 := Scope (New_Formal);
!                         Conformance_Error
!                          ("\controlling formal & of & excludes null, "
!                           & "declaration must exclude null as well",
!                           New_Formal);
  
!                      --  Normal case (couldn't we give more detail here???)
  
!                      else
!                         Conformance_Error
!                           ("\type of & does not match!", New_Formal);
!                      end if;
  
!                      return;
!                   end if;
!                end;
              end if;
           end if;
  
--- 6074,6108 ----
                --  avoids some redundant error messages.
  
                and then not Error_Posted (New_Formal)
  
!               --  It is allowed to omit the null-exclusion in case of stream
!               --  attribute subprograms. We recognize stream subprograms
!               --  through their TSS-generated suffix.
  
!               and then Get_TSS_Name (New_Id) not in TSS_Stream_Read
!                                                   | TSS_Stream_Write
!                                                   | TSS_Stream_Input
!                                                   | TSS_Stream_Output
!             then
!                --  Here we have a definite conformance error. It is worth
!                --  special casing the error message for the case of a
!                --  controlling formal (which excludes null).
  
!                if Is_Controlling_Formal (New_Formal) then
!                   Error_Msg_Node_2 := Scope (New_Formal);
!                   Conformance_Error
!                     ("\controlling formal & of & excludes null, "
!                      & "declaration must exclude null as well",
!                      New_Formal);
  
!                   --  Normal case (couldn't we give more detail here???)
  
!                else
!                   Conformance_Error
!                     ("\type of & does not match!", New_Formal);
!                end if;
  
!                return;
              end if;
           end if;
  
*************** package body Sem_Ch6 is
*** 6578,6584 ****
                ("(Ada 2005) cannot copy object of a limited type "
                 & "(RM-2005 6.5(5.5/2))", Expr);
  
!             if Is_Limited_View (R_Type) then
                 Error_Msg_N
                   ("\return by reference not permitted in Ada 2005", Expr);
              end if;
--- 6666,6672 ----
                ("(Ada 2005) cannot copy object of a limited type "
                 & "(RM-2005 6.5(5.5/2))", Expr);
  
!             if Is_Inherently_Limited_Type (R_Type) then
                 Error_Msg_N
                   ("\return by reference not permitted in Ada 2005", Expr);
              end if;
*************** package body Sem_Ch6 is
*** 6598,6604 ****
                   ("return of limited object not permitted in Ada 2005 "
                    & "(RM-2005 6.5(5.5/2))?y?", Expr);
  
!             elsif Is_Limited_View (R_Type) then
                 Error_Msg_N
                   ("return by reference not permitted in Ada 2005 "
                    & "(RM-2005 6.5(5.5/2))?y?", Expr);
--- 6686,6692 ----
                   ("return of limited object not permitted in Ada 2005 "
                    & "(RM-2005 6.5(5.5/2))?y?", Expr);
  
!             elsif Is_Inherently_Limited_Type (R_Type) then
                 Error_Msg_N
                   ("return by reference not permitted in Ada 2005 "
                    & "(RM-2005 6.5(5.5/2))?y?", Expr);
*************** package body Sem_Ch6 is
*** 7296,7313 ****
              --  already, so the Assert_False is for the assertions off case.
  
              if not Raise_Exception_Call and then not Assert_False then
- 
-                --  In GNATprove mode, it is an error to have a missing return
- 
-                Error_Msg_Warn := SPARK_Mode /= On;
- 
-                --  Issue error message or warning
- 
                 Error_Msg_N
!                  ("RETURN statement missing following this statement<<!",
                    Last_Stm);
                 Error_Msg_N
!                  ("\Program_Error [<<!", Last_Stm);
              end if;
  
              --  Note: we set Err even though we have not issued a warning
--- 7384,7394 ----
              --  already, so the Assert_False is for the assertions off case.
  
              if not Raise_Exception_Call and then not Assert_False then
                 Error_Msg_N
!                  ("RETURN statement missing following this statement??!",
                    Last_Stm);
                 Error_Msg_N
!                  ("\Program_Error [??!", Last_Stm);
              end if;
  
              --  Note: we set Err even though we have not issued a warning
*************** package body Sem_Ch6 is
*** 7479,7484 ****
--- 7560,7574 ----
          (New_Id, Old_Id, Subtype_Conformant, True, Result, Err_Loc,
           Skip_Controlling_Formals => Skip_Controlling_Formals,
           Get_Inst                 => Get_Inst);
+ 
+       if Old_Id /= New_Id
+         and then Is_Subprogram (New_Id)
+         and then Is_Subprogram (Old_Id)
+       then
+          Local_Restrict.Check_Overriding
+            (Overrider_Op => New_Id,
+             Overridden_Op => Old_Id);
+       end if;
     end Check_Subtype_Conformant;
  
     -----------------------------------
*************** package body Sem_Ch6 is
*** 8391,8411 ****
             Ctype <= Mode_Conformant
               or else Subtypes_Statically_Match (Type_1, Full_View (Type_2));
  
!       elsif Is_Private_Type (Type_2)
!         and then In_Instance
!         and then Present (Full_View (Type_2))
!         and then Base_Types_Match (Type_1, Full_View (Type_2))
!       then
!          return
!            Ctype <= Mode_Conformant
!              or else Subtypes_Statically_Match (Type_1, Full_View (Type_2));
! 
!       --  Another confusion between views in a nested instance with an
!       --  actual private type whose full view is not in scope.
  
        elsif Ekind (Type_2) = E_Private_Subtype
-         and then In_Instance
          and then Etype (Type_2) = Type_1
        then
           return True;
  
--- 8481,8494 ----
             Ctype <= Mode_Conformant
               or else Subtypes_Statically_Match (Type_1, Full_View (Type_2));
  
!       --  The subtype declared for the formal type in an instantiation and the
!       --  actual type are conforming. Note that testing Is_Generic_Actual_Type
!       --  here is not sufficient because the flag is only set in the bodies of
!       --  instances, which is too late for formal subprograms.
  
        elsif Ekind (Type_2) = E_Private_Subtype
          and then Etype (Type_2) = Type_1
+         and then Present (Generic_Parent_Type (Declaration_Node (Type_2)))
        then
           return True;
  
*************** package body Sem_Ch6 is
*** 8576,8581 ****
--- 8659,8669 ----
        function Has_Extra_Formals (E : Entity_Id) return Boolean;
        --  Determines if E has its extra formals
  
+       function Might_Need_BIP_Task_Actuals (E : Entity_Id) return Boolean;
+       --  Determines if E is a dispatching primitive returning a limited tagged
+       --  type object since some descendant might return an object with tasks
+       --  (and therefore need the BIP task extra actuals).
+ 
        function Needs_Accessibility_Check_Extra
          (E      : Entity_Id;
           Formal : Node_Id) return Boolean;
*************** package body Sem_Ch6 is
*** 8651,8656 ****
--- 8739,8796 ----
                  and then Present (Extra_Accessibility_Of_Result (E)));
        end Has_Extra_Formals;
  
+       ---------------------------------
+       -- Might_Need_BIP_Task_Actuals --
+       ---------------------------------
+ 
+       function Might_Need_BIP_Task_Actuals (E : Entity_Id) return Boolean is
+          Subp_Id  : Entity_Id;
+          Func_Typ : Entity_Id;
+ 
+       begin
+          if Global_No_Tasking or else No_Run_Time_Mode then
+             return False;
+          end if;
+ 
+          --  No further check needed if we know that BIP task actuals are
+          --  required.
+ 
+          if Needs_BIP_Task_Actuals (E) then
+             return True;
+          end if;
+ 
+          --  For thunks we must rely on their target entity
+ 
+          if Is_Thunk (E) then
+             Subp_Id := Thunk_Target (E);
+ 
+          --  For protected subprograms we rely on the subprogram which
+          --  implements the body of the operation (since it is the entity
+          --  that may be a dispatching operation).
+ 
+          elsif Is_Protected_Type (Scope (E))
+            and then Present (Protected_Body_Subprogram (E))
+          then
+             Subp_Id := Protected_Body_Subprogram (E);
+ 
+          else
+             Subp_Id := E;
+          end if;
+ 
+          --  We check the root type of the return type since the same
+          --  decision must be taken for all descendants overriding a
+          --  dispatching operation.
+ 
+          Func_Typ := Root_Type (Underlying_Type (Etype (Subp_Id)));
+ 
+          return Ekind (Subp_Id) = E_Function
+            and then not Has_Foreign_Convention (Func_Typ)
+            and then Is_Dispatching_Operation (Subp_Id)
+            and then Is_Tagged_Type (Func_Typ)
+            and then Is_Limited_Type (Func_Typ)
+            and then not Has_Aspect (Func_Typ, Aspect_No_Task_Parts);
+       end Might_Need_BIP_Task_Actuals;
+ 
        -------------------------------------
        -- Needs_Accessibility_Check_Extra --
        -------------------------------------
*************** package body Sem_Ch6 is
*** 8699,8705 ****
           Ovr_Alias : Entity_Id;
  
        begin
!          if Present (Ovr_E) then
              Ovr_Alias := Ultimate_Alias (Ovr_E);
  
              --  There is no real overridden subprogram if there is a mutual
--- 8839,8850 ----
           Ovr_Alias : Entity_Id;
  
        begin
!          if Present (Ovr_E)
!            and then Ekind (Ovr_E) = E_Enumeration_Literal
!          then
!             Ovr_E := Empty;
! 
!          elsif Present (Ovr_E) then
              Ovr_Alias := Ultimate_Alias (Ovr_E);
  
              --  There is no real overridden subprogram if there is a mutual
*************** package body Sem_Ch6 is
*** 8722,8728 ****
                       and then Has_Controlling_Result (Subp_Id))
                     or else Has_Suffix (Ovr_E, 'P')
                     or else Is_RACW_Stub_Type
!                              (Find_Dispatching_Type (Subp_Id)));
  
                 if Present (Overridden_Operation (Ovr_E)) then
                    Ovr_E := Overridden_Operation (Ovr_E);
--- 8867,8874 ----
                       and then Has_Controlling_Result (Subp_Id))
                     or else Has_Suffix (Ovr_E, 'P')
                     or else Is_RACW_Stub_Type
!                              (Find_Dispatching_Type (Subp_Id))
!                    or else No (Overridden_Operation (Ovr_E)));
  
                 if Present (Overridden_Operation (Ovr_E)) then
                    Ovr_E := Overridden_Operation (Ovr_E);
*************** package body Sem_Ch6 is
*** 8785,8791 ****
        then
           return;
  
!       --  Initialization procedures don't have extra formals
  
        elsif Is_Init_Proc (E) then
           return;
--- 8931,8938 ----
        then
           return;
  
!       --  Extra formals of Initialization procedures are added by the function
!       --  Exp_Ch3.Init_Formals
  
        elsif Is_Init_Proc (E) then
           return;
*************** package body Sem_Ch6 is
*** 8923,8928 ****
--- 9070,9087 ----
        --  for extra formals.
  
        if Present (Parent_Subp) then
+ 
+          --  Ensure that the parent subprogram has all its extra formals.
+          --  Required because its return type may have been a private or
+          --  an incomplete type, and the extra formals were not added. We
+          --  protect this call against the weird cases where the parent subp
+          --  renames this primitive (documented in the body of the local
+          --  function Parent_Subprogram).
+ 
+          if Ultimate_Alias (Parent_Subp) /= Ref_E then
+             Create_Extra_Formals (Parent_Subp);
+          end if;
+ 
           Parent_Formal := First_Formal (Parent_Subp);
  
           --  For concurrent types, the controlling argument of a dispatching
*************** package body Sem_Ch6 is
*** 9017,9024 ****
                           or else not
                             (Is_Limited_Type (Formal_Type)
                               and then
!                                (Is_Tagged_Type
!                                   (Underlying_Type (Formal_Type)))))
              then
                 Set_Extra_Constrained
                   (Formal, Add_Extra_Formal (Formal, Standard_Boolean, E, "O"));
--- 9176,9183 ----
                           or else not
                             (Is_Limited_Type (Formal_Type)
                               and then
!                                Is_Tagged_Type
!                                  (Underlying_Type (Formal_Type))))
              then
                 Set_Extra_Constrained
                   (Formal, Add_Extra_Formal (Formal, Standard_Boolean, E, "O"));
*************** package body Sem_Ch6 is
*** 9071,9090 ****
        begin
           Ada_Version := Ada_2022;
  
!          if Needs_Result_Accessibility_Level (Ref_E) then
!             pragma Assert (No (Parent_Subp)
!               or else Needs_Result_Accessibility_Level (Parent_Subp));
!             pragma Assert (No (Alias_Subp)
!               or else Needs_Result_Accessibility_Level (Alias_Subp));
! 
              Set_Extra_Accessibility_Of_Result (E,
                Add_Extra_Formal (E, Standard_Natural, E, "L"));
- 
-          else
-             pragma Assert (No (Parent_Subp)
-               or else not Needs_Result_Accessibility_Level (Parent_Subp));
-             pragma Assert (No (Alias_Subp)
-               or else not Needs_Result_Accessibility_Level (Alias_Subp));
           end if;
  
           Ada_Version := Save_Ada_Version;
--- 9230,9245 ----
        begin
           Ada_Version := Ada_2022;
  
!          if Needs_Result_Accessibility_Level (Ref_E)
!            or else
!              (Present (Parent_Subp)
!                 and then Needs_Result_Accessibility_Level (Parent_Subp))
!            or else
!              (Present (Alias_Subp)
!                 and then Needs_Result_Accessibility_Level (Alias_Subp))
!          then
              Set_Extra_Accessibility_Of_Result (E,
                Add_Extra_Formal (E, Standard_Natural, E, "L"));
           end if;
  
           Ada_Version := Save_Ada_Version;
*************** package body Sem_Ch6 is
*** 9119,9132 ****
              --  dispatching context and such calls must be handled like calls
              --  to a class-wide function.
  
!             if Needs_BIP_Alloc_Form (Ref_E) then
!                pragma Assert (No (Parent_Subp)
!                  or else Has_BIP_Extra_Formal (Parent_Subp, BIP_Alloc_Form,
!                            Must_Be_Frozen => False));
!                pragma Assert (No (Alias_Subp)
!                  or else Has_BIP_Extra_Formal (Alias_Subp, BIP_Alloc_Form,
!                            Must_Be_Frozen => False));
! 
                 Discard :=
                   Add_Extra_Formal
                     (E, Standard_Natural,
--- 9274,9289 ----
              --  dispatching context and such calls must be handled like calls
              --  to a class-wide function.
  
!             if Needs_BIP_Alloc_Form (Ref_E)
!               or else
!                 (Present (Parent_Subp)
!                    and then Has_BIP_Extra_Formal (Parent_Subp, BIP_Alloc_Form,
!                               Must_Be_Frozen => False))
!               or else
!                 (Present (Alias_Subp)
!                    and then Has_BIP_Extra_Formal (Alias_Subp, BIP_Alloc_Form,
!                               Must_Be_Frozen => False))
!             then
                 Discard :=
                   Add_Extra_Formal
                     (E, Standard_Natural,
*************** package body Sem_Ch6 is
*** 9142,9228 ****
                        (E, RTE (RE_Root_Storage_Pool_Ptr),
                         E, BIP_Formal_Suffix (BIP_Storage_Pool));
                 end if;
- 
-             else
-                pragma Assert (No (Parent_Subp)
-                  or else not
-                    Has_BIP_Extra_Formal (Parent_Subp, BIP_Alloc_Form,
-                      Must_Be_Frozen => False));
-                pragma Assert (No (Alias_Subp)
-                  or else not
-                    Has_BIP_Extra_Formal (Alias_Subp, BIP_Alloc_Form,
-                      Must_Be_Frozen => False));
              end if;
  
              --  In the case of functions whose result type needs finalization,
              --  add an extra formal which represents the finalization master.
  
!             if Needs_BIP_Finalization_Master (Ref_E) then
!                pragma Assert (No (Parent_Subp)
!                  or else Has_BIP_Extra_Formal (Parent_Subp,
!                            Kind           => BIP_Finalization_Master,
!                            Must_Be_Frozen => False));
!                pragma Assert (No (Alias_Subp)
!                  or else Has_BIP_Extra_Formal (Alias_Subp,
!                            Kind           => BIP_Finalization_Master,
!                            Must_Be_Frozen => False));
! 
                 Discard :=
                   Add_Extra_Formal
                     (E, RTE (RE_Finalization_Master_Ptr),
                      E, BIP_Formal_Suffix (BIP_Finalization_Master));
- 
-             else
-                pragma Assert (No (Parent_Subp)
-                  or else not
-                    Has_BIP_Extra_Formal (Parent_Subp,
-                      Kind           => BIP_Finalization_Master,
-                      Must_Be_Frozen => False));
-                pragma Assert (No (Alias_Subp)
-                  or else not
-                    Has_BIP_Extra_Formal (Alias_Subp,
-                      Kind           => BIP_Finalization_Master,
-                      Must_Be_Frozen => False));
              end if;
  
              --  When the result type contains tasks, add two extra formals: the
              --  master of the tasks to be created, and the caller's activation
              --  chain.
  
!             if Needs_BIP_Task_Actuals (Ref_E) then
!                pragma Assert (No (Parent_Subp)
!                  or else Has_BIP_Extra_Formal (Parent_Subp, BIP_Task_Master,
!                            Must_Be_Frozen => False));
!                pragma Assert (No (Alias_Subp)
!                  or else Has_BIP_Extra_Formal (Alias_Subp, BIP_Task_Master,
!                            Must_Be_Frozen => False)
!                  or else
!                    (Is_Abstract_Subprogram (Ref_E)
!                       and then Is_Predefined_Dispatching_Operation (Ref_E)
!                       and then Is_Interface
!                                  (Find_Dispatching_Type (Alias_Subp))));
! 
                 Discard :=
                   Add_Extra_Formal
                     (E, Standard_Integer,
                      E, BIP_Formal_Suffix (BIP_Task_Master));
  
!                Set_Has_Master_Entity (E);
  
                 Discard :=
                   Add_Extra_Formal
                     (E, RTE (RE_Activation_Chain_Access),
                      E, BIP_Formal_Suffix (BIP_Activation_Chain));
- 
-             else
-                pragma Assert (No (Parent_Subp)
-                  or else not
-                    Has_BIP_Extra_Formal (Parent_Subp, BIP_Task_Master,
-                      Must_Be_Frozen => False));
-                pragma Assert (No (Alias_Subp)
-                  or else not
-                    Has_BIP_Extra_Formal (Alias_Subp, BIP_Task_Master,
-                      Must_Be_Frozen => False));
              end if;
  
              --  All build-in-place functions get an extra formal that will be
--- 9299,9355 ----
                        (E, RTE (RE_Root_Storage_Pool_Ptr),
                         E, BIP_Formal_Suffix (BIP_Storage_Pool));
                 end if;
              end if;
  
              --  In the case of functions whose result type needs finalization,
              --  add an extra formal which represents the finalization master.
  
!             if Needs_BIP_Finalization_Master (Ref_E)
!               or else
!                 (Present (Parent_Subp)
!                    and then Has_BIP_Extra_Formal (Parent_Subp,
!                               Kind           => BIP_Finalization_Master,
!                               Must_Be_Frozen => False))
!               or else
!                 (Present (Alias_Subp)
!                    and then Has_BIP_Extra_Formal (Alias_Subp,
!                               Kind           => BIP_Finalization_Master,
!                               Must_Be_Frozen => False))
!             then
                 Discard :=
                   Add_Extra_Formal
                     (E, RTE (RE_Finalization_Master_Ptr),
                      E, BIP_Formal_Suffix (BIP_Finalization_Master));
              end if;
  
              --  When the result type contains tasks, add two extra formals: the
              --  master of the tasks to be created, and the caller's activation
              --  chain.
  
!             if Needs_BIP_Task_Actuals (Ref_E)
!               or else Might_Need_BIP_Task_Actuals (Ref_E)
!               or else
!                 (Present (Parent_Subp)
!                    and then Has_BIP_Extra_Formal (Parent_Subp, BIP_Task_Master,
!                               Must_Be_Frozen => False))
!               or else
!                 (Present (Alias_Subp)
!                    and then Has_BIP_Extra_Formal (Alias_Subp, BIP_Task_Master,
!                               Must_Be_Frozen => False))
!             then
                 Discard :=
                   Add_Extra_Formal
                     (E, Standard_Integer,
                      E, BIP_Formal_Suffix (BIP_Task_Master));
  
!                if Needs_BIP_Task_Actuals (Ref_E) then
!                   Set_Has_Master_Entity (E);
!                end if;
  
                 Discard :=
                   Add_Extra_Formal
                     (E, RTE (RE_Activation_Chain_Access),
                      E, BIP_Formal_Suffix (BIP_Activation_Chain));
              end if;
  
              --  All build-in-place functions get an extra formal that will be
*************** package body Sem_Ch6 is
*** 10349,10355 ****
                   FCL (Expressions (E1), Expressions (E2));
  
              when N_Integer_Literal =>
!                return (Intval (E1) = Intval (E2))
                   and then not User_Defined_Numeric_Literal_Mismatch;
  
              when N_Null =>
--- 10476,10482 ----
                   FCL (Expressions (E1), Expressions (E2));
  
              when N_Integer_Literal =>
!                return Intval (E1) = Intval (E2)
                   and then not User_Defined_Numeric_Literal_Mismatch;
  
              when N_Null =>
*************** package body Sem_Ch6 is
*** 10436,10442 ****
                   FCE (High_Bound (E1), High_Bound (E2));
  
              when N_Real_Literal =>
!                return (Realval (E1) = Realval (E2))
                   and then not User_Defined_Numeric_Literal_Mismatch;
  
              when N_Selected_Component =>
--- 10563,10569 ----
                   FCE (High_Bound (E1), High_Bound (E2));
  
              when N_Real_Literal =>
!                return Realval (E1) = Realval (E2)
                   and then not User_Defined_Numeric_Literal_Mismatch;
  
              when N_Selected_Component =>
*************** package body Sem_Ch6 is
*** 10625,10645 ****
  
        else
           declare
!             Typ : constant Entity_Id :=
!                     Underlying_Type (Find_Dispatching_Type (Alias_E));
  
           begin
!             if (Get_TSS_Name (E) = TSS_Stream_Input
!                   and then not Stream_Operation_OK (Typ, TSS_Stream_Input))
!               or else
!                 (Get_TSS_Name (E) = TSS_Stream_Output
!                    and then not Stream_Operation_OK (Typ, TSS_Stream_Output))
!               or else
!                 (Get_TSS_Name (E) = TSS_Stream_Read
!                    and then not Stream_Operation_OK (Typ, TSS_Stream_Read))
!               or else
!                 (Get_TSS_Name (E) = TSS_Stream_Write
!                    and then not Stream_Operation_OK (Typ, TSS_Stream_Write))
              then
                 return False;
              end if;
--- 10752,10767 ----
  
        else
           declare
!             TSS_Name : constant TSS_Name_Type := Get_TSS_Name (E);
!             Typ      : constant Entity_Id :=
!               Underlying_Type (Find_Dispatching_Type (Alias_E));
  
           begin
!             if TSS_Name in TSS_Stream_Input
!                          | TSS_Stream_Output
!                          | TSS_Stream_Read
!                          | TSS_Stream_Write
!               and then not Stream_Operation_OK (Typ, TSS_Name)
              then
                 return False;
              end if;
*************** package body Sem_Ch6 is
*** 11718,11724 ****
  
           begin
              while Present (Param_E1) and then Present (Param_E2) loop
!                if (Ctype >= Mode_Conformant) and then
                   Ekind (Defining_Identifier (Param_E1)) /=
                   Ekind (Defining_Identifier (Param_E2))
                 then
--- 11840,11846 ----
  
           begin
              while Present (Param_E1) and then Present (Param_E2) loop
!                if Ctype >= Mode_Conformant and then
                   Ekind (Defining_Identifier (Param_E1)) /=
                   Ekind (Defining_Identifier (Param_E2))
                 then
*************** package body Sem_Ch6 is
*** 13022,13055 ****
              Null_Exclusion_Static_Checks (Param_Spec);
           end if;
  
-          --  The following checks are relevant only when SPARK_Mode is on as
-          --  these are not standard Ada legality rules.
- 
-          if SPARK_Mode = On then
-             if Ekind (Scope (Formal)) in E_Function | E_Generic_Function then
- 
-                --  A function cannot have a parameter of mode IN OUT or OUT
-                --  (SPARK RM 6.1).
- 
-                if Ekind (Formal) in E_In_Out_Parameter | E_Out_Parameter then
-                   Error_Msg_N
-                     ("function cannot have parameter of mode `OUT` or "
-                      & "`IN OUT`", Formal);
-                end if;
- 
-             --  A procedure cannot have an effectively volatile formal
-             --  parameter of mode IN because it behaves as a constant
-             --  (SPARK RM 7.1.3(4)).
- 
-             elsif Ekind (Scope (Formal)) = E_Procedure
-               and then Ekind (Formal) = E_In_Parameter
-               and then Is_Effectively_Volatile (Formal)
-             then
-                Error_Msg_N
-                  ("formal parameter of mode `IN` cannot be volatile", Formal);
-             end if;
-          end if;
- 
           --  Deal with aspects on formal parameters. Only Unreferenced is
           --  supported for the time being.
  
--- 13144,13149 ----
*************** package body Sem_Ch6 is
*** 13413,13418 ****
--- 13507,13514 ----
           Mutate_Ekind (Formal_Id, E_In_Parameter);
        end if;
  
+       Set_Is_Not_Self_Hidden (Formal_Id);
+ 
        --  Set Is_Known_Non_Null for access parameters since the language
        --  guarantees that access parameters are always non-null. We also set
        --  Can_Never_Be_Null, since there is no way to change the value.
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch6.ads gcc-14.1.0/gcc/ada/sem_ch6.ads
*** gcc-13.2.0/gcc/ada/sem_ch6.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch6.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Ch6 is
*** 51,56 ****
--- 51,60 ----
     --  and body declarations. Returns the defining entity for the
     --  specification N.
  
+    procedure Analyze_SPARK_Subprogram_Specification (N : Node_Id);
+    --  Check SPARK legality rules that require that the specification has been
+    --  analyzed already.
+ 
     function Can_Override_Operator (Subp : Entity_Id) return Boolean;
     --  Returns true if Subp can override a predefined operator
  
*************** package Sem_Ch6 is
*** 282,290 ****
     --  during execution of the subprogram. By setting the actual subtype
     --  once, we avoid recomputing it unnecessarily.
  
-    procedure Set_Formal_Mode (Formal_Id : Entity_Id);
-    --  Set proper Ekind to reflect formal mode (in, out, in out)
- 
     function Subtype_Conformant
       (New_Id                   : Entity_Id;
        Old_Id                   : Entity_Id;
--- 286,291 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch7.adb gcc-14.1.0/gcc/ada/sem_ch7.adb
*** gcc-13.2.0/gcc/ada/sem_ch7.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch7.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch7 is
*** 319,326 ****
              function Set_Referencer_Of_Non_Subprograms return Boolean is
              begin
                 --  An inlined subprogram body acts as a referencer
!                --  unless we generate C code since inlining is then
!                --  handled by the C compiler.
  
                 --  Note that we test Has_Pragma_Inline here in addition
                 --  to Is_Inlined. We are doing this for a client, since
--- 319,327 ----
              function Set_Referencer_Of_Non_Subprograms return Boolean is
              begin
                 --  An inlined subprogram body acts as a referencer
!                --  unless we generate C code without -gnatn where we want
!                --  to favor generating static inline functions as much as
!                --  possible.
  
                 --  Note that we test Has_Pragma_Inline here in addition
                 --  to Is_Inlined. We are doing this for a client, since
*************** package body Sem_Ch7 is
*** 329,335 ****
                 --  should occur, so we need to catch all cases where the
                 --  subprogram may be inlined by the client.
  
!                if (not CCG_Mode or else Has_Pragma_Inline_Always (Decl_Id))
                   and then (Is_Inlined (Decl_Id)
                              or else Has_Pragma_Inline (Decl_Id))
                 then
--- 330,338 ----
                 --  should occur, so we need to catch all cases where the
                 --  subprogram may be inlined by the client.
  
!                if (not CCG_Mode
!                      or else Has_Pragma_Inline_Always (Decl_Id)
!                      or else Inline_Active)
                   and then (Is_Inlined (Decl_Id)
                              or else Has_Pragma_Inline (Decl_Id))
                 then
*************** package body Sem_Ch7 is
*** 446,452 ****
--- 449,459 ----
                    else
                       Decl_Id := Defining_Entity (Decl);
  
+                      --  See the N_Subprogram_Declaration case below
+ 
                       if not Set_Referencer_Of_Non_Subprograms
+                        and then (not In_Nested_Instance
+                                   or else not Subprogram_Table.Get_First)
                         and then not Subprogram_Table.Get (Decl_Id)
                       then
                          --  We can reset Is_Public right away
*************** package body Sem_Ch7 is
*** 870,880 ****
           New_N := Copy_Generic_Node (N, Empty, Instantiating => False);
           Rewrite (N, New_N);
  
-          --  Once the contents of the generic copy and the template are
-          --  swapped, do the same for their respective aspect specifications.
- 
-          Exchange_Aspects (N, New_N);
- 
           --  Collect all contract-related source pragmas found within the
           --  template and attach them to the contract of the package body.
           --  This contract is used in the capture of global references within
--- 877,882 ----
*************** package body Sem_Ch7 is
*** 893,898 ****
--- 895,903 ----
        --  current node otherwise. Note that N was rewritten above, so we must
        --  be sure to get the latest Body_Id value.
  
+       if Ekind (Body_Id) = E_Package then
+          Reinit_Field_To_Zero (Body_Id, F_Body_Needed_For_Inlining);
+       end if;
        Mutate_Ekind (Body_Id, E_Package_Body);
        Set_Body_Entity (Spec_Id, Body_Id);
        Set_Spec_Entity (Body_Id, Spec_Id);
*************** package body Sem_Ch7 is
*** 919,927 ****
        Set_Has_Completion (Spec_Id);
        Last_Spec_Entity := Last_Entity (Spec_Id);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Body_Id);
!       end if;
  
        Push_Scope (Spec_Id);
  
--- 924,930 ----
        Set_Has_Completion (Spec_Id);
        Last_Spec_Entity := Last_Entity (Spec_Id);
  
!       Analyze_Aspect_Specifications (N, Body_Id);
  
        Push_Scope (Spec_Id);
  
*************** package body Sem_Ch7 is
*** 1180,1185 ****
--- 1183,1190 ----
        Generate_Definition (Id);
        Enter_Name (Id);
        Mutate_Ekind  (Id, E_Package);
+       Set_Is_Not_Self_Hidden (Id);
+       --  Needed early because of Set_Categorization_From_Pragmas below
        Set_Etype  (Id, Standard_Void_Type);
  
        --  Set SPARK_Mode from context
*************** package body Sem_Ch7 is
*** 1201,1209 ****
        --  Analyze aspect specifications immediately, since we need to recognize
        --  things like Pure early enough to diagnose violations during analysis.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
  
        --  Ada 2005 (AI-217): Check if the package has been illegally named in
        --  a limited-with clause of its own context. In this case the error has
--- 1206,1212 ----
        --  Analyze aspect specifications immediately, since we need to recognize
        --  things like Pure early enough to diagnose violations during analysis.
  
!       Analyze_Aspect_Specifications (N, Id);
  
        --  Ada 2005 (AI-217): Check if the package has been illegally named in
        --  a limited-with clause of its own context. In this case the error has
*************** package body Sem_Ch7 is
*** 1255,1266 ****
                 Is_Main_Unit => Parent (N) = Cunit (Main_Unit));
           end if;
  
!          --  Warn about references to unset objects, which is straightforward
!          --  for packages with no bodies. For packages with bodies this is more
!          --  complicated, because some of the objects might be set between spec
!          --  and body elaboration, in nested or child packages, etc.
  
!          Check_References (Id);
        end if;
  
        --  Set Body_Required indication on the compilation unit node
--- 1258,1274 ----
                 Is_Main_Unit => Parent (N) = Cunit (Main_Unit));
           end if;
  
!          --  For package declarations at the library level, warn about
!          --  references to unset objects, which is straightforward for packages
!          --  with no bodies. For packages with bodies this is more complicated,
!          --  because some of the objects might be set between spec and body
!          --  elaboration, in nested or child packages, etc. Note that the
!          --  recursive calls in Check_References will handle nested package
!          --  specifications.
  
!          if Is_Library_Level_Entity (Id) then
!             Check_References (Id);
!          end if;
        end if;
  
        --  Set Body_Required indication on the compilation unit node
*************** package body Sem_Ch7 is
*** 1927,1932 ****
--- 1935,1954 ----
              end;
           end if;
  
+          --  Preanalyze class-wide conditions of dispatching primitives defined
+          --  in nested packages. For library packages, class-wide pre- and
+          --  postconditions are preanalyzed when the primitives are frozen
+          --  (see Merge_Class_Conditions); for nested packages, the end of the
+          --  package does not cause freezing (and hence they must be analyzed
+          --  now to ensure the correct visibility of referenced entities).
+ 
+          if not Is_Compilation_Unit (Id)
+            and then Is_Dispatching_Operation (E)
+            and then Present (Contract (E))
+          then
+             Preanalyze_Class_Conditions (E);
+          end if;
+ 
           Next_Entity (E);
        end loop;
  
*************** package body Sem_Ch7 is
*** 2063,2071 ****
        Set_SPARK_Pragma           (Id, SPARK_Mode_Pragma);
        Set_SPARK_Pragma_Inherited (Id);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
     end Analyze_Private_Type_Declaration;
  
     ----------------------------------
--- 2085,2091 ----
        Set_SPARK_Pragma           (Id, SPARK_Mode_Pragma);
        Set_SPARK_Pragma_Inherited (Id);
  
!       Analyze_Aspect_Specifications (N, Id);
     end Analyze_Private_Type_Declaration;
  
     ----------------------------------
*************** package body Sem_Ch7 is
*** 2720,2729 ****
           Mutate_Ekind (Id, E_Private_Type);
        end if;
  
!       Set_Etype              (Id, Id);
        Set_Has_Delayed_Freeze (Id);
!       Set_Is_First_Subtype   (Id);
!       Reinit_Size_Align      (Id);
  
        Set_Is_Constrained (Id,
          No (Discriminant_Specifications (N))
--- 2740,2750 ----
           Mutate_Ekind (Id, E_Private_Type);
        end if;
  
!       Set_Is_Not_Self_Hidden (Id);
!       Set_Etype (Id, Id);
        Set_Has_Delayed_Freeze (Id);
!       Set_Is_First_Subtype (Id);
!       Reinit_Size_Align (Id);
  
        Set_Is_Constrained (Id,
          No (Discriminant_Specifications (N))
*************** package body Sem_Ch7 is
*** 3187,3196 ****
              --  is simply that the initializing expression is missing.
  
              if not Has_Private_Declaration (Etype (Id)) then
- 
-                --  We assume that the user did not intend a deferred constant
-                --  declaration, and the expression is just missing.
- 
                 Error_Msg_N
                   ("constant declaration requires initialization expression",
                     Parent (Id));
--- 3208,3213 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch7.ads gcc-14.1.0/gcc/ada/sem_ch7.ads
*** gcc-13.2.0/gcc/ada/sem_ch7.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch7.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch8.adb gcc-14.1.0/gcc/ada/sem_ch8.adb
*** gcc-13.2.0/gcc/ada/sem_ch8.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch8.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 26,32 ****
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Einfo;          use Einfo;
- with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
--- 26,31 ----
*************** with Impunit;        use Impunit;
*** 39,44 ****
--- 38,44 ----
  with Lib;            use Lib;
  with Lib.Load;       use Lib.Load;
  with Lib.Xref;       use Lib.Xref;
+ with Local_Restrict;
  with Namet;          use Namet;
  with Namet.Sp;       use Namet.Sp;
  with Nlists;         use Nlists;
*************** package body Sem_Ch8 is
*** 536,541 ****
--- 536,546 ----
     procedure Premature_Usage (N : Node_Id);
     --  Diagnose usage of an entity before it is visible
  
+    function Is_Self_Hidden (E : Entity_Id) return Boolean;
+    --  True within a declaration if it is hidden from all visibility by itself
+    --  (see RM-8.3(16-18)). This is mostly just "not Is_Not_Self_Hidden", but
+    --  we need to check for E_Void in case of errors.
+ 
     procedure Use_One_Package
       (N         : Node_Id;
        Pack_Name : Entity_Id := Empty;
*************** package body Sem_Ch8 is
*** 600,608 ****
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
     end Analyze_Exception_Renaming;
  
     ---------------------------
--- 605,611 ----
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       Analyze_Aspect_Specifications (N, Id);
     end Analyze_Exception_Renaming;
  
     ---------------------------
*************** package body Sem_Ch8 is
*** 748,756 ****
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, New_P);
!       end if;
     end Analyze_Generic_Renaming;
  
     -----------------------------
--- 751,757 ----
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       Analyze_Aspect_Specifications (N, New_P);
     end Analyze_Generic_Renaming;
  
     -----------------------------
*************** package body Sem_Ch8 is
*** 860,866 ****
                     Defining_Identifier => Subt,
                     Subtype_Indication  =>
                       Make_Subtype_From_Expr (Nam, Typ)));
!                Rewrite (Subtype_Mark (N), New_Occurrence_Of (Subt, Loc));
                 Set_Etype (Nam, Subt);
  
                 --  Suppress discriminant checks on this subtype if the original
--- 861,879 ----
                     Defining_Identifier => Subt,
                     Subtype_Indication  =>
                       Make_Subtype_From_Expr (Nam, Typ)));
! 
!                declare
!                   New_Subtype_Mark : constant Node_Id :=
!                     New_Occurrence_Of (Subt, Loc);
!                begin
!                   if Present (Subtype_Mark (N)) then
!                      Rewrite (Subtype_Mark (N), New_Subtype_Mark);
!                   else
!                      --  An Ada2022 renaming with no subtype mark
!                      Set_Subtype_Mark (N, New_Subtype_Mark);
!                   end if;
!                end;
! 
                 Set_Etype (Nam, Subt);
  
                 --  Suppress discriminant checks on this subtype if the original
*************** package body Sem_Ch8 is
*** 1142,1148 ****
           --  there is no copy involved and no performance hit.
  
           if Nkind (Nam) = N_Function_Call
!            and then Is_Limited_View (Etype (Nam))
             and then not Is_Constrained (Etype (Nam))
             and then Comes_From_Source (N)
           then
--- 1155,1161 ----
           --  there is no copy involved and no performance hit.
  
           if Nkind (Nam) = N_Function_Call
!            and then Is_Inherently_Limited_Type (Etype (Nam))
             and then not Is_Constrained (Etype (Nam))
             and then Comes_From_Source (N)
           then
*************** package body Sem_Ch8 is
*** 1577,1585 ****
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Id);
!       end if;
  
        --  Deal with dimensions
  
--- 1590,1596 ----
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       Analyze_Aspect_Specifications (N, Id);
  
        --  Deal with dimensions
  
*************** package body Sem_Ch8 is
*** 1760,1768 ****
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, New_P);
!       end if;
     end Analyze_Package_Renaming;
  
     -------------------------------
--- 1771,1777 ----
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       Analyze_Aspect_Specifications (N, New_P);
     end Analyze_Package_Renaming;
  
     -------------------------------
*************** package body Sem_Ch8 is
*** 3485,3493 ****
           --  constructed later at the freeze point, so indicate that the
           --  completion has not been seen yet.
  
!          Reinit_Field_To_Zero (New_S, F_Has_Out_Or_In_Out_Parameter);
!          Reinit_Field_To_Zero (New_S, F_Needs_No_Actuals,
             Old_Ekind => (E_Function | E_Procedure => True, others => False));
           Mutate_Ekind (New_S, E_Subprogram_Body);
           New_S := Rename_Spec;
           Set_Has_Completion (Rename_Spec, False);
--- 3494,3506 ----
           --  constructed later at the freeze point, so indicate that the
           --  completion has not been seen yet.
  
!          Reinit_Field_To_Zero (New_S, F_Has_Out_Or_In_Out_Parameter,
             Old_Ekind => (E_Function | E_Procedure => True, others => False));
+          Reinit_Field_To_Zero (New_S, F_Needs_No_Actuals);
+          Reinit_Field_To_Zero (New_S, F_Is_Predicate_Function);
+          Reinit_Field_To_Zero (New_S, F_Protected_Subprogram);
+          Reinit_Field_To_Zero (New_S, F_Is_Inlined_Always);
+          Reinit_Field_To_Zero (New_S, F_Is_Generic_Actual_Subprogram);
           Mutate_Ekind (New_S, E_Subprogram_Body);
           New_S := Rename_Spec;
           Set_Has_Completion (Rename_Spec, False);
*************** package body Sem_Ch8 is
*** 4196,4204 ****
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, New_S);
!       end if;
  
        --  AI12-0279
  
--- 4209,4215 ----
        --  declaration, but not language-defined ones. The call to procedure
        --  Analyze_Aspect_Specifications will take care of this error check.
  
!       Analyze_Aspect_Specifications (N, New_S);
  
        --  AI12-0279
  
*************** package body Sem_Ch8 is
*** 4238,4243 ****
--- 4249,4259 ----
              Mark_Use_Clauses (Alias (New_S));
           end if;
        end if;
+ 
+       if Is_Actual then
+          Local_Restrict.Check_Actual_Subprogram_For_Instance
+            (Actual_Subp_Name => Nam, Formal_Subp => Formal_Spec);
+       end if;
     end Analyze_Subprogram_Renaming;
  
     -------------------------
*************** package body Sem_Ch8 is
*** 5066,5072 ****
           if Id /= Current_Entity (Id) then
              Prev := Current_Entity (Id);
              while Present (Prev)
-               and then Present (Homonym (Prev))
                and then Homonym (Prev) /= Id
              loop
                 Prev := Homonym (Prev);
--- 5082,5087 ----
*************** package body Sem_Ch8 is
*** 5074,5080 ****
  
              --  Skip to end of loop if Id is not in the visibility chain
  
!             if No (Prev) or else Homonym (Prev) /= Id then
                 goto Next_Ent;
              end if;
  
--- 5089,5095 ----
  
              --  Skip to end of loop if Id is not in the visibility chain
  
!             if No (Prev) then
                 goto Next_Ent;
              end if;
  
*************** package body Sem_Ch8 is
*** 5452,5457 ****
--- 5467,5485 ----
        end case;
     end Error_Missing_With_Of_Known_Unit;
  
+    --------------------
+    -- Is_Self_Hidden --
+    --------------------
+ 
+    function Is_Self_Hidden (E : Entity_Id) return Boolean is
+    begin
+       if Is_Not_Self_Hidden (E) then
+          return Ekind (E) = E_Void;
+       else
+          return True;
+       end if;
+    end Is_Self_Hidden;
+ 
     ----------------------
     -- Find_Direct_Name --
     ----------------------
*************** package body Sem_Ch8 is
*** 6440,6453 ****
              Write_Entity_Info (E, "      ");
           end if;
  
!          --  If the Ekind of the entity is Void, it means that all homonyms
!          --  are hidden from all visibility (RM 8.3(5,14-20)). However, this
!          --  test is skipped if the current scope is a record and the name is
!          --  a pragma argument expression (case of Atomic and Volatile pragmas
!          --  and possibly other similar pragmas added later, which are allowed
!          --  to reference components in the current record).
! 
!          if Ekind (E) = E_Void
             and then
               (not Is_Record_Type (Current_Scope)
                 or else Nkind (Parent (N)) /= N_Pragma_Argument_Association)
--- 6468,6474 ----
              Write_Entity_Info (E, "      ");
           end if;
  
!          if Is_Self_Hidden (E)
             and then
               (not Is_Record_Type (Current_Scope)
                 or else Nkind (Parent (N)) /= N_Pragma_Argument_Association)
*************** package body Sem_Ch8 is
*** 6464,6469 ****
--- 6485,6828 ----
           then
              Collect_Interps (N);
  
+             --  Background: for an instance of a generic, expansion sets
+             --  entity fields on names that refer to things declared
+             --  outside of the instance, but leaves the entity field
+             --  unset on names that should end up referring to things
+             --  declared within the instance. These will instead be set by
+             --  analysis - the idea is that if a name resolves a certain
+             --  way in the generic, then we should get corresponding results
+             --  if we resolve the corresponding name in an instance. For this
+             --  to work, we have to prevent unrelated declarations that
+             --  happen to be visible at the point of the instantiation from
+             --  participating in resolution and causing problems (typically
+             --  ambiguities, but incorrect resolutions are also probably
+             --  possible). So here we filter out such unwanted interpretations.
+             --
+             --  Note that there are other problems with this approach to
+             --  implementing generic instances that are not addressed here.
+             --  Inside a generic, we might have no trouble resolving a call
+             --  where the two candidates are a function that returns a
+             --  formal type and a function that returns Standard.Integer.
+             --  If we instantiate that generic and the corresponding actual
+             --  type is Standard.Integer, then we may incorrectly reject the
+             --  corresponding call in the instance as ambiguous (or worse,
+             --  we may quietly choose the wrong resolution).
+             --
+             --  Another such problem can occur with a type derived from a
+             --  formal derived type. In an instance, such a type may have
+             --  inherited subprograms that are not present in the generic.
+             --  These can then interfere with name resolution (e.g., if
+             --  some declaration is visible via a use-clause in the generic
+             --  and some name in the generic refers to it, then the
+             --  corresponding declaration in an instance may be hidden by
+             --  a directly visible inherited subprogram and the corresponding
+             --  name in the instance may then incorrectly refer to the
+             --  inherited subprogram).
+ 
+             if In_Instance then
+                declare
+                   function Is_Actual_Subp_Of_Inst
+                     (E : Entity_Id; Inst : Entity_Id) return Boolean;
+                   --  Return True if E is an actual parameter
+                   --  corresponding to a formal subprogram of the
+                   --  instantiation Inst.
+ 
+                   function Is_Extraneously_Visible
+                     (E : Entity_Id; Inst : Entity_Id) return Boolean;
+                   --  Return True if E is an interpretation that should
+                   --  be filtered out. That is, if E is an "unwanted"
+                   --  resolution candidate as described in the
+                   --  preceding "Background:" commment.
+ 
+                   function Is_Generic_Actual_Subp_Name
+                     (N : Node_Id) return Boolean;
+                   --  Return True if N is the name of a subprogram
+                   --  renaming generated for a generic actual.
+ 
+                   ----------------------------
+                   -- Is_Actual_Subp_Of_Inst --
+                   ----------------------------
+ 
+                   function Is_Actual_Subp_Of_Inst
+                     (E : Entity_Id; Inst : Entity_Id) return Boolean
+                   is
+                      Decl                              : Node_Id;
+                      Generic_From_E, Generic_From_Inst : Entity_Id;
+                   begin
+                      --  ???
+                      --  Why is Is_Generic_Actual_Subprogram undefined
+                      --  in the E_Operator case?
+ 
+                      if Ekind (E) not in E_Function | E_Procedure
+                        or else not Is_Generic_Actual_Subprogram (E)
+                      then
+                         return False;
+                      end if;
+ 
+                      Decl := Enclosing_Declaration (E);
+ 
+                      --  Look for the suprogram renaming declaration built
+                      --  for a generic actual subprogram. Unclear why
+                      --  Original_Node call is needed, but sometimes it is.
+ 
+                      if Decl not in N_Subprogram_Renaming_Declaration_Id then
+                         Decl := Original_Node (Decl);
+                      end if;
+ 
+                      if Decl in N_Subprogram_Renaming_Declaration_Id then
+                         Generic_From_E :=
+                           Scope (Corresponding_Formal_Spec (Decl));
+                      else
+                         --  ??? In the case of a generic formal subprogram
+                         --  which has a pre/post condition, it is unclear how
+                         --  to find the Corresponding_Formal_Spec-bearing node.
+ 
+                         Generic_From_E := Empty;
+                      end if;
+ 
+                      declare
+                         Inst_Parent : Node_Id := Parent (Inst);
+                      begin
+                         if Nkind (Inst_Parent) = N_Defining_Program_Unit_Name
+                         then
+                            Inst_Parent := Parent (Inst_Parent);
+                         end if;
+ 
+                         Generic_From_Inst := Generic_Parent (Inst_Parent);
+                      end;
+ 
+                      return Generic_From_E = Generic_From_Inst
+                        and then Present (Generic_From_E);
+                   end Is_Actual_Subp_Of_Inst;
+ 
+                   -----------------------------
+                   -- Is_Extraneously_Visible --
+                   -----------------------------
+ 
+                   function Is_Extraneously_Visible
+                     (E : Entity_Id; Inst : Entity_Id) return Boolean is
+                   begin
+                      --  Return False in various non-extraneous cases.
+                      --  If none of those apply, then return True.
+ 
+                      if Within_Scope (E, Inst) then
+                         --  return False if E declared within Inst
+                         return False;
+ 
+                      elsif Is_Actual_Subp_Of_Inst (E, Inst) then
+                         --  Return False if E is an actual subprogram,
+                         --  and therefore may be referenced within Inst.
+                         return False;
+ 
+                      elsif Nkind (Parent (E)) = N_Subtype_Declaration
+                         and then Defining_Identifier (Parent (E)) /= E
+                      then
+                         --  Return False for a primitive subp of an
+                         --  actual corresponding to a formal type.
+ 
+                         return False;
+ 
+                      elsif not In_Open_Scopes (Scope (E)) then
+                         --  Return False if this candidate is not
+                         --  declared in a currently open scope.
+ 
+                         return False;
+ 
+                      else
+                         declare
+                            --  We want to know whether the declaration of
+                            --  E comes textually after the declaration of
+                            --  the generic that Inst is an instance of
+                            --  (and after the generic body if there is one).
+                            --  To compare, we climb up the deeper of the two
+                            --  scope chains until we the levels match.
+                            --  There is a separate loop for each starting
+                            --  point, but we will execute zero iterations
+                            --  for at least one of the two loops.
+                            --  For each Xxx_Scope, we have a corresponding
+                            --  Xxx_Trailer; the latter is the predecessor of
+                            --  the former in the scope traversal.
+ 
+                            E_Trailer : Entity_Id := E;
+                            E_Scope : Entity_Id := Scope (E);
+                            pragma Assert (Present (E_Scope));
+ 
+                            --  the generic that Inst is an instance of
+                            Gen_Trailer : Entity_Id :=
+                              Generic_Parent (Specification
+                                (Unit_Declaration_Node (Inst)));
+                            Gen_Scope : Entity_Id;
+ 
+                            function Has_Formal_Package_Parameter
+                              (Generic_Id : Entity_Id) return Boolean;
+                            --  Return True iff given generic has at least one
+                            --  formal package parameter.
+ 
+                            ----------------------------------
+                            -- Has_Formal_Package_Parameter --
+                            ----------------------------------
+ 
+                            function Has_Formal_Package_Parameter
+                              (Generic_Id : Entity_Id) return Boolean is
+                               Formal_Decl : Node_Id :=
+                                 First (Generic_Formal_Declarations
+                                   (Enclosing_Generic_Unit (Generic_Id)));
+                            begin
+                               while Present (Formal_Decl) loop
+                                  if Nkind (Original_Node (Formal_Decl)) =
+                                    N_Formal_Package_Declaration
+                                  then
+                                     return True;
+                                  end if;
+ 
+                                  Next (Formal_Decl);
+                               end loop;
+                               return False;
+                            end Has_Formal_Package_Parameter;
+ 
+                         begin
+                            if No (Gen_Trailer) then
+                               --  Dunno how this can happen, but it can.
+                               return False;
+                            else
+                               if Has_Formal_Package_Parameter (Gen_Trailer)
+                               then
+                                  --  Punt on sorting out what is visible via a
+                                  --  formal package.
+ 
+                                  return False;
+                               end if;
+ 
+                               if Is_Child_Unit (Gen_Trailer)
+                                 and then Is_Generic_Unit
+                                            (Entity (Name
+                                              (Parent (Gen_Trailer))))
+                               then
+                                  --  Punt on dealing with how the FE fails
+                                  --  to build a tree for a "sprouted" generic
+                                  --  so that what should be a reference to
+                                  --  I1.G2 instead points into G1.G2 .
+ 
+                                  return False;
+                               end if;
+ 
+                               Gen_Scope := Scope (Gen_Trailer);
+ 
+                               while Scope_Depth (E_Scope)
+                                       > Scope_Depth (Gen_Scope)
+                               loop
+                                  E_Trailer := E_Scope;
+                                  E_Scope := Scope (E_Scope);
+                               end loop;
+                               while Scope_Depth (E_Scope)
+                                       < Scope_Depth (Gen_Scope)
+                               loop
+                                  Gen_Trailer := Gen_Scope;
+                                  Gen_Scope := Scope (Gen_Scope);
+                               end loop;
+                            end if;
+ 
+                            if Gen_Scope = E_Scope then
+                               --  if Gen_Trailer and E_Trailer are declared
+                               --  in the same declarative part and E_Trailer
+                               --  occurs after the declaration (and body, if
+                               --  there is one) of Gen_Trailer, then
+                               --  return True because E was declared after
+                               --  the generic that Inst is an instance of
+                               --  (and also after that generic's body, if it
+                               --  has one).
+ 
+                               if Is_Package_Or_Generic_Package (Gen_Trailer)
+                                 and then Present (Package_Body (Gen_Trailer))
+                               then
+                                  Gen_Trailer :=
+                                    Corresponding_Body
+                                      (Package_Spec (Gen_Trailer));
+                               end if;
+ 
+                               declare
+                                  Id : Entity_Id := Gen_Trailer;
+                               begin
+                                  loop
+                                     if No (Id) then
+                                        --  E_Trailer presumably occurred
+                                        --  earlier on the entity list than
+                                        --  Gen_Trailer. So E preceded the
+                                        --  generic that Inst is an instance
+                                        --  of (or the body of that generic if
+                                        --  it has one) and so could have
+                                        --  been referenced within the generic.
+                                        return False;
+                                     end if;
+                                     exit when Id = E_Trailer;
+                                     Next_Entity (Id);
+                                  end loop;
+                               end;
+                            end if;
+                         end;
+                      end if;
+ 
+                      if Present (Nearest_Enclosing_Instance (Inst)) then
+                         return Is_Extraneously_Visible
+                           (E => E, Inst => Nearest_Enclosing_Instance (Inst));
+ 
+                      --  The preceding Nearest_Enclosing_Instance test
+                      --  doesn't handle the case of an instance of a
+                      --  "sprouted" generic. For example, if Inst=I2 in
+                      --    generic package G1
+                      --    generic package G1.G2;
+                      --    package I1 is new G1;
+                      --    package I2 is new I1.G2;
+                      --  then N_E_I (Inst) = Empty. So deal with that case.
+ 
+                      elsif Present (Nearest_Enclosing_Instance (E)) then
+                         return Is_Extraneously_Visible
+                           (E => Nearest_Enclosing_Instance (E),
+                            Inst => Inst);
+                      end if;
+ 
+                      return True;
+                   end Is_Extraneously_Visible;
+ 
+                   ---------------------------------
+                   -- Is_Generic_Actual_Subp_Name --
+                   ---------------------------------
+ 
+                   function Is_Generic_Actual_Subp_Name
+                     (N : Node_Id) return Boolean
+                   is
+                      Decl : constant Node_Id := Enclosing_Declaration (N);
+                   begin
+                      return Nkind (Decl) = N_Subprogram_Renaming_Declaration
+                        and then Present (Corresponding_Formal_Spec (Decl));
+                   end Is_Generic_Actual_Subp_Name;
+ 
+                   I    : Interp_Index;
+                   It   : Interp;
+                   Inst : Entity_Id := Current_Scope;
+ 
+                begin
+                   while Present (Inst)
+                     and then not Is_Generic_Instance (Inst)
+                   loop
+                      Inst := Scope (Inst);
+                   end loop;
+ 
+                   if Present (Inst) then
+                      Get_First_Interp (N, I, It);
+                      while Present (It.Nam) loop
+                         if Is_Extraneously_Visible (E => It.Nam, Inst => Inst)
+                           and then not Is_Generic_Actual_Subp_Name (N)
+                         then
+                            Remove_Interp (I);
+                         end if;
+                         Get_Next_Interp (I, It);
+                      end loop;
+                   end if;
+                end;
+             end if;
+ 
              --  If no homonyms were visible, the entity is unambiguous
  
              if not Is_Overloaded (N) then
*************** package body Sem_Ch8 is
*** 7199,7208 ****
  
        Check_Wide_Character_Restriction (Id, N);
  
!       --  If the Ekind of the entity is Void, it means that all homonyms are
!       --  hidden from all visibility (RM 8.3(5,14-20)).
! 
!       if Ekind (Id) = E_Void then
           Premature_Usage (N);
  
        elsif Is_Overloadable (Id) and then Present (Homonym (Id)) then
--- 7558,7564 ----
  
        Check_Wide_Character_Restriction (Id, N);
  
!       if Is_Self_Hidden (Id) then
           Premature_Usage (N);
  
        elsif Is_Overloadable (Id) and then Present (Homonym (Id)) then
*************** package body Sem_Ch8 is
*** 7631,7638 ****
              elsif
                Present (First_Formal (It.Nam))
                  and then Present (First_Formal (New_S))
!                 and then (Base_Type (Etype (First_Formal (It.Nam))) =
!                           Base_Type (Etype (First_Formal (New_S))))
              then
                 Candidate_Renaming := It.Nam;
              end if;
--- 7987,7994 ----
              elsif
                Present (First_Formal (It.Nam))
                  and then Present (First_Formal (New_S))
!                 and then Base_Type (Etype (First_Formal (It.Nam))) =
!                          Base_Type (Etype (First_Formal (New_S)))
              then
                 Candidate_Renaming := It.Nam;
              end if;
*************** package body Sem_Ch8 is
*** 7664,7671 ****
  
           elsif Present (First_Formal (Entity (Nam)))
             and then Present (First_Formal (New_S))
!            and then (Base_Type (Etype (First_Formal (Entity (Nam)))) =
!                      Base_Type (Etype (First_Formal (New_S))))
           then
              Candidate_Renaming := Entity (Nam);
           end if;
--- 8020,8027 ----
  
           elsif Present (First_Formal (Entity (Nam)))
             and then Present (First_Formal (New_S))
!            and then Base_Type (Etype (First_Formal (Entity (Nam)))) =
!                     Base_Type (Etype (First_Formal (New_S)))
           then
              Candidate_Renaming := Entity (Nam);
           end if;
*************** package body Sem_Ch8 is
*** 8145,8151 ****
                    end loop;
                 end;
  
!             elsif Ekind (P_Name) = E_Void then
                 Premature_Usage (P);
  
              elsif Ekind (P_Name) = E_Generic_Package then
--- 8501,8507 ----
                    end loop;
                 end;
  
!             elsif Is_Self_Hidden (P_Name) then
                 Premature_Usage (P);
  
              elsif Ekind (P_Name) = E_Generic_Package then
*************** package body Sem_Ch8 is
*** 9290,9296 ****
  
     procedure Pop_Scope is
        SST : Scope_Stack_Entry renames Scope_Stack.Table (Scope_Stack.Last);
!       S   : constant Entity_Id := SST.Entity;
  
     begin
        if Debug_Flag_E then
--- 9646,9652 ----
  
     procedure Pop_Scope is
        SST : Scope_Stack_Entry renames Scope_Stack.Table (Scope_Stack.Last);
!       S   : constant Scope_Kind_Id := SST.Entity;
  
     begin
        if Debug_Flag_E then
*************** package body Sem_Ch8 is
*** 9352,9358 ****
     -- Push_Scope --
     ----------------
  
!    procedure Push_Scope (S : Entity_Id) is
        E : constant Entity_Id := Scope (S);
  
        function Component_Alignment_Default return Component_Alignment_Kind;
--- 9708,9714 ----
     -- Push_Scope --
     ----------------
  
!    procedure Push_Scope (S : Scope_Kind_Id) is
        E : constant Entity_Id := Scope (S);
  
        function Component_Alignment_Default return Component_Alignment_Kind;
*************** package body Sem_Ch8 is
*** 10316,10322 ****
              if Is_Immediately_Visible (Prev)
                and then (not Is_Overloadable (Prev)
                           or else not Is_Overloadable (Id)
!                          or else (Type_Conformant (Id, Prev)))
              then
                 if No (Current_Instance) then
  
--- 10672,10678 ----
              if Is_Immediately_Visible (Prev)
                and then (not Is_Overloadable (Prev)
                           or else not Is_Overloadable (Id)
!                          or else Type_Conformant (Id, Prev))
              then
                 if No (Current_Instance) then
  
*************** package body Sem_Ch8 is
*** 10419,10425 ****
           --  On exit, we know entity is not hidden, unless it is private
  
           if not Is_Hidden (Id)
!            and then ((not Is_Child_Unit (Id)) or else Is_Visible_Lib_Unit (Id))
           then
              Set_Is_Potentially_Use_Visible (Id);
  
--- 10775,10781 ----
           --  On exit, we know entity is not hidden, unless it is private
  
           if not Is_Hidden (Id)
!            and then (not Is_Child_Unit (Id) or else Is_Visible_Lib_Unit (Id))
           then
              Set_Is_Potentially_Use_Visible (Id);
  
*************** package body Sem_Ch8 is
*** 10752,10758 ****
                       Error_Msg_Sloc := Sloc (Clause1);
                       Error_Msg_NE -- CODEFIX
                         ("& is already use-visible through previous "
!                         & "use_type_clause #??", Clause2, T);
                       return;
                    end if;
  
--- 11108,11114 ----
                       Error_Msg_Sloc := Sloc (Clause1);
                       Error_Msg_NE -- CODEFIX
                         ("& is already use-visible through previous "
!                         & "use_type_clause #?r?", Clause2, T);
                       return;
                    end if;
  
*************** package body Sem_Ch8 is
*** 10824,10830 ****
  
                       Error_Msg_NE -- CODEFIX
                         ("& is already use-visible through previous "
!                         & "use_type_clause #??", Err_No, Id);
                    end if;
                 end Use_Clause_Known;
  
--- 11180,11186 ----
  
                       Error_Msg_NE -- CODEFIX
                         ("& is already use-visible through previous "
!                         & "use_type_clause #?r?", Err_No, Id);
                    end if;
                 end Use_Clause_Known;
  
*************** package body Sem_Ch8 is
*** 10834,10840 ****
              else
                 Error_Msg_NE -- CODEFIX
                   ("& is already use-visible through previous "
!                   & "use_type_clause??", Id, T);
              end if;
  
           --  The package where T is declared is already used
--- 11190,11196 ----
              else
                 Error_Msg_NE -- CODEFIX
                   ("& is already use-visible through previous "
!                   & "use_type_clause?r?", Id, T);
              end if;
  
           --  The package where T is declared is already used
*************** package body Sem_Ch8 is
*** 10849,10855 ****
                 Error_Msg_Sloc :=
                   Sloc (Find_First_Use (Current_Use_Clause (Scope (T))));
                 Error_Msg_NE -- CODEFIX
!                  ("& is already use-visible through package use clause #??",
                    Id, T);
              end if;
  
--- 11205,11211 ----
                 Error_Msg_Sloc :=
                   Sloc (Find_First_Use (Current_Use_Clause (Scope (T))));
                 Error_Msg_NE -- CODEFIX
!                  ("& is already use-visible through package use clause #?r?",
                    Id, T);
              end if;
  
*************** package body Sem_Ch8 is
*** 10858,10864 ****
           else
              Error_Msg_Node_2 := Scope (T);
              Error_Msg_NE -- CODEFIX
!               ("& is already use-visible inside package &??", Id, T);
           end if;
        end if;
     end Use_One_Type;
--- 11214,11220 ----
           else
              Error_Msg_Node_2 := Scope (T);
              Error_Msg_NE -- CODEFIX
!               ("& is already use-visible inside package &?r?", Id, T);
           end if;
        end if;
     end Use_One_Type;
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch8.ads gcc-14.1.0/gcc/ada/sem_ch8.ads
*** gcc-13.2.0/gcc/ada/sem_ch8.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch8.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 23,29 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Types; use Types;
  package Sem_Ch8 is
  
     -----------------------------------
--- 23,30 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with Einfo.Entities; use Einfo.Entities;
! with Types;          use Types;
  package Sem_Ch8 is
  
     -----------------------------------
*************** package Sem_Ch8 is
*** 148,154 ****
     --  Mark a given entity or node Id's relevant use clauses as effective,
     --  including redundant ones and ones outside of the current scope.
  
!    procedure Push_Scope (S : Entity_Id);
     --  Make new scope stack entry, pushing S, the entity for a scope onto the
     --  top of the scope table. The current setting of the scope suppress flags
     --  is saved for restoration on exit.
--- 149,155 ----
     --  Mark a given entity or node Id's relevant use clauses as effective,
     --  including redundant ones and ones outside of the current scope.
  
!    procedure Push_Scope (S : Scope_Kind_Id);
     --  Make new scope stack entry, pushing S, the entity for a scope onto the
     --  top of the scope table. The current setting of the scope suppress flags
     --  is saved for restoration on exit.
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch9.adb gcc-14.1.0/gcc/ada/sem_ch9.adb
*** gcc-13.2.0/gcc/ada/sem_ch9.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch9.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Ch9 is
*** 880,886 ****
        E := First_Entity (Etype (Task_Nam));
        while Present (E) loop
           if Chars (E) = Chars (Nam)
!            and then (Ekind (E) = Ekind (Accept_Id))
             and then Type_Conformant (Accept_Id, E)
           then
              Entry_Nam := E;
--- 880,886 ----
        E := First_Entity (Etype (Task_Nam));
        while Present (E) loop
           if Chars (E) = Chars (Nam)
!            and then Ekind (E) = Ekind (Accept_Id)
             and then Type_Conformant (Accept_Id, E)
           then
              Entry_Nam := E;
*************** package body Sem_Ch9 is
*** 1292,1300 ****
  
        --  Analyze any aspect specifications that appear on the entry body
  
!       if Has_Aspects (N) then
!          Analyze_Aspects_On_Subprogram_Body_Or_Stub (N);
!       end if;
  
        E := First_Entity (P_Type);
        while Present (E) loop
--- 1292,1298 ----
  
        --  Analyze any aspect specifications that appear on the entry body
  
!       Analyze_Aspects_On_Subprogram_Body_Or_Stub (N);
  
        E := First_Entity (P_Type);
        while Present (E) loop
*************** package body Sem_Ch9 is
*** 1305,1310 ****
--- 1303,1309 ----
              Entry_Name := E;
              Set_Convention (Id, Convention (E));
              Set_Corresponding_Body (Parent (E), Id);
+             Set_Corresponding_Spec (N, E);
              Check_Fully_Conformant (Id, E, N);
  
              if Ekind (Id) = E_Entry_Family then
*************** package body Sem_Ch9 is
*** 1728,1736 ****
  
        Generate_Reference_To_Formals (Def_Id);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Def_Id);
!       end if;
     end Analyze_Entry_Declaration;
  
     ---------------------------------------
--- 1727,1733 ----
  
        Generate_Reference_To_Formals (Def_Id);
  
!       Analyze_Aspect_Specifications (N, Def_Id);
     end Analyze_Entry_Declaration;
  
     ---------------------------------------
*************** package body Sem_Ch9 is
*** 1879,1887 ****
           Spec_Id := Etype (Spec_Id);
        end if;
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Body_Id);
!       end if;
  
        Push_Scope (Spec_Id);
        Set_Corresponding_Spec (N, Spec_Id);
--- 1876,1882 ----
           Spec_Id := Etype (Spec_Id);
        end if;
  
!       Analyze_Aspect_Specifications (N, Body_Id);
  
        Push_Scope (Spec_Id);
        Set_Corresponding_Spec (N, Spec_Id);
*************** package body Sem_Ch9 is
*** 2045,2053 ****
        if No_Run_Time_Mode then
           Error_Msg_CRT ("protected type", N);
  
!          if Has_Aspects (N) then
!             Analyze_Aspect_Specifications (N, Def_Id);
!          end if;
  
           return;
        end if;
--- 2040,2046 ----
        if No_Run_Time_Mode then
           Error_Msg_CRT ("protected type", N);
  
!          Analyze_Aspect_Specifications (N, Def_Id);
  
           return;
        end if;
*************** package body Sem_Ch9 is
*** 2066,2071 ****
--- 2059,2065 ----
        end if;
  
        Mutate_Ekind           (T, E_Protected_Type);
+       Set_Is_Not_Self_Hidden (T);
        Set_Is_First_Subtype   (T);
        Reinit_Size_Align      (T);
        Set_Etype              (T, T);
*************** package body Sem_Ch9 is
*** 2126,2143 ****
        --  If aspects are present, analyze them now. They can make references to
        --  the discriminants of the type, but not to any components.
  
!       if Has_Aspects (N) then
! 
!          --  The protected type is the full view of a private type. Analyze the
!          --  aspects with the entity of the private type to ensure that after
!          --  both views are exchanged, the aspect are actually associated with
!          --  the full view.
  
!          if T /= Def_Id and then Is_Private_Type (Def_Id) then
!             Analyze_Aspect_Specifications (N, T);
!          else
!             Analyze_Aspect_Specifications (N, Def_Id);
!          end if;
        end if;
  
        Analyze (Protected_Definition (N));
--- 2120,2134 ----
        --  If aspects are present, analyze them now. They can make references to
        --  the discriminants of the type, but not to any components.
  
!       --  The protected type is the full view of a private type. Analyze the
!       --  aspects with the entity of the private type to ensure that after
!       --  both views are exchanged, the aspect are actually associated with
!       --  the full view.
  
!       if T /= Def_Id and then Is_Private_Type (Def_Id) then
!          Analyze_Aspect_Specifications (N, T);
!       else
!          Analyze_Aspect_Specifications (N, Def_Id);
        end if;
  
        Analyze (Protected_Definition (N));
*************** package body Sem_Ch9 is
*** 2179,2192 ****
           Set_Has_Controlled_Component (T, True);
        end if;
  
!       --  The Ekind of components is E_Void during analysis to detect illegal
!       --  uses. Now it can be set correctly.
  
        E := First_Entity (Current_Scope);
        while Present (E) loop
           if Ekind (E) = E_Void then
!             Mutate_Ekind (E, E_Component);
!             Reinit_Component_Location (E);
           end if;
  
           Next_Entity (E);
--- 2170,2185 ----
           Set_Has_Controlled_Component (T, True);
        end if;
  
!       --  The Ekind of components is E_Void during analysis for historical
!       --  reasons. Now it can be set correctly.
  
        E := First_Entity (Current_Scope);
        while Present (E) loop
           if Ekind (E) = E_Void then
!             if not Is_Itype (E) then
!                Mutate_Ekind (E, E_Component);
!                Reinit_Component_Location (E);
!             end if;
           end if;
  
           Next_Entity (E);
*************** package body Sem_Ch9 is
*** 2445,2450 ****
--- 2438,2469 ----
           Entry_Name := Selector_Name (Entry_Name);
        end if;
  
+       --  Ada 2012 (9.5.4(5.6/4): "If the target is a procedure, the name
+       --  shall denote a renaming of an entry or ...". We support this
+       --  language rule replacing the target procedure with the renamed
+       --  entry. Thus, reanalyzing the resulting requeue statement we
+       --  reuse all the Ada 2005 machinery to perform the analysis.
+ 
+       if Nkind (Entry_Name) in N_Has_Entity then
+          declare
+             Target_E : constant Entity_Id := Entity (Entry_Name);
+ 
+          begin
+             if Ada_Version >= Ada_2012
+               and then Ekind (Target_E) = E_Procedure
+               and then Convention (Target_E) = Convention_Entry
+               and then Nkind (Original_Node (Parent (Parent (Target_E))))
+                          = N_Subprogram_Renaming_Declaration
+             then
+                Set_Name (N,
+                  New_Copy_Tree
+                    (Name (Original_Node (Parent (Parent (Target_E))))));
+                Analyze_Requeue (N);
+                return;
+             end if;
+          end;
+       end if;
+ 
        --  If an explicit target object is given then we have to check the
        --  restrictions of 9.5.4(6).
  
*************** package body Sem_Ch9 is
*** 2500,2506 ****
              --  for error output in some cases not to do that here.
  
              if (No (First_Formal (It.Nam))
!                  or else (Type_Conformant (Enclosing, It.Nam)))
                and then Ekind (It.Nam) = E_Entry
              then
                 --  Ada 2005 (AI-345): Since protected and task types have
--- 2519,2525 ----
              --  for error output in some cases not to do that here.
  
              if (No (First_Formal (It.Nam))
!                  or else Type_Conformant (Enclosing, It.Nam))
                and then Ekind (It.Nam) = E_Entry
              then
                 --  Ada 2005 (AI-345): Since protected and task types have
*************** package body Sem_Ch9 is
*** 2869,2874 ****
--- 2888,2897 ----
  
        --    Obj : Typ;
  
+       --  Keep the aspects from the original node
+ 
+       Move_Aspects (Original_Node (N), N);
+ 
        Obj_Decl :=
          Make_Object_Declaration (Loc,
            Defining_Identifier => Obj_Id,
*************** package body Sem_Ch9 is
*** 2900,2905 ****
--- 2923,2929 ----
  
        Enter_Name (Obj_Id);
        Mutate_Ekind               (Obj_Id, E_Variable);
+       Set_Is_Not_Self_Hidden     (Obj_Id);
        Set_Etype                  (Obj_Id, Typ);
        Set_SPARK_Pragma           (Obj_Id, SPARK_Mode_Pragma);
        Set_SPARK_Pragma_Inherited (Obj_Id);
*************** package body Sem_Ch9 is
*** 2910,2918 ****
  
        Analyze_Protected_Type_Declaration (N);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Obj_Id);
!       end if;
     end Analyze_Single_Protected_Declaration;
  
     -------------------------------------
--- 2934,2940 ----
  
        Analyze_Protected_Type_Declaration (N);
  
!       Analyze_Aspect_Specifications (N, Obj_Id);
     end Analyze_Single_Protected_Declaration;
  
     -------------------------------------
*************** package body Sem_Ch9 is
*** 2954,2959 ****
--- 2976,2985 ----
  
        --    Obj : Typ;
  
+       --  Keep the aspects from the original node
+ 
+       Move_Aspects (Original_Node (N), N);
+ 
        Obj_Decl :=
          Make_Object_Declaration (Loc,
            Defining_Identifier => Obj_Id,
*************** package body Sem_Ch9 is
*** 2986,2991 ****
--- 3012,3018 ----
  
        Enter_Name (Obj_Id);
        Mutate_Ekind               (Obj_Id, E_Variable);
+       Set_Is_Not_Self_Hidden     (Obj_Id);
        Set_Etype                  (Obj_Id, Typ);
        Set_SPARK_Pragma           (Obj_Id, SPARK_Mode_Pragma);
        Set_SPARK_Pragma_Inherited (Obj_Id);
*************** package body Sem_Ch9 is
*** 3005,3013 ****
  
        Analyze_Task_Type_Declaration (N);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Obj_Id);
!       end if;
     end Analyze_Single_Task_Declaration;
  
     -----------------------
--- 3032,3038 ----
  
        Analyze_Task_Type_Declaration (N);
  
!       Analyze_Aspect_Specifications (N, Obj_Id);
     end Analyze_Single_Task_Declaration;
  
     -----------------------
*************** package body Sem_Ch9 is
*** 3088,3096 ****
        Set_SPARK_Pragma           (Body_Id, SPARK_Mode_Pragma);
        Set_SPARK_Pragma_Inherited (Body_Id);
  
!       if Has_Aspects (N) then
!          Analyze_Aspect_Specifications (N, Body_Id);
!       end if;
  
        Push_Scope (Spec_Id);
        Set_Corresponding_Spec (N, Spec_Id);
--- 3113,3119 ----
        Set_SPARK_Pragma           (Body_Id, SPARK_Mode_Pragma);
        Set_SPARK_Pragma_Inherited (Body_Id);
  
!       Analyze_Aspect_Specifications (N, Body_Id);
  
        Push_Scope (Spec_Id);
        Set_Corresponding_Spec (N, Spec_Id);
*************** package body Sem_Ch9 is
*** 3264,3269 ****
--- 3287,3293 ----
        end if;
  
        Mutate_Ekind           (T, E_Task_Type);
+       Set_Is_Not_Self_Hidden (T);
        Set_Is_First_Subtype   (T, True);
        Set_Has_Task           (T, True);
        Reinit_Size_Align      (T);
*************** package body Sem_Ch9 is
*** 3318,3335 ****
  
        Set_Is_Constrained (T, not Has_Discriminants (T));
  
!       if Has_Aspects (N) then
! 
!          --  The task type is the full view of a private type. Analyze the
!          --  aspects with the entity of the private type to ensure that after
!          --  both views are exchanged, the aspect are actually associated with
!          --  the full view.
  
!          if T /= Def_Id and then Is_Private_Type (Def_Id) then
!             Analyze_Aspect_Specifications (N, T);
!          else
!             Analyze_Aspect_Specifications (N, Def_Id);
!          end if;
        end if;
  
        if Present (Task_Definition (N)) then
--- 3342,3356 ----
  
        Set_Is_Constrained (T, not Has_Discriminants (T));
  
!       --  The task type is the full view of a private type. Analyze the
!       --  aspects with the entity of the private type to ensure that after
!       --  both views are exchanged, the aspect are actually associated with
!       --  the full view.
  
!       if T /= Def_Id and then Is_Private_Type (Def_Id) then
!          Analyze_Aspect_Specifications (N, T);
!       else
!          Analyze_Aspect_Specifications (N, Def_Id);
        end if;
  
        if Present (Task_Definition (N)) then
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_ch9.ads gcc-14.1.0/gcc/ada/sem_ch9.ads
*** gcc-13.2.0/gcc/ada/sem_ch9.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_ch9.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_dim.adb gcc-14.1.0/gcc/ada/sem_dim.adb
*** gcc-13.2.0/gcc/ada/sem_dim.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_dim.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 23,29 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
--- 23,28 ----
*************** package body Sem_Dim is
*** 2922,2928 ****
                 Subtype_Indication  => New_Occurrence_Of (Btyp_Of_L, Loc));
  
           Append (New_Aspect, New_Aspects);
-          Set_Parent (New_Aspects, New_Subtyp_Decl_For_L);
           Set_Aspect_Specifications (New_Subtyp_Decl_For_L, New_Aspects);
  
           Analyze (New_Subtyp_Decl_For_L);
--- 2921,2926 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_dim.ads gcc-14.1.0/gcc/ada/sem_dim.ads
*** gcc-13.2.0/gcc/ada/sem_dim.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_dim.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_disp.adb gcc-14.1.0/gcc/ada/sem_disp.adb
*** gcc-13.2.0/gcc/ada/sem_disp.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_disp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 23,29 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Elists;         use Elists;
--- 23,28 ----
*************** package body Sem_Disp is
*** 1392,1398 ****
           --  4. Wrappers built for inherited operations with inherited class-
           --     wide conditions, where the conditions include calls to other
           --     overridden primitives. The wrappers include checks on these
!          --     modified conditions. (AI12-113).
  
           --  5. Declarations built for subprograms without separate specs that
           --     are eligible for inlining in GNATprove (inside
--- 1391,1397 ----
           --  4. Wrappers built for inherited operations with inherited class-
           --     wide conditions, where the conditions include calls to other
           --     overridden primitives. The wrappers include checks on these
!          --     modified conditions. (AI12-195).
  
           --  5. Declarations built for subprograms without separate specs that
           --     are eligible for inlining in GNATprove (inside
*************** package body Sem_Disp is
*** 1414,1422 ****
                   and then Is_Null_Interface_Primitive
                               (Ultimate_Alias (Old_Subp)))
  
!               or else Get_TSS_Name (Subp) = TSS_Stream_Read
!               or else Get_TSS_Name (Subp) = TSS_Stream_Write
!               or else Get_TSS_Name (Subp) = TSS_Put_Image
  
                or else
                 (Is_Wrapper (Subp)
--- 1413,1421 ----
                   and then Is_Null_Interface_Primitive
                               (Ultimate_Alias (Old_Subp)))
  
!               or else Get_TSS_Name (Subp) in TSS_Stream_Read
!                                            | TSS_Stream_Write
!                                            | TSS_Put_Image
  
                or else
                 (Is_Wrapper (Subp)
*************** package body Sem_Disp is
*** 1441,1447 ****
        --  where it can be a dispatching op is when it overrides an operation
        --  before the freezing point of the type.
  
!       elsif ((not Is_Package_Or_Generic_Package (Scope (Subp)))
                 or else In_Package_Body (Scope (Subp)))
          and then not Has_Dispatching_Parent
        then
--- 1440,1446 ----
        --  where it can be a dispatching op is when it overrides an operation
        --  before the freezing point of the type.
  
!       elsif (not Is_Package_Or_Generic_Package (Scope (Subp))
                 or else In_Package_Body (Scope (Subp)))
          and then not Has_Dispatching_Parent
        then
*************** package body Sem_Disp is
*** 1488,1494 ****
  
                    Decl_Item := Next (Parent (Tagged_Type));
                    while Present (Decl_Item)
!                     and then (Decl_Item /= Subp_Body)
                    loop
                       if Comes_From_Source (Decl_Item)
                         and then (Nkind (Decl_Item) in N_Proper_Body
--- 1487,1493 ----
  
                    Decl_Item := Next (Parent (Tagged_Type));
                    while Present (Decl_Item)
!                     and then Decl_Item /= Subp_Body
                    loop
                       if Comes_From_Source (Decl_Item)
                         and then (Nkind (Decl_Item) in N_Proper_Body
*************** package body Sem_Disp is
*** 2530,2535 ****
--- 2529,2535 ----
          (S               : Entity_Id;
           No_Interfaces   : Boolean := False;
           Interfaces_Only : Boolean := False;
+          Skip_Overridden : Boolean := False;
           One_Only        : Boolean := False) return Subprogram_List
        is
           Result : Subprogram_List (1 .. 6000);
*************** package body Sem_Disp is
*** 2581,2586 ****
--- 2581,2587 ----
                 loop
                    Parent_Op := Overridden_Operation (Parent_Op);
                    exit when No (Parent_Op)
+                     or else No (Find_DT (Parent_Op))
                      or else (No_Interfaces
                                and then Is_Interface (Find_DT (Parent_Op)));
  
*************** package body Sem_Disp is
*** 2670,2675 ****
--- 2671,2704 ----
              end if;
           end if;
  
+          --  Do not keep an overridden operation if its overridding operation
+          --  is in the results too, and it is not S. This can happen for
+          --  inheritance between interfaces.
+ 
+          if Skip_Overridden then
+             declare
+                Res : constant Subprogram_List (1 .. N) := Result (1 .. N);
+                M   : Nat := 0;
+             begin
+                for J in 1 .. N loop
+                   for K in 1 .. N loop
+                      if Res (K) /= S
+                        and then Res (J) = Overridden_Operation (Res (K))
+                      then
+                         goto Skip;
+                      end if;
+                   end loop;
+ 
+                   M := M + 1;
+                   Result (M) := Res (J);
+ 
+                   <<Skip>>
+                end loop;
+ 
+                N := M;
+             end;
+          end if;
+ 
           <<Done>>
  
           return Result (1 .. N);
*************** package body Sem_Disp is
*** 2702,2707 ****
--- 2731,2737 ----
       (S               : Entity_Id;
        No_Interfaces   : Boolean := False;
        Interfaces_Only : Boolean := False;
+       Skip_Overridden : Boolean := False;
        One_Only        : Boolean := False) return Subprogram_List renames
       Inheritance_Utilities_Inst.Inherited_Subprograms;
  
*************** package body Sem_Disp is
*** 2969,2975 ****
           end loop;
        end if;
  
!       if (not Is_Package_Or_Generic_Package (Current_Scope))
          or else not In_Private_Part (Current_Scope)
        then
           --  Not a private primitive
--- 2999,3005 ----
           end loop;
        end if;
  
!       if not Is_Package_Or_Generic_Package (Current_Scope)
          or else not In_Private_Part (Current_Scope)
        then
           --  Not a private primitive
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_disp.ads gcc-14.1.0/gcc/ada/sem_disp.ads
*** gcc-13.2.0/gcc/ada/sem_disp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_disp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Disp is
*** 120,125 ****
--- 120,126 ----
          (S               : Entity_Id;
           No_Interfaces   : Boolean := False;
           Interfaces_Only : Boolean := False;
+          Skip_Overridden : Boolean := False;
           One_Only        : Boolean := False) return Subprogram_List;
  
        function Is_Overriding_Subprogram (E : Entity_Id) return Boolean;
*************** package Sem_Disp is
*** 129,134 ****
--- 130,136 ----
       (S               : Entity_Id;
        No_Interfaces   : Boolean := False;
        Interfaces_Only : Boolean := False;
+       Skip_Overridden : Boolean := False;
        One_Only        : Boolean := False) return Subprogram_List;
     --  Given the spec of a subprogram, this function gathers any inherited
     --  subprograms from direct inheritance or via interfaces. The result is an
*************** package Sem_Disp is
*** 143,148 ****
--- 145,153 ----
     --  subprograms inherited from interfaces. At most one of No_Interfaces
     --  and Interfaces_Only should be True.
     --
+    --  If Skip_Overridden is True, subprograms overridden by another subprogram
+    --  in the result list are skipped.
+    --
     --  If One_Only is set, the search is discontinued as soon as one entry
     --  is found. In this case the resulting array is either null or contains
     --  exactly one element.
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_dist.adb gcc-14.1.0/gcc/ada/sem_dist.adb
*** gcc-13.2.0/gcc/ada/sem_dist.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_dist.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_dist.ads gcc-14.1.0/gcc/ada/sem_dist.ads
*** gcc-13.2.0/gcc/ada/sem_dist.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_dist.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_elab.adb gcc-14.1.0/gcc/ada/sem_elab.adb
*** gcc-13.2.0/gcc/ada/sem_elab.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_elab.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Elab is
*** 15263,15272 ****
              --  Nothing to do for predefined primitives because they are
              --  artifacts of tagged type expansion and cannot override source
              --  primitives. Nothing to do as well for inherited primitives, as
!             --  the check concerns overriding ones.
  
              if Is_Predefined_Dispatching_Operation (Prim)
                or else not Is_Overriding_Subprogram (Prim)
              then
                 return;
              end if;
--- 15263,15275 ----
              --  Nothing to do for predefined primitives because they are
              --  artifacts of tagged type expansion and cannot override source
              --  primitives. Nothing to do as well for inherited primitives, as
!             --  the check concerns overriding ones. Finally, nothing to do for
!             --  abstract subprograms, because they have no body that could be
!             --  examined.
  
              if Is_Predefined_Dispatching_Operation (Prim)
                or else not Is_Overriding_Subprogram (Prim)
+               or else Is_Abstract_Subprogram (Prim)
              then
                 return;
              end if;
*************** package body Sem_Elab is
*** 15313,15321 ****
  
              if Earlier_In_Extended_Unit (FNode, Region) then
                 Error_Msg_Node_2 := Prim;
                 Error_Msg_NE
                   ("first freezing point of type & must appear within early "
!                   & "call region of primitive body & (SPARK RM 7.7(8))",
                    Typ_Decl, Typ);
  
                 Error_Msg_Sloc := Sloc (Region);
--- 15316,15325 ----
  
              if Earlier_In_Extended_Unit (FNode, Region) then
                 Error_Msg_Node_2 := Prim;
+                Error_Msg_Code := GEC_Type_Early_Call_Region;
                 Error_Msg_NE
                   ("first freezing point of type & must appear within early "
!                   & "call region of primitive body '[[]']",
                    Typ_Decl, Typ);
  
                 Error_Msg_Sloc := Sloc (Region);
*************** package body Sem_Elab is
*** 19617,19623 ****
                      Etype (First (Parameter_Associations (Call)));
           begin
              Elab_Unit := Scope (Typ);
!             while (Present (Elab_Unit))
                and then not Is_Compilation_Unit (Elab_Unit)
              loop
                 Elab_Unit := Scope (Elab_Unit);
--- 19621,19627 ----
                      Etype (First (Parameter_Associations (Call)));
           begin
              Elab_Unit := Scope (Typ);
!             while Present (Elab_Unit)
                and then not Is_Compilation_Unit (Elab_Unit)
              loop
                 Elab_Unit := Scope (Elab_Unit);
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_elab.ads gcc-14.1.0/gcc/ada/sem_elab.ads
*** gcc-13.2.0/gcc/ada/sem_elab.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_elab.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_elim.adb gcc-14.1.0/gcc/ada/sem_elim.adb
*** gcc-13.2.0/gcc/ada/sem_elim.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_elim.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_elim.ads gcc-14.1.0/gcc/ada/sem_elim.ads
*** gcc-13.2.0/gcc/ada/sem_elim.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_elim.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_eval.adb gcc-14.1.0/gcc/ada/sem_eval.adb
*** gcc-13.2.0/gcc/ada/sem_eval.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_eval.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Eval is
*** 434,439 ****
--- 434,440 ----
  
        if Is_Static_Expression (Expr)
          and then not Has_Dynamic_Predicate_Aspect (Typ)
+         and then not Has_Ghost_Predicate_Aspect (Typ)
        then
           if Static_Failure_Is_Error then
              Error_Msg_NE
*************** package body Sem_Eval is
*** 1523,1529 ****
              Determine_Range (R, ROK, RLo, RHi, Assume_Valid);
  
              if LOK and ROK then
!                Single := (LLo = LHi) and then (RLo = RHi);
  
                 if LHi < RLo then
                    if Single and Assume_Valid then
--- 1524,1530 ----
              Determine_Range (R, ROK, RLo, RHi, Assume_Valid);
  
              if LOK and ROK then
!                Single := LLo = LHi and then RLo = RHi;
  
                 if LHi < RLo then
                    if Single and Assume_Valid then
*************** package body Sem_Eval is
*** 3076,3082 ****
  
           else
              Fold_Uint
!               (N, Test ((Result = Match) xor (Nkind (N) = N_Not_In)), True);
              Warn_On_Known_Condition (N);
           end if;
        end if;
--- 3077,3083 ----
  
           else
              Fold_Uint
!               (N, Test (Result = Match xor Nkind (N) = N_Not_In), True);
              Warn_On_Known_Condition (N);
           end if;
        end if;
*************** package body Sem_Eval is
*** 5416,5423 ****
                 return Expr_Value_R (Lo) > Expr_Value_R (Hi);
              end if;
           end;
        else
!          return False;
        end if;
     end Is_Null_Range;
  
--- 5417,5425 ----
                 return Expr_Value_R (Lo) > Expr_Value_R (Hi);
              end if;
           end;
+ 
        else
!          return Compile_Time_Compare (Lo, Hi, Assume_Valid => False) = GT;
        end if;
     end Is_Null_Range;
  
*************** package body Sem_Eval is
*** 5672,5683 ****
        then
           return False;
  
!       --  If there is a dynamic predicate for the type (declared or inherited)
!       --  the expression is not static.
  
        elsif Has_Dynamic_Predicate_Aspect (Typ)
          or else (Is_Derived_Type (Typ)
                    and then Has_Aspect (Typ, Aspect_Dynamic_Predicate))
          or else (Has_Aspect (Typ, Aspect_Predicate)
                    and then not Has_Static_Predicate (Typ))
        then
--- 5674,5688 ----
        then
           return False;
  
!       --  If there is a non-static predicate for the type (declared or
!       --  inherited) the expression is not static.
  
        elsif Has_Dynamic_Predicate_Aspect (Typ)
          or else (Is_Derived_Type (Typ)
                    and then Has_Aspect (Typ, Aspect_Dynamic_Predicate))
+         or else Has_Ghost_Predicate_Aspect (Typ)
+         or else (Is_Derived_Type (Typ)
+                  and then Has_Aspect (Typ, Aspect_Ghost_Predicate))
          or else (Has_Aspect (Typ, Aspect_Predicate)
                    and then not Has_Static_Predicate (Typ))
        then
*************** package body Sem_Eval is
*** 6028,6037 ****
                 return Expr_Value_R (Lo) <= Expr_Value_R (Hi);
              end if;
           end;
        else
!          return False;
        end if;
- 
     end Not_Null_Range;
  
     -------------
--- 6033,6043 ----
                 return Expr_Value_R (Lo) <= Expr_Value_R (Hi);
              end if;
           end;
+ 
        else
!          return
!            Compile_Time_Compare (Lo, Hi, Assume_Valid => False) in Compare_LE;
        end if;
     end Not_Null_Range;
  
     -------------
*************** package body Sem_Eval is
*** 6370,6379 ****
                      Etype (First_Formal (Entity (Name (Expr))));
  
           begin
!             --  If the inherited predicate is dynamic, just ignore it. We can't
!             --  go trying to evaluate a dynamic predicate as a static one!
  
!             if Has_Dynamic_Predicate_Aspect (Typ) then
                 return True;
  
              --  Otherwise inherited predicate is static, check for match
--- 6376,6388 ----
                      Etype (First_Formal (Entity (Name (Expr))));
  
           begin
!             --  If the inherited predicate is not static, just ignore it. We
!             --  can't go trying to evaluate a dynamic predicate as a static
!             --  one!
  
!             if Has_Dynamic_Predicate_Aspect (Typ)
!               or else Has_Ghost_Predicate_Aspect (Typ)
!             then
                 return True;
  
              --  Otherwise inherited predicate is static, check for match
*************** package body Sem_Eval is
*** 6644,6650 ****
           --  setting Is_Constrained right for Itypes.
  
           if Is_Numeric_Type (T1)
!            and then (Is_Constrained (T1) /= Is_Constrained (T2))
             and then (Scope (T1) = Standard_Standard
                        or else Comes_From_Source (T1))
             and then (Scope (T2) = Standard_Standard
--- 6653,6659 ----
           --  setting Is_Constrained right for Itypes.
  
           if Is_Numeric_Type (T1)
!            and then Is_Constrained (T1) /= Is_Constrained (T2)
             and then (Scope (T1) = Standard_Standard
                        or else Comes_From_Source (T1))
             and then (Scope (T2) = Standard_Standard
*************** package body Sem_Eval is
*** 6658,6664 ****
  
           elsif Is_Generic_Type (T1)
             and then Is_Generic_Type (T2)
!            and then (Is_Constrained (T1) /= Is_Constrained (T2))
           then
              return False;
           end if;
--- 6667,6673 ----
  
           elsif Is_Generic_Type (T1)
             and then Is_Generic_Type (T2)
!            and then Is_Constrained (T1) /= Is_Constrained (T2)
           then
              return False;
           end if;
*************** package body Sem_Eval is
*** 6803,6809 ****
  
                   --  No constraint on the parent type
  
!                  or else not Present (Discriminant_Constraint (Etype (Typ)))
                   or else Is_Empty_Elmt_List
                             (Discriminant_Constraint (Etype (Typ)))
  
--- 6812,6818 ----
  
                   --  No constraint on the parent type
  
!                  or else No (Discriminant_Constraint (Etype (Typ)))
                   or else Is_Empty_Elmt_List
                             (Discriminant_Constraint (Etype (Typ)))
  
*************** package body Sem_Eval is
*** 7611,7617 ****
                 Error_Msg_NE
                   ("!& is not a static subtype (RM 4.9(26))", N, E);
  
!             else
                 Error_Msg_NE
                   ("!& is not static constant or named number "
                    & "(RM 4.9(5))", N, E);
--- 7620,7626 ----
                 Error_Msg_NE
                   ("!& is not a static subtype (RM 4.9(26))", N, E);
  
!             elsif E /= Any_Id then
                 Error_Msg_NE
                   ("!& is not static constant or named number "
                    & "(RM 4.9(5))", N, E);
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_eval.ads gcc-14.1.0/gcc/ada/sem_eval.ads
*** gcc-13.2.0/gcc/ada/sem_eval.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_eval.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Eval is
*** 409,417 ****
     --  an entity with Is_Known_Valid set, or Assume_No_Invalid_Values is True.
  
     function Is_Null_Range (Lo : Node_Id; Hi : Node_Id) return Boolean;
!    --  Returns True if it can guarantee that Lo .. Hi is a null range. If it
!    --  cannot (because the value of Lo or Hi is not known at compile time) then
!    --  it returns False.
  
     function Is_OK_Static_Expression (N : Node_Id) return Boolean;
     --  An OK static expression is one that is static in the RM definition sense
--- 409,417 ----
     --  an entity with Is_Known_Valid set, or Assume_No_Invalid_Values is True.
  
     function Is_Null_Range (Lo : Node_Id; Hi : Node_Id) return Boolean;
!    --  Returns True if it can guarantee that Lo .. Hi is a null range
! 
!    --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
     function Is_OK_Static_Expression (N : Node_Id) return Boolean;
     --  An OK static expression is one that is static in the RM definition sense
*************** package Sem_Eval is
*** 485,493 ****
     --  per RM 4.9(38/2). N is a node only used to post warnings.
  
     function Not_Null_Range (Lo : Node_Id; Hi : Node_Id) return Boolean;
!    --  Returns True if it can guarantee that Lo .. Hi is not a null range. If
!    --  it cannot (because the value of Lo or Hi is not known at compile time)
!    --  then it returns False.
  
     function Predicates_Compatible (T1, T2 : Entity_Id) return Boolean;
     --  In Ada 2012, subtypes are statically compatible if the predicates are
--- 485,491 ----
     --  per RM 4.9(38/2). N is a node only used to post warnings.
  
     function Not_Null_Range (Lo : Node_Id; Hi : Node_Id) return Boolean;
!    --  Returns True if it can guarantee that Lo .. Hi is not a null range
  
     function Predicates_Compatible (T1, T2 : Entity_Id) return Boolean;
     --  In Ada 2012, subtypes are statically compatible if the predicates are
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_intr.adb gcc-14.1.0/gcc/ada/sem_intr.adb
*** gcc-13.2.0/gcc/ada/sem_intr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_intr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_intr.ads gcc-14.1.0/gcc/ada/sem_intr.ads
*** gcc-13.2.0/gcc/ada/sem_intr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_intr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_mech.adb gcc-14.1.0/gcc/ada/sem_mech.adb
*** gcc-13.2.0/gcc/ada/sem_mech.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_mech.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_mech.ads gcc-14.1.0/gcc/ada/sem_mech.ads
*** gcc-13.2.0/gcc/ada/sem_mech.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_mech.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_prag.adb gcc-14.1.0/gcc/ada/sem_prag.adb
*** gcc-13.2.0/gcc/ada/sem_prag.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_prag.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Prag is
*** 186,191 ****
--- 186,199 ----
     --  to Uppercase or Lowercase, then a new string literal with appropriate
     --  casing is constructed.
  
+    procedure Analyze_If_Present_Internal
+      (N        : Node_Id;
+       Id       : Pragma_Id;
+       Included : Boolean);
+    --  Inspect the remainder of the list containing pragma N and look for a
+    --  pragma that matches Id. If found, analyze the pragma. If Included is
+    --  True, N is included in the search.
+ 
     procedure Analyze_Part_Of
       (Indic    : Node_Id;
        Item_Id  : Entity_Id;
*************** package body Sem_Prag is
*** 208,216 ****
       (Prag    : Node_Id;
        Spec_Id : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Postcondition,
!    --  Precondition, Refined_Post, and Test_Case. Emit a warning when pragma
!    --  Prag is associated with subprogram Spec_Id subject to Inline_Always,
!    --  and assertions are enabled.
  
     procedure Check_State_And_Constituent_Use
       (States   : Elist_Id;
--- 216,225 ----
       (Prag    : Node_Id;
        Spec_Id : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Postcondition,
!    --  Precondition, Refined_Post, Subprogram_Variant, and Test_Case. Emit a
!    --  warning when pragma Prag is associated with subprogram Spec_Id subject
!    --  to Inline_Always, assertions are enabled and inling is done in the
!    --  frontend.
  
     procedure Check_State_And_Constituent_Use
       (States   : Elist_Id;
*************** package body Sem_Prag is
*** 224,233 ****
     procedure Contract_Freeze_Error
       (Contract_Id : Entity_Id;
        Freeze_Id   : Entity_Id);
!    --  Subsidiary to the analysis of pragmas Contract_Cases, Part_Of, Post, and
!    --  Pre. Emit a freezing-related error message where Freeze_Id is the entity
!    --  of a body which caused contract freezing and Contract_Id denotes the
!    --  entity of the affected contstruct.
  
     procedure Duplication_Error (Prag : Node_Id; Prev : Node_Id);
     --  Subsidiary to all Find_Related_xxx routines. Emit an error on pragma
--- 233,242 ----
     procedure Contract_Freeze_Error
       (Contract_Id : Entity_Id;
        Freeze_Id   : Entity_Id);
!    --  Subsidiary to the analysis of pragmas Contract_Cases, Exceptional_Cases,
!    --  Part_Of, Post, Pre and Subprogram_Variant. Emit a freezing-related error
!    --  message where Freeze_Id is the entity of a body which caused contract
!    --  freezing and Contract_Id denotes the entity of the affected contstruct.
  
     procedure Duplication_Error (Prag : Node_Id; Prev : Node_Id);
     --  Subsidiary to all Find_Related_xxx routines. Emit an error on pragma
*************** package body Sem_Prag is
*** 274,281 ****
     function Is_Unconstrained_Or_Tagged_Item (Item : Entity_Id) return Boolean;
     --  Subsidiary to Collect_Subprogram_Inputs_Outputs and the analysis of
     --  pragma Depends. Determine whether the type of dependency item Item is
!    --  tagged, unconstrained array, unconstrained record or a record with at
!    --  least one unconstrained component.
  
     procedure Record_Possible_Body_Reference
       (State_Id : Entity_Id;
--- 283,289 ----
     function Is_Unconstrained_Or_Tagged_Item (Item : Entity_Id) return Boolean;
     --  Subsidiary to Collect_Subprogram_Inputs_Outputs and the analysis of
     --  pragma Depends. Determine whether the type of dependency item Item is
!    --  tagged, unconstrained array or unconstrained record.
  
     procedure Record_Possible_Body_Reference
       (State_Id : Entity_Id;
*************** package body Sem_Prag is
*** 419,424 ****
--- 427,507 ----
        end if;
     end Adjust_External_Name_Case;
  
+    --------------------------------------------
+    -- Analyze_Always_Terminates_In_Decl_Part --
+    --------------------------------------------
+ 
+    procedure Analyze_Always_Terminates_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty)
+    is
+       Subp_Decl : constant Node_Id   := Find_Related_Declaration_Or_Body (N);
+       Spec_Id   : constant Entity_Id := Unique_Defining_Entity (Subp_Decl);
+       Arg1      : constant Node_Id   :=
+         First (Pragma_Argument_Associations (N));
+ 
+       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
+       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
+       --  Save the Ghost-related attributes to restore on exit
+ 
+       Errors        : Nat;
+       Restore_Scope : Boolean := False;
+ 
+    begin
+       --  Do not analyze the pragma multiple times
+ 
+       if Is_Analyzed_Pragma (N) then
+          return;
+       end if;
+ 
+       if Present (Arg1) then
+ 
+          --  Set the Ghost mode in effect from the pragma. Due to the delayed
+          --  analysis of the pragma, the Ghost mode at point of declaration and
+          --  point of analysis may not necessarily be the same. Use the mode in
+          --  effect at the point of declaration.
+ 
+          Set_Ghost_Mode (N);
+ 
+          --  Ensure that the subprogram and its formals are visible when
+          --  analyzing the expression of the pragma.
+ 
+          if not In_Open_Scopes (Spec_Id) then
+             Restore_Scope := True;
+ 
+             if Is_Generic_Subprogram (Spec_Id) then
+                Push_Scope (Spec_Id);
+                Install_Generic_Formals (Spec_Id);
+             else
+                Push_Scope (Spec_Id);
+                Install_Formals (Spec_Id);
+             end if;
+          end if;
+ 
+          Errors := Serious_Errors_Detected;
+          Preanalyze_Assert_Expression (Expression (Arg1), Standard_Boolean);
+ 
+          --  Emit a clarification message when the expression contains at least
+          --  one undefined reference, possibly due to contract freezing.
+ 
+          if Errors /= Serious_Errors_Detected
+            and then Present (Freeze_Id)
+            and then Has_Undefined_Reference (Expression (Arg1))
+          then
+             Contract_Freeze_Error (Spec_Id, Freeze_Id);
+          end if;
+ 
+          if Restore_Scope then
+             End_Scope;
+          end if;
+ 
+          Restore_Ghost_Region (Saved_GM, Saved_IGR);
+       end if;
+ 
+       Set_Is_Analyzed_Pragma (N);
+ 
+    end Analyze_Always_Terminates_In_Decl_Part;
+ 
     -----------------------------------------
     -- Analyze_Contract_Cases_In_Decl_Part --
     -----------------------------------------
*************** package body Sem_Prag is
*** 1021,1030 ****
                       --  and attribute 'Result are still valid items.
  
                       if Ekind (Spec_Id) in E_Function | E_Generic_Function
                         and then not Is_Input
                       then
                          SPARK_Msg_N
!                           ("output item is not applicable to function", Item);
                       end if;
  
                       --  The item denotes a concurrent type. Note that single
--- 1104,1117 ----
                       --  and attribute 'Result are still valid items.
  
                       if Ekind (Spec_Id) in E_Function | E_Generic_Function
+                        and then not Is_Function_With_Side_Effects (Spec_Id)
                         and then not Is_Input
                       then
+                         Error_Msg_Code :=
+                           GEC_Output_In_Function_Global_Or_Depends;
                          SPARK_Msg_N
!                           ("output item is not applicable to function '[[]']",
!                            Item);
                       end if;
  
                       --  The item denotes a concurrent type. Note that single
*************** package body Sem_Prag is
*** 2104,2109 ****
--- 2191,2488 ----
     end Analyze_Depends_In_Decl_Part;
  
     --------------------------------------------
+    -- Analyze_Exceptional_Cases_In_Decl_Part --
+    --------------------------------------------
+ 
+    --  WARNING: This routine manages Ghost regions. Return statements must be
+    --  replaced by gotos which jump to the end of the routine and restore the
+    --  Ghost mode.
+ 
+    procedure Analyze_Exceptional_Cases_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty)
+    is
+       Subp_Decl : constant Node_Id   := Find_Related_Declaration_Or_Body (N);
+       Spec_Id   : constant Entity_Id := Unique_Defining_Entity (Subp_Decl);
+ 
+       procedure Analyze_Exceptional_Contract (Exceptional_Contract : Node_Id);
+       --  Verify the legality of a single exceptional contract
+ 
+       procedure Check_Duplication (Id : Node_Id; Contracts : List_Id);
+       --  Iterate through the identifiers in each contract to find duplicates
+ 
+       ----------------------------------
+       -- Analyze_Exceptional_Contract --
+       ----------------------------------
+ 
+       procedure Analyze_Exceptional_Contract (Exceptional_Contract : Node_Id)
+       is
+          Exception_Choice : Node_Id;
+          Consequence      : Node_Id;
+          Errors           : Nat;
+ 
+       begin
+          if Nkind (Exceptional_Contract) /= N_Component_Association then
+             Error_Msg_N
+               ("wrong syntax in exceptional contract", Exceptional_Contract);
+             return;
+          end if;
+ 
+          Exception_Choice := First (Choices (Exceptional_Contract));
+          Consequence      := Expression (Exceptional_Contract);
+ 
+          while Present (Exception_Choice) loop
+             if Nkind (Exception_Choice) = N_Others_Choice then
+                if Present (Next (Exception_Choice))
+                  or else Present (Next (Exceptional_Contract))
+                  or else Present (Prev (Exception_Choice))
+                then
+                   Error_Msg_N
+                     ("OTHERS must appear alone and last", Exception_Choice);
+                end if;
+ 
+             else
+                Analyze (Exception_Choice);
+ 
+                if Is_Entity_Name (Exception_Choice)
+                  and then Ekind (Entity (Exception_Choice)) = E_Exception
+                then
+                   if Present (Renamed_Entity (Entity (Exception_Choice)))
+                     and then Entity (Exception_Choice) = Standard_Numeric_Error
+                   then
+                      Check_Restriction
+                        (No_Obsolescent_Features, Exception_Choice);
+ 
+                      if Warn_On_Obsolescent_Feature then
+                         Error_Msg_N
+                           ("Numeric_Error is an obsolescent feature " &
+                              "(RM J.6(1))?j?",
+                            Exception_Choice);
+                         Error_Msg_N
+                           ("\use Constraint_Error instead?j?",
+                            Exception_Choice);
+                      end if;
+                   end if;
+ 
+                   Check_Duplication
+                     (Exception_Choice, List_Containing (Exceptional_Contract));
+ 
+                   --  Check for exception declared within generic formal
+                   --  package (which is illegal, see RM 11.2(8)).
+ 
+                   declare
+                      Ent  : Entity_Id := Entity (Exception_Choice);
+                      Scop : Entity_Id;
+ 
+                   begin
+                      if Present (Renamed_Entity (Ent)) then
+                         Ent := Renamed_Entity (Ent);
+                      end if;
+ 
+                      Scop := Scope (Ent);
+                      while Scop /= Standard_Standard
+                        and then Ekind (Scop) = E_Package
+                      loop
+                         if Nkind (Declaration_Node (Scop)) =
+                              N_Package_Specification
+                           and then
+                             Nkind (Original_Node (Parent
+                                     (Declaration_Node (Scop)))) =
+                               N_Formal_Package_Declaration
+                         then
+                            Error_Msg_NE
+                              ("exception& is declared in generic formal "
+                               & "package", Exception_Choice, Ent);
+                            Error_Msg_N
+                              ("\and therefore cannot appear in contract "
+                               & "(RM 11.2(8))", Exception_Choice);
+                            exit;
+ 
+                         --  If the exception is declared in an inner instance,
+                         --  nothing else to check.
+ 
+                         elsif Is_Generic_Instance (Scop) then
+                            exit;
+                         end if;
+ 
+                         Scop := Scope (Scop);
+                      end loop;
+                   end;
+                else
+                   Error_Msg_N ("exception name expected", Exception_Choice);
+                end if;
+             end if;
+ 
+             Next (Exception_Choice);
+          end loop;
+ 
+          --  Now analyze the expressions of this contract
+ 
+          Errors := Serious_Errors_Detected;
+ 
+          --  Preanalyze_Assert_Expression, but without enforcing any of the two
+          --  acceptable types.
+ 
+          Preanalyze_Assert_Expression (Consequence, Any_Boolean);
+ 
+          --  Emit a clarification message when the consequence contains at
+          --  least one undefined reference, possibly due to contract freezing.
+ 
+          if Errors /= Serious_Errors_Detected
+            and then Present (Freeze_Id)
+            and then Has_Undefined_Reference (Consequence)
+          then
+             Contract_Freeze_Error (Spec_Id, Freeze_Id);
+          end if;
+       end Analyze_Exceptional_Contract;
+ 
+       -----------------------
+       -- Check_Duplication --
+       -----------------------
+ 
+       procedure Check_Duplication (Id : Node_Id; Contracts : List_Id) is
+          Contract  : Node_Id;
+          Id1       : Node_Id;
+          Id_Entity : Entity_Id := Entity (Id);
+ 
+       begin
+          if Present (Renamed_Entity (Id_Entity)) then
+             Id_Entity := Renamed_Entity (Id_Entity);
+          end if;
+ 
+          Contract := First (Contracts);
+          while Present (Contract) loop
+             Id1 := First (Choices (Contract));
+             while Present (Id1) loop
+ 
+                --  Only check against the exception choices which precede
+                --  Id in the contract, since the ones that follow Id have not
+                --  been analyzed yet and will be checked in a subsequent call.
+ 
+                if Id = Id1 then
+                   return;
+ 
+                --  Duplication both simple and via a renaming across different
+                --  exceptional contracts is illegal.
+ 
+                elsif Nkind (Id1) /= N_Others_Choice
+                  and then
+                    (Id_Entity = Entity (Id1)
+                      or else Id_Entity = Renamed_Entity (Entity (Id1)))
+                  and then Contract /= Parent (Id)
+                then
+                   Error_Msg_Sloc := Sloc (Id1);
+                   Error_Msg_NE ("exception choice duplicates &#", Id, Id1);
+                end if;
+ 
+                Next (Id1);
+             end loop;
+ 
+             Next (Contract);
+          end loop;
+       end Check_Duplication;
+ 
+       --  Local variables
+ 
+       Exceptional_Contracts : constant Node_Id :=
+         Expression (Get_Argument (N, Spec_Id));
+ 
+       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
+       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
+       --  Save the Ghost-related attributes to restore on exit
+ 
+       Exceptional_Contract : Node_Id;
+       Restore_Scope        : Boolean := False;
+ 
+    --  Start of processing for Analyze_Subprogram_Variant_In_Decl_Part
+ 
+    begin
+       --  Do not analyze the pragma multiple times
+ 
+       if Is_Analyzed_Pragma (N) then
+          return;
+       end if;
+ 
+       --  Set the Ghost mode in effect from the pragma. Due to the delayed
+       --  analysis of the pragma, the Ghost mode at point of declaration and
+       --  point of analysis may not necessarily be the same. Use the mode in
+       --  effect at the point of declaration.
+ 
+       Set_Ghost_Mode (N);
+ 
+       --  Single and multiple contracts must appear in aggregate form. If this
+       --  is not the case, then either the parser of the analysis of the pragma
+       --  failed to produce an aggregate, e.g. when the contract is "null" or a
+       --  "(null record)".
+ 
+       pragma Assert
+         (if Nkind (Exceptional_Contracts) = N_Aggregate
+          then Null_Record_Present (Exceptional_Contracts)
+            xor (Present (Component_Associations (Exceptional_Contracts))
+                   or
+                 Present (Expressions (Exceptional_Contracts)))
+          else Nkind (Exceptional_Contracts) = N_Null);
+ 
+       --  Only clauses of the following form are allowed:
+       --
+       --    exceptional_contract ::=
+       --      [choice_parameter_specification:]
+       --        exception_choice {'|' exception_choice} => consequence
+       --
+       --  where
+       --
+       --    consequence ::= Boolean_expression
+ 
+       if Nkind (Exceptional_Contracts) = N_Aggregate
+         and then Present (Component_Associations (Exceptional_Contracts))
+         and then No (Expressions (Exceptional_Contracts))
+       then
+ 
+          --  Check that the expression is a proper aggregate (no parentheses)
+ 
+          if Paren_Count (Exceptional_Contracts) /= 0 then
+             Error_Msg_F -- CODEFIX
+               ("redundant parentheses", Exceptional_Contracts);
+          end if;
+ 
+          --  Ensure that the formal parameters are visible when analyzing all
+          --  clauses. This falls out of the general rule of aspects pertaining
+          --  to subprogram declarations.
+ 
+          if not In_Open_Scopes (Spec_Id) then
+             Restore_Scope := True;
+             Push_Scope (Spec_Id);
+ 
+             if Is_Generic_Subprogram (Spec_Id) then
+                Install_Generic_Formals (Spec_Id);
+             else
+                Install_Formals (Spec_Id);
+             end if;
+          end if;
+ 
+          Exceptional_Contract :=
+            First (Component_Associations (Exceptional_Contracts));
+          while Present (Exceptional_Contract) loop
+             Analyze_Exceptional_Contract (Exceptional_Contract);
+             Next (Exceptional_Contract);
+          end loop;
+ 
+          if Restore_Scope then
+             End_Scope;
+          end if;
+ 
+       --  Otherwise the pragma is illegal
+ 
+       else
+          Error_Msg_N ("wrong syntax for exceptional cases", N);
+       end if;
+ 
+       Set_Is_Analyzed_Pragma (N);
+ 
+       Restore_Ghost_Region (Saved_GM, Saved_IGR);
+    end Analyze_Exceptional_Cases_In_Decl_Part;
+ 
+    --------------------------------------------
     -- Analyze_External_Property_In_Decl_Part --
     --------------------------------------------
  
*************** package body Sem_Prag is
*** 2447,2467 ****
                       SPARK_Msg_N ("\use its constituents instead", Item);
                       return;
  
-                   --  An external state which has Async_Writers or
-                   --  Effective_Reads enabled cannot appear as a global item
-                   --  of a nonvolatile function (SPARK RM 7.1.3(8)).
- 
-                   elsif Is_External_State (Item_Id)
-                     and then (Async_Writers_Enabled (Item_Id)
-                                or else Effective_Reads_Enabled (Item_Id))
-                     and then Ekind (Spec_Id) in E_Function | E_Generic_Function
-                     and then not Is_Volatile_Function (Spec_Id)
-                   then
-                      SPARK_Msg_NE
-                        ("external state & cannot act as global item of "
-                         & "nonvolatile function", Item, Item_Id);
-                      return;
- 
                    --  If the reference to the abstract state appears in an
                    --  enclosing package body that will eventually refine the
                    --  state, record the reference for future checks.
--- 2826,2831 ----
*************** package body Sem_Prag is
*** 2514,2563 ****
                          Item, Item_Id);
                       return;
                    end if;
- 
-                --  Variable related checks. These are only relevant when
-                --  SPARK_Mode is on as they are not standard Ada legality
-                --  rules.
- 
-                elsif SPARK_Mode = On
-                  and then Ekind (Item_Id) = E_Variable
-                  and then Is_Effectively_Volatile_For_Reading (Item_Id)
-                then
-                   --  The current instance of a protected unit is not an
-                   --  effectively volatile object, unless the protected unit
-                   --  is already volatile for another reason (SPARK RM 7.1.2).
- 
-                   if Is_Single_Protected_Object (Item_Id)
-                     and then Is_CCT_Instance (Etype (Item_Id), Spec_Id)
-                     and then not Is_Effectively_Volatile_For_Reading
-                       (Item_Id, Ignore_Protected => True)
-                   then
-                      null;
- 
-                   --  An effectively volatile object for reading cannot appear
-                   --  as a global item of a nonvolatile function (SPARK RM
-                   --  7.1.3(8)).
- 
-                   elsif Ekind (Spec_Id) in E_Function | E_Generic_Function
-                     and then not Is_Volatile_Function (Spec_Id)
-                   then
-                      Error_Msg_NE
-                        ("volatile object & cannot act as global item of a "
-                         & "function", Item, Item_Id);
-                      return;
- 
-                   --  An effectively volatile object with external property
-                   --  Effective_Reads set to True must have mode Output or
-                   --  In_Out (SPARK RM 7.1.3(10)).
- 
-                   elsif Effective_Reads_Enabled (Item_Id)
-                     and then Global_Mode = Name_Input
-                   then
-                      Error_Msg_NE
-                        ("volatile object & with property Effective_Reads must "
-                         & "have mode In_Out or Output", Item, Item_Id);
-                      return;
-                   end if;
                 end if;
  
                 --  When the item renames an entire object, replace the item
--- 2878,2883 ----
*************** package body Sem_Prag is
*** 2712,2720 ****
  
           procedure Check_Mode_Restriction_In_Function (Mode : Node_Id) is
           begin
!             if Ekind (Spec_Id) in E_Function | E_Generic_Function then
                 SPARK_Msg_N
!                  ("global mode & is not applicable to functions", Mode);
              end if;
           end Check_Mode_Restriction_In_Function;
  
--- 3032,3043 ----
  
           procedure Check_Mode_Restriction_In_Function (Mode : Node_Id) is
           begin
!             if Ekind (Spec_Id) in E_Function | E_Generic_Function
!               and then not Is_Function_With_Side_Effects (Spec_Id)
!             then
!                Error_Msg_Code := GEC_Output_In_Function_Global_Or_Depends;
                 SPARK_Msg_N
!                  ("global mode & is not applicable to function '[[]']", Mode);
              end if;
           end Check_Mode_Restriction_In_Function;
  
*************** package body Sem_Prag is
*** 2895,2900 ****
--- 3218,3263 ----
        Set_Is_Analyzed_Pragma (N);
     end Analyze_Global_In_Decl_Part;
  
+    ---------------------------------
+    -- Analyze_If_Present_Internal --
+    ---------------------------------
+ 
+    procedure Analyze_If_Present_Internal
+      (N        : Node_Id;
+       Id       : Pragma_Id;
+       Included : Boolean)
+    is
+       Stmt : Node_Id;
+ 
+    begin
+       pragma Assert (Is_List_Member (N));
+ 
+       --  Inspect the declarations or statements following pragma N looking
+       --  for another pragma whose Id matches the caller's request. If it is
+       --  available, analyze it.
+ 
+       if Included then
+          Stmt := N;
+       else
+          Stmt := Next (N);
+       end if;
+ 
+       while Present (Stmt) loop
+          if Nkind (Stmt) = N_Pragma and then Get_Pragma_Id (Stmt) = Id then
+             Analyze_Pragma (Stmt);
+             exit;
+ 
+          --  The first source declaration or statement immediately following
+          --  N ends the region where a pragma may appear.
+ 
+          elsif Comes_From_Source (Stmt) then
+             exit;
+          end if;
+ 
+          Next (Stmt);
+       end loop;
+    end Analyze_If_Present_Internal;
+ 
     --------------------------------------------
     -- Analyze_Initial_Condition_In_Decl_Part --
     --------------------------------------------
*************** package body Sem_Prag is
*** 4190,4198 ****
        procedure Check_Static_Boolean_Expression (Expr : Node_Id);
        --  Subsidiary to the analysis of pragmas Async_Readers, Async_Writers,
        --  Constant_After_Elaboration, Effective_Reads, Effective_Writes,
!       --  Extensions_Visible and Volatile_Function. Ensure that expression Expr
!       --  is an OK static boolean expression. Emit an error if this is not the
!       --  case.
  
        procedure Check_Static_Constraint (Constr : Node_Id);
        --  Constr is a constraint from an N_Subtype_Indication node from a
--- 4553,4561 ----
        procedure Check_Static_Boolean_Expression (Expr : Node_Id);
        --  Subsidiary to the analysis of pragmas Async_Readers, Async_Writers,
        --  Constant_After_Elaboration, Effective_Reads, Effective_Writes,
!       --  Extensions_Visible, Side_Effects and Volatile_Function. Ensure
!       --  that expression Expr is an OK static boolean expression. Emit an
!       --  error if this is not the case.
  
        procedure Check_Static_Constraint (Constr : Node_Id);
        --  Constr is a constraint from an N_Subtype_Indication node from a
*************** package body Sem_Prag is
*** 4222,4232 ****
  
        procedure Ensure_Aggregate_Form (Arg : Node_Id);
        --  Subsidiary routine to the processing of pragmas Abstract_State,
!       --  Contract_Cases, Depends, Global, Initializes, Refined_Depends,
!       --  Refined_Global, Refined_State and Subprogram_Variant. Transform
!       --  argument Arg into an aggregate if not one already. N_Null is never
!       --  transformed. Arg may denote an aspect specification or a pragma
!       --  argument association.
  
        procedure Error_Pragma (Msg : String);
        pragma No_Return (Error_Pragma);
--- 4585,4595 ----
  
        procedure Ensure_Aggregate_Form (Arg : Node_Id);
        --  Subsidiary routine to the processing of pragmas Abstract_State,
!       --  Contract_Cases, Depends, Exceptional_Cases, Global, Initializes,
!       --  Refined_Depends, Refined_Global, Refined_State and
!       --  Subprogram_Variant. Transform argument Arg into an aggregate if not
!       --  one already. N_Null is never transformed. Arg may denote an aspect
!       --  specification or a pragma argument association.
  
        procedure Error_Pragma (Msg : String);
        pragma No_Return (Error_Pragma);
*************** package body Sem_Prag is
*** 4649,4678 ****
        ------------------------
  
        procedure Analyze_If_Present (Id : Pragma_Id) is
-          Stmt : Node_Id;
- 
        begin
!          pragma Assert (Is_List_Member (N));
! 
!          --  Inspect the declarations or statements following pragma N looking
!          --  for another pragma whose Id matches the caller's request. If it is
!          --  available, analyze it.
! 
!          Stmt := Next (N);
!          while Present (Stmt) loop
!             if Nkind (Stmt) = N_Pragma and then Get_Pragma_Id (Stmt) = Id then
!                Analyze_Pragma (Stmt);
!                exit;
! 
!             --  The first source declaration or statement immediately following
!             --  N ends the region where a pragma may appear.
! 
!             elsif Comes_From_Source (Stmt) then
!                exit;
!             end if;
! 
!             Next (Stmt);
!          end loop;
        end Analyze_If_Present;
  
        --------------------------------
--- 5012,5019 ----
        ------------------------
  
        procedure Analyze_If_Present (Id : Pragma_Id) is
        begin
!          Analyze_If_Present_Internal (N, Id, Included => False);
        end Analyze_If_Present;
  
        --------------------------------
*************** package body Sem_Prag is
*** 4942,4950 ****
           then
              null;
  
!          --  An access-to-subprogram type can have pre/postconditions, but
!          --  these are transferred to the generated subprogram wrapper and
!          --  analyzed there.
  
           --  Otherwise the placement of the pragma is illegal
  
--- 5283,5301 ----
           then
              null;
  
!          --  An access-to-subprogram type can have pre/postconditions, which
!          --  are both analyzed when attached to the type and copied to the
!          --  generated subprogram wrapper and analyzed there.
! 
!          elsif Nkind (Subp_Decl) = N_Full_Type_Declaration
!            and then Nkind (Type_Definition (Subp_Decl)) in
!                       N_Access_To_Subprogram_Definition
!          then
!             if Ada_Version < Ada_2022 then
!                Error_Msg_Ada_2022_Feature
!                  ("pre/postcondition on access-to-subprogram", Loc);
!                raise Pragma_Exit;
!             end if;
  
           --  Otherwise the placement of the pragma is illegal
  
*************** package body Sem_Prag is
*** 4962,4968 ****
           --  Chain the pragma on the contract for further processing by
           --  Analyze_Pre_Post_Condition_In_Decl_Part.
  
!          Add_Contract_Item (N, Subp_Id);
  
           --  Fully analyze the pragma when it appears inside an entry or
           --  subprogram body because it cannot benefit from forward references.
--- 5313,5323 ----
           --  Chain the pragma on the contract for further processing by
           --  Analyze_Pre_Post_Condition_In_Decl_Part.
  
!          if Ekind (Subp_Id) in Access_Subprogram_Kind then
!             Add_Contract_Item (N, Directly_Designated_Type (Subp_Id));
!          else
!             Add_Contract_Item (N, Subp_Id);
!          end if;
  
           --  Fully analyze the pragma when it appears inside an entry or
           --  subprogram body because it cannot benefit from forward references.
*************** package body Sem_Prag is
*** 6258,6263 ****
--- 6613,6626 ----
                             elsif Is_Loop_Pragma (Stmt) then
                                Prag := Stmt;
  
+                            --  Skip Annotate pragmas, typically used to justify
+                            --  unproved loop pragmas in GNATprove.
+ 
+                            elsif Nkind (Stmt) = N_Pragma
+                              and then Pragma_Name (Stmt) = Name_Annotate
+                            then
+                               null;
+ 
                             --  Skip declarations and statements generated by
                             --  the compiler during expansion. Note that some
                             --  source statements (e.g. pragma Assert) may have
*************** package body Sem_Prag is
*** 7705,7731 ****
              Check_Full_Access_Only (E);
           end if;
  
-          --  The following check is only relevant when SPARK_Mode is on as
-          --  this is not a standard Ada legality rule. Pragma Volatile can
-          --  only apply to a full type declaration or an object declaration
-          --  (SPARK RM 7.1.3(2)). Original_Node is necessary to account for
-          --  untagged derived types that are rewritten as subtypes of their
-          --  respective root types.
- 
-          if SPARK_Mode = On
-            and then Prag_Id = Pragma_Volatile
-            and then Nkind (Original_Node (Decl)) not in
-                       N_Full_Type_Declaration        |
-                       N_Formal_Type_Declaration      |
-                       N_Object_Declaration           |
-                       N_Single_Protected_Declaration |
-                       N_Single_Task_Declaration
-          then
-             Error_Pragma_Arg
-               ("argument of pragma % must denote a full type or object "
-                & "declaration", Arg1);
-          end if;
- 
           --  Deal with the case where the pragma/attribute is applied to a type
  
           if Is_Type (E) then
--- 8068,8073 ----
*************** package body Sem_Prag is
*** 7826,7832 ****
           --  then. For example, if the expression is "Record_Type'Size /= 32"
           --  it might be known after the back end has determined the size of
           --  Record_Type. We do not defer validation if we're inside a generic
!          --  unit, because we will have more information in the instances.
  
           if Compile_Time_Known_Value (Arg1x) then
              Validate_Compile_Time_Warning_Or_Error (N, Sloc (Arg1));
--- 8168,8176 ----
           --  then. For example, if the expression is "Record_Type'Size /= 32"
           --  it might be known after the back end has determined the size of
           --  Record_Type. We do not defer validation if we're inside a generic
!          --  unit, because we will have more information in the instances, and
!          --  this ultimately applies to the main unit itself, because it is not
!          --  compiled by the back end when it is generic.
  
           if Compile_Time_Known_Value (Arg1x) then
              Validate_Compile_Time_Warning_Or_Error (N, Sloc (Arg1));
*************** package body Sem_Prag is
*** 7844,7850 ****
                 end if;
              end loop;
  
!             if No (P) then
                 Defer_Compile_Time_Warning_Error_To_BE (N);
              end if;
           end if;
--- 8188,8197 ----
                 end if;
              end loop;
  
!             if No (P)
!               and then
!                 Nkind (Unit (Cunit (Main_Unit))) not in N_Generic_Declaration
!             then
                 Defer_Compile_Time_Warning_Error_To_BE (N);
              end if;
           end if;
*************** package body Sem_Prag is
*** 10959,10965 ****
  
           --  Warn that suppress of Elaboration_Check has no effect in SPARK
  
!          if C = Elaboration_Check and then SPARK_Mode = On then
              Error_Pragma_Arg
                ("Suppress of Elaboration_Check ignored in SPARK??",
                 "\elaboration checking rules are statically enforced "
--- 11306,11315 ----
  
           --  Warn that suppress of Elaboration_Check has no effect in SPARK
  
!          if C = Elaboration_Check
!            and then Suppress_Case
!            and then SPARK_Mode = On
!          then
              Error_Pragma_Arg
                ("Suppress of Elaboration_Check ignored in SPARK??",
                 "\elaboration checking rules are statically enforced "
*************** package body Sem_Prag is
*** 11691,11719 ****
  
        --  Preset arguments
  
!       Arg_Count := 0;
!       Arg1      := Empty;
        Arg2      := Empty;
        Arg3      := Empty;
        Arg4      := Empty;
        Arg5      := Empty;
  
!       if Present (Pragma_Argument_Associations (N)) then
!          Arg_Count := List_Length (Pragma_Argument_Associations (N));
!          Arg1 := First (Pragma_Argument_Associations (N));
! 
!          if Present (Arg1) then
!             Arg2 := Next (Arg1);
  
!             if Present (Arg2) then
!                Arg3 := Next (Arg2);
  
!                if Present (Arg3) then
!                   Arg4 := Next (Arg3);
  
!                   if Present (Arg4) then
!                      Arg5 := Next (Arg4);
!                   end if;
                 end if;
              end if;
           end if;
--- 12041,12064 ----
  
        --  Preset arguments
  
!       Arg_Count := List_Length (Pragma_Argument_Associations (N));
!       Arg1      := First (Pragma_Argument_Associations (N));
        Arg2      := Empty;
        Arg3      := Empty;
        Arg4      := Empty;
        Arg5      := Empty;
  
!       if Present (Arg1) then
!          Arg2 := Next (Arg1);
  
!          if Present (Arg2) then
!             Arg3 := Next (Arg2);
  
!             if Present (Arg3) then
!                Arg4 := Next (Arg3);
  
!                if Present (Arg4) then
!                   Arg5 := Next (Arg4);
                 end if;
              end if;
           end if;
*************** package body Sem_Prag is
*** 12198,12207 ****
  
                    --  Null states never come from source
  
!                   Set_Comes_From_Source   (State_Id, not Is_Null);
!                   Set_Parent              (State_Id, State);
!                   Mutate_Ekind            (State_Id, E_Abstract_State);
!                   Set_Etype               (State_Id, Standard_Void_Type);
                    Set_Encapsulating_State (State_Id, Empty);
  
                    --  Set the SPARK mode from the current context
--- 12543,12553 ----
  
                    --  Null states never come from source
  
!                   Set_Comes_From_Source (State_Id, not Is_Null);
!                   Set_Parent (State_Id, State);
!                   Mutate_Ekind (State_Id, E_Abstract_State);
!                   Set_Is_Not_Self_Hidden (State_Id);
!                   Set_Etype (State_Id, Standard_Void_Type);
                    Set_Encapsulating_State (State_Id, Empty);
  
                    --  Set the SPARK mode from the current context
*************** package body Sem_Prag is
*** 12883,12888 ****
--- 13229,13405 ----
                 Opt.Allow_Integer_Address := True;
              end if;
  
+          -----------------------
+          -- Always_Terminates --
+          -----------------------
+ 
+          --  pragma Always_Terminates [ (boolean_EXPRESSION) ];
+ 
+          --  Characteristics:
+ 
+          --    * Analysis - The annotation undergoes initial checks to verify
+          --    the legal placement and context. Secondary checks preanalyze the
+          --    expressions in:
+ 
+          --       Analyze_Always_Terminates_Cases_In_Decl_Part
+ 
+          --    * Expansion - The annotation is expanded during the expansion of
+          --    the related subprogram [body] contract as performed in:
+ 
+          --       Expand_Subprogram_Contract
+ 
+          --    * Template - The annotation utilizes the generic template of the
+          --    related subprogram [body] when it is:
+ 
+          --       aspect on subprogram declaration
+          --       aspect on stand-alone subprogram body
+          --       pragma on stand-alone subprogram body
+ 
+          --    The annotation must prepare its own template when it is:
+ 
+          --       pragma on subprogram declaration
+ 
+          --    * Globals - Capture of global references must occur after full
+          --    analysis.
+ 
+          --    * Instance - The annotation is instantiated automatically when
+          --    the related generic subprogram [body] is instantiated except for
+          --    the "pragma on subprogram declaration" case. In that scenario
+          --    the annotation must instantiate itself.
+ 
+          when Pragma_Always_Terminates => Always_Terminates : declare
+             Spec_Id   : Entity_Id;
+             Subp_Decl : Node_Id;
+             Subp_Spec : Node_Id;
+ 
+          begin
+             GNAT_Pragma;
+             Check_No_Identifiers;
+             Check_At_Most_N_Arguments (1);
+ 
+             --  Ensure the proper placement of the pragma. Always_Terminates
+             --  must be associated with a subprogram declaration or a body that
+             --  acts as a spec.
+ 
+             Subp_Decl :=
+               Find_Related_Declaration_Or_Body (N, Do_Checks => True);
+ 
+             --  Generic subprogram and package declaration
+ 
+             if Nkind (Subp_Decl) in N_Generic_Declaration then
+                null;
+ 
+             --  Package declaration
+ 
+             elsif Nkind (Subp_Decl) = N_Package_Declaration then
+                null;
+ 
+             --  Body acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body
+               and then No (Corresponding_Spec (Subp_Decl))
+             then
+                null;
+ 
+             --  Body stub acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body_Stub
+               and then No (Corresponding_Spec_Of_Stub (Subp_Decl))
+             then
+                null;
+ 
+             --  Subprogram
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Declaration then
+                Subp_Spec := Specification (Subp_Decl);
+ 
+                --  Pragma Always_Terminates is forbidden on null procedures,
+                --  as this may lead to potential ambiguities in behavior
+                --  when interface null procedures are involved. Also, it
+                --  just wouldn't make sense, because null procedures always
+                --  terminate anyway.
+ 
+                if Nkind (Subp_Spec) = N_Procedure_Specification
+                  and then Null_Present (Subp_Spec)
+                then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to null procedure"), N);
+                   return;
+                end if;
+ 
+             --  Entry
+ 
+             elsif Nkind (Subp_Decl) = N_Entry_Declaration then
+                null;
+ 
+             else
+                Pragma_Misplaced;
+             end if;
+ 
+             Spec_Id := Unique_Defining_Entity (Subp_Decl);
+ 
+             --  In order to call Is_Function_With_Side_Effects, analyze pragma
+             --  Side_Effects if present.
+ 
+             Analyze_If_Present (Pragma_Side_Effects);
+ 
+             --  Pragma Always_Terminates is not allowed on functions without
+             --  side effects.
+ 
+             if Ekind (Spec_Id) in E_Function | E_Generic_Function
+               and then not Is_Function_With_Side_Effects (Spec_Id)
+             then
+                Error_Msg_Code := GEC_Always_Terminates_On_Function;
+ 
+                if Ekind (Spec_Id) = E_Function then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to function '[[]']"), N);
+                      return;
+ 
+                elsif Ekind (Spec_Id) = E_Generic_Function then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to generic function '[[]']"), N);
+                   return;
+                end if;
+             end if;
+ 
+             --  Pragma Always_Terminates applied to packages doesn't allow any
+             --  expression.
+ 
+             if Is_Package_Or_Generic_Package (Spec_Id)
+               and then Arg_Count /= 0
+             then
+                Error_Msg_N (Fix_Error
+                  ("pragma % applied to package cannot have arguments"), N);
+                return;
+             end if;
+ 
+             --  A pragma that applies to a Ghost entity becomes Ghost for the
+             --  purposes of legality checks and removal of ignored Ghost code.
+ 
+             Mark_Ghost_Pragma (N, Spec_Id);
+ 
+             --  Chain the pragma on the contract for further processing by
+             --  Analyze_Always_Terminates_In_Decl_Part.
+ 
+             Add_Contract_Item (N, Defining_Entity (Subp_Decl));
+ 
+             --  Fully analyze the pragma when it appears inside a subprogram
+             --  body because it cannot benefit from forward references.
+ 
+             if Nkind (Subp_Decl) in N_Subprogram_Body
+                                   | N_Subprogram_Body_Stub
+             then
+                --  The legality checks of pragma Always_Terminates are affected
+                --  by the SPARK mode in effect and the volatility of the
+                --  context. Analyze all pragmas in a specific order.
+ 
+                Analyze_If_Present (Pragma_SPARK_Mode);
+                Analyze_If_Present (Pragma_Volatile_Function);
+                Analyze_Always_Terminates_In_Decl_Part (N);
+             end if;
+          end Always_Terminates;
+ 
           --------------
           -- Annotate --
           --------------
*************** package body Sem_Prag is
*** 12937,12944 ****
                                Standard_String);
                       begin
                          for Idx in Type_Table'Range loop
!                            if (L_Type = Type_Table (Idx)) or
!                               (R_Type = Type_Table (Idx))
                             then
                                return Type_Table (Idx);
                             end if;
--- 13454,13461 ----
                                Standard_String);
                       begin
                          for Idx in Type_Table'Range loop
!                            if L_Type = Type_Table (Idx) or
!                               R_Type = Type_Table (Idx)
                             then
                                return Type_Table (Idx);
                             end if;
*************** package body Sem_Prag is
*** 13494,13500 ****
           begin
              GNAT_Pragma;
              Check_No_Identifiers;
!             Check_At_Most_N_Arguments  (1);
  
              Obj_Or_Type_Decl := Find_Related_Context (N, Do_Checks => True);
  
--- 14011,14017 ----
           begin
              GNAT_Pragma;
              Check_No_Identifiers;
!             Check_At_Most_N_Arguments (1);
  
              Obj_Or_Type_Decl := Find_Related_Context (N, Do_Checks => True);
  
*************** package body Sem_Prag is
*** 15490,15496 ****
              Default := Fold_Upper (Name_Buffer (1));
  
              if not Support_Nondefault_SSO_On_Target
!               and then (Ttypes.Bytes_Big_Endian /= (Default = 'H'))
              then
                 if Warn_On_Unrecognized_Pragma then
                    Error_Msg_N
--- 16007,16013 ----
              Default := Fold_Upper (Name_Buffer (1));
  
              if not Support_Nondefault_SSO_On_Target
!               and then Ttypes.Bytes_Big_Endian /= (Default = 'H')
              then
                 if Warn_On_Unrecognized_Pragma then
                    Error_Msg_N
*************** package body Sem_Prag is
*** 15695,15700 ****
--- 16212,16218 ----
  
                    Analyze_If_Present (Pragma_SPARK_Mode);
                    Analyze_If_Present (Pragma_Volatile_Function);
+                   Analyze_If_Present (Pragma_Side_Effects);
                    Analyze_If_Present (Pragma_Global);
                    Analyze_Depends_In_Decl_Part (N);
                 end if;
*************** package body Sem_Prag is
*** 16275,16280 ****
--- 16793,16959 ----
              GNAT_Pragma;
              Process_Disable_Enable_Atomic_Sync (Name_Unsuppress);
  
+          -----------------------
+          -- Exceptional_Cases --
+          -----------------------
+ 
+          --  pragma Exceptional_Cases ( EXCEPTIONAL_CONTRACT_LIST );
+ 
+          --    EXCEPTIONAL_CONTRACT_LIST ::=
+          --      ( EXCEPTIONAL_CONTRACT {, EXCEPTIONAL_CONTRACT })
+ 
+          --    EXCEPTIONAL_CONTRACT ::=
+          --      EXCEPTION_CHOICE {'|' EXCEPTION_CHOICE} => CONSEQUENCE
+          --
+          --  where
+          --
+          --    CONSEQUENCE ::= boolean_EXPRESSION
+ 
+          --  Characteristics:
+ 
+          --    * Analysis - The annotation undergoes initial checks to verify
+          --    the legal placement and context. Secondary checks preanalyze the
+          --    expressions in:
+ 
+          --       Analyze_Exceptional_Cases_In_Decl_Part
+ 
+          --    * Expansion - The annotation is expanded during the expansion of
+          --    the related subprogram [body] contract as performed in:
+ 
+          --       Expand_Subprogram_Contract
+ 
+          --    * Template - The annotation utilizes the generic template of the
+          --    related subprogram [body] when it is:
+ 
+          --       aspect on subprogram declaration
+          --       aspect on stand-alone subprogram body
+          --       pragma on stand-alone subprogram body
+ 
+          --    The annotation must prepare its own template when it is:
+ 
+          --       pragma on subprogram declaration
+ 
+          --    * Globals - Capture of global references must occur after full
+          --    analysis.
+ 
+          --    * Instance - The annotation is instantiated automatically when
+          --    the related generic subprogram [body] is instantiated except for
+          --    the "pragma on subprogram declaration" case. In that scenario
+          --    the annotation must instantiate itself.
+ 
+          when Pragma_Exceptional_Cases => Exceptional_Cases : declare
+             Spec_Id   : Entity_Id;
+             Subp_Decl : Node_Id;
+             Subp_Spec : Node_Id;
+ 
+          begin
+             GNAT_Pragma;
+             Check_No_Identifiers;
+             Check_Arg_Count (1);
+ 
+             --  Ensure the proper placement of the pragma. Exceptional_Cases
+             --  must be associated with a subprogram declaration or a body that
+             --  acts as a spec.
+ 
+             Subp_Decl :=
+               Find_Related_Declaration_Or_Body (N, Do_Checks => True);
+ 
+             --  Generic subprogram
+ 
+             if Nkind (Subp_Decl) = N_Generic_Subprogram_Declaration then
+                null;
+ 
+             --  Body acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body
+               and then No (Corresponding_Spec (Subp_Decl))
+             then
+                null;
+ 
+             --  Body stub acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body_Stub
+               and then No (Corresponding_Spec_Of_Stub (Subp_Decl))
+             then
+                null;
+ 
+             --  Subprogram
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Declaration then
+                Subp_Spec := Specification (Subp_Decl);
+ 
+                --  Pragma Exceptional_Cases is forbidden on null procedures,
+                --  as this may lead to potential ambiguities in behavior when
+                --  interface null procedures are involved. Also, it just
+                --  wouldn't make sense, because null procedures do not raise
+                --  exceptions.
+ 
+                if Nkind (Subp_Spec) = N_Procedure_Specification
+                  and then Null_Present (Subp_Spec)
+                then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to null procedure"), N);
+                   return;
+                end if;
+ 
+             else
+                Pragma_Misplaced;
+             end if;
+ 
+             Spec_Id := Unique_Defining_Entity (Subp_Decl);
+ 
+             --  In order to call Is_Function_With_Side_Effects, analyze pragma
+             --  Side_Effects if present.
+ 
+             Analyze_If_Present (Pragma_Side_Effects);
+ 
+             --  Pragma Exceptional_Cases is not allowed on functions without
+             --  side effects.
+ 
+             if Ekind (Spec_Id) in E_Function | E_Generic_Function
+               and then not Is_Function_With_Side_Effects (Spec_Id)
+             then
+                Error_Msg_Sloc := GEC_Exceptional_Cases_On_Function;
+ 
+                if Ekind (Spec_Id) = E_Function then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to function '[[]']"), N);
+                      return;
+ 
+                elsif Ekind (Spec_Id) = E_Generic_Function then
+                   Error_Msg_N (Fix_Error
+                     ("pragma % cannot apply to generic function '[[]']"), N);
+                   return;
+                end if;
+             end if;
+ 
+             --  A pragma that applies to a Ghost entity becomes Ghost for the
+             --  purposes of legality checks and removal of ignored Ghost code.
+ 
+             Mark_Ghost_Pragma (N, Spec_Id);
+             Ensure_Aggregate_Form (Get_Argument (N, Spec_Id));
+ 
+             --  Chain the pragma on the contract for further processing by
+             --  Analyze_Exceptional_Cases_In_Decl_Part.
+ 
+             Add_Contract_Item (N, Defining_Entity (Subp_Decl));
+ 
+             --  Fully analyze the pragma when it appears inside a subprogram
+             --  body because it cannot benefit from forward references.
+ 
+             if Nkind (Subp_Decl) in N_Subprogram_Body
+                                   | N_Subprogram_Body_Stub
+             then
+                --  The legality checks of pragma Exceptional_Cases are
+                --  affected by the SPARK mode in effect and the volatility
+                --  of the context. Analyze all pragmas in a specific order.
+ 
+                Analyze_If_Present (Pragma_SPARK_Mode);
+                Analyze_If_Present (Pragma_Volatile_Function);
+                Analyze_Exceptional_Cases_In_Decl_Part (N);
+             end if;
+          end Exceptional_Cases;
+ 
           ------------
           -- Export --
           ------------
*************** package body Sem_Prag is
*** 17301,17306 ****
--- 17980,17986 ----
  
                    Analyze_If_Present (Pragma_SPARK_Mode);
                    Analyze_If_Present (Pragma_Volatile_Function);
+                   Analyze_If_Present (Pragma_Side_Effects);
                    Analyze_Global_In_Decl_Part (N);
                    Analyze_If_Present (Pragma_Depends);
                 end if;
*************** package body Sem_Prag is
*** 20027,20033 ****
                  N : Node_Id) return Boolean
              is
              begin
!                if Ekind (E) = E_Procedure then
  
                    --  If E is a generic instance, marking it with No_Return
                    --  is forbidden, but having it inherit the No_Return of
--- 20707,20717 ----
                  N : Node_Id) return Boolean
              is
              begin
!                if Ekind (E) in E_Function | E_Generic_Function then
!                   Error_Msg_Ada_2022_Feature ("No_Return function", Sloc (N));
!                   return Ada_Version >= Ada_2022;
! 
!                elsif Ekind (E) = E_Procedure then
  
                    --  If E is a generic instance, marking it with No_Return
                    --  is forbidden, but having it inherit the No_Return of
*************** package body Sem_Prag is
*** 20098,20106 ****
                    --  Ada 2022 (AI12-0269): A function can be No_Return
  
                    if Ekind (E) in E_Generic_Procedure | E_Procedure
!                     or else (Ada_Version >= Ada_2022
!                               and then
!                              Ekind (E) in E_Generic_Function | E_Function)
                    then
                       --  Check that the pragma is not applied to a body.
                       --  First check the specless body case, to give a
--- 20782,20788 ----
                    --  Ada 2022 (AI12-0269): A function can be No_Return
  
                    if Ekind (E) in E_Generic_Procedure | E_Procedure
!                                    | E_Generic_Function | E_Function
                    then
                       --  Check that the pragma is not applied to a body.
                       --  First check the specless body case, to give a
*************** package body Sem_Prag is
*** 21510,21519 ****
                 return;
              end if;
  
!             --  A pragma that applies to a Ghost entity becomes Ghost for the
!             --  purposes of legality checks and removal of ignored Ghost code.
  
!             Mark_Ghost_Pragma (N, Typ);
  
              --  The remaining processing is simply to link the pragma on to
              --  the rep item chain, for processing when the type is frozen.
--- 22192,22212 ----
                 return;
              end if;
  
!             --  A Ghost_Predicate aspect is always Ghost with a mode inherited
!             --  from the context. A Predicate pragma that applies to a Ghost
!             --  entity becomes Ghost for the purposes of legality checks and
!             --  removal of ignored Ghost code.
  
!             if From_Aspect_Specification (N)
!               and then Get_Aspect_Id
!                          (Chars (Identifier (Corresponding_Aspect (N))))
!                 = Aspect_Ghost_Predicate
!             then
!                Mark_Ghost_Pragma
!                  (N, Name_To_Ghost_Mode (Policy_In_Effect (Name_Ghost)));
!             else
!                Mark_Ghost_Pragma (N, Typ);
!             end if;
  
              --  The remaining processing is simply to link the pragma on to
              --  the rep item chain, for processing when the type is frozen.
*************** package body Sem_Prag is
*** 22296,22301 ****
--- 22989,23004 ----
  
              E := Entity (E_Id);
  
+             Analyze_If_Present (Pragma_Side_Effects);
+ 
+             --  A function with side effects shall not have a Pure_Function
+             --  aspect or pragma (SPARK RM 6.1.11(5)).
+ 
+             if Is_Function_With_Side_Effects (E) then
+                Error_Pragma
+                  ("pragma % incompatible with ""Side_Effects""");
+             end if;
+ 
              --  A pragma that applies to a Ghost entity becomes Ghost for the
              --  purposes of legality checks and removal of ignored Ghost code.
  
*************** package body Sem_Prag is
*** 22469,22474 ****
--- 23172,23178 ----
  
                 Analyze_If_Present (Pragma_SPARK_Mode);
                 Analyze_If_Present (Pragma_Volatile_Function);
+                Analyze_If_Present (Pragma_Side_Effects);
                 Analyze_If_Present (Pragma_Refined_Global);
                 Analyze_Refined_Depends_In_Decl_Part (N);
              end if;
*************** package body Sem_Prag is
*** 22537,22542 ****
--- 23241,23247 ----
  
                 Analyze_If_Present (Pragma_SPARK_Mode);
                 Analyze_If_Present (Pragma_Volatile_Function);
+                Analyze_If_Present (Pragma_Side_Effects);
                 Analyze_Refined_Global_In_Decl_Part (N);
                 Analyze_If_Present (Pragma_Refined_Depends);
              end if;
*************** package body Sem_Prag is
*** 22669,22683 ****
              Analyze_If_Present (Pragma_SPARK_Mode);
  
              --  State refinement is allowed only when the corresponding package
!             --  declaration has non-null pragma Abstract_State. Refinement not
!             --  enforced when SPARK checks are suppressed (SPARK RM 7.2.2(3)).
  
!             if SPARK_Mode /= Off
!               and then
!                 (No (Abstract_States (Spec_Id))
!                   or else Has_Null_Abstract_State (Spec_Id))
              then
!                Error_Msg_NE
                   ("useless refinement, package & does not define abstract "
                    & "states", N, Spec_Id);
                 return;
--- 23374,23386 ----
              Analyze_If_Present (Pragma_SPARK_Mode);
  
              --  State refinement is allowed only when the corresponding package
!             --  declaration has non-null pragma Abstract_State (SPARK RM
!             --  7.2.2(3)).
  
!             if No (Abstract_States (Spec_Id))
!               or else Has_Null_Abstract_State (Spec_Id)
              then
!                SPARK_Msg_NE
                   ("useless refinement, package & does not define abstract "
                    & "states", N, Spec_Id);
                 return;
*************** package body Sem_Prag is
*** 23072,23077 ****
--- 23775,23903 ----
              Check_Arg_Count (0);
              Check_Valid_Configuration_Pragma;
  
+          ------------------
+          -- Side_Effects --
+          ------------------
+ 
+          --  pragma Side_Effects [ (boolean_EXPRESSION) ];
+ 
+          --  Characteristics:
+ 
+          --    * Analysis - The annotation is fully analyzed immediately upon
+          --    elaboration as its expression must be static.
+ 
+          --    * Expansion - None.
+ 
+          --    * Template - The annotation utilizes the generic template of the
+          --    related subprogram [body] when it is:
+ 
+          --       aspect on subprogram declaration
+          --       aspect on stand-alone subprogram body
+          --       pragma on stand-alone subprogram body
+ 
+          --    The annotation must prepare its own template when it is:
+ 
+          --       pragma on subprogram declaration
+ 
+          --    * Globals - Capture of global references must occur after full
+          --    analysis.
+ 
+          --    * Instance - The annotation is instantiated automatically when
+          --    the related generic subprogram [body] is instantiated except for
+          --    the "pragma on subprogram declaration" case. In that scenario
+          --    the annotation must instantiate itself.
+ 
+          when Pragma_Side_Effects => Side_Effects : declare
+             Subp_Decl : Node_Id;
+             Spec_Id   : Entity_Id;
+             Over_Id   : Entity_Id;
+ 
+          begin
+             GNAT_Pragma;
+             Check_No_Identifiers;
+             Check_At_Most_N_Arguments (1);
+ 
+             Subp_Decl :=
+               Find_Related_Declaration_Or_Body (N, Do_Checks => True);
+ 
+             --  Abstract subprogram declaration
+ 
+             if Nkind (Subp_Decl) = N_Abstract_Subprogram_Declaration then
+                null;
+ 
+             --  Generic subprogram declaration
+ 
+             elsif Nkind (Subp_Decl) = N_Generic_Subprogram_Declaration then
+                null;
+ 
+             --  Body acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body
+               and then No (Corresponding_Spec (Subp_Decl))
+             then
+                null;
+ 
+             --  Body stub acts as spec
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Body_Stub
+               and then No (Corresponding_Spec_Of_Stub (Subp_Decl))
+             then
+                null;
+ 
+             --  Subprogram declaration
+ 
+             elsif Nkind (Subp_Decl) = N_Subprogram_Declaration then
+                null;
+ 
+             --  Otherwise the pragma is associated with an illegal construct
+ 
+             else
+                Error_Pragma ("pragma % must apply to a subprogram");
+             end if;
+ 
+             if Nkind (Specification (Subp_Decl)) /= N_Function_Specification
+             then
+                Error_Pragma ("pragma % must apply to a function");
+             end if;
+ 
+             Spec_Id := Unique_Defining_Entity (Subp_Decl);
+ 
+             --  Chain the pragma on the contract for completeness
+ 
+             Add_Contract_Item (N, Spec_Id);
+ 
+             --  A function with side effects cannot override a function without
+             --  side effects (SPARK RM 7.1.2(16)). Overriding checks are
+             --  usually performed in New_Overloaded_Entity, however at
+             --  that point the pragma has not been processed yet.
+ 
+             Over_Id := Overridden_Operation (Spec_Id);
+ 
+             if Present (Over_Id)
+               and then not Is_Function_With_Side_Effects (Over_Id)
+             then
+                Error_Msg_N
+                  ("incompatible declaration of side effects for function",
+                   Spec_Id);
+ 
+                Error_Msg_Sloc := Sloc (Over_Id);
+                Error_Msg_N
+                  ("\& declared # with Side_Effects value False",
+                   Spec_Id);
+ 
+                Error_Msg_Sloc := Sloc (Spec_Id);
+                Error_Msg_N
+                  ("\overridden # with Side_Effects value True",
+                   Spec_Id);
+             end if;
+ 
+             --  Analyze the Boolean expression (if any)
+ 
+             if Present (Arg1) then
+                Check_Static_Boolean_Expression (Get_Pragma_Arg (Arg1));
+             end if;
+          end Side_Effects;
+ 
           ------------------------------
           -- Simple_Storage_Pool_Type --
           ------------------------------
*************** package body Sem_Prag is
*** 23118,23124 ****
              --  in Freeze_Entity).
  
              if Is_Record_Type (Typ)
!               and then not Is_Limited_View (Typ)
              then
                 Error_Pragma
                   ("pragma% can only apply to explicitly limited record type");
--- 23944,23950 ----
              --  in Freeze_Entity).
  
              if Is_Record_Type (Typ)
!               and then not Is_Inherently_Limited_Type (Typ)
              then
                 Error_Pragma
                   ("pragma% can only apply to explicitly limited record type");
*************** package body Sem_Prag is
*** 23442,23448 ****
  
                 --  Local variables
  
!                Msg_1 : constant String := "incorrect placement of pragma%";
                 Msg_2 : Name_Id;
  
              --  Start of processing for Check_Library_Level_Entity
--- 24268,24275 ----
  
                 --  Local variables
  
!                Msg_1 : constant String :=
!                  "incorrect placement of pragma% with value ""On"" '[[]']";
                 Msg_2 : Name_Id;
  
              --  Start of processing for Check_Library_Level_Entity
*************** package body Sem_Prag is
*** 23459,23464 ****
--- 24286,24292 ----
                   and then Instantiation_Location (Sloc (N)) = No_Location
                 then
                    Error_Msg_Name_1 := Pname;
+                   Error_Msg_Code := GEC_SPARK_Mode_On_Not_Library_Level;
                    Error_Msg_N (Fix_Error (Msg_1), N);
  
                    Name_Len := 0;
*************** package body Sem_Prag is
*** 24198,24203 ****
--- 25026,25035 ----
              else
                 Check_Arg_Count (1);
  
+                if Ignore_Style_Checks_Pragmas then
+                   return;
+                end if;
+ 
                 if Nkind (A) = N_String_Literal then
                    S := Strval (A);
  
*************** package body Sem_Prag is
*** 24218,24226 ****
                          --  them in the parser.
  
                          if J = Slen then
!                            if not Ignore_Style_Checks_Pragmas then
!                               Set_Style_Check_Options (Options);
!                            end if;
  
                             exit;
                          end if;
--- 25050,25056 ----
                          --  them in the parser.
  
                          if J = Slen then
!                            Set_Style_Check_Options (Options);
  
                             exit;
                          end if;
*************** package body Sem_Prag is
*** 24231,24253 ****
  
                 elsif Nkind (A) = N_Identifier then
                    if Chars (A) = Name_All_Checks then
!                      if not Ignore_Style_Checks_Pragmas then
!                         if GNAT_Mode then
!                            Set_GNAT_Style_Check_Options;
!                         else
!                            Set_Default_Style_Check_Options;
!                         end if;
                       end if;
  
                    elsif Chars (A) = Name_On then
!                      if not Ignore_Style_Checks_Pragmas then
!                         Style_Check := True;
!                      end if;
  
                    elsif Chars (A) = Name_Off then
!                      if not Ignore_Style_Checks_Pragmas then
!                         Style_Check := False;
!                      end if;
                    end if;
                 end if;
              end if;
--- 25061,25077 ----
  
                 elsif Nkind (A) = N_Identifier then
                    if Chars (A) = Name_All_Checks then
!                      if GNAT_Mode then
!                         Set_GNAT_Style_Check_Options;
!                      else
!                         Set_Default_Style_Check_Options;
                       end if;
  
                    elsif Chars (A) = Name_On then
!                      Style_Check := True;
  
                    elsif Chars (A) = Name_Off then
!                      Style_Check := False;
                    end if;
                 end if;
              end if;
*************** package body Sem_Prag is
*** 25436,25441 ****
--- 26260,26446 ----
              Check_Valid_Configuration_Pragma;
              Use_VADS_Size := True;
  
+          ----------------------------
+          -- User_Aspect_Definition --
+          ----------------------------
+ 
+          --  pragma User_Aspect_Definition
+          --    (Identifier, {, Identifier [(Identifier {, Identifier})]});
+ 
+          when Pragma_User_Aspect_Definition =>
+             GNAT_Pragma;
+             Check_Valid_Configuration_Pragma;
+             declare
+                Arg              : Node_Id :=
+                  First (Pragma_Argument_Associations (N));
+                User_Aspect_Name : constant Name_Id := Chars (Expression (Arg));
+                Expr             : Node_Id;
+                Aspect           : Aspect_Id;
+             begin
+                if Get_Aspect_Id (User_Aspect_Name) /= No_Aspect then
+                   Error_Pragma_Arg
+                     ("User-defined aspect name for pragma% is the name " &
+                      "of an existing aspect", Arg);
+                end if;
+ 
+                Next (Arg); -- skip first argument, the name of the aspect
+ 
+                while Present (Arg) loop
+                   Expr := Expression (Arg);
+                   case Nkind (Expr) is
+                      when N_Identifier =>
+                         Aspect := Get_Aspect_Id (Chars (Expr));
+                         if Aspect in Boolean_Aspects
+                           and not Is_Representation_Aspect (Aspect)
+                         then
+                            --  If we allowed representation aspects such as
+                            --  Pack here, then User_Aspect itself would need
+                            --  to be a representation aspect.
+ 
+                            null;
+                         elsif Aspect = No_Aspect and then
+                           Present (User_Aspect_Support.Registered_UAD_Pragma
+                                      (User_Aspect_Name))
+                         then
+                            null;
+                         else
+                            Error_Pragma_Arg
+                             ("unparameterized argument for pragma% must be " &
+                              "either a Boolean-valued non-representation " &
+                              "aspect or user-defined", Arg);
+                         end if;
+                      when N_Indexed_Component =>
+                         Aspect := Get_Aspect_Id (Chars (Prefix (Expr)));
+ 
+                         --  Aspect should be an aspect that takes
+                         --  identifier arguments that do not refer to
+                         --  declarations, but rather to undeclared entities
+                         --  such as GNATProve or No_Secondary_Stack for
+                         --  which the notion of visibility does not apply.
+ 
+                         case Aspect is
+                            when Aspect_Annotate =>
+                               if List_Length (Expressions (Expr)) /= 2 then
+                                  Error_Pragma_Arg
+                                    ("Annotate argument for pragma% takes " &
+                                     "two parameters", Arg);
+                               end if;
+ 
+                            when Aspect_Local_Restrictions =>
+                               null;
+ 
+                            when others =>
+                               Error_Pragma_Arg
+                                ("parameterized argument for pragma% must be " &
+                                 "Annotate or Local_Restrictions aspect", Arg);
+                         end case;
+                      when others =>
+                         raise Program_Error; -- parsing error
+                   end case;
+                   Next (Arg);
+                end loop;
+ 
+                declare
+                   Registered : constant Node_Id :=
+                     User_Aspect_Support.Registered_UAD_Pragma
+                       (User_Aspect_Name);
+ 
+                   --  Given two User_Aspect_Definition pragmas with
+                   --  matching names for the first argument, check that
+                   --  subsequent arguments also match; complain if they differ.
+                   procedure Check_UAD_Conformance
+                     (New_Pragma, Old_Pragma : Node_Id);
+ 
+                   ---------------------------
+                   -- Check_UAD_Conformance --
+                   ---------------------------
+ 
+                   procedure Check_UAD_Conformance
+                     (New_Pragma, Old_Pragma : Node_Id)
+                   is
+                      Old_Arg : Node_Id :=
+                        First (Pragma_Argument_Associations (Old_Pragma));
+                      New_Arg : Node_Id :=
+                        First (Pragma_Argument_Associations (New_Pragma));
+                      OK : Boolean := True;
+ 
+                      function Same_Chars (Id1, Id2 : Node_Id) return Boolean
+                      is (Chars (Id1) = Chars (Id2));
+ 
+                      function Same_Identifier_List (Id1, Id2 : Node_Id)
+                        return Boolean
+                      is (if No (Id1) and No (Id2) then True
+                          elsif No (Id1) or No (Id2) then False
+                          else (Same_Chars (Id1, Id2) and then
+                                Same_Identifier_List (Next (Id1), Next (Id2))));
+                   begin
+                      --  We could skip the first argument pair since those
+                      --  are already known to match (or we wouldn't be
+                      --  calling this procedure).
+ 
+                      while Present (Old_Arg) or Present (New_Arg) loop
+                         if Present (Old_Arg) /= Present (New_Arg) then
+                            OK := False;
+                         elsif Nkind (Expression (Old_Arg)) /=
+                           Nkind (Expression (New_Arg))
+                         then
+                            OK := False;
+                         else
+                            case Nkind (Expression (Old_Arg)) is
+                               when N_Identifier =>
+                                  OK := Same_Chars (Expression (Old_Arg),
+                                                         Expression (New_Arg));
+ 
+                               when N_Indexed_Component =>
+                                  OK := Same_Chars
+                                          (Prefix (Expression (Old_Arg)),
+                                           Prefix (Expression (New_Arg)))
+                                    and then Same_Identifier_List
+                                          (First (Expressions
+                                                    (Expression (Old_Arg))),
+                                           First (Expressions
+                                                    (Expression (New_Arg))));
+ 
+                               when others =>
+                                  OK := False;
+                                  pragma Assert (False);
+                            end case;
+                         end if;
+ 
+                         if not OK then
+                            Error_Msg_Sloc := Sloc (Old_Pragma);
+                            Error_Msg_N
+                              ("Nonconforming definitions for user-defined " &
+                               "aspect #", New_Pragma);
+                            return;
+                         end if;
+ 
+                         Next (Old_Arg);
+                         Next (New_Arg);
+                      end loop;
+                   end Check_UAD_Conformance;
+                begin
+                   if Present (Registered) then
+                      --  If we have already seen a UAD pragma with this name,
+                      --  then check that the two pragmas conform (which means
+                      --  that the new pragma is redundant and can be ignored).
+ 
+                      --  ??? We could also perform a similar bind-time check,
+                      --  since it is possible that an incompatible pair of
+                      --  UAD pragmas might not be detected by this check.
+                      --  This could arise if no unit's compilation closure
+                      --  includes both of the two. The major downside of
+                      --  failing to detect this case is possible confusion
+                      --  for human readers.
+ 
+                      Check_UAD_Conformance (New_Pragma => N,
+                                             Old_Pragma => Registered);
+                   else
+                      User_Aspect_Support.Register_UAD_Pragma (N);
+                   end if;
+                end;
+             end;
+ 
           ---------------------
           -- Validity_Checks --
           ---------------------
*************** package body Sem_Prag is
*** 26077,26082 ****
--- 27082,27106 ----
        when Pragma_Exit => null;
     end Analyze_Pragma;
  
+    --------------------------------
+    -- Analyze_Pragmas_If_Present --
+    --------------------------------
+ 
+    procedure Analyze_Pragmas_If_Present (Decl : Node_Id; Id : Pragma_Id) is
+       Prag : Node_Id;
+    begin
+       if Nkind (Parent (Decl)) = N_Compilation_Unit then
+          Prag := First (Pragmas_After (Aux_Decls_Node (Parent (Decl))));
+       else
+          pragma Assert (Is_List_Member (Decl));
+          Prag := Next (Decl);
+       end if;
+ 
+       if Present (Prag) then
+          Analyze_If_Present_Internal (Prag, Id, Included => True);
+       end if;
+    end Analyze_Pragmas_If_Present;
+ 
     ---------------------------------------------
     -- Analyze_Pre_Post_Condition_In_Decl_Part --
     ---------------------------------------------
*************** package body Sem_Prag is
*** 26200,26210 ****
  
        if not In_Open_Scopes (Spec_Id) then
           Restore_Scope := True;
-          Push_Scope (Spec_Id);
  
           if Is_Generic_Subprogram (Spec_Id) then
              Install_Generic_Formals (Spec_Id);
           else
              Install_Formals (Spec_Id);
           end if;
        end if;
--- 27224,27238 ----
  
        if not In_Open_Scopes (Spec_Id) then
           Restore_Scope := True;
  
           if Is_Generic_Subprogram (Spec_Id) then
+             Push_Scope (Spec_Id);
              Install_Generic_Formals (Spec_Id);
+          elsif Is_Access_Subprogram_Type (Spec_Id) then
+             Push_Scope (Designated_Type (Spec_Id));
+             Install_Formals (Designated_Type (Spec_Id));
           else
+             Push_Scope (Spec_Id);
              Install_Formals (Spec_Id);
           end if;
        end if;
*************** package body Sem_Prag is
*** 26262,26281 ****
        Check_Postcondition_Use_In_Inlined_Subprogram (N, Spec_Id);
        Set_Is_Analyzed_Pragma (N);
  
-       --  If the subprogram is frozen then its class-wide pre- and post-
-       --  conditions have been preanalyzed (see Merge_Class_Conditions);
-       --  otherwise they must be preanalyzed now to ensure the correct
-       --  visibility of their referenced entities. This scenario occurs
-       --  when the subprogram is defined in a nested package (since the
-       --  end of the package does not cause freezing).
- 
-       if Class_Present (N)
-         and then Is_Dispatching_Operation (Spec_Id)
-         and then not Is_Frozen (Spec_Id)
-       then
-          Preanalyze_Class_Conditions (Spec_Id);
-       end if;
- 
        Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Pre_Post_Condition_In_Decl_Part;
  
--- 27290,27295 ----
*************** package body Sem_Prag is
*** 29622,29627 ****
--- 30636,30646 ----
              End_Scope;
           end if;
  
+          --  Currently it is not possible to inline Subprogram_Variant on a
+          --  subprogram subject to pragma Inline_Always.
+ 
+          Check_Postcondition_Use_In_Inlined_Subprogram (N, Spec_Id);
+ 
        --  Otherwise the pragma is illegal
  
        else
*************** package body Sem_Prag is
*** 30070,30076 ****
                                        | Name_Loop_Invariant
                                        | Name_Loop_Variant)
              then
!                case (Chars (Get_Pragma_Arg (Last (PPA)))) is
                    when Name_Check
                       | Name_On
                    =>
--- 31089,31095 ----
                                        | Name_Loop_Invariant
                                        | Name_Loop_Variant)
              then
!                case Chars (Get_Pragma_Arg (Last (PPA))) is
                    when Name_Check
                       | Name_On
                    =>
*************** package body Sem_Prag is
*** 30277,30285 ****
           --  All other cases require Part_Of
  
           else
              Error_Msg_N
!               ("indicator Part_Of is required in this context "
!                & "(SPARK RM 7.2.6(2))", Item_Id);
              Error_Msg_Name_1 := Chars (Pack_Id);
              Error_Msg_N
                ("\& is declared in the private part of package %", Item_Id);
--- 31296,31305 ----
           --  All other cases require Part_Of
  
           else
+             Error_Msg_Code := GEC_Required_Part_Of;
              Error_Msg_N
!               ("indicator Part_Of is required in this context '[[]']",
!                Item_Id);
              Error_Msg_Name_1 := Chars (Pack_Id);
              Error_Msg_N
                ("\& is declared in the private part of package %", Item_Id);
*************** package body Sem_Prag is
*** 30299,30304 ****
--- 31319,31325 ----
        if Warn_On_Redundant_Constructs
          and then Has_Pragma_Inline_Always (Spec_Id)
          and then Assertions_Enabled
+         and then not Back_End_Inlining
        then
           Error_Msg_Name_1 := Original_Aspect_Pragma_Name (Prag);
  
*************** package body Sem_Prag is
*** 31223,31229 ****
        --  to save the global references in the generic context.
  
        if From_Aspect_Specification (Prag)
!         and then (Present (Context_Id) and then Is_Generic_Unit (Context_Id))
        then
           return Corresponding_Aspect (Prag);
  
--- 32244,32252 ----
        --  to save the global references in the generic context.
  
        if From_Aspect_Specification (Prag)
!         and then Present (Context_Id)
!         and then
!           Is_Generic_Declaration_Or_Body (Unit_Declaration_Node (Context_Id))
        then
           return Corresponding_Aspect (Prag);
  
*************** package body Sem_Prag is
*** 31524,31529 ****
--- 32547,32553 ----
        Pragma_Aggregate_Individually_Assign  => 0,
        Pragma_All_Calls_Remote               => -1,
        Pragma_Allow_Integer_Address          => -1,
+       Pragma_Always_Terminates              => -1,
        Pragma_Annotate                       => 93,
        Pragma_Assert                         => -1,
        Pragma_Assert_And_Cut                 => -1,
*************** package body Sem_Prag is
*** 31581,31586 ****
--- 32605,32611 ----
        Pragma_Elaboration_Checks             =>  0,
        Pragma_Eliminate                      =>  0,
        Pragma_Enable_Atomic_Synchronization  =>  0,
+       Pragma_Exceptional_Cases              => -1,
        Pragma_Export                         => -1,
        Pragma_Export_Function                => -1,
        Pragma_Export_Object                  => -1,
*************** package body Sem_Prag is
*** 31702,31707 ****
--- 32727,32733 ----
        Pragma_Restriction_Warnings           =>  0,
        Pragma_Restrictions                   =>  0,
        Pragma_Reviewable                     => -1,
+       Pragma_Side_Effects                   =>  0,
        Pragma_Secondary_Stack_Size           => -1,
        Pragma_Share_Generic                  =>  0,
        Pragma_Shared                         =>  0,
*************** package body Sem_Prag is
*** 31747,31752 ****
--- 32773,32779 ----
        Pragma_Unsuppress                     =>  0,
        Pragma_Unused                         =>  0,
        Pragma_Use_VADS_Size                  =>  0,
+       Pragma_User_Aspect_Definition         =>  0,
        Pragma_Validity_Checks                =>  0,
        Pragma_Volatile                       =>  0,
        Pragma_Volatile_Components            =>  0,
*************** package body Sem_Prag is
*** 31929,31964 ****
     function Is_Unconstrained_Or_Tagged_Item
       (Item : Entity_Id) return Boolean
     is
-       function Has_Unconstrained_Component (Typ : Entity_Id) return Boolean;
-       --  Determine whether record type Typ has at least one unconstrained
-       --  component.
- 
-       ---------------------------------
-       -- Has_Unconstrained_Component --
-       ---------------------------------
- 
-       function Has_Unconstrained_Component (Typ : Entity_Id) return Boolean is
-          Comp : Entity_Id;
- 
-       begin
-          Comp := First_Component (Typ);
-          while Present (Comp) loop
-             if Is_Unconstrained_Or_Tagged_Item (Comp) then
-                return True;
-             end if;
- 
-             Next_Component (Comp);
-          end loop;
- 
-          return False;
-       end Has_Unconstrained_Component;
- 
-       --  Local variables
- 
        Typ : constant Entity_Id := Etype (Item);
- 
-    --  Start of processing for Is_Unconstrained_Or_Tagged_Item
- 
     begin
        if Is_Tagged_Type (Typ) then
           return True;
--- 32956,32962 ----
*************** package body Sem_Prag is
*** 31967,31977 ****
           return True;
  
        elsif Is_Record_Type (Typ) then
!          if Has_Discriminants (Typ) and then not Is_Constrained (Typ) then
!             return True;
!          else
!             return Has_Unconstrained_Component (Typ);
!          end if;
  
        elsif Is_Private_Type (Typ) and then Has_Discriminants (Typ) then
           return True;
--- 32965,32971 ----
           return True;
  
        elsif Is_Record_Type (Typ) then
!          return Has_Discriminants (Typ) and then not Is_Constrained (Typ);
  
        elsif Is_Private_Type (Typ) and then Has_Discriminants (Typ) then
           return True;
*************** package body Sem_Prag is
*** 32009,32014 ****
--- 33003,33009 ----
              | Name_Debug
              | Name_Default_Initial_Condition
              | Name_Ghost
+             | Name_Ghost_Predicate
              | Name_Initial_Condition
              | Name_Invariant
              | Name_uInvariant
*************** package body Sem_Prag is
*** 32214,32222 ****
           if Nkind (Context) = N_Package_Body then
              Spec_Id := Corresponding_Spec (Context);
  
!             if Present (Abstract_States (Spec_Id))
!               and then Contains (Abstract_States (Spec_Id), State_Id)
!             then
                 if No (Body_References (State_Id)) then
                    Set_Body_References (State_Id, New_Elmt_List);
                 end if;
--- 33209,33215 ----
           if Nkind (Context) = N_Package_Body then
              Spec_Id := Corresponding_Spec (Context);
  
!             if Contains (Abstract_States (Spec_Id), State_Id) then
                 if No (Body_References (State_Id)) then
                    Set_Body_References (State_Id, New_Elmt_List);
                 end if;
*************** package body Sem_Prag is
*** 32863,32868 ****
--- 33856,33871 ----
     --  Start of processing for Validate_Compile_Time_Warning_Errors
  
     begin
+ 
+       --  These error/warning messages were deferred because they could not be
+       --  evaluated in the front-end and they needed additional information
+       --  from the back-end. There is no reason to run these checks again if
+       --  the back-end was not activated by this point.
+ 
+       if not Generating_Code then
+          return;
+       end if;
+ 
        Expander_Mode_Save_And_Set (False);
        In_Compile_Time_Warning_Or_Error := True;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_prag.ads gcc-14.1.0/gcc/ada/sem_prag.ads
*** gcc-13.2.0/gcc/ada/sem_prag.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_prag.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Prag is
*** 38,43 ****
--- 38,44 ----
     Aspect_Specifying_Pragma : constant array (Pragma_Id) of Boolean :=
       (Pragma_Abstract_State               => True,
        Pragma_All_Calls_Remote             => True,
+       Pragma_Always_Terminates            => True,
        Pragma_Annotate                     => True,
        Pragma_Async_Readers                => True,
        Pragma_Async_Writers                => True,
*************** package Sem_Prag is
*** 59,64 ****
--- 60,66 ----
        Pragma_Effective_Reads              => True,
        Pragma_Effective_Writes             => True,
        Pragma_Elaborate_Body               => True,
+       Pragma_Exceptional_Cases            => True,
        Pragma_Export                       => True,
        Pragma_Extensions_Visible           => True,
        Pragma_Favor_Top_Level              => True,
*************** package Sem_Prag is
*** 109,114 ****
--- 111,117 ----
        Pragma_Simple_Storage_Pool_Type     => True,
        Pragma_SPARK_Mode                   => True,
        Pragma_Storage_Size                 => True,
+       Pragma_Subprogram_Variant           => True,
        Pragma_Suppress                     => True,
        Pragma_Suppress_Debug_Info          => True,
        Pragma_Suppress_Initialization      => True,
*************** package Sem_Prag is
*** 131,143 ****
     --  expression.
  
     Assertion_Expression_Pragma : constant array (Pragma_Id) of Boolean :=
!      (Pragma_Assert                    => True,
        Pragma_Assert_And_Cut            => True,
        Pragma_Assume                    => True,
        Pragma_Check                     => True,
        Pragma_Compile_Time_Error        => True,
        Pragma_Contract_Cases            => True,
        Pragma_Default_Initial_Condition => True,
        Pragma_Initial_Condition         => True,
        Pragma_Invariant                 => True,
        Pragma_Loop_Invariant            => True,
--- 134,148 ----
     --  expression.
  
     Assertion_Expression_Pragma : constant array (Pragma_Id) of Boolean :=
!      (Pragma_Always_Terminates         => True,
!       Pragma_Assert                    => True,
        Pragma_Assert_And_Cut            => True,
        Pragma_Assume                    => True,
        Pragma_Check                     => True,
        Pragma_Compile_Time_Error        => True,
        Pragma_Contract_Cases            => True,
        Pragma_Default_Initial_Condition => True,
+       Pragma_Exceptional_Cases         => True,
        Pragma_Initial_Condition         => True,
        Pragma_Invariant                 => True,
        Pragma_Loop_Invariant            => True,
*************** package Sem_Prag is
*** 207,233 ****
     --  of subprogram bodies.
  
     Pragma_Significant_To_Subprograms : constant array (Pragma_Id) of Boolean :=
!      (Pragma_Contract_Cases    => True,
!       Pragma_Depends           => True,
!       Pragma_Ghost             => True,
!       Pragma_Global            => True,
!       Pragma_Inline            => True,
!       Pragma_Inline_Always     => True,
!       Pragma_Post              => True,
!       Pragma_Post_Class        => True,
!       Pragma_Postcondition     => True,
!       Pragma_Pre               => True,
!       Pragma_Pre_Class         => True,
!       Pragma_Precondition      => True,
!       Pragma_Pure              => True,
!       Pragma_Pure_Function     => True,
!       Pragma_Refined_Depends   => True,
!       Pragma_Refined_Global    => True,
!       Pragma_Refined_Post      => True,
!       Pragma_Refined_State     => True,
!       Pragma_Volatile          => True,
!       Pragma_Volatile_Function => True,
!       others                   => False);
  
     -----------------
     -- Subprograms --
--- 212,242 ----
     --  of subprogram bodies.
  
     Pragma_Significant_To_Subprograms : constant array (Pragma_Id) of Boolean :=
!      (Pragma_Always_Terminates   => True,
!       Pragma_Contract_Cases      => True,
!       Pragma_Depends             => True,
!       Pragma_Exceptional_Cases   => True,
!       Pragma_Ghost               => True,
!       Pragma_Global              => True,
!       Pragma_Inline              => True,
!       Pragma_Inline_Always       => True,
!       Pragma_Post                => True,
!       Pragma_Post_Class          => True,
!       Pragma_Postcondition       => True,
!       Pragma_Pre                 => True,
!       Pragma_Pre_Class           => True,
!       Pragma_Precondition        => True,
!       Pragma_Pure                => True,
!       Pragma_Pure_Function       => True,
!       Pragma_Refined_Depends     => True,
!       Pragma_Refined_Global      => True,
!       Pragma_Refined_Post        => True,
!       Pragma_Refined_State       => True,
!       Pragma_Side_Effects        => True,
!       Pragma_Subprogram_Variant  => True,
!       Pragma_Volatile            => True,
!       Pragma_Volatile_Function   => True,
!       others                     => False);
  
     -----------------
     -- Subprograms --
*************** package Sem_Prag is
*** 236,241 ****
--- 245,261 ----
     procedure Analyze_Pragma (N : Node_Id);
     --  Analyze procedure for pragma reference node N
  
+    procedure Analyze_Pragmas_If_Present (Decl : Node_Id; Id : Pragma_Id);
+    --  Inspect the list of pragmas after declaration Decl and look for a pragma
+    --  that matches Id. If found, analyze the pragma.
+ 
+    procedure Analyze_Always_Terminates_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty);
+    --  Perform full analysis of delayed pragma Always_Terminates. Freeze_Id is
+    --  the entity of [generic] package body or [generic] subprogram body which
+    --  caused "freezing" of the related contract where the pragma resides.
+ 
     procedure Analyze_Contract_Cases_In_Decl_Part
       (N         : Node_Id;
        Freeze_Id : Entity_Id := Empty);
*************** package Sem_Prag is
*** 247,252 ****
--- 267,279 ----
     --  Perform full analysis of delayed pragma Depends. This routine is also
     --  capable of performing basic analysis of pragma Refined_Depends.
  
+    procedure Analyze_Exceptional_Cases_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty);
+    --  Perform full analysis of delayed pragma Exceptional_Cases. Freeze_Id is
+    --  the entity of [generic] package body or [generic] subprogram body which
+    --  caused "freezing" of the related contract where the pragma resides.
+ 
     procedure Analyze_External_Property_In_Decl_Part
       (N        : Node_Id;
        Expr_Val : out Boolean);
*************** package Sem_Prag is
*** 433,440 ****
--- 460,469 ----
       (Prag      : Node_Id;
        Do_Checks : Boolean := False) return Node_Id;
     --  Subsidiary to the analysis of pragmas
+    --    Always_Terminates
     --    Contract_Cases
     --    Depends
+    --    Exceptional_Cases
     --    Extensions_Visible
     --    Global
     --    Initializes
*************** package Sem_Prag is
*** 451,456 ****
--- 480,487 ----
     --    Refined_Global
     --    Refined_Post
     --    Refined_State
+    --    Side_Effects
+    --    Subprogram_Variant
     --    Test_Case
     --    Volatile_Function
     --  as well as attributes 'Old and 'Result. Find the declaration of the
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_res.adb gcc-14.1.0/gcc/ada/sem_res.adb
*** gcc-13.2.0/gcc/ada/sem_res.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_res.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Inline;         use Inline;
*** 46,51 ****
--- 46,52 ----
  with Itypes;         use Itypes;
  with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
+ with Local_Restrict;
  with Namet;          use Namet;
  with Nmake;          use Nmake;
  with Nlists;         use Nlists;
*************** package body Sem_Res is
*** 111,120 ****
     function Has_Applicable_User_Defined_Literal
       (N   : Node_Id;
        Typ : Entity_Id) return Boolean;
!    --  If N is a literal or a named number, check whether Typ
!    --  has a user-defined literal aspect that can apply to N.
!    --  If present, replace N with a call to the corresponding
!    --  function and return True.
  
     procedure Check_Discriminant_Use (N : Node_Id);
     --  Enforce the restrictions on the use of discriminants when constraining
--- 112,120 ----
     function Has_Applicable_User_Defined_Literal
       (N   : Node_Id;
        Typ : Entity_Id) return Boolean;
!    --  Check whether N is a literal or a named number, and whether Typ has a
!    --  user-defined literal aspect that may apply to N. In this case, replace
!    --  N with a call to the corresponding function and return True.
  
     procedure Check_Discriminant_Use (N : Node_Id);
     --  Enforce the restrictions on the use of discriminants when constraining
*************** package body Sem_Res is
*** 306,316 ****
     function Try_User_Defined_Literal
       (N   : Node_Id;
        Typ : Entity_Id) return Boolean;
!    --  If an operator node has a literal operand, check whether the type
!    --  of the context, or the type of the other operand has a user-defined
!    --  literal aspect that can be applied to the literal to resolve the node.
!    --  If such aspect exists, replace literal with a call to the
!    --  corresponding function and return True, return false otherwise.
  
     function Unique_Fixed_Point_Type (N : Node_Id) return Entity_Id;
     --  A universal_fixed expression in an universal context is unambiguous if
--- 306,325 ----
     function Try_User_Defined_Literal
       (N   : Node_Id;
        Typ : Entity_Id) return Boolean;
!    --  If the node is a literal or a named number or a conditional expression
!    --  whose dependent expressions are all literals or named numbers, and the
!    --  context type has a user-defined literal aspect, then rewrite the node
!    --  or its leaf nodes as calls to the corresponding function, which plays
!    --  the role of an implicit conversion.
! 
!    function Try_User_Defined_Literal_For_Operator
!      (N   : Node_Id;
!       Typ : Entity_Id) return Boolean;
!    --  If an operator node has a literal operand, check whether the type of the
!    --  context, or that of the other operand has a user-defined literal aspect
!    --  that can be applied to the literal to resolve the node. If such aspect
!    --  exists, replace literal with a call to the corresponding function and
!    --  return True, return false otherwise.
  
     function Unique_Fixed_Point_Type (N : Node_Id) return Entity_Id;
     --  A universal_fixed expression in an universal context is unambiguous if
*************** package body Sem_Res is
*** 492,498 ****
           Name := Make_Identifier (Loc, Chars (Callee));
  
           if Is_Derived_Type (Typ)
-            and then Is_Tagged_Type (Typ)
             and then Base_Type (Etype (Callee)) /= Base_Type (Typ)
           then
              Callee :=
--- 501,506 ----
*************** package body Sem_Res is
*** 601,606 ****
--- 609,615 ----
  
           Analyze_And_Resolve (N, Typ);
           return True;
+ 
        else
           return False;
        end if;
*************** package body Sem_Res is
*** 948,954 ****
        --------------------------------------
  
        function Invoked_With_Different_Arguments (N : Node_Id) return Boolean is
!          Subp : constant Entity_Id := Entity (Name (N));
  
           Actual : Node_Id;
           Formal : Entity_Id;
--- 957,963 ----
        --------------------------------------
  
        function Invoked_With_Different_Arguments (N : Node_Id) return Boolean is
!          Subp : constant Entity_Id := Get_Called_Entity (N);
  
           Actual : Node_Id;
           Formal : Entity_Id;
*************** package body Sem_Res is
*** 957,963 ****
           --  Determine whether the formals of the invoked subprogram are not
           --  used as actuals in the call.
  
!          Actual := First_Actual (Call);
           Formal := First_Formal (Subp);
           while Present (Actual) and then Present (Formal) loop
  
--- 966,972 ----
           --  Determine whether the formals of the invoked subprogram are not
           --  used as actuals in the call.
  
!          Actual := First_Actual (N);
           Formal := First_Formal (Subp);
           while Present (Actual) and then Present (Formal) loop
  
*************** package body Sem_Res is
*** 2484,2493 ****
           Expr_Type := Etype (Parent (N));
  
        --  If not overloaded, then we know the type, and all that needs doing
!       --  is to check that this type is compatible with the context.
  
        elsif not Is_Overloaded (N) then
!          Found := Covers (Typ, Etype (N));
           Expr_Type := Etype (N);
  
        --  In the overloaded case, we must select the interpretation that
--- 2493,2509 ----
           Expr_Type := Etype (Parent (N));
  
        --  If not overloaded, then we know the type, and all that needs doing
!       --  is to check that this type is compatible with the context. But note
!       --  that we may have an operator with no interpretation in Ada 2022 for
!       --  the case of possible user-defined literals as operands.
  
        elsif not Is_Overloaded (N) then
!          if Nkind (N) in N_Op and then No (Entity (N)) then
!             pragma Assert (Ada_Version >= Ada_2022);
!             Found := False;
!          else
!             Found := Covers (Typ, Etype (N));
!          end if;
           Expr_Type := Etype (N);
  
        --  In the overloaded case, we must select the interpretation that
*************** package body Sem_Res is
*** 2938,2944 ****
              --  view-swapping mechanism has no identifier.
  
              elsif (In_Instance or else In_Inlined_Body)
!               and then (Nkind (N) = N_Null)
                and then Is_Private_Type (Typ)
                and then Is_Access_Type (Full_View (Typ))
              then
--- 2954,2960 ----
              --  view-swapping mechanism has no identifier.
  
              elsif (In_Instance or else In_Inlined_Body)
!               and then Nkind (N) = N_Null
                and then Is_Private_Type (Typ)
                and then Is_Access_Type (Full_View (Typ))
              then
*************** package body Sem_Res is
*** 3055,3069 ****
                 end;
              end if;
  
!             --  If node is a literal and context type has a user-defined
!             --  literal aspect, rewrite node as a call to the corresponding
!             --  function, which plays the role of an implicit conversion.
  
!             if Nkind (N) in
!                 N_Numeric_Or_String_Literal | N_Identifier
!               and then Has_Applicable_User_Defined_Literal (N, Typ)
!             then
!                Analyze_And_Resolve (N, Typ);
                 return;
              end if;
  
--- 3071,3081 ----
                 end;
              end if;
  
!             --  Check whether the node is a literal or a named number or a
!             --  conditional expression whose dependent expressions are all
!             --  literals or named numbers.
  
!             if Try_User_Defined_Literal (N, Typ) then
                 return;
              end if;
  
*************** package body Sem_Res is
*** 3170,3182 ****
                            (First (Component_Associations (N))));
                    end if;
  
!                --  For an operator with no interpretation, check whether
!                --  one of its operands may be a user-defined literal.
  
!                elsif Nkind (N) in N_Op
!                  and then Try_User_Defined_Literal (N, Typ)
!                then
!                   return;
  
                 else
                    Wrong_Type (N, Typ);
--- 3182,3196 ----
                            (First (Component_Associations (N))));
                    end if;
  
!                --  For an operator with no interpretation, check whether one of
!                --  its operands may be a user-defined literal.
  
!                elsif Nkind (N) in N_Op and then No (Entity (N)) then
!                   if Try_User_Defined_Literal_For_Operator (N, Typ) then
!                      return;
!                   else
!                      Unresolved_Operator (N);
!                   end if;
  
                 else
                    Wrong_Type (N, Typ);
*************** package body Sem_Res is
*** 3606,3615 ****
        --  interpretation, but the form of the actual can only be determined
        --  once the primitive operation is identified.
  
-       procedure Flag_Effectively_Volatile_Objects (Expr : Node_Id);
-       --  Emit an error concerning the illegal usage of an effectively volatile
-       --  object for reading in interfering context (SPARK RM 7.1.3(10)).
- 
        procedure Insert_Default;
        --  If the actual is missing in a call, insert in the actuals list
        --  an instance of the default expression. The insertion is always
--- 3620,3625 ----
*************** package body Sem_Res is
*** 3860,3926 ****
           end if;
        end Check_Prefixed_Call;
  
-       ---------------------------------------
-       -- Flag_Effectively_Volatile_Objects --
-       ---------------------------------------
- 
-       procedure Flag_Effectively_Volatile_Objects (Expr : Node_Id) is
-          function Flag_Object (N : Node_Id) return Traverse_Result;
-          --  Determine whether arbitrary node N denotes an effectively volatile
-          --  object for reading and if it does, emit an error.
- 
-          -----------------
-          -- Flag_Object --
-          -----------------
- 
-          function Flag_Object (N : Node_Id) return Traverse_Result is
-             Id : Entity_Id;
- 
-          begin
-             case Nkind (N) is
-                --  Do not consider nested function calls because they have
-                --  already been processed during their own resolution.
- 
-                when N_Function_Call =>
-                   return Skip;
- 
-                when N_Identifier | N_Expanded_Name =>
-                   Id := Entity (N);
- 
-                   --  Identifiers of components and discriminants are not names
-                   --  in the sense of Ada RM 4.1. They can only occur as a
-                   --  selector_name in selected_component or as a choice in
-                   --  component_association.
- 
-                   if Present (Id)
-                     and then Is_Object (Id)
-                     and then Ekind (Id) not in E_Component | E_Discriminant
-                     and then Is_Effectively_Volatile_For_Reading (Id)
-                     and then
-                       not Is_OK_Volatile_Context (Context       => Parent (N),
-                                                   Obj_Ref       => N,
-                                                   Check_Actuals => True)
-                   then
-                      Error_Msg_N
-                        ("volatile object cannot appear in this context"
-                         & " (SPARK RM 7.1.3(10))", N);
-                   end if;
- 
-                   return Skip;
- 
-                when others =>
-                   return OK;
-             end case;
-          end Flag_Object;
- 
-          procedure Flag_Objects is new Traverse_Proc (Flag_Object);
- 
-       --  Start of processing for Flag_Effectively_Volatile_Objects
- 
-       begin
-          Flag_Objects (Expr);
-       end Flag_Effectively_Volatile_Objects;
- 
        --------------------
        -- Insert_Default --
        --------------------
--- 3870,3875 ----
*************** package body Sem_Res is
*** 4002,4014 ****
                    Analyze_And_Resolve (Actval, Base_Type (Etype (Actval)));
  
                 --  Resolve entities with their own type, which may differ from
!                --  the type of a reference in a generic context (the view
!                --  swapping mechanism did not anticipate the re-analysis of
!                --  default values in calls).
  
                 elsif Is_Entity_Name (Actval) then
                    Analyze_And_Resolve (Actval, Etype (Entity (Actval)));
  
                 else
                    Analyze_And_Resolve (Actval, Etype (Actval));
                 end if;
--- 3951,3971 ----
                    Analyze_And_Resolve (Actval, Base_Type (Etype (Actval)));
  
                 --  Resolve entities with their own type, which may differ from
!                --  the type of a reference in a generic context because of the
!                --  trick used in Save_Global_References.Set_Global_Type to set
!                --  full views forcefully, which did not anticipate the need to
!                --  re-analyze default values in calls.
  
                 elsif Is_Entity_Name (Actval) then
                    Analyze_And_Resolve (Actval, Etype (Entity (Actval)));
  
+                --  Ditto for calls whose name is an entity, for the same reason
+ 
+                elsif Nkind (Actval) = N_Function_Call
+                  and then Is_Entity_Name (Name (Actval))
+                then
+                   Analyze_And_Resolve (Actval, Etype (Entity (Name (Actval))));
+ 
                 else
                    Analyze_And_Resolve (Actval, Etype (Actval));
                 end if;
*************** package body Sem_Res is
*** 4778,4784 ****
                 --  leads to an infinite recursion.
  
                 if Predicate_Tests_On_Arguments (Nam) then
!                   Apply_Predicate_Check (A, F_Typ, Nam);
                 end if;
  
                 --  Apply required constraint checks
--- 4735,4741 ----
                 --  leads to an infinite recursion.
  
                 if Predicate_Tests_On_Arguments (Nam) then
!                   Apply_Predicate_Check (A, F_Typ, Fun => Nam);
                 end if;
  
                 --  Apply required constraint checks
*************** package body Sem_Res is
*** 5105,5126 ****
                 Check_Unset_Reference (A);
              end if;
  
-             --  The following checks are only relevant when SPARK_Mode is on as
-             --  they are not standard Ada legality rule. Internally generated
-             --  temporaries are ignored.
- 
-             if SPARK_Mode = On and then Comes_From_Source (A) then
- 
-                --  Inspect the expression and flag each effectively volatile
-                --  object for reading as illegal because it appears within
-                --  an interfering context. Note that this is usually done
-                --  in Resolve_Entity_Name, but when the effectively volatile
-                --  object for reading appears as an actual in a call, the call
-                --  must be resolved first.
- 
-                Flag_Effectively_Volatile_Objects (A);
-             end if;
- 
              --  A formal parameter of a specific tagged type whose related
              --  subprogram is subject to pragma Extensions_Visible with value
              --  "False" cannot act as an actual in a subprogram with value
--- 5062,5067 ----
*************** package body Sem_Res is
*** 5132,5138 ****
              if Is_EVF_Expression (A)
                and then Extensions_Visible_Status (Nam) =
                         Extensions_Visible_True
!               and then No (Class_Preconditions_Subprogram (Current_Scope))
              then
                 Error_Msg_N
                   ("formal parameter cannot act as actual parameter when "
--- 5073,5082 ----
              if Is_EVF_Expression (A)
                and then Extensions_Visible_Status (Nam) =
                         Extensions_Visible_True
!               and then not
!                (Is_Subprogram (Current_Scope)
!                   and then
!                 Present (Class_Preconditions_Subprogram (Current_Scope)))
              then
                 Error_Msg_N
                   ("formal parameter cannot act as actual parameter when "
*************** package body Sem_Res is
*** 5433,5439 ****
           --  of the current b-i-p implementation to unify the handling for
           --  multiple kinds of storage pools). ???
  
!          if Is_Limited_View (Desig_T)
             and then Nkind (Expression (E)) = N_Function_Call
           then
              declare
--- 5377,5383 ----
           --  of the current b-i-p implementation to unify the handling for
           --  multiple kinds of storage pools). ???
  
!          if Is_Inherently_Limited_Type (Desig_T)
             and then Nkind (Expression (E)) = N_Function_Call
           then
              declare
*************** package body Sem_Res is
*** 5698,5704 ****
  
                    if Ada_Version >= Ada_2012
                      and then Is_Limited_Type (Desig_T)
!                     and then not Is_Limited_View (Scope (Discr))
                    then
                       Error_Msg_N
                         ("only immutably limited types can have anonymous "
--- 5642,5648 ----
  
                    if Ada_Version >= Ada_2012
                      and then Is_Limited_Type (Desig_T)
!                     and then not Is_Inherently_Limited_Type (Scope (Discr))
                    then
                       Error_Msg_N
                         ("only immutably limited types can have anonymous "
*************** package body Sem_Res is
*** 5735,5753 ****
                 Set_Is_Dynamic_Coextension (N, False);
                 Set_Is_Static_Coextension  (N, False);
  
!                --  Anonymous access-to-controlled objects are not finalized on
!                --  time because this involves run-time ownership and currently
!                --  this property is not available. In rare cases the object may
!                --  not be finalized at all. Warn on potential issues involving
!                --  anonymous access-to-controlled objects.
  
                 if Ekind (Typ) = E_Anonymous_Access_Type
                   and then Is_Controlled_Active (Desig_T)
                 then
                    Error_Msg_N
!                     ("??object designated by anonymous access object might "
                       & "not be finalized until its enclosing library unit "
!                      & "goes out of scope", N);
                    Error_Msg_N ("\use named access type instead", N);
                 end if;
              end if;
--- 5679,5697 ----
                 Set_Is_Dynamic_Coextension (N, False);
                 Set_Is_Static_Coextension  (N, False);
  
!                --  Objects allocated through anonymous access types are not
!                --  finalized on time because this involves run-time ownership
!                --  and currently this property is not available. In rare cases
!                --  the object might not be finalized at all. Warn on potential
!                --  issues involving anonymous access-to-controlled types.
  
                 if Ekind (Typ) = E_Anonymous_Access_Type
                   and then Is_Controlled_Active (Desig_T)
                 then
                    Error_Msg_N
!                     ("??object designated by anonymous access value might "
                       & "not be finalized until its enclosing library unit "
!                      & "goes out of scope, or not be finalized at all", N);
                    Error_Msg_N ("\use named access type instead", N);
                 end if;
              end if;
*************** package body Sem_Res is
*** 6038,6048 ****
     --  Start of processing for Resolve_Arithmetic_Op
  
     begin
!       if Comes_From_Source (N)
!         and then Ekind (Entity (N)) = E_Function
          and then Is_Imported (Entity (N))
          and then Is_Intrinsic_Subprogram (Entity (N))
        then
           Resolve_Intrinsic_Operator (N, Typ);
           return;
  
--- 5982,5992 ----
     --  Start of processing for Resolve_Arithmetic_Op
  
     begin
!       if Ekind (Entity (N)) = E_Function
          and then Is_Imported (Entity (N))
          and then Is_Intrinsic_Subprogram (Entity (N))
        then
+          Generate_Reference (Entity (N), N);
           Resolve_Intrinsic_Operator (N, Typ);
           return;
  
*************** package body Sem_Res is
*** 6306,6316 ****
              begin
                 Determine_Range
                   (Left_Opnd (N), OK, Lo, Hi, Assume_Valid => True);
!                LNeg := (not OK) or else Lo < 0;
  
                 Determine_Range
                   (Right_Opnd (N), OK, Lo, Hi, Assume_Valid => True);
!                RNeg := (not OK) or else Lo < 0;
  
                 --  Check if we will be generating conditionals. There are two
                 --  cases where that can happen, first for REM, the only case
--- 6250,6260 ----
              begin
                 Determine_Range
                   (Left_Opnd (N), OK, Lo, Hi, Assume_Valid => True);
!                LNeg := not OK or else Lo < 0;
  
                 Determine_Range
                   (Right_Opnd (N), OK, Lo, Hi, Assume_Valid => True);
!                RNeg := not OK or else Lo < 0;
  
                 --  Check if we will be generating conditionals. There are two
                 --  cases where that can happen, first for REM, the only case
*************** package body Sem_Res is
*** 6565,6570 ****
--- 6509,6517 ----
        if Is_Entity_Name (Subp)
          and then not In_Spec_Expression
          and then not Is_Expression_Function_Or_Completion (Current_Scope)
+         and then not (Chars (Current_Scope) = Name_uWrapped_Statements
+                        and then Is_Expression_Function_Or_Completion
+                                   (Scope (Current_Scope)))
          and then
            (not Is_Expression_Function_Or_Completion (Entity (Subp))
              or else Expander_Active)
*************** package body Sem_Res is
*** 6763,6768 ****
--- 6710,6722 ----
           Check_Ghost_Context (Nam, N);
        end if;
  
+       if Is_Entity_Name (Subp) then
+          Local_Restrict.Check_Call
+            (Call => N, Callee => Ultimate_Alias (Nam));
+       else
+          Local_Restrict.Check_Call (Call => N);
+       end if;
+ 
        --  If we are calling the current subprogram from immediately within its
        --  body, then that is the case where we can sometimes detect cases of
        --  infinite recursion statically. Do not try this in case restriction
*************** package body Sem_Res is
*** 6910,6974 ****
           return;
        end if;
  
!       --  Create a transient scope if the resulting type requires it
  
        --  There are several notable exceptions:
  
!       --  a) In init procs, the transient scope overhead is not needed, and is
!       --  even incorrect when the call is a nested initialization call for a
!       --  component whose expansion may generate adjust calls. However, if the
!       --  call is some other procedure call within an initialization procedure
!       --  (for example a call to Create_Task in the init_proc of the task
!       --  run-time record) a transient scope must be created around this call.
! 
!       --  b) Enumeration literal pseudo-calls need no transient scope
! 
!       --  c) Intrinsic subprograms (Unchecked_Conversion and source info
        --  functions) do not use the secondary stack even though the return
        --  type may be unconstrained.
  
!       --  d) Calls to a build-in-place function, since such functions may
        --  allocate their result directly in a target object, and cases where
        --  the result does get allocated in the secondary stack are checked for
        --  within the specialized Exp_Ch6 procedures for expanding those
        --  build-in-place calls.
  
!       --  e) Calls to inlinable expression functions do not use the secondary
        --  stack (since the call will be replaced by its returned object).
  
!       --  f) If the subprogram is marked Inline_Always, then even if it returns
        --  an unconstrained type the call does not require use of the secondary
        --  stack. However, inlining will only take place if the body to inline
        --  is already present. It may not be available if e.g. the subprogram is
        --  declared in a child instance.
  
!       --  g) If the subprogram is a static expression function and the call is
        --  a static call (the actuals are all static expressions), then we never
        --  want to create a transient scope (this could occur in the case of a
        --  static string-returning call).
  
!       if Is_Inlined (Nam)
!         and then Has_Pragma_Inline (Nam)
!         and then Nkind (Unit_Declaration_Node (Nam)) = N_Subprogram_Declaration
!         and then Present (Body_To_Inline (Unit_Declaration_Node (Nam)))
!       then
!          null;
! 
!       elsif Ekind (Nam) = E_Enumeration_Literal
!         or else Is_Build_In_Place_Function (Nam)
!         or else Is_Intrinsic_Subprogram (Nam)
!         or else Is_Inlinable_Expression_Function (Nam)
!         or else Is_Static_Function_Call (N)
!       then
!          null;
! 
!       --  A return statement from an ignored Ghost function does not use the
!       --  secondary stack (or any other one).
  
!       elsif Expander_Active
          and then Ekind (Nam) in E_Function | E_Subprogram_Type
          and then Requires_Transient_Scope (Etype (Nam))
          and then not Is_Ignored_Ghost_Entity (Nam)
        then
           Establish_Transient_Scope (N, Needs_Secondary_Stack (Etype (Nam)));
  
--- 6864,6925 ----
           return;
        end if;
  
!       --  Create a transient scope if the expander is active and the resulting
!       --  type requires it.
  
        --  There are several notable exceptions:
  
!       --  a) Intrinsic subprograms (Unchecked_Conversion and source info
        --  functions) do not use the secondary stack even though the return
        --  type may be unconstrained.
  
!       --  b) Subprograms that are ignored ghost entities do not return anything
! 
!       --  c) Calls to a build-in-place function, since such functions may
        --  allocate their result directly in a target object, and cases where
        --  the result does get allocated in the secondary stack are checked for
        --  within the specialized Exp_Ch6 procedures for expanding those
        --  build-in-place calls.
  
!       --  d) Calls to inlinable expression functions do not use the secondary
        --  stack (since the call will be replaced by its returned object).
  
!       --  e) If the subprogram is marked Inline, then even if it returns
        --  an unconstrained type the call does not require use of the secondary
        --  stack. However, inlining will only take place if the body to inline
        --  is already present. It may not be available if e.g. the subprogram is
        --  declared in a child instance.
  
!       --  f) If the subprogram is a static expression function and the call is
        --  a static call (the actuals are all static expressions), then we never
        --  want to create a transient scope (this could occur in the case of a
        --  static string-returning call).
  
!       --  g) If the call is the expression of a simple return statement that
!       --  returns on the same stack, since it will be handled as a tail call
!       --  by Expand_Simple_Function_Return.
  
!       if Expander_Active
          and then Ekind (Nam) in E_Function | E_Subprogram_Type
          and then Requires_Transient_Scope (Etype (Nam))
+         and then not Is_Intrinsic_Subprogram (Nam)
          and then not Is_Ignored_Ghost_Entity (Nam)
+         and then not Is_Build_In_Place_Function (Nam)
+         and then not Is_Inlinable_Expression_Function (Nam)
+         and then not (Is_Inlined (Nam)
+                        and then Has_Pragma_Inline (Nam)
+                        and then Nkind (Unit_Declaration_Node (Nam)) =
+                                                        N_Subprogram_Declaration
+                        and then
+                         Present (Body_To_Inline (Unit_Declaration_Node (Nam))))
+         and then not Is_Static_Function_Call (N)
+         and then not (Nkind (Parent (N)) = N_Simple_Return_Statement
+                        and then
+                          Needs_Secondary_Stack
+                            (Etype
+                              (Return_Applies_To
+                                (Return_Statement_Entity (Parent (N))))) =
+                          Needs_Secondary_Stack (Etype (Nam)))
        then
           Establish_Transient_Scope (N, Needs_Secondary_Stack (Etype (Nam)));
  
*************** package body Sem_Res is
*** 7242,7248 ****
        --  In GNATprove mode, expansion is disabled, but we want to inline some
        --  subprograms to facilitate formal verification. Indirect calls through
        --  a subprogram type or within a generic cannot be inlined. Inlining is
!       --  performed only for calls subject to SPARK_Mode on.
  
        elsif GNATprove_Mode
          and then SPARK_Mode = On
--- 7193,7199 ----
        --  In GNATprove mode, expansion is disabled, but we want to inline some
        --  subprograms to facilitate formal verification. Indirect calls through
        --  a subprogram type or within a generic cannot be inlined. Inlining is
!       --  performed only for calls subject to SPARK_Mode => On.
  
        elsif GNATprove_Mode
          and then SPARK_Mode = On
*************** package body Sem_Res is
*** 7255,7264 ****
           if Nkind (Nam_Decl) = N_Subprogram_Declaration then
              Body_Id := Corresponding_Body (Nam_Decl);
  
!             --  Nothing to do if the subprogram is not eligible for inlining in
!             --  GNATprove mode, or inlining is disabled with switch -gnatdm
  
!             if not Is_Inlined_Always (Nam_UA)
                or else not Can_Be_Inlined_In_GNATprove_Mode (Nam_UA, Body_Id)
                or else Debug_Flag_M
              then
--- 7206,7218 ----
           if Nkind (Nam_Decl) = N_Subprogram_Declaration then
              Body_Id := Corresponding_Body (Nam_Decl);
  
!             --  Nothing to do if the subprogram is not inlined (because it is
!             --  recursive, directly or indirectly), or is not eligible for
!             --  inlining GNATprove mode (because of properties of the
!             --  subprogram itself), or inlining has been disabled with switch
!             --  -gnatdm.
  
!             if not Is_Inlined (Nam_UA)
                or else not Can_Be_Inlined_In_GNATprove_Mode (Nam_UA, Body_Id)
                or else Debug_Flag_M
              then
*************** package body Sem_Res is
*** 7280,7289 ****
                 Cannot_Inline
                   ("cannot inline & (in default expression)?", N, Nam_UA);
  
!             --  Calls cannot be inlined inside quantified expressions, which
!             --  are left in expression form for GNATprove. Since these
!             --  expressions are only preanalyzed, we need to detect the failure
!             --  to inline outside of the case for Full_Analysis below.
  
              elsif In_Quantified_Expression (N) then
                 Cannot_Inline
--- 7234,7252 ----
                 Cannot_Inline
                   ("cannot inline & (in default expression)?", N, Nam_UA);
  
!             --  Calls cannot be inlined inside potentially unevaluated
!             --  expressions, as this would create complex actions inside
!             --  expressions, that are not handled by GNATprove.
! 
!             elsif Is_Potentially_Unevaluated (N) then
!                Cannot_Inline
!                   ("cannot inline & (in potentially unevaluated context)?",
!                    N, Nam_UA);
! 
!             --  Calls are not inlined inside the loop_parameter_specification
!             --  or iterator_specification of the quantified expression, as they
!             --  are only preanalyzed. Calls in the predicate part are handled
!             --  by the previous test on potentially unevaluated expressions.
  
              elsif In_Quantified_Expression (N) then
                 Cannot_Inline
*************** package body Sem_Res is
*** 7307,7336 ****
                       or else Is_Invariant_Procedure (Current_Subprogram)
                       or else Is_DIC_Procedure (Current_Subprogram))
                 then
!                   if Present (Body_Id)
!                     and then Present (Body_To_Inline (Nam_Decl))
!                   then
                       if Is_Predicate_Function (Current_Subprogram) then
                          Cannot_Inline
                            ("cannot inline & (inside predicate)?",
!                            N, Nam_UA);
  
                       elsif Is_Invariant_Procedure (Current_Subprogram) then
                          Cannot_Inline
                            ("cannot inline & (inside invariant)?",
!                            N, Nam_UA);
  
                       elsif Is_DIC_Procedure (Current_Subprogram) then
                          Cannot_Inline
                          ("cannot inline & (inside Default_Initial_Condition)?",
!                          N, Nam_UA);
  
                       else
                          Cannot_Inline
                            ("cannot inline & (inside expression function)?",
!                            N, Nam_UA);
                       end if;
!                   end if;
  
                 --  Cannot inline a call inside the definition of a record type,
                 --  typically inside the constraints of the type. Calls in
--- 7270,7301 ----
                       or else Is_Invariant_Procedure (Current_Subprogram)
                       or else Is_DIC_Procedure (Current_Subprogram))
                 then
!                   declare
!                      Issue_Msg : constant Boolean :=
!                        Present (Body_Id)
!                          and then Present (Body_To_Inline (Nam_Decl));
!                   begin
                       if Is_Predicate_Function (Current_Subprogram) then
                          Cannot_Inline
                            ("cannot inline & (inside predicate)?",
!                            N, Nam_UA, Suppress_Info => not Issue_Msg);
  
                       elsif Is_Invariant_Procedure (Current_Subprogram) then
                          Cannot_Inline
                            ("cannot inline & (inside invariant)?",
!                            N, Nam_UA, Suppress_Info => not Issue_Msg);
  
                       elsif Is_DIC_Procedure (Current_Subprogram) then
                          Cannot_Inline
                          ("cannot inline & (inside Default_Initial_Condition)?",
!                          N, Nam_UA, Suppress_Info => not Issue_Msg);
  
                       else
                          Cannot_Inline
                            ("cannot inline & (inside expression function)?",
!                            N, Nam_UA, Suppress_Info => not Issue_Msg);
                       end if;
!                   end;
  
                 --  Cannot inline a call inside the definition of a record type,
                 --  typically inside the constraints of the type. Calls in
*************** package body Sem_Res is
*** 7355,7369 ****
                 elsif No (Body_To_Inline (Nam_Decl)) then
                    null;
  
-                --  Calls cannot be inlined inside potentially unevaluated
-                --  expressions, as this would create complex actions inside
-                --  expressions, that are not handled by GNATprove.
- 
-                elsif Is_Potentially_Unevaluated (N) then
-                   Cannot_Inline
-                     ("cannot inline & (in potentially unevaluated context)?",
-                      N, Nam_UA);
- 
                 --  Calls cannot be inlined inside the conditions of while
                 --  loops, as this would create complex actions inside
                 --  the condition, that are not handled by GNATprove.
--- 7320,7325 ----
*************** package body Sem_Res is
*** 7584,7589 ****
--- 7540,7546 ----
  
        Resolve (L, T);
        Resolve (R, T);
+       Set_Compare_Type (N, T);
        Check_Unset_Reference (L);
        Check_Unset_Reference (R);
        Generate_Operator_Reference (N, T);
*************** package body Sem_Res is
*** 8023,8046 ****
  
        if Comes_From_Source (N) then
  
!          --  The following checks are only relevant when SPARK_Mode is on as
           --  they are not standard Ada legality rules.
  
           if SPARK_Mode = On then
  
-             --  An effectively volatile object for reading must appear in
-             --  non-interfering context (SPARK RM 7.1.3(10)).
- 
-             if Is_Object (E)
-               and then Is_Effectively_Volatile_For_Reading (E)
-               and then
-                 not Is_OK_Volatile_Context (Par, N, Check_Actuals => False)
-             then
-                SPARK_Msg_N
-                  ("volatile object cannot appear in this context "
-                   & "(SPARK RM 7.1.3(10))", N);
-             end if;
- 
              --  Check for possible elaboration issues with respect to reads of
              --  variables. The act of renaming the variable is not considered a
              --  read as it simply establishes an alias.
--- 7980,7990 ----
  
        if Comes_From_Source (N) then
  
!          --  The following checks are only relevant when SPARK_Mode is On as
           --  they are not standard Ada legality rules.
  
           if SPARK_Mode = On then
  
              --  Check for possible elaboration issues with respect to reads of
              --  variables. The act of renaming the variable is not considered a
              --  read as it simply establishes an alias.
*************** package body Sem_Res is
*** 8068,8080 ****
           if Is_Ghost_Entity (E) then
              Check_Ghost_Context (E, N);
           end if;
-       end if;
  
!       --  We may be resolving an entity within expanded code, so a reference to
!       --  an entity should be ignored when calculating effective use clauses to
!       --  avoid inappropriate marking.
  
-       if Comes_From_Source (N) then
           Mark_Use_Clauses (E);
        end if;
     end Resolve_Entity_Name;
--- 8012,8022 ----
           if Is_Ghost_Entity (E) then
              Check_Ghost_Context (E, N);
           end if;
  
!          --  We may be resolving an entity within expanded code, so a reference
!          --  to an entity should be ignored when calculating effective use
!          --  clauses to avoid inappropriate marking.
  
           Mark_Use_Clauses (E);
        end if;
     end Resolve_Entity_Name;
*************** package body Sem_Res is
*** 8994,8999 ****
--- 8936,8942 ----
  
           Resolve (L, T);
           Resolve (R, T);
+          Set_Compare_Type (N, T);
  
           --  AI12-0413: user-defined primitive equality of an untagged record
           --  type hides the predefined equality operator, including within a
*************** package body Sem_Res is
*** 9503,9519 ****
        Desig_Typ : Entity_Id;
  
     begin
-       --  In an instance the proper view may not always be correct for
-       --  private types, see e.g. Sem_Type.Covers for similar handling.
- 
-       if Is_Private_Type (Etype (P))
-         and then Present (Full_View (Etype (P)))
-         and then Is_Access_Type (Full_View (Etype (P)))
-         and then In_Instance
-       then
-          Set_Etype (P, Full_View (Etype (P)));
-       end if;
- 
        if Is_Access_Type (Etype (P)) then
           Desig_Typ := Implicitly_Designated_Type (Etype (P));
           Insert_Explicit_Dereference (P);
--- 9446,9451 ----
*************** package body Sem_Res is
*** 9713,9722 ****
     --------------------------------
  
     procedure Resolve_Intrinsic_Operator  (N : Node_Id; Typ : Entity_Id) is
!       Btyp : constant Entity_Id := Base_Type (Underlying_Type (Typ));
!       Op   : Entity_Id;
!       Arg1 : Node_Id;
!       Arg2 : Node_Id;
  
        function Convert_Operand (Opnd : Node_Id) return Node_Id;
        --  If the operand is a literal, it cannot be the expression in a
--- 9645,9663 ----
     --------------------------------
  
     procedure Resolve_Intrinsic_Operator  (N : Node_Id; Typ : Entity_Id) is
!       Is_Stoele_Mod : constant Boolean :=
!         Nkind (N) = N_Op_Mod
!           and then Is_RTE (First_Subtype (Typ), RE_Storage_Offset)
!           and then Is_RTE (Etype (Left_Opnd (N)), RE_Address);
!       --  True if this is the special mod operator of System.Storage_Elements,
!       --  which needs to be resolved to the type of the left operand in order
!       --  to implement the correct semantics.
! 
!       Btyp : constant Entity_Id :=
!         (if Is_Stoele_Mod
!           then Implementation_Base_Type (Etype (Left_Opnd (N)))
!           else Implementation_Base_Type (Typ));
!       --  The base type to be used for the operator
  
        function Convert_Operand (Opnd : Node_Id) return Node_Id;
        --  If the operand is a literal, it cannot be the expression in a
*************** package body Sem_Res is
*** 9745,9750 ****
--- 9686,9697 ----
           return Res;
        end Convert_Operand;
  
+       --  Local variables
+ 
+       Arg1 : Node_Id;
+       Arg2 : Node_Id;
+       Op   : Entity_Id;
+ 
     --  Start of processing for Resolve_Intrinsic_Operator
  
     begin
*************** package body Sem_Res is
*** 9766,9776 ****
  
        --  If the result or operand types are private, rewrite with unchecked
        --  conversions on the operands and the result, to expose the proper
!       --  underlying numeric type.
  
        if Is_Private_Type (Typ)
          or else Is_Private_Type (Etype (Left_Opnd (N)))
          or else Is_Private_Type (Etype (Right_Opnd (N)))
        then
           Arg1 := Convert_Operand (Left_Opnd (N));
  
--- 9713,9725 ----
  
        --  If the result or operand types are private, rewrite with unchecked
        --  conversions on the operands and the result, to expose the proper
!       --  underlying numeric type. Likewise for the special mod operator of
!       --  System.Storage_Elements, to expose the modified base type.
  
        if Is_Private_Type (Typ)
          or else Is_Private_Type (Etype (Left_Opnd (N)))
          or else Is_Private_Type (Etype (Right_Opnd (N)))
+         or else Is_Stoele_Mod
        then
           Arg1 := Convert_Operand (Left_Opnd (N));
  
*************** package body Sem_Res is
*** 10644,10654 ****
           end if;
        end if;
  
!       if Comes_From_Source (N)
!         and then Ekind (Entity (N)) = E_Function
          and then Is_Imported (Entity (N))
          and then Is_Intrinsic_Subprogram (Entity (N))
        then
           Resolve_Intrinsic_Operator (N, Typ);
           return;
        end if;
--- 10593,10603 ----
           end if;
        end if;
  
!       if Ekind (Entity (N)) = E_Function
          and then Is_Imported (Entity (N))
          and then Is_Intrinsic_Subprogram (Entity (N))
        then
+          Generate_Reference (Entity (N), N);
           Resolve_Intrinsic_Operator (N, Typ);
           return;
        end if;
*************** package body Sem_Res is
*** 10917,10930 ****
              if not Parentheses_Found
                and then Comes_From_Source (Par)
                and then
!                 ((Nkind (Par) in N_Modular_Type_Definition
!                                | N_Floating_Point_Definition
!                                | N_Ordinary_Fixed_Point_Definition
!                                | N_Decimal_Fixed_Point_Definition
!                                | N_Extension_Aggregate
!                                | N_Discriminant_Specification
!                                | N_Parameter_Specification
!                                | N_Formal_Object_Declaration)
  
                    or else (Nkind (Par) = N_Object_Declaration
                      and then
--- 10866,10879 ----
              if not Parentheses_Found
                and then Comes_From_Source (Par)
                and then
!                 (Nkind (Par) in N_Modular_Type_Definition
!                               | N_Floating_Point_Definition
!                               | N_Ordinary_Fixed_Point_Definition
!                               | N_Decimal_Fixed_Point_Definition
!                               | N_Extension_Aggregate
!                               | N_Discriminant_Specification
!                               | N_Parameter_Specification
!                               | N_Formal_Object_Declaration
  
                    or else (Nkind (Par) = N_Object_Declaration
                      and then
*************** package body Sem_Res is
*** 12337,12342 ****
--- 12286,12303 ----
              elsif Orig_T = Base_Type (Standard_Long_Long_Integer) then
                 null;
  
+             --  Do not warn on conversion to class-wide type on helpers of
+             --  class-wide preconditions because in this context the warning
+             --  would be spurious (since the class-wide precondition has been
+             --  installed in the return statement of the helper, which has a
+             --  class-wide formal type instead of a regular tagged type).
+ 
+             elsif Is_Class_Wide_Type (Orig_T)
+               and then Is_Subprogram_Or_Generic_Subprogram (Current_Scope)
+               and then Present (Class_Preconditions_Subprogram (Current_Scope))
+             then
+                null;
+ 
              --  Here we give the redundant conversion warning. If it is an
              --  entity, give the name of the entity in the message. If not,
              --  just mention the expression.
*************** package body Sem_Res is
*** 12539,12544 ****
--- 12500,12506 ----
        if Warn_On_Suspicious_Modulus_Value
          and then Nkind (N) = N_Op_Minus
          and then Nkind (R) = N_Integer_Literal
+         and then Comes_From_Source (R)
          and then Is_Modular_Integer_Type (B_Typ)
          and then Nkind (Parent (N)) not in N_Qualified_Expression
                                           | N_Type_Conversion
*************** package body Sem_Res is
*** 13202,13237 ****
        Typ : Entity_Id) return Boolean
     is
     begin
!       if Nkind (N) in N_Op_Add | N_Op_Divide | N_Op_Mod | N_Op_Multiply
!         | N_Op_Rem | N_Op_Subtract
!       then
  
!          --  Both operands must have the same type as the context.
           --  (ignoring for now fixed-point and exponentiation ops).
  
!          if Has_Applicable_User_Defined_Literal (Right_Opnd (N), Typ) then
              Resolve (Left_Opnd (N), Typ);
              Analyze_And_Resolve (N, Typ);
              return True;
-          end if;
  
!          if
!            Has_Applicable_User_Defined_Literal (Left_Opnd (N), Typ)
           then
              Resolve (Right_Opnd (N), Typ);
              Analyze_And_Resolve (N, Typ);
              return True;
- 
-          else
-             return False;
           end if;
  
        elsif Nkind (N) in N_Binary_Op then
!          --  For other operators the context does not impose a type on
           --  the operands, but their types must match.
  
!          if (Nkind (Left_Opnd (N))
!            not in N_Integer_Literal | N_String_Literal | N_Real_Literal)
           and then
             Has_Applicable_User_Defined_Literal
               (Right_Opnd (N), Etype (Left_Opnd (N)))
--- 13164,13274 ----
        Typ : Entity_Id) return Boolean
     is
     begin
!       if Has_Applicable_User_Defined_Literal (N, Typ) then
!          return True;
  
!       elsif Nkind (N) = N_If_Expression then
!          --  Both dependent expressions must have the same type as the context
! 
!          declare
!             Condition : constant Node_Id := First (Expressions (N));
!             Then_Expr : constant Node_Id := Next (Condition);
!             Else_Expr : constant Node_Id := Next (Then_Expr);
! 
!          begin
!             if Has_Applicable_User_Defined_Literal (Then_Expr, Typ) then
!                Resolve (Else_Expr, Typ);
!                Analyze_And_Resolve (N, Typ);
!                return True;
! 
!             elsif Has_Applicable_User_Defined_Literal (Else_Expr, Typ) then
!                Resolve (Then_Expr, Typ);
!                Analyze_And_Resolve (N, Typ);
!                return True;
!             end if;
!          end;
! 
!       elsif Nkind (N) = N_Case_Expression then
!          --  All dependent expressions must have the same type as the context
! 
!          declare
!             Alt : Node_Id;
! 
!          begin
!             Alt := First (Alternatives (N));
! 
!             while Present (Alt) loop
!                if Has_Applicable_User_Defined_Literal (Expression (Alt), Typ)
!                then
!                   declare
!                      Other_Alt : Node_Id;
! 
!                   begin
!                      Other_Alt := First (Alternatives (N));
! 
!                      while Present (Other_Alt) loop
!                         if Other_Alt /= Alt then
!                            Resolve (Expression (Other_Alt), Typ);
!                         end if;
! 
!                         Next (Other_Alt);
!                      end loop;
! 
!                      Analyze_And_Resolve (N, Typ);
!                      return True;
!                   end;
!                end if;
! 
!                Next (Alt);
!             end loop;
!          end;
!       end if;
! 
!       return False;
!    end Try_User_Defined_Literal;
! 
!    -------------------------------------------
!    -- Try_User_Defined_Literal_For_Operator --
!    -------------------------------------------
! 
!    function Try_User_Defined_Literal_For_Operator
!      (N   : Node_Id;
!       Typ : Entity_Id) return Boolean
!    is
!    begin
!       if Nkind (N) in N_Op_Add
!                     | N_Op_Divide
!                     | N_Op_Mod
!                     | N_Op_Multiply
!                     | N_Op_Rem
!                     | N_Op_Subtract
!       then
!          --  Both operands must have the same type as the context
           --  (ignoring for now fixed-point and exponentiation ops).
  
!          if Has_Applicable_User_Defined_Literal (Right_Opnd (N), Typ)
!            or else (Nkind (Left_Opnd (N)) in N_Op
!                      and then Covers (Typ, Etype (Right_Opnd (N))))
!          then
              Resolve (Left_Opnd (N), Typ);
              Analyze_And_Resolve (N, Typ);
              return True;
  
!          elsif Has_Applicable_User_Defined_Literal (Left_Opnd (N), Typ)
!            or else (Nkind (Right_Opnd (N)) in N_Op
!                      and then Covers (Typ, Etype (Left_Opnd (N))))
           then
              Resolve (Right_Opnd (N), Typ);
              Analyze_And_Resolve (N, Typ);
              return True;
           end if;
  
        elsif Nkind (N) in N_Binary_Op then
!          --  For other binary operators the context does not impose a type on
           --  the operands, but their types must match.
  
!          if Nkind (Left_Opnd (N))
!            not in N_Integer_Literal | N_String_Literal | N_Real_Literal
           and then
             Has_Applicable_User_Defined_Literal
               (Right_Opnd (N), Etype (Left_Opnd (N)))
*************** package body Sem_Res is
*** 13239,13267 ****
              Analyze_And_Resolve (N, Typ);
              return True;
  
!          elsif (Nkind (Right_Opnd (N))
!            not in N_Integer_Literal | N_String_Literal | N_Real_Literal)
           and then
             Has_Applicable_User_Defined_Literal
               (Left_Opnd (N), Etype (Right_Opnd (N)))
           then
              Analyze_And_Resolve (N, Typ);
              return True;
-          else
-             return False;
           end if;
  
        elsif Nkind (N) in N_Unary_Op
!         and then
!           Has_Applicable_User_Defined_Literal (Right_Opnd (N), Typ)
        then
           Analyze_And_Resolve (N, Typ);
           return True;
- 
-       else   --  Other operators
-          return False;
        end if;
!    end Try_User_Defined_Literal;
  
     -----------------------------
     -- Unique_Fixed_Point_Type --
--- 13276,13300 ----
              Analyze_And_Resolve (N, Typ);
              return True;
  
!          elsif Nkind (Right_Opnd (N))
!            not in N_Integer_Literal | N_String_Literal | N_Real_Literal
           and then
             Has_Applicable_User_Defined_Literal
               (Left_Opnd (N), Etype (Right_Opnd (N)))
           then
              Analyze_And_Resolve (N, Typ);
              return True;
           end if;
  
        elsif Nkind (N) in N_Unary_Op
!         and then Has_Applicable_User_Defined_Literal (Right_Opnd (N), Typ)
        then
           Analyze_And_Resolve (N, Typ);
           return True;
        end if;
! 
!       return False;
!    end Try_User_Defined_Literal_For_Operator;
  
     -----------------------------
     -- Unique_Fixed_Point_Type --
*************** package body Sem_Res is
*** 13544,13551 ****
  
           --  return False if Expr not of form <prefix>.all.Some_Component
  
!          if (Nkind (Expr) /= N_Selected_Component)
!            or else (Nkind (Prefix (Expr)) /= N_Explicit_Dereference)
           then
              --  conditional expressions, declare expressions ???
              return False;
--- 13577,13584 ----
  
           --  return False if Expr not of form <prefix>.all.Some_Component
  
!          if Nkind (Expr) /= N_Selected_Component
!            or else Nkind (Prefix (Expr)) /= N_Explicit_Dereference
           then
              --  conditional expressions, declare expressions ???
              return False;
*************** package body Sem_Res is
*** 13629,13636 ****
  
                 if not (Is_Integer_Type (Target_Index_Type)
                         and then Is_Integer_Type (Opnd_Index_Type))
!                  and then (Root_Type (Target_Index_Type)
!                            /= Root_Type (Opnd_Index_Type))
                 then
                    Conversion_Error_N
                      ("incompatible index types for array conversion",
--- 13662,13669 ----
  
                 if not (Is_Integer_Type (Target_Index_Type)
                         and then Is_Integer_Type (Opnd_Index_Type))
!                  and then Root_Type (Target_Index_Type)
!                           /= Root_Type (Opnd_Index_Type)
                 then
                    Conversion_Error_N
                      ("incompatible index types for array conversion",
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_res.ads gcc-14.1.0/gcc/ada/sem_res.ads
*** gcc-13.2.0/gcc/ada/sem_res.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_res.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_scil.adb gcc-14.1.0/gcc/ada/sem_scil.adb
*** gcc-13.2.0/gcc/ada/sem_scil.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_scil.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_SCIL is
*** 88,101 ****
              --  object or parameter declaration. Interface types are still
              --  unsupported.
  
!             elsif Nkind (Ctrl_Tag) in
!                     N_Object_Declaration | N_Parameter_Specification
              then
                 Ctrl_Typ := Etype (Defining_Identifier (Ctrl_Tag));
  
                 --  Interface types are unsupported.
  
                 if Is_Interface (Ctrl_Typ)
                   or else Is_RTE (Ctrl_Typ, RE_Interface_Tag)
                   or else (Is_Access_Type (Ctrl_Typ)
                             and then
--- 88,104 ----
              --  object or parameter declaration. Interface types are still
              --  unsupported.
  
!             elsif Nkind (Ctrl_Tag) in N_Object_Renaming_Declaration
!                                     | N_Object_Declaration
!                                     | N_Parameter_Specification
!                                     | N_Discriminant_Specification
              then
                 Ctrl_Typ := Etype (Defining_Identifier (Ctrl_Tag));
  
                 --  Interface types are unsupported.
  
                 if Is_Interface (Ctrl_Typ)
+                  or else From_Limited_With (Ctrl_Typ)
                   or else Is_RTE (Ctrl_Typ, RE_Interface_Tag)
                   or else (Is_Access_Type (Ctrl_Typ)
                             and then
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_scil.ads gcc-14.1.0/gcc/ada/sem_scil.ads
*** gcc-13.2.0/gcc/ada/sem_scil.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_scil.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_smem.adb gcc-14.1.0/gcc/ada/sem_smem.adb
*** gcc-13.2.0/gcc/ada/sem_smem.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_smem.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_smem.ads gcc-14.1.0/gcc/ada/sem_smem.ads
*** gcc-13.2.0/gcc/ada/sem_smem.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_smem.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_type.adb gcc-14.1.0/gcc/ada/sem_type.adb
*** gcc-13.2.0/gcc/ada/sem_type.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_type.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Type is
*** 884,889 ****
--- 884,899 ----
              end;
           end if;
  
+       --  This test may seem to be redundant with the above one, but it catches
+       --  peculiar cases where a private type declared in a package is used in
+       --  a generic construct declared in another package, and the body of the
+       --  former package contains an instantiation of the generic construct on
+       --  an object whose type is a subtype of the private type; in this case,
+       --  the subtype is not private but the type is private in the instance.
+ 
+       elsif Is_Subtype_Of (T1 => T2, T2 => T1) then
+          return True;
+ 
        --  Literals are compatible with types in a given "class"
  
        elsif     (T2 = Universal_Integer and then Is_Integer_Type (T1))
*************** package body Sem_Type is
*** 1033,1040 ****
          and then Ekind (BT1) = E_General_Access_Type
          and then Ekind (BT2) = E_Anonymous_Access_Type
          and then Covers (Designated_Type (T1), Designated_Type (T2))
!         and then (Is_Class_Wide_Type (Designated_Type (T1)) >=
!                   Is_Class_Wide_Type (Designated_Type (T2)))
        then
           return True;
  
--- 1043,1050 ----
          and then Ekind (BT1) = E_General_Access_Type
          and then Ekind (BT2) = E_Anonymous_Access_Type
          and then Covers (Designated_Type (T1), Designated_Type (T2))
!         and then Is_Class_Wide_Type (Designated_Type (T1)) >=
!                  Is_Class_Wide_Type (Designated_Type (T2))
        then
           return True;
  
*************** package body Sem_Type is
*** 1161,1180 ****
        then
           return True;
  
!       --  In instances, or with types exported from instantiations, check
!       --  whether a partial and a full view match. Verify that types are
!       --  legal, to prevent cascaded errors.
  
        elsif Is_Private_Type (T1)
!         and then (In_Instance
!                    or else (Is_Type (T2) and then Is_Generic_Actual_Type (T2)))
          and then Full_View_Covers (T1, T2)
        then
           return True;
  
        elsif Is_Private_Type (T2)
!         and then (In_Instance
!                    or else (Is_Type (T1) and then Is_Generic_Actual_Type (T1)))
          and then Full_View_Covers (T2, T1)
        then
           return True;
--- 1171,1190 ----
        then
           return True;
  
!       --  With types exported from instantiations, check whether a partial and
!       --  a full view match. Verify that types are legal, to prevent cascaded
!       --  errors.
  
        elsif Is_Private_Type (T1)
!         and then Is_Type (T2)
!         and then Is_Generic_Actual_Type (T2)
          and then Full_View_Covers (T1, T2)
        then
           return True;
  
        elsif Is_Private_Type (T2)
!         and then Is_Type (T1)
!         and then Is_Generic_Actual_Type (T1)
          and then Full_View_Covers (T2, T1)
        then
           return True;
*************** package body Sem_Type is
*** 2229,2235 ****
                  Is_Immediately_Visible (Base_Type (Etype (Right_Opnd (N))))
                and then Is_Potentially_Use_Visible (User_Subp)
              then
!                if It2.Nam = Predef_Subp then
                    return It1;
                 else
                    return It2;
--- 2239,2245 ----
                  Is_Immediately_Visible (Base_Type (Etype (Right_Opnd (N))))
                and then Is_Potentially_Use_Visible (User_Subp)
              then
!                if It1.Nam = Predef_Subp then
                    return It1;
                 else
                    return It2;
*************** package body Sem_Type is
*** 2568,2575 ****
           end if;
  
           loop
!             if Present (Interfaces (E))
!               and then not Is_Empty_Elmt_List (Interfaces (E))
              then
                 Elmt := First_Elmt (Interfaces (E));
                 while Present (Elmt) loop
--- 2578,2585 ----
           end if;
  
           loop
!             if Is_Record_Type (E)
!               and then Present (Interfaces (E))
              then
                 Elmt := First_Elmt (Interfaces (E));
                 while Present (Elmt) loop
*************** package body Sem_Type is
*** 2639,2672 ****
        --  In case of concurrent types we can't use the Corresponding Record_Typ
        --  to look for the interface because it is built by the expander (and
        --  hence it is not always available). For this reason we traverse the
!       --  list of interfaces (available in the parent of the concurrent type)
  
        if Is_Concurrent_Type (Target_Typ) then
!          if Present (Interface_List (Parent (Target_Typ))) then
!             declare
!                AI : Node_Id;
  
!             begin
!                AI := First (Interface_List (Parent (Target_Typ)));
  
!                --  The progenitor itself may be a subtype of an interface type.
  
!                while Present (AI) loop
!                   if Etype (AI) = Iface_Typ
!                     or else Base_Type (Etype (AI)) = Iface_Typ
!                   then
!                      return True;
  
!                   elsif Present (Interfaces (Etype (AI)))
!                     and then Iface_Present_In_Ancestor (Etype (AI))
!                   then
!                      return True;
!                   end if;
  
!                   Next (AI);
!                end loop;
!             end;
!          end if;
  
           return False;
        end if;
--- 2649,2680 ----
        --  In case of concurrent types we can't use the Corresponding Record_Typ
        --  to look for the interface because it is built by the expander (and
        --  hence it is not always available). For this reason we traverse the
!       --  list of interfaces (available in the parent of the concurrent type).
  
        if Is_Concurrent_Type (Target_Typ) then
!          declare
!             AI : Node_Id;
  
!          begin
!             AI := First (Interface_List (Parent (Target_Typ)));
  
!             --  The progenitor itself may be a subtype of an interface type
  
!             while Present (AI) loop
!                if Etype (AI) = Iface_Typ
!                  or else Base_Type (Etype (AI)) = Iface_Typ
!                then
!                   return True;
  
!                elsif Present (Interfaces (Etype (AI)))
!                  and then Iface_Present_In_Ancestor (Etype (AI))
!                then
!                   return True;
!                end if;
  
!                Next (AI);
!             end loop;
!          end;
  
           return False;
        end if;
*************** package body Sem_Type is
*** 3210,3216 ****
  
           elsif Op_Name = Name_Op_Concat then
              return Is_Array_Type (T)
!               and then (Base_Type (T) = Base_Type (Etype (Op)))
                and then (Base_Type (T1) = Base_Type (T)
                            or else
                          Base_Type (T1) = Base_Type (Component_Type (T)))
--- 3218,3224 ----
  
           elsif Op_Name = Name_Op_Concat then
              return Is_Array_Type (T)
!               and then Base_Type (T) = Base_Type (Etype (Op))
                and then (Base_Type (T1) = Base_Type (T)
                            or else
                          Base_Type (T1) = Base_Type (Component_Type (T)))
*************** package body Sem_Type is
*** 3457,3465 ****
        then
           return T2;
  
!       --  In instances, also check private views the same way as Covers
  
!       elsif Is_Private_Type (T1) and then In_Instance then
           if Present (Full_View (T1)) then
              return Specific_Type (Full_View (T1), T2);
  
--- 3465,3474 ----
        then
           return T2;
  
!       --  With types exported from instantiation, also check private views the
!       --  same way as Covers
  
!       elsif Is_Private_Type (T1) and then Is_Generic_Actual_Type (T2) then
           if Present (Full_View (T1)) then
              return Specific_Type (Full_View (T1), T2);
  
*************** package body Sem_Type is
*** 3467,3473 ****
              return Specific_Type (Underlying_Full_View (T1), T2);
           end if;
  
!       elsif Is_Private_Type (T2) and then In_Instance then
           if Present (Full_View (T2)) then
              return Specific_Type (T1, Full_View (T2));
  
--- 3476,3482 ----
              return Specific_Type (Underlying_Full_View (T1), T2);
           end if;
  
!       elsif Is_Private_Type (T2) and then Is_Generic_Actual_Type (T1) then
           if Present (Full_View (T2)) then
              return Specific_Type (T1, Full_View (T2));
  
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_type.ads gcc-14.1.0/gcc/ada/sem_type.ads
*** gcc-13.2.0/gcc/ada/sem_type.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_type.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Type is
*** 222,231 ****
       (T1            : Entity_Id;
        T2            : Entity_Id;
        Use_Full_View : Boolean := False) return Boolean;
!    --  T1 is a tagged type (not class-wide). Verify that it is one of the
!    --  ancestors of type T2 (which may or not be class-wide). If Use_Full_View
!    --  is True then the full-view of private parents is used when climbing
!    --  through the parents of T2.
     --
     --  Note: For analysis purposes the flag Use_Full_View must be set to False
     --  (otherwise we break the privacy contract since this routine returns true
--- 222,230 ----
       (T1            : Entity_Id;
        T2            : Entity_Id;
        Use_Full_View : Boolean := False) return Boolean;
!    --  T1 is a type (not class-wide). Verify that it is one of the ancestors of
!    --  type T2 (which may or not be class-wide). If Use_Full_View is True, then
!    --  the full view of private parents is used when climbing T2's parents.
     --
     --  Note: For analysis purposes the flag Use_Full_View must be set to False
     --  (otherwise we break the privacy contract since this routine returns true
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_util.adb gcc-14.1.0/gcc/ada/sem_util.adb
*** gcc-13.2.0/gcc/ada/sem_util.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_util.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Util is
*** 309,319 ****
     --------------------------
  
     procedure Add_Block_Identifier
!        (N : Node_Id;
!         Id : out Entity_Id;
!         Scope : Entity_Id := Current_Scope)
     is
        Loc : constant Source_Ptr := Sloc (N);
     begin
        pragma Assert (Nkind (N) = N_Block_Statement);
  
--- 309,320 ----
     --------------------------
  
     procedure Add_Block_Identifier
!      (N     : Node_Id;
!       Id    : out Entity_Id;
!       Scope : Entity_Id := Current_Scope)
     is
        Loc : constant Source_Ptr := Sloc (N);
+ 
     begin
        pragma Assert (Nkind (N) = N_Block_Statement);
  
*************** package body Sem_Util is
*** 328,334 ****
           Id := New_Internal_Entity (E_Block, Scope, Loc, 'B');
           Set_Etype  (Id, Standard_Void_Type);
           Set_Parent (Id, N);
- 
           Set_Identifier (N, New_Occurrence_Of (Id, Loc));
           Set_Block_Node (Id, Identifier (N));
        end if;
--- 329,334 ----
*************** package body Sem_Util is
*** 474,480 ****
        --  this breaks the name resolution mechanism for generic instances.
  
        if not Expander_Active
!         and (Inside_A_Generic or not Full_Analysis or not GNATprove_Mode)
        then
           return;
        end if;
--- 474,480 ----
        --  this breaks the name resolution mechanism for generic instances.
  
        if not Expander_Active
!         and not (GNATprove_Mode and not Inside_A_Generic)
        then
           return;
        end if;
*************** package body Sem_Util is
*** 958,967 ****
           if Is_Generic_Actual_Type (Typ) then
  
              --  The restriction on loop parameters is only that the type
!             --  should have no dynamic predicates.
  
              if Nkind (Parent (N)) = N_Loop_Parameter_Specification
                and then not Has_Dynamic_Predicate_Aspect (Typ)
                and then Is_OK_Static_Subtype (Typ)
              then
                 return;
--- 958,968 ----
           if Is_Generic_Actual_Type (Typ) then
  
              --  The restriction on loop parameters is only that the type
!             --  should only have static predicates.
  
              if Nkind (Parent (N)) = N_Loop_Parameter_Specification
                and then not Has_Dynamic_Predicate_Aspect (Typ)
+               and then not Has_Ghost_Predicate_Aspect (Typ)
                and then Is_OK_Static_Subtype (Typ)
              then
                 return;
*************** package body Sem_Util is
*** 995,1000 ****
--- 996,1002 ----
           --  if the predicate is static.
  
           if not Has_Dynamic_Predicate_Aspect (Typ)
+            and then not Has_Ghost_Predicate_Aspect (Typ)
             and then Has_Static_Predicate (Typ)
             and then Nkind (N) = N_Attribute_Reference
           then
*************** package body Sem_Util is
*** 1811,1861 ****
     ------------------------------
  
     function Build_Default_Subtype_OK (T : Entity_Id) return Boolean is
- 
-       function Default_Discriminant_Values_Known_At_Compile_Time
-          (T : Entity_Id) return Boolean;
-          --  For an unconstrained type T, return False if the given type has a
-          --  discriminant with default value not known at compile time. Return
-          --  True otherwise.
- 
-       ---------------------------------------------------------
-       -- Default_Discriminant_Values_Known_At_Compile_Time --
-       ---------------------------------------------------------
- 
-       function Default_Discriminant_Values_Known_At_Compile_Time
-          (T : Entity_Id) return Boolean
-       is
-          Discr : Entity_Id;
-          DDV : Node_Id;
- 
-       begin
- 
-          --  If the type has no discriminant, we know them all at compile time
- 
-          if not Has_Discriminants (T) then
-             return True;
-          end if;
- 
-          --  The type has discriminants, check that none of them has a default
-          --  value not known at compile time.
- 
-          Discr := First_Discriminant (T);
- 
-          while Present (Discr) loop
-             DDV := Discriminant_Default_Value (Discr);
- 
-             if Present (DDV) and then not Compile_Time_Known_Value (DDV) then
-                return False;
-             end if;
- 
-             Next_Discriminant (Discr);
-          end loop;
- 
-          return True;
-       end Default_Discriminant_Values_Known_At_Compile_Time;
- 
-    --  Start of processing for Build_Default_Subtype_OK
- 
     begin
  
        if Is_Constrained (T) then
--- 1813,1818 ----
*************** package body Sem_Util is
*** 1865,1883 ****
           return False;
        end if;
  
!       if not Default_Discriminant_Values_Known_At_Compile_Time (T) then
! 
!          --  This is a special case of definite subtypes. To allocate a
!          --  specific size to the subtype, we need to know the value at compile
!          --  time. This might not be the case if the default value is the
!          --  result of a function. In that case, the object might be definite
!          --  and limited but the needed size might not be statically known or
!          --  too tricky to obtain. In that case, we will not build the subtype.
! 
!          return False;
!       end if;
! 
!       return Is_Definite_Subtype (T) and then Is_Limited_View (T);
     end Build_Default_Subtype_OK;
  
     --------------------------------------------
--- 1822,1828 ----
           return False;
        end if;
  
!       return Is_Definite_Subtype (T) and then Is_Inherently_Limited_Type (T);
     end Build_Default_Subtype_OK;
  
     --------------------------------------------
*************** package body Sem_Util is
*** 2231,2239 ****
             and then Entity (Formal_Type) = Par_Typ
           then
              Rewrite (Formal_Type, New_Occurrence_Of (Typ, Loc));
-          end if;
  
!          --  Nothing needs to be done for access parameters
  
           Next (Formal_Spec);
        end loop;
--- 2176,2187 ----
             and then Entity (Formal_Type) = Par_Typ
           then
              Rewrite (Formal_Type, New_Occurrence_Of (Typ, Loc));
  
!          elsif Nkind (Formal_Type) = N_Access_Definition
!            and then Entity (Subtype_Mark (Formal_Type)) = Par_Typ
!          then
!             Rewrite (Subtype_Mark (Formal_Type), New_Occurrence_Of (Typ, Loc));
!          end if;
  
           Next (Formal_Spec);
        end loop;
*************** package body Sem_Util is
*** 2615,2621 ****
  
           function Check_Node (N : Node_Id) return Traverse_Result is
              Is_Writable_Actual : Boolean := False;
!             Id                 : Entity_Id;
  
           begin
              if Nkind (N) = N_Identifier then
--- 2563,2570 ----
  
           function Check_Node (N : Node_Id) return Traverse_Result is
              Is_Writable_Actual : Boolean := False;
!             Id                 : Entity_Id := Empty;
!             --  Default init of Id for CodePeer
  
           begin
              if Nkind (N) = N_Identifier then
*************** package body Sem_Util is
*** 2878,2886 ****
                    Collect_Identifiers (Right_Opnd (N));
                 end if;
  
!                if Nkind (N) in N_In | N_Not_In
!                  and then Present (Alternatives (N))
!                then
                    Expr := First (Alternatives (N));
                    while Present (Expr) loop
                       Collect_Identifiers (Expr);
--- 2827,2833 ----
                    Collect_Identifiers (Right_Opnd (N));
                 end if;
  
!                if Nkind (N) in N_Membership_Test then
                    Expr := First (Alternatives (N));
                    while Present (Expr) loop
                       Collect_Identifiers (Expr);
*************** package body Sem_Util is
*** 2895,2900 ****
--- 2842,2851 ----
                 function Get_Record_Part (N : Node_Id) return Node_Id;
                 --  Return the record part of this record type definition
  
+                ---------------------
+                -- Get_Record_Part --
+                ---------------------
+ 
                 function Get_Record_Part (N : Node_Id) return Node_Id is
                    Type_Def : constant Node_Id := Type_Definition (N);
                 begin
*************** package body Sem_Util is
*** 3289,3297 ****
                                & "in unspecified order",
                                Node (Elmt_2));
  
!                         when N_In
!                            | N_Not_In
!                         =>
                             Error_Msg_N
                               ("value may be affected by call in other "
                                & "alternative because they are evaluated "
--- 3240,3246 ----
                                & "in unspecified order",
                                Node (Elmt_2));
  
!                         when N_Membership_Test =>
                             Error_Msg_N
                               ("value may be affected by call in other "
                                & "alternative because they are evaluated "
*************** package body Sem_Util is
*** 3303,3309 ****
                               ("value of actual may be affected by call in "
                                & "other actual because they are evaluated "
                                & "in unspecified order",
!                            Node (Elmt_2));
                       end case;
                    end if;
  
--- 3252,3258 ----
                               ("value of actual may be affected by call in "
                                & "other actual because they are evaluated "
                                & "in unspecified order",
!                               Node (Elmt_2));
                       end case;
                    end if;
  
*************** package body Sem_Util is
*** 3494,3499 ****
--- 3443,3453 ----
                      ("internal call cannot appear in default for formal of "
                       & "protected operation", N);
                    return;
+ 
+                --  Prevent the search from going too far
+ 
+                elsif Is_Body_Or_Package_Declaration (P) then
+                   exit;
                 end if;
  
                 P := Parent (P);
*************** package body Sem_Util is
*** 3784,3819 ****
        end loop;
     end Check_Inherited_Nonoverridable_Aspects;
  
-    ----------------------------------------
-    -- Check_Nonvolatile_Function_Profile --
-    ----------------------------------------
- 
-    procedure Check_Nonvolatile_Function_Profile (Func_Id : Entity_Id) is
-       Formal : Entity_Id;
- 
-    begin
-       --  Inspect all formal parameters
- 
-       Formal := First_Formal (Func_Id);
-       while Present (Formal) loop
-          if Is_Effectively_Volatile_For_Reading (Etype (Formal)) then
-             Error_Msg_NE
-               ("nonvolatile function & cannot have a volatile parameter",
-                Formal, Func_Id);
-          end if;
- 
-          Next_Formal (Formal);
-       end loop;
- 
-       --  Inspect the return type
- 
-       if Is_Effectively_Volatile_For_Reading (Etype (Func_Id)) then
-          Error_Msg_NE
-            ("nonvolatile function & cannot have a volatile return type",
-             Result_Definition (Parent (Func_Id)), Func_Id);
-       end if;
-    end Check_Nonvolatile_Function_Profile;
- 
     -------------------
     -- Check_Parents --
     -------------------
--- 3738,3743 ----
*************** package body Sem_Util is
*** 4359,4379 ****
                               and then Has_No_Output (Subp_Id))
                and then not Is_Wrapper (Subp_Id)
              then
!                if Pragma_Name (Prag) = Name_Contract_Cases then
!                   Error_Msg_NE (Adjust_Message
!                     ("contract case does not check the outcome of calling "
!                      & "&?.t?"), Expr, Subp_Id);
  
!                elsif Pragma_Name (Prag) = Name_Refined_Post then
!                   Error_Msg_NE (Adjust_Message
!                     ("refined postcondition does not check the outcome of "
!                      & "calling &?.t?"), Err_Node, Subp_Id);
  
!                else
!                   Error_Msg_NE (Adjust_Message
!                     ("postcondition does not check the outcome of calling "
!                      & "&?.t?"), Err_Node, Subp_Id);
!                end if;
              end if;
           end Check_Conjunct;
  
--- 4283,4306 ----
                               and then Has_No_Output (Subp_Id))
                and then not Is_Wrapper (Subp_Id)
              then
!                case Pragma_Name (Prag) is
!                   when Name_Contract_Cases =>
!                      Error_Msg_NE (Adjust_Message
!                        ("contract case does not check the outcome of calling "
!                         & "&?.t?"), Expr, Subp_Id);
  
!                   when Name_Refined_Post =>
!                      Error_Msg_NE (Adjust_Message
!                        ("refined postcondition does not check the outcome of "
!                         & "calling &?.t?"), Err_Node, Subp_Id);
  
!                   when Name_Postcondition =>
!                      Error_Msg_NE (Adjust_Message
!                        ("postcondition does not check the outcome of calling "
!                         & "&?.t?"), Err_Node, Subp_Id);
! 
!                   when others => pragma Assert (False);
!                end case;
              end if;
           end Check_Conjunct;
  
*************** package body Sem_Util is
*** 4534,4577 ****
        --  Local variables
  
        Items        : constant Node_Id := Contract (Subp_Id);
-       Subp_Decl    : constant Node_Id := Unit_Declaration_Node (Subp_Id);
        Case_Prag    : Node_Id := Empty;
        Post_Prag    : Node_Id := Empty;
        Prag         : Node_Id;
        Seen_In_Case : Boolean := False;
        Seen_In_Post : Boolean := False;
!       Spec_Id      : Entity_Id;
  
     --  Start of processing for Check_Result_And_Post_State
  
     begin
        --  The lack of attribute 'Result or a post-state is classified as a
        --  suspicious contract. Do not perform the check if the corresponding
!       --  swich is not set.
  
!       if not Warn_On_Suspicious_Contract then
           return;
  
        --  Nothing to do if there is no contract
  
        elsif No (Items) then
           return;
-       end if;
  
!       --  Retrieve the entity of the subprogram spec (if any)
  
!       if Nkind (Subp_Decl) = N_Subprogram_Body
!         and then Present (Corresponding_Spec (Subp_Decl))
!       then
!          Spec_Id := Corresponding_Spec (Subp_Decl);
  
!       elsif Nkind (Subp_Decl) = N_Subprogram_Body_Stub
!         and then Present (Corresponding_Spec_Of_Stub (Subp_Decl))
!       then
!          Spec_Id := Corresponding_Spec_Of_Stub (Subp_Decl);
  
        else
!          Spec_Id := Subp_Id;
        end if;
  
        --  Examine all postconditions for attribute 'Result and a post-state
--- 4461,4524 ----
        --  Local variables
  
        Items        : constant Node_Id := Contract (Subp_Id);
        Case_Prag    : Node_Id := Empty;
        Post_Prag    : Node_Id := Empty;
        Prag         : Node_Id;
        Seen_In_Case : Boolean := False;
        Seen_In_Post : Boolean := False;
!       Spec_Id      : constant Entity_Id := Unique_Entity (Subp_Id);
  
     --  Start of processing for Check_Result_And_Post_State
  
     begin
+       --  Do not check in instances, because we already checked the generic
+ 
+       if In_Instance then
+          return;
+ 
        --  The lack of attribute 'Result or a post-state is classified as a
        --  suspicious contract. Do not perform the check if the corresponding
!       --  switch is not set.
  
!       elsif not Warn_On_Suspicious_Contract then
           return;
  
        --  Nothing to do if there is no contract
  
        elsif No (Items) then
           return;
  
!       --  If the subprogram has a contract Exceptional_Cases, it is often
!       --  useful to refer only to the pre-state in the postcondition, to
!       --  indicate when the subprogram might terminate normally.
  
!       elsif Present (Get_Pragma (Subp_Id, Pragma_Exceptional_Cases)) then
!          return;
  
!       --  Same if the subprogram has a contract Always_Terminates => Cond,
!       --  where Cond is not syntactically True.
  
        else
!          declare
!             Prag : constant Node_Id :=
!               Get_Pragma (Subp_Id, Pragma_Always_Terminates);
!          begin
!             if Present (Prag)
!               and then Present (Pragma_Argument_Associations (Prag))
!             then
!                declare
!                   Cond : constant Node_Id :=
!                     Get_Pragma_Arg
!                       (First (Pragma_Argument_Associations (Prag)));
!                begin
!                   if not Compile_Time_Known_Value (Cond)
!                     or else not Is_True (Expr_Value (Cond))
!                   then
!                      return;
!                   end if;
!                end;
!             end if;
!          end;
        end if;
  
        --  Examine all postconditions for attribute 'Result and a post-state
*************** package body Sem_Util is
*** 4632,4638 ****
        --  attribute 'Result.
  
        elsif Present (Case_Prag) and then not Seen_In_Case then
!          Error_Msg_N ("contract cases do not mention result?.t?", Case_Prag);
  
        --  The function has non-trivial postconditions only and they do not
        --  mention attribute 'Result.
--- 4579,4586 ----
        --  attribute 'Result.
  
        elsif Present (Case_Prag) and then not Seen_In_Case then
!          Error_Msg_N
!            ("contract cases do not mention function result?.t?", Case_Prag);
  
        --  The function has non-trivial postconditions only and they do not
        --  mention attribute 'Result.
*************** package body Sem_Util is
*** 5118,5213 ****
        end if;
     end Check_Unused_Body_States;
  
-    ------------------------------------
-    -- Check_Volatility_Compatibility --
-    ------------------------------------
- 
-    procedure Check_Volatility_Compatibility
-      (Id1, Id2                     : Entity_Id;
-       Description_1, Description_2 : String;
-       Srcpos_Bearer                : Node_Id) is
- 
-    begin
-       if SPARK_Mode /= On then
-          return;
-       end if;
- 
-       declare
-          AR1 : constant Boolean := Async_Readers_Enabled (Id1);
-          AW1 : constant Boolean := Async_Writers_Enabled (Id1);
-          ER1 : constant Boolean := Effective_Reads_Enabled (Id1);
-          EW1 : constant Boolean := Effective_Writes_Enabled (Id1);
-          AR2 : constant Boolean := Async_Readers_Enabled (Id2);
-          AW2 : constant Boolean := Async_Writers_Enabled (Id2);
-          ER2 : constant Boolean := Effective_Reads_Enabled (Id2);
-          EW2 : constant Boolean := Effective_Writes_Enabled (Id2);
- 
-          AR_Check_Failed : constant Boolean := AR1 and not AR2;
-          AW_Check_Failed : constant Boolean := AW1 and not AW2;
-          ER_Check_Failed : constant Boolean := ER1 and not ER2;
-          EW_Check_Failed : constant Boolean := EW1 and not EW2;
- 
-          package Failure_Description is
-             procedure Note_If_Failure
-               (Failed : Boolean; Aspect_Name : String);
-             --  If Failed is False, do nothing.
-             --  If Failed is True, add Aspect_Name to the failure description.
- 
-             function Failure_Text return String;
-             --  returns accumulated list of failing aspects
-          end Failure_Description;
- 
-          package body Failure_Description is
-             Description_Buffer : Bounded_String;
- 
-             ---------------------
-             -- Note_If_Failure --
-             ---------------------
- 
-             procedure Note_If_Failure
-               (Failed : Boolean; Aspect_Name : String) is
-             begin
-                if Failed then
-                   if Description_Buffer.Length /= 0 then
-                      Append (Description_Buffer, ", ");
-                   end if;
-                   Append (Description_Buffer, Aspect_Name);
-                end if;
-             end Note_If_Failure;
- 
-             ------------------
-             -- Failure_Text --
-             ------------------
- 
-             function Failure_Text return String is
-             begin
-                return +Description_Buffer;
-             end Failure_Text;
-          end Failure_Description;
- 
-          use Failure_Description;
-       begin
-          if AR_Check_Failed
-            or AW_Check_Failed
-            or ER_Check_Failed
-            or EW_Check_Failed
-          then
-             Note_If_Failure (AR_Check_Failed, "Async_Readers");
-             Note_If_Failure (AW_Check_Failed, "Async_Writers");
-             Note_If_Failure (ER_Check_Failed, "Effective_Reads");
-             Note_If_Failure (EW_Check_Failed, "Effective_Writes");
- 
-             Error_Msg_N
-               (Description_1
-                  & " and "
-                  & Description_2
-                  & " are not compatible with respect to volatility due to "
-                  & Failure_Text,
-                Srcpos_Bearer);
-          end if;
-       end;
-    end Check_Volatility_Compatibility;
- 
     -----------------
     -- Choice_List --
     -----------------
--- 5066,5071 ----
*************** package body Sem_Util is
*** 6098,6104 ****
  
                       Conc_Typ : constant Entity_Id :=
                         (if Present (Init_Proc_Type)
!                           and then Init_Proc_Type in E_Record_Type_Id
                          then Corresponding_Concurrent_Type (Init_Proc_Type)
                          else Empty);
  
--- 5956,5962 ----
  
                       Conc_Typ : constant Entity_Id :=
                         (if Present (Init_Proc_Type)
!                           and then Ekind (Init_Proc_Type) = E_Record_Type
                          then Corresponding_Concurrent_Type (Init_Proc_Type)
                          else Empty);
  
*************** package body Sem_Util is
*** 6163,6169 ****
        --  In Ada 95, limited types are returned by reference, but not if the
        --  convention is other than Ada.
  
!       elsif Is_Limited_View (Typ)
          and then not Has_Foreign_Convention (Func)
        then
           Set_Returns_By_Ref (Func);
--- 6021,6027 ----
        --  In Ada 95, limited types are returned by reference, but not if the
        --  convention is other than Ada.
  
!       elsif Is_Inherently_Limited_Type (Typ)
          and then not Has_Foreign_Convention (Func)
        then
           Set_Returns_By_Ref (Func);
*************** package body Sem_Util is
*** 6232,6237 ****
--- 6090,6108 ----
           --  Examine parent type
  
           if Etype (Typ) /= Typ then
+             --  Prevent infinite recursion, which can happen in illegal
+             --  programs. Silently return if illegal. For now, just deal
+             --  with the 2-type cycle case. Larger cycles will get
+             --  SIGSEGV at compile time from running out of stack.
+ 
+             if Etype (Etype (Typ)) = Typ then
+                if Total_Errors_Detected = 0 then
+                   raise Program_Error;
+                else
+                   return;
+                end if;
+             end if;
+ 
              Process_Type (Etype (Typ));
           end if;
  
*************** package body Sem_Util is
*** 6480,6488 ****
       (Ancestor_Op     : Entity_Id;
        Descendant_Type : Entity_Id) return Entity_Id
     is
!       Typ  : constant Entity_Id := Find_Dispatching_Type (Ancestor_Op);
!       Elmt : Elmt_Id;
!       Subp : Entity_Id;
  
        function Profile_Matches_Ancestor (S : Entity_Id) return Boolean;
        --  Returns True if subprogram S has the proper profile for an
--- 6351,6358 ----
       (Ancestor_Op     : Entity_Id;
        Descendant_Type : Entity_Id) return Entity_Id
     is
!       function Find_Untagged_Type_Of (Prim : Entity_Id) return Entity_Id;
!       --  Search for the untagged type of the primitive operation Prim.
  
        function Profile_Matches_Ancestor (S : Entity_Id) return Boolean;
        --  Returns True if subprogram S has the proper profile for an
*************** package body Sem_Util is
*** 6490,6495 ****
--- 6360,6392 ----
        --  have the same type, or are corresponding controlling formals,
        --  and similarly for result types).
  
+       ---------------------------
+       -- Find_Untagged_Type_Of --
+       ---------------------------
+ 
+       function Find_Untagged_Type_Of (Prim : Entity_Id) return Entity_Id is
+          E : Entity_Id := First_Entity (Scope (Prim));
+ 
+       begin
+          while Present (E) and then E /= Prim loop
+             if not Is_Tagged_Type (E)
+               and then Contains (Direct_Primitive_Operations (E), Prim)
+             then
+                return E;
+             end if;
+ 
+             Next_Entity (E);
+          end loop;
+ 
+          pragma Assert (False);
+          return Empty;
+       end Find_Untagged_Type_Of;
+ 
+       Typ  : constant Entity_Id :=
+                (if Is_Dispatching_Operation (Ancestor_Op)
+                  then Find_Dispatching_Type (Ancestor_Op)
+                  else Find_Untagged_Type_Of (Ancestor_Op));
+ 
        ------------------------------
        -- Profile_Matches_Ancestor --
        ------------------------------
*************** package body Sem_Util is
*** 6526,6535 ****
                        or else Is_Ancestor (Typ, Etype (S)));
        end Profile_Matches_Ancestor;
  
     --  Start of processing for Corresponding_Primitive_Op
  
     begin
-       pragma Assert (Is_Dispatching_Operation (Ancestor_Op));
        pragma Assert (Is_Ancestor (Typ, Descendant_Type)
                        or else Is_Progenitor (Typ, Descendant_Type));
  
--- 6423,6436 ----
                        or else Is_Ancestor (Typ, Etype (S)));
        end Profile_Matches_Ancestor;
  
+       --  Local variables
+ 
+       Elmt : Elmt_Id;
+       Subp : Entity_Id;
+ 
     --  Start of processing for Corresponding_Primitive_Op
  
     begin
        pragma Assert (Is_Ancestor (Typ, Descendant_Type)
                        or else Is_Progenitor (Typ, Descendant_Type));
  
*************** package body Sem_Util is
*** 7291,7297 ****
                  | N_Defining_Program_Unit_Name
        then
           return
!            (Chars (Select_Node (Name1)) = Chars (Select_Node (Name2)))
               and then
                 Designate_Same_Unit (Prefix_Node (Name1), Prefix_Node (Name2));
  
--- 7192,7198 ----
                  | N_Defining_Program_Unit_Name
        then
           return
!            Chars (Select_Node (Name1)) = Chars (Select_Node (Name2))
               and then
                 Designate_Same_Unit (Prefix_Node (Name1), Prefix_Node (Name2));
  
*************** package body Sem_Util is
*** 7485,7490 ****
--- 7386,7396 ----
           Decl := Parent (Decl);
        end loop;
  
+       --  cope with oddness in definition of N_Declaration
+       if Nkind (Decl) in N_Subprogram_Specification then
+          Decl := Parent (Decl);
+       end if;
+ 
        return Decl;
     end Enclosing_Declaration;
  
*************** package body Sem_Util is
*** 8164,8175 ****
        elsif Present (Etype (Def_Id)) then
           null;
  
-       --  Otherwise, the kind E_Void insures that premature uses of the entity
-       --  will be detected. Any_Type insures that no cascaded errors will occur
- 
        else
!          Mutate_Ekind (Def_Id, E_Void);
!          Set_Etype (Def_Id, Any_Type);
        end if;
  
        --  All entities except Itypes are immediately visible
--- 8070,8077 ----
        elsif Present (Etype (Def_Id)) then
           null;
  
        else
!          Set_Etype (Def_Id, Any_Type); -- avoid cascaded errors
        end if;
  
        --  All entities except Itypes are immediately visible
*************** package body Sem_Util is
*** 8557,8562 ****
--- 8459,8465 ----
        Context  : constant Node_Id := Parent (N);
        Actual   : Node_Id;
        Call_Nam : Node_Id;
+       Call_Ent : Node_Id := Empty;
  
     begin
        if Nkind (Context) in N_Indexed_Component | N_Selected_Component
*************** package body Sem_Util is
*** 8605,8617 ****
              Call_Nam := Selector_Name (Call_Nam);
           end if;
  
!          if Is_Entity_Name (Call_Nam)
!            and then Present (Entity (Call_Nam))
!            and then (Is_Generic_Subprogram (Entity (Call_Nam))
!                       or else Is_Overloadable (Entity (Call_Nam))
!                       or else Ekind (Entity (Call_Nam)) in E_Entry_Family
!                                                          | E_Subprogram_Body
!                                                          | E_Subprogram_Type)
             and then not Is_Overloaded (Call_Nam)
           then
              --  If node is name in call it is not an actual
--- 8508,8549 ----
              Call_Nam := Selector_Name (Call_Nam);
           end if;
  
!          --  If Call_Nam is an entity name, get its entity
! 
!          if Is_Entity_Name (Call_Nam) then
!             Call_Ent := Entity (Call_Nam);
! 
!          --  If it is a dereference, get the designated subprogram type
! 
!          elsif Nkind (Call_Nam) = N_Explicit_Dereference then
!             declare
!                Typ : Entity_Id := Etype (Prefix (Call_Nam));
!             begin
!                if Present (Full_View (Typ)) then
!                   Typ := Full_View (Typ);
!                elsif Is_Private_Type (Typ)
!                  and then Present (Underlying_Full_View (Typ))
!                then
!                   Typ := Underlying_Full_View (Typ);
!                end if;
! 
!                if Is_Access_Type (Typ) then
!                   Call_Ent := Directly_Designated_Type (Typ);
!                else
!                   pragma Assert (Has_Implicit_Dereference (Typ));
!                   Formal := Empty;
!                   Call   := Empty;
!                   return;
!                end if;
!             end;
!          end if;
! 
!          if Present (Call_Ent)
!            and then (Is_Generic_Subprogram (Call_Ent)
!                       or else Is_Overloadable (Call_Ent)
!                       or else Ekind (Call_Ent) in E_Entry_Family
!                                                 | E_Subprogram_Body
!                                                 | E_Subprogram_Type)
             and then not Is_Overloaded (Call_Nam)
           then
              --  If node is name in call it is not an actual
*************** package body Sem_Util is
*** 8625,8631 ****
              --  Fall here if we are definitely a parameter
  
              Actual := First_Actual (Call);
!             Formal := First_Formal (Entity (Call_Nam));
              while Present (Formal) and then Present (Actual) loop
                 if Actual = N then
                    return;
--- 8557,8563 ----
              --  Fall here if we are definitely a parameter
  
              Actual := First_Actual (Call);
!             Formal := First_Formal (Call_Ent);
              while Present (Formal) and then Present (Actual) loop
                 if Actual = N then
                    return;
*************** package body Sem_Util is
*** 8842,8851 ****
     -- Find_Enclosing_Scope --
     --------------------------
  
!    function Find_Enclosing_Scope (N : Node_Id) return Entity_Id is
        Par : Node_Id;
  
     begin
        --  Examine the parent chain looking for a construct which defines a
        --  scope.
  
--- 8774,8789 ----
     -- Find_Enclosing_Scope --
     --------------------------
  
!    function Find_Enclosing_Scope (N : Node_Id) return Scope_Kind_Id is
        Par : Node_Id;
  
     begin
+       --  If N is an entity, simply return its Scope
+ 
+       if Nkind (N) in N_Entity then
+          return Scope (N);
+       end if;
+ 
        --  Examine the parent chain looking for a construct which defines a
        --  scope.
  
*************** package body Sem_Util is
*** 9666,9679 ****
  
        if No (Comp_List) or else Null_Present (Comp_List) then
           return;
- 
-       elsif Present (Component_Items (Comp_List)) then
-          Comp_Item := First (Component_Items (Comp_List));
- 
-       else
-          Comp_Item := Empty;
        end if;
  
        while Present (Comp_Item) loop
  
           --  Skip the tag of a tagged record, as well as all items that are not
--- 9604,9612 ----
  
        if No (Comp_List) or else Null_Present (Comp_List) then
           return;
        end if;
  
+       Comp_Item := First (Component_Items (Comp_List));
        while Present (Comp_Item) loop
  
           --  Skip the tag of a tagged record, as well as all items that are not
*************** package body Sem_Util is
*** 9711,9716 ****
--- 9644,9651 ----
        Assoc := First (Governed_By);
        Find_Constraint : loop
           Discrim := First (Choices (Assoc));
+          pragma Assert (No (Next (Discrim)));
+ 
           exit Find_Constraint when
             Chars (Discrim_Name) = Chars (Discrim)
               or else
*************** package body Sem_Util is
*** 9785,9800 ****
              end if;
           end if;
  
!          if No (Next (Assoc)) then
              Error_Msg_NE
!               (" missing value for discriminant&",
                 First (Governed_By), Discrim_Name);
  
              Report_Errors := True;
              return;
           end if;
- 
-          Next (Assoc);
        end loop Find_Constraint;
  
        Discrim_Value := Expression (Assoc);
--- 9720,9735 ----
              end if;
           end if;
  
!          Next (Assoc);
! 
!          if No (Assoc) then
              Error_Msg_NE
!               ("missing value for discriminant&",
                 First (Governed_By), Discrim_Name);
  
              Report_Errors := True;
              return;
           end if;
        end loop Find_Constraint;
  
        Discrim_Value := Expression (Assoc);
*************** package body Sem_Util is
*** 9827,9833 ****
                 --      with Static_Predicate => Null_By_Predicate < 0;
                 --  so test for that null case separately.
  
!                if (not Has_Static_Predicate (Discrim_Value_Subtype))
                   or else Present (First (Static_Discrete_Predicate
                                             (Discrim_Value_Subtype)))
                 then
--- 9762,9768 ----
                 --      with Static_Predicate => Null_By_Predicate < 0;
                 --  so test for that null case separately.
  
!                if not Has_Static_Predicate (Discrim_Value_Subtype)
                   or else Present (First (Static_Discrete_Predicate
                                             (Discrim_Value_Subtype)))
                 then
*************** package body Sem_Util is
*** 9946,9952 ****
             ("value of discriminant & is out of range", Discrim_Value, Discrim);
           Report_Errors := True;
           return;
!       end  if;
  
        --  If we have found the corresponding choice, recursively add its
        --  components to the Into list. The nested components are part of
--- 9881,9887 ----
             ("value of discriminant & is out of range", Discrim_Value, Discrim);
           Report_Errors := True;
           return;
!       end if;
  
        --  If we have found the corresponding choice, recursively add its
        --  components to the Into list. The nested components are part of
*************** package body Sem_Util is
*** 10005,10011 ****
        --  formal, or a variable or constant object, then we get the actual
        --  subtype from the referenced entity if one has been built.
  
!       if Nkind (N) = N_Identifier
          and then
            (Is_Formal (Entity (N))
              or else Ekind (Entity (N)) = E_Constant
--- 9940,9946 ----
        --  formal, or a variable or constant object, then we get the actual
        --  subtype from the referenced entity if one has been built.
  
!       if Nkind (N) in N_Identifier | N_Expanded_Name
          and then
            (Is_Formal (Entity (N))
              or else Ekind (Entity (N)) = E_Constant
*************** package body Sem_Util is
*** 10014,10019 ****
--- 9949,9962 ----
        then
           return Actual_Subtype (Entity (N));
  
+       --  Similarly, if we have an explicit dereference, then we get the
+       --  actual subtype from the node itself if one has been built.
+ 
+       elsif Nkind (N) = N_Explicit_Dereference
+         and then Present (Actual_Designated_Subtype (N))
+       then
+          return Actual_Designated_Subtype (N);
+ 
        --  Actual subtype of unchecked union is always itself. We never need
        --  the "real" actual subtype. If we did, we couldn't get it anyway
        --  because the discriminant is not available. The restrictions on
*************** package body Sem_Util is
*** 10028,10034 ****
        --  Checking the type, not the underlying type, for constrainedness
        --  seems to be necessary. Maybe all the tests should be on the type???
  
!       elsif (not Is_Constrained (Typ))
             and then (Is_Array_Type (Utyp)
                        or else (Is_Record_Type (Utyp)
                                  and then Has_Discriminants (Utyp)))
--- 9971,9977 ----
        --  Checking the type, not the underlying type, for constrainedness
        --  seems to be necessary. Maybe all the tests should be on the type???
  
!       elsif not Is_Constrained (Typ)
             and then (Is_Array_Type (Utyp)
                        or else (Is_Record_Type (Utyp)
                                  and then Has_Discriminants (Utyp)))
*************** package body Sem_Util is
*** 10111,10124 ****
     -------------------------------------
  
     function Get_Actual_Subtype_If_Available (N : Node_Id) return Entity_Id is
-       Typ : constant Entity_Id := Etype (N);
- 
     begin
        --  If what we have is an identifier that references a subprogram
        --  formal, or a variable or constant object, then we get the actual
        --  subtype from the referenced entity if one has been built.
  
!       if Nkind (N) = N_Identifier
          and then
            (Is_Formal (Entity (N))
              or else Ekind (Entity (N)) = E_Constant
--- 10054,10065 ----
     -------------------------------------
  
     function Get_Actual_Subtype_If_Available (N : Node_Id) return Entity_Id is
     begin
        --  If what we have is an identifier that references a subprogram
        --  formal, or a variable or constant object, then we get the actual
        --  subtype from the referenced entity if one has been built.
  
!       if Nkind (N) in N_Identifier | N_Expanded_Name
          and then
            (Is_Formal (Entity (N))
              or else Ekind (Entity (N)) = E_Constant
*************** package body Sem_Util is
*** 10127,10136 ****
        then
           return Actual_Subtype (Entity (N));
  
        --  Otherwise the Etype of N is returned unchanged
  
        else
!          return Typ;
        end if;
     end Get_Actual_Subtype_If_Available;
  
--- 10068,10085 ----
        then
           return Actual_Subtype (Entity (N));
  
+       --  Similarly, if we have an explicit dereference, then we get the
+       --  actual subtype from the node itself if one has been built.
+ 
+       elsif Nkind (N) = N_Explicit_Dereference
+         and then Present (Actual_Designated_Subtype (N))
+       then
+          return Actual_Designated_Subtype (N);
+ 
        --  Otherwise the Etype of N is returned unchanged
  
        else
!          return Etype (N);
        end if;
     end Get_Actual_Subtype_If_Available;
  
*************** package body Sem_Util is
*** 12163,12195 ****
     begin
        --  For selected components, the subtype of the selector must be a
        --  constrained Unchecked_Union. If the component is subject to a
!       --  per-object constraint, then the enclosing object must have inferable
!       --  discriminants.
  
        if Nkind (N) = N_Selected_Component then
-          if Has_Per_Object_Constraint (Entity (Selector_Name (N))) then
- 
-             --  A small hack. If we have a per-object constrained selected
-             --  component of a formal parameter, return True since we do not
-             --  know the actual parameter association yet.
- 
-             if Prefix_Is_Formal_Parameter (N) then
-                return True;
- 
-             --  Otherwise, check the enclosing object and the selector
- 
-             else
-                return Has_Inferable_Discriminants (Prefix (N))
-                  and then Has_Inferable_Discriminants (Selector_Name (N));
-             end if;
- 
           --  The call to Has_Inferable_Discriminants will determine whether
           --  the selector has a constrained Unchecked_Union nominal type.
  
!          else
!             return Has_Inferable_Discriminants (Selector_Name (N));
           end if;
  
        --  A qualified expression has inferable discriminants if its subtype
        --  mark is a constrained Unchecked_Union subtype.
  
--- 12112,12137 ----
     begin
        --  For selected components, the subtype of the selector must be a
        --  constrained Unchecked_Union. If the component is subject to a
!       --  per-object constraint, then the enclosing object must either be
!       --  a regular discriminated type or must have inferable discriminants.
  
        if Nkind (N) = N_Selected_Component then
           --  The call to Has_Inferable_Discriminants will determine whether
           --  the selector has a constrained Unchecked_Union nominal type.
  
!          if not Has_Inferable_Discriminants (Selector_Name (N)) then
!             return False;
           end if;
  
+          --  A small hack. If we have a per-object constrained selected
+          --  component of a formal parameter, return True since we do not
+          --  know the actual parameter association yet.
+ 
+          return not Has_Per_Object_Constraint (Entity (Selector_Name (N)))
+            or else not Is_Unchecked_Union (Etype (Prefix (N)))
+            or else Has_Inferable_Discriminants (Prefix (N))
+            or else Prefix_Is_Formal_Parameter (N);
+ 
        --  A qualified expression has inferable discriminants if its subtype
        --  mark is a constrained Unchecked_Union subtype.
  
*************** package body Sem_Util is
*** 12201,12207 ****
        --  Unchecked_Union nominal subtype.
  
        else
!          return Is_Unchecked_Union (Base_Type (Etype (N)))
             and then Is_Constrained (Etype (N));
        end if;
     end Has_Inferable_Discriminants;
--- 12143,12149 ----
        --  Unchecked_Union nominal subtype.
  
        else
!          return Is_Unchecked_Union (Etype (N))
             and then Is_Constrained (Etype (N));
        end if;
     end Has_Inferable_Discriminants;
*************** package body Sem_Util is
*** 12412,12425 ****
  
     function Is_Container_Aggregate (Exp : Node_Id) return Boolean is
  
!       function Is_Record_Aggregate return Boolean is (False);
!       --  ??? Unimplemented. Given an aggregate whose type is a
!       --  record type with specified Aggregate aspect, how do we
!       --  determine whether it is a record aggregate or a container
!       --  aggregate? If the code where the aggregate occurs can see only
!       --  a partial view of the aggregate's type then the aggregate
!       --  cannot be a record type; an aggregate of a private type has to
!       --  be a container aggregate.
  
     begin
        return Nkind (Exp) = N_Aggregate
--- 12354,12368 ----
  
     function Is_Container_Aggregate (Exp : Node_Id) return Boolean is
  
!       function Is_Record_Aggregate return Boolean is
!         (Is_Parenthesis_Aggregate (Exp));
!       --  Given an aggregate whose type is a record type with specified
!       --  Aggregate aspect, we determine whether it is a record aggregate or
!       --  a container aggregate by ckecking whether it uses parentheses () or
!       --  square brackets []. If the code where the aggregate occurs can see
!       --  only a partial view of the aggregate's type then the aggregate cannot
!       --  be a record type and must then use []; an aggregate of a private type
!       --  has to be a container aggregate and must then use [].
  
     begin
        return Nkind (Exp) = N_Aggregate
*************** package body Sem_Util is
*** 14571,14577 ****
     -- Inherit_Predicate_Flags --
     -----------------------------
  
!    procedure Inherit_Predicate_Flags (Subt, Par : Entity_Id) is
     begin
        if Ada_Version < Ada_2012
          or else Present (Predicate_Function (Subt))
--- 14514,14523 ----
     -- Inherit_Predicate_Flags --
     -----------------------------
  
!    procedure Inherit_Predicate_Flags
!      (Subt, Par  : Entity_Id;
!       Only_Flags : Boolean := False)
!    is
     begin
        if Ada_Version < Ada_2012
          or else Present (Predicate_Function (Subt))
*************** package body Sem_Util is
*** 14584,14597 ****
          (Subt, Has_Static_Predicate_Aspect (Par));
        Set_Has_Dynamic_Predicate_Aspect
          (Subt, Has_Dynamic_Predicate_Aspect (Par));
  
        --  A named subtype does not inherit the predicate function of its
        --  parent but an itype declared for a loop index needs the discrete
        --  predicate information of its parent to execute the loop properly.
        --  A non-discrete type may has a static predicate (for example True)
        --  but has no static_discrete_predicate.
  
!       if Is_Itype (Subt) and then Present (Predicate_Function (Par)) then
           Set_Subprograms_For_Type (Subt, Subprograms_For_Type (Par));
  
           if Has_Static_Predicate (Par) and then Is_Discrete_Type (Par) then
--- 14530,14553 ----
          (Subt, Has_Static_Predicate_Aspect (Par));
        Set_Has_Dynamic_Predicate_Aspect
          (Subt, Has_Dynamic_Predicate_Aspect (Par));
+       Set_Has_Ghost_Predicate_Aspect
+         (Subt, Has_Ghost_Predicate_Aspect (Par));
  
        --  A named subtype does not inherit the predicate function of its
        --  parent but an itype declared for a loop index needs the discrete
        --  predicate information of its parent to execute the loop properly.
+       --  Moreover, a named private subtype whose full view is an itype also
+       --  needs to inherit a predicate function because it will not be frozen.
        --  A non-discrete type may has a static predicate (for example True)
        --  but has no static_discrete_predicate.
  
!       if not Only_Flags
!         and then (Is_Itype (Subt)
!                    or else (Ekind (Subt) = E_Private_Subtype
!                              and then Present (Full_View (Subt))
!                              and then Is_Itype (Full_View (Subt))))
!         and then Present (Predicate_Function (Par))
!       then
           Set_Subprograms_For_Type (Subt, Subprograms_For_Type (Par));
  
           if Has_Static_Predicate (Par) and then Is_Discrete_Type (Par) then
*************** package body Sem_Util is
*** 15172,15189 ****
        end case;
     end Is_Actual_Parameter;
  
-    --------------------------------
-    -- Is_Actual_Tagged_Parameter --
-    --------------------------------
- 
-    function Is_Actual_Tagged_Parameter (N : Node_Id) return Boolean is
-       Formal : Entity_Id;
-       Call   : Node_Id;
-    begin
-       Find_Actual (N, Formal, Call);
-       return Present (Formal) and then Is_Tagged_Type (Etype (Formal));
-    end Is_Actual_Tagged_Parameter;
- 
     ---------------------
     -- Is_Aliased_View --
     ---------------------
--- 15128,15133 ----
*************** package body Sem_Util is
*** 15223,15229 ****
             --  statement is aliased if its type is immutably limited.
  
             or else (Is_Return_Object (E)
!                      and then Is_Limited_View (Etype (E)))
  
             --  The current instance of a limited type is aliased, so
             --  we want to allow uses of T'Access in the init proc for
--- 15167,15173 ----
             --  statement is aliased if its type is immutably limited.
  
             or else (Is_Return_Object (E)
!                      and then Is_Inherently_Limited_Type (Etype (E)))
  
             --  The current instance of a limited type is aliased, so
             --  we want to allow uses of T'Access in the init proc for
*************** package body Sem_Util is
*** 15232,15238 ****
  
             or else (Is_Formal (E)
                       and then Chars (E) = Name_uInit
!                      and then Is_Limited_View (Etype (E)));
  
        elsif Nkind (Obj) = N_Selected_Component then
           return Is_Aliased (Entity (Selector_Name (Obj)));
--- 15176,15182 ----
  
             or else (Is_Formal (E)
                       and then Chars (E) = Name_uInit
!                      and then Is_Inherently_Limited_Type (Etype (E)));
  
        elsif Nkind (Obj) = N_Selected_Component then
           return Is_Aliased (Entity (Selector_Name (Obj)));
*************** package body Sem_Util is
*** 15683,15690 ****
                 Item_1 : constant Node_Id := Aspect_Rep_Item (Aspect_Spec_1);
                 Item_2 : constant Node_Id := Aspect_Rep_Item (Aspect_Spec_2);
              begin
!                if (Nkind (Item_1) /= N_Attribute_Definition_Clause)
!                  or (Nkind (Item_2) /= N_Attribute_Definition_Clause)
                 then
                    pragma Assert (Serious_Errors_Detected > 0);
                    return True;
--- 15627,15634 ----
                 Item_1 : constant Node_Id := Aspect_Rep_Item (Aspect_Spec_1);
                 Item_2 : constant Node_Id := Aspect_Rep_Item (Aspect_Spec_2);
              begin
!                if Nkind (Item_1) /= N_Attribute_Definition_Clause
!                  or Nkind (Item_2) /= N_Attribute_Definition_Clause
                 then
                    pragma Assert (Serious_Errors_Detected > 0);
                    return True;
*************** package body Sem_Util is
*** 16046,16052 ****
              Param_Typ := Etype (Param);
           end if;
  
!       --  In the case where an Itype was created for a dispatchin call, the
        --  procedure call has been rewritten. The actual may be an access to
        --  interface type in which case it is the designated type that is the
        --  controlling type.
--- 15990,15996 ----
              Param_Typ := Etype (Param);
           end if;
  
!       --  In the case where an Itype was created for a dispatching call, the
        --  procedure call has been rewritten. The actual may be an access to
        --  interface type in which case it is the designated type that is the
        --  controlling type.
*************** package body Sem_Util is
*** 16080,16088 ****
     -----------------------------
  
     function Is_CPP_Constructor_Call (N : Node_Id) return Boolean is
     begin
!       return Nkind (N) = N_Function_Call
!         and then Is_CPP_Class (Etype (Etype (N)))
          and then Is_Constructor (Entity (Name (N)))
          and then Is_Imported (Entity (Name (N)));
     end Is_CPP_Constructor_Call;
--- 16024,16048 ----
     -----------------------------
  
     function Is_CPP_Constructor_Call (N : Node_Id) return Boolean is
+       Ret_Typ : Entity_Id;
+ 
     begin
!       if Nkind (N) /= N_Function_Call then
!          return False;
!       end if;
! 
!       Ret_Typ := Base_Type (Etype (N));
! 
!       if Is_Class_Wide_Type (Ret_Typ) then
!          Ret_Typ := Root_Type (Ret_Typ);
!       end if;
! 
!       if Is_Private_Type (Ret_Typ) then
!          Ret_Typ := Underlying_Type (Ret_Typ);
!       end if;
! 
!       return Present (Ret_Typ)
!         and then Is_CPP_Class (Ret_Typ)
          and then Is_Constructor (Entity (Name (N)))
          and then Is_Imported (Entity (Name (N)));
     end Is_CPP_Constructor_Call;
*************** package body Sem_Util is
*** 16395,16402 ****
              --  False (it could be a function selector in a prefix form call
              --  occurring in an iterator specification).
  
!             if Ekind (Entity (Selector_Name (Object))) not in
!                  E_Component | E_Discriminant
              then
                 return False;
              end if;
--- 16355,16367 ----
              --  False (it could be a function selector in a prefix form call
              --  occurring in an iterator specification).
  
!             if (Present (Entity (Selector_Name (Object)))
!                   and then Ekind (Entity (Selector_Name (Object))) not in
!                              E_Component | E_Discriminant)
!               or else
!                 (Inside_A_Generic
!                    and then Nkind (Parent (Selector_Name (Object)))
!                               = N_Function_Call)
              then
                 return False;
              end if;
*************** package body Sem_Util is
*** 17219,17225 ****
                    declare
                       Init : constant Entity_Id :=
                                (Find_Optional_Prim_Op
!                                  (Underlying_Type (Typ), Name_Initialize));
  
                    begin
                       if Present (Init)
--- 17184,17190 ----
                    declare
                       Init : constant Entity_Id :=
                                (Find_Optional_Prim_Op
!                                  (Utyp, Name_Initialize));
  
                    begin
                       if Present (Init)
*************** package body Sem_Util is
*** 17385,17390 ****
--- 17350,17385 ----
        end if;
     end Is_Fully_Initialized_Variant;
  
+    -----------------------------------
+    -- Is_Function_With_Side_Effects --
+    -----------------------------------
+ 
+    function Is_Function_With_Side_Effects (Subp : Entity_Id) return Boolean is
+       Arg  : Node_Id;
+       Expr : Node_Id;
+       Prag : constant Node_Id := Get_Pragma (Subp, Pragma_Side_Effects);
+ 
+    begin
+       --  Extract the value from the Boolean expression (if any)
+ 
+       if Present (Prag) then
+          Arg := First (Pragma_Argument_Associations (Prag));
+ 
+          if Present (Arg) then
+             Expr := Get_Pragma_Arg (Arg);
+ 
+             return Is_True (Expr_Value (Expr));
+ 
+          --  Otherwise the aspect or pragma defaults to True
+ 
+          else
+             return True;
+          end if;
+       end if;
+ 
+       return False;
+    end Is_Function_With_Side_Effects;
+ 
     ------------------------------------
     -- Is_Generic_Declaration_Or_Body --
     ------------------------------------
*************** package body Sem_Util is
*** 17509,17529 ****
                    and then Is_Derived_Type (Etype (E)));
     end Is_Inherited_Operation;
  
-    -------------------------------------
-    -- Is_Inherited_Operation_For_Type --
-    -------------------------------------
- 
-    function Is_Inherited_Operation_For_Type
-      (E   : Entity_Id;
-       Typ : Entity_Id) return Boolean
-    is
-    begin
-       --  Check that the operation has been created by the type declaration
- 
-       return Is_Inherited_Operation (E)
-         and then Defining_Identifier (Parent (E)) = Typ;
-    end Is_Inherited_Operation_For_Type;
- 
     --------------------------------------
     -- Is_Inlinable_Expression_Function --
     --------------------------------------
--- 17504,17509 ----
*************** package body Sem_Util is
*** 17559,17564 ****
--- 17539,17554 ----
        return False;
     end Is_Inlinable_Expression_Function;
  
+    -----------------------
+    -- Is_Internal_Block --
+    -----------------------
+ 
+    function Is_Internal_Block (N : Node_Id) return Boolean is
+    begin
+       return Nkind (N) = N_Block_Statement
+         and then Is_Internal (Entity (Identifier (N)));
+    end Is_Internal_Block;
+ 
     -----------------
     -- Is_Iterator --
     -----------------
*************** package body Sem_Util is
*** 18026,18033 ****
                               Next (First (Expressions (Original_Exp)));
                 Else_Expr : constant Node_Id := Next (Then_Expr);
              begin
!                if (Is_NC (Then_Expr) = Bad_Result)
!                  or else (Is_NC (Else_Expr) = Bad_Result)
                 then
                    return Bad_Result;
                 else
--- 18016,18023 ----
                               Next (First (Expressions (Original_Exp)));
                 Else_Expr : constant Node_Id := Next (Then_Expr);
              begin
!                if Is_NC (Then_Expr) = Bad_Result
!                  or else Is_NC (Else_Expr) = Bad_Result
                 then
                    return Bad_Result;
                 else
*************** package body Sem_Util is
*** 18606,18624 ****
           return True;
        end if;
  
!       Item := First (Component_Items (Component_List (Record_Def)));
  
        while Present (Item) loop
           if Nkind (Item) = N_Component_Declaration
             and then Is_Internal_Name (Chars (Defining_Identifier (Item)))
           then
              null;
-          elsif Nkind (Item) = N_Pragma then
-             null;
           else
              return False;
           end if;
!          Item := Next (Item);
        end loop;
  
        return True;
--- 18596,18612 ----
           return True;
        end if;
  
!       Item := First_Non_Pragma (Component_Items (Component_List (Record_Def)));
  
        while Present (Item) loop
           if Nkind (Item) = N_Component_Declaration
             and then Is_Internal_Name (Chars (Defining_Identifier (Item)))
           then
              null;
           else
              return False;
           end if;
!          Next_Non_Pragma (Item);
        end loop;
  
        return True;
*************** package body Sem_Util is
*** 19172,19178 ****
  
                 --  An effectively volatile object may act as an actual when the
                 --  corresponding formal is of a non-scalar effectively volatile
!                --  type (SPARK RM 7.1.3(10)).
  
                 if not Is_Scalar_Type (Etype (Formal))
                   and then Is_Effectively_Volatile_For_Reading (Etype (Formal))
--- 19160,19166 ----
  
                 --  An effectively volatile object may act as an actual when the
                 --  corresponding formal is of a non-scalar effectively volatile
!                --  type (SPARK RM 7.1.3(9)).
  
                 if not Is_Scalar_Type (Etype (Formal))
                   and then Is_Effectively_Volatile_For_Reading (Etype (Formal))
*************** package body Sem_Util is
*** 19181,19187 ****
  
                 --  An effectively volatile object may act as an actual in a
                 --  call to an instance of Unchecked_Conversion. (SPARK RM
!                --  7.1.3(10)).
  
                 elsif Is_Unchecked_Conversion_Instance (Subp) then
                    return True;
--- 19169,19175 ----
  
                 --  An effectively volatile object may act as an actual in a
                 --  call to an instance of Unchecked_Conversion. (SPARK RM
!                --  7.1.3(9)).
  
                 elsif Is_Unchecked_Conversion_Instance (Subp) then
                    return True;
*************** package body Sem_Util is
*** 19500,19506 ****
           elsif Nkind (Par) = N_Quantified_Expression then
              return Expr = Condition (Par);
  
!          elsif Nkind (Par) = N_Component_Association
             and then Expr = Expression (Par)
             and then Nkind (Parent (Par))
                in N_Aggregate | N_Delta_Aggregate | N_Extension_Aggregate
--- 19488,19495 ----
           elsif Nkind (Par) = N_Quantified_Expression then
              return Expr = Condition (Par);
  
!          elsif Nkind (Par) in N_Component_Association
!                             | N_Iterated_Component_Association
             and then Expr = Expression (Par)
             and then Nkind (Parent (Par))
                in N_Aggregate | N_Delta_Aggregate | N_Extension_Aggregate
*************** package body Sem_Util is
*** 19642,19651 ****
           then
              return True;
  
!          --  For component associations continue climbing; it may be part of
!          --  an array aggregate.
  
!          elsif Nkind (Par) = N_Component_Association then
              null;
  
           --  If the context is not an expression, or if is the result of
--- 19631,19645 ----
           then
              return True;
  
!          --  For component associations continue climbing; it may be part of an
!          --  array aggregate. For iterated component association we know that
!          --  it belongs to an array aggreate, but only its expression is
!          --  potentially unevaluated, not discrete choice list or iterator
!          --  specification.
  
!          elsif Nkind (Par) in N_Component_Association
!                             | N_Iterated_Component_Association
!          then
              null;
  
           --  If the context is not an expression, or if is the result of
*************** package body Sem_Util is
*** 20492,20499 ****
           Nam := Pragma_Name (Item);
        end if;
  
!       return    Nam = Name_Contract_Cases
          or else Nam = Name_Depends
          or else Nam = Name_Extensions_Visible
          or else Nam = Name_Global
          or else Nam = Name_Post
--- 20486,20495 ----
           Nam := Pragma_Name (Item);
        end if;
  
!       return    Nam = Name_Always_Terminates
!         or else Nam = Name_Contract_Cases
          or else Nam = Name_Depends
+         or else Nam = Name_Exceptional_Cases
          or else Nam = Name_Extensions_Visible
          or else Nam = Name_Global
          or else Nam = Name_Post
*************** package body Sem_Util is
*** 21089,21099 ****
                 return Is_Variable_Prefix (Prefix (Orig_Node));
  
              when N_Selected_Component =>
!                return (Is_Variable (Selector_Name (Orig_Node))
!                         and then Is_Variable_Prefix (Prefix (Orig_Node)))
!                  or else
!                    (Nkind (N) = N_Expanded_Name
!                      and then Scope (Entity (N)) = Entity (Prefix (N)));
  
              --  For an explicit dereference, the type of the prefix cannot
              --  be an access to constant or an access to subprogram.
--- 21085,21092 ----
                 return Is_Variable_Prefix (Prefix (Orig_Node));
  
              when N_Selected_Component =>
!                return Is_Variable (Selector_Name (Orig_Node))
!                        and then Is_Variable_Prefix (Prefix (Orig_Node));
  
              --  For an explicit dereference, the type of the prefix cannot
              --  be an access to constant or an access to subprogram.
*************** package body Sem_Util is
*** 21345,21350 ****
--- 21338,21377 ----
        pragma Assert (No (Actual));
     end Iterate_Call_Parameters;
  
+    --------------------------------
+    -- Iterate_Interface_Ancestor --
+    --------------------------------
+ 
+    function Iterator_Interface_Ancestor (Typ : Entity_Id) return Entity_Id is
+    begin
+       if Has_Interfaces (Typ) then
+          declare
+             Iface_Elmt : Elmt_Id;
+             Ifaces     : Elist_Id;
+             Root_Iface : Entity_Id;
+ 
+          begin
+             Collect_Interfaces (Typ, Ifaces);
+ 
+             Iface_Elmt := First_Elmt (Ifaces);
+             while Present (Iface_Elmt) loop
+                Root_Iface := Root_Type (Node (Iface_Elmt));
+ 
+                if Chars (Root_Iface)
+                     in Name_Forward_Iterator | Name_Reversible_Iterator
+                  and then In_Predefined_Unit (Root_Iface)
+                then
+                   return Root_Iface;
+                end if;
+ 
+                Next_Elmt (Iface_Elmt);
+             end loop;
+          end;
+       end if;
+ 
+       return Empty;
+    end Iterator_Interface_Ancestor;
+ 
     -------------------------
     -- Kill_Current_Values --
     -------------------------
*************** package body Sem_Util is
*** 22441,22447 ****
  
        begin
           if Is_Record_Type (Typ)
!            and then not Is_Limited_View (Typ)
             and then Has_Defaulted_Discriminants (Typ)
           then
              --  Loop through the components, looking for an array whose upper
--- 22468,22474 ----
  
        begin
           if Is_Record_Type (Typ)
!            and then not Is_Inherently_Limited_Type (Typ)
             and then Has_Defaulted_Discriminants (Typ)
           then
              --  Loop through the components, looking for an array whose upper
*************** package body Sem_Util is
*** 22463,22469 ****
                       Ityp : Entity_Id;
  
                    begin
!                      if Is_Array_Type (Comp_Type) then
                          Indx := First_Index (Comp_Type);
  
                          while Present (Indx) loop
--- 22490,22498 ----
                       Ityp : Entity_Id;
  
                    begin
!                      if Present (Comp_Type)
!                        and then Is_Array_Type (Comp_Type)
!                      then
                          Indx := First_Index (Comp_Type);
  
                          while Present (Indx) loop
*************** package body Sem_Util is
*** 22795,22907 ****
        end if;
     end New_Copy_List_Tree;
  
-    ----------------------------
-    -- New_Copy_Separate_List --
-    ----------------------------
- 
-    function New_Copy_Separate_List (List : List_Id) return List_Id is
-    begin
-       if List = No_List then
-          return No_List;
- 
-       else
-          declare
-             List_Copy : constant List_Id := New_List;
-             N         : Node_Id := First (List);
- 
-          begin
-             while Present (N) loop
-                Append (New_Copy_Separate_Tree (N), List_Copy);
-                Next (N);
-             end loop;
- 
-             return List_Copy;
-          end;
-       end if;
-    end New_Copy_Separate_List;
- 
-    ----------------------------
-    -- New_Copy_Separate_Tree --
-    ----------------------------
- 
-    function New_Copy_Separate_Tree (Source : Node_Id) return Node_Id is
-       function Search_Decl (N : Node_Id) return Traverse_Result;
-       --  Subtree visitor which collects declarations
- 
-       procedure Search_Declarations is new Traverse_Proc (Search_Decl);
-       --  Subtree visitor instantiation
- 
-       -----------------
-       -- Search_Decl --
-       -----------------
- 
-       Decls : Elist_Id;
- 
-       function Search_Decl (N : Node_Id) return Traverse_Result is
-       begin
-          if Nkind (N) in N_Declaration then
-             Append_New_Elmt (N, Decls);
-          end if;
- 
-          return OK;
-       end Search_Decl;
- 
-       --  Local variables
- 
-       Source_Copy : constant Node_Id := New_Copy_Tree (Source);
- 
-    --  Start of processing for New_Copy_Separate_Tree
- 
-    begin
-       Decls := No_Elist;
-       Search_Declarations (Source_Copy);
- 
-       --  Associate a new Entity with all the subtree declarations (keeping
-       --  their original name).
- 
-       if Present (Decls) then
-          declare
-             Elmt  : Elmt_Id;
-             Decl  : Node_Id;
-             New_E : Entity_Id;
- 
-          begin
-             Elmt := First_Elmt (Decls);
-             while Present (Elmt) loop
-                Decl  := Node (Elmt);
-                New_E := Make_Temporary (Sloc (Decl), 'P');
- 
-                if Nkind (Decl) = N_Expression_Function then
-                   Decl := Specification (Decl);
-                end if;
- 
-                if Nkind (Decl) in N_Function_Instantiation
-                                 | N_Function_Specification
-                                 | N_Generic_Function_Renaming_Declaration
-                                 | N_Generic_Package_Renaming_Declaration
-                                 | N_Generic_Procedure_Renaming_Declaration
-                                 | N_Package_Body
-                                 | N_Package_Instantiation
-                                 | N_Package_Renaming_Declaration
-                                 | N_Package_Specification
-                                 | N_Procedure_Instantiation
-                                 | N_Procedure_Specification
-                then
-                   Set_Chars (New_E, Chars (Defining_Unit_Name (Decl)));
-                   Set_Defining_Unit_Name (Decl, New_E);
-                else
-                   Set_Chars (New_E, Chars (Defining_Identifier (Decl)));
-                   Set_Defining_Identifier (Decl, New_E);
-                end if;
- 
-                Next_Elmt (Elmt);
-             end loop;
-          end;
-       end if;
- 
-       return Source_Copy;
-    end New_Copy_Separate_Tree;
- 
     -------------------
     -- New_Copy_Tree --
     -------------------
--- 22824,22829 ----
*************** package body Sem_Util is
*** 22979,22989 ****
     -------------------
  
     function New_Copy_Tree
!      (Source           : Node_Id;
!       Map              : Elist_Id   := No_Elist;
!       New_Sloc         : Source_Ptr := No_Location;
!       New_Scope        : Entity_Id  := Empty;
!       Scopes_In_EWA_OK : Boolean    := False) return Node_Id
     is
        --  This routine performs low-level tree manipulations and needs access
        --  to the internals of the tree.
--- 22901,22910 ----
     -------------------
  
     function New_Copy_Tree
!      (Source    : Node_Id;
!       Map       : Elist_Id   := No_Elist;
!       New_Sloc  : Source_Ptr := No_Location;
!       New_Scope : Entity_Id  := Empty) return Node_Id
     is
        --  This routine performs low-level tree manipulations and needs access
        --  to the internals of the tree.
*************** package body Sem_Util is
*** 23073,23078 ****
--- 22994,23006 ----
        pragma Inline (Update_CFS_Sloc);
        --  Update the Comes_From_Source and Sloc attributes of node or entity N
  
+       procedure Update_Controlling_Argument
+         (Old_Call : Node_Id;
+          New_Call : Node_Id);
+       pragma Inline (Update_Controlling_Argument);
+       --  Update Controlling_Argument of New_Call base on Old_Call to make it
+       --  points to the corresponding newly copied actual parameter.
+ 
        procedure Update_Named_Associations
          (Old_Call : Node_Id;
           New_Call : Node_Id);
*************** package body Sem_Util is
*** 23320,23384 ****
           New_Par  : Node_Id := Empty;
           Semantic : Boolean := False) return Union_Id
        is
-          function Has_More_Ids (N : Node_Id) return Boolean;
-          --  Return True when N has attribute More_Ids set to True
- 
-          function Is_Syntactic_Node return Boolean;
-          --  Return True when Field is a syntactic node
- 
-          ------------------
-          -- Has_More_Ids --
-          ------------------
- 
-          function Has_More_Ids (N : Node_Id) return Boolean is
-          begin
-             if Nkind (N) in N_Component_Declaration
-                           | N_Discriminant_Specification
-                           | N_Exception_Declaration
-                           | N_Formal_Object_Declaration
-                           | N_Number_Declaration
-                           | N_Object_Declaration
-                           | N_Parameter_Specification
-                           | N_Use_Package_Clause
-                           | N_Use_Type_Clause
-             then
-                return More_Ids (N);
-             else
-                return False;
-             end if;
-          end Has_More_Ids;
- 
-          -----------------------
-          -- Is_Syntactic_Node --
-          -----------------------
- 
-          function Is_Syntactic_Node return Boolean is
-             Old_N : constant Node_Id := Node_Id (Field);
- 
-          begin
-             if Parent (Old_N) = Old_Par then
-                return True;
- 
-             elsif not Has_More_Ids (Old_Par) then
-                return False;
- 
-             --  Perform the check using the last last id in the syntactic chain
- 
-             else
-                declare
-                   N : Node_Id := Old_Par;
- 
-                begin
-                   while Present (N) and then More_Ids (N) loop
-                      Next (N);
-                   end loop;
- 
-                   pragma Assert (Prev_Ids (N));
-                   return Parent (Old_N) = N;
-                end;
-             end if;
-          end Is_Syntactic_Node;
- 
        begin
           --  The field is empty
  
--- 23248,23253 ----
*************** package body Sem_Util is
*** 23390,23396 ****
           elsif Field in Node_Range then
              declare
                 Old_N     : constant Node_Id := Node_Id (Field);
!                Syntactic : constant Boolean := Is_Syntactic_Node;
  
                 New_N : Node_Id;
  
--- 23259,23266 ----
           elsif Field in Node_Range then
              declare
                 Old_N     : constant Node_Id := Node_Id (Field);
!                Syntactic : constant Boolean :=
!                  Is_Syntactic_Node (Source => Old_Par, Field => Old_N);
  
                 New_N : Node_Id;
  
*************** package body Sem_Util is
*** 23569,23585 ****
                (Old_Assoc => N,
                 New_Assoc => Result);
  
!             --  Update the First/Next_Named_Association chain for a replicated
!             --  call.
  
              if Nkind (N) in N_Entry_Call_Statement
!                           | N_Function_Call
!                           | N_Procedure_Call_Statement
              then
                 Update_Named_Associations
                   (Old_Call => N,
                    New_Call => Result);
  
              --  Update the Renamed_Object attribute of a replicated object
              --  declaration.
  
--- 23439,23460 ----
                (Old_Assoc => N,
                 New_Assoc => Result);
  
!             --  Update the First/Next_Named_Association chain and the
!             --  Controlling_Argument for a replicated call.
  
              if Nkind (N) in N_Entry_Call_Statement
!                           | N_Subprogram_Call
              then
                 Update_Named_Associations
                   (Old_Call => N,
                    New_Call => Result);
  
+                if Nkind (N) in N_Subprogram_Call then
+                   Update_Controlling_Argument
+                     (Old_Call => N,
+                      New_Call => Result);
+                end if;
+ 
              --  Update the Renamed_Object attribute of a replicated object
              --  declaration.
  
*************** package body Sem_Util is
*** 23602,23612 ****
                    Set_Chars (Result, Chars (Entity (Result)));
                 end if;
              end if;
- 
-             if Has_Aspects (N) then
-                Set_Aspect_Specifications (Result,
-                  Copy_List_With_Replacement (Aspect_Specifications (N)));
-             end if;
           end if;
  
           return Result;
--- 23477,23482 ----
*************** package body Sem_Util is
*** 23689,23694 ****
--- 23559,23617 ----
           end if;
        end Update_CFS_Sloc;
  
+       ---------------------------------
+       -- Update_Controlling_Argument --
+       ---------------------------------
+ 
+       procedure Update_Controlling_Argument
+         (Old_Call : Node_Id;
+          New_Call : Node_Id)
+       is
+          New_Act : Node_Id;
+          Old_Act : Node_Id;
+ 
+          Old_Ctrl_Arg : constant Node_Id := Controlling_Argument (Old_Call);
+          --  Controlling argument of the old call node
+ 
+          Replaced : Boolean := False;
+          --  Flag to make sure that replacement works as expected
+ 
+       begin
+          if No (Old_Ctrl_Arg) then
+             return;
+          end if;
+ 
+          --  Recreate the Controlling_Argument of a call by traversing both the
+          --  old and new actual parameters in parallel.
+ 
+          New_Act := First (Parameter_Associations (New_Call));
+          Old_Act := First (Parameter_Associations (Old_Call));
+          while Present (Old_Act) loop
+ 
+             --  Actual parameter appears either in a named parameter
+             --  association or directly.
+ 
+             if Nkind (Old_Act) = N_Parameter_Association then
+                if Explicit_Actual_Parameter (Old_Act) = Old_Ctrl_Arg then
+                   Set_Controlling_Argument
+                     (New_Call, Explicit_Actual_Parameter (New_Act));
+                   Replaced := True;
+                   exit;
+                end if;
+ 
+             elsif Old_Act = Old_Ctrl_Arg then
+                Set_Controlling_Argument (New_Call, New_Act);
+                Replaced := True;
+                exit;
+             end if;
+ 
+             Next (New_Act);
+             Next (Old_Act);
+          end loop;
+ 
+          pragma Assert (Replaced);
+       end Update_Controlling_Argument;
+ 
        -------------------------------
        -- Update_Named_Associations --
        -------------------------------
*************** package body Sem_Util is
*** 23763,23771 ****
              --  ??? Is there a better way of distinguishing those?
  
              while Present (Old_Id) and then Present (New_Id) loop
!                if not (Present (Entity_Map)
!                         and then In_Entity_Map (Old_Id, Entity_Map))
!                then
                    Update_Semantic_Fields (New_Id);
                 end if;
  
--- 23686,23692 ----
              --  ??? Is there a better way of distinguishing those?
  
              while Present (Old_Id) and then Present (New_Id) loop
!                if not In_Entity_Map (Old_Id, Entity_Map) then
                    Update_Semantic_Fields (New_Id);
                 end if;
  
*************** package body Sem_Util is
*** 23937,23948 ****
              return;
  
           --  Nothing to do when the entity is defined in a scoping construct
!          --  within an N_Expression_With_Actions node, unless the caller has
!          --  requested their replication.
! 
!          --  ??? should this restriction be eliminated?
  
!          elsif EWA_Inner_Scope_Level > 0 and then not Scopes_In_EWA_OK then
              return;
  
           --  Nothing to do when the entity does not denote a construct that
--- 23858,23866 ----
              return;
  
           --  Nothing to do when the entity is defined in a scoping construct
!          --  within an N_Expression_With_Actions node.
  
!          elsif EWA_Inner_Scope_Level > 0 then
              return;
  
           --  Nothing to do when the entity does not denote a construct that
*************** package body Sem_Util is
*** 24222,24235 ****
           --  Note that the element of a syntactic list is always a node, never
           --  an entity or itype, hence the call to Visit_Node.
  
!          if Present (List) then
!             Elmt := First (List);
!             while Present (Elmt) loop
!                Visit_Node (Elmt);
  
!                Next (Elmt);
!             end loop;
!          end if;
        end Visit_List;
  
        ----------------
--- 24140,24151 ----
           --  Note that the element of a syntactic list is always a node, never
           --  an entity or itype, hence the call to Visit_Node.
  
!          Elmt := First (List);
!          while Present (Elmt) loop
!             Visit_Node (Elmt);
  
!             Next (Elmt);
!          end loop;
        end Visit_List;
  
        ----------------
*************** package body Sem_Util is
*** 24261,24268 ****
           --  If the node is a block, we need to process all declarations
           --  in the block and make new entities for each.
  
!          if Nkind (N) = N_Block_Statement and then Present (Declarations (N))
!          then
              declare
                 Decl : Node_Id := First (Declarations (N));
  
--- 24177,24183 ----
           --  If the node is a block, we need to process all declarations
           --  in the block and make new entities for each.
  
!          if Nkind (N) = N_Block_Statement then
              declare
                 Decl : Node_Id := First (Declarations (N));
  
*************** package body Sem_Util is
*** 24297,24303 ****
           then
              EWA_Inner_Scope_Level := EWA_Inner_Scope_Level - 1;
  
!          elsif Nkind (N) = N_Expression_With_Actions then
              EWA_Level := EWA_Level - 1;
           end if;
        end Visit_Node;
--- 24212,24221 ----
           then
              EWA_Inner_Scope_Level := EWA_Inner_Scope_Level - 1;
  
!          elsif Nkind (N) = N_Expression_With_Actions
!            or else
!              (Nkind (N) = N_Quantified_Expression and then Expander_Active)
!          then
              EWA_Level := EWA_Level - 1;
           end if;
        end Visit_Node;
*************** package body Sem_Util is
*** 25387,25393 ****
  
        --  Check the status of the operand of a type conversion
  
!       elsif Nkind (N) = N_Type_Conversion then
           return Null_Status (Expression (N));
  
        --  The input denotes a reference to an entity. Determine whether the
--- 25305,25311 ----
  
        --  Check the status of the operand of a type conversion
  
!       elsif Nkind (N) in N_Type_Conversion | N_Unchecked_Type_Conversion then
           return Null_Status (Expression (N));
  
        --  The input denotes a reference to an entity. Determine whether the
*************** package body Sem_Util is
*** 27160,27165 ****
--- 27078,27092 ----
           then
              return True;
  
+          --  The body of a protected operation is within the protected type
+ 
+          elsif Is_Subprogram (Curr)
+            and then Present (Protected_Subprogram (Curr))
+            and then Is_Protected_Type (Outer)
+            and then Scope (Protected_Subprogram (Curr)) = Outer
+          then
+             return True;
+ 
           --  Outside of its scope, a synchronized type may just be private
  
           elsif Is_Private_Type (Curr)
*************** package body Sem_Util is
*** 27201,27206 ****
--- 27128,27140 ----
           then
              return True;
  
+          elsif Is_Subprogram (Curr)
+            and then Present (Protected_Subprogram (Curr))
+            and then Is_Protected_Type (Outer)
+            and then Scope (Protected_Subprogram (Curr)) = Outer
+          then
+             return True;
+ 
           elsif Is_Private_Type (Curr)
             and then Present (Full_View (Curr))
           then
*************** package body Sem_Util is
*** 27474,27480 ****
        --  call to Ada.Task_Identification.Abort_Task.
  
        if Restriction_Check_Required (No_Abort_Statements)
!         and then (Is_RTE (Val, RE_Abort_Task))
  
          --  A special extra check, don't complain about a reference from within
          --  the Ada.Task_Identification package itself!
--- 27408,27414 ----
        --  call to Ada.Task_Identification.Abort_Task.
  
        if Restriction_Check_Required (No_Abort_Statements)
!         and then Is_RTE (Val, RE_Abort_Task)
  
          --  A special extra check, don't complain about a reference from within
          --  the Ada.Task_Identification package itself!
*************** package body Sem_Util is
*** 27757,27771 ****
        end if;
     end Set_Rep_Info;
  
-    ----------------------------
-    -- Set_Scope_Is_Transient --
-    ----------------------------
- 
-    procedure Set_Scope_Is_Transient (V : Boolean := True) is
-    begin
-       Scope_Stack.Table (Scope_Stack.Last).Is_Transient := V;
-    end Set_Scope_Is_Transient;
- 
     -------------------
     -- Set_Size_Info --
     -------------------
--- 27691,27696 ----
*************** package body Sem_Util is
*** 27978,27985 ****
                       High_Value   : constant Uint :=
                         Expr_Value (Type_High_Bound (Index_Subtype));
                    begin
!                      if (Index_Value < Low_Value)
!                        or (Index_Value > High_Value)
                       then
                          return False;
                       end if;
--- 27903,27910 ----
                       High_Value   : constant Uint :=
                         Expr_Value (Type_High_Bound (Index_Subtype));
                    begin
!                      if Index_Value < Low_Value
!                        or Index_Value > High_Value
                       then
                          return False;
                       end if;
*************** package body Sem_Util is
*** 27987,27994 ****
  
                    Next_Index (Indx);
                    Expr := Next (Expr);
!                   pragma Assert ((Present (Indx) = Present (Expr))
!                     or else (Serious_Errors_Detected > 0));
                    exit when not (Present (Indx) and Present (Expr));
                 end loop;
              end;
--- 27912,27919 ----
  
                    Next_Index (Indx);
                    Expr := Next (Expr);
!                   pragma Assert (Present (Indx) = Present (Expr)
!                     or else Serious_Errors_Detected > 0);
                    exit when not (Present (Indx) and Present (Expr));
                 end loop;
              end;
*************** package body Sem_Util is
*** 28153,28158 ****
--- 28078,28086 ----
                 Ent := Defining_Identifier (Ent);
                 exit;
  
+             when N_Entity =>
+                exit;
+ 
              when others =>
                 null;
           end case;
*************** package body Sem_Util is
*** 29206,29211 ****
--- 29134,29146 ----
              return Typ;
           end if;
  
+       elsif From_Limited_With (Typ) then
+          if Has_Non_Limited_View (Typ) then
+             return Validated_View (Non_Limited_View (Typ));
+          else
+             return Typ;
+          end if;
+ 
        else
           return Typ;
        end if;
*************** package body Sem_Util is
*** 29366,29372 ****
     -- Wrong_Type --
     ----------------
  
!    procedure Wrong_Type (Expr : Node_Id; Expected_Type : Entity_Id) is
        Found_Type : constant Entity_Id := First_Subtype (Etype (Expr));
        Expec_Type : constant Entity_Id := First_Subtype (Expected_Type);
  
--- 29301,29311 ----
     -- Wrong_Type --
     ----------------
  
!    procedure Wrong_Type
!      (Expr          : Node_Id;
!       Expected_Type : Entity_Id;
!       Multiple      : Boolean := False)
!    is
        Found_Type : constant Entity_Id := First_Subtype (Etype (Expr));
        Expec_Type : constant Entity_Id := First_Subtype (Expected_Type);
  
*************** package body Sem_Util is
*** 29453,29465 ****
  
     begin
        --  Don't output message if either type is Any_Type, or if a message
!       --  has already been posted for this node. We need to do the latter
!       --  check explicitly (it is ordinarily done in Errout), because we
!       --  are using ! to force the output of the error messages.
  
        if Expec_Type = Any_Type
          or else Found_Type = Any_Type
!         or else Error_Posted (Expr)
        then
           return;
  
--- 29392,29405 ----
  
     begin
        --  Don't output message if either type is Any_Type, or if a message
!       --  has already been posted for this node and we do not want multiple
!       --  error messages. We need to do the latter check explicitly (it is
!       --  ordinarily done in Errout) because we are using '!' to force the
!       --  output of the error messages.
  
        if Expec_Type = Any_Type
          or else Found_Type = Any_Type
!         or else (Error_Posted (Expr) and then not Multiple)
        then
           return;
  
*************** package body Sem_Util is
*** 29478,29533 ****
          and then Full_View (Etype (Expr)) = Expec_Type
        then
           return;
- 
-       --  In an instance, there is an ongoing problem with completion of
-       --  types derived from private types. Their structure is what Gigi
-       --  expects, but the Etype is the parent type rather than the derived
-       --  private type itself. Do not flag error in this case. The private
-       --  completion is an entity without a parent, like an Itype. Similarly,
-       --  full and partial views may be incorrect in the instance.
-       --  There is no simple way to insure that it is consistent ???
- 
-       --  A similar view discrepancy can happen in an inlined body, for the
-       --  same reason: inserted body may be outside of the original package
-       --  and only partial views are visible at the point of insertion.
- 
-       --  If In_Generic_Actual (Expr) is True then we cannot assume that
-       --  the successful semantic analysis of the generic guarantees anything
-       --  useful about type checking of this instance, so we ignore
-       --  In_Instance in that case. There may be cases where this is not
-       --  right (the symptom would probably be rejecting something
-       --  that ought to be accepted) but we don't currently have any
-       --  concrete examples of this.
- 
-       elsif (In_Instance and then not In_Generic_Actual (Expr))
-         or else In_Inlined_Body
-       then
-          if Etype (Etype (Expr)) = Etype (Expected_Type)
-            and then
-              (Has_Private_Declaration (Expected_Type)
-                or else Has_Private_Declaration (Etype (Expr)))
-            and then No (Parent (Expected_Type))
-          then
-             return;
- 
-          elsif Nkind (Parent (Expr)) = N_Qualified_Expression
-            and then Entity (Subtype_Mark (Parent (Expr))) = Expected_Type
-          then
-             return;
- 
-          elsif Is_Private_Type (Expected_Type)
-            and then Present (Full_View (Expected_Type))
-            and then Covers (Full_View (Expected_Type), Etype (Expr))
-          then
-             return;
- 
-          --  Conversely, type of expression may be the private one
- 
-          elsif Is_Private_Type (Base_Type (Etype (Expr)))
-            and then Full_View (Base_Type (Etype (Expr))) = Expected_Type
-          then
-             return;
-          end if;
        end if;
  
        --  Avoid printing internally generated subtypes in error messages and
--- 29418,29423 ----
*************** package body Sem_Util is
*** 30547,30555 ****
             (Expr : Node_Id; Expr_Trailer : Node_Id := Empty)
             return Determining_Expression_List
           is
!             Par           : Node_Id := Expr;
!             Trailer       : Node_Id := Expr_Trailer;
!             Next_Element  : Determining_Expr;
           begin
              --  We want to stop climbing up the tree when we reach the
              --  postcondition expression. An aspect_specification is
--- 30437,30445 ----
             (Expr : Node_Id; Expr_Trailer : Node_Id := Empty)
             return Determining_Expression_List
           is
!             Par          : Node_Id := Expr;
!             Trailer      : Node_Id := Expr_Trailer;
!             Next_Element : Determining_Expr;
           begin
              --  We want to stop climbing up the tree when we reach the
              --  postcondition expression. An aspect_specification is
*************** package body Sem_Util is
*** 30657,30665 ****
                          else
                             pragma Assert
                               (Get_Pragma_Id (Pragma_Name (Par)) in
!                                 Pragma_Post | Pragma_Postcondition
!                                 | Pragma_Post_Class | Pragma_Refined_Post
!                                 | Pragma_Check | Pragma_Contract_Cases);
  
                             return (1 .. 0 => <>); -- recursion terminates here
                          end if;
--- 30547,30559 ----
                          else
                             pragma Assert
                               (Get_Pragma_Id (Pragma_Name (Par)) in
!                                 Pragma_Check
!                               | Pragma_Contract_Cases
!                               | Pragma_Exceptional_Cases
!                               | Pragma_Post
!                               | Pragma_Postcondition
!                               | Pragma_Post_Class
!                               | Pragma_Refined_Post);
  
                             return (1 .. 0 => <>); -- recursion terminates here
                          end if;
*************** package body Sem_Util is
*** 30780,30786 ****
                    --    array_component_association or of
                    --    a container_element_associatiation.
  
!                   if Nkind (Par) = N_Component_Association
                      and then Trailer = Expression (Par)
                    then
                       --  determine whether Par is part of an array aggregate
--- 30674,30681 ----
                    --    array_component_association or of
                    --    a container_element_associatiation.
  
!                   if Nkind (Par) in N_Component_Association
!                                   | N_Iterated_Component_Association
                      and then Trailer = Expression (Par)
                    then
                       --  determine whether Par is part of an array aggregate
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_util.ads gcc-14.1.0/gcc/ada/sem_util.ads
*** gcc-13.2.0/gcc/ada/sem_util.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_util.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sem_Util is
*** 282,295 ****
     --  subtype. Otherwise, simply return T.
  
     function Build_Default_Subtype_OK (T : Entity_Id) return Boolean;
!    --  When analyzing components or object declarations, it is possible, in
!    --  some cases, to build subtypes for discriminated types. This is
!    --  worthwhile to avoid the backend allocating the maximum possible size for
!    --  objects of the type.
     --  In particular, when T is limited, the discriminants and therefore the
     --  size of an object of type T cannot change. Furthermore, if T is definite
!    --  with statically initialized defaulted discriminants, we are able and
!    --  want to build a constrained subtype of the right size.
  
     function Build_Discriminal_Subtype_Of_Component
       (T : Entity_Id) return Node_Id;
--- 282,294 ----
     --  subtype. Otherwise, simply return T.
  
     function Build_Default_Subtype_OK (T : Entity_Id) return Boolean;
!    --  When analyzing object declarations, it is possible, in some cases, to
!    --  build subtypes for discriminated types. This is worthwhile to avoid the
!    --  backend allocating the maximum possible size for objects of the type.
     --  In particular, when T is limited, the discriminants and therefore the
     --  size of an object of type T cannot change. Furthermore, if T is definite
!    --  with initialized defaulted discriminants, we are able and want to build
!    --  a constrained subtype of the right size.
  
     function Build_Discriminal_Subtype_Of_Component
       (T : Entity_Id) return Node_Id;
*************** package Sem_Util is
*** 415,424 ****
     --  In the error case, error message is associate with Inheritor;
     --  Inheritor parameter is otherwise unused.
  
-    procedure Check_Nonvolatile_Function_Profile (Func_Id : Entity_Id);
-    --  Verify that the profile of nonvolatile function Func_Id does not contain
-    --  effectively volatile parameters or return type for reading.
- 
     function Check_Parents (N : Node_Id; List : Elist_Id) return Boolean;
     --  Return True if all the occurrences of subtree N referencing entities in
     --  the given List have the right value in their Parent field.
--- 414,419 ----
*************** package Sem_Util is
*** 467,485 ****
     --  and the context is external to the protected operation, to warn against
     --  a possible unlocked access to data.
  
-    procedure Check_Volatility_Compatibility
-      (Id1, Id2                     : Entity_Id;
-       Description_1, Description_2 : String;
-       Srcpos_Bearer                : Node_Id);
-    --  Id1 and Id2 should each be the entity of a state abstraction, a
-    --  variable, or a type (i.e., something suitable for passing to
-    --  Async_Readers_Enabled and similar functions).
-    --  Does nothing if SPARK_Mode /= On. Otherwise, flags a legality violation
-    --  if one or more of the four volatility-related aspects is False for Id1
-    --  and True for Id2. The two descriptions are included in the error message
-    --  text; the source position for the generated message is determined by
-    --  Srcpos_Bearer.
- 
     function Choice_List (N : Node_Id) return List_Id;
     --  Utility to retrieve the choices of a Component_Association or the
     --  Discrete_Choices of an Iterated_Component_Association. For various
--- 462,467 ----
*************** package Sem_Util is
*** 618,626 ****
     --  Possible optimization???
  
     function Corresponding_Primitive_Op
!        (Ancestor_Op     : Entity_Id;
!         Descendant_Type : Entity_Id) return Entity_Id;
!    --  Given a primitive subprogram of a tagged type and a (distinct)
     --  descendant type of that type, find the corresponding primitive
     --  subprogram of the descendant type.
  
--- 600,608 ----
     --  Possible optimization???
  
     function Corresponding_Primitive_Op
!      (Ancestor_Op     : Entity_Id;
!       Descendant_Type : Entity_Id) return Entity_Id;
!    --  Given a primitive subprogram of a first type and a (distinct)
     --  descendant type of that type, find the corresponding primitive
     --  subprogram of the descendant type.
  
*************** package Sem_Util is
*** 639,656 ****
     function Current_Scope return Entity_Id;
     --  Get entity representing current scope
  
     procedure Add_Block_Identifier
!        (N : Node_Id;
!         Id : out Entity_Id;
!         Scope : Entity_Id := Current_Scope);
     --  Given a block statement N, generate an internal E_Block label and make
     --  it the identifier of the block. Scope denotes the scope in which the
     --  generated entity Id is created and defaults to the current scope. If the
     --  block already has an identifier, Id returns the entity of its label.
  
-    function Current_Scope_No_Loops return Entity_Id;
-    --  Return the current scope ignoring internally generated loops
- 
     function Current_Subprogram return Entity_Id;
     --  Returns current enclosing subprogram. If Current_Scope is a subprogram,
     --  then that is what is returned, otherwise the Enclosing_Subprogram of the
--- 621,638 ----
     function Current_Scope return Entity_Id;
     --  Get entity representing current scope
  
+    function Current_Scope_No_Loops return Entity_Id;
+    --  Return the current scope ignoring internally generated loops
+ 
     procedure Add_Block_Identifier
!      (N     : Node_Id;
!       Id    : out Entity_Id;
!       Scope : Entity_Id := Current_Scope);
     --  Given a block statement N, generate an internal E_Block label and make
     --  it the identifier of the block. Scope denotes the scope in which the
     --  generated entity Id is created and defaults to the current scope. If the
     --  block already has an identifier, Id returns the entity of its label.
  
     function Current_Subprogram return Entity_Id;
     --  Returns current enclosing subprogram. If Current_Scope is a subprogram,
     --  then that is what is returned, otherwise the Enclosing_Subprogram of the
*************** package Sem_Util is
*** 809,816 ****
     procedure Enter_Name (Def_Id : Entity_Id);
     --  Insert new name in symbol table of current scope with check for
     --  duplications (error message is issued if a conflict is found).
!    --  Note: Enter_Name is not used for overloadable entities, instead these
!    --  are entered using Sem_Ch6.Enter_Overloaded_Entity.
  
     function Entity_Of (N : Node_Id) return Entity_Id;
     --  Obtain the entity of arbitrary node N. If N is a renaming, return the
--- 791,800 ----
     procedure Enter_Name (Def_Id : Entity_Id);
     --  Insert new name in symbol table of current scope with check for
     --  duplications (error message is issued if a conflict is found).
!    --  Note: Enter_Name is not used for most overloadable entities, instead
!    --  they are entered using Sem_Ch6.Enter_Overloaded_Entity. However,
!    --  this is used for SOME overloadable entities, such as enumeration
!    --  literals and certain operator symbols.
  
     function Entity_Of (N : Node_Id) return Entity_Id;
     --  Obtain the entity of arbitrary node N. If N is a renaming, return the
*************** package Sem_Util is
*** 887,893 ****
     --  such a loop exists, return the entity of its identifier (E_Loop scope),
     --  otherwise return Empty.
  
!    function Find_Enclosing_Scope (N : Node_Id) return Entity_Id;
     --  Find the nearest scope which encloses arbitrary node N
  
     function Find_Loop_In_Conditional_Block (N : Node_Id) return Node_Id;
--- 871,878 ----
     --  such a loop exists, return the entity of its identifier (E_Loop scope),
     --  otherwise return Empty.
  
!    function Find_Enclosing_Scope (N : Node_Id) return Scope_Kind_Id with
!      Post => Find_Enclosing_Scope'Result /= N;
     --  Find the nearest scope which encloses arbitrary node N
  
     function Find_Loop_In_Conditional_Block (N : Node_Id) return Node_Id;
*************** package Sem_Util is
*** 1078,1084 ****
     --
     --    Report_Errors is set to True if the values of the discriminants are
     --     insufficiently static (see body for details of what that means).
- 
     --
     --    Allow_Compile_Time if set to True, allows compile time known values in
     --     Governed_By expressions in addition to static expressions.
--- 1063,1068 ----
*************** package Sem_Util is
*** 1477,1482 ****
--- 1461,1470 ----
     function Is_Container_Aggregate (Exp : Node_Id) return Boolean;
     --  Is the given expression a container aggregate?
  
+    function Is_Function_With_Side_Effects (Subp : Entity_Id) return Boolean;
+    --  Return True if Subp is a function with side effects, ie. it has a
+    --  (direct or inherited) pragma Side_Effects with static value True.
+ 
     function Is_Newly_Constructed
       (Exp : Node_Id; Context_Requires_NC : Boolean) return Boolean;
     --  Indicates whether a given expression is "newly constructed" (RM 4.4).
*************** package Sem_Util is
*** 1698,1706 ****
     --  either the value is not yet known before back-end processing or it is
     --  not known at compile time after back-end processing.
  
!    procedure Inherit_Predicate_Flags (Subt, Par : Entity_Id);
     --  Propagate static and dynamic predicate flags from a parent to the
!    --  subtype in a subtype declaration with and without constraints.
  
     procedure Inherit_Rep_Item_Chain (Typ : Entity_Id; From_Typ : Entity_Id);
     --  Inherit the rep item chain of type From_Typ without clobbering any
--- 1686,1699 ----
     --  either the value is not yet known before back-end processing or it is
     --  not known at compile time after back-end processing.
  
!    procedure Inherit_Predicate_Flags
!      (Subt, Par  : Entity_Id;
!       Only_Flags : Boolean := False);
     --  Propagate static and dynamic predicate flags from a parent to the
!    --  subtype in a subtype declaration with and without constraints, or from
!    --  a parent to the derived type in a derived type declaration. Only_Flags
!    --  is True in the case of a derived type declaration to inherit only the
!    --  flags, not the predicate functions.
  
     procedure Inherit_Rep_Item_Chain (Typ : Entity_Id; From_Typ : Entity_Id);
     --  Inherit the rep item chain of type From_Typ without clobbering any
*************** package Sem_Util is
*** 1762,1771 ****
     function Is_Actual_Parameter (N : Node_Id) return Boolean;
     --  Determines if N is an actual parameter in a subprogram or entry call
  
-    function Is_Actual_Tagged_Parameter (N : Node_Id) return Boolean;
-    --  Determines if N is an actual parameter of a formal of tagged type in a
-    --  subprogram call.
- 
     function Is_Aliased_View (Obj : Node_Id) return Boolean;
     --  Determine if Obj is an aliased view, i.e. the name of an object to which
     --  'Access or 'Unchecked_Access can apply. Note that this routine uses the
--- 1755,1760 ----
*************** package Sem_Util is
*** 2086,2097 ****
     --  E is a subprogram. Return True is E is an implicit operation inherited
     --  by a derived type declaration.
  
-    function Is_Inherited_Operation_For_Type
-      (E   : Entity_Id;
-       Typ : Entity_Id) return Boolean;
-    --  E is a subprogram. Return True is E is an implicit operation inherited
-    --  by the derived type declaration for type Typ.
- 
     function Is_Inlinable_Expression_Function (Subp : Entity_Id) return Boolean;
     --  Return True if Subp is an expression function that fulfills all the
     --  following requirements for inlining:
--- 2075,2080 ----
*************** package Sem_Util is
*** 2106,2111 ****
--- 2089,2099 ----
     --     9. Nominal subtype of the returned object statically compatible
     --        with the result subtype of the expression function.
  
+    function Is_Internal_Block (N : Node_Id) return Boolean;
+    pragma Inline (Is_Internal_Block);
+    --  Determine if N is an N_Block_Statement with an internal label. See
+    --  Add_Block_Identifier.
+ 
     function Is_Iterator (Typ : Entity_Id) return Boolean;
     --  AI05-0139-2: Check whether Typ is one of the predefined interfaces in
     --  Ada.Iterator_Interfaces, or it is derived from one.
*************** package Sem_Util is
*** 2193,2199 ****
        Obj_Ref       : Node_Id;
        Check_Actuals : Boolean) return Boolean;
     --  Determine whether node Context denotes a "non-interfering context" (as
!    --  defined in SPARK RM 7.1.3(10)) where volatile reference Obj_Ref can
     --  safely reside. When examining references that might be located within
     --  actual parameters of a subprogram call that has not been resolved yet,
     --  Check_Actuals should be False; such references will be assumed to be
--- 2181,2187 ----
        Obj_Ref       : Node_Id;
        Check_Actuals : Boolean) return Boolean;
     --  Determine whether node Context denotes a "non-interfering context" (as
!    --  defined in SPARK RM 7.1.3(9)) where volatile reference Obj_Ref can
     --  safely reside. When examining references that might be located within
     --  actual parameters of a subprogram call that has not been resolved yet,
     --  Check_Actuals should be False; such references will be assumed to be
*************** package Sem_Util is
*** 2348,2355 ****
--- 2336,2345 ----
     function Is_Subprogram_Contract_Annotation (Item : Node_Id) return Boolean;
     --  Determine whether aspect specification or pragma Item is one of the
     --  following subprogram contract annotations:
+    --    Always_Terminates
     --    Contract_Cases
     --    Depends
+    --    Exceptional_Cases
     --    Extensions_Visible
     --    Global
     --    Post
*************** package Sem_Util is
*** 2472,2477 ****
--- 2462,2474 ----
     --  Calls Handle_Parameter for each pair of formal and actual parameters of
     --  a function, procedure, or entry call.
  
+    function Iterator_Interface_Ancestor (Typ : Entity_Id) return Entity_Id;
+    --  If Typ has an ancestor that is an iterator interface type declared in
+    --  an instance of Ada.Iterator_Interfaces, then returns that interface
+    --  type. Otherwise returns Empty. (It's not clear what it means if there
+    --  is more than one such ancestor, perhaps coming from multiple instances,
+    --  but this function returns the first such ancestor it finds. ???)
+ 
     procedure Kill_Current_Values (Last_Assignment_Only : Boolean := False);
     --  This procedure is called to clear all constant indications from all
     --  entities in the current scope and in any parent scopes if the current
*************** package Sem_Util is
*** 2623,2644 ****
     --  below. As for New_Copy_Tree, it is illegal to attempt to copy extended
     --  nodes (entities) either directly or indirectly using this function.
  
-    function New_Copy_Separate_List (List : List_Id) return List_Id;
-    --  Copy recursively a list of nodes using New_Copy_Separate_Tree
- 
-    function New_Copy_Separate_Tree (Source : Node_Id) return Node_Id;
-    --  Perform a deep copy of the subtree rooted at Source using New_Copy_Tree
-    --  replacing entities of local declarations by new entities. This behavior
-    --  is required by the backend to ensure entities uniqueness when a copy of
-    --  a subtree is attached to the tree. The new entities keep their original
-    --  names to facilitate debugging the tree copy.
- 
     function New_Copy_Tree
!      (Source           : Node_Id;
!       Map              : Elist_Id   := No_Elist;
!       New_Sloc         : Source_Ptr := No_Location;
!       New_Scope        : Entity_Id  := Empty;
!       Scopes_In_EWA_OK : Boolean    := False) return Node_Id;
     --  Perform a deep copy of the subtree rooted at Source. Entities, itypes,
     --  and nodes are handled separately as follows:
     --
--- 2620,2630 ----
     --  below. As for New_Copy_Tree, it is illegal to attempt to copy extended
     --  nodes (entities) either directly or indirectly using this function.
  
     function New_Copy_Tree
!      (Source    : Node_Id;
!       Map       : Elist_Id   := No_Elist;
!       New_Sloc  : Source_Ptr := No_Location;
!       New_Scope : Entity_Id  := Empty) return Node_Id;
     --  Perform a deep copy of the subtree rooted at Source. Entities, itypes,
     --  and nodes are handled separately as follows:
     --
*************** package Sem_Util is
*** 2649,2654 ****
--- 2635,2641 ----
     --
     --        First_Named_Actual
     --        Next_Named_Actual
+    --        Controlling_Argument
     --
     --      If applicable, the Etype field (if any) is updated to refer to a
     --      local itype or type (see below).
*************** package Sem_Util is
*** 2707,2716 ****
     --
     --  Parameter New_Scope may be used to specify a new scope for all copied
     --  entities and itypes.
-    --
-    --  Parameter Scopes_In_EWA_OK may be used to force the replication of both
-    --  scoping entities and non-scoping entities found within expression with
-    --  actions nodes.
  
     function New_External_Entity
       (Kind         : Entity_Kind;
--- 2694,2699 ----
*************** package Sem_Util is
*** 3175,3183 ****
     --  from sub(type) entity T2 to (sub)type entity T1, as well as Is_Volatile
     --  if T1 is a base type.
  
-    procedure Set_Scope_Is_Transient (V : Boolean := True);
-    --  Set the flag Is_Transient of the current scope
- 
     procedure Set_Size_Info (T1, T2 : Entity_Id);
     pragma Inline (Set_Size_Info);
     --  Copies the Esize field and Has_Biased_Representation flag from sub(type)
--- 3158,3163 ----
*************** package Sem_Util is
*** 3342,3349 ****
     function Validated_View (Typ : Entity_Id) return Entity_Id;
     --  Obtain the "validated view" of arbitrary type Typ which is suitable for
     --  verification by attribute 'Valid_Scalars. This view is the type itself
!    --  or its full view while stripping away concurrency, derivations, and
!    --  privacy.
  
     function Visible_Ancestors (Typ : Entity_Id) return Elist_Id;
     --  [Ada 2012:AI-0125-1]: Collect all the visible parents and progenitors
--- 3322,3329 ----
     function Validated_View (Typ : Entity_Id) return Entity_Id;
     --  Obtain the "validated view" of arbitrary type Typ which is suitable for
     --  verification by attribute 'Valid_Scalars. This view is the type itself
!    --  or its full view or nonlimited view, while stripping away concurrency,
!    --  derivations, and privacy.
  
     function Visible_Ancestors (Typ : Entity_Id) return Elist_Id;
     --  [Ada 2012:AI-0125-1]: Collect all the visible parents and progenitors
*************** package Sem_Util is
*** 3373,3384 ****
     --  is potentially issued: it is the visible entity in the former case, and
     --  the use_clause in the latter case.
  
!    procedure Wrong_Type (Expr : Node_Id; Expected_Type : Entity_Id);
     --  Output error message for incorrectly typed expression. Expr is the node
     --  for the incorrectly typed construct (Etype (Expr) is the type found),
     --  and Expected_Type is the entity for the expected type. Note that Expr
     --  does not have to be a subexpression, anything with an Etype field may
!    --  be used.
  
     function Yields_Synchronized_Object (Typ : Entity_Id) return Boolean;
     --  Determine whether type Typ "yields synchronized object" as specified by
--- 3353,3368 ----
     --  is potentially issued: it is the visible entity in the former case, and
     --  the use_clause in the latter case.
  
!    procedure Wrong_Type
!      (Expr          : Node_Id;
!       Expected_Type : Entity_Id;
!       Multiple      : Boolean := False);
     --  Output error message for incorrectly typed expression. Expr is the node
     --  for the incorrectly typed construct (Etype (Expr) is the type found),
     --  and Expected_Type is the entity for the expected type. Note that Expr
     --  does not have to be a subexpression, anything with an Etype field may
!    --  be used. If Multiple is False, do not output the message if an error
!    --  has already been posted for Expr.
  
     function Yields_Synchronized_Object (Typ : Entity_Id) return Boolean;
     --  Determine whether type Typ "yields synchronized object" as specified by
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_warn.adb gcc-14.1.0/gcc/ada/sem_warn.adb
*** gcc-13.2.0/gcc/ada/sem_warn.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_warn.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sem_Warn is
*** 353,359 ****
              begin
                 --  One argument, so check the argument
  
!                if Present (PA) and then List_Length (PA) = 1 then
                    if Nkind (First (PA)) = N_Parameter_Association then
                       Find_Var (Explicit_Actual_Parameter (First (PA)));
                    else
--- 353,359 ----
              begin
                 --  One argument, so check the argument
  
!                if List_Length (PA) = 1 then
                    if Nkind (First (PA)) = N_Parameter_Association then
                       Find_Var (Explicit_Actual_Parameter (First (PA)));
                    else
*************** package body Sem_Warn is
*** 591,597 ****
              begin
                 Actual := First_Actual (N);
                 while Present (Actual) loop
!                   if Is_Access_Subprogram_Type (Etype (Actual)) then
                       return Abandon;
                    else
                       Next_Actual (Actual);
--- 591,599 ----
              begin
                 Actual := First_Actual (N);
                 while Present (Actual) loop
!                   if No (Etype (Actual))
!                     or else Is_Access_Subprogram_Type (Etype (Actual))
!                   then
                       return Abandon;
                    else
                       Next_Actual (Actual);
*************** package body Sem_Warn is
*** 855,860 ****
--- 857,866 ----
        --  from another unit. This is true for entities in packages that are at
        --  the library level.
  
+       function Type_OK_For_No_Value_Assigned (T : Entity_Id) return Boolean;
+       --  Return True if it is OK for an object of type T to be referenced
+       --  without having been assigned a value in the source.
+ 
        function Warnings_Off_E1 return Boolean;
        --  Return True if Warnings_Off is set for E1, or for its Etype (E1T),
        --  or for the base type of E1T.
*************** package body Sem_Warn is
*** 1119,1124 ****
--- 1125,1161 ----
           end loop;
        end Publicly_Referenceable;
  
+       -----------------------------------
+       -- Type_OK_For_No_Value_Assigned --
+       -----------------------------------
+ 
+       function Type_OK_For_No_Value_Assigned (T : Entity_Id) return Boolean is
+       begin
+          --  No information for generic types, so be conservative
+ 
+          if Is_Generic_Type (T) then
+             return False;
+          end if;
+ 
+          --  Even if objects of access types are implicitly initialized to null
+ 
+          if Is_Access_Type (T) then
+             return False;
+          end if;
+ 
+          --  The criterion is whether the type is (partially) initialized in
+          --  the source, in other words we disregard implicit default values.
+          --  But we do not require full initialization for by-reference types
+          --  because they are complex and it may not be possible to have it.
+ 
+          if Is_By_Reference_Type (T) then
+             return
+               Is_Partially_Initialized_Type (T, Include_Implicit => False);
+          else
+             return Is_Fully_Initialized_Type (T);
+          end if;
+       end Type_OK_For_No_Value_Assigned;
+ 
        ---------------------
        -- Warnings_Off_E1 --
        ---------------------
*************** package body Sem_Warn is
*** 1412,1421 ****
                            and then not Warnings_Off_E1
                            and then not Has_Junk_Name (E1)
                          then
!                            if Is_Access_Type (E1T)
!                              or else
!                                not Is_Partially_Initialized_Type (E1T, False)
!                            then
                                Output_Reference_Error
                                  ("?v?variable& is read but never assigned!");
                             end if;
--- 1449,1455 ----
                            and then not Warnings_Off_E1
                            and then not Has_Junk_Name (E1)
                          then
!                            if not Type_OK_For_No_Value_Assigned (E1T) then
                                Output_Reference_Error
                                  ("?v?variable& is read but never assigned!");
                             end if;
*************** package body Sem_Warn is
*** 1454,1467 ****
                    goto Continue;
                 end if;
  
!                --  Check for unset reference. If type of object has
!                --  preelaborable initialization, warning is misleading.
  
                 if Warn_On_No_Value_Assigned
                   and then Present (UR)
!                  and then not Known_To_Have_Preelab_Init (Etype (E1))
                 then
- 
                    --  Don't issue warning if appearing inside Initial_Condition
                    --  pragma or aspect, since that expression is not evaluated
                    --  at the point where it occurs in the source.
--- 1488,1499 ----
                    goto Continue;
                 end if;
  
!                --  Check for unset reference
  
                 if Warn_On_No_Value_Assigned
                   and then Present (UR)
!                  and then not Type_OK_For_No_Value_Assigned (E1T)
                 then
                    --  Don't issue warning if appearing inside Initial_Condition
                    --  pragma or aspect, since that expression is not evaluated
                    --  at the point where it occurs in the source.
diff -Nrcpad gcc-13.2.0/gcc/ada/sem_warn.ads gcc-14.1.0/gcc/ada/sem_warn.ads
*** gcc-13.2.0/gcc/ada/sem_warn.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sem_warn.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/set_targ.adb gcc-14.1.0/gcc/ada/set_targ.adb
*** gcc-13.2.0/gcc/ada/set_targ.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/set_targ.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 943,949 ****
              Long_Long_Size             := Get_Long_Long_Size;
              Long_Size                  := Get_Long_Size;
              Maximum_Alignment          := Get_Maximum_Alignment;
!             Max_Unaligned_Field        := Get_Max_Unaligned_Field;
              Pointer_Size               := Get_Pointer_Size;
              Short_Enums                := Get_Short_Enums;
              Short_Size                 := Get_Short_Size;
--- 943,949 ----
              Long_Long_Size             := Get_Long_Long_Size;
              Long_Size                  := Get_Long_Size;
              Maximum_Alignment          := Get_Maximum_Alignment;
!             Max_Unaligned_Field        := 1;
              Pointer_Size               := Get_Pointer_Size;
              Short_Enums                := Get_Short_Enums;
              Short_Size                 := Get_Short_Size;
diff -Nrcpad gcc-13.2.0/gcc/ada/set_targ.ads gcc-14.1.0/gcc/ada/set_targ.ads
*** gcc-13.2.0/gcc/ada/set_targ.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/set_targ.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Set_Targ is
*** 74,80 ****
     Long_Long_Size             : Pos; -- Standard.Long_Long_Integer'Size
     Long_Size                  : Pos; -- Standard.Long_Integer'Size
     Maximum_Alignment          : Pos; -- Maximum permitted alignment
!    Max_Unaligned_Field        : Pos; -- Maximum size for unaligned bit field
     Pointer_Size               : Pos; -- System.Address'Size
     Short_Enums                : Nat; -- Foreign enums use short size?
     Short_Size                 : Pos; -- Standard.Short_Integer'Size
--- 74,80 ----
     Long_Long_Size             : Pos; -- Standard.Long_Long_Integer'Size
     Long_Size                  : Pos; -- Standard.Long_Integer'Size
     Maximum_Alignment          : Pos; -- Maximum permitted alignment
!    Max_Unaligned_Field        : Pos; -- Kept only for backward compatibility
     Pointer_Size               : Pos; -- System.Address'Size
     Short_Enums                : Nat; -- Foreign enums use short size?
     Short_Size                 : Pos; -- Standard.Short_Integer'Size
diff -Nrcpad gcc-13.2.0/gcc/ada/sfn_scan.adb gcc-14.1.0/gcc/ada/sfn_scan.adb
*** gcc-13.2.0/gcc/ada/sfn_scan.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sfn_scan.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sfn_scan.ads gcc-14.1.0/gcc/ada/sfn_scan.ads
*** gcc-13.2.0/gcc/ada/sfn_scan.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sfn_scan.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sigtramp-arm-qnx.c gcc-14.1.0/gcc/ada/sigtramp-arm-qnx.c
*** gcc-13.2.0/gcc/ada/sigtramp-arm-qnx.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sigtramp-arm-qnx.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2023, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sigtramp-armdroid.c gcc-14.1.0/gcc/ada/sigtramp-armdroid.c
*** gcc-13.2.0/gcc/ada/sigtramp-armdroid.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sigtramp-armdroid.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2015-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2015-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sigtramp-ios.c gcc-14.1.0/gcc/ada/sigtramp-ios.c
*** gcc-13.2.0/gcc/ada/sigtramp-ios.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sigtramp-ios.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2015-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2015-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sigtramp-qnx.c gcc-14.1.0/gcc/ada/sigtramp-qnx.c
*** gcc-13.2.0/gcc/ada/sigtramp-qnx.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sigtramp-qnx.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2017-2023, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2017-2024, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sigtramp-vxworks-target.h gcc-14.1.0/gcc/ada/sigtramp-vxworks-target.h
*** gcc-13.2.0/gcc/ada/sigtramp-vxworks-target.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sigtramp-vxworks-target.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                     Asm Implementation Include File                      *
   *                                                                          *
!  *         Copyright (C) 2011-2023, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                     Asm Implementation Include File                      *
   *                                                                          *
!  *         Copyright (C) 2011-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sigtramp-vxworks.c gcc-14.1.0/gcc/ada/sigtramp-vxworks.c
*** gcc-13.2.0/gcc/ada/sigtramp-vxworks.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sigtramp-vxworks.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2023, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sigtramp.h gcc-14.1.0/gcc/ada/sigtramp.h
*** gcc-13.2.0/gcc/ada/sigtramp.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sigtramp.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2011-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2011-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/sinfo-cn.adb gcc-14.1.0/gcc/ada/sinfo-cn.adb
*** gcc-13.2.0/gcc/ada/sinfo-cn.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinfo-cn.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinfo-cn.ads gcc-14.1.0/gcc/ada/sinfo-cn.ads
*** gcc-13.2.0/gcc/ada/sinfo-cn.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinfo-cn.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinfo-utils.adb gcc-14.1.0/gcc/ada/sinfo-utils.adb
*** gcc-13.2.0/gcc/ada/sinfo-utils.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinfo-utils.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sinfo.Utils is
*** 50,56 ****
  
     --  Either way, gnat1 will stop when node 12345 is created, or certain other
     --  interesting operations are performed, such as Rewrite. To see exactly
!    --  which operations, search for "pragma Debug" below.
  
     --  The second method is much faster if the amount of Ada code being
     --  compiled is large.
--- 50,56 ----
  
     --  Either way, gnat1 will stop when node 12345 is created, or certain other
     --  interesting operations are performed, such as Rewrite. To see exactly
!    --  which operations, search for "New_Node_Debugging_Output" in Atree.
  
     --  The second method is much faster if the amount of Ada code being
     --  compiled is large.
diff -Nrcpad gcc-13.2.0/gcc/ada/sinfo-utils.ads gcc-14.1.0/gcc/ada/sinfo-utils.ads
*** gcc-13.2.0/gcc/ada/sinfo-utils.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinfo-utils.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2023, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2024, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sinfo.Utils is
*** 157,162 ****
--- 157,178 ----
       (N : N_Inclusive_Has_Entity; Val : Node_Id)
        renames Set_Entity_Or_Associated_Node;
  
+    ---------------------------------------------------
+    -- Aliases for Aggregate_Bounds_Or_Ancestor_Type --
+    ---------------------------------------------------
+ 
+    function Aggregate_Bounds (N : Node_Id) return Node_Id
+       renames Aggregate_Bounds_Or_Ancestor_Type;
+ 
+    function Ancestor_Type (N : Node_Id) return Node_Id
+       renames Aggregate_Bounds_Or_Ancestor_Type;
+ 
+    procedure Set_Aggregate_Bounds (N : Node_Id; Val : Node_Id)
+       renames Set_Aggregate_Bounds_Or_Ancestor_Type;
+ 
+    procedure Set_Ancestor_Type (N : Node_Id; Val : Node_Id)
+       renames Set_Aggregate_Bounds_Or_Ancestor_Type;
+ 
     ---------------
     -- Debugging --
     ---------------
diff -Nrcpad gcc-13.2.0/gcc/ada/sinfo.adb gcc-14.1.0/gcc/ada/sinfo.adb
*** gcc-13.2.0/gcc/ada/sinfo.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinfo.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinfo.ads gcc-14.1.0/gcc/ada/sinfo.ads
*** gcc-13.2.0/gcc/ada/sinfo.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinfo.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sinfo is
*** 82,93 ****
     --                 for this purpose, so e.g. in X := (if A then B else C);
     --                 Paren_Count for the right side will be 1.
  
-    --   Comes_From_Check_Or_Contract
-    --                 This flag is present in all N_If_Statement nodes and
-    --                 gets set when an N_If_Statement is generated as part of
-    --                 the expansion of a Check, Assert, or contract-related
-    --                 pragma.
- 
     --   Comes_From_Source
     --                 This flag is present in all nodes. It is set if the
     --                 node is built by the scanner or parser, and clear if
--- 82,87 ----
*************** package Sinfo is
*** 389,409 ****
     --  abbreviations are used:
  
     --    "plus fields for binary operator"
!    --       Chars                     Name_Id for the operator
!    --       Left_Opnd                 left operand expression
!    --       Right_Opnd                right operand expression
!    --       Entity                    defining entity for operator
!    --       Associated_Node           for generic processing
!    --       Do_Overflow_Check         set if overflow check needed
!    --       Has_Private_View          set in generic units.
  
     --    "plus fields for unary operator"
!    --       Chars                     Name_Id for the operator
!    --       Right_Opnd                right operand expression
!    --       Entity                    defining entity for operator
!    --       Associated_Node           for generic processing
!    --       Do_Overflow_Check         set if overflow check needed
!    --       Has_Private_View          set in generic units.
  
     --    "plus fields for expression"
     --       Paren_Count               number of parentheses levels
--- 383,405 ----
     --  abbreviations are used:
  
     --    "plus fields for binary operator"
!    --       Chars                       Name_Id for the operator
!    --       Left_Opnd                   left operand expression
!    --       Right_Opnd                  right operand expression
!    --       Entity                      defining entity for operator
!    --       Associated_Node             for generic processing
!    --       Do_Overflow_Check           set if overflow check needed
!    --       Has_Private_View            set in generic units
!    --       Has_Secondary_Private_View  set in generic units
  
     --    "plus fields for unary operator"
!    --       Chars                       Name_Id for the operator
!    --       Right_Opnd                  right operand expression
!    --       Entity                      defining entity for operator
!    --       Associated_Node             for generic processing
!    --       Do_Overflow_Check           set if overflow check needed
!    --       Has_Private_View            set in generic units
!    --       Has_Secondary_Private_View  set in generic units
  
     --    "plus fields for expression"
     --       Paren_Count               number of parentheses levels
*************** package Sinfo is
*** 830,836 ****
     --    an unconstrained packed array and the dereference is the prefix of
     --    a 'Size attribute reference, or 2) when the dereference node is
     --    created for the expansion of an allocator with a subtype_indication
!    --    and the designated subtype is an unconstrained discriminated type.
  
     --  Address_Warning_Posted
     --    Present in N_Attribute_Definition nodes. Set to indicate that we have
--- 826,832 ----
     --    an unconstrained packed array and the dereference is the prefix of
     --    a 'Size attribute reference, or 2) when the dereference node is
     --    created for the expansion of an allocator with a subtype_indication
!    --    and the designated subtype is an unconstrained composite type.
  
     --  Address_Warning_Posted
     --    Present in N_Attribute_Definition nodes. Set to indicate that we have
*************** package Sinfo is
*** 849,854 ****
--- 845,855 ----
     --    is used for translation of the at end handler into a normal exception
     --    handler.
  
+    --  Ancestor_Type
+    --    Present in record N_Aggregate nodes. Used to store the first global
+    --    ancestor of the type of the aggregate in a generic context, if any,
+    --    when the type is a derived tagged type. Otherwise Empty.
+ 
     --  Aspect_On_Partial_View
     --    Present on an N_Aspect_Specification node. For an aspect that applies
     --    to a type entity, indicates whether the specification appears on the
*************** package Sinfo is
*** 932,937 ****
--- 933,944 ----
     --    a pragma Import or Interface applies, in which case no body is
     --    permitted (in Ada 83 or Ada 95).
  
+    --  Cannot_Be_Superflat
+    --    This flag is present in N_Range nodes. It is set if the range is of a
+    --    discrete type and cannot be superflat, i.e. it is guaranteed that the
+    --    inequality High_Bound >= Low_Bound - 1 is true. At the time of this
+    --    writing, it is only used by the code generator to streamline things.
+ 
     --  Cleanup_Actions
     --    Present in block statements created for transient blocks, contains
     --    additional cleanup actions carried over from the transient scope.
*************** package Sinfo is
*** 945,950 ****
--- 952,963 ----
     --    attribute definition clause is given, rather than testing this at the
     --    freeze point.
  
+    --  Comes_From_Check_Or_Contract
+    --    This flag is present in all N_If_Statement nodes and
+    --    gets set when an N_If_Statement is generated as part of
+    --    the expansion of a Check, Assert, or contract-related
+    --    pragma.
+ 
     --  Comes_From_Extended_Return_Statement
     --    Present in N_Simple_Return_Statement nodes. True if this node was
     --    constructed as part of the N_Extended_Return_Statement expansion.
*************** package Sinfo is
*** 954,959 ****
--- 967,986 ----
     --    was constructed as part of the expansion of an iterator
     --    specification.
  
+    --  Compare_Type
+    --    Present in N_Op_Compare nodes. Set during resolution to the type of
+    --    the operands. It is used to propagate the type of the operands from
+    --    a N_Op_Compare node in a generic construct to the nodes created from
+    --    it in the various instances, when this type is global to the generic
+    --    construct. Resolution for global types cannot be redone in instances
+    --    because the instantiation can be done out of context, e.g. for bodies,
+    --    and the visibility of global types is incorrect in this case; that is
+    --    why the result of the resolution done in the generic construct needs
+    --    to be available in the instances but, unlike for arithmetic operators,
+    --    the Etype cannot be used to that effect for comparison operators. It
+    --    is also used as the type subject to the Has_Private_View processing on
+    --    the nodes instead of the Etype.
+ 
     --  Compile_Time_Known_Aggregate
     --    Present in N_Aggregate nodes. Set for aggregates which can be fully
     --    evaluated at compile time without raising constraint error. Such
*************** package Sinfo is
*** 1046,1053 ****
     --    and their first named subtypes.
  
     --  Corresponding_Spec
!    --    This field is set in subprogram, package, task, and protected body
!    --    nodes, where it points to the defining entity in the corresponding
     --    spec. The attribute is also set in N_With_Clause nodes where it points
     --    to the defining entity for the with'ed spec, and in a subprogram
     --    renaming declaration when it is a Renaming_As_Body. The field is Empty
--- 1073,1080 ----
     --    and their first named subtypes.
  
     --  Corresponding_Spec
!    --    This field is set in subprogram, package, task, entry and protected
!    --    body nodes where it points to the defining entity in the corresponding
     --    spec. The attribute is also set in N_With_Clause nodes where it points
     --    to the defining entity for the with'ed spec, and in a subprogram
     --    renaming declaration when it is a Renaming_As_Body. The field is Empty
*************** package Sinfo is
*** 1323,1330 ****
     --    to the entity for the first subtype.
  
     --  Float_Truncate
!    --    A flag present in type conversion nodes. This is used for float to
!    --    integer conversions where truncation is required rather than rounding.
  
     --  Forwards_OK
     --    A flag present in the N_Assignment_Statement node. It is used only
--- 1350,1358 ----
     --    to the entity for the first subtype.
  
     --  Float_Truncate
!    --    A flag present in type conversion nodes. It is used for floating-point
!    --    to fixed-point or integer conversions, where truncation is required
!    --    rather than rounding.
  
     --  Forwards_OK
     --    A flag present in the N_Assignment_Statement node. It is used only
*************** package Sinfo is
*** 1450,1455 ****
--- 1478,1490 ----
     --    A flag present in N_Subprogram_Body and N_Task_Definition nodes to
     --    flag the presence of a pragma Relative_Deadline.
  
+    --  Has_Secondary_Private_View
+    --    A flag present in generic nodes that have an entity, to indicate that
+    --    the node is either of an access type whose Designated_Type is private
+    --    or of an array type whose Component_Type is private. Used to exchange
+    --    private and full declarations if the visibility at instantiation is
+    --    different from the visibility at generic definition.
+ 
     --  Has_Self_Reference
     --    Present in N_Aggregate and N_Extension_Aggregate. Indicates that one
     --    of the expressions contains an access attribute reference to the
*************** package Sinfo is
*** 1693,1711 ****
     --    Present in N_Contract nodes. Set if the contract has already undergone
     --    expansion activities.
  
-    --  Is_Finalization_Wrapper
-    --    This flag is present in N_Block_Statement nodes. It is set when the
-    --    block acts as a wrapper of a handled construct which has controlled
-    --    objects. The wrapper prevents interference between exception handlers
-    --    and At_End handlers.
- 
     --  Is_Generic_Contract_Pragma
     --    This flag is present in N_Pragma nodes. It is set when the pragma is
     --    a source construct, applies to a generic unit or its body, and denotes
     --    one of the following contract-related annotations:
     --      Abstract_State
     --      Contract_Cases
     --      Depends
     --      Extensions_Visible
     --      Global
     --      Initial_Condition
--- 1728,1742 ----
     --    Present in N_Contract nodes. Set if the contract has already undergone
     --    expansion activities.
  
     --  Is_Generic_Contract_Pragma
     --    This flag is present in N_Pragma nodes. It is set when the pragma is
     --    a source construct, applies to a generic unit or its body, and denotes
     --    one of the following contract-related annotations:
     --      Abstract_State
+    --      Always_Terminates
     --      Contract_Cases
     --      Depends
+    --      Exceptional_Cases
     --      Extensions_Visible
     --      Global
     --      Initial_Condition
*************** package Sinfo is
*** 1720,1725 ****
--- 1751,1757 ----
     --      Refined_Global
     --      Refined_Post
     --      Refined_State
+    --      Subprogram_Variant
     --      Test_Case
  
     --  Is_Homogeneous_Aggregate
*************** package Sinfo is
*** 2063,2074 ****
     --    is undefined and should not be read).
  
     --  No_Ctrl_Actions
!    --    Present in N_Assignment_Statement to indicate that no Finalize nor
!    --    Adjust should take place on this assignment even though the RHS is
!    --    controlled. Also indicates that the primitive _assign should not be
!    --    used for a tagged assignment. This is used in init procs and aggregate
!    --    expansions where the generated assignments are initializations, not
!    --    real assignments.
  
     --  No_Elaboration_Check
     --    NOTE: this flag is relevant only for the legacy ABE mechanism and
--- 2095,2108 ----
     --    is undefined and should not be read).
  
     --  No_Ctrl_Actions
!    --    Present in N_Assignment_Statement to indicate that neither Finalize
!    --    nor Adjust should take place on this assignment even though the LHS
!    --    and RHS are controlled. Also to indicate that the primitive _assign
!    --    should not be used for a tagged assignment. This flag is used in init
!    --    proc and aggregate expansion where the generated assignments are
!    --    initializations, not real assignments. Note that it also suppresses
!    --    the creation of transient scopes around the N_Assignment_Statement,
!    --    in other words it disables all controlled actions for the assignment.
  
     --  No_Elaboration_Check
     --    NOTE: this flag is relevant only for the legacy ABE mechanism and
*************** package Sinfo is
*** 2088,2093 ****
--- 2122,2136 ----
     --    to generate the proper message (see Sem_Util.Check_Unused_Withs for
     --    full details).
  
+    --  No_Finalize_Actions
+    --    Present in N_Assignment_Statement to indicate that no Finalize should
+    --    take place on this assignment even though the LHS is controlled. Also
+    --    to indicate that the primitive _assign should not be used for a tagged
+    --    assignment. This flag is only used in aggregates expansion where the
+    --    generated assignments are initializations, not real assignments. Note
+    --    that, unlike the No_Ctrl_Actions flag, it does *not* suppress the
+    --    creation of transient scopes around the N_Assignment_Statement.
+ 
     --  No_Initialization
     --    Present in N_Object_Declaration and N_Allocator to indicate that the
     --    object must not be initialized (by Initialize or call to an init
*************** package Sinfo is
*** 2102,2113 ****
     --    It is used to indicate that processing for extended overflow checking
     --    modes is not required (this is used to prevent infinite recursion).
  
-    --  No_Side_Effect_Removal
-    --    Present in N_Function_Call nodes. Set when a function call does not
-    --    require side effect removal. This attribute suppresses the generation
-    --    of a temporary to capture the result of the function which eventually
-    --    replaces the function call.
- 
     --  No_Truncation
     --    Present in N_Unchecked_Type_Conversion node. This flag has an effect
     --    only if the RM_Size of the source is greater than the RM_Size of the
--- 2145,2150 ----
*************** package Sinfo is
*** 2310,2316 ****
     --    can be set in N_Object_Declaration nodes, to similarly suppress any
     --    checks on the initializing value. In assignment statements it also
     --    suppresses access checks in the generated code for out- and in-out
!    --    parameters in entry calls, as well as length checks.
  
     --  Suppress_Loop_Warnings
     --    Used in N_Loop_Statement node to indicate that warnings within the
--- 2347,2353 ----
     --    can be set in N_Object_Declaration nodes, to similarly suppress any
     --    checks on the initializing value. In assignment statements it also
     --    suppresses access checks in the generated code for out- and in-out
!    --    parameters in entry calls, as well as discriminant and length checks.
  
     --  Suppress_Loop_Warnings
     --    Used in N_Loop_Statement node to indicate that warnings within the
*************** package Sinfo is
*** 2507,2512 ****
--- 2544,2550 ----
        --  Is_SPARK_Mode_On_Node
        --  Is_Elaboration_Warnings_OK_Node
        --  Has_Private_View (set in generic units)
+       --  Has_Secondary_Private_View (set in generic units)
        --  Redundant_Use
        --  Atomic_Sync_Required
        --  plus fields for expression
*************** package Sinfo is
*** 2590,2595 ****
--- 2628,2634 ----
        --  Entity
        --  Associated_Node
        --  Has_Private_View (set in generic units)
+       --  Has_Secondary_Private_View (set in generic units)
        --  plus fields for expression
  
        --  Note: the Entity field will be missing (set to Empty) for character
*************** package Sinfo is
*** 2783,2794 ****
        --  fields are defined (and access subprograms declared) in package
        --  Einfo.
  
-       --  Note: N_Defining_Identifier is an extended node whose fields are
-       --  deliberately laid out to match the layout of fields in an ordinary
-       --  N_Identifier node allowing for easy alteration of an identifier
-       --  node into a defining identifier node. For details, see procedure
-       --  Sinfo.CN.Change_Identifier_To_Defining_Identifier.
- 
        --  N_Defining_Identifier
        --  Sloc points to identifier
        --  Chars contains the Name_Id for the identifier
--- 2822,2827 ----
*************** package Sinfo is
*** 3086,3091 ****
--- 3119,3125 ----
        --  Sloc points to ..
        --  Low_Bound
        --  High_Bound
+       --  Cannot_Be_Superflat
        --  Includes_Infinities
        --  plus fields for expression
  
*************** package Sinfo is
*** 3129,3140 ****
        --  additional fields are defined (and access subprograms declared)
        --  in package Einfo.
  
-       --  Note: N_Defining_Character_Literal is an extended node whose fields
-       --  are deliberately laid out to match layout of fields in an ordinary
-       --  N_Character_Literal node, allowing for easy alteration of a character
-       --  literal node into a defining character literal node. For details, see
-       --  Sinfo.CN.Change_Character_Literal_To_Defining_Character_Literal.
- 
        --  N_Defining_Character_Literal
        --  Sloc points to literal
        --  Chars contains the Name_Id for the identifier
--- 3163,3168 ----
*************** package Sinfo is
*** 4058,4064 ****
        --  Expressions (set to No_List if none or null record case)
        --  Component_Associations (set to No_List if none)
        --  Null_Record_Present
!       --  Aggregate_Bounds
        --  Associated_Node
        --  Compile_Time_Known_Aggregate
        --  Expansion_Delayed
--- 4086,4092 ----
        --  Expressions (set to No_List if none or null record case)
        --  Component_Associations (set to No_List if none)
        --  Null_Record_Present
!       --  Aggregate_Bounds (array) or Ancestor_Type (record)
        --  Associated_Node
        --  Compile_Time_Known_Aggregate
        --  Expansion_Delayed
*************** package Sinfo is
*** 4492,4522 ****
--- 4520,4556 ----
  
        --  N_Op_Eq
        --  Sloc points to =
+       --  Compare_Type
        --  plus fields for binary operator
        --  plus fields for expression
  
        --  N_Op_Ne
        --  Sloc points to /=
+       --  Compare_Type
        --  plus fields for binary operator
        --  plus fields for expression
  
        --  N_Op_Lt
        --  Sloc points to <
+       --  Compare_Type
        --  plus fields for binary operator
        --  plus fields for expression
  
        --  N_Op_Le
        --  Sloc points to <=
+       --  Compare_Type
        --  plus fields for binary operator
        --  plus fields for expression
  
        --  N_Op_Gt
        --  Sloc points to >
+       --  Compare_Type
        --  plus fields for binary operator
        --  plus fields for expression
  
        --  N_Op_Ge
        --  Sloc points to >=
+       --  Compare_Type
        --  plus fields for binary operator
        --  plus fields for expression
  
*************** package Sinfo is
*** 4929,4934 ****
--- 4963,4969 ----
        --  Forwards_OK
        --  Backwards_OK
        --  No_Ctrl_Actions
+       --  No_Finalize_Actions
        --  Has_Target_Names
        --  Is_Elaboration_Code
        --  Componentwise_Assignment
*************** package Sinfo is
*** 5202,5208 ****
        --  Is_Task_Allocation_Block
        --  Exception_Junk
        --  Is_Abort_Block
-       --  Is_Finalization_Wrapper
        --  Is_Initialization_Block
        --  Is_Task_Master
        --  At_End_Proc (set to Empty if no clean up procedure)
--- 5237,5242 ----
*************** package Sinfo is
*** 5371,5376 ****
--- 5405,5411 ----
        --  Associated_Node Note this is shared with Entity
        --  Etype
        --  Has_Private_View (set in generic units)
+       --  Has_Secondary_Private_View (set in generic units)
  
        --  Note: the Strval field may be set to No_String for generated
        --  operator symbols that are known not to be string literals
*************** package Sinfo is
*** 5387,5399 ****
        --  additional fields are defined (and access subprograms declared)
        --  in package Einfo.
  
-       --  Note: N_Defining_Operator_Symbol is an extended node whose fields
-       --  are deliberately laid out to match the layout of fields in an
-       --  ordinary N_Operator_Symbol node allowing for easy alteration of
-       --  an operator symbol node into a defining operator symbol node.
-       --  See Sinfo.CN.Change_Operator_Symbol_To_Defining_Operator_Symbol
-       --  for further details.
- 
        --  N_Defining_Operator_Symbol
        --  Sloc points to literal
        --  Chars contains the Name_Id for the operator symbol
--- 5422,5427 ----
*************** package Sinfo is
*** 5555,5561 ****
        --  Is_Elaboration_Warnings_OK_Node
        --  No_Elaboration_Check
        --  Is_Expanded_Build_In_Place_Call
-       --  No_Side_Effect_Removal
        --  Is_Known_Guaranteed_ABE
        --  plus fields for expression
  
--- 5583,5588 ----
*************** package Sinfo is
*** 6204,6209 ****
--- 6231,6237 ----
        --  Declarations
        --  Handled_Statement_Sequence
        --  Activation_Chain_Entity
+       --  Corresponding_Spec
        --  At_End_Proc (set to Empty if no clean up procedure)
  
        -----------------------------------
*************** package Sinfo is
*** 7960,7972 ****
        --  operation) are also in this list.
  
        --  Contract_Test_Cases contains a collection of pragmas that correspond
!       --  to aspects/pragmas Contract_Cases, Test_Case and Subprogram_Variant.
!       --  The ordering in the list is in LIFO fashion.
  
        --  Classifications contains pragmas that either declare, categorize, or
        --  establish dependencies between subprogram or package inputs and
        --  outputs. Currently the following pragmas appear in this list:
        --    Abstract_States
        --    Async_Readers
        --    Async_Writers
        --    Constant_After_Elaboration
--- 7988,8001 ----
        --  operation) are also in this list.
  
        --  Contract_Test_Cases contains a collection of pragmas that correspond
!       --  to aspects/pragmas Contract_Cases, Exceptional_Cases, Test_Case and
!       --  Subprogram_Variant. The ordering in the list is in LIFO fashion.
  
        --  Classifications contains pragmas that either declare, categorize, or
        --  establish dependencies between subprogram or package inputs and
        --  outputs. Currently the following pragmas appear in this list:
        --    Abstract_States
+       --    Always_Terminates
        --    Async_Readers
        --    Async_Writers
        --    Constant_After_Elaboration
*************** package Sinfo is
*** 8012,8017 ****
--- 8041,8047 ----
        --  Is_SPARK_Mode_On_Node
        --  Is_Elaboration_Warnings_OK_Node
        --  Has_Private_View (set in generic units)
+       --  Has_Secondary_Private_View (set in generic units)
        --  Redundant_Use
        --  Atomic_Sync_Required
        --  plus fields for expression
diff -Nrcpad gcc-13.2.0/gcc/ada/sinput-c.adb gcc-14.1.0/gcc/ada/sinput-c.adb
*** gcc-13.2.0/gcc/ada/sinput-c.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinput-c.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinput-c.ads gcc-14.1.0/gcc/ada/sinput-c.ads
*** gcc-13.2.0/gcc/ada/sinput-c.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinput-c.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinput-d.adb gcc-14.1.0/gcc/ada/sinput-d.adb
*** gcc-13.2.0/gcc/ada/sinput-d.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinput-d.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinput-d.ads gcc-14.1.0/gcc/ada/sinput-d.ads
*** gcc-13.2.0/gcc/ada/sinput-d.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinput-d.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinput-l.adb gcc-14.1.0/gcc/ada/sinput-l.adb
*** gcc-13.2.0/gcc/ada/sinput-l.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinput-l.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinput-l.ads gcc-14.1.0/gcc/ada/sinput-l.ads
*** gcc-13.2.0/gcc/ada/sinput-l.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinput-l.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sinput.adb gcc-14.1.0/gcc/ada/sinput.adb
*** gcc-13.2.0/gcc/ada/sinput.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinput.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sinput is
*** 460,478 ****
        end if;
     end Get_Logical_Line_Number;
  
-    ---------------------------------
-    -- Get_Logical_Line_Number_Img --
-    ---------------------------------
- 
-    function Get_Logical_Line_Number_Img
-      (P : Source_Ptr) return String
-    is
-    begin
-       Name_Len := 0;
-       Add_Nat_To_Name_Buffer (Nat (Get_Logical_Line_Number (P)));
-       return Name_Buffer (1 .. Name_Len);
-    end Get_Logical_Line_Number_Img;
- 
     ------------------------------
     -- Get_Physical_Line_Number --
     ------------------------------
--- 460,465 ----
*************** package body Sinput is
*** 550,556 ****
                         or else S = Standard_ASCII_Location
                         or else S = System_Location;
  
!          pragma Assert ((S > No_Location) xor Special);
           pragma Assert (Result in Source_File.First .. Source_File.Last);
  
           SFR : Source_File_Record renames Source_File.Table (Result);
--- 537,543 ----
                         or else S = Standard_ASCII_Location
                         or else S = System_Location;
  
!          pragma Assert (S > No_Location xor Special);
           pragma Assert (Result in Source_File.First .. Source_File.Last);
  
           SFR : Source_File_Record renames Source_File.Table (Result);
diff -Nrcpad gcc-13.2.0/gcc/ada/sinput.ads gcc-14.1.0/gcc/ada/sinput.ads
*** gcc-13.2.0/gcc/ada/sinput.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sinput.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Sinput is
*** 541,551 ****
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
-    function Get_Logical_Line_Number_Img
-      (P : Source_Ptr) return String;
-    --  Same as above function, but returns the line number as a string of
-    --  decimal digits, with no leading space. Destroys Name_Buffer.
- 
     function Get_Physical_Line_Number
       (P : Source_Ptr) return Physical_Line_Number;
     --  The line number of the specified source position is obtained by
--- 541,546 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/snames.adb-tmpl gcc-14.1.0/gcc/ada/snames.adb-tmpl
*** gcc-13.2.0/gcc/ada/snames.adb-tmpl	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/snames.adb-tmpl	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2021, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/snames.ads-tmpl gcc-14.1.0/gcc/ada/snames.ads-tmpl
*** gcc-13.2.0/gcc/ada/snames.ads-tmpl	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/snames.ads-tmpl	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2021, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Snames is
*** 156,162 ****
--- 156,164 ----
     Name_Dynamic_Predicate              : constant Name_Id := N + $;
     Name_Exclusive_Functions            : constant Name_Id := N + $;
     Name_Full_Access_Only               : constant Name_Id := N + $;
+    Name_Ghost_Predicate                : constant Name_Id := N + $;
     Name_Integer_Literal                : constant Name_Id := N + $;
+    Name_Local_Restrictions             : constant Name_Id := N + $;
     Name_No_Controlled_Parts            : constant Name_Id := N + $;
     Name_No_Task_Parts                  : constant Name_Id := N + $;
     Name_Real_Literal                   : constant Name_Id := N + $;
*************** package Snames is
*** 168,173 ****
--- 170,176 ----
     Name_String_Literal                 : constant Name_Id := N + $;
     Name_Synchronization                : constant Name_Id := N + $;
     Name_Unimplemented                  : constant Name_Id := N + $;
+    Name_User_Aspect                    : constant Name_Id := N + $;
  
     --  Some special names used by the expander. Note that the lower case u's
     --  at the start of these names get translated to extra underscores. These
*************** package Snames is
*** 260,265 ****
--- 263,269 ----
  
     --  Some miscellaneous names used for error detection/recovery
  
+    Name_ASCII                          : constant Name_Id := N + $;
     Name_Const                          : constant Name_Id := N + $;
     Name_Error                          : constant Name_Id := N + $;
     Name_False                          : constant Name_Id := N + $;
*************** package Snames is
*** 490,495 ****
--- 494,500 ----
     Name_Unevaluated_Use_Of_Old         : constant Name_Id := N + $; -- GNAT
     Name_Unsuppress                     : constant Name_Id := N + $; -- Ada 05
     Name_Use_VADS_Size                  : constant Name_Id := N + $; -- GNAT
+    Name_User_Aspect_Definition         : constant Name_Id := N + $; -- GNAT
     Name_Validity_Checks                : constant Name_Id := N + $; -- GNAT
     Name_Warning_As_Error               : constant Name_Id := N + $; -- GNAT
     Name_Warnings                       : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 501,506 ****
--- 506,512 ----
     Name_Abort_Defer                    : constant Name_Id := N + $; -- GNAT
     Name_Abstract_State                 : constant Name_Id := N + $; -- GNAT
     Name_All_Calls_Remote               : constant Name_Id := N + $;
+    Name_Always_Terminates              : constant Name_Id := N + $; -- GNAT
     Name_Assert                         : constant Name_Id := N + $; -- Ada 05
     Name_Assert_And_Cut                 : constant Name_Id := N + $; -- GNAT
     Name_Assume                         : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 551,556 ****
--- 557,563 ----
     Name_Elaborate                      : constant Name_Id := N + $; -- Ada 83
     Name_Elaborate_All                  : constant Name_Id := N + $;
     Name_Elaborate_Body                 : constant Name_Id := N + $;
+    Name_Exceptional_Cases              : constant Name_Id := N + $; -- GNAT
     Name_Export                         : constant Name_Id := N + $;
     Name_Export_Function                : constant Name_Id := N + $; -- GNAT
     Name_Export_Object                  : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 668,673 ****
--- 675,681 ----
     Name_Share_Generic                  : constant Name_Id := N + $; -- GNAT
     Name_Shared                         : constant Name_Id := N + $; -- Ada 83
     Name_Shared_Passive                 : constant Name_Id := N + $;
+    Name_Side_Effects                   : constant Name_Id := N + $; -- GNAT
     Name_Simple_Storage_Pool_Type       : constant Name_Id := N + $; -- GNAT
  
     --  Note: Storage_Size is not in this list because its name matches the name
*************** package Snames is
*** 1336,1344 ****
     Name_Shift_Right                      : constant Name_Id := N + $;
     Name_Shift_Right_Arithmetic           : constant Name_Id := N + $;
     Name_Source_Location                  : constant Name_Id := N + $;
     Name_Unchecked_Conversion             : constant Name_Id := N + $;
     Name_Unchecked_Deallocation           : constant Name_Id := N + $;
-    Name_To_Pointer                       : constant Name_Id := N + $;
     Last_Intrinsic_Name                   : constant Name_Id := N + $;
  
     --  Names used in processing intrinsic calls
--- 1344,1353 ----
     Name_Shift_Right                      : constant Name_Id := N + $;
     Name_Shift_Right_Arithmetic           : constant Name_Id := N + $;
     Name_Source_Location                  : constant Name_Id := N + $;
+    Name_To_Integer                       : constant Name_Id := N + $;
+    Name_To_Pointer                       : constant Name_Id := N + $;
     Name_Unchecked_Conversion             : constant Name_Id := N + $;
     Name_Unchecked_Deallocation           : constant Name_Id := N + $;
     Last_Intrinsic_Name                   : constant Name_Id := N + $;
  
     --  Names used in processing intrinsic calls
*************** package Snames is
*** 1640,1646 ****
     subtype Internal_Attribute_Id is Attribute_Id
       range Attribute_CPU .. Attribute_Interrupt_Priority;
  
!    type Attribute_Class_Array is array (Attribute_Id) of Boolean;
     --  Type used to build attribute classification flag arrays
  
     ------------------------------------
--- 1649,1655 ----
     subtype Internal_Attribute_Id is Attribute_Id
       range Attribute_CPU .. Attribute_Interrupt_Priority;
  
!    type Attribute_Set is array (Attribute_Id) of Boolean;
     --  Type used to build attribute classification flag arrays
  
     ------------------------------------
*************** package Snames is
*** 1799,1804 ****
--- 1808,1814 ----
        Pragma_Unevaluated_Use_Of_Old,
        Pragma_Unsuppress,
        Pragma_Use_VADS_Size,
+       Pragma_User_Aspect_Definition,
        Pragma_Validity_Checks,
        Pragma_Warning_As_Error,
        Pragma_Warnings,
*************** package Snames is
*** 1809,1814 ****
--- 1819,1825 ----
        Pragma_Abort_Defer,
        Pragma_Abstract_State,
        Pragma_All_Calls_Remote,
+       Pragma_Always_Terminates,
        Pragma_Assert,
        Pragma_Assert_And_Cut,
        Pragma_Assume,
*************** package Snames is
*** 1846,1851 ****
--- 1857,1863 ----
        Pragma_Elaborate,
        Pragma_Elaborate_All,
        Pragma_Elaborate_Body,
+       Pragma_Exceptional_Cases,
        Pragma_Export,
        Pragma_Export_Function,
        Pragma_Export_Object,
*************** package Snames is
*** 1931,1936 ****
--- 1943,1949 ----
        Pragma_Share_Generic,
        Pragma_Shared,
        Pragma_Shared_Passive,
+       Pragma_Side_Effects,
        Pragma_Simple_Storage_Pool_Type,
        Pragma_Source_Reference,
        Pragma_Static_Elaboration_Desired,
diff -Nrcpad gcc-13.2.0/gcc/ada/snames.h-tmpl gcc-14.1.0/gcc/ada/snames.h-tmpl
*** gcc-13.2.0/gcc/ada/snames.h-tmpl	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/snames.h-tmpl	Tue May  7 06:51:37 2024
***************
*** 28,66 ****
  
  /* Name_Id values */
  
! #define  Name_ !! TEMPLATE INSERTION POINT
  
! /* Define the function to return one of the numeric values below. Note
!    that it actually returns a char since an enumeration value of less
!    than 256 entries is represented that way in Ada.  The operand is a Chars
!    field value.  */
  
! #define Get_Attribute_Id snames__get_attribute_id
! extern unsigned char Get_Attribute_Id (int);
  
! /* Define the numeric values for attributes.  */
  
! #define  Attr_ !! TEMPLATE INSERTION POINT
  
  /* Define the numeric values for the conventions.  */
  
! #define  Convention_ !! TEMPLATE INSERTION POINT
  
  /* Define the function to check if a Name_Id value is a valid pragma */
  
  #define Is_Pragma_Name snames__is_pragma_name
  extern Boolean Is_Pragma_Name (Name_Id);
  
! /* Define the function to return one of the numeric values below.  Note
!    that it actually returns a char since an enumeration value of less
!    than 256 entries is represented that way in Ada.  The operand is a Chars
!    field value.  */
  
! #define Get_Pragma_Id snames__get_pragma_id
! extern unsigned char Get_Pragma_Id (int);
  
! /* Define the numeric values for the pragmas. */
  
! #define  Pragma_ !! TEMPLATE_INSERTION_POINT
  
  /* End of snames.h (C version of Snames package spec) */
--- 28,82 ----
  
  /* Name_Id values */
  
! enum Name_Id : Int
! {
!   Name_ !! TEMPLATE INSERTION POINT
! };
  
! /* Define the numeric values for attributes.  */
  
! enum Attribute_Id : unsigned char
! {
!   Attr_ !! TEMPLATE INSERTION POINT
! };
  
! /* Define the function to return one of the numeric values above.  The operand
!    is a Chars field value.  */
  
! static inline Attribute_Id
! Get_Attribute_Id (int id)
! {
!   extern unsigned char snames__get_attribute_id (int);
!   return (Attribute_Id) snames__get_attribute_id (id);
! }
  
  /* Define the numeric values for the conventions.  */
  
! enum Convention_Id : Byte
! {
!   Convention_ !! TEMPLATE INSERTION POINT
! };
  
  /* Define the function to check if a Name_Id value is a valid pragma */
  
  #define Is_Pragma_Name snames__is_pragma_name
  extern Boolean Is_Pragma_Name (Name_Id);
  
! /* Define the numeric values for the pragmas. */
  
! enum Pragma_Id : Byte
! {
!   Pragma_ !! TEMPLATE_INSERTION_POINT
! };
  
! /* Define the function to return one of the numeric values above.  The operand
!    is a Chars field value.  */
  
! static inline Pragma_Id
! Get_Pragma_Id (int id)
! {
!   extern unsigned char snames__get_pragma_id (int);
!   return (Pragma_Id) snames__get_pragma_id (id);
! }
  
  /* End of snames.h (C version of Snames package spec) */
diff -Nrcpad gcc-13.2.0/gcc/ada/socket.c gcc-14.1.0/gcc/ada/socket.c
*** gcc-13.2.0/gcc/ada/socket.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/socket.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2003-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2003-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/spark_xrefs.adb gcc-14.1.0/gcc/ada/spark_xrefs.adb
*** gcc-13.2.0/gcc/ada/spark_xrefs.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/spark_xrefs.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/spark_xrefs.ads gcc-14.1.0/gcc/ada/spark_xrefs.ads
*** gcc-13.2.0/gcc/ada/spark_xrefs.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/spark_xrefs.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sprint.adb gcc-14.1.0/gcc/ada/sprint.adb
*** gcc-13.2.0/gcc/ada/sprint.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sprint.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Sprint is
*** 1084,1090 ****
                 Write_Str_With_Col_Check_Sloc ("(null record)");
  
              else
!                Write_Str_With_Col_Check_Sloc ("(");
  
                 if Present (Expressions (Node)) then
                    Sprint_Comma_List (Expressions (Node));
--- 1084,1091 ----
                 Write_Str_With_Col_Check_Sloc ("(null record)");
  
              else
!                Write_Str_With_Col_Check_Sloc
!                  (if Is_Homogeneous_Aggregate (Node) then "[" else "(");
  
                 if Present (Expressions (Node)) then
                    Sprint_Comma_List (Expressions (Node));
*************** package body Sprint is
*** 1120,1126 ****
                    Indent_End;
                 end if;
  
!                Write_Char (')');
              end if;
  
           when N_Allocator =>
--- 1121,1128 ----
                    Indent_End;
                 end if;
  
!                Write_Char
!                  (if Is_Homogeneous_Aggregate (Node) then ']' else ')');
              end if;
  
           when N_Allocator =>
diff -Nrcpad gcc-13.2.0/gcc/ada/sprint.ads gcc-14.1.0/gcc/ada/sprint.ads
*** gcc-13.2.0/gcc/ada/sprint.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sprint.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/stand.ads gcc-14.1.0/gcc/ada/stand.ads
*** gcc-13.2.0/gcc/ada/stand.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/stand.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/stringt.adb gcc-14.1.0/gcc/ada/stringt.adb
*** gcc-13.2.0/gcc/ada/stringt.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/stringt.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/stringt.ads gcc-14.1.0/gcc/ada/stringt.ads
*** gcc-13.2.0/gcc/ada/stringt.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/stringt.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/stringt.h gcc-14.1.0/gcc/ada/stringt.h
*** gcc-13.2.0/gcc/ada/stringt.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/stringt.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/strub.adb gcc-14.1.0/gcc/ada/strub.adb
*** gcc-13.2.0/gcc/ada/strub.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/strub.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/strub.ads gcc-14.1.0/gcc/ada/strub.ads
*** gcc-13.2.0/gcc/ada/strub.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/strub.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2023, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2024, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/style.adb gcc-14.1.0/gcc/ada/style.adb
*** gcc-13.2.0/gcc/ada/style.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/style.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Nlists;         use Nlists;
*** 35,43 ****
  with Opt;            use Opt;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
- with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
! with Stand;          use Stand;
  with Stylesw;        use Stylesw;
  
  package body Style is
--- 35,42 ----
  with Opt;            use Opt;
  with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinput;         use Sinput;
! with Snames;         use Snames;
  with Stylesw;        use Stylesw;
  
  package body Style is
*************** package body Style is
*** 68,74 ****
              end;
           end if;
  
!          Error_Msg_N ("(style) subprogram body has no previous spec", N);
        end if;
     end Body_With_No_Spec;
  
--- 67,73 ----
              end;
           end if;
  
!          Error_Msg_N ("(style) subprogram body has no previous spec?s?", N);
        end if;
     end Body_With_No_Spec;
  
*************** package body Style is
*** 85,95 ****
        if Style_Check_Array_Attribute_Index then
           if D = 1 and then Present (E1) then
              Error_Msg_N -- CODEFIX
!               ("(style) index number not allowed for one dimensional array",
                 E1);
           elsif D > 1 and then No (E1) then
              Error_Msg_N -- CODEFIX
!               ("(style) index number required for multi-dimensional array",
                 N);
           end if;
        end if;
--- 84,94 ----
        if Style_Check_Array_Attribute_Index then
           if D = 1 and then Present (E1) then
              Error_Msg_N -- CODEFIX
!               ("(style) index number not allowed for one dimensional array?A?",
                 E1);
           elsif D > 1 and then No (E1) then
              Error_Msg_N -- CODEFIX
!               ("(style) index number required for multi-dimensional array?A?",
                 N);
           end if;
        end if;
*************** package body Style is
*** 168,174 ****
                       Error_Msg_Node_1 := Def;
                       Error_Msg_Sloc := Sloc (Def);
                       Error_Msg -- CODEFIX
!                        ("(style) bad casing of & declared#", Sref, Ref);
                       return;
                    end if;
  
--- 167,173 ----
                       Error_Msg_Node_1 := Def;
                       Error_Msg_Sloc := Sloc (Def);
                       Error_Msg -- CODEFIX
!                        ("(style) bad casing of & declared#?r?", Sref, Ref);
                       return;
                    end if;
  
*************** package body Style is
*** 201,207 ****
              else
                 --  ASCII is all upper case
  
!                if Entity (Ref) = Standard_ASCII then
                    Cas := All_Upper_Case;
  
                 --  Special handling for names in package ASCII
--- 200,206 ----
              else
                 --  ASCII is all upper case
  
!                if Chars (Ref) = Name_ASCII then
                    Cas := All_Upper_Case;
  
                 --  Special handling for names in package ASCII
*************** package body Style is
*** 250,256 ****
                    Set_Casing (Cas);
                    Error_Msg_Name_1 := Name_Enter;
                    Error_Msg_N -- CODEFIX
!                     ("(style) bad casing of %% declared in Standard", Ref);
                 end if;
              end if;
           end if;
--- 249,255 ----
                    Set_Casing (Cas);
                    Error_Msg_Name_1 := Name_Enter;
                    Error_Msg_N -- CODEFIX
!                     ("(style) bad casing of %% declared in Standard?n?", Ref);
                 end if;
              end if;
           end if;
*************** package body Style is
*** 294,309 ****
  
           if Nkind (N) = N_Subprogram_Body then
              Error_Msg_NE -- CODEFIX
!               ("(style) missing OVERRIDING indicator in body of&", N, E);
  
           elsif Nkind (N) = N_Abstract_Subprogram_Declaration then
              Error_Msg_NE -- CODEFIX
!               ("(style) missing OVERRIDING indicator in declaration of&",
                  Specification (N), E);
  
           else
              Error_Msg_NE -- CODEFIX
!               ("(style) missing OVERRIDING indicator in declaration of&",
                 Nod, E);
           end if;
        end if;
--- 293,308 ----
  
           if Nkind (N) = N_Subprogram_Body then
              Error_Msg_NE -- CODEFIX
!               ("(style) missing OVERRIDING indicator in body of&?O?", N, E);
  
           elsif Nkind (N) = N_Abstract_Subprogram_Declaration then
              Error_Msg_NE -- CODEFIX
!               ("(style) missing OVERRIDING indicator in declaration of&?O?",
                  Specification (N), E);
  
           else
              Error_Msg_NE -- CODEFIX
!               ("(style) missing OVERRIDING indicator in declaration of&?O?",
                 Nod, E);
           end if;
        end if;
*************** package body Style is
*** 317,323 ****
     begin
        if Style_Check_Order_Subprograms then
           Error_Msg_N -- CODEFIX
!            ("(style) subprogram body& not in alphabetical order", Name);
        end if;
     end Subprogram_Not_In_Alpha_Order;
  end Style;
--- 316,322 ----
     begin
        if Style_Check_Order_Subprograms then
           Error_Msg_N -- CODEFIX
!            ("(style) subprogram body& not in alphabetical order?o?", Name);
        end if;
     end Subprogram_Not_In_Alpha_Order;
  end Style;
diff -Nrcpad gcc-13.2.0/gcc/ada/style.ads gcc-14.1.0/gcc/ada/style.ads
*** gcc-13.2.0/gcc/ada/style.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/style.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Style is
*** 192,201 ****
       renames Style_Inst.Check_Vertical_Bar;
     --  Called after scanning a vertical bar to check spacing
  
!    procedure Check_Xtra_Parens (Loc : Source_Ptr)
       renames Style_Inst.Check_Xtra_Parens;
!    --  Called after scanning an if, case or quantified expression that has at
!    --  least one level of parentheses around the entire expression.
  
     function Mode_In_Check return Boolean
       renames Style_Inst.Mode_In_Check;
--- 192,206 ----
       renames Style_Inst.Check_Vertical_Bar;
     --  Called after scanning a vertical bar to check spacing
  
!    procedure Check_Xtra_Parens (N : Node_Id)
       renames Style_Inst.Check_Xtra_Parens;
!    --  Called after scanning an entire expression (N) that does not require an
!    --  extra level of parentheses.
! 
!    procedure Check_Xtra_Parens_Precedence (N : Node_Id)
!      renames Style_Inst.Check_Xtra_Parens_Precedence;
!    --  Called after scanning a subexpression (N) that does not require an
!    --  extra level of parentheses according to operator precedence rules.
  
     function Mode_In_Check return Boolean
       renames Style_Inst.Mode_In_Check;
diff -Nrcpad gcc-13.2.0/gcc/ada/styleg.adb gcc-14.1.0/gcc/ada/styleg.adb
*** gcc-13.2.0/gcc/ada/styleg.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/styleg.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** with Csets;          use Csets;
*** 33,38 ****
--- 33,39 ----
  with Einfo;          use Einfo;
  with Einfo.Utils;    use Einfo.Utils;
  with Err_Vars;       use Err_Vars;
+ with Errout;
  with Opt;            use Opt;
  with Scans;          use Scans;
  with Sinfo;          use Sinfo;
*************** package body Styleg is
*** 173,179 ****
        if Style_Check_Attribute_Casing then
           if Determine_Token_Casing /= Mixed_Case then
              Error_Msg_SC -- CODEFIX
!               ("(style) bad capitalization, mixed case required");
           end if;
        end if;
     end Check_Attribute_Name;
--- 174,180 ----
        if Style_Check_Attribute_Casing then
           if Determine_Token_Casing /= Mixed_Case then
              Error_Msg_SC -- CODEFIX
!               ("(style) bad capitalization, mixed case required?a?");
           end if;
        end if;
     end Check_Attribute_Name;
*************** package body Styleg is
*** 263,272 ****
  
                    elsif Nkind (Orig) = N_Op_And then
                       Error_Msg -- CODEFIX
!                        ("(style) `AND THEN` required", Sloc (Orig));
                    else
                       Error_Msg -- CODEFIX
!                        ("(style) `OR ELSE` required", Sloc (Orig));
                    end if;
                 end;
              end if;
--- 264,273 ----
  
                    elsif Nkind (Orig) = N_Op_And then
                       Error_Msg -- CODEFIX
!                        ("(style) `AND THEN` required?B?", Sloc (Orig));
                    else
                       Error_Msg -- CODEFIX
!                        ("(style) `OR ELSE` required?B?", Sloc (Orig));
                    end if;
                 end;
              end if;
*************** package body Styleg is
*** 506,512 ****
             and then Source (Scan_Ptr - 1) > ' '
           then
              Error_Msg_S -- CODEFIX
!               ("(style) space required");
           end if;
        end if;
  
--- 507,513 ----
             and then Source (Scan_Ptr - 1) > ' '
           then
              Error_Msg_S -- CODEFIX
!               ("(style) space required?c?");
           end if;
        end if;
  
*************** package body Styleg is
*** 520,526 ****
                and then not Is_Special_Character (Source (Scan_Ptr + 2))
              then
                 Error_Msg -- CODEFIX
!                  ("(style) space required", Scan_Ptr + 2);
              end if;
           end if;
  
--- 521,527 ----
                and then not Is_Special_Character (Source (Scan_Ptr + 2))
              then
                 Error_Msg -- CODEFIX
!                  ("(style) space required?c?", Scan_Ptr + 2);
              end if;
           end if;
  
*************** package body Styleg is
*** 537,543 ****
                   and then not Same_Column_As_Previous_Line
                 then
                    Error_Msg_S -- CODEFIX
!                     ("(style) bad column");
                 end if;
  
                 return;
--- 538,544 ----
                   and then not Same_Column_As_Previous_Line
                 then
                    Error_Msg_S -- CODEFIX
!                     ("(style) bad column?0?");
                 end if;
  
                 return;
*************** package body Styleg is
*** 583,589 ****
                       Error_Space_Required (Scan_Ptr + 2);
                    else
                       Error_Msg -- CODEFIX
!                        ("(style) two spaces required", Scan_Ptr + 2);
                    end if;
  
                    return;
--- 584,590 ----
                       Error_Space_Required (Scan_Ptr + 2);
                    else
                       Error_Msg -- CODEFIX
!                        ("(style) two spaces required?c?", Scan_Ptr + 2);
                    end if;
  
                    return;
*************** package body Styleg is
*** 624,630 ****
                 | All_Upper_Case
              =>
                 Error_Msg_SC -- CODEFIX
!                  ("(style) bad capitalization, mixed case required");
  
              --  The Unknown case is something like A_B_C, which is both all
              --  caps and mixed case.
--- 625,631 ----
                 | All_Upper_Case
              =>
                 Error_Msg_SC -- CODEFIX
!                  ("(style) bad capitalization, mixed case required?D?");
  
              --  The Unknown case is something like A_B_C, which is both all
              --  caps and mixed case.
*************** package body Styleg is
*** 665,676 ****
  
           if Blank_Lines = 2 then
              Error_Msg -- CODEFIX
!               ("(style) blank line not allowed at end of file",
                 Blank_Line_Location);
  
           elsif Blank_Lines >= 3 then
              Error_Msg -- CODEFIX
!               ("(style) blank lines not allowed at end of file",
                 Blank_Line_Location);
           end if;
        end if;
--- 666,677 ----
  
           if Blank_Lines = 2 then
              Error_Msg -- CODEFIX
!               ("(style) blank line not allowed at end of file?u?",
                 Blank_Line_Location);
  
           elsif Blank_Lines >= 3 then
              Error_Msg -- CODEFIX
!               ("(style) blank lines not allowed at end of file?u?",
                 Blank_Line_Location);
           end if;
        end if;
*************** package body Styleg is
*** 697,703 ****
     begin
        if Style_Check_Horizontal_Tabs then
           Error_Msg_S -- CODEFIX
!            ("(style) horizontal tab not allowed");
        end if;
     end Check_HT;
  
--- 698,704 ----
     begin
        if Style_Check_Horizontal_Tabs then
           Error_Msg_S -- CODEFIX
!            ("(style) horizontal tab not allowed?h?");
        end if;
     end Check_HT;
  
*************** package body Styleg is
*** 716,722 ****
             and then Start_Column rem Style_Check_Indentation /= 0
           then
              Error_Msg_SC -- CODEFIX
!               ("(style) bad indentation");
           end if;
        end if;
     end Check_Indentation;
--- 717,723 ----
             and then Start_Column rem Style_Check_Indentation /= 0
           then
              Error_Msg_SC -- CODEFIX
!               ("(style) bad indentation?0?");
           end if;
        end if;
     end Check_Indentation;
*************** package body Styleg is
*** 755,761 ****
        if Style_Check_Max_Line_Length then
           if Len > Style_Max_Line_Length then
              Error_Msg
!               ("(style) this line is too long",
                 Current_Line_Start + Source_Ptr (Style_Max_Line_Length));
           end if;
        end if;
--- 756,762 ----
        if Style_Check_Max_Line_Length then
           if Len > Style_Max_Line_Length then
              Error_Msg
!               ("(style) this line is too long?M?",
                 Current_Line_Start + Source_Ptr (Style_Max_Line_Length));
           end if;
        end if;
*************** package body Styleg is
*** 792,801 ****
        if Style_Check_Form_Feeds then
           if Source (Scan_Ptr) = ASCII.FF then
              Error_Msg_S -- CODEFIX
!               ("(style) form feed not allowed");
           elsif Source (Scan_Ptr) = ASCII.VT then
              Error_Msg_S -- CODEFIX
!               ("(style) vertical tab not allowed");
           end if;
        end if;
  
--- 793,802 ----
        if Style_Check_Form_Feeds then
           if Source (Scan_Ptr) = ASCII.FF then
              Error_Msg_S -- CODEFIX
!               ("(style) form feed not allowed?f?");
           elsif Source (Scan_Ptr) = ASCII.VT then
              Error_Msg_S -- CODEFIX
!               ("(style) vertical tab not allowed?f?");
           end if;
        end if;
  
*************** package body Styleg is
*** 813,819 ****
           --  Bad terminator if we don't have an LF
  
           elsif Source (Scan_Ptr) /= LF then
!             Error_Msg_S ("(style) incorrect line terminator");
           end if;
        end if;
  
--- 814,820 ----
           --  Bad terminator if we don't have an LF
  
           elsif Source (Scan_Ptr) /= LF then
!             Error_Msg_S ("(style) incorrect line terminator?d?");
           end if;
        end if;
  
*************** package body Styleg is
*** 829,835 ****
  
        if Style_Check_Blanks_At_End and then L < Len then
           Error_Msg -- CODEFIX
!            ("(style) trailing spaces not permitted", S);
        end if;
  
        --  Deal with empty (blank) line
--- 830,836 ----
  
        if Style_Check_Blanks_At_End and then L < Len then
           Error_Msg -- CODEFIX
!            ("(style) trailing spaces not permitted?b?", S);
        end if;
  
        --  Deal with empty (blank) line
*************** package body Styleg is
*** 851,857 ****
        else
           if Style_Check_Blank_Lines and then Blank_Lines > 1 then
              Error_Msg -- CODEFIX
!               ("(style) multiple blank lines", Blank_Line_Location);
           end if;
  
           --  And reset blank line count
--- 852,858 ----
        else
           if Style_Check_Blank_Lines and then Blank_Lines > 1 then
              Error_Msg -- CODEFIX
!               ("(style) multiple blank lines?u?", Blank_Line_Location);
           end if;
  
           --  And reset blank line count
*************** package body Styleg is
*** 873,879 ****
             or else Token_Ptr - Prev_Token_Ptr /= 4
           then -- CODEFIX?
              Error_Msg
!               ("(style) single space must separate NOT and IN", Token_Ptr - 1);
           end if;
        end if;
     end Check_Not_In;
--- 874,881 ----
             or else Token_Ptr - Prev_Token_Ptr /= 4
           then -- CODEFIX?
              Error_Msg
!               ("(style) single space must separate NOT and IN?t?",
!                Token_Ptr - 1);
           end if;
        end if;
     end Check_Not_In;
*************** package body Styleg is
*** 933,939 ****
        if Style_Check_Pragma_Casing then
           if Determine_Token_Casing /= Mixed_Case then
              Error_Msg_SC -- CODEFIX
!               ("(style) bad capitalization, mixed case required");
           end if;
        end if;
     end Check_Pragma_Name;
--- 935,941 ----
        if Style_Check_Pragma_Casing then
           if Determine_Token_Casing /= Mixed_Case then
              Error_Msg_SC -- CODEFIX
!               ("(style) bad capitalization, mixed case required?p?");
           end if;
        end if;
     end Check_Pragma_Name;
*************** package body Styleg is
*** 1043,1052 ****
        else
           if Token = Tok_Then then
              Error_Msg -- CODEFIX
!               ("(style) no statements may follow THEN on same line", S);
           else
              Error_Msg
!               ("(style) no statements may follow ELSE on same line", S);
           end if;
        end if;
     end Check_Separate_Stmt_Lines_Cont;
--- 1045,1054 ----
        else
           if Token = Tok_Then then
              Error_Msg -- CODEFIX
!               ("(style) no statements may follow THEN on same line?S?", S);
           else
              Error_Msg
!               ("(style) no statements may follow ELSE on same line?S?", S);
           end if;
        end if;
     end Check_Separate_Stmt_Lines_Cont;
*************** package body Styleg is
*** 1071,1077 ****
              if If_Line = Then_Line then
                 null;
              elsif Token_Ptr /= First_Non_Blank_Location then
!                Error_Msg_SC ("(style) misplaced THEN");
              end if;
           end;
        end if;
--- 1073,1079 ----
              if If_Line = Then_Line then
                 null;
              elsif Token_Ptr /= First_Non_Blank_Location then
!                Error_Msg_SC ("(style) misplaced THEN?i?");
              end if;
           end;
        end if;
*************** package body Styleg is
*** 1117,1130 ****
     -- Check_Xtra_Parens --
     -----------------------
  
!    procedure Check_Xtra_Parens (Loc : Source_Ptr) is
     begin
!       if Style_Check_Xtra_Parens then
           Error_Msg -- CODEFIX
!            ("(style) redundant parentheses", Loc);
        end if;
     end Check_Xtra_Parens;
  
     ----------------------------
     -- Determine_Token_Casing --
     ----------------------------
--- 1119,1164 ----
     -- Check_Xtra_Parens --
     -----------------------
  
!    procedure Check_Xtra_Parens (N : Node_Id) is
     begin
!       if Style_Check_Xtra_Parens
!         and then
!           Paren_Count (N) >
!             (if Nkind (N) in N_Case_Expression
!                            | N_Expression_With_Actions
!                            | N_If_Expression
!                            | N_Quantified_Expression
!                            | N_Raise_Expression
!              then 1
!              else 0)
!       then
           Error_Msg -- CODEFIX
!            ("(style) redundant parentheses?x?", Errout.First_Sloc (N));
        end if;
     end Check_Xtra_Parens;
  
+    ----------------------------------
+    -- Check_Xtra_Parens_Precedence --
+    ----------------------------------
+ 
+    procedure Check_Xtra_Parens_Precedence (N : Node_Id) is
+    begin
+       if Style_Check_Xtra_Parens_Precedence
+         and then
+           Paren_Count (N) >
+             (if Nkind (N) in N_Case_Expression
+                            | N_Expression_With_Actions
+                            | N_If_Expression
+                            | N_Quantified_Expression
+                            | N_Raise_Expression
+              then 1
+              else 0)
+       then
+          Error_Msg -- CODEFIX
+            ("(style) redundant parentheses?z?", Errout.First_Sloc (N));
+       end if;
+    end Check_Xtra_Parens_Precedence;
+ 
     ----------------------------
     -- Determine_Token_Casing --
     ----------------------------
*************** package body Styleg is
*** 1141,1147 ****
     procedure Error_Space_Not_Allowed (S : Source_Ptr) is
     begin
        Error_Msg -- CODEFIX
!         ("(style) space not allowed", S);
     end Error_Space_Not_Allowed;
  
     --------------------------
--- 1175,1181 ----
     procedure Error_Space_Not_Allowed (S : Source_Ptr) is
     begin
        Error_Msg -- CODEFIX
!         ("(style) space not allowed?t?", S);
     end Error_Space_Not_Allowed;
  
     --------------------------
*************** package body Styleg is
*** 1151,1157 ****
     procedure Error_Space_Required (S : Source_Ptr) is
     begin
        Error_Msg -- CODEFIX
!         ("(style) space required", S);
     end Error_Space_Required;
  
     --------------------
--- 1185,1191 ----
     procedure Error_Space_Required (S : Source_Ptr) is
     begin
        Error_Msg -- CODEFIX
!         ("(style) space required?t?", S);
     end Error_Space_Required;
  
     --------------------
*************** package body Styleg is
*** 1184,1190 ****
        if Style_Check_End_Labels then
           Error_Msg_Node_1 := Name;
           Error_Msg_SP -- CODEFIX
!            ("(style) `END &` required");
        end if;
     end No_End_Name;
  
--- 1218,1224 ----
        if Style_Check_End_Labels then
           Error_Msg_Node_1 := Name;
           Error_Msg_SP -- CODEFIX
!            ("(style) `END &` required?e?");
        end if;
     end No_End_Name;
  
*************** package body Styleg is
*** 1200,1206 ****
        if Style_Check_End_Labels then
           Error_Msg_Node_1 := Name;
           Error_Msg_SP -- CODEFIX
!            ("(style) `EXIT &` required");
        end if;
     end No_Exit_Name;
  
--- 1234,1240 ----
        if Style_Check_End_Labels then
           Error_Msg_Node_1 := Name;
           Error_Msg_SP -- CODEFIX
!            ("(style) `EXIT &` required?e?");
        end if;
     end No_Exit_Name;
  
*************** package body Styleg is
*** 1216,1222 ****
     begin
        if Style_Check_Keyword_Casing then
           Error_Msg_SC -- CODEFIX
!            ("(style) reserved words must be all lower case");
        end if;
     end Non_Lower_Case_Keyword;
  
--- 1250,1256 ----
     begin
        if Style_Check_Keyword_Casing then
           Error_Msg_SC -- CODEFIX
!            ("(style) reserved words must be all lower case?k?");
        end if;
     end Non_Lower_Case_Keyword;
  
diff -Nrcpad gcc-13.2.0/gcc/ada/styleg.ads gcc-14.1.0/gcc/ada/styleg.ads
*** gcc-13.2.0/gcc/ada/styleg.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/styleg.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Styleg is
*** 160,168 ****
     procedure Check_Vertical_Bar;
     --  Called after scanning a vertical bar to check spacing
  
!    procedure Check_Xtra_Parens (Loc : Source_Ptr);
!    --  Called after scanning an if, case, or quantified expression that has at
!    --  least one level of parentheses around the entire expression.
  
     function Mode_In_Check return Boolean;
     pragma Inline (Mode_In_Check);
--- 160,172 ----
     procedure Check_Vertical_Bar;
     --  Called after scanning a vertical bar to check spacing
  
!    procedure Check_Xtra_Parens (N : Node_Id);
!    --  Called after scanning an entire expression (N) that does not require an
!    --  extra level of parentheses.
! 
!    procedure Check_Xtra_Parens_Precedence (N : Node_Id);
!    --  Called after scanning a subexpression (N) that does not require an
!    --  extra level of parentheses according to operator precedence rules.
  
     function Mode_In_Check return Boolean;
     pragma Inline (Mode_In_Check);
diff -Nrcpad gcc-13.2.0/gcc/ada/stylesw.adb gcc-14.1.0/gcc/ada/stylesw.adb
*** gcc-13.2.0/gcc/ada/stylesw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/stylesw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Stylesw is
*** 58,69 ****
                       "I" &  -- check mode IN
                       "S" &  -- check separate lines after THEN or ELSE
                       "u" &  -- check no unnecessary blank lines
!                      "x";   -- check extra parentheses around conditionals
! 
!    --  Note: we intend GNAT_Style to also include the following, but we do
!    --  not yet have the whole tool suite clean with respect to this.
! 
!    --                "B" &  -- check boolean operators
  
     -------------------------------
     -- Reset_Style_Check_Options --
--- 58,65 ----
                       "I" &  -- check mode IN
                       "S" &  -- check separate lines after THEN or ELSE
                       "u" &  -- check no unnecessary blank lines
!                      "x" &  -- check extra parentheses around conditionals
!                      "z";   -- check parens not required by precedence rules.
  
     -------------------------------
     -- Reset_Style_Check_Options --
*************** package body Stylesw is
*** 71,103 ****
  
     procedure Reset_Style_Check_Options is
     begin
!       Style_Check_Indentation           := 0;
!       Style_Check_Array_Attribute_Index := False;
!       Style_Check_Attribute_Casing      := False;
!       Style_Check_Blanks_At_End         := False;
!       Style_Check_Blank_Lines           := False;
!       Style_Check_Boolean_And_Or        := False;
!       Style_Check_Comments              := False;
!       Style_Check_DOS_Line_Terminator   := False;
!       Style_Check_Mixed_Case_Decls      := False;
!       Style_Check_End_Labels            := False;
!       Style_Check_Form_Feeds            := False;
!       Style_Check_Horizontal_Tabs       := False;
!       Style_Check_If_Then_Layout        := False;
!       Style_Check_Keyword_Casing        := False;
!       Style_Check_Layout                := False;
!       Style_Check_Max_Line_Length       := False;
!       Style_Check_Max_Nesting_Level     := False;
!       Style_Check_Missing_Overriding    := False;
!       Style_Check_Mode_In               := False;
!       Style_Check_Order_Subprograms     := False;
!       Style_Check_Pragma_Casing         := False;
!       Style_Check_References            := False;
!       Style_Check_Separate_Stmt_Lines   := False;
!       Style_Check_Specs                 := False;
!       Style_Check_Standard              := False;
!       Style_Check_Tokens                := False;
!       Style_Check_Xtra_Parens           := False;
     end Reset_Style_Check_Options;
  
     ---------------------
--- 67,100 ----
  
     procedure Reset_Style_Check_Options is
     begin
!       Style_Check_Indentation            := 0;
!       Style_Check_Array_Attribute_Index  := False;
!       Style_Check_Attribute_Casing       := False;
!       Style_Check_Blanks_At_End          := False;
!       Style_Check_Blank_Lines            := False;
!       Style_Check_Boolean_And_Or         := False;
!       Style_Check_Comments               := False;
!       Style_Check_DOS_Line_Terminator    := False;
!       Style_Check_Mixed_Case_Decls       := False;
!       Style_Check_End_Labels             := False;
!       Style_Check_Form_Feeds             := False;
!       Style_Check_Horizontal_Tabs        := False;
!       Style_Check_If_Then_Layout         := False;
!       Style_Check_Keyword_Casing         := False;
!       Style_Check_Layout                 := False;
!       Style_Check_Max_Line_Length        := False;
!       Style_Check_Max_Nesting_Level      := False;
!       Style_Check_Missing_Overriding     := False;
!       Style_Check_Mode_In                := False;
!       Style_Check_Order_Subprograms      := False;
!       Style_Check_Pragma_Casing          := False;
!       Style_Check_References             := False;
!       Style_Check_Separate_Stmt_Lines    := False;
!       Style_Check_Specs                  := False;
!       Style_Check_Standard               := False;
!       Style_Check_Tokens                 := False;
!       Style_Check_Xtra_Parens            := False;
!       Style_Check_Xtra_Parens_Precedence := False;
     end Reset_Style_Check_Options;
  
     ---------------------
*************** package body Stylesw is
*** 187,192 ****
--- 184,190 ----
        Add ('t', Style_Check_Tokens);
        Add ('u', Style_Check_Blank_Lines);
        Add ('x', Style_Check_Xtra_Parens);
+       Add ('z', Style_Check_Xtra_Parens_Precedence);
  
        if Style_Check_Max_Line_Length then
           P := P + 1;
*************** package body Stylesw is
*** 426,469 ****
                      or else Options (Err_Col) not in '0' .. '9';
                 end loop;
  
!                Style_Check_Max_Line_Length       := Style_Max_Line_Length /= 0;
  
              when 'n' =>
!                Style_Check_Standard              := True;
  
              when 'N' =>
                 Reset_Style_Check_Options;
  
              when 'o' =>
!                Style_Check_Order_Subprograms     := True;
  
              when 'O' =>
!                Style_Check_Missing_Overriding    := True;
  
              when 'p' =>
!                Style_Check_Pragma_Casing         := True;
  
              when 'r' =>
!                Style_Check_References            := True;
  
              when 's' =>
!                Style_Check_Specs                 := True;
  
              when 'S' =>
!                Style_Check_Separate_Stmt_Lines   := True;
  
              when 't' =>
!                Style_Check_Tokens                := True;
  
              when 'u' =>
!                Style_Check_Blank_Lines           := True;
  
              when 'x' =>
!                Style_Check_Xtra_Parens           := True;
  
              when 'y' =>
                 Set_Default_Style_Check_Options;
  
              when ' ' =>
                 null;
  
--- 424,470 ----
                      or else Options (Err_Col) not in '0' .. '9';
                 end loop;
  
!                Style_Check_Max_Line_Length := Style_Max_Line_Length /= 0;
  
              when 'n' =>
!                Style_Check_Standard               := True;
  
              when 'N' =>
                 Reset_Style_Check_Options;
  
              when 'o' =>
!                Style_Check_Order_Subprograms      := True;
  
              when 'O' =>
!                Style_Check_Missing_Overriding     := True;
  
              when 'p' =>
!                Style_Check_Pragma_Casing          := True;
  
              when 'r' =>
!                Style_Check_References             := True;
  
              when 's' =>
!                Style_Check_Specs                  := True;
  
              when 'S' =>
!                Style_Check_Separate_Stmt_Lines    := True;
  
              when 't' =>
!                Style_Check_Tokens                 := True;
  
              when 'u' =>
!                Style_Check_Blank_Lines            := True;
  
              when 'x' =>
!                Style_Check_Xtra_Parens            := True;
  
              when 'y' =>
                 Set_Default_Style_Check_Options;
  
+             when 'z' =>
+                Style_Check_Xtra_Parens_Precedence := True;
+ 
              when ' ' =>
                 null;
  
*************** package body Stylesw is
*** 491,579 ****
                 Style_Check_Indentation := 0;
  
              when 'a' =>
!                Style_Check_Attribute_Casing      := False;
  
              when 'A' =>
!                Style_Check_Array_Attribute_Index := False;
  
              when 'b' =>
!                Style_Check_Blanks_At_End         := False;
  
              when 'B' =>
!                Style_Check_Boolean_And_Or        := False;
  
              when 'c' | 'C' =>
!                Style_Check_Comments              := False;
  
              when 'd' =>
!                Style_Check_DOS_Line_Terminator   := False;
  
              when 'D' =>
!                Style_Check_Mixed_Case_Decls      := False;
  
              when 'e' =>
!                Style_Check_End_Labels            := False;
  
              when 'f' =>
!                Style_Check_Form_Feeds            := False;
  
              when 'g' =>
                 Reset_Style_Check_Options;
  
              when 'h' =>
!                Style_Check_Horizontal_Tabs       := False;
  
              when 'i' =>
!                Style_Check_If_Then_Layout        := False;
  
              when 'I' =>
!                Style_Check_Mode_In               := False;
  
              when 'k' =>
!                Style_Check_Keyword_Casing        := False;
  
              when 'l' =>
!                Style_Check_Layout                := False;
  
              when 'L' =>
                 Style_Max_Nesting_Level := 0;
  
              when 'm' =>
!                Style_Check_Max_Line_Length       := False;
  
              when 'M' =>
!                Style_Max_Line_Length             := 0;
!                Style_Check_Max_Line_Length       := False;
  
              when 'n' =>
!                Style_Check_Standard              := False;
  
              when 'o' =>
!                Style_Check_Order_Subprograms     := False;
  
              when 'O' =>
!                Style_Check_Missing_Overriding    := False;
  
              when 'p' =>
!                Style_Check_Pragma_Casing         := False;
  
              when 'r' =>
!                Style_Check_References            := False;
  
              when 's' =>
!                Style_Check_Specs                 := False;
  
              when 'S' =>
!                Style_Check_Separate_Stmt_Lines   := False;
  
              when 't' =>
!                Style_Check_Tokens                := False;
  
              when 'u' =>
!                Style_Check_Blank_Lines           := False;
  
              when 'x' =>
!                Style_Check_Xtra_Parens           := False;
  
              when ' ' =>
                 null;
--- 492,583 ----
                 Style_Check_Indentation := 0;
  
              when 'a' =>
!                Style_Check_Attribute_Casing       := False;
  
              when 'A' =>
!                Style_Check_Array_Attribute_Index  := False;
  
              when 'b' =>
!                Style_Check_Blanks_At_End          := False;
  
              when 'B' =>
!                Style_Check_Boolean_And_Or         := False;
  
              when 'c' | 'C' =>
!                Style_Check_Comments               := False;
  
              when 'd' =>
!                Style_Check_DOS_Line_Terminator    := False;
  
              when 'D' =>
!                Style_Check_Mixed_Case_Decls       := False;
  
              when 'e' =>
!                Style_Check_End_Labels             := False;
  
              when 'f' =>
!                Style_Check_Form_Feeds             := False;
  
              when 'g' =>
                 Reset_Style_Check_Options;
  
              when 'h' =>
!                Style_Check_Horizontal_Tabs        := False;
  
              when 'i' =>
!                Style_Check_If_Then_Layout         := False;
  
              when 'I' =>
!                Style_Check_Mode_In                := False;
  
              when 'k' =>
!                Style_Check_Keyword_Casing         := False;
  
              when 'l' =>
!                Style_Check_Layout                 := False;
  
              when 'L' =>
                 Style_Max_Nesting_Level := 0;
  
              when 'm' =>
!                Style_Check_Max_Line_Length        := False;
  
              when 'M' =>
!                Style_Max_Line_Length              := 0;
!                Style_Check_Max_Line_Length        := False;
  
              when 'n' =>
!                Style_Check_Standard               := False;
  
              when 'o' =>
!                Style_Check_Order_Subprograms      := False;
  
              when 'O' =>
!                Style_Check_Missing_Overriding     := False;
  
              when 'p' =>
!                Style_Check_Pragma_Casing          := False;
  
              when 'r' =>
!                Style_Check_References             := False;
  
              when 's' =>
!                Style_Check_Specs                  := False;
  
              when 'S' =>
!                Style_Check_Separate_Stmt_Lines    := False;
  
              when 't' =>
!                Style_Check_Tokens                 := False;
  
              when 'u' =>
!                Style_Check_Blank_Lines            := False;
  
              when 'x' =>
!                Style_Check_Xtra_Parens            := False;
! 
!             when 'z' =>
!                Style_Check_Xtra_Parens_Precedence := False;
  
              when ' ' =>
                 null;
diff -Nrcpad gcc-13.2.0/gcc/ada/stylesw.ads gcc-14.1.0/gcc/ada/stylesw.ads
*** gcc-13.2.0/gcc/ada/stylesw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/stylesw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Stylesw is
*** 279,284 ****
--- 279,289 ----
     --  not allowed to enclose entire expressions in tests in parentheses
     --  (C style), e.g. if (x = y) then ... is not allowed.
  
+    Style_Check_Xtra_Parens_Precedence : Boolean := False;
+    --  This can be set True by using the -gnatyz switch. If true, then it is
+    --  not allowed to enclose subexpressions in parentheses when not required
+    --  by operator precedence rules, e.g. (X > 1) and (Y < 1).
+ 
     Style_Max_Line_Length : Nat := 0;
     --  Value used to check maximum line length. Gets reset as a result of
     --  use of -gnatym or -gnatyMnnn switches. This value is only read if
diff -Nrcpad gcc-13.2.0/gcc/ada/switch-b.adb gcc-14.1.0/gcc/ada/switch-b.adb
*** gcc-13.2.0/gcc/ada/switch-b.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/switch-b.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/switch-b.ads gcc-14.1.0/gcc/ada/switch-b.ads
*** gcc-13.2.0/gcc/ada/switch-b.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/switch-b.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/switch-c.adb gcc-14.1.0/gcc/ada/switch-c.adb
*** gcc-13.2.0/gcc/ada/switch-c.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/switch-c.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Switch.C is
*** 635,640 ****
--- 635,646 ----
                       Generate_Processed_File := True;
                       Ptr := Ptr + 1;
  
+                   --  -gnateH (set reverse Bit_Order threshold to 64)
+ 
+                   when 'H' =>
+                      Reverse_Bit_Order_Threshold := 64;
+                      Ptr := Ptr + 1;
+ 
                    --  -gnatei (max number of instantiations)
  
                    when 'i' =>
diff -Nrcpad gcc-13.2.0/gcc/ada/switch-c.ads gcc-14.1.0/gcc/ada/switch-c.ads
*** gcc-13.2.0/gcc/ada/switch-c.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/switch-c.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/switch-m.adb gcc-14.1.0/gcc/ada/switch-m.adb
*** gcc-13.2.0/gcc/ada/switch-m.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/switch-m.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/switch-m.ads gcc-14.1.0/gcc/ada/switch-m.ads
*** gcc-13.2.0/gcc/ada/switch-m.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/switch-m.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/switch.adb gcc-14.1.0/gcc/ada/switch.adb
*** gcc-13.2.0/gcc/ada/switch.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/switch.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/switch.ads gcc-14.1.0/gcc/ada/switch.ads
*** gcc-13.2.0/gcc/ada/switch.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/switch.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/sysdep.c gcc-14.1.0/gcc/ada/sysdep.c
*** gcc-13.2.0/gcc/ada/sysdep.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/sysdep.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2023, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2024, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/table.adb gcc-14.1.0/gcc/ada/table.adb
*** gcc-13.2.0/gcc/ada/table.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/table.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/table.ads gcc-14.1.0/gcc/ada/table.ads
*** gcc-13.2.0/gcc/ada/table.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/table.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/targext.c gcc-14.1.0/gcc/ada/targext.c
*** gcc-13.2.0/gcc/ada/targext.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/targext.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2005-2023, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2005-2024, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/targparm.adb gcc-14.1.0/gcc/ada/targparm.adb
*** gcc-13.2.0/gcc/ada/targparm.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/targparm.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Targparm is
*** 660,665 ****
--- 660,673 ----
              Opt.Task_Dispatching_Policy_Sloc := System_Location;
              goto Line_Loop_Continue;
  
+          --  Allow "pragma Style_Checks (On);" and "pragma Style_Checks (Off);"
+          --  to make it possible to have long "pragma Restrictions" line.
+ 
+          elsif Looking_At_Skip ("pragma Style_Checks (On);") or else
+            Looking_At_Skip ("pragma Style_Checks (Off);")
+          then
+             goto Line_Loop_Continue;
+ 
           --  No other configuration pragmas are permitted
  
           elsif Looking_At ("pragma ") then
diff -Nrcpad gcc-13.2.0/gcc/ada/targparm.ads gcc-14.1.0/gcc/ada/targparm.ads
*** gcc-13.2.0/gcc/ada/targparm.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/targparm.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Targparm is
*** 110,115 ****
--- 110,119 ----
     --  If a pragma Profile with a valid profile argument appears, then
     --  the appropriate restrictions and policy flags are set.
  
+    --  pragma Style_Checks is allowed with "On" or "Off" as an argument, in
+    --  order to make the conditions on pragma Restrictions documented in the
+    --  next paragraph easier to manage.
+ 
     --  The only other pragma allowed is a pragma Restrictions that specifies
     --  a restriction that will be imposed on all units in the partition. Note
     --  that in this context, only one restriction can be specified in a single
*************** package Targparm is
*** 213,234 ****
     -- Control of Exception Handling --
     -----------------------------------
  
!    --  GNAT implements three methods of implementing exceptions:
! 
!    --    Front-End Longjmp/Setjmp Exceptions
! 
!    --      This approach uses longjmp/setjmp to handle exceptions. It
!    --      uses less storage, and can often propagate exceptions faster,
!    --      at the expense of (sometimes considerable) overhead in setting
!    --      up an exception handler.
! 
!    --      The generation of the setjmp and longjmp calls is handled by
!    --      the front end of the compiler (this includes gigi in the case
!    --      of the standard GCC back end). It does not use any back end
!    --      support (such as the GCC3 exception handling mechanism). When
!    --      this approach is used, the compiler generates special exception
!    --      handlers for handling cleanups (AT-END actions) when an exception
!    --      is raised.
  
     --    Back-End Zero Cost Exceptions
  
--- 217,223 ----
     -- Control of Exception Handling --
     -----------------------------------
  
!    --  GNAT provides two methods of implementing exceptions:
  
     --    Back-End Zero Cost Exceptions
  
*************** package Targparm is
*** 254,263 ****
  
     --    Control of Available Methods and Defaults
  
!    --      The following switches specify whether we're using a front-end or a
!    --      back-end mechanism and whether this is a zero-cost or a sjlj scheme.
  
!    --      The per-switch default values correspond to the default value of
     --      Opt.Exception_Mechanism.
  
     ZCX_By_Default_On_Target : Boolean := False;
--- 243,252 ----
  
     --    Control of Available Methods and Defaults
  
!    --      The following switch specifies whether this is a zero-cost or a sjlj
!    --      scheme.
  
!    --      The default value corresponds to the default value of
     --      Opt.Exception_Mechanism.
  
     ZCX_By_Default_On_Target : Boolean := False;
*************** package Targparm is
*** 283,298 ****
     --    If Command_Line_Args_On_Target is set to False, then the
     --    generation of these variables is suppressed completely.
     --
-    --    The binder generates the gnat_exit_status variable in the binder
-    --    file instead of being imported from the run-time library. If
-    --    Exit_Status_Supported_On_Target is set to False, then the
-    --    generation of this variable is suppressed entirely.
-    --
     --    The routine __gnat_break_start is defined within the binder file
     --    instead of being imported from the run-time library.
-    --
-    --    The variable __gnat_exit_status is generated within the binder file
-    --    instead of being imported from the run-time library.
  
     Suppress_Standard_Library_On_Target : Boolean := False;
     --  If this flag is True, then the standard library is not included by
--- 272,279 ----
*************** package Targparm is
*** 408,414 ****
     -- Control of Stack Checking --
     -------------------------------
  
!    --  GNAT provides three methods of implementing exceptions:
  
     --    GCC Probing Mechanism
  
--- 389,395 ----
     -- Control of Stack Checking --
     -------------------------------
  
!    --  GNAT provides three methods of implementing stack checking:
  
     --    GCC Probing Mechanism
  
*************** package Targparm is
*** 472,490 ****
     --  required on such targets (RM A.15(13)).
  
     Command_Line_Args_On_Target : Boolean := True;
!    --  Set False if no command line arguments on target. Note that if this
!    --  is False in with Configurable_Run_Time_On_Target set to True, then
!    --  this causes suppression of generation of the argv/argc variables
!    --  used to record command line arguments.
  
     --  Similarly, most targets support the use of an exit status, but other
     --  targets might not, as allowed by RM A.15(18-20).
  
     Exit_Status_Supported_On_Target : Boolean := True;
     --  Set False if returning of an exit status is not supported on target.
!    --  Note that if this False in with Configurable_Run_Time_On_Target
!    --  set to True, then this causes suppression of the gnat_exit_status
!    --  variable used to record the exit status.
  
     -----------------------
     -- Main Program Name --
--- 453,469 ----
     --  required on such targets (RM A.15(13)).
  
     Command_Line_Args_On_Target : Boolean := True;
!    --  Set False if no command line arguments on target. This will suppress
!    --  generation of references to the argv/argc variables used to record
!    --  command line arguments.
  
     --  Similarly, most targets support the use of an exit status, but other
     --  targets might not, as allowed by RM A.15(18-20).
  
     Exit_Status_Supported_On_Target : Boolean := True;
     --  Set False if returning of an exit status is not supported on target.
!    --  This will cause the binder to not generate a reference to the
!    --  gnat_exit_status run-time symbol.
  
     -----------------------
     -- Main Program Name --
diff -Nrcpad gcc-13.2.0/gcc/ada/tbuild.adb gcc-14.1.0/gcc/ada/tbuild.adb
*** gcc-13.2.0/gcc/ada/tbuild.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/tbuild.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Tbuild is
*** 525,530 ****
--- 525,562 ----
        return Make_String_Literal (Sloc, Strval => End_String);
     end Make_String_Literal;
  
+    -------------------------
+    -- Make_Suppress_Block --
+    -------------------------
+ 
+    --  Generates the following expansion:
+ 
+    --    declare
+    --       pragma Suppress (<check>);
+    --    begin
+    --       <stmts>
+    --    end;
+ 
+    function Make_Suppress_Block
+      (Loc   : Source_Ptr;
+       Check : Name_Id;
+       Stmts : List_Id) return Node_Id
+    is
+    begin
+       return
+         Make_Block_Statement (Loc,
+           Declarations => New_List (
+             Make_Pragma (Loc,
+               Chars => Name_Suppress,
+               Pragma_Argument_Associations => New_List (
+                 Make_Pragma_Argument_Association (Loc,
+                   Expression => Make_Identifier (Loc, Check))))),
+ 
+           Handled_Statement_Sequence =>
+             Make_Handled_Sequence_Of_Statements (Loc,
+               Statements => Stmts));
+    end Make_Suppress_Block;
+ 
     --------------------
     -- Make_Temporary --
     --------------------
*************** package body Tbuild is
*** 548,554 ****
     --  Generates the following expansion:
  
     --    declare
!    --       pragma Suppress (<check>);
     --    begin
     --       <stmts>
     --    end;
--- 580,586 ----
     --  Generates the following expansion:
  
     --    declare
!    --       pragma Unsuppress (<check>);
     --    begin
     --       <stmts>
     --    end;
*************** package body Tbuild is
*** 563,569 ****
          Make_Block_Statement (Loc,
            Declarations => New_List (
              Make_Pragma (Loc,
!               Chars => Name_Suppress,
                Pragma_Argument_Associations => New_List (
                  Make_Pragma_Argument_Association (Loc,
                    Expression => Make_Identifier (Loc, Check))))),
--- 595,601 ----
          Make_Block_Statement (Loc,
            Declarations => New_List (
              Make_Pragma (Loc,
!               Chars => Name_Unsuppress,
                Pragma_Argument_Associations => New_List (
                  Make_Pragma_Argument_Association (Loc,
                    Expression => Make_Identifier (Loc, Check))))),
diff -Nrcpad gcc-13.2.0/gcc/ada/tbuild.ads gcc-14.1.0/gcc/ada/tbuild.ads
*** gcc-13.2.0/gcc/ada/tbuild.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/tbuild.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Tbuild is
*** 187,192 ****
--- 187,199 ----
     --  A convenient form of Make_String_Literal, where the string value is
     --  given as a normal string instead of a String_Id value.
  
+    function Make_Suppress_Block
+      (Loc   : Source_Ptr;
+       Check : Name_Id;
+       Stmts : List_Id) return Node_Id;
+    --  Build a block with a pragma Suppress on Check. Stmts is the statements
+    --  list that needs protection against the check activation.
+ 
     function Make_Temporary
       (Loc          : Source_Ptr;
        Id           : Character;
*************** package Tbuild is
*** 207,214 ****
       (Loc   : Source_Ptr;
        Check : Name_Id;
        Stmts : List_Id) return Node_Id;
!    --  Build a block with a pragma Suppress on 'Check'. Stmts is the statements
!    --  list that needs protection against the check
  
     function New_Constraint_Error (Loc : Source_Ptr) return Node_Id;
     --  This function builds a tree corresponding to the Ada statement
--- 214,221 ----
       (Loc   : Source_Ptr;
        Check : Name_Id;
        Stmts : List_Id) return Node_Id;
!    --  Build a block with a pragma Unsuppress on Check. Stmts is the statements
!    --  list that needs protection against the check suppression.
  
     function New_Constraint_Error (Loc : Source_Ptr) return Node_Id;
     --  This function builds a tree corresponding to the Ada statement
diff -Nrcpad gcc-13.2.0/gcc/ada/tempdir.adb gcc-14.1.0/gcc/ada/tempdir.adb
*** gcc-13.2.0/gcc/ada/tempdir.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/tempdir.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/tempdir.ads gcc-14.1.0/gcc/ada/tempdir.ads
*** gcc-13.2.0/gcc/ada/tempdir.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/tempdir.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/terminals.c gcc-14.1.0/gcc/ada/terminals.c
*** gcc-13.2.0/gcc/ada/terminals.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/terminals.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2008-2023, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2008-2024, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 31,37 ****
  
  #define ATTRIBUTE_UNUSED __attribute__((unused))
  
! /* First all usupported platforms. Add stubs for exported routines. */
  
  #if defined (VMS) || defined (__vxworks) || defined (__Lynx__) \
    || defined (__ANDROID__) || defined (__PikeOS__) || defined(__DJGPP__)
--- 31,37 ----
  
  #define ATTRIBUTE_UNUSED __attribute__((unused))
  
! /* First all unsupported platforms. Add stubs for exported routines. */
  
  #if defined (VMS) || defined (__vxworks) || defined (__Lynx__) \
    || defined (__ANDROID__) || defined (__PikeOS__) || defined(__DJGPP__)
*************** __gnat_setup_winsize (void *desc ATTRIBU
*** 1089,1095 ****
  {
  }
  
! #else /* defined(_WIN32, implementatin for all UNIXes */
  
  /* First defined some macro to identify easily some systems */
  #if defined (__FreeBSD__) \
--- 1089,1095 ----
  {
  }
  
! #else /* defined(_WIN32, implementation for all UNIXes */
  
  /* First defined some macro to identify easily some systems */
  #if defined (__FreeBSD__) \
*************** __gnat_setup_winsize (void *desc ATTRIBU
*** 1104,1109 ****
--- 1104,1110 ----
  #include <errno.h>
  #include <stdio.h>
  #include <stdlib.h>
+ #include <signal.h>
  #include <sys/ioctl.h>
  #include <termios.h>
  #include <fcntl.h>
*************** __gnat_setup_winsize (void *desc ATTRIBU
*** 1121,1126 ****
--- 1122,1133 ----
  #if defined (__hpux__)
  #   include <sys/stropts.h>
  #endif
+ #if defined (__APPLE__)
+ #   include <util.h>
+ #endif
+ #if defined (__FreeBSD__)
+ #   include <libutil.h>
+ #endif
  
  #define CDISABLE _POSIX_VDISABLE
  
*************** allocate_pty_desc (pty_desc **desc) {
*** 1261,1271 ****
  #ifndef NLDLY
  #define NLDLY 0
  #define CRDLY 0
- #define TABDLY 0
  #define BSDLY 0
  #define VTDLY 0
  #define FFDLY 0
  #endif
  
  /* child_setup_tty - set terminal properties
   *
--- 1268,1280 ----
  #ifndef NLDLY
  #define NLDLY 0
  #define CRDLY 0
  #define BSDLY 0
  #define VTDLY 0
  #define FFDLY 0
  #endif
+ #ifndef TABDLY
+ #define TABDLY 0
+ #endif
  
  /* child_setup_tty - set terminal properties
   *
diff -Nrcpad gcc-13.2.0/gcc/ada/tracebak.c gcc-14.1.0/gcc/ada/tracebak.c
*** gcc-13.2.0/gcc/ada/tracebak.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/tracebak.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2000-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2000-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/treepr.adb gcc-14.1.0/gcc/ada/treepr.adb
*** gcc-13.2.0/gcc/ada/treepr.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/treepr.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Treepr is
*** 187,193 ****
     --  Called if the node being printed is an entity. Prints fields from the
     --  extension, using routines in Einfo to get the field names and flags.
  
-    procedure Print_Field (Val : Union_Id; Format : UI_Format := Auto);
     procedure Print_Field
       (Prefix : String;
        Field  : String;
--- 187,192 ----
*************** package body Treepr is
*** 329,336 ****
              return "Has_RACW";
           when F_Ignore_SPARK_Mode_Pragmas =>
              return "Ignore_SPARK_Mode_Pragmas";
-          when F_Is_Constr_Subt_For_UN_Aliased =>
-             return "Is_Constr_Subt_For_UN_Aliased";
           when F_Is_CPP_Class =>
              return "Is_CPP_Class";
           when F_Is_CUDA_Kernel =>
--- 328,333 ----
*************** package body Treepr is
*** 726,776 ****
     function Get_Mechanism_Type is new Get_32_Bit_Field
       (Mechanism_Type) with Inline, Unreferenced;
  
-    procedure Print_Field (Val : Union_Id; Format : UI_Format := Auto) is
-    begin
-       if Phase /= Printing then
-          return;
-       end if;
- 
-       if Val in Node_Range then
-          Print_Node_Ref (Node_Id (Val));
- 
-       elsif Val in List_Range then
-          Print_List_Ref (List_Id (Val));
- 
-       elsif Val in Elist_Range then
-          Print_Elist_Ref (Elist_Id (Val));
- 
-       elsif Val in Names_Range then
-          Print_Name (Name_Id (Val));
-          Write_Str (" (Name_Id=");
-          Write_Int (Int (Val));
-          Write_Char (')');
- 
-       elsif Val in Strings_Range then
-          Write_String_Table_Entry (String_Id (Val));
-          Write_Str (" (String_Id=");
-          Write_Int (Int (Val));
-          Write_Char (')');
- 
-       elsif Val in Uint_Range then
-          UI_Write (From_Union (Val), Format);
-          Write_Str (" (Uint = ");
-          Write_Int (Int (Val));
-          Write_Char (')');
- 
-       elsif Val in Ureal_Range then
-          UR_Write (From_Union (Val));
-          Write_Str (" (Ureal = ");
-          Write_Int (Int (Val));
-          Write_Char (')');
- 
-       else
-          Print_Str ("****** Incorrect value = ");
-          Print_Int (Int (Val));
-       end if;
-    end Print_Field;
- 
     procedure Print_Field
       (Prefix : String;
        Field  : String;
--- 723,728 ----
*************** package body Treepr is
*** 1393,1399 ****
              | F_Assignment_OK
              | F_Do_Range_Check
              | F_Has_Dynamic_Length_Check
-             | F_Has_Aspects
              | F_Is_Controlling_Actual
              | F_Is_Overloaded
              | F_Is_Static_Expression
--- 1345,1350 ----
*************** package body Treepr is
*** 1440,1454 ****
           end loop;
        end;
  
-       --  Print aspects if present
- 
-       if Has_Aspects (N) then
-          Print_Str (Prefix);
-          Print_Str ("Aspect_Specifications = ");
-          Print_Field (Union_Id (Aspect_Specifications (N)));
-          Print_Eol;
-       end if;
- 
        --  Print entity information for entities
  
        if Nkind (N) in N_Entity then
--- 1391,1396 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/treepr.ads gcc-14.1.0/gcc/ada/treepr.ads
*** gcc-13.2.0/gcc/ada/treepr.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/treepr.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/ttypes.ads gcc-14.1.0/gcc/ada/ttypes.ads
*** gcc-13.2.0/gcc/ada/ttypes.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/ttypes.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Ttypes is
*** 60,70 ****
     --  Two approaches are used for handling target dependent values in the
     --  standard library packages. Package Standard is handled specially,
     --  being constructed internally (by package Stand). Target dependent
!    --  values needed in Stand are obtained by direct reference to Ttypes
!    --  and Ttypef.
  
     --  For package System, there is a separate version for each target, with
!    --  explicit declarations of the required, constants.
  
     --  Historical note: Originally we had in mind dealing with target dependent
     --  differences by referencing appropriate attributes. Ada 95 already
--- 60,69 ----
     --  Two approaches are used for handling target dependent values in the
     --  standard library packages. Package Standard is handled specially,
     --  being constructed internally (by package Stand). Target dependent
!    --  values needed in Stand are obtained by direct reference to Ttypes.
  
     --  For package System, there is a separate version for each target, with
!    --  explicit declarations of the required constants.
  
     --  Historical note: Originally we had in mind dealing with target dependent
     --  differences by referencing appropriate attributes. Ada 95 already
*************** package Ttypes is
*** 185,194 ****
                                    Set_Targ.System_Allocator_Alignment;
     --  The alignment in storage units of addresses returned by malloc
  
-    Max_Unaligned_Field : constant Pos := Set_Targ.Max_Unaligned_Field;
-    --  The maximum supported size in bits for a field that is not aligned
-    --  on a storage unit boundary.
- 
     Bytes_Big_Endian : Boolean := Set_Targ.Bytes_BE /= 0;
     --  Important note: for Ada purposes, the important setting is the bytes
     --  endianness (Bytes_Big_Endian), not the bits value (Bits_Big_Endian).
--- 184,189 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/types.adb gcc-14.1.0/gcc/ada/types.adb
*** gcc-13.2.0/gcc/ada/types.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/types.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/types.ads gcc-14.1.0/gcc/ada/types.ads
*** gcc-13.2.0/gcc/ada/types.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/types.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Types is
*** 405,413 ****
  
     subtype Entity_Id is Node_Id;
     --  A synonym for node types, used in the Einfo package to refer to nodes
!    --  that are entities (i.e. nodes with an Nkind of N_Defining_xxx). All such
!    --  nodes are extended nodes and these are the only extended nodes, so that
!    --  in practice entity and extended nodes are synonymous.
     --
     --  Note that Sinfo.Nodes.N_Entity_Id is the same as Entity_Id, except it
     --  has a predicate requiring the correct Nkind. Opt_N_Entity_Id is the same
--- 405,411 ----
  
     subtype Entity_Id is Node_Id;
     --  A synonym for node types, used in the Einfo package to refer to nodes
!    --  that are entities (i.e. nodes with an Nkind of N_Defining_xxx).
     --
     --  Note that Sinfo.Nodes.N_Entity_Id is the same as Entity_Id, except it
     --  has a predicate requiring the correct Nkind. Opt_N_Entity_Id is the same
diff -Nrcpad gcc-13.2.0/gcc/ada/types.h gcc-14.1.0/gcc/ada/types.h
*** gcc-13.2.0/gcc/ada/types.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/types.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2023, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2024, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** typedef struct { const char *Array; Stri
*** 102,109 ****
     once again, the annoying restriction on bit fields for some compilers
     bites us!  */
  
! typedef unsigned int Node_Kind;
! typedef unsigned int Entity_Kind;
  
  /* Types used for Text Buffer Handling:  */
  
--- 102,109 ----
     once again, the annoying restriction on bit fields for some compilers
     bites us!  */
  
! enum Node_Kind : unsigned int;
! enum Entity_Kind : unsigned int;
  
  /* Types used for Text Buffer Handling:  */
  
*************** typedef Text_Ptr Source_Ptr;
*** 140,146 ****
  #define Standard_Location -2
  
  /* Convention identifiers.  */
! typedef Byte Convention_Id;
  
  /* Instance identifiers.  */
  typedef Nat Instance_Id;
--- 140,146 ----
  #define Standard_Location -2
  
  /* Convention identifiers.  */
! enum Convention_Id : Byte;
  
  /* Instance identifiers.  */
  typedef Nat Instance_Id;
*************** SUBTYPE (Ureal_Range,     Int, Ureal_Low
*** 188,194 ****
  
  /* Types for Names_Table Package:  */
  
! typedef Int Name_Id;
  
  /* Name_Id value for no name present.  */
  #define No_Name Names_Low_Bound
--- 188,194 ----
  
  /* Types for Names_Table Package:  */
  
! enum Name_Id : Int;
  
  /* Name_Id value for no name present.  */
  #define No_Name Names_Low_Bound
diff -Nrcpad gcc-13.2.0/gcc/ada/uintp.adb gcc-14.1.0/gcc/ada/uintp.adb
*** gcc-13.2.0/gcc/ada/uintp.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/uintp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Uintp is
*** 2027,2033 ****
        begin
           Init_Operand (Left, L_Vec);
           Init_Operand (Right, R_Vec);
!          Neg := (L_Vec (1) < Int_0) xor (R_Vec (1) < Int_0);
           L_Vec (1) := abs (L_Vec (1));
           R_Vec (1) := abs (R_Vec (1));
  
--- 2027,2033 ----
        begin
           Init_Operand (Left, L_Vec);
           Init_Operand (Right, R_Vec);
!          Neg := L_Vec (1) < Int_0 xor R_Vec (1) < Int_0;
           L_Vec (1) := abs (L_Vec (1));
           R_Vec (1) := abs (R_Vec (1));
  
diff -Nrcpad gcc-13.2.0/gcc/ada/uintp.ads gcc-14.1.0/gcc/ada/uintp.ads
*** gcc-13.2.0/gcc/ada/uintp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/uintp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/uintp.h gcc-14.1.0/gcc/ada/uintp.h
*** gcc-13.2.0/gcc/ada/uintp.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/uintp.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/uname.adb gcc-14.1.0/gcc/ada/uname.adb
*** gcc-13.2.0/gcc/ada/uname.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/uname.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/uname.ads gcc-14.1.0/gcc/ada/uname.ads
*** gcc-13.2.0/gcc/ada/uname.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/uname.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/urealp.adb gcc-14.1.0/gcc/ada/urealp.adb
*** gcc-13.2.0/gcc/ada/urealp.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/urealp.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/urealp.ads gcc-14.1.0/gcc/ada/urealp.ads
*** gcc-13.2.0/gcc/ada/urealp.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/urealp.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/urealp.h gcc-14.1.0/gcc/ada/urealp.h
*** gcc-13.2.0/gcc/ada/urealp.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/urealp.h	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2023, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2024, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/usage.adb gcc-14.1.0/gcc/ada/usage.adb
*** gcc-13.2.0/gcc/ada/usage.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/usage.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** begin
*** 199,204 ****
--- 199,209 ----
     Write_Switch_Char ("eG");
     Write_Line ("Generate preprocessed source");
  
+    --  Line for -gnateH switch
+ 
+    Write_Switch_Char ("eH");
+    Write_Line ("Set reverse Bit_Order threshold to 64");
+ 
     --  Line for -gnatei switch
  
     Write_Switch_Char ("einn");
*************** begin
*** 580,585 ****
--- 585,594 ----
     Write_Line ("        s    suppress all info/warnings");
     Write_Line ("        .s   turn on warnings for overridden size clause");
     Write_Line ("        .S*  turn off warnings for overridden size clause");
+    Write_Line ("        _s+  turn on warnings for ineffective predicate " &
+                                                   "tests");
+    Write_Line ("        _S*  turn off warnings for ineffective predicate " &
+                                                    "tests");
     Write_Line ("        t    turn on warnings for tracking deleted code");
     Write_Line ("        T*   turn off warnings for tracking deleted code");
     Write_Line ("        .t*+ turn on warnings for suspicious contract");
*************** begin
*** 655,660 ****
--- 664,670 ----
     Write_Line ("        c    check comment format (two spaces)");
     Write_Line ("        C    check comment format (one space)");
     Write_Line ("        d    check no DOS line terminators");
+    Write_Line ("        D    check declared identifiers in mixed case");
     Write_Line ("        e    check end/exit labels present");
     Write_Line ("        f    check no form feeds/vertical tabs in source");
     Write_Line ("        g    check standard GNAT style rules, same as ydISux");
*************** begin
*** 678,683 ****
--- 688,695 ----
     Write_Line ("        u    check no unnecessary blank lines");
     Write_Line ("        x    check extra parentheses around conditionals");
     Write_Line ("        y    turn on default style checks");
+    Write_Line ("        z    check parentheses not required by operator " &
+                "precedence rules");
     Write_Line ("        -    subtract (turn off) subsequent checks");
     Write_Line ("        +    add (turn on) subsequent checks");
  
diff -Nrcpad gcc-13.2.0/gcc/ada/usage.ads gcc-14.1.0/gcc/ada/usage.ads
*** gcc-13.2.0/gcc/ada/usage.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/usage.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/validsw.adb gcc-14.1.0/gcc/ada/validsw.adb
*** gcc-13.2.0/gcc/ada/validsw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/validsw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/validsw.ads gcc-14.1.0/gcc/ada/validsw.ads
*** gcc-13.2.0/gcc/ada/validsw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/validsw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/vast.adb gcc-14.1.0/gcc/ada/vast.adb
*** gcc-13.2.0/gcc/ada/vast.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vast.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/vast.ads gcc-14.1.0/gcc/ada/vast.ads
*** gcc-13.2.0/gcc/ada/vast.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vast.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2023, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2024, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/vx_stack_info.c gcc-14.1.0/gcc/ada/vx_stack_info.c
*** gcc-13.2.0/gcc/ada/vx_stack_info.c	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vx_stack_info.c	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *              Copyright (C) 2007-2009  Free Software Foundation, Inc.     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *              Copyright (C) 2007-2024  Free Software Foundation, Inc.     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-base-link.spec gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-base-link.spec
*** gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-base-link.spec	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-base-link.spec	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- *base_link:
- --defsym=__wrs_rtp_base=0x80000000
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-base-link__ppc64.spec gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-base-link__ppc64.spec
*** gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-base-link__ppc64.spec	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-base-link__ppc64.spec	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- *base_link:
- --defsym=__wrs_rtp_base=0x40000000
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-base-link__x86.spec gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-base-link__x86.spec
*** gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-base-link__x86.spec	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-base-link__x86.spec	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- *base_link:
- --defsym=__wrs_rtp_base=0x400000
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-base-link__x86_64.spec gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-base-link__x86_64.spec
*** gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-base-link__x86_64.spec	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-base-link__x86_64.spec	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- *base_link:
- --defsym=__wrs_rtp_base=0x200000
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-link.spec gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-link.spec
*** gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-link.spec	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-link.spec	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- *self_spec:
- + %{!nostdlib:-nodefaultlibs -nostartfiles}
- 
- *link:
- + %{!nostdlib:%{mrtp:%{!shared: \
-      %(base_link) \
-      -l:certRtp.o \
-      -L%:getenv(VSB_DIR /usr/lib/common/objcert) \
-      -T%:getenv(VSB_DIR /usr/ldscripts/rtp.ld) \
-    }}}
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-link__ppcXX.spec gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-link__ppcXX.spec
*** gcc-13.2.0/gcc/ada/vxworks7-cert-rtp-link__ppcXX.spec	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/vxworks7-cert-rtp-link__ppcXX.spec	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- *self_spec:
- + %{!nostdlib:-nodefaultlibs -nostartfiles}
- 
- *link:
- + %{!nostdlib:%{mrtp:%{!shared: \
-      %(base_link) \
-      -lcert -lgnu \
-      -L%:getenv(VSB_DIR /usr/lib/common/objcert) \
-      -T%:getenv(VSB_DIR /usr/ldscripts/rtp.ld) \
-    }}}
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/ada/warnsw.adb gcc-14.1.0/gcc/ada/warnsw.adb
*** gcc-13.2.0/gcc/ada/warnsw.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/warnsw.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package body Warnsw is
*** 93,106 ****
  
          '_' =>
           ('b' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' |
!           'n' | 'o' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' =>
             No_Such_Warning,
  
            'a' => X.Warn_On_Anonymous_Allocators,
            'c' => X.Warn_On_Unknown_Compile_Time_Warning,
            'p' => X.Warn_On_Pedantic_Checks,
            'q' => X.Warn_On_Ignored_Equality,
!           'r' => X.Warn_On_Component_Order));
  
     All_Warnings : constant Warnings_State := --  Warnings set by -gnatw.e
       (X.Elab_Info_Messages |
--- 93,107 ----
  
          '_' =>
           ('b' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' |
!           'n' | 'o' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' =>
             No_Such_Warning,
  
            'a' => X.Warn_On_Anonymous_Allocators,
            'c' => X.Warn_On_Unknown_Compile_Time_Warning,
            'p' => X.Warn_On_Pedantic_Checks,
            'q' => X.Warn_On_Ignored_Equality,
!           'r' => X.Warn_On_Component_Order,
!           's' => X.Warn_On_Ineffective_Predicate_Test));
  
     All_Warnings : constant Warnings_State := --  Warnings set by -gnatw.e
       (X.Elab_Info_Messages |
*************** package body Warnsw is
*** 130,135 ****
--- 131,137 ----
        X.Warn_On_Biased_Representation       | -- -gnatw.b
        X.Warn_On_Constant                    | -- -gnatwk
        X.Warn_On_Export_Import               | -- -gnatwx
+       X.Warn_On_Ineffective_Predicate_Test  | -- -gnatw_s
        X.Warn_On_Late_Primitives             | -- -gnatw.j
        X.Warn_On_Modified_Unread             | -- -gnatwm
        X.Warn_On_No_Value_Assigned           | -- -gnatwv
diff -Nrcpad gcc-13.2.0/gcc/ada/warnsw.ads gcc-14.1.0/gcc/ada/warnsw.ads
*** gcc-13.2.0/gcc/ada/warnsw.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/warnsw.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** package Warnsw is
*** 71,76 ****
--- 71,77 ----
           Warn_On_Export_Import,
           Warn_On_Hiding,
           Warn_On_Ignored_Equality,
+          Warn_On_Ineffective_Predicate_Test,
           Warn_On_Late_Primitives,
           Warn_On_Modified_Unread,
           Warn_On_No_Value_Assigned,
*************** package Warnsw is
*** 155,160 ****
--- 156,162 ----
        Warn_On_Elab_Access |
        Warn_On_Hiding |
        Warn_On_Ignored_Equality |
+       Warn_On_Ineffective_Predicate_Test |
        Warn_On_Late_Primitives |
        Warn_On_Modified_Unread |
        Warn_On_Non_Local_Exception |
*************** package Warnsw is
*** 215,221 ****
     --  of the old ABE mechanism.
  
     Implementation_Unit_Warnings : Boolean renames F (X.Implementation_Unit_Warnings);
!    --  Set True to active warnings for use of implementation internal units.
     --  Modified by use of -gnatwi/-gnatwI.
  
     Ineffective_Inline_Warnings : Boolean renames F (X.Ineffective_Inline_Warnings);
--- 217,223 ----
     --  of the old ABE mechanism.
  
     Implementation_Unit_Warnings : Boolean renames F (X.Implementation_Unit_Warnings);
!    --  Set True to activate warnings for use of implementation internal units.
     --  Modified by use of -gnatwi/-gnatwI.
  
     Ineffective_Inline_Warnings : Boolean renames F (X.Ineffective_Inline_Warnings);
*************** package Warnsw is
*** 333,338 ****
--- 335,345 ----
     --  whose type has the user-defined "=" as primitive). Off by default, and
     --  set by -gnatw_q (but not -gnatwa).
  
+    Warn_On_Ineffective_Predicate_Test : Boolean renames F (X.Warn_On_Ineffective_Predicate_Test);
+    --  Set to True to generate warnings if a static predicate is testing for
+    --  values that do not belong to the parent subtype. Modified by use of
+    --  -gnatw_s/S.
+ 
     Warn_On_Late_Primitives : Boolean renames F (X.Warn_On_Late_Primitives);
     --  Warn when tagged type public primitives are defined after its private
     --  extensions.
diff -Nrcpad gcc-13.2.0/gcc/ada/widechar.adb gcc-14.1.0/gcc/ada/widechar.adb
*** gcc-13.2.0/gcc/ada/widechar.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/widechar.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/widechar.ads gcc-14.1.0/gcc/ada/widechar.ads
*** gcc-13.2.0/gcc/ada/widechar.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/widechar.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/xoscons.adb gcc-14.1.0/gcc/ada/xoscons.adb
*** gcc-13.2.0/gcc/ada/xoscons.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/xoscons.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/xsnamest.adb gcc-14.1.0/gcc/ada/xsnamest.adb
*** gcc-13.2.0/gcc/ada/xsnamest.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/xsnamest.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** procedure XSnamesT is
*** 119,131 ****
     Header_Current_Symbol : Header_Symbol := None;
     Header_Pending_Line : VString := Nul;
  
     ------------------------
     -- Output_Header_Line --
     ------------------------
  
     procedure Output_Header_Line (S : Header_Symbol) is
        function Make_Value (V : Integer) return String;
!       --  Build the definition for the current macro (Names are integers
        --  offset to N, while other items are enumeration values).
  
        ----------------
--- 119,135 ----
     Header_Current_Symbol : Header_Symbol := None;
     Header_Pending_Line : VString := Nul;
  
+    --  Subtypes we will emit after an enum
+ 
+    Generated_C_Subtypes : Unbounded_String;
+ 
     ------------------------
     -- Output_Header_Line --
     ------------------------
  
     procedure Output_Header_Line (S : Header_Symbol) is
        function Make_Value (V : Integer) return String;
!       --  Build the definition for the current enumerator (Names are integers
        --  offset to N, while other items are enumeration values).
  
        ----------------
*************** procedure XSnamesT is
*** 144,157 ****
     --  Start of processing for Output_Header_Line
  
     begin
!       --  Skip all the #define for S-prefixed symbols in the header.
        --  Of course we are making implicit assumptions:
        --   (1) No newline between symbols with the same prefix.
        --   (2) Prefix order is the same as in snames.ads.
  
        if Header_Current_Symbol /= S then
           declare
!             Pat : constant Pattern := "#define  "
                                         & Header_Prefix (S).all
                                         & Break (' ') * Name2;
              In_Pat : Boolean := False;
--- 148,161 ----
     --  Start of processing for Output_Header_Line
  
     begin
!       --  Skip all the enumerator for S-prefixed symbols in the header.
        --  Of course we are making implicit assumptions:
        --   (1) No newline between symbols with the same prefix.
        --   (2) Prefix order is the same as in snames.ads.
  
        if Header_Current_Symbol /= S then
           declare
!             Pat : constant Pattern := "  "
                                         & Header_Prefix (S).all
                                         & Break (' ') * Name2;
              In_Pat : Boolean := False;
*************** procedure XSnamesT is
*** 180,193 ****
  
        --  Now output the line
  
!       --  Note that we must ensure at least one space between macro name and
!       --  parens, otherwise the parenthesized value gets treated as an argument
!       --  specification.
! 
!       Put_Line (OutH, "#define  " & Header_Prefix (S).all
                    & "_" & Name1
                    & (30 - Natural'Min (29, Length (Name1))) * ' '
!                   & Make_Value (Header_Counter (S)));
        Header_Counter (S) := Header_Counter (S) + 1;
     end Output_Header_Line;
  
--- 184,195 ----
  
        --  Now output the line
  
!       Put_Line (OutH, "  " & Header_Prefix (S).all
                    & "_" & Name1
                    & (30 - Natural'Min (29, Length (Name1))) * ' '
!                   & " = "
!                   & Make_Value (Header_Counter (S))
!                   & ",");
        Header_Counter (S) := Header_Counter (S) + 1;
     end Output_Header_Line;
  
*************** begin
*** 235,244 ****
           elsif Match (Line, Get_Prag) then
              Output_Header_Line (Prag);
           elsif Match (Line, Get_Subt1) and then Match (Name2, Is_Conv) then
!             New_Line (OutH);
!             Put_Line (OutH, "SUBTYPE (" & Name1 & ", " & Name2 & ", ");
           elsif Match (Line, Get_Subt2) and then Match (Name1, Is_Conv) then
!             Put_Line (OutH, "   " & Name1 & ", " & Name2 & ')');
           end if;
        else
  
--- 237,248 ----
           elsif Match (Line, Get_Prag) then
              Output_Header_Line (Prag);
           elsif Match (Line, Get_Subt1) and then Match (Name2, Is_Conv) then
!             Generated_C_Subtypes := Generated_C_Subtypes & ASCII.LF
!                                      & "SUBTYPE (" & Name1 & ", " & Name2
!                                      & ", ";
           elsif Match (Line, Get_Subt2) and then Match (Name1, Is_Conv) then
!             Generated_C_Subtypes := Generated_C_Subtypes & ASCII.LF
!                                      & "   " & Name1 & ", " & Name2 & ')';
           end if;
        else
  
*************** begin
*** 297,302 ****
--- 301,308 ----
        Put_Line (OutH, Line);
     end loop;
  
+    Put_Line (OutH, Generated_C_Subtypes);
+    Put_Line (OutH, "");
     Put_Line (OutH, "#ifdef __cplusplus");
     Put_Line (OutH, "}");
     Put_Line (OutH, "#endif");
diff -Nrcpad gcc-13.2.0/gcc/ada/xutil.adb gcc-14.1.0/gcc/ada/xutil.adb
*** gcc-13.2.0/gcc/ada/xutil.adb	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/xutil.adb	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/ada/xutil.ads gcc-14.1.0/gcc/ada/xutil.ads
*** gcc-13.2.0/gcc/ada/xutil.ads	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ada/xutil.ads	Tue May  7 06:51:37 2024
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2023, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2024, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-13.2.0/gcc/addresses.h gcc-14.1.0/gcc/addresses.h
*** gcc-13.2.0/gcc/addresses.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/addresses.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Inline functions to test validity of reg classes for addressing modes.
!    Copyright (C) 2006-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Inline functions to test validity of reg classes for addressing modes.
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** inline enum reg_class
*** 28,35 ****
  base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
  		addr_space_t as ATTRIBUTE_UNUSED,
  		enum rtx_code outer_code ATTRIBUTE_UNUSED,
! 		enum rtx_code index_code ATTRIBUTE_UNUSED)
  {
  #ifdef MODE_CODE_BASE_REG_CLASS
    return MODE_CODE_BASE_REG_CLASS (MACRO_MODE (mode), as, outer_code,
  				   index_code);
--- 28,39 ----
  base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
  		addr_space_t as ATTRIBUTE_UNUSED,
  		enum rtx_code outer_code ATTRIBUTE_UNUSED,
! 		enum rtx_code index_code ATTRIBUTE_UNUSED,
! 		rtx_insn *insn ATTRIBUTE_UNUSED = NULL)
  {
+ #ifdef INSN_BASE_REG_CLASS
+   return INSN_BASE_REG_CLASS (insn);
+ #else
  #ifdef MODE_CODE_BASE_REG_CLASS
    return MODE_CODE_BASE_REG_CLASS (MACRO_MODE (mode), as, outer_code,
  				   index_code);
*************** base_reg_class (machine_mode mode ATTRIB
*** 44,49 ****
--- 48,64 ----
    return BASE_REG_CLASS;
  #endif
  #endif
+ #endif
+ }
+ 
+ inline enum reg_class
+ index_reg_class (rtx_insn *insn ATTRIBUTE_UNUSED = NULL)
+ {
+ #ifdef INSN_INDEX_REG_CLASS
+   return INSN_INDEX_REG_CLASS (insn);
+ #else
+   return INDEX_REG_CLASS;
+ #endif
  }
  
  /* Wrapper function to unify target macros REGNO_MODE_CODE_OK_FOR_BASE_P,
*************** ok_for_base_p_1 (unsigned regno ATTRIBUT
*** 56,63 ****
  		 machine_mode mode ATTRIBUTE_UNUSED,
  		 addr_space_t as ATTRIBUTE_UNUSED,
  		 enum rtx_code outer_code ATTRIBUTE_UNUSED,
! 		 enum rtx_code index_code ATTRIBUTE_UNUSED)
  {
  #ifdef REGNO_MODE_CODE_OK_FOR_BASE_P
    return REGNO_MODE_CODE_OK_FOR_BASE_P (regno, MACRO_MODE (mode), as,
  					outer_code, index_code);
--- 71,82 ----
  		 machine_mode mode ATTRIBUTE_UNUSED,
  		 addr_space_t as ATTRIBUTE_UNUSED,
  		 enum rtx_code outer_code ATTRIBUTE_UNUSED,
! 		 enum rtx_code index_code ATTRIBUTE_UNUSED,
! 		 rtx_insn* insn ATTRIBUTE_UNUSED = NULL)
  {
+ #ifdef REGNO_OK_FOR_INSN_BASE_P
+   return REGNO_OK_FOR_INSN_BASE_P (regno, insn);
+ #else
  #ifdef REGNO_MODE_CODE_OK_FOR_BASE_P
    return REGNO_MODE_CODE_OK_FOR_BASE_P (regno, MACRO_MODE (mode), as,
  					outer_code, index_code);
*************** ok_for_base_p_1 (unsigned regno ATTRIBUT
*** 72,77 ****
--- 91,97 ----
    return REGNO_OK_FOR_BASE_P (regno);
  #endif
  #endif
+ #endif
  }
  
  /* Wrapper around ok_for_base_p_1, for use after register allocation is
*************** ok_for_base_p_1 (unsigned regno ATTRIBUT
*** 79,90 ****
  
  inline bool
  regno_ok_for_base_p (unsigned regno, machine_mode mode, addr_space_t as,
! 		     enum rtx_code outer_code, enum rtx_code index_code)
  {
    if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] >= 0)
      regno = reg_renumber[regno];
  
!   return ok_for_base_p_1 (regno, mode, as, outer_code, index_code);
  }
  
  #endif /* GCC_ADDRESSES_H */
--- 99,111 ----
  
  inline bool
  regno_ok_for_base_p (unsigned regno, machine_mode mode, addr_space_t as,
! 		     enum rtx_code outer_code, enum rtx_code index_code,
! 		     rtx_insn *insn = NULL)
  {
    if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] >= 0)
      regno = reg_renumber[regno];
  
!   return ok_for_base_p_1 (regno, mode, as, outer_code, index_code, insn);
  }
  
  #endif /* GCC_ADDRESSES_H */
diff -Nrcpad gcc-13.2.0/gcc/adjust-alignment.cc gcc-14.1.0/gcc/adjust-alignment.cc
*** gcc-13.2.0/gcc/adjust-alignment.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/adjust-alignment.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Adjust alignment for local variable.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by Kito Cheng <kito.cheng@sifive.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Adjust alignment for local variable.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by Kito Cheng <kito.cheng@sifive.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/alias.cc gcc-14.1.0/gcc/alias.cc
*** gcc-13.2.0/gcc/alias.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/alias.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Alias analysis for GNU C
!    Copyright (C) 1997-2023 Free Software Foundation, Inc.
     Contributed by John Carr (jfc@mit.edu).
  
  This file is part of GCC.
--- 1,5 ----
  /* Alias analysis for GNU C
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
     Contributed by John Carr (jfc@mit.edu).
  
  This file is part of GCC.
*************** struct GTY(()) alias_set_entry {
*** 148,169 ****
    hash_map<alias_set_hash, int> *children;
  };
  
- static int rtx_equal_for_memref_p (const_rtx, const_rtx);
- static void record_set (rtx, const_rtx, void *);
- static int base_alias_check (rtx, rtx, rtx, rtx, machine_mode,
- 			     machine_mode);
- static rtx find_base_value (rtx);
- static int mems_in_disjoint_alias_sets_p (const_rtx, const_rtx);
- static alias_set_entry *get_alias_set_entry (alias_set_type);
- static tree decl_for_component_ref (tree);
- static int write_dependence_p (const_rtx,
- 			       const_rtx, machine_mode, rtx,
- 			       bool, bool, bool);
  static int compare_base_symbol_refs (const_rtx, const_rtx,
  				     HOST_WIDE_INT * = NULL);
  
- static void memory_modified_1 (rtx, const_rtx, void *);
- 
  /* Query statistics for the different low-level disambiguators.
     A high-level query may trigger multiple of them.  */
  
--- 148,156 ----
*************** get_alias_set_entry (alias_set_type alia
*** 412,421 ****
    return (*alias_sets)[alias_set];
  }
  
! /* Returns nonzero if the alias sets for MEM1 and MEM2 are such that
     the two MEMs cannot alias each other.  */
  
! static inline int
  mems_in_disjoint_alias_sets_p (const_rtx mem1, const_rtx mem2)
  {
    return (flag_strict_aliasing
--- 399,408 ----
    return (*alias_sets)[alias_set];
  }
  
! /* Returns true if the alias sets for MEM1 and MEM2 are such that
     the two MEMs cannot alias each other.  */
  
! static inline bool
  mems_in_disjoint_alias_sets_p (const_rtx mem1, const_rtx mem2)
  {
    return (flag_strict_aliasing
*************** alias_set_subset_of (alias_set_type set1
*** 487,495 ****
    return false;
  }
  
! /* Return 1 if the two specified alias sets may conflict.  */
  
! int
  alias_sets_conflict_p (alias_set_type set1, alias_set_type set2)
  {
    alias_set_entry *ase1;
--- 474,482 ----
    return false;
  }
  
! /* Return true if the two specified alias sets may conflict.  */
  
! bool
  alias_sets_conflict_p (alias_set_type set1, alias_set_type set2)
  {
    alias_set_entry *ase1;
*************** alias_sets_conflict_p (alias_set_type se
*** 497,503 ****
  
    /* The easy case.  */
    if (alias_sets_must_conflict_p (set1, set2))
!     return 1;
  
    /* See if the first alias set is a subset of the second.  */
    ase1 = get_alias_set_entry (set1);
--- 484,490 ----
  
    /* The easy case.  */
    if (alias_sets_must_conflict_p (set1, set2))
!     return true;
  
    /* See if the first alias set is a subset of the second.  */
    ase1 = get_alias_set_entry (set1);
*************** alias_sets_conflict_p (alias_set_type se
*** 505,511 ****
        && ase1->children && ase1->children->get (set2))
      {
        ++alias_stats.num_dag;
!       return 1;
      }
  
    /* Now do the same, but with the alias sets reversed.  */
--- 492,498 ----
        && ase1->children && ase1->children->get (set2))
      {
        ++alias_stats.num_dag;
!       return true;
      }
  
    /* Now do the same, but with the alias sets reversed.  */
*************** alias_sets_conflict_p (alias_set_type se
*** 514,520 ****
        && ase2->children && ase2->children->get (set1))
      {
        ++alias_stats.num_dag;
!       return 1;
      }
  
    /* We want void * to be compatible with any other pointer without
--- 501,507 ----
        && ase2->children && ase2->children->get (set1))
      {
        ++alias_stats.num_dag;
!       return true;
      }
  
    /* We want void * to be compatible with any other pointer without
*************** alias_sets_conflict_p (alias_set_type se
*** 558,594 ****
  
    /* The two alias sets are distinct and neither one is the
       child of the other.  Therefore, they cannot conflict.  */
!   return 0;
  }
  
! /* Return 1 if the two specified alias sets will always conflict.  */
  
! int
  alias_sets_must_conflict_p (alias_set_type set1, alias_set_type set2)
  {
    /* Disable TBAA oracle with !flag_strict_aliasing.  */
    if (!flag_strict_aliasing)
!     return 1;
    if (set1 == 0 || set2 == 0)
      {
        ++alias_stats.num_alias_zero;
!       return 1;
      }
    if (set1 == set2)
      {
        ++alias_stats.num_same_alias_set;
!       return 1;
      }
  
!   return 0;
  }
  
! /* Return 1 if any MEM object of type T1 will always conflict (using the
     dependency routines in this file) with any MEM object of type T2.
     This is used when allocating temporary storage.  If T1 and/or T2 are
     NULL_TREE, it means we know nothing about the storage.  */
  
! int
  objects_must_conflict_p (tree t1, tree t2)
  {
    alias_set_type set1, set2;
--- 545,581 ----
  
    /* The two alias sets are distinct and neither one is the
       child of the other.  Therefore, they cannot conflict.  */
!   return false;
  }
  
! /* Return true if the two specified alias sets will always conflict.  */
  
! bool
  alias_sets_must_conflict_p (alias_set_type set1, alias_set_type set2)
  {
    /* Disable TBAA oracle with !flag_strict_aliasing.  */
    if (!flag_strict_aliasing)
!     return true;
    if (set1 == 0 || set2 == 0)
      {
        ++alias_stats.num_alias_zero;
!       return true;
      }
    if (set1 == set2)
      {
        ++alias_stats.num_same_alias_set;
!       return true;
      }
  
!   return false;
  }
  
! /* Return true if any MEM object of type T1 will always conflict (using the
     dependency routines in this file) with any MEM object of type T2.
     This is used when allocating temporary storage.  If T1 and/or T2 are
     NULL_TREE, it means we know nothing about the storage.  */
  
! bool
  objects_must_conflict_p (tree t1, tree t2)
  {
    alias_set_type set1, set2;
*************** objects_must_conflict_p (tree t1, tree t
*** 597,615 ****
       because we may be using them to store objects of various types, for
       example the argument and local variables areas of inlined functions.  */
    if (t1 == 0 && t2 == 0)
!     return 0;
  
    /* If they are the same type, they must conflict.  */
    if (t1 == t2)
      {
        ++alias_stats.num_same_objects;
!       return 1;
      }
    /* Likewise if both are volatile.  */
    if (t1 != 0 && TYPE_VOLATILE (t1) && t2 != 0 && TYPE_VOLATILE (t2))
      {
        ++alias_stats.num_volatile;
!       return 1;
      }
  
    set1 = t1 ? get_alias_set (t1) : 0;
--- 584,602 ----
       because we may be using them to store objects of various types, for
       example the argument and local variables areas of inlined functions.  */
    if (t1 == 0 && t2 == 0)
!     return false;
  
    /* If they are the same type, they must conflict.  */
    if (t1 == t2)
      {
        ++alias_stats.num_same_objects;
!       return true;
      }
    /* Likewise if both are volatile.  */
    if (t1 != 0 && TYPE_VOLATILE (t1) && t2 != 0 && TYPE_VOLATILE (t2))
      {
        ++alias_stats.num_volatile;
!       return true;
      }
  
    set1 = t1 ? get_alias_set (t1) : 0;
*************** component_uses_parent_alias_set_from (co
*** 699,705 ****
  static bool
  ref_all_alias_ptr_type_p (const_tree t)
  {
!   return (TREE_CODE (TREE_TYPE (t)) == VOID_TYPE
  	  || TYPE_REF_CAN_ALIAS_ALL (t));
  }
  
--- 686,692 ----
  static bool
  ref_all_alias_ptr_type_p (const_tree t)
  {
!   return (VOID_TYPE_P (TREE_TYPE (t))
  	  || TYPE_REF_CAN_ALIAS_ALL (t));
  }
  
*************** reference_alias_ptr_type_1 (tree *t)
*** 787,793 ****
        && (TYPE_MAIN_VARIANT (TREE_TYPE (inner))
  	  != TYPE_MAIN_VARIANT
  	       (TREE_TYPE (TREE_TYPE (TREE_OPERAND (inner, 1))))))
!     return TREE_TYPE (TREE_OPERAND (inner, 1));
  
    /* Otherwise, pick up the outermost object that we could have
       a pointer to.  */
--- 774,795 ----
        && (TYPE_MAIN_VARIANT (TREE_TYPE (inner))
  	  != TYPE_MAIN_VARIANT
  	       (TREE_TYPE (TREE_TYPE (TREE_OPERAND (inner, 1))))))
!     {
!       tree alias_ptrtype = TREE_TYPE (TREE_OPERAND (inner, 1));
!       /* Unless we have the (aggregate) effective type of the access
! 	 somewhere on the access path.  If we have for example
! 	 (&a->elts[i])->l.len exposed by abstraction we'd see
! 	 MEM <A> [(B *)a].elts[i].l.len and we can use the alias set
! 	 of 'len' when typeof (MEM <A> [(B *)a].elts[i]) == B for
! 	 example.  See PR111715.  */
!       tree inner = *t;
!       while (handled_component_p (inner)
! 	     && (TYPE_MAIN_VARIANT (TREE_TYPE (inner))
! 		 != TYPE_MAIN_VARIANT (TREE_TYPE (alias_ptrtype))))
! 	inner = TREE_OPERAND (inner, 0);
!       if (TREE_CODE (inner) == MEM_REF)
! 	return alias_ptrtype;
!     }
  
    /* Otherwise, pick up the outermost object that we could have
       a pointer to.  */
*************** unique_base_value_p (rtx x)
*** 1398,1423 ****
    return GET_CODE (x) == ADDRESS && GET_MODE (x) == Pmode;
  }
  
- /* Return true if X is known to be a base value.  */
- 
- static bool
- known_base_value_p (rtx x)
- {
-   switch (GET_CODE (x))
-     {
-     case LABEL_REF:
-     case SYMBOL_REF:
-       return true;
- 
-     case ADDRESS:
-       /* Arguments may or may not be bases; we don't know for sure.  */
-       return GET_MODE (x) != VOIDmode;
- 
-     default:
-       return false;
-     }
- }
- 
  /* Inside SRC, the source of a SET, find a base address.  */
  
  static rtx
--- 1400,1405 ----
*************** find_base_value (rtx src)
*** 1488,1533 ****
      case PLUS:
      case MINUS:
        {
! 	rtx temp, src_0 = XEXP (src, 0), src_1 = XEXP (src, 1);
! 
! 	/* If either operand is a REG that is a known pointer, then it
! 	   is the base.  */
! 	if (REG_P (src_0) && REG_POINTER (src_0))
! 	  return find_base_value (src_0);
! 	if (REG_P (src_1) && REG_POINTER (src_1))
! 	  return find_base_value (src_1);
! 
! 	/* If either operand is a REG, then see if we already have
! 	   a known value for it.  */
! 	if (REG_P (src_0))
! 	  {
! 	    temp = find_base_value (src_0);
! 	    if (temp != 0)
! 	      src_0 = temp;
! 	  }
! 
! 	if (REG_P (src_1))
! 	  {
! 	    temp = find_base_value (src_1);
! 	    if (temp!= 0)
! 	      src_1 = temp;
! 	  }
! 
! 	/* If either base is named object or a special address
! 	   (like an argument or stack reference), then use it for the
! 	   base term.  */
! 	if (src_0 != 0 && known_base_value_p (src_0))
! 	  return src_0;
! 
! 	if (src_1 != 0 && known_base_value_p (src_1))
! 	  return src_1;
  
! 	/* Guess which operand is the base address:
! 	   If either operand is a symbol, then it is the base.  If
! 	   either operand is a CONST_INT, then the other is the base.  */
! 	if (CONST_INT_P (src_1) || CONSTANT_P (src_0))
  	  return find_base_value (src_0);
! 	else if (CONST_INT_P (src_0) || CONSTANT_P (src_1))
  	  return find_base_value (src_1);
  
  	return 0;
--- 1470,1481 ----
      case PLUS:
      case MINUS:
        {
! 	rtx src_0 = XEXP (src, 0), src_1 = XEXP (src, 1);
  
! 	/* If either operand is a CONST_INT, then the other is the base.  */
! 	if (CONST_INT_P (src_1))
  	  return find_base_value (src_0);
! 	else if (CONST_INT_P (src_0))
  	  return find_base_value (src_1);
  
  	return 0;
*************** canon_rtx (rtx x)
*** 1809,1821 ****
    return x;
  }
  
! /* Return 1 if X and Y are identical-looking rtx's.
     Expect that X and Y has been already canonicalized.
  
     We use the data in reg_known_value above to see if two registers with
     different numbers are, in fact, equivalent.  */
  
! static int
  rtx_equal_for_memref_p (const_rtx x, const_rtx y)
  {
    int i;
--- 1757,1769 ----
    return x;
  }
  
! /* Return true if X and Y are identical-looking rtx's.
     Expect that X and Y has been already canonicalized.
  
     We use the data in reg_known_value above to see if two registers with
     different numbers are, in fact, equivalent.  */
  
! static bool
  rtx_equal_for_memref_p (const_rtx x, const_rtx y)
  {
    int i;
*************** rtx_equal_for_memref_p (const_rtx x, con
*** 1824,1846 ****
    const char *fmt;
  
    if (x == 0 && y == 0)
!     return 1;
    if (x == 0 || y == 0)
!     return 0;
  
    if (x == y)
!     return 1;
  
    code = GET_CODE (x);
    /* Rtx's of different codes cannot be equal.  */
    if (code != GET_CODE (y))
!     return 0;
  
    /* (MULT:SI x y) and (MULT:HI x y) are NOT equivalent.
       (REG:SI x) and (REG:HI x) are NOT equivalent.  */
  
    if (GET_MODE (x) != GET_MODE (y))
!     return 0;
  
    /* Some RTL can be compared without a recursive examination.  */
    switch (code)
--- 1772,1794 ----
    const char *fmt;
  
    if (x == 0 && y == 0)
!     return true;
    if (x == 0 || y == 0)
!     return false;
  
    if (x == y)
!     return true;
  
    code = GET_CODE (x);
    /* Rtx's of different codes cannot be equal.  */
    if (code != GET_CODE (y))
!     return false;
  
    /* (MULT:SI x y) and (MULT:HI x y) are NOT equivalent.
       (REG:SI x) and (REG:HI x) are NOT equivalent.  */
  
    if (GET_MODE (x) != GET_MODE (y))
!     return false;
  
    /* Some RTL can be compared without a recursive examination.  */
    switch (code)
*************** rtx_equal_for_memref_p (const_rtx x, con
*** 1865,1871 ****
      case VALUE:
      CASE_CONST_UNIQUE:
        /* Pointer equality guarantees equality for these nodes.  */
!       return 0;
  
      default:
        break;
--- 1813,1819 ----
      case VALUE:
      CASE_CONST_UNIQUE:
        /* Pointer equality guarantees equality for these nodes.  */
!       return false;
  
      default:
        break;
*************** rtx_equal_for_memref_p (const_rtx x, con
*** 1902,1908 ****
  				   canon_rtx (XEXP (y, 0)));
  
    /* Compare the elements.  If any pair of corresponding elements
!      fail to match, return 0 for the whole things.
  
       Limit cases to types which actually appear in addresses.  */
  
--- 1850,1856 ----
  				   canon_rtx (XEXP (y, 0)));
  
    /* Compare the elements.  If any pair of corresponding elements
!      fail to match, return false for the whole things.
  
       Limit cases to types which actually appear in addresses.  */
  
*************** rtx_equal_for_memref_p (const_rtx x, con
*** 1913,1948 ****
  	{
  	case 'i':
  	  if (XINT (x, i) != XINT (y, i))
! 	    return 0;
  	  break;
  
  	case 'p':
  	  if (maybe_ne (SUBREG_BYTE (x), SUBREG_BYTE (y)))
! 	    return 0;
  	  break;
  
  	case 'E':
  	  /* Two vectors must have the same length.  */
  	  if (XVECLEN (x, i) != XVECLEN (y, i))
! 	    return 0;
  
  	  /* And the corresponding elements must match.  */
  	  for (j = 0; j < XVECLEN (x, i); j++)
  	    if (rtx_equal_for_memref_p (canon_rtx (XVECEXP (x, i, j)),
  					canon_rtx (XVECEXP (y, i, j))) == 0)
! 	      return 0;
  	  break;
  
  	case 'e':
  	  if (rtx_equal_for_memref_p (canon_rtx (XEXP (x, i)),
  				      canon_rtx (XEXP (y, i))) == 0)
! 	    return 0;
  	  break;
  
  	  /* This can happen for asm operands.  */
  	case 's':
  	  if (strcmp (XSTR (x, i), XSTR (y, i)))
! 	    return 0;
  	  break;
  
  	/* This can happen for an asm which clobbers memory.  */
--- 1861,1896 ----
  	{
  	case 'i':
  	  if (XINT (x, i) != XINT (y, i))
! 	    return false;
  	  break;
  
  	case 'p':
  	  if (maybe_ne (SUBREG_BYTE (x), SUBREG_BYTE (y)))
! 	    return false;
  	  break;
  
  	case 'E':
  	  /* Two vectors must have the same length.  */
  	  if (XVECLEN (x, i) != XVECLEN (y, i))
! 	    return false;
  
  	  /* And the corresponding elements must match.  */
  	  for (j = 0; j < XVECLEN (x, i); j++)
  	    if (rtx_equal_for_memref_p (canon_rtx (XVECEXP (x, i, j)),
  					canon_rtx (XVECEXP (y, i, j))) == 0)
! 	      return false;
  	  break;
  
  	case 'e':
  	  if (rtx_equal_for_memref_p (canon_rtx (XEXP (x, i)),
  				      canon_rtx (XEXP (y, i))) == 0)
! 	    return false;
  	  break;
  
  	  /* This can happen for asm operands.  */
  	case 's':
  	  if (strcmp (XSTR (x, i), XSTR (y, i)))
! 	    return false;
  	  break;
  
  	/* This can happen for an asm which clobbers memory.  */
*************** rtx_equal_for_memref_p (const_rtx x, con
*** 1956,1962 ****
  	  gcc_unreachable ();
  	}
      }
!   return 1;
  }
  
  static rtx
--- 1904,1910 ----
  	  gcc_unreachable ();
  	}
      }
!   return true;
  }
  
  static rtx
*************** find_base_term (rtx x, vec<std::pair<cse
*** 2075,2105 ****
  	if (tmp1 == pic_offset_table_rtx && CONSTANT_P (tmp2))
  	  return find_base_term (tmp2, visited_vals);
  
! 	/* If either operand is known to be a pointer, then prefer it
! 	   to determine the base term.  */
! 	if (REG_P (tmp1) && REG_POINTER (tmp1))
! 	  ;
! 	else if (REG_P (tmp2) && REG_POINTER (tmp2))
! 	  std::swap (tmp1, tmp2);
! 	/* If second argument is constant which has base term, prefer it
! 	   over variable tmp1.  See PR64025.  */
! 	else if (CONSTANT_P (tmp2) && !CONST_INT_P (tmp2))
  	  std::swap (tmp1, tmp2);
  
! 	/* Go ahead and find the base term for both operands.  If either base
! 	   term is from a pointer or is a named object or a special address
! 	   (like an argument or stack reference), then use it for the
! 	   base term.  */
! 	rtx base = find_base_term (tmp1, visited_vals);
! 	if (base != NULL_RTX
! 	    && ((REG_P (tmp1) && REG_POINTER (tmp1))
! 		 || known_base_value_p (base)))
! 	  return base;
! 	base = find_base_term (tmp2, visited_vals);
! 	if (base != NULL_RTX
! 	    && ((REG_P (tmp2) && REG_POINTER (tmp2))
! 		 || known_base_value_p (base)))
! 	  return base;
  
  	/* We could not determine which of the two operands was the
  	   base register and which was the index.  So we can determine
--- 2023,2035 ----
  	if (tmp1 == pic_offset_table_rtx && CONSTANT_P (tmp2))
  	  return find_base_term (tmp2, visited_vals);
  
! 	if (CONST_INT_P (tmp1))
  	  std::swap (tmp1, tmp2);
  
! 	/* We can only handle binary operators when one of the operands
! 	   never leads to a base value.  */
! 	if (CONST_INT_P (tmp2))
! 	  return find_base_term (tmp1, visited_vals);
  
  	/* We could not determine which of the two operands was the
  	   base register and which was the index.  So we can determine
*************** compare_base_symbol_refs (const_rtx x_ba
*** 2263,2272 ****
    return -1;
  }
  
! /* Return 0 if the addresses X and Y are known to point to different
!    objects, 1 if they might be pointers to the same object.  */
  
! static int
  base_alias_check (rtx x, rtx x_base, rtx y, rtx y_base,
  		  machine_mode x_mode, machine_mode y_mode)
  {
--- 2193,2202 ----
    return -1;
  }
  
! /* Return false if the addresses X and Y are known to point to different
!    objects, true if they might be pointers to the same object.  */
  
! static bool
  base_alias_check (rtx x, rtx x_base, rtx y, rtx y_base,
  		  machine_mode x_mode, machine_mode y_mode)
  {
*************** base_alias_check (rtx x, rtx x_base, rtx
*** 2278,2304 ****
        rtx x_c;
  
        if (! flag_expensive_optimizations || (x_c = canon_rtx (x)) == x)
! 	return 1;
  
        x_base = find_base_term (x_c);
        if (x_base == 0)
! 	return 1;
      }
  
    if (y_base == 0)
      {
        rtx y_c;
        if (! flag_expensive_optimizations || (y_c = canon_rtx (y)) == y)
! 	return 1;
  
        y_base = find_base_term (y_c);
        if (y_base == 0)
! 	return 1;
      }
  
    /* If the base addresses are equal nothing is known about aliasing.  */
    if (rtx_equal_p (x_base, y_base))
!     return 1;
  
    /* The base addresses are different expressions.  If they are not accessed
       via AND, there is no conflict.  We can bring knowledge of object
--- 2208,2234 ----
        rtx x_c;
  
        if (! flag_expensive_optimizations || (x_c = canon_rtx (x)) == x)
! 	return true;
  
        x_base = find_base_term (x_c);
        if (x_base == 0)
! 	return true;
      }
  
    if (y_base == 0)
      {
        rtx y_c;
        if (! flag_expensive_optimizations || (y_c = canon_rtx (y)) == y)
! 	return true;
  
        y_base = find_base_term (y_c);
        if (y_base == 0)
! 	return true;
      }
  
    /* If the base addresses are equal nothing is known about aliasing.  */
    if (rtx_equal_p (x_base, y_base))
!     return true;
  
    /* The base addresses are different expressions.  If they are not accessed
       via AND, there is no conflict.  We can bring knowledge of object
*************** base_alias_check (rtx x, rtx x_base, rtx
*** 2308,2334 ****
       via AND address can alias all surrounding object types except those
       with aligment 8 or higher.  */
    if (GET_CODE (x) == AND && GET_CODE (y) == AND)
!     return 1;
    if (GET_CODE (x) == AND
        && (!CONST_INT_P (XEXP (x, 1))
  	  || (int) GET_MODE_UNIT_SIZE (y_mode) < -INTVAL (XEXP (x, 1))))
!     return 1;
    if (GET_CODE (y) == AND
        && (!CONST_INT_P (XEXP (y, 1))
  	  || (int) GET_MODE_UNIT_SIZE (x_mode) < -INTVAL (XEXP (y, 1))))
!     return 1;
  
    /* Differing symbols not accessed via AND never alias.  */
    if (GET_CODE (x_base) == SYMBOL_REF && GET_CODE (y_base) == SYMBOL_REF)
      return compare_base_symbol_refs (x_base, y_base) != 0;
  
    if (GET_CODE (x_base) != ADDRESS && GET_CODE (y_base) != ADDRESS)
!     return 0;
  
    if (unique_base_value_p (x_base) || unique_base_value_p (y_base))
!     return 0;
  
!   return 1;
  }
  
  /* Return TRUE if EXPR refers to a VALUE whose uid is greater than
--- 2238,2264 ----
       via AND address can alias all surrounding object types except those
       with aligment 8 or higher.  */
    if (GET_CODE (x) == AND && GET_CODE (y) == AND)
!     return true;
    if (GET_CODE (x) == AND
        && (!CONST_INT_P (XEXP (x, 1))
  	  || (int) GET_MODE_UNIT_SIZE (y_mode) < -INTVAL (XEXP (x, 1))))
!     return true;
    if (GET_CODE (y) == AND
        && (!CONST_INT_P (XEXP (y, 1))
  	  || (int) GET_MODE_UNIT_SIZE (x_mode) < -INTVAL (XEXP (y, 1))))
!     return true;
  
    /* Differing symbols not accessed via AND never alias.  */
    if (GET_CODE (x_base) == SYMBOL_REF && GET_CODE (y_base) == SYMBOL_REF)
      return compare_base_symbol_refs (x_base, y_base) != 0;
  
    if (GET_CODE (x_base) != ADDRESS && GET_CODE (y_base) != ADDRESS)
!     return false;
  
    if (unique_base_value_p (x_base) || unique_base_value_p (y_base))
!     return false;
  
!   return true;
  }
  
  /* Return TRUE if EXPR refers to a VALUE whose uid is greater than
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2764,2770 ****
     only be a dependence here if both reads are volatile, or if either is
     an explicit barrier.  */
  
! int
  read_dependence (const_rtx mem, const_rtx x)
  {
    if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
--- 2694,2700 ----
     only be a dependence here if both reads are volatile, or if either is
     an explicit barrier.  */
  
! bool
  read_dependence (const_rtx mem, const_rtx x)
  {
    if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
*************** adjust_offset_for_component_ref (tree x,
*** 2825,2835 ****
    while (x && TREE_CODE (x) == COMPONENT_REF);
  }
  
! /* Return nonzero if we can determine the exprs corresponding to memrefs
     X and Y and they do not overlap. 
     If LOOP_VARIANT is set, skip offset-based disambiguation */
  
! int
  nonoverlapping_memrefs_p (const_rtx x, const_rtx y, bool loop_invariant)
  {
    tree exprx = MEM_EXPR (x), expry = MEM_EXPR (y);
--- 2755,2765 ----
    while (x && TREE_CODE (x) == COMPONENT_REF);
  }
  
! /* Return true if we can determine the exprs corresponding to memrefs
     X and Y and they do not overlap. 
     If LOOP_VARIANT is set, skip offset-based disambiguation */
  
! bool
  nonoverlapping_memrefs_p (const_rtx x, const_rtx y, bool loop_invariant)
  {
    tree exprx = MEM_EXPR (x), expry = MEM_EXPR (y);
*************** nonoverlapping_memrefs_p (const_rtx x, c
*** 2841,2854 ****
  
    /* Unless both have exprs, we can't tell anything.  */
    if (exprx == 0 || expry == 0)
!     return 0;
  
    /* For spill-slot accesses make sure we have valid offsets.  */
    if ((exprx == get_spill_slot_decl (false)
         && ! MEM_OFFSET_KNOWN_P (x))
        || (expry == get_spill_slot_decl (false)
  	  && ! MEM_OFFSET_KNOWN_P (y)))
!     return 0;
  
    /* If the field reference test failed, look at the DECLs involved.  */
    moffsetx_known_p = MEM_OFFSET_KNOWN_P (x);
--- 2771,2784 ----
  
    /* Unless both have exprs, we can't tell anything.  */
    if (exprx == 0 || expry == 0)
!     return false;
  
    /* For spill-slot accesses make sure we have valid offsets.  */
    if ((exprx == get_spill_slot_decl (false)
         && ! MEM_OFFSET_KNOWN_P (x))
        || (expry == get_spill_slot_decl (false)
  	  && ! MEM_OFFSET_KNOWN_P (y)))
!     return false;
  
    /* If the field reference test failed, look at the DECLs involved.  */
    moffsetx_known_p = MEM_OFFSET_KNOWN_P (x);
*************** nonoverlapping_memrefs_p (const_rtx x, c
*** 2858,2864 ****
      {
        tree t = decl_for_component_ref (exprx);
        if (! t)
! 	return 0;
        adjust_offset_for_component_ref (exprx, &moffsetx_known_p, &moffsetx);
        exprx = t;
      }
--- 2788,2794 ----
      {
        tree t = decl_for_component_ref (exprx);
        if (! t)
! 	return false;
        adjust_offset_for_component_ref (exprx, &moffsetx_known_p, &moffsetx);
        exprx = t;
      }
*************** nonoverlapping_memrefs_p (const_rtx x, c
*** 2870,2882 ****
      {
        tree t = decl_for_component_ref (expry);
        if (! t)
! 	return 0;
        adjust_offset_for_component_ref (expry, &moffsety_known_p, &moffsety);
        expry = t;
      }
  
    if (! DECL_P (exprx) || ! DECL_P (expry))
!     return 0;
  
    /* If we refer to different gimple registers, or one gimple register
       and one non-gimple-register, we know they can't overlap.  First,
--- 2800,2812 ----
      {
        tree t = decl_for_component_ref (expry);
        if (! t)
! 	return false;
        adjust_offset_for_component_ref (expry, &moffsety_known_p, &moffsety);
        expry = t;
      }
  
    if (! DECL_P (exprx) || ! DECL_P (expry))
!     return false;
  
    /* If we refer to different gimple registers, or one gimple register
       and one non-gimple-register, we know they can't overlap.  First,
*************** nonoverlapping_memrefs_p (const_rtx x, c
*** 2900,2906 ****
       See gfortran.dg/lto/20091028-2_0.f90.  */
    if (TREE_CODE (exprx) == CONST_DECL
        || TREE_CODE (expry) == CONST_DECL)
!     return 1;
  
    /* If one decl is known to be a function or label in a function and
       the other is some kind of data, they can't overlap.  */
--- 2830,2836 ----
       See gfortran.dg/lto/20091028-2_0.f90.  */
    if (TREE_CODE (exprx) == CONST_DECL
        || TREE_CODE (expry) == CONST_DECL)
!     return true;
  
    /* If one decl is known to be a function or label in a function and
       the other is some kind of data, they can't overlap.  */
*************** nonoverlapping_memrefs_p (const_rtx x, c
*** 2908,2921 ****
         || TREE_CODE (exprx) == LABEL_DECL)
        != (TREE_CODE (expry) == FUNCTION_DECL
  	  || TREE_CODE (expry) == LABEL_DECL))
!     return 1;
  
    /* If either of the decls doesn't have DECL_RTL set (e.g. marked as
       living in multiple places), we can't tell anything.  Exception
       are FUNCTION_DECLs for which we can create DECL_RTL on demand.  */
    if ((!DECL_RTL_SET_P (exprx) && TREE_CODE (exprx) != FUNCTION_DECL)
        || (!DECL_RTL_SET_P (expry) && TREE_CODE (expry) != FUNCTION_DECL))
!     return 0;
  
    rtlx = DECL_RTL (exprx);
    rtly = DECL_RTL (expry);
--- 2838,2851 ----
         || TREE_CODE (exprx) == LABEL_DECL)
        != (TREE_CODE (expry) == FUNCTION_DECL
  	  || TREE_CODE (expry) == LABEL_DECL))
!     return true;
  
    /* If either of the decls doesn't have DECL_RTL set (e.g. marked as
       living in multiple places), we can't tell anything.  Exception
       are FUNCTION_DECLs for which we can create DECL_RTL on demand.  */
    if ((!DECL_RTL_SET_P (exprx) && TREE_CODE (exprx) != FUNCTION_DECL)
        || (!DECL_RTL_SET_P (expry) && TREE_CODE (expry) != FUNCTION_DECL))
!     return false;
  
    rtlx = DECL_RTL (exprx);
    rtly = DECL_RTL (expry);
*************** nonoverlapping_memrefs_p (const_rtx x, c
*** 2925,2938 ****
       of the stack frame used for locals for spilled pseudos.  */
    if ((!MEM_P (rtlx) || !MEM_P (rtly))
        && ! rtx_equal_p (rtlx, rtly))
!     return 1;
  
    /* If we have MEMs referring to different address spaces (which can
       potentially overlap), we cannot easily tell from the addresses
       whether the references overlap.  */
    if (MEM_P (rtlx) && MEM_P (rtly)
        && MEM_ADDR_SPACE (rtlx) != MEM_ADDR_SPACE (rtly))
!     return 0;
  
    /* Get the base and offsets of both decls.  If either is a register, we
       know both are and are the same, so use that as the base.  The only
--- 2855,2868 ----
       of the stack frame used for locals for spilled pseudos.  */
    if ((!MEM_P (rtlx) || !MEM_P (rtly))
        && ! rtx_equal_p (rtlx, rtly))
!     return true;
  
    /* If we have MEMs referring to different address spaces (which can
       potentially overlap), we cannot easily tell from the addresses
       whether the references overlap.  */
    if (MEM_P (rtlx) && MEM_P (rtly)
        && MEM_ADDR_SPACE (rtlx) != MEM_ADDR_SPACE (rtly))
!     return false;
  
    /* Get the base and offsets of both decls.  If either is a register, we
       know both are and are the same, so use that as the base.  The only
*************** nonoverlapping_memrefs_p (const_rtx x, c
*** 2957,2963 ****
  
    /* Offset based disambiguation not appropriate for loop invariant */
    if (loop_invariant)
!     return 0;
  
    /* Offset based disambiguation is OK even if we do not know that the
       declarations are necessarily different
--- 2887,2893 ----
  
    /* Offset based disambiguation not appropriate for loop invariant */
    if (loop_invariant)
!     return false;
  
    /* Offset based disambiguation is OK even if we do not know that the
       declarations are necessarily different
*************** nonoverlapping_memrefs_p (const_rtx x, c
*** 2997,3005 ****
  
     If X_ADDR is non-NULL, it is used in preference of XEXP (x, 0).
  
!    Returns 1 if there is a true dependence, 0 otherwise.  */
  
! static int
  true_dependence_1 (const_rtx mem, machine_mode mem_mode, rtx mem_addr,
  		   const_rtx x, rtx x_addr, bool mem_canonicalized)
  {
--- 2927,2935 ----
  
     If X_ADDR is non-NULL, it is used in preference of XEXP (x, 0).
  
!    Returns true if there is a true dependence, false otherwise.  */
  
! static bool
  true_dependence_1 (const_rtx mem, machine_mode mem_mode, rtx mem_addr,
  		   const_rtx x, rtx x_addr, bool mem_canonicalized)
  {
*************** true_dependence_1 (const_rtx mem, machin
*** 3011,3027 ****
  		       : (mem_addr == NULL_RTX && x_addr == NULL_RTX));
  
    if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
!     return 1;
  
    /* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
       This is used in epilogue deallocation functions, and in cselib.  */
    if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
!     return 1;
    if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
!     return 1;
    if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER
        || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER)
!     return 1;
  
    if (! x_addr)
      x_addr = XEXP (x, 0);
--- 2941,2957 ----
  		       : (mem_addr == NULL_RTX && x_addr == NULL_RTX));
  
    if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
!     return true;
  
    /* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
       This is used in epilogue deallocation functions, and in cselib.  */
    if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
!     return true;
    if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
!     return true;
    if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER
        || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER)
!     return true;
  
    if (! x_addr)
      x_addr = XEXP (x, 0);
*************** true_dependence_1 (const_rtx mem, machin
*** 3043,3066 ****
    if (MEM_READONLY_P (x)
        && GET_CODE (x_addr) != AND
        && GET_CODE (true_mem_addr) != AND)
!     return 0;
  
    /* If we have MEMs referring to different address spaces (which can
       potentially overlap), we cannot easily tell from the addresses
       whether the references overlap.  */
    if (MEM_ADDR_SPACE (mem) != MEM_ADDR_SPACE (x))
!     return 1;
  
    base = find_base_term (x_addr);
    if (base && (GET_CODE (base) == LABEL_REF
  	       || (GET_CODE (base) == SYMBOL_REF
  		   && CONSTANT_POOL_ADDRESS_P (base))))
!     return 0;
  
    rtx mem_base = find_base_term (true_mem_addr);
    if (! base_alias_check (x_addr, base, true_mem_addr, mem_base,
  			  GET_MODE (x), mem_mode))
!     return 0;
  
    x_addr = canon_rtx (x_addr);
    if (!mem_canonicalized)
--- 2973,2996 ----
    if (MEM_READONLY_P (x)
        && GET_CODE (x_addr) != AND
        && GET_CODE (true_mem_addr) != AND)
!     return false;
  
    /* If we have MEMs referring to different address spaces (which can
       potentially overlap), we cannot easily tell from the addresses
       whether the references overlap.  */
    if (MEM_ADDR_SPACE (mem) != MEM_ADDR_SPACE (x))
!     return true;
  
    base = find_base_term (x_addr);
    if (base && (GET_CODE (base) == LABEL_REF
  	       || (GET_CODE (base) == SYMBOL_REF
  		   && CONSTANT_POOL_ADDRESS_P (base))))
!     return false;
  
    rtx mem_base = find_base_term (true_mem_addr);
    if (! base_alias_check (x_addr, base, true_mem_addr, mem_base,
  			  GET_MODE (x), mem_mode))
!     return false;
  
    x_addr = canon_rtx (x_addr);
    if (!mem_canonicalized)
*************** true_dependence_1 (const_rtx mem, machin
*** 3068,3087 ****
  
    if ((ret = memrefs_conflict_p (GET_MODE_SIZE (mem_mode), mem_addr,
  				 SIZE_FOR_MODE (x), x_addr, 0)) != -1)
!     return ret;
  
    if (mems_in_disjoint_alias_sets_p (x, mem))
!     return 0;
  
    if (nonoverlapping_memrefs_p (mem, x, false))
!     return 0;
  
    return rtx_refs_may_alias_p (x, mem, true);
  }
  
  /* True dependence: X is read after store in MEM takes place.  */
  
! int
  true_dependence (const_rtx mem, machine_mode mem_mode, const_rtx x)
  {
    return true_dependence_1 (mem, mem_mode, NULL_RTX,
--- 2998,3017 ----
  
    if ((ret = memrefs_conflict_p (GET_MODE_SIZE (mem_mode), mem_addr,
  				 SIZE_FOR_MODE (x), x_addr, 0)) != -1)
!     return !!ret;
  
    if (mems_in_disjoint_alias_sets_p (x, mem))
!     return false;
  
    if (nonoverlapping_memrefs_p (mem, x, false))
!     return false;
  
    return rtx_refs_may_alias_p (x, mem, true);
  }
  
  /* True dependence: X is read after store in MEM takes place.  */
  
! bool
  true_dependence (const_rtx mem, machine_mode mem_mode, const_rtx x)
  {
    return true_dependence_1 (mem, mem_mode, NULL_RTX,
*************** true_dependence (const_rtx mem, machine_
*** 3094,3100 ****
     The mem_addr argument has been added, since true_dependence_1 computed
     this value prior to canonicalizing.  */
  
! int
  canon_true_dependence (const_rtx mem, machine_mode mem_mode, rtx mem_addr,
  		       const_rtx x, rtx x_addr)
  {
--- 3024,3030 ----
     The mem_addr argument has been added, since true_dependence_1 computed
     this value prior to canonicalizing.  */
  
! bool
  canon_true_dependence (const_rtx mem, machine_mode mem_mode, rtx mem_addr,
  		       const_rtx x, rtx x_addr)
  {
*************** canon_true_dependence (const_rtx mem, ma
*** 3102,3114 ****
  			    x, x_addr, /*mem_canonicalized=*/true);
  }
  
! /* Returns nonzero if a write to X might alias a previous read from
     (or, if WRITEP is true, a write to) MEM.
     If X_CANONCALIZED is true, then X_ADDR is the canonicalized address of X,
     and X_MODE the mode for that access.
     If MEM_CANONICALIZED is true, MEM is canonicalized.  */
  
! static int
  write_dependence_p (const_rtx mem,
  		    const_rtx x, machine_mode x_mode, rtx x_addr,
  		    bool mem_canonicalized, bool x_canonicalized, bool writep)
--- 3032,3044 ----
  			    x, x_addr, /*mem_canonicalized=*/true);
  }
  
! /* Returns true if a write to X might alias a previous read from
     (or, if WRITEP is true, a write to) MEM.
     If X_CANONCALIZED is true, then X_ADDR is the canonicalized address of X,
     and X_MODE the mode for that access.
     If MEM_CANONICALIZED is true, MEM is canonicalized.  */
  
! static bool
  write_dependence_p (const_rtx mem,
  		    const_rtx x, machine_mode x_mode, rtx x_addr,
  		    bool mem_canonicalized, bool x_canonicalized, bool writep)
*************** write_dependence_p (const_rtx mem,
*** 3124,3140 ****
  		       : (x_addr == NULL_RTX && x_mode == VOIDmode));
  
    if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
!     return 1;
  
    /* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
       This is used in epilogue deallocation functions.  */
    if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
!     return 1;
    if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
!     return 1;
    if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER
        || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER)
!     return 1;
  
    if (!x_addr)
      x_addr = XEXP (x, 0);
--- 3054,3070 ----
  		       : (x_addr == NULL_RTX && x_mode == VOIDmode));
  
    if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
!     return true;
  
    /* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
       This is used in epilogue deallocation functions.  */
    if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
!     return true;
    if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
!     return true;
    if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER
        || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER)
!     return true;
  
    if (!x_addr)
      x_addr = XEXP (x, 0);
*************** write_dependence_p (const_rtx mem,
*** 3150,3162 ****
        && MEM_READONLY_P (mem)
        && GET_CODE (true_x_addr) != AND
        && GET_CODE (true_mem_addr) != AND)
!     return 0;
  
    /* If we have MEMs referring to different address spaces (which can
       potentially overlap), we cannot easily tell from the addresses
       whether the references overlap.  */
    if (MEM_ADDR_SPACE (mem) != MEM_ADDR_SPACE (x))
!     return 1;
  
    base = find_base_term (true_mem_addr);
    if (! writep
--- 3080,3092 ----
        && MEM_READONLY_P (mem)
        && GET_CODE (true_x_addr) != AND
        && GET_CODE (true_mem_addr) != AND)
!     return false;
  
    /* If we have MEMs referring to different address spaces (which can
       potentially overlap), we cannot easily tell from the addresses
       whether the references overlap.  */
    if (MEM_ADDR_SPACE (mem) != MEM_ADDR_SPACE (x))
!     return true;
  
    base = find_base_term (true_mem_addr);
    if (! writep
*************** write_dependence_p (const_rtx mem,
*** 3164,3175 ****
        && (GET_CODE (base) == LABEL_REF
  	  || (GET_CODE (base) == SYMBOL_REF
  	      && CONSTANT_POOL_ADDRESS_P (base))))
!     return 0;
  
    rtx x_base = find_base_term (true_x_addr);
    if (! base_alias_check (true_x_addr, x_base, true_mem_addr, base,
  			  GET_MODE (x), GET_MODE (mem)))
!     return 0;
  
    if (!x_canonicalized)
      {
--- 3094,3105 ----
        && (GET_CODE (base) == LABEL_REF
  	  || (GET_CODE (base) == SYMBOL_REF
  	      && CONSTANT_POOL_ADDRESS_P (base))))
!     return false;
  
    rtx x_base = find_base_term (true_x_addr);
    if (! base_alias_check (true_x_addr, x_base, true_mem_addr, base,
  			  GET_MODE (x), GET_MODE (mem)))
!     return false;
  
    if (!x_canonicalized)
      {
*************** write_dependence_p (const_rtx mem,
*** 3181,3197 ****
  
    if ((ret = memrefs_conflict_p (SIZE_FOR_MODE (mem), mem_addr,
  				 GET_MODE_SIZE (x_mode), x_addr, 0)) != -1)
!     return ret;
  
    if (nonoverlapping_memrefs_p (x, mem, false))
!     return 0;
  
    return rtx_refs_may_alias_p (x, mem, false);
  }
  
  /* Anti dependence: X is written after read in MEM takes place.  */
  
! int
  anti_dependence (const_rtx mem, const_rtx x)
  {
    return write_dependence_p (mem, x, VOIDmode, NULL_RTX,
--- 3111,3127 ----
  
    if ((ret = memrefs_conflict_p (SIZE_FOR_MODE (mem), mem_addr,
  				 GET_MODE_SIZE (x_mode), x_addr, 0)) != -1)
!     return !!ret;
  
    if (nonoverlapping_memrefs_p (x, mem, false))
!     return false;
  
    return rtx_refs_may_alias_p (x, mem, false);
  }
  
  /* Anti dependence: X is written after read in MEM takes place.  */
  
! bool
  anti_dependence (const_rtx mem, const_rtx x)
  {
    return write_dependence_p (mem, x, VOIDmode, NULL_RTX,
*************** anti_dependence (const_rtx mem, const_rt
*** 3204,3210 ****
     STRICT_LOW_PART / ZERO_EXTRACT).
     If MEM_CANONICALIZED is true, MEM is canonicalized.  */
  
! int
  canon_anti_dependence (const_rtx mem, bool mem_canonicalized,
  		       const_rtx x, machine_mode x_mode, rtx x_addr)
  {
--- 3134,3140 ----
     STRICT_LOW_PART / ZERO_EXTRACT).
     If MEM_CANONICALIZED is true, MEM is canonicalized.  */
  
! bool
  canon_anti_dependence (const_rtx mem, bool mem_canonicalized,
  		       const_rtx x, machine_mode x_mode, rtx x_addr)
  {
*************** canon_anti_dependence (const_rtx mem, bo
*** 3215,3221 ****
  
  /* Output dependence: X is written after store in MEM takes place.  */
  
! int
  output_dependence (const_rtx mem, const_rtx x)
  {
    return write_dependence_p (mem, x, VOIDmode, NULL_RTX,
--- 3145,3151 ----
  
  /* Output dependence: X is written after store in MEM takes place.  */
  
! bool
  output_dependence (const_rtx mem, const_rtx x)
  {
    return write_dependence_p (mem, x, VOIDmode, NULL_RTX,
*************** output_dependence (const_rtx mem, const_
*** 3228,3234 ****
     STRICT_LOW_PART / ZERO_EXTRACT).
     If MEM_CANONICALIZED is true, MEM is canonicalized.  */
  
! int
  canon_output_dependence (const_rtx mem, bool mem_canonicalized,
  			 const_rtx x, machine_mode x_mode, rtx x_addr)
  {
--- 3158,3164 ----
     STRICT_LOW_PART / ZERO_EXTRACT).
     If MEM_CANONICALIZED is true, MEM is canonicalized.  */
  
! bool
  canon_output_dependence (const_rtx mem, bool mem_canonicalized,
  			 const_rtx x, machine_mode x_mode, rtx x_addr)
  {
*************** canon_output_dependence (const_rtx mem,
*** 3241,3263 ****
  
  /* Check whether X may be aliased with MEM.  Don't do offset-based
    memory disambiguation & TBAA.  */
! int
  may_alias_p (const_rtx mem, const_rtx x)
  {
    rtx x_addr, mem_addr;
  
    if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
!     return 1;
  
    /* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
       This is used in epilogue deallocation functions.  */
    if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
!     return 1;
    if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
!     return 1;
    if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER
        || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER)
!     return 1;
  
    x_addr = XEXP (x, 0);
    x_addr = get_addr (x_addr);
--- 3171,3193 ----
  
  /* Check whether X may be aliased with MEM.  Don't do offset-based
    memory disambiguation & TBAA.  */
! bool
  may_alias_p (const_rtx mem, const_rtx x)
  {
    rtx x_addr, mem_addr;
  
    if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
!     return true;
  
    /* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
       This is used in epilogue deallocation functions.  */
    if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
!     return true;
    if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
!     return true;
    if (MEM_ALIAS_SET (x) == ALIAS_SET_MEMORY_BARRIER
        || MEM_ALIAS_SET (mem) == ALIAS_SET_MEMORY_BARRIER)
!     return true;
  
    x_addr = XEXP (x, 0);
    x_addr = get_addr (x_addr);
*************** may_alias_p (const_rtx mem, const_rtx x)
*** 3273,3294 ****
    if (MEM_READONLY_P (x)
        && GET_CODE (x_addr) != AND
        && GET_CODE (mem_addr) != AND)
!     return 0;
  
    /* If we have MEMs referring to different address spaces (which can
       potentially overlap), we cannot easily tell from the addresses
       whether the references overlap.  */
    if (MEM_ADDR_SPACE (mem) != MEM_ADDR_SPACE (x))
!     return 1;
  
    rtx x_base = find_base_term (x_addr);
    rtx mem_base = find_base_term (mem_addr);
    if (! base_alias_check (x_addr, x_base, mem_addr, mem_base,
  			  GET_MODE (x), GET_MODE (mem_addr)))
!     return 0;
  
    if (nonoverlapping_memrefs_p (mem, x, true))
!     return 0;
  
    /* TBAA not valid for loop_invarint */
    return rtx_refs_may_alias_p (x, mem, false);
--- 3203,3224 ----
    if (MEM_READONLY_P (x)
        && GET_CODE (x_addr) != AND
        && GET_CODE (mem_addr) != AND)
!     return false;
  
    /* If we have MEMs referring to different address spaces (which can
       potentially overlap), we cannot easily tell from the addresses
       whether the references overlap.  */
    if (MEM_ADDR_SPACE (mem) != MEM_ADDR_SPACE (x))
!     return true;
  
    rtx x_base = find_base_term (x_addr);
    rtx mem_base = find_base_term (mem_addr);
    if (! base_alias_check (x_addr, x_base, mem_addr, mem_base,
  			  GET_MODE (x), GET_MODE (mem_addr)))
!     return false;
  
    if (nonoverlapping_memrefs_p (mem, x, true))
!     return false;
  
    /* TBAA not valid for loop_invarint */
    return rtx_refs_may_alias_p (x, mem, false);
*************** init_alias_analysis (void)
*** 3374,3381 ****
        && !frame_pointer_needed
        && targetm.can_eliminate (FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM);
    unsigned int maxreg = max_reg_num ();
!   int changed, pass;
!   int i;
    unsigned int ui;
    rtx_insn *insn;
    rtx val;
--- 3304,3311 ----
        && !frame_pointer_needed
        && targetm.can_eliminate (FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM);
    unsigned int maxreg = max_reg_num ();
!   bool changed;
!   int pass, i;
    unsigned int ui;
    rtx_insn *insn;
    rtx val;
*************** init_alias_analysis (void)
*** 3430,3436 ****
    do
      {
        /* Assume nothing will change this iteration of the loop.  */
!       changed = 0;
  
        /* We want to assign the same IDs each iteration of this loop, so
  	 start counting from one each iteration of the loop.  */
--- 3360,3366 ----
    do
      {
        /* Assume nothing will change this iteration of the loop.  */
!       changed = false;
  
        /* We want to assign the same IDs each iteration of this loop, so
  	 start counting from one each iteration of the loop.  */
*************** init_alias_analysis (void)
*** 3543,3549 ****
  	      && ! rtx_equal_p (new_reg_base_value[ui], (*reg_base_value)[ui]))
  	    {
  	      (*reg_base_value)[ui] = new_reg_base_value[ui];
! 	      changed = 1;
  	    }
  	}
      }
--- 3473,3479 ----
  	      && ! rtx_equal_p (new_reg_base_value[ui], (*reg_base_value)[ui]))
  	    {
  	      (*reg_base_value)[ui] = new_reg_base_value[ui];
! 	      changed = true;
  	    }
  	}
      }
diff -Nrcpad gcc-13.2.0/gcc/alias.h gcc-14.1.0/gcc/alias.h
*** gcc-13.2.0/gcc/alias.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/alias.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Exported functions from alias.cc
!    Copyright (C) 2004-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Exported functions from alias.cc
!    Copyright (C) 2004-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern bool ends_tbaa_access_path_p (con
*** 30,39 ****
  extern bool alias_set_subset_of (alias_set_type, alias_set_type);
  extern void record_alias_subset (alias_set_type, alias_set_type);
  extern void record_component_aliases (tree);
! extern int alias_sets_conflict_p (alias_set_type, alias_set_type);
! extern int alias_sets_must_conflict_p (alias_set_type, alias_set_type);
! extern int objects_must_conflict_p (tree, tree);
! extern int nonoverlapping_memrefs_p (const_rtx, const_rtx, bool);
  extern void dump_alias_stats_in_alias_c (FILE *s);
  tree reference_alias_ptr_type (tree);
  tree reference_alias_ptr_type_1 (tree *);
--- 30,39 ----
  extern bool alias_set_subset_of (alias_set_type, alias_set_type);
  extern void record_alias_subset (alias_set_type, alias_set_type);
  extern void record_component_aliases (tree);
! extern bool alias_sets_conflict_p (alias_set_type, alias_set_type);
! extern bool alias_sets_must_conflict_p (alias_set_type, alias_set_type);
! extern bool objects_must_conflict_p (tree, tree);
! extern bool nonoverlapping_memrefs_p (const_rtx, const_rtx, bool);
  extern void dump_alias_stats_in_alias_c (FILE *s);
  tree reference_alias_ptr_type (tree);
  tree reference_alias_ptr_type_1 (tree *);
diff -Nrcpad gcc-13.2.0/gcc/align.h gcc-14.1.0/gcc/align.h
*** gcc-13.2.0/gcc/align.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/align.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Alignment-related classes.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Alignment-related classes.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/alloc-pool.cc gcc-14.1.0/gcc/alloc-pool.cc
*** gcc-13.2.0/gcc/alloc-pool.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/alloc-pool.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Functions to support a pool of allocatable objects.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Functions to support a pool of allocatable objects.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/alloc-pool.h gcc-14.1.0/gcc/alloc-pool.h
*** gcc-13.2.0/gcc/alloc-pool.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/alloc-pool.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Functions to support a pool of allocatable objects
!    Copyright (C) 1997-2023 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Functions to support a pool of allocatable objects
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/ChangeLog gcc-14.1.0/gcc/analyzer/ChangeLog
*** gcc-13.2.0/gcc/analyzer/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/gcc/analyzer/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,10 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2023-03-22  David Malcolm  <dmalcolm@redhat.com>
  
--- 1,2087 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
  
! 	* region-model.cc (region_model::check_region_size): Bail out
! 	early on function pointers.
! 
! 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/114472
! 	* access-diagram.cc (bit_size_expr::maybe_get_formatted_str):
! 	Reject attempts to print sizes that are too large.
! 	* region.cc (region_offset::calc_symbolic_bit_offset): Use a
! 	typeless svalue for the bit offset.
! 	* store.cc (bit_range::intersects_p): Replace assertion with
! 	test.
! 	(bit_range::exceeds_p): Likewise.
! 	(bit_range::falls_short_of_p): Likewise.
! 
! 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* infinite-loop.cc: Include "diagnostic-format-sarif.h".
! 	(infinite_loop::to_json): New.
! 	(infinite_loop_diagnostic::maybe_add_sarif_properties): New.
! 
! 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* infinite-recursion.cc: Include "diagnostic-format-sarif.h".
! 	(infinite_recursion_diagnostic::maybe_add_sarif_properties): New.
! 
! 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* call-details.cc: Include "diagnostic-format-sarif.h".
! 	(overlapping_buffers::overlapping_buffers): Add params for new
! 	fields.
! 	(overlapping_buffers::maybe_add_sarif_properties): New.
! 	(overlapping_buffers::m_byte_range_a): New field.
! 	(overlapping_buffers::byte_range_b): New field.
! 	(overlapping_buffers::m_num_bytes_read_sval): New field.
! 	(call_details::complain_about_overlap): Pass new params to
! 	overlapping_buffers ctor.
! 	* ranges.cc (symbolic_byte_offset::to_json): New.
! 	(symbolic_byte_range::to_json): New.
! 	* ranges.h (symbolic_byte_offset::to_json): New decl.
! 	(symbolic_byte_range::to_json): New decl.
! 
! 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* sm-taint.cc (tainted_allocation_size::tainted_allocation_size):
! 	Add "size_in_bytes" param.
! 	(tainted_allocation_size::maybe_add_sarif_properties): New.
! 	(tainted_allocation_size::m_size_in_bytes): New field.
! 	(region_model::check_dynamic_size_for_taint): Pass size_in_bytes
! 	to tainted_allocation_size ctor.
! 
! 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* analyzer.opt (Wanalyzer-undefined-behavior-strtok): Fix duplicated
! 	words; in in -> in.
! 	* program-state.cc (sm_state_map::replay_call_summary): Fix duplicated
! 	words in comment; to to -> to.
! 	(program_state::replay_call_summary): Likewise.
! 	* region-model.cc (region_model::replay_call_summary): Likewise.
! 
! 2024-04-05  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/114588
! 	* access-diagram.cc (access_diagram_impl::access_diagram_impl):
! 	Replace hardcoded colors for valid_style and invalid_style with
! 	calls to text_art::get_style_from_color_cap_name.
! 
! 2024-04-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model-manager.cc (maybe_undo_optimize_bit_field_compare):
! 	Guard against null types.
! 	* region-model.cc (apply_constraints_for_gswitch): Likewise.
! 
! 2024-03-27  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/114473
! 	* call-summary.cc
! 	(call_summary_replay::convert_svalue_from_summary): Assert that
! 	the types match.
! 	(call_summary_replay::convert_region_from_summary): Likewise.
! 	(call_summary_replay::convert_region_from_summary_1): Add missing
! 	cast for the deref of RK_SYMBOLIC case.
! 
! 2024-03-23  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/114408
! 	* engine.cc (impl_run_checkers): Free up any dominance info that
! 	we may have created.
! 	* kf.cc (class kf_ubsan_handler): New.
! 	(register_sanitizer_builtins): New.
! 	(register_known_functions): Call register_sanitizer_builtins.
! 
! 2024-03-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112974
! 	PR analyzer/112975
! 	* sm-taint.cc (taint_state_machine::on_condition): Strip away
! 	casts before considering LHS and RHS, to increase the chance of
! 	detecting places where sanitization of a value may have happened.
! 
! 2024-03-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* sm-taint.cc: Include "diagnostic-format-sarif.h".
! 	(bounds_to_str): New.
! 	(taint_diagnostic::maybe_add_sarif_properties): New.
! 	(tainted_offset::tainted_offset): Add "offset" param.
! 	(tainted_offset::maybe_add_sarif_properties): New.
! 	(tainted_offset::m_offset): New.
! 	(region_model::check_region_for_taint): Pass offset to
! 	tainted_offset ctor.
! 
! 2024-03-21  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113619
! 	* region-model.cc (region_model::eval_condition): Fix
! 	cast-handling from r14-3632-ge7b267444045c5 so that if those give
! 	an unknown result, we continue trying the constraint manager.
! 
! 2024-03-20  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/109251
! 	* sm-malloc.cc (deref_before_check::emit): Reject cases where the
! 	check is in a loop header within a macro expansion.
! 	(deref_before_check::loop_header_p): New.
! 
! 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* constraint-manager.cc (test_range, test_constraint_conditions,
! 	test_constant_comparisons, test_constraint_impl, test_purging,
! 	test_bits): Use integer_zero_node instead of
! 	build_zero_cst (integer_type_node) or
! 	build_int_cst (integer_type_node, 0) and integer_one_node instead of
! 	build_int_cst (integer_type_node, 1).
! 	* region-model.cc (region_model::get_store_value,
! 	append_interesting_constants, test_array_1,
! 	test_get_representative_tree, test_unique_constants, test_assignment,
! 	test_stack_frames, test_constraint_merging, test_widening_constraints,
! 	test_iteration_1, test_array_2): Likewise.
! 
! 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR analyzer/113505
! 	* region-model.cc (get_tree_for_byte_offset,
! 	region_model::get_representative_path_var_1,
! 	test_mem_ref, test_POINTER_PLUS_EXPR_then_MEM_REF): Use
! 	char __attribute__((may_alias)) * as type of MEM_REF second argument.
! 
! 2024-03-19  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/114286
! 	* kf.cc (class kf_atomic_exchange): Reimplement based on signature
! 	seen in gimple, rather than user-facing signature.
! 	(class kf_atomic_load): Likewise.
! 	(class kf_atomic_store): New.
! 	(register_atomic_builtins): Register kf_atomic_store.
! 
! 2024-03-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110902
! 	PR analyzer/110928
! 	PR analyzer/111305
! 	PR analyzer/111441
! 	* access-diagram.cc: Include "analyzer/analyzer-selftests.h".
! 	(get_access_size_str): Reimplement for conversion of
! 	implmementation of bit_size_expr from tree to const svalue &.  Use
! 	svalue::maybe_print_for_user rather than tree printing routines.
! 	(remove_ssa_names): Make non-static.
! 	(bit_size_expr::get_formatted_str): Rename to...
! 	(bit_size_expr::maybe_get_formatted_str): ...this, adding "model"
! 	param and converting return type to a unique_ptr.  Update for
! 	conversion of implementation of bit_size_expr from tree to
! 	const svalue &.  Use svalue::maybe_print_for_user rather than tree
! 	printing routines.
! 	(bit_size_expr::print): Rename to...
! 	(bit_size_expr::maybe_print_for_user): ...this, adding "model"
! 	param and converting return type to bool.  Update for
! 	conversion of implementation of bit_size_expr from tree to
! 	const svalue &.  Use svalue::maybe_print_for_user rather than tree
! 	printing routines.
! 	(bit_size_expr::maybe_get_as_bytes): Add "mgr" param and convert
! 	return type from tree to const svalue *; reimplement.
! 	(access_range::access_range): Call strip_types when on region_offset
! 	intializations.
! 	(access_range::get_size): Update for conversion of implementation
! 	of bit_size_expr from tree to const svalue &.
! 	(access_operation::get_valid_bits): Pass manager to access_range
! 	ctor.
! 	(access_operation::maybe_get_invalid_before_bits): Likewise.
! 	(access_operation::maybe_get_invalid_after_bits): Likewise.
! 	(boundaries::add): Likewise.
! 	(bit_to_table_map::populate): Add "mgr" param and pass it to
! 	access_range ctor.
! 	(access_diagram_impl::access_diagram_impl): Pass manager to
! 	bit_to_table_map::populate.
! 	(access_diagram_impl::maybe_add_gap): Use svalue rather than tree
! 	for symbolic bit offsets.  Port to new bit_size_expr
! 	representation.
! 	(access_diagram_impl::add_valid_vs_invalid_ruler): Port to new
! 	bit_size_expr representation.
! 	(selftest::assert_eq_typeless_integer): New.
! 	(ASSERT_EQ_TYPELESS_INTEGER): New.
! 	(selftest::test_bit_size_expr_to_bytes): New.
! 	(selftest::analyzer_access_diagram_cc_tests): New.
! 	* access-diagram.h (class bit_size_expr): Reimplement, converting
! 	implementation from tree to const svalue &.
! 	(access_range::access_range): Add "mgr" param.  Call strip_types
! 	on region_offset initializations.
! 	(access_range::get_size): Update decl for reimplementation.
! 	* analyzer-selftests.cc (selftest::run_analyzer_selftests): Call
! 	selftest::analyzer_access_diagram_cc_tests.
! 	* analyzer-selftests.h
! 	(selftest::analyzer_checker_script_cc_tests): Delete this stray
! 	typo.
! 	(selftest::analyzer_access_diagram_cc_tests): New decl.
! 	* analyzer.h (print_expr_for_user): New decl.
! 	(calc_symbolic_bit_offset): Update decl for reimplementation.
! 	(strip_types): New decls.
! 	(remove_ssa_names): New decl.
! 	* bounds-checking.cc (strip_types): New.
! 	(region_model::check_symbolic_bounds): Use typeless svalues.
! 	* region-model-manager.cc
! 	(region_model_manager::get_or_create_constant_svalue): Add "type"
! 	param.  Add overload with old signature.
! 	(region_model_manager::get_or_create_int_cst): Support type being
! 	NULL_TREE.
! 	(region_model_manager::maybe_fold_unaryop): Gracefully reject folding
! 	of casts to NULL_TREE type.
! 	(get_code_for_cast): Use NOP_EXPR for "casting" svalues to
! 	NULL_TREE type.
! 	(region_model_manager::get_or_create_cast): Support "casting"
! 	svalues to NULL_TREE type.
! 	(region_model_manager::maybe_fold_binop): Don't crash on inputs
! 	with NULL_TREE type.  Handle folding of binops on constants with
! 	NULL_TREE type.  Add missing cast from PR analyzer/110902.
! 	Support enough folding of other ops on NULL_TREE type to support
! 	bounds checking.
! 	(region_model_manager::get_or_create_const_fn_result_svalue):
! 	Remove assertion that type is nonnull.
! 	* region-model-manager.h
! 	(region_model_manager::get_or_create_constant_svalue): Add
! 	overloaded decl taking a type.
! 	(region_model_manager::maybe_fold_binop): Make public.
! 	(region_model_manager::constants_map_t): Use
! 	constant_svalue::key_t for the key, rather than just tree.
! 	* region-model.cc (print_expr_for_user): New.
! 	(selftest::test_array_2): Handle casts.
! 	* region.cc (region_offset::calc_symbolic_bit_offset): Return
! 	const svalue & rather than tree, and reimplement accordingly.
! 	(region::calc_offset): Use ptrdiff_type_node for types of byte
! 	offsets.
! 	(region::maybe_print_for_user): New.
! 	(element_region::get_relative_symbolic_offset): Use NULL_TREE for
! 	types of bit offsets.
! 	(offset_region::get_bit_offset): Likewise.
! 	(sized_region::get_bit_size_sval): Likewise for bit sizes.
! 	* region.h (region::maybe_print_for_user): New decl.
! 	* svalue.cc (class auto_add_parens): New.
! 	(svalue::maybe_print_for_user): New.
! 	(svalue::cmp_ptr): Support typeless constant svalues.
! 	(tristate_from_boolean_tree_node): New, taken from...
! 	(constant_svalue::eval_condition): ...here.  Handle comparison of
! 	typeless integer svalue constants.
! 	* svalue.h (svalue::maybe_print_for_user): New decl.
! 	(class constant_svalue): Support the type of the svalue being
! 	NULL_TREE.
! 	(struct default_hash_traits<constant_svalue::key_t>): New.
! 
! 2024-03-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc (remove_ssa_names): Support operands being
! 	NULL_TREE, such as e.g. for COMPONENT_REF's operand 2.
! 
! 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* access-diagram.cc: Include diagnostic-core.h before including
! 	diagnostic.h or diagnostic-path.h.
! 	* sm-malloc.cc: Likewise.
! 	* diagnostic-manager.cc: Likewise.
! 	* call-summary.cc: Likewise.
! 	* record-layout.cc: Likewise.
! 
! 2024-02-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/114159
! 	* analyzer.cc: Include "tree-dfa.h".
! 	(get_ssa_default_def): New decl.
! 	* analyzer.h (get_ssa_default_def): New.
! 	* call-info.cc (call_info::call_info): New ctor taking an explicit
! 	called_fn.
! 	* call-info.h (call_info::call_info): Likewise.
! 	* call-summary.cc (call_summary_replay::call_summary_replay):
! 	Convert param from function * to const function &.
! 	* call-summary.h (call_summary_replay::call_summary_replay):
! 	Likewise.
! 	* checker-event.h (state_change_event::get_dest_function):
! 	Constify return value.
! 	* engine.cc (point_and_state::validate): Update for conversion to
! 	const function &.
! 	(exploded_node::on_stmt): Likewise.
! 	(call_summary_edge_info::call_summary_edge_info): Likewise.
! 	Pass in called_fn to call_info ctor.
! 	(exploded_node::replay_call_summaries): Update for conversion to
! 	const function &.  Convert per_function_data from * to &.
! 	(exploded_node::replay_call_summary): Update for conversion to
! 	const function &.
! 	(exploded_graph::add_function_entry): Likewise.
! 	(toplevel_function_p): Likewise.
! 	(add_tainted_args_callback): Likewise.
! 	(exploded_graph::build_initial_worklist): Likewise.
! 	(exploded_graph::maybe_create_dynamic_call): Likewise.
! 	(maybe_update_for_edge): Likewise.
! 	(exploded_graph::on_escaped_function): Likewise.
! 	* exploded-graph.h (exploded_node::replay_call_summaries):
! 	Likewise.
! 	(exploded_node::replay_call_summary): Likewise.
! 	(exploded_graph::add_function_entry): Likewise.
! 	* program-point.cc (function_point::from_function_entry):
! 	Likewise.
! 	(program_point::from_function_entry): Likewise.
! 	* program-point.h (function_point::from_function_entry): Likewise.
! 	(program_point::from_function_entry): Likewise.
! 	* program-state.cc (program_state::push_frame): Likewise.
! 	(program_state::get_current_function): Constify return type.
! 	* program-state.h (program_state::push_frame): Update for
! 	conversion to const function &.
! 	(program_state::get_current_function): Likewise.
! 	* region-model-manager.cc
! 	(region_model_manager::get_frame_region): Likewise.
! 	* region-model-manager.h
! 	(region_model_manager::get_frame_region): Likewise.
! 	* region-model.cc (region_model::called_from_main_p): Likewise.
! 	(region_model::update_for_gcall): Likewise.
! 	(region_model::push_frame): Likewise.
! 	(region_model::get_current_function): Constify return type.
! 	(region_model::pop_frame): Update for conversion to
! 	const function &.
! 	(selftest::test_stack_frames): Likewise.
! 	(selftest::test_get_representative_path_var): Likewise.
! 	(selftest::test_state_merging): Likewise.
! 	(selftest::test_alloca): Likewise.
! 	* region-model.h (region_model::push_frame): Likewise.
! 	(region_model::get_current_function): Likewise.
! 	* region.cc (frame_region::dump_to_pp): Likewise.
! 	(frame_region::get_region_for_local): Likewise.
! 	* region.h (class frame_region): Likewise.
! 	* sm-signal.cc (signal_unsafe_call::describe_state_change):
! 	Likewise.
! 	(update_model_for_signal_handler): Likewise.
! 	(signal_delivery_edge_info_t::update_model): Likewise.
! 	(register_signal_handler::impl_transition): Likewise.
! 	* state-purge.cc (class gimple_op_visitor): Likewise.
! 	(state_purge_map::state_purge_map): Likewise.
! 	(state_purge_map::get_or_create_data_for_decl): Likewise.
! 	(state_purge_per_ssa_name::state_purge_per_ssa_name): Likewise.
! 	(state_purge_per_ssa_name::add_to_worklist): Likewise.
! 	(state_purge_per_ssa_name::process_point): Likewise.
! 	(state_purge_per_decl::add_to_worklist): Likewise.
! 	(state_purge_annotator::print_needed): Likewise.
! 	* state-purge.h
! 	(state_purge_map::get_or_create_data_for_decl): Likewise.
! 	(class state_purge_per_tree): Likewise.
! 	(class state_purge_per_ssa_name): Likewise.
! 	(class state_purge_per_decl): Likewise.
! 	* supergraph.cc (supergraph::dump_dot_to_pp): Likewise.
! 	* supergraph.h
! 	(supergraph::get_node_for_function_entry): Likewise.
! 	(supergraph::get_node_for_function_exit): Likewise.
! 
! 2024-02-27  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110483
! 	PR analyzer/111802
! 	* access-diagram.cc
! 	(string_literal_spatial_item::add_column_for_byte): Use %wu for
! 	printing unsigned HOST_WIDE_INT.
! 
! 2024-02-27  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/111881
! 	* constraint-manager.cc (bound::ensure_closed): Assert that
! 	m_constant has integral type.
! 	(range::add_bound): Bail out on floating point constants.
! 
! 2024-02-21  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113999
! 	* analyzer.h (get_string_cst_size): New decl.
! 	* region-model-manager.cc (get_string_cst_size): New.
! 	(region_model_manager::maybe_get_char_from_string_cst): Treat
! 	single-byte accesses within string_cst but beyond
! 	TREE_STRING_LENGTH as being 0.
! 	* region-model.cc (string_cst_has_null_terminator): Likewise.
! 
! 2024-02-21  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113998
! 	* ranges.cc (symbolic_byte_range::intersection): Handle empty ranges.
! 	(selftest::test_intersects): Add test coverage for empty ranges.
! 
! 2024-02-19  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/111289
! 	* varargs.cc (representable_in_integral_type_p): New.
! 	(va_arg_compatible_types_p): Add "arg_sval" param.  Handle integer
! 	types.
! 	(kf_va_arg::impl_call_pre): Pass arg_sval to
! 	va_arg_compatible_types_p.
! 
! 2024-02-19  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR analyzer/113983
! 	* region-model-manager.cc (maybe_undo_optimize_bit_field_compare): Reject
! 	non integral types.
! 
! 2024-02-15  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/111266
! 	* region.cc (offset_region::get_byte_size_sval): Delete.
! 	(offset_region::get_bit_size_sval): Delete.
! 	* region.h (region::get_byte_size): Add comment clarifying that
! 	this relates to the size of the access, rather than the size
! 	that's valid to access.
! 	(region::get_bit_size): Likewise.
! 	(region::get_byte_size_sval): Likewise.
! 	(region::get_bit_size_sval): Likewise.
! 	(offset_region::get_byte_size_sval): Delete.
! 	(offset_region::get_bit_size_sval): Delete.
! 
! 2024-02-13  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* pending-diagnostic.cc (diagnostic_emission_context::warn):
! 	Update for renaming of emit_diagnostic_valist overload to
! 	emit_diagnostic_valist_meta.
! 	(diagnostic_emission_context::inform): Likewise.
! 
! 2024-01-31  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113253
! 	* region-model.cc (region_model::on_stmt_pre): Add gcc_unreachable
! 	for debug statements.
! 	* state-purge.cc
! 	(state_purge_per_ssa_name::state_purge_per_ssa_name): Skip any
! 	debug stmts in the FOR_EACH_IMM_USE_FAST list.
! 	* supergraph.cc (supergraph::supergraph): Don't add debug stmts
! 	to the supernodes.
! 
! 2024-01-31  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113509
! 	* checker-event.cc (state_change_event::get_desc): Don't assume
! 	"var" is non-NULL.
! 
! 2024-01-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113654
! 	* region-model.cc (is_round_up): New.
! 	(is_multiple_p): New.
! 	(is_dubious_capacity): New.
! 	(region_model::check_region_size): Move usage of size_visitor into
! 	is_dubious_capacity.
! 
! 2024-01-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc
! 	(dubious_allocation_size::dubious_allocation_size): Add
! 	"capacity_sval" param.  Drop unused ctor.
! 	(dubious_allocation_size::maybe_add_sarif_properties): New.
! 	(dubious_allocation_size::m_capacity_sval): New field.
! 	(region_model::check_region_size): Pass capacity svalue to
! 	dubious_allocation_size ctor.
! 
! 2024-01-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112969
! 	* store.cc (binding_cluster::maybe_get_compound_binding): When
! 	populating default_map, express the bit-range of the default key
! 	for REG relative to REG, rather than to the base region.
! 
! 2024-01-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112977
! 	* engine.cc (impl_region_model_context::on_liveness_change): Pass
! 	m_ext_state to sm_state_map::on_liveness_change.
! 	* program-state.cc (sm_state_map::on_svalue_leak): Guard removal
! 	of map entry based on can_purge_p.
! 	(sm_state_map::on_liveness_change): Add ext_state param.  Add
! 	workaround for bad interaction between state purging and
! 	alt-inherited sm-state.
! 	* program-state.h (sm_state_map::on_liveness_change): Add
! 	ext_state param.
! 	* sm-taint.cc
! 	(taint_state_machine::has_alt_get_inherited_state_p): New.
! 	(taint_state_machine::can_purge_p): Return false for "has_lb" and
! 	"has_ub".
! 	* sm.h (state_machine::has_alt_get_inherited_state_p): New vfunc.
! 
! 2024-01-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/111361
! 	* region-model.cc (svalue_byte_range_has_null_terminator_1): The
! 	initial byte of an all-zeroes SVAL is a zero byte.  Remove
! 	gcc_unreachable from SK_CONSTANT for constants that aren't
! 	STRING_CST or INTEGER_CST.
! 
! 2024-01-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112811
! 	* region-model.cc (fragment::dump_to_pp): New.
! 	(fragment::has_null_terminator): Convert to...
! 	(svalue_byte_range_has_null_terminator_1): ...this new function,
! 	updating to use a byte_range relative to the start of the svalue.
! 	(svalue_byte_range_has_null_terminator): New.
! 	(fragment::string_cst_has_null_terminator): Convert to...
! 	(string_cst_has_null_terminator): ...this, updating to use a
! 	byte_range relative to the start of the svalue.
! 	(iterable_cluster::dump_to_pp): New.
! 	(region_model::scan_for_null_terminator): Add logging, moving body
! 	to...
! 	(region_model::scan_for_null_terminator_1): ...this new function,
! 	adding more logging, and updating to use
! 	svalue_byte_range_has_null_terminator.
! 	* region-model.h (region_model::scan_for_null_terminator_1): New
! 	decl.
! 
! 2024-01-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/106229
! 	* analyzer.h (compare_constants): New decl.
! 	* constraint-manager.cc (compare_constants): Make non-static.
! 	* sm-taint.cc: Add include "fold-const.h".
! 	(class concrete_range): New.
! 	(get_possible_range): New.
! 	(index_can_be_out_of_bounds_p): New.
! 	(region_model::check_region_for_taint): Reject
! 	-Wanalyzer-tainted-array-index if the type of the value makes it
! 	impossible for it to be out-of-bounds of the array.
! 
! 2024-01-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113333
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_fold_unaryop): Casting all zeroes
! 	should give all zeroes.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.opt.urls: New file, autogenerated by
! 	regenerate-opt-urls.py.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.cc: Include "diagnostic-format-sarif.h" and
! 	"tree-logical-location.h".
! 	(checker_event::maybe_add_sarif_properties): New.
! 	(superedge_event::maybe_add_sarif_properties): New.
! 	(superedge_event::superedge_event): Add comment.
! 	* checker-event.h (checker_event::maybe_add_sarif_properties): New
! 	decl.
! 	(superedge_event::maybe_add_sarif_properties): New decl.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112790
! 	* checker-event.cc (class inlining_info): Move to...
! 	* inlining-iterator.h (class inlining_info): ...here.
! 	* sm-malloc.cc: Include "analyzer/inlining-iterator.h".
! 	(maybe_complain_about_deref_before_check): Reject stmts that were
! 	inlined from another function.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113222
! 	* access-diagram.cc (valid_region_spatial_item::add_boundaries):
! 	Handle TYPE_DOMAIN being null.
! 	(valid_region_spatial_item::add_array_elements_to_table):
! 	Likewise.
! 
! 2023-12-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.cc: Include "tree-pretty-print.h" and
! 	"diagnostic-event-id.h".
! 	(tree_to_json): New.
! 	(diagnostic_event_id_to_json): New.
! 	(bit_offset_to_json): New.
! 	(byte_offset_to_json): New.
! 	* analyzer.h (tree_to_json): New decl.
! 	(diagnostic_event_id_to_json): New decl.
! 	(bit_offset_to_json): New decl.
! 	(byte_offset_to_json): New decl.
! 	* bounds-checking.cc: Include "diagnostic-format-sarif.h".
! 	(out_of_bounds::maybe_add_sarif_properties): New.
! 	(concrete_out_of_bounds::maybe_add_sarif_properties): New.
! 	(concrete_past_the_end::maybe_add_sarif_properties): New.
! 	(symbolic_past_the_end::maybe_add_sarif_properties): New.
! 	* region-model.cc (region_to_value_map::to_json): New.
! 	(region_model::to_json): New.
! 	* region-model.h (region_to_value_map::to_json): New decl.
! 	(region_model::to_json): New decl.
! 	* store.cc (bit_range::to_json): New.
! 	(byte_range::to_json): New.
! 	* store.h (bit_range::to_json): New decl.
! 	(byte_range::to_json): New decl.
! 
! 2023-12-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112792
! 	* bounds-checking.cc
! 	(out_of_bounds::oob_region_creation_event_capacity): Rename
! 	"capacity" to "byte_capacity".  Layout fix.
! 	(out_of_bounds::::add_region_creation_events): Rename
! 	"capacity" to "byte_capacity".
! 	(class concrete_out_of_bounds): Rename m_out_of_bounds_range to
! 	m_out_of_bounds_bits and convert from a byte_range to a bit_range.
! 	(concrete_out_of_bounds::get_out_of_bounds_bytes): New.
! 	(concrete_past_the_end::concrete_past_the_end): Rename param
! 	"byte_bound" to "bit_bound".  Initialize m_byte_bound.
! 	(concrete_past_the_end::subclass_equal_p): Update for renaming
! 	of m_byte_bound to m_bit_bound.
! 	(concrete_past_the_end::m_bit_bound): New field.
! 	(concrete_buffer_overflow::concrete_buffer_overflow): Convert
! 	param "range" from byte_range to bit_range.  Rename param
! 	"byte_bound" to "bit_bound".
! 	(concrete_buffer_overflow::emit): Update for bits vs bytes.
! 	(concrete_buffer_overflow::describe_final_event): Split
! 	into...
! 	(concrete_buffer_overflow::describe_final_event_as_bytes): ...this
! 	(concrete_buffer_overflow::describe_final_event_as_bits): ...and
! 	this.
! 	(concrete_buffer_over_read::concrete_buffer_over_read): Convert
! 	param "range" from byte_range to bit_range.  Rename param
! 	"byte_bound" to "bit_bound".
! 	(concrete_buffer_over_read::emit): Update for bits vs bytes.
! 	(concrete_buffer_over_read::describe_final_event): Split into...
! 	(concrete_buffer_over_read::describe_final_event_as_bytes):
! 	...this
! 	(concrete_buffer_over_read::describe_final_event_as_bits): ...and
! 	this.
! 	(concrete_buffer_underwrite::concrete_buffer_underwrite): Convert
! 	param "range" from byte_range to bit_range.
! 	(concrete_buffer_underwrite::describe_final_event): Split into...
! 	(concrete_buffer_underwrite::describe_final_event_as_bytes):
! 	...this
! 	(concrete_buffer_underwrite::describe_final_event_as_bits): ...and
! 	this.
! 	(concrete_buffer_under_read::concrete_buffer_under_read): Convert
! 	param "range" from byte_range to bit_range.
! 	(concrete_buffer_under_read::describe_final_event): Split into...
! 	(concrete_buffer_under_read::describe_final_event_as_bytes):
! 	...this
! 	(concrete_buffer_under_read::describe_final_event_as_bits): ...and
! 	this.
! 	(region_model::check_region_bounds): Use bits for concrete values,
! 	and rename locals to indicate whether we're dealing with bits or
! 	bytes.  Specifically, replace "num_bytes_sval" with
! 	"num_bits_sval", and get it from reg's "get_bit_size_sval".
! 	Replace "num_bytes_tree" with "num_bits_tree".  Rename "capacity"
! 	to "byte_capacity".  Rename "cst_capacity_tree" to
! 	"cst_byte_capacity_tree".  Replace "offset" and
! 	"num_bytes_unsigned" with "bit_offset" and "num_bits_unsigned"
! 	respectively, converting from byte_offset_t to bit_offset_t.
! 	Replace "out" and "read_bytes" with "bits_outside" and "read_bits"
! 	respectively, converting from byte_range to bit_range.  Convert
! 	"buffer" from byte_range to bit_range.  Replace "byte_bound" with
! 	"bit_bound".
! 	* region.cc (region::get_bit_size_sval): New.
! 	(offset_region::get_bit_offset): New.
! 	(offset_region::get_bit_size_sval): New.
! 	(sized_region::get_bit_size_sval): New.
! 	(bit_range_region::get_bit_size_sval): New.
! 	* region.h (region::get_bit_size_sval): New vfunc.
! 	(offset_region::get_bit_offset): New decl.
! 	(offset_region::get_bit_size_sval): New decl.
! 	(sized_region::get_bit_size_sval): New decl.
! 	(bit_range_region::get_bit_size_sval): New decl.
! 	* store.cc (bit_range::intersects_p): New, based on
! 	byte_range::intersects_p.
! 	(bit_range::exceeds_p): New, based on byte_range::exceeds_p.
! 	(bit_range::falls_short_of_p): New, based on
! 	byte_range::falls_short_of_p.
! 	(byte_range::intersects_p): Delete.
! 	(byte_range::exceeds_p): Delete.
! 	(byte_range::falls_short_of_p): Delete.
! 	* store.h (bit_range::intersects_p): New overload.
! 	(bit_range::exceeds_p): New.
! 	(bit_range::falls_short_of_p): New.
! 	(byte_range::intersects_p): Delete.
! 	(byte_range::exceeds_p): Delete.
! 	(byte_range::falls_short_of_p): Delete.
! 
! 2023-12-14  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112655
! 	* infinite-loop.cc (infinite_loop::infinite_loop): Pass eedges
! 	via rvalue reference rather than by value.
! 	(starts_infinite_loop_p): Move eedges when constructing an
! 	infinite_loop instance.
! 	* sm-file.cc (fileptr_state_machine::fileptr_state_machine): Use
! 	initializer list for states.
! 	* sm-sensitive.cc
! 	(sensitive_state_machine::sensitive_state_machine): Likewise.
! 	* sm-signal.cc (signal_state_machine::signal_state_machine):
! 	Likewise.
! 	* sm-taint.cc (taint_state_machine::taint_state_machine):
! 	Likewise.
! 	* varargs.cc (va_list_state_machine::va_list_state_machine): Likewise.
! 
! 2023-12-11  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112955
! 	* engine.cc (feasibility_state::feasibility_state): Initialize
! 	m_snodes_visited.
! 
! 2023-12-11  Andrew Pinski  <apinski@marvell.com>
! 
! 	* region-model-manager.cc (maybe_undo_optimize_bit_field_compare): Remove
! 	the check for type being unsigned_char_type_node.
! 
! 2023-12-08  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* sm-taint.cc (taint_state_machine::alt_get_inherited_state): Fix
! 	handling of TRUNC_MOD_EXPR.
! 
! 2023-12-08  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc (contains_uninit_p): Only check for
! 	svalues that the infoleak warning can handle.
! 
! 2023-12-08  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112889
! 	* store.h (concrete_binding::concrete_binding): Strengthen
! 	assertion to require size to be be positive, rather than just
! 	non-zero.
! 	(concrete_binding::mark_deleted): Use size rather than start bit
! 	offset.
! 	(concrete_binding::mark_empty): Likewise.
! 	(concrete_binding::is_deleted): Likewise.
! 	(concrete_binding::is_empty): Likewise.
! 
! 2023-12-07  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* region-model.cc (has_nondefault_case_for_value_p): Take
! 	enumerate type as a parameter.
! 	(region_model::apply_constraints_for_gswitch): Cope with
! 	integral promotion type casts.
! 
! 2023-12-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/103546
! 	PR analyzer/112850
! 	* analyzer.opt (-param=analyzer-max-svalue-depth=): Increase from
! 	12 to 18.
! 	(Wanalyzer-symbol-too-complex): New.
! 	* diagnostic-manager.cc
! 	(null_assignment_sm_context::clear_all_per_svalue_state): New.
! 	* engine.cc (impl_sm_context::clear_all_per_svalue_state): New.
! 	* program-state.cc (sm_state_map::clear_all_per_svalue_state):
! 	New.
! 	* program-state.h (sm_state_map::clear_all_per_svalue_state): New
! 	decl.
! 	* region-model-manager.cc
! 	(region_model_manager::reject_if_too_complex): Add
! 	-Wanalyzer-symbol-too-complex.
! 	* sm-taint.cc (taint_state_machine::on_condition): Handle
! 	comparisons against UNKNOWN.
! 	* sm.h (sm_context::clear_all_per_svalue_state): New.
! 
! 2023-12-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* engine.cc (dump_analyzer_json): Use
! 	flag_diagnostics_json_formatting.
! 
! 2023-12-01  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.h (class saved_diagnostic): New forward decl.
! 	* bounds-checking.cc: Update for changes to
! 	pending_diagnostic::emit.
! 	* call-details.cc: Likewise.
! 	* diagnostic-manager.cc: Include "diagnostic-format-sarif.h".
! 	(saved_diagnostic::maybe_add_sarif_properties): New.
! 	(class pending_diagnostic_metadata): New.
! 	(diagnostic_manager::emit_saved_diagnostic): Create a
! 	pending_diagnostic_metadata and a diagnostic_emission_context.
! 	Pass the latter to the pending_diagnostic::emit vfunc.
! 	* diagnostic-manager.h
! 	(saved_diagnostic::maybe_add_sarif_properties): New decl.
! 	* engine.cc: Update for changes to pending_diagnostic::emit.
! 	* infinite-loop.cc: Likewise.
! 	* infinite-recursion.cc: Likewise.
! 	* kf-analyzer.cc: Likewise.
! 	* kf.cc: Likewise.
! 	* pending-diagnostic.cc
! 	(diagnostic_emission_context::get_pending_diagnostic): New.
! 	(diagnostic_emission_context::warn): New.
! 	(diagnostic_emission_context::inform): New.
! 	* pending-diagnostic.h (class diagnostic_emission_context): New.
! 	(pending_diagnostic::emit): Update params.
! 	(pending_diagnostic::maybe_add_sarif_properties): New vfunc.
! 	* region.cc: Don't include "diagnostic-metadata.h".
! 	* region-model.cc: Include "diagnostic-format-sarif.h".  Update
! 	for changes to pending_diagnostic::emit.
! 	(exposure_through_uninit_copy::maybe_add_sarif_properties): New.
! 	* sm-fd.cc: Update for changes to pending_diagnostic::emit.
! 	* sm-file.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 	* sm-pattern-test.cc: Likewise.
! 	* sm-sensitive.cc: Likewise.
! 	* sm-signal.cc: Likewise.
! 	* sm-taint.cc: Likewise.
! 	* store.cc: Don't include "diagnostic-metadata.h".
! 	* varargs.cc: Update for changes to pending_diagnostic::emit.
! 
! 2023-11-19  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.h: Include "rich-location.h".
! 
! 2023-11-19  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/107573
! 	* analyzer.h (register_known_functions): Add region_model_manager
! 	param.
! 	* analyzer.opt (Wanalyzer-undefined-behavior-strtok): New.
! 	* call-summary.cc
! 	(call_summary_replay::convert_region_from_summary_1): Handle
! 	RK_PRIVATE.
! 	* engine.cc (impl_run_checkers): Pass model manager to
! 	register_known_functions.
! 	* kf.cc (class undefined_function_behavior): New.
! 	(class kf_strtok): New.
! 	(register_known_functions): Add region_model_manager param.
! 	Use it to register "strtok".
! 	* region-model-manager.cc
! 	(region_model_manager::get_or_create_conjured_svalue): Add "idx"
! 	param.
! 	* region-model-manager.h
! 	(region_model_manager::get_or_create_conjured_svalue): Add "idx"
! 	param.
! 	(region_model_manager::get_root_region): New accessor.
! 	* region-model.cc (region_model::scan_for_null_terminator): Handle
! 	"expr" being null.
! 	(region_model::get_representative_path_var_1): Handle RK_PRIVATE.
! 	* region-model.h (region_model::called_from_main_p): Make public.
! 	* region.cc (region::get_memory_space): Handle RK_PRIVATE.
! 	(region::can_have_initial_svalue_p): Handle MEMSPACE_PRIVATE.
! 	(private_region::dump_to_pp): New.
! 	* region.h (MEMSPACE_PRIVATE): New.
! 	(RK_PRIVATE): New.
! 	(class private_region): New.
! 	(is_a_helper <const private_region *>::test): New.
! 	* store.cc (store::replay_call_summary_cluster): Handle
! 	RK_PRIVATE.
! 	* svalue.h (struct conjured_svalue::key_t): Add "idx" param to
! 	ctor and "m_idx" field.
! 	(class conjured_svalue::conjured_svalue): Likewise.
! 
! 2023-11-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/106147
! 	* analyzer.opt (Wanalyzer-infinite-loop): New option.
! 	(fdump-analyzer-infinite-loop): New option.
! 	* checker-event.h (start_cfg_edge_event::get_desc): Drop "final".
! 	(start_cfg_edge_event::maybe_describe_condition): Convert from
! 	private to protected.
! 	* checker-path.h (checker_path::get_logger): New.
! 	* diagnostic-manager.cc (process_worklist_item): Update for
! 	new context param of maybe_update_for_edge.
! 	* engine.cc
! 	(impl_region_model_context::impl_region_model_context): Add
! 	out_could_have_done_work param to both ctors and use it to
! 	initialize mm_out_could_have_done_work.
! 	(impl_region_model_context::maybe_did_work): New vfunc
! 	implementation.
! 	(exploded_node::on_stmt): Add out_could_have_done_work param and
! 	pass to ctxt ctor.
! 	(exploded_node::on_stmt_pre): Treat setjmp and longjmp as "doing
! 	work".
! 	(exploded_node::on_longjmp): Likewise.
! 	(exploded_edge::exploded_edge): Add "could_do_work" param and use
! 	it to initialize m_could_do_work_p.
! 	(exploded_edge::dump_dot_label): Add result of could_do_work_p.
! 	(exploded_graph::add_function_entry): Mark edge as doing no work.
! 	(exploded_graph::add_edge): Add "could_do_work" param and pass to
! 	exploded_edge ctor.
! 	(add_tainted_args_callback): Treat as doing no work.
! 	(exploded_graph::process_worklist): Likewise when merging nodes.
! 	(maybe_process_run_of_before_supernode_enodes::item): Likewise.
! 	(exploded_graph::maybe_create_dynamic_call): Likewise.
! 	(exploded_graph::process_node): Likewise for phi nodes.
! 	Pass in a "could_have_done_work" bool when handling stmts and use
! 	when creating edges.  Assume work is done at bifurcation.
! 	(exploded_path::feasible_p): Update for new context param of
! 	maybe_update_for_edge.
! 	(feasibility_state::feasibility_state): New ctor.
! 	(feasibility_state::operator=): New.
! 	(feasibility_state::maybe_update_for_edge): Add ctxt param and use
! 	it.  Fix missing newline when logging state.
! 	(impl_run_checkers): Call exploded_graph::detect_infinite_loops.
! 	* exploded-graph.h
! 	(impl_region_model_context::impl_region_model_context): Add
! 	out_could_have_done_work param to both ctors.
! 	(impl_region_model_context::maybe_did_work): New decl.
! 	(impl_region_model_context::checking_for_infinite_loop_p): New.
! 	(impl_region_model_context::on_unusable_in_infinite_loop): New.
! 	(impl_region_model_context::m_out_could_have_done_work): New
! 	field.
! 	(exploded_node::on_stmt): Add "out_could_have_done_work" param.
! 	(exploded_edge::exploded_edge): Add "could_do_work" param.
! 	(exploded_edge::could_do_work_p): New accessor.
! 	(exploded_edge::m_could_do_work_p): New field.
! 	(exploded_graph::add_edge): Add "could_do_work" param.
! 	(exploded_graph::detect_infinite_loops): New decl.
! 	(feasibility_state::feasibility_state): New ctor.
! 	(feasibility_state::operator=): New decl.
! 	(feasibility_state::maybe_update_for_edge): Add ctxt param.
! 	* infinite-loop.cc: New file.
! 	* program-state.cc (program_state::on_edge): Log the rejected
! 	constraint when region_model::maybe_update_for_edge fails.
! 	* region-model.cc (region_model::on_assignment): Treat any writes
! 	other than to the stack as "doing work".
! 	(region_model::on_stmt_pre): Treat all asm stmts as "doing work".
! 	(region_model::on_call_post): Likewise for all calls to functions
! 	with unknown side effects.
! 	(region_model::handle_phi): Add svals_changing_meaning param.
! 	Mark widening svalue in phi nodes as changing meaning.
! 	(unusable_in_infinite_loop_constraint_p): New.
! 	(region_model::add_constraint): If we're checking for an infinite
! 	loop, bail out on unusable svalues, or if we don't have a definite
! 	true/false for the constraint.
! 	(region_model::update_for_phis): Gather all svalues changing
! 	meaning in phi nodes, and purge constraints involving them.
! 	(region_model::replay_call_summary): Treat all call summaries as
! 	doing work.
! 	(region_model::can_merge_with_p): Purge constraints involving
! 	svalues that change meaning.
! 	(model_merger::on_widening_reuse): New.
! 	(test_iteration_1): Likewise.
! 	(selftest::test_iteration_1): Remove assertion that model6 "knows"
! 	that i < 157.
! 	* region-model.h (region_model::handle_phi): Add
! 	svals_changing_meaning param
! 	(region_model_context::maybe_did_work): New pure virtual func.
! 	(region_model_context::checking_for_infinite_loop_p): Likewise.
! 	(region_model_context::on_unusable_in_infinite_loop): Likewise.
! 	(noop_region_model_context::maybe_did_work): Implement.
! 	(noop_region_model_context::checking_for_infinite_loop_p):
! 	Likewise.
! 	(noop_region_model_context::on_unusable_in_infinite_loop):
! 	Likewise.
! 	(region_model_context_decorator::maybe_did_work): Implement.
! 	(region_model_context_decorator::checking_for_infinite_loop_p):
! 	Likewise.
! 	(region_model_context_decorator::on_unusable_in_infinite_loop):
! 	Likewise.
! 	(model_merger::on_widening_reuse): New decl.
! 	(model_merger::m_svals_changing_meaning): New field.
! 	* sm-signal.cc (register_signal_handler::impl_transition): Assume
! 	the edge "does work".
! 	* supergraph.cc (supernode::get_start_location): Use CFG edge's
! 	goto_locus if available.
! 	(supernode::get_end_location): Likewise.
! 	(cfg_superedge::dump_label_to_pp): Dump edges with a "goto_locus"
! 	* supergraph.h (cfg_superedge::get_goto_locus): New.
! 	* svalue.cc (svalue::can_merge_p): Call on_widening_reuse for
! 	widening values.
! 	(involvement_visitor::visit_widening_svalue): New.
! 	(svalue::involves_p): Update assertion to allow widening svalues.
! 
! 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/103533
! 	* sm-taint.cc: Remove "experimental" from comment.
! 	* sm.cc (make_checkers): Always add taint state machine.
! 
! 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* bounds-checking.cc: Update for changes to diagnostic_context.
! 
! 2023-11-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/112317
! 	* access-diagram.cc (class x_aligned_x_ruler_widget): Eliminate
! 	unused field "m_col_widths".
! 	(access_diagram_impl::add_valid_vs_invalid_ruler): Update for
! 	above change.
! 	* region-model.cc
! 	(check_one_function_attr_null_terminated_string_arg): Remove
! 	unused variables "cd_unchecked", "strlen_sval", and
! 	"limited_sval".
! 	* region-model.h (region_model_context_decorator::warn): Add
! 	missing "override".
! 
! 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* record-layout.cc: New file, based on material in region-model.cc.
! 	* record-layout.h: Likewise.
! 	* region-model.cc: Include "analyzer/record-layout.h".
! 	(class record_layout): Move to record-layout.cc and .h
! 
! 2023-10-26  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc
! 	(region_model::check_external_function_for_access_attr): Split
! 	out, replacing with...
! 	(region_model::check_function_attr_access): ...this new function
! 	and...
! 	(region_model::check_function_attrs): ...this new function.
! 	(region_model::check_one_function_attr_null_terminated_string_arg):
! 	New.
! 	(region_model::check_function_attr_null_terminated_string_arg):
! 	New.
! 	(region_model::handle_unrecognized_call): Update for renaming of
! 	check_external_function_for_access_attr to check_function_attrs.
! 	(region_model::check_for_null_terminated_string_arg): Add return
! 	value to one overload.  Make both overloads const.
! 	* region-model.h: Include "stringpool.h" and "attribs.h".
! 	(region_model::check_for_null_terminated_string_arg): Add return
! 	value to one overload.  Make both overloads const.
! 	(region_model::check_external_function_for_access_attr): Delete
! 	decl.
! 	(region_model::check_function_attr_access): New decl.
! 	(region_model::check_function_attr_null_terminated_string_arg):
! 	New decl.
! 	(region_model::check_one_function_attr_null_terminated_string_arg):
! 	New decl.
! 	(region_model::check_function_attrs): New decl.
! 
! 2023-10-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc (boundaries::add): Explicitly state
! 	"boundaries::" scope for "kind" enum.
! 
! 2023-10-08  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/111155
! 	* access-diagram.cc (boundaries::boundaries): Add logger param
! 	(boundaries::add): Add logging.
! 	(boundaries::get_hard_boundaries_in_range): New.
! 	(boundaries::m_logger): New field.
! 	(boundaries::get_table_x_for_offset): Make public.
! 	(class svalue_spatial_item): New.
! 	(class compound_svalue_spatial_item): New.
! 	(add_ellipsis_to_gaps): New.
! 	(valid_region_spatial_item::valid_region_spatial_item): Add theme
! 	param.  Initialize m_boundaries, m_existing_sval, and
! 	m_existing_sval_spatial_item.
! 	(valid_region_spatial_item::add_boundaries): Set m_boundaries.
! 	Add boundaries for any m_existing_sval_spatial_item.
! 	(valid_region_spatial_item::add_array_elements_to_table): Rewrite
! 	creation of min/max index in terms of
! 	maybe_add_array_index_to_table.  Rewrite ellipsis code using
! 	add_ellipsis_to_gaps. Add index values for any hard boundaries
! 	within the valid region.
! 	(valid_region_spatial_item::maybe_add_array_index_to_table): New,
! 	based on code formerly in add_array_elements_to_table.
! 	(valid_region_spatial_item::make_table): Make use of
! 	m_existing_sval_spatial_item, if any.
! 	(valid_region_spatial_item::m_boundaries): New field.
! 	(valid_region_spatial_item::m_existing_sval): New field.
! 	(valid_region_spatial_item::m_existing_sval_spatial_item): New
! 	field.
! 	(class svalue_spatial_item): Rename to...
! 	(class written_svalue_spatial_item): ...this.
! 	(class string_region_spatial_item): Rename to..
! 	(class string_literal_spatial_item): ...this.  Add "kind".
! 	(string_literal_spatial_item::add_boundaries): Use m_kind to
! 	determine kind of boundary.  Update for renaming of m_actual_bits
! 	to m_bits.
! 	(string_literal_spatial_item::make_table): Likewise.  Support not
! 	displaying a row for byte indexes, and not displaying a row for
! 	the type.
! 	(string_literal_spatial_item::add_column_for_byte): Make byte index
! 	row optional.
! 	(svalue_spatial_item::make): Convert to...
! 	(make_written_svalue_spatial_item): ...this.
! 	(make_existing_svalue_spatial_item): New.
! 	(access_diagram_impl::access_diagram_impl): Pass theme to
! 	m_valid_region_spatial_item ctor.  Update for renaming of
! 	m_svalue_spatial_item.
! 	(access_diagram_impl::find_boundaries): Pass logger to boundaries.
! 	Update for renaming of...
! 	(access_diagram_impl::m_svalue_spatial_item): Rename to...
! 	(access_diagram_impl::m_written_svalue_spatial_item): ...this.
! 
! 2023-10-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer-logging.cc (logger::log_va_partial): Use text_info
! 	ctor.
! 	* analyzer.cc (make_label_text): Likewise.
! 	(make_label_text_n): Likewise.
! 	* pending-diagnostic.cc (evdesc::event_desc::formatted_print):
! 	Likewise.
! 
! 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* program-point.cc: Update for grouping of source printing fields
! 	within diagnostic_context.
! 
! 2023-09-15  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.cc (get_stmt_location): Handle null stmt.
! 	* diagnostic-manager.cc (saved_diagnostic::saved_diagnostic): Copy
! 	m_loc from ploc.
! 	(saved_diagnostic::operator==): Compare m_loc.
! 	(saved_diagnostic::calc_best_epath): Only use m_stmt_finder if
! 	m_loc is unknown.
! 	(dedupe_key::dedupe_key): Initialize m_loc.
! 	(dedupe_key::operator==): Compare m_loc.
! 	(dedupe_key::get_location): Use m_loc if it's known.
! 	(dedupe_key::m_loc): New field.
! 	(diagnostic_manager::emit_saved_diagnostic): Only call
! 	get_emission_location if m_loc is unknown, preferring to use m_loc
! 	if it's available.
! 	* diagnostic-manager.h (saved_diagnostic::m_loc): New field.
! 	(pending_location::pending_location): Initialize m_loc.  Add
! 	overload taking a location_t rather than a stmt/stmt_finder.
! 	(pending_location::m_loc): New field.
! 
! 2023-09-15  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.h (struct pending_location): New forward decl.
! 	* diagnostic-manager.cc (saved_diagnostic::saved_diagnostic):
! 	Replace params "enode", "snode", "stmt", and "stmt_finder" with
! 	"ploc".
! 	(diagnostic_manager::add_diagnostic): Likewise for both overloads.
! 	* diagnostic-manager.h (saved_diagnostic::saved_diagnostic):
! 	Likewise.
! 	(struct pending_location): New.
! 	(diagnostic_manager::add_diagnostic): Replace params "enode",
! 	"snode", "stmt", and "stmt_finder" with "ploc".
! 	* engine.cc (impl_region_model_context::warn): Update call to
! 	add_diagnostic for above change.
! 	(impl_sm_context::warn): Likewise.
! 	(impl_region_model_context::on_state_leak): Likewise.
! 	* infinite-recursion.cc
! 	(exploded_graph::detect_infinite_recursion): Likewise.
! 
! 2023-09-15  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc (region_model::get_gassign_result): Handle
! 	volatile ops by using a conjured_svalue.
! 
! 2023-09-14  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.h (checker_event::get_thread_id): New.
! 	* checker-path.h (class checker_path): Implement thread-related
! 	vfuncs via a single simple_diagnostic_thread instance named
! 	"main".
! 
! 2023-09-14  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* diagnostic-manager.cc (compatible_epath_p): Fix missing return.
! 
! 2023-09-14  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* diagnostic-manager.cc (process_worklist_item): Use
! 	std::unique_ptr rather than plain rejected_constraint *.
! 	* engine.cc (exploded_path::feasible_p): Likewise.
! 	(feasibility_state::maybe_update_for_edge): Likewise.
! 	* exploded-graph.h (feasibility_problem::feasibility_problem):
! 	Likewise.
! 	(feasibility_problem::~feasibility_problem): Delete.
! 	(feasibility_problem::m_rc): Use std::unique_ptr.
! 	(feasibility_state::maybe_update_for_edge): Likewise.
! 	* feasible-graph.cc (feasible_graph::add_feasibility_problem):
! 	Likewise.
! 	* feasible-graph.h (class infeasible_node): Likewise.
! 	(feasible_graph::add_feasibility_problem): Likewise.
! 	* region-model.cc (region_model::add_constraint): Likewise.
! 	(region_model::maybe_update_for_edge): Likewise.
! 	(region_model::apply_constraints_for_gcond): Likewise.
! 	(region_model::apply_constraints_for_gswitch): Likewise.
! 	(region_model::apply_constraints_for_exception): Likewise.
! 	* region-model.h (class region_model): Likewise for decls.
! 
! 2023-09-09  benjamin priour  <vultkayn@gcc.gnu.org>
! 
! 	PR analyzer/96395
! 	* region-model.cc
! 	(region_model::add_constraints_from_binop): binop_svalues around
! 	LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR are now unwrapped.
! 
! 2023-09-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110529
! 	* program-point.cc (program_point::on_edge): Don't reject
! 	EDGE_ABNORMAL for computed gotos.
! 	* region-model.cc (region_model::maybe_update_for_edge): Handle
! 	computed goto statements.
! 	(region_model::apply_constraints_for_ggoto): New.
! 	* region-model.h (region_model::apply_constraints_for_ggoto): New decl.
! 	* supergraph.cc (supernode::get_label): New.
! 	* supergraph.h (supernode::get_label): New decl.
! 
! 2023-09-07  benjamin priour  <vultkayn@gcc.gnu.org>
! 	    David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110830
! 	* diagnostic-manager.cc
! 	(compatible_epaths_p): New function.
! 	(saved_diagnostic::supercedes_p): Now calls the above
! 	to determine if the diagnostics do overlap and the superseding
! 	may proceed.
! 
! 2023-09-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.h: fix -Wunused-parameter warnings
! 
! 2023-09-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* kf.cc (class kf_strstr): New.
! 	(kf_strstr::impl_call_post): New.
! 	(register_known_functions): Register it.
! 
! 2023-09-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* kf.cc (class kf_strncpy): New.
! 	(kf_strncpy::impl_call_post): New.
! 	(register_known_functions): Register it.
! 	* region-model.cc (region_model::read_bytes): Handle unknown
! 	number of bytes.
! 
! 2023-09-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* kf.cc (kf_calloc::impl_call_pre): Pass ctxt to zero_fill_region.
! 	(kf_memset::impl_call_pre): Move responsibility for calling
! 	check_region_for_write to fill_region.
! 	* region-model.cc (region_model::on_assignment): Pass ctxt to
! 	zero_fill_region.
! 	(region_model::fill_region): Add "ctxt" param, using it to call
! 	check_region_for_write.
! 	(region_model::zero_fill_region): Likewise.
! 	* region-model.h (region_model::fill_region): Add "ctxt" param.
! 	(region_model::zero_fill_region): Likewise.
! 
! 2023-09-01  benjamin priour  <priour.be@gmail.com>
! 
! 	PR analyzer/105948
! 	PR analyzer/94355
! 	* analyzer.h (is_placement_new_p): New declaration.
! 	* call-details.cc
! 	(call_details::deref_ptr_arg): New function.
! 	Dereference the argument at given index if possible.
! 	* call-details.h: Declaration of the above function.
! 	* kf-lang-cp.cc (is_placement_new_p): Returns true if the gcall
! 	is recognized as a placement new.
! 	(kf_operator_delete::impl_call_post): Unbinding a region and its
! 	descendents now poisons with POISON_KIND_DELETED.
! 	(register_known_functions_lang_cp): Known function "operator
! 	delete" is now registered only once independently of its number of
! 	arguments.
! 	* region-model.cc (region_model::eval_condition): Now
! 	recursively calls itself if any of the operand is wrapped in a
! 	cast.
! 	* sm-malloc.cc (malloc_state_machine::on_stmt):
! 	Add placement new recognition.
! 	* svalue.cc (poison_kind_to_str): Wording for the new PK.
! 	* svalue.h (enum poison_kind): Add value POISON_KIND_DELETED.
! 
! 2023-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* kf.cc: Change spelling to macOS.
! 
! 2023-08-30  Eric Feng  <ef2648@columbia.edu>
! 
! 	PR analyzer/107646
! 	* engine.cc (impl_region_model_context::warn): New optional
! 	parameter.
! 	* exploded-graph.h (class impl_region_model_context): Likewise.
! 	* region-model.cc (region_model::pop_frame): New callback
! 	feature for region_model::pop_frame.
! 	* region-model.h (struct append_regions_cb_data): Likewise.
! 	(class region_model): Likewise.
! 	(class region_model_context): New optional parameter.
! 	(class region_model_context_decorator): Likewise.
! 
! 2023-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* region-model.cc: Define INCLUDE_ALGORITHM.
! 
! 2023-08-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/99860
! 	* analyzer-selftests.cc (selftest::run_analyzer_selftests): Call
! 	selftest::analyzer_ranges_cc_tests.
! 	* analyzer-selftests.h (selftest::run_analyzer_selftests): New
! 	decl.
! 	* analyzer.opt (Wanalyzer-overlapping-buffers): New option.
! 	* call-details.cc: Include "analyzer/ranges.h" and "make-unique.h".
! 	(class overlapping_buffers): New.
! 	(call_details::complain_about_overlap): New.
! 	* call-details.h (call_details::complain_about_overlap): New decl.
! 	* kf.cc (kf_memcpy_memmove::impl_call_pre): Call
! 	cd.complain_about_overlap for memcpy and memcpy_chk.
! 	(kf_strcat::impl_call_pre): Call cd.complain_about_overlap.
! 	(kf_strcpy::impl_call_pre): Likewise.
! 	* ranges.cc: New file.
! 	* ranges.h: New file.
! 
! 2023-08-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* kf.cc (kf_strdup::impl_call_pre): Set size of
! 	dynamically-allocated buffer.  Simulate copying the string from
! 	the source region to the new buffer.
! 
! 2023-08-27  benjamin priour  <vultkayn@gcc.gnu.org>
! 
! 	PR analyzer/96395
! 	* analyzer.h (class known_function): Add virtual casts
! 	to builtin_known_function.
! 	(class builtin_known_function): New subclass of known_function
! 	for builtins.
! 	* kf.cc (class kf_alloca): Now derived from
! 	builtin_known_function.
! 	(class kf_calloc): Likewise.
! 	(class kf_free): Likewise.
! 	(class kf_malloc): Likewise.
! 	(class kf_memcpy_memmove): Likewise.
! 	(class kf_memset): Likewise.
! 	(class kf_realloc): Likewise.
! 	(class kf_strchr): Likewise.
! 	(class kf_sprintf): Likewise.
! 	(class kf_strcat): Likewise.
! 	(class kf_strcpy): Likewise.
! 	(class kf_strdup): Likewise.
! 	(class kf_strlen): Likewise.
! 	(class kf_strndup): Likewise.
! 	(register_known_functions): Builtins are now registered as
! 	known_functions by name rather than by their BUILTIN_CODE.
! 	* known-function-manager.cc (get_normal_builtin): New overload.
! 	* known-function-manager.h: New overload declaration.
! 	* region-model.cc (region_model::get_builtin_kf): New function.
! 	* region-model.h (class region_model): Add declaration of
! 	get_builtin_kf.
! 	* sm-fd.cc: For called recognized as builtins, use the
! 	attributes of that builtin as defined in gcc/builtins.def
! 	rather than the user's.
! 	* sm-malloc.cc (malloc_state_machine::on_stmt): Likewise.
! 
! 2023-08-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc (class string_region_spatial_item): Remove
! 	assumption that the string is written to the start of the cluster.
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* call-details.cc
! 	(call_details::check_for_null_terminated_string_arg): Split into
! 	overloads, one taking just an arg_idx, the other a new
! 	"include_terminator" param.
! 	* call-details.h: Likewise.
! 	* kf.cc (class kf_strcat): New.
! 	(kf_strcpy::impl_call_pre): Update for change to
! 	check_for_null_terminated_string_arg.
! 	(register_known_functions): Register kf_strcat.
! 	* region-model.cc
! 	(region_model::check_for_null_terminated_string_arg): Split into
! 	overloads, one taking just an arg_idx, the other a new
! 	"include_terminator" param.  When returning an svalue, handle
! 	"include_terminator" being false by subtracting one.
! 	* region-model.h
! 	(region_model::check_for_null_terminated_string_arg): Split into
! 	overloads, one taking just an arg_idx, the other a new
! 	"include_terminator" param.
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* region-model.cc (fragment::has_null_terminator): Handle
! 	SK_BITS_WITHIN.
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* region-model-manager.cc
! 	(region_model_manager::get_or_create_initial_value): Simplify
! 	INIT_VAL(ELEMENT_REG(STRING_REG), CONSTANT_SVAL) to
! 	CONSTANT_SVAL(STRING[N]).
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* region-model.cc (fragment::has_null_terminator): Move STRING_CST
! 	handling to fragment::string_cst_has_null_terminator; also use it to
! 	handle INIT_VAL(STRING_REG).
! 	(fragment::string_cst_has_null_terminator): New, from above.
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* kf.cc (kf_memcpy_memmove::impl_call_pre): Reimplement using
! 	region_model::copy_bytes.
! 	* region-model.cc (region_model::read_bytes): New.
! 	(region_model::copy_bytes): New.
! 	* region-model.h (region_model::read_bytes): New decl.
! 	(region_model::copy_bytes): New decl.
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* region-model.cc (region_model::get_string_size): Delete both.
! 	* region-model.h (region_model::get_string_size): Delete both
! 	decls.
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* kf.cc (kf_strcpy::impl_call_pre): Reimplement using
! 	check_for_null_terminated_string_arg.
! 	* region-model.cc (region_model::get_store_bytes): Shortcut
! 	reading all of a string_region.
! 	(region_model::scan_for_null_terminator): Use get_store_value for
! 	the bytes rather than "unknown" when returning an unknown length.
! 	(region_model::write_bytes): New.
! 	* region-model.h (region_model::write_bytes): New decl.
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* region-model.cc (iterable_cluster::iterable_cluster): Add
! 	symbolic binding keys to m_symbolic_bindings.
! 	(iterable_cluster::has_symbolic_bindings_p): New.
! 	(iterable_cluster::m_symbolic_bindings): New field.
! 	(region_model::scan_for_null_terminator): Treat clusters with
! 	symbolic bindings as having unknown strlen.
! 
! 2023-08-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* engine.cc (impl_path_context::impl_path_context): Add logger
! 	param.
! 	(impl_path_context::bifurcate): Add log message.
! 	(impl_path_context::terminate_path): Likewise.
! 	(impl_path_context::m_logger): New field.
! 	(exploded_graph::process_node): Pass logger to path_ctxt ctor.
! 
! 2023-08-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* kf-analyzer.cc (class kf_analyzer_get_strlen): Move to kf.cc.
! 	(register_known_analyzer_functions): Use make_kf_strlen.
! 	* kf.cc (class kf_strlen::impl_call_pre): Replace with
! 	implementation of kf_analyzer_get_strlen from kf-analyzer.cc.
! 	Handle "UNKNOWN" return from check_for_null_terminated_string_arg
! 	by falling back to a conjured svalue.
! 	(make_kf_strlen): New.
! 	(register_known_functions): Use make_kf_strlen.
! 	* known-function-manager.h (make_kf_strlen): New decl.
! 
! 2023-08-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* call-details.cc (call_details::call_details): New ctor.
! 	* call-details.h (call_details::call_details): New ctor decl.
! 	(struct call_arg_details): Move here from region-model.cc.
! 	* region-model.cc (region_model::check_call_format_attr): New.
! 	(region_model::check_call_args): Call it.
! 	(struct call_arg_details): Move it to call-details.h.
! 	* region-model.h (region_model::check_call_format_attr): New decl.
! 
! 2023-08-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* kf.cc (class kf_fopen): New.
! 	(register_known_functions): Register it.
! 
! 2023-08-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* analyzer.opt (Wanalyzer-unterminated-string): Delete.
! 	* call-details.cc
! 	(call_details::check_for_null_terminated_string_arg): Convert
! 	return type from void to const svalue *.  Add param "out_sval".
! 	* call-details.h
! 	(call_details::check_for_null_terminated_string_arg): Likewise.
! 	* kf-analyzer.cc (kf_analyzer_get_strlen::impl_call_pre): Wire up
! 	to result of check_for_null_terminated_string_arg.
! 	* region-model.cc (get_strlen): Delete.
! 	(class unterminated_string_arg): Delete.
! 	(struct fragment): New.
! 	(class iterable_cluster): New.
! 	(region_model::get_store_bytes): New.
! 	(get_tree_for_byte_offset): New.
! 	(region_model::scan_for_null_terminator): New.
! 	(region_model::check_for_null_terminated_string_arg): Convert
! 	return type from void to const svalue *.  Add param "out_sval".
! 	Reimplement in terms of scan_for_null_terminator, dropping the
! 	special-case for -Wanalyzer-unterminated-string.
! 	* region-model.h (region_model::get_store_bytes): New decl.
! 	(region_model::scan_for_null_terminator): New decl.
! 	(region_model::check_for_null_terminated_string_arg): Convert
! 	return type from void to const svalue *.  Add param "out_sval".
! 	* store.cc (concrete_binding::get_byte_range): New.
! 	* store.h (concrete_binding::get_byte_range): New decl.
! 	(store_manager::get_concrete_binding): New overload.
! 
! 2023-08-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc (region_model_context_decorator::add_event):
! 	Handle m_inner being NULL.
! 	* region-model.h (class region_model_context_decorator): Likewise.
! 	(annotating_context::warn): Likewise.
! 
! 2023-08-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* diagnostic-manager.cc (saved_diagnostic::add_event): New.
! 	(saved_diagnostic::add_any_saved_events): New.
! 	(diagnostic_manager::add_event): New.
! 	(dedupe_winners::emit_best): New.
! 	(diagnostic_manager::emit_saved_diagnostic): Make "sd" param
! 	non-const.  Call saved_diagnostic::add_any_saved_events.
! 	* diagnostic-manager.h (saved_diagnostic::add_event): New decl.
! 	(saved_diagnostic::add_any_saved_events): New decl.
! 	(saved_diagnostic::m_saved_events): New field.
! 	(diagnostic_manager::add_event): New decl.
! 	(diagnostic_manager::emit_saved_diagnostic): Make "sd" param
! 	non-const.
! 	* engine.cc (impl_region_model_context::add_event): New.
! 	* exploded-graph.h (impl_region_model_context::add_event): New decl.
! 	* region-model.cc
! 	(noop_region_model_context::add_event): New.
! 	(region_model_context_decorator::add_event): New.
! 	* region-model.h (region_model_context::add_event): New vfunc.
! 	(noop_region_model_context::add_event): New decl.
! 	(region_model_context_decorator::add_event): New decl.
! 
! 2023-08-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc
! 	(class check_external_function_for_access_attr::annotating_ctxt):
! 	Convert to an annotating_context.
! 	* region-model.h (class note_adding_context): Rename to...
! 	(class annotating_context): ...this, updating the "warn" method.
! 	(note_adding_context::make_note): Replace with...
! 	(annotating_context::add_annotations): ...this.
! 
! 2023-08-14  benjamin priour  <vultkayn@gcc.gnu.org>
! 
! 	PR analyzer/110543
! 	* analyzer.opt: Add new option.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::prune_path): Call prune_system_headers.
! 	(prune_frame): New function that deletes all events in a frame.
! 	(diagnostic_manager::prune_system_headers): New function.
! 	* diagnostic-manager.h: Add prune_system_headers declaration.
! 
! 2023-08-11  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/105899
! 	* analyzer.opt (Wanalyzer-unterminated-string): New.
! 	* call-details.cc
! 	(call_details::check_for_null_terminated_string_arg): New.
! 	* call-details.h
! 	(call_details::check_for_null_terminated_string_arg): New decl.
! 	* kf-analyzer.cc (class kf_analyzer_get_strlen): New.
! 	(register_known_analyzer_functions): Register it.
! 	* kf.cc (kf_error::impl_call_pre): Check that format arg is a
! 	valid null-terminated string.
! 	(kf_putenv::impl_call_pre): Likewise for the sole param.
! 	(kf_strchr::impl_call_pre): Likewise for the first param.
! 	(kf_strcpy::impl_call_pre): Likewise for the second param.
! 	(kf_strdup::impl_call_pre): Likewise for the sole param.
! 	* region-model.cc (get_strlen): New.
! 	(struct call_arg_details): New.
! 	(inform_about_expected_null_terminated_string_arg): New.
! 	(class unterminated_string_arg): New.
! 	(region_model::check_for_null_terminated_string_arg): New.
! 	* region-model.h
! 	(region_model::check_for_null_terminated_string_arg): New decl.
! 
! 2023-08-11  Eric Feng  <ef2648@columbia.edu>
! 
! 	PR analyzer/107646
! 	* call-details.h: New function.
! 	* region-model.cc (region_model::get_or_create_region_for_heap_alloc):
! 	New optional parameters.
! 	* region-model.h (class region_model): New optional parameters.
! 	* sm-malloc.cc (on_realloc_with_move): New function.
! 	(region_model::transition_ptr_sval_non_null): New function.
! 
! 2023-08-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.h (class pure_known_function_with_default_return): New
! 	subclass.
! 	* call-details.cc (const_fn_p): Move here from region-model.cc.
! 	(maybe_get_const_fn_result): Likewise.
! 	(get_result_size_in_bytes): Likewise.
! 	(call_details::set_any_lhs_with_defaults): New function, based on
! 	code in region_model::on_call_pre.
! 	* call-details.h (call_details::set_any_lhs_with_defaults): New
! 	decl.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::emit_saved_diagnostic): Log the index of the
! 	saved_diagnostic.
! 	* kf.cc (pure_known_function_with_default_return::impl_call_pre):
! 	New.
! 	(kf_memset::impl_call_pre): Set the LHS to the first param.
! 	(kf_putenv::impl_call_pre): Call cd.set_any_lhs_with_defaults.
! 	(kf_sprintf::impl_call_pre): Call cd.set_any_lhs_with_defaults.
! 	(class kf_stack_restore): Derive from
! 	pure_known_function_with_default_return.
! 	(class kf_stack_save): Likewise.
! 	(kf_strlen::impl_call_pre): Call cd.set_any_lhs_with_defaults.
! 	* region-model-reachability.cc (reachable_regions::handle_sval):
! 	Remove logic for symbolic regions for pointers.
! 	* region-model.cc (region_model::canonicalize): Remove purging of
! 	dynamic extents workaround for surplus values from
! 	region_model::on_call_pre's default LHS code.
! 	(const_fn_p): Move to call-details.cc.
! 	(maybe_get_const_fn_result): Likewise.
! 	(get_result_size_in_bytes): Likewise.
! 	(region_model::update_for_nonzero_return): Call
! 	cd.set_any_lhs_with_defaults.
! 	(region_model::on_call_pre): Remove the assignment to the LHS of a
! 	default return value, instead requiring all known_function
! 	implementations to write to any LHS of the call.  Use
! 	cd.set_any_lhs_with_defaults on the non-kf paths.
! 	* sm-fd.cc (kf_socket::outcome_of_socket::update_model): Use
! 	cd.set_any_lhs_with_defaults when failing to get at fd state.
! 	(kf_bind::outcome_of_bind::update_model): Likewise.
! 	(kf_listen::outcome_of_listen::update_model): Likewise.
! 	(kf_accept::outcome_of_accept::update_model): Likewise.
! 	(kf_connect::outcome_of_connect::update_model): Likewise.
! 	(kf_read::impl_call_pre): Use cd.set_any_lhs_with_defaults.
! 	* sm-file.cc (class kf_stdio_output_fn): Derive from
! 	pure_known_function_with_default_return.
! 	(class kf_ferror): Likewise.
! 	(class kf_fileno): Likewise.
! 	(kf_fgets::impl_call_pre): Use cd.set_any_lhs_with_defaults.
! 	(kf_read::impl_call_pre): Likewise.
! 	(class kf_getc): Derive from
! 	pure_known_function_with_default_return.
! 	(class kf_getchar): Likewise.
! 	* varargs.cc (kf_va_arg::impl_call_pre): Use
! 	cd.set_any_lhs_with_defaults.
! 
! 2023-08-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110426
! 	* bounds-checking.cc (region_model::check_region_bounds): Handle
! 	symbolic base regions.
! 	* call-details.cc: Include "stringpool.h" and "attribs.h".
! 	(call_details::lookup_function_attribute): New function.
! 	* call-details.h (call_details::lookup_function_attribute): New
! 	function decl.
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_fold_binop): Add reference to
! 	PR analyzer/110902.
! 	* region-model-reachability.cc (reachable_regions::handle_sval):
! 	Add symbolic regions for pointers that are conjured svalues for
! 	the LHS of a stmt.
! 	* region-model.cc (region_model::canonicalize): Purge dynamic
! 	extents for regions that aren't referenced.
! 	(get_result_size_in_bytes): New function.
! 	(region_model::on_call_pre): Use get_result_size_in_bytes and
! 	potentially set the dynamic extents of the region pointed to by
! 	the return value.
! 	(region_model::deref_rvalue): Add param "add_nonnull_constraint"
! 	and use it to conditionalize adding the constraint.
! 	(pending_diagnostic_subclass::dubious_allocation_size): Add "stmt"
! 	param to both ctors and use it to initialize new "m_stmt" field.
! 	(pending_diagnostic_subclass::operator==): Use m_stmt; don't use
! 	m_lhs or m_rhs.
! 	(pending_diagnostic_subclass::m_stmt): New field.
! 	(region_model::check_region_size): Generalize to any kind of
! 	pointer svalue by using deref_rvalue rather than checking for
! 	region_svalue.  Pass stmt to dubious_allocation_size ctor.
! 	* region-model.h (region_model::deref_rvalue): Add param
! 	"add_nonnull_constraint".
! 	* svalue.cc (conjured_svalue::lhs_value_p): New function.
! 	* svalue.h (conjured_svalue::lhs_value_p): New decl.
! 
! 2023-08-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* svalue.cc (region_svalue::dump_to_pp): Support NULL type.
! 	(constant_svalue::dump_to_pp): Likewise.
! 	(initial_svalue::dump_to_pp): Likewise.
! 	(conjured_svalue::dump_to_pp): Likewise.  Fix missing print of the
! 	type.
! 
! 2023-08-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110882
! 	* region.cc (int_size_in_bits): Fail on zero-sized types.
! 
! 2023-08-02  Eric Feng  <ef2648@columbia.edu>
! 
! 	PR analyzer/107646
! 	* analyzer-language.cc (run_callbacks): New function.
! 	(on_finish_translation_unit): New function.
! 	* analyzer-language.h (GCC_ANALYZER_LANGUAGE_H): New include.
! 	(class translation_unit): New vfuncs.
! 
! 2023-07-26  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/104940
! 	* region-model-manager.cc
! 	(region_model_manager::region_model_manager): Update for
! 	generalizing region ids to also cover svalues.
! 	(region_model_manager::get_or_create_constant_svalue): Likewise.
! 	(region_model_manager::get_or_create_unknown_svalue): Likewise.
! 	(region_model_manager::create_unique_svalue): Likewise.
! 	(region_model_manager::get_or_create_initial_value): Likewise.
! 	(region_model_manager::get_or_create_setjmp_svalue): Likewise.
! 	(region_model_manager::get_or_create_poisoned_svalue): Likewise.
! 	(region_model_manager::get_ptr_svalue): Likewise.
! 	(region_model_manager::get_or_create_unaryop): Likewise.
! 	(region_model_manager::get_or_create_binop): Likewise.
! 	(region_model_manager::get_or_create_sub_svalue): Likewise.
! 	(region_model_manager::get_or_create_repeated_svalue): Likewise.
! 	(region_model_manager::get_or_create_bits_within): Likewise.
! 	(region_model_manager::get_or_create_unmergeable): Likewise.
! 	(region_model_manager::get_or_create_widening_svalue): Likewise.
! 	(region_model_manager::get_or_create_compound_svalue): Likewise.
! 	(region_model_manager::get_or_create_conjured_svalue): Likewise.
! 	(region_model_manager::get_or_create_asm_output_svalue): Likewise.
! 	(region_model_manager::get_or_create_const_fn_result_svalue):
! 	Likewise.
! 	(region_model_manager::get_region_for_fndecl): Likewise.
! 	(region_model_manager::get_region_for_label): Likewise.
! 	(region_model_manager::get_region_for_global): Likewise.
! 	(region_model_manager::get_field_region): Likewise.
! 	(region_model_manager::get_element_region): Likewise.
! 	(region_model_manager::get_offset_region): Likewise.
! 	(region_model_manager::get_sized_region): Likewise.
! 	(region_model_manager::get_cast_region): Likewise.
! 	(region_model_manager::get_frame_region): Likewise.
! 	(region_model_manager::get_symbolic_region): Likewise.
! 	(region_model_manager::get_region_for_string): Likewise.
! 	(region_model_manager::get_bit_range): Likewise.
! 	(region_model_manager::get_var_arg_region): Likewise.
! 	(region_model_manager::get_region_for_unexpected_tree_code):
! 	Likewise.
! 	(region_model_manager::get_or_create_region_for_heap_alloc):
! 	Likewise.
! 	(region_model_manager::create_region_for_alloca): Likewise.
! 	(region_model_manager::log_stats): Likewise.
! 	* region-model-manager.h (region_model_manager::get_num_regions):
! 	Replace with...
! 	(region_model_manager::get_num_symbols): ...this.
! 	(region_model_manager::alloc_region_id): Replace with...
! 	(region_model_manager::alloc_symbol_id): ...this.
! 	(region_model_manager::m_next_region_id): Replace with...
! 	(region_model_manager::m_next_symbol_id): ...this.
! 	* region-model.cc (selftest::test_get_representative_tree): Update
! 	for generalizing region ids to also cover svalues.
! 	(selftest::test_binop_svalue_folding): Likewise.
! 	(selftest::test_state_merging): Likewise.
! 	* region.cc (region::cmp_ids): Delete, in favor of
! 	symbol::cmp_ids.
! 	(region::region): Update for introduction of symbol base class.
! 	(frame_region::get_region_for_local): Likewise.
! 	(root_region::root_region): Likewise.
! 	(symbolic_region::symbolic_region): Likewise.
! 	* region.h: Replace include of "analyzer/complexity.h" with
! 	"analyzer/symbol.h".
! 	(class region): Make a subclass of symbol.
! 	(region::get_id): Delete in favor of symbol::get_id.
! 	(region::cmp_ids): Delete in favor of symbol::cmp_ids.
! 	(region::get_complexity): Delete in favor of
! 	symbol::get_complexity.
! 	(region::region): Use symbol::id_t for "id" param.
! 	(region::m_complexity): Move field to symbol base class.
! 	(region::m_id): Likewise.
! 	(space_region::space_region): Use symbol::id_t for "id" param.
! 	(frame_region::frame_region): Likewise.
! 	(globals_region::globals_region): Likewise.
! 	(code_region::code_region): Likewise.
! 	(function_region::function_region): Likewise.
! 	(label_region::label_region): Likewise.
! 	(stack_region::stack_region): Likewise.
! 	(heap_region::heap_region): Likewise.
! 	(thread_local_region::thread_local_region): Likewise.
! 	(root_region::root_region): Likewise.
! 	(symbolic_region::symbolic_region): Likewise.
! 	(decl_region::decl_region): Likewise.
! 	(field_region::field_region): Likewise.
! 	(element_region::element_region): Likewise.
! 	(offset_region::offset_region): Likewise.
! 	(sized_region::sized_region): Likewise.
! 	(cast_region::cast_region): Likewise.
! 	(heap_allocated_region::heap_allocated_region): Likewise.
! 	(alloca_region::alloca_region): Likewise.
! 	(string_region::string_region): Likewise.
! 	(bit_range_region::bit_range_region): Likewise.
! 	(var_arg_region::var_arg_region): Likewise.
! 	(errno_region::errno_region): Likewise.
! 	(unknown_region::unknown_region): Likewise.
! 	* svalue.cc (sub_svalue::sub_svalue): Add symbol::id_t param.
! 	(repeated_svalue::repeated_svalue): Likewise.
! 	(bits_within_svalue::bits_within_svalue): Likewise.
! 	(compound_svalue::compound_svalue): Likewise.
! 	* svalue.h: Replace include of "analyzer/complexity.h" with
! 	"analyzer/symbol.h".
! 	(class svalue): Make a subclass of symbol.
! 	(svalue::get_complexity): Delete in favor of
! 	symbol::get_complexity.
! 	(svalue::svalue): Add symbol::id_t param.  Update for new base
! 	class.
! 	(svalue::m_complexity): Delete in favor of
! 	symbol::m_complexity.
! 	(region_svalue::region_svalue): Add symbol::id_t param
! 	(constant_svalue::constant_svalue): Likewise.
! 	(unknown_svalue::unknown_svalue): Likewise.
! 	(poisoned_svalue::poisoned_svalue): Likewise.
! 	(setjmp_svalue::setjmp_svalue): Likewise.
! 	(initial_svalue::initial_svalue): Likewise.
! 	(unaryop_svalue::unaryop_svalue): Likewise.
! 	(binop_svalue::binop_svalue): Likewise.
! 	(sub_svalue::sub_svalue): Likewise.
! 	(repeated_svalue::repeated_svalue): Likewise.
! 	(bits_within_svalue::bits_within_svalue): Likewise.
! 	(unmergeable_svalue::unmergeable_svalue): Likewise.
! 	(placeholder_svalue::placeholder_svalue): Likewise.
! 	(widening_svalue::widening_svalue): Likewise.
! 	(compound_svalue::compound_svalue): Likewise.
! 	(conjured_svalue::conjured_svalue): Likewise.
! 	(asm_output_svalue::asm_output_svalue): Likewise.
! 	(const_fn_result_svalue::const_fn_result_svalue): Likewise.
! 	* symbol.cc: New file.
! 	* symbol.h: New file.
! 
! 2023-07-21  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110455
! 	* region-model.cc (region_model::get_gassign_result): Only check
! 	for bad shift counts when dealing with an integral type.
! 
! 2023-07-21  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110433
! 	PR middle-end/110612
! 	* access-diagram.cc (class spatial_item): Add virtual dtor.
! 
! 2023-07-21  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110387
! 	* region.h (struct cast_region::key_t): Support "m_type" being
! 	null by using "m_original_region" for empty/deleted slots.
! 
! 2023-07-19  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110700
! 	* region-model-manager.cc
! 	(region_model_manager::get_or_create_int_cst): Assert that we have
! 	an integral or pointer type.
! 	* sm-taint.cc (taint_state_machine::check_for_tainted_divisor):
! 	Don't check non-integral types.
! 
! 2023-06-29  benjamin priour  <priour.be@gmail.com>
! 
! 	PR analyzer/110198
! 	* region-model-manager.cc
! 	(region_model_manager::get_or_create_initial_value): Take an
! 	optional boolean value to bypass poisoning checks
! 	* region-model-manager.h: Update declaration of the above function.
! 	* region-model.cc (region_model::get_store_value): No longer returns
! 	on OOB, but rather gives a boolean to get_or_create_initial_value.
! 	(region_model::check_region_access): Update docstring.
! 	(region_model::check_region_for_write): Update docstring.
! 
! 2023-06-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc: Add #define INCLUDE_VECTOR.
! 	* bounds-checking.cc: Likewise.
! 
! 2023-06-22  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/106626
! 	* access-diagram.cc: New file.
! 	* access-diagram.h: New file.
! 	* analyzer.h (class region_offset): Add default ctor.
! 	(region_offset::make_byte_offset): New decl.
! 	(region_offset::concrete_p): New.
! 	(region_offset::get_concrete_byte_offset): New.
! 	(region_offset::calc_symbolic_bit_offset): New decl.
! 	(region_offset::calc_symbolic_byte_offset): New decl.
! 	(region_offset::dump_to_pp): New decl.
! 	(region_offset::dump): New decl.
! 	(operator<, operator<=, operator>, operator>=): New decls for
! 	region_offset.
! 	* analyzer.opt
! 	(-param=analyzer-text-art-string-ellipsis-threshold=): New.
! 	(-param=analyzer-text-art-string-ellipsis-head-len=): New.
! 	(-param=analyzer-text-art-string-ellipsis-tail-len=): New.
! 	(-param=analyzer-text-art-ideal-canvas-width=): New.
! 	(fanalyzer-debug-text-art): New.
! 	* bounds-checking.cc: Include "intl.h", "diagnostic-diagram.h",
! 	and "analyzer/access-diagram.h".
! 	(class out_of_bounds::oob_region_creation_event_capacity): New.
! 	(out_of_bounds::out_of_bounds): Add "model" and "sval_hint"
! 	params.
! 	(out_of_bounds::mark_interesting_stuff): Use the base region.
! 	(out_of_bounds::add_region_creation_events): Use
! 	oob_region_creation_event_capacity.
! 	(out_of_bounds::get_dir): New pure vfunc.
! 	(out_of_bounds::maybe_show_notes): New.
! 	(out_of_bounds::maybe_show_diagram): New.
! 	(out_of_bounds::make_access_diagram): New.
! 	(out_of_bounds::m_model): New field.
! 	(out_of_bounds::m_sval_hint): New field.
! 	(out_of_bounds::m_region_creation_event_id): New field.
! 	(concrete_out_of_bounds::concrete_out_of_bounds): Update for new
! 	fields.
! 	(concrete_past_the_end::concrete_past_the_end): Likewise.
! 	(concrete_past_the_end::add_region_creation_events): Use
! 	oob_region_creation_event_capacity.
! 	(concrete_buffer_overflow::concrete_buffer_overflow): Update for
! 	new fields.
! 	(concrete_buffer_overflow::emit): Replace call to
! 	maybe_describe_array_bounds with maybe_show_notes.
! 	(concrete_buffer_overflow::get_dir): New.
! 	(concrete_buffer_over_read::concrete_buffer_over_read): Update for
! 	new fields.
! 	(concrete_buffer_over_read::emit): Replace call to
! 	maybe_describe_array_bounds with maybe_show_notes.
! 	(concrete_buffer_overflow::get_dir): New.
! 	(concrete_buffer_underwrite::concrete_buffer_underwrite): Update
! 	for new fields.
! 	(concrete_buffer_underwrite::emit): Replace call to
! 	maybe_describe_array_bounds with maybe_show_notes.
! 	(concrete_buffer_underwrite::get_dir): New.
! 	(concrete_buffer_under_read::concrete_buffer_under_read): Update
! 	for new fields.
! 	(concrete_buffer_under_read::emit): Replace call to
! 	maybe_describe_array_bounds with maybe_show_notes.
! 	(concrete_buffer_under_read::get_dir): New.
! 	(symbolic_past_the_end::symbolic_past_the_end): Update for new
! 	fields.
! 	(symbolic_buffer_overflow::symbolic_buffer_overflow): Likewise.
! 	(symbolic_buffer_overflow::emit): Call maybe_show_notes.
! 	(symbolic_buffer_overflow::get_dir): New.
! 	(symbolic_buffer_over_read::symbolic_buffer_over_read): Update for
! 	new fields.
! 	(symbolic_buffer_over_read::emit): Call maybe_show_notes.
! 	(symbolic_buffer_over_read::get_dir): New.
! 	(region_model::check_symbolic_bounds): Add "sval_hint" param.  Pass
! 	it and sized_offset_reg to diagnostics.
! 	(region_model::check_region_bounds): Add "sval_hint" param, passing
! 	it to diagnostics.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::emit_saved_diagnostic): Pass logger to
! 	pending_diagnostic::emit.
! 	* engine.cc: Add logger param to pending_diagnostic::emit
! 	implementations.
! 	* infinite-recursion.cc: Likewise.
! 	* kf-analyzer.cc: Likewise.
! 	* kf.cc: Likewise.  Add nullptr for new param of
! 	check_region_for_write.
! 	* pending-diagnostic.h: Likewise in decl.
! 	* region-model-manager.cc
! 	(region_model_manager::get_or_create_int_cst): Convert param from
! 	poly_int64 to const poly_wide_int_ref &.
! 	(region_model_manager::maybe_fold_binop): Support type being NULL
! 	when checking for floating-point types.
! 	Check for (X + Y) - X => Y.  Be less strict about types when folding
! 	associative ops.  Check for (X + Y) * CST => (X * CST) + (Y * CST).
! 	* region-model-manager.h
! 	(region_model_manager::get_or_create_int_cst): Convert param from
! 	poly_int64 to const poly_wide_int_ref &.
! 	* region-model.cc: Add logger param to pending_diagnostic::emit
! 	implementations.
! 	(region_model::check_external_function_for_access_attr): Update
! 	for new param of check_region_for_write.
! 	(region_model::deref_rvalue): Use nullptr rather than NULL.
! 	(region_model::get_capacity): Handle RK_STRING.
! 	(region_model::check_region_access): Add "sval_hint" param; pass it to
! 	check_region_bounds.
! 	(region_model::check_region_for_write): Add "sval_hint" param;
! 	pass it to check_region_access.
! 	(region_model::check_region_for_read): Add NULL for new param to
! 	check_region_access.
! 	(region_model::set_value): Pass rhs_sval to
! 	check_region_for_write.
! 	(region_model::get_representative_path_var_1): Handle SK_CONSTANT
! 	in the check for infinite recursion.
! 	* region-model.h (region_model::check_region_for_write): Add
! 	"sval_hint" param.
! 	(region_model::check_region_access): Likewise.
! 	(region_model::check_symbolic_bounds): Likewise.
! 	(region_model::check_region_bounds): Likewise.
! 	* region.cc (region_offset::make_byte_offset): New.
! 	(region_offset::calc_symbolic_bit_offset): New.
! 	(region_offset::calc_symbolic_byte_offset): New.
! 	(region_offset::dump_to_pp): New.
! 	(region_offset::dump): New.
! 	(struct linear_op): New.
! 	(operator<, operator<=, operator>, operator>=): New, for
! 	region_offset.
! 	(region::get_next_offset): New.
! 	(region::get_relative_symbolic_offset): Use ptrdiff_type_node.
! 	(field_region::get_relative_symbolic_offset): Likewise.
! 	(element_region::get_relative_symbolic_offset): Likewise.
! 	(bit_range_region::get_relative_symbolic_offset): Likewise.
! 	* region.h (region::get_next_offset): New decl.
! 	* sm-fd.cc: Add logger param to pending_diagnostic::emit
! 	implementations.
! 	* sm-file.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 	* sm-pattern-test.cc: Likewise.
! 	* sm-sensitive.cc: Likewise.
! 	* sm-signal.cc: Likewise.
! 	* sm-taint.cc: Likewise.
! 	* store.cc (bit_range::contains_p): Allow "out" to be null.
! 	* store.h (byte_range::get_start_bit_offset): New.
! 	(byte_range::get_next_bit_offset): New.
! 	* varargs.cc: Add logger param to pending_diagnostic::emit
! 	implementations.
! 
! 2023-06-10  Tim Lange  <mail@tim-lange.me>
! 
! 	PR analyzer/109577
! 	* constraint-manager.cc (class sval_finder): Visitor to find
! 	childs in svalue trees.
! 	(constraint_manager::sval_constrained_p): Add new function to
! 	check whether a sval might be part of an constraint.
! 	* constraint-manager.h: Add sval_constrained_p function.
! 	* region-model.cc (class size_visitor): Reverse behavior to not
! 	emit a warning on not explicitly considered cases.
! 	(region_model::check_region_size):
! 	Adapt to size_visitor changes.
! 
! 2023-06-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/110112
! 	* region-model.cc (region_model::get_initial_value_for_global):
! 	Move code to region::calc_initial_value_at_main.
! 	* region.cc (region::get_initial_value_at_main): New function.
! 	(region::calc_initial_value_at_main): New function, based on code
! 	in region_model::get_initial_value_for_global.
! 	(region::region): Initialize m_cached_init_sval_at_main.
! 	(decl_region::get_svalue_for_constructor): Add a cache, splitting
! 	out body to...
! 	(decl_region::calc_svalue_for_constructor): ...this new function.
! 	* region.h (region::get_initial_value_at_main): New decl.
! 	(region::calc_initial_value_at_main): New decl.
! 	(region::m_cached_init_sval_at_main): New field.
! 	(decl_region::decl_region): Initialize m_ctor_svalue.
! 	(decl_region::calc_svalue_for_constructor): New decl.
! 	(decl_region::m_ctor_svalue): New field.
! 
! 2023-06-08  Benjamin Priour  <vultkayn@gcc.gnu.org>
! 
! 	* bounds-checking.cc (region_model::check_symbolic_bounds): Returns whether the BASE_REG
! 	region access was OOB.
! 	(region_model::check_region_bounds): Likewise.
! 	* region-model.cc (region_model::get_store_value): Creates an
! 	unknown svalue on OOB-read access to REG.
! 	(region_model::check_region_access): Returns whether an unknown svalue needs be created.
! 	(region_model::check_region_for_read): Passes check_region_access return value.
! 	* region-model.h: Update prior function definitions.
! 
! 2023-06-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/109015
! 	* kf.cc (class kf_atomic_exchange): New.
! 	(class kf_atomic_exchange_n): New.
! 	(class kf_atomic_fetch_op): New.
! 	(class kf_atomic_op_fetch): New.
! 	(class kf_atomic_load): New.
! 	(class kf_atomic_load_n): New.
! 	(class kf_atomic_store_n): New.
! 	(register_atomic_builtins): New function.
! 	(register_known_functions): Call register_atomic_builtins.
! 
! 2023-06-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* store.cc (store::eval_alias_1): Regions in different memory
! 	spaces can't alias.
! 
! 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
! 
! 	* region-model-manager.cc (get_code_for_cast): Use _P defines from
! 	tree.h.
! 	(region_model_manager::get_or_create_cast): Ditto.
! 	(region_model_manager::get_region_for_global): Ditto.
! 	* region-model.cc (region_model::get_lvalue_1): Ditto.
! 	* region.cc (decl_region::maybe_get_constant_value): Ditto.
  
  2023-03-22  David Malcolm  <dmalcolm@redhat.com>
  
***************
*** 10024,10030 ****
  	* Initial creation
  
  
! Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 12101,12107 ----
  	* Initial creation
  
  
! Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/gcc/analyzer/access-diagram.cc gcc-14.1.0/gcc/analyzer/access-diagram.cc
*** gcc-13.2.0/gcc/analyzer/access-diagram.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/access-diagram.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2788 ----
+ /* Text art visualizations within -fanalyzer.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MEMORY
+ #define INCLUDE_MAP
+ #define INCLUDE_SET
+ #define INCLUDE_VECTOR
+ #include "system.h"
+ #include "coretypes.h"
+ #include "coretypes.h"
+ #include "tree.h"
+ #include "function.h"
+ #include "basic-block.h"
+ #include "gimple.h"
+ #include "diagnostic-core.h"
+ #include "diagnostic.h"
+ #include "intl.h"
+ #include "make-unique.h"
+ #include "tree-diagnostic.h" /* for default_tree_printer.  */
+ #include "analyzer/analyzer.h"
+ #include "analyzer/region-model.h"
+ #include "analyzer/access-diagram.h"
+ #include "text-art/ruler.h"
+ #include "fold-const.h"
+ #include "analyzer/analyzer-selftests.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ /* Consider this code:
+      int32_t arr[10];
+      arr[10] = x;
+    where we've emitted a buffer overflow diagnostic like this:
+      out-of-bounds write from byte 40 till byte 43 but 'arr' ends at byte 40
+ 
+    We want to emit a diagram that visualizes:
+    - the spatial relationship between the valid region to access, versus
+    the region that was actually accessed: does it overlap, was it touching,
+    close, or far away?  Was it before or after in memory?  What are the
+    relative sizes involved?
+    - the direction of the access (read vs write)
+ 
+    The following code supports emitting diagrams similar to the following:
+ 
+    #                                        +--------------------------------+
+    #                                        |write from ‘x’ (type: ‘int32_t’)|
+    #                                        +--------------------------------+
+    #                                                        |
+    #                                                        |
+    #                                                        v
+    #  +---------+-----------+-----------+   +--------------------------------+
+    #  |   [0]   |    ...    |    [9]    |   |       after valid range        |
+    #  +---------+-----------+-----------+   |                                |
+    #  |   ‘arr’ (type: ‘int32_t[10]’)   |   |                                |
+    #  +---------------------------------+   +--------------------------------+
+    #  |~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~|   |~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~|
+    #                   |                                    |
+    #         +---------+--------+                 +---------+---------+
+    #         |capacity: 40 bytes|                 |overflow of 4 bytes|
+    #         +------------------+                 +-------------------+
+ 
+   where the diagram is laid out via table columns where each table column
+   represents either a range of bits/bytes, or is a spacing column (to highlight
+   the boundary between valid vs invalid accesses).  The table columns can be
+   seen via -fanalyzer-debug-text-art.  For example, here there are 5 table
+   columns ("tc0" through "tc4"):
+ 
+    #  +---------+-----------+-----------+---+--------------------------------+
+    #  |   tc0   |    tc1    |    tc2    |tc3|              tc4               |
+    #  +---------+-----------+-----------+---+--------------------------------+
+    #  |bytes 0-3|bytes 4-35 |bytes 36-39|   |          bytes 40-43           |
+    #  +---------+-----------+-----------+   +--------------------------------+
+    #
+    #                                        +--------------------------------+
+    #                                        |write from ‘x’ (type: ‘int32_t’)|
+    #                                        +--------------------------------+
+    #                                                        |
+    #                                                        |
+    #                                                        v
+    #  +---------+-----------+-----------+   +--------------------------------+
+    #  |   [0]   |    ...    |    [9]    |   |       after valid range        |
+    #  +---------+-----------+-----------+   |                                |
+    #  |   ‘arr’ (type: ‘int32_t[10]’)   |   |                                |
+    #  +---------------------------------+   +--------------------------------+
+    #  |~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~|   |~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~|
+    #                   |                                    |
+    #         +---------+--------+                 +---------+---------+
+    #         |capacity: 40 bytes|                 |overflow of 4 bytes|
+    #         +------------------+                 +-------------------+
+ 
+   The diagram is built up from the following:
+ 
+    #                                        +--------------------------------+
+    #                                        | ITEM FOR SVALUE/ACCESSED REGION|
+    #                                        +--------------------------------+
+    #                                                        |
+    #                                                        | DIRECTION WIDGET
+    #                                                        v
+    #  +---------------------------------+   +--------------------------------+
+    #  |   VALID REGION                  |   | INVALID ACCESS                 |
+    #  +---------------------------------+   +--------------------------------+
+    #
+    #  |                       VALID-VS-INVALID RULER                         |
+ 
+   i.e. a vbox_widget containing 4 child widgets laid out vertically:
+   - ALIGNED CHILD WIDGET: ITEM FOR SVALUE/ACCESSED REGION
+   - DIRECTION WIDGET
+   - ALIGNED CHILD WIDGET: VALID AND INVALID ACCESSES
+   - VALID-VS-INVALID RULER.
+ 
+   A more complicated example, given this overflow:
+      char buf[100];
+      strcpy (buf, LOREM_IPSUM);
+ 
+    01| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    02| |[0]|[1]|[2]|[3]|[4]|[5]|   ...    |[440]|[441]|[442]|[443]|[444]|[445]|
+    03| +---+---+---+---+---+---+          +-----+-----+-----+-----+-----+-----+
+    04| |'L'|'o'|'r'|'e'|'m'|' '|          | 'o' | 'r' | 'u' | 'm' | '.' | NUL |
+    05| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    06| |                  string literal (type: 'char[446]')                  |
+    07| +----------------------------------------------------------------------+
+    08|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    09|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    10|   v   v   v   v   v   v  v  v    v    v     v     v     v     v     v
+    11| +---+---------------------+----++--------------------------------------+
+    12| |[0]|         ...         |[99]||          after valid range           |
+    13| +---+---------------------+----+|                                      |
+    14| |  'buf' (type: 'char[100]')   ||                                      |
+    15| +------------------------------++--------------------------------------+
+    16| |~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~|
+    17|                |                                   |
+    18|      +---------+---------+              +----------+----------+
+    19|      |capacity: 100 bytes|              |overflow of 346 bytes|
+    20|      +-------------------+              +---------------------+
+ 
+  which is:
+ 
+    01| ALIGNED CHILD WIDGET (lines 01-07): (string_region_spatial_item)-+-----+
+    02| |[0]|[1]|[2]|[3]|[4]|[5]|   ...    |[440]|[441]|[442]|[443]|[444]|[445]|
+    03| +---+---+---+---+---+---+          +-----+-----+-----+-----+-----+-----+
+    04| |'L'|'o'|'r'|'e'|'m'|' '|          | 'o' | 'r' | 'u' | 'm' | '.' | NUL |
+    05| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    06| |                  string literal (type: 'char[446]')                  |
+    07| +----------------------------------------------------------------------+
+    08| DIRECTION WIDGET (lines 08-10)   |    |     |     |     |     |     |
+    09|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    10|   v   v   v   v   v   v  v  v    v    v     v     v     v     v     v
+    11| ALIGNED CHILD WIDGET (lines 11-15)-------------------------------------+
+    12| VALID REGION  ...         |[99]|| INVALID ACCESS                       |
+    13| +---+---------------------+----+|                                      |
+    14| |  'buf' (type: 'char[100]')   ||                                      |
+    15| +------------------------------++--------------------------------------+
+    16| VALID-VS-INVALID RULER (lines 16-20): ~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~|
+    17|                |                                   |
+    18|      +---------+---------+              +----------+----------+
+    19|      |capacity: 100 bytes|              |overflow of 346 bytes|
+    20|      +-------------------+              +---------------------+
+ 
+    We build the diagram in several phases:
+    - (1) we construct an access_diagram_impl widget.  Within the ctor, we have
+    these subphases:
+    -   (1.1) find all of the boundaries of interest
+    -   (1.2) use the boundaries to build a bit_table_map, associating bit ranges
+    with table columns (e.g. "byte 0 is column 0, bytes 1-98 are column 2" etc)
+    -   (1.3) create child widgets that share this table-based geometry
+    - (2) ask the widget for its size request
+    -   (2.1) column widths and row heights for the table are computed by
+    access_diagram_impl::calc_req_size
+    -   (2.2) child widgets request sizes based on these widths/heights
+    - (3) create a canvas of the appropriate size
+    - (4) paint the widget hierarchy to the canvas.  */
+ 
+ 
+ using namespace text_art;
+ 
+ namespace ana {
+ 
+ static styled_string
+ fmt_styled_string (style_manager &sm,
+ 		   const char *fmt, ...)
+     ATTRIBUTE_GCC_DIAG(2, 3);
+ 
+ static styled_string
+ fmt_styled_string (style_manager &sm,
+ 		   const char *fmt, ...)
+ {
+   va_list ap;
+   va_start (ap, fmt);
+   styled_string result
+     = styled_string::from_fmt_va (sm, default_tree_printer, fmt, &ap);
+   va_end (ap);
+   return result;
+ }
+ 
+ class access_diagram_impl;
+ class bit_to_table_map;
+ 
+ static void
+ pp_bit_size_t (pretty_printer *pp, bit_size_t num_bits)
+ {
+   if (num_bits % BITS_PER_UNIT == 0)
+     {
+       byte_size_t num_bytes = num_bits / BITS_PER_UNIT;
+       if (num_bytes == 1)
+ 	pp_printf (pp, _("%wi byte"), num_bytes.to_uhwi ());
+       else
+ 	pp_printf (pp, _("%wi bytes"), num_bytes.to_uhwi ());
+     }
+   else
+     {
+       if (num_bits == 1)
+ 	pp_printf (pp, _("%wi bit"), num_bits.to_uhwi ());
+       else
+ 	pp_printf (pp, _("%wi bits"), num_bits.to_uhwi ());
+     }
+ }
+ 
+ static styled_string
+ get_access_size_str (style_manager &sm,
+ 		     const access_operation &op,
+ 		     access_range accessed_range,
+ 		     tree type)
+ {
+   bit_size_expr num_bits (accessed_range.get_size (op.m_model.get_manager ()));
+   if (type)
+     {
+       styled_string s;
+       pretty_printer pp;
+       pp_format_decoder (&pp) = default_tree_printer;
+       if (num_bits.maybe_print_for_user (&pp, op.m_model))
+ 	{
+ 	  if (op.m_dir == DIR_READ)
+ 	    return fmt_styled_string (sm,
+ 				      _("read of %qT (%s)"),
+ 				      type,
+ 				      pp_formatted_text (&pp));
+ 	  else
+ 	    return fmt_styled_string (sm,
+ 				      _("write of %qT (%s)"),
+ 				      type,
+ 				      pp_formatted_text (&pp));
+ 	}
+     }
+   if (op.m_dir == DIR_READ)
+     {
+       if (auto p
+ 	  = num_bits.maybe_get_formatted_str (sm, op.m_model,
+ 					      _("read of %wi bit"),
+ 					      _("read of %wi bits"),
+ 					      _("read of %wi byte"),
+ 					      _("read of %wi bytes"),
+ 					      _("read of %qs bits"),
+ 					      _("read of %qs bytes")))
+ 	return std::move (*p.get ());
+     }
+   else
+     {
+       if (auto p
+ 	  = num_bits.maybe_get_formatted_str (sm, op.m_model,
+ 					      _("write of %wi bit"),
+ 					      _("write of %wi bits"),
+ 					      _("write of %wi byte"),
+ 					      _("write of %wi bytes"),
+ 					      _("write of %qs bits"),
+ 					      _("write of %qs bytes")))
+ 	return std::move (*p.get ());
+     }
+ 
+   if (type)
+     {
+       if (op.m_dir == DIR_READ)
+ 	return fmt_styled_string (sm, _("read of %qT"), type);
+       else
+ 	return fmt_styled_string (sm, _("write of %qT"), type);
+     }
+ 
+   if (op.m_dir == DIR_READ)
+     return styled_string (sm, _("read"));
+   else
+     return styled_string (sm, _("write"));
+ }
+ 
+ /* Subroutine of clean_up_for_diagram.  */
+ 
+ static tree
+ strip_any_cast (tree expr)
+ {
+   if (TREE_CODE (expr) == NOP_EXPR
+       || TREE_CODE (expr) == NON_LVALUE_EXPR)
+     expr = TREE_OPERAND (expr, 0);
+   return expr;
+ }
+ 
+ /* Duplicate EXPR, replacing any SSA names with the underlying variable.  */
+ 
+ tree
+ remove_ssa_names (tree expr)
+ {
+   if (TREE_CODE (expr) == SSA_NAME
+       && SSA_NAME_VAR (expr))
+     return SSA_NAME_VAR (expr);
+   tree t = copy_node (expr);
+   for (int i = 0; i < TREE_OPERAND_LENGTH (expr); i++)
+     if (TREE_OPERAND (expr, i))
+       TREE_OPERAND (t, i) = remove_ssa_names (TREE_OPERAND (expr, i));
+   return t;
+ }
+ 
+ /* We want to be able to print tree expressions from the analyzer,
+    which is in the middle end.
+ 
+    We could use the front-end pretty_printer's formatting routine,
+    but:
+    (a) some have additional state in a pretty_printer subclass, so we'd
+    need to clone global_dc->printer
+    (b) the "aka" type information added by the C and C++ frontends are
+    too verbose when building a diagram, and there isn't a good way to ask
+    for a less verbose version of them.
+ 
+    Hence we use default_tree_printer.
+    However, we want to avoid printing SSA names, and instead print the
+    underlying var name.
+    Ideally there would be a better tree printer for use by middle end
+    warnings, but as workaround, this function clones a tree, replacing
+    SSA names with the var names.  */
+ 
+ tree
+ clean_up_for_diagram (tree expr)
+ {
+   tree without_ssa_names = remove_ssa_names (expr);
+   return strip_any_cast (without_ssa_names);
+ }
+ 
+ /* struct bit_size_expr.  */
+ 
+ /* Attempt to generate a user-facing styled string that mentions this
+    bit_size_expr.
+    Use MODEL for extracting representative tree values where necessary.
+    The CONCRETE_* format strings should contain a single %wi.
+    The SYMBOLIC_* format strings should contain a single %qs.
+    Return nullptr if unable to represent the expression.  */
+ 
+ std::unique_ptr<text_art::styled_string>
+ bit_size_expr::maybe_get_formatted_str (text_art::style_manager &sm,
+ 					const region_model &model,
+ 					const char *concrete_single_bit_fmt,
+ 					const char *concrete_plural_bits_fmt,
+ 					const char *concrete_single_byte_fmt,
+ 					const char *concrete_plural_bytes_fmt,
+ 					const char *symbolic_bits_fmt,
+ 					const char *symbolic_bytes_fmt) const
+ {
+   region_model_manager &mgr = *model.get_manager ();
+   if (const svalue *num_bytes = maybe_get_as_bytes (mgr))
+     {
+       if (tree cst = num_bytes->maybe_get_constant ())
+ 	{
+ 	  byte_size_t concrete_num_bytes = wi::to_offset (cst);
+ 	  if (!wi::fits_uhwi_p (concrete_num_bytes))
+ 	    return nullptr;
+ 	  if (concrete_num_bytes == 1)
+ 	    return ::make_unique <text_art::styled_string>
+ 	      (fmt_styled_string (sm, concrete_single_byte_fmt,
+ 				  concrete_num_bytes.to_uhwi ()));
+ 	  else
+ 	    return ::make_unique <text_art::styled_string>
+ 	      (fmt_styled_string (sm, concrete_plural_bytes_fmt,
+ 				  concrete_num_bytes.to_uhwi ()));
+ 	}
+       else
+ 	{
+ 	  pretty_printer pp;
+ 	  pp_format_decoder (&pp) = default_tree_printer;
+ 	  if (!num_bytes->maybe_print_for_user (&pp, model))
+ 	    return nullptr;
+ 	  return ::make_unique <text_art::styled_string>
+ 	    (fmt_styled_string (sm, symbolic_bytes_fmt,
+ 				pp_formatted_text (&pp)));
+ 	}
+     }
+   else if (tree cst = m_num_bits.maybe_get_constant ())
+     {
+       bit_size_t concrete_num_bits = wi::to_offset (cst);
+       if (!wi::fits_uhwi_p (concrete_num_bits))
+ 	return nullptr;
+       if (concrete_num_bits == 1)
+ 	return ::make_unique <text_art::styled_string>
+ 	  (fmt_styled_string (sm, concrete_single_bit_fmt,
+ 			      concrete_num_bits.to_uhwi ()));
+       else
+ 	return ::make_unique <text_art::styled_string>
+ 	  (fmt_styled_string (sm, concrete_plural_bits_fmt,
+ 			      concrete_num_bits.to_uhwi ()));
+     }
+   else
+     {
+       pretty_printer pp;
+       pp_format_decoder (&pp) = default_tree_printer;
+       if (!m_num_bits.maybe_print_for_user (&pp, model))
+ 	return nullptr;
+       return ::make_unique <text_art::styled_string>
+ 	(fmt_styled_string (sm, symbolic_bits_fmt,
+ 			    pp_formatted_text (&pp)));
+     }
+ }
+ 
+ bool
+ bit_size_expr::maybe_print_for_user (pretty_printer *pp,
+ 				     const region_model &model) const
+ {
+   if (tree cst = m_num_bits.maybe_get_constant ())
+     {
+       bit_size_t concrete_num_bits = wi::to_offset (cst);
+       pp_bit_size_t (pp, concrete_num_bits);
+       return true;
+     }
+   else
+     {
+       if (const svalue *num_bytes = maybe_get_as_bytes (*model.get_manager ()))
+ 	{
+ 	  pretty_printer tmp_pp;
+ 	  pp_format_decoder (&tmp_pp) = default_tree_printer;
+ 	  if (!num_bytes->maybe_print_for_user (&tmp_pp, model))
+ 	    return false;
+ 	  pp_printf (pp, _("%qs bytes"), pp_formatted_text (&tmp_pp));
+ 	  return true;
+ 	}
+       else
+ 	{
+ 	  pretty_printer tmp_pp;
+ 	  pp_format_decoder (&tmp_pp) = default_tree_printer;
+ 	  if (!m_num_bits.maybe_print_for_user (&tmp_pp, model))
+ 	    return false;
+ 	  pp_printf (pp, _("%qs bits"), pp_formatted_text (&tmp_pp));
+ 	  return true;
+ 	}
+     }
+ }
+ 
+ /* Attempt to get a symbolic value for this symbolic bit size,
+    expressed in bytes.
+    Return null if it's not known to divide exactly.  */
+ 
+ const svalue *
+ bit_size_expr::maybe_get_as_bytes (region_model_manager &mgr) const
+ {
+   if (tree cst = m_num_bits.maybe_get_constant ())
+     {
+       bit_offset_t concrete_bits = wi::to_offset (cst);
+       if (concrete_bits % BITS_PER_UNIT != 0)
+ 	/* Not an exact multiple, so fail.  */
+ 	return nullptr;
+     }
+   const svalue *bits_per_byte
+     = mgr.get_or_create_int_cst (NULL_TREE, BITS_PER_UNIT);
+   return mgr.maybe_fold_binop (NULL_TREE, EXACT_DIV_EXPR,
+ 			       &m_num_bits, bits_per_byte);
+ }
+ 
+ /* struct access_range.  */
+ 
+ access_range::access_range (const region *base_region, const bit_range &bits)
+ : m_start (region_offset::make_concrete (base_region,
+ 					 bits.get_start_bit_offset ())),
+   m_next (region_offset::make_concrete (base_region,
+ 					bits.get_next_bit_offset ()))
+ {
+ }
+ 
+ access_range::access_range (const region *base_region, const byte_range &bytes)
+ : m_start (region_offset::make_concrete (base_region,
+ 					 bytes.get_start_bit_offset ())),
+   m_next (region_offset::make_concrete (base_region,
+ 					bytes.get_next_bit_offset ()))
+ {
+ }
+ 
+ access_range::access_range (const region &reg, region_model_manager *mgr)
+ : m_start (strip_types (reg.get_offset (mgr), *mgr)),
+   m_next (strip_types (reg.get_next_offset (mgr), *mgr))
+ {
+ }
+ 
+ bit_size_expr
+ access_range::get_size (region_model_manager *mgr) const
+ {
+   const svalue &start_bit_offset = m_start.calc_symbolic_bit_offset (mgr);
+   const svalue &next_bit_offset = m_next.calc_symbolic_bit_offset (mgr);
+   return bit_size_expr
+     (*mgr->get_or_create_binop (NULL_TREE, MINUS_EXPR,
+ 				&next_bit_offset, &start_bit_offset));
+ }
+ 
+ bool
+ access_range::contains_p (const access_range &other) const
+ {
+   return (m_start <= other.m_start
+ 	  && other.m_next <= m_next);
+ }
+ 
+ bool
+ access_range::empty_p () const
+ {
+   bit_range concrete_bits (0, 0);
+   if (!as_concrete_bit_range (&concrete_bits))
+     return false;
+   return concrete_bits.empty_p ();
+ }
+ 
+ void
+ access_range::dump_to_pp (pretty_printer *pp, bool simple) const
+ {
+   if (m_start.concrete_p () && m_next.concrete_p ())
+     {
+       bit_range bits (m_start.get_bit_offset (),
+ 		      m_next.get_bit_offset () - m_start.get_bit_offset ());
+       bits.dump_to_pp (pp);
+       return;
+     }
+   pp_character (pp, '[');
+   m_start.dump_to_pp (pp, simple);
+   pp_string (pp, " to ");
+   m_next.dump_to_pp (pp, simple);
+   pp_character (pp, ')');
+ }
+ 
+ DEBUG_FUNCTION void
+ access_range::dump (bool simple) const
+ {
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   pp_show_color (&pp) = pp_show_color (global_dc->printer);
+   pp.buffer->stream = stderr;
+   dump_to_pp (&pp, simple);
+   pp_newline (&pp);
+   pp_flush (&pp);
+ }
+ 
+ void
+ access_range::log (const char *title, logger &logger) const
+ {
+   logger.start_log_line ();
+   logger.log_partial ("%s: ", title);
+   dump_to_pp (logger.get_printer (), true);
+   logger.end_log_line ();
+ }
+ 
+ /* struct access_operation.  */
+ 
+ access_range
+ access_operation::get_valid_bits () const
+ {
+   const svalue *capacity_in_bytes_sval = m_model.get_capacity (m_base_region);
+   return access_range
+     (region_offset::make_concrete (m_base_region, 0),
+      region_offset::make_byte_offset (m_base_region, capacity_in_bytes_sval),
+      *get_manager ());
+ }
+ 
+ access_range
+ access_operation::get_actual_bits () const
+ {
+   return access_range (m_reg, get_manager ());
+ }
+ 
+ /* If there are any bits accessed invalidly before the valid range,
+    return true and write their range to *OUT.
+    Return false if there aren't, or if there's a problem
+    (e.g. symbolic ranges.  */
+ 
+ bool
+ access_operation::maybe_get_invalid_before_bits (access_range *out) const
+ {
+   access_range valid_bits (get_valid_bits ());
+   access_range actual_bits (get_actual_bits ());
+ 
+   if (actual_bits.m_start >= valid_bits.m_start)
+     {
+       /* No part of accessed range is before the valid range.  */
+       return false;
+     }
+   else if (actual_bits.m_next > valid_bits.m_start)
+     {
+       /* Get part of accessed range that's before the valid range.  */
+       *out = access_range (actual_bits.m_start, valid_bits.m_start,
+ 			   *get_manager ());
+       return true;
+     }
+   else
+     {
+       /* Accessed range is fully before valid range.  */
+       *out = actual_bits;
+       return true;
+     }
+ }
+ 
+ /* If there are any bits accessed invalidly after the valid range,
+    return true and write their range to *OUT.
+    Return false if there aren't, or if there's a problem.  */
+ 
+ bool
+ access_operation::maybe_get_invalid_after_bits (access_range *out) const
+ {
+   access_range valid_bits (get_valid_bits ());
+   access_range actual_bits (get_actual_bits ());
+ 
+   if (actual_bits.m_next <= valid_bits.m_next)
+     {
+       /* No part of accessed range is after the valid range.  */
+       return false;
+     }
+   else if (actual_bits.m_start < valid_bits.m_next)
+     {
+       /* Get part of accessed range that's after the valid range.  */
+       *out = access_range (valid_bits.m_next, actual_bits.m_next,
+ 			   *get_manager ());
+       return true;
+     }
+   else
+     {
+       /* Accessed range is fully after valid range.  */
+       *out = actual_bits;
+       return true;
+     }
+ }
+ 
+ /* A class for capturing all of the region offsets of interest (both concrete
+    and symbolic), to help align everything in the diagram.
+    Boundaries can be soft or hard; hard boundaries are emphasized visually
+    (e.g. the boundary between valid vs invalid accesses).
+ 
+    Offsets in the boundaries are all expressed relative to the base
+    region of the access_operation.  */
+ 
+ class boundaries
+ {
+ public:
+   enum class kind { HARD, SOFT};
+ 
+   boundaries (const region &base_reg, logger *logger)
+   : m_base_reg (base_reg), m_logger (logger)
+   {
+   }
+ 
+   void add (region_offset offset, enum kind k)
+   {
+     m_all_offsets.insert (offset);
+     if (k == kind::HARD)
+       m_hard_offsets.insert (offset);
+   }
+ 
+   void add (const access_range &range, enum kind kind)
+   {
+     add (range.m_start, kind);
+     add (range.m_next, kind);
+     if (m_logger)
+       {
+ 	m_logger->start_log_line ();
+ 	m_logger->log_partial ("added access_range: ");
+ 	range.dump_to_pp (m_logger->get_printer (), true);
+ 	m_logger->log_partial (" (%s)",
+ 			       (kind == boundaries::kind::HARD)
+ 			       ? "HARD" : "soft");
+ 	m_logger->end_log_line ();
+       }
+   }
+ 
+   void add (const region &reg, region_model_manager *mgr, enum kind kind)
+   {
+     add (access_range (reg.get_offset (mgr),
+ 		       reg.get_next_offset (mgr),
+ 		       *mgr),
+ 	 kind);
+   }
+ 
+   void add (const byte_range bytes, enum kind kind)
+   {
+     add (access_range (&m_base_reg, bytes), kind);
+   }
+ 
+   void add_all_bytes_in_range (const byte_range &bytes)
+   {
+     for (byte_offset_t byte_idx = bytes.get_start_byte_offset ();
+ 	 byte_idx <= bytes.get_next_byte_offset ();
+ 	 byte_idx = byte_idx + 1)
+       add (region_offset::make_concrete (&m_base_reg, byte_idx * 8),
+ 	   kind::SOFT);
+   }
+ 
+   void add_all_bytes_in_range (const access_range &range)
+   {
+     byte_range bytes (0, 0);
+     bool valid = range.as_concrete_byte_range (&bytes);
+     gcc_assert (valid);
+     add_all_bytes_in_range (bytes);
+   }
+ 
+   void log (logger &logger) const
+   {
+     logger.log ("boundaries:");
+     logger.inc_indent ();
+     for (auto offset : m_all_offsets)
+       {
+ 	enum kind k = get_kind (offset);
+ 	logger.start_log_line ();
+ 	logger.log_partial ("%s: ", (k == kind::HARD) ? "HARD" : "soft");
+ 	offset.dump_to_pp (logger.get_printer (), true);
+ 	logger.end_log_line ();
+       }
+     logger.dec_indent ();
+   }
+ 
+   enum kind get_kind (region_offset offset) const
+   {
+     gcc_assert (m_all_offsets.find (offset) != m_all_offsets.end ());
+     if (m_hard_offsets.find (offset) != m_hard_offsets.end ())
+       return kind::HARD;
+     else
+       return kind::SOFT;
+   }
+ 
+   std::set<region_offset>::const_iterator begin () const
+   {
+     return m_all_offsets.begin ();
+   }
+   std::set<region_offset>::const_iterator end () const
+   {
+     return m_all_offsets.end ();
+   }
+   std::set<region_offset>::size_type size () const
+   {
+     return m_all_offsets.size ();
+   }
+ 
+   std::vector<region_offset>
+   get_hard_boundaries_in_range (byte_offset_t min_offset,
+ 				byte_offset_t max_offset) const
+   {
+     std::vector<region_offset> result;
+     for (auto &offset : m_hard_offsets)
+       {
+ 	if (!offset.concrete_p ())
+ 	  continue;
+ 	byte_offset_t byte;
+ 	if (!offset.get_concrete_byte_offset (&byte))
+ 	  continue;
+ 	if (byte < min_offset)
+ 	  continue;
+ 	if (byte > max_offset)
+ 	  continue;
+ 	result.push_back (offset);
+       }
+     return result;
+   }
+ 
+ private:
+   const region &m_base_reg;
+   logger *m_logger;
+   std::set<region_offset> m_all_offsets;
+   std::set<region_offset> m_hard_offsets;
+ };
+ 
+ /* A widget that wraps a table but offloads column-width calculation
+    to a shared object, so that we can vertically line up multiple tables
+    and have them all align their columns.
+ 
+    For example, in:
+ 
+    01| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    02| |[0]|[1]|[2]|[3]|[4]|[5]|   ...    |[440]|[441]|[442]|[443]|[444]|[445]|
+    03| +---+---+---+---+---+---+          +-----+-----+-----+-----+-----+-----+
+    04| |'L'|'o'|'r'|'e'|'m'|' '|          | 'o' | 'r' | 'u' | 'm' | '.' | NUL |
+    05| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    06| |                  string literal (type: 'char[446]')                  |
+    07| +----------------------------------------------------------------------+
+    08|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    09|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    10|   v   v   v   v   v   v  v  v    v    v     v     v     v     v     v
+    11|+---+---------------------+----++--------------------------------------+
+    12||[0]|         ...         |[99]||          after valid range           |
+    13|+---+---------------------+----+|                                      |
+    14||  'buf' (type: 'char[100]')   ||                                      |
+    15|+------------------------------++--------------------------------------+
+    16||~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~|
+    17|               |                                   |
+    18|     +---------+---------+              +----------+----------+
+    19|     |capacity: 100 bytes|              |overflow of 346 bytes|
+    20|     +-------------------+              +---------------------+
+ 
+    rows 01-07 and rows 11-15 are x_aligned_table_widget instances.  */
+ 
+ class x_aligned_table_widget : public leaf_widget
+ {
+ public:
+   x_aligned_table_widget (table t,
+ 			  const theme &theme,
+ 			  table_dimension_sizes &col_widths)
+   : m_table (std::move (t)),
+     m_theme (theme),
+     m_col_widths (col_widths),
+     m_row_heights (t.get_size ().h),
+     m_cell_sizes (m_col_widths, m_row_heights),
+     m_tg (m_table, m_cell_sizes)
+   {
+   }
+ 
+   const char *get_desc () const override
+   {
+     return "x_aligned_table_widget";
+   }
+ 
+   canvas::size_t calc_req_size () final override
+   {
+     /* We don't compute the size requirements;
+        the parent should have done this.  */
+     return m_tg.get_canvas_size ();
+   }
+ 
+   void paint_to_canvas (canvas &canvas) final override
+   {
+     m_table.paint_to_canvas (canvas,
+ 			     get_top_left (),
+ 			     m_tg,
+ 			     m_theme);
+   }
+ 
+   const table &get_table () const { return m_table; }
+   table_cell_sizes &get_cell_sizes () { return m_cell_sizes; }
+   void recalc_coords ()
+   {
+     m_tg.recalc_coords ();
+   }
+ 
+ private:
+   table m_table;
+   const theme &m_theme;
+   table_dimension_sizes &m_col_widths; // Reference to shared column widths
+   table_dimension_sizes m_row_heights; // Unique row heights
+   table_cell_sizes m_cell_sizes;
+   table_geometry m_tg;
+ };
+ 
+ /* A widget for printing arrows between the accessed region
+    and the svalue, showing the direction of the access.
+ 
+    For example, in:
+ 
+    01| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    02| |[0]|[1]|[2]|[3]|[4]|[5]|   ...    |[440]|[441]|[442]|[443]|[444]|[445]|
+    03| +---+---+---+---+---+---+          +-----+-----+-----+-----+-----+-----+
+    04| |'L'|'o'|'r'|'e'|'m'|' '|          | 'o' | 'r' | 'u' | 'm' | '.' | NUL |
+    05| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    06| |                  string literal (type: 'char[446]')                  |
+    07| +----------------------------------------------------------------------+
+    08|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    09|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    10|   v   v   v   v   v   v  v  v    v    v     v     v     v     v     v
+    11|+---+---------------------+----++--------------------------------------+
+    12||[0]|         ...         |[99]||          after valid range           |
+    13|+---+---------------------+----+|                                      |
+    14||  'buf' (type: 'char[100]')   ||                                      |
+    15|+------------------------------++--------------------------------------+
+    16||~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~|
+    17|               |                                   |
+    18|     +---------+---------+              +----------+----------+
+    19|     |capacity: 100 bytes|              |overflow of 346 bytes|
+    20|     +-------------------+              +---------------------+
+ 
+    rows 8-10 are the direction widget.  */
+ 
+ class direction_widget : public leaf_widget
+ {
+ public:
+   direction_widget (const access_diagram_impl &dia_impl,
+ 		    const bit_to_table_map &btm)
+   : leaf_widget (),
+     m_dia_impl (dia_impl),
+     m_btm (btm)
+   {
+   }
+   const char *get_desc () const override
+   {
+     return "direction_widget";
+   }
+   canvas::size_t calc_req_size () final override
+   {
+     /* Get our width from our siblings.  */
+     return canvas::size_t (0, 3);
+   }
+   void paint_to_canvas (canvas &canvas) final override;
+ 
+ private:
+   const access_diagram_impl &m_dia_impl;
+   const bit_to_table_map &m_btm;
+ };
+ 
+ /* A widget for adding an x_ruler to a diagram based on table columns,
+    offloading column-width calculation to shared objects, so that the ruler
+    lines up with other tables in the diagram.
+ 
+    For example, in:
+ 
+    01| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    02| |[0]|[1]|[2]|[3]|[4]|[5]|   ...    |[440]|[441]|[442]|[443]|[444]|[445]|
+    03| +---+---+---+---+---+---+          +-----+-----+-----+-----+-----+-----+
+    04| |'L'|'o'|'r'|'e'|'m'|' '|          | 'o' | 'r' | 'u' | 'm' | '.' | NUL |
+    05| +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+    06| |                  string literal (type: 'char[446]')                  |
+    07| +----------------------------------------------------------------------+
+    08|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    09|   |   |   |   |   |   |  |  |    |    |     |     |     |     |     |
+    10|   v   v   v   v   v   v  v  v    v    v     v     v     v     v     v
+    11|+---+---------------------+----++--------------------------------------+
+    12||[0]|         ...         |[99]||          after valid range           |
+    13|+---+---------------------+----+|                                      |
+    14||  'buf' (type: 'char[100]')   ||                                      |
+    15|+------------------------------++--------------------------------------+
+    16||~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~|
+    17|               |                                   |
+    18|     +---------+---------+              +----------+----------+
+    19|     |capacity: 100 bytes|              |overflow of 346 bytes|
+    20|     +-------------------+              +---------------------+
+ 
+    rows 16-20 are the x_aligned_x_ruler_widget.  */
+ 
+ class x_aligned_x_ruler_widget : public leaf_widget
+ {
+ public:
+   x_aligned_x_ruler_widget (const access_diagram_impl &dia_impl,
+ 			    const theme &theme)
+   : m_dia_impl (dia_impl),
+     m_theme (theme)
+   {
+   }
+ 
+   const char *get_desc () const override
+   {
+     return "x_aligned_ruler_widget";
+   }
+ 
+   void add_range (const table::range_t &x_range,
+ 		  styled_string text,
+ 		  style::id_t style_id)
+   {
+     m_labels.push_back (label (x_range, std::move (text), style_id));
+   }
+ 
+   canvas::size_t calc_req_size () final override
+   {
+     x_ruler r (make_x_ruler ());
+     return r.get_size ();
+   }
+ 
+   void paint_to_canvas (canvas &canvas) final override
+   {
+     x_ruler r (make_x_ruler ());
+     r.paint_to_canvas (canvas,
+ 		       get_top_left (),
+ 		       m_theme);
+   }
+ 
+ private:
+   struct label
+   {
+     label (const table::range_t &table_x_range,
+ 	   styled_string text,
+ 	   style::id_t style_id)
+     : m_table_x_range (table_x_range),
+       m_text (std::move (text)),
+       m_style_id (style_id)
+     {
+     }
+     table::range_t m_table_x_range;
+     styled_string m_text;
+     style::id_t m_style_id;
+   };
+ 
+   x_ruler make_x_ruler () const;
+ 
+   const access_diagram_impl &m_dia_impl;
+   const theme &m_theme;
+   std::vector<label> m_labels;
+ };
+ 
+ /* A two-way mapping between access_ranges and table columns, for use by
+    spatial_item subclasses for creating tables.
+    For example when visualizing a bogus access of 'int arr[10];'
+    at 'arr[10]', we might have:
+    - table column 0 is "bytes 0-3" (for arr[0])
+    - table column 1 is "bytes 4-35" (for arr[1] through arr[8])
+    - table column 2 is "bytes 36-39 (for arr[9])
+    - table column 3 is blank to emphasize a hard boundary between
+      valid/invalid accesses.
+    - table column 4 is "bytes 40-44" (for arr[10])
+ 
+    We store this as a pair of maps from region_offset to table x; in
+    the abvove example:
+ 
+      region offset          table_x  prev_table_x
+      bit 0 (aka byte 0)     0        (none)
+      bit 32 (aka byte 4)    1        0
+      bit 288 (aka byte 36)  2        1
+      bit 320 (aka byte 40)  4        2
+      bit 352 (aka byte 44)  (none)   (none)
+ 
+      so that e.g given the half-open byte range [0, 40)
+      we can determine the closed range of table x [0, 2].  */
+ 
+ class bit_to_table_map
+ {
+ public:
+   /* Populate m_table_x_for_bit and m_bit_for_table_x.  */
+   void populate (const boundaries &boundaries,
+ 		 region_model_manager &mgr,
+ 		 logger *logger)
+   {
+     LOG_SCOPE (logger);
+ 
+     int table_x = 0;
+     std::vector <region_offset> vec_boundaries (boundaries.begin (),
+ 						boundaries.end ());
+ 
+     /* Sort into an order that makes sense.  */
+     std::sort (vec_boundaries.begin (),
+ 	       vec_boundaries.end ());
+ 
+     if (logger)
+       {
+ 	logger->log ("vec_boundaries");
+ 	logger->inc_indent ();
+ 	for (unsigned idx = 0; idx < vec_boundaries.size (); idx++)
+ 	  {
+ 	    logger->start_log_line ();
+ 	    logger->log_partial ("idx: %i: ", idx);
+ 	    vec_boundaries[idx].dump_to_pp (logger->get_printer (), true);
+ 	    logger->end_log_line ();
+ 	  }
+ 	logger->dec_indent ();
+       }
+ 
+     for (size_t idx = 0; idx < vec_boundaries.size (); idx++)
+       {
+ 	const region_offset &offset = vec_boundaries[idx];
+ 	if (idx > 0 && (idx + 1) < vec_boundaries.size ())
+ 	  {
+ 	    if (boundaries.get_kind (offset) == boundaries::kind::HARD)
+ 	      table_x += 1;
+ 	  }
+ 	m_table_x_for_offset[offset] = table_x;
+ 	if ((idx + 1) < vec_boundaries.size ())
+ 	  {
+ 	    const region_offset &next_offset = vec_boundaries[idx + 1];
+ 	    m_table_x_for_prev_offset[next_offset] = table_x;
+ 	    m_range_for_table_x[table_x]
+ 	      = access_range (offset, next_offset, mgr);
+ 	  }
+ 	table_x += 1;
+       }
+     m_num_columns = table_x - 1;
+ 
+     if (logger)
+       log (*logger);
+   }
+ 
+   unsigned get_num_columns () const
+   {
+     return m_num_columns;
+   }
+ 
+   table::range_t get_table_x_for_range (const access_range &range) const
+   {
+     return table::range_t (get_table_x_for_offset (range.m_start),
+ 			   get_table_x_for_prev_offset (range.m_next) + 1);
+   }
+ 
+   table::rect_t get_table_rect (const access_range &range,
+ 				const int table_y, const int table_h) const
+   {
+     const table::range_t x_range (get_table_x_for_range (range));
+     return table::rect_t (table::coord_t (x_range.start, table_y),
+ 			  table::size_t (x_range.get_size (), table_h));
+   }
+ 
+   table::rect_t get_table_rect (const region *base_reg,
+ 				const bit_range &bits,
+ 				const int table_y, const int table_h) const
+   {
+     const access_range range (base_reg, bits);
+     return get_table_rect (range, table_y, table_h);
+   }
+ 
+   table::rect_t get_table_rect (const region *base_reg,
+ 				const byte_range &bytes,
+ 				const int table_y, const int table_h) const
+   {
+     return get_table_rect (base_reg, bytes.as_bit_range (), table_y, table_h);
+   }
+ 
+   bool maybe_get_access_range_for_table_x (int table_x,
+ 					   access_range *out) const
+   {
+     auto slot = m_range_for_table_x.find (table_x);
+     if (slot == m_range_for_table_x.end ())
+       return false;
+     *out = slot->second;
+     return true;
+   }
+ 
+   void log (logger &logger) const
+   {
+     logger.log ("table columns");
+     logger.inc_indent ();
+     for (unsigned table_x = 0; table_x < get_num_columns (); table_x++)
+       {
+ 	logger.start_log_line ();
+ 	logger.log_partial ("table_x: %i", table_x);
+ 	access_range range_for_column (NULL, bit_range (0, 0));
+ 	if (maybe_get_access_range_for_table_x (table_x, &range_for_column))
+ 	  {
+ 	    logger.log_partial (": range: ");
+ 	    range_for_column.dump_to_pp (logger.get_printer (), true);
+ 	  }
+ 	logger.end_log_line ();
+       }
+     logger.dec_indent ();
+   }
+ 
+   int get_table_x_for_offset (region_offset offset) const
+   {
+     auto slot = m_table_x_for_offset.find (offset);
+ 
+     /* If this fails, then we probably failed to fully populate m_boundaries
+        in find_boundaries.  */
+     gcc_assert (slot != m_table_x_for_offset.end ());
+ 
+     return slot->second;
+   }
+ 
+ private:
+   int get_table_x_for_prev_offset (region_offset offset) const
+   {
+     auto slot = m_table_x_for_prev_offset.find (offset);
+ 
+     /* If this fails, then we probably failed to fully populate m_boundaries
+        in find_boundaries.  */
+     gcc_assert (slot != m_table_x_for_prev_offset.end ());
+ 
+     return slot->second;
+   }
+ 
+   std::map<region_offset, int> m_table_x_for_offset;
+   std::map<region_offset, int> m_table_x_for_prev_offset;
+   std::map<int, access_range> m_range_for_table_x;
+   unsigned m_num_columns;
+ };
+ 
+ /* Base class for something in the diagram that participates
+    in two steps of diagram creation:
+    (a) populating a boundaries instance with the boundaries of interest
+    (b) creating a table instance for itself.
+ 
+    Offsets in the boundaries are all expressed relative to the base
+    region of the access_operation.  */
+ 
+ class spatial_item
+ {
+ public:
+   virtual ~spatial_item () {}
+   virtual void add_boundaries (boundaries &out, logger *) const = 0;
+ 
+   virtual table make_table (const bit_to_table_map &btm,
+ 			    style_manager &sm) const = 0;
+ };
+ 
+ /* A spatial_item that involves showing an svalue at a particular offset.  */
+ 
+ class svalue_spatial_item : public spatial_item
+ {
+ public:
+   enum class kind
+   {
+      WRITTEN,
+      EXISTING
+   };
+ protected:
+   svalue_spatial_item (const svalue &sval,
+ 		       access_range bits,
+ 		       enum kind kind)
+   : m_sval (sval), m_bits (bits), m_kind (kind)
+   {
+   }
+ 
+   const svalue &m_sval;
+   access_range m_bits;
+   enum kind m_kind;
+ };
+ 
+ static std::unique_ptr<spatial_item>
+ make_existing_svalue_spatial_item (const svalue *sval,
+ 				   const access_range &bits,
+ 				   const theme &theme);
+ 
+ class compound_svalue_spatial_item : public svalue_spatial_item
+ {
+ public:
+   compound_svalue_spatial_item (const compound_svalue &sval,
+ 				const access_range &bits,
+ 				enum kind kind,
+ 				const theme &theme)
+   : svalue_spatial_item (sval, bits, kind),
+     m_compound_sval (sval)
+   {
+     const binding_map &map = m_compound_sval.get_map ();
+     auto_vec <const binding_key *> binding_keys;
+     for (auto iter : map)
+       {
+ 	const binding_key *key = iter.first;
+ 	const svalue *bound_sval = iter.second;
+ 	if (const concrete_binding *concrete_key
+ 	      = key->dyn_cast_concrete_binding ())
+ 	  {
+ 	    access_range range (nullptr,
+ 				concrete_key->get_bit_range ());
+ 	    if (std::unique_ptr<spatial_item> child
+ 		  = make_existing_svalue_spatial_item (bound_sval,
+ 						       range,
+ 						       theme))
+ 	      m_children.push_back (std::move (child));
+ 	  }
+       }
+   }
+ 
+   void add_boundaries (boundaries &out, logger *logger) const final override
+   {
+     LOG_SCOPE (logger);
+     for (auto &iter : m_children)
+       iter->add_boundaries (out, logger);
+   }
+ 
+   table make_table (const bit_to_table_map &btm,
+ 		    style_manager &sm) const final override
+   {
+     std::vector<table> child_tables;
+     int max_rows = 0;
+     for (auto &iter : m_children)
+       {
+ 	table child_table (iter->make_table (btm, sm));
+ 	max_rows = MAX (max_rows, child_table.get_size ().h);
+ 	child_tables.push_back (std::move (child_table));
+       }
+     table t (table::size_t (btm.get_num_columns (), max_rows));
+     for (auto &&child_table : child_tables)
+       t.add_other_table (std::move (child_table),
+ 			 table::coord_t (0, 0));
+     return t;
+   }
+ 
+ private:
+   const compound_svalue &m_compound_sval;
+   std::vector<std::unique_ptr<spatial_item>> m_children;
+ };
+ 
+ /* Loop through the TABLE_X_RANGE columns of T, adding
+    cells containing "..." in any unoccupied ranges of table cell.  */
+ 
+ static void
+ add_ellipsis_to_gaps (table &t,
+ 		      style_manager &sm,
+ 		      const table::range_t &table_x_range,
+ 		      const table::range_t &table_y_range)
+ {
+   int table_x = table_x_range.get_min ();
+   while (table_x < table_x_range.get_next ())
+     {
+       /* Find a run of unoccupied table cells.  */
+       const int start_table_x = table_x;
+       while (table_x < table_x_range.get_next ()
+ 	     && !t.get_placement_at (table::coord_t (table_x,
+ 						     table_y_range.get_min ())))
+ 	table_x++;
+       const table::range_t unoccupied_x_range (start_table_x, table_x);
+       if (unoccupied_x_range.get_size () > 0)
+ 	t.set_cell_span (table::rect_t (unoccupied_x_range, table_y_range),
+ 			 styled_string (sm, "..."));
+       /* Skip occupied table cells.  */
+       while (table_x < table_x_range.get_next ()
+ 	     && t.get_placement_at (table::coord_t (table_x,
+ 						    table_y_range.get_min ())))
+ 	table_x++;
+     }
+ }
+ 
+ /* Subclass of spatial_item for visualizing the region of memory
+    that's valid to access relative to the base region of region accessed in
+    the operation.  */
+ 
+ class valid_region_spatial_item : public spatial_item
+ {
+ public:
+   valid_region_spatial_item (const access_operation &op,
+ 			     diagnostic_event_id_t region_creation_event_id,
+ 			     const theme &theme)
+   : m_op (op),
+     m_region_creation_event_id (region_creation_event_id),
+     m_boundaries (nullptr),
+     m_existing_sval (op.m_model.get_store_value (op.m_base_region, nullptr)),
+     m_existing_sval_spatial_item
+       (make_existing_svalue_spatial_item (m_existing_sval,
+ 					  op.get_valid_bits (),
+ 					  theme))
+   {
+   }
+ 
+   void add_boundaries (boundaries &out, logger *logger) const final override
+   {
+     LOG_SCOPE (logger);
+     m_boundaries = &out;
+     access_range valid_bits = m_op.get_valid_bits ();
+     if (logger)
+       {
+ 	logger->start_log_line ();
+ 	logger->log_partial ("valid bits: ");
+ 	valid_bits.dump_to_pp (logger->get_printer (), true);
+ 	logger->end_log_line ();
+       }
+     out.add (valid_bits, boundaries::kind::HARD);
+ 
+     if (m_existing_sval_spatial_item)
+       {
+ 	if (logger)
+ 	  {
+ 	    logger->start_log_line ();
+ 	    logger->log_partial ("existing svalue: ");
+ 	    m_existing_sval->dump_to_pp (logger->get_printer (), true);
+ 	    logger->end_log_line ();
+ 	  }
+ 	m_existing_sval_spatial_item->add_boundaries (out, logger);
+       }
+ 
+     /* Support for showing first and final element in array types.  */
+     if (tree base_type = m_op.m_base_region->get_type ())
+       if (TREE_CODE (base_type) == ARRAY_TYPE)
+ 	{
+ 	  if (logger)
+ 	    logger->log ("showing first and final element in array type");
+ 	  region_model_manager *mgr = m_op.m_model.get_manager ();
+ 	  tree domain = TYPE_DOMAIN (base_type);
+ 	  if (domain && TYPE_MIN_VALUE (domain) && TYPE_MAX_VALUE (domain))
+ 	    {
+ 	      const svalue *min_idx_sval
+ 		= mgr->get_or_create_constant_svalue (TYPE_MIN_VALUE (domain));
+ 	      const svalue *max_idx_sval
+ 		= mgr->get_or_create_constant_svalue (TYPE_MAX_VALUE (domain));
+ 	      const region *min_element =
+ 		mgr->get_element_region (m_op.m_base_region,
+ 					 TREE_TYPE (base_type),
+ 					 min_idx_sval);
+ 	      out.add (*min_element, mgr, boundaries::kind::SOFT);
+ 	      const region *max_element =
+ 		mgr->get_element_region (m_op.m_base_region,
+ 					 TREE_TYPE (base_type),
+ 					 max_idx_sval);
+ 	      out.add (*max_element, mgr, boundaries::kind::SOFT);
+ 	    }
+ 	}
+   }
+ 
+   /* Subroutine of make_table when base region has ARRAY_TYPE.  */
+   void add_array_elements_to_table (table &t,
+ 				    const bit_to_table_map &btm,
+ 				    style_manager &sm) const
+   {
+     tree base_type = m_op.m_base_region->get_type ();
+     gcc_assert (TREE_CODE (base_type) == ARRAY_TYPE);
+     gcc_assert (m_boundaries != nullptr);
+ 
+     tree domain = TYPE_DOMAIN (base_type);
+     if (!(domain && TYPE_MIN_VALUE (domain) && TYPE_MAX_VALUE (domain)))
+       return;
+ 
+     const int table_y = 0;
+     const int table_h = 1;
+     const table::range_t table_y_range (table_y, table_y + table_h);
+ 
+     t.add_row ();
+ 
+     const table::range_t min_x_range
+       = maybe_add_array_index_to_table (t, btm, sm, table_y_range,
+ 					TYPE_MIN_VALUE (domain));
+     const table::range_t max_x_range
+       = maybe_add_array_index_to_table (t, btm, sm, table_y_range,
+ 					TYPE_MAX_VALUE (domain));
+ 
+     if (TREE_TYPE (base_type) == char_type_node)
+       {
+ 	/* For a char array,: if there are any hard boundaries in
+ 	   m_boundaries that are *within* the valid region,
+ 	   then show those index values.  */
+ 	std::vector<region_offset> hard_boundaries
+ 	  = m_boundaries->get_hard_boundaries_in_range
+ 	      (tree_to_shwi (TYPE_MIN_VALUE (domain)),
+ 	       tree_to_shwi (TYPE_MAX_VALUE (domain)));
+ 	for (auto &offset : hard_boundaries)
+ 	  {
+ 	    const int table_x = btm.get_table_x_for_offset (offset);
+ 	    if (!offset.concrete_p ())
+ 	      continue;
+ 	    byte_offset_t byte;
+ 	    if (!offset.get_concrete_byte_offset (&byte))
+ 	      continue;
+ 	    table::range_t table_x_range (table_x, table_x + 1);
+ 	    t.maybe_set_cell_span (table::rect_t (table_x_range,
+ 						  table_y_range),
+ 				   fmt_styled_string (sm, "[%wi]",
+ 						      byte.to_shwi ()));
+ 	  }
+       }
+ 
+     add_ellipsis_to_gaps (t, sm,
+ 			  table::range_t (min_x_range.get_next (),
+ 					  max_x_range.get_min ()),
+ 			  table_y_range);
+   }
+ 
+   table::range_t
+   maybe_add_array_index_to_table (table &t,
+ 				  const bit_to_table_map &btm,
+ 				  style_manager &sm,
+ 				  const table::range_t table_y_range,
+ 				  tree idx_cst) const
+   {
+     region_model_manager * const mgr = m_op.get_manager ();
+     tree base_type = m_op.m_base_region->get_type ();
+     const svalue *idx_sval
+       = mgr->get_or_create_constant_svalue (idx_cst);
+     const region *element_reg = mgr->get_element_region (m_op.m_base_region,
+ 							 TREE_TYPE (base_type),
+ 							 idx_sval);
+     const access_range element_range (*element_reg, mgr);
+     const table::range_t element_x_range
+       = btm.get_table_x_for_range (element_range);
+ 
+     t.maybe_set_cell_span (table::rect_t (element_x_range,
+ 					  table_y_range),
+ 			   fmt_styled_string (sm, "[%E]", idx_cst));
+ 
+     return element_x_range;
+   }
+ 
+   table make_table (const bit_to_table_map &btm,
+ 		    style_manager &sm) const final override
+   {
+     table t (table::size_t (btm.get_num_columns (), 0));
+ 
+     if (tree base_type = m_op.m_base_region->get_type ())
+       if (TREE_CODE (base_type) == ARRAY_TYPE)
+ 	add_array_elements_to_table (t, btm, sm);
+ 
+     /* Make use of m_existing_sval_spatial_item, if any.  */
+     if (m_existing_sval_spatial_item)
+       {
+ 	table table_for_existing
+ 	  = m_existing_sval_spatial_item->make_table (btm, sm);
+ 	const int table_y = t.add_rows (table_for_existing.get_size ().h);
+ 	t.add_other_table (std::move (table_for_existing),
+ 			   table::coord_t (0, table_y));
+       }
+ 
+     access_range valid_bits = m_op.get_valid_bits ();
+     const int table_y = t.add_row ();
+     const int table_h = 1;
+     table::rect_t rect = btm.get_table_rect (valid_bits, table_y, table_h);
+     styled_string s;
+     switch (m_op.m_base_region->get_kind ())
+       {
+       default:
+ 	s = styled_string (sm, _("region"));
+ 	break;
+       case RK_DECL:
+ 	{
+ 	  const decl_region *decl_reg
+ 	    = as_a <const decl_region *> (m_op.m_base_region);
+ 	  tree decl = decl_reg->get_decl ();
+ 	  s = fmt_styled_string (sm, "%qE (type: %qT)",
+ 				 decl,
+ 				 TREE_TYPE (decl));
+ 	}
+ 	break;
+       case RK_HEAP_ALLOCATED:
+ 	{
+ 	  if (m_region_creation_event_id.known_p ())
+ 	    s = fmt_styled_string (sm, _("buffer allocated on heap at %@"),
+ 				   &m_region_creation_event_id);
+ 	  else
+ 	    s = styled_string (sm, _("heap-allocated buffer"));
+ 	}
+ 	break;
+       case RK_ALLOCA:
+ 	{
+ 	  if (m_region_creation_event_id.known_p ())
+ 	    s = fmt_styled_string (sm, _("buffer allocated on stack at %@"),
+ 				   &m_region_creation_event_id);
+ 	  else
+ 	    s = styled_string (sm, _("stack-allocated buffer"));
+ 	}
+ 	break;
+       case RK_STRING:
+ 	{
+ 	  const string_region *string_reg
+ 	    = as_a <const string_region *> (m_op.m_base_region);
+ 	  tree string_cst = string_reg->get_string_cst ();
+ 	  s = fmt_styled_string (sm, _("string literal (type: %qT)"),
+ 				 TREE_TYPE (string_cst));
+ 	}
+ 	break;
+       }
+     t.set_cell_span (rect, std::move (s));
+ 
+     return t;
+   }
+ 
+ private:
+   const access_operation &m_op;
+   diagnostic_event_id_t m_region_creation_event_id;
+   mutable const boundaries *m_boundaries;
+   const svalue *m_existing_sval;
+   std::unique_ptr<spatial_item> m_existing_sval_spatial_item;
+ };
+ 
+ /* Subclass of spatial_item for visualizing the region of memory
+    that's actually accessed by the read or write, for reads and
+    for write cases where we don't know the svalue written.  */
+ 
+ class accessed_region_spatial_item : public spatial_item
+ {
+ public:
+   accessed_region_spatial_item (const access_operation &op) : m_op (op) {}
+ 
+   void add_boundaries (boundaries &out, logger *logger) const final override
+   {
+     LOG_SCOPE (logger);
+     access_range actual_bits = m_op.get_actual_bits ();
+     if (logger)
+       {
+ 	logger->start_log_line ();
+ 	logger->log_partial ("actual bits: ");
+ 	actual_bits.dump_to_pp (logger->get_printer (), true);
+ 	logger->end_log_line ();
+       }
+     out.add (actual_bits, boundaries::kind::HARD);
+   }
+ 
+   table make_table (const bit_to_table_map &btm,
+ 		    style_manager &sm) const final override
+   {
+     table t (table::size_t (btm.get_num_columns (), 1));
+ 
+     access_range actual_bits = m_op.get_actual_bits ();
+     const int table_y = 0;
+     const int table_h = 1;
+     table::rect_t rect = btm.get_table_rect (actual_bits, table_y, table_h);
+     t.set_cell_span (rect, styled_string (get_label_string (sm)));
+ 
+     return t;
+   }
+ 
+ private:
+   styled_string get_label_string (style_manager &sm) const
+   {
+     const access_range accessed_bits (m_op.get_actual_bits ());
+     return get_access_size_str (sm,
+ 				m_op,
+ 				accessed_bits,
+ 				m_op.m_reg.get_type ());
+   }
+ 
+   const access_operation &m_op;
+ };
+ 
+ /* Subclass of spatial_item for when we know the svalue being written
+    to the accessed region.
+    Can be subclassed to give visualizations of specific kinds of svalue.  */
+ 
+ class written_svalue_spatial_item : public spatial_item
+ {
+ public:
+   written_svalue_spatial_item (const access_operation &op,
+ 		       const svalue &sval,
+ 		       access_range actual_bits)
+   : m_op (op), m_sval (sval), m_actual_bits (actual_bits)
+   {}
+ 
+   void add_boundaries (boundaries &out, logger *logger) const override
+   {
+     LOG_SCOPE (logger);
+     out.add (m_actual_bits, boundaries::kind::HARD);
+   }
+ 
+   table make_table (const bit_to_table_map &btm,
+ 		    style_manager &sm) const override
+   {
+     table t (table::size_t (btm.get_num_columns (), 0));
+ 
+     const int table_y = t.add_row ();
+     const int table_h = 1;
+     table::rect_t rect = btm.get_table_rect (m_actual_bits, table_y, table_h);
+     t.set_cell_span (rect, styled_string (get_label_string (sm)));
+     return t;
+   }
+ 
+ protected:
+   styled_string get_label_string (style_manager &sm) const
+   {
+     tree rep_tree = m_op.m_model.get_representative_tree (&m_sval);
+     if (rep_tree)
+       {
+ 	if (TREE_CODE (rep_tree) == SSA_NAME)
+ 	  rep_tree = SSA_NAME_VAR (rep_tree);
+ 	switch (TREE_CODE (rep_tree))
+ 	  {
+ 	  default:
+ 	    break;
+ 	  case INTEGER_CST:
+ 	    return fmt_styled_string (sm, _("write of %<(%T) %E%>"),
+ 				      TREE_TYPE (rep_tree),
+ 				      rep_tree);
+ 
+ 	  case PARM_DECL:
+ 	  case VAR_DECL:
+ 	    return fmt_styled_string (sm, _("write from %qE (type: %qT)"),
+ 				      rep_tree,
+ 				      TREE_TYPE (rep_tree));
+ 	    break;
+ 	  }
+ 	}
+ 
+     const access_range accessed_bits (m_op.get_actual_bits ());
+     return get_access_size_str (sm,
+ 				m_op,
+ 				accessed_bits,
+ 				m_sval.get_type ());
+   }
+ 
+   const access_operation &m_op;
+   const svalue &m_sval;
+   access_range m_actual_bits;
+ };
+ 
+ /* Subclass of svalue_spatial_item for initial_svalue of a string_region
+    i.e. for string literals.
+ 
+    There are three cases:
+    (a) for long strings, show just the head and tail of the string,
+    with an ellipsis:
+      +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+      |[0]|[1]|[2]|[3]|[4]|[5]|          |[440]|[441]|[442]|[443]|[444]|[445]|
+      +---+---+---+---+---+---+   ...    +-----+-----+-----+-----+-----+-----+
+      |‘L’|‘o’|‘r’|‘e’|‘m’|‘ ’|          | ‘o’ | ‘r’ | ‘u’ | ‘m’ | ‘.’ | NUL |
+      +---+---+---+---+---+---+----------+-----+-----+-----+-----+-----+-----+
+      |                  string literal (type: ‘char[446]’)                  |
+      +----------------------------------------------------------------------+
+    (b) For sufficiently short strings, show the full string:
+      +----------+---------+---------+---------+---------+ +-----------------+
+      |   [0]    |   [1]   |   [2]   |   [3]   |   [4]   | |       [5]       |
+      +----------+---------+---------+---------+---------+ +-----------------+
+      |   ‘h’    |   ‘e’   |   ‘l’   |   ‘l’   |   ‘o’   | |       NUL       |
+      +----------+---------+---------+---------+---------+-+-----------------+
+      |                   string literal (type: ‘char[6]’)                   |
+      +----------------------------------------------------------------------+
+    (c) for non-ASCII strings that are short enough to show the full string,
+    show how unicode code points of the bytes decoded as UTF-8:
+      +-----+-----+-----+----+----++----+----+----+----+----+----+----+------+
+      | [0] | [1] | [2] |[3] |[4] ||[5] |[6] |[7] |[8] |[9] |[10]|[11]| [12] |
+      +-----+-----+-----+----+----++----+----+----+----+----+----+----+------+
+      |0xe6 |0x96 |0x87 |0xe5|0xad||0x97|0xe5|0x8c|0x96|0xe3|0x81|0x91| 0x00 |
+      +-----+-----+-----+----+----++----+----+----+----+----+----+----+------+
+      |     U+6587      |    U+5b57     |    U+5316    |    U+3051    |U+0000|
+      +-----------------+---------------+--------------+--------------+------+
+      |                  string literal (type: ‘char[13]’)                   |
+      +----------------------------------------------------------------------+
+    and show the characters themselves if unicode is supported and they are not
+    control characters:
+      ┌─────┬─────┬─────┬────┬────┐┌────┬────┬────┬────┬────┬────┬────┬──────┐
+      │ [0] │ [1] │ [2] │[3] │[4] ││[5] │[6] │[7] │[8] │[9] │[10]│[11]│ [12] │
+      ├─────┼─────┼─────┼────┼────┤├────┼────┼────┼────┼────┼────┼────┼──────┤
+      │0xe6 │0x96 │0x87 │0xe5│0xad││0x97│0xe5│0x8c│0x96│0xe3│0x81│0x91│ 0x00 │
+      ├─────┴─────┴─────┼────┴────┴┴────┼────┴────┴────┼────┴────┴────┼──────┤
+      │     U+6587      │    U+5b57     │    U+5316    │    U+3051    │U+0000│
+      ├─────────────────┼───────────────┼──────────────┼──────────────┼──────┤
+      │       文        │      字       │      化      │      け      │ NUL  │
+      ├─────────────────┴───────────────┴──────────────┴──────────────┴──────┤
+      │                  string literal (type: ‘char[13]’)                   │
+      └──────────────────────────────────────────────────────────────────────┘
+ */
+ 
+ class string_literal_spatial_item : public svalue_spatial_item
+ {
+ public:
+   string_literal_spatial_item (const svalue &sval,
+ 			       access_range actual_bits,
+ 			       const string_region &string_reg,
+ 			       const theme &theme,
+ 			       enum kind kind)
+   : svalue_spatial_item (sval, actual_bits, kind),
+     m_string_reg (string_reg),
+     m_theme (theme),
+     m_ellipsis_threshold (param_analyzer_text_art_string_ellipsis_threshold),
+     m_ellipsis_head_len (param_analyzer_text_art_string_ellipsis_head_len),
+     m_ellipsis_tail_len (param_analyzer_text_art_string_ellipsis_tail_len),
+     m_show_full_string (calc_show_full_string ()),
+     m_show_utf8 (m_show_full_string && !pure_ascii_p ())
+   {
+   }
+ 
+   void add_boundaries (boundaries &out, logger *logger) const override
+   {
+     LOG_SCOPE (logger);
+     out.add (m_bits, m_kind == svalue_spatial_item::kind::WRITTEN
+ 	     ? boundaries::kind::HARD
+ 	     : boundaries::kind::SOFT);
+ 
+     tree string_cst = get_string_cst ();
+     /* TREE_STRING_LENGTH is sizeof, not strlen.  */
+     if (m_show_full_string)
+       out.add_all_bytes_in_range (m_bits);
+     else
+       {
+ 	byte_range bytes (0, 0);
+ 	bool valid = m_bits.as_concrete_byte_range (&bytes);
+ 	gcc_assert (valid);
+ 	byte_range head_of_string (bytes.get_start_byte_offset (),
+ 				   m_ellipsis_head_len);
+ 	out.add_all_bytes_in_range (head_of_string);
+ 	byte_range tail_of_string
+ 	  ((bytes.get_start_byte_offset ()
+ 	    + TREE_STRING_LENGTH (string_cst)
+ 	    - m_ellipsis_tail_len),
+ 	   m_ellipsis_tail_len);
+ 	out.add_all_bytes_in_range (tail_of_string);
+ 	/* Adding the above pair of ranges will also effectively add
+ 	   the boundaries of the range of ellipsized chars, as they're
+ 	   exactly in between head_of_string and tail_of_string.  */
+       }
+   }
+ 
+   table make_table (const bit_to_table_map &btm,
+ 		    style_manager &sm) const override
+   {
+     table t (table::size_t (btm.get_num_columns (), 0));
+ 
+     const int byte_idx_table_y = (m_kind == svalue_spatial_item::kind::WRITTEN
+ 				  ? t.add_row ()
+ 				  : -1);
+     const int byte_val_table_y = t.add_row ();
+ 
+     byte_range bytes (0, 0);
+     bool valid = m_bits.as_concrete_byte_range (&bytes);
+     gcc_assert (valid);
+     tree string_cst = get_string_cst ();
+     if (m_show_full_string)
+       {
+        for (byte_offset_t byte_idx_within_cluster
+ 	      = bytes.get_start_byte_offset ();
+ 	    byte_idx_within_cluster < bytes.get_next_byte_offset ();
+ 	    byte_idx_within_cluster = byte_idx_within_cluster + 1)
+ 	 add_column_for_byte
+ 	   (t, btm, sm, byte_idx_within_cluster,
+ 	    byte_idx_within_cluster - bytes.get_start_byte_offset (),
+ 	    byte_idx_table_y, byte_val_table_y);
+ 
+        if (m_show_utf8)
+ 	 {
+ 	   const bool show_unichars = m_theme.unicode_p ();
+ 	   const int utf8_code_point_table_y = t.add_row ();
+ 	   int utf8_character_table_y;
+ 	   if (show_unichars)
+ 	     utf8_character_table_y = t.add_row ();
+ 
+ 	   /* We don't actually want the display widths here, but
+ 	      it's an easy way to decode UTF-8.  */
+ 	   cpp_char_column_policy policy (8, cpp_wcwidth);
+ 	   cpp_display_width_computation dw (TREE_STRING_POINTER (string_cst),
+ 					     TREE_STRING_LENGTH (string_cst),
+ 					     policy);
+ 	   while (!dw.done ())
+ 	     {
+ 	       cpp_decoded_char decoded_char;
+ 	       dw.process_next_codepoint (&decoded_char);
+ 
+ 	       if (!decoded_char.m_valid_ch)
+ 		 continue;
+ 	       size_t start_byte_idx
+ 		 = decoded_char.m_start_byte - TREE_STRING_POINTER (string_cst);
+ 	       byte_size_t size_in_bytes
+ 		 = decoded_char.m_next_byte - decoded_char.m_start_byte;
+ 	       byte_range cluster_bytes_for_codepoint
+ 		 (start_byte_idx + bytes.get_start_byte_offset (),
+ 		  size_in_bytes);
+ 
+ 	       const table::rect_t code_point_table_rect
+ 		 = btm.get_table_rect (&m_string_reg,
+ 				       cluster_bytes_for_codepoint,
+ 				       utf8_code_point_table_y, 1);
+ 	       char buf[100];
+ 	       sprintf (buf, "U+%04x", decoded_char.m_ch);
+ 	       t.set_cell_span (code_point_table_rect,
+ 				styled_string (sm, buf));
+ 
+ 	       if (show_unichars)
+ 		 {
+ 		   const table::rect_t character_table_rect
+ 		     = btm.get_table_rect (&m_string_reg,
+ 					   cluster_bytes_for_codepoint,
+ 					   utf8_character_table_y, 1);
+ 		   if (cpp_is_printable_char (decoded_char.m_ch))
+ 		     t.set_cell_span (character_table_rect,
+ 				      styled_string (decoded_char.m_ch));
+ 		   else if (decoded_char.m_ch == 0)
+ 		     t.set_cell_span (character_table_rect,
+ 				      styled_string (sm, "NUL"));
+ 		   else
+ 		     t.set_cell_span (character_table_rect,
+ 				      styled_string (sm, ""));
+ 		 }
+ 	     }
+ 	 }
+       }
+     else
+       {
+ 	/* Head of string.  */
+ 	for (int byte_idx = 0; byte_idx < m_ellipsis_head_len; byte_idx++)
+ 	  add_column_for_byte (t, btm, sm,
+ 			       byte_idx + bytes.get_start_byte_offset (),
+ 			       byte_idx,
+ 			       byte_idx_table_y, byte_val_table_y);
+ 
+ 	/* Ellipsis.  */
+ 	const byte_range ellipsis_bytes
+ 	  (m_ellipsis_head_len + bytes.get_start_byte_offset (),
+ 	   TREE_STRING_LENGTH (string_cst)
+ 	   - (m_ellipsis_head_len + m_ellipsis_tail_len));
+ 	const table::rect_t table_rect
+ 	  = ((byte_idx_table_y != -1)
+ 	     ? btm.get_table_rect (&m_string_reg, ellipsis_bytes,
+ 				   byte_idx_table_y, 2)
+ 	     : btm.get_table_rect (&m_string_reg, ellipsis_bytes,
+ 				   byte_val_table_y, 1));
+ 	t.set_cell_span(table_rect, styled_string (sm, "..."));
+ 
+ 	/* Tail of string.  */
+ 	for (int byte_idx
+ 	       = (TREE_STRING_LENGTH (string_cst) - m_ellipsis_tail_len);
+ 	     byte_idx < TREE_STRING_LENGTH (string_cst);
+ 	     byte_idx++)
+ 	  add_column_for_byte (t, btm, sm,
+ 			       byte_idx + bytes.get_start_byte_offset (),
+ 			       byte_idx,
+ 			       byte_idx_table_y, byte_val_table_y);
+       }
+ 
+     if (m_kind == svalue_spatial_item::kind::WRITTEN)
+       {
+ 	const int summary_table_y = t.add_row ();
+ 	t.set_cell_span (btm.get_table_rect (&m_string_reg, bytes,
+ 					     summary_table_y, 1),
+ 			 fmt_styled_string (sm,
+ 					    _("string literal (type: %qT)"),
+ 					    TREE_TYPE (string_cst)));
+       }
+ 
+     return t;
+   }
+ 
+   tree get_string_cst () const { return m_string_reg.get_string_cst (); }
+ 
+ private:
+   bool calc_show_full_string () const
+   {
+     tree string_cst = get_string_cst ();
+     if (TREE_STRING_LENGTH (string_cst) < m_ellipsis_threshold)
+       return true;
+     if (TREE_STRING_LENGTH (string_cst) <
+ 	(m_ellipsis_head_len + m_ellipsis_tail_len))
+       return true;
+     return false;
+   }
+ 
+   bool pure_ascii_p () const
+   {
+     tree string_cst = get_string_cst ();
+     for (unsigned byte_idx = 0;
+ 	 byte_idx < (unsigned) TREE_STRING_LENGTH (string_cst);
+ 	 byte_idx++)
+       {
+ 	unsigned char ch = TREE_STRING_POINTER (string_cst)[byte_idx];
+ 	if (ch >= 0x80)
+ 	  return false;
+       }
+     return true;
+   }
+ 
+   void add_column_for_byte (table &t, const bit_to_table_map &btm,
+ 			    style_manager &sm,
+ 			    const byte_offset_t byte_idx_within_cluster,
+ 			    const byte_offset_t byte_idx_within_string,
+ 			    const int byte_idx_table_y,
+ 			    const int byte_val_table_y) const
+   {
+     tree string_cst = get_string_cst ();
+     gcc_assert (byte_idx_within_string >= 0);
+     gcc_assert (byte_idx_within_string < TREE_STRING_LENGTH (string_cst));
+ 
+     const byte_range bytes (byte_idx_within_cluster, 1);
+     if (byte_idx_table_y != -1)
+       {
+ 	const table::rect_t idx_table_rect
+ 	  = btm.get_table_rect (&m_string_reg, bytes, byte_idx_table_y, 1);
+ 	t.set_cell_span (idx_table_rect,
+ 			 fmt_styled_string (sm, "[%wu]",
+ 					    byte_idx_within_string.ulow ()));
+       }
+ 
+     char byte_val
+       = TREE_STRING_POINTER (string_cst)[byte_idx_within_string.ulow ()];
+     const table::rect_t val_table_rect
+       = btm.get_table_rect (&m_string_reg, bytes, byte_val_table_y, 1);
+     table_cell_content content (make_cell_content_for_byte (sm, byte_val));
+     t.set_cell_span (val_table_rect, std::move (content));
+   }
+ 
+   table_cell_content make_cell_content_for_byte (style_manager &sm,
+ 						 unsigned char byte_val) const
+   {
+     if (!m_show_utf8)
+        {
+ 	if (byte_val == '\0')
+ 	  return styled_string (sm, "NUL");
+ 	else if (byte_val < 0x80)
+ 	  if (ISPRINT (byte_val))
+ 	    return fmt_styled_string (sm, "%qc", byte_val);
+        }
+     char buf[100];
+     sprintf (buf, "0x%02x", byte_val);
+     return styled_string (sm, buf);
+   }
+ 
+   const string_region &m_string_reg;
+   const theme &m_theme;
+   const int m_ellipsis_threshold;
+   const int m_ellipsis_head_len;
+   const int m_ellipsis_tail_len;
+   const bool m_show_full_string;
+   const bool m_show_utf8;
+ };
+ 
+ static std::unique_ptr<spatial_item>
+ make_written_svalue_spatial_item (const access_operation &op,
+ 				  const svalue &sval,
+ 				  access_range actual_bits,
+ 				  const theme &theme)
+ {
+   if (const initial_svalue *initial_sval = sval.dyn_cast_initial_svalue ())
+     if (const string_region *string_reg
+ 	= initial_sval->get_region ()->dyn_cast_string_region ())
+       return make_unique <string_literal_spatial_item>
+ 	(sval, actual_bits,
+ 	 *string_reg, theme,
+ 	 svalue_spatial_item::kind::WRITTEN);
+   return make_unique <written_svalue_spatial_item> (op, sval, actual_bits);
+ }
+ 
+ static std::unique_ptr<spatial_item>
+ make_existing_svalue_spatial_item (const svalue *sval,
+ 				   const access_range &bits,
+ 				   const theme &theme)
+ {
+   if (!sval)
+     return nullptr;
+ 
+   switch (sval->get_kind ())
+     {
+     default:
+       return nullptr;
+ 
+     case SK_INITIAL:
+       {
+ 	const initial_svalue *initial_sval = (const initial_svalue *)sval;
+ 	if (const string_region *string_reg
+ 	    = initial_sval->get_region ()->dyn_cast_string_region ())
+ 	  return make_unique <string_literal_spatial_item>
+ 	    (*sval, bits,
+ 	     *string_reg, theme,
+ 	     svalue_spatial_item::kind::EXISTING);
+ 	return nullptr;
+       }
+ 
+     case SK_COMPOUND:
+       return make_unique<compound_svalue_spatial_item>
+ 	(*((const compound_svalue *)sval),
+ 	 bits,
+ 	 svalue_spatial_item::kind::EXISTING,
+ 	 theme);
+     }
+ }
+ 
+ /* Widget subclass implementing access diagrams.  */
+ 
+ class access_diagram_impl : public vbox_widget
+ {
+ public:
+   access_diagram_impl (const access_operation &op,
+ 		       diagnostic_event_id_t region_creation_event_id,
+ 		       style_manager &sm,
+ 		       const theme &theme,
+ 		       logger *logger)
+   : m_op (op),
+     m_region_creation_event_id (region_creation_event_id),
+     m_sm (sm),
+     m_theme (theme),
+     m_logger (logger),
+     m_invalid (false),
+     m_valid_region_spatial_item (op, region_creation_event_id, theme),
+     m_accessed_region_spatial_item (op),
+     m_btm (),
+     m_calc_req_size_called (false)
+   {
+     LOG_SCOPE (logger);
+ 
+     if (logger)
+       {
+ 	access_range invalid_before_bits;
+ 	if (op.maybe_get_invalid_before_bits (&invalid_before_bits))
+ 	  invalid_before_bits.log ("invalid before range", *logger);
+ 	access_range invalid_after_bits;
+ 	if (op.maybe_get_invalid_after_bits (&invalid_after_bits))
+ 	  invalid_after_bits.log ("invalid after range", *logger);
+ 
+ 	if (op.m_sval_hint)
+ 	  {
+ 	    logger->start_log_line ();
+ 	    logger->log_partial ("sval_hint: ");
+ 	    op.m_sval_hint->dump_to_pp (logger->get_printer (), true);
+ 	    logger->end_log_line ();
+ 	  }
+       }
+ 
+     /* Register painting styles.  */
+     {
+       style valid_style (get_style_from_color_cap_name ("valid"));
+       m_valid_style_id = m_sm.get_or_create_id (valid_style);
+ 
+       style invalid_style (get_style_from_color_cap_name ("invalid"));
+       m_invalid_style_id = m_sm.get_or_create_id (invalid_style);
+     }
+ 
+     if (op.m_sval_hint)
+       {
+ 	access_range actual_bits = m_op.get_actual_bits ();
+ 	m_written_svalue_spatial_item
+ 	  = make_written_svalue_spatial_item (m_op,
+ 					      *op.m_sval_hint,
+ 					      actual_bits,
+ 					      m_theme);
+       }
+ 
+     /* Two passes:
+        First, figure out all of the boundaries of interest.
+        Then use that to build child widgets showing the regions of interest,
+        with a common tabular layout.  */
+ 
+     m_boundaries = find_boundaries ();
+     if (logger)
+       m_boundaries->log (*logger);
+ 
+     /* Populate m_table_x_for_bit and m_bit_for_table_x.
+        Each table column represents the range [offset, next_offset).
+        We don't create a column in the table for the final offset, but we
+        do populate it, so that looking at the table_x of one beyond the
+        final table column gives us the upper bound offset.  */
+     m_btm.populate (*m_boundaries, *m_op.get_manager (), logger);
+ 
+     /* Gracefully reject cases where the boundary sorting has gone wrong
+        (due to awkward combinations of symbolic values).  */
+     {
+       table::range_t actual_bits_x_range
+ 	= m_btm.get_table_x_for_range (m_op.get_actual_bits ());
+       if (actual_bits_x_range.get_size () <= 0)
+ 	{
+ 	  if (logger)
+ 	    logger->log ("giving up: bad table columns for actual_bits");
+ 	  m_invalid = true;
+ 	  return;
+ 	}
+       table::range_t valid_bits_x_range
+ 	= m_btm.get_table_x_for_range (m_op.get_valid_bits ());
+       if (valid_bits_x_range.get_size () <= 0)
+ 	{
+ 	  if (logger)
+ 	    logger->log ("giving up: bad table columns for valid_bits");
+ 	  m_invalid = true;
+ 	  return;
+ 	}
+     }
+ 
+     m_col_widths
+       = make_unique <table_dimension_sizes> (m_btm.get_num_columns ());
+ 
+     /* Now create child widgets.  */
+ 
+     if (flag_analyzer_debug_text_art)
+       {
+ 	table t_headings (make_headings_table ());
+ 	add_aligned_child_table (std::move (t_headings));
+       }
+ 
+     if (m_written_svalue_spatial_item)
+       {
+ 	table t_sval (m_written_svalue_spatial_item->make_table (m_btm, m_sm));
+ 	add_aligned_child_table (std::move (t_sval));
+       }
+     else
+       {
+ 	table t_accessed
+ 	  (m_accessed_region_spatial_item.make_table (m_btm, m_sm));
+ 	add_aligned_child_table (std::move (t_accessed));
+       }
+ 
+     add_direction_widget ();
+ 
+     table t_valid (m_valid_region_spatial_item.make_table (m_btm, m_sm));
+     add_invalid_accesses_to_region_table (t_valid);
+     add_aligned_child_table (std::move (t_valid));
+ 
+     add_valid_vs_invalid_ruler ();
+   }
+ 
+   const char *get_desc () const override
+   {
+     return "access_diagram_impl";
+   }
+ 
+   canvas::size_t calc_req_size () final override
+   {
+     if (m_invalid)
+       return canvas::size_t (0, 0);
+ 
+     /* Now compute the size requirements for the tables.  */
+     for (auto iter : m_aligned_table_widgets)
+       iter->get_cell_sizes ().pass_1 (iter->get_table ());
+     for (auto iter : m_aligned_table_widgets)
+       iter->get_cell_sizes ().pass_2 (iter->get_table ());
+ 
+     adjust_to_scale();
+ 
+     /* ...and relayout the tables.  */
+     for (auto iter : m_aligned_table_widgets)
+       iter->recalc_coords ();
+ 
+     /* Populate the canvas_x per table_x.  */
+     m_col_start_x.clear ();
+     int iter_canvas_x = 0;
+     for (auto w : m_col_widths->m_requirements)
+       {
+ 	m_col_start_x.push_back (iter_canvas_x);
+ 	iter_canvas_x += w + 1;
+       }
+     m_col_start_x.push_back (iter_canvas_x);
+ 
+     m_calc_req_size_called = true;
+ 
+     return vbox_widget::calc_req_size ();
+   }
+ 
+   int get_canvas_x_for_table_x (int table_x) const
+   {
+     gcc_assert (m_calc_req_size_called);
+     return m_col_start_x[table_x];
+   }
+ 
+   canvas::range_t get_canvas_x_range (const table::range_t &table_x_range) const
+   {
+     gcc_assert (m_calc_req_size_called);
+     return canvas::range_t (get_canvas_x_for_table_x (table_x_range.start),
+ 			    get_canvas_x_for_table_x (table_x_range.next));
+   }
+ 
+   const access_operation &get_op () const { return m_op; }
+ 
+   style::id_t get_style_id_for_validity (bool is_valid) const
+   {
+     return is_valid ? m_valid_style_id : m_invalid_style_id;
+   }
+ 
+   const theme &get_theme () const { return m_theme; }
+ 
+ private:
+   /* Figure out all of the boundaries of interest when visualizing ths op.  */
+   std::unique_ptr<boundaries>
+   find_boundaries () const
+   {
+     std::unique_ptr<boundaries> result
+       = make_unique<boundaries> (*m_op.m_base_region, m_logger);
+ 
+     m_valid_region_spatial_item.add_boundaries (*result, m_logger);
+     m_accessed_region_spatial_item.add_boundaries (*result, m_logger);
+     if (m_written_svalue_spatial_item)
+       m_written_svalue_spatial_item->add_boundaries (*result, m_logger);
+ 
+     return result;
+   }
+ 
+   void add_aligned_child_table (table t)
+   {
+     x_aligned_table_widget *w
+       = new x_aligned_table_widget (std::move (t), m_theme, *m_col_widths);
+     m_aligned_table_widgets.push_back (w);
+     add_child (std::unique_ptr<widget> (w));
+   }
+ 
+   /* Create a table showing headings for use by -fanalyzer-debug-text-art, for
+      example:
+      +---------+-----------+-----------+---+--------------------------------+
+      |   tc0   |    tc1    |    tc2    |tc3|              tc4               |
+      +---------+-----------+-----------+---+--------------------------------+
+      |bytes 0-3|bytes 4-35 |bytes 36-39|   |          bytes 40-43           |
+      +---------+-----------+-----------+   +--------------------------------+
+      which has:
+      - a row showing the table column numbers, labelled "tc0", "tc1", etc
+      - a row showing the memory range of each table column that has one.  */
+ 
+   table make_headings_table () const
+   {
+     table t (table::size_t (m_btm.get_num_columns (), 2));
+ 
+     for (int table_x = 0; table_x < t.get_size ().w; table_x++)
+       {
+ 	const int table_y = 0;
+ 	t.set_cell (table::coord_t (table_x, table_y),
+ 		    fmt_styled_string (m_sm, "tc%i", table_x));
+       }
+     for (int table_x = 0; table_x < t.get_size ().w; table_x++)
+       {
+ 	const int table_y = 1;
+ 	access_range range_for_column (NULL, bit_range (0, 0));
+ 	if (m_btm.maybe_get_access_range_for_table_x (table_x,
+ 						      &range_for_column))
+ 	  {
+ 	    pretty_printer pp;
+ 	    pp_format_decoder (&pp) = default_tree_printer;
+ 	    range_for_column.dump_to_pp (&pp, true);
+ 	    t.set_cell (table::coord_t (table_x, table_y),
+ 			styled_string (m_sm, pp_formatted_text (&pp)));
+ 	  }
+       }
+ 
+     return t;
+   }
+ 
+   void add_direction_widget ()
+   {
+     add_child (::make_unique<direction_widget> (*this, m_btm));
+   }
+ 
+   void add_invalid_accesses_to_region_table (table &t_region)
+   {
+     gcc_assert (t_region.get_size ().w == (int)m_btm.get_num_columns ());
+ 
+     const int table_y = 0;
+     const int table_h = t_region.get_size ().h;
+ 
+     access_range invalid_before_bits;
+     if (m_op.maybe_get_invalid_before_bits (&invalid_before_bits))
+       {
+ 	t_region.set_cell_span (m_btm.get_table_rect (invalid_before_bits,
+ 						      table_y, table_h),
+ 				styled_string (m_sm,
+ 					       _("before valid range")));
+       }
+     access_range invalid_after_bits;
+     if (m_op.maybe_get_invalid_after_bits (&invalid_after_bits))
+       {
+ 	t_region.set_cell_span (m_btm.get_table_rect (invalid_after_bits,
+ 						      table_y, table_h),
+ 				styled_string (m_sm,
+ 					       _("after valid range")));
+       }
+   }
+ 
+   void maybe_add_gap (x_aligned_x_ruler_widget *w,
+ 		      const access_range &lower,
+ 		      const access_range &upper) const
+   {
+     LOG_SCOPE (m_logger);
+     if (m_logger)
+       {
+ 	lower.log ("lower", *m_logger);
+ 	upper.log ("upper", *m_logger);
+       }
+     region_model_manager *mgr = m_op.get_manager ();
+     const svalue &lower_next = lower.m_next.calc_symbolic_bit_offset (mgr);
+     const svalue &upper_start = upper.m_start.calc_symbolic_bit_offset (mgr);
+     const svalue *num_bits_gap
+       = mgr->get_or_create_binop (NULL_TREE, MINUS_EXPR,
+ 				  &upper_start, &lower_next);
+     if (m_logger)
+       m_logger->log ("num_bits_gap: %qs", num_bits_gap->get_desc ().get ());
+ 
+     const svalue *zero = mgr->get_or_create_int_cst (NULL_TREE, 0);
+     tristate ts_gt_zero = m_op.m_model.eval_condition (num_bits_gap,
+ 						       GT_EXPR,
+ 						       zero);
+     if (ts_gt_zero.is_false ())
+       {
+ 	if (m_logger)
+ 	  m_logger->log ("rejecting as not > 0");
+ 	return;
+       }
+ 
+     bit_size_expr num_bits (*num_bits_gap);
+     if (auto p = num_bits.maybe_get_formatted_str (m_sm, m_op.m_model,
+ 						   _("%wi bit"),
+ 						   _("%wi bits"),
+ 						   _("%wi byte"),
+ 						   _("%wi bytes"),
+ 						   _("%qs bits"),
+ 						   _("%qs bytes")))
+       {
+ 	styled_string label = std::move (*p.get ());
+ 	w->add_range (m_btm.get_table_x_for_range
+ 		      (access_range (lower.m_next,
+ 				     upper.m_start,
+ 				     *mgr)),
+ 		      std::move (label),
+ 		      style::id_plain);
+       }
+   }
+ 
+   styled_string
+   make_warning_string (styled_string &&text)
+   {
+     styled_string result;
+     if (!m_theme.emojis_p ())
+       return std::move (text);
+ 
+     result.append (styled_string (0x26A0, /* U+26A0 WARNING SIGN.  */
+ 				  true));
+     /* U+26A0 WARNING SIGN has East_Asian_Width == Neutral, but in its
+        emoji variant is printed (by vte at least) with a 2nd half
+        overlapping the next char.  Hence we add two spaces here: a space
+        to be covered by this overlap, plus another space of padding.  */
+     result.append (styled_string (m_sm, "  "));
+     result.append (std::move (text));
+     return result;
+   }
+ 
+   /* Add a ruler child widet showing valid, invalid, and gaps.  */
+   void add_valid_vs_invalid_ruler ()
+   {
+     LOG_SCOPE (m_logger);
+ 
+     x_aligned_x_ruler_widget *w
+       = new x_aligned_x_ruler_widget (*this, m_theme);
+ 
+     access_range invalid_before_bits;
+     if (m_op.maybe_get_invalid_before_bits (&invalid_before_bits))
+       {
+ 	if (m_logger)
+ 	  invalid_before_bits.log ("invalid_before_bits", *m_logger);
+ 	bit_size_expr num_before_bits
+ 	  (invalid_before_bits.get_size (m_op.get_manager ()));
+ 	std::unique_ptr<styled_string> label;
+ 	if (m_op.m_dir == DIR_READ)
+ 	  label = num_before_bits.maybe_get_formatted_str
+ 	    (m_sm, m_op.m_model,
+ 	     _("under-read of %wi bit"),
+ 	     _("under-read of %wi bits"),
+ 	     _("under-read of %wi byte"),
+ 	     _("under-read of %wi bytes"),
+ 	     _("under-read of %qs bits"),
+ 	     _("under-read of %qs bytes"));
+ 	else
+ 	  label = num_before_bits.maybe_get_formatted_str
+ 	    (m_sm, m_op.m_model,
+ 	     _("underwrite of %wi bit"),
+ 	     _("underwrite of %wi bits"),
+ 	     _("underwrite of %wi byte"),
+ 	     _("underwrite of %wi bytes"),
+ 	     _("underwrite of %qs bits"),
+ 	     _("underwrite of %qs bytes"));
+ 	if (label)
+ 	  w->add_range (m_btm.get_table_x_for_range (invalid_before_bits),
+ 			make_warning_string (std::move (*label)),
+ 			m_invalid_style_id);
+       }
+     else
+       {
+ 	if (m_logger)
+ 	  m_logger->log ("no invalid_before_bits");
+       }
+ 
+     /* It would be nice to be able to use std::optional<access_range> here,
+        but std::optional is C++17.  */
+     bool got_valid_bits = false;
+     access_range valid_bits (m_op.get_valid_bits ());
+     bit_size_expr num_valid_bits (valid_bits.get_size (m_op.get_manager ()));
+     if (m_logger)
+       valid_bits.log ("valid_bits", *m_logger);
+ 
+     got_valid_bits = true;
+     maybe_add_gap (w, invalid_before_bits, valid_bits);
+ 
+     std::unique_ptr<styled_string> label;
+     if (m_op.m_dir == DIR_READ)
+       label = num_valid_bits.maybe_get_formatted_str (m_sm,
+ 						      m_op.m_model,
+ 						      _("size: %wi bit"),
+ 						      _("size: %wi bits"),
+ 						      _("size: %wi byte"),
+ 						      _("size: %wi bytes"),
+ 						      _("size: %qs bits"),
+ 						      _("size: %qs bytes"));
+     else
+       label
+ 	= num_valid_bits.maybe_get_formatted_str (m_sm,
+ 						  m_op.m_model,
+ 						  _("capacity: %wi bit"),
+ 						  _("capacity: %wi bits"),
+ 						  _("capacity: %wi byte"),
+ 						  _("capacity: %wi bytes"),
+ 						  _("capacity: %qs bits"),
+ 						  _("capacity: %qs bytes"));
+     if (label)
+       w->add_range (m_btm.get_table_x_for_range (m_op.get_valid_bits ()),
+ 		    std::move (*label),
+ 		    m_valid_style_id);
+ 
+     access_range invalid_after_bits;
+     if (m_op.maybe_get_invalid_after_bits (&invalid_after_bits))
+       {
+ 	if (got_valid_bits)
+ 	  maybe_add_gap (w, valid_bits, invalid_after_bits);
+ 
+ 	if (m_logger)
+ 	  invalid_before_bits.log ("invalid_after_bits", *m_logger);
+ 
+ 	bit_size_expr num_after_bits
+ 	  (invalid_after_bits.get_size (m_op.get_manager ()));
+ 	std::unique_ptr<styled_string> label;
+ 	if (m_op.m_dir == DIR_READ)
+ 	  label = num_after_bits.maybe_get_formatted_str
+ 	    (m_sm, m_op.m_model,
+ 	     _("over-read of %wi bit"),
+ 	     _("over-read of %wi bits"),
+ 	     _("over-read of %wi byte"),
+ 	     _("over-read of %wi bytes"),
+ 	     _("over-read of %qs bits"),
+ 	     _("over-read of %qs bytes"));
+ 	else
+ 	  label = num_after_bits.maybe_get_formatted_str
+ 	    (m_sm, m_op.m_model,
+ 	     _("overflow of %wi bit"),
+ 	     _("overflow of %wi bits"),
+ 	     _("overflow of %wi byte"),
+ 	     _("overflow of %wi bytes"),
+ 	     _("overflow of %qs bits"),
+ 	     _("overflow of %qs bytes"));
+ 	if (label)
+ 	  w->add_range (m_btm.get_table_x_for_range (invalid_after_bits),
+ 			make_warning_string (std::move (*label)),
+ 			m_invalid_style_id);
+       }
+     else
+       {
+ 	if (m_logger)
+ 	  m_logger->log ("no invalid_after_bits");
+       }
+ 
+     add_child (std::unique_ptr<widget> (w));
+   }
+ 
+   /* Subroutine of calc_req_size.
+      Try to allocate surplus canvas width to table columns to make the
+      per table-column canvas widths closer to being to scale.
+      See e.g.:
+        https://en.wikipedia.org/wiki/Fair_item_allocation
+        https://en.wikipedia.org/wiki/Mathematics_of_apportionment
+   */
+   void adjust_to_scale ()
+   {
+     LOG_SCOPE (m_logger);
+     const unsigned num_columns = m_btm.get_num_columns ();
+     std::vector<bit_offset_t> bit_sizes (num_columns);
+     for (unsigned table_x = 0; table_x < num_columns; table_x++)
+       {
+ 	access_range range_for_column (NULL, bit_range (0, 0));
+ 	if (m_btm.maybe_get_access_range_for_table_x (table_x,
+ 						      &range_for_column))
+ 	  {
+ 	    bit_size_t size_in_bits;
+ 	    if (!range_for_column.get_size_in_bits (&size_in_bits))
+ 	      size_in_bits = BITS_PER_UNIT; // arbitrary non-zero value
+ 	    gcc_assert (size_in_bits > 0);
+ 	    bit_sizes[table_x] = size_in_bits;
+ 	  }
+ 	else
+ 	  bit_sizes[table_x] = 0;
+       }
+ 
+     while (adjust_to_scale_once (bit_sizes))
+       {
+       }
+   }
+   bool adjust_to_scale_once (const std::vector<bit_offset_t> &bit_sizes)
+   {
+     LOG_SCOPE (m_logger);
+ 
+     const unsigned num_columns = m_btm.get_num_columns ();
+ 
+     /* Find the total canvas width currently required.
+        Require one extra canvas column for the right-hand border
+        of the table.  */
+     int total_width = 1;
+     for (unsigned table_x = 0; table_x < num_columns; table_x++)
+       {
+ 	int canvas_w = m_col_widths->m_requirements[table_x];
+ 	gcc_assert (canvas_w >= 0);
+ 	total_width += canvas_w + 1;
+       }
+ 
+     const int max_width = param_analyzer_text_art_ideal_canvas_width;
+     if (total_width >= max_width)
+       {
+ 	if (m_logger)
+ 	  m_logger->log ("bailing out: total_width=%i ,>= max_width (%i)\n",
+ 			 total_width, max_width);
+ 	return false;
+       }
+ 
+     const int fixed_point = 1024;
+     std::vector<bit_offset_t> canvas_w_per_bit (num_columns);
+     for (unsigned table_x = 0; table_x < num_columns; table_x++)
+       {
+ 	bit_offset_t bit_size = bit_sizes[table_x];
+ 	if (bit_size > 0)
+ 	  canvas_w_per_bit[table_x]
+ 	    = (m_col_widths->m_requirements[table_x] * fixed_point) / bit_size;
+ 	else
+ 	  canvas_w_per_bit[table_x] = INT_MAX;
+       }
+ 
+     /* Find the min canvas per bit, and give an extra canvas column to
+        the table column that has least.  */
+     size_t min_idx = std::distance (canvas_w_per_bit.begin (),
+ 				    std::min_element (canvas_w_per_bit.begin (),
+ 						      canvas_w_per_bit.end ()));
+     m_col_widths->m_requirements[min_idx] += 1;
+     if (m_logger)
+       m_logger->log ("adding 1 canvas_w to column %i\n", (int)min_idx);
+ 
+     return true; // keep going
+   }
+ 
+   const access_operation &m_op;
+   diagnostic_event_id_t m_region_creation_event_id;
+   style_manager &m_sm;
+   const theme &m_theme;
+   logger *m_logger;
+   /* In lieu of being able to throw exceptions, a flag to mark this object
+      as "invalid".  */
+   bool m_invalid;
+ 
+   style::id_t m_valid_style_id;
+   style::id_t m_invalid_style_id;
+ 
+   valid_region_spatial_item m_valid_region_spatial_item;
+   accessed_region_spatial_item m_accessed_region_spatial_item;
+   std::unique_ptr<spatial_item> m_written_svalue_spatial_item;
+ 
+   std::unique_ptr<boundaries> m_boundaries;
+ 
+   bit_to_table_map m_btm;
+ 
+   bool m_calc_req_size_called;
+ 
+   /* Column widths shared by all x_aligned_table_widget,
+      created once we know how many columns we need.  */
+   std::unique_ptr<table_dimension_sizes> m_col_widths;
+ 
+   /* All of the child x_aligned_table_widget that share
+      column widths.  */
+   std::vector<x_aligned_table_widget *> m_aligned_table_widgets;
+ 
+ /* Mapping from table_x to canvas_x.  */
+   std::vector<int> m_col_start_x;
+ };
+ 
+ x_ruler
+ x_aligned_x_ruler_widget::make_x_ruler () const
+ {
+   x_ruler r (x_ruler::label_dir::BELOW);
+   for (auto& iter : m_labels)
+     {
+       canvas::range_t canvas_x_range
+ 	= m_dia_impl.get_canvas_x_range (iter.m_table_x_range);
+       /* Include the end-point.  */
+       canvas_x_range.next++;
+       r.add_label (canvas_x_range, iter.m_text.copy (), iter.m_style_id,
+ 		   x_ruler::label_kind::TEXT_WITH_BORDER);
+     }
+   return r;
+ }
+ 
+ /* class direction_widget : public leaf_widget.  */
+ 
+ /* Paint arrows indicating the direction of the access (read vs write),
+    but only in the X-extent corresponding to the region that's actually
+    accessed.  */
+ 
+ void
+ direction_widget::paint_to_canvas (canvas &canvas)
+ {
+   const access_range accessed_bits (m_dia_impl.get_op ().get_actual_bits ());
+ 
+   const access_range valid_bits (m_dia_impl.get_op ().get_valid_bits ());
+ 
+   for (unsigned table_x = 0; table_x < m_btm.get_num_columns (); table_x++)
+     {
+       access_range column_access_range;
+       if (m_btm.maybe_get_access_range_for_table_x (table_x,
+ 						    &column_access_range))
+ 	{
+ 	  /* Only paint arrows in the accessed region.  */
+ 	  if (!accessed_bits.contains_p (column_access_range))
+ 	    continue;
+ 
+ 	  /* Are we within the valid region?  */
+ 	  const bool is_valid (valid_bits.contains_p (column_access_range));
+ 	  const style::id_t style_id
+ 	    = m_dia_impl.get_style_id_for_validity (is_valid);
+ 	  const canvas::range_t x_canvas_range
+ 	    = m_dia_impl.get_canvas_x_range (table::range_t (table_x,
+ 							     table_x + 1));
+ 	  const int canvas_x = x_canvas_range.get_midpoint ();
+ 	  m_dia_impl.get_theme ().paint_y_arrow
+ 	    (canvas,
+ 	     canvas_x,
+ 	     canvas::range_t (get_y_range ()),
+ 	     (m_dia_impl.get_op ().m_dir == DIR_READ
+ 	      ? theme::y_arrow_dir::UP
+ 	      : theme::y_arrow_dir::DOWN),
+ 	     style_id);
+ 	}
+     }
+ }
+ 
+ /* class access_diagram : public text_art::wrapper_widget.  */
+ 
+ /* To hide the implementation details, this is merely a wrapper around
+    an access_diagram_impl.  */
+ 
+ access_diagram::access_diagram (const access_operation &op,
+ 				diagnostic_event_id_t region_creation_event_id,
+ 				style_manager &sm,
+ 				const theme &theme,
+ 				logger *logger)
+ : wrapper_widget (make_unique <access_diagram_impl> (op,
+ 						     region_creation_event_id,
+ 						     sm,
+ 						     theme,
+ 						     logger))
+ {
+ }
+ 
+ #if CHECKING_P
+ 
+ namespace selftest {
+ 
+ /* Implementation detail of ASSERT_EQ_TYPELESS_INTEGER.  */
+ 
+ static void
+ assert_eq_typeless_integer (const location &loc,
+ 			    const svalue *sval,
+ 			    int expected_int_val)
+ {
+   ASSERT_NE_AT (loc, sval, nullptr);
+   ASSERT_EQ_AT (loc, sval->get_kind (), SK_CONSTANT);
+   ASSERT_EQ_AT (loc,
+ 		wi::to_offset (sval->maybe_get_constant ()),
+ 		expected_int_val);
+   ASSERT_EQ_AT (loc, sval->get_type (), NULL_TREE);
+ }
+ 
+ /* Assert that SVAL is a constant_svalue equal to EXPECTED_INT_VAL,
+    with NULL_TREE as its type.  */
+ 
+ #define ASSERT_EQ_TYPELESS_INTEGER(SVAL, EXPECTED_INT_VAL) \
+   SELFTEST_BEGIN_STMT						       \
+   assert_eq_typeless_integer ((SELFTEST_LOCATION),		       \
+ 			      (SVAL),				       \
+ 			      (EXPECTED_INT_VAL));		       \
+   SELFTEST_END_STMT
+ 
+ 
+ /* Various tests of bit_size_expr::maybe_get_as_bytes.  */
+ 
+ static void
+ test_bit_size_expr_to_bytes ()
+ {
+   region_model_manager mgr;
+ 
+   /* 40 bits: should be 5 bytes.  */
+   {
+     bit_size_expr num_bits (*mgr.get_or_create_int_cst (NULL_TREE, 40));
+     const svalue *as_bytes = num_bits.maybe_get_as_bytes (mgr);
+     ASSERT_EQ_TYPELESS_INTEGER (as_bytes, 5);
+   }
+ 
+   /* 41 bits: should not convert to bytes.  */
+   {
+     bit_size_expr num_bits (*mgr.get_or_create_int_cst (NULL_TREE, 41));
+     const svalue *as_bytes = num_bits.maybe_get_as_bytes (mgr);
+     ASSERT_EQ (as_bytes, nullptr);
+   }
+ 
+   tree n = build_global_decl ("n", size_type_node);
+ 
+   const svalue *init_n
+     = mgr.get_or_create_initial_value (mgr.get_region_for_global (n));
+ 
+   const svalue *n_times_8
+     = mgr.get_or_create_binop (NULL_TREE, MULT_EXPR,
+ 			       init_n,
+ 			       mgr.get_or_create_int_cst (NULL_TREE, 8));
+ 
+   /* (n * 8) bits should be n bytes */
+   {
+     bit_size_expr num_bits (*n_times_8);
+     const svalue *as_bytes = num_bits.maybe_get_as_bytes (mgr);
+     ASSERT_EQ (as_bytes, mgr.get_or_create_cast (NULL_TREE, init_n));
+   }
+ 
+   /* (n * 8) + 16 bits should be n + 2 bytes */
+   {
+     bit_size_expr num_bits
+       (*mgr.get_or_create_binop (NULL_TREE, PLUS_EXPR,
+ 				 n_times_8,
+ 				 mgr.get_or_create_int_cst (NULL_TREE, 16)));
+     const svalue *as_bytes = num_bits.maybe_get_as_bytes (mgr);
+     ASSERT_EQ (as_bytes->get_kind (), SK_BINOP);
+     const binop_svalue *binop = as_bytes->dyn_cast_binop_svalue ();
+     ASSERT_EQ (binop->get_op (), PLUS_EXPR);
+     ASSERT_EQ (binop->get_arg0 (), mgr.get_or_create_cast (NULL_TREE, init_n));
+     ASSERT_EQ_TYPELESS_INTEGER (binop->get_arg1 (), 2);
+   }
+ }
+ 
+ /* Run all of the selftests within this file.  */
+ 
+ void
+ analyzer_access_diagram_cc_tests ()
+ {
+   test_bit_size_expr_to_bytes ();
+ }
+ 
+ } // namespace selftest
+ 
+ #endif /* CHECKING_P */
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/access-diagram.h gcc-14.1.0/gcc/analyzer/access-diagram.h
*** gcc-13.2.0/gcc/analyzer/access-diagram.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/access-diagram.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,167 ----
+ /* Text art visualizations within -fanalyzer.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_ANALYZER_ACCESS_DIAGRAM_H
+ #define GCC_ANALYZER_ACCESS_DIAGRAM_H
+ 
+ #include "text-art/canvas.h"
+ #include "text-art/theme.h"
+ #include "text-art/widget.h"
+ #include "analyzer/analyzer.h"
+ #include "analyzer/store.h"
+ 
+ namespace ana {
+ 
+ class bit_size_expr
+ {
+ public:
+   bit_size_expr (const svalue &num_bits) : m_num_bits (num_bits) {}
+ 
+   std::unique_ptr<text_art::styled_string>
+   maybe_get_formatted_str (text_art::style_manager &sm,
+ 			   const region_model &model,
+ 			   const char *concrete_single_bit_fmt,
+ 			   const char *concrete_plural_bits_fmt,
+ 			   const char *concrete_single_byte_fmt,
+ 			   const char *concrete_plural_bytes_fmt,
+ 			   const char *symbolic_bits_fmt,
+ 			   const char *symbolic_bytes_fmt) const;
+   bool maybe_print_for_user (pretty_printer *pp,
+ 			     const region_model &model) const;
+ 
+   const svalue *maybe_get_as_bytes (region_model_manager &mgr) const;
+ 
+ private:
+   const svalue &m_num_bits;
+ };
+ 
+ /* A range of bits within a base region, where each endpoint
+    could be concrete or symbolic (not necessarily the same).  */
+ 
+ struct access_range
+ {
+   access_range ()
+   : m_start (), m_next ()
+   {
+   }
+   access_range (region_offset start, region_offset next,
+ 		region_model_manager &mgr)
+   : m_start (strip_types (start, mgr)), m_next (strip_types (next, mgr))
+   {}
+   access_range (const region *base_region, const bit_range &bits);
+   access_range (const region *base_region, const byte_range &bytes);
+   access_range (const region &reg, region_model_manager *);
+ 
+   bool concrete_p () const
+   {
+     return m_start.concrete_p () && m_next.concrete_p ();
+   }
+ 
+   bool empty_p () const;
+ 
+   bit_size_expr get_size (region_model_manager *mgr) const;
+ 
+   bool get_size_in_bits (bit_size_t *out) const
+   {
+     if (concrete_p ())
+       {
+ 	*out = m_next.get_bit_offset () - m_start.get_bit_offset ();
+ 	return true;
+       }
+     return false;
+   }
+ 
+   bool as_concrete_bit_range (bit_range *out) const
+   {
+     if (!concrete_p ())
+       return false;
+     bit_size_t size = m_next.get_bit_offset () - m_start.get_bit_offset ();
+     *out = bit_range (m_start.get_bit_offset (), size);
+     return true;
+   }
+   bool as_concrete_byte_range (byte_range *out) const
+   {
+     bit_range bits (0, 0);
+     if (!as_concrete_bit_range (&bits))
+       return false;
+     return bits.as_byte_range (out);
+   }
+ 
+   bool contains_p (const access_range &other) const;
+ 
+   void dump_to_pp (pretty_printer *pp, bool) const;
+   void dump (bool) const;
+   void log (const char *title, logger &) const;
+ 
+   region_offset m_start;
+   region_offset m_next;
+ };
+ 
+ struct access_operation
+ {
+   access_operation (const region_model &model,
+ 		    enum access_direction dir,
+ 		    const region &reg,
+ 		    const svalue *sval_hint)
+   : m_model (model),
+     m_dir (dir),
+     m_reg (reg),
+     m_sval_hint (sval_hint),
+     m_base_region (reg.get_base_region ())
+   {}
+ 
+   region_model_manager *get_manager () const
+   {
+     return m_model.get_manager ();
+   }
+ 
+   /* Get the valid bits to access within the base region.  */
+   access_range get_valid_bits () const;
+ 
+   /* Get the actual bits accessed within the base region.  */
+   access_range get_actual_bits () const;
+ 
+   bool maybe_get_invalid_before_bits (access_range *out) const;
+   bool maybe_get_invalid_after_bits (access_range *out) const;
+ 
+   const region_model &m_model;
+   enum access_direction m_dir;
+   const region &m_reg;
+   const svalue *m_sval_hint;
+   const region *m_base_region;
+ };
+ 
+ class access_diagram : public text_art::wrapper_widget
+ {
+ public:
+   access_diagram (const access_operation &op,
+ 		  diagnostic_event_id_t region_creation_event_id,
+ 		  text_art::style_manager &sm,
+ 		  const text_art::theme &theme,
+ 		  logger *logger);
+   const char *get_desc () const override
+   {
+     return "access_diagram";
+   }
+ };
+ 
+ } // namespace ana
+ 
+ #endif /* GCC_ANALYZER_ACCESS_DIAGRAM_H */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analysis-plan.cc gcc-14.1.0/gcc/analyzer/analysis-plan.cc
*** gcc-13.2.0/gcc/analyzer/analysis-plan.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analysis-plan.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analysis-plan.h gcc-14.1.0/gcc/analyzer/analysis-plan.h
*** gcc-13.2.0/gcc/analyzer/analysis-plan.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analysis-plan.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer-language.cc gcc-14.1.0/gcc/analyzer/analyzer-language.cc
*** gcc-13.2.0/gcc/analyzer/analyzer-language.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer-language.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** static GTY (()) hash_map <tree, tree> *a
*** 35,40 ****
--- 35,60 ----
  #if ENABLE_ANALYZER
  
  namespace ana {
+ static vec<finish_translation_unit_callback>
+     *finish_translation_unit_callbacks;
+ 
+ void
+ register_finish_translation_unit_callback (
+     finish_translation_unit_callback callback)
+ {
+   if (!finish_translation_unit_callbacks)
+     vec_alloc (finish_translation_unit_callbacks, 1);
+   finish_translation_unit_callbacks->safe_push (callback);
+ }
+ 
+ static void
+ run_callbacks (logger *logger, const translation_unit &tu)
+ {
+   for (auto const &cb : finish_translation_unit_callbacks)
+     {
+       cb (logger, tu);
+     }
+ }
  
  /* Call into TU to try to find a value for NAME.
     If found, stash its value within analyzer_stashed_constants.  */
*************** on_finish_translation_unit (const transl
*** 102,107 ****
--- 122,129 ----
      the_logger.set_logger (new logger (logfile, 0, 0,
  				       *global_dc->printer));
    stash_named_constants (the_logger.get_logger (), tu);
+ 
+   run_callbacks (the_logger.get_logger (), tu);
  }
  
  /* Lookup NAME in the named constants stashed when the frontend TU finished.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer-language.h gcc-14.1.0/gcc/analyzer/analyzer-language.h
*** gcc-13.2.0/gcc/analyzer/analyzer-language.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer-language.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,26 ****
--- 21,28 ----
  #ifndef GCC_ANALYZER_LANGUAGE_H
  #define GCC_ANALYZER_LANGUAGE_H
  
+ #include "analyzer/analyzer-logging.h"
+ 
  #if ENABLE_ANALYZER
  
  namespace ana {
*************** class translation_unit
*** 35,42 ****
--- 37,51 ----
       have been seen).  If it is defined and an integer (e.g. either as a
       macro or enum), return the INTEGER_CST value, otherwise return NULL.  */
    virtual tree lookup_constant_by_id (tree id) const = 0;
+   virtual tree lookup_type_by_id (tree id) const = 0;
+   virtual tree lookup_global_var_by_id (tree id) const = 0;
  };
  
+ typedef void (*finish_translation_unit_callback)
+    (logger *, const translation_unit &);
+ void register_finish_translation_unit_callback (
+     finish_translation_unit_callback callback);
+ 
  /* Analyzer hook for frontends to call at the end of the TU.  */
  
  void on_finish_translation_unit (const translation_unit &tu);
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer-logging.cc gcc-14.1.0/gcc/analyzer/analyzer-logging.cc
*** gcc-13.2.0/gcc/analyzer/analyzer-logging.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer-logging.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** logger::log_partial (const char *fmt, ..
*** 144,153 ****
  void
  logger::log_va_partial (const char *fmt, va_list *ap)
  {
!   text_info text;
!   text.format_spec = fmt;
!   text.args_ptr = ap;
!   text.err_no = 0;
    pp_format (m_pp, &text);
    pp_output_formatted_text (m_pp);
  }
--- 144,150 ----
  void
  logger::log_va_partial (const char *fmt, va_list *ap)
  {
!   text_info text (fmt, ap, 0);
    pp_format (m_pp, &text);
    pp_output_formatted_text (m_pp);
  }
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer-logging.h gcc-14.1.0/gcc/analyzer/analyzer-logging.h
*** gcc-13.2.0/gcc/analyzer/analyzer-logging.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer-logging.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer-pass.cc gcc-14.1.0/gcc/analyzer/analyzer-pass.cc
*** gcc-13.2.0/gcc/analyzer/analyzer-pass.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer-pass.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Integration of the analyzer with GCC's pass manager.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Integration of the analyzer with GCC's pass manager.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer-selftests.cc gcc-14.1.0/gcc/analyzer/analyzer-selftests.cc
*** gcc-13.2.0/gcc/analyzer/analyzer-selftests.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer-selftests.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Selftest support for the analyzer.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Selftest support for the analyzer.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** void
*** 51,60 ****
--- 51,62 ----
  run_analyzer_selftests ()
  {
  #if ENABLE_ANALYZER
+   analyzer_access_diagram_cc_tests ();
    analyzer_constraint_manager_cc_tests ();
    analyzer_function_set_cc_tests ();
    analyzer_program_point_cc_tests ();
    analyzer_program_state_cc_tests ();
+   analyzer_ranges_cc_tests ();
    analyzer_region_model_cc_tests ();
    analyzer_sm_file_cc_tests ();
    analyzer_sm_signal_cc_tests ();
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer-selftests.h gcc-14.1.0/gcc/analyzer/analyzer-selftests.h
*** gcc-13.2.0/gcc/analyzer/analyzer-selftests.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer-selftests.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Selftests for the analyzer.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Selftests for the analyzer.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** extern void run_analyzer_selftests ();
*** 33,43 ****
  
  /* Declarations for specific families of tests (by source file), in
     alphabetical order.  */
! extern void analyzer_checker_script_cc_tests ();
  extern void analyzer_constraint_manager_cc_tests ();
  extern void analyzer_function_set_cc_tests ();
  extern void analyzer_program_point_cc_tests ();
  extern void analyzer_program_state_cc_tests ();
  extern void analyzer_region_model_cc_tests ();
  extern void analyzer_sm_file_cc_tests ();
  extern void analyzer_sm_signal_cc_tests ();
--- 33,44 ----
  
  /* Declarations for specific families of tests (by source file), in
     alphabetical order.  */
! extern void analyzer_access_diagram_cc_tests ();
  extern void analyzer_constraint_manager_cc_tests ();
  extern void analyzer_function_set_cc_tests ();
  extern void analyzer_program_point_cc_tests ();
  extern void analyzer_program_state_cc_tests ();
+ extern void analyzer_ranges_cc_tests ();
  extern void analyzer_region_model_cc_tests ();
  extern void analyzer_sm_file_cc_tests ();
  extern void analyzer_sm_signal_cc_tests ();
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer.cc gcc-14.1.0/gcc/analyzer/analyzer.cc
*** gcc-13.2.0/gcc/analyzer/analyzer.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 29,34 ****
--- 29,37 ----
  #include "diagnostic.h"
  #include "intl.h"
  #include "analyzer/analyzer.h"
+ #include "tree-pretty-print.h"
+ #include "diagnostic-event-id.h"
+ #include "tree-dfa.h"
  
  #if ENABLE_ANALYZER
  
*************** namespace ana {
*** 41,46 ****
--- 44,51 ----
  location_t
  get_stmt_location (const gimple *stmt, function *fun)
  {
+   if (!stmt)
+     return UNKNOWN_LOCATION;
    if (get_pure_location (stmt->location) == UNKNOWN_LOCATION)
      {
        /* Workaround for missing location information for clobber
*************** get_diagnostic_tree_for_gassign (const g
*** 214,219 ****
--- 219,289 ----
    return get_diagnostic_tree_for_gassign_1 (assign_stmt, &visited);
  }
  
+ /* Generate a JSON value for NODE, which can be NULL_TREE.
+    This is intended for debugging the analyzer rather than serialization and
+    thus is a string (or null, for NULL_TREE).  */
+ 
+ json::value *
+ tree_to_json (tree node)
+ {
+   if (!node)
+     return new json::literal (json::JSON_NULL);
+ 
+   pretty_printer pp;
+   dump_generic_node (&pp, node, 0, TDF_VOPS|TDF_MEMSYMS, false);
+   return new json::string (pp_formatted_text (&pp));
+ }
+ 
+ /* Generate a JSON value for EVENT_ID.
+    This is intended for debugging the analyzer rather than serialization and
+    thus is a string matching those seen in event messags (or null,
+    for unknown).  */
+ 
+ json::value *
+ diagnostic_event_id_to_json (const diagnostic_event_id_t &event_id)
+ {
+   if (event_id.known_p ())
+     {
+       pretty_printer pp;
+       pp_printf (&pp, "%@", &event_id);
+       return new json::string (pp_formatted_text (&pp));
+     }
+   else
+     return new json::literal (json::JSON_NULL);
+ }
+ 
+ /* Generate a JSON value for OFFSET.
+    This is intended for debugging the analyzer rather than serialization and
+    thus is a string.  */
+ 
+ json::value *
+ bit_offset_to_json (const bit_offset_t &offset)
+ {
+   pretty_printer pp;
+   pp_wide_int_large (&pp, offset, SIGNED);
+   return new json::string (pp_formatted_text (&pp));
+ }
+ 
+ /* Generate a JSON value for OFFSET.
+    This is intended for debugging the analyzer rather than serialization and
+    thus is a string.  */
+ 
+ json::value *
+ byte_offset_to_json (const byte_offset_t &offset)
+ {
+   pretty_printer pp;
+   pp_wide_int_large (&pp, offset, SIGNED);
+   return new json::string (pp_formatted_text (&pp));
+ }
+ 
+ /* Workaround for lack of const-correctness of ssa_default_def.  */
+ 
+ tree
+ get_ssa_default_def (const function &fun, tree var)
+ {
+   return ssa_default_def (const_cast <function *> (&fun), var);
+ }
+ 
  } // namespace ana
  
  /* Helper function for checkers.  Is the CALL to the given function name,
*************** make_label_text (bool can_colorize, cons
*** 423,441 ****
    if (!can_colorize)
      pp_show_color (pp) = false;
  
-   text_info ti;
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
  
    va_list ap;
  
    va_start (ap, fmt);
  
!   ti.format_spec = _(fmt);
!   ti.args_ptr = &ap;
!   ti.err_no = 0;
!   ti.x_data = NULL;
!   ti.m_richloc = &rich_loc;
! 
    pp_format (pp, &ti);
    pp_output_formatted_text (pp);
  
--- 493,505 ----
    if (!can_colorize)
      pp_show_color (pp) = false;
  
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
  
    va_list ap;
  
    va_start (ap, fmt);
  
!   text_info ti (_(fmt), &ap, 0, NULL, &rich_loc);
    pp_format (pp, &ti);
    pp_output_formatted_text (pp);
  
*************** make_label_text_n (bool can_colorize, un
*** 459,465 ****
    if (!can_colorize)
      pp_show_color (pp) = false;
  
-   text_info ti;
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
  
    va_list ap;
--- 523,528 ----
*************** make_label_text_n (bool can_colorize, un
*** 468,478 ****
  
    const char *fmt = ngettext (singular_fmt, plural_fmt, n);
  
!   ti.format_spec = fmt;
!   ti.args_ptr = &ap;
!   ti.err_no = 0;
!   ti.x_data = NULL;
!   ti.m_richloc = &rich_loc;
  
    pp_format (pp, &ti);
    pp_output_formatted_text (pp);
--- 531,537 ----
  
    const char *fmt = ngettext (singular_fmt, plural_fmt, n);
  
!   text_info ti (fmt, &ap, 0, NULL, &rich_loc);
  
    pp_format (pp, &ti);
    pp_output_formatted_text (pp);
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer.h gcc-14.1.0/gcc/analyzer/analyzer.h
*** gcc-13.2.0/gcc/analyzer/analyzer.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,26 ****
--- 21,27 ----
  #ifndef GCC_ANALYZER_ANALYZER_H
  #define GCC_ANALYZER_ANALYZER_H
  
+ #include "rich-location.h"
  #include "function.h"
  #include "json.h"
  #include "tristate.h"
*************** class reachable_regions;
*** 90,97 ****
--- 91,100 ----
  class bounded_ranges;
  class bounded_ranges_manager;
  
+ struct pending_location;
  class pending_diagnostic;
  class pending_note;
+ class saved_diagnostic;
  struct event_loc_info;
  class checker_event;
    class state_change_event;
*************** struct interesting_t;
*** 128,138 ****
--- 131,146 ----
  
  class feasible_node;
  
+ class known_function;
+   class builtin_known_function;
+   class internal_known_function;
+ 
  /* Forward decls of functions.  */
  
  extern void dump_tree (pretty_printer *pp, tree t);
  extern void dump_quoted_tree (pretty_printer *pp, tree t);
  extern void print_quoted_type (pretty_printer *pp, tree t);
+ extern void print_expr_for_user (pretty_printer *pp, tree t);
  extern int readability_comparator (const void *p1, const void *p2);
  extern int tree_cmp (const void *p1, const void *p2);
  extern tree fixup_tree_for_diagnostic (tree);
*************** extern tree get_field_at_bit_offset (tre
*** 183,188 ****
--- 191,201 ----
  class region_offset
  {
  public:
+   region_offset ()
+   : m_base_region (NULL), m_offset (0), m_sym_offset (NULL)
+   {
+   }
+ 
    static region_offset make_concrete (const region *base_region,
  				      bit_offset_t offset)
    {
*************** public:
*** 193,201 ****
--- 206,217 ----
    {
      return region_offset (base_region, 0, sym_offset);
    }
+   static region_offset make_byte_offset (const region *base_region,
+ 					 const svalue *num_bytes_sval);
  
    const region *get_base_region () const { return m_base_region; }
  
+   bool concrete_p () const { return m_sym_offset == NULL; }
    bool symbolic_p () const { return m_sym_offset != NULL; }
  
    bit_offset_t get_bit_offset () const
*************** public:
*** 204,215 ****
--- 220,245 ----
      return m_offset;
    }
  
+   bool get_concrete_byte_offset (byte_offset_t *out) const
+   {
+     gcc_assert (!symbolic_p ());
+     if (m_offset % BITS_PER_UNIT == 0)
+       {
+ 	*out = m_offset / BITS_PER_UNIT;
+ 	return true;
+       }
+     return false;
+   }
+ 
    const svalue *get_symbolic_byte_offset () const
    {
      gcc_assert (symbolic_p ());
      return m_sym_offset;
    }
  
+   const svalue &calc_symbolic_bit_offset (region_model_manager *mgr) const;
+   const svalue *calc_symbolic_byte_offset (region_model_manager *mgr) const;
+ 
    bool operator== (const region_offset &other) const
    {
      return (m_base_region == other.m_base_region
*************** public:
*** 217,222 ****
--- 247,255 ----
  	    && m_sym_offset == other.m_sym_offset);
    }
  
+   void dump_to_pp (pretty_printer *pp, bool) const;
+   void dump (bool) const;
+ 
  private:
    region_offset (const region *base_region, bit_offset_t offset,
  		 const svalue *sym_offset)
*************** private:
*** 228,233 ****
--- 261,271 ----
    const svalue *m_sym_offset;
  };
  
+ extern bool operator< (const region_offset &, const region_offset &);
+ extern bool operator<= (const region_offset &, const region_offset &);
+ extern bool operator> (const region_offset &, const region_offset &);
+ extern bool operator>= (const region_offset &, const region_offset &);
+ 
  extern location_t get_stmt_location (const gimple *stmt, function *fun);
  
  extern bool compat_types_p (tree src_type, tree dst_type);
*************** public:
*** 249,254 ****
--- 287,310 ----
    {
      return;
    }
+ 
+   virtual const builtin_known_function *
+   dyn_cast_builtin_kf () const { return NULL; }
+ };
+ 
+ /* Subclass of known_function for builtin functions.  */
+ 
+ class builtin_known_function : public known_function
+ {
+ public:
+   virtual enum built_in_function builtin_code () const = 0;
+   tree builtin_decl () const {
+     gcc_assert (builtin_code () < END_BUILTINS);
+     return builtin_info[builtin_code ()].decl;
+   }
+ 
+   const builtin_known_function *
+   dyn_cast_builtin_kf () const final override { return this; }
  };
  
  /* Subclass of known_function for IFN_* functions.  */
*************** public:
*** 263,269 ****
    }
  };
  
! extern void register_known_functions (known_function_manager &mgr);
  extern void register_known_analyzer_functions (known_function_manager &kfm);
  extern void register_known_fd_functions (known_function_manager &kfm);
  extern void register_known_file_functions (known_function_manager &kfm);
--- 319,336 ----
    }
  };
  
! /* Abstract subclass of known_function that merely sets the return
!    value of the function (based on function attributes), and assumes
!    it has no side-effects.  */
! 
! class pure_known_function_with_default_return : public known_function
! {
! public:
!   void impl_call_pre (const call_details &cd) const override;
! };
! 
! extern void register_known_functions (known_function_manager &kfm,
! 				      region_model_manager &rmm);
  extern void register_known_analyzer_functions (known_function_manager &kfm);
  extern void register_known_fd_functions (known_function_manager &kfm);
  extern void register_known_file_functions (known_function_manager &kfm);
*************** extern void log_stashed_constants (logge
*** 349,354 ****
--- 416,450 ----
  
  extern FILE *get_or_create_any_logfile ();
  
+ extern json::value *
+ tree_to_json (tree node);
+ 
+ extern json::value *
+ diagnostic_event_id_to_json (const diagnostic_event_id_t &);
+ 
+ extern json::value *
+ bit_offset_to_json (const bit_offset_t &offset);
+ 
+ extern json::value *
+ byte_offset_to_json (const byte_offset_t &offset);
+ 
+ extern tristate
+ compare_constants (tree lhs_const, enum tree_code op, tree rhs_const);
+ 
+ extern tree
+ get_string_cst_size (const_tree string_cst);
+ 
+ extern tree
+ get_ssa_default_def (const function &fun, tree var);
+ 
+ extern const svalue *
+ strip_types (const svalue *sval, region_model_manager &mgr);
+ 
+ extern region_offset
+ strip_types (const region_offset &offset, region_model_manager &mgr);
+ 
+ extern tree remove_ssa_names (tree expr);
+ 
  } // namespace ana
  
  extern bool is_special_named_call_p (const gcall *call, const char *funcname,
*************** extern bool is_std_named_call_p (const_t
*** 361,366 ****
--- 457,463 ----
  				 const gcall *call, unsigned int num_args);
  extern bool is_setjmp_call_p (const gcall *call);
  extern bool is_longjmp_call_p (const gcall *call);
+ extern bool is_placement_new_p (const gcall *call);
  
  extern const char *get_user_facing_name (const gcall *call);
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer.opt gcc-14.1.0/gcc/analyzer/analyzer.opt
*** gcc-13.2.0/gcc/analyzer/analyzer.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/analyzer.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; analyzer.opt -- Options for the analyzer.
  
! ; Copyright (C) 2019-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; analyzer.opt -- Options for the analyzer.
  
! ; Copyright (C) 2019-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** Common Joined UInteger Var(param_analyze
*** 43,49 ****
  The maximum number of times a callsite can appear in a call stack within the analyzer, before terminating analysis of a call that would recurse deeper.
  
  -param=analyzer-max-svalue-depth=
! Common Joined UInteger Var(param_analyzer_max_svalue_depth) Init(12) Param
  The maximum depth of a symbolic value, before approximating the value as unknown.
  
  -param=analyzer-min-snodes-for-call-summary=
--- 43,49 ----
  The maximum number of times a callsite can appear in a call stack within the analyzer, before terminating analysis of a call that would recurse deeper.
  
  -param=analyzer-max-svalue-depth=
! Common Joined UInteger Var(param_analyzer_max_svalue_depth) Init(18) Param
  The maximum depth of a symbolic value, before approximating the value as unknown.
  
  -param=analyzer-min-snodes-for-call-summary=
*************** The minimum number of supernodes within
*** 54,59 ****
--- 54,75 ----
  Common Joined UInteger Var(param_analyzer_max_enodes_for_full_dump) Init(200) Param
  The maximum depth of exploded nodes that should appear in a dot dump before switching to a less verbose format.
  
+ -param=analyzer-text-art-string-ellipsis-threshold=
+ Common Joined UInteger Var(param_analyzer_text_art_string_ellipsis_threshold) Init(15) Param
+ The number of bytes at which to ellipsize string literals in analyzer text art diagrams.
+ 
+ -param=analyzer-text-art-string-ellipsis-head-len=
+ Common Joined UInteger Var(param_analyzer_text_art_string_ellipsis_head_len) Init(6) Param
+ The number of literal bytes to show at the head of a string literal in text art when ellipsizing it.
+ 
+ -param=analyzer-text-art-string-ellipsis-tail-len=
+ Common Joined UInteger Var(param_analyzer_text_art_string_ellipsis_tail_len) Init(6) Param
+ The number of literal bytes to show at the tail of a string literal in text art when ellipsizing it.
+ 
+ -param=analyzer-text-art-ideal-canvas-width=
+ Common Joined UInteger Var(param_analyzer_text_art_ideal_canvas_width) Init(72) Param
+ The ideal width in characters of text art diagrams generated by the analyzer.
+ 
  Wanalyzer-allocation-size
  Common Var(warn_analyzer_allocation_size) Init(1) Warning
  Warn about code paths in which a pointer to a buffer is assigned to an incompatible type.
*************** Wanalyzer-imprecise-fp-arithmetic
*** 118,123 ****
--- 134,143 ----
  Common Var(warn_analyzer_imprecise_fp_arithmetic) Init(1) Warning
  Warn about code paths in which floating-point arithmetic is used in locations where precise computation is needed.
  
+ Wanalyzer-infinite-loop
+ Common Var(warn_analyzer_infinite_loop) Init(1) Warning
+ Warn about code paths which appear to lead to an infinite loop.
+ 
  Wanalyzer-infinite-recursion
  Common Var(warn_analyzer_infinite_recursion) Init(1) Warning
  Warn about code paths which appear to lead to infinite recursion.
*************** Wanalyzer-out-of-bounds
*** 138,143 ****
--- 158,167 ----
  Common Var(warn_analyzer_out_of_bounds) Init(1) Warning
  Warn about code paths in which a write or read to a buffer is out-of-bounds.
  
+ Wanalyzer-overlapping-buffers
+ Common Var(warn_analyzer_overlapping_buffers) Init(1) Warning
+ Warn about code paths in which undefined behavior would occur due to overlapping buffers.
+ 
  Wanalyzer-possible-null-argument
  Common Var(warn_analyzer_possible_null_argument) Init(1) Warning
  Warn about code paths in which a possibly-NULL value is passed to a must-not-be-NULL function argument.
*************** Wanalyzer-tainted-size
*** 198,203 ****
--- 222,231 ----
  Common Var(warn_analyzer_tainted_size) Init(1) Warning
  Warn about code paths in which an unsanitized value is used as a size.
  
+ Wanalyzer-undefined-behavior-strtok
+ Common Var(warn_analyzer_undefined_behavior_strtok) Init(1) Warning
+ Warn about code paths in which a call is made to strtok with undefined behavior.
+ 
  Wanalyzer-use-after-free
  Common Var(warn_analyzer_use_after_free) Init(1) Warning
  Warn about code paths in which a freed value is used.
*************** Wanalyzer-use-of-uninitialized-value
*** 234,239 ****
--- 262,271 ----
  Common Var(warn_analyzer_use_of_uninitialized_value) Init(1) Warning
  Warn about code paths in which an uninitialized value is used.
  
+ Wanalyzer-symbol-too-complex
+ Common Var(warn_analyzer_symbol_too_complex) Init(0) Warning
+ Warn if expressions are too complicated for the analyzer to fully track.
+ 
  Wanalyzer-too-complex
  Common Var(warn_analyzer_too_complex) Init(0) Warning
  Warn if the code is too complicated for the analyzer to fully explore.
*************** fanalyzer-checker=
*** 242,247 ****
--- 274,283 ----
  Common Joined RejectNegative Var(flag_analyzer_checker)
  Restrict the analyzer to run just the named checker.
  
+ fanalyzer-debug-text-art
+ Common Var(flag_analyzer_debug_text_art) Init(0)
+ Add extra annotations to diagrams.
+ 
  fanalyzer-fine-grained
  Common Var(flag_analyzer_fine_grained) Init(0)
  Avoid combining multiple statements into one exploded edge.
*************** fanalyzer-transitivity
*** 270,275 ****
--- 306,315 ----
  Common Var(flag_analyzer_transitivity) Init(0)
  Enable transitivity of constraints during analysis.
  
+ fanalyzer-show-events-in-system-headers
+ Common Var(flag_analyzer_show_events_in_system_headers) Init(0)
+ Show events within system headers in analyzer execution paths.
+ 
  fanalyzer-call-summaries
  Common Var(flag_analyzer_call_summaries) Init(0)
  Approximate the effect of function calls to simplify analysis.
*************** fdump-analyzer-feasibility
*** 326,331 ****
--- 366,375 ----
  Common RejectNegative Var(flag_dump_analyzer_feasibility)
  Dump various analyzer internals to SRCFILE.*.fg.dot and SRCFILE.*.tg.dot.
  
+ fdump-analyzer-infinite-loop
+ Common RejectNegative Var(flag_dump_analyzer_infinite_loop)
+ Dump various analyzer internals to SRCFILE.*.infinite-loop.dot.
+ 
  fdump-analyzer-json
  Common RejectNegative Var(flag_dump_analyzer_json)
  Dump analyzer-specific data to a SRCFILE.analyzer.json.gz file.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/analyzer.opt.urls gcc-14.1.0/gcc/analyzer/analyzer.opt.urls
*** gcc-13.2.0/gcc/analyzer/analyzer.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/analyzer.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,215 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/analyzer/analyzer.opt and generated HTML
+ 
+ Wanalyzer-allocation-size
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-allocation-size)
+ 
+ Wanalyzer-deref-before-check
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-deref-before-check)
+ 
+ Wanalyzer-double-fclose
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-double-fclose)
+ 
+ Wanalyzer-double-free
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-double-free)
+ 
+ Wanalyzer-exposure-through-output-file
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-exposure-through-output-file)
+ 
+ Wanalyzer-exposure-through-uninit-copy
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-exposure-through-uninit-copy)
+ 
+ Wanalyzer-fd-access-mode-mismatch
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-access-mode-mismatch)
+ 
+ Wanalyzer-fd-double-close
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-double-close)
+ 
+ Wanalyzer-fd-leak
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-leak)
+ 
+ Wanalyzer-fd-phase-mismatch
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-phase-mismatch)
+ 
+ Wanalyzer-fd-type-mismatch
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-type-mismatch)
+ 
+ Wanalyzer-fd-use-after-close
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-after-close)
+ 
+ Wanalyzer-fd-use-without-check
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-fd-use-without-check)
+ 
+ Wanalyzer-file-leak
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-file-leak)
+ 
+ Wanalyzer-free-of-non-heap
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-free-of-non-heap)
+ 
+ Wanalyzer-imprecise-fp-arithmetic
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-imprecise-fp-arithmetic)
+ 
+ Wanalyzer-infinite-loop
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-loop)
+ 
+ Wanalyzer-infinite-recursion
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-recursion)
+ 
+ Wanalyzer-jump-through-null
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-jump-through-null)
+ 
+ Wanalyzer-malloc-leak
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-malloc-leak)
+ 
+ Wanalyzer-mismatching-deallocation
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-mismatching-deallocation)
+ 
+ Wanalyzer-out-of-bounds
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-out-of-bounds)
+ 
+ Wanalyzer-overlapping-buffers
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-overlapping-buffers)
+ 
+ Wanalyzer-possible-null-argument
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-possible-null-argument)
+ 
+ Wanalyzer-possible-null-dereference
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-possible-null-dereference)
+ 
+ Wanalyzer-unsafe-call-within-signal-handler
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-unsafe-call-within-signal-handler)
+ 
+ Wanalyzer-null-argument
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-null-argument)
+ 
+ Wanalyzer-null-dereference
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-null-dereference)
+ 
+ Wanalyzer-putenv-of-auto-var
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-putenv-of-auto-var)
+ 
+ Wanalyzer-shift-count-negative
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-shift-count-negative)
+ 
+ Wanalyzer-shift-count-overflow
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-shift-count-overflow)
+ 
+ Wanalyzer-stale-setjmp-buffer
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-stale-setjmp-buffer)
+ 
+ Wanalyzer-tainted-allocation-size
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size)
+ 
+ Wanalyzer-tainted-array-index
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-array-index)
+ 
+ Wanalyzer-tainted-assertion
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-assertion)
+ 
+ Wanalyzer-tainted-divisor
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-divisor)
+ 
+ Wanalyzer-tainted-offset
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-offset)
+ 
+ Wanalyzer-tainted-size
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size)
+ 
+ Wanalyzer-undefined-behavior-strtok
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-strtok)
+ 
+ Wanalyzer-use-after-free
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-use-after-free)
+ 
+ Wanalyzer-use-of-pointer-in-stale-stack-frame
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-use-of-pointer-in-stale-stack-frame)
+ 
+ Wanalyzer-va-arg-type-mismatch
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-arg-type-mismatch)
+ 
+ Wanalyzer-va-list-exhausted
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-exhausted)
+ 
+ Wanalyzer-va-list-leak
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-leak)
+ 
+ Wanalyzer-va-list-use-after-va-end
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-va-list-use-after-va-end)
+ 
+ Wanalyzer-write-to-const
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-const)
+ 
+ Wanalyzer-write-to-string-literal
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-string-literal)
+ 
+ Wanalyzer-use-of-uninitialized-value
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-use-of-uninitialized-value)
+ 
+ Wanalyzer-symbol-too-complex
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-symbol-too-complex)
+ 
+ Wanalyzer-too-complex
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-too-complex)
+ 
+ fanalyzer-checker=
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-checker)
+ 
+ fanalyzer-debug-text-art
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-debug-text-art)
+ 
+ fanalyzer-fine-grained
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-fine-grained)
+ 
+ fanalyzer-feasibility
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-feasibility)
+ 
+ fanalyzer-show-duplicate-count
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-show-duplicate-count)
+ 
+ fanalyzer-state-purge
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-state-purge)
+ 
+ fanalyzer-state-merge
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-state-merge)
+ 
+ fanalyzer-suppress-followups
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-suppress-followups)
+ 
+ fanalyzer-transitivity
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-transitivity)
+ 
+ fanalyzer-show-events-in-system-headers
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-show-events-in-system-headers)
+ 
+ fanalyzer-call-summaries
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-call-summaries)
+ 
+ fanalyzer-undo-inlining
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-undo-inlining)
+ 
+ fdump-analyzer
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer)
+ 
+ fdump-analyzer-stderr
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-stderr)
+ 
+ fdump-analyzer-callgraph
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-callgraph)
+ 
+ fdump-analyzer-exploded-graph
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-exploded-graph)
+ 
+ fdump-analyzer-exploded-paths
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-exploded-paths)
+ 
+ fdump-analyzer-json
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-json)
+ 
+ fdump-analyzer-state-purge
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-state-purge)
+ 
+ fdump-analyzer-supergraph
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-supergraph)
+ 
+ fdump-analyzer-untracked
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-untracked)
+ 
diff -Nrcpad gcc-13.2.0/gcc/analyzer/bar-chart.cc gcc-14.1.0/gcc/analyzer/bar-chart.cc
*** gcc-13.2.0/gcc/analyzer/bar-chart.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/bar-chart.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/bar-chart.h gcc-14.1.0/gcc/analyzer/bar-chart.h
*** gcc-13.2.0/gcc/analyzer/bar-chart.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/bar-chart.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/bounds-checking.cc gcc-14.1.0/gcc/analyzer/bounds-checking.cc
*** gcc-13.2.0/gcc/analyzer/bounds-checking.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/bounds-checking.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Bounds-checking of reads and writes to memory regions.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Bounds-checking of reads and writes to memory regions.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 19,39 ****
  
  #include "config.h"
  #define INCLUDE_MEMORY
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
  #include "tree.h"
  #include "function.h"
  #include "basic-block.h"
  #include "gimple.h"
  #include "gimple-iterator.h"
  #include "diagnostic-core.h"
! #include "diagnostic-metadata.h"
  #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/region-model.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/checker-path.h"
  
  #if ENABLE_ANALYZER
  
--- 19,43 ----
  
  #include "config.h"
  #define INCLUDE_MEMORY
+ #define INCLUDE_VECTOR
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
  #include "tree.h"
  #include "function.h"
  #include "basic-block.h"
+ #include "intl.h"
  #include "gimple.h"
  #include "gimple-iterator.h"
  #include "diagnostic-core.h"
! #include "diagnostic-diagram.h"
! #include "diagnostic-format-sarif.h"
  #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/region-model.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/checker-path.h"
+ #include "analyzer/access-diagram.h"
  
  #if ENABLE_ANALYZER
  
*************** namespace ana {
*** 44,51 ****
  class out_of_bounds : public pending_diagnostic
  {
  public:
!   out_of_bounds (const region *reg, tree diag_arg)
!   : m_reg (reg), m_diag_arg (diag_arg)
    {}
  
    bool subclass_equal_p (const pending_diagnostic &base_other) const override
--- 48,82 ----
  class out_of_bounds : public pending_diagnostic
  {
  public:
!   class oob_region_creation_event_capacity : public region_creation_event_capacity
!   {
!   public:
!     oob_region_creation_event_capacity (tree byte_capacity,
! 					const event_loc_info &loc_info,
! 					out_of_bounds &oob)
!     : region_creation_event_capacity (byte_capacity,
! 				      loc_info),
!       m_oob (oob)
!     {
!     }
!     void prepare_for_emission (checker_path *path,
! 			       pending_diagnostic *pd,
! 			       diagnostic_event_id_t emission_id) override
!     {
!       region_creation_event_capacity::prepare_for_emission (path,
! 							    pd,
! 							    emission_id);
!       m_oob.m_region_creation_event_id = emission_id;
!     }
!   private:
!     out_of_bounds &m_oob;
!   };
! 
!   out_of_bounds (const region_model &model,
! 		 const region *reg,
! 		 tree diag_arg,
! 		 const svalue *sval_hint)
!   : m_model (model), m_reg (reg), m_diag_arg (diag_arg), m_sval_hint (sval_hint)
    {}
  
    bool subclass_equal_p (const pending_diagnostic &base_other) const override
*************** public:
*** 63,89 ****
  
    void mark_interesting_stuff (interesting_t *interest) final override
    {
!     interest->add_region_creation (m_reg);
    }
  
    void add_region_creation_events (const region *,
! 				   tree capacity,
  				   const event_loc_info &loc_info,
  				   checker_path &emission_path) override
    {
      /* The memory space is described in the diagnostic message itself,
         so we don't need an event for that.  */
!     if (capacity)
        emission_path.add_event
! 	(make_unique<region_creation_event_capacity> (capacity, loc_info));
    }
  
  protected:
    enum memory_space get_memory_space () const
    {
      return m_reg->get_memory_space ();
    }
  
    /* Potentially add a note about valid ways to index this array, such
       as (given "int arr[10];"):
         note: valid subscripts for 'arr' are '[0]' to '[9]'
--- 94,148 ----
  
    void mark_interesting_stuff (interesting_t *interest) final override
    {
!     interest->add_region_creation (m_reg->get_base_region ());
    }
  
    void add_region_creation_events (const region *,
! 				   tree byte_capacity,
  				   const event_loc_info &loc_info,
  				   checker_path &emission_path) override
    {
      /* The memory space is described in the diagnostic message itself,
         so we don't need an event for that.  */
!     if (byte_capacity)
        emission_path.add_event
! 	(make_unique<oob_region_creation_event_capacity> (byte_capacity,
! 							  loc_info,
! 							  *this));
    }
  
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const override
+   {
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/out_of_bounds/"
+     props.set_string (PROPERTY_PREFIX "dir",
+ 		      get_dir () == DIR_READ ? "read" : "write");
+     props.set (PROPERTY_PREFIX "model", m_model.to_json ());
+     props.set (PROPERTY_PREFIX "region", m_reg->to_json ());
+     props.set (PROPERTY_PREFIX "diag_arg", tree_to_json (m_diag_arg));
+     if (m_sval_hint)
+       props.set (PROPERTY_PREFIX "sval_hint", m_sval_hint->to_json ());
+     props.set (PROPERTY_PREFIX "region_creation_event_id",
+ 	       diagnostic_event_id_to_json (m_region_creation_event_id));
+ #undef PROPERTY_PREFIX
+   }
+ 
+   virtual enum access_direction get_dir () const = 0;
+ 
  protected:
    enum memory_space get_memory_space () const
    {
      return m_reg->get_memory_space ();
    }
  
+   void
+   maybe_show_notes (diagnostic_emission_context &ctxt) const
+   {
+     maybe_describe_array_bounds (ctxt.get_location ());
+     maybe_show_diagram (ctxt.get_logger ());
+   }
+ 
    /* Potentially add a note about valid ways to index this array, such
       as (given "int arr[10];"):
         note: valid subscripts for 'arr' are '[0]' to '[9]'
*************** protected:
*** 112,119 ****
--- 171,219 ----
  	    m_diag_arg, min_idx, max_idx);
    }
  
+   void
+   maybe_show_diagram (logger *logger) const
+   {
+     access_operation op (m_model, get_dir (), *m_reg, m_sval_hint);
+ 
+     /* Don't attempt to make a diagram if there's no valid way of
+        accessing the base region (e.g. a 0-element array).  */
+     if (op.get_valid_bits ().empty_p ())
+       return;
+ 
+     if (const text_art::theme *theme = global_dc->get_diagram_theme ())
+       {
+ 	text_art::style_manager sm;
+ 	text_art::canvas canvas (make_access_diagram (op, sm, *theme, logger));
+ 	if (canvas.get_size ().w == 0 && canvas.get_size ().h == 0)
+ 	  {
+ 	    /* In lieu of exceptions, return a zero-sized diagram if there's
+ 	       a problem.  Give up if that's happened.  */
+ 	    return;
+ 	  }
+ 	diagnostic_diagram diagram
+ 	  (canvas,
+ 	   /* Alt text.  */
+ 	   _("Diagram visualizing the predicted out-of-bounds access"));
+ 	global_dc->emit_diagram (diagram);
+       }
+   }
+ 
+   text_art::canvas
+   make_access_diagram (const access_operation &op,
+ 		       text_art::style_manager &sm,
+ 		       const text_art::theme &theme,
+ 		       logger *logger) const
+   {
+     access_diagram d (op, m_region_creation_event_id, sm, theme, logger);
+     return d.to_canvas (sm);
+   }
+ 
+   region_model m_model;
    const region *m_reg;
    tree m_diag_arg;
+   const svalue *m_sval_hint;
+   diagnostic_event_id_t m_region_creation_event_id;
  };
  
  /* Abstract base class for all out-of-bounds warnings where the
*************** protected:
*** 122,131 ****
  class concrete_out_of_bounds : public out_of_bounds
  {
  public:
!   concrete_out_of_bounds (const region *reg, tree diag_arg,
! 			  byte_range out_of_bounds_range)
!   : out_of_bounds (reg, diag_arg),
!     m_out_of_bounds_range (out_of_bounds_range)
    {}
  
    bool subclass_equal_p (const pending_diagnostic &base_other) const override
--- 222,233 ----
  class concrete_out_of_bounds : public out_of_bounds
  {
  public:
!   concrete_out_of_bounds (const region_model &model,
! 			  const region *reg, tree diag_arg,
! 			  bit_range out_of_bounds_bits,
! 			  const svalue *sval_hint)
!   : out_of_bounds (model, reg, diag_arg, sval_hint),
!     m_out_of_bounds_bits (out_of_bounds_bits)
    {}
  
    bool subclass_equal_p (const pending_diagnostic &base_other) const override
*************** public:
*** 133,143 ****
      const concrete_out_of_bounds &other
        (static_cast <const concrete_out_of_bounds &>(base_other));
      return (out_of_bounds::subclass_equal_p (other)
! 	    && m_out_of_bounds_range == other.m_out_of_bounds_range);
    }
  
  protected:
!   byte_range m_out_of_bounds_range;
  };
  
  /* Abstract subclass to complaing about concrete out-of-bounds
--- 235,265 ----
      const concrete_out_of_bounds &other
        (static_cast <const concrete_out_of_bounds &>(base_other));
      return (out_of_bounds::subclass_equal_p (other)
! 	    && m_out_of_bounds_bits == other.m_out_of_bounds_bits);
!   }
! 
!   void maybe_add_sarif_properties (sarif_object &result_obj)
!     const override
!   {
!     out_of_bounds::maybe_add_sarif_properties (result_obj);
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
! #define PROPERTY_PREFIX "gcc/analyzer/concrete_out_of_bounds/"
!     props.set (PROPERTY_PREFIX "out_of_bounds_bits",
! 	       m_out_of_bounds_bits.to_json ());
!     byte_range out_of_bounds_bytes (0, 0);
!     if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
!       props.set (PROPERTY_PREFIX "out_of_bounds_bytes",
! 		 out_of_bounds_bytes.to_json ());
! #undef PROPERTY_PREFIX
!   }
! 
!   bool get_out_of_bounds_bytes (byte_range *out) const
!   {
!     return m_out_of_bounds_bits.as_byte_range (out);
    }
  
  protected:
!   bit_range m_out_of_bounds_bits;
  };
  
  /* Abstract subclass to complaing about concrete out-of-bounds
*************** protected:
*** 146,155 ****
  class concrete_past_the_end : public concrete_out_of_bounds
  {
  public:
!   concrete_past_the_end (const region *reg, tree diag_arg, byte_range range,
! 			 tree byte_bound)
!   : concrete_out_of_bounds (reg, diag_arg, range), m_byte_bound (byte_bound)
!   {}
  
    bool
    subclass_equal_p (const pending_diagnostic &base_other) const final override
--- 268,286 ----
  class concrete_past_the_end : public concrete_out_of_bounds
  {
  public:
!   concrete_past_the_end (const region_model &model,
! 			 const region *reg, tree diag_arg, bit_range range,
! 			 tree bit_bound,
! 			 const svalue *sval_hint)
!   : concrete_out_of_bounds (model, reg, diag_arg, range, sval_hint),
!     m_bit_bound (bit_bound),
!     m_byte_bound (NULL_TREE)
!   {
!     if (m_bit_bound && TREE_CODE (m_bit_bound) == INTEGER_CST)
!       m_byte_bound
! 	= wide_int_to_tree (size_type_node,
! 			    wi::to_offset (m_bit_bound) >> LOG2_BITS_PER_UNIT);
!   }
  
    bool
    subclass_equal_p (const pending_diagnostic &base_other) const final override
*************** public:
*** 157,164 ****
      const concrete_past_the_end &other
        (static_cast <const concrete_past_the_end &>(base_other));
      return (concrete_out_of_bounds::subclass_equal_p (other)
! 	    && pending_diagnostic::same_tree_p (m_byte_bound,
! 						other.m_byte_bound));
    }
  
    void add_region_creation_events (const region *,
--- 288,295 ----
      const concrete_past_the_end &other
        (static_cast <const concrete_past_the_end &>(base_other));
      return (concrete_out_of_bounds::subclass_equal_p (other)
! 	    && pending_diagnostic::same_tree_p (m_bit_bound,
! 						other.m_bit_bound));
    }
  
    void add_region_creation_events (const region *,
*************** public:
*** 168,177 ****
    {
      if (m_byte_bound && TREE_CODE (m_byte_bound) == INTEGER_CST)
        emission_path.add_event
! 	(make_unique<region_creation_event_capacity> (m_byte_bound, loc_info));
    }
  
  protected:
    tree m_byte_bound;
  };
  
--- 299,324 ----
    {
      if (m_byte_bound && TREE_CODE (m_byte_bound) == INTEGER_CST)
        emission_path.add_event
! 	(make_unique<oob_region_creation_event_capacity> (m_byte_bound,
! 							  loc_info,
! 							  *this));
!   }
! 
!   void maybe_add_sarif_properties (sarif_object &result_obj)
!     const final override
!   {
!     concrete_out_of_bounds::maybe_add_sarif_properties (result_obj);
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
! #define PROPERTY_PREFIX "gcc/analyzer/concrete_past_the_end/"
!     props.set (PROPERTY_PREFIX "bit_bound",
! 	       tree_to_json (m_bit_bound));
!     props.set (PROPERTY_PREFIX "byte_bound",
! 	       tree_to_json (m_byte_bound));
! #undef PROPERTY_PREFIX
    }
  
  protected:
+   tree m_bit_bound;
    tree m_byte_bound;
  };
  
*************** protected:
*** 180,188 ****
  class concrete_buffer_overflow : public concrete_past_the_end
  {
  public:
!   concrete_buffer_overflow (const region *reg, tree diag_arg,
! 		   byte_range range, tree byte_bound)
!   : concrete_past_the_end (reg, diag_arg, range, byte_bound)
    {}
  
    const char *get_kind () const final override
--- 327,337 ----
  class concrete_buffer_overflow : public concrete_past_the_end
  {
  public:
!   concrete_buffer_overflow (const region_model &model,
! 			    const region *reg, tree diag_arg,
! 			    bit_range range, tree bit_bound,
! 			    const svalue *sval_hint)
!   : concrete_past_the_end (model, reg, diag_arg, range, bit_bound, sval_hint)
    {}
  
    const char *get_kind () const final override
*************** public:
*** 190,254 ****
      return "concrete_buffer_overflow";
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      bool warned;
      switch (get_memory_space ())
        {
        default:
! 	m.add_cwe (787);
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "buffer overflow");
  	break;
        case MEMSPACE_STACK:
! 	m.add_cwe (121);
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "stack-based buffer overflow");
  	break;
        case MEMSPACE_HEAP:
! 	m.add_cwe (122);
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "heap-based buffer overflow");
  	break;
        }
  
      if (warned)
        {
! 	if (wi::fits_uhwi_p (m_out_of_bounds_range.m_size_in_bytes))
  	  {
! 	    unsigned HOST_WIDE_INT num_bad_bytes
! 	      = m_out_of_bounds_range.m_size_in_bytes.to_uhwi ();
! 	    if (m_diag_arg)
! 	      inform_n (rich_loc->get_loc (),
! 			num_bad_bytes,
! 			"write of %wu byte to beyond the end of %qE",
! 			"write of %wu bytes to beyond the end of %qE",
! 			num_bad_bytes,
! 			m_diag_arg);
  	    else
! 	      inform_n (rich_loc->get_loc (),
! 			num_bad_bytes,
! 			"write of %wu byte to beyond the end of the region",
! 			"write of %wu bytes to beyond the end of the region",
! 			num_bad_bytes);
  	  }
  	else if (m_diag_arg)
! 	  inform (rich_loc->get_loc (),
  		  "write to beyond the end of %qE",
  		  m_diag_arg);
  
! 	maybe_describe_array_bounds (rich_loc->get_loc ());
        }
  
      return warned;
    }
  
    label_text describe_final_event (const evdesc::final_event &ev)
!   final override
    {
!     byte_size_t start = m_out_of_bounds_range.get_start_byte_offset ();
!     byte_size_t end = m_out_of_bounds_range.get_last_byte_offset ();
      char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
      print_dec (start, start_buf, SIGNED);
      char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
--- 339,433 ----
      return "concrete_buffer_overflow";
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      bool warned;
      switch (get_memory_space ())
        {
        default:
! 	ctxt.add_cwe (787);
! 	warned = ctxt.warn ("buffer overflow");
  	break;
        case MEMSPACE_STACK:
! 	ctxt.add_cwe (121);
! 	warned = ctxt.warn ("stack-based buffer overflow");
  	break;
        case MEMSPACE_HEAP:
! 	ctxt.add_cwe (122);
! 	warned = ctxt.warn ("heap-based buffer overflow");
  	break;
        }
  
      if (warned)
        {
! 	if (wi::fits_uhwi_p (m_out_of_bounds_bits.m_size_in_bits))
  	  {
! 	    unsigned HOST_WIDE_INT num_bad_bits
! 	      = m_out_of_bounds_bits.m_size_in_bits.to_uhwi ();
! 	    if (num_bad_bits % BITS_PER_UNIT == 0)
! 	      {
! 		unsigned HOST_WIDE_INT num_bad_bytes
! 		  = num_bad_bits / BITS_PER_UNIT;
! 		if (m_diag_arg)
! 		  inform_n (ctxt.get_location (),
! 			    num_bad_bytes,
! 			    "write of %wu byte to beyond the end of %qE",
! 			    "write of %wu bytes to beyond the end of %qE",
! 			    num_bad_bytes,
! 			    m_diag_arg);
! 		else
! 		  inform_n (ctxt.get_location (),
! 			    num_bad_bytes,
! 			    "write of %wu byte to beyond the end of the region",
! 			    "write of %wu bytes to beyond the end of the region",
! 			    num_bad_bytes);
! 	      }
  	    else
! 	      {
! 		if (m_diag_arg)
! 		  inform_n (ctxt.get_location (),
! 			    num_bad_bits,
! 			    "write of %wu bit to beyond the end of %qE",
! 			    "write of %wu bits to beyond the end of %qE",
! 			    num_bad_bits,
! 			    m_diag_arg);
! 		else
! 		  inform_n (ctxt.get_location (),
! 			    num_bad_bits,
! 			    "write of %wu bit to beyond the end of the region",
! 			    "write of %wu bits to beyond the end of the region",
! 			    num_bad_bits);
! 	      }
  	  }
  	else if (m_diag_arg)
! 	  inform (ctxt.get_location (),
  		  "write to beyond the end of %qE",
  		  m_diag_arg);
  
! 	maybe_show_notes (ctxt);
        }
  
      return warned;
    }
  
    label_text describe_final_event (const evdesc::final_event &ev)
!     final override
    {
!     if (m_byte_bound || !m_bit_bound)
!       {
! 	byte_range out_of_bounds_bytes (0, 0);
! 	if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
! 	  return describe_final_event_as_bytes (ev, out_of_bounds_bytes);
!       }
!     return describe_final_event_as_bits (ev);
!   }
! 
!   label_text
!   describe_final_event_as_bytes (const evdesc::final_event &ev,
! 				 const byte_range &out_of_bounds_bytes)
!   {
!     byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
!     byte_size_t end = out_of_bounds_bytes.get_last_byte_offset ();
      char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
      print_dec (start, start_buf, SIGNED);
      char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
*************** public:
*** 259,268 ****
  	if (m_diag_arg)
  	  return ev.formatted_print ("out-of-bounds write at byte %s but %qE"
  				     " ends at byte %E", start_buf, m_diag_arg,
! 							 m_byte_bound);
  	return ev.formatted_print ("out-of-bounds write at byte %s but region"
  				   " ends at byte %E", start_buf,
! 						       m_byte_bound);
        }
      else
        {
--- 438,447 ----
  	if (m_diag_arg)
  	  return ev.formatted_print ("out-of-bounds write at byte %s but %qE"
  				     " ends at byte %E", start_buf, m_diag_arg,
! 				     m_byte_bound);
  	return ev.formatted_print ("out-of-bounds write at byte %s but region"
  				   " ends at byte %E", start_buf,
! 				   m_byte_bound);
        }
      else
        {
*************** public:
*** 276,281 ****
--- 455,494 ----
  				   start_buf, end_buf, m_byte_bound);
        }
    }
+ 
+   label_text describe_final_event_as_bits (const evdesc::final_event &ev)
+   {
+     bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
+     bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
+     char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
+     print_dec (start, start_buf, SIGNED);
+     char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
+     print_dec (end, end_buf, SIGNED);
+ 
+     if (start == end)
+       {
+ 	if (m_diag_arg)
+ 	  return ev.formatted_print ("out-of-bounds write at bit %s but %qE"
+ 				     " ends at bit %E", start_buf, m_diag_arg,
+ 				     m_bit_bound);
+ 	return ev.formatted_print ("out-of-bounds write at bit %s but region"
+ 				   " ends at bit %E", start_buf,
+ 				   m_bit_bound);
+       }
+     else
+       {
+ 	if (m_diag_arg)
+ 	  return ev.formatted_print ("out-of-bounds write from bit %s till"
+ 				     " bit %s but %qE ends at bit %E",
+ 				     start_buf, end_buf, m_diag_arg,
+ 				     m_bit_bound);
+ 	return ev.formatted_print ("out-of-bounds write from bit %s till"
+ 				   " bit %s but region ends at bit %E",
+ 				   start_buf, end_buf, m_bit_bound);
+       }
+   }
+ 
+   enum access_direction get_dir () const final override { return DIR_WRITE; }
  };
  
  /* Concrete subclass to complain about buffer over-reads.  */
*************** public:
*** 283,291 ****
  class concrete_buffer_over_read : public concrete_past_the_end
  {
  public:
!   concrete_buffer_over_read (const region *reg, tree diag_arg,
! 			     byte_range range, tree byte_bound)
!   : concrete_past_the_end (reg, diag_arg, range, byte_bound)
    {}
  
    const char *get_kind () const final override
--- 496,505 ----
  class concrete_buffer_over_read : public concrete_past_the_end
  {
  public:
!   concrete_buffer_over_read (const region_model &model,
! 			     const region *reg, tree diag_arg,
! 			     bit_range range, tree bit_bound)
!   : concrete_past_the_end (model, reg, diag_arg, range, bit_bound, NULL)
    {}
  
    const char *get_kind () const final override
*************** public:
*** 293,355 ****
      return "concrete_buffer_over_read";
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      bool warned;
!     m.add_cwe (126);
      switch (get_memory_space ())
        {
        default:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "buffer over-read");
  	break;
        case MEMSPACE_STACK:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "stack-based buffer over-read");
  	break;
        case MEMSPACE_HEAP:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "heap-based buffer over-read");
  	break;
        }
  
      if (warned)
        {
! 	if (wi::fits_uhwi_p (m_out_of_bounds_range.m_size_in_bytes))
  	  {
! 	    unsigned HOST_WIDE_INT num_bad_bytes
! 	      = m_out_of_bounds_range.m_size_in_bytes.to_uhwi ();
! 	    if (m_diag_arg)
! 	      inform_n (rich_loc->get_loc (),
! 			num_bad_bytes,
! 			"read of %wu byte from after the end of %qE",
! 			"read of %wu bytes from after the end of %qE",
! 			num_bad_bytes,
! 			m_diag_arg);
  	    else
! 	      inform_n (rich_loc->get_loc (),
! 			num_bad_bytes,
! 			"read of %wu byte from after the end of the region",
! 			"read of %wu bytes from after the end of the region",
! 			num_bad_bytes);
  	  }
  	else if (m_diag_arg)
! 	  inform (rich_loc->get_loc (),
  		  "read from after the end of %qE",
  		  m_diag_arg);
  
! 	maybe_describe_array_bounds (rich_loc->get_loc ());
        }
  
      return warned;
    }
  
    label_text describe_final_event (const evdesc::final_event &ev)
!   final override
    {
!     byte_size_t start = m_out_of_bounds_range.get_start_byte_offset ();
!     byte_size_t end = m_out_of_bounds_range.get_last_byte_offset ();
      char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
      print_dec (start, start_buf, SIGNED);
      char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
--- 507,599 ----
      return "concrete_buffer_over_read";
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      bool warned;
!     ctxt.add_cwe (126);
      switch (get_memory_space ())
        {
        default:
! 	warned = ctxt.warn ("buffer over-read");
  	break;
        case MEMSPACE_STACK:
! 	warned = ctxt.warn ("stack-based buffer over-read");
  	break;
        case MEMSPACE_HEAP:
! 	warned = ctxt.warn ("heap-based buffer over-read");
  	break;
        }
  
      if (warned)
        {
! 	if (wi::fits_uhwi_p (m_out_of_bounds_bits.m_size_in_bits))
  	  {
! 	    unsigned HOST_WIDE_INT num_bad_bits
! 	      = m_out_of_bounds_bits.m_size_in_bits.to_uhwi ();
! 	    if (num_bad_bits % BITS_PER_UNIT == 0)
! 	      {
! 		unsigned HOST_WIDE_INT num_bad_bytes
! 		  = num_bad_bits / BITS_PER_UNIT;
! 		if (m_diag_arg)
! 		  inform_n (ctxt.get_location (),
! 			    num_bad_bytes,
! 			    "read of %wu byte from after the end of %qE",
! 			    "read of %wu bytes from after the end of %qE",
! 			    num_bad_bytes,
! 			    m_diag_arg);
! 		else
! 		  inform_n (ctxt.get_location (),
! 			    num_bad_bytes,
! 			    "read of %wu byte from after the end of the region",
! 			    "read of %wu bytes from after the end of the region",
! 			    num_bad_bytes);
! 	      }
  	    else
! 	      {
! 		if (m_diag_arg)
! 		  inform_n (ctxt.get_location (),
! 			    num_bad_bits,
! 			    "read of %wu bit from after the end of %qE",
! 			    "read of %wu bits from after the end of %qE",
! 			    num_bad_bits,
! 			    m_diag_arg);
! 		else
! 		  inform_n (ctxt.get_location (),
! 			    num_bad_bits,
! 			    "read of %wu bit from after the end of the region",
! 			    "read of %wu bits from after the end of the region",
! 			    num_bad_bits);
! 	      }
  	  }
  	else if (m_diag_arg)
! 	  inform (ctxt.get_location (),
  		  "read from after the end of %qE",
  		  m_diag_arg);
  
! 	maybe_show_notes (ctxt);
        }
  
      return warned;
    }
  
    label_text describe_final_event (const evdesc::final_event &ev)
!     final override
    {
!     if (m_byte_bound || !m_bit_bound)
!       {
! 	byte_range out_of_bounds_bytes (0, 0);
! 	if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
! 	  return describe_final_event_as_bytes (ev, out_of_bounds_bytes);
!       }
!     return describe_final_event_as_bits (ev);
!   }
! 
!   label_text
!   describe_final_event_as_bytes (const evdesc::final_event &ev,
! 				 const byte_range &out_of_bounds_bytes)
!   {
!     byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
!     byte_size_t end = out_of_bounds_bytes.get_last_byte_offset ();
      char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
      print_dec (start, start_buf, SIGNED);
      char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
*************** public:
*** 377,382 ****
--- 621,660 ----
  				   start_buf, end_buf, m_byte_bound);
        }
    }
+ 
+   label_text describe_final_event_as_bits (const evdesc::final_event &ev)
+   {
+     bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
+     bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
+     char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
+     print_dec (start, start_buf, SIGNED);
+     char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
+     print_dec (end, end_buf, SIGNED);
+ 
+     if (start == end)
+       {
+ 	if (m_diag_arg)
+ 	  return ev.formatted_print ("out-of-bounds read at bit %s but %qE"
+ 				     " ends at bit %E", start_buf, m_diag_arg,
+ 							 m_bit_bound);
+ 	return ev.formatted_print ("out-of-bounds read at bit %s but region"
+ 				   " ends at bit %E", start_buf,
+ 						       m_bit_bound);
+       }
+     else
+       {
+ 	if (m_diag_arg)
+ 	  return ev.formatted_print ("out-of-bounds read from bit %s till"
+ 				     " bit %s but %qE ends at bit %E",
+ 				     start_buf, end_buf, m_diag_arg,
+ 				     m_bit_bound);
+ 	return ev.formatted_print ("out-of-bounds read from bit %s till"
+ 				   " bit %s but region ends at bit %E",
+ 				   start_buf, end_buf, m_bit_bound);
+       }
+   }
+ 
+   enum access_direction get_dir () const final override { return DIR_READ; }
  };
  
  /* Concrete subclass to complain about buffer underwrites.  */
*************** public:
*** 384,392 ****
  class concrete_buffer_underwrite : public concrete_out_of_bounds
  {
  public:
!   concrete_buffer_underwrite (const region *reg, tree diag_arg,
! 			      byte_range range)
!   : concrete_out_of_bounds (reg, diag_arg, range)
    {}
  
    const char *get_kind () const final override
--- 662,672 ----
  class concrete_buffer_underwrite : public concrete_out_of_bounds
  {
  public:
!   concrete_buffer_underwrite (const region_model &model,
! 			      const region *reg, tree diag_arg,
! 			      bit_range range,
! 			      const svalue *sval_hint)
!   : concrete_out_of_bounds (model, reg, diag_arg, range, sval_hint)
    {}
  
    const char *get_kind () const final override
*************** public:
*** 394,429 ****
      return "concrete_buffer_underwrite";
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      bool warned;
!     m.add_cwe (124);
      switch (get_memory_space ())
        {
        default:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "buffer underwrite");
  	break;
        case MEMSPACE_STACK:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "stack-based buffer underwrite");
  	break;
        case MEMSPACE_HEAP:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "heap-based buffer underwrite");
  	break;
        }
      if (warned)
!       maybe_describe_array_bounds (rich_loc->get_loc ());
      return warned;
    }
  
    label_text describe_final_event (const evdesc::final_event &ev)
!   final override
    {
!     byte_size_t start = m_out_of_bounds_range.get_start_byte_offset ();
!     byte_size_t end = m_out_of_bounds_range.get_last_byte_offset ();
      char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
      print_dec (start, start_buf, SIGNED);
      char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
--- 674,715 ----
      return "concrete_buffer_underwrite";
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      bool warned;
!     ctxt.add_cwe (124);
      switch (get_memory_space ())
        {
        default:
! 	warned = ctxt.warn ("buffer underwrite");
  	break;
        case MEMSPACE_STACK:
! 	warned = ctxt.warn ("stack-based buffer underwrite");
  	break;
        case MEMSPACE_HEAP:
! 	warned = ctxt.warn ("heap-based buffer underwrite");
  	break;
        }
      if (warned)
!       maybe_show_notes (ctxt);
      return warned;
    }
  
    label_text describe_final_event (const evdesc::final_event &ev)
!     final override
    {
!     byte_range out_of_bounds_bytes (0, 0);
!     if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
!       return describe_final_event_as_bytes (ev, out_of_bounds_bytes);
!     return describe_final_event_as_bits (ev);
!   }
! 
!   label_text
!   describe_final_event_as_bytes (const evdesc::final_event &ev,
! 				 const byte_range &out_of_bounds_bytes)
!   {
!     byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
!     byte_size_t end = out_of_bounds_bytes.get_last_byte_offset ();
      char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
      print_dec (start, start_buf, SIGNED);
      char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
*************** public:
*** 433,440 ****
        {
  	if (m_diag_arg)
  	  return ev.formatted_print ("out-of-bounds write at byte %s but %qE"
! 				     " starts at byte 0", start_buf,
! 							  m_diag_arg);
  	return ev.formatted_print ("out-of-bounds write at byte %s but region"
  				   " starts at byte 0", start_buf);
        }
--- 719,726 ----
        {
  	if (m_diag_arg)
  	  return ev.formatted_print ("out-of-bounds write at byte %s but %qE"
! 				     " starts at byte 0",
! 				     start_buf, m_diag_arg);
  	return ev.formatted_print ("out-of-bounds write at byte %s but region"
  				   " starts at byte 0", start_buf);
        }
*************** public:
*** 449,454 ****
--- 735,773 ----
  				   start_buf, end_buf);;
        }
    }
+ 
+   label_text
+   describe_final_event_as_bits (const evdesc::final_event &ev)
+   {
+     bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
+     bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
+     char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
+     print_dec (start, start_buf, SIGNED);
+     char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
+     print_dec (end, end_buf, SIGNED);
+ 
+     if (start == end)
+       {
+ 	if (m_diag_arg)
+ 	  return ev.formatted_print ("out-of-bounds write at bit %s but %qE"
+ 				     " starts at bit 0",
+ 				     start_buf, m_diag_arg);
+ 	return ev.formatted_print ("out-of-bounds write at bit %s but region"
+ 				   " starts at bit 0", start_buf);
+       }
+     else
+       {
+ 	if (m_diag_arg)
+ 	  return ev.formatted_print ("out-of-bounds write from bit %s till"
+ 				     " bit %s but %qE starts at bit 0",
+ 				     start_buf, end_buf, m_diag_arg);
+ 	return ev.formatted_print ("out-of-bounds write from bit %s till"
+ 				   " bit %s but region starts at bit 0",
+ 				   start_buf, end_buf);;
+       }
+   }
+ 
+   enum access_direction get_dir () const final override { return DIR_WRITE; }
  };
  
  /* Concrete subclass to complain about buffer under-reads.  */
*************** public:
*** 456,464 ****
  class concrete_buffer_under_read : public concrete_out_of_bounds
  {
  public:
!   concrete_buffer_under_read (const region *reg, tree diag_arg,
! 			      byte_range range)
!   : concrete_out_of_bounds (reg, diag_arg, range)
    {}
  
    const char *get_kind () const final override
--- 775,784 ----
  class concrete_buffer_under_read : public concrete_out_of_bounds
  {
  public:
!   concrete_buffer_under_read (const region_model &model,
! 			      const region *reg, tree diag_arg,
! 			      bit_range range)
!   : concrete_out_of_bounds (model, reg, diag_arg, range, NULL)
    {}
  
    const char *get_kind () const final override
*************** public:
*** 466,501 ****
      return "concrete_buffer_under_read";
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      bool warned;
!     m.add_cwe (127);
      switch (get_memory_space ())
        {
        default:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "buffer under-read");
  	break;
        case MEMSPACE_STACK:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "stack-based buffer under-read");
  	break;
        case MEMSPACE_HEAP:
! 	warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			       "heap-based buffer under-read");
  	break;
        }
      if (warned)
!       maybe_describe_array_bounds (rich_loc->get_loc ());
      return warned;
    }
  
    label_text describe_final_event (const evdesc::final_event &ev)
!   final override
    {
!     byte_size_t start = m_out_of_bounds_range.get_start_byte_offset ();
!     byte_size_t end = m_out_of_bounds_range.get_last_byte_offset ();
      char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
      print_dec (start, start_buf, SIGNED);
      char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
--- 786,827 ----
      return "concrete_buffer_under_read";
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      bool warned;
!     ctxt.add_cwe (127);
      switch (get_memory_space ())
        {
        default:
! 	warned = ctxt.warn ("buffer under-read");
  	break;
        case MEMSPACE_STACK:
! 	warned = ctxt.warn ("stack-based buffer under-read");
  	break;
        case MEMSPACE_HEAP:
! 	warned = ctxt.warn ("heap-based buffer under-read");
  	break;
        }
      if (warned)
!       maybe_show_notes (ctxt);
      return warned;
    }
  
    label_text describe_final_event (const evdesc::final_event &ev)
!     final override
    {
!     byte_range out_of_bounds_bytes (0, 0);
!     if (get_out_of_bounds_bytes (&out_of_bounds_bytes))
!       return describe_final_event_as_bytes (ev, out_of_bounds_bytes);
!     return describe_final_event_as_bits (ev);
!   }
! 
!   label_text
!   describe_final_event_as_bytes (const evdesc::final_event &ev,
! 				 const byte_range &out_of_bounds_bytes)
!   {
!     byte_size_t start = out_of_bounds_bytes.get_start_byte_offset ();
!     byte_size_t end = out_of_bounds_bytes.get_last_byte_offset ();
      char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
      print_dec (start, start_buf, SIGNED);
      char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
*************** public:
*** 521,526 ****
--- 847,884 ----
  				   start_buf, end_buf);;
        }
    }
+ 
+   label_text describe_final_event_as_bits (const evdesc::final_event &ev)
+   {
+     bit_size_t start = m_out_of_bounds_bits.get_start_bit_offset ();
+     bit_size_t end = m_out_of_bounds_bits.get_last_bit_offset ();
+     char start_buf[WIDE_INT_PRINT_BUFFER_SIZE];
+     print_dec (start, start_buf, SIGNED);
+     char end_buf[WIDE_INT_PRINT_BUFFER_SIZE];
+     print_dec (end, end_buf, SIGNED);
+ 
+     if (start == end)
+       {
+ 	if (m_diag_arg)
+ 	  return ev.formatted_print ("out-of-bounds read at bit %s but %qE"
+ 				     " starts at bit 0", start_buf,
+ 							  m_diag_arg);
+ 	return ev.formatted_print ("out-of-bounds read at bit %s but region"
+ 				  " starts at bit 0", start_buf);
+       }
+     else
+       {
+ 	if (m_diag_arg)
+ 	  return ev.formatted_print ("out-of-bounds read from bit %s till"
+ 				     " bit %s but %qE starts at bit 0",
+ 				     start_buf, end_buf, m_diag_arg);
+ 	return ev.formatted_print ("out-of-bounds read from bit %s till"
+ 				   " bit %s but region starts at bit 0",
+ 				   start_buf, end_buf);;
+       }
+   }
+ 
+   enum access_direction get_dir () const final override { return DIR_READ; }
  };
  
  /* Abstract class to complain about out-of-bounds read/writes where
*************** public:
*** 529,537 ****
  class symbolic_past_the_end : public out_of_bounds
  {
  public:
!   symbolic_past_the_end (const region *reg, tree diag_arg, tree offset,
! 			 tree num_bytes, tree capacity)
!   : out_of_bounds (reg, diag_arg),
      m_offset (offset),
      m_num_bytes (num_bytes),
      m_capacity (capacity)
--- 887,897 ----
  class symbolic_past_the_end : public out_of_bounds
  {
  public:
!   symbolic_past_the_end (const region_model &model,
! 			 const region *reg, tree diag_arg, tree offset,
! 			 tree num_bytes, tree capacity,
! 			 const svalue *sval_hint)
!   : out_of_bounds (model, reg, diag_arg, sval_hint),
      m_offset (offset),
      m_num_bytes (num_bytes),
      m_capacity (capacity)
*************** public:
*** 548,553 ****
--- 908,925 ----
  	    && pending_diagnostic::same_tree_p (m_capacity, other.m_capacity));
    }
  
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const final override
+   {
+     out_of_bounds::maybe_add_sarif_properties (result_obj);
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/symbolic_past_the_end/"
+     props.set (PROPERTY_PREFIX "offset", tree_to_json (m_offset));
+     props.set (PROPERTY_PREFIX "num_bytes", tree_to_json (m_num_bytes));
+     props.set (PROPERTY_PREFIX "capacity", tree_to_json (m_capacity));
+ #undef PROPERTY_PREFIX
+   }
+ 
  protected:
    tree m_offset;
    tree m_num_bytes;
*************** protected:
*** 559,567 ****
  class symbolic_buffer_overflow : public symbolic_past_the_end
  {
  public:
!   symbolic_buffer_overflow (const region *reg, tree diag_arg, tree offset,
! 			    tree num_bytes, tree capacity)
!   : symbolic_past_the_end (reg, diag_arg, offset, num_bytes, capacity)
    {
    }
  
--- 931,942 ----
  class symbolic_buffer_overflow : public symbolic_past_the_end
  {
  public:
!   symbolic_buffer_overflow (const region_model &model,
! 			    const region *reg, tree diag_arg, tree offset,
! 			    tree num_bytes, tree capacity,
! 			    const svalue *sval_hint)
!   : symbolic_past_the_end (model, reg, diag_arg, offset, num_bytes, capacity,
! 			   sval_hint)
    {
    }
  
*************** public:
*** 570,593 ****
      return "symbolic_buffer_overflow";
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     diagnostic_metadata m;
      switch (get_memory_space ())
        {
        default:
! 	m.add_cwe (787);
! 	return warning_meta (rich_loc, m, get_controlling_option (),
! 			     "buffer overflow");
        case MEMSPACE_STACK:
! 	m.add_cwe (121);
! 	return warning_meta (rich_loc, m, get_controlling_option (),
! 			     "stack-based buffer overflow");
        case MEMSPACE_HEAP:
! 	m.add_cwe (122);
! 	return warning_meta (rich_loc, m, get_controlling_option (),
! 			     "heap-based buffer overflow");
        }
    }
  
    label_text
--- 945,971 ----
      return "symbolic_buffer_overflow";
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     bool warned;
      switch (get_memory_space ())
        {
        default:
! 	ctxt.add_cwe (787);
! 	warned = ctxt.warn ("buffer overflow");
! 	break;
        case MEMSPACE_STACK:
! 	ctxt.add_cwe (121);
! 	warned = ctxt.warn ("stack-based buffer overflow");
! 	break;
        case MEMSPACE_HEAP:
! 	ctxt.add_cwe (122);
! 	warned =  ctxt.warn ("heap-based buffer overflow");
! 	break;
        }
+     if (warned)
+       maybe_show_notes (ctxt);
+     return warned;
    }
  
    label_text
*************** public:
*** 658,663 ****
--- 1036,1043 ----
  				 m_diag_arg);
      return ev.formatted_print ("out-of-bounds write");
    }
+ 
+   enum access_direction get_dir () const final override { return DIR_WRITE; }
  };
  
  /* Concrete subclass to complain about over-reads with symbolic values.  */
*************** public:
*** 665,673 ****
  class symbolic_buffer_over_read : public symbolic_past_the_end
  {
  public:
!   symbolic_buffer_over_read (const region *reg, tree diag_arg, tree offset,
  			     tree num_bytes, tree capacity)
!   : symbolic_past_the_end (reg, diag_arg, offset, num_bytes, capacity)
    {
    }
  
--- 1045,1055 ----
  class symbolic_buffer_over_read : public symbolic_past_the_end
  {
  public:
!   symbolic_buffer_over_read (const region_model &model,
! 			     const region *reg, tree diag_arg, tree offset,
  			     tree num_bytes, tree capacity)
!   : symbolic_past_the_end (model, reg, diag_arg, offset, num_bytes, capacity,
! 			   NULL)
    {
    }
  
*************** public:
*** 676,700 ****
      return "symbolic_buffer_over_read";
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     diagnostic_metadata m;
!     m.add_cwe (126);
      switch (get_memory_space ())
        {
        default:
! 	m.add_cwe (787);
! 	return warning_meta (rich_loc, m, get_controlling_option (),
! 			     "buffer over-read");
        case MEMSPACE_STACK:
! 	m.add_cwe (121);
! 	return warning_meta (rich_loc, m, get_controlling_option (),
! 			     "stack-based buffer over-read");
        case MEMSPACE_HEAP:
! 	m.add_cwe (122);
! 	return warning_meta (rich_loc, m, get_controlling_option (),
! 			     "heap-based buffer over-read");
        }
    }
  
    label_text
--- 1058,1085 ----
      return "symbolic_buffer_over_read";
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     ctxt.add_cwe (126);
!     bool warned;
      switch (get_memory_space ())
        {
        default:
! 	ctxt.add_cwe (787);
! 	warned = ctxt.warn ("buffer over-read");
! 	break;
        case MEMSPACE_STACK:
! 	ctxt.add_cwe (121);
! 	warned = ctxt.warn ("stack-based buffer over-read");
! 	break;
        case MEMSPACE_HEAP:
! 	ctxt.add_cwe (122);
! 	warned = ctxt.warn ("heap-based buffer over-read");
! 	break;
        }
+     if (warned)
+       maybe_show_notes (ctxt);
+     return warned;
    }
  
    label_text
*************** public:
*** 765,815 ****
  				 m_diag_arg);
      return ev.formatted_print ("out-of-bounds read");
    }
  };
  
! /* Check whether an access is past the end of the BASE_REG.  */
  
! void
  region_model::check_symbolic_bounds (const region *base_reg,
  				     const svalue *sym_byte_offset,
  				     const svalue *num_bytes_sval,
  				     const svalue *capacity,
  				     enum access_direction dir,
  				     region_model_context *ctxt) const
  {
    gcc_assert (ctxt);
  
    const svalue *next_byte
!     = m_mgr->get_or_create_binop (num_bytes_sval->get_type (), PLUS_EXPR,
  				  sym_byte_offset, num_bytes_sval);
  
    if (eval_condition (next_byte, GT_EXPR, capacity).is_true ())
      {
        tree diag_arg = get_representative_tree (base_reg);
        tree offset_tree = get_representative_tree (sym_byte_offset);
        tree num_bytes_tree = get_representative_tree (num_bytes_sval);
        tree capacity_tree = get_representative_tree (capacity);
        switch (dir)
  	{
  	default:
  	  gcc_unreachable ();
  	  break;
  	case DIR_READ:
! 	  ctxt->warn (make_unique<symbolic_buffer_over_read> (base_reg,
  							      diag_arg,
  							      offset_tree,
  							      num_bytes_tree,
  							      capacity_tree));
  	  break;
  	case DIR_WRITE:
! 	  ctxt->warn (make_unique<symbolic_buffer_overflow> (base_reg,
  							     diag_arg,
  							     offset_tree,
  							     num_bytes_tree,
! 							     capacity_tree));
  	  break;
  	}
      }
  }
  
  static tree
--- 1150,1363 ----
  				 m_diag_arg);
      return ev.formatted_print ("out-of-bounds read");
    }
+ 
+   enum access_direction get_dir () const final override { return DIR_READ; }
  };
  
! const svalue *
! strip_types (const svalue *sval,
! 	     region_model_manager &mgr)
! {
!   switch (sval->get_kind ())
!     {
!     default:
!       gcc_unreachable ();
!     case SK_REGION:
!       {
! 	const region_svalue *region_sval = (const region_svalue *)sval;
! 	return mgr.get_ptr_svalue (NULL_TREE, region_sval->get_pointee ());
!       }
!     case SK_CONSTANT:
!       return sval;
!     case SK_UNKNOWN:
!       return mgr.get_or_create_unknown_svalue (NULL_TREE);
!     case SK_POISONED:
!       {
! 	const poisoned_svalue *poisoned_sval = (const poisoned_svalue *)sval;
! 	return mgr.get_or_create_poisoned_svalue
! 	  (poisoned_sval->get_poison_kind (),
! 	   NULL_TREE);
!       }
!     case SK_SETJMP:
!       return sval;
!     case SK_INITIAL:
!       return sval;
!     case SK_UNARYOP:
!       {
! 	const unaryop_svalue *unaryop_sval = (const unaryop_svalue *)sval;
! 	const enum tree_code op = unaryop_sval->get_op ();
! 	if (op == VIEW_CONVERT_EXPR || op == NOP_EXPR)
! 	  return strip_types (unaryop_sval->get_arg (), mgr);
! 	return mgr.get_or_create_unaryop
! 	  (NULL_TREE,
! 	   op,
! 	   strip_types (unaryop_sval->get_arg (), mgr));
!       }
!     case SK_BINOP:
!       {
! 	const binop_svalue *binop_sval = (const binop_svalue *)sval;
! 	const enum tree_code op = binop_sval->get_op ();
! 	return mgr.get_or_create_binop
! 	  (NULL_TREE,
! 	   op,
! 	   strip_types (binop_sval->get_arg0 (), mgr),
! 	   strip_types (binop_sval->get_arg1 (), mgr));
!       }
!     case SK_SUB:
!       {
! 	const sub_svalue *sub_sval = (const sub_svalue *)sval;
! 	return mgr.get_or_create_sub_svalue
! 	  (NULL_TREE,
! 	   strip_types (sub_sval->get_parent (), mgr),
! 	   sub_sval->get_subregion ());
!       }
!     case SK_REPEATED:
!       {
! 	const repeated_svalue *repeated_sval = (const repeated_svalue *)sval;
! 	return mgr.get_or_create_repeated_svalue
! 	  (NULL_TREE,
! 	   strip_types (repeated_sval->get_outer_size (), mgr),
! 	   strip_types (repeated_sval->get_inner_svalue (), mgr));
!       }
!     case SK_BITS_WITHIN:
!       {
! 	const bits_within_svalue *bits_within_sval
! 	  = (const bits_within_svalue *)sval;
! 	return mgr.get_or_create_bits_within
! 	  (NULL_TREE,
! 	   bits_within_sval->get_bits (),
! 	   strip_types (bits_within_sval->get_inner_svalue (), mgr));
!       }
!     case SK_UNMERGEABLE:
!       {
! 	const unmergeable_svalue *unmergeable_sval
! 	  = (const unmergeable_svalue *)sval;
! 	return mgr.get_or_create_unmergeable
! 	  (strip_types (unmergeable_sval->get_arg (), mgr));
!       }
!     case SK_PLACEHOLDER:
!       return sval;
!     case SK_WIDENING:
!       {
! 	const widening_svalue *widening_sval = (const widening_svalue *)sval;
! 	return mgr.get_or_create_widening_svalue
! 	  (NULL_TREE,
! 	   widening_sval->get_point (),
! 	   strip_types (widening_sval->get_base_svalue (), mgr),
! 	   strip_types (widening_sval->get_iter_svalue (), mgr));
!       }
!     case SK_COMPOUND:
!       {
! 	const compound_svalue *compound_sval = (const compound_svalue *)sval;
! 	binding_map typeless_map;
! 	for (auto iter : compound_sval->get_map ())
! 	  {
! 	    const binding_key *key = iter.first;
! 	    const svalue *bound_sval = iter.second;
! 	    typeless_map.put (key, strip_types (bound_sval, mgr));
! 	  }
! 	return mgr.get_or_create_compound_svalue (NULL_TREE, typeless_map);
!       }
!     case SK_CONJURED:
!       return sval;
!     case SK_ASM_OUTPUT:
!       {
! 	const asm_output_svalue *asm_output_sval
! 	  = (const asm_output_svalue *)sval;
! 	auto_vec<const svalue *> typeless_inputs
! 	  (asm_output_sval->get_num_inputs ());
! 	for (unsigned idx = 0; idx < asm_output_sval->get_num_inputs (); idx++)
! 	  typeless_inputs.quick_push
! 	    (strip_types (asm_output_sval->get_input (idx),
! 			  mgr));
! 	return mgr.get_or_create_asm_output_svalue
! 	  (NULL_TREE,
! 	   asm_output_sval->get_asm_string (),
! 	   asm_output_sval->get_output_idx (),
! 	   asm_output_sval->get_num_outputs (),
! 	   typeless_inputs);
!       }
!     case SK_CONST_FN_RESULT:
!       {
! 	const const_fn_result_svalue *const_fn_result_sval
! 	  = (const const_fn_result_svalue *)sval;
! 	auto_vec<const svalue *> typeless_inputs
! 	  (const_fn_result_sval->get_num_inputs ());
! 	for (unsigned idx = 0;
! 	     idx < const_fn_result_sval->get_num_inputs ();
! 	     idx++)
! 	  typeless_inputs.quick_push
! 	    (strip_types (const_fn_result_sval->get_input (idx),
! 			  mgr));
! 	return mgr.get_or_create_const_fn_result_svalue
! 	  (NULL_TREE,
! 	   const_fn_result_sval->get_fndecl (),
! 	   typeless_inputs);
!       }
!     }
! }
  
! /* Check whether an access is past the end of the BASE_REG.
!   Return TRUE if the access was valid, FALSE otherwise.  */
! 
! bool
  region_model::check_symbolic_bounds (const region *base_reg,
  				     const svalue *sym_byte_offset,
  				     const svalue *num_bytes_sval,
  				     const svalue *capacity,
  				     enum access_direction dir,
+ 				     const svalue *sval_hint,
  				     region_model_context *ctxt) const
  {
    gcc_assert (ctxt);
  
    const svalue *next_byte
!     = m_mgr->get_or_create_binop (NULL_TREE, PLUS_EXPR,
  				  sym_byte_offset, num_bytes_sval);
  
+   next_byte = strip_types (next_byte, *m_mgr);
+   capacity = strip_types (capacity, *m_mgr);
+ 
    if (eval_condition (next_byte, GT_EXPR, capacity).is_true ())
      {
        tree diag_arg = get_representative_tree (base_reg);
        tree offset_tree = get_representative_tree (sym_byte_offset);
        tree num_bytes_tree = get_representative_tree (num_bytes_sval);
        tree capacity_tree = get_representative_tree (capacity);
+       const region *offset_reg = m_mgr->get_offset_region (base_reg,
+ 							   NULL_TREE,
+ 							   sym_byte_offset);
+       const region *sized_offset_reg = m_mgr->get_sized_region (offset_reg,
+ 								NULL_TREE,
+ 								num_bytes_sval);
        switch (dir)
  	{
  	default:
  	  gcc_unreachable ();
  	  break;
  	case DIR_READ:
! 	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn (make_unique<symbolic_buffer_over_read> (*this,
! 							      sized_offset_reg,
  							      diag_arg,
  							      offset_tree,
  							      num_bytes_tree,
  							      capacity_tree));
+ 	  return false;
  	  break;
  	case DIR_WRITE:
! 	  ctxt->warn (make_unique<symbolic_buffer_overflow> (*this,
! 							     sized_offset_reg,
  							     diag_arg,
  							     offset_tree,
  							     num_bytes_tree,
! 							     capacity_tree,
! 							     sval_hint));
! 	  return false;
  	  break;
  	}
      }
+   return true;
  }
  
  static tree
*************** maybe_get_integer_cst_tree (const svalue
*** 822,832 ****
    return NULL_TREE;
  }
  
! /* May complain when the access on REG is out-of-bounds.  */
  
! void
  region_model::check_region_bounds (const region *reg,
  				   enum access_direction dir,
  				   region_model_context *ctxt) const
  {
    gcc_assert (ctxt);
--- 1370,1382 ----
    return NULL_TREE;
  }
  
! /* May complain when the access on REG is out-of-bounds.
!    Return TRUE if the access was valid, FALSE otherwise.  */
  
! bool
  region_model::check_region_bounds (const region *reg,
  				   enum access_direction dir,
+ 				   const svalue *sval_hint,
  				   region_model_context *ctxt) const
  {
    gcc_assert (ctxt);
*************** region_model::check_region_bounds (const
*** 835,856 ****
    region_offset reg_offset = reg->get_offset (m_mgr);
    const region *base_reg = reg_offset.get_base_region ();
  
!   /* Bail out on symbolic regions.
!      (e.g. because the analyzer did not see previous offsets on the latter,
!      it might think that a negative access is before the buffer).  */
!   if (base_reg->symbolic_p ())
!     return;
! 
!   /* Find out how many bytes were accessed.  */
!   const svalue *num_bytes_sval = reg->get_byte_size_sval (m_mgr);
!   tree num_bytes_tree = maybe_get_integer_cst_tree (num_bytes_sval);
!   /* Bail out if 0 bytes are accessed.  */
!   if (num_bytes_tree && zerop (num_bytes_tree))
!     return;
  
!   /* Get the capacity of the buffer.  */
!   const svalue *capacity = get_capacity (base_reg);
!   tree cst_capacity_tree = maybe_get_integer_cst_tree (capacity);
  
    /* The constant offset from a pointer is represented internally as a sizetype
       but should be interpreted as a signed value here.  The statement below
--- 1385,1400 ----
    region_offset reg_offset = reg->get_offset (m_mgr);
    const region *base_reg = reg_offset.get_base_region ();
  
!   /* Find out how many bits were accessed.  */
!   const svalue *num_bits_sval = reg->get_bit_size_sval (m_mgr);
!   tree num_bits_tree = maybe_get_integer_cst_tree (num_bits_sval);
!   /* Bail out if 0 bits are accessed.  */
!   if (num_bits_tree && zerop (num_bits_tree))
! 	  return true;
  
!   /* Get the capacity of the buffer (in bytes).  */
!   const svalue *byte_capacity = get_capacity (base_reg);
!   tree cst_byte_capacity_tree = maybe_get_integer_cst_tree (byte_capacity);
  
    /* The constant offset from a pointer is represented internally as a sizetype
       but should be interpreted as a signed value here.  The statement below
*************** region_model::check_region_bounds (const
*** 859,894 ****
  
       For example, this is needed for out-of-bounds-3.c test1 to pass when
       compiled with a 64-bit gcc build targeting 32-bit systems.  */
!   byte_offset_t offset;
    if (!reg_offset.symbolic_p ())
!     offset = wi::sext (reg_offset.get_bit_offset () >> LOG2_BITS_PER_UNIT,
! 		       TYPE_PRECISION (size_type_node));
  
!   /* If either the offset or the number of bytes accessed are symbolic,
!      we have to reason about symbolic values.  */
!   if (reg_offset.symbolic_p () || !num_bytes_tree)
      {
        const svalue* byte_offset_sval;
        if (!reg_offset.symbolic_p ())
  	{
! 	  tree offset_tree = wide_int_to_tree (integer_type_node, offset);
  	  byte_offset_sval
! 	    = m_mgr->get_or_create_constant_svalue (offset_tree);
  	}
        else
  	byte_offset_sval = reg_offset.get_symbolic_byte_offset ();
!       check_symbolic_bounds (base_reg, byte_offset_sval, num_bytes_sval,
! 			     capacity, dir, ctxt);
!       return;
      }
  
    /* Otherwise continue to check with concrete values.  */
!   byte_range out (0, 0);
!   /* NUM_BYTES_TREE should always be interpreted as unsigned.  */
!   byte_offset_t num_bytes_unsigned = wi::to_offset (num_bytes_tree);
!   byte_range read_bytes (offset, num_bytes_unsigned);
!   /* If read_bytes has a subset < 0, we do have an underwrite.  */
!   if (read_bytes.falls_short_of_p (0, &out))
      {
        tree diag_arg = get_representative_tree (base_reg);
        switch (dir)
--- 1403,1441 ----
  
       For example, this is needed for out-of-bounds-3.c test1 to pass when
       compiled with a 64-bit gcc build targeting 32-bit systems.  */
!   bit_offset_t bit_offset;
    if (!reg_offset.symbolic_p ())
!     bit_offset = wi::sext (reg_offset.get_bit_offset (),
! 			   TYPE_PRECISION (size_type_node));
  
!   /* If any of the base region, the offset, or the number of bytes accessed
!      are symbolic, we have to reason about symbolic values.  */
!   if (base_reg->symbolic_p () || reg_offset.symbolic_p () || !num_bits_tree)
      {
        const svalue* byte_offset_sval;
        if (!reg_offset.symbolic_p ())
  	{
! 	  tree byte_offset_tree
! 	    = wide_int_to_tree (integer_type_node,
! 				bit_offset >> LOG2_BITS_PER_UNIT);
  	  byte_offset_sval
! 	    = m_mgr->get_or_create_constant_svalue (byte_offset_tree);
  	}
        else
  	byte_offset_sval = reg_offset.get_symbolic_byte_offset ();
!       const svalue *num_bytes_sval = reg->get_byte_size_sval (m_mgr);
!       return check_symbolic_bounds (base_reg, byte_offset_sval, num_bytes_sval,
! 				    byte_capacity, dir, sval_hint, ctxt);
      }
  
    /* Otherwise continue to check with concrete values.  */
!   bit_range bits_outside (0, 0);
!   bool oob_safe = true;
!   /* NUM_BITS_TREE should always be interpreted as unsigned.  */
!   bit_offset_t num_bits_unsigned = wi::to_offset (num_bits_tree);
!   bit_range read_bits (bit_offset, num_bits_unsigned);
!   /* If read_bits has a subset < 0, we do have an underwrite.  */
!   if (read_bits.falls_short_of_p (0, &bits_outside))
      {
        tree diag_arg = get_representative_tree (base_reg);
        switch (dir)
*************** region_model::check_region_bounds (const
*** 897,908 ****
  	  gcc_unreachable ();
  	  break;
  	case DIR_READ:
! 	  ctxt->warn (make_unique<concrete_buffer_under_read> (reg, diag_arg,
! 							       out));
  	  break;
  	case DIR_WRITE:
! 	  ctxt->warn (make_unique<concrete_buffer_underwrite> (reg, diag_arg,
! 							       out));
  	  break;
  	}
      }
--- 1444,1461 ----
  	  gcc_unreachable ();
  	  break;
  	case DIR_READ:
! 	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn (make_unique<concrete_buffer_under_read> (*this, reg,
! 							       diag_arg,
! 							       bits_outside));
! 	  oob_safe = false;
  	  break;
  	case DIR_WRITE:
! 	  ctxt->warn (make_unique<concrete_buffer_underwrite> (*this,
! 							       reg, diag_arg,
! 							       bits_outside,
! 							       sval_hint));
! 	  oob_safe = false;
  	  break;
  	}
      }
*************** region_model::check_region_bounds (const
*** 910,924 ****
    /* For accesses past the end, we do need a concrete capacity.  No need to
       do a symbolic check here because the inequality check does not reason
       whether constants are greater than symbolic values.  */
!   if (!cst_capacity_tree)
!     return;
  
!   byte_range buffer (0, wi::to_offset (cst_capacity_tree));
!   /* If READ_BYTES exceeds BUFFER, we do have an overflow.  */
!   if (read_bytes.exceeds_p (buffer, &out))
      {
!       tree byte_bound = wide_int_to_tree (size_type_node,
! 					  buffer.get_next_byte_offset ());
        tree diag_arg = get_representative_tree (base_reg);
  
        switch (dir)
--- 1463,1477 ----
    /* For accesses past the end, we do need a concrete capacity.  No need to
       do a symbolic check here because the inequality check does not reason
       whether constants are greater than symbolic values.  */
!   if (!cst_byte_capacity_tree)
!     return oob_safe;
  
!   bit_range buffer (0, wi::to_offset (cst_byte_capacity_tree) * BITS_PER_UNIT);
!   /* If READ_BITS exceeds BUFFER, we do have an overflow.  */
!   if (read_bits.exceeds_p (buffer, &bits_outside))
      {
!       tree bit_bound = wide_int_to_tree (size_type_node,
! 					 buffer.get_next_bit_offset ());
        tree diag_arg = get_representative_tree (base_reg);
  
        switch (dir)
*************** region_model::check_region_bounds (const
*** 927,941 ****
  	  gcc_unreachable ();
  	  break;
  	case DIR_READ:
! 	  ctxt->warn (make_unique<concrete_buffer_over_read> (reg, diag_arg,
! 							      out, byte_bound));
  	  break;
  	case DIR_WRITE:
! 	  ctxt->warn (make_unique<concrete_buffer_overflow> (reg, diag_arg,
! 							     out, byte_bound));
  	  break;
  	}
      }
  }
  
  } // namespace ana
--- 1480,1503 ----
  	  gcc_unreachable ();
  	  break;
  	case DIR_READ:
! 	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn (make_unique<concrete_buffer_over_read> (*this,
! 							      reg, diag_arg,
! 							      bits_outside,
! 							      bit_bound));
! 	  oob_safe = false;
  	  break;
  	case DIR_WRITE:
! 	  ctxt->warn (make_unique<concrete_buffer_overflow> (*this,
! 							     reg, diag_arg,
! 							     bits_outside,
! 							     bit_bound,
! 							     sval_hint));
! 	  oob_safe = false;
  	  break;
  	}
      }
+   return oob_safe;
  }
  
  } // namespace ana
diff -Nrcpad gcc-13.2.0/gcc/analyzer/call-details.cc gcc-14.1.0/gcc/analyzer/call-details.cc
*** gcc-13.2.0/gcc/analyzer/call-details.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/call-details.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 34,39 ****
--- 34,44 ----
  #include "gimple-pretty-print.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
+ #include "analyzer/ranges.h"
+ #include "stringpool.h"
+ #include "attribs.h"
+ #include "make-unique.h"
+ #include "diagnostic-format-sarif.h"
  
  #if ENABLE_ANALYZER
  
*************** call_details::call_details (const gcall
*** 56,61 ****
--- 61,76 ----
      }
  }
  
+ /* call_details's ctor: copy CD, but override the context,
+    using CTXT instead.  */
+ 
+ call_details::call_details (const call_details &cd,
+ 			    region_model_context *ctxt)
+ {
+   *this = cd;
+   m_ctxt = ctxt;
+ }
+ 
  /* Get the manager from m_model.  */
  
  region_model_manager *
*************** call_details::maybe_set_lhs (const svalu
*** 103,108 ****
--- 118,252 ----
      return false;
  }
  
+ /* Return true if CD is known to be a call to a function with
+    __attribute__((const)).  */
+ 
+ static bool
+ const_fn_p (const call_details &cd)
+ {
+   tree fndecl = cd.get_fndecl_for_call ();
+   if (!fndecl)
+     return false;
+   gcc_assert (DECL_P (fndecl));
+   return TREE_READONLY (fndecl);
+ }
+ 
+ /* If this CD is known to be a call to a function with
+    __attribute__((const)), attempt to get a const_fn_result_svalue
+    based on the arguments, or return NULL otherwise.  */
+ 
+ static const svalue *
+ maybe_get_const_fn_result (const call_details &cd)
+ {
+   if (!const_fn_p (cd))
+     return NULL;
+ 
+   unsigned num_args = cd.num_args ();
+   if (num_args > const_fn_result_svalue::MAX_INPUTS)
+     /* Too many arguments.  */
+     return NULL;
+ 
+   auto_vec<const svalue *> inputs (num_args);
+   for (unsigned arg_idx = 0; arg_idx < num_args; arg_idx++)
+     {
+       const svalue *arg_sval = cd.get_arg_svalue (arg_idx);
+       if (!arg_sval->can_have_associated_state_p ())
+ 	return NULL;
+       inputs.quick_push (arg_sval);
+     }
+ 
+   region_model_manager *mgr = cd.get_manager ();
+   const svalue *sval
+     = mgr->get_or_create_const_fn_result_svalue (cd.get_lhs_type (),
+ 						 cd.get_fndecl_for_call (),
+ 						 inputs);
+   return sval;
+ }
+ 
+ /* Look for attribute "alloc_size" on the called function and, if found,
+    return a symbolic value of type size_type_node for the allocation size
+    based on the call's parameters.
+    Otherwise, return null.  */
+ 
+ static const svalue *
+ get_result_size_in_bytes (const call_details &cd)
+ {
+   const tree attr = cd.lookup_function_attribute ("alloc_size");
+   if (!attr)
+     return nullptr;
+ 
+   const tree atval_1 = TREE_VALUE (attr);
+   if (!atval_1)
+     return nullptr;
+ 
+   unsigned argidx1 = TREE_INT_CST_LOW (TREE_VALUE (atval_1)) - 1;
+   if (cd.num_args () <= argidx1)
+     return nullptr;
+ 
+   const svalue *sval_arg1 = cd.get_arg_svalue (argidx1);
+ 
+   if (const tree atval_2 = TREE_CHAIN (atval_1))
+     {
+       /* Two arguments.  */
+       unsigned argidx2 = TREE_INT_CST_LOW (TREE_VALUE (atval_2)) - 1;
+       if (cd.num_args () <= argidx2)
+ 	return nullptr;
+       const svalue *sval_arg2 = cd.get_arg_svalue (argidx2);
+       /* TODO: ideally we shouldn't need this cast here;
+ 	 see PR analyzer/110902.  */
+       return cd.get_manager ()->get_or_create_cast
+ 	(size_type_node,
+ 	 cd.get_manager ()->get_or_create_binop (size_type_node,
+ 						 MULT_EXPR,
+ 						 sval_arg1, sval_arg2));
+     }
+   else
+     /* Single argument.  */
+     return cd.get_manager ()->get_or_create_cast (size_type_node, sval_arg1);
+ }
+ 
+ /* If this call has an LHS, assign a value to it based on attributes
+    of the function:
+    - if __attribute__((const)), use a const_fn_result_svalue,
+    - if __attribute__((malloc)), use a heap-allocated region with
+    unknown content
+    - otherwise, use a conjured_svalue.
+ 
+    If __attribute__((alloc_size), set the dynamic extents on the region
+    pointed to.  */
+ 
+ void
+ call_details::set_any_lhs_with_defaults () const
+ {
+   if (!m_lhs_region)
+     return;
+ 
+   const svalue *sval = maybe_get_const_fn_result (*this);
+   if (!sval)
+     {
+       region_model_manager *mgr = get_manager ();
+       if (lookup_function_attribute ("malloc"))
+ 	{
+ 	  const region *new_reg
+ 	    = m_model->get_or_create_region_for_heap_alloc (NULL, m_ctxt);
+ 	  m_model->mark_region_as_unknown (new_reg, NULL);
+ 	  sval = mgr->get_ptr_svalue (get_lhs_type (), new_reg);
+ 	}
+       else
+ 	/* For the common case of functions without __attribute__((const)),
+ 	   use a conjured value, and purge any prior state involving that
+ 	   value (in case this is in a loop).  */
+ 	sval = get_or_create_conjured_svalue (m_lhs_region);
+       if (const svalue *size_in_bytes = get_result_size_in_bytes (*this))
+ 	{
+ 	  const region *reg
+ 	    = m_model->deref_rvalue (sval, NULL_TREE, m_ctxt, false);
+ 	  m_model->set_dynamic_extents (reg, size_in_bytes, m_ctxt);
+ 	}
+     }
+   maybe_set_lhs (sval);
+ }
+ 
  /* Return the number of arguments used by the call statement.  */
  
  unsigned
*************** call_details::get_arg_svalue (unsigned i
*** 152,157 ****
--- 296,312 ----
    return m_model->get_rvalue (arg, m_ctxt);
  }
  
+ /* If argument IDX's svalue at the callsite is of pointer type,
+    return the region it points to.
+    Otherwise return NULL.  */
+ 
+ const region *
+ call_details::deref_ptr_arg (unsigned idx) const
+ {
+   const svalue *ptr_sval = get_arg_svalue (idx);
+   return m_model->deref_rvalue (ptr_sval, get_arg_tree (idx), m_ctxt);
+ }
+ 
  /* Attempt to get the string literal for argument IDX, or return NULL
     otherwise.
     For use when implementing "__analyzer_*" functions that take
*************** call_details::get_or_create_conjured_sva
*** 226,231 ****
--- 381,552 ----
  					     conjured_purge (m_model, m_ctxt));
  }
  
+ /* Look for a function attribute with name ATTR_NAME on the called
+    function (or on its type).
+    Return the attribute if one is found, otherwise return NULL_TREE.  */
+ 
+ tree
+ call_details::lookup_function_attribute (const char *attr_name) const
+ {
+   tree allocfntype;
+   if (tree fndecl = get_fndecl_for_call ())
+     allocfntype = TREE_TYPE (fndecl);
+   else
+     allocfntype = gimple_call_fntype (m_call);
+ 
+   if (!allocfntype)
+     return NULL_TREE;
+ 
+   return lookup_attribute (attr_name, TYPE_ATTRIBUTES (allocfntype));
+ }
+ 
+ void
+ call_details::check_for_null_terminated_string_arg (unsigned arg_idx) const
+ {
+   check_for_null_terminated_string_arg (arg_idx, false, nullptr);
+ }
+ 
+ const svalue *
+ call_details::
+ check_for_null_terminated_string_arg (unsigned arg_idx,
+ 				      bool include_terminator,
+ 				      const svalue **out_sval) const
+ {
+   region_model *model = get_model ();
+   return model->check_for_null_terminated_string_arg (*this,
+ 						      arg_idx,
+ 						      include_terminator,
+ 						      out_sval);
+ }
+ 
+ /* A subclass of pending_diagnostic for complaining about overlapping
+    buffers.  */
+ 
+ class overlapping_buffers
+ : public pending_diagnostic_subclass<overlapping_buffers>
+ {
+ public:
+   overlapping_buffers (tree fndecl,
+ 		       const symbolic_byte_range &byte_range_a,
+ 		       const symbolic_byte_range &byte_range_b,
+ 		       const svalue *num_bytes_read_sval)
+   : m_fndecl (fndecl),
+     m_byte_range_a (byte_range_a),
+     m_byte_range_b (byte_range_b),
+     m_num_bytes_read_sval (num_bytes_read_sval)
+   {
+   }
+ 
+   const char *get_kind () const final override
+   {
+     return "overlapping_buffers";
+   }
+ 
+   bool operator== (const overlapping_buffers &other) const
+   {
+     return m_fndecl == other.m_fndecl;
+   }
+ 
+   int get_controlling_option () const final override
+   {
+     return OPT_Wanalyzer_overlapping_buffers;
+   }
+ 
+   bool emit (diagnostic_emission_context &ctxt) final override
+   {
+     auto_diagnostic_group d;
+ 
+     bool warned = ctxt.warn ("overlapping buffers passed as arguments to %qD",
+ 			     m_fndecl);
+ 
+     // TODO: draw a picture?
+ 
+     if (warned)
+       inform (DECL_SOURCE_LOCATION (m_fndecl),
+ 	      "the behavior of %qD is undefined for overlapping buffers",
+ 	      m_fndecl);
+ 
+     return warned;
+   }
+ 
+   label_text describe_final_event (const evdesc::final_event &ev) final override
+   {
+     return ev.formatted_print
+       ("overlapping buffers passed as arguments to %qD",
+        m_fndecl);
+   }
+ 
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const final override
+   {
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/overlapping_buffers/"
+     props.set (PROPERTY_PREFIX "bytes_range_a",
+ 	       m_byte_range_a.to_json ());
+     props.set (PROPERTY_PREFIX "bytes_range_b",
+ 	       m_byte_range_b.to_json ());
+     props.set (PROPERTY_PREFIX "num_bytes_read_sval",
+ 	       m_num_bytes_read_sval->to_json ());
+ #undef PROPERTY_PREFIX
+   }
+ 
+ private:
+   tree m_fndecl;
+   symbolic_byte_range m_byte_range_a;
+   symbolic_byte_range m_byte_range_b;
+   const svalue *m_num_bytes_read_sval;
+ };
+ 
+ 
+ /* Check if the buffers pointed to by arguments ARG_IDX_A and ARG_IDX_B
+    (zero-based) overlap, when considering them both to be of size
+    NUM_BYTES_READ_SVAL.
+ 
+    If they do overlap, complain to the context.  */
+ 
+ void
+ call_details::complain_about_overlap (unsigned arg_idx_a,
+ 				      unsigned arg_idx_b,
+ 				      const svalue *num_bytes_read_sval) const
+ {
+   region_model_context *ctxt = get_ctxt ();
+   if (!ctxt)
+     return;
+ 
+   region_model *model = get_model ();
+   region_model_manager *mgr = model->get_manager ();
+ 
+   const svalue *arg_a_ptr_sval = get_arg_svalue (arg_idx_a);
+   if (arg_a_ptr_sval->get_kind () == SK_UNKNOWN)
+     return;
+   const region *arg_a_reg = model->deref_rvalue (arg_a_ptr_sval,
+ 						 get_arg_tree (arg_idx_a),
+ 						 ctxt);
+   const svalue *arg_b_ptr_sval = get_arg_svalue (arg_idx_b);
+   if (arg_b_ptr_sval->get_kind () == SK_UNKNOWN)
+     return;
+   const region *arg_b_reg = model->deref_rvalue (arg_b_ptr_sval,
+ 						 get_arg_tree (arg_idx_b),
+ 						 ctxt);
+   if (arg_a_reg->get_base_region () != arg_b_reg->get_base_region ())
+     return;
+ 
+   /* Are they within NUM_BYTES_READ_SVAL of each other?  */
+   symbolic_byte_range byte_range_a (arg_a_reg->get_offset (mgr),
+ 				    num_bytes_read_sval,
+ 				    *mgr);
+   symbolic_byte_range byte_range_b (arg_b_reg->get_offset (mgr),
+ 				    num_bytes_read_sval,
+ 				    *mgr);
+   if (!byte_range_a.intersection (byte_range_b, *model).is_true ())
+     return;
+ 
+   ctxt->warn (make_unique<overlapping_buffers> (get_fndecl_for_call (),
+ 						byte_range_a,
+ 						byte_range_b,
+ 						num_bytes_read_sval));
+ }
+ 
  } // namespace ana
  
  #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/call-details.h gcc-14.1.0/gcc/analyzer/call-details.h
*** gcc-13.2.0/gcc/analyzer/call-details.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/call-details.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class call_details
*** 30,35 ****
--- 30,36 ----
  public:
    call_details (const gcall *call, region_model *model,
  		region_model_context *ctxt);
+   call_details (const call_details &cd, region_model_context *ctxt);
  
    region_model *get_model () const { return m_model; }
    region_model_manager *get_manager () const;
*************** public:
*** 41,46 ****
--- 42,48 ----
    const region *get_lhs_region () const { return m_lhs_region; }
  
    bool maybe_set_lhs (const svalue *result) const;
+   void set_any_lhs_with_defaults () const;
  
    unsigned num_args () const;
    bool arg_is_pointer_p (unsigned idx) const
*************** public:
*** 48,53 ****
--- 50,59 ----
      return POINTER_TYPE_P (get_arg_type (idx));
    }
    bool arg_is_size_p (unsigned idx) const;
+   bool arg_is_integral_p (unsigned idx) const
+   {
+     return INTEGRAL_TYPE_P (get_arg_type (idx));
+   }
  
    const gcall *get_call_stmt () const { return m_call; }
    location_t get_location () const;
*************** public:
*** 55,60 ****
--- 61,67 ----
    tree get_arg_tree (unsigned idx) const;
    tree get_arg_type (unsigned idx) const;
    const svalue *get_arg_svalue (unsigned idx) const;
+   const region *deref_ptr_arg (unsigned idx) const;
    const char *get_arg_string_literal (unsigned idx) const;
  
    tree get_fndecl_for_call () const;
*************** public:
*** 64,69 ****
--- 71,90 ----
  
    const svalue *get_or_create_conjured_svalue (const region *) const;
  
+   tree lookup_function_attribute (const char *attr_name) const;
+ 
+   void
+   check_for_null_terminated_string_arg (unsigned arg_idx) const;
+   const svalue *
+   check_for_null_terminated_string_arg (unsigned arg_idx,
+ 					bool include_terminator,
+ 					const svalue **out_sval) const;
+ 
+   void
+   complain_about_overlap (unsigned arg_idx_a,
+ 			  unsigned arg_idx_b,
+ 			  const svalue *num_bytes_read_sval) const;
+ 
  private:
    const gcall *m_call;
    region_model *m_model;
*************** private:
*** 72,77 ****
--- 93,127 ----
    const region *m_lhs_region;
  };
  
+ /* A bundle of information about a problematic argument at a callsite
+    for use by pending_diagnostic subclasses for reporting and
+    for deduplication.  */
+ 
+ struct call_arg_details
+ {
+ public:
+   call_arg_details (const call_details &cd, unsigned arg_idx)
+   : m_call (cd.get_call_stmt ()),
+     m_called_fndecl (cd.get_fndecl_for_call ()),
+     m_arg_idx (arg_idx),
+     m_arg_expr (cd.get_arg_tree (arg_idx))
+   {
+   }
+ 
+   bool operator== (const call_arg_details &other) const
+   {
+     return (m_call == other.m_call
+ 	    && m_called_fndecl == other.m_called_fndecl
+ 	    && m_arg_idx == other.m_arg_idx
+ 	    && pending_diagnostic::same_tree_p (m_arg_expr, other.m_arg_expr));
+   }
+ 
+   const gcall *m_call;
+   tree m_called_fndecl;
+   unsigned m_arg_idx; // 0-based
+   tree m_arg_expr;
+ };
+ 
  } // namespace ana
  
  #endif /* GCC_ANALYZER_CALL_DETAILS_H */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/call-info.cc gcc-14.1.0/gcc/analyzer/call-info.cc
*** gcc-13.2.0/gcc/analyzer/call-info.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/call-info.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** call_info::call_info (const call_details
*** 142,147 ****
--- 142,155 ----
  {
    gcc_assert (m_fndecl);
  }
+ 
+ call_info::call_info (const call_details &cd,
+ 		      const function &called_fn)
+ : m_call_stmt (cd.get_call_stmt ()),
+   m_fndecl (called_fn.decl)
+ {
+   gcc_assert (m_fndecl);
+ }
  
  /* class succeed_or_fail_call_info : public call_info.  */
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/call-info.h gcc-14.1.0/gcc/analyzer/call-info.h
*** gcc-13.2.0/gcc/analyzer/call-info.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/call-info.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 44,49 ****
--- 44,50 ----
  
  protected:
    call_info (const call_details &cd);
+   call_info (const call_details &cd, const function &called_fn);
  
  private:
    const gcall *m_call_stmt;
diff -Nrcpad gcc-13.2.0/gcc/analyzer/call-string.cc gcc-14.1.0/gcc/analyzer/call-string.cc
*** gcc-13.2.0/gcc/analyzer/call-string.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/call-string.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Call stacks at program points.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Call stacks at program points.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/call-string.h gcc-14.1.0/gcc/analyzer/call-string.h
*** gcc-13.2.0/gcc/analyzer/call-string.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/call-string.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Call stacks at program points.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Call stacks at program points.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/call-summary.cc gcc-14.1.0/gcc/analyzer/call-summary.cc
*** gcc-13.2.0/gcc/analyzer/call-summary.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/call-summary.cc	Tue May  7 06:51:37 2024
*************** along with GCC; see the file COPYING3.
*** 23,28 ****
--- 23,29 ----
  #include "coretypes.h"
  #include "tree.h"
  #include "tree-dfa.h"
+ #include "diagnostic-core.h"
  #include "diagnostic.h"
  #include "tree-diagnostic.h"
  #include "analyzer/analyzer.h"
*************** call_summary::dump (const extrinsic_stat
*** 167,173 ****
     arguments at the caller. */
  
  call_summary_replay::call_summary_replay (const call_details &cd,
! 					  function *called_fn,
  					  call_summary *summary,
  					  const extrinsic_state &ext_state)
  : m_cd (cd),
--- 168,174 ----
     arguments at the caller. */
  
  call_summary_replay::call_summary_replay (const call_details &cd,
! 					  const function &called_fn,
  					  call_summary *summary,
  					  const extrinsic_state &ext_state)
  : m_cd (cd),
*************** call_summary_replay::call_summary_replay
*** 177,183 ****
    region_model_manager *mgr = cd.get_manager ();
  
    // populate params based on args
!   tree fndecl = called_fn->decl;
  
    /* Get a frame_region for use with respect to the summary.
       This will be a top-level frame, since that's what's in
--- 178,184 ----
    region_model_manager *mgr = cd.get_manager ();
  
    // populate params based on args
!   tree fndecl = called_fn.decl;
  
    /* Get a frame_region for use with respect to the summary.
       This will be a top-level frame, since that's what's in
*************** call_summary_replay::call_summary_replay
*** 196,202 ****
  	break;
        const svalue *caller_arg_sval = cd.get_arg_svalue (idx);
        tree parm_lval = iter_parm;
!       if (tree parm_default_ssa = ssa_default_def (called_fn, iter_parm))
  	parm_lval = parm_default_ssa;
        const region *summary_parm_reg
  	= summary_frame->get_region_for_local (mgr, parm_lval, cd.get_ctxt ());
--- 197,203 ----
  	break;
        const svalue *caller_arg_sval = cd.get_arg_svalue (idx);
        tree parm_lval = iter_parm;
!       if (tree parm_default_ssa = get_ssa_default_def (called_fn, iter_parm))
  	parm_lval = parm_default_ssa;
        const region *summary_parm_reg
  	= summary_frame->get_region_for_local (mgr, parm_lval, cd.get_ctxt ());
*************** call_summary_replay::convert_svalue_from
*** 234,239 ****
--- 235,245 ----
  
    const svalue *caller_sval = convert_svalue_from_summary_1 (summary_sval);
  
+   if (caller_sval)
+     if (summary_sval->get_type () && caller_sval->get_type ())
+       gcc_assert (types_compatible_p (summary_sval->get_type (),
+ 				      caller_sval->get_type ()));
+ 
    /* Add to cache.  */
    add_svalue_mapping (summary_sval, caller_sval);
  
*************** call_summary_replay::convert_region_from
*** 551,556 ****
--- 557,567 ----
  
    const region *caller_reg = convert_region_from_summary_1 (summary_reg);
  
+   if (caller_reg)
+     if (summary_reg->get_type () && caller_reg->get_type ())
+       gcc_assert (types_compatible_p (summary_reg->get_type (),
+ 				      caller_reg->get_type ()));
+ 
    /* Add to cache.  */
    add_region_mapping (summary_reg, caller_reg);
  
*************** call_summary_replay::convert_region_from
*** 585,590 ****
--- 596,602 ----
      case RK_STRING:
      case RK_ERRNO:
      case RK_UNKNOWN:
+     case RK_PRIVATE:
        /* We can reuse these regions directly.  */
        return summary_reg;
  
*************** call_summary_replay::convert_region_from
*** 601,606 ****
--- 613,620 ----
  	  = get_caller_model ()->deref_rvalue (caller_ptr_sval,
  					       NULL_TREE,
  					       get_ctxt ());
+ 	caller_reg = mgr->get_cast_region (caller_reg,
+ 					   summary_reg->get_type ());
  	return caller_reg;
        }
        break;
diff -Nrcpad gcc-13.2.0/gcc/analyzer/call-summary.h gcc-14.1.0/gcc/analyzer/call-summary.h
*** gcc-13.2.0/gcc/analyzer/call-summary.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/call-summary.h	Tue May  7 06:51:37 2024
*************** class call_summary_replay
*** 68,74 ****
  {
  public:
    call_summary_replay (const call_details &cd,
! 		       function *called_fn,
  		       call_summary *m_summary,
  		       const extrinsic_state &ext_state);
  
--- 68,74 ----
  {
  public:
    call_summary_replay (const call_details &cd,
! 		       const function &called_fn,
  		       call_summary *m_summary,
  		       const extrinsic_state &ext_state);
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/checker-event.cc gcc-14.1.0/gcc/analyzer/checker-event.cc
*** gcc-13.2.0/gcc/analyzer/checker-event.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/checker-event.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subclasses of diagnostic_event for analyzer diagnostics.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclasses of diagnostic_event for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 55,60 ****
--- 55,62 ----
  #include "analyzer/constraint-manager.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/exploded-graph.h"
+ #include "diagnostic-format-sarif.h"
+ #include "tree-logical-location.h"
  
  #if ENABLE_ANALYZER
  
*************** event_kind_to_string (enum event_kind ek
*** 106,151 ****
      }
  }
  
- /* A class for fixing up fndecls and stack depths in checker_event, based
-    on inlining records.
- 
-    The early inliner runs before the analyzer, which can lead to confusing
-    output.
- 
-    Tne base fndecl and depth within a checker_event are from call strings
-    in program_points, which reflect the call strings after inlining.
-    This class lets us offset the depth and fix up the reported fndecl and
-    stack depth to better reflect the user's original code.  */
- 
- class inlining_info
- {
- public:
-   inlining_info (location_t loc)
-   {
-     inlining_iterator iter (loc);
-     m_inner_fndecl = iter.get_fndecl ();
-     int num_frames = 0;
-     while (!iter.done_p ())
-       {
- 	m_outer_fndecl = iter.get_fndecl ();
- 	num_frames++;
- 	iter.next ();
-       }
-     if (num_frames > 1)
-       m_extra_frames = num_frames - 1;
-     else
-       m_extra_frames = 0;
-   }
- 
-   tree get_inner_fndecl () const { return m_inner_fndecl; }
-   int get_extra_frames () const { return m_extra_frames; }
- 
- private:
-   tree m_outer_fndecl;
-   tree m_inner_fndecl;
-   int m_extra_frames;
- };
- 
  /* class checker_event : public diagnostic_event.  */
  
  /* checker_event's ctor.  */
--- 108,113 ----
*************** checker_event::get_meaning () const
*** 182,187 ****
--- 144,173 ----
    return meaning ();
  }
  
+ /* Implementation of diagnostic_event::maybe_add_sarif_properties
+    for checker_event.  */
+ 
+ void
+ checker_event::
+ maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj) const
+ {
+   sarif_property_bag &props = thread_flow_loc_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/checker_event/"
+   props.set (PROPERTY_PREFIX "emission_id",
+ 	     diagnostic_event_id_to_json  (m_emission_id));
+   props.set_string (PROPERTY_PREFIX "kind", event_kind_to_string (m_kind));
+ 
+   if (m_original_fndecl != m_effective_fndecl)
+     {
+       tree_logical_location logical_loc (m_original_fndecl);
+       props.set (PROPERTY_PREFIX "original_fndecl",
+ 		 make_sarif_logical_location_object (logical_loc));
+     }
+   if (m_original_depth != m_effective_depth)
+     props.set_integer (PROPERTY_PREFIX "original_depth", m_original_depth);
+ #undef PROPERTY_PREFIX
+ }
+ 
  /* Dump this event to PP (for debugging/logging purposes).  */
  
  void
*************** state_change_event::get_desc (bool can_c
*** 457,481 ****
  	      meaning.dump_to_pp (&meaning_pp);
  
  	      /* Append debug version.  */
! 	      if (m_origin)
! 		return make_label_text
! 		  (can_colorize,
! 		   "%s (state of %qE: %qs -> %qs, origin: %qE, meaning: %s)",
! 		   custom_desc.get (),
! 		   var,
! 		   m_from->get_name (),
! 		   m_to->get_name (),
! 		   origin,
! 		   pp_formatted_text (&meaning_pp));
  	      else
! 		return make_label_text
! 		  (can_colorize,
! 		   "%s (state of %qE: %qs -> %qs, NULL origin, meaning: %s)",
! 		   custom_desc.get (),
! 		   var,
! 		   m_from->get_name (),
! 		   m_to->get_name (),
! 		   pp_formatted_text (&meaning_pp));
  	    }
  	  else
  	    return custom_desc;
--- 443,490 ----
  	      meaning.dump_to_pp (&meaning_pp);
  
  	      /* Append debug version.  */
! 	      if (var)
! 		{
! 		  if (m_origin)
! 		    return make_label_text
! 		      (can_colorize,
! 		       "%s (state of %qE: %qs -> %qs, origin: %qE, meaning: %s)",
! 		       custom_desc.get (),
! 		       var,
! 		       m_from->get_name (),
! 		       m_to->get_name (),
! 		       origin,
! 		       pp_formatted_text (&meaning_pp));
! 		  else
! 		    return make_label_text
! 		      (can_colorize,
! 		       "%s (state of %qE: %qs -> %qs, NULL origin, meaning: %s)",
! 		       custom_desc.get (),
! 		       var,
! 		       m_from->get_name (),
! 		       m_to->get_name (),
! 		       pp_formatted_text (&meaning_pp));
! 		}
  	      else
! 		{
! 		  if (m_origin)
! 		    return make_label_text
! 		      (can_colorize,
! 		       "%s (state: %qs -> %qs, origin: %qE, meaning: %s)",
! 		       custom_desc.get (),
! 		       m_from->get_name (),
! 		       m_to->get_name (),
! 		       origin,
! 		       pp_formatted_text (&meaning_pp));
! 		  else
! 		    return make_label_text
! 		      (can_colorize,
! 		       "%s (state: %qs -> %qs, NULL origin, meaning: %s)",
! 		       custom_desc.get (),
! 		       m_from->get_name (),
! 		       m_to->get_name (),
! 		       pp_formatted_text (&meaning_pp));
! 		}
  	    }
  	  else
  	    return custom_desc;
*************** state_change_event::get_meaning () const
*** 538,543 ****
--- 547,567 ----
  
  /* class superedge_event : public checker_event.  */
  
+ /* Implementation of diagnostic_event::maybe_add_sarif_properties
+    for superedge_event.  */
+ 
+ void
+ superedge_event::maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj)
+   const
+ {
+   checker_event::maybe_add_sarif_properties (thread_flow_loc_obj);
+   sarif_property_bag &props = thread_flow_loc_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/superedge_event/"
+   if (m_sedge)
+     props.set (PROPERTY_PREFIX "superedge", m_sedge->to_json ());
+ #undef PROPERTY_PREFIX
+ }
+ 
  /* Get the callgraph_superedge for this superedge_event, which must be
     for an interprocedural edge, rather than a CFG edge.  */
  
*************** superedge_event::superedge_event (enum e
*** 588,593 ****
--- 612,619 ----
    m_eedge (eedge), m_sedge (eedge.m_sedge),
    m_var (NULL_TREE), m_critical_state (0)
  {
+   /* Note that m_sedge can be nullptr for e.g. jumps through
+      function pointers.  */
  }
  
  /* class cfg_edge_event : public superedge_event.  */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/checker-event.h gcc-14.1.0/gcc/analyzer/checker-event.h
*** gcc-13.2.0/gcc/analyzer/checker-event.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/checker-event.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subclasses of diagnostic_event for analyzer diagnostics.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclasses of diagnostic_event for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 113,118 ****
--- 113,125 ----
        return NULL;
    }
    meaning get_meaning () const override;
+   diagnostic_thread_id_t get_thread_id () const final override
+   {
+     return 0;
+   }
+ 
+   void
+   maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj) const override;
  
    /* Additional functionality.  */
  
*************** public:
*** 363,369 ****
    label_text get_desc (bool can_colorize) const final override;
    meaning get_meaning () const override;
  
!   function *get_dest_function () const
    {
      return m_dst_state.get_current_function ();
    }
--- 370,376 ----
    label_text get_desc (bool can_colorize) const final override;
    meaning get_meaning () const override;
  
!   const function *get_dest_function () const
    {
      return m_dst_state.get_current_function ();
    }
*************** public:
*** 387,392 ****
--- 394,402 ----
  class superedge_event : public checker_event
  {
  public:
+   void maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj)
+     const override;
+ 
    /* Mark this edge event as being either an interprocedural call or
       return in which VAR is in STATE, and that this is critical to the
       diagnostic (so that get_desc can attempt to get a better description
*************** public:
*** 440,450 ****
    {
    }
  
!   label_text get_desc (bool can_colorize) const final override;
  
!  private:
    label_text maybe_describe_condition (bool can_colorize) const;
  
    static label_text maybe_describe_condition (bool can_colorize,
  					      tree lhs,
  					      enum tree_code op,
--- 450,461 ----
    {
    }
  
!   label_text get_desc (bool can_colorize) const override;
  
! protected:
    label_text maybe_describe_condition (bool can_colorize) const;
  
+ private:
    static label_text maybe_describe_condition (bool can_colorize,
  					      tree lhs,
  					      enum tree_code op,
diff -Nrcpad gcc-13.2.0/gcc/analyzer/checker-path.cc gcc-14.1.0/gcc/analyzer/checker-path.cc
*** gcc-13.2.0/gcc/analyzer/checker-path.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/checker-path.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subclass of diagnostic_path for analyzer diagnostics.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclass of diagnostic_path for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/checker-path.h gcc-14.1.0/gcc/analyzer/checker-path.h
*** gcc-13.2.0/gcc/analyzer/checker-path.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/checker-path.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subclass of diagnostic_path for analyzer diagnostics.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subclass of diagnostic_path for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** namespace ana {
*** 30,36 ****
  class checker_path : public diagnostic_path
  {
  public:
!   checker_path (logger *logger) : diagnostic_path (), m_logger (logger) {}
  
    /* Implementation of diagnostic_path vfuncs.  */
  
--- 30,40 ----
  class checker_path : public diagnostic_path
  {
  public:
!   checker_path (logger *logger)
!   : diagnostic_path (),
!     m_thread ("main"),
!     m_logger (logger)
!   {}
  
    /* Implementation of diagnostic_path vfuncs.  */
  
*************** public:
*** 43,48 ****
--- 47,61 ----
    {
      return *m_events[idx];
    }
+   unsigned num_threads () const final override
+   {
+     return 1;
+   }
+   const diagnostic_thread &
+   get_thread (diagnostic_thread_id_t) const final override
+   {
+     return m_thread;
+   }
  
    checker_event *get_checker_event (int idx)
    {
*************** public:
*** 52,57 ****
--- 65,71 ----
    void dump (pretty_printer *pp) const;
    void debug () const;
  
+   logger *get_logger () const { return m_logger; }
    void maybe_log (logger *logger, const char *desc) const;
  
    void add_event (std::unique_ptr<checker_event> event);
*************** public:
*** 120,125 ****
--- 134,141 ----
  private:
    DISABLE_COPY_AND_ASSIGN(checker_path);
  
+   simple_diagnostic_thread m_thread;
+ 
    /* The events that have occurred along this path.  */
    auto_delete_vec<checker_event> m_events;
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/complexity.cc gcc-14.1.0/gcc/analyzer/complexity.cc
*** gcc-13.2.0/gcc/analyzer/complexity.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/complexity.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/complexity.h gcc-14.1.0/gcc/analyzer/complexity.h
*** gcc-13.2.0/gcc/analyzer/complexity.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/complexity.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/constraint-manager.cc gcc-14.1.0/gcc/analyzer/constraint-manager.cc
*** gcc-13.2.0/gcc/analyzer/constraint-manager.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/constraint-manager.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 54,60 ****
  
  namespace ana {
  
! static tristate
  compare_constants (tree lhs_const, enum tree_code op, tree rhs_const)
  {
    tree comparison
--- 54,60 ----
  
  namespace ana {
  
! tristate
  compare_constants (tree lhs_const, enum tree_code op, tree rhs_const)
  {
    tree comparison
*************** bound::ensure_closed (enum bound_kind bo
*** 124,133 ****
--- 124,135 ----
  	 For example, convert 3 < x into 4 <= x,
  	 and convert x < 5 into x <= 4.  */
        gcc_assert (CONSTANT_CLASS_P (m_constant));
+       gcc_assert (INTEGRAL_TYPE_P (TREE_TYPE (m_constant)));
        m_constant = fold_build2 (bound_kind == BK_UPPER ? MINUS_EXPR : PLUS_EXPR,
  				TREE_TYPE (m_constant),
  				m_constant, integer_one_node);
        gcc_assert (CONSTANT_CLASS_P (m_constant));
+       gcc_assert (INTEGRAL_TYPE_P (TREE_TYPE (m_constant)));
        m_closed = true;
      }
  }
*************** range::above_upper_bound (tree rhs_const
*** 306,311 ****
--- 308,317 ----
  bool
  range::add_bound (bound b, enum bound_kind bound_kind)
  {
+   /* Bail out on floating point constants.  */
+   if (!INTEGRAL_TYPE_P (TREE_TYPE (b.m_constant)))
+     return true;
+ 
    b.ensure_closed (bound_kind);
  
    switch (bound_kind)
*************** constraint_manager::get_equiv_class_by_s
*** 2218,2223 ****
--- 2224,2360 ----
    return false;
  }
  
+ /* Tries to find a svalue inside another svalue.  */
+ 
+ class sval_finder : public visitor
+ {
+ public:
+   sval_finder (const svalue *query) : m_query (query), m_found (false)
+   {
+   }
+ 
+   bool found_query_p ()
+   {
+     return m_found;
+   }
+ 
+   void visit_region_svalue (const region_svalue *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_constant_svalue (const constant_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_unknown_svalue (const unknown_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_poisoned_svalue (const poisoned_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_setjmp_svalue (const setjmp_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_initial_svalue (const initial_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_unaryop_svalue (const unaryop_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_binop_svalue (const binop_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_sub_svalue (const sub_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_repeated_svalue (const repeated_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_bits_within_svalue (const bits_within_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_unmergeable_svalue (const unmergeable_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_placeholder_svalue (const placeholder_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_widening_svalue (const widening_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_compound_svalue (const compound_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_conjured_svalue (const conjured_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_asm_output_svalue (const asm_output_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+   void visit_const_fn_result_svalue (const const_fn_result_svalue  *sval)
+   {
+     m_found |= m_query == sval;
+   }
+ 
+ private:
+   const svalue *m_query;
+   bool m_found;
+ };
+ 
+ /* Returns true if SVAL is constrained.  */
+ 
+ bool
+ constraint_manager::sval_constrained_p (const svalue *sval) const
+ {
+   int i;
+   equiv_class *ec;
+   sval_finder finder (sval);
+   FOR_EACH_VEC_ELT (m_equiv_classes, i, ec)
+     {
+       int j;
+       const svalue *iv;
+       FOR_EACH_VEC_ELT (ec->m_vars, j, iv)
+ 	{
+ 	  iv->accept (&finder);
+ 	  if (finder.found_query_p ())
+ 	    return true;
+ 	}
+     }
+   return false;
+ }
+ 
  /* Ensure that SVAL has an equivalence class within this constraint_manager;
     return the ID of the class.  */
  
*************** namespace selftest {
*** 3237,3244 ****
  static void
  test_range ()
  {
!   tree int_0 = build_int_cst (integer_type_node, 0);
!   tree int_1 = build_int_cst (integer_type_node, 1);
    tree int_2 = build_int_cst (integer_type_node, 2);
    tree int_5 = build_int_cst (integer_type_node, 5);
  
--- 3374,3381 ----
  static void
  test_range ()
  {
!   tree int_0 = integer_zero_node;
!   tree int_1 = integer_one_node;
    tree int_2 = build_int_cst (integer_type_node, 2);
    tree int_5 = build_int_cst (integer_type_node, 5);
  
*************** static void
*** 3282,3288 ****
  test_constraint_conditions ()
  {
    tree int_42 = build_int_cst (integer_type_node, 42);
!   tree int_0 = build_int_cst (integer_type_node, 0);
  
    tree x = build_global_decl ("x", integer_type_node);
    tree y = build_global_decl ("y", integer_type_node);
--- 3419,3425 ----
  test_constraint_conditions ()
  {
    tree int_42 = build_int_cst (integer_type_node, 42);
!   tree int_0 = integer_zero_node;
  
    tree x = build_global_decl ("x", integer_type_node);
    tree y = build_global_decl ("y", integer_type_node);
*************** test_transitivity ()
*** 3737,3743 ****
  static void
  test_constant_comparisons ()
  {
!   tree int_1 = build_int_cst (integer_type_node, 1);
    tree int_3 = build_int_cst (integer_type_node, 3);
    tree int_4 = build_int_cst (integer_type_node, 4);
    tree int_5 = build_int_cst (integer_type_node, 5);
--- 3874,3880 ----
  static void
  test_constant_comparisons ()
  {
!   tree int_1 = integer_one_node;
    tree int_3 = build_int_cst (integer_type_node, 3);
    tree int_4 = build_int_cst (integer_type_node, 4);
    tree int_5 = build_int_cst (integer_type_node, 5);
*************** static void
*** 3921,3927 ****
  test_constraint_impl ()
  {
    tree int_42 = build_int_cst (integer_type_node, 42);
!   tree int_0 = build_int_cst (integer_type_node, 0);
  
    tree x = build_global_decl ("x", integer_type_node);
    tree y = build_global_decl ("y", integer_type_node);
--- 4058,4064 ----
  test_constraint_impl ()
  {
    tree int_42 = build_int_cst (integer_type_node, 42);
!   tree int_0 = integer_zero_node;
  
    tree x = build_global_decl ("x", integer_type_node);
    tree y = build_global_decl ("y", integer_type_node);
*************** test_many_constants ()
*** 4083,4089 ****
  static void
  test_purging (void)
  {
!   tree int_0 = build_int_cst (integer_type_node, 0);
    tree a = build_global_decl ("a", integer_type_node);
    tree b = build_global_decl ("b", integer_type_node);
  
--- 4220,4226 ----
  static void
  test_purging (void)
  {
!   tree int_0 = integer_zero_node;
    tree a = build_global_decl ("a", integer_type_node);
    tree b = build_global_decl ("b", integer_type_node);
  
*************** test_bits (void)
*** 4517,4523 ****
  {
    region_model_manager mgr;
  
!   tree int_0 = build_int_cst (integer_type_node, 0);
    tree int_0x80 = build_int_cst (integer_type_node, 0x80);
    tree int_0xff = build_int_cst (integer_type_node, 0xff);
    tree x = build_global_decl ("x", integer_type_node);
--- 4654,4660 ----
  {
    region_model_manager mgr;
  
!   tree int_0 = integer_zero_node;
    tree int_0x80 = build_int_cst (integer_type_node, 0x80);
    tree int_0xff = build_int_cst (integer_type_node, 0xff);
    tree x = build_global_decl ("x", integer_type_node);
diff -Nrcpad gcc-13.2.0/gcc/analyzer/constraint-manager.h gcc-14.1.0/gcc/analyzer/constraint-manager.h
*** gcc-13.2.0/gcc/analyzer/constraint-manager.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/constraint-manager.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 459,464 ****
--- 459,465 ----
  
    bool get_equiv_class_by_svalue (const svalue *sval,
  				    equiv_class_id *out) const;
+   bool sval_constrained_p (const svalue *sval) const;
    equiv_class_id get_or_add_equiv_class (const svalue *sval);
    tristate eval_condition (equiv_class_id lhs,
  			   enum tree_code op,
diff -Nrcpad gcc-13.2.0/gcc/analyzer/diagnostic-manager.cc gcc-14.1.0/gcc/analyzer/diagnostic-manager.cc
*** gcc-13.2.0/gcc/analyzer/diagnostic-manager.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/diagnostic-manager.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 23,33 ****
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
  #include "pretty-print.h"
  #include "gcc-rich-location.h"
  #include "gimple-pretty-print.h"
  #include "function.h"
- #include "diagnostic-core.h"
  #include "diagnostic-event-id.h"
  #include "diagnostic-path.h"
  #include "bitmap.h"
--- 23,34 ----
  #include "system.h"
  #include "coretypes.h"
  #include "tree.h"
+ #include "input.h"
+ #include "diagnostic-core.h"
  #include "pretty-print.h"
  #include "gcc-rich-location.h"
  #include "gimple-pretty-print.h"
  #include "function.h"
  #include "diagnostic-event-id.h"
  #include "diagnostic-path.h"
  #include "bitmap.h"
*************** along with GCC; see the file COPYING3.
*** 57,62 ****
--- 58,64 ----
  #include "analyzer/checker-path.h"
  #include "analyzer/reachability.h"
  #include "make-unique.h"
+ #include "diagnostic-format-sarif.h"
  
  #if ENABLE_ANALYZER
  
*************** process_worklist_item (feasible_worklist
*** 515,522 ****
  	}
  
        feasibility_state succ_state (fnode->get_state ());
!       rejected_constraint *rc = NULL;
!       if (succ_state.maybe_update_for_edge (logger, succ_eedge, &rc))
  	{
  	  gcc_assert (rc == NULL);
  	  feasible_node *succ_fnode
--- 517,524 ----
  	}
  
        feasibility_state succ_state (fnode->get_state ());
!       std::unique_ptr<rejected_constraint> rc;
!       if (succ_state.maybe_update_for_edge (logger, succ_eedge, nullptr, &rc))
  	{
  	  gcc_assert (rc == NULL);
  	  feasible_node *succ_fnode
*************** process_worklist_item (feasible_worklist
*** 559,565 ****
  	  gcc_assert (rc);
  	  fg->add_feasibility_problem (fnode,
  				       succ_eedge,
! 				       rc);
  
  	  /* Give up if there have been too many infeasible edges.  */
  	  if (fg->get_num_infeasible ()
--- 561,567 ----
  	  gcc_assert (rc);
  	  fg->add_feasibility_problem (fnode,
  				       succ_eedge,
! 				       std::move (rc));
  
  	  /* Give up if there have been too many infeasible edges.  */
  	  if (fg->get_num_infeasible ()
*************** epath_finder::dump_feasible_path (const
*** 663,692 ****
  
  /* class saved_diagnostic.  */
  
! /* saved_diagnostic's ctor.
!    Take ownership of D and STMT_FINDER.  */
  
  saved_diagnostic::saved_diagnostic (const state_machine *sm,
! 				    const exploded_node *enode,
! 				    const supernode *snode, const gimple *stmt,
! 				    const stmt_finder *stmt_finder,
  				    tree var,
  				    const svalue *sval,
  				    state_machine::state_t state,
  				    std::unique_ptr<pending_diagnostic> d,
  				    unsigned idx)
! : m_sm (sm), m_enode (enode), m_snode (snode), m_stmt (stmt),
!  /* stmt_finder could be on-stack; we want our own copy that can
!     outlive that.  */
!   m_stmt_finder (stmt_finder ? stmt_finder->clone () : NULL),
    m_var (var), m_sval (sval), m_state (state),
    m_d (std::move (d)), m_trailing_eedge (NULL),
    m_idx (idx),
    m_best_epath (NULL), m_problem (NULL),
    m_notes ()
  {
-   gcc_assert (m_stmt || m_stmt_finder);
- 
    /* We must have an enode in order to be able to look for paths
       through the exploded_graph to this diagnostic.  */
    gcc_assert (m_enode);
--- 665,691 ----
  
  /* class saved_diagnostic.  */
  
! /* saved_diagnostic's ctor.  */
  
  saved_diagnostic::saved_diagnostic (const state_machine *sm,
! 				    const pending_location &ploc,
  				    tree var,
  				    const svalue *sval,
  				    state_machine::state_t state,
  				    std::unique_ptr<pending_diagnostic> d,
  				    unsigned idx)
! : m_sm (sm), m_enode (ploc.m_enode), m_snode (ploc.m_snode),
!   m_stmt (ploc.m_stmt),
!   /* stmt_finder could be on-stack; we want our own copy that can
!      outlive that.  */
!   m_stmt_finder (ploc.m_finder ? ploc.m_finder->clone () : NULL),
!   m_loc (ploc.m_loc),
    m_var (var), m_sval (sval), m_state (state),
    m_d (std::move (d)), m_trailing_eedge (NULL),
    m_idx (idx),
    m_best_epath (NULL), m_problem (NULL),
    m_notes ()
  {
    /* We must have an enode in order to be able to look for paths
       through the exploded_graph to this diagnostic.  */
    gcc_assert (m_enode);
*************** saved_diagnostic::operator== (const save
*** 705,710 ****
--- 704,710 ----
  	  && m_snode == other.m_snode
  	  && m_stmt == other.m_stmt
  	  /* We don't compare m_stmt_finder.  */
+ 	  && m_loc == other.m_loc
  	  && pending_diagnostic::same_tree_p (m_var, other.m_var)
  	  && m_state == other.m_state
  	  && m_d->equal_p (*other.m_d)
*************** saved_diagnostic::add_note (std::unique_
*** 720,725 ****
--- 720,734 ----
    m_notes.safe_push (pn.release ());
  }
  
+ /* Add EVENT to this diagnostic.  */
+ 
+ void
+ saved_diagnostic::add_event (std::unique_ptr<checker_event> event)
+ {
+   gcc_assert (event);
+   m_saved_events.safe_push (event.release ());
+ }
+ 
  /* Return a new json::object of the form
     {"sm": optional str,
      "enode": int,
*************** saved_diagnostic::dump_as_dot_node (pret
*** 825,832 ****
  
  /* Use PF to find the best exploded_path for this saved_diagnostic,
     and store it in m_best_epath.
!    If m_stmt is still NULL, use m_stmt_finder on the epath to populate
!    m_stmt.
     Return true if a best path was found.  */
  
  bool
--- 834,841 ----
  
  /* Use PF to find the best exploded_path for this saved_diagnostic,
     and store it in m_best_epath.
!    If we don't have a specific location in m_loc and m_stmt is still NULL,
!    use m_stmt_finder on the epath to populate m_stmt.
     Return true if a best path was found.  */
  
  bool
*************** saved_diagnostic::calc_best_epath (epath
*** 845,856 ****
      return false;
  
    gcc_assert (m_best_epath);
!   if (m_stmt == NULL)
      {
!       gcc_assert (m_stmt_finder);
!       m_stmt = m_stmt_finder->find_stmt (*m_best_epath);
      }
-   gcc_assert (m_stmt);
  
    return true;
  }
--- 854,868 ----
      return false;
  
    gcc_assert (m_best_epath);
!   if (m_loc == UNKNOWN_LOCATION)
      {
!       if (m_stmt == NULL)
! 	{
! 	  gcc_assert (m_stmt_finder);
! 	  m_stmt = m_stmt_finder->find_stmt (*m_best_epath);
! 	}
!       gcc_assert (m_stmt);
      }
  
    return true;
  }
*************** saved_diagnostic::add_duplicate (saved_d
*** 877,882 ****
--- 889,984 ----
    m_duplicates.safe_push (other);
  }
  
+ /* Walk up the sedges of each of the two paths.
+    If the two sequences of sedges do not perfectly correspond,
+    then paths are incompatible.
+    If there is at least one sedge that either cannot be paired up
+    or its counterpart is not equal, then the paths are incompatible
+    and this function returns FALSE.
+    Otherwise return TRUE.
+ 
+    Incompatible paths:
+ 
+        <cond Y>
+        /      \
+       /        \
+     true      false
+      |          |
+     ...        ...
+      |          |
+     ...       stmt x
+      |
+    stmt x
+ 
+    Both LHS_PATH and RHS_PATH final enodes should be
+    over the same gimple statement.  */
+ 
+ static bool
+ compatible_epath_p (const exploded_path *lhs_path,
+ 		    const exploded_path *rhs_path)
+ {
+   gcc_assert (lhs_path);
+   gcc_assert (rhs_path);
+   gcc_assert (rhs_path->length () > 0);
+   gcc_assert (rhs_path->length () > 0);
+   int lhs_eedge_idx = lhs_path->length () - 1;
+   int rhs_eedge_idx = rhs_path->length () - 1;
+   const exploded_edge *lhs_eedge;
+   const exploded_edge *rhs_eedge;
+ 
+   while (lhs_eedge_idx >= 0 && rhs_eedge_idx >= 0)
+     {
+       while (lhs_eedge_idx >= 0)
+ 	{
+ 	  /* Find LHS_PATH's next superedge.  */
+ 	  lhs_eedge = lhs_path->m_edges[lhs_eedge_idx];
+ 	  if (lhs_eedge->m_sedge)
+ 	    break;
+ 	  else
+ 	    lhs_eedge_idx--;
+ 	}
+       while (rhs_eedge_idx >= 0)
+ 	{
+ 	  /* Find RHS_PATH's next superedge.  */
+ 	  rhs_eedge = rhs_path->m_edges[rhs_eedge_idx];
+ 	  if (rhs_eedge->m_sedge)
+ 	    break;
+ 	  else
+ 	    rhs_eedge_idx--;
+ 	}
+ 
+       if (lhs_eedge->m_sedge && rhs_eedge->m_sedge)
+ 	{
+ 	  if (lhs_eedge->m_sedge != rhs_eedge->m_sedge)
+ 	    /* Both superedges do not match.
+ 	       Superedges are not dependent on the exploded path, so even
+ 	       different epaths will have similar sedges if they follow
+ 	       the same outcome of a conditional node.  */
+ 	    return false;
+ 
+ 	  lhs_eedge_idx--;
+ 	  rhs_eedge_idx--;
+ 	  continue;
+ 	}
+       else if (lhs_eedge->m_sedge == nullptr && rhs_eedge->m_sedge == nullptr)
+ 	/* Both paths were drained up entirely.
+ 	   No discriminant was found.  */
+ 	return true;
+ 
+       /* A superedge was found for only one of the two paths.  */
+       return false;
+     }
+ 
+   /* A superedge was found for only one of the two paths.  */
+   if (lhs_eedge_idx >= 0 || rhs_eedge_idx >= 0)
+     return false;
+ 
+   /* Both paths were drained up entirely.
+      No discriminant was found.  */
+   return true;
+ }
+ 
+ 
  /* Return true if this diagnostic supercedes OTHER, and that OTHER should
     therefore not be emitted.  */
  
*************** saved_diagnostic::supercedes_p (const sa
*** 886,892 ****
    /* They should be at the same stmt.  */
    if (m_stmt != other.m_stmt)
      return false;
!   return m_d->supercedes_p (*other.m_d);
  }
  
  /* Emit any pending notes owned by this diagnostic.  */
--- 988,1013 ----
    /* They should be at the same stmt.  */
    if (m_stmt != other.m_stmt)
      return false;
!   /* return early if OTHER won't be superseded anyway.  */
!   if (!m_d->supercedes_p (*other.m_d))
!     return false;
! 
!   /* If the two saved_diagnostics' path are not compatible
!      then they cannot supersede one another.  */
!   return compatible_epath_p (m_best_epath.get (), other.m_best_epath.get ());
! }
! 
! /* Move any saved checker_events from this saved_diagnostic to
!    the end of DST_PATH.  */
! 
! void
! saved_diagnostic::add_any_saved_events (checker_path &dst_path)
! {
!   for (auto &event : m_saved_events)
!     {
!       dst_path.add_event (std::unique_ptr<checker_event> (event));
!       event = nullptr;
!     }
  }
  
  /* Emit any pending notes owned by this diagnostic.  */
*************** saved_diagnostic::emit_any_notes () cons
*** 898,903 ****
--- 1019,1049 ----
      pn->emit ();
  }
  
+ /* For SARIF output, add additional properties to the "result" object
+    for this diagnostic.
+    This extra data is intended for use when debugging the analyzer.  */
+ 
+ void
+ saved_diagnostic::maybe_add_sarif_properties (sarif_object &result_obj) const
+ {
+   sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/saved_diagnostic/"
+   if (m_sm)
+     props.set_string (PROPERTY_PREFIX "sm", m_sm->get_name ());
+   props.set_integer (PROPERTY_PREFIX "enode", m_enode->m_index);
+   props.set_integer (PROPERTY_PREFIX "snode", m_snode->m_index);
+   if (m_sval)
+     props.set (PROPERTY_PREFIX "sval", m_sval->to_json ());
+   if (m_state)
+     props.set (PROPERTY_PREFIX "state", m_state->to_json ());
+   if (m_best_epath)
+   props.set (PROPERTY_PREFIX "idx", new json::integer_number (m_idx));
+ #undef PROPERTY_PREFIX
+ 
+   /* Potentially add pending_diagnostic-specific properties.  */
+   m_d->maybe_add_sarif_properties (result_obj);
+ }
+ 
  /* State for building a checker_path from a particular exploded_path.
     In particular, this precomputes reachability information: the set of
     source enodes for which a path be found to the diagnostic enode.  */
*************** diagnostic_manager::diagnostic_manager (
*** 983,991 ****
  
  bool
  diagnostic_manager::add_diagnostic (const state_machine *sm,
! 				    exploded_node *enode,
! 				    const supernode *snode, const gimple *stmt,
! 				    const stmt_finder *finder,
  				    tree var,
  				    const svalue *sval,
  				    state_machine::state_t state,
--- 1129,1135 ----
  
  bool
  diagnostic_manager::add_diagnostic (const state_machine *sm,
! 				    const pending_location &ploc,
  				    tree var,
  				    const svalue *sval,
  				    state_machine::state_t state,
*************** diagnostic_manager::add_diagnostic (cons
*** 995,1009 ****
  
    /* We must have an enode in order to be able to look for paths
       through the exploded_graph to the diagnostic.  */
!   gcc_assert (enode);
  
    /* If this warning is ultimately going to be rejected by a -Wno-analyzer-*
       flag, reject it now.
       We can only do this for diagnostics where we already know the stmt,
       and thus can determine the emission location.  */
!   if (stmt)
      {
!       location_t loc = get_emission_location (stmt, snode->m_fun, *d);
        int option = d->get_controlling_option ();
        if (!warning_enabled_at (loc, option))
  	{
--- 1139,1154 ----
  
    /* We must have an enode in order to be able to look for paths
       through the exploded_graph to the diagnostic.  */
!   gcc_assert (ploc.m_enode);
  
    /* If this warning is ultimately going to be rejected by a -Wno-analyzer-*
       flag, reject it now.
       We can only do this for diagnostics where we already know the stmt,
       and thus can determine the emission location.  */
!   if (ploc.m_stmt)
      {
!       location_t loc
! 	= get_emission_location (ploc.m_stmt, ploc.m_snode->m_fun, *d);
        int option = d->get_controlling_option ();
        if (!warning_enabled_at (loc, option))
  	{
*************** diagnostic_manager::add_diagnostic (cons
*** 1016,1029 ****
      }
  
    saved_diagnostic *sd
!     = new saved_diagnostic (sm, enode, snode, stmt, finder, var, sval,
! 			    state, std::move (d), m_saved_diagnostics.length ());
    m_saved_diagnostics.safe_push (sd);
!   enode->add_diagnostic (sd);
    if (get_logger ())
      log ("adding saved diagnostic %i at SN %i to EN %i: %qs",
  	 sd->get_index (),
! 	 snode->m_index, enode->m_index, sd->m_d->get_kind ());
    return true;
  }
  
--- 1161,1174 ----
      }
  
    saved_diagnostic *sd
!     = new saved_diagnostic (sm, ploc, var, sval, state, std::move (d),
! 			    m_saved_diagnostics.length ());
    m_saved_diagnostics.safe_push (sd);
!   ploc.m_enode->add_diagnostic (sd);
    if (get_logger ())
      log ("adding saved diagnostic %i at SN %i to EN %i: %qs",
  	 sd->get_index (),
! 	 ploc.m_snode->m_index, ploc.m_enode->m_index, sd->m_d->get_kind ());
    return true;
  }
  
*************** diagnostic_manager::add_diagnostic (cons
*** 1032,1045 ****
     Take ownership of D (or delete it).  */
  
  bool
! diagnostic_manager::add_diagnostic (exploded_node *enode,
! 				    const supernode *snode, const gimple *stmt,
! 				    const stmt_finder *finder,
  				    std::unique_ptr<pending_diagnostic> d)
  {
!   gcc_assert (enode);
!   return add_diagnostic (NULL, enode, snode, stmt, finder, NULL_TREE,
! 			 NULL, 0, std::move (d));
  }
  
  /* Add PN to the most recent saved_diagnostic.  */
--- 1177,1187 ----
     Take ownership of D (or delete it).  */
  
  bool
! diagnostic_manager::add_diagnostic (const pending_location &ploc,
  				    std::unique_ptr<pending_diagnostic> d)
  {
!   gcc_assert (ploc.m_enode);
!   return add_diagnostic (NULL, ploc, NULL_TREE, NULL, 0, std::move (d));
  }
  
  /* Add PN to the most recent saved_diagnostic.  */
*************** diagnostic_manager::add_note (std::uniqu
*** 1056,1061 ****
--- 1198,1217 ----
    sd->add_note (std::move (pn));
  }
  
+ /* Add EVENT to the most recent saved_diagnostic.  */
+ 
+ void
+ diagnostic_manager::add_event (std::unique_ptr<checker_event> event)
+ {
+   LOG_FUNC (get_logger ());
+   gcc_assert (event);
+ 
+   /* Get most recent saved_diagnostic.  */
+   gcc_assert (m_saved_diagnostics.length () > 0);
+   saved_diagnostic *sd = m_saved_diagnostics[m_saved_diagnostics.length () - 1];
+   sd->add_event (std::move (event));
+ }
+ 
  /* Return a new json::object of the form
     {"diagnostics"  : [obj for saved_diagnostic]}.  */
  
*************** class dedupe_key
*** 1085,1093 ****
  {
  public:
    dedupe_key (const saved_diagnostic &sd)
!   : m_sd (sd), m_stmt (sd.m_stmt)
    {
!     gcc_assert (m_stmt);
    }
  
    hashval_t hash () const
--- 1241,1249 ----
  {
  public:
    dedupe_key (const saved_diagnostic &sd)
!   : m_sd (sd), m_stmt (sd.m_stmt), m_loc (sd.m_loc)
    {
!     gcc_assert (m_stmt || m_loc != UNKNOWN_LOCATION);
    }
  
    hashval_t hash () const
*************** public:
*** 1100,1110 ****
    bool operator== (const dedupe_key &other) const
    {
      return (m_sd == other.m_sd
! 	    && m_stmt == other.m_stmt);
    }
  
    location_t get_location () const
    {
      return m_stmt->location;
    }
  
--- 1256,1270 ----
    bool operator== (const dedupe_key &other) const
    {
      return (m_sd == other.m_sd
! 	    && m_stmt == other.m_stmt
! 	    && m_loc == other.m_loc);
    }
  
    location_t get_location () const
    {
+     if (m_loc != UNKNOWN_LOCATION)
+       return m_loc;
+     gcc_assert (m_stmt);
      return m_stmt->location;
    }
  
*************** public:
*** 1133,1138 ****
--- 1293,1299 ----
  
    const saved_diagnostic &m_sd;
    const gimple *m_stmt;
+   location_t m_loc;
  };
  
  /* Traits for use by dedupe_winners.  */
*************** public:
*** 1307,1313 ****
        {
  	saved_diagnostic **slot = m_map.get (key);
  	gcc_assert (*slot);
! 	const saved_diagnostic *sd = *slot;
  	dm->emit_saved_diagnostic (eg, *sd);
        }
    }
--- 1468,1474 ----
        {
  	saved_diagnostic **slot = m_map.get (key);
  	gcc_assert (*slot);
! 	saved_diagnostic *sd = *slot;
  	dm->emit_saved_diagnostic (eg, *sd);
        }
    }
*************** diagnostic_manager::emit_saved_diagnosti
*** 1363,1378 ****
    best_candidates.emit_best (this, eg);
  }
  
  /* Given a saved_diagnostic SD with m_best_epath through EG,
     create an checker_path of suitable events and use it to call
     SD's underlying pending_diagnostic "emit" vfunc to emit a diagnostic.  */
  
  void
  diagnostic_manager::emit_saved_diagnostic (const exploded_graph &eg,
! 					   const saved_diagnostic &sd)
  {
    LOG_SCOPE (get_logger ());
!   log ("sd: %qs at SN: %i", sd.m_d->get_kind (), sd.m_snode->m_index);
    log ("num dupes: %i", sd.get_num_dupes ());
  
    pretty_printer *pp = global_dc->printer->clone ();
--- 1524,1563 ----
    best_candidates.emit_best (this, eg);
  }
  
+ /* Custom subclass of diagnostic_metadata which, for SARIF output,
+    populates the property bag of the diagnostic's "result" object
+    with information from the saved_diagnostic and the
+    pending_diagnostic.  */
+ 
+ class pending_diagnostic_metadata : public diagnostic_metadata
+ {
+ public:
+   pending_diagnostic_metadata (const saved_diagnostic &sd)
+   : m_sd (sd)
+   {
+   }
+ 
+   void
+   maybe_add_sarif_properties (sarif_object &result_obj) const override
+   {
+     m_sd.maybe_add_sarif_properties (result_obj);
+   }
+ 
+ private:
+   const saved_diagnostic &m_sd;
+ };
+ 
  /* Given a saved_diagnostic SD with m_best_epath through EG,
     create an checker_path of suitable events and use it to call
     SD's underlying pending_diagnostic "emit" vfunc to emit a diagnostic.  */
  
  void
  diagnostic_manager::emit_saved_diagnostic (const exploded_graph &eg,
! 					   saved_diagnostic &sd)
  {
    LOG_SCOPE (get_logger ());
!   log ("sd[%i]: %qs at SN: %i",
!        sd.get_index (), sd.m_d->get_kind (), sd.m_snode->m_index);
    log ("num dupes: %i", sd.get_num_dupes ());
  
    pretty_printer *pp = global_dc->printer->clone ();
*************** diagnostic_manager::emit_saved_diagnosti
*** 1393,1398 ****
--- 1578,1588 ----
    /* Now prune it to just cover the most pertinent events.  */
    prune_path (&emission_path, sd.m_sm, sd.m_sval, sd.m_state);
  
+   /* Add any saved events to the path, giving contextual information
+      about what the analyzer was simulating as the diagnostic was
+      generated.  These don't get pruned, as they are probably pertinent.  */
+   sd.add_any_saved_events (emission_path);
+ 
    /* Add a final event to the path, covering the diagnostic itself.
       We use the final enode from the epath, which might be different from
       the sd.m_enode, as the dedupe code doesn't care about enodes, just
*************** diagnostic_manager::emit_saved_diagnosti
*** 1410,1417 ****
  
    emission_path.prepare_for_emission (sd.m_d.get ());
  
!   location_t loc
!     = get_emission_location (sd.m_stmt, sd.m_snode->m_fun, *sd.m_d);
  
    /* Allow the pending_diagnostic to fix up the locations of events.  */
    emission_path.fixup_locations (sd.m_d.get ());
--- 1600,1608 ----
  
    emission_path.prepare_for_emission (sd.m_d.get ());
  
!   location_t loc = sd.m_loc;
!   if (loc == UNKNOWN_LOCATION)
!     loc = get_emission_location (sd.m_stmt, sd.m_snode->m_fun, *sd.m_d);
  
    /* Allow the pending_diagnostic to fix up the locations of events.  */
    emission_path.fixup_locations (sd.m_d.get ());
*************** diagnostic_manager::emit_saved_diagnosti
*** 1421,1427 ****
  
    auto_diagnostic_group d;
    auto_cfun sentinel (sd.m_snode->m_fun);
!   if (sd.m_d->emit (&rich_loc))
      {
        sd.emit_any_notes ();
  
--- 1612,1620 ----
  
    auto_diagnostic_group d;
    auto_cfun sentinel (sd.m_snode->m_fun);
!   pending_diagnostic_metadata m (sd);
!   diagnostic_emission_context diag_ctxt (sd, rich_loc, m, get_logger ());
!   if (sd.m_d->emit (diag_ctxt))
      {
        sd.emit_any_notes ();
  
*************** struct null_assignment_sm_context : publ
*** 1850,1855 ****
--- 2043,2053 ----
      /* No-op.  */
    }
  
+   void clear_all_per_svalue_state () final override
+   {
+     /* No-op.  */
+   }
+ 
    void on_custom_transition (custom_transition *) final override
    {
    }
*************** diagnostic_manager::prune_path (checker_
*** 2281,2286 ****
--- 2479,2486 ----
    path->maybe_log (get_logger (), "path");
    prune_for_sm_diagnostic (path, sm, sval, state);
    prune_interproc_events (path);
+   if (! flag_analyzer_show_events_in_system_headers)
+     prune_system_headers (path);
    consolidate_conditions (path);
    finish_pruning (path);
    path->maybe_log (get_logger (), "pruned");
*************** diagnostic_manager::prune_interproc_even
*** 2667,2672 ****
--- 2867,2965 ----
    while (changed);
  }
  
+ /* Remove everything within [call point, IDX]. For consistency,
+    IDX should represent the return event of the frame to delete,
+    or if there is none it should be the last event of the frame.
+    After this function, IDX designates the event prior to calling
+    this frame.  */
+ 
+ static void
+ prune_frame (checker_path *path, int &idx)
+ {
+   gcc_assert (idx >= 0);
+   int nesting = 1;
+   if (path->get_checker_event (idx)->is_return_p ())
+     nesting = 0;
+   do
+     {
+       if (path->get_checker_event (idx)->is_call_p ())
+ 	nesting--;
+       else if (path->get_checker_event (idx)->is_return_p ())
+ 	nesting++;
+ 
+       path->delete_event (idx--);
+     } while (idx >= 0 && nesting != 0);
+ }
+ 
+ /* This function is called when fanalyzer-show-events-in-system-headers
+    is disabled and will prune the diagnostic of all events within a
+    system header, only keeping the entry and exit events to the header.
+    This should be called after diagnostic_manager::prune_interproc_events
+    so that sucessive events [system header call, system header return]
+    are preserved thereafter.
+ 
+    Given a diagnostics path diving into a system header in the form
+    [
+      prefix events...,
+      system header call,
+        system header entry,
+        events within system headers...,
+      system header return,
+      suffix events...
+    ]
+ 
+    then transforms it into
+    [
+      prefix events...,
+      system header call,
+      system header return,
+      suffix events...
+    ].  */
+ 
+ void
+ diagnostic_manager::prune_system_headers (checker_path *path) const
+ {
+   int idx = (signed)path->num_events () - 1;
+   while (idx >= 0)
+     {
+       const checker_event *event = path->get_checker_event (idx);
+       /* Prune everything between
+ 	 [..., system entry, (...), system return, ...].  */
+       if (event->is_return_p ()
+ 	  && in_system_header_at (event->get_location ()))
+       {
+ 	int ret_idx = idx;
+ 	prune_frame (path, idx);
+ 
+ 	if (get_logger ())
+ 	{
+ 	  log ("filtering system headers events %i-%i:",
+ 	       idx, ret_idx);
+ 	}
+ 	// Delete function entry within system headers.
+ 	if (idx >= 0)
+ 	  {
+ 	    event = path->get_checker_event (idx);
+ 	    if (event->is_function_entry_p ()
+ 		&& in_system_header_at (event->get_location ()))
+ 	      {
+ 		if (get_logger ())
+ 		  {
+ 		    label_text desc (event->get_desc (false));
+ 		    log ("filtering event %i:"
+ 			 "system header entry event: %s",
+ 			 idx, desc.get ());
+ 		  }
+ 
+ 		path->delete_event (idx);
+ 	      }
+ 	  }
+       }
+ 
+       idx--;
+     }
+ }
+ 
  /* Return true iff event IDX within PATH is on the same line as REF_EXP_LOC.  */
  
  static bool
diff -Nrcpad gcc-13.2.0/gcc/analyzer/diagnostic-manager.h gcc-14.1.0/gcc/analyzer/diagnostic-manager.h
*** gcc-13.2.0/gcc/analyzer/diagnostic-manager.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/diagnostic-manager.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class saved_diagnostic
*** 31,39 ****
  {
  public:
    saved_diagnostic (const state_machine *sm,
! 		    const exploded_node *enode,
! 		    const supernode *snode, const gimple *stmt,
! 		    const stmt_finder *stmt_finder,
  		    tree var, const svalue *sval,
  		    state_machine::state_t state,
  		    std::unique_ptr<pending_diagnostic> d,
--- 31,37 ----
  {
  public:
    saved_diagnostic (const state_machine *sm,
! 		    const pending_location &ploc,
  		    tree var, const svalue *sval,
  		    state_machine::state_t state,
  		    std::unique_ptr<pending_diagnostic> d,
*************** public:
*** 42,47 ****
--- 40,46 ----
    bool operator== (const saved_diagnostic &other) const;
  
    void add_note (std::unique_ptr<pending_note> pn);
+   void add_event (std::unique_ptr<checker_event> event);
  
    json::object *to_json () const;
  
*************** public:
*** 64,77 ****
--- 63,81 ----
  
    bool supercedes_p (const saved_diagnostic &other) const;
  
+   void add_any_saved_events (checker_path &dst_path);
+ 
    void emit_any_notes () const;
  
+   void maybe_add_sarif_properties (sarif_object &result_obj) const;
+ 
    //private:
    const state_machine *m_sm;
    const exploded_node *m_enode;
    const supernode *m_snode;
    const gimple *m_stmt;
    std::unique_ptr<stmt_finder> m_stmt_finder;
+   location_t m_loc;
    tree m_var;
    const svalue *m_sval;
    state_machine::state_t m_state;
*************** private:
*** 87,96 ****
--- 91,146 ----
  
    auto_vec<const saved_diagnostic *> m_duplicates;
    auto_delete_vec <pending_note> m_notes;
+ 
+   /* Optionally: additional context-dependent events to be emitted
+      immediately before the warning_event, giving more details of what
+      operation was being simulated when a diagnostic was saved
+      e.g. "looking for null terminator in param 2 of 'foo'".  */
+   auto_delete_vec <checker_event> m_saved_events;
  };
  
  class path_builder;
  
+ /* A bundle of information capturing where a pending_diagnostic should
+    be emitted.  */
+ 
+ struct pending_location
+ {
+ public:
+   pending_location (exploded_node *enode,
+ 		    const supernode *snode,
+ 		    const gimple *stmt,
+ 		    const stmt_finder *finder)
+   : m_enode (enode),
+     m_snode (snode),
+     m_stmt (stmt),
+     m_finder (finder),
+     m_loc (UNKNOWN_LOCATION)
+   {
+     gcc_assert (m_stmt || m_finder);
+   }
+ 
+   /* ctor for cases where we have a location_t but there isn't any
+      gimple stmt associated with the diagnostic.  */
+ 
+   pending_location (exploded_node *enode,
+ 		    const supernode *snode,
+ 		    location_t loc)
+   : m_enode (enode),
+     m_snode (snode),
+     m_stmt (nullptr),
+     m_finder (nullptr),
+     m_loc (loc)
+   {
+   }
+ 
+   exploded_node *m_enode;
+   const supernode *m_snode;
+   const gimple *m_stmt;
+   const stmt_finder *m_finder;
+   location_t m_loc;
+ };
+ 
  /* A class with responsibility for saving pending diagnostics, so that
     they can be emitted after the exploded_graph is complete.
     This lets us de-duplicate diagnostics, and find the shortest path
*************** public:
*** 110,134 ****
    json::object *to_json () const;
  
    bool add_diagnostic (const state_machine *sm,
! 		       exploded_node *enode,
! 		       const supernode *snode, const gimple *stmt,
! 		       const stmt_finder *finder,
  		       tree var,
  		       const svalue *sval,
  		       state_machine::state_t state,
  		       std::unique_ptr<pending_diagnostic> d);
  
!   bool add_diagnostic (exploded_node *enode,
! 		       const supernode *snode, const gimple *stmt,
! 		       const stmt_finder *finder,
  		       std::unique_ptr<pending_diagnostic> d);
  
    void add_note (std::unique_ptr<pending_note> pn);
  
    void emit_saved_diagnostics (const exploded_graph &eg);
  
    void emit_saved_diagnostic (const exploded_graph &eg,
! 			      const saved_diagnostic &sd);
  
    unsigned get_num_diagnostics () const
    {
--- 160,181 ----
    json::object *to_json () const;
  
    bool add_diagnostic (const state_machine *sm,
! 		       const pending_location &ploc,
  		       tree var,
  		       const svalue *sval,
  		       state_machine::state_t state,
  		       std::unique_ptr<pending_diagnostic> d);
  
!   bool add_diagnostic (const pending_location &ploc,
  		       std::unique_ptr<pending_diagnostic> d);
  
    void add_note (std::unique_ptr<pending_note> pn);
+   void add_event (std::unique_ptr<checker_event> event);
  
    void emit_saved_diagnostics (const exploded_graph &eg);
  
    void emit_saved_diagnostic (const exploded_graph &eg,
! 			      saved_diagnostic &sd);
  
    unsigned get_num_diagnostics () const
    {
*************** private:
*** 180,185 ****
--- 227,233 ----
  				state_machine::state_t state) const;
    void update_for_unsuitable_sm_exprs (tree *expr) const;
    void prune_interproc_events (checker_path *path) const;
+   void prune_system_headers (checker_path *path) const;
    void consolidate_conditions (checker_path *path) const;
    void finish_pruning (checker_path *path) const;
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/engine.cc gcc-14.1.0/gcc/analyzer/engine.cc
*** gcc-13.2.0/gcc/analyzer/engine.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/engine.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* The analysis "engine".
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* The analysis "engine".
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** impl_region_model_context (exploded_grap
*** 85,91 ****
  			   uncertainty_t *uncertainty,
  			   path_context *path_ctxt,
  			   const gimple *stmt,
! 			   stmt_finder *stmt_finder)
  : m_eg (&eg), m_logger (eg.get_logger ()),
    m_enode_for_diag (enode_for_diag),
    m_old_state (old_state),
--- 85,92 ----
  			   uncertainty_t *uncertainty,
  			   path_context *path_ctxt,
  			   const gimple *stmt,
! 			   stmt_finder *stmt_finder,
! 			   bool *out_could_have_done_work)
  : m_eg (&eg), m_logger (eg.get_logger ()),
    m_enode_for_diag (enode_for_diag),
    m_old_state (old_state),
*************** impl_region_model_context (exploded_grap
*** 94,100 ****
    m_stmt_finder (stmt_finder),
    m_ext_state (eg.get_ext_state ()),
    m_uncertainty (uncertainty),
!   m_path_ctxt (path_ctxt)
  {
  }
  
--- 95,102 ----
    m_stmt_finder (stmt_finder),
    m_ext_state (eg.get_ext_state ()),
    m_uncertainty (uncertainty),
!   m_path_ctxt (path_ctxt),
!   m_out_could_have_done_work (out_could_have_done_work)
  {
  }
  
*************** impl_region_model_context (program_state
*** 110,124 ****
    m_stmt_finder (NULL),
    m_ext_state (ext_state),
    m_uncertainty (uncertainty),
!   m_path_ctxt (NULL)
  {
  }
  
  bool
! impl_region_model_context::warn (std::unique_ptr<pending_diagnostic> d)
  {
    LOG_FUNC (get_logger ());
!   if (m_stmt == NULL && m_stmt_finder == NULL)
      {
        if (get_logger ())
  	get_logger ()->log ("rejecting diagnostic: no stmt");
--- 112,129 ----
    m_stmt_finder (NULL),
    m_ext_state (ext_state),
    m_uncertainty (uncertainty),
!   m_path_ctxt (NULL),
!   m_out_could_have_done_work (nullptr)
  {
  }
  
  bool
! impl_region_model_context::warn (std::unique_ptr<pending_diagnostic> d,
! 				 const stmt_finder *custom_finder)
  {
    LOG_FUNC (get_logger ());
!   auto curr_stmt_finder = custom_finder ? custom_finder : m_stmt_finder;
!   if (m_stmt == NULL && curr_stmt_finder == NULL)
      {
        if (get_logger ())
  	get_logger ()->log ("rejecting diagnostic: no stmt");
*************** impl_region_model_context::warn (std::un
*** 127,135 ****
    if (m_eg)
      {
        bool terminate_path = d->terminate_path_p ();
!       if (m_eg->get_diagnostic_manager ().add_diagnostic
! 	  (m_enode_for_diag, m_enode_for_diag->get_supernode (),
! 	   m_stmt, m_stmt_finder, std::move (d)))
  	{
  	  if (m_path_ctxt
  	      && terminate_path
--- 132,143 ----
    if (m_eg)
      {
        bool terminate_path = d->terminate_path_p ();
!       pending_location ploc (m_enode_for_diag,
! 			     m_enode_for_diag->get_supernode (),
! 			     m_stmt,
! 			     curr_stmt_finder);
!       if (m_eg->get_diagnostic_manager ().add_diagnostic (ploc,
! 							  std::move (d)))
  	{
  	  if (m_path_ctxt
  	      && terminate_path
*************** impl_region_model_context::add_note (std
*** 150,155 ****
--- 158,171 ----
  }
  
  void
+ impl_region_model_context::add_event (std::unique_ptr<checker_event> event)
+ {
+   LOG_FUNC (get_logger ());
+   if (m_eg)
+     m_eg->get_diagnostic_manager ().add_event (std::move (event));
+ }
+ 
+ void
  impl_region_model_context::on_svalue_leak (const svalue *sval)
  
  {
*************** on_liveness_change (const svalue_set &li
*** 163,169 ****
  		    const region_model *model)
  {
    for (sm_state_map *smap : m_new_state->m_checker_states)
!     smap->on_liveness_change (live_svalues, model, this);
  }
  
  void
--- 179,185 ----
  		    const region_model *model)
  {
    for (sm_state_map *smap : m_new_state->m_checker_states)
!     smap->on_liveness_change (live_svalues, model, m_ext_state, this);
  }
  
  void
*************** public:
*** 388,395 ****
  	 ? m_old_smap->get_state (var_old_sval, m_eg.get_ext_state ())
  	 : m_old_smap->get_global_state ());
      bool terminate_path = d->terminate_path_p ();
      m_eg.get_diagnostic_manager ().add_diagnostic
!       (&m_sm, m_enode_for_diag, snode, stmt, m_stmt_finder,
         var, var_old_sval, current, std::move (d));
      if (m_path_ctxt
  	&& terminate_path
--- 404,412 ----
  	 ? m_old_smap->get_state (var_old_sval, m_eg.get_ext_state ())
  	 : m_old_smap->get_global_state ());
      bool terminate_path = d->terminate_path_p ();
+     pending_location ploc (m_enode_for_diag, snode, stmt, m_stmt_finder);
      m_eg.get_diagnostic_manager ().add_diagnostic
!       (&m_sm, ploc,
         var, var_old_sval, current, std::move (d));
      if (m_path_ctxt
  	&& terminate_path
*************** public:
*** 408,415 ****
  	 ? m_old_smap->get_state (sval, m_eg.get_ext_state ())
  	 : m_old_smap->get_global_state ());
      bool terminate_path = d->terminate_path_p ();
      m_eg.get_diagnostic_manager ().add_diagnostic
!       (&m_sm, m_enode_for_diag, snode, stmt, m_stmt_finder,
         NULL_TREE, sval, current, std::move (d));
      if (m_path_ctxt
  	&& terminate_path
--- 425,433 ----
  	 ? m_old_smap->get_state (sval, m_eg.get_ext_state ())
  	 : m_old_smap->get_global_state ());
      bool terminate_path = d->terminate_path_p ();
+     pending_location ploc (m_enode_for_diag, snode, stmt, m_stmt_finder);
      m_eg.get_diagnostic_manager ().add_diagnostic
!       (&m_sm, ploc,
         NULL_TREE, sval, current, std::move (d));
      if (m_path_ctxt
  	&& terminate_path
*************** public:
*** 456,461 ****
--- 474,484 ----
      m_new_state->m_checker_states[m_sm_idx]->set_global_state (state);
    }
  
+   void clear_all_per_svalue_state () final override
+   {
+     m_new_state->m_checker_states[m_sm_idx]->clear_all_per_svalue_state ();
+   }
+ 
    void on_custom_transition (custom_transition *transition) final override
    {
      transition->impl_transition (&m_eg,
*************** impl_region_model_context::on_state_leak
*** 888,897 ****
    tree leaked_tree_for_diag = fixup_tree_for_diagnostic (leaked_tree);
    std::unique_ptr<pending_diagnostic> pd = sm.on_leak (leaked_tree_for_diag);
    if (pd)
!     m_eg->get_diagnostic_manager ().add_diagnostic
!       (&sm, m_enode_for_diag, m_enode_for_diag->get_supernode (),
!        m_stmt, &stmt_finder,
!        leaked_tree_for_diag, sval, state, std::move (pd));
  }
  
  /* Implementation of region_model_context::on_condition vfunc.
--- 911,925 ----
    tree leaked_tree_for_diag = fixup_tree_for_diagnostic (leaked_tree);
    std::unique_ptr<pending_diagnostic> pd = sm.on_leak (leaked_tree_for_diag);
    if (pd)
!     {
!       pending_location ploc (m_enode_for_diag,
! 			     m_enode_for_diag->get_supernode (),
! 			     m_stmt,
! 			     &stmt_finder);
!       m_eg->get_diagnostic_manager ().add_diagnostic
! 	(&sm, ploc,
! 	 leaked_tree_for_diag, sval, state, std::move (pd));
!     }
  }
  
  /* Implementation of region_model_context::on_condition vfunc.
*************** impl_region_model_context::on_unexpected
*** 1004,1009 ****
--- 1032,1048 ----
      m_new_state->m_valid = false;
  }
  
+ /* Implementation of region_model_context::maybe_did_work vfunc.
+    Mark that "externally visible work" has occurred, and thus we
+    shouldn't report an infinite loop here.  */
+ 
+ void
+ impl_region_model_context::maybe_did_work ()
+ {
+   if (m_out_could_have_done_work)
+     *m_out_could_have_done_work = true;
+ }
+ 
  /* struct point_and_state.  */
  
  /* Assert that this object is sane.  */
*************** point_and_state::validate (const extrins
*** 1033,1039 ****
      {
        int index = iter_frame->get_index ();
        gcc_assert (m_point.get_function_at_depth (index)
! 		  == iter_frame->get_function ());
      }
  }
  
--- 1072,1078 ----
      {
        int index = iter_frame->get_index ();
        gcc_assert (m_point.get_function_at_depth (index)
! 		  == &iter_frame->get_function ());
      }
  }
  
*************** exploded_node::on_stmt (exploded_graph &
*** 1419,1424 ****
--- 1458,1464 ----
  			const gimple *stmt,
  			program_state *state,
  			uncertainty_t *uncertainty,
+ 			bool *out_could_have_done_work,
  			path_context *path_ctxt)
  {
    logger *logger = eg.get_logger ();
*************** exploded_node::on_stmt (exploded_graph &
*** 1444,1450 ****
  
    impl_region_model_context ctxt (eg, this,
  				  &old_state, state, uncertainty,
! 				  path_ctxt, stmt);
  
    /* Handle call summaries here.  */
    if (cgraph_edge *cgedge
--- 1484,1491 ----
  
    impl_region_model_context ctxt (eg, this,
  				  &old_state, state, uncertainty,
! 				  path_ctxt, stmt, nullptr,
! 				  out_could_have_done_work);
  
    /* Handle call summaries here.  */
    if (cgraph_edge *cgedge
*************** exploded_node::on_stmt (exploded_graph &
*** 1455,1468 ****
  	per_function_data *called_fn_data
  	  = eg.get_per_function_data (called_fn);
  	if (called_fn_data)
! 	  return replay_call_summaries (eg,
! 					snode,
! 					as_a <const gcall *> (stmt),
! 					state,
! 					path_ctxt,
! 					called_fn,
! 					called_fn_data,
! 					&ctxt);
        }
  
    bool unknown_side_effects = false;
--- 1496,1512 ----
  	per_function_data *called_fn_data
  	  = eg.get_per_function_data (called_fn);
  	if (called_fn_data)
! 	  {
! 	    gcc_assert (called_fn);
! 	    return replay_call_summaries (eg,
! 					  snode,
! 					  as_a <const gcall *> (stmt),
! 					  state,
! 					  path_ctxt,
! 					  *called_fn,
! 					  *called_fn_data,
! 					  &ctxt);
! 	  }
        }
  
    bool unknown_side_effects = false;
*************** exploded_node::on_stmt_pre (exploded_gra
*** 1531,1542 ****
--- 1575,1590 ----
        else if (is_setjmp_call_p (call))
  	{
  	  state->m_region_model->on_setjmp (call, this, ctxt);
+ 	  if (ctxt)
+ 	    ctxt->maybe_did_work ();
  	  return;
  	}
        else if (is_longjmp_call_p (call))
  	{
  	  on_longjmp (eg, call, state, ctxt);
  	  *out_terminate_path = true;
+ 	  if (ctxt)
+ 	    ctxt->maybe_did_work ();
  	  return;
  	}
      }
*************** class call_summary_edge_info : public ca
*** 1565,1574 ****
  {
  public:
    call_summary_edge_info (const call_details &cd,
! 			  function *called_fn,
  			  call_summary *summary,
  			  const extrinsic_state &ext_state)
!   : call_info (cd),
      m_called_fn (called_fn),
      m_summary (summary),
      m_ext_state (ext_state)
--- 1613,1622 ----
  {
  public:
    call_summary_edge_info (const call_details &cd,
! 			  const function &called_fn,
  			  call_summary *summary,
  			  const extrinsic_state &ext_state)
!   : call_info (cd, called_fn),
      m_called_fn (called_fn),
      m_summary (summary),
      m_ext_state (ext_state)
*************** public:
*** 1603,1609 ****
    }
  
  private:
!   function *m_called_fn;
    call_summary *m_summary;
    const extrinsic_state &m_ext_state;
  };
--- 1651,1657 ----
    }
  
  private:
!   const function &m_called_fn;
    call_summary *m_summary;
    const extrinsic_state &m_ext_state;
  };
*************** exploded_node::replay_call_summaries (ex
*** 1617,1634 ****
  				      const gcall *call_stmt,
  				      program_state *state,
  				      path_context *path_ctxt,
! 				      function *called_fn,
! 				      per_function_data *called_fn_data,
  				      region_model_context *ctxt)
  {
    logger *logger = eg.get_logger ();
    LOG_SCOPE (logger);
  
-   gcc_assert (called_fn);
-   gcc_assert (called_fn_data);
- 
    /* Each summary will call bifurcate on the PATH_CTXT.  */
!   for (auto summary : called_fn_data->m_summaries)
      replay_call_summary (eg, snode, call_stmt, state,
  			 path_ctxt, called_fn, summary, ctxt);
    path_ctxt->terminate_path ();
--- 1665,1679 ----
  				      const gcall *call_stmt,
  				      program_state *state,
  				      path_context *path_ctxt,
! 				      const function &called_fn,
! 				      per_function_data &called_fn_data,
  				      region_model_context *ctxt)
  {
    logger *logger = eg.get_logger ();
    LOG_SCOPE (logger);
  
    /* Each summary will call bifurcate on the PATH_CTXT.  */
!   for (auto summary : called_fn_data.m_summaries)
      replay_call_summary (eg, snode, call_stmt, state,
  			 path_ctxt, called_fn, summary, ctxt);
    path_ctxt->terminate_path ();
*************** exploded_node::replay_call_summary (expl
*** 1646,1652 ****
  				    const gcall *call_stmt,
  				    program_state *old_state,
  				    path_context *path_ctxt,
! 				    function *called_fn,
  				    call_summary *summary,
  				    region_model_context *ctxt)
  {
--- 1691,1697 ----
  				    const gcall *call_stmt,
  				    program_state *old_state,
  				    path_context *path_ctxt,
! 				    const function &called_fn,
  				    call_summary *summary,
  				    region_model_context *ctxt)
  {
*************** exploded_node::replay_call_summary (expl
*** 1655,1667 ****
    gcc_assert (snode);
    gcc_assert (call_stmt);
    gcc_assert (old_state);
-   gcc_assert (called_fn);
    gcc_assert (summary);
  
    if (logger)
      logger->log ("using %s as summary for call to %qE from %qE",
  		 summary->get_desc ().get (),
! 		 called_fn->decl,
  		 snode->get_function ()->decl);
    const extrinsic_state &ext_state = eg.get_ext_state ();
    const program_state &summary_end_state = summary->get_state ();
--- 1700,1711 ----
    gcc_assert (snode);
    gcc_assert (call_stmt);
    gcc_assert (old_state);
    gcc_assert (summary);
  
    if (logger)
      logger->log ("using %s as summary for call to %qE from %qE",
  		 summary->get_desc ().get (),
! 		 called_fn.decl,
  		 snode->get_function ()->decl);
    const extrinsic_state &ext_state = eg.get_ext_state ();
    const program_state &summary_end_state = summary->get_state ();
*************** public:
*** 1771,1783 ****
      return OPT_Wanalyzer_stale_setjmp_buffer;
    }
  
!   bool emit (rich_location *richloc) final override
    {
!     return warning_at
!       (richloc, get_controlling_option (),
!        "%qs called after enclosing function of %qs has returned",
!        get_user_facing_name (m_longjmp_call),
!        get_user_facing_name (m_setjmp_call));
    }
  
    const char *get_kind () const final override
--- 1815,1825 ----
      return OPT_Wanalyzer_stale_setjmp_buffer;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     return ctxt.warn ("%qs called after enclosing function of %qs has returned",
! 		      get_user_facing_name (m_longjmp_call),
! 		      get_user_facing_name (m_setjmp_call));
    }
  
    const char *get_kind () const final override
*************** exploded_node::on_longjmp (exploded_grap
*** 1918,1925 ****
    if (next)
      {
        exploded_edge *eedge
! 	= eg.add_edge (const_cast<exploded_node *> (this), next, NULL,
! 		       make_unique<rewind_info_t> (tmp_setjmp_record, longjmp_call));
  
        /* For any diagnostics that were queued here (such as leaks) we want
  	 the checker_path to show the rewinding events after the "final event"
--- 1960,1968 ----
    if (next)
      {
        exploded_edge *eedge
! 	= eg.add_edge (const_cast<exploded_node *> (this), next, NULL, true,
! 		       make_unique<rewind_info_t> (tmp_setjmp_record,
! 						   longjmp_call));
  
        /* For any diagnostics that were queued here (such as leaks) we want
  	 the checker_path to show the rewinding events after the "final event"
*************** rewind_info_t::add_events_to_path (check
*** 2141,2150 ****
  /* exploded_edge's ctor.  */
  
  exploded_edge::exploded_edge (exploded_node *src, exploded_node *dest,
! 			      const superedge *sedge,
  			      std::unique_ptr<custom_edge_info> custom_info)
  : dedge<eg_traits> (src, dest), m_sedge (sedge),
!   m_custom_info (std::move (custom_info))
  {
  }
  
--- 2184,2194 ----
  /* exploded_edge's ctor.  */
  
  exploded_edge::exploded_edge (exploded_node *src, exploded_node *dest,
! 			      const superedge *sedge, bool could_do_work,
  			      std::unique_ptr<custom_edge_info> custom_info)
  : dedge<eg_traits> (src, dest), m_sedge (sedge),
!   m_custom_info (std::move (custom_info)),
!   m_could_do_work_p (could_do_work)
  {
  }
  
*************** exploded_edge::dump_dot_label (pretty_pr
*** 2208,2213 ****
--- 2252,2260 ----
    else if (m_custom_info)
      m_custom_info->print (pp);
  
+   pp_printf (pp, "%s",
+ 	     could_do_work_p () ? "(could do work)" : "DOES NO WORK");
+ 
    //pp_write_text_as_dot_label_to_stream (pp, /*for_record=*/false);
  
    pp_printf (pp, "\"];\n");
*************** private:
*** 2736,2751 ****
     Return the exploded_node for the entrypoint to the function.  */
  
  exploded_node *
! exploded_graph::add_function_entry (function *fun)
  {
!   gcc_assert (gimple_has_body_p (fun->decl));
  
    /* Be idempotent.  */
!   if (m_functions_with_enodes.contains (fun))
      {
        logger * const logger = get_logger ();
         if (logger)
! 	logger->log ("entrypoint for %qE already exists", fun->decl);
        return NULL;
      }
  
--- 2783,2799 ----
     Return the exploded_node for the entrypoint to the function.  */
  
  exploded_node *
! exploded_graph::add_function_entry (const function &fun)
  {
!   gcc_assert (gimple_has_body_p (fun.decl));
  
    /* Be idempotent.  */
!   function *key = const_cast<function *> (&fun);
!   if (m_functions_with_enodes.contains (key))
      {
        logger * const logger = get_logger ();
         if (logger)
! 	logger->log ("entrypoint for %qE already exists", fun.decl);
        return NULL;
      }
  
*************** exploded_graph::add_function_entry (func
*** 2757,2766 ****
  
    std::unique_ptr<custom_edge_info> edge_info = NULL;
  
!   if (lookup_attribute ("tainted_args", DECL_ATTRIBUTES (fun->decl)))
      {
!       if (mark_params_as_tainted (&state, fun->decl, m_ext_state))
! 	edge_info = make_unique<tainted_args_function_info> (fun->decl);
      }
  
    if (!state.m_valid)
--- 2805,2814 ----
  
    std::unique_ptr<custom_edge_info> edge_info = NULL;
  
!   if (lookup_attribute ("tainted_args", DECL_ATTRIBUTES (fun.decl)))
      {
!       if (mark_params_as_tainted (&state, fun.decl, m_ext_state))
! 	edge_info = make_unique<tainted_args_function_info> (fun.decl);
      }
  
    if (!state.m_valid)
*************** exploded_graph::add_function_entry (func
*** 2770,2778 ****
    if (!enode)
      return NULL;
  
!   add_edge (m_origin, enode, NULL, std::move (edge_info));
  
!   m_functions_with_enodes.add (fun);
  
    return enode;
  }
--- 2818,2826 ----
    if (!enode)
      return NULL;
  
!   add_edge (m_origin, enode, NULL, false, std::move (edge_info));
  
!   m_functions_with_enodes.add (key);
  
    return enode;
  }
*************** exploded_graph::get_or_create_node (cons
*** 2968,2986 ****
  
  /* Add an exploded_edge from SRC to DEST, recording its association
     with SEDGE (which may be NULL), and, if non-NULL, taking ownership
!    of CUSTOM_INFO.
     Return the newly-created eedge.  */
  
  exploded_edge *
  exploded_graph::add_edge (exploded_node *src, exploded_node *dest,
! 			  const superedge *sedge,
! 			    std::unique_ptr<custom_edge_info> custom_info)
  {
    if (get_logger ())
      get_logger ()->log ("creating edge EN: %i -> EN: %i",
  			src->m_index, dest->m_index);
!   exploded_edge *e = new exploded_edge (src, dest, sedge,
! 					std::move (custom_info));
    digraph<eg_traits>::add_edge (e);
    return e;
  }
--- 3016,3035 ----
  
  /* Add an exploded_edge from SRC to DEST, recording its association
     with SEDGE (which may be NULL), and, if non-NULL, taking ownership
!    of CUSTOM_INFO.  COULD_DO_WORK is used for detecting infinite loops.
     Return the newly-created eedge.  */
  
  exploded_edge *
  exploded_graph::add_edge (exploded_node *src, exploded_node *dest,
! 			  const superedge *sedge, bool could_do_work,
! 			  std::unique_ptr<custom_edge_info> custom_info)
  {
    if (get_logger ())
      get_logger ()->log ("creating edge EN: %i -> EN: %i",
  			src->m_index, dest->m_index);
!   exploded_edge *e
!     = new exploded_edge (src, dest, sedge, could_do_work,
! 			 std::move (custom_info));
    digraph<eg_traits>::add_edge (e);
    return e;
  }
*************** exploded_graph::get_per_function_data (f
*** 3059,3065 ****
     called via other functions.  */
  
  static bool
! toplevel_function_p (function *fun, logger *logger)
  {
    /* Don't directly traverse into functions that have an "__analyzer_"
       prefix.  Doing so is useful for the analyzer test suite, allowing
--- 3108,3114 ----
     called via other functions.  */
  
  static bool
! toplevel_function_p (const function &fun, logger *logger)
  {
    /* Don't directly traverse into functions that have an "__analyzer_"
       prefix.  Doing so is useful for the analyzer test suite, allowing
*************** toplevel_function_p (function *fun, logg
*** 3070,3086 ****
       excess messages from the case of the first function being traversed
       directly.  */
  #define ANALYZER_PREFIX "__analyzer_"
!   if (!strncmp (IDENTIFIER_POINTER (DECL_NAME (fun->decl)), ANALYZER_PREFIX,
  		strlen (ANALYZER_PREFIX)))
      {
        if (logger)
  	logger->log ("not traversing %qE (starts with %qs)",
! 		     fun->decl, ANALYZER_PREFIX);
        return false;
      }
  
    if (logger)
!     logger->log ("traversing %qE (all checks passed)", fun->decl);
  
    return true;
  }
--- 3119,3135 ----
       excess messages from the case of the first function being traversed
       directly.  */
  #define ANALYZER_PREFIX "__analyzer_"
!   if (!strncmp (IDENTIFIER_POINTER (DECL_NAME (fun.decl)), ANALYZER_PREFIX,
  		strlen (ANALYZER_PREFIX)))
      {
        if (logger)
  	logger->log ("not traversing %qE (starts with %qs)",
! 		     fun.decl, ANALYZER_PREFIX);
        return false;
      }
  
    if (logger)
!     logger->log ("traversing %qE (all checks passed)", fun.decl);
  
    return true;
  }
*************** add_tainted_args_callback (exploded_grap
*** 3205,3213 ****
  
    program_point point
      = program_point::from_function_entry (*ext_state.get_model_manager (),
! 					  eg->get_supergraph (), fun);
    program_state state (ext_state);
!   state.push_frame (ext_state, fun);
  
    if (!mark_params_as_tainted (&state, fndecl, ext_state))
      return;
--- 3254,3262 ----
  
    program_point point
      = program_point::from_function_entry (*ext_state.get_model_manager (),
! 					  eg->get_supergraph (), *fun);
    program_state state (ext_state);
!   state.push_frame (ext_state, *fun);
  
    if (!mark_params_as_tainted (&state, fndecl, ext_state))
      return;
*************** add_tainted_args_callback (exploded_grap
*** 3229,3235 ****
  	}
      }
  
!   eg->add_edge (eg->get_origin (), enode, NULL,
  		make_unique<tainted_args_call_info> (field, fndecl, loc));
  }
  
--- 3278,3284 ----
  	}
      }
  
!   eg->add_edge (eg->get_origin (), enode, NULL, false,
  		make_unique<tainted_args_call_info> (field, fndecl, loc));
  }
  
*************** exploded_graph::build_initial_worklist (
*** 3281,3289 ****
    FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
    {
      function *fun = node->get_fun ();
!     if (!toplevel_function_p (fun, logger))
        continue;
!     exploded_node *enode = add_function_entry (fun);
      if (logger)
        {
  	if (enode)
--- 3330,3339 ----
    FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
    {
      function *fun = node->get_fun ();
!     gcc_assert (fun);
!     if (!toplevel_function_p (*fun, logger))
        continue;
!     exploded_node *enode = add_function_entry (*fun);
      if (logger)
        {
  	if (enode)
*************** exploded_graph::process_worklist ()
*** 3383,3389 ****
  		    if (merged_state == state)
  		      {
  			/* Then merge node_2 into node by adding an edge.  */
! 			add_edge (node_2, node, NULL);
  
  			/* Remove node_2 from the worklist.  */
  			m_worklist.take_next ();
--- 3433,3439 ----
  		    if (merged_state == state)
  		      {
  			/* Then merge node_2 into node by adding an edge.  */
! 			add_edge (node_2, node, NULL, false);
  
  			/* Remove node_2 from the worklist.  */
  			m_worklist.take_next ();
*************** exploded_graph::process_worklist ()
*** 3396,3402 ****
  			/* Then merge node into node_2, and leave node_2
  			   in the worklist, to be processed on the next
  			   iteration.  */
! 			add_edge (node, node_2, NULL);
  			node->set_status (exploded_node::STATUS_MERGER);
  			continue;
  		      }
--- 3446,3452 ----
  			/* Then merge node into node_2, and leave node_2
  			   in the worklist, to be processed on the next
  			   iteration.  */
! 			add_edge (node, node_2, NULL, false);
  			node->set_status (exploded_node::STATUS_MERGER);
  			continue;
  		      }
*************** exploded_graph::process_worklist ()
*** 3441,3447 ****
  			  m_worklist.add_node (merged_enode);
  			else
  			  {
! 			    add_edge (node, merged_enode, NULL);
  			    node->set_status (exploded_node::STATUS_MERGER);
  			  }
  
--- 3491,3497 ----
  			  m_worklist.add_node (merged_enode);
  			else
  			  {
! 			    add_edge (node, merged_enode, NULL, false);
  			    node->set_status (exploded_node::STATUS_MERGER);
  			  }
  
*************** exploded_graph::process_worklist ()
*** 3449,3455 ****
  			  m_worklist.add_node (merged_enode);
  			else
  			  {
! 			    add_edge (node_2, merged_enode, NULL);
  			    node_2->set_status (exploded_node::STATUS_MERGER);
  			  }
  
--- 3499,3505 ----
  			  m_worklist.add_node (merged_enode);
  			else
  			  {
! 			    add_edge (node_2, merged_enode, NULL, false);
  			    node_2->set_status (exploded_node::STATUS_MERGER);
  			  }
  
*************** maybe_process_run_of_before_supernode_en
*** 3684,3690 ****
      {
        exploded_node *next = next_enodes[it->m_merger_idx];
        if (next)
! 	add_edge (it->m_input_enode, next, NULL);
        it->m_input_enode->set_status (exploded_node::STATUS_BULK_MERGED);
      }
  
--- 3734,3741 ----
      {
        exploded_node *next = next_enodes[it->m_merger_idx];
        if (next)
! 	add_edge (it->m_input_enode, next, NULL,
! 		  false); /* no "work" is done during merger.  */
        it->m_input_enode->set_status (exploded_node::STATUS_BULK_MERGED);
      }
  
*************** exploded_graph::maybe_create_dynamic_cal
*** 3788,3795 ****
    if (fun)
      {
        const supergraph &sg = this->get_supergraph ();
!       supernode *sn_entry = sg.get_node_for_function_entry (fun);
!       supernode *sn_exit = sg.get_node_for_function_exit (fun);
  
        program_point new_point
  	= program_point::before_supernode (sn_entry,
--- 3839,3846 ----
    if (fun)
      {
        const supergraph &sg = this->get_supergraph ();
!       supernode *sn_entry = sg.get_node_for_function_entry (*fun);
!       supernode *sn_exit = sg.get_node_for_function_exit (*fun);
  
        program_point new_point
  	= program_point::before_supernode (sn_entry,
*************** exploded_graph::maybe_create_dynamic_cal
*** 3827,3832 ****
--- 3878,3884 ----
  						     node);
  	  if (enode)
  	    add_edge (node,enode, NULL,
+ 		      false, /* No work is done by the call itself.  */
  		      make_unique<dynamic_call_info_t> (call));
  	  return true;
  	}
*************** exploded_graph::maybe_create_dynamic_cal
*** 3840,3847 ****
  class impl_path_context : public path_context
  {
  public:
!   impl_path_context (const program_state *cur_state)
    : m_cur_state (cur_state),
      m_terminate_path (false)
    {
    }
--- 3892,3901 ----
  class impl_path_context : public path_context
  {
  public:
!   impl_path_context (const program_state *cur_state,
! 		     logger *logger)
    : m_cur_state (cur_state),
+     m_logger (logger),
      m_terminate_path (false)
    {
    }
*************** public:
*** 3860,3865 ****
--- 3914,3922 ----
    void
    bifurcate (std::unique_ptr<custom_edge_info> info) final override
    {
+     if (m_logger)
+       m_logger->log ("bifurcating path");
+ 
      if (m_state_at_bifurcation)
        /* Verify that the state at bifurcation is consistent when we
  	 split into multiple out-edges.  */
*************** public:
*** 3876,3881 ****
--- 3933,3940 ----
  
    void terminate_path () final override
    {
+     if (m_logger)
+       m_logger->log ("terminating path");
      m_terminate_path = true;
    }
  
*************** public:
*** 3892,3897 ****
--- 3951,3958 ----
  private:
    const program_state *m_cur_state;
  
+   logger *m_logger;
+ 
    /* Lazily-created copy of the state before the split.  */
    std::unique_ptr<program_state> m_state_at_bifurcation;
  
*************** public:
*** 3925,3934 ****
      return OPT_Wanalyzer_jump_through_null;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "jump through null pointer");
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
--- 3986,3994 ----
      return OPT_Wanalyzer_jump_through_null;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     return ctxt.warn ("jump through null pointer");
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
*************** exploded_graph::process_node (exploded_n
*** 4010,4016 ****
  	program_point next_point (point.get_next ());
  	exploded_node *next = get_or_create_node (next_point, next_state, node);
  	if (next)
! 	  add_edge (node, next, NULL);
        }
        break;
      case PK_BEFORE_STMT:
--- 4070,4077 ----
  	program_point next_point (point.get_next ());
  	exploded_node *next = get_or_create_node (next_point, next_state, node);
  	if (next)
! 	  add_edge (node, next, NULL,
! 		    false); /* Assume no work is done at phi nodes.  */
        }
        break;
      case PK_BEFORE_STMT:
*************** exploded_graph::process_node (exploded_n
*** 4036,4043 ****
  	   exactly one stmt, the one that caused the change. */
  	program_state next_state (state);
  
! 	impl_path_context path_ctxt (&next_state);
  
  	uncertainty_t uncertainty;
  	const supernode *snode = point.get_supernode ();
  	unsigned stmt_idx;
--- 4097,4105 ----
  	   exactly one stmt, the one that caused the change. */
  	program_state next_state (state);
  
! 	impl_path_context path_ctxt (&next_state, logger);
  
+ 	bool could_have_done_work = false;
  	uncertainty_t uncertainty;
  	const supernode *snode = point.get_supernode ();
  	unsigned stmt_idx;
*************** exploded_graph::process_node (exploded_n
*** 4061,4067 ****
  	    /* Process the stmt.  */
  	    exploded_node::on_stmt_flags flags
  	      = node->on_stmt (*this, snode, stmt, &next_state, &uncertainty,
! 			       &path_ctxt);
  	    node->m_num_processed_stmts++;
  
  	    /* If flags.m_terminate_path, stop analyzing; any nodes/edges
--- 4123,4129 ----
  	    /* Process the stmt.  */
  	    exploded_node::on_stmt_flags flags
  	      = node->on_stmt (*this, snode, stmt, &next_state, &uncertainty,
! 			       &could_have_done_work, &path_ctxt);
  	    node->m_num_processed_stmts++;
  
  	    /* If flags.m_terminate_path, stop analyzing; any nodes/edges
*************** exploded_graph::process_node (exploded_n
*** 4118,4124 ****
  		    node->m_num_processed_stmts--;
  		    if (logger)
  		      logger->log ("creating edge to split_enode");
! 		    add_edge (node, split_enode, NULL);
  		    return;
  		  }
  		else
--- 4180,4186 ----
  		    node->m_num_processed_stmts--;
  		    if (logger)
  		      logger->log ("creating edge to split_enode");
! 		    add_edge (node, split_enode, NULL, could_have_done_work);
  		    return;
  		  }
  		else
*************** exploded_graph::process_node (exploded_n
*** 4145,4151 ****
  	    exploded_node *next
  	      = get_or_create_node (next_point, next_state, node);
  	    if (next)
! 	      add_edge (node, next, NULL);
  	  }
  
  	/* If we have custom edge infos, "bifurcate" the state
--- 4207,4213 ----
  	    exploded_node *next
  	      = get_or_create_node (next_point, next_state, node);
  	    if (next)
! 	      add_edge (node, next, NULL, could_have_done_work);
  	  }
  
  	/* If we have custom edge infos, "bifurcate" the state
*************** exploded_graph::process_node (exploded_n
*** 4183,4189 ****
  		exploded_node *next2
  		  = get_or_create_node (next_point, bifurcated_new_state, node);
  		if (next2)
! 		  add_edge (node, next2, NULL, std::move (edge_info));
  	      }
  	    else
  	      {
--- 4245,4253 ----
  		exploded_node *next2
  		  = get_or_create_node (next_point, bifurcated_new_state, node);
  		if (next2)
! 		  add_edge (node, next2, NULL,
! 			    true /* assume that work could be done */,
! 			    std::move (edge_info));
  	      }
  	    else
  	      {
*************** exploded_graph::process_node (exploded_n
*** 4298,4304 ****
  					    next_state,
  					    node);
  		    if (next)
! 		      add_edge (node, next, succ);
  		  }
  	      }
  
--- 4362,4369 ----
  					    next_state,
  					    node);
  		    if (next)
! 		      add_edge (node, next, succ,
! 				true /* assume that work is done */);
  		  }
  	      }
  
*************** exploded_graph::process_node (exploded_n
*** 4314,4320 ****
  						      node);
  	    if (next)
  	      {
! 		add_edge (node, next, succ);
  
  		/* We might have a function entrypoint.  */
  		detect_infinite_recursion (next);
--- 4379,4385 ----
  						      node);
  	    if (next)
  	      {
! 		add_edge (node, next, succ, false);
  
  		/* We might have a function entrypoint.  */
  		detect_infinite_recursion (next);
*************** exploded_graph::process_node (exploded_n
*** 4348,4354 ****
  							   next_state,
  							   node);
  		if (enode)
! 		  add_edge (node, enode, NULL,
  			    make_unique<dynamic_call_info_t> (call, true));
  	      }
  	  }
--- 4413,4419 ----
  							   next_state,
  							   node);
  		if (enode)
! 		  add_edge (node, enode, NULL, false,
  			    make_unique<dynamic_call_info_t> (call, true));
  	      }
  	  }
*************** exploded_path::feasible_p (logger *logge
*** 4678,4685 ****
  		     eedge->m_src->m_index,
  		     eedge->m_dest->m_index);
  
!       rejected_constraint *rc = NULL;
!       if (!state.maybe_update_for_edge (logger, eedge, &rc))
  	{
  	  gcc_assert (rc);
  	  if (out)
--- 4743,4750 ----
  		     eedge->m_src->m_index,
  		     eedge->m_dest->m_index);
  
!       std::unique_ptr <rejected_constraint> rc;
!       if (!state.maybe_update_for_edge (logger, eedge, nullptr, &rc))
  	{
  	  gcc_assert (rc);
  	  if (out)
*************** exploded_path::feasible_p (logger *logge
*** 4688,4698 ****
  	      const program_point &src_point = src_enode.get_point ();
  	      const gimple *last_stmt
  		= src_point.get_supernode ()->get_last_stmt ();
! 	      *out = make_unique<feasibility_problem> (edge_idx, *eedge,
! 						       last_stmt, rc);
  	    }
- 	  else
- 	    delete rc;
  	  return false;
  	}
  
--- 4753,4762 ----
  	      const program_point &src_point = src_enode.get_point ();
  	      const gimple *last_stmt
  		= src_point.get_supernode ()->get_last_stmt ();
! 	      *out = ::make_unique<feasibility_problem> (edge_idx, *eedge,
! 							 last_stmt,
! 							 std::move (rc));
  	    }
  	  return false;
  	}
  
*************** feasibility_state::feasibility_state (co
*** 4807,4812 ****
--- 4871,4892 ----
    bitmap_copy (m_snodes_visited, other.m_snodes_visited);
  }
  
+ feasibility_state::feasibility_state (const region_model &model,
+ 				      const supergraph &sg)
+ : m_model (model),
+   m_snodes_visited (sg.m_nodes.length ())
+ {
+   bitmap_clear (m_snodes_visited);
+ }
+ 
+ feasibility_state &
+ feasibility_state::operator= (const feasibility_state &other)
+ {
+   m_model = other.m_model;
+   bitmap_copy (m_snodes_visited, other.m_snodes_visited);
+   return *this;
+ }
+ 
  /* The heart of feasibility-checking.
  
     Attempt to update this state in-place based on traversing EEDGE
*************** feasibility_state::feasibility_state (co
*** 4818,4826 ****
     Otherwise, return false and write to *OUT_RC.  */
  
  bool
! feasibility_state::maybe_update_for_edge (logger *logger,
! 					  const exploded_edge *eedge,
! 					  rejected_constraint **out_rc)
  {
    const exploded_node &src_enode = *eedge->m_src;
    const program_point &src_point = src_enode.get_point ();
--- 4898,4908 ----
     Otherwise, return false and write to *OUT_RC.  */
  
  bool
! feasibility_state::
! maybe_update_for_edge (logger *logger,
! 		       const exploded_edge *eedge,
! 		       region_model_context *ctxt,
! 		       std::unique_ptr<rejected_constraint> *out_rc)
  {
    const exploded_node &src_enode = *eedge->m_src;
    const program_point &src_point = src_enode.get_point ();
*************** feasibility_state::maybe_update_for_edge
*** 4858,4869 ****
  	}
  
        const gimple *last_stmt = src_point.get_supernode ()->get_last_stmt ();
!       if (!m_model.maybe_update_for_edge (*sedge, last_stmt, NULL, out_rc))
  	{
  	  if (logger)
  	    {
! 	      logger->log ("rejecting due to region model");
  	      m_model.dump_to_pp (logger->get_printer (), true, false);
  	    }
  	  return false;
  	}
--- 4940,4953 ----
  	}
  
        const gimple *last_stmt = src_point.get_supernode ()->get_last_stmt ();
!       if (!m_model.maybe_update_for_edge (*sedge, last_stmt, ctxt, out_rc))
  	{
  	  if (logger)
  	    {
! 	      logger->start_log_line ();
! 	      logger->log_partial ("rejecting due to region model: ");
  	      m_model.dump_to_pp (logger->get_printer (), true, false);
+ 	      logger->end_log_line ();
  	    }
  	  return false;
  	}
*************** feasibility_state::maybe_update_for_edge
*** 4879,4891 ****
  		      == PK_BEFORE_SUPERNODE);
  	  function *fun = eedge->m_dest->get_function ();
  	  gcc_assert (fun);
! 	  m_model.push_frame (fun, NULL, NULL);
  	  if (logger)
  	    logger->log ("  pushing frame for %qD", fun->decl);
  	}
        else if (eedge->m_custom_info)
  	{
! 	  eedge->m_custom_info->update_model (&m_model, eedge, NULL);
  	}
      }
  
--- 4963,4975 ----
  		      == PK_BEFORE_SUPERNODE);
  	  function *fun = eedge->m_dest->get_function ();
  	  gcc_assert (fun);
! 	  m_model.push_frame (*fun, NULL, ctxt);
  	  if (logger)
  	    logger->log ("  pushing frame for %qD", fun->decl);
  	}
        else if (eedge->m_custom_info)
  	{
! 	  eedge->m_custom_info->update_model (&m_model, eedge, ctxt);
  	}
      }
  
*************** feasibility_state::maybe_update_for_edge
*** 4904,4910 ****
  	    logger->log ("  update for phis");
  	  m_model.update_for_phis (src_enode.get_supernode (),
  				  last_cfg_superedge,
! 				  NULL);
  	  /* If we've entering an snode that we've already visited on this
  	     epath, then we need do fix things up for loops; see the
  	     comment for store::loop_replay_fixup.
--- 4988,4994 ----
  	    logger->log ("  update for phis");
  	  m_model.update_for_phis (src_enode.get_supernode (),
  				  last_cfg_superedge,
! 				  ctxt);
  	  /* If we've entering an snode that we've already visited on this
  	     epath, then we need do fix things up for loops; see the
  	     comment for store::loop_replay_fixup.
*************** exploded_graph::on_escaped_function (tre
*** 5499,5505 ****
    if (!gimple_has_body_p (fndecl))
      return;
  
!   exploded_node *enode = add_function_entry (fun);
    if (logger)
      {
        if (enode)
--- 5583,5589 ----
    if (!gimple_has_body_p (fndecl))
      return;
  
!   exploded_node *enode = add_function_entry (*fun);
    if (logger)
      {
        if (enode)
*************** dump_analyzer_json (const supergraph &sg
*** 5991,5997 ****
    toplev_obj->set ("egraph", eg.to_json ());
  
    pretty_printer pp;
!   toplev_obj->print (&pp);
    pp_formatted_text (&pp);
  
    delete toplev_obj;
--- 6075,6081 ----
    toplev_obj->set ("egraph", eg.to_json ());
  
    pretty_printer pp;
!   toplev_obj->print (&pp, flag_diagnostics_json_formatting);
    pp_formatted_text (&pp);
  
    delete toplev_obj;
*************** impl_run_checkers (logger *logger)
*** 6094,6100 ****
    auto_delete_vec <state_machine> checkers;
    make_checkers (checkers, logger);
  
!   register_known_functions (*eng.get_known_function_manager ());
  
    plugin_analyzer_init_impl data (&checkers,
  				  eng.get_known_function_manager (),
--- 6178,6185 ----
    auto_delete_vec <state_machine> checkers;
    make_checkers (checkers, logger);
  
!   register_known_functions (*eng.get_known_function_manager (),
! 			    *eng.get_model_manager ());
  
    plugin_analyzer_init_impl data (&checkers,
  				  eng.get_known_function_manager (),
*************** impl_run_checkers (logger *logger)
*** 6124,6129 ****
--- 6209,6217 ----
    /* Now process the worklist, exploring the <point, state> graph.  */
    eg.process_worklist ();
  
+   if (warn_analyzer_infinite_loop)
+     eg.detect_infinite_loops ();
+ 
    if (flag_dump_analyzer_exploded_graph)
      {
        auto_timevar tv (TV_ANALYZER_DUMP);
*************** impl_run_checkers (logger *logger)
*** 6163,6168 ****
--- 6251,6263 ----
      eng.get_model_manager ()->dump_untracked_regions ();
  
    delete purge_map;
+ 
+   /* Free up any dominance info that we may have created.  */
+   FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
+     {
+       function *fun = node->get_fun ();
+       free_dominance_info (fun, CDI_DOMINATORS);
+     }
  }
  
  /* Handle -fdump-analyzer and -fdump-analyzer-stderr.  */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/engine.h gcc-14.1.0/gcc/analyzer/engine.h
*** gcc-13.2.0/gcc/analyzer/engine.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/engine.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* The analysis "engine".
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* The analysis "engine".
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/exploded-graph.h gcc-14.1.0/gcc/analyzer/exploded-graph.h
*** gcc-13.2.0/gcc/analyzer/exploded-graph.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/exploded-graph.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for managing a directed graph of <point, state> pairs.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for managing a directed graph of <point, state> pairs.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class impl_region_model_context : public
*** 49,63 ****
  			     path_context *path_ctxt,
  
  			     const gimple *stmt,
! 			     stmt_finder *stmt_finder = NULL);
  
    impl_region_model_context (program_state *state,
  			     const extrinsic_state &ext_state,
  			     uncertainty_t *uncertainty,
  			     logger *logger = NULL);
  
!   bool warn (std::unique_ptr<pending_diagnostic> d) final override;
    void add_note (std::unique_ptr<pending_note> pn) final override;
    void on_svalue_leak (const svalue *) override;
    void on_liveness_change (const svalue_set &live_svalues,
  			   const region_model *model) final override;
--- 49,67 ----
  			     path_context *path_ctxt,
  
  			     const gimple *stmt,
! 			     stmt_finder *stmt_finder = NULL,
! 
! 			     bool *out_could_have_done_work = nullptr);
  
    impl_region_model_context (program_state *state,
  			     const extrinsic_state &ext_state,
  			     uncertainty_t *uncertainty,
  			     logger *logger = NULL);
  
!   bool warn (std::unique_ptr<pending_diagnostic> d,
! 	     const stmt_finder *custom_finder = NULL) final override;
    void add_note (std::unique_ptr<pending_note> pn) final override;
+   void add_event (std::unique_ptr<checker_event> event) final override;
    void on_svalue_leak (const svalue *) override;
    void on_liveness_change (const svalue_set &live_svalues,
  			   const region_model *model) final override;
*************** class impl_region_model_context : public
*** 106,111 ****
--- 110,120 ----
  			 std::unique_ptr<sm_context> *out_sm_context) override;
  
    const gimple *get_stmt () const override { return m_stmt; }
+   const exploded_graph *get_eg () const override { return m_eg; }
+ 
+   void maybe_did_work () override;
+   bool checking_for_infinite_loop_p () const override { return false; }
+   void on_unusable_in_infinite_loop () override {}
  
    exploded_graph *m_eg;
    log_user m_logger;
*************** class impl_region_model_context : public
*** 117,122 ****
--- 126,132 ----
    const extrinsic_state &m_ext_state;
    uncertainty_t *m_uncertainty;
    path_context *m_path_ctxt;
+   bool *m_out_could_have_done_work;
  };
  
  /* A <program_point, program_state> pair, used internally by
*************** class exploded_node : public dnode<eg_tr
*** 257,262 ****
--- 267,273 ----
  			 const gimple *stmt,
  			 program_state *state,
  			 uncertainty_t *uncertainty,
+ 			 bool *out_could_have_done_work,
  			 path_context *path_ctxt);
    void on_stmt_pre (exploded_graph &eg,
  		    const gimple *stmt,
*************** class exploded_node : public dnode<eg_tr
*** 274,288 ****
  				       const gcall *call_stmt,
  				       program_state *state,
  				       path_context *path_ctxt,
! 				       function *called_fn,
! 				       per_function_data *called_fn_data,
  				       region_model_context *ctxt);
    void replay_call_summary (exploded_graph &eg,
  			    const supernode *snode,
  			    const gcall *call_stmt,
  			    program_state *state,
  			    path_context *path_ctxt,
! 			    function *called_fn,
  			    call_summary *summary,
  			    region_model_context *ctxt);
  
--- 285,299 ----
  				       const gcall *call_stmt,
  				       program_state *state,
  				       path_context *path_ctxt,
! 				       const function &called_fn,
! 				       per_function_data &called_fn_data,
  				       region_model_context *ctxt);
    void replay_call_summary (exploded_graph &eg,
  			    const supernode *snode,
  			    const gcall *call_stmt,
  			    program_state *state,
  			    path_context *path_ctxt,
! 			    const function &called_fn,
  			    call_summary *summary,
  			    region_model_context *ctxt);
  
*************** class exploded_edge : public dedge<eg_tr
*** 370,376 ****
  {
   public:
    exploded_edge (exploded_node *src, exploded_node *dest,
! 		 const superedge *sedge,
  		 std::unique_ptr<custom_edge_info> custom_info);
    void dump_dot (graphviz_out *gv, const dump_args_t &args)
      const final override;
--- 381,387 ----
  {
   public:
    exploded_edge (exploded_node *src, exploded_node *dest,
! 		 const superedge *sedge, bool could_do_work,
  		 std::unique_ptr<custom_edge_info> custom_info);
    void dump_dot (graphviz_out *gv, const dump_args_t &args)
      const final override;
*************** class exploded_edge : public dedge<eg_tr
*** 386,393 ****
--- 397,421 ----
       a signal is delivered to a signal-handler.  */
    std::unique_ptr<custom_edge_info> m_custom_info;
  
+   bool could_do_work_p () const { return m_could_do_work_p; }
+ 
  private:
    DISABLE_COPY_AND_ASSIGN (exploded_edge);
+ 
+   /* For -Wanalyzer-infinite-loop.
+      Set to true during processing if any of the activity along
+      this edge is "externally-visible work" (and thus ruling this
+      out as being part of an infinite loop.
+ 
+      For example, given:
+ 
+      while (1)
+        do_something ();
+ 
+      although it is an infinite loop, presumably the point of the
+      program is the loop body, and thus reporting this as an infinite
+      loop is likely to be unhelpful to the user.  */
+   bool m_could_do_work_p;
  };
  
  /* Extra data for an exploded_edge that represents dynamic call info ( calls
*************** public:
*** 782,788 ****
  
    exploded_node *get_origin () const { return m_origin; }
  
!   exploded_node *add_function_entry (function *fun);
  
    void build_initial_worklist ();
    void process_worklist ();
--- 810,816 ----
  
    exploded_node *get_origin () const { return m_origin; }
  
!   exploded_node *add_function_entry (const function &fun);
  
    void build_initial_worklist ();
    void process_worklist ();
*************** public:
*** 801,807 ****
  				     const program_state &state,
  				     exploded_node *enode_for_diag);
    exploded_edge *add_edge (exploded_node *src, exploded_node *dest,
! 			   const superedge *sedge,
  			   std::unique_ptr<custom_edge_info> custom = NULL);
  
    per_program_point_data *
--- 829,835 ----
  				     const program_state &state,
  				     exploded_node *enode_for_diag);
    exploded_edge *add_edge (exploded_node *src, exploded_node *dest,
! 			   const superedge *sedge, bool could_do_work,
  			   std::unique_ptr<custom_edge_info> custom = NULL);
  
    per_program_point_data *
*************** public:
*** 853,858 ****
--- 881,889 ----
  
    void on_escaped_function (tree fndecl);
  
+   /* In infinite-loop.cc */
+   void detect_infinite_loops ();
+ 
    /* In infinite-recursion.cc */
    void detect_infinite_recursion (exploded_node *enode);
    exploded_node *find_previous_entry_to (function *top_of_stack_fun,
*************** public:
*** 946,963 ****
    feasibility_problem (unsigned eedge_idx,
  		       const exploded_edge &eedge,
  		       const gimple *last_stmt,
! 		       rejected_constraint *rc)
    : m_eedge_idx (eedge_idx), m_eedge (eedge),
!     m_last_stmt (last_stmt), m_rc (rc)
    {}
-   ~feasibility_problem () { delete m_rc; }
  
    void dump_to_pp (pretty_printer *pp) const;
  
    unsigned m_eedge_idx;
    const exploded_edge &m_eedge;
    const gimple *m_last_stmt;
!   rejected_constraint *m_rc;
  };
  
  /* A class for capturing the state of a node when checking a path
--- 977,993 ----
    feasibility_problem (unsigned eedge_idx,
  		       const exploded_edge &eedge,
  		       const gimple *last_stmt,
! 		       std::unique_ptr<rejected_constraint> rc)
    : m_eedge_idx (eedge_idx), m_eedge (eedge),
!     m_last_stmt (last_stmt), m_rc (std::move (rc))
    {}
  
    void dump_to_pp (pretty_printer *pp) const;
  
    unsigned m_eedge_idx;
    const exploded_edge &m_eedge;
    const gimple *m_last_stmt;
!   std::unique_ptr<rejected_constraint> m_rc;
  };
  
  /* A class for capturing the state of a node when checking a path
*************** class feasibility_state
*** 968,978 ****
  public:
    feasibility_state (region_model_manager *manager,
  		     const supergraph &sg);
    feasibility_state (const feasibility_state &other);
  
    bool maybe_update_for_edge (logger *logger,
  			      const exploded_edge *eedge,
! 			      rejected_constraint **out_rc);
    void update_for_stmt (const gimple *stmt);
  
    const region_model &get_model () const { return m_model; }
--- 998,1013 ----
  public:
    feasibility_state (region_model_manager *manager,
  		     const supergraph &sg);
+   feasibility_state (const region_model &model,
+ 		     const supergraph &sg);
    feasibility_state (const feasibility_state &other);
  
+   feasibility_state &operator= (const feasibility_state &other);
+ 
    bool maybe_update_for_edge (logger *logger,
  			      const exploded_edge *eedge,
! 			      region_model_context *ctxt,
! 			      std::unique_ptr<rejected_constraint> *out_rc);
    void update_for_stmt (const gimple *stmt);
  
    const region_model &get_model () const { return m_model; }
diff -Nrcpad gcc-13.2.0/gcc/analyzer/feasible-graph.cc gcc-14.1.0/gcc/analyzer/feasible-graph.cc
*** gcc-13.2.0/gcc/analyzer/feasible-graph.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/feasible-graph.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** feasible_graph::add_node (const exploded
*** 202,217 ****
  }
  
  /* Add an infeasible_node to this graph and an infeasible_edge connecting
!    to it from SRC_FNODE, capturing a failure of RC along EEDGE.
!    Takes ownership of RC.  */
  
  void
  feasible_graph::add_feasibility_problem (feasible_node *src_fnode,
  					 const exploded_edge *eedge,
! 					 rejected_constraint *rc)
  {
    infeasible_node *dst_fnode
!     = new infeasible_node (eedge->m_dest, m_nodes.length (), rc);
    digraph<fg_traits>::add_node (dst_fnode);
    add_edge (new infeasible_edge (src_fnode, dst_fnode, eedge));
    m_num_infeasible++;
--- 202,216 ----
  }
  
  /* Add an infeasible_node to this graph and an infeasible_edge connecting
!    to it from SRC_FNODE, capturing a failure of RC along EEDGE.  */
  
  void
  feasible_graph::add_feasibility_problem (feasible_node *src_fnode,
  					 const exploded_edge *eedge,
! 					 std::unique_ptr<rejected_constraint> rc)
  {
    infeasible_node *dst_fnode
!     = new infeasible_node (eedge->m_dest, m_nodes.length (), std::move (rc));
    digraph<fg_traits>::add_node (dst_fnode);
    add_edge (new infeasible_edge (src_fnode, dst_fnode, eedge));
    m_num_infeasible++;
diff -Nrcpad gcc-13.2.0/gcc/analyzer/feasible-graph.h gcc-14.1.0/gcc/analyzer/feasible-graph.h
*** gcc-13.2.0/gcc/analyzer/feasible-graph.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/feasible-graph.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class infeasible_node : public base_feas
*** 120,137 ****
  {
  public:
    infeasible_node (const exploded_node *inner_node, unsigned index,
! 		   rejected_constraint *rc)
    : base_feasible_node (inner_node, index),
!     m_rc (rc)
    {
    }
-   ~infeasible_node () { delete m_rc; }
  
    void dump_dot (graphviz_out *gv,
  		 const dump_args_t &args) const final override;
  
  private:
!   rejected_constraint *m_rc;
  };
  
  /* Base class of edge within a feasible_graph.  */
--- 120,136 ----
  {
  public:
    infeasible_node (const exploded_node *inner_node, unsigned index,
! 		   std::unique_ptr<rejected_constraint> rc)
    : base_feasible_node (inner_node, index),
!     m_rc (std::move (rc))
    {
    }
  
    void dump_dot (graphviz_out *gv,
  		 const dump_args_t &args) const final override;
  
  private:
!   std::unique_ptr<rejected_constraint> m_rc;
  };
  
  /* Base class of edge within a feasible_graph.  */
*************** class feasible_graph : public digraph <f
*** 198,204 ****
  
    void add_feasibility_problem (feasible_node *src_fnode,
  				const exploded_edge *eedge,
! 				rejected_constraint *rc);
  
    std::unique_ptr<exploded_path> make_epath (feasible_node *fnode) const;
  
--- 197,203 ----
  
    void add_feasibility_problem (feasible_node *src_fnode,
  				const exploded_edge *eedge,
! 				std::unique_ptr<rejected_constraint> rc);
  
    std::unique_ptr<exploded_path> make_epath (feasible_node *fnode) const;
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/function-set.cc gcc-14.1.0/gcc/analyzer/function-set.cc
*** gcc-13.2.0/gcc/analyzer/function-set.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/function-set.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Sets of function names.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Sets of function names.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/function-set.h gcc-14.1.0/gcc/analyzer/function-set.h
*** gcc-13.2.0/gcc/analyzer/function-set.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/function-set.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Sets of function names.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Sets of function names.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/infinite-loop.cc gcc-14.1.0/gcc/analyzer/infinite-loop.cc
*** gcc-13.2.0/gcc/analyzer/infinite-loop.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/infinite-loop.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,584 ----
+ /* Detection of infinite loops.
+    Copyright (C) 2022-2024 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #define INCLUDE_MEMORY
+ #define INCLUDE_VECTOR
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "gcc-rich-location.h"
+ #include "alloc-pool.h"
+ #include "fibonacci_heap.h"
+ #include "shortest-paths.h"
+ #include "diagnostic-core.h"
+ #include "diagnostic-event-id.h"
+ #include "diagnostic-path.h"
+ #include "function.h"
+ #include "pretty-print.h"
+ #include "sbitmap.h"
+ #include "bitmap.h"
+ #include "tristate.h"
+ #include "ordered-hash-map.h"
+ #include "selftest.h"
+ #include "json.h"
+ #include "analyzer/analyzer.h"
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/call-string.h"
+ #include "analyzer/program-point.h"
+ #include "analyzer/store.h"
+ #include "analyzer/region-model.h"
+ #include "analyzer/constraint-manager.h"
+ #include "analyzer/sm.h"
+ #include "analyzer/pending-diagnostic.h"
+ #include "analyzer/diagnostic-manager.h"
+ #include "cfg.h"
+ #include "basic-block.h"
+ #include "gimple.h"
+ #include "gimple-iterator.h"
+ #include "gimple-pretty-print.h"
+ #include "cgraph.h"
+ #include "digraph.h"
+ #include "analyzer/supergraph.h"
+ #include "analyzer/program-state.h"
+ #include "analyzer/exploded-graph.h"
+ #include "analyzer/checker-path.h"
+ #include "analyzer/feasible-graph.h"
+ #include "make-unique.h"
+ #include "diagnostic-format-sarif.h"
+ 
+ /* A bundle of data characterizing a particular infinite loop
+    identified within the exploded graph.  */
+ 
+ struct infinite_loop
+ {
+   infinite_loop (const exploded_node &enode,
+ 		location_t loc,
+ 		std::vector<const exploded_edge *> &&eedges,
+ 		logger *logger)
+   : m_enode (enode),
+     m_loc (loc),
+     m_eedge_vec (eedges)
+   {
+     LOG_SCOPE (logger);
+     if (logger)
+       {
+ 	logger->start_log_line ();
+ 	logger->log_partial ("infinite loop: EN: %i", m_enode.m_index);
+ 	for (auto eedge : m_eedge_vec)
+ 	  {
+ 	    logger->log_partial (" ->");
+ 	    if (const superedge *sedge = eedge->m_sedge)
+ 	      {
+ 		sedge->dump_label_to_pp (logger->get_printer (), false);
+ 	      }
+ 	    logger->log_partial (" EN: %i", eedge->m_dest->m_index);
+ 	  }
+ 	logger->end_log_line ();
+       }
+   }
+ 
+   bool
+   operator== (const infinite_loop &other) const
+   {
+     /* Compare underlying supernode, rather than enodes, so that
+        we don't get duplicates in functions that are called from
+        elsewhere.  */
+     return (m_enode.get_supernode () == other.m_enode.get_supernode ()
+ 	    && m_loc == other.m_loc);
+   }
+ 
+   json::object *
+   to_json () const
+   {
+     json::object *loop_obj = new json::object ();
+     loop_obj->set_integer ("enode", m_enode.m_index);
+     json::array *edge_arr = new json::array ();
+     for (auto eedge : m_eedge_vec)
+       edge_arr->append (eedge->to_json ());
+     loop_obj->set ("eedges", edge_arr);
+     return loop_obj;
+   }
+ 
+   const exploded_node &m_enode;
+   location_t m_loc;
+   std::vector<const exploded_edge *> m_eedge_vec;
+ };
+ 
+ /* A custom subclass of start_cfg_edge_event that rewords the
+    message to indicate that the CFG edge is *always* taken on
+    subsequent iterations, assuming it's been taken once. */
+ 
+ class perpetual_start_cfg_edge_event : public start_cfg_edge_event
+ {
+ public:
+   perpetual_start_cfg_edge_event (const exploded_edge &eedge,
+ 				  const event_loc_info &loc_info)
+   : start_cfg_edge_event (eedge, loc_info)
+   {
+   }
+ 
+   label_text get_desc (bool can_colorize) const final override
+   {
+     bool user_facing = !flag_analyzer_verbose_edges;
+     label_text edge_desc (m_sedge->get_description (user_facing));
+     if (user_facing)
+       {
+ 	if (edge_desc.get () && strlen (edge_desc.get ()) > 0)
+ 	  {
+ 	    label_text cond_desc = maybe_describe_condition (can_colorize);
+ 	    label_text result;
+ 	    if (cond_desc.get ())
+ 	      return make_label_text
+ 		(can_colorize,
+ 		 "%s: always following %qs branch...",
+ 		 cond_desc.get (), edge_desc.get ());
+ 	    else
+ 	      return make_label_text
+ 		(can_colorize,
+ 		 "if it ever follows %qs branch, it will always do so...",
+ 		 edge_desc.get ());
+ 	  }
+       }
+     return start_cfg_edge_event::get_desc (can_colorize);
+   }
+ };
+ 
+ /* A subclass of pending_diagnostic for complaining about suspected
+    infinite loops.  */
+ 
+ class infinite_loop_diagnostic
+ : public pending_diagnostic_subclass<infinite_loop_diagnostic>
+ {
+ public:
+   infinite_loop_diagnostic (std::unique_ptr<infinite_loop> inf_loop)
+     : m_inf_loop (std::move (inf_loop))
+   {
+     gcc_assert (m_inf_loop != nullptr);
+   }
+ 
+   const char *get_kind () const final override
+   {
+     return "infinite_loop_diagnostic";
+   }
+ 
+   bool operator== (const infinite_loop_diagnostic &other) const
+   {
+     return *m_inf_loop == *other.m_inf_loop;
+   }
+ 
+   int get_controlling_option () const final override
+   {
+     return OPT_Wanalyzer_infinite_loop;
+   }
+ 
+   bool emit (diagnostic_emission_context &ctxt) final override
+   {
+     /* "CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop')". */
+     ctxt.add_cwe (835);
+     return ctxt.warn ("infinite loop");
+   }
+ 
+   bool maybe_add_custom_events_for_superedge (const exploded_edge &,
+ 					      checker_path *)
+     final override
+   {
+     /* Don't add any regular events; instead we add them after pruning as
+        part of the "final" warning.  */
+     return true;
+   }
+ 
+   label_text describe_final_event (const evdesc::final_event &ev) final override
+   {
+     return ev.formatted_print ("infinite loop here");
+   }
+ 
+   /* Customize the location where the warning_event appears.  */
+   void add_final_event (const state_machine *,
+ 			const exploded_node *enode,
+ 			const gimple *,
+ 			tree,
+ 			state_machine::state_t,
+ 			checker_path *emission_path) final override
+   {
+     emission_path->add_event
+       (make_unique<warning_event>
+        (event_loc_info (m_inf_loop->m_loc,
+ 			enode->get_function ()->decl,
+ 			enode->get_stack_depth ()),
+ 	enode,
+ 	NULL, NULL, NULL));
+ 
+     logger *logger = emission_path->get_logger ();
+ 
+     /* EMISSION_PATH has the path to the entry of the infinite loop.
+        Add extra edges showing the loop itself.  */
+     for (auto eedge : m_inf_loop->m_eedge_vec)
+       {
+ 	if (logger)
+ 	  logger->log ("EN: %i -> EN: %i",
+ 		       eedge->m_src->m_index,
+ 		       eedge->m_dest->m_index);
+ 	if (!eedge->m_sedge)
+ 	  continue;
+ 
+ 	const cfg_superedge *cfg_sedge
+ 	  = eedge->m_sedge->dyn_cast_cfg_superedge ();
+ 	if (!cfg_sedge)
+ 	  continue;
+ 
+ 	const exploded_node *src_node = eedge->m_src;
+ 	const program_point &src_point = src_node->get_point ();
+ 	const exploded_node *dst_node = eedge->m_dest;
+ 	const program_point &dst_point = dst_node->get_point ();
+ 	const int src_stack_depth = src_point.get_stack_depth ();
+ 	const int dst_stack_depth = dst_point.get_stack_depth ();
+ 	const gimple *last_stmt = src_point.get_supernode ()->get_last_stmt ();
+ 
+ 	event_loc_info loc_info_from
+ 	  (last_stmt ? last_stmt->location : cfg_sedge->get_goto_locus (),
+ 	   src_point.get_fndecl (),
+ 	   src_stack_depth);
+ 	event_loc_info loc_info_to
+ 	  (dst_point.get_supernode ()->get_start_location (),
+ 	   dst_point.get_fndecl (),
+ 	   dst_stack_depth);
+ 
+ 	if (const switch_cfg_superedge *switch_cfg_sedge
+ 	      = cfg_sedge->dyn_cast_switch_cfg_superedge ())
+ 	  {
+ 	    if (switch_cfg_sedge->implicitly_created_default_p ())
+ 	      {
+ 		emission_path->add_event
+ 		  (make_unique<perpetual_start_cfg_edge_event> (*eedge,
+ 								loc_info_from));
+ 		emission_path->add_event
+ 		  (make_unique<end_cfg_edge_event>
+ 		   (*eedge,
+ 		    loc_info_to));
+ 	      }
+ 	  }
+ 
+ 	if (cfg_sedge->true_value_p ())
+ 	  {
+ 	    emission_path->add_event
+ 	      (make_unique<perpetual_start_cfg_edge_event> (*eedge,
+ 							    loc_info_from));
+ 	    emission_path->add_event
+ 	      (make_unique<end_cfg_edge_event>
+ 	       (*eedge,
+ 		loc_info_to));
+ 	  }
+ 	else if (cfg_sedge->false_value_p ())
+ 	  {
+ 	    emission_path->add_event
+ 	      (make_unique<perpetual_start_cfg_edge_event> (*eedge,
+ 							    loc_info_from));
+ 	    emission_path->add_event
+ 	      (make_unique<end_cfg_edge_event>
+ 	       (*eedge,
+ 		loc_info_to));
+ 	  }
+ 	else if (cfg_sedge->back_edge_p ())
+ 	  {
+ 	    emission_path->add_event
+ 	      (make_unique<precanned_custom_event>
+ 	       (loc_info_from, "looping back..."));
+ 	    emission_path->add_event
+ 	      (make_unique<end_cfg_edge_event>
+ 	       (*eedge,
+ 		loc_info_to));
+ 	  }
+       }
+   }
+ 
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const final override
+   {
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/infinite_loop_diagnostic/"
+     props.set (PROPERTY_PREFIX "inf_loop", m_inf_loop->to_json ());
+ #undef PROPERTY_PREFIX
+   }
+ 
+ private:
+   std::unique_ptr<infinite_loop> m_inf_loop;
+ };
+ 
+ /* If ENODE has an in-edge corresponding to a CFG backedge, return that
+    exploded in-edge.
+    Otherwise, return nullptr.  */
+ 
+ static const exploded_edge *
+ get_in_edge_back_edge (const exploded_node &enode)
+ {
+   for (auto in_edge : enode.m_preds)
+     {
+       const superedge *sedge = in_edge->m_sedge;
+       if (!sedge)
+ 	continue;
+       const cfg_superedge *cfg_sedge = sedge->dyn_cast_cfg_superedge ();
+       if (!cfg_sedge)
+ 	continue;
+       if (cfg_sedge->back_edge_p ())
+ 	return in_edge;
+     }
+   return nullptr;
+ }
+ 
+ /* Subclass of region_model_context that rejects conditional branches that
+    aren't known for definite.  */
+ 
+ class infinite_loop_checking_context : public noop_region_model_context
+ {
+ public:
+   infinite_loop_checking_context () : m_unusable (false) {}
+ 
+   bool checking_for_infinite_loop_p () const override { return true; }
+   void on_unusable_in_infinite_loop () override { m_unusable = true; }
+ 
+   bool unusable_p () const { return m_unusable; }
+ 
+ private:
+   bool m_unusable;
+ };
+ 
+ /* Determine if an infinite loop starts at ENODE.
+    Return the loop if it is found, nullptr otherwise.
+ 
+    Look for cycles in the exploded graph in which:
+    - no externally visible work occurs
+    - no escape from the cycle
+    - the program state is "sufficiently concrete" at each step:
+      - no unknown activity could be occurring
+      - the worklist was fully drained for each enode in the cycle
+        i.e. every enode in the cycle is processed.  */
+ 
+ static std::unique_ptr<infinite_loop>
+ starts_infinite_loop_p (const exploded_node &enode,
+ 			const exploded_graph &eg,
+ 			logger *logger)
+ {
+   LOG_FUNC_1 (logger, "considering EN: %i", enode.m_index);
+ 
+   /* Only consider enodes that have a CFG back edge as an in-edge.  */
+   if (const exploded_edge *back_edge = get_in_edge_back_edge (enode))
+     {
+       if (logger)
+ 	logger->log ("got backedge from EN: %i",
+ 		     back_edge->m_src->m_index);
+     }
+   else
+     {
+       if (logger)
+ 	logger->log ("rejecting: no backedge in in-edges");
+       return nullptr;
+     }
+ 
+   /* Support for dumping an .infinite-loop.dot file visualizing the
+      traversal for this enode.  */
+   std::unique_ptr<feasible_graph> fg;
+   feasible_node *curr_fnode = nullptr;
+ 
+   if (flag_dump_analyzer_infinite_loop)
+     fg = ::make_unique<feasible_graph> ();
+ 
+   location_t first_loc = UNKNOWN_LOCATION;
+   const exploded_node *iter = &enode;
+   feasibility_state state (*enode.get_state ().m_region_model,
+ 			   eg.get_supergraph ());
+ 
+   if (fg)
+     curr_fnode = fg->add_node (&enode, state, 0);
+ 
+   hash_set<const exploded_node *> visited;
+   std::vector<const exploded_edge *> eedges;
+   while (1)
+     {
+       if (logger)
+ 	logger->log ("iter: EN: %i", iter->m_index);
+       /* Analysis bailed out before processing this node.  */
+       if (iter->get_status () == exploded_node::STATUS_WORKLIST)
+ 	{
+ 	  if (logger)
+ 	    logger->log ("rejecting: EN: %i is still in worklist",
+ 			 iter->m_index);
+ 	  return nullptr;
+ 	}
+       if (visited.contains (iter))
+ 	{
+ 	  /* We've looped back on ourselves.  ENODE is in the loop
+ 	     itself if ENODE is the first place we looped back,
+ 	     as opposed to being on a path to a loop.  */
+ 	  if (iter == &enode)
+ 	    {
+ 	      if (logger)
+ 		logger->log ("accepting: looped back to EN: %i",
+ 			     iter->m_index);
+ 	      if (fg)
+ 		{
+ 		  auto_timevar tv (TV_ANALYZER_DUMP);
+ 		  pretty_printer pp;
+ 		  pp_printf (&pp, "%s.en%i.infinite-loop.dot",
+ 			     dump_base_name, enode.m_index);
+ 		  char *filename = xstrdup (pp_formatted_text (&pp));
+ 		  feasible_graph::dump_args_t dump_args (eg);
+ 		  fg->dump_dot (filename, nullptr, dump_args);
+ 		  free (filename);
+ 		}
+ 	      return ::make_unique<infinite_loop> (enode,
+ 						   first_loc,
+ 						   std::move (eedges),
+ 						   logger);
+ 	    }
+ 	  else
+ 	    {
+ 	      if (logger)
+ 		logger->log ("rejecting: looped back to EN: %i, not to EN: %i",
+ 			     iter->m_index, enode.m_index);
+ 	      return nullptr;
+ 	    }
+ 	}
+       visited.add (iter);
+       if (first_loc == UNKNOWN_LOCATION)
+ 	{
+ 	  location_t enode_loc = iter->get_point ().get_location ();
+ 	  if (enode_loc != UNKNOWN_LOCATION)
+ 	    first_loc = enode_loc;
+ 	}
+ 
+       /* Find the out-edges that are feasible, given the
+ 	 constraints here.  */
+       typedef std::pair<feasibility_state, const exploded_edge *> pair_t;
+       std::vector<pair_t> succs;
+       for (auto out_edge : iter->m_succs)
+ 	{
+ 	  log_scope s (logger, "considering out-edge",
+ 		       "EN:%i -> EN:%i",
+ 		       out_edge->m_src->m_index,
+ 		       out_edge->m_dest->m_index);
+ 	  feasibility_state next_state (state);
+ 
+ 	  /* Use this context to require edge conditions to be known,
+ 	     rather than be merely "possible".  */
+ 	  infinite_loop_checking_context ctxt;
+ 	  if (next_state.maybe_update_for_edge (logger,
+ 						out_edge,
+ 						&ctxt,
+ 						nullptr))
+ 	    succs.push_back (pair_t (next_state, out_edge));
+ 	  if (ctxt.unusable_p ())
+ 	    {
+ 	      /* If we get here, then we have e.g. a gcond where
+ 		 the condition is UNKNOWN, or a condition
+ 		 based on a widening_svalue.  Reject such paths.  */
+ 	      if (logger)
+ 		logger->log ("rejecting: unusable");
+ 	      return nullptr;
+ 	    }
+ 	}
+ 
+       if (succs.size () != 1)
+ 	{
+ 	  if (logger)
+ 	    logger->log ("rejecting: %i feasible successors",
+ 			 (int)succs.size ());
+ 	  return nullptr;
+ 	}
+       const feasibility_state &next_state = succs[0].first;
+       const exploded_edge *out_eedge = succs[0].second;
+       if (out_eedge->could_do_work_p ())
+ 	{
+ 	  if (logger)
+ 	    logger->log ("rejecting: edge could do work");
+ 	  return nullptr;
+ 	}
+       if (fg)
+ 	{
+ 	  feasible_node *next_fnode = fg->add_node (out_eedge->m_dest,
+ 						    next_state,
+ 						    fg->m_nodes.length ());
+ 	  fg->add_edge (new feasible_edge (curr_fnode, next_fnode, out_eedge));
+ 	  curr_fnode = next_fnode;
+ 	}
+       state = next_state;
+       eedges.push_back (out_eedge);
+       if (first_loc == UNKNOWN_LOCATION)
+ 	{
+ 	  if (out_eedge->m_sedge)
+ 	    if (::edge cfg_edge = out_eedge->m_sedge->get_any_cfg_edge ())
+ 	      if (cfg_edge->goto_locus > BUILTINS_LOCATION)
+ 		first_loc = cfg_edge->goto_locus;
+ 	}
+       iter = out_eedge->m_dest;
+     }
+ }
+ 
+ /* Implementation of -Wanalyzer-infinite-loop.  */
+ 
+ void
+ exploded_graph::detect_infinite_loops ()
+ {
+   LOG_FUNC (get_logger ());
+   auto_timevar tv (TV_ANALYZER_INFINITE_LOOPS);
+ 
+   /* Track all enodes we've warned for; both the loop entrypoints
+      and all the enodes within those loops.  */
+   hash_set<const exploded_node *> warned_for;
+ 
+   for (auto enode : m_nodes)
+     {
+       if (get_logger ())
+ 	get_logger ()->log ("visited: %i out of %i",
+ 			    (int)warned_for.elements (), m_nodes.length ());
+ 
+       /* Only warn about the first enode we encounter in each cycle.  */
+       if (warned_for.contains(enode))
+ 	continue;
+ 
+       if (std::unique_ptr<infinite_loop> inf_loop
+ 	    = starts_infinite_loop_p (*enode, *this, get_logger ()))
+ 	{
+ 	  const supernode *snode = enode->get_supernode ();
+ 
+ 	  if (get_logger ())
+ 	    get_logger ()->log ("EN: %i from starts_infinite_loop_p",
+ 				enode->m_index);
+ 
+ 	  for (auto iter : inf_loop->m_eedge_vec)
+ 	    warned_for.add (iter->m_src);
+ 	  gcc_assert (warned_for.contains(enode));
+ 
+ 	  if (inf_loop->m_loc == UNKNOWN_LOCATION)
+ 	    {
+ 	      if (get_logger ())
+ 		get_logger ()->log
+ 		  ("no location available for reporting infinite loop");
+ 	      continue;
+ 	    }
+ 
+ 	  pending_location ploc (enode, snode, inf_loop->m_loc);
+ 	  auto d
+ 	    = ::make_unique<infinite_loop_diagnostic> (std::move (inf_loop));
+ 	  get_diagnostic_manager ().add_diagnostic (ploc, std::move (d));
+ 	}
+     }
+ }
diff -Nrcpad gcc-13.2.0/gcc/analyzer/infinite-recursion.cc gcc-14.1.0/gcc/analyzer/infinite-recursion.cc
*** gcc-13.2.0/gcc/analyzer/infinite-recursion.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/infinite-recursion.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Detection of infinite recursion.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Detection of infinite recursion.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 31,37 ****
  #include "diagnostic-core.h"
  #include "diagnostic-event-id.h"
  #include "diagnostic-path.h"
- #include "diagnostic-metadata.h"
  #include "function.h"
  #include "pretty-print.h"
  #include "sbitmap.h"
--- 31,36 ----
*************** along with GCC; see the file COPYING3.
*** 63,68 ****
--- 62,68 ----
  #include "make-unique.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/feasible-graph.h"
+ #include "diagnostic-format-sarif.h"
  
  /* A subclass of pending_diagnostic for complaining about suspected
     infinite recursion.  */
*************** public:
*** 95,107 ****
      return OPT_Wanalyzer_infinite_recursion;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      /* "CWE-674: Uncontrolled Recursion".  */
!     diagnostic_metadata m;
!     m.add_cwe (674);
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "infinite recursion");
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
--- 95,105 ----
      return OPT_Wanalyzer_infinite_recursion;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* "CWE-674: Uncontrolled Recursion".  */
!     ctxt.add_cwe (674);
!     return ctxt.warn ("infinite recursion");
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
*************** public:
*** 239,244 ****
--- 237,254 ----
      return false;
    }
  
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const final override
+   {
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/infinite_recursion_diagnostic/"
+     props.set_integer (PROPERTY_PREFIX "prev_entry_enode",
+ 		       m_prev_entry_enode->m_index);
+     props.set_integer (PROPERTY_PREFIX "new_entry_enode",
+ 		       m_new_entry_enode->m_index);
+ #undef PROPERTY_PREFIX
+   }
+ 
  private:
    /* Return true iff control flow along FEDGE was affected by
       a conjured_svalue.  */
*************** exploded_graph::detect_infinite_recursio
*** 625,632 ****
    const supernode *caller_snode = call_string.get_top_of_stack ().m_caller;
    const supernode *snode = enode->get_supernode ();
    gcc_assert (caller_snode->m_returning_call);
    get_diagnostic_manager ().add_diagnostic
!     (enode, snode, caller_snode->m_returning_call, NULL,
       make_unique<infinite_recursion_diagnostic> (prev_entry_enode,
  						 enode,
  						 fndecl));
--- 635,646 ----
    const supernode *caller_snode = call_string.get_top_of_stack ().m_caller;
    const supernode *snode = enode->get_supernode ();
    gcc_assert (caller_snode->m_returning_call);
+   pending_location ploc (enode,
+ 			 snode,
+ 			 caller_snode->m_returning_call,
+ 			 nullptr);
    get_diagnostic_manager ().add_diagnostic
!     (ploc,
       make_unique<infinite_recursion_diagnostic> (prev_entry_enode,
  						 enode,
  						 fndecl));
diff -Nrcpad gcc-13.2.0/gcc/analyzer/inlining-iterator.h gcc-14.1.0/gcc/analyzer/inlining-iterator.h
*** gcc-13.2.0/gcc/analyzer/inlining-iterator.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/inlining-iterator.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Iterator for walking a chain of inlining locations.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Iterator for walking a chain of inlining locations.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** private:
*** 106,109 ****
--- 106,149 ----
    tree m_next_abstract_origin;
  };
  
+ /* A class for fixing up fndecls and stack depths in checker_event, based
+    on inlining records.
+ 
+    The early inliner runs before the analyzer, which can lead to confusing
+    output.
+ 
+    Tne base fndecl and depth within a checker_event are from call strings
+    in program_points, which reflect the call strings after inlining.
+    This class lets us offset the depth and fix up the reported fndecl and
+    stack depth to better reflect the user's original code.  */
+ 
+ class inlining_info
+ {
+ public:
+   inlining_info (location_t loc)
+   {
+     inlining_iterator iter (loc);
+     m_inner_fndecl = iter.get_fndecl ();
+     int num_frames = 0;
+     while (!iter.done_p ())
+       {
+ 	m_outer_fndecl = iter.get_fndecl ();
+ 	num_frames++;
+ 	iter.next ();
+       }
+     if (num_frames > 1)
+       m_extra_frames = num_frames - 1;
+     else
+       m_extra_frames = 0;
+   }
+ 
+   tree get_inner_fndecl () const { return m_inner_fndecl; }
+   int get_extra_frames () const { return m_extra_frames; }
+ 
+ private:
+   tree m_outer_fndecl;
+   tree m_inner_fndecl;
+   int m_extra_frames;
+ };
+ 
  #endif /* GCC_ANALYZER_INLINING_ITERATOR_H */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/kf-analyzer.cc gcc-14.1.0/gcc/analyzer/kf-analyzer.cc
*** gcc-13.2.0/gcc/analyzer/kf-analyzer.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/kf-analyzer.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Handling for the various __analyzer_* known functions.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Handling for the various __analyzer_* known functions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 255,263 ****
      return 0;
    }
  
!   bool emit (rich_location *richloc) final override
    {
!     inform (richloc, "path");
      return true;
    }
  
--- 255,263 ----
      return 0;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     ctxt.inform ("path");
      return true;
    }
  
*************** register_known_analyzer_functions (known
*** 379,384 ****
--- 379,385 ----
    kfm.add ("__analyzer_eval", make_unique<kf_analyzer_eval> ());
    kfm.add ("__analyzer_get_unknown_ptr",
  	   make_unique<kf_analyzer_get_unknown_ptr> ());
+   kfm.add ("__analyzer_get_strlen", make_kf_strlen ());
  }
  
  } // namespace ana
diff -Nrcpad gcc-13.2.0/gcc/analyzer/kf-lang-cp.cc gcc-14.1.0/gcc/analyzer/kf-lang-cp.cc
*** gcc-13.2.0/gcc/analyzer/kf-lang-cp.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/kf-lang-cp.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Handling for the known behavior of various functions specific to C++.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Handling for the known behavior of various functions specific to C++.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 35,40 ****
--- 35,72 ----
  
  #if ENABLE_ANALYZER
  
+ /* Return true if CALL is a non-allocating operator new or operator new []
+    that contains no user-defined args, i.e. having any signature of:
+ 
+     - void* operator new (std::size_t count, void* ptr);
+     - void* operator new[] (std::size_t count, void* ptr);
+ 
+    See https://en.cppreference.com/w/cpp/memory/new/operator_new.  */
+ 
+ bool is_placement_new_p (const gcall *call)
+ {
+   gcc_assert (call);
+   tree fndecl = gimple_call_fndecl (call);
+ 
+   if (!fndecl || TREE_CODE (TREE_TYPE (fndecl)) == METHOD_TYPE)
+     /* Give up on overloaded operator new.  */
+     return false;
+ 
+   if (!is_named_call_p (fndecl, "operator new", call, 2)
+       && !is_named_call_p (fndecl, "operator new []", call, 2))
+     return false;
+ 
+   /* We must distinguish between an allocating non-throwing new
+     and a non-allocating new.
+ 
+     The former might have one of the following signatures :
+     void* operator new (std::size_t count, const std::nothrow_t& tag);
+     void* operator new[] (std::size_t count, const std::nothrow_t& tag);
+     Whereas a placement new would take a pointer.  */
+   tree arg1_type = TREE_CHAIN (TYPE_ARG_TYPES (TREE_TYPE (fndecl)));
+   return TREE_CODE (TREE_VALUE (arg1_type)) == POINTER_TYPE;
+ }
+ 
  namespace ana {
  
  /* Implementations of specific functions.  */
*************** class kf_operator_new : public known_fun
*** 46,52 ****
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
!     return cd.num_args () == 1;
    }
  
    void impl_call_pre (const call_details &cd) const final override
--- 78,88 ----
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
!     return (cd.num_args () == 1
!       && cd.arg_is_size_p (0))
!       || (cd.num_args () == 2
!       && cd.arg_is_size_p (0)
!       && POINTER_TYPE_P (cd.get_arg_type (1)));
    }
  
    void impl_call_pre (const call_details &cd) const final override
*************** public:
*** 54,81 ****
      region_model *model = cd.get_model ();
      region_model_manager *mgr = cd.get_manager ();
      const svalue *size_sval = cd.get_arg_svalue (0);
!     const region *new_reg
!       = model->get_or_create_region_for_heap_alloc (size_sval, cd.get_ctxt ());
!     if (cd.get_lhs_type ())
        {
! 	const svalue *ptr_sval
! 	  = mgr->get_ptr_svalue (cd.get_lhs_type (), new_reg);
! 	cd.maybe_set_lhs (ptr_sval);
        }
    }
  };
  
! /* Handler for "operator delete", both the sized and unsized variants
!    (2 arguments and 1 argument respectively), and for "operator delete []"  */
  
  class kf_operator_delete : public known_function
  {
  public:
-   kf_operator_delete (unsigned num_args) : m_num_args (num_args) {}
- 
    bool matches_call_types_p (const call_details &cd) const final override
    {
!     return cd.num_args () == m_num_args;
    }
  
    void impl_call_post (const call_details &cd) const final override
--- 90,163 ----
      region_model *model = cd.get_model ();
      region_model_manager *mgr = cd.get_manager ();
      const svalue *size_sval = cd.get_arg_svalue (0);
!     region_model_context *ctxt = cd.get_ctxt ();
!     const gcall *call = cd.get_call_stmt ();
! 
!     /* If the call was actually a placement new, check that accessing
!        the buffer lhs is placed into does not result in out-of-bounds.  */
!     if (is_placement_new_p (call))
        {
! 	const region *ptr_reg = cd.deref_ptr_arg (1);
! 	if (ptr_reg && cd.get_lhs_type ())
! 	  {
! 	    const svalue *num_bytes_sval = cd.get_arg_svalue (0);
! 	    const region *sized_new_reg
! 		= mgr->get_sized_region (ptr_reg,
! 					 cd.get_lhs_type (),
! 					 num_bytes_sval);
! 	    model->check_region_for_write (sized_new_reg,
! 					   nullptr,
! 					   ctxt);
! 	    const svalue *ptr_sval
! 	      = mgr->get_ptr_svalue (cd.get_lhs_type (), sized_new_reg);
! 	    cd.maybe_set_lhs (ptr_sval);
! 	  }
!       }
!     /* If the call is an allocating new, then create a heap allocated
!        region.  */
!     else
!       {
! 	const region *new_reg
! 	  = model->get_or_create_region_for_heap_alloc (size_sval, ctxt);
! 	if (cd.get_lhs_type ())
! 	  {
! 	    const svalue *ptr_sval
! 	      = mgr->get_ptr_svalue (cd.get_lhs_type (), new_reg);
! 	    cd.maybe_set_lhs (ptr_sval);
! 	  }
!       }
!   }
! 
!   void impl_call_post (const call_details &cd) const final override
!   {
!     region_model *model = cd.get_model ();
!     region_model_manager *mgr = cd.get_manager ();
!     tree callee_fndecl = cd.get_fndecl_for_call ();
!     region_model_context *ctxt = cd.get_ctxt ();
! 
!     /* If the call is guaranteed to return nonnull
!        then add a nonnull constraint to the allocated region.  */
!     if (!TREE_NOTHROW (callee_fndecl) && flag_exceptions)
!       {
! 	const svalue *null_sval
! 	  = mgr->get_or_create_null_ptr (cd.get_lhs_type ());
! 	const svalue *result
! 	  = model->get_store_value (cd.get_lhs_region (), ctxt);
! 	model->add_constraint (result, NE_EXPR, null_sval, ctxt);
        }
    }
  };
  
! /* Handler for "operator delete" and for "operator delete []",
!    both the sized and unsized variants
!    (2 arguments and 1 argument respectively).  */
  
  class kf_operator_delete : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
!     return cd.num_args () == 1 or cd.num_args () == 2;
    }
  
    void impl_call_post (const call_details &cd) const final override
*************** public:
*** 86,97 ****
        {
  	/* If the ptr points to an underlying heap region, delete it,
  	   poisoning pointers.  */
! 	model->unbind_region_and_descendents (freed_reg, POISON_KIND_FREED);
        }
    }
  
- private:
-   unsigned m_num_args;
  };
  
  /* Populate KFM with instances of known functions relating to C++.  */
--- 168,178 ----
        {
  	/* If the ptr points to an underlying heap region, delete it,
  	   poisoning pointers.  */
! 	model->unbind_region_and_descendents (freed_reg,
! 					      POISON_KIND_DELETED);
        }
    }
  
  };
  
  /* Populate KFM with instances of known functions relating to C++.  */
*************** register_known_functions_lang_cp (known_
*** 101,109 ****
  {
    kfm.add ("operator new", make_unique<kf_operator_new> ());
    kfm.add ("operator new []", make_unique<kf_operator_new> ());
!   kfm.add ("operator delete", make_unique<kf_operator_delete> (1));
!   kfm.add ("operator delete", make_unique<kf_operator_delete> (2));
!   kfm.add ("operator delete []", make_unique<kf_operator_delete> (1));
  }
  
  } // namespace ana
--- 182,189 ----
  {
    kfm.add ("operator new", make_unique<kf_operator_new> ());
    kfm.add ("operator new []", make_unique<kf_operator_new> ());
!   kfm.add ("operator delete", make_unique<kf_operator_delete> ());
!   kfm.add ("operator delete []", make_unique<kf_operator_delete> ());
  }
  
  } // namespace ana
diff -Nrcpad gcc-13.2.0/gcc/analyzer/kf.cc gcc-14.1.0/gcc/analyzer/kf.cc
*** gcc-13.2.0/gcc/analyzer/kf.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/kf.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Handling for the known behavior of various specific functions.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Handling for the known behavior of various specific functions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 40,56 ****
  
  namespace ana {
  
  /* Implementations of specific functions.  */
  
  /* Handler for "alloca".  */
  
! class kf_alloca : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return cd.num_args () == 1;
    }
    void impl_call_pre (const call_details &cd) const final override;
  };
  
--- 40,103 ----
  
  namespace ana {
  
+ /* Abstract subclass for describing undefined behavior of an API.  */
+ 
+ class undefined_function_behavior
+   : public pending_diagnostic_subclass<undefined_function_behavior>
+ {
+ public:
+   undefined_function_behavior (const call_details &cd)
+   : m_call_stmt (cd.get_call_stmt ()),
+     m_callee_fndecl (cd.get_fndecl_for_call ())
+   {
+     gcc_assert (m_call_stmt);
+     gcc_assert (m_callee_fndecl);
+   }
+ 
+   const char *get_kind () const final override
+   {
+     return "undefined_behavior";
+   }
+ 
+   bool operator== (const undefined_function_behavior &other) const
+   {
+     return (m_call_stmt == other.m_call_stmt
+ 	    && m_callee_fndecl == other.m_callee_fndecl);
+   }
+ 
+   bool terminate_path_p () const final override { return true; }
+ 
+   tree get_callee_fndecl () const { return m_callee_fndecl; }
+ 
+ private:
+   const gimple *m_call_stmt;
+   tree m_callee_fndecl;
+ };
+ 
+ /* class pure_known_function_with_default_return : public known_function.  */
+ 
+ void
+ pure_known_function_with_default_return::
+ impl_call_pre (const call_details &cd) const
+ {
+   cd.set_any_lhs_with_defaults ();
+ }
+ 
  /* Implementations of specific functions.  */
  
  /* Handler for "alloca".  */
  
! class kf_alloca : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return cd.num_args () == 1;
    }
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_ALLOCA;
+   }
    void impl_call_pre (const call_details &cd) const final override;
  };
  
*************** kf_alloca::impl_call_pre (const call_det
*** 69,74 ****
--- 116,418 ----
    cd.maybe_set_lhs (ptr_sval);
  }
  
+ /* Handler for __atomic_exchange.
+    Although the user-facing documentation specifies it as having this
+    signature:
+      void __atomic_exchange (type *ptr, type *val, type *ret, int memorder)
+ 
+    by the time the C/C++ frontends have acted on it, any calls that
+    can't be mapped to a _N variation end up with this signature:
+ 
+      void
+      __atomic_exchange (size_t sz, void *ptr, void *val, void *ret,
+ 			int memorder)
+ 
+    as seen in the gimple seen by the analyzer, and as specified
+    in sync-builtins.def.  */
+ 
+ class kf_atomic_exchange : public internal_known_function
+ {
+ public:
+   /* This is effectively:
+        tmpA = *PTR;
+        tmpB = *VAL;
+        *PTR = tmpB;
+        *RET = tmpA;
+   */
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     const svalue *num_bytes_sval = cd.get_arg_svalue (0);
+     const svalue *ptr_sval = cd.get_arg_svalue (1);
+     tree ptr_tree = cd.get_arg_tree (1);
+     const svalue *val_sval = cd.get_arg_svalue (2);
+     tree val_tree = cd.get_arg_tree (2);
+     const svalue *ret_sval = cd.get_arg_svalue (3);
+     tree ret_tree = cd.get_arg_tree (3);
+     /* Ignore the memorder param.  */
+ 
+     region_model *model = cd.get_model ();
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     const region *ptr_reg = model->deref_rvalue (ptr_sval, ptr_tree, ctxt);
+     const region *val_reg = model->deref_rvalue (val_sval, val_tree, ctxt);
+     const region *ret_reg = model->deref_rvalue (ret_sval, ret_tree, ctxt);
+ 
+     const svalue *tmp_a_sval
+       = model->read_bytes (ptr_reg, ptr_tree, num_bytes_sval, ctxt);
+     const svalue *tmp_b_sval
+       = model->read_bytes (val_reg, val_tree, num_bytes_sval, ctxt);
+     model->write_bytes (ptr_reg, num_bytes_sval, tmp_b_sval, ctxt);
+     model->write_bytes (ret_reg, num_bytes_sval, tmp_a_sval, ctxt);
+   }
+ };
+ 
+ /* Handler for:
+    __atomic_exchange_n (type *ptr, type val, int memorder).  */
+ 
+ class kf_atomic_exchange_n : public internal_known_function
+ {
+ public:
+   /* This is effectively:
+        RET = *PTR;
+        *PTR = VAL;
+        return RET;
+   */
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     const svalue *ptr_sval = cd.get_arg_svalue (0);
+     tree ptr_tree = cd.get_arg_tree (0);
+     const svalue *set_sval = cd.get_arg_svalue (1);
+     /* Ignore the memorder param.  */
+ 
+     region_model *model = cd.get_model ();
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     const region *dst_region = model->deref_rvalue (ptr_sval, ptr_tree, ctxt);
+     const svalue *ret_sval = model->get_store_value (dst_region, ctxt);
+     model->set_value (dst_region, set_sval, ctxt);
+     cd.maybe_set_lhs (ret_sval);
+   }
+ };
+ 
+ /* Handler for:
+    type __atomic_fetch_add (type *ptr, type val, int memorder);
+    type __atomic_fetch_sub (type *ptr, type val, int memorder);
+    type __atomic_fetch_and (type *ptr, type val, int memorder);
+    type __atomic_fetch_xor (type *ptr, type val, int memorder);
+    type __atomic_fetch_or (type *ptr, type val, int memorder);
+ */
+ 
+ class kf_atomic_fetch_op : public internal_known_function
+ {
+ public:
+   kf_atomic_fetch_op (enum tree_code op): m_op (op) {}
+ 
+   /* This is effectively:
+        RET = *PTR;
+        *PTR = RET OP VAL;
+        return RET;
+   */
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     const svalue *ptr_sval = cd.get_arg_svalue (0);
+     tree ptr_tree = cd.get_arg_tree (0);
+     const svalue *val_sval = cd.get_arg_svalue (1);
+     /* Ignore the memorder param.  */
+ 
+     region_model *model = cd.get_model ();
+     region_model_manager *mgr = cd.get_manager ();
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     const region *star_ptr_region
+       = model->deref_rvalue (ptr_sval, ptr_tree, ctxt);
+     const svalue *old_sval = model->get_store_value (star_ptr_region, ctxt);
+     const svalue *new_sval = mgr->get_or_create_binop (old_sval->get_type (),
+ 						       m_op,
+ 						       old_sval, val_sval);
+     model->set_value (star_ptr_region, new_sval, ctxt);
+     cd.maybe_set_lhs (old_sval);
+   }
+ 
+ private:
+   enum tree_code m_op;
+ };
+ 
+ /* Handler for:
+    type __atomic_add_fetch (type *ptr, type val, int memorder);
+    type __atomic_sub_fetch (type *ptr, type val, int memorder);
+    type __atomic_and_fetch (type *ptr, type val, int memorder);
+    type __atomic_xor_fetch (type *ptr, type val, int memorder);
+    type __atomic_or_fetch (type *ptr, type val, int memorder);
+ */
+ 
+ class kf_atomic_op_fetch : public internal_known_function
+ {
+ public:
+   kf_atomic_op_fetch (enum tree_code op): m_op (op) {}
+ 
+   /* This is effectively:
+        *PTR = RET OP VAL;
+        return *PTR;
+   */
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     const svalue *ptr_sval = cd.get_arg_svalue (0);
+     tree ptr_tree = cd.get_arg_tree (0);
+     const svalue *val_sval = cd.get_arg_svalue (1);
+     /* Ignore the memorder param.  */
+ 
+     region_model *model = cd.get_model ();
+     region_model_manager *mgr = cd.get_manager ();
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     const region *star_ptr_region
+       = model->deref_rvalue (ptr_sval, ptr_tree, ctxt);
+     const svalue *old_sval = model->get_store_value (star_ptr_region, ctxt);
+     const svalue *new_sval = mgr->get_or_create_binop (old_sval->get_type (),
+ 						       m_op,
+ 						       old_sval, val_sval);
+     model->set_value (star_ptr_region, new_sval, ctxt);
+     cd.maybe_set_lhs (new_sval);
+   }
+ 
+ private:
+   enum tree_code m_op;
+ };
+ 
+ /* Handler for __atomic_load.
+    Although the user-facing documentation specifies it as having this
+    signature:
+ 
+       void __atomic_load (type *ptr, type *ret, int memorder)
+ 
+    by the time the C/C++ frontends have acted on it, any calls that
+    can't be mapped to a _N variation end up with this signature:
+ 
+       void __atomic_load (size_t sz, const void *src, void *dst, int memorder);
+ 
+    as seen in the gimple seen by the analyzer, and as specified
+    in sync-builtins.def.  */
+ 
+ class kf_atomic_load : public internal_known_function
+ {
+ public:
+   /* This is effectively:
+        memmove (dst, src, sz);
+   */
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     const svalue *num_bytes_sval = cd.get_arg_svalue (0);
+     const svalue *src_sval = cd.get_arg_svalue (1);
+     tree src_tree = cd.get_arg_tree (1);
+     const svalue *dst_sval = cd.get_arg_svalue (2);
+     tree dst_tree = cd.get_arg_tree (2);
+     /* Ignore the memorder param.  */
+ 
+     region_model *model = cd.get_model ();
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     const region *dst_reg = model->deref_rvalue (dst_sval, dst_tree, ctxt);
+     const region *src_reg = model->deref_rvalue (src_sval, src_tree, ctxt);
+ 
+     const svalue *data_sval
+       = model->read_bytes (src_reg, src_tree, num_bytes_sval, ctxt);
+     model->write_bytes (dst_reg, num_bytes_sval, data_sval, ctxt);
+   }
+ };
+ 
+ /* Handler for __atomic_store.
+    Although the user-facing documentation specifies it as having this
+    signature:
+ 
+       void __atomic_store (type *ptr, type *val, int memorder)
+ 
+    by the time the C/C++ frontends have acted on it, any calls that
+    can't be mapped to a _N variation end up with this signature:
+ 
+       void __atomic_store (size_t sz, type *dst, type *src, int memorder)
+ 
+    as seen in the gimple seen by the analyzer, and as specified
+    in sync-builtins.def.  */
+ 
+ class kf_atomic_store : public internal_known_function
+ {
+ public:
+   /* This is effectively:
+        memmove (dst, src, sz);
+   */
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     const svalue *num_bytes_sval = cd.get_arg_svalue (0);
+     const svalue *dst_sval = cd.get_arg_svalue (1);
+     tree dst_tree = cd.get_arg_tree (1);
+     const svalue *src_sval = cd.get_arg_svalue (2);
+     tree src_tree = cd.get_arg_tree (2);
+     /* Ignore the memorder param.  */
+ 
+     region_model *model = cd.get_model ();
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     const region *dst_reg = model->deref_rvalue (dst_sval, dst_tree, ctxt);
+     const region *src_reg = model->deref_rvalue (src_sval, src_tree, ctxt);
+ 
+     const svalue *data_sval
+       = model->read_bytes (src_reg, src_tree, num_bytes_sval, ctxt);
+     model->write_bytes (dst_reg, num_bytes_sval, data_sval, ctxt);
+   }
+ };
+ 
+ /* Handler for:
+    type __atomic_load_n (type *ptr, int memorder) */
+ 
+ class kf_atomic_load_n : public internal_known_function
+ {
+ public:
+   /* This is effectively:
+        RET = *PTR;
+        return RET;
+   */
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     const svalue *ptr_ptr_sval = cd.get_arg_svalue (0);
+     tree ptr_ptr_tree = cd.get_arg_tree (0);
+     /* Ignore the memorder param.  */
+ 
+     region_model *model = cd.get_model ();
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     const region *ptr_region
+       = model->deref_rvalue (ptr_ptr_sval, ptr_ptr_tree, ctxt);
+     const svalue *star_ptr_sval = model->get_store_value (ptr_region, ctxt);
+     cd.maybe_set_lhs (star_ptr_sval);
+   }
+ };
+ 
+ /* Handler for:
+    void __atomic_store_n (type *ptr, type val, int memorder) */
+ 
+ class kf_atomic_store_n : public internal_known_function
+ {
+ public:
+   /* This is effectively:
+        *PTR = VAL;
+   */
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     const svalue *ptr_sval = cd.get_arg_svalue (0);
+     tree ptr_tree = cd.get_arg_tree (0);
+     const svalue *new_sval = cd.get_arg_svalue (1);
+     /* Ignore the memorder param.  */
+ 
+     region_model *model = cd.get_model ();
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     const region *star_ptr_region
+       = model->deref_rvalue (ptr_sval, ptr_tree, ctxt);
+     model->set_value (star_ptr_region, new_sval, ctxt);
+   }
+ };
+ 
  /* Handler for "__builtin_expect" etc.  */
  
  class kf_expect : public internal_known_function
*************** public:
*** 84,90 ****
  
  /* Handler for "calloc".  */
  
! class kf_calloc : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
--- 428,434 ----
  
  /* Handler for "calloc".  */
  
! class kf_calloc : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
*************** public:
*** 93,98 ****
--- 437,447 ----
  	    && cd.arg_is_size_p (0)
  	    && cd.arg_is_size_p (1));
    }
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_CALLOC;
+   }
+ 
    void impl_call_pre (const call_details &cd) const final override;
  };
  
*************** kf_calloc::impl_call_pre (const call_det
*** 111,117 ****
      = model->get_or_create_region_for_heap_alloc (prod_sval, cd.get_ctxt ());
    const region *sized_reg
      = mgr->get_sized_region (new_reg, NULL_TREE, prod_sval);
!   model->zero_fill_region (sized_reg);
    if (cd.get_lhs_type ())
      {
        const svalue *ptr_sval
--- 460,466 ----
      = model->get_or_create_region_for_heap_alloc (prod_sval, cd.get_ctxt ());
    const region *sized_reg
      = mgr->get_sized_region (new_reg, NULL_TREE, prod_sval);
!   model->zero_fill_region (sized_reg, cd.get_ctxt ());
    if (cd.get_lhs_type ())
      {
        const svalue *ptr_sval
*************** kf_error::impl_call_pre (const call_deta
*** 176,183 ****
--- 525,563 ----
    if (!model->add_constraint (status, EQ_EXPR, integer_zero_node, ctxt))
      if (ctxt)
        ctxt->terminate_path ();
+ 
+   /* Check "format" arg.  */
+   const int fmt_arg_idx = (m_min_args == 3) ? 2 : 4;
+   model->check_for_null_terminated_string_arg (cd, fmt_arg_idx);
  }
  
+ /* Handler for fopen.
+      FILE *fopen (const char *filename, const char *mode);
+    See e.g. https://en.cppreference.com/w/c/io/fopen
+    https://www.man7.org/linux/man-pages/man3/fopen.3.html
+    https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/fopen-wfopen?view=msvc-170  */
+ 
+ class kf_fopen : public known_function
+ {
+ public:
+   bool matches_call_types_p (const call_details &cd) const final override
+   {
+     return (cd.num_args () == 2
+ 	    && cd.arg_is_pointer_p (0)
+ 	    && cd.arg_is_pointer_p (1));
+   }
+ 
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     cd.check_for_null_terminated_string_arg (0);
+     cd.check_for_null_terminated_string_arg (1);
+     cd.set_any_lhs_with_defaults ();
+ 
+     /* fopen's mode param is effectively a mini-DSL, but there are various
+        non-standard extensions, so we don't bother to check it.  */
+   }
+ };
+ 
  /* Handler for "free", after sm-handling.
  
     If the ptr points to an underlying heap region, delete the region,
*************** kf_error::impl_call_pre (const call_deta
*** 193,204 ****
     all pointers to the region to the "freed" state together, regardless
     of casts.  */
  
! class kf_free : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
!     return (cd.num_args () == 0 && cd.arg_is_pointer_p (0));
    }
    void impl_call_post (const call_details &cd) const final override;
  };
--- 573,588 ----
     all pointers to the region to the "freed" state together, regardless
     of casts.  */
  
! class kf_free : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
!     return (cd.num_args () == 1 && cd.arg_is_pointer_p (0));
!   }
!   enum built_in_function builtin_code () const final override
!   {
!     return BUILT_IN_FREE;
    }
    void impl_call_post (const call_details &cd) const final override;
  };
*************** kf_free::impl_call_post (const call_deta
*** 219,225 ****
  
  /* Handle the on_call_pre part of "malloc".  */
  
! class kf_malloc : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
--- 603,609 ----
  
  /* Handle the on_call_pre part of "malloc".  */
  
! class kf_malloc : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
*************** public:
*** 227,232 ****
--- 611,620 ----
      return (cd.num_args () == 1
  	    && cd.arg_is_size_p (0));
    }
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_MALLOC;
+   }
    void impl_call_pre (const call_details &cd) const final override;
  };
  
*************** kf_malloc::impl_call_pre (const call_det
*** 248,259 ****
  
  /* Handler for "memcpy" and "__builtin_memcpy",
     "memmove", and "__builtin_memmove".  */
- /* TODO: complain about overlapping src and dest for the memcpy
-    variants.  */
  
! class kf_memcpy_memmove : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 3
--- 636,654 ----
  
  /* Handler for "memcpy" and "__builtin_memcpy",
     "memmove", and "__builtin_memmove".  */
  
! class kf_memcpy_memmove : public builtin_known_function
  {
  public:
+   enum kf_memcpy_memmove_variant
+   {
+     KF_MEMCPY,
+     KF_MEMCPY_CHK,
+     KF_MEMMOVE,
+     KF_MEMMOVE_CHK,
+   };
+   kf_memcpy_memmove (enum kf_memcpy_memmove_variant variant)
+     : m_variant (variant) {};
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 3
*************** public:
*** 261,267 ****
--- 656,680 ----
  	    && cd.arg_is_pointer_p (1)
  	    && cd.arg_is_size_p (2));
    }
+   enum built_in_function builtin_code () const final override
+   {
+     switch (m_variant)
+       {
+       case KF_MEMCPY:
+ 	return BUILT_IN_MEMCPY;
+       case KF_MEMCPY_CHK:
+ 	return BUILT_IN_MEMCPY_CHK;
+       case KF_MEMMOVE:
+ 	return BUILT_IN_MEMMOVE;
+       case KF_MEMMOVE_CHK:
+ 	return BUILT_IN_MEMMOVE_CHK;
+       default:
+ 	gcc_unreachable ();
+       }
+   }
    void impl_call_pre (const call_details &cd) const final override;
+ private:
+   const enum kf_memcpy_memmove_variant m_variant;
  };
  
  void
*************** kf_memcpy_memmove::impl_call_pre (const
*** 272,278 ****
    const svalue *num_bytes_sval = cd.get_arg_svalue (2);
  
    region_model *model = cd.get_model ();
-   region_model_manager *mgr = cd.get_manager ();
  
    const region *dest_reg
      = model->deref_rvalue (dest_ptr_sval, cd.get_arg_tree (0), cd.get_ctxt ());
--- 685,690 ----
*************** kf_memcpy_memmove::impl_call_pre (const
*** 280,308 ****
      = model->deref_rvalue (src_ptr_sval, cd.get_arg_tree (1), cd.get_ctxt ());
  
    cd.maybe_set_lhs (dest_ptr_sval);
  
!   const region *sized_src_reg
!     = mgr->get_sized_region (src_reg, NULL_TREE, num_bytes_sval);
!   const region *sized_dest_reg
!     = mgr->get_sized_region (dest_reg, NULL_TREE, num_bytes_sval);
!   const svalue *src_contents_sval
!     = model->get_store_value (sized_src_reg, cd.get_ctxt ());
!   model->check_for_poison (src_contents_sval, cd.get_arg_tree (1),
! 			   sized_src_reg, cd.get_ctxt ());
!   model->set_value (sized_dest_reg, src_contents_sval, cd.get_ctxt ());
  }
  
  /* Handler for "memset" and "__builtin_memset".  */
  
! class kf_memset : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 3 && cd.arg_is_pointer_p (0));
    }
! 
    void impl_call_pre (const call_details &cd) const final override;
  };
  
  void
--- 692,736 ----
      = model->deref_rvalue (src_ptr_sval, cd.get_arg_tree (1), cd.get_ctxt ());
  
    cd.maybe_set_lhs (dest_ptr_sval);
+   /* Check for overlap.  */
+   switch (m_variant)
+     {
+     case KF_MEMCPY:
+     case KF_MEMCPY_CHK:
+       cd.complain_about_overlap (0, 1, num_bytes_sval);
+       break;
  
!     case KF_MEMMOVE:
!     case KF_MEMMOVE_CHK:
!       /* It's OK for memmove's arguments to overlap.  */
!       break;
! 
!     default:
! 	gcc_unreachable ();
!     }
!   model->copy_bytes (dest_reg,
! 		     src_reg, cd.get_arg_tree (1),
! 		     num_bytes_sval,
! 		     cd.get_ctxt ());
  }
  
  /* Handler for "memset" and "__builtin_memset".  */
  
! class kf_memset : public builtin_known_function
  {
  public:
+   kf_memset (bool chk_variant) : m_chk_variant (chk_variant) {}
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 3 && cd.arg_is_pointer_p (0));
    }
!   enum built_in_function builtin_code () const final override
!   {
!     return m_chk_variant ? BUILT_IN_MEMSET_CHK : BUILT_IN_MEMSET;
!   }
    void impl_call_pre (const call_details &cd) const final override;
+ private:
+   const bool m_chk_variant;
  };
  
  void
*************** kf_memset::impl_call_pre (const call_det
*** 324,331 ****
    const region *sized_dest_reg = mgr->get_sized_region (dest_reg,
  							NULL_TREE,
  							num_bytes_sval);
!   model->check_region_for_write (sized_dest_reg, cd.get_ctxt ());
!   model->fill_region (sized_dest_reg, fill_value_u8);
  }
  
  /* A subclass of pending_diagnostic for complaining about 'putenv'
--- 752,760 ----
    const region *sized_dest_reg = mgr->get_sized_region (dest_reg,
  							NULL_TREE,
  							num_bytes_sval);
!   model->fill_region (sized_dest_reg, fill_value_u8, cd.get_ctxt ());
! 
!   cd.maybe_set_lhs (dest_sval);
  }
  
  /* A subclass of pending_diagnostic for complaining about 'putenv'
*************** public:
*** 358,389 ****
      return OPT_Wanalyzer_putenv_of_auto_var;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      auto_diagnostic_group d;
-     diagnostic_metadata m;
  
      /* SEI CERT C Coding Standard: "POS34-C. Do not call putenv() with a
         pointer to an automatic variable as the argument".  */
      diagnostic_metadata::precanned_rule
        rule ("POS34-C", "https://wiki.sei.cmu.edu/confluence/x/6NYxBQ");
!     m.add_rule (rule);
  
      bool warned;
      if (m_var_decl)
!       warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			     "%qE on a pointer to automatic variable %qE",
! 			     m_fndecl, m_var_decl);
      else
!       warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			     "%qE on a pointer to an on-stack buffer",
! 			     m_fndecl);
      if (warned)
        {
  	if (m_var_decl)
  	  inform (DECL_SOURCE_LOCATION (m_var_decl),
  		  "%qE declared on stack here", m_var_decl);
! 	inform (rich_loc->get_loc (), "perhaps use %qs rather than %qE",
  		"setenv", m_fndecl);
        }
  
--- 787,815 ----
      return OPT_Wanalyzer_putenv_of_auto_var;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      auto_diagnostic_group d;
  
      /* SEI CERT C Coding Standard: "POS34-C. Do not call putenv() with a
         pointer to an automatic variable as the argument".  */
      diagnostic_metadata::precanned_rule
        rule ("POS34-C", "https://wiki.sei.cmu.edu/confluence/x/6NYxBQ");
!     ctxt.add_rule (rule);
  
      bool warned;
      if (m_var_decl)
!       warned = ctxt.warn ("%qE on a pointer to automatic variable %qE",
! 			  m_fndecl, m_var_decl);
      else
!       warned = ctxt.warn ("%qE on a pointer to an on-stack buffer",
! 			  m_fndecl);
      if (warned)
        {
  	if (m_var_decl)
  	  inform (DECL_SOURCE_LOCATION (m_var_decl),
  		  "%qE declared on stack here", m_var_decl);
! 	inform (ctxt.get_location (), "perhaps use %qs rather than %qE",
  		"setenv", m_fndecl);
        }
  
*************** public:
*** 432,437 ****
--- 858,864 ----
      gcc_assert (fndecl);
      region_model_context *ctxt = cd.get_ctxt ();
      region_model *model = cd.get_model ();
+     model->check_for_null_terminated_string_arg (cd, 0);
      const svalue *ptr_sval = cd.get_arg_svalue (0);
      const region *reg
        = model->deref_rvalue (ptr_sval, cd.get_arg_tree (0), ctxt);
*************** public:
*** 452,457 ****
--- 879,885 ----
  	  ctxt->warn (make_unique<putenv_of_auto_var> (fndecl, reg));
  	break;
        }
+     cd.set_any_lhs_with_defaults ();
    }
  };
  
*************** public:
*** 478,484 ****
     Each of these has a custom_edge_info subclass, which updates
     the region_model and sm-state of the destination state.  */
  
! class kf_realloc : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
--- 906,912 ----
     Each of these has a custom_edge_info subclass, which updates
     the region_model and sm-state of the destination state.  */
  
! class kf_realloc : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
*************** public:
*** 487,492 ****
--- 915,926 ----
  	    && cd.arg_is_pointer_p (0)
  	    && cd.arg_is_size_p (1));
    }
+ 
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_REALLOC;
+   }
+ 
    void impl_call_post (const call_details &cd) const final override;
  };
  
*************** kf_realloc::impl_call_post (const call_d
*** 699,711 ****
  
  /* Handler for "strchr" and "__builtin_strchr".  */
  
! class kf_strchr : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 2 && cd.arg_is_pointer_p (0));
    }
    void impl_call_post (const call_details &cd) const final override;
  };
  
--- 1133,1154 ----
  
  /* Handler for "strchr" and "__builtin_strchr".  */
  
! class kf_strchr : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 2 && cd.arg_is_pointer_p (0));
    }
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     cd.check_for_null_terminated_string_arg (0);
+   }
+ 
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_STRCHR;
+   }
    void impl_call_post (const call_details &cd) const final override;
  };
  
*************** kf_strchr::impl_call_post (const call_de
*** 782,788 ****
       int sprintf(char *str, const char *format, ...);
  */
  
! class kf_sprintf : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
--- 1225,1231 ----
       int sprintf(char *str, const char *format, ...);
  */
  
! class kf_sprintf : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
*************** public:
*** 792,797 ****
--- 1235,1245 ----
  	    && cd.arg_is_pointer_p (1));
    }
  
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_SPRINTF;
+   }
+ 
    void impl_call_pre (const call_details &cd) const final override
    {
      /* For now, merely assume that the destination buffer gets set to a
*************** public:
*** 803,814 ****
        = model->deref_rvalue (dst_ptr, cd.get_arg_tree (0), ctxt);
      const svalue *content = cd.get_or_create_conjured_svalue (dst_reg);
      model->set_value (dst_reg, content, ctxt);
    }
  };
  
  /* Handler for "__builtin_stack_restore".  */
  
! class kf_stack_restore : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &) const final override
--- 1251,1263 ----
        = model->deref_rvalue (dst_ptr, cd.get_arg_tree (0), ctxt);
      const svalue *content = cd.get_or_create_conjured_svalue (dst_reg);
      model->set_value (dst_reg, content, ctxt);
+     cd.set_any_lhs_with_defaults ();
    }
  };
  
  /* Handler for "__builtin_stack_restore".  */
  
! class kf_stack_restore : public pure_known_function_with_default_return
  {
  public:
    bool matches_call_types_p (const call_details &) const final override
*************** public:
*** 821,827 ****
  
  /* Handler for "__builtin_stack_save".  */
  
! class kf_stack_save : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &) const final override
--- 1270,1276 ----
  
  /* Handler for "__builtin_stack_save".  */
  
! class kf_stack_save : public pure_known_function_with_default_return
  {
  public:
    bool matches_call_types_p (const call_details &) const final override
*************** public:
*** 832,843 ****
    /* Currently a no-op.  */
  };
  
! /* Handler for "strcpy" and "__builtin_strcpy_chk".  */
  
! class kf_strcpy : public known_function
  {
  public:
!   kf_strcpy (unsigned int num_args) : m_num_args (num_args) {}
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == m_num_args
--- 1281,1294 ----
    /* Currently a no-op.  */
  };
  
! /* Handler for "strcat" and "__builtin_strcat_chk".  */
  
! class kf_strcat : public builtin_known_function
  {
  public:
!   kf_strcat (unsigned int num_args, bool chk_variant)
!     : m_num_args (num_args),
!       m_chk_variant (chk_variant) {}
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == m_num_args
*************** public:
*** 845,960 ****
  	    && cd.arg_is_pointer_p (1));
    }
  
    void impl_call_pre (const call_details &cd) const final override;
  
  private:
    unsigned int m_num_args;
  };
  
  void
  kf_strcpy::impl_call_pre (const call_details &cd) const
  {
    region_model *model = cd.get_model ();
!   region_model_manager *mgr = cd.get_manager ();
  
    const svalue *dest_sval = cd.get_arg_svalue (0);
    const region *dest_reg = model->deref_rvalue (dest_sval, cd.get_arg_tree (0),
! 					 cd.get_ctxt ());
!   const svalue *src_sval = cd.get_arg_svalue (1);
!   const region *src_reg = model->deref_rvalue (src_sval, cd.get_arg_tree (1),
! 					cd.get_ctxt ());
!   const svalue *src_contents_sval = model->get_store_value (src_reg,
! 							    cd.get_ctxt ());
! 
    cd.maybe_set_lhs (dest_sval);
  
!   /* Try to get the string size if SRC_REG is a string_region.  */
!   const svalue *copied_bytes_sval = model->get_string_size (src_reg);
!   /* Otherwise, check if the contents of SRC_REG is a string.  */
!   if (copied_bytes_sval->get_kind () == SK_UNKNOWN)
!     copied_bytes_sval = model->get_string_size (src_contents_sval);
! 
!   const region *sized_dest_reg
!     = mgr->get_sized_region (dest_reg, NULL_TREE, copied_bytes_sval);
!   model->set_value (sized_dest_reg, src_contents_sval, cd.get_ctxt ());
  }
  
  /* Handler for "strdup" and "__builtin_strdup".  */
  
! class kf_strdup : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 1 && cd.arg_is_pointer_p (0));
    }
    void impl_call_pre (const call_details &cd) const final override
    {
      region_model *model = cd.get_model ();
      region_model_manager *mgr = cd.get_manager ();
!     /* Ideally we'd get the size here, and simulate copying the bytes.  */
!     const region *new_reg
!       = model->get_or_create_region_for_heap_alloc (NULL, cd.get_ctxt ());
!     model->mark_region_as_unknown (new_reg, NULL);
!     if (cd.get_lhs_type ())
        {
! 	const svalue *ptr_sval
! 	  = mgr->get_ptr_svalue (cd.get_lhs_type (), new_reg);
! 	cd.maybe_set_lhs (ptr_sval);
        }
    }
  };
  
! /* Handle the on_call_pre part of "strlen".  */
  
! class kf_strlen : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 1 && cd.arg_is_pointer_p (0));
    }
!   void impl_call_pre (const call_details &cd) const final override;
  };
  
  void
! kf_strlen::impl_call_pre (const call_details &cd) const
  {
!   region_model_context *ctxt = cd.get_ctxt ();
!   region_model *model = cd.get_model ();
!   region_model_manager *mgr = cd.get_manager ();
  
!   const svalue *arg_sval = cd.get_arg_svalue (0);
!   const region *buf_reg
!     = model->deref_rvalue (arg_sval, cd.get_arg_tree (0), ctxt);
!   if (const string_region *str_reg
!       = buf_reg->dyn_cast_string_region ())
      {
!       tree str_cst = str_reg->get_string_cst ();
!       /* TREE_STRING_LENGTH is sizeof, not strlen.  */
!       int sizeof_cst = TREE_STRING_LENGTH (str_cst);
!       int strlen_cst = sizeof_cst - 1;
!       if (cd.get_lhs_type ())
  	{
! 	  tree t_cst = build_int_cst (cd.get_lhs_type (), strlen_cst);
! 	  const svalue *result_sval
! 	    = mgr->get_or_create_constant_svalue (t_cst);
! 	  cd.maybe_set_lhs (result_sval);
! 	  return;
  	}
      }
!   /* Otherwise a conjured value.  */
! }
  
  /* Handler for "strndup" and "__builtin_strndup".  */
  
! class kf_strndup : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 2 && cd.arg_is_pointer_p (0));
    }
    void impl_call_pre (const call_details &cd) const final override
    {
      region_model *model = cd.get_model ();
--- 1296,1672 ----
  	    && cd.arg_is_pointer_p (1));
    }
  
+   enum built_in_function builtin_code () const final override
+   {
+     return m_chk_variant ? BUILT_IN_STRCAT_CHK : BUILT_IN_STRCAT;
+   }
+ 
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     region_model *model = cd.get_model ();
+     region_model_manager *mgr = cd.get_manager ();
+ 
+     const svalue *dest_sval = cd.get_arg_svalue (0);
+     const region *dest_reg = model->deref_rvalue (dest_sval, cd.get_arg_tree (0),
+ 						  cd.get_ctxt ());
+ 
+     const svalue *dst_strlen_sval
+       = cd.check_for_null_terminated_string_arg (0, false, nullptr);
+     if (!dst_strlen_sval)
+       {
+ 	if (cd.get_ctxt ())
+ 	  cd.get_ctxt ()->terminate_path ();
+ 	return;
+       }
+ 
+     const svalue *bytes_to_copy;
+     const svalue *num_src_bytes_read_sval
+       = cd.check_for_null_terminated_string_arg (1, true, &bytes_to_copy);
+     if (!num_src_bytes_read_sval)
+       {
+ 	if (cd.get_ctxt ())
+ 	  cd.get_ctxt ()->terminate_path ();
+ 	return;
+       }
+ 
+     cd.maybe_set_lhs (dest_sval);
+     cd.complain_about_overlap (0, 1, num_src_bytes_read_sval);
+ 
+     const region *offset_reg
+       = mgr->get_offset_region (dest_reg, NULL_TREE, dst_strlen_sval);
+     model->write_bytes (offset_reg,
+ 			num_src_bytes_read_sval,
+ 			bytes_to_copy,
+ 			cd.get_ctxt ());
+   }
+ 
+ private:
+   unsigned int m_num_args;
+   const bool m_chk_variant;
+ };
+ 
+ /* Handler for "strcpy" and "__builtin_strcpy_chk".  */
+ 
+ class kf_strcpy : public builtin_known_function
+ {
+ public:
+   kf_strcpy (unsigned int num_args, bool chk_variant)
+     : m_num_args (num_args),
+       m_chk_variant (chk_variant) {}
+   bool matches_call_types_p (const call_details &cd) const final override
+   {
+     return (cd.num_args () == m_num_args
+ 	    && cd.arg_is_pointer_p (0)
+ 	    && cd.arg_is_pointer_p (1));
+   }
+   enum built_in_function builtin_code () const final override
+   {
+     return m_chk_variant ? BUILT_IN_STRCPY_CHK : BUILT_IN_STRCPY;
+   }
    void impl_call_pre (const call_details &cd) const final override;
  
  private:
    unsigned int m_num_args;
+   const bool m_chk_variant;
  };
  
  void
  kf_strcpy::impl_call_pre (const call_details &cd) const
  {
    region_model *model = cd.get_model ();
!   region_model_context *ctxt = cd.get_ctxt ();
  
    const svalue *dest_sval = cd.get_arg_svalue (0);
    const region *dest_reg = model->deref_rvalue (dest_sval, cd.get_arg_tree (0),
! 						    ctxt);
!   /* strcpy returns the initial param.  */
    cd.maybe_set_lhs (dest_sval);
  
!   const svalue *bytes_to_copy;
!   if (const svalue *num_bytes_read_sval
!       = cd.check_for_null_terminated_string_arg (1, true, &bytes_to_copy))
!     {
!       cd.complain_about_overlap (0, 1, num_bytes_read_sval);
!       model->write_bytes (dest_reg, num_bytes_read_sval, bytes_to_copy, ctxt);
!     }
!   else
!     {
!       if (cd.get_ctxt ())
! 	cd.get_ctxt ()->terminate_path ();
!     }
  }
  
  /* Handler for "strdup" and "__builtin_strdup".  */
  
! class kf_strdup : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 1 && cd.arg_is_pointer_p (0));
    }
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_STRDUP;
+   }
    void impl_call_pre (const call_details &cd) const final override
    {
      region_model *model = cd.get_model ();
+     region_model_context *ctxt = cd.get_ctxt ();
      region_model_manager *mgr = cd.get_manager ();
!     const svalue *bytes_to_copy;
!     if (const svalue *num_bytes_read_sval
! 	= cd.check_for_null_terminated_string_arg (0, true, &bytes_to_copy))
        {
! 	const region *new_reg
! 	  = model->get_or_create_region_for_heap_alloc (num_bytes_read_sval,
! 							ctxt);
! 	model->write_bytes (new_reg, num_bytes_read_sval, bytes_to_copy, ctxt);
! 	if (cd.get_lhs_type ())
! 	  {
! 	    const svalue *ptr_sval
! 	      = mgr->get_ptr_svalue (cd.get_lhs_type (), new_reg);
! 	    cd.maybe_set_lhs (ptr_sval);
! 	  }
!       }
!     else
!       {
! 	if (ctxt)
! 	  ctxt->terminate_path ();
        }
    }
  };
  
! /* Handler for "strlen" and for "__analyzer_get_strlen".  */
  
! class kf_strlen : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 1 && cd.arg_is_pointer_p (0));
    }
!   enum built_in_function builtin_code () const final override
!   {
!     return BUILT_IN_STRLEN;
!   }
! 
!   void impl_call_pre (const call_details &cd) const final override
!   {
!     if (const svalue *strlen_sval
! 	  = cd.check_for_null_terminated_string_arg (0, false, nullptr))
!       if (strlen_sval->get_kind () != SK_UNKNOWN)
! 	{
! 	  cd.maybe_set_lhs (strlen_sval);
! 	  return;
! 	}
! 
!     /* Use a conjured svalue.  */
!     cd.set_any_lhs_with_defaults ();
!   }
! };
! 
! /* Factory function, so that kf-analyzer.cc can use this class.  */
! 
! std::unique_ptr<known_function>
! make_kf_strlen ()
! {
!   return make_unique<kf_strlen> ();
! }
! 
! /* Handler for "strncpy" and "__builtin_strncpy".
!    See e.g. https://en.cppreference.com/w/c/string/byte/strncpy
! 
!      extern char *strncpy (char *dst, const char *src, size_t count);
! 
!    Handle this by splitting into two outcomes:
!    (a) truncated read from "src" of "count" bytes,
!        writing "count" bytes to "dst"
!    (b) read from "src" of up to (and including) the null terminator,
!        where the number of bytes read < "count" bytes,
!        writing those bytes to "dst", and zero-filling the rest,
!        up to "count".  */
! 
! class kf_strncpy : public builtin_known_function
! {
! public:
!   bool matches_call_types_p (const call_details &cd) const final override
!   {
!     return (cd.num_args () == 3
! 	    && cd.arg_is_pointer_p (0)
! 	    && cd.arg_is_pointer_p (1)
! 	    && cd.arg_is_integral_p (2));
!   }
!   enum built_in_function builtin_code () const final override
!   {
!     return BUILT_IN_STRNCPY;
!   }
!   void impl_call_post (const call_details &cd) const final override;
  };
  
  void
! kf_strncpy::impl_call_post (const call_details &cd) const
  {
!   class strncpy_call_info : public call_info
!   {
!   public:
!     strncpy_call_info (const call_details &cd,
! 		       const svalue *num_bytes_with_terminator_sval,
! 		       bool truncated_read)
!     : call_info (cd),
!       m_num_bytes_with_terminator_sval (num_bytes_with_terminator_sval),
!       m_truncated_read (truncated_read)
!     {
!     }
  
!     label_text get_desc (bool can_colorize) const final override
      {
!       if (m_truncated_read)
! 	return make_label_text (can_colorize,
! 				"when %qE truncates the source string",
! 				get_fndecl ());
!       else
! 	return make_label_text (can_colorize,
! 				"when %qE copies the full source string",
! 				get_fndecl ());
!     }
! 
!     bool update_model (region_model *model,
! 		       const exploded_edge *,
! 		       region_model_context *ctxt) const final override
!     {
!       const call_details cd (get_call_details (model, ctxt));
! 
!       const svalue *dest_sval = cd.get_arg_svalue (0);
!       const region *dest_reg
! 	= model->deref_rvalue (dest_sval, cd.get_arg_tree (0), ctxt);
! 
!       const svalue *src_sval = cd.get_arg_svalue (1);
!       const region *src_reg
! 	= model->deref_rvalue (src_sval, cd.get_arg_tree (1), ctxt);
! 
!       const svalue *count_sval = cd.get_arg_svalue (2);
! 
!       /* strncpy returns the initial param.  */
!       cd.maybe_set_lhs (dest_sval);
! 
!       const svalue *num_bytes_read_sval;
!       if (m_truncated_read)
  	{
! 	  /* Truncated read.  */
! 	  num_bytes_read_sval = count_sval;
! 
! 	  if (m_num_bytes_with_terminator_sval)
! 	    {
! 	      /* The terminator is after the limit.  */
! 	      if (!model->add_constraint (m_num_bytes_with_terminator_sval,
! 					  GT_EXPR,
! 					  count_sval,
! 					  ctxt))
! 		return false;
! 	    }
! 	  else
! 	    {
! 	      /* We don't know where the terminator is, or if there is one.
! 		 In theory we know that the first COUNT bytes are non-zero,
! 		 but we don't have a way to record that constraint.  */
! 	    }
  	}
+       else
+ 	{
+ 	  /* Full read of the src string before reaching the limit,
+ 	     so there must be a terminator and it must be at or before
+ 	     the limit.  */
+ 	  if (m_num_bytes_with_terminator_sval)
+ 	    {
+ 	      if (!model->add_constraint (m_num_bytes_with_terminator_sval,
+ 					  LE_EXPR,
+ 					  count_sval,
+ 					  ctxt))
+ 		return false;
+ 	      num_bytes_read_sval = m_num_bytes_with_terminator_sval;
+ 
+ 	      /* First, zero-fill the dest buffer.
+ 		 We don't need to do this for the truncation case, as
+ 		 this fully populates the dest buffer.  */
+ 	      const region *sized_dest_reg
+ 		= model->get_manager ()->get_sized_region (dest_reg,
+ 							   NULL_TREE,
+ 							   count_sval);
+ 	      model->zero_fill_region (sized_dest_reg, ctxt);
+ 	    }
+ 	  else
+ 	    {
+ 	      /* Don't analyze this case; the other case will
+ 		 assume a "truncated" read up to the limit.  */
+ 	      return false;
+ 	    }
+ 	}
+ 
+       gcc_assert (num_bytes_read_sval);
+ 
+       const svalue *bytes_to_copy
+ 	= model->read_bytes (src_reg,
+ 			     cd.get_arg_tree (1),
+ 			     num_bytes_read_sval,
+ 			     ctxt);
+       cd.complain_about_overlap (0, 1, num_bytes_read_sval);
+       model->write_bytes (dest_reg,
+ 			  num_bytes_read_sval,
+ 			  bytes_to_copy,
+ 			  ctxt);
+ 
+       return true;
      }
!   private:
!     /* (strlen + 1) of the source string if it has a terminator,
!        or NULL for the case where UB would happen before
!        finding any terminator.  */
!     const svalue *m_num_bytes_with_terminator_sval;
! 
!     /* true: if this is the outcome where the limit was reached before
!        the null terminator
!        false: if the null terminator was reached before the limit.  */
!     bool m_truncated_read;
!   };
! 
!   /* Body of kf_strncpy::impl_call_post.  */
!   if (cd.get_ctxt ())
!     {
!       /* First, scan for a null terminator as if there were no limit,
! 	 with a null ctxt so no errors are reported.  */
!       const region_model *model = cd.get_model ();
!       const svalue *ptr_arg_sval = cd.get_arg_svalue (1);
!       const region *buf_reg
! 	= model->deref_rvalue (ptr_arg_sval, cd.get_arg_tree (1), nullptr);
!       const svalue *num_bytes_with_terminator_sval
! 	= model->scan_for_null_terminator (buf_reg,
! 					   cd.get_arg_tree (1),
! 					   nullptr,
! 					   nullptr);
!       cd.get_ctxt ()->bifurcate
! 	(make_unique<strncpy_call_info> (cd, num_bytes_with_terminator_sval,
! 					 false));
!       cd.get_ctxt ()->bifurcate
! 	(make_unique<strncpy_call_info> (cd, num_bytes_with_terminator_sval,
! 					 true));
!       cd.get_ctxt ()->terminate_path ();
!     }
! };
  
  /* Handler for "strndup" and "__builtin_strndup".  */
  
! class kf_strndup : public builtin_known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
    {
      return (cd.num_args () == 2 && cd.arg_is_pointer_p (0));
    }
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_STRNDUP;
+   }
    void impl_call_pre (const call_details &cd) const final override
    {
      region_model *model = cd.get_model ();
*************** public:
*** 972,977 ****
--- 1684,2062 ----
    }
  };
  
+ /* Handler for "strstr" and "__builtin_strstr".
+      extern char *strstr (const char* str, const char* substr);
+    See e.g. https://en.cppreference.com/w/c/string/byte/strstr  */
+ 
+ class kf_strstr : public builtin_known_function
+ {
+ public:
+   bool matches_call_types_p (const call_details &cd) const final override
+   {
+     return (cd.num_args () == 2
+ 	    && cd.arg_is_pointer_p (0)
+ 	    && cd.arg_is_pointer_p (1));
+   }
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_STRSTR;
+   }
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     cd.check_for_null_terminated_string_arg (0);
+     cd.check_for_null_terminated_string_arg (1);
+   }
+   void impl_call_post (const call_details &cd) const final override;
+ };
+ 
+ void
+ kf_strstr::impl_call_post (const call_details &cd) const
+ {
+   class strstr_call_info : public call_info
+   {
+   public:
+     strstr_call_info (const call_details &cd, bool found)
+     : call_info (cd), m_found (found)
+     {
+     }
+ 
+     label_text get_desc (bool can_colorize) const final override
+     {
+       if (m_found)
+ 	return make_label_text (can_colorize,
+ 				"when %qE returns non-NULL",
+ 				get_fndecl ());
+       else
+ 	return make_label_text (can_colorize,
+ 				"when %qE returns NULL",
+ 				get_fndecl ());
+     }
+ 
+     bool update_model (region_model *model,
+ 		       const exploded_edge *,
+ 		       region_model_context *ctxt) const final override
+     {
+       const call_details cd (get_call_details (model, ctxt));
+       if (tree lhs_type = cd.get_lhs_type ())
+ 	{
+ 	  region_model_manager *mgr = model->get_manager ();
+ 	  const svalue *result;
+ 	  if (m_found)
+ 	    {
+ 	      const svalue *str_sval = cd.get_arg_svalue (0);
+ 	      const region *str_reg
+ 		= model->deref_rvalue (str_sval, cd.get_arg_tree (0),
+ 				       cd.get_ctxt ());
+ 	      /* We want str_sval + OFFSET for some unknown OFFSET.
+ 		 Use a conjured_svalue to represent the offset,
+ 		 using the str_reg as the id of the conjured_svalue.  */
+ 	      const svalue *offset
+ 		= mgr->get_or_create_conjured_svalue (size_type_node,
+ 						      cd.get_call_stmt (),
+ 						      str_reg,
+ 						      conjured_purge (model,
+ 								      ctxt));
+ 	      result = mgr->get_or_create_binop (lhs_type, POINTER_PLUS_EXPR,
+ 						 str_sval, offset);
+ 	    }
+ 	  else
+ 	    result = mgr->get_or_create_int_cst (lhs_type, 0);
+ 	  cd.maybe_set_lhs (result);
+ 	}
+       return true;
+     }
+   private:
+     bool m_found;
+   };
+ 
+   /* Body of kf_strstr::impl_call_post.  */
+   if (cd.get_ctxt ())
+     {
+       cd.get_ctxt ()->bifurcate (make_unique<strstr_call_info> (cd, false));
+       cd.get_ctxt ()->bifurcate (make_unique<strstr_call_info> (cd, true));
+       cd.get_ctxt ()->terminate_path ();
+     }
+ }
+ 
+ /* Handle calls to "strtok".
+    See e.g.
+      https://en.cppreference.com/w/c/string/byte/strtok
+      https://man7.org/linux/man-pages/man3/strtok.3.html  */
+ 
+ class kf_strtok : public known_function
+ {
+ public:
+   class undefined_behavior : public undefined_function_behavior
+   {
+   public:
+     undefined_behavior (const call_details &cd)
+     : undefined_function_behavior (cd)
+     {
+     }
+     int get_controlling_option () const final override
+     {
+       return OPT_Wanalyzer_undefined_behavior_strtok;
+     }
+ 
+     bool emit (diagnostic_emission_context &ctxt) final override
+     {
+       /* CWE-476: NULL Pointer Dereference.  */
+       ctxt.add_cwe (476);
+       if (ctxt.warn ("calling %qD for first time with NULL as argument 1"
+ 		     " has undefined behavior",
+ 		     get_callee_fndecl ()))
+ 	{
+ 	  inform (ctxt.get_location (),
+ 		  "some implementations of %qD may crash on such input",
+ 		  get_callee_fndecl ());
+ 	  return true;
+ 	}
+       return false;
+     }
+ 
+     label_text describe_final_event (const evdesc::final_event &ev)
+       final override
+     {
+       return ev.formatted_print
+ 	("calling %qD for first time with NULL as argument 1"
+ 	 " has undefined behavior",
+ 	 get_callee_fndecl ());
+     }
+   };
+ 
+   /* An outcome of a "strtok" call.
+      We have a four-way bifurcation of the analysis via the
+      4 combinations of two flags:
+      - m_nonnull_str covers whether the "str" param was null or non-null
+      - m_found covers whether the result is null or non-null
+    */
+   class strtok_call_info : public call_info
+   {
+   public:
+     strtok_call_info (const call_details &cd,
+ 		      const private_region &private_reg,
+ 		      bool nonnull_str,
+ 		      bool found)
+     : call_info (cd),
+       m_private_reg (private_reg),
+       m_nonnull_str (nonnull_str),
+       m_found (found)
+     {
+     }
+ 
+     label_text get_desc (bool can_colorize) const final override
+     {
+       if (m_nonnull_str)
+ 	{
+ 	  if (m_found)
+ 	    return make_label_text
+ 	      (can_colorize,
+ 	       "when %qE on non-NULL string returns non-NULL",
+ 	       get_fndecl ());
+ 	  else
+ 	    return make_label_text
+ 	      (can_colorize,
+ 	       "when %qE on non-NULL string returns NULL",
+ 	       get_fndecl ());
+ 	}
+       else
+ 	{
+ 	  if (m_found)
+ 	    return make_label_text
+ 	      (can_colorize,
+ 	       "when %qE with NULL string (using prior) returns non-NULL",
+ 	       get_fndecl ());
+ 	  else
+ 	    return make_label_text
+ 	      (can_colorize,
+ 	       "when %qE with NULL string (using prior) returns NULL",
+ 	       get_fndecl ());
+ 	}
+     }
+ 
+     bool update_model (region_model *model,
+ 		       const exploded_edge *,
+ 		       region_model_context *ctxt) const final override
+     {
+       region_model_manager *mgr = model->get_manager ();
+       const call_details cd (get_call_details (model, ctxt));
+       const svalue *str_sval = cd.get_arg_svalue (0);
+       /* const svalue *delim_sval = cd.get_arg_svalue (1); */
+ 
+       cd.check_for_null_terminated_string_arg (1);
+       /* We check that either arg 0 or the private region is null
+ 	 terminated below.  */
+ 
+       const svalue *null_ptr_sval
+ 	= mgr->get_or_create_null_ptr (cd.get_arg_type (0));;
+       if (!model->add_constraint (str_sval,
+ 				  m_nonnull_str ? NE_EXPR : EQ_EXPR,
+ 				  null_ptr_sval,
+ 				  cd.get_ctxt ()))
+ 	return false;
+ 
+       if (m_nonnull_str)
+ 	{
+ 	  /* Update internal buffer.  */
+ 	  model->set_value (&m_private_reg,
+ 			    mgr->get_or_create_unmergeable (str_sval),
+ 			    ctxt);
+ 	}
+       else
+ 	{
+ 	  /* Read from internal buffer.  */
+ 	  str_sval = model->get_store_value (&m_private_reg, ctxt);
+ 
+ 	  /* The initial value of the private region is NULL when we're
+ 	     on a path from main.  */
+ 	  if (const initial_svalue *initial_sval
+ 		= str_sval->dyn_cast_initial_svalue ())
+ 	    if (initial_sval->get_region () == &m_private_reg
+ 		&& model->called_from_main_p ())
+ 	      {
+ 		/* Implementations of strtok do not necessarily check for NULL
+ 		   here, and may crash; see PR analyzer/107573.
+ 		   Warn for this, if we were definitely passed NULL.  */
+ 		if (cd.get_arg_svalue (0)->all_zeroes_p ())
+ 		  {
+ 		    if (ctxt)
+ 		      ctxt->warn (::make_unique<undefined_behavior> (cd));
+ 		  }
+ 
+ 		/* Assume that "str" was actually non-null; terminate
+ 		   this path.  */
+ 		return false;
+ 	      }
+ 
+ 	  /* Now assume str_sval is non-null.  */
+ 	  if (!model->add_constraint (str_sval,
+ 				      NE_EXPR,
+ 				      null_ptr_sval,
+ 				      cd.get_ctxt ()))
+ 	    return false;
+ 	}
+ 
+       const region *buf_reg = model->deref_rvalue (str_sval, NULL_TREE, ctxt);
+       model->scan_for_null_terminator (buf_reg,
+ 				       NULL_TREE,
+ 				       nullptr,
+ 				       ctxt);
+ 
+       if (m_found)
+ 	{
+ 	  const region *str_reg
+ 	    = model->deref_rvalue (str_sval, cd.get_arg_tree (0),
+ 				   cd.get_ctxt ());
+ 	  /* We want to figure out the start and nul terminator
+ 	     for the token.
+ 	     For each, we want str_sval + OFFSET for some unknown OFFSET.
+ 	     Use a conjured_svalue to represent the offset,
+ 	     using the str_reg as the id of the conjured_svalue.  */
+ 	  const svalue *start_offset
+ 	    = mgr->get_or_create_conjured_svalue (size_type_node,
+ 						  cd.get_call_stmt (),
+ 						  str_reg,
+ 						  conjured_purge (model,
+ 								  ctxt),
+ 						  0);
+ 	  const svalue *nul_offset
+ 	    = mgr->get_or_create_conjured_svalue (size_type_node,
+ 						  cd.get_call_stmt (),
+ 						  str_reg,
+ 						  conjured_purge (model,
+ 								  ctxt),
+ 						  1);
+ 
+ 	  tree char_ptr_type = build_pointer_type (char_type_node);
+ 	  const svalue *result
+ 	    = mgr->get_or_create_binop (char_ptr_type, POINTER_PLUS_EXPR,
+ 					str_sval, start_offset);
+ 	  cd.maybe_set_lhs (result);
+ 
+ 	  /* nul_offset + 1; the offset to use for the next call.  */
+ 	  const svalue *next_offset
+ 	    = mgr->get_or_create_binop (size_type_node, PLUS_EXPR,
+ 					nul_offset,
+ 					mgr->get_or_create_int_cst
+ 					(char_type_node, 1));
+ 
+ 	  /* Write '\0' to str_sval[nul_offset].  */
+ 	  const svalue *ptr_to_term
+ 	    = mgr->get_or_create_binop (char_ptr_type, POINTER_PLUS_EXPR,
+ 					str_sval, nul_offset);
+ 	  const region *terminator_reg
+ 	    = model->deref_rvalue (ptr_to_term, NULL_TREE, cd.get_ctxt ());
+ 	  model->set_value (terminator_reg,
+ 			    mgr->get_or_create_unmergeable
+ 			    (mgr->get_or_create_int_cst (char_type_node,
+ 							 0)),
+ 			    cd.get_ctxt ());
+ 
+ 	  /* Update saved ptr to be at [nul_offset + 1].  */
+ 	  const svalue *ptr_to_next
+ 	    = mgr->get_or_create_binop (cd.get_lhs_type (), POINTER_PLUS_EXPR,
+ 					str_sval, next_offset);
+ 	  model->set_value (&m_private_reg, ptr_to_next, ctxt);
+ 	}
+       else
+ 	if (tree lhs_type = cd.get_lhs_type ())
+ 	  {
+ 	    const svalue *result
+ 	      = mgr->get_or_create_int_cst (lhs_type, 0);
+ 	    cd.maybe_set_lhs (result);
+ 	  }
+       return true;
+     }
+   private:
+     const private_region &m_private_reg;
+     bool m_nonnull_str;
+     bool m_found;
+   }; // class strtok_call_info
+ 
+   kf_strtok (region_model_manager &mgr)
+   : m_private_reg (mgr.alloc_symbol_id (),
+ 		   mgr.get_root_region (),
+ 		   get_region_type (),
+ 		   "strtok buffer")
+   {
+   }
+ 
+   bool matches_call_types_p (const call_details &cd) const final override
+   {
+     return (cd.num_args () == 2
+ 	    && POINTER_TYPE_P (cd.get_arg_type (0))
+ 	    && POINTER_TYPE_P (cd.get_arg_type (1)));
+   }
+ 
+   void impl_call_post (const call_details &cd) const final override
+   {
+     if (cd.get_ctxt ())
+       {
+ 	/* Four-way bifurcation, based on whether:
+ 	   - the str is non-null
+ 	   - the result is non-null
+ 	   Typically the str is either null or non-null at a particular site,
+ 	   so hopefully this will generally just lead to two out-edges.  */
+ 	cd.get_ctxt ()->bifurcate
+ 	  (make_unique<strtok_call_info> (cd, m_private_reg, false, false));
+ 	cd.get_ctxt ()->bifurcate
+ 	  (make_unique<strtok_call_info> (cd, m_private_reg, false, true));
+ 	cd.get_ctxt ()->bifurcate
+ 	  (make_unique<strtok_call_info> (cd, m_private_reg, true, false));
+ 	cd.get_ctxt ()->bifurcate
+ 	  (make_unique<strtok_call_info> (cd, m_private_reg, true, true));
+ 	cd.get_ctxt ()->terminate_path ();
+       }
+   }
+ 
+ private:
+   static tree get_region_type ()
+   {
+     return build_pointer_type (char_type_node);
+   }
+   const private_region m_private_reg;
+ };
+ 
  class kf_ubsan_bounds : public internal_known_function
  {
    /* Empty.  */
*************** region_model::impl_deallocation_call (co
*** 987,997 ****
    kf.impl_call_post (cd);
  }
  
  /* Populate KFM with instances of known functions supported by the core of the
     analyzer (as opposed to plugins).  */
  
  void
! register_known_functions (known_function_manager &kfm)
  {
    /* Debugging/test support functions, all  with a "__analyzer_" prefix.  */
    register_known_analyzer_functions (kfm);
--- 2072,2230 ----
    kf.impl_call_post (cd);
  }
  
+ static void
+ register_atomic_builtins (known_function_manager &kfm)
+ {
+   kfm.add (BUILT_IN_ATOMIC_EXCHANGE, make_unique<kf_atomic_exchange> ());
+   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_N, make_unique<kf_atomic_exchange_n> ());
+   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_1, make_unique<kf_atomic_exchange_n> ());
+   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_2, make_unique<kf_atomic_exchange_n> ());
+   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_4, make_unique<kf_atomic_exchange_n> ());
+   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_8, make_unique<kf_atomic_exchange_n> ());
+   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_16, make_unique<kf_atomic_exchange_n> ());
+   kfm.add (BUILT_IN_ATOMIC_LOAD, make_unique<kf_atomic_load> ());
+   kfm.add (BUILT_IN_ATOMIC_LOAD_N, make_unique<kf_atomic_load_n> ());
+   kfm.add (BUILT_IN_ATOMIC_LOAD_1, make_unique<kf_atomic_load_n> ());
+   kfm.add (BUILT_IN_ATOMIC_LOAD_2, make_unique<kf_atomic_load_n> ());
+   kfm.add (BUILT_IN_ATOMIC_LOAD_4, make_unique<kf_atomic_load_n> ());
+   kfm.add (BUILT_IN_ATOMIC_LOAD_8, make_unique<kf_atomic_load_n> ());
+   kfm.add (BUILT_IN_ATOMIC_LOAD_16, make_unique<kf_atomic_load_n> ());
+   kfm.add (BUILT_IN_ATOMIC_STORE, make_unique<kf_atomic_store> ());
+   kfm.add (BUILT_IN_ATOMIC_STORE_N, make_unique<kf_atomic_store_n> ());
+   kfm.add (BUILT_IN_ATOMIC_STORE_1, make_unique<kf_atomic_store_n> ());
+   kfm.add (BUILT_IN_ATOMIC_STORE_2, make_unique<kf_atomic_store_n> ());
+   kfm.add (BUILT_IN_ATOMIC_STORE_4, make_unique<kf_atomic_store_n> ());
+   kfm.add (BUILT_IN_ATOMIC_STORE_8, make_unique<kf_atomic_store_n> ());
+   kfm.add (BUILT_IN_ATOMIC_STORE_16, make_unique<kf_atomic_store_n> ());
+   kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_1,
+ 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_2,
+ 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_4,
+ 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_8,
+ 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_16,
+ 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_1,
+ 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_2,
+ 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_4,
+ 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_8,
+ 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_16,
+ 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_AND_FETCH_1,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_AND_FETCH_2,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_AND_FETCH_4,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_AND_FETCH_8,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_AND_FETCH_16,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_1,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_2,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_4,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_8,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_16,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_OR_FETCH_1,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_OR_FETCH_2,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_OR_FETCH_4,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_OR_FETCH_8,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_OR_FETCH_16,
+ 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_1,
+ 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_2,
+ 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_4,
+ 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_8,
+ 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_16,
+ 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_1,
+ 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_2,
+ 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_4,
+ 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_8,
+ 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_16,
+ 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_AND_1,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_AND_2,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_AND_4,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_AND_8,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_AND_16,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_1,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_2,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_4,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_8,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_16,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_OR_1,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_OR_2,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_OR_4,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_OR_8,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
+   kfm.add (BUILT_IN_ATOMIC_FETCH_OR_16,
+ 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
+ }
+ 
+ /* Handle calls to the various __builtin___ubsan_handle_*.
+    These can return, but continuing after such a return
+    isn't likely to be interesting to the user of the analyzer.
+    Hence we terminate the analysis path at one of these calls.  */
+ 
+ class kf_ubsan_handler : public internal_known_function
+ {
+   void impl_call_post (const call_details &cd) const final override
+   {
+     if (cd.get_ctxt ())
+       cd.get_ctxt ()->terminate_path ();
+   }
+ };
+ 
+ static void
+ register_sanitizer_builtins (known_function_manager &kfm)
+ {
+   kfm.add (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
+ 	   make_unique<kf_ubsan_handler> ());
+ }
+ 
  /* Populate KFM with instances of known functions supported by the core of the
     analyzer (as opposed to plugins).  */
  
  void
! register_known_functions (known_function_manager &kfm,
! 			  region_model_manager &rmm)
  {
    /* Debugging/test support functions, all  with a "__analyzer_" prefix.  */
    register_known_analyzer_functions (kfm);
*************** register_known_functions (known_function
*** 1002,1046 ****
      kfm.add (IFN_UBSAN_BOUNDS, make_unique<kf_ubsan_bounds> ());
    }
  
!   /* Built-ins the analyzer has known_functions for.  */
    {
-     kfm.add (BUILT_IN_ALLOCA, make_unique<kf_alloca> ());
-     kfm.add (BUILT_IN_ALLOCA_WITH_ALIGN, make_unique<kf_alloca> ());
-     kfm.add (BUILT_IN_CALLOC, make_unique<kf_calloc> ());
      kfm.add (BUILT_IN_EXPECT, make_unique<kf_expect> ());
      kfm.add (BUILT_IN_EXPECT_WITH_PROBABILITY, make_unique<kf_expect> ());
!     kfm.add (BUILT_IN_FREE, make_unique<kf_free> ());
!     kfm.add (BUILT_IN_MALLOC, make_unique<kf_malloc> ());
!     kfm.add (BUILT_IN_MEMCPY, make_unique<kf_memcpy_memmove> ());
!     kfm.add (BUILT_IN_MEMCPY_CHK, make_unique<kf_memcpy_memmove> ());
!     kfm.add (BUILT_IN_MEMMOVE, make_unique<kf_memcpy_memmove> ());
!     kfm.add (BUILT_IN_MEMMOVE_CHK, make_unique<kf_memcpy_memmove> ());
!     kfm.add (BUILT_IN_MEMSET, make_unique<kf_memset> ());
!     kfm.add (BUILT_IN_MEMSET_CHK, make_unique<kf_memset> ());
!     kfm.add (BUILT_IN_REALLOC, make_unique<kf_realloc> ());
!     kfm.add (BUILT_IN_SPRINTF, make_unique<kf_sprintf> ());
      kfm.add (BUILT_IN_STACK_RESTORE, make_unique<kf_stack_restore> ());
      kfm.add (BUILT_IN_STACK_SAVE, make_unique<kf_stack_save> ());
-     kfm.add (BUILT_IN_STRCHR, make_unique<kf_strchr> ());
-     kfm.add (BUILT_IN_STRCPY, make_unique<kf_strcpy> (2));
-     kfm.add (BUILT_IN_STRCPY_CHK, make_unique<kf_strcpy> (3));
-     kfm.add (BUILT_IN_STRDUP, make_unique<kf_strdup> ());
-     kfm.add (BUILT_IN_STRNDUP, make_unique<kf_strndup> ());
-     kfm.add (BUILT_IN_STRLEN, make_unique<kf_strlen> ());
  
      register_varargs_builtins (kfm);
    }
  
!   /* Known builtins and C standard library functions.  */
    {
!     kfm.add ("memset", make_unique<kf_memset> ());
      kfm.add ("strdup", make_unique<kf_strdup> ());
      kfm.add ("strndup", make_unique<kf_strndup> ());
    }
  
    /* Known POSIX functions, and some non-standard extensions.  */
    {
      kfm.add ("putenv", make_unique<kf_putenv> ());
  
      register_known_fd_functions (kfm);
      register_known_file_functions (kfm);
--- 2235,2319 ----
      kfm.add (IFN_UBSAN_BOUNDS, make_unique<kf_ubsan_bounds> ());
    }
  
!   /* GCC built-ins that do not correspond to a function
!      in the standard library.  */
    {
      kfm.add (BUILT_IN_EXPECT, make_unique<kf_expect> ());
      kfm.add (BUILT_IN_EXPECT_WITH_PROBABILITY, make_unique<kf_expect> ());
!     kfm.add (BUILT_IN_ALLOCA_WITH_ALIGN, make_unique<kf_alloca> ());
      kfm.add (BUILT_IN_STACK_RESTORE, make_unique<kf_stack_restore> ());
      kfm.add (BUILT_IN_STACK_SAVE, make_unique<kf_stack_save> ());
  
+     register_atomic_builtins (kfm);
+     register_sanitizer_builtins (kfm);
      register_varargs_builtins (kfm);
    }
  
!   /* Known builtins and C standard library functions
!      the analyzer has known functions for.  */
    {
!     kfm.add ("alloca", make_unique<kf_alloca> ());
!     kfm.add ("__builtin_alloca", make_unique<kf_alloca> ());
!     kfm.add ("calloc", make_unique<kf_calloc> ());
!     kfm.add ("__builtin_calloc", make_unique<kf_calloc> ());
!     kfm.add ("free", make_unique<kf_free> ());
!     kfm.add ("__builtin_free", make_unique<kf_free> ());
!     kfm.add ("malloc", make_unique<kf_malloc> ());
!     kfm.add ("__builtin_malloc", make_unique<kf_malloc> ());
!     kfm.add ("memcpy",
! 	      make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
!     kfm.add ("__builtin_memcpy",
! 	      make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
!     kfm.add ("__memcpy_chk", make_unique<kf_memcpy_memmove>
! 			      (kf_memcpy_memmove::KF_MEMCPY_CHK));
!     kfm.add ("__builtin___memcpy_chk", make_unique<kf_memcpy_memmove>
! 			      (kf_memcpy_memmove::KF_MEMCPY_CHK));
!     kfm.add ("memmove",
! 	      make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
!     kfm.add ("__builtin_memmove",
! 	      make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
!     kfm.add ("__memmove_chk", make_unique<kf_memcpy_memmove>
! 			      (kf_memcpy_memmove::KF_MEMMOVE_CHK));
!     kfm.add ("__builtin___memmove_chk", make_unique<kf_memcpy_memmove>
! 			      (kf_memcpy_memmove::KF_MEMMOVE_CHK));
!     kfm.add ("memset", make_unique<kf_memset> (false));
!     kfm.add ("__builtin_memset", make_unique<kf_memset> (false));
!     kfm.add ("__memset_chk", make_unique<kf_memset> (true));
!     kfm.add ("__builtin___memset_chk", make_unique<kf_memset> (true));
!     kfm.add ("realloc", make_unique<kf_realloc> ());
!     kfm.add ("__builtin_realloc", make_unique<kf_realloc> ());
!     kfm.add ("sprintf", make_unique<kf_sprintf> ());
!     kfm.add ("__builtin_sprintf", make_unique<kf_sprintf> ());
!     kfm.add ("strchr", make_unique<kf_strchr> ());
!     kfm.add ("__builtin_strchr", make_unique<kf_strchr> ());
!     kfm.add ("strcpy", make_unique<kf_strcpy> (2, false));
!     kfm.add ("__builtin_strcpy", make_unique<kf_strcpy> (2, false));
!     kfm.add ("__strcpy_chk", make_unique<kf_strcpy> (3, true));
!     kfm.add ("__builtin___strcpy_chk", make_unique<kf_strcpy> (3, true));
!     kfm.add ("strcat", make_unique<kf_strcat> (2, false));
!     kfm.add ("__builtin_strcat", make_unique<kf_strcat> (2, false));
!     kfm.add ("__strcat_chk", make_unique<kf_strcat> (3, true));
!     kfm.add ("__builtin___strcat_chk", make_unique<kf_strcat> (3, true));
      kfm.add ("strdup", make_unique<kf_strdup> ());
+     kfm.add ("__builtin_strdup", make_unique<kf_strdup> ());
+     kfm.add ("strncpy", make_unique<kf_strncpy> ());
+     kfm.add ("__builtin_strncpy", make_unique<kf_strncpy> ());
      kfm.add ("strndup", make_unique<kf_strndup> ());
+     kfm.add ("__builtin_strndup", make_unique<kf_strndup> ());
+     kfm.add ("strlen", make_unique<kf_strlen> ());
+     kfm.add ("__builtin_strlen", make_unique<kf_strlen> ());
+     kfm.add ("strstr", make_unique<kf_strstr> ());
+     kfm.add ("__builtin_strstr", make_unique<kf_strstr> ());
+ 
+     register_atomic_builtins (kfm);
+     register_varargs_builtins (kfm);
    }
  
    /* Known POSIX functions, and some non-standard extensions.  */
    {
+     kfm.add ("fopen", make_unique<kf_fopen> ());
      kfm.add ("putenv", make_unique<kf_putenv> ());
+     kfm.add ("strtok", make_unique<kf_strtok> (rmm));
  
      register_known_fd_functions (kfm);
      register_known_file_functions (kfm);
*************** register_known_functions (known_function
*** 1059,1065 ****
         like this:
  	 extern int *___errno(void) __attribute__((__const__));
  	 #define errno (*(___errno()))
!        and OS X like this:
  	 extern int * __error(void);
  	 #define errno (*__error())
         and similarly __errno for newlib.
--- 2332,2338 ----
         like this:
  	 extern int *___errno(void) __attribute__((__const__));
  	 #define errno (*(___errno()))
!        and macOS like this:
  	 extern int * __error(void);
  	 #define errno (*__error())
         and similarly __errno for newlib.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/known-function-manager.cc gcc-14.1.0/gcc/analyzer/known-function-manager.cc
*** gcc-13.2.0/gcc/analyzer/known-function-manager.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/known-function-manager.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** known_function_manager::get_normal_built
*** 137,142 ****
--- 137,149 ----
    return m_combined_fns_arr[name];
  }
  
+ const known_function *
+ known_function_manager::
+ get_normal_builtin (const builtin_known_function *builtin_kf) const
+ {
+   return get_normal_builtin (builtin_kf->builtin_code ());
+ }
+ 
  /* Get any known_function matching IDENTIFIER, without type-checking.
     Return NULL if there isn't one.  */
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/known-function-manager.h gcc-14.1.0/gcc/analyzer/known-function-manager.h
*** gcc-13.2.0/gcc/analyzer/known-function-manager.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/known-function-manager.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** private:
*** 54,59 ****
--- 54,61 ----
    DISABLE_COPY_AND_ASSIGN (known_function_manager);
  
    const known_function *get_normal_builtin (enum built_in_function name) const;
+   const known_function *
+   get_normal_builtin (const builtin_known_function *builtin_kf) const;
    const known_function *get_by_identifier (tree identifier) const;
  
    /* Map from identifier to known_function instance.
*************** private:
*** 64,69 ****
--- 66,73 ----
    known_function *m_combined_fns_arr[CFN_LAST];
  };
  
+ extern std::unique_ptr<known_function> make_kf_strlen ();
+ 
  } // namespace ana
  
  #endif /* GCC_ANALYZER_KNOWN_FUNCTION_MANAGER_H */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/pending-diagnostic.cc gcc-14.1.0/gcc/analyzer/pending-diagnostic.cc
*** gcc-13.2.0/gcc/analyzer/pending-diagnostic.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/pending-diagnostic.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** evdesc::event_desc::formatted_print (con
*** 96,110 ****
  
    pp_show_color (pp) = m_colorize;
  
-   text_info ti;
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
    va_list ap;
    va_start (ap, fmt);
!   ti.format_spec = _(fmt);
!   ti.args_ptr = &ap;
!   ti.err_no = 0;
!   ti.x_data = NULL;
!   ti.m_richloc = &rich_loc;
    pp_format (pp, &ti);
    pp_output_formatted_text (pp);
    va_end (ap);
--- 96,105 ----
  
    pp_show_color (pp) = m_colorize;
  
    rich_location rich_loc (line_table, UNKNOWN_LOCATION);
    va_list ap;
    va_start (ap, fmt);
!   text_info ti (_(fmt), &ap, 0, nullptr, &rich_loc);
    pp_format (pp, &ti);
    pp_output_formatted_text (pp);
    va_end (ap);
*************** evdesc::event_desc::formatted_print (con
*** 114,119 ****
--- 109,159 ----
    return result;
  }
  
+ /* class diagnostic_emission_context.  */
+ 
+ /* Get the pending_diagnostic being emitted.  */
+ 
+ const pending_diagnostic &
+ diagnostic_emission_context::get_pending_diagnostic () const
+ {
+   return *m_sd.m_d.get ();
+ }
+ 
+ /* Emit a warning, using the rich_location, metadata, and the
+    pending_diagnostic's option.  */
+ 
+ bool
+ diagnostic_emission_context::warn (const char *gmsgid, ...)
+ {
+   const pending_diagnostic &pd = get_pending_diagnostic ();
+   auto_diagnostic_group d;
+   va_list ap;
+   va_start (ap, gmsgid);
+   const bool result = emit_diagnostic_valist_meta (DK_WARNING,
+ 						   &m_rich_loc, &m_metadata,
+ 						   pd.get_controlling_option (),
+ 						   gmsgid, &ap);
+   va_end (ap);
+   return result;
+ }
+ 
+ /* Emit a note, using the rich_location and metadata (and the
+    pending_diagnostic's option).  */
+ 
+ void
+ diagnostic_emission_context::inform (const char *gmsgid, ...)
+ {
+   const pending_diagnostic &pd = get_pending_diagnostic ();
+   auto_diagnostic_group d;
+   va_list ap;
+   va_start (ap, gmsgid);
+   emit_diagnostic_valist_meta (DK_NOTE,
+ 			       &m_rich_loc, &m_metadata,
+ 			       pd.get_controlling_option (),
+ 			       gmsgid, &ap);
+   va_end (ap);
+ }
+ 
  /* Return true if T1 and T2 are "the same" for the purposes of
     diagnostic deduplication.  */
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/pending-diagnostic.h gcc-14.1.0/gcc/analyzer/pending-diagnostic.h
*** gcc-13.2.0/gcc/analyzer/pending-diagnostic.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/pending-diagnostic.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,26 ****
--- 21,27 ----
  #ifndef GCC_ANALYZER_PENDING_DIAGNOSTIC_H
  #define GCC_ANALYZER_PENDING_DIAGNOSTIC_H
  
+ #include "diagnostic-metadata.h"
  #include "diagnostic-path.h"
  #include "analyzer/sm.h"
  
*************** struct final_event : public event_desc
*** 144,149 ****
--- 145,191 ----
  
  } /* end of namespace evdesc */
  
+ /*  A bundle of information for use by implementations of the
+     pending_diagnostic::emit vfunc.
+ 
+     The rich_location will have already been populated with a
+     diagnostic_path.  */
+ 
+ class diagnostic_emission_context
+ {
+ public:
+   diagnostic_emission_context (const saved_diagnostic &sd,
+ 			       rich_location &rich_loc,
+ 			       diagnostic_metadata &metadata,
+ 			       logger *logger)
+   : m_sd (sd),
+     m_rich_loc (rich_loc),
+     m_metadata (metadata),
+     m_logger (logger)
+   {
+   }
+ 
+   const pending_diagnostic &get_pending_diagnostic () const;
+ 
+   bool warn (const char *, ...) ATTRIBUTE_GCC_DIAG (2,3);
+   void inform (const char *, ...) ATTRIBUTE_GCC_DIAG (2,3);
+ 
+   location_t get_location () const { return m_rich_loc.get_loc (); }
+   logger *get_logger () const { return m_logger; }
+ 
+   void add_cwe (int cwe) { m_metadata.add_cwe (cwe); }
+   void add_rule (const diagnostic_metadata::rule &r)
+   {
+     m_metadata.add_rule (r);
+   }
+ 
+ private:
+   const saved_diagnostic &m_sd;
+   rich_location &m_rich_loc;
+   diagnostic_metadata &m_metadata;
+   logger *m_logger;
+ };
+ 
  /* An abstract base class for capturing information about a diagnostic in
     a form that is ready to emit at a later point (or be rejected).
     Each kind of diagnostic will have a concrete subclass of
*************** class pending_diagnostic
*** 177,186 ****
       path being explored.  By default, don't terminate the path.  */
    virtual bool terminate_path_p () const { return false; }
  
!   /* Vfunc for emitting the diagnostic.  The rich_location will have been
!      populated with a diagnostic_path.
       Return true if a diagnostic is actually emitted.  */
!   virtual bool emit (rich_location *) = 0;
  
    /* Hand-coded RTTI: get an ID for the subclass.  */
    virtual const char *get_kind () const = 0;
--- 219,227 ----
       path being explored.  By default, don't terminate the path.  */
    virtual bool terminate_path_p () const { return false; }
  
!   /* Vfunc for emitting the diagnostic.
       Return true if a diagnostic is actually emitted.  */
!   virtual bool emit (diagnostic_emission_context &) = 0;
  
    /* Hand-coded RTTI: get an ID for the subclass.  */
    virtual const char *get_kind () const = 0;
*************** class pending_diagnostic
*** 361,366 ****
--- 402,416 ----
      /* Default implementation: accept this path.  */
      return true;
    }
+ 
+   /* Vfunc for use in SARIF output to give pending_diagnostic subclasses
+      the opportunity to add diagnostic-specific properties to the SARIF
+      "result" object for the diagnostic.
+      This is intended for use when debugging a diagnostic.  */
+   virtual void maybe_add_sarif_properties (sarif_object &/*result_obj*/) const
+   {
+     /* Default no-op implementation.  */
+   }
  };
  
  /* A template to make it easier to make subclasses of pending_diagnostic.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/program-point.cc gcc-14.1.0/gcc/analyzer/program-point.cc
*** gcc-13.2.0/gcc/analyzer/program-point.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/program-point.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** function_point::final_stmt_p () const
*** 230,236 ****
  /* Create a function_point representing the entrypoint of function FUN.  */
  
  function_point
! function_point::from_function_entry (const supergraph &sg, function *fun)
  {
    return before_supernode (sg.get_node_for_function_entry (fun), NULL);
  }
--- 230,236 ----
  /* Create a function_point representing the entrypoint of function FUN.  */
  
  function_point
! function_point::from_function_entry (const supergraph &sg, const function &fun)
  {
    return before_supernode (sg.get_node_for_function_entry (fun), NULL);
  }
*************** public:
*** 256,263 ****
    debug_diagnostic_context ()
    {
      diagnostic_initialize (this, 0);
!     show_line_numbers_p = true;
!     show_caret = true;
    }
    ~debug_diagnostic_context ()
    {
--- 256,263 ----
    debug_diagnostic_context ()
    {
      diagnostic_initialize (this, 0);
!     m_source_printing.show_line_numbers_p = true;
!     m_source_printing.enabled = true;
    }
    ~debug_diagnostic_context ()
    {
*************** program_point::on_edge (exploded_graph &
*** 426,434 ****
        {
  	const cfg_superedge *cfg_sedge = as_a <const cfg_superedge *> (succ);
  
- 	/* Reject abnormal edges; we special-case setjmp/longjmp.  */
  	if (cfg_sedge->get_flags () & EDGE_ABNORMAL)
! 	  return false;
        }
        break;
  
--- 426,447 ----
        {
  	const cfg_superedge *cfg_sedge = as_a <const cfg_superedge *> (succ);
  
  	if (cfg_sedge->get_flags () & EDGE_ABNORMAL)
! 	  {
! 	    const supernode *src_snode = cfg_sedge->m_src;
! 	    if (gimple *last_stmt = src_snode->get_last_stmt ())
! 	      if (last_stmt->code == GIMPLE_GOTO)
! 		{
! 		  /* For the program_point aspect here, consider all
! 		     out-edges from goto stmts to be valid; we'll
! 		     consider state separately.  */
! 		  return true;
! 		}
! 
! 	    /* Reject other kinds of abnormal edges;
! 	       we special-case setjmp/longjmp.  */
! 	    return false;
! 	  }
        }
        break;
  
*************** program_point::origin (const region_mode
*** 685,691 ****
  program_point
  program_point::from_function_entry (const region_model_manager &mgr,
  				    const supergraph &sg,
! 				    function *fun)
  {
    return program_point (function_point::from_function_entry (sg, fun),
  			mgr.get_empty_call_string ());
--- 698,704 ----
  program_point
  program_point::from_function_entry (const region_model_manager &mgr,
  				    const supergraph &sg,
! 				    const function &fun)
  {
    return program_point (function_point::from_function_entry (sg, fun),
  			mgr.get_empty_call_string ());
diff -Nrcpad gcc-13.2.0/gcc/analyzer/program-point.h gcc-14.1.0/gcc/analyzer/program-point.h
*** gcc-13.2.0/gcc/analyzer/program-point.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/program-point.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 112,118 ****
    /* Factory functions for making various kinds of program_point.  */
  
    static function_point from_function_entry (const supergraph &sg,
! 					     function *fun);
  
    static function_point before_supernode (const supernode *supernode,
  					  const superedge *from_edge);
--- 112,118 ----
    /* Factory functions for making various kinds of program_point.  */
  
    static function_point from_function_entry (const supergraph &sg,
! 					     const function &fun);
  
    static function_point before_supernode (const supernode *supernode,
  					  const superedge *from_edge);
*************** public:
*** 252,258 ****
    static program_point origin (const region_model_manager &mgr);
    static program_point from_function_entry (const region_model_manager &mgr,
  					    const supergraph &sg,
! 					    function *fun);
  
    static program_point before_supernode (const supernode *supernode,
  					 const superedge *from_edge,
--- 252,258 ----
    static program_point origin (const region_model_manager &mgr);
    static program_point from_function_entry (const region_model_manager &mgr,
  					    const supergraph &sg,
! 					    const function &fun);
  
    static program_point before_supernode (const supernode *supernode,
  					 const superedge *from_edge,
diff -Nrcpad gcc-13.2.0/gcc/analyzer/program-state.cc gcc-14.1.0/gcc/analyzer/program-state.cc
*** gcc-13.2.0/gcc/analyzer/program-state.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/program-state.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** sm_state_map::clear_any_state (const sva
*** 526,531 ****
--- 526,539 ----
    m_map.remove (sval);
  }
  
+ /* Clear all per-svalue state within this state map.  */
+ 
+ void
+ sm_state_map::clear_all_per_svalue_state ()
+ {
+   m_map.empty ();
+ }
+ 
  /* Set the "global" state within this state map to STATE.  */
  
  void
*************** sm_state_map::on_svalue_leak (const sval
*** 552,560 ****
  {
    if (state_machine::state_t state = get_state (sval, ctxt->m_ext_state))
      {
!       if (!m_sm.can_purge_p (state))
  	ctxt->on_state_leak (m_sm, sval, state);
-       m_map.remove (sval);
      }
  }
  
--- 560,569 ----
  {
    if (state_machine::state_t state = get_state (sval, ctxt->m_ext_state))
      {
!       if (m_sm.can_purge_p (state))
! 	m_map.remove (sval);
!       else
  	ctxt->on_state_leak (m_sm, sval, state);
      }
  }
  
*************** sm_state_map::on_svalue_leak (const sval
*** 564,569 ****
--- 573,579 ----
  void
  sm_state_map::on_liveness_change (const svalue_set &live_svalues,
  				  const region_model *model,
+ 				  const extrinsic_state &ext_state,
  				  impl_region_model_context *ctxt)
  {
    svalue_set svals_to_unset;
*************** sm_state_map::on_liveness_change (const
*** 597,605 ****
--- 607,674 ----
        ctxt->on_state_leak (m_sm, sval, e.m_state);
      }
  
+   sm_state_map old_sm_map = *this;
+ 
    for (svalue_set::iterator iter = svals_to_unset.begin ();
         iter != svals_to_unset.end (); ++iter)
      m_map.remove (*iter);
+ 
+   /* For state machines like "taint" where states can be
+      alt-inherited from other svalues, ensure that state purging doesn't
+      make us lose sm-state.
+ 
+      Consider e.g.:
+ 
+      make_tainted(foo);
+      if (foo.field > 128)
+        return;
+      arr[foo.field].f1 = v1;
+ 
+      where the last line is:
+ 
+      (A): _t1 = foo.field;
+      (B): _t2 = _t1 * sizeof(arr[0]);
+      (C): [arr + _t2].f1 = val;
+ 
+      At (A), foo is 'tainted' and foo.field is 'has_ub'.
+      After (B), foo.field's value (in _t1) is no longer directly
+      within LIVE_SVALUES, so with state purging enabled, we would
+      erroneously purge the "has_ub" state from the svalue.
+ 
+      Given that _t2's value's state comes from _t1's value's state,
+      we need to preserve that information.
+ 
+      Hence for all svalues that have had their explicit sm-state unset,
+      having their sm-state being unset, determine if doing so has changed
+      their effective state, and if so, explicitly set their state.
+ 
+      For example, in the above, unsetting the "has_ub" for _t1's value means
+      that _t2's effective value changes from "has_ub" (from alt-inherited
+      from _t1's value) to "tainted" (inherited from "foo"'s value).
+ 
+      For such cases, preserve the effective state by explicitly setting the
+      new state.  In the above example, this means explicitly setting _t2's
+      value to the value ("has_ub") it was previously alt-inheriting from _t1's
+      value.  */
+   if (m_sm.has_alt_get_inherited_state_p ())
+     {
+       auto_vec<const svalue *> svalues_needing_state;
+       for (auto unset_sval : svals_to_unset)
+ 	{
+ 	  const state_machine::state_t old_state
+ 	    = old_sm_map.get_state (unset_sval, ext_state);
+ 	  const state_machine::state_t new_state
+ 	    = get_state (unset_sval, ext_state);
+ 	  if (new_state != old_state)
+ 	    svalues_needing_state.safe_push (unset_sval);
+ 	}
+       for (auto sval : svalues_needing_state)
+ 	{
+ 	  const state_machine::state_t old_state
+ 	    = old_sm_map.get_state (sval, ext_state);
+ 	  impl_set_state (sval, old_state, nullptr, ext_state);
+ 	}
+     }
  }
  
  /* Purge state from SVAL (in response to a call to an unknown function).  */
*************** program_state::program_state (const extr
*** 808,814 ****
      }
  }
  
! /* Attempt to to use R to replay SUMMARY into this object.
     Return true if it is possible.  */
  
  bool
--- 877,883 ----
      }
  }
  
! /* Attempt to use R to replay SUMMARY into this object.
     Return true if it is possible.  */
  
  bool
*************** program_state::to_json (const extrinsic_
*** 1074,1087 ****
  
  void
  program_state::push_frame (const extrinsic_state &ext_state ATTRIBUTE_UNUSED,
! 			   function *fun)
  {
    m_region_model->push_frame (fun, NULL, NULL);
  }
  
  /* Get the current function of this state.  */
  
! function *
  program_state::get_current_function () const
  {
    return m_region_model->get_current_function ();
--- 1143,1156 ----
  
  void
  program_state::push_frame (const extrinsic_state &ext_state ATTRIBUTE_UNUSED,
! 			   const function &fun)
  {
    m_region_model->push_frame (fun, NULL, NULL);
  }
  
  /* Get the current function of this state.  */
  
! const function *
  program_state::get_current_function () const
  {
    return m_region_model->get_current_function ();
*************** program_state::on_edge (exploded_graph &
*** 1145,1159 ****
  				  this,
  				  uncertainty, &path_ctxt,
  				  last_stmt);
    if (!m_region_model->maybe_update_for_edge (*succ,
  					      last_stmt,
! 					      &ctxt, NULL))
      {
-       logger * const logger = eg.get_logger ();
        if (logger)
! 	logger->log ("edge to SN: %i is impossible"
! 		     " due to region_model constraints",
! 		     succ->m_dest->m_index);
        return false;
      }
    if (terminated)
--- 1214,1235 ----
  				  this,
  				  uncertainty, &path_ctxt,
  				  last_stmt);
+   std::unique_ptr<rejected_constraint> rc;
+   logger * const logger = eg.get_logger ();
    if (!m_region_model->maybe_update_for_edge (*succ,
  					      last_stmt,
! 					      &ctxt,
! 					      logger ? &rc : nullptr))
      {
        if (logger)
! 	{
! 	  logger->start_log_line ();
! 	  logger->log_partial ("edge to SN: %i is impossible"
! 			       " due to region_model constraint: ",
! 			       succ->m_dest->m_index);
! 	  rc->dump_to_pp (logger->get_printer ());
! 	  logger->end_log_line ();
! 	}
        return false;
      }
    if (terminated)
*************** program_state::detect_leaks (const progr
*** 1549,1555 ****
  	dest_state.m_region_model->unset_dynamic_extents (reg);
  }
  
! /* Attempt to to use R to replay SUMMARY into this object.
     Return true if it is possible.  */
  
  bool
--- 1625,1631 ----
  	dest_state.m_region_model->unset_dynamic_extents (reg);
  }
  
! /* Attempt to use R to replay SUMMARY into this object.
     Return true if it is possible.  */
  
  bool
diff -Nrcpad gcc-13.2.0/gcc/analyzer/program-state.h gcc-14.1.0/gcc/analyzer/program-state.h
*** gcc-13.2.0/gcc/analyzer/program-state.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/program-state.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 146,151 ****
--- 146,152 ----
  		       const svalue *origin,
  		       const extrinsic_state &ext_state);
    void clear_any_state (const svalue *sval);
+   void clear_all_per_svalue_state ();
  
    void set_global_state (state_machine::state_t state);
    state_machine::state_t get_global_state () const;
*************** public:
*** 154,159 ****
--- 155,161 ----
  		       impl_region_model_context *ctxt);
    void on_liveness_change (const svalue_set &live_svalues,
  			   const region_model *model,
+ 			   const extrinsic_state &ext_state,
  			   impl_region_model_context *ctxt);
  
    void on_unknown_change (const svalue *sval,
*************** public:
*** 224,231 ****
  
    json::object *to_json (const extrinsic_state &ext_state) const;
  
!   void push_frame (const extrinsic_state &ext_state, function *fun);
!   function * get_current_function () const;
  
    void push_call (exploded_graph &eg,
  		  exploded_node *enode,
--- 226,233 ----
  
    json::object *to_json (const extrinsic_state &ext_state) const;
  
!   void push_frame (const extrinsic_state &ext_state, const function &fun);
!   const function * get_current_function () const;
  
    void push_call (exploded_graph &eg,
  		  exploded_node *enode,
diff -Nrcpad gcc-13.2.0/gcc/analyzer/ranges.cc gcc-14.1.0/gcc/analyzer/ranges.cc
*** gcc-13.2.0/gcc/analyzer/ranges.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/ranges.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,357 ----
+ /* Symbolic offsets and ranges.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #define INCLUDE_MEMORY
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tree.h"
+ #include "diagnostic-core.h"
+ #include "gimple-pretty-print.h"
+ #include "function.h"
+ #include "basic-block.h"
+ #include "gimple.h"
+ #include "gimple-iterator.h"
+ #include "diagnostic-core.h"
+ #include "graphviz.h"
+ #include "options.h"
+ #include "cgraph.h"
+ #include "tree-dfa.h"
+ #include "stringpool.h"
+ #include "convert.h"
+ #include "target.h"
+ #include "fold-const.h"
+ #include "tree-pretty-print.h"
+ #include "bitmap.h"
+ #include "analyzer/analyzer.h"
+ #include "analyzer/analyzer-logging.h"
+ #include "ordered-hash-map.h"
+ #include "options.h"
+ #include "analyzer/supergraph.h"
+ #include "sbitmap.h"
+ #include "analyzer/call-string.h"
+ #include "analyzer/program-point.h"
+ #include "analyzer/store.h"
+ #include "analyzer/region-model.h"
+ #include "analyzer/constraint-manager.h"
+ #include "analyzer/analyzer-selftests.h"
+ #include "analyzer/ranges.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ namespace ana {
+ 
+ /* class symbolic_byte_offset.  */
+ 
+ symbolic_byte_offset::symbolic_byte_offset (int i, region_model_manager &mgr)
+ : m_num_bytes_sval (mgr.get_or_create_int_cst (size_type_node, i))
+ {
+ }
+ 
+ symbolic_byte_offset::symbolic_byte_offset (const svalue *num_bytes_sval)
+ : m_num_bytes_sval (num_bytes_sval)
+ {
+ }
+ 
+ symbolic_byte_offset::symbolic_byte_offset (region_offset offset,
+ 					    region_model_manager &mgr)
+ {
+   if (offset.concrete_p ())
+     {
+       bit_offset_t num_bits = offset.get_bit_offset ();
+       gcc_assert (num_bits % BITS_PER_UNIT == 0);
+       byte_offset_t num_bytes = num_bits / BITS_PER_UNIT;
+       m_num_bytes_sval = mgr.get_or_create_int_cst (size_type_node, num_bytes);
+     }
+   else
+     m_num_bytes_sval = offset.get_symbolic_byte_offset ();
+ }
+ 
+ void
+ symbolic_byte_offset::dump_to_pp (pretty_printer *pp, bool simple) const
+ {
+   pp_string (pp, "byte ");
+   m_num_bytes_sval->dump_to_pp (pp, simple);
+ }
+ 
+ void
+ symbolic_byte_offset::dump (bool simple) const
+ {
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   pp_show_color (&pp) = pp_show_color (global_dc->printer);
+   pp.buffer->stream = stderr;
+   dump_to_pp (&pp, simple);
+   pp_newline (&pp);
+   pp_flush (&pp);
+ }
+ 
+ json::value *
+ symbolic_byte_offset::to_json () const
+ {
+   return m_num_bytes_sval->to_json ();
+ }
+ 
+ tree
+ symbolic_byte_offset::maybe_get_constant () const
+ {
+   return m_num_bytes_sval->maybe_get_constant ();
+ }
+ 
+ /* class symbolic_byte_range.  */
+ 
+ symbolic_byte_range::symbolic_byte_range (region_offset start,
+ 					  const svalue *num_bytes,
+ 					  region_model_manager &mgr)
+ : m_start (start, mgr),
+   m_size (num_bytes)
+ {
+ }
+ 
+ void
+ symbolic_byte_range::dump_to_pp (pretty_printer *pp,
+ 				 bool simple,
+ 				 region_model_manager &mgr) const
+ {
+   if (empty_p ())
+     {
+       pp_string (pp, "empty");
+       return;
+     }
+ 
+   if (tree size_cst = m_size.maybe_get_constant ())
+     if (integer_onep (size_cst))
+       {
+ 	pp_string (pp, "byte ");
+ 	m_start.get_svalue ()->dump_to_pp (pp, simple);
+ 	return;
+       }
+ 
+   pp_string (pp, "bytes ");
+   m_start.get_svalue ()->dump_to_pp (pp, simple);
+   pp_string (pp, " to ");
+   get_last_byte_offset (mgr).get_svalue ()->dump_to_pp (pp, simple);
+ }
+ 
+ void
+ symbolic_byte_range::dump (bool simple, region_model_manager &mgr) const
+ {
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   pp_show_color (&pp) = pp_show_color (global_dc->printer);
+   pp.buffer->stream = stderr;
+   dump_to_pp (&pp, simple, mgr);
+   pp_newline (&pp);
+   pp_flush (&pp);
+ }
+ 
+ json::value *
+ symbolic_byte_range::to_json () const
+ {
+   json::object *obj = new json::object ();
+   obj->set ("start", m_start.to_json ());
+   obj->set ("size", m_size.to_json ());
+   return obj;
+ }
+ 
+ bool
+ symbolic_byte_range::empty_p () const
+ {
+   tree cst = m_size.maybe_get_constant ();
+   if (!cst)
+     return false;
+   return zerop (cst);
+ }
+ 
+ symbolic_byte_offset
+ symbolic_byte_range::get_last_byte_offset (region_model_manager &mgr) const
+ {
+   gcc_assert (!empty_p ());
+   const symbolic_byte_offset one (1, mgr);
+   return symbolic_byte_offset
+     (mgr.get_or_create_binop (size_type_node,
+ 			      MINUS_EXPR,
+ 			      get_next_byte_offset (mgr).get_svalue (),
+ 			      one.get_svalue ()));
+ }
+ 
+ symbolic_byte_offset
+ symbolic_byte_range::get_next_byte_offset (region_model_manager &mgr) const
+ {
+   return symbolic_byte_offset (mgr.get_or_create_binop (size_type_node,
+ 							PLUS_EXPR,
+ 							m_start.get_svalue (),
+ 							m_size.get_svalue ()));
+ }
+ 
+ /* Attempt to determine if THIS range intersects OTHER,
+    using constraints from MODEL.  */
+ 
+ tristate
+ symbolic_byte_range::intersection (const symbolic_byte_range &other,
+ 				   const region_model &model) const
+ {
+   /* If either is empty, then there is no intersection.  */
+   if (empty_p ())
+     return tristate::TS_FALSE;
+   if (other.empty_p ())
+     return tristate::TS_FALSE;
+ 
+   /* For brevity, consider THIS to be "range A", and OTHER to be "range B".  */
+ 
+   region_model_manager *mgr = model.get_manager ();
+ 
+   const svalue *first_sval_a = m_start.get_svalue ();
+   const svalue *first_sval_b = other.m_start.get_svalue ();
+   const svalue *last_sval_a = get_last_byte_offset (*mgr).get_svalue ();
+   const svalue *last_sval_b = other.get_last_byte_offset (*mgr).get_svalue ();
+ 
+   if (m_size.get_svalue ()->get_kind () == SK_UNKNOWN
+       || other.m_size.get_svalue ()->get_kind () == SK_UNKNOWN)
+     {
+       if (first_sval_a == first_sval_b)
+ 	return tristate::TS_TRUE;
+       else
+ 	return tristate::TS_UNKNOWN;
+     }
+ 
+   if (first_sval_a == first_sval_b)
+     return tristate::TS_TRUE;
+ 
+   /* Is B fully before A?  */
+   tristate b_fully_before_a = model.eval_condition (last_sval_b,
+ 						    LT_EXPR,
+ 						    first_sval_a);
+   /* Is B fully after A?  */
+   tristate b_fully_after_a = model.eval_condition (first_sval_b,
+ 						   GT_EXPR,
+ 						   last_sval_a);
+ 
+   if (b_fully_before_a.is_true ()
+       || b_fully_after_a.is_true ())
+     return tristate::TS_FALSE;
+ 
+   if (b_fully_before_a.is_unknown ()
+       || b_fully_after_a.is_unknown ())
+     return tristate::TS_UNKNOWN;
+ 
+   return tristate::TS_TRUE;
+ }
+ 
+ #if CHECKING_P
+ 
+ namespace selftest {
+ 
+ static void test_intersects (void)
+ {
+   region_model_manager mgr;
+   region_model m (&mgr);
+ 
+   /* Test various concrete ranges.  */
+   symbolic_byte_offset zero (0, mgr);
+   symbolic_byte_offset one (1, mgr);
+   symbolic_byte_offset five (5, mgr);
+   symbolic_byte_offset nine (9, mgr);
+   symbolic_byte_offset ten (10, mgr);
+ 
+   symbolic_byte_range r0_9 (zero, ten);
+   symbolic_byte_range r0 (zero, one);
+   symbolic_byte_range r5_9 (five, five);
+   symbolic_byte_range r9 (nine, one);
+   symbolic_byte_range r10 (ten, one);
+   symbolic_byte_range r10_19 (ten, ten);
+ 
+   ASSERT_EQ (r0_9.get_start_byte_offset (), zero);
+   ASSERT_EQ (r0_9.get_size_in_bytes (), ten);
+   ASSERT_EQ (r0_9.get_next_byte_offset (mgr), ten);
+   ASSERT_EQ (r0_9.get_last_byte_offset (mgr), nine);
+ 
+   symbolic_byte_range concrete_empty (zero, zero);
+   ASSERT_TRUE (concrete_empty.empty_p ());
+ 
+   ASSERT_EQ (r0_9.intersection (r0, m), tristate::TS_TRUE);
+   ASSERT_EQ (r0.intersection (r0_9, m), tristate::TS_TRUE);
+   ASSERT_EQ (r0_9.intersection (r9, m), tristate::TS_TRUE);
+   ASSERT_EQ (r9.intersection (r0_9, m), tristate::TS_TRUE);
+   ASSERT_EQ (r0_9.intersection (r10, m), tristate::TS_FALSE);
+   ASSERT_EQ (r10.intersection (r0_9, m), tristate::TS_FALSE);
+   ASSERT_EQ (concrete_empty.intersection (r0_9, m), tristate::TS_FALSE);
+   ASSERT_EQ (r0_9.intersection (concrete_empty, m), tristate::TS_FALSE);
+ 
+   ASSERT_EQ (r5_9.intersection (r0, m), tristate::TS_FALSE);
+   ASSERT_EQ (r0.intersection (r5_9, m), tristate::TS_FALSE);
+   ASSERT_EQ (r9.intersection (r5_9, m), tristate::TS_TRUE);
+   ASSERT_EQ (r10.intersection (r5_9, m), tristate::TS_FALSE);
+ 
+   /* Test various symbolic ranges.  */
+   tree x = build_global_decl ("x", size_type_node);
+   const svalue *x_init_sval = m.get_rvalue (x, nullptr);
+   tree y = build_global_decl ("y", size_type_node);
+   const svalue *y_init_sval = m.get_rvalue (y, nullptr);
+ 
+   symbolic_byte_range r0_x_minus_1 (zero, x_init_sval);
+   symbolic_byte_range rx (x_init_sval, one);
+   symbolic_byte_range r0_y_minus_1 (zero, y_init_sval);
+   symbolic_byte_range ry (y_init_sval, one);
+   symbolic_byte_range rx_x_plus_y_minus_1 (x_init_sval, y_init_sval);
+ 
+   symbolic_byte_range symbolic_empty (x_init_sval, zero);
+   ASSERT_TRUE (symbolic_empty.empty_p ());
+ 
+   ASSERT_EQ (rx_x_plus_y_minus_1.get_start_byte_offset (), x_init_sval);
+   ASSERT_EQ (rx_x_plus_y_minus_1.get_size_in_bytes (), y_init_sval);
+   ASSERT_EQ
+     (rx_x_plus_y_minus_1.get_next_byte_offset (mgr).get_svalue ()->get_kind (),
+      SK_BINOP);
+   ASSERT_EQ
+     (rx_x_plus_y_minus_1.get_last_byte_offset (mgr).get_svalue ()->get_kind (),
+      SK_BINOP);
+ 
+   ASSERT_EQ (rx.intersection (ry, m), tristate::TS_UNKNOWN);
+   ASSERT_EQ (rx.intersection (concrete_empty, m), tristate::TS_FALSE);
+   ASSERT_EQ (concrete_empty.intersection (rx, m), tristate::TS_FALSE);
+   ASSERT_EQ (rx.intersection (symbolic_empty, m), tristate::TS_FALSE);
+   ASSERT_EQ (symbolic_empty.intersection (rx, m), tristate::TS_FALSE);
+   ASSERT_EQ (r0_x_minus_1.intersection (r0, m), tristate::TS_TRUE);
+ #if 0
+   ASSERT_EQ (r0_x_minus_1.intersection (rx, m), tristate::TS_FALSE);
+   /* Fails (with UNKNOWN): b_fully_after_a is UNKNOWN, when it could
+      be TRUE: last of A is (x - 1), but it's not necessarily true that
+      X > (x - 1), for the case where x is (unsigned)0.  */
+ #endif
+   ASSERT_EQ (r0_x_minus_1.intersection (r0_y_minus_1, m), tristate::TS_TRUE);
+   // TODO: etc
+ }
+ 
+ /* Run all of the selftests within this file.  */
+ 
+ void
+ analyzer_ranges_cc_tests ()
+ {
+   test_intersects ();
+ }
+ 
+ } // namespace selftest
+ 
+ #endif /* CHECKING_P */
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/ranges.h gcc-14.1.0/gcc/analyzer/ranges.h
*** gcc-13.2.0/gcc/analyzer/ranges.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/ranges.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,100 ----
+ /* Symbolic offsets and ranges.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_ANALYZER_RANGES_H
+ #define GCC_ANALYZER_RANGES_H
+ 
+ namespace ana {
+ 
+ /* Wrapper around an svalue for a value measured in bytes.  */
+ 
+ class symbolic_byte_offset
+ {
+ public:
+   explicit symbolic_byte_offset (int i, region_model_manager &mgr);
+   symbolic_byte_offset (const svalue *num_bytes_sval);
+   explicit symbolic_byte_offset (region_offset offset,
+ 				 region_model_manager &mgr);
+ 
+   const svalue *get_svalue () const { return m_num_bytes_sval; }
+   tree maybe_get_constant () const;
+ 
+   void dump_to_pp (pretty_printer *pp, bool) const;
+   void dump (bool) const;
+ 
+   json::value *to_json () const;
+ 
+   bool operator== (const symbolic_byte_offset &other) const
+   {
+    return m_num_bytes_sval == other.m_num_bytes_sval;
+   }
+ 
+ private:
+   const svalue *m_num_bytes_sval;
+ };
+ 
+ /* A range of byte offsets, where both the start and size of the
+    range can be symbolic.  */
+ 
+ class symbolic_byte_range
+ {
+ public:
+   symbolic_byte_range (symbolic_byte_offset start,
+ 		       symbolic_byte_offset size)
+   : m_start (start),
+     m_size (size)
+   {
+   }
+ 
+   symbolic_byte_range (region_offset start,
+ 		       const svalue *num_bytes,
+ 		       region_model_manager &mgr);
+ 
+   void dump_to_pp (pretty_printer *pp,
+ 		   bool simple,
+ 		   region_model_manager &mgr) const;
+   void dump (bool, region_model_manager &mgr) const;
+ 
+   json::value *to_json () const;
+ 
+   bool empty_p () const;
+ 
+   symbolic_byte_offset get_start_byte_offset () const
+   {
+     return m_start;
+   }
+   symbolic_byte_offset get_last_byte_offset (region_model_manager &mgr) const;
+   symbolic_byte_offset get_size_in_bytes () const
+   {
+     return m_size;
+   }
+   symbolic_byte_offset get_next_byte_offset (region_model_manager &mgr) const;
+ 
+   tristate intersection (const symbolic_byte_range &other,
+ 			 const region_model &model) const;
+ 
+ private:
+   symbolic_byte_offset m_start;
+   symbolic_byte_offset m_size;
+ };
+ 
+ } // namespace ana
+ 
+ #endif /* GCC_ANALYZER_RANGES_H */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/reachability.h gcc-14.1.0/gcc/analyzer/reachability.h
*** gcc-13.2.0/gcc/analyzer/reachability.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/reachability.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Digraph reachability.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Digraph reachability.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/record-layout.cc gcc-14.1.0/gcc/analyzer/record-layout.cc
*** gcc-13.2.0/gcc/analyzer/record-layout.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/record-layout.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,126 ----
+ /* Implementation of class record_layout.
+    Copyright (C) 2022-2024 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #define INCLUDE_MEMORY
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tree.h"
+ #include "function.h"
+ #include "basic-block.h"
+ #include "gimple.h"
+ #include "diagnostic-core.h"
+ #include "diagnostic.h"
+ #include "tree-diagnostic.h"
+ #include "analyzer/analyzer.h"
+ #include "analyzer/record-layout.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ namespace ana {
+ 
+ /* class record_layout.  */
+ 
+ record_layout::record_layout (tree record_type)
+ {
+   gcc_assert (TREE_CODE (record_type) == RECORD_TYPE);
+ 
+   for (tree iter = TYPE_FIELDS (record_type); iter != NULL_TREE;
+        iter = DECL_CHAIN (iter))
+     {
+       if (TREE_CODE (iter) == FIELD_DECL)
+ 	{
+ 	  int iter_field_offset = int_bit_position (iter);
+ 	  bit_size_t size_in_bits;
+ 	  if (!int_size_in_bits (TREE_TYPE (iter), &size_in_bits))
+ 	    size_in_bits = 0;
+ 
+ 	  maybe_pad_to (iter_field_offset);
+ 
+ 	  /* Add field.  */
+ 	  m_items.safe_push (item (bit_range (iter_field_offset,
+ 					      size_in_bits),
+ 				   iter, false));
+ 	}
+     }
+ 
+   /* Add any trailing padding.  */
+   bit_size_t size_in_bits;
+   if (int_size_in_bits (record_type, &size_in_bits))
+     maybe_pad_to (size_in_bits);
+ }
+ 
+ void
+ record_layout::dump_to_pp (pretty_printer *pp) const
+ {
+   unsigned i;
+   item *it;
+   FOR_EACH_VEC_ELT (m_items, i, it)
+     {
+       it->dump_to_pp (pp);
+       pp_newline (pp);
+     }
+ }
+ 
+ void
+ record_layout::dump () const
+ {
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   pp.buffer->stream = stderr;
+   dump_to_pp (&pp);
+   pp_flush (&pp);
+ }
+ 
+ const record_layout::item *
+ record_layout::get_item_at (bit_offset_t offset) const
+ {
+   unsigned i;
+   item *it;
+   FOR_EACH_VEC_ELT (m_items, i, it)
+     if (it->contains_p (offset))
+       return it;
+   return NULL;
+ }
+ 
+ /* Subroutine of ctor.  Add padding item to NEXT_OFFSET if necessary.  */
+ 
+ void
+ record_layout::maybe_pad_to (bit_offset_t next_offset)
+ {
+   if (m_items.length () > 0)
+     {
+       const item &last_item = m_items[m_items.length () - 1];
+       bit_offset_t offset_after_last_item
+ 	= last_item.get_next_bit_offset ();
+       if (next_offset > offset_after_last_item)
+ 	{
+ 	  bit_size_t padding_size
+ 	    = next_offset - offset_after_last_item;
+ 	  m_items.safe_push (item (bit_range (offset_after_last_item,
+ 					      padding_size),
+ 				   last_item.m_field, true));
+ 	}
+     }
+ }
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER  */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/record-layout.h gcc-14.1.0/gcc/analyzer/record-layout.h
*** gcc-13.2.0/gcc/analyzer/record-layout.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/record-layout.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,91 ----
+ /* Declaration of class record_layout.
+    Copyright (C) 2022-2024 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_ANALYZER_RECORD_LAYOUT_H
+ #define GCC_ANALYZER_RECORD_LAYOUT_H
+ 
+ #include "analyzer/store.h"
+ 
+ namespace ana {
+ 
+ /* Information of the layout of a RECORD_TYPE, capturing it as a vector
+    of items, where each item is either a field or padding.  */
+ 
+ class record_layout
+ {
+ public:
+   /* An item within a record; either a field, or padding after a field.  */
+   struct item
+   {
+   public:
+     item (const bit_range &br,
+ 	  tree field,
+ 	  bool is_padding)
+     : m_bit_range (br),
+       m_field (field),
+       m_is_padding (is_padding)
+     {
+     }
+ 
+     bit_offset_t get_start_bit_offset () const
+     {
+       return m_bit_range.get_start_bit_offset ();
+     }
+     bit_offset_t get_next_bit_offset () const
+     {
+       return m_bit_range.get_next_bit_offset ();
+     }
+ 
+     bool contains_p (bit_offset_t offset) const
+     {
+       return m_bit_range.contains_p (offset);
+     }
+ 
+     void dump_to_pp (pretty_printer *pp) const
+     {
+       if (m_is_padding)
+ 	pp_printf (pp, "padding after %qD", m_field);
+       else
+ 	pp_printf (pp, "%qD", m_field);
+       pp_string (pp, ", ");
+       m_bit_range.dump_to_pp (pp);
+     }
+ 
+     bit_range m_bit_range;
+     tree m_field;
+     bool m_is_padding;
+   };
+ 
+   record_layout (tree record_type);
+ 
+   void dump_to_pp (pretty_printer *pp) const;
+   DEBUG_FUNCTION void dump () const;
+ 
+   const record_layout::item *get_item_at (bit_offset_t offset) const;
+ 
+ private:
+   void maybe_pad_to (bit_offset_t next_offset);
+ 
+   auto_vec<item> m_items;
+ };
+ 
+ } // namespace ana
+ 
+ #endif /* GCC_ANALYZER_RECORD_LAYOUT_H */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region-model-asm.cc gcc-14.1.0/gcc/analyzer/region-model-asm.cc
*** gcc-13.2.0/gcc/analyzer/region-model-asm.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region-model-asm.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Handling inline asm in the analyzer.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Handling inline asm in the analyzer.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region-model-manager.cc gcc-14.1.0/gcc/analyzer/region-model-manager.cc
*** gcc-13.2.0/gcc/analyzer/region-model-manager.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region-model-manager.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** namespace ana {
*** 62,81 ****
  
  region_model_manager::region_model_manager (logger *logger)
  : m_logger (logger),
    m_empty_call_string (),
!   m_next_region_id (0),
!   m_root_region (alloc_region_id ()),
!   m_stack_region (alloc_region_id (), &m_root_region),
!   m_heap_region (alloc_region_id (), &m_root_region),
    m_unknown_NULL (NULL),
    m_checking_feasibility (false),
    m_max_complexity (0, 0),
!   m_code_region (alloc_region_id (), &m_root_region),
    m_fndecls_map (), m_labels_map (),
!   m_globals_region (alloc_region_id (), &m_root_region),
    m_globals_map (),
!   m_thread_local_region (alloc_region_id (), &m_root_region),
!   m_errno_region (alloc_region_id (), &m_thread_local_region),
    m_store_mgr (this),
    m_range_mgr (new bounded_ranges_manager ()),
    m_known_fn_mgr (logger)
--- 62,81 ----
  
  region_model_manager::region_model_manager (logger *logger)
  : m_logger (logger),
+   m_next_symbol_id (0),
    m_empty_call_string (),
!   m_root_region (alloc_symbol_id ()),
!   m_stack_region (alloc_symbol_id (), &m_root_region),
!   m_heap_region (alloc_symbol_id (), &m_root_region),
    m_unknown_NULL (NULL),
    m_checking_feasibility (false),
    m_max_complexity (0, 0),
!   m_code_region (alloc_symbol_id (), &m_root_region),
    m_fndecls_map (), m_labels_map (),
!   m_globals_region (alloc_symbol_id (), &m_root_region),
    m_globals_map (),
!   m_thread_local_region (alloc_symbol_id (), &m_root_region),
!   m_errno_region (alloc_symbol_id (), &m_thread_local_region),
    m_store_mgr (this),
    m_range_mgr (new bounded_ranges_manager ()),
    m_known_fn_mgr (logger)
*************** region_model_manager::reject_if_too_comp
*** 185,190 ****
--- 185,200 ----
        return false;
      }
  
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   sval->dump_to_pp (&pp, true);
+   if (warning_at (input_location, OPT_Wanalyzer_symbol_too_complex,
+ 		  "symbol too complicated: %qs",
+ 		  pp_formatted_text (&pp)))
+     inform (input_location,
+ 	    "max_depth %i exceeds --param=analyzer-max-svalue-depth=%i",
+ 	    c.m_max_depth, param_analyzer_max_svalue_depth);
+ 
    delete sval;
    return true;
  }
*************** region_model_manager::reject_if_too_comp
*** 212,240 ****
     of trees  */
  
  const svalue *
! region_model_manager::get_or_create_constant_svalue (tree cst_expr)
  {
    gcc_assert (cst_expr);
    gcc_assert (CONSTANT_CLASS_P (cst_expr));
  
!   constant_svalue **slot = m_constants_map.get (cst_expr);
    if (slot)
      return *slot;
!   constant_svalue *cst_sval = new constant_svalue (cst_expr);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (cst_sval);
!   m_constants_map.put (cst_expr, cst_sval);
    return cst_sval;
  }
  
  /* Return the svalue * for a constant_svalue for the INTEGER_CST
     for VAL of type TYPE, creating it if necessary.  */
  
  const svalue *
! region_model_manager::get_or_create_int_cst (tree type, poly_int64 val)
  {
!   gcc_assert (type);
!   tree tree_cst = build_int_cst (type, val);
!   return get_or_create_constant_svalue (tree_cst);
  }
  
  /* Return the svalue * for the constant_svalue for the NULL pointer
--- 222,264 ----
     of trees  */
  
  const svalue *
! region_model_manager::get_or_create_constant_svalue (tree type, tree cst_expr)
  {
    gcc_assert (cst_expr);
    gcc_assert (CONSTANT_CLASS_P (cst_expr));
+   gcc_assert (type == TREE_TYPE (cst_expr) || type == NULL_TREE);
  
!   constant_svalue::key_t key (type, cst_expr);
!   constant_svalue **slot = m_constants_map.get (key);
    if (slot)
      return *slot;
!   constant_svalue *cst_sval
!     = new constant_svalue (alloc_symbol_id (), type, cst_expr);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (cst_sval);
!   m_constants_map.put (key, cst_sval);
    return cst_sval;
  }
  
+ const svalue *
+ region_model_manager::get_or_create_constant_svalue (tree cst_expr)
+ {
+   return get_or_create_constant_svalue (TREE_TYPE (cst_expr), cst_expr);
+ }
+ 
  /* Return the svalue * for a constant_svalue for the INTEGER_CST
     for VAL of type TYPE, creating it if necessary.  */
  
  const svalue *
! region_model_manager::get_or_create_int_cst (tree type,
! 					     const poly_wide_int_ref &cst)
  {
!   tree effective_type = type;
!   if (!type)
!     effective_type = ptrdiff_type_node;
!   gcc_assert (INTEGRAL_TYPE_P (effective_type)
! 	      || POINTER_TYPE_P (effective_type));
!   tree tree_cst = wide_int_to_tree (effective_type, cst);
!   return get_or_create_constant_svalue (type, tree_cst);
  }
  
  /* Return the svalue * for the constant_svalue for the NULL pointer
*************** region_model_manager::get_or_create_unkn
*** 266,279 ****
    if (type == NULL_TREE)
      {
        if (!m_unknown_NULL)
! 	m_unknown_NULL = new unknown_svalue (type);
        return m_unknown_NULL;
      }
  
    unknown_svalue **slot = m_unknowns_map.get (type);
    if (slot)
      return *slot;
!   unknown_svalue *sval = new unknown_svalue (type);
    m_unknowns_map.put (type, sval);
    return sval;
  }
--- 290,303 ----
    if (type == NULL_TREE)
      {
        if (!m_unknown_NULL)
! 	m_unknown_NULL = new unknown_svalue (alloc_symbol_id (), type);
        return m_unknown_NULL;
      }
  
    unknown_svalue **slot = m_unknowns_map.get (type);
    if (slot)
      return *slot;
!   unknown_svalue *sval = new unknown_svalue (alloc_symbol_id (), type);
    m_unknowns_map.put (type, sval);
    return sval;
  }
*************** region_model_manager::get_or_create_unkn
*** 283,289 ****
  const svalue *
  region_model_manager::create_unique_svalue (tree type)
  {
!   svalue *sval = new placeholder_svalue (type, "unique");
    m_managed_dynamic_svalues.safe_push (sval);
    return sval;
  }
--- 307,313 ----
  const svalue *
  region_model_manager::create_unique_svalue (tree type)
  {
!   svalue *sval = new placeholder_svalue (alloc_symbol_id (), type, "unique");
    m_managed_dynamic_svalues.safe_push (sval);
    return sval;
  }
*************** region_model_manager::create_unique_sval
*** 292,300 ****
     necessary.  */
  
  const svalue *
! region_model_manager::get_or_create_initial_value (const region *reg)
  {
!   if (!reg->can_have_initial_svalue_p ())
      return get_or_create_poisoned_svalue (POISON_KIND_UNINIT,
  					  reg->get_type ());
  
--- 316,325 ----
     necessary.  */
  
  const svalue *
! region_model_manager::get_or_create_initial_value (const region *reg,
! 						   bool check_poisoned)
  {
!   if (!reg->can_have_initial_svalue_p () && check_poisoned)
      return get_or_create_poisoned_svalue (POISON_KIND_UNINIT,
  					  reg->get_type ());
  
*************** region_model_manager::get_or_create_init
*** 306,318 ****
  				 get_or_create_initial_value (original_reg));
      }
  
    /* INIT_VAL (*UNKNOWN_PTR) -> UNKNOWN_VAL.  */
    if (reg->symbolic_for_unknown_ptr_p ())
      return get_or_create_unknown_svalue (reg->get_type ());
  
    if (initial_svalue **slot = m_initial_values_map.get (reg))
      return *slot;
!   initial_svalue *initial_sval = new initial_svalue (reg->get_type (), reg);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (initial_sval);
    m_initial_values_map.put (reg, initial_sval);
    return initial_sval;
--- 331,363 ----
  				 get_or_create_initial_value (original_reg));
      }
  
+   /* Simplify:
+        INIT_VAL(ELEMENT_REG(STRING_REG), CONSTANT_SVAL)
+      to:
+        CONSTANT_SVAL(STRING[N]).  */
+   if (const element_region *element_reg = reg->dyn_cast_element_region ())
+     if (tree cst_idx = element_reg->get_index ()->maybe_get_constant ())
+       if (const string_region *string_reg
+ 	  = element_reg->get_parent_region ()->dyn_cast_string_region ())
+ 	if (tree_fits_shwi_p (cst_idx))
+ 	  {
+ 	    HOST_WIDE_INT idx = tree_to_shwi (cst_idx);
+ 	    tree string_cst = string_reg->get_string_cst ();
+ 	    if (idx >= 0 && idx <= TREE_STRING_LENGTH (string_cst))
+ 	      {
+ 		int ch = TREE_STRING_POINTER (string_cst)[idx];
+ 		return get_or_create_int_cst (reg->get_type (), ch);
+ 	      }
+ 	  }
+ 
    /* INIT_VAL (*UNKNOWN_PTR) -> UNKNOWN_VAL.  */
    if (reg->symbolic_for_unknown_ptr_p ())
      return get_or_create_unknown_svalue (reg->get_type ());
  
    if (initial_svalue **slot = m_initial_values_map.get (reg))
      return *slot;
!   initial_svalue *initial_sval
!     = new initial_svalue (alloc_symbol_id (), reg->get_type (), reg);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (initial_sval);
    m_initial_values_map.put (reg, initial_sval);
    return initial_sval;
*************** region_model_manager::get_or_create_setj
*** 328,334 ****
    setjmp_svalue::key_t key (r, type);
    if (setjmp_svalue **slot = m_setjmp_values_map.get (key))
      return *slot;
!   setjmp_svalue *setjmp_sval = new setjmp_svalue (r, type);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (setjmp_sval);
    m_setjmp_values_map.put (key, setjmp_sval);
    return setjmp_sval;
--- 373,379 ----
    setjmp_svalue::key_t key (r, type);
    if (setjmp_svalue **slot = m_setjmp_values_map.get (key))
      return *slot;
!   setjmp_svalue *setjmp_sval = new setjmp_svalue (r, alloc_symbol_id (), type);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (setjmp_sval);
    m_setjmp_values_map.put (key, setjmp_sval);
    return setjmp_sval;
*************** region_model_manager::get_or_create_pois
*** 344,350 ****
    poisoned_svalue::key_t key (kind, type);
    if (poisoned_svalue **slot = m_poisoned_values_map.get (key))
      return *slot;
!   poisoned_svalue *poisoned_sval = new poisoned_svalue (kind, type);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (poisoned_sval);
    m_poisoned_values_map.put (key, poisoned_sval);
    return poisoned_sval;
--- 389,396 ----
    poisoned_svalue::key_t key (kind, type);
    if (poisoned_svalue **slot = m_poisoned_values_map.get (key))
      return *slot;
!   poisoned_svalue *poisoned_sval
!     = new poisoned_svalue (kind, alloc_symbol_id (), type);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (poisoned_sval);
    m_poisoned_values_map.put (key, poisoned_sval);
    return poisoned_sval;
*************** region_model_manager::get_ptr_svalue (tr
*** 365,371 ****
    region_svalue::key_t key (ptr_type, pointee);
    if (region_svalue **slot = m_pointer_values_map.get (key))
      return *slot;
!   region_svalue *sval = new region_svalue (ptr_type, pointee);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (sval);
    m_pointer_values_map.put (key, sval);
    return sval;
--- 411,418 ----
    region_svalue::key_t key (ptr_type, pointee);
    if (region_svalue **slot = m_pointer_values_map.get (key))
      return *slot;
!   region_svalue *sval
!     = new region_svalue (alloc_symbol_id (), ptr_type, pointee);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (sval);
    m_pointer_values_map.put (key, sval);
    return sval;
*************** region_model_manager::maybe_fold_unaryop
*** 396,401 ****
--- 443,451 ----
      case VIEW_CONVERT_EXPR:
      case NOP_EXPR:
        {
+ 	if (!type)
+ 	  return nullptr;
+ 
  	/* Handle redundant casts.  */
  	if (arg->get_type ()
  	    && useless_type_conversion_p (arg->get_type (), type))
*************** region_model_manager::maybe_fold_unaryop
*** 406,418 ****
  	   unless INNER_TYPE is narrower than TYPE.  */
  	if (const svalue *innermost_arg = arg->maybe_undo_cast ())
  	  {
! 	    tree inner_type = arg->get_type ();
! 	    if (TYPE_SIZE (type)
! 		&& TYPE_SIZE (inner_type)
! 		&& (fold_binary (LE_EXPR, boolean_type_node,
! 				 TYPE_SIZE (type), TYPE_SIZE (inner_type))
! 		    == boolean_true_node))
! 	      return maybe_fold_unaryop (type, op, innermost_arg);
  	  }
  	/* Avoid creating symbolic regions for pointer casts by
  	   simplifying (T*)(&REGION) to ((T*)&REGION).  */
--- 456,468 ----
  	   unless INNER_TYPE is narrower than TYPE.  */
  	if (const svalue *innermost_arg = arg->maybe_undo_cast ())
  	  {
! 	    if (tree inner_type = arg->get_type ())
! 	      if (TYPE_SIZE (type)
! 		  && TYPE_SIZE (inner_type)
! 		  && (fold_binary (LE_EXPR, boolean_type_node,
! 				   TYPE_SIZE (type), TYPE_SIZE (inner_type))
! 		      == boolean_true_node))
! 		return maybe_fold_unaryop (type, op, innermost_arg);
  	  }
  	/* Avoid creating symbolic regions for pointer casts by
  	   simplifying (T*)(&REGION) to ((T*)&REGION).  */
*************** region_model_manager::maybe_fold_unaryop
*** 421,426 ****
--- 471,482 ----
  	      && region_sval->get_type ()
  	      && POINTER_TYPE_P (region_sval->get_type ()))
  	    return get_ptr_svalue (type, region_sval->get_pointee ());
+ 
+ 	/* Casting all zeroes should give all zeroes.  */
+ 	if (type
+ 	    && arg->all_zeroes_p ()
+ 	    && (INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type)))
+ 	  return get_or_create_int_cst (type, 0);
        }
        break;
      case TRUTH_NOT_EXPR:
*************** region_model_manager::get_or_create_unar
*** 488,494 ****
    unaryop_svalue::key_t key (type, op, arg);
    if (unaryop_svalue **slot = m_unaryop_values_map.get (key))
      return *slot;
!   unaryop_svalue *unaryop_sval = new unaryop_svalue (type, op, arg);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (unaryop_sval);
    m_unaryop_values_map.put (key, unaryop_sval);
    return unaryop_sval;
--- 544,551 ----
    unaryop_svalue::key_t key (type, op, arg);
    if (unaryop_svalue **slot = m_unaryop_values_map.get (key))
      return *slot;
!   unaryop_svalue *unaryop_sval
!     = new unaryop_svalue (alloc_symbol_id (), type, op, arg);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (unaryop_sval);
    m_unaryop_values_map.put (key, unaryop_sval);
    return unaryop_sval;
*************** region_model_manager::get_or_create_unar
*** 503,513 ****
  static enum tree_code
  get_code_for_cast (tree dst_type, tree src_type)
  {
!   gcc_assert (dst_type);
    if (!src_type)
      return NOP_EXPR;
  
!   if (TREE_CODE (src_type) == REAL_TYPE)
      {
        if (TREE_CODE (dst_type) == INTEGER_TYPE)
  	return FIX_TRUNC_EXPR;
--- 560,571 ----
  static enum tree_code
  get_code_for_cast (tree dst_type, tree src_type)
  {
!   if (!dst_type)
!     return NOP_EXPR;
    if (!src_type)
      return NOP_EXPR;
  
!   if (SCALAR_FLOAT_TYPE_P (src_type))
      {
        if (TREE_CODE (dst_type) == INTEGER_TYPE)
  	return FIX_TRUNC_EXPR;
*************** get_code_for_cast (tree dst_type, tree s
*** 524,540 ****
  const svalue *
  region_model_manager::get_or_create_cast (tree type, const svalue *arg)
  {
-   gcc_assert (type);
- 
    /* No-op if the types are the same.  */
    if (type == arg->get_type ())
      return arg;
  
    /* Don't attempt to handle casts involving vector types for now.  */
!   if (TREE_CODE (type) == VECTOR_TYPE
!       || (arg->get_type ()
! 	  && TREE_CODE (arg->get_type ()) == VECTOR_TYPE))
!     return get_or_create_unknown_svalue (type);
  
    enum tree_code op = get_code_for_cast (type, arg->get_type ());
    return get_or_create_unaryop (type, op, arg);
--- 582,597 ----
  const svalue *
  region_model_manager::get_or_create_cast (tree type, const svalue *arg)
  {
    /* No-op if the types are the same.  */
    if (type == arg->get_type ())
      return arg;
  
    /* Don't attempt to handle casts involving vector types for now.  */
!   if (type)
!     if (VECTOR_TYPE_P (type)
! 	|| (arg->get_type ()
! 	    && VECTOR_TYPE_P (arg->get_type ())))
!       return get_or_create_unknown_svalue (type);
  
    enum tree_code op = get_code_for_cast (type, arg->get_type ());
    return get_or_create_unaryop (type, op, arg);
*************** maybe_undo_optimize_bit_field_compare (t
*** 559,565 ****
  				       tree cst,
  				       const svalue *arg1)
  {
!   if (type != unsigned_char_type_node)
      return NULL;
  
    const binding_map &map = compound_sval->get_map ();
--- 616,624 ----
  				       tree cst,
  				       const svalue *arg1)
  {
!   if (!type)
!     return nullptr;
!   if (!INTEGRAL_TYPE_P (type))
      return NULL;
  
    const binding_map &map = compound_sval->get_map ();
*************** region_model_manager::maybe_fold_binop (
*** 607,618 ****
    /* (CST OP CST).  */
    if (cst0 && cst1)
      {
!       if (tree result = fold_binary (op, type, cst0, cst1))
! 	if (CONSTANT_CLASS_P (result))
! 	  return get_or_create_constant_svalue (result);
      }
  
!   if (FLOAT_TYPE_P (type)
        || (arg0->get_type () && FLOAT_TYPE_P (arg0->get_type ()))
        || (arg1->get_type () && FLOAT_TYPE_P (arg1->get_type ())))
      return NULL;
--- 666,685 ----
    /* (CST OP CST).  */
    if (cst0 && cst1)
      {
!       if (type)
! 	{
! 	  if (tree result = fold_binary (op, type, cst0, cst1))
! 	    if (CONSTANT_CLASS_P (result))
! 	      return get_or_create_constant_svalue (result);
! 	}
!       else
! 	{
! 	  if (tree result = int_const_binop (op, cst0, cst1, -1))
! 	    return get_or_create_constant_svalue (NULL_TREE, result);
! 	}
      }
  
!   if ((type && FLOAT_TYPE_P (type))
        || (arg0->get_type () && FLOAT_TYPE_P (arg0->get_type ()))
        || (arg1->get_type () && FLOAT_TYPE_P (arg1->get_type ())))
      return NULL;
*************** region_model_manager::maybe_fold_binop (
*** 634,654 ****
        /* (0 - VAL) -> -VAL.  */
        if (cst0 && zerop (cst0))
  	return get_or_create_unaryop (type, NEGATE_EXPR, arg1);
        break;
      case MULT_EXPR:
        /* (VAL * 0).  */
!       if (cst1 && zerop (cst1) && INTEGRAL_TYPE_P (type))
! 	return get_or_create_constant_svalue (build_int_cst (type, 0));
        /* (VAL * 1) -> VAL.  */
        if (cst1 && integer_onep (cst1))
! 	return arg0;
        break;
      case BIT_AND_EXPR:
        if (cst1)
  	{
! 	  if (zerop (cst1) && INTEGRAL_TYPE_P (type))
  	    /* "(ARG0 & 0)" -> "0".  */
! 	    return get_or_create_constant_svalue (build_int_cst (type, 0));
  
  	  if (const compound_svalue *compound_sval
  		= arg0->dyn_cast_compound_svalue ())
--- 701,729 ----
        /* (0 - VAL) -> -VAL.  */
        if (cst0 && zerop (cst0))
  	return get_or_create_unaryop (type, NEGATE_EXPR, arg1);
+       /* (X + Y) - X -> Y.  */
+       if (const binop_svalue *binop = arg0->dyn_cast_binop_svalue ())
+ 	if (binop->get_op () == PLUS_EXPR)
+ 	  if (binop->get_arg0 () == arg1)
+ 	    return get_or_create_cast (type, binop->get_arg1 ());
        break;
      case MULT_EXPR:
        /* (VAL * 0).  */
!       if (cst1
! 	  && zerop (cst1)
! 	  && (type == NULL_TREE || INTEGRAL_TYPE_P (type)))
! 	return get_or_create_int_cst (type, 0);
        /* (VAL * 1) -> VAL.  */
        if (cst1 && integer_onep (cst1))
! 	return get_or_create_cast (type, arg0);
        break;
      case BIT_AND_EXPR:
        if (cst1)
  	{
! 	  if (zerop (cst1)
! 	      && (type == NULL_TREE || INTEGRAL_TYPE_P (type)))
  	    /* "(ARG0 & 0)" -> "0".  */
! 	    return get_or_create_int_cst (type, 0);
  
  	  if (const compound_svalue *compound_sval
  		= arg0->dyn_cast_compound_svalue ())
*************** region_model_manager::maybe_fold_binop (
*** 726,735 ****
    if (cst1 && associative_tree_code (op))
      if (const binop_svalue *binop = arg0->dyn_cast_binop_svalue ())
        if (binop->get_op () == op
! 	  && binop->get_arg1 ()->maybe_get_constant ()
! 	  && type == binop->get_type ()
! 	  && type == binop->get_arg0 ()->get_type ()
! 	  && type == binop->get_arg1 ()->get_type ())
  	return get_or_create_binop
  	  (type, op, binop->get_arg0 (),
  	   get_or_create_binop (type, op,
--- 801,807 ----
    if (cst1 && associative_tree_code (op))
      if (const binop_svalue *binop = arg0->dyn_cast_binop_svalue ())
        if (binop->get_op () == op
! 	  && binop->get_arg1 ()->maybe_get_constant ())
  	return get_or_create_binop
  	  (type, op, binop->get_arg0 (),
  	   get_or_create_binop (type, op,
*************** region_model_manager::maybe_fold_binop (
*** 748,753 ****
--- 820,914 ----
  	     get_or_create_binop (size_type_node, op,
  				  binop->get_arg1 (), arg1));
  
+   /* Distribute multiplication by a constant through addition/subtraction:
+      (X + Y) * CST => (X * CST) + (Y * CST).  */
+   if (cst1 && op == MULT_EXPR)
+     if (const binop_svalue *binop = arg0->dyn_cast_binop_svalue ())
+       if (binop->get_op () == PLUS_EXPR
+ 	  || binop->get_op () == MINUS_EXPR)
+ 	{
+ 	  return get_or_create_binop
+ 	    (type, binop->get_op (),
+ 	     get_or_create_binop (type, op,
+ 				  binop->get_arg0 (), arg1),
+ 	     get_or_create_binop (type, op,
+ 				  binop->get_arg1 (), arg1));
+ 	}
+ 
+ 
+   /* Typeless operations, assumed to be effectively arbitrary sized
+      integers following normal arithmetic rules.  */
+   if (!type)
+     switch (op)
+       {
+       default:
+ 	break;
+       case MINUS_EXPR:
+ 	{
+ 	  /* (X - X) -> 0.  */
+ 	  if (arg0 == arg1)
+ 	    return get_or_create_int_cst (type, 0);
+ 
+ 	  /* (X + A) - (A + B) -> (A - B).  */
+ 	  if (const binop_svalue *binop0 = arg0->dyn_cast_binop_svalue ())
+ 	    if (const binop_svalue *binop1 = arg1->dyn_cast_binop_svalue ())
+ 	      if (binop0->get_op () == PLUS_EXPR
+ 		  && binop1->get_op () == PLUS_EXPR
+ 		  && binop0->get_arg0 () == binop1->get_arg0 ())
+ 		return get_or_create_binop (NULL_TREE, op,
+ 					    binop0->get_arg1 (),
+ 					    binop1->get_arg1 ());
+ 	}
+ 	break;
+ 
+       case EXACT_DIV_EXPR:
+ 	{
+ 	  if (const unaryop_svalue *unaryop0 = arg0->dyn_cast_unaryop_svalue ())
+ 	    {
+ 	      if (unaryop0->get_op () == NOP_EXPR)
+ 		if (const svalue *sval = maybe_fold_binop (NULL_TREE, op,
+ 							   unaryop0->get_arg (),
+ 							   arg1))
+ 		  return sval;
+ 	    }
+ 	  if (const binop_svalue *binop0 = arg0->dyn_cast_binop_svalue ())
+ 	    {
+ 	      switch (binop0->get_op ())
+ 		{
+ 		default:
+ 		  break;
+ 
+ 		case PLUS_EXPR:
+ 		case MINUS_EXPR:
+ 		  /* (A op B) / C -> (A / C) op (B / C).  */
+ 		  {
+ 		    if (const svalue *op_on_a
+ 			= maybe_fold_binop (NULL_TREE, op,
+ 					    binop0->get_arg0 (), arg1))
+ 		      if (const svalue *op_on_b
+ 			  = maybe_fold_binop (NULL_TREE, op,
+ 					      binop0->get_arg1 (), arg1))
+ 			return get_or_create_binop (NULL_TREE,
+ 						    binop0->get_op (),
+ 						    op_on_a, op_on_b);
+ 		  }
+ 		  break;
+ 
+ 		case MULT_EXPR:
+ 		  /* (A * B) / C -> A * (B / C) if C is a divisor of B.
+ 		     In particular, this should also handle the case
+ 		     (A * B) / B -> A.  */
+ 		  if (const svalue *b_div_c
+ 		      = maybe_fold_binop (NULL_TREE, op,
+ 					  binop0->get_arg1 (), arg1))
+ 		    return get_or_create_binop (NULL_TREE, binop0->get_op (),
+ 						binop0->get_arg0 (), b_div_c);
+ 		}
+ 	    }
+ 	}
+ 	break;
+       }
+ 
    /* etc.  */
  
    return NULL;
*************** region_model_manager::get_or_create_bino
*** 777,783 ****
    binop_svalue::key_t key (type, op, arg0, arg1);
    if (binop_svalue **slot = m_binop_values_map.get (key))
      return *slot;
!   binop_svalue *binop_sval = new binop_svalue (type, op, arg0, arg1);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (binop_sval);
    m_binop_values_map.put (key, binop_sval);
    return binop_sval;
--- 938,945 ----
    binop_svalue::key_t key (type, op, arg0, arg1);
    if (binop_svalue **slot = m_binop_values_map.get (key))
      return *slot;
!   binop_svalue *binop_sval
!     = new binop_svalue (alloc_symbol_id (), type, op, arg0, arg1);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (binop_sval);
    m_binop_values_map.put (key, binop_sval);
    return binop_sval;
*************** region_model_manager::get_or_create_sub_
*** 883,889 ****
    if (sub_svalue **slot = m_sub_values_map.get (key))
      return *slot;
    sub_svalue *sub_sval
!     = new sub_svalue (type, parent_svalue, subregion);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (sub_sval);
    m_sub_values_map.put (key, sub_sval);
    return sub_sval;
--- 1045,1051 ----
    if (sub_svalue **slot = m_sub_values_map.get (key))
      return *slot;
    sub_svalue *sub_sval
!     = new sub_svalue (alloc_symbol_id (), type, parent_svalue, subregion);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (sub_sval);
    m_sub_values_map.put (key, sub_sval);
    return sub_sval;
*************** region_model_manager::get_or_create_repe
*** 944,950 ****
    if (repeated_svalue **slot = m_repeated_values_map.get (key))
      return *slot;
    repeated_svalue *repeated_sval
!     = new repeated_svalue (type, outer_size, inner_svalue);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (repeated_sval);
    m_repeated_values_map.put (key, repeated_sval);
    return repeated_sval;
--- 1106,1112 ----
    if (repeated_svalue **slot = m_repeated_values_map.get (key))
      return *slot;
    repeated_svalue *repeated_sval
!     = new repeated_svalue (alloc_symbol_id (), type, outer_size, inner_svalue);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (repeated_sval);
    m_repeated_values_map.put (key, repeated_sval);
    return repeated_sval;
*************** region_model_manager::get_or_create_bits
*** 1137,1143 ****
    if (bits_within_svalue **slot = m_bits_within_values_map.get (key))
      return *slot;
    bits_within_svalue *bits_within_sval
!     = new bits_within_svalue (type, bits, inner_svalue);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (bits_within_sval);
    m_bits_within_values_map.put (key, bits_within_sval);
    return bits_within_sval;
--- 1299,1305 ----
    if (bits_within_svalue **slot = m_bits_within_values_map.get (key))
      return *slot;
    bits_within_svalue *bits_within_sval
!     = new bits_within_svalue (alloc_symbol_id (), type, bits, inner_svalue);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (bits_within_sval);
    m_bits_within_values_map.put (key, bits_within_sval);
    return bits_within_sval;
*************** region_model_manager::get_or_create_unme
*** 1154,1160 ****
  
    if (unmergeable_svalue **slot = m_unmergeable_values_map.get (arg))
      return *slot;
!   unmergeable_svalue *unmergeable_sval = new unmergeable_svalue (arg);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (unmergeable_sval);
    m_unmergeable_values_map.put (arg, unmergeable_sval);
    return unmergeable_sval;
--- 1316,1323 ----
  
    if (unmergeable_svalue **slot = m_unmergeable_values_map.get (arg))
      return *slot;
!   unmergeable_svalue *unmergeable_sval
!     = new unmergeable_svalue (alloc_symbol_id (), arg);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (unmergeable_sval);
    m_unmergeable_values_map.put (arg, unmergeable_sval);
    return unmergeable_sval;
*************** get_or_create_widening_svalue (tree type
*** 1176,1182 ****
    if (widening_svalue **slot = m_widening_values_map.get (key))
      return *slot;
    widening_svalue *widening_sval
!     = new widening_svalue (type, point, base_sval, iter_sval);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (widening_sval);
    m_widening_values_map.put (key, widening_sval);
    return widening_sval;
--- 1339,1346 ----
    if (widening_svalue **slot = m_widening_values_map.get (key))
      return *slot;
    widening_svalue *widening_sval
!     = new widening_svalue (alloc_symbol_id (), type, point, base_sval,
! 			   iter_sval);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (widening_sval);
    m_widening_values_map.put (key, widening_sval);
    return widening_sval;
*************** region_model_manager::get_or_create_comp
*** 1193,1199 ****
    if (compound_svalue **slot = m_compound_values_map.get (tmp_key))
      return *slot;
    compound_svalue *compound_sval
!     = new compound_svalue (type, map);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (compound_sval);
    /* Use make_key rather than reusing the key, so that we use a
       ptr to compound_sval's binding_map, rather than the MAP param.  */
--- 1357,1363 ----
    if (compound_svalue **slot = m_compound_values_map.get (tmp_key))
      return *slot;
    compound_svalue *compound_sval
!     = new compound_svalue (alloc_symbol_id (), type, map);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (compound_sval);
    /* Use make_key rather than reusing the key, so that we use a
       ptr to compound_sval's binding_map, rather than the MAP param.  */
*************** conjured_purge::purge (const conjured_sv
*** 1212,1218 ****
  }
  
  /* Return the svalue * of type TYPE for the value conjured for ID_REG
!    at STMT, creating it if necessary.
     Use P to purge existing state from the svalue, for the case where a
     conjured_svalue would be reused along an execution path.  */
  
--- 1376,1383 ----
  }
  
  /* Return the svalue * of type TYPE for the value conjured for ID_REG
!    at STMT (using IDX for any further disambiguation),
!    creating it if necessary.
     Use P to purge existing state from the svalue, for the case where a
     conjured_svalue would be reused along an execution path.  */
  
*************** const svalue *
*** 1220,1228 ****
  region_model_manager::get_or_create_conjured_svalue (tree type,
  						     const gimple *stmt,
  						     const region *id_reg,
! 						     const conjured_purge &p)
  {
!   conjured_svalue::key_t key (type, stmt, id_reg);
    if (conjured_svalue **slot = m_conjured_values_map.get (key))
      {
        const conjured_svalue *sval = *slot;
--- 1385,1394 ----
  region_model_manager::get_or_create_conjured_svalue (tree type,
  						     const gimple *stmt,
  						     const region *id_reg,
! 						     const conjured_purge &p,
! 						     unsigned idx)
  {
!   conjured_svalue::key_t key (type, stmt, id_reg, idx);
    if (conjured_svalue **slot = m_conjured_values_map.get (key))
      {
        const conjured_svalue *sval = *slot;
*************** region_model_manager::get_or_create_conj
*** 1234,1240 ****
        return sval;
      }
    conjured_svalue *conjured_sval
!     = new conjured_svalue (type, stmt, id_reg);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (conjured_sval);
    m_conjured_values_map.put (key, conjured_sval);
    return conjured_sval;
--- 1400,1406 ----
        return sval;
      }
    conjured_svalue *conjured_sval
!     = new conjured_svalue (alloc_symbol_id (), type, stmt, id_reg, idx);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (conjured_sval);
    m_conjured_values_map.put (key, conjured_sval);
    return conjured_sval;
*************** get_or_create_asm_output_svalue (tree ty
*** 1279,1285 ****
    if (asm_output_svalue **slot = m_asm_output_values_map.get (key))
      return *slot;
    asm_output_svalue *asm_output_sval
!     = new asm_output_svalue (type, asm_string, output_idx, noutputs, inputs);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (asm_output_sval);
    m_asm_output_values_map.put (key, asm_output_sval);
    return asm_output_sval;
--- 1445,1452 ----
    if (asm_output_svalue **slot = m_asm_output_values_map.get (key))
      return *slot;
    asm_output_svalue *asm_output_sval
!     = new asm_output_svalue (alloc_symbol_id (), type, asm_string, output_idx,
! 			     noutputs, inputs);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (asm_output_sval);
    m_asm_output_values_map.put (key, asm_output_sval);
    return asm_output_sval;
*************** get_or_create_asm_output_svalue (tree ty
*** 1307,1313 ****
    if (asm_output_svalue **slot = m_asm_output_values_map.get (key))
      return *slot;
    asm_output_svalue *asm_output_sval
!     = new asm_output_svalue (type, asm_string, output_idx, num_outputs, inputs);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (asm_output_sval);
    m_asm_output_values_map.put (key, asm_output_sval);
    return asm_output_sval;
--- 1474,1481 ----
    if (asm_output_svalue **slot = m_asm_output_values_map.get (key))
      return *slot;
    asm_output_svalue *asm_output_sval
!     = new asm_output_svalue (alloc_symbol_id (), type, asm_string, output_idx,
! 			     num_outputs, inputs);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (asm_output_sval);
    m_asm_output_values_map.put (key, asm_output_sval);
    return asm_output_sval;
*************** get_or_create_const_fn_result_svalue (tr
*** 1322,1328 ****
  				      tree fndecl,
  				      const vec<const svalue *> &inputs)
  {
-   gcc_assert (type);
    gcc_assert (fndecl);
    gcc_assert (DECL_P (fndecl));
    gcc_assert (TREE_READONLY (fndecl));
--- 1490,1495 ----
*************** get_or_create_const_fn_result_svalue (tr
*** 1332,1343 ****
    if (const_fn_result_svalue **slot = m_const_fn_result_values_map.get (key))
      return *slot;
    const_fn_result_svalue *const_fn_result_sval
!     = new const_fn_result_svalue (type, fndecl, inputs);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (const_fn_result_sval);
    m_const_fn_result_values_map.put (key, const_fn_result_sval);
    return const_fn_result_sval;
  }
  
  /* Given STRING_CST, a STRING_CST and BYTE_OFFSET_CST a constant,
     attempt to get the character at that offset, returning either
     the svalue for the character constant, or NULL if unsuccessful.  */
--- 1499,1524 ----
    if (const_fn_result_svalue **slot = m_const_fn_result_values_map.get (key))
      return *slot;
    const_fn_result_svalue *const_fn_result_sval
!     = new const_fn_result_svalue (alloc_symbol_id (), type, fndecl, inputs);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (const_fn_result_sval);
    m_const_fn_result_values_map.put (key, const_fn_result_sval);
    return const_fn_result_sval;
  }
  
+ /* Get a tree for the size of STRING_CST, or NULL_TREE.
+    Note that this may be larger than TREE_STRING_LENGTH (implying
+    a run of trailing zero bytes from TREE_STRING_LENGTH up to this
+    higher limit).  */
+ 
+ tree
+ get_string_cst_size (const_tree string_cst)
+ {
+   gcc_assert (TREE_CODE (string_cst) == STRING_CST);
+   gcc_assert (TREE_CODE (TREE_TYPE (string_cst)) == ARRAY_TYPE);
+ 
+   return TYPE_SIZE_UNIT (TREE_TYPE (string_cst));
+ }
+ 
  /* Given STRING_CST, a STRING_CST and BYTE_OFFSET_CST a constant,
     attempt to get the character at that offset, returning either
     the svalue for the character constant, or NULL if unsuccessful.  */
*************** region_model_manager::maybe_get_char_fro
*** 1351,1366 ****
    /* Adapted from fold_read_from_constant_string.  */
    scalar_int_mode char_mode;
    if (TREE_CODE (byte_offset_cst) == INTEGER_CST
-       && compare_tree_int (byte_offset_cst,
- 			   TREE_STRING_LENGTH (string_cst)) < 0
        && is_int_mode (TYPE_MODE (TREE_TYPE (TREE_TYPE (string_cst))),
  		      &char_mode)
        && GET_MODE_SIZE (char_mode) == 1)
      {
        tree char_cst
! 	= build_int_cst_type (TREE_TYPE (TREE_TYPE (string_cst)),
! 			      (TREE_STRING_POINTER (string_cst)
! 			       [TREE_INT_CST_LOW (byte_offset_cst)]));
        return get_or_create_constant_svalue (char_cst);
      }
    return NULL;
--- 1532,1558 ----
    /* Adapted from fold_read_from_constant_string.  */
    scalar_int_mode char_mode;
    if (TREE_CODE (byte_offset_cst) == INTEGER_CST
        && is_int_mode (TYPE_MODE (TREE_TYPE (TREE_TYPE (string_cst))),
  		      &char_mode)
        && GET_MODE_SIZE (char_mode) == 1)
      {
+       /* If we're beyond the string_cst, the read is unsuccessful.  */
+       if (compare_constants (byte_offset_cst,
+ 			     GE_EXPR,
+ 			     get_string_cst_size (string_cst)).is_true ())
+ 	return NULL;
+ 
+       int char_val;
+       if (compare_tree_int (byte_offset_cst,
+ 			    TREE_STRING_LENGTH (string_cst)) < 0)
+ 	/* We're within the area defined by TREE_STRING_POINTER.  */
+ 	char_val = (TREE_STRING_POINTER (string_cst)
+ 		    [TREE_INT_CST_LOW (byte_offset_cst)]);
+       else
+ 	/* We're in the padding area of trailing zeroes.  */
+ 	char_val = 0;
        tree char_cst
! 	= build_int_cst_type (TREE_TYPE (TREE_TYPE (string_cst)), char_val);
        return get_or_create_constant_svalue (char_cst);
      }
    return NULL;
*************** region_model_manager::get_region_for_fnd
*** 1379,1385 ****
    if (slot)
      return *slot;
    function_region *reg
!     = new function_region (alloc_region_id (), &m_code_region, fndecl);
    m_fndecls_map.put (fndecl, reg);
    return reg;
  }
--- 1571,1577 ----
    if (slot)
      return *slot;
    function_region *reg
!     = new function_region (alloc_symbol_id (), &m_code_region, fndecl);
    m_fndecls_map.put (fndecl, reg);
    return reg;
  }
*************** region_model_manager::get_region_for_lab
*** 1400,1406 ****
  
    const function_region *func_reg = get_region_for_fndecl (fndecl);
    label_region *reg
!     = new label_region (alloc_region_id (), func_reg, label);
    m_labels_map.put (label, reg);
    return reg;
  }
--- 1592,1598 ----
  
    const function_region *func_reg = get_region_for_fndecl (fndecl);
    label_region *reg
!     = new label_region (alloc_symbol_id (), func_reg, label);
    m_labels_map.put (label, reg);
    return reg;
  }
*************** region_model_manager::get_region_for_lab
*** 1410,1422 ****
  const decl_region *
  region_model_manager::get_region_for_global (tree expr)
  {
!   gcc_assert (TREE_CODE (expr) == VAR_DECL);
  
    decl_region **slot = m_globals_map.get (expr);
    if (slot)
      return *slot;
    decl_region *reg
!     = new decl_region (alloc_region_id (), &m_globals_region, expr);
    m_globals_map.put (expr, reg);
    return reg;
  }
--- 1602,1614 ----
  const decl_region *
  region_model_manager::get_region_for_global (tree expr)
  {
!   gcc_assert (VAR_P (expr));
  
    decl_region **slot = m_globals_map.get (expr);
    if (slot)
      return *slot;
    decl_region *reg
!     = new decl_region (alloc_symbol_id (), &m_globals_region, expr);
    m_globals_map.put (expr, reg);
    return reg;
  }
*************** region_model_manager::get_field_region (
*** 1451,1457 ****
      return reg;
  
    field_region *field_reg
!     = new field_region (alloc_region_id (), parent, field);
    m_field_regions.put (key, field_reg);
    return field_reg;
  }
--- 1643,1649 ----
      return reg;
  
    field_region *field_reg
!     = new field_region (alloc_symbol_id (), parent, field);
    m_field_regions.put (key, field_reg);
    return field_reg;
  }
*************** region_model_manager::get_element_region
*** 1473,1479 ****
      return reg;
  
    element_region *element_reg
!     = new element_region (alloc_region_id (), parent, element_type, index);
    m_element_regions.put (key, element_reg);
    return element_reg;
  }
--- 1665,1671 ----
      return reg;
  
    element_region *element_reg
!     = new element_region (alloc_symbol_id (), parent, element_type, index);
    m_element_regions.put (key, element_reg);
    return element_reg;
  }
*************** region_model_manager::get_offset_region
*** 1513,1519 ****
      return reg;
  
    offset_region *offset_reg
!     = new offset_region (alloc_region_id (), parent, type, byte_offset);
    m_offset_regions.put (key, offset_reg);
    return offset_reg;
  }
--- 1705,1711 ----
      return reg;
  
    offset_region *offset_reg
!     = new offset_region (alloc_symbol_id (), parent, type, byte_offset);
    m_offset_regions.put (key, offset_reg);
    return offset_reg;
  }
*************** region_model_manager::get_sized_region (
*** 1548,1554 ****
      return reg;
  
    sized_region *sized_reg
!     = new sized_region (alloc_region_id (), parent, type, byte_size_sval);
    m_sized_regions.put (key, sized_reg);
    return sized_reg;
  }
--- 1740,1746 ----
      return reg;
  
    sized_region *sized_reg
!     = new sized_region (alloc_symbol_id (), parent, type, byte_size_sval);
    m_sized_regions.put (key, sized_reg);
    return sized_reg;
  }
*************** region_model_manager::get_cast_region (c
*** 1572,1578 ****
      return reg;
  
    cast_region *cast_reg
!     = new cast_region (alloc_region_id (), original_region, type);
    m_cast_regions.put (key, cast_reg);
    return cast_reg;
  }
--- 1764,1770 ----
      return reg;
  
    cast_region *cast_reg
!     = new cast_region (alloc_symbol_id (), original_region, type);
    m_cast_regions.put (key, cast_reg);
    return cast_reg;
  }
*************** region_model_manager::get_cast_region (c
*** 1582,1588 ****
  
  const frame_region *
  region_model_manager::get_frame_region (const frame_region *calling_frame,
! 					function *fun)
  {
    int index = calling_frame ? calling_frame->get_index () + 1 : 0;
  
--- 1774,1780 ----
  
  const frame_region *
  region_model_manager::get_frame_region (const frame_region *calling_frame,
! 					const function &fun)
  {
    int index = calling_frame ? calling_frame->get_index () + 1 : 0;
  
*************** region_model_manager::get_frame_region (
*** 1591,1597 ****
      return reg;
  
    frame_region *frame_reg
!     = new frame_region (alloc_region_id (), &m_stack_region, calling_frame,
  			 fun, index);
    m_frame_regions.put (key, frame_reg);
    return frame_reg;
--- 1783,1789 ----
      return reg;
  
    frame_region *frame_reg
!     = new frame_region (alloc_symbol_id (), &m_stack_region, calling_frame,
  			 fun, index);
    m_frame_regions.put (key, frame_reg);
    return frame_reg;
*************** region_model_manager::get_symbolic_regio
*** 1608,1614 ****
      return reg;
  
    symbolic_region *symbolic_reg
!     = new symbolic_region (alloc_region_id (), &m_root_region, sval);
    m_symbolic_regions.put (key, symbolic_reg);
    return symbolic_reg;
  }
--- 1800,1806 ----
      return reg;
  
    symbolic_region *symbolic_reg
!     = new symbolic_region (alloc_symbol_id (), &m_root_region, sval);
    m_symbolic_regions.put (key, symbolic_reg);
    return symbolic_reg;
  }
*************** region_model_manager::get_region_for_str
*** 1625,1631 ****
    if (slot)
      return *slot;
    string_region *reg
!     = new string_region (alloc_region_id (), &m_root_region, string_cst);
    m_string_map.put (string_cst, reg);
    return reg;
  }
--- 1817,1823 ----
    if (slot)
      return *slot;
    string_region *reg
!     = new string_region (alloc_symbol_id (), &m_root_region, string_cst);
    m_string_map.put (string_cst, reg);
    return reg;
  }
*************** region_model_manager::get_bit_range (con
*** 1647,1653 ****
      return reg;
  
    bit_range_region *bit_range_reg
!     = new bit_range_region (alloc_region_id (), parent, type, bits);
    m_bit_range_regions.put (key, bit_range_reg);
    return bit_range_reg;
  }
--- 1839,1845 ----
      return reg;
  
    bit_range_region *bit_range_reg
!     = new bit_range_region (alloc_symbol_id (), parent, type, bits);
    m_bit_range_regions.put (key, bit_range_reg);
    return bit_range_reg;
  }
*************** region_model_manager::get_var_arg_region
*** 1666,1672 ****
      return reg;
  
    var_arg_region *var_arg_reg
!     = new var_arg_region (alloc_region_id (), parent_frame, idx);
    m_var_arg_regions.put (key, var_arg_reg);
    return var_arg_reg;
  }
--- 1858,1864 ----
      return reg;
  
    var_arg_region *var_arg_reg
!     = new var_arg_region (alloc_symbol_id (), parent_frame, idx);
    m_var_arg_regions.put (key, var_arg_reg);
    return var_arg_reg;
  }
*************** get_region_for_unexpected_tree_code (reg
*** 1686,1692 ****
  {
    tree type = TYPE_P (t) ? t : TREE_TYPE (t);
    region *new_reg
!     = new unknown_region (alloc_region_id (), &m_root_region, type);
    if (ctxt)
      ctxt->on_unexpected_tree_code (t, loc);
    return new_reg;
--- 1878,1884 ----
  {
    tree type = TYPE_P (t) ? t : TREE_TYPE (t);
    region *new_reg
!     = new unknown_region (alloc_symbol_id (), &m_root_region, type);
    if (ctxt)
      ctxt->on_unexpected_tree_code (t, loc);
    return new_reg;
*************** get_or_create_region_for_heap_alloc (con
*** 1709,1715 ****
  
    /* All existing ones (if any) are in use; create a new one.  */
    region *reg
!     = new heap_allocated_region (alloc_region_id (), &m_heap_region);
    m_managed_dynamic_regions.safe_push (reg);
    return reg;
  }
--- 1901,1907 ----
  
    /* All existing ones (if any) are in use; create a new one.  */
    region *reg
!     = new heap_allocated_region (alloc_symbol_id (), &m_heap_region);
    m_managed_dynamic_regions.safe_push (reg);
    return reg;
  }
*************** const region *
*** 1720,1726 ****
  region_model_manager::create_region_for_alloca (const frame_region *frame)
  {
    gcc_assert (frame);
!   region *reg = new alloca_region (alloc_region_id (), frame);
    m_managed_dynamic_regions.safe_push (reg);
    return reg;
  }
--- 1912,1918 ----
  region_model_manager::create_region_for_alloca (const frame_region *frame)
  {
    gcc_assert (frame);
!   region *reg = new alloca_region (alloc_symbol_id (), frame);
    m_managed_dynamic_regions.safe_push (reg);
    return reg;
  }
*************** region_model_manager::log_stats (logger
*** 1812,1817 ****
--- 2004,2010 ----
    LOG_SCOPE (logger);
    logger->log ("call string consolidation");
    m_empty_call_string.recursive_log (logger);
+   logger->log ("next symbol id: %i", m_next_symbol_id);
    logger->log ("svalue consolidation");
    log_uniq_map (logger, show_objs, "constant_svalue", m_constants_map);
    log_uniq_map (logger, show_objs, "unknown_svalue", m_unknowns_map);
*************** region_model_manager::log_stats (logger
*** 1843,1849 ****
  	       m_max_complexity.m_max_depth);
  
    logger->log ("region consolidation");
-   logger->log ("  next region id: %i", m_next_region_id);
    log_uniq_map (logger, show_objs, "function_region", m_fndecls_map);
    log_uniq_map (logger, show_objs, "label_region", m_labels_map);
    log_uniq_map (logger, show_objs, "decl_region for globals", m_globals_map);
--- 2036,2041 ----
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region-model-manager.h gcc-14.1.0/gcc/analyzer/region-model-manager.h
*** gcc-13.2.0/gcc/analyzer/region-model-manager.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region-model-manager.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 34,39 ****
--- 34,42 ----
    region_model_manager (logger *logger = NULL);
    ~region_model_manager ();
  
+   unsigned get_num_symbols () const { return m_next_symbol_id; }
+   unsigned alloc_symbol_id () { return m_next_symbol_id++; }
+ 
    /* call_string consolidation.  */
    const call_string &get_empty_call_string () const
    {
*************** public:
*** 41,55 ****
    }
  
    /* svalue consolidation.  */
    const svalue *get_or_create_constant_svalue (tree cst_expr);
!   const svalue *get_or_create_int_cst (tree type, poly_int64);
    const svalue *get_or_create_null_ptr (tree pointer_type);
    const svalue *get_or_create_unknown_svalue (tree type);
    const svalue *get_or_create_setjmp_svalue (const setjmp_record &r,
  					     tree type);
    const svalue *get_or_create_poisoned_svalue (enum poison_kind kind,
  					       tree type);
!   const svalue *get_or_create_initial_value (const region *reg);
    const svalue *get_ptr_svalue (tree ptr_type, const region *pointee);
    const svalue *get_or_create_unaryop (tree type, enum tree_code op,
  				       const svalue *arg);
--- 44,60 ----
    }
  
    /* svalue consolidation.  */
+   const svalue *get_or_create_constant_svalue (tree type, tree cst_expr);
    const svalue *get_or_create_constant_svalue (tree cst_expr);
!   const svalue *get_or_create_int_cst (tree type, const poly_wide_int_ref &cst);
    const svalue *get_or_create_null_ptr (tree pointer_type);
    const svalue *get_or_create_unknown_svalue (tree type);
    const svalue *get_or_create_setjmp_svalue (const setjmp_record &r,
  					     tree type);
    const svalue *get_or_create_poisoned_svalue (enum poison_kind kind,
  					       tree type);
!   const svalue *get_or_create_initial_value (const region *reg,
! 					     bool check_poisoned = true);
    const svalue *get_ptr_svalue (tree ptr_type, const region *pointee);
    const svalue *get_or_create_unaryop (tree type, enum tree_code op,
  				       const svalue *arg);
*************** public:
*** 75,81 ****
  					       const binding_map &map);
    const svalue *get_or_create_conjured_svalue (tree type, const gimple *stmt,
  					       const region *id_reg,
! 					       const conjured_purge &p);
    const svalue *
    get_or_create_asm_output_svalue (tree type,
  				   const gasm *asm_stmt,
--- 80,87 ----
  					       const binding_map &map);
    const svalue *get_or_create_conjured_svalue (tree type, const gimple *stmt,
  					       const region *id_reg,
! 					       const conjured_purge &p,
! 					       unsigned idx = 0);
    const svalue *
    get_or_create_asm_output_svalue (tree type,
  				   const gasm *asm_stmt,
*************** public:
*** 101,107 ****
    const svalue *create_unique_svalue (tree type);
  
    /* region consolidation.  */
!   unsigned get_num_regions () const { return m_next_region_id; }
    const stack_region * get_stack_region () const { return &m_stack_region; }
    const heap_region *get_heap_region () const { return &m_heap_region; }
    const code_region *get_code_region () const { return &m_code_region; }
--- 107,113 ----
    const svalue *create_unique_svalue (tree type);
  
    /* region consolidation.  */
!   const root_region *get_root_region () const { return &m_root_region; }
    const stack_region * get_stack_region () const { return &m_stack_region; }
    const heap_region *get_heap_region () const { return &m_heap_region; }
    const code_region *get_code_region () const { return &m_code_region; }
*************** public:
*** 126,132 ****
    const region *get_cast_region (const region *original_region,
  				 tree type);
    const frame_region *get_frame_region (const frame_region *calling_frame,
! 					function *fun);
    const region *get_symbolic_region (const svalue *sval);
    const string_region *get_region_for_string (tree string_cst);
    const region *get_bit_range (const region *parent, tree type,
--- 132,138 ----
    const region *get_cast_region (const region *original_region,
  				 tree type);
    const frame_region *get_frame_region (const frame_region *calling_frame,
! 					const function &fun);
    const region *get_symbolic_region (const svalue *sval);
    const string_region *get_region_for_string (tree string_cst);
    const region *get_bit_range (const region *parent, tree type,
*************** public:
*** 141,148 ****
  				       tree t,
  				       const dump_location_t &loc);
  
-   unsigned alloc_region_id () { return m_next_region_id++; }
- 
    store_manager *get_store_manager () { return &m_store_mgr; }
    bounded_ranges_manager *get_range_manager () const { return m_range_mgr; }
  
--- 147,152 ----
*************** public:
*** 167,180 ****
  
    void dump_untracked_regions () const;
  
  private:
    bool too_complex_p (const complexity &c) const;
    bool reject_if_too_complex (svalue *sval);
  
    const svalue *maybe_fold_unaryop (tree type, enum tree_code op,
  				    const svalue *arg);
-   const svalue *maybe_fold_binop (tree type, enum tree_code op,
- 				  const svalue *arg0, const svalue *arg1);
    const svalue *maybe_fold_sub_svalue (tree type,
  				       const svalue *parent_svalue,
  				       const region *subregion);
--- 171,184 ----
  
    void dump_untracked_regions () const;
  
+   const svalue *maybe_fold_binop (tree type, enum tree_code op,
+ 				  const svalue *arg0, const svalue *arg1);
  private:
    bool too_complex_p (const complexity &c) const;
    bool reject_if_too_complex (svalue *sval);
  
    const svalue *maybe_fold_unaryop (tree type, enum tree_code op,
  				    const svalue *arg);
    const svalue *maybe_fold_sub_svalue (tree type,
  				       const svalue *parent_svalue,
  				       const region *subregion);
*************** private:
*** 192,206 ****
  
    logger *m_logger;
  
    const call_string m_empty_call_string;
  
-   unsigned m_next_region_id;
    root_region m_root_region;
    stack_region m_stack_region;
    heap_region m_heap_region;
  
    /* svalue consolidation.  */
!   typedef hash_map<tree, constant_svalue *> constants_map_t;
    constants_map_t m_constants_map;
  
    typedef hash_map<tree, unknown_svalue *> unknowns_map_t;
--- 196,211 ----
  
    logger *m_logger;
  
+   unsigned m_next_symbol_id;
+ 
    const call_string m_empty_call_string;
  
    root_region m_root_region;
    stack_region m_stack_region;
    heap_region m_heap_region;
  
    /* svalue consolidation.  */
!   typedef hash_map<constant_svalue::key_t, constant_svalue *> constants_map_t;
    constants_map_t m_constants_map;
  
    typedef hash_map<tree, unknown_svalue *> unknowns_map_t;
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region-model-reachability.cc gcc-14.1.0/gcc/analyzer/region-model-reachability.cc
*** gcc-13.2.0/gcc/analyzer/region-model-reachability.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region-model-reachability.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region-model-reachability.h gcc-14.1.0/gcc/analyzer/region-model-reachability.h
*** gcc-13.2.0/gcc/analyzer/region-model-reachability.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region-model-reachability.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region-model.cc gcc-14.1.0/gcc/analyzer/region-model.cc
*** gcc-13.2.0/gcc/analyzer/region-model.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region-model.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 20,25 ****
--- 20,26 ----
  
  #include "config.h"
  #define INCLUDE_MEMORY
+ #define INCLUDE_ALGORITHM
  #include "system.h"
  #include "coretypes.h"
  #include "make-unique.h"
*************** along with GCC; see the file COPYING3.
*** 39,45 ****
  #include "fold-const.h"
  #include "tree-pretty-print.h"
  #include "diagnostic-color.h"
- #include "diagnostic-metadata.h"
  #include "bitmap.h"
  #include "selftest.h"
  #include "analyzer/analyzer.h"
--- 40,45 ----
*************** along with GCC; see the file COPYING3.
*** 77,87 ****
--- 77,91 ----
  #include "analyzer/checker-event.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/feasible-graph.h"
+ #include "analyzer/record-layout.h"
+ #include "diagnostic-format-sarif.h"
  
  #if ENABLE_ANALYZER
  
  namespace ana {
  
+ auto_vec<pop_frame_callback> region_model::pop_frame_callbacks;
+ 
  /* Dump T to PP in language-independent form, for debugging/logging/dumping
     purposes.  */
  
*************** dump_quoted_tree (pretty_printer *pp, tr
*** 116,126 ****
--- 120,148 ----
  void
  print_quoted_type (pretty_printer *pp, tree t)
  {
+   if (!t)
+     return;
    pp_begin_quote (pp, pp_show_color (pp));
    dump_generic_node (pp, t, 0, TDF_SLIM, 0);
    pp_end_quote (pp, pp_show_color (pp));
  }
  
+ /* Print EXPR to PP, without quotes.
+    For use within svalue::maybe_print_for_user
+    and region::maybe_print_for_user. */
+ 
+ void
+ print_expr_for_user (pretty_printer *pp, tree expr)
+ {
+   /* Workaround for C++'s lang_hooks.decl_printable_name,
+      which unhelpfully (for us) prefixes the decl with its
+      type.  */
+   if (DECL_P (expr))
+     dump_generic_node (pp, expr, 0, TDF_SLIM, 0);
+   else
+     pp_printf (pp, "%E", expr);
+ }
+ 
  /* class region_to_value_map.  */
  
  /* Assignment operator for region_to_value_map.  */
*************** region_to_value_map::dump (bool simple)
*** 207,212 ****
--- 229,259 ----
    pp_flush (&pp);
  }
  
+ /* Generate a JSON value for this region_to_value_map.
+    This is intended for debugging the analyzer rather than
+    serialization.  */
+ 
+ json::object *
+ region_to_value_map::to_json () const
+ {
+   json::object *map_obj = new json::object ();
+ 
+   auto_vec<const region *> regs;
+   for (iterator iter = begin (); iter != end (); ++iter)
+     regs.safe_push ((*iter).first);
+   regs.qsort (region::cmp_ptr_ptr);
+ 
+   unsigned i;
+   const region *reg;
+   FOR_EACH_VEC_ELT (regs, i, reg)
+     {
+       label_text reg_desc = reg->get_desc ();
+       const svalue *sval = *get (reg);
+       map_obj->set (reg_desc.get (), sval->to_json ());
+     }
+ 
+   return map_obj;
+ }
  
  /* Attempt to merge THIS with OTHER, writing the result
     to OUT.
*************** region_model::debug () const
*** 425,430 ****
--- 472,493 ----
    dump (true);
  }
  
+ /* Generate a JSON value for this region_model.
+    This is intended for debugging the analyzer rather than
+    serialization.  */
+ 
+ json::object *
+ region_model::to_json () const
+ {
+   json::object *model_obj = new json::object ();
+   model_obj->set ("store", m_store.to_json ());
+   model_obj->set ("constraints", m_constraints->to_json ());
+   if (m_current_frame)
+     model_obj->set ("current_frame", m_current_frame->to_json ());
+   model_obj->set ("dynamic_extents", m_dynamic_extents.to_json ());
+   return model_obj;
+ }
+ 
  /* Assert that this object is valid.  */
  
  void
*************** public:
*** 499,504 ****
--- 562,568 ----
        case POISON_KIND_UNINIT:
  	return OPT_Wanalyzer_use_of_uninitialized_value;
        case POISON_KIND_FREED:
+       case POISON_KIND_DELETED:
  	return OPT_Wanalyzer_use_after_free;
        case POISON_KIND_POPPED_STACK:
  	return OPT_Wanalyzer_use_of_pointer_in_stale_stack_frame;
*************** public:
*** 507,513 ****
  
    bool terminate_path_p () const final override { return true; }
  
!   bool emit (rich_location *rich_loc) final override
    {
      switch (m_pkind)
        {
--- 571,577 ----
  
    bool terminate_path_p () const final override { return true; }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      switch (m_pkind)
        {
*************** public:
*** 515,542 ****
  	gcc_unreachable ();
        case POISON_KIND_UNINIT:
  	{
! 	  diagnostic_metadata m;
! 	  m.add_cwe (457); /* "CWE-457: Use of Uninitialized Variable".  */
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of uninitialized value %qE",
! 			       m_expr);
  	}
  	break;
        case POISON_KIND_FREED:
  	{
! 	  diagnostic_metadata m;
! 	  m.add_cwe (416); /* "CWE-416: Use After Free".  */
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use after %<free%> of %qE",
! 			       m_expr);
  	}
  	break;
        case POISON_KIND_POPPED_STACK:
  	{
  	  /* TODO: which CWE?  */
! 	  return warning_at
! 	    (rich_loc, get_controlling_option (),
! 	     "dereferencing pointer %qE to within stale stack frame",
  	     m_expr);
  	}
  	break;
--- 579,608 ----
  	gcc_unreachable ();
        case POISON_KIND_UNINIT:
  	{
! 	  ctxt.add_cwe (457); /* "CWE-457: Use of Uninitialized Variable".  */
! 	  return ctxt.warn ("use of uninitialized value %qE",
! 			    m_expr);
  	}
  	break;
        case POISON_KIND_FREED:
  	{
! 	  ctxt.add_cwe (416); /* "CWE-416: Use After Free".  */
! 	  return ctxt.warn ("use after %<free%> of %qE",
! 			    m_expr);
! 	}
! 	break;
!       case POISON_KIND_DELETED:
! 	{
! 	  ctxt.add_cwe (416); /* "CWE-416: Use After Free".  */
! 	  return ctxt.warn ("use after %<delete%> of %qE",
! 			    m_expr);
  	}
  	break;
        case POISON_KIND_POPPED_STACK:
  	{
  	  /* TODO: which CWE?  */
! 	  return ctxt.warn
! 	    ("dereferencing pointer %qE to within stale stack frame",
  	     m_expr);
  	}
  	break;
*************** public:
*** 555,560 ****
--- 621,629 ----
        case POISON_KIND_FREED:
  	return ev.formatted_print ("use after %<free%> of %qE here",
  				   m_expr);
+       case POISON_KIND_DELETED:
+ 	return ev.formatted_print ("use after %<delete%> of %qE here",
+ 				   m_expr);
        case POISON_KIND_POPPED_STACK:
  	return ev.formatted_print
  	  ("dereferencing pointer %qE to within stale stack frame",
*************** public:
*** 638,647 ****
      return OPT_Wanalyzer_shift_count_negative;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "shift by negative count (%qE)", m_count_cst);
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
--- 707,715 ----
      return OPT_Wanalyzer_shift_count_negative;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     return ctxt.warn ("shift by negative count (%qE)", m_count_cst);
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
*************** public:
*** 685,695 ****
      return OPT_Wanalyzer_shift_count_overflow;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "shift by count (%qE) >= precision of type (%qi)",
! 		       m_count_cst, m_operand_precision);
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
--- 753,762 ----
      return OPT_Wanalyzer_shift_count_overflow;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     return ctxt.warn ("shift by count (%qE) >= precision of type (%qi)",
! 		      m_count_cst, m_operand_precision);
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
*************** region_model::get_gassign_result (const
*** 713,718 ****
--- 780,796 ----
  				   region_model_context *ctxt)
  {
    tree lhs = gimple_assign_lhs (assign);
+ 
+   if (gimple_has_volatile_ops (assign)
+       && !gimple_clobber_p (assign))
+     {
+       conjured_purge p (this, ctxt);
+       return m_mgr->get_or_create_conjured_svalue (TREE_TYPE (lhs),
+ 						   assign,
+ 						   get_lvalue (lhs, ctxt),
+ 						   p);
+     }
+ 
    tree rhs1 = gimple_assign_rhs1 (assign);
    enum tree_code op = gimple_assign_rhs_code (assign);
    switch (op)
*************** region_model::get_gassign_result (const
*** 860,866 ****
  	       or by greater than or equal to the number of bits that exist in
  	       the operand."  */
  	    if (const tree rhs2_cst = rhs2_sval->maybe_get_constant ())
! 	      if (TREE_CODE (rhs2_cst) == INTEGER_CST)
  		{
  		  if (tree_int_cst_sgn (rhs2_cst) < 0)
  		    ctxt->warn
--- 938,945 ----
  	       or by greater than or equal to the number of bits that exist in
  	       the operand."  */
  	    if (const tree rhs2_cst = rhs2_sval->maybe_get_constant ())
! 	      if (TREE_CODE (rhs2_cst) == INTEGER_CST
! 		  && INTEGRAL_TYPE_P (TREE_TYPE (rhs1)))
  		{
  		  if (tree_int_cst_sgn (rhs2_cst) < 0)
  		    ctxt->warn
*************** region_model::on_assignment (const gassi
*** 1150,1155 ****
--- 1229,1243 ----
  
    const region *lhs_reg = get_lvalue (lhs, ctxt);
  
+   /* Any writes other than to the stack are treated
+      as externally visible.  */
+   if (ctxt)
+     {
+       enum memory_space memspace = lhs_reg->get_memory_space ();
+       if (memspace != MEMSPACE_STACK)
+ 	ctxt->maybe_did_work ();
+     }
+ 
    /* Most assignments are handled by:
         set_value (lhs_reg, SVALUE, CTXT)
       for some SVALUE.  */
*************** region_model::on_assignment (const gassi
*** 1187,1193 ****
  	    /* Any CONSTRUCTOR that survives to this point is either
  	       just a zero-init of everything, or a vector.  */
  	    if (!CONSTRUCTOR_NO_CLEARING (rhs1))
! 	      zero_fill_region (lhs_reg);
  	    unsigned ix;
  	    tree index;
  	    tree val;
--- 1275,1281 ----
  	    /* Any CONSTRUCTOR that survives to this point is either
  	       just a zero-init of everything, or a vector.  */
  	    if (!CONSTRUCTOR_NO_CLEARING (rhs1))
! 	      zero_fill_region (lhs_reg, ctxt);
  	    unsigned ix;
  	    tree index;
  	    tree val;
*************** region_model::on_stmt_pre (const gimple
*** 1237,1242 ****
--- 1325,1335 ----
        /* No-op for now.  */
        break;
  
+     case GIMPLE_DEBUG:
+       /* We should have stripped these out when building the supergraph.  */
+       gcc_unreachable ();
+       break;
+ 
      case GIMPLE_ASSIGN:
        {
  	const gassign *assign = as_a <const gassign *> (stmt);
*************** region_model::on_stmt_pre (const gimple
*** 1248,1253 ****
--- 1341,1348 ----
        {
  	const gasm *asm_stmt = as_a <const gasm *> (stmt);
  	on_asm_stmt (asm_stmt, ctxt);
+ 	if (ctxt)
+ 	  ctxt->maybe_did_work ();
        }
        break;
  
*************** region_model::on_stmt_pre (const gimple
*** 1270,1328 ****
      }
  }
  
! /* Ensure that all arguments at the call described by CD are checked
!    for poisoned values, by calling get_rvalue on each argument.  */
  
  void
! region_model::check_call_args (const call_details &cd) const
  {
!   for (unsigned arg_idx = 0; arg_idx < cd.num_args (); arg_idx++)
!     cd.get_arg_svalue (arg_idx);
! }
  
! /* Return true if CD is known to be a call to a function with
!    __attribute__((const)).  */
  
! static bool
! const_fn_p (const call_details &cd)
! {
!   tree fndecl = cd.get_fndecl_for_call ();
!   if (!fndecl)
!     return false;
!   gcc_assert (DECL_P (fndecl));
!   return TREE_READONLY (fndecl);
! }
  
! /* If this CD is known to be a call to a function with
!    __attribute__((const)), attempt to get a const_fn_result_svalue
!    based on the arguments, or return NULL otherwise.  */
  
! static const svalue *
! maybe_get_const_fn_result (const call_details &cd)
! {
!   if (!const_fn_p (cd))
!     return NULL;
  
!   unsigned num_args = cd.num_args ();
!   if (num_args > const_fn_result_svalue::MAX_INPUTS)
!     /* Too many arguments.  */
!     return NULL;
  
!   auto_vec<const svalue *> inputs (num_args);
!   for (unsigned arg_idx = 0; arg_idx < num_args; arg_idx++)
!     {
!       const svalue *arg_sval = cd.get_arg_svalue (arg_idx);
!       if (!arg_sval->can_have_associated_state_p ())
! 	return NULL;
!       inputs.quick_push (arg_sval);
      }
  
!   region_model_manager *mgr = cd.get_manager ();
!   const svalue *sval
!     = mgr->get_or_create_const_fn_result_svalue (cd.get_lhs_type (),
! 						 cd.get_fndecl_for_call (),
! 						 inputs);
!   return sval;
  }
  
  /* Update this model for an outcome of a call that returns a specific
--- 1365,1472 ----
      }
  }
  
! /* Given a call CD with function attribute FORMAT_ATTR, check that the
!    format arg to the call is a valid null-terminated string.  */
  
  void
! region_model::check_call_format_attr (const call_details &cd,
! 				      tree format_attr) const
  {
!   /* We assume that FORMAT_ATTR has already been validated.  */
  
!   /* arg0 of the attribute should be kind of format strings
!      that this function expects (e.g. "printf").  */
!   const tree arg0_tree_list = TREE_VALUE (format_attr);
!   if (!arg0_tree_list)
!     return;
  
!   /* arg1 of the attribute should be the 1-based parameter index
!      to treat as the format string.  */
!   const tree arg1_tree_list = TREE_CHAIN (arg0_tree_list);
!   if (!arg1_tree_list)
!     return;
!   const tree arg1_value = TREE_VALUE (arg1_tree_list);
!   if (!arg1_value)
!     return;
  
!   unsigned format_arg_idx = TREE_INT_CST_LOW (arg1_value) - 1;
!   if (cd.num_args () <= format_arg_idx)
!     return;
  
!   /* Subclass of annotating_context that
!      adds a note about the format attr to any saved diagnostics.  */
!   class annotating_ctxt : public annotating_context
!   {
!   public:
!     annotating_ctxt (const call_details &cd,
! 		     unsigned fmt_param_idx)
!     : annotating_context (cd.get_ctxt ()),
!       m_cd (cd),
!       m_fmt_param_idx (fmt_param_idx)
!     {
!     }
!     void add_annotations () final override
!     {
!       class reason_format_attr
! 	: public pending_note_subclass<reason_format_attr>
!       {
!       public:
! 	reason_format_attr (const call_arg_details &arg_details)
! 	  : m_arg_details (arg_details)
! 	{
! 	}
  
! 	const char *get_kind () const final override
! 	{
! 	  return "reason_format_attr";
! 	}
  
! 	void emit () const final override
! 	{
! 	  inform (DECL_SOURCE_LOCATION (m_arg_details.m_called_fndecl),
! 		  "parameter %i of %qD marked as a format string"
! 		  " via %qs attribute",
! 		  m_arg_details.m_arg_idx + 1, m_arg_details.m_called_fndecl,
! 		  "format");
! 	}
! 
! 	bool operator== (const reason_format_attr &other) const
! 	{
! 	  return m_arg_details == other.m_arg_details;
! 	}
! 
!       private:
! 	call_arg_details m_arg_details;
!       };
! 
!       call_arg_details arg_details (m_cd, m_fmt_param_idx);
!       add_note (make_unique<reason_format_attr> (arg_details));
      }
+   private:
+     const call_details &m_cd;
+     unsigned m_fmt_param_idx;
+   };
  
!   annotating_ctxt my_ctxt (cd, format_arg_idx);
!   call_details my_cd (cd, &my_ctxt);
!   my_cd.check_for_null_terminated_string_arg (format_arg_idx);
! }
! 
! /* Ensure that all arguments at the call described by CD are checked
!    for poisoned values, by calling get_rvalue on each argument.
! 
!    Check that calls to functions with "format" attribute have valid
!    null-terminated strings for their format argument.  */
! 
! void
! region_model::check_call_args (const call_details &cd) const
! {
!   for (unsigned arg_idx = 0; arg_idx < cd.num_args (); arg_idx++)
!     cd.get_arg_svalue (arg_idx);
! 
!   /* Handle attribute "format".  */
!   if (tree format_attr = cd.lookup_function_attribute ("format"))
!     check_call_format_attr (cd, format_attr);
  }
  
  /* Update this model for an outcome of a call that returns a specific
*************** region_model::update_for_zero_return (co
*** 1357,1363 ****
    update_for_int_cst_return (cd, 0, unmergeable);
  }
  
! /* Update this model for an outcome of a call that returns non-zero.  */
  
  void
  region_model::update_for_nonzero_return (const call_details &cd)
--- 1501,1509 ----
    update_for_int_cst_return (cd, 0, unmergeable);
  }
  
! /* Update this model for an outcome of a call that returns non-zero.
!    Specifically, assign an svalue to the LHS, and add a constraint that
!    that svalue is non-zero.  */
  
  void
  region_model::update_for_nonzero_return (const call_details &cd)
*************** region_model::update_for_nonzero_return
*** 1366,1371 ****
--- 1512,1518 ----
      return;
    if (TREE_CODE (cd.get_lhs_type ()) != INTEGER_TYPE)
      return;
+   cd.set_any_lhs_with_defaults ();
    const svalue *zero
      = m_mgr->get_or_create_int_cst (cd.get_lhs_type (), 0);
    const svalue *result
*************** region_model::get_known_function (enum i
*** 1461,1466 ****
--- 1608,1669 ----
    return known_fn_mgr->get_internal_fn (ifn);
  }
  
+ /* Get any builtin_known_function for CALL and emit any warning to CTXT
+    if not NULL.
+ 
+    The call must match all assumptions made by the known_function (such as
+    e.g. "argument 1's type must be a pointer type").
+ 
+    Return NULL if no builtin_known_function is found, or it does
+    not match the assumption(s).
+ 
+    Internally calls get_known_function to find a known_function and cast it
+    to a builtin_known_function.
+ 
+    For instance, calloc is a C builtin, defined in gcc/builtins.def
+    by the DEF_LIB_BUILTIN macro. Such builtins are recognized by the
+    analyzer by their name, so that even in C++ or if the user redeclares
+    them but mismatch their signature, they are still recognized as builtins.
+ 
+    Cases when a supposed builtin is not flagged as one by the FE:
+ 
+     The C++ FE does not recognize calloc as a builtin if it has not been
+     included from a standard header, but the C FE does. Hence in C++ if
+     CALL comes from a calloc and stdlib is not included,
+     gcc/tree.h:fndecl_built_in_p (CALL) would be false.
+ 
+     In C code, a __SIZE_TYPE__ calloc (__SIZE_TYPE__, __SIZE_TYPE__) user
+     declaration has obviously a mismatching signature from the standard, and
+     its function_decl tree won't be unified by
+     gcc/c-decl.cc:match_builtin_function_types.
+ 
+    Yet in both cases the analyzer should treat the calls as a builtin calloc
+    so that extra attributes unspecified by the standard but added by GCC
+    (e.g. sprintf attributes in gcc/builtins.def), useful for the detection of
+    dangerous behavior, are indeed processed.
+ 
+    Therefore for those cases when a "builtin flag" is not added by the FE,
+    builtins' kf are derived from builtin_known_function, whose method
+    builtin_known_function::builtin_decl returns the builtin's
+    function_decl tree as defined in gcc/builtins.def, with all the extra
+    attributes.  */
+ 
+ const builtin_known_function *
+ region_model::get_builtin_kf (const gcall *call,
+ 			       region_model_context *ctxt /* = NULL */) const
+ {
+   region_model *mut_this = const_cast <region_model *> (this);
+   tree callee_fndecl = mut_this->get_fndecl_for_call (call, ctxt);
+   if (! callee_fndecl)
+     return NULL;
+ 
+   call_details cd (call, mut_this, ctxt);
+   if (const known_function *kf = get_known_function (callee_fndecl, cd))
+     return kf->dyn_cast_builtin_kf ();
+ 
+   return NULL;
+ }
+ 
  /* Update this model for the CALL stmt, using CTXT to report any
     diagnostics - the first half.
  
*************** region_model::on_call_pre (const gcall *
*** 1496,1530 ****
  
    tree callee_fndecl = get_fndecl_for_call (call, ctxt);
  
-   /* Some of the cases below update the lhs of the call based on the
-      return value, but not all.  Provide a default value, which may
-      get overwritten below.  */
-   if (tree lhs = gimple_call_lhs (call))
-     {
-       const region *lhs_region = get_lvalue (lhs, ctxt);
-       const svalue *sval = maybe_get_const_fn_result (cd);
-       if (!sval)
- 	{
- 	  if (callee_fndecl
- 	      && lookup_attribute ("malloc", DECL_ATTRIBUTES (callee_fndecl)))
- 	    {
- 	      const region *new_reg
- 		= get_or_create_region_for_heap_alloc (NULL, ctxt);
- 	      mark_region_as_unknown (new_reg, NULL);
- 	      sval = m_mgr->get_ptr_svalue (cd.get_lhs_type (), new_reg);
- 	    }
- 	  else
- 	    /* For the common case of functions without __attribute__((const)),
- 	       use a conjured value, and purge any prior state involving that
- 	       value (in case this is in a loop).  */
- 	    sval = m_mgr->get_or_create_conjured_svalue (TREE_TYPE (lhs), call,
- 							 lhs_region,
- 							 conjured_purge (this,
- 									 ctxt));
- 	}
-       set_value (lhs_region, sval, ctxt);
-     }
- 
    if (gimple_call_internal_p (call))
      if (const known_function *kf
  	  = get_known_function (gimple_call_internal_fn (call)))
--- 1699,1704 ----
*************** region_model::on_call_pre (const gcall *
*** 1534,1540 ****
        }
  
    if (!callee_fndecl)
!     return true; /* Unknown side effects.  */
  
    if (const known_function *kf = get_known_function (callee_fndecl, cd))
      {
--- 1708,1717 ----
        }
  
    if (!callee_fndecl)
!     {
!       cd.set_any_lhs_with_defaults ();
!       return true; /* Unknown side effects.  */
!     }
  
    if (const known_function *kf = get_known_function (callee_fndecl, cd))
      {
*************** region_model::on_call_pre (const gcall *
*** 1542,1547 ****
--- 1719,1726 ----
        return false; /* No further side effects.  */
      }
  
+   cd.set_any_lhs_with_defaults ();
+ 
    const int callee_fndecl_flags = flags_from_decl_or_type (callee_fndecl);
    if (callee_fndecl_flags & (ECF_CONST | ECF_PURE))
      return false; /* No side effects.  */
*************** region_model::on_call_post (const gcall
*** 1588,1594 ****
      }
  
    if (unknown_side_effects)
!     handle_unrecognized_call (call, ctxt);
  }
  
  /* Purge state involving SVAL from this region_model, using CTXT
--- 1767,1777 ----
      }
  
    if (unknown_side_effects)
!     {
!       handle_unrecognized_call (call, ctxt);
!       if (ctxt)
! 	ctxt->maybe_did_work ();
!     }
  }
  
  /* Purge state involving SVAL from this region_model, using CTXT
*************** private:
*** 1669,1694 ****
     attribute.  */
  
  void
! region_model::
! check_external_function_for_access_attr (const gcall *call,
! 					 tree callee_fndecl,
! 					 region_model_context *ctxt) const
  {
    gcc_assert (call);
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
  
    tree fntype = TREE_TYPE (callee_fndecl);
!   if (!fntype)
!     return;
! 
!   if (!TYPE_ATTRIBUTES (fntype))
!     return;
! 
!   /* Initialize a map of attribute access specifications for arguments
!      to the function call.  */
!   rdwr_map rdwr_idx;
!   init_attr_rdwr_indices (&rdwr_idx, TYPE_ATTRIBUTES (fntype));
  
    unsigned argno = 0;
  
--- 1852,1868 ----
     attribute.  */
  
  void
! region_model::check_function_attr_access (const gcall *call,
! 					  tree callee_fndecl,
! 					  region_model_context *ctxt,
! 					  rdwr_map &rdwr_idx) const
  {
    gcc_assert (call);
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
  
    tree fntype = TREE_TYPE (callee_fndecl);
!   gcc_assert (fntype);
  
    unsigned argno = 0;
  
*************** check_external_function_for_access_attr
*** 1706,1728 ****
        if (access->mode == access_write_only
  	  || access->mode == access_read_write)
  	{
! 	  /* Subclass of decorated_region_model_context that
  	     adds a note about the attr access to any saved diagnostics.  */
! 	  class annotating_ctxt : public note_adding_context
  	  {
  	  public:
  	    annotating_ctxt (tree callee_fndecl,
  			     const attr_access &access,
  			     region_model_context *ctxt)
! 	    : note_adding_context (ctxt),
  	      m_callee_fndecl (callee_fndecl),
  	      m_access (access)
  	    {
  	    }
! 	    std::unique_ptr<pending_note> make_note () final override
  	    {
! 	      return make_unique<reason_attr_access>
! 		(m_callee_fndecl, m_access);
  	    }
  	  private:
  	    tree m_callee_fndecl;
--- 1880,1902 ----
        if (access->mode == access_write_only
  	  || access->mode == access_read_write)
  	{
! 	  /* Subclass of annotating_context that
  	     adds a note about the attr access to any saved diagnostics.  */
! 	  class annotating_ctxt : public annotating_context
  	  {
  	  public:
  	    annotating_ctxt (tree callee_fndecl,
  			     const attr_access &access,
  			     region_model_context *ctxt)
! 	    : annotating_context (ctxt),
  	      m_callee_fndecl (callee_fndecl),
  	      m_access (access)
  	    {
  	    }
! 	    void add_annotations () final override
  	    {
! 	      add_note (make_unique<reason_attr_access>
! 			(m_callee_fndecl, m_access));
  	    }
  	  private:
  	    tree m_callee_fndecl;
*************** check_external_function_for_access_attr
*** 1736,1747 ****
  	  tree ptr_tree = gimple_call_arg (call, access->ptrarg);
  	  const svalue *ptr_sval = get_rvalue (ptr_tree, &my_ctxt);
  	  const region *reg = deref_rvalue (ptr_sval, ptr_tree, &my_ctxt);
! 	  check_region_for_write (reg, &my_ctxt);
  	  /* We don't use the size arg for now.  */
  	}
      }
  }
  
  /* Handle a call CALL to a function with unknown behavior.
  
     Traverse the regions in this model, determining what regions are
--- 1910,2055 ----
  	  tree ptr_tree = gimple_call_arg (call, access->ptrarg);
  	  const svalue *ptr_sval = get_rvalue (ptr_tree, &my_ctxt);
  	  const region *reg = deref_rvalue (ptr_sval, ptr_tree, &my_ctxt);
! 	  check_region_for_write (reg, nullptr, &my_ctxt);
  	  /* We don't use the size arg for now.  */
  	}
      }
  }
  
+ /* Subroutine of region_model::check_function_attr_null_terminated_string_arg,
+    checking one instance of __attribute__((null_terminated_string_arg)).  */
+ 
+ void
+ region_model::
+ check_one_function_attr_null_terminated_string_arg (const gcall *call,
+ 						    tree callee_fndecl,
+ 						    region_model_context *ctxt,
+ 						    rdwr_map &rdwr_idx,
+ 						    tree attr)
+ {
+   gcc_assert (call);
+   gcc_assert (callee_fndecl);
+   gcc_assert (ctxt);
+   gcc_assert (attr);
+ 
+   tree arg = TREE_VALUE (attr);
+   if (!arg)
+     return;
+ 
+   /* Convert from 1-based to 0-based index.  */
+   unsigned int arg_idx = TREE_INT_CST_LOW (TREE_VALUE (arg)) - 1;
+ 
+   /* If there's also an "access" attribute on the ptr param
+      for reading with a size param specified, then that size
+      limits the size of the possible read from the pointer.  */
+   if (const attr_access* access = rdwr_idx.get (arg_idx))
+     if ((access->mode == access_read_only
+ 	 || access->mode == access_read_write)
+ 	&& access->sizarg != UINT_MAX)
+       {
+ 	call_details cd_checked (call, this, ctxt);
+ 	const svalue *limit_sval
+ 	  = cd_checked.get_arg_svalue (access->sizarg);
+ 	const svalue *ptr_sval
+ 	  = cd_checked.get_arg_svalue (arg_idx);
+ 	/* Try reading all of the bytes expressed by the size param,
+ 	   but without emitting warnings (via a null context).  */
+ 	const svalue *limited_sval
+ 	  = read_bytes (deref_rvalue (ptr_sval, NULL_TREE, nullptr),
+ 			NULL_TREE,
+ 			limit_sval,
+ 			nullptr);
+ 	if (limited_sval->get_kind () == SK_POISONED)
+ 	  {
+ 	    /* Reading up to the truncation limit caused issues.
+ 	       Assume that the string is meant to be terminated
+ 	       before then, so perform a *checked* check for the
+ 	       terminator.  */
+ 	    check_for_null_terminated_string_arg (cd_checked,
+ 						  arg_idx);
+ 	  }
+ 	else
+ 	  {
+ 	    /* Reading up to the truncation limit seems OK; repeat
+ 	       the read, but with checking enabled.  */
+ 	    read_bytes (deref_rvalue (ptr_sval, NULL_TREE, ctxt),
+ 			NULL_TREE,
+ 			limit_sval,
+ 			ctxt);
+ 	  }
+ 	return;
+       }
+ 
+   /* Otherwise, we don't have an access-attribute limiting the read.
+      Simulate a read up to the null terminator (if any).  */
+ 
+   call_details cd (call, this, ctxt);
+   check_for_null_terminated_string_arg (cd, arg_idx);
+ }
+ 
+ /* Check CALL a call to external function CALLEE_FNDECL for any uses
+    of __attribute__ ((null_terminated_string_arg)), compaining
+    to CTXT about any issues.
+ 
+    Use RDWR_IDX for tracking uses of __attribute__ ((access, ....).  */
+ 
+ void
+ region_model::
+ check_function_attr_null_terminated_string_arg (const gcall *call,
+ 						tree callee_fndecl,
+ 						region_model_context *ctxt,
+ 						rdwr_map &rdwr_idx)
+ {
+   gcc_assert (call);
+   gcc_assert (callee_fndecl);
+   gcc_assert (ctxt);
+ 
+   tree fntype = TREE_TYPE (callee_fndecl);
+   gcc_assert (fntype);
+ 
+   /* A function declaration can specify multiple attribute
+      null_terminated_string_arg, each with one argument.  */
+   for (tree attr = TYPE_ATTRIBUTES (fntype); attr; attr = TREE_CHAIN (attr))
+     {
+       attr = lookup_attribute ("null_terminated_string_arg", attr);
+       if (!attr)
+ 	return;
+ 
+       check_one_function_attr_null_terminated_string_arg (call, callee_fndecl,
+ 							  ctxt, rdwr_idx,
+ 							  attr);
+     }
+ }
+ 
+ /* Check CALL a call to external function CALLEE_FNDECL for any
+    function attributes, complaining to CTXT about any issues.  */
+ 
+ void
+ region_model::check_function_attrs (const gcall *call,
+ 				    tree callee_fndecl,
+ 				    region_model_context *ctxt)
+ {
+   gcc_assert (call);
+   gcc_assert (callee_fndecl);
+   gcc_assert (ctxt);
+ 
+   tree fntype = TREE_TYPE (callee_fndecl);
+   if (!fntype)
+     return;
+ 
+   if (!TYPE_ATTRIBUTES (fntype))
+     return;
+ 
+   /* Initialize a map of attribute access specifications for arguments
+      to the function call.  */
+   rdwr_map rdwr_idx;
+   init_attr_rdwr_indices (&rdwr_idx, TYPE_ATTRIBUTES (fntype));
+ 
+   check_function_attr_access (call, callee_fndecl, ctxt, rdwr_idx);
+   check_function_attr_null_terminated_string_arg (call, callee_fndecl,
+ 						  ctxt, rdwr_idx);
+ }
+ 
  /* Handle a call CALL to a function with unknown behavior.
  
     Traverse the regions in this model, determining what regions are
*************** region_model::handle_unrecognized_call (
*** 1758,1764 ****
    tree fndecl = get_fndecl_for_call (call, ctxt);
  
    if (fndecl && ctxt)
!     check_external_function_for_access_attr (call, fndecl, ctxt);
  
    reachable_regions reachable_regs (this);
  
--- 2066,2072 ----
    tree fndecl = get_fndecl_for_call (call, ctxt);
  
    if (fndecl && ctxt)
!     check_function_attrs (call, fndecl, ctxt);
  
    reachable_regions reachable_regs (this);
  
*************** void
*** 1998,2003 ****
--- 2306,2312 ----
  region_model::handle_phi (const gphi *phi,
  			  tree lhs, tree rhs,
  			  const region_model &old_state,
+ 			  hash_set<const svalue *> &svals_changing_meaning,
  			  region_model_context *ctxt)
  {
    /* For now, don't bother tracking the .MEM SSA names.  */
*************** region_model::handle_phi (const gphi *ph
*** 2009,2014 ****
--- 2318,2327 ----
    const svalue *src_sval = old_state.get_rvalue (rhs, ctxt);
    const region *dst_reg = old_state.get_lvalue (lhs, ctxt);
  
+   const svalue *sval = old_state.get_rvalue (lhs, nullptr);
+   if (sval->get_kind () == SK_WIDENING)
+     svals_changing_meaning.add (sval);
+ 
    set_value (dst_reg, src_sval, ctxt);
  
    if (ctxt)
*************** region_model::get_lvalue_1 (path_var pv,
*** 2092,2098 ****
        {
  	gcc_assert (TREE_CODE (expr) == SSA_NAME
  		    || TREE_CODE (expr) == PARM_DECL
! 		    || TREE_CODE (expr) == VAR_DECL
  		    || TREE_CODE (expr) == RESULT_DECL);
  
  	int stack_index = pv.m_stack_depth;
--- 2405,2411 ----
        {
  	gcc_assert (TREE_CODE (expr) == SSA_NAME
  		    || TREE_CODE (expr) == PARM_DECL
! 		    || VAR_P (expr)
  		    || TREE_CODE (expr) == RESULT_DECL);
  
  	int stack_index = pv.m_stack_depth;
*************** region_model::called_from_main_p () cons
*** 2324,2330 ****
    /* Determine if the oldest stack frame in this model is for "main".  */
    const frame_region *frame0 = get_frame_at_index (0);
    gcc_assert (frame0);
!   return id_equal (DECL_NAME (frame0->get_function ()->decl), "main");
  }
  
  /* Subroutine of region_model::get_store_value for when REG is (or is within)
--- 2637,2643 ----
    /* Determine if the oldest stack frame in this model is for "main".  */
    const frame_region *frame0 = get_frame_at_index (0);
    gcc_assert (frame0);
!   return id_equal (DECL_NAME (frame0->get_function ().decl), "main");
  }
  
  /* Subroutine of region_model::get_store_value for when REG is (or is within)
*************** region_model::get_initial_value_for_glob
*** 2355,2384 ****
       the initial value of REG can be taken from the initialization value
       of the decl.  */
    if (called_from_main_p () || TREE_READONLY (decl))
!     {
!       /* Attempt to get the initializer value for base_reg.  */
!       if (const svalue *base_reg_init
! 	    = base_reg->get_svalue_for_initializer (m_mgr))
! 	{
! 	  if (reg == base_reg)
! 	    return base_reg_init;
! 	  else
! 	    {
! 	      /* Get the value for REG within base_reg_init.  */
! 	      binding_cluster c (base_reg);
! 	      c.bind (m_mgr->get_store_manager (), base_reg, base_reg_init);
! 	      const svalue *sval
! 		= c.get_any_binding (m_mgr->get_store_manager (), reg);
! 	      if (sval)
! 		{
! 		  if (reg->get_type ())
! 		    sval = m_mgr->get_or_create_cast (reg->get_type (),
! 						      sval);
! 		  return sval;
! 		}
! 	    }
! 	}
!     }
  
    /* Otherwise, return INIT_VAL(REG).  */
    return m_mgr->get_or_create_initial_value (reg);
--- 2668,2674 ----
       the initial value of REG can be taken from the initialization value
       of the decl.  */
    if (called_from_main_p () || TREE_READONLY (decl))
!     return reg->get_initial_value_at_main (m_mgr);
  
    /* Otherwise, return INIT_VAL(REG).  */
    return m_mgr->get_or_create_initial_value (reg);
*************** region_model::get_store_value (const reg
*** 2396,2402 ****
    if (reg->empty_p ())
      return m_mgr->get_or_create_unknown_svalue (reg->get_type ());
  
!   check_region_for_read (reg, ctxt);
  
    /* Special-case: handle var_decls in the constant pool.  */
    if (const decl_region *decl_reg = reg->dyn_cast_decl_region ())
--- 2686,2694 ----
    if (reg->empty_p ())
      return m_mgr->get_or_create_unknown_svalue (reg->get_type ());
  
!   bool check_poisoned = true;
!   if (check_region_for_read (reg, ctxt))
!     check_poisoned = false;
  
    /* Special-case: handle var_decls in the constant pool.  */
    if (const decl_region *decl_reg = reg->dyn_cast_decl_region ())
*************** region_model::get_store_value (const reg
*** 2432,2438 ****
  	= cast_reg->get_original_region ()->dyn_cast_string_region ())
        {
  	tree string_cst = str_reg->get_string_cst ();
! 	tree byte_offset_cst = build_int_cst (integer_type_node, 0);
  	if (const svalue *char_sval
  	    = m_mgr->maybe_get_char_from_string_cst (string_cst,
  						     byte_offset_cst))
--- 2724,2730 ----
  	= cast_reg->get_original_region ()->dyn_cast_string_region ())
        {
  	tree string_cst = str_reg->get_string_cst ();
! 	tree byte_offset_cst = integer_zero_node;
  	if (const svalue *char_sval
  	    = m_mgr->maybe_get_char_from_string_cst (string_cst,
  						     byte_offset_cst))
*************** region_model::get_store_value (const reg
*** 2449,2455 ****
        == RK_GLOBALS)
      return get_initial_value_for_global (reg);
  
!   return m_mgr->get_or_create_initial_value (reg);
  }
  
  /* Return false if REG does not exist, true if it may do.
--- 2741,2747 ----
        == RK_GLOBALS)
      return get_initial_value_for_global (reg);
  
!   return m_mgr->get_or_create_initial_value (reg, check_poisoned);
  }
  
  /* Return false if REG does not exist, true if it may do.
*************** region_model::region_exists_p (const reg
*** 2481,2487 ****
  
  const region *
  region_model::deref_rvalue (const svalue *ptr_sval, tree ptr_tree,
! 			    region_model_context *ctxt) const
  {
    gcc_assert (ptr_sval);
    gcc_assert (POINTER_TYPE_P (ptr_sval->get_type ()));
--- 2773,2780 ----
  
  const region *
  region_model::deref_rvalue (const svalue *ptr_sval, tree ptr_tree,
! 			    region_model_context *ctxt,
! 			    bool add_nonnull_constraint) const
  {
    gcc_assert (ptr_sval);
    gcc_assert (POINTER_TYPE_P (ptr_sval->get_type ()));
*************** region_model::deref_rvalue (const svalue
*** 2491,2499 ****
       -Wanalyzer-null-dereference for the case where we later have an
       if (PTR_SVAL) that would occur if we considered the false branch
       and transitioned the malloc state machine from start->null.  */
!   tree null_ptr_cst = build_int_cst (ptr_sval->get_type (), 0);
!   const svalue *null_ptr = m_mgr->get_or_create_constant_svalue (null_ptr_cst);
!   m_constraints->add_constraint (ptr_sval, NE_EXPR, null_ptr);
  
    switch (ptr_sval->get_kind ())
      {
--- 2784,2796 ----
       -Wanalyzer-null-dereference for the case where we later have an
       if (PTR_SVAL) that would occur if we considered the false branch
       and transitioned the malloc state machine from start->null.  */
!   if (add_nonnull_constraint)
!     {
!       tree null_ptr_cst = build_int_cst (ptr_sval->get_type (), 0);
!       const svalue *null_ptr
! 	= m_mgr->get_or_create_constant_svalue (null_ptr_cst);
!       m_constraints->add_constraint (ptr_sval, NE_EXPR, null_ptr);
!     }
  
    switch (ptr_sval->get_kind ())
      {
*************** region_model::deref_rvalue (const svalue
*** 2544,2551 ****
  		const poisoned_svalue *poisoned_sval
  		  = as_a <const poisoned_svalue *> (ptr_sval);
  		enum poison_kind pkind = poisoned_sval->get_poison_kind ();
! 		ctxt->warn (make_unique<poisoned_value_diagnostic>
! 			      (ptr, pkind, NULL, NULL));
  	      }
  	  }
        }
--- 2841,2848 ----
  		const poisoned_svalue *poisoned_sval
  		  = as_a <const poisoned_svalue *> (ptr_sval);
  		enum poison_kind pkind = poisoned_sval->get_poison_kind ();
! 		ctxt->warn (::make_unique<poisoned_value_diagnostic>
! 			      (ptr, pkind, nullptr, nullptr));
  	      }
  	  }
        }
*************** public:
*** 2598,2620 ****
      return OPT_Wanalyzer_write_to_const;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      auto_diagnostic_group d;
      bool warned;
      switch (m_reg->get_kind ())
        {
        default:
! 	warned = warning_at (rich_loc, get_controlling_option (),
! 			     "write to %<const%> object %qE", m_decl);
  	break;
        case RK_FUNCTION:
! 	warned = warning_at (rich_loc, get_controlling_option (),
! 			     "write to function %qE", m_decl);
  	break;
        case RK_LABEL:
! 	warned = warning_at (rich_loc, get_controlling_option (),
! 			     "write to label %qE", m_decl);
  	break;
        }
      if (warned)
--- 2895,2914 ----
      return OPT_Wanalyzer_write_to_const;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      auto_diagnostic_group d;
      bool warned;
      switch (m_reg->get_kind ())
        {
        default:
! 	warned = ctxt.warn ("write to %<const%> object %qE", m_decl);
  	break;
        case RK_FUNCTION:
! 	warned = ctxt.warn ("write to function %qE", m_decl);
  	break;
        case RK_LABEL:
! 	warned = ctxt.warn ("write to label %qE", m_decl);
  	break;
        }
      if (warned)
*************** public:
*** 2666,2675 ****
      return OPT_Wanalyzer_write_to_string_literal;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "write to string literal");
      /* Ideally we would show the location of the STRING_CST as well,
         but it is not available at this point.  */
    }
--- 2960,2968 ----
      return OPT_Wanalyzer_write_to_string_literal;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     return ctxt.warn ("write to string literal");
      /* Ideally we would show the location of the STRING_CST as well,
         but it is not available at this point.  */
    }
*************** region_model::get_capacity (const region
*** 2764,2769 ****
--- 3057,3071 ----
        /* Look through sized regions to get at the capacity
  	 of the underlying regions.  */
        return get_capacity (reg->get_parent_region ());
+     case RK_STRING:
+       {
+ 	/* "Capacity" here means "size".  */
+ 	const string_region *string_reg = as_a <const string_region *> (reg);
+ 	tree string_cst = string_reg->get_string_cst ();
+ 	return m_mgr->get_or_create_int_cst (size_type_node,
+ 					     TREE_STRING_LENGTH (string_cst));
+       }
+       break;
      }
  
    if (const svalue *recorded = get_dynamic_extents (reg))
*************** region_model::get_capacity (const region
*** 2772,2820 ****
    return m_mgr->get_or_create_unknown_svalue (sizetype);
  }
  
- /* Return the string size, including the 0-terminator, if SVAL is a
-    constant_svalue holding a string.  Otherwise, return an unknown_svalue.  */
- 
- const svalue *
- region_model::get_string_size (const svalue *sval) const
- {
-   tree cst = sval->maybe_get_constant ();
-   if (!cst || TREE_CODE (cst) != STRING_CST)
-     return m_mgr->get_or_create_unknown_svalue (size_type_node);
- 
-   tree out = build_int_cst (size_type_node, TREE_STRING_LENGTH (cst));
-   return m_mgr->get_or_create_constant_svalue (out);
- }
- 
- /* Return the string size, including the 0-terminator, if REG is a
-    string_region.  Otherwise, return an unknown_svalue.  */
- 
- const svalue *
- region_model::get_string_size (const region *reg) const
- {
-   const string_region *str_reg = dyn_cast <const string_region *> (reg);
-   if (!str_reg)
-     return m_mgr->get_or_create_unknown_svalue (size_type_node);
- 
-   tree cst = str_reg->get_string_cst ();
-   tree out = build_int_cst (size_type_node, TREE_STRING_LENGTH (cst));
-   return m_mgr->get_or_create_constant_svalue (out);
- }
- 
  /* If CTXT is non-NULL, use it to warn about any problems accessing REG,
!    using DIR to determine if this access is a read or write.  */
  
! void
  region_model::check_region_access (const region *reg,
  				   enum access_direction dir,
  				   region_model_context *ctxt) const
  {
    /* Fail gracefully if CTXT is NULL.  */
    if (!ctxt)
!     return;
  
    check_region_for_taint (reg, dir, ctxt);
!   check_region_bounds (reg, dir, ctxt);
  
    switch (dir)
      {
--- 3074,3099 ----
    return m_mgr->get_or_create_unknown_svalue (sizetype);
  }
  
  /* If CTXT is non-NULL, use it to warn about any problems accessing REG,
!    using DIR to determine if this access is a read or write.
!    Return TRUE if an OOB access was detected.
!    If SVAL_HINT is non-NULL, use it as a hint in diagnostics
!    about the value that would be written to REG.  */
  
! bool
  region_model::check_region_access (const region *reg,
  				   enum access_direction dir,
+ 				   const svalue *sval_hint,
  				   region_model_context *ctxt) const
  {
    /* Fail gracefully if CTXT is NULL.  */
    if (!ctxt)
!     return false;
  
+   bool oob_access_detected = false;
    check_region_for_taint (reg, dir, ctxt);
!   if (!check_region_bounds (reg, dir, sval_hint, ctxt))
!     oob_access_detected = true;
  
    switch (dir)
      {
*************** region_model::check_region_access (const
*** 2827,2850 ****
        check_for_writable_region (reg, ctxt);
        break;
      }
  }
  
  /* If CTXT is non-NULL, use it to warn about any problems writing to REG.  */
  
  void
  region_model::check_region_for_write (const region *dest_reg,
  				      region_model_context *ctxt) const
  {
!   check_region_access (dest_reg, DIR_WRITE, ctxt);
  }
  
! /* If CTXT is non-NULL, use it to warn about any problems reading from REG.  */
  
! void
  region_model::check_region_for_read (const region *src_reg,
  				     region_model_context *ctxt) const
  {
!   check_region_access (src_reg, DIR_READ, ctxt);
  }
  
  /* Concrete subclass for casts of pointers that lead to trailing bytes.  */
--- 3106,3132 ----
        check_for_writable_region (reg, ctxt);
        break;
      }
+   return oob_access_detected;
  }
  
  /* If CTXT is non-NULL, use it to warn about any problems writing to REG.  */
  
  void
  region_model::check_region_for_write (const region *dest_reg,
+ 				      const svalue *sval_hint,
  				      region_model_context *ctxt) const
  {
!   check_region_access (dest_reg, DIR_WRITE, sval_hint, ctxt);
  }
  
! /* If CTXT is non-NULL, use it to warn about any problems reading from REG.
!   Returns TRUE if an OOB read was detected.  */
  
! bool
  region_model::check_region_for_read (const region *src_reg,
  				     region_model_context *ctxt) const
  {
!   return check_region_access (src_reg, DIR_READ, NULL, ctxt);
  }
  
  /* Concrete subclass for casts of pointers that lead to trailing bytes.  */
*************** class dubious_allocation_size
*** 2853,2868 ****
  : public pending_diagnostic_subclass<dubious_allocation_size>
  {
  public:
-   dubious_allocation_size (const region *lhs, const region *rhs)
-   : m_lhs (lhs), m_rhs (rhs), m_expr (NULL_TREE),
-     m_has_allocation_event (false)
-   {}
- 
    dubious_allocation_size (const region *lhs, const region *rhs,
! 			   tree expr)
!   : m_lhs (lhs), m_rhs (rhs), m_expr (expr),
      m_has_allocation_event (false)
!   {}
  
    const char *get_kind () const final override
    {
--- 3135,3150 ----
  : public pending_diagnostic_subclass<dubious_allocation_size>
  {
  public:
    dubious_allocation_size (const region *lhs, const region *rhs,
! 			   const svalue *capacity_sval, tree expr,
! 			   const gimple *stmt)
!   : m_lhs (lhs), m_rhs (rhs),
!     m_capacity_sval (capacity_sval), m_expr (expr),
!     m_stmt (stmt),
      m_has_allocation_event (false)
!   {
!     gcc_assert (m_capacity_sval);
!   }
  
    const char *get_kind () const final override
    {
*************** public:
*** 2871,2878 ****
  
    bool operator== (const dubious_allocation_size &other) const
    {
!     return m_lhs == other.m_lhs && m_rhs == other.m_rhs
! 	   && pending_diagnostic::same_tree_p (m_expr, other.m_expr);
    }
  
    int get_controlling_option () const final override
--- 3153,3160 ----
  
    bool operator== (const dubious_allocation_size &other) const
    {
!     return (m_stmt == other.m_stmt
! 	    && pending_diagnostic::same_tree_p (m_expr, other.m_expr));
    }
  
    int get_controlling_option () const final override
*************** public:
*** 2880,2893 ****
      return OPT_Wanalyzer_allocation_size;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     diagnostic_metadata m;
!     m.add_cwe (131);
  
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "allocated buffer size is not a multiple"
! 			 " of the pointee's size");
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final
--- 3162,3173 ----
      return OPT_Wanalyzer_allocation_size;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     ctxt.add_cwe (131);
  
!     return ctxt.warn ("allocated buffer size is not a multiple"
! 		      " of the pointee's size");
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final
*************** public:
*** 2938,2947 ****
--- 3218,3240 ----
      interest->add_region_creation (m_rhs);
    }
  
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const final override
+   {
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/dubious_allocation_size/"
+     props.set (PROPERTY_PREFIX "lhs", m_lhs->to_json ());
+     props.set (PROPERTY_PREFIX "rhs", m_rhs->to_json ());
+     props.set (PROPERTY_PREFIX "capacity_sval", m_capacity_sval->to_json ());
+ #undef PROPERTY_PREFIX
+   }
+ 
  private:
    const region *m_lhs;
    const region *m_rhs;
+   const svalue *m_capacity_sval;
    const tree m_expr;
+   const gimple *m_stmt;
    bool m_has_allocation_event;
  };
  
*************** capacity_compatible_with_type (tree cst,
*** 2972,2978 ****
  
     It works by visiting all svalues inside SVAL until it reaches
     atomic nodes.  From those, it goes back up again and adds each
!    node that might be a multiple of SIZE_CST to the RESULT_SET.  */
  
  class size_visitor : public visitor
  {
--- 3265,3271 ----
  
     It works by visiting all svalues inside SVAL until it reaches
     atomic nodes.  From those, it goes back up again and adds each
!    node that is not a multiple of SIZE_CST to the RESULT_SET.  */
  
  class size_visitor : public visitor
  {
*************** public:
*** 2983,2989 ****
      m_root_sval->accept (this);
    }
  
!   bool get_result ()
    {
      return result_set.contains (m_root_sval);
    }
--- 3276,3282 ----
      m_root_sval->accept (this);
    }
  
!   bool is_dubious_capacity ()
    {
      return result_set.contains (m_root_sval);
    }
*************** public:
*** 2993,3014 ****
      check_constant (sval->get_constant (), sval);
    }
  
-   void visit_unknown_svalue (const unknown_svalue *sval ATTRIBUTE_UNUSED)
-     final override
-   {
-     result_set.add (sval);
-   }
- 
-   void visit_poisoned_svalue (const poisoned_svalue *sval ATTRIBUTE_UNUSED)
-     final override
-   {
-     result_set.add (sval);
-   }
- 
    void visit_unaryop_svalue (const unaryop_svalue *sval) final override
    {
!     const svalue *arg = sval->get_arg ();
!     if (result_set.contains (arg))
        result_set.add (sval);
    }
  
--- 3286,3295 ----
      check_constant (sval->get_constant (), sval);
    }
  
    void visit_unaryop_svalue (const unaryop_svalue *sval) final override
    {
!     if (CONVERT_EXPR_CODE_P (sval->get_op ())
! 	  && result_set.contains (sval->get_arg ()))
        result_set.add (sval);
    }
  
*************** public:
*** 3017,3044 ****
      const svalue *arg0 = sval->get_arg0 ();
      const svalue *arg1 = sval->get_arg1 ();
  
!     if (sval->get_op () == MULT_EXPR)
!       {
! 	if (result_set.contains (arg0) || result_set.contains (arg1))
! 	  result_set.add (sval);
!       }
!     else
        {
! 	if (result_set.contains (arg0) && result_set.contains (arg1))
! 	  result_set.add (sval);
        }
    }
  
-   void visit_repeated_svalue (const repeated_svalue *sval) final override
-   {
-     sval->get_inner_svalue ()->accept (this);
-     if (result_set.contains (sval->get_inner_svalue ()))
-       result_set.add (sval);
-   }
- 
    void visit_unmergeable_svalue (const unmergeable_svalue *sval) final override
    {
-     sval->get_arg ()->accept (this);
      if (result_set.contains (sval->get_arg ()))
        result_set.add (sval);
    }
--- 3298,3321 ----
      const svalue *arg0 = sval->get_arg0 ();
      const svalue *arg1 = sval->get_arg1 ();
  
!     switch (sval->get_op ())
        {
! 	case MULT_EXPR:
! 	  if (result_set.contains (arg0) && result_set.contains (arg1))
! 	    result_set.add (sval);
! 	  break;
! 	case PLUS_EXPR:
! 	case MINUS_EXPR:
! 	  if (result_set.contains (arg0) || result_set.contains (arg1))
! 	    result_set.add (sval);
! 	  break;
! 	default:
! 	  break;
        }
    }
  
    void visit_unmergeable_svalue (const unmergeable_svalue *sval) final override
    {
      if (result_set.contains (sval->get_arg ()))
        result_set.add (sval);
    }
*************** public:
*** 3048,3080 ****
      const svalue *base = sval->get_base_svalue ();
      const svalue *iter = sval->get_iter_svalue ();
  
!     if (result_set.contains (base) && result_set.contains (iter))
        result_set.add (sval);
    }
  
!   void visit_conjured_svalue (const conjured_svalue *sval ATTRIBUTE_UNUSED)
!     final override
    {
!     equiv_class_id id (-1);
      if (m_cm->get_equiv_class_by_svalue (sval, &id))
        {
  	if (tree cst = id.get_obj (*m_cm).get_any_constant ())
  	  check_constant (cst, sval);
! 	else
! 	  result_set.add (sval);
        }
    }
  
!   void visit_asm_output_svalue (const asm_output_svalue *sval ATTRIBUTE_UNUSED)
!     final override
!   {
!     result_set.add (sval);
!   }
! 
!   void visit_const_fn_result_svalue (const const_fn_result_svalue
! 				      *sval ATTRIBUTE_UNUSED) final override
    {
!     result_set.add (sval);
    }
  
  private:
--- 3325,3354 ----
      const svalue *base = sval->get_base_svalue ();
      const svalue *iter = sval->get_iter_svalue ();
  
!     if (result_set.contains (base) || result_set.contains (iter))
        result_set.add (sval);
    }
  
!   void visit_initial_svalue (const initial_svalue *sval) final override
    {
!     equiv_class_id id = equiv_class_id::null ();
      if (m_cm->get_equiv_class_by_svalue (sval, &id))
        {
  	if (tree cst = id.get_obj (*m_cm).get_any_constant ())
  	  check_constant (cst, sval);
!       }
!     else if (!m_cm->sval_constrained_p (sval))
!       {
! 	result_set.add (sval);
        }
    }
  
!   void visit_conjured_svalue (const conjured_svalue *sval) final override
    {
!     equiv_class_id id = equiv_class_id::null ();
!     if (m_cm->get_equiv_class_by_svalue (sval, &id))
!       if (tree cst = id.get_obj (*m_cm).get_any_constant ())
! 	check_constant (cst, sval);
    }
  
  private:
*************** private:
*** 3084,3093 ****
        {
        default:
  	/* Assume all unhandled operands are compatible.  */
- 	result_set.add (sval);
  	break;
        case INTEGER_CST:
! 	if (capacity_compatible_with_type (cst, m_size_cst))
  	  result_set.add (sval);
  	break;
        }
--- 3358,3366 ----
        {
        default:
  	/* Assume all unhandled operands are compatible.  */
  	break;
        case INTEGER_CST:
! 	if (!capacity_compatible_with_type (cst, m_size_cst))
  	  result_set.add (sval);
  	break;
        }
*************** private:
*** 3099,3104 ****
--- 3372,3447 ----
    svalue_set result_set; /* Used as a mapping of svalue*->bool.  */
  };
  
+ /* Return true if SIZE_CST is a power of 2, and we have
+    CAPACITY_SVAL == ((X | (Y - 1) ) + 1), since it is then a multiple
+    of SIZE_CST, as used by Linux kernel's round_up macro.  */
+ 
+ static bool
+ is_round_up (tree size_cst,
+ 	     const svalue *capacity_sval)
+ {
+   if (!integer_pow2p (size_cst))
+     return false;
+   const binop_svalue *binop_sval = capacity_sval->dyn_cast_binop_svalue ();
+   if (!binop_sval)
+     return false;
+   if (binop_sval->get_op () != PLUS_EXPR)
+     return false;
+   tree rhs_cst = binop_sval->get_arg1 ()->maybe_get_constant ();
+   if (!rhs_cst)
+     return false;
+   if (!integer_onep (rhs_cst))
+     return false;
+ 
+   /* We have CAPACITY_SVAL == (LHS + 1) for some LHS expression.  */
+ 
+   const binop_svalue *lhs_binop_sval
+     = binop_sval->get_arg0 ()->dyn_cast_binop_svalue ();
+   if (!lhs_binop_sval)
+     return false;
+   if (lhs_binop_sval->get_op () != BIT_IOR_EXPR)
+     return false;
+ 
+   tree inner_rhs_cst = lhs_binop_sval->get_arg1 ()->maybe_get_constant ();
+   if (!inner_rhs_cst)
+     return false;
+ 
+   if (wi::to_widest (inner_rhs_cst) + 1 != wi::to_widest (size_cst))
+     return false;
+   return true;
+ }
+ 
+ /* Return true if CAPACITY_SVAL is known to be a multiple of SIZE_CST.  */
+ 
+ static bool
+ is_multiple_p (tree size_cst,
+ 	       const svalue *capacity_sval)
+ {
+   if (const svalue *sval = capacity_sval->maybe_undo_cast ())
+     return is_multiple_p (size_cst, sval);
+ 
+   if (is_round_up (size_cst, capacity_sval))
+     return true;
+ 
+   return false;
+ }
+ 
+ /* Return true if we should emit a dubious_allocation_size warning
+    on assigning a region of capacity CAPACITY_SVAL bytes to a pointer
+    of type with size SIZE_CST, where CM expresses known constraints.  */
+ 
+ static bool
+ is_dubious_capacity (tree size_cst,
+ 		     const svalue *capacity_sval,
+ 		     constraint_manager *cm)
+ {
+   if (is_multiple_p (size_cst, capacity_sval))
+     return false;
+   size_visitor v (size_cst, capacity_sval, cm);
+   return v.is_dubious_capacity ();
+ }
+ 
+ 
  /* Return true if a struct or union either uses the inheritance pattern,
     where the first field is a base struct, or the flexible array member
     pattern, where the last field is an array without a specified size.  */
*************** region_model::check_region_size (const r
*** 3161,3170 ****
    if (!is_any_cast_p (ctxt->get_stmt ()))
      return;
  
-   const region_svalue *reg_sval = dyn_cast <const region_svalue *> (rhs_sval);
-   if (!reg_sval)
-     return;
- 
    tree pointer_type = lhs_reg->get_type ();
    if (pointer_type == NULL_TREE || !POINTER_TYPE_P (pointer_type))
      return;
--- 3504,3509 ----
*************** region_model::check_region_size (const r
*** 3175,3180 ****
--- 3514,3523 ----
        || TYPE_SIZE_UNIT (pointee_type) == NULL_TREE)
      return;
  
+   /* Bail out early on function pointers.  */
+   if (TREE_CODE (pointee_type) == FUNCTION_TYPE)
+     return;
+ 
    /* Bail out early on pointers to structs where we can
       not deduce whether the buffer size is compatible.  */
    bool is_struct = RECORD_OR_UNION_TYPE_P (pointee_type);
*************** region_model::check_region_size (const r
*** 3189,3195 ****
        || integer_onep (pointee_size_tree))
      return;
  
!   const region *rhs_reg = reg_sval->get_pointee ();
    const svalue *capacity = get_capacity (rhs_reg);
    switch (capacity->get_kind ())
      {
--- 3532,3538 ----
        || integer_onep (pointee_size_tree))
      return;
  
!   const region *rhs_reg = deref_rvalue (rhs_sval, NULL_TREE, ctxt, false);
    const svalue *capacity = get_capacity (rhs_reg);
    switch (capacity->get_kind ())
      {
*************** region_model::check_region_size (const r
*** 3202,3221 ****
  	    && !capacity_compatible_with_type (cst_cap, pointee_size_tree,
  					       is_struct))
  	  ctxt->warn (make_unique <dubious_allocation_size> (lhs_reg, rhs_reg,
! 							     cst_cap));
        }
        break;
      default:
        {
  	if (!is_struct)
  	  {
! 	    size_visitor v (pointee_size_tree, capacity, m_constraints);
! 	    if (!v.get_result ())
  	      {
  		tree expr = get_representative_tree (capacity);
  		ctxt->warn (make_unique <dubious_allocation_size> (lhs_reg,
  								   rhs_reg,
! 								   expr));
  	      }
  	  }
        break;
--- 3545,3567 ----
  	    && !capacity_compatible_with_type (cst_cap, pointee_size_tree,
  					       is_struct))
  	  ctxt->warn (make_unique <dubious_allocation_size> (lhs_reg, rhs_reg,
! 							     capacity, cst_cap,
! 							     ctxt->get_stmt ()));
        }
        break;
      default:
        {
  	if (!is_struct)
  	  {
! 	    if (is_dubious_capacity (pointee_size_tree,
! 				     capacity,
! 				     m_constraints))
  	      {
  		tree expr = get_representative_tree (capacity);
  		ctxt->warn (make_unique <dubious_allocation_size> (lhs_reg,
  								   rhs_reg,
! 								   capacity, expr,
! 								   ctxt->get_stmt ()));
  	      }
  	  }
        break;
*************** region_model::set_value (const region *l
*** 3240,3246 ****
  
    check_region_size (lhs_reg, rhs_sval, ctxt);
  
!   check_region_for_write (lhs_reg, ctxt);
  
    m_store.set_value (m_mgr->get_store_manager(), lhs_reg, rhs_sval,
  		     ctxt ? ctxt->get_uncertainty () : NULL);
--- 3586,3592 ----
  
    check_region_size (lhs_reg, rhs_sval, ctxt);
  
!   check_region_for_write (lhs_reg, rhs_sval, ctxt);
  
    m_store.set_value (m_mgr->get_store_manager(), lhs_reg, rhs_sval,
  		     ctxt ? ctxt->get_uncertainty () : NULL);
*************** region_model::set_value (tree lhs, tree
*** 3258,3263 ****
--- 3604,4398 ----
    set_value (lhs_reg, rhs_sval, ctxt);
  }
  
+ /* Issue a note specifying that a particular function parameter is expected
+    to be a valid null-terminated string.  */
+ 
+ static void
+ inform_about_expected_null_terminated_string_arg (const call_arg_details &ad)
+ {
+   // TODO: ideally we'd underline the param here
+   inform (DECL_SOURCE_LOCATION (ad.m_called_fndecl),
+ 	  "argument %d of %qD must be a pointer to a null-terminated string",
+ 	  ad.m_arg_idx + 1, ad.m_called_fndecl);
+ }
+ 
+ /* A binding of a specific svalue at a concrete byte range.  */
+ 
+ struct fragment
+ {
+   fragment ()
+   : m_byte_range (0, 0), m_sval (nullptr)
+   {
+   }
+ 
+   fragment (const byte_range &bytes, const svalue *sval)
+     : m_byte_range (bytes), m_sval (sval)
+   {
+   }
+ 
+   static int cmp_ptrs (const void *p1, const void *p2)
+   {
+     const fragment *f1 = (const fragment *)p1;
+     const fragment *f2 = (const fragment *)p2;
+     return byte_range::cmp (f1->m_byte_range, f2->m_byte_range);
+   }
+ 
+   void
+   dump_to_pp (pretty_printer *pp) const
+   {
+     pp_string (pp, "fragment(");
+     m_byte_range.dump_to_pp (pp);
+     pp_string (pp, ", sval: ");
+     if (m_sval)
+       m_sval->dump_to_pp (pp, true);
+     else
+       pp_string (pp, "nullptr");
+     pp_string (pp, ")");
+   }
+ 
+   byte_range m_byte_range;
+   const svalue *m_sval;
+ };
+ 
+ /* Determine if there is a zero terminator somewhere in the
+    part of STRING_CST covered by BYTES (where BYTES is relative to the
+    start of the constant).
+ 
+    Return a tristate:
+    - true if there definitely is a zero byte, writing to *OUT_BYTES_READ
+    the number of bytes from that would be read, including the zero byte.
+    - false if there definitely isn't a zero byte
+    - unknown if we don't know.  */
+ 
+ static tristate
+ string_cst_has_null_terminator (tree string_cst,
+ 				const byte_range &bytes,
+ 				byte_offset_t *out_bytes_read)
+ {
+   gcc_assert (bytes.m_start_byte_offset >= 0);
+ 
+   /* If we're beyond the string_cst, reads are unsuccessful.  */
+   if (tree cst_size = get_string_cst_size (string_cst))
+     if (TREE_CODE (cst_size) == INTEGER_CST)
+       if (bytes.m_start_byte_offset >= TREE_INT_CST_LOW (cst_size))
+ 	return tristate::unknown ();
+ 
+   /* Assume all bytes after TREE_STRING_LENGTH are zero.  This handles
+      the case where an array is initialized with a string_cst that isn't
+      as long as the array, where the remaining elements are
+      empty-initialized and thus zeroed.  */
+   if (bytes.m_start_byte_offset >= TREE_STRING_LENGTH (string_cst))
+     {
+       *out_bytes_read = 1;
+       return tristate (true);
+     }
+ 
+   /* Look for the first 0 byte within STRING_CST
+      from START_READ_OFFSET onwards.  */
+   const byte_offset_t num_bytes_to_search
+     = std::min<byte_offset_t> ((TREE_STRING_LENGTH (string_cst)
+ 				- bytes.m_start_byte_offset),
+ 			       bytes.m_size_in_bytes);
+   const char *start = (TREE_STRING_POINTER (string_cst)
+ 		       + bytes.m_start_byte_offset.slow ());
+   if (num_bytes_to_search >= 0)
+     if (const void *p = memchr (start, 0, bytes.m_size_in_bytes.slow ()))
+       {
+ 	*out_bytes_read = (const char *)p - start + 1;
+ 	return tristate (true);
+       }
+ 
+   *out_bytes_read = bytes.m_size_in_bytes;
+   return tristate (false);
+ }
+ 
+ static tristate
+ svalue_byte_range_has_null_terminator (const svalue *sval,
+ 				       const byte_range &bytes,
+ 				       byte_offset_t *out_bytes_read,
+ 				       logger *logger);
+ 
+ /* Determine if there is a zero terminator somewhere in the
+    part of SVAL covered by BYTES (where BYTES is relative to the svalue).
+ 
+    Return a tristate:
+    - true if there definitely is a zero byte, writing to *OUT_BYTES_READ
+    the number of bytes from that would be read, including the zero byte.
+    - false if there definitely isn't a zero byte
+    - unknown if we don't know.
+ 
+    Use LOGGER (if non-null) for any logging.  */
+ 
+ static tristate
+ svalue_byte_range_has_null_terminator_1 (const svalue *sval,
+ 					 const byte_range &bytes,
+ 					 byte_offset_t *out_bytes_read,
+ 					 logger *logger)
+ {
+   if (bytes.m_start_byte_offset == 0
+       && sval->all_zeroes_p ())
+     {
+       /* The initial byte of an all-zeroes SVAL is a zero byte.  */
+       *out_bytes_read = 1;
+       return tristate (true);
+     }
+ 
+   switch (sval->get_kind ())
+     {
+     case SK_CONSTANT:
+       {
+ 	tree cst
+ 	  = as_a <const constant_svalue *> (sval)->get_constant ();
+ 	switch (TREE_CODE (cst))
+ 	  {
+ 	  case STRING_CST:
+ 	    return string_cst_has_null_terminator (cst, bytes, out_bytes_read);
+ 	  case INTEGER_CST:
+ 	    if (bytes.m_start_byte_offset == 0
+ 		&& integer_onep (TYPE_SIZE_UNIT (TREE_TYPE (cst))))
+ 	      {
+ 		/* Model accesses to the initial byte of a 1-byte
+ 		   INTEGER_CST.  */
+ 		*out_bytes_read = 1;
+ 		if (zerop (cst))
+ 		  return tristate (true);
+ 		else
+ 		  return tristate (false);
+ 	      }
+ 	    /* Treat any other access to an INTEGER_CST as unknown.  */
+ 	    return tristate::TS_UNKNOWN;
+ 
+ 	  default:
+ 	    break;
+ 	  }
+       }
+       break;
+ 
+     case SK_INITIAL:
+       {
+ 	const initial_svalue *initial_sval = (const initial_svalue *)sval;
+ 	const region *reg = initial_sval->get_region ();
+ 	if (const string_region *string_reg = reg->dyn_cast_string_region ())
+ 	  {
+ 	    tree string_cst = string_reg->get_string_cst ();
+ 	    return string_cst_has_null_terminator (string_cst,
+ 						   bytes,
+ 						   out_bytes_read);
+ 	  }
+ 	return tristate::TS_UNKNOWN;
+       }
+       break;
+ 
+     case SK_BITS_WITHIN:
+       {
+ 	const bits_within_svalue *bits_within_sval
+ 	  = (const bits_within_svalue *)sval;
+ 	byte_range bytes_within_inner (0, 0);
+ 	if (bits_within_sval->get_bits ().as_byte_range (&bytes_within_inner))
+ 	  {
+ 	    /* Consider e.g. looking for null terminator of
+ 	       bytes 2-4 of BITS_WITHIN(bytes 10-15 of inner_sval)
+ 
+ 	       This is equivalent to looking within bytes 12-14 of
+ 	       inner_sval. */
+ 	    const byte_offset_t start_byte_relative_to_inner
+ 	      = (bytes.m_start_byte_offset
+ 		 + bytes_within_inner.m_start_byte_offset);
+ 	    const byte_offset_t next_byte_relative_to_inner
+ 	      = (bytes.get_next_byte_offset ()
+ 		 + bytes_within_inner.m_start_byte_offset);
+ 	    if (next_byte_relative_to_inner > start_byte_relative_to_inner)
+ 	      {
+ 		const byte_range relative_to_inner
+ 		  (start_byte_relative_to_inner,
+ 		   next_byte_relative_to_inner - start_byte_relative_to_inner);
+ 		const svalue *inner_sval
+ 		  = bits_within_sval->get_inner_svalue ();
+ 		return svalue_byte_range_has_null_terminator (inner_sval,
+ 							      relative_to_inner,
+ 							      out_bytes_read,
+ 							      logger);
+ 	      }
+ 	  }
+       }
+       break;
+ 
+     default:
+       // TODO: it may be possible to handle other cases here.
+       break;
+     }
+   return tristate::TS_UNKNOWN;
+ }
+ 
+ /* Like svalue_byte_range_has_null_terminator_1, but add logging.  */
+ 
+ static tristate
+ svalue_byte_range_has_null_terminator (const svalue *sval,
+ 				       const byte_range &bytes,
+ 				       byte_offset_t *out_bytes_read,
+ 				       logger *logger)
+ {
+   LOG_SCOPE (logger);
+   if (logger)
+     {
+       pretty_printer *pp = logger->get_printer ();
+       logger->start_log_line ();
+       bytes.dump_to_pp (pp);
+       logger->log_partial (" of sval: ");
+       sval->dump_to_pp (pp, true);
+       logger->end_log_line ();
+     }
+   tristate ts
+     = svalue_byte_range_has_null_terminator_1 (sval, bytes,
+ 					       out_bytes_read, logger);
+   if (logger)
+     {
+       pretty_printer *pp = logger->get_printer ();
+       logger->start_log_line ();
+       pp_printf (pp, "has null terminator: %s", ts.as_string ());
+       if (ts.is_true ())
+ 	{
+ 	  pp_string (pp, "; bytes read: ");
+ 	  pp_wide_int (pp, *out_bytes_read, SIGNED);
+ 	}
+       logger->end_log_line ();
+     }
+   return ts;
+ }
+ 
+ /* A frozen copy of a single base region's binding_cluster within a store,
+    optimized for traversal of the concrete parts in byte order.
+    This only captures concrete bindings, and is an implementation detail
+    of region_model::scan_for_null_terminator.  */
+ 
+ class iterable_cluster
+ {
+ public:
+   iterable_cluster (const binding_cluster *cluster)
+   {
+     if (!cluster)
+       return;
+     for (auto iter : *cluster)
+       {
+ 	const binding_key *key = iter.first;
+ 	const svalue *sval = iter.second;
+ 
+ 	if (const concrete_binding *concrete_key
+ 	    = key->dyn_cast_concrete_binding ())
+ 	  {
+ 	    byte_range fragment_bytes (0, 0);
+ 	    if (concrete_key->get_byte_range (&fragment_bytes))
+ 	      m_fragments.safe_push (fragment (fragment_bytes, sval));
+ 	  }
+ 	else
+ 	  m_symbolic_bindings.safe_push (key);
+       }
+     m_fragments.qsort (fragment::cmp_ptrs);
+   }
+ 
+   bool
+   get_fragment_for_byte (byte_offset_t byte, fragment *out_frag) const
+   {
+     /* TODO: binary search rather than linear.  */
+     unsigned iter_idx;
+     for (iter_idx = 0; iter_idx < m_fragments.length (); iter_idx++)
+       {
+ 	if (m_fragments[iter_idx].m_byte_range.contains_p (byte))
+ 	{
+ 	  *out_frag = m_fragments[iter_idx];
+ 	  return true;
+ 	}
+       }
+     return false;
+   }
+ 
+   bool has_symbolic_bindings_p () const
+   {
+     return !m_symbolic_bindings.is_empty ();
+   }
+ 
+   void dump_to_pp (pretty_printer *pp) const
+   {
+     pp_string (pp, "iterable_cluster (fragments: [");
+     for (auto const &iter : &m_fragments)
+       {
+ 	if (&iter != m_fragments.begin ())
+ 	  pp_string (pp, ", ");
+ 	iter.dump_to_pp (pp);
+       }
+     pp_printf (pp, "], symbolic bindings: [");
+     for (auto const &iter : m_symbolic_bindings)
+       {
+ 	if (&iter != m_symbolic_bindings.begin ())
+ 	  pp_string (pp, ", ");
+ 	(*iter).dump_to_pp (pp, true);
+       }
+     pp_string (pp, "])");
+   }
+ 
+ private:
+   auto_vec<fragment> m_fragments;
+   auto_vec<const binding_key *> m_symbolic_bindings;
+ };
+ 
+ /* Simulate reading the bytes at BYTES from BASE_REG.
+    Complain to CTXT about any issues with the read e.g. out-of-bounds.  */
+ 
+ const svalue *
+ region_model::get_store_bytes (const region *base_reg,
+ 			       const byte_range &bytes,
+ 			       region_model_context *ctxt) const
+ {
+   /* Shortcut reading all of a string_region.  */
+   if (bytes.get_start_byte_offset () == 0)
+     if (const string_region *string_reg = base_reg->dyn_cast_string_region ())
+       if (bytes.m_size_in_bytes
+ 	  == TREE_STRING_LENGTH (string_reg->get_string_cst ()))
+ 	return m_mgr->get_or_create_initial_value (base_reg);
+ 
+   const svalue *index_sval
+     = m_mgr->get_or_create_int_cst (size_type_node,
+ 				    bytes.get_start_byte_offset ());
+   const region *offset_reg = m_mgr->get_offset_region (base_reg,
+ 						       NULL_TREE,
+ 						       index_sval);
+   const svalue *byte_size_sval
+     = m_mgr->get_or_create_int_cst (size_type_node, bytes.m_size_in_bytes);
+   const region *read_reg = m_mgr->get_sized_region (offset_reg,
+ 						    NULL_TREE,
+ 						    byte_size_sval);
+ 
+   /* Simulate reading those bytes from the store.  */
+   const svalue *sval = get_store_value (read_reg, ctxt);
+   return sval;
+ }
+ 
+ static tree
+ get_tree_for_byte_offset (tree ptr_expr, byte_offset_t byte_offset)
+ {
+   gcc_assert (ptr_expr);
+   tree ptype = build_pointer_type_for_mode (char_type_node, ptr_mode, true);
+   return fold_build2 (MEM_REF,
+ 		      char_type_node,
+ 		      ptr_expr, wide_int_to_tree (ptype, byte_offset));
+ }
+ 
+ /* Simulate a series of reads of REG until we find a 0 byte
+    (equivalent to calling strlen).
+ 
+    Complain to CTXT and return NULL if:
+    - the buffer pointed to isn't null-terminated
+    - the buffer pointed to has any uninitialized bytes before any 0-terminator
+    - any of the reads aren't within the bounds of the underlying base region
+ 
+    Otherwise, return a svalue for the number of bytes read (strlen + 1),
+    and, if OUT_SVAL is non-NULL, write to *OUT_SVAL with an svalue
+    representing the content of REG up to and including the terminator.
+ 
+    Algorithm
+    =========
+ 
+    Get offset for first byte to read.
+    Find the binding (if any) that contains it.
+    Find the size in bits of that binding.
+    Round to the nearest byte (which way???)
+      Or maybe give up if we have a partial binding there.
+    Get the svalue from the binding.
+    Determine the strlen (if any) of that svalue.
+      Does it have a 0-terminator within it?
+       If so, we have a partial read up to and including that terminator
+        Read those bytes from the store; add to the result in the correct place.
+        Finish
+       If not, we have a full read of that svalue
+        Read those bytes from the store; add to the result in the correct place.
+        Update read/write offsets
+        Continue
+       If unknown:
+        Result is unknown
+        Finish
+ */
+ 
+ const svalue *
+ region_model::scan_for_null_terminator_1 (const region *reg,
+ 					  tree expr,
+ 					  const svalue **out_sval,
+ 					  region_model_context *ctxt) const
+ {
+   logger *logger = ctxt ? ctxt->get_logger () : nullptr;
+   store_manager *store_mgr = m_mgr->get_store_manager ();
+ 
+   region_offset offset = reg->get_offset (m_mgr);
+   if (offset.symbolic_p ())
+     {
+       if (out_sval)
+ 	*out_sval = get_store_value (reg, nullptr);
+       if (logger)
+ 	logger->log ("offset is symbolic");
+       return m_mgr->get_or_create_unknown_svalue (size_type_node);
+     }
+   byte_offset_t src_byte_offset;
+   if (!offset.get_concrete_byte_offset (&src_byte_offset))
+     {
+       if (out_sval)
+ 	*out_sval = get_store_value (reg, nullptr);
+       if (logger)
+ 	logger->log ("can't get concrete byte offset");
+       return m_mgr->get_or_create_unknown_svalue (size_type_node);
+     }
+   const byte_offset_t initial_src_byte_offset = src_byte_offset;
+   byte_offset_t dst_byte_offset = 0;
+ 
+   const region *base_reg = reg->get_base_region ();
+ 
+   if (const string_region *str_reg = base_reg->dyn_cast_string_region ())
+     {
+       tree string_cst = str_reg->get_string_cst ();
+       if (const void *p = memchr (TREE_STRING_POINTER (string_cst),
+ 				  0,
+ 				  TREE_STRING_LENGTH (string_cst)))
+ 	{
+ 	  size_t num_bytes_read
+ 	    = (const char *)p - TREE_STRING_POINTER (string_cst) + 1;
+ 	  /* Simulate the read.  */
+ 	  byte_range bytes_to_read (0, num_bytes_read);
+ 	  const svalue *sval = get_store_bytes (reg, bytes_to_read, ctxt);
+ 	  if (out_sval)
+ 	    *out_sval = sval;
+ 	  if (logger)
+ 	    logger->log ("using string_cst");
+ 	  return m_mgr->get_or_create_int_cst (size_type_node,
+ 					       num_bytes_read);
+ 	}
+     }
+ 
+   const binding_cluster *cluster = m_store.get_cluster (base_reg);
+   iterable_cluster c (cluster);
+   if (logger)
+     {
+       pretty_printer *pp = logger->get_printer ();
+       logger->start_log_line ();
+       c.dump_to_pp (pp);
+       logger->end_log_line ();
+     }
+ 
+   binding_map result;
+ 
+   while (1)
+     {
+       fragment f;
+       if (c.get_fragment_for_byte (src_byte_offset, &f))
+ 	{
+ 	  if (logger)
+ 	    {
+ 	      logger->start_log_line ();
+ 	      pretty_printer *pp = logger->get_printer ();
+ 	      pp_printf (pp, "src_byte_offset: ");
+ 	      pp_wide_int (pp, src_byte_offset, SIGNED);
+ 	      pp_string (pp, ": ");
+ 	      f.dump_to_pp (pp);
+ 	      logger->end_log_line ();
+ 	    }
+ 	  gcc_assert (f.m_byte_range.contains_p (src_byte_offset));
+ 	  /* src_byte_offset and f.m_byte_range are both expressed relative to
+ 	     the base region.
+ 	     Convert to a byte_range relative to the svalue.  */
+ 	  const byte_range bytes_relative_to_svalue
+ 	    (src_byte_offset - f.m_byte_range.get_start_byte_offset (),
+ 	     f.m_byte_range.get_next_byte_offset () - src_byte_offset);
+ 	  byte_offset_t fragment_bytes_read;
+ 	  tristate is_terminated
+ 	    = svalue_byte_range_has_null_terminator (f.m_sval,
+ 						     bytes_relative_to_svalue,
+ 						     &fragment_bytes_read,
+ 						     logger);
+ 	  if (is_terminated.is_unknown ())
+ 	    {
+ 	      if (out_sval)
+ 		*out_sval = get_store_value (reg, nullptr);
+ 	      return m_mgr->get_or_create_unknown_svalue (size_type_node);
+ 	    }
+ 
+ 	  /* Simulate reading those bytes from the store.  */
+ 	  byte_range bytes_to_read (src_byte_offset, fragment_bytes_read);
+ 	  const svalue *sval = get_store_bytes (base_reg, bytes_to_read, ctxt);
+ 	  check_for_poison (sval, expr, nullptr, ctxt);
+ 
+ 	  if (out_sval)
+ 	    {
+ 	      byte_range bytes_to_write (dst_byte_offset, fragment_bytes_read);
+ 	      const binding_key *key
+ 		= store_mgr->get_concrete_binding (bytes_to_write);
+ 	      result.put (key, sval);
+ 	    }
+ 
+ 	  src_byte_offset += fragment_bytes_read;
+ 	  dst_byte_offset += fragment_bytes_read;
+ 
+ 	  if (is_terminated.is_true ())
+ 	    {
+ 	      if (out_sval)
+ 		*out_sval = m_mgr->get_or_create_compound_svalue (NULL_TREE,
+ 								  result);
+ 	      if (logger)
+ 		logger->log ("got terminator");
+ 	      return m_mgr->get_or_create_int_cst (size_type_node,
+ 						   dst_byte_offset);
+ 	    }
+ 	}
+       else
+ 	break;
+     }
+ 
+   /* No binding for this base_region, or no binding at src_byte_offset
+      (or a symbolic binding).  */
+ 
+   if (c.has_symbolic_bindings_p ())
+     {
+       if (out_sval)
+ 	*out_sval = get_store_value (reg, nullptr);
+       if (logger)
+ 	logger->log ("got symbolic binding");
+       return m_mgr->get_or_create_unknown_svalue (size_type_node);
+     }
+ 
+   /* TODO: the various special-cases seen in
+      region_model::get_store_value.  */
+ 
+   /* Simulate reading from this byte, then give up.  */
+   byte_range bytes_to_read (src_byte_offset, 1);
+   const svalue *sval = get_store_bytes (base_reg, bytes_to_read, ctxt);
+   tree byte_expr
+     = (expr
+        ? get_tree_for_byte_offset (expr,
+ 				   src_byte_offset - initial_src_byte_offset)
+        : NULL_TREE);
+   check_for_poison (sval, byte_expr, nullptr, ctxt);
+   if (base_reg->can_have_initial_svalue_p ())
+     {
+       if (out_sval)
+ 	*out_sval = get_store_value (reg, nullptr);
+       return m_mgr->get_or_create_unknown_svalue (size_type_node);
+     }
+   else
+     return nullptr;
+ }
+ 
+ /* Like region_model::scan_for_null_terminator_1, but add logging.  */
+ 
+ const svalue *
+ region_model::scan_for_null_terminator (const region *reg,
+ 					tree expr,
+ 					const svalue **out_sval,
+ 					region_model_context *ctxt) const
+ {
+   logger *logger = ctxt ? ctxt->get_logger () : nullptr;
+   LOG_SCOPE (logger);
+   if (logger)
+     {
+       pretty_printer *pp = logger->get_printer ();
+       logger->start_log_line ();
+       logger->log_partial ("region: ");
+       reg->dump_to_pp (pp, true);
+       logger->end_log_line ();
+     }
+   const svalue *sval = scan_for_null_terminator_1 (reg, expr, out_sval, ctxt);
+   if (logger)
+     {
+       pretty_printer *pp = logger->get_printer ();
+       logger->start_log_line ();
+       logger->log_partial ("length result: ");
+       if (sval)
+ 	sval->dump_to_pp (pp, true);
+       else
+ 	pp_printf (pp, "NULL");
+       logger->end_log_line ();
+       if (out_sval)
+ 	{
+ 	  logger->start_log_line ();
+ 	  logger->log_partial ("content result: ");
+ 	  if (*out_sval)
+ 	    (*out_sval)->dump_to_pp (pp, true);
+ 	  else
+ 	    pp_printf (pp, "NULL");
+ 	  logger->end_log_line ();
+ 	}
+     }
+   return sval;
+ }
+ 
+ /* Check that argument ARG_IDX (0-based) to the call described by CD
+    is a pointer to a valid null-terminated string.
+ 
+    Simulate scanning through the buffer, reading until we find a 0 byte
+    (equivalent to calling strlen).
+ 
+    Complain and return NULL if:
+    - the buffer pointed to isn't null-terminated
+    - the buffer pointed to has any uninitalized bytes before any 0-terminator
+    - any of the reads aren't within the bounds of the underlying base region
+ 
+    Otherwise, return a svalue for strlen of the buffer (*not* including
+    the null terminator).
+ 
+    TODO: we should also complain if:
+    - the pointer is NULL (or could be).  */
+ 
+ const svalue *
+ region_model::check_for_null_terminated_string_arg (const call_details &cd,
+ 						    unsigned arg_idx) const
+ {
+   return check_for_null_terminated_string_arg (cd,
+ 					       arg_idx,
+ 					       false, /* include_terminator */
+ 					       nullptr); // out_sval
+ }
+ 
+ 
+ /* Check that argument ARG_IDX (0-based) to the call described by CD
+    is a pointer to a valid null-terminated string.
+ 
+    Simulate scanning through the buffer, reading until we find a 0 byte
+    (equivalent to calling strlen).
+ 
+    Complain and return NULL if:
+    - the buffer pointed to isn't null-terminated
+    - the buffer pointed to has any uninitalized bytes before any 0-terminator
+    - any of the reads aren't within the bounds of the underlying base region
+ 
+    Otherwise, return a svalue.  This will be the number of bytes read
+    (including the null terminator) if INCLUDE_TERMINATOR is true, or strlen
+    of the buffer (not including the null terminator) if it is false.
+ 
+    Also, when returning an svalue, if OUT_SVAL is non-NULL, write to
+    *OUT_SVAL with an svalue representing the content of the buffer up to
+    and including the terminator.
+ 
+    TODO: we should also complain if:
+    - the pointer is NULL (or could be).  */
+ 
+ const svalue *
+ region_model::check_for_null_terminated_string_arg (const call_details &cd,
+ 						    unsigned arg_idx,
+ 						    bool include_terminator,
+ 						    const svalue **out_sval) const
+ {
+   class null_terminator_check_event : public custom_event
+   {
+   public:
+     null_terminator_check_event (const event_loc_info &loc_info,
+ 				 const call_arg_details &arg_details)
+     : custom_event (loc_info),
+       m_arg_details (arg_details)
+     {
+     }
+ 
+     label_text get_desc (bool can_colorize) const final override
+     {
+       if (m_arg_details.m_arg_expr)
+ 	return make_label_text (can_colorize,
+ 				"while looking for null terminator"
+ 				" for argument %i (%qE) of %qD...",
+ 				m_arg_details.m_arg_idx + 1,
+ 				m_arg_details.m_arg_expr,
+ 				m_arg_details.m_called_fndecl);
+       else
+ 	return make_label_text (can_colorize,
+ 				"while looking for null terminator"
+ 				" for argument %i of %qD...",
+ 				m_arg_details.m_arg_idx + 1,
+ 				m_arg_details.m_called_fndecl);
+     }
+ 
+   private:
+     const call_arg_details m_arg_details;
+   };
+ 
+   class null_terminator_check_decl_note
+     : public pending_note_subclass<null_terminator_check_decl_note>
+   {
+   public:
+     null_terminator_check_decl_note (const call_arg_details &arg_details)
+     : m_arg_details (arg_details)
+     {
+     }
+ 
+     const char *get_kind () const final override
+     {
+       return "null_terminator_check_decl_note";
+     }
+ 
+     void emit () const final override
+     {
+       inform_about_expected_null_terminated_string_arg (m_arg_details);
+     }
+ 
+     bool operator== (const null_terminator_check_decl_note &other) const
+     {
+       return m_arg_details == other.m_arg_details;
+     }
+ 
+   private:
+     const call_arg_details m_arg_details;
+   };
+ 
+   /* Subclass of decorated_region_model_context that
+      adds the above event and note to any saved diagnostics.  */
+   class annotating_ctxt : public annotating_context
+   {
+   public:
+     annotating_ctxt (const call_details &cd,
+ 		     unsigned arg_idx)
+     : annotating_context (cd.get_ctxt ()),
+       m_cd (cd),
+       m_arg_idx (arg_idx)
+     {
+     }
+     void add_annotations () final override
+     {
+       call_arg_details arg_details (m_cd, m_arg_idx);
+       event_loc_info loc_info (m_cd.get_location (),
+ 			       m_cd.get_model ()->get_current_function ()->decl,
+ 			       m_cd.get_model ()->get_stack_depth ());
+ 
+       add_event (make_unique<null_terminator_check_event> (loc_info,
+ 							   arg_details));
+       add_note (make_unique <null_terminator_check_decl_note> (arg_details));
+     }
+   private:
+     const call_details &m_cd;
+     unsigned m_arg_idx;
+   };
+ 
+   /* Use this ctxt below so that any diagnostics that get added
+      get annotated.  */
+   annotating_ctxt my_ctxt (cd, arg_idx);
+ 
+   const svalue *arg_sval = cd.get_arg_svalue (arg_idx);
+   const region *buf_reg
+     = deref_rvalue (arg_sval, cd.get_arg_tree (arg_idx), &my_ctxt);
+ 
+   if (const svalue *num_bytes_read_sval
+       = scan_for_null_terminator (buf_reg,
+ 				  cd.get_arg_tree (arg_idx),
+ 				  out_sval,
+ 				  &my_ctxt))
+     {
+       if (include_terminator)
+ 	return num_bytes_read_sval;
+       else
+ 	{
+ 	  /* strlen is (bytes_read - 1).  */
+ 	  const svalue *one = m_mgr->get_or_create_int_cst (size_type_node, 1);
+ 	  return m_mgr->get_or_create_binop (size_type_node,
+ 					     MINUS_EXPR,
+ 					     num_bytes_read_sval,
+ 					     one);
+ 	}
+     }
+   else
+     return nullptr;
+ }
+ 
  /* Remove all bindings overlapping REG within the store.  */
  
  void
*************** region_model::purge_region (const region
*** 3274,3295 ****
    m_store.purge_region (m_mgr->get_store_manager(), reg);
  }
  
! /* Fill REG with SVAL.  */
  
  void
! region_model::fill_region (const region *reg, const svalue *sval)
  {
    m_store.fill_region (m_mgr->get_store_manager(), reg, sval);
  }
  
! /* Zero-fill REG.  */
  
  void
! region_model::zero_fill_region (const region *reg)
  {
    m_store.zero_fill_region (m_mgr->get_store_manager(), reg);
  }
  
  /* Mark REG as having unknown content.  */
  
  void
--- 4409,4491 ----
    m_store.purge_region (m_mgr->get_store_manager(), reg);
  }
  
! /* Fill REG with SVAL.
!    Use CTXT to report any warnings associated with the write
!    (e.g. out-of-bounds).  */
  
  void
! region_model::fill_region (const region *reg,
! 			   const svalue *sval,
! 			   region_model_context *ctxt)
  {
+   check_region_for_write (reg, nullptr, ctxt);
    m_store.fill_region (m_mgr->get_store_manager(), reg, sval);
  }
  
! /* Zero-fill REG.
!    Use CTXT to report any warnings associated with the write
!    (e.g. out-of-bounds).  */
  
  void
! region_model::zero_fill_region (const region *reg,
! 				region_model_context *ctxt)
  {
+   check_region_for_write (reg, nullptr, ctxt);
    m_store.zero_fill_region (m_mgr->get_store_manager(), reg);
  }
  
+ /* Copy NUM_BYTES_SVAL of SVAL to DEST_REG.
+    Use CTXT to report any warnings associated with the copy
+    (e.g. out-of-bounds writes).  */
+ 
+ void
+ region_model::write_bytes (const region *dest_reg,
+ 			   const svalue *num_bytes_sval,
+ 			   const svalue *sval,
+ 			   region_model_context *ctxt)
+ {
+   const region *sized_dest_reg
+     = m_mgr->get_sized_region (dest_reg, NULL_TREE, num_bytes_sval);
+   set_value (sized_dest_reg, sval, ctxt);
+ }
+ 
+ /* Read NUM_BYTES_SVAL from SRC_REG.
+    Use CTXT to report any warnings associated with the copy
+    (e.g. out-of-bounds reads, copying of uninitialized values, etc).  */
+ 
+ const svalue *
+ region_model::read_bytes (const region *src_reg,
+ 			  tree src_ptr_expr,
+ 			  const svalue *num_bytes_sval,
+ 			  region_model_context *ctxt) const
+ {
+   if (num_bytes_sval->get_kind () == SK_UNKNOWN)
+     return m_mgr->get_or_create_unknown_svalue (NULL_TREE);
+   const region *sized_src_reg
+     = m_mgr->get_sized_region (src_reg, NULL_TREE, num_bytes_sval);
+   const svalue *src_contents_sval = get_store_value (sized_src_reg, ctxt);
+   check_for_poison (src_contents_sval, src_ptr_expr,
+ 		    sized_src_reg, ctxt);
+   return src_contents_sval;
+ }
+ 
+ /* Copy NUM_BYTES_SVAL bytes from SRC_REG to DEST_REG.
+    Use CTXT to report any warnings associated with the copy
+    (e.g. out-of-bounds reads/writes, copying of uninitialized values,
+    etc).  */
+ 
+ void
+ region_model::copy_bytes (const region *dest_reg,
+ 			  const region *src_reg,
+ 			  tree src_ptr_expr,
+ 			  const svalue *num_bytes_sval,
+ 			  region_model_context *ctxt)
+ {
+   const svalue *data_sval
+     = read_bytes (src_reg, src_ptr_expr, num_bytes_sval, ctxt);
+   write_bytes (dest_reg, num_bytes_sval, data_sval, ctxt);
+ }
+ 
  /* Mark REG as having unknown content.  */
  
  void
*************** region_model::eval_condition (const sval
*** 3502,3507 ****
--- 4698,4736 ----
  	}
      }
  
+   /* Attempt to unwrap cast if there is one, and the types match.  */
+   tree lhs_type = lhs->get_type ();
+   tree rhs_type = rhs->get_type ();
+   if (lhs_type && rhs_type)
+   {
+     const unaryop_svalue *lhs_un_op = dyn_cast <const unaryop_svalue *> (lhs);
+     const unaryop_svalue *rhs_un_op = dyn_cast <const unaryop_svalue *> (rhs);
+     if (lhs_un_op && CONVERT_EXPR_CODE_P (lhs_un_op->get_op ())
+ 	&& rhs_un_op && CONVERT_EXPR_CODE_P (rhs_un_op->get_op ())
+ 	&& lhs_type == rhs_type)
+       {
+ 	tristate res = eval_condition (lhs_un_op->get_arg (),
+ 				       op,
+ 				       rhs_un_op->get_arg ());
+ 	if (res.is_known ())
+ 	  return res;
+       }
+     else if (lhs_un_op && CONVERT_EXPR_CODE_P (lhs_un_op->get_op ())
+ 	     && lhs_type == rhs_type)
+       {
+ 	tristate res = eval_condition (lhs_un_op->get_arg (), op, rhs);
+ 	if (res.is_known ())
+ 	  return res;
+       }
+     else if (rhs_un_op && CONVERT_EXPR_CODE_P (rhs_un_op->get_op ())
+ 	     && lhs_type == rhs_type)
+       {
+ 	tristate res = eval_condition (lhs, op, rhs_un_op->get_arg ());
+ 	if (res.is_known ())
+ 	  return res;
+       }
+   }
+ 
    /* Otherwise, try constraints.
       Cast to const to ensure we don't change the constraint_manager as we
       do this (e.g. by creating equivalence classes).  */
*************** region_model::add_constraints_from_binop
*** 3719,3724 ****
--- 4948,4957 ----
  
      case EQ_EXPR:
      case NE_EXPR:
+     case GE_EXPR:
+     case GT_EXPR:
+     case LE_EXPR:
+     case LT_EXPR:
        {
  	/* ...and "(inner_lhs OP inner_rhs) == 0"
  	   then (inner_lhs OP inner_rhs) must have the same
*************** region_model::add_constraint (tree lhs,
*** 3781,3786 ****
--- 5014,5027 ----
    return add_constraint (lhs_sval, op, rhs_sval, ctxt);
  }
  
+ static bool
+ unusable_in_infinite_loop_constraint_p (const svalue *sval)
+ {
+   if (sval->get_kind () == SK_WIDENING)
+     return true;
+   return false;
+ }
+ 
  /* Attempt to add the constraint "LHS OP RHS" to this region_model.
     If it is consistent with existing constraints, add it, and return true.
     Return false if it contradicts existing constraints.
*************** region_model::add_constraint (const sval
*** 3792,3797 ****
--- 5033,5052 ----
  			      const svalue *rhs,
  			      region_model_context *ctxt)
  {
+   const bool checking_for_infinite_loop
+     = ctxt ? ctxt->checking_for_infinite_loop_p () : false;
+ 
+   if (checking_for_infinite_loop)
+     {
+       if (unusable_in_infinite_loop_constraint_p (lhs)
+ 	  || unusable_in_infinite_loop_constraint_p (rhs))
+ 	{
+ 	  gcc_assert (ctxt);
+ 	  ctxt->on_unusable_in_infinite_loop ();
+ 	  return false;
+ 	}
+     }
+ 
    tristate t_cond = eval_condition (lhs, op, rhs);
  
    /* If we already have the condition, do nothing.  */
*************** region_model::add_constraint (const sval
*** 3803,3808 ****
--- 5058,5072 ----
    if (t_cond.is_false ())
      return false;
  
+   if (checking_for_infinite_loop)
+     {
+       /* Here, we don't have a definite true/false value, so bail out
+ 	 when checking for infinite loops.  */
+       gcc_assert (ctxt);
+       ctxt->on_unusable_in_infinite_loop ();
+       return false;
+     }
+ 
    bool out;
    if (add_constraints_from_binop (lhs, op, rhs, &out, ctxt))
      return out;
*************** region_model::add_constraint (const sval
*** 3834,3844 ****
  bool
  region_model::add_constraint (tree lhs, enum tree_code op, tree rhs,
  			      region_model_context *ctxt,
! 			      rejected_constraint **out)
  {
    bool sat = add_constraint (lhs, op, rhs, ctxt);
    if (!sat && out)
!     *out = new rejected_op_constraint (*this, lhs, op, rhs);
    return sat;
  }
  
--- 5098,5108 ----
  bool
  region_model::add_constraint (tree lhs, enum tree_code op, tree rhs,
  			      region_model_context *ctxt,
! 			      std::unique_ptr<rejected_constraint> *out)
  {
    bool sat = add_constraint (lhs, op, rhs, ctxt);
    if (!sat && out)
!     *out = make_unique <rejected_op_constraint> (*this, lhs, op, rhs);
    return sat;
  }
  
*************** region_model::get_representative_path_va
*** 3873,3879 ****
  
    /* Prevent infinite recursion.  */
    if (visited->contains (sval))
!     return path_var (NULL_TREE, 0);
    visited->add (sval);
  
    /* Handle casts by recursion into get_representative_path_var.  */
--- 5137,5148 ----
  
    /* Prevent infinite recursion.  */
    if (visited->contains (sval))
!     {
!       if (sval->get_kind () == SK_CONSTANT)
! 	return path_var (sval->maybe_get_constant (), 0);
!       else
! 	return path_var (NULL_TREE, 0);
!     }
    visited->add (sval);
  
    /* Handle casts by recursion into get_representative_path_var.  */
*************** region_model::get_representative_path_va
*** 4106,4114 ****
  	tree addr_parent = build1 (ADDR_EXPR,
  				   build_pointer_type (reg->get_type ()),
  				   parent_pv.m_tree);
! 	return path_var (build2 (MEM_REF,
! 				 reg->get_type (),
! 				 addr_parent, offset_pv.m_tree),
  			 parent_pv.m_stack_depth);
        }
  
--- 5375,5384 ----
  	tree addr_parent = build1 (ADDR_EXPR,
  				   build_pointer_type (reg->get_type ()),
  				   parent_pv.m_tree);
! 	tree ptype = build_pointer_type_for_mode (char_type_node, ptr_mode,
! 						  true);
! 	return path_var (build2 (MEM_REF, reg->get_type (), addr_parent,
! 				 fold_convert (ptype, offset_pv.m_tree)),
  			 parent_pv.m_stack_depth);
        }
  
*************** region_model::get_representative_path_va
*** 4141,4146 ****
--- 5411,5417 ----
      case RK_VAR_ARG:
      case RK_ERRNO:
      case RK_UNKNOWN:
+     case RK_PRIVATE:
        return path_var (NULL_TREE, 0);
      }
  }
*************** region_model::update_for_phis (const sup
*** 4183,4188 ****
--- 5454,5461 ----
       are effectively handled simultaneously.  */
    const region_model old_state (*this);
  
+   hash_set<const svalue *> svals_changing_meaning;
+ 
    for (gphi_iterator gpi = const_cast<supernode *>(snode)->start_phis ();
         !gsi_end_p (gpi); gsi_next (&gpi))
      {
*************** region_model::update_for_phis (const sup
*** 4192,4199 ****
        tree lhs = gimple_phi_result (phi);
  
        /* Update next_state based on phi and old_state.  */
!       handle_phi (phi, lhs, src, old_state, ctxt);
      }
  }
  
  /* Attempt to update this model for taking EDGE (where the last statement
--- 5465,5475 ----
        tree lhs = gimple_phi_result (phi);
  
        /* Update next_state based on phi and old_state.  */
!       handle_phi (phi, lhs, src, old_state, svals_changing_meaning, ctxt);
      }
+ 
+   for (auto iter : svals_changing_meaning)
+     m_constraints->purge_state_involving (iter);
  }
  
  /* Attempt to update this model for taking EDGE (where the last statement
*************** bool
*** 4221,4227 ****
  region_model::maybe_update_for_edge (const superedge &edge,
  				     const gimple *last_stmt,
  				     region_model_context *ctxt,
! 				     rejected_constraint **out)
  {
    /* Handle frame updates for interprocedural edges.  */
    switch (edge.m_kind)
--- 5497,5503 ----
  region_model::maybe_update_for_edge (const superedge &edge,
  				     const gimple *last_stmt,
  				     region_model_context *ctxt,
! 				     std::unique_ptr<rejected_constraint> *out)
  {
    /* Handle frame updates for interprocedural edges.  */
    switch (edge.m_kind)
*************** region_model::maybe_update_for_edge (con
*** 4253,4259 ****
    if (last_stmt == NULL)
      return true;
  
!   /* Apply any constraints for conditionals/switch statements.  */
  
    if (const gcond *cond_stmt = dyn_cast <const gcond *> (last_stmt))
      {
--- 5529,5535 ----
    if (last_stmt == NULL)
      return true;
  
!   /* Apply any constraints for conditionals/switch/computed-goto statements.  */
  
    if (const gcond *cond_stmt = dyn_cast <const gcond *> (last_stmt))
      {
*************** region_model::maybe_update_for_edge (con
*** 4269,4274 ****
--- 5545,5556 ----
  					    ctxt, out);
      }
  
+   if (const ggoto *goto_stmt = dyn_cast <const ggoto *> (last_stmt))
+     {
+       const cfg_superedge *cfg_sedge = as_a <const cfg_superedge *> (&edge);
+       return apply_constraints_for_ggoto (*cfg_sedge, goto_stmt, ctxt);
+     }
+ 
    /* Apply any constraints due to an exception being thrown.  */
    if (const cfg_superedge *cfg_sedge = dyn_cast <const cfg_superedge *> (&edge))
      if (cfg_sedge->get_flags () & EDGE_EH)
*************** region_model::update_for_gcall (const gc
*** 4304,4310 ****
      callee = DECL_STRUCT_FUNCTION (fn_decl);
    }
  
!   push_frame (callee, &arg_svals, ctxt);
  }
  
  /* Pop the top-most frame_region from the stack, and copy the return
--- 5586,5593 ----
      callee = DECL_STRUCT_FUNCTION (fn_decl);
    }
  
!   gcc_assert (callee);
!   push_frame (*callee, &arg_svals, ctxt);
  }
  
  /* Pop the top-most frame_region from the stack, and copy the return
*************** region_model::update_for_return_superedg
*** 4344,4350 ****
    update_for_return_gcall (call_stmt, ctxt);
  }
  
! /* Attempt to to use R to replay SUMMARY into this object.
     Return true if it is possible.  */
  
  bool
--- 5627,5633 ----
    update_for_return_gcall (call_stmt, ctxt);
  }
  
! /* Attempt to use R to replay SUMMARY into this object.
     Return true if it is possible.  */
  
  bool
*************** region_model::replay_call_summary (call_
*** 4355,4360 ****
--- 5638,5646 ----
  
    m_store.replay_call_summary (r, summary.m_store);
  
+   if (r.get_ctxt ())
+     r.get_ctxt ()->maybe_did_work ();
+ 
    if (!m_constraints->replay_call_summary (r, *summary.m_constraints))
      return false;
  
*************** region_model::replay_call_summary (call_
*** 4385,4394 ****
     to it.  */
  
  bool
! region_model::apply_constraints_for_gcond (const cfg_superedge &sedge,
! 					   const gcond *cond_stmt,
! 					   region_model_context *ctxt,
! 					   rejected_constraint **out)
  {
    ::edge cfg_edge = sedge.get_cfg_edge ();
    gcc_assert (cfg_edge != NULL);
--- 5671,5681 ----
     to it.  */
  
  bool
! region_model::
! apply_constraints_for_gcond (const cfg_superedge &sedge,
! 			     const gcond *cond_stmt,
! 			     region_model_context *ctxt,
! 			     std::unique_ptr<rejected_constraint> *out)
  {
    ::edge cfg_edge = sedge.get_cfg_edge ();
    gcc_assert (cfg_edge != NULL);
*************** has_nondefault_case_for_value_p (const g
*** 4448,4457 ****
     has nondefault cases handling all values in the enum.  */
  
  static bool
! has_nondefault_cases_for_all_enum_values_p (const gswitch *switch_stmt)
  {
    gcc_assert (switch_stmt);
-   tree type = TREE_TYPE (gimple_switch_index (switch_stmt));
    gcc_assert (TREE_CODE (type) == ENUMERAL_TYPE);
  
    for (tree enum_val_iter = TYPE_VALUES (type);
--- 5735,5744 ----
     has nondefault cases handling all values in the enum.  */
  
  static bool
! has_nondefault_cases_for_all_enum_values_p (const gswitch *switch_stmt,
! 					    tree type)
  {
    gcc_assert (switch_stmt);
    gcc_assert (TREE_CODE (type) == ENUMERAL_TYPE);
  
    for (tree enum_val_iter = TYPE_VALUES (type);
*************** has_nondefault_cases_for_all_enum_values
*** 4479,4491 ****
     to it.  */
  
  bool
! region_model::apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
! 					     const gswitch *switch_stmt,
! 					     region_model_context *ctxt,
! 					     rejected_constraint **out)
  {
    tree index  = gimple_switch_index (switch_stmt);
    const svalue *index_sval = get_rvalue (index, ctxt);
  
    /* If we're switching based on an enum type, assume that the user is only
       working with values from the enum.  Hence if this is an
--- 5766,5797 ----
     to it.  */
  
  bool
! region_model::
! apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
! 			       const gswitch *switch_stmt,
! 			       region_model_context *ctxt,
! 			       std::unique_ptr<rejected_constraint> *out)
  {
    tree index  = gimple_switch_index (switch_stmt);
    const svalue *index_sval = get_rvalue (index, ctxt);
+   bool check_index_type = true;
+ 
+   /* With -fshort-enum, there may be a type cast.  */
+   if (ctxt && index_sval->get_kind () == SK_UNARYOP
+       && TREE_CODE (index_sval->get_type ()) == INTEGER_TYPE)
+     {
+       const unaryop_svalue *unaryop = as_a <const unaryop_svalue *> (index_sval);
+       if (unaryop->get_op () == NOP_EXPR
+ 	  && is_a <const initial_svalue *> (unaryop->get_arg ()))
+ 	if (const initial_svalue *initvalop = (as_a <const initial_svalue *>
+ 					       (unaryop->get_arg ())))
+ 	  if (initvalop->get_type ()
+ 	      && TREE_CODE (initvalop->get_type ()) == ENUMERAL_TYPE)
+ 	    {
+ 	      index_sval = initvalop;
+ 	      check_index_type = false;
+ 	    }
+     }
  
    /* If we're switching based on an enum type, assume that the user is only
       working with values from the enum.  Hence if this is an
*************** region_model::apply_constraints_for_gswi
*** 4497,4514 ****
        ctxt
        /* Must be an enum value.  */
        && index_sval->get_type ()
!       && TREE_CODE (TREE_TYPE (index)) == ENUMERAL_TYPE
        && TREE_CODE (index_sval->get_type ()) == ENUMERAL_TYPE
        /* If we have a constant, then we can check it directly.  */
        && index_sval->get_kind () != SK_CONSTANT
        && edge.implicitly_created_default_p ()
!       && has_nondefault_cases_for_all_enum_values_p (switch_stmt)
        /* Don't do this if there's a chance that the index is
  	 attacker-controlled.  */
        && !ctxt->possibly_tainted_p (index_sval))
      {
        if (out)
! 	*out = new rejected_default_case (*this);
        return false;
      }
  
--- 5803,5822 ----
        ctxt
        /* Must be an enum value.  */
        && index_sval->get_type ()
!       && (!check_index_type
! 	  || TREE_CODE (TREE_TYPE (index)) == ENUMERAL_TYPE)
        && TREE_CODE (index_sval->get_type ()) == ENUMERAL_TYPE
        /* If we have a constant, then we can check it directly.  */
        && index_sval->get_kind () != SK_CONSTANT
        && edge.implicitly_created_default_p ()
!       && has_nondefault_cases_for_all_enum_values_p (switch_stmt,
! 						     index_sval->get_type ())
        /* Don't do this if there's a chance that the index is
  	 attacker-controlled.  */
        && !ctxt->possibly_tainted_p (index_sval))
      {
        if (out)
! 	*out = make_unique <rejected_default_case> (*this);
        return false;
      }
  
*************** region_model::apply_constraints_for_gswi
*** 4517,4528 ****
      = ranges_mgr->get_or_create_ranges_for_switch (&edge, switch_stmt);
    bool sat = m_constraints->add_bounded_ranges (index_sval, all_cases_ranges);
    if (!sat && out)
!     *out = new rejected_ranges_constraint (*this, index, all_cases_ranges);
    if (sat && ctxt && !all_cases_ranges->empty_p ())
      ctxt->on_bounded_ranges (*index_sval, *all_cases_ranges);
    return sat;
  }
  
  /* Apply any constraints due to an exception being thrown at LAST_STMT.
  
     If they are feasible, add the constraints and return true.
--- 5825,5867 ----
      = ranges_mgr->get_or_create_ranges_for_switch (&edge, switch_stmt);
    bool sat = m_constraints->add_bounded_ranges (index_sval, all_cases_ranges);
    if (!sat && out)
!     *out = make_unique <rejected_ranges_constraint> (*this, index, all_cases_ranges);
    if (sat && ctxt && !all_cases_ranges->empty_p ())
      ctxt->on_bounded_ranges (*index_sval, *all_cases_ranges);
    return sat;
  }
  
+ /* Given an edge reached by GOTO_STMT, determine appropriate constraints
+    for the edge to be taken.
+ 
+    If they are feasible, add the constraints and return true.
+ 
+    Return false if the constraints contradict existing knowledge
+    (and so the edge should not be taken).  */
+ 
+ bool
+ region_model::apply_constraints_for_ggoto (const cfg_superedge &edge,
+ 					   const ggoto *goto_stmt,
+ 					   region_model_context *ctxt)
+ {
+   tree dest = gimple_goto_dest (goto_stmt);
+   const svalue *dest_sval = get_rvalue (dest, ctxt);
+ 
+   /* If we know we were jumping to a specific label.  */
+   if (tree dst_label = edge.m_dest->get_label ())
+     {
+       const label_region *dst_label_reg
+ 	= m_mgr->get_region_for_label (dst_label);
+       const svalue *dst_label_ptr
+ 	= m_mgr->get_ptr_svalue (ptr_type_node, dst_label_reg);
+ 
+       if (!add_constraint (dest_sval, EQ_EXPR, dst_label_ptr, ctxt))
+ 	return false;
+     }
+ 
+   return true;
+ }
+ 
  /* Apply any constraints due to an exception being thrown at LAST_STMT.
  
     If they are feasible, add the constraints and return true.
*************** region_model::apply_constraints_for_gswi
*** 4533,4541 ****
     to it.  */
  
  bool
! region_model::apply_constraints_for_exception (const gimple *last_stmt,
! 					       region_model_context *ctxt,
! 					       rejected_constraint **out)
  {
    gcc_assert (last_stmt);
    if (const gcall *call = dyn_cast <const gcall *> (last_stmt))
--- 5872,5881 ----
     to it.  */
  
  bool
! region_model::
! apply_constraints_for_exception (const gimple *last_stmt,
! 				 region_model_context *ctxt,
! 				 std::unique_ptr<rejected_constraint> *out)
  {
    gcc_assert (last_stmt);
    if (const gcall *call = dyn_cast <const gcall *> (last_stmt))
*************** region_model::on_top_level_param (tree p
*** 4592,4605 ****
     Return the frame_region for the new frame.  */
  
  const region *
! region_model::push_frame (function *fun, const vec<const svalue *> *arg_svals,
  			  region_model_context *ctxt)
  {
    m_current_frame = m_mgr->get_frame_region (m_current_frame, fun);
    if (arg_svals)
      {
        /* Arguments supplied from a caller frame.  */
!       tree fndecl = fun->decl;
        unsigned idx = 0;
        for (tree iter_parm = DECL_ARGUMENTS (fndecl); iter_parm;
  	   iter_parm = DECL_CHAIN (iter_parm), ++idx)
--- 5932,5946 ----
     Return the frame_region for the new frame.  */
  
  const region *
! region_model::push_frame (const function &fun,
! 			  const vec<const svalue *> *arg_svals,
  			  region_model_context *ctxt)
  {
    m_current_frame = m_mgr->get_frame_region (m_current_frame, fun);
    if (arg_svals)
      {
        /* Arguments supplied from a caller frame.  */
!       tree fndecl = fun.decl;
        unsigned idx = 0;
        for (tree iter_parm = DECL_ARGUMENTS (fndecl); iter_parm;
  	   iter_parm = DECL_CHAIN (iter_parm), ++idx)
*************** region_model::push_frame (function *fun,
*** 4610,4616 ****
  	  if (idx >= arg_svals->length ())
  	    break;
  	  tree parm_lval = iter_parm;
! 	  if (tree parm_default_ssa = ssa_default_def (fun, iter_parm))
  	    parm_lval = parm_default_ssa;
  	  const region *parm_reg = get_lvalue (parm_lval, ctxt);
  	  const svalue *arg_sval = (*arg_svals)[idx];
--- 5951,5957 ----
  	  if (idx >= arg_svals->length ())
  	    break;
  	  tree parm_lval = iter_parm;
! 	  if (tree parm_default_ssa = get_ssa_default_def (fun, iter_parm))
  	    parm_lval = parm_default_ssa;
  	  const region *parm_reg = get_lvalue (parm_lval, ctxt);
  	  const svalue *arg_sval = (*arg_svals)[idx];
*************** region_model::push_frame (function *fun,
*** 4633,4639 ****
        /* Otherwise we have a top-level call within the analysis.  The params
  	 have defined but unknown initial values.
  	 Anything they point to has escaped.  */
!       tree fndecl = fun->decl;
  
        /* Handle "__attribute__((nonnull))".   */
        tree fntype = TREE_TYPE (fndecl);
--- 5974,5980 ----
        /* Otherwise we have a top-level call within the analysis.  The params
  	 have defined but unknown initial values.
  	 Anything they point to has escaped.  */
!       tree fndecl = fun.decl;
  
        /* Handle "__attribute__((nonnull))".   */
        tree fntype = TREE_TYPE (fndecl);
*************** region_model::push_frame (function *fun,
*** 4647,4653 ****
  			   ? (bitmap_empty_p (nonnull_args)
  			      || bitmap_bit_p (nonnull_args, parm_idx))
  			   : false);
! 	  if (tree parm_default_ssa = ssa_default_def (fun, iter_parm))
  	    on_top_level_param (parm_default_ssa, non_null, ctxt);
  	  else
  	    on_top_level_param (iter_parm, non_null, ctxt);
--- 5988,5994 ----
  			   ? (bitmap_empty_p (nonnull_args)
  			      || bitmap_bit_p (nonnull_args, parm_idx))
  			   : false);
! 	  if (tree parm_default_ssa = get_ssa_default_def (fun, iter_parm))
  	    on_top_level_param (parm_default_ssa, non_null, ctxt);
  	  else
  	    on_top_level_param (iter_parm, non_null, ctxt);
*************** region_model::push_frame (function *fun,
*** 4663,4674 ****
  /* Get the function of the top-most frame in this region_model's stack.
     There must be such a frame.  */
  
! function *
  region_model::get_current_function () const
  {
    const frame_region *frame = get_current_frame ();
    gcc_assert (frame);
!   return frame->get_function ();
  }
  
  /* Pop the topmost frame_region from this region_model's stack;
--- 6004,6015 ----
  /* Get the function of the top-most frame in this region_model's stack.
     There must be such a frame.  */
  
! const function *
  region_model::get_current_function () const
  {
    const frame_region *frame = get_current_frame ();
    gcc_assert (frame);
!   return &frame->get_function ();
  }
  
  /* Pop the topmost frame_region from this region_model's stack;
*************** region_model::pop_frame (tree result_lva
*** 4695,4700 ****
--- 6036,6042 ----
  {
    gcc_assert (m_current_frame);
  
+   const region_model pre_popped_model = *this;
    const frame_region *frame_reg = m_current_frame;
  
    /* Notify state machines.  */
*************** region_model::pop_frame (tree result_lva
*** 4702,4708 ****
      ctxt->on_pop_frame (frame_reg);
  
    /* Evaluate the result, within the callee frame.  */
!   tree fndecl = m_current_frame->get_function ()->decl;
    tree result = DECL_RESULT (fndecl);
    const svalue *retval = NULL;
    if (result
--- 6044,6050 ----
      ctxt->on_pop_frame (frame_reg);
  
    /* Evaluate the result, within the callee frame.  */
!   tree fndecl = m_current_frame->get_function ().decl;
    tree result = DECL_RESULT (fndecl);
    const svalue *retval = NULL;
    if (result
*************** region_model::pop_frame (tree result_lva
*** 4728,4733 ****
--- 6070,6076 ----
      }
  
    unbind_region_and_descendents (frame_reg,POISON_KIND_POPPED_STACK);
+   notify_on_pop_frame (this, &pre_popped_model, retval, ctxt);
  }
  
  /* Get the number of frames in this region_model's stack.  */
*************** region_model::can_merge_with_p (const re
*** 4880,4885 ****
--- 6223,6231 ----
  			      *other_model.m_constraints,
  			      out_model->m_constraints);
  
+   for (auto iter : m.m_svals_changing_meaning)
+     out_model->m_constraints->purge_state_involving (iter);
+ 
    return true;
  }
  
*************** public:
*** 4978,4992 ****
      return same_tree_p (m_arg, ((const float_as_size_arg &) other).m_arg);
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     diagnostic_metadata m;
!     bool warned = warning_meta (rich_loc, m, get_controlling_option (),
! 				"use of floating-point arithmetic here might"
! 				" yield unexpected results");
      if (warned)
!       inform (rich_loc->get_loc (), "only use operands of an integer type"
! 				    " inside the size argument");
      return warned;
    }
  
--- 6324,6337 ----
      return same_tree_p (m_arg, ((const float_as_size_arg &) other).m_arg);
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     bool warned = ctxt.warn ("use of floating-point arithmetic here might"
! 			     " yield unexpected results");
      if (warned)
!       inform (ctxt.get_location (),
! 	      "only use operands of an integer type"
! 	      " inside the size argument");
      return warned;
    }
  
*************** region_model::check_dynamic_size_for_flo
*** 5069,5079 ****
     Use CTXT to complain about tainted sizes.
  
     Reuse an existing heap_allocated_region if it's not being referenced by
!    this region_model; otherwise create a new one.  */
  
  const region *
  region_model::get_or_create_region_for_heap_alloc (const svalue *size_in_bytes,
! 						   region_model_context *ctxt)
  {
    /* Determine which regions are referenced in this region_model, so that
       we can reuse an existing heap_allocated_region if it's not in use on
--- 6414,6429 ----
     Use CTXT to complain about tainted sizes.
  
     Reuse an existing heap_allocated_region if it's not being referenced by
!    this region_model; otherwise create a new one.
! 
!    Optionally (update_state_machine) transitions the pointer pointing to the
!    heap_allocated_region from start to assumed non-null.  */
  
  const region *
  region_model::get_or_create_region_for_heap_alloc (const svalue *size_in_bytes,
!        region_model_context *ctxt,
!        bool update_state_machine,
!        const call_details *cd)
  {
    /* Determine which regions are referenced in this region_model, so that
       we can reuse an existing heap_allocated_region if it's not in use on
*************** region_model::get_or_create_region_for_h
*** 5095,5100 ****
--- 6445,6458 ----
    if (size_in_bytes)
      if (compat_types_p (size_in_bytes->get_type (), size_type_node))
        set_dynamic_extents (reg, size_in_bytes, ctxt);
+ 
+ 	if (update_state_machine && cd)
+ 		{
+ 			const svalue *ptr_sval
+ 			= m_mgr->get_ptr_svalue (cd->get_lhs_type (), reg);
+       transition_ptr_sval_non_null (ctxt, ptr_sval);
+ 		}
+ 
    return reg;
  }
  
*************** region_model::unset_dynamic_extents (con
*** 5173,5309 ****
    m_dynamic_extents.remove (reg);
  }
  
- /* Information of the layout of a RECORD_TYPE, capturing it as a vector
-    of items, where each item is either a field or padding.  */
- 
- class record_layout
- {
- public:
-   /* An item within a record; either a field, or padding after a field.  */
-   struct item
-   {
-   public:
-     item (const bit_range &br,
- 	  tree field,
- 	  bool is_padding)
-     : m_bit_range (br),
-       m_field (field),
-       m_is_padding (is_padding)
-     {
-     }
- 
-     bit_offset_t get_start_bit_offset () const
-     {
-       return m_bit_range.get_start_bit_offset ();
-     }
-     bit_offset_t get_next_bit_offset () const
-     {
-       return m_bit_range.get_next_bit_offset ();
-     }
- 
-     bool contains_p (bit_offset_t offset) const
-     {
-       return m_bit_range.contains_p (offset);
-     }
- 
-     void dump_to_pp (pretty_printer *pp) const
-     {
-       if (m_is_padding)
- 	pp_printf (pp, "padding after %qD", m_field);
-       else
- 	pp_printf (pp, "%qD", m_field);
-       pp_string (pp, ", ");
-       m_bit_range.dump_to_pp (pp);
-     }
- 
-     bit_range m_bit_range;
-     tree m_field;
-     bool m_is_padding;
-   };
- 
-   record_layout (tree record_type)
-   {
-     gcc_assert (TREE_CODE (record_type) == RECORD_TYPE);
- 
-     for (tree iter = TYPE_FIELDS (record_type); iter != NULL_TREE;
- 	 iter = DECL_CHAIN (iter))
-       {
- 	if (TREE_CODE (iter) == FIELD_DECL)
- 	  {
- 	    int iter_field_offset = int_bit_position (iter);
- 	    bit_size_t size_in_bits;
- 	    if (!int_size_in_bits (TREE_TYPE (iter), &size_in_bits))
- 	      size_in_bits = 0;
- 
- 	    maybe_pad_to (iter_field_offset);
- 
- 	    /* Add field.  */
- 	    m_items.safe_push (item (bit_range (iter_field_offset,
- 						size_in_bits),
- 				     iter, false));
- 	  }
-       }
- 
-     /* Add any trailing padding.  */
-     bit_size_t size_in_bits;
-     if (int_size_in_bits (record_type, &size_in_bits))
-       maybe_pad_to (size_in_bits);
-   }
- 
-   void dump_to_pp (pretty_printer *pp) const
-   {
-     unsigned i;
-     item *it;
-     FOR_EACH_VEC_ELT (m_items, i, it)
-       {
- 	it->dump_to_pp (pp);
- 	pp_newline (pp);
-       }
-   }
- 
-   DEBUG_FUNCTION void dump () const
-   {
-     pretty_printer pp;
-     pp_format_decoder (&pp) = default_tree_printer;
-     pp.buffer->stream = stderr;
-     dump_to_pp (&pp);
-     pp_flush (&pp);
-   }
- 
-   const record_layout::item *get_item_at (bit_offset_t offset) const
-   {
-     unsigned i;
-     item *it;
-     FOR_EACH_VEC_ELT (m_items, i, it)
-       if (it->contains_p (offset))
- 	return it;
-     return NULL;
-   }
- 
- private:
-   /* Subroutine of ctor.  Add padding item to NEXT_OFFSET if necessary.  */
- 
-   void maybe_pad_to (bit_offset_t next_offset)
-   {
-     if (m_items.length () > 0)
-       {
- 	const item &last_item = m_items[m_items.length () - 1];
- 	bit_offset_t offset_after_last_item
- 	  = last_item.get_next_bit_offset ();
- 	if (next_offset > offset_after_last_item)
- 	  {
- 	    bit_size_t padding_size
- 	      = next_offset - offset_after_last_item;
- 	    m_items.safe_push (item (bit_range (offset_after_last_item,
- 						padding_size),
- 				     last_item.m_field, true));
- 	  }
-       }
-   }
- 
-   auto_vec<item> m_items;
- };
- 
  /* A subclass of pending_diagnostic for complaining about uninitialized data
     being copied across a trust boundary to an untrusted output
     (e.g. copy_to_user infoleaks in the Linux kernel).  */
--- 6531,6536 ----
*************** public:
*** 5340,5376 ****
      return OPT_Wanalyzer_exposure_through_uninit_copy;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* CWE-200: Exposure of Sensitive Information to an Unauthorized Actor.  */
!     m.add_cwe (200);
      enum memory_space mem_space = get_src_memory_space ();
      bool warned;
      switch (mem_space)
        {
        default:
! 	warned = warning_meta
! 	  (rich_loc, m, get_controlling_option (),
! 	   "potential exposure of sensitive information"
! 	   " by copying uninitialized data across trust boundary");
  	break;
        case MEMSPACE_STACK:
! 	warned = warning_meta
! 	  (rich_loc, m, get_controlling_option (),
! 	   "potential exposure of sensitive information"
! 	   " by copying uninitialized data from stack across trust boundary");
  	break;
        case MEMSPACE_HEAP:
! 	warned = warning_meta
! 	  (rich_loc, m, get_controlling_option (),
! 	   "potential exposure of sensitive information"
! 	   " by copying uninitialized data from heap across trust boundary");
  	break;
        }
      if (warned)
        {
! 	location_t loc = rich_loc->get_loc ();
  	inform_number_of_uninit_bits (loc);
  	complain_about_uninit_ranges (loc);
  
--- 6567,6599 ----
      return OPT_Wanalyzer_exposure_through_uninit_copy;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-200: Exposure of Sensitive Information to an Unauthorized Actor.  */
!     ctxt.add_cwe (200);
      enum memory_space mem_space = get_src_memory_space ();
      bool warned;
      switch (mem_space)
        {
        default:
! 	warned = ctxt.warn ("potential exposure of sensitive information"
! 			    " by copying uninitialized data"
! 			    " across trust boundary");
  	break;
        case MEMSPACE_STACK:
! 	warned = ctxt.warn ("potential exposure of sensitive information"
! 			    " by copying uninitialized data from stack"
! 			    " across trust boundary");
  	break;
        case MEMSPACE_HEAP:
! 	warned = ctxt.warn ("potential exposure of sensitive information"
! 			    " by copying uninitialized data from heap"
! 			    " across trust boundary");
  	break;
        }
      if (warned)
        {
! 	const location_t loc = ctxt.get_location ();
  	inform_number_of_uninit_bits (loc);
  	complain_about_uninit_ranges (loc);
  
*************** public:
*** 5402,5407 ****
--- 6625,6641 ----
        interest->add_region_creation (m_src_region);
    }
  
+   void
+   maybe_add_sarif_properties (sarif_object &result_obj) const final override
+   {
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/-Wanalyzer-exposure-through-uninit-copy/"
+     props.set (PROPERTY_PREFIX "src_region", m_src_region->to_json ());
+     props.set (PROPERTY_PREFIX "dest_region", m_dest_region->to_json ());
+     props.set (PROPERTY_PREFIX "copied_sval", m_copied_sval->to_json ());
+ #undef PROPERTY_PREFIX
+   }
+ 
  private:
    enum memory_space get_src_memory_space () const
    {
*************** private:
*** 5692,5713 ****
  static bool
  contains_uninit_p (const svalue *sval)
  {
!   struct uninit_finder : public visitor
!   {
!   public:
!     uninit_finder () : m_found_uninit (false) {}
!     void visit_poisoned_svalue (const poisoned_svalue *sval)
      {
!       if (sval->get_poison_kind () == POISON_KIND_UNINIT)
! 	m_found_uninit = true;
!     }
!     bool m_found_uninit;
!   };
  
!   uninit_finder v;
!   sval->accept (&v);
  
!   return v.m_found_uninit;
  }
  
  /* Function for use by plugins when simulating writing data through a
--- 6926,6958 ----
  static bool
  contains_uninit_p (const svalue *sval)
  {
!   switch (sval->get_kind ())
      {
!     default:
!       return false;
!     case SK_POISONED:
!       {
! 	const poisoned_svalue *psval
! 	  = as_a <const poisoned_svalue *> (sval);
! 	return psval->get_poison_kind () == POISON_KIND_UNINIT;
!       }
!     case SK_COMPOUND:
!       {
! 	const compound_svalue *compound_sval
! 	  = as_a <const compound_svalue *> (sval);
  
! 	for (auto iter : *compound_sval)
! 	  {
! 	    const svalue *sval = iter.second;
! 	    if (const poisoned_svalue *psval
! 		= sval->dyn_cast_poisoned_svalue ())
! 	      if (psval->get_poison_kind () == POISON_KIND_UNINIT)
! 		return true;
! 	  }
  
! 	return false;
!       }
!     }
  }
  
  /* Function for use by plugins when simulating writing data through a
*************** noop_region_model_context::add_note (std
*** 5758,5763 ****
--- 7003,7013 ----
  }
  
  void
+ noop_region_model_context::add_event (std::unique_ptr<checker_event>)
+ {
+ }
+ 
+ void
  noop_region_model_context::bifurcate (std::unique_ptr<custom_edge_info>)
  {
  }
*************** noop_region_model_context::terminate_pat
*** 5767,5772 ****
--- 7017,7031 ----
  {
  }
  
+ /* class region_model_context_decorator : public region_model_context.  */
+ 
+ void
+ region_model_context_decorator::add_event (std::unique_ptr<checker_event> event)
+ {
+   if (m_inner)
+     m_inner->add_event (std::move (event));
+ }
+ 
  /* struct model_merger.  */
  
  /* Dump a multiline representation of this merger to PP.  */
*************** model_merger::mergeable_svalue_p (const
*** 5835,5840 ****
--- 7094,7107 ----
    return true;
  }
  
+ /* Mark WIDENING_SVAL as changing meaning during the merge.  */
+ 
+ void
+ model_merger::on_widening_reuse (const widening_svalue *widening_sval)
+ {
+   m_svals_changing_meaning.add (widening_sval);
+ }
+ 
  } // namespace ana
  
  /* Dump RMODEL fully to stderr (i.e. without summarization).  */
*************** build_real_cst_from_string (tree type, c
*** 5916,5922 ****
  static void
  append_interesting_constants (auto_vec<tree> *out)
  {
!   out->safe_push (build_int_cst (integer_type_node, 0));
    out->safe_push (build_int_cst (integer_type_node, 42));
    out->safe_push (build_int_cst (unsigned_type_node, 0));
    out->safe_push (build_int_cst (unsigned_type_node, 42));
--- 7183,7189 ----
  static void
  append_interesting_constants (auto_vec<tree> *out)
  {
!   out->safe_push (integer_zero_node);
    out->safe_push (build_int_cst (integer_type_node, 42));
    out->safe_push (build_int_cst (unsigned_type_node, 0));
    out->safe_push (build_int_cst (unsigned_type_node, 42));
*************** test_array_1 ()
*** 6141,6147 ****
  
    region_model_manager mgr;
    region_model model (&mgr);
!   tree int_0 = build_int_cst (integer_type_node, 0);
    tree a_0 = build4 (ARRAY_REF, char_type_node,
  		     a, int_0, NULL_TREE, NULL_TREE);
    tree char_A = build_int_cst (char_type_node, 'A');
--- 7408,7414 ----
  
    region_model_manager mgr;
    region_model model (&mgr);
!   tree int_0 = integer_zero_node;
    tree a_0 = build4 (ARRAY_REF, char_type_node,
  		     a, int_0, NULL_TREE, NULL_TREE);
    tree char_A = build_int_cst (char_type_node, 'A');
*************** test_get_representative_tree ()
*** 6178,6184 ****
      tree tlen = size_int (10);
      tree arr_type = build_array_type (char_type_node, build_index_type (tlen));
      tree a = build_global_decl ("a", arr_type);
!     placeholder_svalue test_sval (char_type_node, "test value");
  
      /* Value of a[3].  */
      {
--- 7445,7452 ----
      tree tlen = size_int (10);
      tree arr_type = build_array_type (char_type_node, build_index_type (tlen));
      tree a = build_global_decl ("a", arr_type);
!     placeholder_svalue test_sval (mgr.alloc_symbol_id (),
! 				  char_type_node, "test value");
  
      /* Value of a[3].  */
      {
*************** test_get_representative_tree ()
*** 6197,6203 ****
      {
        test_region_model_context ctxt;
        region_model model (&mgr);
!       tree idx = build_int_cst (integer_type_node, 0);
        tree a_0 = build4 (ARRAY_REF, char_type_node,
  			 a, idx, NULL_TREE, NULL_TREE);
        const region *a_0_reg = model.get_lvalue (a_0, &ctxt);
--- 7465,7471 ----
      {
        test_region_model_context ctxt;
        region_model model (&mgr);
!       tree idx = integer_zero_node;
        tree a_0 = build4 (ARRAY_REF, char_type_node,
  			 a, idx, NULL_TREE, NULL_TREE);
        const region *a_0_reg = model.get_lvalue (a_0, &ctxt);
*************** test_get_representative_tree ()
*** 6223,6229 ****
      {
        region_model m (&mgr);
        const region *c_x_reg = m.get_lvalue (c_x, &ctxt);
!       placeholder_svalue test_sval_x (integer_type_node, "test x val");
        m.set_value (c_x_reg, &test_sval_x, &ctxt);
        tree rep = m.get_representative_tree (&test_sval_x);
        ASSERT_DUMP_TREE_EQ (rep, "c.x");
--- 7491,7498 ----
      {
        region_model m (&mgr);
        const region *c_x_reg = m.get_lvalue (c_x, &ctxt);
!       placeholder_svalue test_sval_x (mgr.alloc_symbol_id (),
! 				      integer_type_node, "test x val");
        m.set_value (c_x_reg, &test_sval_x, &ctxt);
        tree rep = m.get_representative_tree (&test_sval_x);
        ASSERT_DUMP_TREE_EQ (rep, "c.x");
*************** test_get_representative_tree ()
*** 6233,6239 ****
      {
        region_model m (&mgr);
        const region *c_y_reg = m.get_lvalue (c_y, &ctxt);
!       placeholder_svalue test_sval_y (integer_type_node, "test y val");
        m.set_value (c_y_reg, &test_sval_y, &ctxt);
        tree rep = m.get_representative_tree (&test_sval_y);
        ASSERT_DUMP_TREE_EQ (rep, "c.y");
--- 7502,7509 ----
      {
        region_model m (&mgr);
        const region *c_y_reg = m.get_lvalue (c_y, &ctxt);
!       placeholder_svalue test_sval_y (mgr.alloc_symbol_id (),
! 				      integer_type_node, "test y val");
        m.set_value (c_y_reg, &test_sval_y, &ctxt);
        tree rep = m.get_representative_tree (&test_sval_y);
        ASSERT_DUMP_TREE_EQ (rep, "c.y");
*************** test_get_representative_tree ()
*** 6247,6253 ****
  static void
  test_unique_constants ()
  {
!   tree int_0 = build_int_cst (integer_type_node, 0);
    tree int_42 = build_int_cst (integer_type_node, 42);
  
    test_region_model_context ctxt;
--- 7517,7523 ----
  static void
  test_unique_constants ()
  {
!   tree int_0 = integer_zero_node;
    tree int_42 = build_int_cst (integer_type_node, 42);
  
    test_region_model_context ctxt;
*************** test_binop_svalue_folding ()
*** 6477,6483 ****
      const svalue *sval_false = mgr.get_or_create_int_cst (boolean_type_node, 0);
      const svalue *sval_unknown
        = mgr.get_or_create_unknown_svalue (boolean_type_node);
!     const placeholder_svalue sval_placeholder (boolean_type_node, "v");
      for (auto op : {BIT_IOR_EXPR, TRUTH_OR_EXPR})
        {
  	ASSERT_EQ (mgr.get_or_create_binop (boolean_type_node, op,
--- 7747,7754 ----
      const svalue *sval_false = mgr.get_or_create_int_cst (boolean_type_node, 0);
      const svalue *sval_unknown
        = mgr.get_or_create_unknown_svalue (boolean_type_node);
!     const placeholder_svalue sval_placeholder (mgr.alloc_symbol_id (),
! 					       boolean_type_node, "v");
      for (auto op : {BIT_IOR_EXPR, TRUTH_OR_EXPR})
        {
  	ASSERT_EQ (mgr.get_or_create_binop (boolean_type_node, op,
*************** test_bit_range_regions ()
*** 6629,6635 ****
  static void
  test_assignment ()
  {
!   tree int_0 = build_int_cst (integer_type_node, 0);
    tree x = build_global_decl ("x", integer_type_node);
    tree y = build_global_decl ("y", integer_type_node);
  
--- 7900,7906 ----
  static void
  test_assignment ()
  {
!   tree int_0 = integer_zero_node;
    tree x = build_global_decl ("x", integer_type_node);
    tree y = build_global_decl ("y", integer_type_node);
  
*************** test_stack_frames ()
*** 6688,6694 ****
    tree int_42 = build_int_cst (integer_type_node, 42);
    tree int_10 = build_int_cst (integer_type_node, 10);
    tree int_5 = build_int_cst (integer_type_node, 5);
!   tree int_0 = build_int_cst (integer_type_node, 0);
  
    auto_vec <tree> param_types;
    tree parent_fndecl = make_fndecl (integer_type_node,
--- 7959,7965 ----
    tree int_42 = build_int_cst (integer_type_node, 42);
    tree int_10 = build_int_cst (integer_type_node, 10);
    tree int_5 = build_int_cst (integer_type_node, 5);
!   tree int_0 = integer_zero_node;
  
    auto_vec <tree> param_types;
    tree parent_fndecl = make_fndecl (integer_type_node,
*************** test_stack_frames ()
*** 6732,6738 ****
  
    /* Push stack frame for "parent_fn".  */
    const region *parent_frame_reg
!     = model.push_frame (DECL_STRUCT_FUNCTION (parent_fndecl),
  			NULL, &ctxt);
    ASSERT_EQ (model.get_current_frame (), parent_frame_reg);
    ASSERT_TRUE (model.region_exists_p (parent_frame_reg));
--- 8003,8009 ----
  
    /* Push stack frame for "parent_fn".  */
    const region *parent_frame_reg
!     = model.push_frame (*DECL_STRUCT_FUNCTION (parent_fndecl),
  			NULL, &ctxt);
    ASSERT_EQ (model.get_current_frame (), parent_frame_reg);
    ASSERT_TRUE (model.region_exists_p (parent_frame_reg));
*************** test_stack_frames ()
*** 6748,6754 ****
  
    /* Push stack frame for "child_fn".  */
    const region *child_frame_reg
!     = model.push_frame (DECL_STRUCT_FUNCTION (child_fndecl), NULL, &ctxt);
    ASSERT_EQ (model.get_current_frame (), child_frame_reg);
    ASSERT_TRUE (model.region_exists_p (child_frame_reg));
    const region *x_in_child_reg = model.get_lvalue (x, &ctxt);
--- 8019,8025 ----
  
    /* Push stack frame for "child_fn".  */
    const region *child_frame_reg
!     = model.push_frame (*DECL_STRUCT_FUNCTION (child_fndecl), NULL, &ctxt);
    ASSERT_EQ (model.get_current_frame (), child_frame_reg);
    ASSERT_TRUE (model.region_exists_p (child_frame_reg));
    const region *x_in_child_reg = model.get_lvalue (x, &ctxt);
*************** test_get_representative_path_var ()
*** 6841,6847 ****
    for (int depth = 0; depth < 5; depth++)
      {
        const region *frame_n_reg
! 	= model.push_frame (DECL_STRUCT_FUNCTION (fndecl), NULL, &ctxt);
        const region *parm_n_reg = model.get_lvalue (path_var (n, depth), &ctxt);
        parm_regs.safe_push (parm_n_reg);
  
--- 8112,8118 ----
    for (int depth = 0; depth < 5; depth++)
      {
        const region *frame_n_reg
! 	= model.push_frame (*DECL_STRUCT_FUNCTION (fndecl), NULL, &ctxt);
        const region *parm_n_reg = model.get_lvalue (path_var (n, depth), &ctxt);
        parm_regs.safe_push (parm_n_reg);
  
*************** test_state_merging ()
*** 7085,7095 ****
      region_model model0 (&mgr);
      region_model model1 (&mgr);
      ASSERT_EQ (model0.get_stack_depth (), 0);
!     model0.push_frame (DECL_STRUCT_FUNCTION (test_fndecl), NULL, &ctxt);
      ASSERT_EQ (model0.get_stack_depth (), 1);
!     model1.push_frame (DECL_STRUCT_FUNCTION (test_fndecl), NULL, &ctxt);
  
!     placeholder_svalue test_sval (integer_type_node, "test sval");
      model0.set_value (model0.get_lvalue (a, &ctxt), &test_sval, &ctxt);
      model1.set_value (model1.get_lvalue (a, &ctxt), &test_sval, &ctxt);
      ASSERT_EQ (model0, model1);
--- 8356,8367 ----
      region_model model0 (&mgr);
      region_model model1 (&mgr);
      ASSERT_EQ (model0.get_stack_depth (), 0);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, &ctxt);
      ASSERT_EQ (model0.get_stack_depth (), 1);
!     model1.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, &ctxt);
  
!     placeholder_svalue test_sval (mgr.alloc_symbol_id (),
! 				  integer_type_node, "test sval");
      model0.set_value (model0.get_lvalue (a, &ctxt), &test_sval, &ctxt);
      model1.set_value (model1.get_lvalue (a, &ctxt), &test_sval, &ctxt);
      ASSERT_EQ (model0, model1);
*************** test_state_merging ()
*** 7108,7114 ****
      region_model model0 (&mgr);
      region_model model1 (&mgr);
  
!     placeholder_svalue test_sval (integer_type_node, "test sval");
      model0.set_value (model0.get_lvalue (x, &ctxt), &test_sval, &ctxt);
      model1.set_value (model1.get_lvalue (x, &ctxt), &test_sval, &ctxt);
      ASSERT_EQ (model0, model1);
--- 8380,8387 ----
      region_model model0 (&mgr);
      region_model model1 (&mgr);
  
!     placeholder_svalue test_sval (mgr.alloc_symbol_id (),
! 				  integer_type_node, "test sval");
      model0.set_value (model0.get_lvalue (x, &ctxt), &test_sval, &ctxt);
      model1.set_value (model1.get_lvalue (x, &ctxt), &test_sval, &ctxt);
      ASSERT_EQ (model0, model1);
*************** test_state_merging ()
*** 7177,7183 ****
    /* Pointers: non-NULL and non-NULL: ptr to a local.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
      model0.set_value (model0.get_lvalue (p, NULL),
  		      model0.get_rvalue (addr_of_a, NULL), NULL);
  
--- 8450,8456 ----
    /* Pointers: non-NULL and non-NULL: ptr to a local.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
      model0.set_value (model0.get_lvalue (p, NULL),
  		      model0.get_rvalue (addr_of_a, NULL), NULL);
  
*************** test_state_merging ()
*** 7248,7254 ****
    {
      test_region_model_context ctxt;
      region_model model0 (&mgr);
!     placeholder_svalue placeholder_sval (integer_type_node, "test");
      model0.set_value (model0.get_lvalue (x, &ctxt),
  		      &placeholder_sval, &ctxt);
      model0.set_value (model0.get_lvalue (y, &ctxt), &placeholder_sval, &ctxt);
--- 8521,8528 ----
    {
      test_region_model_context ctxt;
      region_model model0 (&mgr);
!     placeholder_svalue placeholder_sval (mgr.alloc_symbol_id (),
! 					 integer_type_node, "test");
      model0.set_value (model0.get_lvalue (x, &ctxt),
  		      &placeholder_sval, &ctxt);
      model0.set_value (model0.get_lvalue (y, &ctxt), &placeholder_sval, &ctxt);
*************** test_state_merging ()
*** 7315,7326 ****
       frame points to a local in a more recent stack frame.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
      const region *q_in_first_frame = model0.get_lvalue (q, NULL);
  
      /* Push a second frame.  */
      const region *reg_2nd_frame
!       = model0.push_frame (DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
  
      /* Have a pointer in the older frame point to a local in the
         more recent frame.  */
--- 8589,8600 ----
       frame points to a local in a more recent stack frame.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
      const region *q_in_first_frame = model0.get_lvalue (q, NULL);
  
      /* Push a second frame.  */
      const region *reg_2nd_frame
!       = model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
  
      /* Have a pointer in the older frame point to a local in the
         more recent frame.  */
*************** test_state_merging ()
*** 7347,7353 ****
    /* Verify that we can merge a model in which a local points to a global.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
      model0.set_value (model0.get_lvalue (q, NULL),
  		      model0.get_rvalue (addr_of_y, NULL), NULL);
  
--- 8621,8627 ----
    /* Verify that we can merge a model in which a local points to a global.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
      model0.set_value (model0.get_lvalue (q, NULL),
  		      model0.get_rvalue (addr_of_y, NULL), NULL);
  
*************** test_state_merging ()
*** 7368,7374 ****
  static void
  test_constraint_merging ()
  {
!   tree int_0 = build_int_cst (integer_type_node, 0);
    tree int_5 = build_int_cst (integer_type_node, 5);
    tree x = build_global_decl ("x", integer_type_node);
    tree y = build_global_decl ("y", integer_type_node);
--- 8642,8648 ----
  static void
  test_constraint_merging ()
  {
!   tree int_0 = integer_zero_node;
    tree int_5 = build_int_cst (integer_type_node, 5);
    tree x = build_global_decl ("x", integer_type_node);
    tree y = build_global_decl ("y", integer_type_node);
*************** test_widening_constraints ()
*** 7415,7423 ****
  {
    region_model_manager mgr;
    function_point point (program_point::origin (mgr).get_function_point ());
!   tree int_0 = build_int_cst (integer_type_node, 0);
    tree int_m1 = build_int_cst (integer_type_node, -1);
!   tree int_1 = build_int_cst (integer_type_node, 1);
    tree int_256 = build_int_cst (integer_type_node, 256);
    test_region_model_context ctxt;
    const svalue *int_0_sval = mgr.get_or_create_constant_svalue (int_0);
--- 8689,8697 ----
  {
    region_model_manager mgr;
    function_point point (program_point::origin (mgr).get_function_point ());
!   tree int_0 = integer_zero_node;
    tree int_m1 = build_int_cst (integer_type_node, -1);
!   tree int_1 = integer_one_node;
    tree int_256 = build_int_cst (integer_type_node, 256);
    test_region_model_context ctxt;
    const svalue *int_0_sval = mgr.get_or_create_constant_svalue (int_0);
*************** test_iteration_1 ()
*** 7531,7540 ****
    region_model_manager mgr;
    program_point point (program_point::origin (mgr));
  
!   tree int_0 = build_int_cst (integer_type_node, 0);
!   tree int_1 = build_int_cst (integer_type_node, 1);
    tree int_256 = build_int_cst (integer_type_node, 256);
-   tree int_257 = build_int_cst (integer_type_node, 257);
    tree i = build_global_decl ("i", integer_type_node);
  
    test_region_model_context ctxt;
--- 8805,8813 ----
    region_model_manager mgr;
    program_point point (program_point::origin (mgr));
  
!   tree int_0 = integer_zero_node;
!   tree int_1 = integer_one_node;
    tree int_256 = build_int_cst (integer_type_node, 256);
    tree i = build_global_decl ("i", integer_type_node);
  
    test_region_model_context ctxt;
*************** test_iteration_1 ()
*** 7596,7603 ****
    ASSERT_TRUE (model5.can_merge_with_p (model2, point, &model6));
    const svalue *merged_widening = model6.get_rvalue (i, &ctxt);
    ASSERT_EQ (merged_widening->get_kind (), SK_WIDENING);
- 
-   ASSERT_CONDITION_TRUE (model6, i, LT_EXPR, int_257);
  }
  
  /* Verify that if we mark a pointer to a malloc-ed region as non-NULL,
--- 8869,8874 ----
*************** test_array_2 ()
*** 7688,7695 ****
    /* "int i;"  */
    tree i = build_global_decl ("i", integer_type_node);
  
!   tree int_0 = build_int_cst (integer_type_node, 0);
!   tree int_1 = build_int_cst (integer_type_node, 1);
  
    tree arr_0 = build4 (ARRAY_REF, integer_type_node,
  		       arr, int_0, NULL_TREE, NULL_TREE);
--- 8959,8966 ----
    /* "int i;"  */
    tree i = build_global_decl ("i", integer_type_node);
  
!   tree int_0 = integer_zero_node;
!   tree int_1 = integer_one_node;
  
    tree arr_0 = build4 (ARRAY_REF, integer_type_node,
  		       arr, int_0, NULL_TREE, NULL_TREE);
*************** test_array_2 ()
*** 7737,7743 ****
      const region *arr_i_reg = model.get_lvalue (arr_i, NULL);
      region_offset offset = arr_i_reg->get_offset (&mgr);
      ASSERT_EQ (offset.get_base_region (), model.get_lvalue (arr, NULL));
!     ASSERT_EQ (offset.get_symbolic_byte_offset ()->get_kind (), SK_BINOP);
    }
  
    /* "arr[i] = i;" - this should remove the earlier bindings.  */
--- 9008,9017 ----
      const region *arr_i_reg = model.get_lvalue (arr_i, NULL);
      region_offset offset = arr_i_reg->get_offset (&mgr);
      ASSERT_EQ (offset.get_base_region (), model.get_lvalue (arr, NULL));
!     const svalue *offset_sval = offset.get_symbolic_byte_offset ();
!     if (const svalue *cast = offset_sval->maybe_undo_cast ())
!       offset_sval = cast;
!     ASSERT_EQ (offset_sval->get_kind (), SK_BINOP);
    }
  
    /* "arr[i] = i;" - this should remove the earlier bindings.  */
*************** test_mem_ref ()
*** 7767,7773 ****
  
    tree int_17 = build_int_cst (integer_type_node, 17);
    tree addr_of_x = build1 (ADDR_EXPR, int_star, x);
!   tree offset_0 = build_int_cst (integer_type_node, 0);
    tree star_p = build2 (MEM_REF, integer_type_node, p, offset_0);
  
    region_model_manager mgr;
--- 9041,9048 ----
  
    tree int_17 = build_int_cst (integer_type_node, 17);
    tree addr_of_x = build1 (ADDR_EXPR, int_star, x);
!   tree ptype = build_pointer_type_for_mode (char_type_node, ptr_mode, true);
!   tree offset_0 = build_int_cst (ptype, 0);
    tree star_p = build2 (MEM_REF, integer_type_node, p, offset_0);
  
    region_model_manager mgr;
*************** test_POINTER_PLUS_EXPR_then_MEM_REF ()
*** 7817,7823 ****
    tree a = build_global_decl ("a", int_star);
    tree offset_12 = build_int_cst (size_type_node, 12);
    tree pointer_plus_expr = build2 (POINTER_PLUS_EXPR, int_star, a, offset_12);
!   tree offset_0 = build_int_cst (integer_type_node, 0);
    tree mem_ref = build2 (MEM_REF, integer_type_node,
  			 pointer_plus_expr, offset_0);
    region_model_manager mgr;
--- 9092,9099 ----
    tree a = build_global_decl ("a", int_star);
    tree offset_12 = build_int_cst (size_type_node, 12);
    tree pointer_plus_expr = build2 (POINTER_PLUS_EXPR, int_star, a, offset_12);
!   tree ptype = build_pointer_type_for_mode (char_type_node, ptr_mode, true);
!   tree offset_0 = build_int_cst (ptype, 0);
    tree mem_ref = build2 (MEM_REF, integer_type_node,
  			 pointer_plus_expr, offset_0);
    region_model_manager mgr;
*************** test_alloca ()
*** 7876,7882 ****
  
    /* Push stack frame.  */
    const region *frame_reg
!     = model.push_frame (DECL_STRUCT_FUNCTION (fndecl),
  			NULL, &ctxt);
    /* "p = alloca (n * 4);".  */
    const svalue *size_sval = model.get_rvalue (n_times_4, &ctxt);
--- 9152,9158 ----
  
    /* Push stack frame.  */
    const region *frame_reg
!     = model.push_frame (*DECL_STRUCT_FUNCTION (fndecl),
  			NULL, &ctxt);
    /* "p = alloca (n * 4);".  */
    const svalue *size_sval = model.get_rvalue (n_times_4, &ctxt);
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region-model.h gcc-14.1.0/gcc/analyzer/region-model.h
*** gcc-13.2.0/gcc/analyzer/region-model.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region-model.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 27,32 ****
--- 27,34 ----
       http://lcs.ios.ac.cn/~xuzb/canalyze/memmodel.pdf  */
  
  #include "bitmap.h"
+ #include "stringpool.h"
+ #include "attribs.h" // for rdwr_map
  #include "selftest.h"
  #include "analyzer/svalue.h"
  #include "analyzer/region.h"
*************** public:
*** 173,178 ****
--- 175,182 ----
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
    void dump (bool simple) const;
  
+   json::object *to_json () const;
+ 
    bool can_merge_with_p (const region_to_value_map &other,
  			 region_to_value_map *out) const;
  
*************** public:
*** 236,241 ****
--- 240,250 ----
  
  struct append_regions_cb_data;
  
+ typedef void (*pop_frame_callback) (const region_model *model,
+ 				    const region_model *prev_model,
+ 				    const svalue *retval,
+ 				    region_model_context *ctxt);
+ 
  /* A region_model encapsulates a representation of the state of memory, with
     a tree of regions, along with their associated values.
     The representation is graph-like because values can be pointers to
*************** class region_model
*** 271,276 ****
--- 280,287 ----
  
    void debug () const;
  
+   json::object *to_json () const;
+ 
    void validate () const;
  
    void canonicalize ();
*************** class region_model
*** 321,332 ****
  
    void handle_phi (const gphi *phi, tree lhs, tree rhs,
  		   const region_model &old_state,
  		   region_model_context *ctxt);
  
    bool maybe_update_for_edge (const superedge &edge,
  			      const gimple *last_stmt,
  			      region_model_context *ctxt,
! 			      rejected_constraint **out);
  
    void update_for_gcall (const gcall *call_stmt,
                           region_model_context *ctxt,
--- 332,344 ----
  
    void handle_phi (const gphi *phi, tree lhs, tree rhs,
  		   const region_model &old_state,
+ 		   hash_set<const svalue *> &svals_changing_meaning,
  		   region_model_context *ctxt);
  
    bool maybe_update_for_edge (const superedge &edge,
  			      const gimple *last_stmt,
  			      region_model_context *ctxt,
! 			      std::unique_ptr<rejected_constraint> *out);
  
    void update_for_gcall (const gcall *call_stmt,
                           region_model_context *ctxt,
*************** class region_model
*** 335,344 ****
    void update_for_return_gcall (const gcall *call_stmt,
                                  region_model_context *ctxt);
  
!   const region *push_frame (function *fun, const vec<const svalue *> *arg_sids,
  			    region_model_context *ctxt);
    const frame_region *get_current_frame () const { return m_current_frame; }
!   function * get_current_function () const;
    void pop_frame (tree result_lvalue,
  		  const svalue **out_result,
  		  region_model_context *ctxt,
--- 347,356 ----
    void update_for_return_gcall (const gcall *call_stmt,
                                  region_model_context *ctxt);
  
!   const region *push_frame (const function &fun, const vec<const svalue *> *arg_sids,
  			    region_model_context *ctxt);
    const frame_region *get_current_frame () const { return m_current_frame; }
!   const function *get_current_function () const;
    void pop_frame (tree result_lvalue,
  		  const svalue **out_result,
  		  region_model_context *ctxt,
*************** class region_model
*** 352,358 ****
    const svalue *get_rvalue (tree expr, region_model_context *ctxt) const;
  
    const region *deref_rvalue (const svalue *ptr_sval, tree ptr_tree,
! 			       region_model_context *ctxt) const;
  
    const svalue *get_rvalue_for_bits (tree type,
  				     const region *reg,
--- 364,371 ----
    const svalue *get_rvalue (tree expr, region_model_context *ctxt) const;
  
    const region *deref_rvalue (const svalue *ptr_sval, tree ptr_tree,
! 			      region_model_context *ctxt,
! 			      bool add_nonnull_constraint = true) const;
  
    const svalue *get_rvalue_for_bits (tree type,
  				     const region *reg,
*************** class region_model
*** 364,371 ****
    void set_value (tree lhs, tree rhs, region_model_context *ctxt);
    void clobber_region (const region *reg);
    void purge_region (const region *reg);
!   void fill_region (const region *reg, const svalue *sval);
!   void zero_fill_region (const region *reg);
    void mark_region_as_unknown (const region *reg, uncertainty_t *uncertainty);
  
    tristate eval_condition (const svalue *lhs,
--- 377,400 ----
    void set_value (tree lhs, tree rhs, region_model_context *ctxt);
    void clobber_region (const region *reg);
    void purge_region (const region *reg);
!   void fill_region (const region *reg,
! 		    const svalue *sval,
! 		    region_model_context *ctxt);
!   void zero_fill_region (const region *reg,
! 			 region_model_context *ctxt);
!   void write_bytes (const region *dest_reg,
! 		    const svalue *num_bytes_sval,
! 		    const svalue *sval,
! 		    region_model_context *ctxt);
!   const svalue *read_bytes (const region *src_reg,
! 			    tree src_ptr_expr,
! 			    const svalue *num_bytes_sval,
! 			    region_model_context *ctxt) const;
!   void copy_bytes (const region *dest_reg,
! 		   const region *src_reg,
! 		   tree src_ptr_expr,
! 		   const svalue *num_bytes_sval,
! 		   region_model_context *ctxt);
    void mark_region_as_unknown (const region *reg, uncertainty_t *uncertainty);
  
    tristate eval_condition (const svalue *lhs,
*************** class region_model
*** 384,394 ****
  		       region_model_context *ctxt);
    bool add_constraint (tree lhs, enum tree_code op, tree rhs,
  		       region_model_context *ctxt,
! 		       rejected_constraint **out);
  
-   const region *
-   get_or_create_region_for_heap_alloc (const svalue *size_in_bytes,
- 				       region_model_context *ctxt);
    const region *create_region_for_alloca (const svalue *size_in_bytes,
  					  region_model_context *ctxt);
    void get_referenced_base_regions (auto_bitmap &out_ids) const;
--- 413,426 ----
  		       region_model_context *ctxt);
    bool add_constraint (tree lhs, enum tree_code op, tree rhs,
  		       region_model_context *ctxt,
! 		       std::unique_ptr<rejected_constraint> *out);
! 
! 	const region *
! 	get_or_create_region_for_heap_alloc (const svalue *size_in_bytes,
! 				region_model_context *ctxt,
! 				bool update_state_machine = false,
! 				const call_details *cd = nullptr);
  
    const region *create_region_for_alloca (const svalue *size_in_bytes,
  					  region_model_context *ctxt);
    void get_referenced_base_regions (auto_bitmap &out_ids) const;
*************** class region_model
*** 447,452 ****
--- 479,495 ----
  
    const svalue *get_store_value (const region *reg,
  				 region_model_context *ctxt) const;
+   const svalue *get_store_bytes (const region *base_reg,
+ 				 const byte_range &bytes,
+ 				 region_model_context *ctxt) const;
+   const svalue *scan_for_null_terminator (const region *reg,
+ 					  tree expr,
+ 					  const svalue **out_sval,
+ 					  region_model_context *ctxt) const;
+   const svalue *scan_for_null_terminator_1 (const region *reg,
+ 					    tree expr,
+ 					    const svalue **out_sval,
+ 					    region_model_context *ctxt) const;
  
    bool region_exists_p (const region *reg) const;
  
*************** class region_model
*** 454,462 ****
  
    const svalue *get_capacity (const region *reg) const;
  
-   const svalue *get_string_size (const svalue *sval) const;
-   const svalue *get_string_size (const region *reg) const;
- 
    bool replay_call_summary (call_summary_replay &r,
  			    const region_model &summary);
  
--- 497,502 ----
*************** class region_model
*** 475,480 ****
--- 515,525 ----
  			     const svalue *old_ptr_sval,
  			     const svalue *new_ptr_sval);
  
+   /* Implemented in sm-malloc.cc.  */
+   void
+   transition_ptr_sval_non_null (region_model_context *ctxt,
+       const svalue *new_ptr_sval);
+ 
    /* Implemented in sm-taint.cc.  */
    void mark_as_tainted (const svalue *sval,
  			region_model_context *ctxt);
*************** class region_model
*** 490,497 ****
--- 535,574 ----
  				  region_model_context *ctxt) const;
  
    void check_region_for_write (const region *dest_reg,
+ 			       const svalue *sval_hint,
  			       region_model_context *ctxt) const;
  
+   const svalue *
+   check_for_null_terminated_string_arg (const call_details &cd,
+ 					unsigned idx) const;
+   const svalue *
+   check_for_null_terminated_string_arg (const call_details &cd,
+ 					unsigned idx,
+ 					bool include_terminator,
+ 					const svalue **out_sval) const;
+ 
+   const builtin_known_function *
+   get_builtin_kf (const gcall *call,
+ 		  region_model_context *ctxt = NULL) const;
+ 
+   static void
+   register_pop_frame_callback (const pop_frame_callback &callback)
+   {
+     pop_frame_callbacks.safe_push (callback);
+   }
+ 
+   static void
+   notify_on_pop_frame (const region_model *model,
+ 		       const region_model *prev_model,
+ 		       const svalue *retval,
+ 		       region_model_context *ctxt)
+   {
+     for (auto &callback : pop_frame_callbacks)
+ 	callback (model, prev_model, retval, ctxt);
+   }
+ 
+   bool called_from_main_p () const;
+ 
  private:
    const region *get_lvalue_1 (path_var pv, region_model_context *ctxt) const;
    const svalue *get_rvalue_1 (path_var pv, region_model_context *ctxt) const;
*************** private:
*** 520,533 ****
    bool apply_constraints_for_gcond (const cfg_superedge &edge,
  				    const gcond *cond_stmt,
  				    region_model_context *ctxt,
! 				    rejected_constraint **out);
    bool apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
  				      const gswitch *switch_stmt,
  				      region_model_context *ctxt,
! 				      rejected_constraint **out);
    bool apply_constraints_for_exception (const gimple *last_stmt,
  					region_model_context *ctxt,
! 					rejected_constraint **out);
  
    int poison_any_pointers_to_descendents (const region *reg,
  					  enum poison_kind pkind);
--- 597,613 ----
    bool apply_constraints_for_gcond (const cfg_superedge &edge,
  				    const gcond *cond_stmt,
  				    region_model_context *ctxt,
! 				    std::unique_ptr<rejected_constraint> *out);
    bool apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
  				      const gswitch *switch_stmt,
  				      region_model_context *ctxt,
! 				      std::unique_ptr<rejected_constraint> *out);
!   bool apply_constraints_for_ggoto (const cfg_superedge &edge,
! 				    const ggoto *goto_stmt,
! 				    region_model_context *ctxt);
    bool apply_constraints_for_exception (const gimple *last_stmt,
  					region_model_context *ctxt,
! 					std::unique_ptr<rejected_constraint> *out);
  
    int poison_any_pointers_to_descendents (const region *reg,
  					  enum poison_kind pkind);
*************** private:
*** 536,542 ****
  			   bool nonnull,
  			   region_model_context *ctxt);
  
-   bool called_from_main_p () const;
    const svalue *get_initial_value_for_global (const region *reg) const;
  
    const region * get_region_for_poisoned_expr (tree expr) const;
--- 616,621 ----
*************** private:
*** 553,581 ****
  
    void check_for_writable_region (const region* dest_reg,
  				  region_model_context *ctxt) const;
!   void check_region_access (const region *reg,
  			    enum access_direction dir,
  			    region_model_context *ctxt) const;
!   void check_region_for_read (const region *src_reg,
  			      region_model_context *ctxt) const;
    void check_region_size (const region *lhs_reg, const svalue *rhs_sval,
  			  region_model_context *ctxt) const;
  
    /* Implemented in bounds-checking.cc  */
!   void check_symbolic_bounds (const region *base_reg,
  			      const svalue *sym_byte_offset,
  			      const svalue *num_bytes_sval,
  			      const svalue *capacity,
  			      enum access_direction dir,
  			      region_model_context *ctxt) const;
!   void check_region_bounds (const region *reg, enum access_direction dir,
  			    region_model_context *ctxt) const;
  
    void check_call_args (const call_details &cd) const;
!   void check_external_function_for_access_attr (const gcall *call,
! 						tree callee_fndecl,
! 						region_model_context *ctxt) const;
  
    /* Storing this here to avoid passing it around everywhere.  */
    region_model_manager *const m_mgr;
  
--- 632,679 ----
  
    void check_for_writable_region (const region* dest_reg,
  				  region_model_context *ctxt) const;
!   bool check_region_access (const region *reg,
  			    enum access_direction dir,
+ 			    const svalue *sval_hint,
  			    region_model_context *ctxt) const;
!   bool check_region_for_read (const region *src_reg,
  			      region_model_context *ctxt) const;
    void check_region_size (const region *lhs_reg, const svalue *rhs_sval,
  			  region_model_context *ctxt) const;
  
    /* Implemented in bounds-checking.cc  */
!   bool check_symbolic_bounds (const region *base_reg,
  			      const svalue *sym_byte_offset,
  			      const svalue *num_bytes_sval,
  			      const svalue *capacity,
  			      enum access_direction dir,
+ 			      const svalue *sval_hint,
  			      region_model_context *ctxt) const;
!   bool check_region_bounds (const region *reg, enum access_direction dir,
! 			    const svalue *sval_hint,
  			    region_model_context *ctxt) const;
  
    void check_call_args (const call_details &cd) const;
!   void check_call_format_attr (const call_details &cd,
! 			       tree format_attr) const;
!   void check_function_attr_access (const gcall *call,
! 				   tree callee_fndecl,
! 				   region_model_context *ctxt,
! 				   rdwr_map &rdwr_idx) const;
!   void check_function_attr_null_terminated_string_arg (const gcall *call,
! 						       tree callee_fndecl,
! 						       region_model_context *ctxt,
! 						       rdwr_map &rdwr_idx);
!   void check_one_function_attr_null_terminated_string_arg (const gcall *call,
! 							   tree callee_fndecl,
! 							   region_model_context *ctxt,
! 							   rdwr_map &rdwr_idx,
! 							   tree attr);
!   void check_function_attrs (const gcall *call,
! 			     tree callee_fndecl,
! 			     region_model_context *ctxt);
  
+   static auto_vec<pop_frame_callback> pop_frame_callbacks;
    /* Storing this here to avoid passing it around everywhere.  */
    region_model_manager *const m_mgr;
  
*************** class region_model_context
*** 604,616 ****
  {
   public:
    /* Hook for clients to store pending diagnostics.
!      Return true if the diagnostic was stored, or false if it was deleted.  */
!   virtual bool warn (std::unique_ptr<pending_diagnostic> d) = 0;
  
    /* Hook for clients to add a note to the last previously stored
       pending diagnostic.  */
    virtual void add_note (std::unique_ptr<pending_note> pn) = 0;
  
    /* Hook for clients to be notified when an SVAL that was reachable
       in a previous state is no longer live, so that clients can emit warnings
       about leaks.  */
--- 702,720 ----
  {
   public:
    /* Hook for clients to store pending diagnostics.
!      Return true if the diagnostic was stored, or false if it was deleted.
!      Optionally provide a custom stmt_finder.  */
!   virtual bool warn (std::unique_ptr<pending_diagnostic> d,
! 		     const stmt_finder *custom_finder = NULL) = 0;
  
    /* Hook for clients to add a note to the last previously stored
       pending diagnostic.  */
    virtual void add_note (std::unique_ptr<pending_note> pn) = 0;
  
+   /* Hook for clients to add an event to the last previously stored
+      pending diagnostic.  */
+   virtual void add_event (std::unique_ptr<checker_event> event) = 0;
+ 
    /* Hook for clients to be notified when an SVAL that was reachable
       in a previous state is no longer live, so that clients can emit warnings
       about leaks.  */
*************** class region_model_context
*** 708,713 ****
--- 812,824 ----
  
    /* Get the current statement, if any.  */
    virtual const gimple *get_stmt () const = 0;
+ 
+   virtual const exploded_graph *get_eg () const = 0;
+ 
+   /* Hooks for detecting infinite loops.  */
+   virtual void maybe_did_work () = 0;
+   virtual bool checking_for_infinite_loop_p () const = 0;
+   virtual void on_unusable_in_infinite_loop () = 0;
  };
  
  /* A "do nothing" subclass of region_model_context.  */
*************** class region_model_context
*** 715,722 ****
  class noop_region_model_context : public region_model_context
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic>) override { return false; }
    void add_note (std::unique_ptr<pending_note>) override;
    void on_svalue_leak (const svalue *) override {}
    void on_liveness_change (const svalue_set &,
  			   const region_model *) override {}
--- 826,835 ----
  class noop_region_model_context : public region_model_context
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic>,
! 	     const stmt_finder *) override { return false; }
    void add_note (std::unique_ptr<pending_note>) override;
+   void add_event (std::unique_ptr<checker_event>) override;
    void on_svalue_leak (const svalue *) override {}
    void on_liveness_change (const svalue_set &,
  			   const region_model *) override {}
*************** public:
*** 762,767 ****
--- 875,884 ----
    }
  
    const gimple *get_stmt () const override { return NULL; }
+   const exploded_graph *get_eg () const override { return NULL; }
+   void maybe_did_work () override {}
+   bool checking_for_infinite_loop_p () const override { return false; }
+   void on_unusable_in_infinite_loop () override {}
  };
  
  /* A subclass of region_model_context for determining if operations fail
*************** private:
*** 790,883 ****
  class region_model_context_decorator : public region_model_context
  {
   public:
!   bool warn (std::unique_ptr<pending_diagnostic> d) override
    {
!     return m_inner->warn (std::move (d));
    }
  
    void add_note (std::unique_ptr<pending_note> pn) override
    {
!     m_inner->add_note (std::move (pn));
    }
  
    void on_svalue_leak (const svalue *sval) override
    {
!     m_inner->on_svalue_leak (sval);
    }
  
    void on_liveness_change (const svalue_set &live_svalues,
  			   const region_model *model) override
    {
!     m_inner->on_liveness_change (live_svalues, model);
    }
  
    logger *get_logger () override
    {
!     return m_inner->get_logger ();
    }
  
    void on_condition (const svalue *lhs,
  		     enum tree_code op,
  		     const svalue *rhs) override
    {
!     m_inner->on_condition (lhs, op, rhs);
    }
  
    void on_bounded_ranges (const svalue &sval,
  			  const bounded_ranges &ranges) override
    {
!     m_inner->on_bounded_ranges (sval, ranges);
    }
  
    void on_pop_frame (const frame_region *frame_reg) override
    {
!     m_inner->on_pop_frame (frame_reg);
    }
  
    void on_unknown_change (const svalue *sval, bool is_mutable) override
    {
!     m_inner->on_unknown_change (sval, is_mutable);
    }
  
    void on_phi (const gphi *phi, tree rhs) override
    {
!     m_inner->on_phi (phi, rhs);
    }
  
    void on_unexpected_tree_code (tree t,
  				const dump_location_t &loc) override
    {
!     m_inner->on_unexpected_tree_code (t, loc);
    }
  
    void on_escaped_function (tree fndecl) override
    {
!     m_inner->on_escaped_function (fndecl);
    }
  
    uncertainty_t *get_uncertainty () override
    {
!     return m_inner->get_uncertainty ();
    }
  
    void purge_state_involving (const svalue *sval) override
    {
!     m_inner->purge_state_involving (sval);
    }
  
    void bifurcate (std::unique_ptr<custom_edge_info> info) override
    {
!     m_inner->bifurcate (std::move (info));
    }
  
    void terminate_path () override
    {
!     m_inner->terminate_path ();
    }
  
    const extrinsic_state *get_ext_state () const override
    {
!     return m_inner->get_ext_state ();
    }
  
    bool get_state_map_by_name (const char *name,
--- 907,1027 ----
  class region_model_context_decorator : public region_model_context
  {
   public:
!   bool warn (std::unique_ptr<pending_diagnostic> d,
! 	     const stmt_finder *custom_finder) override
    {
!     if (m_inner)
!       return m_inner->warn (std::move (d), custom_finder);
!     else
!       return false;
    }
  
    void add_note (std::unique_ptr<pending_note> pn) override
    {
!     if (m_inner)
!       m_inner->add_note (std::move (pn));
    }
+   void add_event (std::unique_ptr<checker_event> event) override;
  
    void on_svalue_leak (const svalue *sval) override
    {
!     if (m_inner)
!       m_inner->on_svalue_leak (sval);
    }
  
    void on_liveness_change (const svalue_set &live_svalues,
  			   const region_model *model) override
    {
!     if (m_inner)
!       m_inner->on_liveness_change (live_svalues, model);
    }
  
    logger *get_logger () override
    {
!     if (m_inner)
!       return m_inner->get_logger ();
!     else
!       return nullptr;
    }
  
    void on_condition (const svalue *lhs,
  		     enum tree_code op,
  		     const svalue *rhs) override
    {
!     if (m_inner)
!       m_inner->on_condition (lhs, op, rhs);
    }
  
    void on_bounded_ranges (const svalue &sval,
  			  const bounded_ranges &ranges) override
    {
!     if (m_inner)
!       m_inner->on_bounded_ranges (sval, ranges);
    }
  
    void on_pop_frame (const frame_region *frame_reg) override
    {
!     if (m_inner)
!       m_inner->on_pop_frame (frame_reg);
    }
  
    void on_unknown_change (const svalue *sval, bool is_mutable) override
    {
!     if (m_inner)
!       m_inner->on_unknown_change (sval, is_mutable);
    }
  
    void on_phi (const gphi *phi, tree rhs) override
    {
!     if (m_inner)
!       m_inner->on_phi (phi, rhs);
    }
  
    void on_unexpected_tree_code (tree t,
  				const dump_location_t &loc) override
    {
!     if (m_inner)
!       m_inner->on_unexpected_tree_code (t, loc);
    }
  
    void on_escaped_function (tree fndecl) override
    {
!     if (m_inner)
!       m_inner->on_escaped_function (fndecl);
    }
  
    uncertainty_t *get_uncertainty () override
    {
!     if (m_inner)
!       return m_inner->get_uncertainty ();
!     else
!       return nullptr;
    }
  
    void purge_state_involving (const svalue *sval) override
    {
!     if (m_inner)
!       m_inner->purge_state_involving (sval);
    }
  
    void bifurcate (std::unique_ptr<custom_edge_info> info) override
    {
!     if (m_inner)
!       m_inner->bifurcate (std::move (info));
    }
  
    void terminate_path () override
    {
!     if (m_inner)
!       m_inner->terminate_path ();
    }
  
    const extrinsic_state *get_ext_state () const override
    {
!     if (m_inner)
!       return m_inner->get_ext_state ();
!     else
!       return nullptr;
    }
  
    bool get_state_map_by_name (const char *name,
*************** class region_model_context_decorator : p
*** 887,933 ****
  			      std::unique_ptr<sm_context> *out_sm_context)
      override
    {
!     return m_inner->get_state_map_by_name (name, out_smap, out_sm, out_sm_idx,
! 					   out_sm_context);
    }
  
    const gimple *get_stmt () const override
    {
!     return m_inner->get_stmt ();
    }
  
  protected:
    region_model_context_decorator (region_model_context *inner)
    : m_inner (inner)
    {
-     gcc_assert (m_inner);
    }
  
    region_model_context *m_inner;
  };
  
! /* Subclass of region_model_context_decorator that adds a note
!    when saving diagnostics.  */
  
! class note_adding_context : public region_model_context_decorator
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic> d) override
    {
!     if (m_inner->warn (std::move (d)))
!       {
! 	add_note (make_note ());
! 	return true;
!       }
!     else
!       return false;
    }
  
!   /* Hook to make the new note.  */
!   virtual std::unique_ptr<pending_note> make_note () = 0;
  
  protected:
!   note_adding_context (region_model_context *inner)
    : region_model_context_decorator (inner)
    {
    }
--- 1031,1109 ----
  			      std::unique_ptr<sm_context> *out_sm_context)
      override
    {
!     if (m_inner)
!       return m_inner->get_state_map_by_name (name, out_smap, out_sm, out_sm_idx,
! 					     out_sm_context);
!     else
!       return false;
    }
  
    const gimple *get_stmt () const override
    {
!     if (m_inner)
!       return m_inner->get_stmt ();
!     else
!       return nullptr;
!   }
! 
!   const exploded_graph *get_eg () const override
!   {
!     if (m_inner)
! 	return m_inner->get_eg ();
!     else
! 	return nullptr;
!   }
! 
!   void maybe_did_work () override
!   {
!     if (m_inner)
!       m_inner->maybe_did_work ();
!   }
! 
!   bool checking_for_infinite_loop_p () const override
!   {
!     if (m_inner)
!       return m_inner->checking_for_infinite_loop_p ();
!     return false;
!   }
!   void on_unusable_in_infinite_loop () override
!   {
!     if (m_inner)
!       m_inner->on_unusable_in_infinite_loop ();
    }
  
  protected:
    region_model_context_decorator (region_model_context *inner)
    : m_inner (inner)
    {
    }
  
    region_model_context *m_inner;
  };
  
! /* Subclass of region_model_context_decorator with a hook for adding
!    notes/events when saving diagnostics.  */
  
! class annotating_context : public region_model_context_decorator
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic> d,
! 	     const stmt_finder *custom_finder) override
    {
!     if (m_inner)
!       if (m_inner->warn (std::move (d), custom_finder))
! 	{
! 	  add_annotations ();
! 	  return true;
! 	}
!     return false;
    }
  
!   /* Hook to add new event(s)/note(s)  */
!   virtual void add_annotations () = 0;
  
  protected:
!   annotating_context (region_model_context *inner)
    : region_model_context_decorator (inner)
    {
    }
*************** struct model_merger
*** 968,973 ****
--- 1144,1151 ----
      return m_point.get_function_point ();
    }
  
+   void on_widening_reuse (const widening_svalue *widening_sval);
+ 
    const region_model *m_model_a;
    const region_model *m_model_b;
    const program_point &m_point;
*************** struct model_merger
*** 976,981 ****
--- 1154,1161 ----
    const extrinsic_state *m_ext_state;
    const program_state *m_state_a;
    const program_state *m_state_b;
+ 
+   hash_set<const svalue *> m_svals_changing_meaning;
  };
  
  /* A record that can (optionally) be written out when
*************** using namespace ::selftest;
*** 1077,1083 ****
  class test_region_model_context : public noop_region_model_context
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic> d) final override
    {
      m_diagnostics.safe_push (d.release ());
      return true;
--- 1257,1264 ----
  class test_region_model_context : public noop_region_model_context
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic> d,
! 	     const stmt_finder *) final override
    {
      m_diagnostics.safe_push (d.release ());
      return true;
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region.cc gcc-14.1.0/gcc/analyzer/region.cc
*** gcc-13.2.0/gcc/analyzer/region.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Regions of memory.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Regions of memory.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 40,46 ****
  #include "fold-const.h"
  #include "tree-pretty-print.h"
  #include "diagnostic-color.h"
- #include "diagnostic-metadata.h"
  #include "bitmap.h"
  #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
--- 40,45 ----
*************** along with GCC; see the file COPYING3.
*** 63,83 ****
  
  namespace ana {
  
! /* class region and its various subclasses.  */
  
! /* class region.  */
  
! region::~region ()
  {
!   delete m_cached_offset;
  }
  
! /* Compare REG1 and REG2 by id.  */
  
! int
! region::cmp_ids (const region *reg1, const region *reg2)
  {
!   return (long)reg1->get_id () - (long)reg2->get_id ();
  }
  
  /* Determine the base region for this region: when considering bindings
--- 62,407 ----
  
  namespace ana {
  
! region_offset
! region_offset::make_byte_offset (const region *base_region,
! 				 const svalue *num_bytes_sval)
! {
!   if (tree num_bytes_cst = num_bytes_sval->maybe_get_constant ())
!     {
!       gcc_assert (TREE_CODE (num_bytes_cst) == INTEGER_CST);
!       bit_offset_t num_bits = wi::to_offset (num_bytes_cst) * BITS_PER_UNIT;
!       return make_concrete (base_region, num_bits);
!     }
!   else
!     {
!       return make_symbolic (base_region, num_bytes_sval);
!     }
! }
  
! const svalue &
! region_offset::calc_symbolic_bit_offset (region_model_manager *mgr) const
! {
!   if (symbolic_p ())
!     {
!       const svalue *bits_per_byte
! 	= mgr->get_or_create_int_cst (NULL_TREE, BITS_PER_UNIT);
!       return *mgr->get_or_create_binop (NULL_TREE, MULT_EXPR,
! 					m_sym_offset, bits_per_byte);
!     }
!   else
!     return *mgr->get_or_create_int_cst (NULL_TREE, m_offset);
! }
  
! const svalue *
! region_offset::calc_symbolic_byte_offset (region_model_manager *mgr) const
  {
!   if (symbolic_p ())
!     return m_sym_offset;
!   else
!     {
!       byte_offset_t concrete_byte_offset;
!       if (get_concrete_byte_offset (&concrete_byte_offset))
! 	return mgr->get_or_create_int_cst (size_type_node,
! 					   concrete_byte_offset);
!       else
! 	/* Can't handle bitfields; return UNKNOWN.  */
! 	return mgr->get_or_create_unknown_svalue (size_type_node);
!     }
  }
  
! void
! region_offset::dump_to_pp (pretty_printer *pp, bool simple) const
! {
!   if (symbolic_p ())
!     {
!       /* We don't bother showing the base region.  */
!       pp_string (pp, "byte ");
!       m_sym_offset->dump_to_pp (pp, simple);
!     }
!   else
!     {
!       if (m_offset % BITS_PER_UNIT == 0)
! 	{
! 	  pp_string (pp, "byte ");
! 	  pp_wide_int (pp, m_offset / BITS_PER_UNIT, SIGNED);
! 	}
!       else
! 	{
! 	  pp_string (pp, "bit ");
! 	  pp_wide_int (pp, m_offset, SIGNED);
! 	}
!     }
! }
  
! DEBUG_FUNCTION void
! region_offset::dump (bool simple) const
  {
!   pretty_printer pp;
!   pp_format_decoder (&pp) = default_tree_printer;
!   pp_show_color (&pp) = pp_show_color (global_dc->printer);
!   pp.buffer->stream = stderr;
!   dump_to_pp (&pp, simple);
!   pp_newline (&pp);
!   pp_flush (&pp);
! }
! 
! /* An svalue that matches the pattern (BASE * FACTOR) + OFFSET
!    where FACTOR or OFFSET could be the identity (represented as NULL).  */
! 
! struct linear_op
! {
!   linear_op (const svalue *base,
! 	     const svalue *factor,
! 	     const svalue *offset)
!   : m_base (base), m_factor (factor), m_offset (offset)
!   {
!   }
! 
!   bool maybe_get_cst_factor (bit_offset_t *out) const
!   {
!     if (m_factor == nullptr)
!       {
! 	*out = 1;
! 	return true;
!       }
!     if (tree cst_factor = m_factor->maybe_get_constant ())
!       {
! 	*out = wi::to_offset (cst_factor);
! 	return true;
!       }
!     return false;
!   }
! 
!   bool maybe_get_cst_offset (bit_offset_t *out) const
!   {
!     if (m_offset == nullptr)
!       {
! 	*out = 0;
! 	return true;
!       }
!     if (tree cst_offset = m_offset->maybe_get_constant ())
!       {
! 	*out = wi::to_offset (cst_offset);
! 	return true;
!       }
!     return false;
!   }
! 
!   static tristate
!   less (const linear_op &a, const linear_op &b)
!   {
!     /* Same base.  */
!     if (a.m_base == b.m_base)
!       {
! 	bit_offset_t a_wi_factor;
! 	bit_offset_t b_wi_factor;
! 	if (a.maybe_get_cst_factor (&a_wi_factor)
! 	    && b.maybe_get_cst_factor (&b_wi_factor))
! 	  {
! 	    if (a_wi_factor != b_wi_factor)
! 	      return tristate (a_wi_factor < b_wi_factor);
! 	    else
! 	      {
! 		bit_offset_t a_wi_offset;
! 		bit_offset_t b_wi_offset;
! 		if (a.maybe_get_cst_offset (&a_wi_offset)
! 		    && b.maybe_get_cst_offset (&b_wi_offset))
! 		  return tristate (a_wi_offset < b_wi_offset);
! 	      }
! 	  }
!       }
!     return tristate::unknown ();
!   }
! 
!   static tristate
!   le (const linear_op &a, const linear_op &b)
!   {
!     /* Same base.  */
!     if (a.m_base == b.m_base)
!       {
! 	bit_offset_t a_wi_factor;
! 	bit_offset_t b_wi_factor;
! 	if (a.maybe_get_cst_factor (&a_wi_factor)
! 	    && b.maybe_get_cst_factor (&b_wi_factor))
! 	  {
! 	    if (a_wi_factor != b_wi_factor)
! 	      return tristate (a_wi_factor <= b_wi_factor);
! 	    else
! 	      {
! 		bit_offset_t a_wi_offset;
! 		bit_offset_t b_wi_offset;
! 		if (a.maybe_get_cst_offset (&a_wi_offset)
! 		    && b.maybe_get_cst_offset (&b_wi_offset))
! 		  return tristate (a_wi_offset <= b_wi_offset);
! 	      }
! 	  }
!       }
!     return tristate::unknown ();
!   }
! 
!   static bool
!   from_svalue (const svalue &sval, linear_op *out)
!   {
!     switch (sval.get_kind ())
!       {
!       default:
! 	break;
!       case SK_BINOP:
! 	{
! 	  const binop_svalue &binop_sval ((const binop_svalue &)sval);
! 	  if (binop_sval.get_op () == MULT_EXPR)
! 	    {
! 	      *out = linear_op (binop_sval.get_arg0 (),
! 				binop_sval.get_arg1 (),
! 				NULL);
! 	      return true;
! 	    }
! 	  else if (binop_sval.get_op () == PLUS_EXPR)
! 	    {
! 	      if (binop_sval.get_arg0 ()->get_kind () == SK_BINOP)
! 		{
! 		  const binop_svalue &inner_binop_sval
! 		    ((const binop_svalue &)*binop_sval.get_arg0 ());
! 		  if (inner_binop_sval.get_op () == MULT_EXPR)
! 		    {
! 		      *out = linear_op (inner_binop_sval.get_arg0 (),
! 					inner_binop_sval.get_arg1 (),
! 					binop_sval.get_arg1 ());
! 		      return true;
! 		    }
! 		}
! 
! 	      *out = linear_op (binop_sval.get_arg0 (),
! 				NULL,
! 				binop_sval.get_arg1 ());
! 	      return true;
! 	    }
! 	}
! 	break;
!       }
!     return false;
!   }
! 
!   const svalue *m_base;
!   const svalue *m_factor;
!   const svalue *m_offset;
! };
! 
! bool
! operator< (const region_offset &a, const region_offset &b)
! {
!   if (a.symbolic_p ())
!     {
!       if (b.symbolic_p ())
! 	{
! 	  /* Symbolic vs symbolic.  */
! 	  const svalue &a_sval = *a.get_symbolic_byte_offset ();
! 	  const svalue &b_sval = *b.get_symbolic_byte_offset ();
! 
! 	  linear_op op_a (NULL, NULL, NULL);
! 	  linear_op op_b (NULL, NULL, NULL);
! 	  if (linear_op::from_svalue (a_sval, &op_a)
! 	      && linear_op::from_svalue (b_sval, &op_b))
! 	    {
! 	      tristate ts = linear_op::less (op_a, op_b);
! 	      if (ts.is_true ())
! 		return true;
! 	      else if (ts.is_false ())
! 		return false;
! 	    }
! 	  /* Use svalue's deterministic order, for now.  */
! 	  return (svalue::cmp_ptr (a.get_symbolic_byte_offset (),
! 				   b.get_symbolic_byte_offset ())
! 		  < 0);
! 	}
!       else
! 	/* Symbolic vs concrete: put all symbolic after all concrete.  */
! 	return false;
!     }
!   else
!     {
!       if (b.symbolic_p ())
! 	/* Concrete vs symbolic: put all concrete before all symbolic.  */
! 	return true;
!       else
! 	/* Concrete vs concrete.  */
! 	return a.get_bit_offset () < b.get_bit_offset ();
!     }
! }
! 
! bool
! operator<= (const region_offset &a, const region_offset &b)
! {
!   if (a.symbolic_p ())
!     {
!       if (b.symbolic_p ())
! 	{
! 	  /* Symbolic vs symbolic.  */
! 	  const svalue &a_sval = *a.get_symbolic_byte_offset ();
! 	  const svalue &b_sval = *b.get_symbolic_byte_offset ();
! 
! 	  linear_op op_a (NULL, NULL, NULL);
! 	  linear_op op_b (NULL, NULL, NULL);
! 	  if (linear_op::from_svalue (a_sval, &op_a)
! 	      && linear_op::from_svalue (b_sval, &op_b))
! 	    {
! 	      tristate ts = linear_op::le (op_a, op_b);
! 	      if (ts.is_true ())
! 		return true;
! 	      else if (ts.is_false ())
! 		return false;
! 	    }
! 	  /* Use svalue's deterministic order, for now.  */
! 	  return (svalue::cmp_ptr (a.get_symbolic_byte_offset (),
! 				   b.get_symbolic_byte_offset ())
! 		  <= 0);
! 	}
!       else
! 	/* Symbolic vs concrete: put all symbolic after all concrete.  */
! 	return false;
!     }
!   else
!     {
!       if (b.symbolic_p ())
! 	/* Concrete vs symbolic: put all concrete before all symbolic.  */
! 	return true;
!       else
! 	/* Concrete vs concrete.  */
! 	return a.get_bit_offset () <= b.get_bit_offset ();
!     }
! }
! 
! bool
! operator> (const region_offset &a, const region_offset &b)
! {
!   return b < a;
! }
! 
! bool
! operator>= (const region_offset &a, const region_offset &b)
! {
!   return b <= a;
! }
! 
! region_offset
! strip_types (const region_offset &offset, region_model_manager &mgr)
! {
!   if (offset.symbolic_p ())
!     return region_offset::make_symbolic
!       (offset.get_base_region (),
!        strip_types (offset.get_symbolic_byte_offset (),
! 		    mgr));
!   else
!     return offset;
! }
! 
! /* class region and its various subclasses.  */
! 
! /* class region.  */
! 
! region::~region ()
! {
!   delete m_cached_offset;
  }
  
  /* Determine the base region for this region: when considering bindings
*************** region::get_memory_space () const
*** 196,201 ****
--- 520,527 ----
  	  return MEMSPACE_HEAP;
  	case RK_STRING:
  	  return MEMSPACE_READONLY_DATA;
+ 	case RK_PRIVATE:
+ 	  return MEMSPACE_PRIVATE;
  	}
        if (iter->get_kind () == RK_CAST)
  	iter = iter->dyn_cast_cast_region ()->get_original_region ();
*************** region::can_have_initial_svalue_p () con
*** 225,230 ****
--- 551,557 ----
      case MEMSPACE_CODE:
      case MEMSPACE_GLOBALS:
      case MEMSPACE_READONLY_DATA:
+     case MEMSPACE_PRIVATE:
        /* Such regions have initial_svalues.  */
        return true;
  
*************** region::can_have_initial_svalue_p () con
*** 272,277 ****
--- 599,649 ----
      }
  }
  
+ /* For regions within a global decl, get the svalue for the initial
+    value of this region when the program starts, caching the result.  */
+ 
+ const svalue *
+ region::get_initial_value_at_main (region_model_manager *mgr) const
+ {
+   if (!m_cached_init_sval_at_main)
+     m_cached_init_sval_at_main = calc_initial_value_at_main (mgr);
+   return m_cached_init_sval_at_main;
+ }
+ 
+ /* Implementation of region::get_initial_value_at_main.  */
+ 
+ const svalue *
+ region::calc_initial_value_at_main (region_model_manager *mgr) const
+ {
+   const decl_region *base_reg = get_base_region ()->dyn_cast_decl_region ();
+   gcc_assert (base_reg);
+ 
+   /* Attempt to get the initializer value for base_reg.  */
+   if (const svalue *base_reg_init
+       = base_reg->get_svalue_for_initializer (mgr))
+     {
+       if (this == base_reg)
+ 	return base_reg_init;
+       else
+ 	{
+ 	  /* Get the value for REG within base_reg_init.  */
+ 	  binding_cluster c (base_reg);
+ 	  c.bind (mgr->get_store_manager (), base_reg, base_reg_init);
+ 	  const svalue *sval
+ 	    = c.get_any_binding (mgr->get_store_manager (), this);
+ 	  if (sval)
+ 	    {
+ 	      if (get_type ())
+ 		sval = mgr->get_or_create_cast (get_type (), sval);
+ 	      return sval;
+ 	    }
+ 	}
+     }
+ 
+   /* Otherwise, return INIT_VAL(REG).  */
+   return mgr->get_or_create_initial_value (this);
+ }
+ 
  /* If this region is a decl_region, return the decl.
     Otherwise return NULL.  */
  
*************** region::get_offset (region_model_manager
*** 294,299 ****
--- 666,700 ----
    return *m_cached_offset;
  }
  
+ /* Get the region_offset for immediately beyond this region.  */
+ 
+ region_offset
+ region::get_next_offset (region_model_manager *mgr) const
+ {
+   region_offset start = get_offset (mgr);
+ 
+   bit_size_t bit_size;
+   if (get_bit_size (&bit_size))
+     {
+       if (start.concrete_p ())
+ 	{
+ 	  bit_offset_t next_bit_offset = start.get_bit_offset () + bit_size;
+ 	  return region_offset::make_concrete (start.get_base_region (),
+ 					       next_bit_offset);
+ 	}
+     }
+ 
+   const svalue *start_byte_offset_sval = start.calc_symbolic_byte_offset (mgr);
+   const svalue *byte_size_sval = get_byte_size_sval (mgr);
+   const svalue *sum_sval
+     = mgr->get_or_create_binop (size_type_node,
+ 				PLUS_EXPR,
+ 				start_byte_offset_sval,
+ 				byte_size_sval);
+   return region_offset::make_symbolic (start.get_base_region (),
+ 				       sum_sval);
+ }
+ 
  /* Base class implementation of region::get_byte_size vfunc.
     If the size of this region (in bytes) is known statically, write it to *OUT
     and return true.
*************** int_size_in_bits (const_tree type, bit_s
*** 350,356 ****
      }
  
    tree sz = TYPE_SIZE (type);
!   if (sz && tree_fits_uhwi_p (sz))
      {
        *out = TREE_INT_CST_LOW (sz);
        return true;
--- 751,761 ----
      }
  
    tree sz = TYPE_SIZE (type);
!   if (sz
!       && tree_fits_uhwi_p (sz)
!       /* If the size is zero, then we may have a zero-sized
! 	 array; handle such cases by returning false.  */
!       && !integer_zerop (sz))
      {
        *out = TREE_INT_CST_LOW (sz);
        return true;
*************** int_size_in_bits (const_tree type, bit_s
*** 359,364 ****
--- 764,787 ----
      return false;
  }
  
+ /* Base implementation of region::get_bit_size_sval vfunc.  */
+ 
+ const svalue *
+ region::get_bit_size_sval (region_model_manager *mgr) const
+ {
+   tree type = get_type ();
+ 
+   /* Bail out e.g. for heap-allocated regions.  */
+   if (!type)
+     return mgr->get_or_create_unknown_svalue (size_type_node);
+ 
+   bit_size_t bits;
+   if (!int_size_in_bits (type, &bits))
+     return mgr->get_or_create_unknown_svalue (size_type_node);
+ 
+   return mgr->get_or_create_int_cst (size_type_node, bits);
+ }
+ 
  /* If the size of this region (in bits) is known statically, write it to *OUT
     and return true.
     Otherwise return false.  */
*************** region::calc_offset (region_model_manage
*** 507,513 ****
  	      const svalue *sval
  		= iter_region->get_relative_symbolic_offset (mgr);
  	      accum_byte_sval
! 		= mgr->get_or_create_binop (sval->get_type (), PLUS_EXPR,
  					    accum_byte_sval, sval);
  	      iter_region = iter_region->get_parent_region ();
  	    }
--- 930,936 ----
  	      const svalue *sval
  		= iter_region->get_relative_symbolic_offset (mgr);
  	      accum_byte_sval
! 		= mgr->get_or_create_binop (ptrdiff_type_node, PLUS_EXPR,
  					    accum_byte_sval, sval);
  	      iter_region = iter_region->get_parent_region ();
  	    }
*************** region::calc_offset (region_model_manage
*** 525,531 ****
  		     accumulated bits to a svalue in bytes and revisit the
  		     iter_region collecting the symbolic value.  */
  		  byte_offset_t byte_offset = accum_bit_offset / BITS_PER_UNIT;
! 		  tree offset_tree = wide_int_to_tree (integer_type_node,
  						       byte_offset);
  		  accum_byte_sval
  		    = mgr->get_or_create_constant_svalue (offset_tree);
--- 948,954 ----
  		     accumulated bits to a svalue in bytes and revisit the
  		     iter_region collecting the symbolic value.  */
  		  byte_offset_t byte_offset = accum_bit_offset / BITS_PER_UNIT;
! 		  tree offset_tree = wide_int_to_tree (ptrdiff_type_node,
  						       byte_offset);
  		  accum_byte_sval
  		    = mgr->get_or_create_constant_svalue (offset_tree);
*************** region::get_relative_concrete_offset (bi
*** 572,578 ****
  const svalue *
  region::get_relative_symbolic_offset (region_model_manager *mgr) const
  {
!   return mgr->get_or_create_unknown_svalue (integer_type_node);
  }
  
  /* Attempt to get the position and size of this region expressed as a
--- 995,1001 ----
  const svalue *
  region::get_relative_symbolic_offset (region_model_manager *mgr) const
  {
!   return mgr->get_or_create_unknown_svalue (ptrdiff_type_node);
  }
  
  /* Attempt to get the position and size of this region expressed as a
*************** region::to_json () const
*** 627,632 ****
--- 1050,1077 ----
    return reg_js;
  }
  
+ bool
+ region::maybe_print_for_user (pretty_printer *pp,
+ 			      const region_model &) const
+ {
+   switch (get_kind ())
+     {
+     default:
+       break;
+     case RK_DECL:
+       {
+ 	const decl_region *reg = (const decl_region *)this;
+ 	tree decl = reg->get_decl ();
+ 	if (TREE_CODE (decl) == SSA_NAME)
+ 	  decl = SSA_NAME_VAR (decl);
+ 	print_expr_for_user (pp, decl);
+ 	return true;
+       }
+     }
+ 
+   return false;
+ }
+ 
  /* Generate a description of this region.  */
  
  DEBUG_FUNCTION label_text
*************** region::is_named_decl_p (const char *dec
*** 699,707 ****
  
  /* region's ctor.  */
  
! region::region (complexity c, unsigned id, const region *parent, tree type)
! : m_complexity (c), m_id (id), m_parent (parent), m_type (type),
!   m_cached_offset (NULL)
  {
    gcc_assert (type == NULL_TREE || TYPE_P (type));
  }
--- 1144,1153 ----
  
  /* region's ctor.  */
  
! region::region (complexity c, symbol::id_t id, const region *parent, tree type)
! : symbol (c, id),
!   m_parent (parent), m_type (type),
!   m_cached_offset (NULL), m_cached_init_sval_at_main (NULL)
  {
    gcc_assert (type == NULL_TREE || TYPE_P (type));
  }
*************** void
*** 889,898 ****
  frame_region::dump_to_pp (pretty_printer *pp, bool simple) const
  {
    if (simple)
!     pp_printf (pp, "frame: %qs@%i", function_name (m_fun), get_stack_depth ());
    else
      pp_printf (pp, "frame_region(%qs, index: %i, depth: %i)",
! 	       function_name (m_fun), m_index, get_stack_depth ());
  }
  
  const decl_region *
--- 1335,1344 ----
  frame_region::dump_to_pp (pretty_printer *pp, bool simple) const
  {
    if (simple)
!     pp_printf (pp, "frame: %qs@%i", function_name (&m_fun), get_stack_depth ());
    else
      pp_printf (pp, "frame_region(%qs, index: %i, depth: %i)",
! 	       function_name (&m_fun), m_index, get_stack_depth ());
  }
  
  const decl_region *
*************** frame_region::get_region_for_local (regi
*** 917,930 ****
  	  /* Fall through.  */
  	case PARM_DECL:
  	case RESULT_DECL:
! 	  gcc_assert (DECL_CONTEXT (expr) == m_fun->decl);
  	  break;
  	case SSA_NAME:
  	  {
  	    if (tree var = SSA_NAME_VAR (expr))
  	      {
  		if (DECL_P (var))
! 		  gcc_assert (DECL_CONTEXT (var) == m_fun->decl);
  	      }
  	    else if (ctxt)
  	      if (const extrinsic_state *ext_state = ctxt->get_ext_state ())
--- 1363,1376 ----
  	  /* Fall through.  */
  	case PARM_DECL:
  	case RESULT_DECL:
! 	  gcc_assert (DECL_CONTEXT (expr) == m_fun.decl);
  	  break;
  	case SSA_NAME:
  	  {
  	    if (tree var = SSA_NAME_VAR (expr))
  	      {
  		if (DECL_P (var))
! 		  gcc_assert (DECL_CONTEXT (var) == m_fun.decl);
  	      }
  	    else if (ctxt)
  	      if (const extrinsic_state *ext_state = ctxt->get_ext_state ())
*************** frame_region::get_region_for_local (regi
*** 934,940 ****
  		    const gimple *def_stmt = SSA_NAME_DEF_STMT (expr);
  		    const supernode *snode
  		      = sg->get_supernode_for_stmt (def_stmt);
! 		    gcc_assert (snode->get_function () == m_fun);
  		  }
  	  }
  	  break;
--- 1380,1386 ----
  		    const gimple *def_stmt = SSA_NAME_DEF_STMT (expr);
  		    const supernode *snode
  		      = sg->get_supernode_for_stmt (def_stmt);
! 		    gcc_assert (snode->get_function () == &m_fun);
  		  }
  	  }
  	  break;
*************** frame_region::get_region_for_local (regi
*** 947,953 ****
    if (decl_region **slot = mutable_locals.get (expr))
      return *slot;
    decl_region *reg
!     = new decl_region (mgr->alloc_region_id (), this, expr);
    mutable_locals.put (expr, reg);
    return reg;
  }
--- 1393,1399 ----
    if (decl_region **slot = mutable_locals.get (expr))
      return *slot;
    decl_region *reg
!     = new decl_region (mgr->alloc_symbol_id (), this, expr);
    mutable_locals.put (expr, reg);
    return reg;
  }
*************** heap_region::dump_to_pp (pretty_printer
*** 1046,1052 ****
  
  /* root_region's ctor.  */
  
! root_region::root_region (unsigned id)
  : region (complexity (1, 1), id, NULL, NULL_TREE)
  {
  }
--- 1492,1498 ----
  
  /* root_region's ctor.  */
  
! root_region::root_region (symbol::id_t id)
  : region (complexity (1, 1), id, NULL, NULL_TREE)
  {
  }
*************** thread_local_region::dump_to_pp (pretty_
*** 1077,1083 ****
  
  /* symbolic_region's ctor.  */
  
! symbolic_region::symbolic_region (unsigned id, region *parent,
  				  const svalue *sval_ptr)
  : region (complexity::from_pair (parent, sval_ptr), id, parent,
  	  (sval_ptr->get_type ()
--- 1523,1529 ----
  
  /* symbolic_region's ctor.  */
  
! symbolic_region::symbolic_region (symbol::id_t id, region *parent,
  				  const svalue *sval_ptr)
  : region (complexity::from_pair (parent, sval_ptr), id, parent,
  	  (sval_ptr->get_type ()
*************** decl_region::get_stack_depth () const
*** 1162,1168 ****
  const svalue *
  decl_region::maybe_get_constant_value (region_model_manager *mgr) const
  {
!   if (TREE_CODE (m_decl) == VAR_DECL
        && DECL_IN_CONSTANT_POOL (m_decl)
        && DECL_INITIAL (m_decl)
        && TREE_CODE (DECL_INITIAL (m_decl)) == CONSTRUCTOR)
--- 1608,1614 ----
  const svalue *
  decl_region::maybe_get_constant_value (region_model_manager *mgr) const
  {
!   if (VAR_P (m_decl)
        && DECL_IN_CONSTANT_POOL (m_decl)
        && DECL_INITIAL (m_decl)
        && TREE_CODE (DECL_INITIAL (m_decl)) == CONSTRUCTOR)
*************** decl_region::maybe_get_constant_value (r
*** 1170,1183 ****
    return NULL;
  }
  
! /* Get an svalue for CTOR, a CONSTRUCTOR for this region's decl.  */
  
  const svalue *
! decl_region::get_svalue_for_constructor (tree ctor,
! 					 region_model_manager *mgr) const
  {
-   gcc_assert (!TREE_CLOBBER_P (ctor));
- 
    /* Create a binding map, applying ctor to it, using this
       decl_region as the base region when building child regions
       for offset calculations.  */
--- 1616,1628 ----
    return NULL;
  }
  
! /* Implementation of decl_region::get_svalue_for_constructor
!    for when the cached value hasn't yet been calculated.  */
  
  const svalue *
! decl_region::calc_svalue_for_constructor (tree ctor,
! 					  region_model_manager *mgr) const
  {
    /* Create a binding map, applying ctor to it, using this
       decl_region as the base region when building child regions
       for offset calculations.  */
*************** decl_region::get_svalue_for_constructor
*** 1189,1194 ****
--- 1634,1654 ----
    return mgr->get_or_create_compound_svalue (get_type (), map);
  }
  
+ /* Get an svalue for CTOR, a CONSTRUCTOR for this region's decl.  */
+ 
+ const svalue *
+ decl_region::get_svalue_for_constructor (tree ctor,
+ 					 region_model_manager *mgr) const
+ {
+   gcc_assert (!TREE_CLOBBER_P (ctor));
+   gcc_assert (ctor == DECL_INITIAL (m_decl));
+ 
+   if (!m_ctor_svalue)
+     m_ctor_svalue = calc_svalue_for_constructor (ctor, mgr);
+ 
+   return m_ctor_svalue;
+ }
+ 
  /* For use on decl_regions for global variables.
  
     Get an svalue for the initial value of this region at entry to
*************** field_region::get_relative_symbolic_offs
*** 1389,1398 ****
    if (get_relative_concrete_offset (&out))
      {
        tree cst_tree
! 	= wide_int_to_tree (integer_type_node, out / BITS_PER_UNIT);
        return mgr->get_or_create_constant_svalue (cst_tree);
      }
!   return mgr->get_or_create_unknown_svalue (integer_type_node);
  }
  
  /* class element_region : public region.  */
--- 1849,1858 ----
    if (get_relative_concrete_offset (&out))
      {
        tree cst_tree
! 	= wide_int_to_tree (ptrdiff_type_node, out / BITS_PER_UNIT);
        return mgr->get_or_create_constant_svalue (cst_tree);
      }
!   return mgr->get_or_create_unknown_svalue (ptrdiff_type_node);
  }
  
  /* class element_region : public region.  */
*************** element_region::get_relative_symbolic_of
*** 1474,1487 ****
    HOST_WIDE_INT hwi_byte_size = int_size_in_bytes (elem_type);
    if (hwi_byte_size > 0)
  	  {
!       tree byte_size_tree = wide_int_to_tree (integer_type_node,
  					      hwi_byte_size);
        const svalue *byte_size_sval
  	= mgr->get_or_create_constant_svalue (byte_size_tree);
!       return mgr->get_or_create_binop (integer_type_node, MULT_EXPR,
  				       m_index, byte_size_sval);
      }
!   return mgr->get_or_create_unknown_svalue (integer_type_node);
  }
  
  /* class offset_region : public region.  */
--- 1934,1947 ----
    HOST_WIDE_INT hwi_byte_size = int_size_in_bytes (elem_type);
    if (hwi_byte_size > 0)
  	  {
!       tree byte_size_tree = wide_int_to_tree (ptrdiff_type_node,
  					      hwi_byte_size);
        const svalue *byte_size_sval
  	= mgr->get_or_create_constant_svalue (byte_size_tree);
!       return mgr->get_or_create_binop (NULL_TREE, MULT_EXPR,
  				       m_index, byte_size_sval);
      }
!   return mgr->get_or_create_unknown_svalue (ptrdiff_type_node);
  }
  
  /* class offset_region : public region.  */
*************** offset_region::dump_to_pp (pretty_printe
*** 1520,1525 ****
--- 1980,1994 ----
      }
  }
  
+ const svalue *
+ offset_region::get_bit_offset (region_model_manager *mgr) const
+ {
+   const svalue *bits_per_byte_sval
+     = mgr->get_or_create_int_cst (NULL_TREE, BITS_PER_UNIT);
+   return mgr->get_or_create_binop (NULL_TREE, MULT_EXPR,
+ 				   m_byte_offset, bits_per_byte_sval);
+ }
+ 
  /* Implementation of region::get_relative_concrete_offset vfunc
     for offset_region.  */
  
*************** offset_region::get_relative_symbolic_off
*** 1550,1579 ****
    return get_byte_offset ();
  }
  
- /* Implementation of region::get_byte_size_sval vfunc for offset_region.  */
- 
- const svalue *
- offset_region::get_byte_size_sval (region_model_manager *mgr) const
- {
-   tree offset_cst = get_byte_offset ()->maybe_get_constant ();
-   byte_size_t byte_size;
-   /* If the offset points in the middle of the region,
-      return the remaining bytes.  */
-   if (get_byte_size (&byte_size) && offset_cst)
-     {
-       byte_size_t offset = wi::to_offset (offset_cst);
-       byte_range r (0, byte_size);
-       if (r.contains_p (offset))
- 	{
- 	  tree remaining_byte_size = wide_int_to_tree (size_type_node,
- 						       byte_size - offset);
- 	  return mgr->get_or_create_constant_svalue (remaining_byte_size);
- 	}
-     }
- 
-   return region::get_byte_size_sval (mgr);
- }
- 
  /* class sized_region : public region.  */
  
  /* Implementation of region::accept vfunc for sized_region.  */
--- 2019,2024 ----
*************** sized_region::get_bit_size (bit_size_t *
*** 1634,1639 ****
--- 2079,2095 ----
    return true;
  }
  
+ /* Implementation of region::get_bit_size_sval vfunc for sized_region.  */
+ 
+ const svalue *
+ sized_region::get_bit_size_sval (region_model_manager *mgr) const
+ {
+   const svalue *bits_per_byte_sval
+     = mgr->get_or_create_int_cst (NULL_TREE, BITS_PER_UNIT);
+   return mgr->get_or_create_binop (NULL_TREE, MULT_EXPR,
+ 				   m_byte_size_sval, bits_per_byte_sval);
+ }
+ 
  /* class cast_region : public region.  */
  
  /* Implementation of region::accept vfunc for cast_region.  */
*************** bit_range_region::get_byte_size_sval (re
*** 1785,1790 ****
--- 2241,2255 ----
    return mgr->get_or_create_int_cst (size_type_node, num_bytes);
  }
  
+ /* Implementation of region::get_bit_size_sval vfunc for bit_range_region.  */
+ 
+ const svalue *
+ bit_range_region::get_bit_size_sval (region_model_manager *mgr) const
+ {
+   return mgr->get_or_create_int_cst (size_type_node,
+ 				     m_bits.m_size_in_bits);
+ }
+ 
  /* Implementation of region::get_relative_concrete_offset vfunc for
     bit_range_region.  */
  
*************** bit_range_region::get_relative_symbolic_
*** 1805,1811 ****
    const
  {
    byte_offset_t start_byte = m_bits.get_start_bit_offset () / BITS_PER_UNIT;
!   tree start_bit_tree = wide_int_to_tree (integer_type_node, start_byte);
    return mgr->get_or_create_constant_svalue (start_bit_tree);
  }
  
--- 2270,2276 ----
    const
  {
    byte_offset_t start_byte = m_bits.get_start_bit_offset () / BITS_PER_UNIT;
!   tree start_bit_tree = wide_int_to_tree (ptrdiff_type_node, start_byte);
    return mgr->get_or_create_constant_svalue (start_bit_tree);
  }
  
*************** errno_region::dump_to_pp (pretty_printer
*** 1848,1853 ****
--- 2313,2329 ----
      pp_string (pp, "errno_region()");
  }
  
+ /* class private_region : public region.  */
+ 
+ void
+ private_region::dump_to_pp (pretty_printer *pp, bool simple) const
+ {
+   if (simple)
+     pp_printf (pp, "PRIVATE_REG(%qs)", m_desc);
+   else
+     pp_printf (pp, "private_region(%qs)", m_desc);
+ }
+ 
  /* class unknown_region : public region.  */
  
  /* Implementation of region::dump_to_pp vfunc for unknown_region.  */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/region.h gcc-14.1.0/gcc/analyzer/region.h
*** gcc-13.2.0/gcc/analyzer/region.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/region.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Regions of memory.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Regions of memory.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,27 ****
  #ifndef GCC_ANALYZER_REGION_H
  #define GCC_ANALYZER_REGION_H
  
! #include "analyzer/complexity.h"
  
  namespace ana {
  
--- 21,27 ----
  #ifndef GCC_ANALYZER_REGION_H
  #define GCC_ANALYZER_REGION_H
  
! #include "analyzer/symbol.h"
  
  namespace ana {
  
*************** enum memory_space
*** 35,41 ****
    MEMSPACE_STACK,
    MEMSPACE_HEAP,
    MEMSPACE_READONLY_DATA,
!   MEMSPACE_THREAD_LOCAL
  };
  
  /* An enum for discriminating between the different concrete subclasses
--- 35,42 ----
    MEMSPACE_STACK,
    MEMSPACE_HEAP,
    MEMSPACE_READONLY_DATA,
!   MEMSPACE_THREAD_LOCAL,
!   MEMSPACE_PRIVATE
  };
  
  /* An enum for discriminating between the different concrete subclasses
*************** enum region_kind
*** 65,70 ****
--- 66,72 ----
    RK_BIT_RANGE,
    RK_VAR_ARG,
    RK_ERRNO,
+   RK_PRIVATE,
    RK_UNKNOWN,
  };
  
*************** enum region_kind
*** 108,113 ****
--- 110,116 ----
       var_arg_region (RK_VAR_ARG): a region for the N-th vararg within a
  				  frame_region for a variadic call
       errno_region (RK_ERRNO): a region for holding "errno"
+      private_region (RK_PRIVATE): a region for internal state of an API
       unknown_region (RK_UNKNOWN): for handling unimplemented tree codes.  */
  
  /* Abstract base class for representing ways of accessing chunks of memory.
*************** enum region_kind
*** 118,131 ****
     within the frames and the "globals" region.  Regions for structs
     can have subregions for fields.  */
  
! class region
  {
  public:
    virtual ~region ();
  
-   unsigned get_id () const { return m_id; }
-   static int cmp_ids (const region *reg1, const region *reg2);
- 
    virtual enum region_kind get_kind () const = 0;
    virtual const frame_region *
    dyn_cast_frame_region () const { return NULL; }
--- 121,131 ----
     within the frames and the "globals" region.  Regions for structs
     can have subregions for fields.  */
  
! class region : public symbol
  {
  public:
    virtual ~region ();
  
    virtual enum region_kind get_kind () const = 0;
    virtual const frame_region *
    dyn_cast_frame_region () const { return NULL; }
*************** public:
*** 161,166 ****
--- 161,167 ----
    const frame_region *maybe_get_frame_region () const;
    enum memory_space get_memory_space () const;
    bool can_have_initial_svalue_p () const;
+   const svalue *get_initial_value_at_main (region_model_manager *mgr) const;
  
    tree maybe_get_decl () const;
  
*************** public:
*** 175,180 ****
--- 176,184 ----
  
    json::value *to_json () const;
  
+   bool maybe_print_for_user (pretty_printer *pp,
+ 			     const region_model &model) const;
+ 
    bool non_null_p () const;
  
    static int cmp_ptr_ptr (const void *, const void *);
*************** public:
*** 182,202 ****
    bool involves_p (const svalue *sval) const;
  
    region_offset get_offset (region_model_manager *mgr) const;
  
    /* Attempt to get the size of this region as a concrete number of bytes.
       If successful, return true and write the size to *OUT.
!      Otherwise return false.  */
    virtual bool get_byte_size (byte_size_t *out) const;
  
    /* Attempt to get the size of this region as a concrete number of bits.
       If successful, return true and write the size to *OUT.
!      Otherwise return false.  */
    virtual bool get_bit_size (bit_size_t *out) const;
  
    /* Get a symbolic value describing the size of this region in bytes
!      (which could be "unknown").  */
    virtual const svalue *get_byte_size_sval (region_model_manager *mgr) const;
  
    /* Attempt to get the offset in bits of this region relative to its parent.
       If successful, return true and write to *OUT.
       Otherwise return false.  */
--- 186,219 ----
    bool involves_p (const svalue *sval) const;
  
    region_offset get_offset (region_model_manager *mgr) const;
+   region_offset get_next_offset (region_model_manager *mgr) const;
  
    /* Attempt to get the size of this region as a concrete number of bytes.
       If successful, return true and write the size to *OUT.
!      Otherwise return false.
!      This is the accessed size, not necessarily the size that's valid to
!      access.  */
    virtual bool get_byte_size (byte_size_t *out) const;
  
    /* Attempt to get the size of this region as a concrete number of bits.
       If successful, return true and write the size to *OUT.
!      Otherwise return false.
!      This is the accessed size, not necessarily the size that's valid to
!      access.  */
    virtual bool get_bit_size (bit_size_t *out) const;
  
    /* Get a symbolic value describing the size of this region in bytes
!      (which could be "unknown").
!      This is the accessed size, not necessarily the size that's valid to
!      access.  */
    virtual const svalue *get_byte_size_sval (region_model_manager *mgr) const;
  
+   /* Get a symbolic value describing the size of this region in bits
+      (which could be "unknown").
+      This is the accessed size, not necessarily the size that's valid to
+      access.  */
+   virtual const svalue *get_bit_size_sval (region_model_manager *mgr) const;
+ 
    /* Attempt to get the offset in bits of this region relative to its parent.
       If successful, return true and write to *OUT.
       Otherwise return false.  */
*************** public:
*** 229,252 ****
       bloating the store object with redundant binding clusters).  */
    virtual bool tracked_p () const { return true; }
  
-   const complexity &get_complexity () const { return m_complexity; }
- 
    bool is_named_decl_p (const char *decl_name) const;
  
    bool empty_p () const;
  
   protected:
!   region (complexity c, unsigned id, const region *parent, tree type);
  
   private:
    region_offset calc_offset (region_model_manager *mgr) const;
  
-   complexity m_complexity;
-   unsigned m_id; // purely for deterministic sorting at this stage, for dumps
    const region *m_parent;
    tree m_type;
  
    mutable region_offset *m_cached_offset;
  };
  
  } // namespace ana
--- 246,270 ----
       bloating the store object with redundant binding clusters).  */
    virtual bool tracked_p () const { return true; }
  
    bool is_named_decl_p (const char *decl_name) const;
  
    bool empty_p () const;
  
   protected:
!   region (complexity c, symbol::id_t id, const region *parent, tree type);
  
   private:
    region_offset calc_offset (region_model_manager *mgr) const;
+   const svalue *calc_initial_value_at_main (region_model_manager *mgr) const;
  
    const region *m_parent;
    tree m_type;
  
    mutable region_offset *m_cached_offset;
+ 
+   /* For regions within a global decl, a cache of the svalue for the initial
+      value of this region when the program starts.  */
+   mutable const svalue *m_cached_init_sval_at_main;
  };
  
  } // namespace ana
*************** namespace ana {
*** 267,273 ****
  class space_region : public region
  {
  protected:
!   space_region (unsigned id, const region *parent)
    : region (complexity (parent), id, parent, NULL_TREE)
    {}
  };
--- 285,291 ----
  class space_region : public region
  {
  protected:
!   space_region (symbol::id_t id, const region *parent)
    : region (complexity (parent), id, parent, NULL_TREE)
    {}
  };
*************** public:
*** 290,300 ****
    /* A support class for uniquifying instances of frame_region.  */
    struct key_t
    {
!     key_t (const frame_region *calling_frame, function *fun)
!     : m_calling_frame (calling_frame), m_fun (fun)
      {
        /* calling_frame can be NULL.  */
-       gcc_assert (fun);
      }
  
      hashval_t hash () const
--- 308,317 ----
    /* A support class for uniquifying instances of frame_region.  */
    struct key_t
    {
!     key_t (const frame_region *calling_frame, const function &fun)
!     : m_calling_frame (calling_frame), m_fun (&fun)
      {
        /* calling_frame can be NULL.  */
      }
  
      hashval_t hash () const
*************** public:
*** 307,313 ****
  
      bool operator== (const key_t &other) const
      {
!       return (m_calling_frame == other.m_calling_frame && m_fun == other.m_fun);
      }
  
      void mark_deleted () { m_fun = reinterpret_cast<function *> (1); }
--- 324,331 ----
  
      bool operator== (const key_t &other) const
      {
!       return (m_calling_frame == other.m_calling_frame
! 	      && m_fun == other.m_fun);
      }
  
      void mark_deleted () { m_fun = reinterpret_cast<function *> (1); }
*************** public:
*** 319,330 ****
      bool is_empty () const { return m_fun == NULL; }
  
      const frame_region *m_calling_frame;
!     function *m_fun;
    };
  
!   frame_region (unsigned id, const region *parent,
  		const frame_region *calling_frame,
! 		function *fun, int index)
    : space_region (id, parent), m_calling_frame (calling_frame),
      m_fun (fun), m_index (index)
    {}
--- 337,348 ----
      bool is_empty () const { return m_fun == NULL; }
  
      const frame_region *m_calling_frame;
!     const function *m_fun;
    };
  
!   frame_region (symbol::id_t id, const region *parent,
  		const frame_region *calling_frame,
! 		const function &fun, int index)
    : space_region (id, parent), m_calling_frame (calling_frame),
      m_fun (fun), m_index (index)
    {}
*************** public:
*** 341,348 ****
  
    /* Accessors.  */
    const frame_region *get_calling_frame () const { return m_calling_frame; }
!   function *get_function () const { return m_fun; }
!   tree get_fndecl () const { return get_function ()->decl; }
    int get_index () const { return m_index; }
    int get_stack_depth () const { return m_index + 1; }
  
--- 359,366 ----
  
    /* Accessors.  */
    const frame_region *get_calling_frame () const { return m_calling_frame; }
!   const function &get_function () const { return m_fun; }
!   tree get_fndecl () const { return get_function ().decl; }
    int get_index () const { return m_index; }
    int get_stack_depth () const { return m_index + 1; }
  
*************** public:
*** 358,364 ****
  
   private:
    const frame_region *m_calling_frame;
!   function *m_fun;
    int m_index;
  
    /* The regions for the decls within this frame are managed by this
--- 376,382 ----
  
   private:
    const frame_region *m_calling_frame;
!   const function &m_fun;
    int m_index;
  
    /* The regions for the decls within this frame are managed by this
*************** namespace ana {
*** 391,397 ****
  class globals_region : public space_region
  {
   public:
!   globals_region (unsigned id, const region *parent)
    : space_region (id, parent)
    {}
  
--- 409,415 ----
  class globals_region : public space_region
  {
   public:
!   globals_region (symbol::id_t id, const region *parent)
    : space_region (id, parent)
    {}
  
*************** namespace ana {
*** 418,424 ****
  class code_region : public space_region
  {
  public:
!   code_region (unsigned id, const region *parent)
    : space_region (id, parent)
    {}
  
--- 436,442 ----
  class code_region : public space_region
  {
  public:
!   code_region (symbol::id_t id, const region *parent)
    : space_region (id, parent)
    {}
  
*************** namespace ana {
*** 445,451 ****
  class function_region : public region
  {
  public:
!   function_region (unsigned id, const code_region *parent, tree fndecl)
    : region (complexity (parent), id, parent, TREE_TYPE (fndecl)),
      m_fndecl (fndecl)
    {
--- 463,469 ----
  class function_region : public region
  {
  public:
!   function_region (symbol::id_t id, const code_region *parent, tree fndecl)
    : region (complexity (parent), id, parent, TREE_TYPE (fndecl)),
      m_fndecl (fndecl)
    {
*************** namespace ana {
*** 482,488 ****
  class label_region : public region
  {
  public:
!   label_region (unsigned id, const function_region *parent, tree label)
    : region (complexity (parent), id, parent, NULL_TREE), m_label (label)
    {
      gcc_assert (TREE_CODE (label) == LABEL_DECL);
--- 500,506 ----
  class label_region : public region
  {
  public:
!   label_region (symbol::id_t id, const function_region *parent, tree label)
    : region (complexity (parent), id, parent, NULL_TREE), m_label (label)
    {
      gcc_assert (TREE_CODE (label) == LABEL_DECL);
*************** namespace ana {
*** 516,522 ****
  class stack_region : public space_region
  {
  public:
!   stack_region (unsigned id, region *parent)
    : space_region (id, parent)
    {}
  
--- 534,540 ----
  class stack_region : public space_region
  {
  public:
!   stack_region (symbol::id_t id, region *parent)
    : space_region (id, parent)
    {}
  
*************** namespace ana {
*** 543,549 ****
  class heap_region : public space_region
  {
  public:
!   heap_region (unsigned id, region *parent)
    : space_region (id, parent)
    {}
  
--- 561,567 ----
  class heap_region : public space_region
  {
  public:
!   heap_region (symbol::id_t id, region *parent)
    : space_region (id, parent)
    {}
  
*************** namespace ana {
*** 569,575 ****
  class thread_local_region : public space_region
  {
  public:
!   thread_local_region (unsigned id, region *parent)
    : space_region (id, parent)
    {}
  
--- 587,593 ----
  class thread_local_region : public space_region
  {
  public:
!   thread_local_region (symbol::id_t id, region *parent)
    : space_region (id, parent)
    {}
  
*************** namespace ana {
*** 596,602 ****
  class root_region : public region
  {
  public:
!   root_region (unsigned id);
  
    enum region_kind get_kind () const final override { return RK_ROOT; }
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
--- 614,620 ----
  class root_region : public region
  {
  public:
!   root_region (symbol::id_t id);
  
    enum region_kind get_kind () const final override { return RK_ROOT; }
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
*************** public:
*** 654,660 ****
      const svalue *m_sval_ptr;
    };
  
!   symbolic_region (unsigned id, region *parent, const svalue *sval_ptr);
  
    const symbolic_region *
    dyn_cast_symbolic_region () const final override { return this; }
--- 672,678 ----
      const svalue *m_sval_ptr;
    };
  
!   symbolic_region (symbol::id_t id, region *parent, const svalue *sval_ptr);
  
    const symbolic_region *
    dyn_cast_symbolic_region () const final override { return this; }
*************** namespace ana {
*** 694,702 ****
  class decl_region : public region
  {
  public:
!   decl_region (unsigned id, const region *parent, tree decl)
    : region (complexity (parent), id, parent, TREE_TYPE (decl)), m_decl (decl),
!     m_tracked (calc_tracked_p (decl))
    {}
  
    enum region_kind get_kind () const final override { return RK_DECL; }
--- 712,721 ----
  class decl_region : public region
  {
  public:
!   decl_region (symbol::id_t id, const region *parent, tree decl)
    : region (complexity (parent), id, parent, TREE_TYPE (decl)), m_decl (decl),
!     m_tracked (calc_tracked_p (decl)),
!     m_ctor_svalue (NULL)
    {}
  
    enum region_kind get_kind () const final override { return RK_DECL; }
*************** public:
*** 716,721 ****
--- 735,742 ----
    const svalue *get_svalue_for_initializer (region_model_manager *mgr) const;
  
  private:
+   const svalue *calc_svalue_for_constructor (tree ctor,
+ 					     region_model_manager *mgr) const;
    static bool calc_tracked_p (tree decl);
  
    tree m_decl;
*************** private:
*** 725,730 ****
--- 746,754 ----
       store objects).
       This can be debugged using -fdump-analyzer-untracked.  */
    bool m_tracked;
+ 
+   /* Cached result of get_svalue_for_constructor.  */
+   mutable const svalue *m_ctor_svalue;
  };
  
  } // namespace ana
*************** public:
*** 776,782 ****
      tree m_field;
    };
  
!   field_region (unsigned id, const region *parent, tree field)
    : region (complexity (parent), id, parent, TREE_TYPE (field)),
      m_field (field)
    {}
--- 800,806 ----
      tree m_field;
    };
  
!   field_region (symbol::id_t id, const region *parent, tree field)
    : region (complexity (parent), id, parent, TREE_TYPE (field)),
      m_field (field)
    {}
*************** public:
*** 858,864 ****
      const svalue *m_index;
    };
  
!   element_region (unsigned id, const region *parent, tree element_type,
  		  const svalue *index)
    : region (complexity::from_pair (parent, index), id, parent, element_type),
      m_index (index)
--- 882,888 ----
      const svalue *m_index;
    };
  
!   element_region (symbol::id_t id, const region *parent, tree element_type,
  		  const svalue *index)
    : region (complexity::from_pair (parent, index), id, parent, element_type),
      m_index (index)
*************** public:
*** 945,951 ****
      const svalue *m_byte_offset;
    };
  
!   offset_region (unsigned id, const region *parent, tree type,
  		 const svalue *byte_offset)
    : region (complexity::from_pair (parent, byte_offset), id, parent, type),
      m_byte_offset (byte_offset)
--- 969,975 ----
      const svalue *m_byte_offset;
    };
  
!   offset_region (symbol::id_t id, const region *parent, tree type,
  		 const svalue *byte_offset)
    : region (complexity::from_pair (parent, byte_offset), id, parent, type),
      m_byte_offset (byte_offset)
*************** public:
*** 960,972 ****
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
  
    const svalue *get_byte_offset () const { return m_byte_offset; }
  
    bool get_relative_concrete_offset (bit_offset_t *out) const final override;
    const svalue *get_relative_symbolic_offset (region_model_manager *mgr)
      const final override;
-   const svalue * get_byte_size_sval (region_model_manager *mgr)
-     const final override;
- 
  
  private:
    const svalue *m_byte_offset;
--- 984,994 ----
    void dump_to_pp (pretty_printer *pp, bool simple) const final override;
  
    const svalue *get_byte_offset () const { return m_byte_offset; }
+   const svalue *get_bit_offset (region_model_manager *mgr) const;
  
    bool get_relative_concrete_offset (bit_offset_t *out) const final override;
    const svalue *get_relative_symbolic_offset (region_model_manager *mgr)
      const final override;
  
  private:
    const svalue *m_byte_offset;
*************** public:
*** 1037,1043 ****
      const svalue *m_end_offset;
    };
  
!   sized_region (unsigned id, const region *parent, tree type,
  		const svalue *byte_size_sval)
    : region (complexity::from_pair (parent, byte_size_sval),
  	    id, parent, type),
--- 1059,1065 ----
      const svalue *m_end_offset;
    };
  
!   sized_region (symbol::id_t id, const region *parent, tree type,
  		const svalue *byte_size_sval)
    : region (complexity::from_pair (parent, byte_size_sval),
  	    id, parent, type),
*************** public:
*** 1061,1066 ****
--- 1083,1091 ----
      return m_byte_size_sval;
    }
  
+   const svalue *
+   get_bit_size_sval (region_model_manager *) const final override;
+ 
  private:
    const svalue *m_byte_size_sval;
  };
*************** public:
*** 1094,1100 ****
      key_t (const region *original_region, tree type)
      : m_original_region (original_region), m_type (type)
      {
!       gcc_assert (type);
      }
  
      hashval_t hash () const
--- 1119,1125 ----
      key_t (const region *original_region, tree type)
      : m_original_region (original_region), m_type (type)
      {
!       gcc_assert (original_region);
      }
  
      hashval_t hash () const
*************** public:
*** 1111,1126 ****
  	      && m_type == other.m_type);
      }
  
!     void mark_deleted () { m_type = reinterpret_cast<tree> (1); }
!     void mark_empty () { m_type = NULL_TREE; }
!     bool is_deleted () const { return m_type == reinterpret_cast<tree> (1); }
!     bool is_empty () const { return m_type == NULL_TREE; }
  
      const region *m_original_region;
      tree m_type;
    };
  
!   cast_region (unsigned id, const region *original_region, tree type)
    : region (complexity (original_region), id,
  	    original_region->get_parent_region (), type),
      m_original_region (original_region)
--- 1136,1157 ----
  	      && m_type == other.m_type);
      }
  
!     void mark_deleted ()
!     {
!       m_original_region = reinterpret_cast<const region *> (1);
!     }
!     void mark_empty () { m_original_region = nullptr; }
!     bool is_deleted () const
!     {
!       return m_original_region == reinterpret_cast<const region *> (1);
!     }
!     bool is_empty () const { return m_original_region == nullptr; }
  
      const region *m_original_region;
      tree m_type;
    };
  
!   cast_region (symbol::id_t id, const region *original_region, tree type)
    : region (complexity (original_region), id,
  	    original_region->get_parent_region (), type),
      m_original_region (original_region)
*************** namespace ana {
*** 1164,1170 ****
  class heap_allocated_region : public region
  {
  public:
!   heap_allocated_region (unsigned id, const region *parent)
    : region (complexity (parent), id, parent, NULL_TREE)
    {}
  
--- 1195,1201 ----
  class heap_allocated_region : public region
  {
  public:
!   heap_allocated_region (symbol::id_t id, const region *parent)
    : region (complexity (parent), id, parent, NULL_TREE)
    {}
  
*************** public:
*** 1179,1185 ****
  class alloca_region : public region
  {
  public:
!   alloca_region (unsigned id, const frame_region *parent)
    : region (complexity (parent), id, parent, NULL_TREE)
    {}
  
--- 1210,1216 ----
  class alloca_region : public region
  {
  public:
!   alloca_region (symbol::id_t id, const frame_region *parent)
    : region (complexity (parent), id, parent, NULL_TREE)
    {}
  
*************** public:
*** 1193,1199 ****
  class string_region : public region
  {
  public:
!   string_region (unsigned id, const region *parent, tree string_cst)
    : region (complexity (parent), id, parent, TREE_TYPE (string_cst)),
      m_string_cst (string_cst)
    {}
--- 1224,1230 ----
  class string_region : public region
  {
  public:
!   string_region (symbol::id_t id, const region *parent, tree string_cst)
    : region (complexity (parent), id, parent, TREE_TYPE (string_cst)),
      m_string_cst (string_cst)
    {}
*************** public:
*** 1271,1277 ****
      bit_range m_bits;
    };
  
!   bit_range_region (unsigned id, const region *parent, tree type,
  		    const bit_range &bits)
    : region (complexity (parent), id, parent, type),
      m_bits (bits)
--- 1302,1308 ----
      bit_range m_bits;
    };
  
!   bit_range_region (symbol::id_t id, const region *parent, tree type,
  		    const bit_range &bits)
    : region (complexity (parent), id, parent, type),
      m_bits (bits)
*************** public:
*** 1289,1294 ****
--- 1320,1326 ----
    bool get_byte_size (byte_size_t *out) const final override;
    bool get_bit_size (bit_size_t *out) const final override;
    const svalue *get_byte_size_sval (region_model_manager *mgr) const final override;
+   const svalue *get_bit_size_sval (region_model_manager *mgr) const final override;
    bool get_relative_concrete_offset (bit_offset_t *out) const final override;
    const svalue *get_relative_symbolic_offset (region_model_manager *mgr)
      const final override;
*************** public:
*** 1358,1364 ****
      unsigned m_idx;
    };
  
!   var_arg_region (unsigned id, const frame_region *parent,
  		  unsigned idx)
    : region (complexity (parent), id, parent, NULL_TREE),
      m_idx (idx)
--- 1390,1396 ----
      unsigned m_idx;
    };
  
!   var_arg_region (symbol::id_t id, const frame_region *parent,
  		  unsigned idx)
    : region (complexity (parent), id, parent, NULL_TREE),
      m_idx (idx)
*************** namespace ana {
*** 1401,1407 ****
  class errno_region : public region
  {
  public:
!   errno_region (unsigned id, const thread_local_region *parent)
    : region (complexity (parent), id, parent, integer_type_node)
    {}
  
--- 1433,1439 ----
  class errno_region : public region
  {
  public:
!   errno_region (symbol::id_t id, const thread_local_region *parent)
    : region (complexity (parent), id, parent, integer_type_node)
    {}
  
*************** is_a_helper <const errno_region *>::test
*** 1422,1433 ****
  
  namespace ana {
  
  /* An unknown region, for handling unimplemented tree codes.  */
  
  class unknown_region : public region
  {
  public:
!   unknown_region (unsigned id, const region *parent, tree type)
    : region (complexity (parent), id, parent, type)
    {}
  
--- 1454,1501 ----
  
  namespace ana {
  
+ /* Similar to a decl region, but we don't have the decl.
+    For implementing e.g. static buffers of known_functions,
+    or other internal state of an API.
+ 
+    These are owned by known_function instances, rather than the
+    region_model_manager.  */
+ 
+ class private_region : public region
+ {
+ public:
+   private_region (unsigned id, const region *parent, tree type,
+ 		  const char *desc)
+   : region (complexity (parent), id, parent, type),
+     m_desc (desc)
+   {}
+ 
+   enum region_kind get_kind () const final override { return RK_PRIVATE; }
+ 
+   void dump_to_pp (pretty_printer *pp, bool simple) const final override;
+ 
+ private:
+   const char *m_desc;
+ };
+ 
+ } // namespace ana
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <const private_region *>::test (const region *reg)
+ {
+   return reg->get_kind () == RK_PRIVATE;
+ }
+ 
+ namespace ana {
+ 
  /* An unknown region, for handling unimplemented tree codes.  */
  
  class unknown_region : public region
  {
  public:
!   unknown_region (symbol::id_t id, const region *parent, tree type)
    : region (complexity (parent), id, parent, type)
    {}
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-fd.cc gcc-14.1.0/gcc/analyzer/sm-fd.cc
*** gcc-13.2.0/gcc/analyzer/sm-fd.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-fd.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* A state machine for detecting misuses of POSIX file descriptor APIs.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by Immad Mir <mir@sourceware.org>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A state machine for detecting misuses of POSIX file descriptor APIs.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by Immad Mir <mir@sourceware.org>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 29,35 ****
  #include "gimple.h"
  #include "options.h"
  #include "diagnostic-path.h"
- #include "diagnostic-metadata.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
--- 29,34 ----
*************** public:
*** 465,483 ****
    }
  
    bool
!   emit (rich_location *rich_loc) final override
    {
      /*CWE-775: Missing Release of File Descriptor or Handle after Effective
        Lifetime
       */
!     diagnostic_metadata m;
!     m.add_cwe (775);
      if (m_arg)
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "leak of file descriptor %qE", m_arg);
      else
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "leak of file descriptor");
    }
  
    label_text
--- 464,479 ----
    }
  
    bool
!   emit (diagnostic_emission_context &ctxt) final override
    {
      /*CWE-775: Missing Release of File Descriptor or Handle after Effective
        Lifetime
       */
!     ctxt.add_cwe (775);
      if (m_arg)
!       return ctxt.warn ("leak of file descriptor %qE", m_arg);
      else
!       return ctxt.warn ("leak of file descriptor");
    }
  
    label_text
*************** public:
*** 550,569 ****
    }
  
    bool
!   emit (rich_location *rich_loc) final override
    {
      bool warned;
      switch (m_fd_dir)
        {
        case DIRS_READ:
! 	warned =  warning_at (rich_loc, get_controlling_option (),
! 			   "%qE on read-only file descriptor %qE",
! 			   m_callee_fndecl, m_arg);
  	break;
        case DIRS_WRITE:
! 	warned = warning_at (rich_loc, get_controlling_option (),
! 			   "%qE on write-only file descriptor %qE",
! 			   m_callee_fndecl, m_arg);
  	break;
        default:
  	gcc_unreachable ();
--- 546,563 ----
    }
  
    bool
!   emit (diagnostic_emission_context &ctxt) final override
    {
      bool warned;
      switch (m_fd_dir)
        {
        case DIRS_READ:
! 	warned =  ctxt.warn ("%qE on read-only file descriptor %qE",
! 			     m_callee_fndecl, m_arg);
  	break;
        case DIRS_WRITE:
! 	warned = ctxt.warn ("%qE on write-only file descriptor %qE",
! 			    m_callee_fndecl, m_arg);
  	break;
        default:
  	gcc_unreachable ();
*************** public:
*** 612,624 ****
      return OPT_Wanalyzer_fd_double_close;
    }
    bool
!   emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      // CWE-1341: Multiple Releases of Same Resource or Handle
!     m.add_cwe (1341);
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "double %<close%> of file descriptor %qE", m_arg);
    }
  
    label_text
--- 606,616 ----
      return OPT_Wanalyzer_fd_double_close;
    }
    bool
!   emit (diagnostic_emission_context &ctxt) final override
    {
      // CWE-1341: Multiple Releases of Same Resource or Handle
!     ctxt.add_cwe (1341);
!     return ctxt.warn ("double %<close%> of file descriptor %qE", m_arg);
    }
  
    label_text
*************** public:
*** 677,688 ****
    }
  
    bool
!   emit (rich_location *rich_loc) final override
    {
!     bool warned;
!     warned = warning_at (rich_loc, get_controlling_option (),
! 		       "%qE on closed file descriptor %qE", m_callee_fndecl,
! 		       m_arg);
      if (warned)
        inform_filedescriptor_attribute (DIRS_READ_WRITE);
      return warned;
--- 669,678 ----
    }
  
    bool
!   emit (diagnostic_emission_context &ctxt) final override
    {
!     bool warned = ctxt.warn ("%qE on closed file descriptor %qE",
! 			     m_callee_fndecl, m_arg);
      if (warned)
        inform_filedescriptor_attribute (DIRS_READ_WRITE);
      return warned;
*************** public:
*** 748,759 ****
    }
  
    bool
!   emit (rich_location *rich_loc) final override
    {
!     bool warned;
!     warned = warning_at (rich_loc, get_controlling_option (),
! 			"%qE on possibly invalid file descriptor %qE",
! 			m_callee_fndecl, m_arg);
      if (warned)
       inform_filedescriptor_attribute (DIRS_READ_WRITE);
      return warned;
--- 738,747 ----
    }
  
    bool
!   emit (diagnostic_emission_context &ctxt) final override
    {
!     bool warned = ctxt.warn ("%qE on possibly invalid file descriptor %qE",
! 			     m_callee_fndecl, m_arg);
      if (warned)
       inform_filedescriptor_attribute (DIRS_READ_WRITE);
      return warned;
*************** public:
*** 859,872 ****
    }
  
    bool
!   emit (rich_location *rich_loc) final override
    {
      /* CWE-666: Operation on Resource in Wrong Phase of Lifetime.  */
!     diagnostic_metadata m;
!     m.add_cwe (666);
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "%qE on file descriptor %qE in wrong phase",
! 		       m_callee_fndecl, m_arg);
    }
  
    label_text
--- 847,858 ----
    }
  
    bool
!   emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-666: Operation on Resource in Wrong Phase of Lifetime.  */
!     ctxt.add_cwe (666);
!     return ctxt.warn ("%qE on file descriptor %qE in wrong phase",
! 		      m_callee_fndecl, m_arg);
    }
  
    label_text
*************** public:
*** 1019,1043 ****
    }
  
    bool
!   emit (rich_location *rich_loc) final override
    {
      switch (m_expected_type)
        {
        default:
  	gcc_unreachable ();
        case EXPECTED_TYPE_SOCKET:
! 	return warning_at (rich_loc, get_controlling_option (),
! 			   "%qE on non-socket file descriptor %qE",
! 			   m_callee_fndecl, m_arg);
        case EXPECTED_TYPE_STREAM_SOCKET:
  	if (m_sm.is_datagram_socket_fd_p (m_actual_state))
! 	  return warning_at (rich_loc, get_controlling_option (),
! 			     "%qE on datagram socket file descriptor %qE",
! 			     m_callee_fndecl, m_arg);
  	else
! 	  return warning_at (rich_loc, get_controlling_option (),
! 			     "%qE on non-stream-socket file descriptor %qE",
! 			     m_callee_fndecl, m_arg);
        }
    }
  
--- 1005,1026 ----
    }
  
    bool
!   emit (diagnostic_emission_context &ctxt) final override
    {
      switch (m_expected_type)
        {
        default:
  	gcc_unreachable ();
        case EXPECTED_TYPE_SOCKET:
! 	return ctxt.warn ("%qE on non-socket file descriptor %qE",
! 			  m_callee_fndecl, m_arg);
        case EXPECTED_TYPE_STREAM_SOCKET:
  	if (m_sm.is_datagram_socket_fd_p (m_actual_state))
! 	  return ctxt.warn ("%qE on datagram socket file descriptor %qE",
! 			    m_callee_fndecl, m_arg);
  	else
! 	  return ctxt.warn ("%qE on non-stream-socket file descriptor %qE",
! 			    m_callee_fndecl, m_arg);
        }
    }
  
*************** fd_state_machine::check_for_fd_attrs (
*** 1294,1301 ****
      const gcall *call, const tree callee_fndecl, const char *attr_name,
      access_directions fd_attr_access_dir) const
  {
  
!   tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (callee_fndecl));
    attrs = lookup_attribute (attr_name, attrs);
    if (!attrs)
      return;
--- 1277,1295 ----
      const gcall *call, const tree callee_fndecl, const char *attr_name,
      access_directions fd_attr_access_dir) const
  {
+   /* Handle interesting fd attributes of the callee_fndecl,
+      or prioritize those of the builtin that callee_fndecl is
+      expected to be.
+      Might want this to be controlled by a flag.  */
+   tree fndecl = callee_fndecl;
+   /* If call is recognized as a builtin known_function,
+      use that builtin's function_decl.  */
+   if (const region_model *old_model = sm_ctxt->get_old_region_model ())
+     if (const builtin_known_function *builtin_kf
+ 	 = old_model->get_builtin_kf (call))
+       fndecl = builtin_kf->builtin_decl ();
  
!   tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (fndecl));
    attrs = lookup_attribute (attr_name, attrs);
    if (!attrs)
      return;
*************** fd_state_machine::check_for_fd_attrs (
*** 1325,1337 ****
  		   // attributes
  	{
  
  	  if (is_closed_fd_p (state))
  	    {
  
  	      sm_ctxt->warn (node, stmt, arg,
  			     make_unique<fd_use_after_close>
  			       (*this, diag_arg,
! 				callee_fndecl, attr_name,
  				arg_idx));
  	      continue;
  	    }
--- 1319,1333 ----
  		   // attributes
  	{
  
+ 	  /* Do use the fndecl that caused the warning so that the
+ 	     misused attributes are printed and the user not confused.  */
  	  if (is_closed_fd_p (state))
  	    {
  
  	      sm_ctxt->warn (node, stmt, arg,
  			     make_unique<fd_use_after_close>
  			       (*this, diag_arg,
! 				fndecl, attr_name,
  				arg_idx));
  	      continue;
  	    }
*************** fd_state_machine::check_for_fd_attrs (
*** 1343,1349 ****
  		  sm_ctxt->warn (node, stmt, arg,
  				 make_unique<fd_use_without_check>
  				 (*this, diag_arg,
! 				  callee_fndecl, attr_name,
  				  arg_idx));
  		  continue;
  		}
--- 1339,1345 ----
  		  sm_ctxt->warn (node, stmt, arg,
  				 make_unique<fd_use_without_check>
  				 (*this, diag_arg,
! 				  fndecl, attr_name,
  				  arg_idx));
  		  continue;
  		}
*************** fd_state_machine::check_for_fd_attrs (
*** 1361,1367 ****
  		      node, stmt, arg,
  		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
  							    DIRS_WRITE,
! 							    callee_fndecl,
  							    attr_name,
  							    arg_idx));
  		}
--- 1357,1363 ----
  		      node, stmt, arg,
  		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
  							    DIRS_WRITE,
! 							    fndecl,
  							    attr_name,
  							    arg_idx));
  		}
*************** fd_state_machine::check_for_fd_attrs (
*** 1375,1381 ****
  		      node, stmt, arg,
  		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
  							    DIRS_READ,
! 							    callee_fndecl,
  							    attr_name,
  							    arg_idx));
  		}
--- 1371,1377 ----
  		      node, stmt, arg,
  		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
  							    DIRS_READ,
! 							    fndecl,
  							    attr_name,
  							    arg_idx));
  		}
*************** public:
*** 2282,2291 ****
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	return true;
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	return true;
  
        return fd_sm->on_socket (cd, m_success, sm_ctxt.get (), *ext_state);
      }
--- 2278,2293 ----
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
  
        return fd_sm->on_socket (cd, m_success, sm_ctxt.get (), *ext_state);
      }
*************** public:
*** 2329,2338 ****
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	return true;
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	return true;
        return fd_sm->on_bind (cd, m_success, sm_ctxt.get (), *ext_state);
      }
    };
--- 2331,2346 ----
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
        return fd_sm->on_bind (cd, m_success, sm_ctxt.get (), *ext_state);
      }
    };
*************** class kf_listen : public known_function
*** 2374,2383 ****
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	return true;
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	return true;
  
        return fd_sm->on_listen (cd, m_success, sm_ctxt.get (), *ext_state);
      }
--- 2382,2397 ----
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
  
        return fd_sm->on_listen (cd, m_success, sm_ctxt.get (), *ext_state);
      }
*************** class kf_accept : public known_function
*** 2420,2429 ****
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	return true;
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	return true;
  
        return fd_sm->on_accept (cd, m_success, sm_ctxt.get (), *ext_state);
      }
--- 2434,2449 ----
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
  
        return fd_sm->on_accept (cd, m_success, sm_ctxt.get (), *ext_state);
      }
*************** public:
*** 2469,2478 ****
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	return true;
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	return true;
  
        return fd_sm->on_connect (cd, m_success, sm_ctxt.get (), *ext_state);
      }
--- 2489,2504 ----
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
        if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
        const extrinsic_state *ext_state = ctxt->get_ext_state ();
        if (!ext_state)
! 	{
! 	  cd.set_any_lhs_with_defaults ();
! 	  return true;
! 	}
  
        return fd_sm->on_connect (cd, m_success, sm_ctxt.get (), *ext_state);
      }
*************** public:
*** 2687,2692 ****
--- 2713,2719 ----
  	const svalue *new_sval = cd.get_or_create_conjured_svalue (base_reg);
  	model->set_value (base_reg, new_sval, cd.get_ctxt ());
        }
+     cd.set_any_lhs_with_defaults ();
    }
  };
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-fd.dot gcc-14.1.0/gcc/analyzer/sm-fd.dot
*** gcc-13.2.0/gcc/analyzer/sm-fd.dot	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-fd.dot	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* An overview of the state machine from sm-fd.cc.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* An overview of the state machine from sm-fd.cc.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-file.cc gcc-14.1.0/gcc/analyzer/sm-file.cc
*** gcc-13.2.0/gcc/analyzer/sm-file.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-file.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* A state machine for detecting misuses of <stdio.h>'s FILE * API.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A state machine for detecting misuses of <stdio.h>'s FILE * API.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 29,35 ****
  #include "gimple.h"
  #include "options.h"
  #include "diagnostic-path.h"
- #include "diagnostic-metadata.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
--- 29,34 ----
*************** public:
*** 176,189 ****
      return OPT_Wanalyzer_double_fclose;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* CWE-1341: Multiple Releases of Same Resource or Handle.  */
!     m.add_cwe (1341);
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "double %<fclose%> of FILE %qE",
! 			 m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
--- 175,186 ----
      return OPT_Wanalyzer_double_fclose;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-1341: Multiple Releases of Same Resource or Handle.  */
!     ctxt.add_cwe (1341);
!     return ctxt.warn ("double %<fclose%> of FILE %qE",
! 		      m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
*************** public:
*** 224,242 ****
      return OPT_Wanalyzer_file_leak;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* CWE-775: "Missing Release of File Descriptor or Handle after
         Effective Lifetime". */
!     m.add_cwe (775);
      if (m_arg)
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "leak of FILE %qE",
! 			   m_arg);
      else
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "leak of FILE");
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
--- 221,235 ----
      return OPT_Wanalyzer_file_leak;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-775: "Missing Release of File Descriptor or Handle after
         Effective Lifetime". */
!     ctxt.add_cwe (775);
      if (m_arg)
!       return ctxt.warn ("leak of FILE %qE", m_arg);
      else
!       return ctxt.warn ("leak of FILE");
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
*************** private:
*** 277,289 ****
  /* fileptr_state_machine's ctor.  */
  
  fileptr_state_machine::fileptr_state_machine (logger *logger)
! : state_machine ("file", logger)
  {
-   m_unchecked = add_state ("unchecked");
-   m_null = add_state ("null");
-   m_nonnull = add_state ("nonnull");
-   m_closed = add_state ("closed");
-   m_stop = add_state ("stop");
  }
  
  /* Get a set of functions that are known to take a FILE * that must be open,
--- 270,282 ----
  /* fileptr_state_machine's ctor.  */
  
  fileptr_state_machine::fileptr_state_machine (logger *logger)
! : state_machine ("file", logger),
!   m_unchecked (add_state ("unchecked")),
!   m_null (add_state ("null")),
!   m_nonnull (add_state ("nonnull")),
!   m_closed (add_state ("closed")),
!   m_stop (add_state ("stop"))
  {
  }
  
  /* Get a set of functions that are known to take a FILE * that must be open,
*************** make_fileptr_state_machine (logger *logg
*** 494,500 ****
     effects that are out of scope for the analyzer: we only want to model
     the effects on the return value.  */
  
! class kf_stdio_output_fn : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &) const final override
--- 487,493 ----
     effects that are out of scope for the analyzer: we only want to model
     the effects on the return value.  */
  
! class kf_stdio_output_fn : public pure_known_function_with_default_return
  {
  public:
    bool matches_call_types_p (const call_details &) const final override
*************** public:
*** 507,513 ****
  
  /* Handler for "ferror"".  */
  
! class kf_ferror : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
--- 500,506 ----
  
  /* Handler for "ferror"".  */
  
! class kf_ferror : public pure_known_function_with_default_return
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
*************** public:
*** 521,527 ****
  
  /* Handler for "fileno"".  */
  
! class kf_fileno : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
--- 514,520 ----
  
  /* Handler for "fileno"".  */
  
! class kf_fileno : public pure_known_function_with_default_return
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
*************** public:
*** 557,562 ****
--- 550,556 ----
  	const svalue *new_sval = cd.get_or_create_conjured_svalue (base_reg);
  	model->set_value (base_reg, new_sval, cd.get_ctxt ());
        }
+     cd.set_any_lhs_with_defaults ();
    }
  };
  
*************** public:
*** 592,603 ****
  	const svalue *new_sval = cd.get_or_create_conjured_svalue (base_reg);
  	model->set_value (base_reg, new_sval, cd.get_ctxt ());
        }
    }
  };
  
  /* Handler for "getc"".  */
  
! class kf_getc : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
--- 586,598 ----
  	const svalue *new_sval = cd.get_or_create_conjured_svalue (base_reg);
  	model->set_value (base_reg, new_sval, cd.get_ctxt ());
        }
+     cd.set_any_lhs_with_defaults ();
    }
  };
  
  /* Handler for "getc"".  */
  
! class kf_getc : public pure_known_function_with_default_return
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
*************** public:
*** 605,617 ****
      return (cd.num_args () == 1
  	    && cd.arg_is_pointer_p (0));
    }
- 
-   /* No side effects.  */
  };
  
  /* Handler for "getchar"".  */
  
! class kf_getchar : public known_function
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
--- 600,610 ----
      return (cd.num_args () == 1
  	    && cd.arg_is_pointer_p (0));
    }
  };
  
  /* Handler for "getchar"".  */
  
! class kf_getchar : public pure_known_function_with_default_return
  {
  public:
    bool matches_call_types_p (const call_details &cd) const final override
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-file.dot gcc-14.1.0/gcc/analyzer/sm-file.dot
*** gcc-13.2.0/gcc/analyzer/sm-file.dot	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-file.dot	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* An overview of the state machine from sm-file.cc.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* An overview of the state machine from sm-file.cc.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-malloc.cc gcc-14.1.0/gcc/analyzer/sm-malloc.cc
*** gcc-13.2.0/gcc/analyzer/sm-malloc.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-malloc.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* A state machine for detecting misuses of the malloc/free API.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* A state machine for detecting misuses of the malloc/free API.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 29,36 ****
  #include "gimple.h"
  #include "options.h"
  #include "bitmap.h"
  #include "diagnostic-path.h"
- #include "diagnostic-metadata.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
--- 29,36 ----
  #include "gimple.h"
  #include "options.h"
  #include "bitmap.h"
+ #include "diagnostic-core.h"
  #include "diagnostic-path.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
*************** along with GCC; see the file COPYING3.
*** 47,52 ****
--- 47,53 ----
  #include "analyzer/program-state.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/exploded-graph.h"
+ #include "analyzer/inlining-iterator.h"
  
  #if ENABLE_ANALYZER
  
*************** public:
*** 434,439 ****
--- 435,445 ----
  			     const svalue *new_ptr_sval,
  			     const extrinsic_state &ext_state) const;
  
+   void transition_ptr_sval_non_null (region_model *model,
+       sm_state_map *smap,
+       const svalue *new_ptr_sval,
+       const extrinsic_state &ext_state) const;
+ 
    standard_deallocator_set m_free;
    standard_deallocator_set m_scalar_delete;
    standard_deallocator_set m_vector_delete;
*************** public:
*** 754,760 ****
      override
    {
      if (change.m_old_state == m_sm.get_start_state ()
! 	&& unchecked_p (change.m_new_state))
        // TODO: verify that it's the allocation stmt, not a copy
        return label_text::borrow ("allocated here");
      if (unchecked_p (change.m_old_state)
--- 760,766 ----
      override
    {
      if (change.m_old_state == m_sm.get_start_state ()
! 	&& (unchecked_p (change.m_new_state) || nonnull_p (change.m_new_state)))
        // TODO: verify that it's the allocation stmt, not a copy
        return label_text::borrow ("allocated here");
      if (unchecked_p (change.m_old_state)
*************** public:
*** 835,857 ****
      return OPT_Wanalyzer_mismatching_deallocation;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      auto_diagnostic_group d;
!     diagnostic_metadata m;
!     m.add_cwe (762); /* CWE-762: Mismatched Memory Management Routines.  */
      if (const deallocator *expected_dealloc
  	  = m_expected_deallocators->maybe_get_single ())
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "%qE should have been deallocated with %qs"
! 			   " but was deallocated with %qs",
! 			   m_arg, expected_dealloc->m_name,
! 			   m_actual_dealloc->m_name);
      else
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "%qs called on %qE returned from a mismatched"
! 			   " allocation function",
! 			   m_actual_dealloc->m_name, m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
--- 841,860 ----
      return OPT_Wanalyzer_mismatching_deallocation;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      auto_diagnostic_group d;
!     ctxt.add_cwe (762); /* CWE-762: Mismatched Memory Management Routines.  */
      if (const deallocator *expected_dealloc
  	  = m_expected_deallocators->maybe_get_single ())
!       return ctxt.warn ("%qE should have been deallocated with %qs"
! 			" but was deallocated with %qs",
! 			m_arg, expected_dealloc->m_name,
! 			m_actual_dealloc->m_name);
      else
!       return ctxt.warn ("%qs called on %qE returned from a mismatched"
! 			" allocation function",
! 			m_actual_dealloc->m_name, m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
*************** public:
*** 914,926 ****
      return OPT_Wanalyzer_double_free;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      auto_diagnostic_group d;
!     diagnostic_metadata m;
!     m.add_cwe (415); /* CWE-415: Double Free.  */
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "double-%qs of %qE", m_funcname, m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
--- 917,927 ----
      return OPT_Wanalyzer_double_free;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      auto_diagnostic_group d;
!     ctxt.add_cwe (415); /* CWE-415: Double Free.  */
!     return ctxt.warn ("double-%qs of %qE", m_funcname, m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
*************** public:
*** 1010,1022 ****
      return OPT_Wanalyzer_possible_null_dereference;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      /* CWE-690: Unchecked Return Value to NULL Pointer Dereference.  */
!     diagnostic_metadata m;
!     m.add_cwe (690);
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "dereference of possibly-NULL %qE", m_arg);
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
--- 1011,1021 ----
      return OPT_Wanalyzer_possible_null_dereference;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-690: Unchecked Return Value to NULL Pointer Dereference.  */
!     ctxt.add_cwe (690);
!     return ctxt.warn ("dereference of possibly-NULL %qE", m_arg);
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
*************** public:
*** 1099,1114 ****
      return OPT_Wanalyzer_possible_null_argument;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      /* CWE-690: Unchecked Return Value to NULL Pointer Dereference.  */
      auto_diagnostic_group d;
!     diagnostic_metadata m;
!     m.add_cwe (690);
      bool warned
!       = warning_meta (rich_loc, m, get_controlling_option (),
! 		      "use of possibly-NULL %qE where non-null expected",
! 		      m_arg);
      if (warned)
        inform_nonnull_attribute (m_fndecl, m_arg_idx);
      return warned;
--- 1098,1111 ----
      return OPT_Wanalyzer_possible_null_argument;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-690: Unchecked Return Value to NULL Pointer Dereference.  */
      auto_diagnostic_group d;
!     ctxt.add_cwe (690);
      bool warned
!       = ctxt.warn ("use of possibly-NULL %qE where non-null expected",
! 		   m_arg);
      if (warned)
        inform_nonnull_attribute (m_fndecl, m_arg_idx);
      return warned;
*************** public:
*** 1152,1164 ****
  
    bool terminate_path_p () const final override { return true; }
  
!   bool emit (rich_location *rich_loc) final override
    {
      /* CWE-476: NULL Pointer Dereference.  */
!     diagnostic_metadata m;
!     m.add_cwe (476);
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "dereference of NULL %qE", m_arg);
    }
  
    label_text describe_return_of_state (const evdesc::return_of_state &info)
--- 1149,1159 ----
  
    bool terminate_path_p () const final override { return true; }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-476: NULL Pointer Dereference.  */
!     ctxt.add_cwe (476);
!     return ctxt.warn ("dereference of NULL %qE", m_arg);
    }
  
    label_text describe_return_of_state (const evdesc::return_of_state &info)
*************** public:
*** 1174,1179 ****
--- 1169,1189 ----
    {
      return ev.formatted_print ("dereference of NULL %qE", ev.m_expr);
    }
+ 
+   /* Implementation of pending_diagnostic::supercedes_p for
+      null-deref.
+ 
+      We want null-deref to supercede use-of-unitialized-value,
+      so that if we have these at the same stmt, we don't emit
+      a use-of-uninitialized, just the null-deref.  */
+ 
+   bool supercedes_p (const pending_diagnostic &other) const final override
+   {
+     if (other.use_of_uninit_p ())
+       return true;
+ 
+     return false;
+   }
  };
  
  /* Concrete subclass for describing passing a NULL value to a
*************** public:
*** 1207,1227 ****
  
    bool terminate_path_p () const final override { return true; }
  
!   bool emit (rich_location *rich_loc) final override
    {
      /* CWE-476: NULL Pointer Dereference.  */
      auto_diagnostic_group d;
!     diagnostic_metadata m;
!     m.add_cwe (476);
  
      bool warned;
      if (zerop (m_arg))
!       warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			     "use of NULL where non-null expected");
      else
!       warned = warning_meta (rich_loc, m, get_controlling_option (),
! 			     "use of NULL %qE where non-null expected",
! 			     m_arg);
      if (warned)
        inform_nonnull_attribute (m_fndecl, m_arg_idx);
      return warned;
--- 1217,1234 ----
  
    bool terminate_path_p () const final override { return true; }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-476: NULL Pointer Dereference.  */
      auto_diagnostic_group d;
!     ctxt.add_cwe (476);
  
      bool warned;
      if (zerop (m_arg))
!       warned = ctxt.warn ("use of NULL where non-null expected");
      else
!       warned = ctxt.warn ("use of NULL %qE where non-null expected",
! 			  m_arg);
      if (warned)
        inform_nonnull_attribute (m_fndecl, m_arg_idx);
      return warned;
*************** public:
*** 1264,1277 ****
      return OPT_Wanalyzer_use_after_free;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      /* CWE-416: Use After Free.  */
!     diagnostic_metadata m;
!     m.add_cwe (416);
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "use after %<%s%> of %qE",
! 			 m_deallocator->m_name, m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
--- 1271,1282 ----
      return OPT_Wanalyzer_use_after_free;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-416: Use After Free.  */
!     ctxt.add_cwe (416);
!     return ctxt.warn ("use after %<%s%> of %qE",
! 		      m_deallocator->m_name, m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
*************** public:
*** 1358,1374 ****
      return OPT_Wanalyzer_malloc_leak;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      /* "CWE-401: Missing Release of Memory after Effective Lifetime".  */
!     diagnostic_metadata m;
!     m.add_cwe (401);
      if (m_arg)
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "leak of %qE", m_arg);
      else
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "leak of %qs", "<unknown>");
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
--- 1363,1376 ----
      return OPT_Wanalyzer_malloc_leak;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* "CWE-401: Missing Release of Memory after Effective Lifetime".  */
!     ctxt.add_cwe (401);
      if (m_arg)
!       return ctxt.warn ("leak of %qE", m_arg);
      else
!       return ctxt.warn ("leak of %qs", "<unknown>");
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
*************** public:
*** 1432,1442 ****
      return OPT_Wanalyzer_free_of_non_heap;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      auto_diagnostic_group d;
!     diagnostic_metadata m;
!     m.add_cwe (590); /* CWE-590: Free of Memory not on the Heap.  */
      switch (get_memory_space ())
        {
        default:
--- 1434,1443 ----
      return OPT_Wanalyzer_free_of_non_heap;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      auto_diagnostic_group d;
!     ctxt.add_cwe (590); /* CWE-590: Free of Memory not on the Heap.  */
      switch (get_memory_space ())
        {
        default:
*************** public:
*** 1446,1461 ****
        case MEMSPACE_CODE:
        case MEMSPACE_GLOBALS:
        case MEMSPACE_READONLY_DATA:
! 	return warning_meta (rich_loc, m, get_controlling_option (),
! 			     "%<%s%> of %qE which points to memory"
! 			     " not on the heap",
! 			     m_funcname, m_arg);
  	break;
        case MEMSPACE_STACK:
! 	return warning_meta (rich_loc, m, get_controlling_option (),
! 			     "%<%s%> of %qE which points to memory"
! 			     " on the stack",
! 			     m_funcname, m_arg);
  	break;
        }
    }
--- 1447,1460 ----
        case MEMSPACE_CODE:
        case MEMSPACE_GLOBALS:
        case MEMSPACE_READONLY_DATA:
! 	return ctxt.warn ("%<%s%> of %qE which points to memory"
! 			  " not on the heap",
! 			  m_funcname, m_arg);
  	break;
        case MEMSPACE_STACK:
! 	return ctxt.warn ("%<%s%> of %qE which points to memory"
! 			  " on the stack",
! 			  m_funcname, m_arg);
  	break;
        }
    }
*************** public:
*** 1511,1517 ****
      return OPT_Wanalyzer_deref_before_check;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      /* Don't emit the warning if we can't show where the deref
         and the check occur.  */
--- 1510,1516 ----
      return OPT_Wanalyzer_deref_before_check;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* Don't emit the warning if we can't show where the deref
         and the check occur.  */
*************** public:
*** 1564,1569 ****
--- 1563,1583 ----
      if (linemap_location_from_macro_definition_p (line_table, check_loc))
        return false;
  
+     /* Reject warning if the check is in a loop header within a
+        macro expansion.  This rejects cases like:
+        |  deref of x;
+        |  [...snip...]
+        |  FOR_EACH(x) {
+        |    [...snip...]
+        |  }
+        where the FOR_EACH macro tests for non-nullness of x, since
+        the user is hoping to encapsulate the details of iteration
+        in the macro, and the extra check on the first iteration
+        would just be noise if we reported it.  */
+     if (loop_header_p (m_check_enode->get_point ())
+ 	&& linemap_location_from_macro_expansion_p (line_table, check_loc))
+       return false;
+ 
      /* Reject if m_deref_expr is sufficiently different from m_arg
         for cases where the dereference is spelled differently from
         the check, which is probably two different ways to get the
*************** public:
*** 1585,1594 ****
  			 m_deref_enode->get_supernode ()->m_bb))
        return false;
  
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "check of %qE for NULL after already"
! 		       " dereferencing it",
! 		       m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
--- 1599,1607 ----
  			 m_deref_enode->get_supernode ()->m_bb))
        return false;
  
!     return ctxt.warn ("check of %qE for NULL after already"
! 		      " dereferencing it",
! 		      m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
*************** public:
*** 1620,1625 ****
--- 1633,1653 ----
    }
  
  private:
+   static bool loop_header_p (const program_point &point)
+   {
+     const supernode *snode = point.get_supernode ();
+     if (!snode)
+       return false;
+     for (auto &in_edge : snode->m_preds)
+       {
+ 	if (const cfg_superedge *cfg_in_edge
+ 	      = in_edge->dyn_cast_cfg_superedge ())
+ 	  if (cfg_in_edge->back_edge_p ())
+ 	    return true;
+       }
+     return false;
+   }
+ 
    static bool sufficiently_similar_p (tree expr_a, tree expr_b)
    {
      pretty_printer *pp_a = global_dc->printer->clone ();
*************** malloc_state_machine::on_stmt (sm_contex
*** 1910,1921 ****
  	    return true;
  	  }
  
! 	if (is_named_call_p (callee_fndecl, "operator new", call, 1))
! 	  on_allocator_call (sm_ctxt, call, &m_scalar_delete);
! 	else if (is_named_call_p (callee_fndecl, "operator new []", call, 1))
! 	  on_allocator_call (sm_ctxt, call, &m_vector_delete);
! 	else if (is_named_call_p (callee_fndecl, "operator delete", call, 1)
! 		 || is_named_call_p (callee_fndecl, "operator delete", call, 2))
  	  {
  	    on_deallocator_call (sm_ctxt, node, call,
  				 &m_scalar_delete.m_deallocator, 0);
--- 1938,1957 ----
  	    return true;
  	  }
  
! 	if (!is_placement_new_p (call))
! 	  {
! 	    bool returns_nonnull = !TREE_NOTHROW (callee_fndecl)
! 				   && flag_exceptions;
! 	    if (is_named_call_p (callee_fndecl, "operator new"))
! 	      on_allocator_call (sm_ctxt, call,
! 				 &m_scalar_delete, returns_nonnull);
! 	    else if (is_named_call_p (callee_fndecl, "operator new []"))
! 	      on_allocator_call (sm_ctxt, call,
! 				 &m_vector_delete, returns_nonnull);
! 	  }
! 
! 	if (is_named_call_p (callee_fndecl, "operator delete", call, 1)
! 	    || is_named_call_p (callee_fndecl, "operator delete", call, 2))
  	  {
  	    on_deallocator_call (sm_ctxt, node, call,
  				 &m_scalar_delete.m_deallocator, 0);
*************** malloc_state_machine::on_stmt (sm_contex
*** 1960,2030 ****
  	malloc_state_machine *mutable_this
  	  = const_cast <malloc_state_machine *> (this);
  
! 	/* Handle "__attribute__((malloc(FOO)))".   */
! 	if (const deallocator_set *deallocators
  	      = mutable_this->get_or_create_custom_deallocator_set
! 		  (callee_fndecl))
  	  {
! 	    tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (callee_fndecl));
! 	    bool returns_nonnull
! 	      = lookup_attribute ("returns_nonnull", attrs);
! 	    on_allocator_call (sm_ctxt, call, deallocators, returns_nonnull);
  	  }
  
! 	/* Handle "__attribute__((nonnull))".   */
! 	{
! 	  tree fntype = TREE_TYPE (callee_fndecl);
! 	  bitmap nonnull_args = get_nonnull_args (fntype);
! 	  if (nonnull_args)
  	    {
! 	      for (unsigned i = 0; i < gimple_call_num_args (stmt); i++)
! 		{
! 		  tree arg = gimple_call_arg (stmt, i);
! 		  if (TREE_CODE (TREE_TYPE (arg)) != POINTER_TYPE)
! 		    continue;
! 		  /* If we have a nonnull-args, and either all pointers, or just
! 		     the specified pointers.  */
! 		  if (bitmap_empty_p (nonnull_args)
! 		      || bitmap_bit_p (nonnull_args, i))
! 		    {
! 		      state_t state = sm_ctxt->get_state (stmt, arg);
! 		      /* Can't use a switch as the states are non-const.  */
! 		      if (unchecked_p (state))
! 			{
! 			  tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 			  sm_ctxt->warn (node, stmt, arg,
! 					 make_unique<possible_null_arg>
! 					   (*this, diag_arg, callee_fndecl, i));
! 			  const allocation_state *astate
! 			    = as_a_allocation_state (state);
! 			  sm_ctxt->set_next_state (stmt, arg,
! 						   astate->get_nonnull ());
! 			}
! 		      else if (state == m_null)
! 			{
! 			  tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 			  sm_ctxt->warn (node, stmt, arg,
! 					 make_unique<null_arg>
! 					   (*this, diag_arg, callee_fndecl, i));
! 			  sm_ctxt->set_next_state (stmt, arg, m_stop);
! 			}
! 		      else if (state == m_start)
! 			maybe_assume_non_null (sm_ctxt, arg, stmt);
! 		    }
! 		}
! 	      BITMAP_FREE (nonnull_args);
  	    }
  	}
- 
- 	/* Check for this after nonnull, so that if we have both
- 	   then we transition to "freed", rather than "checked".  */
- 	unsigned dealloc_argno = fndecl_dealloc_argno (callee_fndecl);
- 	if (dealloc_argno != UINT_MAX)
- 	  {
- 	    const deallocator *d
- 	      = mutable_this->get_or_create_deallocator (callee_fndecl);
- 	    on_deallocator_call (sm_ctxt, node, call, d, dealloc_argno);
- 	  }
        }
  
    /* Look for pointers explicitly being compared against zero
--- 1996,2083 ----
  	malloc_state_machine *mutable_this
  	  = const_cast <malloc_state_machine *> (this);
  
! 	/* Handle interesting attributes of the callee_fndecl,
! 	   or prioritize those of the builtin that callee_fndecl is expected
! 	   to be.
! 	   Might want this to be controlled by a flag.  */
! 	{
! 	  tree fndecl = callee_fndecl;
! 	  /* If call is recognized as a builtin known_function, use that
! 	     builtin's function_decl.  */
! 	  if (const region_model *old_model = sm_ctxt->get_old_region_model ())
! 	    if (const builtin_known_function *builtin_kf
! 		= old_model->get_builtin_kf (call))
! 	      fndecl = builtin_kf->builtin_decl ();
! 
! 	  /* Handle "__attribute__((malloc(FOO)))".   */
! 	  if (const deallocator_set *deallocators
  	      = mutable_this->get_or_create_custom_deallocator_set
! 		  (fndecl))
! 	    {
! 	      tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (fndecl));
! 	      bool returns_nonnull
! 		= lookup_attribute ("returns_nonnull", attrs);
! 	      on_allocator_call (sm_ctxt, call, deallocators, returns_nonnull);
! 	    }
! 
  	  {
! 	    /* Handle "__attribute__((nonnull))".   */
! 	    tree fntype = TREE_TYPE (fndecl);
! 	    bitmap nonnull_args = get_nonnull_args (fntype);
! 	    if (nonnull_args)
! 	      {
! 		for (unsigned i = 0; i < gimple_call_num_args (stmt); i++)
! 		  {
! 		    tree arg = gimple_call_arg (stmt, i);
! 		    if (TREE_CODE (TREE_TYPE (arg)) != POINTER_TYPE)
! 		      continue;
! 		    /* If we have a nonnull-args, and either all pointers, or
! 		       just the specified pointers.  */
! 		    if (bitmap_empty_p (nonnull_args)
! 			|| bitmap_bit_p (nonnull_args, i))
! 		      {
! 			state_t state = sm_ctxt->get_state (stmt, arg);
! 			/* Can't use a switch as the states are non-const.  */
! 			/* Do use the fndecl that caused the warning so that the
! 			   misused attributes are printed and the user not
! 			   confused.  */
! 			if (unchecked_p (state))
! 			  {
! 			    tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 			    sm_ctxt->warn (node, stmt, arg,
! 					  make_unique<possible_null_arg>
! 					    (*this, diag_arg, fndecl, i));
! 			    const allocation_state *astate
! 			      = as_a_allocation_state (state);
! 			    sm_ctxt->set_next_state (stmt, arg,
! 						    astate->get_nonnull ());
! 			  }
! 			else if (state == m_null)
! 			  {
! 			    tree diag_arg = sm_ctxt->get_diagnostic_tree (arg);
! 			    sm_ctxt->warn (node, stmt, arg,
! 					  make_unique<null_arg>
! 					    (*this, diag_arg, fndecl, i));
! 			    sm_ctxt->set_next_state (stmt, arg, m_stop);
! 			  }
! 			else if (state == m_start)
! 			  maybe_assume_non_null (sm_ctxt, arg, stmt);
! 		      }
! 		  }
! 		BITMAP_FREE (nonnull_args);
! 	      }
  	  }
  
! 	  /* Check for this after nonnull, so that if we have both
! 	     then we transition to "freed", rather than "checked".  */
! 	  unsigned dealloc_argno = fndecl_dealloc_argno (fndecl);
! 	  if (dealloc_argno != UINT_MAX)
  	    {
! 	      const deallocator *d
! 		= mutable_this->get_or_create_deallocator (fndecl);
! 	      on_deallocator_call (sm_ctxt, node, call, d, dealloc_argno);
  	    }
  	}
        }
  
    /* Look for pointers explicitly being compared against zero
*************** maybe_complain_about_deref_before_check
*** 2147,2152 ****
--- 2200,2214 ----
    if (checked_in_frame->get_index () > assumed_nonnull_in_frame->get_index ())
      return;
  
+   /* Don't complain if STMT was inlined from another function, to avoid
+      similar false positives involving shared helper functions.  */
+   if (stmt->location)
+     {
+       inlining_info info (stmt->location);
+       if (info.get_extra_frames () > 0)
+ 	return;
+     }
+ 
    tree diag_ptr = sm_ctxt->get_diagnostic_tree (ptr);
    if (diag_ptr)
      sm_ctxt->warn
*************** on_realloc_with_move (region_model *mode
*** 2504,2509 ****
--- 2566,2582 ----
  		   NULL, ext_state);
  }
  
+ /*  Hook for get_or_create_region_for_heap_alloc for the case when we want
+    ptr_sval to mark a newly created region as assumed non null on malloc SM.  */
+ void
+ malloc_state_machine::transition_ptr_sval_non_null (region_model *model,
+     sm_state_map *smap,
+     const svalue *new_ptr_sval,
+     const extrinsic_state &ext_state) const
+ {
+   smap->set_state (model, new_ptr_sval, m_free.m_nonnull, NULL, ext_state);
+ }
+ 
  } // anonymous namespace
  
  /* Internal interface to this file. */
*************** region_model::on_realloc_with_move (cons
*** 2548,2553 ****
--- 2621,2652 ----
  				  *ext_state);
  }
  
+ /* Moves ptr_sval from start to assumed non-null, for use by
+    region_model::get_or_create_region_for_heap_alloc.  */
+ void
+ region_model::transition_ptr_sval_non_null (region_model_context *ctxt,
+ const svalue *ptr_sval)
+ {
+   if (!ctxt)
+     return;
+   const extrinsic_state *ext_state = ctxt->get_ext_state ();
+   if (!ext_state)
+     return;
+ 
+   sm_state_map *smap;
+   const state_machine *sm;
+   unsigned sm_idx;
+   if (!ctxt->get_malloc_map (&smap, &sm, &sm_idx))
+     return;
+ 
+   gcc_assert (smap);
+   gcc_assert (sm);
+ 
+   const malloc_state_machine &malloc_sm = (const malloc_state_machine &)*sm;
+ 
+   malloc_sm.transition_ptr_sval_non_null (this, smap, ptr_sval, *ext_state);
+ }
+ 
  } // namespace ana
  
  #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-malloc.dot gcc-14.1.0/gcc/analyzer/sm-malloc.dot
*** gcc-13.2.0/gcc/analyzer/sm-malloc.dot	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-malloc.dot	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* An overview of the state machine from sm-malloc.cc.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* An overview of the state machine from sm-malloc.cc.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-pattern-test.cc gcc-14.1.0/gcc/analyzer/sm-pattern-test.cc
*** gcc-13.2.0/gcc/analyzer/sm-pattern-test.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-pattern-test.cc	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* A state machine for use in DejaGnu tests, to check that
     pattern-matching works as expected.
  
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,7 ----
  /* A state machine for use in DejaGnu tests, to check that
     pattern-matching works as expected.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 31,37 ****
  #include "gimple.h"
  #include "tree-pretty-print.h"
  #include "diagnostic-path.h"
- #include "diagnostic-metadata.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
--- 31,36 ----
*************** public:
*** 92,102 ****
      return 0;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "pattern match on %<%E %s %E%>",
! 		       m_lhs, op_symbol_code (m_op), m_rhs);
    }
  
  private:
--- 91,100 ----
      return 0;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     return ctxt.warn ("pattern match on %<%E %s %E%>",
! 		      m_lhs, op_symbol_code (m_op), m_rhs);
    }
  
  private:
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-sensitive.cc gcc-14.1.0/gcc/analyzer/sm-sensitive.cc
*** gcc-13.2.0/gcc/analyzer/sm-sensitive.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-sensitive.cc	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* An experimental state machine, for tracking exposure of sensitive
     data (e.g. through logging).
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,6 ----
  /* An experimental state machine, for tracking exposure of sensitive
     data (e.g. through logging).
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 30,36 ****
  #include "gimple.h"
  #include "options.h"
  #include "diagnostic-path.h"
- #include "diagnostic-metadata.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
--- 30,35 ----
*************** public:
*** 95,108 ****
      return OPT_Wanalyzer_exposure_through_output_file;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* CWE-532: Information Exposure Through Log Files */
!     m.add_cwe (532);
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "sensitive value %qE written to output file",
! 			 m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
--- 94,105 ----
      return OPT_Wanalyzer_exposure_through_output_file;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-532: Information Exposure Through Log Files */
!     ctxt.add_cwe (532);
!     return ctxt.warn ("sensitive value %qE written to output file",
! 		      m_arg);
    }
  
    label_text describe_state_change (const evdesc::state_change &change)
*************** private:
*** 164,173 ****
  /* sensitive_state_machine's ctor.  */
  
  sensitive_state_machine::sensitive_state_machine (logger *logger)
! : state_machine ("sensitive", logger)
  {
-   m_sensitive = add_state ("sensitive");
-   m_stop = add_state ("stop");
  }
  
  /* Warn about an exposure at NODE and STMT if ARG is in the "sensitive"
--- 161,170 ----
  /* sensitive_state_machine's ctor.  */
  
  sensitive_state_machine::sensitive_state_machine (logger *logger)
! : state_machine ("sensitive", logger),
!   m_sensitive (add_state ("sensitive")),
!   m_stop (add_state ("stop"))
  {
  }
  
  /* Warn about an exposure at NODE and STMT if ARG is in the "sensitive"
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-signal.cc gcc-14.1.0/gcc/analyzer/sm-signal.cc
*** gcc-13.2.0/gcc/analyzer/sm-signal.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-signal.cc	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* An experimental state machine, for tracking bad calls from within
     signal handlers.
  
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,7 ----
  /* An experimental state machine, for tracking bad calls from within
     signal handlers.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 32,38 ****
  #include "options.h"
  #include "bitmap.h"
  #include "diagnostic-path.h"
- #include "diagnostic-metadata.h"
  #include "analyzer/analyzer.h"
  #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
--- 32,37 ----
*************** public:
*** 114,128 ****
      return OPT_Wanalyzer_unsafe_call_within_signal_handler;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
      auto_diagnostic_group d;
-     diagnostic_metadata m;
      /* CWE-479: Signal Handler Use of a Non-reentrant Function.  */
!     m.add_cwe (479);
!     if (warning_meta (rich_loc, m, get_controlling_option (),
! 		      "call to %qD from within signal handler",
! 		      m_unsafe_fndecl))
        {
  	/* If we know a possible alternative function, add a note
  	   suggesting the replacement.  */
--- 113,125 ----
      return OPT_Wanalyzer_unsafe_call_within_signal_handler;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      auto_diagnostic_group d;
      /* CWE-479: Signal Handler Use of a Non-reentrant Function.  */
!     ctxt.add_cwe (479);
!     if (ctxt.warn ("call to %qD from within signal handler",
! 		   m_unsafe_fndecl))
        {
  	/* If we know a possible alternative function, add a note
  	   suggesting the replacement.  */
*************** public:
*** 149,155 ****
      if (change.is_global_p ()
  	&& change.m_new_state == m_sm.m_in_signal_handler)
        {
! 	function *handler = change.m_event.get_dest_function ();
  	return change.formatted_print ("registering %qD as signal handler",
  				       handler->decl);
        }
--- 146,153 ----
      if (change.is_global_p ()
  	&& change.m_new_state == m_sm.m_in_signal_handler)
        {
! 	const function *handler = change.m_event.get_dest_function ();
! 	gcc_assert (handler);
  	return change.formatted_print ("registering %qD as signal handler",
  				       handler->decl);
        }
*************** private:
*** 185,194 ****
  /* signal_state_machine's ctor.  */
  
  signal_state_machine::signal_state_machine (logger *logger)
! : state_machine ("signal", logger)
  {
-   m_in_signal_handler = add_state ("in_signal_handler");
-   m_stop = add_state ("stop");
  }
  
  /* Update MODEL for edges that simulate HANDLER_FUN being called as
--- 183,192 ----
  /* signal_state_machine's ctor.  */
  
  signal_state_machine::signal_state_machine (logger *logger)
! : state_machine ("signal", logger),
!   m_in_signal_handler (add_state ("in_signal_handler")),
!   m_stop (add_state ("stop"))
  {
  }
  
  /* Update MODEL for edges that simulate HANDLER_FUN being called as
*************** signal_state_machine::signal_state_machi
*** 196,202 ****
  
  static void
  update_model_for_signal_handler (region_model *model,
! 				 function *handler_fun)
  {
    gcc_assert (model);
    /* Purge all state within MODEL.  */
--- 194,200 ----
  
  static void
  update_model_for_signal_handler (region_model *model,
! 				 const function &handler_fun)
  {
    gcc_assert (model);
    /* Purge all state within MODEL.  */
*************** public:
*** 225,231 ****
  		     region_model_context *) const final override
    {
      gcc_assert (eedge);
!     update_model_for_signal_handler (model, eedge->m_dest->get_function ());
      return true;
    }
  
--- 223,231 ----
  		     region_model_context *) const final override
    {
      gcc_assert (eedge);
!     gcc_assert (eedge->m_dest->get_function ());
!     update_model_for_signal_handler (model,
! 				     *eedge->m_dest->get_function ());
      return true;
    }
  
*************** public:
*** 266,276 ****
      program_point entering_handler
        = program_point::from_function_entry (*ext_state.get_model_manager (),
  					    eg->get_supergraph (),
! 					    handler_fun);
  
      program_state state_entering_handler (ext_state);
      update_model_for_signal_handler (state_entering_handler.m_region_model,
! 				     handler_fun);
      state_entering_handler.m_checker_states[sm_idx]->set_global_state
        (m_sm.m_in_signal_handler);
  
--- 266,276 ----
      program_point entering_handler
        = program_point::from_function_entry (*ext_state.get_model_manager (),
  					    eg->get_supergraph (),
! 					    *handler_fun);
  
      program_state state_entering_handler (ext_state);
      update_model_for_signal_handler (state_entering_handler.m_region_model,
! 				     *handler_fun);
      state_entering_handler.m_checker_states[sm_idx]->set_global_state
        (m_sm.m_in_signal_handler);
  
*************** public:
*** 279,284 ****
--- 279,285 ----
  						       src_enode);
      if (dst_enode)
        eg->add_edge (src_enode, dst_enode, NULL, /*state_change (),*/
+ 		    true, /* assume does work  */
  		    make_unique<signal_delivery_edge_info_t> ());
    }
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm-taint.cc gcc-14.1.0/gcc/analyzer/sm-taint.cc
*** gcc-13.2.0/gcc/analyzer/sm-taint.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm-taint.cc	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
! /* An experimental state machine, for tracking "taint": unsanitized uses
     of data potentially under an attacker's control.
  
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,7 ----
! /* A state machine for tracking "taint": unsanitized uses
     of data potentially under an attacker's control.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 31,37 ****
  #include "gimple.h"
  #include "options.h"
  #include "diagnostic-path.h"
- #include "diagnostic-metadata.h"
  #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "gimple-iterator.h"
--- 31,36 ----
*************** along with GCC; see the file COPYING3.
*** 41,46 ****
--- 40,46 ----
  #include "digraph.h"
  #include "stringpool.h"
  #include "attribs.h"
+ #include "fold-const.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
*************** along with GCC; see the file COPYING3.
*** 50,55 ****
--- 50,56 ----
  #include "analyzer/program-state.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/constraint-manager.h"
+ #include "diagnostic-format-sarif.h"
  
  #if ENABLE_ANALYZER
  
*************** enum bounds
*** 71,76 ****
--- 72,93 ----
    BOUNDS_LOWER
  };
  
+ static const char *
+ bounds_to_str (enum bounds b)
+ {
+   switch (b)
+     {
+     default:
+       gcc_unreachable ();
+     case BOUNDS_NONE:
+       return "BOUNDS_NONE";
+     case BOUNDS_UPPER:
+       return "BOUNDS_UPPER";
+     case BOUNDS_LOWER:
+       return "BOUNDS_LOWER";
+     }
+ }
+ 
  /* An experimental state machine, for tracking "taint": unsanitized uses
     of data potentially under an attacker's control.  */
  
*************** public:
*** 86,91 ****
--- 103,114 ----
  				   const extrinsic_state &ext_state)
      const final override;
  
+   bool
+   has_alt_get_inherited_state_p () const final override
+   {
+     return true;
+   }
+ 
    bool on_stmt (sm_context *sm_ctxt,
  		const supernode *node,
  		const gimple *stmt) const final override;
*************** public:
*** 187,192 ****
--- 210,226 ----
      return diagnostic_event::meaning ();
    }
  
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const override
+   {
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/taint_diagnostic/"
+     props.set (PROPERTY_PREFIX "arg", tree_to_json (m_arg));
+     props.set_string (PROPERTY_PREFIX "has_bounds",
+ 		      bounds_to_str (m_has_bounds));
+ #undef PROPERTY_PREFIX
+   }
+ 
  protected:
    const taint_state_machine &m_sm;
    tree m_arg;
*************** public:
*** 211,243 ****
      return OPT_Wanalyzer_tainted_array_index;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* CWE-129: "Improper Validation of Array Index".  */
!     m.add_cwe (129);
      if (m_arg)
        switch (m_has_bounds)
  	{
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE"
! 			       " in array lookup without bounds checking",
! 			       m_arg);
  	  break;
  	case BOUNDS_UPPER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE"
! 			       " in array lookup without checking for negative",
! 			       m_arg);
  	  break;
  	case BOUNDS_LOWER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE"
! 			       " in array lookup without upper-bounds checking",
! 			       m_arg);
  	  break;
  	}
      else
--- 245,273 ----
      return OPT_Wanalyzer_tainted_array_index;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-129: "Improper Validation of Array Index".  */
!     ctxt.add_cwe (129);
      if (m_arg)
        switch (m_has_bounds)
  	{
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ctxt.warn ("use of attacker-controlled value %qE"
! 			    " in array lookup without bounds checking",
! 			    m_arg);
  	  break;
  	case BOUNDS_UPPER:
! 	  return ctxt.warn ("use of attacker-controlled value %qE"
! 			    " in array lookup without checking for negative",
! 			    m_arg);
  	  break;
  	case BOUNDS_LOWER:
! 	  return ctxt.warn ("use of attacker-controlled value %qE"
! 			    " in array lookup without upper-bounds checking",
! 			    m_arg);
  	  break;
  	}
      else
*************** public:
*** 246,266 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value"
! 			       " in array lookup without bounds checking");
  	  break;
  	case BOUNDS_UPPER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value"
! 			       " in array lookup without checking for"
! 			       " negative");
  	  break;
  	case BOUNDS_LOWER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value"
! 			       " in array lookup without upper-bounds"
! 			       " checking");
  	  break;
  	}
    }
--- 276,293 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ctxt.warn ("use of attacker-controlled value"
! 			    " in array lookup without bounds checking");
  	  break;
  	case BOUNDS_UPPER:
! 	  return ctxt.warn ("use of attacker-controlled value"
! 			    " in array lookup without checking for"
! 			    " negative");
  	  break;
  	case BOUNDS_LOWER:
! 	  return ctxt.warn ("use of attacker-controlled value"
! 			    " in array lookup without upper-bounds"
! 			    " checking");
  	  break;
  	}
    }
*************** class tainted_offset : public taint_diag
*** 316,323 ****
  {
  public:
    tainted_offset (const taint_state_machine &sm, tree arg,
! 		       enum bounds has_bounds)
!   : taint_diagnostic (sm, arg, has_bounds)
    {}
  
    const char *get_kind () const final override { return "tainted_offset"; }
--- 343,352 ----
  {
  public:
    tainted_offset (const taint_state_machine &sm, tree arg,
! 		  enum bounds has_bounds,
! 		  const svalue *offset)
!   : taint_diagnostic (sm, arg, has_bounds),
!     m_offset (offset)
    {}
  
    const char *get_kind () const final override { return "tainted_offset"; }
*************** public:
*** 327,359 ****
      return OPT_Wanalyzer_tainted_offset;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* CWE-823: "Use of Out-of-range Pointer Offset".  */
!     m.add_cwe (823);
      if (m_arg)
        switch (m_has_bounds)
  	{
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE as offset"
! 			       " without bounds checking",
! 			       m_arg);
  	  break;
  	case BOUNDS_UPPER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE as offset"
! 			       " without lower-bounds checking",
! 			       m_arg);
  	  break;
  	case BOUNDS_LOWER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE as offset"
! 			       " without upper-bounds checking",
! 			       m_arg);
  	  break;
  	}
      else
--- 356,384 ----
      return OPT_Wanalyzer_tainted_offset;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-823: "Use of Out-of-range Pointer Offset".  */
!     ctxt.add_cwe (823);
      if (m_arg)
        switch (m_has_bounds)
  	{
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ctxt.warn ("use of attacker-controlled value %qE as offset"
! 			    " without bounds checking",
! 			    m_arg);
  	  break;
  	case BOUNDS_UPPER:
! 	  return ctxt.warn ("use of attacker-controlled value %qE as offset"
! 			    " without lower-bounds checking",
! 			    m_arg);
  	  break;
  	case BOUNDS_LOWER:
! 	  return ctxt.warn ("use of attacker-controlled value %qE as offset"
! 			    " without upper-bounds checking",
! 			    m_arg);
  	  break;
  	}
      else
*************** public:
*** 362,380 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value as offset"
! 			       " without bounds checking");
  	  break;
  	case BOUNDS_UPPER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value as offset"
! 			       " without lower-bounds checking");
  	  break;
  	case BOUNDS_LOWER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value as offset"
! 			       " without upper-bounds checking");
  	  break;
  	}
    }
--- 387,402 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ctxt.warn ("use of attacker-controlled value as offset"
! 			    " without bounds checking");
  	  break;
  	case BOUNDS_UPPER:
! 	  return ctxt.warn ("use of attacker-controlled value as offset"
! 			    " without lower-bounds checking");
  	  break;
  	case BOUNDS_LOWER:
! 	  return ctxt.warn ("use of attacker-controlled value as offset"
! 			    " without upper-bounds checking");
  	  break;
  	}
    }
*************** public:
*** 417,422 ****
--- 439,457 ----
  				     " checking");
  	}
    }
+ 
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const final override
+   {
+     taint_diagnostic::maybe_add_sarif_properties (result_obj);
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/tainted_offset/"
+     props.set (PROPERTY_PREFIX "offset", m_offset->to_json ());
+ #undef PROPERTY_PREFIX
+   }
+ 
+ private:
+   const svalue *m_offset;
  };
  
  /* Concrete taint_diagnostic subclass for reporting attacker-controlled
*************** public:
*** 437,469 ****
      return OPT_Wanalyzer_tainted_size;
    }
  
!   bool emit (rich_location *rich_loc) override
    {
      /* "CWE-129: Improper Validation of Array Index".  */
!     diagnostic_metadata m;
!     m.add_cwe (129);
      if (m_arg)
        switch (m_has_bounds)
  	{
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE as size"
! 			       " without bounds checking",
! 			       m_arg);
  	  break;
  	case BOUNDS_UPPER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE as size"
! 			       " without lower-bounds checking",
! 			       m_arg);
  	  break;
  	case BOUNDS_LOWER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value %qE as size"
! 			       " without upper-bounds checking",
! 			       m_arg);
  	  break;
  	}
      else
--- 472,500 ----
      return OPT_Wanalyzer_tainted_size;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) override
    {
      /* "CWE-129: Improper Validation of Array Index".  */
!     ctxt.add_cwe (129);
      if (m_arg)
        switch (m_has_bounds)
  	{
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ctxt.warn ("use of attacker-controlled value %qE as size"
! 			    " without bounds checking",
! 			    m_arg);
  	  break;
  	case BOUNDS_UPPER:
! 	  return ctxt.warn ("use of attacker-controlled value %qE as size"
! 			    " without lower-bounds checking",
! 			    m_arg);
  	  break;
  	case BOUNDS_LOWER:
! 	  return ctxt.warn ("use of attacker-controlled value %qE as size"
! 			    " without upper-bounds checking",
! 			    m_arg);
  	  break;
  	}
      else
*************** public:
*** 472,490 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value as size"
! 			       " without bounds checking");
  	  break;
  	case BOUNDS_UPPER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value as size"
! 			       " without lower-bounds checking");
  	  break;
  	case BOUNDS_LOWER:
! 	  return warning_meta (rich_loc, m, get_controlling_option (),
! 			       "use of attacker-controlled value as size"
! 			       " without upper-bounds checking");
  	  break;
  	}
    }
--- 503,518 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  return ctxt.warn ("use of attacker-controlled value as size"
! 			    " without bounds checking");
  	  break;
  	case BOUNDS_UPPER:
! 	  return ctxt.warn ("use of attacker-controlled value as size"
! 			    " without lower-bounds checking");
  	  break;
  	case BOUNDS_LOWER:
! 	  return ctxt.warn ("use of attacker-controlled value as size"
! 			    " without upper-bounds checking");
  	  break;
  	}
    }
*************** public:
*** 547,555 ****
      return "tainted_access_attrib_size";
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     bool warned = tainted_size::emit (rich_loc);
      if (warned)
        {
  	inform (DECL_SOURCE_LOCATION (m_callee_fndecl),
--- 575,583 ----
      return "tainted_access_attrib_size";
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     bool warned = tainted_size::emit (ctxt);
      if (warned)
        {
  	inform (DECL_SOURCE_LOCATION (m_callee_fndecl),
*************** public:
*** 583,602 ****
      return OPT_Wanalyzer_tainted_divisor;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* CWE-369: "Divide By Zero".  */
!     m.add_cwe (369);
      if (m_arg)
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "use of attacker-controlled value %qE as divisor"
! 			   " without checking for zero",
! 			   m_arg);
      else
!       return warning_meta (rich_loc, m, get_controlling_option (),
! 			   "use of attacker-controlled value as divisor"
! 			   " without checking for zero");
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
--- 611,627 ----
      return OPT_Wanalyzer_tainted_divisor;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-369: "Divide By Zero".  */
!     ctxt.add_cwe (369);
      if (m_arg)
!       return ctxt.warn ("use of attacker-controlled value %qE as divisor"
! 			" without checking for zero",
! 			m_arg);
      else
!       return ctxt.warn ("use of attacker-controlled value as divisor"
! 			" without checking for zero");
    }
  
    label_text describe_final_event (const evdesc::final_event &ev) final override
*************** class tainted_allocation_size : public t
*** 620,627 ****
--- 645,654 ----
  {
  public:
    tainted_allocation_size (const taint_state_machine &sm, tree arg,
+ 			   const svalue *size_in_bytes,
  			   enum bounds has_bounds, enum memory_space mem_space)
    : taint_diagnostic (sm, arg, has_bounds),
+     m_size_in_bytes (size_in_bytes),
      m_mem_space (mem_space)
    {
    }
*************** public:
*** 645,655 ****
      return OPT_Wanalyzer_tainted_allocation_size;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* "CWE-789: Memory Allocation with Excessive Size Value".  */
!     m.add_cwe (789);
  
      bool warned;
      if (m_arg)
--- 672,681 ----
      return OPT_Wanalyzer_tainted_allocation_size;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* "CWE-789: Memory Allocation with Excessive Size Value".  */
!     ctxt.add_cwe (789);
  
      bool warned;
      if (m_arg)
*************** public:
*** 658,681 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  warned = warning_meta (rich_loc, m, get_controlling_option (),
! 				 "use of attacker-controlled value %qE as"
! 				 " allocation size without bounds checking",
! 				 m_arg);
  	  break;
  	case BOUNDS_UPPER:
! 	  warned = warning_meta (rich_loc, m, get_controlling_option (),
! 				 "use of attacker-controlled value %qE as"
! 				 " allocation size without"
! 				 " lower-bounds checking",
! 				 m_arg);
  	  break;
  	case BOUNDS_LOWER:
! 	  warned = warning_meta (rich_loc, m, get_controlling_option (),
! 				 "use of attacker-controlled value %qE as"
! 				 " allocation size without"
! 				 " upper-bounds checking",
! 				 m_arg);
  	  break;
  	}
      else
--- 684,704 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  warned = ctxt.warn ("use of attacker-controlled value %qE as"
! 			      " allocation size without bounds checking",
! 			      m_arg);
  	  break;
  	case BOUNDS_UPPER:
! 	  warned = ctxt.warn ("use of attacker-controlled value %qE as"
! 			      " allocation size without"
! 			      " lower-bounds checking",
! 			      m_arg);
  	  break;
  	case BOUNDS_LOWER:
! 	  warned = ctxt.warn ("use of attacker-controlled value %qE as"
! 			      " allocation size without"
! 			      " upper-bounds checking",
! 			      m_arg);
  	  break;
  	}
      else
*************** public:
*** 684,710 ****
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  warned = warning_meta (rich_loc, m, get_controlling_option (),
! 				 "use of attacker-controlled value as"
! 				 " allocation size without bounds"
! 				 " checking");
  	  break;
  	case BOUNDS_UPPER:
! 	  warned = warning_meta (rich_loc, m, get_controlling_option (),
! 				 "use of attacker-controlled value as"
! 				 " allocation size without"
! 				 " lower-bounds checking");
  	  break;
  	case BOUNDS_LOWER:
! 	  warned = warning_meta (rich_loc, m, get_controlling_option (),
! 				 "use of attacker-controlled value as"
! 				 " allocation size without"
! 				 " upper-bounds checking");
  	  break;
  	}
      if (warned)
        {
! 	location_t loc = rich_loc->get_loc ();
  	switch (m_mem_space)
  	  {
  	  default:
--- 707,730 ----
  	default:
  	  gcc_unreachable ();
  	case BOUNDS_NONE:
! 	  warned = ctxt.warn ("use of attacker-controlled value as"
! 			      " allocation size without bounds"
! 			      " checking");
  	  break;
  	case BOUNDS_UPPER:
! 	  warned = ctxt.warn ("use of attacker-controlled value as"
! 			      " allocation size without"
! 			      " lower-bounds checking");
  	  break;
  	case BOUNDS_LOWER:
! 	  warned = ctxt.warn ("use of attacker-controlled value as"
! 			      " allocation size without"
! 			      " upper-bounds checking");
  	  break;
  	}
      if (warned)
        {
! 	const location_t loc = ctxt.get_location ();
  	switch (m_mem_space)
  	  {
  	  default:
*************** public:
*** 763,769 ****
--- 783,800 ----
  	}
    }
  
+   void maybe_add_sarif_properties (sarif_object &result_obj)
+     const final override
+   {
+     taint_diagnostic::maybe_add_sarif_properties (result_obj);
+     sarif_property_bag &props = result_obj.get_or_create_properties ();
+ #define PROPERTY_PREFIX "gcc/analyzer/tainted_allocation_size/"
+     props.set (PROPERTY_PREFIX "size_in_bytes", m_size_in_bytes->to_json ());
+ #undef PROPERTY_PREFIX
+   }
+ 
  private:
+   const svalue *m_size_in_bytes;
    enum memory_space m_mem_space;
  };
  
*************** public:
*** 800,814 ****
      return OPT_Wanalyzer_tainted_assertion;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     diagnostic_metadata m;
      /* "CWE-617: Reachable Assertion".  */
!     m.add_cwe (617);
  
!     return warning_meta (rich_loc, m, get_controlling_option (),
! 			 "use of attacked-controlled value in"
! 			 " condition for assertion");
    }
  
    location_t fixup_location (location_t loc,
--- 831,843 ----
      return OPT_Wanalyzer_tainted_assertion;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* "CWE-617: Reachable Assertion".  */
!     ctxt.add_cwe (617);
  
!     return ctxt.warn ("use of attacked-controlled value in"
! 		      " condition for assertion");
    }
  
    location_t fixup_location (location_t loc,
*************** private:
*** 864,876 ****
  /* taint_state_machine's ctor.  */
  
  taint_state_machine::taint_state_machine (logger *logger)
! : state_machine ("taint", logger)
  {
-   m_tainted = add_state ("tainted");
-   m_has_lb = add_state ("has_lb");
-   m_has_ub = add_state ("has_ub");
-   m_stop = add_state ("stop");
-   m_tainted_control_flow = add_state ("tainted-control-flow");
  }
  
  state_machine::state_t
--- 893,905 ----
  /* taint_state_machine's ctor.  */
  
  taint_state_machine::taint_state_machine (logger *logger)
! : state_machine ("taint", logger),
!   m_tainted (add_state ("tainted")),
!   m_has_lb (add_state ("has_lb")),
!   m_has_ub (add_state ("has_ub")),
!   m_stop (add_state ("stop")),
!   m_tainted_control_flow (add_state ("tainted-control-flow"))
  {
  }
  
  state_machine::state_t
*************** taint_state_machine::alt_get_inherited_s
*** 925,931 ****
  	  case MULT_EXPR:
  	  case POINTER_PLUS_EXPR:
  	  case TRUNC_DIV_EXPR:
- 	  case TRUNC_MOD_EXPR:
  	    {
  	      state_t arg0_state = map.get_state (arg0, ext_state);
  	      state_t arg1_state = map.get_state (arg1, ext_state);
--- 954,959 ----
*************** taint_state_machine::alt_get_inherited_s
*** 933,938 ****
--- 961,974 ----
  	    }
  	    break;
  
+ 	  case TRUNC_MOD_EXPR:
+ 	    {
+ 	      /* The left-hand side of X % Y can be sanitized by
+ 		 the operation.  */
+ 	      return map.get_state (arg1, ext_state);
+ 	    }
+ 	    break;
+ 
  	  case BIT_AND_EXPR:
  	  case RSHIFT_EXPR:
  	    return NULL;
*************** taint_state_machine::on_condition (sm_co
*** 1072,1077 ****
--- 1108,1135 ----
    if (stmt == NULL)
      return;
  
+   if (lhs->get_kind () == SK_UNKNOWN
+       || rhs->get_kind () == SK_UNKNOWN)
+     {
+       /* If we have a comparison against UNKNOWN, then
+ 	 we've presumably hit the svalue complexity limit,
+ 	 and we don't know what is being sanitized.
+ 	 Give up on any taint already found on this execution path.  */
+       // TODO: warn about this
+       if (get_logger ())
+ 	get_logger ()->log ("comparison against UNKNOWN; removing all taint");
+       sm_ctxt->clear_all_per_svalue_state ();
+       return;
+     }
+ 
+   /* Strip away casts before considering LHS and RHS, to increase the
+      chance of detecting places where sanitization of a value may have
+      happened.  */
+   if (const svalue *inner = lhs->maybe_undo_cast ())
+     lhs = inner;
+   if (const svalue *inner = rhs->maybe_undo_cast ())
+     rhs = inner;
+ 
    // TODO
    switch (op)
      {
*************** taint_state_machine::on_bounded_ranges (
*** 1211,1216 ****
--- 1269,1277 ----
  bool
  taint_state_machine::can_purge_p (state_t s ATTRIBUTE_UNUSED) const
  {
+   if (s == m_has_lb || s == m_has_ub)
+     return false;
+ 
    return true;
  }
  
*************** taint_state_machine::check_for_tainted_d
*** 1344,1349 ****
--- 1405,1416 ----
      return;
  
    tree divisor_expr = gimple_assign_rhs2 (assign);;
+ 
+   /* Until we track conditions on floating point values, we can't check to
+      see if they've been checked against zero.  */
+   if (!INTEGRAL_TYPE_P (TREE_TYPE (divisor_expr)))
+     return;
+ 
    const svalue *divisor_sval = old_model->get_rvalue (divisor_expr, NULL);
  
    state_t state = sm_ctxt->get_state (assign, divisor_sval);
*************** make_taint_state_machine (logger *logger
*** 1376,1381 ****
--- 1443,1546 ----
    return new taint_state_machine (logger);
  }
  
+ /* A closed concrete range.  */
+ 
+ class concrete_range
+ {
+ public:
+   /* Return true iff THIS is fully within OTHER
+      i.e.
+      - m_min must be >= OTHER.m_min
+      - m_max must be <= OTHER.m_max.  */
+   bool within_p (const concrete_range &other) const
+   {
+     if (compare_constants (m_min, GE_EXPR, other.m_min).is_true ())
+       if (compare_constants (m_max, LE_EXPR, other.m_max).is_true ())
+ 	return true;
+     return false;
+   }
+ 
+   tree m_min;
+   tree m_max;
+ };
+ 
+ /* Attempt to get a closed concrete range for SVAL based on types.
+    If found, write to *OUT and return true.
+    Otherwise return false.  */
+ 
+ static bool
+ get_possible_range (const svalue *sval, concrete_range *out)
+ {
+   if (const svalue *inner = sval->maybe_undo_cast ())
+     {
+       concrete_range inner_range;
+       if (!get_possible_range (inner, &inner_range))
+ 	return false;
+ 
+       if (sval->get_type ()
+ 	  && inner->get_type ()
+ 	  && INTEGRAL_TYPE_P (sval->get_type ())
+ 	  && INTEGRAL_TYPE_P (inner->get_type ())
+ 	  && TYPE_UNSIGNED (inner->get_type ())
+ 	  && (TYPE_PRECISION (sval->get_type ())
+ 	      > TYPE_PRECISION (inner->get_type ())))
+ 	{
+ 	  /* We have a cast from an unsigned type to a wider integral type.
+ 	     Assuming this is zero-extension, we can inherit the range from
+ 	     the inner type.  */
+ 	  enum tree_code op = ((const unaryop_svalue *)sval)->get_op ();
+ 	  out->m_min = fold_unary (op, sval->get_type (), inner_range.m_min);
+ 	  out->m_max = fold_unary (op, sval->get_type (), inner_range.m_max);
+ 	  return true;
+ 	}
+     }
+ 
+   if (sval->get_type ()
+       && INTEGRAL_TYPE_P (sval->get_type ()))
+     {
+       out->m_min = TYPE_MIN_VALUE (sval->get_type ());
+       out->m_max = TYPE_MAX_VALUE (sval->get_type ());
+       return true;
+     }
+ 
+   return false;
+ }
+ 
+ /* Determine if it's possible for tainted array access ELEMENT_REG to
+    actually be a problem.
+ 
+    Check here for index being from e.g. unsigned char when the array
+    contains >= 255 elements.
+ 
+    Return true if out-of-bounds is possible, false if it's impossible
+    (for suppressing false positives).  */
+ 
+ static bool
+ index_can_be_out_of_bounds_p (const element_region *element_reg)
+ {
+   const svalue *index = element_reg->get_index ();
+   const region *array_reg = element_reg->get_parent_region ();
+ 
+   if (array_reg->get_type ()
+       && TREE_CODE (array_reg->get_type ()) == ARRAY_TYPE
+       && TYPE_DOMAIN (array_reg->get_type ())
+       && INTEGRAL_TYPE_P (TYPE_DOMAIN (array_reg->get_type ())))
+     {
+       concrete_range valid_index_range;
+       valid_index_range.m_min
+ 	= TYPE_MIN_VALUE (TYPE_DOMAIN (array_reg->get_type ()));
+       valid_index_range.m_max
+ 	= TYPE_MAX_VALUE (TYPE_DOMAIN (array_reg->get_type ()));
+ 
+       concrete_range possible_index_range;
+       if (get_possible_range (index, &possible_index_range))
+ 	if (possible_index_range.within_p (valid_index_range))
+ 	  return false;
+     }
+ 
+   return true;
+ }
+ 
  /* Complain to CTXT if accessing REG leads could lead to arbitrary
     memory access under an attacker's control (due to taint).  */
  
*************** region_model::check_region_for_taint (co
*** 1422,1431 ****
  	    gcc_assert (state);
  	    enum bounds b;
  	    if (taint_sm.get_taint (state, index->get_type (), &b))
! 	    {
! 	      tree arg = get_representative_tree (index);
! 	      ctxt->warn (make_unique<tainted_array_index> (taint_sm, arg, b));
! 	    }
  	  }
  	  break;
  
--- 1587,1603 ----
  	    gcc_assert (state);
  	    enum bounds b;
  	    if (taint_sm.get_taint (state, index->get_type (), &b))
! 	      {
! 		if (index_can_be_out_of_bounds_p (element_reg))
! 		  {
! 		    tree arg = get_representative_tree (index);
! 		    ctxt->warn (make_unique<tainted_array_index> (taint_sm,
! 								  arg, b));
! 		  }
! 		else if (ctxt->get_logger ())
! 		  ctxt->get_logger ()->log ("rejecting tainted_array_index as"
! 					    " out of bounds is not possible");
! 	      }
  	  }
  	  break;
  
*************** region_model::check_region_for_taint (co
*** 1446,1452 ****
  	    if (taint_sm.get_taint (state, effective_type, &b))
  	      {
  		tree arg = get_representative_tree (offset);
! 		ctxt->warn (make_unique<tainted_offset> (taint_sm, arg, b));
  	      }
  	  }
  	  break;
--- 1618,1625 ----
  	    if (taint_sm.get_taint (state, effective_type, &b))
  	      {
  		tree arg = get_representative_tree (offset);
! 		ctxt->warn (make_unique<tainted_offset> (taint_sm, arg, b,
! 							 offset));
  	      }
  	  }
  	  break;
*************** region_model::check_dynamic_size_for_tai
*** 1518,1524 ****
      {
        tree arg = get_representative_tree (size_in_bytes);
        ctxt->warn (make_unique<tainted_allocation_size>
! 		    (taint_sm, arg, b, mem_space));
      }
  }
  
--- 1691,1697 ----
      {
        tree arg = get_representative_tree (size_in_bytes);
        ctxt->warn (make_unique<tainted_allocation_size>
! 		    (taint_sm, arg, size_in_bytes, b, mem_space));
      }
  }
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm.cc gcc-14.1.0/gcc/analyzer/sm.cc
*** gcc-13.2.0/gcc/analyzer/sm.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** make_checkers (auto_delete_vec <state_ma
*** 188,197 ****
    out.safe_push (make_malloc_state_machine (logger));
    out.safe_push (make_fileptr_state_machine (logger));
    out.safe_push (make_fd_state_machine (logger));
!   /* The "taint" checker must be explicitly enabled (as it currently
!      leads to state explosions that stop the other checkers working).  */
!   if (flag_analyzer_checker)
!     out.safe_push (make_taint_state_machine (logger));
    out.safe_push (make_sensitive_state_machine (logger));
    out.safe_push (make_signal_state_machine (logger));
    out.safe_push (make_va_list_state_machine (logger));
--- 188,194 ----
    out.safe_push (make_malloc_state_machine (logger));
    out.safe_push (make_fileptr_state_machine (logger));
    out.safe_push (make_fd_state_machine (logger));
!   out.safe_push (make_taint_state_machine (logger));
    out.safe_push (make_sensitive_state_machine (logger));
    out.safe_push (make_signal_state_machine (logger));
    out.safe_push (make_va_list_state_machine (logger));
diff -Nrcpad gcc-13.2.0/gcc/analyzer/sm.h gcc-14.1.0/gcc/analyzer/sm.h
*** gcc-13.2.0/gcc/analyzer/sm.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/sm.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 78,83 ****
--- 78,89 ----
      return NULL;
    }
  
+   virtual bool
+   has_alt_get_inherited_state_p () const
+   {
+     return false;
+   }
+ 
    virtual state_machine::state_t get_default_state (const svalue *) const
    {
      return m_start;
*************** public:
*** 299,304 ****
--- 305,312 ----
    virtual state_machine::state_t get_global_state () const = 0;
    virtual void set_global_state (state_machine::state_t) = 0;
  
+   virtual void clear_all_per_svalue_state () = 0;
+ 
    /* A vfunc for handling custom transitions, such as when registering
       a signal handler.  */
    virtual void on_custom_transition (custom_transition *transition) = 0;
diff -Nrcpad gcc-13.2.0/gcc/analyzer/state-purge.cc gcc-14.1.0/gcc/analyzer/state-purge.cc
*** gcc-13.2.0/gcc/analyzer/state-purge.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/state-purge.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class gimple_op_visitor : public log_use
*** 89,95 ****
  public:
    gimple_op_visitor (state_purge_map *map,
  		     const function_point &point,
! 		     function *fun)
    : log_user (map->get_logger ()),
      m_map (map),
      m_point (point),
--- 89,95 ----
  public:
    gimple_op_visitor (state_purge_map *map,
  		     const function_point &point,
! 		     const function &fun)
    : log_user (map->get_logger ()),
      m_map (map),
      m_point (point),
*************** private:
*** 172,178 ****
  
    state_purge_map *m_map;
    const function_point &m_point;
!   function *m_fun;
  };
  
  static bool
--- 172,178 ----
  
    state_purge_map *m_map;
    const function_point &m_point;
!   const function &m_fun;
  };
  
  static bool
*************** state_purge_map::state_purge_map (const
*** 214,219 ****
--- 214,220 ----
    FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
    {
      function *fun = node->get_fun ();
+     gcc_assert (fun);
      if (logger)
        log ("function: %s", function_name (fun));
      tree name;
*************** state_purge_map::state_purge_map (const
*** 225,231 ****
  	  if (TREE_CODE (var) == VAR_DECL)
  	    if (VAR_DECL_IS_VIRTUAL_OPERAND (var))
  	      continue;
! 	m_ssa_map.put (name, new state_purge_per_ssa_name (*this, name, fun));
        }
    }
  
--- 226,232 ----
  	  if (TREE_CODE (var) == VAR_DECL)
  	    if (VAR_DECL_IS_VIRTUAL_OPERAND (var))
  	      continue;
! 	m_ssa_map.put (name, new state_purge_per_ssa_name (*this, name, *fun));
        }
    }
  
*************** state_purge_map::state_purge_map (const
*** 241,248 ****
        unsigned i;
        FOR_EACH_VEC_ELT (snode->m_stmts, i, stmt)
  	{
  	  function_point point (function_point::before_stmt (snode, i));
! 	  gimple_op_visitor v (this, point, snode->get_function ());
  	  walk_stmt_load_store_addr_ops (stmt, &v,
  					 my_load_cb, my_store_cb, my_addr_cb);
  	}
--- 242,251 ----
        unsigned i;
        FOR_EACH_VEC_ELT (snode->m_stmts, i, stmt)
  	{
+ 	  function *fun = snode->get_function ();
+ 	  gcc_assert (fun);
  	  function_point point (function_point::before_stmt (snode, i));
! 	  gimple_op_visitor v (this, point, *fun);
  	  walk_stmt_load_store_addr_ops (stmt, &v,
  					 my_load_cb, my_store_cb, my_addr_cb);
  	}
*************** state_purge_map::~state_purge_map ()
*** 272,278 ****
     if necessary.  */
  
  state_purge_per_decl &
! state_purge_map::get_or_create_data_for_decl (function *fun, tree decl)
  {
    if (state_purge_per_decl **slot
        = const_cast <decl_map_t&> (m_decl_map).get (decl))
--- 275,281 ----
     if necessary.  */
  
  state_purge_per_decl &
! state_purge_map::get_or_create_data_for_decl (const function &fun, tree decl)
  {
    if (state_purge_per_decl **slot
        = const_cast <decl_map_t&> (m_decl_map).get (decl))
*************** state_purge_map::get_or_create_data_for_
*** 295,308 ****
  
  state_purge_per_ssa_name::state_purge_per_ssa_name (const state_purge_map &map,
  						    tree name,
! 						    function *fun)
  : state_purge_per_tree (fun), m_points_needing_name (), m_name (name)
  {
    LOG_FUNC (map.get_logger ());
  
    if (map.get_logger ())
      {
!       map.log ("SSA name: %qE within %qD", name, fun->decl);
  
        /* Show def stmt.  */
        const gimple *def_stmt = SSA_NAME_DEF_STMT (name);
--- 298,311 ----
  
  state_purge_per_ssa_name::state_purge_per_ssa_name (const state_purge_map &map,
  						    tree name,
! 						    const function &fun)
  : state_purge_per_tree (fun), m_points_needing_name (), m_name (name)
  {
    LOG_FUNC (map.get_logger ());
  
    if (map.get_logger ())
      {
!       map.log ("SSA name: %qE within %qD", name, fun.decl);
  
        /* Show def stmt.  */
        const gimple *def_stmt = SSA_NAME_DEF_STMT (name);
*************** state_purge_per_ssa_name::state_purge_pe
*** 329,334 ****
--- 332,346 ----
  	      map.log ("used by stmt: %s", pp_formatted_text (&pp));
  	    }
  
+ 	  if (is_gimple_debug (use_stmt))
+ 	    {
+ 	      /* We skipped debug stmts when building the supergraph,
+ 		 so ignore them now.  */
+ 	      if (map.get_logger ())
+ 		map.log ("skipping debug stmt");
+ 	      continue;
+ 	    }
+ 
  	  const supernode *snode
  	    = map.get_sg ().get_supernode_for_stmt (use_stmt);
  
*************** state_purge_per_ssa_name::state_purge_pe
*** 401,407 ****
  
    if (map.get_logger ())
      {
!       map.log ("%qE in %qD is needed to process:", name, fun->decl);
        /* Log m_points_needing_name, sorting it to avoid churn when comparing
  	 dumps.  */
        auto_vec<function_point> points;
--- 413,419 ----
  
    if (map.get_logger ())
      {
!       map.log ("%qE in %qD is needed to process:", name, fun.decl);
        /* Log m_points_needing_name, sorting it to avoid churn when comparing
  	 dumps.  */
        auto_vec<function_point> points;
*************** state_purge_per_ssa_name::add_to_worklis
*** 463,469 ****
        logger->end_log_line ();
      }
  
!   gcc_assert (point.get_function () == get_function ());
    if (point.get_from_edge ())
      gcc_assert (point.get_from_edge ()->get_kind () == SUPEREDGE_CFG_EDGE);
  
--- 475,481 ----
        logger->end_log_line ();
      }
  
!   gcc_assert (point.get_function () == &get_function ());
    if (point.get_from_edge ())
      gcc_assert (point.get_from_edge ()->get_kind () == SUPEREDGE_CFG_EDGE);
  
*************** state_purge_per_ssa_name::process_point
*** 669,675 ****
  
  state_purge_per_decl::state_purge_per_decl (const state_purge_map &map,
  					    tree decl,
! 					    function *fun)
  : state_purge_per_tree (fun),
    m_decl (decl)
  {
--- 681,687 ----
  
  state_purge_per_decl::state_purge_per_decl (const state_purge_map &map,
  					    tree decl,
! 					    const function &fun)
  : state_purge_per_tree (fun),
    m_decl (decl)
  {
*************** state_purge_per_decl::add_to_worklist (c
*** 785,791 ****
        logger->end_log_line ();
      }
  
!   gcc_assert (point.get_function () == get_function ());
    if (point.get_from_edge ())
      gcc_assert (point.get_from_edge ()->get_kind () == SUPEREDGE_CFG_EDGE);
  
--- 797,803 ----
        logger->end_log_line ();
      }
  
!   gcc_assert (point.get_function () == &get_function ());
    if (point.get_from_edge ())
      gcc_assert (point.get_from_edge ()->get_kind () == SUPEREDGE_CFG_EDGE);
  
*************** state_purge_annotator::print_needed (gra
*** 1183,1189 ****
      {
        tree name = (*iter).first;
        state_purge_per_ssa_name *per_name_data = (*iter).second;
!       if (per_name_data->get_function () == point.get_function ())
  	{
  	  if (per_name_data->needed_at_point_p (point))
  	    needed.safe_push (name);
--- 1195,1201 ----
      {
        tree name = (*iter).first;
        state_purge_per_ssa_name *per_name_data = (*iter).second;
!       if (&per_name_data->get_function () == point.get_function ())
  	{
  	  if (per_name_data->needed_at_point_p (point))
  	    needed.safe_push (name);
*************** state_purge_annotator::print_needed (gra
*** 1197,1203 ****
      {
        tree decl = (*iter).first;
        state_purge_per_decl *per_decl_data = (*iter).second;
!       if (per_decl_data->get_function () == point.get_function ())
  	{
  	  if (per_decl_data->needed_at_point_p (point))
  	    needed.safe_push (decl);
--- 1209,1215 ----
      {
        tree decl = (*iter).first;
        state_purge_per_decl *per_decl_data = (*iter).second;
!       if (&per_decl_data->get_function () == point.get_function ())
  	{
  	  if (per_decl_data->needed_at_point_p (point))
  	    needed.safe_push (decl);
diff -Nrcpad gcc-13.2.0/gcc/analyzer/state-purge.h gcc-14.1.0/gcc/analyzer/state-purge.h
*** gcc-13.2.0/gcc/analyzer/state-purge.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/state-purge.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 112,118 ****
        return NULL;
    }
  
!   state_purge_per_decl &get_or_create_data_for_decl (function *fun, tree decl);
  
    const supergraph &get_sg () const { return m_sg; }
  
--- 112,119 ----
        return NULL;
    }
  
!   state_purge_per_decl &
!   get_or_create_data_for_decl (const function &fun, tree decl);
  
    const supergraph &get_sg () const { return m_sg; }
  
*************** private:
*** 135,153 ****
  class state_purge_per_tree
  {
  public:
!   function *get_function () const { return m_fun; }
!   tree get_fndecl () const { return m_fun->decl; }
  
  protected:
    typedef hash_set<function_point> point_set_t;
  
!   state_purge_per_tree (function *fun)
    : m_fun (fun)
    {
    }
  
  private:
!   function *m_fun;
  };
  
  /* The part of a state_purge_map relating to a specific SSA name.
--- 136,154 ----
  class state_purge_per_tree
  {
  public:
!   const function &get_function () const { return m_fun; }
!   tree get_fndecl () const { return m_fun.decl; }
  
  protected:
    typedef hash_set<function_point> point_set_t;
  
!   state_purge_per_tree (const function &fun)
    : m_fun (fun)
    {
    }
  
  private:
!   const function &m_fun;
  };
  
  /* The part of a state_purge_map relating to a specific SSA name.
*************** class state_purge_per_ssa_name : public
*** 162,168 ****
  public:
    state_purge_per_ssa_name (const state_purge_map &map,
  			    tree name,
! 			    function *fun);
  
    bool needed_at_point_p (const function_point &point) const;
  
--- 163,169 ----
  public:
    state_purge_per_ssa_name (const state_purge_map &map,
  			    tree name,
! 			    const function &fun);
  
    bool needed_at_point_p (const function_point &point) const;
  
*************** class state_purge_per_decl : public stat
*** 194,200 ****
  public:
    state_purge_per_decl (const state_purge_map &map,
  			tree decl,
! 			function *fun);
  
    bool needed_at_point_p (const function_point &point) const;
  
--- 195,201 ----
  public:
    state_purge_per_decl (const state_purge_map &map,
  			tree decl,
! 			const function &fun);
  
    bool needed_at_point_p (const function_point &point) const;
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/store.cc gcc-14.1.0/gcc/analyzer/store.cc
*** gcc-13.2.0/gcc/analyzer/store.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/store.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 38,44 ****
  #include "fold-const.h"
  #include "tree-pretty-print.h"
  #include "diagnostic-color.h"
- #include "diagnostic-metadata.h"
  #include "bitmap.h"
  #include "selftest.h"
  #include "analyzer/analyzer.h"
--- 38,43 ----
*************** bit_range::dump () const
*** 236,243 ****
    pp_flush (&pp);
  }
  
! /* If OTHER is a subset of this, return true and write
!    to *OUT the relative range of OTHER within this.
     Otherwise return false.  */
  
  bool
--- 235,257 ----
    pp_flush (&pp);
  }
  
! /* Generate a JSON value for this bit_range.
!    This is intended for debugging the analyzer rather
!    than serialization.  */
! 
! json::object *
! bit_range::to_json () const
! {
!   json::object *obj = new json::object ();
!   obj->set ("start_bit_offset",
! 	    bit_offset_to_json (m_start_bit_offset));
!   obj->set ("size_in_bits",
! 	    bit_offset_to_json (m_size_in_bits));
!   return obj;
! }
! 
! /* If OTHER is a subset of this, return true and, if OUT is
!    non-null, write to *OUT the relative range of OTHER within this.
     Otherwise return false.  */
  
  bool
*************** bit_range::contains_p (const bit_range &
*** 246,253 ****
    if (contains_p (other.get_start_bit_offset ())
        && contains_p (other.get_last_bit_offset ()))
      {
!       out->m_start_bit_offset = other.m_start_bit_offset - m_start_bit_offset;
!       out->m_size_in_bits = other.m_size_in_bits;
        return true;
      }
    else
--- 260,270 ----
    if (contains_p (other.get_start_bit_offset ())
        && contains_p (other.get_last_bit_offset ()))
      {
!       if (out)
! 	{
! 	  out->m_start_bit_offset = other.m_start_bit_offset - m_start_bit_offset;
! 	  out->m_size_in_bits = other.m_size_in_bits;
! 	}
        return true;
      }
    else
*************** bit_range::intersects_p (const bit_range
*** 273,279 ****
        bit_offset_t overlap_next
  	= MIN (get_next_bit_offset (),
  	       other.get_next_bit_offset ());
!       gcc_assert (overlap_next > overlap_start);
        bit_range abs_overlap_bits (overlap_start, overlap_next - overlap_start);
        *out_this = abs_overlap_bits - get_start_bit_offset ();
        *out_other = abs_overlap_bits - other.get_start_bit_offset ();
--- 290,299 ----
        bit_offset_t overlap_next
  	= MIN (get_next_bit_offset (),
  	       other.get_next_bit_offset ());
!       if (overlap_next <= overlap_start)
! 	/* If this has happened, some kind of overflow has happened in
! 	   our arithmetic.  For now, reject such cases.  */
! 	return false;
        bit_range abs_overlap_bits (overlap_start, overlap_next - overlap_start);
        *out_this = abs_overlap_bits - get_start_bit_offset ();
        *out_other = abs_overlap_bits - other.get_start_bit_offset ();
*************** bit_range::intersects_p (const bit_range
*** 283,288 ****
--- 303,388 ----
      return false;
  }
  
+ /* Return true if THIS and OTHER intersect and write the number
+    of bits both buffers overlap to *OUT_NUM_OVERLAP_BITS.
+ 
+    Otherwise return false.  */
+ 
+ bool
+ bit_range::intersects_p (const bit_range &other,
+ 			 bit_size_t *out_num_overlap_bits) const
+ {
+   if (get_start_bit_offset () < other.get_next_bit_offset ()
+       && other.get_start_bit_offset () < get_next_bit_offset ())
+     {
+       bit_offset_t overlap_start = MAX (get_start_bit_offset (),
+ 					 other.get_start_bit_offset ());
+       bit_offset_t overlap_next = MIN (get_next_bit_offset (),
+ 					other.get_next_bit_offset ());
+       if (overlap_next <= overlap_start)
+ 	/* If this has happened, some kind of overflow has happened in
+ 	   our arithmetic.  For now, reject such cases.  */
+ 	return false;
+       *out_num_overlap_bits = overlap_next - overlap_start;
+       return true;
+     }
+   else
+     return false;
+ }
+ 
+ /* Return true if THIS exceeds OTHER and write the overhanging
+    bit range to OUT_OVERHANGING_BIT_RANGE.  */
+ 
+ bool
+ bit_range::exceeds_p (const bit_range &other,
+ 		      bit_range *out_overhanging_bit_range) const
+ {
+   gcc_assert (!empty_p ());
+ 
+   if (other.get_next_bit_offset () < get_next_bit_offset ())
+     {
+       /* THIS definitely exceeds OTHER.  */
+       bit_offset_t start = MAX (get_start_bit_offset (),
+ 				 other.get_next_bit_offset ());
+       bit_offset_t size = get_next_bit_offset () - start;
+       if (size <= 0)
+ 	/* If this has happened, some kind of overflow has happened in
+ 	   our arithmetic.  For now, reject such cases.  */
+ 	return false;
+       out_overhanging_bit_range->m_start_bit_offset = start;
+       out_overhanging_bit_range->m_size_in_bits = size;
+       return true;
+     }
+   else
+     return false;
+ }
+ 
+ /* Return true if THIS falls short of OFFSET and write the
+    bit range fallen short to OUT_FALL_SHORT_BITS.  */
+ 
+ bool
+ bit_range::falls_short_of_p (bit_offset_t offset,
+ 			     bit_range *out_fall_short_bits) const
+ {
+   gcc_assert (!empty_p ());
+ 
+   if (get_start_bit_offset () < offset)
+     {
+       /* THIS falls short of OFFSET.  */
+       bit_offset_t start = get_start_bit_offset ();
+       bit_offset_t size = MIN (offset, get_next_bit_offset ()) - start;
+       if (size <= 0)
+ 	/* If this has happened, some kind of overflow has happened in
+ 	   our arithmetic.  For now, reject such cases.  */
+ 	return false;
+       out_fall_short_bits->m_start_bit_offset = start;
+       out_fall_short_bits->m_size_in_bits = size;
+       return true;
+     }
+   else
+     return false;
+ }
+ 
  int
  bit_range::cmp (const bit_range &br1, const bit_range &br2)
  {
*************** byte_range::dump () const
*** 411,416 ****
--- 511,531 ----
    pp_flush (&pp);
  }
  
+ /* Generate a JSON value for this byte_range.
+    This is intended for debugging the analyzer rather
+    than serialization.  */
+ 
+ json::object *
+ byte_range::to_json () const
+ {
+   json::object *obj = new json::object ();
+   obj->set ("start_byte_offset",
+ 	    byte_offset_to_json (m_start_byte_offset));
+   obj->set ("size_in_bytes",
+ 	    byte_offset_to_json (m_size_in_bytes));
+   return obj;
+ }
+ 
  /* If OTHER is a subset of this, return true and write
     to *OUT the relative range of OTHER within this.
     Otherwise return false.  */
*************** byte_range::contains_p (const byte_range
*** 429,505 ****
      return false;
  }
  
- /* Return true if THIS and OTHER intersect and write the number
-    of bytes both buffers overlap to *OUT_NUM_OVERLAP_BYTES.
- 
-    Otherwise return false.  */
- 
- bool
- byte_range::intersects_p (const byte_range &other,
- 			  byte_size_t *out_num_overlap_bytes) const
- {
-   if (get_start_byte_offset () < other.get_next_byte_offset ()
-       && other.get_start_byte_offset () < get_next_byte_offset ())
-     {
-       byte_offset_t overlap_start = MAX (get_start_byte_offset (),
- 					 other.get_start_byte_offset ());
-       byte_offset_t overlap_next = MIN (get_next_byte_offset (),
- 					other.get_next_byte_offset ());
-       gcc_assert (overlap_next > overlap_start);
-       *out_num_overlap_bytes = overlap_next - overlap_start;
-       return true;
-     }
-   else
-     return false;
- }
- 
- /* Return true if THIS exceeds OTHER and write the overhanging
-    byte range to OUT_OVERHANGING_BYTE_RANGE.  */
- 
- bool
- byte_range::exceeds_p (const byte_range &other,
- 		       byte_range *out_overhanging_byte_range) const
- {
-   gcc_assert (!empty_p ());
- 
-   if (other.get_next_byte_offset () < get_next_byte_offset ())
-     {
-       /* THIS definitely exceeds OTHER.  */
-       byte_offset_t start = MAX (get_start_byte_offset (),
- 				 other.get_next_byte_offset ());
-       byte_offset_t size = get_next_byte_offset () - start;
-       gcc_assert (size > 0);
-       out_overhanging_byte_range->m_start_byte_offset = start;
-       out_overhanging_byte_range->m_size_in_bytes = size;
-       return true;
-     }
-   else
-     return false;
- }
- 
- /* Return true if THIS falls short of OFFSET and write the
-    byte range fallen short to OUT_FALL_SHORT_BYTES.  */
- 
- bool
- byte_range::falls_short_of_p (byte_offset_t offset,
- 			      byte_range *out_fall_short_bytes) const
- {
-   gcc_assert (!empty_p ());
- 
-   if (get_start_byte_offset () < offset)
-     {
-       /* THIS falls short of OFFSET.  */
-       byte_offset_t start = get_start_byte_offset ();
-       byte_offset_t size = MIN (offset, get_next_byte_offset ()) - start;
-       gcc_assert (size > 0);
-       out_fall_short_bytes->m_start_byte_offset = start;
-       out_fall_short_bytes->m_size_in_bytes = size;
-       return true;
-     }
-   else
-     return false;
- }
- 
  /* qsort comparator for byte ranges.  */
  
  int
--- 544,549 ----
*************** concrete_binding::overlaps_p (const conc
*** 535,540 ****
--- 579,593 ----
    return false;
  }
  
+ /* If this is expressible as a concrete byte range, return true
+    and write it to *OUT.  Otherwise return false.  */
+ 
+ bool
+ concrete_binding::get_byte_range (byte_range *out) const
+ {
+   return m_bit_range.as_byte_range (out);
+ }
+ 
  /* Comparator for use by vec<const concrete_binding *>::qsort.  */
  
  int
*************** binding_cluster::maybe_get_compound_bind
*** 1718,1724 ****
    else
      default_sval = sval_mgr->get_or_create_initial_value (reg);
    const binding_key *default_key = binding_key::make (mgr, reg);
!   default_map.put (default_key, default_sval);
  
    for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter)
      {
--- 1771,1786 ----
    else
      default_sval = sval_mgr->get_or_create_initial_value (reg);
    const binding_key *default_key = binding_key::make (mgr, reg);
! 
!   /* Express the bit-range of the default key for REG relative to REG,
!      rather than to the base region.  */
!   const concrete_binding *concrete_default_key
!     = default_key->dyn_cast_concrete_binding ();
!   if (!concrete_default_key)
!     return nullptr;
!   const concrete_binding *default_key_relative_to_reg
!      = mgr->get_concrete_binding (0, concrete_default_key->get_size_in_bits ());
!   default_map.put (default_key_relative_to_reg, default_sval);
  
    for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter)
      {
*************** tristate
*** 2710,2715 ****
--- 2772,2789 ----
  store::eval_alias_1 (const region *base_reg_a,
  		     const region *base_reg_b) const
  {
+   /* If they're in different memory spaces, they can't alias.  */
+   {
+     enum memory_space memspace_a = base_reg_a->get_memory_space ();
+     if (memspace_a != MEMSPACE_UNKNOWN)
+       {
+ 	enum memory_space memspace_b = base_reg_b->get_memory_space ();
+ 	if (memspace_b != MEMSPACE_UNKNOWN
+ 	    && memspace_a != memspace_b)
+ 	  return tristate::TS_FALSE;
+       }
+   }
+ 
    if (const symbolic_region *sym_reg_a
        = base_reg_a->dyn_cast_symbolic_region ())
      {
*************** store::replay_call_summary_cluster (call
*** 3348,3353 ****
--- 3422,3428 ----
      case RK_HEAP_ALLOCATED:
      case RK_DECL:
      case RK_ERRNO:
+     case RK_PRIVATE:
        {
  	const region *caller_dest_reg
  	  = r.convert_region_from_summary (summary_base_reg);
diff -Nrcpad gcc-13.2.0/gcc/analyzer/store.h gcc-14.1.0/gcc/analyzer/store.h
*** gcc-13.2.0/gcc/analyzer/store.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/store.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** struct bit_range
*** 237,242 ****
--- 237,244 ----
    void dump_to_pp (pretty_printer *pp) const;
    void dump () const;
  
+   json::object *to_json () const;
+ 
    bool empty_p () const
    {
      return m_size_in_bits == 0;
*************** struct bit_range
*** 276,284 ****
--- 278,294 ----
  	    && other.get_start_bit_offset () < get_next_bit_offset ());
    }
    bool intersects_p (const bit_range &other,
+ 		     bit_size_t *out_num_overlap_bits) const;
+   bool intersects_p (const bit_range &other,
  		     bit_range *out_this,
  		     bit_range *out_other) const;
  
+   bool exceeds_p (const bit_range &other,
+ 		  bit_range *out_overhanging_bit_range) const;
+ 
+   bool falls_short_of_p (bit_offset_t offset,
+ 			 bit_range *out_fall_short_bits) const;
+ 
    static int cmp (const bit_range &br1, const bit_range &br2);
  
    bit_range operator- (bit_offset_t offset) const;
*************** struct byte_range
*** 303,308 ****
--- 313,320 ----
    void dump_to_pp (pretty_printer *pp) const;
    void dump () const;
  
+   json::object *to_json () const;
+ 
    bool empty_p () const
    {
      return m_size_in_bytes == 0;
*************** struct byte_range
*** 321,335 ****
  	    && m_size_in_bytes == other.m_size_in_bytes);
    }
  
-   bool intersects_p (const byte_range &other,
- 		     byte_size_t *out_num_overlap_bytes) const;
- 
-   bool exceeds_p (const byte_range &other,
- 		  byte_range *out_overhanging_byte_range) const;
- 
-   bool falls_short_of_p (byte_offset_t offset,
- 			 byte_range *out_fall_short_bytes) const;
- 
    byte_offset_t get_start_byte_offset () const
    {
      return m_start_byte_offset;
--- 333,338 ----
*************** struct byte_range
*** 350,355 ****
--- 353,367 ----
  		      m_size_in_bytes * BITS_PER_UNIT);
    }
  
+   bit_offset_t get_start_bit_offset () const
+   {
+     return m_start_byte_offset * BITS_PER_UNIT;
+   }
+   bit_offset_t get_next_bit_offset () const
+   {
+     return get_next_byte_offset () * BITS_PER_UNIT;
+   }
+ 
    static int cmp (const byte_range &br1, const byte_range &br2);
  
    byte_offset_t m_start_byte_offset;
*************** public:
*** 368,374 ****
    concrete_binding (bit_offset_t start_bit_offset, bit_size_t size_in_bits)
    : m_bit_range (start_bit_offset, size_in_bits)
    {
!     gcc_assert (!m_bit_range.empty_p ());
    }
    bool concrete_p () const final override { return true; }
  
--- 380,386 ----
    concrete_binding (bit_offset_t start_bit_offset, bit_size_t size_in_bits)
    : m_bit_range (start_bit_offset, size_in_bits)
    {
!     gcc_assert (m_bit_range.m_size_in_bits > 0);
    }
    bool concrete_p () const final override { return true; }
  
*************** public:
*** 390,395 ****
--- 402,408 ----
    { return this; }
  
    const bit_range &get_bit_range () const { return m_bit_range; }
+   bool get_byte_range (byte_range *out) const;
  
    bit_offset_t get_start_bit_offset () const
    {
*************** public:
*** 409,418 ****
  
    static int cmp_ptr_ptr (const void *, const void *);
  
!   void mark_deleted () { m_bit_range.m_start_bit_offset = -1; }
!   void mark_empty () { m_bit_range.m_start_bit_offset = -2; }
!   bool is_deleted () const { return m_bit_range.m_start_bit_offset == -1; }
!   bool is_empty () const { return m_bit_range.m_start_bit_offset == -2; }
  
  private:
    bit_range m_bit_range;
--- 422,431 ----
  
    static int cmp_ptr_ptr (const void *, const void *);
  
!   void mark_deleted () { m_bit_range.m_size_in_bits = -1; }
!   void mark_empty () { m_bit_range.m_size_in_bits = -2; }
!   bool is_deleted () const { return m_bit_range.m_size_in_bits == -1; }
!   bool is_empty () const { return m_bit_range.m_size_in_bits == -2; }
  
  private:
    bit_range m_bit_range;
*************** public:
*** 846,851 ****
--- 859,870 ----
      return get_concrete_binding (bits.get_start_bit_offset (),
  				 bits.m_size_in_bits);
    }
+   const concrete_binding *
+   get_concrete_binding (const byte_range &bytes)
+   {
+     bit_range bits = bytes.as_bit_range ();
+     return get_concrete_binding (bits);
+   }
    const symbolic_binding *
    get_symbolic_binding (const region *region);
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/supergraph.cc gcc-14.1.0/gcc/analyzer/supergraph.cc
*** gcc-13.2.0/gcc/analyzer/supergraph.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/supergraph.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** supergraph::supergraph (logger *logger)
*** 182,187 ****
--- 182,191 ----
  	  for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
  	    {
  	      gimple *stmt = gsi_stmt (gsi);
+ 	      /* Discard debug stmts here, so we don't have to check for
+ 		 them anywhere within the analyzer.  */
+ 	      if (is_gimple_debug (stmt))
+ 		continue;
  	      node_for_stmts->m_stmts.safe_push (stmt);
  	      m_stmt_to_node_t.put (stmt, node_for_stmts);
  	      m_stmt_uids.make_uid_unique (stmt);
*************** supergraph::dump_dot_to_pp (pretty_print
*** 360,365 ****
--- 364,370 ----
      FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
      {
        function *fun = node->get_fun ();
+       gcc_assert (fun);
        const char *funcname = function_name (fun);
        gv.println ("subgraph \"cluster_%s\" {",
  		  funcname);
*************** supergraph::dump_dot_to_pp (pretty_print
*** 405,413 ****
  
        /* Add an invisible edge from ENTRY to EXIT, to improve the graph layout.  */
        pp_string (pp, "\t");
!       get_node_for_function_entry (fun)->dump_dot_id (pp);
        pp_string (pp, ":s -> ");
!       get_node_for_function_exit (fun)->dump_dot_id (pp);
        pp_string (pp, ":n [style=\"invis\",constraint=true];\n");
  
        /* Terminate per-function "subgraph" */
--- 410,418 ----
  
        /* Add an invisible edge from ENTRY to EXIT, to improve the graph layout.  */
        pp_string (pp, "\t");
!       get_node_for_function_entry (*fun)->dump_dot_id (pp);
        pp_string (pp, ":s -> ");
!       get_node_for_function_exit (*fun)->dump_dot_id (pp);
        pp_string (pp, ":n [style=\"invis\",constraint=true];\n");
  
        /* Terminate per-function "subgraph" */
*************** supernode::get_start_location () const
*** 790,795 ****
--- 795,807 ----
    if (return_p ())
      return m_fun->function_end_locus;
  
+   /* We have no locations for stmts.  If we have a single out-edge that's
+      a CFG edge, the goto_locus of that edge is a better location for this
+      than UNKNOWN_LOCATION.  */
+   if (m_succs.length () == 1)
+     if (const cfg_superedge *cfg_sedge = m_succs[0]->dyn_cast_cfg_superedge ())
+       return cfg_sedge->get_goto_locus ();
+ 
    return UNKNOWN_LOCATION;
  }
  
*************** supernode::get_end_location () const
*** 813,818 ****
--- 825,836 ----
    if (return_p ())
      return m_fun->function_end_locus;
  
+   /* If we have a single out-edge that's a CFG edge, use the goto_locus of
+      that edge.  */
+   if (m_succs.length () == 1)
+     if (const cfg_superedge *cfg_sedge = m_succs[0]->dyn_cast_cfg_superedge ())
+       return cfg_sedge->get_goto_locus ();
+ 
    return UNKNOWN_LOCATION;
  }
  
*************** supernode::get_stmt_index (const gimple
*** 829,834 ****
--- 847,865 ----
    gcc_unreachable ();
  }
  
+ /* Get any label_decl for this supernode, or NULL_TREE if there isn't one.  */
+ 
+ tree
+ supernode::get_label () const
+ {
+   if (m_stmts.length () == 0)
+     return NULL_TREE;
+   const glabel *label_stmt = dyn_cast<const glabel *> (m_stmts[0]);
+   if (!label_stmt)
+     return NULL_TREE;
+   return gimple_label_label (label_stmt);
+ }
+ 
  /* Get a string for PK.  */
  
  static const char *
*************** cfg_superedge::dump_label_to_pp (pretty_
*** 1050,1055 ****
--- 1081,1089 ----
        pp_string (pp, ")");
      }
  
+   if (m_cfg_edge->goto_locus > BUILTINS_LOCATION)
+     pp_string (pp, " (has goto_locus)");
+ 
    /* Otherwise, no label.  */
  }
  
diff -Nrcpad gcc-13.2.0/gcc/analyzer/supergraph.h gcc-14.1.0/gcc/analyzer/supergraph.h
*** gcc-13.2.0/gcc/analyzer/supergraph.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/supergraph.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 111,124 ****
    supergraph (logger *logger);
    ~supergraph ();
  
!   supernode *get_node_for_function_entry (function *fun) const
    {
!     return get_node_for_block (ENTRY_BLOCK_PTR_FOR_FN (fun));
    }
  
!   supernode *get_node_for_function_exit (function *fun) const
    {
!     return get_node_for_block (EXIT_BLOCK_PTR_FOR_FN (fun));
    }
  
    supernode *get_node_for_block (basic_block bb) const
--- 111,124 ----
    supergraph (logger *logger);
    ~supergraph ();
  
!   supernode *get_node_for_function_entry (const function &fun) const
    {
!     return get_node_for_block (ENTRY_BLOCK_PTR_FOR_FN (&fun));
    }
  
!   supernode *get_node_for_function_exit (const function &fun) const
    {
!     return get_node_for_block (EXIT_BLOCK_PTR_FOR_FN (&fun));
    }
  
    supernode *get_node_for_block (basic_block bb) const
*************** class supernode : public dnode<supergrap
*** 297,302 ****
--- 297,304 ----
  
    unsigned int get_stmt_index (const gimple *stmt) const;
  
+   tree get_label () const;
+ 
    function * const m_fun; // alternatively could be stored as runs of indices within the supergraph
    const basic_block m_bb;
    gcall * const m_returning_call; // for handling the result of a returned call
*************** class cfg_superedge : public superedge
*** 530,535 ****
--- 532,539 ----
    size_t get_phi_arg_idx () const;
    tree get_phi_arg (const gphi *phi) const;
  
+   location_t get_goto_locus () const { return m_cfg_edge->goto_locus; }
+ 
   private:
    const ::edge m_cfg_edge;
  };
diff -Nrcpad gcc-13.2.0/gcc/analyzer/svalue.cc gcc-14.1.0/gcc/analyzer/svalue.cc
*** gcc-13.2.0/gcc/analyzer/svalue.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/svalue.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Symbolic values.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Symbolic values.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** svalue::to_json () const
*** 95,100 ****
--- 95,208 ----
    return sval_js;
  }
  
+ /* Class for optionally adding open/close paren pairs within
+    svalue::maybe_print_for_user.  */
+ 
+ class auto_add_parens
+ {
+ public:
+   auto_add_parens (pretty_printer *pp,
+ 		   const svalue *outer_sval,
+ 		   const svalue &inner_sval)
+   : m_pp (pp),
+     m_needs_parens (needs_parens_p (outer_sval, inner_sval))
+   {
+     if (m_needs_parens)
+       pp_string (m_pp, "(");
+   }
+   ~auto_add_parens ()
+   {
+     if (m_needs_parens)
+       pp_string (m_pp, ")");
+   }
+ 
+ private:
+   static bool needs_parens_p (const svalue *outer_sval,
+ 			      const svalue &inner_sval)
+   {
+     if (!outer_sval)
+       return false;
+     if (inner_sval.get_kind () == SK_BINOP)
+       return true;
+     return false;
+   }
+ 
+   pretty_printer *m_pp;
+   bool m_needs_parens;
+ };
+ 
+ /* Attempt to print a user-facing description of this svalue to PP,
+    using MODEL for extracting representative tree values if necessary.
+    Use OUTER_SVAL (which can be null) to determine if we need to wrap
+    this value in parentheses.  */
+ 
+ bool
+ svalue::maybe_print_for_user (pretty_printer *pp,
+ 			      const region_model &model,
+ 			      const svalue *outer_sval) const
+ {
+   auto_add_parens p (pp, outer_sval, *this);
+ 
+   switch (get_kind ())
+     {
+     default:
+       break;
+     case SK_CONSTANT:
+       {
+ 	const constant_svalue *sval = (const constant_svalue *)this;
+ 	pp_printf (pp, "%E", sval->get_constant ());
+ 	return true;
+       }
+     case SK_INITIAL:
+       {
+ 	const initial_svalue *sval = (const initial_svalue *)this;
+ 	return sval->get_region ()->maybe_print_for_user (pp, model);
+       }
+     case SK_UNARYOP:
+       {
+ 	const unaryop_svalue *sval = (const unaryop_svalue *)this;
+ 	if (sval->get_op () == NOP_EXPR)
+ 	  {
+ 	    if (!sval->get_arg ()->maybe_print_for_user (pp, model, outer_sval))
+ 	      return false;
+ 	    return true;
+ 	  }
+       }
+       break;
+     case SK_BINOP:
+       {
+ 	const binop_svalue *sval = (const binop_svalue *)this;
+ 	switch (sval->get_op ())
+ 	  {
+ 	  default:
+ 	    break;
+ 
+ 	  case PLUS_EXPR:
+ 	  case MINUS_EXPR:
+ 	  case MULT_EXPR:
+ 	    {
+ 	      if (!sval->get_arg0 ()->maybe_print_for_user (pp, model, this))
+ 		return false;
+ 	      pp_printf (pp, " %s ", op_symbol_code (sval->get_op ()));
+ 	      if (!sval->get_arg1 ()->maybe_print_for_user (pp, model, this))
+ 		return false;
+ 	      return true;
+ 	    }
+ 	  }
+       }
+       break;
+     }
+ 
+   if (tree expr = model.get_representative_tree (this))
+     {
+       expr = remove_ssa_names (expr);
+       print_expr_for_user (pp, expr);
+       return true;
+     }
+ 
+   return false;
+ }
+ 
  /* If this svalue is a constant_svalue, return the underlying tree constant.
     Otherwise return NULL_TREE.  */
  
*************** svalue::can_merge_p (const svalue *other
*** 251,256 ****
--- 359,365 ----
  	   a descending chain of constraints.  */
  	if (other == widen_arg0)
  	  {
+ 	    merger->on_widening_reuse (widen_arg0);
  	    return widen_arg0;
  	  }
  
*************** svalue::cmp_ptr (const svalue *sval1, co
*** 388,394 ****
  	const constant_svalue *constant_sval2 = (const constant_svalue *)sval2;
  	const_tree cst1 = constant_sval1->get_constant ();
  	const_tree cst2 = constant_sval2->get_constant ();
! 	return cmp_csts_same_type (cst1, cst2);
        }
        break;
      case SK_UNKNOWN:
--- 497,505 ----
  	const constant_svalue *constant_sval2 = (const constant_svalue *)sval2;
  	const_tree cst1 = constant_sval1->get_constant ();
  	const_tree cst2 = constant_sval2->get_constant ();
! 	/* The svalues have the same type, but the underlying trees
! 	   might not (for the case where both svalues are typeless).  */
! 	return cmp_csts_and_types (cst1, cst2);
        }
        break;
      case SK_UNKNOWN:
*************** public:
*** 606,611 ****
--- 717,728 ----
        m_found = true;
    }
  
+   void visit_widening_svalue (const widening_svalue *candidate) final override
+   {
+     if (candidate == m_needle)
+       m_found = true;
+   }
+ 
    bool found_p () const { return m_found; }
  
  private:
*************** svalue::involves_p (const svalue *other)
*** 620,626 ****
  {
    /* Currently only implemented for these kinds.  */
    gcc_assert (other->get_kind () == SK_INITIAL
! 	      || other->get_kind () == SK_CONJURED);
  
    involvement_visitor v (other);
    accept (&v);
--- 737,744 ----
  {
    /* Currently only implemented for these kinds.  */
    gcc_assert (other->get_kind () == SK_INITIAL
! 	      || other->get_kind () == SK_CONJURED
! 	      || other->get_kind () == SK_WIDENING);
  
    involvement_visitor v (other);
    accept (&v);
*************** region_svalue::dump_to_pp (pretty_printe
*** 714,721 ****
    else
      {
        pp_string (pp, "region_svalue(");
!       print_quoted_type (pp, get_type ());
!       pp_string (pp, ", ");
        m_reg->dump_to_pp (pp, simple);
        pp_string (pp, ")");
      }
--- 832,842 ----
    else
      {
        pp_string (pp, "region_svalue(");
!       if (get_type ())
! 	{
! 	  print_quoted_type (pp, get_type ());
! 	  pp_string (pp, ", ");
! 	}
        m_reg->dump_to_pp (pp, simple);
        pp_string (pp, ")");
      }
*************** constant_svalue::dump_to_pp (pretty_prin
*** 811,818 ****
    else
      {
        pp_string (pp, "constant_svalue(");
!       print_quoted_type (pp, get_type ());
!       pp_string (pp, ", ");
        dump_tree (pp, m_cst_expr);
        pp_string (pp, ")");
      }
--- 932,942 ----
    else
      {
        pp_string (pp, "constant_svalue(");
!       if (get_type ())
! 	{
! 	  print_quoted_type (pp, get_type ());
! 	  pp_string (pp, ", ");
! 	}
        dump_tree (pp, m_cst_expr);
        pp_string (pp, ")");
      }
*************** constant_svalue::implicitly_live_p (cons
*** 836,849 ****
    return true;
  }
  
  /* Evaluate the condition LHS OP RHS.
     Subroutine of region_model::eval_condition for when we have a pair of
     constants.  */
  
  tristate
  constant_svalue::eval_condition (const constant_svalue *lhs,
! 				  enum tree_code op,
! 				  const constant_svalue *rhs)
  {
    tree lhs_const = lhs->get_constant ();
    tree rhs_const = rhs->get_constant ();
--- 960,990 ----
    return true;
  }
  
+ /* Given EXPR, a non-NULL expression of boolean type, convert to
+    a tristate based on whether this is known to be true, false,
+    or is not known.  */
+ 
+ static tristate
+ tristate_from_boolean_tree_node (tree expr)
+ {
+   gcc_assert (TREE_TYPE (expr) == boolean_type_node);
+ 
+   if (expr == boolean_true_node)
+     return tristate (tristate::TS_TRUE);
+   else if (expr == boolean_false_node)
+     return tristate (tristate::TS_FALSE);
+   else
+     return tristate (tristate::TS_UNKNOWN);
+ }
+ 
  /* Evaluate the condition LHS OP RHS.
     Subroutine of region_model::eval_condition for when we have a pair of
     constants.  */
  
  tristate
  constant_svalue::eval_condition (const constant_svalue *lhs,
! 				 enum tree_code op,
! 				 const constant_svalue *rhs)
  {
    tree lhs_const = lhs->get_constant ();
    tree rhs_const = rhs->get_constant ();
*************** constant_svalue::eval_condition (const c
*** 851,865 ****
    gcc_assert (CONSTANT_CLASS_P (lhs_const));
    gcc_assert (CONSTANT_CLASS_P (rhs_const));
  
    /* Check for comparable types.  */
    if (types_compatible_p (TREE_TYPE (lhs_const), TREE_TYPE (rhs_const)))
      {
!       tree comparison
  	= fold_binary (op, boolean_type_node, lhs_const, rhs_const);
!       if (comparison == boolean_true_node)
! 	return tristate (tristate::TS_TRUE);
!       if (comparison == boolean_false_node)
! 	return tristate (tristate::TS_FALSE);
      }
    return tristate::TS_UNKNOWN;
  }
--- 992,1019 ----
    gcc_assert (CONSTANT_CLASS_P (lhs_const));
    gcc_assert (CONSTANT_CLASS_P (rhs_const));
  
+   if ((lhs->get_type () == NULL_TREE || rhs->get_type () == NULL_TREE)
+       && TREE_CODE (lhs_const) == INTEGER_CST
+       && TREE_CODE (rhs_const) == INTEGER_CST
+       )
+     {
+      if (tree tree_cmp = const_binop (op, boolean_type_node,
+ 				      lhs_const, rhs_const))
+        {
+ 	 tristate ts = tristate_from_boolean_tree_node (tree_cmp);
+ 	 if (ts.is_known ())
+ 	   return ts;
+        }
+     }
+ 
    /* Check for comparable types.  */
    if (types_compatible_p (TREE_TYPE (lhs_const), TREE_TYPE (rhs_const)))
      {
!       tree tree_cmp
  	= fold_binary (op, boolean_type_node, lhs_const, rhs_const);
!       tristate ts = tristate_from_boolean_tree_node (tree_cmp);
!       if (ts.is_known ())
! 	return ts;
      }
    return tristate::TS_UNKNOWN;
  }
*************** poison_kind_to_str (enum poison_kind kin
*** 964,969 ****
--- 1118,1125 ----
        return "uninit";
      case POISON_KIND_FREED:
        return "freed";
+     case POISON_KIND_DELETED:
+       return "deleted";
      case POISON_KIND_POPPED_STACK:
        return "popped stack";
      }
*************** initial_svalue::dump_to_pp (pretty_print
*** 1029,1036 ****
    else
      {
        pp_string (pp, "initial_svalue(");
!       print_quoted_type (pp, get_type ());
!       pp_string (pp, ", ");
        m_reg->dump_to_pp (pp, simple);
        pp_string (pp, ")");
      }
--- 1185,1195 ----
    else
      {
        pp_string (pp, "initial_svalue(");
!       if (get_type ())
! 	{
! 	  print_quoted_type (pp, get_type ());
! 	  pp_string (pp, ", ");
! 	}
        m_reg->dump_to_pp (pp, simple);
        pp_string (pp, ")");
      }
*************** binop_svalue::implicitly_live_p (const s
*** 1254,1263 ****
  
  /* sub_svalue'c ctor.  */
  
! sub_svalue::sub_svalue (tree type, const svalue *parent_svalue,
  			const region *subregion)
  : svalue (complexity::from_pair (parent_svalue->get_complexity (),
  				 subregion->get_complexity ()),
  	  type),
    m_parent_svalue (parent_svalue), m_subregion (subregion)
  {
--- 1413,1424 ----
  
  /* sub_svalue'c ctor.  */
  
! sub_svalue::sub_svalue (symbol::id_t id,
! 			tree type, const svalue *parent_svalue,
  			const region *subregion)
  : svalue (complexity::from_pair (parent_svalue->get_complexity (),
  				 subregion->get_complexity ()),
+ 	  id,
  	  type),
    m_parent_svalue (parent_svalue), m_subregion (subregion)
  {
*************** sub_svalue::implicitly_live_p (const sva
*** 1311,1320 ****
  
  /* repeated_svalue'c ctor.  */
  
! repeated_svalue::repeated_svalue (tree type,
  				  const svalue *outer_size,
  				  const svalue *inner_svalue)
! : svalue (complexity::from_pair (outer_size, inner_svalue), type),
    m_outer_size (outer_size),
    m_inner_svalue (inner_svalue)
  {
--- 1472,1482 ----
  
  /* repeated_svalue'c ctor.  */
  
! repeated_svalue::repeated_svalue (symbol::id_t id,
! 				  tree type,
  				  const svalue *outer_size,
  				  const svalue *inner_svalue)
! : svalue (complexity::from_pair (outer_size, inner_svalue), id, type),
    m_outer_size (outer_size),
    m_inner_svalue (inner_svalue)
  {
*************** repeated_svalue::maybe_fold_bits_within
*** 1438,1447 ****
  
  /* bits_within_svalue'c ctor.  */
  
! bits_within_svalue::bits_within_svalue (tree type,
  					const bit_range &bits,
  					const svalue *inner_svalue)
! : svalue (complexity (inner_svalue), type),
    m_bits (bits),
    m_inner_svalue (inner_svalue)
  {
--- 1600,1610 ----
  
  /* bits_within_svalue'c ctor.  */
  
! bits_within_svalue::bits_within_svalue (symbol::id_t id,
! 					tree type,
  					const bit_range &bits,
  					const svalue *inner_svalue)
! : svalue (complexity (inner_svalue), id, type),
    m_bits (bits),
    m_inner_svalue (inner_svalue)
  {
*************** unmergeable_svalue::implicitly_live_p (c
*** 1736,1743 ****
  
  /* class compound_svalue : public svalue.  */
  
! compound_svalue::compound_svalue (tree type, const binding_map &map)
! : svalue (calc_complexity (map), type), m_map (map)
  {
  #if CHECKING_P
    for (iterator_t iter = begin (); iter != end (); ++iter)
--- 1899,1908 ----
  
  /* class compound_svalue : public svalue.  */
  
! compound_svalue::compound_svalue (symbol::id_t id,
! 				  tree type,
! 				  const binding_map &map)
! : svalue (calc_complexity (map), id, type), m_map (map)
  {
  #if CHECKING_P
    for (iterator_t iter = begin (); iter != end (); ++iter)
*************** conjured_svalue::dump_to_pp (pretty_prin
*** 1904,1910 ****
    else
      {
        pp_string (pp, "conjured_svalue (");
!       pp_string (pp, ", ");
        pp_gimple_stmt_1 (pp, m_stmt, 0, (dump_flags_t)0);
        pp_string (pp, ", ");
        m_id_reg->dump_to_pp (pp, simple);
--- 2069,2079 ----
    else
      {
        pp_string (pp, "conjured_svalue (");
!       if (get_type ())
! 	{
! 	  print_quoted_type (pp, get_type ());
! 	  pp_string (pp, ", ");
! 	}
        pp_gimple_stmt_1 (pp, m_stmt, 0, (dump_flags_t)0);
        pp_string (pp, ", ");
        m_id_reg->dump_to_pp (pp, simple);
*************** conjured_svalue::accept (visitor *v) con
*** 1921,1926 ****
--- 2090,2106 ----
    v->visit_conjured_svalue (this);
  }
  
+ /* Return true iff this conjured_svalue is for the LHS of the
+    stmt that conjured it.  */
+ 
+ bool
+ conjured_svalue::lhs_value_p () const
+ {
+   if (tree decl = m_id_reg->maybe_get_decl ())
+     return decl == gimple_get_lhs (m_stmt);
+   return false;
+ }
+ 
  /* class asm_output_svalue : public svalue.  */
  
  /* Implementation of svalue::dump_to_pp vfunc for asm_output_svalue.  */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/svalue.h gcc-14.1.0/gcc/analyzer/svalue.h
*** gcc-13.2.0/gcc/analyzer/svalue.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/svalue.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Symbolic values.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Symbolic values.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,27 ****
  #ifndef GCC_ANALYZER_SVALUE_H
  #define GCC_ANALYZER_SVALUE_H
  
! #include "analyzer/complexity.h"
  #include "analyzer/store.h"
  #include "analyzer/program-point.h"
  
--- 21,27 ----
  #ifndef GCC_ANALYZER_SVALUE_H
  #define GCC_ANALYZER_SVALUE_H
  
! #include "analyzer/symbol.h"
  #include "analyzer/store.h"
  #include "analyzer/program-point.h"
  
*************** enum svalue_kind
*** 86,92 ****
  
  /* An abstract base class representing a value held by a region of memory.  */
  
! class svalue
  {
  public:
    virtual ~svalue () {}
--- 86,92 ----
  
  /* An abstract base class representing a value held by a region of memory.  */
  
! class svalue : public symbol
  {
  public:
    virtual ~svalue () {}
*************** public:
*** 146,153 ****
  			      region_model_manager *mgr,
  			      model_merger *merger) const;
  
-   const complexity &get_complexity () const { return m_complexity; }
- 
    virtual void accept (visitor *v) const  = 0;
  
    bool live_p (const svalue_set *live_svalues,
--- 146,151 ----
*************** public:
*** 179,191 ****
  
    const region *maybe_get_deref_base_region () const;
  
   protected:
!   svalue (complexity c, tree type)
!   : m_complexity (c), m_type (type)
    {}
  
   private:
-   complexity m_complexity;
    tree m_type;
  };
  
--- 177,192 ----
  
    const region *maybe_get_deref_base_region () const;
  
+   bool maybe_print_for_user (pretty_printer *pp,
+ 			     const region_model &model,
+ 			     const svalue *outer_sval = nullptr) const;
+ 
   protected:
!   svalue (complexity c, symbol::id_t id, tree type)
!   : symbol (c, id), m_type (type)
    {}
  
   private:
    tree m_type;
  };
  
*************** public:
*** 224,231 ****
      const region *m_reg;
    };
  
!   region_svalue (tree type, const region *reg)
!   : svalue (complexity (reg), type),
      m_reg (reg)
    {
      gcc_assert (m_reg != NULL);
--- 225,232 ----
      const region *m_reg;
    };
  
!   region_svalue (symbol::id_t id, tree type, const region *reg)
!   : svalue (complexity (reg), id, type),
      m_reg (reg)
    {
      gcc_assert (m_reg != NULL);
*************** template <> struct default_hash_traits<r
*** 268,283 ****
  
  namespace ana {
  
! /* Concrete subclass of svalue representing a specific constant value.  */
  
  class constant_svalue : public svalue
  {
  public:
!   constant_svalue (tree cst_expr)
!   : svalue (complexity (1, 1), TREE_TYPE (cst_expr)), m_cst_expr (cst_expr)
    {
      gcc_assert (cst_expr);
      gcc_assert (CONSTANT_CLASS_P (cst_expr));
    }
  
    enum svalue_kind get_kind () const final override { return SK_CONSTANT; }
--- 269,317 ----
  
  namespace ana {
  
! /* Concrete subclass of svalue representing a specific constant value.
!    The type will either be the same as that of the underlying tree constant,
!    or NULL_TREE indicating the constant is intended to be "typeless".  */
  
  class constant_svalue : public svalue
  {
  public:
!   /* A support class for uniquifying instances of region_svalue.  */
!   struct key_t
!   {
!     key_t (tree type, tree cst)
!     : m_type (type), m_cst (cst)
!     {}
! 
!     hashval_t hash () const
!     {
!       inchash::hash hstate;
!       hstate.add_ptr (m_type);
!       hstate.add_ptr (m_cst);
!       return hstate.end ();
!     }
! 
!     bool operator== (const key_t &other) const
!     {
!       return (m_type == other.m_type && m_cst == other.m_cst);
!     }
! 
!     void mark_deleted () { m_type = reinterpret_cast<tree> (1); }
!     void mark_empty () { m_type = reinterpret_cast<tree> (2); }
!     bool is_deleted () const { return m_type == reinterpret_cast<tree> (1); }
!     bool is_empty () const { return m_type == reinterpret_cast<tree> (2); }
! 
!     tree m_type;
!     tree m_cst;
!   };
! 
!   constant_svalue (symbol::id_t id, tree type, tree cst_expr)
!   : svalue (complexity (1, 1), id, type),
!     m_cst_expr (cst_expr)
    {
      gcc_assert (cst_expr);
      gcc_assert (CONSTANT_CLASS_P (cst_expr));
+     gcc_assert (type == TREE_TYPE (cst_expr) || type == NULL_TREE);
    }
  
    enum svalue_kind get_kind () const final override { return SK_CONSTANT; }
*************** is_a_helper <const constant_svalue *>::t
*** 315,320 ****
--- 349,360 ----
    return sval->get_kind () == SK_CONSTANT;
  }
  
+ template <> struct default_hash_traits<constant_svalue::key_t>
+ : public member_function_hash_traits<constant_svalue::key_t>
+ {
+   static const bool empty_zero_p = false;
+ };
+ 
  namespace ana {
  
  /* Concrete subclass of svalue representing an unknowable value, the bottom
*************** namespace ana {
*** 325,332 ****
  class unknown_svalue : public svalue
  {
  public:
!   unknown_svalue (tree type)
!   : svalue (complexity (1, 1), type)
    {}
  
    enum svalue_kind get_kind () const final override { return SK_UNKNOWN; }
--- 365,372 ----
  class unknown_svalue : public svalue
  {
  public:
!   unknown_svalue (symbol::id_t id, tree type)
!   : svalue (complexity (1, 1), id, type)
    {}
  
    enum svalue_kind get_kind () const final override { return SK_UNKNOWN; }
*************** enum poison_kind
*** 353,358 ****
--- 393,401 ----
    /* For use to describe freed memory.  */
    POISON_KIND_FREED,
  
+   /* For use to describe deleted memory.  */
+   POISON_KIND_DELETED,
+ 
    /* For use on pointers to regions within popped stack frames.  */
    POISON_KIND_POPPED_STACK
  };
*************** public:
*** 394,401 ****
      tree m_type;
    };
  
!   poisoned_svalue (enum poison_kind kind, tree type)
!   : svalue (complexity (1, 1), type), m_kind (kind) {}
  
    enum svalue_kind get_kind () const final override { return SK_POISONED; }
    const poisoned_svalue *
--- 437,444 ----
      tree m_type;
    };
  
!   poisoned_svalue (enum poison_kind kind, symbol::id_t id, tree type)
!   : svalue (complexity (1, 1), id, type), m_kind (kind) {}
  
    enum svalue_kind get_kind () const final override { return SK_POISONED; }
    const poisoned_svalue *
*************** public:
*** 502,509 ****
    };
  
    setjmp_svalue (const setjmp_record &setjmp_record,
! 		  tree type)
!   : svalue (complexity (1, 1), type), m_setjmp_record (setjmp_record)
    {}
  
    enum svalue_kind get_kind () const final override { return SK_SETJMP; }
--- 545,553 ----
    };
  
    setjmp_svalue (const setjmp_record &setjmp_record,
! 		 symbol::id_t id,
! 		 tree type)
!   : svalue (complexity (1, 1), id, type), m_setjmp_record (setjmp_record)
    {}
  
    enum svalue_kind get_kind () const final override { return SK_SETJMP; }
*************** namespace ana {
*** 550,557 ****
  class initial_svalue : public svalue
  {
  public:
!   initial_svalue (tree type, const region *reg)
!   : svalue (complexity (reg), type), m_reg (reg)
    {
      gcc_assert (m_reg != NULL);
    }
--- 594,601 ----
  class initial_svalue : public svalue
  {
  public:
!   initial_svalue (symbol::id_t id, tree type, const region *reg)
!   : svalue (complexity (reg), id, type), m_reg (reg)
    {
      gcc_assert (m_reg != NULL);
    }
*************** public:
*** 624,631 ****
      const svalue *m_arg;
    };
  
!   unaryop_svalue (tree type, enum tree_code op, const svalue *arg)
!   : svalue (complexity (arg), type), m_op (op), m_arg (arg)
    {
      gcc_assert (arg->can_have_associated_state_p ());
    }
--- 668,676 ----
      const svalue *m_arg;
    };
  
!   unaryop_svalue (symbol::id_t id, tree type, enum tree_code op,
! 		  const svalue *arg)
!   : svalue (complexity (arg), id, type), m_op (op), m_arg (arg)
    {
      gcc_assert (arg->can_have_associated_state_p ());
    }
*************** public:
*** 713,723 ****
      const svalue *m_arg1;
    };
  
!   binop_svalue (tree type, enum tree_code op,
! 		 const svalue *arg0, const svalue *arg1)
    : svalue (complexity::from_pair (arg0->get_complexity (),
  				    arg1->get_complexity ()),
! 	     type),
      m_op (op), m_arg0 (arg0), m_arg1 (arg1)
    {
      gcc_assert (arg0->can_have_associated_state_p ());
--- 758,769 ----
      const svalue *m_arg1;
    };
  
!   binop_svalue (symbol::id_t id, tree type, enum tree_code op,
! 		const svalue *arg0, const svalue *arg1)
    : svalue (complexity::from_pair (arg0->get_complexity (),
  				    arg1->get_complexity ()),
! 	    id,
! 	    type),
      m_op (op), m_arg0 (arg0), m_arg1 (arg1)
    {
      gcc_assert (arg0->can_have_associated_state_p ());
*************** public:
*** 802,809 ****
      const svalue *m_parent_svalue;
      const region *m_subregion;
    };
!   sub_svalue (tree type, const svalue *parent_svalue,
! 	       const region *subregion);
  
    enum svalue_kind get_kind () const final override { return SK_SUB; }
    const sub_svalue *dyn_cast_sub_svalue () const final override
--- 848,855 ----
      const svalue *m_parent_svalue;
      const region *m_subregion;
    };
!   sub_svalue (symbol::id_t id, tree type, const svalue *parent_svalue,
! 	      const region *subregion);
  
    enum svalue_kind get_kind () const final override { return SK_SUB; }
    const sub_svalue *dyn_cast_sub_svalue () const final override
*************** public:
*** 883,889 ****
      const svalue *m_outer_size;
      const svalue *m_inner_svalue;
    };
!   repeated_svalue (tree type,
  		   const svalue *outer_size,
  		   const svalue *inner_svalue);
  
--- 929,936 ----
      const svalue *m_outer_size;
      const svalue *m_inner_svalue;
    };
!   repeated_svalue (symbol::id_t id,
! 		   tree type,
  		   const svalue *outer_size,
  		   const svalue *inner_svalue);
  
*************** public:
*** 970,976 ****
      bit_range m_bits;
      const svalue *m_inner_svalue;
    };
!   bits_within_svalue (tree type,
  		      const bit_range &bits,
  		      const svalue *inner_svalue);
  
--- 1017,1024 ----
      bit_range m_bits;
      const svalue *m_inner_svalue;
    };
!   bits_within_svalue (symbol::id_t id,
! 		      tree type,
  		      const bit_range &bits,
  		      const svalue *inner_svalue);
  
*************** namespace ana {
*** 1031,1038 ****
  class unmergeable_svalue : public svalue
  {
  public:
!   unmergeable_svalue (const svalue *arg)
!   : svalue (complexity (arg), arg->get_type ()), m_arg (arg)
    {
    }
  
--- 1079,1086 ----
  class unmergeable_svalue : public svalue
  {
  public:
!   unmergeable_svalue (symbol::id_t id, const svalue *arg)
!   : svalue (complexity (arg), id, arg->get_type ()), m_arg (arg)
    {
    }
  
*************** namespace ana {
*** 1071,1078 ****
  class placeholder_svalue : public svalue
  {
  public:
!   placeholder_svalue (tree type, const char *name)
!   : svalue (complexity (1, 1), type), m_name (name)
    {
    }
  
--- 1119,1126 ----
  class placeholder_svalue : public svalue
  {
  public:
!   placeholder_svalue (symbol::id_t id, tree type, const char *name)
!   : svalue (complexity (1, 1), id, type), m_name (name)
    {
    }
  
*************** public:
*** 1155,1164 ****
       DIR_UNKNOWN
      };
  
!   widening_svalue (tree type, const function_point &point,
  		   const svalue *base_sval, const svalue *iter_sval)
    : svalue (complexity::from_pair (base_sval->get_complexity (),
  				   iter_sval->get_complexity ()),
  	    type),
      m_point (point),
      m_base_sval (base_sval), m_iter_sval (iter_sval)
--- 1203,1213 ----
       DIR_UNKNOWN
      };
  
!   widening_svalue (symbol::id_t id, tree type, const function_point &point,
  		   const svalue *base_sval, const svalue *iter_sval)
    : svalue (complexity::from_pair (base_sval->get_complexity (),
  				   iter_sval->get_complexity ()),
+ 	    id,
  	    type),
      m_point (point),
      m_base_sval (base_sval), m_iter_sval (iter_sval)
*************** public:
*** 1260,1266 ****
      const binding_map *m_map_ptr;
    };
  
!   compound_svalue (tree type, const binding_map &map);
  
    enum svalue_kind get_kind () const final override { return SK_COMPOUND; }
    const compound_svalue *dyn_cast_compound_svalue () const final override
--- 1309,1315 ----
      const binding_map *m_map_ptr;
    };
  
!   compound_svalue (symbol::id_t id, tree type, const binding_map &map);
  
    enum svalue_kind get_kind () const final override { return SK_COMPOUND; }
    const compound_svalue *dyn_cast_compound_svalue () const final override
*************** public:
*** 1354,1361 ****
    /* A support class for uniquifying instances of conjured_svalue.  */
    struct key_t
    {
!     key_t (tree type, const gimple *stmt, const region *id_reg)
!     : m_type (type), m_stmt (stmt), m_id_reg (id_reg)
      {}
  
      hashval_t hash () const
--- 1403,1410 ----
    /* A support class for uniquifying instances of conjured_svalue.  */
    struct key_t
    {
!     key_t (tree type, const gimple *stmt, const region *id_reg, unsigned idx)
!     : m_type (type), m_stmt (stmt), m_id_reg (id_reg), m_idx (idx)
      {}
  
      hashval_t hash () const
*************** public:
*** 1371,1377 ****
      {
        return (m_type == other.m_type
  	      && m_stmt == other.m_stmt
! 	      && m_id_reg == other.m_id_reg);
      }
  
      /* Use m_stmt to mark empty/deleted, as m_type can be NULL for
--- 1420,1427 ----
      {
        return (m_type == other.m_type
  	      && m_stmt == other.m_stmt
! 	      && m_id_reg == other.m_id_reg
! 	      && m_idx == other.m_idx);
      }
  
      /* Use m_stmt to mark empty/deleted, as m_type can be NULL for
*************** public:
*** 1387,1397 ****
      tree m_type;
      const gimple *m_stmt;
      const region *m_id_reg;
    };
  
!   conjured_svalue (tree type, const gimple *stmt, const region *id_reg)
!   : svalue (complexity (id_reg), type),
!     m_stmt (stmt), m_id_reg (id_reg)
    {
      gcc_assert (m_stmt != NULL);
    }
--- 1437,1449 ----
      tree m_type;
      const gimple *m_stmt;
      const region *m_id_reg;
+     unsigned m_idx;
    };
  
!   conjured_svalue (symbol::id_t id, tree type, const gimple *stmt,
! 		   const region *id_reg, unsigned idx)
!   : svalue (complexity (id_reg), id, type),
!     m_stmt (stmt), m_id_reg (id_reg), m_idx (idx)
    {
      gcc_assert (m_stmt != NULL);
    }
*************** public:
*** 1407,1416 ****
--- 1459,1470 ----
  
    const gimple *get_stmt () const { return m_stmt; }
    const region *get_id_region () const { return m_id_reg; }
+   bool lhs_value_p () const;
  
   private:
    const gimple *m_stmt;
    const region *m_id_reg;
+   unsigned m_idx;
  };
  
  } // namespace ana
*************** public:
*** 1501,1512 ****
      const svalue *m_input_arr[MAX_INPUTS];
    };
  
!   asm_output_svalue (tree type,
  		     const char *asm_string,
  		     unsigned output_idx,
  		     unsigned num_outputs,
  		     const vec<const svalue *> &inputs)
!   : svalue (complexity::from_vec_svalue (inputs), type),
      m_asm_string (asm_string),
      m_output_idx (output_idx),
      m_num_outputs (num_outputs),
--- 1555,1567 ----
      const svalue *m_input_arr[MAX_INPUTS];
    };
  
!   asm_output_svalue (symbol::id_t id,
! 		     tree type,
  		     const char *asm_string,
  		     unsigned output_idx,
  		     unsigned num_outputs,
  		     const vec<const svalue *> &inputs)
!   : svalue (complexity::from_vec_svalue (inputs), id, type),
      m_asm_string (asm_string),
      m_output_idx (output_idx),
      m_num_outputs (num_outputs),
*************** public:
*** 1634,1643 ****
      const svalue *m_input_arr[MAX_INPUTS];
    };
  
!   const_fn_result_svalue (tree type,
  			  tree fndecl,
  			  const vec<const svalue *> &inputs)
!   : svalue (complexity::from_vec_svalue (inputs), type),
      m_fndecl (fndecl),
      m_num_inputs (inputs.length ())
    {
--- 1689,1699 ----
      const svalue *m_input_arr[MAX_INPUTS];
    };
  
!   const_fn_result_svalue (symbol::id_t id,
! 			  tree type,
  			  tree fndecl,
  			  const vec<const svalue *> &inputs)
!   : svalue (complexity::from_vec_svalue (inputs), id, type),
      m_fndecl (fndecl),
      m_num_inputs (inputs.length ())
    {
diff -Nrcpad gcc-13.2.0/gcc/analyzer/symbol.cc gcc-14.1.0/gcc/analyzer/symbol.cc
*** gcc-13.2.0/gcc/analyzer/symbol.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/symbol.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,43 ----
+ /* Base class for svalues and regions.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #define INCLUDE_MEMORY
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tree.h"
+ #include "analyzer/analyzer.h"
+ #include "analyzer/symbol.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ namespace ana {
+ 
+ /* Compare SYM1 and SYM2 by id.  */
+ 
+ int
+ symbol::cmp_ids (const symbol *sym1, const symbol *sym2)
+ {
+   return (long)sym1->get_id () - (long)sym2->get_id ();
+ }
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/symbol.h gcc-14.1.0/gcc/analyzer/symbol.h
*** gcc-13.2.0/gcc/analyzer/symbol.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/analyzer/symbol.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,53 ----
+ /* Base class for svalues and regions.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+    Contributed by David Malcolm <dmalcolm@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_ANALYZER_SYMBOL_H
+ #define GCC_ANALYZER_SYMBOL_H
+ 
+ #include "analyzer/complexity.h"
+ 
+ namespace ana {
+ 
+ /* Base class for svalues and regions: has a complexity and a numeric ID.  */
+ 
+ class symbol
+ {
+  public:
+   typedef unsigned id_t;
+ 
+   const complexity &get_complexity () const { return m_complexity; }
+ 
+   id_t get_id () const { return m_id; }
+   static int cmp_ids (const symbol *s1, const symbol *s2);
+ 
+  protected:
+   symbol (complexity c, unsigned id)
+   : m_complexity (c),
+     m_id (id)
+   {}
+ 
+  private:
+   complexity m_complexity;
+   id_t m_id; // for deterministic sorting at this stage, for dumps
+ };
+ 
+ } // namespace ana
+ 
+ #endif /* GCC_ANALYZER_SYMBOL_H */
diff -Nrcpad gcc-13.2.0/gcc/analyzer/trimmed-graph.cc gcc-14.1.0/gcc/analyzer/trimmed-graph.cc
*** gcc-13.2.0/gcc/analyzer/trimmed-graph.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/trimmed-graph.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/trimmed-graph.h gcc-14.1.0/gcc/analyzer/trimmed-graph.h
*** gcc-13.2.0/gcc/analyzer/trimmed-graph.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/trimmed-graph.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/analyzer/varargs.cc gcc-14.1.0/gcc/analyzer/varargs.cc
*** gcc-13.2.0/gcc/analyzer/varargs.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/varargs.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Implementation of <stdarg.h> within analyzer.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Implementation of <stdarg.h> within analyzer.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 41,47 ****
  #include "analyzer/supergraph.h"
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/exploded-graph.h"
- #include "diagnostic-metadata.h"
  #include "analyzer/call-details.h"
  
  #if ENABLE_ANALYZER
--- 41,46 ----
*************** private:
*** 242,251 ****
  /* va_list_state_machine's ctor.  */
  
  va_list_state_machine::va_list_state_machine (logger *logger)
! : state_machine ("va_list", logger)
  {
-   m_started = add_state ("started");
-   m_ended = add_state ("ended");
  }
  
  /* Implementation of the various "va_*" functions for
--- 241,250 ----
  /* va_list_state_machine's ctor.  */
  
  va_list_state_machine::va_list_state_machine (logger *logger)
! : state_machine ("va_list", logger),
!   m_started (add_state ("started")),
!   m_ended (add_state ("ended"))
  {
  }
  
  /* Implementation of the various "va_*" functions for
*************** public:
*** 403,413 ****
  	    && 0 == strcmp (m_usage_fnname, other.m_usage_fnname));
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     auto_diagnostic_group d;
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "%qs after %qs", m_usage_fnname, "va_end");
    }
  
    const char *get_kind () const final override
--- 402,410 ----
  	    && 0 == strcmp (m_usage_fnname, other.m_usage_fnname));
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     return ctxt.warn ("%qs after %qs", m_usage_fnname, "va_end");
    }
  
    const char *get_kind () const final override
*************** public:
*** 478,488 ****
      return va_list_sm_diagnostic::subclass_equal_p (other);
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
!     auto_diagnostic_group d;
!     return warning_at (rich_loc, get_controlling_option (),
! 		       "missing call to %qs", "va_end");
    }
  
    const char *get_kind () const final override { return "va_list_leak"; }
--- 475,483 ----
      return va_list_sm_diagnostic::subclass_equal_p (other);
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
!     return ctxt.warn ("missing call to %qs", "va_end");
    }
  
    const char *get_kind () const final override { return "va_list_leak"; }
*************** public:
*** 892,909 ****
      return OPT_Wanalyzer_va_arg_type_mismatch;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     auto_diagnostic_group d;
-     diagnostic_metadata m;
      /* "CWE-686: Function Call With Incorrect Argument Type".  */
!     m.add_cwe (686);
      bool warned
!       = warning_meta (rich_loc, m, get_controlling_option (),
! 		      "%<va_arg%> expected %qT but received %qT"
! 		      " for variadic argument %i of %qE",
! 		      m_expected_type, m_actual_type,
! 		      get_variadic_index_for_diagnostic (), m_va_list_tree);
      return warned;
    }
  
--- 887,901 ----
      return OPT_Wanalyzer_va_arg_type_mismatch;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* "CWE-686: Function Call With Incorrect Argument Type".  */
!     ctxt.add_cwe (686);
      bool warned
!       = ctxt.warn ("%<va_arg%> expected %qT but received %qT"
! 		   " for variadic argument %i of %qE",
! 		   m_expected_type, m_actual_type,
! 		   get_variadic_index_for_diagnostic (), m_va_list_tree);
      return warned;
    }
  
*************** public:
*** 942,956 ****
      return OPT_Wanalyzer_va_list_exhausted;
    }
  
!   bool emit (rich_location *rich_loc) final override
    {
-     auto_diagnostic_group d;
-     diagnostic_metadata m;
      /* CWE-685: Function Call With Incorrect Number of Arguments.  */
!     m.add_cwe (685);
!     bool warned = warning_meta (rich_loc, m, get_controlling_option (),
! 				"%qE has no more arguments (%i consumed)",
! 				m_va_list_tree, get_num_consumed ());
      return warned;
    }
  
--- 934,945 ----
      return OPT_Wanalyzer_va_list_exhausted;
    }
  
!   bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* CWE-685: Function Call With Incorrect Number of Arguments.  */
!     ctxt.add_cwe (685);
!     bool warned = ctxt.warn ("%qE has no more arguments (%i consumed)",
! 			     m_va_list_tree, get_num_consumed ());
      return warned;
    }
  
*************** public:
*** 961,973 ****
    }
  };
  
! /* Return true if it's OK to copy a value from ARG_TYPE to LHS_TYPE via
     va_arg (where argument promotion has already happened).  */
  
  static bool
! va_arg_compatible_types_p (tree lhs_type, tree arg_type)
  {
!   return compat_types_p (arg_type, lhs_type);
  }
  
  /* If AP_SVAL is a pointer to a var_arg_region, return that var_arg_region.
--- 950,992 ----
    }
  };
  
! static bool
! representable_in_integral_type_p (const svalue &sval, const_tree type)
! {
!   gcc_assert (INTEGRAL_TYPE_P (type));
! 
!   if (tree cst = sval.maybe_get_constant ())
!     return wi::fits_to_tree_p (wi::to_wide (cst), type);
! 
!   return true;
! }
! 
! /* Return true if it's OK to copy ARG_SVAL from ARG_TYPE to LHS_TYPE via
     va_arg (where argument promotion has already happened).  */
  
  static bool
! va_arg_compatible_types_p (tree lhs_type, tree arg_type, const svalue &arg_sval)
  {
!   if (compat_types_p (arg_type, lhs_type))
!     return true;
! 
!   /* It's OK if both types are integer types, where one is signed and the
!      other type the corresponding unsigned type, when the value is
!      representable in both types.  */
!   if (INTEGRAL_TYPE_P (lhs_type)
!       && INTEGRAL_TYPE_P (arg_type)
!       && TYPE_UNSIGNED (lhs_type) != TYPE_UNSIGNED (arg_type)
!       && TYPE_PRECISION (lhs_type) == TYPE_PRECISION (arg_type)
!       && representable_in_integral_type_p (arg_sval, lhs_type)
!       && representable_in_integral_type_p (arg_sval, arg_type))
!     return true;
! 
!   /* It's OK if one type is a pointer to void and the other is a
!      pointer to a character type.
!      This is handled by compat_types_p.  */
! 
!   /* Otherwise the types are not compatible.  */
!   return false;
  }
  
  /* If AP_SVAL is a pointer to a var_arg_region, return that var_arg_region.
*************** kf_va_arg::impl_call_pre (const call_det
*** 1007,1012 ****
--- 1026,1033 ----
    tree va_list_tree = get_va_list_diag_arg (cd.get_arg_tree (0));
    ap_sval = model->check_for_poison (ap_sval, va_list_tree, ap_reg, ctxt);
  
+   cd.set_any_lhs_with_defaults ();
+ 
    if (const region *impl_reg = ap_sval->maybe_get_region ())
      {
        const svalue *old_impl_sval = model->get_store_value (impl_reg, ctxt);
*************** kf_va_arg::impl_call_pre (const call_det
*** 1031,1037 ****
  		{
  		  tree lhs_type = cd.get_lhs_type ();
  		  tree arg_type = arg_sval->get_type ();
! 		  if (va_arg_compatible_types_p (lhs_type, arg_type))
  		    cd.maybe_set_lhs (arg_sval);
  		  else
  		    {
--- 1052,1058 ----
  		{
  		  tree lhs_type = cd.get_lhs_type ();
  		  tree arg_type = arg_sval->get_type ();
! 		  if (va_arg_compatible_types_p (lhs_type, arg_type, *arg_sval))
  		    cd.maybe_set_lhs (arg_sval);
  		  else
  		    {
diff -Nrcpad gcc-13.2.0/gcc/analyzer/varargs.dot gcc-14.1.0/gcc/analyzer/varargs.dot
*** gcc-13.2.0/gcc/analyzer/varargs.dot	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/analyzer/varargs.dot	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* An overview of the state machine from varargs.cc
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* An overview of the state machine from varargs.cc
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/array-traits.h gcc-14.1.0/gcc/array-traits.h
*** gcc-13.2.0/gcc/array-traits.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/array-traits.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Descriptions of array-like objects.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Descriptions of array-like objects.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/asan.cc gcc-14.1.0/gcc/asan.cc
*** gcc-13.2.0/gcc/asan.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/asan.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
*************** has_stmt_been_instrumented_p (gimple *st
*** 1372,1378 ****
  	  return true;
  	}
      }
!   else if (is_gimple_call (stmt) && gimple_store_p (stmt))
      {
        asan_mem_ref r;
        asan_mem_ref_init (&r, NULL, 1);
--- 1372,1383 ----
  	  return true;
  	}
      }
!   else if (is_gimple_call (stmt)
! 	   && gimple_store_p (stmt)
! 	   && (gimple_call_builtin_p (stmt)
! 	       || gimple_call_internal_p (stmt)
! 	       || !aggregate_value_p (TREE_TYPE (gimple_call_lhs (stmt)),
! 				      gimple_call_fntype (stmt))))
      {
        asan_mem_ref r;
        asan_mem_ref_init (&r, NULL, 1);
*************** asan_clear_shadow (rtx shadow_mem, HOST_
*** 1481,1490 ****
  void
  asan_function_start (void)
  {
!   section *fnsec = function_section (current_function_decl);
!   switch_to_section (fnsec);
!   ASM_OUTPUT_DEBUG_LABEL (asm_out_file, "LASANPC",
! 			 current_function_funcdef_no);
  }
  
  /* Return number of shadow bytes that are occupied by a local variable
--- 1486,1492 ----
  void
  asan_function_start (void)
  {
!   ASM_OUTPUT_DEBUG_LABEL (asm_out_file, "LASANPC", current_function_funcdef_no);
  }
  
  /* Return number of shadow bytes that are occupied by a local variable
*************** asan_emit_stack_protection (rtx base, rt
*** 1909,1927 ****
      }
    str_cst = asan_pp_string (&asan_pp);
  
    /* Emit the prologue sequence.  */
    if (asan_frame_size > 32 && asan_frame_size <= 65536 && pbase
        && param_asan_use_after_return)
      {
        use_after_return_class = floor_log2 (asan_frame_size - 1) - 5;
        /* __asan_stack_malloc_N guarantees alignment
  	 N < 6 ? (64 << N) : 4096 bytes.  */
        if (alignb > (use_after_return_class < 6
  		    ? (64U << use_after_return_class) : 4096U))
  	use_after_return_class = -1;
!       else if (alignb > ASAN_RED_ZONE_SIZE && (asan_frame_size & (alignb - 1)))
! 	base_align_bias = ((asan_frame_size + alignb - 1)
! 			   & ~(alignb - HOST_WIDE_INT_1)) - asan_frame_size;
      }
  
    /* Align base if target is STRICT_ALIGNMENT.  */
--- 1911,1949 ----
      }
    str_cst = asan_pp_string (&asan_pp);
  
+   gcc_checking_assert (offsets[0] == (crtl->stack_protect_guard
+ 				      ? -ASAN_RED_ZONE_SIZE : 0));
    /* Emit the prologue sequence.  */
    if (asan_frame_size > 32 && asan_frame_size <= 65536 && pbase
        && param_asan_use_after_return)
      {
+       HOST_WIDE_INT adjusted_frame_size = asan_frame_size;
+       /* The stack protector guard is allocated at the top of the frame
+ 	 and cfgexpand.cc then uses align_frame_offset (ASAN_RED_ZONE_SIZE);
+ 	 while in that case we can still use asan_frame_size, we need to take
+ 	 that into account when computing base_align_bias.  */
+       if (alignb > ASAN_RED_ZONE_SIZE && crtl->stack_protect_guard)
+ 	adjusted_frame_size += ASAN_RED_ZONE_SIZE;
        use_after_return_class = floor_log2 (asan_frame_size - 1) - 5;
        /* __asan_stack_malloc_N guarantees alignment
  	 N < 6 ? (64 << N) : 4096 bytes.  */
        if (alignb > (use_after_return_class < 6
  		    ? (64U << use_after_return_class) : 4096U))
  	use_after_return_class = -1;
!       else if (alignb > ASAN_RED_ZONE_SIZE
! 	       && (adjusted_frame_size & (alignb - 1)))
! 	{
! 	  base_align_bias
! 	    = ((adjusted_frame_size + alignb - 1)
! 	       & ~(alignb - HOST_WIDE_INT_1)) - adjusted_frame_size;
! 	  use_after_return_class
! 	    = floor_log2 (asan_frame_size + base_align_bias - 1) - 5;
! 	  if (use_after_return_class > 10)
! 	    {
! 	      base_align_bias = 0;
! 	      use_after_return_class = -1;
! 	    }
! 	}
      }
  
    /* Align base if target is STRICT_ALIGNMENT.  */
*************** asan_emit_stack_protection (rtx base, rt
*** 2006,2011 ****
--- 2028,2034 ----
    DECL_INITIAL (decl) = decl;
    TREE_ASM_WRITTEN (decl) = 1;
    TREE_ASM_WRITTEN (id) = 1;
+   DECL_ALIGN_RAW (decl) = DECL_ALIGN_RAW (current_function_decl);
    emit_move_insn (mem, expand_normal (build_fold_addr_expr (decl)));
    shadow_base = expand_binop (Pmode, lshr_optab, base,
  			      gen_int_shift_amount (Pmode, ASAN_SHADOW_SHIFT),
*************** asan_protect_global (tree decl, bool ign
*** 2291,2296 ****
--- 2314,2321 ----
        || (DECL_SECTION_NAME (decl) != NULL
  	  && !symtab_node::get (decl)->implicit_section
  	  && !section_sanitized_p (DECL_SECTION_NAME (decl)))
+       /* Don't protect variables in non-generic address-space.  */
+       || !ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (TREE_TYPE (decl)))
        || DECL_SIZE (decl) == 0
        || ASAN_RED_ZONE_SIZE * BITS_PER_UNIT > MAX_OFILE_ALIGNMENT
        || TREE_CODE (DECL_SIZE_UNIT (decl)) != INTEGER_CST
*************** maybe_create_ssa_name (location_t loc, t
*** 2569,2575 ****
    gimple *g = gimple_build_assign (make_ssa_name (TREE_TYPE (base)), base);
    gimple_set_location (g, loc);
    if (before_p)
!     gsi_insert_before (iter, g, GSI_SAME_STMT);
    else
      gsi_insert_after (iter, g, GSI_NEW_STMT);
    return gimple_assign_lhs (g);
--- 2594,2600 ----
    gimple *g = gimple_build_assign (make_ssa_name (TREE_TYPE (base)), base);
    gimple_set_location (g, loc);
    if (before_p)
!     gsi_safe_insert_before (iter, g);
    else
      gsi_insert_after (iter, g, GSI_NEW_STMT);
    return gimple_assign_lhs (g);
*************** maybe_cast_to_ptrmode (location_t loc, t
*** 2588,2594 ****
  				  NOP_EXPR, len);
    gimple_set_location (g, loc);
    if (before_p)
!     gsi_insert_before (iter, g, GSI_SAME_STMT);
    else
      gsi_insert_after (iter, g, GSI_NEW_STMT);
    return gimple_assign_lhs (g);
--- 2613,2619 ----
  				  NOP_EXPR, len);
    gimple_set_location (g, loc);
    if (before_p)
!     gsi_safe_insert_before (iter, g);
    else
      gsi_insert_after (iter, g, GSI_NEW_STMT);
    return gimple_assign_lhs (g);
*************** build_check_stmt (location_t loc, tree b
*** 2679,2685 ****
  						 align / BITS_PER_UNIT));
    gimple_set_location (g, loc);
    if (before_p)
!     gsi_insert_before (&gsi, g, GSI_SAME_STMT);
    else
      {
        gsi_insert_after (&gsi, g, GSI_NEW_STMT);
--- 2704,2710 ----
  						 align / BITS_PER_UNIT));
    gimple_set_location (g, loc);
    if (before_p)
!     gsi_safe_insert_before (&gsi, g);
    else
      {
        gsi_insert_after (&gsi, g, GSI_NEW_STMT);
*************** instrument_derefs (gimple_stmt_iterator
*** 2750,2757 ****
    if (VAR_P (inner) && DECL_HARD_REGISTER (inner))
      return;
  
    poly_int64 decl_size;
!   if ((VAR_P (inner) || TREE_CODE (inner) == RESULT_DECL)
        && offset == NULL_TREE
        && DECL_SIZE (inner)
        && poly_int_tree_p (DECL_SIZE (inner), &decl_size)
--- 2775,2788 ----
    if (VAR_P (inner) && DECL_HARD_REGISTER (inner))
      return;
  
+   /* Accesses to non-generic address-spaces should not be instrumented.  */
+   if (!ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (TREE_TYPE (inner))))
+     return;
+ 
    poly_int64 decl_size;
!   if ((VAR_P (inner)
!        || (TREE_CODE (inner) == RESULT_DECL
! 	   && !aggregate_value_p (inner, current_function_decl)))
        && offset == NULL_TREE
        && DECL_SIZE (inner)
        && poly_int_tree_p (DECL_SIZE (inner), &decl_size)
*************** maybe_instrument_call (gimple_stmt_itera
*** 2999,3004 ****
--- 3030,3038 ----
  	      break;
  	    }
  	}
+       if (gimple_call_internal_p (stmt, IFN_ABNORMAL_DISPATCHER))
+ 	/* Don't instrument this.  */
+ 	return false;
        /* If a function does not return, then we must handle clearing up the
  	 shadow stack accordingly.  For ASAN we can simply set the entire stack
  	 to "valid" for accesses by setting the shadow space to 0 and all
*************** maybe_instrument_call (gimple_stmt_itera
*** 3018,3029 ****
  	  tree decl = builtin_decl_implicit (BUILT_IN_ASAN_HANDLE_NO_RETURN);
  	  gimple *g = gimple_build_call (decl, 0);
  	  gimple_set_location (g, gimple_location (stmt));
! 	  gsi_insert_before (iter, g, GSI_SAME_STMT);
  	}
      }
  
    bool instrumented = false;
!   if (gimple_store_p (stmt))
      {
        tree ref_expr = gimple_call_lhs (stmt);
        instrument_derefs (iter, ref_expr,
--- 3052,3067 ----
  	  tree decl = builtin_decl_implicit (BUILT_IN_ASAN_HANDLE_NO_RETURN);
  	  gimple *g = gimple_build_call (decl, 0);
  	  gimple_set_location (g, gimple_location (stmt));
! 	  gsi_safe_insert_before (iter, g);
  	}
      }
  
    bool instrumented = false;
!   if (gimple_store_p (stmt)
!       && (gimple_call_builtin_p (stmt)
! 	  || gimple_call_internal_p (stmt)
! 	  || !aggregate_value_p (TREE_TYPE (gimple_call_lhs (stmt)),
! 				 gimple_call_fntype (stmt))))
      {
        tree ref_expr = gimple_call_lhs (stmt);
        instrument_derefs (iter, ref_expr,
*************** asan_expand_mark_ifn (gimple_stmt_iterat
*** 3795,3803 ****
      }
    tree len = gimple_call_arg (g, 2);
  
!   gcc_assert (tree_fits_shwi_p (len));
!   unsigned HOST_WIDE_INT size_in_bytes = tree_to_shwi (len);
!   gcc_assert (size_in_bytes);
  
    g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
  			   NOP_EXPR, base);
--- 3833,3839 ----
      }
    tree len = gimple_call_arg (g, 2);
  
!   gcc_assert (poly_int_tree_p (len));
  
    g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
  			   NOP_EXPR, base);
*************** asan_expand_mark_ifn (gimple_stmt_iterat
*** 3806,3814 ****
    tree base_addr = gimple_assign_lhs (g);
  
    /* Generate direct emission if size_in_bytes is small.  */
!   if (size_in_bytes
!       <= (unsigned)param_use_after_scope_direct_emission_threshold)
      {
        const unsigned HOST_WIDE_INT shadow_size
  	= shadow_mem_size (size_in_bytes);
        const unsigned int shadow_align
--- 3842,3851 ----
    tree base_addr = gimple_assign_lhs (g);
  
    /* Generate direct emission if size_in_bytes is small.  */
!   unsigned threshold = param_use_after_scope_direct_emission_threshold;
!   if (tree_fits_uhwi_p (len) && tree_to_uhwi (len) <= threshold)
      {
+       unsigned HOST_WIDE_INT size_in_bytes = tree_to_uhwi (len);
        const unsigned HOST_WIDE_INT shadow_size
  	= shadow_mem_size (size_in_bytes);
        const unsigned int shadow_align
*************** asan_expand_mark_ifn (gimple_stmt_iterat
*** 3842,3848 ****
        g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
  			       NOP_EXPR, len);
        gimple_set_location (g, loc);
!       gsi_insert_before (iter, g, GSI_SAME_STMT);
        tree sz_arg = gimple_assign_lhs (g);
  
        tree fun
--- 3879,3885 ----
        g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
  			       NOP_EXPR, len);
        gimple_set_location (g, loc);
!       gsi_safe_insert_before (iter, g);
        tree sz_arg = gimple_assign_lhs (g);
  
        tree fun
diff -Nrcpad gcc-13.2.0/gcc/asan.h gcc-14.1.0/gcc/asan.h
*** gcc-13.2.0/gcc/asan.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/asan.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
*************** extern hash_set<tree> *asan_handled_vari
*** 185,192 ****
  inline bool
  asan_intercepted_p (enum built_in_function fcode)
  {
    if (hwasan_sanitize_p ())
!     return false;
  
    return fcode == BUILT_IN_INDEX
  	 || fcode == BUILT_IN_MEMCHR
--- 185,197 ----
  inline bool
  asan_intercepted_p (enum built_in_function fcode)
  {
+   /* This list should be kept up-to-date with upstream's version at
+      compiler-rt/lib/hwasan/hwasan_platform_interceptors.h.  */
    if (hwasan_sanitize_p ())
!     return fcode == BUILT_IN_MEMCMP
! 	 || fcode == BUILT_IN_MEMCPY
! 	 || fcode == BUILT_IN_MEMMOVE
! 	 || fcode == BUILT_IN_MEMSET;
  
    return fcode == BUILT_IN_INDEX
  	 || fcode == BUILT_IN_MEMCHR
diff -Nrcpad gcc-13.2.0/gcc/attr-fnspec.h gcc-14.1.0/gcc/attr-fnspec.h
*** gcc-13.2.0/gcc/attr-fnspec.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/attr-fnspec.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Handling of fnspec attribute specifiers
!    Copyright (C) 2008-2023 Free Software Foundation, Inc.
     Contributed by Richard Guenther  <rguenther@suse.de>
  
     This file is part of GCC.
--- 1,5 ----
  /* Handling of fnspec attribute specifiers
!    Copyright (C) 2008-2024 Free Software Foundation, Inc.
     Contributed by Richard Guenther  <rguenther@suse.de>
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/attribs.cc gcc-14.1.0/gcc/attribs.cc
*** gcc-13.2.0/gcc/attribs.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/attribs.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Functions dealing with attribute handling, used by most front ends.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions dealing with attribute handling, used by most front ends.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 27,32 ****
--- 27,33 ----
  #include "diagnostic-core.h"
  #include "attribs.h"
  #include "fold-const.h"
+ #include "ipa-strub.h"
  #include "stor-layout.h"
  #include "langhooks.h"
  #include "plugin.h"
*************** along with GCC; see the file COPYING3.
*** 39,45 ****
  
  /* Table of the tables of attributes (common, language, format, machine)
     searched.  */
! static const struct attribute_spec *attribute_tables[4];
  
  /* Substring representation.  */
  
--- 40,46 ----
  
  /* Table of the tables of attributes (common, language, format, machine)
     searched.  */
! static array_slice<const scoped_attribute_specs *const> attribute_tables[2];
  
  /* Substring representation.  */
  
*************** static const struct attribute_spec *look
*** 102,138 ****
  
  static bool attributes_initialized = false;
  
! /* Default empty table of attributes.  */
! 
! static const struct attribute_spec empty_attribute_table[] =
! {
!   { NULL, 0, 0, false, false, false, false, NULL, NULL }
! };
  
! /* Return base name of the attribute.  Ie '__attr__' is turned into 'attr'.
!    To avoid need for copying, we simply return length of the string.  */
  
! static void
! extract_attribute_substring (struct substring *str)
  {
!   canonicalize_attr_name (str->str, str->length);
  }
  
! /* Insert an array of attributes ATTRIBUTES into a namespace.  This
!    array must be NULL terminated.  NS is the name of attribute
!    namespace.  IGNORED_P is true iff all unknown attributes in this
!    namespace should be ignored for the purposes of -Wattributes.  The
!    function returns the namespace into which the attributes have been
!    registered.  */
  
  scoped_attributes *
! register_scoped_attributes (const struct attribute_spec *attributes,
! 			    const char *ns, bool ignored_p /*=false*/)
  {
    scoped_attributes *result = NULL;
  
    /* See if we already have attributes in the namespace NS.  */
!   result = find_attribute_namespace (ns);
  
    if (result == NULL)
      {
--- 103,134 ----
  
  static bool attributes_initialized = false;
  
! /* Do not use directly; go through get_gnu_namespace instead.  */
! static GTY(()) tree gnu_namespace_cache;
  
! /* Return the IDENTIFIER_NODE for the gnu namespace.  */
  
! static tree
! get_gnu_namespace ()
  {
!   if (!gnu_namespace_cache)
!     gnu_namespace_cache = get_identifier ("gnu");
!   return gnu_namespace_cache;
  }
  
! /* Insert SPECS into its namespace.  IGNORED_P is true iff all unknown
!    attributes in this namespace should be ignored for the purposes of
!    -Wattributes.  The function returns the namespace into which the
!    attributes have been registered.  */
  
  scoped_attributes *
! register_scoped_attributes (const scoped_attribute_specs &specs,
! 			    bool ignored_p /*=false*/)
  {
    scoped_attributes *result = NULL;
  
    /* See if we already have attributes in the namespace NS.  */
!   result = find_attribute_namespace (specs.ns);
  
    if (result == NULL)
      {
*************** register_scoped_attributes (const struct
*** 143,149 ****
  	attributes_table.create (64);
  
        memset (&sa, 0, sizeof (sa));
!       sa.ns = ns;
        sa.attributes.create (64);
        sa.ignored_p = ignored_p;
        result = attributes_table.safe_push (sa);
--- 139,145 ----
  	attributes_table.create (64);
  
        memset (&sa, 0, sizeof (sa));
!       sa.ns = specs.ns;
        sa.attributes.create (64);
        sa.ignored_p = ignored_p;
        result = attributes_table.safe_push (sa);
*************** register_scoped_attributes (const struct
*** 153,162 ****
      result->ignored_p |= ignored_p;
  
    /* Really add the attributes to their namespace now.  */
!   for (unsigned i = 0; attributes[i].name != NULL; ++i)
      {
!       result->attributes.safe_push (attributes[i]);
!       register_scoped_attribute (&attributes[i], result);
      }
  
    gcc_assert (result != NULL);
--- 149,158 ----
      result->ignored_p |= ignored_p;
  
    /* Really add the attributes to their namespace now.  */
!   for (const attribute_spec &attribute : specs.attributes)
      {
!       result->attributes.safe_push (attribute);
!       register_scoped_attribute (&attribute, result);
      }
  
    gcc_assert (result != NULL);
*************** find_attribute_namespace (const char* ns
*** 183,231 ****
  static void
  check_attribute_tables (void)
  {
!   for (size_t i = 0; i < ARRAY_SIZE (attribute_tables); i++)
!     for (size_t j = 0; attribute_tables[i][j].name != NULL; j++)
!       {
! 	/* The name must not begin and end with __.  */
! 	const char *name = attribute_tables[i][j].name;
! 	int len = strlen (name);
  
! 	gcc_assert (!(name[0] == '_' && name[1] == '_'
! 		      && name[len - 1] == '_' && name[len - 2] == '_'));
  
! 	/* The minimum and maximum lengths must be consistent.  */
! 	gcc_assert (attribute_tables[i][j].min_length >= 0);
  
! 	gcc_assert (attribute_tables[i][j].max_length == -1
! 		    || (attribute_tables[i][j].max_length
! 			>= attribute_tables[i][j].min_length));
  
! 	/* An attribute cannot require both a DECL and a TYPE.  */
! 	gcc_assert (!attribute_tables[i][j].decl_required
! 		    || !attribute_tables[i][j].type_required);
  
  	  /* If an attribute requires a function type, in particular
  	     it requires a type.  */
! 	gcc_assert (!attribute_tables[i][j].function_type_required
! 		    || attribute_tables[i][j].type_required);
!       }
! 
!   /* Check that each name occurs just once in each table.  */
!   for (size_t i = 0; i < ARRAY_SIZE (attribute_tables); i++)
!     for (size_t j = 0; attribute_tables[i][j].name != NULL; j++)
!       for (size_t k = j + 1; attribute_tables[i][k].name != NULL; k++)
! 	gcc_assert (strcmp (attribute_tables[i][j].name,
! 			    attribute_tables[i][k].name));
  
!   /* Check that no name occurs in more than one table.  Names that
!      begin with '*' are exempt, and may be overridden.  */
!   for (size_t i = 0; i < ARRAY_SIZE (attribute_tables); i++)
!     for (size_t j = i + 1; j < ARRAY_SIZE (attribute_tables); j++)
!       for (size_t k = 0; attribute_tables[i][k].name != NULL; k++)
! 	for (size_t l = 0; attribute_tables[j][l].name != NULL; l++)
! 	  gcc_assert (attribute_tables[i][k].name[0] == '*'
! 		      || strcmp (attribute_tables[i][k].name,
! 				 attribute_tables[j][l].name));
  }
  
  /* Used to stash pointers to allocated memory so that we can free them at
--- 179,218 ----
  static void
  check_attribute_tables (void)
  {
!   hash_set<pair_hash<nofree_string_hash, nofree_string_hash>> names;
  
!   for (auto scoped_array : attribute_tables)
!     for (auto scoped_attributes : scoped_array)
!       for (const attribute_spec &attribute : scoped_attributes->attributes)
! 	{
! 	  /* The name must not begin and end with __.  */
! 	  const char *name = attribute.name;
! 	  int len = strlen (name);
  
! 	  gcc_assert (!(name[0] == '_' && name[1] == '_'
! 			&& name[len - 1] == '_' && name[len - 2] == '_'));
  
! 	  /* The minimum and maximum lengths must be consistent.  */
! 	  gcc_assert (attribute.min_length >= 0);
  
! 	  gcc_assert (attribute.max_length == -1
! 		      || attribute.max_length >= attribute.min_length);
! 
! 	  /* An attribute cannot require both a DECL and a TYPE.  */
! 	  gcc_assert (!attribute.decl_required
! 		      || !attribute.type_required);
  
  	  /* If an attribute requires a function type, in particular
  	     it requires a type.  */
! 	  gcc_assert (!attribute.function_type_required
! 		      || attribute.type_required);
  
! 	  /* Check that no name occurs more than once.  Names that
! 	     begin with '*' are exempt, and may be overridden.  */
! 	  const char *ns = scoped_attributes->ns;
! 	  if (name[0] != '*' && names.add ({ ns ? ns : "", name }))
! 	    gcc_unreachable ();
! 	}
  }
  
  /* Used to stash pointers to allocated memory so that we can free them at
*************** handle_ignored_attributes_option (vec<ch
*** 281,287 ****
        canonicalize_attr_name (vendor_start, vendor_len);
        /* We perform all this hijinks so that we don't have to copy OPT.  */
        tree vendor_id = get_identifier_with_length (vendor_start, vendor_len);
!       const char *attr;
        /* In the "vendor::" case, we should ignore *any* attribute coming
  	 from this attribute namespace.  */
        if (attr_len > 0)
--- 268,274 ----
        canonicalize_attr_name (vendor_start, vendor_len);
        /* We perform all this hijinks so that we don't have to copy OPT.  */
        tree vendor_id = get_identifier_with_length (vendor_start, vendor_len);
!       array_slice<const attribute_spec> attrs;
        /* In the "vendor::" case, we should ignore *any* attribute coming
  	 from this attribute namespace.  */
        if (attr_len > 0)
*************** handle_ignored_attributes_option (vec<ch
*** 293,314 ****
  	    }
  	  canonicalize_attr_name (attr_start, attr_len);
  	  tree attr_id = get_identifier_with_length (attr_start, attr_len);
! 	  attr = IDENTIFIER_POINTER (attr_id);
  	  /* If we've already seen this vendor::attr, ignore it.  Attempting to
  	     register it twice would lead to a crash.  */
  	  if (lookup_scoped_attribute_spec (vendor_id, attr_id))
  	    continue;
  	}
!       else
! 	attr = nullptr;
!       /* Create a table with extra attributes which we will register.
! 	 We can't free it here, so squirrel away the pointers.  */
!       attribute_spec *table = new attribute_spec[2];
!       ignored_attributes_table.safe_push (table);
!       table[0] = { attr, 0, -2, false, false, false, false, nullptr, nullptr };
!       table[1] = { nullptr, 0, 0, false, false, false, false, nullptr,
! 		   nullptr };
!       register_scoped_attributes (table, IDENTIFIER_POINTER (vendor_id), !attr);
      }
  }
  
--- 280,302 ----
  	    }
  	  canonicalize_attr_name (attr_start, attr_len);
  	  tree attr_id = get_identifier_with_length (attr_start, attr_len);
! 	  const char *attr = IDENTIFIER_POINTER (attr_id);
  	  /* If we've already seen this vendor::attr, ignore it.  Attempting to
  	     register it twice would lead to a crash.  */
  	  if (lookup_scoped_attribute_spec (vendor_id, attr_id))
  	    continue;
+ 	  /* Create a table with extra attributes which we will register.
+ 	     We can't free it here, so squirrel away the pointers.  */
+ 	  attribute_spec *table = new attribute_spec {
+ 	    attr, 0, -2, false, false, false, false, nullptr, nullptr
+ 	  };
+ 	  ignored_attributes_table.safe_push (table);
+ 	  attrs = { table, 1 };
  	}
!       const scoped_attribute_specs scoped_specs = {
! 	IDENTIFIER_POINTER (vendor_id), { attrs }
!       };
!       register_scoped_attributes (scoped_specs, attrs.empty ());
      }
  }
  
*************** void
*** 318,324 ****
  free_attr_data ()
  {
    for (auto x : ignored_attributes_table)
!     delete[] x;
    ignored_attributes_table.release ();
  }
  
--- 306,312 ----
  free_attr_data ()
  {
    for (auto x : ignored_attributes_table)
!     delete x;
    ignored_attributes_table.release ();
  }
  
*************** free_attr_data ()
*** 328,354 ****
  void
  init_attributes (void)
  {
-   size_t i;
- 
    if (attributes_initialized)
      return;
  
!   attribute_tables[0] = lang_hooks.common_attribute_table;
!   attribute_tables[1] = lang_hooks.attribute_table;
!   attribute_tables[2] = lang_hooks.format_attribute_table;
!   attribute_tables[3] = targetm.attribute_table;
! 
!   /* Translate NULL pointers to pointers to the empty table.  */
!   for (i = 0; i < ARRAY_SIZE (attribute_tables); i++)
!     if (attribute_tables[i] == NULL)
!       attribute_tables[i] = empty_attribute_table;
  
    if (flag_checking)
      check_attribute_tables ();
  
!   for (i = 0; i < ARRAY_SIZE (attribute_tables); ++i)
!     /* Put all the GNU attributes into the "gnu" namespace.  */
!     register_scoped_attributes (attribute_tables[i], "gnu");
  
    vec<char *> *ignored = (vec<char *> *) flag_ignored_attributes;
    handle_ignored_attributes_option (ignored);
--- 316,333 ----
  void
  init_attributes (void)
  {
    if (attributes_initialized)
      return;
  
!   attribute_tables[0] = lang_hooks.attribute_table;
!   attribute_tables[1] = targetm.attribute_table;
  
    if (flag_checking)
      check_attribute_tables ();
  
!   for (auto scoped_array : attribute_tables)
!     for (auto scoped_attributes : scoped_array)
!       register_scoped_attributes (*scoped_attributes);
  
    vec<char *> *ignored = (vec<char *> *) flag_ignored_attributes;
    handle_ignored_attributes_option (ignored);
*************** lookup_scoped_attribute_spec (const_tree
*** 410,416 ****
  
    attr.str = IDENTIFIER_POINTER (name);
    attr.length = IDENTIFIER_LENGTH (name);
-   extract_attribute_substring (&attr);
    return attrs->attribute_hash->find_with_hash (&attr,
  						substring_hash (attr.str,
  							       	attr.length));
--- 389,394 ----
*************** lookup_attribute_spec (const_tree name)
*** 429,435 ****
        name = TREE_VALUE (name);
      }
    else
!     ns = get_identifier ("gnu");
    return lookup_scoped_attribute_spec (ns, name);
  }
  
--- 407,413 ----
        name = TREE_VALUE (name);
      }
    else
!     ns = get_gnu_namespace ();
    return lookup_scoped_attribute_spec (ns, name);
  }
  
*************** get_attribute_namespace (const_tree attr
*** 446,452 ****
  {
    if (cxx11_attribute_p (attr))
      return TREE_PURPOSE (TREE_PURPOSE (attr));
!   return get_identifier ("gnu");
  }
  
  /* Check LAST_DECL and NODE of the same symbol for attributes that are
--- 424,430 ----
  {
    if (cxx11_attribute_p (attr))
      return TREE_PURPOSE (TREE_PURPOSE (attr));
!   return get_gnu_namespace ();
  }
  
  /* Check LAST_DECL and NODE of the same symbol for attributes that are
*************** diag_attr_exclusions (tree last_decl, tr
*** 490,496 ****
    if (DECL_P (node))
      {
        attrs[0] = DECL_ATTRIBUTES (node);
!       attrs[1] = TYPE_ATTRIBUTES (TREE_TYPE (node));
      }
    else
      {
--- 468,479 ----
    if (DECL_P (node))
      {
        attrs[0] = DECL_ATTRIBUTES (node);
!       if (TREE_TYPE (node))
! 	attrs[1] = TYPE_ATTRIBUTES (TREE_TYPE (node));
!       else
! 	/* TREE_TYPE can be NULL e.g. while processing attributes on
! 	   enumerators.  */
! 	attrs[1] = NULL_TREE;
      }
    else
      {
*************** diag_attr_exclusions (tree last_decl, tr
*** 526,532 ****
  	    continue;
  
  	  if ((TREE_CODE (node) == FIELD_DECL
! 	       || TREE_CODE (node) == VAR_DECL)
  	      && !excl->variable)
  	    continue;
  
--- 509,515 ----
  	    continue;
  
  	  if ((TREE_CODE (node) == FIELD_DECL
! 	       || VAR_P (node))
  	      && !excl->variable)
  	    continue;
  
*************** attribute_ignored_p (tree attr)
*** 579,587 ****
      return false;
    if (tree ns = get_attribute_namespace (attr))
      {
-       if (attr_namespace_ignored_p (ns))
- 	return true;
        const attribute_spec *as = lookup_attribute_spec (TREE_PURPOSE (attr));
        if (as && as->max_length == -2)
  	return true;
      }
--- 562,570 ----
      return false;
    if (tree ns = get_attribute_namespace (attr))
      {
        const attribute_spec *as = lookup_attribute_spec (TREE_PURPOSE (attr));
+       if (as == NULL && attr_namespace_ignored_p (ns))
+ 	return true;
        if (as && as->max_length == -2)
  	return true;
      }
*************** attribute_ignored_p (const attribute_spe
*** 596,601 ****
--- 579,614 ----
    return as->max_length == -2;
  }
  
+ /* Return true if the ATTRS chain contains at least one attribute which
+    is not ignored.  */
+ 
+ bool
+ any_nonignored_attribute_p (tree attrs)
+ {
+   for (tree attr = attrs; attr; attr = TREE_CHAIN (attr))
+     if (!attribute_ignored_p (attr))
+       return true;
+ 
+   return false;
+ }
+ 
+ /* See whether LIST contains at least one instance of attribute ATTR
+    (possibly with different arguments).  Return the first such attribute
+    if so, otherwise return null.  */
+ 
+ static tree
+ find_same_attribute (const_tree attr, tree list)
+ {
+   if (list == NULL_TREE)
+     return NULL_TREE;
+   tree ns = get_attribute_namespace (attr);
+   tree name = get_attribute_name (attr);
+   return private_lookup_attribute (ns ? IDENTIFIER_POINTER (ns) : nullptr,
+ 				   IDENTIFIER_POINTER (name),
+ 				   ns ? IDENTIFIER_LENGTH (ns) : 0,
+ 				   IDENTIFIER_LENGTH (name), list);
+ }
+ 
  /* Process the attributes listed in ATTRIBUTES and install them in *NODE,
     which is either a DECL (including a TYPE_DECL) or a TYPE.  If a DECL,
     it should be modified in place; if a TYPE, a copy should be created
*************** decl_attributes (tree *node, tree attrib
*** 657,663 ****
       options to the attribute((target(...))) list.  */
    if (TREE_CODE (*node) == FUNCTION_DECL
        && current_target_pragma
!       && targetm.target_option.valid_attribute_p (*node, NULL_TREE,
  						  current_target_pragma, 0))
      {
        tree cur_attr = lookup_attribute ("target", attributes);
--- 670,677 ----
       options to the attribute((target(...))) list.  */
    if (TREE_CODE (*node) == FUNCTION_DECL
        && current_target_pragma
!       && targetm.target_option.valid_attribute_p (*node,
! 						  get_identifier ("target"),
  						  current_target_pragma, 0))
      {
        tree cur_attr = lookup_attribute ("target", attributes);
*************** decl_attributes (tree *node, tree attrib
*** 719,724 ****
--- 733,744 ----
  	      if (ns == NULL_TREE || !cxx11_attr_p)
  		warning (OPT_Wattributes, "%qE attribute directive ignored",
  			 name);
+ 	      else if ((flag_openmp || flag_openmp_simd)
+ 		       && is_attribute_p ("omp", ns)
+ 		       && is_attribute_p ("directive", name)
+ 		       && (VAR_P (*node)
+ 			   || TREE_CODE (*node) == FUNCTION_DECL))
+ 		continue;
  	      else
  		warning (OPT_Wattributes,
  			 "%<%E::%E%> scoped attribute directive ignored",
*************** decl_attributes (tree *node, tree attrib
*** 779,790 ****
  	  flags &= ~(int) ATTR_FLAG_TYPE_IN_PLACE;
  	}
  
!       if (spec->function_type_required && TREE_CODE (*anode) != FUNCTION_TYPE
! 	  && TREE_CODE (*anode) != METHOD_TYPE)
  	{
  	  if (TREE_CODE (*anode) == POINTER_TYPE
! 	      && (TREE_CODE (TREE_TYPE (*anode)) == FUNCTION_TYPE
! 		  || TREE_CODE (TREE_TYPE (*anode)) == METHOD_TYPE))
  	    {
  	      /* OK, this is a bit convoluted.  We can't just make a copy
  		 of the pointer type and modify its TREE_TYPE, because if
--- 799,809 ----
  	  flags &= ~(int) ATTR_FLAG_TYPE_IN_PLACE;
  	}
  
!       if (spec->function_type_required
! 	  && !FUNC_OR_METHOD_TYPE_P (*anode))
  	{
  	  if (TREE_CODE (*anode) == POINTER_TYPE
! 	      && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (*anode)))
  	    {
  	      /* OK, this is a bit convoluted.  We can't just make a copy
  		 of the pointer type and modify its TREE_TYPE, because if
*************** decl_attributes (tree *node, tree attrib
*** 820,826 ****
  
        if (TYPE_P (*anode)
  	  && (flags & (int) ATTR_FLAG_TYPE_IN_PLACE)
! 	  && TYPE_SIZE (*anode) != NULL_TREE)
  	{
  	  warning (OPT_Wattributes, "type attributes ignored after type is already defined");
  	  continue;
--- 839,845 ----
  
        if (TYPE_P (*anode)
  	  && (flags & (int) ATTR_FLAG_TYPE_IN_PLACE)
! 	  && COMPLETE_TYPE_P (*anode))
  	{
  	  warning (OPT_Wattributes, "type attributes ignored after type is already defined");
  	  continue;
*************** decl_attributes (tree *node, tree attrib
*** 857,863 ****
  	    }
  	}
  
!       if (no_add_attrs)
  	continue;
  
        if (spec->handler != NULL)
--- 876,885 ----
  	    }
  	}
  
!       if (no_add_attrs
! 	  /* Don't add attributes registered just for -Wno-attributes=foo::bar
! 	     purposes.  */
! 	  || attribute_ignored_p (attr))
  	continue;
  
        if (spec->handler != NULL)
*************** decl_attributes (tree *node, tree attrib
*** 893,899 ****
  	      TYPE_NAME (tt) = *node;
  	    }
  
! 	  *anode = cur_and_last_decl[0];
  	  if (ret == error_mark_node)
  	    {
  	      warning (OPT_Wattributes, "%qE attribute ignored", name);
--- 915,938 ----
  	      TYPE_NAME (tt) = *node;
  	    }
  
! 	  if (*anode != cur_and_last_decl[0])
! 	    {
! 	      /* Even if !spec->function_type_required, allow the attribute
! 		 handler to request the attribute to be applied to the function
! 		 type, rather than to the function pointer type, by setting
! 		 cur_and_last_decl[0] to the function type.  */
! 	      if (!fn_ptr_tmp
! 		  && POINTER_TYPE_P (*anode)
! 		  && TREE_TYPE (*anode) == cur_and_last_decl[0]
! 		  && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (*anode)))
! 		{
! 		  fn_ptr_tmp = TREE_TYPE (*anode);
! 		  fn_ptr_quals = TYPE_QUALS (*anode);
! 		  anode = &fn_ptr_tmp;
! 		}
! 	      *anode = cur_and_last_decl[0];
! 	    }
! 
  	  if (ret == error_mark_node)
  	    {
  	      warning (OPT_Wattributes, "%qE attribute ignored", name);
*************** decl_attributes (tree *node, tree attrib
*** 920,928 ****
  	  else
  	    old_attrs = TYPE_ATTRIBUTES (*anode);
  
! 	  for (a = lookup_attribute (spec->name, old_attrs);
  	       a != NULL_TREE;
! 	       a = lookup_attribute (spec->name, TREE_CHAIN (a)))
  	    {
  	      if (simple_cst_equal (TREE_VALUE (a), args) == 1)
  		break;
--- 959,967 ----
  	  else
  	    old_attrs = TYPE_ATTRIBUTES (*anode);
  
! 	  for (a = find_same_attribute (attr, old_attrs);
  	       a != NULL_TREE;
! 	       a = find_same_attribute (attr, TREE_CHAIN (a)))
  	    {
  	      if (simple_cst_equal (TREE_VALUE (a), args) == 1)
  		break;
*************** decl_attributes (tree *node, tree attrib
*** 953,960 ****
  			  if (TYPE_ATTRIBUTES (variant) == old_attrs)
  			    TYPE_ATTRIBUTES (variant)
  			      = TYPE_ATTRIBUTES (*anode);
! 			  else if (!lookup_attribute
! 				   (spec->name, TYPE_ATTRIBUTES (variant)))
  			    TYPE_ATTRIBUTES (variant) = tree_cons
  			      (name, args, TYPE_ATTRIBUTES (variant));
  			}
--- 992,999 ----
  			  if (TYPE_ATTRIBUTES (variant) == old_attrs)
  			    TYPE_ATTRIBUTES (variant)
  			      = TYPE_ATTRIBUTES (*anode);
! 			  else if (!find_same_attribute
! 				   (attr, TYPE_ATTRIBUTES (variant)))
  			    TYPE_ATTRIBUTES (variant) = tree_cons
  			      (name, args, TYPE_ATTRIBUTES (variant));
  			}
*************** make_dispatcher_decl (const tree decl)
*** 1233,1240 ****
    return func_decl;  
  }
  
! /* Returns true if decl is multi-versioned and DECL is the default function,
!    that is it is not tagged with target specific optimization.  */
  
  bool
  is_function_default_version (const tree decl)
--- 1272,1280 ----
    return func_decl;  
  }
  
! /* Returns true if DECL is multi-versioned using the target attribute, and this
!    is the default version.  This function can only be used for targets that do
!    not support the "target_version" attribute.  */
  
  bool
  is_function_default_version (const tree decl)
*************** build_type_attribute_qual_variant (tree
*** 1278,1286 ****
  	 build_duplicate_type is another solution (as used in
  	 handle_transparent_union_attribute), but that doesn't play well
  	 with the stronger C++ type identity model.  */
!       if (TREE_CODE (ttype) == RECORD_TYPE
! 	  || TREE_CODE (ttype) == UNION_TYPE
! 	  || TREE_CODE (ttype) == QUAL_UNION_TYPE
  	  || TREE_CODE (ttype) == ENUMERAL_TYPE)
  	{
  	  warning (OPT_Wattributes,
--- 1318,1324 ----
  	 build_duplicate_type is another solution (as used in
  	 handle_transparent_union_attribute), but that doesn't play well
  	 with the stronger C++ type identity model.  */
!       if (RECORD_OR_UNION_TYPE_P (ttype)
  	  || TREE_CODE (ttype) == ENUMERAL_TYPE)
  	{
  	  warning (OPT_Wattributes,
*************** comp_type_attributes (const_tree type1,
*** 1465,1475 ****
        const struct attribute_spec *as;
        const_tree attr;
  
!       as = lookup_attribute_spec (get_attribute_name (a));
        if (!as || as->affects_type_identity == false)
  	continue;
  
!       attr = lookup_attribute (as->name, CONST_CAST_TREE (a2));
        if (!attr || !attribute_value_equal (a, attr))
  	break;
      }
--- 1503,1513 ----
        const struct attribute_spec *as;
        const_tree attr;
  
!       as = lookup_attribute_spec (TREE_PURPOSE (a));
        if (!as || as->affects_type_identity == false)
  	continue;
  
!       attr = find_same_attribute (a, CONST_CAST_TREE (a2));
        if (!attr || !attribute_value_equal (a, attr))
  	break;
      }
*************** comp_type_attributes (const_tree type1,
*** 1479,1489 ****
  	{
  	  const struct attribute_spec *as;
  
! 	  as = lookup_attribute_spec (get_attribute_name (a));
  	  if (!as || as->affects_type_identity == false)
  	    continue;
  
! 	  if (!lookup_attribute (as->name, CONST_CAST_TREE (a1)))
  	    break;
  	  /* We don't need to compare trees again, as we did this
  	     already in first loop.  */
--- 1517,1527 ----
  	{
  	  const struct attribute_spec *as;
  
! 	  as = lookup_attribute_spec (TREE_PURPOSE (a));
  	  if (!as || as->affects_type_identity == false)
  	    continue;
  
! 	  if (!find_same_attribute (a, CONST_CAST_TREE (a1)))
  	    break;
  	  /* We don't need to compare trees again, as we did this
  	     already in first loop.  */
*************** comp_type_attributes (const_tree type1,
*** 1498,1506 ****
    if ((lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (type1)) != NULL)
        ^ (lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (type2)) != NULL))
      return 0;
    /* As some type combinations - like default calling-convention - might
       be compatible, we have to call the target hook to get the final result.  */
!   return targetm.comp_type_attributes (type1, type2);
  }
  
  /* PREDICATE acts as a function of type:
--- 1536,1555 ----
    if ((lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (type1)) != NULL)
        ^ (lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (type2)) != NULL))
      return 0;
+   int strub_ret = strub_comptypes (CONST_CAST_TREE (type1),
+ 				   CONST_CAST_TREE (type2));
+   if (strub_ret == 0)
+     return strub_ret;
    /* As some type combinations - like default calling-convention - might
       be compatible, we have to call the target hook to get the final result.  */
!   int target_ret = targetm.comp_type_attributes (type1, type2);
!   if (target_ret == 0)
!     return target_ret;
!   if (strub_ret == 2 || target_ret == 2)
!     return 2;
!   if (strub_ret == 1 && target_ret == 1)
!     return 1;
!   gcc_unreachable ();
  }
  
  /* PREDICATE acts as a function of type:
*************** remove_attributes_matching (tree attrs,
*** 1521,1528 ****
    const_tree start = attrs;
    for (const_tree attr = attrs; attr; attr = TREE_CHAIN (attr))
      {
!       tree name = get_attribute_name (attr);
!       const attribute_spec *as = lookup_attribute_spec (name);
        const_tree end;
        if (!predicate (attr, as))
  	end = attr;
--- 1570,1576 ----
    const_tree start = attrs;
    for (const_tree attr = attrs; attr; attr = TREE_CHAIN (attr))
      {
!       const attribute_spec *as = lookup_attribute_spec (TREE_PURPOSE (attr));
        const_tree end;
        if (!predicate (attr, as))
  	end = attr;
*************** attr_access::array_as_string (tree type)
*** 2639,2689 ****
  namespace selftest
  {
  
- /* Helper types to verify the consistency attribute exclusions.  */
- 
- typedef std::pair<const char *, const char *> excl_pair;
- 
- struct excl_hash_traits: typed_noop_remove<excl_pair>
- {
-   typedef excl_pair  value_type;
-   typedef value_type compare_type;
- 
-   static hashval_t hash (const value_type &x)
-   {
-     hashval_t h1 = htab_hash_string (x.first);
-     hashval_t h2 = htab_hash_string (x.second);
-     return h1 ^ h2;
-   }
- 
-   static bool equal (const value_type &x, const value_type &y)
-   {
-     return !strcmp (x.first, y.first) && !strcmp (x.second, y.second);
-   }
- 
-   static void mark_deleted (value_type &x)
-   {
-     x = value_type (NULL, NULL);
-   }
- 
-   static const bool empty_zero_p = false;
- 
-   static void mark_empty (value_type &x)
-   {
-     x = value_type ("", "");
-   }
- 
-   static bool is_deleted (const value_type &x)
-   {
-     return !x.first && !x.second;
-   }
- 
-   static bool is_empty (const value_type &x)
-   {
-     return !*x.first && !*x.second;
-   }
- };
- 
- 
  /* Self-test to verify that each attribute exclusion is symmetric,
     meaning that if attribute A is encoded as incompatible with
     attribute B then the opposite relationship is also encoded.
--- 2687,2692 ----
*************** struct excl_hash_traits: typed_noop_remo
*** 2693,2750 ****
  static void
  test_attribute_exclusions ()
  {
    /* Iterate over the array of attribute tables first (with TI0 as
       the index) and over the array of attribute_spec in each table
       (with SI0 as the index).  */
!   const size_t ntables = ARRAY_SIZE (attribute_tables);
  
!   /* Set of pairs of mutually exclusive attributes.  */
!   typedef hash_set<excl_pair, false, excl_hash_traits> exclusion_set;
!   exclusion_set excl_set;
  
!   for (size_t ti0 = 0; ti0 != ntables; ++ti0)
!     for (size_t s0 = 0; attribute_tables[ti0][s0].name; ++s0)
!       {
! 	const attribute_spec::exclusions *excl
! 	  = attribute_tables[ti0][s0].exclude;
  
! 	/* Skip each attribute that doesn't define exclusions.  */
! 	if (!excl)
! 	  continue;
  
! 	const char *attr_name = attribute_tables[ti0][s0].name;
  
! 	/* Iterate over the set of exclusions for every attribute
! 	   (with EI0 as the index) adding the exclusions defined
! 	   for each to the set.  */
! 	for (size_t ei0 = 0; excl[ei0].name; ++ei0)
! 	  {
! 	    const char *excl_name = excl[ei0].name;
  
! 	    if (!strcmp (attr_name, excl_name))
! 	      continue;
  
! 	    excl_set.add (excl_pair (attr_name, excl_name));
! 	  }
!       }
  
    /* Traverse the set of mutually exclusive pairs of attributes
       and verify that they are symmetric.  */
!   for (exclusion_set::iterator it = excl_set.begin ();
!        it != excl_set.end ();
!        ++it)
!     {
!       if (!excl_set.contains (excl_pair ((*it).second, (*it).first)))
! 	{
! 	  /* An exclusion for an attribute has been found that
! 	     doesn't have a corresponding exclusion in the opposite
! 	     direction.  */
! 	  char desc[120];
! 	  sprintf (desc, "'%s' attribute exclusion '%s' must be symmetric",
! 		   (*it).first, (*it).second);
! 	  fail (SELFTEST_LOCATION, desc);
! 	}
!     }
  }
  
  void
--- 2696,2754 ----
  static void
  test_attribute_exclusions ()
  {
+   using excl_hash_traits = pair_hash<nofree_string_hash, nofree_string_hash>;
+ 
    /* Iterate over the array of attribute tables first (with TI0 as
       the index) and over the array of attribute_spec in each table
       (with SI0 as the index).  */
!   hash_set<excl_hash_traits> excl_set;
  
!   for (auto scoped_array : attribute_tables)
!     for (auto scoped_attributes : scoped_array)
!       for (const attribute_spec &attribute : scoped_attributes->attributes)
! 	{
! 	  const attribute_spec::exclusions *excl = attribute.exclude;
  
! 	  /* Skip each attribute that doesn't define exclusions.  */
! 	  if (!excl)
! 	    continue;
  
! 	  /* Skip standard (non-GNU) attributes, since currently the
! 	     exclusions are implicitly for GNU attributes only.
! 	     Also, C++ likely and unlikely get rewritten to gnu::hot
! 	     and gnu::cold, so symmetry isn't necessary there.  */
! 	  if (!scoped_attributes->ns)
! 	    continue;
  
! 	  const char *attr_name = attribute.name;
  
! 	  /* Iterate over the set of exclusions for every attribute
! 	     (with EI0 as the index) adding the exclusions defined
! 	     for each to the set.  */
! 	  for (size_t ei0 = 0; excl[ei0].name; ++ei0)
! 	    {
! 	      const char *excl_name = excl[ei0].name;
  
! 	      if (!strcmp (attr_name, excl_name))
! 		continue;
  
! 	      excl_set.add ({ attr_name, excl_name });
! 	    }
! 	}
  
    /* Traverse the set of mutually exclusive pairs of attributes
       and verify that they are symmetric.  */
!   for (auto excl_pair : excl_set)
!     if (!excl_set.contains ({ excl_pair.second, excl_pair.first }))
!       {
! 	/* An exclusion for an attribute has been found that
! 	   doesn't have a corresponding exclusion in the opposite
! 	   direction.  */
! 	char desc[120];
! 	sprintf (desc, "'%s' attribute exclusion '%s' must be symmetric",
! 		 excl_pair.first, excl_pair.second);
! 	fail (SELFTEST_LOCATION, desc);
!       }
  }
  
  void
*************** attribs_cc_tests ()
*** 2756,2758 ****
--- 2760,2764 ----
  } /* namespace selftest */
  
  #endif /* CHECKING_P */
+ 
+ #include "gt-attribs.h"
diff -Nrcpad gcc-13.2.0/gcc/attribs.h gcc-14.1.0/gcc/attribs.h
*** gcc-13.2.0/gcc/attribs.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/attribs.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declarations and definitions dealing with attribute handling.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations and definitions dealing with attribute handling.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 20,25 ****
--- 20,32 ----
  #ifndef GCC_ATTRIBS_H
  #define GCC_ATTRIBS_H
  
+ /* A set of attributes that belong to the same namespace, given by NS.  */
+ struct scoped_attribute_specs
+ {
+   const char *ns;
+   array_slice<const attribute_spec> attributes;
+ };
+ 
  extern const struct attribute_spec *lookup_attribute_spec (const_tree);
  extern void free_attr_data ();
  extern void init_attributes (void);
*************** extern void apply_tm_attr (tree, tree);
*** 41,50 ****
  extern tree make_attribute (const char *, const char *, tree);
  extern bool attribute_ignored_p (tree);
  extern bool attribute_ignored_p (const attribute_spec *const);
  
! extern struct scoped_attributes* register_scoped_attributes (const struct attribute_spec *,
! 							     const char *,
! 							     bool = false);
  
  extern char *sorted_attr_string (tree);
  extern bool common_function_versions (tree, tree);
--- 48,57 ----
  extern tree make_attribute (const char *, const char *, tree);
  extern bool attribute_ignored_p (tree);
  extern bool attribute_ignored_p (const attribute_spec *const);
+ extern bool any_nonignored_attribute_p (tree);
  
! extern struct scoped_attributes *
!   register_scoped_attributes (const scoped_attribute_specs &, bool = false);
  
  extern char *sorted_attr_string (tree);
  extern bool common_function_versions (tree, tree);
*************** struct attr_access
*** 317,323 ****
       in TREE_VALUE and their positions in the argument list (stored
       in TREE_PURPOSE).  Each expression may be a PARM_DECL or some
       other DECL (for ordinary variables), or an EXPR for other
!      expressions (e.g., funcion calls).  */
    tree size;
  
    /* The zero-based position of each of the formal function arguments.
--- 324,330 ----
       in TREE_VALUE and their positions in the argument list (stored
       in TREE_PURPOSE).  Each expression may be a PARM_DECL or some
       other DECL (for ordinary variables), or an EXPR for other
!      expressions (e.g., function calls).  */
    tree size;
  
    /* The zero-based position of each of the formal function arguments.
diff -Nrcpad gcc-13.2.0/gcc/auto-inc-dec.cc gcc-14.1.0/gcc/auto-inc-dec.cc
*** gcc-13.2.0/gcc/auto-inc-dec.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/auto-inc-dec.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Discovery of auto-inc and auto-dec instructions.
!    Copyright (C) 2006-2023 Free Software Foundation, Inc.
     Contributed by Kenneth Zadeck <zadeck@naturalbridge.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Discovery of auto-inc and auto-dec instructions.
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
     Contributed by Kenneth Zadeck <zadeck@naturalbridge.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/auto-profile.cc gcc-14.1.0/gcc/auto-profile.cc
*** gcc-13.2.0/gcc/auto-profile.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/auto-profile.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Read and annotate call graph profile from the auto profile data file.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
--- 1,5 ----
  /* Read and annotate call graph profile from the auto profile data file.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 42,47 ****
--- 42,49 ----
  #include "gimple-iterator.h"
  #include "value-prof.h"
  #include "symbol-summary.h"
+ #include "sreal.h"
+ #include "ipa-cp.h"
  #include "ipa-prop.h"
  #include "ipa-fnsummary.h"
  #include "ipa-inline.h"
*************** afdo_propagate_circuit (const bb_set &an
*** 1303,1309 ****
    {
      gimple *def_stmt;
      tree cmp_rhs, cmp_lhs;
!     gimple *cmp_stmt = last_stmt (bb);
      edge e;
      edge_iterator ei;
  
--- 1305,1311 ----
    {
      gimple *def_stmt;
      tree cmp_rhs, cmp_lhs;
!     gimple *cmp_stmt = last_nondebug_stmt (bb);
      edge e;
      edge_iterator ei;
  
*************** afdo_calculate_branch_prob (bb_set *anno
*** 1434,1440 ****
        else
          total_count += AFDO_EINFO (e)->get_count ();
      }
!     if (num_unknown_succ == 0 && total_count > profile_count::zero ())
        {
  	FOR_EACH_EDGE (e, ei, bb->succs)
  	  e->probability
--- 1436,1442 ----
        else
          total_count += AFDO_EINFO (e)->get_count ();
      }
!     if (num_unknown_succ == 0 && total_count.nonzero_p())
        {
  	FOR_EACH_EDGE (e, ei, bb->succs)
  	  e->probability
*************** afdo_annotate_cfg (const stmt_set &promo
*** 1571,1577 ****
        DECL_SOURCE_LOCATION (current_function_decl));
    afdo_source_profile->mark_annotated (cfun->function_start_locus);
    afdo_source_profile->mark_annotated (cfun->function_end_locus);
!   if (max_count > profile_count::zero ())
      {
        /* Calculate, propagate count and probability information on CFG.  */
        afdo_calculate_branch_prob (&annotated_bb);
--- 1573,1579 ----
        DECL_SOURCE_LOCATION (current_function_decl));
    afdo_source_profile->mark_annotated (cfun->function_start_locus);
    afdo_source_profile->mark_annotated (cfun->function_end_locus);
!   if (max_count.nonzero_p())
      {
        /* Calculate, propagate count and probability information on CFG.  */
        afdo_calculate_branch_prob (&annotated_bb);
*************** afdo_annotate_cfg (const stmt_set &promo
*** 1589,1601 ****
  
  /* Wrapper function to invoke early inliner.  */
  
! static void
  early_inline ()
  {
    compute_fn_summary (cgraph_node::get (current_function_decl), true);
!   unsigned todo = early_inliner (cfun);
    if (todo & TODO_update_ssa_any)
      update_ssa (TODO_update_ssa);
  }
  
  /* Use AutoFDO profile to annoate the control flow graph.
--- 1591,1604 ----
  
  /* Wrapper function to invoke early inliner.  */
  
! static unsigned int
  early_inline ()
  {
    compute_fn_summary (cgraph_node::get (current_function_decl), true);
!   unsigned int todo = early_inliner (cfun);
    if (todo & TODO_update_ssa_any)
      update_ssa (TODO_update_ssa);
+   return todo;
  }
  
  /* Use AutoFDO profile to annoate the control flow graph.
*************** auto_profile (void)
*** 1651,1670 ****
         function before annotation, so the profile inside bar@loc_foo2
         will be useful.  */
      autofdo::stmt_set promoted_stmts;
      for (int i = 0; i < 10; i++)
        {
!         if (!flag_value_profile_transformations
!             || !autofdo::afdo_vpt_for_early_inline (&promoted_stmts))
!           break;
!         early_inline ();
        }
  
!     early_inline ();
      autofdo::afdo_annotate_cfg (promoted_stmts);
      compute_function_frequency ();
  
      /* Local pure-const may imply need to fixup the cfg.  */
!     if (execute_fixup_cfg () & TODO_cleanup_cfg)
        cleanup_tree_cfg ();
  
      free_dominance_info (CDI_DOMINATORS);
--- 1654,1675 ----
         function before annotation, so the profile inside bar@loc_foo2
         will be useful.  */
      autofdo::stmt_set promoted_stmts;
+     unsigned int todo = 0;
      for (int i = 0; i < 10; i++)
        {
! 	if (!flag_value_profile_transformations
! 	    || !autofdo::afdo_vpt_for_early_inline (&promoted_stmts))
! 	  break;
! 	todo |= early_inline ();
        }
  
!     todo |= early_inline ();
      autofdo::afdo_annotate_cfg (promoted_stmts);
      compute_function_frequency ();
  
      /* Local pure-const may imply need to fixup the cfg.  */
!     todo |= execute_fixup_cfg ();
!     if (todo & TODO_cleanup_cfg)
        cleanup_tree_cfg ();
  
      free_dominance_info (CDI_DOMINATORS);
*************** auto_profile (void)
*** 1674,1680 ****
      pop_cfun ();
    }
  
!   return TODO_rebuild_cgraph_edges;
  }
  } /* namespace autofdo.  */
  
--- 1679,1685 ----
      pop_cfun ();
    }
  
!   return 0;
  }
  } /* namespace autofdo.  */
  
diff -Nrcpad gcc-13.2.0/gcc/auto-profile.h gcc-14.1.0/gcc/auto-profile.h
*** gcc-13.2.0/gcc/auto-profile.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/auto-profile.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* auto-profile.h - Defines data exported from auto-profile.cc
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
--- 1,5 ----
  /* auto-profile.h - Defines data exported from auto-profile.cc
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/backend.h gcc-14.1.0/gcc/backend.h
*** gcc-13.2.0/gcc/backend.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/backend.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Common Backend requirements. 
  
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
     Contributed by Andrew MacLeod <amacleod@redhat.com>
  
  This file is part of GCC.
--- 1,6 ----
  /* Common Backend requirements. 
  
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
     Contributed by Andrew MacLeod <amacleod@redhat.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/basic-block.h gcc-14.1.0/gcc/basic-block.h
*** gcc-13.2.0/gcc/basic-block.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/basic-block.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Define control flow data structures for the CFG.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Define control flow data structures for the CFG.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/bb-reorder.cc gcc-14.1.0/gcc/bb-reorder.cc
*** gcc-13.2.0/gcc/bb-reorder.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/bb-reorder.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** fix_up_fall_thru_edges (void)
*** 2024,2030 ****
  			     See PR108596.  */
  			  rtx_insn *j = BB_END (cur_bb);
  			  gcc_checking_assert (JUMP_P (j)
! 					       && asm_noperands (PATTERN (j)));
  			  edge e2 = find_edge (cur_bb, e->dest);
  			  if (e2)
  			    e2->flags |= EDGE_CROSSING;
--- 2024,2031 ----
  			     See PR108596.  */
  			  rtx_insn *j = BB_END (cur_bb);
  			  gcc_checking_assert (JUMP_P (j)
! 					       && (asm_noperands (PATTERN (j))
! 						   > 0));
  			  edge e2 = find_edge (cur_bb, e->dest);
  			  if (e2)
  			    e2->flags |= EDGE_CROSSING;
*************** fix_crossing_unconditional_branches (voi
*** 2266,2272 ****
  	  /* Make sure the jump is not already an indirect or table jump.  */
  
  	  if (!computed_jump_p (last_insn)
! 	      && !tablejump_p (last_insn, NULL, NULL))
  	    {
  	      /* We have found a "crossing" unconditional branch.  Now
  		 we must convert it to an indirect jump.  First create
--- 2267,2274 ----
  	  /* Make sure the jump is not already an indirect or table jump.  */
  
  	  if (!computed_jump_p (last_insn)
! 	      && !tablejump_p (last_insn, NULL, NULL)
! 	      && asm_noperands (PATTERN (last_insn)) < 0)
  	    {
  	      /* We have found a "crossing" unconditional branch.  Now
  		 we must convert it to an indirect jump.  First create
diff -Nrcpad gcc-13.2.0/gcc/bb-reorder.h gcc-14.1.0/gcc/bb-reorder.h
*** gcc-13.2.0/gcc/bb-reorder.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/bb-reorder.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/bitmap.cc gcc-14.1.0/gcc/bitmap.cc
*** gcc-13.2.0/gcc/bitmap.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/bitmap.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** bitmap_single_bit_set_p (const_bitmap a)
*** 1217,1228 ****
  
  
  /* Return the bit number of the first set bit in the bitmap.  The
!    bitmap must be non-empty.  */
  
! unsigned
! bitmap_first_set_bit (const_bitmap a)
  {
!   const bitmap_element *elt = a->first;
    unsigned bit_no;
    BITMAP_WORD word;
    unsigned ix;
--- 1217,1228 ----
  
  
  /* Return the bit number of the first set bit in the bitmap.  The
!    bitmap must be non-empty.  When CLEAR is true it clears the bit.  */
  
! static unsigned
! bitmap_first_set_bit_worker (bitmap a, bool clear)
  {
!   bitmap_element *elt = a->first;
    unsigned bit_no;
    BITMAP_WORD word;
    unsigned ix;
*************** bitmap_first_set_bit (const_bitmap a)
*** 1269,1274 ****
--- 1269,1289 ----
  
   gcc_checking_assert (word & 1);
  #endif
+ 
+  if (clear)
+    {
+      elt->bits[ix] &= ~((BITMAP_WORD) 1 << (bit_no % BITMAP_WORD_BITS));
+      /* If we cleared the entire word, free up the element.  */
+      if (!elt->bits[ix]
+ 	 && bitmap_element_zerop (elt))
+        {
+ 	 if (!a->tree_form)
+ 	   bitmap_list_unlink_element (a, elt);
+ 	 else
+ 	   bitmap_tree_unlink_element (a, elt);
+        }
+    }
+ 
   return bit_no;
  }
  
*************** bitmap_first_set_bit (const_bitmap a)
*** 1276,1281 ****
--- 1291,1314 ----
     bitmap must be non-empty.  */
  
  unsigned
+ bitmap_first_set_bit (const_bitmap a)
+ {
+   return bitmap_first_set_bit_worker (const_cast<bitmap> (a), false);
+ }
+ 
+ /* Return and clear the bit number of the first set bit in the bitmap.  The
+    bitmap must be non-empty.  */
+ 
+ unsigned
+ bitmap_clear_first_set_bit (bitmap a)
+ {
+   return bitmap_first_set_bit_worker (a, true);
+ }
+ 
+ /* Return the bit number of the first set bit in the bitmap.  The
+    bitmap must be non-empty.  */
+ 
+ unsigned
  bitmap_last_set_bit (const_bitmap a)
  {
    const bitmap_element *elt;
*************** bitmap_hash (const_bitmap head)
*** 2673,2679 ****
        for (ix = 0; ix != BITMAP_ELEMENT_WORDS; ix++)
  	hash ^= ptr->bits[ix];
      }
!   return (hashval_t)hash;
  }
  
  
--- 2706,2712 ----
        for (ix = 0; ix != BITMAP_ELEMENT_WORDS; ix++)
  	hash ^= ptr->bits[ix];
      }
!   return iterative_hash (&hash, sizeof (hash), 0);
  }
  
  
diff -Nrcpad gcc-13.2.0/gcc/bitmap.h gcc-14.1.0/gcc/bitmap.h
*** gcc-13.2.0/gcc/bitmap.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/bitmap.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 110,115 ****
--- 110,116 ----
  
       * clear			: bitmap_clear
       * smallest_member		: bitmap_first_set_bit
+      * pop_smallest		: bitmap_clear_first_set_bit
       * choose_one		: (not implemented, but could be
  				   in constant time)
  
*************** along with GCC; see the file COPYING3.
*** 133,138 ****
--- 134,140 ----
     amortized time with O(E) worst-case behavior.
  
       * smallest_member
+      * pop_smallest
       * largest_member
       * set_size
       * member_p
*************** extern void debug (const bitmap_head &re
*** 501,506 ****
--- 503,509 ----
  extern void debug (const bitmap_head *ptr);
  
  extern unsigned bitmap_first_set_bit (const_bitmap);
+ extern unsigned bitmap_clear_first_set_bit (bitmap);
  extern unsigned bitmap_last_set_bit (const_bitmap);
  
  /* Compute bitmap hash (for purposes of hashing etc.)  */
diff -Nrcpad gcc-13.2.0/gcc/btfout.cc gcc-14.1.0/gcc/btfout.cc
*** gcc-13.2.0/gcc/btfout.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/btfout.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Output BTF format from GCC.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Output BTF format from GCC.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 35,40 ****
--- 35,42 ----
  #include "diagnostic-core.h"
  #include "cgraph.h"
  #include "varasm.h"
+ #include "stringpool.h"  /* For lookup_attribute.  */
+ #include "attribs.h" /* For lookup_attribute.  */
  #include "dwarf2out.h" /* For lookup_decl_die.  */
  
  static int btf_label_num;
*************** static unsigned int num_types_added = 0;
*** 114,119 ****
--- 116,138 ----
     CTF types.  */
  static unsigned int num_types_created = 0;
  
+ /* Name strings for BTF kinds.
+    Note: the indices here must match the type defines in btf.h.  */
+ static const char *const btf_kind_names[] =
+   {
+     "UNKN", "INT", "PTR", "ARRAY", "STRUCT", "UNION", "ENUM", "FWD",
+     "TYPEDEF", "VOLATILE", "CONST", "RESTRICT", "FUNC", "FUNC_PROTO",
+     "VAR", "DATASEC", "FLOAT", "DECL_TAG", "TYPE_TAG", "ENUM64"
+   };
+ 
+ /* Return a name string for the given BTF_KIND.  */
+ 
+ static const char *
+ btf_kind_name (uint32_t btf_kind)
+ {
+   return btf_kind_names[btf_kind];
+ }
+ 
  /* Map a CTF type kind to the corresponding BTF type kind.  */
  
  static uint32_t
*************** get_btf_kind (uint32_t ctf_kind)
*** 141,146 ****
--- 160,237 ----
    return BTF_KIND_UNKN;
  }
  
+ /* Some BTF types, like BTF_KIND_FUNC_PROTO, are anonymous.  The machinery
+    in btfout to emit BTF, may reset dtd_data->ctti_name, but does not update
+    the name in the ctf_dtdef_ref type object (deliberate choice).  This
+    interface helps abstract out that state of affairs, while giving access to
+    the name of the type as intended.  */
+ 
+ static const char *
+ get_btf_type_name (ctf_dtdef_ref dtd)
+ {
+   const char *anon = "";
+   return (dtd->dtd_data.ctti_name) ? dtd->dtd_name : anon;
+ }
+ 
+ /* Helper routines to map between 'relative' and 'absolute' IDs.
+ 
+    In BTF all records (including variables) are output in one long list, and all
+    inter-type references are via index into that list.  But internally since we
+    a) translate from CTF, which separates variable records from regular types
+    and b) create some additional types after the fact, things like VAR and FUNC
+    records are stored in separate vectors with their own indices.  These
+    functions map between the 'relative' IDs (i.e.  indices in their respective
+    containers) and 'absolute' IDs (i.e.  indices in the final contiguous
+    output list), which goes in order:
+      all normal type records translated from CTF
+      all BTF_KIND_VAR records
+      all BTF_KIND_FUNC records (synthesized split function records)
+      all BTF_KIND_DATASEC records (synthesized)
+ 
+    The extra '+ 1's below are to account for the implicit "void" record, which
+    has index 0 but isn't actually contained in the type list.  */
+ 
+ /* Return the final BTF ID of the variable at relative index REL.  */
+ 
+ static ctf_id_t
+ btf_absolute_var_id (ctf_id_t rel)
+ {
+   return rel + (num_types_added + 1);
+ }
+ 
+ /* Return the relative index of the variable with final BTF ID ABS.  */
+ 
+ static ctf_id_t
+ btf_relative_var_id (ctf_id_t abs)
+ {
+   return abs - (num_types_added + 1);
+ }
+ 
+ /* Return the final BTF ID of the func record at relative index REL.  */
+ 
+ static ctf_id_t
+ btf_absolute_func_id (ctf_id_t rel)
+ {
+   return rel + (num_types_added + 1) + num_vars_added;
+ }
+ 
+ /* Return the relative index of the func record with final BTF ID ABS.  */
+ 
+ static ctf_id_t
+ btf_relative_func_id (ctf_id_t abs)
+ {
+   return abs - ((num_types_added + 1) + num_vars_added);
+ }
+ 
+ /* Return the final BTF ID of the datasec record at relative index REL.  */
+ 
+ static ctf_id_t
+ btf_absolute_datasec_id (ctf_id_t rel)
+ {
+   return rel + (num_types_added + 1) + num_vars_added + funcs->length ();
+ }
+ 
+ 
  /* Allocate the btf_id_map, and initialize elements to BTF_INVALID_TYPEID.  */
  
  static void
*************** btf_emit_id_p (ctf_id_t id)
*** 179,184 ****
--- 270,286 ----
  	  && (btf_id_map[id] <= BTF_MAX_TYPE));
  }
  
+ /* Return true if DTD is a forward-declared enum.  The BTF representation
+    of forward declared enums is not formally defined.  */
+ 
+ static bool
+ btf_fwd_to_enum_p (ctf_dtdef_ref dtd)
+ {
+   uint32_t btf_kind = get_btf_kind (CTF_V2_INFO_KIND (dtd->dtd_data.ctti_info));
+ 
+   return (btf_kind == BTF_KIND_FWD && dtd->dtd_data.ctti_type == CTF_K_ENUM);
+ }
+ 
  /* Each BTF type can be followed additional, variable-length information
     completing the description of the type. Calculate the number of bytes
     of variable information required to encode a given type.  */
*************** btf_calc_num_vbytes (ctf_dtdef_ref dtd)
*** 223,229 ****
        break;
  
      case BTF_KIND_ENUM:
!       vlen_bytes += (dtd->dtd_data.ctti_size == 0x8)
  			? vlen * sizeof (struct btf_enum64)
  			: vlen * sizeof (struct btf_enum);
        break;
--- 325,331 ----
        break;
  
      case BTF_KIND_ENUM:
!       vlen_bytes += (dtd->dtd_data.ctti_size > 4)
  			? vlen * sizeof (struct btf_enum64)
  			: vlen * sizeof (struct btf_enum);
        break;
*************** btf_collect_datasec (ctf_container_ref c
*** 340,345 ****
--- 442,452 ----
        if (dtd == NULL)
  	continue;
  
+       if (DECL_EXTERNAL (func->decl)
+ 	  && (lookup_attribute ("kernel_helper",
+ 				DECL_ATTRIBUTES (func->decl))) != NULL_TREE)
+ 	continue;
+ 
        /* Functions actually get two types: a BTF_KIND_FUNC_PROTO, and
  	 also a BTF_KIND_FUNC.  But the CTF container only allocates one
  	 type per function, which matches closely with BTF_KIND_FUNC_PROTO.
*************** btf_collect_datasec (ctf_container_ref c
*** 349,355 ****
        func_dtd->dtd_data = dtd->dtd_data;
        func_dtd->dtd_data.ctti_type = dtd->dtd_type;
        func_dtd->linkage = dtd->linkage;
!       func_dtd->dtd_type = num_types_added + num_types_created;
  
        /* Only the BTF_KIND_FUNC type actually references the name. The
  	 BTF_KIND_FUNC_PROTO is always anonymous.  */
--- 456,464 ----
        func_dtd->dtd_data = dtd->dtd_data;
        func_dtd->dtd_data.ctti_type = dtd->dtd_type;
        func_dtd->linkage = dtd->linkage;
!       func_dtd->dtd_name = dtd->dtd_name;
!       /* +1 for the sentinel type not in the types map.  */
!       func_dtd->dtd_type = num_types_added + num_types_created + 1;
  
        /* Only the BTF_KIND_FUNC type actually references the name. The
  	 BTF_KIND_FUNC_PROTO is always anonymous.  */
*************** btf_collect_datasec (ctf_container_ref c
*** 372,379 ****
  
  	  struct btf_var_secinfo info;
  
! 	  /* +1 for the sentinel type not in the types map.  */
! 	  info.type = func_dtd->dtd_type + 1;
  
  	  /* Both zero at compile time.  */
  	  info.size = 0;
--- 481,487 ----
  
  	  struct btf_var_secinfo info;
  
! 	  info.type = func_dtd->dtd_type;
  
  	  /* Both zero at compile time.  */
  	  info.size = 0;
*************** btf_collect_datasec (ctf_container_ref c
*** 396,402 ****
  
        /* Mark extern variables.  */
        if (DECL_EXTERNAL (node->decl))
! 	dvd->dvd_visibility = BTF_VAR_GLOBAL_EXTERN;
  
        const char *section_name = get_section_name (node);
        if (section_name == NULL)
--- 504,518 ----
  
        /* Mark extern variables.  */
        if (DECL_EXTERNAL (node->decl))
! 	{
! 	  dvd->dvd_visibility = BTF_VAR_GLOBAL_EXTERN;
! 
! 	  /* PR112849: avoid assuming a section for extern decls without
! 	     an explicit section, which would result in incorrectly
! 	     emitting a BTF_KIND_DATASEC entry for them.  */
! 	  if (node->get_section () == NULL)
! 	    continue;
! 	}
  
        const char *section_name = get_section_name (node);
        if (section_name == NULL)
*************** btf_collect_datasec (ctf_container_ref c
*** 407,414 ****
        info.type = 0;
        unsigned int *var_id = btf_var_ids->get (dvd);
        if (var_id)
! 	/* +1 for the sentinel type not in the types map.  */
! 	info.type = *var_id + num_types_added + 1;
        else
  	continue;
  
--- 523,529 ----
        info.type = 0;
        unsigned int *var_id = btf_var_ids->get (dvd);
        if (var_id)
! 	info.type = btf_absolute_var_id (*var_id);
        else
  	continue;
  
*************** btf_dmd_representable_bitfield_p (ctf_co
*** 620,636 ****
  
  /* BTF asm helper routines.  */
  
  /* Asm'out a BTF type. This routine is responsible for the bulk of the task
     of converting CTF types to their BTF representation.  */
  
  static void
  btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd)
  {
!   uint32_t btf_kind, btf_kflag, btf_vlen, btf_size_type;
    uint32_t ctf_info = dtd->dtd_data.ctti_info;
  
    btf_kind = get_btf_kind (CTF_V2_INFO_KIND (ctf_info));
!   btf_size_type = dtd->dtd_data.ctti_type;
    btf_vlen = CTF_V2_INFO_VLEN (ctf_info);
  
    /* By now any unrepresentable types have been removed.  */
--- 735,814 ----
  
  /* BTF asm helper routines.  */
  
+ /* Asm'out a reference to another BTF type.  */
+ 
+ static void
+ btf_asm_type_ref (const char *prefix, ctf_container_ref ctfc, ctf_id_t ctf_id)
+ {
+   ctf_id_t btf_id = get_btf_id (ctf_id);
+   if (btf_id == BTF_VOID_TYPEID || btf_id == BTF_INVALID_TYPEID)
+     {
+       /* There is no explicit void type.
+ 	 Also handle any invalid refs that made it this far, just in case.  */
+       dw2_asm_output_data (4, btf_id, "%s: void", prefix);
+     }
+   else
+     {
+       gcc_assert (btf_id <= num_types_added);
+ 
+       /* Ref to a standard type in the types list.  Note: take care that we
+ 	 must index the type list by the original CTF id, not the BTF id.  */
+       ctf_dtdef_ref ref_type = ctfc->ctfc_types_list[ctf_id];
+       uint32_t ref_kind
+ 	= get_btf_kind (CTF_V2_INFO_KIND (ref_type->dtd_data.ctti_info));
+ 
+       const char *kind_name = btf_fwd_to_enum_p (ref_type)
+ 	? btf_kind_name (BTF_KIND_ENUM)
+ 	: btf_kind_name (ref_kind);
+ 
+       dw2_asm_output_data (4, btf_id, "%s: (BTF_KIND_%s '%s')",
+ 			   prefix, kind_name,
+ 			   get_btf_type_name (ref_type));
+     }
+ }
+ 
+ /* Asm'out a reference to a BTF_KIND_VAR or BTF_KIND_FUNC type.  These type
+    kinds are BTF-specific, and should only be referred to by entries in
+    BTF_KIND_DATASEC records.  */
+ 
+ static void
+ btf_asm_datasec_type_ref (const char *prefix, ctf_container_ref ctfc,
+ 			  ctf_id_t btf_id)
+ {
+   if (btf_id >= num_types_added + 1
+       && btf_id < num_types_added + num_vars_added + 1)
+     {
+       /* Ref to a variable.  Should only appear in DATASEC entries.  */
+       ctf_id_t var_id = btf_relative_var_id (btf_id);
+       ctf_dvdef_ref dvd = ctfc->ctfc_vars_list[var_id];
+       dw2_asm_output_data (4, btf_id, "%s: (BTF_KIND_VAR '%s')",
+ 			   prefix, dvd->dvd_name);
+ 
+     }
+   else if (btf_id >= num_types_added + num_vars_added + 1)
+     {
+       /* Ref to a FUNC record.  */
+       size_t func_id = btf_relative_func_id (btf_id);
+       ctf_dtdef_ref ref_type = (*funcs)[func_id];
+       dw2_asm_output_data (4, btf_id, "%s: (BTF_KIND_FUNC '%s')",
+ 			   prefix, get_btf_type_name (ref_type));
+     }
+   else
+     /* The caller should not be calling this.  */
+     gcc_unreachable ();
+ }
+ 
  /* Asm'out a BTF type. This routine is responsible for the bulk of the task
     of converting CTF types to their BTF representation.  */
  
  static void
  btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd)
  {
!   uint32_t btf_kind, btf_kflag, btf_vlen, btf_size;
    uint32_t ctf_info = dtd->dtd_data.ctti_info;
  
    btf_kind = get_btf_kind (CTF_V2_INFO_KIND (ctf_info));
!   btf_size = dtd->dtd_data.ctti_size;
    btf_vlen = CTF_V2_INFO_VLEN (ctf_info);
  
    /* By now any unrepresentable types have been removed.  */
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 638,644 ****
  
    /* Size 0 integers are redundant definitions of void. None should remain
       in the types list by this point.  */
!   gcc_assert (btf_kind != BTF_KIND_INT || btf_size_type >= 1);
  
    /* Re-encode the ctti_info to BTF.  */
    /* kflag is 1 for structs/unions with a bitfield member.
--- 816,822 ----
  
    /* Size 0 integers are redundant definitions of void. None should remain
       in the types list by this point.  */
!   gcc_assert (btf_kind != BTF_KIND_INT || btf_size >= 1);
  
    /* Re-encode the ctti_info to BTF.  */
    /* kflag is 1 for structs/unions with a bitfield member.
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 659,669 ****
  	  /* Set kflag if this member is a representable bitfield.  */
  	  if (btf_dmd_representable_bitfield_p (ctfc, dmd))
  	    btf_kflag = 1;
- 
- 	  /* Struct members that refer to unsupported types or bitfield formats
- 	     shall be skipped. These are marked during preprocessing.  */
- 	  else if (!btf_emit_id_p (dmd->dmd_type))
- 	    btf_vlen -= 1;
  	}
      }
  
--- 837,842 ----
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 671,686 ****
       structs and forwards to unions. The dwarf2ctf conversion process stores
       the kind of the forward in ctti_type, but for BTF this must be 0 for
       forwards, with only the KIND_FLAG to distinguish.
!      At time of writing, BTF forwards to enums are unspecified.  */
!   if (btf_kind == BTF_KIND_FWD)
      {
        if (dtd->dtd_data.ctti_type == CTF_K_UNION)
  	btf_kflag = 1;
  
!       btf_size_type = 0;
      }
  
!   if (btf_kind == BTF_KIND_ENUM)
      {
        btf_kflag = dtd->dtd_enum_unsigned
  		    ? BTF_KF_ENUM_UNSIGNED
--- 844,869 ----
       structs and forwards to unions. The dwarf2ctf conversion process stores
       the kind of the forward in ctti_type, but for BTF this must be 0 for
       forwards, with only the KIND_FLAG to distinguish.
!      Forwards to enum types are special-cased below.  */
!   else if (btf_kind == BTF_KIND_FWD)
      {
        if (dtd->dtd_data.ctti_type == CTF_K_UNION)
  	btf_kflag = 1;
  
!       /* PR debug/111735.  Encode foward-declared enums as BTF_KIND_ENUM
! 	 with vlen=0.  A representation for these is not formally defined;
! 	 this is the de-facto standard used by other tools like clang
! 	 and pahole.  */
!       else if (dtd->dtd_data.ctti_type == CTF_K_ENUM)
! 	{
! 	  btf_kind = BTF_KIND_ENUM;
! 	  btf_vlen = 0;
! 	}
! 
!       btf_size = 0;
      }
  
!   else if (btf_kind == BTF_KIND_ENUM)
      {
        btf_kflag = dtd->dtd_enum_unsigned
  		    ? BTF_KF_ENUM_UNSIGNED
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 689,695 ****
  	btf_kind = BTF_KIND_ENUM64;
     }
  
!   dw2_asm_output_data (4, dtd->dtd_data.ctti_name, "btt_name");
    dw2_asm_output_data (4, BTF_TYPE_INFO (btf_kind, btf_kflag, btf_vlen),
  		       "btt_info: kind=%u, kflag=%u, vlen=%u",
  		       btf_kind, btf_kflag, btf_vlen);
--- 872,885 ----
  	btf_kind = BTF_KIND_ENUM64;
     }
  
!   /* PR debug/112656.  BTF_KIND_FUNC_PROTO is always anonymous.  */
!   else if (btf_kind == BTF_KIND_FUNC_PROTO)
!     dtd->dtd_data.ctti_name = 0;
! 
!   dw2_asm_output_data (4, dtd->dtd_data.ctti_name,
! 		       "TYPE %" PRIu64 " BTF_KIND_%s '%s'",
! 		       get_btf_id (dtd->dtd_type), btf_kind_name (btf_kind),
! 		       get_btf_type_name (dtd));
    dw2_asm_output_data (4, BTF_TYPE_INFO (btf_kind, btf_kflag, btf_vlen),
  		       "btt_info: kind=%u, kflag=%u, vlen=%u",
  		       btf_kind, btf_kflag, btf_vlen);
*************** btf_asm_type (ctf_container_ref ctfc, ct
*** 702,737 ****
      case BTF_KIND_ENUM:
      case BTF_KIND_DATASEC:
      case BTF_KIND_ENUM64:
!       dw2_asm_output_data (4, dtd->dtd_data.ctti_size, "btt_size: %uB",
! 			   dtd->dtd_data.ctti_size);
        return;
      default:
        break;
      }
  
!   dw2_asm_output_data (4, get_btf_id (dtd->dtd_data.ctti_type), "btt_type");
  }
  
  /* Asm'out the variable information following a BTF_KIND_ARRAY.  */
  
  static void
! btf_asm_array (ctf_dtdef_ref dtd)
  {
!   dw2_asm_output_data (4, get_btf_id (dtd->dtd_u.dtu_arr.ctr_contents),
! 		       "bta_contents");
!   dw2_asm_output_data (4, get_btf_id (dtd->dtd_u.dtu_arr.ctr_index),
! 		       "bta_index");
!   dw2_asm_output_data (4, dtd->dtd_u.dtu_arr.ctr_nelems, "bta_nelems");
  }
  
  /* Asm'out a BTF_KIND_VAR.  */
  
  static void
! btf_asm_varent (ctf_dvdef_ref var)
  {
!   dw2_asm_output_data (4, var->dvd_name_offset, "btv_name");
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_VAR, 0, 0), "btv_info");
!   dw2_asm_output_data (4, get_btf_id (var->dvd_type), "btv_type");
    dw2_asm_output_data (4, var->dvd_visibility, "btv_linkage");
  }
  
--- 892,933 ----
      case BTF_KIND_ENUM:
      case BTF_KIND_DATASEC:
      case BTF_KIND_ENUM64:
!       dw2_asm_output_data (4, btf_size, "btt_size: %uB", btf_size);
!       return;
!     case BTF_KIND_ARRAY:
!     case BTF_KIND_FWD:
!       /* These types do not encode any information in the size/type field
! 	 and should write 0.  */
!       dw2_asm_output_data (4, 0, "(unused)");
        return;
      default:
        break;
      }
  
!   ctf_id_t ref_id = dtd->dtd_data.ctti_type;
!   btf_asm_type_ref ("btt_type", ctfc, ref_id);
  }
  
  /* Asm'out the variable information following a BTF_KIND_ARRAY.  */
  
  static void
! btf_asm_array (ctf_container_ref ctfc, ctf_arinfo_t arr)
  {
!   btf_asm_type_ref ("bta_elem_type", ctfc, arr.ctr_contents);
!   btf_asm_type_ref ("bta_index_type", ctfc, arr.ctr_index);
!   dw2_asm_output_data (4, arr.ctr_nelems, "bta_nelems");
  }
  
  /* Asm'out a BTF_KIND_VAR.  */
  
  static void
! btf_asm_varent (ctf_container_ref ctfc, ctf_dvdef_ref var)
  {
!   dw2_asm_output_data (4, var->dvd_name_offset, "TYPE %u BTF_KIND_VAR '%s'",
! 		       (*(btf_var_ids->get (var)) + num_types_added + 1),
! 		       var->dvd_name);
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_VAR, 0, 0), "btv_info");
!   btf_asm_type_ref ("btv_type", ctfc, var->dvd_type);
    dw2_asm_output_data (4, var->dvd_visibility, "btv_linkage");
  }
  
*************** btf_asm_varent (ctf_dvdef_ref var)
*** 739,788 ****
     BTF_KIND_UNION.  */
  
  static void
! btf_asm_sou_member (ctf_container_ref ctfc, ctf_dmdef_t * dmd)
  {
    ctf_dtdef_ref ref_type = ctfc->ctfc_types_list[dmd->dmd_type];
  
    /* Re-encode bitfields to BTF representation.  */
    if (CTF_V2_INFO_KIND (ref_type->dtd_data.ctti_info) == CTF_K_SLICE)
      {
!       ctf_id_t base_type = ref_type->dtd_u.dtu_slice.cts_type;
!       unsigned short word_offset = ref_type->dtd_u.dtu_slice.cts_offset;
!       unsigned short bits = ref_type->dtd_u.dtu_slice.cts_bits;
!       uint64_t sou_offset = dmd->dmd_offset;
! 
!       /* Pack the bit offset and bitfield size together.  */
!       sou_offset += word_offset;
! 
!       /* If this bitfield cannot be represented, do not output anything.
! 	 The parent struct/union 'vlen' field has already been updated.  */
!       if ((bits > 0xff) || (sou_offset > 0xffffff))
! 	return;
  
!       sou_offset &= 0x00ffffff;
!       sou_offset |= ((bits & 0xff) << 24);
  
!       /* Refer to the base type of the slice.  */
!       dw2_asm_output_data (4, dmd->dmd_name_offset, "btm_name_off");
!       dw2_asm_output_data (4, get_btf_id (base_type), "btm_type");
!       dw2_asm_output_data (4, sou_offset, "btm_offset");
!     }
!   else
!     {
!       dw2_asm_output_data (4, dmd->dmd_name_offset, "btm_name_off");
!       dw2_asm_output_data (4, get_btf_id (dmd->dmd_type), "btm_type");
!       dw2_asm_output_data (4, dmd->dmd_offset, "btm_offset");
      }
  }
  
  /* Asm'out an enum constant following a BTF_KIND_ENUM{,64}.  */
  
  static void
! btf_asm_enum_const (unsigned int size, ctf_dmdef_t * dmd)
  {
!   dw2_asm_output_data (4, dmd->dmd_name_offset, "bte_name");
!   if (size == 4)
!     dw2_asm_output_data (size, dmd->dmd_value, "bte_value");
    else
      {
        dw2_asm_output_data (4, dmd->dmd_value & 0xffffffff, "bte_value_lo32");
--- 935,987 ----
     BTF_KIND_UNION.  */
  
  static void
! btf_asm_sou_member (ctf_container_ref ctfc, ctf_dmdef_t * dmd, unsigned int idx)
  {
    ctf_dtdef_ref ref_type = ctfc->ctfc_types_list[dmd->dmd_type];
+   ctf_id_t base_type = dmd->dmd_type;
+   uint64_t sou_offset = dmd->dmd_offset;
+ 
+   dw2_asm_output_data (4, dmd->dmd_name_offset,
+ 		       "MEMBER '%s' idx=%u",
+ 		       dmd->dmd_name, idx);
  
    /* Re-encode bitfields to BTF representation.  */
    if (CTF_V2_INFO_KIND (ref_type->dtd_data.ctti_info) == CTF_K_SLICE)
      {
!       if (btf_dmd_representable_bitfield_p (ctfc, dmd))
! 	{
! 	  unsigned short word_offset = ref_type->dtd_u.dtu_slice.cts_offset;
! 	  unsigned short bits = ref_type->dtd_u.dtu_slice.cts_bits;
  
! 	  /* Pack the bit offset and bitfield size together.  */
! 	  sou_offset += word_offset;
! 	  sou_offset &= 0x00ffffff;
! 	  sou_offset |= ((bits & 0xff) << 24);
  
! 	  /* Refer to the base type of the slice.  */
! 	  base_type = ref_type->dtd_u.dtu_slice.cts_type;
! 	}
!       else
! 	{
! 	  /* Bitfield cannot be represented in BTF.  Emit the member as having
! 	     'void' type.  */
! 	  base_type = BTF_VOID_TYPEID;
! 	}
      }
+ 
+   btf_asm_type_ref ("btm_type", ctfc, base_type);
+   dw2_asm_output_data (4, sou_offset, "btm_offset");
  }
  
  /* Asm'out an enum constant following a BTF_KIND_ENUM{,64}.  */
  
  static void
! btf_asm_enum_const (unsigned int size, ctf_dmdef_t * dmd, unsigned int idx)
  {
!   dw2_asm_output_data (4, dmd->dmd_name_offset, "ENUM_CONST '%s' idx=%u",
! 		       dmd->dmd_name, idx);
!   if (size <= 4)
!     dw2_asm_output_data (size < 4 ? 4 : size, dmd->dmd_value, "bte_value");
    else
      {
        dw2_asm_output_data (4, dmd->dmd_value & 0xffffffff, "bte_value_lo32");
*************** btf_asm_enum_const (unsigned int size, c
*** 793,799 ****
  /* Asm'out a function parameter description following a BTF_KIND_FUNC_PROTO.  */
  
  static void
! btf_asm_func_arg (ctf_func_arg_t * farg, size_t stroffset)
  {
    /* If the function arg does not have a name, refer to the null string at
       the start of the string table. This ensures correct encoding for varargs
--- 992,999 ----
  /* Asm'out a function parameter description following a BTF_KIND_FUNC_PROTO.  */
  
  static void
! btf_asm_func_arg (ctf_container_ref ctfc, ctf_func_arg_t * farg,
! 		  size_t stroffset)
  {
    /* If the function arg does not have a name, refer to the null string at
       the start of the string table. This ensures correct encoding for varargs
*************** btf_asm_func_arg (ctf_func_arg_t * farg,
*** 803,851 ****
    else
      dw2_asm_output_data (4, 0, "farg_name");
  
!   dw2_asm_output_data (4, (btf_removed_type_p (farg->farg_type)
! 			   ? BTF_VOID_TYPEID
! 			   : get_btf_id (farg->farg_type)),
! 		       "farg_type");
  }
  
  /* Asm'out a BTF_KIND_FUNC type.  */
  
  static void
! btf_asm_func_type (ctf_dtdef_ref dtd)
  {
!   dw2_asm_output_data (4, dtd->dtd_data.ctti_name, "btt_name");
!   dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_FUNC, 0,
!                                          dtd->linkage),
!                        "btt_info: kind=%u, kflag=%u, linkage=%u",
!                        BTF_KIND_FUNC, 0, dtd->linkage);
!   dw2_asm_output_data (4, get_btf_id (dtd->dtd_data.ctti_type), "btt_type");
  }
  
  /* Asm'out a variable entry following a BTF_KIND_DATASEC.  */
  
  static void
! btf_asm_datasec_entry (struct btf_var_secinfo info)
  {
!   dw2_asm_output_data (4, info.type, "bts_type");
!   dw2_asm_output_data (4, info.offset, "bts_offset");
    dw2_asm_output_data (4, info.size, "bts_size");
  }
  
  /* Asm'out a whole BTF_KIND_DATASEC, including its variable entries.  */
  
  static void
! btf_asm_datasec_type (btf_datasec_t ds, size_t stroffset)
  {
!   dw2_asm_output_data (4, ds.name_offset + stroffset, "btt_name");
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_DATASEC, 0,
  					 ds.entries.length ()),
! 		       "btt_info");
    /* Note: the "total section size in bytes" is emitted as 0 and patched by
       loaders such as libbpf.  */
    dw2_asm_output_data (4, 0, "btt_size");
    for (size_t i = 0; i < ds.entries.length (); i++)
!     btf_asm_datasec_entry (ds.entries[i]);
  }
  
  /* Compute and output the header information for a .BTF section.  */
--- 1003,1083 ----
    else
      dw2_asm_output_data (4, 0, "farg_name");
  
!   btf_asm_type_ref ("farg_type", ctfc, (btf_removed_type_p (farg->farg_type)
! 					? BTF_VOID_TYPEID
! 					: farg->farg_type));
  }
  
  /* Asm'out a BTF_KIND_FUNC type.  */
  
  static void
! btf_asm_func_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, ctf_id_t id)
  {
!   ctf_id_t ref_id = dtd->dtd_data.ctti_type;
!   dw2_asm_output_data (4, dtd->dtd_data.ctti_name,
! 		       "TYPE %" PRIu64 " BTF_KIND_FUNC '%s'",
! 		       btf_absolute_func_id (id), get_btf_type_name (dtd));
!   dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_FUNC, 0, dtd->linkage),
! 		       "btt_info: kind=%u, kflag=%u, linkage=%u",
! 		       BTF_KIND_FUNC, 0, dtd->linkage);
!   btf_asm_type_ref ("btt_type", ctfc, ref_id);
! }
! 
! /* Collect the name for the DATASEC reference required to be output as a
!    symbol. */
! 
! static const char *
! get_name_for_datasec_entry (ctf_container_ref ctfc, ctf_id_t ref_id)
! {
!   if (ref_id >= num_types_added + 1
!       && ref_id < num_types_added + num_vars_added + 1)
!     {
!       /* Ref to a variable.  Should only appear in DATASEC entries.  */
!       ctf_id_t var_id = btf_relative_var_id (ref_id);
!       ctf_dvdef_ref dvd = ctfc->ctfc_vars_list[var_id];
!       return dvd->dvd_name;
!     }
!   else if (ref_id >= num_types_added + num_vars_added + 1)
!     {
!       /* Ref to a FUNC record.  */
!       size_t func_id = btf_relative_func_id (ref_id);
!       ctf_dtdef_ref ref_type = (*funcs)[func_id];
!       return get_btf_type_name (ref_type);
!     }
!   return NULL;
  }
  
  /* Asm'out a variable entry following a BTF_KIND_DATASEC.  */
  
  static void
! btf_asm_datasec_entry (ctf_container_ref ctfc, struct btf_var_secinfo info)
  {
!   const char *symbol_name = get_name_for_datasec_entry (ctfc, info.type);
!   btf_asm_datasec_type_ref ("bts_type", ctfc, info.type);
!   if (!btf_with_core_debuginfo_p () || symbol_name == NULL)
!     dw2_asm_output_data (4, info.offset, "bts_offset");
!   else
!     dw2_asm_output_offset (4, symbol_name, NULL, "bts_offset");
    dw2_asm_output_data (4, info.size, "bts_size");
  }
  
  /* Asm'out a whole BTF_KIND_DATASEC, including its variable entries.  */
  
  static void
! btf_asm_datasec_type (ctf_container_ref ctfc, btf_datasec_t ds, ctf_id_t id,
! 		      size_t stroffset)
  {
!   dw2_asm_output_data (4, ds.name_offset + stroffset,
! 		       "TYPE %" PRIu64 " BTF_KIND_DATASEC '%s'",
! 		       btf_absolute_datasec_id (id), ds.name);
    dw2_asm_output_data (4, BTF_TYPE_INFO (BTF_KIND_DATASEC, 0,
  					 ds.entries.length ()),
! 		       "btt_info: n_entries=%u", ds.entries.length ());
    /* Note: the "total section size in bytes" is emitted as 0 and patched by
       loaders such as libbpf.  */
    dw2_asm_output_data (4, 0, "btt_size");
    for (size_t i = 0; i < ds.entries.length (); i++)
!     btf_asm_datasec_entry (ctfc, ds.entries[i]);
  }
  
  /* Compute and output the header information for a .BTF section.  */
*************** output_btf_vars (ctf_container_ref ctfc)
*** 906,912 ****
    if (num_ctf_vars)
      {
        for (i = 0; i < num_ctf_vars; i++)
! 	btf_asm_varent (ctfc->ctfc_vars_list[i]);
      }
  }
  
--- 1138,1144 ----
    if (num_ctf_vars)
      {
        for (i = 0; i < num_ctf_vars; i++)
! 	btf_asm_varent (ctfc, ctfc->ctfc_vars_list[i]);
      }
  }
  
*************** static void
*** 917,933 ****
  output_btf_strs (ctf_container_ref ctfc)
  {
    ctf_string_t * ctf_string = ctfc->ctfc_strtable.ctstab_head;
  
    while (ctf_string)
      {
!       dw2_asm_output_nstring (ctf_string->cts_str, -1, "btf_string");
        ctf_string = ctf_string->cts_next;
      }
  
    ctf_string = ctfc->ctfc_aux_strtable.ctstab_head;
    while (ctf_string)
      {
!       dw2_asm_output_nstring (ctf_string->cts_str, -1, "btf_aux_string");
        ctf_string = ctf_string->cts_next;
      }
  }
--- 1149,1168 ----
  output_btf_strs (ctf_container_ref ctfc)
  {
    ctf_string_t * ctf_string = ctfc->ctfc_strtable.ctstab_head;
+   static int str_pos = 0;
  
    while (ctf_string)
      {
!       dw2_asm_output_nstring (ctf_string->cts_str, -1, "btf_string, str_pos = 0x%x", str_pos);
!       str_pos += strlen(ctf_string->cts_str) + 1;
        ctf_string = ctf_string->cts_next;
      }
  
    ctf_string = ctfc->ctfc_aux_strtable.ctstab_head;
    while (ctf_string)
      {
!       dw2_asm_output_nstring (ctf_string->cts_str, -1, "btf_aux_string, str_pos = 0x%x", str_pos);
!       str_pos += strlen(ctf_string->cts_str) + 1;
        ctf_string = ctf_string->cts_next;
      }
  }
*************** output_asm_btf_sou_fields (ctf_container
*** 940,948 ****
  {
    ctf_dmdef_t * dmd;
  
    for (dmd = dtd->dtd_u.dtu_members;
         dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
!       btf_asm_sou_member (ctfc, dmd);
  }
  
  /* Output all enumerator constants following a BTF_KIND_ENUM{,64}.  */
--- 1175,1187 ----
  {
    ctf_dmdef_t * dmd;
  
+   unsigned idx = 0;
    for (dmd = dtd->dtd_u.dtu_members;
         dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
!     {
!       btf_asm_sou_member (ctfc, dmd, idx);
!       idx++;
!     }
  }
  
  /* Output all enumerator constants following a BTF_KIND_ENUM{,64}.  */
*************** output_asm_btf_enum_list (ctf_container_
*** 953,961 ****
  {
    ctf_dmdef_t * dmd;
  
    for (dmd = dtd->dtd_u.dtu_members;
         dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
!     btf_asm_enum_const (dtd->dtd_data.ctti_size, dmd);
  }
  
  /* Output all function arguments following a BTF_KIND_FUNC_PROTO.  */
--- 1192,1204 ----
  {
    ctf_dmdef_t * dmd;
  
+   unsigned idx = 0;
    for (dmd = dtd->dtd_u.dtu_members;
         dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
!     {
!       btf_asm_enum_const (dtd->dtd_data.ctti_size, dmd, idx);
!       idx++;
!     }
  }
  
  /* Output all function arguments following a BTF_KIND_FUNC_PROTO.  */
*************** output_asm_btf_func_args_list (ctf_conta
*** 968,974 ****
    ctf_func_arg_t * farg;
    for (farg = dtd->dtd_u.dtu_argv;
         farg != NULL; farg = (ctf_func_arg_t *) ctf_farg_list_next (farg))
!     btf_asm_func_arg (farg, farg_name_offset);
  }
  
  /* Output the variable portion of a BTF type record. The information depends
--- 1211,1217 ----
    ctf_func_arg_t * farg;
    for (farg = dtd->dtd_u.dtu_argv;
         farg != NULL; farg = (ctf_func_arg_t *) ctf_farg_list_next (farg))
!     btf_asm_func_arg (ctfc, farg, farg_name_offset);
  }
  
  /* Output the variable portion of a BTF type record. The information depends
*************** output_asm_btf_vlen_bytes (ctf_container
*** 1004,1010 ****
        break;
  
      case BTF_KIND_ARRAY:
!       btf_asm_array (dtd);
        break;
  
      case BTF_KIND_STRUCT:
--- 1247,1253 ----
        break;
  
      case BTF_KIND_ARRAY:
!       btf_asm_array (ctfc, dtd->dtd_u.dtu_arr);
        break;
  
      case BTF_KIND_STRUCT:
*************** output_btf_types (ctf_container_ref ctfc
*** 1068,1077 ****
  /* Output all BTF_KIND_FUNC type records.  */
  
  static void
! output_btf_func_types (void)
  {
!   for (size_t i = 0; i < vec_safe_length (funcs); i++)
!     btf_asm_func_type ((*funcs)[i]);
  }
  
  /* Output all BTF_KIND_DATASEC records.  */
--- 1311,1322 ----
  /* Output all BTF_KIND_FUNC type records.  */
  
  static void
! output_btf_func_types (ctf_container_ref ctfc)
  {
!   ctf_dtdef_ref ref;
!   unsigned i;
!   FOR_EACH_VEC_ELT (*funcs, i, ref)
!     btf_asm_func_type (ctfc, ref, i);
  }
  
  /* Output all BTF_KIND_DATASEC records.  */
*************** output_btf_datasec_types (ctf_container_
*** 1082,1088 ****
    size_t name_offset = ctfc_get_strtab_len (ctfc, CTF_STRTAB);
  
    for (size_t i = 0; i < datasecs.length(); i++)
!     btf_asm_datasec_type (datasecs[i], name_offset);
  }
  
  /* Postprocess the CTF debug data post initialization.
--- 1327,1333 ----
    size_t name_offset = ctfc_get_strtab_len (ctfc, CTF_STRTAB);
  
    for (size_t i = 0; i < datasecs.length(); i++)
!     btf_asm_datasec_type (ctfc, datasecs[i], i, name_offset);
  }
  
  /* Postprocess the CTF debug data post initialization.
*************** btf_output (const char * filename)
*** 1209,1215 ****
    output_btf_header (tu_ctfc);
    output_btf_types (tu_ctfc);
    output_btf_vars (tu_ctfc);
!   output_btf_func_types ();
    output_btf_datasec_types (tu_ctfc);
    output_btf_strs (tu_ctfc);
  }
--- 1454,1460 ----
    output_btf_header (tu_ctfc);
    output_btf_types (tu_ctfc);
    output_btf_vars (tu_ctfc);
!   output_btf_func_types (tu_ctfc);
    output_btf_datasec_types (tu_ctfc);
    output_btf_strs (tu_ctfc);
  }
*************** btf_finalize (void)
*** 1246,1249 ****
--- 1491,1510 ----
    tu_ctfc = NULL;
  }
  
+ /* Traversal function for all BTF_KIND_FUNC type records.  */
+ 
+ bool
+ traverse_btf_func_types (funcs_traverse_callback callback, void *data)
+ {
+   ctf_dtdef_ref ref;
+   unsigned i;
+   FOR_EACH_VEC_ELT (*funcs, i, ref)
+     {
+       bool stop = callback (ref, data);
+       if (stop == true)
+ 	return true;
+     }
+   return false;
+ }
+ 
  #include "gt-btfout.h"
diff -Nrcpad gcc-13.2.0/gcc/builtin-attrs.def gcc-14.1.0/gcc/builtin-attrs.def
*** gcc-13.2.0/gcc/builtin-attrs.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/builtin-attrs.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2001-2023 Free Software Foundation, Inc.
     Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  
  This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2001-2024 Free Software Foundation, Inc.
     Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/builtin-types.def gcc-14.1.0/gcc/builtin-types.def
*** gcc-13.2.0/gcc/builtin-types.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/builtin-types.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2001-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2001-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST
*** 840,851 ****
--- 840,860 ----
  		     BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
  DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
  		     BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
+ DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_SIZE_PTRMODE_PTRMODE,
+ 		     BT_PTR, BT_PTR, BT_SIZE, BT_PTRMODE, BT_PTRMODE)
  DEF_FUNCTION_TYPE_4 (BT_FN_UINT_UINT_UINT_UINT_UINT,
  		     BT_UINT, BT_UINT, BT_UINT, BT_UINT, BT_UINT)
+ DEF_FUNCTION_TYPE_4 (BT_FN_UINT_UINT_UINT_UINT_UINTPTR,
+ 		     BT_UINT, BT_UINT, BT_UINT, BT_UINT, BT_PTR_UINT)
  DEF_FUNCTION_TYPE_4 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT,
  		     BT_UINT, BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
  DEF_FUNCTION_TYPE_4 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT,
  		     BT_ULONG, BT_ULONG, BT_ULONG, BT_UINT, BT_UINT)
+ DEF_FUNCTION_TYPE_4 (BT_FN_ULONG_ULONG_ULONG_ULONG_ULONGPTR,
+ 		     BT_ULONG, BT_ULONG, BT_ULONG, BT_ULONG, BT_PTR_ULONG)
+ DEF_FUNCTION_TYPE_4 (BT_FN_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONGPTR,
+ 		     BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG,
+ 		     BT_PTR_ULONGLONG)
  DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
  		     BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
  DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
diff -Nrcpad gcc-13.2.0/gcc/builtins.cc gcc-14.1.0/gcc/builtins.cc
*** gcc-13.2.0/gcc/builtins.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/builtins.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Expand builtin functions.
!    Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Expand builtin functions.
!    Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 71,76 ****
--- 71,77 ----
  #include "gimple-fold.h"
  #include "intl.h"
  #include "file-prefix-map.h" /* remap_macro_filename()  */
+ #include "ipa-strub.h" /* strub_watermark_parm()  */
  #include "gomp-constants.h"
  #include "omp-general.h"
  #include "tree-dfa.h"
*************** static rtx expand_builtin_apply_args (vo
*** 113,119 ****
  static rtx expand_builtin_apply_args_1 (void);
  static rtx expand_builtin_apply (rtx, rtx, rtx);
  static void expand_builtin_return (rtx);
- static enum type_class type_to_class (tree);
  static rtx expand_builtin_classify_type (tree);
  static rtx expand_builtin_mathfn_3 (tree, rtx, rtx);
  static rtx expand_builtin_mathfn_ternary (tree, rtx, rtx);
--- 114,119 ----
*************** static rtx expand_builtin_strnlen (tree,
*** 152,157 ****
--- 152,158 ----
  static rtx expand_builtin_alloca (tree);
  static rtx expand_builtin_unop (machine_mode, tree, rtx, rtx, optab);
  static rtx expand_builtin_frame_address (tree, tree);
+ static rtx expand_builtin_stack_address ();
  static tree stabilize_va_list_loc (location_t, tree, int);
  static rtx expand_builtin_expect (tree, rtx);
  static rtx expand_builtin_expect_with_probability (tree, rtx);
*************** static tree fold_builtin_fabs (location_
*** 171,176 ****
--- 172,178 ----
  static tree fold_builtin_abs (location_t, tree, tree);
  static tree fold_builtin_unordered_cmp (location_t, tree, tree, tree, enum tree_code,
  					enum tree_code);
+ static tree fold_builtin_iseqsig (location_t, tree, tree);
  static tree fold_builtin_varargs (location_t, tree, tree*, int);
  
  static tree fold_builtin_strpbrk (location_t, tree, tree, tree, tree);
*************** c_strlen (tree arg, int only_value, c_st
*** 743,781 ****
     as needed.  */
  
  rtx
! c_readstr (const char *str, scalar_int_mode mode,
  	   bool null_terminated_p/*=true*/)
  {
!   HOST_WIDE_INT ch;
!   unsigned int i, j;
!   HOST_WIDE_INT tmp[MAX_BITSIZE_MODE_ANY_INT / HOST_BITS_PER_WIDE_INT];
! 
!   gcc_assert (GET_MODE_CLASS (mode) == MODE_INT);
!   unsigned int len = (GET_MODE_PRECISION (mode) + HOST_BITS_PER_WIDE_INT - 1)
!     / HOST_BITS_PER_WIDE_INT;
  
!   gcc_assert (len <= MAX_BITSIZE_MODE_ANY_INT / HOST_BITS_PER_WIDE_INT);
!   for (i = 0; i < len; i++)
!     tmp[i] = 0;
  
!   ch = 1;
!   for (i = 0; i < GET_MODE_SIZE (mode); i++)
      {
-       j = i;
-       if (WORDS_BIG_ENDIAN)
- 	j = GET_MODE_SIZE (mode) - i - 1;
-       if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN
- 	  && GET_MODE_SIZE (mode) >= UNITS_PER_WORD)
- 	j = j + UNITS_PER_WORD - 2 * (j % UNITS_PER_WORD) - 1;
-       j *= BITS_PER_UNIT;
- 
        if (ch || !null_terminated_p)
  	ch = (unsigned char) str[i];
!       tmp[j / HOST_BITS_PER_WIDE_INT] |= ch << (j % HOST_BITS_PER_WIDE_INT);
      }
  
!   wide_int c = wide_int::from_array (tmp, len, GET_MODE_PRECISION (mode));
!   return immed_wide_int_const (c, mode);
  }
  
  /* Cast a target constant CST to target CHAR and if that value fits into
--- 745,766 ----
     as needed.  */
  
  rtx
! c_readstr (const char *str, fixed_size_mode mode,
  	   bool null_terminated_p/*=true*/)
  {
!   auto_vec<target_unit, MAX_BITSIZE_MODE_ANY_INT / BITS_PER_UNIT> bytes;
  
!   bytes.reserve (GET_MODE_SIZE (mode));
  
!   target_unit ch = 1;
!   for (unsigned int i = 0; i < GET_MODE_SIZE (mode); ++i)
      {
        if (ch || !null_terminated_p)
  	ch = (unsigned char) str[i];
!       bytes.quick_push (ch);
      }
  
!   return native_decode_rtx (mode, bytes, 0);
  }
  
  /* Cast a target constant CST to target CHAR and if that value fits into
*************** get_memory_rtx (tree exp, tree len)
*** 1364,1369 ****
--- 1349,1357 ----
    tree orig_exp = exp, base;
    rtx addr, mem;
  
+   gcc_checking_assert
+     (ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (TREE_TYPE (TREE_TYPE (exp)))));
+ 
    /* When EXP is not resolved SAVE_EXPR, MEM_ATTRS can be still derived
       from its expression, for expr->a.b only <variable>.a.b is recorded.  */
    if (TREE_CODE (exp) == SAVE_EXPR && !SAVE_EXPR_RESOLVED_P (exp))
*************** get_memory_rtx (tree exp, tree len)
*** 1415,1422 ****
--- 1403,1426 ----
  
  /* Built-in functions to perform an untyped call and return.  */
  
+ /* Wrapper that implicitly applies a delta when getting or setting the
+    enclosed value.  */
+ template <typename T>
+ class delta_type
+ {
+   T &value; T const delta;
+ public:
+   delta_type (T &val, T dlt) : value (val), delta (dlt) {}
+   operator T () const { return value + delta; }
+   T operator = (T val) const { value = val - delta; return val; }
+ };
+ 
+ #define saved_apply_args_size \
+   (delta_type<int> (this_target_builtins->x_apply_args_size_plus_one, -1))
  #define apply_args_mode \
    (this_target_builtins->x_apply_args_mode)
+ #define saved_apply_result_size \
+   (delta_type<int> (this_target_builtins->x_apply_result_size_plus_one, -1))
  #define apply_result_mode \
    (this_target_builtins->x_apply_result_mode)
  
*************** get_memory_rtx (tree exp, tree len)
*** 1426,1432 ****
  static int
  apply_args_size (void)
  {
!   static int size = -1;
    int align;
    unsigned int regno;
  
--- 1430,1436 ----
  static int
  apply_args_size (void)
  {
!   int size = saved_apply_args_size;
    int align;
    unsigned int regno;
  
*************** apply_args_size (void)
*** 1459,1464 ****
--- 1463,1470 ----
  	  }
  	else
  	  apply_args_mode[regno] = as_a <fixed_size_mode> (VOIDmode);
+ 
+       saved_apply_args_size = size;
      }
    return size;
  }
*************** apply_args_size (void)
*** 1469,1475 ****
  static int
  apply_result_size (void)
  {
!   static int size = -1;
    int align, regno;
  
    /* The values computed by this function never change.  */
--- 1475,1481 ----
  static int
  apply_result_size (void)
  {
!   int size = saved_apply_result_size;
    int align, regno;
  
    /* The values computed by this function never change.  */
*************** apply_result_size (void)
*** 1501,1506 ****
--- 1507,1514 ----
  #ifdef APPLY_RESULT_SIZE
        size = APPLY_RESULT_SIZE;
  #endif
+ 
+       saved_apply_result_size = size;
      }
    return size;
  }
*************** expand_builtin_return (rtx result)
*** 1852,1858 ****
  
  /* Used by expand_builtin_classify_type and fold_builtin_classify_type.  */
  
! static enum type_class
  type_to_class (tree type)
  {
    switch (TREE_CODE (type))
--- 1860,1866 ----
  
  /* Used by expand_builtin_classify_type and fold_builtin_classify_type.  */
  
! int
  type_to_class (tree type)
  {
    switch (TREE_CODE (type))
*************** type_to_class (tree type)
*** 1875,1880 ****
--- 1883,1890 ----
  				   ? string_type_class : array_type_class);
      case LANG_TYPE:	   return lang_type_class;
      case OPAQUE_TYPE:      return opaque_type_class;
+     case BITINT_TYPE:	   return bitint_type_class;
+     case VECTOR_TYPE:	   return vector_type_class;
      default:		   return no_type_class;
      }
  }
*************** expand_builtin_strnlen (tree exp, rtx ta
*** 3494,3500 ****
    wide_int min, max;
    value_range r;
    get_global_range_query ()->range_of_expr (r, bound);
!   if (r.kind () != VR_RANGE)
      return NULL_RTX;
    min = r.lower_bound ();
    max = r.upper_bound ();
--- 3504,3510 ----
    wide_int min, max;
    value_range r;
    get_global_range_query ()->range_of_expr (r, bound);
!   if (r.varying_p () || r.undefined_p ())
      return NULL_RTX;
    min = r.lower_bound ();
    max = r.upper_bound ();
*************** builtin_memcpy_read_str (void *data, voi
*** 3529,3538 ****
       string but the caller guarantees it's large enough for MODE.  */
    const char *rep = (const char *) data;
  
!   /* The by-pieces infrastructure does not try to pick a vector mode
!      for memcpy expansion.  */
!   return c_readstr (rep + offset, as_a <scalar_int_mode> (mode),
! 		    /*nul_terminated=*/false);
  }
  
  /* LEN specify length of the block of memcpy/memset operation.
--- 3539,3545 ----
       string but the caller guarantees it's large enough for MODE.  */
    const char *rep = (const char *) data;
  
!   return c_readstr (rep + offset, mode, /*nul_terminated=*/false);
  }
  
  /* LEN specify length of the block of memcpy/memset operation.
*************** determine_block_size (tree len, rtx len_
*** 3570,3581 ****
        if (TREE_CODE (len) == SSA_NAME)
  	{
  	  value_range r;
  	  get_global_range_query ()->range_of_expr (r, len);
! 	  range_type = r.kind ();
  	  if (range_type != VR_UNDEFINED)
  	    {
! 	      min = wi::to_wide (r.min ());
! 	      max = wi::to_wide (r.max ());
  	    }
  	}
        if (range_type == VR_RANGE)
--- 3577,3589 ----
        if (TREE_CODE (len) == SSA_NAME)
  	{
  	  value_range r;
+ 	  tree tmin, tmax;
  	  get_global_range_query ()->range_of_expr (r, len);
! 	  range_type = get_legacy_range (r, tmin, tmax);
  	  if (range_type != VR_UNDEFINED)
  	    {
! 	      min = wi::to_wide (tmin);
! 	      max = wi::to_wide (tmax);
  	    }
  	}
        if (range_type == VR_RANGE)
*************** expand_builtin_memory_copy_args (tree de
*** 3768,3774 ****
  				     expected_align, expected_size,
  				     min_size, max_size, probable_max_size,
  				     use_mempcpy_call, &is_move_done,
! 				     might_overlap);
  
    /* Bail out when a mempcpy call would be expanded as libcall and when
       we have a target that provides a fast implementation
--- 3776,3782 ----
  				     expected_align, expected_size,
  				     min_size, max_size, probable_max_size,
  				     use_mempcpy_call, &is_move_done,
! 				     might_overlap, tree_ctz (len));
  
    /* Bail out when a mempcpy call would be expanded as libcall and when
       we have a target that provides a fast implementation
*************** builtin_strncpy_read_str (void *data, vo
*** 3992,4000 ****
    if ((unsigned HOST_WIDE_INT) offset > strlen (str))
      return const0_rtx;
  
!   /* The by-pieces infrastructure does not try to pick a vector mode
!      for strncpy expansion.  */
!   return c_readstr (str + offset, as_a <scalar_int_mode> (mode));
  }
  
  /* Helper to check the sizes of sequences and the destination of calls
--- 4000,4006 ----
    if ((unsigned HOST_WIDE_INT) offset > strlen (str))
      return const0_rtx;
  
!   return c_readstr (str + offset, mode);
  }
  
  /* Helper to check the sizes of sequences and the destination of calls
*************** builtin_memset_read_str (void *data, voi
*** 4225,4232 ****
  
    memset (p, *c, size);
  
!   /* Vector modes should be handled above.  */
!   return c_readstr (p, as_a <scalar_int_mode> (mode));
  }
  
  /* Callback routine for store_by_pieces.  Return the RTL of a register
--- 4231,4237 ----
  
    memset (p, *c, size);
  
!   return c_readstr (p, mode);
  }
  
  /* Callback routine for store_by_pieces.  Return the RTL of a register
*************** builtin_memset_gen_str (void *data, void
*** 4273,4280 ****
  
    p = XALLOCAVEC (char, size);
    memset (p, 1, size);
!   /* Vector modes should be handled above.  */
!   coeff = c_readstr (p, as_a <scalar_int_mode> (mode));
  
    target = convert_to_mode (mode, (rtx) data, 1);
    target = expand_mult (mode, target, coeff, NULL_RTX, 1);
--- 4278,4284 ----
  
    p = XALLOCAVEC (char, size);
    memset (p, 1, size);
!   coeff = c_readstr (p, mode);
  
    target = convert_to_mode (mode, (rtx) data, 1);
    target = expand_mult (mode, target, coeff, NULL_RTX, 1);
*************** expand_builtin_memset (tree exp, rtx tar
*** 4300,4305 ****
--- 4304,4343 ----
    return expand_builtin_memset_args (dest, val, len, target, mode, exp);
  }
  
+ /* Check that store_by_pieces allows BITS + LEN (so that we don't
+    expand something too unreasonably long), and every power of 2 in
+    BITS.  It is assumed that LEN has already been tested by
+    itself.  */
+ static bool
+ can_store_by_multiple_pieces (unsigned HOST_WIDE_INT bits,
+ 			      by_pieces_constfn constfun,
+ 			      void *constfundata, unsigned int align,
+ 			      bool memsetp,
+ 			      unsigned HOST_WIDE_INT len)
+ {
+   if (bits
+       && !can_store_by_pieces (bits + len, constfun, constfundata,
+ 			       align, memsetp))
+     return false;
+ 
+   /* BITS set are expected to be generally in the low range and
+      contiguous.  We do NOT want to repeat the test above in case BITS
+      has a single bit set, so we terminate the loop when BITS == BIT.
+      In the unlikely case that BITS has the MSB set, also terminate in
+      case BIT gets shifted out.  */
+   for (unsigned HOST_WIDE_INT bit = 1; bit < bits && bit; bit <<= 1)
+     {
+       if ((bits & bit) == 0)
+ 	continue;
+ 
+       if (!can_store_by_pieces (bit, constfun, constfundata,
+ 				align, memsetp))
+ 	return false;
+     }
+ 
+   return true;
+ }
+ 
  /* Try to store VAL (or, if NULL_RTX, VALC) in LEN bytes starting at TO.
     Return TRUE if successful, FALSE otherwise.  TO is assumed to be
     aligned at an ALIGN-bits boundary.  LEN must be a multiple of
*************** try_store_by_multiple_pieces (rtx to, rt
*** 4334,4339 ****
--- 4372,4381 ----
    int tst_bits = (max_bits != min_bits ? max_bits
  		  : floor_log2 (max_len ^ min_len));
  
+   /* Save the pre-blksize values.  */
+   int orig_max_bits = max_bits;
+   int orig_tst_bits = tst_bits;
+ 
    /* Check whether it's profitable to start by storing a fixed BLKSIZE
       bytes, to lower max_bits.  In the unlikely case of a constant LEN
       (implied by identical MAX_LEN and MIN_LEN), we want to issue a
*************** try_store_by_multiple_pieces (rtx to, rt
*** 4353,4359 ****
    else
      /* Huh, max_len < min_len?  Punt.  See pr100843.c.  */
      return false;
!   if (min_len >= blksize)
      {
        min_len -= blksize;
        min_bits = floor_log2 (min_len);
--- 4395,4405 ----
    else
      /* Huh, max_len < min_len?  Punt.  See pr100843.c.  */
      return false;
!   if (min_len >= blksize
!       /* ??? Maybe try smaller fixed-prefix blksizes before
! 	 punting?  */
!       && can_store_by_pieces (blksize, builtin_memset_read_str,
! 			      &valc, align, true))
      {
        min_len -= blksize;
        min_bits = floor_log2 (min_len);
*************** try_store_by_multiple_pieces (rtx to, rt
*** 4373,4381 ****
    if (max_bits >= 0)
      xlenest += ((HOST_WIDE_INT_1U << max_bits) * 2
  		- (HOST_WIDE_INT_1U << ctz_len));
!   if (!can_store_by_pieces (xlenest, builtin_memset_read_str,
! 			    &valc, align, true))
!     return false;
  
    by_pieces_constfn constfun;
    void *constfundata;
--- 4419,4496 ----
    if (max_bits >= 0)
      xlenest += ((HOST_WIDE_INT_1U << max_bits) * 2
  		- (HOST_WIDE_INT_1U << ctz_len));
!   bool max_loop = false;
!   bool use_store_by_pieces = true;
!   /* Skip the test in case of overflow in xlenest.  It shouldn't
!      happen because of the way max_bits and blksize are related, but
!      it doesn't hurt to test.  */
!   if (blksize > xlenest
!       || !can_store_by_multiple_pieces (xlenest - blksize,
! 					builtin_memset_read_str,
! 					&valc, align, true, blksize))
!     {
!       if (!(flag_inline_stringops & ILSOP_MEMSET))
! 	return false;
! 
!       for (max_bits = orig_max_bits;
! 	   max_bits >= sctz_len;
! 	   --max_bits)
! 	{
! 	  xlenest = ((HOST_WIDE_INT_1U << max_bits) * 2
! 		     - (HOST_WIDE_INT_1U << ctz_len));
! 	  /* Check that blksize plus the bits to be stored as blocks
! 	     sized at powers of two can be stored by pieces.  This is
! 	     like the test above, but with smaller max_bits.  Skip
! 	     orig_max_bits (it would be redundant).  Also skip in case
! 	     of overflow.  */
! 	  if (max_bits < orig_max_bits
! 	      && xlenest + blksize >= xlenest
! 	      && can_store_by_multiple_pieces (xlenest,
! 					       builtin_memset_read_str,
! 					       &valc, align, true, blksize))
! 	    {
! 	      max_loop = true;
! 	      break;
! 	    }
! 	  if (blksize
! 	      && can_store_by_multiple_pieces (xlenest,
! 					       builtin_memset_read_str,
! 					       &valc, align, true, 0))
! 	    {
! 	      max_len += blksize;
! 	      min_len += blksize;
! 	      tst_bits = orig_tst_bits;
! 	      blksize = 0;
! 	      max_loop = true;
! 	      break;
! 	    }
! 	  if (max_bits == sctz_len)
! 	    {
! 	      /* We'll get here if can_store_by_pieces refuses to
! 		 store even a single QImode.  We'll fall back to
! 		 QImode stores then.  */
! 	      if (!sctz_len)
! 		{
! 		  blksize = 0;
! 		  max_loop = true;
! 		  use_store_by_pieces = false;
! 		  break;
! 		}
! 	      --sctz_len;
! 	      --ctz_len;
! 	    }
! 	}
!       if (!max_loop)
! 	return false;
!       /* If the boundaries are such that min and max may run a
! 	 different number of trips in the initial loop, the remainder
! 	 needs not be between the moduli, so set tst_bits to cover all
! 	 bits.  Otherwise, if the trip counts are the same, max_len
! 	 has the common prefix, and the previously-computed tst_bits
! 	 is usable.  */
!       if (max_len >> max_bits > min_len >> max_bits)
! 	tst_bits = max_bits;
!     }
  
    by_pieces_constfn constfun;
    void *constfundata;
*************** try_store_by_multiple_pieces (rtx to, rt
*** 4417,4423 ****
--- 4532,4540 ----
       the least significant bit possibly set in the length.  */
    for (int i = max_bits; i >= sctz_len; i--)
      {
+       rtx_code_label *loop_label = NULL;
        rtx_code_label *label = NULL;
+ 
        blksize = HOST_WIDE_INT_1U << i;
  
        /* If we're past the bits shared between min_ and max_len, expand
*************** try_store_by_multiple_pieces (rtx to, rt
*** 4431,4455 ****
  				   profile_probability::even ());
  	}
        /* If we are at a bit that is in the prefix shared by min_ and
! 	 max_len, skip this BLKSIZE if the bit is clear.  */
!       else if ((max_len & blksize) == 0)
  	continue;
  
!       /* Issue a store of BLKSIZE bytes.  */
!       to = store_by_pieces (to, blksize,
! 			    constfun, constfundata,
! 			    align, true,
! 			    i != sctz_len ? RETURN_END : RETURN_BEGIN);
  
        /* Adjust REM and PTR, unless this is the last iteration.  */
!       if (i != sctz_len)
  	{
! 	  emit_move_insn (ptr, force_operand (XEXP (to, 0), NULL_RTX));
  	  to = replace_equiv_address (to, ptr);
  	  rtx rem_minus_blksize = plus_constant (ptr_mode, rem, -blksize);
  	  emit_move_insn (rem, force_operand (rem_minus_blksize, NULL_RTX));
  	}
  
        if (label)
  	{
  	  emit_label (label);
--- 4548,4604 ----
  				   profile_probability::even ());
  	}
        /* If we are at a bit that is in the prefix shared by min_ and
! 	 max_len, skip the current BLKSIZE if the bit is clear, but do
! 	 not skip the loop, even if it doesn't require
! 	 prechecking.  */
!       else if ((max_len & blksize) == 0
! 	       && !(max_loop && i == max_bits))
  	continue;
  
!       if (max_loop && i == max_bits)
! 	{
! 	  loop_label = gen_label_rtx ();
! 	  emit_label (loop_label);
! 	  /* Since we may run this multiple times, don't assume we
! 	     know anything about the offset.  */
! 	  clear_mem_offset (to);
! 	}
  
+       bool update_needed = i != sctz_len || loop_label;
+       rtx next_ptr = NULL_RTX;
+       if (!use_store_by_pieces)
+ 	{
+ 	  gcc_checking_assert (blksize == 1);
+ 	  if (!val)
+ 	    val = gen_int_mode (valc, QImode);
+ 	  to = change_address (to, QImode, 0);
+ 	  emit_move_insn (to, val);
+ 	  if (update_needed)
+ 	    next_ptr = plus_constant (GET_MODE (ptr), ptr, blksize);
+ 	}
+       else
+ 	{
+ 	  /* Issue a store of BLKSIZE bytes.  */
+ 	  to = store_by_pieces (to, blksize,
+ 				constfun, constfundata,
+ 				align, true,
+ 				update_needed ? RETURN_END : RETURN_BEGIN);
+ 	  next_ptr = XEXP (to, 0);
+ 	}
        /* Adjust REM and PTR, unless this is the last iteration.  */
!       if (update_needed)
  	{
! 	  emit_move_insn (ptr, force_operand (next_ptr, NULL_RTX));
  	  to = replace_equiv_address (to, ptr);
  	  rtx rem_minus_blksize = plus_constant (ptr_mode, rem, -blksize);
  	  emit_move_insn (rem, force_operand (rem_minus_blksize, NULL_RTX));
  	}
  
+       if (loop_label)
+ 	emit_cmp_and_jump_insns (rem, GEN_INT (blksize), GE, NULL,
+ 				 ptr_mode, 1, loop_label,
+ 				 profile_probability::likely ());
+ 
        if (label)
  	{
  	  emit_label (label);
*************** expand_builtin_memcmp (tree exp, rtx tar
*** 4736,4742 ****
    result = emit_block_cmp_hints (arg1_rtx, arg2_rtx, len_rtx,
  				 TREE_TYPE (len), target,
  				 result_eq, constfn,
! 				 CONST_CAST (char *, rep));
  
    if (result)
      {
--- 4885,4892 ----
    result = emit_block_cmp_hints (arg1_rtx, arg2_rtx, len_rtx,
  				 TREE_TYPE (len), target,
  				 result_eq, constfn,
! 				 CONST_CAST (char *, rep),
! 				 tree_ctz (len));
  
    if (result)
      {
*************** expand_builtin_frame_address (tree fndec
*** 5280,5285 ****
--- 5430,5713 ----
      }
  }
  
+ #if ! STACK_GROWS_DOWNWARD
+ # define STACK_TOPS GT
+ #else
+ # define STACK_TOPS LT
+ #endif
+ 
+ #ifdef POINTERS_EXTEND_UNSIGNED
+ # define STACK_UNSIGNED POINTERS_EXTEND_UNSIGNED
+ #else
+ # define STACK_UNSIGNED true
+ #endif
+ 
+ /* Expand a call to builtin function __builtin_stack_address.  */
+ 
+ static rtx
+ expand_builtin_stack_address ()
+ {
+   rtx ret = convert_to_mode (ptr_mode, copy_to_reg (stack_pointer_rtx),
+ 			     STACK_UNSIGNED);
+ 
+ #ifdef STACK_ADDRESS_OFFSET
+   /* Unbias the stack pointer, bringing it to the boundary between the
+      stack area claimed by the active function calling this builtin,
+      and stack ranges that could get clobbered if it called another
+      function.  It should NOT encompass any stack red zone, that is
+      used in leaf functions.
+ 
+      On SPARC, the register save area is *not* considered active or
+      used by the active function, but rather as akin to the area in
+      which call-preserved registers are saved by callees.  This
+      enables __strub_leave to clear what would otherwise overlap with
+      its own register save area.
+ 
+      If the address is computed too high or too low, parts of a stack
+      range that should be scrubbed may be left unscrubbed, scrubbing
+      may corrupt active portions of the stack frame, and stack ranges
+      may be doubly-scrubbed by caller and callee.
+ 
+      In order for it to be just right, the area delimited by
+      @code{__builtin_stack_address} and @code{__builtin_frame_address
+      (0)} should encompass caller's registers saved by the function,
+      local on-stack variables and @code{alloca} stack areas.
+      Accumulated outgoing on-stack arguments, preallocated as part of
+      a function's own prologue, are to be regarded as part of the
+      (caller) function's active area as well, whereas those pushed or
+      allocated temporarily for a call are regarded as part of the
+      callee's stack range, rather than the caller's.  */
+   ret = plus_constant (ptr_mode, ret, STACK_ADDRESS_OFFSET);
+ #endif
+ 
+   return force_reg (ptr_mode, ret);
+ }
+ 
+ /* Expand a call to builtin function __builtin_strub_enter.  */
+ 
+ static rtx
+ expand_builtin_strub_enter (tree exp)
+ {
+   if (!validate_arglist (exp, POINTER_TYPE, VOID_TYPE))
+     return NULL_RTX;
+ 
+   if (optimize < 1 || flag_no_inline)
+     return NULL_RTX;
+ 
+   rtx stktop = expand_builtin_stack_address ();
+ 
+   tree wmptr = CALL_EXPR_ARG (exp, 0);
+   tree wmtype = TREE_TYPE (TREE_TYPE (wmptr));
+   tree wmtree = fold_build2 (MEM_REF, wmtype, wmptr,
+ 			     build_int_cst (TREE_TYPE (wmptr), 0));
+   rtx wmark = expand_expr (wmtree, NULL_RTX, ptr_mode, EXPAND_MEMORY);
+ 
+   emit_move_insn (wmark, stktop);
+ 
+   return const0_rtx;
+ }
+ 
+ /* Expand a call to builtin function __builtin_strub_update.  */
+ 
+ static rtx
+ expand_builtin_strub_update (tree exp)
+ {
+   if (!validate_arglist (exp, POINTER_TYPE, VOID_TYPE))
+     return NULL_RTX;
+ 
+   if (optimize < 2 || flag_no_inline)
+     return NULL_RTX;
+ 
+   rtx stktop = expand_builtin_stack_address ();
+ 
+ #ifdef RED_ZONE_SIZE
+   /* Here's how the strub enter, update and leave functions deal with red zones.
+ 
+      If it weren't for red zones, update, called from within a strub context,
+      would bump the watermark to the top of the stack.  Enter and leave, running
+      in the caller, would use the caller's top of stack address both to
+      initialize the watermark passed to the callee, and to start strubbing the
+      stack afterwards.
+ 
+      Ideally, we'd update the watermark so as to cover the used amount of red
+      zone, and strub starting at the caller's other end of the (presumably
+      unused) red zone.  Normally, only leaf functions use the red zone, but at
+      this point we can't tell whether a function is a leaf, nor can we tell how
+      much of the red zone it uses.  Furthermore, some strub contexts may have
+      been inlined so that update and leave are called from the same stack frame,
+      and the strub builtins may all have been inlined, turning a strub function
+      into a leaf.
+ 
+      So cleaning the range from the caller's stack pointer (one end of the red
+      zone) to the (potentially inlined) callee's (other end of the) red zone
+      could scribble over the caller's own red zone.
+ 
+      We avoid this possibility by arranging for callers that are strub contexts
+      to use their own watermark as the strub starting point.  So, if A calls B,
+      and B calls C, B will tell A to strub up to the end of B's red zone, and
+      will strub itself only the part of C's stack frame and red zone that
+      doesn't overlap with B's.  With that, we don't need to know who's leaf and
+      who isn't: inlined calls will shrink their strub window to zero, each
+      remaining call will strub some portion of the stack, and eventually the
+      strub context will return to a caller that isn't a strub context itself,
+      that will therefore use its own stack pointer as the strub starting point.
+      It's not a leaf, because strub contexts can't be inlined into non-strub
+      contexts, so it doesn't use the red zone, and it will therefore correctly
+      strub up the callee's stack frame up to the end of the callee's red zone.
+      Neat!  */
+   if (true /* (flags_from_decl_or_type (current_function_decl) & ECF_LEAF) */)
+     {
+       poly_int64 red_zone_size = RED_ZONE_SIZE;
+ #if STACK_GROWS_DOWNWARD
+       red_zone_size = -red_zone_size;
+ #endif
+       stktop = plus_constant (ptr_mode, stktop, red_zone_size);
+       stktop = force_reg (ptr_mode, stktop);
+     }
+ #endif
+ 
+   tree wmptr = CALL_EXPR_ARG (exp, 0);
+   tree wmtype = TREE_TYPE (TREE_TYPE (wmptr));
+   tree wmtree = fold_build2 (MEM_REF, wmtype, wmptr,
+ 			     build_int_cst (TREE_TYPE (wmptr), 0));
+   rtx wmark = expand_expr (wmtree, NULL_RTX, ptr_mode, EXPAND_MEMORY);
+ 
+   rtx wmarkr = force_reg (ptr_mode, wmark);
+ 
+   rtx_code_label *lab = gen_label_rtx ();
+   do_compare_rtx_and_jump (stktop, wmarkr, STACK_TOPS, STACK_UNSIGNED,
+ 			   ptr_mode, NULL_RTX, lab, NULL,
+ 			   profile_probability::very_likely ());
+   emit_move_insn (wmark, stktop);
+ 
+   /* If this is an inlined strub function, also bump the watermark for the
+      enclosing function.  This avoids a problem with the following scenario: A
+      calls B and B calls C, and both B and C get inlined into A.  B allocates
+      temporary stack space before calling C.  If we don't update A's watermark,
+      we may use an outdated baseline for the post-C strub_leave, erasing B's
+      temporary stack allocation.  We only need this if we're fully expanding
+      strub_leave inline.  */
+   tree xwmptr = (optimize > 2
+ 		 ? strub_watermark_parm (current_function_decl)
+ 		 : wmptr);
+   if (wmptr != xwmptr)
+     {
+       wmptr = xwmptr;
+       wmtype = TREE_TYPE (TREE_TYPE (wmptr));
+       wmtree = fold_build2 (MEM_REF, wmtype, wmptr,
+ 			    build_int_cst (TREE_TYPE (wmptr), 0));
+       wmark = expand_expr (wmtree, NULL_RTX, ptr_mode, EXPAND_MEMORY);
+       wmarkr = force_reg (ptr_mode, wmark);
+ 
+       do_compare_rtx_and_jump (stktop, wmarkr, STACK_TOPS, STACK_UNSIGNED,
+ 			       ptr_mode, NULL_RTX, lab, NULL,
+ 			       profile_probability::very_likely ());
+       emit_move_insn (wmark, stktop);
+     }
+ 
+   emit_label (lab);
+ 
+   return const0_rtx;
+ }
+ 
+ 
+ /* Expand a call to builtin function __builtin_strub_leave.  */
+ 
+ static rtx
+ expand_builtin_strub_leave (tree exp)
+ {
+   if (!validate_arglist (exp, POINTER_TYPE, VOID_TYPE))
+     return NULL_RTX;
+ 
+   if (optimize < 2 || optimize_size || flag_no_inline)
+     return NULL_RTX;
+ 
+   rtx stktop = NULL_RTX;
+ 
+   if (tree wmptr = (optimize
+ 		    ? strub_watermark_parm (current_function_decl)
+ 		    : NULL_TREE))
+     {
+       tree wmtype = TREE_TYPE (TREE_TYPE (wmptr));
+       tree wmtree = fold_build2 (MEM_REF, wmtype, wmptr,
+ 				 build_int_cst (TREE_TYPE (wmptr), 0));
+       rtx wmark = expand_expr (wmtree, NULL_RTX, ptr_mode, EXPAND_MEMORY);
+       stktop = force_reg (ptr_mode, wmark);
+     }
+ 
+   if (!stktop)
+     stktop = expand_builtin_stack_address ();
+ 
+   tree wmptr = CALL_EXPR_ARG (exp, 0);
+   tree wmtype = TREE_TYPE (TREE_TYPE (wmptr));
+   tree wmtree = fold_build2 (MEM_REF, wmtype, wmptr,
+ 			     build_int_cst (TREE_TYPE (wmptr), 0));
+   rtx wmark = expand_expr (wmtree, NULL_RTX, ptr_mode, EXPAND_MEMORY);
+ 
+   rtx wmarkr = force_reg (ptr_mode, wmark);
+ 
+ #if ! STACK_GROWS_DOWNWARD
+   rtx base = stktop;
+   rtx end = wmarkr;
+ #else
+   rtx base = wmarkr;
+   rtx end = stktop;
+ #endif
+ 
+   /* We're going to modify it, so make sure it's not e.g. the stack pointer.  */
+   base = copy_to_reg (base);
+ 
+   rtx_code_label *done = gen_label_rtx ();
+   do_compare_rtx_and_jump (base, end, LT, STACK_UNSIGNED,
+ 			   ptr_mode, NULL_RTX, done, NULL,
+ 			   profile_probability::very_likely ());
+ 
+   if (optimize < 3)
+     expand_call (exp, NULL_RTX, true);
+   else
+     {
+       /* Ok, now we've determined we want to copy the block, so convert the
+ 	 addresses to Pmode, as needed to dereference them to access ptr_mode
+ 	 memory locations, so that we don't have to convert anything within the
+ 	 loop.  */
+       base = memory_address (ptr_mode, base);
+       end = memory_address (ptr_mode, end);
+ 
+       rtx zero = force_operand (const0_rtx, NULL_RTX);
+       int ulen = GET_MODE_SIZE (ptr_mode);
+ 
+       /* ??? It would be nice to use setmem or similar patterns here,
+ 	 but they do not necessarily obey the stack growth direction,
+ 	 which has security implications.  We also have to avoid calls
+ 	 (memset, bzero or any machine-specific ones), which are
+ 	 likely unsafe here (see TARGET_STRUB_MAY_USE_MEMSET).  */
+ #if ! STACK_GROWS_DOWNWARD
+       rtx incr = plus_constant (Pmode, base, ulen);
+       rtx dstm = gen_rtx_MEM (ptr_mode, base);
+ 
+       rtx_code_label *loop = gen_label_rtx ();
+       emit_label (loop);
+       emit_move_insn (dstm, zero);
+       emit_move_insn (base, force_operand (incr, NULL_RTX));
+ #else
+       rtx decr = plus_constant (Pmode, end, -ulen);
+       rtx dstm = gen_rtx_MEM (ptr_mode, end);
+ 
+       rtx_code_label *loop = gen_label_rtx ();
+       emit_label (loop);
+       emit_move_insn (end, force_operand (decr, NULL_RTX));
+       emit_move_insn (dstm, zero);
+ #endif
+       do_compare_rtx_and_jump (base, end, LT, STACK_UNSIGNED,
+ 			       Pmode, NULL_RTX, NULL, loop,
+ 			       profile_probability::very_likely ());
+     }
+ 
+   emit_label (done);
+ 
+   return const0_rtx;
+ }
+ 
  /* Expand EXP, a call to the alloca builtin.  Return NULL_RTX if we
     failed and the caller should emit a normal call.  */
  
*************** expand_builtin_fork_or_exec (tree fn, tr
*** 5901,5907 ****
    tree call;
  
    /* If we are not profiling, just call the function.  */
!   if (!profile_arc_flag)
      return NULL_RTX;
  
    /* Otherwise call the wrapper.  This should be equivalent for the rest of
--- 6329,6335 ----
    tree call;
  
    /* If we are not profiling, just call the function.  */
!   if (!profile_arc_flag && !condition_coverage_flag)
      return NULL_RTX;
  
    /* Otherwise call the wrapper.  This should be equivalent for the rest of
*************** expand_builtin (tree exp, rtx target, rt
*** 7363,7369 ****
        default:
  	break;
        }
!   if (sanitize_flags_p (SANITIZE_ADDRESS) && asan_intercepted_p (fcode))
      return expand_call (exp, target, ignore);
  
    /* When not optimizing, generate calls to library functions for a certain
--- 7791,7798 ----
        default:
  	break;
        }
!   if (sanitize_flags_p (SANITIZE_ADDRESS | SANITIZE_HWADDRESS)
! 		  && asan_intercepted_p (fcode))
      return expand_call (exp, target, ignore);
  
    /* When not optimizing, generate calls to library functions for a certain
*************** expand_builtin (tree exp, rtx target, rt
*** 7379,7385 ****
        && fcode != BUILT_IN_EXECVE
        && fcode != BUILT_IN_CLEAR_CACHE
        && !ALLOCA_FUNCTION_CODE_P (fcode)
!       && fcode != BUILT_IN_FREE)
      return expand_call (exp, target, ignore);
  
    /* The built-in function expanders test for target == const0_rtx
--- 7808,7822 ----
        && fcode != BUILT_IN_EXECVE
        && fcode != BUILT_IN_CLEAR_CACHE
        && !ALLOCA_FUNCTION_CODE_P (fcode)
!       && fcode != BUILT_IN_FREE
!       && (fcode != BUILT_IN_MEMSET
! 	  || !(flag_inline_stringops & ILSOP_MEMSET))
!       && (fcode != BUILT_IN_MEMCPY
! 	  || !(flag_inline_stringops & ILSOP_MEMCPY))
!       && (fcode != BUILT_IN_MEMMOVE
! 	  || !(flag_inline_stringops & ILSOP_MEMMOVE))
!       && (fcode != BUILT_IN_MEMCMP
! 	  || !(flag_inline_stringops & ILSOP_MEMCMP)))
      return expand_call (exp, target, ignore);
  
    /* The built-in function expanders test for target == const0_rtx
*************** expand_builtin (tree exp, rtx target, rt
*** 7607,7612 ****
--- 8044,8070 ----
      case BUILT_IN_RETURN_ADDRESS:
        return expand_builtin_frame_address (fndecl, exp);
  
+     case BUILT_IN_STACK_ADDRESS:
+       return expand_builtin_stack_address ();
+ 
+     case BUILT_IN___STRUB_ENTER:
+       target = expand_builtin_strub_enter (exp);
+       if (target)
+ 	return target;
+       break;
+ 
+     case BUILT_IN___STRUB_UPDATE:
+       target = expand_builtin_strub_update (exp);
+       if (target)
+ 	return target;
+       break;
+ 
+     case BUILT_IN___STRUB_LEAVE:
+       target = expand_builtin_strub_leave (exp);
+       if (target)
+ 	return target;
+       break;
+ 
      /* Returns the address of the area where the structure is returned.
         0 otherwise.  */
      case BUILT_IN_AGGREGATE_INCOMING_ADDRESS:
*************** expand_builtin (tree exp, rtx target, rt
*** 7958,7963 ****
--- 8416,8425 ----
      case BUILT_IN_ADJUST_DESCRIPTOR:
        return expand_builtin_adjust_descriptor (exp);
  
+     case BUILT_IN_GCC_NESTED_PTR_CREATED:
+     case BUILT_IN_GCC_NESTED_PTR_DELETED:
+       break; /* At present, no expansion, just call the function.  */
+ 
      case BUILT_IN_FORK:
      case BUILT_IN_EXECL:
      case BUILT_IN_EXECV:
*************** expand_builtin (tree exp, rtx target, rt
*** 8385,8391 ****
        break;
  
      case BUILT_IN_ATOMIC_TEST_AND_SET:
!       return expand_builtin_atomic_test_and_set (exp, target);
  
      case BUILT_IN_ATOMIC_CLEAR:
        return expand_builtin_atomic_clear (exp);
--- 8847,8856 ----
        break;
  
      case BUILT_IN_ATOMIC_TEST_AND_SET:
!       target = expand_builtin_atomic_test_and_set (exp, target);
!       if (target)
! 	return target;
!       break;
  
      case BUILT_IN_ATOMIC_CLEAR:
        return expand_builtin_atomic_clear (exp);
*************** fold_builtin_expect (location_t loc, tre
*** 8645,8652 ****
  
    if (TREE_CODE (inner) == CALL_EXPR
        && (fndecl = get_callee_fndecl (inner))
!       && (fndecl_built_in_p (fndecl, BUILT_IN_EXPECT)
! 	  || fndecl_built_in_p (fndecl, BUILT_IN_EXPECT_WITH_PROBABILITY)))
      return arg0;
  
    inner = inner_arg0;
--- 9110,9117 ----
  
    if (TREE_CODE (inner) == CALL_EXPR
        && (fndecl = get_callee_fndecl (inner))
!       && fndecl_built_in_p (fndecl, BUILT_IN_EXPECT,
! 			    BUILT_IN_EXPECT_WITH_PROBABILITY))
      return arg0;
  
    inner = inner_arg0;
*************** fold_builtin_isascii (location_t loc, tr
*** 8861,8867 ****
        /* Transform isascii(c) -> ((c & ~0x7f) == 0).  */
        arg = fold_build2 (BIT_AND_EXPR, integer_type_node, arg,
  			 build_int_cst (integer_type_node,
! 					~ (unsigned HOST_WIDE_INT) 0x7f));
        return fold_build2_loc (loc, EQ_EXPR, integer_type_node,
  			      arg, integer_zero_node);
      }
--- 9326,9332 ----
        /* Transform isascii(c) -> ((c & ~0x7f) == 0).  */
        arg = fold_build2 (BIT_AND_EXPR, integer_type_node, arg,
  			 build_int_cst (integer_type_node,
! 					~ HOST_WIDE_INT_UC (0x7f)));
        return fold_build2_loc (loc, EQ_EXPR, integer_type_node,
  			      arg, integer_zero_node);
      }
*************** static tree
*** 8936,8942 ****
  fold_builtin_carg (location_t loc, tree arg, tree type)
  {
    if (validate_arg (arg, COMPLEX_TYPE)
!       && TREE_CODE (TREE_TYPE (TREE_TYPE (arg))) == REAL_TYPE)
      {
        tree atan2_fn = mathfn_built_in (type, BUILT_IN_ATAN2);
  
--- 9401,9407 ----
  fold_builtin_carg (location_t loc, tree arg, tree type)
  {
    if (validate_arg (arg, COMPLEX_TYPE)
!       && SCALAR_FLOAT_TYPE_P (TREE_TYPE (TREE_TYPE (arg))))
      {
        tree atan2_fn = mathfn_built_in (type, BUILT_IN_ATAN2);
  
*************** fold_builtin_unordered_cmp (location_t l
*** 9421,9429 ****
      /* Choose the wider of two real types.  */
      cmp_type = TYPE_PRECISION (type0) >= TYPE_PRECISION (type1)
        ? type0 : type1;
!   else if (code0 == REAL_TYPE && code1 == INTEGER_TYPE)
      cmp_type = type0;
!   else if (code0 == INTEGER_TYPE && code1 == REAL_TYPE)
      cmp_type = type1;
  
    arg0 = fold_convert_loc (loc, cmp_type, arg0);
--- 9886,9896 ----
      /* Choose the wider of two real types.  */
      cmp_type = TYPE_PRECISION (type0) >= TYPE_PRECISION (type1)
        ? type0 : type1;
!   else if (code0 == REAL_TYPE
! 	   && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
      cmp_type = type0;
!   else if ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
! 	   && code1 == REAL_TYPE)
      cmp_type = type1;
  
    arg0 = fold_convert_loc (loc, cmp_type, arg0);
*************** fold_builtin_unordered_cmp (location_t l
*** 9444,9449 ****
--- 9911,9952 ----
  		      fold_build2_loc (loc, code, type, arg0, arg1));
  }
  
+ /* Fold a call to __builtin_iseqsig().  ARG0 and ARG1 are the arguments.
+    After choosing the wider floating-point type for the comparison,
+    the code is folded to:
+      SAVE_EXPR<ARG0> >= SAVE_EXPR<ARG1> && SAVE_EXPR<ARG0> <= SAVE_EXPR<ARG1>  */
+ 
+ static tree
+ fold_builtin_iseqsig (location_t loc, tree arg0, tree arg1)
+ {
+   tree type0, type1;
+   enum tree_code code0, code1;
+   tree cmp1, cmp2, cmp_type = NULL_TREE;
+ 
+   type0 = TREE_TYPE (arg0);
+   type1 = TREE_TYPE (arg1);
+ 
+   code0 = TREE_CODE (type0);
+   code1 = TREE_CODE (type1);
+ 
+   if (code0 == REAL_TYPE && code1 == REAL_TYPE)
+     /* Choose the wider of two real types.  */
+     cmp_type = TYPE_PRECISION (type0) >= TYPE_PRECISION (type1)
+       ? type0 : type1;
+   else if (code0 == REAL_TYPE && code1 == INTEGER_TYPE)
+     cmp_type = type0;
+   else if (code0 == INTEGER_TYPE && code1 == REAL_TYPE)
+     cmp_type = type1;
+ 
+   arg0 = builtin_save_expr (fold_convert_loc (loc, cmp_type, arg0));
+   arg1 = builtin_save_expr (fold_convert_loc (loc, cmp_type, arg1));
+ 
+   cmp1 = fold_build2_loc (loc, GE_EXPR, integer_type_node, arg0, arg1);
+   cmp2 = fold_build2_loc (loc, LE_EXPR, integer_type_node, arg0, arg1);
+ 
+   return fold_build2_loc (loc, TRUTH_AND_EXPR, integer_type_node, cmp1, cmp2);
+ }
+ 
  /* Fold __builtin_{,s,u}{add,sub,mul}{,l,ll}_overflow, either into normal
     arithmetics if it can never overflow, or into internal functions that
     return both result of arithmetics and overflowed boolean flag in
*************** fold_builtin_arith_overflow (location_t
*** 9554,9559 ****
--- 10057,10374 ----
    return build2_loc (loc, COMPOUND_EXPR, boolean_type_node, store, ovfres);
  }
  
+ /* Fold __builtin_{clz,ctz,clrsb,ffs,parity,popcount}g into corresponding
+    internal function.  */
+ 
+ static tree
+ fold_builtin_bit_query (location_t loc, enum built_in_function fcode,
+ 			tree arg0, tree arg1)
+ {
+   enum internal_fn ifn;
+   enum built_in_function fcodei, fcodel, fcodell;
+   tree arg0_type = TREE_TYPE (arg0);
+   tree cast_type = NULL_TREE;
+   int addend = 0;
+ 
+   switch (fcode)
+     {
+     case BUILT_IN_CLZG:
+       if (arg1 && TREE_CODE (arg1) != INTEGER_CST)
+ 	return NULL_TREE;
+       ifn = IFN_CLZ;
+       fcodei = BUILT_IN_CLZ;
+       fcodel = BUILT_IN_CLZL;
+       fcodell = BUILT_IN_CLZLL;
+       break;
+     case BUILT_IN_CTZG:
+       if (arg1 && TREE_CODE (arg1) != INTEGER_CST)
+ 	return NULL_TREE;
+       ifn = IFN_CTZ;
+       fcodei = BUILT_IN_CTZ;
+       fcodel = BUILT_IN_CTZL;
+       fcodell = BUILT_IN_CTZLL;
+       break;
+     case BUILT_IN_CLRSBG:
+       ifn = IFN_CLRSB;
+       fcodei = BUILT_IN_CLRSB;
+       fcodel = BUILT_IN_CLRSBL;
+       fcodell = BUILT_IN_CLRSBLL;
+       break;
+     case BUILT_IN_FFSG:
+       ifn = IFN_FFS;
+       fcodei = BUILT_IN_FFS;
+       fcodel = BUILT_IN_FFSL;
+       fcodell = BUILT_IN_FFSLL;
+       break;
+     case BUILT_IN_PARITYG:
+       ifn = IFN_PARITY;
+       fcodei = BUILT_IN_PARITY;
+       fcodel = BUILT_IN_PARITYL;
+       fcodell = BUILT_IN_PARITYLL;
+       break;
+     case BUILT_IN_POPCOUNTG:
+       ifn = IFN_POPCOUNT;
+       fcodei = BUILT_IN_POPCOUNT;
+       fcodel = BUILT_IN_POPCOUNTL;
+       fcodell = BUILT_IN_POPCOUNTLL;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   if (TYPE_PRECISION (arg0_type)
+       <= TYPE_PRECISION (long_long_unsigned_type_node))
+     {
+       if (TYPE_PRECISION (arg0_type) <= TYPE_PRECISION (unsigned_type_node))
+ 
+ 	cast_type = (TYPE_UNSIGNED (arg0_type)
+ 		     ? unsigned_type_node : integer_type_node);
+       else if (TYPE_PRECISION (arg0_type)
+ 	       <= TYPE_PRECISION (long_unsigned_type_node))
+ 	{
+ 	  cast_type = (TYPE_UNSIGNED (arg0_type)
+ 		       ? long_unsigned_type_node : long_integer_type_node);
+ 	  fcodei = fcodel;
+ 	}
+       else
+ 	{
+ 	  cast_type = (TYPE_UNSIGNED (arg0_type)
+ 		       ? long_long_unsigned_type_node
+ 		       : long_long_integer_type_node);
+ 	  fcodei = fcodell;
+ 	}
+     }
+   else if (TYPE_PRECISION (arg0_type) <= MAX_FIXED_MODE_SIZE)
+     {
+       cast_type
+ 	= build_nonstandard_integer_type (MAX_FIXED_MODE_SIZE,
+ 					  TYPE_UNSIGNED (arg0_type));
+       gcc_assert (TYPE_PRECISION (cast_type)
+ 		  == 2 * TYPE_PRECISION (long_long_unsigned_type_node));
+       fcodei = END_BUILTINS;
+     }
+   else
+     fcodei = END_BUILTINS;
+   if (cast_type)
+     {
+       switch (fcode)
+ 	{
+ 	case BUILT_IN_CLZG:
+ 	case BUILT_IN_CLRSBG:
+ 	  addend = TYPE_PRECISION (arg0_type) - TYPE_PRECISION (cast_type);
+ 	  break;
+ 	default:
+ 	  break;
+ 	}
+       arg0 = fold_convert (cast_type, arg0);
+       arg0_type = cast_type;
+     }
+ 
+   if (arg1)
+     arg1 = fold_convert (integer_type_node, arg1);
+ 
+   tree arg2 = arg1;
+   if (fcode == BUILT_IN_CLZG && addend)
+     {
+       if (arg1)
+ 	arg0 = save_expr (arg0);
+       arg2 = NULL_TREE;
+     }
+   tree call = NULL_TREE, tem;
+   if (TYPE_PRECISION (arg0_type) == MAX_FIXED_MODE_SIZE
+       && (TYPE_PRECISION (arg0_type)
+ 	  == 2 * TYPE_PRECISION (long_long_unsigned_type_node)))
+     {
+       /* __int128 expansions using up to 2 long long builtins.  */
+       arg0 = save_expr (arg0);
+       tree type = (TYPE_UNSIGNED (arg0_type)
+ 		   ? long_long_unsigned_type_node
+ 		   : long_long_integer_type_node);
+       tree hi = fold_build2 (RSHIFT_EXPR, arg0_type, arg0,
+ 			     build_int_cst (integer_type_node,
+ 					    MAX_FIXED_MODE_SIZE / 2));
+       hi = fold_convert (type, hi);
+       tree lo = fold_convert (type, arg0);
+       switch (fcode)
+ 	{
+ 	case BUILT_IN_CLZG:
+ 	  call = fold_builtin_bit_query (loc, fcode, lo, NULL_TREE);
+ 	  call = fold_build2 (PLUS_EXPR, integer_type_node, call,
+ 			      build_int_cst (integer_type_node,
+ 					     MAX_FIXED_MODE_SIZE / 2));
+ 	  if (arg2)
+ 	    call = fold_build3 (COND_EXPR, integer_type_node,
+ 				fold_build2 (NE_EXPR, boolean_type_node,
+ 					     lo, build_zero_cst (type)),
+ 				call, arg2);
+ 	  call = fold_build3 (COND_EXPR, integer_type_node,
+ 			      fold_build2 (NE_EXPR, boolean_type_node,
+ 					   hi, build_zero_cst (type)),
+ 			      fold_builtin_bit_query (loc, fcode, hi,
+ 						      NULL_TREE),
+ 			      call);
+ 	  break;
+ 	case BUILT_IN_CTZG:
+ 	  call = fold_builtin_bit_query (loc, fcode, hi, NULL_TREE);
+ 	  call = fold_build2 (PLUS_EXPR, integer_type_node, call,
+ 			      build_int_cst (integer_type_node,
+ 					     MAX_FIXED_MODE_SIZE / 2));
+ 	  if (arg2)
+ 	    call = fold_build3 (COND_EXPR, integer_type_node,
+ 				fold_build2 (NE_EXPR, boolean_type_node,
+ 					     hi, build_zero_cst (type)),
+ 				call, arg2);
+ 	  call = fold_build3 (COND_EXPR, integer_type_node,
+ 			      fold_build2 (NE_EXPR, boolean_type_node,
+ 					   lo, build_zero_cst (type)),
+ 			      fold_builtin_bit_query (loc, fcode, lo,
+ 						      NULL_TREE),
+ 			      call);
+ 	  break;
+ 	case BUILT_IN_CLRSBG:
+ 	  tem = fold_builtin_bit_query (loc, fcode, lo, NULL_TREE);
+ 	  tem = fold_build2 (PLUS_EXPR, integer_type_node, tem,
+ 			     build_int_cst (integer_type_node,
+ 					    MAX_FIXED_MODE_SIZE / 2));
+ 	  tem = fold_build3 (COND_EXPR, integer_type_node,
+ 			     fold_build2 (LT_EXPR, boolean_type_node,
+ 					  fold_build2 (BIT_XOR_EXPR, type,
+ 						       lo, hi),
+ 					  build_zero_cst (type)),
+ 			     build_int_cst (integer_type_node,
+ 					    MAX_FIXED_MODE_SIZE / 2 - 1),
+ 			     tem);
+ 	  call = fold_builtin_bit_query (loc, fcode, hi, NULL_TREE);
+ 	  call = save_expr (call);
+ 	  call = fold_build3 (COND_EXPR, integer_type_node,
+ 			      fold_build2 (NE_EXPR, boolean_type_node,
+ 					   call,
+ 					   build_int_cst (integer_type_node,
+ 							  MAX_FIXED_MODE_SIZE
+ 							  / 2 - 1)),
+ 			      call, tem);
+ 	  break;
+ 	case BUILT_IN_FFSG:
+ 	  call = fold_builtin_bit_query (loc, fcode, hi, NULL_TREE);
+ 	  call = fold_build2 (PLUS_EXPR, integer_type_node, call,
+ 			      build_int_cst (integer_type_node,
+ 					     MAX_FIXED_MODE_SIZE / 2));
+ 	  call = fold_build3 (COND_EXPR, integer_type_node,
+ 			      fold_build2 (NE_EXPR, boolean_type_node,
+ 					   hi, build_zero_cst (type)),
+ 			      call, integer_zero_node);
+ 	  call = fold_build3 (COND_EXPR, integer_type_node,
+ 			      fold_build2 (NE_EXPR, boolean_type_node,
+ 					   lo, build_zero_cst (type)),
+ 			      fold_builtin_bit_query (loc, fcode, lo,
+ 						      NULL_TREE),
+ 			      call);
+ 	  break;
+ 	case BUILT_IN_PARITYG:
+ 	  call = fold_builtin_bit_query (loc, fcode,
+ 					 fold_build2 (BIT_XOR_EXPR, type,
+ 						      lo, hi), NULL_TREE);
+ 	  break;
+ 	case BUILT_IN_POPCOUNTG:
+ 	  call = fold_build2 (PLUS_EXPR, integer_type_node,
+ 			      fold_builtin_bit_query (loc, fcode, hi,
+ 						      NULL_TREE),
+ 			      fold_builtin_bit_query (loc, fcode, lo,
+ 						      NULL_TREE));
+ 	  break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+     }
+   else
+     {
+       /* Only keep second argument to IFN_CLZ/IFN_CTZ if it is the
+ 	 value defined at zero during GIMPLE, or for large/huge _BitInt
+ 	 (which are then lowered during bitint lowering).  */
+       if (arg2 && TREE_CODE (TREE_TYPE (arg0)) != BITINT_TYPE)
+ 	{
+ 	  int val;
+ 	  if (fcode == BUILT_IN_CLZG)
+ 	    {
+ 	      if (CLZ_DEFINED_VALUE_AT_ZERO (SCALAR_TYPE_MODE (arg0_type),
+ 					     val) != 2
+ 		  || wi::to_widest (arg2) != val)
+ 		arg2 = NULL_TREE;
+ 	    }
+ 	  else if (CTZ_DEFINED_VALUE_AT_ZERO (SCALAR_TYPE_MODE (arg0_type),
+ 					      val) != 2
+ 		   || wi::to_widest (arg2) != val)
+ 	    arg2 = NULL_TREE;
+ 	  if (!direct_internal_fn_supported_p (ifn, arg0_type,
+ 					       OPTIMIZE_FOR_BOTH))
+ 	    arg2 = NULL_TREE;
+ 	  if (arg2 == NULL_TREE)
+ 	    arg0 = save_expr (arg0);
+ 	}
+       if (fcodei == END_BUILTINS || arg2)
+ 	call = build_call_expr_internal_loc (loc, ifn, integer_type_node,
+ 					     arg2 ? 2 : 1, arg0, arg2);
+       else
+ 	call = build_call_expr_loc (loc, builtin_decl_explicit (fcodei), 1,
+ 				    arg0);
+     }
+   if (addend)
+     call = fold_build2 (PLUS_EXPR, integer_type_node, call,
+ 			build_int_cst (integer_type_node, addend));
+   if (arg1 && arg2 == NULL_TREE)
+     call = fold_build3 (COND_EXPR, integer_type_node,
+ 			fold_build2 (NE_EXPR, boolean_type_node,
+ 				     arg0, build_zero_cst (arg0_type)),
+ 			call, arg1);
+ 
+   return call;
+ }
+ 
+ /* Fold __builtin_{add,sub}c{,l,ll} into pair of internal functions
+    that return both result of arithmetics and overflowed boolean
+    flag in a complex integer result.  */
+ 
+ static tree
+ fold_builtin_addc_subc (location_t loc, enum built_in_function fcode,
+ 			tree *args)
+ {
+   enum internal_fn ifn;
+ 
+   switch (fcode)
+     {
+     case BUILT_IN_ADDC:
+     case BUILT_IN_ADDCL:
+     case BUILT_IN_ADDCLL:
+       ifn = IFN_ADD_OVERFLOW;
+       break;
+     case BUILT_IN_SUBC:
+     case BUILT_IN_SUBCL:
+     case BUILT_IN_SUBCLL:
+       ifn = IFN_SUB_OVERFLOW;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   tree type = TREE_TYPE (args[0]);
+   tree ctype = build_complex_type (type);
+   tree call = build_call_expr_internal_loc (loc, ifn, ctype, 2,
+ 					    args[0], args[1]);
+   tree tgt = save_expr (call);
+   tree intres = build1_loc (loc, REALPART_EXPR, type, tgt);
+   tree ovfres = build1_loc (loc, IMAGPART_EXPR, type, tgt);
+   call = build_call_expr_internal_loc (loc, ifn, ctype, 2,
+ 				       intres, args[2]);
+   tgt = save_expr (call);
+   intres = build1_loc (loc, REALPART_EXPR, type, tgt);
+   tree ovfres2 = build1_loc (loc, IMAGPART_EXPR, type, tgt);
+   ovfres = build2_loc (loc, BIT_IOR_EXPR, type, ovfres, ovfres2);
+   tree mem_arg3 = build_fold_indirect_ref_loc (loc, args[3]);
+   tree store
+     = fold_build2_loc (loc, MODIFY_EXPR, void_type_node, mem_arg3, ovfres);
+   return build2_loc (loc, COMPOUND_EXPR, type, store, intres);
+ }
+ 
  /* Fold a call to __builtin_FILE to a constant string.  */
  
  static inline tree
*************** fold_builtin_1 (location_t loc, tree exp
*** 9646,9652 ****
    tree type = TREE_TYPE (TREE_TYPE (fndecl));
    enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl);
  
!   if (TREE_CODE (arg0) == ERROR_MARK)
      return NULL_TREE;
  
    if (tree ret = fold_const_call (as_combined_fn (fcode), type, arg0))
--- 10461,10467 ----
    tree type = TREE_TYPE (TREE_TYPE (fndecl));
    enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl);
  
!   if (error_operand_p (arg0))
      return NULL_TREE;
  
    if (tree ret = fold_const_call (as_combined_fn (fcode), type, arg0))
*************** fold_builtin_1 (location_t loc, tree exp
*** 9760,9765 ****
--- 10575,10588 ----
  	return build_empty_stmt (loc);
        break;
  
+     case BUILT_IN_CLZG:
+     case BUILT_IN_CTZG:
+     case BUILT_IN_CLRSBG:
+     case BUILT_IN_FFSG:
+     case BUILT_IN_PARITYG:
+     case BUILT_IN_POPCOUNTG:
+       return fold_builtin_bit_query (loc, fcode, arg0, NULL_TREE);
+ 
      default:
        break;
      }
*************** fold_builtin_2 (location_t loc, tree exp
*** 9778,9785 ****
    tree type = TREE_TYPE (TREE_TYPE (fndecl));
    enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl);
  
!   if (TREE_CODE (arg0) == ERROR_MARK
!       || TREE_CODE (arg1) == ERROR_MARK)
      return NULL_TREE;
  
    if (tree ret = fold_const_call (as_combined_fn (fcode), type, arg0, arg1))
--- 10601,10608 ----
    tree type = TREE_TYPE (TREE_TYPE (fndecl));
    enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl);
  
!   if (error_operand_p (arg0)
!       || error_operand_p (arg1))
      return NULL_TREE;
  
    if (tree ret = fold_const_call (as_combined_fn (fcode), type, arg0, arg1))
*************** fold_builtin_2 (location_t loc, tree exp
*** 9832,9837 ****
--- 10655,10663 ----
  					 arg0, arg1, UNORDERED_EXPR,
  					 NOP_EXPR);
  
+     case BUILT_IN_ISEQSIG:
+       return fold_builtin_iseqsig (loc, arg0, arg1);
+ 
        /* We do the folding for va_start in the expander.  */
      case BUILT_IN_VA_START:
        break;
*************** fold_builtin_2 (location_t loc, tree exp
*** 9846,9851 ****
--- 10672,10681 ----
      case BUILT_IN_ATOMIC_IS_LOCK_FREE:
        return fold_builtin_atomic_is_lock_free (arg0, arg1);
  
+     case BUILT_IN_CLZG:
+     case BUILT_IN_CTZG:
+       return fold_builtin_bit_query (loc, fcode, arg0, arg1);
+ 
      default:
        break;
      }
*************** fold_builtin_3 (location_t loc, tree fnd
*** 9863,9871 ****
    tree type = TREE_TYPE (TREE_TYPE (fndecl));
    enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl);
  
!   if (TREE_CODE (arg0) == ERROR_MARK
!       || TREE_CODE (arg1) == ERROR_MARK
!       || TREE_CODE (arg2) == ERROR_MARK)
      return NULL_TREE;
  
    if (tree ret = fold_const_call (as_combined_fn (fcode), type,
--- 10693,10701 ----
    tree type = TREE_TYPE (TREE_TYPE (fndecl));
    enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl);
  
!   if (error_operand_p (arg0)
!       || error_operand_p (arg1)
!       || error_operand_p (arg2))
      return NULL_TREE;
  
    if (tree ret = fold_const_call (as_combined_fn (fcode), type,
*************** fold_builtin_next_arg (tree exp, bool va
*** 10444,10450 ****
  	 We must also strip off INDIRECT_EXPR for C++ reference
  	 parameters.  */
        while (CONVERT_EXPR_P (arg)
! 	     || TREE_CODE (arg) == INDIRECT_REF)
  	arg = TREE_OPERAND (arg, 0);
        if (arg != last_parm)
  	{
--- 11274,11280 ----
  	 We must also strip off INDIRECT_EXPR for C++ reference
  	 parameters.  */
        while (CONVERT_EXPR_P (arg)
! 	     || INDIRECT_REF_P (arg))
  	arg = TREE_OPERAND (arg, 0);
        if (arg != last_parm)
  	{
*************** fold_builtin_varargs (location_t loc, tr
*** 10842,10847 ****
--- 11672,11685 ----
        ret = fold_builtin_fpclassify (loc, args, nargs);
        break;
  
+     case BUILT_IN_ADDC:
+     case BUILT_IN_ADDCL:
+     case BUILT_IN_ADDCLL:
+     case BUILT_IN_SUBC:
+     case BUILT_IN_SUBCL:
+     case BUILT_IN_SUBCLL:
+       return fold_builtin_addc_subc (loc, fcode, args);
+ 
      default:
        break;
      }
*************** do_mpfr_ckconv (mpfr_srcptr m, tree type
*** 10910,10916 ****
        real_from_mpfr (&rr, m, type, MPFR_RNDN);
        /* Proceed iff GCC's REAL_VALUE_TYPE can hold the MPFR value,
  	 check for overflow/underflow.  If the REAL_VALUE_TYPE is zero
! 	 but the mpft_t is not, then we underflowed in the
  	 conversion.  */
        if (real_isfinite (&rr)
  	  && (rr.cl == rvc_zero) == (mpfr_zero_p (m) != 0))
--- 11748,11754 ----
        real_from_mpfr (&rr, m, type, MPFR_RNDN);
        /* Proceed iff GCC's REAL_VALUE_TYPE can hold the MPFR value,
  	 check for overflow/underflow.  If the REAL_VALUE_TYPE is zero
! 	 but the mpfr_t is not, then we underflowed in the
  	 conversion.  */
        if (real_isfinite (&rr)
  	  && (rr.cl == rvc_zero) == (mpfr_zero_p (m) != 0))
*************** do_mpc_ckconv (mpc_srcptr m, tree type,
*** 10951,10957 ****
        real_from_mpfr (&im, mpc_imagref (m), TREE_TYPE (type), MPFR_RNDN);
        /* Proceed iff GCC's REAL_VALUE_TYPE can hold the MPFR values,
  	 check for overflow/underflow.  If the REAL_VALUE_TYPE is zero
! 	 but the mpft_t is not, then we underflowed in the
  	 conversion.  */
        if (force_convert
  	  || (real_isfinite (&re) && real_isfinite (&im)
--- 11789,11795 ----
        real_from_mpfr (&im, mpc_imagref (m), TREE_TYPE (type), MPFR_RNDN);
        /* Proceed iff GCC's REAL_VALUE_TYPE can hold the MPFR values,
  	 check for overflow/underflow.  If the REAL_VALUE_TYPE is zero
! 	 but the mpfr_t is not, then we underflowed in the
  	 conversion.  */
        if (force_convert
  	  || (real_isfinite (&re) && real_isfinite (&im)
*************** do_mpfr_lgamma_r (tree arg, tree arg_sg,
*** 11084,11098 ****
  	  const int prec = fmt->p;
  	  const mpfr_rnd_t rnd = fmt->round_towards_zero? MPFR_RNDZ : MPFR_RNDN;
  	  int inexact, sg;
- 	  mpfr_t m;
  	  tree result_lg;
  
! 	  mpfr_init2 (m, prec);
  	  mpfr_from_real (m, ra, MPFR_RNDN);
  	  mpfr_clear_flags ();
  	  inexact = mpfr_lgamma (m, &sg, m, rnd);
  	  result_lg = do_mpfr_ckconv (m, type, inexact);
- 	  mpfr_clear (m);
  	  if (result_lg)
  	    {
  	      tree result_sg;
--- 11922,11934 ----
  	  const int prec = fmt->p;
  	  const mpfr_rnd_t rnd = fmt->round_towards_zero? MPFR_RNDZ : MPFR_RNDN;
  	  int inexact, sg;
  	  tree result_lg;
  
! 	  auto_mpfr m (prec);
  	  mpfr_from_real (m, ra, MPFR_RNDN);
  	  mpfr_clear_flags ();
  	  inexact = mpfr_lgamma (m, &sg, m, rnd);
  	  result_lg = do_mpfr_ckconv (m, type, inexact);
  	  if (result_lg)
  	    {
  	      tree result_sg;
*************** do_mpc_arg2 (tree arg0, tree arg1, tree
*** 11134,11142 ****
    /* To proceed, MPFR must exactly represent the target floating point
       format, which only happens when the target base equals two.  */
    if (TREE_CODE (arg0) == COMPLEX_CST && !TREE_OVERFLOW (arg0)
!       && TREE_CODE (TREE_TYPE (TREE_TYPE (arg0))) == REAL_TYPE
        && TREE_CODE (arg1) == COMPLEX_CST && !TREE_OVERFLOW (arg1)
!       && TREE_CODE (TREE_TYPE (TREE_TYPE (arg1))) == REAL_TYPE
        && REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (TREE_TYPE (arg0))))->b == 2)
      {
        const REAL_VALUE_TYPE *const re0 = TREE_REAL_CST_PTR (TREE_REALPART (arg0));
--- 11970,11978 ----
    /* To proceed, MPFR must exactly represent the target floating point
       format, which only happens when the target base equals two.  */
    if (TREE_CODE (arg0) == COMPLEX_CST && !TREE_OVERFLOW (arg0)
!       && SCALAR_FLOAT_TYPE_P (TREE_TYPE (TREE_TYPE (arg0)))
        && TREE_CODE (arg1) == COMPLEX_CST && !TREE_OVERFLOW (arg1)
!       && SCALAR_FLOAT_TYPE_P (TREE_TYPE (TREE_TYPE (arg1)))
        && REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (TREE_TYPE (arg0))))->b == 2)
      {
        const REAL_VALUE_TYPE *const re0 = TREE_REAL_CST_PTR (TREE_REALPART (arg0));
*************** is_inexpensive_builtin (tree decl)
*** 11344,11349 ****
--- 12180,12186 ----
        case BUILT_IN_ISLESSEQUAL:
        case BUILT_IN_ISLESSGREATER:
        case BUILT_IN_ISUNORDERED:
+       case BUILT_IN_ISEQSIG:
        case BUILT_IN_VA_ARG_PACK:
        case BUILT_IN_VA_ARG_PACK_LEN:
        case BUILT_IN_VA_COPY:
*************** builtin_fnspec (tree callee)
*** 11665,11670 ****
--- 12502,12508 ----
  	return ".cO ";
        /* Realloc serves both as allocation point and deallocation point.  */
        case BUILT_IN_REALLOC:
+       case BUILT_IN_GOMP_REALLOC:
  	return ".Cw ";
        case BUILT_IN_GAMMA_R:
        case BUILT_IN_GAMMAF_R:
*************** builtin_fnspec (tree callee)
*** 11719,11724 ****
--- 12557,12564 ----
        case BUILT_IN_RETURN_ADDRESS:
  	return ".c";
        case BUILT_IN_ASSUME_ALIGNED:
+       case BUILT_IN_EXPECT:
+       case BUILT_IN_EXPECT_WITH_PROBABILITY:
  	return "1cX ";
        /* But posix_memalign stores a pointer into the memory pointed to
  	 by its first argument.  */
diff -Nrcpad gcc-13.2.0/gcc/builtins.def gcc-14.1.0/gcc/builtins.def
*** gcc-13.2.0/gcc/builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* This file contains the definitions and documentation for the
     builtins used in the GNU compiler.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,6 ----
  /* This file contains the definitions and documentation for the
     builtins used in the GNU compiler.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 157,168 ****
  	       targetm.libc_has_function (function_c11_misc, NULL_TREE), true)
  
  /* Like DEF_LIB_BUILTIN, except that the function is only a part of
!    the standard in C2x or above.  */
! #undef DEF_C2X_BUILTIN
! #define DEF_C2X_BUILTIN(ENUM, NAME, TYPE, ATTRS)	\
    DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,	\
! 	       true, true, !flag_isoc2x, ATTRS, \
! 	       targetm.libc_has_function (function_c2x_misc, NULL_TREE), true)
  
  /* Like DEF_C99_BUILTIN, but for complex math functions.  */
  #undef DEF_C99_COMPL_BUILTIN
--- 157,168 ----
  	       targetm.libc_has_function (function_c11_misc, NULL_TREE), true)
  
  /* Like DEF_LIB_BUILTIN, except that the function is only a part of
!    the standard in C23 or above.  */
! #undef DEF_C23_BUILTIN
! #define DEF_C23_BUILTIN(ENUM, NAME, TYPE, ATTRS)	\
    DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,	\
! 	       true, true, !flag_isoc23, ATTRS, \
! 	       targetm.libc_has_function (function_c23_misc, NULL_TREE), true)
  
  /* Like DEF_C99_BUILTIN, but for complex math functions.  */
  #undef DEF_C99_COMPL_BUILTIN
*************** DEF_C99_BUILTIN        (BUILT_IN_ERFF, "
*** 359,367 ****
  DEF_C99_BUILTIN        (BUILT_IN_ERFL, "erfl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING)
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ERF, "erf", COSH_TYPE, ATTR_MATHFN_FPROUNDING)
  DEF_LIB_BUILTIN        (BUILT_IN_EXP, "exp", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
! DEF_C2X_BUILTIN        (BUILT_IN_EXP10, "exp10", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
! DEF_C2X_BUILTIN        (BUILT_IN_EXP10F, "exp10f", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
! DEF_C2X_BUILTIN        (BUILT_IN_EXP10L, "exp10l", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_EXP2, "exp2", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_EXP2F, "exp2f", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_EXP2L, "exp2l", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
--- 359,367 ----
  DEF_C99_BUILTIN        (BUILT_IN_ERFL, "erfl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING)
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ERF, "erf", COSH_TYPE, ATTR_MATHFN_FPROUNDING)
  DEF_LIB_BUILTIN        (BUILT_IN_EXP, "exp", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
! DEF_C23_BUILTIN        (BUILT_IN_EXP10, "exp10", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
! DEF_C23_BUILTIN        (BUILT_IN_EXP10F, "exp10f", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
! DEF_C23_BUILTIN        (BUILT_IN_EXP10L, "exp10l", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_EXP2, "exp2", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_EXP2F, "exp2f", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_EXP2L, "exp2l", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
*************** DEF_C99_C90RES_BUILTIN (BUILT_IN_FABSL,
*** 380,388 ****
  #define FABS_TYPE(F) BT_FN_##F##_##F
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FABS, "fabs", FABS_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST)
  #undef FABS_TYPE
! DEF_C2X_BUILTIN        (BUILT_IN_FABSD32, "fabsd32", BT_FN_DFLOAT32_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_C2X_BUILTIN        (BUILT_IN_FABSD64, "fabsd64", BT_FN_DFLOAT64_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_C2X_BUILTIN        (BUILT_IN_FABSD128, "fabsd128", BT_FN_DFLOAT128_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_FDIM, "fdim", BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_FDIMF, "fdimf", BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_FDIML, "fdiml", BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
--- 380,388 ----
  #define FABS_TYPE(F) BT_FN_##F##_##F
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FABS, "fabs", FABS_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST)
  #undef FABS_TYPE
! DEF_C23_BUILTIN        (BUILT_IN_FABSD32, "fabsd32", BT_FN_DFLOAT32_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_C23_BUILTIN        (BUILT_IN_FABSD64, "fabsd64", BT_FN_DFLOAT64_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_C23_BUILTIN        (BUILT_IN_FABSD128, "fabsd128", BT_FN_DFLOAT128_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_FDIM, "fdim", BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_FDIMF, "fdimf", BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
  DEF_C99_BUILTIN        (BUILT_IN_FDIML, "fdiml", BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
*************** DEF_C99_BUILTIN        (BUILT_IN_NANF, "
*** 568,576 ****
  DEF_C99_BUILTIN        (BUILT_IN_NANL, "nanl", BT_FN_LONGDOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  #define NAN_TYPE(F) BT_FN_##F##_CONST_STRING
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_NAN, "nan", NAN_TYPE, ATTR_CONST_NOTHROW_NONNULL)
! DEF_C2X_BUILTIN        (BUILT_IN_NAND32, "nand32", BT_FN_DFLOAT32_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
! DEF_C2X_BUILTIN        (BUILT_IN_NAND64, "nand64", BT_FN_DFLOAT64_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
! DEF_C2X_BUILTIN        (BUILT_IN_NAND128, "nand128", BT_FN_DFLOAT128_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANS, "nans", BT_FN_DOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANSF, "nansf", BT_FN_FLOAT_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANSL, "nansl", BT_FN_LONGDOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
--- 568,576 ----
  DEF_C99_BUILTIN        (BUILT_IN_NANL, "nanl", BT_FN_LONGDOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  #define NAN_TYPE(F) BT_FN_##F##_CONST_STRING
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_NAN, "nan", NAN_TYPE, ATTR_CONST_NOTHROW_NONNULL)
! DEF_C23_BUILTIN        (BUILT_IN_NAND32, "nand32", BT_FN_DFLOAT32_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
! DEF_C23_BUILTIN        (BUILT_IN_NAND64, "nand64", BT_FN_DFLOAT64_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
! DEF_C23_BUILTIN        (BUILT_IN_NAND128, "nand128", BT_FN_DFLOAT128_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANS, "nans", BT_FN_DOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANSF, "nansf", BT_FN_FLOAT_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
  DEF_GCC_BUILTIN        (BUILT_IN_NANSL, "nansl", BT_FN_LONGDOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL)
*************** DEF_C99_BUILTIN        (BUILT_IN_RINTL,
*** 622,630 ****
  #define RINT_TYPE(F) BT_FN_##F##_##F
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_RINT, "rint", RINT_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST)
  #undef RINT_TYPE
! DEF_C2X_BUILTIN        (BUILT_IN_ROUNDEVEN, "roundeven", BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_C2X_BUILTIN        (BUILT_IN_ROUNDEVENF, "roundevenf", BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_C2X_BUILTIN        (BUILT_IN_ROUNDEVENL, "roundevenl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_ROUND, "round", BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_ROUNDF, "roundf", BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_ROUNDL, "roundl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
--- 622,630 ----
  #define RINT_TYPE(F) BT_FN_##F##_##F
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_RINT, "rint", RINT_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST)
  #undef RINT_TYPE
! DEF_C23_BUILTIN        (BUILT_IN_ROUNDEVEN, "roundeven", BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_C23_BUILTIN        (BUILT_IN_ROUNDEVENF, "roundevenf", BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
! DEF_C23_BUILTIN        (BUILT_IN_ROUNDEVENL, "roundevenl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_ROUND, "round", BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_ROUNDF, "roundf", BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_ROUNDL, "roundl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
*************** DEF_LIB_BUILTIN        (BUILT_IN_STRCHR,
*** 830,837 ****
  DEF_LIB_BUILTIN        (BUILT_IN_STRCMP, "strcmp", BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCPY, "strcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCSPN, "strcspn", BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_C2X_BUILTIN        (BUILT_IN_STRDUP, "strdup", BT_FN_STRING_CONST_STRING, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF)
! DEF_C2X_BUILTIN        (BUILT_IN_STRNDUP, "strndup", BT_FN_STRING_CONST_STRING_SIZE, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRLEN, "strlen", BT_FN_SIZE_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNCASECMP, "strncasecmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRNCAT, "strncat", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
--- 830,837 ----
  DEF_LIB_BUILTIN        (BUILT_IN_STRCMP, "strcmp", BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCPY, "strcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRCSPN, "strcspn", BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
! DEF_C23_BUILTIN        (BUILT_IN_STRDUP, "strdup", BT_FN_STRING_CONST_STRING, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF)
! DEF_C23_BUILTIN        (BUILT_IN_STRNDUP, "strndup", BT_FN_STRING_CONST_STRING_SIZE, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRLEN, "strlen", BT_FN_SIZE_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNCASECMP, "strncasecmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_STRNCAT, "strncat", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
*************** DEF_GCC_BUILTIN        (BUILT_IN_USUBLL_
*** 934,939 ****
--- 934,945 ----
  DEF_GCC_BUILTIN        (BUILT_IN_UMUL_OVERFLOW, "umul_overflow", BT_FN_BOOL_UINT_UINT_UINTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_UMULL_OVERFLOW, "umull_overflow", BT_FN_BOOL_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_UMULLL_OVERFLOW, "umulll_overflow", BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_ADDC, "addc", BT_FN_UINT_UINT_UINT_UINT_UINTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_ADDCL, "addcl", BT_FN_ULONG_ULONG_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_ADDCLL, "addcll", BT_FN_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_SUBC, "subc", BT_FN_UINT_UINT_UINT_UINT_UINTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_SUBCL, "subcl", BT_FN_ULONG_ULONG_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_SUBCLL, "subcll", BT_FN_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST)
  
  /* Category: miscellaneous builtins.  */
  DEF_LIB_BUILTIN        (BUILT_IN_ABORT, "abort", BT_FN_VOID, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST)
*************** DEF_GCC_BUILTIN        (BUILT_IN_CLZ, "c
*** 956,970 ****
--- 962,979 ----
  DEF_GCC_BUILTIN        (BUILT_IN_CLZIMAX, "clzimax", BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CLZL, "clzl", BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CLZLL, "clzll", BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_CLZG, "clzg", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_GCC_BUILTIN        (BUILT_IN_CONSTANT_P, "constant_p", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CTZ, "ctz", BT_FN_INT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CTZIMAX, "ctzimax", BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CTZL, "ctzl", BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CTZLL, "ctzll", BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_CTZG, "ctzg", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_GCC_BUILTIN        (BUILT_IN_CLRSB, "clrsb", BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CLRSBIMAX, "clrsbimax", BT_FN_INT_INTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CLRSBL, "clrsbl", BT_FN_INT_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_CLRSBLL, "clrsbll", BT_FN_INT_LONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_CLRSBG, "clrsbg", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_DCGETTEXT, "dcgettext", BT_FN_STRING_CONST_STRING_CONST_STRING_INT, ATTR_FORMAT_ARG_2)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_DGETTEXT, "dgettext", BT_FN_STRING_CONST_STRING_CONST_STRING, ATTR_FORMAT_ARG_2)
  DEF_GCC_BUILTIN        (BUILT_IN_DWARF_CFA, "dwarf_cfa", BT_FN_PTR, ATTR_NULL)
*************** DEF_EXT_LIB_BUILTIN    (BUILT_IN_FFS, "f
*** 987,994 ****
--- 996,1008 ----
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_FFSIMAX, "ffsimax", BT_FN_INT_INTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_FFSL, "ffsl", BT_FN_INT_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_FFSLL, "ffsll", BT_FN_INT_LONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_FFSG, "ffsg", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_EXT_LIB_BUILTIN        (BUILT_IN_FORK, "fork", BT_FN_PID, ATTR_NOTHROW_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_FRAME_ADDRESS, "frame_address", BT_FN_PTR_UINT, ATTR_NULL)
+ DEF_GCC_BUILTIN        (BUILT_IN_STACK_ADDRESS, "stack_address", BT_FN_PTR, ATTR_NULL)
+ DEF_BUILTIN_STUB       (BUILT_IN___STRUB_ENTER, "__builtin___strub_enter")
+ DEF_BUILTIN_STUB       (BUILT_IN___STRUB_UPDATE, "__builtin___strub_update")
+ DEF_BUILTIN_STUB       (BUILT_IN___STRUB_LEAVE, "__builtin___strub_leave")
  /* [trans-mem]: Adjust BUILT_IN_TM_FREE if BUILT_IN_FREE is changed.  */
  DEF_LIB_BUILTIN        (BUILT_IN_FREE, "free", BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_FROB_RETURN_ADDR, "frob_return_addr", BT_FN_PTR_PTR, ATTR_NULL)
*************** DEF_GCC_BUILTIN        (BUILT_IN_ISLESS,
*** 1023,1028 ****
--- 1037,1043 ----
  DEF_GCC_BUILTIN        (BUILT_IN_ISLESSEQUAL, "islessequal", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_GCC_BUILTIN        (BUILT_IN_ISLESSGREATER, "islessgreater", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_GCC_BUILTIN        (BUILT_IN_ISUNORDERED, "isunordered", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
+ DEF_GCC_BUILTIN        (BUILT_IN_ISEQSIG, "iseqsig", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_GCC_BUILTIN        (BUILT_IN_ISSIGNALING, "issignaling", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_LIB_BUILTIN        (BUILT_IN_LABS, "labs", BT_FN_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_C99_BUILTIN        (BUILT_IN_LLABS, "llabs", BT_FN_LONGLONG_LONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
*************** DEF_GCC_BUILTIN        (BUILT_IN_PARITY,
*** 1034,1043 ****
--- 1049,1060 ----
  DEF_GCC_BUILTIN        (BUILT_IN_PARITYIMAX, "parityimax", BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_PARITYL, "parityl", BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_PARITYLL, "parityll", BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_PARITYG, "parityg", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_GCC_BUILTIN        (BUILT_IN_POPCOUNT, "popcount", BT_FN_INT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_POPCOUNTIMAX, "popcountimax", BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_POPCOUNTL, "popcountl", BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_POPCOUNTLL, "popcountll", BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_GCC_BUILTIN        (BUILT_IN_POPCOUNTG, "popcountg", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_POSIX_MEMALIGN, "posix_memalign", BT_FN_INT_PTRPTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
  DEF_GCC_BUILTIN        (BUILT_IN_PREFETCH, "prefetch", BT_FN_VOID_CONST_PTR_VAR, ATTR_NOVOPS_LEAF_LIST)
  DEF_LIB_BUILTIN        (BUILT_IN_REALLOC, "realloc", BT_FN_PTR_PTR_SIZE, ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST)
*************** DEF_BUILTIN_STUB (BUILT_IN_ADJUST_TRAMPO
*** 1067,1072 ****
--- 1084,1091 ----
  DEF_BUILTIN_STUB (BUILT_IN_INIT_DESCRIPTOR, "__builtin_init_descriptor")
  DEF_BUILTIN_STUB (BUILT_IN_ADJUST_DESCRIPTOR, "__builtin_adjust_descriptor")
  DEF_BUILTIN_STUB (BUILT_IN_NONLOCAL_GOTO, "__builtin_nonlocal_goto")
+ DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_CREATED, "__gcc_nested_func_ptr_created", BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
+ DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_DELETED, "__gcc_nested_func_ptr_deleted", BT_FN_VOID, ATTR_NOTHROW_LIST)
  
  /* Implementing __builtin_setjmp.  */
  DEF_BUILTIN_STUB (BUILT_IN_SETJMP_SETUP, "__builtin_setjmp_setup")
*************** DEF_GCC_BUILTIN (BUILT_IN_FILE, "FILE",
*** 1172,1177 ****
--- 1191,1199 ----
  DEF_GCC_BUILTIN (BUILT_IN_FUNCTION, "FUNCTION", BT_FN_CONST_STRING, ATTR_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN (BUILT_IN_LINE, "LINE", BT_FN_INT, ATTR_NOTHROW_LEAF_LIST)
  
+ /* Control Flow Redundancy hardening out-of-line checker.  */
+ DEF_BUILTIN_STUB (BUILT_IN___HARDCFR_CHECK, "__builtin___hardcfr_check")
+ 
  /* Synchronization Primitives.  */
  #include "sync-builtins.def"
  
diff -Nrcpad gcc-13.2.0/gcc/builtins.h gcc-14.1.0/gcc/builtins.h
*** gcc-13.2.0/gcc/builtins.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/builtins.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Expand builtin functions.
!    Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Expand builtin functions.
!    Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** struct target_builtins {
*** 37,42 ****
--- 37,49 ----
       register windows, this gives only the outbound registers.
       INCOMING_REGNO gives the corresponding inbound register.  */
    fixed_size_mode_pod x_apply_result_mode[FIRST_PSEUDO_REGISTER];
+ 
+   /* Nonzero iff the arrays above have been initialized.  The _plus_one suffix
+      is for zero initialization to make it an unreasonable size, used to signal
+      that the size and the corresponding mode array has not been
+      initialized.  */
+   int x_apply_args_size_plus_one;
+   int x_apply_result_size_plus_one;
  };
  
  extern struct target_builtins default_target_builtins;
*************** struct c_strlen_data
*** 105,111 ****
  };
  
  extern tree c_strlen (tree, int, c_strlen_data * = NULL, unsigned = 1);
! extern rtx c_readstr (const char *, scalar_int_mode, bool = true);
  extern void expand_builtin_setjmp_setup (rtx, rtx);
  extern void expand_builtin_setjmp_receiver (rtx);
  extern void expand_builtin_update_setjmp_buf (rtx);
--- 112,118 ----
  };
  
  extern tree c_strlen (tree, int, c_strlen_data * = NULL, unsigned = 1);
! extern rtx c_readstr (const char *, fixed_size_mode, bool = true);
  extern void expand_builtin_setjmp_setup (rtx, rtx);
  extern void expand_builtin_setjmp_receiver (rtx);
  extern void expand_builtin_update_setjmp_buf (rtx);
*************** extern internal_fn associated_internal_f
*** 156,160 ****
--- 163,168 ----
  extern internal_fn replacement_internal_fn (gcall *);
  
  extern bool builtin_with_linkage_p (tree);
+ extern int type_to_class (tree);
  
  #endif /* GCC_BUILTINS_H */
diff -Nrcpad gcc-13.2.0/gcc/c/ChangeLog gcc-14.1.0/gcc/c/ChangeLog
*** gcc-13.2.0/gcc/c/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/gcc/c/ChangeLog	Tue May  7 06:52:33 2024
***************
*** 1,11 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-04-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-04-27  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/109409
  	* c-parser.cc (c_parser_initializer): Move diagnostics about
--- 1,1009 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-04-19  Martin Uecker  <uecker@tugraz.at>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR lto/114574
! 	PR c/114361
! 	* c-decl.cc (shadow_tag_warned): For flag_isoc23 and code not
! 	ENUMERAL_TYPE use SET_TYPE_STRUCTURAL_EQUALITY.
! 	(parser_xref_tag): Likewise.
! 	(start_struct): For flag_isoc23 use SET_TYPE_STRUCTURAL_EQUALITY.
! 	(c_update_type_canonical): New function.
! 	(finish_struct): Put NULL as second == operand rather than first.
! 	Assert TYPE_STRUCTURAL_EQUALITY_P.  Call c_update_type_canonical.
! 	* c-typeck.cc (composite_type_internal): Use
! 	SET_TYPE_STRUCTURAL_EQUALITY.  Formatting fix.
! 
! 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-decl.cc (previous_tag): Fix duplicated words in comment; the the
! 	-> the.
! 	(diagnose_mismatched_decls): Fix duplicated words in comment;
! 	about about -> about.
! 
! 2024-04-05  Martin Uecker  <uecker@tugraz.at>
! 
! 	Revert:
! 	2024-04-02  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/114361
! 	* c-decl.cc (finish_struct): Set TYPE_CANONICAL when completing
! 	strucute types.
! 
! 2024-04-02  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/114361
! 	* c-decl.cc (finish_struct): Set TYPE_CANONICAL when completing
! 	strucute types.
! 
! 2024-03-14  Chung-Lin Tang  <cltang@baylibre.com>
! 
! 	* c-parser.cc (c_parser_oacc_data_clause): Add parsing support for
! 	'readonly' modifier, set OMP_CLAUSE_MAP_READONLY if readonly modifier
! 	found, update comments.
! 	(c_parser_oacc_cache): Add parsing support for 'readonly' modifier,
! 	set OMP_CLAUSE__CACHE__READONLY if readonly modifier found, update
! 	comments.
! 
! 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR debug/113918
! 	* c-tree.h (c_type_dwarf_attribute): Declare.
! 	* c-objc-common.h (LANG_HOOKS_TYPE_DWARF_ATTRIBUTE): Redefine.
! 	* c-objc-common.cc: Include dwarf2.h.
! 	(c_type_dwarf_attribute): New function.
! 
! 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/114042
! 	* c-parser.cc (c_parser_postfix_expression): Diagnose
! 	__builtin_stdc_bit_* argument with ENUMERAL_TYPE or BOOLEAN_TYPE
! 	type or if signed here rather than on the replacement builtins
! 	in check_builtin_function_arguments.
! 
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/114007
! 	* c-parser.cc (c_parser_std_attribute): Remove loose_scope_p argument.
! 	Instead of checking it, parse 2 CPP_COLONs with the first one with
! 	COLON_SCOPE flag the same as CPP_SCOPE.
! 	(c_parser_std_attribute_list): Remove loose_scope_p argument, don't
! 	pass it to c_parser_std_attribute.
! 	(c_parser_std_attribute_specifier): Adjust c_parser_std_attribute_list
! 	caller.
! 
! 2024-02-13  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	PR middle-end/113904
! 	* c-parser.cc (c_parser_omp_context_selector): Handle splitting of
! 	OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
! 
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-decl.cc (get_parm_array_spec): Use HOST_WIDE_INT_PRINT_UNSIGNED
! 	instead of "%lu" and casts to unsigned long or unsigned long long.
! 
! 2024-02-08  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/113776
! 	* c-typeck.cc (c_objc_common_truthvalue_conversion): Return an
! 	integer constant expression for boolean conversion of floating
! 	constant.
! 
! 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/113740
! 	* c-decl.cc (finish_struct): Only use build_bitint_type if
! 	bit-field has width larger or equal to minimum _BitInt
! 	precision.
! 
! 2024-01-31  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/112571
! 	* c-decl.cc (start_enum): Clear ENUM_FIXED_UNDERLYING_TYPE_P when
! 	defining without a fixed underlying type an enumeration previously
! 	declared with a fixed underlying type.
! 
! 2024-01-31  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/113438
! 	* c-typeck.cc (composite_type_internal): Set TYPE_STUB_DECL.
! 
! 2024-01-31  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/111059
! 	PR c/111911
! 	* c-tree.h (c_objc_common_truthvalue_conversion): Add third
! 	argument.
! 	* c-convert.cc (c_convert): For conversions to boolean, pass third
! 	argument to c_objc_common_truthvalue_conversion rather than
! 	converting here.
! 	* c-typeck.cc (build_c_cast): Ensure arguments with integer
! 	operands are marked as such for conversion to boolean.
! 	(c_objc_common_truthvalue_conversion): Add third argument TYPE.
! 
! 2024-01-21  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/113492
! 	* c-decl.cc (grokdeclarator): Use c_common_unsigned_type instead of
! 	unsigned_type_for to create the unsigned type for bitfields declared
! 	with int when using -funsigned-bitfields.
! 
! 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/113315
! 	* c-typeck.cc (build_array_ref): If index has BITINT_TYPE type with
! 	precision larger than sizetype precision, convert it to sizetype.
! 
! 2024-01-11  Julian Brown  <julian@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_braced_init, c_parser_conditional_expression):
! 	Don't allow OpenMP array section.
! 	(c_parser_postfix_expression): Don't allow array section in statement
! 	expression.
! 	(c_parser_postfix_expression_after_primary): Add support for OpenMP
! 	array section parsing.
! 	(c_parser_expr_list): Don't allow OpenMP array section here.
! 	(c_parser_omp_variable_list): Change ALLOW_DEREF parameter to
! 	MAP_LVALUE.  Support parsing of general lvalues in "map", "to" and
! 	"from" clauses.
! 	(c_parser_omp_var_list_parens): Change ALLOW_DEREF parameter to
! 	MAP_LVALUE.  Update call to c_parser_omp_variable_list.
! 	(c_parser_oacc_data_clause): Update calls to
! 	c_parser_omp_var_list_parens.
! 	(c_parser_omp_clause_reduction): Use OMP_ARRAY_SECTION tree node
! 	instead of TREE_LIST for array sections.
! 	(c_parser_omp_target): Allow GOMP_MAP_ATTACH.
! 	* c-tree.h (c_omp_array_section_p): Add extern declaration.
! 	(build_omp_array_section): Add prototype.
! 	* c-typeck.cc (c_omp_array_section_p): Add flag.
! 	(mark_exp_read): Support OMP_ARRAY_SECTION.
! 	(build_omp_array_section): Add function.
! 	(build_external_ref): Tweak error path for OpenMP array sections.
! 	(handle_omp_array_sections_1): Use OMP_ARRAY_SECTION tree code instead
! 	of TREE_LIST.  Handle more kinds of expressions.
! 	(c_oacc_check_attachments): Use OMP_ARRAY_SECTION instead of TREE_LIST
! 	for array sections.
! 	(c_finish_omp_clauses): Use OMP_ARRAY_SECTION instead of TREE_LIST.
! 	Check for supported expression types.
! 
! 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
! 
! 	PR c/113267
! 	* c-parser.cc (c_parser_for_statement): Skip the pragma is no cond.
! 
! 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_name): Move handling of indirect
! 	clause to correspond to alphabetical order.
! 
! 2023-12-30  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-typeck.cc (tagged_types_tu_compatible_p): Revise.
! 
! 2023-12-22  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-typeck.cc (composite_type_internal): Adapted from
! 	composite_type to support structs and unions.
! 	(composite_type): New wrapper function.
! 	(build_conditional_operator): Return composite type.
! 	* c-decl.cc (finish_struct): Allow NULL for
! 	enclosing_struct_parse_info.
! 
! 2023-12-21  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-decl.cc (c_struct_hasher): Hash stable for struct
! 	types.
! 	(c_struct_hasher::hash, c_struct_hasher::equal): New
! 	functions.
! 	(finish_struct): Set TYPE_CANONICAL to first struct in
! 	equivalence class.
! 	* c-objc-common.cc (c_get_alias_set): Let structs or
! 	unions with variable size alias anything.
! 	* c-tree.h (comptypes_equiv): New prototype.
! 	* c-typeck.cc (comptypes_equiv): New function.
! 	(comptypes_internal): Implement equivalence mode.
! 	(tagged_types_tu_compatible): Implement equivalence mode.
! 
! 2023-12-21  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-tree.h (c_parser_enum_specifier): Add parameter.
! 	* c-decl.cc (start_enum): Allow redefinition.
! 	(finish_enum): Diagnose conflicts.
! 	(build_enumerator): Set context.
! 	(diagnose_mismatched_decls): Diagnose conflicting enumerators.
! 	(push_decl): Preserve context for enumerators.
! 	* c-typeck.cc (tagged_types_tu_compatible_p): Adapt.
! 	* c-parser.cc (c_parser_enum_specifier): Remember when
! 	seen is from an enum type which is not yet defined.
! 
! 2023-12-21  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-decl.cc (previous_tag): New function.
! 	(parser_xref_tag): Find earlier definition.
! 	(get_parm_info): Turn off warning for C23.
! 	(start_struct): Allow redefinitons.
! 	(finish_struct): Diagnose conflicts.
! 	* c-tree.h (comptypes_same_p): Add prototype.
! 	* c-typeck.cc (comptypes_same_p): New function.
! 	(comptypes_internal): Activate comparison of tagged types.
! 	(convert_for_assignment): Ignore qualifiers.
! 	(digest_init): Add error.
! 	(initialized_elementwise_p): Allow compatible types.
! 
! 2023-12-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_postfix_expression_after_primary): Grow
! 	sizeof_arg and sizeof_arg_loc arrays to 6 elements.  Call
! 	warn_for_calloc if warn_calloc_transposed_args for functions with
! 	alloc_size type attribute with 2 arguments.
! 	(c_parser_expr_list): Use 6 instead of 3.
! 	* c-typeck.cc (build_c_cast): Call warn_for_alloc_size for casts
! 	of calls to functions with alloc_size type attribute.
! 	(convert_for_assignment): Likewise.
! 
! 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	* c-parser.cc (omp_construct_selectors): Delete.
! 	(omp_device_selectors): Delete.
! 	(omp_implementation_selectors): Delete.
! 	(omp_user_selectors): Delete.
! 	(c_parser_omp_context_selector): Adjust for new representations
! 	and simplify dispatch logic.  Uniformly warn instead of sometimes
! 	error when an unknown selector is found.  Adjust error messages
! 	for extraneous/incorrect score.
! 	(c_parser_omp_context_selector_specification): Likewise.
! 	(c_finish_omp_declare_variant): Adjust for new representations.
! 
! 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_context_selector): Adjust for new
! 	namelist property representation.
! 
! 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_context_selector): Use new constructors.
! 
! 2023-12-18  Richard Biener  <rguenther@suse.de>
! 
! 	PR c/111975
! 	* gimple-parser.cc (c_parser_gimple_postfix_expression):
! 	Parse TARGET_MEM_REF extended operands for __MEM.
! 
! 2023-12-13  Jason Merrill  <jason@redhat.com>
! 
! 	* c-typeck.cc (convert_for_assignment): Adjust call to
! 	warn_for_address_of_packed_member.
! 
! 2023-12-13  Julian Brown  <julian@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_oacc_all_clauses): Add TARGET_P parameter. Use
! 	to select region type for c_finish_omp_clauses call.
! 	(c_parser_oacc_loop): Update calls to c_parser_oacc_all_clauses.
! 	(c_parser_oacc_compute): Likewise.
! 	(c_parser_omp_target_data, c_parser_omp_target_enter_data): Support
! 	ATTACH kind.
! 	(c_parser_omp_target_exit_data): Support DETACH kind.
! 	(check_clauses): Handle GOMP_MAP_POINTER and GOMP_MAP_ATTACH here.
! 	* c-typeck.cc (handle_omp_array_sections_1,
! 	handle_omp_array_sections, c_finish_omp_clauses): Use
! 	c_omp_address_inspector class and OMP address tokenizer to analyze and
! 	expand map clause expressions.  Fix some diagnostics.  Fix "is OpenACC"
! 	condition for C_ORT_ACC_TARGET addition.
! 
! 2023-12-13  Julian Brown  <julian@codesourcery.com>
! 
! 	* c-typeck.cc (c_finish_omp_clauses): Add braces and reindent
! 	OMP_CLAUSE_TO/OMP_CLAUSE_FROM/OMP_CLAUSE__CACHE_ stanza.
! 
! 2023-12-11  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/112488
! 	* c-decl.cc (add_decl_expr): Revise.
! 	(finish_struct): Create DECL_EXPR.
! 	* c-parser.cc (c_parser_struct_or_union_specifier): Call
! 	finish_struct with expression for VLA sizes.
! 	* c-tree.h (finish_struct): Add argument.
! 
! 2023-12-11  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_requires): Handle acquires/release
! 	in atomic_default_mem_order clause.
! 	(c_parser_omp_atomic): Update.
! 
! 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* c-decl.cc (std_attribute_table): Add extra braces to work
! 	around PR 16333 in older compilers.
! 
! 2023-12-05  Richard Biener  <rguenther@suse.de>
! 
! 	PR c/86869
! 	* c-typeck.cc (c_build_qualified_type): Preserve address-space
! 	info for ARRAY_TYPE.
! 
! 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* c-tree.h (std_attribute_table): Declare.
! 	* c-decl.cc (std_attribute_table): Change type to
! 	scoped_attribute_specs, using...
! 	(std_attributes): ...this as the underlying array.
! 	(c_init_decl_processing): Remove call to register_scoped_attributes.
! 	* c-objc-common.h (c_objc_attribute_table): New global.
! 	(LANG_HOOKS_ATTRIBUTE_TABLE): Use it.
! 	(LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Delete.
! 	(LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Delete.
! 
! 2023-12-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR other/44209
! 	* c-decl.cc (grokparms): Issue permerror for
! 	OPT_Wdeclaration_missing_parameter_type instead of a pedwarn.
! 
! 2023-12-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/96284
! 	* c-typeck.cc (build_conditional_expr): Upgrade most pointer
! 	type mismatches to a permerror.
! 	(convert_for_assignment): Use permerror_opt and
! 	permerror_init for OPT_Wincompatible_pointer_types warnings.
! 
! 2023-12-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/96284
! 	* c-typeck.cc (c_finish_return): Use permerrors
! 	for OPT_Wreturn_mismatch diagnostics.
! 
! 2023-12-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c-decl.cc (grokdeclarator): Do not skip -Wimplicit-int
! 	warnings or errors in system headers.
! 
! 2023-12-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c-decl.cc (warn_defaults_to): Remove.
! 	(grok_declarator, start_function): Call permerror_opt
! 	instead of warn_defaults_to.
! 	(store_parm_decls_oldstyle): Call permerror_opt for
! 	OPT_Wimplicit_int.
! 
! 2023-12-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/91092
! 	PR c/96284
! 	* c-decl.cc (implicit_decl_permerror): Rename from
! 	implicit_decl_warning.  Call permerror_opt instead of
! 	pedwarn and warning_at.
! 	(implicitly_declare): Adjust callers.
! 
! 2023-12-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/96284
! 	PR c/106416
! 	* c-typeck.cc (build_conditional_expr): Use permerror_opt for
! 	pointer/integer type mismatches, based on -Wint-conversion.
! 	(pedwarn_permerror_init, permerror_init): New function.
! 	(pedwarn_init): Call pedwarn_permerror_init.
! 	(convert_for_assignment): Use permerror_opt and
! 	permerror_init for -Wint-conversion warnings.
! 
! 2023-11-29  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* c-typeck.cc (convert_lvalue_to_rvalue): Decay hardbools.
! 	* c-convert.cc (convert): Convert to hardbool through
! 	truthvalue.
! 	* c-decl.cc (check_bitfield_type_and_width): Skip enumeral
! 	truncation warnings for hardbool.
! 	(finish_struct): Propagate hardbool attribute to bitfield
! 	types.
! 	(digest_init): Convert to hardbool.
! 
! 2023-11-28  Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/94264
! 	PR c++/53220
! 	* c-typeck.cc (array_to_pointer_conversion): Adjust -Wc++-compat
! 	diagnostic.
! 
! 2023-11-28  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/112741
! 	* gimple-parser.cc (c_parser_parse_gimple_body): Also
! 	set DECL_SEEN_IN_BIND_EXPR_Pfor locals.
! 
! 2023-11-27  Alex Coplan  <alex.coplan@arm.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	PR c++/60512
! 	* c-lang.cc (c_family_register_lang_features): New.
! 	* c-objc-common.cc (struct c_feature_info): New.
! 	(c_register_features): New.
! 	* c-objc-common.h (c_register_features): New.
! 
! 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_num_threads,
! 	c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
! 	c_parser_omp_clause_priority, c_parser_omp_clause_schedule,
! 	c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
! 	c_parser_omp_clause_dist_schedule, c_parser_omp_depobj,
! 	c_parser_omp_scan_loop_body, c_parser_omp_assumption_clauses):
! 	Add OPT_Wopenmp to warning_at.
! 
! 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_depobj): Accept optionally an argument
! 	to the destroy clause.
! 
! 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_postfix_expression): Handle RID_BUILTIN_STDC.
! 	* c-decl.cc (names_builtin_p): Likewise.
! 
! 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/111309
! 	* c-typeck.cc (convert_arguments): Don't promote first argument
! 	of BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
! 
! 2023-11-10  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-typeck.cc (struct comptypes_data): Add anon_field flag.
! 	(comptypes, comptypes_check_unum_int,
! 	comptypes_check_different_types): Remove old cache.
! 	(tagged_tu_types_compatible_p): Rewrite.
! 
! 2023-11-09  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c-typeck.cc (c_finish_return): Use pedwarn with
! 	OPT_Wreturn_mismatch for missing/extra return expressions.
! 
! 2023-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>
! 
! 	* c-decl.cc (c_decl_attributes): Add attribute for indirect
! 	functions.
! 	* c-lang.h (c_omp_declare_target_attr): Add indirect field.
! 	* c-parser.cc (c_parser_omp_clause_name): Handle indirect clause.
! 	(c_parser_omp_clause_indirect): New.
! 	(c_parser_omp_all_clauses): Handle indirect clause.
! 	(OMP_DECLARE_TARGET_CLAUSE_MASK): Add indirect clause to mask.
! 	(c_parser_omp_declare_target): Handle indirect clause.  Emit error
! 	message if device_type or indirect clauses used alone.  Emit error
! 	if indirect clause used with device_type that is not 'any'.
! 	(OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK): Add indirect clause to mask.
! 	(c_parser_omp_begin): Handle indirect clause.
! 	* c-typeck.cc (c_finish_omp_clauses): Handle indirect clause.
! 
! 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* c-decl.cc: Use flag_isoc23 instead of flag_isoc2x and c23_auto_p
! 	instead of c2x_auto_p.  Refer to C23 instead of C2X in diagnostics
! 	and comments.
! 	* c-errors.cc: Use flag_isoc23 instead of flag_isoc2x and
! 	warn_c11_c23_compat instead of warn_c11_c2x_compat.  Refer to C23
! 	instead of C2X in comments.
! 	* c-parser.cc: Use flag_isoc23 instead of flag_isoc2x,
! 	warn_c11_c23_compat instead of warn_c11_c2x_compat, c23_auto_p
! 	instead of c2x_auto_p and D_C23 instead of D_C2X.  Refer to C23
! 	instead of C2X in diagnostics and comments.
! 	* c-tree.h: Refer to C23 instead of C2X in comments.
! 	(struct c_declspecs): Rename c2x_auto_p to c23_auto_p.
! 	* c-typeck.cc: Use flag_isoc23 instead of flag_isoc2x and
! 	warn_c11_c23_compat instead of warn_c11_c2x_compat.  Refer to C23
! 	instead of C2X in diagnostics and comments.
! 
! 2023-11-06  Joseph Myers  <joseph@codesourcery.com>
! 
! 	PR c/107954
! 	* c-errors.cc (pedwarn_c11): Use OPT_Wc11_c23_compat instead of
! 	OPT_Wc11_c2x_compat.
! 	* c-typeck.cc (build_conditional_expr, convert_for_assignment):
! 	Use OPT_Wc11_c23_compat instead of OPT_Wc11_c2x_compat.
! 
! 2023-11-04  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.h (c_maybe_parse_omp_decl): Declare.
! 	* c-parser.cc (struct c_parser): Add in_omp_decl_attribute member.
! 	(c_parser_std_attribute): Uncoment omp::decl handling.
! 	(c_parser_omp_var_list_parens): If parser->in_omp_decl_attribute
! 	don't expect any arguments, instead create clause or TREE_LIST for
! 	that decl.
! 	(c_maybe_parse_omp_decl): New function.
! 	(c_parser_omp_declare_target): If parser->in_omp_decl_attribute and
! 	first token isn't name or comma invoke c_parser_omp_var_list_parens.
! 	* c-decl.cc (c_decl_attributes): Uncomment omp::decl handling and
! 	use *node rather than non-existing *decl.
! 
! 2023-11-04  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-tree.def: New file.
! 	* c-tree.h (struct c_tree_token_vec): Forward declare.
! 	(c_tree_size): Declare.
! 	* c-lang.h (struct c_omp_declare_target_attr): Add attr_syntax member.
! 	(struct c_omp_begin_assumes_data): New type.
! 	(current_omp_begin_assumes): Change type from int to
! 	vec<c_omp_begin_assumes_data, va_gc> *.
! 	* c-lang.cc: Include c-family/c-pragma.h and c-parser.h.
! 	* c-parser.h (struct c_tree_token_vec_struct): New type.
! 	(C_TOKEN_VEC_TOKENS): New macro.
! 	* c-parser.cc (struct c_parser): Add omp_attrs_forbidden_p and
! 	in_omp_attribute_pragma members.
! 	(c_parser_skip_until_found): Handle CPP_PRAGMA_EOL when
! 	parser->in_omp_attribute_pragma.
! 	(c_parser_skip_to_pragma_eol): Likewise.
! 	(c_parser_translation_unit): Adjust for current_omp_begin_assumes
! 	being a vector rather than counter.
! 	(c_parser_declaration_or_fndef): Handle omp::directive and
! 	omp::sequence attributes on attribute declaration and declare simd
! 	or declare variant directives in those on function declarations.
! 	(c_parser_check_balanced_raw_token_sequence): Forward declare.
! 	(c_parser_omp_directive_args, c_parser_omp_sequence_args): New
! 	functions.
! 	(c_parser_std_attribute): Handle omp::directive and omp::sequence
! 	attributes.
! 	(struct c_omp_attribute_data): New type.
! 	(c_parser_handle_statement_omp_attributes,
! 	c_parser_handle_directive_omp_attributes): New functions.
! 	(c_parser_compound_statement_nostart): Handle omp::directive and
! 	omp::sequence attributes on statements.  Formatting fix.
! 	(c_parser_all_labels): Handle omp::directive and omp::sequence
! 	attributes on statements.
! 	(c_parser_statement): Clear parser->omp_attrs_forbidden_p.
! 	(c_parser_omp_variable_list): Handle parser->tokens
! 	!= &parser->tokens_buf[0] by saving/restoring it.
! 	(c_parser_omp_structured_block): Set parser->omp_attrs_forbidden_p.
! 	(c_parser_omp_section_scan): New function.
! 	(c_parser_omp_structured_block_sequence, c_parser_omp_sections_scope):
! 	Use it.
! 	(c_parser_omp_parallel): Set parser->omp_attrs_forbidden_p.
! 	(c_parser_omp_task): Likewise.
! 	(c_parser_omp_declare_simd): Handle function declaration after
! 	std attributes.
! 	(c_finish_omp_declare_simd): Don't assert all kinds are the same.
! 	(c_parser_omp_declare_target): Also push attr_syntax flag.
! 	(c_parser_omp_begin): Likewise.  Adjust for current_omp_begin_assumes
! 	type change.
! 	(c_parser_omp_end): Adjust for current_omp_begin_assumes type
! 	change.  Diagnose mixing of attribute vs. pragma syntax on end assumes
! 	or end declare target.
! 	(c_parser_omp_declare_reduction): Handle parser->tokens
! 	!= &parser->tokens_buf[0] by saving/restoring it.
! 	* c-decl.cc: Include c-parser.h.
! 	(current_omp_begin_assumes): Change type from int to
! 	vec<c_omp_begin_assumes_data, va_gc> *.
! 	(struct c_tree_token_vec): New type.  Add static assertions
! 	for sizeof and offsetof.
! 	(union lang_tree_node): Add c_token_vec member and adjust GTY
! 	desc for it.
! 	(c_tree_size): New function.
! 	(c_decl_attributes): Diagnose invalid omp::directive attribute
! 	uses.
! 	* c-objc-common.h (LANG_HOOKS_TREE_SIZE): Redefine.
! 
! 2023-11-02  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/112347
! 	* c-typeck.cc (convert_for_assignment): Add missing check.
! 
! 2023-11-01  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/71219
! 	* c-typeck.cc (convert_for_assignment): Add warning.
! 
! 2023-10-26  liuhongt  <hongtao.liu@intel.com>
! 
! 	* c-typeck.cc (build_vec_cmp): Pass type of arg0 to
! 	truth_type_for.
! 
! 2023-10-25  Thomas Schwinge  <thomas@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_name): Return
! 	'PRAGMA_OACC_CLAUSE_SELF' for "self".
! 	(c_parser_oacc_data_clause, OACC_UPDATE_CLAUSE_MASK): Adjust.
! 	(c_parser_oacc_all_clauses): Remove 'bool compute_p' formal
! 	parameter, and instead locally determine whether we're called for
! 	an OpenACC compute construct or OpenACC 'update' directive.
! 	(c_parser_oacc_compute): Adjust.
! 
! 2023-10-25  Chung-Lin Tang  <cltang@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_oacc_compute_clause_self): New function.
! 	(c_parser_oacc_all_clauses): Add new 'bool compute_p = false'
! 	parameter, add parsing of self clause when compute_p is true.
! 	(OACC_KERNELS_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_SELF.
! 	(OACC_PARALLEL_CLAUSE_MASK): Likewise,
! 	(OACC_SERIAL_CLAUSE_MASK): Likewise.
! 	(c_parser_oacc_compute): Adjust call to c_parser_oacc_all_clauses to
! 	set compute_p argument to true.
! 	* c-typeck.cc (c_finish_omp_clauses): Add OMP_CLAUSE_SELF case.
! 
! 2023-10-20  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/109827
! 	PR other/44209
! 	* c-typeck.cc (build_conditional_expr): Use OPT_Wint_conversion
! 	for pointer/integer mismatch warnings.
! 
! 2023-10-20  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/109826
! 	PR other/44209
! 	* c-typeck.cc (build_conditional_expr): Use
! 	OPT_Wincompatible_pointer_types for pointer mismatches.
! 	Emit location information for the operand.
! 
! 2023-10-19  Andrew Pinski  <pinskia@gmail.com>
! 
! 	PR c/100532
! 	* c-typeck.cc (convert_argument): After erroring out
! 	about an incomplete type return error_mark_node.
! 
! 2023-10-19  Andrew Pinski  <pinskia@gmail.com>
! 
! 	PR c/104822
! 	* c-typeck.cc (convert_for_assignment): Check for null pointer
! 	before warning about an incompatible scalar storage order.
! 
! 2023-10-18  Andrew Pinski  <pinskia@gmail.com>
! 
! 	PR c/101364
! 	* c-decl.cc (diagnose_arglist_conflict): Test for
! 	error mark before calling of c_type_promotes_to.
! 
! 2023-10-18  Andrew Pinski  <pinskia@gmail.com>
! 
! 	PR c/101285
! 	* c-typeck.cc (c_safe_arg_type_equiv_p): Return true for error
! 	operands early.
! 
! 2023-10-17  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/111708
! 	* c-decl.cc (grokdeclarator): Add error.
! 
! 2023-10-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-objc-common.cc (c_tree_printer): Update for "m_" prefixes to
! 	text_info fields.
! 
! 2023-09-30  Eugene Rozenfeld  <erozen@microsoft.com>
! 
! 	* Make-lang.in: Make create_fdas_for_cc1 target not .PHONY
! 
! 2023-09-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_postfix_expression_after_primary): Parse
! 	__builtin_classify_type call with typename as argument.
! 
! 2023-09-19  Richard Biener  <rguenther@suse.de>
! 
! 	PR c/111468
! 	* gimple-parser.cc (c_parser_gimple_binary_expression): Handle __LTGT.
! 
! 2023-09-19  Richard Biener  <rguenther@suse.de>
! 
! 	PR c/111468
! 	* gimple-parser.cc (c_parser_gimple_binary_expression): Add
! 	return type argument.
! 	(c_parser_gimple_statement): Adjust.
! 	(c_parser_gimple_paren_condition): Likewise.
! 	(c_parser_gimple_binary_expression): Use passed in return type,
! 	add support for - as POINTER_DIFF_EXPR, __UN{LT,LE,GT,GE,EQ},
! 	__UNORDERED and __ORDERED.
! 
! 2023-09-12  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (struct c_omp_loc_tree): New.
! 	(c_check_omp_allocate_allocator_r): New; checking moved from ...
! 	(c_parser_omp_allocate): ... here. Call it via walk_tree. Avoid
! 	ICE with tree_to_shwi for invalid too-large value.
! 
! 2023-09-12  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_construct): Move call to
! 	c_parser_omp_allocate to ...
! 	(c_parser_pragma): ... here.
! 	(c_parser_omp_allocate): Avoid ICE is allocator could not be
! 	parsed; set 'omp allocate' attribute for stack/automatic variables
! 	and only reject static variables; add several additional
! 	restriction checks.
! 	* c-tree.h (c_mark_decl_jump_unsafe_in_current_scope): New prototype.
! 	* c-decl.cc (decl_jump_unsafe): Return true for omp-allocated decls.
! 	(c_mark_decl_jump_unsafe_in_current_scope): New.
! 	(warn_about_goto, c_check_switch_jump_warnings): Add error for
! 	omp-allocated decls.
! 
! 2023-09-12  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-typeck.cc (struct comptypes_data): Add structure.
! 	(tagged_types_tu_compatible_p,
! 	function_types_compatible_p, type_lists_compatible_p,
! 	comptypes_internal): Add structure to interface, change
! 	return type to bool, and adapt calls.
! 	(comptarget_types): Change return type too bool.
! 	(comptypes, comptypes_check_enum_int,
! 	comptypes_check_different_types): Adapt calls.
! 
! 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/102989
! 	* c-decl.cc (finish_declspecs): Emit pedwarn_c11 on _BitInt.
! 	* c-typeck.cc (c_common_type): Emit sorry for common type between
! 	_Complex integer and larger _BitInt and return the _Complex integer.
! 
! 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/102989
! 	* c-convert.cc (c_convert): Handle BITINT_TYPE like INTEGER_TYPE.
! 	* c-decl.cc (check_bitfield_type_and_width): Allow BITINT_TYPE
! 	bit-fields.
! 	(finish_struct): Prefer to use BITINT_TYPE for BITINT_TYPE bit-fields
! 	if possible.
! 	(declspecs_add_type): Formatting fixes.  Handle cts_bitint.  Adjust
! 	for added union in *specs.  Handle RID_BITINT.
! 	(finish_declspecs): Handle cts_bitint.  Adjust for added union
! 	in *specs.
! 	* c-parser.cc (c_keyword_starts_typename, c_token_starts_declspecs,
! 	c_parser_declspecs, c_parser_gnu_attribute_any_word): Handle
! 	RID_BITINT.
! 	(c_parser_omp_clause_schedule): Handle BITINT_TYPE like INTEGER_TYPE.
! 	* c-tree.h (enum c_typespec_keyword): Mention _BitInt in comment.
! 	Add cts_bitint enumerator.
! 	(struct c_declspecs): Move int_n_idx and floatn_nx_idx into a union
! 	and add bitint_prec there as well.
! 	* c-typeck.cc (c_common_type, comptypes_internal):
! 	Handle BITINT_TYPE.
! 	(perform_integral_promotions): Promote BITINT_TYPE bit-fields to
! 	their declared type.
! 	(build_array_ref, build_unary_op, build_conditional_expr,
! 	build_c_cast, convert_for_assignment, digest_init, build_binary_op):
! 	Handle BITINT_TYPE.
! 	* c-fold.cc (c_fully_fold_internal): Handle BITINT_TYPE like
! 	INTEGER_TYPE.
! 	* c-aux-info.cc (gen_type): Handle BITINT_TYPE.
! 
! 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-decl.cc (declspecs_add_type): Use pedwarn_c11 rather than pedwarn
! 	for _FloatN{,x} diagnostics and append " before C2X" to the diagnostic
! 	text.
! 
! 2023-09-05  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_allocate): Handle
! 	error_mark_node.
! 
! 2023-08-25  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	* c-parser.cc (struct c_parser): Add omp_for_parse_state field.
! 	(struct omp_for_parse_data): New.
! 	(check_omp_intervening_code): New.
! 	(add_structured_block_stmt): New.
! 	(c_parser_compound_statement_nostart): Recognize intervening code,
! 	nested loops, and other things that need special handling in
! 	OpenMP loop constructs.
! 	(c_parser_while_statement): Error on loop in intervening code.
! 	(c_parser_do_statement): Likewise.
! 	(c_parser_for_statement): Likewise.
! 	(c_parser_postfix_expression_after_primary): Error on calls to
! 	the OpenMP runtime in intervening code.
! 	(c_parser_pragma): Error on OpenMP pragmas in intervening code.
! 	(c_parser_omp_loop_nest): New.
! 	(c_parser_omp_for_loop): Rewrite to use recursive descent, calling
! 	c_parser_omp_loop_nest to do the heavy lifting.
! 
! 2023-08-24  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* c-parser.cc (c_parser_std_attribute): Conditionally allow
! 	two colons to be used in place of ::.
! 	(c_parser_std_attribute_list): New function, split out from...
! 	(c_parser_std_attribute_specifier): ...here.  Allow the attribute-list
! 	to start with __extension__.  When it does, also allow two colons
! 	to be used in place of ::.
! 
! 2023-08-22  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_defaultmap): Parse
! 	'all' as category.
! 
! 2023-08-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	PR c/106537
! 	* c-typeck.cc (build_binary_op): Warning on comparing distinct
! 	pointer types only when -Wcompare-distinct-pointer-types.
! 
! 2023-08-15  Chung-Lin Tang  <cltang@codesourcery.com>
! 	    Thomas Schwinge  <thomas@codesourcery.com>
! 
! 	* c-parser.cc (OACC_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
! 
! 2023-08-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_typeof_specifier): Handle
! 	__typeof_unqual and __typeof_unqual__ as !is_std.
! 
! 2023-08-11  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/84510
! 	* c-typeck.cc (build_c_cast): Add warning.
! 
! 2023-08-05  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-parser.cc (c_parser_generic_selection): Inhibit evaluation
! 	warnings branches that are known not be taken during parsing.
! 
! 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
! 
! 	* c-parser.cc (c_parser_while_statement, c_parser_do_statement,
! 	c_parser_for_statement, c_parser_statement_after_labels,
! 	c_parse_pragma_novector, c_parser_pragma): Wire through novector and
! 	default to false.
! 
! 2023-08-02  Eric Feng  <ef2648@columbia.edu>
! 
! 	PR analyzer/107646
! 	* c-parser.cc: New functions on stashing values for the
! 	analyzer.
! 
! 2023-08-01  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	* c-parser.cc (pragma_lex_discard_to_eol): New function.
! 	(c_init_preprocess): New function.
! 
! 2023-07-31  Hamza Mahfooz  <someguy@effective-light.com>
! 
! 	PR c/65213
! 	* c-decl.cc (start_decl): Handle
! 	-Wmissing-variable-declarations.
! 
! 2023-07-31  Chung-Lin Tang  <cltang@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_oacc_host_data): Add checking requiring OpenACC
! 	host_data construct to have an use_device clause.
! 
! 2023-06-29  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/77650
! 	* c-decl.cc (finish_struct): Issue warnings for new option.
! 
! 2023-06-29  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-decl.cc (finish_struct): Set TYPE_INCLUDES_FLEXARRAY for
! 	struct/union type.
! 
! 2023-06-29  Richard Biener  <rguenther@suse.de>
! 
! 	PR c/110454
! 	* c-typeck.cc (convert_argument): Sink formal_prec compute
! 	to where TYPE_PRECISION is valid to use.
! 
! 2023-06-29  Eugene Rozenfeld  <erozen@microsoft.com>
! 
! 	* Make-lang.in: Pass correct stage cc1 when processing
! 	profile data collected while building target libraries
! 
! 2023-06-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/107583
! 	* c-parser.cc (c_parser_declspecs): Add hints to "unknown type
! 	name" error.
! 
! 2023-06-12  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_map): Reword error message for
! 	clearness especially with 'omp target (enter/exit) data.'
! 
! 2023-06-06  Kwok Cheung Yeung  <kcy@codesourcery.com>
! 	    Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_defaultmap,
! 	c_parser_omp_clause_map): Parse 'present'.
! 	(c_parser_omp_clause_to, c_parser_omp_clause_from): Remove.
! 	(c_parser_omp_clause_from_to): New; parse to/from clauses with
! 	optional present modifer.
! 	(c_parser_omp_all_clauses): Update call.
! 	(c_parser_omp_target_data, c_parser_omp_target_enter_data,
! 	c_parser_omp_target_exit_data): Handle new map enum values
! 	for 'present' mapping.
! 
! 2023-05-30  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	PR c/109999
! 	* c-parser.cc (c_parser_oacc_all_clauses,
! 	c_parser_omp_all_clauses): Improve error wording.
! 
! 2023-05-23  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/109450
! 	* c-decl.cc (add_decl_expr): New function.
! 	(grokdeclarator): Add decl expr for size expression in
! 	types pointed to by parameters declared as arrays.
! 
! 2023-05-23  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/70418
! 	PR c/106465
! 	PR c/107557
! 	PR c/108423
! 	* c-decl.cc (start_decl): Make sure size expression are
! 	evaluated only in correct context.
! 	(grokdeclarator): Size expression in fields may need a bind
! 	expression, make sure DECL_EXPR is always created.
! 	(grokfield, declspecs_add_type): Pass along size expressions.
! 	(finish_struct): Remove unneeded DECL_EXPR.
! 	(start_function): Evaluate size expressions for nested functions.
! 	* c-parser.cc (c_parser_struct_declarations,
! 	c_parser_struct_or_union_specifier): Pass along size expressions.
! 	(c_parser_declaration_or_fndef): Evaluate size expression.
! 	(c_parser_objc_at_property_declaration,
! 	c_parser_objc_class_instance_variables): Adapt.
! 	* c-tree.h (grokfield): Adapt declaration.
! 
! 2023-05-19  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-decl.cc (set_type_context): Remove.
! 	(pop_scope, diagnose_mismatched_decls, pushdecl):
! 	Remove dead code.
! 	* c-typeck.cc (comptypes_internal): Remove dead code.
! 	(same_translation_unit_p): Remove.
! 	(tagged_types_tu_compatible_p): Some fixes.
! 
! 2023-05-19  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* c-decl.cc (diagnose_mismatched_decls): Do not handle
! 	thread-local declarations as tentative definitions for C2x.
! 	(finish_decl): Do not allow thread-local definition with
! 	incomplete type for C2x.
! 
! 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
! 
! 	* c-convert.cc (c_convert): Ditto.
! 	* c-decl.cc (merge_decls): Ditto.
! 	* c-parser.cc (c_parser_omp_clause_reduction): Ditto.
! 	(c_parser_omp_declare_reduction): Ditto.
! 	* c-typeck.cc (build_component_ref): Ditto.
! 	(convert_argument): Ditto.
! 	(pointer_diff): Ditto.
! 	(build_unary_op): Ditto.
! 	(build_c_cast): Ditto.
! 	(build_modify_expr): Ditto.
! 	(store_init_value): Ditto.
! 	(constexpr_init_fits_real_type): Ditto.
! 	(check_constexpr_init): Ditto.
! 	(c_finish_return): Ditto.
! 	(handle_omp_array_sections_1): Ditto.
! 	(c_finish_omp_clauses): Ditto.
! 	* gimple-parser.cc (c_finish_gimple_return): Ditto.
! 
! 2023-05-16  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* c-decl.cc (check_for_loop_decls): Use pedwarn_c11 for
! 	diagnostics.
! 
! 2023-05-15  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* c-decl.cc (grokdeclarator): Ignore _Atomic on function return
! 	type for C2x.
! 
! 2023-04-30  Andrew Pinski  <apinski@marvell.com>
! 
! 	* c-typeck.cc (process_init_element): Print out array type
! 	for excessive elements.
! 
! 2023-04-30  Andrew Pinski  <apinski@marvell.com>
! 
! 	PR c/107926
! 	* c-typeck.cc (process_init_element): Move the check
! 	for string cst until after the error message.
! 
! 2023-04-28  Eugene Rozenfeld  <erozen@microsoft.com>
! 
! 	* Make-lang.in: Merge perf data collected when compiling cc1 and runtime libraries
! 
! 2023-04-27  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/109409
  	* c-parser.cc (c_parser_initializer): Move diagnostics about
***************
*** 14,40 ****
  
  2023-04-27  Jakub Jelinek  <jakub@redhat.com>
  
- 	Backported from master:
- 	2023-04-27  Jakub Jelinek  <jakub@redhat.com>
- 
  	PR c/107682
  	PR c/109412
  	* c-typeck.cc (pop_init_level): If constructor_type is FUNCTION_TYPE,
  	reject empty initializer as invalid.
  
! 2023-04-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2023-04-20  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/107041
  	* c-decl.cc (diagnose_mismatched_decls): Avoid -Wenum-int-mismatch
  	warning on acc_on_device declaration.
  
- 2023-04-26  Release Manager
- 
- 	* GCC 13.1.0 released.
- 
  2023-03-28  David Malcolm  <dmalcolm@redhat.com>
  
  	PR c/107002
--- 1012,1038 ----
  
  2023-04-27  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/107682
  	PR c/109412
  	* c-typeck.cc (pop_init_level): If constructor_type is FUNCTION_TYPE,
  	reject empty initializer as invalid.
  
! 2023-04-26  Richard Biener  <rguenther@suse.de>
  
! 	* gimple-parser.cc (c_parser_parse_gimple_body): Avoid
! 	last_stmt.
! 
! 2023-04-25  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c-parser.cc (c_parser_omp_scan_loop_body): Handle
! 	zero exec statements before/after 'omp scan'.
! 
! 2023-04-20  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/107041
  	* c-decl.cc (diagnose_mismatched_decls): Avoid -Wenum-int-mismatch
  	warning on acc_on_device declaration.
  
  2023-03-28  David Malcolm  <dmalcolm@redhat.com>
  
  	PR c/107002
***************
*** 9147,9153 ****
  	* c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
  	* c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.
  
! Copyright (C) 2012-2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 10145,10151 ----
  	* c-decl.c: Likewise.  Include gt-c-c-decl.h, not gt-c-decl.h.
  	* c-parser.c: Likewise.  Include gt-c-c-parser.h, not gt-c-parser.h.
  
! Copyright (C) 2012-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/gcc/c/Make-lang.in gcc-14.1.0/gcc/c/Make-lang.in
*** gcc-13.2.0/gcc/c/Make-lang.in	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/Make-lang.in	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Top level -*- makefile -*- fragment for GNU C - C language.
! # Copyright (C) 1994-2023 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level -*- makefile -*- fragment for GNU C - C language.
! # Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** cc1$(exeext): $(C_OBJS) cc1-checksum.o $
*** 88,97 ****
  	  cc1-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
  	@$(call LINK_PROGRESS,$(INDEX.c),end)
  
! cc1.fda: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA)
! 	$(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov cc1.fda -profile ../prev-gcc/$(PERF_DATA) -gcov_version 1
  
! #
  # Build hooks:
  
  c.info:
--- 88,122 ----
  	  cc1-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
  	@$(call LINK_PROGRESS,$(INDEX.c),end)
  
! components_in_prev = "bfd opcodes binutils fixincludes gas gcc gmp mpfr mpc isl gold intl ld libbacktrace libcpp libcody libdecnumber libiberty libiberty-linker-plugin libiconv zlib lto-plugin libctf libsframe"
! components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
! cc1.fda: create_fdas_for_cc1
! 	$(PROFILE_MERGER) $(shell ls -ha cc1_*.fda) --output_file cc1.fda -gcov_version 2
! 
! create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA)
! 	for component_in_prev in "$(components_in_prev)"; do \
! 	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
! 	  if [ -f $$perf_path ]; then \
! 	    profile_name=cc1_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
! 	  fi; \
! 	done;
! 
! 	for component_in_prev_target in "$(components_in_prev_target)"; do \
! 	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
! 	  if [ -f $$perf_path ]; then \
! 	    profile_name=cc1_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
! 	  fi; \
! 	done;
! 
! 	$(STAMP) $@
! #
  # Build hooks:
  
  c.info:
*************** c.mostlyclean:
*** 181,186 ****
--- 206,212 ----
  	-rm -f c/*$(objext)
  	-rm -f c/*$(coverageexts)
  	-rm -f cc1.fda
+ 	-rm -f cc1_*.fda
  c.clean:
  c.distclean:
  	-rm -f c/config.status c/Makefile
diff -Nrcpad gcc-13.2.0/gcc/c/c-aux-info.cc gcc-14.1.0/gcc/c/c-aux-info.cc
*** gcc-13.2.0/gcc/c/c-aux-info.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-aux-info.cc	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* Generate information regarding function declarations and definitions based
     on information stored in GCC's tree structure.  This code implements the
     -aux-info option.
!    Copyright (C) 1989-2023 Free Software Foundation, Inc.
     Contributed by Ron Guilmette (rfg@segfault.us.com).
  
  This file is part of GCC.
--- 1,7 ----
  /* Generate information regarding function declarations and definitions based
     on information stored in GCC's tree structure.  This code implements the
     -aux-info option.
!    Copyright (C) 1989-2024 Free Software Foundation, Inc.
     Contributed by Ron Guilmette (rfg@segfault.us.com).
  
  This file is part of GCC.
*************** gen_type (const char *ret_val, tree t, f
*** 409,414 ****
--- 409,425 ----
  	    data_type = concat ("unsigned ", data_type, NULL);
  	  break;
  
+ 	case BITINT_TYPE:
+ 	  {
+ 	    char buf[sizeof ("2147483647")];
+ 	    sprintf (buf, "%d", TYPE_PRECISION (t));
+ 	    if (TYPE_UNSIGNED (t))
+ 	      data_type = concat ("unsigned _BitInt(", buf, ")", NULL);
+ 	    else
+ 	      data_type = concat ("_BitInt(", buf, ")", NULL);
+ 	    break;
+ 	  }
+ 
  	case OPAQUE_TYPE:
  	case REAL_TYPE:
  	  data_type = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (t)));
diff -Nrcpad gcc-13.2.0/gcc/c/c-convert.cc gcc-14.1.0/gcc/c/c-convert.cc
*** gcc-13.2.0/gcc/c/c-convert.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-convert.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Language-level data type conversion for GNU C.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Language-level data type conversion for GNU C.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** c_convert (tree type, tree expr, bool in
*** 99,110 ****
      return fold_convert_loc (loc, type, expr);
    if (TREE_CODE (TREE_TYPE (expr)) == ERROR_MARK)
      return error_mark_node;
!   if (TREE_CODE (TREE_TYPE (expr)) == VOID_TYPE)
      {
        error ("void value not ignored as it ought to be");
        return error_mark_node;
      }
  
    switch (code)
      {
      case VOID_TYPE:
--- 99,124 ----
      return fold_convert_loc (loc, type, expr);
    if (TREE_CODE (TREE_TYPE (expr)) == ERROR_MARK)
      return error_mark_node;
!   if (VOID_TYPE_P (TREE_TYPE (expr)))
      {
        error ("void value not ignored as it ought to be");
        return error_mark_node;
      }
  
+   {
+     tree false_value, true_value;
+     if (c_hardbool_type_attr (type, &false_value, &true_value))
+       {
+ 	bool save = in_late_binary_op;
+ 	in_late_binary_op = true;
+ 	expr = c_objc_common_truthvalue_conversion (input_location, expr);
+ 	in_late_binary_op = save;
+ 
+ 	return fold_build3_loc (loc, COND_EXPR, type,
+ 				expr, true_value, false_value);
+       }
+   }
+ 
    switch (code)
      {
      case VOID_TYPE:
*************** c_convert (tree type, tree expr, bool in
*** 117,125 ****
        gcc_fallthrough ();
  
      case INTEGER_TYPE:
        if (sanitize_flags_p (SANITIZE_FLOAT_CAST)
  	  && current_function_decl != NULL_TREE
! 	  && TREE_CODE (TREE_TYPE (expr)) == REAL_TYPE
  	  && COMPLETE_TYPE_P (type))
  	{
  	  expr = save_expr (expr);
--- 131,140 ----
        gcc_fallthrough ();
  
      case INTEGER_TYPE:
+     case BITINT_TYPE:
        if (sanitize_flags_p (SANITIZE_FLOAT_CAST)
  	  && current_function_decl != NULL_TREE
! 	  && SCALAR_FLOAT_TYPE_P (TREE_TYPE (expr))
  	  && COMPLETE_TYPE_P (type))
  	{
  	  expr = save_expr (expr);
*************** c_convert (tree type, tree expr, bool in
*** 135,142 ****
  
      case BOOLEAN_TYPE:
      convert_to_boolean:
!       return fold_convert_loc
! 	(loc, type, c_objc_common_truthvalue_conversion (input_location, expr));
  
      case POINTER_TYPE:
        /* The type nullptr_t may be converted to a pointer type.  The result is
--- 150,156 ----
  
      case BOOLEAN_TYPE:
      convert_to_boolean:
!       return c_objc_common_truthvalue_conversion (input_location, expr, type);
  
      case POINTER_TYPE:
        /* The type nullptr_t may be converted to a pointer type.  The result is
diff -Nrcpad gcc-13.2.0/gcc/c/c-decl.cc gcc-14.1.0/gcc/c/c-decl.cc
*** gcc-13.2.0/gcc/c/c-decl.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-decl.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Process declarations and variables for C compiler.
!    Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Process declarations and variables for C compiler.
!    Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 61,66 ****
--- 61,67 ----
  #include "context.h"  /* For 'g'.  */
  #include "omp-general.h"
  #include "omp-offload.h"  /* For offload_vars.  */
+ #include "c-parser.h"
  
  #include "tree-pretty-print.h"
  
*************** static bool undef_nested_function;
*** 157,165 ****
     the attribute lists.  */
  vec<c_omp_declare_target_attr, va_gc> *current_omp_declare_target_attribute;
  
! /* If non-zero, we are inside of
!    #pragma omp begin assumes ... #pragma omp end assumes region.  */
! int current_omp_begin_assumes;
  
  /* Each c_binding structure describes one binding of an identifier to
     a decl.  All the decls in a scope - irrespective of namespace - are
--- 158,167 ----
     the attribute lists.  */
  vec<c_omp_declare_target_attr, va_gc> *current_omp_declare_target_attribute;
  
! /* Vector of
!    #pragma omp begin assumes ... #pragma omp end assumes regions
!    we are in.  */
! vec<c_omp_begin_assumes_data, va_gc> *current_omp_begin_assumes;
  
  /* Each c_binding structure describes one binding of an identifier to
     a decl.  All the decls in a scope - irrespective of namespace - are
*************** i_label_binding (tree node)
*** 323,339 ****
  #define I_LABEL_DECL(node) \
   (I_LABEL_BINDING(node) ? I_LABEL_BINDING(node)->decl : 0)
  
  /* The resulting tree type.  */
  
! union GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
         chain_next ("(union lang_tree_node *) c_tree_chain_next (&%h.generic)"))) lang_tree_node
   {
    union tree_node GTY ((tag ("0"),
  			desc ("tree_node_structure (&%h)")))
      generic;
    struct lang_identifier GTY ((tag ("1"))) identifier;
  };
  
  /* Track bindings and other things that matter for goto warnings.  For
     efficiency, we do not gather all the decls at the point of
     definition.  Instead, we point into the bindings structure.  As
--- 325,370 ----
  #define I_LABEL_DECL(node) \
   (I_LABEL_BINDING(node) ? I_LABEL_BINDING(node)->decl : 0)
  
+ /* Used by C_TOKEN_VEC tree.  */
+ struct GTY (()) c_tree_token_vec {
+   struct tree_base base;
+   vec<c_token, va_gc> *tokens;
+ };
+ 
+ STATIC_ASSERT (sizeof (c_tree_token_vec) == sizeof (c_tree_token_vec_struct));
+ STATIC_ASSERT (offsetof (c_tree_token_vec, tokens)
+ 	       == offsetof (c_tree_token_vec_struct, tokens));
+ 
  /* The resulting tree type.  */
  
! union GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE + 2 * (TREE_CODE (&%h.generic) == C_TOKEN_VEC)"),
         chain_next ("(union lang_tree_node *) c_tree_chain_next (&%h.generic)"))) lang_tree_node
   {
    union tree_node GTY ((tag ("0"),
  			desc ("tree_node_structure (&%h)")))
      generic;
    struct lang_identifier GTY ((tag ("1"))) identifier;
+   struct c_tree_token_vec GTY ((tag ("2"))) c_token_vec;
  };
  
+ /* Langhook for tree_size.  */
+ size_t
+ c_tree_size (enum tree_code code)
+ {
+   gcc_checking_assert (code >= NUM_TREE_CODES);
+   switch (code)
+     {
+     case C_TOKEN_VEC: return sizeof (c_tree_token_vec);
+     default:
+       switch (TREE_CODE_CLASS (code))
+ 	{
+ 	case tcc_declaration: return sizeof (tree_decl_non_common);
+ 	case tcc_type: return sizeof (tree_type_non_common);
+ 	default: gcc_unreachable ();
+ 	}
+     }
+ }
+ 
  /* Track bindings and other things that matter for goto warnings.  For
     efficiency, we do not gather all the decls at the point of
     definition.  Instead, we point into the bindings structure.  As
*************** public:
*** 603,608 ****
--- 634,669 ----
    auto_vec<tree> typedefs_seen;
  };
  
+ 
+ /* Hash table for structs and unions.  */
+ struct c_struct_hasher : ggc_ptr_hash<tree_node>
+ {
+   static hashval_t hash (tree t);
+   static bool equal (tree, tree);
+ };
+ 
+ /* Hash an RECORD OR UNION.  */
+ hashval_t
+ c_struct_hasher::hash (tree type)
+ {
+   inchash::hash hstate;
+ 
+   hstate.add_int (TREE_CODE (type));
+   hstate.add_object (TYPE_NAME (type));
+ 
+   return hstate.end ();
+ }
+ 
+ /* Compare two RECORD or UNION types.  */
+ bool
+ c_struct_hasher::equal (tree t1,  tree t2)
+ {
+   return comptypes_equiv_p (t1, t2);
+ }
+ 
+ /* All tagged typed so that TYPE_CANONICAL can be set correctly.  */
+ static GTY (()) hash_table<c_struct_hasher> *c_struct_htab;
+ 
  /* Information for the struct or union currently being parsed, or
     NULL if not parsing a struct or union.  */
  static class c_struct_parse_info *struct_parse_info;
*************** static tree grokdeclarator (const struct
*** 616,623 ****
  			    bool *, enum deprecated_states);
  static tree grokparms (struct c_arg_info *, bool);
  static void layout_array_type (tree);
- static void warn_defaults_to (location_t, int, const char *, ...)
-     ATTRIBUTE_GCC_DIAG(3,4);
  static const char *header_for_builtin_fn (tree);
  
  /* T is a statement.  Add it to the statement-tree.  This is the
--- 677,682 ----
*************** decl_jump_unsafe (tree decl)
*** 681,686 ****
--- 740,750 ----
    if (VAR_P (decl) && C_DECL_COMPOUND_LITERAL_P (decl))
      return false;
  
+   if (flag_openmp
+       && VAR_P (decl)
+       && lookup_attribute ("omp allocate", DECL_ATTRIBUTES (decl)))
+     return true;
+ 
    /* Always warn about crossing variably modified types.  */
    if ((VAR_P (decl) || TREE_CODE (decl) == TYPE_DECL)
        && c_type_variably_modified_p (TREE_TYPE (decl)))
*************** c_print_identifier (FILE *file, tree nod
*** 724,729 ****
--- 788,802 ----
    c_binding_oracle = save;
  }
  
+ /* Establish that the scope contains declarations that are sensitive to
+    jumps that cross a binding.  Together with decl_jump_unsafe, this is
+    used to diagnose such jumps.  */
+ void
+ c_mark_decl_jump_unsafe_in_current_scope ()
+ {
+   current_scope->has_jump_unsafe_decl = 1;
+ }
+ 
  /* Establish a binding between NAME, an IDENTIFIER_NODE, and DECL,
     which may be any of several kinds of DECL or TYPE or error_mark_node,
     in the scope SCOPE.  */
*************** update_label_decls (struct c_scope *scop
*** 1155,1170 ****
      }
  }
  
- /* Set the TYPE_CONTEXT of all of TYPE's variants to CONTEXT.  */
- 
- static void
- set_type_context (tree type, tree context)
- {
-   for (type = TYPE_MAIN_VARIANT (type); type;
-        type = TYPE_NEXT_VARIANT (type))
-     TYPE_CONTEXT (type) = context;
- }
- 
  /* Exit a scope.  Restore the state of the identifier-decl mappings
     that were in effect when this scope was entered.  Return a BLOCK
     node containing all the DECLs in this scope that are of interest
--- 1228,1233 ----
*************** pop_scope (void)
*** 1253,1259 ****
  	case ENUMERAL_TYPE:
  	case UNION_TYPE:
  	case RECORD_TYPE:
- 	  set_type_context (p, context);
  
  	  /* Types may not have tag-names, in which case the type
  	     appears in the bindings list with b->id NULL.  */
--- 1316,1321 ----
*************** pop_scope (void)
*** 1364,1375 ****
  	     the TRANSLATION_UNIT_DECL.  This makes same_translation_unit_p
  	     work.  */
  	  if (scope == file_scope)
- 	    {
  	      DECL_CONTEXT (p) = context;
- 	      if (TREE_CODE (p) == TYPE_DECL
- 		  && TREE_TYPE (p) != error_mark_node)
- 		set_type_context (TREE_TYPE (p), context);
- 	    }
  
  	  gcc_fallthrough ();
  	  /* Parameters go in DECL_ARGUMENTS, not BLOCK_VARS, and have
--- 1426,1432 ----
*************** pop_file_scope (void)
*** 1476,1482 ****
  }
  
  /* Whether we are curently inside the initializer for an
!    underspecified object definition (C2x auto or constexpr).  */
  static bool in_underspecified_init;
  
  /* Start an underspecified object definition for NAME at LOC.  This
--- 1533,1539 ----
  }
  
  /* Whether we are curently inside the initializer for an
!    underspecified object definition (C23 auto or constexpr).  */
  static bool in_underspecified_init;
  
  /* Start an underspecified object definition for NAME at LOC.  This
*************** diagnose_arglist_conflict (tree newdecl,
*** 1901,1907 ****
  	  break;
  	}
  
!       if (c_type_promotes_to (type) != type)
  	{
  	  inform (input_location, "an argument type that has a default "
  		  "promotion cannot match an empty parameter name list "
--- 1958,1965 ----
  	  break;
  	}
  
!       if (!error_operand_p (type)
! 	  && c_type_promotes_to (type) != type)
  	{
  	  inform (input_location, "an argument type that has a default "
  		  "promotion cannot match an empty parameter name list "
*************** locate_old_decl (tree decl)
*** 2009,2014 ****
--- 2067,2094 ----
  	    decl, TREE_TYPE (decl));
  }
  
+ 
+ /* Helper function.  For a tagged type, it finds the declaration
+    for a visible tag declared in the same scope if such a
+    declaration exists.  */
+ static tree
+ previous_tag (tree type)
+ {
+   struct c_binding *b = NULL;
+   tree name = TYPE_NAME (type);
+ 
+   if (name)
+     b = I_TAG_BINDING (name);
+ 
+   if (b)
+     b = b->shadowed;
+ 
+   if (b && B_IN_CURRENT_SCOPE (b))
+     return b->decl;
+ 
+   return NULL_TREE;
+ }
+ 
  /* Subroutine of duplicate_decls.  Compare NEWDECL to OLDDECL.
     Returns true if the caller should proceed to merge the two, false
     if OLDDECL should simply be discarded.  As a side effect, issues
*************** diagnose_mismatched_decls (tree newdecl,
*** 2062,2070 ****
       given scope.  */
    if (TREE_CODE (olddecl) == CONST_DECL)
      {
!       auto_diagnostic_group d;
!       error ("redeclaration of enumerator %q+D", newdecl);
!       locate_old_decl (olddecl);
        return false;
      }
  
--- 2142,2165 ----
       given scope.  */
    if (TREE_CODE (olddecl) == CONST_DECL)
      {
!       if (flag_isoc23
! 	  && TYPE_NAME (DECL_CONTEXT (newdecl))
! 	  && DECL_CONTEXT (newdecl) != DECL_CONTEXT (olddecl)
! 	  && TYPE_NAME (DECL_CONTEXT (newdecl)) == TYPE_NAME (DECL_CONTEXT (olddecl)))
! 	{
! 	  if (!simple_cst_equal (DECL_INITIAL (olddecl), DECL_INITIAL (newdecl)))
! 	    {
! 	      auto_diagnostic_group d;
! 	      error ("conflicting redeclaration of enumerator %q+D", newdecl);
! 	      locate_old_decl (olddecl);
! 	    }
! 	}
!       else
! 	{
! 	  auto_diagnostic_group d;
! 	  error ("redeclaration of enumerator %q+D", newdecl);
! 	  locate_old_decl (olddecl);
! 	}
        return false;
      }
  
*************** diagnose_mismatched_decls (tree newdecl,
*** 2218,2227 ****
  	}
      }
    /* Warn about enum/integer type mismatches.  They are compatible types
!      (C2X 6.7.2.2/5), but may pose portability problems.  */
    else if (enum_and_int_p
  	   && TREE_CODE (newdecl) != TYPE_DECL
! 	   /* Don't warn about about acc_on_device built-in redeclaration,
  	      the built-in is declared with int rather than enum because
  	      the enum isn't intrinsic.  */
  	   && !(TREE_CODE (olddecl) == FUNCTION_DECL
--- 2313,2322 ----
  	}
      }
    /* Warn about enum/integer type mismatches.  They are compatible types
!      (C23 6.7.2.2/5), but may pose portability problems.  */
    else if (enum_and_int_p
  	   && TREE_CODE (newdecl) != TYPE_DECL
! 	   /* Don't warn about acc_on_device built-in redeclaration,
  	      the built-in is declared with int rather than enum because
  	      the enum isn't intrinsic.  */
  	   && !(TREE_CODE (olddecl) == FUNCTION_DECL
*************** diagnose_mismatched_decls (tree newdecl,
*** 2318,2338 ****
  	{
  	  if (DECL_INITIAL (olddecl))
  	    {
! 	      /* If both decls are in the same TU and the new declaration
! 		 isn't overriding an extern inline reject the new decl.
! 		 In c99, no overriding is allowed in the same translation
! 		 unit.  */
! 	      if ((!DECL_EXTERN_INLINE (olddecl)
! 		   || DECL_EXTERN_INLINE (newdecl)
! 		   || (!flag_gnu89_inline
! 		       && (!DECL_DECLARED_INLINE_P (olddecl)
! 			   || !lookup_attribute ("gnu_inline",
! 						 DECL_ATTRIBUTES (olddecl)))
! 		       && (!DECL_DECLARED_INLINE_P (newdecl)
! 			   || !lookup_attribute ("gnu_inline",
! 						 DECL_ATTRIBUTES (newdecl))))
! 		  )
! 		  && same_translation_unit_p (newdecl, olddecl))
  		{
  		  auto_diagnostic_group d;
  		  error ("redefinition of %q+D", newdecl);
--- 2413,2430 ----
  	{
  	  if (DECL_INITIAL (olddecl))
  	    {
! 	      /* If the new declaration isn't overriding an extern inline
! 		 reject the new decl. In c99, no overriding is allowed
! 		 in the same translation unit.  */
! 	      if (!DECL_EXTERN_INLINE (olddecl)
! 		  || DECL_EXTERN_INLINE (newdecl)
! 		  || (!flag_gnu89_inline
! 		      && (!DECL_DECLARED_INLINE_P (olddecl)
! 			  || !lookup_attribute ("gnu_inline",
! 						DECL_ATTRIBUTES (olddecl)))
! 		      && (!DECL_DECLARED_INLINE_P (newdecl)
! 			  || !lookup_attribute ("gnu_inline",
! 						DECL_ATTRIBUTES (newdecl)))))
  		{
  		  auto_diagnostic_group d;
  		  error ("redefinition of %q+D", newdecl);
*************** diagnose_mismatched_decls (tree newdecl,
*** 2442,2449 ****
  	  return false;
  	}
  
!       /* Multiple initialized definitions are not allowed (6.9p3,5).  */
!       if (DECL_INITIAL (newdecl) && DECL_INITIAL (olddecl))
  	{
  	  auto_diagnostic_group d;
  	  error ("redefinition of %q+D", newdecl);
--- 2534,2553 ----
  	  return false;
  	}
  
!       /* Multiple initialized definitions are not allowed (6.9p3,5).
! 	 For this purpose, C23 makes it clear that thread-local
! 	 declarations without extern are definitions, not tentative
! 	 definitions, whether or not they have initializers.  The
! 	 wording before C23 was unclear; literally it would have made
! 	 uninitialized thread-local declarations into tentative
! 	 definitions only if they also used static, but without saying
! 	 explicitly whether or not other cases count as
! 	 definitions at all.  */
!       if ((DECL_INITIAL (newdecl) && DECL_INITIAL (olddecl))
! 	  || (flag_isoc23
! 	      && DECL_THREAD_LOCAL_P (newdecl)
! 	      && !DECL_EXTERNAL (newdecl)
! 	      && !DECL_EXTERNAL (olddecl)))
  	{
  	  auto_diagnostic_group d;
  	  error ("redefinition of %q+D", newdecl);
*************** merge_decls (tree newdecl, tree olddecl,
*** 2746,2756 ****
       system header. Otherwise, keep source location of definition rather than
       declaration and of prototype rather than non-prototype unless that
       prototype is built-in.  */
!   if (CODE_CONTAINS_STRUCT (TREE_CODE (olddecl), TS_DECL_WITH_VIS)
        && DECL_IN_SYSTEM_HEADER (olddecl)
        && !DECL_IN_SYSTEM_HEADER (newdecl) )
      DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl);
!   else if (CODE_CONTAINS_STRUCT (TREE_CODE (olddecl), TS_DECL_WITH_VIS)
  	   && DECL_IN_SYSTEM_HEADER (newdecl)
  	   && !DECL_IN_SYSTEM_HEADER (olddecl))
      DECL_SOURCE_LOCATION (olddecl) = DECL_SOURCE_LOCATION (newdecl);
--- 2850,2860 ----
       system header. Otherwise, keep source location of definition rather than
       declaration and of prototype rather than non-prototype unless that
       prototype is built-in.  */
!   if (HAS_DECL_ASSEMBLER_NAME_P (olddecl)
        && DECL_IN_SYSTEM_HEADER (olddecl)
        && !DECL_IN_SYSTEM_HEADER (newdecl) )
      DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl);
!   else if (HAS_DECL_ASSEMBLER_NAME_P (olddecl)
  	   && DECL_IN_SYSTEM_HEADER (newdecl)
  	   && !DECL_IN_SYSTEM_HEADER (olddecl))
      DECL_SOURCE_LOCATION (olddecl) = DECL_SOURCE_LOCATION (newdecl);
*************** merge_decls (tree newdecl, tree olddecl,
*** 2777,2783 ****
    if (VAR_P (olddecl) && C_DECL_THREADPRIVATE_P (olddecl))
      C_DECL_THREADPRIVATE_P (newdecl) = 1;
  
!   if (CODE_CONTAINS_STRUCT (TREE_CODE (olddecl), TS_DECL_WITH_VIS))
      {
        /* Copy the assembler name.
  	 Currently, it can only be defined in the prototype.  */
--- 2881,2887 ----
    if (VAR_P (olddecl) && C_DECL_THREADPRIVATE_P (olddecl))
      C_DECL_THREADPRIVATE_P (newdecl) = 1;
  
!   if (HAS_DECL_ASSEMBLER_NAME_P (olddecl))
      {
        /* Copy the assembler name.
  	 Currently, it can only be defined in the prototype.  */
*************** pushdecl (tree x)
*** 3216,3223 ****
  
    /* Must set DECL_CONTEXT for everything not at file scope or
       DECL_FILE_SCOPE_P won't work.  Local externs don't count
!      unless they have initializers (which generate code).  */
    if (current_function_decl
        && (!VAR_OR_FUNCTION_DECL_P (x)
  	  || DECL_INITIAL (x) || !TREE_PUBLIC (x)))
      DECL_CONTEXT (x) = current_function_decl;
--- 3320,3330 ----
  
    /* Must set DECL_CONTEXT for everything not at file scope or
       DECL_FILE_SCOPE_P won't work.  Local externs don't count
!      unless they have initializers (which generate code).  We
!      also exclude CONST_DECLs because enumerators will get the
!      type of the enum as context.  */
    if (current_function_decl
+       && TREE_CODE (x) != CONST_DECL
        && (!VAR_OR_FUNCTION_DECL_P (x)
  	  || DECL_INITIAL (x) || !TREE_PUBLIC (x)))
      DECL_CONTEXT (x) = current_function_decl;
*************** pushdecl (tree x)
*** 3360,3377 ****
  	 type to the composite of all the types of that declaration.
  	 After the consistency checks, it will be reset to the
  	 composite of the visible types only.  */
!       if (b && (TREE_PUBLIC (x) || same_translation_unit_p (x, b->decl))
! 	  && b->u.type)
  	TREE_TYPE (b->decl) = b->u.type;
  
!       /* The point of the same_translation_unit_p check here is,
! 	 we want to detect a duplicate decl for a construct like
! 	 foo() { extern bar(); } ... static bar();  but not if
! 	 they are in different translation units.  In any case,
! 	 the static does not go in the externals scope.  */
!       if (b
! 	  && (TREE_PUBLIC (x) || same_translation_unit_p (x, b->decl))
! 	  && duplicate_decls (x, b->decl))
  	{
  	  tree thistype;
  	  if (vistype)
--- 3467,3477 ----
  	 type to the composite of all the types of that declaration.
  	 After the consistency checks, it will be reset to the
  	 composite of the visible types only.  */
!       if (b && b->u.type)
  	TREE_TYPE (b->decl) = b->u.type;
  
!       /* the static does not go in the externals scope.  */
!       if (b && duplicate_decls (x, b->decl))
  	{
  	  tree thistype;
  	  if (vistype)
*************** pushdecl (tree x)
*** 3461,3472 ****
  }
  
  
! /* Issue a warning about implicit function declaration.  ID is the function
     identifier, OLDDECL is a declaration of the function in a different scope,
     or NULL_TREE.  */
  
  static void
! implicit_decl_warning (location_t loc, tree id, tree olddecl)
  {
    if (!warn_implicit_function_declaration)
      return;
--- 3561,3572 ----
  }
  
  
! /* Issue a permerror about implicit function declaration.  ID is the function
     identifier, OLDDECL is a declaration of the function in a different scope,
     or NULL_TREE.  */
  
  static void
! implicit_decl_permerror (location_t loc, tree id, tree olddecl)
  {
    if (!warn_implicit_function_declaration)
      return;
*************** implicit_decl_warning (location_t loc, t
*** 3483,3496 ****
  	{
  	  gcc_rich_location richloc (loc);
  	  richloc.add_fixit_replace (suggestion);
! 	  warned = pedwarn (&richloc, OPT_Wimplicit_function_declaration,
! 			    "implicit declaration of function %qE;"
! 			    " did you mean %qs?",
! 			    id, suggestion);
  	}
        else
! 	warned = pedwarn (loc, OPT_Wimplicit_function_declaration,
! 			  "implicit declaration of function %qE", id);
      }
    else if (const char *suggestion = hint.suggestion ())
      {
--- 3583,3596 ----
  	{
  	  gcc_rich_location richloc (loc);
  	  richloc.add_fixit_replace (suggestion);
! 	  warned = permerror_opt (&richloc, OPT_Wimplicit_function_declaration,
! 				  "implicit declaration of function %qE;"
! 				  " did you mean %qs?",
! 				  id, suggestion);
  	}
        else
! 	warned = permerror_opt (loc, OPT_Wimplicit_function_declaration,
! 				"implicit declaration of function %qE", id);
      }
    else if (const char *suggestion = hint.suggestion ())
      {
*************** implicitly_declare (location_t loc, tree
*** 3780,3786 ****
  	     then recycle the old declaration but with the new type.  */
  	  if (!C_DECL_IMPLICIT (decl))
  	    {
! 	      implicit_decl_warning (loc, functionid, decl);
  	      C_DECL_IMPLICIT (decl) = 1;
  	    }
  	  if (fndecl_built_in_p (decl))
--- 3880,3886 ----
  	     then recycle the old declaration but with the new type.  */
  	  if (!C_DECL_IMPLICIT (decl))
  	    {
! 	      implicit_decl_permerror (loc, functionid, decl);
  	      C_DECL_IMPLICIT (decl) = 1;
  	    }
  	  if (fndecl_built_in_p (decl))
*************** implicitly_declare (location_t loc, tree
*** 3833,3839 ****
    DECL_EXTERNAL (decl) = 1;
    TREE_PUBLIC (decl) = 1;
    C_DECL_IMPLICIT (decl) = 1;
!   implicit_decl_warning (loc, functionid, 0);
    asmspec_tree = maybe_apply_renaming_pragma (decl, /*asmname=*/NULL);
    if (asmspec_tree)
      set_user_assembler_name (decl, TREE_STRING_POINTER (asmspec_tree));
--- 3933,3939 ----
    DECL_EXTERNAL (decl) = 1;
    TREE_PUBLIC (decl) = 1;
    C_DECL_IMPLICIT (decl) = 1;
!   implicit_decl_permerror (loc, functionid, 0);
    asmspec_tree = maybe_apply_renaming_pragma (decl, /*asmname=*/NULL);
    if (asmspec_tree)
      set_user_assembler_name (decl, TREE_STRING_POINTER (asmspec_tree));
*************** warn_about_goto (location_t goto_loc, tr
*** 3988,3993 ****
--- 4088,4096 ----
    if (c_type_variably_modified_p (TREE_TYPE (decl)))
      error_at (goto_loc,
  	      "jump into scope of identifier with variably modified type");
+   else if (flag_openmp
+ 	   && lookup_attribute ("omp allocate", DECL_ATTRIBUTES (decl)))
+     error_at (goto_loc, "jump skips OpenMP %<allocate%> allocation");
    else
      if (!warning_at (goto_loc, OPT_Wjump_misses_init,
  		     "jump skips variable initialization"))
*************** c_check_switch_jump_warnings (struct c_s
*** 4267,4272 ****
--- 4370,4384 ----
  			     "variably modified type"));
  		  emitted = true;
  		}
+ 	      else if (flag_openmp
+ 		       && lookup_attribute ("omp allocate",
+ 					    DECL_ATTRIBUTES (b->decl)))
+ 		{
+ 		  saw_error = true;
+ 		  error_at (case_loc,
+ 			    "switch jumps over OpenMP %<allocate%> allocation");
+ 		  emitted = true;
+ 		}
  	      else
  		emitted
  		  = warning_at (case_loc, OPT_Wjump_misses_init,
*************** handle_std_noreturn_attribute (tree *nod
*** 4590,4597 ****
      }
  }
  
! /* Table of supported standard (C2x) attributes.  */
! const struct attribute_spec std_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
--- 4702,4709 ----
      }
  }
  
! /* Table of supported standard (C23) attributes.  */
! static const attribute_spec std_attributes[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
*************** const struct attribute_spec std_attribut
*** 4606,4613 ****
    { "nodiscard", 0, 1, false, false, false, false,
      handle_nodiscard_attribute, NULL },
    { "noreturn", 0, 0, false, false, false, false,
!     handle_std_noreturn_attribute, NULL },
!   { NULL, 0, 0, false, false, false, false, NULL, NULL }
  };
  
  /* Create the predefined scalar types of C,
--- 4718,4729 ----
    { "nodiscard", 0, 1, false, false, false, false,
      handle_nodiscard_attribute, NULL },
    { "noreturn", 0, 0, false, false, false, false,
!     handle_std_noreturn_attribute, NULL }
! };
! 
! const scoped_attribute_specs std_attribute_table =
! {
!   nullptr, { std_attributes }
  };
  
  /* Create the predefined scalar types of C,
*************** c_init_decl_processing (void)
*** 4623,4630 ****
    /* Initialize reserved words for parser.  */
    c_parse_init ();
  
-   register_scoped_attributes (std_attribute_table, NULL);
- 
    current_function_decl = NULL_TREE;
  
    gcc_obstack_init (&parser_obstack);
--- 4739,4744 ----
*************** shadow_tag_warned (const struct c_declsp
*** 4937,4942 ****
--- 5051,5058 ----
  	      if (t == NULL_TREE)
  		{
  		  t = make_node (code);
+ 		  if (flag_isoc23 && code != ENUMERAL_TYPE)
+ 		    SET_TYPE_STRUCTURAL_EQUALITY (t);
  		  pushtag (input_location, name, t);
  		}
  	    }
*************** c_decl_attributes (tree *node, tree attr
*** 5319,5324 ****
--- 5435,5491 ----
  	    attributes
  	      = tree_cons (get_identifier ("omp declare target nohost"),
  			   NULL_TREE, attributes);
+ 
+ 	  int indirect
+ 	    = current_omp_declare_target_attribute->last ().indirect;
+ 	  if (indirect && !lookup_attribute ("omp declare target indirect",
+ 					     attributes))
+ 	    attributes
+ 	      = tree_cons (get_identifier ("omp declare target indirect"),
+ 			   NULL_TREE, attributes);
+ 	}
+     }
+ 
+   if (flag_openmp || flag_openmp_simd)
+     {
+       bool diagnosed = false;
+       for (tree *pa = &attributes; *pa; )
+ 	{
+ 	  if (is_attribute_namespace_p ("omp", *pa))
+ 	    {
+ 	      tree name = get_attribute_name (*pa);
+ 	      if (is_attribute_p ("directive", name)
+ 		  || is_attribute_p ("sequence", name)
+ 		  || is_attribute_p ("decl", name))
+ 		{
+ 		  const char *p = NULL;
+ 		  if (TREE_VALUE (*pa) == NULL_TREE)
+ 		    p = IDENTIFIER_POINTER (name);
+ 		  for (tree a = TREE_VALUE (*pa); a; a = TREE_CHAIN (a))
+ 		    {
+ 		      tree d = TREE_VALUE (a);
+ 		      gcc_assert (TREE_CODE (d) == C_TOKEN_VEC);
+ 		      if (TREE_PUBLIC (d)
+ 			  && (VAR_P (*node)
+ 			      || TREE_CODE (*node) == FUNCTION_DECL)
+ 			  && c_maybe_parse_omp_decl (*node, d))
+ 			continue;
+ 		      p = TREE_PUBLIC (d) ? "decl" : "directive";
+ 		    }
+ 		  if (p && !diagnosed)
+ 		    {
+ 		      error ("%<omp::%s%> not allowed to be specified in "
+ 			     "this context", p);
+ 		      diagnosed = true;
+ 		    }
+ 		  if (p)
+ 		    {
+ 		      *pa = TREE_CHAIN (*pa);
+ 		      continue;
+ 		    }
+ 		}
+ 	    }
+ 	  pa = &TREE_CHAIN (*pa);
  	}
      }
  
*************** start_decl (struct c_declarator *declara
*** 5354,5359 ****
--- 5521,5527 ----
  	    location_t *lastloc /* = NULL */)
  {
    tree decl;
+   tree old_decl;
    tree tem;
    tree expr = NULL_TREE;
    enum deprecated_states deprecated_state = DEPRECATED_NORMAL;
*************** start_decl (struct c_declarator *declara
*** 5374,5390 ****
    if (!decl || decl == error_mark_node)
      return NULL_TREE;
  
!   if (tree lastdecl = lastloc ? lookup_last_decl (decl) : NULL_TREE)
      if (lastdecl != error_mark_node)
        *lastloc = DECL_SOURCE_LOCATION (lastdecl);
  
!   if (expr)
      add_stmt (fold_convert (void_type_node, expr));
  
    if (TREE_CODE (decl) != FUNCTION_DECL && MAIN_NAME_P (DECL_NAME (decl))
        && TREE_PUBLIC (decl))
      warning (OPT_Wmain, "%q+D is usually a function", decl);
  
    if (initialized)
      /* Is it valid for this decl to have an initializer at all?
         If not, set INITIALIZED to zero, which will indirectly
--- 5542,5566 ----
    if (!decl || decl == error_mark_node)
      return NULL_TREE;
  
!   old_decl = lookup_last_decl (decl);
! 
!   if (tree lastdecl = lastloc ? old_decl : NULL_TREE)
      if (lastdecl != error_mark_node)
        *lastloc = DECL_SOURCE_LOCATION (lastdecl);
  
!   /* Make sure the size expression is evaluated at this point.  */
!   if (expr && !current_scope->parm_flag)
      add_stmt (fold_convert (void_type_node, expr));
  
    if (TREE_CODE (decl) != FUNCTION_DECL && MAIN_NAME_P (DECL_NAME (decl))
        && TREE_PUBLIC (decl))
      warning (OPT_Wmain, "%q+D is usually a function", decl);
  
+   if (warn_missing_variable_declarations && VAR_P (decl)
+       && !DECL_EXTERNAL (decl) && TREE_PUBLIC (decl) && old_decl == NULL_TREE)
+     warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wmissing_variable_declarations,
+ 		"no previous declaration for %qD", decl);
+ 
    if (initialized)
      /* Is it valid for this decl to have an initializer at all?
         If not, set INITIALIZED to zero, which will indirectly
*************** finish_decl (tree decl, location_t init_
*** 5714,5723 ****
  	      /* A static variable with an incomplete type
  		 is an error if it is initialized.
  		 Also if it is not file scope.
  		 Otherwise, let it through, but if it is not `extern'
  		 then it may cause an error message later.  */
  	      ? (DECL_INITIAL (decl) != NULL_TREE
! 		 || !DECL_FILE_SCOPE_P (decl))
  	      /* An automatic variable with an incomplete type
  		 is an error.  */
  	      : !DECL_EXTERNAL (decl)))
--- 5890,5901 ----
  	      /* A static variable with an incomplete type
  		 is an error if it is initialized.
  		 Also if it is not file scope.
+ 		 Also if it is thread-local (in C23).
  		 Otherwise, let it through, but if it is not `extern'
  		 then it may cause an error message later.  */
  	      ? (DECL_INITIAL (decl) != NULL_TREE
! 		 || !DECL_FILE_SCOPE_P (decl)
! 		 || (flag_isoc23 && DECL_THREAD_LOCAL_P (decl)))
  	      /* An automatic variable with an incomplete type
  		 is an error.  */
  	      : !DECL_EXTERNAL (decl)))
*************** get_parm_array_spec (const struct c_parm
*** 6060,6066 ****
  		     index.  */
  		  HOST_WIDE_INT n = tree_to_shwi (max) + 1;
  		  char buf[40];
! 		  sprintf (buf, "%lu", (unsigned long)n);
  		  spec += buf;
  		}
  	      continue;
--- 6238,6244 ----
  		     index.  */
  		  HOST_WIDE_INT n = tree_to_shwi (max) + 1;
  		  char buf[40];
! 		  sprintf (buf, HOST_WIDE_INT_PRINT_UNSIGNED, n);
  		  spec += buf;
  		}
  	      continue;
*************** get_parm_array_spec (const struct c_parm
*** 6133,6139 ****
  
  	  char buf[40];
  	  unsigned HOST_WIDE_INT n = tree_to_uhwi (nelts);
! 	  sprintf (buf, "%llu", (unsigned long long)n);
  	  spec += buf;
  	  break;
  	}
--- 6311,6317 ----
  
  	  char buf[40];
  	  unsigned HOST_WIDE_INT n = tree_to_uhwi (nelts);
! 	  sprintf (buf, HOST_WIDE_INT_PRINT_UNSIGNED, n);
  	  spec += buf;
  	  break;
  	}
*************** mark_forward_parm_decls (void)
*** 6207,6213 ****
     literal.  NON_CONST is true if the initializers contain something
     that cannot occur in a constant expression.  If ALIGNAS_ALIGN is nonzero,
     it is the (valid) alignment for this compound literal, as specified
!    with _Alignas.  SCSPECS are the storage class specifiers (C2x) from the
     compound literal.  */
  
  tree
--- 6385,6391 ----
     literal.  NON_CONST is true if the initializers contain something
     that cannot occur in a constant expression.  If ALIGNAS_ALIGN is nonzero,
     it is the (valid) alignment for this compound literal, as specified
!    with _Alignas.  SCSPECS are the storage class specifiers (C23) from the
     compound literal.  */
  
  tree
*************** check_bitfield_type_and_width (location_
*** 6393,6399 ****
    /* Detect invalid bit-field type.  */
    if (TREE_CODE (*type) != INTEGER_TYPE
        && TREE_CODE (*type) != BOOLEAN_TYPE
!       && TREE_CODE (*type) != ENUMERAL_TYPE)
      {
        error_at (loc, "bit-field %qs has invalid type", name);
        *type = unsigned_type_node;
--- 6571,6578 ----
    /* Detect invalid bit-field type.  */
    if (TREE_CODE (*type) != INTEGER_TYPE
        && TREE_CODE (*type) != BOOLEAN_TYPE
!       && TREE_CODE (*type) != ENUMERAL_TYPE
!       && TREE_CODE (*type) != BITINT_TYPE)
      {
        error_at (loc, "bit-field %qs has invalid type", name);
        *type = unsigned_type_node;
*************** check_bitfield_type_and_width (location_
*** 6425,6430 ****
--- 6604,6615 ----
    else
      w = tree_to_uhwi (*width);
  
+   /* Truncation of hardbool false and true representation values is always safe:
+      either the values remain different, or we'll report a problem when creating
+      the narrower type.  */
+   if (c_hardbool_type_attr (*type))
+     return;
+ 
    if (TREE_CODE (*type) == ENUMERAL_TYPE)
      {
        struct lang_type *lt = TYPE_LANG_SPECIFIC (*type);
*************** warn_variable_length_array (tree name, t
*** 6463,6485 ****
      }
  }
  
- /* Print warning about defaulting to int if necessary.  */
- 
- static void
- warn_defaults_to (location_t location, int opt, const char *gmsgid, ...)
- {
-   diagnostic_info diagnostic;
-   va_list ap;
-   rich_location richloc (line_table, location);
- 
-   va_start (ap, gmsgid);
-   diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
-                        flag_isoc99 ? DK_PEDWARN : DK_WARNING);
-   diagnostic.option_index = opt;
-   diagnostic_report_diagnostic (global_dc, &diagnostic);
-   va_end (ap);
- }
- 
  /* Returns the smallest location != UNKNOWN_LOCATION in LOCATIONS,
     considering only those c_declspec_words found in LIST, which
     must be terminated by cdw_number_of_elements.  */
--- 6648,6653 ----
*************** smallest_type_quals_location (const loca
*** 6501,6506 ****
--- 6669,6725 ----
    return loc;
  }
  
+ 
+ /* We attach an artificial TYPE_DECL to pointed-to type
+    and arrange for it to be included in a DECL_EXPR.  This
+    forces the sizes evaluation at a safe point and ensures it
+    is not deferred until e.g. within a deeper conditional context.
+ 
+    PARM contexts have no enclosing statement list that
+    can hold the DECL_EXPR, so we need to use a BIND_EXPR
+    instead, and add it to the list of expressions that
+    need to be evaluated.
+ 
+    TYPENAME contexts do have an enclosing statement list,
+    but it would be incorrect to use it, as the size should
+    only be evaluated if the containing expression is
+    evaluated.  We might also be in the middle of an
+    expression with side effects on the pointed-to type size
+    "arguments" prior to the pointer declaration point and
+    the fake TYPE_DECL in the enclosing context would force
+    the size evaluation prior to the side effects.  We therefore
+    use BIND_EXPRs in TYPENAME contexts too.  */
+ static void
+ add_decl_expr (location_t loc, tree type, tree *expr, bool set_name_p)
+ {
+   tree bind = NULL_TREE;
+   if (expr)
+     {
+       bind = build3 (BIND_EXPR, void_type_node, NULL_TREE, NULL_TREE,
+ 		     NULL_TREE);
+       TREE_SIDE_EFFECTS (bind) = 1;
+       BIND_EXPR_BODY (bind) = push_stmt_list ();
+       push_scope ();
+     }
+ 
+   tree decl = build_decl (loc, TYPE_DECL, NULL_TREE, type);
+   pushdecl (decl);
+   DECL_ARTIFICIAL (decl) = 1;
+   add_stmt (build_stmt (DECL_SOURCE_LOCATION (decl), DECL_EXPR, decl));
+   if (set_name_p)
+     TYPE_NAME (type) = decl;
+ 
+   if (bind)
+     {
+       pop_scope ();
+       BIND_EXPR_BODY (bind) = pop_stmt_list (BIND_EXPR_BODY (bind));
+       if (*expr)
+ 	*expr = build2 (COMPOUND_EXPR, void_type_node, *expr, bind);
+       else
+ 	*expr = bind;
+     }
+ }
+ 
  /* Given declspecs and a declarator,
     determine the name and type of the object declared
     and construct a ..._DECL node for it.
*************** grokdeclarator (const struct c_declarato
*** 6581,6590 ****
  
    if (type == NULL_TREE)
      {
!       /* This can occur for auto on a parameter in C2X mode.  Set a
  	 dummy type here so subsequent code can give diagnostics for
  	 this case.  */
!       gcc_assert (declspecs->c2x_auto_p);
        gcc_assert (decl_context == PARM);
        type = declspecs->type = integer_type_node;
      }
--- 6800,6809 ----
  
    if (type == NULL_TREE)
      {
!       /* This can occur for auto on a parameter in C23 mode.  Set a
  	 dummy type here so subsequent code can give diagnostics for
  	 this case.  */
!       gcc_assert (declspecs->c23_auto_p);
        gcc_assert (decl_context == PARM);
        type = declspecs->type = integer_type_node;
      }
*************** grokdeclarator (const struct c_declarato
*** 6705,6711 ****
  
    /* Diagnose defaulting to "int".  */
  
!   if (declspecs->default_int_p && !in_system_header_at (input_location))
      {
        /* Issue a warning if this is an ISO C 99 program or if
  	 -Wreturn-type and this is a function, or if -Wimplicit;
--- 6924,6930 ----
  
    /* Diagnose defaulting to "int".  */
  
!   if (declspecs->default_int_p)
      {
        /* Issue a warning if this is an ISO C 99 program or if
  	 -Wreturn-type and this is a function, or if -Wimplicit;
*************** grokdeclarator (const struct c_declarato
*** 6716,6727 ****
        else
  	{
  	  if (name)
! 	    warn_defaults_to (loc, OPT_Wimplicit_int,
! 			      "type defaults to %<int%> in declaration "
! 			      "of %qE", name);
  	  else
! 	    warn_defaults_to (loc, OPT_Wimplicit_int,
! 			      "type defaults to %<int%> in type name");
  	}
      }
  
--- 6935,6946 ----
        else
  	{
  	  if (name)
! 	    permerror_opt (loc, OPT_Wimplicit_int,
! 			   "type defaults to %<int%> in declaration "
! 			   "of %qE", name);
  	  else
! 	    permerror_opt (loc, OPT_Wimplicit_int,
! 			   "type defaults to %<int%> in type name");
  	}
      }
  
*************** grokdeclarator (const struct c_declarato
*** 6730,6736 ****
       "signed".  */
    if (bitfield && !flag_signed_bitfields && !declspecs->explicit_signed_p
        && TREE_CODE (type) == INTEGER_TYPE)
!     type = unsigned_type_for (type);
  
    /* Figure out the type qualifiers for the declaration.  There are
       two ways a declaration can become qualified.  One is something
--- 6949,6955 ----
       "signed".  */
    if (bitfield && !flag_signed_bitfields && !declspecs->explicit_signed_p
        && TREE_CODE (type) == INTEGER_TYPE)
!     type = c_common_unsigned_type (type);
  
    /* Figure out the type qualifiers for the declaration.  There are
       two ways a declaration can become qualified.  One is something
*************** grokdeclarator (const struct c_declarato
*** 6820,6831 ****
    else if (decl_context != NORMAL && (storage_class != csc_none
  				      || threadp
  				      || constexprp
! 				      || declspecs->c2x_auto_p))
      {
        if (decl_context == PARM
  	  && storage_class == csc_register
  	  && !constexprp
! 	  && !declspecs->c2x_auto_p)
  	;
        else
  	{
--- 7039,7050 ----
    else if (decl_context != NORMAL && (storage_class != csc_none
  				      || threadp
  				      || constexprp
! 				      || declspecs->c23_auto_p))
      {
        if (decl_context == PARM
  	  && storage_class == csc_register
  	  && !constexprp
! 	  && !declspecs->c23_auto_p)
  	;
        else
  	{
*************** grokdeclarator (const struct c_declarato
*** 7412,7420 ****
  		   them for noreturn functions.  The resolution of C11
  		   DR#423 means qualifiers (other than _Atomic) are
  		   actually removed from the return type when
! 		   determining the function type.  */
  		int quals_used = type_quals;
! 		if (flag_isoc11)
  		  quals_used &= TYPE_QUAL_ATOMIC;
  		if (quals_used && VOID_TYPE_P (type) && really_funcdef)
  		  pedwarn (specs_loc, 0,
--- 7631,7642 ----
  		   them for noreturn functions.  The resolution of C11
  		   DR#423 means qualifiers (other than _Atomic) are
  		   actually removed from the return type when
! 		   determining the function type.  For C23, _Atomic is
! 		   removed as well.  */
  		int quals_used = type_quals;
! 		if (flag_isoc23)
! 		  quals_used = 0;
! 		else if (flag_isoc11)
  		  quals_used &= TYPE_QUAL_ATOMIC;
  		if (quals_used && VOID_TYPE_P (type) && really_funcdef)
  		  pedwarn (specs_loc, 0,
*************** grokdeclarator (const struct c_declarato
*** 7482,7536 ****
  
  	       This is expected to happen automatically when the pointed-to
  	       type has a name/declaration of it's own, but special attention
! 	       is required if the type is anonymous.
! 
! 	       We attach an artificial TYPE_DECL to such pointed-to type
! 	       and arrange for it to be included in a DECL_EXPR.  This
! 	       forces the sizes evaluation at a safe point and ensures it
! 	       is not deferred until e.g. within a deeper conditional context.
! 
! 	       PARM contexts have no enclosing statement list that
! 	       can hold the DECL_EXPR, so we need to use a BIND_EXPR
! 	       instead, and add it to the list of expressions that
! 	       need to be evaluated.
! 
! 	       TYPENAME contexts do have an enclosing statement list,
! 	       but it would be incorrect to use it, as the size should
! 	       only be evaluated if the containing expression is
! 	       evaluated.  We might also be in the middle of an
! 	       expression with side effects on the pointed-to type size
! 	       "arguments" prior to the pointer declaration point and
! 	       the fake TYPE_DECL in the enclosing context would force
! 	       the size evaluation prior to the side effects.  We therefore
! 	       use BIND_EXPRs in TYPENAME contexts too.  */
! 	    if (!TYPE_NAME (type)
! 		&& c_type_variably_modified_p (type))
  	      {
! 		tree bind = NULL_TREE;
! 		if (decl_context == TYPENAME || decl_context == PARM)
! 		  {
! 		    bind = build3 (BIND_EXPR, void_type_node, NULL_TREE,
! 				   NULL_TREE, NULL_TREE);
! 		    TREE_SIDE_EFFECTS (bind) = 1;
! 		    BIND_EXPR_BODY (bind) = push_stmt_list ();
! 		    push_scope ();
! 		  }
! 		tree decl = build_decl (loc, TYPE_DECL, NULL_TREE, type);
! 		DECL_ARTIFICIAL (decl) = 1;
! 		pushdecl (decl);
! 		finish_decl (decl, loc, NULL_TREE, NULL_TREE, NULL_TREE);
! 		TYPE_NAME (type) = decl;
! 		if (bind)
! 		  {
! 		    pop_scope ();
! 		    BIND_EXPR_BODY (bind)
! 		      = pop_stmt_list (BIND_EXPR_BODY (bind));
! 		    if (*expr)
! 		      *expr = build2 (COMPOUND_EXPR, void_type_node, *expr,
! 				      bind);
! 		    else
! 		      *expr = bind;
! 		  }
  	      }
  
  	    type = c_build_pointer_type (type);
--- 7704,7716 ----
  
  	       This is expected to happen automatically when the pointed-to
  	       type has a name/declaration of it's own, but special attention
! 	       is required if the type is anonymous. */
! 	    if (!TYPE_NAME (type) && c_type_variably_modified_p (type))
  	      {
! 		bool bind_p = decl_context == TYPENAME
! 			      || decl_context == FIELD
! 			      || decl_context == PARM;
! 		add_decl_expr (loc, type, bind_p ? expr : NULL, true);
  	      }
  
  	    type = c_build_pointer_type (type);
*************** grokdeclarator (const struct c_declarato
*** 7793,7798 ****
--- 7973,7988 ----
  	    if (type_quals)
  	      type = c_build_qualified_type (type, type_quals, orig_qual_type,
  					     orig_qual_indirect);
+ 
+ 	    /* The pointed-to type may need a decl expr (see above).  */
+ 	    if (!TYPE_NAME (type) && c_type_variably_modified_p (type))
+ 	      {
+ 		bool bind_p = decl_context == TYPENAME
+ 			      || decl_context == FIELD
+ 			      || decl_context == PARM;
+ 		add_decl_expr (loc, type, bind_p ? expr : NULL, true);
+ 	      }
+ 
  	    type = c_build_pointer_type (type);
  	    type_quals = array_ptr_quals;
  	    if (type_quals)
*************** grokdeclarator (const struct c_declarato
*** 7995,8000 ****
--- 8185,8211 ----
  		TREE_THIS_VOLATILE (decl) = 1;
  	      }
  	  }
+ 
+ 	/* C99 6.2.2p7: It is invalid (compile-time undefined
+ 	   behavior) to create an 'extern' declaration for a
+ 	   function if there is a global declaration that is
+ 	   'static' and the global declaration is not visible.
+ 	   (If the static declaration _is_ currently visible,
+ 	   the 'extern' declaration is taken to refer to that decl.) */
+ 	if (!initialized
+ 	    && TREE_PUBLIC (decl)
+ 	    && current_scope != file_scope)
+ 	  {
+ 	    tree global_decl  = identifier_global_value (declarator->u.id.id);
+ 	    tree visible_decl = lookup_name (declarator->u.id.id);
+ 
+ 	    if (global_decl
+ 		&& global_decl != visible_decl
+ 		&& VAR_OR_FUNCTION_DECL_P (global_decl)
+ 		&& !TREE_PUBLIC (global_decl))
+ 	      error_at (loc, "function previously declared %<static%> "
+ 			"redeclared %<extern%>");
+ 	  }
        }
      else
        {
*************** grokparms (struct c_arg_info *arg_info,
*** 8202,8208 ****
        error ("%<[*]%> not allowed in other than function prototype scope");
      }
  
!   if (arg_types == NULL_TREE && !funcdef_flag && !flag_isoc2x
        && !in_system_header_at (input_location))
      warning (OPT_Wstrict_prototypes,
  	     "function declaration isn%'t a prototype");
--- 8413,8419 ----
        error ("%<[*]%> not allowed in other than function prototype scope");
      }
  
!   if (arg_types == NULL_TREE && !funcdef_flag && !flag_isoc23
        && !in_system_header_at (input_location))
      warning (OPT_Wstrict_prototypes,
  	     "function declaration isn%'t a prototype");
*************** grokparms (struct c_arg_info *arg_info,
*** 8215,8222 ****
      {
        if (!funcdef_flag)
  	{
! 	  pedwarn (input_location, 0, "parameter names (without types) in "
! 		   "function declaration");
  	  arg_info->parms = NULL_TREE;
  	}
        else
--- 8426,8435 ----
      {
        if (!funcdef_flag)
  	{
! 	  permerror_opt (input_location,
! 			 OPT_Wdeclaration_missing_parameter_type,
! 			 "parameter names (without types) in "
! 			 "function declaration");
  	  arg_info->parms = NULL_TREE;
  	}
        else
*************** grokparms (struct c_arg_info *arg_info,
*** 8230,8237 ****
        tree parm, type, typelt;
        unsigned int parmno;
  
!       /* In C2X, convert () to (void).  */
!       if (flag_isoc2x
  	  && !arg_types
  	  && !arg_info->parms
  	  && !arg_info->no_named_args_stdarg_p)
--- 8443,8450 ----
        tree parm, type, typelt;
        unsigned int parmno;
  
!       /* In C23, convert () to (void).  */
!       if (flag_isoc23
  	  && !arg_types
  	  && !arg_info->parms
  	  && !arg_info->no_named_args_stdarg_p)
*************** get_parm_info (bool ellipsis, tree expr)
*** 8432,8442 ****
  	  if (TREE_CODE (decl) != UNION_TYPE || b->id != NULL_TREE)
  	    {
  	      if (b->id)
! 		/* The %s will be one of 'struct', 'union', or 'enum'.  */
! 		warning_at (b->locus, 0,
! 			    "%<%s %E%> declared inside parameter list"
! 			    " will not be visible outside of this definition or"
! 			    " declaration", keyword, b->id);
  	      else
  		/* The %s will be one of 'struct', 'union', or 'enum'.  */
  		warning_at (b->locus, 0,
--- 8645,8658 ----
  	  if (TREE_CODE (decl) != UNION_TYPE || b->id != NULL_TREE)
  	    {
  	      if (b->id)
! 		{
! 		  /* The %s will be one of 'struct', 'union', or 'enum'.  */
! 		  if (!flag_isoc23)
! 		    warning_at (b->locus, 0,
! 				"%<%s %E%> declared inside parameter list"
! 				" will not be visible outside of this definition or"
! 				" declaration", keyword, b->id);
! 		}
  	      else
  		/* The %s will be one of 'struct', 'union', or 'enum'.  */
  		warning_at (b->locus, 0,
*************** parser_xref_tag (location_t loc, enum tr
*** 8527,8532 ****
--- 8743,8759 ----
       present, only a definition in the current scope is relevant.  */
  
    ref = lookup_tag (code, name, has_enum_type_specifier, &refloc);
+ 
+   /* If the visble type is still being defined, see if there is
+      an earlier definition (which may be complete).  We do not
+      have to loop because nested redefinitions are not allowed.  */
+   if (flag_isoc23 && ref && C_TYPE_BEING_DEFINED (ref))
+     {
+       tree vis = previous_tag (ref);
+       if (vis)
+ 	ref = vis;
+     }
+ 
    /* If this is the right type of tag, return what we found.
       (This reference will be shadowed by shadow_tag later if appropriate.)
       If this is the wrong type of tag, do not return it.  If it was the
*************** parser_xref_tag (location_t loc, enum tr
*** 8584,8589 ****
--- 8811,8818 ----
       the forward-reference will be altered into a real type.  */
  
    ref = make_node (code);
+   if (flag_isoc23 && code != ENUMERAL_TYPE)
+     SET_TYPE_STRUCTURAL_EQUALITY (ref);
    if (code == ENUMERAL_TYPE)
      {
        /* Give the type a default layout like unsigned int
*************** start_struct (location_t loc, enum tree_
*** 8641,8646 ****
--- 8870,8883 ----
  
    if (name != NULL_TREE)
      ref = lookup_tag (code, name, true, &refloc);
+ 
+   /* For C23, even if we already have a completed definition,
+      we do not use it. We will check for consistency later.
+      If we are in a nested redefinition the type is not
+      complete. We will then detect this below.  */
+   if (flag_isoc23 && ref && TYPE_SIZE (ref))
+     ref = NULL_TREE;
+ 
    if (ref && TREE_CODE (ref) == code)
      {
        if (TYPE_STUB_DECL (ref))
*************** start_struct (location_t loc, enum tree_
*** 8677,8682 ****
--- 8914,8921 ----
    if (ref == NULL_TREE || TREE_CODE (ref) != code)
      {
        ref = make_node (code);
+       if (flag_isoc23)
+ 	SET_TYPE_STRUCTURAL_EQUALITY (ref);
        pushtag (loc, name, ref);
      }
  
*************** start_struct (location_t loc, enum tree_
*** 8718,8724 ****
  tree
  grokfield (location_t loc,
  	   struct c_declarator *declarator, struct c_declspecs *declspecs,
! 	   tree width, tree *decl_attrs)
  {
    tree value;
  
--- 8957,8963 ----
  tree
  grokfield (location_t loc,
  	   struct c_declarator *declarator, struct c_declspecs *declspecs,
! 	   tree width, tree *decl_attrs, tree *expr)
  {
    tree value;
  
*************** grokfield (location_t loc,
*** 8775,8781 ****
      }
  
    value = grokdeclarator (declarator, declspecs, FIELD, false,
! 			  width ? &width : NULL, decl_attrs, NULL, NULL,
  			  DEPRECATED_NORMAL);
  
    finish_decl (value, loc, NULL_TREE, NULL_TREE, NULL_TREE);
--- 9014,9020 ----
      }
  
    value = grokdeclarator (declarator, declspecs, FIELD, false,
! 			  width ? &width : NULL, decl_attrs, expr, NULL,
  			  DEPRECATED_NORMAL);
  
    finish_decl (value, loc, NULL_TREE, NULL_TREE, NULL_TREE);
*************** is_flexible_array_member_p (bool is_last
*** 9114,9119 ****
--- 9353,9397 ----
    return false;
  }
  
+ /* Recompute TYPE_CANONICAL for variants of the type including qualified
+    versions of the type and related pointer types after an aggregate type
+    has been finalized.
+    Will not update array types, pointers to array types, function
+    types and other derived types created while the type was still
+    incomplete, those will remain TYPE_STRUCTURAL_EQUALITY_P.  */
+ 
+ static void
+ c_update_type_canonical (tree t)
+ {
+   for (tree x = TYPE_MAIN_VARIANT (t); x; x = TYPE_NEXT_VARIANT (x))
+     {
+       if (x != t && TYPE_STRUCTURAL_EQUALITY_P (x))
+ 	{
+ 	  if (TYPE_QUALS (x) == TYPE_QUALS (t))
+ 	    TYPE_CANONICAL (x) = TYPE_CANONICAL (t);
+ 	  else if (TYPE_CANONICAL (t) != t
+ 		   || check_qualified_type (x, t, TYPE_QUALS (x)))
+ 	    TYPE_CANONICAL (x)
+ 	      = build_qualified_type (TYPE_CANONICAL (t), TYPE_QUALS (x));
+ 	  else
+ 	    TYPE_CANONICAL (x) = x;
+ 	}
+       else if (x != t)
+ 	continue;
+       for (tree p = TYPE_POINTER_TO (x); p; p = TYPE_NEXT_PTR_TO (p))
+ 	{
+ 	  if (!TYPE_STRUCTURAL_EQUALITY_P (p))
+ 	    continue;
+ 	  if (TYPE_CANONICAL (x) != x || TYPE_REF_CAN_ALIAS_ALL (p))
+ 	    TYPE_CANONICAL (p)
+ 	      = build_pointer_type_for_mode (TYPE_CANONICAL (x), TYPE_MODE (p),
+ 					     false);
+ 	  else
+ 	    TYPE_CANONICAL (p) = p;
+ 	  c_update_type_canonical (p);
+ 	}
+     }
+ }
  
  /* Fill in the fields of a RECORD_TYPE or UNION_TYPE node, T.
     LOC is the location of the RECORD_TYPE or UNION_TYPE's definition.
*************** is_flexible_array_member_p (bool is_last
*** 9125,9131 ****
  
  tree
  finish_struct (location_t loc, tree t, tree fieldlist, tree attributes,
! 	       class c_struct_parse_info *enclosing_struct_parse_info)
  {
    tree x;
    bool toplevel = file_scope == current_scope;
--- 9403,9410 ----
  
  tree
  finish_struct (location_t loc, tree t, tree fieldlist, tree attributes,
! 	       class c_struct_parse_info *enclosing_struct_parse_info,
! 	       tree *expr)
  {
    tree x;
    bool toplevel = file_scope == current_scope;
*************** finish_struct (location_t loc, tree t, t
*** 9265,9270 ****
--- 9544,9569 ----
        /* Set DECL_NOT_FLEXARRAY flag for FIELD_DECL x.  */
        DECL_NOT_FLEXARRAY (x) = !is_flexible_array_member_p (is_last_field, x);
  
+       /* Set TYPE_INCLUDES_FLEXARRAY for the context of x, t.
+ 	 when x is an array and is the last field.  */
+       if (TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE)
+ 	TYPE_INCLUDES_FLEXARRAY (t)
+ 	  = is_last_field && flexible_array_member_type_p (TREE_TYPE (x));
+       /* Recursively set TYPE_INCLUDES_FLEXARRAY for the context of x, t
+ 	 when x is an union or record and is the last field.  */
+       else if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (x)))
+ 	TYPE_INCLUDES_FLEXARRAY (t)
+ 	  = is_last_field && TYPE_INCLUDES_FLEXARRAY (TREE_TYPE (x));
+ 
+       if (warn_flex_array_member_not_at_end
+ 	  && !is_last_field
+ 	  && RECORD_OR_UNION_TYPE_P (TREE_TYPE (x))
+ 	  && TYPE_INCLUDES_FLEXARRAY (TREE_TYPE (x)))
+ 	warning_at (DECL_SOURCE_LOCATION (x),
+ 		    OPT_Wflex_array_member_not_at_end,
+ 		    "structure containing a flexible array member"
+ 		    " is not at the end of another structure");
+ 
        if (DECL_NAME (x)
  	  || RECORD_OR_UNION_TYPE_P (TREE_TYPE (x)))
  	saw_named_field = true;
*************** finish_struct (location_t loc, tree t, t
*** 9300,9307 ****
  	  tree type = TREE_TYPE (field);
  	  if (width != TYPE_PRECISION (type))
  	    {
! 	      TREE_TYPE (field)
! 		= c_build_bitfield_integer_type (width, TYPE_UNSIGNED (type));
  	      SET_DECL_MODE (field, TYPE_MODE (TREE_TYPE (field)));
  	    }
  	  DECL_INITIAL (field) = NULL_TREE;
--- 9599,9616 ----
  	  tree type = TREE_TYPE (field);
  	  if (width != TYPE_PRECISION (type))
  	    {
! 	      if (TREE_CODE (type) == BITINT_TYPE
! 		  && width >= (TYPE_UNSIGNED (type) ? 1 : 2))
! 		TREE_TYPE (field)
! 		  = build_bitint_type (width, TYPE_UNSIGNED (type));
! 	      else
! 		TREE_TYPE (field)
! 		  = c_build_bitfield_integer_type (width,
! 						   TYPE_UNSIGNED (type));
! 	      if (tree attr = c_hardbool_type_attr (type))
! 		decl_attributes (&TREE_TYPE (field),
! 				 copy_list (attr),
! 				 0, NULL_TREE);
  	      SET_DECL_MODE (field, TYPE_MODE (TREE_TYPE (field)));
  	    }
  	  DECL_INITIAL (field) = NULL_TREE;
*************** finish_struct (location_t loc, tree t, t
*** 9409,9414 ****
--- 9718,9762 ----
        warning_at (loc, 0, "union cannot be made transparent");
      }
  
+   /* Check for consistency with previous definition.  */
+   if (flag_isoc23 && NULL != enclosing_struct_parse_info)
+     {
+       tree vistype = previous_tag (t);
+       if (vistype
+ 	  && TREE_CODE (vistype) == TREE_CODE (t)
+ 	  && !C_TYPE_BEING_DEFINED (vistype))
+ 	{
+ 	  TYPE_STUB_DECL (vistype) = TYPE_STUB_DECL (t);
+ 	  if (c_type_variably_modified_p (t))
+ 	    error ("redefinition of struct or union %qT with variably "
+ 		   "modified type", t);
+ 	  else if (!comptypes_same_p (t, vistype))
+ 	    error ("redefinition of struct or union %qT", t);
+ 	}
+     }
+ 
+   C_TYPE_BEING_DEFINED (t) = 0;
+ 
+   /* Set type canonical based on equivalence class.  */
+   if (flag_isoc23)
+     {
+       if (c_struct_htab == NULL)
+ 	c_struct_htab = hash_table<c_struct_hasher>::create_ggc (61);
+ 
+       hashval_t hash = c_struct_hasher::hash (t);
+ 
+       gcc_checking_assert (TYPE_STRUCTURAL_EQUALITY_P (t));
+       tree *e = c_struct_htab->find_slot_with_hash (t, hash, INSERT);
+       if (*e)
+ 	TYPE_CANONICAL (t) = *e;
+       else
+ 	{
+ 	  TYPE_CANONICAL (t) = t;
+ 	  *e = t;
+ 	}
+       c_update_type_canonical (t);
+     }
+ 
    tree incomplete_vars = C_TYPE_INCOMPLETE_VARS (TYPE_MAIN_VARIANT (t));
    for (x = TYPE_MAIN_VARIANT (t); x; x = TYPE_NEXT_VARIANT (x))
      {
*************** finish_struct (location_t loc, tree t, t
*** 9433,9458 ****
  
    finish_incomplete_vars (incomplete_vars, toplevel);
  
!   /* If we're inside a function proper, i.e. not file-scope and not still
!      parsing parameters, then arrange for the size of a variable sized type
!      to be bound now.  */
!   if (building_stmt_list_p () && c_type_variably_modified_p(t))
!     add_stmt (build_stmt (loc,
! 			  DECL_EXPR, build_decl (loc, TYPE_DECL, NULL, t)));
  
    if (warn_cxx_compat)
      warn_cxx_compat_finish_struct (fieldlist, TREE_CODE (t), loc);
  
!   delete struct_parse_info;
  
!   struct_parse_info = enclosing_struct_parse_info;
  
!   /* If this struct is defined inside a struct, add it to
!      struct_types.  */
!   if (warn_cxx_compat
!       && struct_parse_info != NULL
!       && !in_sizeof && !in_typeof && !in_alignof)
!     struct_parse_info->struct_types.safe_push (t);
  
    return t;
  }
--- 9781,9809 ----
  
    finish_incomplete_vars (incomplete_vars, toplevel);
  
!   /* Make sure a DECL_EXPR is created for structs with VLA members.
!      Because we do not know the context, we always pass expr
!      to force creation of a BIND_EXPR which is required in some
!      contexts.  */
!   if (c_type_variably_modified_p (t))
!     add_decl_expr (loc, t, expr, false);
  
    if (warn_cxx_compat)
      warn_cxx_compat_finish_struct (fieldlist, TREE_CODE (t), loc);
  
!   if (NULL != enclosing_struct_parse_info)
!     {
!       delete struct_parse_info;
  
!       struct_parse_info = enclosing_struct_parse_info;
  
!       /* If this struct is defined inside a struct, add it to
! 	 struct_types.  */
!       if (warn_cxx_compat
! 	  && struct_parse_info != NULL
! 	  && !in_sizeof && !in_typeof && !in_alignof)
! 	struct_parse_info->struct_types.safe_push (t);
!      }
  
    return t;
  }
*************** layout_array_type (tree t)
*** 9517,9523 ****
  /* Begin compiling the definition of an enumeration type.
     NAME is its name (or null if anonymous).
     LOC is the enum's location.
!    FIXED_UNDERLYING_TYPE is the (C2x) underlying type specified in the
     definition.
     Returns the type object, as yet incomplete.
     Also records info about it so that build_enumerator
--- 9868,9874 ----
  /* Begin compiling the definition of an enumeration type.
     NAME is its name (or null if anonymous).
     LOC is the enum's location.
!    FIXED_UNDERLYING_TYPE is the (C23) underlying type specified in the
     definition.
     Returns the type object, as yet incomplete.
     Also records info about it so that build_enumerator
*************** layout_array_type (tree t)
*** 9525,9531 ****
  
  tree
  start_enum (location_t loc, struct c_enum_contents *the_enum, tree name,
! 	    tree fixed_underlying_type)
  {
    tree enumtype = NULL_TREE;
    location_t enumloc = UNKNOWN_LOCATION;
--- 9876,9882 ----
  
  tree
  start_enum (location_t loc, struct c_enum_contents *the_enum, tree name,
! 	    tree fixed_underlying_type, bool potential_nesting_p)
  {
    tree enumtype = NULL_TREE;
    location_t enumloc = UNKNOWN_LOCATION;
*************** start_enum (location_t loc, struct c_enu
*** 9537,9545 ****
--- 9888,9913 ----
    if (name != NULL_TREE)
      enumtype = lookup_tag (ENUMERAL_TYPE, name, true, &enumloc);
  
+   if (enumtype != NULL_TREE && TREE_CODE (enumtype) == ENUMERAL_TYPE)
+     {
+       /* If the type is currently being defined or if we have seen an
+ 	 incomplete version which is now complete, this is a nested
+ 	 redefinition.  The later happens if the redefinition occurs
+ 	 inside the enum specifier itself.  */
+       if (C_TYPE_BEING_DEFINED (enumtype)
+ 	  || (potential_nesting_p && TYPE_VALUES (enumtype) != NULL_TREE))
+ 	error_at (loc, "nested redefinition of %<enum %E%>", name);
+ 
+       /* For C23 we allow redefinitions.  We set to zero and check for
+ 	 consistency later.  */
+       if (flag_isoc23 && TYPE_VALUES (enumtype) != NULL_TREE)
+ 	enumtype = NULL_TREE;
+     }
+ 
    if (enumtype == NULL_TREE || TREE_CODE (enumtype) != ENUMERAL_TYPE)
      {
        enumtype = make_node (ENUMERAL_TYPE);
+       TYPE_SIZE (enumtype) = NULL_TREE;
        pushtag (loc, name, enumtype);
        if (fixed_underlying_type != NULL_TREE)
  	{
*************** start_enum (location_t loc, struct c_enu
*** 9567,9575 ****
        DECL_SOURCE_LOCATION (TYPE_STUB_DECL (enumtype)) = loc;
      }
  
-   if (C_TYPE_BEING_DEFINED (enumtype))
-     error_at (loc, "nested redefinition of %<enum %E%>", name);
- 
    C_TYPE_BEING_DEFINED (enumtype) = 1;
  
    if (TYPE_VALUES (enumtype) != NULL_TREE)
--- 9935,9940 ----
*************** start_enum (location_t loc, struct c_enu
*** 9587,9594 ****
  
    if (ENUM_FIXED_UNDERLYING_TYPE_P (enumtype)
        && fixed_underlying_type == NULL_TREE)
!     error_at (loc, "%<enum%> declared with but defined without "
! 	      "fixed underlying type");
  
    the_enum->enum_next_value = integer_zero_node;
    the_enum->enum_type = enumtype;
--- 9952,9962 ----
  
    if (ENUM_FIXED_UNDERLYING_TYPE_P (enumtype)
        && fixed_underlying_type == NULL_TREE)
!     {
!       error_at (loc, "%<enum%> declared with but defined without "
! 		"fixed underlying type");
!       ENUM_FIXED_UNDERLYING_TYPE_P (enumtype) = false;
!     }
  
    the_enum->enum_next_value = integer_zero_node;
    the_enum->enum_type = enumtype;
*************** finish_enum (tree enumtype, tree values,
*** 9734,9742 ****
  
  	  TREE_TYPE (enu) = enumtype;
  
! 	  /* Before C2X, the ISO C Standard mandates enumerators to
  	     have type int, even though the underlying type of an enum
! 	     type is unspecified.  However, C2X allows enumerators of
  	     any integer type, and if an enumeration has any
  	     enumerators wider than int, all enumerators have the
  	     enumerated type after it is parsed.  Any enumerators that
--- 10102,10110 ----
  
  	  TREE_TYPE (enu) = enumtype;
  
! 	  /* Before C23, the ISO C Standard mandates enumerators to
  	     have type int, even though the underlying type of an enum
! 	     type is unspecified.  However, C23 allows enumerators of
  	     any integer type, and if an enumeration has any
  	     enumerators wider than int, all enumerators have the
  	     enumerated type after it is parsed.  Any enumerators that
*************** finish_enum (tree enumtype, tree values,
*** 9799,9804 ****
--- 10167,10186 ----
        && !in_sizeof && !in_typeof && !in_alignof)
      struct_parse_info->struct_types.safe_push (enumtype);
  
+   /* Check for consistency with previous definition */
+   if (flag_isoc23)
+     {
+       tree vistype = previous_tag (enumtype);
+       if (vistype
+ 	  && TREE_CODE (vistype) == TREE_CODE (enumtype)
+ 	  && !C_TYPE_BEING_DEFINED (vistype))
+ 	{
+ 	  TYPE_STUB_DECL (vistype) = TYPE_STUB_DECL (enumtype);
+ 	  if (!comptypes_same_p (enumtype, vistype))
+ 	    error("conflicting redefinition of enum %qT", enumtype);
+ 	}
+     }
+ 
    C_TYPE_BEING_DEFINED (enumtype) = 0;
  
    return enumtype;
*************** build_enumerator (location_t decl_loc, l
*** 9879,9885 ****
      {
        /* Even though the underlying type of an enum is unspecified, the
  	 type of enumeration constants is explicitly defined as int
! 	 (6.4.4.3/2 in the C99 Standard).  C2X allows any integer type, and
  	 GCC allows such types for older standards as an extension.  */
        bool warned_range = false;
        if (!int_fits_type_p (value,
--- 10261,10267 ----
      {
        /* Even though the underlying type of an enum is unspecified, the
  	 type of enumeration constants is explicitly defined as int
! 	 (6.4.4.3/2 in the C99 Standard).  C23 allows any integer type, and
  	 GCC allows such types for older standards as an extension.  */
        bool warned_range = false;
        if (!int_fits_type_p (value,
*************** build_enumerator (location_t decl_loc, l
*** 9887,9893 ****
  			     ? uintmax_type_node
  			     : intmax_type_node)))
  	/* GCC does not consider its types larger than intmax_t to be
! 	   extended integer types (although C2X would permit such types to
  	   be considered extended integer types if all the features
  	   required by <stdint.h> and <inttypes.h> macros, such as support
  	   for integer constants and I/O, were present), so diagnose if
--- 10269,10275 ----
  			     ? uintmax_type_node
  			     : intmax_type_node)))
  	/* GCC does not consider its types larger than intmax_t to be
! 	   extended integer types (although C23 would permit such types to
  	   be considered extended integer types if all the features
  	   required by <stdint.h> and <inttypes.h> macros, such as support
  	   for integer constants and I/O, were present), so diagnose if
*************** build_enumerator (location_t decl_loc, l
*** 9904,9915 ****
        if (!warned_range && !int_fits_type_p (value, integer_type_node))
  	pedwarn_c11 (loc, OPT_Wpedantic,
  		     "ISO C restricts enumerator values to range of %<int%> "
! 		     "before C2X");
  
        /* The ISO C Standard mandates enumerators to have type int before
! 	 C2X, even though the underlying type of an enum type is
! 	 unspecified.  C2X allows enumerators of any integer type.  During
! 	 the parsing of the enumeration, C2X specifies that constants
  	 representable in int have type int, constants not representable
  	 in int have the type of the given expression if any, and
  	 constants not representable in int and derived by adding 1 to the
--- 10286,10297 ----
        if (!warned_range && !int_fits_type_p (value, integer_type_node))
  	pedwarn_c11 (loc, OPT_Wpedantic,
  		     "ISO C restricts enumerator values to range of %<int%> "
! 		     "before C23");
  
        /* The ISO C Standard mandates enumerators to have type int before
! 	 C23, even though the underlying type of an enum type is
! 	 unspecified.  C23 allows enumerators of any integer type.  During
! 	 the parsing of the enumeration, C23 specifies that constants
  	 representable in int have type int, constants not representable
  	 in int have the type of the given expression if any, and
  	 constants not representable in int and derived by adding 1 to the
*************** build_enumerator (location_t decl_loc, l
*** 9978,9983 ****
--- 10360,10366 ----
  
    decl = build_decl (decl_loc, CONST_DECL, name, TREE_TYPE (value));
    DECL_INITIAL (decl) = value;
+   DECL_CONTEXT (decl) = the_enum->enum_type;
    pushdecl (decl);
  
    return tree_cons (decl, value, NULL_TREE);
*************** c_simulate_enum_decl (location_t loc, co
*** 9994,10000 ****
  
    struct c_enum_contents the_enum;
    tree enumtype = start_enum (loc, &the_enum, get_identifier (name),
! 			      NULL_TREE);
  
    tree value_chain = NULL_TREE;
    string_int_pair *value;
--- 10377,10383 ----
  
    struct c_enum_contents the_enum;
    tree enumtype = start_enum (loc, &the_enum, get_identifier (name),
! 			      NULL_TREE, false);
  
    tree value_chain = NULL_TREE;
    string_int_pair *value;
*************** start_function (struct c_declspecs *decl
*** 10065,10070 ****
--- 10448,10454 ----
    tree restype, resdecl;
    location_t loc;
    location_t result_loc;
+   tree expr = NULL;
  
    current_function_returns_value = 0;  /* Assume, until we see it does.  */
    current_function_returns_null = 0;
*************** start_function (struct c_declspecs *decl
*** 10076,10082 ****
    in_statement = 0;
  
    decl1 = grokdeclarator (declarator, declspecs, FUNCDEF, true, NULL,
! 			  &attributes, NULL, NULL, DEPRECATED_NORMAL);
    invoke_plugin_callbacks (PLUGIN_START_PARSE_FUNCTION, decl1);
  
    /* If the declarator is not suitable for a function definition,
--- 10460,10466 ----
    in_statement = 0;
  
    decl1 = grokdeclarator (declarator, declspecs, FUNCDEF, true, NULL,
! 			  &attributes, &expr, NULL, DEPRECATED_NORMAL);
    invoke_plugin_callbacks (PLUGIN_START_PARSE_FUNCTION, decl1);
  
    /* If the declarator is not suitable for a function definition,
*************** start_function (struct c_declspecs *decl
*** 10085,10090 ****
--- 10469,10479 ----
        || TREE_CODE (decl1) != FUNCTION_DECL)
      return false;
  
+   /* Nested functions may have variably modified (return) type.
+      Make sure the size expression is evaluated at this point.  */
+   if (expr && !current_scope->parm_flag)
+     add_stmt (fold_convert (void_type_node, expr));
+ 
    loc = DECL_SOURCE_LOCATION (decl1);
  
    /* A nested function is not global.  */
*************** start_function (struct c_declspecs *decl
*** 10124,10133 ****
      }
  
    if (warn_about_return_type)
!     warn_defaults_to (loc, flag_isoc99 ? OPT_Wimplicit_int
! 			   : (warn_return_type > 0 ? OPT_Wreturn_type
! 			      : OPT_Wimplicit_int),
! 		      "return type defaults to %<int%>");
  
    /* Make the init_value nonzero so pushdecl knows this is not tentative.
       error_mark_node is replaced below (in pop_scope) with the BLOCK.  */
--- 10513,10522 ----
      }
  
    if (warn_about_return_type)
!     permerror_opt (loc, flag_isoc99 ? OPT_Wimplicit_int
! 		   : (warn_return_type > 0 ? OPT_Wreturn_type
! 		      : OPT_Wimplicit_int),
! 		   "return type defaults to %<int%>");
  
    /* Make the init_value nonzero so pushdecl knows this is not tentative.
       error_mark_node is replaced below (in pop_scope) with the BLOCK.  */
*************** store_parm_decls_newstyle (tree fndecl,
*** 10352,10358 ****
        else
  	pedwarn_c11 (DECL_SOURCE_LOCATION (decl), OPT_Wpedantic,
  		     "ISO C does not support omitting parameter names in "
! 		     "function definitions before C2X");
      }
  
    /* Record the parameter list in the function declaration.  */
--- 10741,10747 ----
        else
  	pedwarn_c11 (DECL_SOURCE_LOCATION (decl), OPT_Wpedantic,
  		     "ISO C does not support omitting parameter names in "
! 		     "function definitions before C23");
      }
  
    /* Record the parameter list in the function declaration.  */
*************** store_parm_decls_oldstyle (tree fndecl,
*** 10389,10395 ****
  
    if (!in_system_header_at (input_location))
      {
!       if (flag_isoc2x)
  	pedwarn (DECL_SOURCE_LOCATION (fndecl),
  		 OPT_Wold_style_definition, "old-style function definition");
        else
--- 10778,10784 ----
  
    if (!in_system_header_at (input_location))
      {
!       if (flag_isoc23)
  	pedwarn (DECL_SOURCE_LOCATION (fndecl),
  		 OPT_Wold_style_definition, "old-style function definition");
        else
*************** store_parm_decls_oldstyle (tree fndecl,
*** 10469,10477 ****
  	  warn_if_shadowing (decl);
  
  	  if (flag_isoc99)
! 	    pedwarn (DECL_SOURCE_LOCATION (decl),
! 		     OPT_Wimplicit_int, "type of %qD defaults to %<int%>",
! 		     decl);
  	  else
  	    warning_at (DECL_SOURCE_LOCATION (decl),
  			OPT_Wmissing_parameter_type,
--- 10858,10866 ----
  	  warn_if_shadowing (decl);
  
  	  if (flag_isoc99)
! 	    permerror_opt (DECL_SOURCE_LOCATION (decl),
! 			   OPT_Wimplicit_int, "type of %qD defaults to %<int%>",
! 			   decl);
  	  else
  	    warning_at (DECL_SOURCE_LOCATION (decl),
  			OPT_Wmissing_parameter_type,
*************** store_parm_decls (void)
*** 10718,10724 ****
    struct c_arg_info *arg_info = current_function_arg_info;
    current_function_arg_info = 0;
  
!   /* True if this definition is written with a prototype.  In C2X, an
       empty argument list was converted to (void) in grokparms; in
       older C standard versions, it does not give the function a type
       with a prototype for future calls.  */
--- 11107,11113 ----
    struct c_arg_info *arg_info = current_function_arg_info;
    current_function_arg_info = 0;
  
!   /* True if this definition is written with a prototype.  In C23, an
       empty argument list was converted to (void) in grokparms; in
       older C standard versions, it does not give the function a type
       with a prototype for future calls.  */
*************** check_for_loop_decls (location_t loc, bo
*** 11029,11035 ****
       only applies to those that are.  (A question on this in comp.std.c
       in November 2000 received no answer.)  We implement the strictest
       interpretation, to avoid creating an extension which later causes
!      problems.  */
  
    for (b = current_scope->bindings; b; b = b->prev)
      {
--- 11418,11426 ----
       only applies to those that are.  (A question on this in comp.std.c
       in November 2000 received no answer.)  We implement the strictest
       interpretation, to avoid creating an extension which later causes
!      problems.
! 
!      This constraint was removed in C23.  */
  
    for (b = current_scope->bindings; b; b = b->prev)
      {
*************** check_for_loop_decls (location_t loc, bo
*** 11045,11077 ****
  	  {
  	    location_t decl_loc = DECL_SOURCE_LOCATION (decl);
  	    if (TREE_STATIC (decl))
! 	      error_at (decl_loc,
! 			"declaration of static variable %qD in %<for%> loop "
! 			"initial declaration", decl);
  	    else if (DECL_EXTERNAL (decl))
! 	      error_at (decl_loc,
! 			"declaration of %<extern%> variable %qD in %<for%> loop "
! 			"initial declaration", decl);
  	  }
  	  break;
  
  	case RECORD_TYPE:
! 	  error_at (loc,
! 		    "%<struct %E%> declared in %<for%> loop initial "
! 		    "declaration", id);
  	  break;
  	case UNION_TYPE:
! 	  error_at (loc,
! 		    "%<union %E%> declared in %<for%> loop initial declaration",
! 		    id);
  	  break;
  	case ENUMERAL_TYPE:
! 	  error_at (loc, "%<enum %E%> declared in %<for%> loop "
! 		    "initial declaration", id);
  	  break;
  	default:
! 	  error_at (loc, "declaration of non-variable "
! 		    "%qD in %<for%> loop initial declaration", decl);
  	}
  
        n_decls++;
--- 11436,11470 ----
  	  {
  	    location_t decl_loc = DECL_SOURCE_LOCATION (decl);
  	    if (TREE_STATIC (decl))
! 	      pedwarn_c11 (decl_loc, OPT_Wpedantic,
! 			   "declaration of static variable %qD in %<for%> "
! 			   "loop initial declaration", decl);
  	    else if (DECL_EXTERNAL (decl))
! 	      pedwarn_c11 (decl_loc, OPT_Wpedantic,
! 			   "declaration of %<extern%> variable %qD in %<for%> "
! 			   "loop initial declaration", decl);
  	  }
  	  break;
  
  	case RECORD_TYPE:
! 	  pedwarn_c11 (loc, OPT_Wpedantic,
! 		       "%<struct %E%> declared in %<for%> loop initial "
! 		       "declaration", id);
  	  break;
  	case UNION_TYPE:
! 	  pedwarn_c11 (loc, OPT_Wpedantic,
! 		       "%<union %E%> declared in %<for%> loop initial "
! 		       "declaration",
! 		       id);
  	  break;
  	case ENUMERAL_TYPE:
! 	  pedwarn_c11 (loc, OPT_Wpedantic,
! 		       "%<enum %E%> declared in %<for%> loop "
! 		       "initial declaration", id);
  	  break;
  	default:
! 	  pedwarn_c11 (loc, OPT_Wpedantic, "declaration of non-variable "
! 		       "%qD in %<for%> loop initial declaration", decl);
  	}
  
        n_decls++;
*************** names_builtin_p (const char *name)
*** 11200,11210 ****
       functions.  */
    switch (C_RID_CODE (id))
      {
      case RID_BUILTIN_CONVERTVECTOR:
      case RID_BUILTIN_HAS_ATTRIBUTE:
      case RID_BUILTIN_SHUFFLE:
      case RID_BUILTIN_SHUFFLEVECTOR:
!     case RID_BUILTIN_ASSOC_BARRIER:
      case RID_CHOOSE_EXPR:
      case RID_OFFSETOF:
      case RID_TYPES_COMPATIBLE_P:
--- 11593,11604 ----
       functions.  */
    switch (C_RID_CODE (id))
      {
+     case RID_BUILTIN_ASSOC_BARRIER:
      case RID_BUILTIN_CONVERTVECTOR:
      case RID_BUILTIN_HAS_ATTRIBUTE:
      case RID_BUILTIN_SHUFFLE:
      case RID_BUILTIN_SHUFFLEVECTOR:
!     case RID_BUILTIN_STDC:
      case RID_CHOOSE_EXPR:
      case RID_OFFSETOF:
      case RID_TYPES_COMPATIBLE_P:
*************** declspecs_add_type (location_t loc, stru
*** 11446,11454 ****
  
    /* As a type specifier is present, "auto" must be used as a storage
       class specifier, not for type deduction.  */
!   if (specs->c2x_auto_p)
      {
!       specs->c2x_auto_p = false;
        if (specs->storage_class != csc_none)
  	error ("multiple storage classes in declaration specifiers");
        else if (specs->thread_p)
--- 11840,11848 ----
  
    /* As a type specifier is present, "auto" must be used as a storage
       class specifier, not for type deduction.  */
!   if (specs->c23_auto_p)
      {
!       specs->c23_auto_p = false;
        if (specs->storage_class != csc_none)
  	error ("multiple storage classes in declaration specifiers");
        else if (specs->thread_p)
*************** declspecs_add_type (location_t loc, stru
*** 11513,11526 ****
  			  ("both %<long%> and %<void%> in "
  			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_int_n)
! 		  error_at (loc,
! 			    ("both %<long%> and %<__int%d%> in "
! 			     "declaration specifiers"),
! 			    int_n_data[specs->int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
  			  ("both %<long%> and %<_Bool%> in "
  			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
  			  ("both %<long%> and %<char%> in "
--- 11907,11924 ----
  			  ("both %<long%> and %<void%> in "
  			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_int_n)
! 		error_at (loc,
! 			  ("both %<long%> and %<__int%d%> in "
! 			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
  			  ("both %<long%> and %<_Bool%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_bitint)
+ 		error_at (loc,
+ 			  ("both %<long%> and %<_BitInt%> in "
+ 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
  			  ("both %<long%> and %<char%> in "
*************** declspecs_add_type (location_t loc, stru
*** 11533,11540 ****
  		error_at (loc,
  			  ("both %<long%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
--- 11931,11938 ----
  		error_at (loc,
  			  ("both %<long%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
*************** declspecs_add_type (location_t loc, stru
*** 11573,11583 ****
  		error_at (loc,
  			  ("both %<short%> and %<__int%d%> in "
  			   "declaration specifiers"),
! 			  int_n_data[specs->int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
  			  ("both %<short%> and %<_Bool%> in "
  			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
  			  ("both %<short%> and %<char%> in "
--- 11971,11985 ----
  		error_at (loc,
  			  ("both %<short%> and %<__int%d%> in "
  			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
  			  ("both %<short%> and %<_Bool%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_bitint)
+ 		error_at (loc,
+ 			  ("both %<short%> and %<_BitInt%> in "
+ 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
  			  ("both %<short%> and %<char%> in "
*************** declspecs_add_type (location_t loc, stru
*** 11594,11601 ****
  		error_at (loc,
  			  ("both %<short%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
--- 11996,12003 ----
  		error_at (loc,
  			  ("both %<short%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
*************** declspecs_add_type (location_t loc, stru
*** 11646,11653 ****
  		error_at (loc,
  			  ("both %<signed%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
--- 12048,12055 ----
  		error_at (loc,
  			  ("both %<signed%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
*************** declspecs_add_type (location_t loc, stru
*** 11698,11705 ****
  		error_at (loc,
  			  ("both %<unsigned%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
                else if (specs->typespec_word == cts_dfloat32)
--- 12100,12107 ----
  		error_at (loc,
  			  ("both %<unsigned%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
                else if (specs->typespec_word == cts_dfloat32)
*************** declspecs_add_type (location_t loc, stru
*** 11737,11742 ****
--- 12139,12148 ----
  		error_at (loc,
  			  ("both %<complex%> and %<_Bool%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_bitint)
+ 		error_at (loc,
+ 			  ("both %<complex%> and %<_BitInt%> in "
+ 			   "declaration specifiers"));
                else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
  			  ("both %<complex%> and %<_Decimal32%> in "
*************** declspecs_add_type (location_t loc, stru
*** 11776,11782 ****
  		  error_at (loc,
  			    ("both %<_Sat%> and %<__int%d%> in "
  			     "declaration specifiers"),
! 			    int_n_data[specs->int_n_idx].bitsize);
  	        }
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
--- 12182,12188 ----
  		  error_at (loc,
  			    ("both %<_Sat%> and %<__int%d%> in "
  			     "declaration specifiers"),
! 			    int_n_data[specs->u.int_n_idx].bitsize);
  	        }
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
*************** declspecs_add_type (location_t loc, stru
*** 11790,11795 ****
--- 12196,12205 ----
  		error_at (loc,
  			  ("both %<_Sat%> and %<_Bool%> in "
  			   "declaration specifiers"));
+ 	      else if (specs->typespec_word == cts_bitint)
+ 		error_at (loc,
+ 			  ("both %<_Sat%> and %<_BitInt%> in "
+ 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
  			  ("both %<_Sat%> and %<char%> in "
*************** declspecs_add_type (location_t loc, stru
*** 11810,11817 ****
  		error_at (loc,
  			  ("both %<_Sat%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
                else if (specs->typespec_word == cts_dfloat32)
--- 12220,12227 ----
  		error_at (loc,
  			  ("both %<_Sat%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
                else if (specs->typespec_word == cts_dfloat32)
*************** declspecs_add_type (location_t loc, stru
*** 11849,11855 ****
  	{
  	  /* "void", "_Bool", "char", "int", "float", "double",
  	     "_FloatN", "_FloatNx", "_Decimal32", "__intN",
! 	     "_Decimal64", "_Decimal128", "_Fract", "_Accum" or
  	     "__auto_type".  */
  	  if (specs->typespec_word != cts_none)
  	    {
--- 12259,12265 ----
  	{
  	  /* "void", "_Bool", "char", "int", "float", "double",
  	     "_FloatN", "_FloatNx", "_Decimal32", "__intN",
! 	     "_Decimal64", "_Decimal128", "_Fract", "_Accum", "_BitInt(N)" or
  	     "__auto_type".  */
  	  if (specs->typespec_word != cts_none)
  	    {
*************** declspecs_add_type (location_t loc, stru
*** 11894,11900 ****
  	    case RID_INT_N_1:
  	    case RID_INT_N_2:
  	    case RID_INT_N_3:
! 	      specs->int_n_idx = i - RID_INT_N_0;
  	      if (!in_system_header_at (input_location)
  		  /* If the INT_N type ends in "__", and so is of the format
  		     "__intN__", don't pedwarn.  */
--- 12304,12310 ----
  	    case RID_INT_N_1:
  	    case RID_INT_N_2:
  	    case RID_INT_N_3:
! 	      specs->u.int_n_idx = i - RID_INT_N_0;
  	      if (!in_system_header_at (input_location)
  		  /* If the INT_N type ends in "__", and so is of the format
  		     "__intN__", don't pedwarn.  */
*************** declspecs_add_type (location_t loc, stru
*** 11902,11930 ****
  			       + (IDENTIFIER_LENGTH (type) - 2), "__", 2) != 0))
  		pedwarn (loc, OPT_Wpedantic,
  			 "ISO C does not support %<__int%d%> types",
! 			 int_n_data[specs->int_n_idx].bitsize);
  
  	      if (specs->long_p)
  		error_at (loc,
  			  ("both %<__int%d%> and %<long%> in "
  			   "declaration specifiers"),
! 			  int_n_data[specs->int_n_idx].bitsize);
  	      else if (specs->saturating_p)
  		error_at (loc,
  			  ("both %<_Sat%> and %<__int%d%> in "
  			   "declaration specifiers"),
! 			  int_n_data[specs->int_n_idx].bitsize);
  	      else if (specs->short_p)
  		error_at (loc,
  			  ("both %<__int%d%> and %<short%> in "
  			   "declaration specifiers"),
! 			  int_n_data[specs->int_n_idx].bitsize);
! 	      else if (! int_n_enabled_p[specs->int_n_idx])
  		{
  		  specs->typespec_word = cts_int_n;
  		  error_at (loc,
  			    "%<__int%d%> is not supported on this target",
! 			    int_n_data[specs->int_n_idx].bitsize);
  		}
  	      else
  		{
--- 12312,12340 ----
  			       + (IDENTIFIER_LENGTH (type) - 2), "__", 2) != 0))
  		pedwarn (loc, OPT_Wpedantic,
  			 "ISO C does not support %<__int%d%> types",
! 			 int_n_data[specs->u.int_n_idx].bitsize);
  
  	      if (specs->long_p)
  		error_at (loc,
  			  ("both %<__int%d%> and %<long%> in "
  			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->saturating_p)
  		error_at (loc,
  			  ("both %<_Sat%> and %<__int%d%> in "
  			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->short_p)
  		error_at (loc,
  			  ("both %<__int%d%> and %<short%> in "
  			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
! 	      else if (! int_n_enabled_p[specs->u.int_n_idx])
  		{
  		  specs->typespec_word = cts_int_n;
  		  error_at (loc,
  			    "%<__int%d%> is not supported on this target",
! 			    int_n_data[specs->u.int_n_idx].bitsize);
  		}
  	      else
  		{
*************** declspecs_add_type (location_t loc, stru
*** 12082,12143 ****
  		}
  	      return specs;
  	    CASE_RID_FLOATN_NX:
! 	      specs->floatn_nx_idx = i - RID_FLOATN_NX_FIRST;
  	      if (!in_system_header_at (input_location))
! 		pedwarn (loc, OPT_Wpedantic,
! 			 "ISO C does not support the %<_Float%d%s%> type",
! 			 floatn_nx_types[specs->floatn_nx_idx].n,
! 			 (floatn_nx_types[specs->floatn_nx_idx].extended
! 			  ? "x"
! 			  : ""));
  
  	      if (specs->long_p)
  		error_at (loc,
  			  ("both %<long%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->short_p)
  		error_at (loc,
  			  ("both %<short%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->signed_p)
  		error_at (loc,
  			  ("both %<signed%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->unsigned_p)
  		error_at (loc,
  			  ("both %<unsigned%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->saturating_p)
  		error_at (loc,
  			  ("both %<_Sat%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
! 	      else if (FLOATN_NX_TYPE_NODE (specs->floatn_nx_idx) == NULL_TREE)
  		{
  		  specs->typespec_word = cts_floatn_nx;
  		  error_at (loc,
  			    "%<_Float%d%s%> is not supported on this target",
! 			    floatn_nx_types[specs->floatn_nx_idx].n,
! 			    (floatn_nx_types[specs->floatn_nx_idx].extended
  			     ? "x"
  			     : ""));
  		}
--- 12492,12554 ----
  		}
  	      return specs;
  	    CASE_RID_FLOATN_NX:
! 	      specs->u.floatn_nx_idx = i - RID_FLOATN_NX_FIRST;
  	      if (!in_system_header_at (input_location))
! 		pedwarn_c11 (loc, OPT_Wpedantic,
! 			     "ISO C does not support the %<_Float%d%s%> type"
! 			     " before C23",
! 			     floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			     (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			      ? "x"
! 			      : ""));
  
  	      if (specs->long_p)
  		error_at (loc,
  			  ("both %<long%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->short_p)
  		error_at (loc,
  			  ("both %<short%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->signed_p)
  		error_at (loc,
  			  ("both %<signed%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->unsigned_p)
  		error_at (loc,
  			  ("both %<unsigned%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
  	      else if (specs->saturating_p)
  		error_at (loc,
  			  ("both %<_Sat%> and %<_Float%d%s%> in "
  			   "declaration specifiers"),
! 			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			   ? "x"
  			   : ""));
! 	      else if (FLOATN_NX_TYPE_NODE (specs->u.floatn_nx_idx) == NULL_TREE)
  		{
  		  specs->typespec_word = cts_floatn_nx;
  		  error_at (loc,
  			    "%<_Float%d%s%> is not supported on this target",
! 			    floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			    (floatn_nx_types[specs->u.floatn_nx_idx].extended
  			     ? "x"
  			     : ""));
  		}
*************** declspecs_add_type (location_t loc, stru
*** 12207,12213 ****
  			   "for this target"));
  	      pedwarn_c11 (loc, OPT_Wpedantic,
  			   "ISO C does not support decimal floating-point "
! 			   "before C2X");
  	      return specs;
  	    case RID_FRACT:
  	    case RID_ACCUM:
--- 12618,12624 ----
  			   "for this target"));
  	      pedwarn_c11 (loc, OPT_Wpedantic,
  			   "ISO C does not support decimal floating-point "
! 			   "before C23");
  	      return specs;
  	    case RID_FRACT:
  	    case RID_ACCUM:
*************** declspecs_add_type (location_t loc, stru
*** 12234,12239 ****
--- 12645,12707 ----
  	      pedwarn (loc, OPT_Wpedantic,
  		       "ISO C does not support fixed-point types");
  	      return specs;
+ 	    case RID_BITINT:
+ 	      if (specs->long_p)
+ 		error_at (loc,
+ 			  ("both %<long%> and %<_BitInt%> in "
+ 			   "declaration specifiers"));
+ 	      else if (specs->short_p)
+ 		error_at (loc,
+ 			  ("both %<short%> and %<_BitInt%> in "
+ 			   "declaration specifiers"));
+ 	      else if (specs->complex_p)
+ 		error_at (loc,
+ 			  ("both %<complex%> and %<_BitInt%> in "
+ 			   "declaration specifiers"));
+ 	      else if (specs->saturating_p)
+ 		error_at (loc,
+ 			  ("both %<_Sat%> and %<_BitInt%> in "
+ 			   "declaration specifiers"));
+ 	      else
+ 		{
+ 		  specs->typespec_word = cts_bitint;
+ 		  specs->locations[cdw_typespec] = loc;
+ 		  specs->u.bitint_prec = -1;
+ 		  if (error_operand_p (spec.expr))
+ 		    return specs;
+ 		  if (TREE_CODE (spec.expr) != INTEGER_CST
+ 		      || !INTEGRAL_TYPE_P (TREE_TYPE (spec.expr)))
+ 		    {
+ 		      error_at (loc, "%<_BitInt%> argument is not an integer "
+ 				     "constant expression");
+ 		      return specs;
+ 		    }
+ 		  if (tree_int_cst_sgn (spec.expr) <= 0)
+ 		    {
+ 		      error_at (loc, "%<_BitInt%> argument %qE is not a "
+ 				     "positive integer constant expression",
+ 				spec.expr);
+ 		      return specs;
+ 		    }
+ 		  if (wi::to_widest (spec.expr) > WIDE_INT_MAX_PRECISION - 1)
+ 		    {
+ 		      error_at (loc, "%<_BitInt%> argument %qE is larger than "
+ 				     "%<BITINT_MAXWIDTH%> %qd",
+ 				spec.expr, (int) WIDE_INT_MAX_PRECISION - 1);
+ 		      return specs;
+ 		    }
+ 		  specs->u.bitint_prec = tree_to_uhwi (spec.expr);
+ 		  struct bitint_info info;
+ 		  if (!targetm.c.bitint_type_info (specs->u.bitint_prec,
+ 						   &info))
+ 		    {
+ 		      sorry_at (loc, "%<_BitInt(%d)%> is not supported on "
+ 				     "this target", specs->u.bitint_prec);
+ 		      specs->u.bitint_prec = -1;
+ 		      return specs;
+ 		    }
+ 		}
+ 	      return specs;
  	    default:
  	      /* ObjC reserved word "id", handled below.  */
  	      break;
*************** declspecs_add_type (location_t loc, stru
*** 12289,12298 ****
      }
    else
      {
!       if (TREE_CODE (type) != ERROR_MARK && spec.kind == ctsk_typeof)
  	{
! 	  specs->typedef_p = true;
! 	  specs->locations[cdw_typedef] = loc;
  	  if (spec.expr)
  	    {
  	      if (specs->expr)
--- 12757,12769 ----
      }
    else
      {
!       if (TREE_CODE (type) != ERROR_MARK)
  	{
! 	  if (spec.kind == ctsk_typeof)
! 	    {
! 	      specs->typedef_p = true;
! 	      specs->locations[cdw_typedef] = loc;
! 	    }
  	  if (spec.expr)
  	    {
  	      if (specs->expr)
*************** declspecs_add_scspec (location_t loc,
*** 12380,12393 ****
  	}
        break;
      case RID_AUTO:
!       if (flag_isoc2x
  	  && specs->typespec_kind == ctsk_none
  	  && specs->storage_class != csc_typedef)
  	{
  	  /* "auto" potentially used for type deduction.  */
! 	  if (specs->c2x_auto_p)
  	    error ("duplicate %qE", scspec);
! 	  specs->c2x_auto_p = true;
  	  return specs;
  	}
        n = csc_auto;
--- 12851,12864 ----
  	}
        break;
      case RID_AUTO:
!       if (flag_isoc23
  	  && specs->typespec_kind == ctsk_none
  	  && specs->storage_class != csc_typedef)
  	{
  	  /* "auto" potentially used for type deduction.  */
! 	  if (specs->c23_auto_p)
  	    error ("duplicate %qE", scspec);
! 	  specs->c23_auto_p = true;
  	  return specs;
  	}
        n = csc_auto;
*************** declspecs_add_scspec (location_t loc,
*** 12413,12422 ****
        break;
      case RID_TYPEDEF:
        n = csc_typedef;
!       if (specs->c2x_auto_p)
  	{
  	  error ("%<typedef%> used with %<auto%>");
! 	  specs->c2x_auto_p = false;
  	}
        break;
      case RID_CONSTEXPR:
--- 12884,12893 ----
        break;
      case RID_TYPEDEF:
        n = csc_typedef;
!       if (specs->c23_auto_p)
  	{
  	  error ("%<typedef%> used with %<auto%>");
! 	  specs->c23_auto_p = false;
  	}
        break;
      case RID_CONSTEXPR:
*************** finish_declspecs (struct c_declspecs *sp
*** 12526,12532 ****
      {
        gcc_assert (!specs->long_p && !specs->long_long_p && !specs->short_p
  		  && !specs->signed_p && !specs->unsigned_p
! 		  && !specs->complex_p && !specs->c2x_auto_p);
  
        /* Set a dummy type.  */
        if (TREE_CODE (specs->type) == ERROR_MARK)
--- 12997,13003 ----
      {
        gcc_assert (!specs->long_p && !specs->long_long_p && !specs->short_p
  		  && !specs->signed_p && !specs->unsigned_p
! 		  && !specs->complex_p && !specs->c23_auto_p);
  
        /* Set a dummy type.  */
        if (TREE_CODE (specs->type) == ERROR_MARK)
*************** finish_declspecs (struct c_declspecs *sp
*** 12562,12577 ****
  		   "ISO C does not support plain %<complex%> meaning "
  		   "%<double complex%>");
  	}
!       else if (specs->c2x_auto_p)
  	{
  	  /* Type to be filled in later, including applying postfix
  	     attributes.  This warning only actually appears for
! 	     -Wc11-c2x-compat in C2X mode; in older modes, there may
  	     be a warning or pedwarn for implicit "int" instead, or
  	     other errors for use of auto at file scope.  */
  	  pedwarn_c11 (input_location, OPT_Wpedantic,
  		       "ISO C does not support %<auto%> type deduction "
! 		       "before C2X");
  	  return specs;
  	}
        else
--- 13033,13048 ----
  		   "ISO C does not support plain %<complex%> meaning "
  		   "%<double complex%>");
  	}
!       else if (specs->c23_auto_p)
  	{
  	  /* Type to be filled in later, including applying postfix
  	     attributes.  This warning only actually appears for
! 	     -Wc11-c23-compat in C23 mode; in older modes, there may
  	     be a warning or pedwarn for implicit "int" instead, or
  	     other errors for use of auto at file scope.  */
  	  pedwarn_c11 (input_location, OPT_Wpedantic,
  		       "ISO C does not support %<auto%> type deduction "
! 		       "before C23");
  	  return specs;
  	}
        else
*************** finish_declspecs (struct c_declspecs *sp
*** 12590,12596 ****
    specs->explicit_signed_p = specs->signed_p;
  
    /* Now compute the actual type.  */
!   gcc_assert (!specs->c2x_auto_p);
    switch (specs->typespec_word)
      {
      case cts_auto_type:
--- 13061,13067 ----
    specs->explicit_signed_p = specs->signed_p;
  
    /* Now compute the actual type.  */
!   gcc_assert (!specs->c23_auto_p);
    switch (specs->typespec_word)
      {
      case cts_auto_type:
*************** finish_declspecs (struct c_declspecs *sp
*** 12632,12643 ****
      case cts_int_n:
        gcc_assert (!specs->long_p && !specs->short_p && !specs->long_long_p);
        gcc_assert (!(specs->signed_p && specs->unsigned_p));
!       if (! int_n_enabled_p[specs->int_n_idx])
  	specs->type = integer_type_node;
        else
  	specs->type = (specs->unsigned_p
! 		       ? int_n_trees[specs->int_n_idx].unsigned_type
! 		       : int_n_trees[specs->int_n_idx].signed_type);
        if (specs->complex_p)
  	{
  	  pedwarn (specs->locations[cdw_complex], OPT_Wpedantic,
--- 13103,13114 ----
      case cts_int_n:
        gcc_assert (!specs->long_p && !specs->short_p && !specs->long_long_p);
        gcc_assert (!(specs->signed_p && specs->unsigned_p));
!       if (! int_n_enabled_p[specs->u.int_n_idx])
  	specs->type = integer_type_node;
        else
  	specs->type = (specs->unsigned_p
! 		       ? int_n_trees[specs->u.int_n_idx].unsigned_type
! 		       : int_n_trees[specs->u.int_n_idx].signed_type);
        if (specs->complex_p)
  	{
  	  pedwarn (specs->locations[cdw_complex], OPT_Wpedantic,
*************** finish_declspecs (struct c_declspecs *sp
*** 12697,12708 ****
      case cts_floatn_nx:
        gcc_assert (!specs->long_p && !specs->short_p
  		  && !specs->signed_p && !specs->unsigned_p);
!       if (FLOATN_NX_TYPE_NODE (specs->floatn_nx_idx) == NULL_TREE)
  	specs->type = integer_type_node;
        else if (specs->complex_p)
! 	specs->type = COMPLEX_FLOATN_NX_TYPE_NODE (specs->floatn_nx_idx);
        else
! 	specs->type = FLOATN_NX_TYPE_NODE (specs->floatn_nx_idx);
        break;
      case cts_dfloat32:
      case cts_dfloat64:
--- 13168,13179 ----
      case cts_floatn_nx:
        gcc_assert (!specs->long_p && !specs->short_p
  		  && !specs->signed_p && !specs->unsigned_p);
!       if (FLOATN_NX_TYPE_NODE (specs->u.floatn_nx_idx) == NULL_TREE)
  	specs->type = integer_type_node;
        else if (specs->complex_p)
! 	specs->type = COMPLEX_FLOATN_NX_TYPE_NODE (specs->u.floatn_nx_idx);
        else
! 	specs->type = FLOATN_NX_TYPE_NODE (specs->u.floatn_nx_idx);
        break;
      case cts_dfloat32:
      case cts_dfloat64:
*************** finish_declspecs (struct c_declspecs *sp
*** 12804,12809 ****
--- 13275,13303 ----
  			  : accum_type_node;
  	}
        break;
+     case cts_bitint:
+       gcc_assert (!specs->long_p && !specs->short_p
+ 		  && !specs->complex_p);
+       if (!specs->unsigned_p && specs->u.bitint_prec == 1)
+ 	{
+ 	  error_at (specs->locations[cdw_typespec],
+ 		    "%<signed _BitInt%> argument must be at least 2");
+ 	  specs->type = integer_type_node;
+ 	  break;
+ 	}
+       if (specs->u.bitint_prec == -1)
+ 	specs->type = integer_type_node;
+       else
+ 	{
+ 	  pedwarn_c11 (specs->locations[cdw_typespec], OPT_Wpedantic,
+ 		       "ISO C does not support %<%s_BitInt(%d)%> before C23",
+ 		       specs->unsigned_p ? "unsigned "
+ 		       : specs->signed_p ? "signed " : "",
+ 		       specs->u.bitint_prec);
+ 	  specs->type = build_bitint_type (specs->u.bitint_prec,
+ 					   specs->unsigned_p);
+ 	}
+       break;
      default:
        gcc_unreachable ();
      }
diff -Nrcpad gcc-13.2.0/gcc/c/c-errors.cc gcc-14.1.0/gcc/c/c-errors.cc
*** gcc-13.2.0/gcc/c/c-errors.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-errors.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Various diagnostic subroutines for the GNU C language.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Various diagnostic subroutines for the GNU C language.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 25,35 ****
  #include "c-tree.h"
  #include "opts.h"
  
! /* Issue an ISO C11 pedantic warning MSGID if -pedantic outside C2X mode,
!    otherwise issue warning MSGID if -Wc11-c2X-compat is specified.
     This function is supposed to be used for matters that are allowed in
!    ISO C2X but not supported in ISO C11, thus we explicitly don't pedwarn
!    when C2X is specified.  */
  
  bool
  pedwarn_c11 (location_t location, int opt, const char *gmsgid, ...)
--- 25,35 ----
  #include "c-tree.h"
  #include "opts.h"
  
! /* Issue an ISO C11 pedantic warning MSGID if -pedantic outside C23 mode,
!    otherwise issue warning MSGID if -Wc11-c23-compat is specified.
     This function is supposed to be used for matters that are allowed in
!    ISO C23 but not supported in ISO C11, thus we explicitly don't pedwarn
!    when C23 is specified.  */
  
  bool
  pedwarn_c11 (location_t location, int opt, const char *gmsgid, ...)
*************** pedwarn_c11 (location_t location, int op
*** 40,60 ****
    rich_location richloc (line_table, location);
  
    va_start (ap, gmsgid);
!   /* If desired, issue the C11/C2X compat warning, which is more specific
       than -pedantic.  */
!   if (warn_c11_c2x_compat > 0)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
! 			   (pedantic && !flag_isoc2x)
  			   ? DK_PEDWARN : DK_WARNING);
!       diagnostic.option_index = OPT_Wc11_c2x_compat;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
!   /* -Wno-c11-c2x-compat suppresses even the pedwarns.  */
!   else if (warn_c11_c2x_compat == 0)
      ;
!   /* For -pedantic outside C2X, issue a pedwarn.  */
!   else if (pedantic && !flag_isoc2x)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
        diagnostic.option_index = opt;
--- 40,60 ----
    rich_location richloc (line_table, location);
  
    va_start (ap, gmsgid);
!   /* If desired, issue the C11/C23 compat warning, which is more specific
       than -pedantic.  */
!   if (warn_c11_c23_compat > 0)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
! 			   (pedantic && !flag_isoc23)
  			   ? DK_PEDWARN : DK_WARNING);
!       diagnostic.option_index = OPT_Wc11_c23_compat;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
!   /* -Wno-c11-c23-compat suppresses even the pedwarns.  */
!   else if (warn_c11_c23_compat == 0)
      ;
!   /* For -pedantic outside C23, issue a pedwarn.  */
!   else if (pedantic && !flag_isoc23)
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc, DK_PEDWARN);
        diagnostic.option_index = opt;
diff -Nrcpad gcc-13.2.0/gcc/c/c-fold.cc gcc-14.1.0/gcc/c/c-fold.cc
*** gcc-13.2.0/gcc/c/c-fold.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-fold.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Support for fully folding sub-trees of an expression for C compiler.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Support for fully folding sub-trees of an expression for C compiler.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** c_fully_fold_internal (tree expr, bool i
*** 379,385 ****
  	overflow_warning (EXPR_LOC_OR_LOC (expr, input_location), ret, expr);
        if (code == LSHIFT_EXPR
  	  && TREE_CODE (orig_op0) != INTEGER_CST
! 	  && TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE
  	  && TREE_CODE (op0) == INTEGER_CST
  	  && c_inhibit_evaluation_warnings == 0
  	  && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (orig_op0))
--- 379,386 ----
  	overflow_warning (EXPR_LOC_OR_LOC (expr, input_location), ret, expr);
        if (code == LSHIFT_EXPR
  	  && TREE_CODE (orig_op0) != INTEGER_CST
! 	  && (TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE
! 	      || TREE_CODE (TREE_TYPE (orig_op0)) == BITINT_TYPE)
  	  && TREE_CODE (op0) == INTEGER_CST
  	  && c_inhibit_evaluation_warnings == 0
  	  && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (orig_op0))
*************** c_fully_fold_internal (tree expr, bool i
*** 398,403 ****
--- 399,405 ----
  			 ? G_("left shift count is negative")
  			 : G_("right shift count is negative")));
  	  else if ((TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE
+ 		    || TREE_CODE (TREE_TYPE (orig_op0)) == BITINT_TYPE
  		    || TREE_CODE (TREE_TYPE (orig_op0)) == FIXED_POINT_TYPE)
  		   && compare_tree_int (op1,
  					TYPE_PRECISION (TREE_TYPE (orig_op0)))
*************** c_fully_fold_internal (tree expr, bool i
*** 418,428 ****
        if (code == LSHIFT_EXPR
  	  /* If either OP0 has been folded to INTEGER_CST...  */
  	  && ((TREE_CODE (orig_op0) != INTEGER_CST
! 	       && TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE
  	       && TREE_CODE (op0) == INTEGER_CST)
  	      /* ...or if OP1 has been folded to INTEGER_CST...  */
  	      || (TREE_CODE (orig_op1) != INTEGER_CST
! 		  && TREE_CODE (TREE_TYPE (orig_op1)) == INTEGER_TYPE
  		  && TREE_CODE (op1) == INTEGER_CST))
  	  && c_inhibit_evaluation_warnings == 0)
  	/* ...then maybe we can detect an overflow.  */
--- 420,432 ----
        if (code == LSHIFT_EXPR
  	  /* If either OP0 has been folded to INTEGER_CST...  */
  	  && ((TREE_CODE (orig_op0) != INTEGER_CST
! 	       && (TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE
! 		   || TREE_CODE (TREE_TYPE (orig_op0)) == BITINT_TYPE)
  	       && TREE_CODE (op0) == INTEGER_CST)
  	      /* ...or if OP1 has been folded to INTEGER_CST...  */
  	      || (TREE_CODE (orig_op1) != INTEGER_CST
! 		  && (TREE_CODE (TREE_TYPE (orig_op1)) == INTEGER_TYPE
! 		      || TREE_CODE (TREE_TYPE (orig_op1)) == BITINT_TYPE)
  		  && TREE_CODE (op1) == INTEGER_CST))
  	  && c_inhibit_evaluation_warnings == 0)
  	/* ...then maybe we can detect an overflow.  */
*************** c_fully_fold_internal (tree expr, bool i
*** 435,442 ****
  	  && TREE_CODE (orig_op1) != INTEGER_CST
  	  && TREE_CODE (op1) == INTEGER_CST
  	  && (TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE
  	      || TREE_CODE (TREE_TYPE (orig_op0)) == FIXED_POINT_TYPE)
! 	  && TREE_CODE (TREE_TYPE (orig_op1)) == INTEGER_TYPE)
  	warn_for_div_by_zero (loc, op1);
        if (code == MEM_REF
  	  && ret != expr
--- 439,448 ----
  	  && TREE_CODE (orig_op1) != INTEGER_CST
  	  && TREE_CODE (op1) == INTEGER_CST
  	  && (TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE
+ 	      || TREE_CODE (TREE_TYPE (orig_op0)) == BITINT_TYPE
  	      || TREE_CODE (TREE_TYPE (orig_op0)) == FIXED_POINT_TYPE)
! 	  && (TREE_CODE (TREE_TYPE (orig_op1)) == INTEGER_TYPE
! 	      || TREE_CODE (TREE_TYPE (orig_op1)) == BITINT_TYPE))
  	warn_for_div_by_zero (loc, op1);
        if (code == MEM_REF
  	  && ret != expr
diff -Nrcpad gcc-13.2.0/gcc/c/c-lang.cc gcc-14.1.0/gcc/c/c-lang.cc
*** gcc-13.2.0/gcc/c/c-lang.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-lang.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Language-specific hook definitions for C front end.
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Language-specific hook definitions for C front end.
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 25,30 ****
--- 25,32 ----
  #include "langhooks.h"
  #include "langhooks-def.h"
  #include "c-objc-common.h"
+ #include "c-family/c-pragma.h"
+ #include "c-parser.h"
  
  enum c_language_kind c_language = clk_c;
  
*************** c_get_sarif_source_language (const char
*** 61,66 ****
--- 63,77 ----
    return "c";
  }
  
+ /* Implement c-family hook to register language-specific features for
+    __has_{feature,extension}.  */
+ 
+ void
+ c_family_register_lang_features ()
+ {
+   c_register_features ();
+ }
+ 
  #if CHECKING_P
  
  namespace selftest {
diff -Nrcpad gcc-13.2.0/gcc/c/c-lang.h gcc-14.1.0/gcc/c/c-lang.h
*** gcc-13.2.0/gcc/c/c-lang.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-lang.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for C language specific types.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for C language specific types.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** struct GTY(()) language_function {
*** 61,75 ****
  };
  
  struct GTY(()) c_omp_declare_target_attr {
    int device_type;
  };
  
! /* If non-zero, implicit "omp declare target" attribute is added into the
     attribute lists.  */
  extern GTY(()) vec<c_omp_declare_target_attr, va_gc>
    *current_omp_declare_target_attribute;
  /* Similarly whether we are in between #pragma omp begin assumes and
     #pragma omp end assumes (and how many times when nested).  */
! extern GTY(()) int current_omp_begin_assumes;
  
  #endif /* ! GCC_C_LANG_H */
--- 61,82 ----
  };
  
  struct GTY(()) c_omp_declare_target_attr {
+   bool attr_syntax;
    int device_type;
+   int indirect;
  };
  
! struct GTY(()) c_omp_begin_assumes_data {
!   bool attr_syntax;
! };
! 
! /* If non-empty, implicit "omp declare target" attribute is added into the
     attribute lists.  */
  extern GTY(()) vec<c_omp_declare_target_attr, va_gc>
    *current_omp_declare_target_attribute;
  /* Similarly whether we are in between #pragma omp begin assumes and
     #pragma omp end assumes (and how many times when nested).  */
! extern GTY(()) vec<c_omp_begin_assumes_data, va_gc>
!   *current_omp_begin_assumes;
  
  #endif /* ! GCC_C_LANG_H */
diff -Nrcpad gcc-13.2.0/gcc/c/c-objc-common.cc gcc-14.1.0/gcc/c/c-objc-common.cc
*** gcc-13.2.0/gcc/c/c-objc-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-objc-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Some code common to C and ObjC front ends.
!    Copyright (C) 2001-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Some code common to C and ObjC front ends.
!    Copyright (C) 2001-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 30,39 ****
--- 30,73 ----
  #include "gcc-rich-location.h"
  #include "stringpool.h"
  #include "attribs.h"
+ #include "dwarf2.h"
  
  static bool c_tree_printer (pretty_printer *, text_info *, const char *,
  			    int, bool, bool, bool, bool *, const char **);
  
+ /* Info for C language features which can be queried through
+    __has_{feature,extension}.  */
+ 
+ struct c_feature_info
+ {
+   const char *ident;
+   const int *enable_flag;
+ };
+ 
+ static const c_feature_info c_feature_table[] =
+ {
+   { "c_alignas", &flag_isoc11 },
+   { "c_alignof", &flag_isoc11 },
+   { "c_atomic", &flag_isoc11 },
+   { "c_generic_selections", &flag_isoc11 },
+   { "c_static_assert", &flag_isoc11 },
+   { "c_thread_local", &flag_isoc11 },
+   { "cxx_binary_literals", &flag_isoc23 }
+ };
+ 
+ /* Register features specific to the C language.  */
+ 
+ void
+ c_register_features ()
+ {
+   for (unsigned i = 0; i < ARRAY_SIZE (c_feature_table); i++)
+     {
+       const c_feature_info *info = c_feature_table + i;
+       const bool feat_p = !info->enable_flag || *info->enable_flag;
+       c_common_register_feature (info->ident, feat_p);
+     }
+ }
+ 
  bool
  c_missing_noreturn_ok_p (tree decl)
  {
*************** c_tree_printer (pretty_printer *pp, text
*** 272,278 ****
  
    if (*spec != 'v')
      {
!       t = va_arg (*text->args_ptr, tree);
        if (set_locus)
  	text->set_location (0, DECL_SOURCE_LOCATION (t),
  			    SHOW_RANGE_WITH_CARET);
--- 306,312 ----
  
    if (*spec != 'v')
      {
!       t = va_arg (*text->m_args_ptr, tree);
        if (set_locus)
  	text->set_location (0, DECL_SOURCE_LOCATION (t),
  			    SHOW_RANGE_WITH_CARET);
*************** c_tree_printer (pretty_printer *pp, text
*** 316,322 ****
        return true;
  
      case 'v':
!       pp_c_cv_qualifiers (cpp, va_arg (*text->args_ptr, int), hash);
        return true;
  
      default:
--- 350,356 ----
        return true;
  
      case 'v':
!       pp_c_cv_qualifiers (cpp, va_arg (*text->m_args_ptr, int), hash);
        return true;
  
      default:
*************** c_get_alias_set (tree t)
*** 389,394 ****
--- 423,433 ----
    if (TREE_CODE (t) == ENUMERAL_TYPE)
      return get_alias_set (ENUM_UNDERLYING_TYPE (t));
  
+   /* Structs with variable size can alias different incompatible
+      structs.  Let them alias anything.   */
+   if (RECORD_OR_UNION_TYPE_P (t) && C_TYPE_VARIABLE_SIZE (t))
+     return 0;
+ 
    return c_common_get_alias_set (t);
  }
  
*************** instantiation_dependent_expression_p (tr
*** 408,410 ****
--- 447,471 ----
  {
    return false;
  }
+ 
+ /* Return -1 if dwarf ATTR shouldn't be added for TYPE, or the attribute
+    value otherwise.  */
+ int
+ c_type_dwarf_attribute (const_tree type, int attr)
+ {
+   if (type == NULL_TREE)
+     return -1;
+ 
+   switch (attr)
+     {
+     case DW_AT_export_symbols:
+       if (RECORD_OR_UNION_TYPE_P (type) && TYPE_NAME (type) == NULL_TREE)
+ 	return 1;
+       break;
+ 
+     default:
+       break;
+     }
+ 
+   return -1;
+ }
diff -Nrcpad gcc-13.2.0/gcc/c/c-objc-common.h gcc-14.1.0/gcc/c/c-objc-common.h
*** gcc-13.2.0/gcc/c/c-objc-common.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-objc-common.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Language hooks common to C and ObjC front ends.
!    Copyright (C) 2004-2023 Free Software Foundation, Inc.
     Contributed by Ziemowit Laski  <zlaski@apple.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Language hooks common to C and ObjC front ends.
!    Copyright (C) 2004-2024 Free Software Foundation, Inc.
     Contributed by Ziemowit Laski  <zlaski@apple.com>
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,31 ****
--- 21,36 ----
  #ifndef GCC_C_OBJC_COMMON
  #define GCC_C_OBJC_COMMON
  
+ /* Implemented in c-objc-common.cc.  */
+ extern void c_register_features ();
+ 
  /* Lang hooks that are shared between C and ObjC are defined here.  Hooks
     specific to C or ObjC go in c-lang.cc and objc/objc-lang.cc, respectively.  */
  
  #undef LANG_HOOKS_IDENTIFIER_SIZE
  #define LANG_HOOKS_IDENTIFIER_SIZE C_SIZEOF_STRUCT_LANG_IDENTIFIER
+ #undef LANG_HOOKS_TREE_SIZE
+ #define LANG_HOOKS_TREE_SIZE c_tree_size
  #undef LANG_HOOKS_FINISH
  #define LANG_HOOKS_FINISH c_common_finish
  #undef LANG_HOOKS_OPTION_LANG_MASK
*************** along with GCC; see the file COPYING3.
*** 70,80 ****
  #undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
  #define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
  
! /* Attribute hooks.  */
! #undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
! #define LANG_HOOKS_COMMON_ATTRIBUTE_TABLE c_common_attribute_table
! #undef LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE
! #define LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE c_common_format_attribute_table
  
  #undef LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN
  #define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN c_dump_tree
--- 75,89 ----
  #undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
  #define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
  
! static const scoped_attribute_specs *const c_objc_attribute_table[] =
! {
!   &std_attribute_table,
!   &c_common_gnu_attribute_table,
!   &c_common_format_attribute_table
! };
! 
! #undef LANG_HOOKS_ATTRIBUTE_TABLE
! #define LANG_HOOKS_ATTRIBUTE_TABLE c_objc_attribute_table
  
  #undef LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN
  #define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN c_dump_tree
*************** along with GCC; see the file COPYING3.
*** 110,115 ****
--- 119,127 ----
  #undef LANG_HOOKS_GIMPLIFY_EXPR
  #define LANG_HOOKS_GIMPLIFY_EXPR c_gimplify_expr
  
+ #undef LANG_HOOKS_TYPE_DWARF_ATTRIBUTE
+ #define LANG_HOOKS_TYPE_DWARF_ATTRIBUTE c_type_dwarf_attribute
+ 
  #undef LANG_HOOKS_OMP_PREDETERMINED_SHARING
  #define LANG_HOOKS_OMP_PREDETERMINED_SHARING c_omp_predetermined_sharing
  
diff -Nrcpad gcc-13.2.0/gcc/c/c-parser.cc gcc-14.1.0/gcc/c/c-parser.cc
*** gcc-13.2.0/gcc/c/c-parser.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-parser.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Parser for C and Objective-C.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
--- 1,5 ----
  /* Parser for C and Objective-C.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
*************** c_parse_init (void)
*** 122,135 ****
    mask |= D_CXXONLY;
    if (!flag_isoc99)
      mask |= D_C99;
!   if (!flag_isoc2x)
!     mask |= D_C2X;
    if (flag_no_asm)
      {
        mask |= D_ASM | D_EXT;
        if (!flag_isoc99)
  	mask |= D_EXT89;
!       if (!flag_isoc2x)
  	mask |= D_EXT11;
      }
    if (!c_dialect_objc ())
--- 122,135 ----
    mask |= D_CXXONLY;
    if (!flag_isoc99)
      mask |= D_C99;
!   if (!flag_isoc23)
!     mask |= D_C23;
    if (flag_no_asm)
      {
        mask |= D_ASM | D_EXT;
        if (!flag_isoc99)
  	mask |= D_EXT89;
!       if (!flag_isoc23)
  	mask |= D_EXT11;
      }
    if (!c_dialect_objc ())
*************** struct GTY(()) c_parser {
*** 247,254 ****
--- 247,271 ----
       macro.  */
    BOOL_BITFIELD seen_string_literal : 1;
  
+   /* TRUE if omp::directive, omp::decl or omp::sequence attributes may not
+      appear.  */
+   BOOL_BITFIELD omp_attrs_forbidden_p : 1;
+ 
    /* Location of the last consumed token.  */
    location_t last_token_location;
+ 
+   /* Holds state for parsing collapsed OMP_FOR loops.  Managed by
+      c_parser_omp_for_loop.  */
+   struct omp_for_parse_data * GTY((skip)) omp_for_parse_state;
+ 
+   /* If we're in the context of OpenMP directives written as C23
+      attributes turned into pragma, vector of tokens created from that,
+      otherwise NULL.  */
+   vec<c_token, va_gc> *in_omp_attribute_pragma;
+ 
+   /* Set for omp::decl attribute parsing to the decl to which it
+      appertains.  */
+   tree in_omp_decl_attribute;
  };
  
  /* Return a pointer to the Nth token in PARSERs tokens_buf.  */
*************** c_keyword_starts_typename (enum rid keyw
*** 580,585 ****
--- 597,603 ----
      case RID_DFLOAT128:
      CASE_RID_FLOATN_NX:
      case RID_BOOL:
+     case RID_BITINT:
      case RID_ENUM:
      case RID_STRUCT:
      case RID_UNION:
*************** c_token_starts_declspecs (c_token *token
*** 783,788 ****
--- 801,807 ----
  	case RID_DFLOAT128:
  	CASE_RID_FLOATN_NX:
  	case RID_BOOL:
+ 	case RID_BITINT:
  	case RID_ENUM:
  	case RID_STRUCT:
  	case RID_UNION:
*************** c_parser_skip_until_found (c_parser *par
*** 1282,1288 ****
    unsigned nesting_depth = 0;
  
    if (c_parser_require (parser, type, msgid, matching_location))
!     return;
  
    /* Skip tokens until the desired token is found.  */
    while (true)
--- 1301,1319 ----
    unsigned nesting_depth = 0;
  
    if (c_parser_require (parser, type, msgid, matching_location))
!     {
!       if (UNLIKELY (type == CPP_PRAGMA_EOL) && parser->in_omp_attribute_pragma)
! 	{
! 	  c_token *token = c_parser_peek_token (parser);
! 	  if (token->type == CPP_EOF)
! 	    {
! 	      parser->tokens = &parser->tokens_buf[0];
! 	      parser->tokens_avail = token->flags;
! 	      parser->in_omp_attribute_pragma = NULL;
! 	    }
! 	}
!       return;
!     }
  
    /* Skip tokens until the desired token is found.  */
    while (true)
*************** c_parser_skip_until_found (c_parser *par
*** 1293,1298 ****
--- 1324,1340 ----
        if (token->type == type && !nesting_depth)
  	{
  	  c_parser_consume_token (parser);
+ 	  if (UNLIKELY (type == CPP_PRAGMA_EOL)
+ 	      && parser->in_omp_attribute_pragma)
+ 	    {
+ 	      c_token *token = c_parser_peek_token (parser);
+ 	      if (token->type == CPP_EOF)
+ 		{
+ 		  parser->tokens = &parser->tokens_buf[0];
+ 		  parser->tokens_avail = token->flags;
+ 		  parser->in_omp_attribute_pragma = NULL;
+ 		}
+ 	    }
  	  break;
  	}
  
*************** c_parser_skip_to_pragma_eol (c_parser *p
*** 1377,1382 ****
--- 1419,1435 ----
      }
    while (token_type != CPP_PRAGMA_EOL);
  
+   if (parser->in_omp_attribute_pragma)
+     {
+       c_token *token = c_parser_peek_token (parser);
+       if (token->type == CPP_EOF)
+ 	{
+ 	  parser->tokens = &parser->tokens_buf[0];
+ 	  parser->tokens_avail = token->flags;
+ 	  parser->in_omp_attribute_pragma = NULL;
+ 	}
+     }
+ 
    parser->error = false;
  }
  
*************** disable_extension_diagnostics (void)
*** 1478,1486 ****
  	     /* Similarly for warn_c99_c11_compat.  */
  	     | ((warn_c99_c11_compat == 1) << 9)
  	     | ((warn_c99_c11_compat == -1) << 10)
! 	     /* Similarly for warn_c11_c2x_compat.  */
! 	     | ((warn_c11_c2x_compat == 1) << 11)
! 	     | ((warn_c11_c2x_compat == -1) << 12)
  	     );
    cpp_opts->cpp_pedantic = pedantic = 0;
    warn_pointer_arith = 0;
--- 1531,1539 ----
  	     /* Similarly for warn_c99_c11_compat.  */
  	     | ((warn_c99_c11_compat == 1) << 9)
  	     | ((warn_c99_c11_compat == -1) << 10)
! 	     /* Similarly for warn_c11_c23_compat.  */
! 	     | ((warn_c11_c23_compat == 1) << 11)
! 	     | ((warn_c11_c23_compat == -1) << 12)
  	     );
    cpp_opts->cpp_pedantic = pedantic = 0;
    warn_pointer_arith = 0;
*************** disable_extension_diagnostics (void)
*** 1491,1497 ****
    warn_overlength_strings = 0;
    warn_c90_c99_compat = 0;
    warn_c99_c11_compat = 0;
!   warn_c11_c2x_compat = 0;
    return ret;
  }
  
--- 1544,1550 ----
    warn_overlength_strings = 0;
    warn_c90_c99_compat = 0;
    warn_c99_c11_compat = 0;
!   warn_c11_c23_compat = 0;
    return ret;
  }
  
*************** restore_extension_diagnostics (int flags
*** 1511,1517 ****
    /* See above for why is this needed.  */
    warn_c90_c99_compat = (flags >> 7) & 1 ? 1 : ((flags >> 8) & 1 ? -1 : 0);
    warn_c99_c11_compat = (flags >> 9) & 1 ? 1 : ((flags >> 10) & 1 ? -1 : 0);
!   warn_c11_c2x_compat = (flags >> 11) & 1 ? 1 : ((flags >> 12) & 1 ? -1 : 0);
  }
  
  /* Helper data structure for parsing #pragma acc routine.  */
--- 1564,1570 ----
    /* See above for why is this needed.  */
    warn_c90_c99_compat = (flags >> 7) & 1 ? 1 : ((flags >> 8) & 1 ? -1 : 0);
    warn_c99_c11_compat = (flags >> 9) & 1 ? 1 : ((flags >> 10) & 1 ? -1 : 0);
!   warn_c11_c23_compat = (flags >> 11) & 1 ? 1 : ((flags >> 12) & 1 ? -1 : 0);
  }
  
  /* Helper data structure for parsing #pragma acc routine.  */
*************** struct oacc_routine_data {
*** 1525,1530 ****
--- 1578,1621 ----
  /* Used for parsing objc foreach statements.  */
  static tree objc_foreach_break_label, objc_foreach_continue_label;
  
+ /* Used for parsing OMP for loops.
+ 
+    Some notes on flags used for context:
+    parser->omp_for_parse_state is non-null anywhere inside the OMP FOR
+    construct, except for the final-loop-body.
+    The want_nested_loop flag is true if inside a {} sequence where
+    a loop-nest (or another {} sequence containing a loop-nest) is expected,
+    but has not yet been seen.  It's false when parsing intervening code
+    statements or their substatements that cannot contain a loop-nest.
+    The in_intervening_code flag is true when parsing any intervening code,
+    including substatements, and whether or not want_nested_loop is true.
+ 
+    And, about error handling:
+    The saw_intervening_code flag is set if the loop is not perfectly
+    nested, even in the usual case where this is not an error.
+    perfect_nesting_fail is set if an error has been diagnosed because an
+    imperfectly-nested loop was found where a perfectly-nested one is
+    required (we diagnose this only once).
+    fail is set if any kind of structural error in the loop nest
+    has been found and diagnosed.
+   */
+ struct omp_for_parse_data {
+   enum tree_code code;
+   tree declv, condv, incrv, initv;
+   tree pre_body;
+   tree bindings;
+   int count;	/* Expected nesting depth.  */
+   int depth;	/* Current nesting depth.  */
+   location_t for_loc;
+   bool ordered : 1;
+   bool inscan : 1;
+   bool want_nested_loop : 1;
+   bool in_intervening_code : 1;
+   bool saw_intervening_code: 1;
+   bool perfect_nesting_fail : 1;
+   bool fail : 1;
+ };
+ 
  static bool c_parser_nth_token_starts_std_attributes (c_parser *,
  						      unsigned int);
  static tree c_parser_std_attribute_specifier_sequence (c_parser *);
*************** static void c_parser_declaration_or_fnde
*** 1537,1547 ****
  					   tree attrs = NULL,
  					   struct oacc_routine_data * = NULL,
  					   bool * = NULL);
  static void c_parser_static_assert_declaration_no_semi (c_parser *);
  static void c_parser_static_assert_declaration (c_parser *);
  static struct c_typespec c_parser_enum_specifier (c_parser *);
  static struct c_typespec c_parser_struct_or_union_specifier (c_parser *);
! static tree c_parser_struct_declaration (c_parser *);
  static struct c_typespec c_parser_typeof_specifier (c_parser *);
  static tree c_parser_alignas_specifier (c_parser *);
  static struct c_declarator *c_parser_direct_declarator (c_parser *, bool,
--- 1628,1640 ----
  					   tree attrs = NULL,
  					   struct oacc_routine_data * = NULL,
  					   bool * = NULL);
+ static bool c_parser_handle_statement_omp_attributes (c_parser *, tree &,
+ 						      bool *);
  static void c_parser_static_assert_declaration_no_semi (c_parser *);
  static void c_parser_static_assert_declaration (c_parser *);
  static struct c_typespec c_parser_enum_specifier (c_parser *);
  static struct c_typespec c_parser_struct_or_union_specifier (c_parser *);
! static tree c_parser_struct_declaration (c_parser *, tree *);
  static struct c_typespec c_parser_typeof_specifier (c_parser *);
  static tree c_parser_alignas_specifier (c_parser *);
  static struct c_declarator *c_parser_direct_declarator (c_parser *, bool,
*************** static tree c_parser_c99_block_statement
*** 1572,1580 ****
  					  location_t * = NULL);
  static void c_parser_if_statement (c_parser *, bool *, vec<tree> *);
  static void c_parser_switch_statement (c_parser *, bool *);
! static void c_parser_while_statement (c_parser *, bool, unsigned short, bool *);
! static void c_parser_do_statement (c_parser *, bool, unsigned short);
! static void c_parser_for_statement (c_parser *, bool, unsigned short, bool *);
  static tree c_parser_asm_statement (c_parser *);
  static tree c_parser_asm_operands (c_parser *);
  static tree c_parser_asm_goto_operands (c_parser *);
--- 1665,1675 ----
  					  location_t * = NULL);
  static void c_parser_if_statement (c_parser *, bool *, vec<tree> *);
  static void c_parser_switch_statement (c_parser *, bool *);
! static void c_parser_while_statement (c_parser *, bool, unsigned short, bool,
! 				      bool *);
! static void c_parser_do_statement (c_parser *, bool, unsigned short, bool);
! static void c_parser_for_statement (c_parser *, bool, unsigned short, bool,
! 				    bool *);
  static tree c_parser_asm_statement (c_parser *);
  static tree c_parser_asm_operands (c_parser *);
  static tree c_parser_asm_goto_operands (c_parser *);
*************** static void c_parser_omp_threadprivate (
*** 1616,1621 ****
--- 1711,1717 ----
  static void c_parser_omp_barrier (c_parser *);
  static void c_parser_omp_depobj (c_parser *);
  static void c_parser_omp_flush (c_parser *);
+ static tree c_parser_omp_loop_nest (c_parser *, bool *);
  static tree c_parser_omp_for_loop (location_t, c_parser *, enum tree_code,
  				   tree, tree *, bool *);
  static void c_parser_omp_taskwait (c_parser *);
*************** static bool c_parser_omp_declare (c_pars
*** 1634,1639 ****
--- 1730,1736 ----
  static void c_parser_omp_requires (c_parser *);
  static bool c_parser_omp_error (c_parser *, enum pragma_context);
  static void c_parser_omp_assumption_clauses (c_parser *, bool);
+ static void c_parser_omp_allocate (c_parser *);
  static void c_parser_omp_assumes (c_parser *);
  static bool c_parser_omp_ordered (c_parser *, enum pragma_context, bool *);
  static void c_parser_oacc_routine (c_parser *, enum pragma_context);
*************** public:
*** 1695,1700 ****
--- 1792,1821 ----
      return NULL_TREE;
    }
  
+   tree
+   lookup_type_by_id (tree id) const final override
+   {
+     if (tree type_decl = lookup_name (id))
+ 	if (TREE_CODE (type_decl) == TYPE_DECL)
+ 	  {
+ 	    tree record_type = TREE_TYPE (type_decl);
+ 	    if (TREE_CODE (record_type) == RECORD_TYPE)
+ 	      return record_type;
+ 	  }
+ 
+     return NULL_TREE;
+   }
+ 
+   tree
+   lookup_global_var_by_id (tree id) const final override
+   {
+     if (tree var_decl = lookup_name (id))
+       if (TREE_CODE (var_decl) == VAR_DECL)
+ 				return var_decl;
+ 
+     return NULL_TREE;
+   }
+ 
  private:
    /* Attempt to get an INTEGER_CST from MACRO.
       Only handle the simplest cases: where MACRO's definition is a single
*************** c_parser_translation_unit (c_parser *par
*** 1799,1810 ****
  	       "#pragma omp end declare target");
        vec_safe_truncate (current_omp_declare_target_attribute, 0);
      }
!   if (current_omp_begin_assumes)
      {
        if (!errorcount)
  	error ("%qs without corresponding %qs",
  	       "#pragma omp begin assumes", "#pragma omp end assumes");
!       current_omp_begin_assumes = 0;
      }
  
  #if ENABLE_ANALYZER
--- 1920,1931 ----
  	       "#pragma omp end declare target");
        vec_safe_truncate (current_omp_declare_target_attribute, 0);
      }
!   if (vec_safe_length (current_omp_begin_assumes))
      {
        if (!errorcount)
  	error ("%qs without corresponding %qs",
  	       "#pragma omp begin assumes", "#pragma omp end assumes");
!       vec_safe_truncate (current_omp_begin_assumes, 0);
      }
  
  #if ENABLE_ANALYZER
*************** c_parser_external_declaration (c_parser
*** 1927,1932 ****
--- 2048,2055 ----
      }
  }
  
+ static void c_parser_handle_directive_omp_attributes (tree &, vec<c_token> *&,
+ 						      vec<c_token> *);
  static void c_finish_omp_declare_simd (c_parser *, tree, tree, vec<c_token> *);
  static void c_finish_oacc_routine (struct oacc_routine_data *, tree, bool);
  
*************** c_parser_declaration_or_fndef (c_parser
*** 2196,2202 ****
  
    finish_declspecs (specs);
    bool gnu_auto_type_p = specs->typespec_word == cts_auto_type;
!   bool std_auto_type_p = specs->c2x_auto_p;
    bool any_auto_type_p = gnu_auto_type_p || std_auto_type_p;
    gcc_assert (!(gnu_auto_type_p && std_auto_type_p));
    const char *auto_type_keyword = gnu_auto_type_p ? "__auto_type" : "auto";
--- 2319,2325 ----
  
    finish_declspecs (specs);
    bool gnu_auto_type_p = specs->typespec_word == cts_auto_type;
!   bool std_auto_type_p = specs->c23_auto_p;
    bool any_auto_type_p = gnu_auto_type_p || std_auto_type_p;
    gcc_assert (!(gnu_auto_type_p && std_auto_type_p));
    const char *auto_type_keyword = gnu_auto_type_p ? "__auto_type" : "auto";
*************** c_parser_declaration_or_fndef (c_parser
*** 2229,2234 ****
--- 2352,2373 ----
    if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      {
        bool handled_assume = false;
+       if (specs->attrs
+ 	  && !nested
+ 	  && specs->typespec_kind == ctsk_none
+ 	  && c_parser_handle_statement_omp_attributes (parser, specs->attrs,
+ 						       NULL))
+ 	{
+ 	  if (specs->attrs)
+ 	    c_warn_unused_attributes (specs->attrs);
+ 	  while (parser->in_omp_attribute_pragma)
+ 	    {
+ 	      gcc_assert (c_parser_next_token_is (parser, CPP_PRAGMA));
+ 	      c_parser_pragma (parser, pragma_external, NULL);
+ 	    }
+ 	  c_parser_consume_token (parser);
+ 	  return;
+ 	}
        if (specs->typespec_kind == ctsk_none
  	  && lookup_attribute ("gnu", "assume", specs->attrs))
  	{
*************** c_parser_declaration_or_fndef (c_parser
*** 2263,2268 ****
--- 2402,2410 ----
  	  if (!handled_assume)
  	    pedwarn (here, 0, "empty declaration");
  	}
+       /* We still have to evaluate size expressions.  */
+       if (specs->expr)
+ 	add_stmt (fold_convert (void_type_node, specs->expr));
        c_parser_consume_token (parser);
        if (oacc_routine_data)
  	c_finish_oacc_routine (oacc_routine_data, NULL_TREE, false);
*************** c_parser_declaration_or_fndef (c_parser
*** 2365,2370 ****
--- 2507,2516 ----
      warning_at (here, OPT_Wattributes,
  		"%<assume%> attribute not followed by %<;%>");
  
+   auto_vec<c_token> omp_declare_simd_attr_clauses;
+   c_parser_handle_directive_omp_attributes (specs->attrs,
+ 					    omp_declare_simd_clauses,
+ 					    &omp_declare_simd_attr_clauses);
    pending_xref_error ();
    prefix_attrs = specs->attrs;
    all_prefix_attrs = prefix_attrs;
*************** c_parser_declaration_or_fndef (c_parser
*** 2376,2381 ****
--- 2522,2528 ----
        timevar_id_t tv;
        tree fnbody = NULL_TREE;
        tree underspec_name = NULL_TREE;
+       auto_vec<c_token> omp_dsimd_idattr_clauses;
        /* Declaring either one or more declarators (in which case we
  	 should diagnose if there were no declaration specifiers) or a
  	 function definition (in which case the diagnostic for
*************** c_parser_declaration_or_fndef (c_parser
*** 2393,2398 ****
--- 2540,2554 ----
  	  c_parser_skip_to_end_of_block_or_statement (parser);
  	  return;
  	}
+       if (flag_openmp || flag_openmp_simd)
+ 	{
+ 	  struct c_declarator *d = declarator;
+ 	  while (d->kind != cdk_id)
+ 	    d = d->declarator;
+ 	  vec<c_token> *dummy = NULL;
+ 	  c_parser_handle_directive_omp_attributes (d->u.id.attrs, dummy,
+ 						    &omp_dsimd_idattr_clauses);
+ 	}
        if (gnu_auto_type_p && declarator->kind != cdk_id)
  	{
  	  error_at (here,
*************** c_parser_declaration_or_fndef (c_parser
*** 2504,2510 ****
  		  specs->type = init_type;
  		  if (specs->postfix_attrs)
  		    {
! 		      /* Postfix [[]] attributes are valid with C2X
  			 auto, although not with __auto_type, and
  			 modify the type given by the initializer.  */
  		      specs->postfix_attrs =
--- 2660,2666 ----
  		  specs->type = init_type;
  		  if (specs->postfix_attrs)
  		    {
! 		      /* Postfix [[]] attributes are valid with C23
  			 auto, although not with __auto_type, and
  			 modify the type given by the initializer.  */
  		      specs->postfix_attrs =
*************** c_parser_declaration_or_fndef (c_parser
*** 2532,2537 ****
--- 2688,2696 ----
  		  if (omp_declare_simd_clauses)
  		    c_finish_omp_declare_simd (parser, d, NULL_TREE,
  					       omp_declare_simd_clauses);
+ 		  if (!omp_dsimd_idattr_clauses.is_empty ())
+ 		    c_finish_omp_declare_simd (parser, d, NULL_TREE,
+ 					       &omp_dsimd_idattr_clauses);
  		}
  	      else
  		{
*************** c_parser_declaration_or_fndef (c_parser
*** 2553,2558 ****
--- 2712,2721 ----
  		  if (!specs->constexpr_p && omp_declare_simd_clauses)
  		    c_finish_omp_declare_simd (parser, d, NULL_TREE,
  					       omp_declare_simd_clauses);
+ 		  if (!specs->constexpr_p
+ 		      && !omp_dsimd_idattr_clauses.is_empty ())
+ 		    c_finish_omp_declare_simd (parser, d, NULL_TREE,
+ 					       &omp_dsimd_idattr_clauses);
  		  start_init (d, asm_name,
  			      TREE_STATIC (d) || specs->constexpr_p,
  			      specs->constexpr_p, &richloc);
*************** c_parser_declaration_or_fndef (c_parser
*** 2571,2576 ****
--- 2734,2743 ----
  		      if (omp_declare_simd_clauses)
  			c_finish_omp_declare_simd (parser, d, NULL_TREE,
  						   omp_declare_simd_clauses);
+ 		  if (!specs->constexpr_p
+ 		      && !omp_dsimd_idattr_clauses.is_empty ())
+ 		    c_finish_omp_declare_simd (parser, d, NULL_TREE,
+ 					       &omp_dsimd_idattr_clauses);
  		    }
  		  finish_init ();
  		}
*************** c_parser_declaration_or_fndef (c_parser
*** 2640,2646 ****
  		      warn_parm_array_mismatch (lastloc, d, parms);
  		    }
  		}
! 	      if (omp_declare_simd_clauses)
  		{
  		  tree parms = NULL_TREE;
  		  if (d && TREE_CODE (d) == FUNCTION_DECL)
--- 2807,2814 ----
  		      warn_parm_array_mismatch (lastloc, d, parms);
  		    }
  		}
! 	      if (omp_declare_simd_clauses
! 		  || !omp_dsimd_idattr_clauses.is_empty ())
  		{
  		  tree parms = NULL_TREE;
  		  if (d && TREE_CODE (d) == FUNCTION_DECL)
*************** c_parser_declaration_or_fndef (c_parser
*** 2657,2664 ****
  		    }
  		  if (parms)
  		    temp_store_parm_decls (d, parms);
! 		  c_finish_omp_declare_simd (parser, d, parms,
! 					     omp_declare_simd_clauses);
  		  if (parms)
  		    temp_pop_parm_decls ();
  		}
--- 2825,2837 ----
  		    }
  		  if (parms)
  		    temp_store_parm_decls (d, parms);
! 		  if (omp_declare_simd_clauses)
! 		    c_finish_omp_declare_simd (parser, d, parms,
! 					       omp_declare_simd_clauses);
! 		  if (!specs->constexpr_p
! 		      && !omp_dsimd_idattr_clauses.is_empty ())
! 		    c_finish_omp_declare_simd (parser, d, parms,
! 					       &omp_dsimd_idattr_clauses);
  		  if (parms)
  		    temp_pop_parm_decls ();
  		}
*************** c_parser_declaration_or_fndef (c_parser
*** 2803,2808 ****
--- 2976,2984 ----
        if (omp_declare_simd_clauses)
  	c_finish_omp_declare_simd (parser, current_function_decl, NULL_TREE,
  				   omp_declare_simd_clauses);
+       if (!omp_dsimd_idattr_clauses.is_empty ())
+ 	c_finish_omp_declare_simd (parser, current_function_decl, NULL_TREE,
+ 				   &omp_dsimd_idattr_clauses);
        if (oacc_routine_data)
  	c_finish_oacc_routine (oacc_routine_data, current_function_decl, true);
        location_t startloc = c_parser_peek_token (parser)->location;
*************** c_parser_static_assert_declaration (c_pa
*** 2904,2910 ****
     static_assert-declaration-no-semi:
       _Static_assert ( constant-expression , string-literal )
  
!    C2X:
     static_assert-declaration-no-semi:
       _Static_assert ( constant-expression )
  */
--- 3080,3086 ----
     static_assert-declaration-no-semi:
       _Static_assert ( constant-expression , string-literal )
  
!    C23:
     static_assert-declaration-no-semi:
       _Static_assert ( constant-expression )
  */
*************** c_parser_static_assert_declaration_no_se
*** 2954,2960 ****
    else if (flag_isoc11)
      /* If pedantic for pre-C11, the use of _Static_assert itself will
         have been diagnosed, so do not also diagnose the use of this
!        new C2X feature of _Static_assert.  */
      pedwarn_c11 (assert_loc, OPT_Wpedantic,
  		 "ISO C11 does not support omitting the string in "
  		 "%qE", spelling);
--- 3130,3136 ----
    else if (flag_isoc11)
      /* If pedantic for pre-C11, the use of _Static_assert itself will
         have been diagnosed, so do not also diagnose the use of this
!        new C23 feature of _Static_assert.  */
      pedwarn_c11 (assert_loc, OPT_Wpedantic,
  		 "ISO C11 does not support omitting the string in "
  		 "%qE", spelling);
*************** c_parser_static_assert_declaration_no_se
*** 3046,3051 ****
--- 3222,3228 ----
       _Bool
       _Complex
       [_Imaginary removed in C99 TC2]
+      _BitInt ( constant-expression )
       struct-or-union-specifier
       enum-specifier
       typedef-name
*************** c_parser_static_assert_declaration_no_se
*** 3053,3058 ****
--- 3230,3236 ----
  
     (_Bool and _Complex are new in C99.)
     (atomic-type-specifier is new in C11.)
+    (_BitInt is new in C23.)
  
     C90 6.5.3, C99 6.7.3, C11 6.7.3:
  
*************** c_parser_declspecs (c_parser *parser, st
*** 3179,3185 ****
  	  attrs_ok = true;
  	  if (kind == C_ID_ID)
  	    {
! 	      error_at (loc, "unknown type name %qE", value);
  	      t.kind = ctsk_typedef;
  	      t.spec = error_mark_node;
  	    }
--- 3357,3375 ----
  	  attrs_ok = true;
  	  if (kind == C_ID_ID)
  	    {
! 	      auto_diagnostic_group d;
! 	      name_hint hint = lookup_name_fuzzy (value, FUZZY_LOOKUP_TYPENAME,
! 						  loc);
! 	      if (const char *suggestion = hint.suggestion ())
! 		{
! 		  gcc_rich_location richloc (loc);
! 		  richloc.add_fixit_replace (suggestion);
! 		  error_at (&richloc,
! 			    "unknown type name %qE; did you mean %qs?",
! 			    value, suggestion);
! 		}
! 	      else
! 		error_at (loc, "unknown type name %qE", value);
  	      t.kind = ctsk_typedef;
  	      t.spec = error_mark_node;
  	    }
*************** c_parser_declspecs (c_parser *parser, st
*** 3317,3322 ****
--- 3507,3536 ----
  	  t = c_parser_typeof_specifier (parser);
  	  declspecs_add_type (loc, specs, t);
  	  break;
+ 	case RID_BITINT:
+ 	  if (!typespec_ok)
+ 	    goto out;
+ 	  else
+ 	    {
+ 	      attrs_ok = true;
+ 	      seen_type = true;
+ 	      t.kind = ctsk_resword;
+ 	      t.spec = c_parser_peek_token (parser)->value;
+ 	      t.expr = error_mark_node;
+ 	      t.expr_const_operands = true;
+ 	      t.has_enum_type_specifier = false;
+ 	      c_parser_consume_token (parser);
+ 	      matching_parens parens;
+ 	      if (parens.require_open (parser))
+ 		{
+ 		  c_expr expr = c_parser_expr_no_commas (parser, NULL);
+ 		  t.expr = convert_lvalue_to_rvalue (loc, expr, true,
+ 						     true).value;
+ 		  parens.skip_until_found_close (parser);
+ 		}
+ 	      declspecs_add_type (loc, specs, t);
+ 	    }
+ 	  break;
  	case RID_ATOMIC:
  	  /* C parser handling of Objective-C constructs needs
  	     checking for correct lvalue-to-rvalue conversions, and
*************** c_parser_declspecs (c_parser *parser, st
*** 3422,3428 ****
       enum gnu-attributes[opt] identifier
  
     The form with trailing comma is new in C99; enum-type-specifiers
!    are new in C2x.  The forms with gnu-attributes are GNU extensions.
     In GNU C, we accept any expression without commas in the syntax
     (assignment expressions, not just conditional expressions);
     assignment expressions will be diagnosed as non-constant.
--- 3636,3642 ----
       enum gnu-attributes[opt] identifier
  
     The form with trailing comma is new in C99; enum-type-specifiers
!    are new in C23.  The forms with gnu-attributes are GNU extensions.
     In GNU C, we accept any expression without commas in the syntax
     (assignment expressions, not just conditional expressions);
     assignment expressions will be diagnosed as non-constant.
*************** c_parser_enum_specifier (c_parser *parse
*** 3453,3458 ****
--- 3667,3673 ----
  {
    struct c_typespec ret;
    bool have_std_attrs;
+   bool potential_nesting_p = false;
    tree std_attrs = NULL_TREE;
    tree attrs;
    tree ident = NULL_TREE;
*************** c_parser_enum_specifier (c_parser *parse
*** 3482,3488 ****
      {
        pedwarn_c11 (enum_loc, OPT_Wpedantic,
  		   "ISO C does not support specifying %<enum%> underlying "
! 		   "types before C2X");
        if (ident)
  	{
  	  /* The tag is in scope during the enum-type-specifier (which
--- 3697,3703 ----
      {
        pedwarn_c11 (enum_loc, OPT_Wpedantic,
  		   "ISO C does not support specifying %<enum%> underlying "
! 		   "types before C23");
        if (ident)
  	{
  	  /* The tag is in scope during the enum-type-specifier (which
*************** c_parser_enum_specifier (c_parser *parse
*** 3492,3497 ****
--- 3707,3713 ----
  	  if (!ENUM_FIXED_UNDERLYING_TYPE_P (ret.spec))
  	    error_at (enum_loc, "%<enum%> declared both with and without "
  		      "fixed underlying type");
+ 	  potential_nesting_p = NULL_TREE == TYPE_VALUES (ret.spec);
  	}
        else
  	{
*************** c_parser_enum_specifier (c_parser *parse
*** 3562,3568 ****
  	 forward order at the end.  */
        tree values;
        timevar_push (TV_PARSE_ENUM);
!       type = start_enum (enum_loc, &the_enum, ident, fixed_underlying_type);
        values = NULL_TREE;
        c_parser_consume_token (parser);
        while (true)
--- 3778,3785 ----
  	 forward order at the end.  */
        tree values;
        timevar_push (TV_PARSE_ENUM);
!       type = start_enum (enum_loc, &the_enum, ident, fixed_underlying_type,
! 			 potential_nesting_p);
        values = NULL_TREE;
        c_parser_consume_token (parser);
        while (true)
*************** c_parser_struct_or_union_specifier (c_pa
*** 3782,3787 ****
--- 3999,4005 ----
  	 so we'll be minimizing the number of node traversals required
  	 by chainon.  */
        tree contents;
+       tree expr = NULL;
        timevar_push (TV_PARSE_STRUCT);
        contents = NULL_TREE;
        c_parser_consume_token (parser);
*************** c_parser_struct_or_union_specifier (c_pa
*** 3843,3849 ****
  	    }
  	  /* Parse some comma-separated declarations, but not the
  	     trailing semicolon if any.  */
! 	  decls = c_parser_struct_declaration (parser);
  	  contents = chainon (decls, contents);
  	  /* If no semicolon follows, either we have a parse error or
  	     are at the end of the struct or union and should
--- 4061,4067 ----
  	    }
  	  /* Parse some comma-separated declarations, but not the
  	     trailing semicolon if any.  */
! 	  decls = c_parser_struct_declaration (parser, &expr);
  	  contents = chainon (decls, contents);
  	  /* If no semicolon follows, either we have a parse error or
  	     are at the end of the struct or union and should
*************** c_parser_struct_or_union_specifier (c_pa
*** 3872,3880 ****
        ret.spec = finish_struct (struct_loc, type, nreverse (contents),
  				chainon (std_attrs,
  					 chainon (attrs, postfix_attrs)),
! 				struct_info);
        ret.kind = ctsk_tagdef;
!       ret.expr = NULL_TREE;
        ret.expr_const_operands = true;
        ret.has_enum_type_specifier = false;
        timevar_pop (TV_PARSE_STRUCT);
--- 4090,4098 ----
        ret.spec = finish_struct (struct_loc, type, nreverse (contents),
  				chainon (std_attrs,
  					 chainon (attrs, postfix_attrs)),
! 				struct_info, &expr);
        ret.kind = ctsk_tagdef;
!       ret.expr = expr;
        ret.expr_const_operands = true;
        ret.has_enum_type_specifier = false;
        timevar_pop (TV_PARSE_STRUCT);
*************** c_parser_struct_or_union_specifier (c_pa
*** 3936,3942 ****
     expressions will be diagnosed as non-constant.  */
  
  static tree
! c_parser_struct_declaration (c_parser *parser)
  {
    struct c_declspecs *specs;
    tree prefix_attrs;
--- 4154,4160 ----
     expressions will be diagnosed as non-constant.  */
  
  static tree
! c_parser_struct_declaration (c_parser *parser, tree *expr)
  {
    struct c_declspecs *specs;
    tree prefix_attrs;
*************** c_parser_struct_declaration (c_parser *p
*** 3949,3955 ****
        tree decl;
        ext = disable_extension_diagnostics ();
        c_parser_consume_token (parser);
!       decl = c_parser_struct_declaration (parser);
        restore_extension_diagnostics (ext);
        return decl;
      }
--- 4167,4173 ----
        tree decl;
        ext = disable_extension_diagnostics ();
        c_parser_consume_token (parser);
!       decl = c_parser_struct_declaration (parser, expr);
        restore_extension_diagnostics (ext);
        return decl;
      }
*************** c_parser_struct_declaration (c_parser *p
*** 3995,4001 ****
  
  	  ret = grokfield (c_parser_peek_token (parser)->location,
  			   build_id_declarator (NULL_TREE), specs,
! 			   NULL_TREE, &attrs);
  	  if (ret)
  	    decl_attributes (&ret, attrs, 0);
  	}
--- 4213,4219 ----
  
  	  ret = grokfield (c_parser_peek_token (parser)->location,
  			   build_id_declarator (NULL_TREE), specs,
! 			   NULL_TREE, &attrs, expr);
  	  if (ret)
  	    decl_attributes (&ret, attrs, 0);
  	}
*************** c_parser_struct_declaration (c_parser *p
*** 4056,4062 ****
  	  if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE))
  	    postfix_attrs = c_parser_gnu_attributes (parser);
  	  d = grokfield (c_parser_peek_token (parser)->location,
! 			 declarator, specs, width, &all_prefix_attrs);
  	  decl_attributes (&d, chainon (postfix_attrs,
  					all_prefix_attrs), 0);
  	  DECL_CHAIN (d) = decls;
--- 4274,4280 ----
  	  if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE))
  	    postfix_attrs = c_parser_gnu_attributes (parser);
  	  d = grokfield (c_parser_peek_token (parser)->location,
! 			 declarator, specs, width, &all_prefix_attrs, expr);
  	  decl_attributes (&d, chainon (postfix_attrs,
  					all_prefix_attrs), 0);
  	  DECL_CHAIN (d) = decls;
*************** c_parser_struct_declaration (c_parser *p
*** 4091,4097 ****
    return decls;
  }
  
! /* Parse a typeof specifier (a GNU extension adopted in C2X).
  
     typeof-specifier:
       typeof ( expression )
--- 4309,4315 ----
    return decls;
  }
  
! /* Parse a typeof specifier (a GNU extension adopted in C23).
  
     typeof-specifier:
       typeof ( expression )
*************** c_parser_typeof_specifier (c_parser *par
*** 4115,4128 ****
      {
        is_unqual = false;
        tree spelling = c_parser_peek_token (parser)->value;
!       is_std = (flag_isoc2x
  		&& strcmp (IDENTIFIER_POINTER (spelling), "typeof") == 0);
      }
    else
      {
        gcc_assert (c_parser_next_token_is_keyword (parser, RID_TYPEOF_UNQUAL));
        is_unqual = true;
!       is_std = true;
      }
    c_parser_consume_token (parser);
    c_inhibit_evaluation_warnings++;
--- 4333,4347 ----
      {
        is_unqual = false;
        tree spelling = c_parser_peek_token (parser)->value;
!       is_std = (flag_isoc23
  		&& strcmp (IDENTIFIER_POINTER (spelling), "typeof") == 0);
      }
    else
      {
        gcc_assert (c_parser_next_token_is_keyword (parser, RID_TYPEOF_UNQUAL));
        is_unqual = true;
!       tree spelling = c_parser_peek_token (parser)->value;
!       is_std = strcmp (IDENTIFIER_POINTER (spelling), "typeof_unqual") == 0;
      }
    c_parser_consume_token (parser);
    c_inhibit_evaluation_warnings++;
*************** c_parser_parms_list_declarator (c_parser
*** 4699,4705 ****
        ret->types = NULL_TREE;
        pedwarn_c11 (c_parser_peek_token (parser)->location, OPT_Wpedantic,
  		   "ISO C requires a named argument before %<...%> "
! 		   "before C2X");
        c_parser_consume_token (parser);
        if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
  	{
--- 4918,4924 ----
        ret->types = NULL_TREE;
        pedwarn_c11 (c_parser_peek_token (parser)->location, OPT_Wpedantic,
  		   "ISO C requires a named argument before %<...%> "
! 		   "before C23");
        c_parser_consume_token (parser);
        if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
  	{
*************** c_parser_gnu_attribute_any_word (c_parse
*** 4963,4968 ****
--- 5182,5188 ----
  	case RID_DFLOAT128:
  	CASE_RID_FLOATN_NX:
  	case RID_BOOL:
+ 	case RID_BITINT:
  	case RID_FRACT:
  	case RID_ACCUM:
  	case RID_SAT:
*************** c_parser_balanced_token_sequence (c_pars
*** 5314,5320 ****
      }
  }
  
! /* Parse standard (C2X) attributes (including GNU attributes in the
     gnu:: namespace).
  
     attribute-specifier-sequence:
--- 5534,5668 ----
      }
  }
  
! static bool c_parser_check_balanced_raw_token_sequence (c_parser *,
! 							unsigned int *);
! 
! /* Parse arguments of omp::directive or omp::decl attribute.
! 
!    directive-name ,[opt] clause-list[opt]
! 
!    For directive just remember the tokens in a vector for subsequent
!    parsing.  */
! 
! static void
! c_parser_omp_directive_args (c_parser *parser, tree attribute, bool decl_p)
! {
!   unsigned int n = 1;
!   c_token *first = c_parser_peek_token (parser);
!   if (!c_parser_check_balanced_raw_token_sequence (parser, &n)
!       || (c_parser_peek_nth_token_raw (parser, n)->type
! 	  != CPP_CLOSE_PAREN))
!     {
!       c_parser_balanced_token_sequence (parser);
!       TREE_VALUE (attribute) = NULL_TREE;
!       return;
!     }
!   if (n == 1)
!     {
!       error_at (first->location, "expected OpenMP directive name");
!       TREE_VALUE (attribute) = NULL_TREE;
!       return;
!     }
!   vec<c_token, va_gc> *v;
!   vec_alloc (v, n - 1);
!   for (--n; n; --n)
!     {
!       c_token *tok = c_parser_peek_token (parser);
!       v->quick_push (*tok);
!       c_parser_consume_token (parser);
!     }
!   tree arg = make_node (C_TOKEN_VEC);
!   C_TOKEN_VEC_TOKENS (arg) = v;
!   if (decl_p)
!     TREE_PUBLIC (arg) = 1;
!   TREE_VALUE (attribute) = tree_cons (NULL_TREE, arg, TREE_VALUE (attribute));
! }
! 
! /* Parse arguments of omp::sequence attribute.
! 
!    omp::[opt] directive-attr [ , omp::[opt] directive-attr ]...  */
! 
! static void
! c_parser_omp_sequence_args (c_parser *parser, tree attribute)
! {
!   do
!     {
!       c_token *token = c_parser_peek_token (parser);
!       if (token->type == CPP_NAME
! 	  && strcmp (IDENTIFIER_POINTER (token->value), "omp") == 0
! 	  && c_parser_peek_2nd_token (parser)->type == CPP_SCOPE)
! 	{
! 	  c_parser_consume_token (parser);
! 	  c_parser_consume_token (parser);
! 	  token = c_parser_peek_token (parser);
! 	}
!       bool directive = false;
!       const char *p;
!       if (token->type != CPP_NAME)
! 	p = "";
!       else
! 	p = IDENTIFIER_POINTER (token->value);
!       if (strcmp (p, "directive") == 0)
! 	directive = true;
!       else if (strcmp (p, "sequence") != 0)
! 	{
! 	  error_at (token->location, "expected %<directive%> or %<sequence%>");
! 	  unsigned nesting_depth = 0;
! 
! 	  while (true)
! 	    {
! 	      /* Peek at the next token.  */
! 	      token = c_parser_peek_token (parser);
! 	      /* If we've reached the token we want, consume it and stop.  */
! 	      if ((token->type == CPP_CLOSE_PAREN || token->type == CPP_COMMA)
! 		  && !nesting_depth)
! 		break;
! 	      /* If we've run out of tokens, stop.  */
! 	      if (token->type == CPP_EOF)
! 		break;
! 	      if (token->type == CPP_PRAGMA_EOL && parser->in_pragma)
! 		break;
! 	      if (token->type == CPP_OPEN_BRACE
! 		  || token->type == CPP_OPEN_PAREN
! 		  || token->type == CPP_OPEN_SQUARE)
! 		++nesting_depth;
! 	      else if (token->type == CPP_CLOSE_BRACE
! 		       || token->type == CPP_CLOSE_PAREN
! 		       || token->type == CPP_CLOSE_SQUARE)
! 		{
! 		  if (nesting_depth-- == 0)
! 		    break;
! 		}
! 	      /* Consume this token.  */
! 	      c_parser_consume_token (parser);
! 	    }
! 	  if (c_parser_next_token_is_not (parser, CPP_COMMA))
! 	    break;
! 	  c_parser_consume_token (parser);
! 	  continue;
! 	}
!       c_parser_consume_token (parser);
!       matching_parens parens;
!       if (parens.require_open (parser))
! 	{
! 	  if (directive)
! 	    c_parser_omp_directive_args (parser, attribute, false);
! 	  else
! 	    c_parser_omp_sequence_args (parser, attribute);
! 	  parens.skip_until_found_close (parser);
! 	  if (c_parser_next_token_is_not (parser, CPP_COMMA))
! 	    break;
! 	  c_parser_consume_token (parser);
! 	}
!       else if (c_parser_next_token_is_not (parser, CPP_COMMA))
! 	break;
!       else
! 	c_parser_consume_token (parser);
!     }
!   while (1);
! }
! 
! /* Parse standard (C23) attributes (including GNU attributes in the
     gnu:: namespace).
  
     attribute-specifier-sequence:
*************** c_parser_balanced_token_sequence (c_pars
*** 5347,5353 ****
       ( balanced-token-sequence[opt] )
  
     Keywords are accepted as identifiers for this purpose.
! */
  
  static tree
  c_parser_std_attribute (c_parser *parser, bool for_tm)
--- 5695,5708 ----
       ( balanced-token-sequence[opt] )
  
     Keywords are accepted as identifiers for this purpose.
! 
!    As an extension, we permit an attribute-specifier to be:
! 
!      [ [ __extension__ attribute-list ] ]
! 
!    Two colons are then accepted as a synonym for ::.  No attempt is made
!    to check whether the colons are immediately adjacent.  LOOSE_SCOPE_P
!    indicates whether this relaxation is in effect.  */
  
  static tree
  c_parser_std_attribute (c_parser *parser, bool for_tm)
*************** c_parser_std_attribute (c_parser *parser
*** 5363,5371 ****
      }
    name = canonicalize_attr_name (token->value);
    c_parser_consume_token (parser);
!   if (c_parser_next_token_is (parser, CPP_SCOPE))
      {
        ns = name;
        c_parser_consume_token (parser);
        token = c_parser_peek_token (parser);
        if (token->type != CPP_NAME && token->type != CPP_KEYWORD)
--- 5718,5731 ----
      }
    name = canonicalize_attr_name (token->value);
    c_parser_consume_token (parser);
!   if (c_parser_next_token_is (parser, CPP_SCOPE)
!       || (c_parser_next_token_is (parser, CPP_COLON)
! 	  && (c_parser_peek_token (parser)->flags & COLON_SCOPE) != 0
! 	  && c_parser_peek_2nd_token (parser)->type == CPP_COLON))
      {
        ns = name;
+       if (c_parser_next_token_is (parser, CPP_COLON))
+ 	c_parser_consume_token (parser);
        c_parser_consume_token (parser);
        token = c_parser_peek_token (parser);
        if (token->type != CPP_NAME && token->type != CPP_KEYWORD)
*************** c_parser_std_attribute (c_parser *parser
*** 5383,5389 ****
    /* Parse the arguments, if any.  */
    const attribute_spec *as = lookup_attribute_spec (TREE_PURPOSE (attribute));
    if (c_parser_next_token_is_not (parser, CPP_OPEN_PAREN))
!     goto out;
    {
      location_t open_loc = c_parser_peek_token (parser)->location;
      matching_parens parens;
--- 5743,5761 ----
    /* Parse the arguments, if any.  */
    const attribute_spec *as = lookup_attribute_spec (TREE_PURPOSE (attribute));
    if (c_parser_next_token_is_not (parser, CPP_OPEN_PAREN))
!     {
!       if ((flag_openmp || flag_openmp_simd)
! 	  && ns
! 	  && is_attribute_p ("omp", ns)
! 	  && (is_attribute_p ("directive", name)
! 	      || is_attribute_p ("sequence", name)
! 	      || is_attribute_p ("decl", name)))
! 	{
! 	  error ("%<omp::%E%> attribute requires argument", name);
! 	  return error_mark_node;
! 	}
!       goto out;
!     }
    {
      location_t open_loc = c_parser_peek_token (parser)->location;
      matching_parens parens;
*************** c_parser_std_attribute (c_parser *parser
*** 5420,5426 ****
  					  require_string, assume_attr, false);
        }
      else
!       c_parser_balanced_token_sequence (parser);
      parens.require_close (parser);
    }
   out:
--- 5792,5828 ----
  					  require_string, assume_attr, false);
        }
      else
!       {
! 	if ((flag_openmp || flag_openmp_simd)
! 	    && ns
! 	    && is_attribute_p ("omp", ns))
! 	  {
! 	    if (is_attribute_p ("directive", name))
! 	      {
! 		c_parser_omp_directive_args (parser, attribute, false);
! 		parens.skip_until_found_close (parser);
! 		return attribute;
! 	      }
! 	    else if (is_attribute_p ("decl", name))
! 	      {
! 		TREE_VALUE (TREE_PURPOSE (attribute))
! 		  = get_identifier ("directive");
! 		c_parser_omp_directive_args (parser, attribute, true);
! 		parens.skip_until_found_close (parser);
! 		return attribute;
! 	      }
! 	    else if (is_attribute_p ("sequence", name))
! 	      {
! 		TREE_VALUE (TREE_PURPOSE (attribute))
! 		  = get_identifier ("directive");
! 		c_parser_omp_sequence_args (parser, attribute);
! 		parens.skip_until_found_close (parser);
! 		TREE_VALUE (attribute) = nreverse (TREE_VALUE (attribute));
! 		return attribute;
! 	      }
! 	  }
! 	c_parser_balanced_token_sequence (parser);
!       }
      parens.require_close (parser);
    }
   out:
*************** c_parser_std_attribute (c_parser *parser
*** 5438,5456 ****
  }
  
  static tree
! c_parser_std_attribute_specifier (c_parser *parser, bool for_tm)
  {
-   location_t loc = c_parser_peek_token (parser)->location;
-   if (!c_parser_require (parser, CPP_OPEN_SQUARE, "expected %<[%>"))
-     return NULL_TREE;
-   if (!c_parser_require (parser, CPP_OPEN_SQUARE, "expected %<[%>"))
-     {
-       c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>");
-       return NULL_TREE;
-     }
-   if (!for_tm)
-     pedwarn_c11 (loc, OPT_Wpedantic,
- 		 "ISO C does not support %<[[]]%> attributes before C2X");
    tree attributes = NULL_TREE;
    while (true)
      {
--- 5840,5847 ----
  }
  
  static tree
! c_parser_std_attribute_list (c_parser *parser, bool for_tm)
  {
    tree attributes = NULL_TREE;
    while (true)
      {
*************** c_parser_std_attribute_specifier (c_pars
*** 5471,5476 ****
--- 5862,5896 ----
        if (c_parser_next_token_is_not (parser, CPP_COMMA))
  	break;
      }
+   return attributes;
+ }
+ 
+ static tree
+ c_parser_std_attribute_specifier (c_parser *parser, bool for_tm)
+ {
+   location_t loc = c_parser_peek_token (parser)->location;
+   if (!c_parser_require (parser, CPP_OPEN_SQUARE, "expected %<[%>"))
+     return NULL_TREE;
+   if (!c_parser_require (parser, CPP_OPEN_SQUARE, "expected %<[%>"))
+     {
+       c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>");
+       return NULL_TREE;
+     }
+   tree attributes;
+   if (c_parser_next_token_is_keyword (parser, RID_EXTENSION))
+     {
+       auto ext = disable_extension_diagnostics ();
+       c_parser_consume_token (parser);
+       attributes = c_parser_std_attribute_list (parser, for_tm);
+       restore_extension_diagnostics (ext);
+     }
+   else
+     {
+       if (!for_tm)
+ 	pedwarn_c11 (loc, OPT_Wpedantic,
+ 		     "ISO C does not support %<[[]]%> attributes before C23");
+       attributes = c_parser_std_attribute_list (parser, for_tm);
+     }
    c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>");
    c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>");
    return nreverse (attributes);
*************** c_parser_braced_init (c_parser *parser,
*** 5724,5729 ****
--- 6144,6151 ----
    location_t brace_loc = c_parser_peek_token (parser)->location;
    gcc_obstack_init (&braced_init_obstack);
    gcc_assert (c_parser_next_token_is (parser, CPP_OPEN_BRACE));
+   bool save_c_omp_array_section_p = c_omp_array_section_p;
+   c_omp_array_section_p = false;
    matching_braces braces;
    braces.consume_open (parser);
    if (nested_p)
*************** c_parser_braced_init (c_parser *parser,
*** 5736,5742 ****
    if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
      {
        pedwarn_c11 (brace_loc, OPT_Wpedantic,
! 		   "ISO C forbids empty initializer braces before C2X");
      }
    else
      {
--- 6158,6164 ----
    if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
      {
        pedwarn_c11 (brace_loc, OPT_Wpedantic,
! 		   "ISO C forbids empty initializer braces before C23");
      }
    else
      {
*************** c_parser_braced_init (c_parser *parser,
*** 5762,5767 ****
--- 6184,6190 ----
  	    break;
  	}
      }
+   c_omp_array_section_p = save_c_omp_array_section_p;
    c_token *next_tok = c_parser_peek_token (parser);
    if (next_tok->type != CPP_CLOSE_BRACE)
      {
*************** c_parser_initval (c_parser *parser, stru
*** 6025,6031 ****
  }
  
  /* Parse a compound statement (possibly a function body) (C90 6.6.2,
!    C99 6.8.2, C11 6.8.2, C2X 6.8.2).
  
     compound-statement:
       { block-item-list[opt] }
--- 6448,6454 ----
  }
  
  /* Parse a compound statement (possibly a function body) (C90 6.6.2,
!    C99 6.8.2, C11 6.8.2, C23 6.8.2).
  
     compound-statement:
       { block-item-list[opt] }
*************** c_parser_compound_statement (c_parser *p
*** 6112,6117 ****
--- 6535,6946 ----
    return c_end_compound_stmt (brace_loc, stmt, true);
  }
  
+ /* Diagnose errors related to imperfectly nested loops in an OMP
+    loop construct.  This function is called when such code is seen.
+    Only issue one such diagnostic no matter how much invalid
+    intervening code there is in the loop.
+    FIXME: maybe the location associated with the diagnostic should
+    be the current parser token instead of the location of the outer loop
+    nest.  */
+ 
+ static void
+ check_omp_intervening_code (c_parser *parser)
+ {
+   struct omp_for_parse_data *omp_for_parse_state = parser->omp_for_parse_state;
+   gcc_assert (omp_for_parse_state);
+ 
+   if (!omp_for_parse_state->in_intervening_code)
+     return;
+   omp_for_parse_state->saw_intervening_code = true;
+ 
+   /* Only diagnose errors related to perfect nesting once.  */
+   if (!omp_for_parse_state->perfect_nesting_fail)
+     {
+ 
+       /* OpenACC does not (yet) permit intervening code, in
+ 	 addition to situations forbidden by the OpenMP spec.  */
+       if (omp_for_parse_state->code == OACC_LOOP)
+ 	{
+ 	  error_at (omp_for_parse_state->for_loc,
+ 		    "inner loops must be perfectly nested in "
+ 		    "%<#pragma acc loop%>");
+ 	  omp_for_parse_state->perfect_nesting_fail = true;
+ 	}
+       else if (omp_for_parse_state->ordered)
+ 	{
+ 	  error_at (omp_for_parse_state->for_loc,
+ 		    "inner loops must be perfectly nested with "
+ 		    "%<ordered%> clause");
+ 	  omp_for_parse_state->perfect_nesting_fail = true;
+ 	}
+       else if (omp_for_parse_state->inscan)
+ 	{
+ 	  error_at (omp_for_parse_state->for_loc,
+ 		    "inner loops must be perfectly nested with "
+ 		    "%<reduction%> %<inscan%> clause");
+ 	  omp_for_parse_state->perfect_nesting_fail = true;
+ 	}
+       /* TODO: Also reject loops with TILE directive.  */
+       if (omp_for_parse_state->perfect_nesting_fail)
+ 	omp_for_parse_state->fail = true;
+     }
+ }
+ 
+ /* Helper function for below:  wrap an OMP_STRUCTURED_BLOCK around SL
+    and add the statement to the current list.  If SL is an empty statement
+    list, do nothing.  */
+ static void
+ add_structured_block_stmt (tree sl)
+ {
+   if (TREE_CODE (sl) != STATEMENT_LIST
+       || !tsi_end_p (tsi_start (sl)))
+     add_stmt (build1 (OMP_STRUCTURED_BLOCK, void_type_node, sl));
+ }
+ 
+ struct c_omp_attribute_data
+ {
+   vec<c_token, va_gc> *tokens;
+   const c_omp_directive *dir;
+   c_omp_directive_kind kind;
+ };
+ 
+ /* Handle omp::directive and omp::sequence attributes in ATTRS
+    (if any) at the start of a statement or in attribute-declaration.  */
+ 
+ static bool
+ c_parser_handle_statement_omp_attributes (c_parser *parser, tree &attrs,
+ 					  bool *have_std_attrs)
+ {
+   if (!flag_openmp && !flag_openmp_simd)
+     return false;
+ 
+   auto_vec<c_omp_attribute_data, 16> vd;
+   int cnt = 0;
+   int tokens = 0;
+   bool bad = false;
+   for (tree *pa = &attrs; *pa; )
+     if (is_attribute_namespace_p ("omp", *pa)
+ 	&& is_attribute_p ("directive", get_attribute_name (*pa)))
+       {
+ 	cnt++;
+ 	for (tree a = TREE_VALUE (*pa); a; a = TREE_CHAIN (a))
+ 	  {
+ 	    tree d = TREE_VALUE (a);
+ 	    gcc_assert (TREE_CODE (d) == C_TOKEN_VEC);
+ 	    vec<c_token, va_gc> *toks = C_TOKEN_VEC_TOKENS (d);
+ 	    c_token *first = toks->address ();
+ 	    c_token *last = first + toks->length ();
+ 	    if (parser->omp_attrs_forbidden_p)
+ 	      {
+ 		error_at (first->location,
+ 			  "mixing OpenMP directives with attribute and pragma "
+ 			  "syntax on the same statement");
+ 		parser->omp_attrs_forbidden_p = false;
+ 		bad = true;
+ 	      }
+ 	    else if (TREE_PUBLIC (d))
+ 	      {
+ 		error_at (first->location,
+ 			  "OpenMP %<omp::decl%> attribute on a statement");
+ 		bad = true;
+ 	      }
+ 	    const char *directive[3] = {};
+ 	    for (int i = 0; i < 3; i++)
+ 	      {
+ 		tree id = NULL_TREE;
+ 		if (first + i == last)
+ 		  break;
+ 		if (first[i].type == CPP_NAME)
+ 		  id = first[i].value;
+ 		else if (first[i].type == CPP_KEYWORD)
+ 		  id = ridpointers[(int) first[i].keyword];
+ 		else
+ 		  break;
+ 		directive[i] = IDENTIFIER_POINTER (id);
+ 	      }
+ 	    const c_omp_directive *dir = NULL;
+ 	    if (directive[0])
+ 	      dir = c_omp_categorize_directive (directive[0], directive[1],
+ 						directive[2]);
+ 	    if (dir == NULL)
+ 	      {
+ 		error_at (first->location,
+ 			  "unknown OpenMP directive name in %qs attribute "
+ 			  "argument",
+ 			  TREE_PUBLIC (d) ? "omp::decl" : "omp::directive");
+ 		continue;
+ 	      }
+ 	    c_omp_directive_kind kind = dir->kind;
+ 	    if (dir->id == PRAGMA_OMP_ORDERED)
+ 	      {
+ 		/* ordered is C_OMP_DIR_CONSTRUCT only if it doesn't contain
+ 		   depend/doacross clause.  */
+ 		if (directive[1]
+ 		    && (strcmp (directive[1], "depend") == 0
+ 			|| strcmp (directive[1], "doacross") == 0))
+ 		  kind = C_OMP_DIR_STANDALONE;
+ 		else if (first + 2 < last
+ 			 && first[1].type == CPP_COMMA
+ 			 && first[2].type == CPP_NAME
+ 			 && (strcmp (IDENTIFIER_POINTER (first[2].value),
+ 				     "depend") == 0
+ 			     || strcmp (IDENTIFIER_POINTER (first[2].value),
+ 					"doacross") == 0))
+ 		  kind = C_OMP_DIR_STANDALONE;
+ 	      }
+ 	    else if (dir->id == PRAGMA_OMP_ERROR)
+ 	      {
+ 		/* error with at(execution) clause is C_OMP_DIR_STANDALONE.  */
+ 		int paren_depth = 0;
+ 		for (int i = 1; first + i < last; i++)
+ 		  if (first[i].type == CPP_OPEN_PAREN)
+ 		    paren_depth++;
+ 		  else if (first[i].type == CPP_CLOSE_PAREN)
+ 		    paren_depth--;
+ 		  else if (paren_depth == 0
+ 			   && first + i + 2 < last
+ 			   && first[i].type == CPP_NAME
+ 			   && first[i + 1].type == CPP_OPEN_PAREN
+ 			   && first[i + 2].type == CPP_NAME
+ 			   && !strcmp (IDENTIFIER_POINTER (first[i].value),
+ 				       "at")
+ 			   && !strcmp (IDENTIFIER_POINTER (first[i
+ 								 + 2].value),
+ 				       "execution"))
+ 		    {
+ 		      kind = C_OMP_DIR_STANDALONE;
+ 		      break;
+ 		    }
+ 	      }
+ 	    c_omp_attribute_data v = { toks, dir, kind };
+ 	    vd.safe_push (v);
+ 	    if (flag_openmp || dir->simd)
+ 	      tokens += (last - first) + 1;
+ 	  }
+ 	c_omp_attribute_data v = {};
+ 	vd.safe_push (v);
+ 	*pa = TREE_CHAIN (*pa);
+       }
+     else
+       pa = &TREE_CHAIN (*pa);
+ 
+   if (bad)
+     {
+     fail:
+       if (have_std_attrs && attrs == NULL)
+ 	*have_std_attrs = false;
+       return false;
+     }
+ 
+   unsigned int i;
+   c_omp_attribute_data *v;
+   c_omp_attribute_data *construct_seen = nullptr;
+   c_omp_attribute_data *standalone_seen = nullptr;
+   c_omp_attribute_data *prev_standalone_seen = nullptr;
+   FOR_EACH_VEC_ELT (vd, i, v)
+     if (v->tokens)
+       {
+ 	if (v->kind == C_OMP_DIR_CONSTRUCT && !construct_seen)
+ 	  construct_seen = v;
+ 	else if (v->kind == C_OMP_DIR_STANDALONE && !standalone_seen)
+ 	  standalone_seen = v;
+       }
+     else
+       {
+ 	if (standalone_seen && !prev_standalone_seen)
+ 	  {
+ 	    prev_standalone_seen = standalone_seen;
+ 	    standalone_seen = nullptr;
+ 	  }
+       }
+ 
+   if (cnt > 1 && construct_seen)
+     {
+       error_at ((*construct_seen->tokens)[0].location,
+ 		"OpenMP construct among %<omp::directive%> attributes"
+ 		" requires all %<omp::directive%> attributes on the"
+ 		" same statement to be in the same %<omp::sequence%>");
+       goto fail;
+     }
+   if (cnt > 1 && standalone_seen && prev_standalone_seen)
+     {
+       error_at ((*standalone_seen->tokens)[0].location,
+ 		"multiple OpenMP standalone directives among"
+ 		" %<omp::directive%> attributes must be all within the"
+ 		" same %<omp::sequence%>");
+       goto fail;
+     }
+ 
+   if (prev_standalone_seen)
+     standalone_seen = prev_standalone_seen;
+   if (standalone_seen
+       && !c_parser_next_token_is (parser, CPP_SEMICOLON))
+     {
+       error_at (standalone_seen->tokens->address ()->location,
+ 		"standalone OpenMP directives in %<omp::directive%> attribute"
+ 		" can only appear on an empty statement");
+       goto fail;
+     }
+   if (cnt && c_parser_next_token_is (parser, CPP_PRAGMA))
+     {
+       c_token *token = c_parser_peek_token (parser);
+       enum pragma_kind kind = token->pragma_kind;
+       if (kind >= PRAGMA_OMP__START_ && kind <= PRAGMA_OMP__LAST_)
+ 	{
+ 	  error_at (token->location,
+ 		    "mixing OpenMP directives with attribute and pragma "
+ 		    "syntax on the same statement");
+ 	  goto fail;
+ 	}
+     }
+ 
+   if (!tokens)
+     return false;
+ 
+   unsigned int tokens_avail = parser->tokens_avail;
+   gcc_assert (parser->tokens == &parser->tokens_buf[0]);
+ 
+   tokens++;
+   vec<c_token, va_gc> *toks = NULL;
+   vec_safe_reserve (toks, tokens, true);
+   FOR_EACH_VEC_ELT (vd, i, v)
+     {
+       if (!v->tokens)
+ 	continue;
+       if (!flag_openmp && !v->dir->simd)
+ 	continue;
+       c_token *first = v->tokens->address ();
+       c_token *last = first + v->tokens->length ();
+       c_token tok = {};
+       tok.type = CPP_PRAGMA;
+       tok.keyword = RID_MAX;
+       tok.pragma_kind = pragma_kind (v->dir->id);
+       tok.location = first->location;
+       toks->quick_push (tok);
+       while (++first < last)
+ 	toks->quick_push (*first);
+       tok = {};
+       tok.type = CPP_PRAGMA_EOL;
+       tok.keyword = RID_MAX;
+       tok.location = last[-1].location;
+       toks->quick_push (tok);
+     }
+ 
+   c_token tok = {};
+   tok.type = CPP_EOF;
+   tok.keyword = RID_MAX;
+   tok.location = toks->last ().location;
+   tok.flags = tokens_avail;
+   toks->quick_push (tok);
+ 
+   parser->tokens = toks->address ();
+   parser->tokens_avail = tokens;
+   parser->in_omp_attribute_pragma = toks;
+   return true;
+ }
+ 
+ /* Handle omp::directive and omp::sequence attributes in ATTRS
+    (if any) at the start or after declaration-id of a declaration.  */
+ 
+ static void
+ c_parser_handle_directive_omp_attributes (tree &attrs,
+ 					  vec<c_token> *&pragma_clauses,
+ 					  vec<c_token> *attr_clauses)
+ {
+   if (!flag_openmp && !flag_openmp_simd)
+     return;
+ 
+   for (tree *pa = &attrs; *pa; )
+     if (is_attribute_namespace_p ("omp", *pa)
+ 	&& is_attribute_p ("directive", get_attribute_name (*pa)))
+       {
+ 	int cnt = 0;
+ 	for (tree *pa2 = &TREE_VALUE (*pa); *pa2; )
+ 	  {
+ 	    tree a = *pa2;
+ 	    tree d = TREE_VALUE (a);
+ 	    gcc_assert (TREE_CODE (d) == C_TOKEN_VEC);
+ 	    vec<c_token, va_gc> *toks = C_TOKEN_VEC_TOKENS (d);
+ 	    c_token *first = toks->address ();
+ 	    c_token *last = first + toks->length ();
+ 	    const char *directive[3] = {};
+ 	    for (int i = 0; i < 3; i++)
+ 	      {
+ 		tree id = NULL_TREE;
+ 		if (first + i == last)
+ 		  break;
+ 		if (first[i].type == CPP_NAME)
+ 		  id = first[i].value;
+ 		else if (first[i].type == CPP_KEYWORD)
+ 		  id = ridpointers[(int) first[i].keyword];
+ 		else
+ 		  break;
+ 		directive[i] = IDENTIFIER_POINTER (id);
+ 	      }
+ 	    const c_omp_directive *dir = NULL;
+ 	    if (directive[0])
+ 	      dir = c_omp_categorize_directive (directive[0], directive[1],
+ 						directive[2]);
+ 	    if (dir == NULL)
+ 	      {
+ 		error_at (first->location,
+ 			  "unknown OpenMP directive name in "
+ 			  "%qs attribute argument",
+ 			  TREE_PUBLIC (d) ? "omp::decl" : "omp::directive");
+ 		*pa2 = TREE_CHAIN (a);
+ 	      }
+ 	    else if (dir->id == PRAGMA_OMP_DECLARE
+ 		     && (strcmp (directive[1], "simd") == 0
+ 			 || strcmp (directive[1], "variant") == 0))
+ 	      {
+ 		if (pragma_clauses)
+ 		  {
+ 		    error_at (first->location,
+ 			      "mixing OpenMP directives with attribute and "
+ 			      "pragma syntax on the same declaration");
+ 		    for (pa = &attrs; *pa; )
+ 		      if (is_attribute_namespace_p ("omp", *pa)
+ 			  && is_attribute_p ("directive",
+ 					     get_attribute_name (*pa)))
+ 			*pa = TREE_CHAIN (*pa);
+ 		      else
+ 			pa = &TREE_CHAIN (*pa);
+ 		    return;
+ 		  }
+ 		++cnt;
+ 		attr_clauses->reserve (attr_clauses->length ()
+ 				       + toks->length () + 2);
+ 		for (++first; first < last; ++first)
+ 		  attr_clauses->quick_push (*first);
+ 		c_token tok = {};
+ 		tok.type = CPP_PRAGMA_EOL;
+ 		tok.keyword = RID_MAX;
+ 		tok.location = last[-1].location;
+ 		attr_clauses->quick_push (tok);
+ 		*pa2 = TREE_CHAIN (a);
+ 	      }
+ 	    else
+ 	      pa2 = &TREE_CHAIN (a);
+ 	  }
+ 	if (cnt && TREE_VALUE (*pa) == NULL_TREE)
+ 	  *pa = TREE_CHAIN (*pa);
+ 	else
+ 	  pa = &TREE_CHAIN (*pa);
+       }
+     else
+       pa = &TREE_CHAIN (*pa);
+   if (attr_clauses->length ())
+     {
+       c_token tok = {};
+       tok.type = CPP_EOF;
+       tok.keyword = RID_MAX;
+       tok.location = attr_clauses->last ().location;
+       attr_clauses->quick_push (tok);
+       attr_clauses->quick_push (tok);
+       pragma_clauses = attr_clauses;
+     }
+ }
+ 
  /* Parse a compound statement except for the opening brace.  This is
     used for parsing both compound statements and statement expressions
     (which follow different paths to handling the opening).  */
*************** c_parser_compound_statement_nostart (c_p
*** 6123,6128 ****
--- 6952,6963 ----
    bool last_label = false;
    bool save_valid_for_pragma = valid_location_for_stdc_pragma_p ();
    location_t label_loc = UNKNOWN_LOCATION;  /* Quiet warning.  */
+   struct omp_for_parse_data *omp_for_parse_state
+     = parser->omp_for_parse_state;
+   bool in_omp_loop_block
+     = omp_for_parse_state ? omp_for_parse_state->want_nested_loop : false;
+   tree sl = NULL_TREE;
+ 
    if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
      {
        location_t endloc = c_parser_peek_token (parser)->location;
*************** c_parser_compound_statement_nostart (c_p
*** 6130,6141 ****
--- 6965,6984 ----
        c_parser_consume_token (parser);
        return endloc;
      }
+ 
+   /* If we're parsing a {} sequence in an OMP_FOR body, start a
+      statement list for intervening code.  */
+   if (in_omp_loop_block)
+     sl = push_stmt_list ();
+ 
    mark_valid_location_for_stdc_pragma (true);
    if (c_parser_next_token_is_keyword (parser, RID_LABEL))
      {
        /* Read zero or more forward-declarations for labels that nested
  	 functions can jump to.  */
        mark_valid_location_for_stdc_pragma (false);
+       if (in_omp_loop_block)
+ 	check_omp_intervening_code (parser);
        while (c_parser_next_token_is_keyword (parser, RID_LABEL))
  	{
  	  label_loc = c_parser_peek_token (parser)->location;
*************** c_parser_compound_statement_nostart (c_p
*** 6177,6182 ****
--- 7020,7095 ----
      {
        location_t loc = c_parser_peek_token (parser)->location;
        loc = expansion_point_location_if_in_system_header (loc);
+ 
+       bool want_nested_loop = (omp_for_parse_state
+ 			       ? omp_for_parse_state->want_nested_loop
+ 			       : false);
+ 
+       /* First take care of special cases for OpenMP "canonical loop
+ 	 nest form", that do not allow standard attributes, labels, or
+ 	 __extension__ before the nested statement.  */
+       if (in_omp_loop_block && !last_label)
+ 	{
+ 	  if (want_nested_loop
+ 	      && c_parser_next_token_is_keyword (parser, RID_FOR))
+ 	    {
+ 	      /* Found the next nested loop.  If there were intervening
+ 		 code statements collected before now, wrap them in an
+ 		 OMP_STRUCTURED_BLOCK node, and start a new structured
+ 		 block to hold statements that may come after the FOR.  */
+ 	      gcc_assert (sl);
+ 	      add_structured_block_stmt (pop_stmt_list (sl));
+ 	      omp_for_parse_state->depth++;
+ 	      add_stmt (c_parser_omp_loop_nest (parser, NULL));
+ 	      omp_for_parse_state->depth--;
+ 	      sl = push_stmt_list ();
+ 	      parser->error = false;
+ 	      continue;
+ 	    }
+ 	  else if (want_nested_loop
+ 		   && c_parser_next_token_is (parser, CPP_OPEN_BRACE))
+ 	    {
+ 	      /* If this nested compound statement contains the nested loop,
+ 		 we need to separate the other statements in the current
+ 		 statement into separate blocks of intervening code.  If
+ 		 there's no nested loop, it's all part of the same
+ 		 chunk of intervening code.  */
+ 	      tree pre_sl = pop_stmt_list (sl);
+ 	      tree nested_sl = push_stmt_list ();
+ 	      mark_valid_location_for_stdc_pragma (false);
+ 	      c_parser_statement_after_labels (parser, NULL);
+ 	      nested_sl = pop_stmt_list (nested_sl);
+ 	      if (omp_for_parse_state->want_nested_loop)
+ 		{
+ 		  /* This block didn't contain a loop-nest, so it's
+ 		     all part of the same chunk of intervening code.  */
+ 		  check_omp_intervening_code (parser);
+ 		  sl = push_stmt_list ();
+ 		  add_stmt (pre_sl);
+ 		  add_stmt (nested_sl);
+ 		}
+ 	      else
+ 		{
+ 		  /* It contains the nested loop.  */
+ 		  add_structured_block_stmt (pre_sl);
+ 		  add_stmt (nested_sl);
+ 		  sl = push_stmt_list ();
+ 		}
+ 	      parser->error = false;
+ 	      continue;
+ 	    }
+ 	  else if (c_parser_next_token_is (parser, CPP_SEMICOLON))
+ 	    {
+ 	      /* Prior to implementing the OpenMP 5.1 syntax for canonical
+ 		 loop form, GCC used to accept an empty statements that
+ 		 would now be flagged as intervening code.  Continue to
+ 		 do that, as an extension.  */
+ 	      /* FIXME:  Maybe issue a warning or something here?  */
+ 	      c_parser_consume_token (parser);
+ 	      continue;
+ 	    }
+ 	}
+ 
        /* Standard attributes may start a label, statement or declaration.  */
        bool have_std_attrs
  	= c_parser_nth_token_starts_std_attributes (parser, 1);
*************** c_parser_compound_statement_nostart (c_p
*** 6195,6211 ****
  	  last_label = true;
  	  last_stmt = false;
  	  mark_valid_location_for_stdc_pragma (false);
  	  c_parser_label (parser, std_attrs);
  	}
        else if (c_parser_next_tokens_start_declaration (parser)
  	       || (have_std_attrs
! 		   && c_parser_next_token_is (parser, CPP_SEMICOLON)))
  	{
  	  if (last_label)
  	    pedwarn_c11 (c_parser_peek_token (parser)->location, OPT_Wpedantic,
  			 "a label can only be part of a statement and "
  			 "a declaration is not a statement");
! 
  	  mark_valid_location_for_stdc_pragma (false);
  	  bool fallthru_attr_p = false;
  	  c_parser_declaration_or_fndef (parser, true, !have_std_attrs,
--- 7108,7135 ----
  	  last_label = true;
  	  last_stmt = false;
  	  mark_valid_location_for_stdc_pragma (false);
+ 	  if (in_omp_loop_block)
+ 	    check_omp_intervening_code (parser);
  	  c_parser_label (parser, std_attrs);
  	}
        else if (c_parser_next_tokens_start_declaration (parser)
  	       || (have_std_attrs
! 		   && !c_parser_handle_statement_omp_attributes
! 				(parser, std_attrs, &have_std_attrs)
! 		   && c_parser_next_token_is (parser, CPP_SEMICOLON)
! 		   && (have_std_attrs = true)))
  	{
  	  if (last_label)
  	    pedwarn_c11 (c_parser_peek_token (parser)->location, OPT_Wpedantic,
  			 "a label can only be part of a statement and "
  			 "a declaration is not a statement");
! 	  /* It's unlikely we'll see a nested loop in a declaration in
! 	     intervening code in an OMP loop, but disallow it anyway.  */
! 	  if (in_omp_loop_block)
! 	    {
! 	      check_omp_intervening_code (parser);
! 	      omp_for_parse_state->want_nested_loop = false;
! 	    }
  	  mark_valid_location_for_stdc_pragma (false);
  	  bool fallthru_attr_p = false;
  	  c_parser_declaration_or_fndef (parser, true, !have_std_attrs,
*************** c_parser_compound_statement_nostart (c_p
*** 6213,6218 ****
--- 7137,7144 ----
  					 NULL, have_std_attrs, std_attrs,
  					 NULL, &fallthru_attr_p);
  
+ 	  if (in_omp_loop_block)
+ 	      omp_for_parse_state->want_nested_loop = want_nested_loop;
  	  if (last_stmt && !fallthru_attr_p)
  	    pedwarn_c90 (loc, OPT_Wdeclaration_after_statement,
  			 "ISO C90 forbids mixed declarations and code");
*************** c_parser_compound_statement_nostart (c_p
*** 6240,6248 ****
--- 7166,7183 ----
  	      ext = disable_extension_diagnostics ();
  	      c_parser_consume_token (parser);
  	      last_label = false;
+ 	      /* It's unlikely we'll see a nested loop in a declaration in
+ 		 intervening code in an OMP loop, but disallow it anyway.  */
+ 	      if (in_omp_loop_block)
+ 		{
+ 		  check_omp_intervening_code (parser);
+ 		  omp_for_parse_state->want_nested_loop = false;
+ 		}
  	      mark_valid_location_for_stdc_pragma (false);
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
  					     true);
+ 	      if (in_omp_loop_block)
+ 		omp_for_parse_state->want_nested_loop = want_nested_loop;
  	      /* Following the old parser, __extension__ does not
  		 disable this diagnostic.  */
  	      restore_extension_diagnostics (ext);
*************** c_parser_compound_statement_nostart (c_p
*** 6256,6272 ****
  	}
        else if (c_parser_next_token_is (parser, CPP_PRAGMA))
  	{
! 	  if (have_std_attrs)
  	    c_parser_error (parser, "expected declaration or statement");
  	  /* External pragmas, and some omp pragmas, are not associated
  	     with regular c code, and so are not to be considered statements
  	     syntactically.  This ensures that the user doesn't put them
  	     places that would turn into syntax errors if the directive
  	     were ignored.  */
  	  if (c_parser_pragma (parser,
  			       last_label ? pragma_stmt : pragma_compound,
  			       NULL))
! 	    last_label = false, last_stmt = true;
  	}
        else if (c_parser_next_token_is (parser, CPP_EOF))
  	{
--- 7191,7218 ----
  	}
        else if (c_parser_next_token_is (parser, CPP_PRAGMA))
  	{
! 	  if (have_std_attrs && !parser->in_omp_attribute_pragma)
  	    c_parser_error (parser, "expected declaration or statement");
+ 	  else if (std_attrs)
+ 	    c_warn_unused_attributes (std_attrs);
  	  /* External pragmas, and some omp pragmas, are not associated
  	     with regular c code, and so are not to be considered statements
  	     syntactically.  This ensures that the user doesn't put them
  	     places that would turn into syntax errors if the directive
  	     were ignored.  */
+ 	  if (omp_for_parse_state)
+ 	    omp_for_parse_state->want_nested_loop = false;
  	  if (c_parser_pragma (parser,
  			       last_label ? pragma_stmt : pragma_compound,
  			       NULL))
! 	    {
! 	      last_label = false;
! 	      last_stmt = true;
! 	      if (omp_for_parse_state)
! 		check_omp_intervening_code (parser);
! 	    }
! 	  if (omp_for_parse_state)
! 	    omp_for_parse_state->want_nested_loop = want_nested_loop;
  	}
        else if (c_parser_next_token_is (parser, CPP_EOF))
  	{
*************** c_parser_compound_statement_nostart (c_p
*** 6296,6302 ****
  	  last_label = false;
  	  last_stmt = true;
  	  mark_valid_location_for_stdc_pragma (false);
! 	  c_parser_statement_after_labels (parser, NULL);
  	}
  
        parser->error = false;
--- 7242,7261 ----
  	  last_label = false;
  	  last_stmt = true;
  	  mark_valid_location_for_stdc_pragma (false);
! 	  if (!omp_for_parse_state)
! 	    c_parser_statement_after_labels (parser, NULL);
! 	  else
! 	    {
! 	      /* In canonical loop nest form, nested loops can only appear
! 		 directly, or in a directly nested compound statement.  We
! 		 already took care of those cases above, so now we have
! 		 something else.  This statement and everything inside
! 		 it must be intervening code.  */
! 	      omp_for_parse_state->want_nested_loop = false;
! 	      check_omp_intervening_code (parser);
! 	      c_parser_statement_after_labels (parser, NULL);
! 	      omp_for_parse_state->want_nested_loop = want_nested_loop;
! 	    }
  	}
  
        parser->error = false;
*************** c_parser_compound_statement_nostart (c_p
*** 6305,6312 ****
--- 7264,7284 ----
      pedwarn_c11 (label_loc, OPT_Wpedantic, "label at end of compound statement");
    location_t endloc = c_parser_peek_token (parser)->location;
    c_parser_consume_token (parser);
+ 
    /* Restore the value we started with.  */
    mark_valid_location_for_stdc_pragma (save_valid_for_pragma);
+ 
+   /* Package leftover intervening code, or the whole contents of the
+      compound statement if we were looking for a nested loop in an OMP_FOR
+      construct and didn't find one.  */
+   if (sl)
+     {
+       sl = pop_stmt_list (sl);
+       if (omp_for_parse_state->want_nested_loop)
+ 	add_stmt (sl);
+       else
+ 	add_structured_block_stmt (sl);
+     }
    return endloc;
  }
  
*************** c_parser_compound_statement_nostart (c_p
*** 6318,6330 ****
  static void
  c_parser_all_labels (c_parser *parser)
  {
    tree std_attrs = NULL;
!   if (c_parser_nth_token_starts_std_attributes (parser, 1))
!     {
!       std_attrs = c_parser_std_attribute_specifier_sequence (parser);
!       if (c_parser_next_token_is (parser, CPP_SEMICOLON))
! 	c_parser_error (parser, "expected statement");
!     }
    while (c_parser_next_token_is_keyword (parser, RID_CASE)
  	 || c_parser_next_token_is_keyword (parser, RID_DEFAULT)
  	 || (c_parser_next_token_is (parser, CPP_NAME)
--- 7290,7299 ----
  static void
  c_parser_all_labels (c_parser *parser)
  {
+   bool have_std_attrs;
    tree std_attrs = NULL;
!   if ((have_std_attrs = c_parser_nth_token_starts_std_attributes (parser, 1)))
!     std_attrs = c_parser_std_attribute_specifier_sequence (parser);
    while (c_parser_next_token_is_keyword (parser, RID_CASE)
  	 || c_parser_next_token_is_keyword (parser, RID_DEFAULT)
  	 || (c_parser_next_token_is (parser, CPP_NAME)
*************** c_parser_all_labels (c_parser *parser)
*** 6332,6346 ****
      {
        c_parser_label (parser, std_attrs);
        std_attrs = NULL;
!       if (c_parser_nth_token_starts_std_attributes (parser, 1))
! 	{
! 	  std_attrs = c_parser_std_attribute_specifier_sequence (parser);
! 	  if (c_parser_next_token_is (parser, CPP_SEMICOLON))
! 	    c_parser_error (parser, "expected statement");
! 	}
      }
!    if (std_attrs)
!      c_warn_unused_attributes (std_attrs);
  }
  
  /* Parse a label (C90 6.6.1, C99 6.8.1, C11 6.8.1).
--- 7301,7320 ----
      {
        c_parser_label (parser, std_attrs);
        std_attrs = NULL;
!       if ((have_std_attrs = c_parser_nth_token_starts_std_attributes (parser,
! 								      1)))
! 	std_attrs = c_parser_std_attribute_specifier_sequence (parser);
      }
!   if (std_attrs
!       && (!c_parser_handle_statement_omp_attributes (parser, std_attrs, &have_std_attrs)
! 	  || std_attrs))
!     {
!       if (have_std_attrs && c_parser_next_token_is (parser, CPP_SEMICOLON))
! 	c_parser_error (parser, "expected statement");
!       c_warn_unused_attributes (std_attrs);
!     }
!   else if (have_std_attrs && c_parser_next_token_is (parser, CPP_SEMICOLON))
!     c_parser_error (parser, "expected statement");
  }
  
  /* Parse a label (C90 6.6.1, C99 6.8.1, C11 6.8.1).
*************** c_parser_statement (c_parser *parser, bo
*** 6587,6592 ****
--- 7561,7567 ----
    c_parser_all_labels (parser);
    if (loc_after_labels)
      *loc_after_labels = c_parser_peek_token (parser)->location;
+   parser->omp_attrs_forbidden_p = false;
    c_parser_statement_after_labels (parser, if_p, NULL);
  }
  
*************** c_parser_statement_after_labels (c_parse
*** 6628,6640 ****
  	  c_parser_switch_statement (parser, if_p);
  	  break;
  	case RID_WHILE:
! 	  c_parser_while_statement (parser, false, 0, if_p);
  	  break;
  	case RID_DO:
! 	  c_parser_do_statement (parser, false, 0);
  	  break;
  	case RID_FOR:
! 	  c_parser_for_statement (parser, false, 0, if_p);
  	  break;
  	case RID_GOTO:
  	  c_parser_consume_token (parser);
--- 7603,7615 ----
  	  c_parser_switch_statement (parser, if_p);
  	  break;
  	case RID_WHILE:
! 	  c_parser_while_statement (parser, false, 0, false, if_p);
  	  break;
  	case RID_DO:
! 	  c_parser_do_statement (parser, false, 0, false);
  	  break;
  	case RID_FOR:
! 	  c_parser_for_statement (parser, false, 0, false, if_p);
  	  break;
  	case RID_GOTO:
  	  c_parser_consume_token (parser);
*************** c_parser_switch_statement (c_parser *par
*** 7130,7136 ****
  
  static void
  c_parser_while_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 			  bool *if_p)
  {
    tree block, cond, body;
    unsigned char save_in_statement;
--- 8105,8111 ----
  
  static void
  c_parser_while_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 			  bool novector, bool *if_p)
  {
    tree block, cond, body;
    unsigned char save_in_statement;
*************** c_parser_while_statement (c_parser *pars
*** 7138,7143 ****
--- 8113,8126 ----
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_WHILE));
    token_indent_info while_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
+ 
+   if (parser->omp_for_parse_state)
+     {
+       error_at (c_parser_peek_token (parser)->location,
+ 		"loop not permitted in intervening code in OpenMP loop body");
+       parser->omp_for_parse_state->fail = true;
+     }
+ 
    c_parser_consume_token (parser);
    block = c_begin_compound_stmt (flag_isoc99);
    loc = c_parser_peek_token (parser)->location;
*************** c_parser_while_statement (c_parser *pars
*** 7152,7157 ****
--- 8135,8145 ----
  		   build_int_cst (integer_type_node,
  				  annot_expr_unroll_kind),
  		   build_int_cst (integer_type_node, unroll));
+   if (novector && cond != error_mark_node)
+     cond = build3 (ANNOTATE_EXPR, TREE_TYPE (cond), cond,
+ 		   build_int_cst (integer_type_node,
+ 				  annot_expr_no_vector_kind),
+ 		   integer_zero_node);
    save_in_statement = in_statement;
    in_statement = IN_ITERATION_STMT;
  
*************** c_parser_while_statement (c_parser *pars
*** 7183,7194 ****
  */
  
  static void
! c_parser_do_statement (c_parser *parser, bool ivdep, unsigned short unroll)
  {
    tree block, cond, body;
    unsigned char save_in_statement;
    location_t loc;
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_DO));
    c_parser_consume_token (parser);
    if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      warning_at (c_parser_peek_token (parser)->location,
--- 8171,8191 ----
  */
  
  static void
! c_parser_do_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 		       bool novector)
  {
    tree block, cond, body;
    unsigned char save_in_statement;
    location_t loc;
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_DO));
+ 
+   if (parser->omp_for_parse_state)
+     {
+       error_at (c_parser_peek_token (parser)->location,
+ 		"loop not permitted in intervening code in OpenMP loop body");
+       parser->omp_for_parse_state->fail = true;
+     }
+ 
    c_parser_consume_token (parser);
    if (c_parser_next_token_is (parser, CPP_SEMICOLON))
      warning_at (c_parser_peek_token (parser)->location,
*************** c_parser_do_statement (c_parser *parser,
*** 7212,7217 ****
--- 8209,8219 ----
  		   build_int_cst (integer_type_node,
  				  annot_expr_unroll_kind),
   		   build_int_cst (integer_type_node, unroll));
+   if (novector && cond != error_mark_node)
+     cond = build3 (ANNOTATE_EXPR, TREE_TYPE (cond), cond,
+ 		   build_int_cst (integer_type_node,
+ 				  annot_expr_no_vector_kind),
+ 		   integer_zero_node);
    if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>"))
      c_parser_skip_to_end_of_block_or_statement (parser);
  
*************** c_parser_do_statement (c_parser *parser,
*** 7280,7286 ****
  
  static void
  c_parser_for_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 			bool *if_p)
  {
    tree block, cond, incr, body;
    unsigned char save_in_statement;
--- 8282,8288 ----
  
  static void
  c_parser_for_statement (c_parser *parser, bool ivdep, unsigned short unroll,
! 			bool novector, bool *if_p)
  {
    tree block, cond, incr, body;
    unsigned char save_in_statement;
*************** c_parser_for_statement (c_parser *parser
*** 7295,7300 ****
--- 8297,8310 ----
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR));
    token_indent_info for_tinfo
      = get_token_indent_info (c_parser_peek_token (parser));
+ 
+   if (parser->omp_for_parse_state)
+     {
+       error_at (for_loc,
+ 		"loop not permitted in intervening code in OpenMP loop body");
+       parser->omp_for_parse_state->fail = true;
+     }
+ 
    c_parser_consume_token (parser);
    /* Open a compound statement in Objective-C as well, just in case this is
       as foreach expression.  */
*************** c_parser_for_statement (c_parser *parser
*** 7436,7441 ****
--- 8446,8456 ----
   			   build_int_cst (integer_type_node,
  					  annot_expr_unroll_kind),
  			   build_int_cst (integer_type_node, unroll));
+ 	  if (novector && cond && cond != error_mark_node)
+ 	    cond = build3 (ANNOTATE_EXPR, TREE_TYPE (cond), cond,
+ 			   build_int_cst (integer_type_node,
+ 					  annot_expr_no_vector_kind),
+ 			   integer_zero_node);
  	}
        /* Parse the increment expression (the third expression in a
  	 for-statement).  In the case of a foreach-statement, this is
*************** c_parser_conditional_expression (c_parse
*** 8135,8140 ****
--- 9150,9156 ----
  {
    struct c_expr cond, exp1, exp2, ret;
    location_t start, cond_loc, colon_loc;
+   bool save_c_omp_array_section_p = c_omp_array_section_p;
  
    gcc_assert (!after || c_dialect_objc ());
  
*************** c_parser_conditional_expression (c_parse
*** 8142,8147 ****
--- 9158,9164 ----
  
    if (c_parser_next_token_is_not (parser, CPP_QUERY))
      return cond;
+   c_omp_array_section_p = false;
    if (cond.value != error_mark_node)
      start = cond.get_start ();
    else
*************** c_parser_conditional_expression (c_parse
*** 8194,8199 ****
--- 9211,9217 ----
        ret.set_error ();
        ret.original_code = ERROR_MARK;
        ret.original_type = NULL;
+       c_omp_array_section_p = save_c_omp_array_section_p;
        return ret;
      }
    {
*************** c_parser_conditional_expression (c_parse
*** 8240,8245 ****
--- 9258,9264 ----
      }
    set_c_expr_source_range (&ret, start, exp2.get_finish ());
    ret.m_decimal = 0;
+   c_omp_array_section_p = save_c_omp_array_section_p;
    return ret;
  }
  
*************** c_parser_alignof_expression (c_parser *p
*** 8933,8939 ****
  			 || strcmp (IDENTIFIER_POINTER (alignof_spelling),
  				    "alignof") == 0);
    /* A diagnostic is not required for the use of this identifier in
!      the implementation namespace; only diagnose it for the C11 or C2X
       spelling because of existing code using the other spellings.  */
    if (is_c11_alignof)
      {
--- 9952,9958 ----
  			 || strcmp (IDENTIFIER_POINTER (alignof_spelling),
  				    "alignof") == 0);
    /* A diagnostic is not required for the use of this identifier in
!      the implementation namespace; only diagnose it for the C11 or C23
       spelling because of existing code using the other spellings.  */
    if (is_c11_alignof)
      {
*************** c_parser_generic_selection (c_parser *pa
*** 9334,9340 ****
--- 10353,10369 ----
  	  return error_expr;
  	}
  
+       bool match = assoc.type == NULL_TREE
+ 		   || comptypes (assoc.type, selector_type);
+ 
+       if (!match)
+ 	c_inhibit_evaluation_warnings++;
+ 
        assoc.expression = c_parser_expr_no_commas (parser, NULL);
+ 
+       if (!match)
+ 	  c_inhibit_evaluation_warnings--;
+ 
        if (assoc.expression.value == error_mark_node)
  	{
  	  c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
*************** c_parser_generic_selection (c_parser *pa
*** 9371,9377 ****
  	      match_found = associations.length ();
  	    }
  	}
!       else if (comptypes (assoc.type, selector_type))
  	{
  	  if (match_found < 0 || matched_assoc.type == NULL_TREE)
  	    {
--- 10400,10406 ----
  	      match_found = associations.length ();
  	    }
  	}
!       else if (match)
  	{
  	  if (match_found < 0 || matched_assoc.type == NULL_TREE)
  	    {
*************** c_parser_postfix_expression (c_parser *p
*** 9681,9686 ****
--- 10710,10716 ----
  	  /* A statement expression.  */
  	  tree stmt;
  	  location_t brace_loc;
+ 	  bool save_c_omp_array_section_p = c_omp_array_section_p;
  	  c_parser_consume_token (parser);
  	  brace_loc = c_parser_peek_token (parser)->location;
  	  c_parser_consume_token (parser);
*************** c_parser_postfix_expression (c_parser *p
*** 9697,9702 ****
--- 10727,10733 ----
  	      expr.set_error ();
  	      break;
  	    }
+ 	  c_omp_array_section_p = false;
  	  stmt = c_begin_stmt_expr ();
  	  c_parser_compound_statement_nostart (parser);
  	  location_t close_loc = c_parser_peek_token (parser)->location;
*************** c_parser_postfix_expression (c_parser *p
*** 9707,9712 ****
--- 10738,10744 ----
  	  expr.value = c_finish_stmt_expr (brace_loc, stmt);
  	  set_c_expr_source_range (&expr, loc, close_loc);
  	  mark_exp_read (expr.value);
+ 	  c_omp_array_section_p = save_c_omp_array_section_p;
  	}
        else
  	{
*************** c_parser_postfix_expression (c_parser *p
*** 10722,10727 ****
--- 11754,12071 ----
  	    set_c_expr_source_range (&expr, start_loc, end_loc);
  	  }
  	  break;
+ 	case RID_BUILTIN_STDC:
+ 	  {
+ 	    vec<c_expr_t, va_gc> *cexpr_list;
+ 	    c_expr_t *arg_p;
+ 	    location_t close_paren_loc;
+ 	    enum c_builtin_stdc {
+ 	      C_BUILTIN_STDC_BIT_CEIL,
+ 	      C_BUILTIN_STDC_BIT_FLOOR,
+ 	      C_BUILTIN_STDC_BIT_WIDTH,
+ 	      C_BUILTIN_STDC_COUNT_ONES,
+ 	      C_BUILTIN_STDC_COUNT_ZEROS,
+ 	      C_BUILTIN_STDC_FIRST_LEADING_ONE,
+ 	      C_BUILTIN_STDC_FIRST_LEADING_ZERO,
+ 	      C_BUILTIN_STDC_FIRST_TRAILING_ONE,
+ 	      C_BUILTIN_STDC_FIRST_TRAILING_ZERO,
+ 	      C_BUILTIN_STDC_HAS_SINGLE_BIT,
+ 	      C_BUILTIN_STDC_LEADING_ONES,
+ 	      C_BUILTIN_STDC_LEADING_ZEROS,
+ 	      C_BUILTIN_STDC_TRAILING_ONES,
+ 	      C_BUILTIN_STDC_TRAILING_ZEROS,
+ 	      C_BUILTIN_STDC_MAX
+ 	    } stdc_rid = C_BUILTIN_STDC_MAX;
+ 	    const char *name
+ 	      = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+ 	    switch (name[sizeof ("__builtin_stdc_") - 1])
+ 	      {
+ 	      case 'b':
+ 		switch (name[sizeof ("__builtin_stdc_bit_") - 1])
+ 		  {
+ 		  case 'c':
+ 		    stdc_rid = C_BUILTIN_STDC_BIT_CEIL;
+ 		    break;
+ 		  case 'f':
+ 		    stdc_rid = C_BUILTIN_STDC_BIT_FLOOR;
+ 		    break;
+ 		  default:
+ 		    stdc_rid = C_BUILTIN_STDC_BIT_WIDTH;
+ 		    break;
+ 		  }
+ 		break;
+ 	      case 'c':
+ 		if (name[sizeof ("__builtin_stdc_count_") - 1] == 'o')
+ 		  stdc_rid = C_BUILTIN_STDC_COUNT_ONES;
+ 		else
+ 		  stdc_rid = C_BUILTIN_STDC_COUNT_ZEROS;
+ 		break;
+ 	      case 'f':
+ 		switch (name[sizeof ("__builtin_stdc_first_trailing_") - 1])
+ 		  {
+ 		  case 'n':
+ 		    stdc_rid = C_BUILTIN_STDC_FIRST_LEADING_ONE;
+ 		    break;
+ 		  case 'e':
+ 		    stdc_rid = C_BUILTIN_STDC_FIRST_LEADING_ZERO;
+ 		    break;
+ 		  case 'o':
+ 		    stdc_rid = C_BUILTIN_STDC_FIRST_TRAILING_ONE;
+ 		    break;
+ 		  default:
+ 		    stdc_rid = C_BUILTIN_STDC_FIRST_TRAILING_ZERO;
+ 		    break;
+ 		  }
+ 		break;
+ 	      case 'h':
+ 		stdc_rid = C_BUILTIN_STDC_HAS_SINGLE_BIT;
+ 		break;
+ 	      case 'l':
+ 		if (name[sizeof ("__builtin_stdc_leading_") - 1] == 'o')
+ 		  stdc_rid = C_BUILTIN_STDC_LEADING_ONES;
+ 		else
+ 		  stdc_rid = C_BUILTIN_STDC_LEADING_ZEROS;
+ 		break;
+ 	      case 't':
+ 		if (name[sizeof ("__builtin_stdc_trailing_") - 1] == 'o')
+ 		  stdc_rid = C_BUILTIN_STDC_TRAILING_ONES;
+ 		else
+ 		  stdc_rid = C_BUILTIN_STDC_TRAILING_ZEROS;
+ 		break;
+ 	      }
+ 	    gcc_checking_assert (stdc_rid != C_BUILTIN_STDC_MAX);
+ 
+ 	    c_parser_consume_token (parser);
+ 	    if (!c_parser_get_builtin_args (parser, name,
+ 					    &cexpr_list, false,
+ 					    &close_paren_loc))
+ 	      {
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 
+ 	    if (vec_safe_length (cexpr_list) != 1)
+ 	      {
+ 		error_at (loc, "wrong number of arguments to %qs", name);
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 
+ 	    arg_p = &(*cexpr_list)[0];
+ 	    *arg_p = convert_lvalue_to_rvalue (loc, *arg_p, true, true);
+ 	    if (!INTEGRAL_TYPE_P (TREE_TYPE (arg_p->value)))
+ 	      {
+ 		error_at (loc, "%qs operand not an integral type", name);
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 	    if (TREE_CODE (TREE_TYPE (arg_p->value)) == ENUMERAL_TYPE)
+ 	      {
+ 		error_at (loc, "argument %u in call to function "
+ 			  "%qs has enumerated type", 1, name);
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 	    if (TREE_CODE (TREE_TYPE (arg_p->value)) == BOOLEAN_TYPE)
+ 	      {
+ 		error_at (loc, "argument %u in call to function "
+ 			  "%qs has boolean type", 1, name);
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 	    if (!TYPE_UNSIGNED (TREE_TYPE (arg_p->value)))
+ 	      {
+ 		error_at (loc, "argument 1 in call to function "
+ 			  "%qs has signed type", name);
+ 		expr.set_error ();
+ 		break;
+ 	      }
+ 	    tree arg = arg_p->value;
+ 	    tree type = TYPE_MAIN_VARIANT (TREE_TYPE (arg));
+ 	    /* Expand:
+ 	       __builtin_stdc_leading_zeros (arg) as
+ 		 (unsigned int) __builtin_clzg (arg, prec)
+ 	       __builtin_stdc_leading_ones (arg) as
+ 		 (unsigned int) __builtin_clzg ((type) ~arg, prec)
+ 	       __builtin_stdc_trailing_zeros (arg) as
+ 		 (unsigned int) __builtin_ctzg (arg, prec)
+ 	       __builtin_stdc_trailing_ones (arg) as
+ 		 (unsigned int) __builtin_ctzg ((type) ~arg, prec)
+ 	       __builtin_stdc_first_leading_zero (arg) as
+ 		 __builtin_clzg ((type) ~arg, -1) + 1U
+ 	       __builtin_stdc_first_leading_one (arg) as
+ 		 __builtin_clzg (arg, -1) + 1U
+ 	       __builtin_stdc_first_trailing_zero (arg) as
+ 		 __builtin_ctzg ((type) ~arg, -1) + 1U
+ 	       __builtin_stdc_first_trailing_one (arg) as
+ 		 __builtin_ctzg (arg, -1) + 1U
+ 	       __builtin_stdc_count_zeros (arg) as
+ 		 (unsigned int) __builtin_popcountg ((type) ~arg)
+ 	       __builtin_stdc_count_ones (arg) as
+ 		 (unsigned int) __builtin_popcountg (arg)
+ 	       __builtin_stdc_has_single_bit (arg) as
+ 		 (_Bool) (__builtin_popcountg (arg) == 1)
+ 	       __builtin_stdc_bit_width (arg) as
+ 		 (unsigned int) (prec - __builtin_clzg (arg, prec))
+ 	       __builtin_stdc_bit_floor (arg) as
+ 		 arg == 0 ? (type) 0
+ 			  : (type) 1 << (prec - 1 - __builtin_clzg (arg))
+ 	       __builtin_stdc_bit_ceil (arg) as
+ 		 arg <= 1 ? (type) 1
+ 			  : (type) 2 << (prec - 1 - __builtin_clzg (arg - 1))
+ 	       without evaluating arg multiple times, type being
+ 	       __typeof (arg) and prec __builtin_popcountg ((type) ~0)).  */
+ 	    int prec = TYPE_PRECISION (type);
+ 	    tree barg1 = arg;
+ 	    switch (stdc_rid)
+ 	      {
+ 	      case C_BUILTIN_STDC_BIT_CEIL:
+ 		arg = save_expr (arg);
+ 		barg1 = build2_loc (loc, PLUS_EXPR, type, arg,
+ 				    build_int_cst (type, -1));
+ 		break;
+ 	      case C_BUILTIN_STDC_BIT_FLOOR:
+ 		barg1 = arg = save_expr (arg);
+ 		break;
+ 	      case C_BUILTIN_STDC_COUNT_ZEROS:
+ 	      case C_BUILTIN_STDC_FIRST_LEADING_ZERO:
+ 	      case C_BUILTIN_STDC_FIRST_TRAILING_ZERO:
+ 	      case C_BUILTIN_STDC_LEADING_ONES:
+ 	      case C_BUILTIN_STDC_TRAILING_ONES:
+ 		barg1 = build1_loc (loc, BIT_NOT_EXPR, type, arg);
+ 		break;
+ 	      default:
+ 		break;
+ 	      }
+ 	    tree barg2 = NULL_TREE;
+ 	    switch (stdc_rid)
+ 	      {
+ 	      case C_BUILTIN_STDC_BIT_WIDTH:
+ 	      case C_BUILTIN_STDC_LEADING_ONES:
+ 	      case C_BUILTIN_STDC_LEADING_ZEROS:
+ 	      case C_BUILTIN_STDC_TRAILING_ONES:
+ 	      case C_BUILTIN_STDC_TRAILING_ZEROS:
+ 		barg2 = build_int_cst (integer_type_node, prec);
+ 		break;
+ 	      case C_BUILTIN_STDC_FIRST_LEADING_ONE:
+ 	      case C_BUILTIN_STDC_FIRST_LEADING_ZERO:
+ 	      case C_BUILTIN_STDC_FIRST_TRAILING_ONE:
+ 	      case C_BUILTIN_STDC_FIRST_TRAILING_ZERO:
+ 		barg2 = integer_minus_one_node;
+ 		break;
+ 	      default:
+ 		break;
+ 	      }
+ 	    tree fndecl = NULL_TREE;
+ 	    switch (stdc_rid)
+ 	      {
+ 	      case C_BUILTIN_STDC_BIT_CEIL:
+ 	      case C_BUILTIN_STDC_BIT_FLOOR:
+ 	      case C_BUILTIN_STDC_BIT_WIDTH:
+ 	      case C_BUILTIN_STDC_FIRST_LEADING_ONE:
+ 	      case C_BUILTIN_STDC_FIRST_LEADING_ZERO:
+ 	      case C_BUILTIN_STDC_LEADING_ONES:
+ 	      case C_BUILTIN_STDC_LEADING_ZEROS:
+ 		fndecl = builtin_decl_explicit (BUILT_IN_CLZG);
+ 		break;
+ 	      case C_BUILTIN_STDC_FIRST_TRAILING_ONE:
+ 	      case C_BUILTIN_STDC_FIRST_TRAILING_ZERO:
+ 	      case C_BUILTIN_STDC_TRAILING_ONES:
+ 	      case C_BUILTIN_STDC_TRAILING_ZEROS:
+ 		fndecl = builtin_decl_explicit (BUILT_IN_CTZG);
+ 		break;
+ 	      case C_BUILTIN_STDC_COUNT_ONES:
+ 	      case C_BUILTIN_STDC_COUNT_ZEROS:
+ 	      case C_BUILTIN_STDC_HAS_SINGLE_BIT:
+ 		fndecl = builtin_decl_explicit (BUILT_IN_POPCOUNTG);
+ 		break;
+ 	      default:
+ 		gcc_unreachable ();
+ 	      }
+ 	    /* Construct a call to __builtin_{clz,ctz,popcount}g.  */
+ 	    int nargs = barg2 != NULL_TREE ? 2 : 1;
+ 	    vec<tree, va_gc> *args;
+ 	    vec_alloc (args, nargs);
+ 	    vec<tree, va_gc> *origtypes;
+ 	    vec_alloc (origtypes, nargs);
+ 	    auto_vec<location_t> arg_loc (nargs);
+ 	    args->quick_push (barg1);
+ 	    arg_loc.quick_push (arg_p->get_location ());
+ 	    origtypes->quick_push (arg_p->original_type);
+ 	    if (nargs == 2)
+ 	      {
+ 		args->quick_push (barg2);
+ 		arg_loc.quick_push (loc);
+ 		origtypes->quick_push (integer_type_node);
+ 	      }
+ 	    expr.value = c_build_function_call_vec (loc, arg_loc, fndecl,
+ 						    args, origtypes);
+ 	    set_c_expr_source_range (&expr, loc, close_paren_loc);
+ 	    if (expr.value == error_mark_node)
+ 	      break;
+ 	    switch (stdc_rid)
+ 	      {
+ 	      case C_BUILTIN_STDC_BIT_CEIL:
+ 	      case C_BUILTIN_STDC_BIT_FLOOR:
+ 		--prec;
+ 		/* FALLTHRU */
+ 	      case C_BUILTIN_STDC_BIT_WIDTH:
+ 		expr.value = build2_loc (loc, MINUS_EXPR, integer_type_node,
+ 					 build_int_cst (integer_type_node,
+ 							prec), expr.value);
+ 		break;
+ 	      case C_BUILTIN_STDC_FIRST_LEADING_ONE:
+ 	      case C_BUILTIN_STDC_FIRST_LEADING_ZERO:
+ 	      case C_BUILTIN_STDC_FIRST_TRAILING_ONE:
+ 	      case C_BUILTIN_STDC_FIRST_TRAILING_ZERO:
+ 		expr.value = build2_loc (loc, PLUS_EXPR, integer_type_node,
+ 					 expr.value, integer_one_node);
+ 		break;
+ 	      case C_BUILTIN_STDC_HAS_SINGLE_BIT:
+ 		expr.value = build2_loc (loc, EQ_EXPR, boolean_type_node,
+ 					 expr.value, integer_one_node);
+ 		break;
+ 	      default:
+ 		break;
+ 	      }
+ 
+ 	    if (stdc_rid != C_BUILTIN_STDC_BIT_CEIL
+ 		&& stdc_rid != C_BUILTIN_STDC_BIT_FLOOR)
+ 	      {
+ 		if (stdc_rid != C_BUILTIN_STDC_HAS_SINGLE_BIT)
+ 		  expr.value = fold_convert_loc (loc, unsigned_type_node,
+ 						 expr.value);
+ 		break;
+ 	      }
+ 	    /* For __builtin_stdc_bit_ceil (0U) or __builtin_stdc_bit_ceil (1U)
+ 	       or __builtin_stdc_bit_floor (0U) avoid bogus -Wshift-count-*
+ 	       warnings.  The LSHIFT_EXPR is in dead code in that case.  */
+ 	    if (integer_zerop (arg)
+ 		|| (stdc_rid == C_BUILTIN_STDC_BIT_CEIL && integer_onep (arg)))
+ 	      expr.value = build_int_cst (type, 0);
+ 	    else
+ 	      expr.value
+ 		= build2_loc (loc, LSHIFT_EXPR, type,
+ 			      build_int_cst (type,
+ 					     (stdc_rid
+ 					      == C_BUILTIN_STDC_BIT_CEIL
+ 					      ? 2 : 1)), expr.value);
+ 	    if (stdc_rid == C_BUILTIN_STDC_BIT_CEIL)
+ 	      expr.value = build3_loc (loc, COND_EXPR, type,
+ 				       build2_loc (loc, LE_EXPR,
+ 						   boolean_type_node, arg,
+ 						   build_int_cst (type, 1)),
+ 				       build_int_cst (type, 1),
+ 				       expr.value);
+ 	    else
+ 	      expr.value = build3_loc (loc, COND_EXPR, type,
+ 				       build2_loc (loc, EQ_EXPR,
+ 						   boolean_type_node, arg,
+ 						   build_int_cst (type, 0)),
+ 				       build_int_cst (type, 0),
+ 				       expr.value);
+ 	    break;
+ 	  }
  	case RID_AT_SELECTOR:
  	  {
  	    gcc_assert (c_dialect_objc ());
*************** c_parser_postfix_expression (c_parser *p
*** 10805,10811 ****
  	  expr.value = nullptr_node;
  	  set_c_expr_source_range (&expr, tok_range);
  	  pedwarn_c11 (loc, OPT_Wpedantic,
! 		       "ISO C does not support %qs before C2X", "nullptr");
  	  break;
  	case RID_TRUE:
  	  c_parser_consume_token (parser);
--- 12149,12155 ----
  	  expr.value = nullptr_node;
  	  set_c_expr_source_range (&expr, tok_range);
  	  pedwarn_c11 (loc, OPT_Wpedantic,
! 		       "ISO C does not support %qs before C23", "nullptr");
  	  break;
  	case RID_TRUE:
  	  c_parser_consume_token (parser);
*************** c_parser_postfix_expression_after_paren_
*** 10957,10963 ****
  		    "ISO C90 forbids compound literals") && scspecs)
      pedwarn_c11 (start_loc, OPT_Wpedantic,
  		 "ISO C forbids storage class specifiers in compound literals "
! 		 "before C2X");
    non_const = ((init.value && TREE_CODE (init.value) == CONSTRUCTOR)
  	       ? CONSTRUCTOR_NON_CONST (init.value)
  	       : init.original_code == C_MAYBE_CONST_EXPR);
--- 12301,12307 ----
  		    "ISO C90 forbids compound literals") && scspecs)
      pedwarn_c11 (start_loc, OPT_Wpedantic,
  		 "ISO C forbids storage class specifiers in compound literals "
! 		 "before C23");
    non_const = ((init.value && TREE_CODE (init.value) == CONSTRUCTOR)
  	       ? CONSTRUCTOR_NON_CONST (init.value)
  	       : init.original_code == C_MAYBE_CONST_EXPR);
*************** c_parser_postfix_expression_after_primar
*** 11165,11173 ****
  					   struct c_expr expr)
  {
    struct c_expr orig_expr;
!   tree ident, idx;
!   location_t sizeof_arg_loc[3], comp_loc;
!   tree sizeof_arg[3];
    unsigned int literal_zero_mask;
    unsigned int i;
    vec<tree, va_gc> *exprlist;
--- 12509,12517 ----
  					   struct c_expr expr)
  {
    struct c_expr orig_expr;
!   tree ident, idx, len;
!   location_t sizeof_arg_loc[6], comp_loc;
!   tree sizeof_arg[6];
    unsigned int literal_zero_mask;
    unsigned int i;
    vec<tree, va_gc> *exprlist;
*************** c_parser_postfix_expression_after_primar
*** 11184,11195 ****
  	case CPP_OPEN_SQUARE:
  	  /* Array reference.  */
  	  c_parser_consume_token (parser);
! 	  idx = c_parser_expression (parser).value;
  	  c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE,
  				     "expected %<]%>");
  	  start = expr.get_start ();
  	  finish = parser->tokens_buf[0].location;
- 	  expr.value = build_array_ref (op_loc, expr.value, idx);
  	  set_c_expr_source_range (&expr, start, finish);
  	  expr.original_code = ERROR_MARK;
  	  expr.original_type = NULL;
--- 12528,12556 ----
  	case CPP_OPEN_SQUARE:
  	  /* Array reference.  */
  	  c_parser_consume_token (parser);
! 	  idx = len = NULL_TREE;
! 	  if (!c_omp_array_section_p
! 	      || c_parser_next_token_is_not (parser, CPP_COLON))
! 	    idx = c_parser_expression (parser).value;
! 
! 	  if (c_omp_array_section_p
! 	      && c_parser_next_token_is (parser, CPP_COLON))
! 	    {
! 	      c_parser_consume_token (parser);
! 	      if (c_parser_next_token_is_not (parser, CPP_CLOSE_SQUARE))
! 		len = c_parser_expression (parser).value;
! 
! 	      expr.value = build_omp_array_section (op_loc, expr.value, idx,
! 						    len);
! 	    }
! 	  else
! 	    expr.value = build_array_ref (op_loc, expr.value, idx);
! 
  	  c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE,
  				     "expected %<]%>");
+ 
  	  start = expr.get_start ();
  	  finish = parser->tokens_buf[0].location;
  	  set_c_expr_source_range (&expr, start, finish);
  	  expr.original_code = ERROR_MARK;
  	  expr.original_type = NULL;
*************** c_parser_postfix_expression_after_primar
*** 11200,11206 ****
  	  {
  	    matching_parens parens;
  	    parens.consume_open (parser);
! 	    for (i = 0; i < 3; i++)
  	      {
  		sizeof_arg[i] = NULL_TREE;
  		sizeof_arg_loc[i] = UNKNOWN_LOCATION;
--- 12561,12567 ----
  	  {
  	    matching_parens parens;
  	    parens.consume_open (parser);
! 	    for (i = 0; i < 6; i++)
  	      {
  		sizeof_arg[i] = NULL_TREE;
  		sizeof_arg_loc[i] = UNKNOWN_LOCATION;
*************** c_parser_postfix_expression_after_primar
*** 11208,11213 ****
--- 12569,12597 ----
  	    literal_zero_mask = 0;
  	    if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
  	      exprlist = NULL;
+ 	    else if (TREE_CODE (expr.value) == FUNCTION_DECL
+ 		     && fndecl_built_in_p (expr.value, BUILT_IN_CLASSIFY_TYPE)
+ 		     && c_parser_next_tokens_start_typename (parser,
+ 							     cla_prefer_id))
+ 	      {
+ 		/* __builtin_classify_type (type)  */
+ 		c_inhibit_evaluation_warnings++;
+ 		in_alignof++;
+ 		struct c_type_name *type = c_parser_type_name (parser);
+ 		c_inhibit_evaluation_warnings--;
+ 		in_alignof--;
+ 		struct c_typespec ret;
+ 		ret.expr = NULL_TREE;
+ 		ret.spec = error_mark_node;
+ 		ret.expr_const_operands = false;
+ 		if (type != NULL)
+ 		  ret.spec = groktypename (type, &ret.expr,
+ 					   &ret.expr_const_operands);
+ 		parens.skip_until_found_close (parser);
+ 		expr.value = build_int_cst (integer_type_node,
+ 					    type_to_class (ret.spec));
+ 		break;
+ 	      }
  	    else
  	      exprlist = c_parser_expr_list (parser, true, false, &origtypes,
  					     sizeof_arg_loc, sizeof_arg,
*************** c_parser_postfix_expression_after_primar
*** 11234,11239 ****
--- 12618,12638 ----
  		  && fndecl_built_in_p (expr.value, BUILT_IN_NORMAL)
  		  && vec_safe_length (exprlist) == 1)
  		warn_for_abs (expr_loc, expr.value, (*exprlist)[0]);
+ 	      if (parser->omp_for_parse_state
+ 		  && parser->omp_for_parse_state->in_intervening_code
+ 		  && omp_runtime_api_call (expr.value))
+ 		{
+ 		  error_at (expr_loc, "calls to the OpenMP runtime API are "
+ 				      "not permitted in intervening code");
+ 		  parser->omp_for_parse_state->fail = true;
+ 		}
+ 	      if (warn_calloc_transposed_args)
+ 		if (tree attr = lookup_attribute ("alloc_size",
+ 						  TYPE_ATTRIBUTES
+ 						    (TREE_TYPE (expr.value))))
+ 		  if (TREE_VALUE (attr) && TREE_CHAIN (TREE_VALUE (attr)))
+ 		    warn_for_calloc (sizeof_arg_loc, expr.value, exprlist,
+ 				     sizeof_arg, attr);
  	    }
  
  	  start = expr.get_start ();
*************** c_parser_expr_list (c_parser *parser, bo
*** 11476,11481 ****
--- 12875,12882 ----
    vec<tree, va_gc> *orig_types;
    struct c_expr expr;
    unsigned int idx = 0;
+   bool save_c_omp_array_section_p = c_omp_array_section_p;
+   c_omp_array_section_p = false;
  
    ret = make_tree_vector ();
    if (p_orig_types == NULL)
*************** c_parser_expr_list (c_parser *parser, bo
*** 11518,11524 ****
  	vec_safe_push (orig_types, expr.original_type);
        if (locations)
  	locations->safe_push (expr.get_location ());
!       if (++idx < 3
  	  && sizeof_arg != NULL
  	  && (expr.original_code == SIZEOF_EXPR
  	      || expr.original_code == PAREN_SIZEOF_EXPR))
--- 12919,12925 ----
  	vec_safe_push (orig_types, expr.original_type);
        if (locations)
  	locations->safe_push (expr.get_location ());
!       if (++idx < 6
  	  && sizeof_arg != NULL
  	  && (expr.original_code == SIZEOF_EXPR
  	      || expr.original_code == PAREN_SIZEOF_EXPR))
*************** c_parser_expr_list (c_parser *parser, bo
*** 11529,11534 ****
--- 12930,12936 ----
      }
    if (orig_types)
      *p_orig_types = orig_types;
+   c_omp_array_section_p = save_c_omp_array_section_p;
    return ret;
  }
  
*************** c_parser_objc_class_instance_variables (
*** 11732,11738 ****
  	}
  
        /* Parse some comma-separated declarations.  */
!       decls = c_parser_struct_declaration (parser);
        if (decls == NULL)
  	{
  	  /* There is a syntax error.  We want to skip the offending
--- 13134,13140 ----
  	}
  
        /* Parse some comma-separated declarations.  */
!       decls = c_parser_struct_declaration (parser, NULL);
        if (decls == NULL)
  	{
  	  /* There is a syntax error.  We want to skip the offending
*************** c_parser_objc_at_property_declaration (c
*** 12871,12877 ****
    /* 'properties' is the list of properties that we read.  Usually a
       single one, but maybe more (eg, in "@property int a, b, c;" there
       are three).  */
!   tree properties = c_parser_struct_declaration (parser);
  
    if (properties == error_mark_node)
      c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL);
--- 14273,14279 ----
    /* 'properties' is the list of properties that we read.  Usually a
       single one, but maybe more (eg, in "@property int a, b, c;" there
       are three).  */
!   tree properties = c_parser_struct_declaration (parser, NULL);
  
    if (properties == error_mark_node)
      c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL);
*************** c_parse_pragma_ivdep (c_parser *parser)
*** 13021,13026 ****
--- 14423,14438 ----
    return true;
  }
  
+ /* Parse a pragma GCC novector.  */
+ 
+ static bool
+ c_parse_pragma_novector (c_parser *parser)
+ {
+   c_parser_consume_pragma (parser);
+   c_parser_skip_to_pragma_eol (parser);
+   return true;
+ }
+ 
  /* Parse a pragma GCC unroll.  */
  
  static unsigned short
*************** c_parser_pragma (c_parser *parser, enum
*** 13068,13073 ****
--- 14480,14496 ----
    input_location = c_parser_peek_token (parser)->location;
    id = c_parser_peek_token (parser)->pragma_kind;
    gcc_assert (id != PRAGMA_NONE);
+   if (parser->omp_for_parse_state
+       && parser->omp_for_parse_state->in_intervening_code
+       && id >= PRAGMA_OMP__START_
+       && id <= PRAGMA_OMP__LAST_)
+     {
+       error_at (input_location,
+ 		"intervening code must not contain OpenMP directives");
+       parser->omp_for_parse_state->fail = true;
+       c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL);
+       return false;
+     }
  
    switch (id)
      {
*************** c_parser_pragma (c_parser *parser, enum
*** 13223,13228 ****
--- 14646,14655 ----
        c_parser_omp_requires (parser);
        return false;
  
+     case PRAGMA_OMP_ALLOCATE:
+       c_parser_omp_allocate (parser);
+       return false;
+ 
      case PRAGMA_OMP_ASSUMES:
        if (context != pragma_external)
  	{
*************** c_parser_pragma (c_parser *parser, enum
*** 13245,13282 ****
      case PRAGMA_OMP_ORDERED:
        return c_parser_omp_ordered (parser, context, if_p);
  
      case PRAGMA_IVDEP:
        {
! 	const bool ivdep = c_parse_pragma_ivdep (parser);
! 	unsigned short unroll;
! 	if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_UNROLL)
! 	  unroll = c_parser_pragma_unroll (parser);
! 	else
! 	  unroll = 0;
! 	if (!c_parser_next_token_is_keyword (parser, RID_FOR)
! 	    && !c_parser_next_token_is_keyword (parser, RID_WHILE)
! 	    && !c_parser_next_token_is_keyword (parser, RID_DO))
  	  {
! 	    c_parser_error (parser, "for, while or do statement expected");
! 	    return false;
  	  }
- 	if (c_parser_next_token_is_keyword (parser, RID_FOR))
- 	  c_parser_for_statement (parser, ivdep, unroll, if_p);
- 	else if (c_parser_next_token_is_keyword (parser, RID_WHILE))
- 	  c_parser_while_statement (parser, ivdep, unroll, if_p);
- 	else
- 	  c_parser_do_statement (parser, ivdep, unroll);
-       }
-       return true;
  
!     case PRAGMA_UNROLL:
!       {
! 	unsigned short unroll = c_parser_pragma_unroll (parser);
! 	bool ivdep;
! 	if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_IVDEP)
! 	  ivdep = c_parse_pragma_ivdep (parser);
! 	else
! 	  ivdep = false;
  	if (!c_parser_next_token_is_keyword (parser, RID_FOR)
  	    && !c_parser_next_token_is_keyword (parser, RID_WHILE)
  	    && !c_parser_next_token_is_keyword (parser, RID_DO))
--- 14672,14722 ----
      case PRAGMA_OMP_ORDERED:
        return c_parser_omp_ordered (parser, context, if_p);
  
+     case PRAGMA_NOVECTOR:
+     case PRAGMA_UNROLL:
      case PRAGMA_IVDEP:
        {
! 	bool novector = false;
! 	unsigned short unroll = 0;
! 	bool ivdep = false;
! 
! 	switch (id)
  	  {
! 	  case PRAGMA_NOVECTOR:
! 	    novector = c_parse_pragma_novector (parser);
! 	    break;
! 	  case PRAGMA_UNROLL:
! 	    unroll = c_parser_pragma_unroll (parser);
! 	    break;
! 	  case PRAGMA_IVDEP:
! 	    ivdep = c_parse_pragma_ivdep (parser);
! 	    break;
! 	  default:
! 	    gcc_unreachable ();
  	  }
  
! 	c_token *tok = c_parser_peek_token (parser);
! 	bool has_more = tok->type == CPP_PRAGMA;
! 	while (has_more)
! 	  {
! 	    switch (tok->pragma_kind)
! 	      {
! 	      case PRAGMA_IVDEP:
! 		ivdep = c_parse_pragma_ivdep (parser);
! 		break;
! 	      case PRAGMA_UNROLL:
! 		unroll = c_parser_pragma_unroll (parser);
! 		break;
! 	      case PRAGMA_NOVECTOR:
! 		novector = c_parse_pragma_novector (parser);
! 		break;
! 	      default:
! 		has_more = false;
! 		break;
! 	      }
! 	    tok = c_parser_peek_token (parser);
! 	    has_more = has_more && tok->type == CPP_PRAGMA;
! 	  }
  	if (!c_parser_next_token_is_keyword (parser, RID_FOR)
  	    && !c_parser_next_token_is_keyword (parser, RID_WHILE)
  	    && !c_parser_next_token_is_keyword (parser, RID_DO))
*************** c_parser_pragma (c_parser *parser, enum
*** 13285,13295 ****
  	    return false;
  	  }
  	if (c_parser_next_token_is_keyword (parser, RID_FOR))
! 	  c_parser_for_statement (parser, ivdep, unroll, if_p);
  	else if (c_parser_next_token_is_keyword (parser, RID_WHILE))
! 	  c_parser_while_statement (parser, ivdep, unroll, if_p);
  	else
! 	  c_parser_do_statement (parser, ivdep, unroll);
        }
        return true;
  
--- 14725,14735 ----
  	    return false;
  	  }
  	if (c_parser_next_token_is_keyword (parser, RID_FOR))
! 	  c_parser_for_statement (parser, ivdep, unroll, novector, if_p);
  	else if (c_parser_next_token_is_keyword (parser, RID_WHILE))
! 	  c_parser_while_statement (parser, ivdep, unroll, novector, if_p);
  	else
! 	  c_parser_do_statement (parser, ivdep, unroll, novector);
        }
        return true;
  
*************** pragma_lex (tree *value, location_t *loc
*** 13360,13365 ****
--- 14800,14817 ----
    return ret;
  }
  
+ void
+ pragma_lex_discard_to_eol ()
+ {
+   cpp_ttype type;
+   do
+     {
+       type = c_parser_peek_token (the_parser)->type;
+       gcc_assert (type != CPP_EOF);
+       c_parser_consume_token (the_parser);
+     } while (type != CPP_PRAGMA_EOL);
+ }
+ 
  static void
  c_parser_pragma_pch_preprocess (c_parser *parser)
  {
*************** c_parser_omp_clause_name (c_parser *pars
*** 13498,13503 ****
--- 14950,14957 ----
  	    result = PRAGMA_OMP_CLAUSE_INBRANCH;
  	  else if (!strcmp ("independent", p))
  	    result = PRAGMA_OACC_CLAUSE_INDEPENDENT;
+ 	  else if (!strcmp ("indirect", p))
+ 	    result = PRAGMA_OMP_CLAUSE_INDIRECT;
  	  else if (!strcmp ("is_device_ptr", p))
  	    result = PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR;
  	  break;
*************** c_parser_omp_clause_name (c_parser *pars
*** 13582,13589 ****
  	    result = PRAGMA_OMP_CLAUSE_SCHEDULE;
  	  else if (!strcmp ("sections", p))
  	    result = PRAGMA_OMP_CLAUSE_SECTIONS;
! 	  else if (!strcmp ("self", p)) /* "self" is a synonym for "host".  */
! 	    result = PRAGMA_OACC_CLAUSE_HOST;
  	  else if (!strcmp ("seq", p))
  	    result = PRAGMA_OACC_CLAUSE_SEQ;
  	  else if (!strcmp ("shared", p))
--- 15036,15043 ----
  	    result = PRAGMA_OMP_CLAUSE_SCHEDULE;
  	  else if (!strcmp ("sections", p))
  	    result = PRAGMA_OMP_CLAUSE_SECTIONS;
! 	  else if (!strcmp ("self", p))
! 	    result = PRAGMA_OACC_CLAUSE_SELF;
  	  else if (!strcmp ("seq", p))
  	    result = PRAGMA_OACC_CLAUSE_SEQ;
  	  else if (!strcmp ("shared", p))
*************** static tree
*** 13721,13736 ****
  c_parser_omp_variable_list (c_parser *parser,
  			    location_t clause_loc,
  			    enum omp_clause_code kind, tree list,
! 			    bool allow_deref = false)
  {
    auto_vec<omp_dim> dims;
    bool array_section_p;
    auto_vec<c_token> tokens;
    unsigned int tokens_avail = 0;
    bool first = true;
  
    while (1)
      {
        if (kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
  	{
  	  if (c_parser_next_token_is_not (parser, CPP_NAME)
--- 15175,15193 ----
  c_parser_omp_variable_list (c_parser *parser,
  			    location_t clause_loc,
  			    enum omp_clause_code kind, tree list,
! 			    bool map_lvalue = false)
  {
    auto_vec<omp_dim> dims;
    bool array_section_p;
    auto_vec<c_token> tokens;
    unsigned int tokens_avail = 0;
+   c_token *saved_tokens = NULL;
    bool first = true;
  
    while (1)
      {
+       tree t = NULL_TREE;
+ 
        if (kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
  	{
  	  if (c_parser_next_token_is_not (parser, CPP_NAME)
*************** c_parser_omp_variable_list (c_parser *pa
*** 13806,13818 ****
  	  tokens.safe_push (eof_token);
  	  tokens.safe_push (eof_token);
  
  	  tokens_avail = parser->tokens_avail;
- 	  gcc_assert (parser->tokens == &parser->tokens_buf[0]);
  	  parser->tokens = tokens.address ();
  	  parser->tokens_avail = tokens.length ();
  	}
  
!       tree t = NULL_TREE;
  
        if (c_parser_next_token_is (parser, CPP_NAME)
  	  && c_parser_peek_token (parser)->id_kind == C_ID_ID)
--- 15263,15363 ----
  	  tokens.safe_push (eof_token);
  	  tokens.safe_push (eof_token);
  
+ 	  saved_tokens = parser->tokens;
  	  tokens_avail = parser->tokens_avail;
  	  parser->tokens = tokens.address ();
  	  parser->tokens_avail = tokens.length ();
  	}
+       else if (map_lvalue
+ 	       && (kind == OMP_CLAUSE_MAP
+ 		   || kind == OMP_CLAUSE_TO
+ 		   || kind == OMP_CLAUSE_FROM))
+ 	{
+ 	  location_t loc = c_parser_peek_token (parser)->location;
+ 	  bool save_c_omp_array_section_p = c_omp_array_section_p;
+ 	  c_omp_array_section_p = true;
+ 	  c_expr expr = c_parser_expr_no_commas (parser, NULL);
+ 	  if (expr.value != error_mark_node)
+ 	    mark_exp_read (expr.value);
+ 	  c_omp_array_section_p = save_c_omp_array_section_p;
+ 	  tree decl = expr.value;
  
! 	 /* This code rewrites a parsed expression containing various tree
! 	    codes used to represent array accesses into a more uniform nest of
! 	    OMP_ARRAY_SECTION nodes before it is processed by
! 	    c-typeck.cc:handle_omp_array_sections_1.  It might be more
! 	    efficient to move this logic to that function instead, analysing
! 	    the parsed expression directly rather than this preprocessed
! 	    form.  (See also equivalent code in cp/parser.cc,
! 	    cp/semantics.cc).  */
! 	  dims.truncate (0);
! 	  if (TREE_CODE (decl) == OMP_ARRAY_SECTION)
! 	    {
! 	      while (TREE_CODE (decl) == OMP_ARRAY_SECTION)
! 		{
! 		  tree low_bound = TREE_OPERAND (decl, 1);
! 		  tree length = TREE_OPERAND (decl, 2);
! 		  dims.safe_push (omp_dim (low_bound, length, loc, false));
! 		  decl = TREE_OPERAND (decl, 0);
! 		}
! 
! 	      while (TREE_CODE (decl) == ARRAY_REF
! 		     || TREE_CODE (decl) == INDIRECT_REF
! 		     || TREE_CODE (decl) == COMPOUND_EXPR)
! 		{
! 		  if (TREE_CODE (decl) == COMPOUND_EXPR)
! 		    {
! 		      decl = TREE_OPERAND (decl, 1);
! 		      STRIP_NOPS (decl);
! 		    }
! 		  else if (TREE_CODE (decl) == INDIRECT_REF)
! 		    {
! 		      dims.safe_push (omp_dim (integer_zero_node,
! 					       integer_one_node, loc, true));
! 		      decl = TREE_OPERAND (decl, 0);
! 		    }
! 		  else  /* ARRAY_REF. */
! 		    {
! 		      tree index = TREE_OPERAND (decl, 1);
! 		      dims.safe_push (omp_dim (index, integer_one_node, loc,
! 					       true));
! 		      decl = TREE_OPERAND (decl, 0);
! 		    }
! 		}
! 
! 	      for (int i = dims.length () - 1; i >= 0; i--)
! 		decl = build_omp_array_section (loc,  decl, dims[i].low_bound,
! 						dims[i].length);
! 	    }
! 	  else if (TREE_CODE (decl) == INDIRECT_REF)
! 	    {
! 	      /* Turn indirection of a pointer "*foo" into "foo[0:1]".  */
! 	      decl = TREE_OPERAND (decl, 0);
! 	      STRIP_NOPS (decl);
! 
! 	      decl = build_omp_array_section (loc, decl, integer_zero_node,
! 					      integer_one_node);
! 	    }
! 	  else if (TREE_CODE (decl) == ARRAY_REF)
! 	    {
! 	      tree idx = TREE_OPERAND (decl, 1);
! 
! 	      decl = TREE_OPERAND (decl, 0);
! 	      STRIP_NOPS (decl);
! 
! 	      decl = build_omp_array_section (loc, decl, idx, integer_one_node);
! 	    }
! 	  else if (TREE_CODE (decl) == NON_LVALUE_EXPR
! 		   || CONVERT_EXPR_P (decl))
! 	    decl = TREE_OPERAND (decl, 0);
! 
! 	  tree u = build_omp_clause (clause_loc, kind);
! 	  OMP_CLAUSE_DECL (u) = decl;
! 	  OMP_CLAUSE_CHAIN (u) = list;
! 	  list = u;
! 
! 	  goto next_item;
! 	}
  
        if (c_parser_next_token_is (parser, CPP_NAME)
  	  && c_parser_peek_token (parser)->id_kind == C_ID_ID)
*************** c_parser_omp_variable_list (c_parser *pa
*** 13863,13870 ****
  	    case OMP_CLAUSE_TO:
  	    start_component_ref:
  	      while (c_parser_next_token_is (parser, CPP_DOT)
! 		     || (allow_deref
! 			 && c_parser_next_token_is (parser, CPP_DEREF)))
  		{
  		  location_t op_loc = c_parser_peek_token (parser)->location;
  		  location_t arrow_loc = UNKNOWN_LOCATION;
--- 15408,15414 ----
  	    case OMP_CLAUSE_TO:
  	    start_component_ref:
  	      while (c_parser_next_token_is (parser, CPP_DOT)
! 		     || c_parser_next_token_is (parser, CPP_DEREF))
  		{
  		  location_t op_loc = c_parser_peek_token (parser)->location;
  		  location_t arrow_loc = UNKNOWN_LOCATION;
*************** c_parser_omp_variable_list (c_parser *pa
*** 13965,13973 ****
  		       || kind == OMP_CLAUSE_TO)
  		      && !array_section_p
  		      && (c_parser_next_token_is (parser, CPP_DOT)
! 			  || (allow_deref
! 			      && c_parser_next_token_is (parser,
! 							 CPP_DEREF))))
  		    {
  		      for (unsigned i = 0; i < dims.length (); i++)
  			{
--- 15509,15515 ----
  		       || kind == OMP_CLAUSE_TO)
  		      && !array_section_p
  		      && (c_parser_next_token_is (parser, CPP_DOT)
! 			  || c_parser_next_token_is (parser, CPP_DEREF)))
  		    {
  		      for (unsigned i = 0; i < dims.length (); i++)
  			{
*************** c_parser_omp_variable_list (c_parser *pa
*** 13979,13985 ****
  		    }
  		  else
  		    for (unsigned i = 0; i < dims.length (); i++)
! 		      t = tree_cons (dims[i].low_bound, dims[i].length, t);
  		}
  
  	      if ((kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
--- 15521,15529 ----
  		    }
  		  else
  		    for (unsigned i = 0; i < dims.length (); i++)
! 		      t = build_omp_array_section (clause_loc, t,
! 						   dims[i].low_bound,
! 						   dims[i].length);
  		}
  
  	      if ((kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
*************** c_parser_omp_variable_list (c_parser *pa
*** 14024,14032 ****
  
        if (kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
  	{
! 	  parser->tokens = &parser->tokens_buf[0];
  	  parser->tokens_avail = tokens_avail;
  	}
        if (c_parser_next_token_is_not (parser, CPP_COMMA))
  	break;
  
--- 15568,15578 ----
  
        if (kind == OMP_CLAUSE_DEPEND || kind == OMP_CLAUSE_AFFINITY)
  	{
! 	  parser->tokens = saved_tokens;
  	  parser->tokens_avail = tokens_avail;
  	}
+ 
+     next_item:
        if (c_parser_next_token_is_not (parser, CPP_COMMA))
  	break;
  
*************** c_parser_omp_variable_list (c_parser *pa
*** 14043,14057 ****
  
  static tree
  c_parser_omp_var_list_parens (c_parser *parser, enum omp_clause_code kind,
! 			      tree list, bool allow_deref = false)
  {
    /* The clauses location.  */
    location_t loc = c_parser_peek_token (parser)->location;
  
    matching_parens parens;
    if (parens.require_open (parser))
      {
!       list = c_parser_omp_variable_list (parser, loc, kind, list, allow_deref);
        parens.skip_until_found_close (parser);
      }
    return list;
--- 15589,15616 ----
  
  static tree
  c_parser_omp_var_list_parens (c_parser *parser, enum omp_clause_code kind,
! 			      tree list, bool map_lvalue = false)
  {
    /* The clauses location.  */
    location_t loc = c_parser_peek_token (parser)->location;
  
+   if (parser->in_omp_decl_attribute)
+     {
+       if (kind)
+ 	{
+ 	  tree u = build_omp_clause (loc, kind);
+ 	  OMP_CLAUSE_DECL (u) = parser->in_omp_decl_attribute;
+ 	  OMP_CLAUSE_CHAIN (u) = list;
+ 	  return u;
+ 	}
+       else
+ 	return tree_cons (parser->in_omp_decl_attribute, NULL_TREE, list);
+     }
+ 
    matching_parens parens;
    if (parens.require_open (parser))
      {
!       list = c_parser_omp_variable_list (parser, loc, kind, list, map_lvalue);
        parens.skip_until_found_close (parser);
      }
    return list;
*************** c_parser_omp_var_list_parens (c_parser *
*** 14068,14074 ****
     OpenACC 2.6:
     no_create ( variable-list )
     attach ( variable-list )
!    detach ( variable-list ) */
  
  static tree
  c_parser_oacc_data_clause (c_parser *parser, pragma_omp_clause c_kind,
--- 15627,15637 ----
     OpenACC 2.6:
     no_create ( variable-list )
     attach ( variable-list )
!    detach ( variable-list )
! 
!    OpenACC 2.7:
!    copyin (readonly : variable-list )
!  */
  
  static tree
  c_parser_oacc_data_clause (c_parser *parser, pragma_omp_clause c_kind,
*************** c_parser_oacc_data_clause (c_parser *par
*** 14104,14112 ****
      case PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT:
        kind = GOMP_MAP_DEVICE_RESIDENT;
        break;
-     case PRAGMA_OACC_CLAUSE_HOST:
-       kind = GOMP_MAP_FORCE_FROM;
-       break;
      case PRAGMA_OACC_CLAUSE_LINK:
        kind = GOMP_MAP_LINK;
        break;
--- 15667,15672 ----
*************** c_parser_oacc_data_clause (c_parser *par
*** 14116,14129 ****
      case PRAGMA_OACC_CLAUSE_PRESENT:
        kind = GOMP_MAP_FORCE_PRESENT;
        break;
      default:
        gcc_unreachable ();
      }
-   tree nl, c;
-   nl = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_MAP, list, true);
  
!   for (c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
!     OMP_CLAUSE_SET_MAP_KIND (c, kind);
  
    return nl;
  }
--- 15676,15720 ----
      case PRAGMA_OACC_CLAUSE_PRESENT:
        kind = GOMP_MAP_FORCE_PRESENT;
        break;
+     case PRAGMA_OACC_CLAUSE_SELF:
+       /* "The 'host' clause is a synonym for the 'self' clause."  */
+     case PRAGMA_OACC_CLAUSE_HOST:
+       kind = GOMP_MAP_FORCE_FROM;
+       break;
      default:
        gcc_unreachable ();
      }
  
!   tree nl = list;
!   bool readonly = false;
!   location_t open_loc = c_parser_peek_token (parser)->location;
!   matching_parens parens;
!   if (parens.require_open (parser))
!     {
!       /* Turn on readonly modifier parsing for copyin clause.  */
!       if (c_kind == PRAGMA_OACC_CLAUSE_COPYIN)
! 	{
! 	  c_token *token = c_parser_peek_token (parser);
! 	  if (token->type == CPP_NAME
! 	      && !strcmp (IDENTIFIER_POINTER (token->value), "readonly")
! 	      && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
! 	    {
! 	      c_parser_consume_token (parser);
! 	      c_parser_consume_token (parser);
! 	      readonly = true;
! 	    }
! 	}
!       nl = c_parser_omp_variable_list (parser, open_loc, OMP_CLAUSE_MAP, list,
! 				       false);
!       parens.skip_until_found_close (parser);
!     }
! 
!   for (tree c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
!     {
!       OMP_CLAUSE_SET_MAP_KIND (c, kind);
!       if (readonly)
! 	OMP_CLAUSE_MAP_READONLY (c) = 1;
!     }
  
    return nl;
  }
*************** c_parser_omp_clause_final (c_parser *par
*** 14356,14361 ****
--- 15947,15993 ----
    return list;
  }
  
+ /* OpenMP 5.1:
+    indirect [( expression )]
+ */
+ 
+ static tree
+ c_parser_omp_clause_indirect (c_parser *parser, tree list)
+ {
+   location_t location = c_parser_peek_token (parser)->location;
+   tree t;
+ 
+   if (c_parser_peek_token (parser)->type == CPP_OPEN_PAREN)
+     {
+       matching_parens parens;
+       if (!parens.require_open (parser))
+ 	return list;
+ 
+       location_t loc = c_parser_peek_token (parser)->location;
+       c_expr expr = c_parser_expr_no_commas (parser, NULL);
+       expr = convert_lvalue_to_rvalue (loc, expr, true, true);
+       t = c_objc_common_truthvalue_conversion (loc, expr.value);
+       t = c_fully_fold (t, false, NULL);
+       if (!INTEGRAL_TYPE_P (TREE_TYPE (t))
+ 	  || TREE_CODE (t) != INTEGER_CST)
+ 	{
+ 	  c_parser_error (parser, "expected constant logical expression");
+ 	  return list;
+ 	}
+       parens.skip_until_found_close (parser);
+     }
+   else
+     t = integer_one_node;
+ 
+   check_no_duplicate_clause (list, OMP_CLAUSE_INDIRECT, "indirect");
+ 
+   tree c = build_omp_clause (location, OMP_CLAUSE_INDIRECT);
+   OMP_CLAUSE_INDIRECT_EXPR (c) = t;
+   OMP_CLAUSE_CHAIN (c) = list;
+ 
+   return c;
+ }
+ 
  /* OpenACC, OpenMP 2.5:
     if ( expression )
  
*************** c_parser_omp_clause_num_threads (c_parse
*** 14619,14625 ****
        protected_set_expr_location (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, 0,
  		      "%<num_threads%> value must be positive");
  	  t = integer_one_node;
  	}
--- 16251,16257 ----
        protected_set_expr_location (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, OPT_Wopenmp,
  		      "%<num_threads%> value must be positive");
  	  t = integer_one_node;
  	}
*************** c_parser_omp_clause_num_tasks (c_parser
*** 14680,14686 ****
  	SET_EXPR_LOCATION (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, 0, "%<num_tasks%> value must be positive");
  	  t = integer_one_node;
  	}
  
--- 16312,16319 ----
  	SET_EXPR_LOCATION (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, OPT_Wopenmp,
! 		      "%<num_tasks%> value must be positive");
  	  t = integer_one_node;
  	}
  
*************** c_parser_omp_clause_grainsize (c_parser
*** 14741,14747 ****
  	SET_EXPR_LOCATION (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, 0, "%<grainsize%> value must be positive");
  	  t = integer_one_node;
  	}
  
--- 16374,16381 ----
  	SET_EXPR_LOCATION (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, OPT_Wopenmp,
! 		      "%<grainsize%> value must be positive");
  	  t = integer_one_node;
  	}
  
*************** c_parser_omp_clause_priority (c_parser *
*** 14789,14795 ****
  	SET_EXPR_LOCATION (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, 0, "%<priority%> value must be non-negative");
  	  t = integer_one_node;
  	}
  
--- 16423,16430 ----
  	SET_EXPR_LOCATION (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, OPT_Wopenmp,
! 		      "%<priority%> value must be non-negative");
  	  t = integer_one_node;
  	}
  
*************** c_parser_omp_clause_defaultmap (c_parser
*** 14935,14940 ****
--- 16570,16582 ----
  	goto invalid_behavior;
        break;
  
+     case 'p':
+       if (strcmp ("present", p) == 0)
+ 	behavior = OMP_CLAUSE_DEFAULTMAP_PRESENT;
+       else
+ 	goto invalid_behavior;
+       break;
+ 
      case 't':
        if (strcmp ("tofrom", p) == 0)
  	behavior = OMP_CLAUSE_DEFAULTMAP_TOFROM;
*************** c_parser_omp_clause_defaultmap (c_parser
*** 14956,14963 ****
        if (!c_parser_next_token_is (parser, CPP_NAME))
  	{
  	invalid_category:
! 	  c_parser_error (parser, "expected %<scalar%>, %<aggregate%> or "
! 				  "%<pointer%>");
  	  goto out_err;
  	}
        p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
--- 16598,16605 ----
        if (!c_parser_next_token_is (parser, CPP_NAME))
  	{
  	invalid_category:
! 	  c_parser_error (parser, "expected %<scalar%>, %<aggregate%>, "
! 				  "%<pointer%> or %<all%>");
  	  goto out_err;
  	}
        p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
*************** c_parser_omp_clause_defaultmap (c_parser
*** 14966,14971 ****
--- 16608,16615 ----
  	case 'a':
  	  if (strcmp ("aggregate", p) == 0)
  	    category = OMP_CLAUSE_DEFAULTMAP_CATEGORY_AGGREGATE;
+ 	  else if (strcmp ("all", p) == 0)
+ 	    category = OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL;
  	  else
  	    goto invalid_category;
  	  break;
*************** c_parser_omp_clause_defaultmap (c_parser
*** 14995,15007 ****
    for (c = list; c ; c = OMP_CLAUSE_CHAIN (c))
      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEFAULTMAP
  	&& (category == OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED
  	    || OMP_CLAUSE_DEFAULTMAP_CATEGORY (c) == category
  	    || (OMP_CLAUSE_DEFAULTMAP_CATEGORY (c)
! 		== OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED)))
        {
  	enum omp_clause_defaultmap_kind cat = category;
  	location_t loc = OMP_CLAUSE_LOCATION (c);
! 	if (cat == OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED)
  	  cat = OMP_CLAUSE_DEFAULTMAP_CATEGORY (c);
  	p = NULL;
  	switch (cat)
--- 16639,16657 ----
    for (c = list; c ; c = OMP_CLAUSE_CHAIN (c))
      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEFAULTMAP
  	&& (category == OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED
+ 	    || category == OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL
  	    || OMP_CLAUSE_DEFAULTMAP_CATEGORY (c) == category
  	    || (OMP_CLAUSE_DEFAULTMAP_CATEGORY (c)
! 		== OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED)
! 	    || (OMP_CLAUSE_DEFAULTMAP_CATEGORY (c)
! 		== OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL)))
        {
  	enum omp_clause_defaultmap_kind cat = category;
  	location_t loc = OMP_CLAUSE_LOCATION (c);
! 	if (cat == OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED
! 	    || (cat == OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL
! 		&& (OMP_CLAUSE_DEFAULTMAP_CATEGORY (c)
! 		    != OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED)))
  	  cat = OMP_CLAUSE_DEFAULTMAP_CATEGORY (c);
  	p = NULL;
  	switch (cat)
*************** c_parser_omp_clause_defaultmap (c_parser
*** 15009,15014 ****
--- 16659,16667 ----
  	  case OMP_CLAUSE_DEFAULTMAP_CATEGORY_UNSPECIFIED:
  	    p = NULL;
  	    break;
+ 	  case OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL:
+ 	    p = "all";
+ 	    break;
  	  case OMP_CLAUSE_DEFAULTMAP_CATEGORY_AGGREGATE:
  	    p = "aggregate";
  	    break;
*************** c_parser_oacc_clause_wait (c_parser *par
*** 15426,15431 ****
--- 17079,17119 ----
    return list;
  }
  
+ /* OpenACC 2.7:
+    self [( expression )] */
+ 
+ static tree
+ c_parser_oacc_compute_clause_self (c_parser *parser, tree list)
+ {
+   tree t;
+   location_t location = c_parser_peek_token (parser)->location;
+   if (c_parser_peek_token (parser)->type == CPP_OPEN_PAREN)
+     {
+       matching_parens parens;
+       parens.consume_open (parser);
+ 
+       location_t loc = c_parser_peek_token (parser)->location;
+       c_expr expr = c_parser_expr_no_commas (parser, NULL);
+       expr = convert_lvalue_to_rvalue (loc, expr, true, true);
+       t = c_objc_common_truthvalue_conversion (loc, expr.value);
+       t = c_fully_fold (t, false, NULL);
+       parens.skip_until_found_close (parser);
+     }
+   else
+     t = truthvalue_true_node;
+ 
+   for (tree c = list; c; c = OMP_CLAUSE_CHAIN (c))
+     if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_SELF)
+       {
+ 	error_at (location, "too many %<self%> clauses");
+ 	return list;
+       }
+ 
+   tree c = build_omp_clause (location, OMP_CLAUSE_SELF);
+   OMP_CLAUSE_SELF_EXPR (c) = t;
+   OMP_CLAUSE_CHAIN (c) = list;
+   return c;
+ }
  
  /* OpenMP 5.0:
     order ( concurrent )
*************** c_parser_omp_clause_reduction (c_parser
*** 15703,15715 ****
  	  for (c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
  	    {
  	      tree d = OMP_CLAUSE_DECL (c), type;
! 	      if (TREE_CODE (d) != TREE_LIST)
  		type = TREE_TYPE (d);
  	      else
  		{
  		  int cnt = 0;
  		  tree t;
! 		  for (t = d; TREE_CODE (t) == TREE_LIST; t = TREE_CHAIN (t))
  		    cnt++;
  		  type = TREE_TYPE (t);
  		  while (cnt > 0)
--- 17391,17405 ----
  	  for (c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
  	    {
  	      tree d = OMP_CLAUSE_DECL (c), type;
! 	      if (TREE_CODE (d) != OMP_ARRAY_SECTION)
  		type = TREE_TYPE (d);
  	      else
  		{
  		  int cnt = 0;
  		  tree t;
! 		  for (t = d;
! 		      TREE_CODE (t) == OMP_ARRAY_SECTION;
! 		      t = TREE_OPERAND (t, 0))
  		    cnt++;
  		  type = TREE_TYPE (t);
  		  while (cnt > 0)
*************** c_parser_omp_clause_reduction (c_parser
*** 15730,15736 ****
  		OMP_CLAUSE_REDUCTION_INSCAN (c) = 1;
  	      if (code == ERROR_MARK
  		  || !(INTEGRAL_TYPE_P (type)
! 		       || TREE_CODE (type) == REAL_TYPE
  		       || TREE_CODE (type) == COMPLEX_TYPE))
  		OMP_CLAUSE_REDUCTION_PLACEHOLDER (c)
  		  = c_omp_reduction_lookup (reduc_id,
--- 17420,17426 ----
  		OMP_CLAUSE_REDUCTION_INSCAN (c) = 1;
  	      if (code == ERROR_MARK
  		  || !(INTEGRAL_TYPE_P (type)
! 		       || SCALAR_FLOAT_TYPE_P (type)
  		       || TREE_CODE (type) == COMPLEX_TYPE))
  		OMP_CLAUSE_REDUCTION_PLACEHOLDER (c)
  		  = c_omp_reduction_lookup (reduc_id,
*************** c_parser_omp_clause_schedule (c_parser *
*** 15868,15874 ****
  	error_at (here,
  		  "schedule %<auto%> does not take "
  		  "a %<chunk_size%> parameter");
!       else if (TREE_CODE (TREE_TYPE (t)) == INTEGER_TYPE)
  	{
  	  /* Attempt to statically determine when the number isn't
  	     positive.  */
--- 17558,17565 ----
  	error_at (here,
  		  "schedule %<auto%> does not take "
  		  "a %<chunk_size%> parameter");
!       else if (TREE_CODE (TREE_TYPE (t)) == INTEGER_TYPE
! 	       || TREE_CODE (TREE_TYPE (t)) == BITINT_TYPE)
  	{
  	  /* Attempt to statically determine when the number isn't
  	     positive.  */
*************** c_parser_omp_clause_schedule (c_parser *
*** 15877,15883 ****
  	  protected_set_expr_location (s, loc);
  	  if (s == boolean_true_node)
  	    {
! 	      warning_at (loc, 0,
  			  "chunk size value must be positive");
  	      t = integer_one_node;
  	    }
--- 17568,17574 ----
  	  protected_set_expr_location (s, loc);
  	  if (s == boolean_true_node)
  	    {
! 	      warning_at (loc, OPT_Wopenmp,
  			  "chunk size value must be positive");
  	      t = integer_one_node;
  	    }
*************** c_parser_omp_clause_num_teams (c_parser
*** 16039,16045 ****
        protected_set_expr_location (c, upper_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (upper_loc, 0, "%<num_teams%> value must be positive");
  	  upper = integer_one_node;
  	}
        if (lower)
--- 17730,17737 ----
        protected_set_expr_location (c, upper_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (upper_loc, OPT_Wopenmp,
! 		      "%<num_teams%> value must be positive");
  	  upper = integer_one_node;
  	}
        if (lower)
*************** c_parser_omp_clause_num_teams (c_parser
*** 16049,16063 ****
  	  protected_set_expr_location (c, lower_loc);
  	  if (c == boolean_true_node)
  	    {
! 	      warning_at (lower_loc, 0, "%<num_teams%> value must be positive");
  	      lower = NULL_TREE;
  	    }
  	  else if (TREE_CODE (lower) == INTEGER_CST
  		   && TREE_CODE (upper) == INTEGER_CST
  		   && tree_int_cst_lt (upper, lower))
  	    {
! 	      warning_at (lower_loc, 0, "%<num_teams%> lower bound %qE bigger "
! 					"than upper bound %qE", lower, upper);
  	      lower = NULL_TREE;
  	    }
  	}
--- 17741,17757 ----
  	  protected_set_expr_location (c, lower_loc);
  	  if (c == boolean_true_node)
  	    {
! 	      warning_at (lower_loc, OPT_Wopenmp,
! 			  "%<num_teams%> value must be positive");
  	      lower = NULL_TREE;
  	    }
  	  else if (TREE_CODE (lower) == INTEGER_CST
  		   && TREE_CODE (upper) == INTEGER_CST
  		   && tree_int_cst_lt (upper, lower))
  	    {
! 	      warning_at (lower_loc, OPT_Wopenmp,
! 			  "%<num_teams%> lower bound %qE bigger than upper "
! 			  "bound %qE", lower, upper);
  	      lower = NULL_TREE;
  	    }
  	}
*************** c_parser_omp_clause_thread_limit (c_pars
*** 16104,16110 ****
        protected_set_expr_location (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, 0, "%<thread_limit%> value must be positive");
  	  t = integer_one_node;
  	}
  
--- 17798,17805 ----
        protected_set_expr_location (c, expr_loc);
        if (c == boolean_true_node)
  	{
! 	  warning_at (expr_loc, OPT_Wopenmp,
! 		      "%<thread_limit%> value must be positive");
  	  t = integer_one_node;
  	}
  
*************** c_parser_omp_clause_allocate (c_parser *
*** 16236,16242 ****
  	      location_t expr_loc = c_parser_peek_token (parser)->location;
  	      c_expr expr = c_parser_expr_no_commas (parser, NULL);
  	      expr = convert_lvalue_to_rvalue (expr_loc, expr, false, true);
! 	      if (strcmp (p, "allocator") == 0)
  		{
  		  allocator = expr.value;
  		  allocator = c_fully_fold (allocator, false, NULL);
--- 17931,17939 ----
  	      location_t expr_loc = c_parser_peek_token (parser)->location;
  	      c_expr expr = c_parser_expr_no_commas (parser, NULL);
  	      expr = convert_lvalue_to_rvalue (expr_loc, expr, false, true);
! 	      if (expr.value == error_mark_node)
! 		;
! 	      else if (strcmp (p, "allocator") == 0)
  		{
  		  allocator = expr.value;
  		  allocator = c_fully_fold (allocator, false, NULL);
*************** c_parser_omp_clause_map (c_parser *parse
*** 17105,17110 ****
--- 18802,18808 ----
  
    int always_modifier = 0;
    int close_modifier = 0;
+   int present_modifier = 0;
    for (int pos = 1; pos < map_kind_pos; ++pos)
      {
        c_token *tok = c_parser_peek_token (parser);
*************** c_parser_omp_clause_map (c_parser *parse
*** 17136,17146 ****
  	    }
  	  close_modifier++;
  	}
        else
  	{
! 	  c_parser_error (parser, "%<#pragma omp target%> with "
! 				  "modifier other than %<always%> or "
! 				  "%<close%> on %<map%> clause");
  	  parens.skip_until_found_close (parser);
  	  return list;
  	}
--- 18834,18853 ----
  	    }
  	  close_modifier++;
  	}
+       else if (strcmp ("present", p) == 0)
+ 	{
+ 	  if (present_modifier)
+ 	    {
+ 	      c_parser_error (parser, "too many %<present%> modifiers");
+ 	      parens.skip_until_found_close (parser);
+ 	      return list;
+ 	    }
+ 	  present_modifier++;
+ 	}
        else
  	{
! 	  c_parser_error (parser, "%<map%> clause with map-type modifier other "
! 				  "than %<always%>, %<close%> or %<present%>");
  	  parens.skip_until_found_close (parser);
  	  return list;
  	}
*************** c_parser_omp_clause_map (c_parser *parse
*** 17152,17165 ****
        && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
      {
        const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
        if (strcmp ("alloc", p) == 0)
! 	kind = GOMP_MAP_ALLOC;
        else if (strcmp ("to", p) == 0)
! 	kind = always_modifier ? GOMP_MAP_ALWAYS_TO : GOMP_MAP_TO;
        else if (strcmp ("from", p) == 0)
! 	kind = always_modifier ? GOMP_MAP_ALWAYS_FROM : GOMP_MAP_FROM;
        else if (strcmp ("tofrom", p) == 0)
! 	kind = always_modifier ? GOMP_MAP_ALWAYS_TOFROM : GOMP_MAP_TOFROM;
        else if (strcmp ("release", p) == 0)
  	kind = GOMP_MAP_RELEASE;
        else if (strcmp ("delete", p) == 0)
--- 18859,18883 ----
        && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
      {
        const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+       int always_present_modifier = always_modifier && present_modifier;
+ 
        if (strcmp ("alloc", p) == 0)
! 	kind = present_modifier ? GOMP_MAP_PRESENT_ALLOC : GOMP_MAP_ALLOC;
        else if (strcmp ("to", p) == 0)
! 	kind = (always_present_modifier ? GOMP_MAP_ALWAYS_PRESENT_TO
! 		: present_modifier ? GOMP_MAP_PRESENT_TO
! 		: always_modifier ? GOMP_MAP_ALWAYS_TO
! 		: GOMP_MAP_TO);
        else if (strcmp ("from", p) == 0)
! 	kind = (always_present_modifier ? GOMP_MAP_ALWAYS_PRESENT_FROM
! 		: present_modifier ? GOMP_MAP_PRESENT_FROM
! 		: always_modifier ? GOMP_MAP_ALWAYS_FROM
! 		: GOMP_MAP_FROM);
        else if (strcmp ("tofrom", p) == 0)
! 	kind = (always_present_modifier ? GOMP_MAP_ALWAYS_PRESENT_TOFROM
! 		: present_modifier ? GOMP_MAP_PRESENT_TOFROM
! 		: always_modifier ? GOMP_MAP_ALWAYS_TOFROM
! 		: GOMP_MAP_TOFROM);
        else if (strcmp ("release", p) == 0)
  	kind = GOMP_MAP_RELEASE;
        else if (strcmp ("delete", p) == 0)
*************** c_parser_omp_clause_dist_schedule (c_par
*** 17311,17317 ****
    /* check_no_duplicate_clause (list, OMP_CLAUSE_DIST_SCHEDULE,
  				"dist_schedule"); */
    if (omp_find_clause (list, OMP_CLAUSE_DIST_SCHEDULE))
!     warning_at (loc, 0, "too many %qs clauses", "dist_schedule");
    if (t == error_mark_node)
      return list;
  
--- 19029,19035 ----
    /* check_no_duplicate_clause (list, OMP_CLAUSE_DIST_SCHEDULE,
  				"dist_schedule"); */
    if (omp_find_clause (list, OMP_CLAUSE_DIST_SCHEDULE))
!     warning_at (loc, OPT_Wopenmp, "too many %qs clauses", "dist_schedule");
    if (t == error_mark_node)
      return list;
  
*************** c_parser_omp_clause_device_type (c_parse
*** 17415,17435 ****
  }
  
  /* OpenMP 4.0:
!    to ( variable-list ) */
  
  static tree
! c_parser_omp_clause_to (c_parser *parser, tree list)
  {
!   return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_TO, list, true);
! }
  
! /* OpenMP 4.0:
!    from ( variable-list ) */
  
! static tree
! c_parser_omp_clause_from (c_parser *parser, tree list)
! {
!   return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_FROM, list, true);
  }
  
  /* OpenMP 4.0:
--- 19133,19174 ----
  }
  
  /* OpenMP 4.0:
!    from ( variable-list )
!    to ( variable-list )
! 
!    OpenMP 5.1:
!    from ( [present :] variable-list )
!    to ( [present :] variable-list ) */
  
  static tree
! c_parser_omp_clause_from_to (c_parser *parser, enum omp_clause_code kind,
! 			     tree list)
  {
!   location_t loc = c_parser_peek_token (parser)->location;
!   matching_parens parens;
!   if (!parens.require_open (parser))
!     return list;
  
!   bool present = false;
!   c_token *token = c_parser_peek_token (parser);
  
!   if (token->type == CPP_NAME
!       && strcmp (IDENTIFIER_POINTER (token->value), "present") == 0
!       && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
!     {
!       present = true;
!       c_parser_consume_token (parser);
!       c_parser_consume_token (parser);
!     }
! 
!   tree nl = c_parser_omp_variable_list (parser, loc, kind, list);
!   parens.skip_until_found_close (parser);
! 
!   if (present)
!     for (tree c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
!       OMP_CLAUSE_MOTION_PRESENT (c) = 1;
! 
!   return nl;
  }
  
  /* OpenMP 4.0:
*************** c_parser_omp_clause_detach (c_parser *pa
*** 17506,17512 ****
  
  static tree
  c_parser_oacc_all_clauses (c_parser *parser, omp_clause_mask mask,
! 			   const char *where, bool finish_p = true)
  {
    tree clauses = NULL;
    bool first = true;
--- 19245,19252 ----
  
  static tree
  c_parser_oacc_all_clauses (c_parser *parser, omp_clause_mask mask,
! 			   const char *where, bool finish_p = true,
! 			   bool target_p = false)
  {
    tree clauses = NULL;
    bool first = true;
*************** c_parser_oacc_all_clauses (c_parser *par
*** 17654,17659 ****
--- 19394,19408 ----
  					     false, clauses);
  	  c_name = "reduction";
  	  break;
+ 	case PRAGMA_OACC_CLAUSE_SELF:
+ 	  if ((mask & (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_HOST)) == 0)
+ 	    /* OpenACC compute construct */
+ 	    clauses = c_parser_oacc_compute_clause_self (parser, clauses);
+ 	  else
+ 	    /* OpenACC 'update' directive */
+ 	    clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
+ 	  c_name = "self";
+ 	  break;
  	case PRAGMA_OACC_CLAUSE_SEQ:
  	  clauses = c_parser_oacc_simple_clause (here, OMP_CLAUSE_SEQ,
  						 clauses);
*************** c_parser_oacc_all_clauses (c_parser *par
*** 17688,17694 ****
  						c_name, clauses);
  	  break;
  	default:
! 	  c_parser_error (parser, "expected %<#pragma acc%> clause");
  	  goto saw_error;
  	}
  
--- 19437,19443 ----
  						c_name, clauses);
  	  break;
  	default:
! 	  c_parser_error (parser, "expected an OpenACC clause");
  	  goto saw_error;
  	}
  
*************** c_parser_oacc_all_clauses (c_parser *par
*** 17707,17713 ****
    c_parser_skip_to_pragma_eol (parser);
  
    if (finish_p)
!     return c_finish_omp_clauses (clauses, C_ORT_ACC);
  
    return clauses;
  }
--- 19456,19463 ----
    c_parser_skip_to_pragma_eol (parser);
  
    if (finish_p)
!     return c_finish_omp_clauses (clauses, target_p ? C_ORT_ACC_TARGET
! 						   : C_ORT_ACC);
  
    return clauses;
  }
*************** c_parser_omp_all_clauses (c_parser *pars
*** 17810,17815 ****
--- 19560,19569 ----
  					     true, clauses);
  	  c_name = "in_reduction";
  	  break;
+ 	case PRAGMA_OMP_CLAUSE_INDIRECT:
+ 	  clauses = c_parser_omp_clause_indirect (parser, clauses);
+ 	  c_name = "indirect";
+ 	  break;
  	case PRAGMA_OMP_CLAUSE_LASTPRIVATE:
  	  clauses = c_parser_omp_clause_lastprivate (parser, clauses);
  	  c_name = "lastprivate";
*************** c_parser_omp_all_clauses (c_parser *pars
*** 17936,17946 ****
  	      clauses = nl;
  	    }
  	  else
! 	    clauses = c_parser_omp_clause_to (parser, clauses);
  	  c_name = "to";
  	  break;
  	case PRAGMA_OMP_CLAUSE_FROM:
! 	  clauses = c_parser_omp_clause_from (parser, clauses);
  	  c_name = "from";
  	  break;
  	case PRAGMA_OMP_CLAUSE_UNIFORM:
--- 19690,19702 ----
  	      clauses = nl;
  	    }
  	  else
! 	    clauses = c_parser_omp_clause_from_to (parser, OMP_CLAUSE_TO,
! 						   clauses);
  	  c_name = "to";
  	  break;
  	case PRAGMA_OMP_CLAUSE_FROM:
! 	  clauses = c_parser_omp_clause_from_to (parser, OMP_CLAUSE_FROM,
! 						 clauses);
  	  c_name = "from";
  	  break;
  	case PRAGMA_OMP_CLAUSE_UNIFORM:
*************** c_parser_omp_all_clauses (c_parser *pars
*** 18046,18052 ****
  	  c_name = "enter";
  	  break;
  	default:
! 	  c_parser_error (parser, "expected %<#pragma omp%> clause");
  	  goto saw_error;
  	}
  
--- 19802,19808 ----
  	  c_name = "enter";
  	  break;
  	default:
! 	  c_parser_error (parser, "expected an OpenMP clause");
  	  goto saw_error;
  	}
  
*************** static tree
*** 18087,18092 ****
--- 19843,19849 ----
  c_parser_omp_structured_block (c_parser *parser, bool *if_p)
  {
    tree stmt = push_stmt_list ();
+   parser->omp_attrs_forbidden_p = true;
    c_parser_statement (parser, if_p);
    return pop_stmt_list (stmt);
  }
*************** c_parser_omp_structured_block (c_parser
*** 18094,18108 ****
  /* OpenACC 2.0:
     # pragma acc cache (variable-list) new-line
  
     LOC is the location of the #pragma token.
  */
  
  static tree
  c_parser_oacc_cache (location_t loc, c_parser *parser)
  {
!   tree stmt, clauses;
  
-   clauses = c_parser_omp_var_list_parens (parser, OMP_CLAUSE__CACHE_, NULL);
    clauses = c_finish_omp_clauses (clauses, C_ORT_ACC);
  
    c_parser_skip_to_pragma_eol (parser);
--- 19851,19889 ----
  /* OpenACC 2.0:
     # pragma acc cache (variable-list) new-line
  
+    OpenACC 2.7:
+    # pragma acc cache (readonly: variable-list) new-line
+ 
     LOC is the location of the #pragma token.
  */
  
  static tree
  c_parser_oacc_cache (location_t loc, c_parser *parser)
  {
!   tree stmt, clauses = NULL_TREE;
!   bool readonly = false;
!   location_t open_loc = c_parser_peek_token (parser)->location;
!   matching_parens parens;
!   if (parens.require_open (parser))
!     {
!       c_token *token = c_parser_peek_token (parser);
!       if (token->type == CPP_NAME
! 	  && !strcmp (IDENTIFIER_POINTER (token->value), "readonly")
! 	  && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
! 	{
! 	  c_parser_consume_token (parser);
! 	  c_parser_consume_token (parser);
! 	  readonly = true;
! 	}
!       clauses = c_parser_omp_variable_list (parser, open_loc,
! 					    OMP_CLAUSE__CACHE_, NULL_TREE);
!       parens.skip_until_found_close (parser);
!     }
! 
!   if (readonly)
!     for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
!       OMP_CLAUSE__CACHE__READONLY (c) = 1;
  
    clauses = c_finish_omp_clauses (clauses, C_ORT_ACC);
  
    c_parser_skip_to_pragma_eol (parser);
*************** c_parser_oacc_cache (location_t loc, c_p
*** 18129,18134 ****
--- 19910,19916 ----
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_COPYIN)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_COPYOUT)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_CREATE)		\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_DEFAULT)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_DEVICEPTR)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_IF)			\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_NO_CREATE)		\
*************** c_parser_oacc_host_data (location_t loc,
*** 18394,18401 ****
    tree stmt, clauses, block;
  
    clauses = c_parser_oacc_all_clauses (parser, OACC_HOST_DATA_CLAUSE_MASK,
! 				       "#pragma acc host_data");
! 
    block = c_begin_omp_parallel ();
    add_stmt (c_parser_omp_structured_block (parser, if_p));
    stmt = c_finish_oacc_host_data (loc, clauses, block);
--- 20176,20188 ----
    tree stmt, clauses, block;
  
    clauses = c_parser_oacc_all_clauses (parser, OACC_HOST_DATA_CLAUSE_MASK,
! 				       "#pragma acc host_data", false);
!   if (!omp_find_clause (clauses, OMP_CLAUSE_USE_DEVICE_PTR))
!     {
!       error_at (loc, "%<host_data%> construct requires %<use_device%> clause");
!       return error_mark_node;
!     }
!   clauses = c_finish_omp_clauses (clauses, C_ORT_ACC);
    block = c_begin_omp_parallel ();
    add_stmt (c_parser_omp_structured_block (parser, if_p));
    stmt = c_finish_oacc_host_data (loc, clauses, block);
*************** c_parser_oacc_loop (location_t loc, c_pa
*** 18432,18443 ****
    mask |= OACC_LOOP_CLAUSE_MASK;
  
    tree clauses = c_parser_oacc_all_clauses (parser, mask, p_name,
! 					    cclauses == NULL);
    if (cclauses)
      {
        clauses = c_oacc_split_loop_clauses (clauses, cclauses, is_parallel);
        if (*cclauses)
! 	*cclauses = c_finish_omp_clauses (*cclauses, C_ORT_ACC);
        if (clauses)
  	clauses = c_finish_omp_clauses (clauses, C_ORT_ACC);
      }
--- 20219,20231 ----
    mask |= OACC_LOOP_CLAUSE_MASK;
  
    tree clauses = c_parser_oacc_all_clauses (parser, mask, p_name,
! 					    /*finish_p=*/cclauses == NULL,
! 					    /*target=*/is_parallel);
    if (cclauses)
      {
        clauses = c_oacc_split_loop_clauses (clauses, cclauses, is_parallel);
        if (*cclauses)
! 	*cclauses = c_finish_omp_clauses (*cclauses, C_ORT_ACC_TARGET);
        if (clauses)
  	clauses = c_finish_omp_clauses (clauses, C_ORT_ACC);
      }
*************** c_parser_oacc_loop (location_t loc, c_pa
*** 18482,18487 ****
--- 20270,20276 ----
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_NUM_GANGS)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_NUM_WORKERS)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_PRESENT)		\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_SELF)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_VECTOR_LENGTH)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_WAIT) )
  
*************** c_parser_oacc_loop (location_t loc, c_pa
*** 18502,18507 ****
--- 20291,20297 ----
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_NUM_WORKERS)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_PRESENT)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_REDUCTION)		\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_SELF)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_VECTOR_LENGTH)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_WAIT) )
  
*************** c_parser_oacc_loop (location_t loc, c_pa
*** 18520,18525 ****
--- 20310,20316 ----
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_FIRSTPRIVATE)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_PRESENT)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_REDUCTION)		\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_SELF)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_WAIT) )
  
  static tree
*************** c_parser_oacc_compute (location_t loc, c
*** 18562,18568 ****
  	}
      }
  
!   tree clauses = c_parser_oacc_all_clauses (parser, mask, p_name);
  
    tree block = c_begin_omp_parallel ();
    add_stmt (c_parser_omp_structured_block (parser, if_p));
--- 20353,20361 ----
  	}
      }
  
!   tree clauses = c_parser_oacc_all_clauses (parser, mask, p_name,
! 					    /*finish_p=*/true,
! 					    /*target=*/true);
  
    tree block = c_begin_omp_parallel ();
    add_stmt (c_parser_omp_structured_block (parser, if_p));
*************** c_finish_oacc_routine (struct oacc_routi
*** 18762,18767 ****
--- 20555,20561 ----
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_HOST)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_IF)			\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_IF_PRESENT)		\
+ 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_SELF)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_WAIT) )
  
  static void
*************** c_parser_oacc_wait (location_t loc, c_pa
*** 18816,18821 ****
--- 20610,20670 ----
    return stmt;
  }
  
+ struct c_omp_loc_tree
+ {
+   location_t loc;
+   tree var;
+ };
+ 
+ /* Check whether the expression used in the allocator clause is declared or
+    modified between the variable declaration and its allocate directive.  */
+ static tree
+ c_check_omp_allocate_allocator_r (tree *tp, int *, void *data)
+ {
+   tree var = ((struct c_omp_loc_tree *) data)->var;
+   location_t loc = ((struct c_omp_loc_tree *) data)->loc;
+   if (TREE_CODE (*tp) == VAR_DECL && c_check_in_current_scope (*tp))
+     {
+       if (linemap_location_before_p (line_table, DECL_SOURCE_LOCATION (var),
+ 				     DECL_SOURCE_LOCATION (*tp)))
+ 	{
+ 	  error_at (loc, "variable %qD used in the %<allocator%> clause must "
+ 			 "be declared before %qD", *tp, var);
+ 	  inform (DECL_SOURCE_LOCATION (*tp), "declared here");
+ 	  inform (DECL_SOURCE_LOCATION (var),
+ 		  "to be allocated variable declared here");
+ 	  return *tp;
+ 	}
+       else
+ 	{
+ 	  gcc_assert (cur_stmt_list
+ 		      && TREE_CODE (cur_stmt_list) == STATEMENT_LIST);
+ 
+ 	  tree_stmt_iterator l = tsi_last (cur_stmt_list);
+ 	  while (!tsi_end_p (l))
+ 	    {
+ 	      if (linemap_location_before_p (line_table, EXPR_LOCATION (*l),
+ 					     DECL_SOURCE_LOCATION (var)))
+ 		  break;
+ 	      if (TREE_CODE (*l) == MODIFY_EXPR
+ 		  && TREE_OPERAND (*l, 0) == *tp)
+ 		{
+ 		  error_at (loc,
+ 			    "variable %qD used in the %<allocator%> clause "
+ 			    "must not be modified between declaration of %qD "
+ 			    "and its %<allocate%> directive", *tp, var);
+ 		  inform (EXPR_LOCATION (*l), "modified here");
+ 		  inform (DECL_SOURCE_LOCATION (var),
+ 			  "to be allocated variable declared here");
+ 		  return *tp;
+ 		}
+ 	      --l;
+ 	    }
+ 	}
+     }
+   return NULL_TREE;
+ }
+ 
  /* OpenMP 5.x:
     # pragma omp allocate (list)  clauses
  
*************** c_parser_oacc_wait (location_t loc, c_pa
*** 18826,18835 ****
     align (constant-expression)]  */
  
  static void
! c_parser_omp_allocate (location_t loc, c_parser *parser)
  {
    tree alignment = NULL_TREE;
    tree allocator = NULL_TREE;
    tree nl = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ALLOCATE, NULL_TREE);
    do
      {
--- 20675,20687 ----
     align (constant-expression)]  */
  
  static void
! c_parser_omp_allocate (c_parser *parser)
  {
    tree alignment = NULL_TREE;
    tree allocator = NULL_TREE;
+   c_parser_consume_pragma (parser);
+   location_t loc = c_parser_peek_token (parser)->location;
+   location_t allocator_loc = UNKNOWN_LOCATION;
    tree nl = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ALLOCATE, NULL_TREE);
    do
      {
*************** c_parser_omp_allocate (location_t loc, c
*** 18854,18860 ****
        c_expr expr = c_parser_expr_no_commas (parser, NULL);
        expr = convert_lvalue_to_rvalue (expr_loc, expr, false, true);
        expr_loc = c_parser_peek_token (parser)->location;
!       if (p[2] == 'i' && alignment)
  	{
  	  error_at (expr_loc, "too many %qs clauses", "align");
  	  break;
--- 20706,20714 ----
        c_expr expr = c_parser_expr_no_commas (parser, NULL);
        expr = convert_lvalue_to_rvalue (expr_loc, expr, false, true);
        expr_loc = c_parser_peek_token (parser)->location;
!       if (expr.value == error_mark_node)
! 	;
!       else if (p[2] == 'i' && alignment)
  	{
  	  error_at (expr_loc, "too many %qs clauses", "align");
  	  break;
*************** c_parser_omp_allocate (location_t loc, c
*** 18881,18886 ****
--- 20735,20741 ----
        else
  	{
  	  allocator = c_fully_fold (expr.value, false, NULL);
+ 	  allocator_loc = expr_loc;
  	  tree orig_type
  	    = expr.original_type ? expr.original_type : TREE_TYPE (allocator);
  	  orig_type = TYPE_MAIN_VARIANT (orig_type);
*************** c_parser_omp_allocate (location_t loc, c
*** 18900,18913 ****
      } while (true);
    c_parser_skip_to_pragma_eol (parser);
  
!   if (allocator || alignment)
!     for (tree c = nl; c != NULL_TREE; c = OMP_CLAUSE_CHAIN (c))
!       {
! 	OMP_CLAUSE_ALLOCATE_ALLOCATOR (c) = allocator;
! 	OMP_CLAUSE_ALLOCATE_ALIGN (c) = alignment;
!       }
! 
!   sorry_at (loc, "%<#pragma omp allocate%> not yet supported");
  }
  
  /* OpenMP 2.5:
--- 20755,20814 ----
      } while (true);
    c_parser_skip_to_pragma_eol (parser);
  
!   c_mark_decl_jump_unsafe_in_current_scope ();
!   for (tree c = nl; c != NULL_TREE; c = OMP_CLAUSE_CHAIN (c))
!     {
!       tree var = OMP_CLAUSE_DECL (c);
!       if (TREE_CODE (var) == PARM_DECL)
! 	{
! 	  error_at (OMP_CLAUSE_LOCATION (nl),
! 		    "function parameter %qD may not appear as list item in an "
! 		    "%<allocate%> directive", var);
! 	  continue;
! 	}
!       if (!c_check_in_current_scope (var))
! 	{
! 	  error_at (OMP_CLAUSE_LOCATION (nl),
! 		    "%<allocate%> directive must be in the same scope as %qD",
! 		    var);
! 	  inform (DECL_SOURCE_LOCATION (var), "declared here");
! 	  continue;
! 	}
!       if (lookup_attribute ("omp allocate", DECL_ATTRIBUTES (var)))
! 	{
! 	  error_at (OMP_CLAUSE_LOCATION (nl),
! 		    "%qD already appeared as list item in an "
! 		    "%<allocate%> directive", var);
! 	  continue;
! 	}
!       if (TREE_STATIC (var))
! 	{
! 	  if (allocator == NULL_TREE && allocator_loc == UNKNOWN_LOCATION)
! 	    error_at (loc, "%<allocator%> clause required for "
! 			   "static variable %qD", var);
! 	  else if (allocator
! 		   && (wi::to_widest (allocator) < 1
! 		       || wi::to_widest (allocator) > 8))
! 	    /* 8 = largest predefined memory allocator. */
! 	    error_at (allocator_loc,
! 		      "%<allocator%> clause requires a predefined allocator as "
! 		      "%qD is static", var);
! 	  else
! 	    sorry_at (OMP_CLAUSE_LOCATION (nl),
! 		      "%<#pragma omp allocate%> for static variables like "
! 		      "%qD not yet supported", var);
! 	  continue;
! 	}
!       if (allocator)
! 	{
! 	  struct c_omp_loc_tree data
! 	    = {EXPR_LOC_OR_LOC (allocator, OMP_CLAUSE_LOCATION (nl)), var};
! 	  walk_tree (&allocator, c_check_omp_allocate_allocator_r, &data, NULL);
! 	}
!       DECL_ATTRIBUTES (var) = tree_cons (get_identifier ("omp allocate"),
! 					 build_tree_list (allocator, alignment),
! 					 DECL_ATTRIBUTES (var));
!     }
  }
  
  /* OpenMP 2.5:
*************** c_parser_omp_atomic (location_t loc, c_p
*** 19206,19211 ****
--- 21107,21134 ----
  	case OMP_MEMORY_ORDER_SEQ_CST:
  	  memory_order = OMP_MEMORY_ORDER_SEQ_CST;
  	  break;
+ 	case OMP_MEMORY_ORDER_ACQUIRE:
+ 	  if (code == NOP_EXPR)  /* atomic write */
+ 	    {
+ 	      error_at (loc, "%<#pragma omp atomic write%> incompatible with "
+ 			     "%<acquire%> clause implicitly provided by a "
+ 			     "%<requires%> directive");
+ 	      memory_order = OMP_MEMORY_ORDER_SEQ_CST;
+ 	    }
+ 	  else
+ 	    memory_order = OMP_MEMORY_ORDER_ACQUIRE;
+ 	  break;
+ 	case OMP_MEMORY_ORDER_RELEASE:
+ 	  if (code == OMP_ATOMIC_READ)
+ 	    {
+ 	      error_at (loc, "%<#pragma omp atomic read%> incompatible with "
+ 			     "%<release%> clause implicitly provided by a "
+ 			     "%<requires%> directive");
+ 	      memory_order = OMP_MEMORY_ORDER_SEQ_CST;
+ 	    }
+ 	  else
+ 	    memory_order = OMP_MEMORY_ORDER_RELEASE;
+ 	  break;
  	case OMP_MEMORY_ORDER_ACQ_REL:
  	  switch (code)
  	    {
*************** c_parser_omp_critical (location_t loc, c
*** 19922,19927 ****
--- 21845,21853 ----
       destroy
       update (dependence-type)
  
+    OpenMP 5.2 additionally:
+      destroy ( depobj )
+ 
     dependence-type:
       in
       out
*************** c_parser_omp_depobj (c_parser *parser)
*** 19980,19986 ****
  	    clause = error_mark_node;
  	}
        else if (!strcmp ("destroy", p))
! 	kind = OMP_CLAUSE_DEPEND_LAST;
        else if (!strcmp ("update", p))
  	{
  	  matching_parens c_parens;
--- 21906,21931 ----
  	    clause = error_mark_node;
  	}
        else if (!strcmp ("destroy", p))
! 	{
! 	  matching_parens c_parens;
! 	  kind = OMP_CLAUSE_DEPEND_LAST;
! 	  if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)
! 	      && c_parens.require_open (parser))
! 	    {
! 	      tree destobj = c_parser_expr_no_commas (parser, NULL).value;
! 	      if (!lvalue_p (destobj))
! 		error_at (EXPR_LOC_OR_LOC (destobj, c_loc),
! 			  "%<destroy%> expression is not lvalue expression");
! 	      else if (depobj != error_mark_node
! 		       && !operand_equal_p (destobj, depobj,
! 					    OEP_MATCH_SIDE_EFFECTS
! 					    | OEP_LEXICOGRAPHIC))
! 		warning_at (EXPR_LOC_OR_LOC (destobj, c_loc), OPT_Wopenmp,
! 			    "the %<destroy%> expression %qE should be the same "
! 			    "as the %<depobj%> argument %qE", destobj, depobj);
! 	      c_parens.skip_until_found_close (parser);
! 	    }
! 	}
        else if (!strcmp ("update", p))
  	{
  	  matching_parens c_parens;
*************** c_parser_omp_flush (c_parser *parser)
*** 20079,20084 ****
--- 22024,22102 ----
    c_finish_omp_flush (loc, mo);
  }
  
+ /* Return true if next tokens contain a standard attribute that contains
+    omp::directive (DIRECTIVE).  */
+ 
+ static bool
+ c_parser_omp_section_scan (c_parser *parser, const char *directive,
+ 			   bool tentative)
+ {
+   if (!c_parser_nth_token_starts_std_attributes (parser, 1))
+     return false;
+   unsigned int n = 3;
+   if (!c_parser_check_balanced_raw_token_sequence (parser, &n))
+     return false;
+   c_token *token = c_parser_peek_nth_token_raw (parser, n);
+   if (token->type != CPP_CLOSE_SQUARE)
+     return false;
+   token = c_parser_peek_nth_token_raw (parser, n + 1);
+   if (token->type != CPP_CLOSE_SQUARE)
+     return false;
+   if (n < 9)
+     return false;
+   if (c_parser_peek_nth_token_raw (parser, 3)->type == CPP_NAME
+       && c_parser_peek_nth_token_raw (parser, 4)->type == CPP_OPEN_PAREN
+       && c_parser_peek_nth_token_raw (parser, 5)->type == CPP_NAME)
+     {
+       tree first = c_parser_peek_nth_token_raw (parser, 3)->value;
+       tree second = c_parser_peek_nth_token_raw (parser, 5)->value;
+       if (strcmp (IDENTIFIER_POINTER (first), "directive")
+ 	  && strcmp (IDENTIFIER_POINTER (first), "__directive__"))
+ 	return false;
+       if (strcmp (IDENTIFIER_POINTER (second), directive))
+ 	return false;
+     }
+   if (tentative)
+     return true;
+   location_t first_loc = c_parser_peek_token (parser)->location;
+   location_t last_loc = c_parser_peek_nth_token_raw (parser, n + 1)->location;
+   location_t middle_loc = UNKNOWN_LOCATION;
+   tree std_attrs = c_parser_std_attribute_specifier_sequence (parser);
+   bool seen = false;
+   int cnt = 0;
+   for (tree attr = std_attrs; attr; attr = TREE_CHAIN (attr))
+     if (is_attribute_namespace_p ("omp", attr)
+ 	&& is_attribute_p ("directive", get_attribute_name (attr)))
+       {
+ 	for (tree a = TREE_VALUE (attr); a; a = TREE_CHAIN (a))
+ 	  {
+ 	    tree d = TREE_VALUE (a);
+ 	    gcc_assert (TREE_CODE (d) == C_TOKEN_VEC);
+ 	    c_token *first = C_TOKEN_VEC_TOKENS (d)->address ();
+ 	    cnt++;
+ 	    if (first->type == CPP_NAME
+ 		&& strcmp (IDENTIFIER_POINTER (first->value),
+ 			   directive) == 0)
+ 	      {
+ 		seen = true;
+ 		if (middle_loc == UNKNOWN_LOCATION)
+ 		  middle_loc = first->location;
+ 	      }
+ 	  }
+       }
+   if (!seen)
+     return false;
+   if (cnt != 1 || TREE_CHAIN (std_attrs))
+     {
+       error_at (make_location (first_loc, last_loc, middle_loc),
+ 		"%<[[omp::directive(%s)]]%> must be the only specified "
+ 		"attribute on a statement", directive);
+       return false;
+     }
+   c_parser_handle_statement_omp_attributes (parser, std_attrs, NULL);
+   return true;
+ }
+ 
  /* Parse an OpenMP structured block sequence.  KIND is the corresponding
     separating directive.  */
  
*************** c_parser_omp_structured_block_sequence (
*** 20098,20103 ****
--- 22116,22128 ----
        if (kind != PRAGMA_NONE
  	  && c_parser_peek_token (parser)->pragma_kind == kind)
  	break;
+ 
+       if (kind != PRAGMA_NONE
+ 	  && c_parser_omp_section_scan (parser,
+ 					kind == PRAGMA_OMP_SCAN
+ 					? "scan" : "section", false))
+ 	break;
+ 
        c_parser_statement (parser, NULL);
      }
    while (1);
*************** c_parser_omp_scan_loop_body (c_parser *p
*** 20115,20120 ****
--- 22140,22146 ----
    tree substmt;
    location_t loc;
    tree clauses = NULL_TREE;
+   bool found_scan = false;
  
    loc = c_parser_peek_token (parser)->location;
    if (!open_brace_parsed
*************** c_parser_omp_scan_loop_body (c_parser *p
*** 20125,20131 ****
        return;
      }
  
!   substmt = c_parser_omp_structured_block_sequence (parser, PRAGMA_OMP_SCAN);
    substmt = build2 (OMP_SCAN, void_type_node, substmt, NULL_TREE);
    SET_EXPR_LOCATION (substmt, loc);
    add_stmt (substmt);
--- 22151,22165 ----
        return;
      }
  
!   if (c_parser_peek_token (parser)->pragma_kind != PRAGMA_OMP_SCAN)
!     substmt = c_parser_omp_structured_block_sequence (parser, PRAGMA_OMP_SCAN);
!   else
!     {
!       warning_at (c_parser_peek_token (parser)->location, OPT_Wopenmp,
! 		  "%<#pragma omp scan%> with zero preceding executable "
! 		  "statements");
!       substmt = build_empty_stmt (loc);
!     }
    substmt = build2 (OMP_SCAN, void_type_node, substmt, NULL_TREE);
    SET_EXPR_LOCATION (substmt, loc);
    add_stmt (substmt);
*************** c_parser_omp_scan_loop_body (c_parser *p
*** 20134,20139 ****
--- 22168,22174 ----
    if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_OMP_SCAN)
      {
        enum omp_clause_code clause = OMP_CLAUSE_ERROR;
+       found_scan = true;
  
        c_parser_consume_pragma (parser);
  
*************** c_parser_omp_scan_loop_body (c_parser *p
*** 20163,20169 ****
      error ("expected %<#pragma omp scan%>");
  
    clauses = c_finish_omp_clauses (clauses, C_ORT_OMP);
!   substmt = c_parser_omp_structured_block_sequence (parser, PRAGMA_NONE);
    substmt = build2 (OMP_SCAN, void_type_node, substmt, clauses);
    SET_EXPR_LOCATION (substmt, loc);
    add_stmt (substmt);
--- 22198,22213 ----
      error ("expected %<#pragma omp scan%>");
  
    clauses = c_finish_omp_clauses (clauses, C_ORT_OMP);
!   if (!c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
!     substmt = c_parser_omp_structured_block_sequence (parser, PRAGMA_NONE);
!   else
!     {
!       if (found_scan)
! 	warning_at (loc, OPT_Wopenmp,
! 		    "%<#pragma omp scan%> with zero succeeding executable "
! 		    "statements");
!       substmt = build_empty_stmt (loc);
!     }
    substmt = build2 (OMP_SCAN, void_type_node, substmt, clauses);
    SET_EXPR_LOCATION (substmt, loc);
    add_stmt (substmt);
*************** c_parser_omp_scan_loop_body (c_parser *p
*** 20172,20177 ****
--- 22216,22489 ----
  			     "expected %<}%>");
  }
  
+ 
+ /* This function parses a single level of a loop nest, invoking itself
+    recursively if necessary.
+ 
+    loop-nest :: for (...) loop-body
+    loop-body :: loop-nest
+ 	     |  { [intervening-code] loop-body [intervening-code] }
+ 	     |  final-loop-body
+    intervening-code :: structured-block-sequence
+    final-loop-body :: structured-block
+ 
+    For a collapsed loop nest, only a single OMP_FOR is built, pulling out
+    all the iterator information from the inner loops into the
+    parser->omp_for_parse_state structure.
+ 
+    The iterator decl, init, cond, and incr are stored in vectors.
+ 
+    Initialization code for iterator variables is collected into
+    parser->omp_for_parse_state->pre_body and ends up inserted directly
+    into the OMP_FOR structure.  */
+ 
+ static tree
+ c_parser_omp_loop_nest (c_parser *parser, bool *if_p)
+ {
+   tree decl, cond, incr, init;
+   tree body = NULL_TREE;
+   matching_parens parens;
+   bool moreloops;
+   unsigned char save_in_statement;
+   tree loop_scope;
+   location_t loc;
+   struct omp_for_parse_data *omp_for_parse_state
+     = parser->omp_for_parse_state;
+   gcc_assert (omp_for_parse_state);
+   int depth = omp_for_parse_state->depth;
+ 
+   /* We have already matched the FOR token but not consumed it yet.  */
+   loc = c_parser_peek_token (parser)->location;
+   gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR));
+   c_parser_consume_token (parser);
+ 
+   /* Forbid break/continue in the loop initializer, condition, and
+      increment expressions.  */
+   save_in_statement = in_statement;
+   in_statement = IN_OMP_BLOCK;
+ 
+   /* We are not in intervening code now.  */
+   omp_for_parse_state->in_intervening_code = false;
+ 
+   if (!parens.require_open (parser))
+     {
+       omp_for_parse_state->fail = true;
+       return NULL_TREE;
+     }
+ 
+   /* An implicit scope block surrounds each level of FOR loop, for
+      declarations of iteration variables at this loop depth.  */
+   loop_scope = c_begin_compound_stmt (true);
+ 
+   /* Parse the initialization declaration or expression.  */
+   if (c_parser_next_tokens_start_declaration (parser))
+     {
+       /* This is a declaration, which must be added to the pre_body code.  */
+       tree this_pre_body = push_stmt_list ();
+       c_in_omp_for = true;
+       c_parser_declaration_or_fndef (parser, true, true, true, true, true);
+       c_in_omp_for = false;
+       this_pre_body = pop_stmt_list (this_pre_body);
+       append_to_statement_list_force (this_pre_body,
+ 				      &(omp_for_parse_state->pre_body));
+       decl = check_for_loop_decls (omp_for_parse_state->for_loc, flag_isoc99);
+       if (decl == NULL)
+ 	goto error_init;
+       if (DECL_INITIAL (decl) == error_mark_node)
+ 	decl = error_mark_node;
+       init = decl;
+     }
+   else if (c_parser_next_token_is (parser, CPP_NAME)
+ 	   && c_parser_peek_2nd_token (parser)->type == CPP_EQ)
+     {
+       struct c_expr decl_exp;
+       struct c_expr init_exp;
+       location_t init_loc;
+ 
+       decl_exp = c_parser_postfix_expression (parser);
+       decl = decl_exp.value;
+ 
+       c_parser_require (parser, CPP_EQ, "expected %<=%>");
+ 
+       init_loc = c_parser_peek_token (parser)->location;
+       init_exp = c_parser_expr_no_commas (parser, NULL);
+       init_exp = default_function_array_read_conversion (init_loc,
+ 							 init_exp);
+       c_in_omp_for = true;
+       init = build_modify_expr (init_loc, decl, decl_exp.original_type,
+ 				NOP_EXPR, init_loc, init_exp.value,
+ 				init_exp.original_type);
+       c_in_omp_for = false;
+       init = c_process_expr_stmt (init_loc, init);
+ 
+       c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
+     }
+   else
+     {
+     error_init:
+       c_parser_error (parser,
+ 		      "expected iteration declaration or initialization");
+       c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
+ 				 "expected %<)%>");
+       omp_for_parse_state->fail = true;
+       goto parse_next;
+     }
+ 
+   /* Parse the loop condition.  */
+   cond = NULL_TREE;
+   if (c_parser_next_token_is_not (parser, CPP_SEMICOLON))
+     {
+       location_t cond_loc = c_parser_peek_token (parser)->location;
+       c_in_omp_for = true;
+       struct c_expr cond_expr
+ 	= c_parser_binary_expression (parser, NULL, NULL_TREE);
+       c_in_omp_for = false;
+ 
+       cond = cond_expr.value;
+       cond = c_objc_common_truthvalue_conversion (cond_loc, cond);
+       switch (cond_expr.original_code)
+ 	{
+ 	case GT_EXPR:
+ 	case GE_EXPR:
+ 	case LT_EXPR:
+ 	case LE_EXPR:
+ 	  break;
+ 	case NE_EXPR:
+ 	  if (omp_for_parse_state->code != OACC_LOOP)
+ 	    break;
+ 	  /* FALLTHRU.  */
+ 	default:
+ 	  /* Can't be cond = error_mark_node, because we want to preserve
+ 	     the location until c_finish_omp_for.  */
+ 	  cond = build1 (NOP_EXPR, boolean_type_node, error_mark_node);
+ 	  break;
+ 	}
+       protected_set_expr_location (cond, cond_loc);
+     }
+   c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
+ 
+   /* Parse the increment expression.  */
+   incr = NULL_TREE;
+   if (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN))
+     {
+       location_t incr_loc = c_parser_peek_token (parser)->location;
+ 
+       incr = c_process_expr_stmt (incr_loc,
+ 				  c_parser_expression (parser).value);
+     }
+   parens.skip_until_found_close (parser);
+ 
+   if (decl == NULL || decl == error_mark_node || init == error_mark_node)
+     omp_for_parse_state->fail = true;
+   else
+     {
+       TREE_VEC_ELT (omp_for_parse_state->declv, depth) = decl;
+       TREE_VEC_ELT (omp_for_parse_state->initv, depth) = init;
+       TREE_VEC_ELT (omp_for_parse_state->condv, depth) = cond;
+       TREE_VEC_ELT (omp_for_parse_state->incrv, depth) = incr;
+     }
+ 
+ parse_next:
+   moreloops = depth < omp_for_parse_state->count - 1;
+   omp_for_parse_state->want_nested_loop = moreloops;
+   if (moreloops && c_parser_next_token_is_keyword (parser, RID_FOR))
+     {
+       omp_for_parse_state->depth++;
+       body = c_parser_omp_loop_nest (parser, if_p);
+       omp_for_parse_state->depth--;
+     }
+   else if (moreloops && c_parser_next_token_is (parser, CPP_OPEN_BRACE))
+     {
+       /* This is the open brace in the loop-body grammar production.  Rather
+ 	 than trying to special-case braces, just parse it as a compound
+ 	 statement and handle the nested loop-body case there.  Note that
+ 	 when we see a further open brace inside the compound statement
+ 	 loop-body, we don't know whether it is the start of intervening
+ 	 code that is a compound statement, or a level of braces
+ 	 surrounding a nested loop-body.  Use the WANT_NESTED_LOOP state
+ 	 bit to ensure we have only one nested loop at each level.  */
+       omp_for_parse_state->in_intervening_code = true;
+       body = c_parser_compound_statement (parser, NULL);
+       omp_for_parse_state->in_intervening_code = false;
+       if (omp_for_parse_state->want_nested_loop)
+ 	{
+ 	  /* We have already parsed the whole loop body and not found a
+ 	     nested loop.  */
+ 	  error_at (omp_for_parse_state->for_loc,
+ 		    "not enough nested loops");
+ 	  omp_for_parse_state->fail = true;
+ 	}
+       if_p = NULL;
+     }
+   else
+     {
+       /* This is the final-loop-body case in the grammar: we have
+ 	 something that is not a FOR and not an open brace.  */
+       if (moreloops)
+ 	{
+ 	  /* If we were expecting a nested loop, give an error and mark
+ 	     that parsing has failed, and try to recover by parsing the
+ 	     body as regular code without further collapsing.  */
+ 	  error_at (omp_for_parse_state->for_loc,
+ 		    "not enough nested loops");
+ 	  omp_for_parse_state->fail = true;
+ 	}
+       in_statement = IN_OMP_FOR;
+       parser->omp_for_parse_state = NULL;
+       body = push_stmt_list ();
+       if (omp_for_parse_state->inscan)
+ 	c_parser_omp_scan_loop_body (parser, false);
+       else
+ 	add_stmt (c_parser_c99_block_statement (parser, if_p));
+       body = pop_stmt_list (body);
+       parser->omp_for_parse_state = omp_for_parse_state;
+     }
+   in_statement = save_in_statement;
+   omp_for_parse_state->want_nested_loop = false;
+   omp_for_parse_state->in_intervening_code = true;
+ 
+   /* Pop and return the implicit scope surrounding this level of loop.
+      If the iteration variable at this depth was bound in the for loop,
+      pull out and save the binding.  Later in c_parser_omp_for_loop,
+      these bindings will be moved to the scope surrounding the entire
+      OMP_FOR.  That keeps the gimplifier happy later on, and meanwhile
+      we have already resolved all references to the iteration variable
+      in its true scope.  */
+   add_stmt (body);
+   body = c_end_compound_stmt (loc, loop_scope, true);
+   if (decl && TREE_CODE (body) == BIND_EXPR)
+     {
+       tree t = BIND_EXPR_VARS (body);
+       tree prev = NULL_TREE, next = NULL_TREE;
+       while (t)
+ 	{
+ 	  next = DECL_CHAIN (t);
+ 	  if (t == decl)
+ 	    {
+ 	      if (prev)
+ 		DECL_CHAIN (prev) = next;
+ 	      else
+ 		{
+ 		  BIND_EXPR_VARS (body) = next;
+ 		  BLOCK_VARS (BIND_EXPR_BLOCK (body)) = next;
+ 		}
+ 	      DECL_CHAIN (t) = omp_for_parse_state->bindings;
+ 	      omp_for_parse_state->bindings = t;
+ 	      break;
+ 	    }
+ 	  else
+ 	    {
+ 	      prev = t;
+ 	      t = next;
+ 	    }
+ 	}
+       if (BIND_EXPR_VARS (body) == NULL_TREE)
+ 	body = BIND_EXPR_BODY (body);
+     }
+ 
+   return body;
+ }
+ 
  /* Parse the restricted form of loop statements allowed by OpenACC and OpenMP.
     The real trick here is to determine the loop control variable early
     so that we can push a new decl if necessary to make it private.
*************** static tree
*** 20182,20198 ****
  c_parser_omp_for_loop (location_t loc, c_parser *parser, enum tree_code code,
  		       tree clauses, tree *cclauses, bool *if_p)
  {
!   tree decl, cond, incr, body, init, stmt, cl;
!   unsigned char save_in_statement;
!   tree declv, condv, incrv, initv, ret = NULL_TREE;
!   tree pre_body = NULL_TREE, this_pre_body;
    tree ordered_cl = NULL_TREE;
!   bool fail = false, open_brace_parsed = false;
!   int i, collapse = 1, ordered = 0, count, nbraces = 0;
!   location_t for_loc;
    bool tiling = false;
    bool inscan = false;
!   vec<tree, va_gc> *for_block = make_tree_vector ();
  
    for (cl = clauses; cl; cl = OMP_CLAUSE_CHAIN (cl))
      if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_COLLAPSE)
--- 22494,22507 ----
  c_parser_omp_for_loop (location_t loc, c_parser *parser, enum tree_code code,
  		       tree clauses, tree *cclauses, bool *if_p)
  {
!   tree body, stmt, cl;
!   tree ret = NULL_TREE;
    tree ordered_cl = NULL_TREE;
!   int i, collapse = 1, ordered = 0, count;
    bool tiling = false;
    bool inscan = false;
!   struct omp_for_parse_data data;
!   struct omp_for_parse_data *save_data = parser->omp_for_parse_state;
  
    for (cl = clauses; cl; cl = OMP_CLAUSE_CHAIN (cl))
      if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_COLLAPSE)
*************** c_parser_omp_for_loop (location_t loc, c
*** 20225,20474 ****
    gcc_assert (tiling || (collapse >= 1 && ordered >= 0));
    count = ordered ? ordered : collapse;
  
-   declv = make_tree_vec (count);
-   initv = make_tree_vec (count);
-   condv = make_tree_vec (count);
-   incrv = make_tree_vec (count);
- 
    if (!c_parser_next_token_is_keyword (parser, RID_FOR))
      {
        c_parser_error (parser, "for statement expected");
        return NULL;
      }
-   for_loc = c_parser_peek_token (parser)->location;
-   c_parser_consume_token (parser);
- 
-   /* Forbid break/continue in the loop initializer, condition, and
-      increment expressions.  */
-   save_in_statement = in_statement;
-   in_statement = IN_OMP_BLOCK;
- 
-   for (i = 0; i < count; i++)
-     {
-       int bracecount = 0;
- 
-       matching_parens parens;
-       if (!parens.require_open (parser))
- 	goto pop_scopes;
- 
-       /* Parse the initialization declaration or expression.  */
-       if (c_parser_next_tokens_start_declaration (parser))
- 	{
- 	  if (i > 0)
- 	    vec_safe_push (for_block, c_begin_compound_stmt (true));
- 	  this_pre_body = push_stmt_list ();
- 	  c_in_omp_for = true;
- 	  c_parser_declaration_or_fndef (parser, true, true, true, true, true);
- 	  c_in_omp_for = false;
- 	  if (this_pre_body)
- 	    {
- 	      this_pre_body = pop_stmt_list (this_pre_body);
- 	      if (pre_body)
- 		{
- 		  tree t = pre_body;   
- 		  pre_body = push_stmt_list ();
- 		  add_stmt (t);
- 		  add_stmt (this_pre_body);
- 		  pre_body = pop_stmt_list (pre_body);
- 		}
- 	      else
- 		pre_body = this_pre_body;
- 	    }
- 	  decl = check_for_loop_decls (for_loc, flag_isoc99);
- 	  if (decl == NULL)
- 	    goto error_init;
- 	  if (DECL_INITIAL (decl) == error_mark_node)
- 	    decl = error_mark_node;
- 	  init = decl;
- 	}
-       else if (c_parser_next_token_is (parser, CPP_NAME)
- 	       && c_parser_peek_2nd_token (parser)->type == CPP_EQ)
- 	{
- 	  struct c_expr decl_exp;
- 	  struct c_expr init_exp;
- 	  location_t init_loc;
- 
- 	  decl_exp = c_parser_postfix_expression (parser);
- 	  decl = decl_exp.value;
- 
- 	  c_parser_require (parser, CPP_EQ, "expected %<=%>");
- 
- 	  init_loc = c_parser_peek_token (parser)->location;
- 	  init_exp = c_parser_expr_no_commas (parser, NULL);
- 	  init_exp = default_function_array_read_conversion (init_loc,
- 							     init_exp);
- 	  c_in_omp_for = true;
- 	  init = build_modify_expr (init_loc, decl, decl_exp.original_type,
- 				    NOP_EXPR, init_loc, init_exp.value,
- 				    init_exp.original_type);
- 	  c_in_omp_for = false;
- 	  init = c_process_expr_stmt (init_loc, init);
- 
- 	  c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
- 	}
-       else
- 	{
- 	error_init:
- 	  c_parser_error (parser,
- 			  "expected iteration declaration or initialization");
- 	  c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
- 				     "expected %<)%>");
- 	  fail = true;
- 	  goto parse_next;
- 	}
- 
-       /* Parse the loop condition.  */
-       cond = NULL_TREE;
-       if (c_parser_next_token_is_not (parser, CPP_SEMICOLON))
- 	{
- 	  location_t cond_loc = c_parser_peek_token (parser)->location;
- 	  c_in_omp_for = true;
- 	  struct c_expr cond_expr
- 	    = c_parser_binary_expression (parser, NULL, NULL_TREE);
-           c_in_omp_for = false;
- 
- 	  cond = cond_expr.value;
- 	  cond = c_objc_common_truthvalue_conversion (cond_loc, cond);
- 	  switch (cond_expr.original_code)
- 	    {
- 	    case GT_EXPR:
- 	    case GE_EXPR:
- 	    case LT_EXPR:
- 	    case LE_EXPR:
- 	      break;
- 	    case NE_EXPR:
- 	      if (code != OACC_LOOP)
- 		break;
- 	      /* FALLTHRU.  */
- 	    default:
- 	      /* Can't be cond = error_mark_node, because we want to preserve
- 		 the location until c_finish_omp_for.  */
- 	      cond = build1 (NOP_EXPR, boolean_type_node, error_mark_node);
- 	      break;
- 	    }
- 	  protected_set_expr_location (cond, cond_loc);
- 	}
-       c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
- 
-       /* Parse the increment expression.  */
-       incr = NULL_TREE;
-       if (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN))
- 	{
- 	  location_t incr_loc = c_parser_peek_token (parser)->location;
- 
- 	  incr = c_process_expr_stmt (incr_loc,
- 				      c_parser_expression (parser).value);
- 	}
-       parens.skip_until_found_close (parser);
- 
-       if (decl == NULL || decl == error_mark_node || init == error_mark_node)
- 	fail = true;
-       else
- 	{
- 	  TREE_VEC_ELT (declv, i) = decl;
- 	  TREE_VEC_ELT (initv, i) = init;
- 	  TREE_VEC_ELT (condv, i) = cond;
- 	  TREE_VEC_ELT (incrv, i) = incr;
- 	}
  
!     parse_next:
!       if (i == count - 1)
! 	break;
! 
!       /* FIXME: OpenMP 3.0 draft isn't very clear on what exactly is allowed
! 	 in between the collapsed for loops to be still considered perfectly
! 	 nested.  Hopefully the final version clarifies this.
! 	 For now handle (multiple) {'s and empty statements.  */
!       do
! 	{
! 	  if (c_parser_next_token_is_keyword (parser, RID_FOR))
! 	    {
! 	      c_parser_consume_token (parser);
! 	      break;
! 	    }
! 	  else if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
! 	    {
! 	      c_parser_consume_token (parser);
! 	      bracecount++;
! 	    }
! 	  else if (bracecount
! 		   && c_parser_next_token_is (parser, CPP_SEMICOLON))
! 	    c_parser_consume_token (parser);
! 	  else
! 	    {
! 	      c_parser_error (parser, "not enough perfectly nested loops");
! 	      if (bracecount)
! 		{
! 		  open_brace_parsed = true;
! 		  bracecount--;
! 		}
! 	      fail = true;
! 	      count = 0;
! 	      break;
! 	    }
! 	}
!       while (1);
! 
!       nbraces += bracecount;
!     }
! 
!   if (nbraces)
!     if_p = NULL;
! 
!   in_statement = IN_OMP_FOR;
!   body = push_stmt_list ();
! 
!   if (inscan)
!     c_parser_omp_scan_loop_body (parser, open_brace_parsed);
!   else if (open_brace_parsed)
!     {
!       location_t here = c_parser_peek_token (parser)->location;
!       stmt = c_begin_compound_stmt (true);
!       c_parser_compound_statement_nostart (parser);
!       add_stmt (c_end_compound_stmt (here, stmt, true));
!     }
!   else
!     add_stmt (c_parser_c99_block_statement (parser, if_p));
  
!   body = pop_stmt_list (body);
!   in_statement = save_in_statement;
  
!   while (nbraces)
      {
!       if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
! 	{
! 	  c_parser_consume_token (parser);
! 	  nbraces--;
! 	}
!       else if (c_parser_next_token_is (parser, CPP_SEMICOLON))
! 	c_parser_consume_token (parser);
!       else
! 	{
! 	  c_parser_error (parser, "collapsed loops not perfectly nested");
! 	  while (nbraces)
! 	    {
! 	      location_t here = c_parser_peek_token (parser)->location;
! 	      stmt = c_begin_compound_stmt (true);
! 	      add_stmt (body);
! 	      c_parser_compound_statement_nostart (parser);
! 	      body = c_end_compound_stmt (here, stmt, true);
! 	      nbraces--;
! 	    }
! 	  goto pop_scopes;
! 	}
      }
  
    /* Only bother calling c_finish_omp_for if we haven't already generated
       an error from the initialization parsing.  */
!   if (!fail)
      {
        c_in_omp_for = true;
!       stmt = c_finish_omp_for (loc, code, declv, NULL, initv, condv,
! 			       incrv, body, pre_body, true);
        c_in_omp_for = false;
  
        /* Check for iterators appearing in lb, b or incr expressions.  */
!       if (stmt && !c_omp_check_loop_iv (stmt, declv, NULL))
  	stmt = NULL_TREE;
  
        if (stmt)
--- 22534,22595 ----
    gcc_assert (tiling || (collapse >= 1 && ordered >= 0));
    count = ordered ? ordered : collapse;
  
    if (!c_parser_next_token_is_keyword (parser, RID_FOR))
      {
        c_parser_error (parser, "for statement expected");
        return NULL;
      }
  
!   /* Initialize parse state for recursive descent.  */
!   data.declv = make_tree_vec (count);
!   data.initv = make_tree_vec (count);
!   data.condv = make_tree_vec (count);
!   data.incrv = make_tree_vec (count);
!   data.pre_body = NULL_TREE;;
!   data.bindings = NULL_TREE;
!   data.for_loc = c_parser_peek_token (parser)->location;
!   data.count = count;
!   data.depth = 0;
!   data.want_nested_loop = true;
!   data.ordered = ordered > 0;
!   data.in_intervening_code = false;
!   data.perfect_nesting_fail = false;
!   data.fail = false;
!   data.inscan = inscan;
!   data.saw_intervening_code = false;
!   data.code = code;
!   parser->omp_for_parse_state = &data;
  
!   body = c_parser_omp_loop_nest (parser, if_p);
  
!   /* Add saved bindings for iteration variables that were declared in
!      the nested for loop to the scope surrounding the entire loop.  */
!   for (tree t = data.bindings; t; )
      {
!       tree n = TREE_CHAIN (t);
!       TREE_CHAIN (t) = NULL_TREE;
!       pushdecl (t);
!       t = n;
      }
  
    /* Only bother calling c_finish_omp_for if we haven't already generated
       an error from the initialization parsing.  */
!   if (!data.fail)
      {
        c_in_omp_for = true;
!       stmt = c_finish_omp_for (loc, code, data.declv, NULL, data.initv,
! 			       data.condv, data.incrv,
! 			       body, data.pre_body, true);
        c_in_omp_for = false;
  
        /* Check for iterators appearing in lb, b or incr expressions.  */
!       if (stmt && !c_omp_check_loop_iv (stmt, data.declv, NULL))
! 	stmt = NULL_TREE;
! 
!       /* Check for errors involving lb/ub/incr expressions referencing
! 	 variables declared in intervening code.  */
!       if (data.saw_intervening_code
! 	  && !c_omp_check_loop_binding_exprs (stmt, NULL))
  	stmt = NULL_TREE;
  
        if (stmt)
*************** c_parser_omp_for_loop (location_t loc, c
*** 20520,20526 ****
  		else
  		  {
  		    for (i = 0; i < count; i++)
! 		      if (TREE_VEC_ELT (declv, i) == OMP_CLAUSE_DECL (*c))
  			break;
  		    if (i == count)
  		      c = &OMP_CLAUSE_CHAIN (*c);
--- 22641,22647 ----
  		else
  		  {
  		    for (i = 0; i < count; i++)
! 		      if (TREE_VEC_ELT (data.declv, i) == OMP_CLAUSE_DECL (*c))
  			break;
  		    if (i == count)
  		      c = &OMP_CLAUSE_CHAIN (*c);
*************** c_parser_omp_for_loop (location_t loc, c
*** 20533,20539 ****
  		      }
  		    else
  		      {
! 			/* Move lastprivate (decl) clause to OMP_FOR_CLAUSES.  */
  			tree l = *c;
  			*c = OMP_CLAUSE_CHAIN (*c);
  			if (code == OMP_SIMD)
--- 22654,22661 ----
  		      }
  		    else
  		      {
! 			/* Move lastprivate (decl) clause to
! 			   OMP_FOR_CLAUSES.  */
  			tree l = *c;
  			*c = OMP_CLAUSE_CHAIN (*c);
  			if (code == OMP_SIMD)
*************** c_parser_omp_for_loop (location_t loc, c
*** 20554,20569 ****
  	}
        ret = stmt;
      }
! pop_scopes:
!   while (!for_block->is_empty ())
!     {
!       /* FIXME diagnostics: LOC below should be the actual location of
! 	 this particular for block.  We need to build a list of
! 	 locations to go along with FOR_BLOCK.  */
!       stmt = c_end_compound_stmt (loc, for_block->pop (), true);
!       add_stmt (stmt);
!     }
!   release_tree_vector (for_block);
    return ret;
  }
  
--- 22676,22683 ----
  	}
        ret = stmt;
      }
! 
!   parser->omp_for_parse_state = save_data;
    return ret;
  }
  
*************** c_parser_omp_sections_scope (location_t
*** 20999,21005 ****
  
    stmt = push_stmt_list ();
  
!   if (c_parser_peek_token (parser)->pragma_kind != PRAGMA_OMP_SECTION)
      {
        substmt = c_parser_omp_structured_block_sequence (parser,
  							PRAGMA_OMP_SECTION);
--- 23113,23120 ----
  
    stmt = push_stmt_list ();
  
!   if (c_parser_peek_token (parser)->pragma_kind != PRAGMA_OMP_SECTION
!       && !c_parser_omp_section_scan (parser, "section", true))
      {
        substmt = c_parser_omp_structured_block_sequence (parser,
  							PRAGMA_OMP_SECTION);
*************** c_parser_omp_sections_scope (location_t
*** 21016,21021 ****
--- 23131,23137 ----
  	break;
  
        loc = c_parser_peek_token (parser)->location;
+       c_parser_omp_section_scan (parser, "section", false);
        if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_OMP_SECTION)
  	{
  	  c_parser_consume_pragma (parser);
*************** c_parser_omp_parallel (location_t loc, c
*** 21277,21282 ****
--- 23393,23399 ----
      }
  
    block = c_begin_omp_parallel ();
+   parser->omp_attrs_forbidden_p = true;
    c_parser_statement (parser, if_p);
    stmt = c_finish_omp_parallel (loc, clauses, block);
  
*************** c_parser_omp_task (location_t loc, c_par
*** 21372,21377 ****
--- 23489,23495 ----
  				      "#pragma omp task");
  
    block = c_begin_omp_task ();
+   parser->omp_attrs_forbidden_p = true;
    c_parser_statement (parser, if_p);
    return c_finish_omp_task (loc, clauses, block);
  }
*************** c_parser_omp_target_data (location_t loc
*** 21746,21761 ****
--- 23864,23887 ----
  	  {
  	  case GOMP_MAP_TO:
  	  case GOMP_MAP_ALWAYS_TO:
+ 	  case GOMP_MAP_PRESENT_TO:
+ 	  case GOMP_MAP_ALWAYS_PRESENT_TO:
  	  case GOMP_MAP_FROM:
  	  case GOMP_MAP_ALWAYS_FROM:
+ 	  case GOMP_MAP_PRESENT_FROM:
+ 	  case GOMP_MAP_ALWAYS_PRESENT_FROM:
  	  case GOMP_MAP_TOFROM:
  	  case GOMP_MAP_ALWAYS_TOFROM:
+ 	  case GOMP_MAP_PRESENT_TOFROM:
+ 	  case GOMP_MAP_ALWAYS_PRESENT_TOFROM:
  	  case GOMP_MAP_ALLOC:
+ 	  case GOMP_MAP_PRESENT_ALLOC:
  	    map_seen = 3;
  	    break;
  	  case GOMP_MAP_FIRSTPRIVATE_POINTER:
  	  case GOMP_MAP_ALWAYS_POINTER:
  	  case GOMP_MAP_ATTACH_DETACH:
+ 	  case GOMP_MAP_ATTACH:
  	    break;
  	  default:
  	    map_seen |= 1;
*************** c_parser_omp_target_enter_data (location
*** 21896,21902 ****
--- 24022,24031 ----
  	  {
  	  case GOMP_MAP_TO:
  	  case GOMP_MAP_ALWAYS_TO:
+ 	  case GOMP_MAP_PRESENT_TO:
+ 	  case GOMP_MAP_ALWAYS_PRESENT_TO:
  	  case GOMP_MAP_ALLOC:
+ 	  case GOMP_MAP_PRESENT_ALLOC:
  	    map_seen = 3;
  	    break;
  	  case GOMP_MAP_TOFROM:
*************** c_parser_omp_target_enter_data (location
*** 21907,21915 ****
--- 24036,24053 ----
  	    OMP_CLAUSE_SET_MAP_KIND (*pc, GOMP_MAP_ALWAYS_TO);
  	    map_seen = 3;
  	    break;
+ 	  case GOMP_MAP_PRESENT_TOFROM:
+ 	    OMP_CLAUSE_SET_MAP_KIND (*pc, GOMP_MAP_PRESENT_TO);
+ 	    map_seen = 3;
+ 	    break;
+ 	  case GOMP_MAP_ALWAYS_PRESENT_TOFROM:
+ 	    OMP_CLAUSE_SET_MAP_KIND (*pc, GOMP_MAP_ALWAYS_PRESENT_TO);
+ 	    map_seen = 3;
+ 	    break;
  	  case GOMP_MAP_FIRSTPRIVATE_POINTER:
  	  case GOMP_MAP_ALWAYS_POINTER:
  	  case GOMP_MAP_ATTACH_DETACH:
+ 	  case GOMP_MAP_ATTACH:
  	    break;
  	  default:
  	    map_seen |= 1;
*************** c_parser_omp_target_exit_data (location_
*** 21984,21990 ****
  
    tree clauses
      = c_parser_omp_all_clauses (parser, OMP_TARGET_EXIT_DATA_CLAUSE_MASK,
! 				"#pragma omp target exit data");
    c_omp_adjust_map_clauses (clauses, false);
    int map_seen = 0;
    for (tree *pc = &clauses; *pc;)
--- 24122,24129 ----
  
    tree clauses
      = c_parser_omp_all_clauses (parser, OMP_TARGET_EXIT_DATA_CLAUSE_MASK,
! 				"#pragma omp target exit data", false);
!   clauses = c_finish_omp_clauses (clauses, C_ORT_OMP_EXIT_DATA);
    c_omp_adjust_map_clauses (clauses, false);
    int map_seen = 0;
    for (tree *pc = &clauses; *pc;)
*************** c_parser_omp_target_exit_data (location_
*** 21994,21999 ****
--- 24133,24140 ----
  	  {
  	  case GOMP_MAP_FROM:
  	  case GOMP_MAP_ALWAYS_FROM:
+ 	  case GOMP_MAP_PRESENT_FROM:
+ 	  case GOMP_MAP_ALWAYS_PRESENT_FROM:
  	  case GOMP_MAP_RELEASE:
  	  case GOMP_MAP_DELETE:
  	    map_seen = 3;
*************** c_parser_omp_target_exit_data (location_
*** 22006,22014 ****
--- 24147,24164 ----
  	    OMP_CLAUSE_SET_MAP_KIND (*pc, GOMP_MAP_ALWAYS_FROM);
  	    map_seen = 3;
  	    break;
+ 	  case GOMP_MAP_PRESENT_TOFROM:
+ 	    OMP_CLAUSE_SET_MAP_KIND (*pc, GOMP_MAP_PRESENT_FROM);
+ 	    map_seen = 3;
+ 	    break;
+ 	  case GOMP_MAP_ALWAYS_PRESENT_TOFROM:
+ 	    OMP_CLAUSE_SET_MAP_KIND (*pc, GOMP_MAP_ALWAYS_PRESENT_FROM);
+ 	    map_seen = 3;
+ 	    break;
  	  case GOMP_MAP_FIRSTPRIVATE_POINTER:
  	  case GOMP_MAP_ALWAYS_POINTER:
  	  case GOMP_MAP_ATTACH_DETACH:
+ 	  case GOMP_MAP_DETACH:
  	    break;
  	  default:
  	    map_seen |= 1;
*************** check_clauses:
*** 22251,22264 ****
--- 24401,24423 ----
  	  {
  	  case GOMP_MAP_TO:
  	  case GOMP_MAP_ALWAYS_TO:
+ 	  case GOMP_MAP_PRESENT_TO:
+ 	  case GOMP_MAP_ALWAYS_PRESENT_TO:
  	  case GOMP_MAP_FROM:
  	  case GOMP_MAP_ALWAYS_FROM:
+ 	  case GOMP_MAP_PRESENT_FROM:
+ 	  case GOMP_MAP_ALWAYS_PRESENT_FROM:
  	  case GOMP_MAP_TOFROM:
  	  case GOMP_MAP_ALWAYS_TOFROM:
+ 	  case GOMP_MAP_PRESENT_TOFROM:
+ 	  case GOMP_MAP_ALWAYS_PRESENT_TOFROM:
  	  case GOMP_MAP_ALLOC:
+ 	  case GOMP_MAP_PRESENT_ALLOC:
  	  case GOMP_MAP_FIRSTPRIVATE_POINTER:
  	  case GOMP_MAP_ALWAYS_POINTER:
+ 	  case GOMP_MAP_POINTER:
  	  case GOMP_MAP_ATTACH_DETACH:
+ 	  case GOMP_MAP_ATTACH:
  	    break;
  	  default:
  	    error_at (OMP_CLAUSE_LOCATION (*pc),
*************** c_parser_omp_declare_simd (c_parser *par
*** 22375,22380 ****
--- 24534,24546 ----
  	     IDENTIFIER_POINTER (kind));
        break;
      case pragma_compound:
+       bool have_std_attrs;
+       tree std_attrs;
+       have_std_attrs = c_parser_nth_token_starts_std_attributes (parser, 1);
+       if (have_std_attrs)
+ 	std_attrs = c_parser_std_attribute_specifier_sequence (parser);
+       else
+ 	std_attrs = NULL_TREE;
        if (c_parser_next_token_is (parser, CPP_KEYWORD)
  	  && c_parser_peek_token (parser)->keyword == RID_EXTENSION)
  	{
*************** c_parser_omp_declare_simd (c_parser *par
*** 22383,22392 ****
  	    c_parser_consume_token (parser);
  	  while (c_parser_next_token_is (parser, CPP_KEYWORD)
  		 && c_parser_peek_token (parser)->keyword == RID_EXTENSION);
! 	  if (c_parser_next_tokens_start_declaration (parser))
  	    {
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
! 					     true, NULL, &clauses);
  	      restore_extension_diagnostics (ext);
  	      break;
  	    }
--- 24549,24560 ----
  	    c_parser_consume_token (parser);
  	  while (c_parser_next_token_is (parser, CPP_KEYWORD)
  		 && c_parser_peek_token (parser)->keyword == RID_EXTENSION);
! 	  if (c_parser_next_tokens_start_declaration (parser)
! 	      || c_parser_nth_token_starts_std_attributes (parser, 1))
  	    {
  	      c_parser_declaration_or_fndef (parser, true, true, true, true,
! 					     true, NULL, &clauses,
! 					     have_std_attrs, std_attrs);
  	      restore_extension_diagnostics (ext);
  	      break;
  	    }
*************** c_parser_omp_declare_simd (c_parser *par
*** 22395,22401 ****
        else if (c_parser_next_tokens_start_declaration (parser))
  	{
  	  c_parser_declaration_or_fndef (parser, true, true, true, true, true,
! 					 NULL, &clauses);
  	  break;
  	}
        error ("%<#pragma omp declare %s%> must be followed by "
--- 24563,24570 ----
        else if (c_parser_next_tokens_start_declaration (parser))
  	{
  	  c_parser_declaration_or_fndef (parser, true, true, true, true, true,
! 					 NULL, &clauses, have_std_attrs,
! 					 std_attrs);
  	  break;
  	}
        error ("%<#pragma omp declare %s%> must be followed by "
*************** c_parser_omp_declare_simd (c_parser *par
*** 22407,22432 ****
      }
  }
  
- static const char *const omp_construct_selectors[] = {
-   "simd", "target", "teams", "parallel", "for", NULL };
- static const char *const omp_device_selectors[] = {
-   "kind", "isa", "arch", NULL };
- static const char *const omp_implementation_selectors[] = {
-   "vendor", "extension", "atomic_default_mem_order", "unified_address",
-   "unified_shared_memory", "dynamic_allocators", "reverse_offload", NULL };
- static const char *const omp_user_selectors[] = {
-   "condition", NULL };
- 
  /* OpenMP 5.0:
  
     trait-selector:
       trait-selector-name[([trait-score:]trait-property[,trait-property[,...]])]
  
     trait-score:
!      score(score-expression)  */
  
  static tree
! c_parser_omp_context_selector (c_parser *parser, tree set, tree parms)
  {
    tree ret = NULL_TREE;
    do
--- 24576,24595 ----
      }
  }
  
  /* OpenMP 5.0:
  
     trait-selector:
       trait-selector-name[([trait-score:]trait-property[,trait-property[,...]])]
  
     trait-score:
!      score(score-expression)
! 
!    Note that this function returns a list of trait selectors for the
!    trait-selector-set SET.  */
  
  static tree
! c_parser_omp_context_selector (c_parser *parser, enum omp_tss_code set,
! 			       tree parms)
  {
    tree ret = NULL_TREE;
    do
*************** c_parser_omp_context_selector (c_parser
*** 22440,22518 ****
  	  c_parser_error (parser, "expected trait selector name");
  	  return error_mark_node;
  	}
  
!       tree properties = NULL_TREE;
!       const char *const *selectors = NULL;
!       bool allow_score = true;
!       bool allow_user = false;
!       int property_limit = 0;
!       enum { CTX_PROPERTY_NONE, CTX_PROPERTY_USER, CTX_PROPERTY_NAME_LIST,
! 	     CTX_PROPERTY_ID, CTX_PROPERTY_EXPR,
! 	     CTX_PROPERTY_SIMD } property_kind = CTX_PROPERTY_NONE;
!       switch (IDENTIFIER_POINTER (set)[0])
! 	{
! 	case 'c': /* construct */
! 	  selectors = omp_construct_selectors;
! 	  allow_score = false;
! 	  property_limit = 1;
! 	  property_kind = CTX_PROPERTY_SIMD;
! 	  break;
! 	case 'd': /* device */
! 	  selectors = omp_device_selectors;
! 	  allow_score = false;
! 	  allow_user = true;
! 	  property_limit = 3;
! 	  property_kind = CTX_PROPERTY_NAME_LIST;
! 	  break;
! 	case 'i': /* implementation */
! 	  selectors = omp_implementation_selectors;
! 	  allow_user = true;
! 	  property_limit = 3;
! 	  property_kind = CTX_PROPERTY_NAME_LIST;
! 	  break;
! 	case 'u': /* user */
! 	  selectors = omp_user_selectors;
! 	  property_limit = 1;
! 	  property_kind = CTX_PROPERTY_EXPR;
! 	  break;
! 	default:
! 	  gcc_unreachable ();
! 	}
!       for (int i = 0; ; i++)
  	{
! 	  if (selectors[i] == NULL)
  	    {
! 	      if (allow_user)
! 		{
! 		  property_kind = CTX_PROPERTY_USER;
! 		  break;
! 		}
! 	      else
! 		{
! 		  error_at (c_parser_peek_token (parser)->location,
! 			    "selector %qs not allowed for context selector "
! 			    "set %qs", IDENTIFIER_POINTER (selector),
! 			    IDENTIFIER_POINTER (set));
! 		  c_parser_consume_token (parser);
! 		  return error_mark_node;
! 		}
  	    }
! 	  if (i == property_limit)
! 	    property_kind = CTX_PROPERTY_NONE;
! 	  if (strcmp (selectors[i], IDENTIFIER_POINTER (selector)) == 0)
  	    break;
  	}
-       if (property_kind == CTX_PROPERTY_NAME_LIST
- 	  && IDENTIFIER_POINTER (set)[0] == 'i'
- 	  && strcmp (IDENTIFIER_POINTER (selector),
- 		     "atomic_default_mem_order") == 0)
- 	property_kind = CTX_PROPERTY_ID;
  
        c_parser_consume_token (parser);
  
        if (c_parser_next_token_is (parser, CPP_OPEN_PAREN))
  	{
! 	  if (property_kind == CTX_PROPERTY_NONE)
  	    {
  	      error_at (c_parser_peek_token (parser)->location,
  			"selector %qs does not accept any properties",
--- 24603,24643 ----
  	  c_parser_error (parser, "expected trait selector name");
  	  return error_mark_node;
  	}
+       enum omp_ts_code sel
+ 	= omp_lookup_ts_code (set, IDENTIFIER_POINTER (selector));
  
!       if (sel == OMP_TRAIT_INVALID)
  	{
! 	  /* Per the spec, "Implementations can ignore specified selectors
! 	     that are not those described in this section"; however, we
! 	     must record such selectors because they cause match failures.  */
! 	  warning_at (c_parser_peek_token (parser)->location, OPT_Wopenmp,
! 		      "unknown selector %qs for context selector set %qs",
! 		      IDENTIFIER_POINTER (selector),  omp_tss_map[set]);
! 	  c_parser_consume_token (parser);
! 	  ret = make_trait_selector (sel, NULL_TREE, NULL_TREE, ret);
! 	  if (c_parser_next_token_is (parser, CPP_OPEN_PAREN))
! 	    c_parser_balanced_token_sequence (parser);
! 	  if (c_parser_next_token_is (parser, CPP_COMMA))
  	    {
! 	      c_parser_consume_token (parser);
! 	      continue;
  	    }
! 	  else
  	    break;
  	}
  
        c_parser_consume_token (parser);
  
+       tree properties = NULL_TREE;
+       tree scoreval = NULL_TREE;
+       enum omp_tp_type property_kind = omp_ts_map[sel].tp_type;
+       bool allow_score = omp_ts_map[sel].allow_score;
+       tree t;
+ 
        if (c_parser_next_token_is (parser, CPP_OPEN_PAREN))
  	{
! 	  if (property_kind == OMP_TRAIT_PROPERTY_NONE)
  	    {
  	      error_at (c_parser_peek_token (parser)->location,
  			"selector %qs does not accept any properties",
*************** c_parser_omp_context_selector (c_parser
*** 22524,22531 ****
  	  parens.require_open (parser);
  
  	  c_token *token = c_parser_peek_token (parser);
! 	  if (allow_score
! 	      && c_parser_next_token_is (parser, CPP_NAME)
  	      && strcmp (IDENTIFIER_POINTER (token->value), "score") == 0
  	      && c_parser_peek_2nd_token (parser)->type == CPP_OPEN_PAREN)
  	    {
--- 24649,24655 ----
  	  parens.require_open (parser);
  
  	  c_token *token = c_parser_peek_token (parser);
! 	  if (c_parser_next_token_is (parser, CPP_NAME)
  	      && strcmp (IDENTIFIER_POINTER (token->value), "score") == 0
  	      && c_parser_peek_2nd_token (parser)->type == CPP_OPEN_PAREN)
  	    {
*************** c_parser_omp_context_selector (c_parser
*** 22536,22597 ****
  	      tree score = c_parser_expr_no_commas (parser, NULL).value;
  	      parens2.skip_until_found_close (parser);
  	      c_parser_require (parser, CPP_COLON, "expected %<:%>");
! 	      if (score != error_mark_node)
  		{
  		  mark_exp_read (score);
  		  score = c_fully_fold (score, false, NULL);
  		  if (!INTEGRAL_TYPE_P (TREE_TYPE (score))
  		      || TREE_CODE (score) != INTEGER_CST)
! 		    error_at (token->location, "score argument must be "
! 			      "constant integer expression");
  		  else if (tree_int_cst_sgn (score) < 0)
! 		    error_at (token->location, "score argument must be "
! 			      "non-negative");
  		  else
! 		    properties = tree_cons (get_identifier (" score"),
! 					    score, properties);
  		}
  	      token = c_parser_peek_token (parser);
  	    }
  
  	  switch (property_kind)
  	    {
! 	      tree t;
! 	    case CTX_PROPERTY_USER:
! 	      do
! 		{
! 		  t = c_parser_expr_no_commas (parser, NULL).value;
! 		  if (TREE_CODE (t) == STRING_CST)
! 		    properties = tree_cons (NULL_TREE, t, properties);
! 		  else if (t != error_mark_node)
! 		    {
! 		      mark_exp_read (t);
! 		      t = c_fully_fold (t, false, NULL);
! 		      if (!INTEGRAL_TYPE_P (TREE_TYPE (t))
! 			  || !tree_fits_shwi_p (t))
! 			error_at (token->location, "property must be "
! 				  "constant integer expression or string "
! 				  "literal");
! 		      else
! 			properties = tree_cons (NULL_TREE, t, properties);
! 		    }
! 		  else
! 		    return error_mark_node;
! 
! 		  if (c_parser_next_token_is (parser, CPP_COMMA))
! 		    c_parser_consume_token (parser);
! 		  else
! 		    break;
! 		}
! 	      while (1);
! 	      break;
! 	    case CTX_PROPERTY_ID:
  	      if (c_parser_next_token_is (parser, CPP_KEYWORD)
  		  || c_parser_next_token_is (parser, CPP_NAME))
  		{
  		  tree prop = c_parser_peek_token (parser)->value;
  		  c_parser_consume_token (parser);
! 		  properties = tree_cons (prop, NULL_TREE, properties);
  		}
  	      else
  		{
--- 24660,24697 ----
  	      tree score = c_parser_expr_no_commas (parser, NULL).value;
  	      parens2.skip_until_found_close (parser);
  	      c_parser_require (parser, CPP_COLON, "expected %<:%>");
! 	      if (!allow_score)
! 		error_at (token->location,
! 			  "%<score%> cannot be specified in traits "
! 			  "in the %qs trait-selector-set",
! 			  omp_tss_map[set]);
! 	      else if (score != error_mark_node)
  		{
  		  mark_exp_read (score);
  		  score = c_fully_fold (score, false, NULL);
  		  if (!INTEGRAL_TYPE_P (TREE_TYPE (score))
  		      || TREE_CODE (score) != INTEGER_CST)
! 		    error_at (token->location, "%<score%> argument must "
! 			      "be constant integer expression");
  		  else if (tree_int_cst_sgn (score) < 0)
! 		    error_at (token->location, "%<score%> argument must "
! 			      "be non-negative");
  		  else
! 		    scoreval = score;
  		}
  	      token = c_parser_peek_token (parser);
  	    }
  
  	  switch (property_kind)
  	    {
! 	    case OMP_TRAIT_PROPERTY_ID:
  	      if (c_parser_next_token_is (parser, CPP_KEYWORD)
  		  || c_parser_next_token_is (parser, CPP_NAME))
  		{
  		  tree prop = c_parser_peek_token (parser)->value;
  		  c_parser_consume_token (parser);
! 		  properties = make_trait_property (prop, NULL_TREE,
! 						    properties);
  		}
  	      else
  		{
*************** c_parser_omp_context_selector (c_parser
*** 22599,22612 ****
  		  return error_mark_node;
  		}
  	      break;
! 	    case CTX_PROPERTY_NAME_LIST:
  	      do
  		{
! 		  tree prop = NULL_TREE, value = NULL_TREE;
  		  if (c_parser_next_token_is (parser, CPP_KEYWORD)
  		      || c_parser_next_token_is (parser, CPP_NAME))
  		    {
! 		      prop = c_parser_peek_token (parser)->value;
  		      c_parser_consume_token (parser);
  		    }
  		  else if (c_parser_next_token_is (parser, CPP_STRING))
--- 24699,24713 ----
  		  return error_mark_node;
  		}
  	      break;
! 	    case OMP_TRAIT_PROPERTY_NAME_LIST:
  	      do
  		{
! 		  tree prop = OMP_TP_NAMELIST_NODE;
! 		  tree value = NULL_TREE;
  		  if (c_parser_next_token_is (parser, CPP_KEYWORD)
  		      || c_parser_next_token_is (parser, CPP_NAME))
  		    {
! 		      value = c_parser_peek_token (parser)->value;
  		      c_parser_consume_token (parser);
  		    }
  		  else if (c_parser_next_token_is (parser, CPP_STRING))
*************** c_parser_omp_context_selector (c_parser
*** 22619,22625 ****
  		      return error_mark_node;
  		    }
  
! 		  properties = tree_cons (prop, value, properties);
  
  		  if (c_parser_next_token_is (parser, CPP_COMMA))
  		    c_parser_consume_token (parser);
--- 24720,24726 ----
  		      return error_mark_node;
  		    }
  
! 		  properties = make_trait_property (prop, value, properties);
  
  		  if (c_parser_next_token_is (parser, CPP_COMMA))
  		    c_parser_consume_token (parser);
*************** c_parser_omp_context_selector (c_parser
*** 22628,22666 ****
  		}
  	      while (1);
  	      break;
! 	    case CTX_PROPERTY_EXPR:
  	      t = c_parser_expr_no_commas (parser, NULL).value;
  	      if (t != error_mark_node)
  		{
  		  mark_exp_read (t);
  		  t = c_fully_fold (t, false, NULL);
  		  if (!INTEGRAL_TYPE_P (TREE_TYPE (t))
  		      || !tree_fits_shwi_p (t))
  		    error_at (token->location, "property must be "
  			      "constant integer expression");
  		  else
! 		    properties = tree_cons (NULL_TREE, t, properties);
  		}
  	      else
  		return error_mark_node;
  	      break;
! 	    case CTX_PROPERTY_SIMD:
! 	      if (parms == NULL_TREE)
  		{
! 		  error_at (token->location, "properties for %<simd%> "
! 			    "selector may not be specified in "
! 			    "%<metadirective%>");
  		  return error_mark_node;
  		}
! 	      tree c;
! 	      c = c_parser_omp_all_clauses (parser,
! 					    OMP_DECLARE_SIMD_CLAUSE_MASK,
! 					    "simd", true, 2);
! 	      c = c_omp_declare_simd_clauses_to_numbers (parms
! 							 == error_mark_node
! 							 ? NULL_TREE : parms,
! 							 c);
! 	      properties = c;
  	      break;
  	    default:
  	      gcc_unreachable ();
--- 24729,24785 ----
  		}
  	      while (1);
  	      break;
! 	    case OMP_TRAIT_PROPERTY_DEV_NUM_EXPR:
! 	    case OMP_TRAIT_PROPERTY_BOOL_EXPR:
  	      t = c_parser_expr_no_commas (parser, NULL).value;
  	      if (t != error_mark_node)
  		{
  		  mark_exp_read (t);
  		  t = c_fully_fold (t, false, NULL);
+ 		  /* FIXME: this is bogus, both device_num and
+ 		     condition selectors allow arbitrary expressions.  */
  		  if (!INTEGRAL_TYPE_P (TREE_TYPE (t))
  		      || !tree_fits_shwi_p (t))
  		    error_at (token->location, "property must be "
  			      "constant integer expression");
  		  else
! 		    properties = make_trait_property (NULL_TREE, t,
! 						      properties);
  		}
  	      else
  		return error_mark_node;
  	      break;
! 	    case OMP_TRAIT_PROPERTY_CLAUSE_LIST:
! 	      if (sel == OMP_TRAIT_CONSTRUCT_SIMD)
  		{
! 		  if (parms == NULL_TREE)
! 		    {
! 		      error_at (token->location, "properties for %<simd%> "
! 				"selector may not be specified in "
! 				"%<metadirective%>");
! 		      return error_mark_node;
! 		    }
! 		  tree c;
! 		  c = c_parser_omp_all_clauses (parser,
! 						OMP_DECLARE_SIMD_CLAUSE_MASK,
! 						"simd", true, 2);
! 		  c = c_omp_declare_simd_clauses_to_numbers (parms
! 							     == error_mark_node
! 							     ? NULL_TREE : parms,
! 							     c);
! 		  properties = c;
! 		}
! 	      else if (sel == OMP_TRAIT_IMPLEMENTATION_REQUIRES)
! 		{
! 		  /* FIXME: The "requires" selector was added in OpenMP 5.1.
! 		     Currently only the now-deprecated syntax
! 		     from OpenMP 5.0 is supported.  */
! 		  sorry_at (token->location,
! 			    "%<requires%> selector is not supported yet");
  		  return error_mark_node;
  		}
! 	      else
! 		gcc_unreachable ();
  	      break;
  	    default:
  	      gcc_unreachable ();
*************** c_parser_omp_context_selector (c_parser
*** 22669,22683 ****
  	  parens.skip_until_found_close (parser);
  	  properties = nreverse (properties);
  	}
!       else if (property_kind == CTX_PROPERTY_NAME_LIST
! 	       || property_kind == CTX_PROPERTY_ID
! 	       || property_kind == CTX_PROPERTY_EXPR)
  	{
  	  c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>");
  	  return error_mark_node;
  	}
  
!       ret = tree_cons (selector, properties, ret);
  
        if (c_parser_next_token_is (parser, CPP_COMMA))
  	c_parser_consume_token (parser);
--- 24788,24802 ----
  	  parens.skip_until_found_close (parser);
  	  properties = nreverse (properties);
  	}
!       else if (property_kind != OMP_TRAIT_PROPERTY_NONE
! 	       && property_kind != OMP_TRAIT_PROPERTY_CLAUSE_LIST
! 	       && property_kind != OMP_TRAIT_PROPERTY_EXTENSION)
  	{
  	  c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>");
  	  return error_mark_node;
  	}
  
!       ret = make_trait_selector (sel, scoreval, properties, ret);
  
        if (c_parser_next_token_is (parser, CPP_COMMA))
  	c_parser_consume_token (parser);
*************** c_parser_omp_context_selector_specificat
*** 22711,22745 ****
        const char *setp = "";
        if (c_parser_next_token_is (parser, CPP_NAME))
  	setp = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
!       switch (setp[0])
! 	{
! 	case 'c':
! 	  if (strcmp (setp, "construct") == 0)
! 	    setp = NULL;
! 	  break;
! 	case 'd':
! 	  if (strcmp (setp, "device") == 0)
! 	    setp = NULL;
! 	  break;
! 	case 'i':
! 	  if (strcmp (setp, "implementation") == 0)
! 	    setp = NULL;
! 	  break;
! 	case 'u':
! 	  if (strcmp (setp, "user") == 0)
! 	    setp = NULL;
! 	  break;
! 	default:
! 	  break;
! 	}
!       if (setp)
  	{
! 	  c_parser_error (parser, "expected %<construct%>, %<device%>, "
! 				  "%<implementation%> or %<user%>");
  	  return error_mark_node;
  	}
  
-       tree set = c_parser_peek_token (parser)->value;
        c_parser_consume_token (parser);
  
        if (!c_parser_require (parser, CPP_EQ, "expected %<=%>"))
--- 24830,24843 ----
        const char *setp = "";
        if (c_parser_next_token_is (parser, CPP_NAME))
  	setp = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
!       enum omp_tss_code set = omp_lookup_tss_code (setp);
! 
!       if (set == OMP_TRAIT_SET_INVALID)
  	{
! 	  c_parser_error (parser, "expected context selector set name");
  	  return error_mark_node;
  	}
  
        c_parser_consume_token (parser);
  
        if (!c_parser_require (parser, CPP_EQ, "expected %<=%>"))
*************** c_parser_omp_context_selector_specificat
*** 22753,22759 ****
        if (selectors == error_mark_node)
  	ret = error_mark_node;
        else if (ret != error_mark_node)
! 	ret = tree_cons (set, selectors, ret);
  
        braces.skip_until_found_close (parser);
  
--- 24851,24857 ----
        if (selectors == error_mark_node)
  	ret = error_mark_node;
        else if (ret != error_mark_node)
! 	ret = make_trait_set_selector (set, selectors, ret);
  
        braces.skip_until_found_close (parser);
  
*************** c_finish_omp_declare_variant (c_parser *
*** 22836,22842 ****
  	  error_at (token->location, "variant %qD is not a function", variant);
  	  variant = error_mark_node;
  	}
!       else if (omp_get_context_selector (ctx, "construct", "simd") == NULL_TREE
  	       && !comptypes (TREE_TYPE (fndecl), TREE_TYPE (variant)))
  	{
  	  error_at (token->location, "variant %qD and base %qD have "
--- 24934,24941 ----
  	  error_at (token->location, "variant %qD is not a function", variant);
  	  variant = error_mark_node;
  	}
!       else if (!omp_get_context_selector (ctx, OMP_TRAIT_SET_CONSTRUCT,
! 					  OMP_TRAIT_CONSTRUCT_SIMD)
  	       && !comptypes (TREE_TYPE (fndecl), TREE_TYPE (variant)))
  	{
  	  error_at (token->location, "variant %qD and base %qD have "
*************** c_finish_omp_declare_variant (c_parser *
*** 22857,22863 ****
        if (variant != error_mark_node)
  	{
  	  C_DECL_USED (variant) = 1;
! 	  tree construct = omp_get_context_selector (ctx, "construct", NULL);
  	  omp_mark_declare_variant (match_loc, variant, construct);
  	  if (omp_context_selector_matches (ctx))
  	    {
--- 24956,24963 ----
        if (variant != error_mark_node)
  	{
  	  C_DECL_USED (variant) = 1;
! 	  tree construct
! 	    = omp_get_context_selector_list (ctx, OMP_TRAIT_SET_CONSTRUCT);
  	  omp_mark_declare_variant (match_loc, variant, construct);
  	  if (omp_context_selector_matches (ctx))
  	    {
*************** c_finish_omp_declare_simd (c_parser *par
*** 22923,22930 ****
    while (parser->tokens_avail > 3)
      {
        c_token *token = c_parser_peek_token (parser);
!       gcc_assert (token->type == CPP_NAME
! 		  && strcmp (IDENTIFIER_POINTER (token->value), kind) == 0);
        c_parser_consume_token (parser);
        parser->in_pragma = true;
  
--- 25023,25030 ----
    while (parser->tokens_avail > 3)
      {
        c_token *token = c_parser_peek_token (parser);
!       gcc_assert (token->type == CPP_NAME);
!       kind = IDENTIFIER_POINTER (token->value);
        c_parser_consume_token (parser);
        parser->in_pragma = true;
  
*************** c_finish_omp_declare_simd (c_parser *par
*** 22953,22958 ****
--- 25053,25136 ----
      clauses[0].type = CPP_PRAGMA;
  }
  
+ /* D should be C_TOKEN_VEC from omp::decl attribute.  If it contains
+    a threadprivate, groupprivate, allocate or declare target directive,
+    return true and parse it for DECL.  */
+ 
+ bool
+ c_maybe_parse_omp_decl (tree decl, tree d)
+ {
+   gcc_assert (TREE_CODE (d) == C_TOKEN_VEC);
+   vec<c_token, va_gc> *toks = C_TOKEN_VEC_TOKENS (d);
+   c_token *first = toks->address ();
+   c_token *last = first + toks->length ();
+   const char *directive[3] = {};
+   for (int j = 0; j < 3; j++)
+     {
+       tree id = NULL_TREE;
+       if (first + j == last)
+ 	break;
+       if (first[j].type == CPP_NAME)
+ 	id = first[j].value;
+       else if (first[j].type == CPP_KEYWORD)
+ 	id = ridpointers[(int) first[j].keyword];
+       else
+ 	break;
+       directive[j] = IDENTIFIER_POINTER (id);
+     }
+   const c_omp_directive *dir = NULL;
+   if (directive[0])
+     dir = c_omp_categorize_directive (directive[0], directive[1],
+ 				      directive[2]);
+   if (dir == NULL)
+     {
+       error_at (first->location,
+ 		"unknown OpenMP directive name in "
+ 		"%qs attribute argument", "omp::decl");
+       return false;
+     }
+   if (dir->id != PRAGMA_OMP_THREADPRIVATE
+       /* && dir->id != PRAGMA_OMP_GROUPPRIVATE */
+       && dir->id != PRAGMA_OMP_ALLOCATE
+       && (dir->id != PRAGMA_OMP_DECLARE
+ 	  || strcmp (directive[1], "target") != 0))
+     return false;
+ 
+   if (!flag_openmp && !dir->simd)
+     return true;
+ 
+   c_parser *parser = the_parser;
+   unsigned int tokens_avail = parser->tokens_avail;
+   gcc_assert (parser->tokens == &parser->tokens_buf[0]);
+   toks = NULL;
+   vec_safe_reserve (toks, last - first + 2, true);
+   c_token tok = {};
+   tok.type = CPP_PRAGMA;
+   tok.keyword = RID_MAX;
+   tok.pragma_kind = pragma_kind (dir->id);
+   tok.location = first->location;
+   toks->quick_push (tok);
+   while (++first < last)
+     toks->quick_push (*first);
+   tok = {};
+   tok.type = CPP_PRAGMA_EOL;
+   tok.keyword = RID_MAX;
+   tok.location = last[-1].location;
+   toks->quick_push (tok);
+   tok = {};
+   tok.type = CPP_EOF;
+   tok.keyword = RID_MAX;
+   tok.location = last[-1].location;
+   tok.flags = tokens_avail;
+   toks->quick_push (tok);
+   parser->in_omp_decl_attribute = decl;
+   parser->tokens = toks->address ();
+   parser->tokens_avail = toks->length ();
+   parser->in_omp_attribute_pragma = toks;
+   c_parser_pragma (parser, pragma_external, NULL);
+   parser->in_omp_decl_attribute = NULL_TREE;
+   return true;
+ }
  
  /* OpenMP 4.0:
     # pragma omp declare target new-line
*************** c_finish_omp_declare_simd (c_parser *par
*** 22968,22987 ****
  	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_TO)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_ENTER)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_LINK)		\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE_TYPE))
  
  static void
  c_parser_omp_declare_target (c_parser *parser)
  {
    tree clauses = NULL_TREE;
    int device_type = 0;
!   bool only_device_type = true;
    if (c_parser_next_token_is (parser, CPP_NAME)
        || (c_parser_next_token_is (parser, CPP_COMMA)
  	  && c_parser_peek_2nd_token (parser)->type == CPP_NAME))
      clauses = c_parser_omp_all_clauses (parser, OMP_DECLARE_TARGET_CLAUSE_MASK,
  					"#pragma omp declare target");
!   else if (c_parser_next_token_is (parser, CPP_OPEN_PAREN))
      {
        clauses = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ENTER,
  					      clauses);
--- 25146,25168 ----
  	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_TO)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_ENTER)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_LINK)		\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE_TYPE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_INDIRECT))
  
  static void
  c_parser_omp_declare_target (c_parser *parser)
  {
    tree clauses = NULL_TREE;
    int device_type = 0;
!   bool indirect = false;
!   bool only_device_type_or_indirect = true;
    if (c_parser_next_token_is (parser, CPP_NAME)
        || (c_parser_next_token_is (parser, CPP_COMMA)
  	  && c_parser_peek_2nd_token (parser)->type == CPP_NAME))
      clauses = c_parser_omp_all_clauses (parser, OMP_DECLARE_TARGET_CLAUSE_MASK,
  					"#pragma omp declare target");
!   else if (parser->in_omp_decl_attribute
! 	   || c_parser_next_token_is (parser, CPP_OPEN_PAREN))
      {
        clauses = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ENTER,
  					      clauses);
*************** c_parser_omp_declare_target (c_parser *p
*** 22990,23012 ****
      }
    else
      {
        c_parser_skip_to_pragma_eol (parser);
!       c_omp_declare_target_attr attr = { -1 };
        vec_safe_push (current_omp_declare_target_attribute, attr);
        return;
      }
    for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
-     if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEVICE_TYPE)
-       device_type |= OMP_CLAUSE_DEVICE_TYPE_KIND (c);
-   for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
      {
        if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEVICE_TYPE)
  	continue;
        tree t = OMP_CLAUSE_DECL (c), id;
        tree at1 = lookup_attribute ("omp declare target", DECL_ATTRIBUTES (t));
        tree at2 = lookup_attribute ("omp declare target link",
  				   DECL_ATTRIBUTES (t));
!       only_device_type = false;
        if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINK)
  	{
  	  id = get_identifier ("omp declare target link");
--- 25171,25199 ----
      }
    else
      {
+       bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
        c_parser_skip_to_pragma_eol (parser);
!       c_omp_declare_target_attr attr = { attr_syntax, -1, 0 };
        vec_safe_push (current_omp_declare_target_attribute, attr);
        return;
      }
    for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
      {
        if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEVICE_TYPE)
+ 	device_type |= OMP_CLAUSE_DEVICE_TYPE_KIND (c);
+       if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_INDIRECT)
+ 	indirect |= !integer_zerop (OMP_CLAUSE_INDIRECT_EXPR (c));
+     }
+   for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
+     {
+       if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEVICE_TYPE
+ 	  || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_INDIRECT)
  	continue;
        tree t = OMP_CLAUSE_DECL (c), id;
        tree at1 = lookup_attribute ("omp declare target", DECL_ATTRIBUTES (t));
        tree at2 = lookup_attribute ("omp declare target link",
  				   DECL_ATTRIBUTES (t));
!       only_device_type_or_indirect = false;
        if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINK)
  	{
  	  id = get_identifier ("omp declare target link");
*************** c_parser_omp_declare_target (c_parser *p
*** 23068,23077 ****
  		= tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t));
  	    }
  	}
      }
!   if (device_type && only_device_type)
      error_at (OMP_CLAUSE_LOCATION (clauses),
! 	      "directive with only %<device_type%> clause");
  }
  
  /* OpenMP 5.1
--- 25255,25279 ----
  		= tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t));
  	    }
  	}
+       if (indirect)
+ 	{
+ 	  tree at4 = lookup_attribute ("omp declare target indirect",
+ 				       DECL_ATTRIBUTES (t));
+ 	  if (at4 == NULL_TREE)
+ 	    {
+ 	      id = get_identifier ("omp declare target indirect");
+ 	      DECL_ATTRIBUTES (t)
+ 		= tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t));
+ 	    }
+ 	}
      }
!   if ((device_type || indirect) && only_device_type_or_indirect)
      error_at (OMP_CLAUSE_LOCATION (clauses),
! 	      "directive with only %<device_type%> or %<indirect%> clauses");
!   if (indirect && device_type && device_type != OMP_CLAUSE_DEVICE_TYPE_ANY)
!     error_at (OMP_CLAUSE_LOCATION (clauses),
! 	      "%<device_type%> clause must specify 'any' when used with "
! 	      "an %<indirect%> clause");
  }
  
  /* OpenMP 5.1
*************** c_parser_omp_declare_target (c_parser *p
*** 23080,23086 ****
     #pragma omp begin declare target clauses[optseq] new-line  */
  
  #define OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK			\
! 	(OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE_TYPE)
  
  static void
  c_parser_omp_begin (c_parser *parser)
--- 25282,25289 ----
     #pragma omp begin declare target clauses[optseq] new-line  */
  
  #define OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK			\
! 	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE_TYPE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_INDIRECT))
  
  static void
  c_parser_omp_begin (c_parser *parser)
*************** c_parser_omp_begin (c_parser *parser)
*** 23098,23112 ****
        if (strcmp (p, "target") == 0)
  	{
  	  c_parser_consume_token (parser);
  	  tree clauses
  	    = c_parser_omp_all_clauses (parser,
  					OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK,
  					"#pragma omp begin declare target");
  	  int device_type = 0;
  	  for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
! 	    if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEVICE_TYPE)
! 	      device_type |= OMP_CLAUSE_DEVICE_TYPE_KIND (c);
! 	  c_omp_declare_target_attr attr = { device_type };
  	  vec_safe_push (current_omp_declare_target_attribute, attr);
  	}
        else
--- 25301,25322 ----
        if (strcmp (p, "target") == 0)
  	{
  	  c_parser_consume_token (parser);
+ 	  bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
  	  tree clauses
  	    = c_parser_omp_all_clauses (parser,
  					OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK,
  					"#pragma omp begin declare target");
  	  int device_type = 0;
+ 	  int indirect = 0;
  	  for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
! 	    {
! 	      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEVICE_TYPE)
! 		device_type |= OMP_CLAUSE_DEVICE_TYPE_KIND (c);
! 	      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_INDIRECT)
! 		indirect |= !integer_zerop (OMP_CLAUSE_INDIRECT_EXPR (c));
! 	    }
! 	  c_omp_declare_target_attr attr = { attr_syntax, device_type,
! 					     indirect };
  	  vec_safe_push (current_omp_declare_target_attribute, attr);
  	}
        else
*************** c_parser_omp_begin (c_parser *parser)
*** 23118,23125 ****
    else if (strcmp (p, "assumes") == 0)
      {
        c_parser_consume_token (parser);
        c_parser_omp_assumption_clauses (parser, false);
!       current_omp_begin_assumes++;
      }
    else
      {
--- 25328,25337 ----
    else if (strcmp (p, "assumes") == 0)
      {
        c_parser_consume_token (parser);
+       bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
        c_parser_omp_assumption_clauses (parser, false);
!       struct c_omp_begin_assumes_data a = { attr_syntax };
!       vec_safe_push (current_omp_begin_assumes, a);
      }
    else
      {
*************** c_parser_omp_end (c_parser *parser)
*** 23155,23177 ****
  	  c_parser_skip_to_pragma_eol (parser);
  	  return;
  	}
        c_parser_skip_to_pragma_eol (parser);
        if (!vec_safe_length (current_omp_declare_target_attribute))
  	error_at (loc, "%<#pragma omp end declare target%> without "
  		       "corresponding %<#pragma omp declare target%> or "
  		       "%<#pragma omp begin declare target%>");
        else
! 	current_omp_declare_target_attribute->pop ();
      }
    else if (strcmp (p, "assumes") == 0)
      {
        c_parser_consume_token (parser);
        c_parser_skip_to_pragma_eol (parser);
!       if (!current_omp_begin_assumes)
  	error_at (loc, "%qs without corresponding %qs",
  		  "#pragma omp end assumes", "#pragma omp begin assumes");
        else
! 	current_omp_begin_assumes--;
      }
    else
      {
--- 25367,25427 ----
  	  c_parser_skip_to_pragma_eol (parser);
  	  return;
  	}
+       bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
        c_parser_skip_to_pragma_eol (parser);
        if (!vec_safe_length (current_omp_declare_target_attribute))
  	error_at (loc, "%<#pragma omp end declare target%> without "
  		       "corresponding %<#pragma omp declare target%> or "
  		       "%<#pragma omp begin declare target%>");
        else
! 	{
! 	  c_omp_declare_target_attr
! 	    a = current_omp_declare_target_attribute->pop ();
! 	  if (a.attr_syntax != attr_syntax)
! 	    {
! 	      if (a.attr_syntax)
! 		error_at (loc,
! 			  "%qs in attribute syntax terminated "
! 			  "with %qs in pragma syntax",
! 			  a.device_type >= 0 ? "begin declare target"
! 					     : "declare target",
! 			  "end declare target");
! 	      else
! 		error_at (loc,
! 			  "%qs in pragma syntax terminated "
! 			  "with %qs in attribute syntax",
! 			  a.device_type >= 0 ? "begin declare target"
! 					     : "declare target",
! 			  "end declare target");
! 	    }
! 	}
      }
    else if (strcmp (p, "assumes") == 0)
      {
        c_parser_consume_token (parser);
+       bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
        c_parser_skip_to_pragma_eol (parser);
!       if (!vec_safe_length (current_omp_begin_assumes))
  	error_at (loc, "%qs without corresponding %qs",
  		  "#pragma omp end assumes", "#pragma omp begin assumes");
        else
! 	{
! 	  c_omp_begin_assumes_data
! 	    a = current_omp_begin_assumes->pop ();
! 	  if (a.attr_syntax != attr_syntax)
! 	    {
! 	      if (a.attr_syntax)
! 		error_at (loc,
! 			  "%qs in attribute syntax terminated "
! 			  "with %qs in pragma syntax",
! 			  "begin assumes", "end assumes");
! 	      else
! 		error_at (loc,
! 			  "%qs in pragma syntax terminated "
! 			  "with %qs in attribute syntax",
! 			  "begin assumes", "end assumes");
! 	    }
! 	}
      }
    else
      {
*************** static void
*** 23192,23197 ****
--- 25442,25448 ----
  c_parser_omp_declare_reduction (c_parser *parser, enum pragma_context context)
  {
    unsigned int tokens_avail = 0, i;
+   c_token *saved_tokens = NULL;
    vec<tree> types = vNULL;
    vec<c_token> clauses = vNULL;
    enum tree_code reduc_code = ERROR_MARK;
*************** c_parser_omp_declare_reduction (c_parser
*** 23275,23281 ****
  	  if (type == error_mark_node)
  	    ;
  	  else if ((INTEGRAL_TYPE_P (type)
! 		    || TREE_CODE (type) == REAL_TYPE
  		    || TREE_CODE (type) == COMPLEX_TYPE)
  		   && orig_reduc_id == NULL_TREE)
  	    error_at (loc, "predeclared arithmetic type in "
--- 25526,25532 ----
  	  if (type == error_mark_node)
  	    ;
  	  else if ((INTEGRAL_TYPE_P (type)
! 		    || SCALAR_FLOAT_TYPE_P (type)
  		    || TREE_CODE (type) == COMPLEX_TYPE)
  		   && orig_reduc_id == NULL_TREE)
  	    error_at (loc, "predeclared arithmetic type in "
*************** c_parser_omp_declare_reduction (c_parser
*** 23362,23369 ****
    int errs = errorcount;
    FOR_EACH_VEC_ELT (types, i, type)
      {
        tokens_avail = parser->tokens_avail;
-       gcc_assert (parser->tokens == &parser->tokens_buf[0]);
        if (!clauses.is_empty ())
  	{
  	  parser->tokens = clauses.address ();
--- 25613,25620 ----
    int errs = errorcount;
    FOR_EACH_VEC_ELT (types, i, type)
      {
+       saved_tokens = parser->tokens;
        tokens_avail = parser->tokens_avail;
        if (!clauses.is_empty ())
  	{
  	  parser->tokens = clauses.address ();
*************** c_parser_omp_declare_reduction (c_parser
*** 23524,23530 ****
  
        if (!clauses.is_empty ())
  	{
! 	  parser->tokens = &parser->tokens_buf[0];
  	  parser->tokens_avail = tokens_avail;
  	}
        if (bad)
--- 25775,25781 ----
  
        if (!clauses.is_empty ())
  	{
! 	  parser->tokens = saved_tokens;
  	  parser->tokens_avail = tokens_avail;
  	}
        if (bad)
*************** c_parser_omp_requires (c_parser *parser)
*** 23643,23657 ****
  		      else if (!strcmp (p, "relaxed"))
  			this_req
  			  = (enum omp_requires) OMP_MEMORY_ORDER_RELAXED;
  		      else if (!strcmp (p, "acq_rel"))
  			this_req
  			  = (enum omp_requires) OMP_MEMORY_ORDER_ACQ_REL;
  		    }
  		  if (this_req == 0)
  		    {
  		      error_at (c_parser_peek_token (parser)->location,
! 				"expected %<seq_cst%>, %<relaxed%> or "
! 				"%<acq_rel%>");
  		      switch (c_parser_peek_token (parser)->type)
  			{
  			case CPP_EOF:
--- 25894,25914 ----
  		      else if (!strcmp (p, "relaxed"))
  			this_req
  			  = (enum omp_requires) OMP_MEMORY_ORDER_RELAXED;
+ 		      else if (!strcmp (p, "release"))
+ 			this_req
+ 			  = (enum omp_requires) OMP_MEMORY_ORDER_RELEASE;
  		      else if (!strcmp (p, "acq_rel"))
  			this_req
  			  = (enum omp_requires) OMP_MEMORY_ORDER_ACQ_REL;
+ 		      else if (!strcmp (p, "acquire"))
+ 			this_req
+ 			  = (enum omp_requires) OMP_MEMORY_ORDER_ACQUIRE;
  		    }
  		  if (this_req == 0)
  		    {
  		      error_at (c_parser_peek_token (parser)->location,
! 				"expected %<acq_rel%>, %<acquire%>, "
! 				"%<relaxed%>, %<release%> or %<seq_cst%>");
  		      switch (c_parser_peek_token (parser)->type)
  			{
  			case CPP_EOF:
*************** c_parser_omp_assumption_clauses (c_parse
*** 24197,24203 ****
  	}
        else if (startswith (p, "ext_"))
  	{
! 	  warning_at (cloc, 0, "unknown assumption clause %qs", p);
  	  c_parser_consume_token (parser);
  	  if (c_parser_next_token_is (parser, CPP_OPEN_PAREN))
  	    {
--- 26454,26460 ----
  	}
        else if (startswith (p, "ext_"))
  	{
! 	  warning_at (cloc, OPT_Wopenmp, "unknown assumption clause %qs", p);
  	  c_parser_consume_token (parser);
  	  if (c_parser_next_token_is (parser, CPP_OPEN_PAREN))
  	    {
*************** c_parser_omp_construct (c_parser *parser
*** 24281,24289 ****
        strcpy (p_name, "#pragma wait");
        stmt = c_parser_oacc_wait (loc, parser, p_name);
        break;
-     case PRAGMA_OMP_ALLOCATE:
-       c_parser_omp_allocate (loc, parser);
-       return;
      case PRAGMA_OMP_ATOMIC:
        c_parser_omp_atomic (loc, parser, false);
        return;
--- 26538,26543 ----
*************** c_parse_file (void)
*** 24636,24641 ****
--- 26890,26904 ----
    the_parser = NULL;
  }
  
+ void
+ c_init_preprocess (void)
+ {
+   /* Create a parser for use by pragma_lex during preprocessing.  */
+   the_parser = ggc_alloc<c_parser> ();
+   memset (the_parser, 0, sizeof (c_parser));
+   the_parser->tokens = &the_parser->tokens_buf[0];
+ }
+ 
  /* Parse the body of a function declaration marked with "__RTL".
  
     The RTL parser works on the level of characters read from a
diff -Nrcpad gcc-13.2.0/gcc/c/c-parser.h gcc-14.1.0/gcc/c/c-parser.h
*** gcc-13.2.0/gcc/c/c-parser.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-parser.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declarations for the parser for C and Objective-C.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
--- 1,5 ----
  /* Declarations for the parser for C and Objective-C.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
*************** struct GTY (()) c_token {
*** 80,85 ****
--- 80,96 ----
    }
  };
  
+ /* This should have the same layout as c_tree_token_vec
+    in c-decl.cc, but for GTY reasons with ObjC can't be
+    GTY itself.  */
+ struct c_tree_token_vec_struct {
+   struct tree_base base;
+   vec<c_token, va_gc> *tokens;
+ };
+ 
+ #define C_TOKEN_VEC_TOKENS(NODE) \
+   (((struct c_tree_token_vec_struct *) TREE_CHECK (NODE, C_TOKEN_VEC))->tokens)
+ 
  /* The parser.  */
  struct c_parser;
  
*************** extern void c_parser_declspecs (c_parser
*** 193,197 ****
--- 204,209 ----
  				bool, bool, bool, bool, bool,
  				enum c_lookahead_kind);
  extern struct c_type_name *c_parser_type_name (c_parser *, bool = false);
+ extern bool c_maybe_parse_omp_decl (tree, tree);
  
  #endif
diff -Nrcpad gcc-13.2.0/gcc/c/c-tree.def gcc-14.1.0/gcc/c/c-tree.def
*** gcc-13.2.0/gcc/c/c-tree.def	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/c/c-tree.def	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,31 ----
+ /* This file contains the definitions and documentation for the
+    additional tree codes used in the GNU C compiler (see tree.def
+    for the standard codes).
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ /* Tree nodes used in the C frontend only, not shared with C++ frontend.  */
+ 
+ /* Used to represent a vector of tokens for deferred parsing.  */
+ DEFTREECODE (C_TOKEN_VEC, "c_token_vec", tcc_exceptional, 0)
+ 
+ /*
+ Local variables:
+ mode:c
+ End:
+ */
diff -Nrcpad gcc-13.2.0/gcc/c/c-tree.h gcc-14.1.0/gcc/c/c-tree.h
*** gcc-13.2.0/gcc/c/c-tree.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-tree.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for C parsing and type checking.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for C parsing and type checking.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 109,115 ****
  #define C_DECL_COMPOUND_LITERAL_P(DECL) \
    DECL_LANG_FLAG_5 (VAR_DECL_CHECK (DECL))
  
! /* Set on decls used as placeholders for a C2x underspecified object
     definition.  */
  #define C_DECL_UNDERSPECIFIED(DECL) DECL_LANG_FLAG_7 (DECL)
  
--- 109,115 ----
  #define C_DECL_COMPOUND_LITERAL_P(DECL) \
    DECL_LANG_FLAG_5 (VAR_DECL_CHECK (DECL))
  
! /* Set on decls used as placeholders for a C23 underspecified object
     definition.  */
  #define C_DECL_UNDERSPECIFIED(DECL) DECL_LANG_FLAG_7 (DECL)
  
*************** enum c_storage_class {
*** 270,276 ****
  
  /* A type specifier keyword "void", "_Bool", "char", "int", "float",
     "double", "_Decimal32", "_Decimal64", "_Decimal128", "_Fract", "_Accum",
!    or none of these.  */
  enum c_typespec_keyword {
    cts_none,
    cts_void,
--- 270,276 ----
  
  /* A type specifier keyword "void", "_Bool", "char", "int", "float",
     "double", "_Decimal32", "_Decimal64", "_Decimal128", "_Fract", "_Accum",
!    "_BitInt", or none of these.  */
  enum c_typespec_keyword {
    cts_none,
    cts_void,
*************** enum c_typespec_keyword {
*** 286,291 ****
--- 286,292 ----
    cts_floatn_nx,
    cts_fract,
    cts_accum,
+   cts_bitint,
    cts_auto_type
  };
  
*************** struct c_declspecs {
*** 366,376 ****
       specifier, in bytes, or -1 if no such specifiers with nonzero
       alignment.  */
    int align_log;
!   /* For the __intN declspec, this stores the index into the int_n_* arrays.  */
!   int int_n_idx;
!   /* For the _FloatN and _FloatNx declspec, this stores the index into
!      the floatn_nx_types array.  */
!   int floatn_nx_idx;
    /* The storage class specifier, or csc_none if none.  */
    enum c_storage_class storage_class;
    /* Any type specifier keyword used such as "int", not reflecting
--- 367,382 ----
       specifier, in bytes, or -1 if no such specifiers with nonzero
       alignment.  */
    int align_log;
!   union {
!     /* For the __intN declspec, this stores the index into the int_n_*
!        arrays.  */
!     int int_n_idx;
!     /* For the _FloatN and _FloatNx declspec, this stores the index into
!        the floatn_nx_types array.  */
!     int floatn_nx_idx;
!     /* For _BitInt(N) this stores the N.  */
!     int bitint_prec;
!   } u;
    /* The storage class specifier, or csc_none if none.  */
    enum c_storage_class storage_class;
    /* Any type specifier keyword used such as "int", not reflecting
*************** struct c_declspecs {
*** 445,457 ****
       specified other than in a definition of that enum (if so, this is
       invalid unless it is an empty declaration "enum identifier
       enum-type-specifier;", but such an empty declaration is valid in
!      C2x when "enum identifier;" would not be).  */
    BOOL_BITFIELD enum_type_specifier_ref_p : 1;
!   /* Whether "auto" was specified in C2X (or later) mode and means the
       type is to be deduced from an initializer, or would mean that if
       no type specifier appears later in these declaration
       specifiers.  */
!   BOOL_BITFIELD c2x_auto_p : 1;
    /* Whether "constexpr" was specified.  */
    BOOL_BITFIELD constexpr_p : 1;
    /* The address space that the declaration belongs to.  */
--- 451,463 ----
       specified other than in a definition of that enum (if so, this is
       invalid unless it is an empty declaration "enum identifier
       enum-type-specifier;", but such an empty declaration is valid in
!      C23 when "enum identifier;" would not be).  */
    BOOL_BITFIELD enum_type_specifier_ref_p : 1;
!   /* Whether "auto" was specified in C23 (or later) mode and means the
       type is to be deduced from an initializer, or would mean that if
       no type specifier appears later in these declaration
       specifiers.  */
!   BOOL_BITFIELD c23_auto_p : 1;
    /* Whether "constexpr" was specified.  */
    BOOL_BITFIELD constexpr_p : 1;
    /* The address space that the declaration belongs to.  */
*************** enum c_inline_static_type {
*** 590,595 ****
--- 596,602 ----
  
  
  /* in c-parser.cc */
+ struct c_tree_token_vec;
  extern void c_parse_init (void);
  extern bool c_keyword_starts_typename (enum rid keyword);
  
*************** extern unsigned int start_underspecified
*** 620,625 ****
--- 627,633 ----
  extern void finish_underspecified_init (tree, unsigned int);
  extern void push_scope (void);
  extern tree pop_scope (void);
+ extern void c_mark_decl_jump_unsafe_in_current_scope ();
  extern void c_bindings_start_stmt_expr (struct c_spot_bindings *);
  extern void c_bindings_end_stmt_expr (struct c_spot_bindings *);
  
*************** extern void finish_decl (tree, location_
*** 648,654 ****
  extern tree finish_enum (tree, tree, tree);
  extern void finish_function (location_t = input_location);
  extern tree finish_struct (location_t, tree, tree, tree,
! 			   class c_struct_parse_info *);
  extern tree c_simulate_enum_decl (location_t, const char *,
  				  vec<string_int_pair> *);
  extern tree c_simulate_record_decl (location_t, const char *,
--- 656,663 ----
  extern tree finish_enum (tree, tree, tree);
  extern void finish_function (location_t = input_location);
  extern tree finish_struct (location_t, tree, tree, tree,
! 			   class c_struct_parse_info *,
! 			   tree *expr = NULL);
  extern tree c_simulate_enum_decl (location_t, const char *,
  				  vec<string_int_pair> *);
  extern tree c_simulate_record_decl (location_t, const char *,
*************** extern tree c_simulate_record_decl (loca
*** 656,662 ****
  extern struct c_arg_info *build_arg_info (void);
  extern struct c_arg_info *get_parm_info (bool, tree);
  extern tree grokfield (location_t, struct c_declarator *,
! 		       struct c_declspecs *, tree, tree *);
  extern tree groktypename (struct c_type_name *, tree *, bool *);
  extern tree grokparm (const struct c_parm *, tree *);
  extern tree implicitly_declare (location_t, tree);
--- 665,671 ----
  extern struct c_arg_info *build_arg_info (void);
  extern struct c_arg_info *get_parm_info (bool, tree);
  extern tree grokfield (location_t, struct c_declarator *,
! 		       struct c_declspecs *, tree, tree *, tree *);
  extern tree groktypename (struct c_type_name *, tree *, bool *);
  extern tree grokparm (const struct c_parm *, tree *);
  extern tree implicitly_declare (location_t, tree);
*************** extern void c_warn_unused_attributes (tr
*** 674,680 ****
  extern tree c_warn_type_attributes (tree);
  extern void shadow_tag (const struct c_declspecs *);
  extern void shadow_tag_warned (const struct c_declspecs *, int);
! extern tree start_enum (location_t, struct c_enum_contents *, tree, tree);
  extern bool start_function (struct c_declspecs *, struct c_declarator *, tree);
  extern tree start_decl (struct c_declarator *, struct c_declspecs *, bool,
  			tree, bool = true, location_t * = NULL);
--- 683,690 ----
  extern tree c_warn_type_attributes (tree);
  extern void shadow_tag (const struct c_declspecs *);
  extern void shadow_tag_warned (const struct c_declspecs *, int);
! extern tree start_enum (location_t, struct c_enum_contents *, tree, tree,
! 			bool potential_nesting_p);
  extern bool start_function (struct c_declspecs *, struct c_declarator *, tree);
  extern tree start_decl (struct c_declarator *, struct c_declspecs *, bool,
  			tree, bool = true, location_t * = NULL);
*************** extern struct c_declspecs *declspecs_add
*** 712,717 ****
--- 722,728 ----
  extern struct c_declspecs *declspecs_add_alignas (location_t,
  						  struct c_declspecs *, tree);
  extern struct c_declspecs *finish_declspecs (struct c_declspecs *);
+ extern size_t c_tree_size (enum tree_code);
  
  /* in c-objc-common.cc */
  extern bool c_objc_common_init (void);
*************** extern bool c_warn_unused_global_decl (c
*** 720,731 ****
--- 731,744 ----
  extern void c_initialize_diagnostics (diagnostic_context *);
  extern bool c_var_mod_p (tree x, tree fn);
  extern alias_set_type c_get_alias_set (tree);
+ extern int c_type_dwarf_attribute (const_tree, int);
  
  /* in c-typeck.cc */
  extern int in_alignof;
  extern int in_sizeof;
  extern int in_typeof;
  extern bool c_in_omp_for;
+ extern bool c_omp_array_section_p;
  
  extern tree c_last_sizeof_arg;
  extern location_t c_last_sizeof_loc;
*************** bool c_type_variably_modified_p (tree t)
*** 743,752 ****
  
  
  extern bool char_type_p (tree);
! extern tree c_objc_common_truthvalue_conversion (location_t, tree);
  extern tree require_complete_type (location_t, tree);
  extern bool same_translation_unit_p (const_tree, const_tree);
  extern int comptypes (tree, tree);
  extern int comptypes_check_different_types (tree, tree, bool *);
  extern int comptypes_check_enum_int (tree, tree, bool *);
  extern bool c_mark_addressable (tree, bool = false);
--- 756,768 ----
  
  
  extern bool char_type_p (tree);
! extern tree c_objc_common_truthvalue_conversion (location_t, tree,
! 						 tree = integer_type_node);
  extern tree require_complete_type (location_t, tree);
  extern bool same_translation_unit_p (const_tree, const_tree);
  extern int comptypes (tree, tree);
+ extern bool comptypes_same_p (tree, tree);
+ extern bool comptypes_equiv_p (tree, tree);
  extern int comptypes_check_different_types (tree, tree, bool *);
  extern int comptypes_check_enum_int (tree, tree, bool *);
  extern bool c_mark_addressable (tree, bool = false);
*************** extern tree composite_type (tree, tree);
*** 764,769 ****
--- 780,786 ----
  extern tree build_component_ref (location_t, tree, tree, location_t,
  				 location_t);
  extern tree build_array_ref (location_t, tree, tree);
+ extern tree build_omp_array_section (location_t, tree, tree, tree);
  extern tree build_external_ref (location_t, tree, bool, tree *);
  extern void pop_maybe_used (bool);
  extern struct c_expr c_expr_sizeof_expr (location_t, struct c_expr);
*************** extern vec<tree> incomplete_record_decls
*** 901,906 ****
--- 918,925 ----
  
  extern const char *c_get_sarif_source_language (const char *filename);
  
+ extern const struct scoped_attribute_specs std_attribute_table;
+ 
  #if CHECKING_P
  namespace selftest {
    extern void run_c_tests (void);
diff -Nrcpad gcc-13.2.0/gcc/c/c-typeck.cc gcc-14.1.0/gcc/c/c-typeck.cc
*** gcc-13.2.0/gcc/c/c-typeck.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/c-typeck.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Build expressions with type checking for C compiler.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Build expressions with type checking for C compiler.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** int in_typeof;
*** 76,81 ****
--- 76,84 ----
  /* True when parsing OpenMP loop expressions.  */
  bool c_in_omp_for;
  
+ /* True when parsing OpenMP map clause.  */
+ bool c_omp_array_section_p;
+ 
  /* The argument of last parsed sizeof expression, only to be tested
     if expr.original_code == SIZEOF_EXPR.  */
  tree c_last_sizeof_arg;
*************** static bool require_constant_elements;
*** 90,101 ****
  static bool require_constexpr_value;
  
  static tree qualify_type (tree, tree);
! static int tagged_types_tu_compatible_p (const_tree, const_tree, bool *,
! 					 bool *);
! static int comp_target_types (location_t, tree, tree);
! static int function_types_compatible_p (const_tree, const_tree, bool *,
! 					bool *);
! static int type_lists_compatible_p (const_tree, const_tree, bool *, bool *);
  static tree lookup_field (tree, tree);
  static int convert_arguments (location_t, vec<location_t>, tree,
  			      vec<tree, va_gc> *, vec<tree, va_gc> *, tree,
--- 93,106 ----
  static bool require_constexpr_value;
  
  static tree qualify_type (tree, tree);
! struct comptypes_data;
! static bool tagged_types_tu_compatible_p (const_tree, const_tree,
! 					  struct comptypes_data *);
! static bool comp_target_types (location_t, tree, tree);
! static bool function_types_compatible_p (const_tree, const_tree,
! 					 struct comptypes_data *);
! static bool type_lists_compatible_p (const_tree, const_tree,
! 				     struct comptypes_data *);
  static tree lookup_field (tree, tree);
  static int convert_arguments (location_t, vec<location_t>, tree,
  			      vec<tree, va_gc> *, vec<tree, va_gc> *, tree,
*************** static tree find_init_member (tree, stru
*** 125,131 ****
  static void readonly_warning (tree, enum lvalue_use);
  static int lvalue_or_else (location_t, const_tree, enum lvalue_use);
  static void record_maybe_used_decl (tree);
! static int comptypes_internal (const_tree, const_tree, bool *, bool *);
  
  /* Return true if EXP is a null pointer constant, false otherwise.  */
  
--- 130,137 ----
  static void readonly_warning (tree, enum lvalue_use);
  static int lvalue_or_else (location_t, const_tree, enum lvalue_use);
  static void record_maybe_used_decl (tree);
! static bool comptypes_internal (const_tree, const_tree,
! 				struct comptypes_data *data);
  
  /* Return true if EXP is a null pointer constant, false otherwise.  */
  
*************** remove_c_maybe_const_expr (tree expr)
*** 187,206 ****
      return expr;
  }
  
! /* This is a cache to hold if two types are compatible or not.  */
  
  struct tagged_tu_seen_cache {
    const struct tagged_tu_seen_cache * next;
    const_tree t1;
    const_tree t2;
-   /* The return value of tagged_types_tu_compatible_p if we had seen
-      these two types already.  */
-   int val;
  };
  
- static const struct tagged_tu_seen_cache * tagged_tu_seen_base;
- static void free_all_tagged_tu_seen_up_to (const struct tagged_tu_seen_cache *);
- 
  /* Do `exp = require_complete_type (loc, exp);' to make sure exp
     does not have an incomplete type.  (That includes void types.)
     LOC is the location of the use.  */
--- 193,206 ----
      return expr;
  }
  
! /* This is a cache to hold if two types are seen.  */
  
  struct tagged_tu_seen_cache {
    const struct tagged_tu_seen_cache * next;
    const_tree t1;
    const_tree t2;
  };
  
  /* Do `exp = require_complete_type (loc, exp);' to make sure exp
     does not have an incomplete type.  (That includes void types.)
     LOC is the location of the use.  */
*************** build_functype_attribute_variant (tree n
*** 384,391 ****
     nonzero; if that isn't so, this may crash.  In particular, we
     assume that qualifiers match.  */
  
  tree
! composite_type (tree t1, tree t2)
  {
    enum tree_code code1;
    enum tree_code code2;
--- 384,398 ----
     nonzero; if that isn't so, this may crash.  In particular, we
     assume that qualifiers match.  */
  
+ struct composite_cache {
+   tree t1;
+   tree t2;
+   tree composite;
+   struct composite_cache* next;
+ };
+ 
  tree
! composite_type_internal (tree t1, tree t2, struct composite_cache* cache)
  {
    enum tree_code code1;
    enum tree_code code2;
*************** composite_type (tree t1, tree t2)
*** 413,422 ****
       the composite type.  */
  
    if (code1 == ENUMERAL_TYPE
!       && (code2 == INTEGER_TYPE || code2 == BOOLEAN_TYPE))
      return t1;
    if (code2 == ENUMERAL_TYPE
!       && (code1 == INTEGER_TYPE || code1 == BOOLEAN_TYPE))
      return t2;
  
    gcc_assert (code1 == code2);
--- 420,431 ----
       the composite type.  */
  
    if (code1 == ENUMERAL_TYPE
!       && (code2 == INTEGER_TYPE
! 	  || code2 == BOOLEAN_TYPE))
      return t1;
    if (code2 == ENUMERAL_TYPE
!       && (code1 == INTEGER_TYPE
! 	  || code1 == BOOLEAN_TYPE))
      return t2;
  
    gcc_assert (code1 == code2);
*************** composite_type (tree t1, tree t2)
*** 428,434 ****
        {
  	tree pointed_to_1 = TREE_TYPE (t1);
  	tree pointed_to_2 = TREE_TYPE (t2);
! 	tree target = composite_type (pointed_to_1, pointed_to_2);
          t1 = build_pointer_type_for_mode (target, TYPE_MODE (t1), false);
  	t1 = build_type_attribute_variant (t1, attributes);
  	return qualify_type (t1, t2);
--- 437,444 ----
        {
  	tree pointed_to_1 = TREE_TYPE (t1);
  	tree pointed_to_2 = TREE_TYPE (t2);
! 	tree target = composite_type_internal (pointed_to_1,
! 					       pointed_to_2, cache);
          t1 = build_pointer_type_for_mode (target, TYPE_MODE (t1), false);
  	t1 = build_type_attribute_variant (t1, attributes);
  	return qualify_type (t1, t2);
*************** composite_type (tree t1, tree t2)
*** 436,442 ****
  
      case ARRAY_TYPE:
        {
! 	tree elt = composite_type (TREE_TYPE (t1), TREE_TYPE (t2));
  	int quals;
  	tree unqual_elt;
  	tree d1 = TYPE_DOMAIN (t1);
--- 446,453 ----
  
      case ARRAY_TYPE:
        {
! 	tree elt = composite_type_internal (TREE_TYPE (t1), TREE_TYPE (t2),
! 					    cache);
  	int quals;
  	tree unqual_elt;
  	tree d1 = TYPE_DOMAIN (t1);
*************** composite_type (tree t1, tree t2)
*** 504,512 ****
  	return build_type_attribute_variant (t1, attributes);
        }
  
-     case ENUMERAL_TYPE:
      case RECORD_TYPE:
      case UNION_TYPE:
        if (attributes != NULL)
  	{
  	  /* Try harder not to create a new aggregate type.  */
--- 515,608 ----
  	return build_type_attribute_variant (t1, attributes);
        }
  
      case RECORD_TYPE:
      case UNION_TYPE:
+       if (flag_isoc23 && !comptypes_same_p (t1, t2))
+ 	{
+ 	  gcc_checking_assert (COMPLETE_TYPE_P (t1) && COMPLETE_TYPE_P (t2));
+ 	  gcc_checking_assert (!TYPE_NAME (t1) || comptypes (t1, t2));
+ 
+ 	  /* If a composite type for these two types is already under
+ 	     construction, return it.  */
+ 
+ 	  for (struct composite_cache *c = cache; c != NULL; c = c->next)
+ 	    if (c->t1 == t1 && c->t2 == t2)
+ 	       return c->composite;
+ 
+ 	  /* Otherwise, create a new type node and link it into the cache.  */
+ 
+ 	  tree n = make_node (code1);
+ 	  SET_TYPE_STRUCTURAL_EQUALITY (n);
+ 	  TYPE_NAME (n) = TYPE_NAME (t1);
+ 
+ 	  struct composite_cache cache2 = { t1, t2, n, cache };
+ 	  cache = &cache2;
+ 
+ 	  tree f1 = TYPE_FIELDS (t1);
+ 	  tree f2 = TYPE_FIELDS (t2);
+ 	  tree fields = NULL_TREE;
+ 
+ 	  for (tree a = f1, b = f2; a && b;
+ 	       a = DECL_CHAIN (a), b = DECL_CHAIN (b))
+ 	    {
+ 	      tree ta = TREE_TYPE (a);
+ 	      tree tb = TREE_TYPE (b);
+ 
+ 	      if (DECL_C_BIT_FIELD (a))
+ 		{
+ 		  ta = DECL_BIT_FIELD_TYPE (a);
+ 		  tb = DECL_BIT_FIELD_TYPE (b);
+ 		}
+ 
+ 	      gcc_assert (DECL_NAME (a) == DECL_NAME (b));
+ 	      gcc_checking_assert (!DECL_NAME (a) || comptypes (ta, tb));
+ 
+ 	      tree t = composite_type_internal (ta, tb, cache);
+ 	      tree f = build_decl (input_location, FIELD_DECL, DECL_NAME (a), t);
+ 
+ 	      DECL_PACKED (f) = DECL_PACKED (a);
+ 	      SET_DECL_ALIGN (f, DECL_ALIGN (a));
+ 	      DECL_ATTRIBUTES (f) = DECL_ATTRIBUTES (a);
+ 	      C_DECL_VARIABLE_SIZE (f) = C_TYPE_VARIABLE_SIZE (t);
+ 
+ 	      finish_decl (f, input_location, NULL, NULL, NULL);
+ 
+ 	      if (DECL_C_BIT_FIELD (a))
+ 		{
+ 		  /* This will be processed by finish_struct.  */
+ 		  SET_DECL_C_BIT_FIELD (f);
+ 		  DECL_INITIAL (f) = build_int_cst (integer_type_node,
+ 						    tree_to_uhwi (DECL_SIZE (a)));
+ 		  DECL_NONADDRESSABLE_P (f) = true;
+ 		  DECL_PADDING_P (f) = !DECL_NAME (a);
+ 		}
+ 
+ 	      DECL_CHAIN (f) = fields;
+ 	      fields = f;
+ 	    }
+ 
+ 	  fields = nreverse (fields);
+ 
+ 	  /* Setup the struct/union type.  Because we inherit all variably
+ 	     modified components, we can ignore the size expression.  */
+ 	  tree expr = NULL_TREE;
+ 
+ 	  /* Set TYPE_STUB_DECL for debugging symbols.  */
+ 	  TYPE_STUB_DECL (n) = pushdecl (build_decl (input_location, TYPE_DECL,
+ 						     NULL_TREE, n));
+ 
+ 	  n = finish_struct (input_location, n, fields, attributes, NULL,
+ 			     &expr);
+ 
+ 	  n = qualify_type (n, t1);
+ 
+ 	  gcc_checking_assert (!TYPE_NAME (n) || comptypes (n, t1));
+ 	  gcc_checking_assert (!TYPE_NAME (n) || comptypes (n, t2));
+ 
+ 	  return n;
+ 	}
+       /* FALLTHRU */
+     case ENUMERAL_TYPE:
        if (attributes != NULL)
  	{
  	  /* Try harder not to create a new aggregate type.  */
*************** composite_type (tree t1, tree t2)
*** 521,527 ****
        /* Function types: prefer the one that specified arg types.
  	 If both do, merge the arg types.  Also merge the return types.  */
        {
! 	tree valtype = composite_type (TREE_TYPE (t1), TREE_TYPE (t2));
  	tree p1 = TYPE_ARG_TYPES (t1);
  	tree p2 = TYPE_ARG_TYPES (t2);
  	int len;
--- 617,624 ----
        /* Function types: prefer the one that specified arg types.
  	 If both do, merge the arg types.  Also merge the return types.  */
        {
! 	tree valtype = composite_type_internal (TREE_TYPE (t1),
! 						TREE_TYPE (t2), cache);
  	tree p1 = TYPE_ARG_TYPES (t1);
  	tree p2 = TYPE_ARG_TYPES (t2);
  	int len;
*************** composite_type (tree t1, tree t2)
*** 566,571 ****
--- 663,678 ----
  	for (; p1 && p1 != void_list_node;
  	     p1 = TREE_CHAIN (p1), p2 = TREE_CHAIN (p2), n = TREE_CHAIN (n))
  	  {
+ 	     tree mv1 = TREE_VALUE (p1);
+ 	     if (mv1 && mv1 != error_mark_node
+ 		 && TREE_CODE (mv1) != ARRAY_TYPE)
+ 	       mv1 = TYPE_MAIN_VARIANT (mv1);
+ 
+ 	     tree mv2 = TREE_VALUE (p2);
+ 	     if (mv2 && mv2 != error_mark_node
+ 		 && TREE_CODE (mv2) != ARRAY_TYPE)
+ 	       mv2 = TYPE_MAIN_VARIANT (mv2);
+ 
  	    /* A null type means arg type is not specified.
  	       Take whatever the other function type has.  */
  	    if (TREE_VALUE (p1) == NULL_TREE)
*************** composite_type (tree t1, tree t2)
*** 586,595 ****
  		&& TREE_VALUE (p1) != TREE_VALUE (p2))
  	      {
  		tree memb;
- 		tree mv2 = TREE_VALUE (p2);
- 		if (mv2 && mv2 != error_mark_node
- 		    && TREE_CODE (mv2) != ARRAY_TYPE)
- 		  mv2 = TYPE_MAIN_VARIANT (mv2);
  		for (memb = TYPE_FIELDS (TREE_VALUE (p1));
  		     memb; memb = DECL_CHAIN (memb))
  		  {
--- 693,698 ----
*************** composite_type (tree t1, tree t2)
*** 599,606 ****
  		      mv3 = TYPE_MAIN_VARIANT (mv3);
  		    if (comptypes (mv3, mv2))
  		      {
! 			TREE_VALUE (n) = composite_type (TREE_TYPE (memb),
! 							 TREE_VALUE (p2));
  			pedwarn (input_location, OPT_Wpedantic,
  				 "function types not truly compatible in ISO C");
  			goto parm_done;
--- 702,710 ----
  		      mv3 = TYPE_MAIN_VARIANT (mv3);
  		    if (comptypes (mv3, mv2))
  		      {
! 			TREE_VALUE (n) = composite_type_internal (TREE_TYPE (memb),
! 								  TREE_VALUE (p2),
! 								  cache);
  			pedwarn (input_location, OPT_Wpedantic,
  				 "function types not truly compatible in ISO C");
  			goto parm_done;
*************** composite_type (tree t1, tree t2)
*** 611,620 ****
  		&& TREE_VALUE (p2) != TREE_VALUE (p1))
  	      {
  		tree memb;
- 		tree mv1 = TREE_VALUE (p1);
- 		if (mv1 && mv1 != error_mark_node
- 		    && TREE_CODE (mv1) != ARRAY_TYPE)
- 		  mv1 = TYPE_MAIN_VARIANT (mv1);
  		for (memb = TYPE_FIELDS (TREE_VALUE (p2));
  		     memb; memb = DECL_CHAIN (memb))
  		  {
--- 715,720 ----
*************** composite_type (tree t1, tree t2)
*** 624,638 ****
  		      mv3 = TYPE_MAIN_VARIANT (mv3);
  		    if (comptypes (mv3, mv1))
  		      {
! 			TREE_VALUE (n) = composite_type (TREE_TYPE (memb),
! 							 TREE_VALUE (p1));
  			pedwarn (input_location, OPT_Wpedantic,
  				 "function types not truly compatible in ISO C");
  			goto parm_done;
  		      }
  		  }
  	      }
! 	    TREE_VALUE (n) = composite_type (TREE_VALUE (p1), TREE_VALUE (p2));
  	  parm_done: ;
  	  }
  
--- 724,740 ----
  		      mv3 = TYPE_MAIN_VARIANT (mv3);
  		    if (comptypes (mv3, mv1))
  		      {
! 			TREE_VALUE (n)
! 				= composite_type_internal (TREE_TYPE (memb),
! 							   TREE_VALUE (p1),
! 							   cache);
  			pedwarn (input_location, OPT_Wpedantic,
  				 "function types not truly compatible in ISO C");
  			goto parm_done;
  		      }
  		  }
  	      }
! 	    TREE_VALUE (n) = composite_type_internal (mv1, mv2, cache);
  	  parm_done: ;
  	  }
  
*************** composite_type (tree t1, tree t2)
*** 644,657 ****
      default:
        return build_type_attribute_variant (t1, attributes);
      }
  
  }
  
  /* Return the type of a conditional expression between pointers to
     possibly differently qualified versions of compatible types.
  
     We assume that comp_target_types has already been done and returned
!    nonzero; if that isn't so, this may crash.  */
  
  static tree
  common_pointer_type (tree t1, tree t2)
--- 746,765 ----
      default:
        return build_type_attribute_variant (t1, attributes);
      }
+ }
  
+ tree
+ composite_type (tree t1, tree t2)
+ {
+   struct composite_cache cache = { };
+   return composite_type_internal (t1, t2, &cache);
  }
  
  /* Return the type of a conditional expression between pointers to
     possibly differently qualified versions of compatible types.
  
     We assume that comp_target_types has already been done and returned
!    true; if that isn't so, this may crash.  */
  
  static tree
  common_pointer_type (tree t1, tree t2)
*************** common_pointer_type (tree t1, tree t2)
*** 705,711 ****
  
    /* If the two named address spaces are different, determine the common
       superset address space.  This is guaranteed to exist due to the
!      assumption that comp_target_type returned non-zero.  */
    as1 = TYPE_ADDR_SPACE (pointed_to_1);
    as2 = TYPE_ADDR_SPACE (pointed_to_2);
    if (!addr_space_superset (as1, as2, &as_common))
--- 813,819 ----
  
    /* If the two named address spaces are different, determine the common
       superset address space.  This is guaranteed to exist due to the
!      assumption that comp_target_type returned true.  */
    as1 = TYPE_ADDR_SPACE (pointed_to_1);
    as2 = TYPE_ADDR_SPACE (pointed_to_2);
    if (!addr_space_superset (as1, as2, &as_common))
*************** c_common_type (tree t1, tree t2)
*** 764,773 ****
  
    gcc_assert (code1 == VECTOR_TYPE || code1 == COMPLEX_TYPE
  	      || code1 == FIXED_POINT_TYPE || code1 == REAL_TYPE
! 	      || code1 == INTEGER_TYPE);
    gcc_assert (code2 == VECTOR_TYPE || code2 == COMPLEX_TYPE
  	      || code2 == FIXED_POINT_TYPE || code2 == REAL_TYPE
! 	      || code2 == INTEGER_TYPE);
  
    /* When one operand is a decimal float type, the other operand cannot be
       a generic float type or a complex type.  We also disallow vector types
--- 872,881 ----
  
    gcc_assert (code1 == VECTOR_TYPE || code1 == COMPLEX_TYPE
  	      || code1 == FIXED_POINT_TYPE || code1 == REAL_TYPE
! 	      || code1 == INTEGER_TYPE || code1 == BITINT_TYPE);
    gcc_assert (code2 == VECTOR_TYPE || code2 == COMPLEX_TYPE
  	      || code2 == FIXED_POINT_TYPE || code2 == REAL_TYPE
! 	      || code2 == INTEGER_TYPE || code2 == BITINT_TYPE);
  
    /* When one operand is a decimal float type, the other operand cannot be
       a generic float type or a complex type.  We also disallow vector types
*************** c_common_type (tree t1, tree t2)
*** 815,820 ****
--- 923,934 ----
  	return t1;
        else if (code2 == COMPLEX_TYPE && TREE_TYPE (t2) == subtype)
  	return t2;
+       else if (TREE_CODE (subtype) == BITINT_TYPE)
+ 	{
+ 	  sorry ("%<_Complex _BitInt(%d)%> unsupported",
+ 		 TYPE_PRECISION (subtype));
+ 	  return code1 == COMPLEX_TYPE ? t1 : t2;
+ 	}
        else
  	return build_complex_type (subtype);
      }
*************** c_common_type (tree t1, tree t2)
*** 1004,1009 ****
--- 1118,1137 ----
      if (mv1 == FLOATNX_TYPE_NODE (i) || mv2 == FLOATNX_TYPE_NODE (i))
        return FLOATNX_TYPE_NODE (i);
  
+   if ((code1 == BITINT_TYPE || code2 == BITINT_TYPE) && code1 != code2)
+     {
+       /* Prefer any other integral types over bit-precise integer types.  */
+       if (TYPE_UNSIGNED (t1) == TYPE_UNSIGNED (t2))
+ 	return code1 == BITINT_TYPE ? t2 : t1;
+       /* If BITINT_TYPE is unsigned and the other type is signed
+ 	 non-BITINT_TYPE with the same precision, the latter has higher rank.
+ 	 In that case:
+ 	 Otherwise, both operands are converted to the unsigned integer type
+ 	 corresponding to the type of the operand with signed integer type.  */
+       if (TYPE_UNSIGNED (code1 == BITINT_TYPE ? t1 : t2))
+ 	return c_common_unsigned_type (code1 == BITINT_TYPE ? t2 : t1);
+     }
+ 
    /* Otherwise prefer the unsigned one.  */
  
    if (TYPE_UNSIGNED (t1))
*************** common_type (tree t1, tree t2)
*** 1039,1044 ****
--- 1167,1182 ----
    return c_common_type (t1, t2);
  }
  
+ struct comptypes_data {
+   bool enum_and_int_p;
+   bool different_types_p;
+   bool warning_needed;
+   bool anon_field;
+   bool equiv;
+ 
+   const struct tagged_tu_seen_cache* cache;
+ };
+ 
  /* Return 1 if TYPE1 and TYPE2 are compatible types for assignment
     or various other operations.  Return 2 if they are compatible
     but a warning may be needed if you use them together.  */
*************** common_type (tree t1, tree t2)
*** 1046,1073 ****
  int
  comptypes (tree type1, tree type2)
  {
!   const struct tagged_tu_seen_cache * tagged_tu_seen_base1 = tagged_tu_seen_base;
!   int val;
  
!   val = comptypes_internal (type1, type2, NULL, NULL);
!   free_all_tagged_tu_seen_up_to (tagged_tu_seen_base1);
  
!   return val;
  }
  
  /* Like comptypes, but if it returns non-zero because enum and int are
     compatible, it sets *ENUM_AND_INT_P to true.  */
  
  int
  comptypes_check_enum_int (tree type1, tree type2, bool *enum_and_int_p)
  {
!   const struct tagged_tu_seen_cache * tagged_tu_seen_base1 = tagged_tu_seen_base;
!   int val;
! 
!   val = comptypes_internal (type1, type2, enum_and_int_p, NULL);
!   free_all_tagged_tu_seen_up_to (tagged_tu_seen_base1);
  
!   return val;
  }
  
  /* Like comptypes, but if it returns nonzero for different types, it
--- 1184,1223 ----
  int
  comptypes (tree type1, tree type2)
  {
!   struct comptypes_data data = { };
!   bool ret = comptypes_internal (type1, type2, &data);
  
!   return ret ? (data.warning_needed ? 2 : 1) : 0;
! }
  
! 
! /* Like comptypes, but it returns non-zero only for identical
!    types.  */
! 
! bool
! comptypes_same_p (tree type1, tree type2)
! {
!   struct comptypes_data data = { };
!   bool ret = comptypes_internal (type1, type2, &data);
! 
!   if (data.different_types_p)
!     return false;
! 
!   return ret;
  }
  
+ 
  /* Like comptypes, but if it returns non-zero because enum and int are
     compatible, it sets *ENUM_AND_INT_P to true.  */
  
  int
  comptypes_check_enum_int (tree type1, tree type2, bool *enum_and_int_p)
  {
!   struct comptypes_data data = { };
!   bool ret = comptypes_internal (type1, type2, &data);
!   *enum_and_int_p = data.enum_and_int_p;
  
!   return ret ? (data.warning_needed ? 2 : 1) : 0;
  }
  
  /* Like comptypes, but if it returns nonzero for different types, it
*************** int
*** 1077,1117 ****
  comptypes_check_different_types (tree type1, tree type2,
  				 bool *different_types_p)
  {
!   const struct tagged_tu_seen_cache * tagged_tu_seen_base1 = tagged_tu_seen_base;
!   int val;
  
!   val = comptypes_internal (type1, type2, NULL, different_types_p);
!   free_all_tagged_tu_seen_up_to (tagged_tu_seen_base1);
  
!   return val;
  }
  
! /* Return 1 if TYPE1 and TYPE2 are compatible types for assignment
!    or various other operations.  Return 2 if they are compatible
!    but a warning may be needed if you use them together.  If
!    ENUM_AND_INT_P is not NULL, and one type is an enum and the other a
!    compatible integer type, then this sets *ENUM_AND_INT_P to true;
!    *ENUM_AND_INT_P is never set to false.  If DIFFERENT_TYPES_P is not
!    NULL, and the types are compatible but different enough not to be
     permitted in C11 typedef redeclarations, then this sets
!    *DIFFERENT_TYPES_P to true; *DIFFERENT_TYPES_P is never set to
     false, but may or may not be set if the types are incompatible.
     This differs from comptypes, in that we don't free the seen
     types.  */
  
! static int
! comptypes_internal (const_tree type1, const_tree type2, bool *enum_and_int_p,
! 		    bool *different_types_p)
  {
    const_tree t1 = type1;
    const_tree t2 = type2;
-   int attrval, val;
  
    /* Suppress errors caused by previously reported errors.  */
  
    if (t1 == t2 || !t1 || !t2
        || TREE_CODE (t1) == ERROR_MARK || TREE_CODE (t2) == ERROR_MARK)
!     return 1;
  
    /* Enumerated types are compatible with integer types, but this is
       not transitive: two enumerated types in the same translation unit
--- 1227,1278 ----
  comptypes_check_different_types (tree type1, tree type2,
  				 bool *different_types_p)
  {
!   struct comptypes_data data = { };
!   bool ret = comptypes_internal (type1, type2, &data);
!   *different_types_p = data.different_types_p;
  
!   return ret ? (data.warning_needed ? 2 : 1) : 0;
! }
  
! 
! /* Like comptypes, but if it returns nonzero for struct and union
!    types considered equivalent for aliasing purposes.  */
! 
! bool
! comptypes_equiv_p (tree type1, tree type2)
! {
!   struct comptypes_data data = { };
!   data.equiv = true;
!   bool ret = comptypes_internal (type1, type2, &data);
! 
!   return ret;
  }
+ 
  
! /* Return true if TYPE1 and TYPE2 are compatible types for assignment
!    or various other operations.  If they are compatible but a warning may
!    be needed if you use them together, 'warning_needed' in DATA is set.
!    If one type is an enum and the other a compatible integer type, then
!    this sets 'enum_and_int_p' in DATA to true (it is never set to
!    false).  If the types are compatible but different enough not to be
     permitted in C11 typedef redeclarations, then this sets
!    'different_types_p' in DATA to true; it is never set to
     false, but may or may not be set if the types are incompatible.
     This differs from comptypes, in that we don't free the seen
     types.  */
  
! static bool
! comptypes_internal (const_tree type1, const_tree type2,
! 		    struct comptypes_data *data)
  {
    const_tree t1 = type1;
    const_tree t2 = type2;
  
    /* Suppress errors caused by previously reported errors.  */
  
    if (t1 == t2 || !t1 || !t2
        || TREE_CODE (t1) == ERROR_MARK || TREE_CODE (t2) == ERROR_MARK)
!     return true;
  
    /* Enumerated types are compatible with integer types, but this is
       not transitive: two enumerated types in the same translation unit
*************** comptypes_internal (const_tree type1, co
*** 1124,1133 ****
        t1 = ENUM_UNDERLYING_TYPE (t1);
        if (TREE_CODE (t2) != VOID_TYPE)
  	{
! 	  if (enum_and_int_p != NULL)
! 	    *enum_and_int_p = true;
! 	  if (different_types_p != NULL)
! 	    *different_types_p = true;
  	}
      }
    else if (TREE_CODE (t2) == ENUMERAL_TYPE
--- 1285,1292 ----
        t1 = ENUM_UNDERLYING_TYPE (t1);
        if (TREE_CODE (t2) != VOID_TYPE)
  	{
! 	  data->enum_and_int_p = true;
! 	  data->different_types_p = true;
  	}
      }
    else if (TREE_CODE (t2) == ENUMERAL_TYPE
*************** comptypes_internal (const_tree type1, co
*** 1137,1161 ****
        t2 = ENUM_UNDERLYING_TYPE (t2);
        if (TREE_CODE (t1) != VOID_TYPE)
  	{
! 	  if (enum_and_int_p != NULL)
! 	    *enum_and_int_p = true;
! 	  if (different_types_p != NULL)
! 	    *different_types_p = true;
  	}
      }
  
    if (t1 == t2)
!     return 1;
  
    /* Different classes of types can't be compatible.  */
  
    if (TREE_CODE (t1) != TREE_CODE (t2))
!     return 0;
  
    /* Qualifiers must match. C99 6.7.3p9 */
  
    if (TYPE_QUALS (t1) != TYPE_QUALS (t2))
!     return 0;
  
    /* Allow for two different type nodes which have essentially the same
       definition.  Note that we already checked for equality of the type
--- 1296,1318 ----
        t2 = ENUM_UNDERLYING_TYPE (t2);
        if (TREE_CODE (t1) != VOID_TYPE)
  	{
! 	  data->enum_and_int_p = true;
! 	  data->different_types_p = true;
  	}
      }
  
    if (t1 == t2)
!     return true;
  
    /* Different classes of types can't be compatible.  */
  
    if (TREE_CODE (t1) != TREE_CODE (t2))
!     return false;
  
    /* Qualifiers must match. C99 6.7.3p9 */
  
    if (TYPE_QUALS (t1) != TYPE_QUALS (t2))
!     return false;
  
    /* Allow for two different type nodes which have essentially the same
       definition.  Note that we already checked for equality of the type
*************** comptypes_internal (const_tree type1, co
*** 1163,1182 ****
  
    if (TREE_CODE (t1) != ARRAY_TYPE
        && TYPE_MAIN_VARIANT (t1) == TYPE_MAIN_VARIANT (t2))
!     return 1;
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
    if (!(attrval = comp_type_attributes (t1, t2)))
!      return 0;
  
!   /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
!   val = 0;
  
    switch (TREE_CODE (t1))
      {
      case INTEGER_TYPE:
      case FIXED_POINT_TYPE:
      case REAL_TYPE:
        /* With these nodes, we can't determine type equivalence by
  	 looking at what is stored in the nodes themselves, because
  	 two nodes might have different TYPE_MAIN_VARIANTs but still
--- 1320,1342 ----
  
    if (TREE_CODE (t1) != ARRAY_TYPE
        && TYPE_MAIN_VARIANT (t1) == TYPE_MAIN_VARIANT (t2))
!     return true;
! 
!   int attrval;
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
    if (!(attrval = comp_type_attributes (t1, t2)))
!      return false;
  
!   if (2 == attrval)
!     data->warning_needed = true;
  
    switch (TREE_CODE (t1))
      {
      case INTEGER_TYPE:
      case FIXED_POINT_TYPE:
      case REAL_TYPE:
+     case BITINT_TYPE:
        /* With these nodes, we can't determine type equivalence by
  	 looking at what is stored in the nodes themselves, because
  	 two nodes might have different TYPE_MAIN_VARIANTs but still
*************** comptypes_internal (const_tree type1, co
*** 1196,1211 ****
      case POINTER_TYPE:
        /* Do not remove mode information.  */
        if (TYPE_MODE (t1) != TYPE_MODE (t2))
! 	break;
!       val = (TREE_TYPE (t1) == TREE_TYPE (t2)
! 	     ? 1 : comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2),
! 				       enum_and_int_p, different_types_p));
!       break;
  
      case FUNCTION_TYPE:
!       val = function_types_compatible_p (t1, t2, enum_and_int_p,
! 					 different_types_p);
!       break;
  
      case ARRAY_TYPE:
        {
--- 1356,1366 ----
      case POINTER_TYPE:
        /* Do not remove mode information.  */
        if (TYPE_MODE (t1) != TYPE_MODE (t2))
! 	return false;
!       return comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2), data);
  
      case FUNCTION_TYPE:
!       return function_types_compatible_p (t1, t2, data);
  
      case ARRAY_TYPE:
        {
*************** comptypes_internal (const_tree type1, co
*** 1213,1233 ****
  	tree d2 = TYPE_DOMAIN (t2);
  	bool d1_variable, d2_variable;
  	bool d1_zero, d2_zero;
- 	val = 1;
  
  	/* Target types must match incl. qualifiers.  */
! 	if (TREE_TYPE (t1) != TREE_TYPE (t2)
! 	    && (val = comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2),
! 					  enum_and_int_p,
! 					  different_types_p)) == 0)
! 	  return 0;
  
! 	if (different_types_p != NULL
! 	    && (d1 == NULL_TREE) != (d2 == NULL_TREE))
! 	  *different_types_p = true;
  	/* Sizes must match unless one is missing or variable.  */
  	if (d1 == NULL_TREE || d2 == NULL_TREE || d1 == d2)
! 	  break;
  
  	d1_zero = !TYPE_MAX_VALUE (d1);
  	d2_zero = !TYPE_MAX_VALUE (d2);
--- 1368,1386 ----
  	tree d2 = TYPE_DOMAIN (t2);
  	bool d1_variable, d2_variable;
  	bool d1_zero, d2_zero;
  
  	/* Target types must match incl. qualifiers.  */
! 	if (!comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2), data))
! 	  return false;
  
! 	if ((d1 == NULL_TREE) != (d2 == NULL_TREE))
! 	  data->different_types_p = true;
! 	/* Ignore size mismatches.  */
! 	if (data->equiv)
! 	  return true;
  	/* Sizes must match unless one is missing or variable.  */
  	if (d1 == NULL_TREE || d2 == NULL_TREE || d1 == d2)
! 	  return true;
  
  	d1_zero = !TYPE_MAX_VALUE (d1);
  	d2_zero = !TYPE_MAX_VALUE (d2);
*************** comptypes_internal (const_tree type1, co
*** 1241,1299 ****
  	d1_variable = d1_variable || (d1_zero && C_TYPE_VARIABLE_SIZE (t1));
  	d2_variable = d2_variable || (d2_zero && C_TYPE_VARIABLE_SIZE (t2));
  
! 	if (different_types_p != NULL
! 	    && d1_variable != d2_variable)
! 	  *different_types_p = true;
  	if (d1_variable || d2_variable)
! 	  break;
  	if (d1_zero && d2_zero)
! 	  break;
  	if (d1_zero || d2_zero
  	    || !tree_int_cst_equal (TYPE_MIN_VALUE (d1), TYPE_MIN_VALUE (d2))
  	    || !tree_int_cst_equal (TYPE_MAX_VALUE (d1), TYPE_MAX_VALUE (d2)))
! 	  val = 0;
  
! 	break;
        }
  
      case ENUMERAL_TYPE:
      case RECORD_TYPE:
      case UNION_TYPE:
-       if (val != 1 && !same_translation_unit_p (t1, t2))
- 	{
- 	  tree a1 = TYPE_ATTRIBUTES (t1);
- 	  tree a2 = TYPE_ATTRIBUTES (t2);
  
! 	  if (! attribute_list_contained (a1, a2)
! 	      && ! attribute_list_contained (a2, a1))
! 	    break;
  
! 	  if (attrval != 2)
! 	    return tagged_types_tu_compatible_p (t1, t2, enum_and_int_p,
! 						 different_types_p);
! 	  val = tagged_types_tu_compatible_p (t1, t2, enum_and_int_p,
! 					      different_types_p);
! 	}
!       break;
  
      case VECTOR_TYPE:
!       val = (known_eq (TYPE_VECTOR_SUBPARTS (t1), TYPE_VECTOR_SUBPARTS (t2))
! 	     && comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2),
! 				    enum_and_int_p, different_types_p));
!       break;
  
      default:
!       break;
      }
!   return attrval == 2 && val == 1 ? 2 : val;
  }
  
! /* Return 1 if TTL and TTR are pointers to types that are equivalent, ignoring
     their qualifiers, except for named address spaces.  If the pointers point to
     different named addresses, then we must determine if one address space is a
     subset of the other.  */
  
! static int
  comp_target_types (location_t location, tree ttl, tree ttr)
  {
    int val;
--- 1394,1438 ----
  	d1_variable = d1_variable || (d1_zero && C_TYPE_VARIABLE_SIZE (t1));
  	d2_variable = d2_variable || (d2_zero && C_TYPE_VARIABLE_SIZE (t2));
  
! 	if (d1_variable != d2_variable)
! 	  data->different_types_p = true;
  	if (d1_variable || d2_variable)
! 	  return true;
  	if (d1_zero && d2_zero)
! 	  return true;
  	if (d1_zero || d2_zero
  	    || !tree_int_cst_equal (TYPE_MIN_VALUE (d1), TYPE_MIN_VALUE (d2))
  	    || !tree_int_cst_equal (TYPE_MAX_VALUE (d1), TYPE_MAX_VALUE (d2)))
! 	  return false;
  
! 	return true;
        }
  
      case ENUMERAL_TYPE:
      case RECORD_TYPE:
      case UNION_TYPE:
  
!       if (!flag_isoc23)
! 	return false;
  
!       return tagged_types_tu_compatible_p (t1, t2, data);
  
      case VECTOR_TYPE:
!       return known_eq (TYPE_VECTOR_SUBPARTS (t1), TYPE_VECTOR_SUBPARTS (t2))
! 	     && comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2), data);
  
      default:
!       return false;
      }
!   gcc_unreachable ();
  }
  
! /* Return true if TTL and TTR are pointers to types that are equivalent, ignoring
     their qualifiers, except for named address spaces.  If the pointers point to
     different named addresses, then we must determine if one address space is a
     subset of the other.  */
  
! static bool
  comp_target_types (location_t location, tree ttl, tree ttr)
  {
    int val;
*************** comp_target_types (location_t location,
*** 1333,1339 ****
  
    if (val == 1 && val_ped != 1)
      pedwarn_c11 (location, OPT_Wpedantic, "invalid use of pointers to arrays with different qualifiers "
! 					  "in ISO C before C2X");
  
    if (val == 2)
      pedwarn (location, OPT_Wpedantic, "types are not quite compatible");
--- 1472,1478 ----
  
    if (val == 1 && val_ped != 1)
      pedwarn_c11 (location, OPT_Wpedantic, "invalid use of pointers to arrays with different qualifiers "
! 					  "in ISO C before C23");
  
    if (val == 2)
      pedwarn (location, OPT_Wpedantic, "types are not quite compatible");
*************** comp_target_types (location_t location,
*** 1347,1444 ****
  
  /* Subroutines of `comptypes'.  */
  
! /* Determine whether two trees derive from the same translation unit.
!    If the CONTEXT chain ends in a null, that tree's context is still
!    being parsed, so if two trees have context chains ending in null,
!    they're in the same translation unit.  */
! 
! bool
! same_translation_unit_p (const_tree t1, const_tree t2)
! {
!   while (t1 && TREE_CODE (t1) != TRANSLATION_UNIT_DECL)
!     switch (TREE_CODE_CLASS (TREE_CODE (t1)))
!       {
!       case tcc_declaration:
! 	t1 = DECL_CONTEXT (t1); break;
!       case tcc_type:
! 	t1 = TYPE_CONTEXT (t1); break;
!       case tcc_exceptional:
! 	t1 = BLOCK_SUPERCONTEXT (t1); break;  /* assume block */
!       default: gcc_unreachable ();
!       }
! 
!   while (t2 && TREE_CODE (t2) != TRANSLATION_UNIT_DECL)
!     switch (TREE_CODE_CLASS (TREE_CODE (t2)))
!       {
!       case tcc_declaration:
! 	t2 = DECL_CONTEXT (t2); break;
!       case tcc_type:
! 	t2 = TYPE_CONTEXT (t2); break;
!       case tcc_exceptional:
! 	t2 = BLOCK_SUPERCONTEXT (t2); break;  /* assume block */
!       default: gcc_unreachable ();
!       }
! 
!   return t1 == t2;
! }
! 
! /* Allocate the seen two types, assuming that they are compatible. */
! 
! static struct tagged_tu_seen_cache *
! alloc_tagged_tu_seen_cache (const_tree t1, const_tree t2)
! {
!   struct tagged_tu_seen_cache *tu = XNEW (struct tagged_tu_seen_cache);
!   tu->next = tagged_tu_seen_base;
!   tu->t1 = t1;
!   tu->t2 = t2;
! 
!   tagged_tu_seen_base = tu;
! 
!   /* The C standard says that two structures in different translation
!      units are compatible with each other only if the types of their
!      fields are compatible (among other things).  We assume that they
!      are compatible until proven otherwise when building the cache.
!      An example where this can occur is:
!      struct a
!      {
!        struct a *next;
!      };
!      If we are comparing this against a similar struct in another TU,
!      and did not assume they were compatible, we end up with an infinite
!      loop.  */
!   tu->val = 1;
!   return tu;
! }
! 
! /* Free the seen types until we get to TU_TIL. */
! 
! static void
! free_all_tagged_tu_seen_up_to (const struct tagged_tu_seen_cache *tu_til)
! {
!   const struct tagged_tu_seen_cache *tu = tagged_tu_seen_base;
!   while (tu != tu_til)
!     {
!       const struct tagged_tu_seen_cache *const tu1
! 	= (const struct tagged_tu_seen_cache *) tu;
!       tu = tu1->next;
!       XDELETE (CONST_CAST (struct tagged_tu_seen_cache *, tu1));
!     }
!   tagged_tu_seen_base = tu_til;
! }
! 
! /* Return 1 if two 'struct', 'union', or 'enum' types T1 and T2 are
!    compatible.  If the two types are not the same (which has been
!    checked earlier), this can only happen when multiple translation
!    units are being compiled.  See C99 6.2.7 paragraph 1 for the exact
!    rules.  ENUM_AND_INT_P and DIFFERENT_TYPES_P are as in
!    comptypes_internal.  */
  
! static int
  tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
! 			      bool *enum_and_int_p, bool *different_types_p)
  {
    tree s1, s2;
-   bool needs_warning = false;
  
    /* We have to verify that the tags of the types are the same.  This
       is harder than it looks because this may be a typedef, so we have
--- 1486,1500 ----
  
  /* Subroutines of `comptypes'.  */
  
! /* Return true if two 'struct', 'union', or 'enum' types T1 and T2 are
!    compatible.  The two types are not the same (which has been
!    checked earlier in comptypes_internal).  */
  
! static bool
  tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
! 			      struct comptypes_data *data)
  {
    tree s1, s2;
  
    /* We have to verify that the tags of the types are the same.  This
       is harder than it looks because this may be a typedef, so we have
*************** tagged_types_tu_compatible_p (const_tree
*** 1456,1665 ****
  	 && DECL_ORIGINAL_TYPE (TYPE_NAME (t2)))
      t2 = DECL_ORIGINAL_TYPE (TYPE_NAME (t2));
  
!   /* C90 didn't have the requirement that the two tags be the same.  */
!   if (flag_isoc99 && TYPE_NAME (t1) != TYPE_NAME (t2))
!     return 0;
  
!   /* C90 didn't say what happened if one or both of the types were
!      incomplete; we choose to follow C99 rules here, which is that they
!      are compatible.  */
!   if (TYPE_SIZE (t1) == NULL
!       || TYPE_SIZE (t2) == NULL)
!     return 1;
  
!   {
!     const struct tagged_tu_seen_cache * tts_i;
!     for (tts_i = tagged_tu_seen_base; tts_i != NULL; tts_i = tts_i->next)
!       if (tts_i->t1 == t1 && tts_i->t2 == t2)
! 	return tts_i->val;
!   }
  
    switch (TREE_CODE (t1))
      {
      case ENUMERAL_TYPE:
        {
! 	struct tagged_tu_seen_cache *tu = alloc_tagged_tu_seen_cache (t1, t2);
  	/* Speed up the case where the type values are in the same order.  */
  	tree tv1 = TYPE_VALUES (t1);
  	tree tv2 = TYPE_VALUES (t2);
  
  	if (tv1 == tv2)
! 	  {
! 	    return 1;
! 	  }
  
  	for (;tv1 && tv2; tv1 = TREE_CHAIN (tv1), tv2 = TREE_CHAIN (tv2))
  	  {
  	    if (TREE_PURPOSE (tv1) != TREE_PURPOSE (tv2))
  	      break;
! 	    if (simple_cst_equal (TREE_VALUE (tv1), TREE_VALUE (tv2)) != 1)
! 	      {
! 		tu->val = 0;
! 		return 0;
! 	      }
  	  }
  
  	if (tv1 == NULL_TREE && tv2 == NULL_TREE)
! 	  {
! 	    return 1;
! 	  }
  	if (tv1 == NULL_TREE || tv2 == NULL_TREE)
! 	  {
! 	    tu->val = 0;
! 	    return 0;
! 	  }
  
  	if (list_length (TYPE_VALUES (t1)) != list_length (TYPE_VALUES (t2)))
! 	  {
! 	    tu->val = 0;
! 	    return 0;
! 	  }
  
  	for (s1 = TYPE_VALUES (t1); s1; s1 = TREE_CHAIN (s1))
  	  {
  	    s2 = purpose_member (TREE_PURPOSE (s1), TYPE_VALUES (t2));
  	    if (s2 == NULL
! 		|| simple_cst_equal (TREE_VALUE (s1), TREE_VALUE (s2)) != 1)
! 	      {
! 		tu->val = 0;
! 		return 0;
! 	      }
  	  }
! 	return 1;
        }
  
      case UNION_TYPE:
!       {
! 	struct tagged_tu_seen_cache *tu = alloc_tagged_tu_seen_cache (t1, t2);
  	if (list_length (TYPE_FIELDS (t1)) != list_length (TYPE_FIELDS (t2)))
! 	  {
! 	    tu->val = 0;
! 	    return 0;
! 	  }
  
! 	/*  Speed up the common case where the fields are in the same order. */
! 	for (s1 = TYPE_FIELDS (t1), s2 = TYPE_FIELDS (t2); s1 && s2;
  	     s1 = DECL_CHAIN (s1), s2 = DECL_CHAIN (s2))
  	  {
! 	    int result;
  
  	    if (DECL_NAME (s1) != DECL_NAME (s2))
! 	      break;
! 	    result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2),
! 					 enum_and_int_p, different_types_p);
! 
! 	    if (result != 1 && !DECL_NAME (s1))
! 	      break;
! 	    if (result == 0)
! 	      {
! 		tu->val = 0;
! 		return 0;
! 	      }
! 	    if (result == 2)
! 	      needs_warning = true;
! 
! 	    if (TREE_CODE (s1) == FIELD_DECL
! 		&& simple_cst_equal (DECL_FIELD_BIT_OFFSET (s1),
! 				     DECL_FIELD_BIT_OFFSET (s2)) != 1)
! 	      {
! 		tu->val = 0;
! 		return 0;
! 	      }
! 	  }
! 	if (!s1 && !s2)
! 	  {
! 	    tu->val = needs_warning ? 2 : 1;
! 	    return tu->val;
! 	  }
! 
! 	for (s1 = TYPE_FIELDS (t1); s1; s1 = DECL_CHAIN (s1))
! 	  {
! 	    bool ok = false;
! 
! 	    for (s2 = TYPE_FIELDS (t2); s2; s2 = DECL_CHAIN (s2))
! 	      if (DECL_NAME (s1) == DECL_NAME (s2))
! 		{
! 		  int result;
! 
! 		  result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2),
! 					       enum_and_int_p,
! 					       different_types_p);
! 
! 		  if (result != 1 && !DECL_NAME (s1))
! 		    continue;
! 		  if (result == 0)
! 		    {
! 		      tu->val = 0;
! 		      return 0;
! 		    }
! 		  if (result == 2)
! 		    needs_warning = true;
  
! 		  if (TREE_CODE (s1) == FIELD_DECL
! 		      && simple_cst_equal (DECL_FIELD_BIT_OFFSET (s1),
! 					   DECL_FIELD_BIT_OFFSET (s2)) != 1)
! 		    break;
  
! 		  ok = true;
! 		  break;
! 		}
! 	    if (!ok)
! 	      {
! 		tu->val = 0;
! 		return 0;
! 	      }
! 	  }
! 	tu->val = needs_warning ? 2 : 10;
! 	return tu->val;
!       }
  
!     case RECORD_TYPE:
!       {
! 	struct tagged_tu_seen_cache *tu = alloc_tagged_tu_seen_cache (t1, t2);
  
! 	for (s1 = TYPE_FIELDS (t1), s2 = TYPE_FIELDS (t2);
! 	     s1 && s2;
! 	     s1 = DECL_CHAIN (s1), s2 = DECL_CHAIN (s2))
! 	  {
! 	    int result;
! 	    if (TREE_CODE (s1) != TREE_CODE (s2)
! 		|| DECL_NAME (s1) != DECL_NAME (s2))
! 	      break;
! 	    result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2),
! 					 enum_and_int_p, different_types_p);
! 	    if (result == 0)
! 	      break;
! 	    if (result == 2)
! 	      needs_warning = true;
  
! 	    if (TREE_CODE (s1) == FIELD_DECL
! 		&& simple_cst_equal (DECL_FIELD_BIT_OFFSET (s1),
! 				     DECL_FIELD_BIT_OFFSET (s2)) != 1)
! 	      break;
  	  }
! 	if (s1 && s2)
! 	  tu->val = 0;
! 	else
! 	  tu->val = needs_warning ? 2 : 1;
! 	return tu->val;
!       }
  
      default:
        gcc_unreachable ();
      }
  }
  
! /* Return 1 if two function types F1 and F2 are compatible.
     If either type specifies no argument types,
     the other must specify a fixed number of self-promoting arg types.
     Otherwise, if one type specifies only the number of arguments,
     the other must specify that number of self-promoting arg types.
!    Otherwise, the argument types must match.
!    ENUM_AND_INT_P and DIFFERENT_TYPES_P are as in comptypes_internal.  */
  
! static int
  function_types_compatible_p (const_tree f1, const_tree f2,
! 			     bool *enum_and_int_p, bool *different_types_p)
  {
    tree args1, args2;
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
--- 1512,1646 ----
  	 && DECL_ORIGINAL_TYPE (TYPE_NAME (t2)))
      t2 = DECL_ORIGINAL_TYPE (TYPE_NAME (t2));
  
!   if (TYPE_NAME (t1) != TYPE_NAME (t2))
!     return false;
  
!   if (!data->anon_field && NULL_TREE == TYPE_NAME (t1))
!     return false;
  
!   if (!data->anon_field && TYPE_STUB_DECL (t1) != TYPE_STUB_DECL (t2))
!     data->different_types_p = true;
! 
!   /* Incomplete types are incompatible inside a TU.  */
!   if (TYPE_SIZE (t1) == NULL || TYPE_SIZE (t2) == NULL)
!     return false;
! 
!   if (ENUMERAL_TYPE != TREE_CODE (t1)
!       && (TYPE_REVERSE_STORAGE_ORDER (t1)
! 	  != TYPE_REVERSE_STORAGE_ORDER (t2)))
!     return false;
! 
!   /* For types already being looked at in some active
!      invocation of this function, assume compatibility.
!      The cache is built as a linked list on the stack
!      with the head of the list passed downwards.  */
!   for (const struct tagged_tu_seen_cache *t = data->cache;
!        t != NULL; t = t->next)
!     if (t->t1 == t1 && t->t2 == t2)
!       return true;
! 
!   const struct tagged_tu_seen_cache entry = { data->cache, t1, t2 };
  
    switch (TREE_CODE (t1))
      {
      case ENUMERAL_TYPE:
        {
! 	if (!comptypes (ENUM_UNDERLYING_TYPE (t1), ENUM_UNDERLYING_TYPE (t2)))
! 	  return false;
! 
  	/* Speed up the case where the type values are in the same order.  */
  	tree tv1 = TYPE_VALUES (t1);
  	tree tv2 = TYPE_VALUES (t2);
  
  	if (tv1 == tv2)
! 	  return true;
  
  	for (;tv1 && tv2; tv1 = TREE_CHAIN (tv1), tv2 = TREE_CHAIN (tv2))
  	  {
  	    if (TREE_PURPOSE (tv1) != TREE_PURPOSE (tv2))
  	      break;
! 
! 	    if (simple_cst_equal (DECL_INITIAL (TREE_VALUE (tv1)),
! 				  DECL_INITIAL (TREE_VALUE (tv2))) != 1)
! 	      break;
  	  }
  
  	if (tv1 == NULL_TREE && tv2 == NULL_TREE)
! 	  return true;
! 
  	if (tv1 == NULL_TREE || tv2 == NULL_TREE)
! 	  return false;
  
  	if (list_length (TYPE_VALUES (t1)) != list_length (TYPE_VALUES (t2)))
! 	  return false;
  
  	for (s1 = TYPE_VALUES (t1); s1; s1 = TREE_CHAIN (s1))
  	  {
  	    s2 = purpose_member (TREE_PURPOSE (s1), TYPE_VALUES (t2));
+ 
  	    if (s2 == NULL
! 		|| simple_cst_equal (DECL_INITIAL (TREE_VALUE (s1)),
! 				     DECL_INITIAL (TREE_VALUE (s2))) != 1)
! 	      return false;
  	  }
! 
! 	return true;
        }
  
      case UNION_TYPE:
!     case RECORD_TYPE:
! 
  	if (list_length (TYPE_FIELDS (t1)) != list_length (TYPE_FIELDS (t2)))
! 	  return false;
  
! 	if (data->equiv && (C_TYPE_VARIABLE_SIZE (t1) || C_TYPE_VARIABLE_SIZE (t2)))
! 	  return false;
! 
! 	for (s1 = TYPE_FIELDS (t1), s2 = TYPE_FIELDS (t2);
! 	     s1 && s2;
  	     s1 = DECL_CHAIN (s1), s2 = DECL_CHAIN (s2))
  	  {
! 	    gcc_assert (TREE_CODE (s1) == FIELD_DECL);
! 	    gcc_assert (TREE_CODE (s2) == FIELD_DECL);
  
  	    if (DECL_NAME (s1) != DECL_NAME (s2))
! 	      return false;
  
! 	    if (DECL_ALIGN (s1) != DECL_ALIGN (s2))
! 	      return false;
  
! 	    data->anon_field = !DECL_NAME (s1);
  
! 	    data->cache = &entry;
! 	    if (!comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2), data))
! 	      return false;
  
! 	    tree st1 = TYPE_SIZE (TREE_TYPE (s1));
! 	    tree st2 = TYPE_SIZE (TREE_TYPE (s2));
  
! 	    if (data->equiv
! 		&& st1 && TREE_CODE (st1) == INTEGER_CST
! 		&& st2 && TREE_CODE (st2) == INTEGER_CST
! 		&& !tree_int_cst_equal (st1, st2))
! 	     return false;
  	  }
! 	return true;
  
      default:
        gcc_unreachable ();
      }
  }
  
! /* Return true if two function types F1 and F2 are compatible.
     If either type specifies no argument types,
     the other must specify a fixed number of self-promoting arg types.
     Otherwise, if one type specifies only the number of arguments,
     the other must specify that number of self-promoting arg types.
!    Otherwise, the argument types must match.  */
  
! static bool
  function_types_compatible_p (const_tree f1, const_tree f2,
! 			     struct comptypes_data *data)
  {
    tree args1, args2;
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
*************** function_types_compatible_p (const_tree
*** 1680,1695 ****
    if (TYPE_VOLATILE (ret2))
      ret2 = build_qualified_type (TYPE_MAIN_VARIANT (ret2),
  				 TYPE_QUALS (ret2) & ~TYPE_QUAL_VOLATILE);
!   val = comptypes_internal (ret1, ret2, enum_and_int_p, different_types_p);
    if (val == 0)
      return 0;
  
    args1 = TYPE_ARG_TYPES (f1);
    args2 = TYPE_ARG_TYPES (f2);
  
!   if (different_types_p != NULL
!       && (args1 == NULL_TREE) != (args2 == NULL_TREE))
!     *different_types_p = true;
  
    /* An unspecified parmlist matches any specified parmlist
       whose argument types don't need default promotions.  */
--- 1661,1675 ----
    if (TYPE_VOLATILE (ret2))
      ret2 = build_qualified_type (TYPE_MAIN_VARIANT (ret2),
  				 TYPE_QUALS (ret2) & ~TYPE_QUAL_VOLATILE);
!   val = comptypes_internal (ret1, ret2, data);
    if (val == 0)
      return 0;
  
    args1 = TYPE_ARG_TYPES (f1);
    args2 = TYPE_ARG_TYPES (f2);
  
!   if ((args1 == NULL_TREE) != (args2 == NULL_TREE))
!     data->different_types_p = true;
  
    /* An unspecified parmlist matches any specified parmlist
       whose argument types don't need default promotions.  */
*************** function_types_compatible_p (const_tree
*** 1705,1712 ****
  	 If they don't match, ask for a warning (but no error).  */
        if (TYPE_ACTUAL_ARG_TYPES (f1)
  	  && type_lists_compatible_p (args2, TYPE_ACTUAL_ARG_TYPES (f1),
! 				      enum_and_int_p, different_types_p) != 1)
! 	val = 2;
        return val;
      }
    if (args2 == NULL_TREE)
--- 1685,1695 ----
  	 If they don't match, ask for a warning (but no error).  */
        if (TYPE_ACTUAL_ARG_TYPES (f1)
  	  && type_lists_compatible_p (args2, TYPE_ACTUAL_ARG_TYPES (f1),
! 				      data) != 1)
! 	{
! 	  val = 1;
! 	  data->warning_needed = true;
! 	}
        return val;
      }
    if (args2 == NULL_TREE)
*************** function_types_compatible_p (const_tree
*** 1717,1751 ****
  	return 0;
        if (TYPE_ACTUAL_ARG_TYPES (f2)
  	  && type_lists_compatible_p (args1, TYPE_ACTUAL_ARG_TYPES (f2),
! 				      enum_and_int_p, different_types_p) != 1)
! 	val = 2;
        return val;
      }
  
    /* Both types have argument lists: compare them and propagate results.  */
!   val1 = type_lists_compatible_p (args1, args2, enum_and_int_p,
! 				  different_types_p);
!   return val1 != 1 ? val1 : val;
  }
  
! /* Check two lists of types for compatibility, returning 0 for
!    incompatible, 1 for compatible, or 2 for compatible with
!    warning.  ENUM_AND_INT_P and DIFFERENT_TYPES_P are as in
!    comptypes_internal.  */
  
! static int
  type_lists_compatible_p (const_tree args1, const_tree args2,
! 			 bool *enum_and_int_p, bool *different_types_p)
  {
-   /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
-   int val = 1;
-   int newval = 0;
- 
    while (1)
      {
        tree a1, mv1, a2, mv2;
        if (args1 == NULL_TREE && args2 == NULL_TREE)
! 	return val;
        /* If one list is shorter than the other,
  	 they fail to match.  */
        if (args1 == NULL_TREE || args2 == NULL_TREE)
--- 1700,1730 ----
  	return 0;
        if (TYPE_ACTUAL_ARG_TYPES (f2)
  	  && type_lists_compatible_p (args1, TYPE_ACTUAL_ARG_TYPES (f2),
! 				      data) != 1)
! 	{
! 	  val = 1;
! 	  data->warning_needed = true;
! 	}
        return val;
      }
  
    /* Both types have argument lists: compare them and propagate results.  */
!   val1 = type_lists_compatible_p (args1, args2, data);
!   return val1;
  }
  
! /* Check two lists of types for compatibility, returning false for
!    incompatible, true for compatible.  */
  
! static bool
  type_lists_compatible_p (const_tree args1, const_tree args2,
! 			 struct comptypes_data *data)
  {
    while (1)
      {
        tree a1, mv1, a2, mv2;
        if (args1 == NULL_TREE && args2 == NULL_TREE)
! 	return true;
        /* If one list is shorter than the other,
  	 they fail to match.  */
        if (args1 == NULL_TREE || args2 == NULL_TREE)
*************** type_lists_compatible_p (const_tree args
*** 1766,1774 ****
  	 means there is supposed to be an argument
  	 but nothing is specified about what type it has.
  	 So match anything that self-promotes.  */
!       if (different_types_p != NULL
! 	  && (a1 == NULL_TREE) != (a2 == NULL_TREE))
! 	*different_types_p = true;
        if (a1 == NULL_TREE)
  	{
  	  if (c_type_promotes_to (a2) != a2)
--- 1745,1752 ----
  	 means there is supposed to be an argument
  	 but nothing is specified about what type it has.
  	 So match anything that self-promotes.  */
!       if ((a1 == NULL_TREE) != (a2 == NULL_TREE))
! 	data->different_types_p = true;
        if (a1 == NULL_TREE)
  	{
  	  if (c_type_promotes_to (a2) != a2)
*************** type_lists_compatible_p (const_tree args
*** 1783,1793 ****
        else if (TREE_CODE (a1) == ERROR_MARK
  	       || TREE_CODE (a2) == ERROR_MARK)
  	;
!       else if (!(newval = comptypes_internal (mv1, mv2, enum_and_int_p,
! 					      different_types_p)))
  	{
! 	  if (different_types_p != NULL)
! 	    *different_types_p = true;
  	  /* Allow  wait (union {union wait *u; int *i} *)
  	     and  wait (union wait *)  to be compatible.  */
  	  if (TREE_CODE (a1) == UNION_TYPE
--- 1761,1769 ----
        else if (TREE_CODE (a1) == ERROR_MARK
  	       || TREE_CODE (a2) == ERROR_MARK)
  	;
!       else if (!comptypes_internal (mv1, mv2, data))
  	{
! 	  data->different_types_p = true;
  	  /* Allow  wait (union {union wait *u; int *i} *)
  	     and  wait (union wait *)  to be compatible.  */
  	  if (TREE_CODE (a1) == UNION_TYPE
*************** type_lists_compatible_p (const_tree args
*** 1808,1815 ****
  			   ? c_build_qualified_type (TYPE_MAIN_VARIANT (mv3),
  						     TYPE_QUAL_ATOMIC)
  			   : TYPE_MAIN_VARIANT (mv3));
! 		  if (comptypes_internal (mv3, mv2, enum_and_int_p,
! 					  different_types_p))
  		    break;
  		}
  	      if (memb == NULL_TREE)
--- 1784,1790 ----
  			   ? c_build_qualified_type (TYPE_MAIN_VARIANT (mv3),
  						     TYPE_QUAL_ATOMIC)
  			   : TYPE_MAIN_VARIANT (mv3));
! 		  if (comptypes_internal (mv3, mv2, data))
  		    break;
  		}
  	      if (memb == NULL_TREE)
*************** type_lists_compatible_p (const_tree args
*** 1833,1840 ****
  			   ? c_build_qualified_type (TYPE_MAIN_VARIANT (mv3),
  						     TYPE_QUAL_ATOMIC)
  			   : TYPE_MAIN_VARIANT (mv3));
! 		  if (comptypes_internal (mv3, mv1, enum_and_int_p,
! 					  different_types_p))
  		    break;
  		}
  	      if (memb == NULL_TREE)
--- 1808,1814 ----
  			   ? c_build_qualified_type (TYPE_MAIN_VARIANT (mv3),
  						     TYPE_QUAL_ATOMIC)
  			   : TYPE_MAIN_VARIANT (mv3));
! 		  if (comptypes_internal (mv3, mv1, data))
  		    break;
  		}
  	      if (memb == NULL_TREE)
*************** type_lists_compatible_p (const_tree args
*** 1844,1853 ****
  	    return 0;
  	}
  
-       /* comptypes said ok, but record if it said to warn.  */
-       if (newval > val)
- 	val = newval;
- 
        args1 = TREE_CHAIN (args1);
        args2 = TREE_CHAIN (args2);
      }
--- 1818,1823 ----
*************** array_to_pointer_conversion (location_t
*** 1935,1941 ****
        if (!TREE_READONLY (decl) && !TREE_STATIC (decl))
  	warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wc___compat,
  		    "converting an array compound literal to a pointer "
! 		    "is ill-formed in C++");
      }
  
    adr = build_unary_op (loc, ADDR_EXPR, exp, true);
--- 1905,1911 ----
        if (!TREE_READONLY (decl) && !TREE_STATIC (decl))
  	warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wc___compat,
  		    "converting an array compound literal to a pointer "
! 		    "leads to a dangling pointer in C++");
      }
  
    adr = build_unary_op (loc, ADDR_EXPR, exp, true);
*************** mark_exp_read (tree exp)
*** 2027,2032 ****
--- 1997,2009 ----
      case C_MAYBE_CONST_EXPR:
        mark_exp_read (TREE_OPERAND (exp, 1));
        break;
+     case OMP_ARRAY_SECTION:
+       mark_exp_read (TREE_OPERAND (exp, 0));
+       if (TREE_OPERAND (exp, 1))
+ 	mark_exp_read (TREE_OPERAND (exp, 1));
+       if (TREE_OPERAND (exp, 2))
+ 	mark_exp_read (TREE_OPERAND (exp, 2));
+       break;
      default:
        break;
      }
*************** really_atomic_lvalue (tree expr)
*** 2125,2131 ****
    return true;
  }
  
! /* If EXPR is a named constant (C2x) derived from a constexpr variable
     - that is, a reference to such a variable, or a member extracted by
     a sequence of structure and union (but not array) member accesses
     (where union member accesses must access the same member as
--- 2102,2108 ----
    return true;
  }
  
! /* If EXPR is a named constant (C23) derived from a constexpr variable
     - that is, a reference to such a variable, or a member extracted by
     a sequence of structure and union (but not array) member accesses
     (where union member accesses must access the same member as
*************** convert_lvalue_to_rvalue (location_t loc
*** 2252,2257 ****
--- 2229,2263 ----
      exp.value = convert (build_qualified_type (TREE_TYPE (exp.value), TYPE_UNQUALIFIED), exp.value);
    if (force_non_npc)
      exp.value = build1 (NOP_EXPR, TREE_TYPE (exp.value), exp.value);
+ 
+   {
+     tree false_value, true_value;
+     if (convert_p && !error_operand_p (exp.value)
+ 	&& c_hardbool_type_attr (TREE_TYPE (exp.value),
+ 				 &false_value, &true_value))
+       {
+ 	tree t = save_expr (exp.value);
+ 
+ 	mark_exp_read (exp.value);
+ 
+ 	tree trapfn = builtin_decl_explicit (BUILT_IN_TRAP);
+ 	tree expr = build_call_expr_loc (loc, trapfn, 0);
+ 	expr = build_compound_expr (loc, expr, boolean_true_node);
+ 	expr = fold_build3_loc (loc, COND_EXPR, boolean_type_node,
+ 				fold_build2_loc (loc, NE_EXPR,
+ 						 boolean_type_node,
+ 						 t, true_value),
+ 				expr, boolean_true_node);
+ 	expr = fold_build3_loc (loc, COND_EXPR, boolean_type_node,
+ 				fold_build2_loc (loc, NE_EXPR,
+ 						 boolean_type_node,
+ 						 t, false_value),
+ 				expr, boolean_false_node);
+ 
+ 	exp.value = expr;
+       }
+   }
+ 
    return exp;
  }
  
*************** perform_integral_promotions (tree exp)
*** 2286,2297 ****
    /* ??? This should no longer be needed now bit-fields have their
       proper types.  */
    if (TREE_CODE (exp) == COMPONENT_REF
!       && DECL_C_BIT_FIELD (TREE_OPERAND (exp, 1))
        /* If it's thinner than an int, promote it like a
  	 c_promoting_integer_type_p, otherwise leave it alone.  */
!       && compare_tree_int (DECL_SIZE (TREE_OPERAND (exp, 1)),
! 			   TYPE_PRECISION (integer_type_node)) < 0)
!     return convert (integer_type_node, exp);
  
    if (c_promoting_integer_type_p (type))
      {
--- 2292,2308 ----
    /* ??? This should no longer be needed now bit-fields have their
       proper types.  */
    if (TREE_CODE (exp) == COMPONENT_REF
!       && DECL_C_BIT_FIELD (TREE_OPERAND (exp, 1)))
!     {
!       if (TREE_CODE (DECL_BIT_FIELD_TYPE (TREE_OPERAND (exp, 1)))
! 	  == BITINT_TYPE)
! 	return convert (DECL_BIT_FIELD_TYPE (TREE_OPERAND (exp, 1)), exp);
        /* If it's thinner than an int, promote it like a
  	 c_promoting_integer_type_p, otherwise leave it alone.  */
!       if (compare_tree_int (DECL_SIZE (TREE_OPERAND (exp, 1)),
! 			    TYPE_PRECISION (integer_type_node)) < 0)
! 	return convert (integer_type_node, exp);
!     }
  
    if (c_promoting_integer_type_p (type))
      {
*************** build_component_ref (location_t loc, tre
*** 2662,2668 ****
        /* Special-case the error message for "ptr.field" for the case
  	 where the user has confused "." vs "->".  */
        rich_location richloc (line_table, loc);
!       if (TREE_CODE (datum) == INDIRECT_REF && arrow_loc != UNKNOWN_LOCATION)
  	{
  	  richloc.add_fixit_insert_before (arrow_loc, "(*");
  	  richloc.add_fixit_insert_after (arrow_loc, ")");
--- 2673,2679 ----
        /* Special-case the error message for "ptr.field" for the case
  	 where the user has confused "." vs "->".  */
        rich_location richloc (line_table, loc);
!       if (INDIRECT_REF_P (datum) && arrow_loc != UNKNOWN_LOCATION)
  	{
  	  richloc.add_fixit_insert_before (arrow_loc, "(*");
  	  richloc.add_fixit_insert_after (arrow_loc, ")");
*************** build_array_ref (location_t loc, tree ar
*** 2816,2822 ****
    if (index == error_mark_node)
      return error_mark_node;
  
!   gcc_assert (TREE_CODE (TREE_TYPE (index)) == INTEGER_TYPE);
  
    bool was_vector = VECTOR_TYPE_P (TREE_TYPE (array));
    bool non_lvalue = convert_vector_to_array_for_subscript (loc, &array, index);
--- 2827,2834 ----
    if (index == error_mark_node)
      return error_mark_node;
  
!   gcc_assert (TREE_CODE (TREE_TYPE (index)) == INTEGER_TYPE
! 	      || TREE_CODE (TREE_TYPE (index)) == BITINT_TYPE);
  
    bool was_vector = VECTOR_TYPE_P (TREE_TYPE (array));
    bool non_lvalue = convert_vector_to_array_for_subscript (loc, &array, index);
*************** build_array_ref (location_t loc, tree ar
*** 2863,2868 ****
--- 2875,2884 ----
  			 "array");
  	}
  
+       if (TREE_CODE (TREE_TYPE (index)) == BITINT_TYPE
+ 	  && TYPE_PRECISION (TREE_TYPE (index)) > TYPE_PRECISION (sizetype))
+ 	index = fold_convert (sizetype, index);
+ 
        type = TREE_TYPE (TREE_TYPE (array));
        rval = build4 (ARRAY_REF, type, array, index, NULL_TREE, NULL_TREE);
        /* Array ref is const/volatile if the array elements are
*************** build_array_ref (location_t loc, tree ar
*** 2904,2909 ****
--- 2920,2972 ----
        return ret;
      }
  }
+ 
+ /* Build an OpenMP array section reference, creating an exact type for the
+    resulting expression based on the element type and bounds if possible.  If
+    we have variable bounds, create an incomplete array type for the result
+    instead.  */
+ 
+ tree
+ build_omp_array_section (location_t loc, tree array, tree index, tree length)
+ {
+   tree type = TREE_TYPE (array);
+   gcc_assert (type);
+ 
+   tree sectype, eltype = TREE_TYPE (type);
+ 
+   /* It's not an array or pointer type.  Just reuse the type of the original
+      expression as the type of the array section (an error will be raised
+      anyway, later).  */
+   if (eltype == NULL_TREE || error_operand_p (eltype))
+     sectype = TREE_TYPE (array);
+   else
+     {
+       tree idxtype = NULL_TREE;
+ 
+       if (index != NULL_TREE
+ 	  && length != NULL_TREE
+ 	  && INTEGRAL_TYPE_P (TREE_TYPE (index))
+ 	  && INTEGRAL_TYPE_P (TREE_TYPE (length)))
+ 	{
+ 	  tree low = fold_convert (sizetype, index);
+ 	  tree high = fold_convert (sizetype, length);
+ 	  high = size_binop (PLUS_EXPR, low, high);
+ 	  high = size_binop (MINUS_EXPR, high, size_one_node);
+ 	  idxtype = build_range_type (sizetype, low, high);
+ 	}
+       else if ((index == NULL_TREE || integer_zerop (index))
+ 	       && length != NULL_TREE
+ 	       && INTEGRAL_TYPE_P (TREE_TYPE (length)))
+ 	idxtype = build_index_type (length);
+ 
+       gcc_assert (!error_operand_p (idxtype));
+ 
+       sectype = build_array_type (eltype, idxtype);
+     }
+ 
+   return build3_loc (loc, OMP_ARRAY_SECTION, sectype, array, index, length);
+ }
+ 
  
  /* Build an external reference to identifier ID.  FUN indicates
     whether this will be used for a function call.  LOC is the source
*************** build_external_ref (location_t loc, tree
*** 2943,2949 ****
        return error_mark_node;
      }
  
!   if (TREE_TYPE (ref) == error_mark_node)
      return error_mark_node;
  
    if (TREE_UNAVAILABLE (ref))
--- 3006,3016 ----
        return error_mark_node;
      }
  
!   /* For an OpenMP map clause, we can get better diagnostics for decls with
!      unmappable types if we return the decl with an error_mark_node type,
!      rather than returning error_mark_node for the decl itself.  */
!   if (TREE_TYPE (ref) == error_mark_node
!       && !c_omp_array_section_p)
      return error_mark_node;
  
    if (TREE_UNAVAILABLE (ref))
*************** convert_argument (location_t ploc, tree
*** 3404,3420 ****
      {
        error_at (ploc, "type of formal parameter %d is incomplete",
  		parmnum + 1);
!       return val;
      }
  
    /* Optionally warn about conversions that differ from the default
       conversions.  */
    if (warn_traditional_conversion || warn_traditional)
      {
-       unsigned int formal_prec = TYPE_PRECISION (type);
- 
        if (INTEGRAL_TYPE_P (type)
! 	  && TREE_CODE (valtype) == REAL_TYPE)
  	warning_at (ploc, OPT_Wtraditional_conversion,
  		    "passing argument %d of %qE as integer rather "
  		    "than floating due to prototype",
--- 3471,3485 ----
      {
        error_at (ploc, "type of formal parameter %d is incomplete",
  		parmnum + 1);
!       return error_mark_node;
      }
  
    /* Optionally warn about conversions that differ from the default
       conversions.  */
    if (warn_traditional_conversion || warn_traditional)
      {
        if (INTEGRAL_TYPE_P (type)
! 	  && SCALAR_FLOAT_TYPE_P (valtype))
  	warning_at (ploc, OPT_Wtraditional_conversion,
  		    "passing argument %d of %qE as integer rather "
  		    "than floating due to prototype",
*************** convert_argument (location_t ploc, tree
*** 3426,3437 ****
  		    "than complex due to prototype",
  		    argnum, rname);
        else if (TREE_CODE (type) == COMPLEX_TYPE
! 	       && TREE_CODE (valtype) == REAL_TYPE)
  	warning_at (ploc, OPT_Wtraditional_conversion,
  		    "passing argument %d of %qE as complex rather "
  		    "than floating due to prototype",
  		    argnum, rname);
!       else if (TREE_CODE (type) == REAL_TYPE
  	       && INTEGRAL_TYPE_P (valtype))
  	warning_at (ploc, OPT_Wtraditional_conversion,
  		    "passing argument %d of %qE as floating rather "
--- 3491,3502 ----
  		    "than complex due to prototype",
  		    argnum, rname);
        else if (TREE_CODE (type) == COMPLEX_TYPE
! 	       && SCALAR_FLOAT_TYPE_P (valtype))
  	warning_at (ploc, OPT_Wtraditional_conversion,
  		    "passing argument %d of %qE as complex rather "
  		    "than floating due to prototype",
  		    argnum, rname);
!       else if (SCALAR_FLOAT_TYPE_P (type)
  	       && INTEGRAL_TYPE_P (valtype))
  	warning_at (ploc, OPT_Wtraditional_conversion,
  		    "passing argument %d of %qE as floating rather "
*************** convert_argument (location_t ploc, tree
*** 3443,3449 ****
  		    "passing argument %d of %qE as complex rather "
  		    "than integer due to prototype",
  		    argnum, rname);
!       else if (TREE_CODE (type) == REAL_TYPE
  	       && TREE_CODE (valtype) == COMPLEX_TYPE)
  	warning_at (ploc, OPT_Wtraditional_conversion,
  		    "passing argument %d of %qE as floating rather "
--- 3508,3514 ----
  		    "passing argument %d of %qE as complex rather "
  		    "than integer due to prototype",
  		    argnum, rname);
!       else if (SCALAR_FLOAT_TYPE_P (type)
  	       && TREE_CODE (valtype) == COMPLEX_TYPE)
  	warning_at (ploc, OPT_Wtraditional_conversion,
  		    "passing argument %d of %qE as floating rather "
*************** convert_argument (location_t ploc, tree
*** 3452,3460 ****
        /* ??? At some point, messages should be written about
  	 conversions between complex types, but that's too messy
  	 to do now.  */
!       else if (TREE_CODE (type) == REAL_TYPE
! 	       && TREE_CODE (valtype) == REAL_TYPE)
  	{
  	  /* Warn if any argument is passed as `float',
  	     since without a prototype it would be `double'.  */
  	  if (formal_prec == TYPE_PRECISION (float_type_node)
--- 3517,3527 ----
        /* ??? At some point, messages should be written about
  	 conversions between complex types, but that's too messy
  	 to do now.  */
!       else if (SCALAR_FLOAT_TYPE_P (type)
! 	       && SCALAR_FLOAT_TYPE_P (valtype))
  	{
+ 	  unsigned int formal_prec = TYPE_PRECISION (type);
+ 
  	  /* Warn if any argument is passed as `float',
  	     since without a prototype it would be `double'.  */
  	  if (formal_prec == TYPE_PRECISION (float_type_node)
*************** convert_argument (location_t ploc, tree
*** 3498,3503 ****
--- 3565,3571 ----
  	       && INTEGRAL_TYPE_P (type)
  	       && INTEGRAL_TYPE_P (valtype))
  	{
+ 	  unsigned int formal_prec = TYPE_PRECISION (type);
  	  tree would_have_been = default_conversion (val);
  	  tree type1 = TREE_TYPE (would_have_been);
  
*************** convert_arguments (location_t loc, vec<l
*** 3596,3601 ****
--- 3664,3670 ----
      && lookup_attribute ("type generic", TYPE_ATTRIBUTES (TREE_TYPE (fundecl)));
    bool type_generic_remove_excess_precision = false;
    bool type_generic_overflow_p = false;
+   bool type_generic_bit_query = false;
    tree selector;
  
    /* Change pointer to function to the function itself for
*************** convert_arguments (location_t loc, vec<l
*** 3651,3656 ****
--- 3720,3736 ----
  	    type_generic_overflow_p = true;
  	    break;
  
+ 	  case BUILT_IN_CLZG:
+ 	  case BUILT_IN_CTZG:
+ 	  case BUILT_IN_CLRSBG:
+ 	  case BUILT_IN_FFSG:
+ 	  case BUILT_IN_PARITYG:
+ 	  case BUILT_IN_POPCOUNTG:
+ 	    /* The first argument of these type-generic builtins
+ 	       should not be promoted.  */
+ 	    type_generic_bit_query = true;
+ 	    break;
+ 
  	  default:
  	    break;
  	  }
*************** convert_arguments (location_t loc, vec<l
*** 3786,3796 ****
  	    }
  	}
        else if ((excess_precision && !type_generic)
! 	       || (type_generic_overflow_p && parmnum == 2))
  	/* A "double" argument with excess precision being passed
  	   without a prototype or in variable arguments.
  	   The last argument of __builtin_*_overflow_p should not be
! 	   promoted.  */
  	parmval = convert (valtype, val);
        else if ((invalid_func_diag =
  		targetm.calls.invalid_arg_for_unprototyped_fn (typelist, fundecl, val)))
--- 3866,3878 ----
  	    }
  	}
        else if ((excess_precision && !type_generic)
! 	       || (type_generic_overflow_p && parmnum == 2)
! 	       || (type_generic_bit_query && parmnum == 0))
  	/* A "double" argument with excess precision being passed
  	   without a prototype or in variable arguments.
  	   The last argument of __builtin_*_overflow_p should not be
! 	   promoted, similarly the first argument of
! 	   __builtin_{clz,ctz,clrsb,ffs,parity,popcount}g.  */
  	parmval = convert (valtype, val);
        else if ((invalid_func_diag =
  		targetm.calls.invalid_arg_for_unprototyped_fn (typelist, fundecl, val)))
*************** pointer_diff (location_t loc, tree op0,
*** 4131,4137 ****
    else
      inttype = restype;
  
!   if (TREE_CODE (target_type) == VOID_TYPE)
      pedwarn (loc, OPT_Wpointer_arith,
  	     "pointer of type %<void *%> used in subtraction");
    if (TREE_CODE (target_type) == FUNCTION_TYPE)
--- 4213,4219 ----
    else
      inttype = restype;
  
!   if (VOID_TYPE_P (target_type))
      pedwarn (loc, OPT_Wpointer_arith,
  	     "pointer of type %<void *%> used in subtraction");
    if (TREE_CODE (target_type) == FUNCTION_TYPE)
*************** build_unary_op (location_t location, enu
*** 4583,4588 ****
--- 4665,4671 ----
  	 associativity, but won't generate any code.  */
        if (!(typecode == INTEGER_TYPE || typecode == REAL_TYPE
  	    || typecode == FIXED_POINT_TYPE || typecode == COMPLEX_TYPE
+ 	    || typecode == BITINT_TYPE
  	    || gnu_vector_type_p (TREE_TYPE (arg))))
  	{
  	  error_at (location, "wrong type argument to unary plus");
*************** build_unary_op (location_t location, enu
*** 4596,4601 ****
--- 4679,4685 ----
      case NEGATE_EXPR:
        if (!(typecode == INTEGER_TYPE || typecode == REAL_TYPE
  	    || typecode == FIXED_POINT_TYPE || typecode == COMPLEX_TYPE
+ 	    || typecode == BITINT_TYPE
  	    || gnu_vector_type_p (TREE_TYPE (arg))))
  	{
  	  error_at (location, "wrong type argument to unary minus");
*************** build_unary_op (location_t location, enu
*** 4608,4613 ****
--- 4692,4698 ----
      case BIT_NOT_EXPR:
        /* ~ works on integer types and non float vectors. */
        if (typecode == INTEGER_TYPE
+ 	  || typecode == BITINT_TYPE
  	  || (gnu_vector_type_p (TREE_TYPE (arg))
  	      && !VECTOR_FLOAT_TYPE_P (TREE_TYPE (arg))))
  	{
*************** build_unary_op (location_t location, enu
*** 4682,4688 ****
      case TRUTH_NOT_EXPR:
        if (typecode != INTEGER_TYPE && typecode != FIXED_POINT_TYPE
  	  && typecode != REAL_TYPE && typecode != POINTER_TYPE
! 	  && typecode != COMPLEX_TYPE && typecode != NULLPTR_TYPE)
  	{
  	  error_at (location,
  		    "wrong type argument to unary exclamation mark");
--- 4767,4774 ----
      case TRUTH_NOT_EXPR:
        if (typecode != INTEGER_TYPE && typecode != FIXED_POINT_TYPE
  	  && typecode != REAL_TYPE && typecode != POINTER_TYPE
! 	  && typecode != COMPLEX_TYPE && typecode != NULLPTR_TYPE
! 	  && typecode != BITINT_TYPE)
  	{
  	  error_at (location,
  		    "wrong type argument to unary exclamation mark");
*************** build_unary_op (location_t location, enu
*** 4794,4800 ****
  
        if (typecode != POINTER_TYPE && typecode != FIXED_POINT_TYPE
  	  && typecode != INTEGER_TYPE && typecode != REAL_TYPE
! 	  && typecode != COMPLEX_TYPE
  	  && !gnu_vector_type_p (TREE_TYPE (arg)))
  	{
  	  if (code == PREINCREMENT_EXPR || code == POSTINCREMENT_EXPR)
--- 4880,4886 ----
  
        if (typecode != POINTER_TYPE && typecode != FIXED_POINT_TYPE
  	  && typecode != INTEGER_TYPE && typecode != REAL_TYPE
! 	  && typecode != COMPLEX_TYPE && typecode != BITINT_TYPE
  	  && !gnu_vector_type_p (TREE_TYPE (arg)))
  	{
  	  if (code == PREINCREMENT_EXPR || code == POSTINCREMENT_EXPR)
*************** build_unary_op (location_t location, enu
*** 4828,4834 ****
  			    TREE_TYPE (argtype));
  	      }
  	    else if (TREE_CODE (TREE_TYPE (argtype)) == FUNCTION_TYPE
! 		     || TREE_CODE (TREE_TYPE (argtype)) == VOID_TYPE)
  	      {
  		if (code == PREINCREMENT_EXPR || code == POSTINCREMENT_EXPR)
  		  pedwarn (location, OPT_Wpointer_arith,
--- 4914,4920 ----
  			    TREE_TYPE (argtype));
  	      }
  	    else if (TREE_CODE (TREE_TYPE (argtype)) == FUNCTION_TYPE
! 		     || VOID_TYPE_P (TREE_TYPE (argtype)))
  	      {
  		if (code == PREINCREMENT_EXPR || code == POSTINCREMENT_EXPR)
  		  pedwarn (location, OPT_Wpointer_arith,
*************** build_conditional_expr (location_t colon
*** 5376,5384 ****
    if ((TREE_CODE (op1) == EXCESS_PRECISION_EXPR
         || TREE_CODE (op2) == EXCESS_PRECISION_EXPR)
        && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
! 	  || code1 == COMPLEX_TYPE)
        && (code2 == INTEGER_TYPE || code2 == REAL_TYPE
! 	  || code2 == COMPLEX_TYPE))
      {
        semantic_result_type = c_common_type (type1, type2);
        if (TREE_CODE (op1) == EXCESS_PRECISION_EXPR)
--- 5462,5470 ----
    if ((TREE_CODE (op1) == EXCESS_PRECISION_EXPR
         || TREE_CODE (op2) == EXCESS_PRECISION_EXPR)
        && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
! 	  || code1 == COMPLEX_TYPE || code1 == BITINT_TYPE)
        && (code2 == INTEGER_TYPE || code2 == REAL_TYPE
! 	  || code2 == COMPLEX_TYPE || code2 == BITINT_TYPE))
      {
        semantic_result_type = c_common_type (type1, type2);
        if (TREE_CODE (op1) == EXCESS_PRECISION_EXPR)
*************** build_conditional_expr (location_t colon
*** 5419,5427 ****
  	result_type = TYPE_MAIN_VARIANT (type1);
      }
    else if ((code1 == INTEGER_TYPE || code1 == REAL_TYPE
! 	    || code1 == COMPLEX_TYPE)
  	   && (code2 == INTEGER_TYPE || code2 == REAL_TYPE
! 	       || code2 == COMPLEX_TYPE))
      {
        /* In C11, a conditional expression between a floating-point
  	 type and an integer type should convert the integer type to
--- 5505,5513 ----
  	result_type = TYPE_MAIN_VARIANT (type1);
      }
    else if ((code1 == INTEGER_TYPE || code1 == REAL_TYPE
! 	    || code1 == COMPLEX_TYPE || code1 == BITINT_TYPE)
  	   && (code2 == INTEGER_TYPE || code2 == REAL_TYPE
! 	       || code2 == COMPLEX_TYPE || code2 == BITINT_TYPE))
      {
        /* In C11, a conditional expression between a floating-point
  	 type and an integer type should convert the integer type to
*************** build_conditional_expr (location_t colon
*** 5572,5592 ****
  	  if ((TREE_CODE (t2) == ARRAY_TYPE)
  	      && (TYPE_QUALS (t2_stripped) & ~TYPE_QUALS (t1)))
  	    {
! 	      if (!flag_isoc2x)
  		warning_at (colon_loc, OPT_Wdiscarded_array_qualifiers,
  			    "pointer to array loses qualifier "
  			    "in conditional expression");
! 	      else if (warn_c11_c2x_compat > 0)
! 		warning_at (colon_loc, OPT_Wc11_c2x_compat,
  			    "pointer to array loses qualifier "
! 			    "in conditional expression in ISO C before C2X");
  	    }
  	  if (TREE_CODE (t2) == FUNCTION_TYPE)
  	    pedwarn (colon_loc, OPT_Wpedantic,
  		     "ISO C forbids conditional expr between "
  		     "%<void *%> and function pointer");
  	  /* for array, use qualifiers of element type */
! 	  if (flag_isoc2x)
  	    t2 = t2_stripped;
  	  result_type = build_pointer_type (qualify_type (t1, t2));
  	}
--- 5658,5678 ----
  	  if ((TREE_CODE (t2) == ARRAY_TYPE)
  	      && (TYPE_QUALS (t2_stripped) & ~TYPE_QUALS (t1)))
  	    {
! 	      if (!flag_isoc23)
  		warning_at (colon_loc, OPT_Wdiscarded_array_qualifiers,
  			    "pointer to array loses qualifier "
  			    "in conditional expression");
! 	      else if (warn_c11_c23_compat > 0)
! 		warning_at (colon_loc, OPT_Wc11_c23_compat,
  			    "pointer to array loses qualifier "
! 			    "in conditional expression in ISO C before C23");
  	    }
  	  if (TREE_CODE (t2) == FUNCTION_TYPE)
  	    pedwarn (colon_loc, OPT_Wpedantic,
  		     "ISO C forbids conditional expr between "
  		     "%<void *%> and function pointer");
  	  /* for array, use qualifiers of element type */
! 	  if (flag_isoc23)
  	    t2 = t2_stripped;
  	  result_type = build_pointer_type (qualify_type (t1, t2));
  	}
*************** build_conditional_expr (location_t colon
*** 5596,5629 ****
        else
  	{
  	  int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
! 	  if (bltin1 && bltin2)
! 	    warning_at (colon_loc, OPT_Wincompatible_pointer_types,
! 			"pointer type mismatch between %qT and %qT "
! 			"of %qD and %qD in conditional expression",
! 			type1, type2, bltin1, bltin2);
! 	  else
! 	    pedwarn (colon_loc, 0,
! 		     "pointer type mismatch in conditional expression");
  	  result_type = build_pointer_type
  			  (build_qualified_type (void_type_node, qual));
  	}
      }
!   else if (code1 == POINTER_TYPE && code2 == INTEGER_TYPE)
      {
        if (!null_pointer_constant_p (orig_op2))
! 	pedwarn (colon_loc, 0,
! 		 "pointer/integer type mismatch in conditional expression");
        else
  	{
  	  op2 = null_pointer_node;
  	}
        result_type = type1;
      }
!   else if (code2 == POINTER_TYPE && code1 == INTEGER_TYPE)
      {
        if (!null_pointer_constant_p (orig_op1))
! 	pedwarn (colon_loc, 0,
! 		 "pointer/integer type mismatch in conditional expression");
        else
  	{
  	  op1 = null_pointer_node;
--- 5682,5726 ----
        else
  	{
  	  int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
! 	  diagnostic_t kind = DK_PERMERROR;
! 	  if (!flag_isoc99)
! 	    /* This downgrade to a warning ensures that -std=gnu89
! 	       -pedantic-errors does not flag these mismatches between
! 	       builtins as errors (as DK_PERMERROR would).  ISO C99
! 	       and later do not have implicit function declarations,
! 	       so the mismatch cannot occur naturally there.  */
! 	    kind = bltin1 && bltin2 ? DK_WARNING : DK_PEDWARN;
! 	  if (emit_diagnostic (kind, colon_loc, OPT_Wincompatible_pointer_types,
! 			       "pointer type mismatch "
! 			       "in conditional expression"))
! 	    {
! 	      inform (op1_loc, "first expression has type %qT", type1);
! 	      inform (op2_loc, "second expression has type %qT", type2);
! 	    }
  	  result_type = build_pointer_type
  			  (build_qualified_type (void_type_node, qual));
  	}
      }
!   else if (code1 == POINTER_TYPE
! 	   && (code2 == INTEGER_TYPE || code2 == BITINT_TYPE))
      {
        if (!null_pointer_constant_p (orig_op2))
! 	permerror_opt (colon_loc, OPT_Wint_conversion,
! 		       "pointer/integer type mismatch "
! 		       "in conditional expression");
        else
  	{
  	  op2 = null_pointer_node;
  	}
        result_type = type1;
      }
!   else if (code2 == POINTER_TYPE
! 	   && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
      {
        if (!null_pointer_constant_p (orig_op1))
! 	permerror_opt (colon_loc, OPT_Wint_conversion,
! 		       "pointer/integer type mismatch "
! 		       "in conditional expression");
        else
  	{
  	  op1 = null_pointer_node;
*************** build_conditional_expr (location_t colon
*** 5637,5642 ****
--- 5734,5744 ----
      result_type = type2;
    else if (code1 == POINTER_TYPE && code2 == NULLPTR_TYPE)
      result_type = type1;
+   else if (RECORD_OR_UNION_TYPE_P (type1) && RECORD_OR_UNION_TYPE_P (type2)
+ 	   && comptypes (TYPE_MAIN_VARIANT (type1),
+ 			 TYPE_MAIN_VARIANT (type2)))
+     result_type = composite_type (TYPE_MAIN_VARIANT (type1),
+ 				  TYPE_MAIN_VARIANT (type2));
  
    if (!result_type)
      {
*************** handle_warn_cast_qual (location_t loc, t
*** 5990,5995 ****
--- 6092,6100 ----
  static bool
  c_safe_arg_type_equiv_p (tree t1, tree t2)
  {
+   if (error_operand_p (t1) || error_operand_p (t2))
+     return true;
+ 
    t1 = TYPE_MAIN_VARIANT (t1);
    t2 = TYPE_MAIN_VARIANT (t2);
  
*************** build_c_cast (location_t loc, tree type,
*** 6087,6095 ****
  
    if (type == TYPE_MAIN_VARIANT (TREE_TYPE (value)))
      {
!       if (RECORD_OR_UNION_TYPE_P (type))
! 	pedwarn (loc, OPT_Wpedantic,
! 		 "ISO C forbids casting nonscalar to the same type");
  
        /* Convert to remove any qualifiers from VALUE's type.  */
        value = convert (type, value);
--- 6192,6204 ----
  
    if (type == TYPE_MAIN_VARIANT (TREE_TYPE (value)))
      {
!       if (RECORD_OR_UNION_TYPE_P (type)
! 	  && pedwarn (loc, OPT_Wpedantic,
! 		      "ISO C forbids casting nonscalar to the same type"))
! 	      ;
!       else if (warn_useless_cast)
! 	warning_at (loc, OPT_Wuseless_cast,
! 		    "useless cast to type %qT", type);
  
        /* Convert to remove any qualifiers from VALUE's type.  */
        value = convert (type, value);
*************** build_c_cast (location_t loc, tree type,
*** 6169,6174 ****
--- 6278,6296 ----
  			    c_addr_space_name (as_to),
  			    c_addr_space_name (as_from));
  	    }
+ 
+ 	  /* Warn of new allocations that are not big enough for the target
+ 	     type.  */
+ 	  if (warn_alloc_size && TREE_CODE (value) == CALL_EXPR)
+ 	    if (tree fndecl = get_callee_fndecl (value))
+ 	      if (DECL_IS_MALLOC (fndecl))
+ 		{
+ 		  tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (fndecl));
+ 		  tree alloc_size = lookup_attribute ("alloc_size", attrs);
+ 		  if (alloc_size)
+ 		    warn_for_alloc_size (loc, TREE_TYPE (type), value,
+ 					 alloc_size);
+ 		}
  	}
  
        /* Warn about possible alignment problems.  */
*************** build_c_cast (location_t loc, tree type,
*** 6186,6192 ****
  	warning_at (loc, OPT_Wcast_align,
  		    "cast increases required alignment of target type");
  
!       if (TREE_CODE (type) == INTEGER_TYPE
  	  && TREE_CODE (otype) == POINTER_TYPE
  	  && TYPE_PRECISION (type) != TYPE_PRECISION (otype))
        /* Unlike conversion of integers to pointers, where the
--- 6308,6315 ----
  	warning_at (loc, OPT_Wcast_align,
  		    "cast increases required alignment of target type");
  
!       if ((TREE_CODE (type) == INTEGER_TYPE
! 	   || TREE_CODE (type) == BITINT_TYPE)
  	  && TREE_CODE (otype) == POINTER_TYPE
  	  && TYPE_PRECISION (type) != TYPE_PRECISION (otype))
        /* Unlike conversion of integers to pointers, where the
*************** build_c_cast (location_t loc, tree type,
*** 6204,6210 ****
  		    "to non-matching type %qT", otype, type);
  
        if (TREE_CODE (type) == POINTER_TYPE
! 	  && TREE_CODE (otype) == INTEGER_TYPE
  	  && TYPE_PRECISION (type) != TYPE_PRECISION (otype)
  	  /* Don't warn about converting any constant.  */
  	  && !TREE_CONSTANT (value))
--- 6327,6334 ----
  		    "to non-matching type %qT", otype, type);
  
        if (TREE_CODE (type) == POINTER_TYPE
! 	  && (TREE_CODE (otype) == INTEGER_TYPE
! 	      || TREE_CODE (otype) == BITINT_TYPE)
  	  && TYPE_PRECISION (type) != TYPE_PRECISION (otype)
  	  /* Don't warn about converting any constant.  */
  	  && !TREE_CONSTANT (value))
*************** build_c_cast (location_t loc, tree type,
*** 6246,6257 ****
  		    " from %qT to %qT", otype, type);
  
        ovalue = value;
        value = convert (type, value);
  
        /* Ignore any integer overflow caused by the cast.  */
        if (TREE_CODE (value) == INTEGER_CST && !FLOAT_TYPE_P (otype))
  	{
! 	  if (CONSTANT_CLASS_P (ovalue) && TREE_OVERFLOW (ovalue))
  	    {
  	      if (!TREE_OVERFLOW (value))
  		{
--- 6370,6397 ----
  		    " from %qT to %qT", otype, type);
  
        ovalue = value;
+       /* If converting to boolean a value with integer operands that
+ 	 is not itself represented as an INTEGER_CST, the call below
+ 	 to note_integer_operands may insert a C_MAYBE_CONST_EXPR, but
+ 	 build_binary_op as called by c_common_truthvalue_conversion
+ 	 may also insert a C_MAYBE_CONST_EXPR to indicate that a
+ 	 subexpression has been fully folded.  To avoid nested
+ 	 C_MAYBE_CONST_EXPR, ensure that
+ 	 c_objc_common_truthvalue_conversion receives an argument
+ 	 properly marked as having integer operands in that case.  */
+       if (int_operands
+ 	  && TREE_CODE (value) != INTEGER_CST
+ 	  && (TREE_CODE (type) == BOOLEAN_TYPE
+ 	      || (TREE_CODE (type) == ENUMERAL_TYPE
+ 		  && ENUM_UNDERLYING_TYPE (type) != NULL_TREE
+ 		  && TREE_CODE (ENUM_UNDERLYING_TYPE (type)) == BOOLEAN_TYPE)))
+ 	value = note_integer_operands (value);
        value = convert (type, value);
  
        /* Ignore any integer overflow caused by the cast.  */
        if (TREE_CODE (value) == INTEGER_CST && !FLOAT_TYPE_P (otype))
  	{
! 	  if (TREE_OVERFLOW_P (ovalue))
  	    {
  	      if (!TREE_OVERFLOW (value))
  		{
*************** build_modify_expr (location_t location,
*** 6477,6483 ****
    if (TREE_CODE (lhs) == COMPONENT_REF
        && (TREE_CODE (lhstype) == INTEGER_TYPE
  	  || TREE_CODE (lhstype) == BOOLEAN_TYPE
! 	  || TREE_CODE (lhstype) == REAL_TYPE
  	  || TREE_CODE (lhstype) == ENUMERAL_TYPE))
      lhstype = TREE_TYPE (get_unwidened (lhs, 0));
  
--- 6617,6623 ----
    if (TREE_CODE (lhs) == COMPONENT_REF
        && (TREE_CODE (lhstype) == INTEGER_TYPE
  	  || TREE_CODE (lhstype) == BOOLEAN_TYPE
! 	  || SCALAR_FLOAT_TYPE_P (lhstype)
  	  || TREE_CODE (lhstype) == ENUMERAL_TYPE))
      lhstype = TREE_TYPE (get_unwidened (lhs, 0));
  
*************** error_init (location_t loc, const char *
*** 6710,6737 ****
      inform (loc, "(near initialization for %qs)", ofwhat);
  }
  
! /* Issue a pedantic warning for a bad initializer component.  OPT is
!    the option OPT_* (from options.h) controlling this warning or 0 if
!    it is unconditionally given.  GMSGID identifies the message.  The
!    component name is taken from the spelling stack.  */
  
  static void ATTRIBUTE_GCC_DIAG (3,0)
! pedwarn_init (location_t loc, int opt, const char *gmsgid, ...)
  {
    /* Use the location where a macro was expanded rather than where
       it was defined to make sure macros defined in system headers
       but used incorrectly elsewhere are diagnosed.  */
    location_t exploc = expansion_point_location_if_in_system_header (loc);
    auto_diagnostic_group d;
!   va_list ap;
!   va_start (ap, gmsgid);
!   bool warned = emit_diagnostic_valist (DK_PEDWARN, exploc, opt, gmsgid, &ap);
!   va_end (ap);
    char *ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
    if (*ofwhat && warned)
      inform (exploc, "(near initialization for %qs)", ofwhat);
  }
  
  /* Issue a warning for a bad initializer component.
  
     OPT is the OPT_W* value corresponding to the warning option that
--- 6850,6897 ----
      inform (loc, "(near initialization for %qs)", ofwhat);
  }
  
! /* Used to implement pedwarn_init and permerror_init.  */
  
  static void ATTRIBUTE_GCC_DIAG (3,0)
! pedwarn_permerror_init (location_t loc, int opt, const char *gmsgid,
! 			va_list *ap, diagnostic_t kind)
  {
    /* Use the location where a macro was expanded rather than where
       it was defined to make sure macros defined in system headers
       but used incorrectly elsewhere are diagnosed.  */
    location_t exploc = expansion_point_location_if_in_system_header (loc);
    auto_diagnostic_group d;
!   bool warned = emit_diagnostic_valist (kind, exploc, opt, gmsgid, ap);
    char *ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
    if (*ofwhat && warned)
      inform (exploc, "(near initialization for %qs)", ofwhat);
  }
  
+ /* Issue a pedantic warning for a bad initializer component.  OPT is
+    the option OPT_* (from options.h) controlling this warning or 0 if
+    it is unconditionally given.  GMSGID identifies the message.  The
+    component name is taken from the spelling stack.  */
+ 
+ static void ATTRIBUTE_GCC_DIAG (3,0)
+ pedwarn_init (location_t loc, int opt, const char *gmsgid, ...)
+ {
+   va_list ap;
+   va_start (ap, gmsgid);
+   pedwarn_permerror_init (loc, opt, gmsgid, &ap, DK_PEDWARN);
+   va_end (ap);
+ }
+ 
+ /* Like pedwarn_init, but issue a permerror.  */
+ 
+ static void ATTRIBUTE_GCC_DIAG (3,0)
+ permerror_init (location_t loc, int opt, const char *gmsgid, ...)
+ {
+   va_list ap;
+   va_start (ap, gmsgid);
+   pedwarn_permerror_init (loc, opt, gmsgid, &ap, DK_PERMERROR);
+   va_end (ap);
+ }
+ 
  /* Issue a warning for a bad initializer component.
  
     OPT is the OPT_W* value corresponding to the warning option that
*************** convert_for_assignment (location_t locat
*** 7082,7088 ****
        if (checktype != error_mark_node
  	  && TREE_CODE (checktype) == ENUMERAL_TYPE
  	  && TREE_CODE (type) == ENUMERAL_TYPE
! 	  && TYPE_MAIN_VARIANT (checktype) != TYPE_MAIN_VARIANT (type))
         {
  	  gcc_rich_location loc (location);
  	  warning_at (&loc, OPT_Wenum_conversion,
--- 7242,7248 ----
        if (checktype != error_mark_node
  	  && TREE_CODE (checktype) == ENUMERAL_TYPE
  	  && TREE_CODE (type) == ENUMERAL_TYPE
! 	  && !comptypes (TYPE_MAIN_VARIANT (checktype), TYPE_MAIN_VARIANT (type)))
         {
  	  gcc_rich_location loc (location);
  	  warning_at (&loc, OPT_Wenum_conversion,
*************** convert_for_assignment (location_t locat
*** 7093,7099 ****
  
    if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (rhstype))
      {
!       warn_for_address_or_pointer_of_packed_member (type, orig_rhs);
        return rhs;
      }
  
--- 7253,7259 ----
  
    if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (rhstype))
      {
!       warn_for_address_of_packed_member (type, orig_rhs);
        return rhs;
      }
  
*************** convert_for_assignment (location_t locat
*** 7156,7166 ****
    else if ((codel == INTEGER_TYPE || codel == REAL_TYPE
  	    || codel == FIXED_POINT_TYPE
  	    || codel == ENUMERAL_TYPE || codel == COMPLEX_TYPE
! 	    || codel == BOOLEAN_TYPE)
  	   && (coder == INTEGER_TYPE || coder == REAL_TYPE
  	       || coder == FIXED_POINT_TYPE
  	       || coder == ENUMERAL_TYPE || coder == COMPLEX_TYPE
! 	       || coder == BOOLEAN_TYPE))
      {
        if (warnopt && errtype == ic_argpass)
  	maybe_warn_builtin_no_proto_arg (expr_loc, fundecl, parmnum, type,
--- 7316,7326 ----
    else if ((codel == INTEGER_TYPE || codel == REAL_TYPE
  	    || codel == FIXED_POINT_TYPE
  	    || codel == ENUMERAL_TYPE || codel == COMPLEX_TYPE
! 	    || codel == BOOLEAN_TYPE || codel == BITINT_TYPE)
  	   && (coder == INTEGER_TYPE || coder == REAL_TYPE
  	       || coder == FIXED_POINT_TYPE
  	       || coder == ENUMERAL_TYPE || coder == COMPLEX_TYPE
! 	       || coder == BOOLEAN_TYPE || coder == BITINT_TYPE))
      {
        if (warnopt && errtype == ic_argpass)
  	maybe_warn_builtin_no_proto_arg (expr_loc, fundecl, parmnum, type,
*************** convert_for_assignment (location_t locat
*** 7182,7188 ****
    /* Aggregates in different TUs might need conversion.  */
    if ((codel == RECORD_TYPE || codel == UNION_TYPE)
        && codel == coder
!       && comptypes (type, rhstype))
      return convert_and_check (expr_loc != UNKNOWN_LOCATION
  			      ? expr_loc : location, type, rhs);
  
--- 7342,7348 ----
    /* Aggregates in different TUs might need conversion.  */
    if ((codel == RECORD_TYPE || codel == UNION_TYPE)
        && codel == coder
!       && comptypes (TYPE_MAIN_VARIANT (type), TYPE_MAIN_VARIANT (rhstype)))
      return convert_and_check (expr_loc != UNKNOWN_LOCATION
  			      ? expr_loc : location, type, rhs);
  
*************** convert_for_assignment (location_t locat
*** 7319,7325 ****
        tree mvl = ttl;
        tree mvr = ttr;
        bool is_opaque_pointer;
!       int target_cmp = 0;   /* Cache comp_target_types () result.  */
        addr_space_t asl;
        addr_space_t asr;
  
--- 7479,7485 ----
        tree mvl = ttl;
        tree mvr = ttr;
        bool is_opaque_pointer;
!       bool target_cmp = false;   /* Cache comp_target_types () result.  */
        addr_space_t asl;
        addr_space_t asr;
  
*************** convert_for_assignment (location_t locat
*** 7368,7373 ****
--- 7528,7545 ----
  		    "request for implicit conversion "
  		    "from %qT to %qT not permitted in C++", rhstype, type);
  
+       /* Warn of new allocations that are not big enough for the target
+ 	 type.  */
+       if (warn_alloc_size && TREE_CODE (rhs) == CALL_EXPR)
+ 	if (tree fndecl = get_callee_fndecl (rhs))
+ 	  if (DECL_IS_MALLOC (fndecl))
+ 	    {
+ 	      tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (fndecl));
+ 	      tree alloc_size = lookup_attribute ("alloc_size", attrs);
+ 	      if (alloc_size)
+ 		warn_for_alloc_size (location, ttl, rhs, alloc_size);
+ 	    }
+ 
        /* See if the pointers point to incompatible address spaces.  */
        asl = TYPE_ADDR_SPACE (ttl);
        asr = TYPE_ADDR_SPACE (ttr);
*************** convert_for_assignment (location_t locat
*** 7470,7475 ****
--- 7642,7648 ----
  
        /* See if the pointers point to incompatible scalar storage orders.  */
        if (warn_scalar_storage_order
+ 	  && !null_pointer_constant_p (rhs)
  	  && (AGGREGATE_TYPE_P (ttl) && TYPE_REVERSE_STORAGE_ORDER (ttl))
  	     != (AGGREGATE_TYPE_P (ttr) && TYPE_REVERSE_STORAGE_ORDER (ttr)))
  	{
*************** convert_for_assignment (location_t locat
*** 7538,7544 ****
  
  	      if (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC (ttr)
  		  & ~TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC (ttl))
! 		WARNING_FOR_QUALIFIERS (flag_isoc2x,
  					location, expr_loc,
  					OPT_Wdiscarded_array_qualifiers,
  					G_("passing argument %d of %qE discards "
--- 7711,7717 ----
  
  	      if (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC (ttr)
  		  & ~TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC (ttl))
! 		WARNING_FOR_QUALIFIERS (flag_isoc23,
  					location, expr_loc,
  					OPT_Wdiscarded_array_qualifiers,
  					G_("passing argument %d of %qE discards "
*************** convert_for_assignment (location_t locat
*** 7581,7587 ****
  	      /* Don't warn about loss of qualifier for conversions from
  		 qualified void* to pointers to arrays with corresponding
  		 qualifier on the element type (except for pedantic before C23). */
! 	      if (warn_quals || (warn_quals_ped && pedantic && !flag_isoc2x))
  		PEDWARN_FOR_QUALIFIERS (location, expr_loc,
  					OPT_Wdiscarded_qualifiers,
  					G_("passing argument %d of %qE discards "
--- 7754,7760 ----
  	      /* Don't warn about loss of qualifier for conversions from
  		 qualified void* to pointers to arrays with corresponding
  		 qualifier on the element type (except for pedantic before C23). */
! 	      if (warn_quals || (warn_quals_ped && pedantic && !flag_isoc23))
  		PEDWARN_FOR_QUALIFIERS (location, expr_loc,
  					OPT_Wdiscarded_qualifiers,
  					G_("passing argument %d of %qE discards "
*************** convert_for_assignment (location_t locat
*** 7594,7601 ****
  					   "pointer target type"),
  					TYPE_QUALS (ttr) & ~TYPE_QUALS (ttl));
  	      else if (warn_quals_ped)
! 		pedwarn_c11 (location, OPT_Wc11_c2x_compat,
! 			     "array with qualifier on the element is not qualified before C2X");
  
  	      /* If this is not a case of ignoring a mismatch in signedness,
  		 no warning.  */
--- 7767,7774 ----
  					   "pointer target type"),
  					TYPE_QUALS (ttr) & ~TYPE_QUALS (ttl));
  	      else if (warn_quals_ped)
! 		pedwarn_c11 (location, OPT_Wc11_c23_compat,
! 			     "array with qualifier on the element is not qualified before C23");
  
  	      /* If this is not a case of ignoring a mismatch in signedness,
  		 no warning.  */
*************** convert_for_assignment (location_t locat
*** 7672,7717 ****
  		auto_diagnostic_group d;
  		range_label_for_type_mismatch rhs_label (rhstype, type);
  		gcc_rich_location richloc (expr_loc, &rhs_label);
! 		if (pedwarn (&richloc, OPT_Wincompatible_pointer_types,
! 			     "passing argument %d of %qE from incompatible "
! 			     "pointer type", parmnum, rname))
  		  inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	      }
  	      break;
  	    case ic_assign:
  	      if (bltin)
! 		pedwarn (location, OPT_Wincompatible_pointer_types,
! 			 "assignment to %qT from pointer to "
! 			 "%qD with incompatible type %qT",
! 			 type, bltin, rhstype);
  	      else
! 		pedwarn (location, OPT_Wincompatible_pointer_types,
! 			 "assignment to %qT from incompatible pointer type %qT",
! 			 type, rhstype);
  	      break;
  	    case ic_init:
  	    case ic_init_const:
  	      if (bltin)
! 		pedwarn_init (location, OPT_Wincompatible_pointer_types,
! 			      "initialization of %qT from pointer to "
! 			      "%qD with incompatible type %qT",
! 			      type, bltin, rhstype);
  	      else
! 		pedwarn_init (location, OPT_Wincompatible_pointer_types,
! 			      "initialization of %qT from incompatible "
! 			      "pointer type %qT",
! 			      type, rhstype);
  	      break;
  	    case ic_return:
  	      if (bltin)
! 		pedwarn (location, OPT_Wincompatible_pointer_types,
! 			 "returning pointer to %qD of type %qT from "
! 			 "a function with incompatible type %qT",
! 			 bltin, rhstype, type);
  	      else
! 		pedwarn (location, OPT_Wincompatible_pointer_types,
! 			 "returning %qT from a function with incompatible "
! 			 "return type %qT", rhstype, type);
  	      break;
  	    default:
  	      gcc_unreachable ();
--- 7845,7891 ----
  		auto_diagnostic_group d;
  		range_label_for_type_mismatch rhs_label (rhstype, type);
  		gcc_rich_location richloc (expr_loc, &rhs_label);
! 		if (permerror_opt (&richloc, OPT_Wincompatible_pointer_types,
! 				   "passing argument %d of %qE from "
! 				   "incompatible pointer type",
! 				   parmnum, rname))
  		  inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	      }
  	      break;
  	    case ic_assign:
  	      if (bltin)
! 		permerror_opt (location, OPT_Wincompatible_pointer_types,
! 			       "assignment to %qT from pointer to "
! 			       "%qD with incompatible type %qT",
! 			       type, bltin, rhstype);
  	      else
! 		permerror_opt (location, OPT_Wincompatible_pointer_types,
! 			       "assignment to %qT from incompatible pointer "
! 			       "type %qT", type, rhstype);
  	      break;
  	    case ic_init:
  	    case ic_init_const:
  	      if (bltin)
! 		permerror_init (location, OPT_Wincompatible_pointer_types,
! 				"initialization of %qT from pointer to "
! 				"%qD with incompatible type %qT",
! 				type, bltin, rhstype);
  	      else
! 		permerror_init (location, OPT_Wincompatible_pointer_types,
! 				"initialization of %qT from incompatible "
! 				"pointer type %qT",
! 				type, rhstype);
  	      break;
  	    case ic_return:
  	      if (bltin)
! 		permerror_opt (location, OPT_Wincompatible_pointer_types,
! 			       "returning pointer to %qD of type %qT from "
! 			       "a function with incompatible type %qT",
! 			       bltin, rhstype, type);
  	      else
! 		permerror_opt (location, OPT_Wincompatible_pointer_types,
! 			       "returning %qT from a function with "
! 			       "incompatible return type %qT", rhstype, type);
  	      break;
  	    default:
  	      gcc_unreachable ();
*************** convert_for_assignment (location_t locat
*** 7720,7726 ****
  
        /* If RHS isn't an address, check pointer or array of packed
  	 struct or union.  */
!       warn_for_address_or_pointer_of_packed_member (type, orig_rhs);
  
        return convert (type, rhs);
      }
--- 7894,7900 ----
  
        /* If RHS isn't an address, check pointer or array of packed
  	 struct or union.  */
!       warn_for_address_of_packed_member (type, orig_rhs);
  
        return convert (type, rhs);
      }
*************** convert_for_assignment (location_t locat
*** 7736,7742 ****
        return error_mark_node;
      }
    else if (codel == POINTER_TYPE
! 	   && (coder == INTEGER_TYPE || coder == NULLPTR_TYPE))
      {
        /* An explicit constant 0 or type nullptr_t can convert to a pointer,
  	 or one that results from arithmetic, even including a cast to
--- 7910,7918 ----
        return error_mark_node;
      }
    else if (codel == POINTER_TYPE
! 	   && (coder == INTEGER_TYPE
! 	       || coder == NULLPTR_TYPE
! 	       || coder == BITINT_TYPE))
      {
        /* An explicit constant 0 or type nullptr_t can convert to a pointer,
  	 or one that results from arithmetic, even including a cast to
*************** convert_for_assignment (location_t locat
*** 7749,7775 ****
  	      auto_diagnostic_group d;
  	      range_label_for_type_mismatch rhs_label (rhstype, type);
  	      gcc_rich_location richloc (expr_loc, &rhs_label);
! 	      if (pedwarn (&richloc, OPT_Wint_conversion,
! 			   "passing argument %d of %qE makes pointer from "
! 			   "integer without a cast", parmnum, rname))
  		inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	    }
  	    break;
  	  case ic_assign:
! 	    pedwarn (location, OPT_Wint_conversion,
! 		     "assignment to %qT from %qT makes pointer from integer "
! 		     "without a cast", type, rhstype);
  	    break;
  	  case ic_init:
  	  case ic_init_const:
! 	    pedwarn_init (location, OPT_Wint_conversion,
! 			  "initialization of %qT from %qT makes pointer from "
! 			  "integer without a cast", type, rhstype);
  	    break;
  	  case ic_return:
! 	    pedwarn (location, OPT_Wint_conversion, "returning %qT from a "
! 		     "function with return type %qT makes pointer from "
! 		     "integer without a cast", rhstype, type);
  	    break;
  	  default:
  	    gcc_unreachable ();
--- 7925,7952 ----
  	      auto_diagnostic_group d;
  	      range_label_for_type_mismatch rhs_label (rhstype, type);
  	      gcc_rich_location richloc (expr_loc, &rhs_label);
! 	      if (permerror_opt (&richloc, OPT_Wint_conversion,
! 				 "passing argument %d of %qE makes pointer "
! 				 "from integer without a cast", parmnum, rname))
  		inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	    }
  	    break;
  	  case ic_assign:
! 	    permerror_opt (location, OPT_Wint_conversion,
! 			   "assignment to %qT from %qT makes pointer from "
! 			   "integer without a cast", type, rhstype);
  	    break;
  	  case ic_init:
  	  case ic_init_const:
! 	    permerror_init (location, OPT_Wint_conversion,
! 			    "initialization of %qT from %qT makes pointer "
! 			    "from integer without a cast", type, rhstype);
  	    break;
  	  case ic_return:
! 	    permerror_init (location, OPT_Wint_conversion,
! 			    "returning %qT from a function with return type "
! 			    "%qT makes pointer from integer without a cast",
! 			    rhstype, type);
  	    break;
  	  default:
  	    gcc_unreachable ();
*************** convert_for_assignment (location_t locat
*** 7777,7783 ****
  
        return convert (type, rhs);
      }
!   else if (codel == INTEGER_TYPE && coder == POINTER_TYPE)
      {
        switch (errtype)
  	{
--- 7954,7961 ----
  
        return convert (type, rhs);
      }
!   else if ((codel == INTEGER_TYPE || codel == BITINT_TYPE)
! 	   && coder == POINTER_TYPE)
      {
        switch (errtype)
  	{
*************** convert_for_assignment (location_t locat
*** 7786,7812 ****
  	    auto_diagnostic_group d;
  	    range_label_for_type_mismatch rhs_label (rhstype, type);
  	    gcc_rich_location richloc (expr_loc, &rhs_label);
! 	    if (pedwarn (&richloc, OPT_Wint_conversion,
! 			 "passing argument %d of %qE makes integer from "
! 			 "pointer without a cast", parmnum, rname))
  	      inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	  }
  	  break;
  	case ic_assign:
! 	  pedwarn (location, OPT_Wint_conversion,
! 		   "assignment to %qT from %qT makes integer from pointer "
! 		   "without a cast", type, rhstype);
  	  break;
  	case ic_init:
  	case ic_init_const:
! 	  pedwarn_init (location, OPT_Wint_conversion,
! 			"initialization of %qT from %qT makes integer from "
! 			"pointer without a cast", type, rhstype);
  	  break;
  	case ic_return:
! 	  pedwarn (location, OPT_Wint_conversion, "returning %qT from a "
! 		   "function with return type %qT makes integer from "
! 		   "pointer without a cast", rhstype, type);
  	  break;
  	default:
  	  gcc_unreachable ();
--- 7964,7990 ----
  	    auto_diagnostic_group d;
  	    range_label_for_type_mismatch rhs_label (rhstype, type);
  	    gcc_rich_location richloc (expr_loc, &rhs_label);
! 	    if (permerror_opt (&richloc, OPT_Wint_conversion,
! 			       "passing argument %d of %qE makes integer from "
! 			       "pointer without a cast", parmnum, rname))
  	      inform_for_arg (fundecl, expr_loc, parmnum, type, rhstype);
  	  }
  	  break;
  	case ic_assign:
! 	  permerror_opt (location, OPT_Wint_conversion,
! 			 "assignment to %qT from %qT makes integer from "
! 			 "pointer without a cast", type, rhstype);
  	  break;
  	case ic_init:
  	case ic_init_const:
! 	  permerror_init (location, OPT_Wint_conversion,
! 			  "initialization of %qT from %qT makes integer "
! 			  "from pointer without a cast", type, rhstype);
  	  break;
  	case ic_return:
! 	  permerror_opt (location, OPT_Wint_conversion, "returning %qT from a "
! 			 "function with return type %qT makes integer from "
! 			 "pointer without a cast", rhstype, type);
  	  break;
  	default:
  	  gcc_unreachable ();
*************** store_init_value (location_t init_loc, t
*** 7938,7944 ****
        /* Not fully determined before folding.  */
        arith_const_expr = true;
      }
!   bool constexpr_p = (TREE_CODE (decl) == VAR_DECL
  		      && C_DECL_DECLARED_CONSTEXPR (decl));
    value = digest_init (init_loc, type, init, origtype, npc, int_const_expr,
  		       arith_const_expr, true,
--- 8116,8122 ----
        /* Not fully determined before folding.  */
        arith_const_expr = true;
      }
!   bool constexpr_p = (VAR_P (decl)
  		      && C_DECL_DECLARED_CONSTEXPR (decl));
    value = digest_init (init_loc, type, init, origtype, npc, int_const_expr,
  		       arith_const_expr, true,
*************** print_spelling (char *buffer)
*** 8119,8125 ****
  static bool
  constexpr_init_fits_real_type (tree type, tree init)
  {
!   gcc_assert (TREE_CODE (type) == REAL_TYPE);
    gcc_assert (TREE_CODE (init) == INTEGER_CST || TREE_CODE (init) == REAL_CST);
    if (TREE_CODE (init) == REAL_CST
        && TYPE_MODE (TREE_TYPE (init)) == TYPE_MODE (type))
--- 8297,8303 ----
  static bool
  constexpr_init_fits_real_type (tree type, tree init)
  {
!   gcc_assert (SCALAR_FLOAT_TYPE_P (type));
    gcc_assert (TREE_CODE (init) == INTEGER_CST || TREE_CODE (init) == REAL_CST);
    if (TREE_CODE (init) == REAL_CST
        && TYPE_MODE (TREE_TYPE (init)) == TYPE_MODE (type))
*************** check_constexpr_init (location_t loc, tr
*** 8226,8239 ****
       compatible (not just the same mode); all quiet NaN and infinity
       initializations are considered to preserve the value.  */
    if (TREE_CODE (TREE_TYPE (init)) == COMPLEX_TYPE
!       && TREE_CODE (type) == REAL_TYPE)
      {
        error_at (loc, "%<constexpr%> initializer for a real type is of "
  		"complex type");
        return;
      }
!   if (TREE_CODE (type) == REAL_TYPE
!       && TREE_CODE (TREE_TYPE (init)) == REAL_TYPE
        && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (init))
        && !DECIMAL_FLOAT_TYPE_P (type))
      {
--- 8404,8417 ----
       compatible (not just the same mode); all quiet NaN and infinity
       initializations are considered to preserve the value.  */
    if (TREE_CODE (TREE_TYPE (init)) == COMPLEX_TYPE
!       && SCALAR_FLOAT_TYPE_P (type))
      {
        error_at (loc, "%<constexpr%> initializer for a real type is of "
  		"complex type");
        return;
      }
!   if (SCALAR_FLOAT_TYPE_P (type)
!       && SCALAR_FLOAT_TYPE_P (TREE_TYPE (init))
        && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (init))
        && !DECIMAL_FLOAT_TYPE_P (type))
      {
*************** digest_init (location_t init_loc, tree t
*** 8514,8524 ****
  	    }
  	}
  
!       if (code == VECTOR_TYPE)
  	/* Although the types are compatible, we may require a
  	   conversion.  */
  	inside_init = convert (type, inside_init);
  
        if (require_constant
  	  && TREE_CODE (inside_init) == COMPOUND_LITERAL_EXPR)
  	{
--- 8692,8709 ----
  	    }
  	}
  
!       if (code == VECTOR_TYPE || c_hardbool_type_attr (type))
  	/* Although the types are compatible, we may require a
  	   conversion.  */
  	inside_init = convert (type, inside_init);
  
+       if ((code == RECORD_TYPE || code == UNION_TYPE)
+ 	  && !comptypes (TYPE_MAIN_VARIANT (type), TYPE_MAIN_VARIANT (TREE_TYPE (inside_init))))
+ 	{
+ 	  error_init (init_loc, "invalid initializer");
+ 	  return error_mark_node;
+ 	}
+ 
        if (require_constant
  	  && TREE_CODE (inside_init) == COMPOUND_LITERAL_EXPR)
  	{
*************** digest_init (location_t init_loc, tree t
*** 8587,8593 ****
  
    if (code == INTEGER_TYPE || code == REAL_TYPE || code == FIXED_POINT_TYPE
        || code == POINTER_TYPE || code == ENUMERAL_TYPE || code == BOOLEAN_TYPE
!       || code == COMPLEX_TYPE || code == VECTOR_TYPE || code == NULLPTR_TYPE)
      {
        tree unconverted_init = inside_init;
        if (TREE_CODE (TREE_TYPE (init)) == ARRAY_TYPE
--- 8772,8779 ----
  
    if (code == INTEGER_TYPE || code == REAL_TYPE || code == FIXED_POINT_TYPE
        || code == POINTER_TYPE || code == ENUMERAL_TYPE || code == BOOLEAN_TYPE
!       || code == COMPLEX_TYPE || code == VECTOR_TYPE || code == NULLPTR_TYPE
!       || code == BITINT_TYPE)
      {
        tree unconverted_init = inside_init;
        if (TREE_CODE (TREE_TYPE (init)) == ARRAY_TYPE
*************** pop_init_level (location_t loc, int impl
*** 9369,9375 ****
      {
        /* A nonincremental scalar initializer--just return
  	 the element, after verifying there is just one.
!          Empty scalar initializers are supported in C2X.  */
        if (vec_safe_is_empty (constructor_elements))
  	{
  	  if (constructor_erroneous || constructor_type == error_mark_node)
--- 9555,9561 ----
      {
        /* A nonincremental scalar initializer--just return
  	 the element, after verifying there is just one.
!          Empty scalar initializers are supported in C23.  */
        if (vec_safe_is_empty (constructor_elements))
  	{
  	  if (constructor_erroneous || constructor_type == error_mark_node)
*************** initialize_elementwise_p (tree type, tre
*** 10603,10609 ****
      return !VECTOR_TYPE_P (value_type);
  
    if (AGGREGATE_TYPE_P (type))
!     return type != TYPE_MAIN_VARIANT (value_type);
  
    return false;
  }
--- 10789,10795 ----
      return !VECTOR_TYPE_P (value_type);
  
    if (AGGREGATE_TYPE_P (type))
!     return !comptypes (type, TYPE_MAIN_VARIANT (value_type));
  
    return false;
  }
*************** process_init_element (location_t loc, st
*** 10639,10655 ****
  
    /* Handle superfluous braces around string cst as in
       char x[] = {"foo"}; */
!   if (string_flag
!       && constructor_type
        && !was_designated
        && TREE_CODE (constructor_type) == ARRAY_TYPE
        && INTEGRAL_TYPE_P (TREE_TYPE (constructor_type))
        && integer_zerop (constructor_unfilled_index))
      {
        if (constructor_stack->replacement_value.value)
! 	error_init (loc, "excess elements in %<char%> array initializer");
!       constructor_stack->replacement_value = value;
!       return;
      }
  
    if (constructor_stack->replacement_value.value != NULL_TREE)
--- 10825,10846 ----
  
    /* Handle superfluous braces around string cst as in
       char x[] = {"foo"}; */
!   if (constructor_type
        && !was_designated
        && TREE_CODE (constructor_type) == ARRAY_TYPE
        && INTEGRAL_TYPE_P (TREE_TYPE (constructor_type))
        && integer_zerop (constructor_unfilled_index))
      {
        if (constructor_stack->replacement_value.value)
! 	{
! 	  error_init (loc, "excess elements in %qT initializer", constructor_type);
! 	  return;
! 	}
!       else if (string_flag)
! 	{
! 	  constructor_stack->replacement_value = value;
! 	  return;
! 	}
      }
  
    if (constructor_stack->replacement_value.value != NULL_TREE)
*************** c_finish_return (location_t loc, tree re
*** 11293,11320 ****
        if ((warn_return_type >= 0 || flag_isoc99)
  	  && valtype != NULL_TREE && TREE_CODE (valtype) != VOID_TYPE)
  	{
- 	  bool warned_here;
- 	  if (flag_isoc99)
- 	    warned_here = pedwarn
- 	      (loc, warn_return_type >= 0 ? OPT_Wreturn_type : 0,
- 	       "%<return%> with no value, in function returning non-void");
- 	  else
- 	    warned_here = warning_at
- 	      (loc, OPT_Wreturn_type,
- 	       "%<return%> with no value, in function returning non-void");
  	  no_warning = true;
! 	  if (warned_here)
  	    inform (DECL_SOURCE_LOCATION (current_function_decl),
  		    "declared here");
  	}
      }
!   else if (valtype == NULL_TREE || TREE_CODE (valtype) == VOID_TYPE)
      {
        current_function_returns_null = 1;
        bool warned_here;
        if (TREE_CODE (TREE_TYPE (retval)) != VOID_TYPE)
! 	warned_here = pedwarn
! 	  (xloc, warn_return_type >= 0 ? OPT_Wreturn_type : 0,
  	   "%<return%> with a value, in function returning void");
        else
  	warned_here = pedwarn
--- 11484,11505 ----
        if ((warn_return_type >= 0 || flag_isoc99)
  	  && valtype != NULL_TREE && TREE_CODE (valtype) != VOID_TYPE)
  	{
  	  no_warning = true;
! 	  if (emit_diagnostic (flag_isoc99 ? DK_PERMERROR : DK_WARNING,
! 			       loc, OPT_Wreturn_mismatch,
! 			       "%<return%> with no value,"
! 			       " in function returning non-void"))
  	    inform (DECL_SOURCE_LOCATION (current_function_decl),
  		    "declared here");
  	}
      }
!   else if (valtype == NULL_TREE || VOID_TYPE_P (valtype))
      {
        current_function_returns_null = 1;
        bool warned_here;
        if (TREE_CODE (TREE_TYPE (retval)) != VOID_TYPE)
! 	warned_here = permerror_opt
! 	  (xloc, OPT_Wreturn_mismatch,
  	   "%<return%> with a value, in function returning void");
        else
  	warned_here = pedwarn
*************** c_finish_return (location_t loc, tree re
*** 11340,11346 ****
        save = in_late_binary_op;
        if (C_BOOLEAN_TYPE_P (TREE_TYPE (res))
  	  || TREE_CODE (TREE_TYPE (res)) == COMPLEX_TYPE
! 	  || (TREE_CODE (TREE_TYPE (t)) == REAL_TYPE
  	      && (TREE_CODE (TREE_TYPE (res)) == INTEGER_TYPE
  		  || TREE_CODE (TREE_TYPE (res)) == ENUMERAL_TYPE)
  	      && sanitize_flags_p (SANITIZE_FLOAT_CAST)))
--- 11525,11531 ----
        save = in_late_binary_op;
        if (C_BOOLEAN_TYPE_P (TREE_TYPE (res))
  	  || TREE_CODE (TREE_TYPE (res)) == COMPLEX_TYPE
! 	  || (SCALAR_FLOAT_TYPE_P (TREE_TYPE (t))
  	      && (TREE_CODE (TREE_TYPE (res)) == INTEGER_TYPE
  		  || TREE_CODE (TREE_TYPE (res)) == ENUMERAL_TYPE)
  	      && sanitize_flags_p (SANITIZE_FLOAT_CAST)))
*************** build_vec_cmp (tree_code code, tree type
*** 11997,12003 ****
  {
    tree zero_vec = build_zero_cst (type);
    tree minus_one_vec = build_minus_one_cst (type);
!   tree cmp_type = truth_type_for (type);
    tree cmp = build2 (code, cmp_type, arg0, arg1);
    return build3 (VEC_COND_EXPR, type, cmp, minus_one_vec, zero_vec);
  }
--- 12182,12188 ----
  {
    tree zero_vec = build_zero_cst (type);
    tree minus_one_vec = build_minus_one_cst (type);
!   tree cmp_type = truth_type_for (TREE_TYPE (arg0));
    tree cmp = build2 (code, cmp_type, arg0, arg1);
    return build3 (VEC_COND_EXPR, type, cmp, minus_one_vec, zero_vec);
  }
*************** build_binary_op (location_t location, en
*** 12377,12388 ****
      {
      case PLUS_EXPR:
        /* Handle the pointer + int case.  */
!       if (code0 == POINTER_TYPE && code1 == INTEGER_TYPE)
  	{
  	  ret = pointer_int_sum (location, PLUS_EXPR, op0, op1);
  	  goto return_build_binary_op;
  	}
!       else if (code1 == POINTER_TYPE && code0 == INTEGER_TYPE)
  	{
  	  ret = pointer_int_sum (location, PLUS_EXPR, op1, op0);
  	  goto return_build_binary_op;
--- 12562,12575 ----
      {
      case PLUS_EXPR:
        /* Handle the pointer + int case.  */
!       if (code0 == POINTER_TYPE
! 	  && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
  	{
  	  ret = pointer_int_sum (location, PLUS_EXPR, op0, op1);
  	  goto return_build_binary_op;
  	}
!       else if (code1 == POINTER_TYPE
! 	       && (code0 == INTEGER_TYPE || code0 == BITINT_TYPE))
  	{
  	  ret = pointer_int_sum (location, PLUS_EXPR, op1, op0);
  	  goto return_build_binary_op;
*************** build_binary_op (location_t location, en
*** 12401,12407 ****
  	  goto return_build_binary_op;
  	}
        /* Handle pointer minus int.  Just like pointer plus int.  */
!       else if (code0 == POINTER_TYPE && code1 == INTEGER_TYPE)
  	{
  	  ret = pointer_int_sum (location, MINUS_EXPR, op0, op1);
  	  goto return_build_binary_op;
--- 12588,12595 ----
  	  goto return_build_binary_op;
  	}
        /* Handle pointer minus int.  Just like pointer plus int.  */
!       else if (code0 == POINTER_TYPE
! 	       && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
  	{
  	  ret = pointer_int_sum (location, MINUS_EXPR, op0, op1);
  	  goto return_build_binary_op;
*************** build_binary_op (location_t location, en
*** 12423,12433 ****
        warn_for_div_by_zero (location, op1);
  
        if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
! 	   || code0 == FIXED_POINT_TYPE
  	   || code0 == COMPLEX_TYPE
  	   || gnu_vector_type_p (type0))
  	  && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
! 	      || code1 == FIXED_POINT_TYPE
  	      || code1 == COMPLEX_TYPE
  	      || gnu_vector_type_p (type1)))
  	{
--- 12611,12621 ----
        warn_for_div_by_zero (location, op1);
  
        if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
! 	   || code0 == FIXED_POINT_TYPE || code0 == BITINT_TYPE
  	   || code0 == COMPLEX_TYPE
  	   || gnu_vector_type_p (type0))
  	  && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
! 	      || code1 == FIXED_POINT_TYPE || code1 == BITINT_TYPE
  	      || code1 == COMPLEX_TYPE
  	      || gnu_vector_type_p (type1)))
  	{
*************** build_binary_op (location_t location, en
*** 12438,12445 ****
  	  if (code1 == COMPLEX_TYPE || code1 == VECTOR_TYPE)
  	    tcode1 = TREE_CODE (TREE_TYPE (TREE_TYPE (op1)));
  
! 	  if (!((tcode0 == INTEGER_TYPE && tcode1 == INTEGER_TYPE)
! 	      || (tcode0 == FIXED_POINT_TYPE && tcode1 == FIXED_POINT_TYPE)))
  	    resultcode = RDIV_EXPR;
  	  else
  	    /* Although it would be tempting to shorten always here, that
--- 12626,12634 ----
  	  if (code1 == COMPLEX_TYPE || code1 == VECTOR_TYPE)
  	    tcode1 = TREE_CODE (TREE_TYPE (TREE_TYPE (op1)));
  
! 	  if (!(((tcode0 == INTEGER_TYPE || tcode0 == BITINT_TYPE)
! 		 && (tcode1 == INTEGER_TYPE || tcode1 == BITINT_TYPE))
! 		|| (tcode0 == FIXED_POINT_TYPE && tcode1 == FIXED_POINT_TYPE)))
  	    resultcode = RDIV_EXPR;
  	  else
  	    /* Although it would be tempting to shorten always here, that
*************** build_binary_op (location_t location, en
*** 12455,12461 ****
      case BIT_AND_EXPR:
      case BIT_IOR_EXPR:
      case BIT_XOR_EXPR:
!       if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE)
  	shorten = -1;
        /* Allow vector types which are not floating point types.   */
        else if (gnu_vector_type_p (type0)
--- 12644,12651 ----
      case BIT_AND_EXPR:
      case BIT_IOR_EXPR:
      case BIT_XOR_EXPR:
!       if ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
! 	  && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
  	shorten = -1;
        /* Allow vector types which are not floating point types.   */
        else if (gnu_vector_type_p (type0)
*************** build_binary_op (location_t location, en
*** 12475,12481 ****
  	  && TREE_CODE (TREE_TYPE (type0)) == INTEGER_TYPE
  	  && TREE_CODE (TREE_TYPE (type1)) == INTEGER_TYPE)
  	common = 1;
!       else if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE)
  	{
  	  /* Although it would be tempting to shorten always here, that loses
  	     on some targets, since the modulo instruction is undefined if the
--- 12665,12672 ----
  	  && TREE_CODE (TREE_TYPE (type0)) == INTEGER_TYPE
  	  && TREE_CODE (TREE_TYPE (type1)) == INTEGER_TYPE)
  	common = 1;
!       else if ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
! 	       && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
  	{
  	  /* Although it would be tempting to shorten always here, that loses
  	     on some targets, since the modulo instruction is undefined if the
*************** build_binary_op (location_t location, en
*** 12493,12502 ****
      case TRUTH_XOR_EXPR:
        if ((code0 == INTEGER_TYPE || code0 == POINTER_TYPE
  	   || code0 == REAL_TYPE || code0 == COMPLEX_TYPE
! 	   || code0 == FIXED_POINT_TYPE || code0 == NULLPTR_TYPE)
  	  && (code1 == INTEGER_TYPE || code1 == POINTER_TYPE
  	      || code1 == REAL_TYPE || code1 == COMPLEX_TYPE
! 	      || code1 == FIXED_POINT_TYPE || code1 ==  NULLPTR_TYPE))
  	{
  	  /* Result of these operations is always an int,
  	     but that does not mean the operands should be
--- 12684,12695 ----
      case TRUTH_XOR_EXPR:
        if ((code0 == INTEGER_TYPE || code0 == POINTER_TYPE
  	   || code0 == REAL_TYPE || code0 == COMPLEX_TYPE
! 	   || code0 == FIXED_POINT_TYPE || code0 == NULLPTR_TYPE
! 	   || code0 == BITINT_TYPE)
  	  && (code1 == INTEGER_TYPE || code1 == POINTER_TYPE
  	      || code1 == REAL_TYPE || code1 == COMPLEX_TYPE
! 	      || code1 == FIXED_POINT_TYPE || code1 == NULLPTR_TYPE
! 	      || code1 == BITINT_TYPE))
  	{
  	  /* Result of these operations is always an int,
  	     but that does not mean the operands should be
*************** build_binary_op (location_t location, en
*** 12559,12567 ****
  	  converted = 1;
  	}
        else if ((code0 == INTEGER_TYPE || code0 == FIXED_POINT_TYPE
  		|| (gnu_vector_type_p (type0)
  		    && TREE_CODE (TREE_TYPE (type0)) == INTEGER_TYPE))
! 	       && code1 == INTEGER_TYPE)
  	{
  	  doing_shift = true;
  	  if (TREE_CODE (op1) == INTEGER_CST)
--- 12752,12761 ----
  	  converted = 1;
  	}
        else if ((code0 == INTEGER_TYPE || code0 == FIXED_POINT_TYPE
+ 		|| code0 == BITINT_TYPE
  		|| (gnu_vector_type_p (type0)
  		    && TREE_CODE (TREE_TYPE (type0)) == INTEGER_TYPE))
! 	       && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
  	{
  	  doing_shift = true;
  	  if (TREE_CODE (op1) == INTEGER_CST)
*************** build_binary_op (location_t location, en
*** 12619,12627 ****
  	  converted = 1;
  	}
        else if ((code0 == INTEGER_TYPE || code0 == FIXED_POINT_TYPE
  		|| (gnu_vector_type_p (type0)
  		    && TREE_CODE (TREE_TYPE (type0)) == INTEGER_TYPE))
! 	       && code1 == INTEGER_TYPE)
  	{
  	  doing_shift = true;
  	  if (TREE_CODE (op0) == INTEGER_CST
--- 12813,12822 ----
  	  converted = 1;
  	}
        else if ((code0 == INTEGER_TYPE || code0 == FIXED_POINT_TYPE
+ 		|| code0 == BITINT_TYPE
  		|| (gnu_vector_type_p (type0)
  		    && TREE_CODE (TREE_TYPE (type0)) == INTEGER_TYPE))
! 	       && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
  	{
  	  doing_shift = true;
  	  if (TREE_CODE (op0) == INTEGER_CST
*************** build_binary_op (location_t location, en
*** 12735,12743 ****
        /* Result of comparison is always int,
  	 but don't convert the args to int!  */
        build_type = integer_type_node;
!       if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
  	   || code0 == FIXED_POINT_TYPE || code0 == COMPLEX_TYPE)
  	  && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
  	      || code1 == FIXED_POINT_TYPE || code1 == COMPLEX_TYPE))
  	short_compare = 1;
        else if (code0 == POINTER_TYPE
--- 12930,12939 ----
        /* Result of comparison is always int,
  	 but don't convert the args to int!  */
        build_type = integer_type_node;
!       if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE || code0 == BITINT_TYPE
  	   || code0 == FIXED_POINT_TYPE || code0 == COMPLEX_TYPE)
  	  && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
+ 	      || code1 == BITINT_TYPE
  	      || code1 == FIXED_POINT_TYPE || code1 == COMPLEX_TYPE))
  	short_compare = 1;
        else if (code0 == POINTER_TYPE
*************** build_binary_op (location_t location, en
*** 12788,12794 ****
  	  else
  	    /* Avoid warning about the volatile ObjC EH puts on decls.  */
  	    if (!objc_ok)
! 	      pedwarn (location, 0,
  		       "comparison of distinct pointer types lacks a cast");
  
  	  if (result_type == NULL_TREE)
--- 12984,12990 ----
  	  else
  	    /* Avoid warning about the volatile ObjC EH puts on decls.  */
  	    if (!objc_ok)
! 	      pedwarn (location, OPT_Wcompare_distinct_pointer_types,
  		       "comparison of distinct pointer types lacks a cast");
  
  	  if (result_type == NULL_TREE)
*************** build_binary_op (location_t location, en
*** 12798,12809 ****
  			      (build_qualified_type (void_type_node, qual));
  	    }
  	}
!       else if (code0 == POINTER_TYPE && code1 == INTEGER_TYPE)
  	{
  	  result_type = type0;
  	  pedwarn (location, 0, "comparison between pointer and integer");
  	}
!       else if (code0 == INTEGER_TYPE && code1 == POINTER_TYPE)
  	{
  	  result_type = type1;
  	  pedwarn (location, 0, "comparison between pointer and integer");
--- 12994,13007 ----
  			      (build_qualified_type (void_type_node, qual));
  	    }
  	}
!       else if (code0 == POINTER_TYPE
! 	       && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
  	{
  	  result_type = type0;
  	  pedwarn (location, 0, "comparison between pointer and integer");
  	}
!       else if ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
! 	       && code1 == POINTER_TYPE)
  	{
  	  result_type = type1;
  	  pedwarn (location, 0, "comparison between pointer and integer");
*************** build_binary_op (location_t location, en
*** 12891,12899 ****
          }
        build_type = integer_type_node;
        if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
! 	   || code0 == FIXED_POINT_TYPE)
  	  && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
! 	      || code1 == FIXED_POINT_TYPE))
  	short_compare = 1;
        else if (code0 == POINTER_TYPE && code1 == POINTER_TYPE)
  	{
--- 13089,13097 ----
          }
        build_type = integer_type_node;
        if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
! 	   || code0 == BITINT_TYPE || code0 == FIXED_POINT_TYPE)
  	  && (code1 == INTEGER_TYPE || code1 == REAL_TYPE
! 	      || code1 == BITINT_TYPE || code1 == FIXED_POINT_TYPE))
  	short_compare = 1;
        else if (code0 == POINTER_TYPE && code1 == POINTER_TYPE)
  	{
*************** build_binary_op (location_t location, en
*** 12928,12935 ****
  	      int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
  	      result_type = build_pointer_type
  			      (build_qualified_type (void_type_node, qual));
! 	      pedwarn (location, 0,
! 		       "comparison of distinct pointer types lacks a cast");
  	    }
  	}
        else if (code0 == POINTER_TYPE && null_pointer_constant_p (orig_op1))
--- 13126,13133 ----
  	      int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
  	      result_type = build_pointer_type
  			      (build_qualified_type (void_type_node, qual));
!               pedwarn (location, OPT_Wcompare_distinct_pointer_types,
!                        "comparison of distinct pointer types lacks a cast");
  	    }
  	}
        else if (code0 == POINTER_TYPE && null_pointer_constant_p (orig_op1))
*************** build_binary_op (location_t location, en
*** 12952,12963 ****
  	    warning_at (location, OPT_Wextra,
  			"ordered comparison of pointer with integer zero");
  	}
!       else if (code0 == POINTER_TYPE && code1 == INTEGER_TYPE)
  	{
  	  result_type = type0;
  	  pedwarn (location, 0, "comparison between pointer and integer");
  	}
!       else if (code0 == INTEGER_TYPE && code1 == POINTER_TYPE)
  	{
  	  result_type = type1;
  	  pedwarn (location, 0, "comparison between pointer and integer");
--- 13150,13163 ----
  	    warning_at (location, OPT_Wextra,
  			"ordered comparison of pointer with integer zero");
  	}
!       else if (code0 == POINTER_TYPE
! 	       && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
  	{
  	  result_type = type0;
  	  pedwarn (location, 0, "comparison between pointer and integer");
  	}
!       else if ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
! 	       && code1 == POINTER_TYPE)
  	{
  	  result_type = type1;
  	  pedwarn (location, 0, "comparison between pointer and integer");
*************** build_binary_op (location_t location, en
*** 13011,13022 ****
      }
  
    if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE || code0 == COMPLEX_TYPE
!        || code0 == FIXED_POINT_TYPE
         || gnu_vector_type_p (type0))
!       &&
!       (code1 == INTEGER_TYPE || code1 == REAL_TYPE || code1 == COMPLEX_TYPE
!        || code1 == FIXED_POINT_TYPE
!        || gnu_vector_type_p (type1)))
      {
        bool first_complex = (code0 == COMPLEX_TYPE);
        bool second_complex = (code1 == COMPLEX_TYPE);
--- 13211,13221 ----
      }
  
    if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE || code0 == COMPLEX_TYPE
!        || code0 == FIXED_POINT_TYPE || code0 == BITINT_TYPE
         || gnu_vector_type_p (type0))
!       && (code1 == INTEGER_TYPE || code1 == REAL_TYPE || code1 == COMPLEX_TYPE
! 	  || code1 == FIXED_POINT_TYPE || code1 == BITINT_TYPE
! 	  || gnu_vector_type_p (type1)))
      {
        bool first_complex = (code0 == COMPLEX_TYPE);
        bool second_complex = (code1 == COMPLEX_TYPE);
*************** build_binary_op (location_t location, en
*** 13333,13343 ****
  }
  
  
! /* Convert EXPR to be a truth-value, validating its type for this
     purpose.  LOCATION is the source location for the expression.  */
  
  tree
! c_objc_common_truthvalue_conversion (location_t location, tree expr)
  {
    bool int_const, int_operands;
  
--- 13532,13542 ----
  }
  
  
! /* Convert EXPR to be a truth-value (type TYPE), validating its type for this
     purpose.  LOCATION is the source location for the expression.  */
  
  tree
! c_objc_common_truthvalue_conversion (location_t location, tree expr, tree type)
  {
    bool int_const, int_operands;
  
*************** c_objc_common_truthvalue_conversion (loc
*** 13375,13393 ****
        break;
      }
  
!   int_const = (TREE_CODE (expr) == INTEGER_CST && !TREE_OVERFLOW (expr));
    int_operands = EXPR_INT_CONST_OPERANDS (expr);
    if (int_operands && TREE_CODE (expr) != INTEGER_CST)
      {
        expr = remove_c_maybe_const_expr (expr);
!       expr = build2 (NE_EXPR, integer_type_node, expr,
  		     convert (TREE_TYPE (expr), integer_zero_node));
        expr = note_integer_operands (expr);
      }
    else
!     /* ??? Should we also give an error for vectors rather than leaving
!        those to give errors later?  */
!     expr = c_common_truthvalue_conversion (location, expr);
  
    if (TREE_CODE (expr) == INTEGER_CST && int_operands && !int_const)
      {
--- 13574,13605 ----
        break;
      }
  
!   /* Conversion of a floating constant to boolean goes through here
!      and yields an integer constant expression.  Otherwise, the result
!      is only an integer constant expression if the argument is.  */
!   int_const = ((TREE_CODE (expr) == INTEGER_CST && !TREE_OVERFLOW (expr))
! 	       || ((TREE_CODE (expr) == REAL_CST
! 		    || TREE_CODE (expr) == COMPLEX_CST)
! 		   && (TREE_CODE (type) == BOOLEAN_TYPE
! 		       || (TREE_CODE (type) == ENUMERAL_TYPE
! 			   && ENUM_UNDERLYING_TYPE (type) != NULL_TREE
! 			   && (TREE_CODE (ENUM_UNDERLYING_TYPE (type))
! 			       == BOOLEAN_TYPE)))));
    int_operands = EXPR_INT_CONST_OPERANDS (expr);
    if (int_operands && TREE_CODE (expr) != INTEGER_CST)
      {
        expr = remove_c_maybe_const_expr (expr);
!       expr = build2 (NE_EXPR, type, expr,
  		     convert (TREE_TYPE (expr), integer_zero_node));
        expr = note_integer_operands (expr);
      }
    else
!     {
!       /* ??? Should we also give an error for vectors rather than leaving
! 	 those to give errors later?  */
!       expr = c_common_truthvalue_conversion (location, expr);
!       expr = fold_convert_loc (location, type, expr);
!     }
  
    if (TREE_CODE (expr) == INTEGER_CST && int_operands && !int_const)
      {
*************** handle_omp_array_sections_1 (tree c, tre
*** 13650,13659 ****
  			     enum c_omp_region_type ort)
  {
    tree ret, low_bound, length, type;
!   if (TREE_CODE (t) != TREE_LIST)
      {
        if (error_operand_p (t))
  	return error_mark_node;
        ret = t;
        if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_AFFINITY
  	  && OMP_CLAUSE_CODE (c) != OMP_CLAUSE_DEPEND
--- 13862,13873 ----
  			     enum c_omp_region_type ort)
  {
    tree ret, low_bound, length, type;
!   bool openacc = (ort & C_ORT_ACC) != 0;
!   if (TREE_CODE (t) != OMP_ARRAY_SECTION)
      {
        if (error_operand_p (t))
  	return error_mark_node;
+       c_omp_address_inspector ai (OMP_CLAUSE_LOCATION (c), t);
        ret = t;
        if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_AFFINITY
  	  && OMP_CLAUSE_CODE (c) != OMP_CLAUSE_DEPEND
*************** handle_omp_array_sections_1 (tree c, tre
*** 13663,13722 ****
  		    t, omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
  	  return error_mark_node;
  	}
!       while (TREE_CODE (t) == INDIRECT_REF)
! 	{
! 	  t = TREE_OPERAND (t, 0);
! 	  STRIP_NOPS (t);
! 	  if (TREE_CODE (t) == POINTER_PLUS_EXPR)
! 	    t = TREE_OPERAND (t, 0);
! 	}
!       while (TREE_CODE (t) == COMPOUND_EXPR)
! 	{
! 	  t = TREE_OPERAND (t, 1);
! 	  STRIP_NOPS (t);
! 	}
!       if (TREE_CODE (t) == COMPONENT_REF
! 	  && (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 	      || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_TO
! 	      || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_FROM))
! 	{
! 	  if (DECL_BIT_FIELD (TREE_OPERAND (t, 1)))
! 	    {
! 	      error_at (OMP_CLAUSE_LOCATION (c),
! 			"bit-field %qE in %qs clause",
! 			t, omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 	      return error_mark_node;
! 	    }
! 	  while (TREE_CODE (t) == COMPONENT_REF)
! 	    {
! 	      if (TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == UNION_TYPE)
! 		{
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%qE is a member of a union", t);
! 		  return error_mark_node;
! 		}
! 	      t = TREE_OPERAND (t, 0);
! 	      while (TREE_CODE (t) == MEM_REF
! 		     || TREE_CODE (t) == INDIRECT_REF
! 		     || TREE_CODE (t) == ARRAY_REF)
! 		{
! 		  t = TREE_OPERAND (t, 0);
! 		  STRIP_NOPS (t);
! 		  if (TREE_CODE (t) == POINTER_PLUS_EXPR)
! 		    t = TREE_OPERAND (t, 0);
! 		}
! 	      if (ort == C_ORT_ACC && TREE_CODE (t) == MEM_REF)
! 		{
! 		  if (maybe_ne (mem_ref_offset (t), 0))
! 		    error_at (OMP_CLAUSE_LOCATION (c),
! 			      "cannot dereference %qE in %qs clause", t,
! 			      omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		  else
! 		    t = TREE_OPERAND (t, 0);
! 		}
! 	    }
! 	}
!       if (!VAR_P (t) && TREE_CODE (t) != PARM_DECL)
  	{
  	  if (DECL_P (t))
  	    error_at (OMP_CLAUSE_LOCATION (c),
--- 13877,13896 ----
  		    t, omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
  	  return error_mark_node;
  	}
!       if (!ai.check_clause (c))
! 	return error_mark_node;
!       else if (ai.component_access_p ()
! 	       && (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		   || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_TO
! 		   || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_FROM))
! 	t = ai.get_root_term (true);
!       else
! 	t = ai.unconverted_ref_origin ();
!       if (t == error_mark_node)
! 	return error_mark_node;
!       if (!VAR_P (t)
! 	  && (ort == C_ORT_ACC || !EXPR_P (t))
! 	  && TREE_CODE (t) != PARM_DECL)
  	{
  	  if (DECL_P (t))
  	    error_at (OMP_CLAUSE_LOCATION (c),
*************** handle_omp_array_sections_1 (tree c, tre
*** 13764,13777 ****
        return ret;
      }
  
!   ret = handle_omp_array_sections_1 (c, TREE_CHAIN (t), types,
  				     maybe_zero_len, first_non_one, ort);
    if (ret == error_mark_node || ret == NULL_TREE)
      return ret;
  
    type = TREE_TYPE (ret);
!   low_bound = TREE_PURPOSE (t);
!   length = TREE_VALUE (t);
  
    if (low_bound == error_mark_node || length == error_mark_node)
      return error_mark_node;
--- 13938,13951 ----
        return ret;
      }
  
!   ret = handle_omp_array_sections_1 (c, TREE_OPERAND (t, 0), types,
  				     maybe_zero_len, first_non_one, ort);
    if (ret == error_mark_node || ret == NULL_TREE)
      return ret;
  
    type = TREE_TYPE (ret);
!   low_bound = TREE_OPERAND (t, 1);
!   length = TREE_OPERAND (t, 2);
  
    if (low_bound == error_mark_node || length == error_mark_node)
      return error_mark_node;
*************** handle_omp_array_sections_1 (tree c, tre
*** 13810,13816 ****
  	{
  	  error_at (OMP_CLAUSE_LOCATION (c),
  		    "expected single pointer in %qs clause",
! 		    user_omp_clause_code_name (c, ort == C_ORT_ACC));
  	  return error_mark_node;
  	}
      }
--- 13984,13990 ----
  	{
  	  error_at (OMP_CLAUSE_LOCATION (c),
  		    "expected single pointer in %qs clause",
! 		    user_omp_clause_code_name (c, openacc));
  	  return error_mark_node;
  	}
      }
*************** handle_omp_array_sections_1 (tree c, tre
*** 13964,13970 ****
  	  tree lb = save_expr (low_bound);
  	  if (lb != low_bound)
  	    {
! 	      TREE_PURPOSE (t) = lb;
  	      low_bound = lb;
  	    }
  	}
--- 14138,14144 ----
  	  tree lb = save_expr (low_bound);
  	  if (lb != low_bound)
  	    {
! 	      TREE_OPERAND (t, 1) = lb;
  	      low_bound = lb;
  	    }
  	}
*************** handle_omp_array_sections_1 (tree c, tre
*** 13995,14008 ****
  	 array-section-subscript, the array section could be non-contiguous.  */
        if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_DEPEND
  	  && OMP_CLAUSE_CODE (c) != OMP_CLAUSE_AFFINITY
! 	  && TREE_CODE (TREE_CHAIN (t)) == TREE_LIST)
  	{
  	  /* If any prior dimension has a non-one length, then deem this
  	     array section as non-contiguous.  */
! 	  for (tree d = TREE_CHAIN (t); TREE_CODE (d) == TREE_LIST;
! 	       d = TREE_CHAIN (d))
  	    {
! 	      tree d_length = TREE_VALUE (d);
  	      if (d_length == NULL_TREE || !integer_onep (d_length))
  		{
  		  error_at (OMP_CLAUSE_LOCATION (c),
--- 14169,14183 ----
  	 array-section-subscript, the array section could be non-contiguous.  */
        if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_DEPEND
  	  && OMP_CLAUSE_CODE (c) != OMP_CLAUSE_AFFINITY
! 	  && TREE_CODE (TREE_OPERAND (t, 0)) == OMP_ARRAY_SECTION)
  	{
  	  /* If any prior dimension has a non-one length, then deem this
  	     array section as non-contiguous.  */
! 	  for (tree d = TREE_OPERAND (t, 0);
! 	       TREE_CODE (d) == OMP_ARRAY_SECTION;
! 	       d = TREE_OPERAND (d, 0))
  	    {
! 	      tree d_length = TREE_OPERAND (d, 2);
  	      if (d_length == NULL_TREE || !integer_onep (d_length))
  		{
  		  error_at (OMP_CLAUSE_LOCATION (c),
*************** handle_omp_array_sections_1 (tree c, tre
*** 14025,14031 ****
    tree lb = save_expr (low_bound);
    if (lb != low_bound)
      {
!       TREE_PURPOSE (t) = lb;
        low_bound = lb;
      }
    ret = build_array_ref (OMP_CLAUSE_LOCATION (c), ret, low_bound);
--- 14200,14206 ----
    tree lb = save_expr (low_bound);
    if (lb != low_bound)
      {
!       TREE_OPERAND (t, 1) = lb;
        low_bound = lb;
      }
    ret = build_array_ref (OMP_CLAUSE_LOCATION (c), ret, low_bound);
*************** handle_omp_array_sections_1 (tree c, tre
*** 14035,14041 ****
  /* Handle array sections for clause C.  */
  
  static bool
! handle_omp_array_sections (tree c, enum c_omp_region_type ort)
  {
    bool maybe_zero_len = false;
    unsigned int first_non_one = 0;
--- 14210,14216 ----
  /* Handle array sections for clause C.  */
  
  static bool
! handle_omp_array_sections (tree &c, enum c_omp_region_type ort)
  {
    bool maybe_zero_len = false;
    unsigned int first_non_one = 0;
*************** handle_omp_array_sections (tree c, enum
*** 14088,14097 ****
  	maybe_zero_len = true;
  
        for (i = num, t = OMP_CLAUSE_DECL (c); i > 0;
! 	   t = TREE_CHAIN (t))
  	{
! 	  tree low_bound = TREE_PURPOSE (t);
! 	  tree length = TREE_VALUE (t);
  
  	  i--;
  	  if (low_bound
--- 14263,14272 ----
  	maybe_zero_len = true;
  
        for (i = num, t = OMP_CLAUSE_DECL (c); i > 0;
! 	   t = TREE_OPERAND (t, 0))
  	{
! 	  tree low_bound = TREE_OPERAND (t, 1);
! 	  tree length = TREE_OPERAND (t, 2);
  
  	  i--;
  	  if (low_bound
*************** handle_omp_array_sections (tree c, enum
*** 14244,14301 ****
        OMP_CLAUSE_DECL (c) = first;
        if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_HAS_DEVICE_ADDR)
  	return false;
!       if (size)
! 	size = c_fully_fold (size, false, NULL);
!       OMP_CLAUSE_SIZE (c) = size;
        if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP
! 	  || (TREE_CODE (t) == COMPONENT_REF
! 	      && TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE))
! 	return false;
!       gcc_assert (OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_FORCE_DEVICEPTR);
!       switch (OMP_CLAUSE_MAP_KIND (c))
  	{
! 	case GOMP_MAP_ALLOC:
! 	case GOMP_MAP_IF_PRESENT:
! 	case GOMP_MAP_TO:
! 	case GOMP_MAP_FROM:
! 	case GOMP_MAP_TOFROM:
! 	case GOMP_MAP_ALWAYS_TO:
! 	case GOMP_MAP_ALWAYS_FROM:
! 	case GOMP_MAP_ALWAYS_TOFROM:
! 	case GOMP_MAP_RELEASE:
! 	case GOMP_MAP_DELETE:
! 	case GOMP_MAP_FORCE_TO:
! 	case GOMP_MAP_FORCE_FROM:
! 	case GOMP_MAP_FORCE_TOFROM:
! 	case GOMP_MAP_FORCE_PRESENT:
! 	  OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION (c) = 1;
! 	  break;
! 	default:
! 	  break;
  	}
!       tree c2 = build_omp_clause (OMP_CLAUSE_LOCATION (c), OMP_CLAUSE_MAP);
!       if (TREE_CODE (t) == COMPONENT_REF)
! 	OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
!       else
! 	OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_FIRSTPRIVATE_POINTER);
!       OMP_CLAUSE_MAP_IMPLICIT (c2) = OMP_CLAUSE_MAP_IMPLICIT (c);
!       if (OMP_CLAUSE_MAP_KIND (c2) != GOMP_MAP_FIRSTPRIVATE_POINTER
! 	  && !c_mark_addressable (t))
  	return false;
!       OMP_CLAUSE_DECL (c2) = t;
!       t = build_fold_addr_expr (first);
!       t = fold_convert_loc (OMP_CLAUSE_LOCATION (c), ptrdiff_type_node, t);
!       tree ptr = OMP_CLAUSE_DECL (c2);
!       if (!POINTER_TYPE_P (TREE_TYPE (ptr)))
! 	ptr = build_fold_addr_expr (ptr);
!       t = fold_build2_loc (OMP_CLAUSE_LOCATION (c), MINUS_EXPR,
! 			   ptrdiff_type_node, t,
! 			   fold_convert_loc (OMP_CLAUSE_LOCATION (c),
! 					     ptrdiff_type_node, ptr));
!       t = c_fully_fold (t, false, NULL);
!       OMP_CLAUSE_SIZE (c2) = t;
!       OMP_CLAUSE_CHAIN (c2) = OMP_CLAUSE_CHAIN (c);
!       OMP_CLAUSE_CHAIN (c) = c2;
      }
    return false;
  }
--- 14419,14465 ----
        OMP_CLAUSE_DECL (c) = first;
        if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_HAS_DEVICE_ADDR)
  	return false;
!       /* Don't set OMP_CLAUSE_SIZE for bare attach/detach clauses.  */
        if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP
! 	  || (OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_ATTACH
! 	      && OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_DETACH
! 	      && OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_FORCE_DETACH))
  	{
! 	  if (size)
! 	    size = c_fully_fold (size, false, NULL);
! 	  OMP_CLAUSE_SIZE (c) = size;
  	}
! 
!       if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP)
  	return false;
! 
!       auto_vec<omp_addr_token *, 10> addr_tokens;
! 
!       if (!omp_parse_expr (addr_tokens, first))
! 	return true;
! 
!       c_omp_address_inspector ai (OMP_CLAUSE_LOCATION (c), t);
! 
!       tree nc = ai.expand_map_clause (c, first, addr_tokens, ort);
!       if (nc != error_mark_node)
! 	{
! 	  using namespace omp_addr_tokenizer;
! 
! 	  if (ai.maybe_zero_length_array_section (c))
! 	    OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION (c) = 1;
! 
! 	  /* !!! If we're accessing a base decl via chained access
! 	     methods (e.g. multiple indirections), duplicate clause
! 	     detection won't work properly.  Skip it in that case.  */
! 	  if ((addr_tokens[0]->type == STRUCTURE_BASE
! 	       || addr_tokens[0]->type == ARRAY_BASE)
! 	      && addr_tokens[0]->u.structure_base_kind == BASE_DECL
! 	      && addr_tokens[1]->type == ACCESS_METHOD
! 	      && omp_access_chain_p (addr_tokens, 1))
! 	    c = nc;
! 
! 	  return false;
! 	}
      }
    return false;
  }
*************** c_oacc_check_attachments (tree c)
*** 14527,14534 ****
      {
        tree t = OMP_CLAUSE_DECL (c);
  
!       while (TREE_CODE (t) == TREE_LIST)
! 	t = TREE_CHAIN (t);
  
        if (TREE_CODE (TREE_TYPE (t)) != POINTER_TYPE)
  	{
--- 14691,14698 ----
      {
        tree t = OMP_CLAUSE_DECL (c);
  
!       while (TREE_CODE (t) == OMP_ARRAY_SECTION)
! 	t = TREE_OPERAND (t, 0);
  
        if (TREE_CODE (TREE_TYPE (t)) != POINTER_TYPE)
  	{
*************** c_finish_omp_clauses (tree clauses, enum
*** 14561,14567 ****
    tree ordered_clause = NULL_TREE;
    tree schedule_clause = NULL_TREE;
    bool oacc_async = false;
-   bool indir_component_ref_p = false;
    tree last_iterators = NULL_TREE;
    bool last_iterators_remove = false;
    tree *nogroup_seen = NULL;
--- 14725,14730 ----
*************** c_finish_omp_clauses (tree clauses, enum
*** 14572,14577 ****
--- 14735,14741 ----
    bool allocate_seen = false;
    bool implicit_moved = false;
    bool target_in_reduction_seen = false;
+   bool openacc = (ort & C_ORT_ACC) != 0;
  
    bitmap_obstack_initialize (NULL);
    bitmap_initialize (&generic_head, &bitmap_default_obstack);
*************** c_finish_omp_clauses (tree clauses, enum
*** 14587,14593 ****
    bitmap_initialize (&oacc_reduction_head, &bitmap_default_obstack);
    bitmap_initialize (&is_on_device_head, &bitmap_default_obstack);
  
!   if (ort & C_ORT_ACC)
      for (c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
        if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_ASYNC)
  	{
--- 14751,14757 ----
    bitmap_initialize (&oacc_reduction_head, &bitmap_default_obstack);
    bitmap_initialize (&is_on_device_head, &bitmap_default_obstack);
  
!   if (openacc)
      for (c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
        if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_ASYNC)
  	{
*************** c_finish_omp_clauses (tree clauses, enum
*** 14636,14642 ****
  	case OMP_CLAUSE_TASK_REDUCTION:
  	  need_implicitly_determined = true;
  	  t = OMP_CLAUSE_DECL (c);
! 	  if (TREE_CODE (t) == TREE_LIST)
  	    {
  	      if (handle_omp_array_sections (c, ort))
  		{
--- 14800,14806 ----
  	case OMP_CLAUSE_TASK_REDUCTION:
  	  need_implicitly_determined = true;
  	  t = OMP_CLAUSE_DECL (c);
! 	  if (TREE_CODE (t) == OMP_ARRAY_SECTION)
  	    {
  	      if (handle_omp_array_sections (c, ort))
  		{
*************** c_finish_omp_clauses (tree clauses, enum
*** 14981,14988 ****
  			omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
  	      remove = true;
  	    }
! 	  else if ((ort == C_ORT_ACC
! 		    && OMP_CLAUSE_CODE (c) == OMP_CLAUSE_REDUCTION)
  		   || (ort == C_ORT_OMP
  		       && (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_USE_DEVICE_PTR
  			   || (OMP_CLAUSE_CODE (c)
--- 15145,15151 ----
  			omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
  	      remove = true;
  	    }
! 	  else if ((openacc && OMP_CLAUSE_CODE (c) == OMP_CLAUSE_REDUCTION)
  		   || (ort == C_ORT_OMP
  		       && (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_USE_DEVICE_PTR
  			   || (OMP_CLAUSE_CODE (c)
*************** c_finish_omp_clauses (tree clauses, enum
*** 15005,15011 ****
  	      if (bitmap_bit_p (&oacc_reduction_head, DECL_UID (t)))
  		{
  		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    ort == C_ORT_ACC
  			    ? "%qD appears more than once in reduction clauses"
  			    : "%qD appears more than once in data clauses",
  			    t);
--- 15168,15174 ----
  	      if (bitmap_bit_p (&oacc_reduction_head, DECL_UID (t)))
  		{
  		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    openacc
  			    ? "%qD appears more than once in reduction clauses"
  			    : "%qD appears more than once in data clauses",
  			    t);
*************** c_finish_omp_clauses (tree clauses, enum
*** 15028,15034 ****
  		    || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_IS_DEVICE_PTR)
  		   && bitmap_bit_p (&map_head, DECL_UID (t)))
  	    {
! 	      if (ort == C_ORT_ACC)
  		error_at (OMP_CLAUSE_LOCATION (c),
  			  "%qD appears more than once in data clauses", t);
  	      else
--- 15191,15197 ----
  		    || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_IS_DEVICE_PTR)
  		   && bitmap_bit_p (&map_head, DECL_UID (t)))
  	    {
! 	      if (openacc)
  		error_at (OMP_CLAUSE_LOCATION (c),
  			  "%qD appears more than once in data clauses", t);
  	      else
*************** c_finish_omp_clauses (tree clauses, enum
*** 15093,15101 ****
  			"%qE appears more than once in data clauses", t);
  	      remove = true;
  	    }
! 	  else if (bitmap_bit_p (&map_head, DECL_UID (t)))
  	    {
! 	      if (ort == C_ORT_ACC)
  		error_at (OMP_CLAUSE_LOCATION (c),
  			  "%qD appears more than once in data clauses", t);
  	      else if (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT (c)
--- 15256,15265 ----
  			"%qE appears more than once in data clauses", t);
  	      remove = true;
  	    }
! 	  else if (bitmap_bit_p (&map_head, DECL_UID (t))
! 		   || bitmap_bit_p (&map_field_head, DECL_UID (t)))
  	    {
! 	      if (openacc)
  		error_at (OMP_CLAUSE_LOCATION (c),
  			  "%qD appears more than once in data clauses", t);
  	      else if (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT (c)
*************** c_finish_omp_clauses (tree clauses, enum
*** 15257,15263 ****
  	    }
  	  else
  	    last_iterators = NULL_TREE;
! 	  if (TREE_CODE (t) == TREE_LIST)
  	    {
  	      if (handle_omp_array_sections (c, ort))
  		remove = true;
--- 15421,15427 ----
  	    }
  	  else
  	    last_iterators = NULL_TREE;
! 	  if (TREE_CODE (t) == OMP_ARRAY_SECTION)
  	    {
  	      if (handle_omp_array_sections (c, ort))
  		remove = true;
*************** c_finish_omp_clauses (tree clauses, enum
*** 15362,15682 ****
  	case OMP_CLAUSE_TO:
  	case OMP_CLAUSE_FROM:
  	case OMP_CLAUSE__CACHE_:
! 	  t = OMP_CLAUSE_DECL (c);
! 	  if (TREE_CODE (t) == TREE_LIST)
! 	    {
! 	      grp_start_p = pc;
! 	      grp_sentinel = OMP_CLAUSE_CHAIN (c);
! 
! 	      if (handle_omp_array_sections (c, ort))
! 		remove = true;
! 	      else
! 		{
! 		  t = OMP_CLAUSE_DECL (c);
! 		  if (!omp_mappable_type (TREE_TYPE (t)))
! 		    {
! 		      error_at (OMP_CLAUSE_LOCATION (c),
! 				"array section does not have mappable type "
! 				"in %qs clause",
! 				omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		      remove = true;
! 		    }
! 		  else if (TYPE_ATOMIC (TREE_TYPE (t)))
! 		    {
! 		      error_at (OMP_CLAUSE_LOCATION (c),
! 				"%<_Atomic%> %qE in %qs clause", t,
! 				omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		      remove = true;
! 		    }
! 		  while (TREE_CODE (t) == ARRAY_REF)
! 		    t = TREE_OPERAND (t, 0);
! 		  if (TREE_CODE (t) == COMPONENT_REF
! 		      && TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE)
! 		    {
! 		      do
! 			{
! 			  t = TREE_OPERAND (t, 0);
! 			  if (TREE_CODE (t) == MEM_REF
! 			      || TREE_CODE (t) == INDIRECT_REF)
! 			    {
! 			      t = TREE_OPERAND (t, 0);
! 			      STRIP_NOPS (t);
! 			      if (TREE_CODE (t) == POINTER_PLUS_EXPR)
! 				t = TREE_OPERAND (t, 0);
! 			    }
! 			}
! 		      while (TREE_CODE (t) == COMPONENT_REF
! 			     || TREE_CODE (t) == ARRAY_REF);
  
! 		      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 			  && OMP_CLAUSE_MAP_IMPLICIT (c)
! 			  && (bitmap_bit_p (&map_head, DECL_UID (t))
! 			      || bitmap_bit_p (&map_field_head, DECL_UID (t))
! 			      || bitmap_bit_p (&map_firstprivate_head,
! 					       DECL_UID (t))))
! 			{
! 			  remove = true;
! 			  break;
! 			}
! 		      if (bitmap_bit_p (&map_field_head, DECL_UID (t)))
! 			break;
! 		      if (bitmap_bit_p (&map_head, DECL_UID (t)))
! 			{
! 			  if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP)
! 			    error_at (OMP_CLAUSE_LOCATION (c),
! 				      "%qD appears more than once in motion "
! 				      "clauses", t);
! 			  else if (ort == C_ORT_ACC)
! 			    error_at (OMP_CLAUSE_LOCATION (c),
! 				      "%qD appears more than once in data "
! 				      "clauses", t);
! 			  else
! 			    error_at (OMP_CLAUSE_LOCATION (c),
! 				      "%qD appears more than once in map "
! 				      "clauses", t);
! 			  remove = true;
! 			}
! 		      else
! 			{
! 			  bitmap_set_bit (&map_head, DECL_UID (t));
! 			  bitmap_set_bit (&map_field_head, DECL_UID (t));
! 			}
! 		    }
! 		}
! 	      if (c_oacc_check_attachments (c))
! 		remove = true;
! 	      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		  && (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_ATTACH
! 		      || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_DETACH))
! 		/* In this case, we have a single array element which is a
! 		   pointer, and we already set OMP_CLAUSE_SIZE in
! 		   handle_omp_array_sections above.  For attach/detach clauses,
! 		   reset the OMP_CLAUSE_SIZE (representing a bias) to zero
! 		   here.  */
! 		OMP_CLAUSE_SIZE (c) = size_zero_node;
! 	      break;
! 	    }
! 	  if (t == error_mark_node)
! 	    {
! 	      remove = true;
! 	      break;
! 	    }
! 	  /* OpenACC attach / detach clauses must be pointers.  */
! 	  if (c_oacc_check_attachments (c))
! 	    {
! 	      remove = true;
! 	      break;
! 	    }
! 	  if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 	      && (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_ATTACH
! 		  || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_DETACH))
! 	    /* For attach/detach clauses, set OMP_CLAUSE_SIZE (representing a
! 	       bias) to zero here, so it is not set erroneously to the pointer
! 	       size later on in gimplify.cc.  */
! 	    OMP_CLAUSE_SIZE (c) = size_zero_node;
! 	  while (TREE_CODE (t) == INDIRECT_REF
! 		 || TREE_CODE (t) == ARRAY_REF)
! 	    {
! 	      t = TREE_OPERAND (t, 0);
! 	      STRIP_NOPS (t);
! 	      if (TREE_CODE (t) == POINTER_PLUS_EXPR)
! 		t = TREE_OPERAND (t, 0);
! 	    }
! 	  while (TREE_CODE (t) == COMPOUND_EXPR)
! 	    {
! 	      t = TREE_OPERAND (t, 1);
! 	      STRIP_NOPS (t);
! 	    }
! 	  indir_component_ref_p = false;
! 	  if (TREE_CODE (t) == COMPONENT_REF
! 	      && (TREE_CODE (TREE_OPERAND (t, 0)) == MEM_REF
! 		  || TREE_CODE (TREE_OPERAND (t, 0)) == INDIRECT_REF
! 		  || TREE_CODE (TREE_OPERAND (t, 0)) == ARRAY_REF))
! 	    {
! 	      t = TREE_OPERAND (TREE_OPERAND (t, 0), 0);
! 	      indir_component_ref_p = true;
! 	      STRIP_NOPS (t);
! 	      if (TREE_CODE (t) == POINTER_PLUS_EXPR)
! 		t = TREE_OPERAND (t, 0);
! 	    }
  
! 	  if (TREE_CODE (t) == COMPONENT_REF
! 	      && OMP_CLAUSE_CODE (c) != OMP_CLAUSE__CACHE_)
! 	    {
! 	      if (DECL_BIT_FIELD (TREE_OPERAND (t, 1)))
! 		{
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "bit-field %qE in %qs clause",
! 			    t, omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		  remove = true;
! 		}
! 	      else if (!omp_mappable_type (TREE_TYPE (t)))
! 		{
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%qE does not have a mappable type in %qs clause",
! 			    t, omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		  remove = true;
! 		}
! 	      else if (TYPE_ATOMIC (TREE_TYPE (t)))
! 		{
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%<_Atomic%> %qE in %qs clause", t,
! 			    omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
  		  remove = true;
! 		}
! 	      while (TREE_CODE (t) == COMPONENT_REF)
! 		{
! 		  if (TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0)))
! 		      == UNION_TYPE)
! 		    {
! 		      error_at (OMP_CLAUSE_LOCATION (c),
! 				"%qE is a member of a union", t);
! 		      remove = true;
! 		      break;
! 		    }
! 		  t = TREE_OPERAND (t, 0);
! 		  if (TREE_CODE (t) == MEM_REF)
! 		    {
! 		      if (maybe_ne (mem_ref_offset (t), 0))
  			error_at (OMP_CLAUSE_LOCATION (c),
! 				  "cannot dereference %qE in %qs clause", t,
  				  omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		      else
! 			t = TREE_OPERAND (t, 0);
! 		    }
! 		  while (TREE_CODE (t) == MEM_REF
! 			 || TREE_CODE (t) == INDIRECT_REF
! 			 || TREE_CODE (t) == ARRAY_REF)
! 		    {
  		      t = TREE_OPERAND (t, 0);
! 		      STRIP_NOPS (t);
! 		      if (TREE_CODE (t) == POINTER_PLUS_EXPR)
! 			t = TREE_OPERAND (t, 0);
! 		    }
! 		}
! 	      if (remove)
  		break;
! 	      if (VAR_P (t) || TREE_CODE (t) == PARM_DECL)
! 		{
! 		  if (bitmap_bit_p (&map_field_head, DECL_UID (t))
! 		      || (ort != C_ORT_ACC
! 			  && bitmap_bit_p (&map_head, DECL_UID (t))))
! 		    break;
! 		}
! 	    }
! 	  if (!VAR_P (t) && TREE_CODE (t) != PARM_DECL)
! 	    {
! 	      error_at (OMP_CLAUSE_LOCATION (c),
! 			"%qE is not a variable in %qs clause", t,
! 			omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 	      remove = true;
! 	    }
! 	  else if (VAR_P (t) && DECL_THREAD_LOCAL_P (t))
! 	    {
! 	      error_at (OMP_CLAUSE_LOCATION (c),
! 			"%qD is threadprivate variable in %qs clause", t,
! 			omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
  	      remove = true;
! 	    }
! 	  else if ((OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP
! 		    || (OMP_CLAUSE_MAP_KIND (c)
! 			!= GOMP_MAP_FIRSTPRIVATE_POINTER))
! 		   && !indir_component_ref_p
! 		   && !c_mark_addressable (t))
! 	    remove = true;
! 	  else if (!(OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		     && (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_POINTER
! 			 || (OMP_CLAUSE_MAP_KIND (c)
! 			     == GOMP_MAP_FIRSTPRIVATE_POINTER)
! 			 || (OMP_CLAUSE_MAP_KIND (c)
! 			     == GOMP_MAP_FORCE_DEVICEPTR)))
! 		   && t == OMP_CLAUSE_DECL (c)
! 		   && !omp_mappable_type (TREE_TYPE (t)))
! 	    {
! 	      error_at (OMP_CLAUSE_LOCATION (c),
! 			"%qD does not have a mappable type in %qs clause", t,
! 			omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
  	      remove = true;
! 	    }
! 	  else if (TREE_TYPE (t) == error_mark_node)
! 	    remove = true;
! 	  else if (TYPE_ATOMIC (strip_array_types (TREE_TYPE (t))))
! 	    {
! 	      error_at (OMP_CLAUSE_LOCATION (c),
! 			"%<_Atomic%> %qE in %qs clause", t,
! 			omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
  	      remove = true;
! 	    }
! 	  else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		   && OMP_CLAUSE_MAP_IMPLICIT (c)
! 		   && (bitmap_bit_p (&map_head, DECL_UID (t))
! 		       || bitmap_bit_p (&map_field_head, DECL_UID (t))
! 		       || bitmap_bit_p (&map_firstprivate_head, DECL_UID (t))))
! 	    remove = true;
! 	  else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		   && OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_FIRSTPRIVATE_POINTER)
! 	    {
! 	      if (bitmap_bit_p (&generic_head, DECL_UID (t))
! 		  || bitmap_bit_p (&firstprivate_head, DECL_UID (t))
! 		  || bitmap_bit_p (&map_firstprivate_head, DECL_UID (t)))
! 		{
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%qD appears more than once in data clauses", t);
! 		  remove = true;
! 		}
! 	      else if (bitmap_bit_p (&map_head, DECL_UID (t))
! 		       && !bitmap_bit_p (&map_field_head, DECL_UID (t)))
! 		{
! 		  if (ort == C_ORT_ACC)
  		    error_at (OMP_CLAUSE_LOCATION (c),
  			      "%qD appears more than once in data clauses", t);
! 		  else
  		    error_at (OMP_CLAUSE_LOCATION (c),
! 			      "%qD appears both in data and map clauses", t);
! 		  remove = true;
! 		}
! 	      else
! 		bitmap_set_bit (&map_firstprivate_head, DECL_UID (t));
! 	    }
! 	  else if (bitmap_bit_p (&map_head, DECL_UID (t))
! 		   && !bitmap_bit_p (&map_field_head, DECL_UID (t)))
! 	    {
! 	      if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP)
! 		error_at (OMP_CLAUSE_LOCATION (c),
! 			  "%qD appears more than once in motion clauses", t);
! 	      else if (ort == C_ORT_ACC)
! 		error_at (OMP_CLAUSE_LOCATION (c),
! 			  "%qD appears more than once in data clauses", t);
! 	      else
! 		error_at (OMP_CLAUSE_LOCATION (c),
! 			  "%qD appears more than once in map clauses", t);
! 	      remove = true;
! 	    }
! 	  else if (ort == C_ORT_ACC
! 		   && bitmap_bit_p (&generic_head, DECL_UID (t)))
! 	    {
! 	      error_at (OMP_CLAUSE_LOCATION (c),
! 			"%qD appears more than once in data clauses", t);
! 	      remove = true;
! 	    }
! 	  else if (bitmap_bit_p (&firstprivate_head, DECL_UID (t))
! 		   || bitmap_bit_p (&is_on_device_head, DECL_UID (t)))
! 	    {
! 	      if (ort == C_ORT_ACC)
  		error_at (OMP_CLAUSE_LOCATION (c),
  			  "%qD appears more than once in data clauses", t);
! 	      else
! 		error_at (OMP_CLAUSE_LOCATION (c),
! 			  "%qD appears both in data and map clauses", t);
! 	      remove = true;
! 	    }
! 	  else
! 	    {
! 	      bitmap_set_bit (&map_head, DECL_UID (t));
! 	      if (t != OMP_CLAUSE_DECL (c)
! 		  && TREE_CODE (OMP_CLAUSE_DECL (c)) == COMPONENT_REF)
! 		bitmap_set_bit (&map_field_head, DECL_UID (t));
! 	    }
  	  break;
  
  	case OMP_CLAUSE_ENTER:
--- 15526,15844 ----
  	case OMP_CLAUSE_TO:
  	case OMP_CLAUSE_FROM:
  	case OMP_CLAUSE__CACHE_:
! 	  {
! 	    using namespace omp_addr_tokenizer;
! 	    auto_vec<omp_addr_token *, 10> addr_tokens;
  
! 	    t = OMP_CLAUSE_DECL (c);
! 	    if (TREE_CODE (t) == OMP_ARRAY_SECTION)
! 	      {
! 		grp_start_p = pc;
! 		grp_sentinel = OMP_CLAUSE_CHAIN (c);
  
! 		if (handle_omp_array_sections (c, ort))
  		  remove = true;
! 		else
! 		  {
! 		    t = OMP_CLAUSE_DECL (c);
! 		    if (!omp_mappable_type (TREE_TYPE (t)))
! 		      {
  			error_at (OMP_CLAUSE_LOCATION (c),
! 				  "array section does not have mappable type "
! 				  "in %qs clause",
  				  omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 			remove = true;
! 		      }
! 		    else if (TYPE_ATOMIC (TREE_TYPE (t)))
! 		      {
! 			error_at (OMP_CLAUSE_LOCATION (c),
! 				  "%<_Atomic%> %qE in %qs clause", t,
! 				  omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 			remove = true;
! 		      }
! 		    while (TREE_CODE (t) == ARRAY_REF)
  		      t = TREE_OPERAND (t, 0);
! 
! 		    c_omp_address_inspector ai (OMP_CLAUSE_LOCATION (c), t);
! 
! 		    if (!omp_parse_expr (addr_tokens, t))
! 		      {
! 			sorry_at (OMP_CLAUSE_LOCATION (c),
! 				  "unsupported map expression %qE",
! 				  OMP_CLAUSE_DECL (c));
! 			remove = true;
! 			break;
! 		      }
! 
! 		    /* This check is to determine if this will be the only map
! 		       node created for this clause.  Otherwise, we'll check
! 		       the following FIRSTPRIVATE_POINTER or ATTACH_DETACH
! 		       node on the next iteration(s) of the loop.   */
! 		    if (addr_tokens.length () >= 4
! 			&& addr_tokens[0]->type == STRUCTURE_BASE
! 			&& addr_tokens[0]->u.structure_base_kind == BASE_DECL
! 			&& addr_tokens[1]->type == ACCESS_METHOD
! 			&& addr_tokens[2]->type == COMPONENT_SELECTOR
! 			&& addr_tokens[3]->type == ACCESS_METHOD
! 			&& (addr_tokens[3]->u.access_kind == ACCESS_DIRECT
! 			    || (addr_tokens[3]->u.access_kind
! 				== ACCESS_INDEXED_ARRAY)))
! 		      {
! 			tree rt = addr_tokens[1]->expr;
! 
! 			gcc_assert (DECL_P (rt));
! 
! 			if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 			    && OMP_CLAUSE_MAP_IMPLICIT (c)
! 			    && (bitmap_bit_p (&map_head, DECL_UID (rt))
! 				|| bitmap_bit_p (&map_field_head, DECL_UID (rt))
! 				|| bitmap_bit_p (&map_firstprivate_head,
! 						 DECL_UID (rt))))
! 			  {
! 			    remove = true;
! 			    break;
! 			  }
! 			if (bitmap_bit_p (&map_field_head, DECL_UID (rt)))
! 			  break;
! 			if (bitmap_bit_p (&map_head, DECL_UID (rt)))
! 			  {
! 			    if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP)
! 			      error_at (OMP_CLAUSE_LOCATION (c),
! 					"%qD appears more than once in motion "
! 					"clauses", rt);
! 			    else if (openacc)
! 			      error_at (OMP_CLAUSE_LOCATION (c),
! 					"%qD appears more than once in data "
! 					"clauses", rt);
! 			    else
! 			      error_at (OMP_CLAUSE_LOCATION (c),
! 					"%qD appears more than once in map "
! 					"clauses", rt);
! 			    remove = true;
! 			  }
! 			else
! 			  {
! 			    bitmap_set_bit (&map_head, DECL_UID (rt));
! 			    bitmap_set_bit (&map_field_head, DECL_UID (rt));
! 			  }
! 		      }
! 		  }
! 		if (c_oacc_check_attachments (c))
! 		  remove = true;
! 		if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		    && (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_ATTACH
! 			|| OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_DETACH)
! 		    && !OMP_CLAUSE_SIZE (c))
! 		  /* In this case, we have a single array element which is a
! 		     pointer, and we already set OMP_CLAUSE_SIZE in
! 		     handle_omp_array_sections above.  For attach/detach
! 		     clauses, reset the OMP_CLAUSE_SIZE (representing a bias)
! 		     to zero here.  */
! 		  OMP_CLAUSE_SIZE (c) = size_zero_node;
  		break;
! 	      }
! 	    else if (!omp_parse_expr (addr_tokens, t))
! 	      {
! 		sorry_at (OMP_CLAUSE_LOCATION (c),
! 			  "unsupported map expression %qE",
! 			  OMP_CLAUSE_DECL (c));
! 		remove = true;
! 		break;
! 	      }
! 	    if (t == error_mark_node)
! 	      {
! 		remove = true;
! 		break;
! 	      }
! 	    /* OpenACC attach / detach clauses must be pointers.  */
! 	    if (c_oacc_check_attachments (c))
! 	      {
! 		remove = true;
! 		break;
! 	      }
! 	    if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		&& (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_ATTACH
! 		    || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_DETACH)
! 		&& !OMP_CLAUSE_SIZE (c))
! 	      /* For attach/detach clauses, set OMP_CLAUSE_SIZE (representing a
! 		 bias) to zero here, so it is not set erroneously to the pointer
! 		 size later on in gimplify.cc.  */
! 	      OMP_CLAUSE_SIZE (c) = size_zero_node;
! 
! 	    c_omp_address_inspector ai (OMP_CLAUSE_LOCATION (c), t);
! 
! 	    if (!ai.check_clause (c))
! 	      {
! 		remove = true;
! 		break;
! 	      }
! 
! 	    if (!ai.map_supported_p ())
! 	      {
! 		sorry_at (OMP_CLAUSE_LOCATION (c),
! 			  "unsupported map expression %qE",
! 			  OMP_CLAUSE_DECL (c));
! 		remove = true;
! 		break;
! 	      }
! 
! 	    gcc_assert ((addr_tokens[0]->type == ARRAY_BASE
! 			 || addr_tokens[0]->type == STRUCTURE_BASE)
! 			&& addr_tokens[1]->type == ACCESS_METHOD);
! 
! 	    t = addr_tokens[1]->expr;
! 
! 	    if (addr_tokens[0]->u.structure_base_kind != BASE_DECL)
! 	      goto skip_decl_checks;
! 
! 	    /* For OpenMP, we can access a struct "t" and "t.d" on the same
! 	       mapping.  OpenACC allows multiple fields of the same structure
! 	       to be written.  */
! 	    if (addr_tokens[0]->type == STRUCTURE_BASE
! 		&& (bitmap_bit_p (&map_field_head, DECL_UID (t))
! 		    || (!openacc && bitmap_bit_p (&map_head, DECL_UID (t)))))
! 	      goto skip_decl_checks;
! 
! 	    if (!VAR_P (t) && TREE_CODE (t) != PARM_DECL)
! 	      {
! 		if (ort != C_ORT_ACC && EXPR_P (t))
! 		  break;
! 
! 		error_at (OMP_CLAUSE_LOCATION (c),
! 			  "%qE is not a variable in %qs clause", t,
! 			  omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		remove = true;
! 	      }
! 	    else if (VAR_P (t) && DECL_THREAD_LOCAL_P (t))
! 	      {
! 		error_at (OMP_CLAUSE_LOCATION (c),
! 			  "%qD is threadprivate variable in %qs clause", t,
! 			  omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		remove = true;
! 	      }
! 	    else if ((OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP
! 		      || (OMP_CLAUSE_MAP_KIND (c)
! 			  != GOMP_MAP_FIRSTPRIVATE_POINTER))
! 		     && !c_mark_addressable (t))
  	      remove = true;
! 	    else if (!(OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		       && (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_POINTER
! 			   || (OMP_CLAUSE_MAP_KIND (c)
! 			       == GOMP_MAP_FIRSTPRIVATE_POINTER)
! 			   || (OMP_CLAUSE_MAP_KIND (c)
! 			       == GOMP_MAP_FORCE_DEVICEPTR)))
! 		     && t == OMP_CLAUSE_DECL (c)
! 		     && !omp_mappable_type (TREE_TYPE (t)))
! 	      {
! 		error_at (OMP_CLAUSE_LOCATION (c),
! 			  "%qD does not have a mappable type in %qs clause", t,
! 			  omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		remove = true;
! 	      }
! 	    else if (TREE_TYPE (t) == error_mark_node)
  	      remove = true;
! 	    else if (TYPE_ATOMIC (strip_array_types (TREE_TYPE (t))))
! 	      {
! 		error_at (OMP_CLAUSE_LOCATION (c),
! 			  "%<_Atomic%> %qE in %qs clause", t,
! 			  omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
! 		remove = true;
! 	      }
! 	    else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		     && OMP_CLAUSE_MAP_IMPLICIT (c)
! 		     && (bitmap_bit_p (&map_head, DECL_UID (t))
! 			 || bitmap_bit_p (&map_field_head, DECL_UID (t))
! 			 || bitmap_bit_p (&map_firstprivate_head,
! 					  DECL_UID (t))))
  	      remove = true;
! 	    else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
! 		     && (OMP_CLAUSE_MAP_KIND (c)
! 			 == GOMP_MAP_FIRSTPRIVATE_POINTER))
! 	      {
! 		if (bitmap_bit_p (&generic_head, DECL_UID (t))
! 		    || bitmap_bit_p (&firstprivate_head, DECL_UID (t))
! 		    || bitmap_bit_p (&map_firstprivate_head, DECL_UID (t)))
! 		  {
  		    error_at (OMP_CLAUSE_LOCATION (c),
  			      "%qD appears more than once in data clauses", t);
! 		    remove = true;
! 		  }
! 		else if (bitmap_bit_p (&map_head, DECL_UID (t))
! 			 && !bitmap_bit_p (&map_field_head, DECL_UID (t))
! 			 && openacc)
! 		  {
  		    error_at (OMP_CLAUSE_LOCATION (c),
! 			      "%qD appears more than once in data clauses", t);
! 		    remove = true;
! 		  }
! 		else
! 		  bitmap_set_bit (&map_firstprivate_head, DECL_UID (t));
! 	      }
! 	    else if (bitmap_bit_p (&map_head, DECL_UID (t))
! 		     && !bitmap_bit_p (&map_field_head, DECL_UID (t))
! 		     && ort != C_ORT_OMP
! 		     && ort != C_ORT_OMP_EXIT_DATA)
! 	      {
! 		if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP)
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%qD appears more than once in motion clauses", t);
! 		else if (openacc)
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%qD appears more than once in data clauses", t);
! 		else
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%qD appears more than once in map clauses", t);
! 		remove = true;
! 	      }
! 	    else if (openacc && bitmap_bit_p (&generic_head, DECL_UID (t)))
! 	      {
  		error_at (OMP_CLAUSE_LOCATION (c),
  			  "%qD appears more than once in data clauses", t);
! 		remove = true;
! 	      }
! 	    else if (bitmap_bit_p (&firstprivate_head, DECL_UID (t))
! 		     || bitmap_bit_p (&is_on_device_head, DECL_UID (t)))
! 	      {
! 		if (openacc)
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%qD appears more than once in data clauses", t);
! 		else
! 		  error_at (OMP_CLAUSE_LOCATION (c),
! 			    "%qD appears both in data and map clauses", t);
! 		remove = true;
! 	      }
! 	    else if (!omp_access_chain_p (addr_tokens, 1))
! 	      {
! 		bitmap_set_bit (&map_head, DECL_UID (t));
! 		if (t != OMP_CLAUSE_DECL (c)
! 		    && TREE_CODE (OMP_CLAUSE_DECL (c)) == COMPONENT_REF)
! 		  bitmap_set_bit (&map_field_head, DECL_UID (t));
! 	      }
! 
! 	  skip_decl_checks:
! 	    /* If we call omp_expand_map_clause in handle_omp_array_sections,
! 	       the containing loop (here) iterates through the new nodes
! 	       created by that expansion.  Avoid expanding those again (just
! 	       by checking the node type).  */
! 	    if (!remove
! 		&& ort != C_ORT_DECLARE_SIMD
! 		&& (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP
! 		    || (OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_FIRSTPRIVATE_POINTER
! 			&& (OMP_CLAUSE_MAP_KIND (c)
! 			    != GOMP_MAP_FIRSTPRIVATE_REFERENCE)
! 			&& OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_ALWAYS_POINTER
! 			&& OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_ATTACH_DETACH
! 			&& OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_ATTACH
! 			&& OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_DETACH)))
! 	      {
! 		grp_start_p = pc;
! 		grp_sentinel = OMP_CLAUSE_CHAIN (c);
! 		tree nc = ai.expand_map_clause (c, OMP_CLAUSE_DECL (c),
! 						addr_tokens, ort);
! 		if (nc != error_mark_node)
! 		  c = nc;
! 	      }
! 	  }
  	  break;
  
  	case OMP_CLAUSE_ENTER:
*************** c_finish_omp_clauses (tree clauses, enum
*** 15753,15759 ****
  	  if (TREE_CODE (TREE_TYPE (t)) != POINTER_TYPE)
  	    {
  	      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_USE_DEVICE_PTR
! 		  && ort != C_ORT_ACC)
  		{
  		  error_at (OMP_CLAUSE_LOCATION (c),
  			    "%qs variable is not a pointer",
--- 15915,15921 ----
  	  if (TREE_CODE (TREE_TYPE (t)) != POINTER_TYPE)
  	    {
  	      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_USE_DEVICE_PTR
! 		  && !openacc)
  		{
  		  error_at (OMP_CLAUSE_LOCATION (c),
  			    "%qs variable is not a pointer",
*************** c_finish_omp_clauses (tree clauses, enum
*** 15772,15778 ****
  
  	case OMP_CLAUSE_HAS_DEVICE_ADDR:
  	  t = OMP_CLAUSE_DECL (c);
! 	  if (TREE_CODE (t) == TREE_LIST)
  	    {
  	      if (handle_omp_array_sections (c, ort))
  		remove = true;
--- 15934,15940 ----
  
  	case OMP_CLAUSE_HAS_DEVICE_ADDR:
  	  t = OMP_CLAUSE_DECL (c);
! 	  if (TREE_CODE (t) == OMP_ARRAY_SECTION)
  	    {
  	      if (handle_omp_array_sections (c, ort))
  		remove = true;
*************** c_finish_omp_clauses (tree clauses, enum
*** 15842,15847 ****
--- 16004,16010 ----
  	  continue;
  
  	case OMP_CLAUSE_IF:
+ 	case OMP_CLAUSE_SELF:
  	case OMP_CLAUSE_NUM_THREADS:
  	case OMP_CLAUSE_NUM_TEAMS:
  	case OMP_CLAUSE_THREAD_LIMIT:
*************** c_finish_omp_clauses (tree clauses, enum
*** 15881,15886 ****
--- 16044,16050 ----
  	case OMP_CLAUSE_IF_PRESENT:
  	case OMP_CLAUSE_FINALIZE:
  	case OMP_CLAUSE_NOHOST:
+ 	case OMP_CLAUSE_INDIRECT:
  	  pc = &OMP_CLAUSE_CHAIN (c);
  	  continue;
  
*************** c_finish_omp_clauses (tree clauses, enum
*** 16089,16095 ****
  		  if (TREE_CODE (t) == POINTER_PLUS_EXPR)
  		    t = TREE_OPERAND (t, 0);
  		  if (TREE_CODE (t) == ADDR_EXPR
! 		      || TREE_CODE (t) == INDIRECT_REF)
  		    t = TREE_OPERAND (t, 0);
  		  if (DECL_P (t))
  		    bitmap_clear_bit (&aligned_head, DECL_UID (t));
--- 16253,16259 ----
  		  if (TREE_CODE (t) == POINTER_PLUS_EXPR)
  		    t = TREE_OPERAND (t, 0);
  		  if (TREE_CODE (t) == ADDR_EXPR
! 		      || INDIRECT_REF_P (t))
  		    t = TREE_OPERAND (t, 0);
  		  if (DECL_P (t))
  		    bitmap_clear_bit (&aligned_head, DECL_UID (t));
*************** c_finish_omp_clauses (tree clauses, enum
*** 16126,16132 ****
  	  {
  	    tree t = OMP_CLAUSE_DECL (c);
  	    while (handled_component_p (t)
! 		   || TREE_CODE (t) == INDIRECT_REF
  		   || TREE_CODE (t) == ADDR_EXPR
  		   || TREE_CODE (t) == MEM_REF
  		   || TREE_CODE (t) == NON_LVALUE_EXPR)
--- 16290,16296 ----
  	  {
  	    tree t = OMP_CLAUSE_DECL (c);
  	    while (handled_component_p (t)
! 		   || INDIRECT_REF_P (t)
  		   || TREE_CODE (t) == ADDR_EXPR
  		   || TREE_CODE (t) == MEM_REF
  		   || TREE_CODE (t) == NON_LVALUE_EXPR)
*************** c_build_qualified_type (tree type, int t
*** 16305,16310 ****
--- 16469,16475 ----
  
  	  t = build_variant_type_copy (type);
  	  TREE_TYPE (t) = element_type;
+ 	  TYPE_ADDR_SPACE (t) = TYPE_ADDR_SPACE (element_type);
  
            if (TYPE_STRUCTURAL_EQUALITY_P (element_type)
                || (domain && TYPE_STRUCTURAL_EQUALITY_P (domain)))
diff -Nrcpad gcc-13.2.0/gcc/c/config-lang.in gcc-14.1.0/gcc/c/config-lang.in
*** gcc-13.2.0/gcc/c/config-lang.in	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/config-lang.in	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Top level configure fragment for GNU C - C language.
! # Copyright (C) 1994-2023 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level configure fragment for GNU C - C language.
! # Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c/gccspec.cc gcc-14.1.0/gcc/c/gccspec.cc
*** gcc-13.2.0/gcc/c/gccspec.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/gccspec.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Specific flags and argument handling of the C front-end.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Specific flags and argument handling of the C front-end.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c/gimple-parser.cc gcc-14.1.0/gcc/c/gimple-parser.cc
*** gcc-13.2.0/gcc/c/gimple-parser.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/gimple-parser.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Parser for GIMPLE.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Parser for GIMPLE.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** gimple_parser::push_edge (int src, int d
*** 108,114 ****
  static bool c_parser_gimple_compound_statement (gimple_parser &, gimple_seq *);
  static void c_parser_gimple_label (gimple_parser &, gimple_seq *);
  static void c_parser_gimple_statement (gimple_parser &, gimple_seq *);
! static struct c_expr c_parser_gimple_binary_expression (gimple_parser &);
  static struct c_expr c_parser_gimple_unary_expression (gimple_parser &);
  static struct c_expr c_parser_gimple_postfix_expression (gimple_parser &);
  static struct c_expr c_parser_gimple_postfix_expression_after_primary
--- 108,114 ----
  static bool c_parser_gimple_compound_statement (gimple_parser &, gimple_seq *);
  static void c_parser_gimple_label (gimple_parser &, gimple_seq *);
  static void c_parser_gimple_statement (gimple_parser &, gimple_seq *);
! static struct c_expr c_parser_gimple_binary_expression (gimple_parser &, tree);
  static struct c_expr c_parser_gimple_unary_expression (gimple_parser &);
  static struct c_expr c_parser_gimple_postfix_expression (gimple_parser &);
  static struct c_expr c_parser_gimple_postfix_expression_after_primary
*************** c_parser_parse_gimple_body (c_parser *cp
*** 280,286 ****
        for (tree var = BIND_EXPR_VARS (stmt); var; var = DECL_CHAIN (var))
  	if (VAR_P (var)
  	    && !DECL_EXTERNAL (var))
! 	  add_local_decl (cfun, var);
        /* We have a CFG.  Build the edges.  */
        for (unsigned i = 0; i < parser.edges.length (); ++i)
  	{
--- 280,292 ----
        for (tree var = BIND_EXPR_VARS (stmt); var; var = DECL_CHAIN (var))
  	if (VAR_P (var)
  	    && !DECL_EXTERNAL (var))
! 	  {
! 	    add_local_decl (cfun, var);
! 	    /* When the middle-end re-gimplifies any expression we might
! 	       run into the assertion that we've seen the decl in a BIND.  */
! 	    if (!TREE_STATIC (var))
! 	      DECL_SEEN_IN_BIND_EXPR_P (var) = 1;
! 	  }
        /* We have a CFG.  Build the edges.  */
        for (unsigned i = 0; i < parser.edges.length (); ++i)
  	{
*************** c_parser_parse_gimple_body (c_parser *cp
*** 294,301 ****
        FOR_EACH_BB_FN (bb, cfun)
  	if (EDGE_COUNT (bb->succs) == 0)
  	  {
! 	    gimple *last = last_stmt (bb);
! 	    if (gswitch *sw = safe_dyn_cast <gswitch *> (last))
  	      for (unsigned i = 0; i < gimple_switch_num_labels (sw); ++i)
  		{
  		  basic_block label_bb = gimple_switch_label_bb (cfun, sw, i);
--- 300,306 ----
        FOR_EACH_BB_FN (bb, cfun)
  	if (EDGE_COUNT (bb->succs) == 0)
  	  {
! 	    if (gswitch *sw = safe_dyn_cast <gswitch *> (*gsi_last_bb (bb)))
  	      for (unsigned i = 0; i < gimple_switch_num_labels (sw); ++i)
  		{
  		  basic_block label_bb = gimple_switch_label_bb (cfun, sw, i);
*************** c_parser_gimple_statement (gimple_parser
*** 870,876 ****
        return;
      }
  
!   rhs = c_parser_gimple_binary_expression (parser);
    if (lhs.value != error_mark_node
        && rhs.value != error_mark_node)
      {
--- 875,881 ----
        return;
      }
  
!   rhs = c_parser_gimple_binary_expression (parser, TREE_TYPE (lhs.value));
    if (lhs.value != error_mark_node
        && rhs.value != error_mark_node)
      {
*************** c_parser_gimple_statement (gimple_parser
*** 931,937 ****
  */
  
  static c_expr
! c_parser_gimple_binary_expression (gimple_parser &parser)
  {
    /* Location of the binary operator.  */
    struct c_expr ret, lhs, rhs;
--- 936,942 ----
  */
  
  static c_expr
! c_parser_gimple_binary_expression (gimple_parser &parser, tree ret_type)
  {
    /* Location of the binary operator.  */
    struct c_expr ret, lhs, rhs;
*************** c_parser_gimple_binary_expression (gimpl
*** 940,946 ****
    lhs = c_parser_gimple_postfix_expression (parser);
    if (c_parser_error (parser))
      return ret;
-   tree ret_type = TREE_TYPE (lhs.value);
    switch (c_parser_peek_token (parser)->type)
      {
      case CPP_MULT:
--- 945,950 ----
*************** c_parser_gimple_binary_expression (gimpl
*** 959,965 ****
  	code = PLUS_EXPR;
        break;
      case CPP_MINUS:
!       code = MINUS_EXPR;
        break;
      case CPP_LSHIFT:
        code = LSHIFT_EXPR;
--- 963,972 ----
  	code = PLUS_EXPR;
        break;
      case CPP_MINUS:
!       if (POINTER_TYPE_P (TREE_TYPE (lhs.value)))
! 	code = POINTER_DIFF_EXPR;
!       else
! 	code = MINUS_EXPR;
        break;
      case CPP_LSHIFT:
        code = LSHIFT_EXPR;
*************** c_parser_gimple_binary_expression (gimpl
*** 969,995 ****
        break;
      case CPP_LESS:
        code = LT_EXPR;
-       ret_type = boolean_type_node;
        break;
      case CPP_GREATER:
        code = GT_EXPR;
-       ret_type = boolean_type_node;
        break;
      case CPP_LESS_EQ:
        code = LE_EXPR;
-       ret_type = boolean_type_node;
        break;
      case CPP_GREATER_EQ:
        code = GE_EXPR;
-       ret_type = boolean_type_node;
        break;
      case CPP_EQ_EQ:
        code = EQ_EXPR;
-       ret_type = boolean_type_node;
        break;
      case CPP_NOT_EQ:
        code = NE_EXPR;
-       ret_type = boolean_type_node;
        break;
      case CPP_AND:
        code = BIT_AND_EXPR;
--- 976,996 ----
*************** c_parser_gimple_binary_expression (gimpl
*** 1007,1020 ****
        c_parser_error (parser, "%<||%> not valid in GIMPLE");
        return ret;
      case CPP_NAME:
! 	{
! 	  tree id = c_parser_peek_token (parser)->value;
! 	  if (strcmp (IDENTIFIER_POINTER (id), "__MULT_HIGHPART") == 0)
! 	    {
! 	      code = MULT_HIGHPART_EXPR;
! 	      break;
! 	    }
! 	}
        /* Fallthru.  */
      default:
        /* Not a binary expression.  */
--- 1008,1061 ----
        c_parser_error (parser, "%<||%> not valid in GIMPLE");
        return ret;
      case CPP_NAME:
!       {
! 	tree id = c_parser_peek_token (parser)->value;
! 	if (strcmp (IDENTIFIER_POINTER (id), "__MULT_HIGHPART") == 0)
! 	  {
! 	    code = MULT_HIGHPART_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNLT") == 0)
! 	  {
! 	    code = UNLT_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNLE") == 0)
! 	  {
! 	    code = UNLE_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNGT") == 0)
! 	  {
! 	    code = UNGT_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNGE") == 0)
! 	  {
! 	    code = UNGE_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNEQ") == 0)
! 	  {
! 	    code = UNEQ_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNORDERED") == 0)
! 	  {
! 	    code = UNORDERED_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__ORDERED") == 0)
! 	  {
! 	    code = ORDERED_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__LTGT") == 0)
! 	  {
! 	    code = LTGT_EXPR;
! 	    break;
! 	  }
!       }
        /* Fallthru.  */
      default:
        /* Not a binary expression.  */
*************** c_parser_gimple_postfix_expression (gimp
*** 1446,1454 ****
  	      location_t loc = c_parser_peek_token (parser)->location;
  	      c_parser_consume_token (parser);
  	      tree type = c_parser_gimple_typespec (parser);
! 	      struct c_expr ptr;
  	      ptr.value = error_mark_node;
! 	      tree alias_off = NULL_TREE;
  	      if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
  		{
  		  tree alias_type = NULL_TREE;
--- 1487,1498 ----
  	      location_t loc = c_parser_peek_token (parser)->location;
  	      c_parser_consume_token (parser);
  	      tree type = c_parser_gimple_typespec (parser);
! 	      struct c_expr ptr, alias_off, step, index, index2;
  	      ptr.value = error_mark_node;
! 	      alias_off.value = NULL_TREE;
! 	      step.value = NULL_TREE;
! 	      index.value = NULL_TREE;
! 	      index2.value = NULL_TREE;
  	      if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
  		{
  		  tree alias_type = NULL_TREE;
*************** c_parser_gimple_postfix_expression (gimp
*** 1484,1495 ****
  		  if (c_parser_next_token_is (parser, CPP_PLUS))
  		    {
  		      c_parser_consume_token (parser);
! 		      alias_off
! 			= c_parser_gimple_postfix_expression (parser).value;
! 		      alias_off = fold_convert (alias_type, alias_off);
  		    }
- 		  if (! alias_off)
- 		    alias_off = build_int_cst (alias_type, 0);
  		  c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
  					     "expected %<)%>");
  		}
--- 1528,1579 ----
  		  if (c_parser_next_token_is (parser, CPP_PLUS))
  		    {
  		      c_parser_consume_token (parser);
! 		      alias_off = c_parser_gimple_postfix_expression (parser);
! 		    }
! 		  if (c_parser_next_token_is (parser, CPP_MULT))
! 		    {
! 		      std::swap (index, alias_off);
! 		      c_parser_consume_token (parser);
! 		      step = c_parser_gimple_postfix_expression (parser);
! 		    }
! 		  else if (c_parser_next_token_is (parser, CPP_PLUS))
! 		    {
! 		      c_parser_consume_token (parser);
! 		      index = c_parser_gimple_postfix_expression (parser);
! 		      if (c_parser_next_token_is (parser, CPP_MULT))
! 			{
! 			  c_parser_consume_token (parser);
! 			  step = c_parser_gimple_postfix_expression (parser);
! 			}
! 		      else
! 			std::swap (index, index2);
! 		    }
! 		  else if (alias_off.value
! 			   && TREE_CODE (alias_off.value) != INTEGER_CST)
! 		    std::swap (alias_off, index2);
! 		  if (c_parser_next_token_is (parser, CPP_PLUS))
! 		    {
! 		      c_parser_consume_token (parser);
! 		      index2 = c_parser_gimple_postfix_expression (parser);
! 		    }
! 		  if (alias_off.value)
! 		    {
! 		      if (TREE_CODE (alias_off.value) != INTEGER_CST)
! 			error_at (alias_off.get_start (),
! 				  "expected constant offset for %<__MEM%> "
! 				  "operand");
! 		      alias_off.value = fold_convert (alias_type,
! 						      alias_off.value);
! 		    }
! 		  else
! 		    alias_off.value = build_int_cst (alias_type, 0);
! 		  if (step.value)
! 		    {
! 		      if (TREE_CODE (step.value) != INTEGER_CST)
! 			error_at (step.get_start (),
! 				  "expected constant step for %<__MEM%> "
! 				  "operand");
  		    }
  		  c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
  					     "expected %<)%>");
  		}
*************** c_parser_gimple_postfix_expression (gimp
*** 1498,1505 ****
  		  c_parser_set_error (parser, false);
  		  return expr;
  		}
! 	      expr.value = build2_loc (loc, MEM_REF,
! 				       type, ptr.value, alias_off);
  	      break;
  	    }
  	  else if (strcmp (IDENTIFIER_POINTER (id), "__VIEW_CONVERT") == 0)
--- 1582,1594 ----
  		  c_parser_set_error (parser, false);
  		  return expr;
  		}
! 	      if (index.value || step.value || index2.value)
! 		expr.value = build5_loc (loc, TARGET_MEM_REF,
! 					 type, ptr.value, alias_off.value,
! 					 index.value, step.value, index2.value);
! 	      else
! 		expr.value = build2_loc (loc, MEM_REF,
! 					 type, ptr.value, alias_off.value);
  	      break;
  	    }
  	  else if (strcmp (IDENTIFIER_POINTER (id), "__VIEW_CONVERT") == 0)
*************** c_parser_gimple_paren_condition (gimple_
*** 2159,2165 ****
  {
    if (! c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
      return error_mark_node;
!   tree cond = c_parser_gimple_binary_expression (parser).value;
    if (cond != error_mark_node
        && ! COMPARISON_CLASS_P (cond)
        && ! CONSTANT_CLASS_P (cond)
--- 2248,2255 ----
  {
    if (! c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
      return error_mark_node;
!   tree cond
!     = c_parser_gimple_binary_expression (parser, boolean_type_node).value;
    if (cond != error_mark_node
        && ! COMPARISON_CLASS_P (cond)
        && ! CONSTANT_CLASS_P (cond)
*************** c_finish_gimple_return (location_t loc,
*** 2473,2479 ****
  
    if (! retval)
      current_function_returns_null = 1;
!   else if (valtype == 0 || TREE_CODE (valtype) == VOID_TYPE)
      {
        current_function_returns_null = 1;
        if (TREE_CODE (TREE_TYPE (retval)) != VOID_TYPE)
--- 2563,2569 ----
  
    if (! retval)
      current_function_returns_null = 1;
!   else if (valtype == 0 || VOID_TYPE_P (valtype))
      {
        current_function_returns_null = 1;
        if (TREE_CODE (TREE_TYPE (retval)) != VOID_TYPE)
diff -Nrcpad gcc-13.2.0/gcc/c/gimple-parser.h gcc-14.1.0/gcc/c/gimple-parser.h
*** gcc-13.2.0/gcc/c/gimple-parser.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c/gimple-parser.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declarations for the parser for GIMPLE.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations for the parser for GIMPLE.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/ChangeLog gcc-14.1.0/gcc/c-family/ChangeLog
*** gcc-13.2.0/gcc/c-family/ChangeLog	Thu Jul 27 08:13:35 2023
--- gcc-14.1.0/gcc/c-family/ChangeLog	Tue May  7 06:52:34 2024
***************
*** 1,25 ****
! 2023-07-27  Release Manager
  
! 	* GCC 13.2.0 released.
  
! 2023-05-19  Patrick Palka  <ppalka@redhat.com>
  
! 	Backported from master:
! 	2023-05-15  Patrick Palka  <ppalka@redhat.com>
  
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine __cpp_auto_cast
! 	for C++23.
  
! 2023-05-02  Marek Polacek  <polacek@redhat.com>
  
! 	PR c++/109642
! 	PR c++/109640
! 	PR c++/109671
! 	* c.opt (Wdangling-reference): Move from -Wall to -Wextra.
  
! 2023-04-26  Release Manager
  
! 	* GCC 13.1.0 released.
  
  2023-03-28  David Malcolm  <dmalcolm@redhat.com>
  
--- 1,917 ----
! 2024-05-07  Release Manager
  
! 	* GCC 14.1.0 released.
  
! 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* c-attribs.cc (handle_objc_nullability_attribute): Spelling fix:
! 	recognised -> recognized.
  
! 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	* c.opt (Wstrict-flex-arrays): Spelling fix: inproper -> improper.
  
! 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/114780
! 	* c-common.cc (check_function_sentinel): Allow as sentinel any
! 	argument of NULLPTR_TYPE.
  
! 2024-04-13  Mark Wielaard  <mark@klomp.org>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-04-12  Jason Merrill  <jason@redhat.com>
! 	    Patrick Palka  <ppalka@redhat.com>
! 
! 	PR c++/113141
! 	* c.opt: Add -Wcast-user-defined.
! 
! 2024-04-05  Marek Polacek  <polacek@redhat.com>
! 
! 	* c-warn.cc (warn_about_parentheses): Remove an #undef.
! 
! 2024-03-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/114469
! 	* c-common.cc (resolve_overloaded_builtin): For _BitInt result
! 	on !extended targets convert result to the _BitInt type before
! 	using VIEW_CONVERT_EXPR.
! 
! 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/112724
! 	* c-pretty-print.cc (pp_c_cast_expression,
! 	c_pretty_printer::expression): Handle EXCESS_PRECISION_EXPR like
! 	NOP_EXPR.
! 
! 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/114364
! 	* c-omp.cc (enum check_loop_binding_expr_ctx): New type.
! 	(check_loop_binding_expr): Remove context argument, add ctx
! 	argument with check_loop_binding_expr_ctx type at the end.  Don't
! 	create diagnostic message from multiple pieces.
! 	(c_omp_check_loop_binding_exprs): Adjust callers.
! 
! 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.cc (resolve_overloaded_atomic_exchange): Instead of setting
! 	p1 to VIEW_CONVERT_EXPR<I_type> (*p1), set it to MEM_REF with p1 and
! 	(typeof (p1)) 0 operands and I_type type.
! 	(resolve_overloaded_atomic_compare_exchange): Similarly for p2.
! 
! 2024-03-05  Mark Wielaard  <mark@klomp.org>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-03-05  Patrick Palka  <ppalka@redhat.com>
! 
! 	* c.opt (Wglobal-module): New warning.
! 
! 2024-03-04  Mark Wielaard  <mark@klomp.org>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/114007
! 	* c-lex.cc (c_common_has_attribute): Parse 2 CPP_COLONs with
! 	the first one with COLON_SCOPE flag the same as CPP_SCOPE.
! 
! 2024-02-10  Marek Polacek  <polacek@redhat.com>
! 
! 	DR 2237
! 	PR c++/107126
! 	PR c++/97202
! 	* c-opts.cc (c_common_post_options): In C++20 or with -Wc++20-compat,
! 	turn on -Wtemplate-id-cdtor.
! 	* c.opt (Wtemplate-id-cdtor): New.
! 
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-format.cc (gcc_diag_length_specs): Add t and z modifiers.
! 	(PP_FORMAT_CHAR_TABLE, gcc_gfc_char_table): Add entries for t and
! 	z modifiers.
! 
! 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-ada-spec.cc (dump_template_types): Use HOST_SIZE_T_PRINT_UNSIGNED
! 	and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
! 
! 2024-02-01  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR preprocessor/105608
! 	* c-pch.cc (c_common_read_pch): Adjust line map so that libcpp
! 	assigns a location to restored macros which is the same location
! 	that triggered the PCH include.
! 
! 2024-01-31  Marek Polacek  <polacek@redhat.com>
! 
! 	* c-opts.cc (c_common_post_options): Add an inform saying that
! 	-fconcepts-ts is deprecated and will be removed in GCC 15.
! 
! 2024-01-27  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR preprocessor/105608
! 	* c-pch.cc (c_common_read_pch): Start a new line map before asking
! 	libcpp to restore macros defined prior to reading the PCH, instead
! 	of afterward.
! 
! 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/113518
! 	* c-common.cc (atomic_bitint_fetch_using_cas_loop): Call c_fully_fold
! 	on lhs_addr, val and model for C.
! 
! 2024-01-23  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	* c.opt: Improve sorting of warning options.
! 
! 2024-01-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/113397
! 	* c-ada-spec.cc (check_type_name_conflict): Add guard for the
! 	presence of DECL_NAME on a TYPE_DECL.
! 
! 2024-01-11  Julian Brown  <julian@codesourcery.com>
! 
! 	* c-pretty-print.cc (c_pretty_printer::postfix_expression,
! 	c_pretty_printer::expression): Add OMP_ARRAY_SECTION support.
! 
! 2024-01-09  waffl3x  <waffl3x@protonmail.com>
! 
! 	PR c++/102609
! 	PR c++/102609
! 	C++23 P0847R7 (deducing this) - diagnostics.
! 	* c-cppbuiltin.cc (c_cpp_builtins): Define
! 	__cpp_explicit_this_parameter=202110L feature test macro.
! 
! 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/113262
! 	* c-attribs.cc (handle_copy_attribute): Don't use
! 	DECL_SOURCE_LOCATION (decl) if decl is not DECL_P, use input_location
! 	instead.  Formatting fixes.
! 
! 2024-01-09  Julian Brown  <julian@codesourcery.com>
! 
! 	* c-common.h (c_omp_address_inspector): Remove static from get_origin
! 	and maybe_unconvert_ref methods.
! 	* c-omp.cc (c_omp_split_clauses): Support OMP_ARRAY_SECTION.
! 	(c_omp_address_inspector::map_supported_p): Handle OMP_ARRAY_SECTION.
! 	(c_omp_address_inspector::get_origin): Avoid dereferencing possibly
! 	NULL type when processing template decls.
! 	(c_omp_address_inspector::maybe_unconvert_ref): Likewise.
! 
! 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c.opt.urls: New file, autogenerated by regenerate-opt-urls.py.
! 
! 2023-12-21  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (Walloc-size): Enable also for C++ and ObjC++.
! 
! 2023-12-21  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR sanitizer/113092
! 	* c-ubsan.cc (ubsan_instrument_shift): Workaround for missing
! 	ubsan _BitInt support for the shift count.
! 
! 2023-12-20  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/113050
! 	* c-common.cc (get_atomic_generic_size): Use
! 	OPT_Wdiscarded_qualifiers instead of
! 	OPT_Wincompatible_pointer_types.
! 
! 2023-12-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (Wcalloc-transposed-args): New warning.
! 	* c-common.h (warn_for_calloc, warn_for_alloc_size): Declare.
! 	* c-warn.cc (warn_for_calloc, warn_for_alloc_size): New functions.
! 
! 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
! 
! 	* c-attribs.cc (attr_target_exclusions): Make
! 	target/target_clones exclusion target-dependent.
! 	(attr_target_clones_exclusions): Ditto, and add target_version.
! 	(attr_target_version_exclusions): New.
! 	(c_common_attribute_table): Add target_version.
! 	(handle_target_version_attribute): New.
! 	(handle_target_attribute): Amend comment.
! 	(handle_target_clones_attribute): Ditto.
! 
! 2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>
! 
! 	* c-attribs.cc (attr_always_inline_exclusions): New.
! 	(attr_target_exclusions): Ditto.
! 	(attr_target_clones_exclusions): Ditto.
! 	(c_common_attribute_table): Add new exclusion lists.
! 	(handle_noinline_attribute): Remove custom exclusion handling.
! 	(handle_always_inline_attribute): Ditto.
! 	(handle_target_attribute): Ditto.
! 	(handle_target_clones_attribute): Ditto.
! 
! 2023-12-13  Patrick Palka  <ppalka@redhat.com>
! 
! 	* c.opt: Add -fdiagnostics-all-candidates.
! 
! 2023-12-13  Jason Merrill  <jason@redhat.com>
! 
! 	* c-warn.cc (check_address_or_pointer_of_packed_member):
! 	Rename to check_address_of_packed_member.
! 	(check_and_warn_address_or_pointer_of_packed_member):
! 	Rename to check_and_warn_address_of_packed_member.
! 	(warn_for_address_or_pointer_of_packed_member):
! 	Rename to warn_for_address_of_packed_member.
! 	* c-common.h: Adjust.
! 
! 2023-12-13  Jason Merrill  <jason@redhat.com>
! 
! 	* c-warn.cc (check_address_or_pointer_of_packed_member):
! 	Remove warning based on TYPE_PACKED.
! 
! 2023-12-13  Julian Brown  <julian@codesourcery.com>
! 
! 	* c-common.h (c_omp_region_type): Add C_ORT_EXIT_DATA,
! 	C_ORT_OMP_EXIT_DATA and C_ORT_ACC_TARGET.
! 	(omp_addr_token): Add forward declaration.
! 	(c_omp_address_inspector): New class.
! 	* c-omp.cc (c_omp_adjust_map_clauses): Mark decls addressable here, but
! 	do not change any mapping node types.
! 	(c_omp_address_inspector::unconverted_ref_origin,
! 	c_omp_address_inspector::component_access_p,
! 	c_omp_address_inspector::check_clause,
! 	c_omp_address_inspector::get_root_term,
! 	c_omp_address_inspector::map_supported_p,
! 	c_omp_address_inspector::get_origin,
! 	c_omp_address_inspector::maybe_unconvert_ref,
! 	c_omp_address_inspector::maybe_zero_length_array_section,
! 	c_omp_address_inspector::expand_array_base,
! 	c_omp_address_inspector::expand_component_selector,
! 	c_omp_address_inspector::expand_map_clause): New methods.
! 	(omp_expand_access_chain): New function.
! 
! 2023-12-12  Richard Biener  <rguenther@suse.de>
! 
! 	PR ipa/92606
! 	* c-attribs.cc (handle_noicf_attribute): Also allow the
! 	attribute on global variables.
! 
! 2023-12-10  Ken Matsui  <kmatsui@gcc.gnu.org>
! 	    Patrick Palka  <ppalka@redhat.com>
! 
! 	* c-common.cc (c_common_reswords): Remove all mappings of
! 	built-in traits.
! 	* c-common.h (enum rid): Remove all RID values for built-in
! 	traits.
! 
! 2023-12-07  Andrew Pinski  <pinskia@gmail.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR preprocessor/111965
! 	* c-opts.cc (c_common_handle_option) <case OPT_fdebug_cpp>: Set
! 	cpp_opts->debug to value rather than 1.
! 
! 2023-12-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-opts.cc (c_diagnostic_finalizer): Make "diagnostic" param
! 	const.
! 
! 2023-12-06  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* c-attribs.cc: Include ipa-strub.h.
! 	(handle_strub_attribute): New.
! 	(c_common_attribute_table): Add strub.
! 
! 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* c-attribs.cc (c_common_gnu_attribute_table): Add extra
! 	braces to work around PR 16333 in older compilers.
! 
! 2023-12-05  Richard Biener  <rguenther@suse.de>
! 
! 	PR c/89270
! 	* c-common.cc (c_common_type_for_size): Consider
! 	registered_builtin_types.
! 
! 2023-12-05  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/107687
! 	PR c++/110997
! 	* c-cppbuiltin.cc (c_cpp_builtins): Update __cpp_consteval.
! 	* c-opts.cc (c_common_post_options): Pre-C++20, unset
! 	flag_immediate_escalation.
! 	* c.opt (fimmediate-escalation): New option.
! 
! 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* c-common.h (c_common_attribute_table): Replace with...
! 	(c_common_gnu_attribute_table): ...this.
! 	(c_common_format_attribute_table): Change type to
! 	scoped_attribute_specs.
! 	* c-attribs.cc (c_common_attribute_table): Replace with...
! 	(c_common_gnu_attributes, c_common_gnu_attribute_table): ...these
! 	new globals.
! 	(c_common_format_attribute_table): Change type to
! 	scoped_attribute_specs, using...
! 	(c_common_format_attributes): ...this as the underlying array.
! 
! 2023-12-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c.opt (Wdeclaration-missing-parameter-type): New.
! 
! 2023-11-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/110349
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
! 	__cpp_placeholder_variables=202306L for C++26.
! 
! 2023-11-29  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* c-attribs.cc (c_common_attribute_table): Add hardbool.
! 	(handle_hardbool_attribute): New.
! 	(type_valid_for_vector_size): Reject hardbool.
! 	* c-common.cc (convert_and_check): Skip warnings for convert
! 	and check for hardbool.
! 	(c_hardbool_type_attr_1): New.
! 	* c-common.h (c_hardbool_type_attr): New.
! 
! 2023-11-27  Alex Coplan  <alex.coplan@arm.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	PR c++/60512
! 	* c-common.cc (struct hf_feature_info): New.
! 	(c_common_register_feature): New.
! 	(init_has_feature): New.
! 	(has_feature_p): New.
! 	* c-common.h (c_common_has_feature): New.
! 	(c_family_register_lang_features): New.
! 	(c_common_register_feature): New.
! 	(has_feature_p): New.
! 	* c-lex.cc (init_c_lex): Plumb through has_feature callback.
! 	(c_common_has_builtin): Generalize and move common part ...
! 	(c_common_lex_availability_macro): ... here.
! 	(c_common_has_feature): New.
! 	* c-ppoutput.cc (init_pp_output): Plumb through has_feature.
! 
! 2023-11-24  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR pch/112319
! 	* c-ppoutput.cc (cb_read_pch): Reinitialize the frontend parser
! 	after loading a PCH.
! 
! 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c.opt (-Wopenmp): Add missing tailing '.'.
! 
! 2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
! 
! 	* c.opt (Wopenmp): Add, enable by default.
! 
! 2023-11-23  Marek Polacek  <polacek@redhat.com>
! 
! 	* c-opts.cc: Include "target.h".
! 	(c_finish_options): Maybe cpp_define _FORTIFY_SOURCE
! 	and _GLIBCXX_ASSERTIONS.
! 
! 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.h (enum rid): Add RID_BUILTIN_STDC: New.
! 	* c-common.cc (c_common_reswords): Add __builtin_stdc_bit_ceil,
! 	__builtin_stdc_bit_floor, __builtin_stdc_bit_width,
! 	__builtin_stdc_count_ones, __builtin_stdc_count_zeros,
! 	__builtin_stdc_first_leading_one, __builtin_stdc_first_leading_zero,
! 	__builtin_stdc_first_trailing_one, __builtin_stdc_first_trailing_zero,
! 	__builtin_stdc_has_single_bit, __builtin_stdc_leading_ones,
! 	__builtin_stdc_leading_zeros, __builtin_stdc_trailing_ones and
! 	__builtin_stdc_trailing_zeros.  Move __builtin_assoc_barrier
! 	alphabetically earlier.
! 
! 2023-11-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/110348
! 	* c.opt (Wc++26-extensions): New option.
! 	* c-cppbuiltin.cc (c_cpp_builtins): For C++26 predefine
! 	__cpp_static_assert to 202306L rather than 201411L.
! 
! 2023-11-19  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-lex.cc: Include "rich-location.h".
! 
! 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins):  Define
! 	__LIBGCC_HAVE_LIBATOMIC for libgcov.
! 
! 2023-11-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
! 
! 	Revert:
! 	2021-08-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
! 
! 	* c-cppbuiltin.c (c_cpp_builtins): Define
! 	__LIBGCC_GCOV_TYPE_SIZE if flag_building_libgcc is true.
! 
! 2023-11-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/107571
! 	* c-gimplify.cc (genericize_c_loop): For C++ mark IFN_FALLTHROUGH
! 	call at the end of loop body as TREE_NOTHROW.
! 
! 2023-11-14  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR pch/9471
! 	PR pch/47857
! 	* c-opts.cc (c_common_post_options): Set cpp_opts->main_search
! 	so libcpp knows it is compiling a header file separately.
! 
! 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-warn.cc (conversion_warning): Update call to
! 	global_dc->m_option_enabled to use option_enabled_p.
! 
! 2023-11-14  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc (c_get_substring_location): Use global_dc's
! 	file_cache.
! 	* c-format.cc (get_corrected_substring): Likewise.
! 	* c-indentation.cc (get_visual_column): Add file_cache param.
! 	(get_first_nws_vis_column): Likewise.
! 	(detect_intervening_unindent): Likewise.
! 	(should_warn_for_misleading_indentation): Use global_dc's
! 	file_cache.
! 	(assert_get_visual_column_succeeds): Add file_cache param.
! 	(ASSERT_GET_VISUAL_COLUMN_SUCCEEDS): Likewise.
! 	(assert_get_visual_column_fails): Likewise.
! 	(define ASSERT_GET_VISUAL_COLUMN_FAILS): Likewise.
! 	(selftest::test_get_visual_column): Create and use a temporary
! 	file_cache.
! 
! 2023-11-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/111309
! 	* c-common.cc (check_builtin_function_arguments): Handle
! 	BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
! 	* c-gimplify.cc (c_gimplify_expr): If __builtin_c[lt]zg second
! 	argument hasn't been folded into constant yet, transform it to one
! 	argument call inside of a COND_EXPR which for first argument 0
! 	returns the second argument.
! 
! 2023-11-11  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/110815
! 	PR c/112428
! 	* c-attribs.cc (build_attr_access_from_parms): Synthesize
! 	nonnull attribute for parameters declared with `static`.
! 
! 2023-11-09  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c.opt (Wreturn-mismatch): New.
! 
! 2023-11-08  Florian Weimer  <fweimer@redhat.com>
! 
! 	* c.opt (fpermissive): Enable for C and ObjC.
! 	* c-opts.cc (c_common_post_options): Enable -fpermissive.
! 
! 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* c-format.h (T2X_UI): Rename to T23_UI.
! 	(T2X_UL): Rename to T23_UL.
! 	(T2X_ULL): Rename to T23_ULL.
! 	(T2X_US): Rename to T23_US.
! 	(T2X_UC): Rename to T23_UC.
! 	(T2X_ST): Rename to T23_ST.
! 	(T2X_UPD): Rename to T23_UPD.
! 	(T2X_UIM): Rename to T23_UIM.
! 	(T2X_D32): Rename to T23_D32.
! 	(T2X_D64): Rename to T23_D64.
! 	(T2X_D128): Rename to T23_D128.
! 	(T2X_I8): Rename to T23_I8.
! 	(T2X_I16): Rename to T23_I16.
! 	(T2X_I32): Rename to T23_I32.
! 	(T2X_I64): Rename to T23_I64.
! 	(T2X_U8): Rename to T23_U8.
! 	(T2X_U16): Rename to T23_U16.
! 	(T2X_U32): Rename to T23_U32.
! 	(T2X_U64): Rename to T23_U64.
! 	(T2X_IF8): Rename to T23_IF8.
! 	(T2X_IF16): Rename to T23_IF16.
! 	(T2X_IF32): Rename to T23_IF32.
! 	(T2X_IF64): Rename to T23_IF64.
! 	(T2X_UF8): Rename to T23_UF8.
! 	(T2X_UF16): Rename to T23_UF16.
! 	(T2X_UF32): Rename to T23_UF32.
! 	(T2X_UF64): Rename to T23_UF64.
! 	* c-format.cc: Update all uses of T2X_* macros to use T23_*.
! 
! 2023-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>
! 
! 	* c-attribs.cc (c_common_attribute_table): Add attribute for
! 	indirect functions.
! 	* c-pragma.h (enum parma_omp_clause): Add entry for indirect clause.
! 
! 2023-11-07  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* c-common.cc (flag_isoc2x): Rename to flag_isoc23.
! 	(c_common_reswords): Use D_C23 instead of D_C2X.
! 	* c-common.h: Refer throughout to C23 instead of C2X in comments.
! 	(D_C2X): Rename to D_C23.
! 	(flag_isoc2x): Rename to flag_isoc23.
! 	* c-cppbuiltin.cc (builtin_define_float_constants): Use
! 	flag_isoc23 instead of flag_isoc2x.  Refer to C23 instead of C2x
! 	in comments.
! 	* c-format.cc: Use STD_C23 instead of STD_C2X and flag_isoc23
! 	instead of flag_isoc2x.  Refer to C23 instead of C2X in comments.
! 	* c-format.h: Use STD_C23 instead of STD_C2X.
! 	* c-lex.cc: Use warn_c11_c23_compat instead of warn_c11_c2x_compat
! 	and flag_isoc23 instead of flag_isoc2x.  Refer to C23 instead of
! 	C2X in diagnostics.
! 	* c-opts.cc: Use flag_isoc23 instead of flag_isoc2x.  Refer to C23
! 	instead of C2X in comments.
! 	(set_std_c2x): Rename to set_std_c23.
! 	* c.opt (Wc11-c23-compat): Use CPP(cpp_warn_c11_c23_compat)
! 	CppReason(CPP_W_C11_C23_COMPAT) Var(warn_c11_c23_compat) instead
! 	of CPP(cpp_warn_c11_c2x_compat) CppReason(CPP_W_C11_C2X_COMPAT)
! 	Var(warn_c11_c2x_compat).
! 
! 2023-11-06  Joseph Myers  <joseph@codesourcery.com>
! 
! 	PR c/107954
! 	* c.opt (Wc11-c2x-compat): Rename to Wc11-c23-compat and make into
! 	a deprecated alias of Wc11-c23-compat.
! 	(std=c2x): Rename to std=c23 and make into a deprecated alias of
! 	std=c23.
! 	(std=gnu2x): Rename to std=gnu23 and make into a deprecated alias
! 	of std=gnu23.
! 	(std=iso9899:2024): New option.  Alias of std=c23.
! 	* c-lex.cc (interpret_float): Use OPT_Wc11_c23_compat instead of
! 	OPT_Wc11_c2x_compat.
! 	* c-opts.cc (c_common_handle_option): Use OPT_std_c23 instead of
! 	OPT_std_c2x and OPT_std_gnu23 instead of OPT_std_gnu2x.
! 
! 2023-11-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-lex.cc (c_common_has_attribute): Return 1 for omp::directive
! 	and omp::sequence with -fopenmp or -fopenmp-simd also for C, not
! 	just for C++.  Return 1 for omp::decl with -fopenmp or -fopenmp-simd
! 	for both C and C++.
! 
! 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-pragma.cc:: (handle_pragma_push_options): Fix missing "GCC" in
! 	name of pragma in "junk" message.
! 	(handle_pragma_pop_options): Likewise.
! 
! 2023-11-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc: Update for changes to diagnostic_context.
! 	* c-indentation.cc: Likewise.
! 	* c-opts.cc: Likewise.
! 	* c-warn.cc: Likewise.
! 
! 2023-11-01  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/71219
! 	* c.opt (Walloc-size): New option.
! 
! 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-warn.cc (warn_for_multistatement_macros): Update for removal
! 	of MACRO_MAP_EXPANSION_POINT_LOCATION.
! 
! 2023-10-27  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR preprocessor/87299
! 	* c-pragma.cc (init_pragma): Register `#pragma GCC target' and
! 	related pragmas in preprocess-only mode, and enable early handling.
! 	(c_reset_target_pragmas): New function refactoring code from...
! 	(handle_pragma_reset_options): ...here.
! 	* c-pragma.h (c_reset_target_pragmas): Declare.
! 
! 2023-10-26  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-attribs.cc (c_common_attribute_table): Add
! 	"null_terminated_string_arg".
! 	(handle_null_terminated_string_arg_attribute): New.
! 
! 2023-10-23  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR preprocessor/36887
! 	* c-opts.cc (c_common_init_options): Pass new extra hash map
! 	argument to cpp_create_reader().
! 
! 2023-10-20  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c/111884
! 	* c-common.cc (c_common_get_alias_set): Return -1 for char8_t only
! 	in C++.
! 
! 2023-10-20  Patrick Palka  <ppalka@redhat.com>
! 
! 	* c-warn.cc (check_address_or_pointer_of_packed_member): Handle
! 	type-dependent callee of CALL_EXPR.
! 
! 2023-10-20  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* c-attribs.cc (handle_expected_throw_attribute): New.
! 	(c_common_attribute_table): Add expected_throw.
! 
! 2023-10-19  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR c++/89038
! 	* c-pragma.cc (handle_pragma_diagnostic_impl):  Handle
! 	-Wunknown-pragmas during early processing.
! 
! 2023-10-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/111800
! 	* c-warn.cc (match_case_to_enum_1): Assert w.get_precision ()
! 	is smaller or equal to WIDE_INT_MAX_INL_PRECISION rather than
! 	w.get_len () is smaller or equal to WIDE_INT_MAX_INL_ELTS.
! 
! 2023-10-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/102989
! 	* c-warn.cc (match_case_to_enum_1): Use wi::to_wide just once instead
! 	of 3 times, assert get_len () is smaller than WIDE_INT_MAX_INL_ELTS.
! 
! 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc (maybe_add_include_fixit): Update for renaming of
! 	diagnostic_context's show_caret to m_source_printing.enabled.
! 	* c-opts.cc (c_common_init_options): Update for renaming of
! 	diagnostic_context's colorize_source_p to
! 	m_source_printing.colorize_source_p.
! 
! 2023-09-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/111392
! 	* c-omp.cc (c_omp_directives): Add commented out groupprivate
! 	directive entry.
! 
! 2023-09-19  Ben Boeckel  <ben.boeckel@kitware.com>
! 
! 	* c-opts.cc (c_common_handle_option): Add fdeps_file variable and
! 	-fdeps-format=, -fdeps-file=, and -fdeps-target= parsing.
! 	* c.opt: Add -fdeps-format=, -fdeps-file=, and -fdeps-target=
! 	flags.
! 
! 2023-09-19  Javier Martinez  <javier.martinez.bugzilla@gmail.com>
! 
! 	* c-attribs.cc (handle_hot_attribute): remove warning on
! 	RECORD_TYPE and UNION_TYPE when in c_dialect_xx.
! 	(handle_cold_attribute): Likewise.
! 
! 2023-09-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.cc (c_common_signed_or_unsigned_type): Return INTEGER_TYPE
! 	for signed variant of unsigned _BitInt(1).
! 
! 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/102989
! 	* c-attribs.cc (type_valid_for_vector_size): Reject vector types
! 	with BITINT_TYPE elements even if they have mode precision and
! 	suitable size.
! 
! 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/102989
! 	* c-common.cc (c_common_reswords): Add _BitInt as keyword.
! 	(unsafe_conversion_p): Handle BITINT_TYPE like INTEGER_TYPE.
! 	(c_common_signed_or_unsigned_type): Handle BITINT_TYPE.
! 	(c_common_truthvalue_conversion, c_common_get_alias_set,
! 	check_builtin_function_arguments): Handle BITINT_TYPE like
! 	INTEGER_TYPE.
! 	(sync_resolve_size): Add ORIG_FORMAT argument.  If
! 	FETCH && !ORIG_FORMAT, type is BITINT_TYPE, return -1 if size isn't
! 	one of 1, 2, 4, 8 or 16 or if it is 16 but TImode is not supported.
! 	(atomic_bitint_fetch_using_cas_loop): New function.
! 	(resolve_overloaded_builtin): Adjust sync_resolve_size caller.  If
! 	-1 is returned, use atomic_bitint_fetch_using_cas_loop to lower it.
! 	Formatting fix.
! 	(keyword_begins_type_specifier): Handle RID_BITINT.
! 	* c-common.h (enum rid): Add RID_BITINT enumerator.
! 	* c-cppbuiltin.cc (c_cpp_builtins): For C call
! 	targetm.c.bitint_type_info and predefine __BITINT_MAXWIDTH__
! 	and for -fbuilding-libgcc also __LIBGCC_BITINT_LIMB_WIDTH__ and
! 	__LIBGCC_BITINT_ORDER__ macros if _BitInt is supported.
! 	* c-lex.cc (interpret_integer): Handle CPP_N_BITINT.
! 	* c-pretty-print.cc (c_pretty_printer::simple_type_specifier,
! 	c_pretty_printer::direct_abstract_declarator,
! 	c_pretty_printer::direct_declarator, c_pretty_printer::declarator):
! 	Handle BITINT_TYPE.
! 	(pp_c_integer_constant): Handle printing of large precision wide_ints
! 	which would buffer overflow digit_buffer.
! 	* c-warn.cc (conversion_warning, warnings_for_convert_and_check,
! 	warnings_for_convert_and_check): Handle BITINT_TYPE like
! 	INTEGER_TYPE.
! 
! 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/102989
! 	* c-ubsan.cc (ubsan_instrument_shift): Use UBSAN_PRINT_FORCE_INT
! 	for type0 type descriptor.
! 
! 2023-09-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-lex.cc (interpret_float): For C diagnostics on FN and FNx suffixes
! 	append " before C2X" to diagnostics text and follow behavior of
! 	pedwarn_c11.
! 
! 2023-09-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/111069
! 	* c-opts.cc (c_common_post_options): Change latest_abi_version to 19.
! 
! 2023-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* c.opt: Change spelling to macOS.
! 
! 2023-08-31  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/111253
! 	* c-pretty-print.cc (c_pretty_printer::primary_expression):
! 	Only dump gimple_assign_single_p SSA def RHS.
! 
! 2023-08-25  Sandra Loosemore  <sandra@codesourcery.com>
! 
! 	* c-common.h (c_omp_check_loop_binding_exprs): Declare.
! 	* c-omp.cc: Include tree-iterator.h.
! 	(find_binding_in_body): New.
! 	(check_loop_binding_expr_r): New.
! 	(LOCATION_OR): New.
! 	(check_looop_binding_expr): New.
! 	(c_omp_check_loop_binding_exprs): New.
! 
! 2023-08-25  Uros Bizjak  <ubizjak@gmail.com>
! 
! 	* c-format.cc (read_any_format_width):
! 	Rename TRUE/FALSE to true/false.
! 
! 2023-08-20  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-format.cc: Fix identation.
! 
! 2023-08-20  Tomas Kalibera  <tomas.kalibera@gmail.com>
! 
! 	PR c/95130
! 	* c-format.cc: skip default format for printf symbol if
! 	explicitly declared by prototype.
! 
! 2023-08-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	PR c/106537
! 	* c.opt (Wcompare-distinct-pointer-types): New option.
! 
! 2023-08-14  Jason Merrill  <jason@redhat.com>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins): Adjust __cpp_concepts.
! 
! 2023-08-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.cc (c_common_reswords): Add __typeof_unqual
! 	and __typeof_unqual__ spellings of typeof_unqual.
! 
! 2023-08-11  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/84510
! 	* c.opt: Enable warning for C and ObjC.
! 
! 2023-08-05  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/98536
! 	* c-warn.cc (warn_parm_array_mismatch): Do not warn if more
! 	bounds are specified.
! 
! 2023-08-04  Tamar Christina  <tamar.christina@arm.com>
! 
! 	* c-pragma.h (enum pragma_kind): Add PRAGMA_NOVECTOR.
! 	* c-pragma.cc (init_pragma): Use it.
! 
! 2023-08-01  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	* c-common.h (c_init_preprocess): Declare new function.
! 	* c-opts.cc (c_common_init): Call it.
! 	* c-lex.cc (cb_def_pragma): Add a comment.
! 	(get_token): New function wrapping cpp_get_token.
! 	(c_lex_with_flags): Use the new wrapper function to support
! 	obtaining tokens in preprocess_only mode.
! 	(lex_string): Likewise.
! 	* c-pragma.cc (pragma_diagnostic_lex_normal): Rename to...
! 	(pragma_diagnostic_lex): ...this.
! 	(pragma_diagnostic_lex_pp): Remove.
! 	(handle_pragma_diagnostic_impl): Call pragma_diagnostic_lex () in
! 	all modes.
! 	(c_pp_invoke_early_pragma_handler): Adapt to support pragma_lex ()
! 	usage.
! 	* c-pragma.h (pragma_lex_discard_to_eol): Declare.
! 
! 2023-07-31  Hamza Mahfooz  <someguy@effective-light.com>
! 
! 	PR c/65213
! 	* c.opt (-Wmissing-variable-declarations): New option.
! 
! 2023-07-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	PR middle-end/77928
! 	* c-common.cc (check_builtin_function_arguments):
! 	Handle BUILT_IN_ISEQSIG.
! 
! 2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
! 	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>
! 
! 	* c-common.cc (c_common_type_for_mode): Use GET_MODE_PRECISION.
! 
! 2023-06-29  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/77650
! 	* c.opt: New option -Wflex-array-member-not-at-end.
! 
! 2023-06-28  Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/110344
! 	* c-cppbuiltin.cc (c_cpp_builtins): Update __cpp_constexpr.
! 
! 2023-06-26  Richard Biener  <rguenther@suse.de>
! 
! 	* c-common.cc (shorten_binary_op): Exit early for VECTOR_TYPE
! 	operations.
! 
! 2023-06-23  Marek Polacek  <polacek@redhat.com>
! 
! 	* c-common.h (cxx_dialect): Add cxx26 as a dialect.
! 	* c-opts.cc (set_std_cxx26): New.
! 	(c_common_handle_option): Set options when -std={c,gnu}++2{c,6} is
! 	enabled.
! 	(c_common_post_options): Adjust comments.
! 	* c.opt: Add options for -std=c++26, std=c++2c, -std=gnu++26,
! 	and -std=gnu++2c.
! 	(std=c++2b): Mark as Undocumented.
! 	(std=c++23): No longer Undocumented.
! 
! 2023-06-21  Alexander Monakov  <amonakov@ispras.ru>
! 
! 	* c-gimplify.cc (fma_supported_p): New helper.
! 	(c_gimplify_expr) [PLUS_EXPR, MINUS_EXPR]: Implement FMA
! 	contraction.
! 
! 2023-06-16  Alex Coplan  <alex.coplan@arm.com>
! 
! 	* c.opt (Welaborated-enum-base): New.
! 
! 2023-06-13  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR c/84890
! 	* known-headers.cc
! 	(suggest_missing_header::~suggest_missing_header): Reword note to
! 	avoid negative tone of "forgetting".
! 
! 2023-06-07  Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/58487
! 	* c.opt: Add -Wnrvo.
! 
! 2023-05-26  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-attribs.cc (build_attr_access_from_parms): Split loop to first
! 	record all parameters.
! 
! 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
! 
! 	* c-ada-spec.cc (has_static_fields): Use _P() defines from tree.h.
! 	(dump_ada_declaration): Ditto.
! 	(dump_ada_structure): Ditto.
! 	* c-common.cc (unsafe_conversion_p): Ditto.
! 	(shorten_compare): Ditto.
! 	(pointer_int_sum): Ditto.
! 	(c_common_truthvalue_conversion): Ditto.
! 	(scalar_to_vector): Ditto.
! 	* c-common.h (gnu_vector_type_p): Ditto.
! 	* c-omp.cc (c_omp_depend_t_p): Ditto.
! 	(c_omp_split_clauses): Ditto.
! 	* c-ubsan.cc (ubsan_instrument_division): Ditto.
! 	* c-warn.cc (conversion_warning): Ditto.
! 	(warnings_for_convert_and_check): Ditto.
! 
! 2023-05-18  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* c-format.cc (print_char_table): Handle %B like %b.
! 
! 2023-05-15  Joseph Myers  <joseph@codesourcery.com>
! 
! 	* c-lex.cc (c_common_has_attribute): Use 202311 as
! 	__has_c_attribute return for all C2x attributes.
! 
! 2023-05-15  Patrick Palka  <ppalka@redhat.com>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine __cpp_auto_cast
! 	for C++23.
! 
! 2023-05-01  Marek Polacek  <polacek@redhat.com>
! 
! 	* c-ubsan.cc (ubsan_maybe_instrument_array_ref): Don't copy_node.
  
  2023-03-28  David Malcolm  <dmalcolm@redhat.com>
  
***************
*** 14022,14028 ****
  	* c-common.c: Include gt-c-family-c-common.h.
  	* c-pragma.c: Include gt-c-family-c-pragma.h.
  
! Copyright (C) 2010-2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 14914,14920 ----
  	* c-common.c: Include gt-c-family-c-common.h.
  	* c-pragma.c: Include gt-c-family-c-pragma.h.
  
! Copyright (C) 2010-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-ada-spec.cc gcc-14.1.0/gcc/c-family/c-ada-spec.cc
*** gcc-13.2.0/gcc/c-family/c-ada-spec.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-ada-spec.cc	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Print GENERIC declaration (functions, variables, types) trees coming from
     the C and C++ front-ends as well as macros in Ada syntax.
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Adapted from tree-pretty-print.cc by Arnaud Charlet  <charlet@adacore.com>
  
  This file is part of GCC.
--- 1,6 ----
  /* Print GENERIC declaration (functions, variables, types) trees coming from
     the C and C++ front-ends as well as macros in Ada syntax.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Adapted from tree-pretty-print.cc by Arnaud Charlet  <charlet@adacore.com>
  
  This file is part of GCC.
*************** has_static_fields (const_tree type)
*** 1051,1057 ****
      return false;
  
    for (tree fld = TYPE_FIELDS (type); fld; fld = TREE_CHAIN (fld))
!     if (TREE_CODE (fld) == VAR_DECL && DECL_NAME (fld))
        return true;
  
    return false;
--- 1051,1057 ----
      return false;
  
    for (tree fld = TYPE_FIELDS (type); fld; fld = TREE_CHAIN (fld))
!     if (VAR_P (fld) && DECL_NAME (fld))
        return true;
  
    return false;
*************** check_type_name_conflict (pretty_printer
*** 1566,1571 ****
--- 1566,1573 ----
  	s = "";
        else if (TREE_CODE (TYPE_NAME (tmp)) == IDENTIFIER_NODE)
  	s = IDENTIFIER_POINTER (TYPE_NAME (tmp));
+       else if (!DECL_NAME (TYPE_NAME (tmp)))
+ 	s = "";
        else
  	s = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (tmp)));
  
*************** dump_template_types (pretty_printer *buf
*** 1850,1856 ****
        if (!dump_ada_node (buffer, elem, NULL_TREE, spc, false, true))
  	{
  	  pp_string (buffer, "unknown");
! 	  pp_scalar (buffer, "%lu", (unsigned long) TREE_HASH (elem));
  	}
      }
  }
--- 1852,1859 ----
        if (!dump_ada_node (buffer, elem, NULL_TREE, spc, false, true))
  	{
  	  pp_string (buffer, "unknown");
! 	  pp_scalar (buffer, HOST_SIZE_T_PRINT_UNSIGNED,
! 		     (fmt_size_t) TREE_HASH (elem));
  	}
      }
  }
*************** dump_ada_declaration (pretty_printer *bu
*** 3244,3250 ****
        if (need_indent)
  	INDENT (spc);
  
!       if ((TREE_CODE (t) == FIELD_DECL || TREE_CODE (t) == VAR_DECL)
  	  && DECL_NAME (t))
  	check_type_name_conflict (buffer, t);
  
--- 3247,3253 ----
        if (need_indent)
  	INDENT (spc);
  
!       if ((TREE_CODE (t) == FIELD_DECL || VAR_P (t))
  	  && DECL_NAME (t))
  	check_type_name_conflict (buffer, t);
  
*************** dump_ada_structure (pretty_printer *buff
*** 3462,3468 ****
    /* Print the static fields of the structure, if any.  */
    for (tree tmp = TYPE_FIELDS (node); tmp; tmp = TREE_CHAIN (tmp))
      {
!       if (TREE_CODE (tmp) == VAR_DECL && DECL_NAME (tmp))
  	{
  	  if (need_semicolon)
  	    {
--- 3465,3471 ----
    /* Print the static fields of the structure, if any.  */
    for (tree tmp = TYPE_FIELDS (node); tmp; tmp = TREE_CHAIN (tmp))
      {
!       if (VAR_P (tmp) && DECL_NAME (tmp))
  	{
  	  if (need_semicolon)
  	    {
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-ada-spec.h gcc-14.1.0/gcc/c-family/c-ada-spec.h
*** gcc-13.2.0/gcc/c-family/c-ada-spec.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-ada-spec.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Interface for -fdump-ada-spec capability.
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Interface for -fdump-ada-spec capability.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-attribs.cc gcc-14.1.0/gcc/c-family/c-attribs.cc
*** gcc-13.2.0/gcc/c-family/c-attribs.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-attribs.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* C-family attributes handling.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* C-family attributes handling.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 41,46 ****
--- 41,47 ----
  #include "common/common-target.h"
  #include "langhooks.h"
  #include "tree-inline.h"
+ #include "ipa-strub.h"
  #include "toplev.h"
  #include "tree-iterator.h"
  #include "opts.h"
*************** static tree handle_asan_odr_indicator_at
*** 69,74 ****
--- 70,76 ----
  static tree handle_stack_protect_attribute (tree *, tree, tree, int, bool *);
  static tree handle_no_stack_protector_function_attribute (tree *, tree,
  							tree, int, bool *);
+ static tree handle_strub_attribute (tree *, tree, tree, int, bool *);
  static tree handle_noinline_attribute (tree *, tree, tree, int, bool *);
  static tree handle_noclone_attribute (tree *, tree, tree, int, bool *);
  static tree handle_nocf_check_attribute (tree *, tree, tree, int, bool *);
*************** static tree handle_vector_mask_attribute
*** 136,141 ****
--- 138,144 ----
  static tree handle_nonnull_attribute (tree *, tree, tree, int, bool *);
  static tree handle_nonstring_attribute (tree *, tree, tree, int, bool *);
  static tree handle_nothrow_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_expected_throw_attribute (tree *, tree, tree, int, bool *);
  static tree handle_cleanup_attribute (tree *, tree, tree, int, bool *);
  static tree handle_warn_unused_result_attribute (tree *, tree, tree, int,
  						 bool *);
*************** static tree handle_alloc_align_attribute
*** 148,153 ****
--- 151,157 ----
  static tree handle_assume_aligned_attribute (tree *, tree, tree, int, bool *);
  static tree handle_assume_attribute (tree *, tree, tree, int, bool *);
  static tree handle_target_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_target_version_attribute (tree *, tree, tree, int, bool *);
  static tree handle_target_clones_attribute (tree *, tree, tree, int, bool *);
  static tree handle_optimize_attribute (tree *, tree, tree, int, bool *);
  static tree ignore_attribute (tree *, tree, tree, int, bool *);
*************** static tree handle_objc_root_class_attri
*** 175,182 ****
--- 179,188 ----
  static tree handle_objc_nullability_attribute (tree *, tree, tree, int, bool *);
  static tree handle_signed_bool_precision_attribute (tree *, tree, tree, int,
  						    bool *);
+ static tree handle_hardbool_attribute (tree *, tree, tree, int, bool *);
  static tree handle_retain_attribute (tree *, tree, tree, int, bool *);
  static tree handle_fd_arg_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_null_terminated_string_arg_attribute (tree *, tree, tree, int, bool *);
  
  /* Helper to define attribute exclusions.  */
  #define ATTR_EXCL(name, function, type, variable)	\
*************** static const struct attribute_spec::excl
*** 212,217 ****
--- 218,230 ----
    ATTR_EXCL (NULL, false, false, false),
  };
  
+ static const struct attribute_spec::exclusions attr_always_inline_exclusions[] =
+ {
+   ATTR_EXCL ("noinline", true, true, true),
+   ATTR_EXCL ("target_clones", true, true, true),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
  static const struct attribute_spec::exclusions attr_noinline_exclusions[] =
  {
    ATTR_EXCL ("always_inline", true, true, true),
*************** static const struct attribute_spec::excl
*** 219,224 ****
--- 232,259 ----
    ATTR_EXCL (NULL, false, false, false),
  };
  
+ static const struct attribute_spec::exclusions attr_target_exclusions[] =
+ {
+   ATTR_EXCL ("target_clones", TARGET_HAS_FMV_TARGET_ATTRIBUTE,
+ 	     TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
+ static const struct attribute_spec::exclusions attr_target_clones_exclusions[] =
+ {
+   ATTR_EXCL ("always_inline", true, true, true),
+   ATTR_EXCL ("target", TARGET_HAS_FMV_TARGET_ATTRIBUTE,
+ 	     TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE),
+   ATTR_EXCL ("target_version", true, true, true),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
+ static const struct attribute_spec::exclusions attr_target_version_exclusions[] =
+ {
+   ATTR_EXCL ("target_clones", true, true, true),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
  extern const struct attribute_spec::exclusions attr_noreturn_exclusions[] =
  {
    ATTR_EXCL ("alloc_align", true, true, true),
*************** static const struct attribute_spec::excl
*** 286,297 ****
  /* Table of machine-independent attributes common to all C-like languages.
  
     Current list of processed common attributes: nonnull.  */
! const struct attribute_spec c_common_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
    { "signed_bool_precision",  1, 1, false, true, false, true,
  			      handle_signed_bool_precision_attribute, NULL },
    { "packed",                 0, 0, false, false, false, false,
  			      handle_packed_attribute,
  	                      attr_aligned_exclusions },
--- 321,334 ----
  /* Table of machine-independent attributes common to all C-like languages.
  
     Current list of processed common attributes: nonnull.  */
! const struct attribute_spec c_common_gnu_attributes[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
    { "signed_bool_precision",  1, 1, false, true, false, true,
  			      handle_signed_bool_precision_attribute, NULL },
+   { "hardbool",               0, 2, false, true, false, true,
+ 			      handle_hardbool_attribute, NULL },
    { "packed",                 0, 0, false, false, false, false,
  			      handle_packed_attribute,
  	                      attr_aligned_exclusions },
*************** const struct attribute_spec c_common_att
*** 317,322 ****
--- 354,361 ----
    { "no_stack_protector",     0, 0, true, false, false, false,
  			      handle_no_stack_protector_function_attribute,
  			      attr_stack_protect_exclusions },
+   { "strub",		      0, 1, false, true, false, true,
+ 			      handle_strub_attribute, NULL },
    { "noinline",               0, 0, true,  false, false, false,
  			      handle_noinline_attribute,
  	                      attr_noinline_exclusions },
*************** const struct attribute_spec c_common_att
*** 330,336 ****
  			      handle_leaf_attribute, NULL },
    { "always_inline",          0, 0, true,  false, false, false,
  			      handle_always_inline_attribute,
! 	                      attr_inline_exclusions },
    { "gnu_inline",             0, 0, true,  false, false, false,
  			      handle_gnu_inline_attribute,
  	                      attr_inline_exclusions },
--- 369,375 ----
  			      handle_leaf_attribute, NULL },
    { "always_inline",          0, 0, true,  false, false, false,
  			      handle_always_inline_attribute,
! 			      attr_always_inline_exclusions },
    { "gnu_inline",             0, 0, true,  false, false, false,
  			      handle_gnu_inline_attribute,
  	                      attr_inline_exclusions },
*************** const struct attribute_spec c_common_att
*** 437,442 ****
--- 476,483 ----
  			      handle_nonstring_attribute, NULL },
    { "nothrow",                0, 0, true,  false, false, false,
  			      handle_nothrow_attribute, NULL },
+   { "expected_throw",         0, 0, true,  false, false, false,
+ 			      handle_expected_throw_attribute, NULL },
    { "may_alias",	      0, 0, false, true, false, false, NULL, NULL },
    { "cleanup",		      1, 1, true, false, false, false,
  			      handle_cleanup_attribute, NULL },
*************** const struct attribute_spec c_common_att
*** 452,461 ****
    { "alloc_size",	      1, 2, false, true, true, false,
  			      handle_alloc_size_attribute,
  	                      attr_alloc_exclusions },
!   { "cold",                   0, 0, true,  false, false, false,
  			      handle_cold_attribute,
  	                      attr_cold_hot_exclusions },
!   { "hot",                    0, 0, true,  false, false, false,
  			      handle_hot_attribute,
  	                      attr_cold_hot_exclusions },
    { "no_address_safety_analysis",
--- 493,502 ----
    { "alloc_size",	      1, 2, false, true, true, false,
  			      handle_alloc_size_attribute,
  	                      attr_alloc_exclusions },
!   { "cold",		      0, 0, false,  false, false, false,
  			      handle_cold_attribute,
  	                      attr_cold_hot_exclusions },
!   { "hot",		      0, 0, false,  false, false, false,
  			      handle_hot_attribute,
  	                      attr_cold_hot_exclusions },
    { "no_address_safety_analysis",
*************** const struct attribute_spec c_common_att
*** 479,487 ****
    { "error",		      1, 1, true,  false, false, false,
  			      handle_error_attribute, NULL },
    { "target",                 1, -1, true, false, false, false,
! 			      handle_target_attribute, NULL },
    { "target_clones",          1, -1, true, false, false, false,
! 			      handle_target_clones_attribute, NULL },
    { "optimize",               1, -1, true, false, false, false,
  			      handle_optimize_attribute, NULL },
    /* For internal use only.  The leading '*' both prevents its usage in
--- 520,533 ----
    { "error",		      1, 1, true,  false, false, false,
  			      handle_error_attribute, NULL },
    { "target",                 1, -1, true, false, false, false,
! 			      handle_target_attribute,
! 			      attr_target_exclusions },
!   { "target_version",         1, 1, true, false, false, false,
! 			      handle_target_version_attribute,
! 			      attr_target_version_exclusions },
    { "target_clones",          1, -1, true, false, false, false,
! 			      handle_target_clones_attribute,
! 			      attr_target_clones_exclusions },
    { "optimize",               1, -1, true, false, false, false,
  			      handle_optimize_attribute, NULL },
    /* For internal use only.  The leading '*' both prevents its usage in
*************** const struct attribute_spec c_common_att
*** 518,523 ****
--- 564,571 ----
  			      handle_omp_declare_target_attribute, NULL },
    { "omp declare target implicit", 0, 0, true, false, false, false,
  			      handle_omp_declare_target_attribute, NULL },
+   { "omp declare target indirect", 0, 0, true, false, false, false,
+ 			      handle_omp_declare_target_attribute, NULL },
    { "omp declare target host", 0, 0, true, false, false, false,
  			      handle_omp_declare_target_attribute, NULL },
    { "omp declare target nohost", 0, 0, true, false, false, false,
*************** const struct attribute_spec c_common_att
*** 569,590 ****
              handle_fd_arg_attribute, NULL},
    { "fd_arg_write",       1, 1, false, true, true, false,
              handle_fd_arg_attribute, NULL},         
!   { NULL,                     0, 0, false, false, false, false, NULL, NULL }
  };
  
  /* Give the specifications for the format attributes, used by C and all
     descendants.
  
     Current list of processed format attributes: format, format_arg.  */
! const struct attribute_spec c_common_format_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
    { "format",                 3, 3, false, true,  true, false,
  			      handle_format_attribute, NULL },
    { "format_arg",             1, 1, false, true,  true, false,
! 			      handle_format_arg_attribute, NULL },
!   { NULL,                     0, 0, false, false, false, false, NULL, NULL }
  };
  
  /* Returns TRUE iff the attribute indicated by ATTR_ID takes a plain
--- 617,648 ----
              handle_fd_arg_attribute, NULL},
    { "fd_arg_write",       1, 1, false, true, true, false,
              handle_fd_arg_attribute, NULL},         
!   { "null_terminated_string_arg", 1, 1, false, true, true, false,
! 			      handle_null_terminated_string_arg_attribute, NULL}
! };
! 
! const struct scoped_attribute_specs c_common_gnu_attribute_table =
! {
!   "gnu", { c_common_gnu_attributes }
  };
  
  /* Give the specifications for the format attributes, used by C and all
     descendants.
  
     Current list of processed format attributes: format, format_arg.  */
! const struct attribute_spec c_common_format_attributes[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
    { "format",                 3, 3, false, true,  true, false,
  			      handle_format_attribute, NULL },
    { "format_arg",             1, 1, false, true,  true, false,
! 			      handle_format_arg_attribute, NULL }
! };
! 
! const struct scoped_attribute_specs c_common_format_attribute_table =
! {
!   "gnu", { c_common_format_attributes }
  };
  
  /* Returns TRUE iff the attribute indicated by ATTR_ID takes a plain
*************** handle_signed_bool_precision_attribute (
*** 989,994 ****
--- 1047,1142 ----
    return NULL_TREE;
  }
  
+ /* Handle a "hardbool" attribute; arguments as in struct
+    attribute_spec.handler.  */
+ 
+ static tree
+ handle_hardbool_attribute (tree *node, tree name, tree args,
+ 			   int /* flags */, bool *no_add_attrs)
+ {
+   if (c_language != clk_c)
+     {
+       error ("%qE attribute only supported in C", name);
+       *no_add_attrs = TRUE;
+       return NULL_TREE;
+     }
+ 
+   if (!TYPE_P (*node) || TREE_CODE (*node) != INTEGER_TYPE)
+     {
+       error ("%qE attribute only supported on "
+ 	     "integral types", name);
+       *no_add_attrs = TRUE;
+       return NULL_TREE;
+     }
+ 
+   tree orig = *node;
+   *node = build_duplicate_type (orig);
+ 
+   TREE_SET_CODE (*node, ENUMERAL_TYPE);
+   ENUM_UNDERLYING_TYPE (*node) = orig;
+ 
+   tree false_value;
+   if (args)
+     false_value = fold_convert (*node, TREE_VALUE (args));
+   else
+     false_value = fold_convert (*node, integer_zero_node);
+ 
+   if (TREE_OVERFLOW_P (false_value))
+     {
+       warning (OPT_Wattributes,
+ 	       "overflows in conversion from %qT to %qT "
+ 	       "changes value from %qE to %qE",
+ 	       TREE_TYPE (TREE_VALUE (args)), *node,
+ 	       TREE_VALUE (args), false_value);
+       TREE_OVERFLOW (false_value) = false;
+     }
+ 
+   tree true_value;
+   if (args && TREE_CHAIN (args))
+     true_value = fold_convert (*node, TREE_VALUE (TREE_CHAIN (args)));
+   else
+     true_value = fold_build1 (BIT_NOT_EXPR, *node, false_value);
+ 
+   if (TREE_OVERFLOW_P (true_value))
+     {
+       warning (OPT_Wattributes,
+ 	       "overflows in conversion from %qT to %qT "
+ 	       "changes value from %qE to %qE",
+ 	       TREE_TYPE (TREE_VALUE (TREE_CHAIN (args))), *node,
+ 	       TREE_VALUE (TREE_CHAIN (args)), true_value);
+       TREE_OVERFLOW (true_value) = false;
+     }
+ 
+   if (tree_int_cst_compare (false_value, true_value) == 0)
+     {
+       error ("%qE attribute requires different values for"
+ 	     " %<false%> and %<true%> for type %qT",
+ 	     name, *node);
+       *no_add_attrs = TRUE;
+       return NULL_TREE;
+     }
+ 
+   tree values = build_tree_list (get_identifier ("false"),
+ 				 false_value);
+   TREE_CHAIN (values) = build_tree_list (get_identifier ("true"),
+ 					 true_value);
+ 
+   /* Do *not* set TYPE_MIN_VALUE, TYPE_MAX_VALUE, nor TYPE_PRECISION according
+      to the false and true values.  That might cause the constants to be the
+      only acceptable values, which would drop the very hardening checks this
+      attribute is supposed to add.  */
+ 
+   TYPE_ATTRIBUTES (*node) = tree_cons (name, args,
+ 				       TYPE_ATTRIBUTES (*node));
+   *no_add_attrs = TRUE;
+ 
+   gcc_checking_assert (!TYPE_CACHED_VALUES_P (*node));
+   TYPE_VALUES (*node) = values;
+   TYPE_NAME (*node) = orig;
+ 
+   return NULL_TREE;
+ }
+ 
  /* Handle a "packed" attribute; arguments as in
     struct attribute_spec.handler.  */
  
*************** handle_hot_attribute (tree *node, tree n
*** 1110,1115 ****
--- 1258,1286 ----
      {
        /* Attribute hot processing is done later with lookup_attribute.  */
      }
+   else if ((TREE_CODE (*node) == RECORD_TYPE
+ 	    || TREE_CODE (*node) == UNION_TYPE)
+ 	   && c_dialect_cxx ()
+ 	   && (flags & (int) ATTR_FLAG_TYPE_IN_PLACE))
+     {
+       /* Check conflict here as decl_attributes will otherwise only catch
+ 	 it late at the function when the attribute is used on a class.  */
+       tree cold_attr = lookup_attribute ("cold", TYPE_ATTRIBUTES (*node));
+       if (cold_attr)
+ 	{
+ 	  warning (OPT_Wattributes, "ignoring attribute %qE because it "
+ 		   "conflicts with attribute %qs", name, "cold");
+ 	  *no_add_attrs = true;
+ 	}
+     }
+   else if (flags & ((int) ATTR_FLAG_FUNCTION_NEXT
+ 		    | (int) ATTR_FLAG_DECL_NEXT))
+     {
+ 	/* Avoid applying the attribute to a function return type when
+ 	   used as:  void __attribute ((hot)) foo (void).  It will be
+ 	   passed to the function.  */
+ 	*no_add_attrs = true;
+     }
    else
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
*************** handle_cold_attribute (tree *node, tree
*** 1131,1136 ****
--- 1302,1330 ----
      {
        /* Attribute cold processing is done later with lookup_attribute.  */
      }
+   else if ((TREE_CODE (*node) == RECORD_TYPE
+ 	    || TREE_CODE (*node) == UNION_TYPE)
+ 	   && c_dialect_cxx ()
+ 	   && (flags & (int) ATTR_FLAG_TYPE_IN_PLACE))
+     {
+       /* Check conflict here as decl_attributes will otherwise only catch
+ 	 it late at the function when the attribute is used on a class.  */
+       tree hot_attr = lookup_attribute ("hot", TYPE_ATTRIBUTES (*node));
+       if (hot_attr)
+ 	{
+ 	  warning (OPT_Wattributes, "ignoring attribute %qE because it "
+ 		   "conflicts with attribute %qs", name, "hot");
+ 	  *no_add_attrs = true;
+ 	}
+     }
+   else if (flags & ((int) ATTR_FLAG_FUNCTION_NEXT
+ 		    | (int) ATTR_FLAG_DECL_NEXT))
+     {
+ 	/* Avoid applying the attribute to a function return type when
+ 	   used as:  void __attribute ((cold)) foo (void).  It will be
+ 	   passed to the function.  */
+ 	*no_add_attrs = true;
+     }
    else
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
*************** handle_noipa_attribute (tree *node, tree
*** 1334,1358 ****
    return NULL_TREE;
  }
  
! /* Handle a "noinline" attribute; arguments as in
     struct attribute_spec.handler.  */
  
  static tree
! handle_noinline_attribute (tree *node, tree name,
! 			   tree ARG_UNUSED (args),
! 			   int ARG_UNUSED (flags), bool *no_add_attrs)
  {
!   if (TREE_CODE (*node) == FUNCTION_DECL)
      {
!       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (*node)))
  	{
! 	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
! 		   "with attribute %qs", name, "always_inline");
  	  *no_add_attrs = true;
  	}
!       else
! 	DECL_UNINLINABLE (*node) = 1;
      }
    else
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
--- 1528,1621 ----
    return NULL_TREE;
  }
  
! /* Handle a "strub" attribute; arguments as in
     struct attribute_spec.handler.  */
  
  static tree
! handle_strub_attribute (tree *node, tree name,
! 			tree args,
! 			int ARG_UNUSED (flags), bool *no_add_attrs)
  {
!   bool enable = true;
! 
!   if (args && FUNCTION_POINTER_TYPE_P (*node))
!     *node = TREE_TYPE (*node);
! 
!   if (args && FUNC_OR_METHOD_TYPE_P (*node))
      {
!       switch (strub_validate_fn_attr_parm (TREE_VALUE (args)))
  	{
! 	case 1:
! 	case 2:
! 	  enable = true;
! 	  break;
! 
! 	case 0:
! 	  warning (OPT_Wattributes,
! 		   "%qE attribute ignored because of argument %qE",
! 		   name, TREE_VALUE (args));
  	  *no_add_attrs = true;
+ 	  enable = false;
+ 	  break;
+ 
+ 	case -1:
+ 	case -2:
+ 	  enable = false;
+ 	  break;
+ 
+ 	default:
+ 	  gcc_unreachable ();
  	}
! 
!       args = TREE_CHAIN (args);
!     }
! 
!   if (args)
!     {
!       warning (OPT_Wattributes,
! 	       "ignoring attribute %qE because of excess arguments"
! 	       " starting at %qE",
! 	       name, TREE_VALUE (args));
!       *no_add_attrs = true;
!       enable = false;
      }
+ 
+   /* Warn about unmet expectations that the strub attribute works like a
+      qualifier.  ??? Could/should we extend it to the element/field types
+      here?  */
+   if (TREE_CODE (*node) == ARRAY_TYPE
+       || VECTOR_TYPE_P (*node)
+       || TREE_CODE (*node) == COMPLEX_TYPE)
+     warning (OPT_Wattributes,
+ 	     "attribute %qE does not apply to elements"
+ 	     " of non-scalar type %qT",
+ 	     name, *node);
+   else if (RECORD_OR_UNION_TYPE_P (*node))
+     warning (OPT_Wattributes,
+ 	     "attribute %qE does not apply to fields"
+ 	     " of aggregate type %qT",
+ 	     name, *node);
+ 
+   /* If we see a strub-enabling attribute, and we're at the default setting,
+      implicitly or explicitly, note that the attribute was seen, so that we can
+      reduce the compile-time overhead to nearly zero when the strub feature is
+      not used.  */
+   if (enable && flag_strub < -2)
+     flag_strub += 2;
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Handle a "noinline" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ static tree
+ handle_noinline_attribute (tree *node, tree name,
+ 			   tree ARG_UNUSED (args),
+ 			   int ARG_UNUSED (flags), bool *no_add_attrs)
+ {
+   if (TREE_CODE (*node) == FUNCTION_DECL)
+     DECL_UNINLINABLE (*node) = 1;
    else
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
*************** handle_noicf_attribute (tree *node, tree
*** 1412,1418 ****
  			tree ARG_UNUSED (args),
  			int ARG_UNUSED (flags), bool *no_add_attrs)
  {
!   if (TREE_CODE (*node) != FUNCTION_DECL)
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
        *no_add_attrs = true;
--- 1675,1682 ----
  			tree ARG_UNUSED (args),
  			int ARG_UNUSED (flags), bool *no_add_attrs)
  {
!   if (TREE_CODE (*node) != FUNCTION_DECL
!       && (TREE_CODE (*node) != VAR_DECL || !is_global_var (*node)))
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
        *no_add_attrs = true;
*************** handle_always_inline_attribute (tree *no
*** 1433,1454 ****
  {
    if (TREE_CODE (*node) == FUNCTION_DECL)
      {
!       if (lookup_attribute ("noinline", DECL_ATTRIBUTES (*node)))
! 	{
! 	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
! 		   "with %qs attribute", name, "noinline");
! 	  *no_add_attrs = true;
! 	}
!       else if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (*node)))
! 	{
! 	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
! 		   "with %qs attribute", name, "target_clones");
! 	  *no_add_attrs = true;
! 	}
!       else
! 	/* Set the attribute and mark it for disregarding inline
! 	   limits.  */
! 	DECL_DISREGARD_INLINE_LIMITS (*node) = 1;
      }
    else
      {
--- 1697,1705 ----
  {
    if (TREE_CODE (*node) == FUNCTION_DECL)
      {
!       /* Set the attribute and mark it for disregarding inline
! 	 limits.  */
!       DECL_DISREGARD_INLINE_LIMITS (*node) = 1;
      }
    else
      {
*************** handle_copy_attribute (tree *node, tree
*** 2892,2904 ****
    if (ref == error_mark_node)
      return NULL_TREE;
  
    if (TREE_CODE (ref) == STRING_CST)
      {
        /* Explicitly handle this case since using a string literal
  	 as an argument is a likely mistake.  */
!       error_at (DECL_SOURCE_LOCATION (decl),
! 		"%qE attribute argument cannot be a string",
! 		name);
        return NULL_TREE;
      }
  
--- 3143,3156 ----
    if (ref == error_mark_node)
      return NULL_TREE;
  
+   location_t loc = input_location;
+   if (DECL_P (decl))
+     loc = DECL_SOURCE_LOCATION (decl);
    if (TREE_CODE (ref) == STRING_CST)
      {
        /* Explicitly handle this case since using a string literal
  	 as an argument is a likely mistake.  */
!       error_at (loc, "%qE attribute argument cannot be a string", name);
        return NULL_TREE;
      }
  
*************** handle_copy_attribute (tree *node, tree
*** 2909,2918 ****
        /* Similar to the string case, since some function attributes
  	 accept literal numbers as arguments (e.g., alloc_size or
  	 nonnull) using one here is a likely mistake.  */
!       error_at (DECL_SOURCE_LOCATION (decl),
! 		"%qE attribute argument cannot be a constant arithmetic "
! 		"expression",
! 		name);
        return NULL_TREE;
      }
  
--- 3161,3168 ----
        /* Similar to the string case, since some function attributes
  	 accept literal numbers as arguments (e.g., alloc_size or
  	 nonnull) using one here is a likely mistake.  */
!       error_at (loc, "%qE attribute argument cannot be a constant arithmetic "
! 		"expression", name);
        return NULL_TREE;
      }
  
*************** handle_copy_attribute (tree *node, tree
*** 2920,2931 ****
      {
        /* Another possible mistake (but indirect self-references aren't
  	 and diagnosed and shouldn't be).  */
!       if (warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wattributes,
  		      "%qE attribute ignored on a redeclaration "
! 		      "of the referenced symbol",
! 		      name))
! 	inform (DECL_SOURCE_LOCATION (node[1]),
! 		"previous declaration here");
        return NULL_TREE;
      }
  
--- 3170,3180 ----
      {
        /* Another possible mistake (but indirect self-references aren't
  	 and diagnosed and shouldn't be).  */
!       if (warning_at (loc, OPT_Wattributes,
  		      "%qE attribute ignored on a redeclaration "
! 		      "of the referenced symbol", name)
! 	  && DECL_P (node[1]))
! 	inform (DECL_SOURCE_LOCATION (node[1]), "previous declaration here");
        return NULL_TREE;
      }
  
*************** handle_copy_attribute (tree *node, tree
*** 2945,2951 ****
  	ref = TREE_OPERAND (ref, 1);
        else
  	break;
!     } while (!DECL_P (ref));
  
    /* For object pointer expressions, consider those to be requests
       to copy from their type, such as in:
--- 3194,3201 ----
  	ref = TREE_OPERAND (ref, 1);
        else
  	break;
!     }
!   while (!DECL_P (ref));
  
    /* For object pointer expressions, consider those to be requests
       to copy from their type, such as in:
*************** handle_copy_attribute (tree *node, tree
*** 2977,2984 ****
  	     to a variable, or variable attributes to a function.  */
  	  if (warning (OPT_Wattributes,
  		       "%qE attribute ignored on a declaration of "
! 		       "a different kind than referenced symbol",
! 		       name)
  	      && DECL_P (ref))
  	    inform (DECL_SOURCE_LOCATION (ref),
  		    "symbol %qD referenced by %qD declared here", ref, decl);
--- 3227,3233 ----
  	     to a variable, or variable attributes to a function.  */
  	  if (warning (OPT_Wattributes,
  		       "%qE attribute ignored on a declaration of "
! 		       "a different kind than referenced symbol", name)
  	      && DECL_P (ref))
  	    inform (DECL_SOURCE_LOCATION (ref),
  		    "symbol %qD referenced by %qD declared here", ref, decl);
*************** handle_copy_attribute (tree *node, tree
*** 3028,3036 ****
      }
    else if (!TYPE_P (decl))
      {
!       error_at (DECL_SOURCE_LOCATION (decl),
! 		"%qE attribute must apply to a declaration",
! 		name);
        return NULL_TREE;
      }
  
--- 3277,3283 ----
      }
    else if (!TYPE_P (decl))
      {
!       error_at (loc, "%qE attribute must apply to a declaration", name);
        return NULL_TREE;
      }
  
*************** static tree
*** 4354,4360 ****
  type_valid_for_vector_size (tree type, tree atname, tree args,
  			    unsigned HOST_WIDE_INT *ptrnunits)
  {
!   bool error_p = ptrnunits != NULL;
  
    /* Get the mode of the type being modified.  */
    machine_mode orig_mode = TYPE_MODE (type);
--- 4601,4608 ----
  type_valid_for_vector_size (tree type, tree atname, tree args,
  			    unsigned HOST_WIDE_INT *ptrnunits)
  {
!   bool hardbool_p = c_hardbool_type_attr (type);
!   bool error_p = ptrnunits != NULL || hardbool_p;
  
    /* Get the mode of the type being modified.  */
    machine_mode orig_mode = TYPE_MODE (type);
*************** type_valid_for_vector_size (tree type, t
*** 4366,4372 ****
  	  && GET_MODE_CLASS (orig_mode) != MODE_INT
  	  && !ALL_SCALAR_FIXED_POINT_MODE_P (orig_mode))
        || !tree_fits_uhwi_p (TYPE_SIZE_UNIT (type))
!       || TREE_CODE (type) == BOOLEAN_TYPE)
      {
        if (error_p)
  	error ("invalid vector type for attribute %qE", atname);
--- 4614,4622 ----
  	  && GET_MODE_CLASS (orig_mode) != MODE_INT
  	  && !ALL_SCALAR_FIXED_POINT_MODE_P (orig_mode))
        || !tree_fits_uhwi_p (TYPE_SIZE_UNIT (type))
!       || TREE_CODE (type) == BOOLEAN_TYPE
!       || hardbool_p
!       || TREE_CODE (type) == BITINT_TYPE)
      {
        if (error_p)
  	error ("invalid vector type for attribute %qE", atname);
*************** handle_fd_arg_attribute (tree *node, tre
*** 4610,4615 ****
--- 4860,4879 ----
    return NULL_TREE;
  }
  
+ /* Handle the "null_terminated_string_arg" attribute.  */
+ 
+ static tree
+ handle_null_terminated_string_arg_attribute (tree *node, tree name, tree args,
+ 					     int ARG_UNUSED (flags),
+ 					     bool *no_add_attrs)
+ {
+   if (positional_argument (*node, name, TREE_VALUE (args), POINTER_TYPE))
+     return NULL_TREE;
+ 
+   *no_add_attrs = true;
+   return NULL_TREE;
+ }
+ 
  /* Handle the "nonstring" variable attribute.  */
  
  static tree
*************** build_attr_access_from_parms (tree parms
*** 5278,5283 ****
--- 5542,5557 ----
        tree argtype = TREE_TYPE (arg);
        if (DECL_NAME (arg) && INTEGRAL_TYPE_P (argtype))
  	arg2pos.put (arg, argpos);
+     }
+ 
+   tree nnlist = NULL_TREE;
+   argpos = 0;
+   for (tree arg = parms; arg; arg = TREE_CHAIN (arg), ++argpos)
+     {
+       if (!DECL_P (arg))
+ 	continue;
+ 
+       tree argtype = TREE_TYPE (arg);
  
        tree argspec = DECL_ATTRIBUTES (arg);
        if (!argspec)
*************** build_attr_access_from_parms (tree parms
*** 5304,5309 ****
--- 5578,5588 ----
        tree str = TREE_VALUE (argspec);
        const char *s = TREE_STRING_POINTER (str);
  
+       /* Collect the list of nonnull arguments which use "[static ..]".  */
+       if (s != NULL && s[0] == '[' && s[1] == 's')
+ 	nnlist = tree_cons (NULL_TREE, build_int_cst (integer_type_node,
+ 						      argpos + 1), nnlist);
+ 
        /* Create the attribute access string from the arg spec string,
  	 optionally followed by position of the VLA bound argument if
  	 it is one.  */
*************** build_attr_access_from_parms (tree parms
*** 5371,5376 ****
--- 5650,5659 ----
    if (!spec.length ())
      return NULL_TREE;
  
+   /* If we have nonnull arguments, synthesize an attribute.  */
+   if (nnlist != NULL_TREE)
+     nnlist = build_tree_list (get_identifier ("nonnull"), nnlist);
+ 
    /* Attribute access takes a two or three arguments.  Wrap VBLIST in
       another list in case it has more nodes than would otherwise fit.  */
    vblist = build_tree_list (NULL_TREE, vblist);
*************** build_attr_access_from_parms (tree parms
*** 5381,5387 ****
    tree str = build_string (spec.length (), spec.c_str ());
    tree attrargs = tree_cons (NULL_TREE, str, vblist);
    tree name = get_identifier ("access");
!   return build_tree_list (name, attrargs);
  }
  
  /* Handle a "nothrow" attribute; arguments as in
--- 5664,5670 ----
    tree str = build_string (spec.length (), spec.c_str ());
    tree attrargs = tree_cons (NULL_TREE, str, vblist);
    tree name = get_identifier ("access");
!   return tree_cons (name, attrargs, nnlist);
  }
  
  /* Handle a "nothrow" attribute; arguments as in
*************** handle_nothrow_attribute (tree *node, tr
*** 5403,5408 ****
--- 5686,5710 ----
    return NULL_TREE;
  }
  
+ /* Handle a "nothrow" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
+ static tree
+ handle_expected_throw_attribute (tree *node, tree name, tree ARG_UNUSED (args),
+ 				 int ARG_UNUSED (flags), bool *no_add_attrs)
+ {
+   if (TREE_CODE (*node) == FUNCTION_DECL)
+     /* No flag to set here.  */;
+   /* ??? TODO: Support types.  */
+   else
+     {
+       warning (OPT_Wattributes, "%qE attribute ignored", name);
+       *no_add_attrs = true;
+     }
+ 
+   return NULL_TREE;
+ }
+ 
  /* Handle a "cleanup" attribute; arguments as in
     struct attribute_spec.handler.  */
  
*************** static tree
*** 5537,5554 ****
  handle_target_attribute (tree *node, tree name, tree args, int flags,
  			 bool *no_add_attrs)
  {
!   /* Ensure we have a function type.  */
    if (TREE_CODE (*node) != FUNCTION_DECL)
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
        *no_add_attrs = true;
      }
-   else if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (*node)))
-     {
-       warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
- 		   "with %qs attribute", name, "target_clones");
-       *no_add_attrs = true;
-     }
    else if (! targetm.target_option.valid_attribute_p (*node, name, args,
  						      flags))
      *no_add_attrs = true;
--- 5839,5850 ----
  handle_target_attribute (tree *node, tree name, tree args, int flags,
  			 bool *no_add_attrs)
  {
!   /* Ensure we have a function declaration.  */
    if (TREE_CODE (*node) != FUNCTION_DECL)
      {
        warning (OPT_Wattributes, "%qE attribute ignored", name);
        *no_add_attrs = true;
      }
    else if (! targetm.target_option.valid_attribute_p (*node, name, args,
  						      flags))
      *no_add_attrs = true;
*************** handle_target_attribute (tree *node, tre
*** 5569,5581 ****
    return NULL_TREE;
  }
  
  /* Handle a "target_clones" attribute.  */
  
  static tree
  handle_target_clones_attribute (tree *node, tree name, tree ARG_UNUSED (args),
  			  int ARG_UNUSED (flags), bool *no_add_attrs)
  {
!   /* Ensure we have a function type.  */
    if (TREE_CODE (*node) == FUNCTION_DECL)
      {
        for (tree t = args; t != NULL_TREE; t = TREE_CHAIN (t))
--- 5865,5896 ----
    return NULL_TREE;
  }
  
+ /* Handle a "target_version" attribute.  */
+ 
+ static tree
+ handle_target_version_attribute (tree *node, tree name, tree args, int flags,
+ 				  bool *no_add_attrs)
+ {
+   /* Ensure we have a function declaration.  */
+   if (TREE_CODE (*node) != FUNCTION_DECL)
+     {
+       warning (OPT_Wattributes, "%qE attribute ignored", name);
+       *no_add_attrs = true;
+     }
+   else if (!targetm.target_option.valid_version_attribute_p (*node, name, args,
+ 							     flags))
+     *no_add_attrs = true;
+ 
+   return NULL_TREE;
+ }
+ 
  /* Handle a "target_clones" attribute.  */
  
  static tree
  handle_target_clones_attribute (tree *node, tree name, tree ARG_UNUSED (args),
  			  int ARG_UNUSED (flags), bool *no_add_attrs)
  {
!   /* Ensure we have a function declaration.  */
    if (TREE_CODE (*node) == FUNCTION_DECL)
      {
        for (tree t = args; t != NULL_TREE; t = TREE_CHAIN (t))
*************** handle_target_clones_attribute (tree *no
*** 5589,5607 ****
  	    }
  	}
  
!       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (*node)))
! 	{
! 	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
! 		   "with %qs attribute", name, "always_inline");
! 	  *no_add_attrs = true;
! 	}
!       else if (lookup_attribute ("target", DECL_ATTRIBUTES (*node)))
! 	{
! 	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
! 		   "with %qs attribute", name, "target");
! 	  *no_add_attrs = true;
! 	}
!       else if (get_target_clone_attr_len (args) == -1)
  	{
  	  warning (OPT_Wattributes,
  		   "single %<target_clones%> attribute is ignored");
--- 5904,5910 ----
  	    }
  	}
  
!       if (get_target_clone_attr_len (args) == -1)
  	{
  	  warning (OPT_Wattributes,
  		   "single %<target_clones%> attribute is ignored");
*************** handle_objc_nullability_attribute (tree
*** 5941,5947 ****
  	      || strcmp (TREE_STRING_POINTER (val), "resettable") == 0))
      *no_add_attrs = false; /* OK */
    else if (val != error_mark_node)
!     error ("%qE attribute argument %qE is not recognised", name, val);
  
    return NULL_TREE;
  }
--- 6244,6250 ----
  	      || strcmp (TREE_STRING_POINTER (val), "resettable") == 0))
      *no_add_attrs = false; /* OK */
    else if (val != error_mark_node)
!     error ("%qE attribute argument %qE is not recognized", name, val);
  
    return NULL_TREE;
  }
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-common.cc gcc-14.1.0/gcc/c-family/c-common.cc
*** gcc-13.2.0/gcc/c-family/c-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines shared by all languages that are variants of C.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Subroutines shared by all languages that are variants of C.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** int flag_isoc99;
*** 224,232 ****
  
  int flag_isoc11;
  
! /* Nonzero means use the ISO C2X dialect of C.  */
  
! int flag_isoc2x;
  
  /* Nonzero means that we have builtin functions, and main is an int.  */
  
--- 224,232 ----
  
  int flag_isoc11;
  
! /* Nonzero means use the ISO C23 dialect of C.  */
  
! int flag_isoc23;
  
  /* Nonzero means that we have builtin functions, and main is an int.  */
  
*************** const struct fname_var_t fname_vars[] =
*** 311,316 ****
--- 311,354 ----
    {NULL, 0, 0},
  };
  
+ /* Flags to restrict availability of generic features that
+    are known to __has_{feature,extension}.  */
+ 
+ enum
+ {
+   HF_FLAG_NONE = 0,
+   HF_FLAG_EXT = 1,	/* Available only as an extension.  */
+   HF_FLAG_SANITIZE = 2, /* Availability depends on sanitizer flags.  */
+ };
+ 
+ /* Info for generic features which can be queried through
+    __has_{feature,extension}.  */
+ 
+ struct hf_feature_info
+ {
+   const char *ident;
+   unsigned flags;
+   unsigned mask;
+ };
+ 
+ /* Table of generic features which can be queried through
+    __has_{feature,extension}.  */
+ 
+ static constexpr hf_feature_info has_feature_table[] =
+ {
+   { "address_sanitizer",	    HF_FLAG_SANITIZE, SANITIZE_ADDRESS },
+   { "thread_sanitizer",		    HF_FLAG_SANITIZE, SANITIZE_THREAD },
+   { "leak_sanitizer",		    HF_FLAG_SANITIZE, SANITIZE_LEAK },
+   { "hwaddress_sanitizer",	    HF_FLAG_SANITIZE, SANITIZE_HWADDRESS },
+   { "undefined_behavior_sanitizer", HF_FLAG_SANITIZE, SANITIZE_UNDEFINED },
+   { "attribute_deprecated_with_message",  HF_FLAG_NONE, 0 },
+   { "attribute_unavailable_with_message", HF_FLAG_NONE, 0 },
+   { "enumerator_attributes",		  HF_FLAG_NONE, 0 },
+   { "tls",				  HF_FLAG_NONE, 0 },
+   { "gnu_asm_goto_with_outputs",	  HF_FLAG_EXT, 0 },
+   { "gnu_asm_goto_with_outputs_full",	  HF_FLAG_EXT, 0 }
+ };
+ 
  /* Global visibility options.  */
  struct visibility_flags visibility_options;
  
*************** static bool nonnull_check_p (tree, unsig
*** 324,333 ****
     if they match the mask.
  
     Masks for languages:
!    C --std=c89: D_C99 | D_C2X | D_CXXONLY | D_OBJC | D_CXX_OBJC
!    C --std=c99: D_C2X | D_CXXONLY | D_OBJC
!    C --std=c17: D_C2X | D_CXXONLY | D_OBJC
!    C --std=c2x: D_CXXONLY | D_OBJC
     ObjC is like C except that D_OBJC and D_CXX_OBJC are not set
     C++ --std=c++98: D_CONLY | D_CXX11 | D_CXX20 | D_OBJC
     C++ --std=c++11: D_CONLY | D_CXX20 | D_OBJC
--- 362,371 ----
     if they match the mask.
  
     Masks for languages:
!    C --std=c89: D_C99 | D_C23 | D_CXXONLY | D_OBJC | D_CXX_OBJC
!    C --std=c99: D_C23 | D_CXXONLY | D_OBJC
!    C --std=c17: D_C23 | D_CXXONLY | D_OBJC
!    C --std=c23: D_CXXONLY | D_OBJC
     ObjC is like C except that D_OBJC and D_CXX_OBJC are not set
     C++ --std=c++98: D_CONLY | D_CXX11 | D_CXX20 | D_OBJC
     C++ --std=c++11: D_CONLY | D_CXX20 | D_OBJC
*************** const struct c_common_resword c_common_r
*** 349,354 ****
--- 387,393 ----
    { "_Alignas",		RID_ALIGNAS,   D_CONLY },
    { "_Alignof",		RID_ALIGNOF,   D_CONLY },
    { "_Atomic",		RID_ATOMIC,    D_CONLY },
+   { "_BitInt",		RID_BITINT,    D_CONLY },
    { "_Bool",		RID_BOOL,      D_CONLY },
    { "_Complex",		RID_COMPLEX,	0 },
    { "_Imaginary",	RID_IMAGINARY, D_CONLY },
*************** const struct c_common_resword c_common_r
*** 379,384 ****
--- 418,424 ----
    { "__attribute__",	RID_ATTRIBUTE,	0 },
    { "__auto_type",	RID_AUTO_TYPE,	D_CONLY },
    { "__builtin_addressof", RID_ADDRESSOF, D_CXXONLY },
+   { "__builtin_assoc_barrier", RID_BUILTIN_ASSOC_BARRIER, 0 },
    { "__builtin_bit_cast", RID_BUILTIN_BIT_CAST, D_CXXONLY },
    { "__builtin_call_with_static_chain",
      RID_BUILTIN_CALL_WITH_STATIC_CHAIN, D_CONLY },
*************** const struct c_common_resword c_common_r
*** 387,395 ****
    { "__builtin_convertvector", RID_BUILTIN_CONVERTVECTOR, 0 },
    { "__builtin_has_attribute", RID_BUILTIN_HAS_ATTRIBUTE, 0 },
    { "__builtin_launder", RID_BUILTIN_LAUNDER, D_CXXONLY },
-   { "__builtin_assoc_barrier", RID_BUILTIN_ASSOC_BARRIER, 0 },
    { "__builtin_shuffle", RID_BUILTIN_SHUFFLE, 0 },
    { "__builtin_shufflevector", RID_BUILTIN_SHUFFLEVECTOR, 0 },
    { "__builtin_tgmath", RID_BUILTIN_TGMATH, D_CONLY },
    { "__builtin_offsetof", RID_OFFSETOF, 0 },
    { "__builtin_types_compatible_p", RID_TYPES_COMPATIBLE_P, D_CONLY },
--- 427,448 ----
    { "__builtin_convertvector", RID_BUILTIN_CONVERTVECTOR, 0 },
    { "__builtin_has_attribute", RID_BUILTIN_HAS_ATTRIBUTE, 0 },
    { "__builtin_launder", RID_BUILTIN_LAUNDER, D_CXXONLY },
    { "__builtin_shuffle", RID_BUILTIN_SHUFFLE, 0 },
    { "__builtin_shufflevector", RID_BUILTIN_SHUFFLEVECTOR, 0 },
+   { "__builtin_stdc_bit_ceil", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_bit_floor", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_bit_width", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_count_ones", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_count_zeros", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_first_leading_one", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_first_leading_zero", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_first_trailing_one", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_first_trailing_zero", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_has_single_bit", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_leading_ones", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_leading_zeros", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_trailing_ones", RID_BUILTIN_STDC, D_CONLY },
+   { "__builtin_stdc_trailing_zeros", RID_BUILTIN_STDC, D_CONLY },
    { "__builtin_tgmath", RID_BUILTIN_TGMATH, D_CONLY },
    { "__builtin_offsetof", RID_OFFSETOF, 0 },
    { "__builtin_types_compatible_p", RID_TYPES_COMPATIBLE_P, D_CONLY },
*************** const struct c_common_resword c_common_r
*** 420,435 ****
    { "__transaction_cancel", RID_TRANSACTION_CANCEL, 0 },
    { "__typeof",		RID_TYPEOF,	0 },
    { "__typeof__",	RID_TYPEOF,	0 },
    { "__volatile",	RID_VOLATILE,	0 },
    { "__volatile__",	RID_VOLATILE,	0 },
    { "__GIMPLE",		RID_GIMPLE,	D_CONLY },
    { "__PHI",		RID_PHI,	D_CONLY },
    { "__RTL",		RID_RTL,	D_CONLY },
!   { "alignas",		RID_ALIGNAS,	D_C2X | D_CXX11 | D_CXXWARN },
!   { "alignof",		RID_ALIGNOF,	D_C2X | D_CXX11 | D_CXXWARN },
    { "asm",		RID_ASM,	D_ASM },
    { "auto",		RID_AUTO,	0 },
!   { "bool",		RID_BOOL,	D_C2X | D_CXXWARN },
    { "break",		RID_BREAK,	0 },
    { "case",		RID_CASE,	0 },
    { "catch",		RID_CATCH,	D_CXX_OBJC | D_CXXWARN },
--- 473,490 ----
    { "__transaction_cancel", RID_TRANSACTION_CANCEL, 0 },
    { "__typeof",		RID_TYPEOF,	0 },
    { "__typeof__",	RID_TYPEOF,	0 },
+   { "__typeof_unqual",	RID_TYPEOF_UNQUAL, D_CONLY },
+   { "__typeof_unqual__", RID_TYPEOF_UNQUAL, D_CONLY },
    { "__volatile",	RID_VOLATILE,	0 },
    { "__volatile__",	RID_VOLATILE,	0 },
    { "__GIMPLE",		RID_GIMPLE,	D_CONLY },
    { "__PHI",		RID_PHI,	D_CONLY },
    { "__RTL",		RID_RTL,	D_CONLY },
!   { "alignas",		RID_ALIGNAS,	D_C23 | D_CXX11 | D_CXXWARN },
!   { "alignof",		RID_ALIGNOF,	D_C23 | D_CXX11 | D_CXXWARN },
    { "asm",		RID_ASM,	D_ASM },
    { "auto",		RID_AUTO,	0 },
!   { "bool",		RID_BOOL,	D_C23 | D_CXXWARN },
    { "break",		RID_BREAK,	0 },
    { "case",		RID_CASE,	0 },
    { "catch",		RID_CATCH,	D_CXX_OBJC | D_CXXWARN },
*************** const struct c_common_resword c_common_r
*** 440,446 ****
    { "class",		RID_CLASS,	D_CXX_OBJC | D_CXXWARN },
    { "const",		RID_CONST,	0 },
    { "consteval",	RID_CONSTEVAL,	D_CXXONLY | D_CXX20 | D_CXXWARN },
!   { "constexpr",	RID_CONSTEXPR,	D_C2X | D_CXX11 | D_CXXWARN },
    { "constinit",	RID_CONSTINIT,	D_CXXONLY | D_CXX20 | D_CXXWARN },
    { "const_cast",	RID_CONSTCAST,	D_CXXONLY | D_CXXWARN },
    { "continue",		RID_CONTINUE,	0 },
--- 495,501 ----
    { "class",		RID_CLASS,	D_CXX_OBJC | D_CXXWARN },
    { "const",		RID_CONST,	0 },
    { "consteval",	RID_CONSTEVAL,	D_CXXONLY | D_CXX20 | D_CXXWARN },
!   { "constexpr",	RID_CONSTEXPR,	D_C23 | D_CXX11 | D_CXXWARN },
    { "constinit",	RID_CONSTINIT,	D_CXXONLY | D_CXX20 | D_CXXWARN },
    { "const_cast",	RID_CONSTCAST,	D_CXXONLY | D_CXXWARN },
    { "continue",		RID_CONTINUE,	0 },
*************** const struct c_common_resword c_common_r
*** 455,461 ****
    { "explicit",		RID_EXPLICIT,	D_CXXONLY | D_CXXWARN },
    { "export",		RID_EXPORT,	D_CXXONLY | D_CXXWARN },
    { "extern",		RID_EXTERN,	0 },
!   { "false",		RID_FALSE,	D_C2X | D_CXXWARN },
    { "float",		RID_FLOAT,	0 },
    { "for",		RID_FOR,	0 },
    { "friend",		RID_FRIEND,	D_CXXONLY | D_CXXWARN },
--- 510,516 ----
    { "explicit",		RID_EXPLICIT,	D_CXXONLY | D_CXXWARN },
    { "export",		RID_EXPORT,	D_CXXONLY | D_CXXWARN },
    { "extern",		RID_EXTERN,	0 },
!   { "false",		RID_FALSE,	D_C23 | D_CXXWARN },
    { "float",		RID_FLOAT,	0 },
    { "for",		RID_FOR,	0 },
    { "friend",		RID_FRIEND,	D_CXXONLY | D_CXXWARN },
*************** const struct c_common_resword c_common_r
*** 468,474 ****
    { "namespace",	RID_NAMESPACE,	D_CXXONLY | D_CXXWARN },
    { "new",		RID_NEW,	D_CXXONLY | D_CXXWARN },
    { "noexcept",		RID_NOEXCEPT,	D_CXXONLY | D_CXX11 | D_CXXWARN },
!   { "nullptr",		RID_NULLPTR,	D_C2X | D_CXX11 | D_CXXWARN },
    { "operator",		RID_OPERATOR,	D_CXXONLY | D_CXXWARN },
    { "private",		RID_PRIVATE,	D_CXX_OBJC | D_CXXWARN },
    { "protected",	RID_PROTECTED,	D_CXX_OBJC | D_CXXWARN },
--- 523,529 ----
    { "namespace",	RID_NAMESPACE,	D_CXXONLY | D_CXXWARN },
    { "new",		RID_NEW,	D_CXXONLY | D_CXXWARN },
    { "noexcept",		RID_NOEXCEPT,	D_CXXONLY | D_CXX11 | D_CXXWARN },
!   { "nullptr",		RID_NULLPTR,	D_C23 | D_CXX11 | D_CXXWARN },
    { "operator",		RID_OPERATOR,	D_CXXONLY | D_CXXWARN },
    { "private",		RID_PRIVATE,	D_CXX_OBJC | D_CXXWARN },
    { "protected",	RID_PROTECTED,	D_CXX_OBJC | D_CXXWARN },
*************** const struct c_common_resword c_common_r
*** 481,501 ****
    { "signed",		RID_SIGNED,	0 },
    { "sizeof",		RID_SIZEOF,	0 },
    { "static",		RID_STATIC,	0 },
!   { "static_assert",    RID_STATIC_ASSERT, D_C2X | D_CXX11 | D_CXXWARN },
    { "static_cast",	RID_STATCAST,	D_CXXONLY | D_CXXWARN },
    { "struct",		RID_STRUCT,	0 },
    { "switch",		RID_SWITCH,	0 },
    { "template",		RID_TEMPLATE,	D_CXXONLY | D_CXXWARN },
    { "this",		RID_THIS,	D_CXXONLY | D_CXXWARN },
!   { "thread_local",	RID_THREAD,	D_C2X | D_CXX11 | D_CXXWARN },
    { "throw",		RID_THROW,	D_CXX_OBJC | D_CXXWARN },
!   { "true",		RID_TRUE,	D_C2X | D_CXXWARN },
    { "try",		RID_TRY,	D_CXX_OBJC | D_CXXWARN },
    { "typedef",		RID_TYPEDEF,	0 },
    { "typename",		RID_TYPENAME,	D_CXXONLY | D_CXXWARN },
    { "typeid",		RID_TYPEID,	D_CXXONLY | D_CXXWARN },
    { "typeof",		RID_TYPEOF,	D_EXT11 },
!   { "typeof_unqual",	RID_TYPEOF_UNQUAL,	D_CONLY | D_C2X },
    { "union",		RID_UNION,	0 },
    { "unsigned",		RID_UNSIGNED,	0 },
    { "using",		RID_USING,	D_CXXONLY | D_CXXWARN },
--- 536,556 ----
    { "signed",		RID_SIGNED,	0 },
    { "sizeof",		RID_SIZEOF,	0 },
    { "static",		RID_STATIC,	0 },
!   { "static_assert",    RID_STATIC_ASSERT, D_C23 | D_CXX11 | D_CXXWARN },
    { "static_cast",	RID_STATCAST,	D_CXXONLY | D_CXXWARN },
    { "struct",		RID_STRUCT,	0 },
    { "switch",		RID_SWITCH,	0 },
    { "template",		RID_TEMPLATE,	D_CXXONLY | D_CXXWARN },
    { "this",		RID_THIS,	D_CXXONLY | D_CXXWARN },
!   { "thread_local",	RID_THREAD,	D_C23 | D_CXX11 | D_CXXWARN },
    { "throw",		RID_THROW,	D_CXX_OBJC | D_CXXWARN },
!   { "true",		RID_TRUE,	D_C23 | D_CXXWARN },
    { "try",		RID_TRY,	D_CXX_OBJC | D_CXXWARN },
    { "typedef",		RID_TYPEDEF,	0 },
    { "typename",		RID_TYPENAME,	D_CXXONLY | D_CXXWARN },
    { "typeid",		RID_TYPEID,	D_CXXONLY | D_CXXWARN },
    { "typeof",		RID_TYPEOF,	D_EXT11 },
!   { "typeof_unqual",	RID_TYPEOF_UNQUAL,	D_CONLY | D_C23 },
    { "union",		RID_UNION,	0 },
    { "unsigned",		RID_UNSIGNED,	0 },
    { "using",		RID_USING,	D_CXXONLY | D_CXXWARN },
*************** const struct c_common_resword c_common_r
*** 505,517 ****
    { "wchar_t",		RID_WCHAR,	D_CXXONLY },
    { "while",		RID_WHILE,	0 },
  
- #define DEFTRAIT(TCC, CODE, NAME, ARITY) \
-   { NAME,		RID_##CODE,	D_CXXONLY },
- #include "cp/cp-trait.def"
- #undef DEFTRAIT
-   /* An alias for __is_same.  */
-   { "__is_same_as",	RID_IS_SAME,	D_CXXONLY },
- 
    /* C++ transactional memory.  */
    { "synchronized",	RID_SYNCHRONIZED, D_CXX_OBJC | D_TRANSMEM },
    { "atomic_noexcept",	RID_ATOMIC_NOEXCEPT, D_CXXONLY | D_TRANSMEM },
--- 560,565 ----
*************** c_get_substring_location (const substrin
*** 891,897 ****
    if (tok_type == CPP_OTHER)
      return "unrecognized string type";
  
!   return get_location_within_string (parse_in, g_string_concat_db,
  				     substr_loc.get_fmt_string_loc (),
  				     tok_type,
  				     substr_loc.get_caret_idx (),
--- 939,947 ----
    if (tok_type == CPP_OTHER)
      return "unrecognized string type";
  
!   return get_location_within_string (parse_in,
! 				     global_dc->get_file_cache (),
! 				     g_string_concat_db,
  				     substr_loc.get_fmt_string_loc (),
  				     tok_type,
  				     substr_loc.get_caret_idx (),
*************** shorten_binary_op (tree result_type, tre
*** 1338,1343 ****
--- 1388,1397 ----
    int uns;
    tree type;
  
+   /* Do not shorten vector operations.  */
+   if (VECTOR_TYPE_P (result_type))
+     return result_type;
+ 
    /* Cast OP0 and OP1 to RESULT_TYPE.  Doing so prevents
       excessive narrowing when we call get_narrower below.  For
       example, suppose that OP0 is of unsigned int extended
*************** unsafe_conversion_p (tree type, tree exp
*** 1483,1497 ****
  
        /* Warn for real constant that is not an exact integer converted
  	 to integer type.  */
!       if (TREE_CODE (expr_type) == REAL_TYPE
! 	  && TREE_CODE (type) == INTEGER_TYPE)
  	{
  	  if (!real_isinteger (TREE_REAL_CST_PTR (expr), TYPE_MODE (expr_type)))
  	    give_warning = UNSAFE_REAL;
  	}
        /* Warn for an integer constant that does not fit into integer type.  */
!       else if (TREE_CODE (expr_type) == INTEGER_TYPE
! 	       && TREE_CODE (type) == INTEGER_TYPE
  	       && !int_fits_type_p (expr, type))
  	{
  	  if (TYPE_UNSIGNED (type) && !TYPE_UNSIGNED (expr_type)
--- 1537,1554 ----
  
        /* Warn for real constant that is not an exact integer converted
  	 to integer type.  */
!       if (SCALAR_FLOAT_TYPE_P (expr_type)
! 	  && (TREE_CODE (type) == INTEGER_TYPE
! 	      || TREE_CODE (type) == BITINT_TYPE))
  	{
  	  if (!real_isinteger (TREE_REAL_CST_PTR (expr), TYPE_MODE (expr_type)))
  	    give_warning = UNSAFE_REAL;
  	}
        /* Warn for an integer constant that does not fit into integer type.  */
!       else if ((TREE_CODE (expr_type) == INTEGER_TYPE
! 		|| TREE_CODE (expr_type) == BITINT_TYPE)
! 	       && (TREE_CODE (type) == INTEGER_TYPE
! 		   || TREE_CODE (type) == BITINT_TYPE)
  	       && !int_fits_type_p (expr, type))
  	{
  	  if (TYPE_UNSIGNED (type) && !TYPE_UNSIGNED (expr_type)
*************** unsafe_conversion_p (tree type, tree exp
*** 1508,1517 ****
  	  else
  	    give_warning = UNSAFE_OTHER;
  	}
!       else if (TREE_CODE (type) == REAL_TYPE)
  	{
  	  /* Warn for an integer constant that does not fit into real type.  */
! 	  if (TREE_CODE (expr_type) == INTEGER_TYPE)
  	    {
  	      REAL_VALUE_TYPE a = real_value_from_int_cst (0, expr);
  	      if (!exact_real_truncate (TYPE_MODE (type), &a))
--- 1565,1575 ----
  	  else
  	    give_warning = UNSAFE_OTHER;
  	}
!       else if (SCALAR_FLOAT_TYPE_P (type))
  	{
  	  /* Warn for an integer constant that does not fit into real type.  */
! 	  if (TREE_CODE (expr_type) == INTEGER_TYPE
! 	      || TREE_CODE (expr_type) == BITINT_TYPE)
  	    {
  	      REAL_VALUE_TYPE a = real_value_from_int_cst (0, expr);
  	      if (!exact_real_truncate (TYPE_MODE (type), &a))
*************** unsafe_conversion_p (tree type, tree exp
*** 1519,1525 ****
  	    }
  	  /* Warn for a real constant that does not fit into a smaller
  	     real type.  */
! 	  else if (TREE_CODE (expr_type) == REAL_TYPE
  		   && TYPE_PRECISION (type) < TYPE_PRECISION (expr_type))
  	    {
  	      REAL_VALUE_TYPE a = TREE_REAL_CST (expr);
--- 1577,1583 ----
  	    }
  	  /* Warn for a real constant that does not fit into a smaller
  	     real type.  */
! 	  else if (SCALAR_FLOAT_TYPE_P (expr_type)
  		   && TYPE_PRECISION (type) < TYPE_PRECISION (expr_type))
  	    {
  	      REAL_VALUE_TYPE a = TREE_REAL_CST (expr);
*************** unsafe_conversion_p (tree type, tree exp
*** 1579,1590 ****
    else
      {
        /* Warn for real types converted to integer types.  */
!       if (TREE_CODE (expr_type) == REAL_TYPE
! 	  && TREE_CODE (type) == INTEGER_TYPE)
  	give_warning = UNSAFE_REAL;
  
!       else if (TREE_CODE (expr_type) == INTEGER_TYPE
! 	       && TREE_CODE (type) == INTEGER_TYPE)
  	{
  	  /* Don't warn about unsigned char y = 0xff, x = (int) y;  */
  	  expr = get_unwidened (expr, 0);
--- 1637,1651 ----
    else
      {
        /* Warn for real types converted to integer types.  */
!       if (SCALAR_FLOAT_TYPE_P (expr_type)
! 	  && (TREE_CODE (type) == INTEGER_TYPE
! 	      || TREE_CODE (type) == BITINT_TYPE))
  	give_warning = UNSAFE_REAL;
  
!       else if ((TREE_CODE (expr_type) == INTEGER_TYPE
! 		|| TREE_CODE (expr_type) == BITINT_TYPE)
! 	       && (TREE_CODE (type) == INTEGER_TYPE
! 		   || TREE_CODE (type) == BITINT_TYPE))
  	{
  	  /* Don't warn about unsigned char y = 0xff, x = (int) y;  */
  	  expr = get_unwidened (expr, 0);
*************** unsafe_conversion_p (tree type, tree exp
*** 1650,1657 ****
        /* Warn for integer types converted to real types if and only if
  	 all the range of values of the integer type cannot be
  	 represented by the real type.  */
!       else if (TREE_CODE (expr_type) == INTEGER_TYPE
! 	       && TREE_CODE (type) == REAL_TYPE)
  	{
  	  /* Don't warn about char y = 0xff; float x = (int) y;  */
  	  expr = get_unwidened (expr, 0);
--- 1711,1719 ----
        /* Warn for integer types converted to real types if and only if
  	 all the range of values of the integer type cannot be
  	 represented by the real type.  */
!       else if ((TREE_CODE (expr_type) == INTEGER_TYPE
! 		|| TREE_CODE (expr_type) == BITINT_TYPE)
! 	       && SCALAR_FLOAT_TYPE_P (type))
  	{
  	  /* Don't warn about char y = 0xff; float x = (int) y;  */
  	  expr = get_unwidened (expr, 0);
*************** unsafe_conversion_p (tree type, tree exp
*** 1662,1669 ****
  	}
  
        /* Warn for real types converted to smaller real types.  */
!       else if (TREE_CODE (expr_type) == REAL_TYPE
! 	       && TREE_CODE (type) == REAL_TYPE
  	       && TYPE_PRECISION (type) < TYPE_PRECISION (expr_type))
  	give_warning = UNSAFE_REAL;
  
--- 1724,1731 ----
  	}
  
        /* Warn for real types converted to smaller real types.  */
!       else if (SCALAR_FLOAT_TYPE_P (expr_type)
! 	       && SCALAR_FLOAT_TYPE_P (type)
  	       && TYPE_PRECISION (type) < TYPE_PRECISION (expr_type))
  	give_warning = UNSAFE_REAL;
  
*************** unsafe_conversion_p (tree type, tree exp
*** 1677,1689 ****
  	  tree to_type = TREE_TYPE (type);
  
  	  /* Warn for real types converted to integer types.  */
! 	  if (TREE_CODE (from_type) == REAL_TYPE
  	      && TREE_CODE (to_type) == INTEGER_TYPE)
  	    give_warning = UNSAFE_REAL;
  
  	  /* Warn for real types converted to smaller real types.  */
! 	  else if (TREE_CODE (from_type) == REAL_TYPE
! 		   && TREE_CODE (to_type) == REAL_TYPE
  		   && TYPE_PRECISION (to_type) < TYPE_PRECISION (from_type))
  	    give_warning = UNSAFE_REAL;
  
--- 1739,1751 ----
  	  tree to_type = TREE_TYPE (type);
  
  	  /* Warn for real types converted to integer types.  */
! 	  if (SCALAR_FLOAT_TYPE_P (from_type)
  	      && TREE_CODE (to_type) == INTEGER_TYPE)
  	    give_warning = UNSAFE_REAL;
  
  	  /* Warn for real types converted to smaller real types.  */
! 	  else if (SCALAR_FLOAT_TYPE_P (from_type)
! 		   && SCALAR_FLOAT_TYPE_P (to_type)
  		   && TYPE_PRECISION (to_type) < TYPE_PRECISION (from_type))
  	    give_warning = UNSAFE_REAL;
  
*************** unsafe_conversion_p (tree type, tree exp
*** 1706,1712 ****
  		give_warning = UNSAFE_SIGN;
  	    }
  	  else if (TREE_CODE (from_type) == INTEGER_TYPE
! 		   && TREE_CODE (to_type) == REAL_TYPE
  		   && !int_safely_convertible_to_real_p (from_type, to_type))
  	    give_warning = UNSAFE_OTHER;
  	}
--- 1768,1774 ----
  		give_warning = UNSAFE_SIGN;
  	    }
  	  else if (TREE_CODE (from_type) == INTEGER_TYPE
! 		   && SCALAR_FLOAT_TYPE_P (to_type)
  		   && !int_safely_convertible_to_real_p (from_type, to_type))
  	    give_warning = UNSAFE_OTHER;
  	}
*************** convert_and_check (location_t loc, tree
*** 1757,1763 ****
  
    if (c_inhibit_evaluation_warnings == 0
        && !TREE_OVERFLOW_P (expr)
!       && result != error_mark_node)
      warnings_for_convert_and_check (loc, type, expr_for_warning, result);
  
    return result;
--- 1819,1826 ----
  
    if (c_inhibit_evaluation_warnings == 0
        && !TREE_OVERFLOW_P (expr)
!       && result != error_mark_node
!       && !c_hardbool_type_attr (type))
      warnings_for_convert_and_check (loc, type, expr_for_warning, result);
  
    return result;
*************** c_common_type_for_size (unsigned int bit
*** 2292,2297 ****
--- 2355,2369 ----
      return (unsignedp ? widest_unsigned_literal_type_node
  	    : widest_integer_literal_type_node);
  
+   for (tree t = registered_builtin_types; t; t = TREE_CHAIN (t))
+     {
+       tree type = TREE_VALUE (t);
+       if (TREE_CODE (type) == INTEGER_TYPE
+ 	  && bits == TYPE_PRECISION (type)
+ 	  && !!unsignedp == !!TYPE_UNSIGNED (type))
+ 	return type;
+     }
+ 
    if (bits <= TYPE_PRECISION (intQI_type_node))
      return unsignedp ? unsigned_intQI_type_node : intQI_type_node;
  
*************** c_common_type_for_mode (machine_mode mod
*** 2454,2460 ****
    else if (GET_MODE_CLASS (mode) == MODE_VECTOR_BOOL
  	   && valid_vector_subparts_p (GET_MODE_NUNITS (mode)))
      {
!       unsigned int elem_bits = vector_element_size (GET_MODE_BITSIZE (mode),
  						    GET_MODE_NUNITS (mode));
        tree bool_type = build_nonstandard_boolean_type (elem_bits);
        return build_vector_type_for_mode (bool_type, mode);
--- 2526,2532 ----
    else if (GET_MODE_CLASS (mode) == MODE_VECTOR_BOOL
  	   && valid_vector_subparts_p (GET_MODE_NUNITS (mode)))
      {
!       unsigned int elem_bits = vector_element_size (GET_MODE_PRECISION (mode),
  						    GET_MODE_NUNITS (mode));
        tree bool_type = build_nonstandard_boolean_type (elem_bits);
        return build_vector_type_for_mode (bool_type, mode);
*************** c_common_signed_or_unsigned_type (int un
*** 2724,2729 ****
--- 2796,2806 ----
        || TYPE_UNSIGNED (type) == unsignedp)
      return type;
  
+   if (TREE_CODE (type) == BITINT_TYPE
+       /* signed _BitInt(1) is invalid, avoid creating that.  */
+       && (unsignedp || TYPE_PRECISION (type) > 1))
+     return build_bitint_type (TYPE_PRECISION (type), unsignedp);
+ 
  #define TYPE_OK(node)							    \
    (TYPE_MODE (type) == TYPE_MODE (node)					    \
     && TYPE_PRECISION (type) == TYPE_PRECISION (node))
*************** shorten_compare (location_t loc, tree *o
*** 2951,2958 ****
      unsignedp1 = TYPE_UNSIGNED (TREE_TYPE (op1));
  
    /* If one of the operands must be floated, we cannot optimize.  */
!   real1 = TREE_CODE (TREE_TYPE (primop0)) == REAL_TYPE;
!   real2 = TREE_CODE (TREE_TYPE (primop1)) == REAL_TYPE;
  
    /* If first arg is constant, swap the args (changing operation
       so value is preserved), for canonicalization.  Don't do this if
--- 3028,3035 ----
      unsignedp1 = TYPE_UNSIGNED (TREE_TYPE (op1));
  
    /* If one of the operands must be floated, we cannot optimize.  */
!   real1 = SCALAR_FLOAT_TYPE_P (TREE_TYPE (primop0));
!   real2 = SCALAR_FLOAT_TYPE_P (TREE_TYPE (primop1));
  
    /* If first arg is constant, swap the args (changing operation
       so value is preserved), for canonicalization.  Don't do this if
*************** pointer_int_sum (location_t loc, enum tr
*** 3283,3289 ****
    /* The result is a pointer of the same type that is being added.  */
    tree result_type = TREE_TYPE (ptrop);
  
!   if (TREE_CODE (TREE_TYPE (result_type)) == VOID_TYPE)
      {
        if (complain && warn_pointer_arith)
  	pedwarn (loc, OPT_Wpointer_arith,
--- 3360,3366 ----
    /* The result is a pointer of the same type that is being added.  */
    tree result_type = TREE_TYPE (ptrop);
  
!   if (VOID_TYPE_P (TREE_TYPE (result_type)))
      {
        if (complain && warn_pointer_arith)
  	pedwarn (loc, OPT_Wpointer_arith,
*************** c_common_truthvalue_conversion (location
*** 3597,3603 ****
  	 was used in anticipation of a possible overflow.
  	 Furthermore, if we see an unsigned type here we know that the
  	 result of the shift is not subject to integer promotion rules.  */
!       if (TREE_CODE (TREE_TYPE (expr)) == INTEGER_TYPE
  	  && !TYPE_UNSIGNED (TREE_TYPE (expr)))
  	warning_at (EXPR_LOCATION (expr), OPT_Wint_in_bool_context,
  		    "%<<<%> in boolean context, did you mean %<<%>?");
--- 3674,3681 ----
  	 was used in anticipation of a possible overflow.
  	 Furthermore, if we see an unsigned type here we know that the
  	 result of the shift is not subject to integer promotion rules.  */
!       if ((TREE_CODE (TREE_TYPE (expr)) == INTEGER_TYPE
! 	   || TREE_CODE (TREE_TYPE (expr)) == BITINT_TYPE)
  	  && !TYPE_UNSIGNED (TREE_TYPE (expr)))
  	warning_at (EXPR_LOCATION (expr), OPT_Wint_in_bool_context,
  		    "%<<<%> in boolean context, did you mean %<<%>?");
*************** c_common_truthvalue_conversion (location
*** 3681,3687 ****
  	  {
  	    tree op0 = TREE_OPERAND (expr, 0);
  	    if ((TREE_CODE (fromtype) == POINTER_TYPE
! 		 && TREE_CODE (totype) == INTEGER_TYPE)
  		|| warning_suppressed_p (expr, OPT_Waddress))
  	      /* Suppress -Waddress for casts to intptr_t, propagating
  		 any suppression from the enclosing expression to its
--- 3759,3766 ----
  	  {
  	    tree op0 = TREE_OPERAND (expr, 0);
  	    if ((TREE_CODE (fromtype) == POINTER_TYPE
! 		 && (TREE_CODE (totype) == INTEGER_TYPE
! 		     || TREE_CODE (totype) == BITINT_TYPE))
  		|| warning_suppressed_p (expr, OPT_Waddress))
  	      /* Suppress -Waddress for casts to intptr_t, propagating
  		 any suppression from the enclosing expression to its
*************** c_common_truthvalue_conversion (location
*** 3730,3736 ****
        goto ret;
      }
  
!   if (TREE_CODE (TREE_TYPE (expr)) == FIXED_POINT_TYPE)
      {
        tree fixed_zero_node = build_fixed (TREE_TYPE (expr),
  					  FCONST0 (TYPE_MODE
--- 3809,3815 ----
        goto ret;
      }
  
!   if (FIXED_POINT_TYPE_P (TREE_TYPE (expr)))
      {
        tree fixed_zero_node = build_fixed (TREE_TYPE (expr),
  					  FCONST0 (TYPE_MODE
*************** c_common_get_alias_set (tree t)
*** 3806,3817 ****
    if (!TYPE_P (t))
      return -1;
  
!   /* Unlike char, char8_t doesn't alias. */
!   if (flag_char8_t && t == char8_type_node)
      return -1;
  
    /* The C standard guarantees that any object may be accessed via an
!      lvalue that has narrow character type (except char8_t).  */
    if (t == char_type_node
        || t == signed_char_type_node
        || t == unsigned_char_type_node)
--- 3885,3897 ----
    if (!TYPE_P (t))
      return -1;
  
!   /* Unlike char, char8_t doesn't alias in C++.  (In C, char8_t is not
!      a distinct type.)  */
!   if (flag_char8_t && t == char8_type_node && c_dialect_cxx ())
      return -1;
  
    /* The C standard guarantees that any object may be accessed via an
!      lvalue that has narrow character type.  */
    if (t == char_type_node
        || t == signed_char_type_node
        || t == unsigned_char_type_node)
*************** c_common_get_alias_set (tree t)
*** 3820,3826 ****
    /* The C standard specifically allows aliasing between signed and
       unsigned variants of the same type.  We treat the signed
       variant as canonical.  */
!   if (TREE_CODE (t) == INTEGER_TYPE && TYPE_UNSIGNED (t))
      {
        tree t1 = c_common_signed_type (t);
  
--- 3900,3907 ----
    /* The C standard specifically allows aliasing between signed and
       unsigned variants of the same type.  We treat the signed
       variant as canonical.  */
!   if ((TREE_CODE (t) == INTEGER_TYPE || TREE_CODE (t) == BITINT_TYPE)
!       && TYPE_UNSIGNED (t))
      {
        tree t1 = c_common_signed_type (t);
  
*************** check_function_sentinel (const_tree fnty
*** 5702,5707 ****
--- 5783,5789 ----
        sentinel = fold_for_warn (argarray[nargs - 1 - pos]);
        if ((!POINTER_TYPE_P (TREE_TYPE (sentinel))
  	   || !integer_zerop (sentinel))
+ 	  && TREE_CODE (TREE_TYPE (sentinel)) != NULLPTR_TYPE
  	  /* Although __null (in C++) is only an integer we allow it
  	     nevertheless, as we are guaranteed that it's exactly
  	     as wide as a pointer, and we don't want to force
*************** check_builtin_function_arguments (locati
*** 6330,6343 ****
      case BUILT_IN_ISLESSEQUAL:
      case BUILT_IN_ISLESSGREATER:
      case BUILT_IN_ISUNORDERED:
        if (builtin_function_validate_nargs (loc, fndecl, nargs, 2))
  	{
  	  enum tree_code code0, code1;
  	  code0 = TREE_CODE (TREE_TYPE (args[0]));
  	  code1 = TREE_CODE (TREE_TYPE (args[1]));
  	  if (!((code0 == REAL_TYPE && code1 == REAL_TYPE)
! 		|| (code0 == REAL_TYPE && code1 == INTEGER_TYPE)
! 		|| (code0 == INTEGER_TYPE && code1 == REAL_TYPE)))
  	    {
  	      error_at (loc, "non-floating-point arguments in call to "
  			"function %qE", fndecl);
--- 6412,6428 ----
      case BUILT_IN_ISLESSEQUAL:
      case BUILT_IN_ISLESSGREATER:
      case BUILT_IN_ISUNORDERED:
+     case BUILT_IN_ISEQSIG:
        if (builtin_function_validate_nargs (loc, fndecl, nargs, 2))
  	{
  	  enum tree_code code0, code1;
  	  code0 = TREE_CODE (TREE_TYPE (args[0]));
  	  code1 = TREE_CODE (TREE_TYPE (args[1]));
  	  if (!((code0 == REAL_TYPE && code1 == REAL_TYPE)
! 		|| (code0 == REAL_TYPE
! 		    && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
! 		|| ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
! 		    && code1 == REAL_TYPE)))
  	    {
  	      error_at (loc, "non-floating-point arguments in call to "
  			"function %qE", fndecl);
*************** check_builtin_function_arguments (locati
*** 6371,6377 ****
      case BUILT_IN_ASSUME_ALIGNED:
        if (builtin_function_validate_nargs (loc, fndecl, nargs, 2 + (nargs > 2)))
  	{
! 	  if (nargs >= 3 && TREE_CODE (TREE_TYPE (args[2])) != INTEGER_TYPE)
  	    {
  	      error_at (ARG_LOCATION (2), "non-integer argument 3 in call to "
  			"function %qE", fndecl);
--- 6456,6464 ----
      case BUILT_IN_ASSUME_ALIGNED:
        if (builtin_function_validate_nargs (loc, fndecl, nargs, 2 + (nargs > 2)))
  	{
! 	  if (nargs >= 3
! 	      && TREE_CODE (TREE_TYPE (args[2])) != INTEGER_TYPE
! 	      && TREE_CODE (TREE_TYPE (args[2])) != BITINT_TYPE)
  	    {
  	      error_at (ARG_LOCATION (2), "non-integer argument 3 in call to "
  			"function %qE", fndecl);
*************** check_builtin_function_arguments (locati
*** 6446,6459 ****
  	      }
  	  if (TREE_CODE (TREE_TYPE (args[2])) == ENUMERAL_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "argument 3 in call to function "
! 			"%qE has enumerated type", fndecl);
  	      return false;
  	    }
  	  else if (TREE_CODE (TREE_TYPE (args[2])) == BOOLEAN_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "argument 3 in call to function "
! 			"%qE has boolean type", fndecl);
  	      return false;
  	    }
  	  return true;
--- 6533,6546 ----
  	      }
  	  if (TREE_CODE (TREE_TYPE (args[2])) == ENUMERAL_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "argument %u in call to function "
! 			"%qE has enumerated type", 3, fndecl);
  	      return false;
  	    }
  	  else if (TREE_CODE (TREE_TYPE (args[2])) == BOOLEAN_TYPE)
  	    {
! 	      error_at (ARG_LOCATION (2), "argument %u in call to function "
! 			"%qE has boolean type", 3, fndecl);
  	      return false;
  	    }
  	  return true;
*************** check_builtin_function_arguments (locati
*** 6493,6498 ****
--- 6580,6651 ----
  	}
        return false;
  
+     case BUILT_IN_CLZG:
+     case BUILT_IN_CTZG:
+     case BUILT_IN_CLRSBG:
+     case BUILT_IN_FFSG:
+     case BUILT_IN_PARITYG:
+     case BUILT_IN_POPCOUNTG:
+       if (nargs == 2
+ 	  && (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_CLZG
+ 	      || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_CTZG))
+ 	{
+ 	  if (!INTEGRAL_TYPE_P (TREE_TYPE (args[1])))
+ 	    {
+ 	      error_at (ARG_LOCATION (1), "argument %u in call to function "
+ 			"%qE does not have integral type", 2, fndecl);
+ 	      return false;
+ 	    }
+ 	  if ((TYPE_PRECISION (TREE_TYPE (args[1]))
+ 	       > TYPE_PRECISION (integer_type_node))
+ 	      || (TYPE_PRECISION (TREE_TYPE (args[1]))
+ 		  == TYPE_PRECISION (integer_type_node)
+ 		  && TYPE_UNSIGNED (TREE_TYPE (args[1]))))
+ 	    {
+ 	      error_at (ARG_LOCATION (1), "argument %u in call to function "
+ 			"%qE does not have %<int%> type", 2, fndecl);
+ 	      return false;
+ 	    }
+ 	}
+       else if (!builtin_function_validate_nargs (loc, fndecl, nargs, 1))
+ 	return false;
+ 
+       if (!INTEGRAL_TYPE_P (TREE_TYPE (args[0])))
+ 	{
+ 	  error_at (ARG_LOCATION (0), "argument %u in call to function "
+ 		    "%qE does not have integral type", 1, fndecl);
+ 	  return false;
+ 	}
+       if (TREE_CODE (TREE_TYPE (args[0])) == ENUMERAL_TYPE)
+ 	{
+ 	  error_at (ARG_LOCATION (0), "argument %u in call to function "
+ 		    "%qE has enumerated type", 1, fndecl);
+ 	  return false;
+ 	}
+       if (TREE_CODE (TREE_TYPE (args[0])) == BOOLEAN_TYPE)
+ 	{
+ 	  error_at (ARG_LOCATION (0), "argument %u in call to function "
+ 		    "%qE has boolean type", 1, fndecl);
+ 	  return false;
+ 	}
+       if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_FFSG
+ 	  || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_CLRSBG)
+ 	{
+ 	  if (TYPE_UNSIGNED (TREE_TYPE (args[0])))
+ 	    {
+ 	      error_at (ARG_LOCATION (0), "argument 1 in call to function "
+ 			"%qE has unsigned type", fndecl);
+ 	      return false;
+ 	    }
+ 	}
+       else if (!TYPE_UNSIGNED (TREE_TYPE (args[0])))
+ 	{
+ 	  error_at (ARG_LOCATION (0), "argument 1 in call to function "
+ 		    "%qE has signed type", fndecl);
+ 	  return false;
+ 	}
+       return true;
+ 
      default:
        return true;
      }
*************** c_cpp_diagnostic (cpp_reader *pfile ATTR
*** 6665,6671 ****
  {
    diagnostic_info diagnostic;
    diagnostic_t dlevel;
!   bool save_warn_system_headers = global_dc->dc_warn_system_headers;
    bool ret;
  
    switch (level)
--- 6818,6824 ----
  {
    diagnostic_info diagnostic;
    diagnostic_t dlevel;
!   bool save_warn_system_headers = global_dc->m_warn_system_headers;
    bool ret;
  
    switch (level)
*************** c_cpp_diagnostic (cpp_reader *pfile ATTR
*** 6673,6679 ****
      case CPP_DL_WARNING_SYSHDR:
        if (flag_no_output)
  	return false;
!       global_dc->dc_warn_system_headers = 1;
        /* Fall through.  */
      case CPP_DL_WARNING:
        if (flag_no_output)
--- 6826,6832 ----
      case CPP_DL_WARNING_SYSHDR:
        if (flag_no_output)
  	return false;
!       global_dc->m_warn_system_headers = 1;
        /* Fall through.  */
      case CPP_DL_WARNING:
        if (flag_no_output)
*************** c_cpp_diagnostic (cpp_reader *pfile ATTR
*** 6709,6715 ****
       c_option_controlling_cpp_diagnostic (reason));
    ret = diagnostic_report_diagnostic (global_dc, &diagnostic);
    if (level == CPP_DL_WARNING_SYSHDR)
!     global_dc->dc_warn_system_headers = save_warn_system_headers;
    return ret;
  }
  
--- 6862,6868 ----
       c_option_controlling_cpp_diagnostic (reason));
    ret = diagnostic_report_diagnostic (global_dc, &diagnostic);
    if (level == CPP_DL_WARNING_SYSHDR)
!     global_dc->m_warn_system_headers = save_warn_system_headers;
    return ret;
  }
  
*************** speculation_safe_value_resolve_return (t
*** 7180,7191 ****
  /* A helper function for resolve_overloaded_builtin in resolving the
     overloaded __sync_ builtins.  Returns a positive power of 2 if the
     first operand of PARAMS is a pointer to a supported data type.
!    Returns 0 if an error is encountered.
     FETCH is true when FUNCTION is one of the _FETCH_OP_ or _OP_FETCH_
     built-ins.  */
  
  static int
! sync_resolve_size (tree function, vec<tree, va_gc> *params, bool fetch)
  {
    /* Type of the argument.  */
    tree argtype;
--- 7333,7348 ----
  /* A helper function for resolve_overloaded_builtin in resolving the
     overloaded __sync_ builtins.  Returns a positive power of 2 if the
     first operand of PARAMS is a pointer to a supported data type.
!    Returns 0 if an error is encountered.  Return -1 for _BitInt
!    __atomic*fetch* with unsupported type which should be handled by
!    a cas loop.
     FETCH is true when FUNCTION is one of the _FETCH_OP_ or _OP_FETCH_
+    built-ins.  ORIG_FORMAT is for __sync_* rather than __atomic_*
     built-ins.  */
  
  static int
! sync_resolve_size (tree function, vec<tree, va_gc> *params, bool fetch,
! 		   bool orig_format)
  {
    /* Type of the argument.  */
    tree argtype;
*************** sync_resolve_size (tree function, vec<tr
*** 7220,7228 ****
--- 7377,7395 ----
      goto incompatible;
  
    size = tree_to_uhwi (TYPE_SIZE_UNIT (type));
+   if (size == 16
+       && fetch
+       && !orig_format
+       && TREE_CODE (type) == BITINT_TYPE
+       && !targetm.scalar_mode_supported_p (TImode))
+     return -1;
+ 
    if (size == 1 || size == 2 || size == 4 || size == 8 || size == 16)
      return size;
  
+   if (fetch && !orig_format && TREE_CODE (type) == BITINT_TYPE)
+     return -1;
+ 
   incompatible:
    /* Issue the diagnostic only if the argument is valid, otherwise
       it would be redundant at best and could be misleading.  */
*************** get_atomic_generic_size (location_t loc,
*** 7471,7477 ****
  		return 0;
  	      }
  	    else
! 	      pedwarn (loc, OPT_Wincompatible_pointer_types, "argument %d "
  		       "of %qE discards %<const%> qualifier", x + 1,
  		       function);
  	  }
--- 7638,7644 ----
  		return 0;
  	      }
  	    else
! 	      pedwarn (loc, OPT_Wdiscarded_qualifiers, "argument %d "
  		       "of %qE discards %<const%> qualifier", x + 1,
  		       function);
  	  }
*************** get_atomic_generic_size (location_t loc,
*** 7485,7491 ****
  		return 0;
  	      }
  	    else
! 	      pedwarn (loc, OPT_Wincompatible_pointer_types, "argument %d "
  		       "of %qE discards %<volatile%> qualifier", x + 1,
  		       function);
  	  }
--- 7652,7658 ----
  		return 0;
  	      }
  	    else
! 	      pedwarn (loc, OPT_Wdiscarded_qualifiers, "argument %d "
  		       "of %qE discards %<volatile%> qualifier", x + 1,
  		       function);
  	  }
*************** resolve_overloaded_atomic_exchange (loca
*** 7627,7635 ****
    /* Convert object pointer to required type.  */
    p0 = build1 (VIEW_CONVERT_EXPR, I_type_ptr, p0);
    (*params)[0] = p0; 
!   /* Convert new value to required type, and dereference it.  */
!   p1 = build_indirect_ref (loc, p1, RO_UNARY_STAR);
!   p1 = build1 (VIEW_CONVERT_EXPR, I_type, p1);
    (*params)[1] = p1;
  
    /* Move memory model to the 3rd position, and end param list.  */
--- 7794,7807 ----
    /* Convert object pointer to required type.  */
    p0 = build1 (VIEW_CONVERT_EXPR, I_type_ptr, p0);
    (*params)[0] = p0; 
!   /* Convert new value to required type, and dereference it.
!      If *p1 type can have padding or may involve floating point which
!      could e.g. be promoted to wider precision and demoted afterwards,
!      state of padding bits might not be preserved.  */
!   build_indirect_ref (loc, p1, RO_UNARY_STAR);
!   p1 = build2_loc (loc, MEM_REF, I_type,
! 		   build1 (VIEW_CONVERT_EXPR, I_type_ptr, p1),
! 		   build_zero_cst (TREE_TYPE (p1)));
    (*params)[1] = p1;
  
    /* Move memory model to the 3rd position, and end param list.  */
*************** resolve_overloaded_atomic_compare_exchan
*** 7707,7715 ****
    p1 = build1 (VIEW_CONVERT_EXPR, I_type_ptr, p1);
    (*params)[1] = p1;
  
!   /* Convert desired value to required type, and dereference it.  */
!   p2 = build_indirect_ref (loc, p2, RO_UNARY_STAR);
!   p2 = build1 (VIEW_CONVERT_EXPR, I_type, p2);
    (*params)[2] = p2;
  
    /* The rest of the parameters are fine. NULL means no special return value
--- 7879,7892 ----
    p1 = build1 (VIEW_CONVERT_EXPR, I_type_ptr, p1);
    (*params)[1] = p1;
  
!   /* Convert desired value to required type, and dereference it.
!      If *p2 type can have padding or may involve floating point which
!      could e.g. be promoted to wider precision and demoted afterwards,
!      state of padding bits might not be preserved.  */
!   build_indirect_ref (loc, p2, RO_UNARY_STAR);
!   p2 = build2_loc (loc, MEM_REF, I_type,
! 		   build1 (VIEW_CONVERT_EXPR, I_type_ptr, p2),
! 		   build_zero_cst (TREE_TYPE (p2)));
    (*params)[2] = p2;
  
    /* The rest of the parameters are fine. NULL means no special return value
*************** resolve_overloaded_atomic_store (locatio
*** 7839,7844 ****
--- 8016,8244 ----
  }
  
  
+ /* Emit __atomic*fetch* on _BitInt which doesn't have a size of
+    1, 2, 4, 8 or 16 bytes using __atomic_compare_exchange loop.
+    ORIG_CODE is the DECL_FUNCTION_CODE of ORIG_FUNCTION and
+    ORIG_PARAMS arguments of the call.  */
+ 
+ static tree
+ atomic_bitint_fetch_using_cas_loop (location_t loc,
+ 				    enum built_in_function orig_code,
+ 				    tree orig_function,
+ 				    vec<tree, va_gc> *orig_params)
+ {
+   enum tree_code code = ERROR_MARK;
+   bool return_old_p = false;
+   switch (orig_code)
+     {
+     case BUILT_IN_ATOMIC_ADD_FETCH_N:
+       code = PLUS_EXPR;
+       break;
+     case BUILT_IN_ATOMIC_SUB_FETCH_N:
+       code = MINUS_EXPR;
+       break;
+     case BUILT_IN_ATOMIC_AND_FETCH_N:
+       code = BIT_AND_EXPR;
+       break;
+     case BUILT_IN_ATOMIC_NAND_FETCH_N:
+       break;
+     case BUILT_IN_ATOMIC_XOR_FETCH_N:
+       code = BIT_XOR_EXPR;
+       break;
+     case BUILT_IN_ATOMIC_OR_FETCH_N:
+       code = BIT_IOR_EXPR;
+       break;
+     case BUILT_IN_ATOMIC_FETCH_ADD_N:
+       code = PLUS_EXPR;
+       return_old_p = true;
+       break;
+     case BUILT_IN_ATOMIC_FETCH_SUB_N:
+       code = MINUS_EXPR;
+       return_old_p = true;
+       break;
+     case BUILT_IN_ATOMIC_FETCH_AND_N:
+       code = BIT_AND_EXPR;
+       return_old_p = true;
+       break;
+     case BUILT_IN_ATOMIC_FETCH_NAND_N:
+       return_old_p = true;
+       break;
+     case BUILT_IN_ATOMIC_FETCH_XOR_N:
+       code = BIT_XOR_EXPR;
+       return_old_p = true;
+       break;
+     case BUILT_IN_ATOMIC_FETCH_OR_N:
+       code = BIT_IOR_EXPR;
+       return_old_p = true;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   if (orig_params->length () != 3)
+     {
+       if (orig_params->length () < 3)
+ 	error_at (loc, "too few arguments to function %qE", orig_function);
+       else
+ 	error_at (loc, "too many arguments to function %qE", orig_function);
+       return error_mark_node;
+     }
+ 
+   tree stmts = push_stmt_list ();
+ 
+   tree nonatomic_lhs_type = TREE_TYPE (TREE_TYPE ((*orig_params)[0]));
+   nonatomic_lhs_type = TYPE_MAIN_VARIANT (nonatomic_lhs_type);
+   gcc_assert (TREE_CODE (nonatomic_lhs_type) == BITINT_TYPE);
+ 
+   tree lhs_addr = (*orig_params)[0];
+   tree val = convert (nonatomic_lhs_type, (*orig_params)[1]);
+   tree model = convert (integer_type_node, (*orig_params)[2]);
+   if (!c_dialect_cxx ())
+     {
+       lhs_addr = c_fully_fold (lhs_addr, false, NULL);
+       val = c_fully_fold (val, false, NULL);
+       model = c_fully_fold (model, false, NULL);
+     }
+   if (TREE_SIDE_EFFECTS (lhs_addr))
+     {
+       tree var = create_tmp_var_raw (TREE_TYPE (lhs_addr));
+       lhs_addr = build4 (TARGET_EXPR, TREE_TYPE (lhs_addr), var, lhs_addr,
+ 			 NULL_TREE, NULL_TREE);
+       add_stmt (lhs_addr);
+     }
+   if (TREE_SIDE_EFFECTS (val))
+     {
+       tree var = create_tmp_var_raw (nonatomic_lhs_type);
+       val = build4 (TARGET_EXPR, nonatomic_lhs_type, var, val, NULL_TREE,
+ 		    NULL_TREE);
+       add_stmt (val);
+     }
+   if (TREE_SIDE_EFFECTS (model))
+     {
+       tree var = create_tmp_var_raw (integer_type_node);
+       model = build4 (TARGET_EXPR, integer_type_node, var, model, NULL_TREE,
+ 		      NULL_TREE);
+       add_stmt (model);
+     }
+ 
+   tree old = create_tmp_var_raw (nonatomic_lhs_type);
+   tree old_addr = build_unary_op (loc, ADDR_EXPR, old, false);
+   TREE_ADDRESSABLE (old) = 1;
+   suppress_warning (old);
+ 
+   tree newval = create_tmp_var_raw (nonatomic_lhs_type);
+   tree newval_addr = build_unary_op (loc, ADDR_EXPR, newval, false);
+   TREE_ADDRESSABLE (newval) = 1;
+   suppress_warning (newval);
+ 
+   tree loop_decl = create_artificial_label (loc);
+   tree loop_label = build1 (LABEL_EXPR, void_type_node, loop_decl);
+ 
+   tree done_decl = create_artificial_label (loc);
+   tree done_label = build1 (LABEL_EXPR, void_type_node, done_decl);
+ 
+   vec<tree, va_gc> *params;
+   vec_alloc (params, 6);
+ 
+   /* __atomic_load (addr, &old, SEQ_CST).  */
+   tree fndecl = builtin_decl_explicit (BUILT_IN_ATOMIC_LOAD);
+   params->quick_push (lhs_addr);
+   params->quick_push (old_addr);
+   params->quick_push (build_int_cst (integer_type_node, MEMMODEL_RELAXED));
+   tree func_call = resolve_overloaded_builtin (loc, fndecl, params);
+   if (func_call == NULL_TREE)
+     func_call = build_function_call_vec (loc, vNULL, fndecl, params, NULL);
+   old = build4 (TARGET_EXPR, nonatomic_lhs_type, old, func_call, NULL_TREE,
+ 		NULL_TREE);
+   add_stmt (old);
+   params->truncate (0);
+ 
+   /* loop:  */
+   add_stmt (loop_label);
+ 
+   /* newval = old + val;  */
+   tree rhs;
+   switch (code)
+     {
+     case PLUS_EXPR:
+     case MINUS_EXPR:
+       if (!TYPE_OVERFLOW_WRAPS (nonatomic_lhs_type))
+ 	{
+ 	  tree utype
+ 	    = build_bitint_type (TYPE_PRECISION (nonatomic_lhs_type), 1);
+ 	  rhs = convert (nonatomic_lhs_type,
+ 			 build2_loc (loc, code, utype,
+ 				     convert (utype, old),
+ 				     convert (utype, val)));
+ 	}
+       else
+ 	rhs = build2_loc (loc, code, nonatomic_lhs_type, old, val);
+       break;
+     case BIT_AND_EXPR:
+     case BIT_IOR_EXPR:
+     case BIT_XOR_EXPR:
+       rhs = build2_loc (loc, code, nonatomic_lhs_type, old, val);
+       break;
+     case ERROR_MARK:
+       rhs = build2_loc (loc, BIT_AND_EXPR, nonatomic_lhs_type,
+ 			build1_loc (loc, BIT_NOT_EXPR,
+ 				    nonatomic_lhs_type, old), val);
+       break;
+     default:
+       gcc_unreachable ();
+     }
+   rhs = build4 (TARGET_EXPR, nonatomic_lhs_type, newval, rhs, NULL_TREE,
+ 		NULL_TREE);
+   SET_EXPR_LOCATION (rhs, loc);
+   add_stmt (rhs);
+ 
+   /* if (__atomic_compare_exchange (addr, &old, &new, false, model, model))
+        goto done;  */
+   fndecl = builtin_decl_explicit (BUILT_IN_ATOMIC_COMPARE_EXCHANGE);
+   params->quick_push (lhs_addr);
+   params->quick_push (old_addr);
+   params->quick_push (newval_addr);
+   params->quick_push (integer_zero_node);
+   params->quick_push (model);
+   if (tree_fits_uhwi_p (model)
+       && (tree_to_uhwi (model) == MEMMODEL_RELEASE
+ 	  || tree_to_uhwi (model) == MEMMODEL_ACQ_REL))
+     params->quick_push (build_int_cst (integer_type_node, MEMMODEL_RELAXED));
+   else
+     params->quick_push (model);
+   func_call = resolve_overloaded_builtin (loc, fndecl, params);
+   if (func_call == NULL_TREE)
+     func_call = build_function_call_vec (loc, vNULL, fndecl, params, NULL);
+ 
+   tree goto_stmt = build1 (GOTO_EXPR, void_type_node, done_decl);
+   SET_EXPR_LOCATION (goto_stmt, loc);
+ 
+   tree stmt
+     = build3 (COND_EXPR, void_type_node, func_call, goto_stmt, NULL_TREE);
+   SET_EXPR_LOCATION (stmt, loc);
+   add_stmt (stmt);
+ 
+   /* goto loop;  */
+   goto_stmt = build1 (GOTO_EXPR, void_type_node, loop_decl);
+   SET_EXPR_LOCATION (goto_stmt, loc);
+   add_stmt (goto_stmt);
+ 
+   /* done:  */
+   add_stmt (done_label);
+ 
+   tree ret = create_tmp_var_raw (nonatomic_lhs_type);
+   stmt = build2_loc (loc, MODIFY_EXPR, void_type_node, ret,
+ 		     return_old_p ? old : newval);
+   add_stmt (stmt);
+ 
+   /* Finish the compound statement.  */
+   stmts = pop_stmt_list (stmts);
+ 
+   return build4 (TARGET_EXPR, nonatomic_lhs_type, ret, stmts, NULL_TREE,
+ 		 NULL_TREE);
+ }
+ 
+ 
  /* Some builtin functions are placeholders for other expressions.  This
     function should be called immediately after parsing the call expression
     before surrounding code has committed to the type of the expression.
*************** resolve_overloaded_builtin (location_t l
*** 8020,8038 ****
  	/* The following are not _FETCH_OPs and must be accepted with
  	   pointers to _Bool (or C++ bool).  */
  	if (fetch_op)
! 	  fetch_op =
! 	    (orig_code != BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N
! 	     && orig_code != BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N
! 	     && orig_code != BUILT_IN_SYNC_LOCK_TEST_AND_SET_N
! 	     && orig_code != BUILT_IN_SYNC_LOCK_RELEASE_N);
  
! 	int n = sync_resolve_size (function, params, fetch_op);
  	tree new_function, first_param, result;
  	enum built_in_function fncode;
  
  	if (n == 0)
  	  return error_mark_node;
  
  	fncode = (enum built_in_function)((int)orig_code + exact_log2 (n) + 1);
  	new_function = builtin_decl_explicit (fncode);
  	if (!sync_resolve_params (loc, function, new_function, params,
--- 8420,8441 ----
  	/* The following are not _FETCH_OPs and must be accepted with
  	   pointers to _Bool (or C++ bool).  */
  	if (fetch_op)
! 	  fetch_op = (orig_code != BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N
! 		      && orig_code != BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N
! 		      && orig_code != BUILT_IN_SYNC_LOCK_TEST_AND_SET_N
! 		      && orig_code != BUILT_IN_SYNC_LOCK_RELEASE_N);
  
! 	int n = sync_resolve_size (function, params, fetch_op, orig_format);
  	tree new_function, first_param, result;
  	enum built_in_function fncode;
  
  	if (n == 0)
  	  return error_mark_node;
  
+ 	if (n == -1)
+ 	  return atomic_bitint_fetch_using_cas_loop (loc, orig_code,
+ 						     function, params);
+ 
  	fncode = (enum built_in_function)((int)orig_code + exact_log2 (n) + 1);
  	new_function = builtin_decl_explicit (fncode);
  	if (!sync_resolve_params (loc, function, new_function, params,
*************** resolve_overloaded_builtin (location_t l
*** 8059,8065 ****
  	if (new_return)
  	  {
  	    /* Cast function result from I{1,2,4,8,16} to the required type.  */
! 	    result = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (new_return), result);
  	    result = build2 (MODIFY_EXPR, TREE_TYPE (new_return), new_return,
  			     result);
  	    TREE_SIDE_EFFECTS (result) = 1;
--- 8462,8480 ----
  	if (new_return)
  	  {
  	    /* Cast function result from I{1,2,4,8,16} to the required type.  */
! 	    if (TREE_CODE (TREE_TYPE (new_return)) == BITINT_TYPE)
! 	      {
! 		struct bitint_info info;
! 		unsigned prec = TYPE_PRECISION (TREE_TYPE (new_return));
! 		targetm.c.bitint_type_info (prec, &info);
! 		if (!info.extended)
! 		  /* For _BitInt which has the padding bits undefined
! 		     convert to the _BitInt type rather than VCE to force
! 		     zero or sign extension.  */
! 		  result = build1 (NOP_EXPR, TREE_TYPE (new_return), result);
! 	      }
! 	    result
! 	      = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (new_return), result);
  	    result = build2 (MODIFY_EXPR, TREE_TYPE (new_return), new_return,
  			     result);
  	    TREE_SIDE_EFFECTS (result) = 1;
*************** keyword_begins_type_specifier (enum rid
*** 8397,8402 ****
--- 8812,8818 ----
      case RID_FRACT:
      case RID_ACCUM:
      case RID_BOOL:
+     case RID_BITINT:
      case RID_WCHAR:
      case RID_CHAR8:
      case RID_CHAR16:
*************** scalar_to_vector (location_t loc, enum t
*** 8649,8655 ****
  	  }
  	else if (!integer_only_op
  		    /* Allow integer --> real conversion if safe.  */
! 		 && (TREE_CODE (type0) == REAL_TYPE
  		     || TREE_CODE (type0) == INTEGER_TYPE)
  		 && SCALAR_FLOAT_TYPE_P (TREE_TYPE (type1)))
  	  {
--- 9065,9071 ----
  	  }
  	else if (!integer_only_op
  		    /* Allow integer --> real conversion if safe.  */
! 		 && (SCALAR_FLOAT_TYPE_P (type0)
  		     || TREE_CODE (type0) == INTEGER_TYPE)
  		 && SCALAR_FLOAT_TYPE_P (TREE_TYPE (type1)))
  	  {
*************** maybe_add_include_fixit (rich_location *
*** 9306,9312 ****
    richloc->add_fixit_insert_before (include_insert_loc, text);
    free (text);
  
!   if (override_location && global_dc->show_caret)
      {
        /* Replace the primary location with that of the insertion point for the
  	 fix-it hint.
--- 9722,9728 ----
    richloc->add_fixit_insert_before (include_insert_loc, text);
    free (text);
  
!   if (override_location && global_dc->m_source_printing.enabled)
      {
        /* Replace the primary location with that of the insertion point for the
  	 fix-it hint.
*************** c_strict_flex_array_level_of (tree array
*** 9545,9548 ****
--- 9961,10041 ----
    return strict_flex_array_level;
  }
  
+ /* Map from identifiers to booleans.  Value is true for features, and
+    false for extensions.  Used to implement __has_{feature,extension}.  */
+ 
+ using feature_map_t = hash_map <tree, bool>;
+ static feature_map_t *feature_map;
+ 
+ /* Register a feature for __has_{feature,extension}.  FEATURE_P is true
+    if the feature identified by NAME is a feature (as opposed to an
+    extension).  */
+ 
+ void
+ c_common_register_feature (const char *name, bool feature_p)
+ {
+   bool dup = feature_map->put (get_identifier (name), feature_p);
+   gcc_checking_assert (!dup);
+ }
+ 
+ /* Lazily initialize hash table for __has_{feature,extension},
+    dispatching to the appropriate front end to register language-specific
+    features.  */
+ 
+ static void
+ init_has_feature ()
+ {
+   gcc_checking_assert (!feature_map);
+   feature_map = new feature_map_t;
+ 
+   for (unsigned i = 0; i < ARRAY_SIZE (has_feature_table); i++)
+     {
+       const hf_feature_info *info = has_feature_table + i;
+ 
+       if ((info->flags & HF_FLAG_SANITIZE) && !(flag_sanitize & info->mask))
+ 	continue;
+ 
+       const bool feature_p = !(info->flags & HF_FLAG_EXT);
+       c_common_register_feature (info->ident, feature_p);
+     }
+ 
+   /* Register language-specific features.  */
+   c_family_register_lang_features ();
+ }
+ 
+ /* If STRICT_P is true, evaluate __has_feature (IDENT).
+    Otherwise, evaluate __has_extension (IDENT).  */
+ 
+ bool
+ has_feature_p (const char *ident, bool strict_p)
+ {
+   if (!feature_map)
+     init_has_feature ();
+ 
+   tree name = canonicalize_attr_name (get_identifier (ident));
+   bool *feat_p = feature_map->get (name);
+   if (!feat_p)
+     return false;
+ 
+   return !strict_p || *feat_p;
+ }
+ 
+ /* This is the slow path of c-common.h's c_hardbool_type_attr.  */
+ 
+ tree
+ c_hardbool_type_attr_1 (tree type, tree *false_value, tree *true_value)
+ {
+   tree attr = lookup_attribute ("hardbool", TYPE_ATTRIBUTES (type));
+   if (!attr)
+     return attr;
+ 
+   if (false_value)
+     *false_value = TREE_VALUE (TYPE_VALUES (type));
+ 
+   if (true_value)
+     *true_value = TREE_VALUE (TREE_CHAIN (TYPE_VALUES (type)));
+ 
+   return attr;
+ }
+ 
  #include "gt-c-family-c-common.h"
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-common.def gcc-14.1.0/gcc/c-family/c-common.def
*** gcc-13.2.0/gcc/c-family/c-common.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-common.def	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* This file contains the definitions and documentation for the
     additional tree codes used in the GNU C compiler (see tree.def
     for the standard codes).
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
     Written by Benjamin Chelf <chelf@codesourcery.com>
  
  This file is part of GCC.
--- 1,7 ----
  /* This file contains the definitions and documentation for the
     additional tree codes used in the GNU C compiler (see tree.def
     for the standard codes).
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
     Written by Benjamin Chelf <chelf@codesourcery.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-common.h gcc-14.1.0/gcc/c-family/c-common.h
*** gcc-13.2.0/gcc/c-family/c-common.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-common.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for c-common.cc.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for c-common.cc.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum rid
*** 101,115 ****
    RID_ENUM,    RID_STRUCT, RID_UNION,    RID_IF,     RID_ELSE,
    RID_WHILE,   RID_DO,     RID_FOR,      RID_SWITCH, RID_CASE,
    RID_DEFAULT, RID_BREAK,  RID_CONTINUE, RID_RETURN, RID_GOTO,
!   RID_SIZEOF,
  
    /* C extensions */
    RID_ASM,       RID_TYPEOF,   RID_TYPEOF_UNQUAL, RID_ALIGNOF,  RID_ATTRIBUTE,
    RID_VA_ARG,
!   RID_EXTENSION, RID_IMAGPART, RID_REALPART, RID_LABEL,      RID_CHOOSE_EXPR,
!   RID_TYPES_COMPATIBLE_P,      RID_BUILTIN_COMPLEX,	     RID_BUILTIN_SHUFFLE,
!   RID_BUILTIN_SHUFFLEVECTOR,   RID_BUILTIN_CONVERTVECTOR,   RID_BUILTIN_TGMATH,
!   RID_BUILTIN_HAS_ATTRIBUTE,   RID_BUILTIN_ASSOC_BARRIER,
    RID_DFLOAT32, RID_DFLOAT64, RID_DFLOAT128,
  
    /* TS 18661-3 keywords, in the same sequence as the TI_* values.  */
--- 101,115 ----
    RID_ENUM,    RID_STRUCT, RID_UNION,    RID_IF,     RID_ELSE,
    RID_WHILE,   RID_DO,     RID_FOR,      RID_SWITCH, RID_CASE,
    RID_DEFAULT, RID_BREAK,  RID_CONTINUE, RID_RETURN, RID_GOTO,
!   RID_SIZEOF,  RID_BITINT,
  
    /* C extensions */
    RID_ASM,       RID_TYPEOF,   RID_TYPEOF_UNQUAL, RID_ALIGNOF,  RID_ATTRIBUTE,
    RID_VA_ARG,
!   RID_EXTENSION, RID_IMAGPART, RID_REALPART, RID_LABEL,    RID_CHOOSE_EXPR,
!   RID_TYPES_COMPATIBLE_P,      RID_BUILTIN_COMPLEX,	   RID_BUILTIN_SHUFFLE,
!   RID_BUILTIN_SHUFFLEVECTOR,   RID_BUILTIN_CONVERTVECTOR,  RID_BUILTIN_TGMATH,
!   RID_BUILTIN_HAS_ATTRIBUTE,   RID_BUILTIN_ASSOC_BARRIER,  RID_BUILTIN_STDC,
    RID_DFLOAT32, RID_DFLOAT64, RID_DFLOAT128,
  
    /* TS 18661-3 keywords, in the same sequence as the TI_* values.  */
*************** enum rid
*** 168,178 ****
    RID_BUILTIN_LAUNDER,
    RID_BUILTIN_BIT_CAST,
  
- #define DEFTRAIT(TCC, CODE, NAME, ARITY) \
-   RID_##CODE,
- #include "cp/cp-trait.def"
- #undef DEFTRAIT
- 
    /* C++11 */
    RID_CONSTEXPR, RID_DECLTYPE, RID_NOEXCEPT, RID_NULLPTR, RID_STATIC_ASSERT,
  
--- 168,173 ----
*************** extern machine_mode c_default_pointer_mo
*** 435,445 ****
  #define D_CONLY		0x0001	/* C only (not in C++).  */
  #define D_CXXONLY	0x0002	/* C++ only (not in C).  */
  #define D_C99		0x0004	/* In C, C99 only.  */
! #define D_C2X		0x0008	/* In C, C2X only.  */
  #define D_CXX11         0x0010	/* In C++, C++11 only.  */
  #define D_EXT		0x0020	/* GCC extension.  */
  #define D_EXT89		0x0040	/* GCC extension incorporated in C99.  */
! #define D_EXT11		0x0080	/* GCC extension incorporated in C2X.  */
  #define D_ASM		0x0100	/* Disabled by -fno-asm.  */
  #define D_OBJC		0x0200	/* In Objective C and neither C nor C++.  */
  #define D_CXX_OBJC	0x0400	/* In Objective C, and C++, but not C.  */
--- 430,440 ----
  #define D_CONLY		0x0001	/* C only (not in C++).  */
  #define D_CXXONLY	0x0002	/* C++ only (not in C).  */
  #define D_C99		0x0004	/* In C, C99 only.  */
! #define D_C23		0x0008	/* In C, C23 only.  */
  #define D_CXX11         0x0010	/* In C++, C++11 only.  */
  #define D_EXT		0x0020	/* GCC extension.  */
  #define D_EXT89		0x0040	/* GCC extension incorporated in C99.  */
! #define D_EXT11		0x0080	/* GCC extension incorporated in C23.  */
  #define D_ASM		0x0100	/* Disabled by -fno-asm.  */
  #define D_OBJC		0x0200	/* In Objective C and neither C nor C++.  */
  #define D_CXX_OBJC	0x0400	/* In Objective C, and C++, but not C.  */
*************** extern GTY(()) tree c_global_trees[CTI_M
*** 536,542 ****
  
  enum c_language_kind
  {
!   clk_c		= 0,		/* C90, C94, C99, C11 or C2X */
    clk_objc	= 1,		/* clk_c with ObjC features.  */
    clk_cxx	= 2,		/* ANSI/ISO C++ */
    clk_objcxx	= 3		/* clk_cxx with ObjC features.  */
--- 531,537 ----
  
  enum c_language_kind
  {
!   clk_c		= 0,		/* C90, C94, C99, C11 or C23 */
    clk_objc	= 1,		/* clk_c with ObjC features.  */
    clk_cxx	= 2,		/* ANSI/ISO C++ */
    clk_objcxx	= 3		/* clk_cxx with ObjC features.  */
*************** extern int flag_isoc99;
*** 681,689 ****
  
  extern int flag_isoc11;
  
! /* Nonzero means use the ISO C2X dialect of C.  */
  
! extern int flag_isoc2x;
  
  /* Nonzero means that we have builtin functions, and main is an int.  */
  
--- 676,684 ----
  
  extern int flag_isoc11;
  
! /* Nonzero means use the ISO C23 dialect of C.  */
  
! extern int flag_isoc23;
  
  /* Nonzero means that we have builtin functions, and main is an int.  */
  
*************** enum cxx_dialect {
*** 740,746 ****
    /* C++20 */
    cxx20,
    /* C++23 */
!   cxx23
  };
  
  /* The C++ dialect being used. C++98 is the default.  */
--- 735,743 ----
    /* C++20 */
    cxx20,
    /* C++23 */
!   cxx23,
!   /* C++26 */
!   cxx26
  };
  
  /* The C++ dialect being used. C++98 is the default.  */
*************** extern bool override_libcpp_locations;
*** 790,796 ****
  inline bool
  gnu_vector_type_p (const_tree type)
  {
!   return TREE_CODE (type) == VECTOR_TYPE && !TYPE_INDIVISIBLE_P (type);
  }
  
  struct visibility_flags
--- 787,793 ----
  inline bool
  gnu_vector_type_p (const_tree type)
  {
!   return VECTOR_TYPE_P (type) && !TYPE_INDIVISIBLE_P (type);
  }
  
  struct visibility_flags
*************** enum conversion_safety {
*** 819,826 ****
  extern struct visibility_flags visibility_options;
  
  /* Attribute table common to the C front ends.  */
! extern const struct attribute_spec c_common_attribute_table[];
! extern const struct attribute_spec c_common_format_attribute_table[];
  
  /* Pointer to function to lazily generate the VAR_DECL for __FUNCTION__ etc.
     ID is the identifier to use, NAME is the string.
--- 816,823 ----
  extern struct visibility_flags visibility_options;
  
  /* Attribute table common to the C front ends.  */
! extern const struct scoped_attribute_specs c_common_gnu_attribute_table;
! extern const struct scoped_attribute_specs c_common_format_attribute_table;
  
  /* Pointer to function to lazily generate the VAR_DECL for __FUNCTION__ etc.
     ID is the identifier to use, NAME is the string.
*************** extern bool get_attribute_operand (tree,
*** 909,914 ****
--- 906,912 ----
  extern void c_common_finalize_early_debug (void);
  extern unsigned int c_strict_flex_array_level_of (tree);
  extern bool c_option_is_from_cpp_diagnostics (int);
+ extern tree c_hardbool_type_attr_1 (tree, tree *, tree *);
  
  /* Used by convert_and_check; in front ends.  */
  extern tree convert_init (tree, tree);
*************** extern void c_parse_file (void);
*** 988,993 ****
--- 986,994 ----
  
  extern void c_parse_final_cleanups (void);
  
+ /* This initializes for preprocess-only mode.  */
+ extern void c_init_preprocess (void);
+ 
  /* These macros provide convenient access to the various _STMT nodes.  */
  
  /* Nonzero if a given STATEMENT_LIST represents the outermost binding
*************** extern void c_parse_final_cleanups (void
*** 1033,1039 ****
     underlying type is determined in different ways, depending on the
     properties of the enum:
  
!      - In C++0x or C2x, the underlying type can be explicitly specified, e.g.,
  
           enum E1 : char { ... } // underlying type is char
  
--- 1034,1040 ----
     underlying type is determined in different ways, depending on the
     properties of the enum:
  
!      - In C++0x or C23, the underlying type can be explicitly specified, e.g.,
  
           enum E1 : char { ... } // underlying type is char
  
*************** extern bool c_cpp_diagnostic (cpp_reader
*** 1121,1126 ****
--- 1122,1135 ----
       ATTRIBUTE_GCC_DIAG(5,0);
  extern int c_common_has_attribute (cpp_reader *, bool);
  extern int c_common_has_builtin (cpp_reader *);
+ extern int c_common_has_feature (cpp_reader *, bool);
+ 
+ /* Implemented by each front end in *-lang.cc.  */
+ extern void c_family_register_lang_features ();
+ 
+ /* Implemented in c-family/c-common.cc.  */
+ extern void c_common_register_feature (const char *, bool);
+ extern bool has_feature_p (const char *, bool);
  
  extern bool parse_optimize_options (tree, bool);
  
*************** enum c_omp_region_type
*** 1270,1277 ****
    C_ORT_ACC			= 1 << 1,
    C_ORT_DECLARE_SIMD		= 1 << 2,
    C_ORT_TARGET			= 1 << 3,
    C_ORT_OMP_DECLARE_SIMD	= C_ORT_OMP | C_ORT_DECLARE_SIMD,
!   C_ORT_OMP_TARGET		= C_ORT_OMP | C_ORT_TARGET
  };
  
  extern tree c_finish_omp_master (location_t, tree);
--- 1279,1289 ----
    C_ORT_ACC			= 1 << 1,
    C_ORT_DECLARE_SIMD		= 1 << 2,
    C_ORT_TARGET			= 1 << 3,
+   C_ORT_EXIT_DATA		= 1 << 4,
    C_ORT_OMP_DECLARE_SIMD	= C_ORT_OMP | C_ORT_DECLARE_SIMD,
!   C_ORT_OMP_TARGET		= C_ORT_OMP | C_ORT_TARGET,
!   C_ORT_OMP_EXIT_DATA		= C_ORT_OMP | C_ORT_EXIT_DATA,
!   C_ORT_ACC_TARGET		= C_ORT_ACC | C_ORT_TARGET
  };
  
  extern tree c_finish_omp_master (location_t, tree);
*************** extern tree c_finish_omp_for (location_t
*** 1294,1299 ****
--- 1306,1312 ----
  extern bool c_omp_check_loop_iv (tree, tree, walk_tree_lh);
  extern bool c_omp_check_loop_iv_exprs (location_t, enum tree_code, tree, int,
  				       tree, tree, tree, walk_tree_lh);
+ extern bool c_omp_check_loop_binding_exprs (tree, vec<tree> *);
  extern tree c_finish_oacc_wait (location_t, tree, tree);
  extern tree c_oacc_split_loop_clauses (tree, tree *, bool);
  extern void c_omp_split_clauses (location_t, enum tree_code, omp_clause_mask,
*************** extern tree c_omp_check_context_selector
*** 1307,1312 ****
--- 1320,1391 ----
  extern void c_omp_mark_declare_variant (location_t, tree, tree);
  extern void c_omp_adjust_map_clauses (tree, bool);
  
+ namespace omp_addr_tokenizer { struct omp_addr_token; }
+ typedef omp_addr_tokenizer::omp_addr_token omp_addr_token;
+ 
+ class c_omp_address_inspector
+ {
+   location_t loc;
+   tree root_term;
+   bool indirections;
+   int map_supported;
+ 
+ protected:
+   tree orig;
+ 
+ public:
+   c_omp_address_inspector (location_t loc, tree t)
+     : loc (loc), root_term (NULL_TREE), indirections (false),
+       map_supported (-1), orig (t)
+     {
+     }
+ 
+   ~c_omp_address_inspector ()
+     {
+     }
+ 
+   virtual bool processing_template_decl_p ()
+     {
+       return false;
+     }
+ 
+   virtual void emit_unmappable_type_notes (tree)
+     {
+     }
+ 
+   virtual tree convert_from_reference (tree)
+     {
+       gcc_unreachable ();
+     }
+ 
+   virtual tree build_array_ref (location_t loc, tree arr, tree idx)
+     {
+       tree eltype = TREE_TYPE (TREE_TYPE (arr));
+       return build4_loc (loc, ARRAY_REF, eltype, arr, idx, NULL_TREE,
+ 			 NULL_TREE);
+     }
+ 
+   virtual bool check_clause (tree);
+   tree get_root_term (bool);
+ 
+   tree unconverted_ref_origin ();
+   bool component_access_p ();
+ 
+   bool map_supported_p ();
+ 
+   tree get_origin (tree);
+   tree maybe_unconvert_ref (tree);
+ 
+   bool maybe_zero_length_array_section (tree);
+ 
+   tree expand_array_base (tree, vec<omp_addr_token *> &, tree, unsigned *,
+ 			  c_omp_region_type);
+   tree expand_component_selector (tree, vec<omp_addr_token *> &, tree,
+ 				  unsigned *, c_omp_region_type);
+   tree expand_map_clause (tree, tree, vec<omp_addr_token *> &,
+ 			  c_omp_region_type);
+ };
+ 
  enum c_omp_directive_kind {
    C_OMP_DIR_STANDALONE,
    C_OMP_DIR_CONSTRUCT,
*************** c_tree_chain_next (tree t)
*** 1342,1347 ****
--- 1421,1443 ----
    return NULL;
  }
  
+ /* Return the hardbool attribute associated with TYPE, if there is one, provided
+    that TYPE looks like an enumeral type that might have been set up by
+    handle_hardbool_attribute.  Return NULL otherwise.
+ 
+    If FALSE_VALUE or TRUE_VALUE are non-NULL and TYPE is a hardened boolean
+    type, store the corresponding representation values.  */
+ static inline tree
+ c_hardbool_type_attr (tree type,
+ 		      tree *false_value = NULL, tree *true_value = NULL)
+ {
+   if (TREE_CODE (type) != ENUMERAL_TYPE
+       || TYPE_LANG_SPECIFIC (type))
+     return NULL_TREE;
+ 
+   return c_hardbool_type_attr_1 (type, false_value, true_value);
+ }
+ 
  /* Mask used by tm_stmt_attr.  */
  #define TM_STMT_ATTR_OUTER	2
  #define TM_STMT_ATTR_ATOMIC	4
*************** extern void warnings_for_convert_and_che
*** 1476,1482 ****
  extern void c_do_switch_warnings (splay_tree, location_t, tree, tree, bool);
  extern void warn_for_omitted_condop (location_t, tree);
  extern bool warn_for_restrict (unsigned, tree *, unsigned);
! extern void warn_for_address_or_pointer_of_packed_member (tree, tree);
  extern void warn_parm_array_mismatch (location_t, tree, tree);
  extern void maybe_warn_sizeof_array_div (location_t, tree, tree, tree, tree);
  extern void do_warn_array_compare (location_t, tree_code, tree, tree);
--- 1572,1578 ----
  extern void c_do_switch_warnings (splay_tree, location_t, tree, tree, bool);
  extern void warn_for_omitted_condop (location_t, tree);
  extern bool warn_for_restrict (unsigned, tree *, unsigned);
! extern void warn_for_address_of_packed_member (tree, tree);
  extern void warn_parm_array_mismatch (location_t, tree, tree);
  extern void maybe_warn_sizeof_array_div (location_t, tree, tree, tree, tree);
  extern void do_warn_array_compare (location_t, tree_code, tree, tree);
*************** extern void warn_about_parentheses (loca
*** 1503,1508 ****
--- 1599,1607 ----
  extern void warn_for_unused_label (tree label);
  extern void warn_for_div_by_zero (location_t, tree divisor);
  extern void warn_for_memset (location_t, tree, tree, int);
+ extern void warn_for_calloc (location_t *, tree, vec<tree, va_gc> *,
+ 			     tree *, tree);
+ extern void warn_for_alloc_size (location_t, tree, tree, tree);
  extern void warn_for_sign_compare (location_t,
  				   tree orig_op0, tree orig_op1,
  				   tree op0, tree op1,
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-cppbuiltin.cc gcc-14.1.0/gcc/c-family/c-cppbuiltin.cc
*** gcc-13.2.0/gcc/c-family/c-cppbuiltin.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-cppbuiltin.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Define builtin-in macros for the C family front ends.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Define builtin-in macros for the C family front ends.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** builtin_define_float_constants (const ch
*** 279,285 ****
    /* The difference between 1 and the least value greater than 1 that is
       representable in the given floating point type, b**(1-p).  */
    sprintf (name, "__%s_EPSILON__", name_prefix);
!   if (fmt->pnan < fmt->p && (c_dialect_cxx () || !flag_isoc2x))
      /* This is an IBM extended double format, so 1.0 + any double is
         representable precisely.  */
        sprintf (buf, "0x1p%d", fmt->emin - fmt->p);
--- 279,285 ----
    /* The difference between 1 and the least value greater than 1 that is
       representable in the given floating point type, b**(1-p).  */
    sprintf (name, "__%s_EPSILON__", name_prefix);
!   if (fmt->pnan < fmt->p && (c_dialect_cxx () || !flag_isoc23))
      /* This is an IBM extended double format, so 1.0 + any double is
         representable precisely.  */
        sprintf (buf, "0x1p%d", fmt->emin - fmt->p);
*************** builtin_define_float_constants (const ch
*** 318,324 ****
        builtin_define_with_int_value (name, 1);
      }
  
!   /* For C2x *_IS_IEC_60559.  0 means the type does not match an IEC
       60559 format, 1 that it matches a format but not necessarily
       operations.  */
    sprintf (name, "__%s_IS_IEC_60559__", name_prefix);
--- 318,324 ----
        builtin_define_with_int_value (name, 1);
      }
  
!   /* For C23 *_IS_IEC_60559.  0 means the type does not match an IEC
       60559 format, 1 that it matches a format but not necessarily
       operations.  */
    sprintf (name, "__%s_IS_IEC_60559__", name_prefix);
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1023,1029 ****
  	{
  	  /* Set feature test macros for C++17.  */
  	  cpp_define (pfile, "__cpp_unicode_characters=201411L");
! 	  cpp_define (pfile, "__cpp_static_assert=201411L");
  	  cpp_define (pfile, "__cpp_namespace_attributes=201411L");
  	  cpp_define (pfile, "__cpp_enumerator_attributes=201411L");
  	  cpp_define (pfile, "__cpp_nested_namespace_definitions=201411L");
--- 1023,1030 ----
  	{
  	  /* Set feature test macros for C++17.  */
  	  cpp_define (pfile, "__cpp_unicode_characters=201411L");
! 	  if (cxx_dialect <= cxx23)
! 	    cpp_define (pfile, "__cpp_static_assert=201411L");
  	  cpp_define (pfile, "__cpp_namespace_attributes=201411L");
  	  cpp_define (pfile, "__cpp_enumerator_attributes=201411L");
  	  cpp_define (pfile, "__cpp_nested_namespace_definitions=201411L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1058,1064 ****
  	    cpp_define (pfile, "__cpp_constexpr=202002L");
  	  cpp_define (pfile, "__cpp_constexpr_in_decltype=201711L");
  	  cpp_define (pfile, "__cpp_conditional_explicit=201806L");
! 	  cpp_define (pfile, "__cpp_consteval=201811L");
  	  cpp_define (pfile, "__cpp_constinit=201907L");
  	  cpp_define (pfile, "__cpp_deduction_guides=201907L");
  	  cpp_define (pfile, "__cpp_nontype_template_args=201911L");
--- 1059,1065 ----
  	    cpp_define (pfile, "__cpp_constexpr=202002L");
  	  cpp_define (pfile, "__cpp_constexpr_in_decltype=201711L");
  	  cpp_define (pfile, "__cpp_conditional_explicit=201806L");
! 	  cpp_define (pfile, "__cpp_consteval=202211L");
  	  cpp_define (pfile, "__cpp_constinit=201907L");
  	  cpp_define (pfile, "__cpp_deduction_guides=201907L");
  	  cpp_define (pfile, "__cpp_nontype_template_args=201911L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1075,1089 ****
  	  cpp_define (pfile, "__cpp_size_t_suffix=202011L");
  	  cpp_define (pfile, "__cpp_if_consteval=202106L");
  	  cpp_define (pfile, "__cpp_auto_cast=202110L");
! 	  cpp_define (pfile, "__cpp_constexpr=202211L");
  	  cpp_define (pfile, "__cpp_multidimensional_subscript=202211L");
  	  cpp_define (pfile, "__cpp_named_character_escapes=202207L");
  	  cpp_define (pfile, "__cpp_static_call_operator=202207L");
  	  cpp_define (pfile, "__cpp_implicit_move=202207L");
  	}
        if (flag_concepts)
          {
! 	  if (cxx_dialect >= cxx20)
  	    cpp_define (pfile, "__cpp_concepts=202002L");
            else
              cpp_define (pfile, "__cpp_concepts=201507L");
--- 1076,1099 ----
  	  cpp_define (pfile, "__cpp_size_t_suffix=202011L");
  	  cpp_define (pfile, "__cpp_if_consteval=202106L");
  	  cpp_define (pfile, "__cpp_auto_cast=202110L");
! 	  if (cxx_dialect <= cxx23)
! 	    cpp_define (pfile, "__cpp_constexpr=202211L");
  	  cpp_define (pfile, "__cpp_multidimensional_subscript=202211L");
  	  cpp_define (pfile, "__cpp_named_character_escapes=202207L");
  	  cpp_define (pfile, "__cpp_static_call_operator=202207L");
  	  cpp_define (pfile, "__cpp_implicit_move=202207L");
+ 	  cpp_define (pfile, "__cpp_explicit_this_parameter=202110L");
+ 	}
+       if (cxx_dialect > cxx23)
+ 	{
+ 	  /* Set feature test macros for C++26.  */
+ 	  cpp_define (pfile, "__cpp_constexpr=202306L");
+ 	  cpp_define (pfile, "__cpp_static_assert=202306L");
+ 	  cpp_define (pfile, "__cpp_placeholder_variables=202306L");
  	}
        if (flag_concepts)
          {
! 	  if (cxx_dialect >= cxx20 || !flag_concepts_ts)
  	    cpp_define (pfile, "__cpp_concepts=202002L");
            else
              cpp_define (pfile, "__cpp_concepts=201507L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1184,1189 ****
--- 1194,1222 ----
    builtin_define_type_width ("__PTRDIFF_WIDTH__", ptrdiff_type_node, NULL_TREE);
    builtin_define_type_width ("__SIZE_WIDTH__", size_type_node, NULL_TREE);
  
+   if (!c_dialect_cxx ())
+     {
+       struct bitint_info info;
+       /* For now, restrict __BITINT_MAXWIDTH__ to what can be represented in
+ 	 wide_int and widest_int.  */
+       if (targetm.c.bitint_type_info (WIDE_INT_MAX_PRECISION - 1, &info))
+ 	{
+ 	  cpp_define_formatted (pfile, "__BITINT_MAXWIDTH__=%d",
+ 				(int) WIDE_INT_MAX_PRECISION - 1);
+ 	  if (flag_building_libgcc)
+ 	    {
+ 	      scalar_int_mode limb_mode
+ 		= as_a <scalar_int_mode> (info.limb_mode);
+ 	      cpp_define_formatted (pfile, "__LIBGCC_BITINT_LIMB_WIDTH__=%d",
+ 				    (int) GET_MODE_PRECISION (limb_mode));
+ 	      cpp_define_formatted (pfile, "__LIBGCC_BITINT_ORDER__=%s",
+ 				    info.big_endian
+ 				    ? "__ORDER_BIG_ENDIAN__"
+ 				    : "__ORDER_LITTLE_ENDIAN__");
+ 	    }
+ 	}
+     }
+ 
    if (c_dialect_cxx ())
      for (i = 0; i < NUM_INT_N_ENTS; i ++)
        if (int_n_enabled_p[i])
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1538,1545 ****
        /* For libgcov.  */
        builtin_define_with_int_value ("__LIBGCC_VTABLE_USES_DESCRIPTORS__",
  				     TARGET_VTABLE_USES_DESCRIPTORS);
!       builtin_define_with_int_value ("__LIBGCC_GCOV_TYPE_SIZE",
! 				     targetm.gcov_type_size());
      }
  
    /* For use in assembly language.  */
--- 1571,1578 ----
        /* For libgcov.  */
        builtin_define_with_int_value ("__LIBGCC_VTABLE_USES_DESCRIPTORS__",
  				     TARGET_VTABLE_USES_DESCRIPTORS);
!       builtin_define_with_int_value ("__LIBGCC_HAVE_LIBATOMIC",
! 				     targetm.have_libatomic);
      }
  
    /* For use in assembly language.  */
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-dump.cc gcc-14.1.0/gcc/c-family/c-dump.cc
*** gcc-13.2.0/gcc/c-family/c-dump.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-dump.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Tree-dumping functionality for C-family languages.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Written by Mark Mitchell <mark@codesourcery.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* Tree-dumping functionality for C-family languages.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Written by Mark Mitchell <mark@codesourcery.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-format.cc gcc-14.1.0/gcc/c-family/c-format.cc
*** gcc-13.2.0/gcc/c-family/c-format.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-format.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** decode_format_attr (const_tree fn, tree
*** 398,405 ****
  /* The C standard version we are checking formats against when pedantic.  */
  #define C_STD_VER		((int) (c_dialect_cxx ()		   \
  				 ? CPLUSPLUS_STD_VER			   \
! 				 : (flag_isoc2x				   \
! 				    ? STD_C2X				   \
  				    : (flag_isoc99			   \
  				       ? STD_C99			   \
  				       : (flag_isoc94 ? STD_C94 : STD_C89)))))
--- 398,405 ----
  /* The C standard version we are checking formats against when pedantic.  */
  #define C_STD_VER		((int) (c_dialect_cxx ()		   \
  				 ? CPLUSPLUS_STD_VER			   \
! 				 : (flag_isoc23				   \
! 				    ? STD_C23				   \
  				    : (flag_isoc99			   \
  				       ? STD_C99			   \
  				       : (flag_isoc94 ? STD_C94 : STD_C89)))))
*************** decode_format_attr (const_tree fn, tree
*** 411,417 ****
  				    : "ISO C++11")		\
  				 : ((FEATURE_VER) == STD_EXT	\
  				    ? "ISO C"			\
! 				    : ((FEATURE_VER) == STD_C2X	\
  				       ? "ISO C17"		\
  				       : "ISO C90")))
  /* Adjust a C standard version, which may be STD_C9L, to account for
--- 411,417 ----
  				    : "ISO C++11")		\
  				 : ((FEATURE_VER) == STD_EXT	\
  				    ? "ISO C"			\
! 				    : ((FEATURE_VER) == STD_C23	\
  				       ? "ISO C17"		\
  				       : "ISO C90")))
  /* Adjust a C standard version, which may be STD_C9L, to account for
*************** static const format_length_info printf_l
*** 486,501 ****
    { "Z", FMT_LEN_z, STD_EXT, NO_FMT, 0 },
    { "t", FMT_LEN_t, STD_C99, NO_FMT, 0 },
    { "j", FMT_LEN_j, STD_C99, NO_FMT, 0 },
!   { "H", FMT_LEN_H, STD_C2X, NO_FMT, 0 },
!   { "D", FMT_LEN_D, STD_C2X, "DD", FMT_LEN_DD, STD_C2X, 0 },
!   { "w8", FMT_LEN_w8, STD_C2X, NO_FMT, 0 },
!   { "w16", FMT_LEN_w16, STD_C2X, NO_FMT, 0 },
!   { "w32", FMT_LEN_w32, STD_C2X, NO_FMT, 0 },
!   { "w64", FMT_LEN_w64, STD_C2X, NO_FMT, 0 },
!   { "wf8", FMT_LEN_wf8, STD_C2X, NO_FMT, 0 },
!   { "wf16", FMT_LEN_wf16, STD_C2X, NO_FMT, 0 },
!   { "wf32", FMT_LEN_wf32, STD_C2X, NO_FMT, 0 },
!   { "wf64", FMT_LEN_wf64, STD_C2X, NO_FMT, 0 },
    { NO_FMT, NO_FMT, 0 }
  };
  
--- 486,501 ----
    { "Z", FMT_LEN_z, STD_EXT, NO_FMT, 0 },
    { "t", FMT_LEN_t, STD_C99, NO_FMT, 0 },
    { "j", FMT_LEN_j, STD_C99, NO_FMT, 0 },
!   { "H", FMT_LEN_H, STD_C23, NO_FMT, 0 },
!   { "D", FMT_LEN_D, STD_C23, "DD", FMT_LEN_DD, STD_C23, 0 },
!   { "w8", FMT_LEN_w8, STD_C23, NO_FMT, 0 },
!   { "w16", FMT_LEN_w16, STD_C23, NO_FMT, 0 },
!   { "w32", FMT_LEN_w32, STD_C23, NO_FMT, 0 },
!   { "w64", FMT_LEN_w64, STD_C23, NO_FMT, 0 },
!   { "wf8", FMT_LEN_wf8, STD_C23, NO_FMT, 0 },
!   { "wf16", FMT_LEN_wf16, STD_C23, NO_FMT, 0 },
!   { "wf32", FMT_LEN_wf32, STD_C23, NO_FMT, 0 },
!   { "wf64", FMT_LEN_wf64, STD_C23, NO_FMT, 0 },
    { NO_FMT, NO_FMT, 0 }
  };
  
*************** static const format_length_info gcc_diag
*** 512,517 ****
--- 512,519 ----
  {
    { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C89, 0 },
    { "w", FMT_LEN_w, STD_C89, NO_FMT, 0 },
+   { "z", FMT_LEN_z, STD_C99, NO_FMT, 0 },
+   { "t", FMT_LEN_t, STD_C99, NO_FMT, 0 },
    { NO_FMT, NO_FMT, 0 }
  };
  
*************** static const format_length_info scanf_le
*** 531,546 ****
    { "z", FMT_LEN_z, STD_C99, NO_FMT, 0 },
    { "t", FMT_LEN_t, STD_C99, NO_FMT, 0 },
    { "j", FMT_LEN_j, STD_C99, NO_FMT, 0 },
!   { "H", FMT_LEN_H, STD_C2X, NO_FMT, 0 },
!   { "D", FMT_LEN_D, STD_C2X, "DD", FMT_LEN_DD, STD_C2X, 0 },
!   { "w8", FMT_LEN_w8, STD_C2X, NO_FMT, 0 },
!   { "w16", FMT_LEN_w16, STD_C2X, NO_FMT, 0 },
!   { "w32", FMT_LEN_w32, STD_C2X, NO_FMT, 0 },
!   { "w64", FMT_LEN_w64, STD_C2X, NO_FMT, 0 },
!   { "wf8", FMT_LEN_wf8, STD_C2X, NO_FMT, 0 },
!   { "wf16", FMT_LEN_wf16, STD_C2X, NO_FMT, 0 },
!   { "wf32", FMT_LEN_wf32, STD_C2X, NO_FMT, 0 },
!   { "wf64", FMT_LEN_wf64, STD_C2X, NO_FMT, 0 },
    { NO_FMT, NO_FMT, 0 }
  };
  
--- 533,548 ----
    { "z", FMT_LEN_z, STD_C99, NO_FMT, 0 },
    { "t", FMT_LEN_t, STD_C99, NO_FMT, 0 },
    { "j", FMT_LEN_j, STD_C99, NO_FMT, 0 },
!   { "H", FMT_LEN_H, STD_C23, NO_FMT, 0 },
!   { "D", FMT_LEN_D, STD_C23, "DD", FMT_LEN_DD, STD_C23, 0 },
!   { "w8", FMT_LEN_w8, STD_C23, NO_FMT, 0 },
!   { "w16", FMT_LEN_w16, STD_C23, NO_FMT, 0 },
!   { "w32", FMT_LEN_w32, STD_C23, NO_FMT, 0 },
!   { "w64", FMT_LEN_w64, STD_C23, NO_FMT, 0 },
!   { "wf8", FMT_LEN_wf8, STD_C23, NO_FMT, 0 },
!   { "wf16", FMT_LEN_wf16, STD_C23, NO_FMT, 0 },
!   { "wf32", FMT_LEN_wf32, STD_C23, NO_FMT, 0 },
!   { "wf64", FMT_LEN_wf64, STD_C23, NO_FMT, 0 },
    { NO_FMT, NO_FMT, 0 }
  };
  
*************** static const format_flag_spec strftime_f
*** 668,674 ****
    { 'E', 0,   0, 0, N_("'E' modifier"), N_("the 'E' strftime modifier"),      STD_C99 },
    { 'O', 0,   0, 0, N_("'O' modifier"), N_("the 'O' strftime modifier"),      STD_C99 },
    { 'O', 'o', 0, 0, NULL,               N_("the 'O' modifier"),               STD_EXT },
!   { 'O', 'p', 0, 0, NULL,               N_("the 'O' modifier"),               STD_C2X },
    { 0, 0, 0, 0, NULL, NULL, STD_C89 }
  };
  
--- 670,676 ----
    { 'E', 0,   0, 0, N_("'E' modifier"), N_("the 'E' strftime modifier"),      STD_C99 },
    { 'O', 0,   0, 0, N_("'O' modifier"), N_("the 'O' strftime modifier"),      STD_C99 },
    { 'O', 'o', 0, 0, NULL,               N_("the 'O' modifier"),               STD_EXT },
!   { 'O', 'p', 0, 0, NULL,               N_("the 'O' modifier"),               STD_C23 },
    { 0, 0, 0, 0, NULL, NULL, STD_C89 }
  };
  
*************** static const format_flag_pair strfmon_fl
*** 709,734 ****
  static const format_char_info print_char_table[] =
  {
    /* C89 conversion specifiers.  */
!   { "di",  0, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM,  BADLEN,  BADLEN,  BADLEN,   T2X_I8,  T2X_I16, T2X_I32, T2X_I64, T2X_IF8, T2X_IF16, T2X_IF32, T2X_IF64 }, "-wp0 +'I",  "i",  NULL },
!   { "oxX", 0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM, BADLEN,  BADLEN,  BADLEN,   T2X_U8,  T2X_U16, T2X_U32, T2X_U64, T2X_UF8, T2X_UF16, T2X_UF32, T2X_UF64 }, "-wp0#",     "i",  NULL },
!   { "u",   0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM, BADLEN,  BADLEN,  BADLEN,   T2X_U8,  T2X_U16, T2X_U32, T2X_U64, T2X_UF8, T2X_UF16, T2X_UF32, T2X_UF64 }, "-wp0'I",    "i",  NULL },
!   { "fgG", 0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN,  T2X_D32, T2X_D64, T2X_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp0 +#'I", "",   NULL },
!   { "eE",  0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN,  T2X_D32, T2X_D64, T2X_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp0 +#I",  "",   NULL },
    { "c",   0, STD_C89, { T89_I,   BADLEN,  BADLEN,  T94_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-w",        "",   NULL },
    { "s",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp",       "cR", NULL },
    { "p",   1, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-w",        "c",  NULL },
!   { "n",   1, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  BADLEN,  T99_SST, T99_PD,  T99_IM,  BADLEN,  BADLEN,  BADLEN,   T2X_I8,  T2X_I16, T2X_I32, T2X_I64, T2X_IF8, T2X_IF16, T2X_IF32, T2X_IF64 }, "",          "W",  NULL },
    /* C99 conversion specifiers.  */
!   { "F",   0, STD_C99, { T99_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN,  T2X_D32, T2X_D64, T2X_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp0 +#'I", "",   NULL },
!   { "aA",  0, STD_C99, { T99_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN,  T2X_D32, T2X_D64, T2X_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp0 +#",   "",   NULL },
!   /* C2X conversion specifiers.  */
!   { "b",   0, STD_C2X, { T2X_UI,  T2X_UC,  T2X_US,  T2X_UL,  T2X_ULL, TEX_ULL, T2X_ST,  T2X_UPD, T2X_UIM, BADLEN,  BADLEN,  BADLEN,   T2X_U8,  T2X_U16, T2X_U32, T2X_U64, T2X_UF8, T2X_UF16, T2X_UF32, T2X_UF64 }, "-wp0#",     "i",  NULL },
    /* X/Open conversion specifiers.  */
    { "C",   0, STD_EXT, { TEX_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-w",        "",   NULL },
    { "S",   1, STD_EXT, { TEX_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp",       "R",  NULL },
    /* GNU conversion specifiers.  */
    { "m",   0, STD_EXT, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp",       "",   NULL },
-   { "B",   0, STD_EXT, { T2X_UI,  T2X_UC,  T2X_US,  T2X_UL,  T2X_ULL, TEX_ULL, T2X_ST,  T2X_UPD, T2X_UIM, BADLEN,  BADLEN,  BADLEN,   T2X_U8,  T2X_U16, T2X_U32, T2X_U64, T2X_UF8, T2X_UF16, T2X_UF32, T2X_UF64 }, "-wp0#",     "i",  NULL },
    { NULL,  0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
  };
  
--- 711,735 ----
  static const format_char_info print_char_table[] =
  {
    /* C89 conversion specifiers.  */
!   { "di",  0, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM,  BADLEN,  BADLEN,  BADLEN,   T23_I8,  T23_I16, T23_I32, T23_I64, T23_IF8, T23_IF16, T23_IF32, T23_IF64 }, "-wp0 +'I",  "i",  NULL },
!   { "oxX", 0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM, BADLEN,  BADLEN,  BADLEN,   T23_U8,  T23_U16, T23_U32, T23_U64, T23_UF8, T23_UF16, T23_UF32, T23_UF64 }, "-wp0#",     "i",  NULL },
!   { "u",   0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM, BADLEN,  BADLEN,  BADLEN,   T23_U8,  T23_U16, T23_U32, T23_U64, T23_UF8, T23_UF16, T23_UF32, T23_UF64 }, "-wp0'I",    "i",  NULL },
!   { "fgG", 0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN,  T23_D32, T23_D64, T23_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp0 +#'I", "",   NULL },
!   { "eE",  0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN,  T23_D32, T23_D64, T23_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp0 +#I",  "",   NULL },
    { "c",   0, STD_C89, { T89_I,   BADLEN,  BADLEN,  T94_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-w",        "",   NULL },
    { "s",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp",       "cR", NULL },
    { "p",   1, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-w",        "c",  NULL },
!   { "n",   1, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  BADLEN,  T99_SST, T99_PD,  T99_IM,  BADLEN,  BADLEN,  BADLEN,   T23_I8,  T23_I16, T23_I32, T23_I64, T23_IF8, T23_IF16, T23_IF32, T23_IF64 }, "",          "W",  NULL },
    /* C99 conversion specifiers.  */
!   { "F",   0, STD_C99, { T99_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN,  T23_D32, T23_D64, T23_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp0 +#'I", "",   NULL },
!   { "aA",  0, STD_C99, { T99_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN,  T23_D32, T23_D64, T23_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp0 +#",   "",   NULL },
!   /* C23 conversion specifiers.  */
!   { "bB",  0, STD_C23, { T23_UI,  T23_UC,  T23_US,  T23_UL,  T23_ULL, TEX_ULL, T23_ST,  T23_UPD, T23_UIM, BADLEN,  BADLEN,  BADLEN,   T23_U8,  T23_U16, T23_U32, T23_U64, T23_UF8, T23_UF16, T23_UF32, T23_UF64 }, "-wp0#",     "i",  NULL },
    /* X/Open conversion specifiers.  */
    { "C",   0, STD_EXT, { TEX_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-w",        "",   NULL },
    { "S",   1, STD_EXT, { TEX_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp",       "R",  NULL },
    /* GNU conversion specifiers.  */
    { "m",   0, STD_EXT, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "-wp",       "",   NULL },
    { NULL,  0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
  };
  
*************** static const format_char_info asm_fprint
*** 759,767 ****
     by all pretty_printer instances within GCC.  */
  
  #define PP_FORMAT_CHAR_TABLE \
!   { "di",  0, STD_C89, { T89_I,   BADLEN,  BADLEN,  T89_L,   T9L_LL,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "",   NULL }, \
!   { "ox",  0, STD_C89, { T89_UI,  BADLEN,  BADLEN,  T89_UL,  T9L_ULL, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "",   NULL }, \
!   { "u",   0, STD_C89, { T89_UI,  BADLEN,  BADLEN,  T89_UL,  T9L_ULL, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "",   NULL }, \
    { "c",   0, STD_C89, { T89_I,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "",   NULL }, \
    { "s",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "pq", "cR", NULL }, \
    { "p",   1, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "c",  NULL }, \
--- 760,768 ----
     by all pretty_printer instances within GCC.  */
  
  #define PP_FORMAT_CHAR_TABLE \
!   { "di",  0, STD_C89, { T89_I,   BADLEN,  BADLEN,  T89_L,   T9L_LL,  BADLEN,  T99_SST, T99_PD,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "",   NULL }, \
!   { "ox",  0, STD_C89, { T89_UI,  BADLEN,  BADLEN,  T89_UL,  T9L_ULL, BADLEN,  T99_ST,  T99_UPD, BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "",   NULL }, \
!   { "u",   0, STD_C89, { T89_UI,  BADLEN,  BADLEN,  T89_UL,  T9L_ULL, BADLEN,  T99_ST,  T99_UPD, BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "",   NULL }, \
    { "c",   0, STD_C89, { T89_I,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "",   NULL }, \
    { "s",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "pq", "cR", NULL }, \
    { "p",   1, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q",  "c",  NULL }, \
*************** static const format_char_info gcc_cxxdia
*** 834,841 ****
  static const format_char_info gcc_gfc_char_table[] =
  {
    /* C89 conversion specifiers.  */
!   { "di",  0, STD_C89, { T89_I,   BADLEN,  BADLEN,  T89_L,   T9L_LL,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN, BADLEN }, "q", "", NULL },
!   { "u",   0, STD_C89, { T89_UI,  BADLEN,  BADLEN,  T89_UL,  T9L_ULL,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN, BADLEN  }, "q", "", NULL },
    { "c",   0, STD_C89, { T89_I,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN, BADLEN }, "q", "", NULL },
    { "s",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN, BADLEN }, "q", "cR", NULL },
  
--- 835,842 ----
  static const format_char_info gcc_gfc_char_table[] =
  {
    /* C89 conversion specifiers.  */
!   { "di",  0, STD_C89, { T89_I,   BADLEN,  BADLEN,  T89_L,   T9L_LL,  BADLEN,  T99_SST, T99_PD,  BADLEN, BADLEN, BADLEN, BADLEN }, "q", "", NULL },
!   { "u",   0, STD_C89, { T89_UI,  BADLEN,  BADLEN,  T89_UL,  T9L_ULL, BADLEN,  T99_ST,  T99_UPD, BADLEN, BADLEN, BADLEN, BADLEN  }, "q", "", NULL },
    { "c",   0, STD_C89, { T89_I,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN, BADLEN }, "q", "", NULL },
    { "s",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN, BADLEN }, "q", "cR", NULL },
  
*************** static const format_char_info gcc_dump_p
*** 876,895 ****
  static const format_char_info scan_char_table[] =
  {
    /* C89 conversion specifiers.  */
!   { "di",    1, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM,  BADLEN,  BADLEN,  BADLEN,   T2X_I8,  T2X_I16, T2X_I32, T2X_I64, T2X_IF8, T2X_IF16, T2X_IF32, T2X_IF64 }, "*w'I", "W",   NULL },
!   { "u",     1, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM, BADLEN,  BADLEN,  BADLEN,   T2X_U8,  T2X_U16, T2X_U32, T2X_U64, T2X_UF8, T2X_UF16, T2X_UF32, T2X_UF64 }, "*w'I", "W",   NULL },
!   { "oxX",   1, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM, BADLEN,  BADLEN,  BADLEN,   T2X_U8,  T2X_U16, T2X_U32, T2X_U64, T2X_UF8, T2X_UF16, T2X_UF32, T2X_UF64 }, "*w",   "W",   NULL },
!   { "efgEG", 1, STD_C89, { T89_F,   BADLEN,  BADLEN,  T89_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN,  T2X_D32, T2X_D64, T2X_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*w'",  "W",   NULL },
    { "c",     1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*mw",   "cW",  NULL },
    { "s",     1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*amw",  "cW",  NULL },
    { "[",     1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*amw",  "cW[", NULL },
    { "p",     2, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*w",   "W",   NULL },
!   { "n",     1, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  BADLEN,  T99_SST, T99_PD,  T99_IM,  BADLEN,  BADLEN,  BADLEN,   T2X_I8,  T2X_I16, T2X_I32, T2X_I64, T2X_IF8, T2X_IF16, T2X_IF32, T2X_IF64 }, "",     "W",   NULL },
    /* C99 conversion specifiers.  */
!   { "F",   1, STD_C99,   { T99_F,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN,  T2X_D32, T2X_D64, T2X_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*w'",  "W",   NULL },
!   { "aA",   1, STD_C99,  { T99_F,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN,  T2X_D32, T2X_D64, T2X_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*w'",  "W",   NULL },
!   /* C2X conversion specifiers.  */
!   { "b",     1, STD_C2X, { T2X_UI,  T2X_UC,  T2X_US,  T2X_UL,  T2X_ULL, TEX_ULL, T2X_ST,  T2X_UPD, T2X_UIM, BADLEN,  BADLEN,  BADLEN,   T2X_U8,  T2X_U16, T2X_U32, T2X_U64, T2X_UF8, T2X_UF16, T2X_UF32, T2X_UF64 }, "*w",   "W",   NULL },
    /* X/Open conversion specifiers.  */
    { "C",     1, STD_EXT, { TEX_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*mw",   "W",   NULL },
    { "S",     1, STD_EXT, { TEX_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*amw",  "W",   NULL },
--- 877,896 ----
  static const format_char_info scan_char_table[] =
  {
    /* C89 conversion specifiers.  */
!   { "di",    1, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM,  BADLEN,  BADLEN,  BADLEN,   T23_I8,  T23_I16, T23_I32, T23_I64, T23_IF8, T23_IF16, T23_IF32, T23_IF64 }, "*w'I", "W",   NULL },
!   { "u",     1, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM, BADLEN,  BADLEN,  BADLEN,   T23_U8,  T23_U16, T23_U32, T23_U64, T23_UF8, T23_UF16, T23_UF32, T23_UF64 }, "*w'I", "W",   NULL },
!   { "oxX",   1, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM, BADLEN,  BADLEN,  BADLEN,   T23_U8,  T23_U16, T23_U32, T23_U64, T23_UF8, T23_UF16, T23_UF32, T23_UF64 }, "*w",   "W",   NULL },
!   { "efgEG", 1, STD_C89, { T89_F,   BADLEN,  BADLEN,  T89_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN,  T23_D32, T23_D64, T23_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*w'",  "W",   NULL },
    { "c",     1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*mw",   "cW",  NULL },
    { "s",     1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*amw",  "cW",  NULL },
    { "[",     1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*amw",  "cW[", NULL },
    { "p",     2, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*w",   "W",   NULL },
!   { "n",     1, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  BADLEN,  T99_SST, T99_PD,  T99_IM,  BADLEN,  BADLEN,  BADLEN,   T23_I8,  T23_I16, T23_I32, T23_I64, T23_IF8, T23_IF16, T23_IF32, T23_IF64 }, "",     "W",   NULL },
    /* C99 conversion specifiers.  */
!   { "F",   1, STD_C99,   { T99_F,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN,  T23_D32, T23_D64, T23_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*w'",  "W",   NULL },
!   { "aA",   1, STD_C99,  { T99_F,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN,  T23_D32, T23_D64, T23_D128, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*w'",  "W",   NULL },
!   /* C23 conversion specifiers.  */
!   { "b",     1, STD_C23, { T23_UI,  T23_UC,  T23_US,  T23_UL,  T23_ULL, TEX_ULL, T23_ST,  T23_UPD, T23_UIM, BADLEN,  BADLEN,  BADLEN,   T23_U8,  T23_U16, T23_U32, T23_U64, T23_UF8, T23_UF16, T23_UF32, T23_UF64 }, "*w",   "W",   NULL },
    /* X/Open conversion specifiers.  */
    { "C",     1, STD_EXT, { TEX_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*mw",   "W",   NULL },
    { "S",     1, STD_EXT, { TEX_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,   BADLEN,   BADLEN }, "*amw",  "W",   NULL },
*************** check_function_format (const_tree fn, tr
*** 1176,1181 ****
--- 1177,1183 ----
    tree a;
  
    tree atname = get_identifier ("format");
+   bool skipped_default_format = false;
  
    /* See if this function has any format attributes.  */
    for (a = attrs; a; a = TREE_CHAIN (a))
*************** check_function_format (const_tree fn, tr
*** 1186,1191 ****
--- 1188,1225 ----
  	  function_format_info info;
  	  decode_format_attr (fn, atname, TREE_VALUE (a), &info,
  			      /*validated=*/true);
+ 
+ 	  /* Mingw32 targets have traditionally used ms_printf format for the
+ 	     printf function, and this format is built in GCC. But nowadays,
+ 	     if mingw-w64 is configured to target UCRT, the printf function
+ 	     uses the gnu_printf format (specified in the stdio.h header). This
+ 	     causes GCC to check both formats, which means that GCC would
+ 	     warn twice about the same issue when both formats are violated,
+ 	     e.g. for %lu used to print long long unsigned.
+ 
+ 	     Hence, if there is a built-in attribute specifier and at least
+ 	     one another, we skip the built-in one. See PR 95130 (but note that
+ 	     GCC ms_printf already supports %llu) and PR 92292.  */
+ 
+ 	  if (!skipped_default_format
+ 	      && fn
+ 	      && TREE_CODE (fn) == FUNCTION_DECL
+ 	      && fndecl_built_in_p (fn, BUILT_IN_NORMAL)
+ 	      && (tree_to_uhwi (TREE_PURPOSE (TREE_VALUE (a)))
+ 	          & (int) ATTR_FLAG_BUILT_IN))
+ 	    {
+ 	      tree aa;
+ 	      for (aa = attrs; aa; aa = TREE_CHAIN (aa))
+ 		if (a != aa
+ 		    && is_attribute_p ("format", get_attribute_name (aa)))
+ 		  {
+ 		    skipped_default_format = true;
+ 		    break;
+ 		  }
+ 	       if (skipped_default_format)
+ 		 continue;
+ 	    }
+ 
  	  if (warn_format)
  	    {
  	      /* FIXME: Rewrite all the internal functions in this file
*************** read_any_format_width (tree &params,
*** 2293,2305 ****
      {
        /* Possibly read a numeric width.  If the width is zero,
  	 we complain if appropriate.  */
!       int non_zero_width_char = FALSE;
!       int found_width = FALSE;
        while (ISDIGIT (*format_chars))
  	{
! 	  found_width = TRUE;
  	  if (*format_chars != '0')
! 	    non_zero_width_char = TRUE;
  	  ++format_chars;
  	}
        if (found_width && !non_zero_width_char &&
--- 2327,2339 ----
      {
        /* Possibly read a numeric width.  If the width is zero,
  	 we complain if appropriate.  */
!       int non_zero_width_char = false;
!       int found_width = false;
        while (ISDIGIT (*format_chars))
  	{
! 	  found_width = true;
  	  if (*format_chars != '0')
! 	    non_zero_width_char = true;
  	  ++format_chars;
  	}
        if (found_width && !non_zero_width_char &&
*************** get_corrected_substring (const substring
*** 4538,4544 ****
    if (caret.column > finish.column)
      return NULL;
  
!   char_span line = location_get_source_line (start.file, start.line);
    if (!line)
      return NULL;
  
--- 4572,4579 ----
    if (caret.column > finish.column)
      return NULL;
  
!   char_span line
!     = global_dc->get_file_cache ().get_source_line (start.file, start.line);
    if (!line)
      return NULL;
  
*************** handle_format_attribute (tree node[3], t
*** 5191,5196 ****
--- 5226,5234 ----
    if (TREE_CODE (TREE_VALUE (args)) == IDENTIFIER_NODE)
      TREE_VALUE (args) = canonicalize_attr_name (TREE_VALUE (args));
  
+   /* record the flags for check_function_format */
+   TREE_PURPOSE (args) = build_int_cst (unsigned_type_node, flags);
+ 
    if (!decode_format_attr (fndecl ? fndecl : type, atname, args, &info,
  			   /* validated_p = */false))
      {
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-format.h gcc-14.1.0/gcc/c-family/c-format.h
*** gcc-13.2.0/gcc/c-family/c-format.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-format.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum format_std_version
*** 56,62 ****
    STD_C94,
    STD_C9L, /* C99, but treat as C89 if -Wno-long-long.  */
    STD_C99,
!   STD_C2X,
    STD_EXT
  };
  
--- 56,62 ----
    STD_C94,
    STD_C9L, /* C99, but treat as C89 if -Wno-long-long.  */
    STD_C99,
!   STD_C23,
    STD_EXT
  };
  
*************** struct format_char_info
*** 158,164 ****
       two digit year formats, "3" for strftime formats giving two digit
       years in some locales, "4" for "2" which becomes "3" with an "E" modifier,
       "o" if use of strftime "O" is a GNU extension beyond C99,
!      "p" if use of strftime "O" is a C2x feature,
       "W" if the argument is a pointer which is dereferenced and written into,
       "R" if the argument is a pointer which is dereferenced and read from,
       "i" for printf integer formats where the '0' flag is ignored with
--- 158,164 ----
       two digit year formats, "3" for strftime formats giving two digit
       years in some locales, "4" for "2" which becomes "3" with an "E" modifier,
       "o" if use of strftime "O" is a GNU extension beyond C99,
!      "p" if use of strftime "O" is a C23 feature,
       "W" if the argument is a pointer which is dereferenced and written into,
       "R" if the argument is a pointer which is dereferenced and read from,
       "i" for printf integer formats where the '0' flag is ignored with
*************** struct format_kind_info
*** 286,302 ****
  #define T89_S	{ STD_C89, NULL, T_S }
  #define T_UI	&unsigned_type_node
  #define T89_UI	{ STD_C89, NULL, T_UI }
! #define T2X_UI	{ STD_C2X, NULL, T_UI }
  #define T_UL	&long_unsigned_type_node
  #define T89_UL	{ STD_C89, NULL, T_UL }
! #define T2X_UL	{ STD_C2X, NULL, T_UL }
  #define T_ULL	&long_long_unsigned_type_node
  #define T9L_ULL	{ STD_C9L, NULL, T_ULL }
! #define T2X_ULL	{ STD_C2X, NULL, T_ULL }
  #define TEX_ULL	{ STD_EXT, NULL, T_ULL }
  #define T_US	&short_unsigned_type_node
  #define T89_US	{ STD_C89, NULL, T_US }
! #define T2X_US	{ STD_C2X, NULL, T_US }
  #define T_F	&float_type_node
  #define T89_F	{ STD_C89, NULL, T_F }
  #define T99_F	{ STD_C99, NULL, T_F }
--- 286,302 ----
  #define T89_S	{ STD_C89, NULL, T_S }
  #define T_UI	&unsigned_type_node
  #define T89_UI	{ STD_C89, NULL, T_UI }
! #define T23_UI	{ STD_C23, NULL, T_UI }
  #define T_UL	&long_unsigned_type_node
  #define T89_UL	{ STD_C89, NULL, T_UL }
! #define T23_UL	{ STD_C23, NULL, T_UL }
  #define T_ULL	&long_long_unsigned_type_node
  #define T9L_ULL	{ STD_C9L, NULL, T_ULL }
! #define T23_ULL	{ STD_C23, NULL, T_ULL }
  #define TEX_ULL	{ STD_EXT, NULL, T_ULL }
  #define T_US	&short_unsigned_type_node
  #define T89_US	{ STD_C89, NULL, T_US }
! #define T23_US	{ STD_C23, NULL, T_US }
  #define T_F	&float_type_node
  #define T89_F	{ STD_C89, NULL, T_F }
  #define T99_F	{ STD_C99, NULL, T_F }
*************** struct format_kind_info
*** 312,318 ****
  #define T99_SC	{ STD_C99, NULL, T_SC }
  #define T_UC	&unsigned_char_type_node
  #define T99_UC	{ STD_C99, NULL, T_UC }
! #define T2X_UC	{ STD_C2X, NULL, T_UC }
  #define T_V	&void_type_node
  #define T89_G   { STD_C89, NULL, &local_gimple_ptr_node }
  #define T_CGRAPH_NODE   { STD_C89, NULL, &local_cgraph_node_ptr_node }
--- 312,318 ----
  #define T99_SC	{ STD_C99, NULL, T_SC }
  #define T_UC	&unsigned_char_type_node
  #define T99_UC	{ STD_C99, NULL, T_UC }
! #define T23_UC	{ STD_C23, NULL, T_UC }
  #define T_V	&void_type_node
  #define T89_G   { STD_C89, NULL, &local_gimple_ptr_node }
  #define T_CGRAPH_NODE   { STD_C89, NULL, &local_cgraph_node_ptr_node }
*************** struct format_kind_info
*** 327,383 ****
  #define TEX_WI	{ STD_EXT, "wint_t", T_WI }
  #define T_ST    &size_type_node
  #define T99_ST	{ STD_C99, "size_t", T_ST }
! #define T2X_ST	{ STD_C2X, "size_t", T_ST }
  #define T_SST   &signed_size_type_node
  #define T99_SST	{ STD_C99, "signed size_t", T_SST }
  #define T_PD    &ptrdiff_type_node
  #define T99_PD	{ STD_C99, "ptrdiff_t", T_PD }
  #define T_UPD   &unsigned_ptrdiff_type_node
  #define T99_UPD	{ STD_C99, "unsigned ptrdiff_t", T_UPD }
! #define T2X_UPD	{ STD_C2X, "unsigned ptrdiff_t", T_UPD }
  #define T_IM    &intmax_type_node
  #define T99_IM	{ STD_C99, "intmax_t", T_IM }
  #define T_UIM   &uintmax_type_node
  #define T99_UIM	{ STD_C99, "uintmax_t", T_UIM }
! #define T2X_UIM	{ STD_C2X, "uintmax_t", T_UIM }
  #define T_D32   &dfloat32_type_node
! #define T2X_D32 { STD_C2X, "_Decimal32", T_D32 }
  #define T_D64   &dfloat64_type_node
! #define T2X_D64 { STD_C2X, "_Decimal64", T_D64 }
  #define T_D128  &dfloat128_type_node
! #define T2X_D128 { STD_C2X, "_Decimal128", T_D128 }
  #define T_I8	&int_least8_type_node
! #define T2X_I8	{ STD_C2X, "int_least8_t", T_I8 }
  #define T_I16	&int_least16_type_node
! #define T2X_I16	{ STD_C2X, "int_least16_t", T_I16 }
  #define T_I32	&int_least32_type_node
! #define T2X_I32	{ STD_C2X, "int_least32_t", T_I32 }
  #define T_I64	&int_least64_type_node
! #define T2X_I64	{ STD_C2X, "int_least64_t", T_I64 }
  #define T_U8	&uint_least8_type_node
! #define T2X_U8	{ STD_C2X, "uint_least8_t", T_U8 }
  #define T_U16	&uint_least16_type_node
! #define T2X_U16	{ STD_C2X, "uint_least16_t", T_U16 }
  #define T_U32	&uint_least32_type_node
! #define T2X_U32	{ STD_C2X, "uint_least32_t", T_U32 }
  #define T_U64	&uint_least64_type_node
! #define T2X_U64	{ STD_C2X, "uint_least64_t", T_U64 }
  #define T_IF8	&int_fast8_type_node
! #define T2X_IF8	{ STD_C2X, "int_fast8_t", T_IF8 }
  #define T_IF16	&int_fast16_type_node
! #define T2X_IF16 { STD_C2X, "int_fast16_t", T_IF16 }
  #define T_IF32	&int_fast32_type_node
! #define T2X_IF32 { STD_C2X, "int_fast32_t", T_IF32 }
  #define T_IF64	&int_fast64_type_node
! #define T2X_IF64 { STD_C2X, "int_fast64_t", T_IF64 }
  #define T_UF8	&uint_fast8_type_node
! #define T2X_UF8	{ STD_C2X, "uint_fast8_t", T_UF8 }
  #define T_UF16	&uint_fast16_type_node
! #define T2X_UF16 { STD_C2X, "uint_fast16_t", T_UF16 }
  #define T_UF32	&uint_fast32_type_node
! #define T2X_UF32 { STD_C2X, "uint_fast32_t", T_UF32 }
  #define T_UF64	&uint_fast64_type_node
! #define T2X_UF64 { STD_C2X, "uint_fast64_t", T_UF64 }
  
  /* Structure describing how format attributes such as "printf" are
     interpreted as "gnu_printf" or "ms_printf" on a particular system.
--- 327,383 ----
  #define TEX_WI	{ STD_EXT, "wint_t", T_WI }
  #define T_ST    &size_type_node
  #define T99_ST	{ STD_C99, "size_t", T_ST }
! #define T23_ST	{ STD_C23, "size_t", T_ST }
  #define T_SST   &signed_size_type_node
  #define T99_SST	{ STD_C99, "signed size_t", T_SST }
  #define T_PD    &ptrdiff_type_node
  #define T99_PD	{ STD_C99, "ptrdiff_t", T_PD }
  #define T_UPD   &unsigned_ptrdiff_type_node
  #define T99_UPD	{ STD_C99, "unsigned ptrdiff_t", T_UPD }
! #define T23_UPD	{ STD_C23, "unsigned ptrdiff_t", T_UPD }
  #define T_IM    &intmax_type_node
  #define T99_IM	{ STD_C99, "intmax_t", T_IM }
  #define T_UIM   &uintmax_type_node
  #define T99_UIM	{ STD_C99, "uintmax_t", T_UIM }
! #define T23_UIM	{ STD_C23, "uintmax_t", T_UIM }
  #define T_D32   &dfloat32_type_node
! #define T23_D32 { STD_C23, "_Decimal32", T_D32 }
  #define T_D64   &dfloat64_type_node
! #define T23_D64 { STD_C23, "_Decimal64", T_D64 }
  #define T_D128  &dfloat128_type_node
! #define T23_D128 { STD_C23, "_Decimal128", T_D128 }
  #define T_I8	&int_least8_type_node
! #define T23_I8	{ STD_C23, "int_least8_t", T_I8 }
  #define T_I16	&int_least16_type_node
! #define T23_I16	{ STD_C23, "int_least16_t", T_I16 }
  #define T_I32	&int_least32_type_node
! #define T23_I32	{ STD_C23, "int_least32_t", T_I32 }
  #define T_I64	&int_least64_type_node
! #define T23_I64	{ STD_C23, "int_least64_t", T_I64 }
  #define T_U8	&uint_least8_type_node
! #define T23_U8	{ STD_C23, "uint_least8_t", T_U8 }
  #define T_U16	&uint_least16_type_node
! #define T23_U16	{ STD_C23, "uint_least16_t", T_U16 }
  #define T_U32	&uint_least32_type_node
! #define T23_U32	{ STD_C23, "uint_least32_t", T_U32 }
  #define T_U64	&uint_least64_type_node
! #define T23_U64	{ STD_C23, "uint_least64_t", T_U64 }
  #define T_IF8	&int_fast8_type_node
! #define T23_IF8	{ STD_C23, "int_fast8_t", T_IF8 }
  #define T_IF16	&int_fast16_type_node
! #define T23_IF16 { STD_C23, "int_fast16_t", T_IF16 }
  #define T_IF32	&int_fast32_type_node
! #define T23_IF32 { STD_C23, "int_fast32_t", T_IF32 }
  #define T_IF64	&int_fast64_type_node
! #define T23_IF64 { STD_C23, "int_fast64_t", T_IF64 }
  #define T_UF8	&uint_fast8_type_node
! #define T23_UF8	{ STD_C23, "uint_fast8_t", T_UF8 }
  #define T_UF16	&uint_fast16_type_node
! #define T23_UF16 { STD_C23, "uint_fast16_t", T_UF16 }
  #define T_UF32	&uint_fast32_type_node
! #define T23_UF32 { STD_C23, "uint_fast32_t", T_UF32 }
  #define T_UF64	&uint_fast64_type_node
! #define T23_UF64 { STD_C23, "uint_fast64_t", T_UF64 }
  
  /* Structure describing how format attributes such as "printf" are
     interpreted as "gnu_printf" or "ms_printf" on a particular system.
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-gimplify.cc gcc-14.1.0/gcc/c-family/c-gimplify.cc
*** gcc-13.2.0/gcc/c-family/c-gimplify.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-gimplify.cc	Tue May  7 06:51:37 2024
***************
*** 2,8 ****
     by the C-based front ends.  The structure of gimplified, or
     language-independent, trees is dictated by the grammar described in this
     file.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Lowering of expressions contributed by Sebastian Pop <s.pop@laposte.net>
     Re-written to support lowering of whole function trees, documentation
     and miscellaneous cleanups by Diego Novillo <dnovillo@redhat.com>
--- 2,8 ----
     by the C-based front ends.  The structure of gimplified, or
     language-independent, trees is dictated by the grammar described in this
     file.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Lowering of expressions contributed by Sebastian Pop <s.pop@laposte.net>
     Re-written to support lowering of whole function trees, documentation
     and miscellaneous cleanups by Diego Novillo <dnovillo@redhat.com>
*************** along with GCC; see the file COPYING3.
*** 41,46 ****
--- 41,48 ----
  #include "c-ubsan.h"
  #include "tree-nested.h"
  #include "context.h"
+ #include "tree-pass.h"
+ #include "internal-fn.h"
  
  /*  The gimplification pass converts the language-dependent trees
      (ld-trees) emitted by the parser into language-independent trees
*************** genericize_c_loop (tree *stmt_p, locatio
*** 305,310 ****
--- 307,333 ----
      }
  
    append_to_statement_list (body, &stmt_list);
+   if (c_dialect_cxx ()
+       && stmt_list
+       && TREE_CODE (stmt_list) == STATEMENT_LIST)
+     {
+       tree_stmt_iterator tsi = tsi_last (stmt_list);
+       if (!tsi_end_p (tsi))
+ 	{
+ 	  tree t = *tsi;
+ 	  while (TREE_CODE (t) == CLEANUP_POINT_EXPR
+ 		 || TREE_CODE (t) == EXPR_STMT
+ 		 || CONVERT_EXPR_CODE_P (TREE_CODE (t)))
+ 	    t = TREE_OPERAND (t, 0);
+ 	  /* For C++, if iteration statement body ends with fallthrough
+ 	     statement, mark it such that we diagnose it even if next
+ 	     statement would be labeled statement with case/default label.  */
+ 	  if (TREE_CODE (t) == CALL_EXPR
+ 	      && !CALL_EXPR_FN (t)
+ 	      && CALL_EXPR_IFN (t) == IFN_FALLTHROUGH)
+ 	    TREE_NOTHROW (t) = 1;
+ 	}
+     }
    finish_bc_block (&stmt_list, bc_continue, clab);
    if (incr)
      {
*************** c_build_bind_expr (location_t loc, tree
*** 686,691 ****
--- 709,722 ----
    return bind;
  }
  
+ /* Helper for c_gimplify_expr: test if target supports fma-like FN.  */
+ 
+ static bool
+ fma_supported_p (enum internal_fn fn, tree type)
+ {
+   return direct_internal_fn_supported_p (fn, type, OPTIMIZE_FOR_BOTH);
+ }
+ 
  /* Gimplification of expression trees.  */
  
  /* Do C-specific gimplification on *EXPR_P.  PRE_P and POST_P are as in
*************** c_gimplify_expr (tree *expr_p, gimple_se
*** 738,743 ****
--- 769,865 ----
  	  }
  	break;
        }
+ 
+     case PLUS_EXPR:
+     case MINUS_EXPR:
+       {
+ 	tree type = TREE_TYPE (*expr_p);
+ 	/* For -ffp-contract=on we need to attempt FMA contraction only
+ 	   during initial gimplification.  Late contraction across statement
+ 	   boundaries would violate language semantics.  */
+ 	if (SCALAR_FLOAT_TYPE_P (type)
+ 	    && flag_fp_contract_mode == FP_CONTRACT_ON
+ 	    && cfun && !(cfun->curr_properties & PROP_gimple_any)
+ 	    && fma_supported_p (IFN_FMA, type))
+ 	  {
+ 	    bool neg_mul = false, neg_add = code == MINUS_EXPR;
+ 
+ 	    tree *op0_p = &TREE_OPERAND (*expr_p, 0);
+ 	    tree *op1_p = &TREE_OPERAND (*expr_p, 1);
+ 
+ 	    /* Look for ±(x * y) ± z, swapping operands if necessary.  */
+ 	    if (TREE_CODE (*op0_p) == NEGATE_EXPR
+ 		&& TREE_CODE (TREE_OPERAND (*op0_p, 0)) == MULT_EXPR)
+ 	      /* '*EXPR_P' is '-(x * y) ± z'.  This is fine.  */;
+ 	    else if (TREE_CODE (*op0_p) != MULT_EXPR)
+ 	      {
+ 		std::swap (op0_p, op1_p);
+ 		std::swap (neg_mul, neg_add);
+ 	      }
+ 	    if (TREE_CODE (*op0_p) == NEGATE_EXPR)
+ 	      {
+ 		op0_p = &TREE_OPERAND (*op0_p, 0);
+ 		neg_mul = !neg_mul;
+ 	      }
+ 	    if (TREE_CODE (*op0_p) != MULT_EXPR)
+ 	      break;
+ 	    auto_vec<tree, 3> ops (3);
+ 	    ops.quick_push (TREE_OPERAND (*op0_p, 0));
+ 	    ops.quick_push (TREE_OPERAND (*op0_p, 1));
+ 	    ops.quick_push (*op1_p);
+ 
+ 	    enum internal_fn ifn = IFN_FMA;
+ 	    if (neg_mul)
+ 	      {
+ 		if (fma_supported_p (IFN_FNMA, type))
+ 		  ifn = IFN_FNMA;
+ 		else
+ 		  ops[0] = build1 (NEGATE_EXPR, type, ops[0]);
+ 	      }
+ 	    if (neg_add)
+ 	      {
+ 		enum internal_fn ifn2 = ifn == IFN_FMA ? IFN_FMS : IFN_FNMS;
+ 		if (fma_supported_p (ifn2, type))
+ 		  ifn = ifn2;
+ 		else
+ 		  ops[2] = build1 (NEGATE_EXPR, type, ops[2]);
+ 	      }
+ 	    /* Avoid gimplify_arg: it emits all side effects into *PRE_P.  */
+ 	    for (auto &&op : ops)
+ 	      if (gimplify_expr (&op, pre_p, post_p, is_gimple_val, fb_rvalue)
+ 		  == GS_ERROR)
+ 		return GS_ERROR;
+ 
+ 	    gcall *call = gimple_build_call_internal_vec (ifn, ops);
+ 	    gimple_seq_add_stmt_without_update (pre_p, call);
+ 	    *expr_p = create_tmp_var (type);
+ 	    gimple_call_set_lhs (call, *expr_p);
+ 	    return GS_ALL_DONE;
+ 	  }
+ 	break;
+       }
+ 
+     case CALL_EXPR:
+       {
+ 	tree fndecl = get_callee_fndecl (*expr_p);
+ 	if (fndecl
+ 	    && fndecl_built_in_p (fndecl, BUILT_IN_CLZG, BUILT_IN_CTZG)
+ 	    && call_expr_nargs (*expr_p) == 2
+ 	    && TREE_CODE (CALL_EXPR_ARG (*expr_p, 1)) != INTEGER_CST)
+ 	  {
+ 	    tree a = save_expr (CALL_EXPR_ARG (*expr_p, 0));
+ 	    tree c = build_call_expr_loc (EXPR_LOCATION (*expr_p),
+ 					  fndecl, 1, a);
+ 	    *expr_p = build3_loc (EXPR_LOCATION (*expr_p), COND_EXPR,
+ 				  integer_type_node,
+ 				  build2_loc (EXPR_LOCATION (*expr_p),
+ 					      NE_EXPR, boolean_type_node, a,
+ 					      build_zero_cst (TREE_TYPE (a))),
+ 				  c, CALL_EXPR_ARG (*expr_p, 1));
+ 	    return GS_OK;
+ 	  }
+ 	break;
+       }
  
      default:;
      }
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-indentation.cc gcc-14.1.0/gcc/c-family/c-indentation.cc
*** gcc-13.2.0/gcc/c-family/c-indentation.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-indentation.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Implementation of -Wmisleading-indentation
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Implementation of -Wmisleading-indentation
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** next_tab_stop (unsigned int vis_column,
*** 45,56 ****
     on the line (up to or before EXPLOC).  */
  
  static bool
! get_visual_column (expanded_location exploc,
  		   unsigned int *out,
  		   unsigned int *first_nws,
  		   unsigned int tab_width)
  {
!   char_span line = location_get_source_line (exploc.file, exploc.line);
    if (!line)
      return false;
    if ((size_t)exploc.column > line.length ())
--- 45,57 ----
     on the line (up to or before EXPLOC).  */
  
  static bool
! get_visual_column (file_cache &fc,
! 		   expanded_location exploc,
  		   unsigned int *out,
  		   unsigned int *first_nws,
  		   unsigned int tab_width)
  {
!   char_span line = fc.get_source_line (exploc.file, exploc.line);
    if (!line)
      return false;
    if ((size_t)exploc.column > line.length ())
*************** get_visual_column (expanded_location exp
*** 87,99 ****
     Otherwise, return false, leaving *FIRST_NWS untouched.  */
  
  static bool
! get_first_nws_vis_column (const char *file, int line_num,
  			  unsigned int *first_nws,
  			  unsigned int tab_width)
  {
    gcc_assert (first_nws);
  
!   char_span line = location_get_source_line (file, line_num);
    if (!line)
      return false;
    unsigned int vis_column = 0;
--- 88,101 ----
     Otherwise, return false, leaving *FIRST_NWS untouched.  */
  
  static bool
! get_first_nws_vis_column (file_cache &fc,
! 			  const char *file, int line_num,
  			  unsigned int *first_nws,
  			  unsigned int tab_width)
  {
    gcc_assert (first_nws);
  
!   char_span line = fc.get_source_line (file, line_num);
    if (!line)
      return false;
    unsigned int vis_column = 0;
*************** get_first_nws_vis_column (const char *fi
*** 158,164 ****
     Return true if such an unindent/outdent is detected.  */
  
  static bool
! detect_intervening_unindent (const char *file,
  			     int body_line,
  			     int next_stmt_line,
  			     unsigned int vis_column,
--- 160,167 ----
     Return true if such an unindent/outdent is detected.  */
  
  static bool
! detect_intervening_unindent (file_cache &fc,
! 			     const char *file,
  			     int body_line,
  			     int next_stmt_line,
  			     unsigned int vis_column,
*************** detect_intervening_unindent (const char
*** 170,176 ****
    for (int line = body_line + 1; line < next_stmt_line; line++)
      {
        unsigned int line_vis_column;
!       if (get_first_nws_vis_column (file, line, &line_vis_column, tab_width))
  	if (line_vis_column < vis_column)
  	  return true;
      }
--- 173,179 ----
    for (int line = body_line + 1; line < next_stmt_line; line++)
      {
        unsigned int line_vis_column;
!       if (get_first_nws_vis_column (fc, file, line, &line_vis_column, tab_width))
  	if (line_vis_column < vis_column)
  	  return true;
      }
*************** should_warn_for_misleading_indentation (
*** 331,342 ****
    if (guard_loc == body_loc || body_loc == next_stmt_loc)
      return false;
  
!   const unsigned int tab_width = global_dc->tabstop;
  
    /* They must be in the same file.  */
    if (next_stmt_exploc.file != body_exploc.file)
      return false;
  
    /* If NEXT_STMT_LOC and BODY_LOC are on the same line, consider
       the location of the guard.
  
--- 334,347 ----
    if (guard_loc == body_loc || body_loc == next_stmt_loc)
      return false;
  
!   const unsigned int tab_width = global_dc->m_tabstop;
  
    /* They must be in the same file.  */
    if (next_stmt_exploc.file != body_exploc.file)
      return false;
  
+   file_cache &fc = global_dc->get_file_cache ();
+ 
    /* If NEXT_STMT_LOC and BODY_LOC are on the same line, consider
       the location of the guard.
  
*************** should_warn_for_misleading_indentation (
*** 376,382 ****
  	  gcc_assert (guard_exploc.line == next_stmt_exploc.line);
  	  unsigned int guard_vis_column;
  	  unsigned int guard_line_first_nws;
! 	  if (!get_visual_column (guard_exploc,
  				  &guard_vis_column,
  				  &guard_line_first_nws, tab_width))
  	    return false;
--- 381,388 ----
  	  gcc_assert (guard_exploc.line == next_stmt_exploc.line);
  	  unsigned int guard_vis_column;
  	  unsigned int guard_line_first_nws;
! 	  if (!get_visual_column (fc,
! 				  guard_exploc,
  				  &guard_vis_column,
  				  &guard_line_first_nws, tab_width))
  	    return false;
*************** should_warn_for_misleading_indentation (
*** 436,450 ****
  	 the case for input files containing #line directives, and these
  	 are often for autogenerated sources (e.g. from .md files), where
  	 it's not clear that it's meaningful to look at indentation.  */
!       if (!get_visual_column (next_stmt_exploc,
  			      &next_stmt_vis_column,
  			      &next_stmt_line_first_nws, tab_width))
  	return false;
!       if (!get_visual_column (body_exploc,
  			      &body_vis_column,
  			      &body_line_first_nws, tab_width))
  	return false;
!       if (!get_visual_column (guard_exploc,
  			      &guard_vis_column,
  			      &guard_line_first_nws, tab_width))
  	return false;
--- 442,459 ----
  	 the case for input files containing #line directives, and these
  	 are often for autogenerated sources (e.g. from .md files), where
  	 it's not clear that it's meaningful to look at indentation.  */
!       if (!get_visual_column (fc,
! 			      next_stmt_exploc,
  			      &next_stmt_vis_column,
  			      &next_stmt_line_first_nws, tab_width))
  	return false;
!       if (!get_visual_column (fc,
! 			      body_exploc,
  			      &body_vis_column,
  			      &body_line_first_nws, tab_width))
  	return false;
!       if (!get_visual_column (fc,
! 			      guard_exploc,
  			      &guard_vis_column,
  			      &guard_line_first_nws, tab_width))
  	return false;
*************** should_warn_for_misleading_indentation (
*** 528,534 ****
  
  	  /* Don't warn if there is an unindent between the two statements. */
  	  int vis_column = MIN (next_stmt_vis_column, body_vis_column);
! 	  if (detect_intervening_unindent (body_exploc.file, body_exploc.line,
  					   next_stmt_exploc.line,
  					   vis_column, tab_width))
  	    return false;
--- 537,544 ----
  
  	  /* Don't warn if there is an unindent between the two statements. */
  	  int vis_column = MIN (next_stmt_vis_column, body_vis_column);
! 	  if (detect_intervening_unindent (fc,
! 					   body_exploc.file, body_exploc.line,
  					   next_stmt_exploc.line,
  					   vis_column, tab_width))
  	    return false;
*************** test_next_tab_stop ()
*** 686,691 ****
--- 696,702 ----
  
  static void
  assert_get_visual_column_succeeds (const location &loc,
+ 				   file_cache &fc,
  				   const char *file, int line, int column,
  				   const unsigned int tab_width,
  				   unsigned int expected_visual_column,
*************** assert_get_visual_column_succeeds (const
*** 699,705 ****
    exploc.sysp = false;
    unsigned int actual_visual_column;
    unsigned int actual_first_nws;
!   bool result = get_visual_column (exploc,
  				   &actual_visual_column,
  				   &actual_first_nws, tab_width);
    ASSERT_TRUE_AT (loc, result);
--- 710,717 ----
    exploc.sysp = false;
    unsigned int actual_visual_column;
    unsigned int actual_first_nws;
!   bool result = get_visual_column (fc,
! 				   exploc,
  				   &actual_visual_column,
  				   &actual_first_nws, tab_width);
    ASSERT_TRUE_AT (loc, result);
*************** assert_get_visual_column_succeeds (const
*** 710,721 ****
  /* Verify that the given call to get_visual_column succeeds, with
     the given results.  */
  
! #define ASSERT_GET_VISUAL_COLUMN_SUCCEEDS(FILENAME, LINE, COLUMN,	\
  					  TAB_WIDTH,			\
  					  EXPECTED_VISUAL_COLUMN,	\
  					  EXPECTED_FIRST_NWS)		\
    SELFTEST_BEGIN_STMT							\
      assert_get_visual_column_succeeds (SELFTEST_LOCATION,		\
  				       FILENAME, LINE, COLUMN,		\
  				       TAB_WIDTH,			\
  				       EXPECTED_VISUAL_COLUMN,		\
--- 722,735 ----
  /* Verify that the given call to get_visual_column succeeds, with
     the given results.  */
  
! #define ASSERT_GET_VISUAL_COLUMN_SUCCEEDS(FILE_CACHE,			\
! 					  FILENAME, LINE, COLUMN,	\
  					  TAB_WIDTH,			\
  					  EXPECTED_VISUAL_COLUMN,	\
  					  EXPECTED_FIRST_NWS)		\
    SELFTEST_BEGIN_STMT							\
      assert_get_visual_column_succeeds (SELFTEST_LOCATION,		\
+ 				       FILE_CACHE,			\
  				       FILENAME, LINE, COLUMN,		\
  				       TAB_WIDTH,			\
  				       EXPECTED_VISUAL_COLUMN,		\
*************** assert_get_visual_column_succeeds (const
*** 726,731 ****
--- 740,746 ----
  
  static void
  assert_get_visual_column_fails (const location &loc,
+ 				file_cache &fc,
  				const char *file, int line, int column,
  				const unsigned int tab_width)
  {
*************** assert_get_visual_column_fails (const lo
*** 737,743 ****
    exploc.sysp = false;
    unsigned int actual_visual_column;
    unsigned int actual_first_nws;
!   bool result = get_visual_column (exploc,
  				   &actual_visual_column,
  				   &actual_first_nws, tab_width);
    ASSERT_FALSE_AT (loc, result);
--- 752,759 ----
    exploc.sysp = false;
    unsigned int actual_visual_column;
    unsigned int actual_first_nws;
!   bool result = get_visual_column (fc,
! 				   exploc,
  				   &actual_visual_column,
  				   &actual_first_nws, tab_width);
    ASSERT_FALSE_AT (loc, result);
*************** assert_get_visual_column_fails (const lo
*** 745,754 ****
  
  /* Verify that the given call to get_visual_column fails gracefully.  */
  
! #define ASSERT_GET_VISUAL_COLUMN_FAILS(FILENAME, LINE, COLUMN,	\
  				       TAB_WIDTH)		\
    SELFTEST_BEGIN_STMT						\
      assert_get_visual_column_fails (SELFTEST_LOCATION,		\
  				    FILENAME, LINE, COLUMN,	\
  				    TAB_WIDTH);		\
    SELFTEST_END_STMT
--- 761,772 ----
  
  /* Verify that the given call to get_visual_column fails gracefully.  */
  
! #define ASSERT_GET_VISUAL_COLUMN_FAILS(FILE_CACHE,		\
! 				       FILENAME, LINE, COLUMN,	\
  				       TAB_WIDTH)		\
    SELFTEST_BEGIN_STMT						\
      assert_get_visual_column_fails (SELFTEST_LOCATION,		\
+ 				    FILE_CACHE,			\
  				    FILENAME, LINE, COLUMN,	\
  				    TAB_WIDTH);		\
    SELFTEST_END_STMT
*************** test_get_visual_column ()
*** 770,775 ****
--- 788,794 ----
  			 "\t line 2\n");
    line_table_test ltt;
    temp_source_file tmp (SELFTEST_LOCATION, ".txt", content);
+   file_cache fc;
  
    const unsigned int tab_width = 8;
    const char *file = tmp.get_filename ();
*************** test_get_visual_column ()
*** 777,803 ****
    /* Line 1 (space-based indentation).  */
    {
      const int line = 1;
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 1, tab_width, 0, 0);
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 2, tab_width, 1, 1);
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 3, tab_width, 2, 2);
      /* first_nws should have stopped increasing.  */
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 4, tab_width, 3, 2);
      /* Verify the end-of-line boundary.  */
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 8, tab_width, 7, 2);
!     ASSERT_GET_VISUAL_COLUMN_FAILS (file, line, 9, tab_width);
    }
  
    /* Line 2 (tab-based indentation).  */
    {
      const int line = 2;
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 1, tab_width, 0, 0);
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 2, tab_width, 8, 8);
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 3, tab_width, 9, 9);
      /* first_nws should have stopped increasing.  */
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 4, tab_width, 10, 9);
      /* Verify the end-of-line boundary.  */
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (file, line, 8, tab_width, 14, 9);
!     ASSERT_GET_VISUAL_COLUMN_FAILS (file, line, 9, tab_width);
    }
  }
  
--- 796,822 ----
    /* Line 1 (space-based indentation).  */
    {
      const int line = 1;
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 1, tab_width, 0, 0);
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 2, tab_width, 1, 1);
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 3, tab_width, 2, 2);
      /* first_nws should have stopped increasing.  */
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 4, tab_width, 3, 2);
      /* Verify the end-of-line boundary.  */
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 8, tab_width, 7, 2);
!     ASSERT_GET_VISUAL_COLUMN_FAILS (fc, file, line, 9, tab_width);
    }
  
    /* Line 2 (tab-based indentation).  */
    {
      const int line = 2;
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 1, tab_width, 0, 0);
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 2, tab_width, 8, 8);
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 3, tab_width, 9, 9);
      /* first_nws should have stopped increasing.  */
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 4, tab_width, 10, 9);
      /* Verify the end-of-line boundary.  */
!     ASSERT_GET_VISUAL_COLUMN_SUCCEEDS (fc, file, line, 8, tab_width, 14, 9);
!     ASSERT_GET_VISUAL_COLUMN_FAILS (fc, file, line, 9, tab_width);
    }
  }
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-indentation.h gcc-14.1.0/gcc/c-family/c-indentation.h
*** gcc-13.2.0/gcc/c-family/c-indentation.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-indentation.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for c-indentation.cc.
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for c-indentation.cc.
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-lex.cc gcc-14.1.0/gcc/c-family/c-lex.cc
*** gcc-13.2.0/gcc/c-family/c-lex.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-lex.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Mainly the interface between cpplib and the C front ends.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Mainly the interface between cpplib and the C front ends.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 31,36 ****
--- 31,37 ----
  #include "file-prefix-map.h" /* remap_macro_filename()  */
  #include "langhooks.h"
  #include "attribs.h"
+ #include "rich-location.h"
  
  /* We may keep statistics about how long which files took to compile.  */
  static int header_time, body_time;
*************** init_c_lex (void)
*** 82,87 ****
--- 83,89 ----
    cb->read_pch = c_common_read_pch;
    cb->has_attribute = c_common_has_attribute;
    cb->has_builtin = c_common_has_builtin;
+   cb->has_feature = c_common_has_feature;
    cb->get_source_date_epoch = cb_get_source_date_epoch;
    cb->get_suggestion = cb_get_suggestion;
    cb->remap_filename = remap_macro_filename;
*************** cb_def_pragma (cpp_reader *pfile, locati
*** 249,254 ****
--- 251,260 ----
        location_t fe_loc = loc;
  
        space = name = (const unsigned char *) "";
+ 
+       /* N.B.  It's fine to call cpp_get_token () directly here (rather than our
+ 	 local wrapper get_token ()), because this callback is not used with
+ 	 flag_preprocess_only==true.  */
        s = cpp_get_token (pfile);
        if (s->type != CPP_EOF)
  	{
*************** cb_undef (cpp_reader *pfile, location_t
*** 284,291 ****
  			 (const char *) NODE_NAME (node));
  }
  
  /* Wrapper around cpp_get_token to skip CPP_PADDING tokens
!    and not consume CPP_EOF.  */
  static const cpp_token *
  get_token_no_padding (cpp_reader *pfile)
  {
--- 290,321 ----
  			 (const char *) NODE_NAME (node));
  }
  
+ /* Wrapper around cpp_get_token_with_location to stream the token to the
+    preprocessor so it can output it.  This is necessary with
+    flag_preprocess_only if we are obtaining tokens here instead of from the loop
+    in c-ppoutput.cc, such as while processing a #pragma.  */
+ 
+ static const cpp_token *
+ get_token (cpp_reader *pfile, location_t *loc = nullptr)
+ {
+   if (flag_preprocess_only)
+     {
+       location_t x;
+       if (!loc)
+ 	loc = &x;
+       const auto tok = cpp_get_token_with_location (pfile, loc);
+       c_pp_stream_token (pfile, tok, *loc);
+       return tok;
+     }
+   else
+     return cpp_get_token_with_location (pfile, loc);
+ }
+ 
  /* Wrapper around cpp_get_token to skip CPP_PADDING tokens
!    and not consume CPP_EOF.  This does not perform the optional
!    streaming in preprocess_only mode, so is suitable to be used
!    when processing builtin expansions such as c_common_has_attribute.  */
! 
  static const cpp_token *
  get_token_no_padding (cpp_reader *pfile)
  {
*************** c_common_has_attribute (cpp_reader *pfil
*** 327,333 ****
        do
  	nxt_token = cpp_peek_token (pfile, idx++);
        while (nxt_token->type == CPP_PADDING);
!       if (nxt_token->type == CPP_SCOPE)
  	{
  	  have_scope = true;
  	  get_token_no_padding (pfile); // Eat scope.
--- 357,383 ----
        do
  	nxt_token = cpp_peek_token (pfile, idx++);
        while (nxt_token->type == CPP_PADDING);
!       if (!c_dialect_cxx ()
! 	  && nxt_token->type == CPP_COLON
! 	  && (nxt_token->flags & COLON_SCOPE) != 0)
! 	{
! 	  const cpp_token *prev_token = nxt_token;
! 	  do
! 	    nxt_token = cpp_peek_token (pfile, idx++);
! 	  while (nxt_token->type == CPP_PADDING);
! 	  if (nxt_token->type == CPP_COLON)
! 	    {
! 	      /* __has_attribute (vendor::attr) in -std=c17 etc. modes.
! 		 :: isn't CPP_SCOPE but 2 CPP_COLON tokens, where the
! 		 first one should have COLON_SCOPE flag to distinguish
! 		 it from : :.  */
! 	      have_scope = true;
! 	      get_token_no_padding (pfile); // Eat first colon.
! 	    }
! 	  else
! 	    nxt_token = prev_token;
! 	}
!       if (nxt_token->type == CPP_SCOPE || have_scope)
  	{
  	  have_scope = true;
  	  get_token_no_padding (pfile); // Eat scope.
*************** c_common_has_attribute (cpp_reader *pfil
*** 339,353 ****
  		= get_identifier ((const char *)
  				  cpp_token_as_text (pfile, nxt_token));
  	      attr_id = canonicalize_attr_name (attr_id);
! 	      if (c_dialect_cxx ())
! 		{
! 		  /* OpenMP attributes need special handling.  */
! 		  if ((flag_openmp || flag_openmp_simd)
! 		      && is_attribute_p ("omp", attr_ns)
! 		      && (is_attribute_p ("directive", attr_id)
! 			  || is_attribute_p ("sequence", attr_id)))
! 		    result = 1;
! 		}
  	      if (result)
  		attr_name = NULL_TREE;
  	      else
--- 389,401 ----
  		= get_identifier ((const char *)
  				  cpp_token_as_text (pfile, nxt_token));
  	      attr_id = canonicalize_attr_name (attr_id);
! 	      /* OpenMP attributes need special handling.  */
! 	      if ((flag_openmp || flag_openmp_simd)
! 		  && is_attribute_p ("omp", attr_ns)
! 		  && (is_attribute_p ("directive", attr_id)
! 		      || is_attribute_p ("sequence", attr_id)
! 		      || is_attribute_p ("decl", attr_id)))
! 		result = 1;
  	      if (result)
  		attr_name = NULL_TREE;
  	      else
*************** c_common_has_attribute (cpp_reader *pfil
*** 392,408 ****
  	    }
  	  else
  	    {
! 	      if (is_attribute_p ("deprecated", attr_name))
! 		result = 201904;
! 	      else if (is_attribute_p ("fallthrough", attr_name))
! 		result = 201910;
! 	      else if (is_attribute_p ("nodiscard", attr_name))
! 		result = 202003;
! 	      else if (is_attribute_p ("maybe_unused", attr_name))
! 		result = 202106;
! 	      else if (is_attribute_p ("noreturn", attr_name)
! 		       || is_attribute_p ("_Noreturn", attr_name))
! 		result = 202202;
  	    }
  	  if (result)
  	    attr_name = NULL_TREE;
--- 440,452 ----
  	    }
  	  else
  	    {
! 	      if (is_attribute_p ("deprecated", attr_name)
! 		  || is_attribute_p ("fallthrough", attr_name)
! 		  || is_attribute_p ("maybe_unused", attr_name)
! 		  || is_attribute_p ("nodiscard", attr_name)
! 		  || is_attribute_p ("noreturn", attr_name)
! 		  || is_attribute_p ("_Noreturn", attr_name))
! 		result = 202311;
  	    }
  	  if (result)
  	    attr_name = NULL_TREE;
*************** c_common_has_attribute (cpp_reader *pfil
*** 429,444 ****
    return result;
  }
  
! /* Callback for has_builtin.  */
  
! int
! c_common_has_builtin (cpp_reader *pfile)
  {
    const cpp_token *token = get_token_no_padding (pfile);
    if (token->type != CPP_OPEN_PAREN)
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "missing '(' after \"__has_builtin\"");
        return 0;
      }
  
--- 473,488 ----
    return result;
  }
  
! /* Helper for __has_{builtin,feature,extension}.  */
  
! static const char *
! c_common_lex_availability_macro (cpp_reader *pfile, const char *builtin)
  {
    const cpp_token *token = get_token_no_padding (pfile);
    if (token->type != CPP_OPEN_PAREN)
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "missing '(' after \"__has_%s\"", builtin);
        return 0;
      }
  
*************** c_common_has_builtin (cpp_reader *pfile)
*** 458,464 ****
    else
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "macro \"__has_builtin\" requires an identifier");
        if (token->type == CPP_CLOSE_PAREN)
  	return 0;
      }
--- 502,508 ----
    else
      {
        cpp_error (pfile, CPP_DL_ERROR,
! 		 "macro \"__has_%s\" requires an identifier", builtin);
        if (token->type == CPP_CLOSE_PAREN)
  	return 0;
      }
*************** c_common_has_builtin (cpp_reader *pfile)
*** 477,485 ****
--- 521,558 ----
  	break;
      }
  
+   return name;
+ }
+ 
+ /* Callback for has_builtin.  */
+ 
+ int
+ c_common_has_builtin (cpp_reader *pfile)
+ {
+   const char *name = c_common_lex_availability_macro (pfile, "builtin");
+   if (!name)
+     return 0;
+ 
    return names_builtin_p (name);
  }
  
+ /* Callback for has_feature.  STRICT_P is true for has_feature and false
+    for has_extension.  */
+ 
+ int
+ c_common_has_feature (cpp_reader *pfile, bool strict_p)
+ {
+   const char *builtin = strict_p ? "feature" : "extension";
+   const char *name = c_common_lex_availability_macro (pfile, builtin);
+   if (!name)
+     return 0;
+ 
+   /* If -pedantic-errors is given, __has_extension is equivalent to
+      __has_feature.  */
+   strict_p |= flag_pedantic_errors;
+   return has_feature_p (name, strict_p);
+ }
+ 
  
  /* Read a token and return its type.  Fill *VALUE with its value, if
     applicable.  Fill *CPP_FLAGS with the token's flags, if it is
*************** c_lex_with_flags (tree *value, location_
*** 496,502 ****
  
    timevar_push (TV_CPP);
   retry:
!   tok = cpp_get_token_with_location (parse_in, loc);
    type = tok->type;
  
   retry_after_at:
--- 569,575 ----
  
    timevar_push (TV_CPP);
   retry:
!   tok = get_token (parse_in, loc);
    type = tok->type;
  
   retry_after_at:
*************** c_lex_with_flags (tree *value, location_
*** 570,576 ****
  	  location_t newloc;
  
  	retry_at:
! 	  tok = cpp_get_token_with_location (parse_in, &newloc);
  	  type = tok->type;
  	  switch (type)
  	    {
--- 643,649 ----
  	  location_t newloc;
  
  	retry_at:
! 	  tok = get_token (parse_in, &newloc);
  	  type = tok->type;
  	  switch (type)
  	    {
*************** c_lex_with_flags (tree *value, location_
*** 720,726 ****
  	{
  	  do
  	    {
! 	      tok = cpp_get_token_with_location (parse_in, loc);
  	      type = tok->type;
  	    }
  	  while (type == CPP_PADDING || type == CPP_COMMENT);
--- 793,799 ----
  	{
  	  do
  	    {
! 	      tok = get_token (parse_in, loc);
  	      type = tok->type;
  	    }
  	  while (type == CPP_PADDING || type == CPP_COMMENT);
*************** interpret_integer (const cpp_token *toke
*** 813,818 ****
--- 886,1055 ----
  
    *overflow = OT_NONE;
  
+   if (UNLIKELY (flags & CPP_N_BITINT))
+     {
+       unsigned int suffix_len = 2 + ((flags & CPP_N_UNSIGNED) ? 1 : 0);
+       int max_bits_per_digit = 4; // ceil (log2 (10))
+       unsigned int prefix_len = 0;
+       bool hex = false;
+       const int bitint_maxwidth = WIDE_INT_MAX_PRECISION - 1;
+       if ((flags & CPP_N_RADIX) == CPP_N_OCTAL)
+ 	{
+ 	  max_bits_per_digit = 3;
+ 	  prefix_len = 1;
+ 	}
+       else if ((flags & CPP_N_RADIX) == CPP_N_HEX)
+ 	{
+ 	  max_bits_per_digit = 4;
+ 	  prefix_len = 2;
+ 	  hex = true;
+ 	}
+       else if ((flags & CPP_N_RADIX) == CPP_N_BINARY)
+ 	{
+ 	  max_bits_per_digit = 1;
+ 	  prefix_len = 2;
+ 	}
+       int max_digits
+ 	= TYPE_PRECISION (intmax_type_node) >> max_bits_per_digit;
+       const int max_buf = 128;
+       if (max_digits > max_buf)
+ 	max_digits = max_buf;
+ 
+       widest_int wval;
+       unsigned int prec;
+       gcc_checking_assert (token->val.str.len > prefix_len + suffix_len
+ 			   || token->val.str.len == 1 + suffix_len);
+       if (token->val.str.len - (prefix_len + suffix_len)
+ 	  <= (unsigned) max_digits)
+ 	{
+ 	  integer = cpp_interpret_integer (parse_in, token,
+ 					   (flags & CPP_N_RADIX)
+ 					   | CPP_N_UNSIGNED);
+ 	  ival[0] = integer.low;
+ 	  ival[1] = integer.high;
+ 	  ival[2] = 0;
+ 	  wval = widest_int::from_array (ival, 3);
+ 	}
+       else
+ 	{
+ 	  unsigned char buf[3 + max_buf];
+ 	  memcpy (buf, token->val.str.text, prefix_len);
+ 	  wval = 0U;
+ 	  const unsigned char *p = token->val.str.text + prefix_len;
+ 	  cpp_token tok = *token;
+ 	  tok.val.str.text = buf;
+ 	  if (!prefix_len)
+ 	    max_digits = 19;
+ 	  do
+ 	    {
+ 	      unsigned char *q = buf + prefix_len;
+ 	      do
+ 		{
+ 		  unsigned char c = *p++;
+ 		  if (ISDIGIT (c) || (hex && ISXDIGIT (c)))
+ 		    {
+ 		      *q++ = c;
+ 		      if (q == buf + prefix_len + max_digits)
+ 			break;
+ 		    }
+ 		  else if (c != '\'')
+ 		    {
+ 		      --p;
+ 		      break;
+ 		    }
+ 		}
+ 	      while (1);
+ 	      if (q == buf + prefix_len)
+ 		break;
+ 	      else
+ 		{
+ 		  wi::overflow_type wioverflow;
+ 		  *q = '\0';
+ 		  tok.val.str.len = q - buf;
+ 		  if (wval == 0)
+ 		    ;
+ 		  else if (prefix_len)
+ 		    {
+ 		      prec = wi::min_precision (wval, UNSIGNED);
+ 		      unsigned HOST_WIDE_INT shift
+ 			= (tok.val.str.len - prefix_len) * max_bits_per_digit;
+ 		      if (prec + shift > bitint_maxwidth)
+ 			goto bitint_overflow;
+ 		      wval = wi::lshift (wval, shift);
+ 		    }
+ 		  else
+ 		    {
+ 		      static unsigned HOST_WIDE_INT tens[]
+ 			= { 1U, 10U, 100U, 1000U,
+ 			    HOST_WIDE_INT_UC (10000),
+ 			    HOST_WIDE_INT_UC (100000),
+ 			    HOST_WIDE_INT_UC (1000000),
+ 			    HOST_WIDE_INT_UC (10000000),
+ 			    HOST_WIDE_INT_UC (100000000),
+ 			    HOST_WIDE_INT_UC (1000000000),
+ 			    HOST_WIDE_INT_UC (10000000000),
+ 			    HOST_WIDE_INT_UC (100000000000),
+ 			    HOST_WIDE_INT_UC (1000000000000),
+ 			    HOST_WIDE_INT_UC (10000000000000),
+ 			    HOST_WIDE_INT_UC (100000000000000),
+ 			    HOST_WIDE_INT_UC (1000000000000000),
+ 			    HOST_WIDE_INT_UC (10000000000000000),
+ 			    HOST_WIDE_INT_UC (100000000000000000),
+ 			    HOST_WIDE_INT_UC (1000000000000000000),
+ 			    HOST_WIDE_INT_UC (10000000000000000000) };
+ 		      widest_int ten = tens[q - buf];
+ 		      wval = wi::umul (wval, ten, &wioverflow);
+ 		      if (wioverflow)
+ 			goto bitint_overflow;
+ 		    }
+ 		  integer = cpp_interpret_integer (parse_in, &tok,
+ 						   (flags & CPP_N_RADIX)
+ 						   | CPP_N_UNSIGNED);
+ 		  ival[0] = integer.low;
+ 		  ival[1] = integer.high;
+ 		  ival[2] = 0;
+ 		  if (prefix_len)
+ 		    wval = wval + widest_int::from_array (ival, 3);
+ 		  else
+ 		    {
+ 		      widest_int addend = widest_int::from_array (ival, 3);
+ 		      wval = wi::add (wval, addend, UNSIGNED, &wioverflow);
+ 		      if (wioverflow)
+ 			goto bitint_overflow;
+ 		    }
+ 		}
+ 	    }
+ 	  while (1);
+ 	}
+ 
+       prec = wi::min_precision (wval, UNSIGNED);
+       if (prec == 0)
+ 	prec = 1;
+       if ((flags & CPP_N_UNSIGNED) == 0)
+ 	++prec;
+       if (prec > bitint_maxwidth)
+ 	{
+ 	bitint_overflow:
+ 	  if ((flags & CPP_N_UNSIGNED) != 0)
+ 	    error ("integer constant is too large for "
+ 		   "%<unsigned _BitInt(%d)%> type", bitint_maxwidth);
+ 	  else
+ 	    error ("integer constant is too large for "
+ 		   "%<_BitInt(%d)%> type", bitint_maxwidth);
+ 	  return integer_zero_node;
+ 	}
+ 
+       struct bitint_info info;
+       if (!targetm.c.bitint_type_info (prec, &info))
+ 	{
+ 	  sorry ("%<_BitInt(%d)%> is not supported on this target", prec);
+ 	  return integer_zero_node;
+ 	}
+ 
+       type = build_bitint_type (prec, (flags & CPP_N_UNSIGNED) != 0);
+       return wide_int_to_tree (type, wval);
+     }
+ 
    integer = cpp_interpret_integer (parse_in, token, flags);
    if (integer.overflow)
      *overflow = OT_OVERFLOW;
*************** interpret_float (const cpp_token *token,
*** 997,1003 ****
  	    error ("unsupported non-standard suffix on floating constant");
  	    return error_mark_node;
  	  }
! 	else if (c_dialect_cxx () && !extended)
  	  {
  	    if (cxx_dialect < cxx23)
  	      pedwarn (input_location, OPT_Wpedantic,
--- 1234,1258 ----
  	    error ("unsupported non-standard suffix on floating constant");
  	    return error_mark_node;
  	  }
! 	else if (!c_dialect_cxx ())
! 	  {
! 	    if (warn_c11_c23_compat > 0)
! 	      {
! 		if (pedantic && !flag_isoc23)
! 		  pedwarn (input_location, OPT_Wc11_c23_compat,
! 			   "non-standard suffix on floating constant "
! 			   "before C23");
! 		else
! 		  warning (OPT_Wc11_c23_compat,
! 			   "non-standard suffix on floating constant "
! 			   "before C23");
! 	      }
! 	    else if (warn_c11_c23_compat != 0 && pedantic && !flag_isoc23)
! 	      pedwarn (input_location, OPT_Wpedantic,
! 		       "non-standard suffix on floating constant "
! 		       "before C23");
! 	  }
! 	else if (!extended)
  	  {
  	    if (cxx_dialect < cxx23)
  	      pedwarn (input_location, OPT_Wpedantic,
*************** interpret_float (const cpp_token *token,
*** 1067,1073 ****
      }
  
    copy = (char *) alloca (copylen + 1);
!   if (c_dialect_cxx () ? cxx_dialect > cxx11 : flag_isoc2x)
      {
        size_t maxlen = 0;
        for (size_t i = 0; i < copylen; ++i)
--- 1322,1328 ----
      }
  
    copy = (char *) alloca (copylen + 1);
!   if (c_dialect_cxx () ? cxx_dialect > cxx11 : flag_isoc23)
      {
        size_t maxlen = 0;
        for (size_t i = 0; i < copylen; ++i)
*************** lex_string (const cpp_token *tok, tree *
*** 1312,1318 ****
    bool objc_at_sign_was_seen = false;
  
   retry:
!   tok = cpp_get_token (parse_in);
    switch (tok->type)
      {
      case CPP_PADDING:
--- 1567,1573 ----
    bool objc_at_sign_was_seen = false;
  
   retry:
!   tok = get_token (parse_in);
    switch (tok->type)
      {
      case CPP_PADDING:
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-objc.h gcc-14.1.0/gcc/c-family/c-objc.h
*** gcc-13.2.0/gcc/c-family/c-objc.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-objc.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of Objective-C front-end entry points used for C and C++.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions of Objective-C front-end entry points used for C and C++.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-omp.cc gcc-14.1.0/gcc/c-family/c-omp.cc
*** gcc-13.2.0/gcc/c-family/c-omp.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-omp.cc	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* This file contains routines to construct OpenACC and OpenMP constructs,
     called from parsing in the C and C++ front ends.
  
!    Copyright (C) 2005-2023 Free Software Foundation, Inc.
     Contributed by Richard Henderson <rth@redhat.com>,
  		  Diego Novillo <dnovillo@redhat.com>.
  
--- 1,7 ----
  /* This file contains routines to construct OpenACC and OpenMP constructs,
     called from parsing in the C and C++ front ends.
  
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
     Contributed by Richard Henderson <rth@redhat.com>,
  		  Diego Novillo <dnovillo@redhat.com>.
  
*************** along with GCC; see the file COPYING3.
*** 36,41 ****
--- 36,42 ----
  #include "gimplify.h"
  #include "langhooks.h"
  #include "bitmap.h"
+ #include "tree-iterator.h"
  
  
  /* Complete a #pragma oacc wait construct.  LOC is the location of
*************** c_omp_depend_t_p (tree type)
*** 674,681 ****
  	  && ((TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
  	       ? DECL_NAME (TYPE_NAME (type)) : TYPE_NAME (type))
  	      == get_identifier ("omp_depend_t"))
! 	  && (!TYPE_CONTEXT (type)
! 	      || TREE_CODE (TYPE_CONTEXT (type)) == TRANSLATION_UNIT_DECL)
  	  && COMPLETE_TYPE_P (type)
  	  && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
  	  && !compare_tree_int (TYPE_SIZE (type),
--- 675,681 ----
  	  && ((TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
  	       ? DECL_NAME (TYPE_NAME (type)) : TYPE_NAME (type))
  	      == get_identifier ("omp_depend_t"))
! 	  && TYPE_FILE_SCOPE_P (type)
  	  && COMPLETE_TYPE_P (type)
  	  && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
  	  && !compare_tree_int (TYPE_SIZE (type),
*************** c_omp_check_loop_iv_exprs (location_t st
*** 1729,1734 ****
--- 1729,1911 ----
    return !data.fail;
  }
  
+ 
+ /* Helper function for c_omp_check_loop_binding_exprs: look for a binding
+    of DECL in BODY.  Only traverse things that might be containers for
+    intervening code in an OMP loop.  Returns the BIND_EXPR or DECL_EXPR
+    if found, otherwise null.  */
+ 
+ static tree
+ find_binding_in_body (tree decl, tree body)
+ {
+   if (!body)
+     return NULL_TREE;
+ 
+   switch (TREE_CODE (body))
+     {
+     case BIND_EXPR:
+       for (tree b = BIND_EXPR_VARS (body); b; b = DECL_CHAIN (b))
+ 	if (b == decl)
+ 	  return body;
+       return find_binding_in_body (decl, BIND_EXPR_BODY (body));
+ 
+     case DECL_EXPR:
+       if (DECL_EXPR_DECL (body) == decl)
+ 	return body;
+       return NULL_TREE;
+ 
+     case STATEMENT_LIST:
+       for (tree_stmt_iterator si = tsi_start (body); !tsi_end_p (si);
+ 	   tsi_next (&si))
+ 	{
+ 	  tree b = find_binding_in_body (decl, tsi_stmt (si));
+ 	  if (b)
+ 	    return b;
+ 	}
+       return NULL_TREE;
+ 
+     case OMP_STRUCTURED_BLOCK:
+       return find_binding_in_body (decl, OMP_BODY (body));
+ 
+     default:
+       return NULL_TREE;
+     }
+ }
+ 
+ /* Traversal function for check_loop_binding_expr, to diagnose
+    errors when a binding made in intervening code is referenced outside
+    of the loop.  Returns non-null if such a reference is found.  DATA points
+    to the tree containing the loop body.  */
+ 
+ static tree
+ check_loop_binding_expr_r (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED,
+ 			   void *data)
+ {
+   tree body = *(tree *)data;
+ 
+   if (DECL_P (*tp) && find_binding_in_body (*tp, body))
+     return *tp;
+   return NULL_TREE;
+ }
+ 
+ /* Helper macro used below.  */
+ 
+ #define LOCATION_OR(loc1, loc2) \
+   ((loc1) != UNKNOWN_LOCATION ? (loc1) : (loc2))
+ 
+ enum check_loop_binding_expr_ctx {
+   CHECK_LOOP_BINDING_EXPR_CTX_LOOP_VAR,
+   CHECK_LOOP_BINDING_EXPR_CTX_IN_INIT,
+   CHECK_LOOP_BINDING_EXPR_CTX_END_TEST,
+   CHECK_LOOP_BINDING_EXPR_CTX_INCR
+ };
+ 
+ /* Check a single expression EXPR for references to variables bound in
+    intervening code in BODY.  Return true if ok, otherwise give an error
+    referencing CONTEXT and return false.  Use LOC for the error message
+    if EXPR doesn't have one.  */
+ static bool
+ check_loop_binding_expr (tree expr, tree body, location_t loc,
+ 			 check_loop_binding_expr_ctx ctx)
+ {
+   tree bad = walk_tree (&expr, check_loop_binding_expr_r, (void *)&body, NULL);
+ 
+   if (bad)
+     {
+       location_t eloc = EXPR_LOCATION (expr);
+       eloc = LOCATION_OR (eloc, loc);
+       switch (ctx)
+ 	{
+ 	case CHECK_LOOP_BINDING_EXPR_CTX_LOOP_VAR:
+ 	  error_at (eloc, "variable %qD used as loop variable is bound "
+ 		    "in intervening code", bad);
+ 	  break;
+ 	case CHECK_LOOP_BINDING_EXPR_CTX_IN_INIT:
+ 	  error_at (eloc, "variable %qD used in initializer is bound "
+ 		    "in intervening code", bad);
+ 	  break;
+ 	case CHECK_LOOP_BINDING_EXPR_CTX_END_TEST:
+ 	  error_at (eloc, "variable %qD used in end test is bound "
+ 		    "in intervening code", bad);
+ 	  break;
+ 	case CHECK_LOOP_BINDING_EXPR_CTX_INCR:
+ 	  error_at (eloc, "variable %qD used in increment expression is bound "
+ 		    "in intervening code", bad);
+ 	  break;
+ 	}
+       return false;
+     }
+   return true;
+ }
+ 
+ /* STMT is an OMP_FOR construct.  Check all of the iteration variable,
+    initializer, end condition, and increment for bindings inside the
+    loop body.  If ORIG_INITS is provided, check those elements too.
+    Return true if OK, false otherwise.  */
+ bool
+ c_omp_check_loop_binding_exprs (tree stmt, vec<tree> *orig_inits)
+ {
+   bool ok = true;
+   location_t loc = EXPR_LOCATION (stmt);
+   tree body = OMP_FOR_BODY (stmt);
+   int orig_init_length = orig_inits ? orig_inits->length () : 0;
+ 
+   for (int i = 1; i < TREE_VEC_LENGTH (OMP_FOR_INIT (stmt)); i++)
+     {
+       tree init = TREE_VEC_ELT (OMP_FOR_INIT (stmt), i);
+       tree cond = TREE_VEC_ELT (OMP_FOR_COND (stmt), i);
+       tree incr = TREE_VEC_ELT (OMP_FOR_INCR (stmt), i);
+       gcc_assert (TREE_CODE (init) == MODIFY_EXPR);
+       tree decl = TREE_OPERAND (init, 0);
+       tree orig_init = i < orig_init_length ? (*orig_inits)[i] : NULL_TREE;
+       tree e;
+       location_t eloc;
+ 
+       e = TREE_OPERAND (init, 1);
+       eloc = LOCATION_OR (EXPR_LOCATION (init), loc);
+       if (!check_loop_binding_expr (decl, body, eloc,
+ 				    CHECK_LOOP_BINDING_EXPR_CTX_LOOP_VAR))
+ 	ok = false;
+       if (!check_loop_binding_expr (e, body, eloc,
+ 				    CHECK_LOOP_BINDING_EXPR_CTX_IN_INIT))
+ 	ok = false;
+       if (orig_init
+ 	  && !check_loop_binding_expr (orig_init, body, eloc,
+ 				       CHECK_LOOP_BINDING_EXPR_CTX_IN_INIT))
+ 	ok = false;
+ 
+       /* INCR and/or COND may be null if this is a template with a
+ 	 class iterator.  */
+       if (cond)
+ 	{
+ 	  eloc = LOCATION_OR (EXPR_LOCATION (cond), loc);
+ 	  if (COMPARISON_CLASS_P (cond) && TREE_OPERAND (cond, 0) == decl)
+ 	    e = TREE_OPERAND (cond, 1);
+ 	  else if (COMPARISON_CLASS_P (cond) && TREE_OPERAND (cond, 1) == decl)
+ 	    e = TREE_OPERAND (cond, 0);
+ 	  else
+ 	    e = cond;
+ 	  if (!check_loop_binding_expr (e, body, eloc,
+ 					CHECK_LOOP_BINDING_EXPR_CTX_END_TEST))
+ 	    ok = false;
+ 	}
+ 
+       if (incr)
+ 	{
+ 	  eloc = LOCATION_OR (EXPR_LOCATION (incr), loc);
+ 	  /* INCR should be either a MODIFY_EXPR or pre/post
+ 	     increment/decrement.  We don't have to check the latter
+ 	     since there are no operands besides the iteration variable.  */
+ 	  if (TREE_CODE (incr) == MODIFY_EXPR
+ 	      && !check_loop_binding_expr (TREE_OPERAND (incr, 1), body, eloc,
+ 					   CHECK_LOOP_BINDING_EXPR_CTX_INCR))
+ 	    ok = false;
+ 	}
+     }
+ 
+   return ok;
+ }
+ 
  /* This function splits clauses for OpenACC combined loop
     constructs.  OpenACC combined loop constructs are:
     #pragma acc kernels loop
*************** c_omp_split_clauses (location_t loc, enu
*** 2672,2678 ****
  		      if (TREE_CODE (t) == POINTER_PLUS_EXPR)
  			t = TREE_OPERAND (t, 0);
  		      if (TREE_CODE (t) == ADDR_EXPR
! 			  || TREE_CODE (t) == INDIRECT_REF)
  			t = TREE_OPERAND (t, 0);
  		      if (DECL_P (t))
  			bitmap_clear_bit (&allocate_head, DECL_UID (t));
--- 2849,2855 ----
  		      if (TREE_CODE (t) == POINTER_PLUS_EXPR)
  			t = TREE_OPERAND (t, 0);
  		      if (TREE_CODE (t) == ADDR_EXPR
! 			  || INDIRECT_REF_P (t))
  			t = TREE_OPERAND (t, 0);
  		      if (DECL_P (t))
  			bitmap_clear_bit (&allocate_head, DECL_UID (t));
*************** c_omp_split_clauses (location_t loc, enu
*** 2680,2685 ****
--- 2857,2865 ----
  		    }
  		  else if (TREE_CODE (OMP_CLAUSE_DECL (c)) == TREE_LIST)
  		    {
+ 		      /* TODO: This can go away once we transition all uses of
+ 			 TREE_LIST for representing OMP array sections to
+ 			 OMP_ARRAY_SECTION.  */
  		      tree t;
  		      for (t = OMP_CLAUSE_DECL (c);
  			   TREE_CODE (t) == TREE_LIST; t = TREE_CHAIN (t))
*************** c_omp_split_clauses (location_t loc, enu
*** 2688,2693 ****
--- 2868,2884 ----
  			bitmap_clear_bit (&allocate_head, DECL_UID (t));
  		      break;
  		    }
+ 		  else if (TREE_CODE (OMP_CLAUSE_DECL (c)) == OMP_ARRAY_SECTION)
+ 		    {
+ 		      tree t;
+ 		      for (t = OMP_CLAUSE_DECL (c);
+ 			   TREE_CODE (t) == OMP_ARRAY_SECTION;
+ 			   t = TREE_OPERAND (t, 0))
+ 			;
+ 		      if (DECL_P (t))
+ 			bitmap_clear_bit (&allocate_head, DECL_UID (t));
+ 		      break;
+ 		    }
  		  /* FALLTHRU */
  		case OMP_CLAUSE_PRIVATE:
  		case OMP_CLAUSE_FIRSTPRIVATE:
*************** struct map_clause
*** 3019,3026 ****
      decl_mapped (false), omp_declare_target (false) { }
  };
  
! /* Adjust map clauses after normal clause parsing, mainly to turn specific
!    base-pointer map cases into attach/detach and mark them addressable.  */
  void
  c_omp_adjust_map_clauses (tree clauses, bool is_target)
  {
--- 3210,3218 ----
      decl_mapped (false), omp_declare_target (false) { }
  };
  
! /* Adjust map clauses after normal clause parsing, mainly to mark specific
!    base-pointer map cases addressable that may be turned into attach/detach
!    operations during gimplification.  */
  void
  c_omp_adjust_map_clauses (tree clauses, bool is_target)
  {
*************** c_omp_adjust_map_clauses (tree clauses,
*** 3036,3042 ****
  	    && POINTER_TYPE_P (TREE_TYPE (OMP_CLAUSE_DECL (c))))
  	  {
  	    tree ptr = OMP_CLAUSE_DECL (c);
- 	    OMP_CLAUSE_SET_MAP_KIND (c, GOMP_MAP_ATTACH_DETACH);
  	    c_common_mark_addressable_vec (ptr);
  	  }
        return;
--- 3228,3233 ----
*************** c_omp_adjust_map_clauses (tree clauses,
*** 3049,3055 ****
  	&& DECL_P (OMP_CLAUSE_DECL (c)))
        {
  	/* If this is for a target construct, the firstprivate pointer
! 	   is changed to attach/detach if either is true:
  	   (1) the base-pointer is mapped in this same construct, or
  	   (2) the base-pointer is a variable place on the device by
  	       "declare target" directives.
--- 3240,3246 ----
  	&& DECL_P (OMP_CLAUSE_DECL (c)))
        {
  	/* If this is for a target construct, the firstprivate pointer
! 	   is marked addressable if either is true:
  	   (1) the base-pointer is mapped in this same construct, or
  	   (2) the base-pointer is a variable place on the device by
  	       "declare target" directives.
*************** c_omp_adjust_map_clauses (tree clauses,
*** 3091,3101 ****
  
        if (mc.firstprivate_ptr_p
  	  && (mc.decl_mapped || mc.omp_declare_target))
  	{
! 	  OMP_CLAUSE_SET_MAP_KIND (mc.clause, GOMP_MAP_ATTACH_DETACH);
! 	  c_common_mark_addressable_vec (OMP_CLAUSE_DECL (mc.clause));
  	}
      }
  }
  
  const struct c_omp_directive c_omp_directives[] = {
--- 3282,4160 ----
  
        if (mc.firstprivate_ptr_p
  	  && (mc.decl_mapped || mc.omp_declare_target))
+ 	c_common_mark_addressable_vec (OMP_CLAUSE_DECL (mc.clause));
+     }
+ }
+ 
+ /* Maybe strip off an indirection from a "converted" reference, then find the
+    origin of a pointer (i.e. without any offset).  */
+ 
+ tree
+ c_omp_address_inspector::unconverted_ref_origin ()
+ {
+   tree t = orig;
+ 
+   /* We may have a reference-typed component access at the outermost level
+      that has had convert_from_reference called on it.  Get the un-dereferenced
+      reference itself.  */
+   t = maybe_unconvert_ref (t);
+ 
+   /* Find base pointer for POINTER_PLUS_EXPR, etc.  */
+   t = get_origin (t);
+ 
+   return t;
+ }
+ 
+ /* Return TRUE if the address is a component access.  */
+ 
+ bool
+ c_omp_address_inspector::component_access_p ()
+ {
+   tree t = maybe_unconvert_ref (orig);
+ 
+   t = get_origin (t);
+ 
+   return TREE_CODE (t) == COMPONENT_REF;
+ }
+ 
+ /* Perform various checks on the address, as described by clause CLAUSE (we
+    only use its code and location here).  */
+ 
+ bool
+ c_omp_address_inspector::check_clause (tree clause)
+ {
+   tree t = unconverted_ref_origin ();
+ 
+   if (TREE_CODE (t) != COMPONENT_REF)
+     return true;
+ 
+   if (TREE_CODE (TREE_OPERAND (t, 1)) == FIELD_DECL
+       && DECL_BIT_FIELD (TREE_OPERAND (t, 1)))
+     {
+       error_at (OMP_CLAUSE_LOCATION (clause),
+ 		"bit-field %qE in %qs clause",
+ 		t, omp_clause_code_name[OMP_CLAUSE_CODE (clause)]);
+       return false;
+     }
+   else if (!processing_template_decl_p ()
+ 	   && !omp_mappable_type (TREE_TYPE (t)))
+     {
+       error_at (OMP_CLAUSE_LOCATION (clause),
+ 		"%qE does not have a mappable type in %qs clause",
+ 		t, omp_clause_code_name[OMP_CLAUSE_CODE (clause)]);
+       emit_unmappable_type_notes (TREE_TYPE (t));
+       return false;
+     }
+   else if (TREE_TYPE (t) && TYPE_ATOMIC (TREE_TYPE (t)))
+     {
+       error_at (OMP_CLAUSE_LOCATION (clause),
+ 		"%<_Atomic%> %qE in %qs clause", t,
+ 		omp_clause_code_name[OMP_CLAUSE_CODE (clause)]);
+       return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* Find the "root term" for the address.  This is the innermost decl, etc.
+    of the access.  */
+ 
+ tree
+ c_omp_address_inspector::get_root_term (bool checking)
+ {
+   if (root_term && !checking)
+     return root_term;
+ 
+   tree t = unconverted_ref_origin ();
+ 
+   while (TREE_CODE (t) == COMPONENT_REF)
+     {
+       if (checking
+ 	  && TREE_TYPE (TREE_OPERAND (t, 0))
+ 	  && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == UNION_TYPE)
  	{
! 	  error_at (loc, "%qE is a member of a union", t);
! 	  return error_mark_node;
! 	}
!       t = TREE_OPERAND (t, 0);
!       while (TREE_CODE (t) == MEM_REF
! 	     || TREE_CODE (t) == INDIRECT_REF
! 	     || TREE_CODE (t) == ARRAY_REF)
! 	{
! 	  if (TREE_CODE (t) == MEM_REF
! 	      || TREE_CODE (t) == INDIRECT_REF)
! 	    indirections = true;
! 	  t = TREE_OPERAND (t, 0);
! 	  STRIP_NOPS (t);
! 	  if (TREE_CODE (t) == POINTER_PLUS_EXPR)
! 	    t = TREE_OPERAND (t, 0);
  	}
      }
+ 
+   root_term = t;
+ 
+   return t;
+ }
+ 
+ /* Return TRUE if the address is supported in mapping clauses.  At present,
+    this means that the innermost expression is a DECL_P, but could be extended
+    to other types of expression in the future.  */
+ 
+ bool
+ c_omp_address_inspector::map_supported_p ()
+ {
+   /* If we've already decided if the mapped address is supported, return
+      that.  */
+   if (map_supported != -1)
+     return map_supported;
+ 
+   tree t = unconverted_ref_origin ();
+ 
+   STRIP_NOPS (t);
+ 
+   while (TREE_CODE (t) == INDIRECT_REF
+ 	 || TREE_CODE (t) == MEM_REF
+ 	 || TREE_CODE (t) == ARRAY_REF
+ 	 || TREE_CODE (t) == COMPONENT_REF
+ 	 || TREE_CODE (t) == COMPOUND_EXPR
+ 	 || TREE_CODE (t) == SAVE_EXPR
+ 	 || TREE_CODE (t) == POINTER_PLUS_EXPR
+ 	 || TREE_CODE (t) == NON_LVALUE_EXPR
+ 	 || TREE_CODE (t) == OMP_ARRAY_SECTION
+ 	 || TREE_CODE (t) == NOP_EXPR)
+     if (TREE_CODE (t) == COMPOUND_EXPR)
+       t = TREE_OPERAND (t, 1);
+     else
+       t = TREE_OPERAND (t, 0);
+ 
+   STRIP_NOPS (t);
+ 
+   map_supported = DECL_P (t);
+ 
+   return map_supported;
+ }
+ 
+ /* Get the origin of an address T, stripping off offsets and some other
+    bits.  */
+ 
+ tree
+ c_omp_address_inspector::get_origin (tree t)
+ {
+   while (1)
+     {
+       if (TREE_CODE (t) == COMPOUND_EXPR)
+ 	{
+ 	  t = TREE_OPERAND (t, 1);
+ 	  STRIP_NOPS (t);
+ 	}
+       else if (TREE_CODE (t) == POINTER_PLUS_EXPR
+ 	       || TREE_CODE (t) == SAVE_EXPR)
+ 	t = TREE_OPERAND (t, 0);
+       else if (!processing_template_decl_p ()
+ 	       && TREE_CODE (t) == INDIRECT_REF
+ 	       && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == REFERENCE_TYPE)
+ 	t = TREE_OPERAND (t, 0);
+       else
+ 	break;
+     }
+   STRIP_NOPS (t);
+   return t;
+ }
+ 
+ /* For an address T that might be a reference that has had
+    "convert_from_reference" called on it, return the actual reference without
+    any indirection.  */
+ 
+ tree
+ c_omp_address_inspector::maybe_unconvert_ref (tree t)
+ {
+   /* Be careful not to dereference the type if we're processing a
+      template decl, else it might be NULL.  */
+   if (!processing_template_decl_p ()
+       && TREE_CODE (t) == INDIRECT_REF
+       && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == REFERENCE_TYPE)
+     return TREE_OPERAND (t, 0);
+ 
+   return t;
+ }
+ 
+ /* Return TRUE if CLAUSE might describe a zero-length array section.  */
+ 
+ bool
+ c_omp_address_inspector::maybe_zero_length_array_section (tree clause)
+ {
+   switch (OMP_CLAUSE_MAP_KIND (clause))
+     {
+     case GOMP_MAP_ALLOC:
+     case GOMP_MAP_IF_PRESENT:
+     case GOMP_MAP_TO:
+     case GOMP_MAP_FROM:
+     case GOMP_MAP_TOFROM:
+     case GOMP_MAP_ALWAYS_TO:
+     case GOMP_MAP_ALWAYS_FROM:
+     case GOMP_MAP_ALWAYS_TOFROM:
+     case GOMP_MAP_PRESENT_ALLOC:
+     case GOMP_MAP_PRESENT_TO:
+     case GOMP_MAP_PRESENT_FROM:
+     case GOMP_MAP_PRESENT_TOFROM:
+     case GOMP_MAP_ALWAYS_PRESENT_TO:
+     case GOMP_MAP_ALWAYS_PRESENT_FROM:
+     case GOMP_MAP_ALWAYS_PRESENT_TOFROM:
+     case GOMP_MAP_RELEASE:
+     case GOMP_MAP_DELETE:
+     case GOMP_MAP_FORCE_TO:
+     case GOMP_MAP_FORCE_FROM:
+     case GOMP_MAP_FORCE_TOFROM:
+     case GOMP_MAP_FORCE_PRESENT:
+       return true;
+     default:
+       return false;
+     }
+ }
+ 
+ /* Expand a chained access.  We only expect to see a quite limited range of
+    expression types here, because e.g. you can't have an array of
+    references.  */
+ 
+ static tree
+ omp_expand_access_chain (tree c, tree expr, vec<omp_addr_token *> &addr_tokens,
+ 			 unsigned *idx, c_omp_region_type ort)
+ {
+   using namespace omp_addr_tokenizer;
+   location_t loc = OMP_CLAUSE_LOCATION (c);
+   unsigned i = *idx;
+   tree c2 = NULL_TREE;
+   gomp_map_kind kind;
+ 
+   if ((ort & C_ORT_EXIT_DATA) != 0
+       || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_FROM
+       || (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP
+ 	  && (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_FROM
+ 	      || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_DELETE
+ 	      || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_RELEASE
+ 	      || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_ALWAYS_FROM
+ 	      || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_FORCE_FROM
+ 	      || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_PRESENT_FROM
+ 	      || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_ALWAYS_PRESENT_FROM)))
+     kind = GOMP_MAP_DETACH;
+   else
+     kind = GOMP_MAP_ATTACH;
+ 
+   switch (addr_tokens[i]->u.access_kind)
+     {
+     case ACCESS_POINTER:
+     case ACCESS_POINTER_OFFSET:
+       {
+ 	tree virtual_origin
+ 	  = fold_convert_loc (loc, ptrdiff_type_node, addr_tokens[i]->expr);
+ 	tree data_addr = omp_accessed_addr (addr_tokens, i, expr);
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	OMP_CLAUSE_SET_MAP_KIND (c2, kind);
+ 	OMP_CLAUSE_DECL (c2) = addr_tokens[i]->expr;
+ 	OMP_CLAUSE_SIZE (c2)
+ 	  = fold_build2_loc (loc, MINUS_EXPR, ptrdiff_type_node,
+ 			     fold_convert_loc (loc, ptrdiff_type_node,
+ 					       data_addr),
+ 			     virtual_origin);
+       }
+       break;
+ 
+     case ACCESS_INDEXED_ARRAY:
+       break;
+ 
+     default:
+       return error_mark_node;
+     }
+ 
+   if (c2)
+     {
+       OMP_CLAUSE_CHAIN (c2) = OMP_CLAUSE_CHAIN (c);
+       OMP_CLAUSE_CHAIN (c) = c2;
+       c = c2;
+     }
+ 
+   *idx = ++i;
+ 
+   if (i < addr_tokens.length ()
+       && addr_tokens[i]->type == ACCESS_METHOD)
+     return omp_expand_access_chain (c, expr, addr_tokens, idx, ort);
+ 
+   return c;
+ }
+ 
+ /* Translate "array_base_decl access_method" to OMP mapping clauses.  */
+ 
+ tree
+ c_omp_address_inspector::expand_array_base (tree c,
+ 					    vec<omp_addr_token *> &addr_tokens,
+ 					    tree expr, unsigned *idx,
+ 					    c_omp_region_type ort)
+ {
+   using namespace omp_addr_tokenizer;
+   location_t loc = OMP_CLAUSE_LOCATION (c);
+   int i = *idx;
+   tree decl = addr_tokens[i + 1]->expr;
+   bool decl_p = DECL_P (decl);
+   bool declare_target_p = (decl_p
+ 			   && is_global_var (decl)
+ 			   && lookup_attribute ("omp declare target",
+ 						DECL_ATTRIBUTES (decl)));
+   bool map_p = OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP;
+   bool implicit_p = map_p && OMP_CLAUSE_MAP_IMPLICIT (c);
+   bool chain_p = omp_access_chain_p (addr_tokens, i + 1);
+   tree c2 = NULL_TREE, c3 = NULL_TREE;
+   unsigned consume_tokens = 2;
+   bool target_p = (ort & C_ORT_TARGET) != 0;
+   bool openmp_p = (ort & C_ORT_OMP) != 0;
+ 
+   gcc_assert (i == 0);
+ 
+   if (!openmp_p
+       && map_p
+       && (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_ATTACH
+ 	  || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_DETACH))
+     {
+       i += 2;
+       *idx = i;
+       return c;
+     }
+ 
+   switch (addr_tokens[i + 1]->u.access_kind)
+     {
+     case ACCESS_DIRECT:
+       if (decl_p && !target_p)
+ 	c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+       break;
+ 
+     case ACCESS_REF:
+       {
+ 	/* Copy the referenced object.  Note that we do this even for !MAP_P
+ 	   clauses.  */
+ 	tree obj = convert_from_reference (addr_tokens[i + 1]->expr);
+ 	if (TREE_CODE (TREE_TYPE (obj)) == ARRAY_TYPE)
+ 	  /* We have a ref to array: add a [0] element as the ME expects.  */
+ 	  OMP_CLAUSE_DECL (c) = build_array_ref (loc, obj, integer_zero_node);
+ 	else
+ 	  OMP_CLAUSE_DECL (c) = obj;
+ 	OMP_CLAUSE_SIZE (c) = TYPE_SIZE_UNIT (TREE_TYPE (obj));
+ 
+ 	if (!map_p)
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    break;
+ 	  }
+ 
+ 	if (!target_p)
+ 	  break;
+ 
+ 	/* If we have a reference to a pointer, avoid using
+ 	   FIRSTPRIVATE_REFERENCE here in case the pointer is modified in the
+ 	   offload region (we can only do that if the pointer does not point
+ 	   to a mapped block).  We could avoid doing this if we don't have a
+ 	   FROM mapping...  */
+ 	bool ref_to_ptr = TREE_CODE (TREE_TYPE (obj)) == POINTER_TYPE;
+ 
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	if (!ref_to_ptr
+ 	    && !declare_target_p
+ 	    && decl_p)
+ 	  OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_FIRSTPRIVATE_REFERENCE);
+ 	else
+ 	  {
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	  }
+ 	OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	OMP_CLAUSE_SIZE (c2) = size_zero_node;
+ 
+ 	if (ref_to_ptr)
+ 	  {
+ 	    c3 = c2;
+ 	    c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ALLOC);
+ 	    OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	    OMP_CLAUSE_SIZE (c2)
+ 	      = TYPE_SIZE_UNIT (TREE_TYPE (OMP_CLAUSE_DECL (c2)));
+ 	  }
+       }
+       break;
+ 
+     case ACCESS_INDEXED_REF_TO_ARRAY:
+       {
+ 	if (!map_p)
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    break;
+ 	  }
+ 
+ 	if (!target_p)
+ 	  break;
+ 
+ 	tree virtual_origin
+ 	  = convert_from_reference (addr_tokens[i + 1]->expr);
+ 	virtual_origin = build_fold_addr_expr (virtual_origin);
+ 	virtual_origin = fold_convert_loc (loc, ptrdiff_type_node,
+ 					   virtual_origin);
+ 	tree data_addr = omp_accessed_addr (addr_tokens, i + 1, expr);
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	if (decl_p && target_p && !declare_target_p)
+ 	  {
+ 	    /* It appears that omp-low.cc mishandles cases where we have a
+ 	       [reference to an] array of pointers such as:
+ 
+ 		 int *arr[N];   (or "int *(&arr)[N] = ...")
+ 		 #pragma omp target map(arr[a][b:c])
+ 		 { ... }
+ 
+ 	       in such cases chain_p will be true.  For now, fall back to
+ 	       GOMP_MAP_POINTER.  */
+ 	    enum gomp_map_kind k = chain_p ? GOMP_MAP_POINTER
+ 					   : GOMP_MAP_FIRSTPRIVATE_REFERENCE;
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, k);
+ 	  }
+ 	else
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	  }
+ 	OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	OMP_CLAUSE_SIZE (c2)
+ 	  = fold_build2_loc (loc, MINUS_EXPR, ptrdiff_type_node,
+ 			     fold_convert_loc (loc, ptrdiff_type_node,
+ 					       data_addr),
+ 			     virtual_origin);
+       }
+       break;
+ 
+     case ACCESS_INDEXED_ARRAY:
+       {
+ 	if (!map_p)
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    break;
+ 	  }
+ 
+ 	/* The code handling "firstprivatize_array_bases" in gimplify.cc is
+ 	   relevant here.  What do we need to create for arrays at this
+ 	   stage?  (This condition doesn't feel quite right.  FIXME?)  */
+ 	if (!target_p
+ 	    && (TREE_CODE (TREE_TYPE (addr_tokens[i + 1]->expr))
+ 		== ARRAY_TYPE))
+ 	  break;
+ 
+ 	tree virtual_origin
+ 	  = build_fold_addr_expr (addr_tokens[i + 1]->expr);
+ 	virtual_origin = fold_convert_loc (loc, ptrdiff_type_node,
+ 					   virtual_origin);
+ 	tree data_addr = omp_accessed_addr (addr_tokens, i + 1, expr);
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	if (decl_p && target_p)
+ 	  {
+ 	    /* See comment for ACCESS_INDEXED_REF_TO_ARRAY above.  */
+ 	    enum gomp_map_kind k = chain_p ? GOMP_MAP_POINTER
+ 					   : GOMP_MAP_FIRSTPRIVATE_POINTER;
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, k);
+ 	  }
+ 	else
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	  }
+ 	OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	OMP_CLAUSE_SIZE (c2)
+ 	  = fold_build2_loc (loc, MINUS_EXPR, ptrdiff_type_node,
+ 			     fold_convert_loc (loc, ptrdiff_type_node,
+ 					       data_addr),
+ 			     virtual_origin);
+       }
+       break;
+ 
+     case ACCESS_POINTER:
+     case ACCESS_POINTER_OFFSET:
+       {
+ 	if (!map_p)
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    break;
+ 	  }
+ 
+ 	unsigned last_access = i + 1;
+ 	tree virtual_origin;
+ 
+ 	if (chain_p
+ 	    && addr_tokens[i + 2]->type == ACCESS_METHOD
+ 	    && addr_tokens[i + 2]->u.access_kind == ACCESS_INDEXED_ARRAY)
+ 	  {
+ 	    /* !!! This seems wrong for ACCESS_POINTER_OFFSET.  */
+ 	    consume_tokens = 3;
+ 	    chain_p = omp_access_chain_p (addr_tokens, i + 2);
+ 	    last_access = i + 2;
+ 	    virtual_origin
+ 	      = build_array_ref (loc, addr_tokens[last_access]->expr,
+ 				 integer_zero_node);
+ 	    virtual_origin = build_fold_addr_expr (virtual_origin);
+ 	    virtual_origin = fold_convert_loc (loc, ptrdiff_type_node,
+ 					       virtual_origin);
+ 	  }
+ 	else
+ 	  virtual_origin = fold_convert_loc (loc, ptrdiff_type_node,
+ 					     addr_tokens[last_access]->expr);
+ 	tree data_addr = omp_accessed_addr (addr_tokens, last_access, expr);
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	/* For OpenACC, use FIRSTPRIVATE_POINTER for decls even on non-compute
+ 	   regions (e.g. "acc data" constructs).  It'll be removed anyway in
+ 	   gimplify.cc, but doing it this way maintains diagnostic
+ 	   behaviour.  */
+ 	if (decl_p && (target_p || !openmp_p) && !chain_p && !declare_target_p)
+ 	  OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_FIRSTPRIVATE_POINTER);
+ 	else
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	  }
+ 	OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	OMP_CLAUSE_SIZE (c2)
+ 	  = fold_build2_loc (loc, MINUS_EXPR, ptrdiff_type_node,
+ 			     fold_convert_loc (loc, ptrdiff_type_node,
+ 					       data_addr),
+ 			     virtual_origin);
+       }
+       break;
+ 
+     case ACCESS_REF_TO_POINTER:
+     case ACCESS_REF_TO_POINTER_OFFSET:
+       {
+ 	if (!map_p)
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    break;
+ 	  }
+ 
+ 	unsigned last_access = i + 1;
+ 	tree virtual_origin;
+ 
+ 	if (chain_p
+ 	    && addr_tokens[i + 2]->type == ACCESS_METHOD
+ 	    && addr_tokens[i + 2]->u.access_kind == ACCESS_INDEXED_ARRAY)
+ 	  {
+ 	    /* !!! This seems wrong for ACCESS_POINTER_OFFSET.  */
+ 	    consume_tokens = 3;
+ 	    chain_p = omp_access_chain_p (addr_tokens, i + 2);
+ 	    last_access = i + 2;
+ 	    virtual_origin
+ 	      = build_array_ref (loc, addr_tokens[last_access]->expr,
+ 				 integer_zero_node);
+ 	    virtual_origin = build_fold_addr_expr (virtual_origin);
+ 	    virtual_origin = fold_convert_loc (loc, ptrdiff_type_node,
+ 					       virtual_origin);
+ 	  }
+ 	else
+ 	  {
+ 	    virtual_origin
+ 	      = convert_from_reference (addr_tokens[last_access]->expr);
+ 	    virtual_origin = fold_convert_loc (loc, ptrdiff_type_node,
+ 					       virtual_origin);
+ 	  }
+ 
+ 	tree data_addr = omp_accessed_addr (addr_tokens, last_access, expr);
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	if (decl_p && target_p && !chain_p && !declare_target_p)
+ 	  {
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_FIRSTPRIVATE_REFERENCE);
+ 	    OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	  }
+ 	else
+ 	  {
+ 	    if (decl_p)
+ 	      c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	    OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	    OMP_CLAUSE_DECL (c2)
+ 	      = convert_from_reference (addr_tokens[i + 1]->expr);
+ 	  }
+ 	OMP_CLAUSE_SIZE (c2)
+ 	  = fold_build2_loc (loc, MINUS_EXPR, ptrdiff_type_node,
+ 			     fold_convert_loc (loc, ptrdiff_type_node,
+ 					       data_addr),
+ 			     virtual_origin);
+       }
+       break;
+ 
+     default:
+       *idx = i + consume_tokens;
+       return error_mark_node;
+     }
+ 
+   if (c3)
+     {
+       OMP_CLAUSE_CHAIN (c3) = OMP_CLAUSE_CHAIN (c);
+       OMP_CLAUSE_CHAIN (c2) = c3;
+       OMP_CLAUSE_CHAIN (c) = c2;
+       if (implicit_p)
+ 	{
+ 	  OMP_CLAUSE_MAP_IMPLICIT (c2) = 1;
+ 	  OMP_CLAUSE_MAP_IMPLICIT (c3) = 1;
+ 	}
+       c = c3;
+     }
+   else if (c2)
+     {
+       OMP_CLAUSE_CHAIN (c2) = OMP_CLAUSE_CHAIN (c);
+       OMP_CLAUSE_CHAIN (c) = c2;
+       if (implicit_p)
+ 	OMP_CLAUSE_MAP_IMPLICIT (c2) = 1;
+       c = c2;
+     }
+ 
+   i += consume_tokens;
+   *idx = i;
+ 
+   if (chain_p && map_p)
+     return omp_expand_access_chain (c, expr, addr_tokens, idx, ort);
+ 
+   return c;
+ }
+ 
+ /* Translate "component_selector access_method" to OMP mapping clauses.  */
+ 
+ tree
+ c_omp_address_inspector::expand_component_selector (tree c,
+ 						    vec<omp_addr_token *>
+ 						      &addr_tokens,
+ 						    tree expr, unsigned *idx,
+ 						    c_omp_region_type ort)
+ {
+   using namespace omp_addr_tokenizer;
+   location_t loc = OMP_CLAUSE_LOCATION (c);
+   unsigned i = *idx;
+   tree c2 = NULL_TREE, c3 = NULL_TREE;
+   bool chain_p = omp_access_chain_p (addr_tokens, i + 1);
+   bool map_p = OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP;
+ 
+   switch (addr_tokens[i + 1]->u.access_kind)
+     {
+     case ACCESS_DIRECT:
+     case ACCESS_INDEXED_ARRAY:
+       break;
+ 
+     case ACCESS_REF:
+       {
+ 	/* Copy the referenced object.  Note that we also do this for !MAP_P
+ 	   clauses.  */
+ 	tree obj = convert_from_reference (addr_tokens[i + 1]->expr);
+ 	OMP_CLAUSE_DECL (c) = obj;
+ 	OMP_CLAUSE_SIZE (c) = TYPE_SIZE_UNIT (TREE_TYPE (obj));
+ 
+ 	if (!map_p)
+ 	  break;
+ 
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	OMP_CLAUSE_SIZE (c2) = size_zero_node;
+       }
+       break;
+ 
+     case ACCESS_INDEXED_REF_TO_ARRAY:
+       {
+ 	if (!map_p)
+ 	  break;
+ 
+ 	tree virtual_origin
+ 	  = convert_from_reference (addr_tokens[i + 1]->expr);
+ 	virtual_origin = build_fold_addr_expr (virtual_origin);
+ 	virtual_origin = fold_convert_loc (loc, ptrdiff_type_node,
+ 					   virtual_origin);
+ 	tree data_addr = omp_accessed_addr (addr_tokens, i + 1, expr);
+ 
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	OMP_CLAUSE_SIZE (c2)
+ 	  = fold_build2_loc (loc, MINUS_EXPR, ptrdiff_type_node,
+ 			     fold_convert_loc (loc, ptrdiff_type_node,
+ 					       data_addr),
+ 			     virtual_origin);
+       }
+       break;
+ 
+     case ACCESS_POINTER:
+     case ACCESS_POINTER_OFFSET:
+       {
+ 	if (!map_p)
+ 	  break;
+ 
+ 	tree virtual_origin
+ 	  = fold_convert_loc (loc, ptrdiff_type_node,
+ 			      addr_tokens[i + 1]->expr);
+ 	tree data_addr = omp_accessed_addr (addr_tokens, i + 1, expr);
+ 
+ 	c2 = build_omp_clause (loc, OMP_CLAUSE_MAP);
+ 	OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	OMP_CLAUSE_DECL (c2) = addr_tokens[i + 1]->expr;
+ 	OMP_CLAUSE_SIZE (c2)
+ 	  = fold_build2_loc (loc, MINUS_EXPR, ptrdiff_type_node,
+ 			     fold_convert_loc (loc, ptrdiff_type_node,
+ 					       data_addr),
+ 			     virtual_origin);
+       }
+       break;
+ 
+     case ACCESS_REF_TO_POINTER:
+     case ACCESS_REF_TO_POINTER_OFFSET:
+       {
+ 	if (!map_p)
+ 	  break;
+ 
+ 	tree ptr = convert_from_reference (addr_tokens[i + 1]->expr);
+ 	tree virtual_origin = fold_convert_loc (loc, ptrdiff_type_node,
+ 						ptr);
+ 	tree data_addr = omp_accessed_addr (addr_tokens, i + 1, expr);
+ 
+ 	/* Attach the pointer...  */
+ 	c2 = build_omp_clause (OMP_CLAUSE_LOCATION (c), OMP_CLAUSE_MAP);
+ 	OMP_CLAUSE_SET_MAP_KIND (c2, GOMP_MAP_ATTACH_DETACH);
+ 	OMP_CLAUSE_DECL (c2) = ptr;
+ 	OMP_CLAUSE_SIZE (c2)
+ 	  = fold_build2_loc (loc, MINUS_EXPR, ptrdiff_type_node,
+ 			     fold_convert_loc (loc, ptrdiff_type_node,
+ 					       data_addr),
+ 			     virtual_origin);
+ 
+ 	/* ...and also the reference.  */
+ 	c3 = build_omp_clause (OMP_CLAUSE_LOCATION (c), OMP_CLAUSE_MAP);
+ 	OMP_CLAUSE_SET_MAP_KIND (c3, GOMP_MAP_ATTACH_DETACH);
+ 	OMP_CLAUSE_DECL (c3) = addr_tokens[i + 1]->expr;
+ 	OMP_CLAUSE_SIZE (c3) = size_zero_node;
+       }
+       break;
+ 
+     default:
+       *idx = i + 2;
+       return error_mark_node;
+     }
+ 
+   if (c3)
+     {
+       OMP_CLAUSE_CHAIN (c3) = OMP_CLAUSE_CHAIN (c);
+       OMP_CLAUSE_CHAIN (c2) = c3;
+       OMP_CLAUSE_CHAIN (c) = c2;
+       c = c3;
+     }
+   else if (c2)
+     {
+       OMP_CLAUSE_CHAIN (c2) = OMP_CLAUSE_CHAIN (c);
+       OMP_CLAUSE_CHAIN (c) = c2;
+       c = c2;
+     }
+ 
+   i += 2;
+   *idx = i;
+ 
+   if (chain_p && map_p)
+     return omp_expand_access_chain (c, expr, addr_tokens, idx, ort);
+ 
+   return c;
+ }
+ 
+ /* Expand a map clause into a group of mapping clauses, creating nodes to
+    attach/detach pointers and so forth as necessary.  */
+ 
+ tree
+ c_omp_address_inspector::expand_map_clause (tree c, tree expr,
+ 					    vec<omp_addr_token *> &addr_tokens,
+ 					    c_omp_region_type ort)
+ {
+   using namespace omp_addr_tokenizer;
+   unsigned i, length = addr_tokens.length ();
+ 
+   for (i = 0; i < length;)
+     {
+       int remaining = length - i;
+ 
+       if (remaining >= 2
+ 	  && addr_tokens[i]->type == ARRAY_BASE
+ 	  && addr_tokens[i]->u.structure_base_kind == BASE_DECL
+ 	  && addr_tokens[i + 1]->type == ACCESS_METHOD)
+ 	{
+ 	  c = expand_array_base (c, addr_tokens, expr, &i, ort);
+ 	  if (c == error_mark_node)
+ 	    return error_mark_node;
+ 	}
+       else if (remaining >= 2
+ 	       && addr_tokens[i]->type == ARRAY_BASE
+ 	       && addr_tokens[i]->u.structure_base_kind == BASE_ARBITRARY_EXPR
+ 	       && addr_tokens[i + 1]->type == ACCESS_METHOD)
+ 	{
+ 	  c = expand_array_base (c, addr_tokens, expr, &i, ort);
+ 	  if (c == error_mark_node)
+ 	    return error_mark_node;
+ 	}
+       else if (remaining >= 2
+ 	       && addr_tokens[i]->type == STRUCTURE_BASE
+ 	       && addr_tokens[i]->u.structure_base_kind == BASE_DECL
+ 	       && addr_tokens[i + 1]->type == ACCESS_METHOD)
+ 	{
+ 	  if (addr_tokens[i + 1]->u.access_kind == ACCESS_DIRECT)
+ 	    c_common_mark_addressable_vec (addr_tokens[i + 1]->expr);
+ 	  i += 2;
+ 	  while (addr_tokens[i]->type == ACCESS_METHOD)
+ 	    i++;
+ 	}
+       else if (remaining >= 2
+ 	       && addr_tokens[i]->type == STRUCTURE_BASE
+ 	       && addr_tokens[i]->u.structure_base_kind == BASE_ARBITRARY_EXPR
+ 	       && addr_tokens[i + 1]->type == ACCESS_METHOD)
+ 	{
+ 	  switch (addr_tokens[i + 1]->u.access_kind)
+ 	    {
+ 	    case ACCESS_DIRECT:
+ 	    case ACCESS_POINTER:
+ 	      i += 2;
+ 	      while (addr_tokens[i]->type == ACCESS_METHOD)
+ 		i++;
+ 	      break;
+ 	    default:
+ 	      return error_mark_node;
+ 	    }
+ 	}
+       else if (remaining >= 2
+ 	       && addr_tokens[i]->type == COMPONENT_SELECTOR
+ 	       && addr_tokens[i + 1]->type == ACCESS_METHOD)
+ 	{
+ 	  c = expand_component_selector (c, addr_tokens, expr, &i, ort);
+ 	  /* We used 'expr', so these must have been the last tokens.  */
+ 	  gcc_assert (i == length);
+ 	  if (c == error_mark_node)
+ 	    return error_mark_node;
+ 	}
+       else if (remaining >= 3
+ 	       && addr_tokens[i]->type == COMPONENT_SELECTOR
+ 	       && addr_tokens[i + 1]->type == STRUCTURE_BASE
+ 	       && (addr_tokens[i + 1]->u.structure_base_kind
+ 		   == BASE_COMPONENT_EXPR)
+ 	       && addr_tokens[i + 2]->type == ACCESS_METHOD)
+ 	{
+ 	  i += 3;
+ 	  while (addr_tokens[i]->type == ACCESS_METHOD)
+ 	    i++;
+ 	}
+       else
+ 	break;
+     }
+ 
+   if (i == length)
+     return c;
+ 
+   return error_mark_node;
  }
  
  const struct c_omp_directive c_omp_directives[] = {
*************** const struct c_omp_directive c_omp_direc
*** 3156,3161 ****
--- 4215,4222 ----
      C_OMP_DIR_STANDALONE, false },
    { "for", nullptr, nullptr, PRAGMA_OMP_FOR,
      C_OMP_DIR_CONSTRUCT, true },
+   /* { "groupprivate", nullptr, nullptr, PRAGMA_OMP_GROUPPRIVATE,
+     C_OMP_DIR_DECLARATIVE, false },  */
    /* { "interop", nullptr, nullptr, PRAGMA_OMP_INTEROP,
      C_OMP_DIR_STANDALONE, false },  */
    { "loop", nullptr, nullptr, PRAGMA_OMP_LOOP,
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-opts.cc gcc-14.1.0/gcc/c-family/c-opts.cc
*** gcc-13.2.0/gcc/c-family/c-opts.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-opts.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* C/ObjC/C++ command line option handling.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by Neil Booth.
  
  This file is part of GCC.
--- 1,5 ----
  /* C/ObjC/C++ command line option handling.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Neil Booth.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 22,27 ****
--- 22,28 ----
  #include "system.h"
  #include "coretypes.h"
  #include "tm.h"
+ #include "target.h"
  #include "c-target.h"
  #include "c-common.h"
  #include "memmodel.h"
*************** static bool verbose;
*** 77,82 ****
--- 78,86 ----
  /* Dependency output file.  */
  static const char *deps_file;
  
+ /* Structured dependency output file.  */
+ static const char *fdeps_file;
+ 
  /* The prefix given by -iprefix, if any.  */
  static const char *iprefix;
  
*************** static void set_std_cxx14 (int);
*** 111,121 ****
  static void set_std_cxx17 (int);
  static void set_std_cxx20 (int);
  static void set_std_cxx23 (int);
  static void set_std_c89 (int, int);
  static void set_std_c99 (int);
  static void set_std_c11 (int);
  static void set_std_c17 (int);
! static void set_std_c2x (int);
  static void check_deps_environment_vars (void);
  static void handle_deferred_opts (void);
  static void sanitize_cpp_opts (void);
--- 115,126 ----
  static void set_std_cxx17 (int);
  static void set_std_cxx20 (int);
  static void set_std_cxx23 (int);
+ static void set_std_cxx26 (int);
  static void set_std_c89 (int, int);
  static void set_std_c99 (int);
  static void set_std_c11 (int);
  static void set_std_c17 (int);
! static void set_std_c23 (int);
  static void check_deps_environment_vars (void);
  static void handle_deferred_opts (void);
  static void sanitize_cpp_opts (void);
*************** c_common_option_lang_mask (void)
*** 163,169 ****
  /* Diagnostic finalizer for C/C++/Objective-C/Objective-C++.  */
  static void
  c_diagnostic_finalizer (diagnostic_context *context,
! 			diagnostic_info *diagnostic,
  			diagnostic_t)
  {
    char *saved_prefix = pp_take_prefix (context->printer);
--- 168,174 ----
  /* Diagnostic finalizer for C/C++/Objective-C/Objective-C++.  */
  static void
  c_diagnostic_finalizer (diagnostic_context *context,
! 			const diagnostic_info *diagnostic,
  			diagnostic_t)
  {
    char *saved_prefix = pp_take_prefix (context->printer);
*************** void
*** 182,188 ****
  c_common_diagnostics_set_defaults (diagnostic_context *context)
  {
    diagnostic_finalizer (context) = c_diagnostic_finalizer;
!   context->opt_permissive = OPT_fpermissive;
  }
  
  /* Input charset configuration for diagnostics.  */
--- 187,193 ----
  c_common_diagnostics_set_defaults (diagnostic_context *context)
  {
    diagnostic_finalizer (context) = c_diagnostic_finalizer;
!   context->m_opt_permissive = OPT_fpermissive;
  }
  
  /* Input charset configuration for diagnostics.  */
*************** c_common_init_options (unsigned int deco
*** 234,240 ****
      = new (ggc_alloc <string_concat_db> ()) string_concat_db ();
  
    parse_in = cpp_create_reader (c_dialect_cxx () ? CLK_GNUCXX: CLK_GNUC89,
! 				ident_hash, line_table);
    cb = cpp_get_callbacks (parse_in);
    cb->diagnostic = c_cpp_diagnostic;
  
--- 239,245 ----
      = new (ggc_alloc <string_concat_db> ()) string_concat_db ();
  
    parse_in = cpp_create_reader (c_dialect_cxx () ? CLK_GNUCXX: CLK_GNUC89,
! 				ident_hash, line_table, ident_hash_extra);
    cb = cpp_get_callbacks (parse_in);
    cb->diagnostic = c_cpp_diagnostic;
  
*************** c_common_init_options (unsigned int deco
*** 268,274 ****
    if (c_dialect_cxx ())
      set_std_cxx17 (/*ISO*/false);
  
!   global_dc->colorize_source_p = true;
  }
  
  /* Handle switch SCODE with argument ARG.  VALUE is true, unless no-
--- 273,279 ----
    if (c_dialect_cxx ())
      set_std_cxx17 (/*ISO*/false);
  
!   global_dc->m_source_printing.colorize_source_p = true;
  }
  
  /* Handle switch SCODE with argument ARG.  VALUE is true, unless no-
*************** c_common_handle_option (size_t scode, co
*** 360,365 ****
--- 365,388 ----
        deps_file = arg;
        break;
  
+     case OPT_fdeps_format_:
+       /* https://wg21.link/p1689r5 */
+       if (!strcmp (arg, "p1689r5"))
+ 	cpp_opts->deps.fdeps_format = FDEPS_FMT_P1689R5;
+       else
+ 	error ("%<-fdeps-format=%> unknown format %<%s%>", arg);
+       break;
+ 
+     case OPT_fdeps_file_:
+       deps_seen = true;
+       fdeps_file = arg;
+       break;
+ 
+     case OPT_fdeps_target_:
+       deps_seen = true;
+       defer_opt (code, arg);
+       break;
+ 
      case OPT_MF:
        deps_seen = true;
        deps_file = arg;
*************** c_common_handle_option (size_t scode, co
*** 501,507 ****
  
      case OPT_fpermissive:
        flag_permissive = value;
!       global_dc->permissive = value;
        break;
  
      case OPT_fpreprocessed:
--- 524,530 ----
  
      case OPT_fpermissive:
        flag_permissive = value;
!       global_dc->m_permissive = value;
        break;
  
      case OPT_fpreprocessed:
*************** c_common_handle_option (size_t scode, co
*** 509,515 ****
        break;
  
      case OPT_fdebug_cpp:
!       cpp_opts->debug = 1;
        break;
  
      case OPT_ftrack_macro_expansion:
--- 532,538 ----
        break;
  
      case OPT_fdebug_cpp:
!       cpp_opts->debug = value;
        break;
  
      case OPT_ftrack_macro_expansion:
*************** c_common_handle_option (size_t scode, co
*** 663,668 ****
--- 686,697 ----
  	set_std_cxx23 (code == OPT_std_c__23 /* ISO */);
        break;
  
+     case OPT_std_c__26:
+     case OPT_std_gnu__26:
+       if (!preprocessing_asm_p)
+ 	set_std_cxx26 (code == OPT_std_c__26 /* ISO */);
+       break;
+ 
      case OPT_std_c90:
      case OPT_std_iso9899_199409:
        if (!preprocessing_asm_p)
*************** c_common_handle_option (size_t scode, co
*** 704,717 ****
  	set_std_c17 (false /* ISO */);
        break;
  
!     case OPT_std_c2x:
        if (!preprocessing_asm_p)
! 	set_std_c2x (true /* ISO */);
        break;
  
!     case OPT_std_gnu2x:
        if (!preprocessing_asm_p)
! 	set_std_c2x (false /* ISO */);
        break;
  
      case OPT_trigraphs:
--- 733,746 ----
  	set_std_c17 (false /* ISO */);
        break;
  
!     case OPT_std_c23:
        if (!preprocessing_asm_p)
! 	set_std_c23 (true /* ISO */);
        break;
  
!     case OPT_std_gnu23:
        if (!preprocessing_asm_p)
! 	set_std_c23 (false /* ISO */);
        break;
  
      case OPT_trigraphs:
*************** c_common_post_options (const char **pfil
*** 826,831 ****
--- 855,874 ----
        && flag_unsafe_math_optimizations == 0)
      flag_fp_contract_mode = FP_CONTRACT_OFF;
  
+   /* C language modes before C99 enable -fpermissive by default, but
+      only if -pedantic-errors is not specified.  Also treat
+      -fno-permissive as a subset of -pedantic-errors that does not
+      reject certain GNU extensions also present the defaults for later
+      language modes.  */
+   if (!c_dialect_cxx ()
+       && !flag_isoc99
+       && !global_dc->m_pedantic_errors
+       && !OPTION_SET_P (flag_permissive))
+     {
+       flag_permissive = 1;
+       global_dc->m_permissive = 1;
+     }
+ 
    /* If we are compiling C, and we are outside of a standards mode,
       we can permit the new values from ISO/IEC TS 18661-3 for
       FLT_EVAL_METHOD.  Otherwise, we must restrict the possible values to
*************** c_common_post_options (const char **pfil
*** 838,846 ****
    else
      flag_permitted_flt_eval_methods = PERMITTED_FLT_EVAL_METHODS_C11;
  
!   /* C2X Annex F does not permit certain built-in functions to raise
       "inexact".  */
!   if (flag_isoc2x)
      SET_OPTION_IF_UNSET (&global_options, &global_options_set,
  			 flag_fp_int_builtin_inexact, 0);
  
--- 881,889 ----
    else
      flag_permitted_flt_eval_methods = PERMITTED_FLT_EVAL_METHODS_C11;
  
!   /* C23 Annex F does not permit certain built-in functions to raise
       "inexact".  */
!   if (flag_isoc23)
      SET_OPTION_IF_UNSET (&global_options, &global_options_set,
  			 flag_fp_int_builtin_inexact, 0);
  
*************** c_common_post_options (const char **pfil
*** 916,924 ****
    if (warn_implicit_int == -1)
      warn_implicit_int = flag_isoc99;
  
!   /* -Wold-style-definition is enabled by default for C2X.  */
    if (warn_old_style_definition == -1)
!     warn_old_style_definition = flag_isoc2x;
  
    /* -Wshift-overflow is enabled by default in C99 and C++11 modes.  */
    if (warn_shift_overflow == -1)
--- 959,967 ----
    if (warn_implicit_int == -1)
      warn_implicit_int = flag_isoc99;
  
!   /* -Wold-style-definition is enabled by default for C23.  */
    if (warn_old_style_definition == -1)
!     warn_old_style_definition = flag_isoc23;
  
    /* -Wshift-overflow is enabled by default in C99 and C++11 modes.  */
    if (warn_shift_overflow == -1)
*************** c_common_post_options (const char **pfil
*** 955,960 ****
--- 998,1008 ----
  		       warn_deprecated_enum_float_conv,
  		       cxx_dialect >= cxx20 && warn_deprecated);
  
+   /* -Wtemplate-id-cdtor is enabled by default in C++20.  */
+   SET_OPTION_IF_UNSET (&global_options, &global_options_set,
+ 		       warn_template_id_cdtor,
+ 		       cxx_dialect >= cxx20 || warn_cxx20_compat);
+ 
    /* Declone C++ 'structors if -Os.  */
    if (flag_declone_ctor_dtor == -1)
      flag_declone_ctor_dtor = optimize_size;
*************** c_common_post_options (const char **pfil
*** 967,973 ****
  
    /* Change flag_abi_version to be the actual current ABI level, for the
       benefit of c_cpp_builtins, and to make comparison simpler.  */
!   const int latest_abi_version = 18;
    /* Generate compatibility aliases for ABI v13 (8.2) by default.  */
    const int abi_compat_default = 13;
  
--- 1015,1021 ----
  
    /* Change flag_abi_version to be the actual current ABI level, for the
       benefit of c_cpp_builtins, and to make comparison simpler.  */
!   const int latest_abi_version = 19;
    /* Generate compatibility aliases for ABI v13 (8.2) by default.  */
    const int abi_compat_default = 13;
  
*************** c_common_post_options (const char **pfil
*** 1032,1038 ****
  	warn_narrowing = 1;
  
        /* Unless -f{,no-}ext-numeric-literals has been used explicitly,
! 	 for -std=c++{11,14,17,20,23} default to -fno-ext-numeric-literals.  */
        if (flag_iso && !OPTION_SET_P (flag_ext_numeric_literals))
  	cpp_opts->ext_numeric_literals = 0;
      }
--- 1080,1087 ----
  	warn_narrowing = 1;
  
        /* Unless -f{,no-}ext-numeric-literals has been used explicitly,
! 	 for -std=c++{11,14,17,20,23,26} default to
! 	 -fno-ext-numeric-literals.  */
        if (flag_iso && !OPTION_SET_P (flag_ext_numeric_literals))
  	cpp_opts->ext_numeric_literals = 0;
      }
*************** c_common_post_options (const char **pfil
*** 1063,1071 ****
    if (warn_invalid_constexpr == -1)
      warn_invalid_constexpr = (cxx_dialect < cxx23);
  
!   /* char8_t support is implicitly enabled in C++20 and C2X.  */
    if (flag_char8_t == -1)
!     flag_char8_t = (cxx_dialect >= cxx20) || flag_isoc2x;
    cpp_opts->unsigned_utf8char = flag_char8_t ? 1 : cpp_opts->unsigned_char;
  
    if (flag_extern_tls_init)
--- 1112,1120 ----
    if (warn_invalid_constexpr == -1)
      warn_invalid_constexpr = (cxx_dialect < cxx23);
  
!   /* char8_t support is implicitly enabled in C++20 and C23.  */
    if (flag_char8_t == -1)
!     flag_char8_t = (cxx_dialect >= cxx20) || flag_isoc23;
    cpp_opts->unsigned_utf8char = flag_char8_t ? 1 : cpp_opts->unsigned_char;
  
    if (flag_extern_tls_init)
*************** c_common_post_options (const char **pfil
*** 1095,1100 ****
--- 1144,1159 ----
    if (cxx_dialect >= cxx20 || flag_concepts_ts)
      flag_concepts = 1;
  
+   /* -fconcepts-ts will be removed in GCC 15.  */
+   if (flag_concepts_ts)
+     inform (input_location, "%<-fconcepts-ts%> is deprecated and will be "
+ 	    "removed in GCC 15; please convert your code to C++20 concepts");
+ 
+   /* -fimmediate-escalation has no effect when immediate functions are not
+      supported.  */
+   if (flag_immediate_escalation && cxx_dialect < cxx20)
+     flag_immediate_escalation = 0;
+ 
    if (num_in_fnames > 1)
      error ("too many filenames given; type %<%s %s%> for usage",
  	   progname, "--help");
*************** c_common_post_options (const char **pfil
*** 1131,1136 ****
--- 1190,1198 ----
  		       "the %qs debug info cannot be used with "
  		       "pre-compiled headers",
  		       debug_set_names (write_symbols & ~DWARF2_DEBUG));
+ 	  /* Let libcpp know that the main file is a header so it won't
+ 	     complain about things like #include_next and #pragma once.  */
+ 	  cpp_opts->main_search = CMS_header;
  	}
        else if (write_symbols != NO_DEBUG && write_symbols != DWARF2_DEBUG)
  	c_common_no_more_pch ();
*************** c_common_init (void)
*** 1224,1229 ****
--- 1286,1292 ----
    if (flag_preprocess_only)
      {
        c_finish_options ();
+       c_init_preprocess ();
        preprocess_file (parse_in);
        return false;
      }
*************** void
*** 1272,1277 ****
--- 1335,1341 ----
  c_common_finish (void)
  {
    FILE *deps_stream = NULL;
+   FILE *fdeps_stream = NULL;
  
    /* Note that we write the dependencies even if there are errors. This is
       useful for handling outdated generated headers that now trigger errors
*************** c_common_finish (void)
*** 1300,1308 ****
       locations with input_location, which would be incorrect now.  */
    override_libcpp_locations = false;
  
    /* For performance, avoid tearing down cpplib's internal structures
       with cpp_destroy ().  */
!   cpp_finish (parse_in, deps_stream);
  
    if (deps_stream && deps_stream != out_stream && deps_stream != stdout
        && (ferror (deps_stream) || fclose (deps_stream)))
--- 1364,1390 ----
       locations with input_location, which would be incorrect now.  */
    override_libcpp_locations = false;
  
+   if (cpp_opts->deps.fdeps_format != FDEPS_FMT_NONE)
+     {
+       if (!fdeps_file)
+ 	fdeps_stream = out_stream;
+       else if (fdeps_file[0] == '-' && fdeps_file[1] == '\0')
+ 	fdeps_stream = stdout;
+       else
+ 	{
+ 	  fdeps_stream = fopen (fdeps_file, "w");
+ 	  if (!fdeps_stream)
+ 	    fatal_error (input_location, "opening dependency file %s: %m",
+ 			 fdeps_file);
+ 	}
+       if (fdeps_stream == deps_stream && fdeps_stream != stdout)
+ 	fatal_error (input_location, "%<-MF%> and %<-fdeps-file=%> cannot share an output file %s: %m",
+ 		     fdeps_file);
+     }
+ 
    /* For performance, avoid tearing down cpplib's internal structures
       with cpp_destroy ().  */
!   cpp_finish (parse_in, deps_stream, fdeps_stream);
  
    if (deps_stream && deps_stream != out_stream && deps_stream != stdout
        && (ferror (deps_stream) || fclose (deps_stream)))
*************** handle_deferred_opts (void)
*** 1374,1379 ****
--- 1456,1463 ----
  
  	if (opt->code == OPT_MT || opt->code == OPT_MQ)
  	  deps_add_target (deps, opt->arg, opt->code == OPT_MQ);
+ 	else if (opt->code == OPT_fdeps_target_)
+ 	  fdeps_add_target (deps, opt->arg, true);
        }
  }
  
*************** c_finish_options (void)
*** 1505,1510 ****
--- 1589,1597 ----
        cb_file_change (parse_in, cmd_map);
        linemap_line_start (line_table, 0, 1);
  
+       bool fortify_seen_p = false;
+       bool cxx_assert_seen_p = false;
+ 
        /* All command line defines must have the same location.  */
        cpp_force_token_locations (parse_in, line_table->highest_line);
        for (size_t i = 0; i < deferred_count; i++)
*************** c_finish_options (void)
*** 1522,1527 ****
--- 1609,1649 ----
  	      else
  		cpp_assert (parse_in, opt->arg);
  	    }
+ 
+ 	  if (UNLIKELY (flag_hardened)
+ 	      && (opt->code == OPT_D || opt->code == OPT_U))
+ 	    {
+ 	      if (!fortify_seen_p)
+ 		fortify_seen_p
+ 		  = (!strncmp (opt->arg, "_FORTIFY_SOURCE", 15)
+ 		     && (opt->arg[15] == '\0' || opt->arg[15] == '='));
+ 	      if (!cxx_assert_seen_p)
+ 		cxx_assert_seen_p
+ 		  = (!strncmp (opt->arg, "_GLIBCXX_ASSERTIONS", 19)
+ 		     && (opt->arg[19] == '\0' || opt->arg[19] == '='));
+ 	    }
+ 	}
+ 
+       if (flag_hardened)
+ 	{
+ 	  if (!fortify_seen_p && optimize > 0)
+ 	    cpp_define_formatted (parse_in, "_FORTIFY_SOURCE=%u",
+ 				  targetm.fortify_source_default_level ());
+ 	  else if (optimize == 0)
+ 	    warning_at (UNKNOWN_LOCATION, OPT_Whardened,
+ 			"%<_FORTIFY_SOURCE%> is not enabled by %<-fhardened%> "
+ 			"because optimizations are turned off");
+ 	  else
+ 	    warning_at (UNKNOWN_LOCATION, OPT_Whardened,
+ 			"%<_FORTIFY_SOURCE%> is not enabled by %<-fhardened%> "
+ 			"because it was specified in %<-D%> or %<-U%>");
+ 	  if (!cxx_assert_seen_p)
+ 	    cpp_define (parse_in, "_GLIBCXX_ASSERTIONS");
+ 	  else
+ 	    warning_at (UNKNOWN_LOCATION, OPT_Whardened,
+ 			"%<_GLIBCXX_ASSERTIONS%> is not enabled by "
+ 			"%<-fhardened%> because it was specified in %<-D%> "
+ 			"or %<-U%>");
  	}
  
        cpp_stop_forcing_token_locations (parse_in);
*************** set_std_c89 (int c94, int iso)
*** 1659,1665 ****
    flag_isoc94 = c94;
    flag_isoc99 = 0;
    flag_isoc11 = 0;
!   flag_isoc2x = 0;
    lang_hooks.name = "GNU C89";
  }
  
--- 1781,1787 ----
    flag_isoc94 = c94;
    flag_isoc99 = 0;
    flag_isoc11 = 0;
!   flag_isoc23 = 0;
    lang_hooks.name = "GNU C89";
  }
  
*************** set_std_c99 (int iso)
*** 1671,1677 ****
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
!   flag_isoc2x = 0;
    flag_isoc11 = 0;
    flag_isoc99 = 1;
    flag_isoc94 = 1;
--- 1793,1799 ----
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
!   flag_isoc23 = 0;
    flag_isoc11 = 0;
    flag_isoc99 = 1;
    flag_isoc94 = 1;
*************** set_std_c11 (int iso)
*** 1686,1692 ****
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
!   flag_isoc2x = 0;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
    flag_isoc94 = 1;
--- 1808,1814 ----
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
!   flag_isoc23 = 0;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
    flag_isoc94 = 1;
*************** set_std_c17 (int iso)
*** 1701,1707 ****
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
!   flag_isoc2x = 0;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
    flag_isoc94 = 1;
--- 1823,1829 ----
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
!   flag_isoc23 = 0;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
    flag_isoc94 = 1;
*************** set_std_c17 (int iso)
*** 1710,1726 ****
  
  /* Set the C 2X standard (without GNU extensions if ISO).  */
  static void
! set_std_c2x (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC2X: CLK_GNUC2X);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
!   flag_isoc2x = 1;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
    flag_isoc94 = 1;
!   lang_hooks.name = "GNU C2X";
  }
  
  
--- 1832,1848 ----
  
  /* Set the C 2X standard (without GNU extensions if ISO).  */
  static void
! set_std_c23 (int iso)
  {
!   cpp_set_lang (parse_in, iso ? CLK_STDC23: CLK_GNUC23);
    flag_no_asm = iso;
    flag_no_nonansi_builtin = iso;
    flag_iso = iso;
!   flag_isoc23 = 1;
    flag_isoc11 = 1;
    flag_isoc99 = 1;
    flag_isoc94 = 1;
!   lang_hooks.name = "GNU C23";
  }
  
  
*************** set_std_cxx23 (int iso)
*** 1820,1825 ****
--- 1942,1965 ----
    lang_hooks.name = "GNU C++23";
  }
  
+ /* Set the C++ 2026 standard (without GNU extensions if ISO).  */
+ static void
+ set_std_cxx26 (int iso)
+ {
+   cpp_set_lang (parse_in, iso ? CLK_CXX26: CLK_GNUCXX26);
+   flag_no_gnu_keywords = iso;
+   flag_no_nonansi_builtin = iso;
+   flag_iso = iso;
+   /* C++26 includes the C11 standard library.  */
+   flag_isoc94 = 1;
+   flag_isoc99 = 1;
+   flag_isoc11 = 1;
+   /* C++26 includes coroutines.  */
+   flag_coroutines = true;
+   cxx_dialect = cxx26;
+   lang_hooks.name = "GNU C++26";
+ }
+ 
  /* Args to -d specify what to dump.  Silently ignore
     unrecognized options; they may be aimed at toplev.cc.  */
  static void
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-pch.cc gcc-14.1.0/gcc/c-family/c-pch.cc
*** gcc-13.2.0/gcc/c-family/c-pch.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-pch.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Precompiled header implementation for the C languages.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Precompiled header implementation for the C languages.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** c_common_read_pch (cpp_reader *pfile, co
*** 318,323 ****
--- 318,324 ----
    struct save_macro_data *smd;
    expanded_location saved_loc;
    bool saved_trace_includes;
+   int cpp_result;
  
    timevar_push (TV_PCH_RESTORE);
  
*************** c_common_read_pch (cpp_reader *pfile, co
*** 342,362 ****
    gt_pch_restore (f);
    cpp_set_line_map (pfile, line_table);
    rebuild_location_adhoc_htab (line_table);
  
    timevar_push (TV_PCH_CPP_RESTORE);
!   if (cpp_read_state (pfile, name, f, smd) != 0)
!     {
!       fclose (f);
!       timevar_pop (TV_PCH_CPP_RESTORE);
!       goto end;
!     }
!   timevar_pop (TV_PCH_CPP_RESTORE);
  
  
    fclose (f);
  
!   line_table->trace_includes = saved_trace_includes;
!   linemap_add (line_table, LC_ENTER, 0, saved_loc.file, saved_loc.line);
  
    /* Give the front end a chance to take action after a PCH file has
       been loaded.  */
--- 343,368 ----
    gt_pch_restore (f);
    cpp_set_line_map (pfile, line_table);
    rebuild_location_adhoc_htab (line_table);
+   line_table->trace_includes = saved_trace_includes;
+ 
+   /* Set the current location to the line containing the #include (or the
+      #pragma GCC pch_preprocess) for the purpose of assigning locations to any
+      macros that are about to be restored.  */
+   linemap_add (line_table, LC_ENTER, 0, saved_loc.file,
+ 	       saved_loc.line > 1 ? saved_loc.line - 1 : saved_loc.line);
  
    timevar_push (TV_PCH_CPP_RESTORE);
!   cpp_result = cpp_read_state (pfile, name, f, smd);
  
+   /* Set the current location to the line following the #include, where we
+      were prior to processing the PCH.  */
+   linemap_line_start (line_table, saved_loc.line, 0);
  
+   timevar_pop (TV_PCH_CPP_RESTORE);
    fclose (f);
  
!   if (cpp_result != 0)
!     goto end;
  
    /* Give the front end a chance to take action after a PCH file has
       been loaded.  */
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-ppoutput.cc gcc-14.1.0/gcc/c-family/c-ppoutput.cc
*** gcc-13.2.0/gcc/c-family/c-ppoutput.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-ppoutput.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Preprocess only, using cpplib.
!    Copyright (C) 1995-2023 Free Software Foundation, Inc.
     Written by Per Bothner, 1994-95.
  
     This program is free software; you can redistribute it and/or modify it
--- 1,5 ----
  /* Preprocess only, using cpplib.
!    Copyright (C) 1995-2024 Free Software Foundation, Inc.
     Written by Per Bothner, 1994-95.
  
     This program is free software; you can redistribute it and/or modify it
*************** init_pp_output (FILE *out_stream)
*** 162,167 ****
--- 162,168 ----
  
    cb->has_attribute = c_common_has_attribute;
    cb->has_builtin = c_common_has_builtin;
+   cb->has_feature = c_common_has_feature;
    cb->get_source_date_epoch = cb_get_source_date_epoch;
    cb->remap_filename = remap_macro_filename;
  
*************** cb_read_pch (cpp_reader *pfile, const ch
*** 862,865 ****
--- 863,871 ----
  
    fprintf (print.outf, "#pragma GCC pch_preprocess \"%s\"\n", name);
    print.src_line++;
+ 
+   /* The process of reading the PCH has destroyed the frontend parser,
+      so ask the frontend to reinitialize it, in case we need it to
+      process any #pragma directives encountered while preprocessing.  */
+   c_init_preprocess ();
  }
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-pragma.cc gcc-14.1.0/gcc/c-family/c-pragma.cc
*** gcc-13.2.0/gcc/c-family/c-pragma.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-pragma.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Handle #pragma, system V.4 style.  Supports #pragma weak and #pragma pack.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Handle #pragma, system V.4 style.  Supports #pragma weak and #pragma pack.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** public:
*** 840,850 ****
  
  };
  
! /* When compiling normally, use pragma_lex () to obtain the needed tokens.
!    This will call into either the C or C++ frontends as appropriate.  */
  
  static void
! pragma_diagnostic_lex_normal (pragma_diagnostic_data *result)
  {
    result->clear ();
    tree x;
--- 840,850 ----
  
  };
  
! /* This will call into either the C or C++ frontends as appropriate to get
!    tokens from libcpp for the pragma.  */
  
  static void
! pragma_diagnostic_lex (pragma_diagnostic_data *result)
  {
    result->clear ();
    tree x;
*************** pragma_diagnostic_lex_normal (pragma_dia
*** 866,911 ****
    result->valid = true;
  }
  
- /* When preprocessing only, pragma_lex () is not available, so obtain the
-    tokens directly from libcpp.  We also need to inform the token streamer
-    about all tokens we lex ourselves here, so it outputs them too; this is
-    done by calling c_pp_stream_token () for each.
- 
-    ???  If we need to support more pragmas in the future, maybe initialize
-    this_parser with the pragma tokens and call pragma_lex () instead?  */
- 
- static void
- pragma_diagnostic_lex_pp (pragma_diagnostic_data *result)
- {
-   result->clear ();
- 
-   auto tok = cpp_get_token_with_location (parse_in, &result->loc_kind);
-   c_pp_stream_token (parse_in, tok, result->loc_kind);
-   if (!(tok->type == CPP_NAME || tok->type == CPP_KEYWORD))
-     return;
-   const unsigned char *const kind_u = cpp_token_as_text (parse_in, tok);
-   result->set_kind ((const char *)kind_u);
-   if (result->pd_kind == pragma_diagnostic_data::PK_INVALID)
-     return;
- 
-   if (result->needs_option ())
-     {
-       tok = cpp_get_token_with_location (parse_in, &result->loc_option);
-       c_pp_stream_token (parse_in, tok, result->loc_option);
-       if (tok->type != CPP_STRING)
- 	return;
-       cpp_string str;
-       if (!cpp_interpret_string_notranslate (parse_in, &tok->val.str, 1, &str,
- 					     CPP_STRING)
- 	  || !str.len)
- 	return;
-       result->option_str = (const char *)str.text;
-       result->own_option_str = true;
-     }
- 
-   result->valid = true;
- }
- 
  /* Handle #pragma GCC diagnostic.  Early mode is used by frontends (such as C++)
     that do not process the deferred pragma while they are consuming tokens; they
     can use early mode to make sure diagnostics affecting the preprocessor itself
--- 866,871 ----
*************** handle_pragma_diagnostic_impl ()
*** 916,925 ****
    static const bool want_diagnostics = (is_pp || !early);
  
    pragma_diagnostic_data data;
!   if (is_pp)
!     pragma_diagnostic_lex_pp (&data);
!   else
!     pragma_diagnostic_lex_normal (&data);
  
    if (!data.kind_str)
      {
--- 876,882 ----
    static const bool want_diagnostics = (is_pp || !early);
  
    pragma_diagnostic_data data;
!   pragma_diagnostic_lex (&data);
  
    if (!data.kind_str)
      {
*************** handle_pragma_diagnostic_impl ()
*** 1006,1012 ****
    /* option_string + 1 to skip the initial '-' */
    unsigned int option_index = find_opt (data.option_str + 1, lang_mask);
  
!   if (early && !c_option_is_from_cpp_diagnostics (option_index))
      return;
  
    if (option_index == OPT_SPECIAL_unknown)
--- 963,970 ----
    /* option_string + 1 to skip the initial '-' */
    unsigned int option_index = find_opt (data.option_str + 1, lang_mask);
  
!   if (early && !(c_option_is_from_cpp_diagnostics (option_index)
! 		 || option_index == OPT_Wunknown_pragmas))
      return;
  
    if (option_index == OPT_SPECIAL_unknown)
*************** handle_pragma_push_options (cpp_reader *
*** 1250,1256 ****
    token = pragma_lex (&x);
    if (token != CPP_EOF)
      {
!       warning (OPT_Wpragmas, "junk at end of %<#pragma push_options%>");
        return;
      }
  
--- 1208,1214 ----
    token = pragma_lex (&x);
    if (token != CPP_EOF)
      {
!       warning (OPT_Wpragmas, "junk at end of %<#pragma GCC push_options%>");
        return;
      }
  
*************** handle_pragma_pop_options (cpp_reader *)
*** 1287,1293 ****
    token = pragma_lex (&x);
    if (token != CPP_EOF)
      {
!       warning (OPT_Wpragmas, "junk at end of %<#pragma pop_options%>");
        return;
      }
  
--- 1245,1251 ----
    token = pragma_lex (&x);
    if (token != CPP_EOF)
      {
!       warning (OPT_Wpragmas, "junk at end of %<#pragma GCC pop_options%>");
        return;
      }
  
*************** handle_pragma_pop_options (cpp_reader *)
*** 1331,1354 ****
    current_optimize_pragma = p->optimize_strings;
  }
  
! /* Handle #pragma GCC reset_options to restore the current target and
!    optimization options to the original options used on the command line.  */
  
! static void
! handle_pragma_reset_options (cpp_reader *)
  {
-   enum cpp_ttype token;
-   tree x = 0;
    tree new_optimize = optimization_default_node;
    tree new_target = target_option_default_node;
- 
-   token = pragma_lex (&x);
-   if (token != CPP_EOF)
-     {
-       warning (OPT_Wpragmas, "junk at end of %<#pragma reset_options%>");
-       return;
-     }
- 
    if (new_target != target_option_current_node)
      {
        (void) targetm.target_option.pragma_parse (NULL_TREE, new_target);
--- 1289,1304 ----
    current_optimize_pragma = p->optimize_strings;
  }
  
! /* This is mostly a helper for handle_pragma_reset_options () to do the actual
!    work, but the C++ frontend, for example, needs an external interface to
!    perform this operation, since it processes target pragmas twice.  (Once for
!    preprocessing purposes, and then again during compilation.)  */
  
! void
! c_reset_target_pragmas ()
  {
    tree new_optimize = optimization_default_node;
    tree new_target = target_option_default_node;
    if (new_target != target_option_current_node)
      {
        (void) targetm.target_option.pragma_parse (NULL_TREE, new_target);
*************** handle_pragma_reset_options (cpp_reader
*** 1368,1373 ****
--- 1318,1336 ----
    current_optimize_pragma = NULL_TREE;
  }
  
+ /* Handle #pragma GCC reset_options to restore the current target and
+    optimization options to the original options used on the command line.  */
+ 
+ static void
+ handle_pragma_reset_options (cpp_reader *)
+ {
+   tree x;
+   if (pragma_lex (&x) != CPP_EOF)
+     warning (OPT_Wpragmas, "junk at end of %<#pragma reset_options%>");
+   else
+     c_reset_target_pragmas ();
+ }
+ 
  /* Print a plain user-specified message.  */
  
  static void
*************** c_pp_invoke_early_pragma_handler (unsign
*** 1808,1814 ****
  {
    const auto data = &registered_pp_pragmas[id - PRAGMA_FIRST_EXTERNAL];
    if (data->early_handler)
!     data->early_handler (parse_in);
  }
  
  /* Set up front-end pragmas.  */
--- 1771,1780 ----
  {
    const auto data = &registered_pp_pragmas[id - PRAGMA_FIRST_EXTERNAL];
    if (data->early_handler)
!     {
!       data->early_handler (parse_in);
!       pragma_lex_discard_to_eol ();
!     }
  }
  
  /* Set up front-end pragmas.  */
*************** init_pragma (void)
*** 1862,1867 ****
--- 1828,1837 ----
      cpp_register_deferred_pragma (parse_in, "GCC", "unroll", PRAGMA_UNROLL,
  				  false, false);
  
+   if (!flag_preprocess_only)
+     cpp_register_deferred_pragma (parse_in, "GCC", "novector", PRAGMA_NOVECTOR,
+ 				  false, false);
+ 
  #ifdef HANDLE_PRAGMA_PACK_WITH_EXPANSION
    c_register_pragma_with_expansion (0, "pack", handle_pragma_pack);
  #else
*************** init_pragma (void)
*** 1879,1889 ****
      c_register_pragma_with_early_handler ("GCC", "diagnostic",
  					  handle_pragma_diagnostic,
  					  handle_pragma_diagnostic_early);
!   c_register_pragma ("GCC", "target", handle_pragma_target);
    c_register_pragma ("GCC", "optimize", handle_pragma_optimize);
!   c_register_pragma ("GCC", "push_options", handle_pragma_push_options);
!   c_register_pragma ("GCC", "pop_options", handle_pragma_pop_options);
!   c_register_pragma ("GCC", "reset_options", handle_pragma_reset_options);
  
    c_register_pragma (0, "region", handle_pragma_ignore);
    c_register_pragma (0, "endregion", handle_pragma_ignore);
--- 1849,1867 ----
      c_register_pragma_with_early_handler ("GCC", "diagnostic",
  					  handle_pragma_diagnostic,
  					  handle_pragma_diagnostic_early);
!   c_register_pragma_with_early_handler ("GCC", "target",
! 					handle_pragma_target,
! 					handle_pragma_target);
    c_register_pragma ("GCC", "optimize", handle_pragma_optimize);
!   c_register_pragma_with_early_handler ("GCC", "push_options",
! 					handle_pragma_push_options,
! 					handle_pragma_push_options);
!   c_register_pragma_with_early_handler ("GCC", "pop_options",
! 					handle_pragma_pop_options,
! 					handle_pragma_pop_options);
!   c_register_pragma_with_early_handler ("GCC", "reset_options",
! 					handle_pragma_reset_options,
! 					handle_pragma_reset_options);
  
    c_register_pragma (0, "region", handle_pragma_ignore);
    c_register_pragma (0, "endregion", handle_pragma_ignore);
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-pragma.h gcc-14.1.0/gcc/c-family/c-pragma.h
*** gcc-13.2.0/gcc/c-family/c-pragma.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-pragma.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Pragma related interfaces.
!    Copyright (C) 1995-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Pragma related interfaces.
!    Copyright (C) 1995-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum pragma_kind {
*** 87,92 ****
--- 87,93 ----
    PRAGMA_GCC_PCH_PREPROCESS,
    PRAGMA_IVDEP,
    PRAGMA_UNROLL,
+   PRAGMA_NOVECTOR,
  
    PRAGMA_FIRST_EXTERNAL
  };
*************** enum pragma_omp_clause {
*** 124,129 ****
--- 125,131 ----
    PRAGMA_OMP_CLAUSE_IF,
    PRAGMA_OMP_CLAUSE_IN_REDUCTION,
    PRAGMA_OMP_CLAUSE_INBRANCH,
+   PRAGMA_OMP_CLAUSE_INDIRECT,
    PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR,
    PRAGMA_OMP_CLAUSE_LASTPRIVATE,
    PRAGMA_OMP_CLAUSE_LINEAR,
*************** c_register_pragma_with_early_handler (co
*** 255,261 ****
  				      pragma_handler_1arg early_handler);
  extern void c_invoke_early_pragma_handler (unsigned int);
  extern void c_pp_invoke_early_pragma_handler (unsigned int);
! 
  
  extern void maybe_apply_pragma_weak (tree);
  extern void maybe_apply_pending_pragma_weaks (void);
--- 257,263 ----
  				      pragma_handler_1arg early_handler);
  extern void c_invoke_early_pragma_handler (unsigned int);
  extern void c_pp_invoke_early_pragma_handler (unsigned int);
! extern void c_reset_target_pragmas ();
  
  extern void maybe_apply_pragma_weak (tree);
  extern void maybe_apply_pending_pragma_weaks (void);
*************** extern tree maybe_apply_renaming_pragma
*** 263,269 ****
--- 265,273 ----
  extern void maybe_apply_pragma_scalar_storage_order (tree);
  extern void add_to_renaming_pragma_list (tree, tree);
  
+ /* These are to be implemented in each frontend that needs them.  */
  extern enum cpp_ttype pragma_lex (tree *, location_t *loc = NULL);
+ extern void pragma_lex_discard_to_eol ();
  
  /* Flags for use with c_lex_with_flags.  The values here were picked
     so that 0 means to translate and join strings.  */
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-pretty-print.cc gcc-14.1.0/gcc/c-family/c-pretty-print.cc
*** gcc-13.2.0/gcc/c-family/c-pretty-print.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-pretty-print.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines common to both C and C++ pretty-printers.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
--- 1,5 ----
  /* Subroutines common to both C and C++ pretty-printers.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 33,38 ****
--- 33,41 ----
  #include "langhooks.h"
  #include "options.h"
  #include "internal-fn.h"
+ #include "function.h"
+ #include "basic-block.h"
+ #include "gimple.h"
  
  /* The pretty-printer code is primarily designed to closely follow
     (GNU) C and C++ grammars.  That is to be contrasted with spaghetti
*************** c_pretty_printer::simple_type_specifier
*** 399,404 ****
--- 402,424 ----
  	}
        break;
  
+     case BITINT_TYPE:
+       if (TYPE_NAME (t))
+ 	{
+ 	  t = TYPE_NAME (t);
+ 	  simple_type_specifier (t);
+ 	}
+       else
+ 	{
+ 	  int prec = TYPE_PRECISION (t);
+ 	  if (TYPE_UNSIGNED (t))
+ 	    pp_c_ws_string (this, "unsigned");
+ 	  pp_c_ws_string (this, "_BitInt(");;
+ 	  pp_decimal_int (this, prec);
+ 	  pp_right_paren (this);
+ 	}
+       break;
+ 
      case TYPE_DECL:
        if (DECL_NAME (t))
  	id_expression (t);
*************** c_pretty_printer::direct_abstract_declar
*** 688,693 ****
--- 708,714 ----
      case REAL_TYPE:
      case FIXED_POINT_TYPE:
      case ENUMERAL_TYPE:
+     case BITINT_TYPE:
      case RECORD_TYPE:
      case UNION_TYPE:
      case VECTOR_TYPE:
*************** c_pretty_printer::direct_declarator (tre
*** 808,813 ****
--- 829,835 ----
      case REAL_TYPE:
      case FIXED_POINT_TYPE:
      case ENUMERAL_TYPE:
+     case BITINT_TYPE:
      case UNION_TYPE:
      case RECORD_TYPE:
        break;
*************** c_pretty_printer::declarator (tree t)
*** 831,836 ****
--- 853,859 ----
      case REAL_TYPE:
      case FIXED_POINT_TYPE:
      case ENUMERAL_TYPE:
+     case BITINT_TYPE:
      case UNION_TYPE:
      case RECORD_TYPE:
        break;
*************** pp_c_integer_constant (c_pretty_printer
*** 1019,1026 ****
  	  pp_minus (pp);
  	  wi = -wi;
  	}
!       print_hex (wi, pp_buffer (pp)->digit_buffer);
!       pp_string (pp, pp_buffer (pp)->digit_buffer);
      }
  }
  
--- 1042,1059 ----
  	  pp_minus (pp);
  	  wi = -wi;
  	}
!       unsigned int prec = wi.get_precision ();
!       if ((prec + 3) / 4 > sizeof (pp_buffer (pp)->digit_buffer) - 3)
! 	{
! 	  char *buf = XALLOCAVEC (char, (prec + 3) / 4 + 3);
! 	  print_hex (wi, buf);
! 	  pp_string (pp, buf);
! 	}
!       else
! 	{
! 	  print_hex (wi, pp_buffer (pp)->digit_buffer);
! 	  pp_string (pp, pp_buffer (pp)->digit_buffer);
! 	}
      }
  }
  
*************** c_pretty_printer::primary_expression (tr
*** 1380,1391 ****
  	  else
  	    primary_expression (var);
  	}
!       else
  	{
  	  /* Print only the right side of the GIMPLE assignment.  */
  	  gimple *def_stmt = SSA_NAME_DEF_STMT (e);
  	  pp_gimple_stmt_1 (this, def_stmt, 0, TDF_RHS_ONLY);
  	}
        break;
  
      default:
--- 1413,1426 ----
  	  else
  	    primary_expression (var);
  	}
!       else if (gimple_assign_single_p (SSA_NAME_DEF_STMT (e)))
  	{
  	  /* Print only the right side of the GIMPLE assignment.  */
  	  gimple *def_stmt = SSA_NAME_DEF_STMT (e);
  	  pp_gimple_stmt_1 (this, def_stmt, 0, TDF_RHS_ONLY);
  	}
+       else
+ 	expression (e);
        break;
  
      default:
*************** c_pretty_printer::postfix_expression (tr
*** 1615,1620 ****
--- 1650,1666 ----
        pp_c_right_bracket (this);
        break;
  
+     case OMP_ARRAY_SECTION:
+       postfix_expression (TREE_OPERAND (e, 0));
+       pp_c_left_bracket (this);
+       if (TREE_OPERAND (e, 1))
+ 	expression (TREE_OPERAND (e, 1));
+       pp_colon (this);
+       if (TREE_OPERAND (e, 2))
+ 	expression (TREE_OPERAND (e, 2));
+       pp_c_right_bracket (this);
+       break;
+ 
      case CALL_EXPR:
        {
  	call_expr_arg_iterator iter;
*************** pp_c_cast_expression (c_pretty_printer *
*** 2281,2286 ****
--- 2327,2333 ----
      case FIX_TRUNC_EXPR:
      CASE_CONVERT:
      case VIEW_CONVERT_EXPR:
+     case EXCESS_PRECISION_EXPR:
        if (!location_wrapper_p (e))
  	pp_c_type_cast (pp, TREE_TYPE (e));
        pp_c_cast_expression (pp, TREE_OPERAND (e, 0));
*************** c_pretty_printer::expression (tree e)
*** 2664,2669 ****
--- 2711,2717 ----
      case POSTINCREMENT_EXPR:
      case POSTDECREMENT_EXPR:
      case ARRAY_REF:
+     case OMP_ARRAY_SECTION:
      case CALL_EXPR:
      case COMPONENT_REF:
      case BIT_FIELD_REF:
*************** c_pretty_printer::expression (tree e)
*** 2706,2711 ****
--- 2754,2760 ----
      case FIX_TRUNC_EXPR:
      CASE_CONVERT:
      case VIEW_CONVERT_EXPR:
+     case EXCESS_PRECISION_EXPR:
        pp_c_cast_expression (this, e);
        break;
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-pretty-print.h gcc-14.1.0/gcc/c-family/c-pretty-print.h
*** gcc-13.2.0/gcc/c-family/c-pretty-print.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-pretty-print.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Various declarations for the C and C++ pretty-printers.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
--- 1,5 ----
  /* Various declarations for the C and C++ pretty-printers.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-semantics.cc gcc-14.1.0/gcc/c-family/c-semantics.cc
*** gcc-13.2.0/gcc/c-family/c-semantics.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-semantics.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* This file contains subroutine used by the C front-end to construct GENERIC.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
     Written by Benjamin Chelf (chelf@codesourcery.com).
  
  This file is part of GCC.
--- 1,5 ----
  /* This file contains subroutine used by the C front-end to construct GENERIC.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
     Written by Benjamin Chelf (chelf@codesourcery.com).
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-spellcheck.cc gcc-14.1.0/gcc/c-family/c-spellcheck.cc
*** gcc-13.2.0/gcc/c-family/c-spellcheck.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-spellcheck.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Find near-matches for macros.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Find near-matches for macros.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-spellcheck.h gcc-14.1.0/gcc/c-family/c-spellcheck.h
*** gcc-13.2.0/gcc/c-family/c-spellcheck.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-spellcheck.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Find near-matches for macros.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Find near-matches for macros.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-target-def.h gcc-14.1.0/gcc/c-family/c-target-def.h
*** gcc-13.2.0/gcc/c-family/c-target-def.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-target-def.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Default initializers for C-family target hooks.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
--- 1,5 ----
  /* Default initializers for C-family target hooks.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-target.def gcc-14.1.0/gcc/c-family/c-target.def
*** gcc-13.2.0/gcc/c-family/c-target.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-target.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target hook definitions for C-family front ends.
!    Copyright (C) 2001-2023 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
--- 1,5 ----
  /* Target hook definitions for C-family front ends.
!    Copyright (C) 2001-2024 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-target.h gcc-14.1.0/gcc/c-family/c-target.h
*** gcc-13.2.0/gcc/c-family/c-target.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-target.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Data structure definitions for target-specific C-family behavior.
!    Copyright (C) 2001-2023 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
--- 1,5 ----
  /* Data structure definitions for target-specific C-family behavior.
!    Copyright (C) 2001-2024 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-ubsan.cc gcc-14.1.0/gcc/c-family/c-ubsan.cc
*** gcc-13.2.0/gcc/c-family/c-ubsan.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-ubsan.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* UndefinedBehaviorSanitizer, undefined behavior detector.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
     Contributed by Marek Polacek <polacek@redhat.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* UndefinedBehaviorSanitizer, undefined behavior detector.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
     Contributed by Marek Polacek <polacek@redhat.com>
  
  This file is part of GCC.
*************** ubsan_instrument_division (location_t lo
*** 57,63 ****
        && sanitize_flags_p (SANITIZE_DIVIDE))
      t = fold_build2 (EQ_EXPR, boolean_type_node,
  		     op1, build_int_cst (type, 0));
!   else if (TREE_CODE (type) == REAL_TYPE
  	   && sanitize_flags_p (SANITIZE_FLOAT_DIVIDE))
      {
        t = fold_build2 (EQ_EXPR, boolean_type_node,
--- 57,63 ----
        && sanitize_flags_p (SANITIZE_DIVIDE))
      t = fold_build2 (EQ_EXPR, boolean_type_node,
  		     op1, build_int_cst (type, 0));
!   else if (SCALAR_FLOAT_TYPE_P (type)
  	   && sanitize_flags_p (SANITIZE_FLOAT_DIVIDE))
      {
        t = fold_build2 (EQ_EXPR, boolean_type_node,
*************** ubsan_instrument_shift (location_t loc,
*** 256,263 ****
      tt = build_call_expr_loc (loc, builtin_decl_explicit (BUILT_IN_TRAP), 0);
    else
      {
!       tree data = ubsan_create_data ("__ubsan_shift_data", 1, &loc,
! 				     ubsan_type_descriptor (type0),
  				     ubsan_type_descriptor (type1), NULL_TREE,
  				     NULL_TREE);
        data = build_fold_addr_expr_loc (loc, data);
--- 256,289 ----
      tt = build_call_expr_loc (loc, builtin_decl_explicit (BUILT_IN_TRAP), 0);
    else
      {
!       if (TREE_CODE (type1) == BITINT_TYPE
! 	  && TYPE_PRECISION (type1) > MAX_FIXED_MODE_SIZE)
! 	{
! 	  /* Workaround for missing _BitInt support in libsanitizer.
! 	     Instead of crashing in the library, pretend values above
! 	     maximum value of normal integral type or below minimum value
! 	     of that type are those extremes.  */
! 	  tree type2 = build_nonstandard_integer_type (MAX_FIXED_MODE_SIZE,
! 						       TYPE_UNSIGNED (type1));
! 	  tree op2 = op1;
! 	  if (!TYPE_UNSIGNED (type1))
! 	    {
! 	      op2 = fold_build2 (LT_EXPR, boolean_type_node, unshare_expr (op1),
! 				 fold_convert (type1, TYPE_MIN_VALUE (type2)));
! 	      op2 = fold_build3 (COND_EXPR, type2, op2, TYPE_MIN_VALUE (type2),
! 				 fold_convert (type2, unshare_expr (op1)));
! 	    }
! 	  else
! 	    op2 = fold_convert (type2, op1);
! 	  tree op3
! 	    = fold_build2 (GT_EXPR, boolean_type_node, unshare_expr (op1),
! 			   fold_convert (type1, TYPE_MAX_VALUE (type2)));
! 	  op1 = fold_build3 (COND_EXPR, type2, op3, TYPE_MAX_VALUE (type2),
! 			     op2);
! 	  type1 = type2;
! 	}
!       tree utd0 = ubsan_type_descriptor (type0, UBSAN_PRINT_FORCE_INT);
!       tree data = ubsan_create_data ("__ubsan_shift_data", 1, &loc, utd0,
  				     ubsan_type_descriptor (type1), NULL_TREE,
  				     NULL_TREE);
        data = build_fold_addr_expr_loc (loc, data);
*************** ubsan_maybe_instrument_array_ref (tree *
*** 505,516 ****
        tree e = ubsan_instrument_bounds (EXPR_LOCATION (*expr_p), op0, &op1,
  					ignore_off_by_one);
        if (e != NULL_TREE)
! 	{
! 	  tree t = copy_node (*expr_p);
! 	  TREE_OPERAND (t, 1) = build2 (COMPOUND_EXPR, TREE_TYPE (op1),
! 					e, op1);
! 	  *expr_p = t;
! 	}
      }
  }
  
--- 531,538 ----
        tree e = ubsan_instrument_bounds (EXPR_LOCATION (*expr_p), op0, &op1,
  					ignore_off_by_one);
        if (e != NULL_TREE)
! 	TREE_OPERAND (*expr_p, 1) = build2 (COMPOUND_EXPR, TREE_TYPE (op1),
! 					    e, op1);
      }
  }
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-ubsan.h gcc-14.1.0/gcc/c-family/c-ubsan.h
*** gcc-13.2.0/gcc/c-family/c-ubsan.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-ubsan.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* UndefinedBehaviorSanitizer, undefined behavior detector.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
     Contributed by Marek Polacek <polacek@redhat.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* UndefinedBehaviorSanitizer, undefined behavior detector.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
     Contributed by Marek Polacek <polacek@redhat.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/c-family/c-warn.cc gcc-14.1.0/gcc/c-family/c-warn.cc
*** gcc-13.2.0/gcc/c-family/c-warn.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c-warn.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Diagnostic routines shared by all languages that are variants of C.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Diagnostic routines shared by all languages that are variants of C.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** conversion_warning (location_t loc, tree
*** 1227,1233 ****
  	  {
  	    bool cstresult
  	      = (result
! 		 && TREE_CODE_CLASS (TREE_CODE (result)) == tcc_constant);
  	    if (TYPE_UNSIGNED (type))
  	      {
  		if (cstresult)
--- 1227,1233 ----
  	  {
  	    bool cstresult
  	      = (result
! 		 && CONSTANT_CLASS_P (result));
  	    if (TYPE_UNSIGNED (type))
  	      {
  		if (cstresult)
*************** conversion_warning (location_t loc, tree
*** 1255,1261 ****
  			      expr_type, type, expr);
  	      }
  	  }
! 	else if (TREE_CODE_CLASS (TREE_CODE (result)) == tcc_constant)
  	  warning_at (loc, warnopt,
  		      "conversion from %qT to %qT changes value from %qE to %qE",
  		      expr_type, type, expr, result);
--- 1255,1261 ----
  			      expr_type, type, expr);
  	      }
  	  }
! 	else if (CONSTANT_CLASS_P (result))
  	  warning_at (loc, warnopt,
  		      "conversion from %qT to %qT changes value from %qE to %qE",
  		      expr_type, type, expr, result);
*************** conversion_warning (location_t loc, tree
*** 1306,1313 ****
        }
  
      case BIT_AND_EXPR:
!       if (TREE_CODE (expr_type) == INTEGER_TYPE
! 	  && TREE_CODE (type) == INTEGER_TYPE)
  	for (int i = 0; i < 2; ++i)
  	  {
  	    tree op = TREE_OPERAND (expr, i);
--- 1306,1315 ----
        }
  
      case BIT_AND_EXPR:
!       if ((TREE_CODE (expr_type) == INTEGER_TYPE
! 	   || TREE_CODE (expr_type) == BITINT_TYPE)
! 	  && (TREE_CODE (type) == INTEGER_TYPE
! 	      || TREE_CODE (type) == BITINT_TYPE))
  	for (int i = 0; i < 2; ++i)
  	  {
  	    tree op = TREE_OPERAND (expr, i);
*************** conversion_warning (location_t loc, tree
*** 1348,1356 ****
  	  break;
  
  	if (arith_ops
! 	    && global_dc->option_enabled (warnopt,
! 					  global_dc->lang_mask,
! 					  global_dc->option_state))
  	  {
  	    for (int i = 0; i < arith_ops; ++i)
  	      {
--- 1350,1356 ----
  	  break;
  
  	if (arith_ops
! 	    && global_dc->option_enabled_p (warnopt))
  	  {
  	    for (int i = 0; i < arith_ops; ++i)
  	      {
*************** warnings_for_convert_and_check (location
*** 1404,1410 ****
    while (TREE_CODE (result) == COMPOUND_EXPR)
      result = TREE_OPERAND (result, 1);
  
!   bool cst = TREE_CODE_CLASS (TREE_CODE (result)) == tcc_constant;
    tree exprtype = TREE_TYPE (expr);
    tree result_diag;
    /* We're interested in the actual numerical value here, not its ASCII
--- 1404,1410 ----
    while (TREE_CODE (result) == COMPOUND_EXPR)
      result = TREE_OPERAND (result, 1);
  
!   bool cst = CONSTANT_CLASS_P (result);
    tree exprtype = TREE_TYPE (expr);
    tree result_diag;
    /* We're interested in the actual numerical value here, not its ASCII
*************** warnings_for_convert_and_check (location
*** 1416,1421 ****
--- 1416,1422 ----
  
    if (TREE_CODE (expr) == INTEGER_CST
        && (TREE_CODE (type) == INTEGER_TYPE
+ 	  || TREE_CODE (type) == BITINT_TYPE
  	  || (TREE_CODE (type) == ENUMERAL_TYPE
  	      && TREE_CODE (ENUM_UNDERLYING_TYPE (type)) != BOOLEAN_TYPE))
        && !int_fits_type_p (expr, type))
*************** warnings_for_convert_and_check (location
*** 1466,1474 ****
  	}
        /* No warning for converting 0x80000000 to int.  */
        else if (pedantic
! 	       && (TREE_CODE (exprtype) != INTEGER_TYPE
! 		   || TYPE_PRECISION (exprtype)
! 		   != TYPE_PRECISION (type)))
  	{
  	  if (cst)
  	    warning_at (loc, OPT_Woverflow,
--- 1467,1476 ----
  	}
        /* No warning for converting 0x80000000 to int.  */
        else if (pedantic
! 	       && ((TREE_CODE (exprtype) != INTEGER_TYPE
! 		    && TREE_CODE (exprtype) != BITINT_TYPE)
! 		   || (TYPE_PRECISION (exprtype)
! 		       != TYPE_PRECISION (type))))
  	{
  	  if (cst)
  	    warning_at (loc, OPT_Woverflow,
*************** match_case_to_enum_1 (tree key, tree typ
*** 1513,1525 ****
      return;
  
    char buf[WIDE_INT_PRINT_BUFFER_SIZE];
  
    if (tree_fits_uhwi_p (key))
!     print_dec (wi::to_wide (key), buf, UNSIGNED);
    else if (tree_fits_shwi_p (key))
!     print_dec (wi::to_wide (key), buf, SIGNED);
    else
!     print_hex (wi::to_wide (key), buf);
  
    if (TYPE_NAME (type) == NULL_TREE)
      warning_at (DECL_SOURCE_LOCATION (CASE_LABEL (label)),
--- 1515,1529 ----
      return;
  
    char buf[WIDE_INT_PRINT_BUFFER_SIZE];
+   wide_int w = wi::to_wide (key);
  
+   gcc_assert (w.get_precision () <= WIDE_INT_MAX_INL_PRECISION);
    if (tree_fits_uhwi_p (key))
!     print_dec (w, buf, UNSIGNED);
    else if (tree_fits_shwi_p (key))
!     print_dec (w, buf, SIGNED);
    else
!     print_hex (w, buf);
  
    if (TYPE_NAME (type) == NULL_TREE)
      warning_at (DECL_SOURCE_LOCATION (CASE_LABEL (label)),
*************** warn_about_parentheses (location_t loc,
*** 2172,2178 ****
  	}
        return;
      }
- #undef NOT_A_BOOLEAN_EXPR_P
  }
  
  /* If LABEL (a LABEL_DECL) has not been used, issue a warning.  */
--- 2176,2181 ----
*************** warn_for_memset (location_t loc, tree ar
*** 2259,2264 ****
--- 2262,2337 ----
      }
  }
  
+ /* Warn for calloc (sizeof (X), n).  */
+ 
+ void
+ warn_for_calloc (location_t *sizeof_arg_loc, tree callee,
+ 		 vec<tree, va_gc> *params, tree *sizeof_arg, tree attr)
+ {
+   if (!TREE_VALUE (attr) || !TREE_CHAIN (TREE_VALUE (attr)))
+     return;
+ 
+   int arg1 = TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE (attr))) - 1;
+   int arg2
+     = TREE_INT_CST_LOW (TREE_VALUE (TREE_CHAIN (TREE_VALUE (attr)))) - 1;
+   if (arg1 < 0
+       || (unsigned) arg1 >= vec_safe_length (params)
+       || arg1 >= 6
+       || arg2 < 0
+       || (unsigned) arg2 >= vec_safe_length (params)
+       || arg2 >= 6
+       || arg1 >= arg2)
+     return;
+ 
+   if (sizeof_arg[arg1] == NULL_TREE || sizeof_arg[arg2] != NULL_TREE)
+     return;
+ 
+   if (warning_at (sizeof_arg_loc[arg1], OPT_Wcalloc_transposed_args,
+ 		  "%qD sizes specified with %<sizeof%> in the earlier "
+ 		  "argument and not in the later argument", callee))
+     inform (sizeof_arg_loc[arg1], "earlier argument should specify number "
+ 	    "of elements, later size of each element");
+ }
+ 
+ /* Warn for allocator calls where the constant allocated size is smaller
+    than sizeof (TYPE).  */
+ 
+ void
+ warn_for_alloc_size (location_t loc, tree type, tree call, tree alloc_size)
+ {
+   if (!TREE_VALUE (alloc_size))
+     return;
+ 
+   tree arg1 = TREE_VALUE (TREE_VALUE (alloc_size));
+   int idx1 = TREE_INT_CST_LOW (arg1) - 1;
+   if (idx1 < 0 || idx1 >= call_expr_nargs (call))
+     return;
+   arg1 = CALL_EXPR_ARG (call, idx1);
+   if (TREE_CODE (arg1) != INTEGER_CST)
+     return;
+   if (TREE_CHAIN (TREE_VALUE (alloc_size)))
+     {
+       tree arg2 = TREE_VALUE (TREE_CHAIN (TREE_VALUE (alloc_size)));
+       int idx2 = TREE_INT_CST_LOW (arg2) - 1;
+       if (idx2 < 0 || idx2 >= call_expr_nargs (call))
+ 	return;
+       arg2 = CALL_EXPR_ARG (call, idx2);
+       if (TREE_CODE (arg2) != INTEGER_CST)
+ 	return;
+       arg1 = int_const_binop (MULT_EXPR, fold_convert (sizetype, arg1),
+ 			      fold_convert (sizetype, arg2));
+       if (TREE_CODE (arg1) != INTEGER_CST)
+ 	return;
+     }
+   if (!VOID_TYPE_P (type)
+       && TYPE_SIZE_UNIT (type)
+       && TREE_CODE (TYPE_SIZE_UNIT (type)) == INTEGER_CST
+       && tree_int_cst_lt (arg1, TYPE_SIZE_UNIT (type)))
+     warning_at (loc, OPT_Walloc_size,
+ 		"allocation of insufficient size %qE for type %qT with "
+ 		"size %qE", arg1, type, TYPE_SIZE_UNIT (type));
+ }
+ 
  /* Subroutine of build_binary_op. Give warnings for comparisons
     between signed and unsigned quantities that may fail. Do the
     checking based on the original operand trees ORIG_OP0 and ORIG_OP1,
*************** warn_for_multistatement_macros (location
*** 2945,2951 ****
    while (linemap_macro_expansion_map_p (guard_map))
      {
        const line_map_macro *mm = linemap_check_macro (guard_map);
!       guard_loc_exp = MACRO_MAP_EXPANSION_POINT_LOCATION (mm);
        guard_map = linemap_lookup (line_table, guard_loc_exp);
        if (guard_map == body_map)
  	return;
--- 3018,3024 ----
    while (linemap_macro_expansion_map_p (guard_map))
      {
        const line_map_macro *mm = linemap_check_macro (guard_map);
!       guard_loc_exp = mm->get_expansion_point_location ();
        guard_map = linemap_lookup (line_table, guard_loc_exp);
        if (guard_map == body_map)
  	return;
*************** check_alignment_of_packed_member (tree t
*** 2987,3000 ****
    return NULL_TREE;
  }
  
! /* Return struct or union type if the right hand value, RHS:
!    1. Is a pointer value which isn't aligned to a pointer type TYPE.
!    2. Is an address which takes the unaligned address of packed member
!       of struct or union when assigning to TYPE.
     Otherwise, return NULL_TREE.  */
  
  static tree
! check_address_or_pointer_of_packed_member (tree type, tree rhs)
  {
    bool rvalue = true;
    bool indirect = false;
--- 3060,3072 ----
    return NULL_TREE;
  }
  
! /* Return struct or union type if the right hand value, RHS,
!    is an address which takes the unaligned address of packed member
!    of struct or union when assigning to TYPE.
     Otherwise, return NULL_TREE.  */
  
  static tree
! check_address_of_packed_member (tree type, tree rhs)
  {
    bool rvalue = true;
    bool indirect = false;
*************** check_address_or_pointer_of_packed_membe
*** 3017,3073 ****
  
    type = TREE_TYPE (type);
  
-   if (TREE_CODE (rhs) == PARM_DECL
-       || VAR_P (rhs)
-       || TREE_CODE (rhs) == CALL_EXPR)
-     {
-       tree rhstype = TREE_TYPE (rhs);
-       if (TREE_CODE (rhs) == CALL_EXPR)
- 	{
- 	  rhs = CALL_EXPR_FN (rhs);	/* Pointer expression.  */
- 	  if (rhs == NULL_TREE)
- 	    return NULL_TREE;
- 	  rhs = TREE_TYPE (rhs);	/* Pointer type.  */
- 	  /* We could be called while processing a template and RHS could be
- 	     a functor.  In that case it's a class, not a pointer.  */
- 	  if (!POINTER_TYPE_P (rhs))
- 	    return NULL_TREE;
- 	  rhs = TREE_TYPE (rhs);	/* Function type.  */
- 	  rhstype = TREE_TYPE (rhs);
- 	  if (!rhstype || !POINTER_TYPE_P (rhstype))
- 	    return NULL_TREE;
- 	  rvalue = true;
- 	}
-       if (rvalue && POINTER_TYPE_P (rhstype))
- 	rhstype = TREE_TYPE (rhstype);
-       while (TREE_CODE (rhstype) == ARRAY_TYPE)
- 	rhstype = TREE_TYPE (rhstype);
-       if (TYPE_PACKED (rhstype))
- 	{
- 	  unsigned int type_align = min_align_of_type (type);
- 	  unsigned int rhs_align = min_align_of_type (rhstype);
- 	  if (rhs_align < type_align)
- 	    {
- 	      auto_diagnostic_group d;
- 	      location_t location = EXPR_LOC_OR_LOC (rhs, input_location);
- 	      if (warning_at (location, OPT_Waddress_of_packed_member,
- 			      "converting a packed %qT pointer (alignment %d) "
- 			      "to a %qT pointer (alignment %d) may result in "
- 			      "an unaligned pointer value",
- 			      rhstype, rhs_align, type, type_align))
- 		{
- 		  tree decl = TYPE_STUB_DECL (rhstype);
- 		  if (decl)
- 		    inform (DECL_SOURCE_LOCATION (decl), "defined here");
- 		  decl = TYPE_STUB_DECL (type);
- 		  if (decl)
- 		    inform (DECL_SOURCE_LOCATION (decl), "defined here");
- 		}
- 	    }
- 	}
-       return NULL_TREE;
-     }
- 
    tree context = NULL_TREE;
  
    /* Check alignment of the object.  */
--- 3089,3094 ----
*************** check_address_or_pointer_of_packed_membe
*** 3090,3103 ****
    return context;
  }
  
! /* Check and warn if the right hand value, RHS:
!    1. Is a pointer value which isn't aligned to a pointer type TYPE.
!    2. Is an address which takes the unaligned address of packed member
!       of struct or union when assigning to TYPE.
!  */
  
  static void
! check_and_warn_address_or_pointer_of_packed_member (tree type, tree rhs)
  {
    bool nop_p = false;
    tree orig_rhs;
--- 3111,3122 ----
    return context;
  }
  
! /* Check and warn if the right hand value, RHS,
!    is an address which takes the unaligned address of packed member
!    of struct or union when assigning to TYPE.  */
  
  static void
! check_and_warn_address_of_packed_member (tree type, tree rhs)
  {
    bool nop_p = false;
    tree orig_rhs;
*************** check_and_warn_address_or_pointer_of_pac
*** 3115,3125 ****
    if (TREE_CODE (rhs) == COND_EXPR)
      {
        /* Check the THEN path.  */
!       check_and_warn_address_or_pointer_of_packed_member
  	(type, TREE_OPERAND (rhs, 1));
  
        /* Check the ELSE path.  */
!       check_and_warn_address_or_pointer_of_packed_member
  	(type, TREE_OPERAND (rhs, 2));
      }
    else
--- 3134,3144 ----
    if (TREE_CODE (rhs) == COND_EXPR)
      {
        /* Check the THEN path.  */
!       check_and_warn_address_of_packed_member
  	(type, TREE_OPERAND (rhs, 1));
  
        /* Check the ELSE path.  */
!       check_and_warn_address_of_packed_member
  	(type, TREE_OPERAND (rhs, 2));
      }
    else
*************** check_and_warn_address_or_pointer_of_pac
*** 3143,3149 ****
  	}
  
        tree context
! 	= check_address_or_pointer_of_packed_member (type, rhs);
        if (context)
  	{
  	  location_t loc = EXPR_LOC_OR_LOC (rhs, input_location);
--- 3162,3168 ----
  	}
  
        tree context
! 	= check_address_of_packed_member (type, rhs);
        if (context)
  	{
  	  location_t loc = EXPR_LOC_OR_LOC (rhs, input_location);
*************** check_and_warn_address_or_pointer_of_pac
*** 3155,3168 ****
      }
  }
  
! /* Warn if the right hand value, RHS:
!    1. Is a pointer value which isn't aligned to a pointer type TYPE.
!    2. Is an address which takes the unaligned address of packed member
!       of struct or union when assigning to TYPE.
! */
  
  void
! warn_for_address_or_pointer_of_packed_member (tree type, tree rhs)
  {
    if (!warn_address_of_packed_member)
      return;
--- 3174,3185 ----
      }
  }
  
! /* Warn if the right hand value, RHS,
!    is an address which takes the unaligned address of packed member
!    of struct or union when assigning to TYPE.  */
  
  void
! warn_for_address_of_packed_member (tree type, tree rhs)
  {
    if (!warn_address_of_packed_member)
      return;
*************** warn_for_address_or_pointer_of_packed_me
*** 3171,3177 ****
    if (!POINTER_TYPE_P (type))
      return;
  
!   check_and_warn_address_or_pointer_of_packed_member (type, rhs);
  }
  
  /* Return EXPR + 1.  Convenience helper used below.  */
--- 3188,3194 ----
    if (!POINTER_TYPE_P (type))
      return;
  
!   check_and_warn_address_of_packed_member (type, rhs);
  }
  
  /* Return EXPR + 1.  Convenience helper used below.  */
*************** warn_parm_array_mismatch (location_t ori
*** 3599,3621 ****
  	      continue;
  	    }
  
! 	  if (newunspec != curunspec)
  	    {
  	      location_t warnloc = newloc, noteloc = origloc;
  	      const char *warnparmstr = newparmstr.c_str ();
  	      const char *noteparmstr = curparmstr.c_str ();
  	      unsigned warnunspec = newunspec, noteunspec = curunspec;
  
- 	      if (newunspec < curunspec)
- 		{
- 		  /* If the new declaration has fewer unspecified bounds
- 		     point the warning to the previous declaration to make
- 		     it clear that that's the one to change.  Otherwise,
- 		     point it to the new decl.  */
- 		  std::swap (warnloc, noteloc);
- 		  std::swap (warnparmstr, noteparmstr);
- 		  std::swap (warnunspec, noteunspec);
- 		}
  	      if (warning_n (warnloc, OPT_Wvla_parameter, warnunspec,
  			     "argument %u of type %s declared with "
  			     "%u unspecified variable bound",
--- 3616,3628 ----
  	      continue;
  	    }
  
! 	  if (newunspec > curunspec)
  	    {
  	      location_t warnloc = newloc, noteloc = origloc;
  	      const char *warnparmstr = newparmstr.c_str ();
  	      const char *noteparmstr = curparmstr.c_str ();
  	      unsigned warnunspec = newunspec, noteunspec = curunspec;
  
  	      if (warning_n (warnloc, OPT_Wvla_parameter, warnunspec,
  			     "argument %u of type %s declared with "
  			     "%u unspecified variable bound",
*************** warn_parm_array_mismatch (location_t ori
*** 3643,3656 ****
  	}
  
        /* Iterate over the lists of VLA variable bounds, comparing each
! 	 pair for equality, and diagnosing mismatches.  The case of
! 	 the lists having different lengths is handled above so at
! 	 this point they do .  */
!       for (tree newvbl = newa->size, curvbl = cura->size; newvbl;
  	   newvbl = TREE_CHAIN (newvbl), curvbl = TREE_CHAIN (curvbl))
  	{
- 	  gcc_assert (curvbl);
- 
  	  tree newpos = TREE_PURPOSE (newvbl);
  	  tree curpos = TREE_PURPOSE (curvbl);
  
--- 3650,3659 ----
  	}
  
        /* Iterate over the lists of VLA variable bounds, comparing each
! 	 pair for equality, and diagnosing mismatches.  */
!       for (tree newvbl = newa->size, curvbl = cura->size; newvbl && curvbl;
  	   newvbl = TREE_CHAIN (newvbl), curvbl = TREE_CHAIN (curvbl))
  	{
  	  tree newpos = TREE_PURPOSE (newvbl);
  	  tree curpos = TREE_PURPOSE (curvbl);
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/c.opt gcc-14.1.0/gcc/c-family/c.opt
*** gcc-13.2.0/gcc/c-family/c.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/c.opt	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ; Options for the C, ObjC, C++ and ObjC++ front ends.
! ; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,5 ----
  ; Options for the C, ObjC, C++ and ObjC++ front ends.
! ; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** MT
*** 256,261 ****
--- 256,273 ----
  C ObjC C++ ObjC++ Joined Separate MissingArgError(missing makefile target after %qs)
  -MT <target>	Add a target that does not require quoting.
  
+ fdeps-format=
+ C ObjC C++ ObjC++ NoDriverArg Joined MissingArgError(missing format after %qs)
+ Structured format for output dependency information.  Supported (\"p1689r5\").
+ 
+ fdeps-file=
+ C ObjC C++ ObjC++ NoDriverArg Joined MissingArgError(missing output path after %qs)
+ File for output dependency information.
+ 
+ fdeps-target=
+ C ObjC C++ ObjC++ NoDriverArg Joined MissingArgError(missing path after %qs)
+ -fdeps-target=obj.o Output file for the compile step.
+ 
  P
  C ObjC C++ ObjC++
  Do not generate #line directives.
*************** Waddress
*** 291,296 ****
--- 303,312 ----
  C ObjC C++ ObjC++ Var(warn_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn about suspicious uses of memory addresses.
  
+ Waddress-of-packed-member
+ C ObjC C++ ObjC++ Var(warn_address_of_packed_member) Init(1) Warning
+ Warn when the address of packed member of struct or union is taken.
+ 
  Enum
  Name(warn_aligned_new_level) Type(int) UnknownError(argument %qs to %<-Waligned-new%> not recognized)
  
*************** Walloca
*** 319,324 ****
--- 335,344 ----
  C ObjC C++ ObjC++ Var(warn_alloca) Warning
  Warn on any use of alloca.
  
+ Walloc-size
+ C ObjC C++ ObjC++ Var(warn_alloc_size) Warning LangEnabledBy(C ObjC C++ ObjC++, Wextra)
+ Warn when allocating insufficient storage for the target type of the assigned pointer.
+ 
  Walloc-size-larger-than=
  C ObjC C++ LTO ObjC++ Var(warn_alloc_size_limit) Joined Host_Wide_Int ByteSize Warning Init(HOST_WIDE_INT_MAX)
  -Walloc-size-larger-than=<bytes>	Warn for calls to allocation functions that
*************** Wno-alloca-larger-than
*** 342,347 ****
--- 362,371 ----
  C ObjC C++ LTO ObjC++ Alias(Walloca-larger-than=,18446744073709551615EiB,none) Warning
  Disable Walloca-larger-than= warning.  Equivalent to Walloca-larger-than=<SIZE_MAX> or larger.
  
+ Warith-conversion
+ C ObjC C++ ObjC++ Var(warn_arith_conv) Warning
+ Warn if conversion of the result of arithmetic might change the value even though converting the operands cannot.
+ 
  Warray-bounds=
  LangEnabledBy(C ObjC C++ LTO ObjC++,Wall,1,0)
  ; in common.opt
*************** Warray-parameter=
*** 358,367 ****
  C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_array_parameter) IntegerRange(0, 2) LangEnabledBy(C ObjC C++ ObjC++,Wall, 2, 0) Warning
  Warn about mismatched declarations of array parameters and unsafe accesses to them.
  
- Wzero-length-bounds
- C ObjC C++ ObjC++ Var(warn_zero_length_bounds) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn about accesses to interior zero-length array members.
- 
  Wassign-intercept
  ObjC ObjC++ Var(warn_assign_intercept) Warning
  Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
--- 382,387 ----
*************** Wbool-operation
*** 405,414 ****
  C ObjC C++ ObjC++ Var(warn_bool_op) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn about certain operations on boolean expressions.
  
- Wframe-address
- C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
- 
  Wbuiltin-declaration-mismatch
  C ObjC C++ ObjC++ Var(warn_builtin_declaration_mismatch) Init(1) Warning
  Warn when a built-in function is declared with the wrong signature.
--- 425,430 ----
*************** Wbuiltin-macro-redefined
*** 417,425 ****
  C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
  Warn when a built-in preprocessor macro is undefined or redefined.
  
  Wc11-c2x-compat
! C ObjC CPP(cpp_warn_c11_c2x_compat) CppReason(CPP_W_C11_C2X_COMPAT) Var(warn_c11_c2x_compat) Init(-1) Warning
! Warn about features not present in ISO C11, but present in ISO C2X.
  
  Wc90-c99-compat
  C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
--- 433,445 ----
  C ObjC C++ ObjC++ CPP(warn_builtin_macro_redefined) CppReason(CPP_W_BUILTIN_MACRO_REDEFINED) Var(cpp_warn_builtin_macro_redefined) Init(1) Warning
  Warn when a built-in preprocessor macro is undefined or redefined.
  
+ Wc11-c23-compat
+ C ObjC CPP(cpp_warn_c11_c23_compat) CppReason(CPP_W_C11_C23_COMPAT) Var(warn_c11_c23_compat) Init(-1) Warning
+ Warn about features not present in ISO C11, but present in ISO C23.
+ 
  Wc11-c2x-compat
! C ObjC Alias(Wc11-c23-compat)
! Deprecated in favor of -Wc11-c23-compat.
  
  Wc90-c99-compat
  C ObjC CPP(cpp_warn_c90_c99_compat) CppReason(CPP_W_C90_C99_COMPAT) Var(warn_c90_c99_compat) Init(-1) Warning
*************** Wc++23-extensions
*** 478,483 ****
--- 498,511 ----
  C++ ObjC++ Var(warn_cxx23_extensions) Warning Init(1)
  Warn about C++23 constructs in code compiled with an older standard.
  
+ Wc++26-extensions
+ C++ ObjC++ Var(warn_cxx26_extensions) Warning Init(1)
+ Warn about C++26 constructs in code compiled with an older standard.
+ 
+ Wcalloc-transposed-args
+ C ObjC C++ ObjC++ Var(warn_calloc_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wextra)
+ Warn about suspicious calls to calloc-like functions where sizeof expression is the earlier size argument and not the latter.
+ 
  Wcast-function-type
  C ObjC C++ ObjC++ Var(warn_cast_function_type) Warning EnabledBy(Wextra)
  Warn about casts between incompatible function types.
*************** Wcast-qual
*** 486,491 ****
--- 514,523 ----
  C ObjC C++ ObjC++ Var(warn_cast_qual) Warning
  Warn about casts which discard qualifiers.
  
+ Wcast-user-defined
+ C++ ObjC++ Var(warn_cast_user_defined) Warning Init(1)
+ Warn about a cast to reference type that does not use a related user-defined conversion function.
+ 
  Wcatch-value
  C++ ObjC++ Warning Alias(Wcatch-value=, 1, 0)
  Warn about catch handlers of non-reference type.
*************** Wchkp
*** 506,511 ****
--- 538,551 ----
  C ObjC C++ ObjC++ Warning WarnRemoved
  Removed in GCC 9.  This switch has no effect.
  
+ Wclass-conversion
+ C++ ObjC++ Var(warn_class_conversion) Init(1) Warning
+ Warn when a conversion function will never be called due to the type it converts to.
+ 
+ Wclass-memaccess
+ C++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall)
+ Warn for unsafe raw memory writes to objects of class types.
+ 
  Wclobbered
  C ObjC C++ ObjC++ Var(warn_clobbered) Warning EnabledBy(Wextra)
  Warn about variables that might be changed by \"longjmp\" or \"vfork\".
*************** C ObjC C++ ObjC++ Joined RejectNegative
*** 560,566 ****
  Warn for uses of pointers to auto variables whose lifetime has ended.
  
  Wdangling-reference
! C++ ObjC++ Var(warn_dangling_reference) Warning LangEnabledBy(C++ ObjC++, Wextra)
  Warn when a reference is bound to a temporary whose lifetime has ended.
  
  Wdate-time
--- 600,606 ----
  Warn for uses of pointers to auto variables whose lifetime has ended.
  
  Wdangling-reference
! C++ ObjC++ Var(warn_dangling_reference) Warning LangEnabledBy(C++ ObjC++, Wall)
  Warn when a reference is bound to a temporary whose lifetime has ended.
  
  Wdate-time
*************** Wdeclaration-after-statement
*** 571,576 ****
--- 611,620 ----
  C ObjC Var(warn_declaration_after_statement) Init(-1) Warning
  Warn when a declaration is found after a statement.
  
+ Wdeclaration-missing-parameter-type
+ C ObjC Var(warn_declaration_missing_parameter) Warning Init(1)
+ Warn for missing parameter types in function declarations.
+ 
  Wdelete-incomplete
  C++ ObjC++ Var(warn_delete_incomplete) Init(1) Warning
  Warn when deleting a pointer to incomplete type.
*************** Wdiv-by-zero
*** 618,623 ****
--- 662,675 ----
  C ObjC C++ ObjC++ Var(warn_div_by_zero) Init(1) Warning
  Warn about compile-time integer division by zero.
  
+ Wdouble-promotion
+ C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
+ Warn about implicit conversions from \"float\" to \"double\".
+ 
+ Wduplicate-decl-specifier
+ C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
+ Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
+ 
  Wduplicated-branches
  C ObjC C++ ObjC++ Var(warn_duplicated_branches) Init(0) Warning
  Warn about duplicated branches in if-else statements.
*************** Weffc++
*** 630,635 ****
--- 682,691 ----
  C++ ObjC++ Var(warn_ecpp) Warning
  Warn about violations of Effective C++ style rules.
  
+ Welaborated-enum-base
+ C++ ObjC++ Var(warn_elaborated_enum_base) Warning Init(1)
+ Warn if an additional enum-base is used in an elaborated-type-specifier.
+ 
  Wempty-body
  C ObjC C++ ObjC++ Var(warn_empty_body) Warning EnabledBy(Wextra)
  Warn about an empty body in an if or else statement.
*************** Wexceptions
*** 662,667 ****
--- 718,727 ----
  C++ ObjC++ Var(warn_exceptions) Init(1) Warning
  Warn when an exception handler is shadowed by another handler.
  
+ Wexpansion-to-defined
+ C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic)
+ Warn if \"defined\" is used outside #if.
+ 
  Wextra
  C ObjC C++ ObjC++ Warning
  ; in common.opt
*************** Wextra-semi
*** 670,675 ****
--- 730,740 ----
  C++ ObjC++ Var(warn_extra_semi) Warning
  Warn about semicolon after in-class function definition.
  
+ Wflex-array-member-not-at-end
+ C C++ Var(warn_flex_array_member_not_at_end) Warning
+ Warn when a structure containing a C99 flexible array member as the last
+ field is not at the end of another structure.
+ 
  Wfloat-conversion
  C ObjC C++ ObjC++ Var(warn_float_conversion) Warning LangEnabledBy(C ObjC C++ ObjC++,Wconversion)
  Warn for implicit type conversions that cause loss of floating point precision.
*************** C ObjC C++ LTO ObjC++ Warning Alias(Wfor
*** 703,708 ****
--- 768,778 ----
  Warn about function calls with format strings that write past the end
  of the destination region.  Same as -Wformat-overflow=1.
  
+ Wformat-overflow=
+ C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
+ Warn about function calls with format strings that write past the end
+ of the destination region.
+ 
  Wformat-security
  C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
  Warn about possible security problems with format functions.
*************** C ObjC C++ LTO ObjC++ Warning Alias(Wfor
*** 716,721 ****
--- 786,795 ----
  Warn about calls to snprintf and similar functions that truncate output.
  Same as -Wformat-truncation=1.
  
+ Wformat-truncation=
+ C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
+ Warn about calls to snprintf and similar functions that truncate output.
+ 
  Wformat-y2k
  C ObjC C++ ObjC++ Var(warn_format_y2k) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=,warn_format >= 2, 0)
  Warn about strftime formats yielding 2-digit years.
*************** Wformat=
*** 728,741 ****
  C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
  Warn about printf/scanf/strftime/strfmon format string anomalies.
  
! Wformat-overflow=
! C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_overflow) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
! Warn about function calls with format strings that write past the end
! of the destination region.
  
! Wformat-truncation=
! C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_format_trunc) Warning LangEnabledBy(C ObjC C++ LTO ObjC++,Wformat=, warn_format >= 1, 0) IntegerRange(0, 2)
! Warn about calls to snprintf and similar functions that truncate output.
  
  Wif-not-aligned
  C ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning
--- 802,814 ----
  C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
  Warn about printf/scanf/strftime/strfmon format string anomalies.
  
! Wframe-address
! C ObjC C++ ObjC++ Var(warn_frame_address) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
! Warn when __builtin_frame_address or __builtin_return_address is used unsafely.
  
! Wglobal-module
! C++ ObjC++ Var(warn_global_module) Warning Init(1)
! Warn about the global module fragment not containing only preprocessing directives.
  
  Wif-not-aligned
  C ObjC C++ ObjC++ Var(warn_if_not_aligned) Init(1) Warning
*************** Wignored-attributes
*** 749,754 ****
--- 822,846 ----
  C C++ Var(warn_ignored_attributes) Init(1) Warning
  Warn whenever attributes are ignored.
  
+ Wimplicit
+ C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
+ Warn about implicit declarations.
+ 
+ Wimplicit-fallthrough=
+ LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
+ ; in common.opt
+ 
+ Wimplicit-function-declaration
+ C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
+ Warn about implicit function declarations.
+ 
+ Wimplicit-int
+ C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
+ Warn when a declaration does not specify a type.
+ 
+ Wimport
+ C ObjC C++ ObjC++ Undocumented Ignore
+ 
  Winaccessible-base
  C++ ObjC++ Var(warn_inaccessible_base) Init(1) Warning
  Warn when a base is inaccessible in derived due to ambiguity.
*************** Winfinite-recursion
*** 761,770 ****
  C ObjC C++ LTO ObjC++ Var(warn_infinite_recursion) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
  Warn for infinitely recursive calls.
  
- Waddress-of-packed-member
- C ObjC C++ ObjC++ Var(warn_address_of_packed_member) Init(1) Warning
- Warn when the address of packed member of struct or union is taken.
- 
  Winit-self
  C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
  Warn about variables which are initialized to themselves.
--- 853,858 ----
*************** C++ ObjC++ Var(warn_interference_size) W
*** 778,810 ****
  Warn about nonsensical values of --param destructive-interference-size or
  constructive-interference-size.
  
- Wimplicit
- C ObjC Var(warn_implicit) Warning LangEnabledBy(C ObjC,Wall)
- Warn about implicit declarations.
- 
- Wimplicit-fallthrough=
- LangEnabledBy(C ObjC C++ ObjC++,Wextra,3,0)
- ; in common.opt
- 
- Wdouble-promotion
- C ObjC C++ ObjC++ Var(warn_double_promotion) Warning
- Warn about implicit conversions from \"float\" to \"double\".
- 
- Wexpansion-to-defined
- C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic)
- Warn if \"defined\" is used outside #if.
- 
- Wimplicit-function-declaration
- C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
- Warn about implicit function declarations.
- 
- Wimplicit-int
- C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
- Warn when a declaration does not specify a type.
- 
- Wimport
- C ObjC C++ ObjC++ Undocumented Ignore
- 
  Winherited-variadic-ctor
  C++ ObjC++ Var(warn_inh_var_ctor) Init(1) Warning
  Warn about C++11 inheriting constructors when the base has a variadic constructor.
--- 866,871 ----
*************** Wliteral-suffix
*** 845,858 ****
  C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
  Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
  
- Wlogical-op
- C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
- Warn when a logical operator is suspiciously always evaluating to true or false.
- 
  Wlogical-not-parentheses
  C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn when logical not is used on the left hand side operand of a comparison.
  
  Wlong-long
  C ObjC C++ ObjC++ CPP(cpp_warn_long_long) CppReason(CPP_W_LONG_LONG) Var(warn_long_long) Init(-1) Warning LangEnabledBy(C ObjC,Wc90-c99-compat)
  Do not warn about using \"long long\" when -pedantic.
--- 906,919 ----
  C++ ObjC++ CPP(warn_literal_suffix) CppReason(CPP_W_LITERAL_SUFFIX) Var(cpp_warn_literal_suffix) Init(1) Warning
  Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.
  
  Wlogical-not-parentheses
  C ObjC C++ ObjC++ Var(warn_logical_not_paren) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn when logical not is used on the left hand side operand of a comparison.
  
+ Wlogical-op
+ C ObjC C++ ObjC++ Var(warn_logical_op) Init(0) Warning
+ Warn when a logical operator is suspiciously always evaluating to true or false.
+ 
  Wlong-long
  C ObjC C++ ObjC++ CPP(cpp_warn_long_long) CppReason(CPP_W_LONG_LONG) Var(warn_long_long) Init(-1) Warning LangEnabledBy(C ObjC,Wc90-c99-compat)
  Do not warn about using \"long long\" when -pedantic.
*************** Wmain
*** 865,878 ****
  LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
  ;
  
! Wmemset-transposed-args
! C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
! Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
  
  Wmemset-elt-size
  C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
  
  Wmisleading-indentation
  C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
  Warn when the indentation of the code does not reflect the block structure.
--- 926,943 ----
  LangEnabledBy(C ObjC C++ ObjC++,Wpedantic, 2, 0)
  ;
  
! Wmaybe-uninitialized
! C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
! ;
  
  Wmemset-elt-size
  C ObjC C++ ObjC++ Var(warn_memset_elt_size) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size.
  
+ Wmemset-transposed-args
+ C ObjC C++ ObjC++ Var(warn_memset_transposed_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+ Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
+ 
  Wmisleading-indentation
  C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
  Warn when the indentation of the code does not reflect the block structure.
*************** Wmismatched-tags
*** 891,896 ****
--- 956,966 ----
  C++ ObjC++ Var(warn_mismatched_tags) Warning
  Warn when a class is redeclared or referenced using a mismatched class-key.
  
+ Wmissing-attributes
+ C ObjC C++ ObjC++ Var(warn_missing_attributes) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+ Warn about declarations of entities that may be missing attributes
+ that related entities have been declared with.
+ 
  Wmissing-braces
  C ObjC C++ ObjC++ Var(warn_missing_braces) Warning LangEnabledBy(C ObjC,Wall)
  Warn about possibly missing braces around initializers.
*************** Wmissing-field-initializers
*** 903,1028 ****
  C ObjC C++ ObjC++ Var(warn_missing_field_initializers) Warning EnabledBy(Wextra)
  Warn about missing fields in struct initializers.
  
- Wmissing-requires
- C++ ObjC++ Var(warn_missing_requires) Init(1) Warning
- Warn about likely missing requires keyword.
- 
- Wmissing-template-keyword
- C++ ObjC++ Var(warn_missing_template_keyword) Init(1) Warning
- Warn when the template keyword is missing after a member access token in a dependent member access expression if that member is a template.
- 
- Wmultistatement-macros
- C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
- 
- Wmultiple-inheritance
- C++ ObjC++ Var(warn_multiple_inheritance) Warning
- Warn on direct multiple inheritance.
- 
- Wnamespaces
- C++ ObjC++ Var(warn_namespaces) Warning
- Warn on namespace definition.
- 
- Wpacked-not-aligned
- C ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn when fields in a struct with the packed attribute are misaligned.
- 
- Wrange-loop-construct
- C++ ObjC++ Var(warn_range_loop_construct) Warning LangEnabledBy(C++ ObjC++,Wall)
- Warn when a range-based for-loop is creating unnecessary copies.
- 
- Wredundant-tags
- C++ ObjC++ Var(warn_redundant_tags) Warning
- Warn when a class or enumerated type is referenced using a redundant class-key.
- 
- Wsized-deallocation
- C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
- Warn about missing sized deallocation functions.
- 
- Wsizeof-pointer-div
- C ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
- 
- Wsizeof-array-div
- C ObjC C++ ObjC++ Var(warn_sizeof_array_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn about divisions of two sizeof operators when the first one is applied
- to an array and the divisor does not equal the size of the array element.
- 
- Wsizeof-pointer-memaccess
- C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
- 
- Wsizeof-array-argument
- C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
- Warn when sizeof is applied on a parameter declared as an array.
- 
- Wstring-compare
- C ObjC C++ LTO ObjC++ Warning Var(warn_string_compare) Warning LangEnabledBy(C ObjC C++ ObjC++, Wextra)
- Warn about calls to strcmp and strncmp used in equality expressions that
- are necessarily true or false due to the length of one and size of the other
- argument.
- 
- Wstringop-overflow
- C ObjC C++ LTO ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
- Warn about buffer overflow in string manipulation functions like memcpy
- and strcpy.
- 
- Wstringop-overflow=
- C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall, 2, 0) IntegerRange(0, 4)
- Under the control of Object Size type, warn about buffer overflow in string
- manipulation functions like memcpy and strcpy.
- 
- Wstringop-overread
- C ObjC C++ LTO ObjC++ Var(warn_stringop_overread) Init(1) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
- Warn about reading past the end of a source array in string manipulation functions like memchr and memcpy.
- 
- Wstringop-truncation
- C ObjC C++ LTO ObjC++ Var(warn_stringop_truncation) Warning Init (1) LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
- Warn about truncation in string manipulation functions like strncat and strncpy.
- 
- Wstrict-flex-arrays
- C C++ Var(warn_strict_flex_arrays) Warning
- Warn about inproper usages of flexible array members
- according to the level of -fstrict-flex-arrays.
- 
- Wsuggest-attribute=format
- C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
- Warn about functions which might be candidates for format attributes.
- 
- Wsuggest-override
- C++ ObjC++ Var(warn_override) Warning
- Suggest that the override keyword be used when the declaration of a virtual
- function overrides another.
- 
- Wswitch
- C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn about enumerated switches, with no default, missing a case.
- 
- Wswitch-default
- C ObjC C++ ObjC++ Var(warn_switch_default) Warning
- Warn about enumerated switches missing a \"default:\" statement.
- 
- Wswitch-enum
- C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
- Warn about all enumerated switches missing a specific case.
- 
- Wswitch-bool
- C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
- Warn about switches with boolean controlling expression.
- 
- Wswitch-outside-range
- C ObjC C++ ObjC++ Var(warn_switch_outside_range) Warning Init(1)
- Warn about switch values that are outside of the switch's type range.
- 
- Wtemplates
- C++ ObjC++ Var(warn_templates) Warning
- Warn on primary template declaration.
- 
- Wmissing-attributes
- C ObjC C++ ObjC++ Var(warn_missing_attributes) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
- Warn about declarations of entities that may be missing attributes
- that related entities have been declared with.
- 
  Wmissing-format-attribute
  C ObjC C++ ObjC++ Warning Alias(Wsuggest-attribute=format)
  ;
--- 973,978 ----
*************** Wmissing-prototypes
*** 1039,1044 ****
--- 989,1006 ----
  C ObjC Var(warn_missing_prototypes) Warning
  Warn about global functions without prototypes.
  
+ Wmissing-requires
+ C++ ObjC++ Var(warn_missing_requires) Init(1) Warning
+ Warn about likely missing requires keyword.
+ 
+ Wmissing-template-keyword
+ C++ ObjC++ Var(warn_missing_template_keyword) Init(1) Warning
+ Warn when the template keyword is missing after a member access token in a dependent member access expression if that member is a template.
+ 
+ Wmissing-variable-declarations
+ C ObjC Var(warn_missing_variable_declarations) Warning
+ Warn about global variables without previous declarations.
+ 
  Wmudflap
  C ObjC C++ ObjC++ WarnRemoved
  
*************** Wmultichar
*** 1046,1051 ****
--- 1008,1025 ----
  C ObjC C++ ObjC++ CPP(warn_multichar) CppReason(CPP_W_MULTICHAR) Var(cpp_warn_multichar) Init(0) Warning
  Warn about use of multi-character character constants.
  
+ Wmultiple-inheritance
+ C++ ObjC++ Var(warn_multiple_inheritance) Warning
+ Warn on direct multiple inheritance.
+ 
+ Wmultistatement-macros
+ C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+ Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
+ 
+ Wnamespaces
+ C++ ObjC++ Var(warn_namespaces) Warning
+ Warn on namespace definition.
+ 
  Wnarrowing
  C ObjC C++ ObjC++ Warning Var(warn_narrowing) Init(-1) LangEnabledBy(C++ ObjC++,Wall || Wc++11-compat)
  Warn about narrowing conversions within { } that are ill-formed in C++11.
*************** Wnon-template-friend
*** 1066,1079 ****
  C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
  Warn when non-templatized friend functions are declared within a template.
  
- Wclass-conversion
- C++ ObjC++ Var(warn_class_conversion) Init(1) Warning
- Warn when a conversion function will never be called due to the type it converts to.
- 
- Wclass-memaccess
- C++ ObjC++ Var(warn_class_memaccess) Warning LangEnabledBy(C++ ObjC++, Wall)
- Warn for unsafe raw memory writes to objects of class types.
- 
  Wnon-virtual-dtor
  C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++)
  Warn about non-virtual destructors.
--- 1040,1045 ----
*************** Wopenacc-parallelism
*** 1138,1143 ****
--- 1104,1113 ----
  C C++ Var(warn_openacc_parallelism) Warning
  Warn about potentially suboptimal choices related to OpenACC parallelism.
  
+ Wopenmp
+ C ObjC C++ ObjC++ Warning Var(warn_openmp) Init(1)
+ Warn about suspicious OpenMP code.
+ 
  Wopenmp-simd
  C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
  Warn if a simd directive is overridden by the vectorizer cost model.
*************** Woverride-init-side-effects
*** 1162,1171 ****
--- 1132,1149 ----
  C ObjC Var(warn_override_init_side_effects) Init(1) Warning
  Warn about overriding initializers with side effects.
  
+ Wnrvo
+ C++ ObjC++ Var(warn_nrvo)
+ Warn if the named return value optimization is not performed although it is allowed.
+ 
  Wpacked-bitfield-compat
  C ObjC C++ ObjC++ Var(warn_packed_bitfield_compat) Init(-1) Warning
  Warn about packed bit-fields whose offset changed in GCC 4.4.
  
+ Wpacked-not-aligned
+ C ObjC C++ ObjC++ Var(warn_packed_not_aligned) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+ Warn when fields in a struct with the packed attribute are misaligned.
+ 
  Wparentheses
  C ObjC C++ ObjC++ Var(warn_parentheses) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn about possibly missing parentheses.
*************** Wpessimizing-move
*** 1178,1183 ****
--- 1156,1169 ----
  C++ ObjC++ Var(warn_pessimizing_move) Warning LangEnabledBy(C++ ObjC++, Wall)
  Warn about calling std::move on a local object in a return statement preventing copy elision.
  
+ Wplacement-new
+ C++ Warning Alias(Wplacement-new=, 1, 0)
+ Warn for placement new expressions with undefined behavior.
+ 
+ Wplacement-new=
+ C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
+ Warn for placement new expressions with undefined behavior.
+ 
  Wpmf-conversions
  C++ ObjC++ Var(warn_pmf2ptr) Init(1) Warning
  Warn when converting the type of pointers to member functions.
*************** Wprotocol
*** 1214,1226 ****
  ObjC ObjC++ Var(warn_protocol) Init(1) Warning
  Warn if inherited methods are unimplemented.
  
! Wplacement-new
! C++ Warning Alias(Wplacement-new=, 1, 0)
! Warn for placement new expressions with undefined behavior.
! 
! Wplacement-new=
! C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
! Warn for placement new expressions with undefined behavior.
  
  Wredundant-decls
  C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
--- 1200,1208 ----
  ObjC ObjC++ Var(warn_protocol) Init(1) Warning
  Warn if inherited methods are unimplemented.
  
! Wrange-loop-construct
! C++ ObjC++ Var(warn_range_loop_construct) Warning LangEnabledBy(C++ ObjC++,Wall)
! Warn when a range-based for-loop is creating unnecessary copies.
  
  Wredundant-decls
  C ObjC C++ ObjC++ Var(warn_redundant_decls) Warning
*************** Wredundant-move
*** 1230,1235 ****
--- 1212,1221 ----
  C++ ObjC++ Var(warn_redundant_move) Warning LangEnabledBy(C++ ObjC++,Wextra)
  Warn about redundant calls to std::move.
  
+ Wredundant-tags
+ C++ ObjC++ Var(warn_redundant_tags) Warning
+ Warn when a class or enumerated type is referenced using a redundant class-key.
+ 
  Wregister
  C++ ObjC++ Var(warn_register) Warning
  Warn about uses of register storage specifier.
*************** Wreorder
*** 1238,1243 ****
--- 1224,1238 ----
  C++ ObjC++ Var(warn_reorder) Warning LangEnabledBy(C++ ObjC++,Wall)
  Warn when the compiler reorders code.
  
+ Wrestrict
+ C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall)
+ Warn when an argument passed to a restrict-qualified parameter aliases with
+ another argument.
+ 
+ Wreturn-mismatch
+ C ObjC Var(warn_return_mismatch) Warning Init(1)
+ Warn whenever void-returning functions return a non-void expressions, or a return expression is missing in a function not returning void.
+ 
  Wreturn-type
  C ObjC C++ ObjC++ Var(warn_return_type) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Init(-1)
  Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++).
*************** Wshift-negative-value
*** 1282,1291 ****
  C ObjC C++ ObjC++ Var(warn_shift_negative_value) Init(-1) Warning
  Warn if left shifting a negative value.
  
- Warith-conversion
- C ObjC C++ ObjC++ Var(warn_arith_conv) Warning
- Warn if conversion of the result of arithmetic might change the value even though converting the operands cannot.
- 
  Wsign-compare
  C ObjC C++ ObjC++ Var(warn_sign_compare) Warning LangEnabledBy(C++ ObjC++,Wall)
  Warn about signed-unsigned comparisons.
--- 1277,1282 ----
*************** Wsign-promo
*** 1302,1327 ****
  C++ ObjC++ Var(warn_sign_promo) Warning
  Warn when overload promotes from unsigned to signed.
  
! Wstrict-null-sentinel
! C++ ObjC++ Warning Var(warn_strict_null_sentinel)
! Warn about uncasted NULL used as sentinel.
  
! Wstrict-prototypes
! C ObjC Var(warn_strict_prototypes) Warning
! Warn about unprototyped function declarations.
  
  Wstrict-aliasing=
  C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3)
  ;
  
  Wstrict-overflow=
  C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5)
  ;
  
  Wstrict-selector-match
  ObjC ObjC++ Var(warn_strict_selector_match) Warning
  Warn if type signatures of candidate methods do not match exactly.
  
  Wsync-nand
  C C++ Var(warn_sync_nand) Init(1) Warning
  Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
--- 1293,1401 ----
  C++ ObjC++ Var(warn_sign_promo) Warning
  Warn when overload promotes from unsigned to signed.
  
! Wsized-deallocation
! C++ ObjC++ Var(warn_sized_deallocation) Warning EnabledBy(Wextra)
! Warn about missing sized deallocation functions.
  
! Wsizeof-array-div
! C ObjC C++ ObjC++ Var(warn_sizeof_array_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
! Warn about divisions of two sizeof operators when the first one is applied
! to an array and the divisor does not equal the size of the array element.
! 
! Wsizeof-array-argument
! C ObjC C++ ObjC++ Var(warn_sizeof_array_argument) Warning Init(1)
! Warn when sizeof is applied on a parameter declared as an array.
! 
! Wsizeof-pointer-div
! C ObjC C++ ObjC++ Var(warn_sizeof_pointer_div) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
! Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers.
! 
! Wsizeof-pointer-memaccess
! C ObjC C++ ObjC++ Var(warn_sizeof_pointer_memaccess) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
! Warn about suspicious length parameters to certain string functions if the argument uses sizeof.
  
  Wstrict-aliasing=
  C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 3, 0) IntegerRange(0, 3)
  ;
  
+ Wstrict-flex-arrays
+ C C++ Var(warn_strict_flex_arrays) Warning
+ Warn about improper usages of flexible array members
+ according to the level of -fstrict-flex-arrays.
+ 
+ Wstrict-null-sentinel
+ C++ ObjC++ Warning Var(warn_strict_null_sentinel)
+ Warn about uncasted NULL used as sentinel.
+ 
  Wstrict-overflow=
  C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 5)
  ;
  
+ Wstrict-prototypes
+ C ObjC Var(warn_strict_prototypes) Warning
+ Warn about unprototyped function declarations.
+ 
  Wstrict-selector-match
  ObjC ObjC++ Var(warn_strict_selector_match) Warning
  Warn if type signatures of candidate methods do not match exactly.
  
+ Wstring-compare
+ C ObjC C++ LTO ObjC++ Warning Var(warn_string_compare) Warning LangEnabledBy(C ObjC C++ ObjC++, Wextra)
+ Warn about calls to strcmp and strncmp used in equality expressions that
+ are necessarily true or false due to the length of one and size of the other
+ argument.
+ 
+ Wstringop-overflow
+ C ObjC C++ LTO ObjC++ Warning Alias(Wstringop-overflow=, 2, 0)
+ Warn about buffer overflow in string manipulation functions like memcpy
+ and strcpy.
+ 
+ Wstringop-overflow=
+ C ObjC C++ LTO ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow) Init(2) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall, 2, 0) IntegerRange(0, 4)
+ Under the control of Object Size type, warn about buffer overflow in string
+ manipulation functions like memcpy and strcpy.
+ 
+ Wstringop-overread
+ C ObjC C++ LTO ObjC++ Var(warn_stringop_overread) Init(1) Warning LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
+ Warn about reading past the end of a source array in string manipulation functions like memchr and memcpy.
+ 
+ Wstringop-truncation
+ C ObjC C++ LTO ObjC++ Var(warn_stringop_truncation) Warning Init (1) LangEnabledBy(C ObjC C++ LTO ObjC++, Wall)
+ Warn about truncation in string manipulation functions like strncat and strncpy.
+ 
+ Wsubobject-linkage
+ C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
+ Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
+ 
+ Wsuggest-attribute=format
+ C ObjC C++ ObjC++ Var(warn_suggest_attribute_format) Warning
+ Warn about functions which might be candidates for format attributes.
+ 
+ Wsuggest-override
+ C++ ObjC++ Var(warn_override) Warning
+ Suggest that the override keyword be used when the declaration of a virtual
+ function overrides another.
+ 
+ Wswitch
+ C ObjC C++ ObjC++ Var(warn_switch) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+ Warn about enumerated switches, with no default, missing a case.
+ 
+ Wswitch-default
+ C ObjC C++ ObjC++ Var(warn_switch_default) Warning
+ Warn about enumerated switches missing a \"default:\" statement.
+ 
+ Wswitch-enum
+ C ObjC C++ ObjC++ Var(warn_switch_enum) Warning
+ Warn about all enumerated switches missing a specific case.
+ 
+ Wswitch-bool
+ C ObjC C++ ObjC++ Var(warn_switch_bool) Warning Init(1)
+ Warn about switches with boolean controlling expression.
+ 
+ Wswitch-outside-range
+ C ObjC C++ ObjC++ Var(warn_switch_outside_range) Warning Init(1)
+ Warn about switch values that are outside of the switch's type range.
+ 
  Wsync-nand
  C C++ Var(warn_sync_nand) Init(1) Warning
  Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
*************** Wsystem-headers
*** 1334,1343 ****
--- 1408,1425 ----
  C ObjC C++ ObjC++ Warning
  ; Documented in common.opt
  
+ Wtemplates
+ C++ ObjC++ Var(warn_templates) Warning
+ Warn on primary template declaration.
+ 
  Wtautological-compare
  C ObjC C++ ObjC++ Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn if a comparison always evaluates to true or false.
  
+ Wtemplate-id-cdtor
+ C++ ObjC++ Var(warn_template_id_cdtor) Warning
+ Warn about simple-template-id in a constructor or destructor.
+ 
  Wterminate
  C++ ObjC++ Warning Var(warn_terminate) Init(1)
  Warn if a throw expression will always result in a call to terminate().
*************** Wuninitialized
*** 1370,1379 ****
  C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
  ;
  
- Wmaybe-uninitialized
- C ObjC C++ ObjC++ LTO LangEnabledBy(C ObjC C++ ObjC++ LTO,Wall)
- ;
- 
  Wunknown-pragmas
  C ObjC C++ ObjC++ Warning Var(warn_unknown_pragmas) LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
  Warn about unrecognized pragmas.
--- 1452,1457 ----
*************** Wunused
*** 1386,1391 ****
--- 1464,1477 ----
  C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
  ; documented in common.opt
  
+ Wunused-const-variable
+ C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
+ Warn when a const variable is unused.
+ 
+ Wunused-const-variable=
+ C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2)
+ Warn when a const variable is unused.
+ 
  Wunused-local-typedefs
  C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
  Warn when typedefs locally defined in a function are not used.
*************** Wunused-variable
*** 1402,1415 ****
  C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wunused)
  ; documented in common.opt
  
- Wunused-const-variable
- C ObjC C++ ObjC++ Warning Alias(Wunused-const-variable=, 2, 0)
- Warn when a const variable is unused.
- 
- Wunused-const-variable=
- C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_unused_const_variable) Warning LangEnabledBy(C ObjC,Wunused-variable, 1, 0) IntegerRange(0, 2)
- Warn when a const variable is unused.
- 
  ; Defining this option here in addition to common.opt is necessary
  ; in order for the default -Wall setting of -Wuse-after-free=2 to take
  ; effect.
--- 1488,1493 ----
*************** Wuse-after-free=
*** 1418,1423 ****
--- 1496,1505 ----
  LangEnabledBy(C ObjC C++ LTO ObjC++, Wall,2,0)
  ; in common.opt
  
+ Wuseless-cast
+ C ObjC C++ ObjC++ Var(warn_useless_cast) Warning
+ Warn about useless casts.
+ 
  Wvariadic-macros
  C ObjC C++ ObjC++ CPP(warn_variadic_macros) CppReason(CPP_W_VARIADIC_MACROS) Var(cpp_warn_variadic_macros) Init(0) Warning LangEnabledBy(C ObjC C++ ObjC++,Wpedantic || Wtraditional)
  Warn about using variadic macros.
*************** Wvexing-parse
*** 1430,1435 ****
--- 1512,1521 ----
  C++ ObjC++ Warning Var(warn_vexing_parse) Init(1)
  Warn about the most vexing parse syntactic ambiguity.
  
+ Wvirtual-move-assign
+ C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
+ Warn if a virtual base has a non-trivial move assignment operator.
+ 
  Wvla
  C ObjC C++ ObjC++ Var(warn_vla) Init(-1) Warning
  Warn if a variable length array is used.
*************** Wvirtual-inheritance
*** 1460,1469 ****
  C++ ObjC++ Var(warn_virtual_inheritance) Warning
  Warn on direct virtual inheritance.
  
- Wvirtual-move-assign
- C++ ObjC++ Var(warn_virtual_move_assign) Warning Init(1)
- Warn if a virtual base has a non-trivial move assignment operator.
- 
  Wwrite-strings
  C ObjC C++ ObjC++ Var(warn_write_strings) Warning
  In C++, nonzero means warn about deprecated conversion from string literals to 'char *'.  In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard.
--- 1546,1551 ----
*************** Wzero-as-null-pointer-constant
*** 1476,1497 ****
  C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
  Warn when a literal '0' is used as null pointer.
  
! Wuseless-cast
! C++ ObjC++ Var(warn_useless_cast) Warning
! Warn about useless casts.
! 
! Wsubobject-linkage
! C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
! Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
! 
! Wduplicate-decl-specifier
! C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
! Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
! 
! Wrestrict
! C ObjC C++ ObjC++ Var(warn_restrict) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall)
! Warn when an argument passed to a restrict-qualified parameter aliases with
! another argument.
  
  ansi
  C ObjC C++ ObjC++
--- 1558,1566 ----
  C++ ObjC++ Var(warn_zero_as_null_pointer_constant) Warning
  Warn when a literal '0' is used as null pointer.
  
! Wzero-length-bounds
! C ObjC C++ ObjC++ Var(warn_zero_length_bounds) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
! Warn about accesses to interior zero-length array members.
  
  ansi
  C ObjC C++ ObjC++
*************** fdiagnostics-show-template-tree
*** 1752,1757 ****
--- 1821,1830 ----
  C++ ObjC++ Var(flag_diagnostics_show_template_tree) Init(0)
  Print hierarchical comparisons when template types are mismatched.
  
+ fdiagnostics-all-candidates
+ C++ ObjC++ Var(flag_diagnostics_all_candidates)
+ Note all candidates during overload resolution failure.
+ 
  fdirectives-only
  C ObjC C++ ObjC++
  Preprocess directives only.
*************** fhuge-objects
*** 1845,1850 ****
--- 1918,1927 ----
  C++ ObjC++ WarnRemoved
  No longer supported.
  
+ fimmediate-escalation
+ C++ ObjC++ Var(flag_immediate_escalation) Init(1)
+ Implement P2564 for consteval propagation.
+ 
  fimplement-inlines
  C++ ObjC++ Var(flag_implement_inlines) Init(1)
  Export functions even if they can be inlined.
*************** Winvalid-imported-macros
*** 1918,1923 ****
--- 1995,2004 ----
  C++ ObjC++ Var(warn_imported_macros) Warning
  Warn about macros that have conflicting header units definitions.
  
+ Wcompare-distinct-pointer-types
+ C ObjC Var(warn_compare_distinct_pointer_types) Warning Init(1)
+ Warn if pointers of distinct types are compared without a cast.
+ 
  flang-info-include-translate
  C++ Var(note_include_translate_yes)
  Note #include directives translated to import declarations.
*************** Implement resolution of DR 150 for match
*** 1967,1973 ****
  
  fnext-runtime
  ObjC ObjC++ LTO RejectNegative Var(flag_next_runtime)
! Generate code for NeXT (Apple Mac OS X) runtime environment.
  
  fnil-receivers
  ObjC ObjC++ Var(flag_nil_receivers) Init(1)
--- 2048,2054 ----
  
  fnext-runtime
  ObjC ObjC++ LTO RejectNegative Var(flag_next_runtime)
! Generate code for NeXT (Apple macOS) runtime environment.
  
  fnil-receivers
  ObjC ObjC++ Var(flag_nil_receivers) Init(1)
*************** C ObjC C++ ObjC++
*** 2075,2081 ****
  Look for and use PCH files even when preprocessing.
  
  fpermissive
! C++ ObjC++ Var(flag_permissive)
  Downgrade conformance errors to warnings.
  
  fplan9-extensions
--- 2156,2162 ----
  Look for and use PCH files even when preprocessing.
  
  fpermissive
! C ObjC C++ ObjC++ Var(flag_permissive)
  Downgrade conformance errors to warnings.
  
  fplan9-extensions
*************** C++ ObjC++
*** 2395,2407 ****
  Conform to the ISO 2020 C++ standard (experimental and incomplete support).
  
  std=c++2b
! C++ ObjC++ Alias(std=c++23)
  Conform to the ISO 2023 C++ draft standard (experimental and incomplete support).
  
  std=c++23
! C++ ObjC++ Undocumented
  Conform to the ISO 2023 C++ draft standard (experimental and incomplete support).
  
  std=c11
  C ObjC
  Conform to the ISO 2011 C standard.
--- 2476,2496 ----
  Conform to the ISO 2020 C++ standard (experimental and incomplete support).
  
  std=c++2b
! C++ ObjC++ Alias(std=c++23) Undocumented
  Conform to the ISO 2023 C++ draft standard (experimental and incomplete support).
  
  std=c++23
! C++ ObjC++
  Conform to the ISO 2023 C++ draft standard (experimental and incomplete support).
  
+ std=c++2c
+ C++ ObjC++ Alias(std=c++26)
+ Conform to the ISO 2026 C++ draft standard (experimental and incomplete support).
+ 
+ std=c++26
+ C++ ObjC++ Undocumented
+ Conform to the ISO 2026 C++ draft standard (experimental and incomplete support).
+ 
  std=c11
  C ObjC
  Conform to the ISO 2011 C standard.
*************** std=c18
*** 2418,2426 ****
  C ObjC Alias(std=c17)
  Conform to the ISO 2017 C standard (published in 2018).
  
! std=c2x
  C ObjC
! Conform to the ISO 202X C standard draft (experimental and incomplete support).
  
  std=c89
  C ObjC Alias(std=c90)
--- 2507,2519 ----
  C ObjC Alias(std=c17)
  Conform to the ISO 2017 C standard (published in 2018).
  
! std=c23
  C ObjC
! Conform to the ISO 2023 C standard draft (expected to be published in 2024) (experimental and incomplete support).
! 
! std=c2x
! C ObjC Alias(std=c23)
! Deprecated in favor of -std=c23.
  
  std=c89
  C ObjC Alias(std=c90)
*************** C++ ObjC++
*** 2481,2493 ****
  Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support).
  
  std=gnu++2b
! C++ ObjC++ Alias(std=gnu++23)
  Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support).
  
  std=gnu++23
! C++ ObjC++ Undocumented
  Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support).
  
  std=gnu11
  C ObjC
  Conform to the ISO 2011 C standard with GNU extensions.
--- 2574,2594 ----
  Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support).
  
  std=gnu++2b
! C++ ObjC++ Alias(std=gnu++23) Undocumented
  Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support).
  
  std=gnu++23
! C++ ObjC++
  Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support).
  
+ std=gnu++2c
+ C++ ObjC++ Alias(std=gnu++26)
+ Conform to the ISO 2026 C++ draft standard with GNU extensions (experimental and incomplete support).
+ 
+ std=gnu++26
+ C++ ObjC++ Undocumented
+ Conform to the ISO 2026 C++ draft standard with GNU extensions (experimental and incomplete support).
+ 
  std=gnu11
  C ObjC
  Conform to the ISO 2011 C standard with GNU extensions.
*************** std=gnu18
*** 2504,2512 ****
  C ObjC Alias(std=gnu17)
  Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.
  
! std=gnu2x
  C ObjC
! Conform to the ISO 202X C standard draft with GNU extensions (experimental and incomplete support).
  
  std=gnu89
  C ObjC Alias(std=gnu90)
--- 2605,2617 ----
  C ObjC Alias(std=gnu17)
  Conform to the ISO 2017 C standard (published in 2018) with GNU extensions.
  
! std=gnu23
  C ObjC
! Conform to the ISO 2023 C standard draft (expected to be published in 2024) with GNU extensions (experimental and incomplete support).
! 
! std=gnu2x
! C ObjC Alias(std=gnu23)
! Deprecated in favor of -std=gnu23.
  
  std=gnu89
  C ObjC Alias(std=gnu90)
*************** std=iso9899:2018
*** 2552,2557 ****
--- 2657,2666 ----
  C ObjC Alias(std=c17)
  Conform to the ISO 2017 C standard (published in 2018).
  
+ std=iso9899:2024
+ C ObjC Alias(std=c23)
+ Conform to the ISO 2023 C standard draft (expected to be published in 2024) (experimental and incomplete support).
+ 
  stdlib=
  Driver C++ ObjC++ Common Condition(ENABLE_STDLIB_OPTION) Var(flag_stdlib_kind) Joined Enum(stdlib_kind) RejectNegative Init(1)
  -stdlib=[libstdc++|libc++]	The standard library to be used for C++ headers
diff -Nrcpad gcc-13.2.0/gcc/c-family/c.opt.urls gcc-14.1.0/gcc/c-family/c.opt.urls
*** gcc-13.2.0/gcc/c-family/c.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/c-family/c.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1442 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/c-family/c.opt and generated HTML
+ 
+ A
+ UrlSuffix(gcc/Preprocessor-Options.html#index-A)
+ 
+ C
+ UrlSuffix(gcc/Preprocessor-Options.html#index-C)
+ 
+ CC
+ UrlSuffix(gcc/Preprocessor-Options.html#index-CC)
+ 
+ D
+ UrlSuffix(gcc/Preprocessor-Options.html#index-D-1)
+ 
+ ; skipping UrlSuffix for 'E' due to multiple URLs:
+ ;   duplicate: 'gcc/Link-Options.html#index-E-1'
+ ;   duplicate: 'gcc/Overall-Options.html#index-E'
+ 
+ F
+ UrlSuffix(gcc/Darwin-Options.html#index-F)
+ 
+ fgimple
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fgimple)
+ 
+ H
+ UrlSuffix(gcc/Preprocessor-Options.html#index-H) LangUrlSuffix_D(gdc/Code-Generation.html#index-H)
+ 
+ I
+ UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I)
+ 
+ M
+ UrlSuffix(gcc/Preprocessor-Options.html#index-M) LangUrlSuffix_D(gdc/Code-Generation.html#index-M)
+ 
+ MD
+ UrlSuffix(gcc/Preprocessor-Options.html#index-MD) LangUrlSuffix_D(gdc/Code-Generation.html#index-MD)
+ 
+ MF
+ UrlSuffix(gcc/Preprocessor-Options.html#index-MF) LangUrlSuffix_D(gdc/Code-Generation.html#index-MF)
+ 
+ MG
+ UrlSuffix(gcc/Preprocessor-Options.html#index-MG) LangUrlSuffix_D(gdc/Code-Generation.html#index-MG)
+ 
+ MM
+ UrlSuffix(gcc/Preprocessor-Options.html#index-MM) LangUrlSuffix_D(gdc/Code-Generation.html#index-MM)
+ 
+ MMD
+ UrlSuffix(gcc/Preprocessor-Options.html#index-MMD) LangUrlSuffix_D(gdc/Code-Generation.html#index-MMD)
+ 
+ Mno-modules
+ UrlSuffix(gcc/Preprocessor-Options.html#index-Mno-modules)
+ 
+ MP
+ UrlSuffix(gcc/Preprocessor-Options.html#index-MP) LangUrlSuffix_D(gdc/Code-Generation.html#index-MP)
+ 
+ MQ
+ UrlSuffix(gcc/Preprocessor-Options.html#index-MQ) LangUrlSuffix_D(gdc/Code-Generation.html#index-MQ)
+ 
+ MT
+ UrlSuffix(gcc/Preprocessor-Options.html#index-MT) LangUrlSuffix_D(gdc/Code-Generation.html#index-MT)
+ 
+ fdeps-format=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fdeps-format)
+ 
+ fdeps-file=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fdeps-file)
+ 
+ fdeps-target=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fdeps-target)
+ 
+ P
+ UrlSuffix(gcc/Preprocessor-Options.html#index-P)
+ 
+ U
+ UrlSuffix(gcc/Preprocessor-Options.html#index-U)
+ 
+ Wabi
+ UrlSuffix(gcc/Warning-Options.html#index-Wabi)
+ 
+ Wabi=
+ UrlSuffix(gcc/Warning-Options.html#index-Wabi)
+ 
+ Wabi-tag
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wabi-tag)
+ 
+ Wabsolute-value
+ UrlSuffix(gcc/Warning-Options.html#index-Wabsolute-value)
+ 
+ Waddress
+ UrlSuffix(gcc/Warning-Options.html#index-Waddress)
+ 
+ Waddress-of-packed-member
+ UrlSuffix(gcc/Warning-Options.html#index-Waddress-of-packed-member)
+ 
+ Waligned-new
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Waligned-new)
+ 
+ Waligned-new=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Waligned-new)
+ 
+ ; skipping UrlSuffix for 'Wall' due to multiple URLs:
+ ;   duplicate: 'gcc/Standard-Libraries.html#index-Wall-1'
+ ;   duplicate: 'gcc/Warning-Options.html#index-Wall'
+ Wall
+ LangUrlSuffix_D(gdc/Warnings.html#index-Wall)
+ 
+ Walloca
+ UrlSuffix(gcc/Warning-Options.html#index-Walloca) LangUrlSuffix_D(gdc/Warnings.html#index-Walloca)
+ 
+ Walloc-size
+ UrlSuffix(gcc/Warning-Options.html#index-Walloc-size)
+ 
+ Walloc-size-larger-than=
+ UrlSuffix(gcc/Warning-Options.html#index-Walloc-size-larger-than_003d)
+ 
+ Walloc-zero
+ UrlSuffix(gcc/Warning-Options.html#index-Walloc-zero)
+ 
+ Walloca-larger-than=
+ UrlSuffix(gcc/Warning-Options.html#index-Walloca-larger-than_003d) LangUrlSuffix_D(gdc/Warnings.html#index-Walloca-larger-than)
+ 
+ Warith-conversion
+ UrlSuffix(gcc/Warning-Options.html#index-Warith-conversion)
+ 
+ Warray-bounds=
+ UrlSuffix(gcc/Warning-Options.html#index-Warray-bounds)
+ 
+ Warray-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Warray-compare)
+ 
+ Warray-parameter
+ UrlSuffix(gcc/Warning-Options.html#index-Warray-parameter)
+ 
+ Warray-parameter=
+ UrlSuffix(gcc/Warning-Options.html#index-Warray-parameter)
+ 
+ Wassign-intercept
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wassign-intercept)
+ 
+ Wbad-function-cast
+ UrlSuffix(gcc/Warning-Options.html#index-Wbad-function-cast)
+ 
+ Wbidi-chars
+ UrlSuffix(gcc/Warning-Options.html#index-Wbidi-chars)
+ 
+ Wbidi-chars=
+ UrlSuffix(gcc/Warning-Options.html#index-Wbidi-chars)
+ 
+ Wbool-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wbool-compare)
+ 
+ Wbool-operation
+ UrlSuffix(gcc/Warning-Options.html#index-Wbool-operation)
+ 
+ Wbuiltin-declaration-mismatch
+ UrlSuffix(gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch) LangUrlSuffix_D(gdc/Warnings.html#index-Wbuiltin-declaration-mismatch)
+ 
+ Wbuiltin-macro-redefined
+ UrlSuffix(gcc/Warning-Options.html#index-Wbuiltin-macro-redefined)
+ 
+ Wc11-c23-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc11-c23-compat)
+ 
+ Wc90-c99-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc90-c99-compat)
+ 
+ Wc99-c11-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc99-c11-compat)
+ 
+ Wc++-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b-compat)
+ 
+ Wc++11-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b11-compat)
+ 
+ Wc++14-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b14-compat)
+ 
+ Wc++17-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b17-compat)
+ 
+ Wc++20-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b20-compat)
+ 
+ Wc++11-extensions
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b11-extensions)
+ 
+ Wc++14-extensions
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b14-extensions)
+ 
+ Wc++17-extensions
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b17-extensions)
+ 
+ Wc++20-extensions
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b20-extensions)
+ 
+ Wc++23-extensions
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b23-extensions)
+ 
+ Wc++26-extensions
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b26-extensions)
+ 
+ Wcalloc-transposed-args
+ UrlSuffix(gcc/Warning-Options.html#index-Wcalloc-transposed-args)
+ 
+ Wcast-function-type
+ UrlSuffix(gcc/Warning-Options.html#index-Wcast-function-type)
+ 
+ Wcast-qual
+ UrlSuffix(gcc/Warning-Options.html#index-Wcast-qual)
+ 
+ Wcast-user-defined
+ UrlSuffix(gcc/Warning-Options.html#index-Wcast-user-defined)
+ 
+ Wcatch-value
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wcatch-value)
+ 
+ Wcatch-value=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wcatch-value)
+ 
+ Wchar-subscripts
+ UrlSuffix(gcc/Warning-Options.html#index-Wchar-subscripts)
+ 
+ Wclass-conversion
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion)
+ 
+ Wclass-memaccess
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess)
+ 
+ Wclobbered
+ UrlSuffix(gcc/Warning-Options.html#index-Wclobbered)
+ 
+ Wcomma-subscript
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wcomma-subscript)
+ 
+ Wcomment
+ UrlSuffix(gcc/Warning-Options.html#index-Wcomment)
+ 
+ Wcomments
+ UrlSuffix(gcc/Warning-Options.html#index-Wcomments)
+ 
+ Wconditionally-supported
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wconditionally-supported)
+ 
+ Wconversion
+ UrlSuffix(gcc/Warning-Options.html#index-Wconversion)
+ 
+ Wconversion-null
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wconversion-null)
+ 
+ Wcpp
+ UrlSuffix(gcc/Warning-Options.html#index-Wcpp)
+ 
+ Wctad-maybe-unsupported
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wctad-maybe-unsupported)
+ 
+ Wctor-dtor-privacy
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wctor-dtor-privacy)
+ 
+ Wdangling-else
+ UrlSuffix(gcc/Warning-Options.html#index-Wdangling-else)
+ 
+ Wdangling-pointer
+ UrlSuffix(gcc/Warning-Options.html#index-Wdangling-pointer)
+ 
+ Wdangling-pointer=
+ UrlSuffix(gcc/Warning-Options.html#index-Wdangling-pointer)
+ 
+ Wdangling-reference
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference)
+ 
+ Wdate-time
+ UrlSuffix(gcc/Warning-Options.html#index-Wdate-time)
+ 
+ Wdeclaration-after-statement
+ UrlSuffix(gcc/Warning-Options.html#index-Wdeclaration-after-statement)
+ 
+ Wdeclaration-missing-parameter-type
+ UrlSuffix(gcc/Warning-Options.html#index-Wdeclaration-missing-parameter-type)
+ 
+ Wdelete-incomplete
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdelete-incomplete)
+ 
+ Wdelete-non-virtual-dtor
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdelete-non-virtual-dtor)
+ 
+ Wdeprecated
+ UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated) LangUrlSuffix_D(gdc/Warnings.html#index-Wdeprecated)
+ 
+ Wdeprecated-copy
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-copy)
+ 
+ Wdeprecated-enum-enum-conversion
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-enum-enum-conversion)
+ 
+ Wdeprecated-enum-float-conversion
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-enum-float-conversion)
+ 
+ Wdesignated-init
+ UrlSuffix(gcc/Warning-Options.html#index-Wdesignated-init)
+ 
+ Wdiscarded-array-qualifiers
+ UrlSuffix(gcc/Warning-Options.html#index-Wdiscarded-array-qualifiers)
+ 
+ Wdiscarded-qualifiers
+ UrlSuffix(gcc/Warning-Options.html#index-Wdiscarded-qualifiers)
+ 
+ Wdiv-by-zero
+ UrlSuffix(gcc/Warning-Options.html#index-Wdiv-by-zero)
+ 
+ Wdouble-promotion
+ UrlSuffix(gcc/Warning-Options.html#index-Wdouble-promotion)
+ 
+ Wduplicate-decl-specifier
+ UrlSuffix(gcc/Warning-Options.html#index-Wduplicate-decl-specifier)
+ 
+ Wduplicated-branches
+ UrlSuffix(gcc/Warning-Options.html#index-Wduplicated-branches)
+ 
+ Wduplicated-cond
+ UrlSuffix(gcc/Warning-Options.html#index-Wduplicated-cond)
+ 
+ Weffc++
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Weffc_002b_002b)
+ 
+ Welaborated-enum-base
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Welaborated-enum-base)
+ 
+ Wempty-body
+ UrlSuffix(gcc/Warning-Options.html#index-Wempty-body)
+ 
+ Wendif-labels
+ UrlSuffix(gcc/Warning-Options.html#index-Wendif-labels)
+ 
+ Wenum-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wenum-compare)
+ 
+ Wenum-conversion
+ UrlSuffix(gcc/Warning-Options.html#index-Wenum-conversion)
+ 
+ Wenum-int-mismatch
+ UrlSuffix(gcc/Warning-Options.html#index-Wenum-int-mismatch)
+ 
+ Werror
+ UrlSuffix(gcc/Warning-Options.html#index-Werror) LangUrlSuffix_D(gdc/Warnings.html#index-Werror)
+ 
+ Wexceptions
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wexceptions)
+ 
+ Wexpansion-to-defined
+ UrlSuffix(gcc/Warning-Options.html#index-Wexpansion-to-defined)
+ 
+ Wextra
+ UrlSuffix(gcc/Warning-Options.html#index-Wextra) LangUrlSuffix_D(gdc/Warnings.html#index-Wextra)
+ 
+ Wextra-semi
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wextra-semi)
+ 
+ Wflex-array-member-not-at-end
+ UrlSuffix(gcc/Warning-Options.html#index-Wflex-array-member-not-at-end)
+ 
+ Wfloat-conversion
+ UrlSuffix(gcc/Warning-Options.html#index-Wfloat-conversion)
+ 
+ Wfloat-equal
+ UrlSuffix(gcc/Warning-Options.html#index-Wfloat-equal)
+ 
+ Wformat
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat)
+ 
+ Wformat-contains-nul
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-contains-nul)
+ 
+ Wformat-extra-args
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-extra-args)
+ 
+ Wformat-nonliteral
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-nonliteral)
+ 
+ Wformat-overflow
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-overflow)
+ 
+ Wformat-overflow=
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-overflow)
+ 
+ Wformat-security
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-security)
+ 
+ Wformat-signedness
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-signedness)
+ 
+ Wformat-truncation
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-truncation)
+ 
+ Wformat-truncation=
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-truncation)
+ 
+ Wformat-y2k
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-y2k)
+ 
+ Wformat-zero-length
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-zero-length)
+ 
+ Wformat=
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat)
+ 
+ Wframe-address
+ UrlSuffix(gcc/Warning-Options.html#index-Wframe-address)
+ 
+ Wglobal-module
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wglobal-module)
+ 
+ Wif-not-aligned
+ UrlSuffix(gcc/Warning-Options.html#index-Wif-not-aligned)
+ 
+ Wignored-qualifiers
+ UrlSuffix(gcc/Warning-Options.html#index-Wignored-qualifiers)
+ 
+ Wignored-attributes
+ UrlSuffix(gcc/Warning-Options.html#index-Wignored-attributes)
+ 
+ Wimplicit
+ UrlSuffix(gcc/Warning-Options.html#index-Wimplicit)
+ 
+ Wimplicit-fallthrough=
+ UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-fallthrough)
+ 
+ Wimplicit-function-declaration
+ UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-function-declaration)
+ 
+ Wimplicit-int
+ UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-int)
+ 
+ Winaccessible-base
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winaccessible-base)
+ 
+ Wincompatible-pointer-types
+ UrlSuffix(gcc/Warning-Options.html#index-Wincompatible-pointer-types)
+ 
+ Winfinite-recursion
+ UrlSuffix(gcc/Warning-Options.html#index-Winfinite-recursion)
+ 
+ Winit-self
+ UrlSuffix(gcc/Warning-Options.html#index-Winit-self)
+ 
+ Winit-list-lifetime
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winit-list-lifetime)
+ 
+ Winterference-size
+ UrlSuffix(gcc/Warning-Options.html#index-Winterference-size)
+ 
+ Winherited-variadic-ctor
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winherited-variadic-ctor)
+ 
+ Wint-conversion
+ UrlSuffix(gcc/Warning-Options.html#index-Wint-conversion)
+ 
+ Wint-in-bool-context
+ UrlSuffix(gcc/Warning-Options.html#index-Wint-in-bool-context)
+ 
+ Wint-to-pointer-cast
+ UrlSuffix(gcc/Warning-Options.html#index-Wint-to-pointer-cast)
+ 
+ Winvalid-constexpr
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winvalid-constexpr)
+ 
+ Winvalid-offsetof
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winvalid-offsetof)
+ 
+ Winvalid-pch
+ UrlSuffix(gcc/Warning-Options.html#index-Winvalid-pch)
+ 
+ Winvalid-utf8
+ UrlSuffix(gcc/Warning-Options.html#index-Winvalid-utf8)
+ 
+ Wjump-misses-init
+ UrlSuffix(gcc/Warning-Options.html#index-Wjump-misses-init)
+ 
+ Wliteral-suffix
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wliteral-suffix)
+ 
+ Wlogical-not-parentheses
+ UrlSuffix(gcc/Warning-Options.html#index-Wlogical-not-parentheses)
+ 
+ Wlogical-op
+ UrlSuffix(gcc/Warning-Options.html#index-Wlogical-op)
+ 
+ Wlong-long
+ UrlSuffix(gcc/Warning-Options.html#index-Wlong-long)
+ 
+ Wmain
+ UrlSuffix(gcc/Warning-Options.html#index-Wmain)
+ 
+ Wmain
+ UrlSuffix(gcc/Warning-Options.html#index-Wmain)
+ 
+ Wmaybe-uninitialized
+ UrlSuffix(gcc/Warning-Options.html#index-Wmaybe-uninitialized)
+ 
+ Wmemset-elt-size
+ UrlSuffix(gcc/Warning-Options.html#index-Wmemset-elt-size)
+ 
+ Wmemset-transposed-args
+ UrlSuffix(gcc/Warning-Options.html#index-Wmemset-transposed-args)
+ 
+ Wmisleading-indentation
+ UrlSuffix(gcc/Warning-Options.html#index-Wmisleading-indentation)
+ 
+ Wmismatched-dealloc
+ UrlSuffix(gcc/Warning-Options.html#index-Wmismatched-dealloc)
+ 
+ Wmismatched-new-delete
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete)
+ 
+ Wmismatched-tags
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-tags)
+ 
+ Wmissing-attributes
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-attributes)
+ 
+ Wmissing-braces
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-braces)
+ 
+ Wmissing-declarations
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-declarations)
+ 
+ Wmissing-field-initializers
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-field-initializers)
+ 
+ Wmissing-format-attribute
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-format-attribute)
+ 
+ Wmissing-include-dirs
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-include-dirs)
+ 
+ Wmissing-parameter-type
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-parameter-type)
+ 
+ Wmissing-prototypes
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-prototypes)
+ 
+ Wmissing-requires
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-requires)
+ 
+ Wmissing-template-keyword
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-template-keyword)
+ 
+ Wmissing-variable-declarations
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-variable-declarations)
+ 
+ Wmultichar
+ UrlSuffix(gcc/Warning-Options.html#index-Wmultichar)
+ 
+ Wmultiple-inheritance
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmultiple-inheritance)
+ 
+ Wmultistatement-macros
+ UrlSuffix(gcc/Warning-Options.html#index-Wmultistatement-macros)
+ 
+ Wnamespaces
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wnamespaces)
+ 
+ Wnarrowing
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wnarrowing)
+ 
+ Wnested-externs
+ UrlSuffix(gcc/Warning-Options.html#index-Wnested-externs)
+ 
+ Wnoexcept
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-noexcept)
+ 
+ Wnoexcept-type
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-noexcept-type)
+ 
+ Wnon-template-friend
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-non-template-friend)
+ 
+ Wnon-virtual-dtor
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-non-virtual-dtor)
+ 
+ Wnonnull
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-nonnull)
+ 
+ Wnonnull
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-nonnull)
+ 
+ Wnonnull-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-nonnull-compare)
+ 
+ Wnormalized
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-normalized)
+ 
+ Wnormalized=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-normalized)
+ 
+ Wobjc-root-class
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wobjc-root-class)
+ 
+ Wold-style-cast
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-old-style-cast)
+ 
+ Wold-style-declaration
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-old-style-declaration)
+ 
+ Wold-style-definition
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-old-style-definition)
+ 
+ Wopenacc-parallelism
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-openacc-parallelism)
+ 
+ Wopenmp
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-openmp)
+ 
+ Wopenmp-simd
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-openmp-simd)
+ 
+ Woverlength-strings
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-overlength-strings)
+ 
+ Woverloaded-virtual
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-overloaded-virtual)
+ 
+ Woverloaded-virtual=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-overloaded-virtual)
+ 
+ Woverride-init
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-override-init)
+ 
+ Woverride-init-side-effects
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-override-init-side-effects)
+ 
+ Wnrvo
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-nrvo)
+ 
+ Wpacked-bitfield-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-packed-bitfield-compat)
+ 
+ Wpacked-not-aligned
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-packed-not-aligned)
+ 
+ Wparentheses
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-parentheses)
+ 
+ Wpedantic
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-pedantic)
+ 
+ Wpessimizing-move
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-pessimizing-move)
+ 
+ Wplacement-new
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
+ 
+ Wplacement-new=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
+ 
+ ; skipping UrlSuffix for 'Wpmf-conversions' due to multiple URLs:
+ ;   duplicate: 'gcc/Bound-member-functions.html#index-Wno-pmf-conversions-1'
+ ;   duplicate: 'gcc/C_002b_002b-Dialect-Options.html#index-Wno-pmf-conversions'
+ 
+ ; skipping UrlSuffix for 'Wpointer-arith' due to multiple URLs:
+ ;   duplicate: 'gcc/Pointer-Arith.html#index-Wpointer-arith-1'
+ ;   duplicate: 'gcc/Warning-Options.html#index-Wno-pointer-arith'
+ 
+ Wpointer-sign
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-pointer-sign)
+ 
+ Wpointer-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-pointer-compare)
+ 
+ Wpointer-to-int-cast
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-pointer-to-int-cast)
+ 
+ Wpragmas
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-pragmas)
+ 
+ Wprio-ctor-dtor
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-prio-ctor-dtor)
+ 
+ Wproperty-assign-default
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-property-assign-default)
+ 
+ Wprotocol
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-protocol)
+ 
+ Wrange-loop-construct
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-range-loop-construct)
+ 
+ Wredundant-decls
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-redundant-decls)
+ 
+ Wredundant-move
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-redundant-move)
+ 
+ Wredundant-tags
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-redundant-tags)
+ 
+ Wregister
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-register)
+ 
+ Wreorder
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-reorder)
+ 
+ Wrestrict
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-restrict)
+ 
+ Wreturn-mismatch
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-return-mismatch)
+ 
+ Wreturn-type
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-return-type)
+ 
+ Wscalar-storage-order
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-scalar-storage-order)
+ 
+ Wselector
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-selector)
+ 
+ Wself-move
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-self-move)
+ 
+ Wsequence-point
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sequence-point)
+ 
+ Wshadow-ivar
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-shadow-ivar)
+ 
+ Wshift-overflow
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-overflow)
+ 
+ Wshift-overflow=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-overflow)
+ 
+ Wshift-count-negative
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-count-negative)
+ 
+ Wshift-count-overflow
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-count-overflow)
+ 
+ Wshift-negative-value
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-negative-value)
+ 
+ Wsign-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sign-compare)
+ 
+ Wsign-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sign-compare)
+ 
+ Wsign-conversion
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sign-conversion)
+ 
+ Wsign-promo
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sign-promo)
+ 
+ Wsized-deallocation
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sized-deallocation)
+ 
+ Wsizeof-array-div
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-div)
+ 
+ Wsizeof-array-argument
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-argument)
+ 
+ Wsizeof-pointer-div
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-div)
+ 
+ Wsizeof-pointer-memaccess
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-memaccess)
+ 
+ Wstrict-aliasing=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-aliasing)
+ 
+ Wstrict-flex-arrays
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-flex-arrays)
+ 
+ Wstrict-null-sentinel
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-strict-null-sentinel)
+ 
+ Wstrict-overflow=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-overflow)
+ 
+ Wstrict-prototypes
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-prototypes)
+ 
+ Wstrict-selector-match
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-strict-selector-match)
+ 
+ Wstring-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-string-compare)
+ 
+ Wstringop-overflow
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
+ 
+ Wstringop-overflow=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
+ 
+ Wstringop-overread
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overread)
+ 
+ Wstringop-truncation
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-truncation)
+ 
+ Wsubobject-linkage
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-subobject-linkage)
+ 
+ Wsuggest-attribute=format
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dformat)
+ 
+ Wsuggest-override
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-suggest-override)
+ 
+ Wswitch
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-switch)
+ 
+ Wswitch-default
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-default)
+ 
+ Wswitch-enum
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-enum)
+ 
+ Wswitch-bool
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-bool)
+ 
+ Wswitch-outside-range
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-outside-range)
+ 
+ Wsync-nand
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-sync-nand)
+ 
+ Wsystem-headers
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-system-headers)
+ 
+ Wtemplates
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-templates)
+ 
+ Wtautological-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-tautological-compare)
+ 
+ Wtemplate-id-cdtor
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-template-id-cdtor)
+ 
+ Wterminate
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-terminate)
+ 
+ Wtraditional
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-traditional)
+ 
+ Wtraditional-conversion
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-traditional-conversion)
+ 
+ Wtrigraphs
+ UrlSuffix(gcc/Warning-Options.html#index-Wtrigraphs)
+ 
+ Wundeclared-selector
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-undeclared-selector)
+ 
+ Wundef
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-undef)
+ 
+ Wunicode
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unicode)
+ 
+ Wuninitialized
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-uninitialized)
+ 
+ Wunknown-pragmas
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unknown-pragmas) LangUrlSuffix_D(gdc/Warnings.html#index-Wno-unknown-pragmas)
+ 
+ Wunsuffixed-float-constants
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unsuffixed-float-constants)
+ 
+ Wunused
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused)
+ 
+ Wunused-const-variable
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
+ 
+ Wunused-const-variable=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
+ 
+ Wunused-local-typedefs
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-local-typedefs)
+ 
+ Wunused-macros
+ UrlSuffix(gcc/Warning-Options.html#index-Wunused-macros)
+ 
+ Wunused-result
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-result)
+ 
+ Wunused-variable
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-variable)
+ 
+ Wuse-after-free=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
+ 
+ Wuseless-cast
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-useless-cast)
+ 
+ Wvariadic-macros
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-variadic-macros)
+ 
+ Wvarargs
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-varargs) LangUrlSuffix_D(gdc/Warnings.html#index-Wno-varargs)
+ 
+ Wvexing-parse
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-vexing-parse)
+ 
+ Wvirtual-move-assign
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-virtual-move-assign)
+ 
+ Wvla
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-vla)
+ 
+ Wvla-larger-than=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-vla-larger-than)
+ 
+ Wvla-parameter
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-vla-parameter)
+ 
+ Wvolatile
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-volatile)
+ 
+ Wvolatile-register-var
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-volatile-register-var)
+ 
+ Wvirtual-inheritance
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-virtual-inheritance)
+ 
+ Wwrite-strings
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-write-strings)
+ 
+ Wxor-used-as-pow
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-xor-used-as-pow)
+ 
+ Wzero-as-null-pointer-constant
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-zero-as-null-pointer-constant)
+ 
+ Wzero-length-bounds
+ UrlSuffix(gcc/Warning-Options.html#index-Wzero-length-bounds)
+ 
+ ; skipping UrlSuffix for 'ansi' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-ansi-1'
+ ;   duplicate: 'gcc/Non-bugs.html#index-ansi-3'
+ ;   duplicate: 'gcc/Other-Builtins.html#index-ansi-2'
+ ;   duplicate: 'gcc/Standards.html#index-ansi'
+ 
+ ; skipping UrlSuffix for 'd' due to multiple URLs:
+ ;   duplicate: 'gcc/Developer-Options.html#index-d-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-d'
+ 
+ fabi-compat-version=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fabi-compat-version)
+ 
+ faccess-control
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-faccess-control)
+ 
+ fada-spec-parent=
+ UrlSuffix(gcc/Overall-Options.html#index-fada-spec-parent)
+ 
+ faligned-new
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-faligned-new)
+ 
+ faligned-new=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-faligned-new)
+ 
+ fasm
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fasm)
+ 
+ ; skipping UrlSuffix for 'fbuiltin' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-fbuiltin'
+ ;   duplicate: 'gcc/Other-Builtins.html#index-fno-builtin-3'
+ ;   duplicate: 'gcc/Warning-Options.html#index-fno-builtin-1'
+ ; skipping LangUrlSuffix_D for 'fbuiltin' due to multiple URLs:
+ ;   duplicate: 'gdc/Other-Builtins.html#index-fno-builtin-1'
+ ;   duplicate: 'gdc/Runtime-Options.html#index-fbuiltin'
+ 
+ fcanonical-system-headers
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fno-canonical-system-headers)
+ 
+ fchar8_t
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fchar8_005ft)
+ 
+ fconcepts
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconcepts)
+ 
+ fconcepts-ts
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconcepts-ts)
+ 
+ fcond-mismatch
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fcond-mismatch)
+ 
+ fconstant-string-class=
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fconstant-string-class)
+ 
+ fconstexpr-depth=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconstexpr-depth)
+ 
+ fconstexpr-cache-depth=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconstexpr-cache-depth)
+ 
+ fconstexpr-fp-except
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconstexpr-fp-except)
+ 
+ fconstexpr-loop-limit=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconstexpr-loop-limit)
+ 
+ fconstexpr-ops-limit=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconstexpr-ops-limit)
+ 
+ fcontracts
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontracts)
+ 
+ fcontract-assumption-mode=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-assumption-mode)
+ 
+ fcontract-build-level=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-build-level)
+ 
+ fcontract-strict-declarations=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-strict-declarations)
+ 
+ fcontract-mode=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-mode)
+ 
+ fcontract-continuation-mode=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-continuation-mode)
+ 
+ fcontract-role=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-role)
+ 
+ fcoroutines
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcoroutines)
+ 
+ fdebug-cpp
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fdebug-cpp)
+ 
+ fdeclone-ctor-dtor
+ UrlSuffix(gcc/Optimize-Options.html#index-fdeclone-ctor-dtor)
+ 
+ fdefault-inline
+ UrlSuffix(gcc/Inline.html#index-fno-default-inline)
+ 
+ fdiagnostics-show-template-tree
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-template-tree)
+ 
+ fdiagnostics-all-candidates
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fdiagnostics-all-candidates)
+ 
+ fdirectives-only
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fdirectives-only)
+ 
+ ; skipping UrlSuffix for 'fdollars-in-identifiers' due to multiple URLs:
+ ;   duplicate: 'gcc/Interoperation.html#index-fdollars-in-identifiers-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-fdollars-in-identifiers'
+ 
+ fmacro-prefix-map=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fmacro-prefix-map)
+ 
+ fdump-ada-spec
+ UrlSuffix(gcc/Overall-Options.html#index-fdump-ada-spec)
+ 
+ felide-constructors
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-felide-constructors)
+ 
+ felide-type
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-felide-type)
+ 
+ fenforce-eh-specs
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fenforce-eh-specs)
+ 
+ fexec-charset=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fexec-charset)
+ 
+ fextended-identifiers
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fextended-identifiers)
+ 
+ finput-charset=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-finput-charset)
+ 
+ fextern-tls-init
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fextern-tls-init)
+ 
+ ffold-simple-inlines
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-ffold-simple-inlines)
+ 
+ ; skipping UrlSuffix for 'ffreestanding' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-ffreestanding-1'
+ ;   duplicate: 'gcc/Standards.html#index-ffreestanding'
+ ;   duplicate: 'gcc/Warning-Options.html#index-ffreestanding-2'
+ 
+ fgnu-keywords
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fgnu-keywords)
+ 
+ fgnu-runtime
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fgnu-runtime)
+ 
+ fgnu89-inline
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fgnu89-inline)
+ 
+ fhosted
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fhosted)
+ 
+ fimmediate-escalation
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fimmediate-escalation)
+ 
+ ; skipping UrlSuffix for 'fimplement-inlines' due to multiple URLs:
+ ;   duplicate: 'gcc/C_002b_002b-Dialect-Options.html#index-fimplement-inlines'
+ ;   duplicate: 'gcc/C_002b_002b-Interface.html#index-fno-implement-inlines-1'
+ 
+ fimplicit-constexpr
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fimplicit-constexpr)
+ 
+ fimplicit-inline-templates
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fimplicit-inline-templates)
+ 
+ ; skipping UrlSuffix for 'fimplicit-templates' due to multiple URLs:
+ ;   duplicate: 'gcc/C_002b_002b-Dialect-Options.html#index-fimplicit-templates'
+ ;   duplicate: 'gcc/Template-Instantiation.html#index-fno-implicit-templates-1'
+ 
+ fnew-inheriting-ctors
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fnew-inheriting-ctors)
+ 
+ fkeep-inline-dllexport
+ UrlSuffix(gcc/Optimize-Options.html#index-fkeep-inline-dllexport)
+ 
+ flax-vector-conversions
+ UrlSuffix(gcc/C-Dialect-Options.html#index-flax-vector-conversions)
+ 
+ fmodules-ts
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fmodules-ts)
+ 
+ fmodule-header
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fmodule-header)
+ 
+ fmodule-header=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fmodule-header)
+ 
+ fmodule-implicit-inline
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fmodule-implicit-inline)
+ 
+ fmodule-only
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fmodule-only)
+ 
+ fmodule-mapper=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fmodule-mapper)
+ 
+ fmodule-lazy
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fmodule-lazy)
+ 
+ Winvalid-imported-macros
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winvalid-imported-macros)
+ 
+ Wcompare-distinct-pointer-types
+ UrlSuffix(gcc/Warning-Options.html#index-Wcompare-distinct-pointer-types)
+ 
+ flang-info-include-translate
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-flang-info-include-translate)
+ 
+ flang-info-include-translate-not
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-flang-info-include-translate-not)
+ 
+ flang-info-include-translate=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-flang-info-include-translate)
+ 
+ flang-info-module-cmi
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-flang-info-module-cmi)
+ 
+ flang-info-module-cmi=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-flang-info-module-cmi)
+ 
+ fmax-include-depth=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fmax-include-depth)
+ 
+ ; skipping UrlSuffix for 'fms-extensions' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-fms-extensions'
+ ;   duplicate: 'gcc/C_002b_002b-Dialect-Options.html#index-fms-extensions-1'
+ ;   duplicate: 'gcc/Unnamed-Fields.html#index-fms-extensions-2'
+ 
+ fnew-ttp-matching
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fnew-ttp-matching)
+ 
+ fnext-runtime
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fnext-runtime)
+ 
+ fnil-receivers
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fnil-receivers)
+ 
+ flocal-ivars
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-flocal-ivars)
+ 
+ fivar-visibility=
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fivar-visibility)
+ 
+ fnonansi-builtins
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-nonansi-builtins)
+ 
+ fnothrow-opt
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fnothrow-opt)
+ 
+ fobjc-abi-version=
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-abi-version)
+ 
+ fobjc-call-cxx-cdtors
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-call-cxx-cdtors)
+ 
+ fobjc-direct-dispatch
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-direct-dispatch)
+ 
+ fobjc-exceptions
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-exceptions)
+ 
+ fobjc-gc
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-gc)
+ 
+ fobjc-nilcheck
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-nilcheck)
+ 
+ fopenacc
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fopenacc) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenacc)
+ 
+ fopenacc-dim=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fopenacc-dim)
+ 
+ fopenmp
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fopenmp) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenmp)
+ 
+ fopenmp-simd
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fopenmp-simd) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenmp-simd)
+ 
+ foperator-names
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-operator-names)
+ 
+ foptional-diags
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-optional-diags)
+ 
+ fpch-deps
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fpch-deps)
+ 
+ fpch-preprocess
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fpch-preprocess)
+ 
+ fpermissive
+ UrlSuffix(gcc/Warning-Options.html#index-fpermissive)
+ 
+ ; skipping UrlSuffix for 'fplan9-extensions' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-fplan9-extensions'
+ ;   duplicate: 'gcc/Unnamed-Fields.html#index-fplan9-extensions-1'
+ 
+ fpreprocessed
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fpreprocessed)
+ 
+ ftrack-macro-expansion
+ UrlSuffix(gcc/Preprocessor-Options.html#index-ftrack-macro-expansion)
+ 
+ ftrack-macro-expansion=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-ftrack-macro-expansion)
+ 
+ fpretty-templates
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-pretty-templates)
+ 
+ fprintf-return-value
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-printf-return-value)
+ 
+ freplace-objc-classes
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-freplace-objc-classes)
+ 
+ frtti
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-rtti) LangUrlSuffix_D(gdc/Runtime-Options.html#index-fno-rtti)
+ 
+ ; skipping UrlSuffix for 'fshort-enums' due to multiple URLs:
+ ;   duplicate: 'gcc/Code-Gen-Options.html#index-fshort-enums'
+ ;   duplicate: 'gcc/Non-bugs.html#index-fshort-enums-3'
+ ;   duplicate: 'gcc/Structures-unions-enumerations-and-bit-fields-implementation.html#index-fshort-enums-1'
+ 
+ fshort-wchar
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fshort-wchar)
+ 
+ ; skipping UrlSuffix for 'fsigned-bitfields' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-fno-signed-bitfields'
+ ;   duplicate: 'gcc/Non-bugs.html#index-fsigned-bitfields-1'
+ 
+ ; skipping UrlSuffix for 'fsigned-char' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-fsigned-char'
+ ;   duplicate: 'gcc/Characters-implementation.html#index-fsigned-char-1'
+ 
+ fsized-deallocation
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fsized-deallocation)
+ 
+ fstrict-flex-arrays
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fno-strict-flex-arrays)
+ 
+ fstrict-flex-arrays=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fno-strict-flex-arrays)
+ 
+ fsso-struct=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fsso-struct)
+ 
+ fstats
+ UrlSuffix(gcc/Developer-Options.html#index-fstats)
+ 
+ fstrict-enums
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fstrict-enums)
+ 
+ fstrong-eval-order
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fstrong-eval-order)
+ 
+ fstrong-eval-order=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fstrong-eval-order)
+ 
+ ftemplate-backtrace-limit=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-ftemplate-backtrace-limit)
+ 
+ ftemplate-depth=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-ftemplate-depth)
+ 
+ fthreadsafe-statics
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-threadsafe-statics)
+ 
+ ; skipping UrlSuffix for 'funsigned-bitfields' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-fno-unsigned-bitfields'
+ ;   duplicate: 'gcc/Non-bugs.html#index-funsigned-bitfields-2'
+ ;   duplicate: 'gcc/Structures-unions-enumerations-and-bit-fields-implementation.html#index-funsigned-bitfields-1'
+ 
+ ; skipping UrlSuffix for 'funsigned-char' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-funsigned-char'
+ ;   duplicate: 'gcc/Characters-implementation.html#index-funsigned-char-1'
+ 
+ fuse-cxa-atexit
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fuse-cxa-atexit)
+ 
+ fuse-cxa-get-exception-ptr
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-use-cxa-get-exception-ptr)
+ 
+ fvisibility-inlines-hidden
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fvisibility-inlines-hidden)
+ 
+ fvisibility-ms-compat
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fvisibility-ms-compat)
+ 
+ fweak
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-weak)
+ 
+ fwide-exec-charset=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fwide-exec-charset)
+ 
+ fworking-directory
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fno-working-directory)
+ 
+ fzero-link
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fzero-link)
+ 
+ gen-decls
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-gen-decls)
+ 
+ femit-struct-debug-baseonly
+ UrlSuffix(gcc/Debugging-Options.html#index-femit-struct-debug-baseonly)
+ 
+ femit-struct-debug-reduced
+ UrlSuffix(gcc/Debugging-Options.html#index-femit-struct-debug-reduced)
+ 
+ femit-struct-debug-detailed=
+ UrlSuffix(gcc/Debugging-Options.html#index-femit-struct-debug-detailed)
+ 
+ fext-numeric-literals
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fext-numeric-literals)
+ 
+ idirafter
+ UrlSuffix(gcc/Directory-Options.html#index-idirafter)
+ 
+ imacros
+ UrlSuffix(gcc/Preprocessor-Options.html#index-imacros)
+ 
+ imultilib
+ UrlSuffix(gcc/Directory-Options.html#index-imultilib) LangUrlSuffix_D(gdc/Directory-Options.html#index-imultilib)
+ 
+ include
+ UrlSuffix(gcc/Preprocessor-Options.html#index-include)
+ 
+ iprefix
+ UrlSuffix(gcc/Directory-Options.html#index-iprefix) LangUrlSuffix_D(gdc/Directory-Options.html#index-iprefix)
+ 
+ isysroot
+ UrlSuffix(gcc/Directory-Options.html#index-isysroot)
+ 
+ isystem
+ UrlSuffix(gcc/Directory-Options.html#index-isystem)
+ 
+ iquote
+ UrlSuffix(gcc/Directory-Options.html#index-iquote)
+ 
+ iwithprefix
+ UrlSuffix(gcc/Directory-Options.html#index-iwithprefix)
+ 
+ iwithprefixbefore
+ UrlSuffix(gcc/Directory-Options.html#index-iwithprefixbefore)
+ 
+ no-integrated-cpp
+ UrlSuffix(gcc/Preprocessor-Options.html#index-no-integrated-cpp)
+ 
+ nostdinc
+ UrlSuffix(gcc/Directory-Options.html#index-nostdinc) LangUrlSuffix_D(gdc/Directory-Options.html#index-nostdinc)
+ 
+ ; skipping UrlSuffix for 'nostdinc++' due to multiple URLs:
+ ;   duplicate: 'gcc/C_002b_002b-Dialect-Options.html#index-nostdinc_002b_002b'
+ ;   duplicate: 'gcc/Directory-Options.html#index-nostdinc_002b_002b-1'
+ 
+ o
+ UrlSuffix(gcc/Overall-Options.html#index-o)
+ 
+ ; skipping UrlSuffix for 'pedantic' due to multiple URLs:
+ ;   duplicate: 'gcc/Alternate-Keywords.html#index-pedantic-3'
+ ;   duplicate: 'gcc/C-Extensions.html#index-pedantic-2'
+ ;   duplicate: 'gcc/Standards.html#index-pedantic'
+ ;   duplicate: 'gcc/Warning-Options.html#index-pedantic-1'
+ ;   duplicate: 'gcc/Warnings-and-Errors.html#index-pedantic-4'
+ 
+ print-objc-runtime-info
+ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-print-objc-runtime-info)
+ 
+ remap
+ UrlSuffix(gcc/Preprocessor-Options.html#index-remap)
+ 
+ stdlib=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-stdlib)
+ 
+ ; skipping UrlSuffix for 'traditional' due to multiple URLs:
+ ;   duplicate: 'gcc/Incompatibilities.html#index-traditional-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-traditional'
+ 
+ traditional-cpp
+ UrlSuffix(gcc/Preprocessor-Options.html#index-traditional-cpp)
+ 
+ trigraphs
+ UrlSuffix(gcc/Preprocessor-Options.html#index-trigraphs)
+ 
+ undef
+ UrlSuffix(gcc/Preprocessor-Options.html#index-undef)
+ 
+ v
+ UrlSuffix(gcc/Overall-Options.html#index-v) LangUrlSuffix_D(gdc/Developer-Options.html#index-v)
+ 
+ w
+ UrlSuffix(gcc/Warning-Options.html#index-w)
+ 
diff -Nrcpad gcc-13.2.0/gcc/c-family/cppspec.cc gcc-14.1.0/gcc/c-family/cppspec.cc
*** gcc-13.2.0/gcc/c-family/cppspec.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/cppspec.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Specific flags and argument handling of the C preprocessor.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Specific flags and argument handling of the C preprocessor.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/known-headers.cc gcc-14.1.0/gcc/c-family/known-headers.cc
*** gcc-13.2.0/gcc/c-family/known-headers.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/known-headers.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Support for suggestions about missing #include directives.
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Support for suggestions about missing #include directives.
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** suggest_missing_header::~suggest_missing
*** 320,325 ****
    maybe_add_include_fixit (&richloc, m_header_hint, true);
    inform (&richloc,
  	  "%qs is defined in header %qs;"
! 	  " did you forget to %<#include %s%>?",
  	  m_name_str, m_header_hint, m_header_hint);
  }
--- 320,325 ----
    maybe_add_include_fixit (&richloc, m_header_hint, true);
    inform (&richloc,
  	  "%qs is defined in header %qs;"
! 	  " this is probably fixable by adding %<#include %s%>",
  	  m_name_str, m_header_hint, m_header_hint);
  }
diff -Nrcpad gcc-13.2.0/gcc/c-family/known-headers.h gcc-14.1.0/gcc/c-family/known-headers.h
*** gcc-13.2.0/gcc/c-family/known-headers.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/known-headers.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Support for suggestions about missing #include directives.
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Support for suggestions about missing #include directives.
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/name-hint.h gcc-14.1.0/gcc/c-family/name-hint.h
*** gcc-13.2.0/gcc/c-family/name-hint.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/name-hint.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Support for offering suggestions for handling unrecognized names.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Support for offering suggestions for handling unrecognized names.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/c-family/stub-objc.cc gcc-14.1.0/gcc/c-family/stub-objc.cc
*** gcc-13.2.0/gcc/c-family/stub-objc.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/c-family/stub-objc.cc	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* Stub functions for Objective-C and Objective-C++ routines
     that are called from within the C and C++ front-ends,
     respectively.
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,7 ----
  /* Stub functions for Objective-C and Objective-C++ routines
     that are called from within the C and C++ front-ends,
     respectively.
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/caller-save.cc gcc-14.1.0/gcc/caller-save.cc
*** gcc-13.2.0/gcc/caller-save.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/caller-save.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Save and restore call-clobbered registers which are live across a call.
!    Copyright (C) 1989-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Save and restore call-clobbered registers which are live across a call.
!    Copyright (C) 1989-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** new_saved_hard_reg (int regno, int call_
*** 342,348 ****
    saved_reg->num = saved_regs_num++;
    saved_reg->hard_regno = regno;
    saved_reg->call_freq = call_freq;
!   saved_reg->first_p = FALSE;
    saved_reg->next = -1;
  }
  
--- 342,348 ----
    saved_reg->num = saved_regs_num++;
    saved_reg->hard_regno = regno;
    saved_reg->call_freq = call_freq;
!   saved_reg->first_p = false;
    saved_reg->next = -1;
  }
  
*************** setup_save_areas (void)
*** 558,564 ****
  					+ saved_reg2->num]
  		      = saved_reg_conflicts[saved_reg2->num * saved_regs_num
  					    + saved_reg->num]
! 		      = TRUE;
  		  }
  	    }
  	}
--- 558,564 ----
  					+ saved_reg2->num]
  		      = saved_reg_conflicts[saved_reg2->num * saved_regs_num
  					    + saved_reg->num]
! 		      = true;
  		  }
  	    }
  	}
*************** setup_save_areas (void)
*** 608,614 ****
  	    }
  	  if (j == i)
  	    {
! 	      saved_reg->first_p = TRUE;
  	      for (best_slot_num = -1, j = 0; j < prev_save_slots_num; j++)
  		{
  		  slot = prev_save_slots[j];
--- 608,614 ----
  	    }
  	  if (j == i)
  	    {
! 	      saved_reg->first_p = true;
  	      for (best_slot_num = -1, j = 0; j < prev_save_slots_num; j++)
  		{
  		  slot = prev_save_slots[j];
diff -Nrcpad gcc-13.2.0/gcc/calls.cc gcc-14.1.0/gcc/calls.cc
*** gcc-13.2.0/gcc/calls.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/calls.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Convert function calls to rtl insns, for GNU C compiler.
!    Copyright (C) 1989-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Convert function calls to rtl insns, for GNU C compiler.
!    Copyright (C) 1989-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** struct arg_data
*** 94,104 ****
    /* Number of bytes to put in registers.  0 means put the whole arg
       in registers.  Also 0 if not passed in registers.  */
    int partial;
!   /* Nonzero if argument must be passed on stack.
       Note that some arguments may be passed on the stack
!      even though pass_on_stack is zero, just because FUNCTION_ARG says so.
       pass_on_stack identifies arguments that *cannot* go in registers.  */
!   int pass_on_stack;
    /* Some fields packaged up for locate_and_pad_parm.  */
    struct locate_and_pad_arg_data locate;
    /* Location on the stack at which parameter should be stored.  The store
--- 94,104 ----
    /* Number of bytes to put in registers.  0 means put the whole arg
       in registers.  Also 0 if not passed in registers.  */
    int partial;
!   /* True if argument must be passed on stack.
       Note that some arguments may be passed on the stack
!      even though pass_on_stack is false, just because FUNCTION_ARG says so.
       pass_on_stack identifies arguments that *cannot* go in registers.  */
!   bool pass_on_stack;
    /* Some fields packaged up for locate_and_pad_parm.  */
    struct locate_and_pad_arg_data locate;
    /* Location on the stack at which parameter should be stored.  The store
*************** static unsigned HOST_WIDE_INT stored_arg
*** 150,168 ****
  static int stack_arg_under_construction;
  
  static void precompute_register_parameters (int, struct arg_data *, int *);
! static int store_one_arg (struct arg_data *, rtx, int, int, int);
  static void store_unaligned_arguments_into_pseudos (struct arg_data *, int);
! static int finalize_must_preallocate (int, int, struct arg_data *,
! 				      struct args_size *);
  static void precompute_arguments (int, struct arg_data *);
  static void compute_argument_addresses (struct arg_data *, rtx, int);
  static rtx rtx_for_function_call (tree, tree);
  static void load_register_parameters (struct arg_data *, int, rtx *, int,
! 				      int, int *);
  static int special_function_p (const_tree, int);
! static int check_sibcall_argument_overlap_1 (rtx);
! static int check_sibcall_argument_overlap (rtx_insn *, struct arg_data *, int);
! 
  static tree split_complex_types (tree);
  
  #ifdef REG_PARM_STACK_SPACE
--- 150,168 ----
  static int stack_arg_under_construction;
  
  static void precompute_register_parameters (int, struct arg_data *, int *);
! static bool store_one_arg (struct arg_data *, rtx, int, int, int);
  static void store_unaligned_arguments_into_pseudos (struct arg_data *, int);
! static bool finalize_must_preallocate (bool, int, struct arg_data *,
! 				       struct args_size *);
  static void precompute_arguments (int, struct arg_data *);
  static void compute_argument_addresses (struct arg_data *, rtx, int);
  static rtx rtx_for_function_call (tree, tree);
  static void load_register_parameters (struct arg_data *, int, rtx *, int,
! 				      int, bool *);
  static int special_function_p (const_tree, int);
! static bool check_sibcall_argument_overlap_1 (rtx);
! static bool check_sibcall_argument_overlap (rtx_insn *, struct arg_data *,
! 					    bool);
  static tree split_complex_types (tree);
  
  #ifdef REG_PARM_STACK_SPACE
*************** emit_call_1 (rtx funexp, tree fntree ATT
*** 383,389 ****
  {
    rtx rounded_stack_size_rtx = gen_int_mode (rounded_stack_size, Pmode);
    rtx call, funmem, pat;
!   int already_popped = 0;
    poly_int64 n_popped = 0;
  
    /* Sibling call patterns never pop arguments (no sibcall(_value)_pop
--- 383,389 ----
  {
    rtx rounded_stack_size_rtx = gen_int_mode (rounded_stack_size, Pmode);
    rtx call, funmem, pat;
!   bool already_popped = false;
    poly_int64 n_popped = 0;
  
    /* Sibling call patterns never pop arguments (no sibcall(_value)_pop
*************** emit_call_1 (rtx funexp, tree fntree ATT
*** 461,467 ****
  	pat = targetm.gen_call_pop (funmem, rounded_stack_size_rtx,
  				    next_arg_reg, n_pop);
  
!       already_popped = 1;
      }
    else
      {
--- 461,467 ----
  	pat = targetm.gen_call_pop (funmem, rounded_stack_size_rtx,
  				    next_arg_reg, n_pop);
  
!       already_popped = true;
      }
    else
      {
*************** decl_return_flags (tree fndecl)
*** 666,679 ****
    return 0;
  }
  
! /* Return nonzero when FNDECL represents a call to setjmp.  */
  
! int
  setjmp_call_p (const_tree fndecl)
  {
    if (DECL_IS_RETURNS_TWICE (fndecl))
!     return ECF_RETURNS_TWICE;
!   return special_function_p (fndecl, 0) & ECF_RETURNS_TWICE;
  }
  
  
--- 666,682 ----
    return 0;
  }
  
! /* Return true when FNDECL represents a call to setjmp.  */
  
! bool
  setjmp_call_p (const_tree fndecl)
  {
    if (DECL_IS_RETURNS_TWICE (fndecl))
!     return true;
!   if (special_function_p (fndecl, 0) & ECF_RETURNS_TWICE)
!     return true;
! 
!   return false;
  }
  
  
*************** flags_from_decl_or_type (const_tree exp)
*** 845,850 ****
--- 848,856 ----
  	    flags |= ECF_TM_PURE;
  	}
  
+       if (lookup_attribute ("expected_throw", DECL_ATTRIBUTES (exp)))
+ 	flags |= ECF_XTHROW;
+ 
        flags = special_function_p (exp, flags);
      }
    else if (TYPE_P (exp))
*************** maybe_complain_about_tail_call (tree cal
*** 1266,1273 ****
     OLD_STACK_LEVEL is a pointer to an rtx which olds the old stack level
     and may be modified by this routine.
  
!    OLD_PENDING_ADJ, MUST_PREALLOCATE and FLAGS are pointers to integer
!    flags which may be modified by this routine.
  
     MAY_TAILCALL is cleared if we encounter an invisible pass-by-reference
     that requires allocation of stack space.
--- 1272,1282 ----
     OLD_STACK_LEVEL is a pointer to an rtx which olds the old stack level
     and may be modified by this routine.
  
!    OLD_PENDING_ADJ and FLAGS are pointers to integer flags which
!    may be modified by this routine.
! 
!    MUST_PREALLOCATE is a pointer to bool which may be
!    modified by this routine.
  
     MAY_TAILCALL is cleared if we encounter an invisible pass-by-reference
     that requires allocation of stack space.
*************** initialize_argument_information (int num
*** 1285,1292 ****
  				 cumulative_args_t args_so_far,
  				 int reg_parm_stack_space,
  				 rtx *old_stack_level,
! 				 poly_int64_pod *old_pending_adj,
! 				 int *must_preallocate, int *ecf_flags,
  				 bool *may_tailcall, bool call_from_thunk_p)
  {
    CUMULATIVE_ARGS *args_so_far_pnt = get_cumulative_args (args_so_far);
--- 1294,1301 ----
  				 cumulative_args_t args_so_far,
  				 int reg_parm_stack_space,
  				 rtx *old_stack_level,
! 				 poly_int64 *old_pending_adj,
! 				 bool *must_preallocate, int *ecf_flags,
  				 bool *may_tailcall, bool call_from_thunk_p)
  {
    CUMULATIVE_ARGS *args_so_far_pnt = get_cumulative_args (args_so_far);
*************** initialize_argument_information (int num
*** 1359,1365 ****
  	 args[i].partial is nonzero if part but not all is passed in registers,
  	 and the exact value says how many bytes are passed in registers.
  
! 	 args[i].pass_on_stack is nonzero if the argument must at least be
  	 computed on the stack.  It may then be loaded back into registers
  	 if args[i].reg is nonzero.
  
--- 1368,1374 ----
  	 args[i].partial is nonzero if part but not all is passed in registers,
  	 and the exact value says how many bytes are passed in registers.
  
! 	 args[i].pass_on_stack is true if the argument must at least be
  	 computed on the stack.  It may then be loaded back into registers
  	 if args[i].reg is nonzero.
  
*************** initialize_argument_information (int num
*** 1517,1523 ****
  	 by the PARALLEL, but also to pass it in the stack.  */
        if (args[i].reg && GET_CODE (args[i].reg) == PARALLEL
  	  && XEXP (XVECEXP (args[i].reg, 0, 0), 0) == 0)
! 	args[i].pass_on_stack = 1;
  
        /* If this is an addressable type, we must preallocate the stack
  	 since we must evaluate the object into its final location.
--- 1526,1532 ----
  	 by the PARALLEL, but also to pass it in the stack.  */
        if (args[i].reg && GET_CODE (args[i].reg) == PARALLEL
  	  && XEXP (XVECEXP (args[i].reg, 0, 0), 0) == 0)
! 	args[i].pass_on_stack = true;
  
        /* If this is an addressable type, we must preallocate the stack
  	 since we must evaluate the object into its final location.
*************** initialize_argument_information (int num
*** 1526,1532 ****
  	 to preallocate.  */
        if (TREE_ADDRESSABLE (type)
  	  || (args[i].pass_on_stack && args[i].reg != 0))
! 	*must_preallocate = 1;
  
        /* Compute the stack-size of this argument.  */
        if (args[i].reg == 0 || args[i].partial != 0
--- 1535,1541 ----
  	 to preallocate.  */
        if (TREE_ADDRESSABLE (type)
  	  || (args[i].pass_on_stack && args[i].reg != 0))
! 	*must_preallocate = true;
  
        /* Compute the stack-size of this argument.  */
        if (args[i].reg == 0 || args[i].partial != 0
*************** precompute_arguments (int num_actuals, s
*** 1713,1720 ****
     arguments to a function call in NUM_ACTUALS, ARGS and ARGS_SIZE,
     compute and return the final value for MUST_PREALLOCATE.  */
  
! static int
! finalize_must_preallocate (int must_preallocate, int num_actuals,
  			   struct arg_data *args, struct args_size *args_size)
  {
    /* See if we have or want to preallocate stack space.
--- 1722,1729 ----
     arguments to a function call in NUM_ACTUALS, ARGS and ARGS_SIZE,
     compute and return the final value for MUST_PREALLOCATE.  */
  
! static bool
! finalize_must_preallocate (bool must_preallocate, int num_actuals,
  			   struct arg_data *args, struct args_size *args_size)
  {
    /* See if we have or want to preallocate stack space.
*************** finalize_must_preallocate (int must_prea
*** 1738,1753 ****
  
    if (! must_preallocate)
      {
!       int partial_seen = 0;
        poly_int64 copy_to_evaluate_size = 0;
        int i;
  
        for (i = 0; i < num_actuals && ! must_preallocate; i++)
  	{
  	  if (args[i].partial > 0 && ! args[i].pass_on_stack)
! 	    partial_seen = 1;
  	  else if (partial_seen && args[i].reg == 0)
! 	    must_preallocate = 1;
  
  	  if (TYPE_MODE (TREE_TYPE (args[i].tree_value)) == BLKmode
  	      && (TREE_CODE (args[i].tree_value) == CALL_EXPR
--- 1747,1762 ----
  
    if (! must_preallocate)
      {
!       bool partial_seen = false;
        poly_int64 copy_to_evaluate_size = 0;
        int i;
  
        for (i = 0; i < num_actuals && ! must_preallocate; i++)
  	{
  	  if (args[i].partial > 0 && ! args[i].pass_on_stack)
! 	    partial_seen = true;
  	  else if (partial_seen && args[i].reg == 0)
! 	    must_preallocate = true;
  
  	  if (TYPE_MODE (TREE_TYPE (args[i].tree_value)) == BLKmode
  	      && (TREE_CODE (args[i].tree_value) == CALL_EXPR
*************** finalize_must_preallocate (int must_prea
*** 1760,1766 ****
  
        if (maybe_ne (args_size->constant, 0)
  	  && maybe_ge (copy_to_evaluate_size * 2, args_size->constant))
! 	must_preallocate = 1;
      }
    return must_preallocate;
  }
--- 1769,1775 ----
  
        if (maybe_ne (args_size->constant, 0)
  	  && maybe_ge (copy_to_evaluate_size * 2, args_size->constant))
! 	must_preallocate = true;
      }
    return must_preallocate;
  }
*************** mem_might_overlap_already_clobbered_arg_
*** 2091,2097 ****
  static void
  load_register_parameters (struct arg_data *args, int num_actuals,
  			  rtx *call_fusage, int flags, int is_sibcall,
! 			  int *sibcall_failure)
  {
    int i, j;
  
--- 2100,2106 ----
  static void
  load_register_parameters (struct arg_data *args, int num_actuals,
  			  rtx *call_fusage, int flags, int is_sibcall,
! 			  bool *sibcall_failure)
  {
    int i, j;
  
*************** load_register_parameters (struct arg_dat
*** 2216,2222 ****
  		  && const_size != 0
  		  && (mem_might_overlap_already_clobbered_arg_p
  		      (XEXP (args[i].value, 0), const_size)))
! 		*sibcall_failure = 1;
  
  	      if (const_size % UNITS_PER_WORD == 0
  		  || MEM_ALIGN (mem) % BITS_PER_WORD == 0)
--- 2225,2231 ----
  		  && const_size != 0
  		  && (mem_might_overlap_already_clobbered_arg_p
  		      (XEXP (args[i].value, 0), const_size)))
! 		*sibcall_failure = true;
  
  	      if (const_size % UNITS_PER_WORD == 0
  		  || MEM_ALIGN (mem) % BITS_PER_WORD == 0)
*************** load_register_parameters (struct arg_dat
*** 2264,2271 ****
  	     possible that it did a load from an argument slot that was
  	     already clobbered.  */
  	  if (is_sibcall
! 	      && check_sibcall_argument_overlap (before_arg, &args[i], 0))
! 	    *sibcall_failure = 1;
  
  	  /* Handle calls that pass values in multiple non-contiguous
  	     locations.  The Irix 6 ABI has examples of this.  */
--- 2273,2280 ----
  	     possible that it did a load from an argument slot that was
  	     already clobbered.  */
  	  if (is_sibcall
! 	      && check_sibcall_argument_overlap (before_arg, &args[i], false))
! 	    *sibcall_failure = true;
  
  	  /* Handle calls that pass values in multiple non-contiguous
  	     locations.  The Irix 6 ABI has examples of this.  */
*************** load_register_parameters (struct arg_dat
*** 2292,2298 ****
     bytes that should be popped after the call.  */
  
  static bool
! combine_pending_stack_adjustment_and_call (poly_int64_pod *adjustment_out,
  					   poly_int64 unadjusted_args_size,
  					   struct args_size *args_size,
  					   unsigned int preferred_unit_stack_boundary)
--- 2301,2307 ----
     bytes that should be popped after the call.  */
  
  static bool
! combine_pending_stack_adjustment_and_call (poly_int64 *adjustment_out,
  					   poly_int64 unadjusted_args_size,
  					   struct args_size *args_size,
  					   unsigned int preferred_unit_stack_boundary)
*************** combine_pending_stack_adjustment_and_cal
*** 2348,2357 ****
  /* Scan X expression if it does not dereference any argument slots
     we already clobbered by tail call arguments (as noted in stored_args_map
     bitmap).
!    Return nonzero if X expression dereferences such argument slots,
!    zero otherwise.  */
  
! static int
  check_sibcall_argument_overlap_1 (rtx x)
  {
    RTX_CODE code;
--- 2357,2366 ----
  /* Scan X expression if it does not dereference any argument slots
     we already clobbered by tail call arguments (as noted in stored_args_map
     bitmap).
!    Return true if X expression dereferences such argument slots,
!    false otherwise.  */
  
! static bool
  check_sibcall_argument_overlap_1 (rtx x)
  {
    RTX_CODE code;
*************** check_sibcall_argument_overlap_1 (rtx x)
*** 2359,2371 ****
    const char *fmt;
  
    if (x == NULL_RTX)
!     return 0;
  
    code = GET_CODE (x);
  
    /* We need not check the operands of the CALL expression itself.  */
    if (code == CALL)
!     return 0;
  
    if (code == MEM)
      return (mem_might_overlap_already_clobbered_arg_p
--- 2368,2380 ----
    const char *fmt;
  
    if (x == NULL_RTX)
!     return false;
  
    code = GET_CODE (x);
  
    /* We need not check the operands of the CALL expression itself.  */
    if (code == CALL)
!     return false;
  
    if (code == MEM)
      return (mem_might_overlap_already_clobbered_arg_p
*************** check_sibcall_argument_overlap_1 (rtx x)
*** 2378,2405 ****
        if (*fmt == 'e')
  	{
  	  if (check_sibcall_argument_overlap_1 (XEXP (x, i)))
! 	    return 1;
  	}
        else if (*fmt == 'E')
  	{
  	  for (j = 0; j < XVECLEN (x, i); j++)
  	    if (check_sibcall_argument_overlap_1 (XVECEXP (x, i, j)))
! 	      return 1;
  	}
      }
!   return 0;
  }
  
  /* Scan sequence after INSN if it does not dereference any argument slots
     we already clobbered by tail call arguments (as noted in stored_args_map
     bitmap).  If MARK_STORED_ARGS_MAP, add stack slots for ARG to
!    stored_args_map bitmap afterwards (when ARG is a register MARK_STORED_ARGS_MAP
!    should be 0).  Return nonzero if sequence after INSN dereferences such argument
!    slots, zero otherwise.  */
  
! static int
  check_sibcall_argument_overlap (rtx_insn *insn, struct arg_data *arg,
! 				int mark_stored_args_map)
  {
    poly_uint64 low, high;
    unsigned HOST_WIDE_INT const_low, const_high;
--- 2387,2414 ----
        if (*fmt == 'e')
  	{
  	  if (check_sibcall_argument_overlap_1 (XEXP (x, i)))
! 	    return true;
  	}
        else if (*fmt == 'E')
  	{
  	  for (j = 0; j < XVECLEN (x, i); j++)
  	    if (check_sibcall_argument_overlap_1 (XVECEXP (x, i, j)))
! 	      return true;
  	}
      }
!   return false;
  }
  
  /* Scan sequence after INSN if it does not dereference any argument slots
     we already clobbered by tail call arguments (as noted in stored_args_map
     bitmap).  If MARK_STORED_ARGS_MAP, add stack slots for ARG to
!    stored_args_map bitmap afterwards (when ARG is a register
!    MARK_STORED_ARGS_MAP should be false).  Return true if sequence after
!    INSN dereferences such argument slots, false otherwise.  */
  
! static bool
  check_sibcall_argument_overlap (rtx_insn *insn, struct arg_data *arg,
! 				bool mark_stored_args_map)
  {
    poly_uint64 low, high;
    unsigned HOST_WIDE_INT const_low, const_high;
*************** can_implement_as_sibling_call_p (tree ex
*** 2493,2499 ****
  				 tree addr,
  				 const args_size &args_size)
  {
!   if (!targetm.have_sibcall_epilogue ())
      {
        maybe_complain_about_tail_call
  	(exp,
--- 2502,2509 ----
  				 tree addr,
  				 const args_size &args_size)
  {
!   if (!targetm.have_sibcall_epilogue ()
!       && !targetm.emit_epilogue_for_sibcall)
      {
        maybe_complain_about_tail_call
  	(exp,
*************** can_implement_as_sibling_call_p (tree ex
*** 2541,2546 ****
--- 2551,2566 ----
        return false;
      }
  
+   /* __sanitizer_cov_trace_pc is supposed to inspect its return address
+      to identify the caller, and therefore should not be tailcalled.  */
+   if (fndecl && DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL
+       && DECL_FUNCTION_CODE (fndecl) == BUILT_IN_SANITIZER_COV_TRACE_PC)
+     {
+       /* No need for maybe_complain_about_tail_call here:
+ 	 the call is synthesized by the compiler.  */
+       return false;
+     }
+ 
    /* If the called function is nested in the current one, it might access
       some of the caller's arguments, but could clobber them beforehand if
       the argument areas are shared.  */
*************** expand_call (tree exp, rtx target, int i
*** 2649,2657 ****
       or if we are using the non-reentrant PCC calling convention
       or expecting the value in registers.  */
    poly_int64 struct_value_size = 0;
!   /* Nonzero if called function returns an aggregate in memory PCC style,
       by returning the address of where to find it.  */
!   int pcc_struct_value = 0;
    rtx struct_value = 0;
  
    /* Number of actual parameters in this call, including struct value addr.  */
--- 2669,2677 ----
       or if we are using the non-reentrant PCC calling convention
       or expecting the value in registers.  */
    poly_int64 struct_value_size = 0;
!   /* True if called function returns an aggregate in memory PCC style,
       by returning the address of where to find it.  */
!   bool pcc_struct_value = false;
    rtx struct_value = 0;
  
    /* Number of actual parameters in this call, including struct value addr.  */
*************** expand_call (tree exp, rtx target, int i
*** 2677,2691 ****
    cumulative_args_t args_so_far;
    /* Nonzero if a reg parm has been scanned.  */
    int reg_parm_seen;
-   /* Nonzero if this is an indirect function call.  */
  
!   /* Nonzero if we must avoid push-insns in the args for this call.
       If stack space is allocated for register parameters, but not by the
       caller, then it is preallocated in the fixed part of the stack frame.
       So the entire argument block must then be preallocated (i.e., we
       ignore PUSH_ROUNDING in that case).  */
! 
!   int must_preallocate = !targetm.calls.push_argument (0);
  
    /* Size of the stack reserved for parameter registers.  */
    int reg_parm_stack_space = 0;
--- 2697,2709 ----
    cumulative_args_t args_so_far;
    /* Nonzero if a reg parm has been scanned.  */
    int reg_parm_seen;
  
!   /* True if we must avoid push-insns in the args for this call.
       If stack space is allocated for register parameters, but not by the
       caller, then it is preallocated in the fixed part of the stack frame.
       So the entire argument block must then be preallocated (i.e., we
       ignore PUSH_ROUNDING in that case).  */
!   bool must_preallocate = !targetm.calls.push_argument (0);
  
    /* Size of the stack reserved for parameter registers.  */
    int reg_parm_stack_space = 0;
*************** expand_call (tree exp, rtx target, int i
*** 2795,2801 ****
  
    if (! OUTGOING_REG_PARM_STACK_SPACE ((!fndecl ? fntype : TREE_TYPE (fndecl)))
        && reg_parm_stack_space > 0 && targetm.calls.push_argument (0))
!     must_preallocate = 1;
  
    /* Set up a place to return a structure.  */
  
--- 2813,2819 ----
  
    if (! OUTGOING_REG_PARM_STACK_SPACE ((!fndecl ? fntype : TREE_TYPE (fndecl)))
        && reg_parm_stack_space > 0 && targetm.calls.push_argument (0))
!     must_preallocate = true;
  
    /* Set up a place to return a structure.  */
  
*************** expand_call (tree exp, rtx target, int i
*** 2807,2813 ****
  
  #ifdef PCC_STATIC_STRUCT_RETURN
        {
! 	pcc_struct_value = 1;
        }
  #else /* not PCC_STATIC_STRUCT_RETURN */
        {
--- 2825,2831 ----
  
  #ifdef PCC_STATIC_STRUCT_RETURN
        {
! 	pcc_struct_value = true;
        }
  #else /* not PCC_STATIC_STRUCT_RETURN */
        {
*************** expand_call (tree exp, rtx target, int i
*** 2920,2926 ****
  	 /* Count the struct value address, if it is passed as a parm.  */
  	 + structure_value_addr_parm);
    else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype))
!     n_named_args = 0;
    else
      /* If we know nothing, treat all args as named.  */
      n_named_args = num_actuals;
--- 2938,2944 ----
  	 /* Count the struct value address, if it is passed as a parm.  */
  	 + structure_value_addr_parm);
    else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype))
!     n_named_args = structure_value_addr_parm;
    else
      /* If we know nothing, treat all args as named.  */
      n_named_args = num_actuals;
*************** expand_call (tree exp, rtx target, int i
*** 2952,2965 ****
       we do not have any reliable way to pass unnamed args in
       registers, so we must force them into memory.  */
  
!   if (type_arg_types != 0
        && targetm.calls.strict_argument_naming (args_so_far))
      ;
    else if (type_arg_types != 0
  	   && ! targetm.calls.pretend_outgoing_varargs_named (args_so_far))
      /* Don't include the last named arg.  */
      --n_named_args;
!   else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype))
      n_named_args = 0;
    else
      /* Treat all args as named.  */
--- 2970,2984 ----
       we do not have any reliable way to pass unnamed args in
       registers, so we must force them into memory.  */
  
!   if ((type_arg_types != 0 || TYPE_NO_NAMED_ARGS_STDARG_P (funtype))
        && targetm.calls.strict_argument_naming (args_so_far))
      ;
    else if (type_arg_types != 0
  	   && ! targetm.calls.pretend_outgoing_varargs_named (args_so_far))
      /* Don't include the last named arg.  */
      --n_named_args;
!   else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype)
! 	   && ! targetm.calls.pretend_outgoing_varargs_named (args_so_far))
      n_named_args = 0;
    else
      /* Treat all args as named.  */
*************** expand_call (tree exp, rtx target, int i
*** 2979,2985 ****
  				   &try_tail_call, CALL_FROM_THUNK_P (exp));
  
    if (args_size.var)
!     must_preallocate = 1;
  
    /* Now make final decision about preallocating stack space.  */
    must_preallocate = finalize_must_preallocate (must_preallocate,
--- 2998,3004 ----
  				   &try_tail_call, CALL_FROM_THUNK_P (exp));
  
    if (args_size.var)
!     must_preallocate = true;
  
    /* Now make final decision about preallocating stack space.  */
    must_preallocate = finalize_must_preallocate (must_preallocate,
*************** expand_call (tree exp, rtx target, int i
*** 3104,3110 ****
       initial RTL generation is complete.  */
    for (pass = try_tail_call ? 0 : 1; pass < 2; pass++)
      {
!       int sibcall_failure = 0;
        bool normal_failure = false;
        /* We want to emit any pending stack adjustments before the tail
  	 recursion "call".  That way we know any adjustment after the tail
--- 3123,3129 ----
       initial RTL generation is complete.  */
    for (pass = try_tail_call ? 0 : 1; pass < 2; pass++)
      {
!       bool sibcall_failure = false;
        bool normal_failure = false;
        /* We want to emit any pending stack adjustments before the tail
  	 recursion "call".  That way we know any adjustment after the tail
*************** expand_call (tree exp, rtx target, int i
*** 3490,3496 ****
  	          sorry ("passing too large argument on stack");
  		  /* Don't worry about stack clean-up.  */
  		  if (pass == 0)
! 		    sibcall_failure = 1;
  		  else
  		    normal_failure = true;
  		  continue;
--- 3509,3515 ----
  	          sorry ("passing too large argument on stack");
  		  /* Don't worry about stack clean-up.  */
  		  if (pass == 0)
! 		    sibcall_failure = true;
  		  else
  		    normal_failure = true;
  		  continue;
*************** expand_call (tree exp, rtx target, int i
*** 3501,3508 ****
  				 reg_parm_stack_space)
  		  || (pass == 0
  		      && check_sibcall_argument_overlap (before_arg,
! 							 &args[i], 1)))
! 		sibcall_failure = 1;
  	      }
  
  	  if (args[i].stack)
--- 3520,3527 ----
  				 reg_parm_stack_space)
  		  || (pass == 0
  		      && check_sibcall_argument_overlap (before_arg,
! 							 &args[i], true)))
! 		sibcall_failure = true;
  	      }
  
  	  if (args[i].stack)
*************** expand_call (tree exp, rtx target, int i
*** 3532,3538 ****
  		stack and registers work.  Play it safe and bail out.  */
  	      if (ARGS_GROW_DOWNWARD && !STACK_GROWS_DOWNWARD)
  		{
! 		  sibcall_failure = 1;
  		  break;
  		}
  
--- 3551,3557 ----
  		stack and registers work.  Play it safe and bail out.  */
  	      if (ARGS_GROW_DOWNWARD && !STACK_GROWS_DOWNWARD)
  		{
! 		  sibcall_failure = true;
  		  break;
  		}
  
*************** expand_call (tree exp, rtx target, int i
*** 3541,3559 ****
  				 reg_parm_stack_space)
  		  || (pass == 0
  		      && check_sibcall_argument_overlap (before_arg,
! 							 &args[i], 1)))
! 		sibcall_failure = 1;
  	    }
  
        bool any_regs = false;
        for (i = 0; i < num_actuals; i++)
  	if (args[i].reg != NULL_RTX)
  	  {
  	    any_regs = true;
! 	    targetm.calls.call_args (args[i].reg, funtype);
  	  }
        if (!any_regs)
! 	targetm.calls.call_args (pc_rtx, funtype);
  
        /* Figure out the register where the value, if any, will come back.  */
        valreg = 0;
--- 3560,3589 ----
  				 reg_parm_stack_space)
  		  || (pass == 0
  		      && check_sibcall_argument_overlap (before_arg,
! 							 &args[i], true)))
! 		sibcall_failure = true;
  	    }
  
+       /* Set up the next argument register.  For sibling calls on machines
+ 	 with register windows this should be the incoming register.  */
+       if (pass == 0)
+ 	next_arg_reg = targetm.calls.function_incoming_arg
+ 	  (args_so_far, function_arg_info::end_marker ());
+       else
+ 	next_arg_reg = targetm.calls.function_arg
+ 	  (args_so_far, function_arg_info::end_marker ());
+ 
+       targetm.calls.start_call_args (args_so_far);
+ 
        bool any_regs = false;
        for (i = 0; i < num_actuals; i++)
  	if (args[i].reg != NULL_RTX)
  	  {
  	    any_regs = true;
! 	    targetm.calls.call_args (args_so_far, args[i].reg, funtype);
  	  }
        if (!any_regs)
! 	targetm.calls.call_args (args_so_far, pc_rtx, funtype);
  
        /* Figure out the register where the value, if any, will come back.  */
        valreg = 0;
*************** expand_call (tree exp, rtx target, int i
*** 3586,3592 ****
  	 passed in registers.  */
        if (OUTGOING_REG_PARM_STACK_SPACE ((!fndecl ? fntype : TREE_TYPE (fndecl)))
            && !ACCUMULATE_OUTGOING_ARGS
! 	  && must_preallocate == 0 && reg_parm_stack_space > 0)
  	anti_adjust_stack (GEN_INT (reg_parm_stack_space));
  
        /* Pass the function the address in which to return a
--- 3616,3622 ----
  	 passed in registers.  */
        if (OUTGOING_REG_PARM_STACK_SPACE ((!fndecl ? fntype : TREE_TYPE (fndecl)))
            && !ACCUMULATE_OUTGOING_ARGS
! 	  && !must_preallocate && reg_parm_stack_space > 0)
  	anti_adjust_stack (GEN_INT (reg_parm_stack_space));
  
        /* Pass the function the address in which to return a
*************** expand_call (tree exp, rtx target, int i
*** 3616,3630 ****
  	 later safely search backwards to find the CALL_INSN.  */
        before_call = get_last_insn ();
  
-       /* Set up next argument register.  For sibling calls on machines
- 	 with register windows this should be the incoming register.  */
-       if (pass == 0)
- 	next_arg_reg = targetm.calls.function_incoming_arg
- 	  (args_so_far, function_arg_info::end_marker ());
-       else
- 	next_arg_reg = targetm.calls.function_arg
- 	  (args_so_far, function_arg_info::end_marker ());
- 
        if (pass == 1 && (return_flags & ERF_RETURNS_ARG))
  	{
  	  int arg_nr = return_flags & ERF_RETURN_ARG_MASK;
--- 3646,3651 ----
*************** expand_call (tree exp, rtx target, int i
*** 3672,3679 ****
  	 of the argument setup we probably clobbered our call address.
  	 In that case we can't do sibcalls.  */
        if (pass == 0
! 	  && check_sibcall_argument_overlap (after_args, 0, 0))
! 	sibcall_failure = 1;
  
        /* If a non-BLKmode value is returned at the most significant end
  	 of a register, shift the register right by the appropriate amount
--- 3693,3700 ----
  	 of the argument setup we probably clobbered our call address.
  	 In that case we can't do sibcalls.  */
        if (pass == 0
! 	  && check_sibcall_argument_overlap (after_args, 0, false))
! 	sibcall_failure = true;
  
        /* If a non-BLKmode value is returned at the most significant end
  	 of a register, shift the register right by the appropriate amount
*************** expand_call (tree exp, rtx target, int i
*** 3687,3693 ****
  	  && targetm.calls.return_in_msb (rettype))
  	{
  	  if (shift_return_value (TYPE_MODE (rettype), false, valreg))
! 	    sibcall_failure = 1;
  	  valreg = gen_rtx_REG (TYPE_MODE (rettype), REGNO (valreg));
  	}
  
--- 3708,3714 ----
  	  && targetm.calls.return_in_msb (rettype))
  	{
  	  if (shift_return_value (TYPE_MODE (rettype), false, valreg))
! 	    sibcall_failure = true;
  	  valreg = gen_rtx_REG (TYPE_MODE (rettype), REGNO (valreg));
  	}
  
*************** expand_call (tree exp, rtx target, int i
*** 3829,3835 ****
  		 Since it is emitted after the call insn, sibcall
  		 optimization cannot be performed in that case.  */
  	      if (MEM_P (target))
! 		sibcall_failure = 1;
  	    }
  	}
        else
--- 3850,3856 ----
  		 Since it is emitted after the call insn, sibcall
  		 optimization cannot be performed in that case.  */
  	      if (MEM_P (target))
! 		sibcall_failure = true;
  	    }
  	}
        else
*************** expand_call (tree exp, rtx target, int i
*** 3881,3887 ****
  	  highest_outgoing_arg_in_use = initial_highest_arg_in_use;
  	  stack_usage_map = initial_stack_usage_map;
  	  stack_usage_watermark = initial_stack_usage_watermark;
! 	  sibcall_failure = 1;
  	}
        else if (ACCUMULATE_OUTGOING_ARGS && pass)
  	{
--- 3902,3908 ----
  	  highest_outgoing_arg_in_use = initial_highest_arg_in_use;
  	  stack_usage_map = initial_stack_usage_map;
  	  stack_usage_watermark = initial_stack_usage_watermark;
! 	  sibcall_failure = true;
  	}
        else if (ACCUMULATE_OUTGOING_ARGS && pass)
  	{
*************** expand_call (tree exp, rtx target, int i
*** 3923,3929 ****
        for (i = 0; i < num_actuals; ++i)
  	free (args[i].aligned_regs);
  
!       targetm.calls.end_call_args ();
  
        insns = get_insns ();
        end_sequence ();
--- 3944,3950 ----
        for (i = 0; i < num_actuals; ++i)
  	free (args[i].aligned_regs);
  
!       targetm.calls.end_call_args (args_so_far);
  
        insns = get_insns ();
        end_sequence ();
*************** emit_library_call_value_1 (int retval, r
*** 4119,4125 ****
    rtx call_fusage = 0;
    rtx mem_value = 0;
    rtx valreg;
!   int pcc_struct_value = 0;
    poly_int64 struct_value_size = 0;
    int flags;
    int reg_parm_stack_space = 0;
--- 4140,4146 ----
    rtx call_fusage = 0;
    rtx mem_value = 0;
    rtx valreg;
!   bool pcc_struct_value = false;
    poly_int64 struct_value_size = 0;
    int flags;
    int reg_parm_stack_space = 0;
*************** emit_library_call_value_1 (int retval, r
*** 4188,4194 ****
  	  rtx pointer_reg
  	    = hard_function_value (build_pointer_type (tfom), 0, 0, 0);
  	  mem_value = gen_rtx_MEM (outmode, pointer_reg);
! 	  pcc_struct_value = 1;
  	  if (value == 0)
  	    value = gen_reg_rtx (outmode);
  #else /* not PCC_STATIC_STRUCT_RETURN */
--- 4209,4215 ----
  	  rtx pointer_reg
  	    = hard_function_value (build_pointer_type (tfom), 0, 0, 0);
  	  mem_value = gen_rtx_MEM (outmode, pointer_reg);
! 	  pcc_struct_value = true;
  	  if (value == 0)
  	    value = gen_reg_rtx (outmode);
  #else /* not PCC_STATIC_STRUCT_RETURN */
*************** emit_library_call_value_1 (int retval, r
*** 4481,4497 ****
      }
  #endif
  
!   /* When expanding a normal call, args are stored in push order,
!      which is the reverse of what we have here.  */
!   bool any_regs = false;
!   for (int i = nargs; i-- > 0; )
!     if (argvec[i].reg != NULL_RTX)
!       {
! 	targetm.calls.call_args (argvec[i].reg, NULL_TREE);
! 	any_regs = true;
!       }
!   if (!any_regs)
!     targetm.calls.call_args (pc_rtx, NULL_TREE);
  
    /* Push the args that need to be pushed.  */
  
--- 4502,4510 ----
      }
  #endif
  
!   rtx call_cookie
!     = targetm.calls.function_arg (args_so_far,
! 				  function_arg_info::end_marker ());
  
    /* Push the args that need to be pushed.  */
  
*************** emit_library_call_value_1 (int retval, r
*** 4568,4575 ****
  		}
  	    }
  
! 	  emit_push_insn (val, mode, NULL_TREE, NULL_RTX, parm_align,
! 			  partial, reg, 0, argblock,
  			  (gen_int_mode
  			   (argvec[argnum].locate.offset.constant, Pmode)),
  			  reg_parm_stack_space,
--- 4581,4588 ----
  		}
  	    }
  
! 	  emit_push_insn (val, mode, lang_hooks.types.type_for_mode (mode, 0),
! 			  NULL_RTX, parm_align, partial, reg, 0, argblock,
  			  (gen_int_mode
  			   (argvec[argnum].locate.offset.constant, Pmode)),
  			  reg_parm_stack_space,
*************** emit_library_call_value_1 (int retval, r
*** 4609,4614 ****
--- 4622,4641 ----
  
    fun = prepare_call_address (NULL, fun, NULL, &call_fusage, 0, 0);
  
+   targetm.calls.start_call_args (args_so_far);
+ 
+   /* When expanding a normal call, args are stored in push order,
+      which is the reverse of what we have here.  */
+   bool any_regs = false;
+   for (int i = nargs; i-- > 0; )
+     if (argvec[i].reg != NULL_RTX)
+       {
+ 	targetm.calls.call_args (args_so_far, argvec[i].reg, NULL_TREE);
+ 	any_regs = true;
+       }
+   if (!any_regs)
+     targetm.calls.call_args (args_so_far, pc_rtx, NULL_TREE);
+ 
    /* Now load any reg parms into their regs.  */
  
    /* ARGNUM indexes the ARGVEC array in the order in which the arguments
*************** emit_library_call_value_1 (int retval, r
*** 4715,4724 ****
  	       get_identifier (XSTR (orgfun, 0)),
  	       build_function_type (tfom, NULL_TREE),
  	       original_args_size.constant, args_size.constant,
! 	       struct_value_size,
! 	       targetm.calls.function_arg (args_so_far,
! 					   function_arg_info::end_marker ()),
! 	       valreg,
  	       old_inhibit_defer_pop + 1, call_fusage, flags, args_so_far);
  
    if (flag_ipa_ra)
--- 4742,4748 ----
  	       get_identifier (XSTR (orgfun, 0)),
  	       build_function_type (tfom, NULL_TREE),
  	       original_args_size.constant, args_size.constant,
! 	       struct_value_size, call_cookie, valreg,
  	       old_inhibit_defer_pop + 1, call_fusage, flags, args_so_far);
  
    if (flag_ipa_ra)
*************** emit_library_call_value_1 (int retval, r
*** 4738,4744 ****
        valreg = gen_rtx_REG (TYPE_MODE (tfom), REGNO (valreg));
      }
  
!   targetm.calls.end_call_args ();
  
    /* For calls to `setjmp', etc., inform function.cc:setjmp_warnings
       that it should complain if nonvolatile values are live.  For
--- 4762,4768 ----
        valreg = gen_rtx_REG (TYPE_MODE (tfom), REGNO (valreg));
      }
  
!   targetm.calls.end_call_args (args_so_far);
  
    /* For calls to `setjmp', etc., inform function.cc:setjmp_warnings
       that it should complain if nonvolatile values are live.  For
*************** emit_library_call_value_1 (int retval, r
*** 4873,4882 ****
  
     FNDECL is the declaration of the function we are calling.
  
!    Return nonzero if this arg should cause sibcall failure,
!    zero otherwise.  */
  
! static int
  store_one_arg (struct arg_data *arg, rtx argblock, int flags,
  	       int variable_size ATTRIBUTE_UNUSED, int reg_parm_stack_space)
  {
--- 4897,4906 ----
  
     FNDECL is the declaration of the function we are calling.
  
!    Return true if this arg should cause sibcall failure,
!    false otherwise.  */
  
! static bool
  store_one_arg (struct arg_data *arg, rtx argblock, int flags,
  	       int variable_size ATTRIBUTE_UNUSED, int reg_parm_stack_space)
  {
*************** store_one_arg (struct arg_data *arg, rtx
*** 4885,4894 ****
    int partial = 0;
    poly_int64 used = 0;
    poly_int64 lower_bound = 0, upper_bound = 0;
!   int sibcall_failure = 0;
  
    if (TREE_CODE (pval) == ERROR_MARK)
!     return 1;
  
    /* Push a new temporary level for any temporaries we make for
       this argument.  */
--- 4909,4918 ----
    int partial = 0;
    poly_int64 used = 0;
    poly_int64 lower_bound = 0, upper_bound = 0;
!   bool sibcall_failure = false;
  
    if (TREE_CODE (pval) == ERROR_MARK)
!     return true;
  
    /* Push a new temporary level for any temporaries we make for
       this argument.  */
*************** store_one_arg (struct arg_data *arg, rtx
*** 4988,5000 ****
  
  	 For scalar function arguments stack_usage_map is sufficient to
  	 determine which stack slots must be saved and restored.  Scalar
! 	 arguments in general have pass_on_stack == 0.
  
  	 If this argument is initialized by a function which takes the
  	 address of the argument (a C++ constructor or a C function
  	 returning a BLKmode structure), then stack_usage_map is
  	 insufficient and expand_call must push the stack around the
! 	 function call.  Such arguments have pass_on_stack == 1.
  
  	 Note that it is always safe to set stack_arg_under_construction,
  	 but this generates suboptimal code if set when not needed.  */
--- 5012,5024 ----
  
  	 For scalar function arguments stack_usage_map is sufficient to
  	 determine which stack slots must be saved and restored.  Scalar
! 	 arguments in general have pass_on_stack == false.
  
  	 If this argument is initialized by a function which takes the
  	 address of the argument (a C++ constructor or a C function
  	 returning a BLKmode structure), then stack_usage_map is
  	 insufficient and expand_call must push the stack around the
! 	 function call.  Such arguments have pass_on_stack == true.
  
  	 Note that it is always safe to set stack_arg_under_construction,
  	 but this generates suboptimal code if set when not needed.  */
*************** store_one_arg (struct arg_data *arg, rtx
*** 5024,5030 ****
        && MEM_P (arg->value)
        && mem_might_overlap_already_clobbered_arg_p (XEXP (arg->value, 0),
  						    arg->locate.size.constant))
!     sibcall_failure = 1;
  
    /* Don't allow anything left on stack from computation
       of argument to alloca.  */
--- 5048,5054 ----
        && MEM_P (arg->value)
        && mem_might_overlap_already_clobbered_arg_p (XEXP (arg->value, 0),
  						    arg->locate.size.constant))
!     sibcall_failure = true;
  
    /* Don't allow anything left on stack from computation
       of argument to alloca.  */
*************** store_one_arg (struct arg_data *arg, rtx
*** 5087,5093 ****
  			      argblock, ARGS_SIZE_RTX (arg->locate.offset),
  			      reg_parm_stack_space,
  			      ARGS_SIZE_RTX (arg->locate.alignment_pad), true))
! 	sibcall_failure = 1;
  
        /* Unless this is a partially-in-register argument, the argument is now
  	 in the stack.  */
--- 5111,5117 ----
  			      argblock, ARGS_SIZE_RTX (arg->locate.offset),
  			      reg_parm_stack_space,
  			      ARGS_SIZE_RTX (arg->locate.alignment_pad), true))
! 	sibcall_failure = true;
  
        /* Unless this is a partially-in-register argument, the argument is now
  	 in the stack.  */
*************** store_one_arg (struct arg_data *arg, rtx
*** 5174,5190 ****
  		     this by making sure that the incoming size is the
  		     same as the outgoing size.  */
  		  if (maybe_ne (arg->locate.size.constant, size_val))
! 		    sibcall_failure = 1;
  		}
  	      else if (maybe_in_range_p (arg->locate.offset.constant,
  					 i, size_val))
! 		sibcall_failure = 1;
  	      /* Use arg->locate.size.constant instead of size_rtx
  		 because we only care about the part of the argument
  		 on the stack.  */
  	      else if (maybe_in_range_p (i, arg->locate.offset.constant,
  					 arg->locate.size.constant))
! 		sibcall_failure = 1;
  	    }
  	}
  
--- 5198,5214 ----
  		     this by making sure that the incoming size is the
  		     same as the outgoing size.  */
  		  if (maybe_ne (arg->locate.size.constant, size_val))
! 		    sibcall_failure = true;
  		}
  	      else if (maybe_in_range_p (arg->locate.offset.constant,
  					 i, size_val))
! 		sibcall_failure = true;
  	      /* Use arg->locate.size.constant instead of size_rtx
  		 because we only care about the part of the argument
  		 on the stack.  */
  	      else if (maybe_in_range_p (i, arg->locate.offset.constant,
  					 arg->locate.size.constant))
! 		sibcall_failure = true;
  	    }
  	}
  
diff -Nrcpad gcc-13.2.0/gcc/calls.h gcc-14.1.0/gcc/calls.h
*** gcc-13.2.0/gcc/calls.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/calls.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declarations and data types for RTL call insn generation.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations and data types for RTL call insn generation.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** public:
*** 112,118 ****
  
  extern int flags_from_decl_or_type (const_tree);
  extern int call_expr_flags (const_tree);
! extern int setjmp_call_p (const_tree);
  extern bool gimple_maybe_alloca_call_p (const gimple *);
  extern bool gimple_alloca_call_p (const gimple *);
  extern bool alloca_call_p (const_tree);
--- 112,118 ----
  
  extern int flags_from_decl_or_type (const_tree);
  extern int call_expr_flags (const_tree);
! extern bool setjmp_call_p (const_tree);
  extern bool gimple_maybe_alloca_call_p (const gimple *);
  extern bool gimple_alloca_call_p (const gimple *);
  extern bool alloca_call_p (const_tree);
diff -Nrcpad gcc-13.2.0/gcc/ccmp.cc gcc-14.1.0/gcc/ccmp.cc
*** gcc-13.2.0/gcc/ccmp.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ccmp.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Conditional compare related functions
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Conditional compare related functions
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** ccmp_tree_comparison_p (tree t, basic_bl
*** 90,98 ****
     If all checks OK in expand_ccmp_expr, it emits insns in prep_seq, then
     insns in gen_seq.  */
  
! /* Check whether G is a potential conditional compare candidate.  */
  static bool
! ccmp_candidate_p (gimple *g)
  {
    tree lhs, op0, op1;
    gimple *gs0, *gs1;
--- 90,99 ----
     If all checks OK in expand_ccmp_expr, it emits insns in prep_seq, then
     insns in gen_seq.  */
  
! /* Check whether G is a potential conditional compare candidate; OUTER is true if
!    G is the outer most AND/IOR.  */
  static bool
! ccmp_candidate_p (gimple *g, bool outer = false)
  {
    tree lhs, op0, op1;
    gimple *gs0, *gs1;
*************** ccmp_candidate_p (gimple *g)
*** 109,116 ****
    lhs = gimple_assign_lhs (g);
    op0 = gimple_assign_rhs1 (g);
    op1 = gimple_assign_rhs2 (g);
!   if ((TREE_CODE (op0) != SSA_NAME) || (TREE_CODE (op1) != SSA_NAME)
!       || !has_single_use (lhs))
      return false;
  
    bb = gimple_bb (g);
--- 110,118 ----
    lhs = gimple_assign_lhs (g);
    op0 = gimple_assign_rhs1 (g);
    op1 = gimple_assign_rhs2 (g);
!   if ((TREE_CODE (op0) != SSA_NAME) || (TREE_CODE (op1) != SSA_NAME))
!     return false;
!   if (!outer && !has_single_use (lhs))
      return false;
  
    bb = gimple_bb (g);
*************** expand_ccmp_expr (gimple *g, machine_mod
*** 284,290 ****
    rtx_insn *last;
    rtx tmp;
  
!   if (!ccmp_candidate_p (g))
      return NULL_RTX;
  
    last = get_last_insn ();
--- 286,292 ----
    rtx_insn *last;
    rtx tmp;
  
!   if (!ccmp_candidate_p (g, true))
      return NULL_RTX;
  
    last = get_last_insn ();
diff -Nrcpad gcc-13.2.0/gcc/ccmp.h gcc-14.1.0/gcc/ccmp.h
*** gcc-13.2.0/gcc/ccmp.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/ccmp.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Conditional comapre related functions.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Conditional comapre related functions.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/cfg-flags.def gcc-14.1.0/gcc/cfg-flags.def
*** gcc-13.2.0/gcc/cfg-flags.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfg-flags.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Flags on basic blocks and edges.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Flags on basic blocks and edges.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/cfg.cc gcc-14.1.0/gcc/cfg.cc
*** gcc-13.2.0/gcc/cfg.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfg.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow graph manipulation code for GNU compiler.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph manipulation code for GNU compiler.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** init_flow (struct function *the_fun)
*** 81,86 ****
--- 81,87 ----
      = ENTRY_BLOCK_PTR_FOR_FN (the_fun);
    the_fun->cfg->edge_flags_allocated = EDGE_ALL_FLAGS;
    the_fun->cfg->bb_flags_allocated = BB_ALL_FLAGS;
+   the_fun->cfg->full_profile = false;
  }
  
  /* Helper function for remove_edge and free_cffg.  Frees edge structure
*************** check_bb_profile (basic_block bb, FILE *
*** 475,483 ****
  	{
  	  fprintf (file, ";; %sInvalid sum of incoming counts ",
  		   s_indent);
! 	  sum.dump (file);
  	  fprintf (file, ", should be ");
! 	  bb->count.dump (file);
  	  fprintf (file, "\n");
  	}
      }
--- 476,484 ----
  	{
  	  fprintf (file, ";; %sInvalid sum of incoming counts ",
  		   s_indent);
! 	  sum.dump (file, fun);
  	  fprintf (file, ", should be ");
! 	  bb->count.dump (file, fun);
  	  fprintf (file, "\n");
  	}
      }
*************** dump_edge_info (FILE *file, edge e, dump
*** 525,531 ****
    if (e->count ().initialized_p () && do_details)
      {
        fputs (" count:", file);
!       e->count ().dump (file);
      }
  
    if (e->flags && do_details)
--- 526,532 ----
    if (e->count ().initialized_p () && do_details)
      {
        fputs (" count:", file);
!       e->count ().dump (file, cfun);
      }
  
    if (e->flags && do_details)
*************** dump_bb_info (FILE *outf, basic_block bb
*** 808,814 ****
  	  if (bb->count.initialized_p ())
  	    {
  	      fputs (", count ", outf);
! 	      bb->count.dump (outf);
  	    }
  	  if (maybe_hot_bb_p (fun, bb))
  	    fputs (", maybe hot", outf);
--- 809,815 ----
  	  if (bb->count.initialized_p ())
  	    {
  	      fputs (", count ", outf);
! 	      bb->count.dump (outf, cfun);
  	    }
  	  if (maybe_hot_bb_p (fun, bb))
  	    fputs (", maybe hot", outf);
*************** brief_dump_cfg (FILE *file, dump_flags_t
*** 901,906 ****
--- 902,968 ----
      }
  }
  
+ /* Set probability of E to NEW_PROB and rescale other edges
+    from E->src so their sum remains the same.  */
+ 
+ void
+ set_edge_probability_and_rescale_others (edge e, profile_probability new_prob)
+ {
+   edge e2;
+   edge_iterator ei;
+   if (e->probability == new_prob)
+     return;
+   /* If we made E unconditional, drop other frequencies to 0.  */
+   if (new_prob == profile_probability::always ())
+     {
+       FOR_EACH_EDGE (e2, ei, e->src->succs)
+ 	if (e2 != e)
+ 	  e2->probability = profile_probability::never ();
+     }
+   else
+     {
+       int n = 0;
+       edge other_e = NULL;
+ 
+       /* See how many other edges are leaving exit_edge->src.  */
+       FOR_EACH_EDGE (e2, ei, e->src->succs)
+ 	if (e2 != e && !(e2->flags & EDGE_FAKE))
+ 	  {
+ 	    other_e = e2;
+ 	    n++;
+ 	  }
+       /* If there is only one other edge with non-zero probability we do not
+ 	 need to scale which drops quality of profile from precise
+ 	 to adjusted.  */
+       if (n == 1)
+ 	other_e->probability = new_prob.invert ();
+       /* Nothing to do if there are no other edges.  */
+       else if (!n)
+ 	;
+       /* Do scaling if possible.  */
+       else if (e->probability.invert ().nonzero_p ())
+ 	{
+ 	  profile_probability num = new_prob.invert (),
+ 			      den = e->probability.invert ();
+ 	  FOR_EACH_EDGE (e2, ei, e->src->succs)
+ 	    if (e2 != e && !(e2->flags & EDGE_FAKE))
+ 	      e2->probability = e2->probability.apply_scale (num, den);
+ 	}
+       else
+ 	{
+ 	  if (dump_file && (dump_flags & TDF_DETAILS))
+ 	    fprintf (dump_file,
+ 		     ";; probability of edge %i->%i set reduced from 1."
+ 		     " The remaining edges are left inconsistent.\n",
+ 		     e->src->index, e->dest->index);
+ 	  FOR_EACH_EDGE (e2, ei, e->src->succs)
+ 	    if (e2 != e && !(e2->flags & EDGE_FAKE))
+ 	      e2->probability = new_prob.invert ().guessed () / n;
+ 	}
+     }
+   e->probability = new_prob;
+ }
+ 
  /* An edge originally destinating BB of COUNT has been proved to
     leave the block by TAKEN_EDGE.  Update profile of BB such that edge E can be
     redirected to destination of TAKEN_EDGE.
*************** void
*** 912,972 ****
  update_bb_profile_for_threading (basic_block bb, 
  				 profile_count count, edge taken_edge)
  {
!   edge c;
!   profile_probability prob;
!   edge_iterator ei;
  
    if (bb->count < count)
      {
        if (dump_file)
  	fprintf (dump_file, "bb %i count became negative after threading",
  		 bb->index);
      }
-   bb->count -= count;
  
!   /* Compute the probability of TAKEN_EDGE being reached via threaded edge.
!      Watch for overflows.  */
!   if (bb->count.nonzero_p ())
!     prob = count.probability_in (bb->count);
!   else
!     prob = profile_probability::never ();
!   if (prob > taken_edge->probability)
      {
!       if (dump_file)
  	{
! 	  fprintf (dump_file, "Jump threading proved probability of edge "
! 		   "%i->%i too small (it is ",
! 		   taken_edge->src->index, taken_edge->dest->index);	
! 	  taken_edge->probability.dump (dump_file);
! 	  fprintf (dump_file, " should be ");
! 	  prob.dump (dump_file);
! 	  fprintf (dump_file, ")\n");
  	}
!       prob = taken_edge->probability.apply_scale (6, 8);
!     }
! 
!   /* Now rescale the probabilities.  */
!   taken_edge->probability -= prob;
!   prob = prob.invert ();
!   if (prob == profile_probability::never ())
!     {
!       if (dump_file)
! 	fprintf (dump_file, "Edge probabilities of bb %i has been reset, "
! 		 "count of block should end up being 0, it is non-zero\n",
! 		 bb->index);
!       EDGE_SUCC (bb, 0)->probability = profile_probability::guessed_always ();
!       ei = ei_start (bb->succs);
!       ei_next (&ei);
!       for (; (c = ei_safe_edge (ei)); ei_next (&ei))
! 	c->probability = profile_probability::guessed_never ();
!     }
!   else if (!(prob == profile_probability::always ()))
!     {
!       FOR_EACH_EDGE (c, ei, bb->succs)
! 	c->probability /= prob;
      }
! 
!   gcc_assert (bb == taken_edge->src);
  }
  
  /* Multiply all frequencies of basic blocks in array BBS of length NBBS
--- 974,1030 ----
  update_bb_profile_for_threading (basic_block bb, 
  				 profile_count count, edge taken_edge)
  {
!   gcc_assert (bb == taken_edge->src);
! 
!   /* If there is no profile or the threaded path is never executed
!      we don't need to upate.  */
!   if (!bb->count.initialized_p ()
!       || count == profile_count::zero ())
!     return;
  
    if (bb->count < count)
      {
        if (dump_file)
  	fprintf (dump_file, "bb %i count became negative after threading",
  		 bb->index);
+       /* If probabilities looks very off, scale down and reduce to guesses
+ 	 to avoid dropping the other path close to zero.  */
+       if (bb->count < count.apply_scale (7, 8))
+ 	count = bb->count.apply_scale (1, 2).guessed ();
      }
  
!   /* If bb->count will become zero, the probabilities on the original path
!      are not really known, but it is probably better to keep original ones
!      then try to invent something new.  */
!   if (!(bb->count <= count))
      {
!       profile_probability prob;
!       /* Compute the probability of TAKEN_EDGE being reached via threaded edge.
! 	 Watch for overflows.  */
!       if (bb->count.nonzero_p ())
! 	prob = count.probability_in (bb->count);
!       else
! 	prob = taken_edge->probability.apply_scale (1, 2).guessed ();
!       if (prob > taken_edge->probability)
  	{
! 	  if (dump_file)
! 	    {
! 	      fprintf (dump_file, "Jump threading proved that the probability "
! 		       "of edge %i->%i was originally estimated too small. "
! 		       "(it is ",
! 		       taken_edge->src->index, taken_edge->dest->index);
! 	      taken_edge->probability.dump (dump_file);
! 	      fprintf (dump_file, " should be ");
! 	      prob.dump (dump_file);
! 	      fprintf (dump_file, ")\n");
! 	    }
! 	  prob = taken_edge->probability.apply_scale (6, 8).guessed ();
  	}
!       set_edge_probability_and_rescale_others (taken_edge,
! 					       (taken_edge->probability - prob)
! 					       / prob.invert ());
      }
!   bb->count -= count;
  }
  
  /* Multiply all frequencies of basic blocks in array BBS of length NBBS
*************** get_loop_copy (class loop *loop)
*** 1138,1140 ****
--- 1196,1222 ----
    else
      return NULL;
  }
+ 
+ /* Scales the frequencies of all basic blocks that are strictly
+    dominated by BB by NUM/DEN.  */
+ 
+ void
+ scale_strictly_dominated_blocks (basic_block bb,
+ 				 profile_count num, profile_count den)
+ {
+   basic_block son;
+ 
+   if (!den.nonzero_p () && !(num == profile_count::zero ()))
+     return;
+   auto_vec <basic_block, 8> worklist;
+   worklist.safe_push (bb);
+ 
+   while (!worklist.is_empty ())
+     for (son = first_dom_son (CDI_DOMINATORS, worklist.pop ());
+ 	 son;
+ 	 son = next_dom_son (CDI_DOMINATORS, son))
+       {
+ 	son->count = son->count.apply_scale (num, den);
+ 	worklist.safe_push (son);
+       }
+ }
diff -Nrcpad gcc-13.2.0/gcc/cfg.h gcc-14.1.0/gcc/cfg.h
*** gcc-13.2.0/gcc/cfg.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfg.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow graph manipulation code header file.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph manipulation code header file.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** struct GTY(()) control_flow_graph {
*** 78,83 ****
--- 78,86 ----
    /* Dynamically allocated edge/bb flags.  */
    int edge_flags_allocated;
    int bb_flags_allocated;
+ 
+   /* Set if the profile is computed on every edge and basic block.  */
+   bool full_profile;
  };
  
  
*************** extern void debug_bb (basic_block, dump_
*** 112,117 ****
--- 115,121 ----
  extern basic_block debug_bb_n (int, dump_flags_t);
  extern void dump_bb_info (FILE *, basic_block, int, dump_flags_t, bool, bool);
  extern void brief_dump_cfg (FILE *, dump_flags_t);
+ extern void set_edge_probability_and_rescale_others (edge, profile_probability);
  extern void update_bb_profile_for_threading (basic_block, profile_count, edge);
  extern void scale_bbs_frequencies_profile_count (basic_block *, int,
  					     profile_count, profile_count);
*************** extern void set_bb_copy (basic_block, ba
*** 126,131 ****
--- 130,137 ----
  extern basic_block get_bb_copy (basic_block);
  void set_loop_copy (class loop *, class loop *);
  class loop *get_loop_copy (class loop *);
+ void scale_strictly_dominated_blocks (basic_block,
+ 				      profile_count, profile_count);
  
  /* Generic RAII class to allocate a bit from storage of integer type T.
     The allocated bit is accessible as mask with the single bit set
diff -Nrcpad gcc-13.2.0/gcc/cfganal.cc gcc-14.1.0/gcc/cfganal.cc
*** gcc-13.2.0/gcc/cfganal.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfganal.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow graph analysis code for GNU compiler.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph analysis code for GNU compiler.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** control_dependences::control_dependences
*** 468,474 ****
  
    bitmap_obstack_initialize (&m_bitmaps);
    control_dependence_map.create (last_basic_block_for_fn (cfun));
!   control_dependence_map.quick_grow (last_basic_block_for_fn (cfun));
    for (int i = 0; i < last_basic_block_for_fn (cfun); ++i)
      bitmap_initialize (&control_dependence_map[i], &m_bitmaps);
    for (int i = 0; i < num_edges; ++i)
--- 468,474 ----
  
    bitmap_obstack_initialize (&m_bitmaps);
    control_dependence_map.create (last_basic_block_for_fn (cfun));
!   control_dependence_map.quick_grow_cleared (last_basic_block_for_fn (cfun));
    for (int i = 0; i < last_basic_block_for_fn (cfun); ++i)
      bitmap_initialize (&control_dependence_map[i], &m_bitmaps);
    for (int i = 0; i < num_edges; ++i)
*************** post_order_compute (int *post_order, boo
*** 740,746 ****
  }
  
  
! /* Helper routine for inverted_post_order_compute
     flow_dfs_compute_reverse_execute, and the reverse-CFG
     deapth first search in dominance.cc.
     BB has to belong to a region of CFG
--- 740,746 ----
  }
  
  
! /* Helper routine for inverted_rev_post_order_compute
     flow_dfs_compute_reverse_execute, and the reverse-CFG
     deapth first search in dominance.cc.
     BB has to belong to a region of CFG
*************** dfs_find_deadend (basic_block bb)
*** 820,831 ****
     and start looking for a "dead end" from that block
     and do another inverted traversal from that block.  */
  
! void
! inverted_post_order_compute (vec<int> *post_order,
! 			     sbitmap *start_points)
  {
    basic_block bb;
!   post_order->reserve_exact (n_basic_blocks_for_fn (cfun));
  
    if (flag_checking)
      verify_no_unreachable_blocks ();
--- 820,833 ----
     and start looking for a "dead end" from that block
     and do another inverted traversal from that block.  */
  
! int
! inverted_rev_post_order_compute (struct function *fn,
! 				 int *rev_post_order,
! 				 sbitmap *start_points)
  {
    basic_block bb;
! 
!   int rev_post_order_num = n_basic_blocks_for_fn (fn) - 1;
  
    if (flag_checking)
      verify_no_unreachable_blocks ();
*************** inverted_post_order_compute (vec<int> *p
*** 855,871 ****
  	}
      }
    else
!   /* Put all blocks that have no successor into the initial work list.  */
!   FOR_ALL_BB_FN (bb, cfun)
!     if (EDGE_COUNT (bb->succs) == 0)
!       {
!         /* Push the initial edge on to the stack.  */
!         if (EDGE_COUNT (bb->preds) > 0)
!           {
! 	    stack.quick_push (ei_start (bb->preds));
!             bitmap_set_bit (visited, bb->index);
!           }
!       }
  
    do
      {
--- 857,873 ----
  	}
      }
    else
!     /* Put all blocks that have no successor into the initial work list.  */
!     FOR_ALL_BB_FN (bb, cfun)
!       if (EDGE_COUNT (bb->succs) == 0)
! 	{
! 	  /* Push the initial edge on to the stack.  */
! 	  if (EDGE_COUNT (bb->preds) > 0)
! 	    {
! 	      stack.quick_push (ei_start (bb->preds));
! 	      bitmap_set_bit (visited, bb->index);
! 	    }
! 	}
  
    do
      {
*************** inverted_post_order_compute (vec<int> *p
*** 893,905 ****
                     time, check its predecessors.  */
  		stack.quick_push (ei_start (pred->preds));
                else
! 		post_order->quick_push (pred->index);
              }
            else
              {
  	      if (bb != EXIT_BLOCK_PTR_FOR_FN (cfun)
  		  && ei_one_before_end_p (ei))
! 		post_order->quick_push (bb->index);
  
                if (!ei_one_before_end_p (ei))
  		ei_next (&stack.last ());
--- 895,907 ----
                     time, check its predecessors.  */
  		stack.quick_push (ei_start (pred->preds));
                else
! 		rev_post_order[rev_post_order_num--] = pred->index;
              }
            else
              {
  	      if (bb != EXIT_BLOCK_PTR_FOR_FN (cfun)
  		  && ei_one_before_end_p (ei))
! 		rev_post_order[rev_post_order_num--] = bb->index;
  
                if (!ei_one_before_end_p (ei))
  		ei_next (&stack.last ());
*************** inverted_post_order_compute (vec<int> *p
*** 957,963 ****
    while (!stack.is_empty ());
  
    /* EXIT_BLOCK is always included.  */
!   post_order->quick_push (EXIT_BLOCK);
  }
  
  /* Compute the depth first search order of FN and store in the array
--- 959,966 ----
    while (!stack.is_empty ());
  
    /* EXIT_BLOCK is always included.  */
!   rev_post_order[rev_post_order_num--] = EXIT_BLOCK;
!   return n_basic_blocks_for_fn (fn);
  }
  
  /* Compute the depth first search order of FN and store in the array
*************** compute_idf (bitmap def_blocks, bitmap_h
*** 1698,1705 ****
           on earlier blocks first is better.
  	 ???  Basic blocks are by no means guaranteed to be ordered in
  	 optimal order for this iteration.  */
!       bb_index = bitmap_first_set_bit (work_set);
!       bitmap_clear_bit (work_set, bb_index);
  
        /* Since the registration of NEW -> OLD name mappings is done
  	 separately from the call to update_ssa, when updating the SSA
--- 1701,1707 ----
           on earlier blocks first is better.
  	 ???  Basic blocks are by no means guaranteed to be ordered in
  	 optimal order for this iteration.  */
!       bb_index = bitmap_clear_first_set_bit (work_set);
  
        /* Since the registration of NEW -> OLD name mappings is done
  	 separately from the call to update_ssa, when updating the SSA
*************** compute_idf (bitmap def_blocks, bitmap_h
*** 1709,1720 ****
        gcc_checking_assert (bb_index
  			   < (unsigned) last_basic_block_for_fn (cfun));
  
!       EXECUTE_IF_AND_COMPL_IN_BITMAP (&dfs[bb_index], phi_insertion_points,
! 	                              0, i, bi)
! 	{
  	  bitmap_set_bit (work_set, i);
- 	  bitmap_set_bit (phi_insertion_points, i);
- 	}
      }
  
    return phi_insertion_points;
--- 1711,1724 ----
        gcc_checking_assert (bb_index
  			   < (unsigned) last_basic_block_for_fn (cfun));
  
!       /* The population counts of the dominance frontiers is low
! 	 compared to that of phi_insertion_points which approaches
! 	 the IDF and of work_set which is at most that of the IDF
! 	 as well.  That makes iterating over the DFS bitmap preferential
! 	 to whole bitmap operations involving also phi_insertion_points.  */
!       EXECUTE_IF_SET_IN_BITMAP (&dfs[bb_index], 0, i, bi)
! 	if (bitmap_set_bit (phi_insertion_points, i))
  	  bitmap_set_bit (work_set, i);
      }
  
    return phi_insertion_points;
diff -Nrcpad gcc-13.2.0/gcc/cfganal.h gcc-14.1.0/gcc/cfganal.h
*** gcc-13.2.0/gcc/cfganal.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfganal.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow graph analysis header file.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph analysis header file.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern void add_noreturn_fake_exit_edges
*** 66,72 ****
  extern void connect_infinite_loops_to_exit (void);
  extern int post_order_compute (int *, bool, bool);
  extern basic_block dfs_find_deadend (basic_block);
! extern void inverted_post_order_compute (vec<int> *postorder, sbitmap *start_points = 0);
  extern int pre_and_rev_post_order_compute_fn (struct function *,
  					      int *, int *, bool);
  extern int pre_and_rev_post_order_compute (int *, int *, bool);
--- 66,73 ----
  extern void connect_infinite_loops_to_exit (void);
  extern int post_order_compute (int *, bool, bool);
  extern basic_block dfs_find_deadend (basic_block);
! extern int inverted_rev_post_order_compute (struct function *,
! 					    int *, sbitmap *start_points = 0);
  extern int pre_and_rev_post_order_compute_fn (struct function *,
  					      int *, int *, bool);
  extern int pre_and_rev_post_order_compute (int *, int *, bool);
diff -Nrcpad gcc-13.2.0/gcc/cfgbuild.cc gcc-14.1.0/gcc/cfgbuild.cc
*** gcc-13.2.0/gcc/cfgbuild.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgbuild.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow graph building code for GNU compiler.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph building code for GNU compiler.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** compute_outgoing_frequencies (basic_bloc
*** 693,698 ****
--- 693,735 ----
      }
  }
  
+ /* Update the profile information for BB, which was created by splitting
+    an RTL block that had a non-final jump.  */
+ 
+ static void
+ update_profile_for_new_sub_basic_block (basic_block bb)
+ {
+   edge e;
+   edge_iterator ei;
+ 
+   bool initialized_src = false, uninitialized_src = false;
+   bb->count = profile_count::zero ();
+   FOR_EACH_EDGE (e, ei, bb->preds)
+     {
+       if (e->count ().initialized_p ())
+ 	{
+ 	  bb->count += e->count ();
+ 	  initialized_src = true;
+ 	}
+       else
+ 	uninitialized_src = true;
+     }
+   /* When some edges are missing with read profile, this is
+      most likely because RTL expansion introduced loop.
+      When profile is guessed we may have BB that is reachable
+      from unlikely path as well as from normal path.
+ 
+      TODO: We should handle loops created during BB expansion
+      correctly here.  For now we assume all those loop to cycle
+      precisely once.  */
+   if (!initialized_src
+       || (uninitialized_src
+ 	   && profile_status_for_fn (cfun) < PROFILE_GUESSED))
+     bb->count = profile_count::uninitialized ();
+ 
+   compute_outgoing_frequencies (bb);
+ }
+ 
  /* Assume that some pass has inserted labels or control flow
     instructions within a basic block.  Split basic blocks as needed
     and create edges.  */
*************** find_many_sub_basic_blocks (sbitmap bloc
*** 744,783 ****
    if (profile_status_for_fn (cfun) != PROFILE_ABSENT)
      FOR_BB_BETWEEN (bb, min, max->next_bb, next_bb)
        {
- 	edge e;
- 	edge_iterator ei;
- 
  	if (STATE (bb) == BLOCK_ORIGINAL)
  	  continue;
  	if (STATE (bb) == BLOCK_NEW)
  	  {
! 	    bool initialized_src = false, uninitialized_src = false;
! 	    bb->count = profile_count::zero ();
! 	    FOR_EACH_EDGE (e, ei, bb->preds)
! 	      {
! 		if (e->count ().initialized_p ())
! 		  {
! 		    bb->count += e->count ();
! 		    initialized_src = true;
! 		  }
! 		else
! 		  uninitialized_src = true;
! 	      }
! 	    /* When some edges are missing with read profile, this is
! 	       most likely because RTL expansion introduced loop.
! 	       When profile is guessed we may have BB that is reachable
! 	       from unlikely path as well as from normal path.
! 
! 	       TODO: We should handle loops created during BB expansion
! 	       correctly here.  For now we assume all those loop to cycle
! 	       precisely once.  */
! 	    if (!initialized_src
! 		|| (uninitialized_src
! 		     && profile_status_for_fn (cfun) < PROFILE_GUESSED))
! 	      bb->count = profile_count::uninitialized ();
  	  }
!  	/* If nothing changed, there is no need to create new BBs.  */
! 	else if (EDGE_COUNT (bb->succs) == n_succs[bb->index])
  	  {
  	    /* In rare occassions RTL expansion might have mistakely assigned
  	       a probabilities different from what is in CFG.  This happens
--- 781,795 ----
    if (profile_status_for_fn (cfun) != PROFILE_ABSENT)
      FOR_BB_BETWEEN (bb, min, max->next_bb, next_bb)
        {
  	if (STATE (bb) == BLOCK_ORIGINAL)
  	  continue;
  	if (STATE (bb) == BLOCK_NEW)
  	  {
! 	    update_profile_for_new_sub_basic_block (bb);
! 	    continue;
  	  }
! 	/* If nothing changed, there is no need to create new BBs.  */
! 	if (EDGE_COUNT (bb->succs) == n_succs[bb->index])
  	  {
  	    /* In rare occassions RTL expansion might have mistakely assigned
  	       a probabilities different from what is in CFG.  This happens
*************** find_many_sub_basic_blocks (sbitmap bloc
*** 788,797 ****
  	      update_br_prob_note (bb);
  	    continue;
  	  }
- 
  	compute_outgoing_frequencies (bb);
        }
  
    FOR_EACH_BB_FN (bb, cfun)
      SET_STATE (bb, 0);
  }
--- 800,832 ----
  	      update_br_prob_note (bb);
  	    continue;
  	  }
  	compute_outgoing_frequencies (bb);
        }
  
    FOR_EACH_BB_FN (bb, cfun)
      SET_STATE (bb, 0);
  }
+ 
+ /* Like find_many_sub_basic_blocks, but look only within BB.  */
+ 
+ void
+ find_sub_basic_blocks (basic_block bb)
+ {
+   basic_block end_bb = bb->next_bb;
+   find_bb_boundaries (bb);
+   if (bb->next_bb == end_bb)
+     return;
+ 
+   /* Re-scan and wire in all edges.  This expects simple (conditional)
+      jumps at the end of each new basic blocks.  */
+   make_edges (bb, end_bb->prev_bb, 1);
+ 
+   /* Update branch probabilities.  Expect only (un)conditional jumps
+      to be created with only the forward edges.  */
+   if (profile_status_for_fn (cfun) != PROFILE_ABSENT)
+     {
+       compute_outgoing_frequencies (bb);
+       for (bb = bb->next_bb; bb != end_bb; bb = bb->next_bb)
+ 	update_profile_for_new_sub_basic_block (bb);
+     }
+ }
diff -Nrcpad gcc-13.2.0/gcc/cfgbuild.h gcc-14.1.0/gcc/cfgbuild.h
*** gcc-13.2.0/gcc/cfgbuild.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgbuild.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow graph building header file.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph building header file.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern bool inside_basic_block_p (const
*** 24,28 ****
--- 24,29 ----
  extern bool control_flow_insn_p (const rtx_insn *);
  extern void rtl_make_eh_edge (sbitmap, basic_block, rtx);
  extern void find_many_sub_basic_blocks (sbitmap);
+ extern void find_sub_basic_blocks (basic_block);
  
  #endif /* GCC_CFGBUILD_H */
diff -Nrcpad gcc-13.2.0/gcc/cfgcleanup.cc gcc-14.1.0/gcc/cfgcleanup.cc
*** gcc-13.2.0/gcc/cfgcleanup.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgcleanup.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow optimization code for GNU compiler.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow optimization code for GNU compiler.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** outgoing_edges_match (int mode, basic_bl
*** 1861,1869 ****
    /* fallthru edges must be forwarded to the same destination.  */
    if (fallthru1)
      {
!       basic_block d1 = (forwarder_block_p (fallthru1->dest)
  			? single_succ (fallthru1->dest): fallthru1->dest);
!       basic_block d2 = (forwarder_block_p (fallthru2->dest)
  			? single_succ (fallthru2->dest): fallthru2->dest);
  
        if (d1 != d2)
--- 1861,1869 ----
    /* fallthru edges must be forwarded to the same destination.  */
    if (fallthru1)
      {
!       basic_block d1 = (FORWARDER_BLOCK_P (fallthru1->dest)
  			? single_succ (fallthru1->dest): fallthru1->dest);
!       basic_block d2 = (FORWARDER_BLOCK_P (fallthru2->dest)
  			? single_succ (fallthru2->dest): fallthru2->dest);
  
        if (d1 != d2)
*************** bb_is_just_return (basic_block bb, rtx_i
*** 2608,2621 ****
    if (bb == EXIT_BLOCK_PTR_FOR_FN (cfun))
      return false;
  
!   FOR_BB_INSNS (bb, insn)
      if (NONDEBUG_INSN_P (insn))
        {
  	rtx pat = PATTERN (insn);
  
  	if (!*ret && ANY_RETURN_P (pat))
  	  *ret = insn;
! 	else if (!*ret && !*use && GET_CODE (pat) == USE
  	    && REG_P (XEXP (pat, 0))
  	    && REG_FUNCTION_VALUE_P (XEXP (pat, 0)))
  	  *use = insn;
--- 2608,2621 ----
    if (bb == EXIT_BLOCK_PTR_FOR_FN (cfun))
      return false;
  
!   FOR_BB_INSNS_REVERSE (bb, insn)
      if (NONDEBUG_INSN_P (insn))
        {
  	rtx pat = PATTERN (insn);
  
  	if (!*ret && ANY_RETURN_P (pat))
  	  *ret = insn;
! 	else if (*ret && !*use && GET_CODE (pat) == USE
  	    && REG_P (XEXP (pat, 0))
  	    && REG_FUNCTION_VALUE_P (XEXP (pat, 0)))
  	  *use = insn;
diff -Nrcpad gcc-13.2.0/gcc/cfgcleanup.h gcc-14.1.0/gcc/cfgcleanup.h
*** gcc-13.2.0/gcc/cfgcleanup.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgcleanup.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow optimization header file.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow optimization header file.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/cfgexpand.cc gcc-14.1.0/gcc/cfgexpand.cc
*** gcc-13.2.0/gcc/cfgexpand.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgexpand.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* A pass for lowering trees to RTL.
!    Copyright (C) 2004-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* A pass for lowering trees to RTL.
!    Copyright (C) 2004-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** visit_conflict (gimple *, tree op, tree,
*** 571,576 ****
--- 571,596 ----
    return false;
  }
  
+ /* Helper function for add_scope_conflicts_1.  For USE on
+    a stmt, if it is a SSA_NAME and in its SSA_NAME_DEF_STMT is known to be
+    based on some ADDR_EXPR, invoke VISIT on that ADDR_EXPR.  */
+ 
+ static inline void
+ add_scope_conflicts_2 (tree use, bitmap work,
+ 		       walk_stmt_load_store_addr_fn visit)
+ {
+   if (TREE_CODE (use) == SSA_NAME
+       && (POINTER_TYPE_P (TREE_TYPE (use))
+ 	  || INTEGRAL_TYPE_P (TREE_TYPE (use))))
+     {
+       gimple *g = SSA_NAME_DEF_STMT (use);
+       if (is_gimple_assign (g))
+ 	if (tree op = gimple_assign_rhs1 (g))
+ 	  if (TREE_CODE (op) == ADDR_EXPR)
+ 	    visit (g, TREE_OPERAND (op, 0), op, work);
+     }
+ }
+ 
  /* Helper routine for add_scope_conflicts, calculating the active partitions
     at the end of BB, leaving the result in WORK.  We're called to generate
     conflicts when FOR_CONFLICT is true, otherwise we're just tracking
*************** add_scope_conflicts_1 (basic_block bb, b
*** 583,588 ****
--- 603,610 ----
    edge_iterator ei;
    gimple_stmt_iterator gsi;
    walk_stmt_load_store_addr_fn visit;
+   use_operand_p use_p;
+   ssa_op_iter iter;
  
    bitmap_clear (work);
    FOR_EACH_EDGE (e, ei, bb->preds)
*************** add_scope_conflicts_1 (basic_block bb, b
*** 593,599 ****
--- 615,624 ----
    for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi))
      {
        gimple *stmt = gsi_stmt (gsi);
+       gphi *phi = as_a <gphi *> (stmt);
        walk_stmt_load_store_addr_ops (stmt, work, NULL, NULL, visit);
+       FOR_EACH_PHI_ARG (use_p, phi, iter, SSA_OP_USE)
+ 	add_scope_conflicts_2 (USE_FROM_PTR (use_p), work, visit);
      }
    for (gsi = gsi_after_labels (bb); !gsi_end_p (gsi); gsi_next (&gsi))
      {
*************** add_scope_conflicts_1 (basic_block bb, b
*** 613,620 ****
  	}
        else if (!is_gimple_debug (stmt))
  	{
! 	  if (for_conflict
! 	      && visit == visit_op)
  	    {
  	      /* If this is the first real instruction in this BB we need
  	         to add conflicts for everything live at this point now.
--- 638,644 ----
  	}
        else if (!is_gimple_debug (stmt))
  	{
! 	  if (for_conflict && visit == visit_op)
  	    {
  	      /* If this is the first real instruction in this BB we need
  	         to add conflicts for everything live at this point now.
*************** add_scope_conflicts_1 (basic_block bb, b
*** 634,639 ****
--- 658,665 ----
  	      visit = visit_conflict;
  	    }
  	  walk_stmt_load_store_addr_ops (stmt, work, visit, visit, visit);
+ 	  FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE)
+ 	    add_scope_conflicts_2 (USE_FROM_PTR (use_p), work, visit);
  	}
      }
  }
*************** add_partitioned_vars_to_ptset (struct pt
*** 786,792 ****
  /* Update points-to sets based on partition info, so we can use them on RTL.
     The bitmaps representing stack partitions will be saved until expand,
     where partitioned decls used as bases in memory expressions will be
!    rewritten.  */
  
  static void
  update_alias_info_with_stack_vars (void)
--- 812,824 ----
  /* Update points-to sets based on partition info, so we can use them on RTL.
     The bitmaps representing stack partitions will be saved until expand,
     where partitioned decls used as bases in memory expressions will be
!    rewritten.
! 
!    It is not necessary to update TBAA info on accesses to the coalesced
!    storage since our memory model doesn't allow TBAA to be used for
!    WAW or WAR dependences.  For RAW when the write is to an old object
!    the new object would not have been initialized at the point of the
!    read, invoking undefined behavior.  */
  
  static void
  update_alias_info_with_stack_vars (void)
*************** update_alias_info_with_stack_vars (void)
*** 859,865 ****
  
        add_partitioned_vars_to_ptset (&cfun->gimple_df->escaped,
  				     decls_to_partitions, &visited, temp);
! 
        delete decls_to_partitions;
        BITMAP_FREE (temp);
      }
--- 891,898 ----
  
        add_partitioned_vars_to_ptset (&cfun->gimple_df->escaped,
  				     decls_to_partitions, &visited, temp);
!       add_partitioned_vars_to_ptset (&cfun->gimple_df->escaped_return,
! 				     decls_to_partitions, &visited, temp);
        delete decls_to_partitions;
        BITMAP_FREE (temp);
      }
*************** dump_stack_var_partition (void)
*** 991,997 ****
        if (stack_vars[i].representative != i)
  	continue;
  
!       fprintf (dump_file, "Partition %lu: size ", (unsigned long) i);
        print_dec (stack_vars[i].size, dump_file);
        fprintf (dump_file, " align %u\n", stack_vars[i].alignb);
  
--- 1024,1031 ----
        if (stack_vars[i].representative != i)
  	continue;
  
!       fprintf (dump_file, "Partition " HOST_SIZE_T_PRINT_UNSIGNED ": size ",
! 	       (fmt_size_t) i);
        print_dec (stack_vars[i].size, dump_file);
        fprintf (dump_file, " align %u\n", stack_vars[i].alignb);
  
*************** expand_asm_loc (tree string, int vol, lo
*** 2873,2878 ****
--- 2907,2913 ----
        auto_vec<rtx> input_rvec, output_rvec;
        auto_vec<machine_mode> input_mode;
        auto_vec<const char *> constraints;
+       auto_vec<rtx> use_rvec;
        auto_vec<rtx> clobber_rvec;
        HARD_REG_SET clobbered_regs;
        CLEAR_HARD_REG_SET (clobbered_regs);
*************** expand_asm_loc (tree string, int vol, lo
*** 2882,2897 ****
  
        if (targetm.md_asm_adjust)
  	targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
! 			       constraints, clobber_rvec, clobbered_regs,
! 			       locus);
  
        asm_op = body;
        nclobbers = clobber_rvec.length ();
!       body = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (1 + nclobbers));
  
!       XVECEXP (body, 0, 0) = asm_op;
!       for (i = 0; i < nclobbers; i++)
! 	XVECEXP (body, 0, i + 1) = gen_rtx_CLOBBER (VOIDmode, clobber_rvec[i]);
      }
  
    emit_insn (body);
--- 2917,2936 ----
  
        if (targetm.md_asm_adjust)
  	targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
! 			       constraints, use_rvec, clobber_rvec,
! 			       clobbered_regs, locus);
  
        asm_op = body;
        nclobbers = clobber_rvec.length ();
!       auto nuses = use_rvec.length ();
!       body = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (1 + nuses + nclobbers));
  
!       i = 0;
!       XVECEXP (body, 0, i++) = asm_op;
!       for (rtx use : use_rvec)
! 	XVECEXP (body, 0, i++) = gen_rtx_USE (VOIDmode, use);
!       for (rtx clobber : clobber_rvec)
! 	XVECEXP (body, 0, i++) = gen_rtx_CLOBBER (VOIDmode, clobber);
      }
  
    emit_insn (body);
*************** expand_asm_stmt (gasm *stmt)
*** 3443,3453 ****
       maintaining source-level compatibility means automatically clobbering
       the flags register.  */
    rtx_insn *after_md_seq = NULL;
    if (targetm.md_asm_adjust)
      after_md_seq
  	= targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
! 				 constraints, clobber_rvec, clobbered_regs,
! 				 locus);
  
    /* Do not allow the hook to change the output and input count,
       lest it mess up the operand numbering.  */
--- 3482,3493 ----
       maintaining source-level compatibility means automatically clobbering
       the flags register.  */
    rtx_insn *after_md_seq = NULL;
+   auto_vec<rtx> use_rvec;
    if (targetm.md_asm_adjust)
      after_md_seq
  	= targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
! 				 constraints, use_rvec, clobber_rvec,
! 				 clobbered_regs, locus);
  
    /* Do not allow the hook to change the output and input count,
       lest it mess up the operand numbering.  */
*************** expand_asm_stmt (gasm *stmt)
*** 3455,3461 ****
    gcc_assert (input_rvec.length() == ninputs);
    gcc_assert (constraints.length() == noutputs + ninputs);
  
!   /* But it certainly can adjust the clobbers.  */
    unsigned nclobbers = clobber_rvec.length ();
  
    /* Third pass checks for easy conflicts.  */
--- 3495,3502 ----
    gcc_assert (input_rvec.length() == ninputs);
    gcc_assert (constraints.length() == noutputs + ninputs);
  
!   /* But it certainly can adjust the uses and clobbers.  */
!   unsigned nuses = use_rvec.length ();
    unsigned nclobbers = clobber_rvec.length ();
  
    /* Third pass checks for easy conflicts.  */
*************** expand_asm_stmt (gasm *stmt)
*** 3527,3533 ****
  			       ARGVEC CONSTRAINTS OPNAMES))
       If there is more than one, put them inside a PARALLEL.  */
  
!   if (noutputs == 0 && nclobbers == 0)
      {
        /* No output operands: put in a raw ASM_OPERANDS rtx.  */
        if (nlabels > 0)
--- 3568,3574 ----
  			       ARGVEC CONSTRAINTS OPNAMES))
       If there is more than one, put them inside a PARALLEL.  */
  
!   if (noutputs == 0 && nuses == 0 && nclobbers == 0)
      {
        /* No output operands: put in a raw ASM_OPERANDS rtx.  */
        if (nlabels > 0)
*************** expand_asm_stmt (gasm *stmt)
*** 3535,3541 ****
        else
  	emit_insn (body);
      }
!   else if (noutputs == 1 && nclobbers == 0)
      {
        ASM_OPERANDS_OUTPUT_CONSTRAINT (body) = constraints[0];
        if (nlabels > 0)
--- 3576,3582 ----
        else
  	emit_insn (body);
      }
!   else if (noutputs == 1 && nuses == 0 && nclobbers == 0)
      {
        ASM_OPERANDS_OUTPUT_CONSTRAINT (body) = constraints[0];
        if (nlabels > 0)
*************** expand_asm_stmt (gasm *stmt)
*** 3551,3557 ****
        if (num == 0)
  	num = 1;
  
!       body = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (num + nclobbers));
  
        /* For each output operand, store a SET.  */
        for (i = 0; i < noutputs; ++i)
--- 3592,3599 ----
        if (num == 0)
  	num = 1;
  
!       body = gen_rtx_PARALLEL (VOIDmode,
! 			       rtvec_alloc (num + nuses + nclobbers));
  
        /* For each output operand, store a SET.  */
        for (i = 0; i < noutputs; ++i)
*************** expand_asm_stmt (gasm *stmt)
*** 3578,3583 ****
--- 3620,3630 ----
        if (i == 0)
  	XVECEXP (body, 0, i++) = obody;
  
+       /* Add the uses specified by the target hook.  No checking should
+ 	 be needed since this doesn't come directly from user code.  */
+       for (rtx use : use_rvec)
+ 	XVECEXP (body, 0, i++) = gen_rtx_USE (VOIDmode, use);
+ 
        /* Store (clobber REG) for each clobbered register specified.  */
        for (unsigned j = 0; j < nclobbers; ++j)
  	{
*************** expand_asm_stmt (gasm *stmt)
*** 3625,3641 ****
  	{
  	  edge e;
  	  edge_iterator ei;
! 	  
  	  FOR_EACH_EDGE (e, ei, gimple_bb (stmt)->succs)
  	    {
! 	      start_sequence ();
! 	      for (rtx_insn *curr = after_rtl_seq;
! 		   curr != NULL_RTX;
! 		   curr = NEXT_INSN (curr))
! 		emit_insn (copy_insn (PATTERN (curr)));
! 	      rtx_insn *copy = get_insns ();
! 	      end_sequence ();
! 	      insert_insn_on_edge (copy, e);
  	    }
  	}
      }
--- 3672,3693 ----
  	{
  	  edge e;
  	  edge_iterator ei;
! 	  unsigned int cnt = EDGE_COUNT (gimple_bb (stmt)->succs);
! 
  	  FOR_EACH_EDGE (e, ei, gimple_bb (stmt)->succs)
  	    {
! 	      rtx_insn *copy;
! 	      if (--cnt == 0)
! 		copy = after_rtl_seq;
! 	      else
! 		{
! 		  start_sequence ();
! 		  duplicate_insn_chain (after_rtl_seq, after_rtl_end,
! 					NULL, NULL);
! 		  copy = get_insns ();
! 		  end_sequence ();
! 		}
! 	      prepend_insn_to_edge (copy, e);
  	    }
  	}
      }
*************** expand_return (tree retval)
*** 3753,3759 ****
    tree retval_rhs;
  
    /* If function wants no value, give it none.  */
!   if (TREE_CODE (TREE_TYPE (TREE_TYPE (current_function_decl))) == VOID_TYPE)
      {
        expand_normal (retval);
        expand_null_return ();
--- 3805,3811 ----
    tree retval_rhs;
  
    /* If function wants no value, give it none.  */
!   if (VOID_TYPE_P (TREE_TYPE (TREE_TYPE (current_function_decl))))
      {
        expand_normal (retval);
        expand_null_return ();
*************** expand_gimple_stmt_1 (gimple *stmt)
*** 3951,3987 ****
  	  {
  	    rtx target, temp;
  	    bool nontemporal = gimple_assign_nontemporal_move_p (assign_stmt);
- 	    struct separate_ops ops;
  	    bool promoted = false;
  
  	    target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE);
  	    if (GET_CODE (target) == SUBREG && SUBREG_PROMOTED_VAR_P (target))
  	      promoted = true;
  
! 	    ops.code = gimple_assign_rhs_code (assign_stmt);
! 	    ops.type = TREE_TYPE (lhs);
! 	    switch (get_gimple_rhs_class (ops.code))
! 	      {
! 		case GIMPLE_TERNARY_RHS:
! 		  ops.op2 = gimple_assign_rhs3 (assign_stmt);
! 		  /* Fallthru */
! 		case GIMPLE_BINARY_RHS:
! 		  ops.op1 = gimple_assign_rhs2 (assign_stmt);
! 		  /* Fallthru */
! 		case GIMPLE_UNARY_RHS:
! 		  ops.op0 = gimple_assign_rhs1 (assign_stmt);
! 		  break;
! 		default:
! 		  gcc_unreachable ();
! 	      }
! 	    ops.location = gimple_location (stmt);
! 
! 	    /* If we want to use a nontemporal store, force the value to
! 	       register first.  If we store into a promoted register,
! 	       don't directly expand to target.  */
  	    temp = nontemporal || promoted ? NULL_RTX : target;
! 	    temp = expand_expr_real_2 (&ops, temp, GET_MODE (target),
! 				       EXPAND_NORMAL);
  
  	    if (temp == target)
  	      ;
--- 4003,4020 ----
  	  {
  	    rtx target, temp;
  	    bool nontemporal = gimple_assign_nontemporal_move_p (assign_stmt);
  	    bool promoted = false;
  
  	    target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE);
  	    if (GET_CODE (target) == SUBREG && SUBREG_PROMOTED_VAR_P (target))
  	      promoted = true;
  
! 	   /* If we want to use a nontemporal store, force the value to
! 	      register first.  If we store into a promoted register,
! 	      don't directly expand to target.  */
  	    temp = nontemporal || promoted ? NULL_RTX : target;
! 	    temp = expand_expr_real_gassign (assign_stmt, temp,
! 					     GET_MODE (target), EXPAND_NORMAL);
  
  	    if (temp == target)
  	      ;
*************** expand_gimple_stmt_1 (gimple *stmt)
*** 3993,3999 ****
  		if (CONSTANT_P (temp) && GET_MODE (temp) == VOIDmode)
  		  {
  		    temp = convert_modes (GET_MODE (target),
! 					  TYPE_MODE (ops.type),
  					  temp, unsignedp);
  		    temp = convert_modes (GET_MODE (SUBREG_REG (target)),
  					  GET_MODE (target), temp, unsignedp);
--- 4026,4032 ----
  		if (CONSTANT_P (temp) && GET_MODE (temp) == VOIDmode)
  		  {
  		    temp = convert_modes (GET_MODE (target),
! 					  TYPE_MODE (TREE_TYPE (lhs)),
  					  temp, unsignedp);
  		    temp = convert_modes (GET_MODE (SUBREG_REG (target)),
  					  GET_MODE (target), temp, unsignedp);
*************** expand_debug_expr (tree exp)
*** 4524,4529 ****
--- 4557,4566 ----
        /* Fall through.  */
  
      case INTEGER_CST:
+       if (TREE_CODE (TREE_TYPE (exp)) == BITINT_TYPE
+ 	  && TYPE_MODE (TREE_TYPE (exp)) == BLKmode)
+ 	return NULL;
+       /* FALLTHRU */
      case REAL_CST:
      case FIXED_CST:
        op0 = expand_expr (exp, NULL_RTX, mode, EXPAND_INITIALIZER);
*************** expand_debug_expr (tree exp)
*** 5365,5374 ****
      case VEC_WIDEN_MULT_ODD_EXPR:
      case VEC_WIDEN_LSHIFT_HI_EXPR:
      case VEC_WIDEN_LSHIFT_LO_EXPR:
-     case VEC_WIDEN_PLUS_HI_EXPR:
-     case VEC_WIDEN_PLUS_LO_EXPR:
-     case VEC_WIDEN_MINUS_HI_EXPR:
-     case VEC_WIDEN_MINUS_LO_EXPR:
      case VEC_PERM_EXPR:
      case VEC_DUPLICATE_EXPR:
      case VEC_SERIES_EXPR:
--- 5402,5407 ----
*************** expand_debug_expr (tree exp)
*** 5405,5412 ****
      case WIDEN_MULT_EXPR:
      case WIDEN_MULT_PLUS_EXPR:
      case WIDEN_MULT_MINUS_EXPR:
-     case WIDEN_PLUS_EXPR:
-     case WIDEN_MINUS_EXPR:
        if (SCALAR_INT_MODE_P (GET_MODE (op0))
  	  && SCALAR_INT_MODE_P (mode))
  	{
--- 5438,5443 ----
*************** expand_debug_expr (tree exp)
*** 5419,5428 ****
  	    op1 = simplify_gen_unary (ZERO_EXTEND, mode, op1, inner_mode);
  	  else
  	    op1 = simplify_gen_unary (SIGN_EXTEND, mode, op1, inner_mode);
- 	  if (TREE_CODE (exp) == WIDEN_PLUS_EXPR)
- 	    return simplify_gen_binary (PLUS, mode, op0, op1);
- 	  else if (TREE_CODE (exp) == WIDEN_MINUS_EXPR)
- 	    return simplify_gen_binary (MINUS, mode, op0, op1);
  	  op0 = simplify_gen_binary (MULT, mode, op0, op1);
  	  if (TREE_CODE (exp) == WIDEN_MULT_EXPR)
  	    return op0;
--- 5450,5455 ----
*************** discover_nonconstant_array_refs_r (tree
*** 6340,6350 ****
    /* References of size POLY_INT_CST to a fixed-size object must go
       through memory.  It's more efficient to force that here than
       to create temporary slots on the fly.
!      RTL expansion expectes TARGET_MEM_REF to always address actual memory.  */
    else if (TREE_CODE (t) == TARGET_MEM_REF
  	   || (TREE_CODE (t) == MEM_REF
  	       && TYPE_SIZE (TREE_TYPE (t))
! 	       && POLY_INT_CST_P (TYPE_SIZE (TREE_TYPE (t)))))
      {
        tree base = get_base_address (t);
        if (base
--- 6367,6381 ----
    /* References of size POLY_INT_CST to a fixed-size object must go
       through memory.  It's more efficient to force that here than
       to create temporary slots on the fly.
!      RTL expansion expectes TARGET_MEM_REF to always address actual memory.
!      Also, force to stack non-BLKmode vars accessed through VIEW_CONVERT_EXPR
!      to BLKmode type.  */
    else if (TREE_CODE (t) == TARGET_MEM_REF
  	   || (TREE_CODE (t) == MEM_REF
  	       && TYPE_SIZE (TREE_TYPE (t))
! 	       && POLY_INT_CST_P (TYPE_SIZE (TREE_TYPE (t))))
! 	   || (TREE_CODE (t) == VIEW_CONVERT_EXPR
! 	       && TYPE_MODE (TREE_TYPE (t)) == BLKmode))
      {
        tree base = get_base_address (t);
        if (base
diff -Nrcpad gcc-13.2.0/gcc/cfgexpand.h gcc-14.1.0/gcc/cfgexpand.h
*** gcc-13.2.0/gcc/cfgexpand.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgexpand.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Header file for lowering trees to RTL.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Header file for lowering trees to RTL.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/cfghooks.cc gcc-14.1.0/gcc/cfghooks.cc
*** gcc-13.2.0/gcc/cfghooks.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfghooks.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Hooks for cfg representation specific functions.
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
     Contributed by Sebastian Pop <s.pop@laposte.net>
  
  This file is part of GCC.
--- 1,5 ----
  /* Hooks for cfg representation specific functions.
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
     Contributed by Sebastian Pop <s.pop@laposte.net>
  
  This file is part of GCC.
*************** DEBUG_FUNCTION void
*** 102,108 ****
  verify_flow_info (void)
  {
    size_t *edge_checksum;
!   int err = 0;
    basic_block bb, last_bb_seen;
    basic_block *last_visited;
  
--- 102,108 ----
  verify_flow_info (void)
  {
    size_t *edge_checksum;
!   bool err = false;
    basic_block bb, last_bb_seen;
    basic_block *last_visited;
  
*************** verify_flow_info (void)
*** 118,131 ****
  	  && bb != BASIC_BLOCK_FOR_FN (cfun, bb->index))
  	{
  	  error ("bb %d on wrong place", bb->index);
! 	  err = 1;
  	}
  
        if (bb->prev_bb != last_bb_seen)
  	{
  	  error ("prev_bb of %d should be %d, not %d",
  		 bb->index, last_bb_seen->index, bb->prev_bb->index);
! 	  err = 1;
  	}
  
        last_bb_seen = bb;
--- 118,131 ----
  	  && bb != BASIC_BLOCK_FOR_FN (cfun, bb->index))
  	{
  	  error ("bb %d on wrong place", bb->index);
! 	  err = true;
  	}
  
        if (bb->prev_bb != last_bb_seen)
  	{
  	  error ("prev_bb of %d should be %d, not %d",
  		 bb->index, last_bb_seen->index, bb->prev_bb->index);
! 	  err = true;
  	}
  
        last_bb_seen = bb;
*************** verify_flow_info (void)
*** 142,159 ****
  	{
  	  error ("verify_flow_info: Block %i has loop_father, but there are no loops",
  		 bb->index);
! 	  err = 1;
  	}
        if (bb->loop_father == NULL && current_loops != NULL)
  	{
  	  error ("verify_flow_info: Block %i lacks loop_father", bb->index);
! 	  err = 1;
  	}
  
        if (!bb->count.verify ())
  	{
  	  error ("verify_flow_info: Wrong count of block %i", bb->index);
! 	  err = 1;
  	}
        /* FIXME: Graphite and SLJL and target code still tends to produce
  	 edges with no probability.  */
--- 142,159 ----
  	{
  	  error ("verify_flow_info: Block %i has loop_father, but there are no loops",
  		 bb->index);
! 	  err = true;
  	}
        if (bb->loop_father == NULL && current_loops != NULL)
  	{
  	  error ("verify_flow_info: Block %i lacks loop_father", bb->index);
! 	  err = true;
  	}
  
        if (!bb->count.verify ())
  	{
  	  error ("verify_flow_info: Wrong count of block %i", bb->index);
! 	  err = true;
  	}
        /* FIXME: Graphite and SLJL and target code still tends to produce
  	 edges with no probability.  */
*************** verify_flow_info (void)
*** 161,173 ****
            && !bb->count.initialized_p () && !flag_graphite && 0)
  	{
  	  error ("verify_flow_info: Missing count of block %i", bb->index);
! 	  err = 1;
  	}
  
        if (bb->flags & ~cfun->cfg->bb_flags_allocated)
  	{
  	  error ("verify_flow_info: unallocated flag set on BB %d", bb->index);
! 	  err = 1;
  	}
  
        FOR_EACH_EDGE (e, ei, bb->succs)
--- 161,173 ----
            && !bb->count.initialized_p () && !flag_graphite && 0)
  	{
  	  error ("verify_flow_info: Missing count of block %i", bb->index);
! 	  err = true;
  	}
  
        if (bb->flags & ~cfun->cfg->bb_flags_allocated)
  	{
  	  error ("verify_flow_info: unallocated flag set on BB %d", bb->index);
! 	  err = true;
  	}
  
        FOR_EACH_EDGE (e, ei, bb->succs)
*************** verify_flow_info (void)
*** 176,182 ****
  	    {
  	      error ("verify_flow_info: Duplicate edge %i->%i",
  		     e->src->index, e->dest->index);
! 	      err = 1;
  	    }
  	  /* FIXME: Graphite and SLJL and target code still tends to produce
  	     edges with no probability.  */
--- 176,182 ----
  	    {
  	      error ("verify_flow_info: Duplicate edge %i->%i",
  		     e->src->index, e->dest->index);
! 	      err = true;
  	    }
  	  /* FIXME: Graphite and SLJL and target code still tends to produce
  	     edges with no probability.  */
*************** verify_flow_info (void)
*** 185,197 ****
  	    {
  	      error ("Uninitialized probability of edge %i->%i", e->src->index,
  		     e->dest->index);
! 	      err = 1;
  	    }
  	  if (!e->probability.verify ())
  	    {
  	      error ("verify_flow_info: Wrong probability of edge %i->%i",
  		     e->src->index, e->dest->index);
! 	      err = 1;
  	    }
  
  	  last_visited [e->dest->index] = bb;
--- 185,197 ----
  	    {
  	      error ("Uninitialized probability of edge %i->%i", e->src->index,
  		     e->dest->index);
! 	      err = true;
  	    }
  	  if (!e->probability.verify ())
  	    {
  	      error ("verify_flow_info: Wrong probability of edge %i->%i",
  		     e->src->index, e->dest->index);
! 	      err = true;
  	    }
  
  	  last_visited [e->dest->index] = bb;
*************** verify_flow_info (void)
*** 208,221 ****
  	      fprintf (stderr, "\nSuccessor: ");
  	      dump_edge_info (stderr, e, TDF_DETAILS, 1);
  	      fprintf (stderr, "\n");
! 	      err = 1;
  	    }
  
  	  if (e->flags & ~cfun->cfg->edge_flags_allocated)
  	    {
  	      error ("verify_flow_info: unallocated edge flag set on %d -> %d",
  		     e->src->index, e->dest->index);
! 	      err = 1;
  	    }
  
  	  edge_checksum[e->dest->index] += (size_t) e;
--- 208,221 ----
  	      fprintf (stderr, "\nSuccessor: ");
  	      dump_edge_info (stderr, e, TDF_DETAILS, 1);
  	      fprintf (stderr, "\n");
! 	      err = true;
  	    }
  
  	  if (e->flags & ~cfun->cfg->edge_flags_allocated)
  	    {
  	      error ("verify_flow_info: unallocated edge flag set on %d -> %d",
  		     e->src->index, e->dest->index);
! 	      err = true;
  	    }
  
  	  edge_checksum[e->dest->index] += (size_t) e;
*************** verify_flow_info (void)
*** 223,229 ****
        if (n_fallthru > 1)
  	{
  	  error ("wrong amount of branch edges after unconditional jump %i", bb->index);
! 	  err = 1;
  	}
  
        FOR_EACH_EDGE (e, ei, bb->preds)
--- 223,229 ----
        if (n_fallthru > 1)
  	{
  	  error ("wrong amount of branch edges after unconditional jump %i", bb->index);
! 	  err = true;
  	}
  
        FOR_EACH_EDGE (e, ei, bb->preds)
*************** verify_flow_info (void)
*** 236,242 ****
  	      fputs ("\nSuccessor: ", stderr);
  	      dump_edge_info (stderr, e, TDF_DETAILS, 1);
  	      fputc ('\n', stderr);
! 	      err = 1;
  	    }
  
  	  if (ei.index != e->dest_idx)
--- 236,242 ----
  	      fputs ("\nSuccessor: ", stderr);
  	      dump_edge_info (stderr, e, TDF_DETAILS, 1);
  	      fputc ('\n', stderr);
! 	      err = true;
  	    }
  
  	  if (ei.index != e->dest_idx)
*************** verify_flow_info (void)
*** 249,255 ****
  	      fputs ("\nSuccessor: ", stderr);
  	      dump_edge_info (stderr, e, TDF_DETAILS, 1);
  	      fputc ('\n', stderr);
! 	      err = 1;
  	    }
  
  	  edge_checksum[e->dest->index] -= (size_t) e;
--- 249,255 ----
  	      fputs ("\nSuccessor: ", stderr);
  	      dump_edge_info (stderr, e, TDF_DETAILS, 1);
  	      fputc ('\n', stderr);
! 	      err = true;
  	    }
  
  	  edge_checksum[e->dest->index] -= (size_t) e;
*************** verify_flow_info (void)
*** 272,278 ****
      if (edge_checksum[bb->index])
        {
  	error ("basic block %i edge lists are corrupted", bb->index);
! 	err = 1;
        }
  
    /* Clean up.  */
--- 272,278 ----
      if (edge_checksum[bb->index])
        {
  	error ("basic block %i edge lists are corrupted", bb->index);
! 	err = true;
        }
  
    /* Clean up.  */
*************** verify_flow_info (void)
*** 280,286 ****
    free (edge_checksum);
  
    if (cfg_hooks->verify_flow_info)
!     err |= cfg_hooks->verify_flow_info ();
    if (err)
      internal_error ("verify_flow_info failed");
    timevar_pop (TV_CFG_VERIFY);
--- 280,288 ----
    free (edge_checksum);
  
    if (cfg_hooks->verify_flow_info)
!     if (cfg_hooks->verify_flow_info ())
!       err = true;
! 
    if (err)
      internal_error ("verify_flow_info failed");
    timevar_pop (TV_CFG_VERIFY);
diff -Nrcpad gcc-13.2.0/gcc/cfghooks.h gcc-14.1.0/gcc/cfghooks.h
*** gcc-13.2.0/gcc/cfghooks.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfghooks.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Hooks for cfg representation specific functions.
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
     Contributed by Sebastian Pop <s.pop@laposte.net>
  
  This file is part of GCC.
--- 1,5 ----
  /* Hooks for cfg representation specific functions.
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
     Contributed by Sebastian Pop <s.pop@laposte.net>
  
  This file is part of GCC.
*************** struct cfg_hooks
*** 78,84 ****
    const char *name;
  
    /* Debugging.  */
!   int (*verify_flow_info) (void);
    void (*dump_bb) (FILE *, basic_block, int, dump_flags_t);
    void (*dump_bb_for_graph) (pretty_printer *, basic_block);
  
--- 78,84 ----
    const char *name;
  
    /* Debugging.  */
!   bool (*verify_flow_info) (void);
    void (*dump_bb) (FILE *, basic_block, int, dump_flags_t);
    void (*dump_bb_for_graph) (pretty_printer *, basic_block);
  
diff -Nrcpad gcc-13.2.0/gcc/cfgloop.cc gcc-14.1.0/gcc/cfgloop.cc
*** gcc-13.2.0/gcc/cfgloop.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgloop.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Natural loop discovery code for GNU compiler.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Natural loop discovery code for GNU compiler.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 33,38 ****
--- 33,39 ----
  #include "dumpfile.h"
  #include "tree-ssa.h"
  #include "tree-pretty-print.h"
+ #include "sreal.h"
  
  static void flow_loops_cfg_dump (FILE *);
  
*************** flow_loop_dump (const class loop *loop,
*** 134,153 ****
        fprintf (file, "\n");
      }
  
!   fprintf (file, ";;  depth %d, outer %ld\n",
  	   loop_depth (loop), (long) (loop_outer (loop)
  				      ? loop_outer (loop)->num : -1));
  
!   if (loop->latch)
!     {
!       bool read_profile_p;
!       gcov_type nit = expected_loop_iterations_unbounded (loop, &read_profile_p);
!       if (read_profile_p && !loop->any_estimate)
! 	fprintf (file, ";;  profile-based iteration count: %" PRIu64 "\n",
! 		 (uint64_t) nit);
!     }
! 
!   fprintf (file, ";;  nodes:");
    bbs = get_loop_body (loop);
    for (i = 0; i < loop->num_nodes; i++)
      fprintf (file, " %d", bbs[i]->index);
--- 135,146 ----
        fprintf (file, "\n");
      }
  
!   fprintf (file, ";;  depth %d, outer %ld",
  	   loop_depth (loop), (long) (loop_outer (loop)
  				      ? loop_outer (loop)->num : -1));
+   print_loop_info (file, loop, ";;  ");
  
!   fprintf (file, "\n;;  nodes:");
    bbs = get_loop_body (loop);
    for (i = 0; i < loop->num_nodes; i++)
      fprintf (file, " %d", bbs[i]->index);
*************** void
*** 1902,1934 ****
  record_niter_bound (class loop *loop, const widest_int &i_bound,
  		    bool realistic, bool upper)
  {
    /* Update the bounds only when there is no previous estimation, or when the
       current estimation is smaller.  */
    if (upper
        && (!loop->any_upper_bound
! 	  || wi::ltu_p (i_bound, loop->nb_iterations_upper_bound)))
      {
        loop->any_upper_bound = true;
!       loop->nb_iterations_upper_bound = i_bound;
        if (!loop->any_likely_upper_bound)
  	{
  	  loop->any_likely_upper_bound = true;
! 	  loop->nb_iterations_likely_upper_bound = i_bound;
  	}
      }
    if (realistic
        && (!loop->any_estimate
! 	  || wi::ltu_p (i_bound, loop->nb_iterations_estimate)))
      {
        loop->any_estimate = true;
!       loop->nb_iterations_estimate = i_bound;
      }
    if (!realistic
        && (!loop->any_likely_upper_bound
!           || wi::ltu_p (i_bound, loop->nb_iterations_likely_upper_bound)))
      {
        loop->any_likely_upper_bound = true;
!       loop->nb_iterations_likely_upper_bound = i_bound;
      }
  
    /* If an upper bound is smaller than the realistic estimate of the
--- 1895,1932 ----
  record_niter_bound (class loop *loop, const widest_int &i_bound,
  		    bool realistic, bool upper)
  {
+   if (wi::min_precision (i_bound, SIGNED) > bound_wide_int ().get_precision ())
+     return;
+ 
+   bound_wide_int bound = bound_wide_int::from (i_bound, SIGNED);
+ 
    /* Update the bounds only when there is no previous estimation, or when the
       current estimation is smaller.  */
    if (upper
        && (!loop->any_upper_bound
! 	  || wi::ltu_p (bound, loop->nb_iterations_upper_bound)))
      {
        loop->any_upper_bound = true;
!       loop->nb_iterations_upper_bound = bound;
        if (!loop->any_likely_upper_bound)
  	{
  	  loop->any_likely_upper_bound = true;
! 	  loop->nb_iterations_likely_upper_bound = bound;
  	}
      }
    if (realistic
        && (!loop->any_estimate
! 	  || wi::ltu_p (bound, loop->nb_iterations_estimate)))
      {
        loop->any_estimate = true;
!       loop->nb_iterations_estimate = bound;
      }
    if (!realistic
        && (!loop->any_likely_upper_bound
! 	  || wi::ltu_p (bound, loop->nb_iterations_likely_upper_bound)))
      {
        loop->any_likely_upper_bound = true;
!       loop->nb_iterations_likely_upper_bound = bound;
      }
  
    /* If an upper bound is smaller than the realistic estimate of the
*************** get_estimated_loop_iterations (class loo
*** 2014,2029 ****
       profile.  */
    if (!loop->any_estimate)
      {
!       if (loop->header->count.reliable_p ())
  	{
!           *nit = gcov_type_to_wide_int
! 		   (expected_loop_iterations_unbounded (loop) + 1);
  	  return true;
  	}
        return false;
      }
  
!   *nit = loop->nb_iterations_estimate;
    return true;
  }
  
--- 2012,2029 ----
       profile.  */
    if (!loop->any_estimate)
      {
!       sreal snit;
!       bool reliable;
!       if (expected_loop_iterations_by_profile (loop, &snit, &reliable)
! 	  && reliable)
  	{
! 	  *nit = snit.to_nearest_int ();
  	  return true;
  	}
        return false;
      }
  
!   *nit = widest_int::from (loop->nb_iterations_estimate, SIGNED);
    return true;
  }
  
*************** get_max_loop_iterations (const class loo
*** 2037,2043 ****
    if (!loop->any_upper_bound)
      return false;
  
!   *nit = loop->nb_iterations_upper_bound;
    return true;
  }
  
--- 2037,2043 ----
    if (!loop->any_upper_bound)
      return false;
  
!   *nit = widest_int::from (loop->nb_iterations_upper_bound, SIGNED);
    return true;
  }
  
*************** get_likely_max_loop_iterations (class lo
*** 2071,2077 ****
    if (!loop->any_likely_upper_bound)
      return false;
  
!   *nit = loop->nb_iterations_likely_upper_bound;
    return true;
  }
  
--- 2071,2077 ----
    if (!loop->any_likely_upper_bound)
      return false;
  
!   *nit = widest_int::from (loop->nb_iterations_likely_upper_bound, SIGNED);
    return true;
  }
  
diff -Nrcpad gcc-13.2.0/gcc/cfgloop.h gcc-14.1.0/gcc/cfgloop.h
*** gcc-13.2.0/gcc/cfgloop.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgloop.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Natural loop functions
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Natural loop functions
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum iv_extend_code
*** 44,49 ****
--- 44,52 ----
    IV_UNKNOWN_EXTEND
  };
  
+ typedef generic_wide_int <fixed_wide_int_storage <WIDE_INT_MAX_INL_PRECISION> >
+   bound_wide_int;
+ 
  /* The structure describing a bound on number of iterations of a loop.  */
  
  class GTY ((chain_next ("%h.next"))) nb_iter_bound {
*************** public:
*** 58,64 ****
          overflows (as MAX + 1 is sometimes produced as the estimate on number
  	of executions of STMT).
       b) it is consistent with the result of number_of_iterations_exit.  */
!   widest_int bound;
  
    /* True if, after executing the statement BOUND + 1 times, we will
       leave the loop; that is, all the statements after it are executed at most
--- 61,67 ----
          overflows (as MAX + 1 is sometimes produced as the estimate on number
  	of executions of STMT).
       b) it is consistent with the result of number_of_iterations_exit.  */
!   bound_wide_int bound;
  
    /* True if, after executing the statement BOUND + 1 times, we will
       leave the loop; that is, all the statements after it are executed at most
*************** public:
*** 161,174 ****
  
    /* An integer guaranteed to be greater or equal to nb_iterations.  Only
       valid if any_upper_bound is true.  */
!   widest_int nb_iterations_upper_bound;
  
!   widest_int nb_iterations_likely_upper_bound;
  
    /* An integer giving an estimate on nb_iterations.  Unlike
       nb_iterations_upper_bound, there is no guarantee that it is at least
       nb_iterations.  */
!   widest_int nb_iterations_estimate;
  
    /* If > 0, an integer, where the user asserted that for any
       I in [ 0, nb_iterations ) and for any J in
--- 164,177 ----
  
    /* An integer guaranteed to be greater or equal to nb_iterations.  Only
       valid if any_upper_bound is true.  */
!   bound_wide_int nb_iterations_upper_bound;
  
!   bound_wide_int nb_iterations_likely_upper_bound;
  
    /* An integer giving an estimate on nb_iterations.  Unlike
       nb_iterations_upper_bound, there is no guarantee that it is at least
       nb_iterations.  */
!   bound_wide_int nb_iterations_estimate;
  
    /* If > 0, an integer, where the user asserted that for any
       I in [ 0, nb_iterations ) and for any J in
*************** extern void verify_loop_structure (void)
*** 403,413 ****
  /* Loop analysis.  */
  extern bool just_once_each_iteration_p (const class loop *, const_basic_block);
  gcov_type expected_loop_iterations_unbounded (const class loop *,
! 					      bool *read_profile_p = NULL, bool by_profile_only = false);
  extern unsigned expected_loop_iterations (class loop *);
  extern rtx doloop_condition_get (rtx_insn *);
  
  void mark_loop_for_removal (loop_p);
  
  /* Induction variable analysis.  */
  
--- 406,421 ----
  /* Loop analysis.  */
  extern bool just_once_each_iteration_p (const class loop *, const_basic_block);
  gcov_type expected_loop_iterations_unbounded (const class loop *,
! 					      bool *read_profile_p = NULL);
! extern bool expected_loop_iterations_by_profile (const class loop *loop,
! 						 sreal *ret,
! 						 bool *reliable = NULL);
! extern bool maybe_flat_loop_profile (const class loop *);
  extern unsigned expected_loop_iterations (class loop *);
  extern rtx doloop_condition_get (rtx_insn *);
  
  void mark_loop_for_removal (loop_p);
+ void print_loop_info (FILE *file, const class loop *loop, const char *);
  
  /* Induction variable analysis.  */
  
*************** extern bool get_estimated_loop_iteration
*** 916,921 ****
--- 924,931 ----
  extern bool get_max_loop_iterations (const class loop *loop, widest_int *nit);
  extern bool get_likely_max_loop_iterations (class loop *loop, widest_int *nit);
  extern int bb_loop_depth (const_basic_block);
+ extern edge single_dom_exit (class loop *);
+ extern profile_count loop_count_in (const class loop *loop);
  
  /* Converts VAL to widest_int.  */
  
diff -Nrcpad gcc-13.2.0/gcc/cfgloopanal.cc gcc-14.1.0/gcc/cfgloopanal.cc
*** gcc-13.2.0/gcc/cfgloopanal.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgloopanal.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Natural loop analysis code for GNU compiler.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Natural loop analysis code for GNU compiler.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** average_num_loop_insns (const class loop
*** 233,311 ****
    return ret;
  }
  
! /* Returns expected number of iterations of LOOP, according to
!    measured or guessed profile.
! 
!    This functions attempts to return "sane" value even if profile
!    information is not good enough to derive osmething.
!    If BY_PROFILE_ONLY is set, this logic is bypassed and function
!    return -1 in those scenarios.  */
  
! gcov_type
! expected_loop_iterations_unbounded (const class loop *loop,
! 				    bool *read_profile_p,
! 				    bool by_profile_only)
  {
    edge e;
    edge_iterator ei;
!   gcov_type expected = -1;
!   
!   if (read_profile_p)
!     *read_profile_p = false;
  
!   /* If we have no profile at all, use AVG_LOOP_NITER.  */
!   if (profile_status_for_fn (cfun) == PROFILE_ABSENT)
!     {
!       if (by_profile_only)
! 	return -1;
!       expected = param_avg_loop_niter;
!     }
!   else if (loop->latch && (loop->latch->count.initialized_p ()
! 			   || loop->header->count.initialized_p ()))
!     {
!       profile_count count_in = profile_count::zero (),
! 		    count_latch = profile_count::zero ();
  
!       FOR_EACH_EDGE (e, ei, loop->header->preds)
! 	if (e->src == loop->latch)
! 	  count_latch = e->count ();
! 	else
! 	  count_in += e->count ();
  
!       if (!count_latch.initialized_p ())
! 	{
!           if (by_profile_only)
! 	    return -1;
! 	  expected = param_avg_loop_niter;
! 	}
!       else if (!count_in.nonzero_p ())
  	{
!           if (by_profile_only)
! 	    return -1;
! 	  expected = count_latch.to_gcov_type () * 2;
  	}
        else
  	{
! 	  expected = (count_latch.to_gcov_type () + count_in.to_gcov_type ()
! 		      - 1) / count_in.to_gcov_type ();
! 	  if (read_profile_p
! 	      && count_latch.reliable_p () && count_in.reliable_p ())
! 	    *read_profile_p = true;
  	}
      }
    else
!     {
!       if (by_profile_only)
! 	return -1;
!       expected = param_avg_loop_niter;
!     }
  
!   if (!by_profile_only)
!     {
!       HOST_WIDE_INT max = get_max_loop_iterations_int (loop);
!       if (max != -1 && max < expected)
!         return max;
!     }
   
    return expected;
  }
--- 233,402 ----
    return ret;
  }
  
! /* Compute how many times loop is entered.  */
  
! profile_count
! loop_count_in (const class loop *loop)
  {
+   /* Compute number of invocations of the loop.  */
+   profile_count count_in = profile_count::zero ();
    edge e;
    edge_iterator ei;
!   bool found_latch = false;
  
!   if (loops_state_satisfies_p (LOOPS_MAY_HAVE_MULTIPLE_LATCHES))
!     FOR_EACH_EDGE (e, ei, loop->header->preds)
!       if (!flow_bb_inside_loop_p (loop, e->src))
! 	count_in += e->count ();
!       else
! 	found_latch = true;
!   else
!     FOR_EACH_EDGE (e, ei, loop->header->preds)
!       if (e->src != loop->latch)
! 	count_in += e->count ();
!       else
! 	found_latch = true;
!   gcc_checking_assert (found_latch);
!   return count_in;
! }
  
! /* Return true if BB profile can be used to determine the expected number of
!    iterations (that is number of executions of latch edge(s) for each
!    entry of the loop.  If this is the case initialize RET with the number
!    of iterations.
  
!    RELIABLE is set if profile indiates that the returned value should be
!    realistic estimate.  (This is the case if we read profile and did not
!    messed it up yet and not the case of guessed profiles.)
! 
!    This function uses only CFG profile.  We track more reliable info in
!    loop_info structure and for loop optimization heuristics more relevant
!    is get_estimated_loop_iterations API.  */
! 
! bool
! expected_loop_iterations_by_profile (const class loop *loop, sreal *ret,
! 				     bool *reliable)
! {
!   profile_count header_count = loop->header->count;
!   if (reliable)
!     *reliable = false;
! 
!   /* TODO: For single exit loops we can use loop exit edge probability.
!      It also may be reliable while loop itself was adjusted.  */
!   if (!header_count.initialized_p ()
!       || !header_count.nonzero_p ())
!     return false;
! 
!   profile_count count_in = loop_count_in (loop);
! 
!   bool known;
!   /* Number of iterations is number of executions of latch edge.  */
!   *ret = (header_count - count_in).to_sreal_scale (count_in, &known);
!   if (!known)
!     return false;
!   if (reliable)
!     {
!       /* Header should have at least count_in many executions.
! 	 Give up on clearly inconsistent profile.  */
!       if (header_count < count_in && header_count.differs_from_p (count_in))
  	{
! 	  if (dump_file && (dump_flags & TDF_DETAILS))
! 	    fprintf (dump_file, "Inconsistent bb profile of loop %i\n",
! 		     loop->num);
! 	  *reliable = false;
  	}
        else
+ 	*reliable = count_in.reliable_p () && header_count.reliable_p ();
+     }
+   return true;
+ }
+ 
+ /* Return true if loop CFG profile may be unrealistically flat.
+    This is a common case, since average loops iterate only about 5 times.
+    In the case we do not have profile feedback or do not know real number of
+    iterations during profile estimation, we are likely going to predict it with
+    similar low iteration count.  For static loop profiles we also artificially
+    cap profile of loops with known large iteration count so they do not appear
+    significantly more hot than other loops with unknown iteration counts.
+ 
+    For loop optimization heuristics we ignore CFG profile and instead
+    use get_estimated_loop_iterations API which returns estimate
+    only when it is realistic.  For unknown counts some optimizations,
+    like vectorizer or unroller make guess that iteration count will
+    be large.  In this case we need to avoid scaling down the profile
+    after the loop transform.  */
+ 
+ bool
+ maybe_flat_loop_profile (const class loop *loop)
+ {
+   bool reliable;
+   sreal ret;
+ 
+   if (!expected_loop_iterations_by_profile (loop, &ret, &reliable))
+     return true;
+ 
+   /* Reliable CFG estimates ought never be flat.  Sanity check with
+      nb_iterations_estimate.  If those differ, it is a but in profile
+      updating code  */
+   if (reliable)
+     {
+       int64_t intret = ret.to_nearest_int ();
+       if (loop->any_estimate
+ 	  && (wi::ltu_p (intret * 2, loop->nb_iterations_estimate)
+ 	      || wi::gtu_p (intret, loop->nb_iterations_estimate * 2)))
  	{
! 	  if (dump_file && (dump_flags & TDF_DETAILS))
! 	    fprintf (dump_file,
! 		    "Loop %i has inconsistent iterations estimates: "
! 		    "reliable CFG based iteration estimate is %f "
! 		    "while nb_iterations_estimate is %i\n",
! 		    loop->num,
! 		    ret.to_double (),
! 		    (int)loop->nb_iterations_estimate.to_shwi ());
! 	  return true;
  	}
+       return false;
      }
+ 
+   /* Allow some margin of error and see if we are close to known bounds.
+      sreal (9,-3) is 9/8  */
+   int64_t intret = (ret * sreal (9, -3)).to_nearest_int ();
+   if (loop->any_upper_bound && wi::geu_p (intret, loop->nb_iterations_upper_bound))
+     return false;
+   if (loop->any_likely_upper_bound
+       && wi::geu_p (intret, loop->nb_iterations_likely_upper_bound))
+     return false;
+   if (loop->any_estimate
+       && wi::geu_p (intret, loop->nb_iterations_estimate))
+     return false;
+   return true;
+ }
+ 
+ /* Returns expected number of iterations of LOOP, according to
+    measured or guessed profile.
+ 
+    This functions attempts to return "sane" value even if profile
+    information is not good enough to derive osmething.  */
+ 
+ gcov_type
+ expected_loop_iterations_unbounded (const class loop *loop,
+ 				    bool *read_profile_p)
+ {
+   gcov_type expected = -1;
+   
+   if (read_profile_p)
+     *read_profile_p = false;
+ 
+   sreal sreal_expected;
+   if (expected_loop_iterations_by_profile
+ 	  (loop, &sreal_expected, read_profile_p))
+     expected = sreal_expected.to_nearest_int ();
    else
!     expected = param_avg_loop_niter;
  
!   HOST_WIDE_INT max = get_max_loop_iterations_int (loop);
!   if (max != -1 && max < expected)
!     return max;
   
    return expected;
  }
diff -Nrcpad gcc-13.2.0/gcc/cfgloopmanip.cc gcc-14.1.0/gcc/cfgloopmanip.cc
*** gcc-13.2.0/gcc/cfgloopmanip.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgloopmanip.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Loop manipulation code for GNU compiler.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Loop manipulation code for GNU compiler.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 31,36 ****
--- 31,37 ----
  #include "gimplify-me.h"
  #include "tree-ssa-loop-manip.h"
  #include "dumpfile.h"
+ #include "sreal.h"
  
  static void copy_loops_to (class loop **, int,
  			   class loop *);
*************** scale_loop_frequencies (class loop *loop
*** 498,616 ****
    free (bbs);
  }
  
! /* Scale profile in LOOP by P.
!    If ITERATION_BOUND is non-zero, scale even further if loop is predicted
!    to iterate too many times.
!    Before caling this function, preheader block profile should be already
!    scaled to final count.  This is necessary because loop iterations are
!    determined by comparing header edge count to latch ege count and thus
!    they need to be scaled synchronously.  */
  
  void
! scale_loop_profile (class loop *loop, profile_probability p,
! 		    gcov_type iteration_bound)
  {
!   edge e, preheader_e;
!   edge_iterator ei;
  
!   if (dump_file && (dump_flags & TDF_DETAILS))
      {
!       fprintf (dump_file, ";; Scaling loop %i with scale ",
! 	       loop->num);
!       p.dump (dump_file);
!       fprintf (dump_file, " bounding iterations to %i\n",
! 	       (int)iteration_bound);
      }
  
!   /* Scale the probabilities.  */
!   scale_loop_frequencies (loop, p);
  
!   if (iteration_bound == 0)
!     return;
  
!   gcov_type iterations = expected_loop_iterations_unbounded (loop, NULL, true);
  
!   if (dump_file && (dump_flags & TDF_DETAILS))
      {
!       fprintf (dump_file, ";; guessed iterations after scaling %i\n",
! 	       (int)iterations);
      }
  
!   /* See if loop is predicted to iterate too many times.  */
!   if (iterations <= iteration_bound)
!     return;
  
!   preheader_e = loop_preheader_edge (loop);
  
!   /* We could handle also loops without preheaders, but bounding is
!      currently used only by optimizers that have preheaders constructed.  */
!   gcc_checking_assert (preheader_e);
!   profile_count count_in = preheader_e->count ();
  
!   if (count_in > profile_count::zero ()
!       && loop->header->count.initialized_p ())
      {
!       profile_count count_delta = profile_count::zero ();
! 
!       e = single_exit (loop);
!       if (e)
  	{
! 	  edge other_e;
! 	  FOR_EACH_EDGE (other_e, ei, e->src->succs)
! 	    if (!(other_e->flags & (EDGE_ABNORMAL | EDGE_FAKE))
! 		&& e != other_e)
! 	      break;
  
! 	  /* Probability of exit must be 1/iterations.  */
! 	  count_delta = e->count ();
! 	  e->probability = profile_probability::always () / iteration_bound;
! 	  other_e->probability = e->probability.invert ();
  
! 	  /* In code below we only handle the following two updates.  */
! 	  if (other_e->dest != loop->header
! 	      && other_e->dest != loop->latch
! 	      && (dump_file && (dump_flags & TDF_DETAILS)))
! 	    {
! 	      fprintf (dump_file, ";; giving up on update of paths from "
! 		       "exit condition to latch\n");
! 	    }
  	}
-       else
-         if (dump_file && (dump_flags & TDF_DETAILS))
- 	  fprintf (dump_file, ";; Loop has multiple exit edges; "
- 	      		      "giving up on exit condition update\n");
  
!       /* Roughly speaking we want to reduce the loop body profile by the
! 	 difference of loop iterations.  We however can do better if
! 	 we look at the actual profile, if it is available.  */
!       p = profile_probability::always ();
  
!       count_in *= iteration_bound;
!       p = count_in.probability_in (loop->header->count);
!       if (!(p > profile_probability::never ()))
! 	p = profile_probability::very_unlikely ();
  
!       if (p == profile_probability::always ()
! 	  || !p.initialized_p ())
! 	return;
  
!       /* If latch exists, change its count, since we changed
! 	 probability of exit.  Theoretically we should update everything from
! 	 source of exit edge to latch, but for vectorizer this is enough.  */
!       if (loop->latch && loop->latch != e->src)
! 	loop->latch->count += count_delta;
  
!       /* Scale the probabilities.  */
!       scale_loop_frequencies (loop, p);
  
!       /* Change latch's count back.  */
!       if (loop->latch && loop->latch != e->src)
! 	loop->latch->count -= count_delta;
  
!       if (dump_file && (dump_flags & TDF_DETAILS))
! 	fprintf (dump_file, ";; guessed iterations are now %i\n",
! 		 (int)expected_loop_iterations_unbounded (loop, NULL, true));
      }
  }
  
  /* Recompute dominance information for basic blocks outside LOOP.  */
--- 499,753 ----
    free (bbs);
  }
  
! /* Scales the frequencies of all basic blocks in LOOP that are strictly
!    dominated by BB by NUM/DEN.  */
  
  void
! scale_dominated_blocks_in_loop (class loop *loop, basic_block bb,
! 				profile_count num, profile_count den)
  {
!   basic_block son;
  
!   if (!den.nonzero_p () && !(num == profile_count::zero ()))
!     return;
!   auto_vec <basic_block, 8> worklist;
!   worklist.safe_push (bb);
! 
!   while (!worklist.is_empty ())
!     for (son = first_dom_son (CDI_DOMINATORS, worklist.pop ());
! 	 son;
! 	 son = next_dom_son (CDI_DOMINATORS, son))
!       {
! 	if (!flow_bb_inside_loop_p (loop, son))
! 	  continue;
! 	son->count = son->count.apply_scale (num, den);
! 	worklist.safe_push (son);
!       }
! }
! 
! /* Return exit that suitable for update when loop iterations
!    changed.  */
! 
! static edge
! loop_exit_for_scaling (class loop *loop)
! {
!   edge exit_edge = single_exit (loop);
!   if (!exit_edge)
      {
!       auto_vec<edge> exits = get_loop_exit_edges  (loop);
!       exit_edge = single_likely_exit (loop, exits);
      }
+   return exit_edge;
+ }
  
! /* Assume that loop's entry count and profile up to a given EXIT_EDGE is
!    consistent. Update exit probability so loop exists with PROFILE_COUNT
!    and rescale profile of basic blocks inside loop dominated by EXIT_EDGE->src.
  
!    This is useful after number of iteraitons of loop has changed.
!    If EXIT_EDGE is NULL, the function will try to identify suitable exit.
!    If DESIRED_COUNT is NULL, loop entry count will be used.
!    In consistent profile usually loop exists as many times as it is entred.
  
!    Return updated exit if successfull and NULL otherwise. */
  
! edge
! update_loop_exit_probability_scale_dom_bbs (class loop *loop,
! 					    edge exit_edge,
! 					    profile_count desired_count)
! {
!   if (!exit_edge)
!     exit_edge = loop_exit_for_scaling (loop);
!   if (!exit_edge)
      {
!       if (dump_file && (dump_flags & TDF_DETAILS))
! 	{
! 	  fprintf (dump_file, ";; Not updating exit probability of loop %i;"
! 		   " it has no single exit\n",
! 		   loop->num);
! 	}
!       return NULL;
!     }
!   /* If exit is inside another loop, adjusting its probability will also
!      adjust number of the inner loop iterations.  Just do noting for now.  */
!   if (!just_once_each_iteration_p (loop, exit_edge->src))
!     {
!       if (dump_file && (dump_flags & TDF_DETAILS))
! 	{
! 	  fprintf (dump_file, ";; Not updating exit probability of loop %i;"
! 		   " exit is inside inner loop\n",
! 		   loop->num);
! 	}
!       return NULL;
      }
+   /* Normal loops exit as many times as they are entered.  */
+   if (!desired_count.initialized_p ())
+     desired_count = loop_count_in (loop);
+   /* See if everything is already perfect.  */
+   if (desired_count == exit_edge->count ())
+     return exit_edge;
+   profile_count old_exit_count = exit_edge->count ();
+   /* See if update is possible.
+      Avoid turning probability to 0 or 1 just trying to reach impossible
+      value.
  
!      Natural profile update after some loop will happily scale header count to
!      be less than count of entering the loop.  This is bad idea and they should
!      special case maybe_flat_loop_profile.
  
!      It may also happen that the source basic block of the exit edge is
!      inside in-loop condition:
  
! 	  +-> header
! 	  |    |
! 	  |   B1
! 	  |  /  \
! 	  | |   B2--exit_edge-->
! 	  |  \  /
! 	  |   B3
! 	  +__/
  
!       If B2 count is smaller than desired exit edge count
!       the profile was inconsistent with the newly discovered upper bound.
!       Probablity of edge B1->B2 is too low.  We do not attempt to fix
!       that (as it is hard in general).  */
!   if (desired_count > exit_edge->src->count
!       && exit_edge->src->count.differs_from_p (desired_count))
      {
!       if (dump_file)
  	{
! 	  fprintf (dump_file, ";; Source bb of loop %i has count ",
! 		   loop->num);
! 	  exit_edge->src->count.dump (dump_file, cfun);
! 	  fprintf (dump_file,
! 		   " which is smaller then desired count of exitting loop ");
! 	  desired_count.dump (dump_file, cfun);
! 	  fprintf (dump_file, ". Profile update is impossible.\n");
! 	}
!       /* Drop quality of probability since we know it likely
! 	 bad.  */
!       exit_edge->probability = exit_edge->probability.guessed ();
!       return NULL;
!     }
!   if (!exit_edge->src->count.nonzero_p ())
!     {
!       if (dump_file)
! 	{
! 	  fprintf (dump_file, ";; Not updating exit edge probability"
! 		   " in loop %i since profile is zero ",
! 		   loop->num);
! 	}
!       return NULL;
!     }
!   set_edge_probability_and_rescale_others
!     (exit_edge, desired_count.probability_in (exit_edge->src->count));
!   /* Rescale the remaining edge probabilities and see if there is only
!      one.  */
!   edge other_edge = NULL;
!   bool found = false;
!   edge e;
!   edge_iterator ei;
!   FOR_EACH_EDGE (e, ei, exit_edge->src->succs)
!     if (!(e->flags & EDGE_FAKE)
! 	&& !loop_exit_edge_p (loop, e))
!       {
! 	if (found)
! 	  {
! 	    other_edge = NULL;
! 	    break;
! 	  }
! 	other_edge = e;
! 	found = true;
!       }
!   /* If there is only loop latch after other edge,
!      update its profile.  This is tiny bit more precise
!      than scaling.  */
!   if (other_edge && other_edge->dest == loop->latch)
!     {
!       if (single_pred_p (loop->latch))
! 	loop->latch->count = loop->latch->count
! 			     + old_exit_count - exit_edge->count ();
!     }
!   else
!     /* If there are multiple blocks, just scale.  */
!     scale_dominated_blocks_in_loop (loop, exit_edge->src,
! 				    exit_edge->src->count - exit_edge->count (),
! 				    exit_edge->src->count - old_exit_count);
!   return exit_edge;
! }
  
! /* Scale profile in LOOP by P.
!    If ITERATION_BOUND is not -1, scale even further if loop is predicted
!    to iterate too many times.
!    Before caling this function, preheader block profile should be already
!    scaled to final count.  This is necessary because loop iterations are
!    determined by comparing header edge count to latch ege count and thus
!    they need to be scaled synchronously.  */
  
! void
! scale_loop_profile (class loop *loop, profile_probability p,
! 		    gcov_type iteration_bound)
! {
!   if (!(p == profile_probability::always ()))
!     {
!       if (dump_file && (dump_flags & TDF_DETAILS))
! 	{
! 	  fprintf (dump_file, ";; Scaling loop %i with scale ",
! 		   loop->num);
! 	  p.dump (dump_file);
! 	  fprintf (dump_file, "\n");
  	}
  
!       /* Scale the probabilities.  */
!       scale_loop_frequencies (loop, p);
!     }
  
!   if (iteration_bound == -1)
!     return;
  
!   sreal iterations;
!   if (!expected_loop_iterations_by_profile (loop, &iterations))
!     return;
  
!   if (dump_file && (dump_flags & TDF_DETAILS))
!     {
!       fprintf (dump_file,
! 	       ";; Guessed iterations of loop %i is %f. New upper bound %i.\n",
! 	       loop->num,
! 	       iterations.to_double (),
! 	       (int)iteration_bound);
!     }
  
!   /* See if loop is predicted to iterate too many times.  */
!   if (iterations <= (sreal)iteration_bound)
!     return;
  
!   profile_count count_in = loop_count_in (loop);
  
!   /* Now scale the loop body so header count is
!      count_in * (iteration_bound + 1)  */
!   profile_probability scale_prob
!     = (count_in * (iteration_bound + 1)).probability_in (loop->header->count);
!   if (dump_file && (dump_flags & TDF_DETAILS))
!     {
!       fprintf (dump_file, ";; Scaling loop %i with scale ",
! 	       loop->num);
!       scale_prob.dump (dump_file);
!       fprintf (dump_file, " to reach upper bound %i\n",
! 	       (int)iteration_bound);
      }
+   /* Finally attempt to fix exit edge probability.  */
+   edge exit_edge = loop_exit_for_scaling (loop);
+ 
+   /* In a consistent profile unadjusted_exit_count should be same as count_in,
+      however to preserve as much of the original info, avoid recomputing
+      it.  */
+   profile_count unadjusted_exit_count = profile_count::uninitialized ();
+   if (exit_edge)
+     unadjusted_exit_count = exit_edge->count ();
+   scale_loop_frequencies (loop, scale_prob);
+   update_loop_exit_probability_scale_dom_bbs (loop, exit_edge,
+ 					      unadjusted_exit_count);
  }
  
  /* Recompute dominance information for basic blocks outside LOOP.  */
*************** create_empty_loop_on_edge (edge entry_ed
*** 826,832 ****
      }
  
    gsi = gsi_last_bb (loop_header);
!   create_iv (initial_value, stride, iv, loop, &gsi, false,
  	     iv_before, iv_after);
  
    /* Insert loop exit condition.  */
--- 963,969 ----
      }
  
    gsi = gsi_last_bb (loop_header);
!   create_iv (initial_value, PLUS_EXPR, stride, iv, loop, &gsi, false,
  	     iv_before, iv_after);
  
    /* Insert loop exit condition.  */
*************** create_empty_loop_on_edge (edge entry_ed
*** 850,856 ****
     have no successor, which caller is expected to fix somehow.
  
     If this may cause the information about irreducible regions to become
!    invalid, IRRED_INVALIDATED is set to true.  
  
     LOOP_CLOSED_SSA_INVALIDATED, if non-NULL, is a bitmap where we store
     basic blocks that had non-trivial update on their loop_father.*/
--- 987,993 ----
     have no successor, which caller is expected to fix somehow.
  
     If this may cause the information about irreducible regions to become
!    invalid, IRRED_INVALIDATED is set to true.
  
     LOOP_CLOSED_SSA_INVALIDATED, if non-NULL, is a bitmap where we store
     basic blocks that had non-trivial update on their loop_father.*/
*************** duplicate_loop_body_to_header_edge (clas
*** 1124,1131 ****
        profile_count count_le = latch_edge->count ();
        profile_count count_out_orig = orig ? orig->count () : count_in - count_le;
        profile_probability prob_pass_thru = count_le.probability_in (count_in);
!       profile_probability prob_pass_wont_exit =
! 	      (count_le + count_out_orig).probability_in (count_in);
  
        if (orig && orig->probability.initialized_p ()
  	  && !(orig->probability == profile_probability::always ()))
--- 1261,1267 ----
        profile_count count_le = latch_edge->count ();
        profile_count count_out_orig = orig ? orig->count () : count_in - count_le;
        profile_probability prob_pass_thru = count_le.probability_in (count_in);
!       profile_count new_count_le = count_le + count_out_orig;
  
        if (orig && orig->probability.initialized_p ()
  	  && !(orig->probability == profile_probability::always ()))
*************** duplicate_loop_body_to_header_edge (clas
*** 1145,1150 ****
--- 1281,1310 ----
  		  && dominated_by_p (CDI_DOMINATORS, bbs[i], orig->src))
  		bitmap_set_bit (bbs_to_scale, i);
  	    }
+ 	  /* Since we will scale up all basic blocks dominated by orig, exits
+ 	     will become more likely; compensate for that.  */
+ 	  if (after_exit_den.nonzero_p ())
+ 	    {
+ 	      auto_vec<edge> exits = get_loop_exit_edges (loop);
+ 	      for (edge ex : exits)
+ 		if (ex != orig
+ 		    && dominated_by_p (CDI_DOMINATORS, ex->src, orig->src))
+ 		  new_count_le -= ex->count ().apply_scale (after_exit_num
+ 							    - after_exit_den,
+ 							    after_exit_den);
+ 	    }
+ 	}
+       profile_probability prob_pass_wont_exit =
+ 	      new_count_le.probability_in (count_in);
+       /* If profile count is 0, the probability will be uninitialized.
+ 	 We can set probability to any initialized value to avoid
+ 	 precision loss.  If profile is sane, all counts will be 0 anyway.  */
+       if (!count_in.nonzero_p ())
+ 	{
+ 	  prob_pass_thru
+ 		  = profile_probability::always ().apply_scale (1, 2);
+ 	  prob_pass_wont_exit
+ 		  = profile_probability::always ().apply_scale (1, 2);
  	}
  
        scale_step = XNEWVEC (profile_probability, ndupl);
*************** duplicate_loop_body_to_header_edge (clas
*** 1156,1162 ****
  
        /* Complete peeling is special as the probability of exit in last
  	 copy becomes 1.  */
!       if (flags & DLTHE_FLAG_COMPLETTE_PEEL)
  	{
  	  profile_count wanted_count = e->count ();
  
--- 1316,1324 ----
  
        /* Complete peeling is special as the probability of exit in last
  	 copy becomes 1.  */
!       if (!count_in.nonzero_p ())
! 	;
!       else if (flags & DLTHE_FLAG_COMPLETTE_PEEL)
  	{
  	  profile_count wanted_count = e->count ();
  
*************** duplicate_loop_body_to_header_edge (clas
*** 1166,1171 ****
--- 1328,1334 ----
  	     should've managed the flags so all except for original loop
  	     has won't exist set.  */
  	  scale_act = wanted_count.probability_in (count_in);
+ 
  	  /* Now simulate the duplication adjustments and compute header
  	     frequency of the last copy.  */
  	  for (i = 0; i < ndupl; i++)
*************** duplicate_loop_body_to_header_edge (clas
*** 1181,1196 ****
  	  profile_probability prob_pass_main = bitmap_bit_p (wont_exit, 0)
  							? prob_pass_wont_exit
  							: prob_pass_thru;
! 	  profile_probability p = prob_pass_main;
! 	  profile_count scale_main_den = count_in;
! 	  for (i = 0; i < ndupl; i++)
  	    {
! 	      scale_main_den += count_in.apply_probability (p);
! 	      p = p * scale_step[i];
  	    }
! 	  /* If original loop is executed COUNT_IN times, the unrolled
! 	     loop will account SCALE_MAIN_DEN times.  */
! 	  scale_main = count_in.probability_in (scale_main_den);
  	  scale_act = scale_main * prob_pass_main;
  	}
        else
--- 1344,1364 ----
  	  profile_probability prob_pass_main = bitmap_bit_p (wont_exit, 0)
  							? prob_pass_wont_exit
  							: prob_pass_thru;
! 	  if (!(flags & DLTHE_FLAG_FLAT_PROFILE))
  	    {
! 	      profile_probability p = prob_pass_main;
! 	      profile_count scale_main_den = count_in;
! 	      for (i = 0; i < ndupl; i++)
! 		{
! 		  scale_main_den += count_in.apply_probability (p);
! 		  p = p * scale_step[i];
! 		}
! 	      /* If original loop is executed COUNT_IN times, the unrolled
! 		 loop will account SCALE_MAIN_DEN times.  */
! 	      scale_main = count_in.probability_in (scale_main_den);
  	    }
! 	  else
! 	    scale_main = profile_probability::always ();
  	  scale_act = scale_main * prob_pass_main;
  	}
        else
diff -Nrcpad gcc-13.2.0/gcc/cfgloopmanip.h gcc-14.1.0/gcc/cfgloopmanip.h
*** gcc-13.2.0/gcc/cfgloopmanip.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgloopmanip.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Loop manipulation header.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Loop manipulation header.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum
*** 32,37 ****
--- 32,39 ----
  					   field of newly create BB.  */
  #define DLTHE_FLAG_COMPLETTE_PEEL 4	/* Update frequencies expecting
  					   a complete peeling.  */
+ #define DLTHE_FLAG_FLAT_PROFILE 8	/* Profile is flat; do not reduce
+ 					   count by unroll factor.  */
  extern edge mfb_kj_edge;
  
  extern bool remove_path (edge, bool * = NULL, bitmap = NULL);
*************** extern edge create_empty_if_region_on_ed
*** 43,48 ****
--- 45,55 ----
  extern class loop *create_empty_loop_on_edge (edge, tree, tree, tree, tree,
  					       tree *, tree *, class loop *);
  extern void unloop (class loop *, bool *, bitmap);
+ extern void unloop_loops (vec<class loop *> &loops_to_unloop,
+ 			  vec<int> &loops_to_unloop_nunroll,
+ 			  vec<edge> &edges_to_remove,
+ 			  bitmap loop_closed_ssa_invalidated,
+ 			  bool *irred_invalidated);
  extern void copy_loop_info (class loop *loop, class loop *target);
  extern class loop * duplicate_loop (class loop *, class loop *,
  				     class loop * = NULL);
*************** class loop * loop_version (class loop *,
*** 59,63 ****
--- 66,77 ----
  			    basic_block *,
  			    profile_probability, profile_probability,
  			    profile_probability, profile_probability, bool);
+ void adjust_loop_info_after_peeling (class loop *loop, int npeel, bool precise);
+ void scale_dominated_blocks_in_loop (class loop *loop, basic_block bb,
+ 				     profile_count num, profile_count den);
+ edge update_loop_exit_probability_scale_dom_bbs
+ 		(class loop *loop, edge exit_edge = NULL,
+ 		 profile_count desired_count = profile_count::uninitialized ());
+ void update_exit_probability_after_unrolling (class loop *loop, edge new_exit);
  
  #endif /* GCC_CFGLOOPMANIP_H */
diff -Nrcpad gcc-13.2.0/gcc/cfgrtl.cc gcc-14.1.0/gcc/cfgrtl.cc
*** gcc-13.2.0/gcc/cfgrtl.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgrtl.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Control flow graph manipulation code for GNU compiler.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph manipulation code for GNU compiler.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 25,31 ****
       - CFG-aware instruction chain manipulation
  	 delete_insn, delete_insn_chain
       - Edge splitting and committing to edges
! 	 insert_insn_on_edge, commit_edge_insertions
       - CFG updating after insn simplification
  	 purge_dead_edges, purge_all_dead_edges
       - CFG fixing after coarse manipulation
--- 25,31 ----
       - CFG-aware instruction chain manipulation
  	 delete_insn, delete_insn_chain
       - Edge splitting and committing to edges
! 	 insert_insn_on_edge, prepend_insn_to_edge, commit_edge_insertions
       - CFG updating after insn simplification
  	 purge_dead_edges, purge_all_dead_edges
       - CFG fixing after coarse manipulation
*************** static void fixup_reorder_chain (void);
*** 83,93 ****
  
  void verify_insn_chain (void);
  static void fixup_fallthru_exit_predecessor (void);
! static int can_delete_note_p (const rtx_note *);
! static int can_delete_label_p (const rtx_code_label *);
  static basic_block rtl_split_edge (edge);
  static bool rtl_move_block_after (basic_block, basic_block);
! static int rtl_verify_flow_info (void);
  static basic_block cfg_layout_split_block (basic_block, void *);
  static edge cfg_layout_redirect_edge_and_branch (edge, basic_block);
  static basic_block cfg_layout_redirect_edge_and_branch_force (edge, basic_block);
--- 83,93 ----
  
  void verify_insn_chain (void);
  static void fixup_fallthru_exit_predecessor (void);
! static bool can_delete_note_p (const rtx_note *);
! static bool can_delete_label_p (const rtx_code_label *);
  static basic_block rtl_split_edge (edge);
  static bool rtl_move_block_after (basic_block, basic_block);
! static bool rtl_verify_flow_info (void);
  static basic_block cfg_layout_split_block (basic_block, void *);
  static edge cfg_layout_redirect_edge_and_branch (edge, basic_block);
  static basic_block cfg_layout_redirect_edge_and_branch_force (edge, basic_block);
*************** static basic_block rtl_redirect_edge_and
*** 97,110 ****
  static edge rtl_redirect_edge_and_branch (edge, basic_block);
  static basic_block rtl_split_block (basic_block, void *);
  static void rtl_dump_bb (FILE *, basic_block, int, dump_flags_t);
! static int rtl_verify_flow_info_1 (void);
  static void rtl_make_forwarder_block (edge);
  static bool rtl_bb_info_initialized_p (basic_block bb);
  
  /* Return true if NOTE is not one of the ones that must be kept paired,
     so that we may simply delete it.  */
  
! static int
  can_delete_note_p (const rtx_note *note)
  {
    switch (NOTE_KIND (note))
--- 97,110 ----
  static edge rtl_redirect_edge_and_branch (edge, basic_block);
  static basic_block rtl_split_block (basic_block, void *);
  static void rtl_dump_bb (FILE *, basic_block, int, dump_flags_t);
! static bool rtl_verify_flow_info_1 (void);
  static void rtl_make_forwarder_block (edge);
  static bool rtl_bb_info_initialized_p (basic_block bb);
  
  /* Return true if NOTE is not one of the ones that must be kept paired,
     so that we may simply delete it.  */
  
! static bool
  can_delete_note_p (const rtx_note *note)
  {
    switch (NOTE_KIND (note))
*************** can_delete_note_p (const rtx_note *note)
*** 121,127 ****
  
  /* True if a given label can be deleted.  */
  
! static int
  can_delete_label_p (const rtx_code_label *label)
  {
    return (!LABEL_PRESERVE_P (label)
--- 121,127 ----
  
  /* True if a given label can be deleted.  */
  
! static bool
  can_delete_label_p (const rtx_code_label *label)
  {
    return (!LABEL_PRESERVE_P (label)
*************** compute_bb_for_insn (void)
*** 450,463 ****
  
  /* Release the basic_block_for_insn array.  */
  
! unsigned int
  free_bb_for_insn (void)
  {
    rtx_insn *insn;
    for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
      if (!BARRIER_P (insn))
        BLOCK_FOR_INSN (insn) = NULL;
-   return 0;
  }
  
  namespace {
--- 450,462 ----
  
  /* Release the basic_block_for_insn array.  */
  
! void
  free_bb_for_insn (void)
  {
    rtx_insn *insn;
    for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
      if (!BARRIER_P (insn))
        BLOCK_FOR_INSN (insn) = NULL;
  }
  
  namespace {
*************** rtl_merge_blocks (basic_block a, basic_b
*** 865,871 ****
    rtx_insn *b_head = BB_HEAD (b), *b_end = BB_END (b), *a_end = BB_END (a);
    rtx_insn *del_first = NULL, *del_last = NULL;
    rtx_insn *b_debug_start = b_end, *b_debug_end = b_end;
!   int b_empty = 0;
  
    if (dump_file)
      fprintf (dump_file, "Merging block %d into block %d...\n", b->index,
--- 864,870 ----
    rtx_insn *b_head = BB_HEAD (b), *b_end = BB_END (b), *a_end = BB_END (a);
    rtx_insn *del_first = NULL, *del_last = NULL;
    rtx_insn *b_debug_start = b_end, *b_debug_end = b_end;
!   bool b_empty = false;
  
    if (dump_file)
      fprintf (dump_file, "Merging block %d into block %d...\n", b->index,
*************** rtl_merge_blocks (basic_block a, basic_b
*** 880,886 ****
        /* Detect basic blocks with nothing but a label.  This can happen
  	 in particular at the end of a function.  */
        if (b_head == b_end)
! 	b_empty = 1;
  
        del_first = del_last = b_head;
        b_head = NEXT_INSN (b_head);
--- 879,885 ----
        /* Detect basic blocks with nothing but a label.  This can happen
  	 in particular at the end of a function.  */
        if (b_head == b_end)
! 	b_empty = true;
  
        del_first = del_last = b_head;
        b_head = NEXT_INSN (b_head);
*************** rtl_merge_blocks (basic_block a, basic_b
*** 891,897 ****
    if (NOTE_INSN_BASIC_BLOCK_P (b_head))
      {
        if (b_head == b_end)
! 	b_empty = 1;
        if (! del_last)
  	del_first = b_head;
  
--- 890,896 ----
    if (NOTE_INSN_BASIC_BLOCK_P (b_head))
      {
        if (b_head == b_end)
! 	b_empty = true;
        if (! del_last)
  	del_first = b_head;
  
*************** try_redirect_by_replacing_jump (edge e,
*** 1056,1062 ****
    basic_block src = e->src;
    rtx_insn *insn = BB_END (src);
    rtx set;
!   int fallthru = 0;
  
    /* If we are partitioning hot/cold basic blocks, we don't want to
       mess up unconditional or indirect jumps that cross between hot
--- 1055,1061 ----
    basic_block src = e->src;
    rtx_insn *insn = BB_END (src);
    rtx set;
!   bool fallthru = false;
  
    /* If we are partitioning hot/cold basic blocks, we don't want to
       mess up unconditional or indirect jumps that cross between hot
*************** try_redirect_by_replacing_jump (edge e,
*** 1096,1102 ****
      {
        if (dump_file)
  	fprintf (dump_file, "Removing jump %i.\n", INSN_UID (insn));
!       fallthru = 1;
  
        /* Selectively unlink whole insn chain.  */
        if (in_cfglayout)
--- 1095,1101 ----
      {
        if (dump_file)
  	fprintf (dump_file, "Removing jump %i.\n", INSN_UID (insn));
!       fallthru = true;
  
        /* Selectively unlink whole insn chain.  */
        if (in_cfglayout)
*************** rtl_split_edge (edge edge_in)
*** 1967,1973 ****
  
  /* Queue instructions for insertion on an edge between two basic blocks.
     The new instructions and basic blocks (if any) will not appear in the
!    CFG until commit_edge_insertions is called.  */
  
  void
  insert_insn_on_edge (rtx pattern, edge e)
--- 1966,1973 ----
  
  /* Queue instructions for insertion on an edge between two basic blocks.
     The new instructions and basic blocks (if any) will not appear in the
!    CFG until commit_edge_insertions is called.  If there are already
!    queued instructions on the edge, PATTERN is appended to them.  */
  
  void
  insert_insn_on_edge (rtx pattern, edge e)
*************** insert_insn_on_edge (rtx pattern, edge e
*** 1987,1992 ****
--- 1987,2011 ----
    end_sequence ();
  }
  
+ /* Like insert_insn_on_edge, but if there are already queued instructions
+    on the edge, PATTERN is prepended to them.  */
+ 
+ void
+ prepend_insn_to_edge (rtx pattern, edge e)
+ {
+   /* We cannot insert instructions on an abnormal critical edge.
+      It will be easier to find the culprit if we die now.  */
+   gcc_assert (!((e->flags & EDGE_ABNORMAL) && EDGE_CRITICAL_P (e)));
+ 
+   start_sequence ();
+ 
+   emit_insn (pattern);
+   emit_insn (e->insns.r);
+ 
+   e->insns.r = get_insns ();
+   end_sequence ();
+ }
+ 
  /* Update the CFG for the instructions queued on edge E.  */
  
  void
*************** commit_one_edge_insertion (edge e)
*** 1999,2004 ****
--- 2018,2038 ----
    insns = e->insns.r;
    e->insns.r = NULL;
  
+   /* Allow the sequence to contain internal jumps, such as a memcpy loop
+      or an allocation loop.  If such a sequence is emitted during RTL
+      expansion, we'll create the appropriate basic blocks later,
+      at the end of the pass.  But if such a sequence is emitted after
+      initial expansion, we'll need to find the subblocks ourselves.  */
+   bool contains_jump = false;
+   if (!currently_expanding_to_rtl)
+     for (rtx_insn *insn = insns; insn; insn = NEXT_INSN (insn))
+       if (JUMP_P (insn))
+ 	{
+ 	  rebuild_jump_labels_chain (insns);
+ 	  contains_jump = true;
+ 	  break;
+ 	}
+ 
    /* Figure out where to put these insns.  If the destination has
       one predecessor, insert there.  Except for the exit block.  */
    if (single_pred_p (e->dest) && e->dest != EXIT_BLOCK_PTR_FOR_FN (cfun))
*************** commit_one_edge_insertion (edge e)
*** 2093,2099 ****
  	delete_insn (before);
      }
    else
!     gcc_assert (!JUMP_P (last));
  }
  
  /* Update the CFG for all queued instructions.  */
--- 2127,2139 ----
  	delete_insn (before);
      }
    else
!     /* Sequences inserted after RTL expansion are expected to be SESE,
!        with only internal branches allowed.  If the sequence jumps outside
!        itself then we do not know how to add the associated edges here.  */
!     gcc_assert (!JUMP_P (last) || currently_expanding_to_rtl);
! 
!   if (contains_jump)
!     find_sub_basic_blocks (bb);
  }
  
  /* Update the CFG for all queued instructions.  */
*************** fixup_partitions (void)
*** 2496,2506 ****
     between hot/cold partitions. This condition will not be true until
     after reorder_basic_blocks is called.  */
  
! static int
  verify_hot_cold_block_grouping (void)
  {
    basic_block bb;
!   int err = 0;
    bool switched_sections = false;
    int current_partition = BB_UNPARTITIONED;
  
--- 2536,2546 ----
     between hot/cold partitions. This condition will not be true until
     after reorder_basic_blocks is called.  */
  
! static bool
  verify_hot_cold_block_grouping (void)
  {
    basic_block bb;
!   bool err = false;
    bool switched_sections = false;
    int current_partition = BB_UNPARTITIONED;
  
*************** verify_hot_cold_block_grouping (void)
*** 2520,2526 ****
  	    {
  	      error ("multiple hot/cold transitions found (bb %i)",
  		     bb->index);
! 	      err = 1;
  	    }
  	  else
              switched_sections = true;
--- 2560,2566 ----
  	    {
  	      error ("multiple hot/cold transitions found (bb %i)",
  		     bb->index);
! 	      err = true;
  	    }
  	  else
              switched_sections = true;
*************** verify_hot_cold_block_grouping (void)
*** 2541,2550 ****
     successor edges.  Also verify that the dominance relationship
     between hot/cold blocks is sane.  */
  
! static int
  rtl_verify_edges (void)
  {
!   int err = 0;
    basic_block bb;
  
    FOR_EACH_BB_REVERSE_FN (bb, cfun)
--- 2581,2590 ----
     successor edges.  Also verify that the dominance relationship
     between hot/cold blocks is sane.  */
  
! static bool
  rtl_verify_edges (void)
  {
!   bool err = false;
    basic_block bb;
  
    FOR_EACH_BB_REVERSE_FN (bb, cfun)
*************** rtl_verify_edges (void)
*** 2567,2573 ****
  		{
  		  error ("verify_flow_info: "
  			 "REG_BR_PROB is set but cfg probability is not");
! 		  err = 1;
  		}
  	    }
  	  else if (XINT (note, 0)
--- 2607,2613 ----
  		{
  		  error ("verify_flow_info: "
  			 "REG_BR_PROB is set but cfg probability is not");
! 		  err = true;
  		}
  	    }
  	  else if (XINT (note, 0)
*************** rtl_verify_edges (void)
*** 2577,2583 ****
  	      error ("verify_flow_info: REG_BR_PROB does not match cfg %i %i",
  		     XINT (note, 0),
  		     BRANCH_EDGE (bb)->probability.to_reg_br_prob_note ());
! 	      err = 1;
  	    }
  	}
  
--- 2617,2623 ----
  	      error ("verify_flow_info: REG_BR_PROB does not match cfg %i %i",
  		     XINT (note, 0),
  		     BRANCH_EDGE (bb)->probability.to_reg_br_prob_note ());
! 	      err = true;
  	    }
  	}
  
*************** rtl_verify_edges (void)
*** 2597,2627 ****
  	      if (!is_crossing)
  		{
  		  error ("EDGE_CROSSING incorrectly set across same section");
! 		  err = 1;
  		}
  	      if (e->flags & EDGE_FALLTHRU)
  		{
  		  error ("fallthru edge crosses section boundary in bb %i",
  			 e->src->index);
! 		  err = 1;
  		}
  	      if (e->flags & EDGE_EH)
  		{
  		  error ("EH edge crosses section boundary in bb %i",
  			 e->src->index);
! 		  err = 1;
  		}
                if (JUMP_P (BB_END (bb)) && !CROSSING_JUMP_P (BB_END (bb)))
  		{
  		  error ("No region crossing jump at section boundary in bb %i",
  			 bb->index);
! 		  err = 1;
  		}
  	    }
  	  else if (is_crossing)
  	    {
  	      error ("EDGE_CROSSING missing across section boundary");
! 	      err = 1;
  	    }
  
  	  if ((e->flags & ~(EDGE_DFS_BACK
--- 2637,2667 ----
  	      if (!is_crossing)
  		{
  		  error ("EDGE_CROSSING incorrectly set across same section");
! 		  err = true;
  		}
  	      if (e->flags & EDGE_FALLTHRU)
  		{
  		  error ("fallthru edge crosses section boundary in bb %i",
  			 e->src->index);
! 		  err = true;
  		}
  	      if (e->flags & EDGE_EH)
  		{
  		  error ("EH edge crosses section boundary in bb %i",
  			 e->src->index);
! 		  err = true;
  		}
                if (JUMP_P (BB_END (bb)) && !CROSSING_JUMP_P (BB_END (bb)))
  		{
  		  error ("No region crossing jump at section boundary in bb %i",
  			 bb->index);
! 		  err = true;
  		}
  	    }
  	  else if (is_crossing)
  	    {
  	      error ("EDGE_CROSSING missing across section boundary");
! 	      err = true;
  	    }
  
  	  if ((e->flags & ~(EDGE_DFS_BACK
*************** rtl_verify_edges (void)
*** 2652,2669 ****
  	  print_rtl_with_bb (stderr, get_insns (), TDF_BLOCKS | TDF_DETAILS);
  	  error ("Region crossing jump across same section in bb %i",
  		 bb->index);
! 	  err = 1;
  	}
  
        if (n_eh && !find_reg_note (BB_END (bb), REG_EH_REGION, NULL_RTX))
  	{
  	  error ("missing REG_EH_REGION note at the end of bb %i", bb->index);
! 	  err = 1;
  	}
        if (n_eh > 1)
  	{
  	  error ("too many exception handling edges in bb %i", bb->index);
! 	  err = 1;
  	}
        if (n_branch
  	  && (!JUMP_P (BB_END (bb))
--- 2692,2709 ----
  	  print_rtl_with_bb (stderr, get_insns (), TDF_BLOCKS | TDF_DETAILS);
  	  error ("Region crossing jump across same section in bb %i",
  		 bb->index);
! 	  err = true;
  	}
  
        if (n_eh && !find_reg_note (BB_END (bb), REG_EH_REGION, NULL_RTX))
  	{
  	  error ("missing REG_EH_REGION note at the end of bb %i", bb->index);
! 	  err = true;
  	}
        if (n_eh > 1)
  	{
  	  error ("too many exception handling edges in bb %i", bb->index);
! 	  err = true;
  	}
        if (n_branch
  	  && (!JUMP_P (BB_END (bb))
*************** rtl_verify_edges (void)
*** 2671,2705 ****
  				   || any_condjump_p (BB_END (bb))))))
  	{
  	  error ("too many outgoing branch edges from bb %i", bb->index);
! 	  err = 1;
  	}
        if (n_fallthru && any_uncondjump_p (BB_END (bb)))
  	{
  	  error ("fallthru edge after unconditional jump in bb %i", bb->index);
! 	  err = 1;
  	}
        if (n_branch != 1 && any_uncondjump_p (BB_END (bb)))
  	{
  	  error ("wrong number of branch edges after unconditional jump"
  		 " in bb %i", bb->index);
! 	  err = 1;
  	}
        if (n_branch != 1 && any_condjump_p (BB_END (bb))
  	  && JUMP_LABEL (BB_END (bb)) != BB_HEAD (fallthru->dest))
  	{
  	  error ("wrong amount of branch edges after conditional jump"
  		 " in bb %i", bb->index);
! 	  err = 1;
  	}
        if (n_abnormal_call && !CALL_P (BB_END (bb)))
  	{
  	  error ("abnormal call edges for non-call insn in bb %i", bb->index);
! 	  err = 1;
  	}
        if (n_sibcall && !CALL_P (BB_END (bb)))
  	{
  	  error ("sibcall edges for non-call insn in bb %i", bb->index);
! 	  err = 1;
  	}
        if (n_abnormal > n_eh
  	  && !(CALL_P (BB_END (bb))
--- 2711,2745 ----
  				   || any_condjump_p (BB_END (bb))))))
  	{
  	  error ("too many outgoing branch edges from bb %i", bb->index);
! 	  err = true;
  	}
        if (n_fallthru && any_uncondjump_p (BB_END (bb)))
  	{
  	  error ("fallthru edge after unconditional jump in bb %i", bb->index);
! 	  err = true;
  	}
        if (n_branch != 1 && any_uncondjump_p (BB_END (bb)))
  	{
  	  error ("wrong number of branch edges after unconditional jump"
  		 " in bb %i", bb->index);
! 	  err = true;
  	}
        if (n_branch != 1 && any_condjump_p (BB_END (bb))
  	  && JUMP_LABEL (BB_END (bb)) != BB_HEAD (fallthru->dest))
  	{
  	  error ("wrong amount of branch edges after conditional jump"
  		 " in bb %i", bb->index);
! 	  err = true;
  	}
        if (n_abnormal_call && !CALL_P (BB_END (bb)))
  	{
  	  error ("abnormal call edges for non-call insn in bb %i", bb->index);
! 	  err = true;
  	}
        if (n_sibcall && !CALL_P (BB_END (bb)))
  	{
  	  error ("sibcall edges for non-call insn in bb %i", bb->index);
! 	  err = true;
  	}
        if (n_abnormal > n_eh
  	  && !(CALL_P (BB_END (bb))
*************** rtl_verify_edges (void)
*** 2709,2715 ****
  	      || any_uncondjump_p (BB_END (bb))))
  	{
  	  error ("abnormal edges for no purpose in bb %i", bb->index);
! 	  err = 1;
  	}
  
        int has_eh = -1;
--- 2749,2755 ----
  	      || any_uncondjump_p (BB_END (bb))))
  	{
  	  error ("abnormal edges for no purpose in bb %i", bb->index);
! 	  err = true;
  	}
  
        int has_eh = -1;
*************** rtl_verify_edges (void)
*** 2721,2727 ****
  	    continue;
  	  error ("EH incoming edge mixed with non-EH incoming edges "
  		 "in bb %i", bb->index);
! 	  err = 1;
  	  break;
  	}
      }
--- 2761,2767 ----
  	    continue;
  	  error ("EH incoming edge mixed with non-EH incoming edges "
  		 "in bb %i", bb->index);
! 	  err = true;
  	  break;
  	}
      }
*************** rtl_verify_edges (void)
*** 2743,2753 ****
     block starts with a basic block note, and that basic block notes and
     control flow jumps are not found in the middle of the block.  */
  
! static int
  rtl_verify_bb_insns (void)
  {
    rtx_insn *x;
!   int err = 0;
    basic_block bb;
  
    FOR_EACH_BB_REVERSE_FN (bb, cfun)
--- 2783,2793 ----
     block starts with a basic block note, and that basic block notes and
     control flow jumps are not found in the middle of the block.  */
  
! static bool
  rtl_verify_bb_insns (void)
  {
    rtx_insn *x;
!   bool err = false;
    basic_block bb;
  
    FOR_EACH_BB_REVERSE_FN (bb, cfun)
*************** rtl_verify_bb_insns (void)
*** 2762,2768 ****
  	    {
  	      error ("NOTE_INSN_BASIC_BLOCK is missing for block %d",
  		     bb->index);
! 	      err = 1;
  	    }
  
  	  x = NEXT_INSN (x);
--- 2802,2808 ----
  	    {
  	      error ("NOTE_INSN_BASIC_BLOCK is missing for block %d",
  		     bb->index);
! 	      err = true;
  	    }
  
  	  x = NEXT_INSN (x);
*************** rtl_verify_bb_insns (void)
*** 2772,2778 ****
  	{
  	  error ("NOTE_INSN_BASIC_BLOCK is missing for block %d",
  		 bb->index);
! 	  err = 1;
  	}
  
        if (BB_END (bb) == x)
--- 2812,2818 ----
  	{
  	  error ("NOTE_INSN_BASIC_BLOCK is missing for block %d",
  		 bb->index);
! 	  err = true;
  	}
  
        if (BB_END (bb) == x)
*************** rtl_verify_bb_insns (void)
*** 2785,2791 ****
  	      {
  		error ("NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d",
  		       INSN_UID (x), bb->index);
! 		err = 1;
  	      }
  
  	    if (x == BB_END (bb))
--- 2825,2831 ----
  	      {
  		error ("NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d",
  		       INSN_UID (x), bb->index);
! 		err = true;
  	      }
  
  	    if (x == BB_END (bb))
*************** rtl_verify_bb_insns (void)
*** 2806,2815 ****
  /* Verify that block pointers for instructions in basic blocks, headers and
     footers are set appropriately.  */
  
! static int
  rtl_verify_bb_pointers (void)
  {
!   int err = 0;
    basic_block bb;
  
    /* Check the general integrity of the basic blocks.  */
--- 2846,2855 ----
  /* Verify that block pointers for instructions in basic blocks, headers and
     footers are set appropriately.  */
  
! static bool
  rtl_verify_bb_pointers (void)
  {
!   bool err = false;
    basic_block bb;
  
    /* Check the general integrity of the basic blocks.  */
*************** rtl_verify_bb_pointers (void)
*** 2820,2826 ****
        if (!(bb->flags & BB_RTL))
  	{
  	  error ("BB_RTL flag not set for block %d", bb->index);
! 	  err = 1;
  	}
  
        FOR_BB_INSNS (bb, insn)
--- 2860,2866 ----
        if (!(bb->flags & BB_RTL))
  	{
  	  error ("BB_RTL flag not set for block %d", bb->index);
! 	  err = true;
  	}
  
        FOR_BB_INSNS (bb, insn)
*************** rtl_verify_bb_pointers (void)
*** 2830,2836 ****
  		   INSN_UID (insn),
  		   BLOCK_FOR_INSN (insn) ? BLOCK_FOR_INSN (insn)->index : 0,
  		   bb->index);
! 	    err = 1;
  	  }
  
        for (insn = BB_HEADER (bb); insn; insn = NEXT_INSN (insn))
--- 2870,2876 ----
  		   INSN_UID (insn),
  		   BLOCK_FOR_INSN (insn) ? BLOCK_FOR_INSN (insn)->index : 0,
  		   bb->index);
! 	    err = true;
  	  }
  
        for (insn = BB_HEADER (bb); insn; insn = NEXT_INSN (insn))
*************** rtl_verify_bb_pointers (void)
*** 2839,2845 ****
  	  {
  	    error ("insn %d in header of bb %d has non-NULL basic block",
  		   INSN_UID (insn), bb->index);
! 	    err = 1;
  	  }
        for (insn = BB_FOOTER (bb); insn; insn = NEXT_INSN (insn))
  	if (!BARRIER_P (insn)
--- 2879,2885 ----
  	  {
  	    error ("insn %d in header of bb %d has non-NULL basic block",
  		   INSN_UID (insn), bb->index);
! 	    err = true;
  	  }
        for (insn = BB_FOOTER (bb); insn; insn = NEXT_INSN (insn))
  	if (!BARRIER_P (insn)
*************** rtl_verify_bb_pointers (void)
*** 2847,2853 ****
  	  {
  	    error ("insn %d in footer of bb %d has non-NULL basic block",
  		   INSN_UID (insn), bb->index);
! 	    err = 1;
  	  }
      }
  
--- 2887,2893 ----
  	  {
  	    error ("insn %d in footer of bb %d has non-NULL basic block",
  		   INSN_UID (insn), bb->index);
! 	    err = true;
  	  }
      }
  
*************** rtl_verify_bb_pointers (void)
*** 2873,2888 ****
     In future it can be extended check a lot of other stuff as well
     (reachability of basic blocks, life information, etc. etc.).  */
  
! static int
  rtl_verify_flow_info_1 (void)
  {
!   int err = 0;
  
!   err |= rtl_verify_bb_pointers ();
  
!   err |= rtl_verify_bb_insns ();
  
!   err |= rtl_verify_edges ();
  
    return err;
  }
--- 2913,2931 ----
     In future it can be extended check a lot of other stuff as well
     (reachability of basic blocks, life information, etc. etc.).  */
  
! static bool
  rtl_verify_flow_info_1 (void)
  {
!   bool err = false;
  
!   if (rtl_verify_bb_pointers ())
!     err = true;
  
!   if (rtl_verify_bb_insns ())
!     err = true;
  
!   if (rtl_verify_edges ())
!     err = true;
  
    return err;
  }
*************** rtl_verify_flow_info_1 (void)
*** 2891,2901 ****
    are correct, and that instructions are in exactly one bb and have
    correct block pointers.  */
  
! static int
  rtl_verify_bb_insn_chain (void)
  {
    basic_block bb;
!   int err = 0;
    rtx_insn *x;
    rtx_insn *last_head = get_last_insn ();
    basic_block *bb_info;
--- 2934,2944 ----
    are correct, and that instructions are in exactly one bb and have
    correct block pointers.  */
  
! static bool
  rtl_verify_bb_insn_chain (void)
  {
    basic_block bb;
!   bool err = false;
    rtx_insn *x;
    rtx_insn *last_head = get_last_insn ();
    basic_block *bb_info;
*************** rtl_verify_bb_insn_chain (void)
*** 2920,2926 ****
              {
                error ("insn %d outside of basic blocks has non-NULL bb field",
                       INSN_UID (x));
!               err = 1;
              }
  	}
  
--- 2963,2969 ----
              {
                error ("insn %d outside of basic blocks has non-NULL bb field",
                       INSN_UID (x));
! 	      err = true;
              }
  	}
  
*************** rtl_verify_bb_insn_chain (void)
*** 2928,2934 ****
  	{
  	  error ("end insn %d for block %d not found in the insn stream",
  		 INSN_UID (end), bb->index);
! 	  err = 1;
  	}
  
        /* Work backwards from the end to the head of the basic block
--- 2971,2977 ----
  	{
  	  error ("end insn %d for block %d not found in the insn stream",
  		 INSN_UID (end), bb->index);
! 	  err = true;
  	}
  
        /* Work backwards from the end to the head of the basic block
*************** rtl_verify_bb_insn_chain (void)
*** 2941,2947 ****
  	    {
  	      error ("insn %d is in multiple basic blocks (%d and %d)",
  		     INSN_UID (x), bb->index, bb_info[INSN_UID (x)]->index);
! 	      err = 1;
  	    }
  
  	  bb_info[INSN_UID (x)] = bb;
--- 2984,2990 ----
  	    {
  	      error ("insn %d is in multiple basic blocks (%d and %d)",
  		     INSN_UID (x), bb->index, bb_info[INSN_UID (x)]->index);
! 	      err = true;
  	    }
  
  	  bb_info[INSN_UID (x)] = bb;
*************** rtl_verify_bb_insn_chain (void)
*** 2953,2959 ****
  	{
  	  error ("head insn %d for block %d not found in the insn stream",
  		 INSN_UID (head), bb->index);
! 	  err = 1;
  	}
  
        last_head = PREV_INSN (x);
--- 2996,3002 ----
  	{
  	  error ("head insn %d for block %d not found in the insn stream",
  		 INSN_UID (head), bb->index);
! 	  err = true;
  	}
  
        last_head = PREV_INSN (x);
*************** rtl_verify_bb_insn_chain (void)
*** 2968,2974 ****
  	{
  	  error ("insn %d outside of basic blocks has non-NULL bb field",
  		 INSN_UID (x));
! 	  err = 1;
  	}
      }
    free (bb_info);
--- 3011,3017 ----
  	{
  	  error ("insn %d outside of basic blocks has non-NULL bb field",
  		 INSN_UID (x));
! 	  err = true;
  	}
      }
    free (bb_info);
*************** rtl_verify_bb_insn_chain (void)
*** 2979,2989 ****
  /* Verify that fallthru edges point to adjacent blocks in layout order and
     that barriers exist after non-fallthru blocks.  */
  
! static int
  rtl_verify_fallthru (void)
  {
    basic_block bb;
!   int err = 0;
  
    FOR_EACH_BB_REVERSE_FN (bb, cfun)
      {
--- 3022,3032 ----
  /* Verify that fallthru edges point to adjacent blocks in layout order and
     that barriers exist after non-fallthru blocks.  */
  
! static bool
  rtl_verify_fallthru (void)
  {
    basic_block bb;
!   bool err = false;
  
    FOR_EACH_BB_REVERSE_FN (bb, cfun)
      {
*************** rtl_verify_fallthru (void)
*** 3000,3006 ****
  	      if (!insn || NOTE_INSN_BASIC_BLOCK_P (insn))
  		{
  		  error ("missing barrier after block %i", bb->index);
! 		  err = 1;
  		  break;
  		}
  	      if (BARRIER_P (insn))
--- 3043,3049 ----
  	      if (!insn || NOTE_INSN_BASIC_BLOCK_P (insn))
  		{
  		  error ("missing barrier after block %i", bb->index);
! 		  err = true;
  		  break;
  		}
  	      if (BARRIER_P (insn))
*************** rtl_verify_fallthru (void)
*** 3017,3023 ****
  	      error
  		("verify_flow_info: Incorrect blocks for fallthru %i->%i",
  		 e->src->index, e->dest->index);
! 	      err = 1;
  	    }
  	  else
  	    for (insn = NEXT_INSN (BB_END (e->src)); insn != BB_HEAD (e->dest);
--- 3060,3066 ----
  	      error
  		("verify_flow_info: Incorrect blocks for fallthru %i->%i",
  		 e->src->index, e->dest->index);
! 	      err = true;
  	    }
  	  else
  	    for (insn = NEXT_INSN (BB_END (e->src)); insn != BB_HEAD (e->dest);
*************** rtl_verify_fallthru (void)
*** 3028,3034 ****
  			 e->src->index, e->dest->index);
  		  error ("wrong insn in the fallthru edge");
  		  debug_rtx (insn);
! 		  err = 1;
  		}
  	}
      }
--- 3071,3077 ----
  			 e->src->index, e->dest->index);
  		  error ("wrong insn in the fallthru edge");
  		  debug_rtx (insn);
! 		  err = true;
  		}
  	}
      }
*************** rtl_verify_fallthru (void)
*** 3040,3050 ****
     instructions, verify that all expected instructions are inside the basic
     blocks, and that all returns are followed by barriers.  */
  
! static int
  rtl_verify_bb_layout (void)
  {
    basic_block bb;
!   int err = 0;
    rtx_insn *x, *y;
    int num_bb_notes;
    rtx_insn * const rtx_first = get_insns ();
--- 3083,3093 ----
     instructions, verify that all expected instructions are inside the basic
     blocks, and that all returns are followed by barriers.  */
  
! static bool
  rtl_verify_bb_layout (void)
  {
    basic_block bb;
!   bool err = false;
    rtx_insn *x, *y;
    int num_bb_notes;
    rtx_insn * const rtx_first = get_insns ();
*************** rtl_verify_bb_layout (void)
*** 3118,3137 ****
     - check that all fallthru edge points to the adjacent blocks
     - verify that there is a single hot/cold partition boundary after bbro  */
  
! static int
  rtl_verify_flow_info (void)
  {
!   int err = 0;
  
!   err |= rtl_verify_flow_info_1 ();
  
!   err |= rtl_verify_bb_insn_chain ();
  
!   err |= rtl_verify_fallthru ();
  
!   err |= rtl_verify_bb_layout ();
  
!   err |= verify_hot_cold_block_grouping ();
  
    return err;
  }
--- 3161,3185 ----
     - check that all fallthru edge points to the adjacent blocks
     - verify that there is a single hot/cold partition boundary after bbro  */
  
! static bool
  rtl_verify_flow_info (void)
  {
!   bool err = false;
  
!   if (rtl_verify_flow_info_1 ())
!     err = true;
  
!   if (rtl_verify_bb_insn_chain ())
!     err = true;
  
!   if (rtl_verify_fallthru ())
!     err = true;
  
!   if (rtl_verify_bb_layout ())
!     err = true;
  
!   if (verify_hot_cold_block_grouping ())
!     err = true;
  
    return err;
  }
*************** purge_dead_edges (basic_block bb)
*** 3310,3316 ****
        gcc_assert (single_succ_edge (bb)->flags
  		  == (EDGE_SIBCALL | EDGE_ABNORMAL));
  
!       return 0;
      }
  
    /* If we don't see a jump insn, we don't know exactly why the block would
--- 3358,3364 ----
        gcc_assert (single_succ_edge (bb)->flags
  		  == (EDGE_SIBCALL | EDGE_ABNORMAL));
  
!       return false;
      }
  
    /* If we don't see a jump insn, we don't know exactly why the block would
*************** purge_dead_edges (basic_block bb)
*** 3360,3374 ****
  bool
  purge_all_dead_edges (void)
  {
!   int purged = false;
    basic_block bb;
  
    FOR_EACH_BB_FN (bb, cfun)
!     {
!       bool purged_here = purge_dead_edges (bb);
! 
!       purged |= purged_here;
!     }
  
    return purged;
  }
--- 3408,3419 ----
  bool
  purge_all_dead_edges (void)
  {
!   bool purged = false;
    basic_block bb;
  
    FOR_EACH_BB_FN (bb, cfun)
!     if (purge_dead_edges (bb))
!       purged = true;
  
    return purged;
  }
*************** duplicate_insn_chain (rtx_insn *from, rt
*** 4381,4398 ****
  			  {
  			    gcc_assert
  			      (MR_DEPENDENCE_CLIQUE (op) <= cfun->last_clique);
! 			    newc = ++cfun->last_clique;
  			  }
  			/* We cannot adjust MR_DEPENDENCE_CLIQUE in-place
  			   since MEM_EXPR is shared so make a copy and
  			   walk to the subtree again.  */
  			tree new_expr = unshare_expr (MEM_EXPR (*iter));
  			if (TREE_CODE (new_expr) == WITH_SIZE_EXPR)
  			  new_expr = TREE_OPERAND (new_expr, 0);
  			while (handled_component_p (new_expr))
  			  new_expr = TREE_OPERAND (new_expr, 0);
  			MR_DEPENDENCE_CLIQUE (new_expr) = newc;
! 			set_mem_expr (const_cast <rtx> (*iter), new_expr);
  		      }
  		  }
  	    }
--- 4426,4444 ----
  			  {
  			    gcc_assert
  			      (MR_DEPENDENCE_CLIQUE (op) <= cfun->last_clique);
! 			    newc = get_new_clique (cfun);
  			  }
  			/* We cannot adjust MR_DEPENDENCE_CLIQUE in-place
  			   since MEM_EXPR is shared so make a copy and
  			   walk to the subtree again.  */
  			tree new_expr = unshare_expr (MEM_EXPR (*iter));
+ 			tree orig_new_expr = new_expr;
  			if (TREE_CODE (new_expr) == WITH_SIZE_EXPR)
  			  new_expr = TREE_OPERAND (new_expr, 0);
  			while (handled_component_p (new_expr))
  			  new_expr = TREE_OPERAND (new_expr, 0);
  			MR_DEPENDENCE_CLIQUE (new_expr) = newc;
! 			set_mem_expr (const_cast <rtx> (*iter), orig_new_expr);
  		      }
  		  }
  	    }
*************** rtl_split_block_before_cond_jump (basic_
*** 5018,5025 ****
      return NULL;
  }
  
! /* Return 1 if BB ends with a call, possibly followed by some
!    instructions that must stay with the call, 0 otherwise.  */
  
  static bool
  rtl_block_ends_with_call_p (basic_block bb)
--- 5064,5071 ----
      return NULL;
  }
  
! /* Return true if BB ends with a call, possibly followed by some
!    instructions that must stay with the call, false otherwise.  */
  
  static bool
  rtl_block_ends_with_call_p (basic_block bb)
*************** rtl_block_ends_with_call_p (basic_block
*** 5035,5041 ****
    return (CALL_P (insn));
  }
  
! /* Return 1 if BB ends with a conditional branch, 0 otherwise.  */
  
  static bool
  rtl_block_ends_with_condjump_p (const_basic_block bb)
--- 5081,5087 ----
    return (CALL_P (insn));
  }
  
! /* Return true if BB ends with a conditional branch, false otherwise.  */
  
  static bool
  rtl_block_ends_with_condjump_p (const_basic_block bb)
*************** struct cfg_hooks cfg_layout_rtl_cfg_hook
*** 5405,5411 ****
    rtl_flow_call_edges_add,
    NULL, /* execute_on_growing_pred */
    NULL, /* execute_on_shrinking_pred */
!   duplicate_loop_body_to_header_edge, /* duplicate loop for trees */
    rtl_lv_add_condition_to_bb, /* lv_add_condition_to_bb */
    NULL, /* lv_adjust_loop_header_phi*/
    rtl_extract_cond_bb_edges, /* extract_cond_bb_edges */
--- 5451,5457 ----
    rtl_flow_call_edges_add,
    NULL, /* execute_on_growing_pred */
    NULL, /* execute_on_shrinking_pred */
!   duplicate_loop_body_to_header_edge, /* duplicate loop for rtl */
    rtl_lv_add_condition_to_bb, /* lv_add_condition_to_bb */
    NULL, /* lv_adjust_loop_header_phi*/
    rtl_extract_cond_bb_edges, /* extract_cond_bb_edges */
diff -Nrcpad gcc-13.2.0/gcc/cfgrtl.h gcc-14.1.0/gcc/cfgrtl.h
*** gcc-13.2.0/gcc/cfgrtl.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cfgrtl.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Define control flow data structures for the CFG.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Define control flow data structures for the CFG.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern void delete_insn_chain (rtx, rtx_
*** 26,32 ****
  extern basic_block create_basic_block_structure (rtx_insn *, rtx_insn *,
  						 rtx_note *, basic_block);
  extern void compute_bb_for_insn (void);
! extern unsigned int free_bb_for_insn (void);
  extern rtx_insn *entry_of_function (void);
  extern void update_bb_for_insn (basic_block);
  extern bool contains_no_active_insn_p (const_basic_block);
--- 26,32 ----
  extern basic_block create_basic_block_structure (rtx_insn *, rtx_insn *,
  						 rtx_note *, basic_block);
  extern void compute_bb_for_insn (void);
! extern void free_bb_for_insn (void);
  extern rtx_insn *entry_of_function (void);
  extern void update_bb_for_insn (basic_block);
  extern bool contains_no_active_insn_p (const_basic_block);
*************** extern edge try_redirect_by_replacing_ju
*** 38,43 ****
--- 38,44 ----
  extern void emit_barrier_after_bb (basic_block bb);
  extern basic_block force_nonfallthru_and_redirect (edge, basic_block, rtx);
  extern void insert_insn_on_edge (rtx, edge);
+ extern void prepend_insn_to_edge (rtx, edge);
  extern void commit_one_edge_insertion (edge e);
  extern void commit_edge_insertions (void);
  extern void print_rtl_with_bb (FILE *, const rtx_insn *, dump_flags_t);
diff -Nrcpad gcc-13.2.0/gcc/cgraph.cc gcc-14.1.0/gcc/cgraph.cc
*** gcc-13.2.0/gcc/cgraph.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cgraph.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Callgraph handling code.
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Callgraph handling code.
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 51,56 ****
--- 51,58 ----
  #include "ipa-utils.h"
  #include "symbol-summary.h"
  #include "tree-vrp.h"
+ #include "sreal.h"
+ #include "ipa-cp.h"
  #include "ipa-prop.h"
  #include "ipa-fnsummary.h"
  #include "cfgloop.h"
*************** symtab_node::address_can_be_compared_p (
*** 158,164 ****
       flag_merge_constants permits us to assume the same on readonly vars.  */
    if (is_a <varpool_node *> (this)
        && (DECL_IN_CONSTANT_POOL (decl)
! 	  || (flag_merge_constants >= 2
  	      && TREE_READONLY (decl) && !TREE_THIS_VOLATILE (decl))))
      return false;
    return true;
--- 160,166 ----
       flag_merge_constants permits us to assume the same on readonly vars.  */
    if (is_a <varpool_node *> (this)
        && (DECL_IN_CONSTANT_POOL (decl)
! 	  || ((flag_merge_constants >= 2 || DECL_MERGEABLE (decl))
  	      && TREE_READONLY (decl) && !TREE_THIS_VOLATILE (decl))))
      return false;
    return true;
*************** cgraph_edge::redirect_callee (cgraph_nod
*** 1403,1413 ****
     speculative indirect call, remove "speculative" of the indirect call and
     also redirect stmt to it's final direct target.
  
     It is up to caller to iteratively transform each "speculative"
     direct call as appropriate.  */
  
  gimple *
! cgraph_edge::redirect_call_stmt_to_callee (cgraph_edge *e)
  {
    tree decl = gimple_call_fndecl (e->call_stmt);
    gcall *new_stmt;
--- 1405,1421 ----
     speculative indirect call, remove "speculative" of the indirect call and
     also redirect stmt to it's final direct target.
  
+    When called from within tree-inline, KILLED_SSAs has to contain the pointer
+    to killed_new_ssa_names within the copy_body_data structure and SSAs
+    discovered to be useless (if LHS is removed) will be added to it, otherwise
+    it needs to be NULL.
+ 
     It is up to caller to iteratively transform each "speculative"
     direct call as appropriate.  */
  
  gimple *
! cgraph_edge::redirect_call_stmt_to_callee (cgraph_edge *e,
! 					   hash_set <tree> *killed_ssas)
  {
    tree decl = gimple_call_fndecl (e->call_stmt);
    gcall *new_stmt;
*************** cgraph_edge::redirect_call_stmt_to_calle
*** 1527,1533 ****
  	remove_stmt_from_eh_lp (e->call_stmt);
  
        tree old_fntype = gimple_call_fntype (e->call_stmt);
!       new_stmt = padjs->modify_call (e, false);
        cgraph_node *origin = e->callee;
        while (origin->clone_of)
  	origin = origin->clone_of;
--- 1535,1541 ----
  	remove_stmt_from_eh_lp (e->call_stmt);
  
        tree old_fntype = gimple_call_fntype (e->call_stmt);
!       new_stmt = padjs->modify_call (e, false, killed_ssas);
        cgraph_node *origin = e->callee;
        while (origin->clone_of)
  	origin = origin->clone_of;
*************** cgraph_edge::redirect_call_stmt_to_calle
*** 1548,1555 ****
    else
      {
        if (flag_checking
! 	  && !fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE)
! 	  && !fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE_TRAP))
  	ipa_verify_edge_has_no_modifications (e);
        new_stmt = e->call_stmt;
        gimple_call_set_fndecl (new_stmt, e->callee->decl);
--- 1556,1563 ----
    else
      {
        if (flag_checking
! 	  && !fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE,
! 						  BUILT_IN_UNREACHABLE_TRAP))
  	ipa_verify_edge_has_no_modifications (e);
        new_stmt = e->call_stmt;
        gimple_call_set_fndecl (new_stmt, e->callee->decl);
*************** cgraph_update_edges_for_call_stmt_node (
*** 1635,1643 ****
  	{
  	  /* Keep calls marked as dead dead.  */
  	  if (new_stmt && is_gimple_call (new_stmt) && e->callee
! 	      && (fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE)
! 		  || fndecl_built_in_p (e->callee->decl,
! 					BUILT_IN_UNREACHABLE_TRAP)))
  	    {
  	      cgraph_edge::set_call_stmt (node->get_edge (old_stmt),
  					  as_a <gcall *> (new_stmt));
--- 1643,1650 ----
  	{
  	  /* Keep calls marked as dead dead.  */
  	  if (new_stmt && is_gimple_call (new_stmt) && e->callee
! 	      && fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE,
! 				    BUILT_IN_UNREACHABLE_TRAP))
  	    {
  	      cgraph_edge::set_call_stmt (node->get_edge (old_stmt),
  					  as_a <gcall *> (new_stmt));
*************** cgraph_node::set_malloc_flag (bool mallo
*** 2630,2635 ****
--- 2637,2690 ----
    return changed;
  }
  
+ /* Worker to set malloc flag.  */
+ static void
+ add_detected_attribute_1 (cgraph_node *node, const char *attr, bool *changed)
+ {
+   if (!lookup_attribute (attr, DECL_ATTRIBUTES (node->decl)))
+     {
+       DECL_ATTRIBUTES (node->decl) = tree_cons (get_identifier (attr),
+ 					 NULL_TREE, DECL_ATTRIBUTES (node->decl));
+       *changed = true;
+     }
+ 
+   ipa_ref *ref;
+   FOR_EACH_ALIAS (node, ref)
+     {
+       cgraph_node *alias = dyn_cast<cgraph_node *> (ref->referring);
+       if (alias->get_availability () > AVAIL_INTERPOSABLE)
+ 	add_detected_attribute_1 (alias, attr, changed);
+     }
+ 
+   for (cgraph_edge *e = node->callers; e; e = e->next_caller)
+     if (e->caller->thunk
+ 	&& (e->caller->get_availability () > AVAIL_INTERPOSABLE))
+       add_detected_attribute_1 (e->caller, attr, changed);
+ }
+ 
+ /* Add attribyte ATTR to function and its aliases.  */
+ 
+ bool
+ cgraph_node::add_detected_attribute (const char *attr)
+ {
+   bool changed = false;
+ 
+   if (get_availability () > AVAIL_INTERPOSABLE)
+     add_detected_attribute_1 (this, attr, &changed);
+   else
+     {
+       ipa_ref *ref;
+ 
+       FOR_EACH_ALIAS (this, ref)
+ 	{
+ 	  cgraph_node *alias = dyn_cast<cgraph_node *> (ref->referring);
+ 	  if (alias->get_availability () > AVAIL_INTERPOSABLE)
+ 	    add_detected_attribute_1 (alias, attr, &changed);
+ 	}
+     }
+   return changed;
+ }
+ 
  /* Worker to set noreturng flag.  */
  static void
  set_noreturn_flag_1 (cgraph_node *node, bool noreturn_p, bool *changed)
*************** cgraph_edge::verify_corresponds_to_fndec
*** 3259,3267 ****
    /* Optimizers can redirect unreachable calls or calls triggering undefined
       behavior to __builtin_unreachable or __builtin_unreachable trap.  */
  
!   if (fndecl_built_in_p (callee->decl, BUILT_IN_NORMAL)
!       && (DECL_FUNCTION_CODE (callee->decl) == BUILT_IN_UNREACHABLE
! 	  || DECL_FUNCTION_CODE (callee->decl) == BUILT_IN_UNREACHABLE_TRAP))
      return false;
  
    if (callee->former_clone_of != node->decl
--- 3314,3321 ----
    /* Optimizers can redirect unreachable calls or calls triggering undefined
       behavior to __builtin_unreachable or __builtin_unreachable trap.  */
  
!   if (fndecl_built_in_p (callee->decl, BUILT_IN_UNREACHABLE,
! 				       BUILT_IN_UNREACHABLE_TRAP))
      return false;
  
    if (callee->former_clone_of != node->decl
*************** cgraph_node::verify_node (void)
*** 3601,3609 ****
  	  /* Optimized out calls are redirected to __builtin_unreachable.  */
  	  && (e->count.nonzero_p ()
  	      || ! e->callee->decl
! 	      || !(fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE)
! 		   || fndecl_built_in_p (e->callee->decl,
! 					 BUILT_IN_UNREACHABLE_TRAP)))
  	  && count
  	      == ENTRY_BLOCK_PTR_FOR_FN (DECL_STRUCT_FUNCTION (decl))->count
  	  && (!e->count.ipa_p ()
--- 3655,3662 ----
  	  /* Optimized out calls are redirected to __builtin_unreachable.  */
  	  && (e->count.nonzero_p ()
  	      || ! e->callee->decl
! 	      || !fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE,
! 				     BUILT_IN_UNREACHABLE_TRAP))
  	  && count
  	      == ENTRY_BLOCK_PTR_FOR_FN (DECL_STRUCT_FUNCTION (decl))->count
  	  && (!e->count.ipa_p ()
diff -Nrcpad gcc-13.2.0/gcc/cgraph.h gcc-14.1.0/gcc/cgraph.h
*** gcc-13.2.0/gcc/cgraph.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cgraph.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Callgraph handling code.
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Callgraph handling code.
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** public:
*** 153,159 ****
    void remove (void);
  
    /* Undo any definition or use of the symbol.  */
!   void reset (void);
  
    /* Dump symtab node to F.  */
    void dump (FILE *f);
--- 153,159 ----
    void remove (void);
  
    /* Undo any definition or use of the symbol.  */
!   void reset (bool preserve_comdat_group = false);
  
    /* Dump symtab node to F.  */
    void dump (FILE *f);
*************** public:
*** 479,484 ****
--- 479,487 ----
       Return NULL if there's no such node.  */
    static symtab_node *get_for_asmname (const_tree asmname);
  
+   /* Check symbol table for callees of IFUNC resolvers.  */
+   static void check_ifunc_callee_symtab_nodes (void);
+ 
    /* Verify symbol table for internal consistency.  */
    static DEBUG_FUNCTION void verify_symtab_nodes (void);
  
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 896,901 ****
--- 899,905 ----
        redefined_extern_inline (false), tm_may_enter_irr (false),
        ipcp_clone (false), declare_variant_alt (false),
        calls_declare_variant_alt (false), gc_candidate (false),
+       called_by_ifunc_resolver (false),
        m_uid (uid), m_summary_id (-1)
    {}
  
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1190,1195 ****
--- 1194,1203 ----
  
    bool set_pure_flag (bool pure, bool looping);
  
+   /* Add attribute ATTR to cgraph_node's decl and on aliases of the node
+      if any.  */
+   bool add_detected_attribute (const char *attr);
+ 
    /* Call callback on function and aliases associated to the function.
       When INCLUDE_OVERWRITABLE is false, overwritable aliases and thunks are
       skipped. */
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1491,1496 ****
--- 1499,1506 ----
       is set for local SIMD clones when they are created and cleared if the
       vectorizer uses them.  */
    unsigned gc_candidate : 1;
+   /* Set if the function is called by an IFUNC resolver.  */
+   unsigned called_by_ifunc_resolver : 1;
  
  private:
    /* Unique id of the node.  */
*************** public:
*** 1833,1841 ****
       speculative indirect call, remove "speculative" of the indirect call and
       also redirect stmt to it's final direct target.
  
       It is up to caller to iteratively transform each "speculative"
       direct call as appropriate.  */
!   static gimple *redirect_call_stmt_to_callee (cgraph_edge *e);
  
    /* Create clone of edge in the node N represented
       by CALL_EXPR the callgraph.  */
--- 1843,1858 ----
       speculative indirect call, remove "speculative" of the indirect call and
       also redirect stmt to it's final direct target.
  
+      When called from within tree-inline, KILLED_SSAs has to contain the
+      pointer to killed_new_ssa_names within the copy_body_data structure and
+      SSAs discovered to be useless (if LHS is removed) will be added to it,
+      otherwise it needs to be NULL.
+ 
       It is up to caller to iteratively transform each "speculative"
       direct call as appropriate.  */
!   static gimple *redirect_call_stmt_to_callee (cgraph_edge *e,
! 					       hash_set <tree>
! 					       *killed_ssas = nullptr);
  
    /* Create clone of edge in the node N represented
       by CALL_EXPR the callgraph.  */
*************** inline bool
*** 2650,2656 ****
  decl_in_symtab_p (const_tree decl)
  {
    return (TREE_CODE (decl) == FUNCTION_DECL
!           || (TREE_CODE (decl) == VAR_DECL
  	      && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))));
  }
  
--- 2667,2673 ----
  decl_in_symtab_p (const_tree decl)
  {
    return (TREE_CODE (decl) == FUNCTION_DECL
! 	  || (VAR_P (decl)
  	      && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))));
  }
  
*************** cgraph_node::optimize_for_size_p (void)
*** 3359,3365 ****
  inline symtab_node *
  symtab_node::get_create (tree node)
  {
!   if (TREE_CODE (node) == VAR_DECL)
      return varpool_node::get_create (node);
    else
      return cgraph_node::get_create (node);
--- 3376,3382 ----
  inline symtab_node *
  symtab_node::get_create (tree node)
  {
!   if (VAR_P (node))
      return varpool_node::get_create (node);
    else
      return cgraph_node::get_create (node);
diff -Nrcpad gcc-13.2.0/gcc/cgraphbuild.cc gcc-14.1.0/gcc/cgraphbuild.cc
*** gcc-13.2.0/gcc/cgraphbuild.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cgraphbuild.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Callgraph construction.
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Callgraph construction.
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/cgraphclones.cc gcc-14.1.0/gcc/cgraphclones.cc
*** gcc-13.2.0/gcc/cgraphclones.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cgraphclones.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Callgraph clones
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Callgraph clones
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 78,88 ****
--- 78,91 ----
  #include "tree-eh.h"
  #include "tree-cfg.h"
  #include "tree-inline.h"
+ #include "attribs.h"
  #include "dumpfile.h"
  #include "gimple-pretty-print.h"
  #include "alloc-pool.h"
  #include "symbol-summary.h"
  #include "tree-vrp.h"
+ #include "sreal.h"
+ #include "ipa-cp.h"
  #include "ipa-prop.h"
  #include "ipa-fnsummary.h"
  #include "symtab-thunks.h"
*************** cgraph_node::create_clone (tree new_decl
*** 435,443 ****
  	 version.  The only exception is when the edge was proved to
  	 be unreachable during the cloning procedure.  */
        if (!e->callee
! 	  || !(fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE)
! 	       || fndecl_built_in_p (e->callee->decl,
! 				     BUILT_IN_UNREACHABLE_TRAP)))
          e->redirect_callee_duplicating_thunks (new_node);
      }
    new_node->expand_all_artificial_thunks ();
--- 438,445 ----
  	 version.  The only exception is when the edge was proved to
  	 be unreachable during the cloning procedure.  */
        if (!e->callee
! 	  || !fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE,
! 						  BUILT_IN_UNREACHABLE_TRAP))
          e->redirect_callee_duplicating_thunks (new_node);
      }
    new_node->expand_all_artificial_thunks ();
*************** cgraph_node::create_version_clone_with_b
*** 1049,1055 ****
        location_t saved_loc = input_location;
        tree v = TREE_VALUE (target_attributes);
        input_location = DECL_SOURCE_LOCATION (new_decl);
!       bool r = targetm.target_option.valid_attribute_p (new_decl, NULL, v, 1);
        input_location = saved_loc;
        if (!r)
  	return NULL;
--- 1051,1067 ----
        location_t saved_loc = input_location;
        tree v = TREE_VALUE (target_attributes);
        input_location = DECL_SOURCE_LOCATION (new_decl);
!       bool r;
!       tree name_id = get_attribute_name (target_attributes);
!       const char *name_str = IDENTIFIER_POINTER (name_id);
!       if (strcmp (name_str, "target") == 0)
! 	r = targetm.target_option.valid_attribute_p (new_decl, name_id, v, 1);
!       else if (strcmp (name_str, "target_version") == 0)
! 	r = targetm.target_option.valid_version_attribute_p (new_decl, name_id,
! 							     v, 1);
!       else
! 	gcc_unreachable();
! 
        input_location = saved_loc;
        if (!r)
  	return NULL;
diff -Nrcpad gcc-13.2.0/gcc/cgraphunit.cc gcc-14.1.0/gcc/cgraphunit.cc
*** gcc-13.2.0/gcc/cgraphunit.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cgraphunit.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Driver of optimization process
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Driver of optimization process
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 191,196 ****
--- 191,198 ----
  #include "debug.h"
  #include "symbol-summary.h"
  #include "tree-vrp.h"
+ #include "sreal.h"
+ #include "ipa-cp.h"
  #include "ipa-prop.h"
  #include "gimple-pretty-print.h"
  #include "plugin.h"
*************** symbol_table::process_new_functions (voi
*** 384,390 ****
     functions or variables.  */
  
  void
! symtab_node::reset (void)
  {
    /* Reset our data structures so we can analyze the function again.  */
    analyzed = false;
--- 386,392 ----
     functions or variables.  */
  
  void
! symtab_node::reset (bool preserve_comdat_group)
  {
    /* Reset our data structures so we can analyze the function again.  */
    analyzed = false;
*************** symtab_node::reset (void)
*** 395,401 ****
    cpp_implicit_alias = false;
  
    remove_all_references ();
!   remove_from_same_comdat_group ();
  
    if (cgraph_node *cn = dyn_cast <cgraph_node *> (this))
      {
--- 397,404 ----
    cpp_implicit_alias = false;
  
    remove_all_references ();
!   if (!preserve_comdat_group)
!     remove_from_same_comdat_group ();
  
    if (cgraph_node *cn = dyn_cast <cgraph_node *> (this))
      {
*************** process_function_and_variable_attributes
*** 917,923 ****
  	  /* redefining extern inline function makes it DECL_UNINLINABLE.  */
  	  && !DECL_UNINLINABLE (decl))
  	warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wattributes,
! 		    "%<always_inline%> function might not be inlinable");
  
        process_common_attributes (node, decl);
      }
--- 920,927 ----
  	  /* redefining extern inline function makes it DECL_UNINLINABLE.  */
  	  && !DECL_UNINLINABLE (decl))
  	warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wattributes,
! 		    "%<always_inline%> function might not be inlinable"
! 		    " unless also declared %<inline%>");
  
        process_common_attributes (node, decl);
      }
*************** symbol_table::compile (void)
*** 2313,2318 ****
--- 2317,2324 ----
  
    symtab_node::checking_verify_symtab_nodes ();
  
+   symtab_node::check_ifunc_callee_symtab_nodes ();
+ 
    timevar_push (TV_CGRAPHOPT);
    if (pre_ipa_mem_report)
      dump_memory_report ("Memory consumption before IPA");
diff -Nrcpad gcc-13.2.0/gcc/cif-code.def gcc-14.1.0/gcc/cif-code.def
*** gcc-13.2.0/gcc/cif-code.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/cif-code.def	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* This file contains the definitions of the cgraph_inline_failed_t
     enums used in GCC.
  
!    Copyright (C) 2008-2023 Free Software Foundation, Inc.
     Contributed by Doug Kwan <dougkwan@google.com>
  
  This file is part of GCC.
--- 1,7 ----
  /* This file contains the definitions of the cgraph_inline_failed_t
     enums used in GCC.
  
!    Copyright (C) 2008-2024 Free Software Foundation, Inc.
     Contributed by Doug Kwan <dougkwan@google.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/collect-utils.cc gcc-14.1.0/gcc/collect-utils.cc
*** gcc-13.2.0/gcc/collect-utils.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/collect-utils.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Utility functions used by tools like collect2 and lto-wrapper.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Utility functions used by tools like collect2 and lto-wrapper.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/collect-utils.h gcc-14.1.0/gcc/collect-utils.h
*** gcc-13.2.0/gcc/collect-utils.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/collect-utils.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Utility functions used by tools like collect2 and lto-wrapper.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Utility functions used by tools like collect2 and lto-wrapper.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/collect2-aix.cc gcc-14.1.0/gcc/collect2-aix.cc
*** gcc-13.2.0/gcc/collect2-aix.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/collect2-aix.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* AIX cross support for collect2.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* AIX cross support for collect2.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/collect2-aix.h gcc-14.1.0/gcc/collect2-aix.h
*** gcc-13.2.0/gcc/collect2-aix.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/collect2-aix.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* AIX cross support for collect2.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* AIX cross support for collect2.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/collect2.cc gcc-14.1.0/gcc/collect2.cc
*** gcc-13.2.0/gcc/collect2.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/collect2.cc	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Collect static initialization info into data structures that can be
     traversed by C++ initialization and finalization routines.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
     Contributed by Chris Smith (csmith@convex.com).
     Heavily modified by Michael Meissner (meissner@cygnus.com),
     Per Bothner (bothner@cygnus.com), and John Gilmore (gnu@cygnus.com).
--- 1,6 ----
  /* Collect static initialization info into data structures that can be
     traversed by C++ initialization and finalization routines.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
     Contributed by Chris Smith (csmith@convex.com).
     Heavily modified by Michael Meissner (meissner@cygnus.com),
     Per Bothner (bothner@cygnus.com), and John Gilmore (gnu@cygnus.com).
*************** maybe_run_lto_and_relink (char **lto_ld_
*** 622,628 ****
  	 LTO object replaced by all partitions and other LTO
  	 objects removed.  */
  
!       lto_c_argv = (char **) xcalloc (sizeof (char *), num_lto_c_args);
        lto_c_ptr = CONST_CAST2 (const char **, char **, lto_c_argv);
  
        *lto_c_ptr++ = lto_wrapper;
--- 622,628 ----
  	 LTO object replaced by all partitions and other LTO
  	 objects removed.  */
  
!       lto_c_argv = (char **) xcalloc (num_lto_c_args, sizeof (char *));
        lto_c_ptr = CONST_CAST2 (const char **, char **, lto_c_argv);
  
        *lto_c_ptr++ = lto_wrapper;
*************** main (int argc, char **argv)
*** 865,876 ****
    int i;
  
    for (i = 0; i < USE_LD_MAX; i++)
-     full_ld_suffixes[i]
  #ifdef CROSS_DIRECTORY_STRUCTURE
!       = concat (target_machine, "-", ld_suffixes[i], NULL);
! #else
!       = ld_suffixes[i];
  #endif
  
    p = argv[0] + strlen (argv[0]);
    while (p != argv[0] && !IS_DIR_SEPARATOR (p[-1]))
--- 865,879 ----
    int i;
  
    for (i = 0; i < USE_LD_MAX; i++)
  #ifdef CROSS_DIRECTORY_STRUCTURE
!     /* lld and mold are platform-agnostic and not prefixed with target
!        triple.  */
!     if (!(i == USE_LLD_LD || i == USE_MOLD_LD))
!       full_ld_suffixes[i] = concat (target_machine, "-", ld_suffixes[i],
! 				    NULL);
!     else
  #endif
+       full_ld_suffixes[i] = ld_suffixes[i];
  
    p = argv[0] + strlen (argv[0]);
    while (p != argv[0] && !IS_DIR_SEPARATOR (p[-1]))
*************** main (int argc, char **argv)
*** 1032,1040 ****
        lto_mode = LTO_MODE_LTO;
    }
  
!   /* -fno-profile-arcs -fno-test-coverage -fno-branch-probabilities
!      -fno-exceptions -w -fno-whole-program */
!   num_c_args += 6;
  
    c_argv = XCNEWVEC (char *, num_c_args);
    c_ptr = CONST_CAST2 (const char **, char **, c_argv);
--- 1035,1043 ----
        lto_mode = LTO_MODE_LTO;
    }
  
!   /* -fno-profile-arcs -fno-condition-coverage -fno-test-coverage
!      -fno-branch-probabilities -fno-exceptions -w -fno-whole-program */
!   num_c_args += 7;
  
    c_argv = XCNEWVEC (char *, num_c_args);
    c_ptr = CONST_CAST2 (const char **, char **, c_argv);
*************** main (int argc, char **argv)
*** 1230,1235 ****
--- 1233,1239 ----
      }
    obstack_free (&temporary_obstack, temporary_firstobj);
    *c_ptr++ = "-fno-profile-arcs";
+   *c_ptr++ = "-fno-condition-coverage";
    *c_ptr++ = "-fno-test-coverage";
    *c_ptr++ = "-fno-branch-probabilities";
    *c_ptr++ = "-fno-exceptions";
diff -Nrcpad gcc-13.2.0/gcc/collect2.h gcc-14.1.0/gcc/collect2.h
*** gcc-13.2.0/gcc/collect2.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/collect2.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Header file for collect routines.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Header file for collect routines.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/color-macros.h gcc-14.1.0/gcc/color-macros.h
*** gcc-13.2.0/gcc/color-macros.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/color-macros.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Terminal color manipulation macros.
!    Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Terminal color manipulation macros.
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 92,97 ****
--- 92,105 ----
  #define COLOR_FG_MAGENTA	"35"
  #define COLOR_FG_CYAN		"36"
  #define COLOR_FG_WHITE		"37"
+ #define COLOR_FG_BRIGHT_BLACK	"90"
+ #define COLOR_FG_BRIGHT_RED	"91"
+ #define COLOR_FG_BRIGHT_GREEN	"92"
+ #define COLOR_FG_BRIGHT_YELLOW	"93"
+ #define COLOR_FG_BRIGHT_BLUE	"94"
+ #define COLOR_FG_BRIGHT_MAGENTA	"95"
+ #define COLOR_FG_BRIGHT_CYAN	"96"
+ #define COLOR_FG_BRIGHT_WHITE	"97"
  #define COLOR_BG_BLACK		"40"
  #define COLOR_BG_RED		"41"
  #define COLOR_BG_GREEN		"42"
*************** along with GCC; see the file COPYING3.
*** 100,105 ****
--- 108,121 ----
  #define COLOR_BG_MAGENTA	"45"
  #define COLOR_BG_CYAN		"46"
  #define COLOR_BG_WHITE		"47"
+ #define COLOR_BG_BRIGHT_BLACK	"100"
+ #define COLOR_BG_BRIGHT_RED	"101"
+ #define COLOR_BG_BRIGHT_GREEN	"102"
+ #define COLOR_BG_BRIGHT_YELLOW	"103"
+ #define COLOR_BG_BRIGHT_BLUE	"104"
+ #define COLOR_BG_BRIGHT_MAGENTA	"105"
+ #define COLOR_BG_BRIGHT_CYAN	"106"
+ #define COLOR_BG_BRIGHT_WHITE	"107"
  #define SGR_START		"\33["
  #define SGR_END			"m\33[K"
  #define SGR_SEQ(str)		SGR_START str SGR_END
diff -Nrcpad gcc-13.2.0/gcc/combine-stack-adj.cc gcc-14.1.0/gcc/combine-stack-adj.cc
*** gcc-13.2.0/gcc/combine-stack-adj.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/combine-stack-adj.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Combine stack adjustments.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Combine stack adjustments.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** struct csa_reflist
*** 65,71 ****
    struct csa_reflist *next;
  };
  
! static int stack_memref_p (rtx);
  static rtx single_set_for_csa (rtx_insn *);
  static void free_csa_reflist (struct csa_reflist *);
  static struct csa_reflist *record_one_stack_ref (rtx_insn *, rtx *,
--- 65,71 ----
    struct csa_reflist *next;
  };
  
! static bool stack_memref_p (rtx);
  static rtx single_set_for_csa (rtx_insn *);
  static void free_csa_reflist (struct csa_reflist *);
  static struct csa_reflist *record_one_stack_ref (rtx_insn *, rtx *,
*************** combine_stack_adjustments (void)
*** 92,112 ****
  
  /* Recognize a MEM of the form (sp) or (plus sp const).  */
  
! static int
  stack_memref_p (rtx x)
  {
    if (!MEM_P (x))
!     return 0;
    x = XEXP (x, 0);
  
    if (x == stack_pointer_rtx)
!     return 1;
    if (GET_CODE (x) == PLUS
        && XEXP (x, 0) == stack_pointer_rtx
        && CONST_INT_P (XEXP (x, 1)))
!     return 1;
  
!   return 0;
  }
  
  /* Recognize either normal single_set or the hack in i386.md for
--- 92,112 ----
  
  /* Recognize a MEM of the form (sp) or (plus sp const).  */
  
! static bool
  stack_memref_p (rtx x)
  {
    if (!MEM_P (x))
!     return false;
    x = XEXP (x, 0);
  
    if (x == stack_pointer_rtx)
!     return true;
    if (GET_CODE (x) == PLUS
        && XEXP (x, 0) == stack_pointer_rtx
        && CONST_INT_P (XEXP (x, 1)))
!     return true;
  
!   return false;
  }
  
  /* Recognize either normal single_set or the hack in i386.md for
*************** combine_stack_adjustments_for_block (bas
*** 791,803 ****
      BITMAP_FREE (copy);
  }
  
! static unsigned int
  rest_of_handle_stack_adjustments (void)
  {
    df_note_add_problem ();
    df_analyze ();
    combine_stack_adjustments ();
-   return 0;
  }
  
  namespace {
--- 791,802 ----
      BITMAP_FREE (copy);
  }
  
! static void
  rest_of_handle_stack_adjustments (void)
  {
    df_note_add_problem ();
    df_analyze ();
    combine_stack_adjustments ();
  }
  
  namespace {
*************** public:
*** 826,832 ****
    bool gate (function *) final override;
    unsigned int execute (function *) final override
      {
!       return rest_of_handle_stack_adjustments ();
      }
  
  }; // class pass_stack_adjustments
--- 825,832 ----
    bool gate (function *) final override;
    unsigned int execute (function *) final override
      {
!       rest_of_handle_stack_adjustments ();
!       return 0;
      }
  
  }; // class pass_stack_adjustments
diff -Nrcpad gcc-13.2.0/gcc/combine.cc gcc-14.1.0/gcc/combine.cc
*** gcc-13.2.0/gcc/combine.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/combine.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Optimize by combining instructions for GNU compiler.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Optimize by combining instructions for GNU compiler.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** static int combine_extras;
*** 108,117 ****
  
  static int combine_successes;
  
- /* Totals over entire compilation.  */
- 
- static int total_attempts, total_merges, total_extras, total_successes;
- 
  /* combine_instructions may try to replace the right hand side of the
     second instruction with the value of an associated REG_EQUAL note
     before throwing it at try_combine.  That is problematic when there
--- 108,113 ----
*************** struct reg_stat_type {
*** 156,162 ****
  				register was assigned
       last_set_table_tick	records the value of label_tick when a
  				value using the register is assigned
!      last_set_invalid		set to nonzero when it is not valid
  				to use the value of this register in some
  				register's value
  
--- 152,158 ----
  				register was assigned
       last_set_table_tick	records the value of label_tick when a
  				value using the register is assigned
!      last_set_invalid		set to true when it is not valid
  				to use the value of this register in some
  				register's value
  
*************** struct reg_stat_type {
*** 200,212 ****
  
    unsigned HOST_WIDE_INT	last_set_nonzero_bits;
    char				last_set_sign_bit_copies;
!   ENUM_BITFIELD(machine_mode)	last_set_mode : 8;
  
!   /* Set nonzero if references to register n in expressions should not be
       used.  last_set_invalid is set nonzero when this register is being
       assigned to and last_set_table_tick == label_tick.  */
  
!   char				last_set_invalid;
  
    /* Some registers that are set more than once and used in more than one
       basic block are nevertheless always set in similar ways.  For example,
--- 196,208 ----
  
    unsigned HOST_WIDE_INT	last_set_nonzero_bits;
    char				last_set_sign_bit_copies;
!   ENUM_BITFIELD(machine_mode)	last_set_mode : MACHINE_MODE_BITSIZE;
  
!   /* Set to true if references to register n in expressions should not be
       used.  last_set_invalid is set nonzero when this register is being
       assigned to and last_set_table_tick == label_tick.  */
  
!   bool				last_set_invalid;
  
    /* Some registers that are set more than once and used in more than one
       basic block are nevertheless always set in similar ways.  For example,
*************** struct reg_stat_type {
*** 235,241 ****
       truncation if we know that value already contains a truncated
       value.  */
  
!   ENUM_BITFIELD(machine_mode)	truncated_to_mode : 8;
  };
  
  
--- 231,237 ----
       truncation if we know that value already contains a truncated
       value.  */
  
!   ENUM_BITFIELD(machine_mode)	truncated_to_mode : MACHINE_MODE_BITSIZE;
  };
  
  
*************** static void do_SUBST_INT (int *, int);
*** 416,450 ****
  static void init_reg_last (void);
  static void setup_incoming_promotions (rtx_insn *);
  static void set_nonzero_bits_and_sign_copies (rtx, const_rtx, void *);
! static int cant_combine_insn_p (rtx_insn *);
! static int can_combine_p (rtx_insn *, rtx_insn *, rtx_insn *, rtx_insn *,
! 			  rtx_insn *, rtx_insn *, rtx *, rtx *);
! static int combinable_i3pat (rtx_insn *, rtx *, rtx, rtx, rtx, int, int, rtx *);
! static int contains_muldiv (rtx);
  static rtx_insn *try_combine (rtx_insn *, rtx_insn *, rtx_insn *, rtx_insn *,
! 			      int *, rtx_insn *);
  static void undo_all (void);
  static void undo_commit (void);
  static rtx *find_split_point (rtx *, rtx_insn *, bool);
! static rtx subst (rtx, rtx, rtx, int, int, int);
! static rtx combine_simplify_rtx (rtx, machine_mode, int, int);
  static rtx simplify_if_then_else (rtx);
  static rtx simplify_set (rtx);
  static rtx simplify_logical (rtx);
  static rtx expand_compound_operation (rtx);
  static const_rtx expand_field_assignment (const_rtx);
! static rtx make_extraction (machine_mode, rtx, HOST_WIDE_INT,
! 			    rtx, unsigned HOST_WIDE_INT, int, int, int);
  static int get_pos_from_mask (unsigned HOST_WIDE_INT,
  			      unsigned HOST_WIDE_INT *);
  static rtx canon_reg_for_combine (rtx, rtx);
  static rtx force_int_to_mode (rtx, scalar_int_mode, scalar_int_mode,
! 			      scalar_int_mode, unsigned HOST_WIDE_INT, int);
  static rtx force_to_mode (rtx, machine_mode,
! 			  unsigned HOST_WIDE_INT, int);
  static rtx if_then_else_cond (rtx, rtx *, rtx *);
  static rtx known_cond (rtx, enum rtx_code, rtx, rtx);
! static int rtx_equal_for_field_assignment_p (rtx, rtx, bool = false);
  static rtx make_field_assignment (rtx);
  static rtx apply_distributive_law (rtx);
  static rtx distribute_and_simplify_rtx (rtx, int);
--- 412,447 ----
  static void init_reg_last (void);
  static void setup_incoming_promotions (rtx_insn *);
  static void set_nonzero_bits_and_sign_copies (rtx, const_rtx, void *);
! static bool cant_combine_insn_p (rtx_insn *);
! static bool can_combine_p (rtx_insn *, rtx_insn *, rtx_insn *, rtx_insn *,
! 			   rtx_insn *, rtx_insn *, rtx *, rtx *);
! static bool combinable_i3pat (rtx_insn *, rtx *, rtx, rtx, rtx,
! 			      bool, bool, rtx *);
! static bool contains_muldiv (rtx);
  static rtx_insn *try_combine (rtx_insn *, rtx_insn *, rtx_insn *, rtx_insn *,
! 			      bool *, rtx_insn *);
  static void undo_all (void);
  static void undo_commit (void);
  static rtx *find_split_point (rtx *, rtx_insn *, bool);
! static rtx subst (rtx, rtx, rtx, bool, bool, bool);
! static rtx combine_simplify_rtx (rtx, machine_mode, bool, bool);
  static rtx simplify_if_then_else (rtx);
  static rtx simplify_set (rtx);
  static rtx simplify_logical (rtx);
  static rtx expand_compound_operation (rtx);
  static const_rtx expand_field_assignment (const_rtx);
! static rtx make_extraction (machine_mode, rtx, HOST_WIDE_INT, rtx,
! 			    unsigned HOST_WIDE_INT, bool, bool, bool);
  static int get_pos_from_mask (unsigned HOST_WIDE_INT,
  			      unsigned HOST_WIDE_INT *);
  static rtx canon_reg_for_combine (rtx, rtx);
  static rtx force_int_to_mode (rtx, scalar_int_mode, scalar_int_mode,
! 			      scalar_int_mode, unsigned HOST_WIDE_INT, bool);
  static rtx force_to_mode (rtx, machine_mode,
! 			  unsigned HOST_WIDE_INT, bool);
  static rtx if_then_else_cond (rtx, rtx *, rtx *);
  static rtx known_cond (rtx, enum rtx_code, rtx, rtx);
! static bool rtx_equal_for_field_assignment_p (rtx, rtx, bool = false);
  static rtx make_field_assignment (rtx);
  static rtx apply_distributive_law (rtx);
  static rtx distribute_and_simplify_rtx (rtx, int);
*************** static rtx simplify_and_const_int_1 (sca
*** 452,479 ****
  				     unsigned HOST_WIDE_INT);
  static rtx simplify_and_const_int (rtx, scalar_int_mode, rtx,
  				   unsigned HOST_WIDE_INT);
! static int merge_outer_ops (enum rtx_code *, HOST_WIDE_INT *, enum rtx_code,
! 			    HOST_WIDE_INT, machine_mode, int *);
  static rtx simplify_shift_const_1 (enum rtx_code, machine_mode, rtx, int);
  static rtx simplify_shift_const (rtx, enum rtx_code, machine_mode, rtx,
  				 int);
  static int recog_for_combine (rtx *, rtx_insn *, rtx *);
  static rtx gen_lowpart_for_combine (machine_mode, rtx);
  static enum rtx_code simplify_compare_const (enum rtx_code, machine_mode,
! 					     rtx, rtx *);
  static enum rtx_code simplify_comparison (enum rtx_code, rtx *, rtx *);
  static void update_table_tick (rtx);
  static void record_value_for_reg (rtx, rtx_insn *, rtx);
  static void check_promoted_subreg (rtx_insn *, rtx);
  static void record_dead_and_set_regs_1 (rtx, const_rtx, void *);
  static void record_dead_and_set_regs (rtx_insn *);
! static int get_last_value_validate (rtx *, rtx_insn *, int, int);
  static rtx get_last_value (const_rtx);
  static void reg_dead_at_p_1 (rtx, const_rtx, void *);
! static int reg_dead_at_p (rtx, rtx_insn *);
  static void move_deaths (rtx, rtx, int, rtx_insn *, rtx *);
! static int reg_bitfield_target_p (rtx, rtx);
! static void distribute_notes (rtx, rtx_insn *, rtx_insn *, rtx_insn *, rtx, rtx, rtx);
  static void distribute_links (struct insn_link *);
  static void mark_used_regs_combine (rtx);
  static void record_promoted_value (rtx_insn *, rtx);
--- 449,477 ----
  				     unsigned HOST_WIDE_INT);
  static rtx simplify_and_const_int (rtx, scalar_int_mode, rtx,
  				   unsigned HOST_WIDE_INT);
! static bool merge_outer_ops (enum rtx_code *, HOST_WIDE_INT *, enum rtx_code,
! 			     HOST_WIDE_INT, machine_mode, bool *);
  static rtx simplify_shift_const_1 (enum rtx_code, machine_mode, rtx, int);
  static rtx simplify_shift_const (rtx, enum rtx_code, machine_mode, rtx,
  				 int);
  static int recog_for_combine (rtx *, rtx_insn *, rtx *);
  static rtx gen_lowpart_for_combine (machine_mode, rtx);
  static enum rtx_code simplify_compare_const (enum rtx_code, machine_mode,
! 					     rtx *, rtx *);
  static enum rtx_code simplify_comparison (enum rtx_code, rtx *, rtx *);
  static void update_table_tick (rtx);
  static void record_value_for_reg (rtx, rtx_insn *, rtx);
  static void check_promoted_subreg (rtx_insn *, rtx);
  static void record_dead_and_set_regs_1 (rtx, const_rtx, void *);
  static void record_dead_and_set_regs (rtx_insn *);
! static bool get_last_value_validate (rtx *, rtx_insn *, int, bool);
  static rtx get_last_value (const_rtx);
  static void reg_dead_at_p_1 (rtx, const_rtx, void *);
! static bool reg_dead_at_p (rtx, rtx_insn *);
  static void move_deaths (rtx, rtx, int, rtx_insn *, rtx *);
! static bool reg_bitfield_target_p (rtx, rtx);
! static void distribute_notes (rtx, rtx_insn *, rtx_insn *, rtx_insn *,
! 			      rtx, rtx, rtx);
  static void distribute_links (struct insn_link *);
  static void mark_used_regs_combine (rtx);
  static void record_promoted_value (rtx_insn *, rtx);
*************** combine_validate_cost (rtx_insn *i0, rtx
*** 907,913 ****
  
    /* Disallow this combination if both new_cost and old_cost are greater than
       zero, and new_cost is greater than old cost.  */
!   int reject = old_cost > 0 && new_cost > old_cost;
  
    if (dump_file)
      {
--- 905,911 ----
  
    /* Disallow this combination if both new_cost and old_cost are greater than
       zero, and new_cost is greater than old cost.  */
!   bool reject = old_cost > 0 && new_cost > old_cost;
  
    if (dump_file)
      {
*************** insn_a_feeds_b (rtx_insn *a, rtx_insn *b
*** 1113,1119 ****
  
     Return nonzero if the CFG was changed (e.g. if the combiner has
     turned an indirect jump instruction into a direct jump).  */
! static int
  combine_instructions (rtx_insn *f, unsigned int nregs)
  {
    rtx_insn *insn, *next;
--- 1111,1117 ----
  
     Return nonzero if the CFG was changed (e.g. if the combiner has
     turned an indirect jump instruction into a direct jump).  */
! static bool
  combine_instructions (rtx_insn *f, unsigned int nregs)
  {
    rtx_insn *insn, *next;
*************** combine_instructions (rtx_insn *f, unsig
*** 1121,1132 ****
    rtx_insn *first;
    basic_block last_bb;
  
!   int new_direct_jump_p = 0;
  
    for (first = f; first && !NONDEBUG_INSN_P (first); )
      first = NEXT_INSN (first);
    if (!first)
!     return 0;
  
    combine_attempts = 0;
    combine_merges = 0;
--- 1119,1130 ----
    rtx_insn *first;
    basic_block last_bb;
  
!   bool new_direct_jump_p = false;
  
    for (first = f; first && !NONDEBUG_INSN_P (first); )
      first = NEXT_INSN (first);
    if (!first)
!     return false;
  
    combine_attempts = 0;
    combine_merges = 0;
*************** retry:
*** 1432,1439 ****
  
    default_rtl_profile ();
    clear_bb_flags ();
!   new_direct_jump_p |= purge_all_dead_edges ();
!   new_direct_jump_p |= delete_noop_moves ();
  
    /* Clean up.  */
    obstack_free (&insn_link_obstack, NULL);
--- 1430,1440 ----
  
    default_rtl_profile ();
    clear_bb_flags ();
! 
!   if (purge_all_dead_edges ())
!     new_direct_jump_p = true;
!   if (delete_noop_moves ())
!     new_direct_jump_p = true;
  
    /* Clean up.  */
    obstack_free (&insn_link_obstack, NULL);
*************** retry:
*** 1451,1460 ****
      undobuf.frees = 0;
    }
  
!   total_attempts += combine_attempts;
!   total_merges += combine_merges;
!   total_extras += combine_extras;
!   total_successes += combine_successes;
  
    nonzero_sign_valid = 0;
    rtl_hooks = general_rtl_hooks;
--- 1452,1461 ----
      undobuf.frees = 0;
    }
  
!   statistics_counter_event (cfun, "attempts", combine_attempts);
!   statistics_counter_event (cfun, "merges", combine_merges);
!   statistics_counter_event (cfun, "extras", combine_extras);
!   statistics_counter_event (cfun, "successes", combine_successes);
  
    nonzero_sign_valid = 0;
    rtl_hooks = general_rtl_hooks;
*************** set_nonzero_bits_and_sign_copies (rtx x,
*** 1718,1730 ****
     combined into the merger of INSN and I3.  The order is PRED, PRED2,
     INSN, SUCC, SUCC2, I3.
  
!    Return 0 if the combination is not allowed for any reason.
  
     If the combination is allowed, *PDEST will be set to the single
     destination of INSN and *PSRC to the single source, and this function
!    will return 1.  */
  
! static int
  can_combine_p (rtx_insn *insn, rtx_insn *i3, rtx_insn *pred ATTRIBUTE_UNUSED,
  	       rtx_insn *pred2 ATTRIBUTE_UNUSED, rtx_insn *succ, rtx_insn *succ2,
  	       rtx *pdest, rtx *psrc)
--- 1719,1731 ----
     combined into the merger of INSN and I3.  The order is PRED, PRED2,
     INSN, SUCC, SUCC2, I3.
  
!    Return false if the combination is not allowed for any reason.
  
     If the combination is allowed, *PDEST will be set to the single
     destination of INSN and *PSRC to the single source, and this function
!    will return true.  */
  
! static bool
  can_combine_p (rtx_insn *insn, rtx_insn *i3, rtx_insn *pred ATTRIBUTE_UNUSED,
  	       rtx_insn *pred2 ATTRIBUTE_UNUSED, rtx_insn *succ, rtx_insn *succ2,
  	       rtx *pdest, rtx *psrc)
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1735,1741 ****
    rtx_insn *p;
    rtx link;
    bool all_adjacent = true;
!   int (*is_volatile_p) (const_rtx);
  
    if (succ)
      {
--- 1736,1742 ----
    rtx_insn *p;
    rtx link;
    bool all_adjacent = true;
!   bool (*is_volatile_p) (const_rtx);
  
    if (succ)
      {
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1813,1819 ****
  			      ? reg_set_between_p (XEXP (elt, 0),
  						   PREV_INSN (insn), i3)
  			      : regno >= FIRST_PSEUDO_REGISTER))
! 			return 0;
  		    }
  		  while (--i >= 0);
  		}
--- 1814,1820 ----
  			      ? reg_set_between_p (XEXP (elt, 0),
  						   PREV_INSN (insn), i3)
  			      : regno >= FIRST_PSEUDO_REGISTER))
! 			return false;
  		    }
  		  while (--i >= 0);
  		}
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1834,1847 ****
  	      /* If we have already found a SET, this is a second one and
  		 so we cannot combine with this insn.  */
  	      if (set)
! 		return 0;
  
  	      set = elt;
  	      break;
  
  	    default:
  	      /* Anything else means we can't combine.  */
! 	      return 0;
  	    }
  	}
  
--- 1835,1848 ----
  	      /* If we have already found a SET, this is a second one and
  		 so we cannot combine with this insn.  */
  	      if (set)
! 		return false;
  
  	      set = elt;
  	      break;
  
  	    default:
  	      /* Anything else means we can't combine.  */
! 	      return false;
  	    }
  	}
  
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1849,1861 ****
  	  /* If SET_SRC is an ASM_OPERANDS we can't throw away these CLOBBERs,
  	     so don't do anything with it.  */
  	  || GET_CODE (SET_SRC (set)) == ASM_OPERANDS)
! 	return 0;
      }
    else
!     return 0;
  
    if (set == 0)
!     return 0;
  
    /* The simplification in expand_field_assignment may call back to
       get_last_value, so set safe guard here.  */
--- 1850,1862 ----
  	  /* If SET_SRC is an ASM_OPERANDS we can't throw away these CLOBBERs,
  	     so don't do anything with it.  */
  	  || GET_CODE (SET_SRC (set)) == ASM_OPERANDS)
! 	return false;
      }
    else
!     return false;
  
    if (set == 0)
!     return false;
  
    /* The simplification in expand_field_assignment may call back to
       get_last_value, so set safe guard here.  */
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1871,1877 ****
       should be harmless.  */
    if (REG_P (dest) && REG_USERVAR_P (dest) && HARD_REGISTER_P (dest)
        && extract_asm_operands (PATTERN (i3)))
!     return 0;
  
    /* Don't eliminate a store in the stack pointer.  */
    if (dest == stack_pointer_rtx
--- 1872,1878 ----
       should be harmless.  */
    if (REG_P (dest) && REG_USERVAR_P (dest) && HARD_REGISTER_P (dest)
        && extract_asm_operands (PATTERN (i3)))
!     return false;
  
    /* Don't eliminate a store in the stack pointer.  */
    if (dest == stack_pointer_rtx
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1931,1937 ****
  	 Exception: if source is a constant, moving it later can't hurt.
  	 Accept that as a special case.  */
        || (DF_INSN_LUID (insn) < last_call_luid && ! CONSTANT_P (src)))
!     return 0;
  
    /* DEST must be a REG.  */
    if (REG_P (dest))
--- 1932,1938 ----
  	 Exception: if source is a constant, moving it later can't hurt.
  	 Accept that as a special case.  */
        || (DF_INSN_LUID (insn) < last_call_luid && ! CONSTANT_P (src)))
!     return false;
  
    /* DEST must be a REG.  */
    if (REG_P (dest))
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1958,1967 ****
  	      || (REGNO (src) < FIRST_PSEUDO_REGISTER
  		  && !targetm.hard_regno_mode_ok (REGNO (src),
  						  GET_MODE (src)))))
! 	return 0;
      }
    else
!     return 0;
  
  
    if (GET_CODE (PATTERN (i3)) == PARALLEL)
--- 1959,1968 ----
  	      || (REGNO (src) < FIRST_PSEUDO_REGISTER
  		  && !targetm.hard_regno_mode_ok (REGNO (src),
  						  GET_MODE (src)))))
! 	return false;
      }
    else
!     return false;
  
  
    if (GET_CODE (PATTERN (i3)) == PARALLEL)
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1981,1987 ****
  	      || REGNO (reg) >= FIRST_PSEUDO_REGISTER
  	      || !fixed_regs[REGNO (reg)])
  	    if (reg_overlap_mentioned_p (reg, src))
! 	      return 0;
  	}
  
    /* If INSN contains anything volatile, or is an `asm' (whether volatile
--- 1982,1988 ----
  	      || REGNO (reg) >= FIRST_PSEUDO_REGISTER
  	      || !fixed_regs[REGNO (reg)])
  	    if (reg_overlap_mentioned_p (reg, src))
! 	      return false;
  	}
  
    /* If INSN contains anything volatile, or is an `asm' (whether volatile
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 1991,1999 ****
      {
        /* Make sure neither succ nor succ2 contains a volatile reference.  */
        if (succ2 != 0 && volatile_refs_p (PATTERN (succ2)))
! 	return 0;
        if (succ != 0 && volatile_refs_p (PATTERN (succ)))
! 	return 0;
        /* We'll check insns between INSN and I3 below.  */
      }
  
--- 1992,2000 ----
      {
        /* Make sure neither succ nor succ2 contains a volatile reference.  */
        if (succ2 != 0 && volatile_refs_p (PATTERN (succ2)))
! 	return false;
        if (succ != 0 && volatile_refs_p (PATTERN (succ)))
! 	return false;
        /* We'll check insns between INSN and I3 below.  */
      }
  
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 2002,2008 ****
  
    if (GET_CODE (src) == ASM_OPERANDS
        && REG_P (dest) && REGNO (dest) < FIRST_PSEUDO_REGISTER)
!     return 0;
  
    /* If INSN contains volatile references (specifically volatile MEMs),
       we cannot combine across any other volatile references.
--- 2003,2009 ----
  
    if (GET_CODE (src) == ASM_OPERANDS
        && REG_P (dest) && REGNO (dest) < FIRST_PSEUDO_REGISTER)
!     return false;
  
    /* If INSN contains volatile references (specifically volatile MEMs),
       we cannot combine across any other volatile references.
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 2015,2021 ****
  
    for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
      if (INSN_P (p) && p != succ && p != succ2 && is_volatile_p (PATTERN (p)))
!       return 0;
  
    /* If INSN contains an autoincrement or autodecrement, make sure that
       register is not used between there and I3, and not already used in
--- 2016,2022 ----
  
    for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
      if (INSN_P (p) && p != succ && p != succ2 && is_volatile_p (PATTERN (p)))
!       return false;
  
    /* If INSN contains an autoincrement or autodecrement, make sure that
       register is not used between there and I3, and not already used in
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 2038,2044 ****
  	      || (succ2 != NULL_RTX
  		  && reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (succ2)))
  	      || reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (i3))))
! 	return 0;
  
    /* If we get here, we have passed all the tests and the combination is
       to be allowed.  */
--- 2039,2045 ----
  	      || (succ2 != NULL_RTX
  		  && reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (succ2)))
  	      || reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (i3))))
! 	return false;
  
    /* If we get here, we have passed all the tests and the combination is
       to be allowed.  */
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 2046,2052 ****
    *pdest = dest;
    *psrc = src;
  
!   return 1;
  }
  
  /* LOC is the location within I3 that contains its pattern or the component
--- 2047,2053 ----
    *pdest = dest;
    *psrc = src;
  
!   return true;
  }
  
  /* LOC is the location within I3 that contains its pattern or the component
*************** can_combine_p (rtx_insn *insn, rtx_insn
*** 2085,2095 ****
     we place a register that is both set and used within I3.  If more than one
     such register is detected, we fail.
  
!    Return 1 if the combination is valid, zero otherwise.  */
  
! static int
  combinable_i3pat (rtx_insn *i3, rtx *loc, rtx i2dest, rtx i1dest, rtx i0dest,
! 		  int i1_not_in_src, int i0_not_in_src, rtx *pi3dest_killed)
  {
    rtx x = *loc;
  
--- 2086,2096 ----
     we place a register that is both set and used within I3.  If more than one
     such register is detected, we fail.
  
!    Return true if the combination is valid, false otherwise.  */
  
! static bool
  combinable_i3pat (rtx_insn *i3, rtx *loc, rtx i2dest, rtx i1dest, rtx i0dest,
! 		  bool i1_not_in_src, bool i0_not_in_src, rtx *pi3dest_killed)
  {
    rtx x = *loc;
  
*************** combinable_i3pat (rtx_insn *i3, rtx *loc
*** 2135,2141 ****
  					      GET_MODE (inner_dest)))
  	  || (i1_not_in_src && reg_overlap_mentioned_p (i1dest, src))
  	  || (i0_not_in_src && reg_overlap_mentioned_p (i0dest, src)))
! 	return 0;
  
        /* If DEST is used in I3, it is being killed in this insn, so
  	 record that for later.  We have to consider paradoxical
--- 2136,2142 ----
  					      GET_MODE (inner_dest)))
  	  || (i1_not_in_src && reg_overlap_mentioned_p (i1dest, src))
  	  || (i0_not_in_src && reg_overlap_mentioned_p (i0dest, src)))
! 	return false;
  
        /* If DEST is used in I3, it is being killed in this insn, so
  	 record that for later.  We have to consider paradoxical
*************** combinable_i3pat (rtx_insn *i3, rtx *loc
*** 2159,2165 ****
  	  && REGNO (subdest) != STACK_POINTER_REGNUM)
  	{
  	  if (*pi3dest_killed)
! 	    return 0;
  
  	  *pi3dest_killed = subdest;
  	}
--- 2160,2166 ----
  	  && REGNO (subdest) != STACK_POINTER_REGNUM)
  	{
  	  if (*pi3dest_killed)
! 	    return false;
  
  	  *pi3dest_killed = subdest;
  	}
*************** combinable_i3pat (rtx_insn *i3, rtx *loc
*** 2172,2193 ****
        for (i = 0; i < XVECLEN (x, 0); i++)
  	if (! combinable_i3pat (i3, &XVECEXP (x, 0, i), i2dest, i1dest, i0dest,
  				i1_not_in_src, i0_not_in_src, pi3dest_killed))
! 	  return 0;
      }
  
!   return 1;
  }
  
! /* Return 1 if X is an arithmetic expression that contains a multiplication
     and division.  We don't count multiplications by powers of two here.  */
  
! static int
  contains_muldiv (rtx x)
  {
    switch (GET_CODE (x))
      {
      case MOD:  case DIV:  case UMOD:  case UDIV:
!       return 1;
  
      case MULT:
        return ! (CONST_INT_P (XEXP (x, 1))
--- 2173,2194 ----
        for (i = 0; i < XVECLEN (x, 0); i++)
  	if (! combinable_i3pat (i3, &XVECEXP (x, 0, i), i2dest, i1dest, i0dest,
  				i1_not_in_src, i0_not_in_src, pi3dest_killed))
! 	  return false;
      }
  
!   return true;
  }
  
! /* Return true if X is an arithmetic expression that contains a multiplication
     and division.  We don't count multiplications by powers of two here.  */
  
! static bool
  contains_muldiv (rtx x)
  {
    switch (GET_CODE (x))
      {
      case MOD:  case DIV:  case UMOD:  case UDIV:
!       return true;
  
      case MULT:
        return ! (CONST_INT_P (XEXP (x, 1))
*************** contains_muldiv (rtx x)
*** 2200,2214 ****
        if (UNARY_P (x))
  	return contains_muldiv (XEXP (x, 0));
  
!       return 0;
      }
  }
  
! /* Determine whether INSN can be used in a combination.  Return nonzero if
     not.  This is used in try_combine to detect early some cases where we
     can't perform combinations.  */
  
! static int
  cant_combine_insn_p (rtx_insn *insn)
  {
    rtx set;
--- 2201,2215 ----
        if (UNARY_P (x))
  	return contains_muldiv (XEXP (x, 0));
  
!       return false;
      }
  }
  
! /* Determine whether INSN can be used in a combination.  Return true if
     not.  This is used in try_combine to detect early some cases where we
     can't perform combinations.  */
  
! static bool
  cant_combine_insn_p (rtx_insn *insn)
  {
    rtx set;
*************** cant_combine_insn_p (rtx_insn *insn)
*** 2218,2224 ****
       This can occur when flow deletes an insn that it has merged into an
       auto-increment address.  */
    if (!NONDEBUG_INSN_P (insn))
!     return 1;
  
    /* Never combine loads and stores involving hard regs that are likely
       to be spilled.  The register allocator can usually handle such
--- 2219,2225 ----
       This can occur when flow deletes an insn that it has merged into an
       auto-increment address.  */
    if (!NONDEBUG_INSN_P (insn))
!     return true;
  
    /* Never combine loads and stores involving hard regs that are likely
       to be spilled.  The register allocator can usually handle such
*************** cant_combine_insn_p (rtx_insn *insn)
*** 2229,2235 ****
  
    set = single_set (insn);
    if (! set)
!     return 0;
    src = SET_SRC (set);
    dest = SET_DEST (set);
    if (GET_CODE (src) == SUBREG)
--- 2230,2236 ----
  
    set = single_set (insn);
    if (! set)
!     return false;
    src = SET_SRC (set);
    dest = SET_DEST (set);
    if (GET_CODE (src) == SUBREG)
*************** cant_combine_insn_p (rtx_insn *insn)
*** 2247,2255 ****
  	  || (HARD_REGISTER_P (dest)
  	      && ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (dest))
  	      && targetm.class_likely_spilled_p (REGNO_REG_CLASS (REGNO (dest))))))
!     return 1;
  
!   return 0;
  }
  
  struct likely_spilled_retval_info
--- 2248,2256 ----
  	  || (HARD_REGISTER_P (dest)
  	      && ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (dest))
  	      && targetm.class_likely_spilled_p (REGNO_REG_CLASS (REGNO (dest))))))
!     return true;
  
!   return false;
  }
  
  struct likely_spilled_retval_info
*************** likely_spilled_retval_1 (rtx x, const_rt
*** 2284,2295 ****
    info->mask &= ~new_mask;
  }
  
! /* Return nonzero iff part of the return value is live during INSN, and
     it is likely spilled.  This can happen when more than one insn is needed
     to copy the return value, e.g. when we consider to combine into the
     second copy insn for a complex value.  */
  
! static int
  likely_spilled_retval_p (rtx_insn *insn)
  {
    rtx_insn *use = BB_END (this_basic_block);
--- 2285,2296 ----
    info->mask &= ~new_mask;
  }
  
! /* Return true iff part of the return value is live during INSN, and
     it is likely spilled.  This can happen when more than one insn is needed
     to copy the return value, e.g. when we consider to combine into the
     second copy insn for a complex value.  */
  
! static bool
  likely_spilled_retval_p (rtx_insn *insn)
  {
    rtx_insn *use = BB_END (this_basic_block);
*************** likely_spilled_retval_p (rtx_insn *insn)
*** 2303,2316 ****
    struct likely_spilled_retval_info info;
  
    if (!NONJUMP_INSN_P (use) || GET_CODE (PATTERN (use)) != USE || insn == use)
!     return 0;
    reg = XEXP (PATTERN (use), 0);
    if (!REG_P (reg) || !targetm.calls.function_value_regno_p (REGNO (reg)))
!     return 0;
    regno = REGNO (reg);
    nregs = REG_NREGS (reg);
    if (nregs == 1)
!     return 0;
    mask = (2U << (nregs - 1)) - 1;
  
    /* Disregard parts of the return value that are set later.  */
--- 2304,2317 ----
    struct likely_spilled_retval_info info;
  
    if (!NONJUMP_INSN_P (use) || GET_CODE (PATTERN (use)) != USE || insn == use)
!     return false;
    reg = XEXP (PATTERN (use), 0);
    if (!REG_P (reg) || !targetm.calls.function_value_regno_p (REGNO (reg)))
!     return false;
    regno = REGNO (reg);
    nregs = REG_NREGS (reg);
    if (nregs == 1)
!     return false;
    mask = (2U << (nregs - 1)) - 1;
  
    /* Disregard parts of the return value that are set later.  */
*************** likely_spilled_retval_p (rtx_insn *insn)
*** 2329,2337 ****
      {
        if ((mask & 1 << nregs)
  	  && targetm.class_likely_spilled_p (REGNO_REG_CLASS (regno + nregs)))
! 	return 1;
      } while (nregs--);
!   return 0;
  }
  
  /* Adjust INSN after we made a change to its destination.
--- 2330,2338 ----
      {
        if ((mask & 1 << nregs)
  	  && targetm.class_likely_spilled_p (REGNO_REG_CLASS (regno + nregs)))
! 	return true;
      } while (nregs--);
!   return false;
  }
  
  /* Adjust INSN after we made a change to its destination.
*************** adjust_for_new_dest (rtx_insn *insn)
*** 2366,2374 ****
  }
  
  /* Return TRUE if combine can reuse reg X in mode MODE.
!    ADDED_SETS is nonzero if the original set is still required.  */
  static bool
! can_change_dest_mode (rtx x, int added_sets, machine_mode mode)
  {
    unsigned int regno;
  
--- 2367,2375 ----
  }
  
  /* Return TRUE if combine can reuse reg X in mode MODE.
!    ADDED_SETS is trueif the original set is still required.  */
  static bool
! can_change_dest_mode (rtx x, bool added_sets, machine_mode mode)
  {
    unsigned int regno;
  
*************** count_auto_inc (rtx, rtx, rtx, rtx, rtx,
*** 2509,2515 ****
     If we did the combination, return the insn at which combine should
     resume scanning.
  
!    Set NEW_DIRECT_JUMP_P to a nonzero value if try_combine creates a
     new direct jump instruction.
  
     LAST_COMBINED_INSN is either I3, or some insn after I3 that has
--- 2510,2516 ----
     If we did the combination, return the insn at which combine should
     resume scanning.
  
!    Set NEW_DIRECT_JUMP_P to true if try_combine creates a
     new direct jump instruction.
  
     LAST_COMBINED_INSN is either I3, or some insn after I3 that has
*************** count_auto_inc (rtx, rtx, rtx, rtx, rtx,
*** 2518,2532 ****
  
  static rtx_insn *
  try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
! 	     int *new_direct_jump_p, rtx_insn *last_combined_insn)
  {
    /* New patterns for I3 and I2, respectively.  */
    rtx newpat, newi2pat = 0;
    rtvec newpat_vec_with_clobbers = 0;
!   int substed_i2 = 0, substed_i1 = 0, substed_i0 = 0;
    /* Indicates need to preserve SET in I0, I1 or I2 in I3 if it is not
       dead.  */
!   int added_sets_0, added_sets_1, added_sets_2;
    /* Total number of SETs to put into I3.  */
    int total_sets;
    /* Nonzero if I2's or I1's body now appears in I3.  */
--- 2519,2533 ----
  
  static rtx_insn *
  try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
! 	     bool *new_direct_jump_p, rtx_insn *last_combined_insn)
  {
    /* New patterns for I3 and I2, respectively.  */
    rtx newpat, newi2pat = 0;
    rtvec newpat_vec_with_clobbers = 0;
!   bool substed_i2 = false, substed_i1 = false, substed_i0 = false;
    /* Indicates need to preserve SET in I0, I1 or I2 in I3 if it is not
       dead.  */
!   bool added_sets_0, added_sets_1, added_sets_2;
    /* Total number of SETs to put into I3.  */
    int total_sets;
    /* Nonzero if I2's or I1's body now appears in I3.  */
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 2546,2564 ****
    /* The PATTERNs of I0, I1, and I2, or a copy of them in certain cases.  */
    rtx i0pat = 0, i1pat = 0, i2pat = 0;
    /* Indicates if I2DEST or I1DEST is in I2SRC or I1_SRC.  */
!   int i2dest_in_i2src = 0, i1dest_in_i1src = 0, i2dest_in_i1src = 0;
!   int i0dest_in_i0src = 0, i1dest_in_i0src = 0, i2dest_in_i0src = 0;
!   int i2dest_killed = 0, i1dest_killed = 0, i0dest_killed = 0;
!   int i1_feeds_i2_n = 0, i0_feeds_i2_n = 0, i0_feeds_i1_n = 0;
    /* Notes that must be added to REG_NOTES in I3 and I2.  */
    rtx new_i3_notes, new_i2_notes;
    /* Notes that we substituted I3 into I2 instead of the normal case.  */
!   int i3_subst_into_i2 = 0;
    /* Notes that I1, I2 or I3 is a MULT operation.  */
!   int have_mult = 0;
!   int swap_i2i3 = 0;
!   int split_i2i3 = 0;
!   int changed_i3_dest = 0;
    bool i2_was_move = false, i3_was_move = false;
    int n_auto_inc = 0;
  
--- 2547,2566 ----
    /* The PATTERNs of I0, I1, and I2, or a copy of them in certain cases.  */
    rtx i0pat = 0, i1pat = 0, i2pat = 0;
    /* Indicates if I2DEST or I1DEST is in I2SRC or I1_SRC.  */
!   bool i2dest_in_i2src = false, i1dest_in_i1src = false;
!   bool i2dest_in_i1src = false, i0dest_in_i0src = false;
!   bool i1dest_in_i0src = false, i2dest_in_i0src = false;;
!   bool i2dest_killed = false, i1dest_killed = false, i0dest_killed = false;
!   bool i1_feeds_i2_n = false, i0_feeds_i2_n = false, i0_feeds_i1_n = false;
    /* Notes that must be added to REG_NOTES in I3 and I2.  */
    rtx new_i3_notes, new_i2_notes;
    /* Notes that we substituted I3 into I2 instead of the normal case.  */
!   bool i3_subst_into_i2 = false;
    /* Notes that I1, I2 or I3 is a MULT operation.  */
!   bool have_mult = false;
!   bool swap_i2i3 = false;
!   bool split_i2i3 = false;
!   bool changed_i3_dest = false;
    bool i2_was_move = false, i3_was_move = false;
    int n_auto_inc = 0;
  
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 2761,2767 ****
  	      subst_insn = i3;
  	      subst_low_luid = DF_INSN_LUID (i2);
  
! 	      added_sets_2 = added_sets_1 = added_sets_0 = 0;
  	      i2src = SET_SRC (XVECEXP (p2, 0, i));
  	      i2dest = SET_DEST (XVECEXP (p2, 0, i));
  	      i2dest_killed = dead_or_set_p (i2, i2dest);
--- 2763,2769 ----
  	      subst_insn = i3;
  	      subst_low_luid = DF_INSN_LUID (i2);
  
! 	      added_sets_2 = added_sets_1 = added_sets_0 = false;
  	      i2src = SET_SRC (XVECEXP (p2, 0, i));
  	      i2dest = SET_DEST (XVECEXP (p2, 0, i));
  	      i2dest_killed = dead_or_set_p (i2, i2dest);
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 2771,2777 ****
  		 the pattern.  Everything was set up above.  */
  	      SUBST (SET_DEST (XVECEXP (p2, 0, i)), SET_DEST (PATTERN (i3)));
  	      newpat = p2;
! 	      i3_subst_into_i2 = 1;
  	      goto validate_replacement;
  	    }
      }
--- 2773,2779 ----
  		 the pattern.  Everything was set up above.  */
  	      SUBST (SET_DEST (XVECEXP (p2, 0, i)), SET_DEST (PATTERN (i3)));
  	      newpat = p2;
! 	      i3_subst_into_i2 = true;
  	      goto validate_replacement;
  	    }
      }
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 2843,2849 ****
  	  combine_merges++;
  	  subst_insn = i3;
  	  subst_low_luid = DF_INSN_LUID (i2);
! 	  added_sets_2 = added_sets_1 = added_sets_0 = 0;
  	  i2dest = temp_dest;
  	  i2dest_killed = dead_or_set_p (i2, i2dest);
  
--- 2845,2851 ----
  	  combine_merges++;
  	  subst_insn = i3;
  	  subst_low_luid = DF_INSN_LUID (i2);
! 	  added_sets_2 = added_sets_1 = added_sets_0 = false;
  	  i2dest = temp_dest;
  	  i2dest_killed = dead_or_set_p (i2, i2dest);
  
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 2856,2862 ****
  	  newpat = PATTERN (i2);
  
            /* The dest of I3 has been replaced with the dest of I2.  */
!           changed_i3_dest = 1;
  	  goto validate_replacement;
  	}
      }
--- 2858,2864 ----
  	  newpat = PATTERN (i2);
  
            /* The dest of I3 has been replaced with the dest of I2.  */
! 	  changed_i3_dest = true;
  	  goto validate_replacement;
  	}
      }
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3022,3028 ****
        || (i0 != 0 && GET_CODE (i0src) == MULT)
        || (GET_CODE (PATTERN (i3)) == SET
  	  && GET_CODE (SET_SRC (PATTERN (i3))) == MULT))
!     have_mult = 1;
  
    /* If I3 has an inc, then give up if I1 or I2 uses the reg that is inc'd.
       We used to do this EXCEPT in one case: I3 has a post-inc in an
--- 3024,3030 ----
        || (i0 != 0 && GET_CODE (i0src) == MULT)
        || (GET_CODE (PATTERN (i3)) == SET
  	  && GET_CODE (SET_SRC (PATTERN (i3))) == MULT))
!     have_mult = true;
  
    /* If I3 has an inc, then give up if I1 or I2 uses the reg that is inc'd.
       We used to do this EXCEPT in one case: I3 has a post-inc in an
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3069,3075 ****
      added_sets_1 = !(dead_or_set_p (i3, i1dest)
  		     || (i1_feeds_i2_n && dead_or_set_p (i2, i1dest)));
    else
!     added_sets_1 = 0;
  
    if (i0)
      added_sets_0 =  !(dead_or_set_p (i3, i0dest)
--- 3071,3077 ----
      added_sets_1 = !(dead_or_set_p (i3, i1dest)
  		     || (i1_feeds_i2_n && dead_or_set_p (i2, i1dest)));
    else
!     added_sets_1 = false;
  
    if (i0)
      added_sets_0 =  !(dead_or_set_p (i3, i0dest)
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3077,3083 ****
  		      || ((i0_feeds_i2_n || (i0_feeds_i1_n && i1_feeds_i2_n))
  			  && dead_or_set_p (i2, i0dest)));
    else
!     added_sets_0 = 0;
  
    /* We are about to copy insns for the case where they need to be kept
       around.  Check that they can be copied in the merged instruction.  */
--- 3079,3085 ----
  		      || ((i0_feeds_i2_n || (i0_feeds_i1_n && i1_feeds_i2_n))
  			  && dead_or_set_p (i2, i0dest)));
    else
!     added_sets_0 = false;
  
    /* We are about to copy insns for the case where they need to be kept
       around.  Check that they can be copied in the merged instruction.  */
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3185,3191 ****
  	  compare_code = orig_compare_code = GET_CODE (*cc_use_loc);
  	  if (is_a <scalar_int_mode> (GET_MODE (i2dest), &mode))
  	    compare_code = simplify_compare_const (compare_code, mode,
! 						   op0, &op1);
  	  target_canonicalize_comparison (&compare_code, &op0, &op1, 1);
  	}
  
--- 3187,3193 ----
  	  compare_code = orig_compare_code = GET_CODE (*cc_use_loc);
  	  if (is_a <scalar_int_mode> (GET_MODE (i2dest), &mode))
  	    compare_code = simplify_compare_const (compare_code, mode,
! 						   &op0, &op1);
  	  target_canonicalize_comparison (&compare_code, &op0, &op1, 1);
  	}
  
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3220,3227 ****
  #endif
  	      /* Cases for modifying the CC-using comparison.  */
  	      if (compare_code != orig_compare_code
! 		  /* ??? Do we need to verify the zero rtx?  */
! 		  && XEXP (*cc_use_loc, 1) == const0_rtx)
  		{
  		  /* Replace cc_use_loc with entire new RTX.  */
  		  SUBST (*cc_use_loc,
--- 3222,3228 ----
  #endif
  	      /* Cases for modifying the CC-using comparison.  */
  	      if (compare_code != orig_compare_code
! 		  && COMPARISON_P (*cc_use_loc))
  		{
  		  /* Replace cc_use_loc with entire new RTX.  */
  		  SUBST (*cc_use_loc,
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3231,3238 ****
  		}
  	      else if (compare_mode != orig_compare_mode)
  		{
  		  /* Just replace the CC reg with a new mode.  */
! 		  SUBST (XEXP (*cc_use_loc, 0), newpat_dest);
  		  undobuf.other_insn = cc_use_insn;
  		}
  	    }
--- 3232,3250 ----
  		}
  	      else if (compare_mode != orig_compare_mode)
  		{
+ 		  subrtx_ptr_iterator::array_type array;
+ 
  		  /* Just replace the CC reg with a new mode.  */
! 		  FOR_EACH_SUBRTX_PTR (iter, array, cc_use_loc, NONCONST)
! 		    {
! 		      rtx *loc = *iter;
! 		      if (REG_P (*loc)
! 			  && REGNO (*loc) == REGNO (newpat_dest))
! 			{
! 			  SUBST (*loc, newpat_dest);
! 			  iter.skip_subrtxes ();
! 			}
! 		    }
  		  undobuf.other_insn = cc_use_insn;
  		}
  	    }
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3282,3292 ****
  	  if (i1)
  	    {
  	      subst_low_luid = DF_INSN_LUID (i1);
! 	      i1src = subst (i1src, pc_rtx, pc_rtx, 0, 0, 0);
  	    }
  
  	  subst_low_luid = DF_INSN_LUID (i2);
! 	  i2src = subst (i2src, pc_rtx, pc_rtx, 0, 0, 0);
  	}
  
        n_occurrences = 0;		/* `subst' counts here */
--- 3294,3304 ----
  	  if (i1)
  	    {
  	      subst_low_luid = DF_INSN_LUID (i1);
! 	      i1src = subst (i1src, pc_rtx, pc_rtx, false, false, false);
  	    }
  
  	  subst_low_luid = DF_INSN_LUID (i2);
! 	  i2src = subst (i2src, pc_rtx, pc_rtx, false, false, false);
  	}
  
        n_occurrences = 0;		/* `subst' counts here */
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3297,3307 ****
  	 self-referential RTL when we will be substituting I1SRC for I1DEST
  	 later.  Likewise if I0 feeds into I2, either directly or indirectly
  	 through I1, and I0DEST is in I0SRC.  */
!       newpat = subst (PATTERN (i3), i2dest, i2src, 0, 0,
  		      (i1_feeds_i2_n && i1dest_in_i1src)
  		      || ((i0_feeds_i2_n || (i0_feeds_i1_n && i1_feeds_i2_n))
  			  && i0dest_in_i0src));
!       substed_i2 = 1;
  
        /* Record whether I2's body now appears within I3's body.  */
        i2_is_used = n_occurrences;
--- 3309,3319 ----
  	 self-referential RTL when we will be substituting I1SRC for I1DEST
  	 later.  Likewise if I0 feeds into I2, either directly or indirectly
  	 through I1, and I0DEST is in I0SRC.  */
!       newpat = subst (PATTERN (i3), i2dest, i2src, false, false,
  		      (i1_feeds_i2_n && i1dest_in_i1src)
  		      || ((i0_feeds_i2_n || (i0_feeds_i1_n && i1_feeds_i2_n))
  			  && i0dest_in_i0src));
!       substed_i2 = true;
  
        /* Record whether I2's body now appears within I3's body.  */
        i2_is_used = n_occurrences;
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3316,3322 ****
  	 above (see detailed comments there) that ensures I1DEST isn't
  	 mentioned in any SETs in NEWPAT that are field assignments.  */
        if (!combinable_i3pat (NULL, &newpat, i1dest, NULL_RTX, NULL_RTX,
! 			     0, 0, 0))
  	{
  	  undo_all ();
  	  return 0;
--- 3328,3334 ----
  	 above (see detailed comments there) that ensures I1DEST isn't
  	 mentioned in any SETs in NEWPAT that are field assignments.  */
        if (!combinable_i3pat (NULL, &newpat, i1dest, NULL_RTX, NULL_RTX,
! 			     false, false, 0))
  	{
  	  undo_all ();
  	  return 0;
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3334,3342 ****
  	 copy of I1SRC each time we substitute it, in order to avoid creating
  	 self-referential RTL when we will be substituting I0SRC for I0DEST
  	 later.  */
!       newpat = subst (newpat, i1dest, i1src, 0, 0,
  		      i0_feeds_i1_n && i0dest_in_i0src);
!       substed_i1 = 1;
  
        /* Record whether I1's body now appears within I3's body.  */
        i1_is_used = n_occurrences;
--- 3346,3354 ----
  	 copy of I1SRC each time we substitute it, in order to avoid creating
  	 self-referential RTL when we will be substituting I0SRC for I0DEST
  	 later.  */
!       newpat = subst (newpat, i1dest, i1src, false, false,
  		      i0_feeds_i1_n && i0dest_in_i0src);
!       substed_i1 = true;
  
        /* Record whether I1's body now appears within I3's body.  */
        i1_is_used = n_occurrences;
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3347,3353 ****
    if (i0 && GET_CODE (newpat) != CLOBBER)
      {
        if (!combinable_i3pat (NULL, &newpat, i0dest, NULL_RTX, NULL_RTX,
! 			     0, 0, 0))
  	{
  	  undo_all ();
  	  return 0;
--- 3359,3365 ----
    if (i0 && GET_CODE (newpat) != CLOBBER)
      {
        if (!combinable_i3pat (NULL, &newpat, i0dest, NULL_RTX, NULL_RTX,
! 			     false, false, 0))
  	{
  	  undo_all ();
  	  return 0;
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3364,3371 ****
  
        n_occurrences = 0;
        subst_low_luid = DF_INSN_LUID (i0);
!       newpat = subst (newpat, i0dest, i0src, 0, 0, 0);
!       substed_i0 = 1;
      }
  
    if (n_auto_inc)
--- 3376,3383 ----
  
        n_occurrences = 0;
        subst_low_luid = DF_INSN_LUID (i0);
!       newpat = subst (newpat, i0dest, i0src, false, false, false);
!       substed_i0 = true;
      }
  
    if (n_auto_inc)
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3387,3399 ****
    if ((FIND_REG_INC_NOTE (i2, NULL_RTX) != 0
         && i2_is_used + added_sets_2 > 1)
        || (i1 != 0 && FIND_REG_INC_NOTE (i1, NULL_RTX) != 0
! 	  && (i1_is_used + added_sets_1 + (added_sets_2 && i1_feeds_i2_n)
! 	      > 1))
        || (i0 != 0 && FIND_REG_INC_NOTE (i0, NULL_RTX) != 0
  	  && (n_occurrences + added_sets_0
  	      + (added_sets_1 && i0_feeds_i1_n)
! 	      + (added_sets_2 && i0_feeds_i2_n)
! 	      > 1))
        /* Fail if we tried to make a new register.  */
        || max_reg_num () != maxreg
        /* Fail if we couldn't do something and have a CLOBBER.  */
--- 3399,3409 ----
    if ((FIND_REG_INC_NOTE (i2, NULL_RTX) != 0
         && i2_is_used + added_sets_2 > 1)
        || (i1 != 0 && FIND_REG_INC_NOTE (i1, NULL_RTX) != 0
! 	  && (i1_is_used + added_sets_1 + (added_sets_2 && i1_feeds_i2_n) > 1))
        || (i0 != 0 && FIND_REG_INC_NOTE (i0, NULL_RTX) != 0
  	  && (n_occurrences + added_sets_0
  	      + (added_sets_1 && i0_feeds_i1_n)
! 	      + (added_sets_2 && i0_feeds_i2_n) > 1))
        /* Fail if we tried to make a new register.  */
        || max_reg_num () != maxreg
        /* Fail if we couldn't do something and have a CLOBBER.  */
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3440,3446 ****
  	{
  	  rtx t = i1pat;
  	  if (i0_feeds_i1_n)
! 	    t = subst (t, i0dest, i0src_copy ? i0src_copy : i0src, 0, 0, 0);
  
  	  XVECEXP (newpat, 0, --total_sets) = t;
  	}
--- 3450,3457 ----
  	{
  	  rtx t = i1pat;
  	  if (i0_feeds_i1_n)
! 	    t = subst (t, i0dest, i0src_copy ? i0src_copy : i0src,
! 		       false, false, false);
  
  	  XVECEXP (newpat, 0, --total_sets) = t;
  	}
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3448,3457 ****
  	{
  	  rtx t = i2pat;
  	  if (i1_feeds_i2_n)
! 	    t = subst (t, i1dest, i1src_copy ? i1src_copy : i1src, 0, 0,
  		       i0_feeds_i1_n && i0dest_in_i0src);
  	  if ((i0_feeds_i1_n && i1_feeds_i2_n) || i0_feeds_i2_n)
! 	    t = subst (t, i0dest, i0src_copy2 ? i0src_copy2 : i0src, 0, 0, 0);
  
  	  XVECEXP (newpat, 0, --total_sets) = t;
  	}
--- 3459,3469 ----
  	{
  	  rtx t = i2pat;
  	  if (i1_feeds_i2_n)
! 	    t = subst (t, i1dest, i1src_copy ? i1src_copy : i1src, false, false,
  		       i0_feeds_i1_n && i0dest_in_i0src);
  	  if ((i0_feeds_i1_n && i1_feeds_i2_n) || i0_feeds_i2_n)
! 	    t = subst (t, i0dest, i0src_copy2 ? i0src_copy2 : i0src,
! 		       false, false, false);
  
  	  XVECEXP (newpat, 0, --total_sets) = t;
  	}
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3531,3537 ****
  	      insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
  
  	      if (insn_code_number >= 0)
! 		changed_i3_dest = 1;
  	    }
  	}
  
--- 3543,3549 ----
  	      insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
  
  	      if (insn_code_number >= 0)
! 		changed_i3_dest = true;
  	    }
  	}
  
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 4070,4076 ****
  	    }
  
  	  if (insn_code_number >= 0)
! 	    split_i2i3 = 1;
  	}
      }
  
--- 4082,4088 ----
  	    }
  
  	  if (insn_code_number >= 0)
! 	    split_i2i3 = true;
  	}
      }
  
*************** find_split_point (rtx *loc, rtx_insn *in
*** 4845,4851 ****
    rtx *split;
    unsigned HOST_WIDE_INT len = 0;
    HOST_WIDE_INT pos = 0;
!   int unsignedp = 0;
    rtx inner = NULL_RTX;
    scalar_int_mode mode, inner_mode;
  
--- 4857,4863 ----
    rtx *split;
    unsigned HOST_WIDE_INT len = 0;
    HOST_WIDE_INT pos = 0;
!   bool unsignedp = false;
    rtx inner = NULL_RTX;
    scalar_int_mode mode, inner_mode;
  
*************** find_split_point (rtx *loc, rtx_insn *in
*** 5075,5081 ****
  	    {
  	      rtx extraction = make_extraction (GET_MODE (SET_DEST (x)),
  						XEXP (SET_SRC (x), 0),
! 						pos, NULL_RTX, 1, 1, 0, 0);
  	      if (extraction != 0)
  		{
  		  SUBST (SET_SRC (x), extraction);
--- 5087,5094 ----
  	    {
  	      rtx extraction = make_extraction (GET_MODE (SET_DEST (x)),
  						XEXP (SET_SRC (x), 0),
! 						pos, NULL_RTX, 1,
! 						true, false, false);
  	      if (extraction != 0)
  		{
  		  SUBST (SET_SRC (x), extraction);
*************** find_split_point (rtx *loc, rtx_insn *in
*** 5119,5125 ****
  
  	  pos = 0;
  	  len = GET_MODE_PRECISION (inner_mode);
! 	  unsignedp = 0;
  	  break;
  
  	case SIGN_EXTRACT:
--- 5132,5138 ----
  
  	  pos = 0;
  	  len = GET_MODE_PRECISION (inner_mode);
! 	  unsignedp = false;
  	  break;
  
  	case SIGN_EXTRACT:
*************** find_split_point (rtx *loc, rtx_insn *in
*** 5317,5331 ****
  
     `n_occurrences' is incremented each time FROM is replaced.
  
!    IN_DEST is nonzero if we are processing the SET_DEST of a SET.
  
!    IN_COND is nonzero if we are at the top level of a condition.
  
!    UNIQUE_COPY is nonzero if each substitution must be unique.  We do this
     by copying if `n_occurrences' is nonzero.  */
  
  static rtx
! subst (rtx x, rtx from, rtx to, int in_dest, int in_cond, int unique_copy)
  {
    enum rtx_code code = GET_CODE (x);
    machine_mode op0_mode = VOIDmode;
--- 5330,5344 ----
  
     `n_occurrences' is incremented each time FROM is replaced.
  
!    IN_DEST is true if we are processing the SET_DEST of a SET.
  
!    IN_COND is true if we are at the top level of a condition.
  
!    UNIQUE_COPY is true if each substitution must be unique.  We do this
     by copying if `n_occurrences' is nonzero.  */
  
  static rtx
! subst (rtx x, rtx from, rtx to, bool in_dest, bool in_cond, bool unique_copy)
  {
    enum rtx_code code = GET_CODE (x);
    machine_mode op0_mode = VOIDmode;
*************** subst (rtx x, rtx from, rtx to, int in_d
*** 5391,5397 ****
        && GET_CODE (XVECEXP (x, 0, 0)) == SET
        && GET_CODE (SET_SRC (XVECEXP (x, 0, 0))) == ASM_OPERANDS)
      {
!       new_rtx = subst (XVECEXP (x, 0, 0), from, to, 0, 0, unique_copy);
  
        /* If this substitution failed, this whole thing fails.  */
        if (GET_CODE (new_rtx) == CLOBBER
--- 5404,5410 ----
        && GET_CODE (XVECEXP (x, 0, 0)) == SET
        && GET_CODE (SET_SRC (XVECEXP (x, 0, 0))) == ASM_OPERANDS)
      {
!       new_rtx = subst (XVECEXP (x, 0, 0), from, to, false, false, unique_copy);
  
        /* If this substitution failed, this whole thing fails.  */
        if (GET_CODE (new_rtx) == CLOBBER
*************** subst (rtx x, rtx from, rtx to, int in_d
*** 5406,5412 ****
  
  	  if (!REG_P (dest) && GET_CODE (dest) != PC)
  	    {
! 	      new_rtx = subst (dest, from, to, 0, 0, unique_copy);
  
  	      /* If this substitution failed, this whole thing fails.  */
  	      if (GET_CODE (new_rtx) == CLOBBER
--- 5419,5425 ----
  
  	  if (!REG_P (dest) && GET_CODE (dest) != PC)
  	    {
! 	      new_rtx = subst (dest, from, to, false, false, unique_copy);
  
  	      /* If this substitution failed, this whole thing fails.  */
  	      if (GET_CODE (new_rtx) == CLOBBER
*************** subst (rtx x, rtx from, rtx to, int in_d
*** 5464,5471 ****
  		    }
  		  else
  		    {
! 		      new_rtx = subst (XVECEXP (x, i, j), from, to, 0, 0,
! 				       unique_copy);
  
  		      /* If this substitution failed, this whole thing
  			 fails.  */
--- 5477,5484 ----
  		    }
  		  else
  		    {
! 		      new_rtx = subst (XVECEXP (x, i, j), from, to,
! 				       false, false, unique_copy);
  
  		      /* If this substitution failed, this whole thing
  			 fails.  */
*************** maybe_swap_commutative_operands (rtx x)
*** 5631,5649 ****
        SUBST (XEXP (x, 0), XEXP (x, 1));
        SUBST (XEXP (x, 1), temp);
      }
  }
  
  /* Simplify X, a piece of RTL.  We just operate on the expression at the
     outer level; call `subst' to simplify recursively.  Return the new
     expression.
  
!    OP0_MODE is the original mode of XEXP (x, 0).  IN_DEST is nonzero
!    if we are inside a SET_DEST.  IN_COND is nonzero if we are at the top level
     of a condition.  */
  
  static rtx
! combine_simplify_rtx (rtx x, machine_mode op0_mode, int in_dest,
! 		      int in_cond)
  {
    enum rtx_code code = GET_CODE (x);
    machine_mode mode = GET_MODE (x);
--- 5644,5683 ----
        SUBST (XEXP (x, 0), XEXP (x, 1));
        SUBST (XEXP (x, 1), temp);
      }
+ 
+   unsigned n_elts = 0;
+   if (GET_CODE (x) == VEC_MERGE
+       && CONST_INT_P (XEXP (x, 2))
+       && GET_MODE_NUNITS (GET_MODE (x)).is_constant (&n_elts)
+       && (swap_commutative_operands_p (XEXP (x, 0), XEXP (x, 1))
+ 	  /* Two operands have same precedence, then
+ 	     first bit of mask select first operand.  */
+ 	  || (!swap_commutative_operands_p (XEXP (x, 1), XEXP (x, 0))
+ 	      && !(UINTVAL (XEXP (x, 2)) & 1))))
+     {
+       rtx temp = XEXP (x, 0);
+       unsigned HOST_WIDE_INT sel = UINTVAL (XEXP (x, 2));
+       unsigned HOST_WIDE_INT mask = HOST_WIDE_INT_1U;
+       if (n_elts == HOST_BITS_PER_WIDE_INT)
+ 	mask = -1;
+       else
+ 	mask = (HOST_WIDE_INT_1U << n_elts) - 1;
+       SUBST (XEXP (x, 0), XEXP (x, 1));
+       SUBST (XEXP (x, 1), temp);
+       SUBST (XEXP (x, 2), GEN_INT (~sel & mask));
+     }
  }
  
  /* Simplify X, a piece of RTL.  We just operate on the expression at the
     outer level; call `subst' to simplify recursively.  Return the new
     expression.
  
!    OP0_MODE is the original mode of XEXP (x, 0).  IN_DEST is true
!    if we are inside a SET_DEST.  IN_COND is true if we are at the top level
     of a condition.  */
  
  static rtx
! combine_simplify_rtx (rtx x, machine_mode op0_mode, bool in_dest, bool in_cond)
  {
    enum rtx_code code = GET_CODE (x);
    machine_mode mode = GET_MODE (x);
*************** combine_simplify_rtx (rtx x, machine_mod
*** 5742,5749 ****
  	     false arms to store-flag values.  Be careful to use copy_rtx
  	     here since true_rtx or false_rtx might share RTL with x as a
  	     result of the if_then_else_cond call above.  */
! 	  true_rtx = subst (copy_rtx (true_rtx), pc_rtx, pc_rtx, 0, 0, 0);
! 	  false_rtx = subst (copy_rtx (false_rtx), pc_rtx, pc_rtx, 0, 0, 0);
  
  	  /* If true_rtx and false_rtx are not general_operands, an if_then_else
  	     is unlikely to be simpler.  */
--- 5776,5785 ----
  	     false arms to store-flag values.  Be careful to use copy_rtx
  	     here since true_rtx or false_rtx might share RTL with x as a
  	     result of the if_then_else_cond call above.  */
! 	  true_rtx = subst (copy_rtx (true_rtx), pc_rtx, pc_rtx,
! 			    false, false, false);
! 	  false_rtx = subst (copy_rtx (false_rtx), pc_rtx, pc_rtx,
! 			     false, false, false);
  
  	  /* If true_rtx and false_rtx are not general_operands, an if_then_else
  	     is unlikely to be simpler.  */
*************** combine_simplify_rtx (rtx x, machine_mod
*** 5959,5965 ****
        if (HWI_COMPUTABLE_MODE_P (mode))
  	SUBST (XEXP (x, 0),
  	       force_to_mode (XEXP (x, 0), GET_MODE (XEXP (x, 0)),
! 			      GET_MODE_MASK (mode), 0));
  
        /* We can truncate a constant value and return it.  */
        {
--- 5995,6001 ----
        if (HWI_COMPUTABLE_MODE_P (mode))
  	SUBST (XEXP (x, 0),
  	       force_to_mode (XEXP (x, 0), GET_MODE (XEXP (x, 0)),
! 			      GET_MODE_MASK (mode), false));
  
        /* We can truncate a constant value and return it.  */
        {
*************** combine_simplify_rtx (rtx x, machine_mod
*** 6054,6060 ****
  	{
  	  /* Try to simplify the expression further.  */
  	  rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
! 	  temp = combine_simplify_rtx (tor, VOIDmode, in_dest, 0);
  
  	  /* If we could, great.  If not, do not go ahead with the IOR
  	     replacement, since PLUS appears in many special purpose
--- 6090,6096 ----
  	{
  	  /* Try to simplify the expression further.  */
  	  rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
! 	  temp = combine_simplify_rtx (tor, VOIDmode, in_dest, false);
  
  	  /* If we could, great.  If not, do not go ahead with the IOR
  	     replacement, since PLUS appears in many special purpose
*************** combine_simplify_rtx (rtx x, machine_mod
*** 6345,6353 ****
  	       force_to_mode (XEXP (x, 1), GET_MODE (XEXP (x, 1)),
  			      (HOST_WIDE_INT_1U
  			       << exact_log2 (GET_MODE_UNIT_BITSIZE
! 					      (GET_MODE (x))))
! 			      - 1,
! 			      0));
        break;
      case VEC_SELECT:
        {
--- 6381,6387 ----
  	       force_to_mode (XEXP (x, 1), GET_MODE (XEXP (x, 1)),
  			      (HOST_WIDE_INT_1U
  			       << exact_log2 (GET_MODE_UNIT_BITSIZE
! 					      (GET_MODE (x)))) - 1, false));
        break;
      case VEC_SELECT:
        {
*************** simplify_if_then_else (rtx x)
*** 6380,6386 ****
    rtx true_rtx = XEXP (x, 1);
    rtx false_rtx = XEXP (x, 2);
    enum rtx_code true_code = GET_CODE (cond);
!   int comparison_p = COMPARISON_P (cond);
    rtx temp;
    int i;
    enum rtx_code false_code;
--- 6414,6420 ----
    rtx true_rtx = XEXP (x, 1);
    rtx false_rtx = XEXP (x, 2);
    enum rtx_code true_code = GET_CODE (cond);
!   bool comparison_p = COMPARISON_P (cond);
    rtx temp;
    int i;
    enum rtx_code false_code;
*************** simplify_if_then_else (rtx x)
*** 6411,6423 ****
        rtx from = XEXP (cond, 0);
        rtx true_val = XEXP (cond, 1);
        rtx false_val = true_val;
!       int swapped = 0;
  
        /* If FALSE_CODE is EQ, swap the codes and arms.  */
  
        if (false_code == EQ)
  	{
! 	  swapped = 1, true_code = EQ, false_code = NE;
  	  std::swap (true_rtx, false_rtx);
  	}
  
--- 6445,6457 ----
        rtx from = XEXP (cond, 0);
        rtx true_val = XEXP (cond, 1);
        rtx false_val = true_val;
!       bool swapped = false;
  
        /* If FALSE_CODE is EQ, swap the codes and arms.  */
  
        if (false_code == EQ)
  	{
! 	  swapped = true, true_code = EQ, false_code = NE;
  	  std::swap (true_rtx, false_rtx);
  	}
  
*************** simplify_if_then_else (rtx x)
*** 6452,6462 ****
        if (reg_mentioned_p (from, true_rtx))
  	true_rtx = subst (known_cond (copy_rtx (true_rtx), true_code,
  				      from, true_val),
! 			  pc_rtx, pc_rtx, 0, 0, 0);
        if (reg_mentioned_p (from, false_rtx))
  	false_rtx = subst (known_cond (copy_rtx (false_rtx), false_code,
  				       from, false_val),
! 			   pc_rtx, pc_rtx, 0, 0, 0);
  
        SUBST (XEXP (x, 1), swapped ? false_rtx : true_rtx);
        SUBST (XEXP (x, 2), swapped ? true_rtx : false_rtx);
--- 6486,6496 ----
        if (reg_mentioned_p (from, true_rtx))
  	true_rtx = subst (known_cond (copy_rtx (true_rtx), true_code,
  				      from, true_val),
! 			  pc_rtx, pc_rtx, false, false, false);
        if (reg_mentioned_p (from, false_rtx))
  	false_rtx = subst (known_cond (copy_rtx (false_rtx), false_code,
  				       from, false_val),
! 			   pc_rtx, pc_rtx, false, false, false);
  
        SUBST (XEXP (x, 1), swapped ? false_rtx : true_rtx);
        SUBST (XEXP (x, 2), swapped ? true_rtx : false_rtx);
*************** simplify_if_then_else (rtx x)
*** 6683,6693 ****
  	    cm = GET_MODE (c1);
  	  temp = subst (simplify_gen_relational (true_code, cm, VOIDmode,
  						 cond_op0, cond_op1),
! 			pc_rtx, pc_rtx, 0, 0, 0);
  	  temp = simplify_gen_binary (MULT, cm, temp,
  				      simplify_gen_binary (MULT, cm, c1,
  							   const_true_rtx));
! 	  temp = subst (temp, pc_rtx, pc_rtx, 0, 0, 0);
  	  temp = simplify_gen_binary (op, m, gen_lowpart (m, z), temp);
  
  	  if (extend_op != UNKNOWN)
--- 6717,6727 ----
  	    cm = GET_MODE (c1);
  	  temp = subst (simplify_gen_relational (true_code, cm, VOIDmode,
  						 cond_op0, cond_op1),
! 			pc_rtx, pc_rtx, false, false, false);
  	  temp = simplify_gen_binary (MULT, cm, temp,
  				      simplify_gen_binary (MULT, cm, c1,
  							   const_true_rtx));
! 	  temp = subst (temp, pc_rtx, pc_rtx, false, false, false);
  	  temp = simplify_gen_binary (op, m, gen_lowpart (m, z), temp);
  
  	  if (extend_op != UNKNOWN)
*************** simplify_set (rtx x)
*** 6759,6765 ****
  
    if (GET_MODE_CLASS (mode) == MODE_INT && HWI_COMPUTABLE_MODE_P (mode))
      {
!       src = force_to_mode (src, mode, HOST_WIDE_INT_M1U, 0);
        SUBST (SET_SRC (x), src);
      }
  
--- 6793,6799 ----
  
    if (GET_MODE_CLASS (mode) == MODE_INT && HWI_COMPUTABLE_MODE_P (mode))
      {
!       src = force_to_mode (src, mode, HOST_WIDE_INT_M1U, false);
        SUBST (SET_SRC (x), src);
      }
  
*************** simplify_set (rtx x)
*** 6774,6780 ****
        enum rtx_code old_code = GET_CODE (*cc_use);
        enum rtx_code new_code;
        rtx op0, op1, tmp;
!       int other_changed = 0;
        rtx inner_compare = NULL_RTX;
        machine_mode compare_mode = GET_MODE (dest);
  
--- 6808,6814 ----
        enum rtx_code old_code = GET_CODE (*cc_use);
        enum rtx_code new_code;
        rtx op0, op1, tmp;
!       bool other_changed = false;
        rtx inner_compare = NULL_RTX;
        machine_mode compare_mode = GET_MODE (dest);
  
*************** simplify_set (rtx x)
*** 6859,6865 ****
  
  	      SUBST (SET_DEST (x), new_dest);
  	      SUBST (XEXP (*cc_use, 0), new_dest);
! 	      other_changed = 1;
  
  	      dest = new_dest;
  	    }
--- 6893,6899 ----
  
  	      SUBST (SET_DEST (x), new_dest);
  	      SUBST (XEXP (*cc_use, 0), new_dest);
! 	      other_changed = true;
  
  	      dest = new_dest;
  	    }
*************** simplify_set (rtx x)
*** 6870,6882 ****
  	 undobuf.other_insn.  */
        if (new_code != old_code)
  	{
! 	  int other_changed_previously = other_changed;
  	  unsigned HOST_WIDE_INT mask;
  	  rtx old_cc_use = *cc_use;
  
  	  SUBST (*cc_use, gen_rtx_fmt_ee (new_code, GET_MODE (*cc_use),
  					  dest, const0_rtx));
! 	  other_changed = 1;
  
  	  /* If the only change we made was to change an EQ into an NE or
  	     vice versa, OP0 has only one bit that might be nonzero, and OP1
--- 6904,6916 ----
  	 undobuf.other_insn.  */
        if (new_code != old_code)
  	{
! 	  bool other_changed_previously = other_changed;
  	  unsigned HOST_WIDE_INT mask;
  	  rtx old_cc_use = *cc_use;
  
  	  SUBST (*cc_use, gen_rtx_fmt_ee (new_code, GET_MODE (*cc_use),
  					  dest, const0_rtx));
! 	  other_changed = true;
  
  	  /* If the only change we made was to change an EQ into an NE or
  	     vice versa, OP0 has only one bit that might be nonzero, and OP1
*************** simplify_set (rtx x)
*** 6896,6902 ****
  		   && ! check_asm_operands (pat)))
  		{
  		  *cc_use = old_cc_use;
! 		  other_changed = 0;
  
  		  op0 = simplify_gen_binary (XOR, GET_MODE (op0), op0,
  					     gen_int_mode (mask,
--- 6930,6936 ----
  		   && ! check_asm_operands (pat)))
  		{
  		  *cc_use = old_cc_use;
! 		  other_changed = false;
  
  		  op0 = simplify_gen_binary (XOR, GET_MODE (op0), op0,
  					     gen_int_mode (mask,
*************** static rtx
*** 7138,7144 ****
  expand_compound_operation (rtx x)
  {
    unsigned HOST_WIDE_INT pos = 0, len;
!   int unsignedp = 0;
    unsigned int modewidth;
    rtx tem;
    scalar_int_mode inner_mode;
--- 7172,7178 ----
  expand_compound_operation (rtx x)
  {
    unsigned HOST_WIDE_INT pos = 0, len;
!   bool unsignedp = false;
    unsigned int modewidth;
    rtx tem;
    scalar_int_mode inner_mode;
*************** expand_compound_operation (rtx x)
*** 7146,7152 ****
    switch (GET_CODE (x))
      {
      case ZERO_EXTEND:
!       unsignedp = 1;
        /* FALLTHRU */
      case SIGN_EXTEND:
        /* We can't necessarily use a const_int for a multiword mode;
--- 7180,7186 ----
    switch (GET_CODE (x))
      {
      case ZERO_EXTEND:
!       unsignedp = true;
        /* FALLTHRU */
      case SIGN_EXTEND:
        /* We can't necessarily use a const_int for a multiword mode;
*************** expand_compound_operation (rtx x)
*** 7187,7193 ****
        break;
  
      case ZERO_EXTRACT:
!       unsignedp = 1;
  
        /* fall through */
  
--- 7221,7227 ----
        break;
  
      case ZERO_EXTRACT:
!       unsignedp = true;
  
        /* fall through */
  
*************** expand_field_assignment (const_rtx x)
*** 7442,7447 ****
--- 7476,7486 ----
        if (!targetm.scalar_mode_supported_p (compute_mode))
  	break;
  
+       /* gen_lowpart_for_combine returns CLOBBER on failure.  */
+       rtx lowpart = gen_lowpart (compute_mode, SET_SRC (x));
+       if (GET_CODE (lowpart) == CLOBBER)
+ 	break;
+ 
        /* Now compute the equivalent expression.  Make a copy of INNER
  	 for the SET_DEST in case it is a MEM into which we will substitute;
  	 we don't want shared RTL in that case.  */
*************** expand_field_assignment (const_rtx x)
*** 7456,7464 ****
  				     inner);
        masked = simplify_gen_binary (ASHIFT, compute_mode,
  				    simplify_gen_binary (
! 				      AND, compute_mode,
! 				      gen_lowpart (compute_mode, SET_SRC (x)),
! 				      mask),
  				    pos);
  
        x = gen_rtx_SET (copy_rtx (inner),
--- 7495,7501 ----
  				     inner);
        masked = simplify_gen_binary (ASHIFT, compute_mode,
  				    simplify_gen_binary (
! 				      AND, compute_mode, lowpart, mask),
  				    pos);
  
        x = gen_rtx_SET (copy_rtx (inner),
*************** expand_field_assignment (const_rtx x)
*** 7473,7486 ****
     it is an RTX that represents the (variable) starting position; otherwise,
     POS is the (constant) starting bit position.  Both are counted from the LSB.
  
!    UNSIGNEDP is nonzero for an unsigned reference and zero for a signed one.
  
!    IN_DEST is nonzero if this is a reference in the destination of a SET.
     This is used when a ZERO_ or SIGN_EXTRACT isn't needed.  If nonzero,
     a STRICT_LOW_PART will be used, if zero, ZERO_EXTEND or SIGN_EXTEND will
     be used.
  
!    IN_COMPARE is nonzero if we are in a COMPARE.  This means that a
     ZERO_EXTRACT should be built even for bits starting at bit 0.
  
     MODE is the desired mode of the result (if IN_DEST == 0).
--- 7510,7523 ----
     it is an RTX that represents the (variable) starting position; otherwise,
     POS is the (constant) starting bit position.  Both are counted from the LSB.
  
!    UNSIGNEDP is true for an unsigned reference and zero for a signed one.
  
!    IN_DEST is true if this is a reference in the destination of a SET.
     This is used when a ZERO_ or SIGN_EXTRACT isn't needed.  If nonzero,
     a STRICT_LOW_PART will be used, if zero, ZERO_EXTEND or SIGN_EXTEND will
     be used.
  
!    IN_COMPARE is true if we are in a COMPARE.  This means that a
     ZERO_EXTRACT should be built even for bits starting at bit 0.
  
     MODE is the desired mode of the result (if IN_DEST == 0).
*************** expand_field_assignment (const_rtx x)
*** 7490,7497 ****
  
  static rtx
  make_extraction (machine_mode mode, rtx inner, HOST_WIDE_INT pos,
! 		 rtx pos_rtx, unsigned HOST_WIDE_INT len, int unsignedp,
! 		 int in_dest, int in_compare)
  {
    /* This mode describes the size of the storage area
       to fetch the overall value from.  Within that, we
--- 7527,7534 ----
  
  static rtx
  make_extraction (machine_mode mode, rtx inner, HOST_WIDE_INT pos,
! 		 rtx pos_rtx, unsigned HOST_WIDE_INT len, bool unsignedp,
! 		 bool in_dest, bool in_compare)
  {
    /* This mode describes the size of the storage area
       to fetch the overall value from.  Within that, we
*************** make_extraction (machine_mode mode, rtx
*** 7653,7659 ****
  	new_rtx = force_to_mode (inner, tmode,
  				 len >= HOST_BITS_PER_WIDE_INT
  				 ? HOST_WIDE_INT_M1U
! 				 : (HOST_WIDE_INT_1U << len) - 1, 0);
  
        /* If this extraction is going into the destination of a SET,
  	 make a STRICT_LOW_PART unless we made a MEM.  */
--- 7690,7696 ----
  	new_rtx = force_to_mode (inner, tmode,
  				 len >= HOST_BITS_PER_WIDE_INT
  				 ? HOST_WIDE_INT_M1U
! 				 : (HOST_WIDE_INT_1U << len) - 1, false);
  
        /* If this extraction is going into the destination of a SET,
  	 make a STRICT_LOW_PART unless we made a MEM.  */
*************** make_extraction (machine_mode mode, rtx
*** 7846,7853 ****
  			     || len + orig_pos >= HOST_BITS_PER_WIDE_INT
  			     ? HOST_WIDE_INT_M1U
  			     : (((HOST_WIDE_INT_1U << len) - 1)
! 				<< orig_pos),
! 			     0);
      }
  
    /* Adjust mode of POS_RTX, if needed.  If we want a wider mode, we
--- 7883,7889 ----
  			     || len + orig_pos >= HOST_BITS_PER_WIDE_INT
  			     ? HOST_WIDE_INT_M1U
  			     : (((HOST_WIDE_INT_1U << len) - 1)
! 				<< orig_pos), false);
      }
  
    /* Adjust mode of POS_RTX, if needed.  If we want a wider mode, we
*************** make_compound_operation_int (scalar_int_
*** 8081,8087 ****
  	{
  	  new_rtx = make_compound_operation (XEXP (XEXP (x, 0), 0), next_code);
  	  new_rtx = make_extraction (mode, new_rtx, 0, XEXP (XEXP (x, 0), 1),
! 				     i, 1, 0, in_code == COMPARE);
  	}
  
        /* Same as previous, but for (subreg (lshiftrt ...)) in first op.  */
--- 8117,8123 ----
  	{
  	  new_rtx = make_compound_operation (XEXP (XEXP (x, 0), 0), next_code);
  	  new_rtx = make_extraction (mode, new_rtx, 0, XEXP (XEXP (x, 0), 1),
! 				     i, true, false, in_code == COMPARE);
  	}
  
        /* Same as previous, but for (subreg (lshiftrt ...)) in first op.  */
*************** make_compound_operation_int (scalar_int_
*** 8096,8102 ****
  	  new_rtx = make_compound_operation (XEXP (inner_x0, 0), next_code);
  	  new_rtx = make_extraction (inner_mode, new_rtx, 0,
  				     XEXP (inner_x0, 1),
! 				     i, 1, 0, in_code == COMPARE);
  
  	  /* If we narrowed the mode when dropping the subreg, then we lose.  */
  	  if (GET_MODE_SIZE (inner_mode) < GET_MODE_SIZE (mode))
--- 8132,8138 ----
  	  new_rtx = make_compound_operation (XEXP (inner_x0, 0), next_code);
  	  new_rtx = make_extraction (inner_mode, new_rtx, 0,
  				     XEXP (inner_x0, 1),
! 				     i, true, false, in_code == COMPARE);
  
  	  /* If we narrowed the mode when dropping the subreg, then we lose.  */
  	  if (GET_MODE_SIZE (inner_mode) < GET_MODE_SIZE (mode))
*************** make_compound_operation_int (scalar_int_
*** 8107,8114 ****
  	  if (!new_rtx && i >= 0)
  	    {
  	      new_rtx = make_compound_operation (XEXP (x, 0), next_code);
! 	      new_rtx = make_extraction (mode, new_rtx, 0, NULL_RTX, i, 1,
! 					 0, in_code == COMPARE);
  	    }
  	}
        /* Same as previous, but for (xor/ior (lshiftrt...) (lshiftrt...)).  */
--- 8143,8150 ----
  	  if (!new_rtx && i >= 0)
  	    {
  	      new_rtx = make_compound_operation (XEXP (x, 0), next_code);
! 	      new_rtx = make_extraction (mode, new_rtx, 0, NULL_RTX, i,
! 					 true, false, in_code == COMPARE);
  	    }
  	}
        /* Same as previous, but for (xor/ior (lshiftrt...) (lshiftrt...)).  */
*************** make_compound_operation_int (scalar_int_
*** 8139,8145 ****
  	  new_rtx = make_extraction (mode, new_rtx,
  				     (GET_MODE_PRECISION (mode)
  				      - INTVAL (XEXP (XEXP (x, 0), 1))),
! 				     NULL_RTX, i, 1, 0, in_code == COMPARE);
  	}
  
        /* On machines without logical shifts, if the operand of the AND is
--- 8175,8182 ----
  	  new_rtx = make_extraction (mode, new_rtx,
  				     (GET_MODE_PRECISION (mode)
  				      - INTVAL (XEXP (XEXP (x, 0), 1))),
! 				     NULL_RTX, i, true, false,
! 				     in_code == COMPARE);
  	}
  
        /* On machines without logical shifts, if the operand of the AND is
*************** make_compound_operation_int (scalar_int_
*** 8174,8180 ****
  	new_rtx = make_extraction (mode,
  				   make_compound_operation (XEXP (x, 0),
  							    next_code),
! 				   0, NULL_RTX, i, 1, 0, in_code == COMPARE);
  
        /* If we are in a comparison and this is an AND with a power of two,
  	 convert this into the appropriate bit extract.  */
--- 8211,8218 ----
  	new_rtx = make_extraction (mode,
  				   make_compound_operation (XEXP (x, 0),
  							    next_code),
! 				   0, NULL_RTX, i,
! 				   true, false, in_code == COMPARE);
  
        /* If we are in a comparison and this is an AND with a power of two,
  	 convert this into the appropriate bit extract.  */
*************** make_compound_operation_int (scalar_int_
*** 8184,8190 ****
  	new_rtx = make_extraction (mode,
  				   make_compound_operation (XEXP (x, 0),
  							    next_code),
! 				   i, NULL_RTX, 1, 1, 0, 1);
  
        /* If the one operand is a paradoxical subreg of a register or memory and
  	 the constant (limited to the smaller mode) has only zero bits where
--- 8222,8228 ----
  	new_rtx = make_extraction (mode,
  				   make_compound_operation (XEXP (x, 0),
  							    next_code),
! 				   i, NULL_RTX, 1, true, false, true);
  
        /* If the one operand is a paradoxical subreg of a register or memory and
  	 the constant (limited to the smaller mode) has only zero bits where
*************** make_compound_operation_int (scalar_int_
*** 8199,8216 ****
  	  int sub_width;
  	  if ((REG_P (sub) || MEM_P (sub))
  	      && GET_MODE_PRECISION (sub_mode).is_constant (&sub_width)
! 	      && sub_width < mode_width)
  	    {
  	      unsigned HOST_WIDE_INT mode_mask = GET_MODE_MASK (sub_mode);
  	      unsigned HOST_WIDE_INT mask;
  
! 	      /* original AND constant with all the known zero bits set */
  	      mask = UINTVAL (XEXP (x, 1)) | (~nonzero_bits (sub, sub_mode));
  	      if ((mask & mode_mask) == mode_mask)
  		{
  		  new_rtx = make_compound_operation (sub, next_code);
  		  new_rtx = make_extraction (mode, new_rtx, 0, 0, sub_width,
! 					     1, 0, in_code == COMPARE);
  		}
  	    }
  	}
--- 8237,8262 ----
  	  int sub_width;
  	  if ((REG_P (sub) || MEM_P (sub))
  	      && GET_MODE_PRECISION (sub_mode).is_constant (&sub_width)
! 	      && sub_width < mode_width
! 	      && (!WORD_REGISTER_OPERATIONS
! 		  || sub_width >= BITS_PER_WORD
! 		  /* On WORD_REGISTER_OPERATIONS targets the bits
! 		     beyond sub_mode aren't considered undefined,
! 		     so optimize only if it is a MEM load when MEM loads
! 		     zero extend, because then the upper bits are all zero.  */
! 		  || (MEM_P (sub)
! 		      && load_extend_op (sub_mode) == ZERO_EXTEND)))
  	    {
  	      unsigned HOST_WIDE_INT mode_mask = GET_MODE_MASK (sub_mode);
  	      unsigned HOST_WIDE_INT mask;
  
! 	      /* Original AND constant with all the known zero bits set.  */
  	      mask = UINTVAL (XEXP (x, 1)) | (~nonzero_bits (sub, sub_mode));
  	      if ((mask & mode_mask) == mode_mask)
  		{
  		  new_rtx = make_compound_operation (sub, next_code);
  		  new_rtx = make_extraction (mode, new_rtx, 0, 0, sub_width,
! 					     true, false, in_code == COMPARE);
  		}
  	    }
  	}
*************** make_compound_operation_int (scalar_int_
*** 8251,8257 ****
  	  new_rtx = make_extraction (mode, new_rtx,
  				     INTVAL (rhs) - INTVAL (XEXP (lhs, 1)),
  				     NULL_RTX, mode_width - INTVAL (rhs),
! 				     code == LSHIFTRT, 0, in_code == COMPARE);
  	  break;
  	}
  
--- 8297,8304 ----
  	  new_rtx = make_extraction (mode, new_rtx,
  				     INTVAL (rhs) - INTVAL (XEXP (lhs, 1)),
  				     NULL_RTX, mode_width - INTVAL (rhs),
! 				     code == LSHIFTRT, false,
! 				     in_code == COMPARE);
  	  break;
  	}
  
*************** make_compound_operation_int (scalar_int_
*** 8271,8277 ****
  	new_rtx = make_extraction (mode, make_compound_operation (new_rtx,
  								  next_code),
  				   0, NULL_RTX, mode_width - INTVAL (rhs),
! 				   code == LSHIFTRT, 0, in_code == COMPARE);
  
        break;
  
--- 8318,8324 ----
  	new_rtx = make_extraction (mode, make_compound_operation (new_rtx,
  								  next_code),
  				   0, NULL_RTX, mode_width - INTVAL (rhs),
! 				   code == LSHIFTRT, false, in_code == COMPARE);
  
        break;
  
*************** make_compound_operation_int (scalar_int_
*** 8298,8304 ****
  	    if (width > mode_width)
  	      width = mode_width;
  	    new_rtx = make_extraction (mode, new_rtx, 0, XEXP (inner, 1),
! 				       width, 1, 0, in_code == COMPARE);
  	    break;
  	  }
  
--- 8345,8351 ----
  	    if (width > mode_width)
  	      width = mode_width;
  	    new_rtx = make_extraction (mode, new_rtx, 0, XEXP (inner, 1),
! 				       width, true, false, in_code == COMPARE);
  	    break;
  	  }
  
*************** make_compound_operation_int (scalar_int_
*** 8332,8338 ****
  	    && subreg_lowpart_p (x))
  	  {
  	    rtx newer
! 	      = force_to_mode (tem, mode, HOST_WIDE_INT_M1U, 0);
  
  	    /* If we have something other than a SUBREG, we might have
  	       done an expansion, so rerun ourselves.  */
--- 8379,8385 ----
  	    && subreg_lowpart_p (x))
  	  {
  	    rtx newer
! 	      = force_to_mode (tem, mode, HOST_WIDE_INT_M1U, false);
  
  	    /* If we have something other than a SUBREG, we might have
  	       done an expansion, so rerun ourselves.  */
*************** make_compound_operation (rtx x, enum rtx
*** 8423,8430 ****
    if (code == ZERO_EXTEND)
      {
        new_rtx = make_compound_operation (XEXP (x, 0), next_code);
!       tem = simplify_const_unary_operation (ZERO_EXTEND, GET_MODE (x),
! 					    new_rtx, GET_MODE (XEXP (x, 0)));
        if (tem)
  	return tem;
        SUBST (XEXP (x, 0), new_rtx);
--- 8470,8477 ----
    if (code == ZERO_EXTEND)
      {
        new_rtx = make_compound_operation (XEXP (x, 0), next_code);
!       tem = simplify_unary_operation (ZERO_EXTEND, GET_MODE (x),
! 				      new_rtx, GET_MODE (XEXP (x, 0)));
        if (tem)
  	return tem;
        SUBST (XEXP (x, 0), new_rtx);
*************** gen_lowpart_or_truncate (machine_mode mo
*** 8606,8621 ****
     Return a possibly simplified expression, but always convert X to
     MODE.  If X is a CONST_INT, AND the CONST_INT with MASK.
  
!    If JUST_SELECT is nonzero, don't optimize by noticing that bits in MASK
     are all off in X.  This is used when X will be complemented, by either
     NOT, NEG, or XOR.  */
  
  static rtx
  force_to_mode (rtx x, machine_mode mode, unsigned HOST_WIDE_INT mask,
! 	       int just_select)
  {
    enum rtx_code code = GET_CODE (x);
!   int next_select = just_select || code == XOR || code == NOT || code == NEG;
    machine_mode op_mode;
    unsigned HOST_WIDE_INT nonzero;
  
--- 8653,8668 ----
     Return a possibly simplified expression, but always convert X to
     MODE.  If X is a CONST_INT, AND the CONST_INT with MASK.
  
!    If JUST_SELECT is true, don't optimize by noticing that bits in MASK
     are all off in X.  This is used when X will be complemented, by either
     NOT, NEG, or XOR.  */
  
  static rtx
  force_to_mode (rtx x, machine_mode mode, unsigned HOST_WIDE_INT mask,
! 	       bool just_select)
  {
    enum rtx_code code = GET_CODE (x);
!   bool next_select = just_select || code == XOR || code == NOT || code == NEG;
    machine_mode op_mode;
    unsigned HOST_WIDE_INT nonzero;
  
*************** force_to_mode (rtx x, machine_mode mode,
*** 8702,8711 ****
  static rtx
  force_int_to_mode (rtx x, scalar_int_mode mode, scalar_int_mode xmode,
  		   scalar_int_mode op_mode, unsigned HOST_WIDE_INT mask,
! 		   int just_select)
  {
    enum rtx_code code = GET_CODE (x);
!   int next_select = just_select || code == XOR || code == NOT || code == NEG;
    unsigned HOST_WIDE_INT fuller_mask;
    rtx op0, op1, temp;
    poly_int64 const_op0;
--- 8749,8758 ----
  static rtx
  force_int_to_mode (rtx x, scalar_int_mode mode, scalar_int_mode xmode,
  		   scalar_int_mode op_mode, unsigned HOST_WIDE_INT mask,
! 		   bool just_select)
  {
    enum rtx_code code = GET_CODE (x);
!   bool next_select = just_select || code == XOR || code == NOT || code == NEG;
    unsigned HOST_WIDE_INT fuller_mask;
    rtx op0, op1, temp;
    poly_int64 const_op0;
*************** force_int_to_mode (rtx x, scalar_int_mod
*** 8716,8723 ****
    if (mask & (HOST_WIDE_INT_1U << (HOST_BITS_PER_WIDE_INT - 1)))
      fuller_mask = HOST_WIDE_INT_M1U;
    else
!     fuller_mask = ((HOST_WIDE_INT_1U << (floor_log2 (mask) + 1))
! 		   - 1);
  
    switch (code)
      {
--- 8763,8769 ----
    if (mask & (HOST_WIDE_INT_1U << (HOST_BITS_PER_WIDE_INT - 1)))
      fuller_mask = HOST_WIDE_INT_M1U;
    else
!     fuller_mask = ((HOST_WIDE_INT_1U << (floor_log2 (mask) + 1)) - 1);
  
    switch (code)
      {
*************** force_int_to_mode (rtx x, scalar_int_mod
*** 9080,9087 ****
  	      <= GET_MODE_PRECISION (xmode) - (floor_log2 (mask) + 1))
  	  && GET_CODE (XEXP (x, 0)) == ASHIFT
  	  && XEXP (XEXP (x, 0), 1) == XEXP (x, 1))
! 	return force_to_mode (XEXP (XEXP (x, 0), 0), mode, mask,
! 			      next_select);
  
        break;
  
--- 9126,9132 ----
  	      <= GET_MODE_PRECISION (xmode) - (floor_log2 (mask) + 1))
  	  && GET_CODE (XEXP (x, 0)) == ASHIFT
  	  && XEXP (XEXP (x, 0), 1) == XEXP (x, 1))
! 	return force_to_mode (XEXP (XEXP (x, 0), 0), mode, mask, next_select);
  
        break;
  
*************** known_cond (rtx x, enum rtx_code cond, r
*** 9584,9608 ****
  /* See if X and Y are equal for the purposes of seeing if we can rewrite an
     assignment as a field assignment.  */
  
! static int
  rtx_equal_for_field_assignment_p (rtx x, rtx y, bool widen_x)
  {
    if (widen_x && GET_MODE (x) != GET_MODE (y))
      {
        if (paradoxical_subreg_p (GET_MODE (x), GET_MODE (y)))
! 	return 0;
        if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN)
! 	return 0;
        x = adjust_address_nv (x, GET_MODE (y),
  			     byte_lowpart_offset (GET_MODE (y),
  						  GET_MODE (x)));
      }
  
    if (x == y || rtx_equal_p (x, y))
!     return 1;
  
    if (x == 0 || y == 0 || GET_MODE (x) != GET_MODE (y))
!     return 0;
  
    /* Check for a paradoxical SUBREG of a MEM compared with the MEM.
       Note that all SUBREGs of MEM are paradoxical; otherwise they
--- 9629,9653 ----
  /* See if X and Y are equal for the purposes of seeing if we can rewrite an
     assignment as a field assignment.  */
  
! static bool
  rtx_equal_for_field_assignment_p (rtx x, rtx y, bool widen_x)
  {
    if (widen_x && GET_MODE (x) != GET_MODE (y))
      {
        if (paradoxical_subreg_p (GET_MODE (x), GET_MODE (y)))
! 	return false;
        if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN)
! 	return false;
        x = adjust_address_nv (x, GET_MODE (y),
  			     byte_lowpart_offset (GET_MODE (y),
  						  GET_MODE (x)));
      }
  
    if (x == y || rtx_equal_p (x, y))
!     return true;
  
    if (x == 0 || y == 0 || GET_MODE (x) != GET_MODE (y))
!     return false;
  
    /* Check for a paradoxical SUBREG of a MEM compared with the MEM.
       Note that all SUBREGs of MEM are paradoxical; otherwise they
*************** rtx_equal_for_field_assignment_p (rtx x,
*** 9611,9630 ****
        && MEM_P (SUBREG_REG (y))
        && rtx_equal_p (SUBREG_REG (y),
  		      gen_lowpart (GET_MODE (SUBREG_REG (y)), x)))
!     return 1;
  
    if (MEM_P (y) && GET_CODE (x) == SUBREG
        && MEM_P (SUBREG_REG (x))
        && rtx_equal_p (SUBREG_REG (x),
  		      gen_lowpart (GET_MODE (SUBREG_REG (x)), y)))
!     return 1;
  
    /* We used to see if get_last_value of X and Y were the same but that's
       not correct.  In one direction, we'll cause the assignment to have
       the wrong destination and in the case, we'll import a register into this
       insn that might have already have been dead.   So fail if none of the
       above cases are true.  */
!   return 0;
  }
  
  /* See if X, a SET operation, can be rewritten as a bit-field assignment.
--- 9656,9675 ----
        && MEM_P (SUBREG_REG (y))
        && rtx_equal_p (SUBREG_REG (y),
  		      gen_lowpart (GET_MODE (SUBREG_REG (y)), x)))
!     return true;
  
    if (MEM_P (y) && GET_CODE (x) == SUBREG
        && MEM_P (SUBREG_REG (x))
        && rtx_equal_p (SUBREG_REG (x),
  		      gen_lowpart (GET_MODE (SUBREG_REG (x)), y)))
!     return true;
  
    /* We used to see if get_last_value of X and Y were the same but that's
       not correct.  In one direction, we'll cause the assignment to have
       the wrong destination and in the case, we'll import a register into this
       insn that might have already have been dead.   So fail if none of the
       above cases are true.  */
!   return false;
  }
  
  /* See if X, a SET operation, can be rewritten as a bit-field assignment.
*************** make_field_assignment (rtx x)
*** 9660,9666 ****
        && rtx_equal_for_field_assignment_p (dest, XEXP (src, 1)))
      {
        assign = make_extraction (VOIDmode, dest, 0, XEXP (XEXP (src, 0), 1),
! 				1, 1, 1, 0);
        if (assign != 0)
  	return gen_rtx_SET (assign, const0_rtx);
        return x;
--- 9705,9711 ----
        && rtx_equal_for_field_assignment_p (dest, XEXP (src, 1)))
      {
        assign = make_extraction (VOIDmode, dest, 0, XEXP (XEXP (src, 0), 1),
! 				1, true, true, false);
        if (assign != 0)
  	return gen_rtx_SET (assign, const0_rtx);
        return x;
*************** make_field_assignment (rtx x)
*** 9676,9682 ****
      {
        assign = make_extraction (VOIDmode, dest, 0,
  				XEXP (SUBREG_REG (XEXP (src, 0)), 1),
! 				1, 1, 1, 0);
        if (assign != 0)
  	return gen_rtx_SET (assign, const0_rtx);
        return x;
--- 9721,9727 ----
      {
        assign = make_extraction (VOIDmode, dest, 0,
  				XEXP (SUBREG_REG (XEXP (src, 0)), 1),
! 				1, true, true, false);
        if (assign != 0)
  	return gen_rtx_SET (assign, const0_rtx);
        return x;
*************** make_field_assignment (rtx x)
*** 9689,9695 ****
        && rtx_equal_for_field_assignment_p (dest, XEXP (src, 1)))
      {
        assign = make_extraction (VOIDmode, dest, 0, XEXP (XEXP (src, 0), 1),
! 				1, 1, 1, 0);
        if (assign != 0)
  	return gen_rtx_SET (assign, const1_rtx);
        return x;
--- 9734,9740 ----
        && rtx_equal_for_field_assignment_p (dest, XEXP (src, 1)))
      {
        assign = make_extraction (VOIDmode, dest, 0, XEXP (XEXP (src, 0), 1),
! 				1, true, true, false);
        if (assign != 0)
  	return gen_rtx_SET (assign, const1_rtx);
        return x;
*************** make_field_assignment (rtx x)
*** 9710,9716 ****
        if (width >= HOST_BITS_PER_WIDE_INT)
  	ze_mask = -1;
        else
! 	ze_mask = ((unsigned HOST_WIDE_INT)1 << width) - 1;
  
        /* Complete overlap.  We can remove the source AND.  */
        if ((and_mask & ze_mask) == ze_mask)
--- 9755,9761 ----
        if (width >= HOST_BITS_PER_WIDE_INT)
  	ze_mask = -1;
        else
! 	ze_mask = (HOST_WIDE_INT_1U << width) - 1;
  
        /* Complete overlap.  We can remove the source AND.  */
        if ((and_mask & ze_mask) == ze_mask)
*************** make_field_assignment (rtx x)
*** 9793,9799 ****
        || (c1 & nonzero_bits (other, mode)) != 0)
      return x;
  
!   assign = make_extraction (VOIDmode, dest, pos, NULL_RTX, len, 1, 1, 0);
    if (assign == 0)
      return x;
  
--- 9838,9845 ----
        || (c1 & nonzero_bits (other, mode)) != 0)
      return x;
  
!   assign = make_extraction (VOIDmode, dest, pos, NULL_RTX, len,
! 			    true, true, false);
    if (assign == 0)
      return x;
  
*************** make_field_assignment (rtx x)
*** 9811,9818 ****
    src = force_to_mode (src, new_mode,
  		       len >= HOST_BITS_PER_WIDE_INT
  		       ? HOST_WIDE_INT_M1U
! 		       : (HOST_WIDE_INT_1U << len) - 1,
! 		       0);
  
    /* If SRC is masked by an AND that does not make a difference in
       the value being stored, strip it.  */
--- 9857,9863 ----
    src = force_to_mode (src, new_mode,
  		       len >= HOST_BITS_PER_WIDE_INT
  		       ? HOST_WIDE_INT_M1U
! 		       : (HOST_WIDE_INT_1U << len) - 1, false);
  
    /* If SRC is masked by an AND that does not make a difference in
       the value being stored, strip it.  */
*************** simplify_and_const_int_1 (scalar_int_mod
*** 10042,10048 ****
       CONSTOP are not significant and will never be examined.  We must
       ensure that is the case by explicitly masking out those bits
       before returning.  */
!   varop = force_to_mode (varop, mode, constop, 0);
  
    /* If VAROP is a CLOBBER, we will fail so return it.  */
    if (GET_CODE (varop) == CLOBBER)
--- 10087,10093 ----
       CONSTOP are not significant and will never be examined.  We must
       ensure that is the case by explicitly masking out those bits
       before returning.  */
!   varop = force_to_mode (varop, mode, constop, false);
  
    /* If VAROP is a CLOBBER, we will fail so return it.  */
    if (GET_CODE (varop) == CLOBBER)
*************** reg_num_sign_bit_copies_for_combine (con
*** 10280,10286 ****
     implies that it must be called from a define_split.  */
  
  unsigned int
! extended_count (const_rtx x, machine_mode mode, int unsignedp)
  {
    if (nonzero_sign_valid == 0)
      return 0;
--- 10325,10331 ----
     implies that it must be called from a define_split.  */
  
  unsigned int
! extended_count (const_rtx x, machine_mode mode, bool unsignedp)
  {
    if (nonzero_sign_valid == 0)
      return 0;
*************** extended_count (const_rtx x, machine_mod
*** 10301,10308 ****
     position.  We would now like to also perform OP1 with constant CONST1
     (with *POP0 being done last).
  
!    Return 1 if we can do the operation and update *POP0 and *PCONST0 with
!    the resulting operation.  *PCOMP_P is set to 1 if we would need to
     complement the innermost operand, otherwise it is unchanged.
  
     MODE is the mode in which the operation will be done.  No bits outside
--- 10346,10353 ----
     position.  We would now like to also perform OP1 with constant CONST1
     (with *POP0 being done last).
  
!    Return true if we can do the operation and update *POP0 and *PCONST0 with
!    the resulting operation.  *PCOMP_P is set to true if we would need to
     complement the innermost operand, otherwise it is unchanged.
  
     MODE is the mode in which the operation will be done.  No bits outside
*************** extended_count (const_rtx x, machine_mod
*** 10314,10323 ****
     result is simply *PCONST0.
  
     If the resulting operation cannot be expressed as one operation, we
!    return 0 and do not change *POP0, *PCONST0, and *PCOMP_P.  */
  
! static int
! merge_outer_ops (enum rtx_code *pop0, HOST_WIDE_INT *pconst0, enum rtx_code op1, HOST_WIDE_INT const1, machine_mode mode, int *pcomp_p)
  {
    enum rtx_code op0 = *pop0;
    HOST_WIDE_INT const0 = *pconst0;
--- 10359,10370 ----
     result is simply *PCONST0.
  
     If the resulting operation cannot be expressed as one operation, we
!    return false and do not change *POP0, *PCONST0, and *PCOMP_P.  */
  
! static bool
! merge_outer_ops (enum rtx_code *pop0, HOST_WIDE_INT *pconst0,
! 		 enum rtx_code op1, HOST_WIDE_INT const1,
! 		 machine_mode mode, bool *pcomp_p)
  {
    enum rtx_code op0 = *pop0;
    HOST_WIDE_INT const0 = *pconst0;
*************** merge_outer_ops (enum rtx_code *pop0, HO
*** 10333,10339 ****
       if OP0 is SET.  */
  
    if (op1 == UNKNOWN || op0 == SET)
!     return 1;
  
    else if (op0 == UNKNOWN)
      op0 = op1, const0 = const1;
--- 10380,10386 ----
       if OP0 is SET.  */
  
    if (op1 == UNKNOWN || op0 == SET)
!     return true;
  
    else if (op0 == UNKNOWN)
      op0 = op1, const0 = const1;
*************** merge_outer_ops (enum rtx_code *pop0, HO
*** 10364,10375 ****
  
    /* Otherwise, if either is a PLUS or NEG, we can't do anything.  */
    else if (op0 == PLUS || op1 == PLUS || op0 == NEG || op1 == NEG)
!     return 0;
  
    /* If the two constants aren't the same, we can't do anything.  The
       remaining six cases can all be done.  */
    else if (const0 != const1)
!     return 0;
  
    else
      switch (op0)
--- 10411,10422 ----
  
    /* Otherwise, if either is a PLUS or NEG, we can't do anything.  */
    else if (op0 == PLUS || op1 == PLUS || op0 == NEG || op1 == NEG)
!     return false;
  
    /* If the two constants aren't the same, we can't do anything.  The
       remaining six cases can all be done.  */
    else if (const0 != const1)
!     return false;
  
    else
      switch (op0)
*************** merge_outer_ops (enum rtx_code *pop0, HO
*** 10386,10392 ****
        case XOR:
  	if (op1 == AND)
  	  /* (a & b) ^ b == (~a) & b */
! 	  op0 = AND, *pcomp_p = 1;
  	else /* op1 == IOR */
  	  /* (a | b) ^ b == a & ~b */
  	  op0 = AND, const0 = ~const0;
--- 10433,10439 ----
        case XOR:
  	if (op1 == AND)
  	  /* (a & b) ^ b == (~a) & b */
! 	  op0 = AND, *pcomp_p = true;
  	else /* op1 == IOR */
  	  /* (a | b) ^ b == a & ~b */
  	  op0 = AND, const0 = ~const0;
*************** merge_outer_ops (enum rtx_code *pop0, HO
*** 10398,10404 ****
  	op0 = SET;
  	else /* op1 == XOR */
  	  /* (a ^ b) & b) == (~a) & b */
! 	  *pcomp_p = 1;
  	break;
        default:
  	break;
--- 10445,10451 ----
  	op0 = SET;
  	else /* op1 == XOR */
  	  /* (a ^ b) & b) == (~a) & b */
! 	  *pcomp_p = true;
  	break;
        default:
  	break;
*************** merge_outer_ops (enum rtx_code *pop0, HO
*** 10423,10429 ****
    if (op0 != UNKNOWN && op0 != NEG)
      *pconst0 = trunc_int_for_mode (const0, mode);
  
!   return 1;
  }
  
  /* A helper to simplify_shift_const_1 to determine the mode we can perform
--- 10470,10476 ----
    if (op0 != UNKNOWN && op0 != NEG)
      *pconst0 = trunc_int_for_mode (const0, mode);
  
!   return true;
  }
  
  /* A helper to simplify_shift_const_1 to determine the mode we can perform
*************** simplify_shift_const_1 (enum rtx_code co
*** 10502,10508 ****
    /* We form (outer_op (code varop count) (outer_const)).  */
    enum rtx_code outer_op = UNKNOWN;
    HOST_WIDE_INT outer_const = 0;
!   int complement_p = 0;
    rtx new_rtx, x;
  
    /* Make sure and truncate the "natural" shift on the way in.  We don't
--- 10549,10555 ----
    /* We form (outer_op (code varop count) (outer_const)).  */
    enum rtx_code outer_op = UNKNOWN;
    HOST_WIDE_INT outer_const = 0;
!   bool complement_p = false;
    rtx new_rtx, x;
  
    /* Make sure and truncate the "natural" shift on the way in.  We don't
*************** gen_lowpart_for_combine (machine_mode om
*** 11774,11786 ****
     (CODE OP0 const0_rtx) form.
  
     The result is a possibly different comparison code to use.
!    *POP1 may be updated.  */
  
  static enum rtx_code
  simplify_compare_const (enum rtx_code code, machine_mode mode,
! 			rtx op0, rtx *pop1)
  {
    scalar_int_mode int_mode;
    HOST_WIDE_INT const_op = INTVAL (*pop1);
  
    /* Get the constant we are comparing against and turn off all bits
--- 11821,11834 ----
     (CODE OP0 const0_rtx) form.
  
     The result is a possibly different comparison code to use.
!    *POP0 and *POP1 may be updated.  */
  
  static enum rtx_code
  simplify_compare_const (enum rtx_code code, machine_mode mode,
! 			rtx *pop0, rtx *pop1)
  {
    scalar_int_mode int_mode;
+   rtx op0 = *pop0;
    HOST_WIDE_INT const_op = INTVAL (*pop1);
  
    /* Get the constant we are comparing against and turn off all bits
*************** simplify_compare_const (enum rtx_code co
*** 11896,11902 ****
        /* (unsigned) < 0x80000000 is equivalent to >= 0.  */
        else if (is_a <scalar_int_mode> (mode, &int_mode)
  	       && GET_MODE_PRECISION (int_mode) - 1 < HOST_BITS_PER_WIDE_INT
! 	       && ((unsigned HOST_WIDE_INT) const_op
  		   == HOST_WIDE_INT_1U << (GET_MODE_PRECISION (int_mode) - 1)))
  	{
  	  const_op = 0;
--- 11944,11950 ----
        /* (unsigned) < 0x80000000 is equivalent to >= 0.  */
        else if (is_a <scalar_int_mode> (mode, &int_mode)
  	       && GET_MODE_PRECISION (int_mode) - 1 < HOST_BITS_PER_WIDE_INT
! 	       && (((unsigned HOST_WIDE_INT) const_op & GET_MODE_MASK (int_mode))
  		   == HOST_WIDE_INT_1U << (GET_MODE_PRECISION (int_mode) - 1)))
  	{
  	  const_op = 0;
*************** simplify_compare_const (enum rtx_code co
*** 11935,11941 ****
        /* (unsigned) >= 0x80000000 is equivalent to < 0.  */
        else if (is_a <scalar_int_mode> (mode, &int_mode)
  	       && GET_MODE_PRECISION (int_mode) - 1 < HOST_BITS_PER_WIDE_INT
! 	       && ((unsigned HOST_WIDE_INT) const_op
  		   == HOST_WIDE_INT_1U << (GET_MODE_PRECISION (int_mode) - 1)))
  	{
  	  const_op = 0;
--- 11983,11989 ----
        /* (unsigned) >= 0x80000000 is equivalent to < 0.  */
        else if (is_a <scalar_int_mode> (mode, &int_mode)
  	       && GET_MODE_PRECISION (int_mode) - 1 < HOST_BITS_PER_WIDE_INT
! 	       && (((unsigned HOST_WIDE_INT) const_op & GET_MODE_MASK (int_mode))
  		   == HOST_WIDE_INT_1U << (GET_MODE_PRECISION (int_mode) - 1)))
  	{
  	  const_op = 0;
*************** simplify_compare_const (enum rtx_code co
*** 11965,11970 ****
--- 12013,12091 ----
        break;
      }
  
+   /* Narrow non-symmetric comparison of memory and constant as e.g.
+      x0...x7 <= 0x3fffffffffffffff into x0 <= 0x3f where x0 is the most
+      significant byte.  Likewise, transform x0...x7 >= 0x4000000000000000 into
+      x0 >= 0x40.  */
+   if ((code == LEU || code == LTU || code == GEU || code == GTU)
+       && is_a <scalar_int_mode> (GET_MODE (op0), &int_mode)
+       && HWI_COMPUTABLE_MODE_P (int_mode)
+       && MEM_P (op0)
+       && !MEM_VOLATILE_P (op0)
+       /* The optimization makes only sense for constants which are big enough
+ 	 so that we have a chance to chop off something at all.  */
+       && ((unsigned HOST_WIDE_INT) const_op & GET_MODE_MASK (int_mode)) > 0xff
+       /* Ensure that we do not overflow during normalization.  */
+       && (code != GTU
+ 	  || ((unsigned HOST_WIDE_INT) const_op & GET_MODE_MASK (int_mode))
+ 	     < HOST_WIDE_INT_M1U)
+       && trunc_int_for_mode (const_op, int_mode) == const_op)
+     {
+       unsigned HOST_WIDE_INT n
+ 	= (unsigned HOST_WIDE_INT) const_op & GET_MODE_MASK (int_mode);
+       enum rtx_code adjusted_code;
+ 
+       /* Normalize code to either LEU or GEU.  */
+       if (code == LTU)
+ 	{
+ 	  --n;
+ 	  adjusted_code = LEU;
+ 	}
+       else if (code == GTU)
+ 	{
+ 	  ++n;
+ 	  adjusted_code = GEU;
+ 	}
+       else
+ 	adjusted_code = code;
+ 
+       scalar_int_mode narrow_mode_iter;
+       FOR_EACH_MODE_UNTIL (narrow_mode_iter, int_mode)
+ 	{
+ 	  unsigned nbits = GET_MODE_PRECISION (int_mode)
+ 			   - GET_MODE_PRECISION (narrow_mode_iter);
+ 	  unsigned HOST_WIDE_INT mask = (HOST_WIDE_INT_1U << nbits) - 1;
+ 	  unsigned HOST_WIDE_INT lower_bits = n & mask;
+ 	  if ((adjusted_code == LEU && lower_bits == mask)
+ 	      || (adjusted_code == GEU && lower_bits == 0))
+ 	    {
+ 	      n >>= nbits;
+ 	      break;
+ 	    }
+ 	}
+ 
+       if (narrow_mode_iter < int_mode)
+ 	{
+ 	  if (dump_file && (dump_flags & TDF_DETAILS))
+ 	    {
+ 	      fprintf (
+ 		dump_file, "narrow comparison from mode %s to %s: (MEM %s "
+ 		HOST_WIDE_INT_PRINT_HEX ") to (MEM %s "
+ 		HOST_WIDE_INT_PRINT_HEX ").\n", GET_MODE_NAME (int_mode),
+ 		GET_MODE_NAME (narrow_mode_iter), GET_RTX_NAME (code),
+ 		(unsigned HOST_WIDE_INT) const_op & GET_MODE_MASK (int_mode),
+ 		GET_RTX_NAME (adjusted_code), n);
+ 	    }
+ 	  poly_int64 offset = (BYTES_BIG_ENDIAN
+ 			       ? 0
+ 			       : (GET_MODE_SIZE (int_mode)
+ 				  - GET_MODE_SIZE (narrow_mode_iter)));
+ 	  *pop0 = adjust_address_nv (op0, narrow_mode_iter, offset);
+ 	  *pop1 = gen_int_mode (n, narrow_mode_iter);
+ 	  return adjusted_code;
+ 	}
+     }
+ 
    *pop1 = GEN_INT (const_op);
    return code;
  }
*************** simplify_comparison (enum rtx_code code,
*** 12072,12078 ****
  	  rtx inner_op1 = XEXP (op1, 0);
  	  HOST_WIDE_INT c0 = INTVAL (XEXP (op0, 1));
  	  HOST_WIDE_INT c1 = INTVAL (XEXP (op1, 1));
! 	  int changed = 0;
  
  	  if (paradoxical_subreg_p (inner_op0)
  	      && GET_CODE (inner_op1) == SUBREG
--- 12193,12199 ----
  	  rtx inner_op1 = XEXP (op1, 0);
  	  HOST_WIDE_INT c0 = INTVAL (XEXP (op0, 1));
  	  HOST_WIDE_INT c1 = INTVAL (XEXP (op1, 1));
! 	  bool changed = false;
  
  	  if (paradoxical_subreg_p (inner_op0)
  	      && GET_CODE (inner_op1) == SUBREG
*************** simplify_comparison (enum rtx_code code,
*** 12091,12097 ****
  		 off the original sign bit.  */
  	      code = unsigned_condition (code);
  
! 	      changed = 1;
  	    }
  
  	  else if (c0 == c1)
--- 12212,12218 ----
  		 off the original sign bit.  */
  	      code = unsigned_condition (code);
  
! 	      changed = true;
  	    }
  
  	  else if (c0 == c1)
*************** simplify_comparison (enum rtx_code code,
*** 12102,12108 ****
  		  op0 = gen_lowpart_or_truncate (tmode, inner_op0);
  		  op1 = gen_lowpart_or_truncate (tmode, inner_op1);
  		  code = unsigned_condition (code);
! 		  changed = 1;
  		  break;
  		}
  
--- 12223,12229 ----
  		  op0 = gen_lowpart_or_truncate (tmode, inner_op0);
  		  op1 = gen_lowpart_or_truncate (tmode, inner_op1);
  		  code = unsigned_condition (code);
! 		  changed = true;
  		  break;
  		}
  
*************** simplify_comparison (enum rtx_code code,
*** 12157,12163 ****
  
        /* Try to simplify the compare to constant, possibly changing the
  	 comparison op, and/or changing op1 to zero.  */
!       code = simplify_compare_const (code, raw_mode, op0, &op1);
        const_op = INTVAL (op1);
  
        /* Compute some predicates to simplify code below.  */
--- 12278,12284 ----
  
        /* Try to simplify the compare to constant, possibly changing the
  	 comparison op, and/or changing op1 to zero.  */
!       code = simplify_compare_const (code, raw_mode, &op0, &op1);
        const_op = INTVAL (op1);
  
        /* Compute some predicates to simplify code below.  */
*************** simplify_comparison (enum rtx_code code,
*** 12174,12181 ****
  	  && HWI_COMPUTABLE_MODE_P (int_mode))
  	op0 = force_to_mode (op0, int_mode,
  			     HOST_WIDE_INT_1U
! 			     << (GET_MODE_PRECISION (int_mode) - 1),
! 			     0);
  
        if (COMPARISON_P (op0))
  	{
--- 12295,12301 ----
  	  && HWI_COMPUTABLE_MODE_P (int_mode))
  	op0 = force_to_mode (op0, int_mode,
  			     HOST_WIDE_INT_1U
! 			     << (GET_MODE_PRECISION (int_mode) - 1), false);
  
        if (COMPARISON_P (op0))
  	{
*************** simplify_comparison (enum rtx_code code,
*** 12440,12448 ****
  	    }
  
  	  /* If the inner mode is narrower and we are extracting the low part,
! 	     we can treat the SUBREG as if it were a ZERO_EXTEND.  */
  	  if (paradoxical_subreg_p (op0))
! 	    ;
  	  else if (subreg_lowpart_p (op0)
  		   && GET_MODE_CLASS (mode) == MODE_INT
  		   && is_int_mode (GET_MODE (SUBREG_REG (op0)), &inner_mode)
--- 12560,12581 ----
  	    }
  
  	  /* If the inner mode is narrower and we are extracting the low part,
! 	     we can treat the SUBREG as if it were a ZERO_EXTEND ...  */
  	  if (paradoxical_subreg_p (op0))
! 	    {
! 	      if (WORD_REGISTER_OPERATIONS
! 		  && is_a <scalar_int_mode> (GET_MODE (SUBREG_REG (op0)),
! 					     &inner_mode)
! 		  && GET_MODE_PRECISION (inner_mode) < BITS_PER_WORD
! 		  /* On WORD_REGISTER_OPERATIONS targets the bits
! 		     beyond sub_mode aren't considered undefined,
! 		     so optimize only if it is a MEM load when MEM loads
! 		     zero extend, because then the upper bits are all zero.  */
! 		  && !(MEM_P (SUBREG_REG (op0))
! 		       && load_extend_op (inner_mode) == ZERO_EXTEND))
! 		break;
! 	      /* FALLTHROUGH to case ZERO_EXTEND */
! 	    }
  	  else if (subreg_lowpart_p (op0)
  		   && GET_MODE_CLASS (mode) == MODE_INT
  		   && is_int_mode (GET_MODE (SUBREG_REG (op0)), &inner_mode)
*************** record_value_for_reg (rtx reg, rtx_insn
*** 13256,13274 ****
        rsp->last_set_label = label_tick;
        if (!insn
  	  || (value && rsp->last_set_table_tick >= label_tick_ebb_start))
! 	rsp->last_set_invalid = 1;
        else
! 	rsp->last_set_invalid = 0;
      }
  
    /* The value being assigned might refer to X (like in "x++;").  In that
       case, we must replace it with (clobber (const_int 0)) to prevent
       infinite loops.  */
    rsp = &reg_stat[regno];
!   if (value && !get_last_value_validate (&value, insn, label_tick, 0))
      {
        value = copy_rtx (value);
!       if (!get_last_value_validate (&value, insn, label_tick, 1))
  	value = 0;
      }
  
--- 13389,13407 ----
        rsp->last_set_label = label_tick;
        if (!insn
  	  || (value && rsp->last_set_table_tick >= label_tick_ebb_start))
! 	rsp->last_set_invalid = true;
        else
! 	rsp->last_set_invalid = false;
      }
  
    /* The value being assigned might refer to X (like in "x++;").  In that
       case, we must replace it with (clobber (const_int 0)) to prevent
       infinite loops.  */
    rsp = &reg_stat[regno];
!   if (value && !get_last_value_validate (&value, insn, label_tick, false))
      {
        value = copy_rtx (value);
!       if (!get_last_value_validate (&value, insn, label_tick, true))
  	value = 0;
      }
  
*************** record_dead_and_set_regs_1 (rtx dest, co
*** 13312,13338 ****
  
    if (REG_P (dest))
      {
!       /* If we are setting the whole register, we know its value.  Otherwise
! 	 show that we don't know the value.  We can handle a SUBREG if it's
! 	 the low part, but we must be careful with paradoxical SUBREGs on
! 	 RISC architectures because we cannot strip e.g. an extension around
! 	 a load and record the naked load since the RTL middle-end considers
! 	 that the upper bits are defined according to LOAD_EXTEND_OP.  */
        if (GET_CODE (setter) == SET && dest == SET_DEST (setter))
  	record_value_for_reg (dest, record_dead_insn, SET_SRC (setter));
        else if (GET_CODE (setter) == SET
  	       && GET_CODE (SET_DEST (setter)) == SUBREG
  	       && SUBREG_REG (SET_DEST (setter)) == dest
  	       && known_le (GET_MODE_PRECISION (GET_MODE (dest)),
  			    BITS_PER_WORD)
  	       && subreg_lowpart_p (SET_DEST (setter)))
! 	record_value_for_reg (dest, record_dead_insn,
! 			      WORD_REGISTER_OPERATIONS
! 			      && word_register_operation_p (SET_SRC (setter))
! 			      && paradoxical_subreg_p (SET_DEST (setter))
! 			      ? SET_SRC (setter)
! 			      : gen_lowpart (GET_MODE (dest),
! 					     SET_SRC (setter)));
        else
  	record_value_for_reg (dest, record_dead_insn, NULL_RTX);
      }
--- 13445,13487 ----
  
    if (REG_P (dest))
      {
!       /* If we are setting the whole register, we know its value.  */
        if (GET_CODE (setter) == SET && dest == SET_DEST (setter))
  	record_value_for_reg (dest, record_dead_insn, SET_SRC (setter));
+       /* We can handle a SUBREG if it's the low part, but we must be
+ 	 careful with paradoxical SUBREGs on RISC architectures because
+ 	 we cannot strip e.g. an extension around a load and record the
+ 	 naked load since the RTL middle-end considers that the upper bits
+ 	 are defined according to LOAD_EXTEND_OP.  */
        else if (GET_CODE (setter) == SET
  	       && GET_CODE (SET_DEST (setter)) == SUBREG
  	       && SUBREG_REG (SET_DEST (setter)) == dest
  	       && known_le (GET_MODE_PRECISION (GET_MODE (dest)),
  			    BITS_PER_WORD)
  	       && subreg_lowpart_p (SET_DEST (setter)))
! 	{
! 	  if (WORD_REGISTER_OPERATIONS
! 	      && word_register_operation_p (SET_SRC (setter))
! 	      && paradoxical_subreg_p (SET_DEST (setter)))
! 	    record_value_for_reg (dest, record_dead_insn, SET_SRC (setter));
! 	  else if (!partial_subreg_p (SET_DEST (setter)))
! 	    record_value_for_reg (dest, record_dead_insn,
! 				  gen_lowpart (GET_MODE (dest),
! 					       SET_SRC (setter)));
! 	  else
! 	    {
! 	      record_value_for_reg (dest, record_dead_insn,
! 				    gen_lowpart (GET_MODE (dest),
! 						 SET_SRC (setter)));
! 
! 	      unsigned HOST_WIDE_INT mask;
! 	      reg_stat_type *rsp = &reg_stat[REGNO (dest)];
! 	      mask = GET_MODE_MASK (GET_MODE (SET_DEST (setter)));
! 	      rsp->last_set_nonzero_bits |= ~mask;
! 	      rsp->last_set_sign_bit_copies = 1;
! 	    }
! 	}
!       /* Otherwise show that we don't know the value.  */
        else
  	record_value_for_reg (dest, record_dead_insn, NULL_RTX);
      }
*************** record_dead_and_set_regs (rtx_insn *insn
*** 13396,13402 ****
  	     It wouldn't help much anyway, since we rarely see this
  	     situation before RA.  */
  	  rsp = &reg_stat[i];
! 	  rsp->last_set_invalid = 1;
  	  rsp->last_set = insn;
  	  rsp->last_set_value = 0;
  	  rsp->last_set_mode = VOIDmode;
--- 13545,13551 ----
  	     It wouldn't help much anyway, since we rarely see this
  	     situation before RA.  */
  	  rsp = &reg_stat[i];
! 	  rsp->last_set_invalid = true;
  	  rsp->last_set = insn;
  	  rsp->last_set_value = 0;
  	  rsp->last_set_mode = VOIDmode;
*************** check_promoted_subreg (rtx_insn *insn, r
*** 13581,13595 ****
  
  /* Verify that all the registers and memory references mentioned in *LOC are
     still valid.  *LOC was part of a value set in INSN when label_tick was
!    equal to TICK.  Return 0 if some are not.  If REPLACE is nonzero, replace
!    the invalid references with (clobber (const_int 0)) and return 1.  This
     replacement is useful because we often can get useful information about
     the form of a value (e.g., if it was produced by a shift that always
     produces -1 or 0) even though we don't know exactly what registers it
     was produced from.  */
  
! static int
! get_last_value_validate (rtx *loc, rtx_insn *insn, int tick, int replace)
  {
    rtx x = *loc;
    const char *fmt = GET_RTX_FORMAT (GET_CODE (x));
--- 13730,13744 ----
  
  /* Verify that all the registers and memory references mentioned in *LOC are
     still valid.  *LOC was part of a value set in INSN when label_tick was
!    equal to TICK.  Return false if some are not.  If REPLACE is true, replace
!    the invalid references with (clobber (const_int 0)) and return true.  This
     replacement is useful because we often can get useful information about
     the form of a value (e.g., if it was produced by a shift that always
     produces -1 or 0) even though we don't know exactly what registers it
     was produced from.  */
  
! static bool
! get_last_value_validate (rtx *loc, rtx_insn *insn, int tick, bool replace)
  {
    rtx x = *loc;
    const char *fmt = GET_RTX_FORMAT (GET_CODE (x));
*************** get_last_value_validate (rtx *loc, rtx_i
*** 13622,13628 ****
  	  }
  	}
  
!       return 1;
      }
    /* If this is a memory reference, make sure that there were no stores after
       it that might have clobbered the value.  We don't have alias info, so we
--- 13771,13777 ----
  	  }
  	}
  
!       return true;
      }
    /* If this is a memory reference, make sure that there were no stores after
       it that might have clobbered the value.  We don't have alias info, so we
*************** get_last_value_validate (rtx *loc, rtx_i
*** 13652,13665 ****
  
  	      /* If x0 and x1 are identical then x is also valid.  */
  	      if (x0 == x1)
! 		return 1;
  
  	      /* If x1 is identical to a subexpression of x0 then
  		 while checking x0, x1 has already been checked.  Thus
  		 it is valid and so as x.  */
  	      if (ARITHMETIC_P (x0)
  		  && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1)))
! 		return 1;
  
  	      /* If x0 is identical to a subexpression of x1 then x is
  		 valid iff the rest of x1 is valid.  */
--- 13801,13814 ----
  
  	      /* If x0 and x1 are identical then x is also valid.  */
  	      if (x0 == x1)
! 		return true;
  
  	      /* If x1 is identical to a subexpression of x0 then
  		 while checking x0, x1 has already been checked.  Thus
  		 it is valid and so as x.  */
  	      if (ARITHMETIC_P (x0)
  		  && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1)))
! 		return true;
  
  	      /* If x0 is identical to a subexpression of x1 then x is
  		 valid iff the rest of x1 is valid.  */
*************** get_last_value_validate (rtx *loc, rtx_i
*** 13671,13689 ****
  					   insn, tick, replace);
  	    }
  
! 	  if (get_last_value_validate (&XEXP (x, i), insn, tick,
! 				       replace) == 0)
! 	    return 0;
  	}
        else if (fmt[i] == 'E')
  	for (j = 0; j < XVECLEN (x, i); j++)
! 	  if (get_last_value_validate (&XVECEXP (x, i, j),
! 				       insn, tick, replace) == 0)
! 	    return 0;
      }
  
    /* If we haven't found a reason for it to be invalid, it is valid.  */
!   return 1;
  }
  
  /* Get the last value assigned to X, if known.  Some registers
--- 13820,13837 ----
  					   insn, tick, replace);
  	    }
  
! 	  if (!get_last_value_validate (&XEXP (x, i), insn, tick, replace))
! 	    return false;
  	}
        else if (fmt[i] == 'E')
  	for (j = 0; j < XVECLEN (x, i); j++)
! 	  if (!get_last_value_validate (&XVECEXP (x, i, j),
! 					insn, tick, replace))
! 	    return false;
      }
  
    /* If we haven't found a reason for it to be invalid, it is valid.  */
!   return true;
  }
  
  /* Get the last value assigned to X, if known.  Some registers
*************** get_last_value (const_rtx x)
*** 13745,13758 ****
      return 0;
  
    /* If the value has all its registers valid, return it.  */
!   if (get_last_value_validate (&value, rsp->last_set, rsp->last_set_label, 0))
      return value;
  
    /* Otherwise, make a copy and replace any invalid register with
       (clobber (const_int 0)).  If that fails for some reason, return 0.  */
  
    value = copy_rtx (value);
!   if (get_last_value_validate (&value, rsp->last_set, rsp->last_set_label, 1))
      return value;
  
    return 0;
--- 13893,13908 ----
      return 0;
  
    /* If the value has all its registers valid, return it.  */
!   if (get_last_value_validate (&value, rsp->last_set,
! 			       rsp->last_set_label, false))
      return value;
  
    /* Otherwise, make a copy and replace any invalid register with
       (clobber (const_int 0)).  If that fails for some reason, return 0.  */
  
    value = copy_rtx (value);
!   if (get_last_value_validate (&value, rsp->last_set,
! 			       rsp->last_set_label, true))
      return value;
  
    return 0;
*************** reg_dead_at_p_1 (rtx dest, const_rtx x,
*** 13784,13790 ****
      reg_dead_flag = (GET_CODE (x) == CLOBBER) ? 1 : -1;
  }
  
! /* Return nonzero if REG is known to be dead at INSN.
  
     We scan backwards from INSN.  If we hit a REG_DEAD note or a CLOBBER
     referencing REG, it is dead.  If we hit a SET referencing REG, it is
--- 13934,13940 ----
      reg_dead_flag = (GET_CODE (x) == CLOBBER) ? 1 : -1;
  }
  
! /* Return true if REG is known to be dead at INSN.
  
     We scan backwards from INSN.  If we hit a REG_DEAD note or a CLOBBER
     referencing REG, it is dead.  If we hit a SET referencing REG, it is
*************** reg_dead_at_p_1 (rtx dest, const_rtx x,
*** 13792,13798 ****
     block we are in.  Hard regs marked as being live in NEWPAT_USED_REGS
     must be assumed to be always live.  */
  
! static int
  reg_dead_at_p (rtx reg, rtx_insn *insn)
  {
    basic_block block;
--- 13942,13948 ----
     block we are in.  Hard regs marked as being live in NEWPAT_USED_REGS
     must be assumed to be always live.  */
  
! static bool
  reg_dead_at_p (rtx reg, rtx_insn *insn)
  {
    basic_block block;
*************** reg_dead_at_p (rtx reg, rtx_insn *insn)
*** 13812,13818 ****
      {
        for (i = reg_dead_regno; i < reg_dead_endregno; i++)
  	if (!fixed_regs[i] && TEST_HARD_REG_BIT (newpat_used_regs, i))
! 	  return 0;
      }
  
    /* Scan backwards until we find a REG_DEAD note, SET, CLOBBER, or
--- 13962,13968 ----
      {
        for (i = reg_dead_regno; i < reg_dead_endregno; i++)
  	if (!fixed_regs[i] && TEST_HARD_REG_BIT (newpat_used_regs, i))
! 	  return false;
      }
  
    /* Scan backwards until we find a REG_DEAD note, SET, CLOBBER, or
*************** reg_dead_at_p (rtx reg, rtx_insn *insn)
*** 13823,13836 ****
        if (INSN_P (insn))
          {
  	  if (find_regno_note (insn, REG_UNUSED, reg_dead_regno))
! 	    return 1;
  
  	  note_stores (insn, reg_dead_at_p_1, NULL);
  	  if (reg_dead_flag)
  	    return reg_dead_flag == 1 ? 1 : 0;
  
  	  if (find_regno_note (insn, REG_DEAD, reg_dead_regno))
! 	    return 1;
          }
  
        if (insn == BB_HEAD (block))
--- 13973,13986 ----
        if (INSN_P (insn))
          {
  	  if (find_regno_note (insn, REG_UNUSED, reg_dead_regno))
! 	    return true;
  
  	  note_stores (insn, reg_dead_at_p_1, NULL);
  	  if (reg_dead_flag)
  	    return reg_dead_flag == 1 ? 1 : 0;
  
  	  if (find_regno_note (insn, REG_DEAD, reg_dead_regno))
! 	    return true;
          }
  
        if (insn == BB_HEAD (block))
*************** reg_dead_at_p (rtx reg, rtx_insn *insn)
*** 13842,13850 ****
    /* Look at live-in sets for the basic block that we were in.  */
    for (i = reg_dead_regno; i < reg_dead_endregno; i++)
      if (REGNO_REG_SET_P (df_get_live_in (block), i))
!       return 0;
  
!   return 1;
  }
  
  /* Note hard registers in X that are used.  */
--- 13992,14000 ----
    /* Look at live-in sets for the basic block that we were in.  */
    for (i = reg_dead_regno; i < reg_dead_endregno; i++)
      if (REGNO_REG_SET_P (df_get_live_in (block), i))
!       return false;
  
!   return true;
  }
  
  /* Note hard registers in X that are used.  */
*************** move_deaths (rtx x, rtx maybe_kill_insn,
*** 14122,14131 ****
      }
  }
  
! /* Return 1 if X is the target of a bit-field assignment in BODY, the
     pattern of an insn.  X must be a REG.  */
  
! static int
  reg_bitfield_target_p (rtx x, rtx body)
  {
    int i;
--- 14272,14281 ----
      }
  }
  
! /* Return true if X is the target of a bit-field assignment in BODY, the
     pattern of an insn.  X must be a REG.  */
  
! static bool
  reg_bitfield_target_p (rtx x, rtx body)
  {
    int i;
*************** reg_bitfield_target_p (rtx x, rtx body)
*** 14141,14153 ****
        else if (GET_CODE (dest) == STRICT_LOW_PART)
  	target = SUBREG_REG (XEXP (dest, 0));
        else
! 	return 0;
  
        if (GET_CODE (target) == SUBREG)
  	target = SUBREG_REG (target);
  
        if (!REG_P (target))
! 	return 0;
  
        tregno = REGNO (target), regno = REGNO (x);
        if (tregno >= FIRST_PSEUDO_REGISTER || regno >= FIRST_PSEUDO_REGISTER)
--- 14291,14303 ----
        else if (GET_CODE (dest) == STRICT_LOW_PART)
  	target = SUBREG_REG (XEXP (dest, 0));
        else
! 	return false;
  
        if (GET_CODE (target) == SUBREG)
  	target = SUBREG_REG (target);
  
        if (!REG_P (target))
! 	return false;
  
        tregno = REGNO (target), regno = REGNO (x);
        if (tregno >= FIRST_PSEUDO_REGISTER || regno >= FIRST_PSEUDO_REGISTER)
*************** reg_bitfield_target_p (rtx x, rtx body)
*** 14162,14170 ****
    else if (GET_CODE (body) == PARALLEL)
      for (i = XVECLEN (body, 0) - 1; i >= 0; i--)
        if (reg_bitfield_target_p (x, XVECEXP (body, 0, i)))
! 	return 1;
  
!   return 0;
  }
  
  /* Given a chain of REG_NOTES originally from FROM_INSN, try to place them
--- 14312,14320 ----
    else if (GET_CODE (body) == PARALLEL)
      for (i = XVECLEN (body, 0) - 1; i >= 0; i--)
        if (reg_bitfield_target_p (x, XVECEXP (body, 0, i)))
! 	return true;
  
!   return false;
  }
  
  /* Given a chain of REG_NOTES originally from FROM_INSN, try to place them
*************** unmentioned_reg_p (rtx equiv, rtx expr)
*** 14906,14929 ****
    return false;
  }
  
- DEBUG_FUNCTION void
- dump_combine_stats (FILE *file)
- {
-   fprintf
-     (file,
-      ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n;; %d successes.\n\n",
-      combine_attempts, combine_merges, combine_extras, combine_successes);
- }
- 
- void
- dump_combine_total_stats (FILE *file)
- {
-   fprintf
-     (file,
-      "\n;; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n;; %d successes.\n",
-      total_attempts, total_merges, total_extras, total_successes);
- }
- 
  /* Make pseudo-to-pseudo copies after every hard-reg-to-pseudo-copy, because
     the reg-to-reg copy can usefully combine with later instructions, but we
     do not want to combine the hard reg into later instructions, for that
--- 15056,15061 ----
*************** make_more_copies (void)
*** 14966,14972 ****
  }
  
  /* Try combining insns through substitution.  */
! static unsigned int
  rest_of_handle_combine (void)
  {
    make_more_copies ();
--- 15098,15104 ----
  }
  
  /* Try combining insns through substitution.  */
! static void
  rest_of_handle_combine (void)
  {
    make_more_copies ();
*************** rest_of_handle_combine (void)
*** 14978,14984 ****
    regstat_init_n_sets_and_refs ();
    reg_n_sets_max = max_reg_num ();
  
!   int rebuild_jump_labels_after_combine
      = combine_instructions (get_insns (), max_reg_num ());
  
    /* Combining insns may have turned an indirect jump into a
--- 15110,15116 ----
    regstat_init_n_sets_and_refs ();
    reg_n_sets_max = max_reg_num ();
  
!   bool rebuild_jump_labels_after_combine
      = combine_instructions (get_insns (), max_reg_num ());
  
    /* Combining insns may have turned an indirect jump into a
*************** rest_of_handle_combine (void)
*** 14995,15001 ****
      }
  
    regstat_free_n_sets_and_refs ();
-   return 0;
  }
  
  namespace {
--- 15127,15132 ----
*************** public:
*** 15024,15030 ****
    bool gate (function *) final override { return (optimize > 0); }
    unsigned int execute (function *) final override
      {
!       return rest_of_handle_combine ();
      }
  
  }; // class pass_combine
--- 15155,15162 ----
    bool gate (function *) final override { return (optimize > 0); }
    unsigned int execute (function *) final override
      {
!       rest_of_handle_combine ();
!       return 0;
      }
  
  }; // class pass_combine
diff -Nrcpad gcc-13.2.0/gcc/common/common-target-def.h gcc-14.1.0/gcc/common/common-target-def.h
*** gcc-13.2.0/gcc/common/common-target-def.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/common-target-def.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Default initializers for common target hooks.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
--- 1,5 ----
  /* Default initializers for common target hooks.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-13.2.0/gcc/common/common-target.def gcc-14.1.0/gcc/common/common-target.def
*** gcc-13.2.0/gcc/common/common-target.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/common-target.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target hook definitions for common hooks.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
--- 1,5 ----
  /* Target hook definitions for common hooks.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-13.2.0/gcc/common/common-target.h gcc-14.1.0/gcc/common/common-target.h
*** gcc-13.2.0/gcc/common/common-target.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/common-target.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Data structure definitions for common hooks.
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
--- 1,5 ----
  /* Data structure definitions for common hooks.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-13.2.0/gcc/common/common-targhooks.cc gcc-14.1.0/gcc/common/common-targhooks.cc
*** gcc-13.2.0/gcc/common/common-targhooks.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/common-targhooks.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Default common target hook functions.
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Default common target hook functions.
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/common-targhooks.h gcc-14.1.0/gcc/common/common-targhooks.h
*** gcc-13.2.0/gcc/common/common-targhooks.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/common-targhooks.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Default common target hook functions.
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Default common target hook functions.
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/aarch64/aarch64-common.cc gcc-14.1.0/gcc/common/config/aarch64/aarch64-common.cc
*** gcc-13.2.0/gcc/common/config/aarch64/aarch64-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/aarch64/aarch64-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for AArch64.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Common hooks for AArch64.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** static const struct default_options aarc
*** 55,60 ****
--- 55,61 ----
      { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 },
      /* Enable redundant extension instructions removal at -O2 and higher.  */
      { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_mearly_ra_, NULL, AARCH64_EARLY_RA_ALL },
  #if (TARGET_DEFAULT_ASYNC_UNWIND_TABLES == 1)
      { OPT_LEVELS_ALL, OPT_fasynchronous_unwind_tables, NULL, 1 },
      { OPT_LEVELS_ALL, OPT_funwind_tables, NULL, 1},
*************** struct aarch64_option_extension
*** 148,156 ****
    aarch64_feature_flags flags_on;
    /* If this feature is turned off, these bits also need to be turned off.  */
    aarch64_feature_flags flags_off;
-   /* Indicates whether this feature is taken into account during native cpu
-      detection.  */
-   bool native_detect_p;
  };
  
  /* ISA extensions in AArch64.  */
--- 149,154 ----
*************** static constexpr aarch64_option_extensio
*** 158,167 ****
  {
  #define AARCH64_OPT_EXTENSION(NAME, IDENT, C, D, E, FEATURE_STRING) \
    {NAME, AARCH64_FL_##IDENT, feature_deps::IDENT ().explicit_on, \
!    feature_deps::get_flags_off (feature_deps::root_off_##IDENT), \
!    FEATURE_STRING[0]},
  #include "config/aarch64/aarch64-option-extensions.def"
!   {NULL, 0, 0, 0, false}
  };
  
  struct processor_name_to_arch
--- 156,164 ----
  {
  #define AARCH64_OPT_EXTENSION(NAME, IDENT, C, D, E, FEATURE_STRING) \
    {NAME, AARCH64_FL_##IDENT, feature_deps::IDENT ().explicit_on, \
!    feature_deps::get_flags_off (feature_deps::root_off_##IDENT)},
  #include "config/aarch64/aarch64-option-extensions.def"
!   {NULL, 0, 0, 0}
  };
  
  struct processor_name_to_arch
*************** aarch64_get_extension_string_for_isa_fla
*** 310,315 ****
--- 307,313 ----
       But in order to make the output more readable, it seems better
       to add the strings in definition order.  */
    aarch64_feature_flags added = 0;
+   auto flags_crypto = AARCH64_FL_AES | AARCH64_FL_SHA2;
    for (unsigned int i = ARRAY_SIZE (all_extensions); i-- > 0; )
      {
        auto &opt = all_extensions[i];
*************** aarch64_get_extension_string_for_isa_fla
*** 319,325 ****
  	 per-feature crypto flags.  */
        auto flags = opt.flag_canonical;
        if (flags == AARCH64_FL_CRYPTO)
! 	flags = AARCH64_FL_AES | AARCH64_FL_SHA2;
  
        if ((flags & isa_flags & (explicit_flags | ~current_flags)) == flags)
  	{
--- 317,323 ----
  	 per-feature crypto flags.  */
        auto flags = opt.flag_canonical;
        if (flags == AARCH64_FL_CRYPTO)
! 	flags = flags_crypto;
  
        if ((flags & isa_flags & (explicit_flags | ~current_flags)) == flags)
  	{
*************** aarch64_get_extension_string_for_isa_fla
*** 338,351 ****
       not have an HWCAPs then it shouldn't be taken into account for feature
       detection because one way or another we can't tell if it's available
       or not.  */
    for (auto &opt : all_extensions)
!     if (opt.native_detect_p
! 	&& (opt.flag_canonical & current_flags & ~isa_flags))
!       {
! 	current_flags &= ~opt.flags_off;
! 	outstr += "+no";
! 	outstr += opt.name;
!       }
  
    return outstr;
  }
--- 336,366 ----
       not have an HWCAPs then it shouldn't be taken into account for feature
       detection because one way or another we can't tell if it's available
       or not.  */
+ 
    for (auto &opt : all_extensions)
!     {
!       auto flags = opt.flag_canonical;
!       /* As a special case, don't emit "+noaes" or "+nosha2" when we could emit
! 	 "+nocrypto" instead, in order to support assemblers that predate the
! 	 separate per-feature crypto flags.  Only allow "+nocrypto" when "sm4"
! 	 is not already enabled (to avoid dependending on whether "+nocrypto"
! 	 also disables "sm4").  */
!       if (flags & flags_crypto
! 	  && (flags_crypto & current_flags & ~isa_flags) == flags_crypto
! 	  && !(current_flags & AARCH64_FL_SM4))
! 	  continue;
! 
!       if (flags == AARCH64_FL_CRYPTO)
! 	/* If either crypto flag needs removing here, then both do.  */
! 	flags = flags_crypto;
! 
!       if (flags & current_flags & ~isa_flags)
! 	{
! 	  current_flags &= ~opt.flags_off;
! 	  outstr += "+no";
! 	  outstr += opt.name;
! 	}
!     }
  
    return outstr;
  }
diff -Nrcpad gcc-13.2.0/gcc/common/config/aarch64/cpuinfo.h gcc-14.1.0/gcc/common/config/aarch64/cpuinfo.h
*** gcc-13.2.0/gcc/common/config/aarch64/cpuinfo.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/common/config/aarch64/cpuinfo.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,94 ----
+ /* CPU feature detection for AArch64 architecture.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    This file is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 3, or (at your option) any
+    later version.
+ 
+    This file is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    Under Section 7 of GPL version 3, you are granted additional
+    permissions described in the GCC Runtime Library Exception, version
+    3.1, as published by the Free Software Foundation.
+ 
+    You should have received a copy of the GNU General Public License and
+    a copy of the GCC Runtime Library Exception along with this program;
+    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ /* This enum is used in libgcc feature detection, and in the function
+    multiversioning implementation in aarch64.cc.  The enum should use the same
+    values as the corresponding enum in LLVM's compiler-rt, to faciliate
+    compatibility between compilers.  */
+ 
+ enum CPUFeatures {
+   FEAT_RNG,
+   FEAT_FLAGM,
+   FEAT_FLAGM2,
+   FEAT_FP16FML,
+   FEAT_DOTPROD,
+   FEAT_SM4,
+   FEAT_RDM,
+   FEAT_LSE,
+   FEAT_FP,
+   FEAT_SIMD,
+   FEAT_CRC,
+   FEAT_SHA1,
+   FEAT_SHA2,
+   FEAT_SHA3,
+   FEAT_AES,
+   FEAT_PMULL,
+   FEAT_FP16,
+   FEAT_DIT,
+   FEAT_DPB,
+   FEAT_DPB2,
+   FEAT_JSCVT,
+   FEAT_FCMA,
+   FEAT_RCPC,
+   FEAT_RCPC2,
+   FEAT_FRINTTS,
+   FEAT_DGH,
+   FEAT_I8MM,
+   FEAT_BF16,
+   FEAT_EBF16,
+   FEAT_RPRES,
+   FEAT_SVE,
+   FEAT_SVE_BF16,
+   FEAT_SVE_EBF16,
+   FEAT_SVE_I8MM,
+   FEAT_SVE_F32MM,
+   FEAT_SVE_F64MM,
+   FEAT_SVE2,
+   FEAT_SVE_AES,
+   FEAT_SVE_PMULL128,
+   FEAT_SVE_BITPERM,
+   FEAT_SVE_SHA3,
+   FEAT_SVE_SM4,
+   FEAT_SME,
+   FEAT_MEMTAG,
+   FEAT_MEMTAG2,
+   FEAT_MEMTAG3,
+   FEAT_SB,
+   FEAT_PREDRES,
+   FEAT_SSBS,
+   FEAT_SSBS2,
+   FEAT_BTI,
+   FEAT_LS64,
+   FEAT_LS64_V,
+   FEAT_LS64_ACCDATA,
+   FEAT_WFXT,
+   FEAT_SME_F64,
+   FEAT_SME_I64,
+   FEAT_SME2,
+   FEAT_RCPC3,
+   FEAT_MAX,
+   FEAT_EXT = 62, /* Reserved to indicate presence of additional features field
+ 		    in __aarch64_cpu_features.  */
+   FEAT_INIT      /* Used as flag of features initialization completion.  */
+ };
diff -Nrcpad gcc-13.2.0/gcc/common/config/alpha/alpha-common.cc gcc-14.1.0/gcc/common/config/alpha/alpha-common.cc
*** gcc-13.2.0/gcc/common/config/alpha/alpha-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/alpha/alpha-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for DEC Alpha.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for DEC Alpha.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/arc/arc-common.cc gcc-14.1.0/gcc/common/config/arc/arc-common.cc
*** gcc-13.2.0/gcc/common/config/arc/arc-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/arc/arc-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Synopsys DesignWare ARC
!    Copyright (C) 1994-2023 Free Software Foundation, Inc.
     Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
  		on behalf of Synopsys Inc.
  		Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>
--- 1,5 ----
  /* Common hooks for Synopsys DesignWare ARC
!    Copyright (C) 1994-2024 Free Software Foundation, Inc.
     Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
  		on behalf of Synopsys Inc.
  		Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>
*************** static const struct default_options arc_
*** 46,52 ****
    {
      { OPT_LEVELS_ALL, OPT_msize_level_, NULL, 1 },
      { OPT_LEVELS_ALL, OPT_mearly_cbranchsi, NULL, 1 },
-     { OPT_LEVELS_ALL, OPT_mbbit_peephole, NULL, 1 },
      { OPT_LEVELS_SIZE, OPT_ftree_loop_optimize, NULL, 0},
      { OPT_LEVELS_SIZE, OPT_fmove_loop_invariants, NULL, 0},
      { OPT_LEVELS_SIZE, OPT_fbranch_count_reg, NULL, 0},
--- 46,51 ----
diff -Nrcpad gcc-13.2.0/gcc/common/config/arm/arm-common.cc gcc-14.1.0/gcc/common/config/arm/arm-common.cc
*** gcc-13.2.0/gcc/common/config/arm/arm-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/arm/arm-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for ARM.
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for ARM.
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/avr/avr-common.cc gcc-14.1.0/gcc/common/config/avr/avr-common.cc
*** gcc-13.2.0/gcc/common/config/avr/avr-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/avr/avr-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for ATMEL AVR.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for ATMEL AVR.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 29,45 ****
  /* Implement TARGET_OPTION_OPTIMIZATION_TABLE.  */
  static const struct default_options avr_option_optimization_table[] =
    {
-     // With -fdelete-null-pointer-checks option, the compiler assumes
-     // that dereferencing of a null pointer would halt the program.
-     // For AVR this assumption is not true and a program can safely
-     // dereference null pointers.  Changes made by this option may not
-     // work properly for AVR.  So disable this option.
-     { OPT_LEVELS_ALL, OPT_fdelete_null_pointer_checks, NULL, 0 },
      // The only effect of -fcaller-saves might be that it triggers
      // a frame without need when it tries to be smart around calls.
      { OPT_LEVELS_ALL, OPT_fcaller_saves, NULL, 0 },
      { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_mgas_isr_prologues, NULL, 1 },
      { OPT_LEVELS_1_PLUS, OPT_mmain_is_OS_task, NULL, 1 },
      // Stick to the "old" placement of the subreg lowering pass.
      { OPT_LEVELS_1_PLUS, OPT_fsplit_wide_types_early, NULL, 1 },
      /* Allow optimizer to introduce store data races. This used to be the
--- 29,41 ----
  /* Implement TARGET_OPTION_OPTIMIZATION_TABLE.  */
  static const struct default_options avr_option_optimization_table[] =
    {
      // The only effect of -fcaller-saves might be that it triggers
      // a frame without need when it tries to be smart around calls.
      { OPT_LEVELS_ALL, OPT_fcaller_saves, NULL, 0 },
      { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_mgas_isr_prologues, NULL, 1 },
      { OPT_LEVELS_1_PLUS, OPT_mmain_is_OS_task, NULL, 1 },
+     { OPT_LEVELS_1_PLUS, OPT_mfuse_add_, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_mfuse_add_, NULL, 2 },
      // Stick to the "old" placement of the subreg lowering pass.
      { OPT_LEVELS_1_PLUS, OPT_fsplit_wide_types_early, NULL, 1 },
      /* Allow optimizer to introduce store data races. This used to be the
diff -Nrcpad gcc-13.2.0/gcc/common/config/bfin/bfin-common.cc gcc-14.1.0/gcc/common/config/bfin/bfin-common.cc
*** gcc-13.2.0/gcc/common/config/bfin/bfin-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/bfin/bfin-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Blackfin.
!    Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Blackfin.
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/bpf/bpf-common.cc gcc-14.1.0/gcc/common/config/bpf/bpf-common.cc
*** gcc-13.2.0/gcc/common/config/bpf/bpf-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/bpf/bpf-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for eBPF.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for eBPF.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/c6x/c6x-common.cc gcc-14.1.0/gcc/common/config/c6x/c6x-common.cc
*** gcc-13.2.0/gcc/common/config/c6x/c6x-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/c6x/c6x-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* TI C6X common hooks.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* TI C6X common hooks.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/cris/cris-common.cc gcc-14.1.0/gcc/common/config/cris/cris-common.cc
*** gcc-13.2.0/gcc/common/config/cris/cris-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/cris/cris-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for CRIS.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for CRIS.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/csky/csky-common.cc gcc-14.1.0/gcc/common/config/csky/csky-common.cc
*** gcc-13.2.0/gcc/common/config/csky/csky-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/csky/csky-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for CSKY.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* Common hooks for CSKY.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/common/config/default-common.cc gcc-14.1.0/gcc/common/config/default-common.cc
*** gcc-13.2.0/gcc/common/config/default-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/default-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Default common target hooks initializer.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Default common target hooks initializer.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/epiphany/epiphany-common.cc gcc-14.1.0/gcc/common/config/epiphany/epiphany-common.cc
*** gcc-13.2.0/gcc/common/config/epiphany/epiphany-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/epiphany/epiphany-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Adapteva Epiphany
!    Copyright (C) 1994-2023 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Common hooks for Adapteva Epiphany
!    Copyright (C) 1994-2024 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/common/config/fr30/fr30-common.cc gcc-14.1.0/gcc/common/config/fr30/fr30-common.cc
*** gcc-13.2.0/gcc/common/config/fr30/fr30-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/fr30/fr30-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for FR30.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for FR30.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/frv/frv-common.cc gcc-14.1.0/gcc/common/config/frv/frv-common.cc
*** gcc-13.2.0/gcc/common/config/frv/frv-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/frv/frv-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 1997-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 1997-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/gcn/gcn-common.cc gcc-14.1.0/gcc/common/config/gcn/gcn-common.cc
*** gcc-13.2.0/gcc/common/config/gcn/gcn-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/gcn/gcn-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for GCN
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
--- 1,5 ----
  /* Common hooks for GCN
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
diff -Nrcpad gcc-13.2.0/gcc/common/config/h8300/h8300-common.cc gcc-14.1.0/gcc/common/config/h8300/h8300-common.cc
*** gcc-13.2.0/gcc/common/config/h8300/h8300-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/h8300/h8300-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Renesas H8/300.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Renesas H8/300.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/i386/cpuinfo.h gcc-14.1.0/gcc/common/config/i386/cpuinfo.h
*** gcc-13.2.0/gcc/common/config/i386/cpuinfo.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/i386/cpuinfo.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Get CPU type and Features for x86 processors.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by Sriraman Tallam (tmsriram@google.com)
  
  This file is part of GCC.
--- 1,5 ----
  /* Get CPU type and Features for x86 processors.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Sriraman Tallam (tmsriram@google.com)
  
  This file is part of GCC.
*************** get_amd_cpu (struct __processor_model *c
*** 310,315 ****
--- 310,331 ----
  	  cpu_model->__cpu_subtype = AMDFAM19H_ZNVER3;
  	}
        break;
+     case 0x1a:
+       cpu_model->__cpu_type = AMDFAM1AH;
+       if (model <= 0x77)
+ 	{
+ 	  cpu = "znver5";
+ 	  CHECK___builtin_cpu_is ("znver5");
+ 	  cpu_model->__cpu_subtype = AMDFAM1AH_ZNVER5;
+ 	}
+       else if (has_cpu_feature (cpu_model, cpu_features2,
+ 				FEATURE_AVX512VP2INTERSECT))
+ 	{
+ 	  cpu = "znver5";
+ 	  CHECK___builtin_cpu_is ("znver5");
+ 	  cpu_model->__cpu_subtype = AMDFAM1AH_ZNVER5;
+ 	}
+       break;
      default:
        break;
      }
*************** get_intel_cpu (struct __processor_model
*** 463,469 ****
        cpu_model->__cpu_subtype = INTEL_COREI7_SKYLAKE;
        break;
      case 0xa7:
-     case 0xa8:
        /* Rocket Lake.  */
        cpu = "rocketlake";
        CHECK___builtin_cpu_is ("corei7");
--- 479,484 ----
*************** get_intel_cpu (struct __processor_model
*** 534,544 ****
        cpu_model->__cpu_type = INTEL_COREI7;
        cpu_model->__cpu_subtype = INTEL_COREI7_TIGERLAKE;
        break;
      case 0x97:
      case 0x9a:
-     case 0xbf:
        /* Alder Lake.  */
      case 0xb7:
        /* Raptor Lake.  */
      case 0xaa:
      case 0xac:
--- 549,563 ----
        cpu_model->__cpu_type = INTEL_COREI7;
        cpu_model->__cpu_subtype = INTEL_COREI7_TIGERLAKE;
        break;
+ 
+     case 0xbe:
+       /* Alder Lake N, E-core only.  */
      case 0x97:
      case 0x9a:
        /* Alder Lake.  */
      case 0xb7:
+     case 0xba:
+     case 0xbf:
        /* Raptor Lake.  */
      case 0xaa:
      case 0xac:
*************** get_intel_cpu (struct __processor_model
*** 587,592 ****
--- 606,643 ----
        CHECK___builtin_cpu_is ("grandridge");
        cpu_model->__cpu_type = INTEL_GRANDRIDGE;
        break;
+     case 0xc5:
+       /* Arrow Lake.  */
+       cpu = "arrowlake";
+       CHECK___builtin_cpu_is ("corei7");
+       CHECK___builtin_cpu_is ("arrowlake");
+       cpu_model->__cpu_type = INTEL_COREI7;
+       cpu_model->__cpu_subtype = INTEL_COREI7_ARROWLAKE;
+       break;
+     case 0xc6:
+       /* Arrow Lake S.  */
+     case 0xbd:
+       /* Lunar Lake.  */
+       cpu = "arrowlake-s";
+       CHECK___builtin_cpu_is ("corei7");
+       CHECK___builtin_cpu_is ("arrowlake-s");
+       cpu_model->__cpu_type = INTEL_COREI7;
+       cpu_model->__cpu_subtype = INTEL_COREI7_ARROWLAKE_S;
+       break;
+     case 0xdd:
+       /* Clearwater Forest.  */
+       cpu = "clearwaterforest";
+       CHECK___builtin_cpu_is ("clearwaterforest");
+       cpu_model->__cpu_type = INTEL_CLEARWATERFOREST;
+       break;
+     case 0xcc:
+       /* Panther Lake.  */
+       cpu = "pantherlake";
+       CHECK___builtin_cpu_is ("corei7");
+       CHECK___builtin_cpu_is ("pantherlake");
+       cpu_model->__cpu_type = INTEL_COREI7;
+       cpu_model->__cpu_subtype = INTEL_COREI7_PANTHERLAKE;
+       break;
      case 0x17:
      case 0x1d:
        /* Penryn.  */
*************** get_zhaoxin_cpu (struct __processor_mode
*** 628,633 ****
--- 679,690 ----
  	  reset_cpu_feature (cpu_model, cpu_features2, FEATURE_F16C);
  	  cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_LUJIAZUI;
  	}
+      else if (model >= 0x5b)
+ 	{
+ 	  cpu = "yongfeng";
+ 	  CHECK___builtin_cpu_is ("yongfeng");
+ 	  cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_YONGFENG;
+ 	}
        break;
      default:
        break;
*************** get_available_features (struct __process
*** 657,662 ****
--- 714,720 ----
  #define XSTATE_HI_ZMM			0x80
  #define XSTATE_TILECFG			0x20000
  #define XSTATE_TILEDATA		0x40000
+ #define XSTATE_APX_F			0x80000
  
  #define XCR_AVX_ENABLED_MASK \
    (XSTATE_SSE | XSTATE_YMM)
*************** get_available_features (struct __process
*** 664,676 ****
    (XSTATE_SSE | XSTATE_YMM | XSTATE_OPMASK | XSTATE_ZMM | XSTATE_HI_ZMM)
  #define XCR_AMX_ENABLED_MASK \
    (XSTATE_TILECFG | XSTATE_TILEDATA)
  
!   /* Check if AVX and AVX512 are usable.  */
    int avx_usable = 0;
    int avx512_usable = 0;
    int amx_usable = 0;
    /* Check if KL is usable.  */
    int has_kl = 0;
    if ((ecx & bit_OSXSAVE))
      {
        /* Check if XMM, YMM, OPMASK, upper 256 bits of ZMM0-ZMM15 and
--- 722,739 ----
    (XSTATE_SSE | XSTATE_YMM | XSTATE_OPMASK | XSTATE_ZMM | XSTATE_HI_ZMM)
  #define XCR_AMX_ENABLED_MASK \
    (XSTATE_TILECFG | XSTATE_TILEDATA)
+ #define XCR_APX_F_ENABLED_MASK XSTATE_APX_F
  
!   /* Check if AVX, AVX512 and APX are usable.  */
    int avx_usable = 0;
    int avx512_usable = 0;
    int amx_usable = 0;
+   int apx_usable = 0;
    /* Check if KL is usable.  */
    int has_kl = 0;
+   /* Record AVX10 version.  */
+   int avx10_set = 0;
+   int version = 0;
    if ((ecx & bit_OSXSAVE))
      {
        /* Check if XMM, YMM, OPMASK, upper 256 bits of ZMM0-ZMM15 and
*************** get_available_features (struct __process
*** 688,693 ****
--- 751,758 ----
  	}
        amx_usable = ((xcrlow & XCR_AMX_ENABLED_MASK)
  		    == XCR_AMX_ENABLED_MASK);
+       apx_usable = ((xcrlow & XCR_APX_F_ENABLED_MASK)
+ 		    == XCR_APX_F_ENABLED_MASK);
      }
  
  #define set_feature(f) \
*************** get_available_features (struct __process
*** 745,751 ****
    /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */
    if (max_cpuid_level >= 7)
      {
!       __cpuid_count (7, 0, eax, ebx, ecx, edx);
        if (ebx & bit_BMI)
  	set_feature (FEATURE_BMI);
        if (ebx & bit_SGX)
--- 810,818 ----
    /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */
    if (max_cpuid_level >= 7)
      {
!       unsigned int max_subleaf_level;
! 
!       __cpuid_count (7, 0, max_subleaf_level, ebx, ecx, edx);
        if (ebx & bit_BMI)
  	set_feature (FEATURE_BMI);
        if (ebx & bit_SGX)
*************** get_available_features (struct __process
*** 857,893 ****
  	    set_feature (FEATURE_AVX512FP16);
  	}
  
!       __cpuid_count (7, 1, eax, ebx, ecx, edx);
!       if (eax & bit_HRESET)
! 	set_feature (FEATURE_HRESET);
!       if (eax & bit_CMPCCXADD)
! 	set_feature(FEATURE_CMPCCXADD);
!       if (edx & bit_PREFETCHI)
! 	set_feature (FEATURE_PREFETCHI);
!       if (eax & bit_RAOINT)
! 	set_feature (FEATURE_RAOINT);
!       if (avx_usable)
! 	{
! 	  if (eax & bit_AVXVNNI)
! 	    set_feature (FEATURE_AVXVNNI);
! 	  if (eax & bit_AVXIFMA)
! 	    set_feature (FEATURE_AVXIFMA);
! 	  if (edx & bit_AVXVNNIINT8)
! 	    set_feature (FEATURE_AVXVNNIINT8);
! 	  if (edx & bit_AVXNECONVERT)
! 	    set_feature (FEATURE_AVXNECONVERT);
! 	}
!       if (avx512_usable)
! 	{
! 	  if (eax & bit_AVX512BF16)
! 	    set_feature (FEATURE_AVX512BF16);
! 	}
!       if (amx_usable)
  	{
! 	  if (eax & bit_AMX_FP16)
! 	    set_feature (FEATURE_AMX_FP16);
! 	  if (edx & bit_AMX_COMPLEX)
! 	    set_feature (FEATURE_AMX_COMPLEX);
  	}
      }
  
--- 924,981 ----
  	    set_feature (FEATURE_AVX512FP16);
  	}
  
!       if (max_subleaf_level >= 1)
  	{
! 	  __cpuid_count (7, 1, eax, ebx, ecx, edx);
! 	  if (eax & bit_HRESET)
! 	    set_feature (FEATURE_HRESET);
! 	  if (eax & bit_CMPCCXADD)
! 	    set_feature(FEATURE_CMPCCXADD);
! 	  if (edx & bit_PREFETCHI)
! 	    set_feature (FEATURE_PREFETCHI);
! 	  if (eax & bit_RAOINT)
! 	    set_feature (FEATURE_RAOINT);
! 	  if (edx & bit_USER_MSR)
! 	    set_feature (FEATURE_USER_MSR);
! 	  if (avx_usable)
! 	    {
! 	      if (eax & bit_AVXVNNI)
! 		set_feature (FEATURE_AVXVNNI);
! 	      if (eax & bit_AVXIFMA)
! 		set_feature (FEATURE_AVXIFMA);
! 	      if (edx & bit_AVXVNNIINT8)
! 		set_feature (FEATURE_AVXVNNIINT8);
! 	      if (edx & bit_AVXNECONVERT)
! 		set_feature (FEATURE_AVXNECONVERT);
! 	      if (edx & bit_AVXVNNIINT16)
! 		set_feature (FEATURE_AVXVNNIINT16);
! 	      if (eax & bit_SM3)
! 		set_feature (FEATURE_SM3);
! 	      if (eax & bit_SHA512)
! 		set_feature (FEATURE_SHA512);
! 	      if (eax & bit_SM4)
! 		set_feature (FEATURE_SM4);
! 	    }
! 	  if (avx512_usable)
! 	    {
! 	      if (eax & bit_AVX512BF16)
! 		set_feature (FEATURE_AVX512BF16);
! 	      /* AVX10 has the same XSTATE with AVX512.  */
! 	      if (edx & bit_AVX10)
! 		avx10_set = 1;
! 	    }
! 	  if (amx_usable)
! 	    {
! 	      if (eax & bit_AMX_FP16)
! 		set_feature (FEATURE_AMX_FP16);
! 	      if (edx & bit_AMX_COMPLEX)
! 		set_feature (FEATURE_AMX_COMPLEX);
! 	    }
! 	  if (apx_usable)
! 	    {
! 	      if (edx & bit_APX_F)
! 		set_feature (FEATURE_APX_F);
! 	    }
  	}
      }
  
*************** get_available_features (struct __process
*** 926,931 ****
--- 1014,1046 ----
  	}
      }
  
+   /* Get Advanced Features at level 0x24 (eax = 0x24).  */
+   if (avx10_set && max_cpuid_level >= 0x24)
+     {
+       __cpuid (0x24, eax, ebx, ecx, edx);
+       version = ebx & 0xff;
+       if (ebx & bit_AVX10_256)
+ 	switch (version)
+ 	  {
+ 	  case 1:
+ 	    set_feature (FEATURE_AVX10_1_256);
+ 	    break;
+ 	  default:
+ 	    set_feature (FEATURE_AVX10_1_256);
+ 	    break;
+ 	  }
+       if (ebx & bit_AVX10_512)
+ 	switch (version)
+ 	  {
+ 	  case 1:
+ 	    set_feature (FEATURE_AVX10_1_512);
+ 	    break;
+ 	  default:
+ 	    set_feature (FEATURE_AVX10_1_512);
+ 	    break;
+ 	  }
+     }
+ 
    /* Check cpuid level of extended features.  */
    __cpuid (0x80000000, ext_level, ebx, ecx, edx);
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/i386/i386-common.cc gcc-14.1.0/gcc/common/config/i386/i386-common.cc
*** gcc-13.2.0/gcc/common/config/i386/i386-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/i386/i386-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* IA-32 common hooks.
!    Copyright (C) 1988-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* IA-32 common hooks.
!    Copyright (C) 1988-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 82,88 ****
  #define OPTION_MASK_ISA2_AVX5124FMAPS_SET OPTION_MASK_ISA2_AVX5124FMAPS
  #define OPTION_MASK_ISA2_AVX5124VNNIW_SET OPTION_MASK_ISA2_AVX5124VNNIW
  #define OPTION_MASK_ISA_AVX512VBMI2_SET \
!   (OPTION_MASK_ISA_AVX512VBMI2 | OPTION_MASK_ISA_AVX512F_SET)
  #define OPTION_MASK_ISA_AVX512FP16_SET OPTION_MASK_ISA_AVX512BW_SET
  #define OPTION_MASK_ISA2_AVX512FP16_SET OPTION_MASK_ISA2_AVX512FP16
  #define OPTION_MASK_ISA_AVX512VNNI_SET \
--- 82,88 ----
  #define OPTION_MASK_ISA2_AVX5124FMAPS_SET OPTION_MASK_ISA2_AVX5124FMAPS
  #define OPTION_MASK_ISA2_AVX5124VNNIW_SET OPTION_MASK_ISA2_AVX5124VNNIW
  #define OPTION_MASK_ISA_AVX512VBMI2_SET \
!   (OPTION_MASK_ISA_AVX512VBMI2 | OPTION_MASK_ISA_AVX512BW_SET)
  #define OPTION_MASK_ISA_AVX512FP16_SET OPTION_MASK_ISA_AVX512BW_SET
  #define OPTION_MASK_ISA2_AVX512FP16_SET OPTION_MASK_ISA2_AVX512FP16
  #define OPTION_MASK_ISA_AVX512VNNI_SET \
*************** along with GCC; see the file COPYING3.
*** 91,97 ****
  #define OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET \
    (OPTION_MASK_ISA_AVX512VPOPCNTDQ | OPTION_MASK_ISA_AVX512F_SET)
  #define OPTION_MASK_ISA_AVX512BITALG_SET \
!   (OPTION_MASK_ISA_AVX512BITALG | OPTION_MASK_ISA_AVX512F_SET)
  #define OPTION_MASK_ISA2_AVX512BF16_SET OPTION_MASK_ISA2_AVX512BF16
  #define OPTION_MASK_ISA_RTM_SET OPTION_MASK_ISA_RTM
  #define OPTION_MASK_ISA_PRFCHW_SET OPTION_MASK_ISA_PRFCHW
--- 91,97 ----
  #define OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET \
    (OPTION_MASK_ISA_AVX512VPOPCNTDQ | OPTION_MASK_ISA_AVX512F_SET)
  #define OPTION_MASK_ISA_AVX512BITALG_SET \
!   (OPTION_MASK_ISA_AVX512BITALG | OPTION_MASK_ISA_AVX512BW_SET)
  #define OPTION_MASK_ISA2_AVX512BF16_SET OPTION_MASK_ISA2_AVX512BF16
  #define OPTION_MASK_ISA_RTM_SET OPTION_MASK_ISA_RTM
  #define OPTION_MASK_ISA_PRFCHW_SET OPTION_MASK_ISA_PRFCHW
*************** along with GCC; see the file COPYING3.
*** 107,124 ****
  #define OPTION_MASK_ISA2_AVX512VP2INTERSECT_SET OPTION_MASK_ISA2_AVX512VP2INTERSECT
  #define OPTION_MASK_ISA2_AMX_TILE_SET OPTION_MASK_ISA2_AMX_TILE
  #define OPTION_MASK_ISA2_AMX_INT8_SET \
!   (OPTION_MASK_ISA2_AMX_TILE | OPTION_MASK_ISA2_AMX_INT8)
  #define OPTION_MASK_ISA2_AMX_BF16_SET \
!   (OPTION_MASK_ISA2_AMX_TILE | OPTION_MASK_ISA2_AMX_BF16)
  #define OPTION_MASK_ISA2_AVXVNNIINT8_SET OPTION_MASK_ISA2_AVXVNNIINT8
  #define OPTION_MASK_ISA2_AVXNECONVERT_SET OPTION_MASK_ISA2_AVXNECONVERT
  #define OPTION_MASK_ISA2_CMPCCXADD_SET OPTION_MASK_ISA2_CMPCCXADD
  #define OPTION_MASK_ISA2_AMX_FP16_SET \
!   (OPTION_MASK_ISA2_AMX_TILE | OPTION_MASK_ISA2_AMX_FP16)
  #define OPTION_MASK_ISA2_PREFETCHI_SET OPTION_MASK_ISA2_PREFETCHI
  #define OPTION_MASK_ISA2_RAOINT_SET OPTION_MASK_ISA2_RAOINT
  #define OPTION_MASK_ISA2_AMX_COMPLEX_SET \
!   (OPTION_MASK_ISA2_AMX_TILE | OPTION_MASK_ISA2_AMX_COMPLEX)
  
  /* SSE4 includes both SSE4.1 and SSE4.2. -msse4 should be the same
     as -msse4.2.  */
--- 107,134 ----
  #define OPTION_MASK_ISA2_AVX512VP2INTERSECT_SET OPTION_MASK_ISA2_AVX512VP2INTERSECT
  #define OPTION_MASK_ISA2_AMX_TILE_SET OPTION_MASK_ISA2_AMX_TILE
  #define OPTION_MASK_ISA2_AMX_INT8_SET \
!   (OPTION_MASK_ISA2_AMX_TILE_SET | OPTION_MASK_ISA2_AMX_INT8)
  #define OPTION_MASK_ISA2_AMX_BF16_SET \
!   (OPTION_MASK_ISA2_AMX_TILE_SET | OPTION_MASK_ISA2_AMX_BF16)
  #define OPTION_MASK_ISA2_AVXVNNIINT8_SET OPTION_MASK_ISA2_AVXVNNIINT8
  #define OPTION_MASK_ISA2_AVXNECONVERT_SET OPTION_MASK_ISA2_AVXNECONVERT
  #define OPTION_MASK_ISA2_CMPCCXADD_SET OPTION_MASK_ISA2_CMPCCXADD
  #define OPTION_MASK_ISA2_AMX_FP16_SET \
!   (OPTION_MASK_ISA2_AMX_TILE_SET | OPTION_MASK_ISA2_AMX_FP16)
  #define OPTION_MASK_ISA2_PREFETCHI_SET OPTION_MASK_ISA2_PREFETCHI
  #define OPTION_MASK_ISA2_RAOINT_SET OPTION_MASK_ISA2_RAOINT
  #define OPTION_MASK_ISA2_AMX_COMPLEX_SET \
!   (OPTION_MASK_ISA2_AMX_TILE_SET | OPTION_MASK_ISA2_AMX_COMPLEX)
! #define OPTION_MASK_ISA2_AVXVNNIINT16_SET OPTION_MASK_ISA2_AVXVNNIINT16
! #define OPTION_MASK_ISA2_SM3_SET OPTION_MASK_ISA2_SM3
! #define OPTION_MASK_ISA2_SHA512_SET OPTION_MASK_ISA2_SHA512
! #define OPTION_MASK_ISA2_SM4_SET OPTION_MASK_ISA2_SM4
! #define OPTION_MASK_ISA2_APX_F_SET OPTION_MASK_ISA2_APX_F
! #define OPTION_MASK_ISA2_EVEX512_SET OPTION_MASK_ISA2_EVEX512
! #define OPTION_MASK_ISA2_USER_MSR_SET OPTION_MASK_ISA2_USER_MSR
! #define OPTION_MASK_ISA2_AVX10_1_256_SET OPTION_MASK_ISA2_AVX10_1_256
! #define OPTION_MASK_ISA2_AVX10_1_512_SET \
!   (OPTION_MASK_ISA2_AVX10_1_256_SET | OPTION_MASK_ISA2_AVX10_1_512)
  
  /* SSE4 includes both SSE4.1 and SSE4.2. -msse4 should be the same
     as -msse4.2.  */
*************** along with GCC; see the file COPYING3.
*** 143,149 ****
    (OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2_SET)
  
  #define OPTION_MASK_ISA_ABM_SET \
!   (OPTION_MASK_ISA_ABM | OPTION_MASK_ISA_POPCNT)
  
  #define OPTION_MASK_ISA2_PCONFIG_SET OPTION_MASK_ISA2_PCONFIG
  #define OPTION_MASK_ISA2_WBNOINVD_SET OPTION_MASK_ISA2_WBNOINVD
--- 153,159 ----
    (OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2_SET)
  
  #define OPTION_MASK_ISA_ABM_SET \
!   (OPTION_MASK_ISA_ABM | OPTION_MASK_ISA_POPCNT_SET)
  
  #define OPTION_MASK_ISA2_PCONFIG_SET OPTION_MASK_ISA2_PCONFIG
  #define OPTION_MASK_ISA2_WBNOINVD_SET OPTION_MASK_ISA2_WBNOINVD
*************** along with GCC; see the file COPYING3.
*** 171,177 ****
  #define OPTION_MASK_ISA_GFNI_SET OPTION_MASK_ISA_GFNI
  #define OPTION_MASK_ISA_SHSTK_SET OPTION_MASK_ISA_SHSTK
  #define OPTION_MASK_ISA2_VAES_SET OPTION_MASK_ISA2_VAES
! #define OPTION_MASK_ISA_VPCLMULQDQ_SET OPTION_MASK_ISA_VPCLMULQDQ
  #define OPTION_MASK_ISA_MOVDIRI_SET OPTION_MASK_ISA_MOVDIRI
  #define OPTION_MASK_ISA2_MOVDIR64B_SET OPTION_MASK_ISA2_MOVDIR64B
  #define OPTION_MASK_ISA2_WAITPKG_SET OPTION_MASK_ISA2_WAITPKG
--- 181,189 ----
  #define OPTION_MASK_ISA_GFNI_SET OPTION_MASK_ISA_GFNI
  #define OPTION_MASK_ISA_SHSTK_SET OPTION_MASK_ISA_SHSTK
  #define OPTION_MASK_ISA2_VAES_SET OPTION_MASK_ISA2_VAES
! #define OPTION_MASK_ISA_VPCLMULQDQ_SET \
!   (OPTION_MASK_ISA_VPCLMULQDQ | OPTION_MASK_ISA_PCLMUL_SET \
!    | OPTION_MASK_ISA_AVX_SET)
  #define OPTION_MASK_ISA_MOVDIRI_SET OPTION_MASK_ISA_MOVDIRI
  #define OPTION_MASK_ISA2_MOVDIR64B_SET OPTION_MASK_ISA2_MOVDIR64B
  #define OPTION_MASK_ISA2_WAITPKG_SET OPTION_MASK_ISA2_WAITPKG
*************** along with GCC; see the file COPYING3.
*** 211,217 ****
  #define OPTION_MASK_ISA_AVX_UNSET \
    (OPTION_MASK_ISA_AVX | OPTION_MASK_ISA_FMA_UNSET \
     | OPTION_MASK_ISA_FMA4_UNSET | OPTION_MASK_ISA_F16C_UNSET \
!    | OPTION_MASK_ISA_AVX2_UNSET )
  #define OPTION_MASK_ISA_FMA_UNSET OPTION_MASK_ISA_FMA
  #define OPTION_MASK_ISA_FXSR_UNSET OPTION_MASK_ISA_FXSR
  #define OPTION_MASK_ISA_XSAVE_UNSET \
--- 223,229 ----
  #define OPTION_MASK_ISA_AVX_UNSET \
    (OPTION_MASK_ISA_AVX | OPTION_MASK_ISA_FMA_UNSET \
     | OPTION_MASK_ISA_FMA4_UNSET | OPTION_MASK_ISA_F16C_UNSET \
!    | OPTION_MASK_ISA_AVX2_UNSET | OPTION_MASK_ISA_VPCLMULQDQ_UNSET)
  #define OPTION_MASK_ISA_FMA_UNSET OPTION_MASK_ISA_FMA
  #define OPTION_MASK_ISA_FXSR_UNSET OPTION_MASK_ISA_FXSR
  #define OPTION_MASK_ISA_XSAVE_UNSET \
*************** along with GCC; see the file COPYING3.
*** 226,247 ****
  #define OPTION_MASK_ISA2_AVX2_UNSET \
    (OPTION_MASK_ISA2_AVXIFMA_UNSET | OPTION_MASK_ISA2_AVXVNNI_UNSET \
     | OPTION_MASK_ISA2_AVXVNNIINT8_UNSET | OPTION_MASK_ISA2_AVXNECONVERT_UNSET \
!    | OPTION_MASK_ISA2_AVX512F_UNSET)
  #define OPTION_MASK_ISA_AVX512F_UNSET \
    (OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_AVX512CD_UNSET \
     | OPTION_MASK_ISA_AVX512PF_UNSET | OPTION_MASK_ISA_AVX512ER_UNSET \
     | OPTION_MASK_ISA_AVX512DQ_UNSET | OPTION_MASK_ISA_AVX512BW_UNSET \
     | OPTION_MASK_ISA_AVX512VL_UNSET | OPTION_MASK_ISA_AVX512IFMA_UNSET \
-    | OPTION_MASK_ISA_AVX512VBMI2_UNSET \
     | OPTION_MASK_ISA_AVX512VNNI_UNSET \
!    | OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET \
!    | OPTION_MASK_ISA_AVX512BITALG_UNSET)
  #define OPTION_MASK_ISA_AVX512CD_UNSET OPTION_MASK_ISA_AVX512CD
  #define OPTION_MASK_ISA_AVX512PF_UNSET OPTION_MASK_ISA_AVX512PF
  #define OPTION_MASK_ISA_AVX512ER_UNSET OPTION_MASK_ISA_AVX512ER
  #define OPTION_MASK_ISA_AVX512DQ_UNSET OPTION_MASK_ISA_AVX512DQ
  #define OPTION_MASK_ISA_AVX512BW_UNSET \
!   (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VBMI_UNSET)
  #define OPTION_MASK_ISA_AVX512VL_UNSET OPTION_MASK_ISA_AVX512VL
  #define OPTION_MASK_ISA_AVX512IFMA_UNSET OPTION_MASK_ISA_AVX512IFMA
  #define OPTION_MASK_ISA2_AVXIFMA_UNSET OPTION_MASK_ISA2_AVXIFMA
--- 238,259 ----
  #define OPTION_MASK_ISA2_AVX2_UNSET \
    (OPTION_MASK_ISA2_AVXIFMA_UNSET | OPTION_MASK_ISA2_AVXVNNI_UNSET \
     | OPTION_MASK_ISA2_AVXVNNIINT8_UNSET | OPTION_MASK_ISA2_AVXNECONVERT_UNSET \
!    | OPTION_MASK_ISA2_AVXVNNIINT16_UNSET | OPTION_MASK_ISA2_AVX512F_UNSET \
!    | OPTION_MASK_ISA2_AVX10_1_256_UNSET)
  #define OPTION_MASK_ISA_AVX512F_UNSET \
    (OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_AVX512CD_UNSET \
     | OPTION_MASK_ISA_AVX512PF_UNSET | OPTION_MASK_ISA_AVX512ER_UNSET \
     | OPTION_MASK_ISA_AVX512DQ_UNSET | OPTION_MASK_ISA_AVX512BW_UNSET \
     | OPTION_MASK_ISA_AVX512VL_UNSET | OPTION_MASK_ISA_AVX512IFMA_UNSET \
     | OPTION_MASK_ISA_AVX512VNNI_UNSET \
!    | OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET)
  #define OPTION_MASK_ISA_AVX512CD_UNSET OPTION_MASK_ISA_AVX512CD
  #define OPTION_MASK_ISA_AVX512PF_UNSET OPTION_MASK_ISA_AVX512PF
  #define OPTION_MASK_ISA_AVX512ER_UNSET OPTION_MASK_ISA_AVX512ER
  #define OPTION_MASK_ISA_AVX512DQ_UNSET OPTION_MASK_ISA_AVX512DQ
  #define OPTION_MASK_ISA_AVX512BW_UNSET \
!   (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VBMI_UNSET \
!    | OPTION_MASK_ISA_AVX512VBMI2_UNSET | OPTION_MASK_ISA_AVX512BITALG_UNSET)
  #define OPTION_MASK_ISA_AVX512VL_UNSET OPTION_MASK_ISA_AVX512VL
  #define OPTION_MASK_ISA_AVX512IFMA_UNSET OPTION_MASK_ISA_AVX512IFMA
  #define OPTION_MASK_ISA2_AVXIFMA_UNSET OPTION_MASK_ISA2_AVXIFMA
*************** along with GCC; see the file COPYING3.
*** 300,305 ****
--- 312,327 ----
  #define OPTION_MASK_ISA2_PREFETCHI_UNSET OPTION_MASK_ISA2_PREFETCHI
  #define OPTION_MASK_ISA2_RAOINT_UNSET OPTION_MASK_ISA2_RAOINT
  #define OPTION_MASK_ISA2_AMX_COMPLEX_UNSET OPTION_MASK_ISA2_AMX_COMPLEX
+ #define OPTION_MASK_ISA2_AVXVNNIINT16_UNSET OPTION_MASK_ISA2_AVXVNNIINT16
+ #define OPTION_MASK_ISA2_SM3_UNSET OPTION_MASK_ISA2_SM3
+ #define OPTION_MASK_ISA2_SHA512_UNSET OPTION_MASK_ISA2_SHA512
+ #define OPTION_MASK_ISA2_SM4_UNSET OPTION_MASK_ISA2_SM4
+ #define OPTION_MASK_ISA2_APX_F_UNSET OPTION_MASK_ISA2_APX_F
+ #define OPTION_MASK_ISA2_EVEX512_UNSET OPTION_MASK_ISA2_EVEX512
+ #define OPTION_MASK_ISA2_USER_MSR_UNSET OPTION_MASK_ISA2_USER_MSR
+ #define OPTION_MASK_ISA2_AVX10_1_256_UNSET \
+   (OPTION_MASK_ISA2_AVX10_1_256 | OPTION_MASK_ISA2_AVX10_1_512_UNSET)
+ #define OPTION_MASK_ISA2_AVX10_1_512_UNSET OPTION_MASK_ISA2_AVX10_1_512
  
  /* SSE4 includes both SSE4.1 and SSE4.2.  -mno-sse4 should the same
     as -mno-sse4.1. */
*************** along with GCC; see the file COPYING3.
*** 315,321 ****
  
  #define OPTION_MASK_ISA_AES_UNSET OPTION_MASK_ISA_AES
  #define OPTION_MASK_ISA_SHA_UNSET OPTION_MASK_ISA_SHA
! #define OPTION_MASK_ISA_PCLMUL_UNSET OPTION_MASK_ISA_PCLMUL
  #define OPTION_MASK_ISA_ABM_UNSET OPTION_MASK_ISA_ABM
  #define OPTION_MASK_ISA2_PCONFIG_UNSET OPTION_MASK_ISA2_PCONFIG
  #define OPTION_MASK_ISA2_WBNOINVD_UNSET OPTION_MASK_ISA2_WBNOINVD
--- 337,344 ----
  
  #define OPTION_MASK_ISA_AES_UNSET OPTION_MASK_ISA_AES
  #define OPTION_MASK_ISA_SHA_UNSET OPTION_MASK_ISA_SHA
! #define OPTION_MASK_ISA_PCLMUL_UNSET \
!   (OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_VPCLMULQDQ_UNSET)
  #define OPTION_MASK_ISA_ABM_UNSET OPTION_MASK_ISA_ABM
  #define OPTION_MASK_ISA2_PCONFIG_UNSET OPTION_MASK_ISA2_PCONFIG
  #define OPTION_MASK_ISA2_WBNOINVD_UNSET OPTION_MASK_ISA2_WBNOINVD
*************** along with GCC; see the file COPYING3.
*** 346,352 ****
     | OPTION_MASK_ISA2_AVX512VP2INTERSECT_UNSET)
  #define OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET \
    OPTION_MASK_ISA2_SSE_UNSET
! #define OPTION_MASK_ISA2_AVX_UNSET OPTION_MASK_ISA2_AVX2_UNSET
  #define OPTION_MASK_ISA2_SSE4_2_UNSET OPTION_MASK_ISA2_AVX_UNSET
  #define OPTION_MASK_ISA2_SSE4_1_UNSET OPTION_MASK_ISA2_SSE4_2_UNSET
  #define OPTION_MASK_ISA2_SSE4_UNSET OPTION_MASK_ISA2_SSE4_1_UNSET
--- 369,378 ----
     | OPTION_MASK_ISA2_AVX512VP2INTERSECT_UNSET)
  #define OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET \
    OPTION_MASK_ISA2_SSE_UNSET
! #define OPTION_MASK_ISA2_AVX_UNSET \
!   (OPTION_MASK_ISA2_AVX2_UNSET | OPTION_MASK_ISA2_VAES_UNSET \
!    | OPTION_MASK_ISA2_SM3_UNSET | OPTION_MASK_ISA2_SHA512_UNSET \
!    | OPTION_MASK_ISA2_SM4_UNSET)
  #define OPTION_MASK_ISA2_SSE4_2_UNSET OPTION_MASK_ISA2_AVX_UNSET
  #define OPTION_MASK_ISA2_SSE4_1_UNSET OPTION_MASK_ISA2_SSE4_2_UNSET
  #define OPTION_MASK_ISA2_SSE4_UNSET OPTION_MASK_ISA2_SSE4_1_UNSET
*************** ix86_handle_option (struct gcc_options *
*** 597,602 ****
--- 623,629 ----
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512F_UNSET;
  	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX512F_UNSET;
  	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX512F_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 610,615 ****
--- 637,643 ----
  	{
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512CD_UNSET;
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512CD_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 683,688 ****
--- 711,718 ----
  	{
  	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_VAES_SET;
  	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_VAES_SET;
+ 	  opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX_SET;
+ 	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX_SET;
  	}
        else
  	{
*************** ix86_handle_option (struct gcc_options *
*** 882,887 ****
--- 912,918 ----
  	{
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VBMI2_UNSET;
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VBMI2_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 897,902 ****
--- 928,934 ----
  	{
  	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX512FP16_UNSET;
  	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX512FP16_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 910,915 ****
--- 942,948 ----
  	{
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VNNI_UNSET;
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VNNI_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 925,930 ****
--- 958,964 ----
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET;
  	  opts->x_ix86_isa_flags_explicit
  	    |= OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 939,944 ****
--- 973,979 ----
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512BITALG_UNSET;
  	  opts->x_ix86_isa_flags_explicit
  		|= OPTION_MASK_ISA_AVX512BITALG_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 954,959 ****
--- 989,995 ----
  	{
  	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX512BF16_UNSET;
  	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX512BF16_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 1021,1026 ****
--- 1057,1063 ----
  	{
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512DQ_UNSET;
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512DQ_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 1036,1041 ****
--- 1073,1079 ----
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512BW_UNSET;
  	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX512BW_UNSET;
  	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX512BW_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 1049,1054 ****
--- 1087,1093 ----
  	{
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VL_UNSET;
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VL_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 1062,1067 ****
--- 1101,1107 ----
  	{
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512IFMA_UNSET;
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512IFMA_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 1075,1080 ****
--- 1115,1121 ----
  	{
  	  opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512VBMI_UNSET;
  	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512VBMI_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
  	}
        return true;
  
*************** ix86_handle_option (struct gcc_options *
*** 1263,1268 ****
--- 1304,1446 ----
  	}
        return true;
  
+     case OPT_mavxvnniint16:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_AVXVNNIINT16_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |=
+ 	    OPTION_MASK_ISA2_AVXVNNIINT16_SET;
+ 	  opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX2_SET;
+ 	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX2_SET;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &=
+ 	    ~OPTION_MASK_ISA2_AVXVNNIINT16_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |=
+ 	    OPTION_MASK_ISA2_AVXVNNIINT16_UNSET;
+ 	}
+       return true;
+ 
+     case OPT_msm3:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_SM3_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_SM3_SET;
+ 	  opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX_SET;
+ 	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX_SET;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_SM3_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_SM3_UNSET;
+ 	}
+       return true;
+ 
+     case OPT_msha512:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_SHA512_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_SHA512_SET;
+ 	  opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX_SET;
+ 	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX_SET;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_SHA512_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_SHA512_UNSET;
+ 	}
+       return true;
+ 
+     case OPT_msm4:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_SM4_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_SM4_SET;
+ 	  opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX_SET;
+ 	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX_SET;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_SM4_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_SM4_UNSET;
+ 	}
+       return true;
+ 
+     case OPT_mapxf:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_APX_F_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_APX_F_SET;
+ 	  opts->x_ix86_apx_features = apx_all;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_APX_F_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_APX_F_UNSET;
+ 	  opts->x_ix86_apx_features = apx_none;
+ 	}
+       return true;
+ 
+     case OPT_mevex512:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_EVEX512_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_EVEX512_SET;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_EVEX512_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_EVEX512_UNSET;
+ 	  opts->x_ix86_no_avx512_explicit = 1;
+ 	}
+       return true;
+ 
+     case OPT_musermsr:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_USER_MSR_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_USER_MSR_SET;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_USER_MSR_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_USER_MSR_UNSET;
+ 	}
+       return true;
+ 
+     case OPT_mavx10_1_256:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_AVX10_1_256_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_256_SET;
+ 	  opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX2_SET;
+ 	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX2_SET;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX10_1_256_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_256_UNSET;
+ 	  opts->x_ix86_no_avx10_1_explicit = 1;
+ 	}
+       return true;
+ 
+     case OPT_mavx10_1_512:
+       if (value)
+ 	{
+ 	  opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_AVX10_1_512_SET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_512_SET;
+ 	  opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX2_SET;
+ 	  opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX2_SET;
+ 	}
+       else
+ 	{
+ 	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX10_1_512_UNSET;
+ 	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_512_UNSET;
+ 	  opts->x_ix86_no_avx10_1_explicit = 1;
+ 	}
+       return true;
+ 
      case OPT_mfma:
        if (value)
  	{
*************** const char *const processor_names[] =
*** 1952,1957 ****
--- 2130,2136 ----
    "tremont",
    "sierraforest",
    "grandridge",
+   "clearwaterforest",
    "knl",
    "knm",
    "skylake",
*************** const char *const processor_names[] =
*** 1966,1973 ****
--- 2145,2157 ----
    "alderlake",
    "rocketlake",
    "graniterapids",
+   "graniterapids-d",
+   "arrowlake",
+   "arrowlake-s",
+   "pantherlake",
    "intel",
    "lujiazui",
+   "yongfeng",
    "geode",
    "k6",
    "athlon",
*************** const char *const processor_names[] =
*** 1982,1988 ****
    "znver1",
    "znver2",
    "znver3",
!   "znver4"
  };
  
  /* Guarantee that the array is aligned with enum processor_type.  */
--- 2166,2173 ----
    "znver1",
    "znver2",
    "znver3",
!   "znver4",
!   "znver5"
  };
  
  /* Guarantee that the array is aligned with enum processor_type.  */
*************** const pta processor_alias_table[] =
*** 2089,2096 ****
      M_CPU_SUBTYPE (INTEL_COREI7_ALDERLAKE), P_PROC_AVX2},
    {"graniterapids", PROCESSOR_GRANITERAPIDS, CPU_HASWELL, PTA_GRANITERAPIDS,
      M_CPU_SUBTYPE (INTEL_COREI7_GRANITERAPIDS), P_PROC_AVX512F},
!   {"graniterapids-d", PROCESSOR_GRANITERAPIDS, CPU_HASWELL, PTA_GRANITERAPIDS_D,
!     M_CPU_SUBTYPE (INTEL_COREI7_GRANITERAPIDS_D), P_PROC_AVX512F},
    {"bonnell", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL,
      M_CPU_TYPE (INTEL_BONNELL), P_PROC_SSSE3},
    {"atom", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL,
--- 2274,2290 ----
      M_CPU_SUBTYPE (INTEL_COREI7_ALDERLAKE), P_PROC_AVX2},
    {"graniterapids", PROCESSOR_GRANITERAPIDS, CPU_HASWELL, PTA_GRANITERAPIDS,
      M_CPU_SUBTYPE (INTEL_COREI7_GRANITERAPIDS), P_PROC_AVX512F},
!   {"graniterapids-d", PROCESSOR_GRANITERAPIDS_D, CPU_HASWELL,
!     PTA_GRANITERAPIDS_D, M_CPU_SUBTYPE (INTEL_COREI7_GRANITERAPIDS_D),
!     P_PROC_AVX512F},
!   {"arrowlake", PROCESSOR_ARROWLAKE, CPU_HASWELL, PTA_ARROWLAKE,
!     M_CPU_SUBTYPE (INTEL_COREI7_ARROWLAKE), P_PROC_AVX2},
!   {"arrowlake-s", PROCESSOR_ARROWLAKE_S, CPU_HASWELL, PTA_ARROWLAKE_S,
!     M_CPU_SUBTYPE (INTEL_COREI7_ARROWLAKE_S), P_PROC_AVX2},
!   {"lunarlake", PROCESSOR_ARROWLAKE_S, CPU_HASWELL, PTA_ARROWLAKE_S,
!     M_CPU_SUBTYPE (INTEL_COREI7_ARROWLAKE_S), P_PROC_AVX2},
!   {"pantherlake", PROCESSOR_PANTHERLAKE, CPU_HASWELL, PTA_PANTHERLAKE,
!     M_CPU_SUBTYPE (INTEL_COREI7_PANTHERLAKE), P_PROC_AVX2},
    {"bonnell", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL,
      M_CPU_TYPE (INTEL_BONNELL), P_PROC_SSSE3},
    {"atom", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL,
*************** const pta processor_alias_table[] =
*** 2105,2114 ****
      M_CPU_TYPE (INTEL_GOLDMONT_PLUS), P_PROC_SSE4_2},
    {"tremont", PROCESSOR_TREMONT, CPU_HASWELL, PTA_TREMONT,
      M_CPU_TYPE (INTEL_TREMONT), P_PROC_SSE4_2},
    {"sierraforest", PROCESSOR_SIERRAFOREST, CPU_HASWELL, PTA_SIERRAFOREST,
!     M_CPU_SUBTYPE (INTEL_SIERRAFOREST), P_PROC_AVX2},
    {"grandridge", PROCESSOR_GRANDRIDGE, CPU_HASWELL, PTA_GRANDRIDGE,
      M_CPU_TYPE (INTEL_GRANDRIDGE), P_PROC_AVX2},
    {"knl", PROCESSOR_KNL, CPU_SLM, PTA_KNL,
      M_CPU_TYPE (INTEL_KNL), P_PROC_AVX512F},
    {"knm", PROCESSOR_KNM, CPU_SLM, PTA_KNM,
--- 2299,2312 ----
      M_CPU_TYPE (INTEL_GOLDMONT_PLUS), P_PROC_SSE4_2},
    {"tremont", PROCESSOR_TREMONT, CPU_HASWELL, PTA_TREMONT,
      M_CPU_TYPE (INTEL_TREMONT), P_PROC_SSE4_2},
+   {"gracemont", PROCESSOR_ALDERLAKE, CPU_HASWELL, PTA_ALDERLAKE,
+    M_CPU_SUBTYPE (INTEL_COREI7_ALDERLAKE), P_PROC_AVX2},
    {"sierraforest", PROCESSOR_SIERRAFOREST, CPU_HASWELL, PTA_SIERRAFOREST,
!     M_CPU_TYPE (INTEL_SIERRAFOREST), P_PROC_AVX2},
    {"grandridge", PROCESSOR_GRANDRIDGE, CPU_HASWELL, PTA_GRANDRIDGE,
      M_CPU_TYPE (INTEL_GRANDRIDGE), P_PROC_AVX2},
+   {"clearwaterforest", PROCESSOR_CLEARWATERFOREST, CPU_HASWELL,
+     PTA_CLEARWATERFOREST, M_CPU_TYPE (INTEL_CLEARWATERFOREST), P_PROC_AVX2},
    {"knl", PROCESSOR_KNL, CPU_SLM, PTA_KNL,
      M_CPU_TYPE (INTEL_KNL), P_PROC_AVX512F},
    {"knm", PROCESSOR_KNM, CPU_SLM, PTA_KNM,
*************** const pta processor_alias_table[] =
*** 2162,2173 ****
      PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
        | PTA_SSSE3 | PTA_SSE4_1 | PTA_FXSR, 0, P_NONE},
    {"lujiazui", PROCESSOR_LUJIAZUI, CPU_LUJIAZUI,
!     PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
! 	| PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
! 	| PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_BMI | PTA_BMI2
! 	| PTA_PRFCHW | PTA_FXSR | PTA_XSAVE | PTA_XSAVEOPT | PTA_FSGSBASE
! 	| PTA_RDRND | PTA_MOVBE | PTA_ADX | PTA_RDSEED | PTA_POPCNT,
  	M_CPU_SUBTYPE (ZHAOXIN_FAM7H_LUJIAZUI), P_NONE},
    {"k8", PROCESSOR_K8, CPU_K8,
      PTA_64BIT | PTA_MMX | PTA_3DNOW | PTA_3DNOW_A | PTA_SSE
        | PTA_SSE2 | PTA_NO_SAHF | PTA_FXSR, 0, P_NONE},
--- 2360,2370 ----
      PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
        | PTA_SSSE3 | PTA_SSE4_1 | PTA_FXSR, 0, P_NONE},
    {"lujiazui", PROCESSOR_LUJIAZUI, CPU_LUJIAZUI,
! 	PTA_LUJIAZUI,
  	M_CPU_SUBTYPE (ZHAOXIN_FAM7H_LUJIAZUI), P_NONE},
+   {"yongfeng", PROCESSOR_YONGFENG, CPU_YONGFENG,
+ 	PTA_YONGFENG,
+ 	M_CPU_SUBTYPE (ZHAOXIN_FAM7H_YONGFENG), P_NONE},
    {"k8", PROCESSOR_K8, CPU_K8,
      PTA_64BIT | PTA_MMX | PTA_3DNOW | PTA_3DNOW_A | PTA_SSE
        | PTA_SSE2 | PTA_NO_SAHF | PTA_FXSR, 0, P_NONE},
*************** const pta processor_alias_table[] =
*** 2239,2244 ****
--- 2436,2444 ----
    {"znver4", PROCESSOR_ZNVER4, CPU_ZNVER4,
      PTA_ZNVER4,
      M_CPU_SUBTYPE (AMDFAM19H_ZNVER4), P_PROC_AVX512F},
+   {"znver5", PROCESSOR_ZNVER5, CPU_ZNVER5,
+     PTA_ZNVER5,
+     M_CPU_SUBTYPE (AMDFAM1AH_ZNVER5), P_PROC_AVX512F},
    {"btver1", PROCESSOR_BTVER1, CPU_GENERIC,
      PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
        | PTA_SSSE3 | PTA_SSE4A | PTA_ABM | PTA_CX16 | PTA_PRFCHW
diff -Nrcpad gcc-13.2.0/gcc/common/config/i386/i386-cpuinfo.h gcc-14.1.0/gcc/common/config/i386/i386-cpuinfo.h
*** gcc-13.2.0/gcc/common/config/i386/i386-cpuinfo.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/i386/i386-cpuinfo.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Get CPU type and Features for x86 processors.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by Sriraman Tallam (tmsriram@google.com)
  
  This file is part of GCC.
--- 1,5 ----
  /* Get CPU type and Features for x86 processors.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Sriraman Tallam (tmsriram@google.com)
  
  This file is part of GCC.
*************** enum processor_types
*** 62,67 ****
--- 62,69 ----
    ZHAOXIN_FAM7H,
    INTEL_SIERRAFOREST,
    INTEL_GRANDRIDGE,
+   INTEL_CLEARWATERFOREST,
+   AMDFAM1AH,
    CPU_TYPE_MAX,
    BUILTIN_CPU_TYPE_MAX = CPU_TYPE_MAX
  };
*************** enum processor_subtypes
*** 99,104 ****
--- 101,111 ----
    AMDFAM19H_ZNVER4,
    INTEL_COREI7_GRANITERAPIDS,
    INTEL_COREI7_GRANITERAPIDS_D,
+   INTEL_COREI7_ARROWLAKE,
+   INTEL_COREI7_ARROWLAKE_S,
+   INTEL_COREI7_PANTHERLAKE,
+   ZHAOXIN_FAM7H_YONGFENG,
+   AMDFAM1AH_ZNVER5,
    CPU_SUBTYPE_MAX
  };
  
*************** enum processor_features
*** 255,260 ****
--- 262,275 ----
    FEATURE_PREFETCHI,
    FEATURE_RAOINT,
    FEATURE_AMX_COMPLEX,
+   FEATURE_AVXVNNIINT16,
+   FEATURE_SM3,
+   FEATURE_SHA512,
+   FEATURE_SM4,
+   FEATURE_APX_F,
+   FEATURE_USER_MSR,
+   FEATURE_AVX10_1_256,
+   FEATURE_AVX10_1_512,
    CPU_FEATURE_MAX
  };
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/i386/i386-isas.h gcc-14.1.0/gcc/common/config/i386/i386-isas.h
*** gcc-13.2.0/gcc/common/config/i386/i386-isas.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/i386/i386-isas.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* i386 ISA table.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* i386 ISA table.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** ISA_NAMES_TABLE_START
*** 186,189 ****
--- 186,199 ----
    ISA_NAMES_TABLE_ENTRY("raoint", FEATURE_RAOINT, P_NONE, "-mraoint")
    ISA_NAMES_TABLE_ENTRY("amx-complex", FEATURE_AMX_COMPLEX,
  			P_NONE, "-mamx-complex")
+   ISA_NAMES_TABLE_ENTRY("avxvnniint16", FEATURE_AVXVNNIINT16,
+ 			P_NONE, "-mavxvnniint16")
+   ISA_NAMES_TABLE_ENTRY("sm3", FEATURE_SM3, P_NONE, "-msm3")
+   ISA_NAMES_TABLE_ENTRY("sha512", FEATURE_SHA512, P_NONE, "-msha512")
+   ISA_NAMES_TABLE_ENTRY("sm4", FEATURE_SM4, P_NONE, "-msm4")
+   ISA_NAMES_TABLE_ENTRY("apxf", FEATURE_APX_F, P_NONE, "-mapxf")
+   ISA_NAMES_TABLE_ENTRY("usermsr", FEATURE_USER_MSR, P_NONE, "-musermsr")
+   ISA_NAMES_TABLE_ENTRY("avx10.1", FEATURE_AVX10_1_256, P_NONE, "-mavx10.1")
+   ISA_NAMES_TABLE_ENTRY("avx10.1-256", FEATURE_AVX10_1_256, P_NONE, "-mavx10.1-256")
+   ISA_NAMES_TABLE_ENTRY("avx10.1-512", FEATURE_AVX10_1_512, P_NONE, "-mavx10.1-512")
  ISA_NAMES_TABLE_END
diff -Nrcpad gcc-13.2.0/gcc/common/config/ia64/ia64-common.cc gcc-14.1.0/gcc/common/config/ia64/ia64-common.cc
*** gcc-13.2.0/gcc/common/config/ia64/ia64-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/ia64/ia64-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for IA64.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for IA64.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/iq2000/iq2000-common.cc gcc-14.1.0/gcc/common/config/iq2000/iq2000-common.cc
*** gcc-13.2.0/gcc/common/config/iq2000/iq2000-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/iq2000/iq2000-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Vitesse IQ2000.
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Vitesse IQ2000.
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/lm32/lm32-common.cc gcc-14.1.0/gcc/common/config/lm32/lm32-common.cc
*** gcc-13.2.0/gcc/common/config/lm32/lm32-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/lm32/lm32-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Common hooks for Lattice Mico32.
  
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,6 ----
  /* Common hooks for Lattice Mico32.
  
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/loongarch/loongarch-common.cc gcc-14.1.0/gcc/common/config/loongarch/loongarch-common.cc
*** gcc-13.2.0/gcc/common/config/loongarch/loongarch-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/loongarch/loongarch-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for LoongArch.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for LoongArch.
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** static const struct default_options loon
*** 35,40 ****
--- 35,42 ----
  {
    { OPT_LEVELS_ALL, OPT_fasynchronous_unwind_tables, NULL, 1 },
    { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 },
+   { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 },
+   { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 },
    { OPT_LEVELS_NONE, 0, NULL, 0 }
  };
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/m32r/m32r-common.cc gcc-14.1.0/gcc/common/config/m32r/m32r-common.cc
*** gcc-13.2.0/gcc/common/config/m32r/m32r-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/m32r/m32r-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Renesas M32R.
!    Copyright (C) 1996-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Renesas M32R.
!    Copyright (C) 1996-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/m68k/m68k-common.cc gcc-14.1.0/gcc/common/config/m68k/m68k-common.cc
*** gcc-13.2.0/gcc/common/config/m68k/m68k-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/m68k/m68k-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Motorola 68000 family.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Motorola 68000 family.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/mcore/mcore-common.cc gcc-14.1.0/gcc/common/config/mcore/mcore-common.cc
*** gcc-13.2.0/gcc/common/config/mcore/mcore-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/mcore/mcore-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Motorola MCore.
!    Copyright (C) 1993-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Motorola MCore.
!    Copyright (C) 1993-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/microblaze/microblaze-common.cc gcc-14.1.0/gcc/common/config/microblaze/microblaze-common.cc
*** gcc-13.2.0/gcc/common/config/microblaze/microblaze-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/microblaze/microblaze-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Xilinx MicroBlaze.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Xilinx MicroBlaze.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/mips/mips-common.cc gcc-14.1.0/gcc/common/config/mips/mips-common.cc
*** gcc-13.2.0/gcc/common/config/mips/mips-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/mips/mips-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for MIPS.
!    Copyright (C) 1989-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for MIPS.
!    Copyright (C) 1989-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/mmix/mmix-common.cc gcc-14.1.0/gcc/common/config/mmix/mmix-common.cc
*** gcc-13.2.0/gcc/common/config/mmix/mmix-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/mmix/mmix-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for MMIX.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for MMIX.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/mn10300/mn10300-common.cc gcc-14.1.0/gcc/common/config/mn10300/mn10300-common.cc
*** gcc-13.2.0/gcc/common/config/mn10300/mn10300-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/mn10300/mn10300-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Matsushita MN10300 series.
!    Copyright (C) 1996-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Matsushita MN10300 series.
!    Copyright (C) 1996-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/msp430/msp430-common.cc gcc-14.1.0/gcc/common/config/msp430/msp430-common.cc
*** gcc-13.2.0/gcc/common/config/msp430/msp430-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/msp430/msp430-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Texas Instruments MSP430.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Texas Instruments MSP430.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/nds32/nds32-common.cc gcc-14.1.0/gcc/common/config/nds32/nds32-common.cc
*** gcc-13.2.0/gcc/common/config/nds32/nds32-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/nds32/nds32-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks of Andes NDS32 cpu for GNU compiler
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by Andes Technology Corporation.
  
     This file is part of GCC.
--- 1,5 ----
  /* Common hooks of Andes NDS32 cpu for GNU compiler
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Andes Technology Corporation.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/common/config/nios2/nios2-common.cc gcc-14.1.0/gcc/common/config/nios2/nios2-common.cc
*** gcc-13.2.0/gcc/common/config/nios2/nios2-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/nios2/nios2-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Altera Nios II.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Altera Nios II.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/nvptx/nvptx-common.cc gcc-14.1.0/gcc/common/config/nvptx/nvptx-common.cc
*** gcc-13.2.0/gcc/common/config/nvptx/nvptx-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/nvptx/nvptx-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* NVPTX common hooks.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* NVPTX common hooks.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/common/config/or1k/or1k-common.cc gcc-14.1.0/gcc/common/config/or1k/or1k-common.cc
*** gcc-13.2.0/gcc/common/config/or1k/or1k-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/or1k/or1k-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for OpenRISC
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for OpenRISC
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/pa/pa-common.cc gcc-14.1.0/gcc/common/config/pa/pa-common.cc
*** gcc-13.2.0/gcc/common/config/pa/pa-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/pa/pa-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* HPPA common hooks.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* HPPA common hooks.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/pdp11/pdp11-common.cc gcc-14.1.0/gcc/common/config/pdp11/pdp11-common.cc
*** gcc-13.2.0/gcc/common/config/pdp11/pdp11-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/pdp11/pdp11-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for pdp11.
!    Copyright (C) 1994-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for pdp11.
!    Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/pru/pru-common.cc gcc-14.1.0/gcc/common/config/pru/pru-common.cc
*** gcc-13.2.0/gcc/common/config/pru/pru-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/pru/pru-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for TI PRU
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for TI PRU
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/riscv/riscv-common.cc gcc-14.1.0/gcc/common/config/riscv/riscv-common.cc
*** gcc-13.2.0/gcc/common/config/riscv/riscv-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/riscv/riscv-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for RISC-V.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for RISC-V.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 21,26 ****
--- 21,28 ----
  #include <vector>
  
  #define INCLUDE_STRING
+ #define INCLUDE_SET
+ #define INCLUDE_MAP
  #include "config.h"
  #include "system.h"
  #include "coretypes.h"
*************** along with GCC; see the file COPYING3.
*** 38,48 ****
--- 40,75 ----
  #define TARGET_DEFAULT_TARGET_FLAGS (MASK_BIG_ENDIAN)
  #endif
  
+ typedef bool (*riscv_implied_predicator_t) (const riscv_subset_list *);
+ 
  /* Type for implied ISA info.  */
  struct riscv_implied_info_t
  {
+   constexpr riscv_implied_info_t (const char *ext, const char *implied_ext,
+ 				  riscv_implied_predicator_t predicator
+ 				  = nullptr)
+     : ext (ext), implied_ext (implied_ext), predicator (predicator){};
+ 
+   bool match (const riscv_subset_list *subset_list, const char *ext_name) const
+   {
+     if (strcmp (ext_name, ext) != 0)
+       return false;
+ 
+     if (predicator && !predicator (subset_list))
+       return false;
+ 
+     return true;
+   }
+ 
+   bool match (const riscv_subset_list *subset_list,
+ 	      const riscv_subset_t *subset) const
+   {
+     return match (subset_list, subset->name.c_str());
+   }
+ 
    const char *ext;
    const char *implied_ext;
+   riscv_implied_predicator_t predicator;
  };
  
  /* Implied ISA info, must end with NULL sentinel.  */
*************** static const riscv_implied_info_t riscv_
*** 102,113 ****
    {"zvl32768b", "zvl16384b"},
    {"zvl65536b", "zvl32768b"},
  
    {"zfh", "zfhmin"},
    {"zfhmin", "f"},
!   
    {"zhinx", "zhinxmin"},
    {"zhinxmin", "zfinx"},
  
    {NULL, NULL}
  };
  
--- 129,197 ----
    {"zvl32768b", "zvl16384b"},
    {"zvl65536b", "zvl32768b"},
  
+   {"zvkn", "zvkned"},
+   {"zvkn", "zvknhb"},
+   {"zvkn", "zvkb"},
+   {"zvkn", "zvkt"},
+   {"zvknc", "zvkn"},
+   {"zvknc", "zvbc"},
+   {"zvkng", "zvkn"},
+   {"zvkng", "zvkg"},
+   {"zvks", "zvksed"},
+   {"zvks", "zvksh"},
+   {"zvks", "zvkb"},
+   {"zvks", "zvkt"},
+   {"zvksc", "zvks"},
+   {"zvksc", "zvbc"},
+   {"zvksg", "zvks"},
+   {"zvksg", "zvkg"},
+   {"zvbb",  "zvkb"},
+   {"zvbc",   "zve64x"},
+   {"zvkb",   "zve32x"},
+   {"zvkg",   "zve32x"},
+   {"zvkned", "zve32x"},
+   {"zvknha", "zve32x"},
+   {"zvknhb", "zve64x"},
+   {"zvksed", "zve32x"},
+   {"zvksh",  "zve32x"},
+ 
    {"zfh", "zfhmin"},
    {"zfhmin", "f"},
! 
!   {"zfa", "f"},
! 
!   {"zvfbfmin", "zve32f"},
!   {"zvfhmin", "zve32f"},
!   {"zvfh", "zve32f"},
!   {"zvfh", "zfhmin"},
! 
    {"zhinx", "zhinxmin"},
    {"zhinxmin", "zfinx"},
  
+   {"zce",  "zca"},
+   {"zce",  "zcb"},
+   {"zce",  "zcmp"},
+   {"zce",  "zcmt"},
+   {"zcf",  "zca"},
+   {"zcd",  "zca"},
+   {"zcb",  "zca"},
+   {"zcmp", "zca"},
+   {"zcmt", "zca"},
+   {"zcmt", "zicsr"},
+   {"zcf", "f",
+    [] (const riscv_subset_list *subset_list) -> bool
+    {
+      return subset_list->xlen () == 32 && subset_list->lookup ("f");
+    }},
+ 
+   {"smaia", "ssaia"},
+   {"smstateen", "ssstateen"},
+   {"smepmp", "zicsr"},
+   {"ssaia", "zicsr"},
+   {"sscofpmf", "zicsr"},
+   {"ssstateen", "zicsr"},
+   {"sstc", "zicsr"},
+ 
    {NULL, NULL}
  };
  
*************** struct riscv_ext_version
*** 125,133 ****
  static const struct riscv_ext_version riscv_ext_version_table[] =
  {
    /* name, ISA spec, major version, minor_version.  */
!   {"e", ISA_SPEC_CLASS_20191213, 1, 9},
!   {"e", ISA_SPEC_CLASS_20190608, 1, 9},
!   {"e", ISA_SPEC_CLASS_2P2,      1, 9},
  
    {"i", ISA_SPEC_CLASS_20191213, 2, 1},
    {"i", ISA_SPEC_CLASS_20190608, 2, 1},
--- 209,217 ----
  static const struct riscv_ext_version riscv_ext_version_table[] =
  {
    /* name, ISA spec, major version, minor_version.  */
!   {"e", ISA_SPEC_CLASS_20191213, 2, 0},
!   {"e", ISA_SPEC_CLASS_20190608, 2, 0},
!   {"e", ISA_SPEC_CLASS_2P2,      2, 0},
  
    {"i", ISA_SPEC_CLASS_20191213, 2, 1},
    {"i", ISA_SPEC_CLASS_20190608, 2, 1},
*************** static const struct riscv_ext_version ri
*** 163,168 ****
--- 247,256 ----
    {"zifencei", ISA_SPEC_CLASS_20191213, 2, 0},
    {"zifencei", ISA_SPEC_CLASS_20190608, 2, 0},
  
+   {"zicond", ISA_SPEC_CLASS_NONE, 1, 0},
+ 
+   {"za64rs",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"za128rs", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zawrs", ISA_SPEC_CLASS_NONE, 1, 0},
  
    {"zba", ISA_SPEC_CLASS_NONE, 1, 0},
*************** static const struct riscv_ext_version ri
*** 186,206 ****
    {"zksh",  ISA_SPEC_CLASS_NONE, 1, 0},
    {"zkt",   ISA_SPEC_CLASS_NONE, 1, 0},
  
    {"zicboz",ISA_SPEC_CLASS_NONE, 1, 0},
    {"zicbom",ISA_SPEC_CLASS_NONE, 1, 0},
    {"zicbop",ISA_SPEC_CLASS_NONE, 1, 0},
  
    {"zk",    ISA_SPEC_CLASS_NONE, 1, 0},
    {"zkn",   ISA_SPEC_CLASS_NONE, 1, 0},
    {"zks",   ISA_SPEC_CLASS_NONE, 1, 0},
  
    {"zve32x", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zve32f", ISA_SPEC_CLASS_NONE, 1, 0},
-   {"zve32d", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zve64x", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zve64f", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zve64d", ISA_SPEC_CLASS_NONE, 1, 0},
  
    {"zvl32b", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zvl64b", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zvl128b", ISA_SPEC_CLASS_NONE, 1, 0},
--- 274,323 ----
    {"zksh",  ISA_SPEC_CLASS_NONE, 1, 0},
    {"zkt",   ISA_SPEC_CLASS_NONE, 1, 0},
  
+   {"zihintntl", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zihintpause", ISA_SPEC_CLASS_NONE, 2, 0},
+ 
    {"zicboz",ISA_SPEC_CLASS_NONE, 1, 0},
    {"zicbom",ISA_SPEC_CLASS_NONE, 1, 0},
    {"zicbop",ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zic64b",   ISA_SPEC_CLASS_NONE, 1, 0},
+   {"ziccamoa", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"ziccif",   ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zicclsm",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"ziccrse",  ISA_SPEC_CLASS_NONE, 1, 0},
+ 
+   {"zicntr", ISA_SPEC_CLASS_NONE, 2, 0},
+   {"zihpm",  ISA_SPEC_CLASS_NONE, 2, 0},
  
    {"zk",    ISA_SPEC_CLASS_NONE, 1, 0},
    {"zkn",   ISA_SPEC_CLASS_NONE, 1, 0},
    {"zks",   ISA_SPEC_CLASS_NONE, 1, 0},
  
+   {"ztso",  ISA_SPEC_CLASS_NONE, 1, 0},
+ 
    {"zve32x", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zve32f", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zve64x", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zve64f", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zve64d", ISA_SPEC_CLASS_NONE, 1, 0},
  
+   {"zvbb", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvbc", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvkb", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvkg", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvkned", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvknha", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvknhb", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvksed", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvksh", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvkn", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvknc", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvkng", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvks", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvksc", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvksg", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvkt", ISA_SPEC_CLASS_NONE, 1, 0},
+ 
    {"zvl32b", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zvl64b", ISA_SPEC_CLASS_NONE, 1, 0},
    {"zvl128b", ISA_SPEC_CLASS_NONE, 1, 0},
*************** static const struct riscv_ext_version ri
*** 216,226 ****
--- 333,372 ----
  
    {"zfh",       ISA_SPEC_CLASS_NONE, 1, 0},
    {"zfhmin",    ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvfbfmin",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvfhmin",   ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvfh",      ISA_SPEC_CLASS_NONE, 1, 0},
+ 
+   {"zfa",     ISA_SPEC_CLASS_NONE, 1, 0},
  
    {"zmmul", ISA_SPEC_CLASS_NONE, 1, 0},
  
+   {"zca",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zcb",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zce",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zcf",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zcd",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zcmp", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zcmt", ISA_SPEC_CLASS_NONE, 1, 0},
+ 
+   {"smaia",     ISA_SPEC_CLASS_NONE, 1, 0},
+   {"smepmp",    ISA_SPEC_CLASS_NONE, 1, 0},
+   {"smstateen", ISA_SPEC_CLASS_NONE, 1, 0},
+ 
+   {"ssaia",     ISA_SPEC_CLASS_NONE, 1, 0},
+   {"sscofpmf",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"ssstateen", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"sstc",      ISA_SPEC_CLASS_NONE, 1, 0},
+ 
    {"svinval", ISA_SPEC_CLASS_NONE, 1, 0},
    {"svnapot", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"svpbmt",  ISA_SPEC_CLASS_NONE, 1, 0},
+ 
+   {"xcvmac", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"xcvalu", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"xcvelw", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"xcvsimd", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"xcvbi", ISA_SPEC_CLASS_NONE, 1, 0},
  
    {"xtheadba", ISA_SPEC_CLASS_NONE, 1, 0},
    {"xtheadbb", ISA_SPEC_CLASS_NONE, 1, 0},
*************** static const struct riscv_ext_version ri
*** 234,239 ****
--- 380,388 ----
    {"xtheadmemidx", ISA_SPEC_CLASS_NONE, 1, 0},
    {"xtheadmempair", ISA_SPEC_CLASS_NONE, 1, 0},
    {"xtheadsync", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"xtheadvector", ISA_SPEC_CLASS_NONE, 1, 0},
+ 
+   {"xventanacondops", ISA_SPEC_CLASS_NONE, 1, 0},
  
    /* Terminate the list.  */
    {NULL, ISA_SPEC_CLASS_NONE, 0, 0}
*************** static const struct riscv_ext_version ri
*** 245,250 ****
--- 394,405 ----
    {"zk",  ISA_SPEC_CLASS_NONE, 1, 0},
    {"zkn",  ISA_SPEC_CLASS_NONE, 1, 0},
    {"zks",  ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvkn", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvknc", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvkng", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvks", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvksc", ISA_SPEC_CLASS_NONE, 1, 0},
+   {"zvksg", ISA_SPEC_CLASS_NONE, 1, 0},
    /* Terminate the list.  */
    {NULL, ISA_SPEC_CLASS_NONE, 0, 0}
  };
*************** static const char *riscv_tunes[] =
*** 267,279 ****
--- 422,533 ----
  
  static const char *riscv_supported_std_ext (void);
  
+ bool riscv_subset_list::parse_failed = false;
+ 
  static riscv_subset_list *current_subset_list = NULL;
  
+ static riscv_subset_list *cmdline_subset_list = NULL;
+ 
+ struct riscv_func_target_info
+ {
+   tree fn_decl;
+   std::string fn_target_name;
+ 
+   riscv_func_target_info (const tree &decl, const std::string &target_name)
+     : fn_decl (decl), fn_target_name (target_name)
+   {
+   }
+ };
+ 
+ struct riscv_func_target_hasher : nofree_ptr_hash<struct riscv_func_target_info>
+ {
+   typedef tree compare_type;
+ 
+   static hashval_t hash (value_type);
+   static bool equal (value_type, const compare_type &);
+ };
+ 
+ static hash_table<riscv_func_target_hasher> *func_target_table = NULL;
+ 
+ static inline hashval_t riscv_func_decl_hash (tree fn_decl)
+ {
+   inchash::hash h;
+ 
+   h.add_ptr (fn_decl);
+ 
+   return h.end ();
+ }
+ 
+ inline hashval_t
+ riscv_func_target_hasher::hash (value_type value)
+ {
+   return riscv_func_decl_hash (value->fn_decl);
+ }
+ 
+ inline bool
+ riscv_func_target_hasher::equal (value_type value, const compare_type &key)
+ {
+   return value->fn_decl == key;
+ }
+ 
  const riscv_subset_list *riscv_current_subset_list ()
  {
    return current_subset_list;
  }
  
+ const riscv_subset_list * riscv_cmdline_subset_list ()
+ {
+   return cmdline_subset_list;
+ }
+ 
+ static inline void riscv_func_target_table_lazy_init ()
+ {
+   if (func_target_table != NULL)
+     return;
+ 
+   func_target_table = new hash_table<riscv_func_target_hasher> (1023);
+ }
+ 
+ std::string * riscv_func_target_get (tree fn_decl)
+ {
+   riscv_func_target_table_lazy_init ();
+ 
+   hashval_t hash = riscv_func_decl_hash (fn_decl);
+   struct riscv_func_target_info *info
+     = func_target_table->find_with_hash (fn_decl, hash);
+ 
+   return info == NULL ? NULL : &info->fn_target_name;
+ }
+ 
+ void riscv_func_target_put (tree fn_decl, std::string fn_target_name)
+ {
+   riscv_func_target_table_lazy_init ();
+ 
+   hashval_t hash = riscv_func_decl_hash (fn_decl);
+   struct riscv_func_target_info **target_info_slot
+     = func_target_table->find_slot_with_hash (fn_decl, hash, INSERT);
+ 
+   gcc_assert (!*target_info_slot);
+ 
+   struct riscv_func_target_info *info
+     = new riscv_func_target_info (fn_decl, fn_target_name);
+ 
+   *target_info_slot = info;
+ }
+ 
+ void riscv_func_target_remove_and_destory (tree fn_decl)
+ {
+   hashval_t hash = riscv_func_decl_hash (fn_decl);
+   struct riscv_func_target_info *info
+     = func_target_table->find_with_hash (fn_decl, hash);
+ 
+   if (info)
+     {
+       func_target_table->remove_elt_with_hash (fn_decl, hash);
+       delete info;
+     }
+ }
+ 
  /* struct for recording multi-lib info.  */
  struct riscv_multi_lib_info_t {
    std::string path;
*************** multi_letter_subset_rank (const std::str
*** 398,407 ****
    char multiletter_class = subset[0];
    switch (multiletter_class)
      {
!     case 's':
        high_order = 0;
        break;
!     case 'z':
        high_order = 1;
        break;
      case 'x':
--- 652,661 ----
    char multiletter_class = subset[0];
    switch (multiletter_class)
      {
!     case 'z':
        high_order = 0;
        break;
!     case 's':
        high_order = 1;
        break;
      case 'x':
*************** subset_cmp (const std::string &a, const
*** 474,479 ****
--- 728,745 ----
      }
  }
  
+ /* Return true if EXT is a standard extension.  */
+ 
+ static bool
+ standard_extensions_p (const char *ext)
+ {
+   const riscv_ext_version *ext_ver;
+   for (ext_ver = &riscv_ext_version_table[0]; ext_ver->name != NULL; ++ext_ver)
+     if (strcmp (ext, ext_ver->name) == 0)
+       return true;
+   return false;
+ }
+ 
  /* Add new subset to list.  */
  
  void
*************** riscv_subset_list::add (const char *subs
*** 502,507 ****
--- 768,805 ----
  
        return;
      }
+   else if (strlen (subset) == 1 && !standard_extensions_p (subset))
+     {
+       error_at (m_loc,
+ 		"%<-march=%s%>: extension %qs is unsupported standard single "
+ 		"letter extension",
+ 		m_arch, subset);
+       return;
+     }
+   else if (subset[0] == 'z' && !standard_extensions_p (subset))
+     {
+       error_at (m_loc,
+ 		"%<-march=%s%>: extension %qs starts with 'z' but is "
+ 		"unsupported standard extension",
+ 		m_arch, subset);
+       return;
+     }
+   else if (subset[0] == 's' && !standard_extensions_p (subset))
+     {
+       error_at (m_loc,
+ 		"%<-march=%s%>: extension %qs starts with 's' but is "
+ 		"unsupported standard supervisor extension",
+ 		m_arch, subset);
+       return;
+     }
+   else if (subset[0] == 'x' && !standard_extensions_p (subset))
+     {
+       error_at (m_loc,
+ 		"%<-march=%s%>: extension %qs starts with 'x' but is "
+ 		"unsupported non-standard extension",
+ 		m_arch, subset);
+       return;
+     }
  
    riscv_subset_t *s = new riscv_subset_t ();
    riscv_subset_t *itr;
*************** riscv_subset_list::parsing_subset_versio
*** 782,806 ****
    return p;
  }
  
! /* Parsing function for standard extensions.
  
     Return Value:
!      Points to the end of extensions.
  
     Arguments:
       `p`: Current parsing position.  */
- 
  const char *
! riscv_subset_list::parse_std_ext (const char *p)
  {
-   const char *all_std_exts = riscv_supported_std_ext ();
-   const char *std_exts = all_std_exts;
- 
    unsigned major_version = 0;
    unsigned minor_version = 0;
-   char std_ext = '\0';
    bool explicit_version_p = false;
  
    /* First letter must start with i, e or g.  */
    switch (*p)
      {
--- 1080,1116 ----
    return p;
  }
  
! /* Parsing function for base extensions, rv[32|64][i|e|g]
  
     Return Value:
!      Points to the end of extensions, return NULL if any error.
  
     Arguments:
       `p`: Current parsing position.  */
  const char *
! riscv_subset_list::parse_base_ext (const char *p)
  {
    unsigned major_version = 0;
    unsigned minor_version = 0;
    bool explicit_version_p = false;
  
+   if (startswith (p, "rv32"))
+     {
+       m_xlen = 32;
+       p += 4;
+     }
+   else if (startswith (p, "rv64"))
+     {
+       m_xlen = 64;
+       p += 4;
+     }
+   else
+     {
+       error_at (m_loc, "%<-march=%s%>: ISA string must begin with rv32 or rv64",
+ 		m_arch);
+       return NULL;
+     }
+ 
    /* First letter must start with i, e or g.  */
    switch (*p)
      {
*************** riscv_subset_list::parse_std_ext (const
*** 818,824 ****
  
        add ("e", major_version, minor_version, explicit_version_p, false);
  
!       if (m_xlen > 32)
  	{
  	  error_at (m_loc, "%<-march=%s%>: rv%de is not a valid base ISA",
  		    m_arch, m_xlen);
--- 1128,1134 ----
  
        add ("e", major_version, minor_version, explicit_version_p, false);
  
!       if (m_xlen > 64)
  	{
  	  error_at (m_loc, "%<-march=%s%>: rv%de is not a valid base ISA",
  		    m_arch, m_xlen);
*************** riscv_subset_list::parse_std_ext (const
*** 855,916 ****
  		"%<i%> or %<g%>", m_arch);
        return NULL;
      }
  
!   while (p != NULL && *p)
!     {
!       char subset[2] = {0, 0};
  
!       if (*p == 'x' || *p == 's' || *p == 'z')
! 	break;
  
!       if (*p == '_')
! 	{
! 	  p++;
! 	  continue;
! 	}
  
!       std_ext = *p;
  
!       /* Checking canonical order.  */
!       while (*std_exts && std_ext != *std_exts)
! 	std_exts++;
  
!       if (std_ext != *std_exts)
! 	{
! 	  if (strchr (all_std_exts, std_ext) == NULL)
! 	    error_at (m_loc, "%<-march=%s%>: unsupported ISA subset %<%c%>",
! 		      m_arch, *p);
! 	  else
! 	    error_at (m_loc,
! 		      "%<-march=%s%>: ISA string is not in canonical order. "
! 		      "%<%c%>", m_arch, *p);
! 	  return NULL;
! 	}
  
!       std_exts++;
  
!       p++;
!       subset[0] = std_ext;
  
!       p = parsing_subset_version (subset, p, &major_version, &minor_version,
! 				  /* std_ext_p= */ true, &explicit_version_p);
  
!       add (subset, major_version, minor_version, explicit_version_p, false);
!     }
    return p;
  }
  
- 
  /* Check any implied extensions for EXT.  */
  void
! riscv_subset_list::handle_implied_ext (riscv_subset_t *ext)
  {
    const riscv_implied_info_t *implied_info;
    for (implied_info = &riscv_implied_info[0];
         implied_info->ext;
         ++implied_info)
      {
!       if (strcmp (ext->name.c_str (), implied_info->ext) != 0)
  	continue;
  
        /* Skip if implied extension already present.  */
--- 1165,1226 ----
  		"%<i%> or %<g%>", m_arch);
        return NULL;
      }
+   return p;
+ }
  
! /* Parsing function for one standard extensions.
  
!    Return Value:
!      Points to the end of extensions.
  
!    Arguments:
!      `p`: Current parsing position.
!      `exact_single_p`: True if input string is exactly an extension and end
!      with '\0'.  */
  
! const char *
! riscv_subset_list::parse_single_std_ext (const char *p, bool exact_single_p)
! {
!   if (*p == 'x' || *p == 's' || *p == 'z')
!     {
!       error_at (m_loc,
! 		"%<-march=%s%>: Not single-letter extension. "
! 		"%<%c%>",
! 		m_arch, *p);
!       return nullptr;
!     }
  
!   if (exact_single_p && strlen (p) > 1)
!     {
!       return nullptr;
!     }
  
!   unsigned major_version = 0;
!   unsigned minor_version = 0;
!   bool explicit_version_p = false;
!   char subset[2] = {0, 0};
  
!   subset[0] = *p;
  
!   p++;
  
!   p = parsing_subset_version (subset, p, &major_version, &minor_version,
! 			      /* std_ext_p= */ true, &explicit_version_p);
  
!   add (subset, major_version, minor_version, explicit_version_p, false);
    return p;
  }
  
  /* Check any implied extensions for EXT.  */
  void
! riscv_subset_list::handle_implied_ext (const char *ext)
  {
    const riscv_implied_info_t *implied_info;
    for (implied_info = &riscv_implied_info[0];
         implied_info->ext;
         ++implied_info)
      {
!       if (!implied_info->match (this, ext))
  	continue;
  
        /* Skip if implied extension already present.  */
*************** riscv_subset_list::handle_implied_ext (r
*** 920,925 ****
--- 1230,1238 ----
        /* Version of implied extension will get from current ISA spec
  	 version.  */
        add (implied_info->implied_ext, true);
+ 
+       /* Recursively add implied extension by implied_info->implied_ext.  */
+       handle_implied_ext (implied_info->implied_ext);
      }
  
    /* For RISC-V ISA version 2.2 or earlier version, zicsr and zifence is
*************** riscv_subset_list::handle_implied_ext (r
*** 934,939 ****
--- 1247,1273 ----
      }
  }
  
+ /* Check that all implied extensions are included.  */
+ bool
+ riscv_subset_list::check_implied_ext ()
+ {
+   riscv_subset_t *itr;
+   for (itr = m_head; itr != NULL; itr = itr->next)
+     {
+       const riscv_implied_info_t *implied_info;
+       for (implied_info = &riscv_implied_info[0]; implied_info->ext;
+ 	   ++implied_info)
+ 	{
+ 	  if (!implied_info->match (this, itr))
+ 	    continue;
+ 
+ 	  if (!lookup (implied_info->implied_ext))
+ 	    return false;
+ 	}
+     }
+   return true;
+ }
+ 
  /* Check any combine extensions for EXT.  */
  void
  riscv_subset_list::handle_combine_ext ()
*************** riscv_subset_list::handle_combine_ext ()
*** 953,960 ****
        for (implied_info = &riscv_implied_info[0]; implied_info->ext;
  	   ++implied_info)
  	{
! 	  /* Skip if implied extension don't match combine extension */
! 	  if (strcmp (combine_info->name, implied_info->ext) != 0)
  	    continue;
  
  	  if (lookup (implied_info->implied_ext))
--- 1287,1293 ----
        for (implied_info = &riscv_implied_info[0]; implied_info->ext;
  	   ++implied_info)
  	{
! 	  if (!implied_info->match (this, combine_info->name))
  	    continue;
  
  	  if (lookup (implied_info->implied_ext))
*************** riscv_subset_list::handle_combine_ext ()
*** 978,983 ****
--- 1311,1351 ----
      }
  }
  
+ void
+ riscv_subset_list::check_conflict_ext ()
+ {
+   if (lookup ("zcf") && m_xlen == 64)
+     error_at (m_loc, "%<-march=%s%>: zcf extension supports in rv32 only",
+ 	      m_arch);
+ 
+   if (lookup ("zfinx") && lookup ("f"))
+     error_at (m_loc,
+ 	      "%<-march=%s%>: z*inx conflicts with floating-point "
+ 	      "extensions",
+ 	      m_arch);
+ 
+   /* 'H' hypervisor extension requires base ISA with 32 registers.  */
+   if (lookup ("e") && lookup ("h"))
+     error_at (m_loc, "%<-march=%s%>: h extension requires i extension", m_arch);
+ 
+   if (lookup ("zcd"))
+     {
+       if (lookup ("zcmt"))
+ 	error_at (m_loc, "%<-march=%s%>: zcd conflicts with zcmt", m_arch);
+       if (lookup ("zcmp"))
+ 	error_at (m_loc, "%<-march=%s%>: zcd conflicts with zcmp", m_arch);
+     }
+ 
+   if ((lookup ("v") || lookup ("zve32x")
+ 	 || lookup ("zve64x") || lookup ("zve32f")
+ 	 || lookup ("zve64f") || lookup ("zve64d")
+ 	 || lookup ("zvl32b") || lookup ("zvl64b")
+ 	 || lookup ("zvl128b") || lookup ("zvfh"))
+ 	 && lookup ("xtheadvector"))
+     error_at (m_loc, "%<-march=%s%>: xtheadvector conflicts with vector "
+ 		   "extension or its sub-extensions", m_arch);
+ }
+ 
  /* Parsing function for multi-letter extensions.
  
     Return Value:
*************** riscv_subset_list::handle_combine_ext ()
*** 986,1093 ****
     Arguments:
       `p`: Current parsing position.
       `ext_type`: What kind of extensions, 's', 'z' or 'x'.
!      `ext_type_str`: Full name for kind of extension.  */
  
  const char *
! riscv_subset_list::parse_multiletter_ext (const char *p,
! 					  const char *ext_type,
! 					  const char *ext_type_str)
  {
    unsigned major_version = 0;
    unsigned minor_version = 0;
    size_t ext_type_len = strlen (ext_type);
  
!   while (*p)
!     {
!       if (*p == '_')
! 	{
! 	  p++;
! 	  continue;
! 	}
! 
!       if (strncmp (p, ext_type, ext_type_len) != 0)
! 	break;
  
!       char *subset = xstrdup (p);
!       char *q = subset;
!       const char *end_of_version;
!       bool explicit_version_p = false;
!       char *ext;
!       char backup;
!       size_t len;
!       size_t end_of_version_pos, i;
!       bool found_any_number = false;
!       bool found_minor_version = false;
  
        /* Parse until end of this extension including version number.  */
        while (*++q != '\0' && *q != '_')
  	;
  
-       backup = *q;
-       *q = '\0';
        len = q - subset;
!       *q = backup;
  
!       end_of_version_pos = len;
!       /* Find the begin of version string.  */
!       for (i = len -1; i > 0; --i)
  	{
! 	  if (ISDIGIT (subset[i]))
! 	    {
! 	      found_any_number = true;
! 	      continue;
! 	    }
! 	  /* Might be version seperator, but need to check one more char,
! 	     we only allow <major>p<minor>, so we could stop parsing if found
! 	     any more `p`.  */
! 	  if (subset[i] == 'p' &&
! 	      !found_minor_version &&
! 	      found_any_number && ISDIGIT (subset[i-1]))
! 	    {
! 	      found_minor_version = true;
! 	      continue;
! 	    }
! 
! 	  end_of_version_pos = i + 1;
! 	  break;
  	}
  
!       backup = subset[end_of_version_pos];
!       subset[end_of_version_pos] = '\0';
!       ext = xstrdup (subset);
!       subset[end_of_version_pos] = backup;
  
!       end_of_version
! 	= parsing_subset_version (ext, subset + end_of_version_pos, &major_version, &minor_version,
! 				  /* std_ext_p= */ false, &explicit_version_p);
!       free (ext);
  
!       if (end_of_version == NULL)
! 	return NULL;
  
!       subset[end_of_version_pos] = '\0';
  
!       if (strlen (subset) == 1)
! 	{
! 	  error_at (m_loc, "%<-march=%s%>: name of %s must be more than 1 letter",
! 		    m_arch, ext_type_str);
! 	  free (subset);
! 	  return NULL;
! 	}
  
!       add (subset, major_version, minor_version, explicit_version_p, false);
!       p += end_of_version - subset;
        free (subset);
  
!       if (*p != '\0' && *p != '_')
! 	{
! 	  error_at (m_loc, "%<-march=%s%>: %s must separate with %<_%>",
! 		    m_arch, ext_type_str);
! 	  return NULL;
! 	}
      }
  
    return p;
  }
  
  /* Parsing arch string to subset list, return NULL if parsing failed.  */
--- 1354,1492 ----
     Arguments:
       `p`: Current parsing position.
       `ext_type`: What kind of extensions, 's', 'z' or 'x'.
!      `ext_type_str`: Full name for kind of extension.
!      `exact_single_p`: True if input string is exactly an extension and end
!      with '\0'.   */
! 
  
  const char *
! riscv_subset_list::parse_single_multiletter_ext (const char *p,
! 						 const char *ext_type,
! 						 const char *ext_type_str,
! 						 bool exact_single_p)
  {
    unsigned major_version = 0;
    unsigned minor_version = 0;
    size_t ext_type_len = strlen (ext_type);
  
!   if (strncmp (p, ext_type, ext_type_len) != 0)
!     return NULL;
  
!   char *subset = xstrdup (p);
!   const char *end_of_version;
!   bool explicit_version_p = false;
!   char *q = subset;
!   char *ext;
!   char backup;
!   size_t len = strlen (p);
!   size_t end_of_version_pos, i;
!   bool found_any_number = false;
!   bool found_minor_version = false;
  
+   if (!exact_single_p)
+     {
+       /* Extension may not ended with '\0', may come with another extension
+ 	 which concat by '_' */
        /* Parse until end of this extension including version number.  */
        while (*++q != '\0' && *q != '_')
  	;
  
        len = q - subset;
!     }
  
!   end_of_version_pos = len;
!   /* Find the begin of version string.  */
!   for (i = len -1; i > 0; --i)
!     {
!       if (ISDIGIT (subset[i]))
  	{
! 	  found_any_number = true;
! 	  continue;
! 	}
!       /* Might be version seperator, but need to check one more char,
! 	 we only allow <major>p<minor>, so we could stop parsing if found
! 	 any more `p`.  */
!       if (subset[i] == 'p' &&
! 	  !found_minor_version &&
! 	  found_any_number && ISDIGIT (subset[i-1]))
! 	{
! 	  found_minor_version = true;
! 	  continue;
  	}
  
!       end_of_version_pos = i + 1;
!       break;
!     }
  
!   backup = subset[end_of_version_pos];
!   subset[end_of_version_pos] = '\0';
!   ext = xstrdup (subset);
!   subset[end_of_version_pos] = backup;
  
!   end_of_version
!     = parsing_subset_version (ext, subset + end_of_version_pos, &major_version,
! 			      &minor_version, /* std_ext_p= */ false,
! 			      &explicit_version_p);
!   free (ext);
  
!   if (end_of_version == NULL)
!     {
!       free (subset);
!       return NULL;
!     }
  
!   subset[end_of_version_pos] = '\0';
  
!   if (strlen (subset) == 1)
!     {
!       error_at (m_loc, "%<-march=%s%>: name of %s must be more than 1 letter",
! 		m_arch, ext_type_str);
        free (subset);
+       return NULL;
+     }
  
!   add (subset, major_version, minor_version, explicit_version_p, false);
!   p += end_of_version - subset;
!   free (subset);
! 
!   if (*p != '\0' && *p != '_')
!     {
!       error_at (m_loc, "%<-march=%s%>: %s must separate with %<_%>",
! 		m_arch, ext_type_str);
!       return NULL;
      }
  
    return p;
+ 
+ }
+ 
+ /* Parsing function for a single-letter or multi-letter extensions.
+ 
+    Return Value:
+      Points to the end of extensions.
+ 
+    Arguments:
+      `p`: Current parsing position.
+      `exact_single_p`: True if input string is exactly an extension and end
+      with '\0'.  */
+ 
+ const char *
+ riscv_subset_list::parse_single_ext (const char *p, bool exact_single_p)
+ {
+   switch (p[0])
+     {
+     case 'x':
+       return parse_single_multiletter_ext (p, "x", "non-standard extension",
+ 					   exact_single_p);
+     case 'z':
+       return parse_single_multiletter_ext (p, "z", "sub-extension",
+ 					   exact_single_p);
+     case 's':
+       return parse_single_multiletter_ext (p, "s", "supervisor extension",
+ 					   exact_single_p);
+     default:
+       return parse_single_std_ext (p, exact_single_p);
+     }
  }
  
  /* Parsing arch string to subset list, return NULL if parsing failed.  */
*************** riscv_subset_list::parse_multiletter_ext
*** 1095,1167 ****
  riscv_subset_list *
  riscv_subset_list::parse (const char *arch, location_t loc)
  {
    riscv_subset_list *subset_list = new riscv_subset_list (arch, loc);
-   riscv_subset_t *itr;
    const char *p = arch;
!   if (startswith (p, "rv32"))
!     {
!       subset_list->m_xlen = 32;
!       p += 4;
!     }
!   else if (startswith (p, "rv64"))
!     {
!       subset_list->m_xlen = 64;
!       p += 4;
!     }
!   else
      {
!       error_at (loc, "%<-march=%s%>: ISA string must begin with rv32 or rv64",
! 		arch);
!       goto fail;
      }
  
-   /* Parsing standard extension.  */
-   p = subset_list->parse_std_ext (p);
- 
    if (p == NULL)
      goto fail;
  
!   /* Parsing supervisor extension.  */
!   p = subset_list->parse_multiletter_ext (p, "s", "supervisor extension");
  
!   if (p == NULL)
!     goto fail;
  
!   /* Parsing sub-extensions.  */
!   p = subset_list->parse_multiletter_ext (p, "z", "sub-extension");
  
!   if (p == NULL)
!     goto fail;
  
!   /* Parsing non-standard extension.  */
!   p = subset_list->parse_multiletter_ext (p, "x", "non-standard extension");
  
!   if (p == NULL)
!     goto fail;
  
!   if (*p != '\0')
!     {
!       error_at (loc, "%<-march=%s%>: unexpected ISA string at end: %qs",
!                arch, p);
!       goto fail;
!     }
  
!   for (itr = subset_list->m_head; itr != NULL; itr = itr->next)
!     {
!       subset_list->handle_implied_ext (itr);
!     }
  
!   subset_list->handle_combine_ext ();
  
!   if (subset_list->lookup ("zfinx") && subset_list->lookup ("f"))
!     error_at (loc, "%<-march=%s%>: z*inx conflicts with floating-point "
! 		   "extensions", arch);
  
!   return subset_list;
  
! fail:
!   delete subset_list;
!   return NULL;
  }
  
  /* Return the current arch string.  */
--- 1494,1577 ----
  riscv_subset_list *
  riscv_subset_list::parse (const char *arch, location_t loc)
  {
+   if (riscv_subset_list::parse_failed)
+     return NULL;
+ 
    riscv_subset_list *subset_list = new riscv_subset_list (arch, loc);
    const char *p = arch;
!   p = subset_list->parse_base_ext (p);
!   if (p == NULL)
!     goto fail;
! 
!   while (p && *p)
      {
!       switch (*p)
! 	{
! 	case '_':
! 	  ++p;
! 	  continue;
! 	case 'e':
! 	case 'i':
! 	case 'g':
! 	  error_at (loc, "%<-march=%s%>: i, e or g must be the first extension",
! 		    arch);
! 	  goto fail;
! 	default:
! 	  p = subset_list->parse_single_ext (p, /*exact_single_p=*/ false);
! 	}
      }
  
    if (p == NULL)
      goto fail;
  
!   subset_list->finalize ();
  
!   return subset_list;
  
! fail:
!   delete subset_list;
!   riscv_subset_list::parse_failed = true;
!   return NULL;
! }
  
! /* Clone whole subset list.  */
  
! riscv_subset_list *
! riscv_subset_list::clone () const
! {
!   riscv_subset_list *new_list = new riscv_subset_list (m_arch, m_loc);
!   for (riscv_subset_t *itr = m_head; itr != NULL; itr = itr->next)
!     new_list->add (itr->name.c_str (), itr->major_version, itr->minor_version,
! 		   itr->explicit_version_p, true);
  
!   new_list->m_xlen = m_xlen;
!   return new_list;
! }
  
! void
! riscv_subset_list::set_loc (location_t loc)
! {
!   m_loc = loc;
! }
  
! /* Make sure the implied or combined extension is included after add
!    a new std extension to subset list or likewise.  For exmaple as below,
  
!    void __attribute__((target("arch=+v"))) func () with -march=rv64gc.
  
!    The implied zvl128b and zve64d of the std v should be included.  */
! void
! riscv_subset_list::finalize ()
! {
!   riscv_subset_t *subset;
  
!   for (subset = m_head; subset != NULL; subset = subset->next)
!     handle_implied_ext (subset->name.c_str ());
  
!   gcc_assert (check_implied_ext ());
! 
!   handle_combine_ext ();
!   check_conflict_ext ();
  }
  
  /* Return the current arch string.  */
*************** static const riscv_ext_flag_table_t risc
*** 1199,1205 ****
--- 1609,1618 ----
  
    {"zicsr",    &gcc_options::x_riscv_zi_subext, MASK_ZICSR},
    {"zifencei", &gcc_options::x_riscv_zi_subext, MASK_ZIFENCEI},
+   {"zicond",   &gcc_options::x_riscv_zi_subext, MASK_ZICOND},
  
+   {"za64rs", &gcc_options::x_riscv_za_subext, MASK_ZA64RS},
+   {"za128rs", &gcc_options::x_riscv_za_subext, MASK_ZA128RS},
    {"zawrs", &gcc_options::x_riscv_za_subext, MASK_ZAWRS},
  
    {"zba",    &gcc_options::x_riscv_zb_subext, MASK_ZBA},
*************** static const riscv_ext_flag_table_t risc
*** 1223,1231 ****
--- 1636,1652 ----
    {"zksh",   &gcc_options::x_riscv_zk_subext, MASK_ZKSH},
    {"zkt",    &gcc_options::x_riscv_zk_subext, MASK_ZKT},
  
+   {"zihintntl", &gcc_options::x_riscv_zi_subext, MASK_ZIHINTNTL},
+   {"zihintpause", &gcc_options::x_riscv_zi_subext, MASK_ZIHINTPAUSE},
+ 
    {"zicboz", &gcc_options::x_riscv_zicmo_subext, MASK_ZICBOZ},
    {"zicbom", &gcc_options::x_riscv_zicmo_subext, MASK_ZICBOM},
    {"zicbop", &gcc_options::x_riscv_zicmo_subext, MASK_ZICBOP},
+   {"zic64b", &gcc_options::x_riscv_zicmo_subext, MASK_ZIC64B},
+   {"ziccamoa", &gcc_options::x_riscv_zicmo_subext, MASK_ZICCAMOA},
+   {"ziccif", &gcc_options::x_riscv_zicmo_subext, MASK_ZICCIF},
+   {"zicclsm", &gcc_options::x_riscv_zicmo_subext, MASK_ZICCLSM},
+   {"ziccrse", &gcc_options::x_riscv_zicmo_subext, MASK_ZICCRSE},
  
    {"zve32x",   &gcc_options::x_target_flags, MASK_VECTOR},
    {"zve32f",   &gcc_options::x_target_flags, MASK_VECTOR},
*************** static const riscv_ext_flag_table_t risc
*** 1243,1248 ****
--- 1664,1689 ----
    {"zve64x",   &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_64},
    {"zve64f",   &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_32},
    {"zve64d",   &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_64},
+   {"zvfbfmin", &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_BF_16},
+   {"zvfhmin",  &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_16},
+   {"zvfh",     &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_16},
+ 
+   {"zvbb",     &gcc_options::x_riscv_zvb_subext, MASK_ZVBB},
+   {"zvbc",     &gcc_options::x_riscv_zvb_subext, MASK_ZVBC},
+   {"zvkb",     &gcc_options::x_riscv_zvb_subext, MASK_ZVKB},
+   {"zvkg",     &gcc_options::x_riscv_zvk_subext, MASK_ZVKG},
+   {"zvkned",   &gcc_options::x_riscv_zvk_subext, MASK_ZVKNED},
+   {"zvknha",   &gcc_options::x_riscv_zvk_subext, MASK_ZVKNHA},
+   {"zvknhb",   &gcc_options::x_riscv_zvk_subext, MASK_ZVKNHB},
+   {"zvksed",   &gcc_options::x_riscv_zvk_subext, MASK_ZVKSED},
+   {"zvksh",    &gcc_options::x_riscv_zvk_subext, MASK_ZVKSH},
+   {"zvkn",     &gcc_options::x_riscv_zvk_subext, MASK_ZVKN},
+   {"zvknc",    &gcc_options::x_riscv_zvk_subext, MASK_ZVKNC},
+   {"zvkng",    &gcc_options::x_riscv_zvk_subext, MASK_ZVKNG},
+   {"zvks",     &gcc_options::x_riscv_zvk_subext, MASK_ZVKS},
+   {"zvksc",    &gcc_options::x_riscv_zvk_subext, MASK_ZVKSC},
+   {"zvksg",    &gcc_options::x_riscv_zvk_subext, MASK_ZVKSG},
+   {"zvkt",     &gcc_options::x_riscv_zvk_subext, MASK_ZVKT},
  
    {"zvl32b",    &gcc_options::x_riscv_zvl_flags, MASK_ZVL32B},
    {"zvl64b",    &gcc_options::x_riscv_zvl_flags, MASK_ZVL64B},
*************** static const riscv_ext_flag_table_t risc
*** 1259,1270 ****
--- 1700,1733 ----
  
    {"zfhmin",    &gcc_options::x_riscv_zf_subext, MASK_ZFHMIN},
    {"zfh",       &gcc_options::x_riscv_zf_subext, MASK_ZFH},
+   {"zvfbfmin",  &gcc_options::x_riscv_zf_subext, MASK_ZVFBFMIN},
+   {"zvfhmin",   &gcc_options::x_riscv_zf_subext, MASK_ZVFHMIN},
+   {"zvfh",      &gcc_options::x_riscv_zf_subext, MASK_ZVFH},
+ 
+   {"zfa",       &gcc_options::x_riscv_zfa_subext, MASK_ZFA},
  
    {"zmmul", &gcc_options::x_riscv_zm_subext, MASK_ZMMUL},
  
+   /* Code-size reduction extensions.  */
+   {"zca",     &gcc_options::x_riscv_zc_subext, MASK_ZCA},
+   {"zcb",     &gcc_options::x_riscv_zc_subext, MASK_ZCB},
+   {"zce",     &gcc_options::x_riscv_zc_subext, MASK_ZCE},
+   {"zcf",     &gcc_options::x_riscv_zc_subext, MASK_ZCF},
+   {"zcd",     &gcc_options::x_riscv_zc_subext, MASK_ZCD},
+   {"zcmp",    &gcc_options::x_riscv_zc_subext, MASK_ZCMP},
+   {"zcmt",    &gcc_options::x_riscv_zc_subext, MASK_ZCMT},
+ 
    {"svinval", &gcc_options::x_riscv_sv_subext, MASK_SVINVAL},
    {"svnapot", &gcc_options::x_riscv_sv_subext, MASK_SVNAPOT},
  
+   {"ztso", &gcc_options::x_riscv_ztso_subext, MASK_ZTSO},
+ 
+   {"xcvmac",        &gcc_options::x_riscv_xcv_subext, MASK_XCVMAC},
+   {"xcvalu",        &gcc_options::x_riscv_xcv_subext, MASK_XCVALU},
+   {"xcvelw",        &gcc_options::x_riscv_xcv_subext, MASK_XCVELW},
+   {"xcvsimd",       &gcc_options::x_riscv_xcv_subext, MASK_XCVSIMD},
+   {"xcvbi",         &gcc_options::x_riscv_xcv_subext, MASK_XCVBI},
+ 
    {"xtheadba",      &gcc_options::x_riscv_xthead_subext, MASK_XTHEADBA},
    {"xtheadbb",      &gcc_options::x_riscv_xthead_subext, MASK_XTHEADBB},
    {"xtheadbs",      &gcc_options::x_riscv_xthead_subext, MASK_XTHEADBS},
*************** static const riscv_ext_flag_table_t risc
*** 1277,1286 ****
--- 1740,1795 ----
    {"xtheadmemidx",  &gcc_options::x_riscv_xthead_subext, MASK_XTHEADMEMIDX},
    {"xtheadmempair", &gcc_options::x_riscv_xthead_subext, MASK_XTHEADMEMPAIR},
    {"xtheadsync",    &gcc_options::x_riscv_xthead_subext, MASK_XTHEADSYNC},
+   {"xtheadvector",  &gcc_options::x_riscv_xthead_subext, MASK_XTHEADVECTOR},
+   {"xtheadvector",  &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_32},
+   {"xtheadvector",  &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_64},
+   {"xtheadvector",  &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_32},
+   {"xtheadvector",  &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_64},
+   {"xtheadvector",  &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_16},
+   {"xtheadvector",  &gcc_options::x_riscv_zvl_flags, MASK_ZVL32B},
+   {"xtheadvector",  &gcc_options::x_riscv_zvl_flags, MASK_ZVL64B},
+   {"xtheadvector",  &gcc_options::x_riscv_zvl_flags, MASK_ZVL128B},
+   {"xtheadvector",  &gcc_options::x_riscv_zf_subext, MASK_ZVFHMIN},
+   {"xtheadvector",  &gcc_options::x_riscv_zf_subext, MASK_ZVFH},
+   {"xtheadvector",  &gcc_options::x_target_flags, MASK_FULL_V},
+   {"xtheadvector",  &gcc_options::x_target_flags, MASK_VECTOR},
+ 
+   {"xventanacondops", &gcc_options::x_riscv_xventana_subext, MASK_XVENTANACONDOPS},
  
    {NULL, NULL, 0}
  };
  
+ /* Apply SUBSET_LIST to OPTS if OPTS is not null, also set CURRENT_SUBSET_LIST
+    to SUBSET_LIST, just note this WON'T delete old CURRENT_SUBSET_LIST.  */
+ 
+ void
+ riscv_set_arch_by_subset_list (riscv_subset_list *subset_list,
+ 			       struct gcc_options *opts)
+ {
+   if (opts)
+     {
+       const riscv_ext_flag_table_t *arch_ext_flag_tab;
+       /* Clean up target flags before we set.  */
+       for (arch_ext_flag_tab = &riscv_ext_flag_table[0]; arch_ext_flag_tab->ext;
+ 	   ++arch_ext_flag_tab)
+ 	opts->*arch_ext_flag_tab->var_ref &= ~arch_ext_flag_tab->mask;
+ 
+       if (subset_list->xlen () == 32)
+ 	opts->x_target_flags &= ~MASK_64BIT;
+       else if (subset_list->xlen () == 64)
+ 	opts->x_target_flags |= MASK_64BIT;
+ 
+       for (arch_ext_flag_tab = &riscv_ext_flag_table[0]; arch_ext_flag_tab->ext;
+ 	   ++arch_ext_flag_tab)
+ 	{
+ 	  if (subset_list->lookup (arch_ext_flag_tab->ext))
+ 	    opts->*arch_ext_flag_tab->var_ref |= arch_ext_flag_tab->mask;
+ 	}
+     }
+ 
+   current_subset_list = subset_list;
+ }
+ 
  /* Parse a RISC-V ISA string into an option mask.  Must clear or set all arch
     dependent mask bits, in case more than one -march string is passed.  */
  
*************** riscv_parse_arch_string (const char *isa
*** 1318,1327 ****
  	}
      }
  
!   if (current_subset_list)
      delete current_subset_list;
  
!   current_subset_list = subset_list;
  }
  
  /* Return the riscv_cpu_info entry for CPU, NULL if not found.  */
--- 1827,1840 ----
  	}
      }
  
!   /* Avoid double delete if current_subset_list equals cmdline_subset_list.  */
!   if (current_subset_list && current_subset_list != cmdline_subset_list)
      delete current_subset_list;
  
!   if (cmdline_subset_list)
!     delete cmdline_subset_list;
! 
!   current_subset_list = cmdline_subset_list = subset_list;
  }
  
  /* Return the riscv_cpu_info entry for CPU, NULL if not found.  */
*************** riscv_get_valid_option_values (int optio
*** 1827,1836 ****
--- 2340,2395 ----
    return v;
  }
  
+ const char *
+ riscv_arch_help (int, const char **)
+ {
+   /* Collect all exts, and sort it in canonical order.  */
+   struct extension_comparator {
+     bool operator()(const std::string& a, const std::string& b) const {
+       return subset_cmp(a, b) >= 1;
+     }
+   };
+   std::map<std::string, std::set<unsigned>, extension_comparator> all_exts;
+   for (const riscv_ext_version &ext : riscv_ext_version_table)
+     {
+       if (!ext.name)
+ 	break;
+       if (ext.name[0] == 'g')
+ 	continue;
+       unsigned version_value = (ext.major_version * RISCV_MAJOR_VERSION_BASE)
+ 				+ (ext.minor_version
+ 				   * RISCV_MINOR_VERSION_BASE);
+       all_exts[ext.name].insert(version_value);
+     }
+ 
+   printf("All available -march extensions for RISC-V:\n");
+   printf("\t%-20sVersion\n", "Name");
+   for (auto const &ext_info : all_exts)
+     {
+       printf("\t%-20s\t", ext_info.first.c_str());
+       bool first = true;
+       for (auto version : ext_info.second)
+ 	{
+ 	  if (first)
+ 	    first = false;
+ 	  else
+ 	    printf(", ");
+ 	  unsigned major = version / RISCV_MAJOR_VERSION_BASE;
+ 	  unsigned minor = (version % RISCV_MAJOR_VERSION_BASE)
+ 			    / RISCV_MINOR_VERSION_BASE;
+ 	  printf("%u.%u", major, minor);
+ 	}
+       printf("\n");
+     }
+   exit (0);
+ }
+ 
  /* Implement TARGET_OPTION_OPTIMIZATION_TABLE.  */
  static const struct default_options riscv_option_optimization_table[] =
    {
      { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 },
+     /* Enable -fsched-pressure starting at -O1.  */
+     { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 },
      { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 },
  #if TARGET_DEFAULT_ASYNC_UNWIND_TABLES == 1
      { OPT_LEVELS_ALL, OPT_fasynchronous_unwind_tables, NULL, 1 },
diff -Nrcpad gcc-13.2.0/gcc/common/config/rs6000/rs6000-common.cc gcc-14.1.0/gcc/common/config/rs6000/rs6000-common.cc
*** gcc-13.2.0/gcc/common/config/rs6000/rs6000-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/rs6000/rs6000-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for IBM RS/6000.
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for IBM RS/6000.
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** static const struct default_options rs60
*** 34,39 ****
--- 34,41 ----
      { OPT_LEVELS_ALL, OPT_fsplit_wide_types_early, NULL, 1 },
      /* Enable -fsched-pressure for first pass instruction scheduling.  */
      { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 },
+     /* Enable -free for zero extension and sign extension elimination.*/
+     { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 },
      /* Enable -munroll-only-small-loops with -funroll-loops to unroll small
         loops at -O2 and above by default.  */
      { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_funroll_loops, NULL, 1 },
diff -Nrcpad gcc-13.2.0/gcc/common/config/rx/rx-common.cc gcc-14.1.0/gcc/common/config/rx/rx-common.cc
*** gcc-13.2.0/gcc/common/config/rx/rx-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/rx/rx-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Renesas RX.
!    Copyright (C) 2008-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Renesas RX.
!    Copyright (C) 2008-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/s390/s390-common.cc gcc-14.1.0/gcc/common/config/s390/s390-common.cc
*** gcc-13.2.0/gcc/common/config/s390/s390-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/s390/s390-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for IBM S/390 and zSeries.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for IBM S/390 and zSeries.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/sh/sh-common.cc gcc-14.1.0/gcc/common/config/sh/sh-common.cc
*** gcc-13.2.0/gcc/common/config/sh/sh-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/sh/sh-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Renesas / SuperH SH.
!    Copyright (C) 1993-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Renesas / SuperH SH.
!    Copyright (C) 1993-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/sparc/sparc-common.cc gcc-14.1.0/gcc/common/config/sparc/sparc-common.cc
*** gcc-13.2.0/gcc/common/config/sparc/sparc-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/sparc/sparc-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for SPARC.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for SPARC.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/v850/v850-common.cc gcc-14.1.0/gcc/common/config/v850/v850-common.cc
*** gcc-13.2.0/gcc/common/config/v850/v850-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/v850/v850-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for NEC V850 series.
!    Copyright (C) 1996-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for NEC V850 series.
!    Copyright (C) 1996-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/vax/vax-common.cc gcc-14.1.0/gcc/common/config/vax/vax-common.cc
*** gcc-13.2.0/gcc/common/config/vax/vax-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/vax/vax-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for VAX.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for VAX.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/visium/visium-common.cc gcc-14.1.0/gcc/common/config/visium/visium-common.cc
*** gcc-13.2.0/gcc/common/config/visium/visium-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/visium/visium-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Visium.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by C.Nettleton,J.P.Parkes and P.Garbett.
  
  This file is part of GCC.
--- 1,5 ----
  /* Common hooks for Visium.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by C.Nettleton,J.P.Parkes and P.Garbett.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/common/config/xstormy16/xstormy16-common.cc gcc-14.1.0/gcc/common/config/xstormy16/xstormy16-common.cc
*** gcc-13.2.0/gcc/common/config/xstormy16/xstormy16-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/xstormy16/xstormy16-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Xstormy16.
!    Copyright (C) 1997-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Xstormy16.
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common/config/xtensa/xtensa-common.cc gcc-14.1.0/gcc/common/config/xtensa/xtensa-common.cc
*** gcc-13.2.0/gcc/common/config/xtensa/xtensa-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common/config/xtensa/xtensa-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Common hooks for Tensilica's Xtensa architecture.
!    Copyright (C) 2001-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Common hooks for Tensilica's Xtensa architecture.
!    Copyright (C) 2001-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/common.md gcc-14.1.0/gcc/common.md
*** gcc-13.2.0/gcc/common.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Common GCC machine description file, shared by all targets.
! ;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Common GCC machine description file, shared by all targets.
! ;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 17,22 ****
--- 17,50 ----
  ;; along with GCC; see the file COPYING3.  If not see
  ;; <http://www.gnu.org/licenses/>.  */
  
+ ;; This predicate is intended to be paired with register constraints that use
+ ;; register filters to impose an alignment.  Operands that are aligned via
+ ;; TARGET_HARD_REGNO_MODE_OK should use normal register_operands instead.
+ (define_predicate "aligned_register_operand"
+   (match_code "reg,subreg")
+ {
+   /* Require the offset in a non-paradoxical subreg to be naturally aligned.
+      For example, if we have a subreg of something that is double the size of
+      this operand, the offset must select the first or second half of it.  */
+   if (SUBREG_P (op)
+       && multiple_p (SUBREG_BYTE (op), GET_MODE_SIZE (GET_MODE (op))))
+     op = SUBREG_REG (op);
+   if (!REG_P (op))
+     return false;
+ 
+   if (HARD_REGISTER_P (op))
+     {
+       if (!in_hard_reg_set_p (operand_reg_set, GET_MODE (op), REGNO (op)))
+ 	return false;
+ 
+       /* Reject hard registers that would need reloading, so that the reload
+ 	 is visible to IRA and to pre-RA optimizers.  */
+       if (REGNO (op) % REG_NREGS (op) != 0)
+ 	return false;
+     }
+   return true;
+ })
+ 
  (define_register_constraint "r" "GENERAL_REGS"
    "Matches any general register.")
  
diff -Nrcpad gcc-13.2.0/gcc/common.opt gcc-14.1.0/gcc/common.opt
*** gcc-13.2.0/gcc/common.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/common.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the language- and target-independent parts of the compiler.
  
! ; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the language- and target-independent parts of the compiler.
  
! ; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** Wfree-nonheap-object
*** 634,639 ****
--- 634,643 ----
  Common Var(warn_free_nonheap_object) Init(1) Warning
  Warn when attempting to free a non-heap object.
  
+ Whardened
+ Common Var(warn_hardened) Init(1) Warning
+ Warn when -fhardened did not enable an option from its set.
+ 
  Whsa
  Common Ignore Warning
  Does nothing.  Preserved for backward compatibility.
*************** Wsuggest-attribute=malloc
*** 781,786 ****
--- 785,794 ----
  Common Var(warn_suggest_attribute_malloc) Warning
  Warn about functions which might be candidates for __attribute__((malloc)).
  
+ Wsuggest-attribute=returns_nonnull
+ Common Var(warn_suggest_attribute_returns_nonnull) Warning
+ Warn about functions which might be candidates for __attribute__((returns_nonnull)).
+ 
  Wsuggest-final-types
  Common Var(warn_suggest_final_types) Warning
  Warn about C++ polymorphic types where adding final keyword would improve code quality.
*************** Wcoverage-invalid-line-number
*** 862,867 ****
--- 870,880 ----
  Common Var(warn_coverage_invalid_linenum) Init(1) Warning
  Warn in case a function ends earlier than it begins due to an invalid linenum macros.
  
+ Wcoverage-too-many-conditions
+ Common Var(warn_too_many_conditions) Init(1) Warning
+ Warn when a conditional has too many terms and condition coverage profiling
+ gives up instrumenting the expression.
+ 
  Wmissing-profile
  Common Var(warn_missing_profile) Init(1) Warning
  Warn in case profiles in -fprofile-use do not exist.
*************** Driver Undocumented
*** 1010,1015 ****
--- 1023,1033 ----
  ; 18: Corrects errors in mangling of lambdas with additional context.
  ;     Default in G++ 13.
  ;
+ ; 19: Emits ABI tags if needed in structured binding mangled names.
+ ;     Ignores cv-quals on [[no_unique_object]] members.
+ ;     Mangles constraints on function templates.
+ ;     Default in G++ 14.
+ ;
  ; Additional positive integers will be assigned as new versions of
  ; the ABI become the default version of the ABI.
  fabi-version=
*************** Align the start of functions.
*** 1027,1035 ****
  falign-functions=
  Common RejectNegative Joined Var(str_align_functions) Optimization
  
- flimit-function-alignment
- Common Var(flag_limit_function_alignment) Optimization Init(0)
- 
  falign-jumps
  Common Var(flag_align_jumps) Optimization
  Align labels which are only reached by jumping.
--- 1045,1050 ----
*************** fcprop-registers
*** 1248,1253 ****
--- 1263,1272 ----
  Common Var(flag_cprop_registers) Optimization
  Perform a register copy-propagation optimization pass.
  
+ ffold-mem-offsets
+ Common Var(flag_fold_mem_offsets) Init(1) Optimization
+ Fold instructions calculating memory offsets to the memory access instruction if possible.
+ 
  fcrossjumping
  Common Var(flag_crossjumping) Optimization
  Perform cross-jumping optimization.
*************** Enum(diagnostic_color_rule) String(alway
*** 1375,1380 ****
--- 1394,1403 ----
  EnumValue
  Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
  
+ fdiagnostics-json-formatting
+ Common Var(flag_diagnostics_json_formatting) Init(1)
+ Enable formatting of JSON output.
+ 
  fdiagnostics-urls=
  Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
  -fdiagnostics-urls=[never|always|auto]	Embed URLs in diagnostics.
*************** fdiagnostics-show-path-depths
*** 1502,1507 ****
--- 1525,1549 ----
  Common Var(flag_diagnostics_show_path_depths) Init(0)
  Show stack depths of events in paths.
  
+ fdiagnostics-text-art-charset=
+ Driver Common Joined RejectNegative Var(flag_diagnostics_text_art_charset) Enum(diagnostic_text_art_charset) Init(DIAGNOSTICS_TEXT_ART_CHARSET_EMOJI)
+ -fdiagnostics-text-art-charset=[none|ascii|unicode|emoji]	Determine which characters to use in text arg diagrams.
+ 
+ Enum
+ Name(diagnostic_text_art_charset) Type(int)
+ 
+ EnumValue
+ Enum(diagnostic_text_art_charset) String(none) Value(DIAGNOSTICS_TEXT_ART_CHARSET_NONE)
+ 
+ EnumValue
+ Enum(diagnostic_text_art_charset) String(ascii) Value(DIAGNOSTICS_TEXT_ART_CHARSET_ASCII)
+ 
+ EnumValue
+ Enum(diagnostic_text_art_charset) String(unicode) Value(DIAGNOSTICS_TEXT_ART_CHARSET_UNICODE)
+ 
+ EnumValue
+ Enum(diagnostic_text_art_charset) String(emoji) Value(DIAGNOSTICS_TEXT_ART_CHARSET_EMOJI)
+ 
  fdiagnostics-minimum-margin-width=
  Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
  Set minimum width of left margin of source code when showing source.
*************** Name(fp_contract_mode) Type(enum fp_cont
*** 1662,1670 ****
  EnumValue
  Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
  
- ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
  EnumValue
! Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
  
  EnumValue
  Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
--- 1704,1711 ----
  EnumValue
  Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
  
  EnumValue
! Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_ON)
  
  EnumValue
  Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
*************** fguess-branch-probability
*** 1793,1798 ****
--- 1834,1843 ----
  Common Var(flag_guess_branch_prob) Optimization
  Enable guessing of branch probabilities.
  
+ fhardened
+ Common Driver Var(flag_hardened)
+ Enable various security-relevant flags.
+ 
  fharden-compares
  Common Var(flag_harden_compares) Optimization
  Harden conditionals not used in branches, checking reversed conditions.
*************** fharden-conditional-branches
*** 1801,1806 ****
--- 1846,1886 ----
  Common Var(flag_harden_conditional_branches) Optimization
  Harden conditional branches by checking reversed conditions.
  
+ fharden-control-flow-redundancy
+ Common Var(flag_harden_control_flow_redundancy) Optimization
+ Harden control flow by recording and checking execution paths.
+ 
+ fhardcfr-skip-leaf
+ Common Var(flag_harden_control_flow_redundancy_skip_leaf) Optimization
+ Disable CFR in leaf functions.
+ 
+ fhardcfr-check-returning-calls
+ Common Var(flag_harden_control_flow_redundancy_check_returning_calls) Init(-1) Optimization
+ Check CFR execution paths also before calls followed by returns of their results.
+ 
+ fhardcfr-check-exceptions
+ Common Var(flag_harden_control_flow_redundancy_check_exceptions) Init(-1) Optimization
+ Check CFR execution paths also when exiting a function through an exception.
+ 
+ fhardcfr-check-noreturn-calls=
+ Common Joined RejectNegative Enum(hardcfr_check_noreturn_calls) Var(flag_harden_control_flow_redundancy_check_noreturn) Init(HCFRNR_UNSPECIFIED) Optimization
+ -fhardcfr-check-noreturn-calls=[always|no-xthrow|nothrow|never]	Check CFR execution paths also before calling noreturn functions.
+ 
+ Enum
+ Name(hardcfr_check_noreturn_calls) Type(enum hardcfr_noret) UnknownError(unknown hardcfr noreturn checking level %qs)
+ 
+ EnumValue
+ Enum(hardcfr_check_noreturn_calls) String(never) Value(HCFRNR_NEVER)
+ 
+ EnumValue
+ Enum(hardcfr_check_noreturn_calls) String(nothrow) Value(HCFRNR_NOTHROW)
+ 
+ EnumValue
+ Enum(hardcfr_check_noreturn_calls) String(no-xthrow) Value(HCFRNR_NO_XTHROW)
+ 
+ EnumValue
+ Enum(hardcfr_check_noreturn_calls) String(always) Value(HCFRNR_ALWAYS)
+ 
  ; Nonzero means ignore `#ident' directives.  0 means handle them.
  ; Generate position-independent code for executables if possible
  ; On SVR4 targets, it also controls whether or not to emit a
*************** finline-atomics
*** 1882,1892 ****
  Common Var(flag_inline_atomics) Init(1) Optimization
  Inline __atomic operations when a lock free instruction sequence is available.
  
  fcf-protection
  Common RejectNegative Alias(fcf-protection=,full)
  
  fcf-protection=
! Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
  -fcf-protection=[full|branch|return|none|check]	Instrument functions with checks to verify jump/call/return control-flow transfer
  instructions have valid targets.
  
--- 1962,2006 ----
  Common Var(flag_inline_atomics) Init(1) Optimization
  Inline __atomic operations when a lock free instruction sequence is available.
  
+ finline-stringops
+ Common RejectNegative Enum(ilsop_fn) Var(flag_inline_stringops, ILSOP_ALL) Enum(ilsop_fn) Init(ILSOP_NONE) Optimization Undocumented
+ 
+ fno-inline-stringops
+ Common RejectNegative Enum(ilsop_fn) Var(flag_inline_stringops, ILSOP_NONE) Enum(ilsop_fn) Optimization Undocumented
+ 
+ finline-stringops=
+ Common Joined Var(flag_inline_stringops) EnumSet Enum(ilsop_fn) Optimization
+ -finline-stringops[=memcmp|memcpy|memmove|memset]
+ Expand supported mem/str operations inline, even if against optimization.
+ 
+ Enum
+ Name(ilsop_fn) Type(enum ilsop_fn) UnknownError(unavailable stringop for inlining %qs)
+ 
+ ; This is not part of any set.
+ ; EnumValue
+ ; Enum(ilsop_fn) String(none) Value(ILSOP_NONE)
+ 
+ EnumValue
+ Enum(ilsop_fn) String(memcmp) Value(ILSOP_MEMCMP) Set(1)
+ 
+ EnumValue
+ Enum(ilsop_fn) String(memcpy) Value(ILSOP_MEMCPY) Set(2)
+ 
+ EnumValue
+ Enum(ilsop_fn) String(memmove) Value(ILSOP_MEMMOVE) Set(3)
+ 
+ EnumValue
+ Enum(ilsop_fn) String(memset) Value(ILSOP_MEMSET) Set(4)
+ 
+ ; This is not part of any set either.
+ ; EnumValue
+ ; Enum(ilsop_fn) String(all) Value(ILSOP_ALL)
+ 
  fcf-protection
  Common RejectNegative Alias(fcf-protection=,full)
  
  fcf-protection=
! Common Joined RejectNegative Enum(cf_protection_level) EnumSet Var(flag_cf_protection) Init(CF_NONE)
  -fcf-protection=[full|branch|return|none|check]	Instrument functions with checks to verify jump/call/return control-flow transfer
  instructions have valid targets.
  
*************** Enum
*** 1894,1912 ****
  Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
  
  EnumValue
! Enum(cf_protection_level) String(full) Value(CF_FULL)
  
  EnumValue
! Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
  
  EnumValue
! Enum(cf_protection_level) String(return) Value(CF_RETURN)
  
  EnumValue
! Enum(cf_protection_level) String(check) Value(CF_CHECK)
  
  EnumValue
! Enum(cf_protection_level) String(none) Value(CF_NONE)
  
  finstrument-functions
  Common Var(flag_instrument_function_entry_exit,1)
--- 2008,2026 ----
  Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
  
  EnumValue
! Enum(cf_protection_level) String(full) Value(CF_FULL) Set(1)
  
  EnumValue
! Enum(cf_protection_level) String(branch) Value(CF_BRANCH) Set(2)
  
  EnumValue
! Enum(cf_protection_level) String(return) Value(CF_RETURN) Set(3)
  
  EnumValue
! Enum(cf_protection_level) String(check) Value(CF_CHECK) Set(4)
  
  EnumValue
! Enum(cf_protection_level) String(none) Value(CF_NONE) Set(1)
  
  finstrument-functions
  Common Var(flag_instrument_function_entry_exit,1)
*************** fmessage-length=
*** 2165,2170 ****
--- 2279,2288 ----
  Common RejectNegative Joined UInteger
  -fmessage-length=<number>	Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
  
+ fmin-function-alignment=
+ Common Joined RejectNegative UInteger Var(flag_min_function_alignment) Optimization
+ Align the start of every function.
+ 
  fmodulo-sched
  Common Var(flag_modulo_sched) Optimization
  Perform SMS based modulo scheduling before the first scheduling pass.
*************** Common Var(flag_move_loop_stores) Optimi
*** 2182,2188 ****
  Move stores out of loops.
  
  fmultiflags
! Common Driver
  Building block for specs-based multilib-aware TFLAGS.
  
  fdce
--- 2300,2306 ----
  Move stores out of loops.
  
  fmultiflags
! Common Driver RejectNegative
  Building block for specs-based multilib-aware TFLAGS.
  
  fdce
*************** fprofile-arcs
*** 2351,2356 ****
--- 2469,2478 ----
  Common Var(profile_arc_flag)
  Insert arc-based program profiling code.
  
+ fcondition-coverage
+ Common Var(condition_coverage_flag)
+ Insert condition coverage profiling code.
+ 
  fprofile-dir=
  Common Joined RejectNegative Var(profile_data_prefix)
  Set the top-level directory for storing the profile data.
*************** starts and when the destructor finishes.
*** 2489,2494 ****
--- 2611,2619 ----
  flifetime-dse=
  Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
  
+ flimit-function-alignment
+ Common Var(flag_limit_function_alignment) Optimization Init(0)
+ 
  flive-patching
  Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
  
*************** fstrict-overflow
*** 2810,2815 ****
--- 2935,2969 ----
  Common
  Treat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer.
  
+ fstrub=disable
+ Common RejectNegative Var(flag_strub, 0)
+ Disable stack scrub entirely, disregarding strub attributes.
+ 
+ fstrub=strict
+ Common RejectNegative Var(flag_strub, -4)
+ Enable stack scrub as per attributes, with strict call checking.
+ 
+ ; If any strub-enabling attribute is seen when the default or strict
+ ; initializer values are in effect, flag_strub is bumped up by 2.  The
+ ; scrub mode gate function will then bump these initializer values to
+ ; 0 if no strub-enabling attribute is seen.  This minimizes the strub
+ ; overhead.
+ fstrub=relaxed
+ Common RejectNegative Var(flag_strub, -3) Init(-3)
+ Restore default strub mode: as per attributes, with relaxed checking.
+ 
+ fstrub=all
+ Common RejectNegative Var(flag_strub, 3)
+ Enable stack scrubbing for all viable functions.
+ 
+ fstrub=at-calls
+ Common RejectNegative Var(flag_strub, 1)
+ Enable at-calls stack scrubbing for all viable functions.
+ 
+ fstrub=internal
+ Common RejectNegative Var(flag_strub, 2)
+ Enable internal stack scrubbing for all viable functions.
+ 
  fsync-libcalls
  Common Var(flag_sync_libcalls) Init(1)
  Implement __atomic operations via libcalls to legacy __sync functions.
*************** Common Var(flag_tracer) Optimization
*** 2862,2871 ****
  Perform superblock formation via tail duplication.
  
  ftrampolines
! Common Var(flag_trampolines) Init(0)
  For targets that normally need trampolines for nested functions, always
  generate them instead of using descriptors.
  
  ; Zero means that floating-point math operations cannot generate a
  ; (user-visible) trap.  This is the case, for example, in nonstop
  ; IEEE 754 arithmetic.
--- 3016,3040 ----
  Perform superblock formation via tail duplication.
  
  ftrampolines
! Common Var(flag_trampolines) Init(HEAP_TRAMPOLINES_INIT)
  For targets that normally need trampolines for nested functions, always
  generate them instead of using descriptors.
  
+ ftrampoline-impl=
+ Common Joined RejectNegative Enum(trampoline_impl) Var(flag_trampoline_impl) Init(HEAP_TRAMPOLINES_INIT ? TRAMPOLINE_IMPL_HEAP : TRAMPOLINE_IMPL_STACK)
+ Whether trampolines are generated in executable memory rather than
+ executable stack.
+ 
+ Enum
+ Name(trampoline_impl) Type(enum trampoline_impl) UnknownError(unknown trampoline implementation %qs)
+ 
+ EnumValue
+ Enum(trampoline_impl) String(stack) Value(TRAMPOLINE_IMPL_STACK)
+ 
+ EnumValue
+ Enum(trampoline_impl) String(heap) Value(TRAMPOLINE_IMPL_HEAP)
+ 
+ 
  ; Zero means that floating-point math operations cannot generate a
  ; (user-visible) trap.  This is the case, for example, in nonstop
  ; IEEE 754 arithmetic.
*************** gas-locview-support
*** 3318,3323 ****
--- 3487,3496 ----
  Common Driver Var(dwarf2out_as_locview_support)
  Assume assembler support for view in (DWARF2+) .loc directives.
  
+ gcodeview
+ Common Driver JoinedOrMissing
+ Generate debug information in CodeView format.
+ 
  gcoff
  Common Driver WarnRemoved
  Does nothing.  Preserved for backward compatibility.
diff -Nrcpad gcc-13.2.0/gcc/common.opt.urls gcc-14.1.0/gcc/common.opt.urls
*** gcc-13.2.0/gcc/common.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/common.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1868 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/common.opt and generated HTML
+ 
+ ###
+ UrlSuffix(gcc/Overall-Options.html#index-_0023_0023_0023)
+ 
+ fversion
+ LangUrlSuffix_D(gdc/Runtime-Options.html#index-fversion)
+ 
+ B
+ UrlSuffix(gcc/Directory-Options.html#index-B) LangUrlSuffix_D(gdc/Directory-Options.html#index-B)
+ 
+ ; skipping UrlSuffix for 'E' due to multiple URLs:
+ ;   duplicate: 'gcc/Link-Options.html#index-E-1'
+ ;   duplicate: 'gcc/Overall-Options.html#index-E'
+ 
+ L
+ UrlSuffix(gcc/Directory-Options.html#index-L) LangUrlSuffix_D(gdc/Directory-Options.html#index-L)
+ 
+ O
+ UrlSuffix(gcc/Optimize-Options.html#index-O)
+ 
+ Os
+ UrlSuffix(gcc/Optimize-Options.html#index-Os)
+ 
+ Ofast
+ UrlSuffix(gcc/Optimize-Options.html#index-Ofast)
+ 
+ Og
+ UrlSuffix(gcc/Optimize-Options.html#index-Og)
+ 
+ Oz
+ UrlSuffix(gcc/Optimize-Options.html#index-Oz)
+ 
+ Q
+ UrlSuffix(gcc/Developer-Options.html#index-Q)
+ 
+ Qn
+ UrlSuffix(gcc/System-V-Options.html#index-Qn)
+ 
+ Qy
+ UrlSuffix(gcc/System-V-Options.html#index-Qy)
+ 
+ ; skipping UrlSuffix for 'S' due to multiple URLs:
+ ;   duplicate: 'gcc/Link-Options.html#index-S-1'
+ ;   duplicate: 'gcc/Overall-Options.html#index-S'
+ 
+ T
+ UrlSuffix(gcc/Link-Options.html#index-T)
+ 
+ ; skipping UrlSuffix for 'W' due to multiple URLs:
+ ;   duplicate: 'gcc/Incompatibilities.html#index-W-3'
+ ;   duplicate: 'gcc/Warning-Options.html#index-W'
+ 
+ Waggregate-return
+ UrlSuffix(gcc/Warning-Options.html#index-Waggregate-return)
+ 
+ Waggressive-loop-optimizations
+ UrlSuffix(gcc/Warning-Options.html#index-Waggressive-loop-optimizations)
+ 
+ Warray-bounds
+ UrlSuffix(gcc/Warning-Options.html#index-Warray-bounds)
+ 
+ Warray-bounds=
+ UrlSuffix(gcc/Warning-Options.html#index-Warray-bounds)
+ 
+ Wuse-after-free
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
+ 
+ Wuse-after-free=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
+ 
+ Wattributes
+ UrlSuffix(gcc/Warning-Options.html#index-Wattributes)
+ 
+ Wattributes=
+ UrlSuffix(gcc/Warning-Options.html#index-Wattributes)
+ 
+ Wattribute-alias
+ UrlSuffix(gcc/Warning-Options.html#index-Wattribute-alias)
+ 
+ Wattribute-alias=
+ UrlSuffix(gcc/Warning-Options.html#index-Wattribute-alias)
+ 
+ Wcast-align
+ UrlSuffix(gcc/Warning-Options.html#index-Wcast-align)
+ 
+ Wcast-align=strict
+ UrlSuffix(gcc/Warning-Options.html#index-Wcast-align_003dstrict)
+ 
+ Wcomplain-wrong-lang
+ UrlSuffix(gcc/Warning-Options.html#index-Wcomplain-wrong-lang)
+ 
+ Wcpp
+ UrlSuffix(gcc/Warning-Options.html#index-Wcpp)
+ 
+ Wattribute-warning
+ UrlSuffix(gcc/Warning-Options.html#index-Wattribute-warning)
+ 
+ Wdeprecated
+ UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated) LangUrlSuffix_D(gdc/Warnings.html#index-Wdeprecated)
+ 
+ Wdeprecated-declarations
+ UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated-declarations)
+ 
+ Wdisabled-optimization
+ UrlSuffix(gcc/Warning-Options.html#index-Wdisabled-optimization)
+ 
+ Werror
+ UrlSuffix(gcc/Warning-Options.html#index-Werror) LangUrlSuffix_D(gdc/Warnings.html#index-Werror)
+ 
+ Werror=
+ UrlSuffix(gcc/Warning-Options.html#index-Werror) LangUrlSuffix_D(gdc/Warnings.html#index-Werror)
+ 
+ Wextra
+ UrlSuffix(gcc/Warning-Options.html#index-Wextra) LangUrlSuffix_D(gdc/Warnings.html#index-Wextra)
+ 
+ Wfatal-errors
+ UrlSuffix(gcc/Warning-Options.html#index-Wfatal-errors)
+ 
+ Wframe-larger-than=
+ UrlSuffix(gcc/Warning-Options.html#index-Wframe-larger-than_003d)
+ 
+ Wfree-nonheap-object
+ UrlSuffix(gcc/Warning-Options.html#index-Wfree-nonheap-object)
+ 
+ Whardened
+ UrlSuffix(gcc/Warning-Options.html#index-Whardened)
+ 
+ Wimplicit-fallthrough
+ UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-fallthrough)
+ 
+ Wimplicit-fallthrough=
+ UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-fallthrough)
+ 
+ Winfinite-recursion
+ UrlSuffix(gcc/Warning-Options.html#index-Winfinite-recursion)
+ 
+ ; skipping UrlSuffix for 'Winline' due to multiple URLs:
+ ;   duplicate: 'gcc/Inline.html#index-Winline-1'
+ ;   duplicate: 'gcc/Warning-Options.html#index-Winline'
+ 
+ Winvalid-memory-model
+ UrlSuffix(gcc/Warning-Options.html#index-Winvalid-memory-model)
+ 
+ Wlarger-than=
+ UrlSuffix(gcc/Warning-Options.html#index-Wlarger-than_003d)
+ 
+ Wnonnull-compare
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-nonnull-compare)
+ 
+ Wnull-dereference
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-null-dereference)
+ 
+ Wunsafe-loop-optimizations
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unsafe-loop-optimizations)
+ 
+ Wmissing-noreturn
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-noreturn)
+ 
+ Wodr
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-odr)
+ 
+ Woverflow
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-overflow)
+ 
+ Wlto-type-mismatch
+ UrlSuffix(gcc/Warning-Options.html#index-Wlto-type-mismatch)
+ 
+ Wpacked
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-packed)
+ 
+ Wpadded
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-padded)
+ 
+ Wpedantic
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-pedantic)
+ 
+ Wreturn-local-addr
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-return-local-addr)
+ 
+ Wshadow
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-shadow)
+ 
+ Wshadow=global
+ UrlSuffix(gcc/Warning-Options.html#index-Wshadow_003dglobal)
+ 
+ Wshadow=local
+ UrlSuffix(gcc/Warning-Options.html#index-Wshadow_003dlocal)
+ 
+ Wshadow=compatible-local
+ UrlSuffix(gcc/Warning-Options.html#index-Wshadow_003dcompatible-local)
+ 
+ Wstack-protector
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-stack-protector)
+ 
+ Wstack-usage=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-stack-usage)
+ 
+ Wstrict-aliasing
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-aliasing)
+ 
+ Wstrict-aliasing=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-aliasing)
+ 
+ Wstrict-overflow
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-overflow)
+ 
+ Wstrict-overflow=
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-overflow)
+ 
+ Wsuggest-attribute=cold
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dcold)
+ 
+ Wsuggest-attribute=const
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dconst)
+ 
+ Wsuggest-attribute=pure
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dpure)
+ 
+ Wsuggest-attribute=noreturn
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dnoreturn)
+ 
+ Wsuggest-attribute=malloc
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dmalloc)
+ 
+ Wsuggest-final-types
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-suggest-final-types)
+ 
+ Wsuggest-final-methods
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-suggest-final-methods)
+ 
+ Wswitch-unreachable
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-unreachable)
+ 
+ Wsystem-headers
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-system-headers)
+ 
+ Wtrampolines
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-trampolines)
+ 
+ Wtrivial-auto-var-init
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-trivial-auto-var-init)
+ 
+ Wtype-limits
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-type-limits)
+ 
+ Wuninitialized
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-uninitialized)
+ 
+ Wmaybe-uninitialized
+ UrlSuffix(gcc/Warning-Options.html#index-Wmaybe-uninitialized)
+ 
+ Wunused
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused)
+ 
+ Wunused-but-set-parameter
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-but-set-parameter)
+ 
+ Wunused-but-set-variable
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-but-set-variable)
+ 
+ Wunused-function
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-function)
+ 
+ Wunused-label
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-label)
+ 
+ Wunused-parameter
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-parameter)
+ 
+ Wunused-value
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-value)
+ 
+ Wunused-variable
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-variable)
+ 
+ Wcoverage-mismatch
+ UrlSuffix(gcc/Warning-Options.html#index-Wcoverage-mismatch)
+ 
+ Wcoverage-invalid-line-number
+ UrlSuffix(gcc/Warning-Options.html#index-Wcoverage-invalid-line-number)
+ 
+ Wcoverage-too-many-conditions
+ UrlSuffix(gcc/Warning-Options.html#index-Wcoverage-too-many-conditions)
+ 
+ Wmissing-profile
+ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-profile)
+ 
+ Wvector-operation-performance
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-vector-operation-performance)
+ 
+ Wtsan
+ UrlSuffix(gcc/Warning-Options.html#index-Wno-tsan)
+ 
+ Xassembler
+ UrlSuffix(gcc/Assembler-Options.html#index-Xassembler)
+ 
+ Xlinker
+ UrlSuffix(gcc/Link-Options.html#index-Xlinker)
+ 
+ Xpreprocessor
+ UrlSuffix(gcc/Preprocessor-Options.html#index-Xpreprocessor)
+ 
+ aux-info
+ UrlSuffix(gcc/C-Dialect-Options.html#index-aux-info)
+ 
+ aux-info=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-aux-info)
+ 
+ coverage
+ UrlSuffix(gcc/Instrumentation-Options.html#index-coverage)
+ 
+ ; skipping UrlSuffix for 'c' due to multiple URLs:
+ ;   duplicate: 'gcc/Link-Options.html#index-c-1'
+ ;   duplicate: 'gcc/Overall-Options.html#index-c'
+ 
+ ; skipping UrlSuffix for 'd' due to multiple URLs:
+ ;   duplicate: 'gcc/Developer-Options.html#index-d-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-d'
+ 
+ dumpbase
+ UrlSuffix(gcc/Overall-Options.html#index-dumpbase)
+ 
+ dumpbase-ext
+ UrlSuffix(gcc/Overall-Options.html#index-dumpbase-ext)
+ 
+ dumpdir
+ UrlSuffix(gcc/Overall-Options.html#index-dumpdir)
+ 
+ dumpmachine
+ UrlSuffix(gcc/Developer-Options.html#index-dumpmachine)
+ 
+ dumpspecs
+ UrlSuffix(gcc/Developer-Options.html#index-dumpspecs)
+ 
+ dumpversion
+ UrlSuffix(gcc/Developer-Options.html#index-dumpversion)
+ 
+ dumpfullversion
+ UrlSuffix(gcc/Developer-Options.html#index-dumpfullversion)
+ 
+ e
+ UrlSuffix(gcc/Link-Options.html#index-e)
+ 
+ fabi-version=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fabi-version)
+ 
+ faggressive-loop-optimizations
+ UrlSuffix(gcc/Optimize-Options.html#index-faggressive-loop-optimizations)
+ 
+ falign-functions
+ UrlSuffix(gcc/Optimize-Options.html#index-falign-functions)
+ 
+ falign-functions=
+ UrlSuffix(gcc/Optimize-Options.html#index-falign-functions)
+ 
+ falign-jumps
+ UrlSuffix(gcc/Optimize-Options.html#index-falign-jumps)
+ 
+ falign-jumps=
+ UrlSuffix(gcc/Optimize-Options.html#index-falign-jumps)
+ 
+ falign-labels
+ UrlSuffix(gcc/Optimize-Options.html#index-falign-labels)
+ 
+ falign-labels=
+ UrlSuffix(gcc/Optimize-Options.html#index-falign-labels)
+ 
+ falign-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-falign-loops)
+ 
+ falign-loops=
+ UrlSuffix(gcc/Optimize-Options.html#index-falign-loops)
+ 
+ fallow-store-data-races
+ UrlSuffix(gcc/Optimize-Options.html#index-fallow-store-data-races)
+ 
+ fanalyzer
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer)
+ 
+ fasan-shadow-offset=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fasan-shadow-offset)
+ 
+ fsanitize-sections=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fsanitize-sections)
+ 
+ fsanitize-recover=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fno-sanitize-recover)
+ 
+ fsanitize-recover
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fno-sanitize-recover)
+ 
+ fsanitize-trap=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fno-sanitize-trap)
+ 
+ fsanitize-trap
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fno-sanitize-trap)
+ 
+ fsanitize-address-use-after-scope
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fsanitize-address-use-after-scope)
+ 
+ fsanitize-undefined-trap-on-error
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fsanitize-undefined-trap-on-error)
+ 
+ fasynchronous-unwind-tables
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fasynchronous-unwind-tables)
+ 
+ fauto-inc-dec
+ UrlSuffix(gcc/Optimize-Options.html#index-fauto-inc-dec)
+ 
+ fauto-profile
+ UrlSuffix(gcc/Optimize-Options.html#index-fauto-profile)
+ 
+ fauto-profile=
+ UrlSuffix(gcc/Optimize-Options.html#index-fauto-profile)
+ 
+ fbounds-check
+ LangUrlSuffix_D(gdc/Runtime-Options.html#index-fbounds-check)
+ 
+ fbranch-count-reg
+ UrlSuffix(gcc/Optimize-Options.html#index-fbranch-count-reg)
+ 
+ fbranch-probabilities
+ UrlSuffix(gcc/Optimize-Options.html#index-fbranch-probabilities)
+ 
+ fcallgraph-info
+ UrlSuffix(gcc/Developer-Options.html#index-fcallgraph-info)
+ 
+ fcallgraph-info=
+ UrlSuffix(gcc/Developer-Options.html#index-fcallgraph-info)
+ 
+ fcaller-saves
+ UrlSuffix(gcc/Optimize-Options.html#index-fcaller-saves)
+ 
+ fcheck-new
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcheck-new)
+ 
+ fchecking
+ UrlSuffix(gcc/Developer-Options.html#index-fchecking)
+ 
+ fchecking=
+ UrlSuffix(gcc/Developer-Options.html#index-fchecking)
+ 
+ fcanon-prefix-map
+ UrlSuffix(gcc/Overall-Options.html#index-fcanon-prefix-map)
+ 
+ fcode-hoisting
+ UrlSuffix(gcc/Optimize-Options.html#index-fcode-hoisting)
+ 
+ fcombine-stack-adjustments
+ UrlSuffix(gcc/Optimize-Options.html#index-fcombine-stack-adjustments)
+ 
+ fcommon
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fcommon)
+ 
+ fcompare-debug
+ UrlSuffix(gcc/Developer-Options.html#index-fcompare-debug)
+ 
+ fcompare-debug=
+ UrlSuffix(gcc/Developer-Options.html#index-fcompare-debug)
+ 
+ fcompare-debug-second
+ UrlSuffix(gcc/Developer-Options.html#index-fcompare-debug-second)
+ 
+ fcompare-elim
+ UrlSuffix(gcc/Optimize-Options.html#index-fcompare-elim)
+ 
+ fconserve-stack
+ UrlSuffix(gcc/Optimize-Options.html#index-fconserve-stack)
+ 
+ fcprop-registers
+ UrlSuffix(gcc/Optimize-Options.html#index-fcprop-registers)
+ 
+ ffold-mem-offsets
+ UrlSuffix(gcc/Optimize-Options.html#index-ffold-mem-offsets)
+ 
+ fcrossjumping
+ UrlSuffix(gcc/Optimize-Options.html#index-fcrossjumping)
+ 
+ fcse-follow-jumps
+ UrlSuffix(gcc/Optimize-Options.html#index-fcse-follow-jumps)
+ 
+ fcse-skip-blocks
+ UrlSuffix(gcc/Optimize-Options.html#index-fcse-skip-blocks)
+ 
+ fcx-limited-range
+ UrlSuffix(gcc/Optimize-Options.html#index-fcx-limited-range)
+ 
+ fcx-fortran-rules
+ UrlSuffix(gcc/Optimize-Options.html#index-fcx-fortran-rules)
+ 
+ fdata-sections
+ UrlSuffix(gcc/Optimize-Options.html#index-fdata-sections)
+ 
+ fdbg-cnt-list
+ UrlSuffix(gcc/Developer-Options.html#index-fdbg-cnt-list)
+ 
+ fdbg-cnt=
+ UrlSuffix(gcc/Developer-Options.html#index-fdbg-cnt)
+ 
+ fdebug-prefix-map=
+ UrlSuffix(gcc/Debugging-Options.html#index-fdebug-prefix-map)
+ 
+ ffile-prefix-map=
+ UrlSuffix(gcc/Overall-Options.html#index-ffile-prefix-map)
+ 
+ fdebug-types-section
+ UrlSuffix(gcc/Debugging-Options.html#index-fdebug-types-section)
+ 
+ fdefer-pop
+ UrlSuffix(gcc/Optimize-Options.html#index-fdefer-pop)
+ 
+ fdelayed-branch
+ UrlSuffix(gcc/Optimize-Options.html#index-fdelayed-branch)
+ 
+ fdelete-dead-exceptions
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fdelete-dead-exceptions)
+ 
+ fdelete-null-pointer-checks
+ UrlSuffix(gcc/Optimize-Options.html#index-fdelete-null-pointer-checks)
+ 
+ fdevirtualize-at-ltrans
+ UrlSuffix(gcc/Optimize-Options.html#index-fdevirtualize-at-ltrans)
+ 
+ fdevirtualize-speculatively
+ UrlSuffix(gcc/Optimize-Options.html#index-fdevirtualize-speculatively)
+ 
+ fdevirtualize
+ UrlSuffix(gcc/Optimize-Options.html#index-fdevirtualize)
+ 
+ fdiagnostics-show-location=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-location)
+ 
+ fdiagnostics-show-caret
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-caret)
+ 
+ fdiagnostics-show-labels
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-labels)
+ 
+ fdiagnostics-show-line-numbers
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-line-numbers)
+ 
+ fdiagnostics-color
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-color)
+ 
+ fdiagnostics-color=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-color)
+ 
+ fdiagnostics-json-formatting
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-json-formatting)
+ 
+ fdiagnostics-urls=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-urls)
+ 
+ fdiagnostics-column-unit=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-column-unit)
+ 
+ fdiagnostics-column-origin=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-column-origin)
+ 
+ fdiagnostics-format=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format)
+ 
+ fdiagnostics-escape-format=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-escape-format)
+ 
+ fdiagnostics-parseable-fixits
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-parseable-fixits)
+ 
+ fdiagnostics-generate-patch
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-generate-patch)
+ 
+ fdiagnostics-show-option
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-option)
+ 
+ fdiagnostics-show-cwe
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-cwe)
+ 
+ fdiagnostics-show-rules
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-rules)
+ 
+ fdiagnostics-path-format=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-path-format)
+ 
+ ftabstop=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-ftabstop)
+ 
+ fdiagnostics-show-path-depths
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-show-path-depths)
+ 
+ fdiagnostics-text-art-charset=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-text-art-charset)
+ 
+ fdiagnostics-minimum-margin-width=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-minimum-margin-width)
+ 
+ fdisable-
+ UrlSuffix(gcc/Developer-Options.html#index-fdisable-)
+ 
+ fenable-
+ UrlSuffix(gcc/Developer-Options.html#index-fenable-)
+ 
+ fdump-final-insns
+ UrlSuffix(gcc/Developer-Options.html#index-fdump-final-insns)
+ 
+ fdump-final-insns=
+ UrlSuffix(gcc/Developer-Options.html#index-fdump-final-insns)
+ 
+ fdump-go-spec=
+ UrlSuffix(gcc/Overall-Options.html#index-fdump-go-spec)
+ 
+ fdump-noaddr
+ UrlSuffix(gcc/Developer-Options.html#index-fdump-noaddr)
+ 
+ freport-bug
+ UrlSuffix(gcc/Developer-Options.html#index-freport-bug)
+ 
+ fdump-passes
+ UrlSuffix(gcc/Developer-Options.html#index-fdump-passes)
+ 
+ fdump-unnumbered
+ UrlSuffix(gcc/Developer-Options.html#index-fdump-unnumbered)
+ 
+ fdump-unnumbered-links
+ UrlSuffix(gcc/Developer-Options.html#index-fdump-unnumbered-links)
+ 
+ fdwarf2-cfi-asm
+ UrlSuffix(gcc/Debugging-Options.html#index-fdwarf2-cfi-asm)
+ 
+ fearly-inlining
+ UrlSuffix(gcc/Optimize-Options.html#index-fearly-inlining)
+ 
+ fipa-sra
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-sra)
+ 
+ feliminate-unused-debug-symbols
+ UrlSuffix(gcc/Debugging-Options.html#index-feliminate-unused-debug-symbols)
+ 
+ feliminate-unused-debug-types
+ UrlSuffix(gcc/Debugging-Options.html#index-feliminate-unused-debug-types)
+ 
+ femit-class-debug-always
+ UrlSuffix(gcc/Debugging-Options.html#index-femit-class-debug-always)
+ 
+ fexceptions
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fexceptions)
+ 
+ fexpensive-optimizations
+ UrlSuffix(gcc/Optimize-Options.html#index-fexpensive-optimizations)
+ 
+ fexcess-precision=
+ UrlSuffix(gcc/Optimize-Options.html#index-fexcess-precision)
+ 
+ fpermitted-flt-eval-methods=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fpermitted-flt-eval-methods)
+ 
+ ffast-math
+ UrlSuffix(gcc/Optimize-Options.html#index-ffast-math)
+ 
+ ffat-lto-objects
+ UrlSuffix(gcc/Optimize-Options.html#index-ffat-lto-objects)
+ 
+ ffinite-math-only
+ UrlSuffix(gcc/Optimize-Options.html#index-ffinite-math-only)
+ 
+ ffinite-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-ffinite-loops)
+ 
+ ; skipping UrlSuffix for 'ffloat-store' due to multiple URLs:
+ ;   duplicate: 'gcc/Disappointments.html#index-ffloat-store-1'
+ ;   duplicate: 'gcc/Optimize-Options.html#index-ffloat-store'
+ 
+ fforward-propagate
+ UrlSuffix(gcc/Optimize-Options.html#index-fforward-propagate)
+ 
+ ffp-contract=
+ UrlSuffix(gcc/Optimize-Options.html#index-ffp-contract)
+ 
+ ffp-int-builtin-inexact
+ UrlSuffix(gcc/Optimize-Options.html#index-ffp-int-builtin-inexact)
+ 
+ ffunction-cse
+ UrlSuffix(gcc/Optimize-Options.html#index-ffunction-cse)
+ 
+ ffunction-sections
+ UrlSuffix(gcc/Optimize-Options.html#index-ffunction-sections)
+ 
+ fgcse
+ UrlSuffix(gcc/Optimize-Options.html#index-fgcse)
+ 
+ fgcse-lm
+ UrlSuffix(gcc/Optimize-Options.html#index-fgcse-lm)
+ 
+ fgcse-sm
+ UrlSuffix(gcc/Optimize-Options.html#index-fgcse-sm)
+ 
+ fgcse-las
+ UrlSuffix(gcc/Optimize-Options.html#index-fgcse-las)
+ 
+ fgcse-after-reload
+ UrlSuffix(gcc/Optimize-Options.html#index-fgcse-after-reload)
+ 
+ fgraphite-identity
+ UrlSuffix(gcc/Optimize-Options.html#index-fgraphite-identity)
+ 
+ fhoist-adjacent-loads
+ UrlSuffix(gcc/Optimize-Options.html#index-fhoist-adjacent-loads)
+ 
+ flarge-source-files
+ UrlSuffix(gcc/Preprocessor-Options.html#index-flarge-source-files)
+ 
+ floop-parallelize-all
+ UrlSuffix(gcc/Optimize-Options.html#index-floop-parallelize-all)
+ 
+ floop-strip-mine
+ UrlSuffix(gcc/Optimize-Options.html#index-floop-strip-mine)
+ 
+ floop-interchange
+ UrlSuffix(gcc/Optimize-Options.html#index-floop-interchange)
+ 
+ floop-block
+ UrlSuffix(gcc/Optimize-Options.html#index-floop-block)
+ 
+ floop-unroll-and-jam
+ UrlSuffix(gcc/Optimize-Options.html#index-floop-unroll-and-jam)
+ 
+ fgnu-tm
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fgnu-tm)
+ 
+ fgnu-unique
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fgnu-unique)
+ 
+ floop-nest-optimize
+ UrlSuffix(gcc/Optimize-Options.html#index-floop-nest-optimize)
+ 
+ fstrict-volatile-bitfields
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fstrict-volatile-bitfields)
+ 
+ fstore-merging
+ UrlSuffix(gcc/Optimize-Options.html#index-fstore-merging)
+ 
+ fguess-branch-probability
+ UrlSuffix(gcc/Optimize-Options.html#index-fguess-branch-probability)
+ 
+ fhardened
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fhardened)
+ 
+ fharden-compares
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fharden-compares)
+ 
+ fharden-conditional-branches
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fharden-conditional-branches)
+ 
+ fharden-control-flow-redundancy
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fharden-control-flow-redundancy)
+ 
+ fhardcfr-skip-leaf
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fhardcfr-skip-leaf)
+ 
+ fhardcfr-check-returning-calls
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fhardcfr-check-returning-calls)
+ 
+ fhardcfr-check-exceptions
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fhardcfr-check-exceptions)
+ 
+ fhardcfr-check-noreturn-calls=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fhardcfr-check-noreturn-calls)
+ 
+ fident
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fident)
+ 
+ fif-conversion
+ UrlSuffix(gcc/Optimize-Options.html#index-fif-conversion)
+ 
+ fif-conversion2
+ UrlSuffix(gcc/Optimize-Options.html#index-fif-conversion2)
+ 
+ ftree-loop-if-convert
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-loop-if-convert)
+ 
+ finhibit-size-directive
+ UrlSuffix(gcc/Code-Gen-Options.html#index-finhibit-size-directive)
+ 
+ findirect-inlining
+ UrlSuffix(gcc/Optimize-Options.html#index-findirect-inlining)
+ 
+ finline
+ UrlSuffix(gcc/Optimize-Options.html#index-finline)
+ 
+ finline-small-functions
+ UrlSuffix(gcc/Optimize-Options.html#index-finline-small-functions)
+ 
+ finline-functions
+ UrlSuffix(gcc/Optimize-Options.html#index-finline-functions)
+ 
+ finline-functions-called-once
+ UrlSuffix(gcc/Optimize-Options.html#index-finline-functions-called-once)
+ 
+ finline-limit=
+ UrlSuffix(gcc/Optimize-Options.html#index-finline-limit)
+ 
+ finline-stringops
+ UrlSuffix(gcc/Optimize-Options.html#index-finline-stringops)
+ 
+ finline-stringops=
+ UrlSuffix(gcc/Optimize-Options.html#index-finline-stringops)
+ 
+ fcf-protection
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fcf-protection)
+ 
+ fcf-protection=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fcf-protection)
+ 
+ finstrument-functions
+ UrlSuffix(gcc/Instrumentation-Options.html#index-finstrument-functions)
+ 
+ finstrument-functions-once
+ UrlSuffix(gcc/Instrumentation-Options.html#index-finstrument-functions-once)
+ 
+ finstrument-functions-exclude-function-list=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-finstrument-functions-exclude-function-list)
+ 
+ finstrument-functions-exclude-file-list=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-finstrument-functions-exclude-file-list)
+ 
+ fipa-cp
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-cp)
+ 
+ fipa-cp-clone
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-cp-clone)
+ 
+ fipa-bit-cp
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-bit-cp)
+ 
+ fipa-modref
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-modref)
+ 
+ fipa-profile
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-profile)
+ 
+ fipa-pta
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-pta)
+ 
+ fipa-pure-const
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-pure-const)
+ 
+ fipa-icf
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-icf)
+ 
+ fipa-reference
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-reference)
+ 
+ fipa-reference-addressable
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-reference-addressable)
+ 
+ fipa-stack-alignment
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-stack-alignment)
+ 
+ fipa-vrp
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-vrp)
+ 
+ fira-algorithm=
+ UrlSuffix(gcc/Optimize-Options.html#index-fira-algorithm)
+ 
+ fipa-strict-aliasing
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-strict-aliasing)
+ 
+ fira-region=
+ UrlSuffix(gcc/Optimize-Options.html#index-fira-region)
+ 
+ fira-hoist-pressure
+ UrlSuffix(gcc/Optimize-Options.html#index-fira-hoist-pressure)
+ 
+ fira-loop-pressure
+ UrlSuffix(gcc/Optimize-Options.html#index-fira-loop-pressure)
+ 
+ fira-share-save-slots
+ UrlSuffix(gcc/Optimize-Options.html#index-fira-share-save-slots)
+ 
+ fira-share-spill-slots
+ UrlSuffix(gcc/Optimize-Options.html#index-fira-share-spill-slots)
+ 
+ fira-verbose=
+ UrlSuffix(gcc/Developer-Options.html#index-fira-verbose)
+ 
+ fivopts
+ UrlSuffix(gcc/Optimize-Options.html#index-fivopts)
+ 
+ fjump-tables
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fjump-tables)
+ 
+ fbit-tests
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fbit-tests)
+ 
+ ; skipping UrlSuffix for 'fkeep-inline-functions' due to multiple URLs:
+ ;   duplicate: 'gcc/Inline.html#index-fkeep-inline-functions-1'
+ ;   duplicate: 'gcc/Optimize-Options.html#index-fkeep-inline-functions'
+ 
+ fkeep-static-functions
+ UrlSuffix(gcc/Optimize-Options.html#index-fkeep-static-functions)
+ 
+ fkeep-static-consts
+ UrlSuffix(gcc/Optimize-Options.html#index-fkeep-static-consts)
+ 
+ fleading-underscore
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fleading-underscore)
+ 
+ flra-remat
+ UrlSuffix(gcc/Optimize-Options.html#index-flra-remat)
+ 
+ flto
+ UrlSuffix(gcc/Optimize-Options.html#index-flto)
+ 
+ flto=
+ UrlSuffix(gcc/Optimize-Options.html#index-flto)
+ 
+ flto-partition=
+ UrlSuffix(gcc/Optimize-Options.html#index-flto-partition)
+ 
+ flto-compression-level=
+ UrlSuffix(gcc/Optimize-Options.html#index-flto-compression-level)
+ 
+ flto-report
+ UrlSuffix(gcc/Developer-Options.html#index-flto-report)
+ 
+ flto-report-wpa
+ UrlSuffix(gcc/Developer-Options.html#index-flto-report-wpa)
+ 
+ fmath-errno
+ UrlSuffix(gcc/Optimize-Options.html#index-fmath-errno)
+ 
+ fmax-errors=
+ UrlSuffix(gcc/Warning-Options.html#index-fmax-errors) LangUrlSuffix_D(gdc/Warnings.html#index-fmax-errors)
+ 
+ fmem-report
+ UrlSuffix(gcc/Developer-Options.html#index-fmem-report)
+ 
+ fmem-report-wpa
+ UrlSuffix(gcc/Developer-Options.html#index-fmem-report-wpa)
+ 
+ fmerge-all-constants
+ UrlSuffix(gcc/Optimize-Options.html#index-fmerge-all-constants)
+ 
+ fmerge-constants
+ UrlSuffix(gcc/Optimize-Options.html#index-fmerge-constants)
+ 
+ fmerge-debug-strings
+ UrlSuffix(gcc/Debugging-Options.html#index-fmerge-debug-strings)
+ 
+ fmessage-length=
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fmessage-length)
+ 
+ fmodulo-sched
+ UrlSuffix(gcc/Optimize-Options.html#index-fmodulo-sched)
+ 
+ fmodulo-sched-allow-regmoves
+ UrlSuffix(gcc/Optimize-Options.html#index-fmodulo-sched-allow-regmoves)
+ 
+ fmove-loop-invariants
+ UrlSuffix(gcc/Optimize-Options.html#index-fmove-loop-invariants)
+ 
+ fmove-loop-stores
+ UrlSuffix(gcc/Optimize-Options.html#index-fmove-loop-stores)
+ 
+ fmultiflags
+ UrlSuffix(gcc/Developer-Options.html#index-fmultiflags)
+ 
+ fdce
+ UrlSuffix(gcc/Optimize-Options.html#index-fdce)
+ 
+ fdse
+ UrlSuffix(gcc/Optimize-Options.html#index-fdse)
+ 
+ freschedule-modulo-scheduled-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-freschedule-modulo-scheduled-loops)
+ 
+ fnon-call-exceptions
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fnon-call-exceptions)
+ 
+ foffload=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-foffload)
+ 
+ foffload-options=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-foffload-options)
+ 
+ fomit-frame-pointer
+ UrlSuffix(gcc/Optimize-Options.html#index-fomit-frame-pointer)
+ 
+ fopenmp-target-simd-clone
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fopenmp-target-simd-clone)
+ 
+ fopenmp-target-simd-clone=
+ UrlSuffix(gcc/C-Dialect-Options.html#index-fopenmp-target-simd-clone)
+ 
+ fopt-info
+ UrlSuffix(gcc/Developer-Options.html#index-fopt-info)
+ 
+ fsave-optimization-record
+ UrlSuffix(gcc/Developer-Options.html#index-fsave-optimization-record)
+ 
+ foptimize-sibling-calls
+ UrlSuffix(gcc/Optimize-Options.html#index-foptimize-sibling-calls)
+ 
+ fpartial-inlining
+ UrlSuffix(gcc/Optimize-Options.html#index-fpartial-inlining)
+ 
+ fpre-ipa-mem-report
+ UrlSuffix(gcc/Developer-Options.html#index-fpre-ipa-mem-report)
+ 
+ fpost-ipa-mem-report
+ UrlSuffix(gcc/Developer-Options.html#index-fpost-ipa-mem-report)
+ 
+ fpack-struct
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fpack-struct)
+ 
+ fpack-struct=
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fpack-struct)
+ 
+ ; skipping UrlSuffix for 'fpcc-struct-return' due to multiple URLs:
+ ;   duplicate: 'gcc/Code-Gen-Options.html#index-fpcc-struct-return'
+ ;   duplicate: 'gcc/Incompatibilities.html#index-fpcc-struct-return-1'
+ 
+ fpeel-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-fpeel-loops)
+ 
+ fpeephole
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-peephole)
+ 
+ fpeephole2
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-peephole2)
+ 
+ fPIC
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fPIC)
+ 
+ fPIE
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fPIE)
+ 
+ fpic
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fpic)
+ 
+ fpie
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fpie)
+ 
+ fplt
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fno-plt)
+ 
+ fplugin=
+ UrlSuffix(gcc/Overall-Options.html#index-fplugin)
+ 
+ fpredictive-commoning
+ UrlSuffix(gcc/Optimize-Options.html#index-fpredictive-commoning)
+ 
+ fprefetch-loop-arrays
+ UrlSuffix(gcc/Optimize-Options.html#index-fprefetch-loop-arrays)
+ 
+ fprofile-abs-path
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-abs-path)
+ 
+ ; skipping UrlSuffix for 'fprofile-arcs' due to multiple URLs:
+ ;   duplicate: 'gcc/Instrumentation-Options.html#index-fprofile-arcs'
+ ;   duplicate: 'gcc/Other-Builtins.html#index-fprofile-arcs-1'
+ 
+ fcondition-coverage
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fcondition-coverage)
+ 
+ fprofile-dir=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-dir)
+ 
+ fprofile-note=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-note)
+ 
+ fprofile-correction
+ UrlSuffix(gcc/Optimize-Options.html#index-fprofile-correction)
+ 
+ fprofile-update=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-update)
+ 
+ fprofile-filter-files=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-filter-files)
+ 
+ fprofile-exclude-files=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-exclude-files)
+ 
+ fprofile-reproducible=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-reproducible)
+ 
+ fprofile-prefix-path=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-prefix-path)
+ 
+ fprofile-prefix-map=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-prefix-map)
+ 
+ fprofile-generate
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-generate)
+ 
+ fprofile-generate=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-generate)
+ 
+ fprofile-info-section
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-info-section)
+ 
+ fprofile-info-section=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fprofile-info-section)
+ 
+ fprofile-partial-training
+ UrlSuffix(gcc/Optimize-Options.html#index-fprofile-partial-training)
+ 
+ fprofile-use
+ UrlSuffix(gcc/Optimize-Options.html#index-fprofile-use)
+ 
+ fprofile-use=
+ UrlSuffix(gcc/Optimize-Options.html#index-fprofile-use)
+ 
+ fprofile-values
+ UrlSuffix(gcc/Optimize-Options.html#index-fprofile-values)
+ 
+ fprofile-report
+ UrlSuffix(gcc/Developer-Options.html#index-fprofile-report)
+ 
+ fprofile-reorder-functions
+ UrlSuffix(gcc/Optimize-Options.html#index-fprofile-reorder-functions)
+ 
+ fpatchable-function-entry=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fpatchable-function-entry)
+ 
+ frandom-seed
+ UrlSuffix(gcc/Developer-Options.html#index-frandom-seed)
+ 
+ frandom-seed=
+ UrlSuffix(gcc/Developer-Options.html#index-frandom-seed)
+ 
+ frecord-gcc-switches
+ UrlSuffix(gcc/Code-Gen-Options.html#index-frecord-gcc-switches)
+ 
+ freg-struct-return
+ UrlSuffix(gcc/Code-Gen-Options.html#index-freg-struct-return)
+ 
+ flifetime-dse
+ UrlSuffix(gcc/Optimize-Options.html#index-flifetime-dse)
+ 
+ flifetime-dse=
+ UrlSuffix(gcc/Optimize-Options.html#index-flifetime-dse)
+ 
+ flive-patching
+ UrlSuffix(gcc/Optimize-Options.html#index-flive-patching)
+ 
+ flive-patching=
+ UrlSuffix(gcc/Optimize-Options.html#index-flive-patching)
+ 
+ fallocation-dce
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-allocation-dce)
+ 
+ flive-range-shrinkage
+ UrlSuffix(gcc/Optimize-Options.html#index-flive-range-shrinkage)
+ 
+ frename-registers
+ UrlSuffix(gcc/Optimize-Options.html#index-frename-registers)
+ 
+ fschedule-fusion
+ UrlSuffix(gcc/Optimize-Options.html#index-fschedule-fusion)
+ 
+ freorder-blocks
+ UrlSuffix(gcc/Optimize-Options.html#index-freorder-blocks)
+ 
+ freorder-blocks-algorithm=
+ UrlSuffix(gcc/Optimize-Options.html#index-freorder-blocks-algorithm)
+ 
+ freorder-blocks-and-partition
+ UrlSuffix(gcc/Optimize-Options.html#index-freorder-blocks-and-partition)
+ 
+ freorder-functions
+ UrlSuffix(gcc/Optimize-Options.html#index-freorder-functions)
+ 
+ frerun-cse-after-loop
+ UrlSuffix(gcc/Optimize-Options.html#index-frerun-cse-after-loop)
+ 
+ frounding-math
+ UrlSuffix(gcc/Optimize-Options.html#index-frounding-math)
+ 
+ fsched-interblock
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-sched-interblock)
+ 
+ fsched-pressure
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-pressure)
+ 
+ fsched-spec
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-sched-spec)
+ 
+ fsched-spec-load
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-spec-load)
+ 
+ fsched-spec-load-dangerous
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-spec-load-dangerous)
+ 
+ fsched-verbose=
+ UrlSuffix(gcc/Developer-Options.html#index-fsched-verbose)
+ 
+ fsched2-use-superblocks
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched2-use-superblocks)
+ 
+ fschedule-insns
+ UrlSuffix(gcc/Optimize-Options.html#index-fschedule-insns)
+ 
+ fschedule-insns2
+ UrlSuffix(gcc/Optimize-Options.html#index-fschedule-insns2)
+ 
+ fselective-scheduling
+ UrlSuffix(gcc/Optimize-Options.html#index-fselective-scheduling)
+ 
+ fselective-scheduling2
+ UrlSuffix(gcc/Optimize-Options.html#index-fselective-scheduling2)
+ 
+ fsel-sched-pipelining
+ UrlSuffix(gcc/Optimize-Options.html#index-fsel-sched-pipelining)
+ 
+ fsel-sched-pipelining-outer-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-fsel-sched-pipelining-outer-loops)
+ 
+ fsemantic-interposition
+ UrlSuffix(gcc/Optimize-Options.html#index-fsemantic-interposition)
+ 
+ fsched-stalled-insns
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-stalled-insns)
+ 
+ fsched-stalled-insns=
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-stalled-insns)
+ 
+ fsched-stalled-insns-dep
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-stalled-insns-dep)
+ 
+ fsched-stalled-insns-dep=
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-stalled-insns-dep)
+ 
+ fsched-group-heuristic
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-group-heuristic)
+ 
+ fsched-critical-path-heuristic
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-critical-path-heuristic)
+ 
+ fsched-spec-insn-heuristic
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-spec-insn-heuristic)
+ 
+ fsched-rank-heuristic
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-rank-heuristic)
+ 
+ fsched-last-insn-heuristic
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-last-insn-heuristic)
+ 
+ fsched-dep-count-heuristic
+ UrlSuffix(gcc/Optimize-Options.html#index-fsched-dep-count-heuristic)
+ 
+ fsection-anchors
+ UrlSuffix(gcc/Optimize-Options.html#index-fsection-anchors)
+ 
+ free
+ UrlSuffix(gcc/Optimize-Options.html#index-free-1)
+ 
+ fshow-column
+ UrlSuffix(gcc/Diagnostic-Message-Formatting-Options.html#index-fno-show-column)
+ 
+ fshrink-wrap
+ UrlSuffix(gcc/Optimize-Options.html#index-fshrink-wrap)
+ 
+ fshrink-wrap-separate
+ UrlSuffix(gcc/Optimize-Options.html#index-fshrink-wrap-separate)
+ 
+ fsignaling-nans
+ UrlSuffix(gcc/Optimize-Options.html#index-fsignaling-nans)
+ 
+ fsigned-zeros
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-signed-zeros)
+ 
+ fsingle-precision-constant
+ UrlSuffix(gcc/Optimize-Options.html#index-fsingle-precision-constant)
+ 
+ fsplit-ivs-in-unroller
+ UrlSuffix(gcc/Optimize-Options.html#index-fsplit-ivs-in-unroller)
+ 
+ fsplit-stack
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fsplit-stack)
+ 
+ fsplit-wide-types
+ UrlSuffix(gcc/Optimize-Options.html#index-fsplit-wide-types)
+ 
+ fsplit-wide-types-early
+ UrlSuffix(gcc/Optimize-Options.html#index-fsplit-wide-types-early)
+ 
+ fssa-backprop
+ UrlSuffix(gcc/Optimize-Options.html#index-fssa-backprop)
+ 
+ fssa-phiopt
+ UrlSuffix(gcc/Optimize-Options.html#index-fssa-phiopt)
+ 
+ fstdarg-opt
+ UrlSuffix(gcc/Optimize-Options.html#index-fstdarg-opt)
+ 
+ fvariable-expansion-in-unroller
+ UrlSuffix(gcc/Optimize-Options.html#index-fvariable-expansion-in-unroller)
+ 
+ fstack-check=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-check)
+ 
+ fstack-check
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-check)
+ 
+ fstack-clash-protection
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-clash-protection)
+ 
+ fstack-limit
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fno-stack-limit)
+ 
+ fstack-limit-register=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-limit-register)
+ 
+ fstack-limit-symbol=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-limit-symbol)
+ 
+ fstack-protector
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-protector)
+ 
+ fstack-protector-all
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-protector-all)
+ 
+ fstack-protector-strong
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-protector-strong)
+ 
+ fstack-protector-explicit
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstack-protector-explicit)
+ 
+ fstack-usage
+ UrlSuffix(gcc/Developer-Options.html#index-fstack-usage)
+ 
+ fstrict-aliasing
+ UrlSuffix(gcc/Optimize-Options.html#index-fstrict-aliasing)
+ 
+ fstrict-overflow
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fstrict-overflow)
+ 
+ fstrub=strict
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstrub_003dstrict)
+ 
+ fstrub=relaxed
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstrub_003drelaxed)
+ 
+ fstrub=all
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstrub_003dall)
+ 
+ fstrub=at-calls
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstrub_003dat-calls)
+ 
+ fstrub=internal
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fstrub_003dinternal)
+ 
+ fsync-libcalls
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fsync-libcalls)
+ 
+ fsyntax-only
+ UrlSuffix(gcc/Warning-Options.html#index-fsyntax-only) LangUrlSuffix_D(gdc/Warnings.html#index-fno-syntax-only)
+ 
+ ftest-coverage
+ UrlSuffix(gcc/Instrumentation-Options.html#index-ftest-coverage)
+ 
+ fthread-jumps
+ UrlSuffix(gcc/Optimize-Options.html#index-fthread-jumps)
+ 
+ ftime-report
+ UrlSuffix(gcc/Developer-Options.html#index-ftime-report)
+ 
+ ftime-report-details
+ UrlSuffix(gcc/Developer-Options.html#index-ftime-report-details)
+ 
+ ftls-model=
+ UrlSuffix(gcc/Code-Gen-Options.html#index-ftls-model)
+ 
+ ftoplevel-reorder
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-toplevel-reorder)
+ 
+ ftracer
+ UrlSuffix(gcc/Optimize-Options.html#index-ftracer)
+ 
+ ftrampolines
+ UrlSuffix(gcc/Code-Gen-Options.html#index-ftrampolines)
+ 
+ ftrampoline-impl=
+ UrlSuffix(gcc/Code-Gen-Options.html#index-ftrampoline-impl)
+ 
+ ftrapping-math
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-trapping-math)
+ 
+ ftrapv
+ UrlSuffix(gcc/Code-Gen-Options.html#index-ftrapv)
+ 
+ ftree-ccp
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-ccp)
+ 
+ ftree-bit-ccp
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-bit-ccp)
+ 
+ ftree-ch
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-ch)
+ 
+ ftree-coalesce-vars
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-coalesce-vars)
+ 
+ ftree-copy-prop
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-copy-prop)
+ 
+ ftree-switch-conversion
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-switch-conversion)
+ 
+ ftree-dce
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-dce)
+ 
+ ftree-dominator-opts
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-dominator-opts)
+ 
+ ftree-tail-merge
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-tail-merge)
+ 
+ ftree-dse
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-dse)
+ 
+ ftree-forwprop
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-forwprop)
+ 
+ ftree-fre
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-fre)
+ 
+ foptimize-strlen
+ UrlSuffix(gcc/Optimize-Options.html#index-foptimize-strlen)
+ 
+ fisolate-erroneous-paths-dereference
+ UrlSuffix(gcc/Optimize-Options.html#index-fisolate-erroneous-paths-dereference)
+ 
+ fisolate-erroneous-paths-attribute
+ UrlSuffix(gcc/Optimize-Options.html#index-fisolate-erroneous-paths-attribute)
+ 
+ ftree-loop-distribution
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-loop-distribution)
+ 
+ ftree-loop-distribute-patterns
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-loop-distribute-patterns)
+ 
+ ftree-loop-im
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-loop-im)
+ 
+ ftree-loop-linear
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-loop-linear)
+ 
+ ftree-loop-ivcanon
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-loop-ivcanon)
+ 
+ ftree-loop-optimize
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-loop-optimize)
+ 
+ ftree-parallelize-loops=
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-parallelize-loops)
+ 
+ ftree-phiprop
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-phiprop)
+ 
+ ftree-pre
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-pre)
+ 
+ ftree-partial-pre
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-partial-pre)
+ 
+ ftree-pta
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-pta)
+ 
+ ftree-reassoc
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-reassoc)
+ 
+ ftree-sink
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-sink)
+ 
+ ftree-slsr
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-slsr)
+ 
+ ftree-sra
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-sra)
+ 
+ ftree-ter
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-ter)
+ 
+ ftree-vrp
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-vrp)
+ 
+ fsplit-paths
+ UrlSuffix(gcc/Optimize-Options.html#index-fsplit-paths)
+ 
+ funconstrained-commons
+ UrlSuffix(gcc/Optimize-Options.html#index-funconstrained-commons)
+ 
+ funit-at-a-time
+ UrlSuffix(gcc/Optimize-Options.html#index-funit-at-a-time)
+ 
+ funreachable-traps
+ UrlSuffix(gcc/Optimize-Options.html#index-funreachable-traps)
+ 
+ funroll-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-funroll-loops)
+ 
+ funroll-all-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-funroll-all-loops)
+ 
+ fassociative-math
+ UrlSuffix(gcc/Optimize-Options.html#index-fassociative-math)
+ 
+ freciprocal-math
+ UrlSuffix(gcc/Optimize-Options.html#index-freciprocal-math)
+ 
+ funsafe-math-optimizations
+ UrlSuffix(gcc/Optimize-Options.html#index-funsafe-math-optimizations)
+ 
+ funswitch-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-funswitch-loops)
+ 
+ fsplit-loops
+ UrlSuffix(gcc/Optimize-Options.html#index-fsplit-loops)
+ 
+ fversion-loops-for-strides
+ UrlSuffix(gcc/Optimize-Options.html#index-fversion-loops-for-strides)
+ 
+ funwind-tables
+ UrlSuffix(gcc/Code-Gen-Options.html#index-funwind-tables)
+ 
+ fuse-ld=bfd
+ UrlSuffix(gcc/Link-Options.html#index-fuse-ld_003dbfd)
+ 
+ fuse-ld=gold
+ UrlSuffix(gcc/Link-Options.html#index-fuse-ld_003dgold)
+ 
+ fuse-ld=lld
+ UrlSuffix(gcc/Link-Options.html#index-fuse-ld_003dlld)
+ 
+ fuse-ld=mold
+ UrlSuffix(gcc/Link-Options.html#index-fuse-ld_003dmold)
+ 
+ fuse-linker-plugin
+ UrlSuffix(gcc/Optimize-Options.html#index-fuse-linker-plugin)
+ 
+ fvar-tracking
+ UrlSuffix(gcc/Debugging-Options.html#index-fvar-tracking)
+ 
+ fvar-tracking-assignments
+ UrlSuffix(gcc/Debugging-Options.html#index-fno-var-tracking-assignments)
+ 
+ fvar-tracking-assignments-toggle
+ UrlSuffix(gcc/Developer-Options.html#index-fno-var-tracking-assignments-toggle)
+ 
+ ftree-vectorize
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-vectorize)
+ 
+ ftree-loop-vectorize
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-loop-vectorize)
+ 
+ ftree-slp-vectorize
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-slp-vectorize)
+ 
+ fvect-cost-model=
+ UrlSuffix(gcc/Optimize-Options.html#index-fvect-cost-model)
+ 
+ fsimd-cost-model=
+ UrlSuffix(gcc/Optimize-Options.html#index-fsimd-cost-model)
+ 
+ fvect-cost-model
+ UrlSuffix(gcc/Optimize-Options.html#index-fvect-cost-model)
+ 
+ ftree-scev-cprop
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-scev-cprop)
+ 
+ ftrivial-auto-var-init=
+ UrlSuffix(gcc/Optimize-Options.html#index-ftrivial-auto-var-init)
+ 
+ fverbose-asm
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fverbose-asm)
+ 
+ fvisibility=
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fvisibility)
+ 
+ fvtable-verify=
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fvtable-verify)
+ 
+ fvtv-counts
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fvtv-counts)
+ 
+ fvtv-debug
+ UrlSuffix(gcc/Instrumentation-Options.html#index-fvtv-debug)
+ 
+ fvpt
+ UrlSuffix(gcc/Optimize-Options.html#index-fvpt)
+ 
+ fweb
+ UrlSuffix(gcc/Optimize-Options.html#index-fweb)
+ 
+ ftree-builtin-call-dce
+ UrlSuffix(gcc/Optimize-Options.html#index-ftree-builtin-call-dce)
+ 
+ fwhole-program
+ UrlSuffix(gcc/Optimize-Options.html#index-fwhole-program)
+ 
+ fwrapv-pointer
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fwrapv-pointer)
+ 
+ fwrapv
+ UrlSuffix(gcc/Code-Gen-Options.html#index-fwrapv)
+ 
+ fzero-initialized-in-bss
+ UrlSuffix(gcc/Optimize-Options.html#index-fno-zero-initialized-in-bss)
+ 
+ fzero-call-used-regs=
+ UrlSuffix(gcc/Optimize-Options.html#index-fzero-call-used-regs)
+ 
+ g
+ UrlSuffix(gcc/Debugging-Options.html#index-g)
+ 
+ gas-loc-support
+ UrlSuffix(gcc/Debugging-Options.html#index-gas-loc-support)
+ 
+ gas-locview-support
+ UrlSuffix(gcc/Debugging-Options.html#index-gas-locview-support)
+ 
+ gcodeview
+ UrlSuffix(gcc/Debugging-Options.html#index-gcodeview)
+ 
+ gcolumn-info
+ UrlSuffix(gcc/Debugging-Options.html#index-gcolumn-info)
+ 
+ gctf
+ UrlSuffix(gcc/Debugging-Options.html#index-gctf)
+ 
+ gbtf
+ UrlSuffix(gcc/Debugging-Options.html#index-gbtf)
+ 
+ gdwarf
+ UrlSuffix(gcc/Debugging-Options.html#index-gdwarf)
+ 
+ gdwarf32
+ UrlSuffix(gcc/Debugging-Options.html#index-gdwarf32)
+ 
+ gdwarf64
+ UrlSuffix(gcc/Debugging-Options.html#index-gdwarf64)
+ 
+ ggdb
+ UrlSuffix(gcc/Debugging-Options.html#index-ggdb)
+ 
+ ginline-points
+ UrlSuffix(gcc/Debugging-Options.html#index-ginline-points)
+ 
+ ginternal-reset-location-views
+ UrlSuffix(gcc/Debugging-Options.html#index-ginternal-reset-location-views)
+ 
+ gpubnames
+ UrlSuffix(gcc/Debugging-Options.html#index-gpubnames)
+ 
+ ggnu-pubnames
+ UrlSuffix(gcc/Debugging-Options.html#index-ggnu-pubnames)
+ 
+ grecord-gcc-switches
+ UrlSuffix(gcc/Debugging-Options.html#index-grecord-gcc-switches)
+ 
+ gsplit-dwarf
+ UrlSuffix(gcc/Debugging-Options.html#index-gsplit-dwarf)
+ 
+ gstatement-frontiers
+ UrlSuffix(gcc/Debugging-Options.html#index-gstatement-frontiers)
+ 
+ gstrict-dwarf
+ UrlSuffix(gcc/Debugging-Options.html#index-gstrict-dwarf)
+ 
+ gdescribe-dies
+ UrlSuffix(gcc/Debugging-Options.html#index-gdescribe-dies)
+ 
+ gtoggle
+ UrlSuffix(gcc/Developer-Options.html#index-gtoggle)
+ 
+ gvariable-location-views
+ UrlSuffix(gcc/Debugging-Options.html#index-gvariable-location-views)
+ 
+ gvariable-location-views=incompat5
+ UrlSuffix(gcc/Debugging-Options.html#index-gvariable-location-views_003dincompat5)
+ 
+ gvms
+ UrlSuffix(gcc/Debugging-Options.html#index-gvms)
+ 
+ gz
+ UrlSuffix(gcc/Debugging-Options.html#index-gz)
+ 
+ gz=
+ UrlSuffix(gcc/Debugging-Options.html#index-gz)
+ 
+ iplugindir=
+ UrlSuffix(gcc/Directory-Options.html#index-iplugindir_003d)
+ 
+ l
+ UrlSuffix(gcc/Link-Options.html#index-l)
+ 
+ no-canonical-prefixes
+ UrlSuffix(gcc/Directory-Options.html#index-no-canonical-prefixes)
+ 
+ nodefaultlibs
+ UrlSuffix(gcc/Link-Options.html#index-nodefaultlibs)
+ 
+ nostartfiles
+ UrlSuffix(gcc/Link-Options.html#index-nostartfiles)
+ 
+ nolibc
+ UrlSuffix(gcc/Link-Options.html#index-nolibc)
+ 
+ nostdlib
+ UrlSuffix(gcc/Link-Options.html#index-nostdlib)
+ 
+ nostdlib++
+ UrlSuffix(gcc/Link-Options.html#index-nostdlib_002b_002b)
+ 
+ o
+ UrlSuffix(gcc/Overall-Options.html#index-o)
+ 
+ p
+ UrlSuffix(gcc/Instrumentation-Options.html#index-p)
+ 
+ pass-exit-codes
+ UrlSuffix(gcc/Overall-Options.html#index-pass-exit-codes)
+ 
+ ; skipping UrlSuffix for 'pedantic' due to multiple URLs:
+ ;   duplicate: 'gcc/Alternate-Keywords.html#index-pedantic-3'
+ ;   duplicate: 'gcc/C-Extensions.html#index-pedantic-2'
+ ;   duplicate: 'gcc/Standards.html#index-pedantic'
+ ;   duplicate: 'gcc/Warning-Options.html#index-pedantic-1'
+ ;   duplicate: 'gcc/Warnings-and-Errors.html#index-pedantic-4'
+ 
+ ; skipping UrlSuffix for 'pedantic-errors' due to multiple URLs:
+ ;   duplicate: 'gcc/Non-bugs.html#index-pedantic-errors-2'
+ ;   duplicate: 'gcc/Standards.html#index-pedantic-errors'
+ ;   duplicate: 'gcc/Warning-Options.html#index-pedantic-errors-1'
+ ;   duplicate: 'gcc/Warnings-and-Errors.html#index-pedantic-errors-3'
+ 
+ pg
+ UrlSuffix(gcc/Instrumentation-Options.html#index-pg)
+ 
+ pipe
+ UrlSuffix(gcc/Overall-Options.html#index-pipe)
+ 
+ print-file-name=
+ UrlSuffix(gcc/Developer-Options.html#index-print-file-name)
+ 
+ print-libgcc-file-name
+ UrlSuffix(gcc/Developer-Options.html#index-print-libgcc-file-name)
+ 
+ print-multi-directory
+ UrlSuffix(gcc/Developer-Options.html#index-print-multi-directory)
+ 
+ print-multi-lib
+ UrlSuffix(gcc/Developer-Options.html#index-print-multi-lib)
+ 
+ print-multi-os-directory
+ UrlSuffix(gcc/Developer-Options.html#index-print-multi-os-directory)
+ 
+ print-multiarch
+ UrlSuffix(gcc/Developer-Options.html#index-print-multiarch)
+ 
+ print-prog-name=
+ UrlSuffix(gcc/Developer-Options.html#index-print-prog-name)
+ 
+ print-search-dirs
+ UrlSuffix(gcc/Developer-Options.html#index-print-search-dirs)
+ 
+ print-sysroot
+ UrlSuffix(gcc/Developer-Options.html#index-print-sysroot)
+ 
+ print-sysroot-headers-suffix
+ UrlSuffix(gcc/Developer-Options.html#index-print-sysroot-headers-suffix)
+ 
+ r
+ UrlSuffix(gcc/Link-Options.html#index-r)
+ 
+ s
+ UrlSuffix(gcc/Link-Options.html#index-s)
+ 
+ save-temps
+ UrlSuffix(gcc/Developer-Options.html#index-save-temps)
+ 
+ save-temps=
+ UrlSuffix(gcc/Developer-Options.html#index-save-temps)
+ 
+ time
+ UrlSuffix(gcc/Developer-Options.html#index-time)
+ 
+ time=
+ UrlSuffix(gcc/Developer-Options.html#index-time)
+ 
+ u
+ UrlSuffix(gcc/Link-Options.html#index-u)
+ 
+ undef
+ UrlSuffix(gcc/Preprocessor-Options.html#index-undef)
+ 
+ v
+ UrlSuffix(gcc/Overall-Options.html#index-v) LangUrlSuffix_D(gdc/Developer-Options.html#index-v)
+ 
+ version
+ UrlSuffix(gcc/Overall-Options.html#index-version)
+ 
+ w
+ UrlSuffix(gcc/Warning-Options.html#index-w)
+ 
+ wrapper
+ UrlSuffix(gcc/Overall-Options.html#index-wrapper)
+ 
+ x
+ UrlSuffix(gcc/Overall-Options.html#index-x)
+ 
+ shared
+ UrlSuffix(gcc/Link-Options.html#index-shared)
+ 
+ shared-libgcc
+ UrlSuffix(gcc/Link-Options.html#index-shared-libgcc)
+ 
+ specs
+ UrlSuffix(gcc/Overall-Options.html#index-specs)
+ 
+ specs=
+ UrlSuffix(gcc/Overall-Options.html#index-specs)
+ 
+ ; skipping UrlSuffix for 'static' due to multiple URLs:
+ ;   duplicate: 'gcc/Darwin-Options.html#index-static-1'
+ ;   duplicate: 'gcc/Link-Options.html#index-static'
+ 
+ static-libgcc
+ UrlSuffix(gcc/Link-Options.html#index-static-libgcc)
+ 
+ static-libphobos
+ LangUrlSuffix_D(gdc/Linking.html#index-static-libphobos)
+ 
+ static-libstdc++
+ UrlSuffix(gcc/Link-Options.html#index-static-libstdc_002b_002b)
+ 
+ static-libasan
+ UrlSuffix(gcc/Link-Options.html#index-static-libasan)
+ 
+ static-libtsan
+ UrlSuffix(gcc/Link-Options.html#index-static-libtsan)
+ 
+ static-liblsan
+ UrlSuffix(gcc/Link-Options.html#index-static-liblsan)
+ 
+ static-libubsan
+ UrlSuffix(gcc/Link-Options.html#index-static-libubsan)
+ 
+ symbolic
+ UrlSuffix(gcc/Link-Options.html#index-symbolic)
+ 
+ no-pie
+ UrlSuffix(gcc/Link-Options.html#index-no-pie)
+ 
+ pie
+ UrlSuffix(gcc/Link-Options.html#index-pie)
+ 
+ static-pie
+ UrlSuffix(gcc/Link-Options.html#index-static-pie)
+ 
+ z
+ UrlSuffix(gcc/Link-Options.html#index-z)
+ 
+ fipa-ra
+ UrlSuffix(gcc/Optimize-Options.html#index-fipa-ra)
+ 
diff -Nrcpad gcc-13.2.0/gcc/compare-elim.cc gcc-14.1.0/gcc/compare-elim.cc
*** gcc-13.2.0/gcc/compare-elim.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/compare-elim.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Post-reload compare elimination.
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Post-reload compare elimination.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/conditions.h gcc-14.1.0/gcc/conditions.h
*** gcc-13.2.0/gcc/conditions.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/conditions.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for condition code handling in final.cc and output routines.
!    Copyright (C) 1987-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for condition code handling in final.cc and output routines.
!    Copyright (C) 1987-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-arches.def gcc-14.1.0/gcc/config/aarch64/aarch64-arches.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-arches.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-arches.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 30,48 ****
     Due to the assumptions about the positions of these fields in config.gcc,
     NAME should be kept as the first argument.  */
  
! AARCH64_ARCH("armv8-a",       generic,       V8A,       8,  (SIMD))
! AARCH64_ARCH("armv8.1-a",     generic,       V8_1A,     8,  (V8A, LSE, CRC, RDMA))
! AARCH64_ARCH("armv8.2-a",     generic,       V8_2A,     8,  (V8_1A))
! AARCH64_ARCH("armv8.3-a",     generic,       V8_3A,     8,  (V8_2A, PAUTH, RCPC))
! AARCH64_ARCH("armv8.4-a",     generic,       V8_4A,     8,  (V8_3A, F16FML, DOTPROD, FLAGM))
! AARCH64_ARCH("armv8.5-a",     generic,       V8_5A,     8,  (V8_4A, SB, SSBS, PREDRES))
! AARCH64_ARCH("armv8.6-a",     generic,       V8_6A,     8,  (V8_5A, I8MM, BF16))
! AARCH64_ARCH("armv8.7-a",     generic,       V8_7A,     8,  (V8_6A, LS64))
! AARCH64_ARCH("armv8.8-a",     generic,       V8_8A,     8,  (V8_7A, MOPS))
! AARCH64_ARCH("armv8-r",       generic,       V8R  ,     8,  (V8_4A))
! AARCH64_ARCH("armv9-a",       generic,       V9A  ,     9,  (V8_5A, SVE2))
! AARCH64_ARCH("armv9.1-a",     generic,       V9_1A,     9,  (V8_6A, V9A))
! AARCH64_ARCH("armv9.2-a",     generic,       V9_2A,     9,  (V8_7A, V9_1A))
! AARCH64_ARCH("armv9.3-a",     generic,       V9_3A,     9,  (V8_8A, V9_2A))
  
  #undef AARCH64_ARCH
--- 30,50 ----
     Due to the assumptions about the positions of these fields in config.gcc,
     NAME should be kept as the first argument.  */
  
! AARCH64_ARCH("armv8-a",       generic_armv8_a,   V8A,       8,  (SIMD))
! AARCH64_ARCH("armv8.1-a",     generic_armv8_a,   V8_1A,     8,  (V8A, LSE, CRC, RDMA))
! AARCH64_ARCH("armv8.2-a",     generic_armv8_a,   V8_2A,     8,  (V8_1A))
! AARCH64_ARCH("armv8.3-a",     generic_armv8_a,   V8_3A,     8,  (V8_2A, PAUTH, RCPC))
! AARCH64_ARCH("armv8.4-a",     generic_armv8_a,   V8_4A,     8,  (V8_3A, F16FML, DOTPROD, FLAGM))
! AARCH64_ARCH("armv8.5-a",     generic_armv8_a,   V8_5A,     8,  (V8_4A, SB, SSBS, PREDRES))
! AARCH64_ARCH("armv8.6-a",     generic_armv8_a,   V8_6A,     8,  (V8_5A, I8MM, BF16))
! AARCH64_ARCH("armv8.7-a",     generic_armv8_a,   V8_7A,     8,  (V8_6A))
! AARCH64_ARCH("armv8.8-a",     generic_armv8_a,   V8_8A,     8,  (V8_7A, MOPS))
! AARCH64_ARCH("armv8.9-a",     generic_armv8_a,   V8_9A,     8,  (V8_8A, CSSC))
! AARCH64_ARCH("armv8-r",       generic_armv8_a,   V8R  ,     8,  (V8_4A))
! AARCH64_ARCH("armv9-a",       generic_armv9_a,   V9A  ,     9,  (V8_5A, SVE2))
! AARCH64_ARCH("armv9.1-a",     generic_armv9_a,   V9_1A,     9,  (V8_6A, V9A))
! AARCH64_ARCH("armv9.2-a",     generic_armv9_a,   V9_2A,     9,  (V8_7A, V9_1A))
! AARCH64_ARCH("armv9.3-a",     generic_armv9_a,   V9_3A,     9,  (V8_8A, V9_2A))
! AARCH64_ARCH("armv9.4-a",     generic_armv9_a,   V9_4A,     9,  (V8_9A, V9_3A))
  
  #undef AARCH64_ARCH
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-builtins.cc gcc-14.1.0/gcc/config/aarch64/aarch64-builtins.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-builtins.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-builtins.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Builtins' description for AArch64 SIMD architecture.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Builtins' description for AArch64 SIMD architecture.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 47,52 ****
--- 47,54 ----
  #include "stringpool.h"
  #include "attribs.h"
  #include "gimple-fold.h"
+ #include "builtins.h"
+ #include "aarch64-builtins.h"
  
  #define v8qi_UP  E_V8QImode
  #define v8di_UP  E_V8DImode
***************
*** 183,229 ****
  #define SIMD_INTR_QUAL(suffix) QUAL_##suffix
  #define SIMD_INTR_LENGTH_CHAR(length) LENGTH_##length
  
- 
  #define SIMD_MAX_BUILTIN_ARGS 5
  
- enum aarch64_type_qualifiers
- {
-   /* T foo.  */
-   qualifier_none = 0x0,
-   /* unsigned T foo.  */
-   qualifier_unsigned = 0x1, /* 1 << 0  */
-   /* const T foo.  */
-   qualifier_const = 0x2, /* 1 << 1  */
-   /* T *foo.  */
-   qualifier_pointer = 0x4, /* 1 << 2  */
-   /* Used when expanding arguments if an operand could
-      be an immediate.  */
-   qualifier_immediate = 0x8, /* 1 << 3  */
-   qualifier_maybe_immediate = 0x10, /* 1 << 4  */
-   /* void foo (...).  */
-   qualifier_void = 0x20, /* 1 << 5  */
-   /* 1 << 6 is now unused */
-   /* Some builtins should use the T_*mode* encoded in a simd_builtin_datum
-      rather than using the type of the operand.  */
-   qualifier_map_mode = 0x80, /* 1 << 7  */
-   /* qualifier_pointer | qualifier_map_mode  */
-   qualifier_pointer_map_mode = 0x84,
-   /* qualifier_const | qualifier_pointer | qualifier_map_mode  */
-   qualifier_const_pointer_map_mode = 0x86,
-   /* Polynomial types.  */
-   qualifier_poly = 0x100,
-   /* Lane indices - must be in range, and flipped for bigendian.  */
-   qualifier_lane_index = 0x200,
-   /* Lane indices for single lane structure loads and stores.  */
-   qualifier_struct_load_store_lane_index = 0x400,
-   /* Lane indices selected in pairs. - must be in range, and flipped for
-      bigendian.  */
-   qualifier_lane_pair_index = 0x800,
-   /* Lane indices selected in quadtuplets. - must be in range, and flipped for
-      bigendian.  */
-   qualifier_lane_quadtup_index = 0x1000,
- };
- 
  /* Flags that describe what a function might do.  */
  const unsigned int FLAG_NONE = 0U;
  const unsigned int FLAG_READ_FPCR = 1U << 0;
--- 185,192 ----
*************** aarch64_types_storestruct_lane_p_qualifi
*** 502,509 ****
  #define CF4(N, X) CODE_FOR_##N##X##4
  #define CF10(N, X) CODE_FOR_##N##X
  
! #define VAR1(T, N, MAP, FLAG, A) \
!   {#N #A, UP (A), CF##MAP (N, A), 0, TYPES_##T, FLAG_##FLAG},
  #define VAR2(T, N, MAP, FLAG, A, B) \
    VAR1 (T, N, MAP, FLAG, A) \
    VAR1 (T, N, MAP, FLAG, B)
--- 465,475 ----
  #define CF4(N, X) CODE_FOR_##N##X##4
  #define CF10(N, X) CODE_FOR_##N##X
  
! /* Define cascading VAR<N> macros that are used from
!    aarch64-builtin-iterators.h to iterate over modes.  These definitions
!    will end up generating a number of VAR1 expansions and code later on in the
!    file should redefine VAR1 to whatever it needs to process on a per-mode
!    basis.  */
  #define VAR2(T, N, MAP, FLAG, A, B) \
    VAR1 (T, N, MAP, FLAG, A) \
    VAR1 (T, N, MAP, FLAG, B)
*************** aarch64_types_storestruct_lane_p_qualifi
*** 552,557 ****
--- 518,543 ----
  
  #include "aarch64-builtin-iterators.h"
  
+ /* The builtins below should be expanded through the standard optabs
+    CODE_FOR_[u]avg<mode>3_[floor,ceil].  However the mapping scheme in
+    aarch64-simd-builtins.def does not easily allow us to have a pre-mode
+    ("uavg") and post-mode string ("_ceil") in the CODE_FOR_* construction.
+    So the builtins use a name that is natural for AArch64 instructions
+    e.g. "aarch64_srhadd<mode>" and we re-map these to the optab-related
+    CODE_FOR_ here.  */
+ #undef VAR1
+ #define VAR1(F,T1,T2,I,M) \
+ constexpr insn_code CODE_FOR_aarch64_##F##M = CODE_FOR_##T1##M##3##T2;
+ 
+ BUILTIN_VDQ_BHSI (srhadd, avg, _ceil, 0)
+ BUILTIN_VDQ_BHSI (urhadd, uavg, _ceil, 0)
+ BUILTIN_VDQ_BHSI (shadd, avg, _floor, 0)
+ BUILTIN_VDQ_BHSI (uhadd, uavg, _floor, 0)
+ 
+ #undef VAR1
+ #define VAR1(T, N, MAP, FLAG, A) \
+   {#N #A, UP (A), CF##MAP (N, A), 0, TYPES_##T, FLAG_##FLAG},
+ 
  static aarch64_simd_builtin_datum aarch64_simd_builtin_data[] = {
  #include "aarch64-simd-builtins.def"
  };
*************** enum aarch64_builtins
*** 785,790 ****
--- 771,793 ----
    AARCH64_RBIT,
    AARCH64_RBITL,
    AARCH64_RBITLL,
+   /* System register builtins.  */
+   AARCH64_RSR,
+   AARCH64_RSRP,
+   AARCH64_RSR64,
+   AARCH64_RSRF,
+   AARCH64_RSRF64,
+   AARCH64_RSR128,
+   AARCH64_WSR,
+   AARCH64_WSRP,
+   AARCH64_WSR64,
+   AARCH64_WSRF,
+   AARCH64_WSRF64,
+   AARCH64_WSR128,
+   AARCH64_PLD,
+   AARCH64_PLDX,
+   AARCH64_PLI,
+   AARCH64_PLIX,
    AARCH64_BUILTIN_MAX
  };
  
*************** const char *aarch64_scalar_builtin_types
*** 860,906 ****
    NULL
  };
  
! #define ENTRY(E, M, Q, G) E,
! enum aarch64_simd_type
! {
! #include "aarch64-simd-builtin-types.def"
!   ARM_NEON_H_TYPES_LAST
! };
! #undef ENTRY
! 
! struct GTY(()) aarch64_simd_type_info
! {
!   enum aarch64_simd_type type;
! 
!   /* Internal type name.  */
!   const char *name;
! 
!   /* Internal type name(mangled).  The mangled names conform to the
!      AAPCS64 (see "Procedure Call Standard for the ARM 64-bit Architecture",
!      Appendix A).  To qualify for emission with the mangled names defined in
!      that document, a vector type must not only be of the correct mode but also
!      be of the correct internal AdvSIMD vector type (e.g. __Int8x8_t); these
!      types are registered by aarch64_init_simd_builtin_types ().  In other
!      words, vector types defined in other ways e.g. via vector_size attribute
!      will get default mangled names.  */
!   const char *mangle;
! 
!   /* Internal type.  */
!   tree itype;
! 
!   /* Element type.  */
!   tree eltype;
! 
!   /* Machine mode the internal type maps to.  */
!   enum machine_mode mode;
! 
!   /* Qualifiers.  */
!   enum aarch64_type_qualifiers q;
! };
  
  #define ENTRY(E, M, Q, G)  \
    {E, "__" #E, #G "__" #E, NULL_TREE, NULL_TREE, E_##M##mode, qualifier_##Q},
! static GTY(()) struct aarch64_simd_type_info aarch64_simd_types [] = {
  #include "aarch64-simd-builtin-types.def"
  };
  #undef ENTRY
--- 863,873 ----
    NULL
  };
  
! extern GTY(()) aarch64_simd_type_info aarch64_simd_types[];
  
  #define ENTRY(E, M, Q, G)  \
    {E, "__" #E, #G "__" #E, NULL_TREE, NULL_TREE, E_##M##mode, qualifier_##Q},
! struct aarch64_simd_type_info aarch64_simd_types [] = {
  #include "aarch64-simd-builtin-types.def"
  };
  #undef ENTRY
*************** aarch64_init_simd_intrinsics (void)
*** 1366,1372 ****
  	}
  
        tree ftype = build_function_type (return_type, args);
!       tree attrs = aarch64_get_attributes (FLAG_AUTO_FP, d->op_modes[0]);
        unsigned int code
  	      = (d->fcode << AARCH64_BUILTIN_SHIFT | AARCH64_BUILTIN_GENERAL);
        tree fndecl = simulate_builtin_function_decl (input_location, d->name,
--- 1333,1339 ----
  	}
  
        tree ftype = build_function_type (return_type, args);
!       tree attrs = aarch64_get_attributes (d->flags, d->op_modes[0]);
        unsigned int code
  	      = (d->fcode << AARCH64_BUILTIN_SHIFT | AARCH64_BUILTIN_GENERAL);
        tree fndecl = simulate_builtin_function_decl (input_location, d->name,
*************** aarch64_init_tme_builtins (void)
*** 1764,1770 ****
  static void
  aarch64_init_rng_builtins (void)
  {
!   tree unsigned_ptr_type = build_pointer_type (unsigned_intDI_type_node);
    tree ftype
      = build_function_type_list (integer_type_node, unsigned_ptr_type, NULL);
    aarch64_builtin_decls[AARCH64_BUILTIN_RNG_RNDR]
--- 1731,1738 ----
  static void
  aarch64_init_rng_builtins (void)
  {
!   tree unsigned_ptr_type
!     = build_pointer_type (get_typenode_from_name (UINT64_TYPE));
    tree ftype
      = build_function_type_list (integer_type_node, unsigned_ptr_type, NULL);
    aarch64_builtin_decls[AARCH64_BUILTIN_RNG_RNDR]
*************** aarch64_init_rng_builtins (void)
*** 1775,1782 ****
  				   AARCH64_BUILTIN_RNG_RNDRRS);
  }
  
  /* Initialize the memory tagging extension (MTE) builtins.  */
! struct
  {
    tree ftype;
    enum insn_code icode;
--- 1743,1846 ----
  				   AARCH64_BUILTIN_RNG_RNDRRS);
  }
  
+ /* Add builtins for reading system register.  */
+ static void
+ aarch64_init_rwsr_builtins (void)
+ {
+   tree fntype = NULL;
+   tree const_char_ptr_type
+     = build_pointer_type (build_type_variant (char_type_node, true, false));
+ 
+ #define AARCH64_INIT_RWSR_BUILTINS_DECL(F, N, T) \
+   aarch64_builtin_decls[AARCH64_##F] \
+     = aarch64_general_add_builtin ("__builtin_aarch64_"#N, T, AARCH64_##F);
+ 
+   fntype
+     = build_function_type_list (uint32_type_node, const_char_ptr_type, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (RSR, rsr, fntype);
+ 
+   fntype
+     = build_function_type_list (ptr_type_node, const_char_ptr_type, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (RSRP, rsrp, fntype);
+ 
+   fntype
+     = build_function_type_list (uint64_type_node, const_char_ptr_type, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (RSR64, rsr64, fntype);
+ 
+   fntype
+     = build_function_type_list (float_type_node, const_char_ptr_type, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (RSRF, rsrf, fntype);
+ 
+   fntype
+     = build_function_type_list (double_type_node, const_char_ptr_type, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (RSRF64, rsrf64, fntype);
+ 
+   fntype
+     = build_function_type_list (uint128_type_node, const_char_ptr_type, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (RSR128, rsr128, fntype);
+ 
+   fntype
+     = build_function_type_list (void_type_node, const_char_ptr_type,
+ 				uint32_type_node, NULL);
+ 
+   AARCH64_INIT_RWSR_BUILTINS_DECL (WSR, wsr, fntype);
+ 
+   fntype
+     = build_function_type_list (void_type_node, const_char_ptr_type,
+ 				const_ptr_type_node, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (WSRP, wsrp, fntype);
+ 
+   fntype
+     = build_function_type_list (void_type_node, const_char_ptr_type,
+ 				uint64_type_node, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (WSR64, wsr64, fntype);
+ 
+   fntype
+     = build_function_type_list (void_type_node, const_char_ptr_type,
+ 				float_type_node, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (WSRF, wsrf, fntype);
+ 
+   fntype
+     = build_function_type_list (void_type_node, const_char_ptr_type,
+ 				double_type_node, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (WSRF64, wsrf64, fntype);
+ 
+   fntype
+     = build_function_type_list (void_type_node, const_char_ptr_type,
+ 				uint128_type_node, NULL);
+   AARCH64_INIT_RWSR_BUILTINS_DECL (WSR128, wsr128, fntype);
+ }
+ 
+ /* Add builtins for data and instrution prefetch.  */
+ static void
+ aarch64_init_prefetch_builtin (void)
+ {
+ #define AARCH64_INIT_PREFETCH_BUILTIN(INDEX, N)				\
+   aarch64_builtin_decls[INDEX] =					\
+     aarch64_general_add_builtin ("__builtin_aarch64_" N, ftype, INDEX)
+ 
+   tree ftype;
+   tree cv_argtype;
+   cv_argtype = build_qualified_type (void_type_node, TYPE_QUAL_CONST
+ 						     | TYPE_QUAL_VOLATILE);
+   cv_argtype = build_pointer_type (cv_argtype);
+ 
+   ftype = build_function_type_list (void_type_node, cv_argtype, NULL);
+   AARCH64_INIT_PREFETCH_BUILTIN (AARCH64_PLD, "pld");
+   AARCH64_INIT_PREFETCH_BUILTIN (AARCH64_PLI, "pli");
+ 
+   ftype = build_function_type_list (void_type_node, unsigned_type_node,
+ 				    unsigned_type_node, unsigned_type_node,
+ 				    cv_argtype, NULL);
+   AARCH64_INIT_PREFETCH_BUILTIN (AARCH64_PLDX, "pldx");
+ 
+   ftype = build_function_type_list (void_type_node, unsigned_type_node,
+ 				    unsigned_type_node, cv_argtype, NULL);
+   AARCH64_INIT_PREFETCH_BUILTIN (AARCH64_PLIX, "plix");
+ }
+ 
  /* Initialize the memory tagging extension (MTE) builtins.  */
! static GTY(()) struct GTY(())
  {
    tree ftype;
    enum insn_code icode;
*************** aarch64_general_init_builtins (void)
*** 1996,2001 ****
--- 2060,2068 ----
    aarch64_init_rng_builtins ();
    aarch64_init_data_intrinsics ();
  
+   aarch64_init_rwsr_builtins ();
+   aarch64_init_prefetch_builtin ();
+ 
    tree ftype_jcvt
      = build_function_type_list (intSI_type_node, double_type_node, NULL);
    aarch64_builtin_decls[AARCH64_JSCVT]
*************** aarch64_general_builtin_decl (unsigned c
*** 2031,2036 ****
--- 2098,2134 ----
    return aarch64_builtin_decls[code];
  }
  
+ bool
+ aarch64_general_check_builtin_call (location_t location, vec<location_t>,
+ 			    unsigned int code, tree fndecl,
+ 			    unsigned int nargs ATTRIBUTE_UNUSED, tree *args)
+ {
+   switch (code)
+     {
+     case AARCH64_RSR:
+     case AARCH64_RSRP:
+     case AARCH64_RSR64:
+     case AARCH64_RSRF:
+     case AARCH64_RSRF64:
+     case AARCH64_WSR:
+     case AARCH64_WSRP:
+     case AARCH64_WSR64:
+     case AARCH64_WSRF:
+     case AARCH64_WSRF64:
+       tree addr = STRIP_NOPS (args[0]);
+       if (TREE_CODE (TREE_TYPE (addr)) != POINTER_TYPE
+ 	  || TREE_CODE (addr) != ADDR_EXPR
+ 	  || TREE_CODE (TREE_OPERAND (addr, 0)) != STRING_CST)
+ 	{
+ 	  error_at (location, "first argument to %qD must be a string literal",
+ 		    fndecl);
+ 	  return false;
+ 	}
+     }
+   /* Default behavior.  */
+   return true;
+ }
+ 
  typedef enum
  {
    SIMD_ARG_COPY_TO_REG,
*************** aarch64_expand_rng_builtin (tree exp, rt
*** 2576,2581 ****
--- 2674,2890 ----
    return target;
  }
  
+ /* Expand the read/write system register builtin EXPs.  */
+ rtx
+ aarch64_expand_rwsr_builtin (tree exp, rtx target, int fcode)
+ {
+   tree arg0, arg1;
+   rtx const_str, input_val, subreg;
+   enum machine_mode mode;
+   enum insn_code icode;
+   class expand_operand ops[2];
+ 
+   arg0 = CALL_EXPR_ARG (exp, 0);
+ 
+   bool write_op = (fcode == AARCH64_WSR
+ 		   || fcode == AARCH64_WSRP
+ 		   || fcode == AARCH64_WSR64
+ 		   || fcode == AARCH64_WSRF
+ 		   || fcode == AARCH64_WSRF64
+ 		   || fcode == AARCH64_WSR128);
+ 
+   bool op128 = (fcode == AARCH64_RSR128 || fcode == AARCH64_WSR128);
+   enum machine_mode sysreg_mode = op128 ? TImode : DImode;
+ 
+   if (op128 && !TARGET_D128)
+     {
+       error_at (EXPR_LOCATION (exp), "128-bit system register support requires"
+ 				     " the %<d128%> extension");
+       return const0_rtx;
+     }
+ 
+   /* Argument 0 (system register name) must be a string literal.  */
+   gcc_assert (TREE_CODE (arg0) == ADDR_EXPR
+ 	      && TREE_CODE (TREE_TYPE (arg0)) == POINTER_TYPE
+ 	      && TREE_CODE (TREE_OPERAND (arg0, 0)) == STRING_CST);
+ 
+   const char *name_input = TREE_STRING_POINTER (TREE_OPERAND (arg0, 0));
+ 
+   tree len_tree = c_strlen (arg0, 1);
+   if (len_tree == NULL_TREE)
+     {
+       error_at (EXPR_LOCATION (exp), "invalid system register name provided");
+       return const0_rtx;
+     }
+ 
+   size_t len = TREE_INT_CST_LOW (len_tree);
+   char *sysreg_name = xstrdup (name_input);
+ 
+   for (unsigned pos = 0; pos <= len; pos++)
+     sysreg_name[pos] = TOLOWER (sysreg_name[pos]);
+ 
+   const char* name_output = aarch64_retrieve_sysreg ((const char *) sysreg_name,
+ 						     write_op, op128);
+   if (name_output == NULL)
+     {
+       error_at (EXPR_LOCATION (exp), "invalid system register name %qs",
+ 		sysreg_name);
+       return const0_rtx;
+     }
+ 
+   /* Assign the string corresponding to the system register name to an RTX.  */
+   const_str = rtx_alloc (CONST_STRING);
+   PUT_CODE (const_str, CONST_STRING);
+   XSTR (const_str, 0) = ggc_strdup (name_output);
+ 
+   /* Set up expander operands and call instruction expansion.  */
+   if (write_op)
+     {
+       arg1 = CALL_EXPR_ARG (exp, 1);
+       mode = TYPE_MODE (TREE_TYPE (arg1));
+       input_val = copy_to_mode_reg (mode, expand_normal (arg1));
+ 
+       icode = (op128 ? CODE_FOR_aarch64_write_sysregti
+ 		     : CODE_FOR_aarch64_write_sysregdi);
+ 
+       switch (fcode)
+ 	{
+ 	case AARCH64_WSR:
+ 	case AARCH64_WSRP:
+ 	case AARCH64_WSR64:
+ 	case AARCH64_WSRF64:
+ 	case AARCH64_WSR128:
+ 	  subreg = lowpart_subreg (sysreg_mode, input_val, mode);
+ 	  break;
+ 	case AARCH64_WSRF:
+ 	  subreg = gen_lowpart_SUBREG (SImode, input_val);
+ 	  subreg = gen_lowpart_SUBREG (DImode, subreg);
+ 	  break;
+ 	}
+ 
+       create_fixed_operand (&ops[0], const_str);
+       create_input_operand (&ops[1], subreg, sysreg_mode);
+       expand_insn (icode, 2, ops);
+ 
+       return target;
+     }
+ 
+   /* Read operations are implied by !write_op.  */
+   gcc_assert (call_expr_nargs (exp) == 1);
+ 
+   icode = (op128 ? CODE_FOR_aarch64_read_sysregti
+ 		 : CODE_FOR_aarch64_read_sysregdi);
+ 
+   /* Emit the initial read_sysregdi rtx.  */
+   create_output_operand (&ops[0], target, sysreg_mode);
+   create_fixed_operand (&ops[1], const_str);
+   expand_insn (icode, 2, ops);
+   target = ops[0].value;
+ 
+   /* Do any necessary post-processing on the result.  */
+   switch (fcode)
+     {
+     case AARCH64_RSR:
+     case AARCH64_RSRP:
+     case AARCH64_RSR64:
+     case AARCH64_RSRF64:
+     case AARCH64_RSR128:
+       return lowpart_subreg (TYPE_MODE (TREE_TYPE (exp)), target, sysreg_mode);
+     case AARCH64_RSRF:
+       subreg = gen_lowpart_SUBREG (SImode, target);
+       return gen_lowpart_SUBREG (SFmode, subreg);
+     default:
+       gcc_unreachable ();
+     }
+ }
+ 
+ /* Ensure argument ARGNO in EXP represents a const-type argument in the range
+    [MINVAL, MAXVAL).  */
+ static HOST_WIDE_INT
+ require_const_argument (tree exp, unsigned int argno, HOST_WIDE_INT minval,
+ 			HOST_WIDE_INT maxval)
+ {
+   maxval--;
+   tree arg = CALL_EXPR_ARG (exp, argno);
+   if (TREE_CODE (arg) != INTEGER_CST)
+       error_at (EXPR_LOCATION (exp), "Constant-type argument expected");
+ 
+   auto argval = wi::to_widest (arg);
+ 
+   if (argval < minval || argval > maxval)
+     error_at (EXPR_LOCATION (exp),
+ 	      "argument %d must be a constant immediate "
+ 	      "in range [%wd,%wd]", argno + 1, minval, maxval);
+ 
+   HOST_WIDE_INT retval = argval.to_shwi ();
+   return retval;
+ }
+ 
+ 
+ /* Expand a prefetch builtin EXP.  */
+ void
+ aarch64_expand_prefetch_builtin (tree exp, int fcode)
+ {
+   int kind_id = -1;
+   int level_id = -1;
+   int rettn_id = -1;
+   char prfop[11];
+   class expand_operand ops[2];
+ 
+   static const char *kind_s[] = {"PLD", "PST", "PLI"};
+   static const char *level_s[] = {"L1", "L2", "L3", "SLC"};
+   static const char *rettn_s[] = {"KEEP", "STRM"};
+ 
+   /* Each of the four prefetch builtins takes a different number of arguments,
+      but proceeds to call the PRFM insn which requires 4 pieces of information
+      to be fully defined.  Where one of these takes less than 4 arguments, set
+      sensible defaults.  */
+   switch (fcode)
+     {
+     case AARCH64_PLDX:
+       break;
+     case AARCH64_PLIX:
+       kind_id = 2;
+       break;
+     case AARCH64_PLI:
+     case AARCH64_PLD:
+       kind_id  = (fcode == AARCH64_PLD) ? 0 : 2;
+       level_id = 0;
+       rettn_id = 0;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   /* Any -1 id variable is to be user-supplied.  Here we fill these in and run
+      bounds checks on them.  "PLI" is used only implicitly by AARCH64_PLI &
+      AARCH64_PLIX, never explicitly.  */
+   int argno = 0;
+   if (kind_id < 0)
+     kind_id = require_const_argument (exp, argno++, 0, ARRAY_SIZE (kind_s) - 1);
+   if (level_id < 0)
+     level_id = require_const_argument (exp, argno++, 0, ARRAY_SIZE (level_s));
+   if (rettn_id < 0)
+     rettn_id = require_const_argument (exp, argno++, 0, ARRAY_SIZE (rettn_s));
+   rtx address = expand_expr (CALL_EXPR_ARG (exp, argno), NULL_RTX, Pmode,
+ 			     EXPAND_NORMAL);
+ 
+   if (seen_error ())
+     return;
+ 
+   sprintf (prfop, "%s%s%s", kind_s[kind_id],
+ 			    level_s[level_id],
+ 			    rettn_s[rettn_id]);
+ 
+   rtx const_str = rtx_alloc (CONST_STRING);
+   PUT_CODE (const_str, CONST_STRING);
+   XSTR (const_str, 0) = ggc_strdup (prfop);
+ 
+   create_fixed_operand (&ops[0], const_str);
+   create_address_operand (&ops[1], address);
+   maybe_expand_insn (CODE_FOR_aarch64_pldx, 2, ops);
+ }
+ 
  /* Expand an expression EXP that calls a MEMTAG built-in FCODE
     with result going to TARGET.  */
  static rtx
*************** aarch64_general_expand_builtin (unsigned
*** 2809,2814 ****
--- 3118,3142 ----
      case AARCH64_BUILTIN_RNG_RNDR:
      case AARCH64_BUILTIN_RNG_RNDRRS:
        return aarch64_expand_rng_builtin (exp, target, fcode, ignore);
+     case AARCH64_RSR:
+     case AARCH64_RSRP:
+     case AARCH64_RSR64:
+     case AARCH64_RSRF:
+     case AARCH64_RSRF64:
+     case AARCH64_RSR128:
+     case AARCH64_WSR:
+     case AARCH64_WSRP:
+     case AARCH64_WSR64:
+     case AARCH64_WSRF:
+     case AARCH64_WSRF64:
+     case AARCH64_WSR128:
+       return aarch64_expand_rwsr_builtin (exp, target, fcode);
+     case AARCH64_PLD:
+     case AARCH64_PLDX:
+     case AARCH64_PLI:
+     case AARCH64_PLIX:
+       aarch64_expand_prefetch_builtin (exp, fcode);
+       return target;
      }
  
    if (fcode >= AARCH64_SIMD_BUILTIN_BASE && fcode <= AARCH64_SIMD_BUILTIN_MAX)
*************** aarch64_general_gimple_fold_builtin (uns
*** 3040,3045 ****
--- 3368,3374 ----
    switch (fcode)
      {
        BUILTIN_VALL (UNOP, reduc_plus_scal_, 10, ALL)
+       BUILTIN_VDQ_I (UNOPU, reduc_plus_scal_, 10, NONE)
  	new_stmt = gimple_build_call_internal (IFN_REDUC_PLUS,
  					       1, args[0]);
  	gimple_call_set_lhs (new_stmt, gimple_call_lhs (stmt));
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-builtins.h gcc-14.1.0/gcc/config/aarch64/aarch64-builtins.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-builtins.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-builtins.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,99 ----
+ /* Builtins' description for AArch64 SIMD architecture.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ #ifndef GCC_AARCH64_BUILTINS_H
+ #define GCC_AARCH64_BUILTINS_H
+ 
+ enum aarch64_type_qualifiers
+ {
+   /* T foo.  */
+   qualifier_none = 0x0,
+   /* unsigned T foo.  */
+   qualifier_unsigned = 0x1, /* 1 << 0  */
+   /* const T foo.  */
+   qualifier_const = 0x2, /* 1 << 1  */
+   /* T *foo.  */
+   qualifier_pointer = 0x4, /* 1 << 2  */
+   /* Used when expanding arguments if an operand could
+      be an immediate.  */
+   qualifier_immediate = 0x8, /* 1 << 3  */
+   qualifier_maybe_immediate = 0x10, /* 1 << 4  */
+   /* void foo (...).  */
+   qualifier_void = 0x20, /* 1 << 5  */
+   /* 1 << 6 is now unused */
+   /* Some builtins should use the T_*mode* encoded in a simd_builtin_datum
+      rather than using the type of the operand.  */
+   qualifier_map_mode = 0x80, /* 1 << 7  */
+   /* qualifier_pointer | qualifier_map_mode  */
+   qualifier_pointer_map_mode = 0x84,
+   /* qualifier_const | qualifier_pointer | qualifier_map_mode  */
+   qualifier_const_pointer_map_mode = 0x86,
+   /* Polynomial types.  */
+   qualifier_poly = 0x100,
+   /* Lane indices - must be in range, and flipped for bigendian.  */
+   qualifier_lane_index = 0x200,
+   /* Lane indices for single lane structure loads and stores.  */
+   qualifier_struct_load_store_lane_index = 0x400,
+   /* Lane indices selected in pairs. - must be in range, and flipped for
+      bigendian.  */
+   qualifier_lane_pair_index = 0x800,
+   /* Lane indices selected in quadtuplets. - must be in range, and flipped for
+      bigendian.  */
+   qualifier_lane_quadtup_index = 0x1000,
+ };
+ 
+ #define ENTRY(E, M, Q, G) E,
+ enum aarch64_simd_type
+ {
+ #include "aarch64-simd-builtin-types.def"
+   ARM_NEON_H_TYPES_LAST
+ };
+ #undef ENTRY
+ 
+ struct GTY(()) aarch64_simd_type_info
+ {
+   enum aarch64_simd_type type;
+ 
+   /* Internal type name.  */
+   const char *name;
+ 
+   /* Internal type name(mangled).  The mangled names conform to the
+      AAPCS64 (see "Procedure Call Standard for the ARM 64-bit Architecture",
+      Appendix A).  To qualify for emission with the mangled names defined in
+      that document, a vector type must not only be of the correct mode but also
+      be of the correct internal AdvSIMD vector type (e.g. __Int8x8_t); these
+      types are registered by aarch64_init_simd_builtin_types ().  In other
+      words, vector types defined in other ways e.g. via vector_size attribute
+      will get default mangled names.  */
+   const char *mangle;
+ 
+   /* Internal type.  */
+   tree itype;
+ 
+   /* Element type.  */
+   tree eltype;
+ 
+   /* Machine mode the internal type maps to.  */
+   enum machine_mode mode;
+ 
+   /* Qualifiers.  */
+   enum aarch64_type_qualifiers q;
+ };
+ 
+ extern aarch64_simd_type_info aarch64_simd_types[];
+ 
+ #endif
\ No newline at end of file
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-c.cc gcc-14.1.0/gcc/config/aarch64/aarch64-c.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-c.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-c.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target-specific code for C family languages.
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Target-specific code for C family languages.
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** aarch64_define_unconditional_macros (cpp
*** 72,77 ****
--- 72,125 ----
    builtin_define_with_int_value ("__ARM_SIZEOF_WCHAR_T", WCHAR_TYPE_SIZE / 8);
  
    builtin_define ("__GCC_ASM_FLAG_OUTPUTS__");
+ 
+   builtin_define ("__ARM_STATE_ZA");
+   builtin_define ("__ARM_STATE_ZT0");
+ 
+   /* Define keyword attributes like __arm_streaming as macros that expand
+      to the associated [[...]] attribute.  Use __extension__ in the attribute
+      for C, since the [[...]] syntax was only added in C23.  */
+ #define DEFINE_ARM_KEYWORD_MACRO(NAME) \
+   builtin_define_with_value ("__arm_" NAME, \
+ 			     lang_GNU_CXX () \
+ 			     ? "[[arm::" NAME "]]" \
+ 			     : "[[__extension__ arm::" NAME "]]", 0);
+ 
+   DEFINE_ARM_KEYWORD_MACRO ("streaming");
+   DEFINE_ARM_KEYWORD_MACRO ("streaming_compatible");
+   DEFINE_ARM_KEYWORD_MACRO ("locally_streaming");
+ 
+ #undef DEFINE_ARM_KEYWORD_MACRO
+ 
+   /* Same for the keyword attributes that take arguments.  The snag here
+      is that some old modes warn about or reject variadic arguments.  */
+   auto *cpp_opts = cpp_get_options (parse_in);
+   if (!cpp_opts->traditional)
+     {
+       auto old_warn_variadic_macros = cpp_opts->warn_variadic_macros;
+       auto old_cpp_warn_c90_c99_compat = cpp_opts->cpp_warn_c90_c99_compat;
+ 
+       cpp_opts->warn_variadic_macros = false;
+       cpp_opts->cpp_warn_c90_c99_compat = 0;
+ 
+ #define DEFINE_ARM_KEYWORD_MACRO_ARGS(NAME) \
+   builtin_define_with_value ("__arm_" NAME "(...)", \
+ 			     lang_GNU_CXX () \
+ 			     ? "[[arm::" NAME "(__VA_ARGS__)]]" \
+ 			     : "[[__extension__ arm::" NAME \
+ 			       "(__VA_ARGS__)]]", 0);
+ 
+       DEFINE_ARM_KEYWORD_MACRO_ARGS ("new");
+       DEFINE_ARM_KEYWORD_MACRO_ARGS ("preserves");
+       DEFINE_ARM_KEYWORD_MACRO_ARGS ("in");
+       DEFINE_ARM_KEYWORD_MACRO_ARGS ("out");
+       DEFINE_ARM_KEYWORD_MACRO_ARGS ("inout");
+ 
+ #undef DEFINE_ARM_KEYWORD_MACRO_ARGS
+ 
+       cpp_opts->warn_variadic_macros = old_warn_variadic_macros;
+       cpp_opts->cpp_warn_c90_c99_compat = old_cpp_warn_c90_c99_compat;
+     }
  }
  
  /* Undefine/redefine macros that depend on the current backend state and may
*************** aarch64_update_cpp_builtins (cpp_reader
*** 82,87 ****
--- 130,136 ----
  {
    aarch64_def_or_undef (flag_unsafe_math_optimizations, "__ARM_FP_FAST", pfile);
  
+   cpp_undef (pfile, "__ARM_ARCH");
    builtin_define_with_int_value ("__ARM_ARCH", AARCH64_ISA_V9A ? 9 : 8);
  
    builtin_define_with_int_value ("__ARM_SIZEOF_MINIMAL_ENUM",
*************** aarch64_update_cpp_builtins (cpp_reader
*** 139,145 ****
    aarch64_def_or_undef (TARGET_ILP32, "_ILP32", pfile);
    aarch64_def_or_undef (TARGET_ILP32, "__ILP32__", pfile);
  
!   aarch64_def_or_undef (TARGET_CRYPTO, "__ARM_FEATURE_CRYPTO", pfile);
    aarch64_def_or_undef (TARGET_SIMD_RDMA, "__ARM_FEATURE_QRDMX", pfile);
    aarch64_def_or_undef (TARGET_SVE, "__ARM_FEATURE_SVE", pfile);
    cpp_undef (pfile, "__ARM_FEATURE_SVE_BITS");
--- 188,194 ----
    aarch64_def_or_undef (TARGET_ILP32, "_ILP32", pfile);
    aarch64_def_or_undef (TARGET_ILP32, "__ILP32__", pfile);
  
!   aarch64_def_or_undef (TARGET_AES && TARGET_SHA2, "__ARM_FEATURE_CRYPTO", pfile);
    aarch64_def_or_undef (TARGET_SIMD_RDMA, "__ARM_FEATURE_QRDMX", pfile);
    aarch64_def_or_undef (TARGET_SVE, "__ARM_FEATURE_SVE", pfile);
    cpp_undef (pfile, "__ARM_FEATURE_SVE_BITS");
*************** aarch64_update_cpp_builtins (cpp_reader
*** 186,194 ****
    if (aarch_ra_sign_scope != AARCH_FUNCTION_NONE)
      {
        int v = 0;
!       if (aarch_ra_sign_key == AARCH_KEY_A)
  	v |= 1;
!       if (aarch_ra_sign_key == AARCH_KEY_B)
  	v |= 2;
        if (aarch_ra_sign_scope == AARCH_FUNCTION_ALL)
  	v |= 4;
--- 235,243 ----
    if (aarch_ra_sign_scope != AARCH_FUNCTION_NONE)
      {
        int v = 0;
!       if (aarch64_ra_sign_key == AARCH64_KEY_A)
  	v |= 1;
!       if (aarch64_ra_sign_key == AARCH64_KEY_B)
  	v |= 2;
        if (aarch_ra_sign_scope == AARCH_FUNCTION_ALL)
  	v |= 4;
*************** aarch64_update_cpp_builtins (cpp_reader
*** 205,210 ****
--- 254,265 ----
    aarch64_def_or_undef (TARGET_LS64,
  			"__ARM_FEATURE_LS64", pfile);
    aarch64_def_or_undef (AARCH64_ISA_RCPC, "__ARM_FEATURE_RCPC", pfile);
+   aarch64_def_or_undef (TARGET_D128, "__ARM_FEATURE_SYSREG128", pfile);
+ 
+   aarch64_def_or_undef (TARGET_SME, "__ARM_FEATURE_SME", pfile);
+   aarch64_def_or_undef (TARGET_SME_I16I64, "__ARM_FEATURE_SME_I16I64", pfile);
+   aarch64_def_or_undef (TARGET_SME_F64F64, "__ARM_FEATURE_SME_F64F64", pfile);
+   aarch64_def_or_undef (TARGET_SME2, "__ARM_FEATURE_SME2", pfile);
  
    /* Not for ACLE, but required to keep "float.h" correct if we switch
       target between implementations that do or do not support ARMv8.2-A
*************** aarch64_pragma_aarch64 (cpp_reader *)
*** 289,299 ****
  
    const char *name = TREE_STRING_POINTER (x);
    if (strcmp (name, "arm_sve.h") == 0)
!     aarch64_sve::handle_arm_sve_h ();
    else if (strcmp (name, "arm_neon.h") == 0)
      handle_arm_neon_h ();
    else if (strcmp (name, "arm_acle.h") == 0)
      handle_arm_acle_h ();
    else
      error ("unknown %<#pragma GCC aarch64%> option %qs", name);
  }
--- 344,358 ----
  
    const char *name = TREE_STRING_POINTER (x);
    if (strcmp (name, "arm_sve.h") == 0)
!     aarch64_sve::handle_arm_sve_h (false);
!   else if (strcmp (name, "arm_sme.h") == 0)
!     aarch64_sve::handle_arm_sme_h (false);
    else if (strcmp (name, "arm_neon.h") == 0)
      handle_arm_neon_h ();
    else if (strcmp (name, "arm_acle.h") == 0)
      handle_arm_acle_h ();
+   else if (strcmp (name, "arm_neon_sve_bridge.h") == 0)
+     aarch64_sve::handle_arm_neon_sve_bridge_h (false);
    else
      error ("unknown %<#pragma GCC aarch64%> option %qs", name);
  }
*************** aarch64_check_builtin_call (location_t l
*** 338,345 ****
    switch (code & AARCH64_BUILTIN_CLASS)
      {
      case AARCH64_BUILTIN_GENERAL:
!       return true;
! 
      case AARCH64_BUILTIN_SVE:
        return aarch64_sve::check_builtin_call (loc, arg_loc, subcode,
  					      orig_fndecl, nargs, args);
--- 397,404 ----
    switch (code & AARCH64_BUILTIN_CLASS)
      {
      case AARCH64_BUILTIN_GENERAL:
!       return aarch64_general_check_builtin_call (loc, arg_loc, subcode,
! 						 orig_fndecl, nargs, args);
      case AARCH64_BUILTIN_SVE:
        return aarch64_sve::check_builtin_call (loc, arg_loc, subcode,
  					      orig_fndecl, nargs, args);
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-cc-fusion.cc gcc-14.1.0/gcc/config/aarch64/aarch64-cc-fusion.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-cc-fusion.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-cc-fusion.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  // Pass to fuse CC operations with other instructions.
! // Copyright (C) 2021-2023 Free Software Foundation, Inc.
  //
  // This file is part of GCC.
  //
--- 1,5 ----
  // Pass to fuse CC operations with other instructions.
! // Copyright (C) 2021-2024 Free Software Foundation, Inc.
  //
  // This file is part of GCC.
  //
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-cores.def gcc-14.1.0/gcc/config/aarch64/aarch64-cores.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-cores.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-cores.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** AARCH64_CORE("thunderxt83",   thunderxt8
*** 74,79 ****
--- 74,80 ----
  /* Ampere Computing ('\xC0') cores. */
  AARCH64_CORE("ampere1", ampere1, cortexa57, V8_6A, (F16, RNG, AES, SHA3), ampere1, 0xC0, 0xac3, -1)
  AARCH64_CORE("ampere1a", ampere1a, cortexa57, V8_6A, (F16, RNG, AES, SHA3, SM4, MEMTAG), ampere1a, 0xC0, 0xac4, -1)
+ AARCH64_CORE("ampere1b", ampere1b, cortexa57, V8_7A, (F16, RNG, AES, SHA3, SM4, MEMTAG, CSSC), ampere1b, 0xC0, 0xac5, -1)
  /* Do not swap around "emag" and "xgene1",
     this order is required to handle variant correctly. */
  AARCH64_CORE("emag",        emag,      xgene1,    V8A,  (CRC, CRYPTO), emag, 0x50, 0x000, 3)
*************** AARCH64_CORE("cortex-a65",  cortexa65, c
*** 115,122 ****
  AARCH64_CORE("cortex-a65ae",  cortexa65ae, cortexa53, V8_2A,  (F16, RCPC, DOTPROD, SSBS), cortexa73, 0x41, 0xd43, -1)
  AARCH64_CORE("cortex-x1",  cortexx1, cortexa57, V8_2A,  (F16, RCPC, DOTPROD, SSBS, PROFILE), neoversen1, 0x41, 0xd44, -1)
  AARCH64_CORE("cortex-x1c",  cortexx1c, cortexa57, V8_2A,  (F16, RCPC, DOTPROD, SSBS, PROFILE, PAUTH), neoversen1, 0x41, 0xd4c, -1)
- AARCH64_CORE("ares",  ares, cortexa57, V8_2A,  (F16, RCPC, DOTPROD, PROFILE), neoversen1, 0x41, 0xd0c, -1)
  AARCH64_CORE("neoverse-n1",  neoversen1, cortexa57, V8_2A,  (F16, RCPC, DOTPROD, PROFILE), neoversen1, 0x41, 0xd0c, -1)
  AARCH64_CORE("neoverse-e1",  neoversee1, cortexa53, V8_2A,  (F16, RCPC, DOTPROD, SSBS), cortexa73, 0x41, 0xd4a, -1)
  
  /* Cavium ('C') cores. */
--- 116,123 ----
  AARCH64_CORE("cortex-a65ae",  cortexa65ae, cortexa53, V8_2A,  (F16, RCPC, DOTPROD, SSBS), cortexa73, 0x41, 0xd43, -1)
  AARCH64_CORE("cortex-x1",  cortexx1, cortexa57, V8_2A,  (F16, RCPC, DOTPROD, SSBS, PROFILE), neoversen1, 0x41, 0xd44, -1)
  AARCH64_CORE("cortex-x1c",  cortexx1c, cortexa57, V8_2A,  (F16, RCPC, DOTPROD, SSBS, PROFILE, PAUTH), neoversen1, 0x41, 0xd4c, -1)
  AARCH64_CORE("neoverse-n1",  neoversen1, cortexa57, V8_2A,  (F16, RCPC, DOTPROD, PROFILE), neoversen1, 0x41, 0xd0c, -1)
+ AARCH64_CORE("ares",  ares, cortexa57, V8_2A,  (F16, RCPC, DOTPROD, PROFILE), neoversen1, 0x41, 0xd0c, -1)
  AARCH64_CORE("neoverse-e1",  neoversee1, cortexa53, V8_2A,  (F16, RCPC, DOTPROD, SSBS), cortexa73, 0x41, 0xd4a, -1)
  
  /* Cavium ('C') cores. */
*************** AARCH64_CORE("thunderx3t110",  thunderx3
*** 143,150 ****
  /* ARMv8.4-A Architecture Processors.  */
  
  /* Arm ('A') cores.  */
- AARCH64_CORE("zeus", zeus, cortexa57, V8_4A,  (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoversev1, 0x41, 0xd40, -1)
  AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, V8_4A,  (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoversev1, 0x41, 0xd40, -1)
  AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, V8_4A,  (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoverse512tvb, INVALID_IMP, INVALID_CORE, -1)
  
  /* Qualcomm ('Q') cores. */
--- 144,151 ----
  /* ARMv8.4-A Architecture Processors.  */
  
  /* Arm ('A') cores.  */
  AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, V8_4A,  (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoversev1, 0x41, 0xd40, -1)
+ AARCH64_CORE("zeus", zeus, cortexa57, V8_4A,  (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoversev1, 0x41, 0xd40, -1)
  AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, V8_4A,  (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoverse512tvb, INVALID_IMP, INVALID_CORE, -1)
  
  /* Qualcomm ('Q') cores. */
*************** AARCH64_CORE("cortex-r82", cortexr82, co
*** 168,186 ****
  /* Armv9.0-A Architecture Processors.  */
  
  /* Arm ('A') cores. */
! AARCH64_CORE("cortex-a510",  cortexa510, cortexa55, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), cortexa53, 0x41, 0xd46, -1)
  
  AARCH64_CORE("cortex-a710",  cortexa710, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd47, -1)
  
  AARCH64_CORE("cortex-a715",  cortexa715, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd4d, -1)
  
  AARCH64_CORE("cortex-x2",  cortexx2, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd48, -1)
  
  AARCH64_CORE("cortex-x3",  cortexx3, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd4e, -1)
  
  AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x41, 0xd49, -1)
  
- AARCH64_CORE("demeter", demeter, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
  AARCH64_CORE("neoverse-v2", neoversev2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
  
  #undef AARCH64_CORE
--- 169,199 ----
  /* Armv9.0-A Architecture Processors.  */
  
  /* Arm ('A') cores. */
! AARCH64_CORE("cortex-a510",  cortexa510, cortexa53, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), cortexa53, 0x41, 0xd46, -1)
! 
! AARCH64_CORE("cortex-a520",  cortexa520, cortexa53, V9_2A,  (SVE2_BITPERM, MEMTAG), cortexa53, 0x41, 0xd80, -1)
  
  AARCH64_CORE("cortex-a710",  cortexa710, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd47, -1)
  
  AARCH64_CORE("cortex-a715",  cortexa715, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd4d, -1)
  
+ AARCH64_CORE("cortex-a720",  cortexa720, cortexa57, V9_2A,  (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd81, -1)
+ 
  AARCH64_CORE("cortex-x2",  cortexx2, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd48, -1)
  
  AARCH64_CORE("cortex-x3",  cortexx3, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd4e, -1)
  
+ AARCH64_CORE("cortex-x4",  cortexx4, cortexa57, V9_2A,  (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd81, -1)
+ 
  AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x41, 0xd49, -1)
+ AARCH64_CORE("cobalt-100",   cobalt100, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x6d, 0xd49, -1)
  
  AARCH64_CORE("neoverse-v2", neoversev2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
+ AARCH64_CORE("demeter", demeter, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
+ 
+ /* Generic Architecture Processors.  */
+ AARCH64_CORE("generic",  generic, cortexa53, V8A,  (), generic, 0x0, 0x0, -1)
+ AARCH64_CORE("generic-armv8-a",  generic_armv8_a, cortexa53, V8A, (), generic_armv8_a, 0x0, 0x0, -1)
+ AARCH64_CORE("generic-armv9-a",  generic_armv9_a, cortexa53, V9A, (), generic_armv9_a, 0x0, 0x0, -1)
  
  #undef AARCH64_CORE
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-cost-tables.h gcc-14.1.0/gcc/config/aarch64/aarch64-cost-tables.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-cost-tables.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-cost-tables.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* RTX cost tables for AArch64.
  
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,6 ----
  /* RTX cost tables for AArch64.
  
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** const struct cpu_cost_table ampere1a_ext
*** 882,885 ****
--- 882,992 ----
    }
  };
  
+ const struct cpu_cost_table ampere1b_extra_costs =
+ {
+   /* ALU */
+   {
+     0,                 /* arith.  */
+     0,                 /* logical.  */
+     0,                 /* shift.  */
+     COSTS_N_INSNS (1), /* shift_reg.  */
+     0,                 /* arith_shift.  */
+     COSTS_N_INSNS (1), /* arith_shift_reg.  */
+     0,                 /* log_shift.  */
+     COSTS_N_INSNS (1), /* log_shift_reg.  */
+     0,                 /* extend.  */
+     COSTS_N_INSNS (1), /* extend_arith.  */
+     0,                 /* bfi.  */
+     0,                 /* bfx.  */
+     0,                 /* clz.  */
+     0,                 /* rev.  */
+     0,                 /* non_exec.  */
+     true               /* non_exec_costs_exec.  */
+   },
+   {
+     /* MULT SImode */
+     {
+       COSTS_N_INSNS (2),       /* simple.  */
+       COSTS_N_INSNS (2),       /* flag_setting.  */
+       COSTS_N_INSNS (2),       /* extend.  */
+       COSTS_N_INSNS (3),       /* add.  */
+       COSTS_N_INSNS (3),       /* extend_add.  */
+       COSTS_N_INSNS (12)       /* idiv.  */
+     },
+     /* MULT DImode */
+     {
+       COSTS_N_INSNS (2),       /* simple.  */
+       0,                       /* flag_setting (N/A).  */
+       COSTS_N_INSNS (2),       /* extend.  */
+       COSTS_N_INSNS (3),       /* add.  */
+       COSTS_N_INSNS (3),       /* extend_add.  */
+       COSTS_N_INSNS (18)       /* idiv.  */
+     }
+   },
+   /* LD/ST */
+   {
+     COSTS_N_INSNS (2),         /* load.  */
+     COSTS_N_INSNS (2),         /* load_sign_extend.  */
+     0,                         /* ldrd (n/a).  */
+     0,                         /* ldm_1st.  */
+     0,                         /* ldm_regs_per_insn_1st.  */
+     0,                         /* ldm_regs_per_insn_subsequent.  */
+     COSTS_N_INSNS (3),         /* loadf.  */
+     COSTS_N_INSNS (3),         /* loadd.  */
+     COSTS_N_INSNS (3),         /* load_unaligned.  */
+     0,                         /* store.  */
+     0,                         /* strd.  */
+     0,                         /* stm_1st.  */
+     0,                         /* stm_regs_per_insn_1st.  */
+     0,                         /* stm_regs_per_insn_subsequent.  */
+     COSTS_N_INSNS (1),         /* storef.  */
+     COSTS_N_INSNS (1),         /* stored.  */
+     COSTS_N_INSNS (1),         /* store_unaligned.  */
+     COSTS_N_INSNS (3),         /* loadv.  */
+     COSTS_N_INSNS (3)          /* storev.  */
+   },
+   {
+     /* FP SFmode */
+     {
+       COSTS_N_INSNS (18),      /* div.  */
+       COSTS_N_INSNS (3),       /* mult.  */
+       COSTS_N_INSNS (3),       /* mult_addsub.  */
+       COSTS_N_INSNS (3),       /* fma.  */
+       COSTS_N_INSNS (2),       /* addsub.  */
+       COSTS_N_INSNS (1),       /* fpconst.  */
+       COSTS_N_INSNS (2),       /* neg.  */
+       COSTS_N_INSNS (2),       /* compare.  */
+       COSTS_N_INSNS (2),       /* widen.  */
+       COSTS_N_INSNS (2),       /* narrow.  */
+       COSTS_N_INSNS (6),       /* toint.  */
+       COSTS_N_INSNS (4),       /* fromint.  */
+       COSTS_N_INSNS (2)        /* roundint.  */
+     },
+     /* FP DFmode */
+     {
+       COSTS_N_INSNS (18),      /* div.  */
+       COSTS_N_INSNS (3),       /* mult.  */
+       COSTS_N_INSNS (3),       /* mult_addsub.  */
+       COSTS_N_INSNS (3),       /* fma.  */
+       COSTS_N_INSNS (2),       /* addsub.  */
+       COSTS_N_INSNS (1),       /* fpconst.  */
+       COSTS_N_INSNS (2),       /* neg.  */
+       COSTS_N_INSNS (2),       /* compare.  */
+       COSTS_N_INSNS (2),       /* widen.  */
+       COSTS_N_INSNS (2),       /* narrow.  */
+       COSTS_N_INSNS (6),       /* toint.  */
+       COSTS_N_INSNS (4),       /* fromint.  */
+       COSTS_N_INSNS (2)        /* roundint.  */
+     }
+   },
+   /* Vector */
+   {
+     COSTS_N_INSNS (1),  /* alu.  */
+     COSTS_N_INSNS (2),  /* mult.  */
+     COSTS_N_INSNS (1),  /* movi.  */
+     COSTS_N_INSNS (1),  /* dup.  */
+     COSTS_N_INSNS (1)   /* extract.  */
+   }
+ };
+ 
  #endif
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-d.cc gcc-14.1.0/gcc/config/aarch64/aarch64-d.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-d.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-d.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines for the D front end on the AArch64 architecture.
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
--- 1,5 ----
  /* Subroutines for the D front end on the AArch64 architecture.
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-d.h gcc-14.1.0/gcc/config/aarch64/aarch64-d.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-d.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-d.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for the D front end on the AArch64 architecture.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
--- 1,5 ----
  /* Definitions for the D front end on the AArch64 architecture.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-early-ra.cc gcc-14.1.0/gcc/config/aarch64/aarch64-early-ra.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-early-ra.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-early-ra.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,3708 ----
+ // Early register allocation pass.
+ // Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ //
+ // This file is part of GCC.
+ //
+ // GCC is free software; you can redistribute it and/or modify it under
+ // the terms of the GNU General Public License as published by the Free
+ // Software Foundation; either version 3, or (at your option) any later
+ // version.
+ //
+ // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ // WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ // for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ // This pass implements a simple form of early register allocation.
+ // It is restricted to FP/SIMD registers, and it only allocates
+ // a region of FP/SIMD usage if it can do so without any spilling.
+ // It punts on anything too complicated, leaving it to the real
+ // register allocator.
+ //
+ // There are two main purposes:
+ //
+ // (1) The pass runs before scheduling.  It therefore has a chance to
+ //     bag a spill-free allocation, if there is one, before scheduling
+ //     moves things around.
+ //
+ // (2) The pass can make use of strided register operations, such as the
+ //     strided forms of LD1 and ST1 in SME2.
+ //
+ // The allocator works at the level of individual FPRs, rather than whole
+ // pseudo registers.  It is mostly intended to help optimize ACLE code.
+ //
+ // The pass is very simplistic.  There are many things that could be improved.
+ #define IN_TARGET_CODE 1
+ 
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_FUNCTIONAL
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "backend.h"
+ #include "rtl.h"
+ #include "df.h"
+ #include "rtl-ssa.h"
+ #include "tree-pass.h"
+ #include "target.h"
+ #include "expr.h"
+ #include "cfgrtl.h"
+ #include "print-rtl.h"
+ #include "insn-attr.h"
+ #include "insn-opinit.h"
+ #include "reload.h"
+ 
+ template<typename T>
+ class simple_iterator : public wrapper_iterator<T>
+ {
+ public:
+   using wrapper_iterator<T>::wrapper_iterator;
+ 
+   simple_iterator &operator-- () { --this->m_contents; return *this; }
+   simple_iterator operator-- (int) { return this->m_contents--; }
+   simple_iterator &operator++ () { ++this->m_contents; return *this; }
+   simple_iterator operator++ (int) { return this->m_contents++; }
+ };
+ 
+ using namespace rtl_ssa;
+ 
+ namespace {
+ const pass_data pass_data_early_ra =
+ {
+   RTL_PASS, // type
+   "early_ra", // name
+   OPTGROUP_NONE, // optinfo_flags
+   TV_NONE, // tv_id
+   0, // properties_required
+   0, // properties_provided
+   0, // properties_destroyed
+   0, // todo_flags_start
+   TODO_df_finish, // todo_flags_finish
+ };
+ 
+ using allocno_iterator = simple_iterator<unsigned int>;
+ 
+ // Class that represents one run of the pass.
+ class early_ra
+ {
+ public:
+   early_ra (function *fn);
+   ~early_ra ();
+   void execute ();
+ 
+ private:
+   // Whether to test only things that are required for correctness,
+   // or whether to take optimization heuristics into account as well.
+   enum test_strictness { CORRECTNESS_ONLY, ALL_REASONS };
+ 
+   static_assert (MAX_RECOG_OPERANDS <= 32, "Operand mask is 32 bits");
+   using operand_mask = uint32_t;
+ 
+   // Points in the function are represented using "program points".
+   // The program points are allocated in reverse order, with smaller
+   // numbers indicating later points.  These special values indicate
+   // the start and end of a region.
+   static constexpr unsigned int START_OF_REGION = ~0U;
+   static constexpr unsigned int END_OF_REGION = 0U;
+ 
+   // An invalid allocno index, used to represent no allocno.
+   static constexpr unsigned int INVALID_ALLOCNO = ~0U;
+ 
+   // Enumerates the single FPR sizes that matter for register allocation.
+   // Anything smaller than 64 bits is treated as FPR_D.
+   enum fpr_size_info
+   {
+     FPR_D,
+     FPR_Q,
+     FPR_Z
+   };
+ 
+   // A live range for an FPR, containing program points [START_POINT,
+   // END_POINT].  If ALLOCNO is not INVALID_ALLOCNO, the FPR is known
+   // to be equal to ALLOCNO for the duration of the live range.
+   struct fpr_range_info
+   {
+     unsigned int start_point;
+     unsigned int end_point;
+     unsigned int allocno;
+   };
+ 
+   // Flags used in pseudo_reg_info.
+   //
+   // Whether the pseudo register occurs in one instruction alternative that
+   // matches (respectively) V0-V7, V0-V15, V0-V31 or a non-FP register.
+   static constexpr unsigned int ALLOWS_FPR8 = 1U << 0;
+   static constexpr unsigned int ALLOWS_FPR16 = 1U << 1;
+   static constexpr unsigned int ALLOWS_FPR32 = 1U << 2;
+   static constexpr unsigned int ALLOWS_NONFPR = 1U << 3;
+   //
+   // Likewise whether the register occurs in an instruction that requires
+   // the associated register type.
+   static constexpr unsigned int NEEDS_FPR8 = 1U << 4;
+   static constexpr unsigned int NEEDS_FPR16 = 1U << 5;
+   static constexpr unsigned int NEEDS_FPR32 = 1U << 6;
+   static constexpr unsigned int NEEDS_NONFPR = 1U << 7;
+   //
+   // Whether the pseudo register is copied to or from a hard FP register.
+   static constexpr unsigned int HAS_FPR_COPY = 1U << 8;
+   //
+   // Whether the pseudo register is copied to or from a hard non-FP register.
+   static constexpr unsigned int HAS_NONFPR_COPY = 1U << 9;
+   //
+   // Whether the pseudo register is used as a multi-register vector operand
+   // to an instruction that supports strided accesses, and whether it is used
+   // as a multi-register vector operand in some other non-move instruction.
+   static constexpr unsigned int HAS_FLEXIBLE_STRIDE = 1U << 10;
+   static constexpr unsigned int HAS_FIXED_STRIDE = 1U << 11;
+ 
+   // Flags that should be propagated across moves between pseudo registers.
+   static constexpr unsigned int PSEUDO_COPY_FLAGS = ~(HAS_FLEXIBLE_STRIDE
+ 						      | HAS_FIXED_STRIDE);
+ 
+   // Information about a copy between two registers.
+   struct reg_copy_info
+   {
+     // The two registers, in order.
+     unsigned int regnos[2];
+ 
+     // Index I gives the index of the next reg_copy_info involving REGNOS[I],
+     // or 0 if none.
+     unsigned int next_copies[2];
+   };
+ 
+   // Information about a pseudo register.
+   struct pseudo_reg_info
+   {
+     // Flags describing how the register is used, defined above.
+     unsigned int flags : 16;
+ 
+     // The mode of the pseudo register, cached for convenience.
+     machine_mode mode : 16;
+ 
+     // The index of the first copy, or 0 if none.
+     unsigned int first_copy;
+   };
+ 
+   // Information about a group of allocnos that have a fixed offset
+   // relative to each other.  The allocnos in each group must be allocated
+   // together.
+   //
+   // Allocnos that can share the same hard register are eventually
+   // chained together.  These chains represent edges on a graph of
+   // allocnos, such that two allocnos joined by an edge use the same FPR.
+   // These chains are formed between individual allocnos rather than
+   // whole groups, although the system is required to be self-consistent.
+   // Each clique in the graph has at least one "full-width" allocno group
+   // that has one allocno for every FPR that needs to be allocated to
+   // the clique.
+   //
+   // One group of allocnos is chosen as the "color representative" of
+   // each clique in the graph.  This group will be a full-width group.
+   struct allocno_info;
+   struct allocno_group_info
+   {
+     array_slice<unsigned int> chain_heads ();
+     array_slice<allocno_info> allocnos ();
+     allocno_group_info *color_rep ();
+     allocno_info *allocno (unsigned int);
+ 
+     // The color representative of the containing clique.
+     allocno_group_info *m_color_rep;
+ 
+     // The pseudo register associated with this allocno, or INVALID_REGNUM
+     // if none.
+     unsigned int regno;
+ 
+     // The offset of the first allocno (and thus this group) from the start
+     // of color_rep.
+     unsigned int color_rep_offset : 8;
+ 
+     // The number of allocnos in the group, and thus the number of FPRs
+     // that need to be allocated.
+     unsigned int size : 8;
+ 
+     // The gap between FPRs in the group.  This is normally 1, but can be
+     // higher if we've decided to use strided multi-register accesses.
+     unsigned int stride : 4;
+ 
+     // Used temporarily while deciding which allocnos should have non-unit
+     // strides; see find_strided_accesses for details.
+     int consecutive_pref : 4;
+     int strided_polarity : 2;
+ 
+     // The largest size of FPR needed by references to the allocno group.
+     fpr_size_info fpr_size : 2;
+ 
+     // True if all non-move accesses can be converted to strided form.
+     unsigned int has_flexible_stride : 1;
+ 
+     // True if we've assigned a color index to this group.
+     unsigned int has_color : 1;
+ 
+     // The mask of FPRs that would make valid choices for the first allocno,
+     // taking the requirements of all the allocnos in the group into account.
+     unsigned int fpr_candidates;
+ 
+     // The index of the color that has been assigned to the containing clique.
+     unsigned int color;
+   };
+ 
+   // Represents a single FPR-sized quantity that needs to be allocated.
+   // Each allocno is identified by index (for compactness).
+   //
+   // Quantities that span multiple FPRs are assigned groups of consecutive
+   // allocnos.  Quantities that occupy a single FPR are assigned their own
+   // group.
+   struct allocno_info
+   {
+     allocno_group_info *group ();
+     bool is_shared ();
+     bool is_equiv_to (unsigned int);
+ 
+     // The allocno's unique identifier.
+     unsigned int id;
+ 
+     // The offset of this allocno into the containing group.
+     unsigned int offset : 8;
+ 
+     // The number of allocnos in the containing group.
+     unsigned int group_size : 8;
+ 
+     // If the allocno has an affinity with at least one hard register
+     // (so that choosing that hard register would avoid a copy), this is
+     // the number of one such hard register, otherwise it is
+     // FIRST_PSEUDO_REGISTER.
+     unsigned int hard_regno : 8;
+ 
+     // Set to 1 if the allocno has a single definition or 2 if it has more.
+     unsigned int num_defs : 2;
+ 
+     // True if, at START_POINT, another allocno is copied to this one.
+     // See callers of record_copy for what counts as a copy.
+     unsigned int is_copy_dest : 1;
+ 
+     // True if, at START_POINT, another allocno is copied to this one,
+     // and if the allocnos at both ends of the copy chain have an affinity
+     // with the same hard register.
+     unsigned int is_strong_copy_dest : 1;
+ 
+     // True if, at END_POINT, this allocno is copied to another one,
+     // and both allocnos have an affinity with the same hard register.
+     unsigned int is_strong_copy_src : 1;
+ 
+     // True if the allocno is subject to an earlyclobber at END_POINT,
+     // so that it cannot be tied to the destination of the instruction.
+     unsigned int is_earlyclobbered : 1;
+ 
+     // True if this allocno is known to be equivalent to related_allocno
+     // for the whole of this allocno's lifetime.
+     unsigned int is_equiv : 1;
+ 
+     // The inclusive range of program points spanned by the allocno.
+     // START_POINT >= END_POINT.
+     unsigned int start_point;
+     unsigned int end_point;
+ 
+     // If, at END_POINT, this allocno is copied to another allocno, this
+     // is the index of that allocno, otherwise it is INVALID_ALLOCNO.
+     // See callers of record_copy for what counts as a copy.
+     unsigned int copy_dest;
+ 
+     // If this field is not INVALID_ALLOCNO, it indicates one of two things:
+     //
+     // - if is_equiv, this allocno is equivalent to related_allocno for
+     //   the whole of this allocno's lifetime.
+     //
+     // - if !is_equiv, this allocno's live range is a subrange of
+     //   related_allocno's and we have committed to making this allocno
+     //   share whatever register related_allocno uses.
+     unsigned int related_allocno;
+ 
+     union
+     {
+       // The program point at which the allocno was last defined,
+       // or START_OF_REGION if none.  This is only used temporarily
+       // while recording allocnos; after that, chain_next below is
+       // used instead.
+       unsigned int last_def_point;
+ 
+       // The next chained allocno in program order (i.e. at lower program
+       // points), or INVALID_ALLOCNO if none.
+       unsigned int chain_next;
+     };
+ 
+     union
+     {
+       // The program point before start_point at which the allocno was
+       // last used, or END_OF_REGION if none.  This is only used temporarily
+       // while recording allocnos; after that, chain_prev below is used
+       // instead.
+       unsigned int last_use_point;
+ 
+       // The previous chained allocno in program order (i.e. at higher
+       // program points), or INVALID_ALLOCNO if none.
+       unsigned int chain_prev;
+     };
+   };
+ 
+   // Information about a full allocno group or a subgroup of it.
+   // The subgroup can be empty to indicate "none".
+   struct allocno_subgroup
+   {
+     array_slice<allocno_info> allocnos ();
+     allocno_info *allocno (unsigned int);
+ 
+     // True if a subgroup is present.
+     operator bool () const { return count; }
+ 
+     // The containing group.
+     allocno_group_info *group;
+ 
+     // The offset of the subgroup from the start of GROUP.
+     unsigned int start;
+ 
+     // The number of allocnos in the subgroup.
+     unsigned int count;
+   };
+ 
+   // Represents information about a copy between an allocno and an FPR.
+   // This establishes an affinity between the allocno and the FPR.
+   struct allocno_copy_info
+   {
+     // The allocno involved in the copy.
+     unsigned int allocno;
+ 
+     // The FPR involved in the copy, relative to V0_REGNUM.
+     unsigned int fpr : 16;
+ 
+     // A measure of how strong the affinity between the allocno and FPR is.
+     unsigned int weight : 16;
+   };
+ 
+   // Information about a possible allocno chain.
+   struct chain_candidate_info
+   {
+     // The candidate target allocno.
+     allocno_info *allocno;
+ 
+     // A rating of the candidate (higher is better).
+     int score;
+   };
+ 
+   // Information about an allocno color.
+   struct color_info
+   {
+     // The color's unique identifier.
+     int id;
+ 
+     // The allocated hard register, when known.
+     unsigned int hard_regno;
+ 
+     // The clique's representative group.
+     allocno_group_info *group;
+ 
+     // The number of FPR preferences recorded in fpr_preferences.
+     unsigned int num_fpr_preferences;
+ 
+     // Weights in favor of choosing each FPR as the first register for GROUP.
+     int8_t fpr_preferences[32];
+   };
+ 
+   template<typename T, typename... Ts>
+   T *region_allocate (Ts...);
+ 
+   allocno_info *chain_prev (allocno_info *);
+   allocno_info *chain_next (allocno_info *);
+ 
+   void dump_pseudo_regs ();
+   void dump_fpr_ranges ();
+   void dump_copies ();
+   void dump_allocnos ();
+   void dump_colors ();
+ 
+   iterator_range<allocno_iterator> get_group_allocnos (unsigned int);
+ 
+   void preprocess_move (rtx, rtx);
+   void process_pseudo_reg_constraints (rtx_insn *);
+   void preprocess_insns ();
+ 
+   int fpr_preference (unsigned int);
+   void propagate_pseudo_reg_info ();
+ 
+   void choose_fpr_pseudos ();
+ 
+   void start_new_region ();
+ 
+   allocno_group_info *create_allocno_group (unsigned int, unsigned int);
+   allocno_subgroup get_allocno_subgroup (rtx);
+   void record_fpr_use (unsigned int);
+   void record_fpr_def (unsigned int);
+   void record_allocno_use (allocno_info *);
+   void record_allocno_def (allocno_info *);
+   allocno_info *find_related_start (allocno_info *, allocno_info *, bool);
+   void accumulate_defs (allocno_info *, allocno_info *);
+   void record_copy (rtx, rtx, bool = false);
+   void record_constraints (rtx_insn *);
+   void record_artificial_refs (unsigned int);
+   void record_insn_refs (rtx_insn *);
+ 
+   bool consider_strong_copy_src_chain (allocno_info *);
+   int strided_polarity_pref (allocno_info *, allocno_info *);
+   void find_strided_accesses ();
+ 
+   template<unsigned int allocno_info::*field>
+   static int cmp_increasing (const void *, const void *);
+   bool is_chain_candidate (allocno_info *, allocno_info *, test_strictness);
+   int rate_chain (allocno_info *, allocno_info *);
+   static int cmp_chain_candidates (const void *, const void *);
+   void chain_allocnos (unsigned int &, unsigned int &);
+   void merge_fpr_info (allocno_group_info *, allocno_group_info *,
+ 		       unsigned int);
+   void set_single_color_rep (allocno_info *, allocno_group_info *,
+ 			     unsigned int);
+   void set_color_rep (allocno_group_info *, allocno_group_info *,
+ 		      unsigned int);
+   bool try_to_chain_allocnos (allocno_info *, allocno_info *);
+   void create_color (allocno_group_info *);
+   void form_chains ();
+ 
+   bool fpr_conflicts_with_allocno_p (unsigned int, allocno_info *);
+   bool call_in_range_p (unsigned int, unsigned int, unsigned int);
+   unsigned int partial_fpr_clobbers (unsigned int, fpr_size_info);
+ 
+   void process_copies ();
+ 
+   static int cmp_allocation_order (const void *, const void *);
+   void allocate_colors ();
+   allocno_info *find_independent_subchain (allocno_info *);
+   color_info *find_oldest_color (unsigned int, unsigned int);
+   void broaden_colors ();
+   void finalize_allocation ();
+ 
+   bool replace_regs (rtx_insn *, df_ref);
+   int try_enforce_constraints (rtx_insn *, vec<std::pair<int, int>> &);
+   void enforce_constraints (rtx_insn *);
+   bool maybe_convert_to_strided_access (rtx_insn *);
+   void apply_allocation ();
+ 
+   void process_region ();
+   bool is_dead_insn (rtx_insn *);
+   void process_block (basic_block, bool);
+   void process_blocks ();
+ 
+   // ----------------------------------------------------------------------
+ 
+   // The function we're operating on.
+   function *m_fn;
+ 
+   // Information about each pseudo register, indexed by REGNO.
+   auto_vec<pseudo_reg_info> m_pseudo_regs;
+ 
+   // All recorded register copies.
+   auto_vec<reg_copy_info> m_pseudo_reg_copies;
+ 
+   // The set of pseudos that we've decided to allocate an FPR to.
+   auto_bitmap m_fpr_pseudos;
+ 
+   // ----------------------------------------------------------------------
+ 
+   // An obstack for allocating information that is referenced by the member
+   // variables below.
+   obstack m_region_obstack;
+   void *m_region_alloc_start;
+ 
+   // ----------------------------------------------------------------------
+ 
+   // The basic block that we're currently processing.
+   basic_block m_current_bb;
+ 
+   // The lowest-numbered program point in the current basic block.
+   unsigned int m_current_bb_point;
+ 
+   // The program point that we're currently processing (described above).
+   unsigned int m_current_point;
+ 
+   // The set of allocnos that are currently live.
+   auto_bitmap m_live_allocnos;
+ 
+   // The set of FPRs that are currently live.
+   unsigned int m_live_fprs;
+ 
+   // A unique one-based identifier for the current region.
+   unsigned int m_current_region;
+ 
+   // The region in which each FPR was last used, or 0 if none.
+   unsigned int m_fpr_recency[32];
+ 
+   // ----------------------------------------------------------------------
+ 
+   // A mask of the FPRs that have already been allocated.
+   unsigned int m_allocated_fprs;
+ 
+   // A mask of the FPRs that must be at least partially preserved by the
+   // current function.
+   unsigned int m_call_preserved_fprs;
+ 
+   // True if we haven't yet failed to allocate the current region.
+   bool m_allocation_successful;
+ 
+   // A map from pseudo registers to the first allocno in their associated
+   // allocno groups.
+   hash_map<int_hash<unsigned int, INVALID_REGNUM>,
+ 	   allocno_group_info *> m_regno_to_group;
+ 
+   // All recorded copies between allocnos and FPRs.
+   auto_vec<allocno_copy_info> m_allocno_copies;
+ 
+   // All allocnos, by index.
+   auto_vec<allocno_info *> m_allocnos;
+ 
+   // All allocnos, by increasing START_POINT.
+   auto_vec<allocno_info *> m_sorted_allocnos;
+ 
+   // Allocnos for which is_shared is true.
+   auto_vec<allocno_info *> m_shared_allocnos;
+ 
+   // All colors, by index.
+   auto_vec<color_info *> m_colors;
+ 
+   // The instruction ranges that make up the current region,
+   // as half-open ranges [LAST, FIRST).
+   auto_vec<std::pair<rtx_insn *, rtx_insn *>> m_insn_ranges;
+ 
+   // The live ranges of each FPR, in order of increasing program point.
+   auto_vec<fpr_range_info> m_fpr_ranges[32];
+ 
+   // For each function call id, a list of program points at which a call
+   // to such a function is made.  Each list is in order of increasing
+   // program point.
+   auto_vec<unsigned int> m_call_points[NUM_ABI_IDS];
+ 
+   // A list of instructions that can be removed if allocation succeeds.
+   auto_vec<rtx_insn *> m_dead_insns;
+ };
+ 
+ // True if PAT is something that would typically be treated as a move.
+ static inline bool
+ is_move_set (rtx pat)
+ {
+   if (GET_CODE (pat) != SET)
+     return false;
+ 
+   rtx dest = SET_DEST (pat);
+   if (SUBREG_P (dest))
+     dest = SUBREG_REG (dest);
+   if (!OBJECT_P (dest))
+     return false;
+ 
+   rtx src = SET_SRC (pat);
+   if (SUBREG_P (src))
+     src = SUBREG_REG (src);
+   if (!OBJECT_P (src) && !CONSTANT_P (src))
+     return false;
+ 
+   return true;
+ }
+ 
+ // Return true if operand OP is likely to match OP_ALT after register
+ // allocation.
+ static bool
+ likely_operand_match_p (const operand_alternative &op_alt, rtx op)
+ {
+   // Empty constraints match everything.
+   const char *constraint = op_alt.constraint;
+   if (constraint[0] == 0 || constraint[0] == ',')
+     return true;
+ 
+   for (;;)
+     {
+       char c = *constraint;
+       int len = CONSTRAINT_LEN (c, constraint);
+       if (c == 0 || c == ',')
+ 	break;
+ 
+       if (c == 'X')
+ 	return true;
+ 
+       auto cn = lookup_constraint (constraint);
+       switch (get_constraint_type (cn))
+ 	{
+ 	case CT_REGISTER:
+ 	  if (REG_P (op) || SUBREG_P (op))
+ 	    return true;
+ 	  break;
+ 
+ 	case CT_MEMORY:
+ 	case CT_SPECIAL_MEMORY:
+ 	case CT_RELAXED_MEMORY:
+ 	  if (MEM_P (op))
+ 	    return true;
+ 	  break;
+ 
+ 	case CT_CONST_INT:
+ 	case CT_ADDRESS:
+ 	case CT_FIXED_FORM:
+ 	  if (constraint_satisfied_p (op, cn))
+ 	    return true;
+ 	  break;
+ 	}
+ 
+       constraint += len;
+     }
+ 
+   if (op_alt.matches >= 0)
+     {
+       rtx other = recog_data.operand[op_alt.matches];
+       if ((REG_P (other) || SUBREG_P (other))
+ 	  && (REG_P (op) || SUBREG_P (op)))
+ 	return true;
+     }
+   return false;
+ }
+ 
+ // Return true if the operands of the current instruction are likely to
+ // match OP_ALT.
+ static bool
+ likely_alternative_match_p (const operand_alternative *op_alt)
+ {
+   for (int i = 0; i < recog_data.n_operands; ++i)
+     if (!likely_operand_match_p (op_alt[i], recog_data.operand[i]))
+       return false;
+   return true;
+ }
+ 
+ // Return the sum of how disparaged OP_ALT is.
+ static int
+ count_rejects (const operand_alternative *op_alt)
+ {
+   int reject = 0;
+   for (int opno = 0; opno < recog_data.n_operands; ++opno)
+     reject += op_alt[opno].reject;
+   return reject;
+ }
+ 
+ // Allocate a T from the region obstack.
+ template<typename T, typename... Ts>
+ inline T *
+ early_ra::region_allocate (Ts... args)
+ {
+   static_assert (std::is_trivially_destructible<T>::value,
+ 		 "destructor won't be called");
+   void *addr = obstack_alloc (&m_region_obstack, sizeof (T));
+   return new (addr) T (std::forward<Ts> (args)...);
+ }
+ 
+ early_ra::early_ra (function *fn) : m_fn (fn), m_live_fprs (0)
+ {
+   gcc_obstack_init (&m_region_obstack);
+   m_region_alloc_start = obstack_alloc (&m_region_obstack, 0);
+   bitmap_tree_view (m_live_allocnos);
+ }
+ 
+ early_ra::~early_ra ()
+ {
+   obstack_free (&m_region_obstack, nullptr);
+ }
+ 
+ // Return an array that, for each allocno A in the group, contains the index
+ // of the allocno at the head of A's chain (that is, the one with the highest
+ // START_POINT).  The index is INVALID_ALLOCNO if the chain is empty.
+ inline array_slice<unsigned int>
+ early_ra::allocno_group_info::chain_heads ()
+ {
+   auto *start = reinterpret_cast<unsigned int *> (this + 1);
+   return { start, size };
+ }
+ 
+ // Return the array of allocnos in the group.
+ inline array_slice<early_ra::allocno_info>
+ early_ra::allocno_group_info::allocnos ()
+ {
+   gcc_checking_assert (regno != INVALID_REGNUM);
+   auto *chain_end = reinterpret_cast<unsigned int *> (this + 1) + size;
+   auto *allocno_start = reinterpret_cast<allocno_info *> (chain_end);
+   return { allocno_start, size };
+ }
+ 
+ // Return the group's color representative.
+ inline early_ra::allocno_group_info *
+ early_ra::allocno_group_info::color_rep ()
+ {
+   gcc_checking_assert (m_color_rep->m_color_rep == m_color_rep);
+   return m_color_rep;
+ }
+ 
+ // Return the group that contains the allocno.
+ inline early_ra::allocno_group_info *
+ early_ra::allocno_info::group ()
+ {
+   auto *chain_end = reinterpret_cast<unsigned int *> (this - offset);
+   return reinterpret_cast<allocno_group_info *> (chain_end - group_size) - 1;
+ }
+ 
+ // Return true if this allocno's live range is a subrange of related_allocno's
+ // and if we have committed to making this allocno share whatever register
+ // related_allocno uses.
+ inline bool
+ early_ra::allocno_info::is_shared ()
+ {
+   return related_allocno != INVALID_ALLOCNO && !is_equiv;
+ }
+ 
+ // Return true if this allocno is known to be equivalent to ALLOCNO.
+ inline bool
+ early_ra::allocno_info::is_equiv_to (unsigned int allocno)
+ {
+   return is_equiv && related_allocno == allocno;
+ }
+ 
+ // Return the allocnos in the subgroup.
+ inline array_slice<early_ra::allocno_info>
+ early_ra::allocno_subgroup::allocnos ()
+ {
+   if (!count)
+     return {};
+   return { &group->allocnos ()[start], count };
+ }
+ 
+ // Return allocno I in the subgroup, with 0 being the first.
+ inline early_ra::allocno_info *
+ early_ra::allocno_subgroup::allocno (unsigned int i)
+ {
+   return &group->allocnos ()[start + i];
+ }
+ 
+ // Return the previous (earlier) allocno in ALLOCNO's chain, or null if none.
+ inline early_ra::allocno_info *
+ early_ra::chain_prev (allocno_info *allocno)
+ {
+   if (allocno->chain_prev != INVALID_ALLOCNO)
+     return m_allocnos[allocno->chain_prev];
+   return nullptr;
+ }
+ 
+ // Return the next (later) allocno in ALLOCNO's chain, or null if none.
+ inline early_ra::allocno_info *
+ early_ra::chain_next (allocno_info *allocno)
+ {
+   if (allocno->chain_next != INVALID_ALLOCNO)
+     return m_allocnos[allocno->chain_next];
+   return nullptr;
+ }
+ 
+ // Dump the information in m_pseudo_regs.
+ void
+ early_ra::dump_pseudo_regs ()
+ {
+   fprintf (dump_file, "\nPseudos:\n");
+   fprintf (dump_file, "  %6s %6s %6s %6s %6s %6s %8s %s\n",
+ 	   "Id", "FPR8", "FPR16", "FPR32", "NONFPR", "Stride",
+ 	   "FPRness", "Copies");
+   pseudo_reg_info unused_reg = {};
+   for (unsigned int regno = FIRST_PSEUDO_REGISTER;
+        regno < m_pseudo_regs.length (); ++regno)
+     {
+       const auto &reg = m_pseudo_regs[regno];
+       if (memcmp (&reg, &unused_reg, sizeof (reg)) == 0)
+ 	continue;
+ 
+       fprintf (dump_file, "  %6d %6s %6s %6s %6s %6s %8d", regno,
+ 	       reg.flags & NEEDS_FPR8 ? "Req"
+ 	       : reg.flags & ALLOWS_FPR8 ? "OK" : "-",
+ 	       reg.flags & NEEDS_FPR16 ? "Req"
+ 	       : reg.flags & ALLOWS_FPR16 ? "OK" : "-",
+ 	       reg.flags & NEEDS_FPR32 ? "Req"
+ 	       : reg.flags & ALLOWS_FPR32 ? "OK" : "-",
+ 	       reg.flags & NEEDS_NONFPR ? "Req"
+ 	       : reg.flags & ALLOWS_NONFPR ? "OK" : "-",
+ 	       ~reg.flags & HAS_FLEXIBLE_STRIDE ? "-"
+ 	       : reg.flags & HAS_FIXED_STRIDE ? "Some" : "All",
+ 	       fpr_preference (regno));
+       if (reg.flags & HAS_FPR_COPY)
+ 	fprintf (dump_file, " FPR");
+       if (reg.flags & HAS_NONFPR_COPY)
+ 	fprintf (dump_file, " Non-FPR");
+       unsigned int copyi = reg.first_copy;
+       while (copyi)
+ 	{
+ 	  const auto &copy = m_pseudo_reg_copies[copyi];
+ 	  if (copy.regnos[0] == regno)
+ 	    {
+ 	      fprintf (dump_file, " r%d", copy.regnos[1]);
+ 	      copyi = copy.next_copies[0];
+ 	    }
+ 	  else
+ 	    {
+ 	      fprintf (dump_file, " r%d", copy.regnos[0]);
+ 	      copyi = copy.next_copies[1];
+ 	    }
+ 	}
+       fprintf (dump_file, "\n");
+     }
+ }
+ 
+ // Dump the information in m_fpr_ranges.
+ void
+ early_ra::dump_fpr_ranges ()
+ {
+   fprintf (dump_file, "\nFPR live ranges:\n");
+   for (unsigned int fpr = 0; fpr < 32; ++fpr)
+     {
+       auto &intervals = m_fpr_ranges[fpr];
+       if (intervals.is_empty ())
+ 	continue;
+ 
+       fprintf (dump_file, "  %2d", fpr);
+       for (unsigned int i = 0; i < intervals.length (); ++i)
+ 	{
+ 	  auto &interval = intervals[i];
+ 	  if (i && (i % 4) == 0)
+ 	    fprintf (dump_file, "\n    ");
+ 	  fprintf (dump_file, " [ %6d %6d ]", interval.start_point,
+ 		   interval.end_point);
+ 	}
+       fprintf (dump_file, "\n");
+     }
+ }
+ 
+ // Dump the information in m_allocno_copies.
+ void
+ early_ra::dump_copies ()
+ {
+   fprintf (dump_file, "\nCopies:\n");
+   fprintf (dump_file, "  %8s %3s %6s\n",
+ 	   "Allocno", "FPR", "Weight");
+   for (const auto &copy : m_allocno_copies)
+     fprintf (dump_file, "  %8d %3d %6d\n", copy.allocno,
+ 	     copy.fpr, copy.weight);
+ }
+ 
+ // Dump the information in m_allocnos.
+ void
+ early_ra::dump_allocnos ()
+ {
+   char buffer[sizeof ("r[:]") + 3 * 3 * sizeof (int) + 1];
+   fprintf (dump_file, "\nAllocno groups:\n");
+   fprintf (dump_file,
+ 	   "  %12s %12s %4s %6s %8s %s\n",
+ 	   "Ids", "Regno", "Size", "Stride", "Cands", "Heads");
+   for (unsigned int ai = 0; ai < m_allocnos.length (); ++ai)
+     {
+       auto *allocno = m_allocnos[ai];
+       if (allocno->offset != 0)
+ 	continue;
+       auto *group = allocno->group ();
+       snprintf (buffer, sizeof (buffer), "[%d:%d]", allocno->id,
+ 		allocno->id + group->size - 1);
+       fprintf (dump_file, "  %12s", buffer);
+       snprintf (buffer, sizeof (buffer), "r%d[0:%d]", group->regno,
+ 		group->size - 1);
+       fprintf (dump_file, " %12s %4s %6d %08x", buffer,
+ 	       group->fpr_size == FPR_D ? "D"
+ 	       : group->fpr_size == FPR_Q ? "Q" : "Z",
+ 	       group->stride,
+ 	       group->fpr_candidates);
+       for (auto head : group->chain_heads ())
+ 	if (head == INVALID_ALLOCNO)
+ 	  fprintf (dump_file, " -");
+ 	else
+ 	  fprintf (dump_file, " %d", head);
+       fprintf (dump_file, "\n");
+     }
+ 
+   fprintf (dump_file, "\nAllocno chains:\n");
+   fprintf (dump_file, "      %5s %12s %12s %6s %5s %5s %6s %5s\n",
+ 	   "Id", "Regno", "Range ", "Src", "Dest", "Equiv", "Shared", "FPR");
+   for (unsigned int ai = 0; ai < m_allocnos.length (); ++ai)
+     {
+       auto *allocno = m_allocnos[ai];
+       if (allocno->chain_prev != INVALID_ALLOCNO)
+ 	continue;
+       const char *prefix = "=>";
+       for (;;)
+ 	{
+ 	  auto *group = allocno->group ();
+ 	  fprintf (dump_file, "  %2s", prefix);
+ 	  fprintf (dump_file, "  %5d", allocno->id);
+ 	  snprintf (buffer, sizeof (buffer), "r%d[%d]", group->regno,
+ 		    allocno->offset);
+ 	  fprintf (dump_file, " %12s", buffer);
+ 	  snprintf (buffer, sizeof (buffer), "[%d,%d]",
+ 		    allocno->start_point, allocno->end_point);
+ 	  fprintf (dump_file, " %11s%s %6s", buffer,
+ 		   allocno->is_earlyclobbered ? "*" : " ",
+ 		   allocno->is_strong_copy_dest ? "Strong"
+ 		   : allocno->is_copy_dest ? "Yes" : "-");
+ 	  if (allocno->copy_dest == INVALID_ALLOCNO)
+ 	    fprintf (dump_file, " %5s", "-");
+ 	  else
+ 	    fprintf (dump_file, " %5d", allocno->copy_dest);
+ 	  if (allocno->is_equiv)
+ 	    fprintf (dump_file, " %5d", allocno->related_allocno);
+ 	  else
+ 	    fprintf (dump_file, " %5s", "-");
+ 	  if (allocno->is_shared ())
+ 	    fprintf (dump_file, " %6d", allocno->related_allocno);
+ 	  else
+ 	    fprintf (dump_file, " %6s", "-");
+ 	  if (allocno->hard_regno == FIRST_PSEUDO_REGISTER)
+ 	    fprintf (dump_file, " %5s", "-");
+ 	  else
+ 	    fprintf (dump_file, " %5s", reg_names[allocno->hard_regno]);
+ 	  fprintf (dump_file, "\n");
+ 	  if (allocno->chain_next == INVALID_ALLOCNO)
+ 	    break;
+ 	  allocno = m_allocnos[allocno->chain_next];
+ 	  prefix = "";
+ 	}
+     }
+ }
+ 
+ // Dump the information in m_colors.
+ void
+ early_ra::dump_colors ()
+ {
+   fprintf (dump_file, "\nColors:\n");
+   for (unsigned int i = 0; i < m_colors.length (); ++i)
+     {
+       auto *color = m_colors[i];
+       if (!color->group)
+ 	continue;
+ 
+       fprintf (dump_file, "  color %d:\n", i);
+       fprintf (dump_file, "    chains:\n");
+       auto heads = color->group->chain_heads ();
+       for (unsigned int i = 0; i < color->group->size; ++i)
+ 	{
+ 	  fprintf (dump_file, "      %2d:", i);
+ 	  auto ai = heads[i];
+ 	  while (ai != INVALID_ALLOCNO)
+ 	    {
+ 	      auto *allocno = m_allocnos[ai];
+ 	      fprintf (dump_file, " r%d[%d]", allocno->group ()->regno,
+ 		       allocno->offset);
+ 	      ai = allocno->chain_next;
+ 	    }
+ 	  fprintf (dump_file, "\n");
+ 	}
+       fprintf (dump_file, "    FPR candidates:");
+       for (unsigned int fpr = 0; fpr < 32; ++fpr)
+ 	fprintf (dump_file, "%s%c", fpr % 8 ? "" : " ",
+ 		 color->group->fpr_candidates & (1U << fpr) ? 'Y' : '-');
+       fprintf (dump_file, "\n");
+       fprintf (dump_file, "    FPR preferences:");
+       for (unsigned int fpr = 0; fpr < 32; ++fpr)
+ 	if (color->fpr_preferences[fpr])
+ 	  fprintf (dump_file, " %d(%d)", fpr, color->fpr_preferences[fpr]);
+       fprintf (dump_file, "\n");
+     }
+ }
+ 
+ // Record any necessary information about a move from SRC to DEST.
+ void
+ early_ra::preprocess_move (rtx dest, rtx src)
+ {
+   if (SUBREG_P (dest))
+     dest = SUBREG_REG (dest);
+   if (!REG_P (dest))
+     return;
+ 
+   if (SUBREG_P (src))
+     src = SUBREG_REG (src);
+   if (!REG_P (src))
+     return;
+ 
+   // Sort the registers by increasing REGNO.
+   rtx regs[] = { dest, src };
+   if (REGNO (dest) > REGNO (src))
+     std::swap (regs[0], regs[1]);
+   unsigned int regno0 = REGNO (regs[0]);
+   unsigned int regno1 = REGNO (regs[1]);
+ 
+   // Ignore moves between hard registers.
+   if (HARD_REGISTER_NUM_P (regno1))
+     return;
+ 
+   // For moves between hard registers and pseudos, just record the type
+   // of hard register involved.
+   auto &reg1 = m_pseudo_regs[regno1];
+   reg1.mode = GET_MODE (regs[1]);
+   if (HARD_REGISTER_NUM_P (regno0))
+     {
+       reg1.flags |= (FP_REGNUM_P (regno0) ? HAS_FPR_COPY : HAS_NONFPR_COPY);
+       return;
+     }
+ 
+   // Record a move between two pseudo registers.
+   auto &reg0 = m_pseudo_regs[regno0];
+   reg0.mode = GET_MODE (regs[0]);
+ 
+   reg_copy_info copy;
+   copy.regnos[0] = regno0;
+   copy.regnos[1] = regno1;
+   copy.next_copies[0] = reg0.first_copy;
+   copy.next_copies[1] = reg1.first_copy;
+ 
+   reg0.first_copy = reg1.first_copy = m_pseudo_reg_copies.length ();
+   m_pseudo_reg_copies.safe_push (copy);
+ }
+ 
+ // Return true if INSN has a multi-vector operand and if that operand
+ // could be converted to strided form.
+ static bool
+ is_stride_candidate (rtx_insn *insn)
+ {
+   if (recog_memoized (insn) < 0)
+     return false;
+ 
+   auto stride_type = get_attr_stride_type (insn);
+   return (stride_type == STRIDE_TYPE_LD1_CONSECUTIVE
+ 	  || stride_type == STRIDE_TYPE_ST1_CONSECUTIVE);
+ }
+ 
+ // Go through the constraints of INSN, which has already been extracted,
+ // and record any relevant information about pseudo registers.
+ void
+ early_ra::process_pseudo_reg_constraints (rtx_insn *insn)
+ {
+   extract_insn (insn);
+   preprocess_constraints (insn);
+ 
+   // Flags that describe any multi-register vector operands.
+   unsigned int insn_flags = (is_stride_candidate (insn)
+ 			     ? HAS_FLEXIBLE_STRIDE
+ 			     : HAS_FIXED_STRIDE);
+ 
+   auto alts = get_preferred_alternatives (insn);
+ 
+   int operand_matches[MAX_RECOG_OPERANDS];
+   unsigned int operand_flags[MAX_RECOG_OPERANDS];
+   for (int i = 0; i < recog_data.n_operands; ++i)
+     {
+       operand_matches[i] = -1;
+       operand_flags[i] = 0;
+     }
+ 
+   // Extract information from the constraints, considering all plausible
+   // alternatives.
+   for (int altno = 0; altno < recog_data.n_alternatives; ++altno)
+     {
+       if (!(alts & ALTERNATIVE_BIT (altno)))
+ 	continue;
+ 
+       auto *op_alt = &recog_op_alt[altno * recog_data.n_operands];
+       if (!likely_alternative_match_p (op_alt))
+ 	continue;
+ 
+       // Use SRC_OPNO's constraints to derive information about DEST_OPNO.
+       auto record_operand = [&](int src_opno, int dest_opno)
+ 	{
+ 	  int matches = op_alt[src_opno].matches;
+ 	  if (matches >= 0)
+ 	    operand_matches[dest_opno] = matches;
+ 
+ 	  auto cl = alternative_class (op_alt, src_opno);
+ 	  if (cl != NO_REGS)
+ 	    {
+ 	      if (reg_class_subset_p (cl, FP_REGS))
+ 		operand_flags[dest_opno] |= ALLOWS_FPR32;
+ 	      if (reg_class_subset_p (cl, FP_LO_REGS))
+ 		operand_flags[dest_opno] |= ALLOWS_FPR16;
+ 	      if (reg_class_subset_p (cl, FP_LO8_REGS))
+ 		operand_flags[dest_opno] |= ALLOWS_FPR8;
+ 	      if (!reg_classes_intersect_p (cl, FP_REGS))
+ 		operand_flags[dest_opno] |= ALLOWS_NONFPR;
+ 	    }
+ 	};
+ 
+       for (int i = 0; i < recog_data.n_operands; ++i)
+ 	{
+ 	  record_operand (i, i);
+ 	  if (recog_data.constraints[i][0] == '%')
+ 	    {
+ 	      record_operand (i, i + 1);
+ 	      record_operand (i + 1, i);
+ 	    }
+ 	}
+     }
+ 
+   // Process the information we collected above.
+   for (int i = 0; i < recog_data.n_operands; ++i)
+     {
+       rtx op = recog_data.operand[i];
+       machine_mode orig_mode = GET_MODE (op);
+       if (SUBREG_P (op))
+ 	op = SUBREG_REG (op);
+ 
+       // Record the accumulated information in m_pseudo_regs.
+       if (REG_P (op) && !HARD_REGISTER_P (op))
+ 	{
+ 	  // The flags so far just describe what at least one alternative
+ 	  // would accept.  Calculate the associated NEEDS_* information.
+ 	  auto flags = operand_flags[i];
+ 	  if (!(flags & ALLOWS_FPR32) && (flags & ALLOWS_NONFPR))
+ 	    flags |= NEEDS_NONFPR;
+ 	  else if ((flags & ALLOWS_FPR32) && !(flags & ALLOWS_NONFPR))
+ 	    {
+ 	      if (flags & ALLOWS_FPR8)
+ 		flags |= NEEDS_FPR8;
+ 	      if (flags & ALLOWS_FPR16)
+ 		flags |= NEEDS_FPR16;
+ 	      flags |= NEEDS_FPR32;
+ 	    }
+ 
+ 	  // Look for multi-register vector operands.
+ 	  if (VECTOR_MODE_P (orig_mode)
+ 	      && targetm.hard_regno_mode_ok (V0_REGNUM, orig_mode)
+ 	      && hard_regno_nregs (V0_REGNUM, orig_mode) > 1)
+ 	    flags |= insn_flags;
+ 
+ 	  m_pseudo_regs[REGNO (op)].flags |= flags;
+ 	  m_pseudo_regs[REGNO (op)].mode = GET_MODE (op);
+ 	}
+ 
+       // Treat matching constraints as equivalent to moves.
+       if (operand_matches[i] >= 0)
+ 	preprocess_move (recog_data.operand[operand_matches[i]], op);
+     }
+ }
+ 
+ // Make one pass through the instructions, collecting information that
+ // will be needed later.
+ void
+ early_ra::preprocess_insns ()
+ {
+   m_pseudo_regs.safe_grow_cleared (max_reg_num ());
+   m_pseudo_reg_copies.safe_push (reg_copy_info ());
+   for (rtx_insn *insn = get_insns (); insn; insn = NEXT_INSN (insn))
+     {
+       if (!NONDEBUG_INSN_P (insn))
+ 	continue;
+ 
+       // Mark all registers that occur in addresses as needing a GPR.
+       vec_rtx_properties properties;
+       properties.add_insn (insn, true);
+       for (rtx_obj_reference ref : properties.refs ())
+ 	if (ref.is_reg ()
+ 	    && ref.in_address ()
+ 	    && !HARD_REGISTER_NUM_P (ref.regno))
+ 	  m_pseudo_regs[ref.regno].flags |= ALLOWS_NONFPR | NEEDS_NONFPR;
+ 
+       if (GET_CODE (PATTERN (insn)) == USE
+ 	  || GET_CODE (PATTERN (insn)) == CLOBBER)
+ 	continue;
+ 
+       rtx set = single_set (insn);
+       if (set && is_move_set (set))
+ 	preprocess_move (SET_DEST (set), SET_SRC (set));
+       else
+ 	process_pseudo_reg_constraints (insn);
+     }
+ }
+ 
+ // Return a signed integer that says (roughly) how strong an affinity
+ // pseudo register REGNO has with FPRs.  A positive value indicates
+ // that we should try to allocate an FPR, a negative value indicates
+ // that we shouldn't, and 0 indicates neutrality.
+ int
+ early_ra::fpr_preference (unsigned int regno)
+ {
+   auto mode = m_pseudo_regs[regno].mode;
+   auto flags = m_pseudo_regs[regno].flags;
+   if (mode == VOIDmode || !targetm.hard_regno_mode_ok (V0_REGNUM, mode))
+     return -3;
+   else if (flags & HAS_FLEXIBLE_STRIDE)
+     return 3;
+   else if (flags & NEEDS_FPR32)
+     return 2;
+   else if (!(flags & ALLOWS_FPR32) && (flags & ALLOWS_NONFPR))
+     return -2;
+   else if ((flags & HAS_FPR_COPY) && !(flags & HAS_NONFPR_COPY))
+     return 1;
+   else if ((flags & HAS_NONFPR_COPY) && !(flags & HAS_FPR_COPY))
+     return -1;
+   else
+     return 0;
+ }
+ 
+ // Propagate information about pseudo-registers along copy edges,
+ // while doing so doesn't create conflicting FPR preferences.
+ void
+ early_ra::propagate_pseudo_reg_info ()
+ {
+   struct stack_entry { unsigned int regno, copyi; };
+ 
+   auto_vec<stack_entry, 32> stack;
+   for (unsigned int i = FIRST_PSEUDO_REGISTER;
+        i < m_pseudo_regs.length (); ++i)
+     {
+       auto start = m_pseudo_regs[i].first_copy;
+       if (!start)
+ 	continue;
+ 
+       stack.quick_push ({ i, start });
+       while (!stack.is_empty ())
+ 	{
+ 	  auto entry = stack.pop ();
+ 	  auto &copy = m_pseudo_reg_copies[entry.copyi];
+ 	  auto src_regno = entry.regno;
+ 	  auto dest_regno = (src_regno == copy.regnos[1]
+ 			     ? copy.regnos[0]
+ 			     : copy.regnos[1]);
+ 	  auto next_copyi = (src_regno == copy.regnos[1]
+ 			     ? copy.next_copies[1]
+ 			     : copy.next_copies[0]);
+ 	  if (next_copyi)
+ 	    stack.safe_push ({ src_regno, next_copyi });
+ 
+ 	  auto &src_reg = m_pseudo_regs[src_regno];
+ 	  auto &dest_reg = m_pseudo_regs[dest_regno];
+ 
+ 	  if (src_reg.flags & ~dest_reg.flags & PSEUDO_COPY_FLAGS)
+ 	    {
+ 	      auto src_preference = fpr_preference (src_regno);
+ 	      auto dest_preference = fpr_preference (dest_regno);
+ 	      if ((src_preference >= 0 && dest_preference >= 0)
+ 		  || (src_preference <= 0 && dest_preference <= 0))
+ 		{
+ 		  dest_reg.flags |= (src_reg.flags & PSEUDO_COPY_FLAGS);
+ 		  stack.safe_push ({ dest_regno, dest_reg.first_copy });
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
+ // Decide which pseudos should be allocated an FPR, setting m_fpr_pseudos
+ // accordingly.
+ void
+ early_ra::choose_fpr_pseudos ()
+ {
+   for (unsigned int i = FIRST_PSEUDO_REGISTER;
+        i < m_pseudo_regs.length (); ++i)
+     if (fpr_preference (i) > 0)
+       bitmap_set_bit (m_fpr_pseudos, i);
+ }
+ 
+ // Clear out information about the previous CFG region (if any)
+ // and set up the data for a new region.
+ void
+ early_ra::start_new_region ()
+ {
+   obstack_free (&m_region_obstack, m_region_alloc_start);
+   m_regno_to_group.empty ();
+   m_allocno_copies.truncate (0);
+   m_allocnos.truncate (0);
+   m_sorted_allocnos.truncate (0);
+   m_shared_allocnos.truncate (0);
+   m_colors.truncate (0);
+   m_insn_ranges.truncate (0);
+   for (auto &fpr_ranges : m_fpr_ranges)
+     fpr_ranges.truncate (0);
+   for (auto &call_points : m_call_points)
+     call_points.truncate (0);
+   gcc_assert (bitmap_empty_p (m_live_allocnos) && m_live_fprs == 0);
+   m_dead_insns.truncate (0);
+   m_allocated_fprs = 0;
+   m_call_preserved_fprs = 0;
+   m_allocation_successful = true;
+   m_current_region += 1;
+ }
+ 
+ // Create and return an allocno group of size SIZE for register REGNO.
+ // REGNO can be INVALID_REGNUM if the group just exists to allow
+ // other groups to be chained together, and does not have any new
+ // allocnos of its own.
+ early_ra::allocno_group_info *
+ early_ra::create_allocno_group (unsigned int regno, unsigned int size)
+ {
+   static_assert (alignof (unsigned int) == alignof (allocno_info),
+ 		 "allocno_info alignment");
+   unsigned int num_allocnos = (regno != INVALID_REGNUM ? size : 0);
+ 
+   // Allocate an allocno_group_info, followed by an array of chain heads,
+   // followed by the allocnos themselves.
+   size_t alloc_size = (sizeof (allocno_group_info)
+ 		       + size * sizeof (unsigned int)
+ 		       + num_allocnos * sizeof (allocno_info));
+   void *data = obstack_alloc (&m_region_obstack, alloc_size);
+ 
+   // Initialize the group.
+   auto *group = reinterpret_cast<allocno_group_info *> (data);
+   memset (group, 0, sizeof (*group));
+   group->m_color_rep = group;
+   group->regno = regno;
+   group->size = size;
+   group->stride = 1;
+   group->fpr_size = FPR_D;
+   group->fpr_candidates = ~0U;
+ 
+   // Initialize the chain heads.
+   auto heads = group->chain_heads ();
+   for (unsigned int i = 0; i < heads.size (); ++i)
+     heads[i] = (i < num_allocnos ? m_allocnos.length () + i : INVALID_ALLOCNO);
+ 
+   // Initialize the allocnos.
+   if (num_allocnos > 0)
+     {
+       auto allocnos = group->allocnos ();
+       memset (allocnos.begin (), 0, num_allocnos * sizeof (allocno_info));
+       for (unsigned int i = 0; i < num_allocnos; ++i)
+ 	{
+ 	  auto *allocno = &allocnos[i];
+ 	  allocno->id = m_allocnos.length ();
+ 	  allocno->offset = i;
+ 	  allocno->group_size = size;
+ 	  allocno->hard_regno = FIRST_PSEUDO_REGISTER;
+ 	  allocno->start_point = END_OF_REGION;
+ 	  allocno->end_point = START_OF_REGION;
+ 	  allocno->copy_dest = INVALID_ALLOCNO;
+ 	  allocno->related_allocno = INVALID_ALLOCNO;
+ 	  allocno->chain_next = INVALID_ALLOCNO;
+ 	  allocno->chain_prev = INVALID_ALLOCNO;
+ 	  m_allocnos.safe_push (allocno);
+ 	}
+     }
+   return group;
+ }
+ 
+ // If REG refers to a pseudo register that might be allocated to FPRs,
+ // return the associated range of allocnos, creating new ones if necessary.
+ // Return an empty range otherwise.
+ early_ra::allocno_subgroup
+ early_ra::get_allocno_subgroup (rtx reg)
+ {
+   if (GET_CODE (reg) == SUBREG)
+     {
+       allocno_subgroup inner = get_allocno_subgroup (SUBREG_REG (reg));
+       if (!inner)
+ 	return {};
+ 
+       if (!targetm.modes_tieable_p (GET_MODE (SUBREG_REG (reg)),
+ 				    GET_MODE (reg)))
+ 	{
+ 	  m_allocation_successful = false;
+ 	  return {};
+ 	}
+ 
+       subreg_info info;
+       subreg_get_info (V0_REGNUM, GET_MODE (SUBREG_REG (reg)),
+ 		       SUBREG_BYTE (reg), GET_MODE (reg), &info);
+       if (!info.representable_p)
+ 	{
+ 	  m_allocation_successful = false;
+ 	  return {};
+ 	}
+ 
+       inner.start += info.offset;
+       inner.count = info.nregs;
+       return inner;
+     }
+ 
+   if (!REG_P (reg) || HARD_REGISTER_P (reg))
+     return {};
+ 
+   unsigned int regno = REGNO (reg);
+   if (fpr_preference (regno) <= 0)
+     return {};
+ 
+   unsigned int count = hard_regno_nregs (V0_REGNUM, GET_MODE (reg));
+   bool existed;
+   auto &entry = m_regno_to_group.get_or_insert (regno, &existed);
+   if (!existed)
+     {
+       auto *group = create_allocno_group (regno, count);
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	{
+ 	  auto allocnos = group->allocnos ();
+ 	  fprintf (dump_file, "Creating allocnos [%d:%d] for r%d\n",
+ 		   allocnos.front ().id, allocnos.back ().id, regno);
+ 	}
+ 
+       auto reg_bits = GET_MODE_BITSIZE (GET_MODE (reg));
+       auto fpr_bits = exact_div (reg_bits, count);
+       auto flags = m_pseudo_regs[regno].flags;
+ 
+       // Punt for now if there is a choice to be made between using an
+       // FPR and a non-FPR.
+       if ((flags & NEEDS_NONFPR)
+ 	  || ((flags & ALLOWS_NONFPR)
+ 	      && !FLOAT_MODE_P (GET_MODE (reg))
+ 	      && !VECTOR_MODE_P (GET_MODE (reg))))
+ 	m_allocation_successful = false;
+ 
+       if (flags & ALLOWS_FPR8)
+ 	group->fpr_candidates &= 0xff;
+       else if (flags & ALLOWS_FPR16)
+ 	group->fpr_candidates &= 0xffff;
+       group->fpr_candidates &= ~0U >> (count - 1);
+ 
+       group->has_flexible_stride = ((flags & HAS_FLEXIBLE_STRIDE) != 0
+ 				    && (flags & HAS_FIXED_STRIDE) == 0);
+ 
+       group->fpr_size = (maybe_gt (fpr_bits, 128) ? FPR_Z
+ 			 : maybe_gt (fpr_bits, 64) ? FPR_Q : FPR_D);
+ 
+       entry = group;
+     }
+   return { entry, 0, count };
+ }
+ 
+ // Record a use of FPR REGNO at the current program point, as part of
+ // a backwards walk over a block.
+ void
+ early_ra::record_fpr_use (unsigned int regno)
+ {
+   gcc_assert (IN_RANGE (regno, V0_REGNUM, V31_REGNUM));
+   unsigned int offset = regno - V0_REGNUM;
+   if (!(m_live_fprs & (1U << offset)))
+     {
+       m_fpr_ranges[offset].safe_push ({ START_OF_REGION, m_current_point,
+ 					INVALID_ALLOCNO });
+       m_live_fprs |= 1U << offset;
+     }
+ }
+ 
+ // Record a definition of FPR REGNO at the current program point, as part of
+ // a backwards walk over a block.
+ void
+ early_ra::record_fpr_def (unsigned int regno)
+ {
+   gcc_assert (IN_RANGE (regno, V0_REGNUM, V31_REGNUM));
+   unsigned int offset = regno - V0_REGNUM;
+ 
+   // The definition completes the current live range.  If the result
+   // of the definition is used, the live range extends to the last use.
+   // Otherwise the live range is just a momentary blip at the current point.
+   auto &ranges = m_fpr_ranges[offset];
+   if (m_live_fprs & (1U << offset))
+     {
+       ranges.last ().start_point = m_current_point;
+       m_live_fprs &= ~(1U << offset);
+     }
+   else
+     ranges.safe_push ({ m_current_point, m_current_point, INVALID_ALLOCNO });
+ }
+ 
+ // Record a use of allocno ALLOCNO at the current program point, as part
+ // of a backwards walk over a block.
+ void
+ early_ra::record_allocno_use (allocno_info *allocno)
+ {
+   if (allocno->start_point == m_current_point)
+     return;
+ 
+   gcc_checking_assert (!allocno->is_shared ());
+   bitmap_set_bit (m_live_allocnos, allocno->id);
+   if (allocno->end_point > m_current_point)
+     {
+       allocno->end_point = m_current_point;
+       allocno->last_def_point = START_OF_REGION;
+       allocno->last_use_point = END_OF_REGION;
+     }
+   else
+     allocno->last_use_point = allocno->start_point;
+   allocno->start_point = m_current_point;
+   allocno->is_copy_dest = false;
+   allocno->is_strong_copy_src = false;
+   allocno->related_allocno = INVALID_ALLOCNO;
+   allocno->is_equiv = false;
+ }
+ 
+ // Record a definition of the allocno with index AI at the current program
+ // point, as part of a backwards walk over a block.  The allocno is known
+ // to be live.
+ void
+ early_ra::record_allocno_def (allocno_info *allocno)
+ {
+   gcc_checking_assert (!allocno->is_shared ());
+   allocno->last_use_point = allocno->start_point;
+   allocno->last_def_point = m_current_point;
+   allocno->start_point = m_current_point;
+   allocno->num_defs = MIN (allocno->num_defs + 1, 2);
+   gcc_checking_assert (!allocno->is_copy_dest
+ 		       && !allocno->is_strong_copy_src);
+   if (!bitmap_clear_bit (m_live_allocnos, allocno->id))
+     gcc_unreachable ();
+ }
+ 
+ // SRC_ALLOCNO is copied or tied to DEST_ALLOCNO; IS_EQUIV is true if the
+ // two allocnos are known to be equal.  See whether we can mark a chain of
+ // allocnos ending at DEST_ALLOCNO as related to SRC_ALLOCNO.   Return the
+ // start of the chain if so, otherwise return null.
+ //
+ // If IS_EQUIV, a chain that contains just DEST_ALLOCNO should be treated
+ // as an equivalence.  Otherwise the chain should be shared with SRC_ALLOCNO.
+ //
+ // Sharing chains are a rather hacky workaround for the fact that we
+ // don't collect segmented live ranges, and that in the end we want to do
+ // simple interval graph coloring.
+ early_ra::allocno_info *
+ early_ra::find_related_start (allocno_info *dest_allocno,
+ 			      allocno_info *src_allocno, bool is_equiv)
+ {
+   allocno_info *res = nullptr;
+   for (;;)
+     {
+       if (src_allocno->end_point > dest_allocno->end_point)
+ 	// The src allocno dies first.
+ 	return res;
+ 
+       if (src_allocno->num_defs != 0)
+ 	{
+ 	  if (dest_allocno->end_point < m_current_bb_point)
+ 	    // We don't currently track enough information to handle multiple
+ 	    // definitions across basic block boundaries.
+ 	    return res;
+ 
+ 	  if (src_allocno->last_def_point >= dest_allocno->end_point)
+ 	    // There is another definition during the destination's live range.
+ 	    return res;
+ 	}
+       if (is_equiv)
+ 	{
+ 	  if (dest_allocno->num_defs == 1)
+ 	    // dest_allocno is equivalent to src_allocno for dest_allocno's
+ 	    // entire live range.  Fall back to that if we can't establish
+ 	    // a sharing chain.
+ 	    res = dest_allocno;
+ 	}
+       else
+ 	{
+ 	  if (src_allocno->last_use_point >= dest_allocno->end_point)
+ 	    // src_allocno is live during dest_allocno's live range,
+ 	    // and the two allocnos do not necessarily have the same value.
+ 	    return res;
+ 	}
+ 
+       if (dest_allocno->group_size != 1
+ 	  // Account for definitions by shared registers.
+ 	  || dest_allocno->num_defs > 1
+ 	  || DF_REG_DEF_COUNT (dest_allocno->group ()->regno) != 1)
+ 	// Currently only single allocnos that are defined once can
+ 	// share registers with non-equivalent allocnos.  This could be
+ 	// relaxed, but at the time of writing, aggregates are not valid
+ 	// SSA names and so generally only use a single pseudo throughout
+ 	// their lifetime.
+ 	return res;
+ 
+       if (dest_allocno->copy_dest == src_allocno->id)
+ 	// We've found a complete and valid sharing chain.
+ 	return dest_allocno;
+ 
+       if (dest_allocno->copy_dest == INVALID_ALLOCNO)
+ 	return res;
+ 
+       auto *next_allocno = m_allocnos[dest_allocno->copy_dest];
+       if (!is_chain_candidate (dest_allocno, next_allocno, ALL_REASONS))
+ 	return res;
+ 
+       dest_allocno = next_allocno;
+       is_equiv = false;
+     }
+ }
+ 
+ // Add FROM_ALLOCNO's definition information to TO_ALLOCNO's.
+ void
+ early_ra::accumulate_defs (allocno_info *to_allocno,
+ 			   allocno_info *from_allocno)
+ {
+   if (from_allocno->num_defs > 0)
+     {
+       to_allocno->num_defs = MIN (from_allocno->num_defs
+ 				  + to_allocno->num_defs, 2);
+       to_allocno->last_def_point = MAX (to_allocno->last_def_point,
+ 					from_allocno->last_def_point);
+     }
+ }
+ 
+ // Record any relevant allocno-related information for an actual or imagined
+ // copy from SRC to DEST.  FROM_MOVE_P is true if the copy was an explicit
+ // move instruction, false if it represents one way of satisfying the previous
+ // instruction's constraints.
+ void
+ early_ra::record_copy (rtx dest, rtx src, bool from_move_p)
+ {
+   auto dest_range = get_allocno_subgroup (dest);
+   auto src_range = get_allocno_subgroup (src);
+   if (from_move_p
+       && dest_range
+       && REG_P (src)
+       && FP_REGNUM_P (REGNO (src)))
+     {
+       // A copy from an FPR to an allocno group.
+       unsigned int fpr = REGNO (src) - V0_REGNUM;
+       m_allocno_copies.safe_push ({ dest_range.allocno (0)->id, fpr,
+ 				    dest_range.count });
+ 
+       // If the allocno at the other end of the chain of copies from DEST
+       // has a copy to the same FPR, record that all intervening copy chains
+       // could become "strong" ones.  This indicates that picking the FPR
+       // avoids a copy at both ends.
+       unsigned int hard_regno = REGNO (src);
+       for (auto &dest_allocno : dest_range.allocnos ())
+ 	if (dest_allocno.hard_regno == hard_regno++)
+ 	  dest_allocno.is_strong_copy_src = true;
+     }
+   else if (from_move_p
+ 	   && src_range
+ 	   && REG_P (dest)
+ 	   && FP_REGNUM_P (REGNO (dest)))
+     {
+       // A copy from an allocno group to an FPR.
+       unsigned int fpr = REGNO (dest) - V0_REGNUM;
+       m_allocno_copies.safe_push ({ src_range.allocno (0)->id, fpr,
+ 				    src_range.count });
+       for (auto &src_allocno : src_range.allocnos ())
+ 	{
+ 	  // If the copy comes from a move, see whether the destination
+ 	  // FPR is known to be equal to the source allocno for the FPR's
+ 	  // last live range.
+ 	  if (from_move_p && src_allocno.num_defs == 0)
+ 	    {
+ 	      auto &last_range = m_fpr_ranges[fpr].last ();
+ 	      if (last_range.end_point >= src_allocno.end_point)
+ 		last_range.allocno = src_allocno.id;
+ 	    }
+ 	  src_allocno.hard_regno = V0_REGNUM + fpr;
+ 	  fpr += 1;
+ 	}
+     }
+   else if (src_range && dest_range)
+     {
+       // A copy between two allocno groups.  We can only have a mismatched
+       // number of FPRs for imaginary, non-move copies.  In that case
+       // the matching happens on the common lowparts.
+       gcc_assert (!from_move_p || src_range.count == dest_range.count);
+       unsigned int count = std::min (src_range.count, dest_range.count);
+       if (WORDS_BIG_ENDIAN)
+ 	{
+ 	  src_range.start += src_range.count - count;
+ 	  dest_range.start += dest_range.count - count;
+ 	}
+       src_range.count = count;
+       dest_range.count = count;
+ 
+       // Ignore (imaginary non-move) copies if the destination is still live.
+       for (auto &dest_allocno : dest_range.allocnos ())
+ 	if (bitmap_bit_p (m_live_allocnos, dest_allocno.id))
+ 	  return;
+ 
+       for (unsigned int i = 0; i < src_range.count; ++i)
+ 	{
+ 	  auto *dest_allocno = dest_range.allocno (i);
+ 	  auto *src_allocno = src_range.allocno (i);
+ 	  if (src_allocno->end_point > dest_allocno->start_point)
+ 	    {
+ 	      gcc_assert (src_allocno->copy_dest == INVALID_ALLOCNO
+ 			  || src_allocno->copy_dest == dest_allocno->id);
+ 	      src_allocno->copy_dest = dest_allocno->id;
+ 	      src_allocno->hard_regno = dest_allocno->hard_regno;
+ 	      dest_allocno->is_copy_dest = 1;
+ 	    }
+ 	  else if (auto *start_allocno = find_related_start (dest_allocno,
+ 							     src_allocno,
+ 							     from_move_p))
+ 	    {
+ 	      auto *next_allocno = dest_allocno;
+ 	      for (;;)
+ 		{
+ 		  next_allocno->related_allocno = src_allocno->id;
+ 		  next_allocno->is_equiv = (start_allocno == dest_allocno
+ 					    && from_move_p);
+ 		  // If we're sharing two allocnos that are not equivalent,
+ 		  // carry across the definition information.  This is needed
+ 		  // to prevent multiple incompatible attempts to share with
+ 		  // the same register.
+ 		  if (next_allocno->is_shared ())
+ 		    accumulate_defs (src_allocno, next_allocno);
+ 		  src_allocno->last_use_point
+ 		    = MAX (src_allocno->last_use_point,
+ 			   next_allocno->last_use_point);
+ 
+ 		  if (next_allocno == start_allocno)
+ 		    break;
+ 		  next_allocno = m_allocnos[next_allocno->copy_dest];
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
+ // Record any relevant allocno-related information about the constraints
+ // on INSN, which has already been extracted.
+ void
+ early_ra::record_constraints (rtx_insn *insn)
+ {
+   preprocess_constraints (insn);
+ 
+   int operand_matches[MAX_RECOG_OPERANDS];
+   for (int i = 0; i < recog_data.n_operands; ++i)
+     operand_matches[i] = -1;
+ 
+   auto alts = get_preferred_alternatives (insn);
+   bool any_ok = recog_data.n_alternatives == 0;
+ 
+   // The set of output operands that are earlyclobber in at least one
+   // alternative.
+   operand_mask earlyclobber_operands = 0;
+ 
+   // The set of output operands that are matched to inputs in at least
+   // one alternative.
+   operand_mask matched_operands = 0;
+ 
+   // The set of output operands that are not matched to inputs in at least
+   // one alternative.
+   operand_mask unmatched_operands = 0;
+ 
+   // The set of input operands that are matched to outputs in at least one
+   // alternative, or that overlap with such an input if the output is not
+   // earlyclobber.  The latter part of the condition copes with things
+   // like y = x * x, where the first x is tied to the destination, and where
+   // y is not earlyclobber.
+   operand_mask matches_operands = 0;
+ 
+   for (int altno = 0; altno < recog_data.n_alternatives; ++altno)
+     {
+       if (!(alts & ALTERNATIVE_BIT (altno)))
+ 	continue;
+ 
+       auto *op_alt = &recog_op_alt[altno * recog_data.n_operands];
+       if (!likely_alternative_match_p (op_alt))
+ 	continue;
+ 
+       any_ok = true;
+ 
+       // Update the information for operand DEST_OPNO based on the constraint
+       // information for operand SRC_OPNO.  The numbers can be different for
+       // swapped commutative operands.
+       auto record_operand = [&](int src_opno, int dest_opno)
+ 	{
+ 	  int matches = op_alt[src_opno].matches;
+ 	  // A matched earlyclobber cannot be used if the same operand value
+ 	  // occurs in an unmatched operand.  E.g. for y = x * x, a matched
+ 	  // earlyclobber on the first input does not cover the second input.
+ 	  if (matches >= 0)
+ 	    {
+ 	      rtx op = recog_data.operand[dest_opno];
+ 	      operand_mask overlaps = 0;
+ 	      for (int i = 0; i < recog_data.n_operands; ++i)
+ 		if (i != dest_opno
+ 		    && !recog_data.is_operator[i]
+ 		    && recog_data.operand_type[i] != OP_OUT
+ 		    && reg_overlap_mentioned_p (op, recog_data.operand[i]))
+ 		  overlaps |= 1U << i;
+ 	      if (!op_alt[matches].earlyclobber || overlaps == 0)
+ 		{
+ 		  operand_matches[dest_opno] = matches;
+ 		  matches_operands |= (1U << dest_opno) | overlaps;
+ 		}
+ 	    }
+ 	};
+ 
+       auto reject = count_rejects (op_alt);
+       for (int opno = 0; opno < recog_data.n_operands; ++opno)
+ 	{
+ 	  operand_mask op_mask = operand_mask (1) << opno;
+ 
+ 	  if (recog_data.operand_type[opno] != OP_IN)
+ 	    {
+ 	      if (reject == 0 && op_alt[opno].matched >= 0)
+ 		matched_operands |= op_mask;
+ 	      else
+ 		unmatched_operands |= op_mask;
+ 	    }
+ 
+ 	  if (op_alt[opno].earlyclobber)
+ 	    earlyclobber_operands |= op_mask;
+ 
+ 	  // Punt for now on scratches.  If we wanted to handle them,
+ 	  // we'd need to create allocnos for them, like IRA does.
+ 	  rtx op = recog_data.operand[opno];
+ 	  if (GET_CODE (op) == SCRATCH
+ 	      && reg_classes_intersect_p (op_alt[opno].cl, FP_REGS))
+ 	    m_allocation_successful = false;
+ 
+ 	  // Record filter information, which applies to the first register
+ 	  // in the operand.
+ 	  if (auto filters = alternative_register_filters (op_alt, opno))
+ 	    if (auto range = get_allocno_subgroup (recog_data.operand[opno]))
+ 	      for (unsigned int fpr = range.start; fpr < 32; ++fpr)
+ 		if (!test_register_filters (filters, fpr))
+ 		  range.group->fpr_candidates &= ~(1U << (fpr - range.start));
+ 
+ 	  if (reject == 0)
+ 	    {
+ 	      // Record possible matched operands.
+ 	      record_operand (opno, opno);
+ 	      if (recog_data.constraints[opno][0] == '%')
+ 		{
+ 		  record_operand (opno, opno + 1);
+ 		  record_operand (opno + 1, opno);
+ 		}
+ 	    }
+ 	}
+     }
+ 
+   if (!any_ok)
+     {
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	fprintf (dump_file, "       -- no match\n");
+       m_allocation_successful = false;
+     }
+ 
+   // Record if there is an output operand that is never earlyclobber and never
+   // matched to an input.  See the comment below for how this is used.
+   rtx dest_op = NULL_RTX;
+   for (int opno = 0; opno < recog_data.n_operands; ++opno)
+     {
+       auto op_mask = operand_mask (1) << opno;
+       if (recog_data.operand_type[opno] == OP_OUT
+ 	  && (earlyclobber_operands & op_mask) == 0
+ 	  && (matched_operands & op_mask) == 0)
+ 	{
+ 	  dest_op = recog_data.operand[opno];
+ 	  break;
+ 	}
+     }
+ 
+   for (int opno = 0; opno < recog_data.n_operands; ++opno)
+     {
+       auto op_mask = operand_mask (1) << opno;
+       rtx op = recog_data.operand[opno];
+       int matches = operand_matches[opno];
+ 
+       // Punt for now on operands that already have a fixed choice of
+       // register, since we don't have IRA's ability to find an alternative.
+       // It's better if earlier passes don't create this kind of situation.
+       if (REG_P (op) && FP_REGNUM_P (REGNO (op)))
+ 	m_allocation_successful = false;
+ 
+       // Treat input operands as being earlyclobbered if an output is
+       // sometimes earlyclobber and if the input never matches an output.
+       // Do the same if there is an output that is always matched to an
+       // input, and if this operand doesn't match that input.  In both
+       // cases, tying the input and the output would lead to an impossible
+       // combination (or at least one that is difficult to reload).
+       if (recog_data.operand_type[opno] != OP_OUT
+ 	  && ((earlyclobber_operands && matches < 0)
+ 	      || ((matched_operands & ~unmatched_operands)
+ 		  && !(matches_operands & op_mask))))
+ 	for (auto &allocno : get_allocno_subgroup (op).allocnos ())
+ 	  if (allocno.end_point + 1 == m_current_point)
+ 	    allocno.is_earlyclobbered = true;
+ 
+       // Create copies between operands that can be tied.  This (deliberately)
+       // might add several copies to the same destination register; later code
+       // can then choose between them based on other criteria.
+       //
+       // If there is an output operand that is never matched or earlyclobber,
+       // and an input operand that never matches an output operand, create
+       // a tentative copy between them.  This allows hard register preferences
+       // to be transmitted along the copy chains.
+       if (matches >= 0)
+ 	record_copy (recog_data.operand[matches], op);
+       else if (dest_op && recog_data.operand_type[opno] == OP_IN)
+ 	record_copy (dest_op, op);
+     }
+ }
+ 
+ // If FLAGS is DF_REF_AT_TOP, model the artificial uses and defs at the
+ // start of the current basic block, otherwise model the artificial uses
+ // and defs at the end of the basic block.  This is done as part of a
+ // backwards walk, so defs should be processed before uses.
+ void
+ early_ra::record_artificial_refs (unsigned int flags)
+ {
+   df_ref ref;
+ 
+   FOR_EACH_ARTIFICIAL_DEF (ref, m_current_bb->index)
+     if ((DF_REF_FLAGS (ref) & DF_REF_AT_TOP) == flags
+ 	&& IN_RANGE (DF_REF_REGNO (ref), V0_REGNUM, V31_REGNUM))
+       record_fpr_def (DF_REF_REGNO (ref));
+   m_current_point += 1;
+ 
+   FOR_EACH_ARTIFICIAL_USE (ref, m_current_bb->index)
+     if ((DF_REF_FLAGS (ref) & DF_REF_AT_TOP) == flags
+ 	&& IN_RANGE (DF_REF_REGNO (ref), V0_REGNUM, V31_REGNUM))
+       record_fpr_use (DF_REF_REGNO (ref));
+   m_current_point += 1;
+ }
+ 
+ // Model the register references in INSN as part of a backwards walk.
+ void
+ early_ra::record_insn_refs (rtx_insn *insn)
+ {
+   df_ref ref;
+ 
+   // Record all definitions, excluding partial call clobbers.
+   FOR_EACH_INSN_DEF (ref, insn)
+     if (IN_RANGE (DF_REF_REGNO (ref), V0_REGNUM, V31_REGNUM))
+       record_fpr_def (DF_REF_REGNO (ref));
+     else
+       {
+ 	auto range = get_allocno_subgroup (DF_REF_REG (ref));
+ 	for (auto &allocno : range.allocnos ())
+ 	  {
+ 	    // If the destination is unused, record a momentary blip
+ 	    // in its live range.
+ 	    if (!bitmap_bit_p (m_live_allocnos, allocno.id))
+ 	      record_allocno_use (&allocno);
+ 	    record_allocno_def (&allocno);
+ 	  }
+       }
+   m_current_point += 1;
+ 
+   // Model the call made by a call insn as a separate phase in the
+   // evaluation of the insn.  Any partial call clobbers happen at that
+   // point, rather than in the definition or use phase of the insn.
+   if (auto *call_insn = dyn_cast<rtx_call_insn *> (insn))
+     {
+       function_abi abi = insn_callee_abi (call_insn);
+       m_call_points[abi.id ()].safe_push (m_current_point);
+       m_current_point += 1;
+     }
+ 
+   // Record all uses.  We can ignore READ_MODIFY_WRITE uses of plain subregs,
+   // since we track the FPR-sized parts of them individually.
+   FOR_EACH_INSN_USE (ref, insn)
+     if (IN_RANGE (DF_REF_REGNO (ref), V0_REGNUM, V31_REGNUM))
+       record_fpr_use (DF_REF_REGNO (ref));
+     else if (!DF_REF_FLAGS_IS_SET (ref, DF_REF_READ_WRITE)
+ 	     || DF_REF_FLAGS_IS_SET (ref, DF_REF_STRICT_LOW_PART)
+ 	     || DF_REF_FLAGS_IS_SET (ref, DF_REF_ZERO_EXTRACT))
+       {
+ 	auto range = get_allocno_subgroup (DF_REF_REG (ref));
+ 	for (auto &allocno : range.allocnos ())
+ 	  record_allocno_use (&allocno);
+       }
+   m_current_point += 1;
+ }
+ 
+ // ALLOCNO->is_strong_copy_src is true.  See whether ALLOCNO heads a
+ // natural chain that has an affinity with the same hard register at
+ // both ends.
+ bool
+ early_ra::consider_strong_copy_src_chain (allocno_info *allocno)
+ {
+   auto *src_allocno = allocno;
+   while (src_allocno->copy_dest != INVALID_ALLOCNO)
+     {
+       auto *dest_allocno = m_allocnos[src_allocno->copy_dest];
+       if (dest_allocno->start_point > src_allocno->end_point
+ 	  || dest_allocno->hard_regno != src_allocno->hard_regno)
+ 	return false;
+       gcc_checking_assert (dest_allocno->is_copy_dest);
+       src_allocno = dest_allocno;
+     }
+ 
+   while (allocno->copy_dest != INVALID_ALLOCNO)
+     {
+       allocno->is_strong_copy_src = 1;
+       allocno = m_allocnos[allocno->copy_dest];
+       allocno->is_strong_copy_dest = 1;
+     }
+   return true;
+ }
+ 
+ // ALLOCNO1 and ALLOCNO2 are linked in some way, and might end up being
+ // chained together.  See whether chaining them requires the containing
+ // groups to have the same stride, or whether it requires them to have
+ // different strides.  Return 1 if they should have the same stride,
+ // -1 if they should have different strides, or 0 if it doesn't matter.
+ int
+ early_ra::strided_polarity_pref (allocno_info *allocno1,
+ 				 allocno_info *allocno2)
+ {
+   if (allocno1->offset + 1 < allocno1->group_size
+       && allocno2->offset + 1 < allocno2->group_size)
+     {
+       if (is_chain_candidate (allocno1 + 1, allocno2 + 1, ALL_REASONS))
+ 	return 1;
+       else
+ 	return -1;
+     }
+ 
+   if (allocno1->offset > 0 && allocno2->offset > 0)
+     {
+       if (is_chain_candidate (allocno1 - 1, allocno2 - 1, ALL_REASONS))
+ 	return 1;
+       else
+ 	return -1;
+     }
+ 
+   return 0;
+ }
+ 
+ // Decide which groups should be strided.  Also complete "strong" copy chains.
+ void
+ early_ra::find_strided_accesses ()
+ {
+   // This function forms a graph of allocnos, linked by equivalences and
+   // natural copy chains.  It temporarily uses chain_next to record the
+   // reverse of equivalence edges (related_allocno) and chain_prev to record
+   // the reverse of copy edges (copy_dest).
+   unsigned int allocno_info::*links[] = {
+     &allocno_info::chain_next,
+     &allocno_info::chain_prev,
+     &allocno_info::copy_dest,
+     &allocno_info::related_allocno
+   };
+ 
+   // Set up the temporary reverse edges.  Check for strong copy chains.
+   for (unsigned int i = m_allocnos.length (); i-- > 0; )
+     {
+       auto *allocno1 = m_allocnos[i];
+       if (allocno1->copy_dest != INVALID_ALLOCNO)
+ 	m_allocnos[allocno1->copy_dest]->chain_prev = allocno1->id;
+       if (allocno1->related_allocno != INVALID_ALLOCNO)
+ 	m_allocnos[allocno1->related_allocno]->chain_next = allocno1->id;
+ 
+       if (allocno1->is_strong_copy_src
+ 	  && !allocno1->is_copy_dest
+ 	  && !consider_strong_copy_src_chain (allocno1))
+ 	allocno1->is_strong_copy_src = false;
+     }
+ 
+   // Partition the graph into cliques based on edges that have the following
+   // properties:
+   //
+   // - the edge joins two allocnos whose groups have a free choice between
+   //   consecutive and strided allocations.
+   //
+   // - the two groups have a relative strided polarity preference (that is
+   //   they should make the same choice between consecutive and strided,
+   //   or they should make opposite choices).
+   //
+   // Assign relative polarities to each group connected in this way.
+   //
+   // The aim is to discover natural move-free striding choices, which will
+   // often exist in carefully written ACLE code.
+   unsigned int num_edges = m_allocnos.length () * ARRAY_SIZE (links);
+   auto_sbitmap visited_edges (num_edges);
+   bitmap_clear (visited_edges);
+ 
+   auto_vec<unsigned int, 32> worklist;
+   for (unsigned int i = 0; i < num_edges; ++i)
+     {
+       if (!bitmap_set_bit (visited_edges, i))
+ 	continue;
+       worklist.quick_push (i);
+       while (!worklist.is_empty ())
+ 	{
+ 	  auto ei = worklist.pop ();
+ 	  auto *allocno1 = m_allocnos[ei / ARRAY_SIZE (links)];
+ 	  auto ai2 = allocno1->*links[ei % ARRAY_SIZE (links)];
+ 	  if (ai2 == INVALID_ALLOCNO)
+ 	    continue;
+ 
+ 	  auto *allocno2 = m_allocnos[ai2];
+ 	  auto *group1 = allocno1->group ();
+ 	  auto *group2 = allocno2->group ();
+ 	  if (!group1->has_flexible_stride || !group2->has_flexible_stride)
+ 	    continue;
+ 
+ 	  int pref = strided_polarity_pref (allocno1, allocno2);
+ 	  if (pref == 0)
+ 	    continue;
+ 
+ 	  for (auto *group : { group1, group2 })
+ 	    for (auto &allocno : group->allocnos ())
+ 	      for (unsigned int j = 0; j < ARRAY_SIZE (links); ++j)
+ 		if (bitmap_set_bit (visited_edges, allocno.id * 4 + j))
+ 		  worklist.safe_push (allocno.id * 4 + j);
+ 
+ 	  if (group1->strided_polarity)
+ 	    group2->strided_polarity = group1->strided_polarity * pref;
+ 	  else if (group2->strided_polarity)
+ 	    group1->strided_polarity = group2->strided_polarity * pref;
+ 	  else
+ 	    {
+ 	      group1->strided_polarity = 1;
+ 	      group2->strided_polarity = pref;
+ 	    }
+ 	}
+     }
+ 
+   // Now look for edges between allocnos in multi-register groups where:
+   //
+   // - the two groups have a relative strided polarity preference (as above).
+   //
+   // - one group (G1) has a free choice between consecutive and strided
+   //   allocations.
+   //
+   // - the other group (G2) must use consecutive allocations.
+   //
+   // Update G1's individual preference for strided or consecutive allocations
+   // based on G2.  If the previous loop chose a polarity for G1, work out
+   // whether it is better for polarity 1 or -1 to correspond to consecutive
+   // allocation.
+   int consecutive_pref = 0;
+   for (unsigned int i = m_allocnos.length (); i-- > 0; )
+     {
+       auto *allocno1 = m_allocnos[i];
+       for (auto link : links)
+ 	{
+ 	  auto ai2 = allocno1->*link;
+ 	  if (ai2 == INVALID_ALLOCNO)
+ 	    continue;
+ 
+ 	  auto *allocno2 = m_allocnos[ai2];
+ 	  auto *group1 = allocno1->group ();
+ 	  auto *group2 = allocno2->group ();
+ 	  if (group1->has_flexible_stride == group2->has_flexible_stride)
+ 	    continue;
+ 
+ 	  int pref = strided_polarity_pref (allocno1, allocno2);
+ 	  if (pref == 0)
+ 	    continue;
+ 
+ 	  auto *group = (group1->has_flexible_stride ? group1 : group2);
+ 	  consecutive_pref += group->strided_polarity * pref;
+ 	  group->consecutive_pref += pref;
+ 	}
+     }
+ 
+   // If it doesn't matter whether polarity 1 or -1 corresponds to consecutive
+   // allocation, arbitrarily pick 1.
+   if (consecutive_pref == 0)
+     consecutive_pref = 1;
+ 
+   // Record which multi-register groups should use strided allocations.
+   // Clear out the temporary edges.
+   for (unsigned int ai = 0; ai < m_allocnos.length (); ++ai)
+     {
+       auto *allocno = m_allocnos[ai];
+       allocno->chain_prev = INVALID_ALLOCNO;
+       allocno->chain_next = INVALID_ALLOCNO;
+ 
+       if (allocno->offset != 0)
+ 	continue;
+ 
+       auto *group = allocno->group ();
+       if (!group->has_flexible_stride)
+ 	continue;
+ 
+       bool make_strided = (group->strided_polarity
+ 			   ? (consecutive_pref * group->strided_polarity) < 0
+ 			   : group->consecutive_pref < 0);
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	fprintf (dump_file, "Allocno [%d:%d]: strided polarity %d,"
+ 		 " consecutive pref %d, %s\n",
+ 		 allocno->id, allocno->id + group->size - 1,
+ 		 group->strided_polarity, group->consecutive_pref,
+ 		 make_strided ? "making strided" : "keeping consecutive");
+       if (!make_strided)
+ 	continue;
+ 
+       // 2-register groups have a stride of 8 FPRs and must start in
+       // registers matching the mask 0x17.  4-register groups have a stride
+       // of 4 FPRs and must start in registers matching the mask 0x13.
+       group->stride = group->size == 2 ? 8 : 4;
+       gcc_checking_assert (group->fpr_candidates
+ 			   == (group->size == 2 ? 0x55555555 : 0x11111111));
+       group->fpr_candidates = (group->size == 2 ? 0xff00ff : 0xf000f);
+     }
+ }
+ 
+ // Compare the allocnos at *ALLOCNO1_PTR and *ALLOCNO2_PTR and return a <=>
+ // result that puts allocnos in order of increasing FIELD.
+ template<unsigned int early_ra::allocno_info::*field>
+ int
+ early_ra::cmp_increasing (const void *allocno1_ptr, const void *allocno2_ptr)
+ {
+   auto *allocno1 = *(allocno_info *const *) allocno1_ptr;
+   auto *allocno2 = *(allocno_info *const *) allocno2_ptr;
+ 
+   if (allocno1->*field != allocno2->*field)
+     return allocno1->*field < allocno2->*field ? -1 : 1;
+   return (allocno1->id < allocno2->id ? -1
+ 	  : allocno1->id == allocno2->id ? 0 : 1);
+ }
+ 
+ // Return true if we should consider chaining ALLOCNO1 onto the head
+ // of ALLOCNO2.  STRICTNESS says whether we should take copy-elision
+ // heuristics into account, or whether we should just consider things
+ // that matter for correctness.
+ //
+ // This is just a local test of the two allocnos; it doesn't guarantee
+ // that chaining them would give a self-consistent system.
+ bool
+ early_ra::is_chain_candidate (allocno_info *allocno1, allocno_info *allocno2,
+ 			      test_strictness strictness)
+ {
+   if (allocno2->is_shared ())
+     return false;
+ 
+   while (allocno1->is_equiv)
+     allocno1 = m_allocnos[allocno1->related_allocno];
+ 
+   if (allocno2->start_point >= allocno1->end_point
+       && !allocno2->is_equiv_to (allocno1->id))
+     return false;
+ 
+   if (allocno1->is_earlyclobbered
+       && allocno1->end_point == allocno2->start_point + 1)
+     return false;
+ 
+   if (strictness == ALL_REASONS && allocno2->is_copy_dest)
+     {
+       if (allocno1->copy_dest != allocno2->id)
+ 	return false;
+       if (allocno2->is_strong_copy_dest && !allocno1->is_strong_copy_src)
+ 	return false;
+     }
+   return true;
+ }
+ 
+ // We're trying to chain allocno ALLOCNO1 to a later allocno.
+ // Rate how good a choice ALLOCNO2 would be, with higher being better.
+ int
+ early_ra::rate_chain (allocno_info *allocno1, allocno_info *allocno2)
+ {
+   int score = 0;
+   if (allocno2->is_strong_copy_dest)
+     score += 256;
+   else if (allocno2->is_copy_dest)
+     score += 128;
+ 
+   // Prefer well-aligned matches.
+   auto *group1 = allocno1->group ();
+   auto *group2 = allocno2->group ();
+   if (group1->stride == 1 && group2->stride == 1)
+     {
+       unsigned int min_size = std::min (group1->color_rep ()->size,
+ 					group2->color_rep ()->size);
+       if ((group1->color_rep_offset + allocno1->offset) % min_size
+ 	  == (group2->color_rep_offset + allocno2->offset) % min_size)
+ 	score += min_size;
+       else
+ 	score -= min_size;
+     }
+   return score;
+ }
+ 
+ // Sort the chain_candidate_infos at ARG1 and ARG2 in order of decreasing
+ // score.
+ int
+ early_ra::cmp_chain_candidates (const void *arg1, const void *arg2)
+ {
+   auto &candidate1 = *(const chain_candidate_info *) arg1;
+   auto &candidate2 = *(const chain_candidate_info *) arg2;
+   if (candidate1.score != candidate2.score)
+     return candidate1.score > candidate2.score ? -1 : 1;
+ 
+   // Prefer to increase the gap between uses of the allocated register,
+   // to give the scheduler more freedom.
+   auto *allocno1 = candidate1.allocno;
+   auto *allocno2 = candidate2.allocno;
+   if (allocno1->start_point != allocno2->start_point)
+     return allocno1->start_point < allocno2->start_point ? -1 : 1;
+ 
+   if (allocno1 != allocno2)
+     return allocno1->id < allocno2->id ? -1 : 1;
+ 
+   return 0;
+ }
+ 
+ // Join the chains of allocnos that start at HEADI1 and HEADI2.
+ // HEADI1 is either empty or a single allocno.
+ void
+ early_ra::chain_allocnos (unsigned int &headi1, unsigned int &headi2)
+ {
+   if (headi1 == INVALID_ALLOCNO)
+     headi1 = headi2;
+   else if (headi2 == INVALID_ALLOCNO)
+     headi2 = headi1;
+   else
+     {
+       auto *head1 = m_allocnos[headi1];
+       auto *head2 = m_allocnos[headi2];
+       gcc_checking_assert (head1->chain_next == INVALID_ALLOCNO
+ 			   && head1->chain_prev == INVALID_ALLOCNO
+ 			   && head2->chain_prev == INVALID_ALLOCNO);
+ 
+       if (head1->is_equiv
+ 	  && m_allocnos[head1->related_allocno]->copy_dest == headi2)
+ 	{
+ 	  head1->is_copy_dest = head2->is_copy_dest;
+ 	  head1->is_strong_copy_dest = head2->is_strong_copy_dest;
+ 	  m_allocnos[head1->related_allocno]->copy_dest = headi1;
+ 	}
+       head1->chain_next = headi2;
+       head2->chain_prev = headi1;
+ 
+       headi2 = headi1;
+     }
+ }
+ 
+ // Add GROUP2's FPR information to GROUP1's, given that GROUP2 starts
+ // OFFSET allocnos into GROUP2.
+ void
+ early_ra::merge_fpr_info (allocno_group_info *group1,
+ 			  allocno_group_info *group2,
+ 			  unsigned int offset)
+ {
+   group1->fpr_size = std::max (group1->fpr_size, group2->fpr_size);
+   group1->fpr_candidates &= (group2->fpr_candidates
+ 			     >> (offset * group1->stride));
+ }
+ 
+ // Set the color representative of ALLOCNO's group to REP, such that ALLOCNO
+ // ends being at allocno offset REP_OFFSET from the start of REP.
+ void
+ early_ra::set_single_color_rep (allocno_info *allocno, allocno_group_info *rep,
+ 				unsigned int rep_offset)
+ {
+   auto *group = allocno->group ();
+   if (group->m_color_rep == rep)
+     return;
+ 
+   group->m_color_rep = rep;
+   gcc_checking_assert (multiple_p (group->stride, rep->stride));
+   unsigned int factor = group->stride / rep->stride;
+   gcc_checking_assert (rep_offset >= allocno->offset * factor);
+   group->color_rep_offset = rep_offset - allocno->offset * factor;
+   merge_fpr_info (rep, group, group->color_rep_offset);
+ }
+ 
+ // REP1 and REP2 are color representatives.  Change REP1's color representative
+ // to REP2, with REP1 starting at allocno offset REP2_OFFSET into REP2.
+ void
+ early_ra::set_color_rep (allocno_group_info *rep1, allocno_group_info *rep2,
+ 			 unsigned int rep2_offset)
+ {
+   gcc_checking_assert (rep1 != rep2
+ 		       && rep2->m_color_rep == rep2
+ 		       && multiple_p (rep1->stride, rep2->stride));
+ 
+   auto heads1 = rep1->chain_heads ();
+   auto heads2 = rep2->chain_heads ();
+   for (unsigned int i1 = 0; i1 < heads1.size (); ++i1)
+     if (heads1[i1] != INVALID_ALLOCNO)
+       {
+ 	unsigned int i2 = rep2_offset + i1 * rep1->stride / rep2->stride;
+ 	if (heads2[i2] == INVALID_ALLOCNO)
+ 	  heads2[i2] = heads1[i1];
+ 	else
+ 	  gcc_checking_assert (heads2[i2] == heads1[i1]);
+ 	set_single_color_rep (m_allocnos[heads1[i1]], rep2, i2);
+       }
+ }
+ 
+ // Try to chain ALLOCNO1 to the head of the chain starting at ALLOCNO2.
+ // Return true on success.
+ bool
+ early_ra::try_to_chain_allocnos (allocno_info *allocno1,
+ 				 allocno_info *allocno2)
+ {
+   auto *group1 = allocno1->group ()->color_rep ();
+   auto *group2 = allocno2->group ()->color_rep ();
+ 
+   // Avoid trying to tie different subgroups of the same group.  This can
+   // happen if the parts of a register are defined and used piecemeal.
+   if (group1 == group2)
+     return false;
+ 
+   // The stride (in FPRs) between allocnos of each color representative.
+   auto fpr_stride1 = group1->stride;
+   auto fpr_stride2 = group2->stride;
+ 
+   // The offset (in FPRs) of each allocno group from its color representative.
+   auto fpr_offset1 = allocno1->group ()->color_rep_offset * fpr_stride1;
+   auto fpr_offset2 = allocno2->group ()->color_rep_offset * fpr_stride2;
+ 
+   // The offset (in FPRs) of each allocno from its color representative.
+   fpr_offset1 += allocno1->offset * allocno1->group ()->stride;
+   fpr_offset2 += allocno2->offset * allocno2->group ()->stride;
+ 
+   // The FPR overlap is in multiples of the larger stride.
+   auto max_fpr_stride = std::max (fpr_stride1, fpr_stride2);
+   auto min_fpr_offset = std::min (fpr_offset1, fpr_offset2);
+   auto fpr_overlap_offset = ROUND_DOWN (min_fpr_offset, max_fpr_stride);
+ 
+   // The offset (in FPRs) of the start of the overlapping region from
+   // each color representative.
+   fpr_offset1 -= fpr_overlap_offset;
+   fpr_offset2 -= fpr_overlap_offset;
+ 
+   // The number of FPRs in each color representative after the start
+   // of the overlapping region.
+   auto fpr_after1 = (group1->size - 1) * fpr_stride1 - fpr_offset1;
+   auto fpr_after2 = (group2->size - 1) * fpr_stride2 - fpr_offset2;
+ 
+   auto min_fpr_after = std::min (fpr_after1, fpr_after2);
+ 
+   // The number of overlapping allocnos.
+   auto allocno_overlap_size = min_fpr_after / max_fpr_stride + 1;
+ 
+   // The offset (in allocnos) of the overlapping region from the start
+   // of each color representative.
+   auto allocno_offset1 = fpr_offset1 / fpr_stride1;
+   auto allocno_offset2 = fpr_offset2 / fpr_stride2;
+ 
+   // The stride (in allocnos) between overlapping allocnos.
+   auto allocno_stride1 = max_fpr_stride / fpr_stride1;
+   auto allocno_stride2 = max_fpr_stride / fpr_stride2;
+ 
+   // Reject combinations that are impossible to allocate.
+   auto fprs1 = group1->fpr_candidates;
+   auto fprs2 = group2->fpr_candidates;
+   if (fpr_offset1 > fpr_offset2)
+     fprs2 >>= (fpr_offset1 - fpr_offset2);
+   else
+     fprs1 >>= (fpr_offset2 - fpr_offset1);
+   if ((fprs1 & fprs2) == 0)
+     {
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	fprintf (dump_file, "    - cannot chain %d->%d, no FPRs in common"
+ 		 " (%08x@%d and %08x@%d)\n", allocno1->id, allocno2->id,
+ 		 group1->fpr_candidates, fpr_offset1,
+ 		 group2->fpr_candidates, fpr_offset2);
+       return false;
+     }
+ 
+   // Check whether the chain can be formed.
+   auto heads1 = group1->chain_heads ();
+   auto heads2 = group2->chain_heads ();
+   for (unsigned int i = 0; i < allocno_overlap_size; ++i)
+     {
+       auto headi1 = heads1[allocno_offset1 + i * allocno_stride1];
+       auto headi2 = heads2[allocno_offset2 + i * allocno_stride2];
+       if (headi1 != INVALID_ALLOCNO && headi2 != INVALID_ALLOCNO)
+ 	{
+ 	  auto *head1 = m_allocnos[headi1];
+ 	  auto *head2 = m_allocnos[headi2];
+ 	  if (head1->chain_next != INVALID_ALLOCNO)
+ 	    return false;
+ 	  if (!is_chain_candidate (head1, head2, CORRECTNESS_ONLY))
+ 	    return false;
+ 	}
+     }
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     {
+       fprintf (dump_file, "    - chaining allocnos [");
+       for (unsigned int i = 0; i < allocno_overlap_size; ++i)
+ 	fprintf (dump_file, "%s%d", i ? "," : "",
+ 		 heads1[allocno_offset1 + i * allocno_stride1]);
+       fprintf (dump_file, "] and [");
+       for (unsigned int i = 0; i < allocno_overlap_size; ++i)
+ 	fprintf (dump_file, "%s%d", i ? "," : "",
+ 		 heads2[allocno_offset2 + i * allocno_stride2]);
+       fprintf (dump_file, "]\n");
+     }
+ 
+   // Chain the allocnos, updating the chain heads.
+   for (unsigned int i = 0; i < allocno_overlap_size; ++i)
+     chain_allocnos (heads1[allocno_offset1 + i * allocno_stride1],
+ 		    heads2[allocno_offset2 + i * allocno_stride2]);
+ 
+   // Pick a color representative for the merged groups.
+   allocno_group_info *new_rep;
+   if (allocno_offset1 == 0
+       && group1->size == allocno_overlap_size * allocno_stride1
+       && multiple_p (fpr_stride1, fpr_stride2))
+     {
+       // The first group fits within the second.
+       set_color_rep (group1, group2, allocno_offset2);
+       new_rep = group2;
+     }
+   else if (allocno_offset2 == 0
+ 	   && group2->size == allocno_overlap_size * allocno_stride2
+ 	   && multiple_p (fpr_stride2, fpr_stride1))
+     {
+       // The second group fits within the first.
+       set_color_rep (group2, group1, allocno_offset1);
+       new_rep = group1;
+     }
+   else
+     {
+       // We need a new group that is big enough to span both groups.
+       // The new group always has an FPR stride of 1.
+       auto max_fpr_offset = std::max (fpr_offset1, fpr_offset2);
+       auto max_fpr_after = std::max (fpr_after1, fpr_after2);
+       auto new_size = max_fpr_offset + max_fpr_after + 1;
+       new_rep = create_allocno_group (INVALID_REGNUM, new_size);
+ 
+       set_color_rep (group1, new_rep, max_fpr_offset - fpr_offset1);
+       set_color_rep (group2, new_rep, max_fpr_offset - fpr_offset2);
+     }
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     {
+       fprintf (dump_file, "    - new frontier [");
+       auto new_heads = new_rep->chain_heads ();
+       for (unsigned int i = 0; i < new_heads.size (); ++i)
+ 	{
+ 	  if (i)
+ 	    fprintf (dump_file, ",");
+ 	  if (new_heads[i] == INVALID_ALLOCNO)
+ 	    fprintf (dump_file, "-");
+ 	  else
+ 	    fprintf (dump_file, "%d", new_heads[i]);
+ 	}
+       fprintf (dump_file, "]\n");
+     }
+ 
+   return true;
+ }
+ 
+ // Create a color_info for color representative GROUP.
+ void
+ early_ra::create_color (allocno_group_info *group)
+ {
+   auto *color = region_allocate<color_info> ();
+   color->id = m_colors.length ();
+   color->hard_regno = FIRST_PSEUDO_REGISTER;
+   color->group = group;
+ 
+   gcc_checking_assert (group->m_color_rep == group);
+   group->has_color = true;
+   group->color = m_colors.length ();
+ 
+   m_colors.safe_push (color);
+ }
+ 
+ // Form allocnos into chains.  Create colors for each resulting clique.
+ void
+ early_ra::form_chains ()
+ {
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     fprintf (dump_file, "\nChaining allocnos:\n");
+ 
+   // Perform (modified) interval graph coloring.  First sort by
+   // increasing start point.
+   m_sorted_allocnos.reserve (m_allocnos.length ());
+   m_sorted_allocnos.splice (m_allocnos);
+   m_sorted_allocnos.qsort (cmp_increasing<&allocno_info::start_point>);
+ 
+   // During this phase, color representatives are only correct for
+   // unprocessed allocno groups (where the color representative is
+   // the group itself) and for groups that contain a current chain head.
+   unsigned int ti = 0;
+   auto_vec<chain_candidate_info> candidates;
+   for (unsigned int hi = 0; hi < m_sorted_allocnos.length (); ++hi)
+     {
+       auto *allocno1 = m_sorted_allocnos[hi];
+       if (allocno1->chain_next != INVALID_ALLOCNO)
+ 	continue;
+ 
+       // Record conflicts with direct uses for FPR hard registers.
+       auto *group1 = allocno1->group ();
+       for (unsigned int fpr = allocno1->offset; fpr < 32; ++fpr)
+ 	if (fpr_conflicts_with_allocno_p (fpr, allocno1))
+ 	  group1->fpr_candidates &= ~(1U << (fpr - allocno1->offset));
+ 
+       // Record conflicts due to partially call-clobbered registers.
+       // (Full clobbers are handled by the previous loop.)
+       for (unsigned int abi_id = 0; abi_id < NUM_ABI_IDS; ++abi_id)
+ 	if (call_in_range_p (abi_id, allocno1->start_point,
+ 			     allocno1->end_point))
+ 	  {
+ 	    auto fprs = partial_fpr_clobbers (abi_id, group1->fpr_size);
+ 	    group1->fpr_candidates &= ~fprs >> allocno1->offset;
+ 	  }
+ 
+       if (allocno1->is_shared ())
+ 	{
+ 	  if (dump_file && (dump_flags & TDF_DETAILS))
+ 	    fprintf (dump_file, "  Allocno %d shares the same hard register"
+ 		     " as allocno %d\n", allocno1->id,
+ 		     allocno1->related_allocno);
+ 	  auto *allocno2 = m_allocnos[allocno1->related_allocno];
+ 	  merge_fpr_info (allocno2->group (), group1, allocno2->offset);
+ 	  m_shared_allocnos.safe_push (allocno1);
+ 	  continue;
+ 	}
+ 
+       // Find earlier allocnos (in processing order) that could be chained
+       // to this one.
+       candidates.truncate (0);
+       for (unsigned int sci = ti; sci < hi; ++sci)
+ 	{
+ 	  auto *allocno2 = m_sorted_allocnos[sci];
+ 	  if (allocno2->chain_prev == INVALID_ALLOCNO)
+ 	    {
+ 	      if (!is_chain_candidate (allocno1, allocno2, ALL_REASONS))
+ 		continue;
+ 	      chain_candidate_info candidate;
+ 	      candidate.allocno = allocno2;
+ 	      candidate.score = rate_chain (allocno1, allocno2);
+ 	      candidates.safe_push (candidate);
+ 	    }
+ 	  else if (sci == ti)
+ 	    ++ti;
+ 	}
+ 
+       // Sort the candidates by decreasing score.
+       candidates.qsort (cmp_chain_candidates);
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	{
+ 	  fprintf (dump_file, "  Chain candidates for %d:", allocno1->id);
+ 	  for (auto &candidate : candidates)
+ 	    fprintf (dump_file, " %d(%d)", candidate.allocno->id,
+ 		     candidate.score);
+ 	  fprintf (dump_file, "\n");
+ 	}
+ 
+       // Pick the first candidate that works.
+       for (auto &candidate : candidates)
+ 	if (try_to_chain_allocnos (allocno1, candidate.allocno))
+ 	  break;
+     }
+ 
+   // Create color_infos for each group.  Make sure that each group's
+   // color representative is up to date.
+   for (unsigned int hi = m_sorted_allocnos.length (); hi-- > 0; )
+     {
+       auto *allocno = m_sorted_allocnos[hi];
+       if (allocno->is_shared ())
+ 	continue;
+ 
+       auto *rep = allocno->group ()->color_rep ();
+       if (rep->has_color)
+ 	continue;
+ 
+       create_color (rep);
+       auto heads = rep->chain_heads ();
+       for (unsigned int i = 0; i < heads.size (); ++i)
+ 	{
+ 	  unsigned int ai = heads[i];
+ 	  while (ai != INVALID_ALLOCNO)
+ 	    {
+ 	      allocno = m_allocnos[ai];
+ 	      set_single_color_rep (allocno, rep, i * rep->stride);
+ 	      ai = allocno->chain_next;
+ 	    }
+ 	}
+     }
+ }
+ 
+ // Return true if the given FPR (starting at 0) conflicts with allocno
+ // ALLOCNO.
+ bool
+ early_ra::fpr_conflicts_with_allocno_p (unsigned int fpr,
+ 					allocno_info *allocno)
+ {
+   auto &ranges = m_fpr_ranges[fpr];
+   unsigned int start_i = 0;
+   unsigned int end_i = ranges.length ();
+   while (start_i < end_i)
+     {
+       unsigned int mid_i = (start_i + end_i) / 2;
+       auto &range = ranges[mid_i];
+       if (allocno->end_point > range.start_point)
+ 	start_i = mid_i + 1;
+       else if (allocno->start_point < range.end_point)
+ 	end_i = mid_i;
+       else
+ 	{
+ 	  if (range.allocno != allocno->id)
+ 	    return true;
+ 	  // The FPR is equivalent to ALLOCNO for this particular range.
+ 	  // See whether ALLOCNO conflicts with a neighboring range.
+ 	  if (mid_i > 0
+ 	      && ranges[mid_i - 1].start_point >= allocno->end_point)
+ 	    return true;
+ 	  if (mid_i + 1 < ranges.length ()
+ 	      && ranges[mid_i + 1].end_point <= allocno->start_point)
+ 	    return true;
+ 	  return false;
+ 	}
+     }
+   return false;
+ }
+ 
+ // Return true if there is a call with ABI identifier ABI_ID in the inclusive
+ // program point range [START_POINT, END_POINT].
+ bool
+ early_ra::call_in_range_p (unsigned int abi_id, unsigned int start_point,
+ 			   unsigned int end_point)
+ {
+   auto &points = m_call_points[abi_id];
+   unsigned int start_i = 0;
+   unsigned int end_i = points.length ();
+   while (start_i < end_i)
+     {
+       unsigned int mid_i = (start_i + end_i) / 2;
+       auto point = points[mid_i];
+       if (end_point > point)
+ 	start_i = mid_i + 1;
+       else if (start_point < point)
+ 	end_i = mid_i;
+       else
+ 	return true;
+     }
+   return false;
+ }
+ 
+ // Return the set of FPRs for which a value of size SIZE will be clobbered
+ // by a call to a function with ABI identifier ABI_ID, but would not be
+ // for some smaller size.  The set therefore excludes FPRs that are
+ // fully-clobbered, like V0 in the base ABI.
+ unsigned int
+ early_ra::partial_fpr_clobbers (unsigned int abi_id, fpr_size_info size)
+ {
+   auto &abi = function_abis[abi_id];
+   unsigned int clobbers = 0;
+   machine_mode mode = (size == FPR_D ? V8QImode
+ 		       : size == FPR_Q ? V16QImode : VNx16QImode);
+   for (unsigned int regno = V0_REGNUM; regno <= V31_REGNUM; ++regno)
+     if (!abi.clobbers_full_reg_p (regno)
+ 	&& abi.clobbers_reg_p (mode, regno))
+       clobbers |= 1U << (regno - V0_REGNUM);
+   return clobbers;
+ }
+ 
+ // Process copies between pseudo registers and hard registers and update
+ // the FPR preferences for the associated colors.
+ void
+ early_ra::process_copies ()
+ {
+   for (auto &copy : m_allocno_copies)
+     {
+       auto *allocno = m_allocnos[copy.allocno];
+       auto *group = allocno->group ();
+       auto offset = group->color_rep_offset + allocno->offset;
+       if (offset > copy.fpr)
+ 	continue;
+ 
+       unsigned int fpr = copy.fpr - offset;
+       auto *color = m_colors[group->color_rep ()->color];
+       color->fpr_preferences[fpr] = MIN (color->fpr_preferences[fpr]
+ 					 + copy.weight, 127);
+       color->num_fpr_preferences += copy.weight;
+     }
+ }
+ 
+ // Compare the colors at *COLOR1_PTR and *COLOR2_PTR and return a <=>
+ // result that puts colors in allocation order.
+ int
+ early_ra::cmp_allocation_order (const void *color1_ptr, const void *color2_ptr)
+ {
+   auto *color1 = *(color_info *const *) color1_ptr;
+   auto *color2 = *(color_info *const *) color2_ptr;
+ 
+   // Allocate bigger groups before smaller groups.
+   if (color1->group->size != color2->group->size)
+     return color1->group->size > color2->group->size ? -1 : 1;
+ 
+   // Allocate groups with stronger FPR preferences before groups with weaker
+   // FPR preferences.
+   if (color1->num_fpr_preferences != color2->num_fpr_preferences)
+     return color1->num_fpr_preferences > color2->num_fpr_preferences ? -1 : 1;
+ 
+   return (color1->id < color2->id ? -1
+ 	  : color1->id == color2->id ? 0 : 1);
+ }
+ 
+ // Allocate a register to each color.  If we run out of registers,
+ // give up on doing a full allocation of the FPR-based pseudos in the
+ // region.
+ void
+ early_ra::allocate_colors ()
+ {
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     fprintf (dump_file, "\nAllocating registers:\n");
+ 
+   auto_vec<color_info *> sorted_colors;
+   sorted_colors.safe_splice (m_colors);
+   sorted_colors.qsort (cmp_allocation_order);
+ 
+   for (unsigned int i = 0; i < 32; ++i)
+     if (!crtl->abi->clobbers_full_reg_p (V0_REGNUM + i))
+       m_call_preserved_fprs |= 1U << i;
+ 
+   for (auto *color : sorted_colors)
+     {
+       unsigned int candidates = color->group->fpr_candidates;
+       for (unsigned int i = 0; i < color->group->size; ++i)
+ 	candidates &= ~(m_allocated_fprs >> i);
+       unsigned int best = INVALID_REGNUM;
+       int best_weight = 0;
+       unsigned int best_recency = 0;
+       for (unsigned int fpr = 0; fpr <= 32U - color->group->size; ++fpr)
+ 	{
+ 	  if ((candidates & (1U << fpr)) == 0)
+ 	    continue;
+ 	  int weight = color->fpr_preferences[fpr];
+ 	  unsigned int recency = 0;
+ 	  // Account for registers that the current function must preserve.
+ 	  for (unsigned int i = 0; i < color->group->size; ++i)
+ 	    {
+ 	      if (m_call_preserved_fprs & (1U << (fpr + i)))
+ 		weight -= 1;
+ 	      recency = MAX (recency, m_fpr_recency[fpr + i]);
+ 	    }
+ 	  // Prefer higher-numbered registers in the event of a tie.
+ 	  // This should tend to keep lower-numbered registers free
+ 	  // for allocnos that require V0-V7 or V0-V15.
+ 	  if (best == INVALID_REGNUM
+ 	      || best_weight < weight
+ 	      || (best_weight == weight && recency <= best_recency))
+ 	    {
+ 	      best = fpr;
+ 	      best_weight = weight;
+ 	      best_recency = recency;
+ 	    }
+ 	}
+ 
+       if (best == INVALID_REGNUM)
+ 	{
+ 	  m_allocation_successful = false;
+ 	  return;
+ 	}
+ 
+       color->hard_regno = best + V0_REGNUM;
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	fprintf (dump_file, "  Allocating [v%d:v%d] to color %d\n",
+ 		 best, best + color->group->size - 1, color->id);
+       m_allocated_fprs |= ((1U << color->group->size) - 1) << best;
+     }
+ }
+ 
+ // See if ALLOCNO ends a subchain of single registers that can be split
+ // off without affecting the rest of the chain, and without introducing
+ // any moves.  Return the start of the chain if so (which might be ALLOCNO
+ // itself), otherwise return null.
+ early_ra::allocno_info *
+ early_ra::find_independent_subchain (allocno_info *allocno)
+ {
+   // Make sure ALLOCNO ends a natural subchain.
+   if (auto *next_allocno = chain_next (allocno))
+     if (next_allocno->start_point + 1 >= allocno->end_point)
+       return nullptr;
+ 
+   // Check the allocnos in the purported subchain and find the other end.
+   for (;;)
+     {
+       auto *group = allocno->group ();
+       if (group->m_color_rep == group)
+ 	return nullptr;
+       if (group->size != 1)
+ 	return nullptr;
+ 
+       auto *prev_allocno = chain_prev (allocno);
+       if (!prev_allocno || allocno->start_point + 1 < prev_allocno->end_point)
+ 	return allocno;
+ 
+       allocno = prev_allocno;
+     }
+ }
+ 
+ // Search the colors starting at index FIRST_COLOR whose FPRs do not belong
+ // to FPR_CONFLICTS.  Return the first such color that has no group.  If all
+ // such colors have groups, instead return the color with the latest
+ // (smallest) start point.
+ early_ra::color_info *
+ early_ra::find_oldest_color (unsigned int first_color,
+ 			     unsigned int fpr_conflicts)
+ {
+   color_info *best = nullptr;
+   unsigned int best_start_point = ~0U;
+   unsigned int best_recency = 0;
+   for (unsigned int ci = first_color; ci < m_colors.length (); ++ci)
+     {
+       auto *color = m_colors[ci];
+       unsigned int fpr = color->hard_regno - V0_REGNUM;
+       if (fpr_conflicts & (1U << fpr))
+ 	continue;
+       unsigned int start_point = 0;
+       if (color->group)
+ 	{
+ 	  auto chain_head = color->group->chain_heads ()[0];
+ 	  start_point = m_allocnos[chain_head]->start_point;
+ 	}
+       unsigned int recency = m_fpr_recency[fpr];
+       if (!best
+ 	  || best_start_point > start_point
+ 	  || (best_start_point == start_point && recency < best_recency))
+ 	{
+ 	  best = color;
+ 	  best_start_point = start_point;
+ 	  best_recency = recency;
+ 	}
+     }
+   return best;
+ }
+ 
+ // If there are some spare FPRs that can be reused without introducing saves,
+ // restores, or moves, use them to "broaden" the allocation, in order to give
+ // the scheduler more freedom.  This is particularly useful for forming LDPs
+ // and STPs.
+ void
+ early_ra::broaden_colors ()
+ {
+   // Create dummy colors for every leftover FPR that can be used cheaply.
+   unsigned int first_color = m_colors.length ();
+   for (unsigned int fpr = 0; fpr < 32; ++fpr)
+     if (((m_allocated_fprs | m_call_preserved_fprs) & (1U << fpr)) == 0)
+       {
+ 	auto *color = region_allocate<color_info> ();
+ 	color->id = m_colors.length ();
+ 	color->hard_regno = V0_REGNUM + fpr;
+ 	color->group = nullptr;
+ 	m_colors.safe_push (color);
+       }
+ 
+   // Exit early if there are no spare FPRs.
+   if (first_color == m_colors.length ())
+     return;
+ 
+   // Go through the allocnos in order, seeing if there is a subchain of
+   // single-FPR allocnos that can be split off from the containingg clique.
+   // Allocate such subchains to the new colors on an oldest-first basis.
+   for (auto *allocno : m_sorted_allocnos)
+     if (auto *start_allocno = find_independent_subchain (allocno))
+       {
+ 	unsigned int fpr_conflicts = 0;
+ 	auto *member = allocno;
+ 	for (;;)
+ 	  {
+ 	    fpr_conflicts |= ~member->group ()->fpr_candidates;
+ 	    if (member == start_allocno)
+ 	      break;
+ 	    member = m_allocnos[member->chain_prev];
+ 	  }
+ 
+ 	auto *color = find_oldest_color (first_color, fpr_conflicts);
+ 	if (!color)
+ 	  continue;
+ 
+ 	if (!color->group)
+ 	  {
+ 	    auto *group = allocno->group ();
+ 	    color->group = group;
+ 	    group->color = color->id;
+ 	    group->chain_heads ()[0] = INVALID_ALLOCNO;
+ 	  }
+ 	else
+ 	  {
+ 	    auto chain_head = color->group->chain_heads ()[0];
+ 	    auto start_point = m_allocnos[chain_head]->start_point;
+ 	    if (start_point >= allocno->end_point)
+ 	      // Allocating to COLOR isn't viable, and it was the best
+ 	      // option available.
+ 	      continue;
+ 
+ 	    auto *next_allocno = chain_next (allocno);
+ 	    if (!next_allocno || next_allocno->start_point <= start_point)
+ 	      // The current allocation gives at least as much scheduling
+ 	      // freedom as COLOR would.
+ 	      continue;
+ 	  }
+ 
+ 	// Unlink the chain.
+ 	if (auto *next_allocno = chain_next (allocno))
+ 	  next_allocno->chain_prev = start_allocno->chain_prev;
+ 	if (auto *prev_allocno = chain_prev (start_allocno))
+ 	  prev_allocno->chain_next = allocno->chain_next;
+ 
+ 	// Make the subchain use COLOR.
+ 	allocno->chain_next = color->group->chain_heads ()[0];
+ 	if (dump_file && (dump_flags & TDF_DETAILS))
+ 	  fprintf (dump_file, "Moving to optional color %d (register %s):",
+ 		   color->id, reg_names[color->hard_regno]);
+ 	for (;;)
+ 	  {
+ 	    auto *group = allocno->group ();
+ 	    if (dump_file && (dump_flags & TDF_DETAILS))
+ 	      fprintf (dump_file, " r%d", group->regno);
+ 	    group->m_color_rep = color->group;
+ 	    group->color_rep_offset = 0;
+ 	    if (allocno == start_allocno)
+ 	      break;
+ 	    allocno = m_allocnos[allocno->chain_prev];
+ 	  }
+ 	if (dump_file && (dump_flags & TDF_DETAILS))
+ 	  fprintf (dump_file, "\n");
+ 	color->group->chain_heads ()[0] = start_allocno->id;
+       }
+ }
+ 
+ // Record the final choice of hard register for each allocno.
+ void
+ early_ra::finalize_allocation ()
+ {
+   for (auto *color : m_colors)
+     if (color->group)
+       {
+ 	unsigned int fpr = color->hard_regno - V0_REGNUM;
+ 	for (unsigned int i = 0; i < color->group->size; ++i)
+ 	  m_fpr_recency[fpr + i] = m_current_region;
+       }
+   for (auto *allocno : m_allocnos)
+     {
+       if (allocno->is_shared ())
+ 	continue;
+       auto *group = allocno->group ();
+       auto *rep = group->color_rep ();
+       auto rep_regno = m_colors[rep->color]->hard_regno;
+       auto group_regno = rep_regno + group->color_rep_offset;
+       allocno->hard_regno = group_regno + allocno->offset * group->stride;
+     }
+   for (auto *allocno : m_shared_allocnos)
+     allocno->hard_regno = m_allocnos[allocno->related_allocno]->hard_regno;
+ }
+ 
+ // Replace any allocno references in REFS with the allocated register.
+ // INSN is the instruction that contains REFS.
+ bool
+ early_ra::replace_regs (rtx_insn *insn, df_ref refs)
+ {
+   bool changed = false;
+   for (df_ref ref = refs; ref; ref = DF_REF_NEXT_LOC (ref))
+     {
+       auto range = get_allocno_subgroup (DF_REF_REG (ref));
+       if (!range)
+ 	continue;
+ 
+       auto new_regno = range.allocno (0)->hard_regno;
+       if (new_regno == FIRST_PSEUDO_REGISTER)
+ 	{
+ 	  // Reset a debug instruction if, after DCE, the only remaining
+ 	  // references to a register are in such instructions.
+ 	  gcc_assert (DEBUG_INSN_P (insn));
+ 	  INSN_VAR_LOCATION_LOC (insn) = gen_rtx_UNKNOWN_VAR_LOC ();
+ 	  return true;
+ 	}
+       *DF_REF_LOC (ref) = gen_rtx_REG (GET_MODE (DF_REF_REG (ref)), new_regno);
+       changed = true;
+     }
+   return changed;
+ }
+ 
+ // Try to make INSN match its FPR-related constraints.  If this needs
+ // a source operand (SRC) to be copied to a destination operand (DEST)
+ // before INSN, add the associated (DEST, SRC) pairs to MOVES.
+ //
+ // Return -1 on failure, otherwise return a ?/!-style reject count.
+ // The reject count doesn't model the moves, just the internal alternative
+ // preferences.
+ int
+ early_ra::try_enforce_constraints (rtx_insn *insn,
+ 				   vec<std::pair<int, int>> &moves)
+ {
+   if (!constrain_operands (0, get_preferred_alternatives (insn)))
+     return -1;
+ 
+   // Pick the alternative with the lowest cost.
+   int best = -1;
+   auto alts = get_preferred_alternatives (insn);
+   for (int altno = 0; altno < recog_data.n_alternatives; ++altno)
+     {
+       if (!(alts & ALTERNATIVE_BIT (altno)))
+ 	continue;
+ 
+       auto *op_alt = &recog_op_alt[altno * recog_data.n_operands];
+       if (!likely_alternative_match_p (op_alt))
+ 	continue;
+ 
+       auto_vec<std::pair<int, int>, 4> new_moves;
+       for (int opno = 0; opno < recog_data.n_operands; ++opno)
+ 	{
+ 	  rtx op = recog_data.operand[opno];
+ 	  if (REG_P (op)
+ 	      && FP_REGNUM_P (REGNO (op))
+ 	      && op_alt[opno].matched >= 0)
+ 	    {
+ 	      rtx old_src = recog_data.operand[op_alt[opno].matched];
+ 	      if (!operands_match_p (op, old_src))
+ 		{
+ 		  for (int i = 0; i < recog_data.n_operands; ++i)
+ 		    if (i != opno)
+ 		      {
+ 			rtx other = recog_data.operand[i];
+ 			if (reg_overlap_mentioned_p (op, other))
+ 			  {
+ 			    old_src = NULL_RTX;
+ 			    break;
+ 			  }
+ 		      }
+ 		  if (!old_src)
+ 		    continue;
+ 		  new_moves.safe_push ({ opno, op_alt[opno].matched });
+ 		}
+ 	    }
+ 	}
+       int cost = count_rejects (op_alt) + new_moves.length () * 7;
+       if (best < 0 || cost < best)
+ 	{
+ 	  best = cost;
+ 	  moves.truncate (0);
+ 	  moves.safe_splice (new_moves);
+ 	}
+     }
+   return best;
+ }
+ 
+ // Make INSN matches its FPR-related constraints.
+ void
+ early_ra::enforce_constraints (rtx_insn *insn)
+ {
+   extract_insn (insn);
+   preprocess_constraints (insn);
+ 
+   // First try with the operands they are.
+   auto_vec<std::pair<int, int>, 4> moves;
+   int cost = try_enforce_constraints (insn, moves);
+ 
+   // Next try taking advantage of commutativity.
+   for (int opno = 0; opno < recog_data.n_operands - 1; ++opno)
+     if (recog_data.constraints[opno][0] == '%')
+       {
+ 	std::swap (*recog_data.operand_loc[opno],
+ 		   *recog_data.operand_loc[opno + 1]);
+ 	std::swap (recog_data.operand[opno],
+ 		   recog_data.operand[opno + 1]);
+ 	auto_vec<std::pair<int, int>, 4> swapped_moves;
+ 	int swapped_cost = try_enforce_constraints (insn, swapped_moves);
+ 	if (swapped_cost >= 0 && (cost < 0 || swapped_cost < cost))
+ 	  {
+ 	    cost = swapped_cost;
+ 	    moves.truncate (0);
+ 	    moves.safe_splice (swapped_moves);
+ 	  }
+ 	else
+ 	  {
+ 	    std::swap (*recog_data.operand_loc[opno],
+ 		       *recog_data.operand_loc[opno + 1]);
+ 	    std::swap (recog_data.operand[opno],
+ 		       recog_data.operand[opno + 1]);
+ 	  }
+       }
+ 
+   // The allocation should ensure that there is at least one valid combination.
+   // It's too late to back out now if not.
+   gcc_assert (cost >= 0);
+   for (int i = 0; i < recog_data.n_dups; ++i)
+     {
+       int dup_of = recog_data.dup_num[i];
+       rtx new_op = *recog_data.operand_loc[dup_of];
+       if (new_op != recog_data.operand[dup_of])
+ 	*recog_data.dup_loc[i] = copy_rtx (new_op);
+     }
+   for (auto move : moves)
+     {
+       int dest_opno = move.first;
+       int src_opno = move.second;
+       rtx dest = recog_data.operand[dest_opno];
+       rtx old_src = recog_data.operand[src_opno];
+       rtx new_src = lowpart_subreg (GET_MODE (old_src), dest, GET_MODE (dest));
+       emit_insn_before (gen_move_insn (new_src, old_src), insn);
+       *recog_data.operand_loc[src_opno] = new_src;
+     }
+ }
+ 
+ // See whether INSN is an instruction that operates on multi-register vectors,
+ // and if we have decided to make it use strided rather than consecutive
+ // accesses.  Update the pattern and return true if so.
+ bool
+ early_ra::maybe_convert_to_strided_access (rtx_insn *insn)
+ {
+   if (!NONJUMP_INSN_P (insn) || recog_memoized (insn) < 0)
+     return false;
+ 
+   auto stride_type = get_attr_stride_type (insn);
+   rtx pat = PATTERN (insn);
+   rtx op;
+   if (stride_type == STRIDE_TYPE_LD1_CONSECUTIVE)
+     op = SET_DEST (pat);
+   else if (stride_type == STRIDE_TYPE_ST1_CONSECUTIVE)
+     op = XVECEXP (SET_SRC (pat), 0, 1);
+   else
+     return false;
+ 
+   auto range = get_allocno_subgroup (op);
+   if (!range || range.group->stride == 1)
+     return false;
+ 
+   gcc_assert (range.start == 0 && range.count == range.group->size);
+   auto elt_mode = GET_MODE_INNER (GET_MODE (op));
+   auto single_mode = aarch64_full_sve_mode (elt_mode).require ();
+   auto_vec<rtx, 4> regs;
+   for (unsigned int i = 0; i < range.count; ++i)
+     regs.quick_push (gen_rtx_REG (single_mode, range.allocno (i)->hard_regno));
+ 
+   extract_insn (insn);
+   if (stride_type == STRIDE_TYPE_LD1_CONSECUTIVE)
+     {
+       auto unspec = XINT (SET_SRC (pat), 1);
+       if (range.count == 2)
+ 	pat = gen_aarch64_strided2 (unspec, GET_MODE (op), regs[0], regs[1],
+ 				    recog_data.operand[1],
+ 				    recog_data.operand[2]);
+       else
+ 	pat = gen_aarch64_strided4 (unspec, GET_MODE (op),
+ 				    regs[0], regs[1], regs[2], regs[3],
+ 				    recog_data.operand[1],
+ 				    recog_data.operand[2]);
+     }
+   else if (stride_type == STRIDE_TYPE_ST1_CONSECUTIVE)
+     {
+       auto unspec = XINT (SET_SRC (pat), 1);
+       if (range.count == 2)
+ 	pat = gen_aarch64_strided2 (unspec, GET_MODE (op),
+ 				    recog_data.operand[0],
+ 				    recog_data.operand[2], regs[0], regs[1]);
+       else
+ 	pat = gen_aarch64_strided4 (unspec, GET_MODE (op),
+ 				    recog_data.operand[0],
+ 				    recog_data.operand[2],
+ 				    regs[0], regs[1], regs[2], regs[3]);
+       // Ensure correct sharing for the source memory.
+       //
+       // ??? Why doesn't the generator get this right?
+       XVECEXP (SET_SRC (pat), 0, XVECLEN (SET_SRC (pat), 0) - 1)
+ 	= *recog_data.dup_loc[0];
+     }
+   else
+     gcc_unreachable ();
+   PATTERN (insn) = pat;
+   INSN_CODE (insn) = -1;
+   df_insn_rescan (insn);
+   return true;
+ }
+ 
+ // We've successfully allocated the current region.  Apply the allocation
+ // to the instructions.
+ void
+ early_ra::apply_allocation ()
+ {
+   for (auto *insn : m_dead_insns)
+     set_insn_deleted (insn);
+ 
+   rtx_insn *prev;
+   for (auto insn_range : m_insn_ranges)
+     for (rtx_insn *insn = insn_range.first;
+ 	 insn != insn_range.second;
+ 	 insn = prev)
+       {
+ 	prev = PREV_INSN (insn);
+ 	if (!INSN_P (insn))
+ 	  continue;
+ 
+ 	bool changed = maybe_convert_to_strided_access (insn);
+ 	changed |= replace_regs (insn, DF_INSN_DEFS (insn));
+ 	changed |= replace_regs (insn, DF_INSN_USES (insn));
+ 	if (changed && NONDEBUG_INSN_P (insn))
+ 	  {
+ 	    if (GET_CODE (PATTERN (insn)) != USE
+ 		&& GET_CODE (PATTERN (insn)) != CLOBBER
+ 		&& !is_move_set (PATTERN (insn)))
+ 	      enforce_constraints (insn);
+ 
+ 	    // A REG_EQUIV note establishes an equivalence throughout
+ 	    // the function, but here we're reusing hard registers for
+ 	    // multiple pseudo registers.  We also no longer need REG_EQUIV
+ 	    // notes that record potential spill locations, since we've
+ 	    // allocated the pseudo register without spilling.
+ 	    rtx *ptr = &REG_NOTES (insn);
+ 	    while (*ptr)
+ 	      if (REG_NOTE_KIND (*ptr) == REG_EQUIV)
+ 		*ptr = XEXP (*ptr, 1);
+ 	      else
+ 		ptr = &XEXP (*ptr, 1);
+ 	  }
+ 	changed |= replace_regs (insn, DF_INSN_EQ_USES (insn));
+ 	if (changed)
+ 	  df_insn_rescan (insn);
+       }
+ 
+   for (auto *insn : m_dead_insns)
+     delete_insn (insn);
+ }
+ 
+ // Try to allocate the current region.  Update the instructions if successful.
+ void
+ early_ra::process_region ()
+ {
+   for (auto *allocno : m_allocnos)
+     {
+       allocno->chain_next = INVALID_ALLOCNO;
+       allocno->chain_prev = INVALID_ALLOCNO;
+     }
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     {
+       dump_fpr_ranges ();
+       dump_copies ();
+       dump_allocnos ();
+     }
+ 
+   find_strided_accesses ();
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     dump_allocnos ();
+ 
+   form_chains ();
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     dump_allocnos ();
+ 
+   process_copies ();
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     dump_colors ();
+ 
+   allocate_colors ();
+   if (!m_allocation_successful)
+     return;
+ 
+   broaden_colors ();
+   finalize_allocation ();
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     {
+       fprintf (dump_file, "\nAllocation successful\nFinal allocation:\n");
+       dump_allocnos ();
+       dump_colors ();
+     }
+ 
+   apply_allocation ();
+ }
+ 
+ // Return true if INSN would become dead if we successfully allocate the
+ // current region.
+ bool
+ early_ra::is_dead_insn (rtx_insn *insn)
+ {
+   rtx set = single_set (insn);
+   if (!set)
+     return false;
+ 
+   rtx dest = SET_DEST (set);
+   auto dest_range = get_allocno_subgroup (dest);
+   if (!dest_range)
+     return false;
+ 
+   for (auto &allocno : dest_range.allocnos ())
+     if (bitmap_bit_p (m_live_allocnos, allocno.id))
+       return false;
+ 
+   if (side_effects_p (set))
+     return false;
+ 
+   return true;
+ }
+ 
+ // Build up information about block BB.  IS_ISOLATED is true if the
+ // block is not part of a larger region.
+ void
+ early_ra::process_block (basic_block bb, bool is_isolated)
+ {
+   m_current_bb = bb;
+   m_current_point += 1;
+   m_current_bb_point = m_current_point;
+ 
+   // Process live-out FPRs.
+   bitmap live_out = df_get_live_out (bb);
+   for (unsigned int regno = V0_REGNUM; regno <= V31_REGNUM; ++regno)
+     if (bitmap_bit_p (live_out, regno))
+       record_fpr_use (regno);
+ 
+   // Process live-out allocnos.  We don't track individual FPR liveness
+   // across block boundaries, so we have to assume that the whole pseudo
+   // register is live.
+   bitmap_iterator bi;
+   unsigned int regno;
+   EXECUTE_IF_AND_IN_BITMAP (df_get_live_out (bb), m_fpr_pseudos,
+ 			    FIRST_PSEUDO_REGISTER, regno, bi)
+     {
+       auto range = get_allocno_subgroup (regno_reg_rtx[regno]);
+       for (auto &allocno : range.allocnos ())
+ 	record_allocno_use (&allocno);
+     }
+ 
+   m_current_point += 1;
+ 
+   record_artificial_refs (0);
+ 
+   bool is_first = true;
+   rtx_insn *start_insn = BB_END (bb);
+   rtx_insn *insn;
+   FOR_BB_INSNS_REVERSE (bb, insn)
+     {
+       if (!NONDEBUG_INSN_P (insn))
+ 	continue;
+ 
+       // CLOBBERs are used to prevent pseudos from being upwards exposed.
+       // We can ignore them if allocation is successful.
+       if (GET_CODE (PATTERN (insn)) == CLOBBER)
+ 	{
+ 	  if (get_allocno_subgroup (XEXP (PATTERN (insn), 0)))
+ 	    m_dead_insns.safe_push (insn);
+ 	  continue;
+ 	}
+ 
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	{
+ 	  if (is_first)
+ 	    fprintf (dump_file, "\nBlock %d:\n", bb->index);
+ 	  fprintf (dump_file, "%6d:", m_current_point);
+ 	  pretty_printer rtl_slim_pp;
+ 	  rtl_slim_pp.buffer->stream = dump_file;
+ 	  print_insn (&rtl_slim_pp, insn, 1);
+ 	  pp_flush (&rtl_slim_pp);
+ 	  fprintf (dump_file, "\n");
+ 	}
+       is_first = false;
+ 
+       if (is_dead_insn (insn))
+ 	{
+ 	  if (dump_file && (dump_flags & TDF_DETAILS))
+ 	    fprintf (dump_file, "%14s -- dead\n", "");
+ 	  m_dead_insns.safe_push (insn);
+ 	}
+       else
+ 	{
+ 	  record_insn_refs (insn);
+ 	  rtx pat = PATTERN (insn);
+ 	  if (is_move_set (pat))
+ 	    record_copy (SET_DEST (pat), SET_SRC (pat), true);
+ 	  else
+ 	    {
+ 	      extract_insn (insn);
+ 	      record_constraints (insn);
+ 	    }
+ 	}
+ 
+       // See whether we have a complete region, with no remaining live
+       // allocnos.
+       if (is_isolated
+ 	  && bitmap_empty_p (m_live_allocnos)
+ 	  && m_live_fprs == 0
+ 	  && m_allocation_successful
+ 	  && !m_allocnos.is_empty ())
+ 	{
+ 	  rtx_insn *prev_insn = PREV_INSN (insn);
+ 	  m_insn_ranges.safe_push ({ start_insn, prev_insn });
+ 	  process_region ();
+ 	  start_new_region ();
+ 	  is_first = true;
+ 	  start_insn = prev_insn;
+ 	}
+     }
+   m_insn_ranges.safe_push ({ start_insn, BB_HEAD (bb) });
+ 
+   record_artificial_refs (DF_REF_AT_TOP);
+ 
+   // Process live-in FPRs.
+   bitmap live_in = df_get_live_in (bb);
+   for (unsigned int regno = V0_REGNUM; regno <= V31_REGNUM; ++regno)
+     if (bitmap_bit_p (live_in, regno)
+ 	&& (m_live_fprs & (1U << (regno - V0_REGNUM))))
+       record_fpr_def (regno);
+ 
+   // Process live-in allocnos.
+   EXECUTE_IF_AND_IN_BITMAP (live_in, m_fpr_pseudos,
+ 			    FIRST_PSEUDO_REGISTER, regno, bi)
+     {
+       auto range = get_allocno_subgroup (regno_reg_rtx[regno]);
+       for (auto &allocno : range.allocnos ())
+ 	if (bitmap_bit_p (m_live_allocnos, allocno.id))
+ 	  record_allocno_def (&allocno);
+     }
+ 
+   m_current_point += 1;
+ 
+   bitmap_clear (m_live_allocnos);
+   m_live_fprs = 0;
+ }
+ 
+ // Divide the function into regions, such that there no edges into or out
+ // of the region have live "FPR pseudos".
+ void
+ early_ra::process_blocks ()
+ {
+   auto_sbitmap visited (last_basic_block_for_fn (m_fn));
+   auto_sbitmap fpr_pseudos_live_out (last_basic_block_for_fn (m_fn));
+   auto_sbitmap fpr_pseudos_live_in (last_basic_block_for_fn (m_fn));
+ 
+   bitmap_clear (visited);
+   bitmap_clear (fpr_pseudos_live_out);
+   bitmap_clear (fpr_pseudos_live_in);
+ 
+   // Record which blocks have live FPR pseudos on entry and exit.
+   basic_block bb;
+   FOR_EACH_BB_FN (bb, m_fn)
+     {
+       if (bitmap_intersect_p (df_get_live_out (bb), m_fpr_pseudos))
+ 	bitmap_set_bit (fpr_pseudos_live_out, bb->index);
+       if (bitmap_intersect_p (df_get_live_in (bb), m_fpr_pseudos))
+ 	bitmap_set_bit (fpr_pseudos_live_in, bb->index);
+     }
+ 
+   // This is incremented by 1 at the start of each region.
+   m_current_region = 0;
+   memset (m_fpr_recency, 0, sizeof (m_fpr_recency));
+ 
+   struct stack_node { edge_iterator ei; basic_block bb; };
+ 
+   auto_vec<stack_node, 32> stack;
+   auto_vec<basic_block, 32> region;
+ 
+   // Go through the function in reverse postorder and process the region
+   // containing each block.
+   unsigned int n_blocks = df_get_n_blocks (DF_FORWARD);
+   int *order = df_get_postorder (DF_FORWARD);
+   for (unsigned int bbi = 0; bbi < n_blocks; ++bbi)
+     {
+       basic_block bb = BASIC_BLOCK_FOR_FN (m_fn, order[bbi]);
+       if (bb->index < NUM_FIXED_BLOCKS)
+ 	continue;
+ 
+       if (!bitmap_set_bit (visited, bb->index))
+ 	continue;
+ 
+       // Process forward edges before backward edges (so push backward
+       // edges first).  Build the region in an approximation of reverse
+       // program order.
+       if (bitmap_bit_p (fpr_pseudos_live_in, bb->index))
+ 	stack.quick_push ({ ei_start (bb->preds), nullptr });
+       if (bitmap_bit_p (fpr_pseudos_live_out, bb->index))
+ 	stack.quick_push ({ ei_start (bb->succs), bb });
+       else
+ 	region.safe_push (bb);
+       while (!stack.is_empty ())
+ 	{
+ 	  auto &node = stack.last ();
+ 	  if (ei_end_p (node.ei))
+ 	    {
+ 	      if (node.bb)
+ 		region.safe_push (node.bb);
+ 	      stack.pop ();
+ 	      continue;
+ 	    }
+ 	  edge e = ei_edge (node.ei);
+ 	  if (node.bb)
+ 	    {
+ 	      // A forward edge from a node that has not yet been added
+ 	      // to region.
+ 	      if (bitmap_bit_p (fpr_pseudos_live_in, e->dest->index)
+ 		  && bitmap_set_bit (visited, e->dest->index))
+ 		{
+ 		  stack.safe_push ({ ei_start (e->dest->preds), nullptr });
+ 		  if (bitmap_bit_p (fpr_pseudos_live_out, e->dest->index))
+ 		    stack.safe_push ({ ei_start (e->dest->succs), e->dest });
+ 		  else
+ 		    region.safe_push (e->dest);
+ 		}
+ 	      else
+ 		ei_next (&node.ei);
+ 	    }
+ 	  else
+ 	    {
+ 	      // A backward edge from a node that has already been added
+ 	      // to the region.
+ 	      if (bitmap_bit_p (fpr_pseudos_live_out, e->src->index)
+ 		  && bitmap_set_bit (visited, e->src->index))
+ 		{
+ 		  if (bitmap_bit_p (fpr_pseudos_live_in, e->src->index))
+ 		    stack.safe_push ({ ei_start (e->src->preds), nullptr });
+ 		  stack.safe_push ({ ei_start (e->src->succs), e->src });
+ 		}
+ 	      else
+ 		ei_next (&node.ei);
+ 	    }
+ 	}
+ 
+       m_current_point = 2;
+       start_new_region ();
+ 
+       if (region.is_empty ())
+ 	process_block (bb, true);
+       else
+ 	{
+ 	  if (dump_file && (dump_flags & TDF_DETAILS))
+ 	    {
+ 	      fprintf (dump_file, "\nRegion (from %d):", bb->index);
+ 	      for (unsigned int j = 0; j < region.length (); ++j)
+ 		fprintf (dump_file, " %d", region[j]->index);
+ 	      fprintf (dump_file, "\n");
+ 	    }
+ 	  for (unsigned int j = 0; j < region.length (); ++j)
+ 	    {
+ 	      basic_block bb = region[j];
+ 	      bool is_isolated
+ 		= ((j == 0 && !bitmap_bit_p (fpr_pseudos_live_out, bb->index))
+ 		   || (j == region.length () - 1
+ 		       && !bitmap_bit_p (fpr_pseudos_live_in, bb->index)));
+ 	      process_block (bb, is_isolated);
+ 	    }
+ 	}
+       region.truncate (0);
+ 
+       if (!m_allocnos.is_empty () && m_allocation_successful)
+ 	process_region ();
+     }
+ }
+ 
+ // Run the pass on the current function.
+ void
+ early_ra::execute ()
+ {
+   df_analyze ();
+ 
+   preprocess_insns ();
+   propagate_pseudo_reg_info ();
+   choose_fpr_pseudos ();
+   if (bitmap_empty_p (m_fpr_pseudos))
+     return;
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     dump_pseudo_regs ();
+ 
+   process_blocks ();
+   df_verify ();
+ }
+ 
+ class pass_early_ra : public rtl_opt_pass
+ {
+ public:
+   pass_early_ra (gcc::context *ctxt)
+     : rtl_opt_pass (pass_data_early_ra, ctxt)
+   {}
+ 
+   // opt_pass methods:
+   virtual bool gate (function *);
+   virtual unsigned int execute (function *);
+ };
+ 
+ bool
+ pass_early_ra::gate (function *)
+ {
+   // Require a vector ISA to be enabled.
+   if (!TARGET_SIMD && !TARGET_SVE)
+     return false;
+ 
+   if (aarch64_early_ra == AARCH64_EARLY_RA_NONE)
+     return false;
+ 
+   if (aarch64_early_ra == AARCH64_EARLY_RA_STRIDED
+       && !TARGET_STREAMING_SME2)
+     return false;
+ 
+   return true;
+ }
+ 
+ unsigned int
+ pass_early_ra::execute (function *fn)
+ {
+   early_ra (fn).execute ();
+   return 0;
+ }
+ 
+ } // end namespace
+ 
+ // Create a new instance of the pass.
+ rtl_opt_pass *
+ make_pass_aarch64_early_ra (gcc::context *ctxt)
+ {
+   return new pass_early_ra (ctxt);
+ }
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-elf-raw.h gcc-14.1.0/gcc/config/aarch64/aarch64-elf-raw.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-elf-raw.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-elf-raw.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-elf.h gcc-14.1.0/gcc/config/aarch64/aarch64-elf.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-errata.h gcc-14.1.0/gcc/config/aarch64/aarch64-errata.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-errata.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-errata.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-feature-deps.h gcc-14.1.0/gcc/config/aarch64/aarch64-feature-deps.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-feature-deps.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-feature-deps.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Feature dependency helpers for AArch64.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Feature dependency helpers for AArch64.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** template<aarch64_feature> struct info;
*** 71,76 ****
--- 71,79 ----
      static constexpr auto enable = flag | get_enable REQUIRES;		\
      static constexpr auto explicit_on = enable | get_enable EXPLICIT_ON; \
    };									\
+   constexpr aarch64_feature_flags info<aarch64_feature::IDENT>::flag;	\
+   constexpr aarch64_feature_flags info<aarch64_feature::IDENT>::enable;	\
+   constexpr aarch64_feature_flags info<aarch64_feature::IDENT>::explicit_on; \
    constexpr info<aarch64_feature::IDENT> IDENT ()			\
    {									\
      return info<aarch64_feature::IDENT> ();				\
*************** get_flags_off (aarch64_feature_flags mas
*** 115,120 ****
--- 118,130 ----
    constexpr auto cpu_##CORE_IDENT = ARCH_IDENT ().enable | get_enable FEATURES;
  #include "config/aarch64/aarch64-cores.def"
  
+ /* Define fmv_deps_<NAME> variables for each FMV feature, giving the transitive
+    closure of all the features that the FMV feature enables.  */
+ #define AARCH64_FMV_FEATURE(A, FEAT_NAME, OPT_FLAGS) \
+   constexpr auto fmv_deps_##FEAT_NAME = get_enable OPT_FLAGS;
+ #include "config/aarch64/aarch64-option-extensions.def"
+ 
+ 
  }
  }
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-freebsd.h gcc-14.1.0/gcc/config/aarch64/aarch64-freebsd.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-freebsd.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-freebsd.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for AArch64 running FreeBSD
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for AArch64 running FreeBSD
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-fusion-pairs.def gcc-14.1.0/gcc/config/aarch64/aarch64-fusion-pairs.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-fusion-pairs.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-fusion-pairs.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2015-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2015-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-gnu.h gcc-14.1.0/gcc/config/aarch64/aarch64-gnu.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-gnu.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-gnu.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,68 ----
+ /* Definitions for AArch64 running GNU/Hurd.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_GNU_H
+ #define GCC_AARCH64_GNU_H
+ 
+ #define GNU_USER_DYNAMIC_LINKER "/lib/ld-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
+ 
+ #define CPP_SPEC "%{pthread:-D_REENTRANT}"
+ 
+ #define GNU_TARGET_LINK_SPEC  "%{h*}		\
+    %{static:-Bstatic}				\
+    %{shared:-shared}				\
+    %{symbolic:-Bsymbolic}			\
+    %{!static:%{!static-pie:			\
+      %{rdynamic:-export-dynamic}		\
+      %{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}} \
+    %{static-pie:-Bstatic -pie --no-dynamic-linker -z text} \
+    -X						\
+    %{mbig-endian:-EB} %{mlittle-endian:-EL}     \
+    -maarch64gnu%{mabi=ilp32:32}%{mbig-endian:b}"
+ 
+ 
+ #define LINK_SPEC GNU_TARGET_LINK_SPEC AARCH64_ERRATA_LINK_SPEC
+ 
+ #define GNU_USER_TARGET_MATHFILE_SPEC \
+   "%{Ofast|ffast-math|funsafe-math-optimizations:%{!shared:crtfastmath.o%s}}"
+ 
+ #undef ENDFILE_SPEC
+ #define ENDFILE_SPEC   \
+   GNU_USER_TARGET_MATHFILE_SPEC " " \
+   GNU_USER_TARGET_ENDFILE_SPEC
+ 
+ #define TARGET_OS_CPP_BUILTINS()		\
+   do						\
+     {						\
+ 	GNU_USER_TARGET_OS_CPP_BUILTINS();	\
+     }						\
+   while (0)
+ 
+ #define TARGET_ASM_FILE_END aarch64_file_end_indicate_exec_stack
+ 
+ /* Uninitialized common symbols in non-PIE executables, even with
+    strong definitions in dependent shared libraries, will resolve
+    to COPY relocated symbol in the executable.  See PR65780.  */
+ #undef TARGET_BINDS_LOCAL_P
+ #define TARGET_BINDS_LOCAL_P default_binds_local_p_2
+ 
+ /* Define this to be nonzero if static stack checking is supported.  */
+ #define STACK_CHECK_STATIC_BUILTIN 1
+ 
+ #endif  /* GCC_AARCH64_GNU_H */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-isa-modes.def gcc-14.1.0/gcc/config/aarch64/aarch64-isa-modes.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-isa-modes.def	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-isa-modes.def	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,40 ----
+ /* Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published
+    by the Free Software Foundation; either version 3, or (at your
+    option) any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ /* This file defines a set of "ISA modes"; in other words, it defines
+    various bits of runtime state that control the set of available
+    instructions or that affect the semantics of instructions in some way.
+ 
+    Before using #include to read this file, define a macro:
+ 
+       DEF_AARCH64_ISA_MODE(NAME)
+ 
+    where NAME is the name of the mode.  */
+ 
+ /* Indicates that PSTATE.SM is known to be 1 or 0 respectively.  These
+    modes are mutually exclusive.  If neither mode is active then the state
+    of PSTATE.SM is not known at compile time.  */
+ DEF_AARCH64_ISA_MODE(SM_ON)
+ DEF_AARCH64_ISA_MODE(SM_OFF)
+ 
+ /* Indicates that PSTATE.ZA is known to be 1.  The converse is that
+    PSTATE.ZA might be 0 or 1, depending on whether there is an uncommitted
+    lazy save.  */
+ DEF_AARCH64_ISA_MODE(ZA_ON)
+ 
+ #undef DEF_AARCH64_ISA_MODE
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-ldp-fusion.cc gcc-14.1.0/gcc/config/aarch64/aarch64-ldp-fusion.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-ldp-fusion.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-ldp-fusion.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,3272 ----
+ // LoadPair fusion optimization pass for AArch64.
+ // Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ //
+ // This file is part of GCC.
+ //
+ // GCC is free software; you can redistribute it and/or modify it
+ // under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 3, or (at your option)
+ // any later version.
+ //
+ // GCC is distributed in the hope that it will be useful, but
+ // WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ // General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with GCC; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_FUNCTIONAL
+ #define INCLUDE_LIST
+ #define INCLUDE_TYPE_TRAITS
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "backend.h"
+ #include "rtl.h"
+ #include "df.h"
+ #include "rtl-iter.h"
+ #include "rtl-ssa.h"
+ #include "cfgcleanup.h"
+ #include "tree-pass.h"
+ #include "ordered-hash-map.h"
+ #include "tree-dfa.h"
+ #include "fold-const.h"
+ #include "tree-hash-traits.h"
+ #include "print-tree.h"
+ #include "insn-attr.h"
+ 
+ using namespace rtl_ssa;
+ 
+ static constexpr HOST_WIDE_INT LDP_IMM_BITS = 7;
+ static constexpr HOST_WIDE_INT LDP_IMM_SIGN_BIT = (1 << (LDP_IMM_BITS - 1));
+ static constexpr HOST_WIDE_INT LDP_MAX_IMM = LDP_IMM_SIGN_BIT - 1;
+ static constexpr HOST_WIDE_INT LDP_MIN_IMM = -LDP_MAX_IMM - 1;
+ 
+ // We pack these fields (load_p, fpsimd_p, and size) into an integer
+ // (LFS) which we use as part of the key into the main hash tables.
+ //
+ // The idea is that we group candidates together only if they agree on
+ // the fields below.  Candidates that disagree on any of these
+ // properties shouldn't be merged together.
+ struct lfs_fields
+ {
+   bool load_p;
+   bool fpsimd_p;
+   unsigned size;
+ };
+ 
+ using insn_list_t = std::list<insn_info *>;
+ using insn_iter_t = insn_list_t::iterator;
+ 
+ // Information about the accesses at a given offset from a particular
+ // base.  Stored in an access_group, see below.
+ struct access_record
+ {
+   poly_int64 offset;
+   std::list<insn_info *> cand_insns;
+   std::list<access_record>::iterator place;
+ 
+   access_record (poly_int64 off) : offset (off) {}
+ };
+ 
+ // A group of accesses where adjacent accesses could be ldp/stp
+ // candidates.  The splay tree supports efficient insertion,
+ // while the list supports efficient iteration.
+ struct access_group
+ {
+   splay_tree<access_record *> tree;
+   std::list<access_record> list;
+ 
+   template<typename Alloc>
+   inline void track (Alloc node_alloc, poly_int64 offset, insn_info *insn);
+ };
+ 
+ // Information about a potential base candidate, used in try_fuse_pair.
+ // There may be zero, one, or two viable RTL bases for a given pair.
+ struct base_cand
+ {
+   // DEF is the def of the base register to be used by the pair.
+   def_info *def;
+ 
+   // FROM_INSN is -1 if the base candidate is already shared by both
+   // candidate insns.  Otherwise it holds the index of the insn from
+   // which the base originated.
+   //
+   // In the case that the base is shared, either DEF is already used
+   // by both candidate accesses, or both accesses see different versions
+   // of the same regno, in which case DEF is the def consumed by the
+   // first candidate access.
+   int from_insn;
+ 
+   // To form a pair, we do so by moving the first access down and the second
+   // access up.  To determine where to form the pair, and whether or not
+   // it is safe to form the pair, we track instructions which cannot be
+   // re-ordered past due to either dataflow or alias hazards.
+   //
+   // Since we allow changing the base used by an access, the choice of
+   // base can change which instructions act as re-ordering hazards for
+   // this pair (due to different dataflow).  We store the initial
+   // dataflow hazards for this choice of base candidate in HAZARDS.
+   //
+   // These hazards act as re-ordering barriers to each candidate insn
+   // respectively, in program order.
+   //
+   // Later on, when we take alias analysis into account, we narrow
+   // HAZARDS accordingly.
+   insn_info *hazards[2];
+ 
+   base_cand (def_info *def, int insn)
+     : def (def), from_insn (insn), hazards {nullptr, nullptr} {}
+ 
+   base_cand (def_info *def) : base_cand (def, -1) {}
+ 
+   // Test if this base candidate is viable according to HAZARDS.
+   bool viable () const
+   {
+     return !hazards[0] || !hazards[1] || (*hazards[0] > *hazards[1]);
+   }
+ };
+ 
+ // Information about an alternate base.  For a def_info D, it may
+ // instead be expressed as D = BASE + OFFSET.
+ struct alt_base
+ {
+   def_info *base;
+   poly_int64 offset;
+ };
+ 
+ // State used by the pass for a given basic block.
+ struct ldp_bb_info
+ {
+   using def_hash = nofree_ptr_hash<def_info>;
+   using expr_key_t = pair_hash<tree_operand_hash, int_hash<int, -1, -2>>;
+   using def_key_t = pair_hash<def_hash, int_hash<int, -1, -2>>;
+ 
+   // Map of <tree base, LFS> -> access_group.
+   ordered_hash_map<expr_key_t, access_group> expr_map;
+ 
+   // Map of <RTL-SSA def_info *, LFS> -> access_group.
+   ordered_hash_map<def_key_t, access_group> def_map;
+ 
+   // Given the def_info for an RTL base register, express it as an offset from
+   // some canonical base instead.
+   //
+   // Canonicalizing bases in this way allows us to identify adjacent accesses
+   // even if they see different base register defs.
+   hash_map<def_hash, alt_base> canon_base_map;
+ 
+   static const size_t obstack_alignment = sizeof (void *);
+   bb_info *m_bb;
+ 
+   ldp_bb_info (bb_info *bb) : m_bb (bb), m_emitted_tombstone (false)
+   {
+     obstack_specify_allocation (&m_obstack, OBSTACK_CHUNK_SIZE,
+ 				obstack_alignment, obstack_chunk_alloc,
+ 				obstack_chunk_free);
+   }
+   ~ldp_bb_info ()
+   {
+     obstack_free (&m_obstack, nullptr);
+ 
+     if (m_emitted_tombstone)
+       {
+ 	bitmap_release (&m_tombstone_bitmap);
+ 	bitmap_obstack_release (&m_bitmap_obstack);
+       }
+   }
+ 
+   inline void track_access (insn_info *, bool load, rtx mem);
+   inline void transform ();
+   inline void cleanup_tombstones ();
+ 
+ private:
+   obstack m_obstack;
+ 
+   // State for keeping track of tombstone insns emitted for this BB.
+   bitmap_obstack m_bitmap_obstack;
+   bitmap_head m_tombstone_bitmap;
+   bool m_emitted_tombstone;
+ 
+   inline splay_tree_node<access_record *> *node_alloc (access_record *);
+ 
+   template<typename Map>
+   inline void traverse_base_map (Map &map);
+   inline void transform_for_base (int load_size, access_group &group);
+ 
+   inline void merge_pairs (insn_list_t &, insn_list_t &,
+ 			   bool load_p, unsigned access_size);
+ 
+   inline bool try_fuse_pair (bool load_p, unsigned access_size,
+ 			     insn_info *i1, insn_info *i2);
+ 
+   inline bool fuse_pair (bool load_p, unsigned access_size,
+ 			 int writeback,
+ 			 insn_info *i1, insn_info *i2,
+ 			 base_cand &base,
+ 			 const insn_range_info &move_range);
+ 
+   inline void track_tombstone (int uid);
+ 
+   inline bool track_via_mem_expr (insn_info *, rtx mem, lfs_fields lfs);
+ };
+ 
+ splay_tree_node<access_record *> *
+ ldp_bb_info::node_alloc (access_record *access)
+ {
+   using T = splay_tree_node<access_record *>;
+   void *addr = obstack_alloc (&m_obstack, sizeof (T));
+   return new (addr) T (access);
+ }
+ 
+ // Given a mem MEM, if the address has side effects, return a MEM that accesses
+ // the same address but without the side effects.  Otherwise, return
+ // MEM unchanged.
+ static rtx
+ drop_writeback (rtx mem)
+ {
+   rtx addr = XEXP (mem, 0);
+ 
+   if (!side_effects_p (addr))
+     return mem;
+ 
+   switch (GET_CODE (addr))
+     {
+     case PRE_MODIFY:
+       addr = XEXP (addr, 1);
+       break;
+     case POST_MODIFY:
+     case POST_INC:
+     case POST_DEC:
+       addr = XEXP (addr, 0);
+       break;
+     case PRE_INC:
+     case PRE_DEC:
+     {
+       poly_int64 adjustment = GET_MODE_SIZE (GET_MODE (mem));
+       if (GET_CODE (addr) == PRE_DEC)
+ 	adjustment *= -1;
+       addr = plus_constant (GET_MODE (addr), XEXP (addr, 0), adjustment);
+       break;
+     }
+     default:
+       gcc_unreachable ();
+     }
+ 
+   return change_address (mem, GET_MODE (mem), addr);
+ }
+ 
+ // Convenience wrapper around strip_offset that can also look through
+ // RTX_AUTOINC addresses.  The interface is like strip_offset except we take a
+ // MEM so that we know the mode of the access.
+ static rtx
+ ldp_strip_offset (rtx mem, poly_int64 *offset)
+ {
+   rtx addr = XEXP (mem, 0);
+ 
+   switch (GET_CODE (addr))
+     {
+     case PRE_MODIFY:
+     case POST_MODIFY:
+       addr = strip_offset (XEXP (addr, 1), offset);
+       gcc_checking_assert (REG_P (addr));
+       gcc_checking_assert (rtx_equal_p (XEXP (XEXP (mem, 0), 0), addr));
+       break;
+     case PRE_INC:
+     case POST_INC:
+       addr = XEXP (addr, 0);
+       *offset = GET_MODE_SIZE (GET_MODE (mem));
+       gcc_checking_assert (REG_P (addr));
+       break;
+     case PRE_DEC:
+     case POST_DEC:
+       addr = XEXP (addr, 0);
+       *offset = -GET_MODE_SIZE (GET_MODE (mem));
+       gcc_checking_assert (REG_P (addr));
+       break;
+ 
+     default:
+       addr = strip_offset (addr, offset);
+     }
+ 
+   return addr;
+ }
+ 
+ // Return true if X is a PRE_{INC,DEC,MODIFY} rtx.
+ static bool
+ any_pre_modify_p (rtx x)
+ {
+   const auto code = GET_CODE (x);
+   return code == PRE_INC || code == PRE_DEC || code == PRE_MODIFY;
+ }
+ 
+ // Return true if X is a POST_{INC,DEC,MODIFY} rtx.
+ static bool
+ any_post_modify_p (rtx x)
+ {
+   const auto code = GET_CODE (x);
+   return code == POST_INC || code == POST_DEC || code == POST_MODIFY;
+ }
+ 
+ // Return true if we should consider forming ldp/stp insns from memory
+ // accesses with operand mode MODE at this stage in compilation.
+ static bool
+ ldp_operand_mode_ok_p (machine_mode mode)
+ {
+   const bool allow_qregs
+     = !(aarch64_tune_params.extra_tuning_flags
+ 	& AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS);
+ 
+   if (!aarch64_ldpstp_operand_mode_p (mode))
+     return false;
+ 
+   const auto size = GET_MODE_SIZE (mode).to_constant ();
+   if (size == 16 && !allow_qregs)
+     return false;
+ 
+   // We don't pair up TImode accesses before RA because TImode is
+   // special in that it can be allocated to a pair of GPRs or a single
+   // FPR, and the RA is best placed to make that decision.
+   return reload_completed || mode != TImode;
+ }
+ 
+ // Given LFS (load_p, fpsimd_p, size) fields in FIELDS, encode these
+ // into an integer for use as a hash table key.
+ static int
+ encode_lfs (lfs_fields fields)
+ {
+   int size_log2 = exact_log2 (fields.size);
+   gcc_checking_assert (size_log2 >= 2 && size_log2 <= 4);
+   return ((int)fields.load_p << 3)
+     | ((int)fields.fpsimd_p << 2)
+     | (size_log2 - 2);
+ }
+ 
+ // Inverse of encode_lfs.
+ static lfs_fields
+ decode_lfs (int lfs)
+ {
+   bool load_p = (lfs & (1 << 3));
+   bool fpsimd_p = (lfs & (1 << 2));
+   unsigned size = 1U << ((lfs & 3) + 2);
+   return { load_p, fpsimd_p, size };
+ }
+ 
+ // Track the access INSN at offset OFFSET in this access group.
+ // ALLOC_NODE is used to allocate splay tree nodes.
+ template<typename Alloc>
+ void
+ access_group::track (Alloc alloc_node, poly_int64 offset, insn_info *insn)
+ {
+   auto insert_before = [&](std::list<access_record>::iterator after)
+     {
+       auto it = list.emplace (after, offset);
+       it->cand_insns.push_back (insn);
+       it->place = it;
+       return &*it;
+     };
+ 
+   if (!list.size ())
+     {
+       auto access = insert_before (list.end ());
+       tree.insert_max_node (alloc_node (access));
+       return;
+     }
+ 
+   auto compare = [&](splay_tree_node<access_record *> *node)
+     {
+       return compare_sizes_for_sort (offset, node->value ()->offset);
+     };
+   auto result = tree.lookup (compare);
+   splay_tree_node<access_record *> *node = tree.root ();
+   if (result == 0)
+     node->value ()->cand_insns.push_back (insn);
+   else
+     {
+       auto it = node->value ()->place;
+       auto after = (result > 0) ? std::next (it) : it;
+       auto access = insert_before (after);
+       tree.insert_child (node, result > 0, alloc_node (access));
+     }
+ }
+ 
+ // Given a candidate access INSN (with mem MEM), see if it has a suitable
+ // MEM_EXPR base (i.e. a tree decl) relative to which we can track the access.
+ // LFS is used as part of the key to the hash table, see track_access.
+ bool
+ ldp_bb_info::track_via_mem_expr (insn_info *insn, rtx mem, lfs_fields lfs)
+ {
+   if (!MEM_EXPR (mem) || !MEM_OFFSET_KNOWN_P (mem))
+     return false;
+ 
+   poly_int64 offset;
+   tree base_expr = get_addr_base_and_unit_offset (MEM_EXPR (mem),
+ 						  &offset);
+   if (!base_expr || !DECL_P (base_expr))
+     return false;
+ 
+   offset += MEM_OFFSET (mem);
+ 
+   const machine_mode mem_mode = GET_MODE (mem);
+   const HOST_WIDE_INT mem_size = GET_MODE_SIZE (mem_mode).to_constant ();
+ 
+   // Punt on misaligned offsets.  LDP/STP instructions require offsets to be a
+   // multiple of the access size, and we believe that misaligned offsets on
+   // MEM_EXPR bases are likely to lead to misaligned offsets w.r.t. RTL bases.
+   if (!multiple_p (offset, mem_size))
+     return false;
+ 
+   const auto key = std::make_pair (base_expr, encode_lfs (lfs));
+   access_group &group = expr_map.get_or_insert (key, NULL);
+   auto alloc = [&](access_record *access) { return node_alloc (access); };
+   group.track (alloc, offset, insn);
+ 
+   if (dump_file)
+     {
+       fprintf (dump_file, "[bb %u] tracking insn %d via ",
+ 	       m_bb->index (), insn->uid ());
+       print_node_brief (dump_file, "mem expr", base_expr, 0);
+       fprintf (dump_file, " [L=%d FP=%d, %smode, off=",
+ 	       lfs.load_p, lfs.fpsimd_p, mode_name[mem_mode]);
+       print_dec (offset, dump_file);
+       fprintf (dump_file, "]\n");
+     }
+ 
+   return true;
+ }
+ 
+ // Main function to begin pair discovery.  Given a memory access INSN,
+ // determine whether it could be a candidate for fusing into an ldp/stp,
+ // and if so, track it in the appropriate data structure for this basic
+ // block.  LOAD_P is true if the access is a load, and MEM is the mem
+ // rtx that occurs in INSN.
+ void
+ ldp_bb_info::track_access (insn_info *insn, bool load_p, rtx mem)
+ {
+   // We can't combine volatile MEMs, so punt on these.
+   if (MEM_VOLATILE_P (mem))
+     return;
+ 
+   // Ignore writeback accesses if the param says to do so.
+   if (!aarch64_ldp_writeback
+       && GET_RTX_CLASS (GET_CODE (XEXP (mem, 0))) == RTX_AUTOINC)
+     return;
+ 
+   const machine_mode mem_mode = GET_MODE (mem);
+   if (!ldp_operand_mode_ok_p (mem_mode))
+     return;
+ 
+   rtx reg_op = XEXP (PATTERN (insn->rtl ()), !load_p);
+ 
+   // Ignore the access if the register operand isn't suitable for ldp/stp.
+   if (load_p
+       ? !aarch64_ldp_reg_operand (reg_op, mem_mode)
+       : !aarch64_stp_reg_operand (reg_op, mem_mode))
+     return;
+ 
+   // We want to segregate FP/SIMD accesses from GPR accesses.
+   //
+   // Before RA, we use the modes, noting that stores of constant zero
+   // operands use GPRs (even in non-integer modes).  After RA, we use
+   // the hard register numbers.
+   const bool fpsimd_op_p
+     = reload_completed
+     ? (REG_P (reg_op) && FP_REGNUM_P (REGNO (reg_op)))
+     : (GET_MODE_CLASS (mem_mode) != MODE_INT
+        && (load_p || !aarch64_const_zero_rtx_p (reg_op)));
+ 
+   // Note ldp_operand_mode_ok_p already rejected VL modes.
+   const HOST_WIDE_INT mem_size = GET_MODE_SIZE (mem_mode).to_constant ();
+   const lfs_fields lfs = { load_p, fpsimd_op_p, mem_size };
+ 
+   if (track_via_mem_expr (insn, mem, lfs))
+     return;
+ 
+   poly_int64 mem_off;
+   rtx addr = XEXP (mem, 0);
+   const bool autoinc_p = GET_RTX_CLASS (GET_CODE (addr)) == RTX_AUTOINC;
+   rtx base = ldp_strip_offset (mem, &mem_off);
+   if (!REG_P (base))
+     return;
+ 
+   // Need to calculate two (possibly different) offsets:
+   //  - Offset at which the access occurs.
+   //  - Offset of the new base def.
+   poly_int64 access_off;
+   if (autoinc_p && any_post_modify_p (addr))
+     access_off = 0;
+   else
+     access_off = mem_off;
+ 
+   poly_int64 new_def_off = mem_off;
+ 
+   // Punt on accesses relative to eliminable regs.  Since we don't know the
+   // elimination offset pre-RA, we should postpone forming pairs on such
+   // accesses until after RA.
+   //
+   // As it stands, addresses with offsets in range for LDR but not
+   // in range for LDP/STP are currently reloaded inefficiently,
+   // ending up with a separate base register for each pair.
+   //
+   // In theory LRA should make use of
+   // targetm.legitimize_address_displacement to promote sharing of
+   // bases among multiple (nearby) address reloads, but the current
+   // LRA code returns early from process_address_1 for operands that
+   // satisfy "m", even if they don't satisfy the real (relaxed) address
+   // constraint; this early return means we never get to the code
+   // that calls targetm.legitimize_address_displacement.
+   //
+   // So for now, it's better to punt when we can't be sure that the
+   // offset is in range for LDP/STP.  Out-of-range cases can then be
+   // handled after RA by the out-of-range LDP/STP peepholes.  Eventually, it
+   // would be nice to handle known out-of-range opportunities in the
+   // pass itself (for stack accesses, this would be in the post-RA pass).
+   if (!reload_completed
+       && (REGNO (base) == FRAME_POINTER_REGNUM
+ 	  || REGNO (base) == ARG_POINTER_REGNUM))
+     return;
+ 
+   // Now need to find def of base register.
+   use_info *base_use = find_access (insn->uses (), REGNO (base));
+   gcc_assert (base_use);
+   def_info *base_def = base_use->def ();
+   if (!base_def)
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "base register (regno %d) of insn %d is undefined",
+ 		 REGNO (base), insn->uid ());
+       return;
+     }
+ 
+   alt_base *canon_base = canon_base_map.get (base_def);
+   if (canon_base)
+     {
+       // Express this as the combined offset from the canonical base.
+       base_def = canon_base->base;
+       new_def_off += canon_base->offset;
+       access_off += canon_base->offset;
+     }
+ 
+   if (autoinc_p)
+     {
+       auto def = find_access (insn->defs (), REGNO (base));
+       gcc_assert (def);
+ 
+       // Record that DEF = BASE_DEF + MEM_OFF.
+       if (dump_file)
+ 	{
+ 	  pretty_printer pp;
+ 	  pp_access (&pp, def, 0);
+ 	  pp_string (&pp, " = ");
+ 	  pp_access (&pp, base_def, 0);
+ 	  fprintf (dump_file, "[bb %u] recording %s + ",
+ 		   m_bb->index (), pp_formatted_text (&pp));
+ 	  print_dec (new_def_off, dump_file);
+ 	  fprintf (dump_file, "\n");
+ 	}
+ 
+       alt_base base_rec { base_def, new_def_off };
+       if (canon_base_map.put (def, base_rec))
+ 	gcc_unreachable (); // Base defs should be unique.
+     }
+ 
+   // Punt on misaligned offsets.  LDP/STP require offsets to be a multiple of
+   // the access size.
+   if (!multiple_p (mem_off, mem_size))
+     return;
+ 
+   const auto key = std::make_pair (base_def, encode_lfs (lfs));
+   access_group &group = def_map.get_or_insert (key, NULL);
+   auto alloc = [&](access_record *access) { return node_alloc (access); };
+   group.track (alloc, access_off, insn);
+ 
+   if (dump_file)
+     {
+       pretty_printer pp;
+       pp_access (&pp, base_def, 0);
+ 
+       fprintf (dump_file, "[bb %u] tracking insn %d via %s",
+ 	       m_bb->index (), insn->uid (), pp_formatted_text (&pp));
+       fprintf (dump_file,
+ 	       " [L=%d, WB=%d, FP=%d, %smode, off=",
+ 	       lfs.load_p, autoinc_p, lfs.fpsimd_p, mode_name[mem_mode]);
+       print_dec (access_off, dump_file);
+       fprintf (dump_file, "]\n");
+     }
+ }
+ 
+ // Dummy predicate that never ignores any insns.
+ static bool no_ignore (insn_info *) { return false; }
+ 
+ // Return the latest dataflow hazard before INSN.
+ //
+ // If IGNORE is non-NULL, this points to a sub-rtx which we should ignore for
+ // dataflow purposes.  This is needed when considering changing the RTL base of
+ // an access discovered through a MEM_EXPR base.
+ //
+ // If IGNORE_INSN is non-NULL, we should further ignore any hazards arising
+ // from that insn.
+ //
+ // N.B. we ignore any defs/uses of memory here as we deal with that separately,
+ // making use of alias disambiguation.
+ static insn_info *
+ latest_hazard_before (insn_info *insn, rtx *ignore,
+ 		      insn_info *ignore_insn = nullptr)
+ {
+   insn_info *result = nullptr;
+ 
+   // If the insn can throw then it is at the end of a BB and we can't
+   // move it, model this by recording a hazard in the previous insn
+   // which will prevent moving the insn up.
+   if (cfun->can_throw_non_call_exceptions
+       && find_reg_note (insn->rtl (), REG_EH_REGION, NULL_RTX))
+     return insn->prev_nondebug_insn ();
+ 
+   // Return true if we registered the hazard.
+   auto hazard = [&](insn_info *h) -> bool
+     {
+       gcc_checking_assert (*h < *insn);
+       if (h == ignore_insn)
+ 	return false;
+ 
+       if (!result || *h > *result)
+ 	result = h;
+ 
+       return true;
+     };
+ 
+   rtx pat = PATTERN (insn->rtl ());
+   auto ignore_use = [&](use_info *u)
+     {
+       if (u->is_mem ())
+ 	return true;
+ 
+       return !refers_to_regno_p (u->regno (), u->regno () + 1, pat, ignore);
+     };
+ 
+   // Find defs of uses in INSN (RaW).
+   for (auto use : insn->uses ())
+     if (!ignore_use (use) && use->def ())
+       hazard (use->def ()->insn ());
+ 
+   // Find previous defs (WaW) or previous uses (WaR) of defs in INSN.
+   for (auto def : insn->defs ())
+     {
+       if (def->is_mem ())
+ 	continue;
+ 
+       if (def->prev_def ())
+ 	{
+ 	  hazard (def->prev_def ()->insn ()); // WaW
+ 
+ 	  auto set = dyn_cast<set_info *> (def->prev_def ());
+ 	  if (set && set->has_nondebug_insn_uses ())
+ 	    for (auto use : set->reverse_nondebug_insn_uses ())
+ 	      if (use->insn () != insn && hazard (use->insn ())) // WaR
+ 		break;
+ 	}
+ 
+       if (!HARD_REGISTER_NUM_P (def->regno ()))
+ 	continue;
+ 
+       // Also need to check backwards for call clobbers (WaW).
+       for (auto call_group : def->ebb ()->call_clobbers ())
+ 	{
+ 	  if (!call_group->clobbers (def->resource ()))
+ 	    continue;
+ 
+ 	  auto clobber_insn = prev_call_clobbers_ignoring (*call_group,
+ 							   def->insn (),
+ 							   no_ignore);
+ 	  if (clobber_insn)
+ 	    hazard (clobber_insn);
+ 	}
+ 
+     }
+ 
+   return result;
+ }
+ 
+ // Return the first dataflow hazard after INSN.
+ //
+ // If IGNORE is non-NULL, this points to a sub-rtx which we should ignore for
+ // dataflow purposes.  This is needed when considering changing the RTL base of
+ // an access discovered through a MEM_EXPR base.
+ //
+ // N.B. we ignore any defs/uses of memory here as we deal with that separately,
+ // making use of alias disambiguation.
+ static insn_info *
+ first_hazard_after (insn_info *insn, rtx *ignore)
+ {
+   insn_info *result = nullptr;
+   auto hazard = [insn, &result](insn_info *h)
+     {
+       gcc_checking_assert (*h > *insn);
+       if (!result || *h < *result)
+ 	result = h;
+     };
+ 
+   rtx pat = PATTERN (insn->rtl ());
+   auto ignore_use = [&](use_info *u)
+     {
+       if (u->is_mem ())
+ 	return true;
+ 
+       return !refers_to_regno_p (u->regno (), u->regno () + 1, pat, ignore);
+     };
+ 
+   for (auto def : insn->defs ())
+     {
+       if (def->is_mem ())
+ 	continue;
+ 
+       if (def->next_def ())
+ 	hazard (def->next_def ()->insn ()); // WaW
+ 
+       auto set = dyn_cast<set_info *> (def);
+       if (set && set->has_nondebug_insn_uses ())
+ 	hazard (set->first_nondebug_insn_use ()->insn ()); // RaW
+ 
+       if (!HARD_REGISTER_NUM_P (def->regno ()))
+ 	continue;
+ 
+       // Also check for call clobbers of this def (WaW).
+       for (auto call_group : def->ebb ()->call_clobbers ())
+ 	{
+ 	  if (!call_group->clobbers (def->resource ()))
+ 	    continue;
+ 
+ 	  auto clobber_insn = next_call_clobbers_ignoring (*call_group,
+ 							   def->insn (),
+ 							   no_ignore);
+ 	  if (clobber_insn)
+ 	    hazard (clobber_insn);
+ 	}
+     }
+ 
+   // Find any subsequent defs of uses in INSN (WaR).
+   for (auto use : insn->uses ())
+     {
+       if (ignore_use (use))
+ 	continue;
+ 
+       if (use->def ())
+ 	{
+ 	  auto def = use->def ()->next_def ();
+ 	  if (def && def->insn () == insn)
+ 	    def = def->next_def ();
+ 
+ 	  if (def)
+ 	    hazard (def->insn ());
+ 	}
+ 
+       if (!HARD_REGISTER_NUM_P (use->regno ()))
+ 	continue;
+ 
+       // Also need to handle call clobbers of our uses (again WaR).
+       //
+       // See restrict_movement_for_uses_ignoring for why we don't
+       // need to check backwards for call clobbers.
+       for (auto call_group : use->ebb ()->call_clobbers ())
+ 	{
+ 	  if (!call_group->clobbers (use->resource ()))
+ 	    continue;
+ 
+ 	  auto clobber_insn = next_call_clobbers_ignoring (*call_group,
+ 							   use->insn (),
+ 							   no_ignore);
+ 	  if (clobber_insn)
+ 	    hazard (clobber_insn);
+ 	}
+     }
+ 
+   return result;
+ }
+ 
+ // Return true iff R1 and R2 overlap.
+ static bool
+ ranges_overlap_p (const insn_range_info &r1, const insn_range_info &r2)
+ {
+   // If either range is empty, then their intersection is empty.
+   if (!r1 || !r2)
+     return false;
+ 
+   // When do they not overlap? When one range finishes before the other
+   // starts, i.e. (*r1.last < *r2.first || *r2.last < *r1.first).
+   // Inverting this, we get the below.
+   return *r1.last >= *r2.first && *r2.last >= *r1.first;
+ }
+ 
+ // Get the range of insns that def feeds.
+ static insn_range_info get_def_range (def_info *def)
+ {
+   insn_info *last = def->next_def ()->insn ()->prev_nondebug_insn ();
+   return { def->insn (), last };
+ }
+ 
+ // Given a def (of memory), return the downwards range within which we
+ // can safely move this def.
+ static insn_range_info
+ def_downwards_move_range (def_info *def)
+ {
+   auto range = get_def_range (def);
+ 
+   auto set = dyn_cast<set_info *> (def);
+   if (!set || !set->has_any_uses ())
+     return range;
+ 
+   auto use = set->first_nondebug_insn_use ();
+   if (use)
+     range = move_earlier_than (range, use->insn ());
+ 
+   return range;
+ }
+ 
+ // Given a def (of memory), return the upwards range within which we can
+ // safely move this def.
+ static insn_range_info
+ def_upwards_move_range (def_info *def)
+ {
+   def_info *prev = def->prev_def ();
+   insn_range_info range { prev->insn (), def->insn () };
+ 
+   auto set = dyn_cast<set_info *> (prev);
+   if (!set || !set->has_any_uses ())
+     return range;
+ 
+   auto use = set->last_nondebug_insn_use ();
+   if (use)
+     range = move_later_than (range, use->insn ());
+ 
+   return range;
+ }
+ 
+ // Class that implements a state machine for building the changes needed to form
+ // a store pair instruction.  This allows us to easily build the changes in
+ // program order, as required by rtl-ssa.
+ struct stp_change_builder
+ {
+   enum class state
+   {
+     FIRST,
+     INSERT,
+     FIXUP_USE,
+     LAST,
+     DONE
+   };
+ 
+   enum class action
+   {
+     TOMBSTONE,
+     CHANGE,
+     INSERT,
+     FIXUP_USE
+   };
+ 
+   struct change
+   {
+     action type;
+     insn_info *insn;
+   };
+ 
+   bool done () const { return m_state == state::DONE; }
+ 
+   stp_change_builder (insn_info *insns[2],
+ 		      insn_info *repurpose,
+ 		      insn_info *dest)
+     : m_state (state::FIRST), m_insns { insns[0], insns[1] },
+       m_repurpose (repurpose), m_dest (dest), m_use (nullptr) {}
+ 
+   change get_change () const
+   {
+     switch (m_state)
+       {
+       case state::FIRST:
+ 	return {
+ 	  m_insns[0] == m_repurpose ? action::CHANGE : action::TOMBSTONE,
+ 	  m_insns[0]
+ 	};
+       case state::LAST:
+ 	return {
+ 	  m_insns[1] == m_repurpose ? action::CHANGE : action::TOMBSTONE,
+ 	  m_insns[1]
+ 	};
+       case state::INSERT:
+ 	return { action::INSERT, m_dest };
+       case state::FIXUP_USE:
+ 	return { action::FIXUP_USE, m_use->insn () };
+       case state::DONE:
+ 	break;
+       }
+ 
+     gcc_unreachable ();
+   }
+ 
+   // Transition to the next state.
+   void advance ()
+   {
+     switch (m_state)
+       {
+       case state::FIRST:
+ 	if (m_repurpose)
+ 	  m_state = state::LAST;
+ 	else
+ 	  m_state = state::INSERT;
+ 	break;
+       case state::INSERT:
+       {
+ 	def_info *def = memory_access (m_insns[0]->defs ());
+ 	while (*def->next_def ()->insn () <= *m_dest)
+ 	  def = def->next_def ();
+ 
+ 	// Now we know DEF feeds the insertion point for the new stp.
+ 	// Look for any uses of DEF that will consume the new stp.
+ 	gcc_assert (*def->insn () <= *m_dest
+ 		    && *def->next_def ()->insn () > *m_dest);
+ 
+ 	auto set = as_a<set_info *> (def);
+ 	for (auto use : set->nondebug_insn_uses ())
+ 	  if (*use->insn () > *m_dest)
+ 	    {
+ 	      m_use = use;
+ 	      break;
+ 	    }
+ 
+ 	if (m_use)
+ 	  m_state = state::FIXUP_USE;
+ 	else
+ 	  m_state = state::LAST;
+ 	break;
+       }
+       case state::FIXUP_USE:
+ 	m_use = m_use->next_nondebug_insn_use ();
+ 	if (!m_use)
+ 	  m_state = state::LAST;
+ 	break;
+       case state::LAST:
+ 	m_state = state::DONE;
+ 	break;
+       case state::DONE:
+ 	gcc_unreachable ();
+       }
+   }
+ 
+ private:
+   state m_state;
+ 
+   // Original candidate stores.
+   insn_info *m_insns[2];
+ 
+   // If non-null, this is a candidate insn to change into an stp.  Otherwise we
+   // are deleting both original insns and inserting a new insn for the stp.
+   insn_info *m_repurpose;
+ 
+   // Destionation of the stp, it will be placed immediately after m_dest.
+   insn_info *m_dest;
+ 
+   // Current nondebug use that needs updating due to stp insertion.
+   use_info *m_use;
+ };
+ 
+ // Given candidate store insns FIRST and SECOND, see if we can re-purpose one
+ // of them (together with its def of memory) for the stp insn.  If so, return
+ // that insn.  Otherwise, return null.
+ static insn_info *
+ try_repurpose_store (insn_info *first,
+ 		     insn_info *second,
+ 		     const insn_range_info &move_range)
+ {
+   def_info * const defs[2] = {
+     memory_access (first->defs ()),
+     memory_access (second->defs ())
+   };
+ 
+   if (move_range.includes (first)
+       || ranges_overlap_p (move_range, def_downwards_move_range (defs[0])))
+     return first;
+ 
+   if (move_range.includes (second)
+       || ranges_overlap_p (move_range, def_upwards_move_range (defs[1])))
+     return second;
+ 
+   return nullptr;
+ }
+ 
+ // Generate the RTL pattern for a "tombstone"; used temporarily during this pass
+ // to replace stores that are marked for deletion where we can't immediately
+ // delete the store (since there are uses of mem hanging off the store).
+ //
+ // These are deleted at the end of the pass and uses re-parented appropriately
+ // at this point.
+ static rtx
+ gen_tombstone (void)
+ {
+   return gen_rtx_CLOBBER (VOIDmode,
+ 			  gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode)));
+ }
+ 
+ // Given a pair mode MODE, return a canonical mode to be used for a single
+ // operand of such a pair.  Currently we only use this when promoting a
+ // non-writeback pair into a writeback pair, as it isn't otherwise clear
+ // which mode to use when storing a modeless CONST_INT.
+ static machine_mode
+ aarch64_operand_mode_for_pair_mode (machine_mode mode)
+ {
+   switch (mode)
+     {
+     case E_V2x4QImode:
+       return SImode;
+     case E_V2x8QImode:
+       return DImode;
+     case E_V2x16QImode:
+       return V16QImode;
+     default:
+       gcc_unreachable ();
+     }
+ }
+ 
+ // Go through the reg notes rooted at NOTE, dropping those that we should drop,
+ // and preserving those that we want to keep by prepending them to (and
+ // returning) RESULT.  EH_REGION is used to make sure we have at most one
+ // REG_EH_REGION note in the resulting list.  FR_EXPR is used to return any
+ // REG_FRAME_RELATED_EXPR note we find, as these can need special handling in
+ // combine_reg_notes.
+ static rtx
+ filter_notes (rtx note, rtx result, bool *eh_region, rtx *fr_expr)
+ {
+   for (; note; note = XEXP (note, 1))
+     {
+       switch (REG_NOTE_KIND (note))
+ 	{
+ 	case REG_DEAD:
+ 	  // REG_DEAD notes aren't required to be maintained.
+ 	case REG_EQUAL:
+ 	case REG_EQUIV:
+ 	case REG_UNUSED:
+ 	case REG_NOALIAS:
+ 	  // These can all be dropped.  For REG_EQU{AL,IV} they cannot apply to
+ 	  // non-single_set insns, and REG_UNUSED is re-computed by RTl-SSA, see
+ 	  // rtl-ssa/changes.cc:update_notes.
+ 	  //
+ 	  // Similarly, REG_NOALIAS cannot apply to a parallel.
+ 	case REG_INC:
+ 	  // When we form the pair insn, the reg update is implemented
+ 	  // as just another SET in the parallel, so isn't really an
+ 	  // auto-increment in the RTL sense, hence we drop the note.
+ 	  break;
+ 	case REG_EH_REGION:
+ 	  gcc_assert (!*eh_region);
+ 	  *eh_region = true;
+ 	  result = alloc_reg_note (REG_EH_REGION, XEXP (note, 0), result);
+ 	  break;
+ 	case REG_CFA_DEF_CFA:
+ 	case REG_CFA_OFFSET:
+ 	case REG_CFA_RESTORE:
+ 	  result = alloc_reg_note (REG_NOTE_KIND (note),
+ 				   copy_rtx (XEXP (note, 0)),
+ 				   result);
+ 	  break;
+ 	case REG_FRAME_RELATED_EXPR:
+ 	  gcc_assert (!*fr_expr);
+ 	  *fr_expr = copy_rtx (XEXP (note, 0));
+ 	  break;
+ 	default:
+ 	  // Unexpected REG_NOTE kind.
+ 	  gcc_unreachable ();
+ 	}
+     }
+ 
+   return result;
+ }
+ 
+ // Return the notes that should be attached to a combination of I1 and I2, where
+ // *I1 < *I2.  LOAD_P is true for loads.
+ static rtx
+ combine_reg_notes (insn_info *i1, insn_info *i2, bool load_p)
+ {
+   // Temporary storage for REG_FRAME_RELATED_EXPR notes.
+   rtx fr_expr[2] = {};
+ 
+   bool found_eh_region = false;
+   rtx result = NULL_RTX;
+   result = filter_notes (REG_NOTES (i2->rtl ()), result,
+ 			 &found_eh_region, fr_expr);
+   result = filter_notes (REG_NOTES (i1->rtl ()), result,
+ 			 &found_eh_region, fr_expr + 1);
+ 
+   if (!load_p)
+     {
+       // Simple frame-related sp-relative saves don't need CFI notes, but when
+       // we combine them into an stp we will need a CFI note as dwarf2cfi can't
+       // interpret the unspec pair representation directly.
+       if (RTX_FRAME_RELATED_P (i1->rtl ()) && !fr_expr[0])
+ 	fr_expr[0] = copy_rtx (PATTERN (i1->rtl ()));
+       if (RTX_FRAME_RELATED_P (i2->rtl ()) && !fr_expr[1])
+ 	fr_expr[1] = copy_rtx (PATTERN (i2->rtl ()));
+     }
+ 
+   rtx fr_pat = NULL_RTX;
+   if (fr_expr[0] && fr_expr[1])
+     {
+       // Combining two frame-related insns, need to construct
+       // a REG_FRAME_RELATED_EXPR note which represents the combined
+       // operation.
+       RTX_FRAME_RELATED_P (fr_expr[1]) = 1;
+       fr_pat = gen_rtx_PARALLEL (VOIDmode,
+ 				 gen_rtvec (2, fr_expr[0], fr_expr[1]));
+     }
+   else
+     fr_pat = fr_expr[0] ? fr_expr[0] : fr_expr[1];
+ 
+   if (fr_pat)
+     result = alloc_reg_note (REG_FRAME_RELATED_EXPR,
+ 			     fr_pat, result);
+ 
+   return result;
+ }
+ 
+ // Given two memory accesses in PATS, at least one of which is of a
+ // writeback form, extract two non-writeback memory accesses addressed
+ // relative to the initial value of the base register, and output these
+ // in PATS.  Return an rtx that represents the overall change to the
+ // base register.
+ static rtx
+ extract_writebacks (bool load_p, rtx pats[2], int changed)
+ {
+   rtx base_reg = NULL_RTX;
+   poly_int64 current_offset = 0;
+ 
+   poly_int64 offsets[2];
+ 
+   for (int i = 0; i < 2; i++)
+     {
+       rtx mem = XEXP (pats[i], load_p);
+       rtx reg = XEXP (pats[i], !load_p);
+ 
+       rtx addr = XEXP (mem, 0);
+       const bool autoinc_p = GET_RTX_CLASS (GET_CODE (addr)) == RTX_AUTOINC;
+ 
+       poly_int64 offset;
+       rtx this_base = ldp_strip_offset (mem, &offset);
+       gcc_assert (REG_P (this_base));
+       if (base_reg)
+ 	gcc_assert (rtx_equal_p (base_reg, this_base));
+       else
+ 	base_reg = this_base;
+ 
+       // If we changed base for the current insn, then we already
+       // derived the correct mem for this insn from the effective
+       // address of the other access.
+       if (i == changed)
+ 	{
+ 	  gcc_checking_assert (!autoinc_p);
+ 	  offsets[i] = offset;
+ 	  continue;
+ 	}
+ 
+       if (autoinc_p && any_pre_modify_p (addr))
+ 	current_offset += offset;
+ 
+       poly_int64 this_off = current_offset;
+       if (!autoinc_p)
+ 	this_off += offset;
+ 
+       offsets[i] = this_off;
+       rtx new_mem = change_address (mem, GET_MODE (mem),
+ 				    plus_constant (GET_MODE (base_reg),
+ 						   base_reg, this_off));
+       pats[i] = load_p
+ 	? gen_rtx_SET (reg, new_mem)
+ 	: gen_rtx_SET (new_mem, reg);
+ 
+       if (autoinc_p && any_post_modify_p (addr))
+ 	current_offset += offset;
+     }
+ 
+   if (known_eq (current_offset, 0))
+     return NULL_RTX;
+ 
+   return gen_rtx_SET (base_reg, plus_constant (GET_MODE (base_reg),
+ 					       base_reg, current_offset));
+ }
+ 
+ // INSNS contains either {nullptr, pair insn} (when promoting an existing
+ // non-writeback pair) or contains the candidate insns used to form the pair
+ // (when fusing a new pair).
+ //
+ // PAIR_RANGE specifies where we want to form the final pair.
+ // INITIAL_OFFSET gives the current base offset for the pair.
+ // Bit I of INITIAL_WRITEBACK is set if INSNS[I] initially had writeback.
+ // ACCESS_SIZE gives the access size for a single arm of the pair.
+ // BASE_DEF gives the initial def of the base register consumed by the pair.
+ //
+ // Given the above, this function looks for a trailing destructive update of the
+ // base register.  If there is one, we choose the first such update after
+ // PAIR_DST that is still in the same BB as our pair.  We return the new def in
+ // *ADD_DEF and the resulting writeback effect in *WRITEBACK_EFFECT.
+ static insn_info *
+ find_trailing_add (insn_info *insns[2],
+ 		   const insn_range_info &pair_range,
+ 		   int initial_writeback,
+ 		   rtx *writeback_effect,
+ 		   def_info **add_def,
+ 		   def_info *base_def,
+ 		   poly_int64 initial_offset,
+ 		   unsigned access_size)
+ {
+   // Punt on frame-related insns, it is better to be conservative and
+   // not try to form writeback pairs here, and means we don't have to
+   // worry about the writeback case in forming REG_FRAME_RELATED_EXPR
+   // notes (see combine_reg_notes).
+   if ((insns[0] && RTX_FRAME_RELATED_P (insns[0]->rtl ()))
+       || RTX_FRAME_RELATED_P (insns[1]->rtl ()))
+     return nullptr;
+ 
+   insn_info *pair_dst = pair_range.singleton ();
+   gcc_assert (pair_dst);
+ 
+   def_info *def = base_def->next_def ();
+ 
+   // In the case that either of the initial pair insns had writeback,
+   // then there will be intervening defs of the base register.
+   // Skip over these.
+   for (int i = 0; i < 2; i++)
+     if (initial_writeback & (1 << i))
+       {
+ 	gcc_assert (def->insn () == insns[i]);
+ 	def = def->next_def ();
+       }
+ 
+   if (!def || def->bb () != pair_dst->bb ())
+     return nullptr;
+ 
+   // DEF should now be the first def of the base register after PAIR_DST.
+   insn_info *cand = def->insn ();
+   gcc_assert (*cand > *pair_dst);
+ 
+   const auto base_regno = base_def->regno ();
+ 
+   // If CAND doesn't also use our base register,
+   // it can't destructively update it.
+   if (!find_access (cand->uses (), base_regno))
+     return nullptr;
+ 
+   auto rti = cand->rtl ();
+ 
+   if (!INSN_P (rti))
+     return nullptr;
+ 
+   auto pat = PATTERN (rti);
+   if (GET_CODE (pat) != SET)
+     return nullptr;
+ 
+   auto dest = XEXP (pat, 0);
+   if (!REG_P (dest) || REGNO (dest) != base_regno)
+     return nullptr;
+ 
+   poly_int64 offset;
+   rtx rhs_base = strip_offset (XEXP (pat, 1), &offset);
+   if (!REG_P (rhs_base)
+       || REGNO (rhs_base) != base_regno
+       || !offset.is_constant ())
+     return nullptr;
+ 
+   // If the initial base offset is zero, we can handle any add offset
+   // (post-inc).  Otherwise, we require the offsets to match (pre-inc).
+   if (!known_eq (initial_offset, 0) && !known_eq (offset, initial_offset))
+     return nullptr;
+ 
+   auto off_hwi = offset.to_constant ();
+ 
+   if (off_hwi % access_size != 0)
+     return nullptr;
+ 
+   off_hwi /= access_size;
+ 
+   if (off_hwi < LDP_MIN_IMM || off_hwi > LDP_MAX_IMM)
+     return nullptr;
+ 
+   auto dump_prefix = [&]()
+     {
+       if (!insns[0])
+ 	fprintf (dump_file, "existing pair i%d: ", insns[1]->uid ());
+       else
+ 	fprintf (dump_file, "  (%d,%d)",
+ 		 insns[0]->uid (), insns[1]->uid ());
+     };
+ 
+   insn_info *hazard = latest_hazard_before (cand, nullptr, insns[1]);
+   if (!hazard || *hazard <= *pair_dst)
+     {
+       if (dump_file)
+ 	{
+ 	  dump_prefix ();
+ 	  fprintf (dump_file,
+ 		   "folding in trailing add (%d) to use writeback form\n",
+ 		   cand->uid ());
+ 	}
+ 
+       *add_def = def;
+       *writeback_effect = copy_rtx (pat);
+       return cand;
+     }
+ 
+   if (dump_file)
+     {
+       dump_prefix ();
+       fprintf (dump_file,
+ 	       "can't fold in trailing add (%d), hazard = %d\n",
+ 	       cand->uid (), hazard->uid ());
+     }
+ 
+   return nullptr;
+ }
+ 
+ // We just emitted a tombstone with uid UID, track it in a bitmap for
+ // this BB so we can easily identify it later when cleaning up tombstones.
+ void
+ ldp_bb_info::track_tombstone (int uid)
+ {
+   if (!m_emitted_tombstone)
+     {
+       // Lazily initialize the bitmap for tracking tombstone insns.
+       bitmap_obstack_initialize (&m_bitmap_obstack);
+       bitmap_initialize (&m_tombstone_bitmap, &m_bitmap_obstack);
+       m_emitted_tombstone = true;
+     }
+ 
+   if (!bitmap_set_bit (&m_tombstone_bitmap, uid))
+     gcc_unreachable (); // Bit should have changed.
+ }
+ 
+ // Reset the debug insn containing USE (the debug insn has been
+ // optimized away).
+ static void
+ reset_debug_use (use_info *use)
+ {
+   auto use_insn = use->insn ();
+   auto use_rtl = use_insn->rtl ();
+   insn_change change (use_insn);
+   change.new_uses = {};
+   INSN_VAR_LOCATION_LOC (use_rtl) = gen_rtx_UNKNOWN_VAR_LOC ();
+   crtl->ssa->change_insn (change);
+ }
+ 
+ // USE is a debug use that needs updating because DEF (a def of the same
+ // register) is being re-ordered over it.  If BASE is non-null, then DEF
+ // is an update of the register BASE by a constant, given by WB_OFFSET,
+ // and we can preserve debug info by accounting for the change in side
+ // effects.
+ static void
+ fixup_debug_use (obstack_watermark &attempt,
+ 		 use_info *use,
+ 		 def_info *def,
+ 		 rtx base,
+ 		 poly_int64 wb_offset)
+ {
+   auto use_insn = use->insn ();
+   if (base)
+     {
+       auto use_rtl = use_insn->rtl ();
+       insn_change change (use_insn);
+ 
+       gcc_checking_assert (REG_P (base) && use->regno () == REGNO (base));
+       change.new_uses = check_remove_regno_access (attempt,
+ 						   change.new_uses,
+ 						   use->regno ());
+ 
+       // The effect of the writeback is to add WB_OFFSET to BASE.  If
+       // we're re-ordering DEF below USE, then we update USE by adding
+       // WB_OFFSET to it.  Otherwise, if we're re-ordering DEF above
+       // USE, we update USE by undoing the effect of the writeback
+       // (subtracting WB_OFFSET).
+       use_info *new_use;
+       if (*def->insn () > *use_insn)
+ 	{
+ 	  // We now need USE_INSN to consume DEF.  Create a new use of DEF.
+ 	  //
+ 	  // N.B. this means until we call change_insns for the main change
+ 	  // group we will temporarily have a debug use consuming a def that
+ 	  // comes after it, but RTL-SSA doesn't currently support updating
+ 	  // debug insns as part of the main change group (together with
+ 	  // nondebug changes), so we will have to live with this update
+ 	  // leaving the IR being temporarily inconsistent.  It seems to
+ 	  // work out OK once the main change group is applied.
+ 	  wb_offset *= -1;
+ 	  new_use = crtl->ssa->create_use (attempt,
+ 					   use_insn,
+ 					   as_a<set_info *> (def));
+ 	}
+       else
+ 	new_use = find_access (def->insn ()->uses (), use->regno ());
+ 
+       change.new_uses = insert_access (attempt, new_use, change.new_uses);
+ 
+       if (dump_file)
+ 	{
+ 	  const char *dir = (*def->insn () < *use_insn) ? "down" : "up";
+ 	  pretty_printer pp;
+ 	  pp_string (&pp, "[");
+ 	  pp_access (&pp, use, 0);
+ 	  pp_string (&pp, "]");
+ 	  pp_string (&pp, " due to wb def ");
+ 	  pp_string (&pp, "[");
+ 	  pp_access (&pp, def, 0);
+ 	  pp_string (&pp, "]");
+ 	  fprintf (dump_file,
+ 		   "  i%d: fix up debug use %s re-ordered %s, "
+ 		   "sub r%u -> r%u + ",
+ 		   use_insn->uid (), pp_formatted_text (&pp),
+ 		   dir, REGNO (base), REGNO (base));
+ 	  print_dec (wb_offset, dump_file);
+ 	  fprintf (dump_file, "\n");
+ 	}
+ 
+       insn_propagation prop (use_rtl, base,
+ 			     plus_constant (GET_MODE (base), base, wb_offset));
+       if (prop.apply_to_pattern (&INSN_VAR_LOCATION_LOC (use_rtl)))
+ 	crtl->ssa->change_insn (change);
+       else
+ 	{
+ 	  if (dump_file)
+ 	    fprintf (dump_file, "  i%d: RTL substitution failed (%s)"
+ 		     ", resetting debug insn", use_insn->uid (),
+ 		     prop.failure_reason);
+ 	  reset_debug_use (use);
+ 	}
+     }
+   else
+     {
+       if (dump_file)
+ 	{
+ 	  pretty_printer pp;
+ 	  pp_string (&pp, "[");
+ 	  pp_access (&pp, use, 0);
+ 	  pp_string (&pp, "] due to re-ordered load def [");
+ 	  pp_access (&pp, def, 0);
+ 	  pp_string (&pp, "]");
+ 	  fprintf (dump_file, "  i%d: resetting debug use %s\n",
+ 		   use_insn->uid (), pp_formatted_text (&pp));
+ 	}
+       reset_debug_use (use);
+     }
+ }
+ 
+ // Update debug uses when folding in a trailing add insn to form a
+ // writeback pair.
+ //
+ // ATTEMPT is used to allocate RTL-SSA temporaries for the changes,
+ // the final pair is placed immediately after PAIR_DST, TRAILING_ADD
+ // is a trailing add insn which is being folded into the pair to make it
+ // use writeback addressing, and WRITEBACK_EFFECT is the pattern for
+ // TRAILING_ADD.
+ static void
+ fixup_debug_uses_trailing_add (obstack_watermark &attempt,
+ 			       insn_info *pair_dst,
+ 			       insn_info *trailing_add,
+ 			       rtx writeback_effect)
+ {
+   rtx base = SET_DEST (writeback_effect);
+ 
+   poly_int64 wb_offset;
+   rtx base2 = strip_offset (SET_SRC (writeback_effect), &wb_offset);
+   gcc_checking_assert (rtx_equal_p (base, base2));
+ 
+   auto defs = trailing_add->defs ();
+   gcc_checking_assert (defs.size () == 1);
+   def_info *def = defs[0];
+ 
+   if (auto set = safe_dyn_cast<set_info *> (def->prev_def ()))
+     for (auto use : iterate_safely (set->debug_insn_uses ()))
+       if (*use->insn () > *pair_dst)
+ 	// DEF is getting re-ordered above USE, fix up USE accordingly.
+ 	fixup_debug_use (attempt, use, def, base, wb_offset);
+ }
+ 
+ // Called from fuse_pair, fixes up any debug uses that will be affected
+ // by the changes.
+ //
+ // ATTEMPT is the obstack watermark used to allocate RTL-SSA temporaries for
+ // the changes, INSNS gives the candidate insns: at this point the use/def
+ // information should still be as on entry to fuse_pair, but the patterns may
+ // have changed, hence we pass ORIG_RTL which contains the original patterns
+ // for the candidate insns.
+ //
+ // The final pair will be placed immediately after PAIR_DST, LOAD_P is true if
+ // it is a load pair, bit I of WRITEBACK is set if INSNS[I] originally had
+ // writeback, and WRITEBACK_EFFECT is an rtx describing the overall update to
+ // the base register in the final pair (if any).  BASE_REGNO gives the register
+ // number of the base register used in the final pair.
+ static void
+ fixup_debug_uses (obstack_watermark &attempt,
+ 		  insn_info *insns[2],
+ 		  rtx orig_rtl[2],
+ 		  insn_info *pair_dst,
+ 		  insn_info *trailing_add,
+ 		  bool load_p,
+ 		  int writeback,
+ 		  rtx writeback_effect,
+ 		  unsigned base_regno)
+ {
+   // USE is a debug use that needs updating because DEF (a def of the
+   // resource) is being re-ordered over it.  If WRITEBACK_PAT is non-NULL,
+   // then it gives the original RTL pattern for DEF's insn, and DEF is a
+   // writeback update of the base register.
+   //
+   // This simply unpacks WRITEBACK_PAT if needed and calls fixup_debug_use.
+   auto update_debug_use = [&](use_info *use, def_info *def,
+ 			      rtx writeback_pat)
+     {
+       poly_int64 offset = 0;
+       rtx base = NULL_RTX;
+       if (writeback_pat)
+ 	{
+ 	  rtx mem = XEXP (writeback_pat, load_p);
+ 	  gcc_checking_assert (GET_RTX_CLASS (GET_CODE (XEXP (mem, 0)))
+ 			       == RTX_AUTOINC);
+ 
+ 	  base = ldp_strip_offset (mem, &offset);
+ 	  gcc_checking_assert (REG_P (base) && REGNO (base) == base_regno);
+ 	}
+       fixup_debug_use (attempt, use, def, base, offset);
+     };
+ 
+   // Reset any debug uses of mem over which we re-ordered a store.
+   //
+   // It would be nice to try and preserve debug info here, but it seems that
+   // would require doing alias analysis to see if the store aliases with the
+   // debug use, which seems a little extravagant just to preserve debug info.
+   if (!load_p)
+     {
+       auto def = memory_access (insns[0]->defs ());
+       auto last_def = memory_access (insns[1]->defs ());
+       for (; def != last_def; def = def->next_def ())
+ 	{
+ 	  auto set = as_a<set_info *> (def);
+ 	  for (auto use : iterate_safely (set->debug_insn_uses ()))
+ 	    {
+ 	      if (dump_file)
+ 		fprintf (dump_file, "  i%d: resetting debug use of mem\n",
+ 			 use->insn ()->uid ());
+ 	      reset_debug_use (use);
+ 	    }
+ 	}
+     }
+ 
+   // Now let's take care of register uses, starting with debug uses
+   // attached to defs from our first insn.
+   for (auto def : insns[0]->defs ())
+     {
+       auto set = dyn_cast<set_info *> (def);
+       if (!set || set->is_mem () || !set->first_debug_insn_use ())
+ 	continue;
+ 
+       def_info *defs[2] = {
+ 	def,
+ 	find_access (insns[1]->defs (), def->regno ())
+       };
+ 
+       rtx writeback_pats[2] = {};
+       if (def->regno () == base_regno)
+ 	for (int i = 0; i < 2; i++)
+ 	  if (writeback & (1 << i))
+ 	    {
+ 	      gcc_checking_assert (defs[i]);
+ 	      writeback_pats[i] = orig_rtl[i];
+ 	    }
+ 
+       // Now that we've characterized the defs involved, go through the
+       // debug uses and determine how to update them (if needed).
+       for (auto use : iterate_safely (set->debug_insn_uses ()))
+ 	{
+ 	  if (*pair_dst < *use->insn () && defs[1])
+ 	    // We're re-ordering defs[1] above a previous use of the
+ 	    // same resource.
+ 	    update_debug_use (use, defs[1], writeback_pats[1]);
+ 	  else if (*pair_dst >= *use->insn ())
+ 	    // We're re-ordering defs[0] below its use.
+ 	    update_debug_use (use, defs[0], writeback_pats[0]);
+ 	}
+     }
+ 
+   // Now let's look at registers which are def'd by the second insn
+   // but not by the first insn, there may still be debug uses of a
+   // previous def which can be affected by moving the second insn up.
+   for (auto def : insns[1]->defs ())
+     {
+       // This should be M log N where N is the number of defs in
+       // insns[0] and M is the number of defs in insns[1].
+       if (def->is_mem () || find_access (insns[0]->defs (), def->regno ()))
+ 	  continue;
+ 
+       auto prev_set = safe_dyn_cast<set_info *> (def->prev_def ());
+       if (!prev_set)
+ 	continue;
+ 
+       rtx writeback_pat = NULL_RTX;
+       if (def->regno () == base_regno && (writeback & 2))
+ 	writeback_pat = orig_rtl[1];
+ 
+       // We have a def in insns[1] which isn't def'd by the first insn.
+       // Look to the previous def and see if it has any debug uses.
+       for (auto use : iterate_safely (prev_set->debug_insn_uses ()))
+ 	if (*pair_dst < *use->insn ())
+ 	  // We're ordering DEF above a previous use of the same register.
+ 	  update_debug_use (use, def, writeback_pat);
+     }
+ 
+   if ((writeback & 2) && !writeback_effect)
+     {
+       // If the second insn initially had writeback but the final
+       // pair does not, then there may be trailing debug uses of the
+       // second writeback def which need re-parenting: do that.
+       auto def = find_access (insns[1]->defs (), base_regno);
+       gcc_assert (def);
+       auto set = as_a<set_info *> (def);
+       for (auto use : iterate_safely (set->debug_insn_uses ()))
+ 	{
+ 	  insn_change change (use->insn ());
+ 	  change.new_uses = check_remove_regno_access (attempt,
+ 						       change.new_uses,
+ 						       base_regno);
+ 	  auto new_use = find_access (insns[0]->uses (), base_regno);
+ 
+ 	  // N.B. insns must have already shared a common base due to writeback.
+ 	  gcc_assert (new_use);
+ 
+ 	  if (dump_file)
+ 	    fprintf (dump_file,
+ 		     "  i%d: cancelling wb, re-parenting trailing debug use\n",
+ 		     use->insn ()->uid ());
+ 
+ 	  change.new_uses = insert_access (attempt, new_use, change.new_uses);
+ 	  crtl->ssa->change_insn (change);
+ 	}
+     }
+   else if (trailing_add)
+     fixup_debug_uses_trailing_add (attempt, pair_dst, trailing_add,
+ 				   writeback_effect);
+ }
+ 
+ // Try and actually fuse the pair given by insns I1 and I2.
+ //
+ // Here we've done enough analysis to know this is safe, we only
+ // reject the pair at this stage if either the tuning policy says to,
+ // or recog fails on the final pair insn.
+ //
+ // LOAD_P is true for loads, ACCESS_SIZE gives the access size of each
+ // candidate insn.  Bit i of WRITEBACK is set if the ith insn (in program
+ // order) uses writeback.
+ //
+ // BASE gives the chosen base candidate for the pair and MOVE_RANGE is
+ // a singleton range which says where to place the pair.
+ bool
+ ldp_bb_info::fuse_pair (bool load_p,
+ 			unsigned access_size,
+ 			int writeback,
+ 			insn_info *i1, insn_info *i2,
+ 			base_cand &base,
+ 			const insn_range_info &move_range)
+ {
+   auto attempt = crtl->ssa->new_change_attempt ();
+ 
+   auto make_change = [&attempt](insn_info *insn)
+     {
+       return crtl->ssa->change_alloc<insn_change> (attempt, insn);
+     };
+   auto make_delete = [&attempt](insn_info *insn)
+     {
+       return crtl->ssa->change_alloc<insn_change> (attempt,
+ 						   insn,
+ 						   insn_change::DELETE);
+     };
+ 
+   insn_info *first = (*i1 < *i2) ? i1 : i2;
+   insn_info *second = (first == i1) ? i2 : i1;
+ 
+   insn_info *pair_dst = move_range.singleton ();
+   gcc_assert (pair_dst);
+ 
+   insn_info *insns[2] = { first, second };
+ 
+   auto_vec<insn_change *> changes;
+   auto_vec<int, 2> tombstone_uids (2);
+ 
+   rtx pats[2] = {
+     PATTERN (first->rtl ()),
+     PATTERN (second->rtl ())
+   };
+ 
+   // Make copies of the patterns as we might need to refer to the original RTL
+   // later, for example when updating debug uses (which is after we've updated
+   // one or both of the patterns in the candidate insns).
+   rtx orig_rtl[2];
+   for (int i = 0; i < 2; i++)
+     orig_rtl[i] = copy_rtx (pats[i]);
+ 
+   use_array input_uses[2] = { first->uses (), second->uses () };
+   def_array input_defs[2] = { first->defs (), second->defs () };
+ 
+   int changed_insn = -1;
+   if (base.from_insn != -1)
+     {
+       // If we're not already using a shared base, we need
+       // to re-write one of the accesses to use the base from
+       // the other insn.
+       gcc_checking_assert (base.from_insn == 0 || base.from_insn == 1);
+       changed_insn = !base.from_insn;
+ 
+       rtx base_pat = pats[base.from_insn];
+       rtx change_pat = pats[changed_insn];
+       rtx base_mem = XEXP (base_pat, load_p);
+       rtx change_mem = XEXP (change_pat, load_p);
+ 
+       const bool lower_base_p = (insns[base.from_insn] == i1);
+       HOST_WIDE_INT adjust_amt = access_size;
+       if (!lower_base_p)
+ 	adjust_amt *= -1;
+ 
+       rtx change_reg = XEXP (change_pat, !load_p);
+       machine_mode mode_for_mem = GET_MODE (change_mem);
+       rtx effective_base = drop_writeback (base_mem);
+       rtx new_mem = adjust_address_nv (effective_base,
+ 				       mode_for_mem,
+ 				       adjust_amt);
+       rtx new_set = load_p
+ 	? gen_rtx_SET (change_reg, new_mem)
+ 	: gen_rtx_SET (new_mem, change_reg);
+ 
+       pats[changed_insn] = new_set;
+ 
+       auto keep_use = [&](use_info *u)
+ 	{
+ 	  return refers_to_regno_p (u->regno (), u->regno () + 1,
+ 				    change_pat, &XEXP (change_pat, load_p));
+ 	};
+ 
+       // Drop any uses that only occur in the old address.
+       input_uses[changed_insn] = filter_accesses (attempt,
+ 						  input_uses[changed_insn],
+ 						  keep_use);
+     }
+ 
+   rtx writeback_effect = NULL_RTX;
+   if (writeback)
+     writeback_effect = extract_writebacks (load_p, pats, changed_insn);
+ 
+   const auto base_regno = base.def->regno ();
+ 
+   if (base.from_insn == -1 && (writeback & 1))
+     {
+       // If the first of the candidate insns had a writeback form, we'll need to
+       // drop the use of the updated base register from the second insn's uses.
+       //
+       // N.B. we needn't worry about the base register occurring as a store
+       // operand, as we checked that there was no non-address true dependence
+       // between the insns in try_fuse_pair.
+       gcc_checking_assert (find_access (input_uses[1], base_regno));
+       input_uses[1] = check_remove_regno_access (attempt,
+ 						 input_uses[1],
+ 						 base_regno);
+     }
+ 
+   // Go through and drop uses that only occur in register notes,
+   // as we won't be preserving those.
+   for (int i = 0; i < 2; i++)
+     {
+       auto rti = insns[i]->rtl ();
+       if (!REG_NOTES (rti))
+ 	continue;
+ 
+       input_uses[i] = remove_note_accesses (attempt, input_uses[i]);
+     }
+ 
+   // Edge case: if the first insn is a writeback load and the
+   // second insn is a non-writeback load which transfers into the base
+   // register, then we should drop the writeback altogether as the
+   // update of the base register from the second load should prevail.
+   //
+   // For example:
+   //   ldr x2, [x1], #8
+   //   ldr x1, [x1]
+   //   -->
+   //   ldp x2, x1, [x1]
+   if (writeback == 1
+       && load_p
+       && find_access (input_defs[1], base_regno))
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "  ldp: i%d has wb but subsequent i%d has non-wb "
+ 		 "update of base (r%d), dropping wb\n",
+ 		 insns[0]->uid (), insns[1]->uid (), base_regno);
+       gcc_assert (writeback_effect);
+       writeback_effect = NULL_RTX;
+     }
+ 
+   // So far the patterns have been in instruction order,
+   // now we want them in offset order.
+   if (i1 != first)
+     std::swap (pats[0], pats[1]);
+ 
+   poly_int64 offsets[2];
+   for (int i = 0; i < 2; i++)
+     {
+       rtx mem = XEXP (pats[i], load_p);
+       gcc_checking_assert (MEM_P (mem));
+       rtx base = strip_offset (XEXP (mem, 0), offsets + i);
+       gcc_checking_assert (REG_P (base));
+       gcc_checking_assert (base_regno == REGNO (base));
+     }
+ 
+   // If either of the original insns had writeback, but the resulting pair insn
+   // does not (can happen e.g. in the ldp edge case above, or if the writeback
+   // effects cancel out), then drop the def(s) of the base register as
+   // appropriate.
+   //
+   // Also drop the first def in the case that both of the original insns had
+   // writeback.  The second def could well have uses, but the first def should
+   // only be used by the second insn (and we dropped that use above).
+   for (int i = 0; i < 2; i++)
+     if ((!writeback_effect && (writeback & (1 << i)))
+ 	|| (i == 0 && writeback == 3))
+       input_defs[i] = check_remove_regno_access (attempt,
+ 						 input_defs[i],
+ 						 base_regno);
+ 
+   // If we don't currently have a writeback pair, and we don't have
+   // a load that clobbers the base register, look for a trailing destructive
+   // update of the base register and try and fold it in to make this into a
+   // writeback pair.
+   insn_info *trailing_add = nullptr;
+   if (aarch64_ldp_writeback > 1
+       && !writeback_effect
+       && (!load_p || (!refers_to_regno_p (base_regno, base_regno + 1,
+ 					 XEXP (pats[0], 0), nullptr)
+ 		      && !refers_to_regno_p (base_regno, base_regno + 1,
+ 					     XEXP (pats[1], 0), nullptr))))
+     {
+       def_info *add_def;
+       trailing_add = find_trailing_add (insns, move_range, writeback,
+ 					&writeback_effect,
+ 					&add_def, base.def, offsets[0],
+ 					access_size);
+       if (trailing_add)
+ 	{
+ 	  // The def of the base register from the trailing add should prevail.
+ 	  input_defs[0] = insert_access (attempt, add_def, input_defs[0]);
+ 	  gcc_assert (input_defs[0].is_valid ());
+ 	}
+     }
+ 
+   // Now that we know what base mem we're going to use, check if it's OK
+   // with the ldp/stp policy.
+   rtx first_mem = XEXP (pats[0], load_p);
+   if (!aarch64_mem_ok_with_ldpstp_policy_model (first_mem,
+ 						load_p,
+ 						GET_MODE (first_mem)))
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "punting on pair (%d,%d), ldp/stp policy says no\n",
+ 		 i1->uid (), i2->uid ());
+       return false;
+     }
+ 
+   rtx reg_notes = combine_reg_notes (first, second, load_p);
+ 
+   rtx pair_pat;
+   if (writeback_effect)
+     {
+       auto patvec = gen_rtvec (3, writeback_effect, pats[0], pats[1]);
+       pair_pat = gen_rtx_PARALLEL (VOIDmode, patvec);
+     }
+   else if (load_p)
+     pair_pat = aarch64_gen_load_pair (XEXP (pats[0], 0),
+ 				      XEXP (pats[1], 0),
+ 				      XEXP (pats[0], 1));
+   else
+     pair_pat = aarch64_gen_store_pair (XEXP (pats[0], 0),
+ 				       XEXP (pats[0], 1),
+ 				       XEXP (pats[1], 1));
+ 
+   insn_change *pair_change = nullptr;
+   auto set_pair_pat = [pair_pat,reg_notes](insn_change *change) {
+     rtx_insn *rti = change->insn ()->rtl ();
+     validate_unshare_change (rti, &PATTERN (rti), pair_pat, true);
+     validate_change (rti, &REG_NOTES (rti), reg_notes, true);
+   };
+ 
+   if (load_p)
+     {
+       changes.safe_push (make_delete (first));
+       pair_change = make_change (second);
+       changes.safe_push (pair_change);
+ 
+       pair_change->move_range = move_range;
+       pair_change->new_defs = merge_access_arrays (attempt,
+ 						   input_defs[0],
+ 						   input_defs[1]);
+       gcc_assert (pair_change->new_defs.is_valid ());
+ 
+       pair_change->new_uses
+ 	= merge_access_arrays (attempt,
+ 			       drop_memory_access (input_uses[0]),
+ 			       drop_memory_access (input_uses[1]));
+       gcc_assert (pair_change->new_uses.is_valid ());
+       set_pair_pat (pair_change);
+     }
+   else
+     {
+       using Action = stp_change_builder::action;
+       insn_info *store_to_change = try_repurpose_store (first, second,
+ 							move_range);
+       stp_change_builder builder (insns, store_to_change, pair_dst);
+       insn_change *change;
+       set_info *new_set = nullptr;
+       for (; !builder.done (); builder.advance ())
+ 	{
+ 	  auto action = builder.get_change ();
+ 	  change = (action.type == Action::INSERT)
+ 	    ? nullptr : make_change (action.insn);
+ 	  switch (action.type)
+ 	    {
+ 	    case Action::CHANGE:
+ 	    {
+ 	      set_pair_pat (change);
+ 	      change->new_uses = merge_access_arrays (attempt,
+ 						      input_uses[0],
+ 						      input_uses[1]);
+ 	      auto d1 = drop_memory_access (input_defs[0]);
+ 	      auto d2 = drop_memory_access (input_defs[1]);
+ 	      change->new_defs = merge_access_arrays (attempt, d1, d2);
+ 	      gcc_assert (change->new_defs.is_valid ());
+ 	      def_info *stp_def = memory_access (change->insn ()->defs ());
+ 	      change->new_defs = insert_access (attempt,
+ 						stp_def,
+ 						change->new_defs);
+ 	      gcc_assert (change->new_defs.is_valid ());
+ 	      change->move_range = move_range;
+ 	      pair_change = change;
+ 	      break;
+ 	    }
+ 	    case Action::TOMBSTONE:
+ 	    {
+ 	      tombstone_uids.quick_push (change->insn ()->uid ());
+ 	      rtx_insn *rti = change->insn ()->rtl ();
+ 	      validate_change (rti, &PATTERN (rti), gen_tombstone (), true);
+ 	      validate_change (rti, &REG_NOTES (rti), NULL_RTX, true);
+ 	      change->new_uses = use_array (nullptr, 0);
+ 	      break;
+ 	    }
+ 	    case Action::INSERT:
+ 	    {
+ 	      if (dump_file)
+ 		fprintf (dump_file,
+ 			 "  stp: cannot re-purpose candidate stores\n");
+ 
+ 	      auto new_insn = crtl->ssa->create_insn (attempt, INSN, pair_pat);
+ 	      change = make_change (new_insn);
+ 	      change->move_range = move_range;
+ 	      change->new_uses = merge_access_arrays (attempt,
+ 						      input_uses[0],
+ 						      input_uses[1]);
+ 	      gcc_assert (change->new_uses.is_valid ());
+ 
+ 	      auto d1 = drop_memory_access (input_defs[0]);
+ 	      auto d2 = drop_memory_access (input_defs[1]);
+ 	      change->new_defs = merge_access_arrays (attempt, d1, d2);
+ 	      gcc_assert (change->new_defs.is_valid ());
+ 
+ 	      new_set = crtl->ssa->create_set (attempt, new_insn, memory);
+ 	      change->new_defs = insert_access (attempt, new_set,
+ 						change->new_defs);
+ 	      gcc_assert (change->new_defs.is_valid ());
+ 	      pair_change = change;
+ 	      break;
+ 	    }
+ 	    case Action::FIXUP_USE:
+ 	    {
+ 	      // This use now needs to consume memory from our stp.
+ 	      if (dump_file)
+ 		fprintf (dump_file,
+ 			 "  stp: changing i%d to use mem from new stp "
+ 			 "(after i%d)\n",
+ 			 action.insn->uid (), pair_dst->uid ());
+ 	      change->new_uses = drop_memory_access (change->new_uses);
+ 	      gcc_assert (new_set);
+ 	      auto new_use = crtl->ssa->create_use (attempt, action.insn,
+ 						    new_set);
+ 	      change->new_uses = insert_access (attempt, new_use,
+ 						change->new_uses);
+ 	      break;
+ 	    }
+ 	    }
+ 	  changes.safe_push (change);
+ 	}
+     }
+ 
+   if (trailing_add)
+     changes.safe_push (make_delete (trailing_add));
+   else if ((writeback & 2) && !writeback_effect)
+     {
+       // The second insn initially had writeback but now the pair does not,
+       // need to update any nondebug uses of the base register def in the
+       // second insn.  We'll take care of debug uses later.
+       auto def = find_access (insns[1]->defs (), base_regno);
+       gcc_assert (def);
+       auto set = dyn_cast<set_info *> (def);
+       if (set && set->has_nondebug_uses ())
+ 	{
+ 	  auto orig_use = find_access (insns[0]->uses (), base_regno);
+ 	  for (auto use : set->nondebug_insn_uses ())
+ 	    {
+ 	      auto change = make_change (use->insn ());
+ 	      change->new_uses = check_remove_regno_access (attempt,
+ 							    change->new_uses,
+ 							    base_regno);
+ 	      change->new_uses = insert_access (attempt,
+ 						orig_use,
+ 						change->new_uses);
+ 	      changes.safe_push (change);
+ 	    }
+ 	}
+     }
+ 
+   auto is_changing = insn_is_changing (changes);
+   for (unsigned i = 0; i < changes.length (); i++)
+     gcc_assert (rtl_ssa::restrict_movement_ignoring (*changes[i], is_changing));
+ 
+   // Check the pair pattern is recog'd.
+   if (!rtl_ssa::recog_ignoring (attempt, *pair_change, is_changing))
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "  failed to form pair, recog failed\n");
+ 
+       // Free any reg notes we allocated.
+       while (reg_notes)
+ 	{
+ 	  rtx next = XEXP (reg_notes, 1);
+ 	  free_EXPR_LIST_node (reg_notes);
+ 	  reg_notes = next;
+ 	}
+       cancel_changes (0);
+       return false;
+     }
+ 
+   gcc_assert (crtl->ssa->verify_insn_changes (changes));
+ 
+   // Fix up any debug uses that will be affected by the changes.
+   if (MAY_HAVE_DEBUG_INSNS)
+     fixup_debug_uses (attempt, insns, orig_rtl, pair_dst, trailing_add,
+ 		      load_p, writeback, writeback_effect, base_regno);
+ 
+   confirm_change_group ();
+   crtl->ssa->change_insns (changes);
+ 
+   gcc_checking_assert (tombstone_uids.length () <= 2);
+   for (auto uid : tombstone_uids)
+     track_tombstone (uid);
+ 
+   return true;
+ }
+ 
+ // Return true if STORE_INSN may modify mem rtx MEM.  Make sure we keep
+ // within our BUDGET for alias analysis.
+ static bool
+ store_modifies_mem_p (rtx mem, insn_info *store_insn, int &budget)
+ {
+   if (!budget)
+     {
+       if (dump_file)
+ 	{
+ 	  fprintf (dump_file,
+ 		   "exceeded budget, assuming store %d aliases with mem ",
+ 		   store_insn->uid ());
+ 	  print_simple_rtl (dump_file, mem);
+ 	  fprintf (dump_file, "\n");
+ 	}
+ 
+       return true;
+     }
+ 
+   budget--;
+   return memory_modified_in_insn_p (mem, store_insn->rtl ());
+ }
+ 
+ // Return true if LOAD may be modified by STORE.  Make sure we keep
+ // within our BUDGET for alias analysis.
+ static bool
+ load_modified_by_store_p (insn_info *load,
+ 			  insn_info *store,
+ 			  int &budget)
+ {
+   gcc_checking_assert (budget >= 0);
+ 
+   if (!budget)
+     {
+       if (dump_file)
+ 	{
+ 	  fprintf (dump_file,
+ 		   "exceeded budget, assuming load %d aliases with store %d\n",
+ 		   load->uid (), store->uid ());
+ 	}
+       return true;
+     }
+ 
+   // It isn't safe to re-order stores over calls.
+   if (CALL_P (load->rtl ()))
+     return true;
+ 
+   budget--;
+ 
+   // Iterate over all MEMs in the load, seeing if any alias with
+   // our store.
+   subrtx_var_iterator::array_type array;
+   rtx pat = PATTERN (load->rtl ());
+   FOR_EACH_SUBRTX_VAR (iter, array, pat, NONCONST)
+     if (MEM_P (*iter) && memory_modified_in_insn_p (*iter, store->rtl ()))
+       return true;
+ 
+   return false;
+ }
+ 
+ // Virtual base class for load/store walkers used in alias analysis.
+ struct alias_walker
+ {
+   virtual bool conflict_p (int &budget) const = 0;
+   virtual insn_info *insn () const = 0;
+   virtual bool valid () const = 0;
+   virtual void advance () = 0;
+ };
+ 
+ // Implement some common functionality used by both store_walker
+ // and load_walker.
+ template<bool reverse>
+ class def_walker : public alias_walker
+ {
+ protected:
+   using def_iter_t = typename std::conditional<reverse,
+ 	reverse_def_iterator, def_iterator>::type;
+ 
+   static use_info *start_use_chain (def_iter_t &def_iter)
+   {
+     set_info *set = nullptr;
+     for (; *def_iter; def_iter++)
+       {
+ 	set = dyn_cast<set_info *> (*def_iter);
+ 	if (!set)
+ 	  continue;
+ 
+ 	use_info *use = reverse
+ 	  ? set->last_nondebug_insn_use ()
+ 	  : set->first_nondebug_insn_use ();
+ 
+ 	if (use)
+ 	  return use;
+       }
+ 
+     return nullptr;
+   }
+ 
+   def_iter_t def_iter;
+   insn_info *limit;
+   def_walker (def_info *def, insn_info *limit) :
+     def_iter (def), limit (limit) {}
+ 
+   virtual bool iter_valid () const { return *def_iter; }
+ 
+ public:
+   insn_info *insn () const override { return (*def_iter)->insn (); }
+   void advance () override { def_iter++; }
+   bool valid () const override final
+   {
+     if (!iter_valid ())
+       return false;
+ 
+     if (reverse)
+       return *(insn ()) > *limit;
+     else
+       return *(insn ()) < *limit;
+   }
+ };
+ 
+ // alias_walker that iterates over stores.
+ template<bool reverse, typename InsnPredicate>
+ class store_walker : public def_walker<reverse>
+ {
+   rtx cand_mem;
+   InsnPredicate tombstone_p;
+ 
+ public:
+   store_walker (def_info *mem_def, rtx mem, insn_info *limit_insn,
+ 		InsnPredicate tombstone_fn) :
+     def_walker<reverse> (mem_def, limit_insn),
+     cand_mem (mem), tombstone_p (tombstone_fn) {}
+ 
+   bool conflict_p (int &budget) const override final
+   {
+     if (tombstone_p (this->insn ()))
+       return false;
+ 
+     return store_modifies_mem_p (cand_mem, this->insn (), budget);
+   }
+ };
+ 
+ // alias_walker that iterates over loads.
+ template<bool reverse>
+ class load_walker : public def_walker<reverse>
+ {
+   using Base = def_walker<reverse>;
+   using use_iter_t = typename std::conditional<reverse,
+ 	reverse_use_iterator, nondebug_insn_use_iterator>::type;
+ 
+   use_iter_t use_iter;
+   insn_info *cand_store;
+ 
+   bool iter_valid () const override final { return *use_iter; }
+ 
+ public:
+   void advance () override final
+   {
+     use_iter++;
+     if (*use_iter)
+       return;
+     this->def_iter++;
+     use_iter = Base::start_use_chain (this->def_iter);
+   }
+ 
+   insn_info *insn () const override final
+   {
+     return (*use_iter)->insn ();
+   }
+ 
+   bool conflict_p (int &budget) const override final
+   {
+     return load_modified_by_store_p (insn (), cand_store, budget);
+   }
+ 
+   load_walker (def_info *def, insn_info *store, insn_info *limit_insn)
+     : Base (def, limit_insn),
+       use_iter (Base::start_use_chain (this->def_iter)),
+       cand_store (store) {}
+ };
+ 
+ // Process our alias_walkers in a round-robin fashion, proceeding until
+ // nothing more can be learned from alias analysis.
+ //
+ // We try to maintain the invariant that if a walker becomes invalid, we
+ // set its pointer to null.
+ static void
+ do_alias_analysis (insn_info *alias_hazards[4],
+ 		   alias_walker *walkers[4],
+ 		   bool load_p)
+ {
+   const int n_walkers = 2 + (2 * !load_p);
+   int budget = aarch64_ldp_alias_check_limit;
+ 
+   auto next_walker = [walkers,n_walkers](int current) -> int {
+     for (int j = 1; j <= n_walkers; j++)
+       {
+ 	int idx = (current + j) % n_walkers;
+ 	if (walkers[idx])
+ 	  return idx;
+       }
+     return -1;
+   };
+ 
+   int i = -1;
+   for (int j = 0; j < n_walkers; j++)
+     {
+       alias_hazards[j] = nullptr;
+       if (!walkers[j])
+ 	continue;
+ 
+       if (!walkers[j]->valid ())
+ 	walkers[j] = nullptr;
+       else if (i == -1)
+ 	i = j;
+     }
+ 
+   while (i >= 0)
+     {
+       int insn_i = i % 2;
+       int paired_i = (i & 2) + !insn_i;
+       int pair_fst = (i & 2);
+       int pair_snd = (i & 2) + 1;
+ 
+       if (walkers[i]->conflict_p (budget))
+ 	{
+ 	  alias_hazards[i] = walkers[i]->insn ();
+ 
+ 	  // We got an aliasing conflict for this {load,store} walker,
+ 	  // so we don't need to walk any further.
+ 	  walkers[i] = nullptr;
+ 
+ 	  // If we have a pair of alias conflicts that prevent
+ 	  // forming the pair, stop.  There's no need to do further
+ 	  // analysis.
+ 	  if (alias_hazards[paired_i]
+ 	      && (*alias_hazards[pair_fst] <= *alias_hazards[pair_snd]))
+ 	    return;
+ 
+ 	  if (!load_p)
+ 	    {
+ 	      int other_pair_fst = (pair_fst ? 0 : 2);
+ 	      int other_paired_i = other_pair_fst + !insn_i;
+ 
+ 	      int x_pair_fst = (i == pair_fst) ? i : other_paired_i;
+ 	      int x_pair_snd = (i == pair_fst) ? other_paired_i : i;
+ 
+ 	      // Similarly, handle the case where we have a {load,store}
+ 	      // or {store,load} alias hazard pair that prevents forming
+ 	      // the pair.
+ 	      if (alias_hazards[other_paired_i]
+ 		  && *alias_hazards[x_pair_fst] <= *alias_hazards[x_pair_snd])
+ 		return;
+ 	    }
+ 	}
+ 
+       if (walkers[i])
+ 	{
+ 	  walkers[i]->advance ();
+ 
+ 	  if (!walkers[i]->valid ())
+ 	    walkers[i] = nullptr;
+ 	}
+ 
+       i = next_walker (i);
+     }
+ }
+ 
+ // Given INSNS (in program order) which are known to be adjacent, look
+ // to see if either insn has a suitable RTL (register) base that we can
+ // use to form a pair.  Push these to BASE_CANDS if we find any.  CAND_MEMs
+ // gives the relevant mems from the candidate insns, ACCESS_SIZE gives the
+ // size of a single candidate access, and REVERSED says whether the accesses
+ // are inverted in offset order.
+ //
+ // Returns an integer where bit (1 << i) is set if INSNS[i] uses writeback
+ // addressing.
+ static int
+ get_viable_bases (insn_info *insns[2],
+ 		  vec<base_cand> &base_cands,
+ 		  rtx cand_mems[2],
+ 		  unsigned access_size,
+ 		  bool reversed)
+ {
+   // We discovered this pair through a common base.  Need to ensure that
+   // we have a common base register that is live at both locations.
+   def_info *base_defs[2] = {};
+   int writeback = 0;
+   for (int i = 0; i < 2; i++)
+     {
+       const bool is_lower = (i == reversed);
+       poly_int64 poly_off;
+       rtx base = ldp_strip_offset (cand_mems[i], &poly_off);
+       if (GET_RTX_CLASS (GET_CODE (XEXP (cand_mems[i], 0))) == RTX_AUTOINC)
+ 	writeback |= (1 << i);
+ 
+       if (!REG_P (base) || !poly_off.is_constant ())
+ 	continue;
+ 
+       // Punt on accesses relative to eliminable regs.  See the comment in
+       // ldp_bb_info::track_access for a detailed explanation of this.
+       if (!reload_completed
+ 	  && (REGNO (base) == FRAME_POINTER_REGNUM
+ 	      || REGNO (base) == ARG_POINTER_REGNUM))
+ 	continue;
+ 
+       HOST_WIDE_INT base_off = poly_off.to_constant ();
+ 
+       // It should be unlikely that we ever punt here, since MEM_EXPR offset
+       // alignment should be a good proxy for register offset alignment.
+       if (base_off % access_size != 0)
+ 	{
+ 	  if (dump_file)
+ 	    fprintf (dump_file,
+ 		     "base not viable, offset misaligned (insn %d)\n",
+ 		     insns[i]->uid ());
+ 	  continue;
+ 	}
+ 
+       base_off /= access_size;
+ 
+       if (!is_lower)
+ 	base_off--;
+ 
+       if (base_off < LDP_MIN_IMM || base_off > LDP_MAX_IMM)
+ 	continue;
+ 
+       use_info *use = find_access (insns[i]->uses (), REGNO (base));
+       gcc_assert (use);
+       base_defs[i] = use->def ();
+     }
+ 
+   if (!base_defs[0] && !base_defs[1])
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "no viable base register for pair (%d,%d)\n",
+ 		 insns[0]->uid (), insns[1]->uid ());
+       return writeback;
+     }
+ 
+   for (int i = 0; i < 2; i++)
+     if ((writeback & (1 << i)) && !base_defs[i])
+       {
+ 	if (dump_file)
+ 	  fprintf (dump_file, "insn %d has writeback but base isn't viable\n",
+ 		   insns[i]->uid ());
+ 	return writeback;
+       }
+ 
+   if (writeback == 3
+       && base_defs[0]->regno () != base_defs[1]->regno ())
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "pair (%d,%d): double writeback with distinct regs (%d,%d): "
+ 		 "punting\n",
+ 		 insns[0]->uid (), insns[1]->uid (),
+ 		 base_defs[0]->regno (), base_defs[1]->regno ());
+       return writeback;
+     }
+ 
+   if (base_defs[0] && base_defs[1]
+       && base_defs[0]->regno () == base_defs[1]->regno ())
+     {
+       // Easy case: insns already share the same base reg.
+       base_cands.quick_push (base_defs[0]);
+       return writeback;
+     }
+ 
+   // Otherwise, we know that one of the bases must change.
+   //
+   // Note that if there is writeback we must use the writeback base
+   // (we know now there is exactly one).
+   for (int i = 0; i < 2; i++)
+     if (base_defs[i] && (!writeback || (writeback & (1 << i))))
+       base_cands.quick_push (base_cand { base_defs[i], i });
+ 
+   return writeback;
+ }
+ 
+ // Given two adjacent memory accesses of the same size, I1 and I2, try
+ // and see if we can merge them into a ldp or stp.
+ //
+ // ACCESS_SIZE gives the (common) size of a single access, LOAD_P is true
+ // if the accesses are both loads, otherwise they are both stores.
+ bool
+ ldp_bb_info::try_fuse_pair (bool load_p, unsigned access_size,
+ 			    insn_info *i1, insn_info *i2)
+ {
+   if (dump_file)
+     fprintf (dump_file, "analyzing pair (load=%d): (%d,%d)\n",
+ 	     load_p, i1->uid (), i2->uid ());
+ 
+   insn_info *insns[2];
+   bool reversed = false;
+   if (*i1 < *i2)
+     {
+       insns[0] = i1;
+       insns[1] = i2;
+     }
+   else
+     {
+       insns[0] = i2;
+       insns[1] = i1;
+       reversed = true;
+     }
+ 
+   rtx cand_mems[2];
+   rtx reg_ops[2];
+   rtx pats[2];
+   for (int i = 0; i < 2; i++)
+     {
+       pats[i] = PATTERN (insns[i]->rtl ());
+       cand_mems[i] = XEXP (pats[i], load_p);
+       reg_ops[i] = XEXP (pats[i], !load_p);
+     }
+ 
+   if (load_p && reg_overlap_mentioned_p (reg_ops[0], reg_ops[1]))
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "punting on ldp due to reg conflcits (%d,%d)\n",
+ 		 insns[0]->uid (), insns[1]->uid ());
+       return false;
+     }
+ 
+   if (cfun->can_throw_non_call_exceptions
+       && find_reg_note (insns[0]->rtl (), REG_EH_REGION, NULL_RTX)
+       && find_reg_note (insns[1]->rtl (), REG_EH_REGION, NULL_RTX))
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "can't combine insns with EH side effects (%d,%d)\n",
+ 		 insns[0]->uid (), insns[1]->uid ());
+       return false;
+     }
+ 
+   auto_vec<base_cand, 2> base_cands (2);
+ 
+   int writeback = get_viable_bases (insns, base_cands, cand_mems,
+ 				    access_size, reversed);
+   if (base_cands.is_empty ())
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "no viable base for pair (%d,%d)\n",
+ 		 insns[0]->uid (), insns[1]->uid ());
+       return false;
+     }
+ 
+   // Punt on frame-related insns with writeback.  We probably won't see
+   // these in practice, but this is conservative and ensures we don't
+   // have to worry about these later on.
+   if (writeback && (RTX_FRAME_RELATED_P (i1->rtl ())
+ 		    || RTX_FRAME_RELATED_P (i2->rtl ())))
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "rejecting pair (%d,%d): frame-related insn with writeback\n",
+ 		 i1->uid (), i2->uid ());
+       return false;
+     }
+ 
+   rtx *ignore = &XEXP (pats[1], load_p);
+   for (auto use : insns[1]->uses ())
+     if (!use->is_mem ()
+ 	&& refers_to_regno_p (use->regno (), use->regno () + 1, pats[1], ignore)
+ 	&& use->def () && use->def ()->insn () == insns[0])
+       {
+ 	// N.B. we allow a true dependence on the base address, as this
+ 	// happens in the case of auto-inc accesses.  Consider a post-increment
+ 	// load followed by a regular indexed load, for example.
+ 	if (dump_file)
+ 	  fprintf (dump_file,
+ 		   "%d has non-address true dependence on %d, rejecting pair\n",
+ 		   insns[1]->uid (), insns[0]->uid ());
+ 	return false;
+       }
+ 
+   unsigned i = 0;
+   while (i < base_cands.length ())
+     {
+       base_cand &cand = base_cands[i];
+ 
+       rtx *ignore[2] = {};
+       for (int j = 0; j < 2; j++)
+ 	if (cand.from_insn == !j)
+ 	  ignore[j] = &XEXP (cand_mems[j], 0);
+ 
+       insn_info *h = first_hazard_after (insns[0], ignore[0]);
+       if (h && *h < *insns[1])
+ 	cand.hazards[0] = h;
+ 
+       h = latest_hazard_before (insns[1], ignore[1]);
+       if (h && *h > *insns[0])
+ 	cand.hazards[1] = h;
+ 
+       if (!cand.viable ())
+ 	{
+ 	  if (dump_file)
+ 	    fprintf (dump_file,
+ 		     "pair (%d,%d): rejecting base %d due to dataflow "
+ 		     "hazards (%d,%d)\n",
+ 		     insns[0]->uid (),
+ 		     insns[1]->uid (),
+ 		     cand.def->regno (),
+ 		     cand.hazards[0]->uid (),
+ 		     cand.hazards[1]->uid ());
+ 
+ 	  base_cands.ordered_remove (i);
+ 	}
+       else
+ 	i++;
+     }
+ 
+   if (base_cands.is_empty ())
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "can't form pair (%d,%d) due to dataflow hazards\n",
+ 		 insns[0]->uid (), insns[1]->uid ());
+       return false;
+     }
+ 
+   insn_info *alias_hazards[4] = {};
+ 
+   // First def of memory after the first insn, and last def of memory
+   // before the second insn, respectively.
+   def_info *mem_defs[2] = {};
+   if (load_p)
+     {
+       if (!MEM_READONLY_P (cand_mems[0]))
+ 	{
+ 	  mem_defs[0] = memory_access (insns[0]->uses ())->def ();
+ 	  gcc_checking_assert (mem_defs[0]);
+ 	  mem_defs[0] = mem_defs[0]->next_def ();
+ 	}
+       if (!MEM_READONLY_P (cand_mems[1]))
+ 	{
+ 	  mem_defs[1] = memory_access (insns[1]->uses ())->def ();
+ 	  gcc_checking_assert (mem_defs[1]);
+ 	}
+     }
+   else
+     {
+       mem_defs[0] = memory_access (insns[0]->defs ())->next_def ();
+       mem_defs[1] = memory_access (insns[1]->defs ())->prev_def ();
+       gcc_checking_assert (mem_defs[0]);
+       gcc_checking_assert (mem_defs[1]);
+     }
+ 
+   auto tombstone_p = [&](insn_info *insn) -> bool {
+     return m_emitted_tombstone
+ 	   && bitmap_bit_p (&m_tombstone_bitmap, insn->uid ());
+   };
+ 
+   store_walker<false, decltype(tombstone_p)>
+     forward_store_walker (mem_defs[0], cand_mems[0], insns[1], tombstone_p);
+ 
+   store_walker<true, decltype(tombstone_p)>
+     backward_store_walker (mem_defs[1], cand_mems[1], insns[0], tombstone_p);
+ 
+   alias_walker *walkers[4] = {};
+   if (mem_defs[0])
+     walkers[0] = &forward_store_walker;
+   if (mem_defs[1])
+     walkers[1] = &backward_store_walker;
+ 
+   if (load_p && (mem_defs[0] || mem_defs[1]))
+     do_alias_analysis (alias_hazards, walkers, load_p);
+   else
+     {
+       // We want to find any loads hanging off the first store.
+       mem_defs[0] = memory_access (insns[0]->defs ());
+       load_walker<false> forward_load_walker (mem_defs[0], insns[0], insns[1]);
+       load_walker<true> backward_load_walker (mem_defs[1], insns[1], insns[0]);
+       walkers[2] = &forward_load_walker;
+       walkers[3] = &backward_load_walker;
+       do_alias_analysis (alias_hazards, walkers, load_p);
+       // Now consolidate hazards back down.
+       if (alias_hazards[2]
+ 	  && (!alias_hazards[0] || (*alias_hazards[2] < *alias_hazards[0])))
+ 	alias_hazards[0] = alias_hazards[2];
+ 
+       if (alias_hazards[3]
+ 	  && (!alias_hazards[1] || (*alias_hazards[3] > *alias_hazards[1])))
+ 	alias_hazards[1] = alias_hazards[3];
+     }
+ 
+   if (alias_hazards[0] && alias_hazards[1]
+       && *alias_hazards[0] <= *alias_hazards[1])
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "cannot form pair (%d,%d) due to alias conflicts (%d,%d)\n",
+ 		 i1->uid (), i2->uid (),
+ 		 alias_hazards[0]->uid (), alias_hazards[1]->uid ());
+       return false;
+     }
+ 
+   // Now narrow the hazards on each base candidate using
+   // the alias hazards.
+   i = 0;
+   while (i < base_cands.length ())
+     {
+       base_cand &cand = base_cands[i];
+       if (alias_hazards[0] && (!cand.hazards[0]
+ 			       || *alias_hazards[0] < *cand.hazards[0]))
+ 	cand.hazards[0] = alias_hazards[0];
+       if (alias_hazards[1] && (!cand.hazards[1]
+ 			       || *alias_hazards[1] > *cand.hazards[1]))
+ 	cand.hazards[1] = alias_hazards[1];
+ 
+       if (cand.viable ())
+ 	i++;
+       else
+ 	{
+ 	  if (dump_file)
+ 	    fprintf (dump_file, "pair (%d,%d): rejecting base %d due to "
+ 				"alias/dataflow hazards (%d,%d)",
+ 				insns[0]->uid (), insns[1]->uid (),
+ 				cand.def->regno (),
+ 				cand.hazards[0]->uid (),
+ 				cand.hazards[1]->uid ());
+ 
+ 	  base_cands.ordered_remove (i);
+ 	}
+     }
+ 
+   if (base_cands.is_empty ())
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "cannot form pair (%d,%d) due to alias/dataflow hazards",
+ 		 insns[0]->uid (), insns[1]->uid ());
+ 
+       return false;
+     }
+ 
+   base_cand *base = &base_cands[0];
+   if (base_cands.length () > 1)
+     {
+       // If there are still multiple viable bases, it makes sense
+       // to choose one that allows us to reduce register pressure,
+       // for loads this means moving further down, for stores this
+       // means moving further up.
+       gcc_checking_assert (base_cands.length () == 2);
+       const int hazard_i = !load_p;
+       if (base->hazards[hazard_i])
+ 	{
+ 	  if (!base_cands[1].hazards[hazard_i])
+ 	    base = &base_cands[1];
+ 	  else if (load_p
+ 		   && *base_cands[1].hazards[hazard_i]
+ 		      > *(base->hazards[hazard_i]))
+ 	    base = &base_cands[1];
+ 	  else if (!load_p
+ 		   && *base_cands[1].hazards[hazard_i]
+ 		      < *(base->hazards[hazard_i]))
+ 	    base = &base_cands[1];
+ 	}
+     }
+ 
+   // Otherwise, hazards[0] > hazards[1].
+   // Pair can be formed anywhere in (hazards[1], hazards[0]).
+   insn_range_info range (insns[0], insns[1]);
+   if (base->hazards[1])
+     range.first = base->hazards[1];
+   if (base->hazards[0])
+     range.last = base->hazards[0]->prev_nondebug_insn ();
+ 
+   // If the second insn can throw, narrow the move range to exactly that insn.
+   // This prevents us trying to move the second insn from the end of the BB.
+   if (cfun->can_throw_non_call_exceptions
+       && find_reg_note (insns[1]->rtl (), REG_EH_REGION, NULL_RTX))
+     {
+       gcc_assert (range.includes (insns[1]));
+       range = insn_range_info (insns[1]);
+     }
+ 
+   // Placement strategy: push loads down and pull stores up, this should
+   // help register pressure by reducing live ranges.
+   if (load_p)
+     range.first = range.last;
+   else
+     range.last = range.first;
+ 
+   if (dump_file)
+     {
+       auto print_hazard = [](insn_info *i)
+ 	{
+ 	  if (i)
+ 	    fprintf (dump_file, "%d", i->uid ());
+ 	  else
+ 	    fprintf (dump_file, "-");
+ 	};
+       auto print_pair = [print_hazard](insn_info **i)
+ 	{
+ 	  print_hazard (i[0]);
+ 	  fprintf (dump_file, ",");
+ 	  print_hazard (i[1]);
+ 	};
+ 
+       fprintf (dump_file, "fusing pair [L=%d] (%d,%d), base=%d, hazards: (",
+ 	      load_p, insns[0]->uid (), insns[1]->uid (),
+ 	      base->def->regno ());
+       print_pair (base->hazards);
+       fprintf (dump_file, "), move_range: (%d,%d)\n",
+ 	       range.first->uid (), range.last->uid ());
+     }
+ 
+   return fuse_pair (load_p, access_size, writeback,
+ 		    i1, i2, *base, range);
+ }
+ 
+ static void
+ dump_insn_list (FILE *f, const insn_list_t &l)
+ {
+   fprintf (f, "(");
+ 
+   auto i = l.begin ();
+   auto end = l.end ();
+ 
+   if (i != end)
+     fprintf (f, "%d", (*i)->uid ());
+   i++;
+ 
+   for (; i != end; i++)
+     fprintf (f, ", %d", (*i)->uid ());
+ 
+   fprintf (f, ")");
+ }
+ 
+ DEBUG_FUNCTION void
+ debug (const insn_list_t &l)
+ {
+   dump_insn_list (stderr, l);
+   fprintf (stderr, "\n");
+ }
+ 
+ // LEFT_LIST and RIGHT_LIST are lists of candidate instructions where all insns
+ // in LEFT_LIST are known to be adjacent to those in RIGHT_LIST.
+ //
+ // This function traverses the resulting 2D matrix of possible pair candidates
+ // and attempts to merge them into pairs.
+ //
+ // The algorithm is straightforward: if we consider a combined list of
+ // candidates X obtained by merging LEFT_LIST and RIGHT_LIST in program order,
+ // then we advance through X until we reach a crossing point (where X[i] and
+ // X[i+1] come from different source lists).
+ //
+ // At this point we know X[i] and X[i+1] are adjacent accesses, and we try to
+ // fuse them into a pair.  If this succeeds, we remove X[i] and X[i+1] from
+ // their original lists and continue as above.
+ //
+ // In the failure case, we advance through the source list containing X[i] and
+ // continue as above (proceeding to the next crossing point).
+ //
+ // The rationale for skipping over groups of consecutive candidates from the
+ // same source list is as follows:
+ //
+ // In the store case, the insns in the group can't be re-ordered over each
+ // other as they are guaranteed to store to the same location, so we're
+ // guaranteed not to lose opportunities by doing this.
+ //
+ // In the load case, subsequent loads from the same location are either
+ // redundant (in which case they should have been cleaned up by an earlier
+ // optimization pass) or there is an intervening aliasing hazard, in which case
+ // we can't re-order them anyway, so provided earlier passes have cleaned up
+ // redundant loads, we shouldn't miss opportunities by doing this.
+ void
+ ldp_bb_info::merge_pairs (insn_list_t &left_list,
+ 			  insn_list_t &right_list,
+ 			  bool load_p,
+ 			  unsigned access_size)
+ {
+   if (dump_file)
+     {
+       fprintf (dump_file, "merge_pairs [L=%d], cand vecs ", load_p);
+       dump_insn_list (dump_file, left_list);
+       fprintf (dump_file, " x ");
+       dump_insn_list (dump_file, right_list);
+       fprintf (dump_file, "\n");
+     }
+ 
+   auto iter_l = left_list.begin ();
+   auto iter_r = right_list.begin ();
+ 
+   while (iter_l != left_list.end () && iter_r != right_list.end ())
+     {
+       auto next_l = std::next (iter_l);
+       auto next_r = std::next (iter_r);
+       if (**iter_l < **iter_r
+ 	  && next_l != left_list.end ()
+ 	  && **next_l < **iter_r)
+ 	iter_l = next_l;
+       else if (**iter_r < **iter_l
+ 	       && next_r != right_list.end ()
+ 	       && **next_r < **iter_l)
+ 	iter_r = next_r;
+       else if (try_fuse_pair (load_p, access_size, *iter_l, *iter_r))
+ 	{
+ 	  left_list.erase (iter_l);
+ 	  iter_l = next_l;
+ 	  right_list.erase (iter_r);
+ 	  iter_r = next_r;
+ 	}
+       else if (**iter_l < **iter_r)
+ 	iter_l = next_l;
+       else
+ 	iter_r = next_r;
+     }
+ }
+ 
+ // Iterate over the accesses in GROUP, looking for adjacent sets
+ // of accesses.  If we find two sets of adjacent accesses, call
+ // merge_pairs.
+ void
+ ldp_bb_info::transform_for_base (int encoded_lfs,
+ 				 access_group &group)
+ {
+   const auto lfs = decode_lfs (encoded_lfs);
+   const unsigned access_size = lfs.size;
+ 
+   bool skip_next = true;
+   access_record *prev_access = nullptr;
+ 
+   for (auto &access : group.list)
+     {
+       if (skip_next)
+ 	skip_next = false;
+       else if (known_eq (access.offset, prev_access->offset + access_size))
+ 	{
+ 	  merge_pairs (prev_access->cand_insns,
+ 		       access.cand_insns,
+ 		       lfs.load_p,
+ 		       access_size);
+ 	  skip_next = access.cand_insns.empty ();
+ 	}
+       prev_access = &access;
+     }
+ }
+ 
+ // If we emitted tombstone insns for this BB, iterate through the BB
+ // and remove all the tombstone insns, being sure to reparent any uses
+ // of mem to previous defs when we do this.
+ void
+ ldp_bb_info::cleanup_tombstones ()
+ {
+   // No need to do anything if we didn't emit a tombstone insn for this BB.
+   if (!m_emitted_tombstone)
+     return;
+ 
+   for (auto insn : iterate_safely (m_bb->nondebug_insns ()))
+     {
+       if (!insn->is_real ()
+ 	  || !bitmap_bit_p (&m_tombstone_bitmap, insn->uid ()))
+ 	continue;
+ 
+       auto set = as_a<set_info *> (memory_access (insn->defs ()));
+       if (set->has_any_uses ())
+ 	{
+ 	  auto prev_set = as_a<set_info *> (set->prev_def ());
+ 	  while (set->first_use ())
+ 	    crtl->ssa->reparent_use (set->first_use (), prev_set);
+ 	}
+ 
+       // Now set has no uses, we can delete it.
+       insn_change change (insn, insn_change::DELETE);
+       crtl->ssa->change_insn (change);
+     }
+ }
+ 
+ template<typename Map>
+ void
+ ldp_bb_info::traverse_base_map (Map &map)
+ {
+   for (auto kv : map)
+     {
+       const auto &key = kv.first;
+       auto &value = kv.second;
+       transform_for_base (key.second, value);
+     }
+ }
+ 
+ void
+ ldp_bb_info::transform ()
+ {
+   traverse_base_map (expr_map);
+   traverse_base_map (def_map);
+ }
+ 
+ static void
+ ldp_fusion_init ()
+ {
+   calculate_dominance_info (CDI_DOMINATORS);
+   df_analyze ();
+   crtl->ssa = new rtl_ssa::function_info (cfun);
+ }
+ 
+ static void
+ ldp_fusion_destroy ()
+ {
+   if (crtl->ssa->perform_pending_updates ())
+     cleanup_cfg (0);
+ 
+   free_dominance_info (CDI_DOMINATORS);
+ 
+   delete crtl->ssa;
+   crtl->ssa = nullptr;
+ }
+ 
+ // Given a load pair insn in PATTERN, unpack the insn, storing
+ // the registers in REGS and returning the mem.
+ static rtx
+ aarch64_destructure_load_pair (rtx regs[2], rtx pattern)
+ {
+   rtx mem = NULL_RTX;
+ 
+   for (int i = 0; i < 2; i++)
+     {
+       rtx pat = XVECEXP (pattern, 0, i);
+       regs[i] = XEXP (pat, 0);
+       rtx unspec = XEXP (pat, 1);
+       gcc_checking_assert (GET_CODE (unspec) == UNSPEC);
+       rtx this_mem = XVECEXP (unspec, 0, 0);
+       if (mem)
+ 	gcc_checking_assert (rtx_equal_p (mem, this_mem));
+       else
+ 	{
+ 	  gcc_checking_assert (MEM_P (this_mem));
+ 	  mem = this_mem;
+ 	}
+     }
+ 
+   return mem;
+ }
+ 
+ // Given a store pair insn in PATTERN, unpack the insn, storing
+ // the register operands in REGS, and returning the mem.
+ static rtx
+ aarch64_destructure_store_pair (rtx regs[2], rtx pattern)
+ {
+   rtx mem = XEXP (pattern, 0);
+   rtx unspec = XEXP (pattern, 1);
+   gcc_checking_assert (GET_CODE (unspec) == UNSPEC);
+   for (int i = 0; i < 2; i++)
+     regs[i] = XVECEXP (unspec, 0, i);
+   return mem;
+ }
+ 
+ // Given a pair mem in PAIR_MEM, register operands in REGS, and an rtx
+ // representing the effect of writeback on the base register in WB_EFFECT,
+ // return an insn representing a writeback variant of this pair.
+ // LOAD_P is true iff the pair is a load.
+ //
+ // This is used when promoting existing non-writeback pairs to writeback
+ // variants.
+ static rtx
+ aarch64_gen_writeback_pair (rtx wb_effect, rtx pair_mem, rtx regs[2],
+ 			    bool load_p)
+ {
+   auto op_mode = aarch64_operand_mode_for_pair_mode (GET_MODE (pair_mem));
+ 
+   machine_mode modes[2];
+   for (int i = 0; i < 2; i++)
+     {
+       machine_mode mode = GET_MODE (regs[i]);
+       if (load_p)
+ 	gcc_checking_assert (mode != VOIDmode);
+       else if (mode == VOIDmode)
+ 	mode = op_mode;
+ 
+       modes[i] = mode;
+     }
+ 
+   const auto op_size = GET_MODE_SIZE (modes[0]);
+   gcc_checking_assert (known_eq (op_size, GET_MODE_SIZE (modes[1])));
+ 
+   rtx pats[2];
+   for (int i = 0; i < 2; i++)
+     {
+       rtx mem = adjust_address_nv (pair_mem, modes[i], op_size * i);
+       pats[i] = load_p
+ 	? gen_rtx_SET (regs[i], mem)
+ 	: gen_rtx_SET (mem, regs[i]);
+     }
+ 
+   return gen_rtx_PARALLEL (VOIDmode,
+ 			   gen_rtvec (3, wb_effect, pats[0], pats[1]));
+ }
+ 
+ // Given an existing pair insn INSN, look for a trailing update of
+ // the base register which we can fold in to make this pair use
+ // a writeback addressing mode.
+ static void
+ try_promote_writeback (insn_info *insn)
+ {
+   auto rti = insn->rtl ();
+   const auto attr = get_attr_ldpstp (rti);
+   if (attr == LDPSTP_NONE)
+     return;
+ 
+   bool load_p = (attr == LDPSTP_LDP);
+   gcc_checking_assert (load_p || attr == LDPSTP_STP);
+ 
+   rtx regs[2];
+   rtx mem = NULL_RTX;
+   if (load_p)
+     mem = aarch64_destructure_load_pair (regs, PATTERN (rti));
+   else
+     mem = aarch64_destructure_store_pair (regs, PATTERN (rti));
+   gcc_checking_assert (MEM_P (mem));
+ 
+   poly_int64 offset;
+   rtx base = strip_offset (XEXP (mem, 0), &offset);
+   gcc_assert (REG_P (base));
+ 
+   const auto access_size = GET_MODE_SIZE (GET_MODE (mem)).to_constant () / 2;
+ 
+   if (find_access (insn->defs (), REGNO (base)))
+     {
+       gcc_assert (load_p);
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "ldp %d clobbers base r%d, can't promote to writeback\n",
+ 		 insn->uid (), REGNO (base));
+       return;
+     }
+ 
+   auto base_use = find_access (insn->uses (), REGNO (base));
+   gcc_assert (base_use);
+ 
+   if (!base_use->def ())
+     {
+       if (dump_file)
+ 	fprintf (dump_file,
+ 		 "found pair (i%d, L=%d): but base r%d is upwards exposed\n",
+ 		 insn->uid (), load_p, REGNO (base));
+       return;
+     }
+ 
+   auto base_def = base_use->def ();
+ 
+   rtx wb_effect = NULL_RTX;
+   def_info *add_def;
+   const insn_range_info pair_range (insn);
+   insn_info *insns[2] = { nullptr, insn };
+   insn_info *trailing_add = find_trailing_add (insns, pair_range, 0, &wb_effect,
+ 					       &add_def, base_def, offset,
+ 					       access_size);
+   if (!trailing_add)
+     return;
+ 
+   auto attempt = crtl->ssa->new_change_attempt ();
+ 
+   insn_change pair_change (insn);
+   insn_change del_change (trailing_add, insn_change::DELETE);
+   insn_change *changes[] = { &pair_change, &del_change };
+ 
+   rtx pair_pat = aarch64_gen_writeback_pair (wb_effect, mem, regs, load_p);
+   validate_unshare_change (rti, &PATTERN (rti), pair_pat, true);
+ 
+   // The pair must gain the def of the base register from the add.
+   pair_change.new_defs = insert_access (attempt,
+ 					add_def,
+ 					pair_change.new_defs);
+   gcc_assert (pair_change.new_defs.is_valid ());
+ 
+   auto is_changing = insn_is_changing (changes);
+   for (unsigned i = 0; i < ARRAY_SIZE (changes); i++)
+     gcc_assert (rtl_ssa::restrict_movement_ignoring (*changes[i], is_changing));
+ 
+   if (!rtl_ssa::recog_ignoring (attempt, pair_change, is_changing))
+     {
+       if (dump_file)
+ 	fprintf (dump_file, "i%d: recog failed on wb pair, bailing out\n",
+ 		 insn->uid ());
+       cancel_changes (0);
+       return;
+     }
+ 
+   gcc_assert (crtl->ssa->verify_insn_changes (changes));
+ 
+   if (MAY_HAVE_DEBUG_INSNS)
+     fixup_debug_uses_trailing_add (attempt, insn, trailing_add, wb_effect);
+ 
+   confirm_change_group ();
+   crtl->ssa->change_insns (changes);
+ }
+ 
+ // Main function for the pass.  Iterate over the insns in BB looking
+ // for load/store candidates.  If running after RA, also try and promote
+ // non-writeback pairs to use writeback addressing.  Then try to fuse
+ // candidates into pairs.
+ void ldp_fusion_bb (bb_info *bb)
+ {
+   const bool track_loads
+     = aarch64_tune_params.ldp_policy_model != AARCH64_LDP_STP_POLICY_NEVER;
+   const bool track_stores
+     = aarch64_tune_params.stp_policy_model != AARCH64_LDP_STP_POLICY_NEVER;
+ 
+   ldp_bb_info bb_state (bb);
+ 
+   for (auto insn : bb->nondebug_insns ())
+     {
+       rtx_insn *rti = insn->rtl ();
+ 
+       if (!rti || !INSN_P (rti))
+ 	continue;
+ 
+       rtx pat = PATTERN (rti);
+       if (reload_completed
+ 	  && aarch64_ldp_writeback > 1
+ 	  && GET_CODE (pat) == PARALLEL
+ 	  && XVECLEN (pat, 0) == 2)
+ 	try_promote_writeback (insn);
+ 
+       if (GET_CODE (pat) != SET)
+ 	continue;
+ 
+       if (track_stores && MEM_P (XEXP (pat, 0)))
+ 	bb_state.track_access (insn, false, XEXP (pat, 0));
+       else if (track_loads && MEM_P (XEXP (pat, 1)))
+ 	bb_state.track_access (insn, true, XEXP (pat, 1));
+     }
+ 
+   bb_state.transform ();
+   bb_state.cleanup_tombstones ();
+ }
+ 
+ void ldp_fusion ()
+ {
+   ldp_fusion_init ();
+ 
+   for (auto bb : crtl->ssa->bbs ())
+     ldp_fusion_bb (bb);
+ 
+   ldp_fusion_destroy ();
+ }
+ 
+ namespace {
+ 
+ const pass_data pass_data_ldp_fusion =
+ {
+   RTL_PASS, /* type */
+   "ldp_fusion", /* name */
+   OPTGROUP_NONE, /* optinfo_flags */
+   TV_NONE, /* tv_id */
+   0, /* properties_required */
+   0, /* properties_provided */
+   0, /* properties_destroyed */
+   0, /* todo_flags_start */
+   TODO_df_finish, /* todo_flags_finish */
+ };
+ 
+ class pass_ldp_fusion : public rtl_opt_pass
+ {
+ public:
+   pass_ldp_fusion (gcc::context *ctx)
+     : rtl_opt_pass (pass_data_ldp_fusion, ctx)
+     {}
+ 
+   opt_pass *clone () override { return new pass_ldp_fusion (m_ctxt); }
+ 
+   bool gate (function *) final override
+     {
+       if (!optimize || optimize_debug)
+ 	return false;
+ 
+       // If the tuning policy says never to form ldps or stps, don't run
+       // the pass.
+       if ((aarch64_tune_params.ldp_policy_model
+ 	   == AARCH64_LDP_STP_POLICY_NEVER)
+ 	  && (aarch64_tune_params.stp_policy_model
+ 	      == AARCH64_LDP_STP_POLICY_NEVER))
+ 	return false;
+ 
+       if (reload_completed)
+ 	return flag_aarch64_late_ldp_fusion;
+       else
+ 	return flag_aarch64_early_ldp_fusion;
+     }
+ 
+   unsigned execute (function *) final override
+     {
+       ldp_fusion ();
+       return 0;
+     }
+ };
+ 
+ } // anon namespace
+ 
+ rtl_opt_pass *
+ make_pass_ldp_fusion (gcc::context *ctx)
+ {
+   return new pass_ldp_fusion (ctx);
+ }
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-ldpstp.md gcc-14.1.0/gcc/config/aarch64/aarch64-ldpstp.md
*** gcc-13.2.0/gcc/config/aarch64/aarch64-ldpstp.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-ldpstp.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; AArch64 ldp/stp peephole optimizations.
! ;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; AArch64 ldp/stp peephole optimizations.
! ;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 23,33 ****
  	(match_operand:GPI 1 "memory_operand" ""))
     (set (match_operand:GPI 2 "register_operand" "")
  	(match_operand:GPI 3 "memory_operand" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, true, <MODE>mode)"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, true);
  })
  
  (define_peephole2
--- 23,33 ----
  	(match_operand:GPI 1 "memory_operand" ""))
     (set (match_operand:GPI 2 "register_operand" "")
  	(match_operand:GPI 3 "memory_operand" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, true)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, true);
!   DONE;
  })
  
  (define_peephole2
***************
*** 35,45 ****
  	(match_operand:GPI 1 "aarch64_reg_or_zero" ""))
     (set (match_operand:GPI 2 "memory_operand" "")
  	(match_operand:GPI 3 "aarch64_reg_or_zero" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, false, <MODE>mode)"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, false);
  })
  
  (define_peephole2
--- 35,45 ----
  	(match_operand:GPI 1 "aarch64_reg_or_zero" ""))
     (set (match_operand:GPI 2 "memory_operand" "")
  	(match_operand:GPI 3 "aarch64_reg_or_zero" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, false)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, false);
!   DONE;
  })
  
  (define_peephole2
***************
*** 47,57 ****
  	(match_operand:GPF 1 "memory_operand" ""))
     (set (match_operand:GPF 2 "register_operand" "")
  	(match_operand:GPF 3 "memory_operand" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, true, <MODE>mode)"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, true);
  })
  
  (define_peephole2
--- 47,57 ----
  	(match_operand:GPF 1 "memory_operand" ""))
     (set (match_operand:GPF 2 "register_operand" "")
  	(match_operand:GPF 3 "memory_operand" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, true)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, true);
!   DONE;
  })
  
  (define_peephole2
***************
*** 59,69 ****
  	(match_operand:GPF 1 "aarch64_reg_or_fp_zero" ""))
     (set (match_operand:GPF 2 "memory_operand" "")
  	(match_operand:GPF 3 "aarch64_reg_or_fp_zero" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, false, <MODE>mode)"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, false);
  })
  
  (define_peephole2
--- 59,69 ----
  	(match_operand:GPF 1 "aarch64_reg_or_fp_zero" ""))
     (set (match_operand:GPF 2 "memory_operand" "")
  	(match_operand:GPF 3 "aarch64_reg_or_fp_zero" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, false)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, false);
!   DONE;
  })
  
  (define_peephole2
***************
*** 71,81 ****
  	(match_operand:DREG 1 "memory_operand" ""))
     (set (match_operand:DREG2 2 "register_operand" "")
  	(match_operand:DREG2 3 "memory_operand" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, true, <DREG:MODE>mode)"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, true);
  })
  
  (define_peephole2
--- 71,81 ----
  	(match_operand:DREG 1 "memory_operand" ""))
     (set (match_operand:DREG2 2 "register_operand" "")
  	(match_operand:DREG2 3 "memory_operand" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, true)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, true);
!   DONE;
  })
  
  (define_peephole2
***************
*** 83,93 ****
  	(match_operand:DREG 1 "register_operand" ""))
     (set (match_operand:DREG2 2 "memory_operand" "")
  	(match_operand:DREG2 3 "register_operand" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, false, <DREG:MODE>mode)"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, false);
  })
  
  (define_peephole2
--- 83,93 ----
  	(match_operand:DREG 1 "register_operand" ""))
     (set (match_operand:DREG2 2 "memory_operand" "")
  	(match_operand:DREG2 3 "register_operand" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, false)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, false);
!   DONE;
  })
  
  (define_peephole2
***************
*** 96,108 ****
     (set (match_operand:VQ2 2 "register_operand" "")
  	(match_operand:VQ2 3 "memory_operand" ""))]
    "TARGET_FLOAT
!    && aarch64_operands_ok_for_ldpstp (operands, true, <VQ:MODE>mode)
     && (aarch64_tune_params.extra_tuning_flags
  	& AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, true);
  })
  
  (define_peephole2
--- 96,108 ----
     (set (match_operand:VQ2 2 "register_operand" "")
  	(match_operand:VQ2 3 "memory_operand" ""))]
    "TARGET_FLOAT
!    && aarch64_operands_ok_for_ldpstp (operands, true)
     && (aarch64_tune_params.extra_tuning_flags
  	& AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, true);
!   DONE;
  })
  
  (define_peephole2
***************
*** 111,123 ****
     (set (match_operand:VQ2 2 "memory_operand" "")
  	(match_operand:VQ2 3 "register_operand" ""))]
    "TARGET_FLOAT
!    && aarch64_operands_ok_for_ldpstp (operands, false, <VQ:MODE>mode)
     && (aarch64_tune_params.extra_tuning_flags
  	& AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, false);
  })
  
  
--- 111,123 ----
     (set (match_operand:VQ2 2 "memory_operand" "")
  	(match_operand:VQ2 3 "register_operand" ""))]
    "TARGET_FLOAT
!    && aarch64_operands_ok_for_ldpstp (operands, false)
     && (aarch64_tune_params.extra_tuning_flags
  	& AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, false);
!   DONE;
  })
  
  
***************
*** 128,138 ****
  	(sign_extend:DI (match_operand:SI 1 "memory_operand" "")))
     (set (match_operand:DI 2 "register_operand" "")
  	(sign_extend:DI (match_operand:SI 3 "memory_operand" "")))]
!   "aarch64_operands_ok_for_ldpstp (operands, true, SImode)"
!   [(parallel [(set (match_dup 0) (sign_extend:DI (match_dup 1)))
! 	      (set (match_dup 2) (sign_extend:DI (match_dup 3)))])]
  {
!   aarch64_swap_ldrstr_operands (operands, true);
  })
  
  (define_peephole2
--- 128,138 ----
  	(sign_extend:DI (match_operand:SI 1 "memory_operand" "")))
     (set (match_operand:DI 2 "register_operand" "")
  	(sign_extend:DI (match_operand:SI 3 "memory_operand" "")))]
!   "aarch64_operands_ok_for_ldpstp (operands, true)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, true, SIGN_EXTEND);
!   DONE;
  })
  
  (define_peephole2
***************
*** 140,150 ****
  	(zero_extend:DI (match_operand:SI 1 "memory_operand" "")))
     (set (match_operand:DI 2 "register_operand" "")
  	(zero_extend:DI (match_operand:SI 3 "memory_operand" "")))]
!   "aarch64_operands_ok_for_ldpstp (operands, true, SImode)"
!   [(parallel [(set (match_dup 0) (zero_extend:DI (match_dup 1)))
! 	      (set (match_dup 2) (zero_extend:DI (match_dup 3)))])]
  {
!   aarch64_swap_ldrstr_operands (operands, true);
  })
  
  ;; Handle storing of a floating point zero with integer data.
--- 140,150 ----
  	(zero_extend:DI (match_operand:SI 1 "memory_operand" "")))
     (set (match_operand:DI 2 "register_operand" "")
  	(zero_extend:DI (match_operand:SI 3 "memory_operand" "")))]
!   "aarch64_operands_ok_for_ldpstp (operands, true)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, true, ZERO_EXTEND);
!   DONE;
  })
  
  ;; Handle storing of a floating point zero with integer data.
***************
*** 162,172 ****
  	(match_operand:DSX 1 "aarch64_reg_zero_or_fp_zero" ""))
     (set (match_operand:<FCVT_TARGET> 2 "memory_operand" "")
  	(match_operand:<FCVT_TARGET> 3 "aarch64_reg_zero_or_fp_zero" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, false, <V_INT_EQUIV>mode)"
!   [(parallel [(set (match_dup 0) (match_dup 1))
! 	      (set (match_dup 2) (match_dup 3))])]
  {
!   aarch64_swap_ldrstr_operands (operands, false);
  })
  
  ;; Handle consecutive load/store whose offset is out of the range
--- 162,172 ----
  	(match_operand:DSX 1 "aarch64_reg_zero_or_fp_zero" ""))
     (set (match_operand:<FCVT_TARGET> 2 "memory_operand" "")
  	(match_operand:<FCVT_TARGET> 3 "aarch64_reg_zero_or_fp_zero" ""))]
!   "aarch64_operands_ok_for_ldpstp (operands, false)"
!   [(const_int 0)]
  {
!   aarch64_finish_ldpstp_peephole (operands, false);
!   DONE;
  })
  
  ;; Handle consecutive load/store whose offset is out of the range
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-linux.h gcc-14.1.0/gcc/config/aarch64/aarch64-linux.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-linux.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-linux.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-modes.def gcc-14.1.0/gcc/config/aarch64/aarch64-modes.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** ADJUST_FLOAT_FORMAT (HF, &ieee_half_form
*** 48,63 ****
--- 48,66 ----
  
  /* Vector modes.  */
  
+ VECTOR_BOOL_MODE (VNx32BI, 32, BI, 4);
  VECTOR_BOOL_MODE (VNx16BI, 16, BI, 2);
  VECTOR_BOOL_MODE (VNx8BI, 8, BI, 2);
  VECTOR_BOOL_MODE (VNx4BI, 4, BI, 2);
  VECTOR_BOOL_MODE (VNx2BI, 2, BI, 2);
  
+ ADJUST_NUNITS (VNx32BI, aarch64_sve_vg * 16);
  ADJUST_NUNITS (VNx16BI, aarch64_sve_vg * 8);
  ADJUST_NUNITS (VNx8BI, aarch64_sve_vg * 4);
  ADJUST_NUNITS (VNx4BI, aarch64_sve_vg * 2);
  ADJUST_NUNITS (VNx2BI, aarch64_sve_vg);
  
+ ADJUST_ALIGNMENT (VNx32BI, 2);
  ADJUST_ALIGNMENT (VNx16BI, 2);
  ADJUST_ALIGNMENT (VNx8BI, 2);
  ADJUST_ALIGNMENT (VNx4BI, 2);
*************** VECTOR_MODE (INT, DI, 1);     /*
*** 75,80 ****
--- 78,91 ----
  VECTOR_MODE (FLOAT, DF, 1);   /*                 V1DF.  */
  VECTOR_MODE (FLOAT, HF, 2);   /*                 V2HF.  */
  
+ 
+ /* Integer vector modes used to represent intermediate widened values in some
+    instructions.  Not intended to be moved to and from registers or memory.  */
+ VECTOR_MODE (INT, HI, 16);   /*                V16HI.  */
+ VECTOR_MODE (INT, SI, 8);   /*                 V8SI.  */
+ VECTOR_MODE (INT, DI, 4);   /*                 V4DI.  */
+ VECTOR_MODE (INT, TI, 2);   /*                 V2TI.  */
+ 
  /* Oct Int: 256-bit integer mode needed for 32-byte vector arguments.  */
  INT_MODE (OI, 32);
  
*************** INT_MODE (XI, 64);
*** 85,93 ****
  
  /* V8DI mode.  */
  VECTOR_MODE_WITH_PREFIX (V, INT, DI, 8, 5);
- 
  ADJUST_ALIGNMENT (V8DI, 8);
  
  /* Define Advanced SIMD modes for structures of 2, 3 and 4 d-registers.  */
  #define ADV_SIMD_D_REG_STRUCT_MODES(NVECS, VB, VH, VS, VD) \
    VECTOR_MODES_WITH_PREFIX (V##NVECS##x, INT, 8, 3); \
--- 96,108 ----
  
  /* V8DI mode.  */
  VECTOR_MODE_WITH_PREFIX (V, INT, DI, 8, 5);
  ADJUST_ALIGNMENT (V8DI, 8);
  
+ /* V2x4QImode.  Used in load/store pair patterns.  */
+ VECTOR_MODE_WITH_PREFIX (V2x, INT, QI, 4, 5);
+ ADJUST_NUNITS (V2x4QI, 8);
+ ADJUST_ALIGNMENT (V2x4QI, 4);
+ 
  /* Define Advanced SIMD modes for structures of 2, 3 and 4 d-registers.  */
  #define ADV_SIMD_D_REG_STRUCT_MODES(NVECS, VB, VH, VS, VD) \
    VECTOR_MODES_WITH_PREFIX (V##NVECS##x, INT, 8, 3); \
*************** ADV_SIMD_Q_REG_STRUCT_MODES (4, V4x16, V
*** 148,154 ****
     for 8-bit, 16-bit, 32-bit and 64-bit elements respectively.  It isn't
     strictly necessary to set the alignment here, since the default would
     be clamped to BIGGEST_ALIGNMENT anyhow, but it seems clearer.  */
! #define SVE_MODES(NVECS, VB, VH, VS, VD) \
    VECTOR_MODES_WITH_PREFIX (VNx, INT, 16 * NVECS, NVECS == 1 ? 1 : 4); \
    VECTOR_MODES_WITH_PREFIX (VNx, FLOAT, 16 * NVECS, NVECS == 1 ? 1 : 4); \
    \
--- 163,169 ----
     for 8-bit, 16-bit, 32-bit and 64-bit elements respectively.  It isn't
     strictly necessary to set the alignment here, since the default would
     be clamped to BIGGEST_ALIGNMENT anyhow, but it seems clearer.  */
! #define SVE_MODES(NVECS, VB, VH, VS, VD, VT) \
    VECTOR_MODES_WITH_PREFIX (VNx, INT, 16 * NVECS, NVECS == 1 ? 1 : 4); \
    VECTOR_MODES_WITH_PREFIX (VNx, FLOAT, 16 * NVECS, NVECS == 1 ? 1 : 4); \
    \
*************** ADV_SIMD_Q_REG_STRUCT_MODES (4, V4x16, V
*** 156,161 ****
--- 171,177 ----
    ADJUST_NUNITS (VH##HI, aarch64_sve_vg * NVECS * 4); \
    ADJUST_NUNITS (VS##SI, aarch64_sve_vg * NVECS * 2); \
    ADJUST_NUNITS (VD##DI, aarch64_sve_vg * NVECS); \
+   ADJUST_NUNITS (VT##TI, exact_div (aarch64_sve_vg * NVECS, 2)); \
    ADJUST_NUNITS (VH##BF, aarch64_sve_vg * NVECS * 4); \
    ADJUST_NUNITS (VH##HF, aarch64_sve_vg * NVECS * 4); \
    ADJUST_NUNITS (VS##SF, aarch64_sve_vg * NVECS * 2); \
*************** ADV_SIMD_Q_REG_STRUCT_MODES (4, V4x16, V
*** 165,181 ****
    ADJUST_ALIGNMENT (VH##HI, 16); \
    ADJUST_ALIGNMENT (VS##SI, 16); \
    ADJUST_ALIGNMENT (VD##DI, 16); \
    ADJUST_ALIGNMENT (VH##BF, 16); \
    ADJUST_ALIGNMENT (VH##HF, 16); \
    ADJUST_ALIGNMENT (VS##SF, 16); \
    ADJUST_ALIGNMENT (VD##DF, 16);
  
! /* Give SVE vectors the names normally used for 256-bit vectors.
!    The actual number depends on command-line flags.  */
! SVE_MODES (1, VNx16, VNx8, VNx4, VNx2)
! SVE_MODES (2, VNx32, VNx16, VNx8, VNx4)
! SVE_MODES (3, VNx48, VNx24, VNx12, VNx6)
! SVE_MODES (4, VNx64, VNx32, VNx16, VNx8)
  
  /* Partial SVE vectors:
  
--- 181,203 ----
    ADJUST_ALIGNMENT (VH##HI, 16); \
    ADJUST_ALIGNMENT (VS##SI, 16); \
    ADJUST_ALIGNMENT (VD##DI, 16); \
+   ADJUST_ALIGNMENT (VT##TI, 16); \
    ADJUST_ALIGNMENT (VH##BF, 16); \
    ADJUST_ALIGNMENT (VH##HF, 16); \
    ADJUST_ALIGNMENT (VS##SF, 16); \
    ADJUST_ALIGNMENT (VD##DF, 16);
  
! /* Give SVE vectors names of the form VNxX, where X describes what is
!    stored in each 128-bit unit.  The actual size of the mode depends
!    on command-line flags.
! 
!    VNx1TI isn't really a native SVE mode, but it can be useful in some
!    limited situations.  */
! VECTOR_MODE_WITH_PREFIX (VNx, INT, TI, 1, 1);
! SVE_MODES (1, VNx16, VNx8, VNx4, VNx2, VNx1)
! SVE_MODES (2, VNx32, VNx16, VNx8, VNx4, VNx2)
! SVE_MODES (3, VNx48, VNx24, VNx12, VNx6, VNx3)
! SVE_MODES (4, VNx64, VNx32, VNx16, VNx8, VNx4)
  
  /* Partial SVE vectors:
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def gcc-14.1.0/gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,28 ----
+ /* Builtin lists for AArch64 NEON-SVE-Bridge
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef DEF_NEON_SVE_FUNCTION
+ #define DEF_NEON_SVE_FUNCTION(A, B, C, D, E)
+ #endif
+ 
+ DEF_NEON_SVE_FUNCTION (svset_neonq, set_neonq, all_data, none, none)
+ DEF_NEON_SVE_FUNCTION (svget_neonq, get_neonq, all_data, none, none)
+ DEF_NEON_SVE_FUNCTION (svdup_neonq, dup_neonq, all_data, none, none)
+ 
+ #undef DEF_NEON_SVE_FUNCTION
\ No newline at end of file
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-netbsd.h gcc-14.1.0/gcc/config/aarch64/aarch64-netbsd.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-netbsd.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-netbsd.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for AArch64 running NetBSD
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for AArch64 running NetBSD
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-option-extensions.def gcc-14.1.0/gcc/config/aarch64/aarch64-option-extensions.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-option-extensions.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-option-extensions.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 17,33 ****
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
! /* This is a list of ISA extentsions in AArch64.
  
!    Before using #include to read this file, define a macro:
  
        AARCH64_OPT_EXTENSION(NAME, IDENT, REQUIRES, EXPLICIT_ON,
  			    EXPLICIT_OFF, FEATURE_STRING)
  
     - NAME is the name of the extension, represented as a string constant.
  
     - IDENT is the canonical internal name for this flag.
  
     - REQUIRES is a list of features that must be enabled whenever this
       feature is enabled.  The relationship is implicitly transitive:
       if A appears in B's REQUIRES and B appears in C's REQUIRES then
--- 17,38 ----
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
! /* This is a list of ISA extensions in AArch64.
  
!    Before using #include to read this file, define one of the following
!    macros:
  
        AARCH64_OPT_EXTENSION(NAME, IDENT, REQUIRES, EXPLICIT_ON,
  			    EXPLICIT_OFF, FEATURE_STRING)
  
+       AARCH64_FMV_FEATURE(NAME, FEAT_NAME, IDENT)
+ 
     - NAME is the name of the extension, represented as a string constant.
  
     - IDENT is the canonical internal name for this flag.
  
+    - FEAT_NAME is the unprefixed name used in the CPUFeatures enum.
+ 
     - REQUIRES is a list of features that must be enabled whenever this
       feature is enabled.  The relationship is implicitly transitive:
       if A appears in B's REQUIRES and B appears in C's REQUIRES then
***************
*** 49,102 ****
       If a feature A appears in this list then the list implicitly includes
       any features that are transitively dependent on A (according to REQUIRES).
  
!    - FEAT_STRING is a string containing the entries in the 'Features' field of
!      /proc/cpuinfo on a GNU/Linux system that correspond to this architecture
!      extension being available.  Sometimes multiple entries are needed to enable
!      the extension (for example, the 'crypto' extension depends on four
!      entries: aes, pmull, sha1, sha2 being present).  In that case this field
!      should contain a space (" ") separated list of the strings in 'Features'
!      that are required.  Their order is not important.  An empty string means
!      do not detect this feature during auto detection.
  
!    The list of features must follow topological order wrt REQUIRES
!    and EXPLICIT_ON.  For example, if A is in B's REQUIRES list, A must
!    come before B.  This is enforced by aarch64-feature-deps.h.
  
     NOTE: Any changes to the AARCH64_OPT_EXTENSION macro need to be mirrored in
     config.gcc.  */
  
! AARCH64_OPT_EXTENSION("fp", FP, (), (), (), "fp")
  
! AARCH64_OPT_EXTENSION("simd", SIMD, (FP), (), (), "asimd")
  
! AARCH64_OPT_EXTENSION("crc", CRC, (), (), (), "crc32")
  
- AARCH64_OPT_EXTENSION("lse", LSE, (), (), (), "atomics")
  
! /* +nofp16 disables an implicit F16FML, even though an implicit F16FML
!    does not imply F16.  See F16FML for more details.  */
! AARCH64_OPT_EXTENSION("fp16", F16, (FP), (), (F16FML), "fphp asimdhp")
  
! AARCH64_OPT_EXTENSION("rcpc", RCPC, (), (), (), "lrcpc")
  
  /* An explicit +rdma implies +simd, but +rdma+nosimd still enables scalar
     RDMA instructions.  */
! AARCH64_OPT_EXTENSION("rdma", RDMA, (), (SIMD), (), "asimdrdm")
  
! AARCH64_OPT_EXTENSION("dotprod", DOTPROD, (SIMD), (), (), "asimddp")
  
! AARCH64_OPT_EXTENSION("aes", AES, (SIMD), (), (), "aes")
  
! AARCH64_OPT_EXTENSION("sha2", SHA2, (SIMD), (), (), "sha1 sha2")
  
  /* +nocrypto disables AES, SHA2 and SM4, and anything that depends on them
     (such as SHA3 and the SVE2 crypto extensions).  */
  AARCH64_OPT_EXTENSION("crypto", CRYPTO, (AES, SHA2), (), (AES, SHA2, SM4),
  		      "aes pmull sha1 sha2")
  
  AARCH64_OPT_EXTENSION("sha3", SHA3, (SHA2), (), (), "sha3 sha512")
  
! AARCH64_OPT_EXTENSION("sm4", SM4, (SIMD), (), (), "sm3 sm4")
  
  /* An explicit +fp16fml implies +fp16, but a dependence on it does not.
     Thus -march=armv8.4-a implies F16FML but not F16.  -march=armv8.4-a+fp16
--- 54,147 ----
       If a feature A appears in this list then the list implicitly includes
       any features that are transitively dependent on A (according to REQUIRES).
  
!    - FEATURE_STRING is a string containing the entries in the 'Features' field
!      of /proc/cpuinfo on a GNU/Linux system that correspond to this
!      architecture extension being available.  Sometimes multiple entries are
!      needed to enable the extension (for example, the 'crypto' extension
!      depends on four entries: aes, pmull, sha1, sha2 being present).  In that
!      case this field should contain a space (" ") separated list of the strings
!      in 'Features' that are required.  Their order is not important.  An empty
!      string means do not detect this feature during auto detection.
  
!    - OPT_FLAGS is a list of feature IDENTS that should be enabled (along with
!      their transitive dependencies) when the specified FMV feature is present.
! 
!    Where a feature is present as both an extension and a function
!    multiversioning feature, and IDENT matches the FEAT_NAME suffix, then these
!    can be listed here simultaneously using the macro:
! 
!       AARCH64_OPT_FMV_EXTENSION(NAME, IDENT, REQUIRES, EXPLICIT_ON,
! 				EXPLICIT_OFF, FEATURE_STRING)
! 
!    The list of features extensions must follow topological order wrt REQUIRES
!    and EXPLICIT_ON.  For example, if A is in B's REQUIRES list, A must come
!    before B.  This is enforced by aarch64-feature-deps.h.
! 
!    The list of multiversioning features must be ordered by increasing priority,
!    as defined in https://github.com/ARM-software/acle/blob/main/main/acle.md
  
     NOTE: Any changes to the AARCH64_OPT_EXTENSION macro need to be mirrored in
     config.gcc.  */
  
! #ifndef AARCH64_OPT_EXTENSION
! #define AARCH64_OPT_EXTENSION(NAME, IDENT, REQUIRES, EXPLICIT_ON, \
! 			      EXPLICIT_OFF, FEATURE_STRING)
! #endif
  
! #ifndef AARCH64_FMV_FEATURE
! #define AARCH64_FMV_FEATURE(NAME, FEAT_NAME, OPT_FLAGS)
! #endif
  
! #define AARCH64_OPT_FMV_EXTENSION(NAME, IDENT, REQUIRES, EXPLICIT_ON,   \
! 				  EXPLICIT_OFF, FEATURE_STRING)		\
! AARCH64_OPT_EXTENSION(NAME, IDENT, REQUIRES, EXPLICIT_ON, EXPLICIT_OFF,	\
! 		      FEATURE_STRING)					\
! AARCH64_FMV_FEATURE(NAME, IDENT, (IDENT))
  
  
! AARCH64_OPT_FMV_EXTENSION("rng", RNG, (), (), (), "rng")
  
! AARCH64_OPT_FMV_EXTENSION("flagm", FLAGM, (), (), (), "flagm")
! 
! AARCH64_OPT_FMV_EXTENSION("lse", LSE, (), (), (), "atomics")
! 
! AARCH64_OPT_FMV_EXTENSION("fp", FP, (), (), (), "fp")
! 
! AARCH64_OPT_FMV_EXTENSION("simd", SIMD, (FP), (), (), "asimd")
! 
! AARCH64_OPT_FMV_EXTENSION("dotprod", DOTPROD, (SIMD), (), (), "asimddp")
! 
! AARCH64_OPT_FMV_EXTENSION("sm4", SM4, (SIMD), (), (), "sm3 sm4")
  
  /* An explicit +rdma implies +simd, but +rdma+nosimd still enables scalar
     RDMA instructions.  */
! AARCH64_OPT_FMV_EXTENSION("rdma", RDMA, (), (SIMD), (), "asimdrdm")
  
! /* rdm is an alias for rdma.  */
! AARCH64_FMV_FEATURE("rdm", RDM, (RDMA))
  
! AARCH64_OPT_FMV_EXTENSION("crc", CRC, (), (), (), "crc32")
  
! AARCH64_OPT_FMV_EXTENSION("sha2", SHA2, (SIMD), (), (), "sha1 sha2")
! 
! AARCH64_FMV_FEATURE("sha3", SHA3, (SHA3))
! 
! AARCH64_OPT_FMV_EXTENSION("aes", AES, (SIMD), (), (), "aes")
  
  /* +nocrypto disables AES, SHA2 and SM4, and anything that depends on them
     (such as SHA3 and the SVE2 crypto extensions).  */
  AARCH64_OPT_EXTENSION("crypto", CRYPTO, (AES, SHA2), (), (AES, SHA2, SM4),
  		      "aes pmull sha1 sha2")
  
+ /* Listing sha3 after crypto means we pass "+aes+sha3" to the assembler
+    instead of "+sha3+crypto".  */
  AARCH64_OPT_EXTENSION("sha3", SHA3, (SHA2), (), (), "sha3 sha512")
  
! /* +nofp16 disables an implicit F16FML, even though an implicit F16FML
!    does not imply F16.  See F16FML for more details.  */
! AARCH64_OPT_EXTENSION("fp16", F16, (FP), (), (F16FML), "fphp asimdhp")
! 
! AARCH64_FMV_FEATURE("fp16", FP16, (F16))
  
  /* An explicit +fp16fml implies +fp16, but a dependence on it does not.
     Thus -march=armv8.4-a implies F16FML but not F16.  -march=armv8.4-a+fp16
*************** AARCH64_OPT_EXTENSION("sm4", SM4, (SIMD)
*** 104,154 ****
     -march=armv8.4-a+nofp16+fp16 enables F16 but not F16FML.  */
  AARCH64_OPT_EXTENSION("fp16fml", F16FML, (), (F16), (), "asimdfhm")
  
! AARCH64_OPT_EXTENSION("sve", SVE, (SIMD, F16), (), (), "sve")
  
! AARCH64_OPT_EXTENSION("profile", PROFILE, (), (), (), "")
  
! AARCH64_OPT_EXTENSION("rng", RNG, (), (), (), "rng")
  
! AARCH64_OPT_EXTENSION("memtag", MEMTAG, (), (), (), "")
  
! AARCH64_OPT_EXTENSION("sb", SB, (), (), (), "sb")
  
! AARCH64_OPT_EXTENSION("ssbs", SSBS, (), (), (), "ssbs")
  
! AARCH64_OPT_EXTENSION("predres", PREDRES, (), (), (), "")
  
! AARCH64_OPT_EXTENSION("sve2", SVE2, (SVE), (), (), "sve2")
  
! AARCH64_OPT_EXTENSION("sve2-sm4", SVE2_SM4, (SVE2, SM4), (), (), "svesm4")
  
  AARCH64_OPT_EXTENSION("sve2-aes", SVE2_AES, (SVE2, AES), (), (), "sveaes")
  
! AARCH64_OPT_EXTENSION("sve2-sha3", SVE2_SHA3, (SVE2, SHA3), (), (), "svesha3")
  
  AARCH64_OPT_EXTENSION("sve2-bitperm", SVE2_BITPERM, (SVE2), (), (),
  		      "svebitperm")
  
! AARCH64_OPT_EXTENSION("tme", TME, (), (), (), "")
  
! AARCH64_OPT_EXTENSION("i8mm", I8MM, (SIMD), (), (), "i8mm")
  
! AARCH64_OPT_EXTENSION("f32mm", F32MM, (SVE), (), (), "f32mm")
  
! AARCH64_OPT_EXTENSION("f64mm", F64MM, (SVE), (), (), "f64mm")
  
! /* An explicit +bf16 implies +simd, but +bf16+nosimd still enables scalar BF16
!    instructions.  */
! AARCH64_OPT_EXTENSION("bf16", BF16, (FP), (SIMD), (), "bf16")
  
! AARCH64_OPT_EXTENSION("flagm", FLAGM, (), (), (), "flagm")
  
  AARCH64_OPT_EXTENSION("pauth", PAUTH, (), (), (), "paca pacg")
  
  AARCH64_OPT_EXTENSION("ls64", LS64, (), (), (), "")
  
  AARCH64_OPT_EXTENSION("mops", MOPS, (), (), (), "")
  
  AARCH64_OPT_EXTENSION("cssc", CSSC, (), (), (), "cssc")
  
  #undef AARCH64_OPT_EXTENSION
--- 149,237 ----
     -march=armv8.4-a+nofp16+fp16 enables F16 but not F16FML.  */
  AARCH64_OPT_EXTENSION("fp16fml", F16FML, (), (F16), (), "asimdfhm")
  
! AARCH64_FMV_FEATURE("fp16fml", FP16FML, (F16FML))
  
! AARCH64_OPT_FMV_EXTENSION("rcpc", RCPC, (), (), (), "lrcpc")
  
! AARCH64_OPT_FMV_EXTENSION("rcpc3", RCPC3, (RCPC), (), (), "lrcpc3")
  
! AARCH64_OPT_FMV_EXTENSION("i8mm", I8MM, (SIMD), (), (), "i8mm")
  
! /* An explicit +bf16 implies +simd, but +bf16+nosimd still enables scalar BF16
!    instructions.  */
! AARCH64_OPT_FMV_EXTENSION("bf16", BF16, (FP), (SIMD), (), "bf16")
  
! AARCH64_FMV_FEATURE("rpres", RPRES, ())
  
! AARCH64_OPT_FMV_EXTENSION("sve", SVE, (SIMD, F16), (), (), "sve")
  
! AARCH64_OPT_EXTENSION("f32mm", F32MM, (SVE), (), (), "f32mm")
  
! AARCH64_FMV_FEATURE("f32mm", SVE_F32MM, (F32MM))
! 
! AARCH64_OPT_EXTENSION("f64mm", F64MM, (SVE), (), (), "f64mm")
! 
! AARCH64_FMV_FEATURE("f64mm", SVE_F64MM, (F64MM))
! 
! AARCH64_OPT_FMV_EXTENSION("sve2", SVE2, (SVE), (), (), "sve2")
  
  AARCH64_OPT_EXTENSION("sve2-aes", SVE2_AES, (SVE2, AES), (), (), "sveaes")
  
! AARCH64_FMV_FEATURE("sve2-aes", SVE_AES, (SVE2_AES))
  
  AARCH64_OPT_EXTENSION("sve2-bitperm", SVE2_BITPERM, (SVE2), (), (),
  		      "svebitperm")
  
! AARCH64_FMV_FEATURE("sve2-bitperm", SVE_BITPERM, (SVE2_BITPERM))
  
! AARCH64_OPT_EXTENSION("sve2-sha3", SVE2_SHA3, (SVE2, SHA3), (), (), "svesha3")
  
! AARCH64_FMV_FEATURE("sve2-sha3", SVE_SHA3, (SVE2_SHA3))
  
! AARCH64_OPT_EXTENSION("sve2-sm4", SVE2_SM4, (SVE2, SM4), (), (), "svesm4")
  
! AARCH64_FMV_FEATURE("sve2-sm4", SVE_SM4, (SVE2_SM4))
  
! AARCH64_OPT_FMV_EXTENSION("sme", SME, (BF16, SVE2), (), (), "sme")
! 
! AARCH64_OPT_EXTENSION("memtag", MEMTAG, (), (), (), "")
! 
! AARCH64_OPT_FMV_EXTENSION("sb", SB, (), (), (), "sb")
! 
! AARCH64_OPT_FMV_EXTENSION("predres", PREDRES, (), (), (), "")
! 
! AARCH64_OPT_EXTENSION("ssbs", SSBS, (), (), (), "ssbs")
! 
! AARCH64_OPT_EXTENSION("profile", PROFILE, (), (), (), "")
! 
! AARCH64_OPT_EXTENSION("tme", TME, (), (), (), "")
  
  AARCH64_OPT_EXTENSION("pauth", PAUTH, (), (), (), "paca pacg")
  
  AARCH64_OPT_EXTENSION("ls64", LS64, (), (), (), "")
  
+ AARCH64_OPT_EXTENSION("sme-f64f64", SME_F64F64, (SME), (), (), "")
+ 
+ AARCH64_FMV_FEATURE("sme-f64f64", SME_F64, (SME_F64F64))
+ 
+ AARCH64_OPT_EXTENSION("sme-i16i64", SME_I16I64, (SME), (), (), "")
+ 
+ AARCH64_FMV_FEATURE("sme-i16i64", SME_I64, (SME_I16I64))
+ 
+ AARCH64_OPT_FMV_EXTENSION("sme2", SME2, (SME), (), (), "sme2")
+ 
  AARCH64_OPT_EXTENSION("mops", MOPS, (), (), (), "")
  
  AARCH64_OPT_EXTENSION("cssc", CSSC, (), (), (), "cssc")
  
+ AARCH64_OPT_EXTENSION("lse128", LSE128, (LSE), (), (), "lse128")
+ 
+ AARCH64_OPT_EXTENSION("d128", D128, (LSE128), (), (), "d128")
+ 
+ AARCH64_OPT_EXTENSION("the", THE, (), (), (), "the")
+ 
+ AARCH64_OPT_EXTENSION("gcs", GCS, (), (), (), "gcs")
+ 
+ #undef AARCH64_OPT_FMV_EXTENSION
  #undef AARCH64_OPT_EXTENSION
+ #undef AARCH64_FMV_FEATURE
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-opts.h gcc-14.1.0/gcc/config/aarch64/aarch64-opts.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-opts.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** enum aarch64_processor
*** 32,39 ****
  #define AARCH64_CORE(NAME, INTERNAL_IDENT, SCHED, ARCH, FLAGS, COSTS, IMP, PART, VARIANT) \
    INTERNAL_IDENT,
  #include "aarch64-cores.def"
-   /* Used to indicate that no processor has been specified.  */
-   generic,
    /* Used to mark the end of the processor table.  */
    aarch64_none
  };
--- 32,37 ----
*************** enum aarch64_code_model {
*** 75,80 ****
--- 73,88 ----
    AARCH64_CMODEL_LARGE
  };
  
+ /* The register to use as a thread pointer for TLS accesses.
+    tpidr_el0 by default, but can be changed through the -mtp option.  */
+ enum aarch64_tp_reg {
+   AARCH64_TPIDR_EL0 = 0,
+   AARCH64_TPIDR_EL1 = 1,
+   AARCH64_TPIDR_EL2 = 2,
+   AARCH64_TPIDR_EL3 = 3,
+   AARCH64_TPIDRRO_EL0 = 4
+ };
+ 
  /* SVE vector register sizes.  */
  enum aarch64_sve_vector_bits_enum {
    SVE_SCALABLE,
*************** enum aarch64_key_type {
*** 98,101 ****
--- 106,134 ----
    AARCH64_KEY_B
  };
  
+ /* An enum specifying how to handle load and store pairs using
+    a fine-grained policy:
+    - LDP_STP_POLICY_DEFAULT: Use the policy defined in the tuning structure.
+    - LDP_STP_POLICY_ALIGNED: Emit ldp/stp if the source pointer is aligned
+    to at least double the alignment of the type.
+    - LDP_STP_POLICY_ALWAYS: Emit ldp/stp regardless of alignment.
+    - LDP_STP_POLICY_NEVER: Do not emit ldp/stp.  */
+ enum aarch64_ldp_stp_policy {
+   AARCH64_LDP_STP_POLICY_DEFAULT,
+   AARCH64_LDP_STP_POLICY_ALIGNED,
+   AARCH64_LDP_STP_POLICY_ALWAYS,
+   AARCH64_LDP_STP_POLICY_NEVER
+ };
+ 
+ /* An enum specifying when the early-ra pass should be run:
+    - AARCH64_EARLY_RA_ALL: for all functions
+    - AARCH64_EARLY_RA_STRIDED: for functions that have access to strided
+      multi-register instructions
+    - AARCH64_EARLY_RA_NONE: for no functions.  */
+ enum aarch64_early_ra_scope {
+   AARCH64_EARLY_RA_ALL,
+   AARCH64_EARLY_RA_STRIDED,
+   AARCH64_EARLY_RA_NONE
+ };
+ 
  #endif
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-passes.def gcc-14.1.0/gcc/config/aarch64/aarch64-passes.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-passes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-passes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* AArch64-specific passes declarations.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* AArch64-specific passes declarations.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 18,25 ****
--- 18,30 ----
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
+ INSERT_PASS_BEFORE (pass_sched, 1, pass_aarch64_early_ra);
  INSERT_PASS_AFTER (pass_regrename, 1, pass_fma_steering);
  INSERT_PASS_BEFORE (pass_reorder_blocks, 1, pass_track_speculation);
+ INSERT_PASS_BEFORE (pass_late_thread_prologue_and_epilogue, 1, pass_switch_pstate_sm);
+ INSERT_PASS_BEFORE (pass_late_thread_prologue_and_epilogue, 1, pass_late_track_speculation);
  INSERT_PASS_AFTER (pass_machine_reorg, 1, pass_tag_collision_avoidance);
  INSERT_PASS_BEFORE (pass_shorten_branches, 1, pass_insert_bti);
  INSERT_PASS_AFTER (pass_if_after_combine, 1, pass_cc_fusion);
+ INSERT_PASS_BEFORE (pass_early_remat, 1, pass_ldp_fusion);
+ INSERT_PASS_BEFORE (pass_peephole2, 1, pass_ldp_fusion);
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-protos.h gcc-14.1.0/gcc/config/aarch64/aarch64-protos.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** struct tune_params
*** 568,573 ****
--- 568,576 ----
    /* Place prefetch struct pointer at the end to enable type checking
       errors when tune_params misses elements (e.g., from erroneous merges).  */
    const struct cpu_prefetch_tune *prefetch;
+ 
+   /* Define models for the aarch64_ldp_stp_policy.  */
+   enum aarch64_ldp_stp_policy ldp_policy_model, stp_policy_model;
  };
  
  /* Classifies an address.
*************** bool aarch64_can_const_movi_rtx_p (rtx x
*** 758,772 ****
  bool aarch64_const_vec_all_same_int_p (rtx, HOST_WIDE_INT);
  bool aarch64_const_vec_all_same_in_range_p (rtx, HOST_WIDE_INT,
  					    HOST_WIDE_INT);
  bool aarch64_constant_address_p (rtx);
  bool aarch64_emit_approx_div (rtx, rtx, rtx);
  bool aarch64_emit_approx_sqrt (rtx, rtx, bool);
  tree aarch64_vector_load_decl (tree);
  void aarch64_expand_call (rtx, rtx, rtx, bool);
! bool aarch64_expand_cpymem (rtx *);
  bool aarch64_expand_setmem (rtx *);
  bool aarch64_float_const_zero_rtx_p (rtx);
  bool aarch64_float_const_rtx_p (rtx);
  bool aarch64_function_arg_regno_p (unsigned);
  bool aarch64_fusion_enabled_p (enum aarch64_fusion_pairs);
  bool aarch64_gen_cpymemqi (rtx *);
--- 761,780 ----
  bool aarch64_const_vec_all_same_int_p (rtx, HOST_WIDE_INT);
  bool aarch64_const_vec_all_same_in_range_p (rtx, HOST_WIDE_INT,
  					    HOST_WIDE_INT);
+ bool aarch64_const_vec_rnd_cst_p (rtx, rtx);
+ bool aarch64_rnd_imm_p (rtx);
  bool aarch64_constant_address_p (rtx);
  bool aarch64_emit_approx_div (rtx, rtx, rtx);
  bool aarch64_emit_approx_sqrt (rtx, rtx, bool);
  tree aarch64_vector_load_decl (tree);
+ rtx aarch64_gen_callee_cookie (aarch64_feature_flags, arm_pcs);
  void aarch64_expand_call (rtx, rtx, rtx, bool);
! bool aarch64_expand_cpymem_mops (rtx *, bool);
! bool aarch64_expand_cpymem (rtx *, bool);
  bool aarch64_expand_setmem (rtx *);
  bool aarch64_float_const_zero_rtx_p (rtx);
  bool aarch64_float_const_rtx_p (rtx);
+ bool aarch64_const_zero_rtx_p (rtx);
  bool aarch64_function_arg_regno_p (unsigned);
  bool aarch64_fusion_enabled_p (enum aarch64_fusion_pairs);
  bool aarch64_gen_cpymemqi (rtx *);
*************** bool aarch64_mask_and_shift_for_ubfiz_p
*** 782,787 ****
--- 790,796 ----
  bool aarch64_masks_and_shift_for_bfi_p (scalar_int_mode, unsigned HOST_WIDE_INT,
  					unsigned HOST_WIDE_INT,
  					unsigned HOST_WIDE_INT);
+ rtx aarch64_sve_reinterpret (machine_mode, rtx);
  bool aarch64_zero_extend_const_eq (machine_mode, rtx, machine_mode, rtx);
  bool aarch64_move_imm (unsigned HOST_WIDE_INT, machine_mode);
  machine_mode aarch64_sve_int_mode (machine_mode);
*************** bool aarch64_sve_mode_p (machine_mode);
*** 792,801 ****
--- 801,817 ----
  HOST_WIDE_INT aarch64_fold_sve_cnt_pat (aarch64_svpattern, unsigned int);
  bool aarch64_sve_cnt_immediate_p (rtx);
  bool aarch64_sve_scalar_inc_dec_immediate_p (rtx);
+ bool aarch64_sve_rdvl_immediate_p (rtx);
  bool aarch64_sve_addvl_addpl_immediate_p (rtx);
  bool aarch64_sve_vector_inc_dec_immediate_p (rtx);
  int aarch64_add_offset_temporaries (rtx);
  void aarch64_split_add_offset (scalar_int_mode, rtx, rtx, rtx, rtx, rtx);
+ bool aarch64_rdsvl_immediate_p (const_rtx);
+ rtx aarch64_sme_vq_immediate (machine_mode mode, HOST_WIDE_INT,
+ 			      aarch64_feature_flags);
+ char *aarch64_output_rdsvl (const_rtx);
+ bool aarch64_addsvl_addspl_immediate_p (const_rtx);
+ char *aarch64_output_addsvl_addspl (rtx);
  bool aarch64_mov_operand_p (rtx, machine_mode);
  rtx aarch64_reverse_mask (machine_mode, unsigned int);
  bool aarch64_offset_7bit_signed_scaled_p (machine_mode, poly_int64);
*************** char *aarch64_output_sve_prefetch (const
*** 804,809 ****
--- 820,826 ----
  char *aarch64_output_sve_cnt_immediate (const char *, const char *, rtx);
  char *aarch64_output_sve_cnt_pat_immediate (const char *, const char *, rtx *);
  char *aarch64_output_sve_scalar_inc_dec (rtx);
+ char *aarch64_output_sve_rdvl (rtx);
  char *aarch64_output_sve_addvl_addpl (rtx);
  char *aarch64_output_sve_vector_inc_dec (const char *, rtx);
  char *aarch64_output_scalar_simd_mov_immediate (rtx, scalar_int_mode);
*************** bool aarch64_regno_ok_for_index_p (int,
*** 817,828 ****
--- 834,851 ----
  bool aarch64_reinterpret_float_as_int (rtx value, unsigned HOST_WIDE_INT *fail);
  bool aarch64_simd_check_vect_par_cnst_half (rtx op, machine_mode mode,
  					    bool high);
+ bool aarch64_parallel_select_half_p (machine_mode, rtx);
+ bool aarch64_pars_overlap_p (rtx, rtx);
  bool aarch64_simd_scalar_immediate_valid_for_move (rtx, scalar_int_mode);
  bool aarch64_simd_shift_imm_p (rtx, machine_mode, bool);
  bool aarch64_sve_ptrue_svpattern_p (rtx, struct simd_immediate_info *);
  bool aarch64_simd_valid_immediate (rtx, struct simd_immediate_info *,
  			enum simd_immediate_check w = AARCH64_CHECK_MOV);
+ bool aarch64_valid_sysreg_name_p (const char *);
+ const char *aarch64_retrieve_sysreg (const char *, bool, bool);
  rtx aarch64_check_zero_based_sve_index_immediate (rtx);
+ bool aarch64_maybe_generate_simd_constant (rtx, rtx, machine_mode);
+ bool aarch64_simd_special_constant_p (rtx, machine_mode);
  bool aarch64_sve_index_immediate_p (rtx);
  bool aarch64_sve_arith_immediate_p (machine_mode, rtx, bool);
  bool aarch64_sve_sqadd_sqsub_immediate_p (machine_mode, rtx, bool);
*************** int aarch64_movk_shift (const wide_int_r
*** 838,845 ****
  bool aarch64_is_mov_xn_imm (unsigned HOST_WIDE_INT);
  bool aarch64_use_return_insn_p (void);
  const char *aarch64_output_casesi (rtx *);
  
! unsigned int aarch64_tlsdesc_abi_id ();
  enum aarch64_symbol_type aarch64_classify_symbol (rtx, HOST_WIDE_INT);
  enum aarch64_symbol_type aarch64_classify_tls_symbol (rtx);
  enum reg_class aarch64_regno_regclass (unsigned);
--- 861,870 ----
  bool aarch64_is_mov_xn_imm (unsigned HOST_WIDE_INT);
  bool aarch64_use_return_insn_p (void);
  const char *aarch64_output_casesi (rtx *);
+ const char *aarch64_output_load_tp (rtx);
+ const char *aarch64_output_sme_zero_za (rtx);
  
! arm_pcs aarch64_tlsdesc_abi_id ();
  enum aarch64_symbol_type aarch64_classify_symbol (rtx, HOST_WIDE_INT);
  enum aarch64_symbol_type aarch64_classify_tls_symbol (rtx);
  enum reg_class aarch64_regno_regclass (unsigned);
*************** machine_mode aarch64_hard_regno_caller_s
*** 850,862 ****
  						       machine_mode);
  int aarch64_uxt_size (int, HOST_WIDE_INT);
  int aarch64_vec_fpconst_pow_of_2 (rtx);
- rtx aarch64_eh_return_handler_rtx (void);
  rtx aarch64_mask_from_zextract_ops (rtx, rtx);
- const char *aarch64_output_move_struct (rtx *operands);
  rtx aarch64_return_addr_rtx (void);
  rtx aarch64_return_addr (int, rtx);
  rtx aarch64_simd_gen_const_vector_dup (machine_mode, HOST_WIDE_INT);
  rtx aarch64_gen_shareable_zero (machine_mode);
  bool aarch64_simd_mem_operand_p (rtx);
  bool aarch64_sve_ld1r_operand_p (rtx);
  bool aarch64_sve_ld1rq_operand_p (rtx);
--- 875,886 ----
  						       machine_mode);
  int aarch64_uxt_size (int, HOST_WIDE_INT);
  int aarch64_vec_fpconst_pow_of_2 (rtx);
  rtx aarch64_mask_from_zextract_ops (rtx, rtx);
  rtx aarch64_return_addr_rtx (void);
  rtx aarch64_return_addr (int, rtx);
  rtx aarch64_simd_gen_const_vector_dup (machine_mode, HOST_WIDE_INT);
  rtx aarch64_gen_shareable_zero (machine_mode);
+ bool aarch64_split_simd_shift_p (rtx_insn *);
  bool aarch64_simd_mem_operand_p (rtx);
  bool aarch64_sve_ld1r_operand_p (rtx);
  bool aarch64_sve_ld1rq_operand_p (rtx);
*************** bool aarch64_sve_ldnf1_operand_p (rtx);
*** 866,874 ****
--- 890,900 ----
  bool aarch64_sve_ldr_operand_p (rtx);
  bool aarch64_sve_prefetch_operand_p (rtx, machine_mode);
  bool aarch64_sve_struct_memory_operand_p (rtx);
+ bool aarch64_sme_ldr_vnum_offset_p (rtx, rtx);
  rtx aarch64_simd_vect_par_cnst_half (machine_mode, int, bool);
  rtx aarch64_gen_stepped_int_parallel (unsigned int, int, int);
  bool aarch64_stepped_int_parallel_p (rtx, int);
+ bool aarch64_strided_registers_p (rtx *, unsigned int, unsigned int);
  rtx aarch64_tls_get_addr (void);
  unsigned aarch64_debugger_regno (unsigned);
  unsigned aarch64_trampoline_size (void);
*************** const char * aarch64_gen_far_branch (rtx
*** 878,884 ****
  const char * aarch64_output_probe_stack_range (rtx, rtx);
  const char * aarch64_output_probe_sve_stack_clash (rtx, rtx, rtx, rtx);
  void aarch64_err_no_fpadvsimd (machine_mode);
! void aarch64_expand_epilogue (bool);
  rtx aarch64_ptrue_all (unsigned int);
  opt_machine_mode aarch64_ptrue_all_mode (rtx);
  rtx aarch64_convert_sve_data_to_pred (rtx, machine_mode, rtx);
--- 904,910 ----
  const char * aarch64_output_probe_stack_range (rtx, rtx);
  const char * aarch64_output_probe_sve_stack_clash (rtx, rtx, rtx, rtx);
  void aarch64_err_no_fpadvsimd (machine_mode);
! void aarch64_expand_epilogue (rtx_call_insn *);
  rtx aarch64_ptrue_all (unsigned int);
  opt_machine_mode aarch64_ptrue_all_mode (rtx);
  rtx aarch64_convert_sve_data_to_pred (rtx, machine_mode, rtx);
*************** void aarch64_sve_expand_vector_init (rtx
*** 899,905 ****
  void aarch64_init_cumulative_args (CUMULATIVE_ARGS *, const_tree, rtx,
  				   const_tree, unsigned, bool = false);
  void aarch64_init_expanders (void);
! void aarch64_emit_call_insn (rtx);
  void aarch64_register_pragmas (void);
  void aarch64_relayout_simd_types (void);
  void aarch64_reset_previous_fndecl (void);
--- 925,931 ----
  void aarch64_init_cumulative_args (CUMULATIVE_ARGS *, const_tree, rtx,
  				   const_tree, unsigned, bool = false);
  void aarch64_init_expanders (void);
! rtx_call_insn *aarch64_emit_call_insn (rtx);
  void aarch64_register_pragmas (void);
  void aarch64_relayout_simd_types (void);
  void aarch64_reset_previous_fndecl (void);
*************** rtx aarch64_simd_expand_builtin (int, tr
*** 927,932 ****
--- 953,959 ----
  void aarch64_simd_lane_bounds (rtx, HOST_WIDE_INT, HOST_WIDE_INT, const_tree);
  rtx aarch64_endian_lane_rtx (machine_mode, unsigned int);
  
+ void aarch64_split_double_move (rtx, rtx, machine_mode);
  void aarch64_split_128bit_move (rtx, rtx);
  
  bool aarch64_split_128bit_move_p (rtx, rtx);
*************** void aarch64_split_compare_and_swap (rtx
*** 956,961 ****
--- 983,990 ----
  void aarch64_split_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx, rtx);
  
  bool aarch64_gen_adjusted_ldpstp (rtx *, bool, machine_mode, RTX_CODE);
+ void aarch64_finish_ldpstp_peephole (rtx *, bool,
+ 				     enum rtx_code = (enum rtx_code)0);
  
  void aarch64_expand_sve_vec_cmp_int (rtx, rtx_code, rtx, rtx);
  bool aarch64_expand_sve_vec_cmp_float (rtx, rtx_code, rtx, rtx, bool);
*************** tree aarch64_general_builtin_rsqrt (unsi
*** 979,987 ****
  void handle_arm_acle_h (void);
  void handle_arm_neon_h (void);
  
  namespace aarch64_sve {
    void init_builtins ();
!   void handle_arm_sve_h ();
    tree builtin_decl (unsigned, bool);
    bool builtin_type_p (const_tree);
    bool builtin_type_p (const_tree, unsigned int *, unsigned int *);
--- 1008,1022 ----
  void handle_arm_acle_h (void);
  void handle_arm_neon_h (void);
  
+ bool aarch64_general_check_builtin_call (location_t, vec<location_t>,
+ 					 unsigned int, tree, unsigned int,
+ 					 tree *);
+ 
  namespace aarch64_sve {
    void init_builtins ();
!   void handle_arm_sve_h (bool);
!   void handle_arm_sme_h (bool);
!   void handle_arm_neon_sve_bridge_h (bool);
    tree builtin_decl (unsigned, bool);
    bool builtin_type_p (const_tree);
    bool builtin_type_p (const_tree, unsigned int *, unsigned int *);
*************** int aarch64_ccmp_mode_to_code (machine_m
*** 1008,1016 ****
  
  bool extract_base_offset_in_addr (rtx mem, rtx *base, rtx *offset);
  bool aarch64_mergeable_load_pair_p (machine_mode, rtx, rtx);
! bool aarch64_operands_ok_for_ldpstp (rtx *, bool, machine_mode);
  bool aarch64_operands_adjust_ok_for_ldpstp (rtx *, bool, machine_mode);
! void aarch64_swap_ldrstr_operands (rtx *, bool);
  
  extern void aarch64_asm_output_pool_epilogue (FILE *, const char *,
  					      tree, HOST_WIDE_INT);
--- 1043,1054 ----
  
  bool extract_base_offset_in_addr (rtx mem, rtx *base, rtx *offset);
  bool aarch64_mergeable_load_pair_p (machine_mode, rtx, rtx);
! bool aarch64_operands_ok_for_ldpstp (rtx *, bool);
  bool aarch64_operands_adjust_ok_for_ldpstp (rtx *, bool, machine_mode);
! bool aarch64_mem_ok_with_ldpstp_policy_model (rtx, bool, machine_mode);
! bool aarch64_ldpstp_operand_mode_p (machine_mode);
! rtx aarch64_gen_load_pair (rtx, rtx, rtx, enum rtx_code = (enum rtx_code)0);
! rtx aarch64_gen_store_pair (rtx, rtx, rtx);
  
  extern void aarch64_asm_output_pool_epilogue (FILE *, const char *,
  					      tree, HOST_WIDE_INT);
*************** void aarch64_get_all_extension_candidate
*** 1034,1044 ****
--- 1072,1086 ----
  std::string aarch64_get_extension_string_for_isa_flags (aarch64_feature_flags,
  							aarch64_feature_flags);
  
+ rtl_opt_pass *make_pass_aarch64_early_ra (gcc::context *);
  rtl_opt_pass *make_pass_fma_steering (gcc::context *);
  rtl_opt_pass *make_pass_track_speculation (gcc::context *);
+ rtl_opt_pass *make_pass_late_track_speculation (gcc::context *);
  rtl_opt_pass *make_pass_tag_collision_avoidance (gcc::context *);
  rtl_opt_pass *make_pass_insert_bti (gcc::context *ctxt);
  rtl_opt_pass *make_pass_cc_fusion (gcc::context *ctxt);
+ rtl_opt_pass *make_pass_switch_pstate_sm (gcc::context *ctxt);
+ rtl_opt_pass *make_pass_ldp_fusion (gcc::context *);
  
  poly_uint64 aarch64_regmode_natural_size (machine_mode);
  
*************** extern bool aarch64_harden_sls_blr_p (vo
*** 1066,1069 ****
--- 1108,1116 ----
  
  extern void aarch64_output_patchable_area (unsigned int, bool);
  
+ extern void aarch64_adjust_reg_alloc_order ();
+ 
+ bool aarch64_optimize_mode_switching (aarch64_mode_entity);
+ void aarch64_restore_za (rtx);
+ 
  #endif /* GCC_AARCH64_PROTOS_H */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-simd-builtin-types.def gcc-14.1.0/gcc/config/aarch64/aarch64-simd-builtin-types.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-simd-builtin-types.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-simd-builtin-types.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Builtin AdvSIMD types.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Builtin AdvSIMD types.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-simd-builtins.def gcc-14.1.0/gcc/config/aarch64/aarch64-simd-builtins.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-simd-builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-simd-builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 43,48 ****
--- 43,55 ----
     help describe the attributes (for example, pure) for the intrinsic
     function.  */
  
+   BUILTIN_V12DIF (LOADSTRUCT_LANE, vec_ldap1_lane, 0, ALL)
+   BUILTIN_V12DI (LOADSTRUCT_LANE_U, vec_ldap1_lane, 0, ALL)
+   BUILTIN_V12DI (LOADSTRUCT_LANE_P, vec_ldap1_lane, 0, ALL)
+   BUILTIN_V12DIF (STORESTRUCT_LANE, vec_stl1_lane, 0, ALL)
+   BUILTIN_V12DI (STORESTRUCT_LANE_U, vec_stl1_lane, 0, ALL)
+   BUILTIN_V12DI (STORESTRUCT_LANE_P, vec_stl1_lane, 0, ALL)
+ 
    BUILTIN_VDC (BINOP, combine, 0, AUTO_FP)
    BUILTIN_VD_I (BINOPU, combine, 0, NONE)
    BUILTIN_VDC_P (BINOPP, combine, 0, NONE)
***************
*** 53,60 ****
    BUILTIN_VHSDF_DF (UNOP, sqrt, 2, FP)
    BUILTIN_VDQ_I (BINOP, addp, 0, NONE)
    BUILTIN_VDQ_I (BINOPU, addp, 0, NONE)
-   VAR1 (UNOP, addp, 0, NONE, di)
-   VAR1 (UNOPU, addp, 0, NONE, di)
    BUILTIN_VDQ_BHSI (UNOP, clrsb, 2, NONE)
    BUILTIN_VDQ_BHSI (UNOP, clz, 2, NONE)
    BUILTIN_VS (UNOP, ctz, 2, NONE)
--- 60,65 ----
***************
*** 262,282 ****
    BUILTIN_VDQHS (TERNOP, mls_n, 0, NONE)
    BUILTIN_VDQHS (TERNOPU, mls_n, 0, NONE)
  
!   /* Implemented by aarch64_shrn<mode>".  */
!   BUILTIN_VQN (SHIFTIMM, shrn, 0, NONE)
!   BUILTIN_VQN (USHIFTIMM, shrn, 0, NONE)
  
!   /* Implemented by aarch64_shrn2<mode>.  */
!   BUILTIN_VQN (SHIFT2IMM, shrn2, 0, NONE)
!   BUILTIN_VQN (USHIFT2IMM, shrn2, 0, NONE)
  
!   /* Implemented by aarch64_rshrn<mode>".  */
!   BUILTIN_VQN (SHIFTIMM, rshrn, 0, NONE)
!   BUILTIN_VQN (USHIFTIMM, rshrn, 0, NONE)
  
!   /* Implemented by aarch64_rshrn2<mode>.  */
!   BUILTIN_VQN (SHIFT2IMM, rshrn2, 0, NONE)
!   BUILTIN_VQN (USHIFT2IMM, rshrn2, 0, NONE)
  
    /* Implemented by aarch64_<su>mlsl<mode>.  */
    BUILTIN_VD_BHSI (TERNOP, smlsl, 0, NONE)
--- 267,283 ----
    BUILTIN_VDQHS (TERNOP, mls_n, 0, NONE)
    BUILTIN_VDQHS (TERNOPU, mls_n, 0, NONE)
  
!   BUILTIN_VQN (SHIFTIMM, shrn_n, 0, NONE)
!   BUILTIN_VQN (USHIFTIMM, shrn_n, 0, NONE)
  
!   BUILTIN_VQN (SHIFT2IMM, ushrn2_n, 0, NONE)
!   BUILTIN_VQN (USHIFT2IMM, ushrn2_n, 0, NONE)
  
!   BUILTIN_VQN (SHIFTIMM, rshrn_n, 0, NONE)
!   BUILTIN_VQN (USHIFTIMM, rshrn_n, 0, NONE)
  
!   BUILTIN_VQN (SHIFT2IMM, rshrn2_n, 0, NONE)
!   BUILTIN_VQN (USHIFT2IMM, rshrn2_n, 0, NONE)
  
    /* Implemented by aarch64_<su>mlsl<mode>.  */
    BUILTIN_VD_BHSI (TERNOP, smlsl, 0, NONE)
***************
*** 472,478 ****
    /* Implemented by aarch64_<sur>shll2_n<mode>.  */
    BUILTIN_VQW (SHIFTIMM, sshll2_n, 0, NONE)
    BUILTIN_VQW (SHIFTIMM, ushll2_n, 0, NONE)
-   /* Implemented by aarch64_<sur>q<r>shr<u>n_n<mode>.  */
    BUILTIN_VQN (SHIFTIMM, sqshrun_n, 0, NONE)
    BUILTIN_VQN (SHIFTIMM, sqrshrun_n, 0, NONE)
    BUILTIN_VQN (SHIFTIMM, sqshrn_n, 0, NONE)
--- 473,478 ----
***************
*** 485,495 ****
    BUILTIN_SD_HSDI (USHIFTIMM, uqshrn_n, 0, NONE)
    BUILTIN_SD_HSDI (SHIFTIMM, sqrshrn_n, 0, NONE)
    BUILTIN_SD_HSDI (USHIFTIMM, uqrshrn_n, 0, NONE)
-   /* Implemented by aarch64_<sur>q<r>shr<u>n2_n<mode>.  */
    BUILTIN_VQN (SHIFT2IMM_UUSS, sqshrun2_n, 0, NONE)
    BUILTIN_VQN (SHIFT2IMM_UUSS, sqrshrun2_n, 0, NONE)
!   BUILTIN_VQN (SHIFT2IMM, sqshrn2_n, 0, NONE)
!   BUILTIN_VQN (USHIFT2IMM, uqshrn2_n, 0, NONE)
    BUILTIN_VQN (SHIFT2IMM, sqrshrn2_n, 0, NONE)
    BUILTIN_VQN (USHIFT2IMM, uqrshrn2_n, 0, NONE)
    /* Implemented by aarch64_<sur>s<lr>i_n<mode>.  */
--- 485,494 ----
    BUILTIN_SD_HSDI (USHIFTIMM, uqshrn_n, 0, NONE)
    BUILTIN_SD_HSDI (SHIFTIMM, sqrshrn_n, 0, NONE)
    BUILTIN_SD_HSDI (USHIFTIMM, uqrshrn_n, 0, NONE)
    BUILTIN_VQN (SHIFT2IMM_UUSS, sqshrun2_n, 0, NONE)
    BUILTIN_VQN (SHIFT2IMM_UUSS, sqrshrun2_n, 0, NONE)
!   BUILTIN_VQN (SHIFT2IMM, sqsshrn2_n, 0, NONE)
!   BUILTIN_VQN (USHIFT2IMM, uqushrn2_n, 0, NONE)
    BUILTIN_VQN (SHIFT2IMM, sqrshrn2_n, 0, NONE)
    BUILTIN_VQN (USHIFT2IMM, uqrshrn2_n, 0, NONE)
    /* Implemented by aarch64_<sur>s<lr>i_n<mode>.  */
***************
*** 848,856 ****
    BUILTIN_VHSDF_HSDF (BINOP_USS, cmle, 0, FP)
    BUILTIN_VHSDF_HSDF (BINOP_USS, cmlt, 0, FP)
  
-   /* Implemented by neg<mode>2.  */
-   BUILTIN_VHSDF_HSDF (UNOP, neg, 2, ALL)
- 
    /* Implemented by aarch64_fac<optab><mode>.  */
    BUILTIN_VHSDF_HSDF (BINOP_USS, faclt, 0, FP)
    BUILTIN_VHSDF_HSDF (BINOP_USS, facle, 0, FP)
--- 847,852 ----
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-simd.md gcc-14.1.0/gcc/config/aarch64/aarch64-simd.md
*** gcc-13.2.0/gcc/config/aarch64/aarch64-simd.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-simd.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AArch64 AdvSIMD architecture.
! ;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AArch64 AdvSIMD architecture.
! ;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 18,23 ****
--- 18,51 ----
  ;; along with GCC; see the file COPYING3.  If not see
  ;; <http://www.gnu.org/licenses/>.
  
+ ;; The following define_subst rules are used to produce patterns representing
+ ;; the implicit zeroing effect of 64-bit Advanced SIMD operations, in effect
+ ;; a vec_concat with zeroes.  The order of the vec_concat operands differs
+ ;; for big-endian so we have a separate define_subst rule for each endianness.
+ (define_subst "add_vec_concat_subst_le"
+   [(set (match_operand:VDZ 0)
+         (match_operand:VDZ 1))]
+   "!BYTES_BIG_ENDIAN"
+   [(set (match_operand:<VDBL> 0 "register_operand" "=w")
+         (vec_concat:<VDBL>
+          (match_dup 1)
+          (match_operand:VDZ 2 "aarch64_simd_or_scalar_imm_zero")))])
+ 
+ (define_subst "add_vec_concat_subst_be"
+   [(set (match_operand:VDZ 0)
+         (match_operand:VDZ 1))]
+   "BYTES_BIG_ENDIAN"
+   [(set (match_operand:<VDBL> 0 "register_operand" "=w")
+         (vec_concat:<VDBL>
+          (match_operand:VDZ 2 "aarch64_simd_or_scalar_imm_zero")
+          (match_dup 1)))])
+ 
+ ;; The subst_attr definitions used to annotate patterns further in the file.
+ ;; Patterns that need to have the above substitutions added to them should
+ ;; have <vczle><vczbe> added to their name.
+ (define_subst_attr "vczle" "add_vec_concat_subst_le" "" "_vec_concatz_le")
+ (define_subst_attr "vczbe" "add_vec_concat_subst_be" "" "_vec_concatz_be")
+ 
  (define_expand "mov<mode>"
    [(set (match_operand:VALL_F16 0 "nonimmediate_operand")
  	(match_operand:VALL_F16 1 "general_operand"))]
***************
*** 63,87 ****
  })
  
  (define_insn "aarch64_simd_dup<mode>"
!   [(set (match_operand:VDQ_I 0 "register_operand" "=w, w")
  	(vec_duplicate:VDQ_I
! 	  (match_operand:<VEL> 1 "register_operand" "w,?r")))]
    "TARGET_SIMD"
!   "@
!    dup\\t%0.<Vtype>, %1.<Vetype>[0]
!    dup\\t%0.<Vtype>, %<vwcore>1"
!   [(set_attr "type" "neon_dup<q>, neon_from_gp<q>")]
  )
  
  (define_insn "aarch64_simd_dup<mode>"
!   [(set (match_operand:VDQF_F16 0 "register_operand" "=w,w")
  	(vec_duplicate:VDQF_F16
! 	  (match_operand:<VEL> 1 "register_operand" "w,r")))]
    "TARGET_SIMD"
!   "@
!    dup\\t%0.<Vtype>, %1.<Vetype>[0]
!    dup\\t%0.<Vtype>, %<vwcore>1"
!   [(set_attr "type" "neon_dup<q>, neon_from_gp<q>")]
  )
  
  (define_insn "aarch64_dup_lane<mode>"
--- 91,115 ----
  })
  
  (define_insn "aarch64_simd_dup<mode>"
!   [(set (match_operand:VDQ_I 0 "register_operand")
  	(vec_duplicate:VDQ_I
! 	  (match_operand:<VEL> 1 "register_operand")))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1  ; attrs: type      ]
!      [ w        , w  ; neon_dup<q>      ] dup\t%0.<Vtype>, %1.<Vetype>[0]
!      [ w        , ?r ; neon_from_gp<q>  ] dup\t%0.<Vtype>, %<vwcore>1
!   }
  )
  
  (define_insn "aarch64_simd_dup<mode>"
!   [(set (match_operand:VDQF_F16 0 "register_operand")
  	(vec_duplicate:VDQF_F16
! 	  (match_operand:<VEL> 1 "register_operand")))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 ; attrs: type      ]
!      [ w        , w ; neon_dup<q>      ] dup\t%0.<Vtype>, %1.<Vetype>[0]
!      [ w        , r ; neon_from_gp<q>  ] dup\t%0.<Vtype>, %<vwcore>1
!   }
  )
  
  (define_insn "aarch64_dup_lane<mode>"
***************
*** 114,191 ****
    [(set_attr "type" "neon_dup<q>")]
  )
  
! (define_insn "*aarch64_simd_mov<VDMOV:mode>"
!   [(set (match_operand:VDMOV 0 "nonimmediate_operand"
! 		"=w, m,  m,  w, ?r, ?w, ?r,  w,  w")
! 	(match_operand:VDMOV 1 "general_operand"
! 		"m,  Dz, w,  w,  w,  r,  r, Dn, Dz"))]
    "TARGET_FLOAT
     && (register_operand (operands[0], <MODE>mode)
         || aarch64_simd_reg_or_zero (operands[1], <MODE>mode))"
! {
!    switch (which_alternative)
!      {
!      case 0: return "ldr\t%d0, %1";
!      case 1: return "str\txzr, %0";
!      case 2: return "str\t%d1, %0";
!      case 3:
!        if (TARGET_SIMD)
! 	 return "mov\t%0.<Vbtype>, %1.<Vbtype>";
!        return "fmov\t%d0, %d1";
!      case 4:
!        if (TARGET_SIMD)
! 	 return "umov\t%0, %1.d[0]";
!        return "fmov\t%x0, %d1";
!      case 5: return "fmov\t%d0, %1";
!      case 6: return "mov\t%0, %1";
!      case 7:
! 	return aarch64_output_simd_mov_immediate (operands[1], 64);
!      case 8: return "fmov\t%d0, xzr";
!      default: gcc_unreachable ();
!      }
! }
!   [(set_attr "type" "neon_load1_1reg<q>, store_8, neon_store1_1reg<q>,\
! 		     neon_logic<q>, neon_to_gp<q>, f_mcr,\
! 		     mov_reg, neon_move<q>, f_mcr")
!    (set_attr "arch" "*,*,*,*,*,*,*,simd,*")]
  )
  
! (define_insn "*aarch64_simd_mov<VQMOV:mode>"
!   [(set (match_operand:VQMOV 0 "nonimmediate_operand"
! 		"=w, Umn,  m,  w, ?r, ?w, ?r, w,  w")
! 	(match_operand:VQMOV 1 "general_operand"
! 		"m,  Dz, w,  w,  w,  r,  r, Dn, Dz"))]
    "TARGET_FLOAT
     && (register_operand (operands[0], <MODE>mode)
         || aarch64_simd_reg_or_zero (operands[1], <MODE>mode))"
! {
!   switch (which_alternative)
!     {
!     case 0:
! 	return "ldr\t%q0, %1";
!     case 1:
! 	return "stp\txzr, xzr, %0";
!     case 2:
! 	return "str\t%q1, %0";
!     case 3:
! 	return "mov\t%0.<Vbtype>, %1.<Vbtype>";
!     case 4:
!     case 5:
!     case 6:
! 	return "#";
!     case 7:
! 	return aarch64_output_simd_mov_immediate (operands[1], 128);
!     case 8:
! 	return "fmov\t%d0, xzr";
!     default:
! 	gcc_unreachable ();
!     }
! }
!   [(set_attr "type" "neon_load1_1reg<q>, store_16, neon_store1_1reg<q>,\
! 		     neon_logic<q>, multiple, multiple,\
! 		     multiple, neon_move<q>, fmov")
!    (set_attr "length" "4,4,4,4,8,8,8,4,4")
!    (set_attr "arch" "*,*,*,simd,*,*,*,simd,*")]
  )
  
  ;; When storing lane zero we can use the normal STR and its more permissive
--- 142,222 ----
    [(set_attr "type" "neon_dup<q>")]
  )
  
! (define_insn_and_split "*aarch64_simd_mov<VDMOV:mode>"
!   [(set (match_operand:VDMOV 0 "nonimmediate_operand")
! 	(match_operand:VDMOV 1 "general_operand"))]
    "TARGET_FLOAT
     && (register_operand (operands[0], <MODE>mode)
         || aarch64_simd_reg_or_zero (operands[1], <MODE>mode))"
!   {@ [cons: =0, 1; attrs: type, arch, length]
!      [w , m ; neon_load1_1reg<q> , *        , *] ldr\t%d0, %1
!      [r , m ; load_8             , *        , *] ldr\t%x0, %1
!      [m , Dz; store_8            , *        , *] str\txzr, %0
!      [m , w ; neon_store1_1reg<q>, *        , *] str\t%d1, %0
!      [m , r ; store_8            , *        , *] str\t%x1, %0
!      [w , w ; neon_logic<q>      , simd     , *] mov\t%0.<Vbtype>, %1.<Vbtype>
!      [w , w ; neon_logic<q>      , *        , *] fmov\t%d0, %d1
!      [?r, w ; neon_to_gp<q>      , base_simd, *] umov\t%0, %1.d[0]
!      [?r, w ; neon_to_gp<q>      , *        , *] fmov\t%x0, %d1
!      [?w, r ; f_mcr              , *        , *] fmov\t%d0, %1
!      [?r, r ; mov_reg            , *        , *] mov\t%0, %1
!      [w , Dn; neon_move<q>       , simd     , *] << aarch64_output_simd_mov_immediate (operands[1], 64);
!      [w , Dz; f_mcr              , *        , *] fmov\t%d0, xzr
!      [w , Dx; neon_move          , simd     , 8] #
!   }
!   "CONST_INT_P (operands[1])
!    && aarch64_simd_special_constant_p (operands[1], <MODE>mode)
!    && FP_REGNUM_P (REGNO (operands[0]))"
!   [(const_int 0)]
!   {
!     aarch64_maybe_generate_simd_constant (operands[0], operands[1], <MODE>mode);
!     DONE;
!   }
  )
  
! (define_insn_and_split "*aarch64_simd_mov<VQMOV:mode>"
!   [(set (match_operand:VQMOV 0 "nonimmediate_operand")
! 	(match_operand:VQMOV 1 "general_operand"))]
    "TARGET_FLOAT
     && (register_operand (operands[0], <MODE>mode)
         || aarch64_simd_reg_or_zero (operands[1], <MODE>mode))"
!   {@ [cons: =0, 1; attrs: type, arch, length]
!      [w  , m ; neon_load1_1reg<q> , *   , 4] ldr\t%q0, %1
!      [Umn, Dz; store_16           , *   , 4] stp\txzr, xzr, %0
!      [m  , w ; neon_store1_1reg<q>, *   , 4] str\t%q1, %0
!      [w  , w ; neon_logic<q>      , simd, 4] mov\t%0.<Vbtype>, %1.<Vbtype>
!      [w  , w ; *                  , sve , 4] mov\t%Z0.d, %Z1.d
!      [?r , w ; multiple           , *   , 8] #
!      [?w , r ; multiple           , *   , 8] #
!      [?r , r ; multiple           , *   , 8] #
!      [w  , Dn; neon_move<q>       , simd, 4] << aarch64_output_simd_mov_immediate (operands[1], 128);
!      [w  , Dz; fmov               , *   , 4] fmov\t%d0, xzr
!      [w  , Dx; neon_move          , simd, 8] #
!   }
!   "&& reload_completed
!    && ((REG_P (operands[0])
! 	&& REG_P (operands[1])
! 	&& !(FP_REGNUM_P (REGNO (operands[0]))
! 	     && FP_REGNUM_P (REGNO (operands[1]))))
!        || (aarch64_simd_special_constant_p (operands[1], <MODE>mode)
! 	   && FP_REGNUM_P (REGNO (operands[0]))))"
!   [(const_int 0)]
!   {
!     if (GP_REGNUM_P (REGNO (operands[0]))
! 	&& GP_REGNUM_P (REGNO (operands[1])))
!       aarch64_simd_emit_reg_reg_move (operands, DImode, 2);
!     else
!       {
! 	if (FP_REGNUM_P (REGNO (operands[0]))
! 	    && <MODE>mode == V2DImode
! 	    && aarch64_maybe_generate_simd_constant (operands[0], operands[1],
! 						     <MODE>mode))
! 	  ;
! 	else
! 	  aarch64_split_simd_move (operands[0], operands[1]);
!       }
!     DONE;
!   }
  )
  
  ;; When storing lane zero we can use the normal STR and its more permissive
***************
*** 195,289 ****
    [(set (match_operand:<VEL> 0 "memory_operand" "=m")
  	(vec_select:<VEL> (match_operand:VALL_F16 1 "register_operand" "w")
  			(parallel [(match_operand 2 "const_int_operand" "n")])))]
!   "TARGET_SIMD
     && ENDIAN_LANE_N (<nunits>, INTVAL (operands[2])) == 0"
    "str\\t%<Vetype>1, %0"
    [(set_attr "type" "neon_store1_1reg<q>")]
  )
  
! (define_insn "load_pair<DREG:mode><DREG2:mode>"
!   [(set (match_operand:DREG 0 "register_operand" "=w")
! 	(match_operand:DREG 1 "aarch64_mem_pair_operand" "Ump"))
!    (set (match_operand:DREG2 2 "register_operand" "=w")
! 	(match_operand:DREG2 3 "memory_operand" "m"))]
!   "TARGET_FLOAT
!    && rtx_equal_p (XEXP (operands[3], 0),
! 		   plus_constant (Pmode,
! 				  XEXP (operands[1], 0),
! 				  GET_MODE_SIZE (<DREG:MODE>mode)))"
!   "ldp\\t%d0, %d2, %z1"
!   [(set_attr "type" "neon_ldp")]
! )
! 
! (define_insn "vec_store_pair<DREG:mode><DREG2:mode>"
!   [(set (match_operand:DREG 0 "aarch64_mem_pair_operand" "=Ump")
! 	(match_operand:DREG 1 "register_operand" "w"))
!    (set (match_operand:DREG2 2 "memory_operand" "=m")
! 	(match_operand:DREG2 3 "register_operand" "w"))]
!   "TARGET_FLOAT
!    && rtx_equal_p (XEXP (operands[2], 0),
! 		   plus_constant (Pmode,
! 				  XEXP (operands[0], 0),
! 				  GET_MODE_SIZE (<DREG:MODE>mode)))"
!   "stp\\t%d1, %d3, %z0"
!   [(set_attr "type" "neon_stp")]
! )
! 
! (define_insn "load_pair<VQ:mode><VQ2:mode>"
!   [(set (match_operand:VQ 0 "register_operand" "=w")
! 	(match_operand:VQ 1 "aarch64_mem_pair_operand" "Ump"))
!    (set (match_operand:VQ2 2 "register_operand" "=w")
! 	(match_operand:VQ2 3 "memory_operand" "m"))]
!   "TARGET_FLOAT
!     && rtx_equal_p (XEXP (operands[3], 0),
! 		    plus_constant (Pmode,
! 			       XEXP (operands[1], 0),
! 			       GET_MODE_SIZE (<VQ:MODE>mode)))"
!   "ldp\\t%q0, %q2, %z1"
!   [(set_attr "type" "neon_ldp_q")]
! )
! 
! (define_insn "vec_store_pair<VQ:mode><VQ2:mode>"
!   [(set (match_operand:VQ 0 "aarch64_mem_pair_operand" "=Ump")
! 	(match_operand:VQ 1 "register_operand" "w"))
!    (set (match_operand:VQ2 2 "memory_operand" "=m")
! 	(match_operand:VQ2 3 "register_operand" "w"))]
!   "TARGET_FLOAT
!    && rtx_equal_p (XEXP (operands[2], 0),
! 		   plus_constant (Pmode,
! 				  XEXP (operands[0], 0),
! 				  GET_MODE_SIZE (<VQ:MODE>mode)))"
!   "stp\\t%q1, %q3, %z0"
!   [(set_attr "type" "neon_stp_q")]
  )
  
- 
- (define_split
-   [(set (match_operand:VQMOV 0 "register_operand" "")
- 	(match_operand:VQMOV 1 "register_operand" ""))]
-   "TARGET_FLOAT
-    && reload_completed
-    && GP_REGNUM_P (REGNO (operands[0]))
-    && GP_REGNUM_P (REGNO (operands[1]))"
-   [(const_int 0)]
- {
-   aarch64_simd_emit_reg_reg_move (operands, DImode, 2);
-   DONE;
- })
- 
- (define_split
-   [(set (match_operand:VQMOV 0 "register_operand" "")
-         (match_operand:VQMOV 1 "register_operand" ""))]
-   "TARGET_FLOAT
-    && reload_completed
-    && ((FP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1])))
-        || (GP_REGNUM_P (REGNO (operands[0])) && FP_REGNUM_P (REGNO (operands[1]))))"
-   [(const_int 0)]
- {
-   aarch64_split_simd_move (operands[0], operands[1]);
-   DONE;
- })
- 
  (define_expand "@aarch64_split_simd_mov<mode>"
    [(set (match_operand:VQMOV 0)
  	(match_operand:VQMOV 1))]
--- 226,247 ----
    [(set (match_operand:<VEL> 0 "memory_operand" "=m")
  	(vec_select:<VEL> (match_operand:VALL_F16 1 "register_operand" "w")
  			(parallel [(match_operand 2 "const_int_operand" "n")])))]
!   "TARGET_FLOAT
     && ENDIAN_LANE_N (<nunits>, INTVAL (operands[2])) == 0"
    "str\\t%<Vetype>1, %0"
    [(set_attr "type" "neon_store1_1reg<q>")]
  )
  
! (define_insn "aarch64_simd_stp<mode>"
!   [(set (match_operand:VP_2E 0 "aarch64_mem_pair_lanes_operand")
! 	(vec_duplicate:VP_2E (match_operand:<VEL> 1 "register_operand")))]
!   "TARGET_SIMD"
!   {@ [ cons: =0 , 1 ; attrs: type            ]
!      [ Umn      , w ; neon_stp               ] stp\t%<Vetype>1, %<Vetype>1, %y0
!      [ Umn      , r ; store_<ldpstp_vel_sz>  ] stp\t%<vwcore>1, %<vwcore>1, %y0
!   }
  )
  
  (define_expand "@aarch64_split_simd_mov<mode>"
    [(set (match_operand:VQMOV 0)
  	(match_operand:VQMOV 1))]
***************
*** 353,391 ****
  )
  
  (define_insn_and_split "aarch64_simd_mov_from_<mode>low"
!   [(set (match_operand:<VHALF> 0 "register_operand" "=w,?r")
          (vec_select:<VHALF>
!           (match_operand:VQMOV_NO2E 1 "register_operand" "w,w")
!           (match_operand:VQMOV_NO2E 2 "vect_par_cnst_lo_half" "")))]
!   "TARGET_SIMD"
!   "@
!    #
!    umov\t%0, %1.d[0]"
    "&& reload_completed && aarch64_simd_register (operands[0], <VHALF>mode)"
    [(set (match_dup 0) (match_dup 1))]
    {
      operands[1] = aarch64_replace_reg_mode (operands[1], <VHALF>mode);
    }
!   [(set_attr "type" "mov_reg,neon_to_gp<q>")
!    (set_attr "length" "4")]
  )
  
  (define_insn "aarch64_simd_mov_from_<mode>high"
!   [(set (match_operand:<VHALF> 0 "register_operand" "=w,?r,?r")
          (vec_select:<VHALF>
!           (match_operand:VQMOV_NO2E 1 "register_operand" "w,w,w")
!           (match_operand:VQMOV_NO2E 2 "vect_par_cnst_hi_half" "")))]
    "TARGET_FLOAT"
!   "@
!    dup\t%d0, %1.d[1]
!    umov\t%0, %1.d[1]
!    fmov\t%0, %1.d[1]"
!   [(set_attr "type" "neon_dup<q>,neon_to_gp<q>,f_mrc")
!    (set_attr "arch" "simd,simd,*")
!    (set_attr "length" "4")]
  )
  
! (define_insn "orn<mode>3"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (ior:VDQ_I (not:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w"))
  		(match_operand:VDQ_I 2 "register_operand" "w")))]
--- 311,350 ----
  )
  
  (define_insn_and_split "aarch64_simd_mov_from_<mode>low"
!   [(set (match_operand:<VHALF> 0 "register_operand")
          (vec_select:<VHALF>
!           (match_operand:VQMOV_NO2E 1 "register_operand")
!           (match_operand:VQMOV_NO2E 2 "vect_par_cnst_lo_half")))]
!   "TARGET_FLOAT"
!   {@ [ cons: =0 , 1 ; attrs: type   , arch      ]
!      [ w        , w ; mov_reg       , simd      ] #
!      [ ?r       , w ; neon_to_gp<q> , base_simd ] umov\t%0, %1.d[0]
!      [ ?r       , w ; f_mrc         , *         ] fmov\t%0, %d1
!   }
    "&& reload_completed && aarch64_simd_register (operands[0], <VHALF>mode)"
    [(set (match_dup 0) (match_dup 1))]
    {
      operands[1] = aarch64_replace_reg_mode (operands[1], <VHALF>mode);
    }
!   [(set_attr "length" "4")]
  )
  
  (define_insn "aarch64_simd_mov_from_<mode>high"
!   [(set (match_operand:<VHALF> 0 "register_operand")
          (vec_select:<VHALF>
!           (match_operand:VQMOV_NO2E 1 "register_operand")
!           (match_operand:VQMOV_NO2E 2 "vect_par_cnst_hi_half")))]
    "TARGET_FLOAT"
!   {@ [ cons: =0 , 1 ; attrs: type   , arch  ]
!      [ w        , w ; neon_dup<q>   , simd  ] dup\t%d0, %1.d[1]
!      [ w        , w ; *             , sve   ] ext\t%Z0.b, %Z0.b, %Z0.b, #8
!      [ ?r       , w ; neon_to_gp<q> , simd  ] umov\t%0, %1.d[1]
!      [ ?r       , w ; f_mrc         , *     ] fmov\t%0, %1.d[1]
!   }
!   [(set_attr "length" "4")]
  )
  
! (define_insn "orn<mode>3<vczle><vczbe>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (ior:VDQ_I (not:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w"))
  		(match_operand:VDQ_I 2 "register_operand" "w")))]
***************
*** 394,400 ****
    [(set_attr "type" "neon_logic<q>")]
  )
  
! (define_insn "bic<mode>3"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (and:VDQ_I (not:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w"))
  		(match_operand:VDQ_I 2 "register_operand" "w")))]
--- 353,359 ----
    [(set_attr "type" "neon_logic<q>")]
  )
  
! (define_insn "bic<mode>3<vczle><vczbe>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (and:VDQ_I (not:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w"))
  		(match_operand:VDQ_I 2 "register_operand" "w")))]
***************
*** 403,409 ****
    [(set_attr "type" "neon_logic<q>")]
  )
  
! (define_insn "add<mode>3"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (plus:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		  (match_operand:VDQ_I 2 "register_operand" "w")))]
--- 362,368 ----
    [(set_attr "type" "neon_logic<q>")]
  )
  
! (define_insn "add<mode>3<vczle><vczbe>"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (plus:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		  (match_operand:VDQ_I 2 "register_operand" "w")))]
***************
*** 412,418 ****
    [(set_attr "type" "neon_add<q>")]
  )
  
! (define_insn "sub<mode>3"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (minus:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		   (match_operand:VDQ_I 2 "register_operand" "w")))]
--- 371,377 ----
    [(set_attr "type" "neon_add<q>")]
  )
  
! (define_insn "sub<mode>3<vczle><vczbe>"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (minus:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		   (match_operand:VDQ_I 2 "register_operand" "w")))]
***************
*** 421,427 ****
    [(set_attr "type" "neon_sub<q>")]
  )
  
! (define_insn "mul<mode>3"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
          (mult:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "w")
  		   (match_operand:VDQ_BHSI 2 "register_operand" "w")))]
--- 380,386 ----
    [(set_attr "type" "neon_sub<q>")]
  )
  
! (define_insn "mul<mode>3<vczle><vczbe>"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
          (mult:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "w")
  		   (match_operand:VDQ_BHSI 2 "register_operand" "w")))]
***************
*** 438,444 ****
    [(set_attr "type" "neon_rev<q>")]
  )
  
! (define_insn "aarch64_rbit<mode>"
    [(set (match_operand:VB 0 "register_operand" "=w")
  	(unspec:VB [(match_operand:VB 1 "register_operand" "w")]
  		   UNSPEC_RBIT))]
--- 397,403 ----
    [(set_attr "type" "neon_rev<q>")]
  )
  
! (define_insn "aarch64_rbit<mode><vczle><vczbe>"
    [(set (match_operand:VB 0 "register_operand" "=w")
  	(unspec:VB [(match_operand:VB 1 "register_operand" "w")]
  		   UNSPEC_RBIT))]
***************
*** 461,467 ****
    }
  )
  
! (define_expand "xorsign<mode>3"
    [(match_operand:VHSDF 0 "register_operand")
     (match_operand:VHSDF 1 "register_operand")
     (match_operand:VHSDF 2 "register_operand")]
--- 420,426 ----
    }
  )
  
! (define_expand "@xorsign<mode>3"
    [(match_operand:VHSDF 0 "register_operand")
     (match_operand:VHSDF 1 "register_operand")
     (match_operand:VHSDF 2 "register_operand")]
***************
*** 496,502 ****
  ;; to describe the permute that is also required, but even if that is done
  ;; the permute would have been created as a LOAD_LANES which means the values
  ;; in the registers are in the wrong order.
! (define_insn "aarch64_fcadd<rot><mode>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
  	(unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")
  		       (match_operand:VHSDF 2 "register_operand" "w")]
--- 455,461 ----
  ;; to describe the permute that is also required, but even if that is done
  ;; the permute would have been created as a LOAD_LANES which means the values
  ;; in the registers are in the wrong order.
! (define_insn "aarch64_fcadd<rot><mode><vczle><vczbe>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
  	(unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")
  		       (match_operand:VHSDF 2 "register_operand" "w")]
***************
*** 514,538 ****
    "TARGET_COMPLEX && !BYTES_BIG_ENDIAN"
  )
  
! (define_insn "aarch64_fcmla<rot><mode>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
! 	(plus:VHSDF (match_operand:VHSDF 1 "register_operand" "0")
! 		    (unspec:VHSDF [(match_operand:VHSDF 2 "register_operand" "w")
  				   (match_operand:VHSDF 3 "register_operand" "w")]
! 				   FCMLA)))]
    "TARGET_COMPLEX"
    "fcmla\t%0.<Vtype>, %2.<Vtype>, %3.<Vtype>, #<rot>"
    [(set_attr "type" "neon_fcmla")]
  )
  
  
! (define_insn "aarch64_fcmla_lane<rot><mode>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
! 	(plus:VHSDF (match_operand:VHSDF 1 "register_operand" "0")
! 		    (unspec:VHSDF [(match_operand:VHSDF 2 "register_operand" "w")
  				   (match_operand:VHSDF 3 "register_operand" "w")
  				   (match_operand:SI 4 "const_int_operand" "n")]
! 				   FCMLA)))]
    "TARGET_COMPLEX"
  {
    operands[4] = aarch64_endian_lane_rtx (<VHALF>mode, INTVAL (operands[4]));
--- 473,497 ----
    "TARGET_COMPLEX && !BYTES_BIG_ENDIAN"
  )
  
! (define_insn "aarch64_fcmla<rot><mode><vczle><vczbe>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
! 	(plus:VHSDF (unspec:VHSDF [(match_operand:VHSDF 2 "register_operand" "w")
  				   (match_operand:VHSDF 3 "register_operand" "w")]
! 				   FCMLA)
! 		    (match_operand:VHSDF 1 "register_operand" "0")))]
    "TARGET_COMPLEX"
    "fcmla\t%0.<Vtype>, %2.<Vtype>, %3.<Vtype>, #<rot>"
    [(set_attr "type" "neon_fcmla")]
  )
  
  
! (define_insn "aarch64_fcmla_lane<rot><mode><vczle><vczbe>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
! 	(plus:VHSDF (unspec:VHSDF [(match_operand:VHSDF 2 "register_operand" "w")
  				   (match_operand:VHSDF 3 "register_operand" "w")
  				   (match_operand:SI 4 "const_int_operand" "n")]
! 				   FCMLA)
! 		    (match_operand:VHSDF 1 "register_operand" "0")))]
    "TARGET_COMPLEX"
  {
    operands[4] = aarch64_endian_lane_rtx (<VHALF>mode, INTVAL (operands[4]));
***************
*** 541,553 ****
    [(set_attr "type" "neon_fcmla")]
  )
  
! (define_insn "aarch64_fcmla_laneq<rot>v4hf"
    [(set (match_operand:V4HF 0 "register_operand" "=w")
! 	(plus:V4HF (match_operand:V4HF 1 "register_operand" "0")
! 		   (unspec:V4HF [(match_operand:V4HF 2 "register_operand" "w")
  				 (match_operand:V8HF 3 "register_operand" "w")
  				 (match_operand:SI 4 "const_int_operand" "n")]
! 				 FCMLA)))]
    "TARGET_COMPLEX"
  {
    operands[4] = aarch64_endian_lane_rtx (V4HFmode, INTVAL (operands[4]));
--- 500,512 ----
    [(set_attr "type" "neon_fcmla")]
  )
  
! (define_insn "aarch64_fcmla_laneq<rot>v4hf<vczle><vczbe>"
    [(set (match_operand:V4HF 0 "register_operand" "=w")
! 	(plus:V4HF (unspec:V4HF [(match_operand:V4HF 2 "register_operand" "w")
  				 (match_operand:V8HF 3 "register_operand" "w")
  				 (match_operand:SI 4 "const_int_operand" "n")]
! 				 FCMLA)
! 		   (match_operand:V4HF 1 "register_operand" "0")))]
    "TARGET_COMPLEX"
  {
    operands[4] = aarch64_endian_lane_rtx (V4HFmode, INTVAL (operands[4]));
***************
*** 558,568 ****
  
  (define_insn "aarch64_fcmlaq_lane<rot><mode>"
    [(set (match_operand:VQ_HSF 0 "register_operand" "=w")
! 	(plus:VQ_HSF (match_operand:VQ_HSF 1 "register_operand" "0")
! 		     (unspec:VQ_HSF [(match_operand:VQ_HSF 2 "register_operand" "w")
  				     (match_operand:<VHALF> 3 "register_operand" "w")
  				     (match_operand:SI 4 "const_int_operand" "n")]
! 				     FCMLA)))]
    "TARGET_COMPLEX"
  {
    int nunits = GET_MODE_NUNITS (<VHALF>mode).to_constant ();
--- 517,527 ----
  
  (define_insn "aarch64_fcmlaq_lane<rot><mode>"
    [(set (match_operand:VQ_HSF 0 "register_operand" "=w")
! 	(plus:VQ_HSF (unspec:VQ_HSF [(match_operand:VQ_HSF 2 "register_operand" "w")
  				     (match_operand:<VHALF> 3 "register_operand" "w")
  				     (match_operand:SI 4 "const_int_operand" "n")]
! 				     FCMLA)
! 		     (match_operand:VQ_HSF 1 "register_operand" "0")))]
    "TARGET_COMPLEX"
  {
    int nunits = GET_MODE_NUNITS (<VHALF>mode).to_constant ();
***************
*** 632,638 ****
  ;; ...
  ;;
  ;; and so the vectorizer provides r, in which the result has to be accumulated.
! (define_insn "<sur>dot_prod<vsi2qi>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VSI2QI> 1 "register_operand" "w")
--- 591,597 ----
  ;; ...
  ;;
  ;; and so the vectorizer provides r, in which the result has to be accumulated.
! (define_insn "<sur>dot_prod<vsi2qi><vczle><vczbe>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VSI2QI> 1 "register_operand" "w")
***************
*** 646,652 ****
  
  ;; These instructions map to the __builtins for the Armv8.6-a I8MM usdot
  ;; (vector) Dot Product operation and the vectorized optab.
! (define_insn "usdot_prod<vsi2qi>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VSI2QI> 1 "register_operand" "w")
--- 605,611 ----
  
  ;; These instructions map to the __builtins for the Armv8.6-a I8MM usdot
  ;; (vector) Dot Product operation and the vectorized optab.
! (define_insn "usdot_prod<vsi2qi><vczle><vczbe>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VSI2QI> 1 "register_operand" "w")
***************
*** 660,666 ****
  
  ;; These instructions map to the __builtins for the Dot Product
  ;; indexed operations.
! (define_insn "aarch64_<sur>dot_lane<vsi2qi>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VSI2QI> 2 "register_operand" "w")
--- 619,625 ----
  
  ;; These instructions map to the __builtins for the Dot Product
  ;; indexed operations.
! (define_insn "aarch64_<sur>dot_lane<vsi2qi><vczle><vczbe>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VSI2QI> 2 "register_operand" "w")
***************
*** 676,682 ****
    [(set_attr "type" "neon_dot<q>")]
  )
  
! (define_insn "aarch64_<sur>dot_laneq<vsi2qi>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VSI2QI> 2 "register_operand" "w")
--- 635,641 ----
    [(set_attr "type" "neon_dot<q>")]
  )
  
! (define_insn "aarch64_<sur>dot_laneq<vsi2qi><vczle><vczbe>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VSI2QI> 2 "register_operand" "w")
***************
*** 694,700 ****
  
  ;; These instructions map to the __builtins for the armv8.6a I8MM usdot, sudot
  ;; (by element) Dot Product operations.
! (define_insn "aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VS:VSI2QI> 2 "register_operand" "w")
--- 653,659 ----
  
  ;; These instructions map to the __builtins for the armv8.6a I8MM usdot, sudot
  ;; (by element) Dot Product operations.
! (define_insn "aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi><vczle><vczbe>"
    [(set (match_operand:VS 0 "register_operand" "=w")
  	(plus:VS
  	  (unspec:VS [(match_operand:<VS:VSI2QI> 2 "register_operand" "w")
***************
*** 715,729 ****
  (define_expand "copysign<mode>3"
    [(match_operand:VHSDF 0 "register_operand")
     (match_operand:VHSDF 1 "register_operand")
!    (match_operand:VHSDF 2 "register_operand")]
    "TARGET_SIMD"
  {
!   rtx v_bitmask = gen_reg_rtx (<V_INT_EQUIV>mode);
    int bits = GET_MODE_UNIT_BITSIZE (<MODE>mode) - 1;
  
    emit_move_insn (v_bitmask,
  		  aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
  						     HOST_WIDE_INT_M1U << bits));
    emit_insn (gen_aarch64_simd_bsl<mode> (operands[0], v_bitmask,
  					 operands[2], operands[1]));
    DONE;
--- 674,706 ----
  (define_expand "copysign<mode>3"
    [(match_operand:VHSDF 0 "register_operand")
     (match_operand:VHSDF 1 "register_operand")
!    (match_operand:VHSDF 2 "nonmemory_operand")]
    "TARGET_SIMD"
  {
!   machine_mode int_mode = <V_INT_EQUIV>mode;
!   rtx v_bitmask = gen_reg_rtx (int_mode);
    int bits = GET_MODE_UNIT_BITSIZE (<MODE>mode) - 1;
  
    emit_move_insn (v_bitmask,
  		  aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
  						     HOST_WIDE_INT_M1U << bits));
+ 
+   /* copysign (x, -1) should instead be expanded as orr with the sign
+      bit.  */
+   if (!REG_P (operands[2]))
+     {
+       rtx op2_elt = unwrap_const_vec_duplicate (operands[2]);
+       if (GET_CODE (op2_elt) == CONST_DOUBLE
+ 	  && real_isneg (CONST_DOUBLE_REAL_VALUE (op2_elt)))
+ 	{
+ 	  emit_insn (gen_ior<v_int_equiv>3 (
+ 	    lowpart_subreg (int_mode, operands[0], <MODE>mode),
+ 	    lowpart_subreg (int_mode, operands[1], <MODE>mode), v_bitmask));
+ 	  DONE;
+ 	}
+     }
+ 
+   operands[2] = force_reg (<MODE>mode, operands[2]);
    emit_insn (gen_aarch64_simd_bsl<mode> (operands[0], v_bitmask,
  					 operands[2], operands[1]));
    DONE;
***************
*** 823,829 ****
    [(set_attr "type" "neon_fp_mul_d_scalar_q")]
  )
  
! (define_insn "neg<mode>2"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
  	(neg:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")))]
    "TARGET_SIMD"
--- 800,806 ----
    [(set_attr "type" "neon_fp_mul_d_scalar_q")]
  )
  
! (define_insn "neg<mode>2<vczle><vczbe>"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
  	(neg:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")))]
    "TARGET_SIMD"
***************
*** 831,837 ****
    [(set_attr "type" "neon_neg<q>")]
  )
  
! (define_insn "abs<mode>2"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (abs:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")))]
    "TARGET_SIMD"
--- 808,814 ----
    [(set_attr "type" "neon_neg<q>")]
  )
  
! (define_insn "abs<mode>2<vczle><vczbe>"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (abs:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")))]
    "TARGET_SIMD"
***************
*** 842,848 ****
  ;; The intrinsic version of integer ABS must not be allowed to
  ;; combine with any operation with an integrated ABS step, such
  ;; as SABD.
! (define_insn "aarch64_abs<mode>"
    [(set (match_operand:VSDQ_I_DI 0 "register_operand" "=w")
  	  (unspec:VSDQ_I_DI
  	    [(match_operand:VSDQ_I_DI 1 "register_operand" "w")]
--- 819,825 ----
  ;; The intrinsic version of integer ABS must not be allowed to
  ;; combine with any operation with an integrated ABS step, such
  ;; as SABD.
! (define_insn "aarch64_abs<mode><vczle><vczbe>"
    [(set (match_operand:VSDQ_I_DI 0 "register_operand" "=w")
  	  (unspec:VSDQ_I_DI
  	    [(match_operand:VSDQ_I_DI 1 "register_operand" "w")]
***************
*** 857,863 ****
  ;; So (ABS:QI (minus:QI 64 -128)) == (ABS:QI (192 or -64 signed)) == 64.
  ;; Whereas SABD would return 192 (-64 signed) on the above example.
  ;; Use MINUS ([us]max (op1, op2), [us]min (op1, op2)) instead.
! (define_insn "aarch64_<su>abd<mode>"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
  	(minus:VDQ_BHSI
  	  (USMAX:VDQ_BHSI
--- 834,840 ----
  ;; So (ABS:QI (minus:QI 64 -128)) == (ABS:QI (192 or -64 signed)) == 64.
  ;; Whereas SABD would return 192 (-64 signed) on the above example.
  ;; Use MINUS ([us]max (op1, op2), [us]min (op1, op2)) instead.
! (define_insn "aarch64_<su>abd<mode><vczle><vczbe>"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
  	(minus:VDQ_BHSI
  	  (USMAX:VDQ_BHSI
***************
*** 871,926 ****
    [(set_attr "type" "neon_abd<q>")]
  )
  
  
! (define_insn "aarch64_<sur>abdl<mode>"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(unspec:<VWIDE> [(match_operand:VD_BHSI 1 "register_operand" "w")
! 			 (match_operand:VD_BHSI 2 "register_operand" "w")]
! 	ABDL))]
    "TARGET_SIMD"
!   "<sur>abdl\t%0.<Vwtype>, %1.<Vtype>, %2.<Vtype>"
    [(set_attr "type" "neon_abd<q>")]
  )
  
! (define_insn "aarch64_<sur>abdl2<mode>"
    [(set (match_operand:<VDBLW> 0 "register_operand" "=w")
! 	(unspec:<VDBLW> [(match_operand:VQW 1 "register_operand" "w")
! 			 (match_operand:VQW 2 "register_operand" "w")]
! 	ABDL2))]
    "TARGET_SIMD"
!   "<sur>abdl2\t%0.<Vwtype>, %1.<Vtype>, %2.<Vtype>"
    [(set_attr "type" "neon_abd<q>")]
  )
  
! (define_insn "aarch64_<sur>abal<mode>"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(unspec:<VWIDE> [(match_operand:VD_BHSI 2 "register_operand" "w")
! 			  (match_operand:VD_BHSI 3 "register_operand" "w")
! 			 (match_operand:<VWIDE> 1 "register_operand" "0")]
! 	ABAL))]
    "TARGET_SIMD"
!   "<sur>abal\t%0.<Vwtype>, %2.<Vtype>, %3.<Vtype>"
!   [(set_attr "type" "neon_arith_acc<q>")]
  )
  
! (define_insn "aarch64_<sur>abal2<mode>"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(unspec:<VWIDE> [(match_operand:VQW 2 "register_operand" "w")
! 			  (match_operand:VQW 3 "register_operand" "w")
! 			 (match_operand:<VWIDE> 1 "register_operand" "0")]
! 	ABAL2))]
    "TARGET_SIMD"
!   "<sur>abal2\t%0.<Vwtype>, %2.<Vtype>, %3.<Vtype>"
    [(set_attr "type" "neon_arith_acc<q>")]
  )
  
! (define_insn "aarch64_<sur>adalp<mode>"
    [(set (match_operand:<VDBLW> 0 "register_operand" "=w")
! 	(unspec:<VDBLW> [(match_operand:VDQV_L 2 "register_operand" "w")
! 			 (match_operand:<VDBLW> 1 "register_operand" "0")]
! 	ADALP))]
    "TARGET_SIMD"
!   "<sur>adalp\t%0.<Vwhalf>, %2.<Vtype>"
    [(set_attr "type" "neon_reduc_add<q>")]
  )
  
--- 848,1068 ----
    [(set_attr "type" "neon_abd<q>")]
  )
  
+ (define_expand "<su>abd<mode>3"
+   [(match_operand:VDQ_BHSI 0 "register_operand")
+    (USMAX:VDQ_BHSI
+      (match_operand:VDQ_BHSI 1 "register_operand")
+      (match_operand:VDQ_BHSI 2 "register_operand"))]
+   "TARGET_SIMD"
+   {
+     emit_insn (gen_aarch64_<su>abd<mode> (operands[0], operands[1], operands[2]));
+     DONE;
+   }
+ )
  
! (define_insn "aarch64_<su>abdl<mode>"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(zero_extend:<VWIDE>
! 	  (minus:VD_BHSI
! 	    (USMAX:VD_BHSI
! 	      (match_operand:VD_BHSI 1 "register_operand" "w")
! 	      (match_operand:VD_BHSI 2 "register_operand" "w"))
! 	    (<max_opp>:VD_BHSI
! 	      (match_dup 1)
! 	      (match_dup 2)))))]
    "TARGET_SIMD"
!   "<su>abdl\t%0.<Vwtype>, %1.<Vtype>, %2.<Vtype>"
    [(set_attr "type" "neon_abd<q>")]
  )
  
! (define_insn "aarch64_<su>abdl2<mode>_insn"
    [(set (match_operand:<VDBLW> 0 "register_operand" "=w")
! 	(zero_extend:<VDBLW>
! 	  (minus:<VHALF>
! 	    (USMAX:<VHALF>
! 	      (vec_select:<VHALF>
! 		(match_operand:VQW 1 "register_operand" "w")
! 		(match_operand:VQW 3 "vect_par_cnst_hi_half" ""))
! 	      (vec_select:<VHALF>
! 		(match_operand:VQW 2 "register_operand" "w")
! 		(match_dup 3)))
! 	    (<max_opp>:<VHALF>
! 	      (vec_select:<VHALF>
! 		(match_dup 1)
! 		(match_dup 3))
! 	      (vec_select:<VHALF>
! 		(match_dup 2)
! 		(match_dup 3))))))]
! 
    "TARGET_SIMD"
!   "<su>abdl2\t%0.<Vwtype>, %1.<Vtype>, %2.<Vtype>"
    [(set_attr "type" "neon_abd<q>")]
  )
  
! (define_expand "aarch64_<su>abdl2<mode>"
!   [(match_operand:<VDBLW> 0 "register_operand")
!    (USMAX:VQW
!      (match_operand:VQW 1 "register_operand")
!      (match_operand:VQW 2 "register_operand"))]
!   "TARGET_SIMD"
!   {
!     rtx hi = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!     emit_insn (gen_aarch64_<su>abdl2<mode>_insn (operands[0], operands[1],
! 						 operands[2], hi));
!     DONE;
!   }
! )
! 
! (define_insn "aarch64_<su>abdl<mode>_hi_internal"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(abs:<VWIDE>
! 	  (minus:<VWIDE>
! 	    (ANY_EXTEND:<VWIDE>
! 	      (vec_select:<VHALF>
! 		(match_operand:VQW 1 "register_operand" "w")
! 		(match_operand:VQW 3 "vect_par_cnst_hi_half" "")))
! 	    (ANY_EXTEND:<VWIDE>
! 	      (vec_select:<VHALF>
! 		(match_operand:VQW 2 "register_operand" "w")
! 		(match_dup 3))))))]
    "TARGET_SIMD"
!   "<su>abdl2\t%0.<Vwtype>, %1.<Vtype>, %2.<Vtype>"
!   [(set_attr "type" "neon_abd_long")]
  )
  
! (define_insn "aarch64_<su>abdl<mode>_lo_internal"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(abs:<VWIDE>
! 	  (minus:<VWIDE>
! 	    (ANY_EXTEND:<VWIDE>
! 	      (vec_select:<VHALF>
! 		(match_operand:VQW 1 "register_operand" "w")
! 		(match_operand:VQW 3 "vect_par_cnst_lo_half" "")))
! 	    (ANY_EXTEND:<VWIDE>
! 	      (vec_select:<VHALF>
! 		(match_operand:VQW 2 "register_operand" "w")
! 		(match_dup 3))))))]
    "TARGET_SIMD"
!   "<su>abdl\t%0.<Vwtype>, %1.<Vhalftype>, %2.<Vhalftype>"
!   [(set_attr "type" "neon_abd_long")]
! )
! 
! (define_expand "vec_widen_<su>abd_hi_<mode>"
!   [(match_operand:<VWIDE> 0 "register_operand")
!    (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
!    (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
!   "TARGET_SIMD"
!   {
!     rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!     emit_insn (gen_aarch64_<su>abdl<mode>_hi_internal (operands[0], operands[1],
! 						       operands[2], p));
!     DONE;
!   }
! )
! 
! (define_expand "vec_widen_<su>abd_lo_<mode>"
!   [(match_operand:<VWIDE> 0 "register_operand")
!    (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
!    (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
!   "TARGET_SIMD"
!   {
!     rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, false);
!     emit_insn (gen_aarch64_<su>abdl<mode>_lo_internal (operands[0], operands[1],
! 						       operands[2], p));
!     DONE;
!   }
! )
! 
! (define_insn "aarch64_<su>abal<mode>"
!   [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(plus:<VWIDE>
! 	  (zero_extend:<VWIDE>
! 	    (minus:VD_BHSI
! 	      (USMAX:VD_BHSI
! 		(match_operand:VD_BHSI 2 "register_operand" "w")
! 		(match_operand:VD_BHSI 3 "register_operand" "w"))
! 	      (<max_opp>:VD_BHSI
! 		(match_dup 2)
! 		(match_dup 3))))
! 	  (match_operand:<VWIDE> 1 "register_operand" "0")))]
!   "TARGET_SIMD"
!   "<su>abal\t%0.<Vwtype>, %2.<Vtype>, %3.<Vtype>"
    [(set_attr "type" "neon_arith_acc<q>")]
  )
  
! (define_insn "aarch64_<su>abal2<mode>_insn"
    [(set (match_operand:<VDBLW> 0 "register_operand" "=w")
! 	(plus:<VDBLW>
! 	  (zero_extend:<VDBLW>
! 	    (minus:<VHALF>
! 	      (USMAX:<VHALF>
! 		(vec_select:<VHALF>
! 		  (match_operand:VQW 2 "register_operand" "w")
! 		  (match_operand:VQW 4 "vect_par_cnst_hi_half" ""))
! 		(vec_select:<VHALF>
! 		  (match_operand:VQW 3 "register_operand" "w")
! 		  (match_dup 4)))
! 	      (<max_opp>:<VHALF>
! 		(vec_select:<VHALF>
! 		  (match_dup 2)
! 		  (match_dup 4))
! 		(vec_select:<VHALF>
! 		  (match_dup 3)
! 		  (match_dup 4)))))
! 	  (match_operand:<VDBLW> 1 "register_operand" "0")))]
    "TARGET_SIMD"
!   "<su>abal2\t%0.<Vwtype>, %2.<Vtype>, %3.<Vtype>"
!   [(set_attr "type" "neon_arith_acc<q>")]
! )
! 
! (define_expand "aarch64_<su>abal2<mode>"
!   [(match_operand:<VDBLW> 0 "register_operand")
!    (match_operand:<VDBLW> 1 "register_operand")
!    (USMAX:VQW
!      (match_operand:VQW 2 "register_operand")
!      (match_operand:VQW 3 "register_operand"))]
!   "TARGET_SIMD"
!   {
!     rtx hi = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!     emit_insn (gen_aarch64_<su>abal2<mode>_insn (operands[0], operands[1],
! 						 operands[2], operands[3], hi));
!     DONE;
!   }
! )
! 
! (define_expand "aarch64_<su>adalp<mode>"
!   [(set (match_operand:<VDBLW> 0 "register_operand")
! 	(plus:<VDBLW>
! 	  (plus:<VDBLW>
! 	    (vec_select:<VDBLW>
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQV_L 2 "register_operand"))
! 	      (match_dup 3))
! 	    (vec_select:<VDBLW> (ANY_EXTEND:<V2XWIDE> (match_dup 2))
! 	      (match_dup 4)))
! 	  (match_operand:<VDBLW> 1 "register_operand")))]
!  "TARGET_SIMD"
!  {
!    int nunits = GET_MODE_NUNITS (<MODE>mode).to_constant () / 2;
!    operands[3] = aarch64_gen_stepped_int_parallel (nunits, 0, 2);
!    operands[4] = aarch64_gen_stepped_int_parallel (nunits, 1, 2);
!  }
! )
! 
! (define_insn "*aarch64_<su>adalp<mode><vczle><vczbe>_insn"
!   [(set (match_operand:<VDBLW> 0 "register_operand" "=w")
! 	(plus:<VDBLW>
! 	  (plus:<VDBLW>
! 	    (vec_select:<VDBLW>
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQV_L 2 "register_operand" "w"))
! 	      (match_operand:<V2XWIDE> 3 "vect_par_cnst_even_or_odd_half" ""))
! 	    (vec_select:<VDBLW> (ANY_EXTEND:<V2XWIDE> (match_dup 2))
! 	      (match_operand:<V2XWIDE> 4 "vect_par_cnst_even_or_odd_half" "")))
! 	(match_operand:<VDBLW> 1 "register_operand" "0")))]
!  "TARGET_SIMD
!   && !rtx_equal_p (operands[3], operands[4])"
!  "<su>adalp\t%0.<Vwhalf>, %2.<Vtype>"
    [(set_attr "type" "neon_reduc_add<q>")]
  )
  
***************
*** 944,953 ****
  ;; but for TARGET_DOTPROD still emits a UDOT as the absolute difference is
  ;; unsigned.
  
! (define_expand "<sur>sadv16qi"
    [(use (match_operand:V4SI 0 "register_operand"))
!    (unspec:V16QI [(use (match_operand:V16QI 1 "register_operand"))
! 		  (use (match_operand:V16QI 2 "register_operand"))] ABAL)
     (use (match_operand:V4SI 3 "register_operand"))]
    "TARGET_SIMD"
    {
--- 1086,1095 ----
  ;; but for TARGET_DOTPROD still emits a UDOT as the absolute difference is
  ;; unsigned.
  
! (define_expand "<su>sadv16qi"
    [(use (match_operand:V4SI 0 "register_operand"))
!    (USMAX:V16QI (match_operand:V16QI 1 "register_operand")
! 		(match_operand:V16QI 2 "register_operand"))
     (use (match_operand:V4SI 3 "register_operand"))]
    "TARGET_SIMD"
    {
***************
*** 955,978 ****
        {
  	rtx ones = force_reg (V16QImode, CONST1_RTX (V16QImode));
  	rtx abd = gen_reg_rtx (V16QImode);
! 	emit_insn (gen_aarch64_<sur>abdv16qi (abd, operands[1], operands[2]));
  	emit_insn (gen_udot_prodv16qi (operands[0], abd, ones, operands[3]));
  	DONE;
        }
      rtx reduc = gen_reg_rtx (V8HImode);
!     emit_insn (gen_aarch64_<sur>abdl2v16qi (reduc, operands[1],
  					    operands[2]));
!     emit_insn (gen_aarch64_<sur>abalv8qi (reduc, reduc,
! 					  gen_lowpart (V8QImode, operands[1]),
! 					  gen_lowpart (V8QImode,
! 						       operands[2])));
!     emit_insn (gen_aarch64_<sur>adalpv8hi (operands[3], operands[3], reduc));
      emit_move_insn (operands[0], operands[3]);
      DONE;
    }
  )
  
! (define_insn "aarch64_<su>aba<mode>"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
  	(plus:VDQ_BHSI (minus:VDQ_BHSI
  			 (USMAX:VDQ_BHSI
--- 1097,1120 ----
        {
  	rtx ones = force_reg (V16QImode, CONST1_RTX (V16QImode));
  	rtx abd = gen_reg_rtx (V16QImode);
! 	emit_insn (gen_aarch64_<su>abdv16qi (abd, operands[1], operands[2]));
  	emit_insn (gen_udot_prodv16qi (operands[0], abd, ones, operands[3]));
  	DONE;
        }
      rtx reduc = gen_reg_rtx (V8HImode);
!     emit_insn (gen_aarch64_<su>abdl2v16qi (reduc, operands[1],
  					    operands[2]));
!     emit_insn (gen_aarch64_<su>abalv8qi (reduc, reduc,
! 					 gen_lowpart (V8QImode, operands[1]),
! 					 gen_lowpart (V8QImode,
! 						      operands[2])));
!     emit_insn (gen_aarch64_<su>adalpv8hi (operands[3], operands[3], reduc));
      emit_move_insn (operands[0], operands[3]);
      DONE;
    }
  )
  
! (define_insn "aarch64_<su>aba<mode><vczle><vczbe>"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
  	(plus:VDQ_BHSI (minus:VDQ_BHSI
  			 (USMAX:VDQ_BHSI
***************
*** 987,993 ****
    [(set_attr "type" "neon_arith_acc<q>")]
  )
  
! (define_insn "fabd<mode>3"
    [(set (match_operand:VHSDF_HSDF 0 "register_operand" "=w")
  	(abs:VHSDF_HSDF
  	  (minus:VHSDF_HSDF
--- 1129,1135 ----
    [(set_attr "type" "neon_arith_acc<q>")]
  )
  
! (define_insn "fabd<mode>3<vczle><vczbe>"
    [(set (match_operand:VHSDF_HSDF 0 "register_operand" "=w")
  	(abs:VHSDF_HSDF
  	  (minus:VHSDF_HSDF
***************
*** 999,1046 ****
  )
  
  ;; For AND (vector, register) and BIC (vector, immediate)
! (define_insn "and<mode>3"
!   [(set (match_operand:VDQ_I 0 "register_operand" "=w,w")
! 	(and:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w,0")
! 		   (match_operand:VDQ_I 2 "aarch64_reg_or_bic_imm" "w,Db")))]
    "TARGET_SIMD"
!   {
!     switch (which_alternative)
!       {
!       case 0:
! 	return "and\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>";
!       case 1:
! 	return aarch64_output_simd_mov_immediate (operands[2], <bitsize>,
! 						  AARCH64_CHECK_BIC);
!       default:
! 	gcc_unreachable ();
!       }
    }
    [(set_attr "type" "neon_logic<q>")]
  )
  
  ;; For ORR (vector, register) and ORR (vector, immediate)
! (define_insn "ior<mode>3"
!   [(set (match_operand:VDQ_I 0 "register_operand" "=w,w")
! 	(ior:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w,0")
! 		   (match_operand:VDQ_I 2 "aarch64_reg_or_orr_imm" "w,Do")))]
    "TARGET_SIMD"
!   {
!     switch (which_alternative)
!       {
!       case 0:
! 	return "orr\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>";
!       case 1:
! 	return aarch64_output_simd_mov_immediate (operands[2], <bitsize>,
! 						  AARCH64_CHECK_ORR);
!       default:
! 	gcc_unreachable ();
!       }
    }
    [(set_attr "type" "neon_logic<q>")]
  )
  
! (define_insn "xor<mode>3"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (xor:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		 (match_operand:VDQ_I 2 "register_operand" "w")))]
--- 1141,1175 ----
  )
  
  ;; For AND (vector, register) and BIC (vector, immediate)
! (define_insn "and<mode>3<vczle><vczbe>"
!   [(set (match_operand:VDQ_I 0 "register_operand")
! 	(and:VDQ_I (match_operand:VDQ_I 1 "register_operand")
! 		   (match_operand:VDQ_I 2 "aarch64_reg_or_bic_imm")))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2   ]
!      [ w        , w , w   ] and\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>
!      [ w        , 0 , Db  ] << aarch64_output_simd_mov_immediate (operands[2], <bitsize>, AARCH64_CHECK_BIC);
    }
    [(set_attr "type" "neon_logic<q>")]
  )
  
  ;; For ORR (vector, register) and ORR (vector, immediate)
! (define_insn "ior<mode>3<vczle><vczbe>"
!   [(set (match_operand:VDQ_I 0 "register_operand")
! 	(ior:VDQ_I (match_operand:VDQ_I 1 "register_operand")
! 		   (match_operand:VDQ_I 2 "aarch64_orr_imm_sve_advsimd")))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2; attrs: arch ]
!      [ w        , w , w  ; simd      ] orr\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>
!      [ w        , 0 , vsl; sve       ] orr\t%Z0.<Vetype>, %Z0.<Vetype>, #%2
!      [ w        , 0 , Do ; simd      ] \
!        << aarch64_output_simd_mov_immediate (operands[2], <bitsize>, \
! 					     AARCH64_CHECK_ORR);
    }
    [(set_attr "type" "neon_logic<q>")]
  )
  
! (define_insn "xor<mode>3<vczle><vczbe>"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (xor:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		 (match_operand:VDQ_I 2 "register_operand" "w")))]
***************
*** 1049,1055 ****
    [(set_attr "type" "neon_logic<q>")]
  )
  
! (define_insn "one_cmpl<mode>2"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (not:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")))]
    "TARGET_SIMD"
--- 1178,1184 ----
    [(set_attr "type" "neon_logic<q>")]
  )
  
! (define_insn "one_cmpl<mode>2<vczle><vczbe>"
    [(set (match_operand:VDQ_I 0 "register_operand" "=w")
          (not:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")))]
    "TARGET_SIMD"
***************
*** 1083,1088 ****
--- 1212,1231 ----
    [(set_attr "type" "neon_ins<q>, neon_from_gp<q>, neon_load1_one_lane<q>")]
  )
  
+ (define_insn "aarch64_simd_vec_set_zero<mode>"
+   [(set (match_operand:VALL_F16 0 "register_operand" "=w")
+ 	(vec_merge:VALL_F16
+ 	    (match_operand:VALL_F16 1 "aarch64_simd_imm_zero" "")
+ 	    (match_operand:VALL_F16 3 "register_operand" "0")
+ 	    (match_operand:SI 2 "immediate_operand" "i")))]
+   "TARGET_SIMD && exact_log2 (INTVAL (operands[2])) >= 0"
+   {
+     int elt = ENDIAN_LANE_N (<nunits>, exact_log2 (INTVAL (operands[2])));
+     operands[2] = GEN_INT ((HOST_WIDE_INT) 1 << elt);
+     return "ins\\t%0.<Vetype>[%p2], <vwcore>zr";
+   }
+ )
+ 
  (define_insn "@aarch64_simd_vec_copy_lane<mode>"
    [(set (match_operand:VALL_F16 0 "register_operand" "=w")
  	(vec_merge:VALL_F16
***************
*** 1141,1147 ****
    DONE;
  })
  
! (define_insn "aarch64_simd_lshr<mode>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (lshiftrt:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		     (match_operand:VDQ_I  2 "aarch64_simd_rshift_imm" "Dr")))]
--- 1284,1290 ----
    DONE;
  })
  
! (define_insn "aarch64_simd_lshr<mode><vczle><vczbe>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (lshiftrt:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		     (match_operand:VDQ_I  2 "aarch64_simd_rshift_imm" "Dr")))]
***************
*** 1150,1179 ****
    [(set_attr "type" "neon_shift_imm<q>")]
  )
  
! (define_insn "aarch64_simd_ashr<mode>"
!  [(set (match_operand:VDQ_I 0 "register_operand" "=w,w")
!        (ashiftrt:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w,w")
! 		     (match_operand:VDQ_I  2 "aarch64_simd_rshift_imm" "D1,Dr")))]
   "TARGET_SIMD"
!  "@
!   cmlt\t%0.<Vtype>, %1.<Vtype>, #0
!   sshr\t%0.<Vtype>, %1.<Vtype>, %2"
!   [(set_attr "type" "neon_compare<q>,neon_shift_imm<q>")]
  )
  
! (define_insn "*aarch64_simd_sra<mode>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
  	(plus:VDQ_I
  	   (SHIFTRT:VDQ_I
! 		(match_operand:VDQ_I 1 "register_operand" "w")
! 		(match_operand:VDQ_I 2 "aarch64_simd_rshift_imm" "Dr"))
! 	   (match_operand:VDQ_I 3 "register_operand" "0")))]
    "TARGET_SIMD"
!   "<sra_op>sra\t%0.<Vtype>, %1.<Vtype>, %2"
    [(set_attr "type" "neon_shift_acc<q>")]
  )
  
! (define_insn "aarch64_simd_imm_shl<mode>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (ashift:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		   (match_operand:VDQ_I  2 "aarch64_simd_lshift_imm" "Dl")))]
--- 1293,1380 ----
    [(set_attr "type" "neon_shift_imm<q>")]
  )
  
! (define_insn "aarch64_simd_ashr<mode><vczle><vczbe>"
!  [(set (match_operand:VDQ_I 0 "register_operand")
!        (ashiftrt:VDQ_I (match_operand:VDQ_I 1 "register_operand")
! 		     (match_operand:VDQ_I  2 "aarch64_simd_rshift_imm")))]
   "TARGET_SIMD"
!  {@ [ cons: =0 , 1 , 2  ; attrs: type        ]
!     [ w        , w , D1 ; neon_compare<q>    ] cmlt\t%0.<Vtype>, %1.<Vtype>, #0
!     [ w        , w , Dr ; neon_shift_imm<q>  ] sshr\t%0.<Vtype>, %1.<Vtype>, %2
!   }
  )
  
! (define_insn "aarch64_<sra_op>sra_n<mode>_insn"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
  	(plus:VDQ_I
  	   (SHIFTRT:VDQ_I
! 		(match_operand:VDQ_I 2 "register_operand" "w")
! 		(match_operand:VDQ_I 3 "aarch64_simd_rshift_imm"))
! 	   (match_operand:VDQ_I 1 "register_operand" "0")))]
    "TARGET_SIMD"
!   "<sra_op>sra\t%<v>0<Vmtype>, %<v>2<Vmtype>, %3"
    [(set_attr "type" "neon_shift_acc<q>")]
  )
  
! (define_insn "aarch64_<sra_op>rsra_n<mode>_insn"
!  [(set (match_operand:VSDQ_I_DI 0 "register_operand" "=w")
! 	(plus:VSDQ_I_DI
! 	  (truncate:VSDQ_I_DI
! 	    (SHIFTRT:<V2XWIDE>
! 	      (plus:<V2XWIDE>
! 		(<SHIFTEXTEND>:<V2XWIDE>
! 		  (match_operand:VSDQ_I_DI 2 "register_operand" "w"))
! 		(match_operand:<V2XWIDE> 4 "aarch64_int_rnd_operand"))
! 	      (match_operand:VSDQ_I_DI 3 "aarch64_simd_shift_imm_<vec_or_offset>_<Vel>")))
! 	  (match_operand:VSDQ_I_DI 1 "register_operand" "0")))]
!   "TARGET_SIMD
!    && aarch64_const_vec_rnd_cst_p (operands[4], operands[3])"
!   "<sra_op>rsra\\t%<v>0<Vmtype>, %<v>2<Vmtype>, %3"
!   [(set_attr "type" "neon_shift_acc<q>")]
! )
! 
! (define_expand "aarch64_<sra_op>sra_n<mode>"
!  [(set (match_operand:VDQ_I 0 "register_operand")
! 	(plus:VDQ_I
! 	   (SHIFTRT:VDQ_I
! 		(match_operand:VDQ_I 2 "register_operand")
! 		(match_operand:SI 3 "aarch64_simd_shift_imm_offset_<ve_mode>"))
! 	   (match_operand:VDQ_I 1 "register_operand")))]
!   "TARGET_SIMD"
!   {
!     operands[3]
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode, UINTVAL (operands[3]));
!   }
! )
! 
! (define_expand "aarch64_<sra_op>rsra_n<mode>"
!   [(match_operand:VSDQ_I_DI 0 "register_operand")
!    (match_operand:VSDQ_I_DI 1 "register_operand")
!    (SHIFTRT:VSDQ_I_DI
!      (match_operand:VSDQ_I_DI 2 "register_operand")
!      (match_operand:SI 3 "aarch64_simd_shift_imm_offset_<ve_mode>"))]
!   "TARGET_SIMD"
!   {
!     /* Use this expander to create the rounding constant vector, which is
!        1 << (shift - 1).  Use wide_int here to ensure that the right TImode
!        RTL is generated when handling the DImode expanders.  */
!     int prec = GET_MODE_UNIT_PRECISION (<V2XWIDE>mode);
!     wide_int rnd_wi = wi::set_bit_in_zero (INTVAL (operands[3]) - 1, prec);
!     rtx shft = gen_int_mode (INTVAL (operands[3]), DImode);
!     rtx rnd = immed_wide_int_const (rnd_wi, GET_MODE_INNER (<V2XWIDE>mode));
!     if (VECTOR_MODE_P (<MODE>mode))
!       {
! 	shft = gen_const_vec_duplicate (<MODE>mode, shft);
! 	rnd = gen_const_vec_duplicate (<V2XWIDE>mode, rnd);
!       }
! 
!     emit_insn (gen_aarch64_<sra_op>rsra_n<mode>_insn (operands[0], operands[1],
! 						      operands[2], shft, rnd));
!     DONE;
!   }
! )
! 
! (define_insn "aarch64_simd_imm_shl<mode><vczle><vczbe>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (ashift:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		   (match_operand:VDQ_I  2 "aarch64_simd_lshift_imm" "Dl")))]
***************
*** 1182,1188 ****
    [(set_attr "type" "neon_shift_imm<q>")]
  )
  
! (define_insn "aarch64_simd_reg_sshl<mode>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (ashift:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		   (match_operand:VDQ_I 2 "register_operand" "w")))]
--- 1383,1389 ----
    [(set_attr "type" "neon_shift_imm<q>")]
  )
  
! (define_insn "aarch64_simd_reg_sshl<mode><vczle><vczbe>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (ashift:VDQ_I (match_operand:VDQ_I 1 "register_operand" "w")
  		   (match_operand:VDQ_I 2 "register_operand" "w")))]
***************
*** 1191,1197 ****
    [(set_attr "type" "neon_shift_reg<q>")]
  )
  
! (define_insn "aarch64_simd_reg_shl<mode>_unsigned"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (unspec:VDQ_I [(match_operand:VDQ_I 1 "register_operand" "w")
  		    (match_operand:VDQ_I 2 "register_operand" "w")]
--- 1392,1398 ----
    [(set_attr "type" "neon_shift_reg<q>")]
  )
  
! (define_insn "aarch64_simd_reg_shl<mode>_unsigned<vczle><vczbe>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (unspec:VDQ_I [(match_operand:VDQ_I 1 "register_operand" "w")
  		    (match_operand:VDQ_I 2 "register_operand" "w")]
***************
*** 1201,1207 ****
    [(set_attr "type" "neon_shift_reg<q>")]
  )
  
! (define_insn "aarch64_simd_reg_shl<mode>_signed"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (unspec:VDQ_I [(match_operand:VDQ_I 1 "register_operand" "w")
  		    (match_operand:VDQ_I 2 "register_operand" "w")]
--- 1402,1408 ----
    [(set_attr "type" "neon_shift_reg<q>")]
  )
  
! (define_insn "aarch64_simd_reg_shl<mode>_signed<vczle><vczbe>"
   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
         (unspec:VDQ_I [(match_operand:VDQ_I 1 "register_operand" "w")
  		    (match_operand:VDQ_I 2 "register_operand" "w")]
***************
*** 1383,1389 ****
  )
  
  ;; For 64-bit modes we use ushl/r, as this does not require a SIMD zero.
! (define_insn "vec_shr_<mode>"
    [(set (match_operand:VD 0 "register_operand" "=w")
          (unspec:VD [(match_operand:VD 1 "register_operand" "w")
  		    (match_operand:SI 2 "immediate_operand" "i")]
--- 1584,1590 ----
  )
  
  ;; For 64-bit modes we use ushl/r, as this does not require a SIMD zero.
! (define_insn "vec_shr_<mode><vczle><vczbe>"
    [(set (match_operand:VD 0 "register_operand" "=w")
          (unspec:VD [(match_operand:VD 1 "register_operand" "w")
  		    (match_operand:SI 2 "immediate_operand" "i")]
***************
*** 1412,1418 ****
  )
  
  
! (define_insn "aarch64_mla<mode>"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (plus:VDQ_BHSI (mult:VDQ_BHSI
  			(match_operand:VDQ_BHSI 2 "register_operand" "w")
--- 1613,1619 ----
  )
  
  
! (define_insn "aarch64_mla<mode><vczle><vczbe>"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (plus:VDQ_BHSI (mult:VDQ_BHSI
  			(match_operand:VDQ_BHSI 2 "register_operand" "w")
***************
*** 1423,1429 ****
    [(set_attr "type" "neon_mla_<Vetype><q>")]
  )
  
! (define_insn "*aarch64_mla_elt<mode>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
         (plus:VDQHS
  	 (mult:VDQHS
--- 1624,1630 ----
    [(set_attr "type" "neon_mla_<Vetype><q>")]
  )
  
! (define_insn "*aarch64_mla_elt<mode><vczle><vczbe>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
         (plus:VDQHS
  	 (mult:VDQHS
***************
*** 1441,1447 ****
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_mla_elt_<vswap_width_name><mode>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
         (plus:VDQHS
  	 (mult:VDQHS
--- 1642,1648 ----
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_mla_elt_<vswap_width_name><mode><vczle><vczbe>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
         (plus:VDQHS
  	 (mult:VDQHS
***************
*** 1459,1465 ****
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "aarch64_mla_n<mode>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(plus:VDQHS
  	  (mult:VDQHS
--- 1660,1666 ----
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "aarch64_mla_n<mode><vczle><vczbe>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(plus:VDQHS
  	  (mult:VDQHS
***************
*** 1472,1478 ****
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "aarch64_mls<mode>"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (minus:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "0")
  		   (mult:VDQ_BHSI (match_operand:VDQ_BHSI 2 "register_operand" "w")
--- 1673,1679 ----
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "aarch64_mls<mode><vczle><vczbe>"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (minus:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "0")
  		   (mult:VDQ_BHSI (match_operand:VDQ_BHSI 2 "register_operand" "w")
***************
*** 1482,1488 ****
    [(set_attr "type" "neon_mla_<Vetype><q>")]
  )
  
! (define_insn "*aarch64_mls_elt<mode>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
         (minus:VDQHS
  	 (match_operand:VDQHS 4 "register_operand" "0")
--- 1683,1689 ----
    [(set_attr "type" "neon_mla_<Vetype><q>")]
  )
  
! (define_insn "*aarch64_mls_elt<mode><vczle><vczbe>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
         (minus:VDQHS
  	 (match_operand:VDQHS 4 "register_operand" "0")
***************
*** 1500,1506 ****
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_mls_elt_<vswap_width_name><mode>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
         (minus:VDQHS
  	 (match_operand:VDQHS 4 "register_operand" "0")
--- 1701,1707 ----
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_mls_elt_<vswap_width_name><mode><vczle><vczbe>"
   [(set (match_operand:VDQHS 0 "register_operand" "=w")
         (minus:VDQHS
  	 (match_operand:VDQHS 4 "register_operand" "0")
***************
*** 1518,1524 ****
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "aarch64_mls_n<mode>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(minus:VDQHS
  	  (match_operand:VDQHS 1 "register_operand" "0")
--- 1719,1725 ----
    [(set_attr "type" "neon_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "aarch64_mls_n<mode><vczle><vczbe>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(minus:VDQHS
  	  (match_operand:VDQHS 1 "register_operand" "0")
***************
*** 1532,1538 ****
  )
  
  ;; Max/Min operations.
! (define_insn "<su><maxmin><mode>3"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (MAXMIN:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "w")
  		    (match_operand:VDQ_BHSI 2 "register_operand" "w")))]
--- 1733,1739 ----
  )
  
  ;; Max/Min operations.
! (define_insn "<su><maxmin><mode>3<vczle><vczbe>"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (MAXMIN:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "w")
  		    (match_operand:VDQ_BHSI 2 "register_operand" "w")))]
***************
*** 1575,1581 ****
  })
  
  ;; Pairwise Integer Max/Min operations.
! (define_insn "aarch64_<optab>p<mode>"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (unspec:VDQ_BHSI [(match_operand:VDQ_BHSI 1 "register_operand" "w")
  			 (match_operand:VDQ_BHSI 2 "register_operand" "w")]
--- 1776,1782 ----
  })
  
  ;; Pairwise Integer Max/Min operations.
! (define_insn "aarch64_<optab>p<mode><vczle><vczbe>"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (unspec:VDQ_BHSI [(match_operand:VDQ_BHSI 1 "register_operand" "w")
  			 (match_operand:VDQ_BHSI 2 "register_operand" "w")]
***************
*** 1586,1592 ****
  )
  
  ;; Pairwise FP Max/Min operations.
! (define_insn "aarch64_<optab>p<mode>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")
  		      (match_operand:VHSDF 2 "register_operand" "w")]
--- 1787,1793 ----
  )
  
  ;; Pairwise FP Max/Min operations.
! (define_insn "aarch64_<optab>p<mode><vczle><vczbe>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")
  		      (match_operand:VHSDF 2 "register_operand" "w")]
***************
*** 1604,1650 ****
  
  ;; Narrowing operations.
  
- (define_insn "aarch64_xtn<mode>_insn_le"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand" "w"))
- 	  (match_operand:<VNARROWQ> 2 "aarch64_simd_or_scalar_imm_zero")))]
-   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
-   "xtn\\t%0.<Vntype>, %1.<Vtype>"
-   [(set_attr "type" "neon_move_narrow_q")]
- )
- 
- (define_insn "aarch64_xtn<mode>_insn_be"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (match_operand:<VNARROWQ> 2 "aarch64_simd_or_scalar_imm_zero")
- 	  (truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand" "w"))))]
-   "TARGET_SIMD && BYTES_BIG_ENDIAN"
-   "xtn\\t%0.<Vntype>, %1.<Vtype>"
-   [(set_attr "type" "neon_move_narrow_q")]
- )
- 
- (define_expand "aarch64_xtn<mode>"
-   [(set (match_operand:<VNARROWQ> 0 "register_operand")
- 	(truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand")))]
-   "TARGET_SIMD"
-   {
-     rtx tmp = gen_reg_rtx (<VNARROWQ2>mode);
-     if (BYTES_BIG_ENDIAN)
-       emit_insn (gen_aarch64_xtn<mode>_insn_be (tmp, operands[1],
- 				CONST0_RTX (<VNARROWQ>mode)));
-     else
-       emit_insn (gen_aarch64_xtn<mode>_insn_le (tmp, operands[1],
- 				CONST0_RTX (<VNARROWQ>mode)));
- 
-     /* The intrinsic expects a narrow result, so emit a subreg that will get
-        optimized away as appropriate.  */
-     emit_move_insn (operands[0], lowpart_subreg (<VNARROWQ>mode, tmp,
- 						 <VNARROWQ2>mode));
-     DONE;
-   }
- )
- 
  (define_insn "aarch64_xtn2<mode>_insn_le"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
--- 1805,1810 ----
***************
*** 1737,1800 ****
   }
  )
  
- (define_insn "aarch64_shrn<mode>_insn_le"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (truncate:<VNARROWQ>
- 	    (lshiftrt:VQN (match_operand:VQN 1 "register_operand" "w")
- 	      (match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>")))
- 	  (match_operand:<VNARROWQ> 3 "aarch64_simd_or_scalar_imm_zero")))]
-   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
-   "shrn\\t%0.<Vntype>, %1.<Vtype>, %2"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_insn "aarch64_shrn<mode>_insn_be"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (match_operand:<VNARROWQ> 3 "aarch64_simd_or_scalar_imm_zero")
- 	  (truncate:<VNARROWQ>
- 	    (lshiftrt:VQN (match_operand:VQN 1 "register_operand" "w")
- 	      (match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>")))))]
-   "TARGET_SIMD && BYTES_BIG_ENDIAN"
-   "shrn\\t%0.<Vntype>, %1.<Vtype>, %2"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_insn "*aarch64_<srn_op>shrn<mode>_vect"
-   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
-         (truncate:<VNARROWQ>
-           (SHIFTRT:VQN (match_operand:VQN 1 "register_operand" "w")
-             (match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>"))))]
-   "TARGET_SIMD"
-   "shrn\\t%0.<Vntype>, %1.<Vtype>, %2"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_insn "*aarch64_<srn_op>shrn<mode>2_vect_le"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
- 	  (truncate:<VNARROWQ>
- 	    (SHIFTRT:VQN (match_operand:VQN 2 "register_operand" "w")
- 	      (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")))))]
-   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
-   "shrn2\\t%0.<V2ntype>, %2.<Vtype>, %3"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_insn "*aarch64_<srn_op>shrn<mode>2_vect_be"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (truncate:<VNARROWQ>
- 	    (SHIFTRT:VQN (match_operand:VQN 2 "register_operand" "w")
- 	      (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")))
- 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
-   "TARGET_SIMD && BYTES_BIG_ENDIAN"
-   "shrn2\\t%0.<V2ntype>, %2.<Vtype>, %3"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
  (define_insn "*aarch64_<srn_op>topbits_shuffle<mode>_le"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
--- 1897,1902 ----
***************
*** 1823,2013 ****
    [(set_attr "type" "neon_permute<q>")]
  )
  
- (define_expand "aarch64_shrn<mode>"
-   [(set (match_operand:<VNARROWQ> 0 "register_operand")
- 	(truncate:<VNARROWQ>
- 	  (lshiftrt:VQN (match_operand:VQN 1 "register_operand")
- 	    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<vn_mode>"))))]
-   "TARGET_SIMD"
-   {
-     operands[2] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
- 						 INTVAL (operands[2]));
-     rtx tmp = gen_reg_rtx (<VNARROWQ2>mode);
-     if (BYTES_BIG_ENDIAN)
-       emit_insn (gen_aarch64_shrn<mode>_insn_be (tmp, operands[1],
- 				operands[2], CONST0_RTX (<VNARROWQ>mode)));
-     else
-       emit_insn (gen_aarch64_shrn<mode>_insn_le (tmp, operands[1],
- 				operands[2], CONST0_RTX (<VNARROWQ>mode)));
- 
-     /* The intrinsic expects a narrow result, so emit a subreg that will get
-        optimized away as appropriate.  */
-     emit_move_insn (operands[0], lowpart_subreg (<VNARROWQ>mode, tmp,
- 						 <VNARROWQ2>mode));
-     DONE;
-   }
- )
- 
- (define_insn "aarch64_rshrn<mode>_insn_le"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand" "w")
- 		(match_operand:VQN 2
- 		  "aarch64_simd_shift_imm_vec_<vn_mode>")] UNSPEC_RSHRN)
- 	  (match_operand:<VNARROWQ> 3 "aarch64_simd_or_scalar_imm_zero")))]
-   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
-   "rshrn\\t%0.<Vntype>, %1.<Vtype>, %2"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_insn "aarch64_rshrn<mode>_insn_be"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (match_operand:<VNARROWQ> 3 "aarch64_simd_or_scalar_imm_zero")
- 	  (unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand" "w")
- 		(match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>")]
- 		  UNSPEC_RSHRN)))]
-   "TARGET_SIMD && BYTES_BIG_ENDIAN"
-   "rshrn\\t%0.<Vntype>, %1.<Vtype>, %2"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_expand "aarch64_rshrn<mode>"
-   [(match_operand:<VNARROWQ> 0 "register_operand")
-    (match_operand:VQN 1 "register_operand")
-    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<vn_mode>")]
-   "TARGET_SIMD"
-   {
-     if (INTVAL (operands[2]) == GET_MODE_UNIT_BITSIZE (<VNARROWQ>mode))
-       {
- 	rtx tmp0 = aarch64_gen_shareable_zero (<MODE>mode);
- 	emit_insn (gen_aarch64_raddhn<mode> (operands[0], operands[1], tmp0));
-       }
-     else
-       {
- 	rtx tmp = gen_reg_rtx (<VNARROWQ2>mode);
- 	operands[2] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
- 						         INTVAL (operands[2]));
- 	if (BYTES_BIG_ENDIAN)
- 	  emit_insn (
- 		gen_aarch64_rshrn<mode>_insn_be (tmp, operands[1],
- 						 operands[2],
- 						 CONST0_RTX (<VNARROWQ>mode)));
- 	else
- 	  emit_insn (
- 		gen_aarch64_rshrn<mode>_insn_le (tmp, operands[1],
- 						 operands[2],
- 						 CONST0_RTX (<VNARROWQ>mode)));
- 
- 	/* The intrinsic expects a narrow result, so emit a subreg that will
- 	   get optimized away as appropriate.  */
- 	emit_move_insn (operands[0], lowpart_subreg (<VNARROWQ>mode, tmp,
- 						     <VNARROWQ2>mode));
-       }
-     DONE;
-   }
- )
- 
- (define_insn "aarch64_shrn2<mode>_insn_le"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
- 	  (truncate:<VNARROWQ>
- 	    (lshiftrt:VQN (match_operand:VQN 2 "register_operand" "w")
- 	      (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")))))]
-   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
-   "shrn2\\t%0.<V2ntype>, %2.<Vtype>, %3"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_insn "aarch64_shrn2<mode>_insn_be"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (truncate:<VNARROWQ>
- 	    (lshiftrt:VQN (match_operand:VQN 2 "register_operand" "w")
- 	      (match_operand:VQN 3
- 		"aarch64_simd_shift_imm_vec_<vn_mode>")))
- 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
-   "TARGET_SIMD && BYTES_BIG_ENDIAN"
-   "shrn2\\t%0.<V2ntype>, %2.<Vtype>, %3"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_expand "aarch64_shrn2<mode>"
-   [(match_operand:<VNARROWQ2> 0 "register_operand")
-    (match_operand:<VNARROWQ> 1 "register_operand")
-    (match_operand:VQN 2 "register_operand")
-    (match_operand:SI 3 "aarch64_simd_shift_imm_offset_<vn_mode>")]
-   "TARGET_SIMD"
-   {
-     operands[3] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
- 						 INTVAL (operands[3]));
-     if (BYTES_BIG_ENDIAN)
-       emit_insn (gen_aarch64_shrn2<mode>_insn_be (operands[0], operands[1],
- 						  operands[2], operands[3]));
-     else
-       emit_insn (gen_aarch64_shrn2<mode>_insn_le (operands[0], operands[1],
- 						  operands[2], operands[3]));
-     DONE;
-   }
- )
- 
- (define_insn "aarch64_rshrn2<mode>_insn_le"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
- 	  (unspec:<VNARROWQ> [(match_operand:VQN 2 "register_operand" "w")
- 	    (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")]
- 		UNSPEC_RSHRN)))]
-   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
-   "rshrn2\\t%0.<V2ntype>, %2.<Vtype>, %3"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_insn "aarch64_rshrn2<mode>_insn_be"
-   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
- 	(vec_concat:<VNARROWQ2>
- 	  (unspec:<VNARROWQ> [(match_operand:VQN 2 "register_operand" "w")
- 		(match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")]
- 		  UNSPEC_RSHRN)
- 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
-   "TARGET_SIMD && BYTES_BIG_ENDIAN"
-   "rshrn2\\t%0.<V2ntype>, %2.<Vtype>, %3"
-   [(set_attr "type" "neon_shift_imm_narrow_q")]
- )
- 
- (define_expand "aarch64_rshrn2<mode>"
-   [(match_operand:<VNARROWQ2> 0 "register_operand")
-    (match_operand:<VNARROWQ> 1 "register_operand")
-    (match_operand:VQN 2 "register_operand")
-    (match_operand:SI 3 "aarch64_simd_shift_imm_offset_<vn_mode>")]
-   "TARGET_SIMD"
-   {
-     if (INTVAL (operands[3]) == GET_MODE_UNIT_BITSIZE (<VNARROWQ2>mode))
-       {
- 	rtx tmp = aarch64_gen_shareable_zero (<MODE>mode);
- 	emit_insn (gen_aarch64_raddhn2<mode> (operands[0], operands[1],
- 					      operands[2], tmp));
-       }
-     else
-       {
- 	operands[3] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
- 							 INTVAL (operands[3]));
- 	if (BYTES_BIG_ENDIAN)
- 	  emit_insn (gen_aarch64_rshrn2<mode>_insn_be (operands[0],
- 						       operands[1],
- 						       operands[2],
- 						       operands[3]));
- 	else
- 	  emit_insn (gen_aarch64_rshrn2<mode>_insn_le (operands[0],
- 						       operands[1],
- 						       operands[2],
- 						       operands[3]));
-       }
-     DONE;
-   }
- )
- 
  ;; Widening operations.
  
  (define_insn "aarch64_simd_vec_unpack<su>_lo_<mode>"
--- 1925,1930 ----
***************
*** 2021,2027 ****
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
! (define_insn "aarch64_simd_vec_unpack<su>_hi_<mode>"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
          (ANY_EXTEND:<VWIDE> (vec_select:<VHALF>
  			       (match_operand:VQW 1 "register_operand" "w")
--- 1938,1944 ----
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
! (define_insn_and_split "aarch64_simd_vec_unpack<su>_hi_<mode>"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
          (ANY_EXTEND:<VWIDE> (vec_select:<VHALF>
  			       (match_operand:VQW 1 "register_operand" "w")
***************
*** 2029,2034 ****
--- 1946,1964 ----
  			    )))]
    "TARGET_SIMD"
    "<su>xtl2\t%0.<Vwtype>, %1.<Vtype>"
+   "&& <CODE> == ZERO_EXTEND
+    && aarch64_split_simd_shift_p (insn)"
+   [(const_int 0)]
+   {
+     /* On many cores, it is cheaper to implement UXTL2 using a ZIP2 with zero,
+        provided that the cost of the zero can be amortized over several
+        operations.  We'll later recombine the zero and zip if there are
+        not sufficient uses of the zero to make the split worthwhile.  */
+     rtx res = simplify_gen_subreg (<MODE>mode, operands[0], <VWIDE>mode, 0);
+     rtx zero = aarch64_gen_shareable_zero (<MODE>mode);
+     emit_insn (gen_aarch64_zip2<mode> (res, operands[1], zero));
+     DONE;
+   }
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
***************
*** 2680,2686 ****
  
  ;; FP arithmetic operations.
  
! (define_insn "add<mode>3"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (plus:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		   (match_operand:VHSDF 2 "register_operand" "w")))]
--- 2610,2616 ----
  
  ;; FP arithmetic operations.
  
! (define_insn "add<mode>3<vczle><vczbe>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (plus:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		   (match_operand:VHSDF 2 "register_operand" "w")))]
***************
*** 2689,2695 ****
    [(set_attr "type" "neon_fp_addsub_<stype><q>")]
  )
  
! (define_insn "sub<mode>3"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (minus:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		    (match_operand:VHSDF 2 "register_operand" "w")))]
--- 2619,2625 ----
    [(set_attr "type" "neon_fp_addsub_<stype><q>")]
  )
  
! (define_insn "sub<mode>3<vczle><vczbe>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (minus:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		    (match_operand:VHSDF 2 "register_operand" "w")))]
***************
*** 2698,2704 ****
    [(set_attr "type" "neon_fp_addsub_<stype><q>")]
  )
  
! (define_insn "mul<mode>3"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (mult:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		   (match_operand:VHSDF 2 "register_operand" "w")))]
--- 2628,2634 ----
    [(set_attr "type" "neon_fp_addsub_<stype><q>")]
  )
  
! (define_insn "mul<mode>3<vczle><vczbe>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (mult:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		   (match_operand:VHSDF 2 "register_operand" "w")))]
***************
*** 2719,2725 ****
    operands[1] = force_reg (<MODE>mode, operands[1]);
  })
  
! (define_insn "*div<mode>3"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (div:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		 (match_operand:VHSDF 2 "register_operand" "w")))]
--- 2649,2655 ----
    operands[1] = force_reg (<MODE>mode, operands[1]);
  })
  
! (define_insn "*div<mode>3<vczle><vczbe>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (div:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		 (match_operand:VHSDF 2 "register_operand" "w")))]
***************
*** 2728,2734 ****
    [(set_attr "type" "neon_fp_div_<stype><q>")]
  )
  
! (define_insn "neg<mode>2"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (neg:VHSDF (match_operand:VHSDF 1 "register_operand" "w")))]
   "TARGET_SIMD"
--- 2658,2664 ----
    [(set_attr "type" "neon_fp_div_<stype><q>")]
  )
  
! (define_insn "neg<mode>2<vczle><vczbe>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (neg:VHSDF (match_operand:VHSDF 1 "register_operand" "w")))]
   "TARGET_SIMD"
***************
*** 2736,2742 ****
    [(set_attr "type" "neon_fp_neg_<stype><q>")]
  )
  
! (define_insn "abs<mode>2"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (abs:VHSDF (match_operand:VHSDF 1 "register_operand" "w")))]
   "TARGET_SIMD"
--- 2666,2672 ----
    [(set_attr "type" "neon_fp_neg_<stype><q>")]
  )
  
! (define_insn "abs<mode>2<vczle><vczbe>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (abs:VHSDF (match_operand:VHSDF 1 "register_operand" "w")))]
   "TARGET_SIMD"
***************
*** 2890,2896 ****
    }
  )
  
! (define_insn "fma<mode>4"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (fma:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		  (match_operand:VHSDF 2 "register_operand" "w")
--- 2820,2826 ----
    }
  )
  
! (define_insn "fma<mode>4<vczle><vczbe>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (fma:VHSDF (match_operand:VHSDF 1 "register_operand" "w")
  		  (match_operand:VHSDF 2 "register_operand" "w")
***************
*** 2900,2906 ****
    [(set_attr "type" "neon_fp_mla_<stype><q>")]
  )
  
! (define_insn "*aarch64_fma4_elt<mode>"
    [(set (match_operand:VDQF 0 "register_operand" "=w")
      (fma:VDQF
        (vec_duplicate:VDQF
--- 2830,2836 ----
    [(set_attr "type" "neon_fp_mla_<stype><q>")]
  )
  
! (define_insn "*aarch64_fma4_elt<mode><vczle><vczbe>"
    [(set (match_operand:VDQF 0 "register_operand" "=w")
      (fma:VDQF
        (vec_duplicate:VDQF
***************
*** 2917,2923 ****
    [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_fma4_elt_<vswap_width_name><mode>"
    [(set (match_operand:VDQSF 0 "register_operand" "=w")
      (fma:VDQSF
        (vec_duplicate:VDQSF
--- 2847,2853 ----
    [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_fma4_elt_<vswap_width_name><mode><vczle><vczbe>"
    [(set (match_operand:VDQSF 0 "register_operand" "=w")
      (fma:VDQSF
        (vec_duplicate:VDQSF
***************
*** 2934,2940 ****
    [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_fma4_elt_from_dup<mode>"
    [(set (match_operand:VMUL 0 "register_operand" "=w")
      (fma:VMUL
        (vec_duplicate:VMUL
--- 2864,2870 ----
    [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_fma4_elt_from_dup<mode><vczle><vczbe>"
    [(set (match_operand:VMUL 0 "register_operand" "=w")
      (fma:VMUL
        (vec_duplicate:VMUL
***************
*** 2962,2968 ****
    [(set_attr "type" "neon_fp_mla_d_scalar_q")]
  )
  
! (define_insn "fnma<mode>4"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
  	(fma:VHSDF
  	  (neg:VHSDF (match_operand:VHSDF 1 "register_operand" "w"))
--- 2892,2898 ----
    [(set_attr "type" "neon_fp_mla_d_scalar_q")]
  )
  
! (define_insn "fnma<mode>4<vczle><vczbe>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
  	(fma:VHSDF
  	  (neg:VHSDF (match_operand:VHSDF 1 "register_operand" "w"))
***************
*** 2973,2979 ****
    [(set_attr "type" "neon_fp_mla_<stype><q>")]
  )
  
! (define_insn "*aarch64_fnma4_elt<mode>"
    [(set (match_operand:VDQF 0 "register_operand" "=w")
      (fma:VDQF
        (neg:VDQF
--- 2903,2909 ----
    [(set_attr "type" "neon_fp_mla_<stype><q>")]
  )
  
! (define_insn "*aarch64_fnma4_elt<mode><vczle><vczbe>"
    [(set (match_operand:VDQF 0 "register_operand" "=w")
      (fma:VDQF
        (neg:VDQF
***************
*** 2991,2997 ****
    [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_fnma4_elt_<vswap_width_name><mode>"
    [(set (match_operand:VDQSF 0 "register_operand" "=w")
      (fma:VDQSF
        (neg:VDQSF
--- 2921,2927 ----
    [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>"
    [(set (match_operand:VDQSF 0 "register_operand" "=w")
      (fma:VDQSF
        (neg:VDQSF
***************
*** 3009,3015 ****
    [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_fnma4_elt_from_dup<mode>"
    [(set (match_operand:VMUL 0 "register_operand" "=w")
      (fma:VMUL
        (neg:VMUL
--- 2939,2945 ----
    [(set_attr "type" "neon_fp_mla_<Vetype>_scalar<q>")]
  )
  
! (define_insn "*aarch64_fnma4_elt_from_dup<mode><vczle><vczbe>"
    [(set (match_operand:VMUL 0 "register_operand" "=w")
      (fma:VMUL
        (neg:VMUL
***************
*** 3041,3047 ****
  
  ;; Vector versions of the floating-point frint patterns.
  ;; Expands to btrunc, ceil, floor, nearbyint, rint, round, frintn.
! (define_insn "<frint_pattern><mode>2"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
  	(unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")]
  		       FRINT))]
--- 2971,2977 ----
  
  ;; Vector versions of the floating-point frint patterns.
  ;; Expands to btrunc, ceil, floor, nearbyint, rint, round, frintn.
! (define_insn "<frint_pattern><mode>2<vczle><vczbe>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
  	(unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")]
  		       FRINT))]
***************
*** 3289,3295 ****
  }
  )
  
! (define_insn "aarch64_float_truncate_lo_<mode>"
    [(set (match_operand:VDF 0 "register_operand" "=w")
        (float_truncate:VDF
  	(match_operand:<VWIDE> 1 "register_operand" "w")))]
--- 3219,3225 ----
  }
  )
  
! (define_insn "aarch64_float_truncate_lo_<mode><vczle><vczbe>"
    [(set (match_operand:VDF 0 "register_operand" "=w")
        (float_truncate:VDF
  	(match_operand:<VWIDE> 1 "register_operand" "w")))]
***************
*** 3396,3402 ****
  ;; Vector forms for fmax, fmin, fmaxnm, fminnm.
  ;; fmaxnm and fminnm are used for the fmax<mode>3 standard pattern names,
  ;; which implement the IEEE fmax ()/fmin () functions.
! (define_insn "<fmaxmin><mode>3"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")
  		      (match_operand:VHSDF 2 "register_operand" "w")]
--- 3326,3332 ----
  ;; Vector forms for fmax, fmin, fmaxnm, fminnm.
  ;; fmaxnm and fminnm are used for the fmax<mode>3 standard pattern names,
  ;; which implement the IEEE fmax ()/fmin () functions.
! (define_insn "<fmaxmin><mode>3<vczle><vczbe>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")
  		      (match_operand:VHSDF 2 "register_operand" "w")]
***************
*** 3408,3414 ****
  
  ;; 'across lanes' add.
  
! (define_insn "aarch64_faddp<mode>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")
  		      (match_operand:VHSDF 2 "register_operand" "w")]
--- 3338,3344 ----
  
  ;; 'across lanes' add.
  
! (define_insn "aarch64_faddp<mode><vczle><vczbe>"
   [(set (match_operand:VHSDF 0 "register_operand" "=w")
         (unspec:VHSDF [(match_operand:VHSDF 1 "register_operand" "w")
  		      (match_operand:VHSDF 2 "register_operand" "w")]
***************
*** 3470,3494 ****
    DONE;
  })
  
  (define_insn "aarch64_<su>addlv<mode>"
   [(set (match_operand:<VWIDE_S> 0 "register_operand" "=w")
!        (unspec:<VWIDE_S> [(match_operand:VDQV_L 1 "register_operand" "w")]
! 		    USADDLV))]
   "TARGET_SIMD"
   "<su>addl<vp>\\t%<Vwstype>0<Vwsuf>, %1.<Vtype>"
    [(set_attr "type" "neon_reduc_add<q>")]
  )
  
! (define_insn "aarch64_<su>addlp<mode>"
!  [(set (match_operand:<VDBLW> 0 "register_operand" "=w")
!        (unspec:<VDBLW> [(match_operand:VDQV_L 1 "register_operand" "w")]
! 		    USADDLP))]
   "TARGET_SIMD"
   "<su>addlp\\t%0.<Vwhalf>, %1.<Vtype>"
    [(set_attr "type" "neon_reduc_add<q>")]
  )
  
! (define_insn "clrsb<mode>2"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
          (clrsb:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "w")))]
    "TARGET_SIMD"
--- 3400,3522 ----
    DONE;
  })
  
+ ;; SADDLV and UADDLV can be expressed as an ADDV instruction that first
+ ;; sign or zero-extends its elements.
  (define_insn "aarch64_<su>addlv<mode>"
   [(set (match_operand:<VWIDE_S> 0 "register_operand" "=w")
!        (unspec:<VWIDE_S>
! 	 [(ANY_EXTEND:<V2XWIDE>
! 	    (match_operand:VDQV_L 1 "register_operand" "w"))]
! 	 UNSPEC_ADDV))]
   "TARGET_SIMD"
   "<su>addl<vp>\\t%<Vwstype>0<Vwsuf>, %1.<Vtype>"
    [(set_attr "type" "neon_reduc_add<q>")]
  )
  
! ;; An ADDV over a vector PLUS of elements extracted and widened all from the
! ;; same vector is the same as an [SU]ADDLV above, so long as all the elements
! ;; of that vector are used.  We can greatly simplify the RTL expression using
! ;; this splitter.
! (define_insn_and_split "*aarch64_<su>addlv<mode>_reduction"
!  [(set (match_operand:<VWIDE_S> 0 "register_operand")
!        (unspec:<VWIDE_S>
! 	 [(plus:<VDBLW>
! 	    (vec_select:<VDBLW>
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQV_L 1 "register_operand"))
! 	      (match_operand:<V2XWIDE> 2 "vect_par_cnst_select_half"))
! 	    (vec_select:<VDBLW> (ANY_EXTEND:<V2XWIDE> (match_dup 1))
! 	      (match_operand:<V2XWIDE> 3 "vect_par_cnst_select_half")))]
! 	 UNSPEC_ADDV))]
!  "TARGET_SIMD && !aarch64_pars_overlap_p (operands[2], operands[3])"
!  "#"
!  "&& 1"
!   [(set (match_dup 0)
!        (unspec:<VWIDE_S>
! 	 [(ANY_EXTEND:<V2XWIDE>
! 	    (match_dup 1))]
! 	 UNSPEC_ADDV))]
!   {}
! )
! 
! ;; Similar to the above but for two-step zero-widening reductions.
! ;; We can push the outer zero_extend outside the ADDV unspec and make
! ;; use of the implicit high-part zeroing semantics of UADDLV to do it all
! ;; in a single instruction.
! (define_insn_and_split "*aarch64_uaddlv<mode>_reduction_2"
!  [(set (match_operand:<VWIDE2X_S> 0 "register_operand" "=w")
!        (unspec:<VWIDE2X_S>
! 	 [(zero_extend:<VQUADW>
! 	    (plus:<VDBLW>
! 	      (vec_select:<VDBLW>
! 		(zero_extend:<V2XWIDE>
! 		  (match_operand:VDQQH 1 "register_operand" "w"))
! 		(match_operand:<V2XWIDE> 2 "vect_par_cnst_select_half"))
! 	      (vec_select:<VDBLW> (zero_extend:<V2XWIDE> (match_dup 1))
! 		(match_operand:<V2XWIDE> 3 "vect_par_cnst_select_half"))))]
! 	 UNSPEC_ADDV))]
!  "TARGET_SIMD && !aarch64_pars_overlap_p (operands[2], operands[3])"
!  "#"
!  "&& 1"
!   [(set (match_dup 0)
! 	(zero_extend:<VWIDE2X_S>
! 	  (unspec:<VWIDE_S>
! 	    [(zero_extend:<V2XWIDE>
! 	       (match_dup 1))]
! 	    UNSPEC_ADDV)))]
!   {}
! )
! 
! ;; Zero-extending version of the above.  As these intrinsics produce a scalar
! ;; value that may be used by further intrinsics we want to avoid moving the
! ;; result into GP regs to do a zero-extension that ADDLV/ADDLP gives for free.
! 
! (define_insn "*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>"
!  [(set (match_operand:GPI 0 "register_operand" "=w")
!        (zero_extend:GPI
! 	 (unspec:<VWIDE_S>
! 	   [(ANY_EXTEND:<VDQV_L:V2XWIDE>
! 	      (match_operand:VDQV_L 1 "register_operand" "w"))]
! 	 UNSPEC_ADDV)))]
!  "TARGET_SIMD
!   && (GET_MODE_SIZE (<GPI:MODE>mode) > GET_MODE_SIZE (<VWIDE_S>mode))"
!  "<su>addl<VDQV_L:vp>\\t%<VDQV_L:Vwstype>0<VDQV_L:Vwsuf>, %1.<VDQV_L:Vtype>"
!   [(set_attr "type" "neon_reduc_add<VDQV_L:q>")]
! )
! 
! (define_expand "aarch64_<su>addlp<mode>"
!   [(set (match_operand:<VDBLW> 0 "register_operand")
! 	(plus:<VDBLW>
! 	  (vec_select:<VDBLW>
! 	    (ANY_EXTEND:<V2XWIDE>
! 	      (match_operand:VDQV_L 1 "register_operand"))
! 	    (match_dup 2))
! 	  (vec_select:<VDBLW> (ANY_EXTEND:<V2XWIDE> (match_dup 1))
! 	    (match_dup 3))))]
   "TARGET_SIMD"
+  {
+    int nunits = GET_MODE_NUNITS (<MODE>mode).to_constant () / 2;
+    operands[2] = aarch64_gen_stepped_int_parallel (nunits, 0, 2);
+    operands[3] = aarch64_gen_stepped_int_parallel (nunits, 1, 2);
+  }
+ )
+ 
+ (define_insn "*aarch64_<su>addlp<mode><vczle><vczbe>_insn"
+   [(set (match_operand:<VDBLW> 0 "register_operand" "=w")
+ 	(plus:<VDBLW>
+ 	  (vec_select:<VDBLW>
+ 	    (ANY_EXTEND:<V2XWIDE>
+ 	      (match_operand:VDQV_L 1 "register_operand" "w"))
+ 	    (match_operand:<V2XWIDE> 2 "vect_par_cnst_even_or_odd_half"))
+ 	  (vec_select:<VDBLW> (ANY_EXTEND:<V2XWIDE> (match_dup 1))
+ 	    (match_operand:<V2XWIDE> 3 "vect_par_cnst_even_or_odd_half"))))]
+  "TARGET_SIMD
+   && !rtx_equal_p (operands[2], operands[3])"
   "<su>addlp\\t%0.<Vwhalf>, %1.<Vtype>"
    [(set_attr "type" "neon_reduc_add<q>")]
  )
  
! (define_insn "clrsb<mode>2<vczle><vczbe>"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
          (clrsb:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "w")))]
    "TARGET_SIMD"
***************
*** 3496,3502 ****
    [(set_attr "type" "neon_cls<q>")]
  )
  
! (define_insn "clz<mode>2"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (clz:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "w")))]
   "TARGET_SIMD"
--- 3524,3530 ----
    [(set_attr "type" "neon_cls<q>")]
  )
  
! (define_insn "clz<mode>2<vczle><vczbe>"
   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
         (clz:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "w")))]
   "TARGET_SIMD"
***************
*** 3504,3510 ****
    [(set_attr "type" "neon_cls<q>")]
  )
  
! (define_insn "popcount<mode>2"
    [(set (match_operand:VB 0 "register_operand" "=w")
          (popcount:VB (match_operand:VB 1 "register_operand" "w")))]
    "TARGET_SIMD"
--- 3532,3538 ----
    [(set_attr "type" "neon_cls<q>")]
  )
  
! (define_insn "popcount<mode>2<vczle><vczbe>"
    [(set (match_operand:VB 0 "register_operand" "=w")
          (popcount:VB (match_operand:VB 1 "register_operand" "w")))]
    "TARGET_SIMD"
***************
*** 3605,3625 ****
  ;; Some forms of straight-line code may generate the equivalent form
  ;; in *aarch64_simd_bsl<mode>_alt.
  
! (define_insn "aarch64_simd_bsl<mode>_internal"
!   [(set (match_operand:VDQ_I 0 "register_operand" "=w,w,w")
  	(xor:VDQ_I
  	   (and:VDQ_I
  	     (xor:VDQ_I
! 	       (match_operand:<V_INT_EQUIV> 3 "register_operand" "w,0,w")
! 	       (match_operand:VDQ_I 2 "register_operand" "w,w,0"))
! 	     (match_operand:VDQ_I 1 "register_operand" "0,w,w"))
  	  (match_dup:<V_INT_EQUIV> 3)
  	))]
    "TARGET_SIMD"
!   "@
!   bsl\\t%0.<Vbtype>, %2.<Vbtype>, %3.<Vbtype>
!   bit\\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>
!   bif\\t%0.<Vbtype>, %3.<Vbtype>, %1.<Vbtype>"
    [(set_attr "type" "neon_bsl<q>")]
  )
  
--- 3633,3654 ----
  ;; Some forms of straight-line code may generate the equivalent form
  ;; in *aarch64_simd_bsl<mode>_alt.
  
! (define_insn "aarch64_simd_bsl<mode>_internal<vczle><vczbe>"
!   [(set (match_operand:VDQ_I 0 "register_operand")
  	(xor:VDQ_I
  	   (and:VDQ_I
  	     (xor:VDQ_I
! 	       (match_operand:<V_INT_EQUIV> 3 "register_operand")
! 	       (match_operand:VDQ_I 2 "register_operand"))
! 	     (match_operand:VDQ_I 1 "register_operand"))
  	  (match_dup:<V_INT_EQUIV> 3)
  	))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2 , 3  ]
!      [ w        , 0 , w , w  ] bsl\t%0.<Vbtype>, %2.<Vbtype>, %3.<Vbtype>
!      [ w        , w , w , 0  ] bit\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>
!      [ w        , w , 0 , w  ] bif\t%0.<Vbtype>, %3.<Vbtype>, %1.<Vbtype>
!   }
    [(set_attr "type" "neon_bsl<q>")]
  )
  
***************
*** 3629,3648 ****
  ;; the first.  The two are equivalent but since recog doesn't try all
  ;; permutations of commutative operations, we have to have a separate pattern.
  
! (define_insn "*aarch64_simd_bsl<mode>_alt"
!   [(set (match_operand:VDQ_I 0 "register_operand" "=w,w,w")
  	(xor:VDQ_I
  	   (and:VDQ_I
  	     (xor:VDQ_I
! 	       (match_operand:VDQ_I 3 "register_operand" "w,w,0")
! 	       (match_operand:<V_INT_EQUIV> 2 "register_operand" "w,0,w"))
! 	      (match_operand:VDQ_I 1 "register_operand" "0,w,w"))
  	  (match_dup:<V_INT_EQUIV> 2)))]
    "TARGET_SIMD"
!   "@
!   bsl\\t%0.<Vbtype>, %3.<Vbtype>, %2.<Vbtype>
!   bit\\t%0.<Vbtype>, %3.<Vbtype>, %1.<Vbtype>
!   bif\\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>"
    [(set_attr "type" "neon_bsl<q>")]
  )
  
--- 3658,3678 ----
  ;; the first.  The two are equivalent but since recog doesn't try all
  ;; permutations of commutative operations, we have to have a separate pattern.
  
! (define_insn "*aarch64_simd_bsl<mode>_alt<vczle><vczbe>"
!   [(set (match_operand:VDQ_I 0 "register_operand")
  	(xor:VDQ_I
  	   (and:VDQ_I
  	     (xor:VDQ_I
! 	       (match_operand:VDQ_I 3 "register_operand")
! 	       (match_operand:<V_INT_EQUIV> 2 "register_operand"))
! 	      (match_operand:VDQ_I 1 "register_operand"))
  	  (match_dup:<V_INT_EQUIV> 2)))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2 , 3  ]
!      [ w        , 0 , w , w  ] bsl\t%0.<Vbtype>, %3.<Vbtype>, %2.<Vbtype>
!      [ w        , w , 0 , w  ] bit\t%0.<Vbtype>, %3.<Vbtype>, %1.<Vbtype>
!      [ w        , w , w , 0  ] bif\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>
!   }
    [(set_attr "type" "neon_bsl<q>")]
  )
  
***************
*** 3657,3677 ****
  ;; would be better calculated on the integer side.
  
  (define_insn_and_split "aarch64_simd_bsldi_internal"
!   [(set (match_operand:DI 0 "register_operand" "=w,w,w,&r")
  	(xor:DI
  	   (and:DI
  	     (xor:DI
! 	       (match_operand:DI 3 "register_operand" "w,0,w,r")
! 	       (match_operand:DI 2 "register_operand" "w,w,0,r"))
! 	     (match_operand:DI 1 "register_operand" "0,w,w,r"))
  	  (match_dup:DI 3)
  	))]
    "TARGET_SIMD"
!   "@
!   bsl\\t%0.8b, %2.8b, %3.8b
!   bit\\t%0.8b, %2.8b, %1.8b
!   bif\\t%0.8b, %3.8b, %1.8b
!   #"
    "&& REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
    [(match_dup 1) (match_dup 1) (match_dup 2) (match_dup 3)]
  {
--- 3687,3708 ----
  ;; would be better calculated on the integer side.
  
  (define_insn_and_split "aarch64_simd_bsldi_internal"
!   [(set (match_operand:DI 0 "register_operand")
  	(xor:DI
  	   (and:DI
  	     (xor:DI
! 	       (match_operand:DI 3 "register_operand")
! 	       (match_operand:DI 2 "register_operand"))
! 	     (match_operand:DI 1 "register_operand"))
  	  (match_dup:DI 3)
  	))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: type , length ]
!      [ w        , 0 , w , w ; neon_bsl    , 4      ] bsl\t%0.8b, %2.8b, %3.8b
!      [ w        , w , w , 0 ; neon_bsl    , 4      ] bit\t%0.8b, %2.8b, %1.8b
!      [ w        , w , 0 , w ; neon_bsl    , 4      ] bif\t%0.8b, %3.8b, %1.8b
!      [ &r       , r , r , r ; multiple    , 12     ] #
!   }
    "&& REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
    [(match_dup 1) (match_dup 1) (match_dup 2) (match_dup 3)]
  {
***************
*** 3694,3719 ****
    emit_insn (gen_xordi3 (operands[0], scratch, operands[3]));
    DONE;
  }
-   [(set_attr "type" "neon_bsl,neon_bsl,neon_bsl,multiple")
-    (set_attr "length" "4,4,4,12")]
  )
  
  (define_insn_and_split "aarch64_simd_bsldi_alt"
!   [(set (match_operand:DI 0 "register_operand" "=w,w,w,&r")
  	(xor:DI
  	   (and:DI
  	     (xor:DI
! 	       (match_operand:DI 3 "register_operand" "w,w,0,r")
! 	       (match_operand:DI 2 "register_operand" "w,0,w,r"))
! 	     (match_operand:DI 1 "register_operand" "0,w,w,r"))
  	  (match_dup:DI 2)
  	))]
    "TARGET_SIMD"
!   "@
!   bsl\\t%0.8b, %3.8b, %2.8b
!   bit\\t%0.8b, %3.8b, %1.8b
!   bif\\t%0.8b, %2.8b, %1.8b
!   #"
    "&& REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
    [(match_dup 0) (match_dup 1) (match_dup 2) (match_dup 3)]
  {
--- 3725,3749 ----
    emit_insn (gen_xordi3 (operands[0], scratch, operands[3]));
    DONE;
  }
  )
  
  (define_insn_and_split "aarch64_simd_bsldi_alt"
!   [(set (match_operand:DI 0 "register_operand")
  	(xor:DI
  	   (and:DI
  	     (xor:DI
! 	       (match_operand:DI 3 "register_operand")
! 	       (match_operand:DI 2 "register_operand"))
! 	     (match_operand:DI 1 "register_operand"))
  	  (match_dup:DI 2)
  	))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: type , length ]
!      [ w        , 0 , w , w ; neon_bsl    , 4      ] bsl\t%0.8b, %3.8b, %2.8b
!      [ w        , w , 0 , w ; neon_bsl    , 4      ] bit\t%0.8b, %3.8b, %1.8b
!      [ w        , w , w , 0 ; neon_bsl    , 4      ] bif\t%0.8b, %2.8b, %1.8b
!      [ &r       , r , r , r ; multiple    , 12     ] #
!   }
    "&& REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
    [(match_dup 0) (match_dup 1) (match_dup 2) (match_dup 3)]
  {
***************
*** 3736,3743 ****
    emit_insn (gen_xordi3 (operands[0], scratch, operands[2]));
    DONE;
  }
-   [(set_attr "type" "neon_bsl,neon_bsl,neon_bsl,multiple")
-    (set_attr "length" "4,4,4,12")]
  )
  
  (define_expand "aarch64_simd_bsl<mode>"
--- 3766,3771 ----
***************
*** 3795,3800 ****
--- 3823,3870 ----
    DONE;
  })
  
+ ;; Patterns comparing two vectors and conditionally jump
+ 
+ (define_expand "cbranch<mode>4"
+   [(set (pc)
+         (if_then_else
+           (match_operator 0 "aarch64_equality_operator"
+             [(match_operand:VDQ_I 1 "register_operand")
+              (match_operand:VDQ_I 2 "aarch64_simd_reg_or_zero")])
+           (label_ref (match_operand 3 ""))
+           (pc)))]
+   "TARGET_SIMD"
+ {
+   auto code = GET_CODE (operands[0]);
+   rtx tmp = operands[1];
+ 
+   /* If comparing against a non-zero vector we have to do a comparison first
+      so we can have a != 0 comparison with the result.  */
+   if (operands[2] != CONST0_RTX (<MODE>mode))
+     {
+       tmp = gen_reg_rtx (<MODE>mode);
+       emit_insn (gen_xor<mode>3 (tmp, operands[1], operands[2]));
+     }
+ 
+   /* For 64-bit vectors we need no reductions.  */
+   if (known_eq (128, GET_MODE_BITSIZE (<MODE>mode)))
+     {
+       /* Always reduce using a V4SI.  */
+       rtx reduc = gen_lowpart (V4SImode, tmp);
+       rtx res = gen_reg_rtx (V4SImode);
+       emit_insn (gen_aarch64_umaxpv4si (res, reduc, reduc));
+       emit_move_insn (tmp, gen_lowpart (<MODE>mode, res));
+     }
+ 
+   rtx val = gen_reg_rtx (DImode);
+   emit_move_insn (val, gen_lowpart (DImode, tmp));
+ 
+   rtx cc_reg = aarch64_gen_compare_reg (code, val, const0_rtx);
+   rtx cmp_rtx = gen_rtx_fmt_ee (code, DImode, cc_reg, const0_rtx);
+   emit_jump_insn (gen_condjump (cmp_rtx, cc_reg, operands[3]));
+   DONE;
+ })
+ 
  ;; Patterns comparing two vectors to produce a mask.
  
  (define_expand "vec_cmp<mode><mode>"
***************
*** 4290,4304 ****
  ;; This dedicated pattern must come first.
  
  (define_insn "store_pair_lanes<mode>"
!   [(set (match_operand:<VDBL> 0 "aarch64_mem_pair_lanes_operand" "=Umn, Umn")
  	(vec_concat:<VDBL>
! 	   (match_operand:VDCSIF 1 "register_operand" "w, r")
! 	   (match_operand:VDCSIF 2 "register_operand" "w, r")))]
    "TARGET_FLOAT"
!   "@
!    stp\t%<single_type>1, %<single_type>2, %y0
!    stp\t%<single_wx>1, %<single_wx>2, %y0"
!   [(set_attr "type" "neon_stp, store_16")]
  )
  
  ;; Form a vector whose least significant half comes from operand 1 and whose
--- 4360,4374 ----
  ;; This dedicated pattern must come first.
  
  (define_insn "store_pair_lanes<mode>"
!   [(set (match_operand:<VDBL> 0 "aarch64_mem_pair_lanes_operand")
  	(vec_concat:<VDBL>
! 	   (match_operand:VDCSIF 1 "register_operand")
! 	   (match_operand:VDCSIF 2 "register_operand")))]
    "TARGET_FLOAT"
!   {@ [ cons: =0 , 1 , 2 ; attrs: type ]
!      [ Umn      , w , w ; neon_stp    ] stp\t%<single_type>1, %<single_type>2, %y0
!      [ Umn      , r , r ; store_16    ] stp\t%<single_wx>1, %<single_wx>2, %y0
!   }
  )
  
  ;; Form a vector whose least significant half comes from operand 1 and whose
***************
*** 4309,4381 ****
  ;; the register alternatives either don't accept or themselves disparage.
  
  (define_insn "*aarch64_combine_internal<mode>"
!   [(set (match_operand:<VDBL> 0 "aarch64_reg_or_mem_pair_operand" "=w, w, w, w, Umn, Umn")
  	(vec_concat:<VDBL>
! 	  (match_operand:VDCSIF 1 "register_operand" "0, 0, 0, 0, ?w, ?r")
! 	  (match_operand:VDCSIF 2 "aarch64_simd_nonimmediate_operand" "w, ?r, ?r, Utv, w, ?r")))]
    "TARGET_FLOAT
     && !BYTES_BIG_ENDIAN
     && (register_operand (operands[0], <VDBL>mode)
         || register_operand (operands[2], <MODE>mode))"
!   "@
!    ins\t%0.<single_type>[1], %2.<single_type>[0]
!    ins\t%0.<single_type>[1], %<single_wx>2
!    fmov\t%0.d[1], %2
!    ld1\t{%0.<single_type>}[1], %2
!    stp\t%<single_type>1, %<single_type>2, %y0
!    stp\t%<single_wx>1, %<single_wx>2, %y0"
!   [(set_attr "type" "neon_ins<dblq>, neon_from_gp<dblq>, f_mcr,
! 		     neon_load1_one_lane<dblq>, neon_stp, store_16")
!    (set_attr "arch" "simd,simd,*,simd,*,*")]
  )
  
  (define_insn "*aarch64_combine_internal_be<mode>"
!   [(set (match_operand:<VDBL> 0 "aarch64_reg_or_mem_pair_operand" "=w, w, w, w, Umn, Umn")
  	(vec_concat:<VDBL>
! 	  (match_operand:VDCSIF 2 "aarch64_simd_nonimmediate_operand" "w, ?r, ?r, Utv, ?w, ?r")
! 	  (match_operand:VDCSIF 1 "register_operand" "0, 0, 0, 0, ?w, ?r")))]
    "TARGET_FLOAT
     && BYTES_BIG_ENDIAN
     && (register_operand (operands[0], <VDBL>mode)
         || register_operand (operands[2], <MODE>mode))"
!   "@
!    ins\t%0.<single_type>[1], %2.<single_type>[0]
!    ins\t%0.<single_type>[1], %<single_wx>2
!    fmov\t%0.d[1], %2
!    ld1\t{%0.<single_type>}[1], %2
!    stp\t%<single_type>2, %<single_type>1, %y0
!    stp\t%<single_wx>2, %<single_wx>1, %y0"
!   [(set_attr "type" "neon_ins<dblq>, neon_from_gp<dblq>, f_mcr, neon_load1_one_lane<dblq>, neon_stp, store_16")
!    (set_attr "arch" "simd,simd,*,simd,*,*")]
  )
  
  ;; In this insn, operand 1 should be low, and operand 2 the high part of the
  ;; dest vector.
  
  (define_insn "*aarch64_combinez<mode>"
!   [(set (match_operand:<VDBL> 0 "register_operand" "=w,w,w")
  	(vec_concat:<VDBL>
! 	  (match_operand:VDCSIF 1 "nonimmediate_operand" "w,?r,m")
  	  (match_operand:VDCSIF 2 "aarch64_simd_or_scalar_imm_zero")))]
    "TARGET_FLOAT && !BYTES_BIG_ENDIAN"
!   "@
!    fmov\\t%<single_type>0, %<single_type>1
!    fmov\t%<single_type>0, %<single_wx>1
!    ldr\\t%<single_type>0, %1"
!   [(set_attr "type" "neon_move<q>, neon_from_gp, neon_load1_1reg")]
  )
  
  (define_insn "*aarch64_combinez_be<mode>"
!   [(set (match_operand:<VDBL> 0 "register_operand" "=w,w,w")
          (vec_concat:<VDBL>
  	  (match_operand:VDCSIF 2 "aarch64_simd_or_scalar_imm_zero")
! 	  (match_operand:VDCSIF 1 "nonimmediate_operand" "w,?r,m")))]
    "TARGET_FLOAT && BYTES_BIG_ENDIAN"
!   "@
!    fmov\\t%<single_type>0, %<single_type>1
!    fmov\t%<single_type>0, %<single_wx>1
!    ldr\\t%<single_type>0, %1"
!   [(set_attr "type" "neon_move<q>, neon_from_gp, neon_load1_1reg")]
  )
  
  ;; Form a vector whose first half (in array order) comes from operand 1
--- 4379,4448 ----
  ;; the register alternatives either don't accept or themselves disparage.
  
  (define_insn "*aarch64_combine_internal<mode>"
!   [(set (match_operand:<VDBL> 0 "aarch64_reg_or_mem_pair_operand")
  	(vec_concat:<VDBL>
! 	  (match_operand:VDCSIF 1 "register_operand")
! 	  (match_operand:VDCSIF 2 "aarch64_simd_nonimmediate_operand")))]
    "TARGET_FLOAT
     && !BYTES_BIG_ENDIAN
     && (register_operand (operands[0], <VDBL>mode)
         || register_operand (operands[2], <MODE>mode))"
!   {@ [ cons: =0 , 1  , 2   ; attrs: type               , arch  ]
!      [ w        , 0  , w   ; neon_ins<dblq>            , simd  ] ins\t%0.<single_type>[1], %2.<single_type>[0]
!      [ w        , 0  , ?r  ; neon_from_gp<dblq>        , simd  ] ins\t%0.<single_type>[1], %<single_wx>2
!      [ w        , 0  , ?r  ; f_mcr                     , *     ] fmov\t%0.d[1], %2
!      [ w        , 0  , Utv ; neon_load1_one_lane<dblq> , simd  ] ld1\t{%0.<single_type>}[1], %2
!      [ Umn      , ?w , w   ; neon_stp                  , *     ] stp\t%<single_type>1, %<single_type>2, %y0
!      [ Umn      , ?r , ?r  ; store_16                  , *     ] stp\t%<single_wx>1, %<single_wx>2, %y0
!   }
  )
  
  (define_insn "*aarch64_combine_internal_be<mode>"
!   [(set (match_operand:<VDBL> 0 "aarch64_reg_or_mem_pair_operand")
  	(vec_concat:<VDBL>
! 	  (match_operand:VDCSIF 2 "aarch64_simd_nonimmediate_operand")
! 	  (match_operand:VDCSIF 1 "register_operand")))]
    "TARGET_FLOAT
     && BYTES_BIG_ENDIAN
     && (register_operand (operands[0], <VDBL>mode)
         || register_operand (operands[2], <MODE>mode))"
!   {@ [ cons: =0 , 1  , 2   ; attrs: type               , arch  ]
!      [ w        , 0  , w   ; neon_ins<dblq>            , simd  ] ins\t%0.<single_type>[1], %2.<single_type>[0]
!      [ w        , 0  , ?r  ; neon_from_gp<dblq>        , simd  ] ins\t%0.<single_type>[1], %<single_wx>2
!      [ w        , 0  , ?r  ; f_mcr                     , *     ] fmov\t%0.d[1], %2
!      [ w        , 0  , Utv ; neon_load1_one_lane<dblq> , simd  ] ld1\t{%0.<single_type>}[1], %2
!      [ Umn      , ?w , ?w  ; neon_stp                  , *     ] stp\t%<single_type>2, %<single_type>1, %y0
!      [ Umn      , ?r , ?r  ; store_16                  , *     ] stp\t%<single_wx>2, %<single_wx>1, %y0
!   }
  )
  
  ;; In this insn, operand 1 should be low, and operand 2 the high part of the
  ;; dest vector.
  
  (define_insn "*aarch64_combinez<mode>"
!   [(set (match_operand:<VDBL> 0 "register_operand")
  	(vec_concat:<VDBL>
! 	  (match_operand:VDCSIF 1 "nonimmediate_operand")
  	  (match_operand:VDCSIF 2 "aarch64_simd_or_scalar_imm_zero")))]
    "TARGET_FLOAT && !BYTES_BIG_ENDIAN"
!   {@ [ cons: =0 , 1  ; attrs: type      ]
!      [ w        , w  ; neon_move<q>     ] fmov\t%<single_type>0, %<single_type>1
!      [ w        , ?r ; neon_from_gp     ] fmov\t%<single_type>0, %<single_wx>1
!      [ w        , m  ; neon_load1_1reg  ] ldr\t%<single_type>0, %1
!   }
  )
  
  (define_insn "*aarch64_combinez_be<mode>"
!   [(set (match_operand:<VDBL> 0 "register_operand")
          (vec_concat:<VDBL>
  	  (match_operand:VDCSIF 2 "aarch64_simd_or_scalar_imm_zero")
! 	  (match_operand:VDCSIF 1 "nonimmediate_operand")))]
    "TARGET_FLOAT && BYTES_BIG_ENDIAN"
!   {@ [ cons: =0 , 1  ; attrs: type      ]
!      [ w        , w  ; neon_move<q>     ] fmov\t%<single_type>0, %<single_type>1
!      [ w        , ?r ; neon_from_gp     ] fmov\t%<single_type>0, %<single_wx>1
!      [ w        , m  ; neon_load1_1reg  ] ldr\t%<single_type>0, %1
!   }
  )
  
  ;; Form a vector whose first half (in array order) comes from operand 1
***************
*** 4464,4470 ****
    [(set_attr "type" "neon_<ADDSUB:optab>_long")]
  )
  
! (define_expand "vec_widen_<su>addl_lo_<mode>"
    [(match_operand:<VWIDE> 0 "register_operand")
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
--- 4531,4537 ----
    [(set_attr "type" "neon_<ADDSUB:optab>_long")]
  )
  
! (define_expand "vec_widen_<su>add_lo_<mode>"
    [(match_operand:<VWIDE> 0 "register_operand")
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
***************
*** 4476,4482 ****
    DONE;
  })
  
! (define_expand "vec_widen_<su>addl_hi_<mode>"
    [(match_operand:<VWIDE> 0 "register_operand")
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
--- 4543,4549 ----
    DONE;
  })
  
! (define_expand "vec_widen_<su>add_hi_<mode>"
    [(match_operand:<VWIDE> 0 "register_operand")
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
***************
*** 4488,4494 ****
    DONE;
  })
  
! (define_expand "vec_widen_<su>subl_lo_<mode>"
    [(match_operand:<VWIDE> 0 "register_operand")
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
--- 4555,4561 ----
    DONE;
  })
  
! (define_expand "vec_widen_<su>sub_lo_<mode>"
    [(match_operand:<VWIDE> 0 "register_operand")
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
***************
*** 4500,4506 ****
    DONE;
  })
  
! (define_expand "vec_widen_<su>subl_hi_<mode>"
    [(match_operand:<VWIDE> 0 "register_operand")
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
--- 4567,4573 ----
    DONE;
  })
  
! (define_expand "vec_widen_<su>sub_hi_<mode>"
    [(match_operand:<VWIDE> 0 "register_operand")
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 1 "register_operand"))
     (ANY_EXTEND:<VWIDE> (match_operand:VQW 2 "register_operand"))]
***************
*** 4699,4868 ****
    [(set_attr "type" "neon_add_widen")]
  )
  
! (define_expand "aarch64_saddw2<mode>"
!   [(match_operand:<VWIDE> 0 "register_operand")
!    (match_operand:<VWIDE> 1 "register_operand")
!    (match_operand:VQW 2 "register_operand")]
!   "TARGET_SIMD"
! {
!   rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!   emit_insn (gen_aarch64_saddw2<mode>_internal (operands[0], operands[1],
! 						operands[2], p));
!   DONE;
! })
! 
! (define_expand "aarch64_uaddw2<mode>"
!   [(match_operand:<VWIDE> 0 "register_operand")
!    (match_operand:<VWIDE> 1 "register_operand")
!    (match_operand:VQW 2 "register_operand")]
    "TARGET_SIMD"
  {
!   rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!   emit_insn (gen_aarch64_uaddw2<mode>_internal (operands[0], operands[1],
! 						operands[2], p));
    DONE;
  })
  
  
! (define_expand "aarch64_ssubw2<mode>"
!   [(match_operand:<VWIDE> 0 "register_operand")
!    (match_operand:<VWIDE> 1 "register_operand")
!    (match_operand:VQW 2 "register_operand")]
    "TARGET_SIMD"
! {
!   rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!   emit_insn (gen_aarch64_ssubw2<mode>_internal (operands[0], operands[1],
! 						operands[2], p));
!   DONE;
! })
  
! (define_expand "aarch64_usubw2<mode>"
!   [(match_operand:<VWIDE> 0 "register_operand")
!    (match_operand:<VWIDE> 1 "register_operand")
!    (match_operand:VQW 2 "register_operand")]
    "TARGET_SIMD"
! {
!   rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!   emit_insn (gen_aarch64_usubw2<mode>_internal (operands[0], operands[1],
! 						operands[2], p));
!   DONE;
! })
! 
! ;; <su><r>h<addsub>.
  
! (define_expand "<u>avg<mode>3_floor"
    [(set (match_operand:VDQ_BHSI 0 "register_operand")
! 	(unspec:VDQ_BHSI [(match_operand:VDQ_BHSI 1 "register_operand")
! 			  (match_operand:VDQ_BHSI 2 "register_operand")]
! 			 HADD))]
    "TARGET_SIMD"
  )
  
! (define_expand "<u>avg<mode>3_ceil"
!   [(set (match_operand:VDQ_BHSI 0 "register_operand")
! 	(unspec:VDQ_BHSI [(match_operand:VDQ_BHSI 1 "register_operand")
! 			  (match_operand:VDQ_BHSI 2 "register_operand")]
! 			 RHADD))]
    "TARGET_SIMD"
  )
  
! (define_insn "aarch64_<sur>h<addsub><mode>"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
!         (unspec:VDQ_BHSI [(match_operand:VDQ_BHSI 1 "register_operand" "w")
! 		      (match_operand:VDQ_BHSI 2 "register_operand" "w")]
! 		     HADDSUB))]
    "TARGET_SIMD"
!   "<sur>h<addsub>\\t%0.<Vtype>, %1.<Vtype>, %2.<Vtype>"
!   [(set_attr "type" "neon_<addsub>_halve<q>")]
  )
  
  ;; <r><addsub>hn<q>.
  
! (define_insn "aarch64_<sur><addsub>hn<mode>_insn_le"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand" "w")
! 			      (match_operand:VQN 2 "register_operand" "w")]
! 			     ADDSUBHN)
! 	  (match_operand:<VNARROWQ> 3 "aarch64_simd_or_scalar_imm_zero")))]
!   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "<sur><addsub>hn\\t%0.<Vntype>, %1.<Vtype>, %2.<Vtype>"
!   [(set_attr "type" "neon_<addsub>_halve_narrow_q")]
  )
  
! (define_insn "aarch64_<sur><addsub>hn<mode>_insn_be"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (match_operand:<VNARROWQ> 3 "aarch64_simd_or_scalar_imm_zero")
! 	  (unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand" "w")
! 			      (match_operand:VQN 2 "register_operand" "w")]
! 			     ADDSUBHN)))]
!   "TARGET_SIMD && BYTES_BIG_ENDIAN"
!   "<sur><addsub>hn\\t%0.<Vntype>, %1.<Vtype>, %2.<Vtype>"
!   [(set_attr "type" "neon_<addsub>_halve_narrow_q")]
  )
  
! (define_expand "aarch64_<sur><addsub>hn<mode>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand")
! 			    (match_operand:VQN 2 "register_operand")]
! 			   ADDSUBHN))]
    "TARGET_SIMD"
    {
!     rtx tmp = gen_reg_rtx (<VNARROWQ2>mode);
!     if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_<sur><addsub>hn<mode>_insn_be (tmp, operands[1],
! 				operands[2], CONST0_RTX (<VNARROWQ>mode)));
!     else
!       emit_insn (gen_aarch64_<sur><addsub>hn<mode>_insn_le (tmp, operands[1],
! 				operands[2], CONST0_RTX (<VNARROWQ>mode)));
  
!     /* The intrinsic expects a narrow result, so emit a subreg that will get
!        optimized away as appropriate.  */
!     emit_move_insn (operands[0], lowpart_subreg (<VNARROWQ>mode, tmp,
! 						 <VNARROWQ2>mode));
      DONE;
    }
  )
  
! (define_insn "aarch64_<sur><addsub>hn2<mode>_insn_le"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (unspec:<VNARROWQ> [(match_operand:VQN 2 "register_operand" "w")
! 			      (match_operand:VQN 3 "register_operand" "w")]
! 			     ADDSUBHN)))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "<sur><addsub>hn2\\t%0.<V2ntype>, %2.<Vtype>, %3.<Vtype>"
!   [(set_attr "type" "neon_<addsub>_halve_narrow_q")]
  )
  
! (define_insn "aarch64_<sur><addsub>hn2<mode>_insn_be"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
! 	  (unspec:<VNARROWQ> [(match_operand:VQN 2 "register_operand" "w")
! 			      (match_operand:VQN 3 "register_operand" "w")]
! 			     ADDSUBHN)
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
    "TARGET_SIMD && BYTES_BIG_ENDIAN"
!   "<sur><addsub>hn2\\t%0.<V2ntype>, %2.<Vtype>, %3.<Vtype>"
!   [(set_attr "type" "neon_<addsub>_halve_narrow_q")]
  )
  
! (define_expand "aarch64_<sur><addsub>hn2<mode>"
    [(match_operand:<VNARROWQ2> 0 "register_operand")
     (match_operand:<VNARROWQ> 1 "register_operand")
!    (unspec [(match_operand:VQN 2 "register_operand")
! 	    (match_operand:VQN 3 "register_operand")]
! 	   ADDSUBHN)]
    "TARGET_SIMD"
    {
      if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_<sur><addsub>hn2<mode>_insn_be (operands[0],
! 				operands[1], operands[2], operands[3]));
      else
!       emit_insn (gen_aarch64_<sur><addsub>hn2<mode>_insn_le (operands[0],
! 				operands[1], operands[2], operands[3]));
      DONE;
    }
  )
--- 4766,5038 ----
    [(set_attr "type" "neon_add_widen")]
  )
  
! (define_expand "aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>"
!   [(set (match_operand:<VWIDE> 0 "register_operand")
! 	(ADDSUB:<VWIDE>
! 	  (ANY_EXTEND:<VWIDE>
! 	    (vec_select:<VHALF>
! 	      (match_operand:VQW 2 "register_operand")
! 	      (match_dup 3)))
! 	  (match_operand:<VWIDE> 1 "register_operand")))]
    "TARGET_SIMD"
  {
!   /* We still do an emit_insn rather than relying on the pattern above
!      because for the MINUS case the operands would need to be swapped
!      around.  */
!   operands[3]
!     = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!   emit_insn (gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal(
! 						       operands[0],
! 						       operands[1],
! 						       operands[2],
! 						       operands[3]));
    DONE;
  })
  
+ ;; <su><r>h<addsub>.
  
! (define_expand "<su_optab>avg<mode>3_floor"
!   [(set (match_operand:VDQ_BHSI 0 "register_operand")
! 	(truncate:VDQ_BHSI
! 	  (ashiftrt:<V2XWIDE>
! 	    (plus:<V2XWIDE>
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQ_BHSI 1 "register_operand"))
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQ_BHSI 2 "register_operand")))
! 	    (match_dup 3))))]
    "TARGET_SIMD"
!   {
!     operands[3] = CONST1_RTX (<V2XWIDE>mode);
!   }
! )
  
! (define_expand "<su_optab>avg<mode>3_ceil"
!   [(set (match_operand:VDQ_BHSI 0 "register_operand")
! 	(truncate:VDQ_BHSI
! 	  (ashiftrt:<V2XWIDE>
! 	    (plus:<V2XWIDE>
! 	      (plus:<V2XWIDE>
! 		(ANY_EXTEND:<V2XWIDE>
! 		  (match_operand:VDQ_BHSI 1 "register_operand"))
! 		(ANY_EXTEND:<V2XWIDE>
! 		  (match_operand:VDQ_BHSI 2 "register_operand")))
! 	       (match_dup 3))
! 	    (match_dup 3))))]
    "TARGET_SIMD"
!   {
!     operands[3] = CONST1_RTX (<V2XWIDE>mode);
!   }
! )
  
! (define_expand "aarch64_<su>hsub<mode>"
    [(set (match_operand:VDQ_BHSI 0 "register_operand")
! 	(truncate:VDQ_BHSI
! 	  (ashiftrt:<V2XWIDE>
! 	    (minus:<V2XWIDE>
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQ_BHSI 1 "register_operand"))
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQ_BHSI 2 "register_operand")))
! 	    (match_dup 3))))]
    "TARGET_SIMD"
+   {
+     operands[3] = CONST1_RTX (<V2XWIDE>mode);
+   }
  )
  
! (define_insn "*aarch64_<su>h<ADDSUB:optab><mode><vczle><vczbe>_insn"
!   [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
! 	(truncate:VDQ_BHSI
! 	  (ashiftrt:<V2XWIDE>
! 	    (ADDSUB:<V2XWIDE>
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQ_BHSI 1 "register_operand" "w"))
! 	      (ANY_EXTEND:<V2XWIDE>
! 		(match_operand:VDQ_BHSI 2 "register_operand" "w")))
! 	    (match_operand:<V2XWIDE> 3 "aarch64_simd_imm_one"))))]
    "TARGET_SIMD"
+   "<su>h<ADDSUB:optab>\\t%0.<Vtype>, %1.<Vtype>, %2.<Vtype>"
+   [(set_attr "type" "neon_<ADDSUB:optab>_halve<q>")]
  )
  
! (define_insn "*aarch64_<su>rhadd<mode><vczle><vczbe>_insn"
    [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w")
! 	(truncate:VDQ_BHSI
! 	  (ashiftrt:<V2XWIDE>
! 	    (plus:<V2XWIDE>
! 	      (plus:<V2XWIDE>
! 		(ANY_EXTEND:<V2XWIDE>
! 		  (match_operand:VDQ_BHSI 1 "register_operand" "w"))
! 		(ANY_EXTEND:<V2XWIDE>
! 		  (match_operand:VDQ_BHSI 2 "register_operand" "w")))
! 	       (match_operand:<V2XWIDE> 3 "aarch64_simd_imm_one"))
! 	    (match_dup 3))))]
    "TARGET_SIMD"
!   "<su>rhadd\\t%0.<Vtype>, %1.<Vtype>, %2.<Vtype>"
!   [(set_attr "type" "neon_add_halve<q>")]
  )
  
  ;; <r><addsub>hn<q>.
  
! (define_insn "aarch64_<optab>hn<mode>_insn<vczle><vczbe>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(truncate:<VNARROWQ>
! 	  (ashiftrt:VQN
! 	    (ADDSUB:VQN (match_operand:VQN 1 "register_operand" "w")
! 			(match_operand:VQN 2 "register_operand" "w"))
! 	    (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_exact_top"))))]
!   "TARGET_SIMD"
!   "<optab>hn\\t%0.<Vntype>, %1.<Vtype>, %2.<Vtype>"
!   [(set_attr "type" "neon_<optab>_halve_narrow_q")]
  )
  
! (define_insn "aarch64_r<optab>hn<mode>_insn<vczle><vczbe>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(truncate:<VNARROWQ>
! 	  (ashiftrt:VQN
! 	    (plus:VQN
! 	      (ADDSUB:VQN (match_operand:VQN 1 "register_operand" "w")
! 			  (match_operand:VQN 2 "register_operand" "w"))
! 	      (match_operand:VQN 3 "aarch64_simd_raddsubhn_imm_vec"))
! 	    (match_operand:VQN 4 "aarch64_simd_shift_imm_vec_exact_top"))))]
!   "TARGET_SIMD"
!   "r<optab>hn\\t%0.<Vntype>, %1.<Vtype>, %2.<Vtype>"
!   [(set_attr "type" "neon_<optab>_halve_narrow_q")]
  )
  
! (define_expand "aarch64_<optab>hn<mode>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(ADDSUB:VQN (match_operand:VQN 1 "register_operand")
! 		    (match_operand:VQN 2 "register_operand")))]
    "TARGET_SIMD"
    {
!     rtx shft
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 				GET_MODE_UNIT_BITSIZE (<MODE>mode) / 2);
!     emit_insn (gen_aarch64_<optab>hn<mode>_insn (operands[0], operands[1],
! 						 operands[2], shft));
!     DONE;
!   }
! )
  
! (define_expand "aarch64_r<optab>hn<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(ADDSUB:VQN (match_operand:VQN 1 "register_operand")
! 		    (match_operand:VQN 2 "register_operand")))]
!   "TARGET_SIMD"
!   {
!     rtx shft
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 				GET_MODE_UNIT_BITSIZE (<MODE>mode) / 2);
!     rtx rnd
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 	HOST_WIDE_INT_1U << (GET_MODE_UNIT_BITSIZE (<MODE>mode) / 2 - 1));
!     emit_insn (gen_aarch64_r<optab>hn<mode>_insn (operands[0], operands[1],
! 						  operands[2], rnd, shft));
      DONE;
    }
  )
  
! (define_insn "aarch64_<optab>hn2<mode>_insn_le"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (truncate:<VNARROWQ>
! 	    (ashiftrt:VQN
! 	      (ADDSUB:VQN (match_operand:VQN 2 "register_operand" "w")
! 			  (match_operand:VQN 3 "register_operand" "w"))
! 	      (match_operand:VQN 4 "aarch64_simd_shift_imm_vec_exact_top")))))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "<optab>hn2\\t%0.<V2ntype>, %2.<Vtype>, %3.<Vtype>"
!   [(set_attr "type" "neon_<optab>_halve_narrow_q")]
  )
  
! (define_insn "aarch64_r<optab>hn2<mode>_insn_le"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
! 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (truncate:<VNARROWQ>
! 	    (ashiftrt:VQN
! 	      (plus:VQN
! 		(ADDSUB:VQN (match_operand:VQN 2 "register_operand" "w")
! 			    (match_operand:VQN 3 "register_operand" "w"))
! 		(match_operand:VQN 4 "aarch64_simd_raddsubhn_imm_vec"))
! 	      (match_operand:VQN 5 "aarch64_simd_shift_imm_vec_exact_top")))))]
!   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "r<optab>hn2\\t%0.<V2ntype>, %2.<Vtype>, %3.<Vtype>"
!   [(set_attr "type" "neon_<optab>_halve_narrow_q")]
! )
! 
! (define_insn "aarch64_<optab>hn2<mode>_insn_be"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (truncate:<VNARROWQ>
! 	    (ashiftrt:VQN
! 	      (ADDSUB:VQN (match_operand:VQN 2 "register_operand" "w")
! 			  (match_operand:VQN 3 "register_operand" "w"))
! 	      (match_operand:VQN 4 "aarch64_simd_shift_imm_vec_exact_top")))
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
    "TARGET_SIMD && BYTES_BIG_ENDIAN"
!   "<optab>hn2\\t%0.<V2ntype>, %2.<Vtype>, %3.<Vtype>"
!   [(set_attr "type" "neon_<optab>_halve_narrow_q")]
  )
  
! (define_insn "aarch64_r<optab>hn2<mode>_insn_be"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (truncate:<VNARROWQ>
! 	    (ashiftrt:VQN
! 	      (plus:VQN
! 		(ADDSUB:VQN (match_operand:VQN 2 "register_operand" "w")
! 			    (match_operand:VQN 3 "register_operand" "w"))
! 		(match_operand:VQN 4 "aarch64_simd_raddsubhn_imm_vec"))
! 	      (match_operand:VQN 5 "aarch64_simd_shift_imm_vec_exact_top")))
! 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
!   "TARGET_SIMD && BYTES_BIG_ENDIAN"
!   "r<optab>hn2\\t%0.<V2ntype>, %2.<Vtype>, %3.<Vtype>"
!   [(set_attr "type" "neon_<optab>_halve_narrow_q")]
! )
! 
! (define_expand "aarch64_<optab>hn2<mode>"
    [(match_operand:<VNARROWQ2> 0 "register_operand")
     (match_operand:<VNARROWQ> 1 "register_operand")
!    (ADDSUB:VQN (match_operand:VQN 2 "register_operand")
! 	       (match_operand:VQN 3 "register_operand"))]
    "TARGET_SIMD"
    {
+     rtx shft
+       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
+ 				GET_MODE_UNIT_BITSIZE (<MODE>mode) / 2);
      if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_<optab>hn2<mode>_insn_be (operands[0],
! 				operands[1], operands[2], operands[3], shft));
      else
!       emit_insn (gen_aarch64_<optab>hn2<mode>_insn_le (operands[0],
! 				operands[1], operands[2], operands[3], shft));
!     DONE;
!   }
! )
! 
! (define_expand "aarch64_r<optab>hn2<mode>"
!   [(match_operand:<VNARROWQ2> 0 "register_operand")
!    (match_operand:<VNARROWQ> 1 "register_operand")
!    (ADDSUB:VQN (match_operand:VQN 2 "register_operand")
! 	       (match_operand:VQN 3 "register_operand"))]
!   "TARGET_SIMD"
!   {
!     rtx shft
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 				GET_MODE_UNIT_BITSIZE (<MODE>mode) / 2);
!     rtx rnd
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 	HOST_WIDE_INT_1U << (GET_MODE_UNIT_BITSIZE (<MODE>mode) / 2 - 1));
!     if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_r<optab>hn2<mode>_insn_be (operands[0],
! 				operands[1], operands[2], operands[3], rnd, shft));
!     else
!       emit_insn (gen_aarch64_r<optab>hn2<mode>_insn_le (operands[0],
! 				operands[1], operands[2], operands[3], rnd, shft));
      DONE;
    }
  )
***************
*** 5027,5033 ****
  )
  ;; <su>q<addsub>
  
! (define_insn "aarch64_<su_optab>q<addsub><mode>"
    [(set (match_operand:VSDQ_I 0 "register_operand" "=w")
  	(BINQOPS:VSDQ_I (match_operand:VSDQ_I 1 "register_operand" "w")
  			(match_operand:VSDQ_I 2 "register_operand" "w")))]
--- 5197,5203 ----
  )
  ;; <su>q<addsub>
  
! (define_insn "aarch64_<su_optab>q<addsub><mode><vczle><vczbe>"
    [(set (match_operand:VSDQ_I 0 "register_operand" "=w")
  	(BINQOPS:VSDQ_I (match_operand:VSDQ_I 1 "register_operand" "w")
  			(match_operand:VSDQ_I 2 "register_operand" "w")))]
***************
*** 5038,5044 ****
  
  ;; suqadd and usqadd
  
! (define_insn "aarch64_<sur>qadd<mode>"
    [(set (match_operand:VSDQ_I 0 "register_operand" "=w")
  	(unspec:VSDQ_I [(match_operand:VSDQ_I 1 "register_operand" "0")
  			(match_operand:VSDQ_I 2 "register_operand" "w")]
--- 5208,5214 ----
  
  ;; suqadd and usqadd
  
! (define_insn "aarch64_<sur>qadd<mode><vczle><vczbe>"
    [(set (match_operand:VSDQ_I 0 "register_operand" "=w")
  	(unspec:VSDQ_I [(match_operand:VSDQ_I 1 "register_operand" "0")
  			(match_operand:VSDQ_I 2 "register_operand" "w")]
***************
*** 5050,5056 ****
  
  ;; sqmovn and uqmovn
  
! (define_insn "aarch64_<su>qmovn<mode>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
  	(SAT_TRUNC:<VNARROWQ>
  	  (match_operand:SD_HSDI 1 "register_operand" "w")))]
--- 5220,5226 ----
  
  ;; sqmovn and uqmovn
  
! (define_insn "aarch64_<su>qmovn<mode><vczle><vczbe>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
  	(SAT_TRUNC:<VNARROWQ>
  	  (match_operand:SD_HSDI 1 "register_operand" "w")))]
***************
*** 5059,5106 ****
    [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
! (define_insn "aarch64_<su>qmovn<mode>_insn_le"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (SAT_TRUNC:<VNARROWQ>
! 	    (match_operand:VQN 1 "register_operand" "w"))
! 	  (match_operand:<VNARROWQ> 2 "aarch64_simd_or_scalar_imm_zero")))]
!   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "<su>qxtn\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>"
!   [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
! )
! 
! (define_insn "aarch64_<su>qmovn<mode>_insn_be"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (match_operand:<VNARROWQ> 2 "aarch64_simd_or_scalar_imm_zero")
! 	  (SAT_TRUNC:<VNARROWQ>
! 	    (match_operand:VQN 1 "register_operand" "w"))))]
!   "TARGET_SIMD && BYTES_BIG_ENDIAN"
!   "<su>qxtn\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>"
!   [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
! )
! 
! (define_expand "aarch64_<su>qmovn<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand")
  	(SAT_TRUNC:<VNARROWQ>
! 	  (match_operand:VQN 1 "register_operand")))]
    "TARGET_SIMD"
!   {
!     rtx tmp = gen_reg_rtx (<VNARROWQ2>mode);
!     if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_<su>qmovn<mode>_insn_be (tmp, operands[1],
! 				CONST0_RTX (<VNARROWQ>mode)));
!     else
!       emit_insn (gen_aarch64_<su>qmovn<mode>_insn_le (tmp, operands[1],
! 				CONST0_RTX (<VNARROWQ>mode)));
! 
!     /* The intrinsic expects a narrow result, so emit a subreg that will get
!        optimized away as appropriate.  */
!     emit_move_insn (operands[0], lowpart_subreg (<VNARROWQ>mode, tmp,
! 						 <VNARROWQ2>mode));
!     DONE;
!   }
  )
  
  (define_insn "aarch64_<su>qxtn2<mode>_le"
--- 5229,5241 ----
    [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
! (define_insn "aarch64_<su>qmovn<mode><vczle><vczbe>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
  	(SAT_TRUNC:<VNARROWQ>
! 	  (match_operand:VQN 1 "register_operand" "w")))]
    "TARGET_SIMD"
!   "<su>qxtn\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>"
!   [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
  (define_insn "aarch64_<su>qxtn2<mode>_le"
***************
*** 5146,5199 ****
  
  (define_insn "aarch64_sqmovun<mode>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(unspec:<VNARROWQ> [(match_operand:SD_HSDI 1 "register_operand" "w")]
! 			   UNSPEC_SQXTUN))]
     "TARGET_SIMD"
     "sqxtun\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>"
     [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
! (define_insn "aarch64_sqmovun<mode>_insn_le"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand" "w")]
! 			     UNSPEC_SQXTUN)
! 	  (match_operand:<VNARROWQ> 2 "aarch64_simd_or_scalar_imm_zero")))]
!   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "sqxtun\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>"
!   [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
! )
! 
! (define_insn "aarch64_sqmovun<mode>_insn_be"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (match_operand:<VNARROWQ> 2 "aarch64_simd_or_scalar_imm_zero")
! 	  (unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand" "w")]
! 			     UNSPEC_SQXTUN)))]
!   "TARGET_SIMD && BYTES_BIG_ENDIAN"
    "sqxtun\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>"
    [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
  (define_expand "aarch64_sqmovun<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand")]
! 			   UNSPEC_SQXTUN))]
    "TARGET_SIMD"
    {
!     rtx tmp = gen_reg_rtx (<VNARROWQ2>mode);
!     if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_sqmovun<mode>_insn_be (tmp, operands[1],
! 				CONST0_RTX (<VNARROWQ>mode)));
!     else
!       emit_insn (gen_aarch64_sqmovun<mode>_insn_le (tmp, operands[1],
! 				CONST0_RTX (<VNARROWQ>mode)));
! 
!     /* The intrinsic expects a narrow result, so emit a subreg that will get
!        optimized away as appropriate.  */
!     emit_move_insn (operands[0], lowpart_subreg (<VNARROWQ>mode, tmp,
! 						 <VNARROWQ2>mode));
!     DONE;
    }
  )
  
--- 5281,5322 ----
  
  (define_insn "aarch64_sqmovun<mode>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(truncate:<VNARROWQ>
! 	  (smin:SD_HSDI
! 	    (smax:SD_HSDI
! 	      (match_operand:SD_HSDI 1 "register_operand" "w")
! 	      (const_int 0))
! 	    (const_int <half_mask>))))]
     "TARGET_SIMD"
     "sqxtun\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>"
     [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
! (define_insn "*aarch64_sqmovun<mode>_insn<vczle><vczbe>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(truncate:<VNARROWQ>
! 	  (smin:VQN
! 	    (smax:VQN (match_operand:VQN 1 "register_operand" "w")
! 		      (match_operand:VQN 2 "aarch64_simd_or_scalar_imm_zero"))
! 	    (match_operand:VQN 3 "aarch64_simd_umax_half_mode"))))]
!   "TARGET_SIMD"
    "sqxtun\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>"
    [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
  (define_expand "aarch64_sqmovun<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(truncate:<VNARROWQ>
! 	  (smin:VQN
! 	    (smax:VQN (match_operand:VQN 1 "register_operand" "w")
! 		      (match_dup 2))
! 	    (match_dup 3))))]
    "TARGET_SIMD"
    {
!     operands[2] = CONST0_RTX (<MODE>mode);
!     operands[3]
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 			GET_MODE_MASK (GET_MODE_INNER (<VNARROWQ>mode)));
    }
  )
  
***************
*** 5201,5208 ****
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (unspec:<VNARROWQ>
! 	    [(match_operand:VQN 2 "register_operand" "w")] UNSPEC_SQXTUN)))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN"
    "sqxtun2\\t%0.<V2ntype>, %2.<Vtype>"
     [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
--- 5324,5335 ----
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (truncate:<VNARROWQ>
! 	    (smin:VQN
! 	      (smax:VQN
! 		(match_operand:VQN 2 "register_operand" "w")
! 		(match_operand:VQN 3 "aarch64_simd_or_scalar_imm_zero"))
! 	      (match_operand:VQN 4 "aarch64_simd_umax_half_mode")))))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN"
    "sqxtun2\\t%0.<V2ntype>, %2.<Vtype>"
     [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
***************
*** 5211,5218 ****
  (define_insn "aarch64_sqxtun2<mode>_be"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
! 	  (unspec:<VNARROWQ>
! 	    [(match_operand:VQN 2 "register_operand" "w")] UNSPEC_SQXTUN)
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
    "TARGET_SIMD && BYTES_BIG_ENDIAN"
    "sqxtun2\\t%0.<V2ntype>, %2.<Vtype>"
--- 5338,5349 ----
  (define_insn "aarch64_sqxtun2<mode>_be"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
! 	  (truncate:<VNARROWQ>
! 	    (smin:VQN
! 	      (smax:VQN
! 		(match_operand:VQN 2 "register_operand" "w")
! 		(match_operand:VQN 3 "aarch64_simd_or_scalar_imm_zero"))
! 	      (match_operand:VQN 4 "aarch64_simd_umax_half_mode")))
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
    "TARGET_SIMD && BYTES_BIG_ENDIAN"
    "sqxtun2\\t%0.<V2ntype>, %2.<Vtype>"
***************
*** 5222,5244 ****
  (define_expand "aarch64_sqxtun2<mode>"
    [(match_operand:<VNARROWQ2> 0 "register_operand")
     (match_operand:<VNARROWQ> 1 "register_operand")
!    (unspec:<VNARROWQ>
!      [(match_operand:VQN 2 "register_operand")] UNSPEC_SQXTUN)]
    "TARGET_SIMD"
    {
      if (BYTES_BIG_ENDIAN)
        emit_insn (gen_aarch64_sqxtun2<mode>_be (operands[0], operands[1],
! 					      operands[2]));
      else
        emit_insn (gen_aarch64_sqxtun2<mode>_le (operands[0], operands[1],
! 					       operands[2]));
      DONE;
    }
  )
  
  ;; <su>q<absneg>
  
! (define_insn "aarch64_s<optab><mode>"
    [(set (match_operand:VSDQ_I 0 "register_operand" "=w")
  	(UNQOPS:VSDQ_I
  	  (match_operand:VSDQ_I 1 "register_operand" "w")))]
--- 5353,5377 ----
  (define_expand "aarch64_sqxtun2<mode>"
    [(match_operand:<VNARROWQ2> 0 "register_operand")
     (match_operand:<VNARROWQ> 1 "register_operand")
!    (match_operand:VQN 2 "register_operand")]
    "TARGET_SIMD"
    {
+     rtx zeros = CONST0_RTX (<MODE>mode);
+     rtx half_umax = aarch64_simd_gen_const_vector_dup (<MODE>mode,
+ 			GET_MODE_MASK (GET_MODE_INNER (<VNARROWQ>mode)));
      if (BYTES_BIG_ENDIAN)
        emit_insn (gen_aarch64_sqxtun2<mode>_be (operands[0], operands[1],
! 					       operands[2], zeros, half_umax));
      else
        emit_insn (gen_aarch64_sqxtun2<mode>_le (operands[0], operands[1],
! 					       operands[2], zeros, half_umax));
      DONE;
    }
  )
  
  ;; <su>q<absneg>
  
! (define_insn "aarch64_s<optab><mode><vczle><vczbe>"
    [(set (match_operand:VSDQ_I 0 "register_operand" "=w")
  	(UNQOPS:VSDQ_I
  	  (match_operand:VSDQ_I 1 "register_operand" "w")))]
***************
*** 5249,5255 ****
  
  ;; sq<r>dmulh.
  
! (define_insn "aarch64_sq<r>dmulh<mode>"
    [(set (match_operand:VSDQ_HSI 0 "register_operand" "=w")
  	(unspec:VSDQ_HSI
  	  [(match_operand:VSDQ_HSI 1 "register_operand" "w")
--- 5382,5388 ----
  
  ;; sq<r>dmulh.
  
! (define_insn "aarch64_sq<r>dmulh<mode><vczle><vczbe>"
    [(set (match_operand:VSDQ_HSI 0 "register_operand" "=w")
  	(unspec:VSDQ_HSI
  	  [(match_operand:VSDQ_HSI 1 "register_operand" "w")
***************
*** 5260,5266 ****
    [(set_attr "type" "neon_sat_mul_<Vetype><q>")]
  )
  
! (define_insn "aarch64_sq<r>dmulh_n<mode>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "w")
--- 5393,5399 ----
    [(set_attr "type" "neon_sat_mul_<Vetype><q>")]
  )
  
! (define_insn "aarch64_sq<r>dmulh_n<mode><vczle><vczbe>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "w")
***************
*** 5274,5280 ****
  
  ;; sq<r>dmulh_lane
  
! (define_insn "aarch64_sq<r>dmulh_lane<mode>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
          (unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "w")
--- 5407,5413 ----
  
  ;; sq<r>dmulh_lane
  
! (define_insn "aarch64_sq<r>dmulh_lane<mode><vczle><vczbe>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
          (unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "w")
***************
*** 5289,5295 ****
    [(set_attr "type" "neon_sat_mul_<Vetype>_scalar<q>")]
  )
  
! (define_insn "aarch64_sq<r>dmulh_laneq<mode>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
          (unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "w")
--- 5422,5428 ----
    [(set_attr "type" "neon_sat_mul_<Vetype>_scalar<q>")]
  )
  
! (define_insn "aarch64_sq<r>dmulh_laneq<mode><vczle><vczbe>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
          (unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "w")
***************
*** 5336,5342 ****
  
  ;; sqrdml[as]h.
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>"
    [(set (match_operand:VSDQ_HSI 0 "register_operand" "=w")
  	(unspec:VSDQ_HSI
  	  [(match_operand:VSDQ_HSI 1 "register_operand" "0")
--- 5469,5475 ----
  
  ;; sqrdml[as]h.
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode><vczle><vczbe>"
    [(set (match_operand:VSDQ_HSI 0 "register_operand" "=w")
  	(unspec:VSDQ_HSI
  	  [(match_operand:VSDQ_HSI 1 "register_operand" "0")
***************
*** 5350,5356 ****
  
  ;; sqrdml[as]h_lane.
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "0")
--- 5483,5489 ----
  
  ;; sqrdml[as]h_lane.
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode><vczle><vczbe>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "0")
***************
*** 5368,5374 ****
     [(set_attr "type" "neon_sat_mla_<Vetype>_scalar_long")]
  )
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>"
    [(set (match_operand:SD_HSI 0 "register_operand" "=w")
  	(unspec:SD_HSI
  	  [(match_operand:SD_HSI 1 "register_operand" "0")
--- 5501,5507 ----
     [(set_attr "type" "neon_sat_mla_<Vetype>_scalar_long")]
  )
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode><vczle><vczbe>"
    [(set (match_operand:SD_HSI 0 "register_operand" "=w")
  	(unspec:SD_HSI
  	  [(match_operand:SD_HSI 1 "register_operand" "0")
***************
*** 5388,5394 ****
  
  ;; sqrdml[as]h_laneq.
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "0")
--- 5521,5527 ----
  
  ;; sqrdml[as]h_laneq.
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode><vczle><vczbe>"
    [(set (match_operand:VDQHS 0 "register_operand" "=w")
  	(unspec:VDQHS
  	  [(match_operand:VDQHS 1 "register_operand" "0")
***************
*** 5406,5412 ****
     [(set_attr "type" "neon_sat_mla_<Vetype>_scalar_long")]
  )
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>"
    [(set (match_operand:SD_HSI 0 "register_operand" "=w")
  	(unspec:SD_HSI
  	  [(match_operand:SD_HSI 1 "register_operand" "0")
--- 5539,5545 ----
     [(set_attr "type" "neon_sat_mla_<Vetype>_scalar_long")]
  )
  
! (define_insn "aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode><vczle><vczbe>"
    [(set (match_operand:SD_HSI 0 "register_operand" "=w")
  	(unspec:SD_HSI
  	  [(match_operand:SD_HSI 1 "register_operand" "0")
***************
*** 6201,6207 ****
  
  ;; vshl
  
! (define_insn "aarch64_<sur>shl<mode>"
    [(set (match_operand:VSDQ_I_DI 0 "register_operand" "=w")
          (unspec:VSDQ_I_DI
  	  [(match_operand:VSDQ_I_DI 1 "register_operand" "w")
--- 6334,6340 ----
  
  ;; vshl
  
! (define_insn "aarch64_<sur>shl<mode><vczle><vczbe>"
    [(set (match_operand:VSDQ_I_DI 0 "register_operand" "=w")
          (unspec:VSDQ_I_DI
  	  [(match_operand:VSDQ_I_DI 1 "register_operand" "w")
***************
*** 6215,6221 ****
  
  ;; vqshl
  
! (define_insn "aarch64_<sur>q<r>shl<mode>"
    [(set (match_operand:VSDQ_I 0 "register_operand" "=w")
          (unspec:VSDQ_I
  	  [(match_operand:VSDQ_I 1 "register_operand" "w")
--- 6348,6354 ----
  
  ;; vqshl
  
! (define_insn "aarch64_<sur>q<r>shl<mode><vczle><vczbe>"
    [(set (match_operand:VSDQ_I 0 "register_operand" "=w")
          (unspec:VSDQ_I
  	  [(match_operand:VSDQ_I 1 "register_operand" "w")
***************
*** 6226,6357 ****
    [(set_attr "type" "neon_sat_shift_reg<q>")]
  )
  
- (define_expand "vec_widen_<sur>shiftl_lo_<mode>"
-   [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
- 	(unspec:<VWIDE> [(match_operand:VQW 1 "register_operand" "w")
- 			 (match_operand:SI 2
- 			   "aarch64_simd_shift_imm_bitsize_<ve_mode>" "i")]
- 			 VSHLL))]
-   "TARGET_SIMD"
-   {
-     rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, false);
-     emit_insn (gen_aarch64_<sur>shll<mode>_internal (operands[0], operands[1],
- 						     p, operands[2]));
-     DONE;
-   }
- )
- 
- (define_expand "vec_widen_<sur>shiftl_hi_<mode>"
-    [(set (match_operand:<VWIDE> 0 "register_operand")
- 	(unspec:<VWIDE> [(match_operand:VQW 1 "register_operand" "w")
- 			 (match_operand:SI 2
- 			   "immediate_operand" "i")]
- 			  VSHLL))]
-    "TARGET_SIMD"
-    {
-     rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
-     emit_insn (gen_aarch64_<sur>shll2<mode>_internal (operands[0], operands[1],
- 						      p, operands[2]));
-     DONE;
-    }
- )
- 
  ;; vshll_n
  
! (define_insn "aarch64_<sur>shll<mode>_internal"
!   [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(unspec:<VWIDE> [(vec_select:<VHALF>
! 			    (match_operand:VQW 1 "register_operand" "w")
! 			    (match_operand:VQW 2 "vect_par_cnst_lo_half" ""))
! 			 (match_operand:SI 3
! 			   "aarch64_simd_shift_imm_bitsize_<ve_mode>" "i")]
! 			 VSHLL))]
    "TARGET_SIMD"
!   {
!     if (INTVAL (operands[3]) == GET_MODE_UNIT_BITSIZE (<MODE>mode))
!       return "shll\\t%0.<Vwtype>, %1.<Vhalftype>, %3";
!     else
!       return "<sur>shll\\t%0.<Vwtype>, %1.<Vhalftype>, %3";
    }
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
! (define_insn "aarch64_<sur>shll2<mode>_internal"
!   [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(unspec:<VWIDE> [(vec_select:<VHALF>
! 			    (match_operand:VQW 1 "register_operand" "w")
! 			    (match_operand:VQW 2 "vect_par_cnst_hi_half" ""))
! 			 (match_operand:SI 3
! 			   "aarch64_simd_shift_imm_bitsize_<ve_mode>" "i")]
  			 VSHLL))]
    "TARGET_SIMD"
    {
!     if (INTVAL (operands[3]) == GET_MODE_UNIT_BITSIZE (<MODE>mode))
!       return "shll2\\t%0.<Vwtype>, %1.<Vtype>, %3";
!     else
!       return "<sur>shll2\\t%0.<Vwtype>, %1.<Vtype>, %3";
    }
-   [(set_attr "type" "neon_shift_imm_long")]
  )
  
! (define_insn "aarch64_<sur>shll_n<mode>"
!   [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(unspec:<VWIDE> [(match_operand:VD_BHSI 1 "register_operand" "w")
! 			 (match_operand:SI 2
! 			   "aarch64_simd_shift_imm_bitsize_<ve_mode>" "i")]
!                          VSHLL))]
    "TARGET_SIMD"
!   {
!     if (INTVAL (operands[2]) == GET_MODE_UNIT_BITSIZE (<MODE>mode))
!       return "shll\\t%0.<Vwtype>, %1.<Vtype>, %2";
!     else
!       return "<sur>shll\\t%0.<Vwtype>, %1.<Vtype>, %2";
    }
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
! ;; vshll_high_n
! 
! (define_insn "aarch64_<sur>shll2_n<mode>"
!   [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
! 	(unspec:<VWIDE> [(match_operand:VQW 1 "register_operand" "w")
! 			 (match_operand:SI 2 "immediate_operand" "i")]
!                          VSHLL))]
    "TARGET_SIMD"
    {
!     if (INTVAL (operands[2]) == GET_MODE_UNIT_BITSIZE (<MODE>mode))
!       return "shll2\\t%0.<Vwtype>, %1.<Vtype>, %2";
!     else
!       return "<sur>shll2\\t%0.<Vwtype>, %1.<Vtype>, %2";
    }
-   [(set_attr "type" "neon_shift_imm_long")]
  )
  
  ;; vrshr_n
  
! (define_insn "aarch64_<sur>shr_n<mode>"
    [(set (match_operand:VSDQ_I_DI 0 "register_operand" "=w")
!         (unspec:VSDQ_I_DI [(match_operand:VSDQ_I_DI 1 "register_operand" "w")
! 			   (match_operand:SI 2
! 			     "aarch64_simd_shift_imm_offset_<ve_mode>" "i")]
! 			  VRSHR_N))]
!   "TARGET_SIMD"
!   "<sur>shr\\t%<v>0<Vmtype>, %<v>1<Vmtype>, %2"
    [(set_attr "type" "neon_sat_shift_imm<q>")]
  )
  
  ;; v(r)sra_n
  
! (define_insn "aarch64_<sur>sra_n<mode>"
!   [(set (match_operand:VSDQ_I_DI 0 "register_operand" "=w")
! 	(unspec:VSDQ_I_DI [(match_operand:VSDQ_I_DI 1 "register_operand" "0")
! 		       (match_operand:VSDQ_I_DI 2 "register_operand" "w")
                         (match_operand:SI 3
! 			 "aarch64_simd_shift_imm_offset_<ve_mode>" "i")]
                        VSRA))]
    "TARGET_SIMD"
!   "<sur>sra\\t%<v>0<Vmtype>, %<v>2<Vmtype>, %3"
!   [(set_attr "type" "neon_shift_acc<q>")]
  )
  
  ;; vs<lr>i_n
--- 6359,6482 ----
    [(set_attr "type" "neon_sat_shift_reg<q>")]
  )
  
  ;; vshll_n
  
! (define_insn "aarch64_<su>shll<mode>"
!   [(set (match_operand:<VWIDE> 0 "register_operand")
! 	(ashift:<VWIDE> (ANY_EXTEND:<VWIDE>
! 			    (match_operand:VD_BHSI 1 "register_operand"))
! 			 (match_operand:<VWIDE> 2
! 			   "aarch64_simd_shll_imm_vec")))]
    "TARGET_SIMD"
!   {@ [cons: =0, 1, 2]
!      [w, w, D2] shll\t%0.<Vwtype>, %1.<Vtype>, %I2
!      [w, w, DL] <su>shll\t%0.<Vwtype>, %1.<Vtype>, %I2
    }
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
! (define_expand "aarch64_<sur>shll_n<mode>"
!   [(set (match_operand:<VWIDE> 0 "register_operand")
! 	(unspec:<VWIDE> [(match_operand:VD_BHSI 1 "register_operand")
! 			 (match_operand:SI 2
! 			   "aarch64_simd_shift_imm_bitsize_<ve_mode>")]
  			 VSHLL))]
    "TARGET_SIMD"
    {
!     rtx shft = gen_const_vec_duplicate (<VWIDE>mode, operands[2]);
!     emit_insn (gen_aarch64_<sur>shll<mode> (operands[0], operands[1], shft));
!     DONE;
    }
  )
  
! ;; vshll_high_n
! 
! (define_insn "aarch64_<su>shll2<mode>"
!   [(set (match_operand:<VWIDE> 0 "register_operand")
! 	(ashift:<VWIDE> (ANY_EXTEND:<VWIDE>
! 			  (vec_select:<VHALF>
! 			    (match_operand:VQW 1 "register_operand")
! 			    (match_operand:VQW 2 "vect_par_cnst_hi_half")))
! 			 (match_operand:<VWIDE> 3
! 			   "aarch64_simd_shll_imm_vec")))]
    "TARGET_SIMD"
!   {@ [cons: =0, 1, 2, 3]
!      [w, w, , D2] shll2\t%0.<Vwtype>, %1.<Vtype>, %I3
!      [w, w, , DL] <su>shll2\t%0.<Vwtype>, %1.<Vtype>, %I3
    }
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
! (define_expand "aarch64_<sur>shll2_n<mode>"
!   [(set (match_operand:<VWIDE> 0 "register_operand")
! 	(unspec:<VWIDE> [(match_operand:VQW 1 "register_operand")
! 			 (match_operand:SI 2
! 			   "aarch64_simd_shift_imm_bitsize_<ve_mode>")]
! 			 VSHLL))]
    "TARGET_SIMD"
    {
!     rtx shft = gen_const_vec_duplicate (<VWIDE>mode, operands[2]);
!     rtx p = aarch64_simd_vect_par_cnst_half (<MODE>mode, <nunits>, true);
!     emit_insn (gen_aarch64_<sur>shll2<mode> (operands[0], operands[1], p, shft));
!     DONE;
    }
  )
  
  ;; vrshr_n
  
! (define_insn "aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn"
    [(set (match_operand:VSDQ_I_DI 0 "register_operand" "=w")
! 	(truncate:VSDQ_I_DI
! 	  (SHIFTRT:<V2XWIDE>
! 	    (plus:<V2XWIDE>
! 	      (<SHIFTEXTEND>:<V2XWIDE>
! 		(match_operand:VSDQ_I_DI 1 "register_operand" "w"))
! 	      (match_operand:<V2XWIDE> 3 "aarch64_int_rnd_operand"))
! 	    (match_operand:VSDQ_I_DI 2 "aarch64_simd_shift_imm_<vec_or_offset>_<Vel>"))))]
!   "TARGET_SIMD
!    && aarch64_const_vec_rnd_cst_p (operands[3], operands[2])"
!   "<sra_op>rshr\t%<v>0<Vmtype>, %<v>1<Vmtype>, %2"
    [(set_attr "type" "neon_sat_shift_imm<q>")]
  )
  
+ (define_expand "aarch64_<sra_op>rshr_n<mode>"
+   [(match_operand:VSDQ_I_DI 0 "register_operand")
+    (SHIFTRT:VSDQ_I_DI
+      (match_operand:VSDQ_I_DI 1 "register_operand")
+      (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))]
+   "TARGET_SIMD"
+   {
+     /* Use this expander to create the rounding constant vector, which is
+        1 << (shift - 1).  Use wide_int here to ensure that the right TImode
+        RTL is generated when handling the DImode expanders.  */
+     int prec = GET_MODE_UNIT_PRECISION (<V2XWIDE>mode);
+     wide_int rnd_wi = wi::set_bit_in_zero (INTVAL (operands[2]) - 1, prec);
+     rtx shft = gen_int_mode (INTVAL (operands[2]), DImode);
+     rtx rnd = immed_wide_int_const (rnd_wi, GET_MODE_INNER (<V2XWIDE>mode));
+     if (VECTOR_MODE_P (<MODE>mode))
+       {
+ 	shft = gen_const_vec_duplicate (<MODE>mode, shft);
+ 	rnd = gen_const_vec_duplicate (<V2XWIDE>mode, rnd);
+       }
+ 
+     emit_insn (gen_aarch64_<sra_op>rshr_n<mode>_insn (operands[0], operands[1],
+ 						      shft, rnd));
+     DONE;
+   }
+ )
+ 
  ;; v(r)sra_n
  
! (define_insn "aarch64_<sur>sra_ndi"
!   [(set (match_operand:DI 0 "register_operand" "=w")
!        (unspec:DI [(match_operand:DI 1 "register_operand" "0")
!                       (match_operand:DI 2 "register_operand" "w")
                         (match_operand:SI 3
!                         "aarch64_simd_shift_imm_offset_di" "i")]
                        VSRA))]
    "TARGET_SIMD"
!   "<sur>sra\\t%d0, %d2, %3"
!   [(set_attr "type" "neon_shift_acc")]
  )
  
  ;; vs<lr>i_n
***************
*** 6384,6517 ****
  
  ;; vq(r)shr(u)n_n
  
! (define_insn "aarch64_<sur>q<r>shr<u>n_n<mode>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
!         (unspec:<VNARROWQ> [(match_operand:SD_HSDI 1 "register_operand" "w")
! 			    (match_operand:SI 2
! 			      "aarch64_simd_shift_imm_offset_<ve_mode>" "i")]
! 			   VQSHRN_N))]
    "TARGET_SIMD"
!   "<sur>q<r>shr<u>n\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
!   [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
! (define_insn "aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (unspec:<VNARROWQ>
! 		[(match_operand:VQN 1 "register_operand" "w")
! 		 (match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>")]
! 		VQSHRN_N)
! 	  (match_operand:<VNARROWQ> 3 "aarch64_simd_or_scalar_imm_zero")))]
!   "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "<sur>q<r>shr<u>n\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
    [(set_attr "type" "neon_shift_imm_narrow_q")]
  )
  
! (define_insn "aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (match_operand:<VNARROWQ> 3 "aarch64_simd_or_scalar_imm_zero")
! 	  (unspec:<VNARROWQ>
! 		[(match_operand:VQN 1 "register_operand" "w")
! 		 (match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>")]
! 		VQSHRN_N)))]
!   "TARGET_SIMD && BYTES_BIG_ENDIAN"
!   "<sur>q<r>shr<u>n\\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
    [(set_attr "type" "neon_shift_imm_narrow_q")]
  )
  
! (define_expand "aarch64_<sur>q<r>shr<u>n_n<mode>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
!         (unspec:<VNARROWQ> [(match_operand:VQN 1 "register_operand")
! 			    (match_operand:SI 2
! 			      "aarch64_simd_shift_imm_offset_<ve_mode>")]
! 			   VQSHRN_N))]
    "TARGET_SIMD"
    {
      operands[2] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
  						 INTVAL (operands[2]));
!     rtx tmp = gen_reg_rtx (<VNARROWQ2>mode);
      if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be (tmp,
! 		    operands[1], operands[2], CONST0_RTX (<VNARROWQ>mode)));
      else
!       emit_insn (gen_aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le (tmp,
! 		    operands[1], operands[2], CONST0_RTX (<VNARROWQ>mode)));
  
!     /* The intrinsic expects a narrow result, so emit a subreg that will get
!        optimized away as appropriate.  */
!     emit_move_insn (operands[0], lowpart_subreg (<VNARROWQ>mode, tmp,
! 						 <VNARROWQ2>mode));
      DONE;
    }
  )
  
! (define_insn "aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (unspec:<VNARROWQ> [(match_operand:VQN 2 "register_operand" "w")
! 			      (match_operand:VQN 3
! 				"aarch64_simd_shift_imm_vec_<vn_mode>")]
! 			     VQSHRN_N)))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "<sur>q<r>shr<u>n2\\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
!   [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
! (define_insn "aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
!           (unspec:<VNARROWQ> [(match_operand:VQN 2 "register_operand" "w")
! 			      (match_operand:VQN 3
! 				"aarch64_simd_shift_imm_vec_<vn_mode>")]
! 			     VQSHRN_N)
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
    "TARGET_SIMD && BYTES_BIG_ENDIAN"
!   "<sur>q<r>shr<u>n2\\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
!   [(set_attr "type" "neon_sat_shift_imm_narrow_q")]
  )
  
! (define_expand "aarch64_<sur>q<r>shr<u>n2_n<mode>"
    [(match_operand:<VNARROWQ2> 0 "register_operand")
     (match_operand:<VNARROWQ> 1 "register_operand")
!    (unspec:<VNARROWQ>
! 	[(match_operand:VQN 2 "register_operand")
! 	 (match_operand:SI 3 "aarch64_simd_shift_imm_offset_<vn_mode>")]
!         VQSHRN_N)]
    "TARGET_SIMD"
    {
      operands[3] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
  						 INTVAL (operands[3]));
! 
      if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be (operands[0],
! 				operands[1], operands[2], operands[3]));
      else
!       emit_insn (gen_aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le (operands[0],
! 				operands[1], operands[2], operands[3]));
      DONE;
    }
  )
  
  
  ;; cm(eq|ge|gt|lt|le)
  ;; Note, we have constraints for Dz and Z as different expanders
  ;; have different ideas of what should be passed to this pattern.
  
! (define_insn "aarch64_cm<optab><mode>"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w,w")
  	(neg:<V_INT_EQUIV>
  	  (COMPARISONS:<V_INT_EQUIV>
! 	    (match_operand:VDQ_I 1 "register_operand" "w,w")
! 	    (match_operand:VDQ_I 2 "aarch64_simd_reg_or_zero" "w,ZDz")
  	  )))]
    "TARGET_SIMD"
!   "@
!   cm<n_optab>\t%<v>0<Vmtype>, %<v><cmp_1><Vmtype>, %<v><cmp_2><Vmtype>
!   cm<optab>\t%<v>0<Vmtype>, %<v>1<Vmtype>, #0"
!   [(set_attr "type" "neon_compare<q>, neon_compare_zero<q>")]
  )
  
  (define_insn_and_split "aarch64_cm<optab>di"
--- 6509,7039 ----
  
  ;; vq(r)shr(u)n_n
  
! (define_insn "aarch64_<shrn_op>shrn_n<mode>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(SAT_TRUNC:<VNARROWQ>
! 	  (<TRUNC_SHIFT>:SD_HSDI
! 	    (match_operand:SD_HSDI 1 "register_operand" "w")
! 	    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))))]
    "TARGET_SIMD"
!   "<shrn_op>shrn\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
  )
  
! (define_insn "*aarch64_<shrn_op><shrn_s>shrn_n<mode>_insn<vczle><vczbe>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(ALL_TRUNC:<VNARROWQ>
! 	  (SHIFTRT:VQN
! 	    (match_operand:VQN 1 "register_operand" "w")
! 	    (match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>"))))]
!   "TARGET_SIMD && AARCH64_VALID_SHRN_OP (<ALL_TRUNC:CODE>, <SHIFTRT:CODE>)"
!   "<shrn_op>shrn\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
    [(set_attr "type" "neon_shift_imm_narrow_q")]
  )
  
! (define_expand "aarch64_<shrn_op>shrn_n<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(ALL_TRUNC:<VNARROWQ>
! 	  (<TRUNC_SHIFT>:VQN
! 	    (match_operand:VQN 1 "register_operand")
! 	    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))))]
!   "TARGET_SIMD"
!   {
!     operands[2] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 						 INTVAL (operands[2]));
!   }
! )
! 
! (define_insn "*aarch64_<shrn_op>rshrn_n<mode>_insn<vczle><vczbe>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(ALL_TRUNC:<VNARROWQ>
! 	  (<TRUNC_SHIFT>:<V2XWIDE>
! 	    (plus:<V2XWIDE>
! 	      (<TRUNCEXTEND>:<V2XWIDE>
! 	        (match_operand:VQN 1 "register_operand" "w"))
! 	      (match_operand:<V2XWIDE> 3 "aarch64_int_rnd_operand"))
! 	    (match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>"))))]
!   "TARGET_SIMD
!    && aarch64_const_vec_rnd_cst_p (operands[3], operands[2])"
!   "<shrn_op>rshrn\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
    [(set_attr "type" "neon_shift_imm_narrow_q")]
  )
  
! (define_insn "*aarch64_<shrn_op>rshrn_n<mode>_insn"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(SAT_TRUNC:<VNARROWQ>
! 	  (<TRUNC_SHIFT>:<DWI>
! 	    (plus:<DWI>
! 	      (<TRUNCEXTEND>:<DWI>
! 	        (match_operand:SD_HSDI 1 "register_operand" "w"))
! 	      (match_operand:<DWI> 3 "aarch64_int_rnd_operand"))
! 	    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))))]
!   "TARGET_SIMD
!    && aarch64_const_vec_rnd_cst_p (operands[3], operands[2])"
!   "<shrn_op>rshrn\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_expand "aarch64_<shrn_op>rshrn_n<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(SAT_TRUNC:<VNARROWQ>
! 	  (<TRUNC_SHIFT>:<V2XWIDE>
! 	    (plus:<V2XWIDE>
! 	      (<TRUNCEXTEND>:<V2XWIDE>
! 	        (match_operand:SD_HSDI 1 "register_operand"))
! 	      (match_dup 3))
! 	    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))))]
!   "TARGET_SIMD"
!   {
!     /* Use this expander to create the rounding constant vector, which is
!        1 << (shift - 1).  Use wide_int here to ensure that the right TImode
!        RTL is generated when handling the DImode expanders.  */
!     int prec = GET_MODE_UNIT_PRECISION (<V2XWIDE>mode);
!     wide_int rnd_wi = wi::set_bit_in_zero (INTVAL (operands[2]) - 1, prec);
!     operands[3] = immed_wide_int_const (rnd_wi, GET_MODE_INNER (<V2XWIDE>mode));
!   }
! )
! 
! (define_expand "aarch64_<shrn_op>rshrn_n<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(ALL_TRUNC:<VNARROWQ>
! 	  (<TRUNC_SHIFT>:<V2XWIDE>
! 	    (plus:<V2XWIDE>
! 	      (<TRUNCEXTEND>:<V2XWIDE>
! 	        (match_operand:VQN 1 "register_operand"))
! 	      (match_dup 3))
! 	    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))))]
!   "TARGET_SIMD"
!   {
!     if (<CODE> == TRUNCATE
! 	&& INTVAL (operands[2]) == GET_MODE_UNIT_BITSIZE (<VNARROWQ>mode))
!       {
! 	rtx tmp0 = aarch64_gen_shareable_zero (<MODE>mode);
! 	emit_insn (gen_aarch64_raddhn<mode> (operands[0], operands[1], tmp0));
! 	DONE;
!       }
!     /* Use this expander to create the rounding constant vector, which is
!        1 << (shift - 1).  Use wide_int here to ensure that the right TImode
!        RTL is generated when handling the DImode expanders.  */
!     int prec = GET_MODE_UNIT_PRECISION (<V2XWIDE>mode);
!     wide_int rnd_wi = wi::set_bit_in_zero (INTVAL (operands[2]) - 1, prec);
!     operands[3] = immed_wide_int_const (rnd_wi, GET_MODE_INNER (<V2XWIDE>mode));
!     operands[3] = gen_const_vec_duplicate (<V2XWIDE>mode, operands[3]);
!     operands[2] = gen_const_vec_duplicate (<MODE>mode, operands[2]);
!   }
! )
! 
! (define_insn "*aarch64_sqshrun_n<mode>_insn<vczle><vczbe>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(truncate:<VNARROWQ>
! 	  (smin:VQN
! 	    (smax:VQN
! 	      (ashiftrt:VQN
! 		(match_operand:VQN 1 "register_operand" "w")
! 		(match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>"))
! 	      (match_operand:VQN 3 "aarch64_simd_imm_zero"))
! 	    (match_operand:VQN 4 "aarch64_simd_umax_half_mode"))))]
!   "TARGET_SIMD"
!   "sqshrun\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_insn "aarch64_sqshrun_n<mode>_insn"
!   [(set (match_operand:SD_HSDI 0 "register_operand" "=w")
! 	(smin:SD_HSDI
! 	  (smax:SD_HSDI
! 	    (ashiftrt:SD_HSDI
! 	      (match_operand:SD_HSDI 1 "register_operand" "w")
! 	      (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))
! 	    (const_int 0))
! 	  (const_int <half_mask>)))]
!   "TARGET_SIMD"
!   "sqshrun\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_expand "aarch64_sqshrun_n<mode>"
!   [(match_operand:<VNARROWQ> 0 "register_operand")
!    (match_operand:SD_HSDI 1 "register_operand")
!    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>")]
!   "TARGET_SIMD"
!   {
!     rtx dst = gen_reg_rtx (<MODE>mode);
!     emit_insn (gen_aarch64_sqshrun_n<mode>_insn (dst, operands[1],
! 						 operands[2]));
!     emit_move_insn (operands[0], gen_lowpart (<VNARROWQ>mode, dst));
!     DONE;
!   }
! )
! 
! (define_expand "aarch64_sqshrun_n<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(truncate:<VNARROWQ>
! 	  (smin:VQN
! 	    (smax:VQN
! 	      (ashiftrt:VQN
! 		(match_operand:VQN 1 "register_operand")
! 		(match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))
! 	      (match_dup 3))
! 	    (match_dup 4))))]
    "TARGET_SIMD"
    {
      operands[2] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
  						 INTVAL (operands[2]));
!     operands[3] = CONST0_RTX (<MODE>mode);
!     operands[4]
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 			GET_MODE_MASK (GET_MODE_INNER (<VNARROWQ>mode)));
!   }
! )
! 
! (define_insn "*aarch64_sqrshrun_n<mode>_insn<vczle><vczbe>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
! 	(truncate:<VNARROWQ>
! 	  (smin:<V2XWIDE>
! 	    (smax:<V2XWIDE>
! 	      (ashiftrt:<V2XWIDE>
! 		(plus:<V2XWIDE>
! 		  (sign_extend:<V2XWIDE>
! 		    (match_operand:VQN 1 "register_operand" "w"))
! 		  (match_operand:<V2XWIDE> 3 "aarch64_int_rnd_operand"))
! 		(match_operand:VQN 2 "aarch64_simd_shift_imm_vec_<vn_mode>"))
! 	      (match_operand:<V2XWIDE> 4 "aarch64_simd_imm_zero"))
! 	    (match_operand:<V2XWIDE> 5 "aarch64_simd_umax_quarter_mode"))))]
!   "TARGET_SIMD
!    && aarch64_const_vec_rnd_cst_p (operands[3], operands[2])"
!   "sqrshrun\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_insn "aarch64_sqrshrun_n<mode>_insn"
!   [(set (match_operand:<DWI> 0 "register_operand" "=w")
! 	(smin:<DWI>
! 	  (smax:<DWI>
! 	    (ashiftrt:<DWI>
! 	      (plus:<DWI>
! 		(sign_extend:<DWI>
! 		  (match_operand:SD_HSDI 1 "register_operand" "w"))
! 		(match_operand:<DWI> 3 "aarch64_int_rnd_operand"))
! 	      (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))
! 	    (const_int 0))
! 	  (const_int <half_mask>)))]
!   "TARGET_SIMD
!    && aarch64_const_vec_rnd_cst_p (operands[3], operands[2])"
!   "sqrshrun\t%<vn2>0<Vmntype>, %<v>1<Vmtype>, %2"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_expand "aarch64_sqrshrun_n<mode>"
!   [(match_operand:<VNARROWQ> 0 "register_operand")
!    (match_operand:SD_HSDI 1 "register_operand")
!    (match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>")]
!   "TARGET_SIMD"
!   {
!     int prec = GET_MODE_UNIT_PRECISION (<DWI>mode);
!     wide_int rnd_wi = wi::set_bit_in_zero (INTVAL (operands[2]) - 1, prec);
!     rtx rnd = immed_wide_int_const (rnd_wi, <DWI>mode);
!     rtx dst = gen_reg_rtx (<DWI>mode);
!     emit_insn (gen_aarch64_sqrshrun_n<mode>_insn (dst, operands[1], operands[2], rnd));
!     emit_move_insn (operands[0], gen_lowpart (<VNARROWQ>mode, dst));
!     DONE;
!   }
! )
! 
! (define_expand "aarch64_sqrshrun_n<mode>"
!   [(set (match_operand:<VNARROWQ> 0 "register_operand")
! 	(truncate:<VNARROWQ>
! 	  (smin:<V2XWIDE>
! 	    (smax:<V2XWIDE>
! 	      (ashiftrt:<V2XWIDE>
! 		(plus:<V2XWIDE>
! 		  (sign_extend:<V2XWIDE>
! 		    (match_operand:VQN 1 "register_operand"))
! 		  (match_dup 3))
! 		(match_operand:SI 2 "aarch64_simd_shift_imm_offset_<ve_mode>"))
! 	      (match_dup 4))
! 	    (match_dup 5))))]
!   "TARGET_SIMD"
!   {
!     int prec = GET_MODE_UNIT_PRECISION (<V2XWIDE>mode);
!     wide_int rnd_wi = wi::set_bit_in_zero (INTVAL (operands[2]) - 1, prec);
!     operands[3] = immed_wide_int_const (rnd_wi, GET_MODE_INNER (<V2XWIDE>mode));
!     operands[3] = gen_const_vec_duplicate (<V2XWIDE>mode, operands[3]);
!     operands[2] = gen_const_vec_duplicate (<MODE>mode, operands[2]);
!     operands[4] = CONST0_RTX (<V2XWIDE>mode);
!     operands[5]
!       = gen_int_mode (GET_MODE_MASK (GET_MODE_INNER (<VNARROWQ>mode)), DImode);
!     operands[5] = gen_const_vec_duplicate (<V2XWIDE>mode, operands[5]);
!   }
! )
! 
! (define_insn "aarch64_<shrn_op><sra_op>shrn2_n<mode>_insn_le"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (ALL_TRUNC:<VNARROWQ>
! 	    (SHIFTRT:VQN
! 	      (match_operand:VQN 2 "register_operand" "w")
! 	      (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")))))]
!   "TARGET_SIMD && !BYTES_BIG_ENDIAN
!    && AARCH64_VALID_SHRN_OP (<ALL_TRUNC:CODE>, <SHIFTRT:CODE>)"
!   "<shrn_op>shrn2\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_insn "aarch64_<shrn_op><sra_op>shrn2_n<mode>_insn_be"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (ALL_TRUNC:<VNARROWQ>
! 	    (SHIFTRT:VQN
! 	      (match_operand:VQN 2 "register_operand" "w")
! 	      (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")))
! 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
!   "TARGET_SIMD && BYTES_BIG_ENDIAN
!    && AARCH64_VALID_SHRN_OP (<ALL_TRUNC:CODE>, <SHIFTRT:CODE>)"
!   "<shrn_op>shrn2\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_expand "aarch64_<shrn_op><sra_op>shrn2_n<mode>"
!   [(match_operand:<VNARROWQ2> 0 "register_operand")
!    (match_operand:<VNARROWQ> 1 "register_operand")
!    (ALL_TRUNC:<VNARROWQ>
!      (SHIFTRT:VQN (match_operand:VQN 2 "register_operand")))
!    (match_operand:SI 3 "aarch64_simd_shift_imm_offset_<vn_mode>")]
!   "TARGET_SIMD && AARCH64_VALID_SHRN_OP (<ALL_TRUNC:CODE>, <SHIFTRT:CODE>)"
!   {
!     operands[3] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 						 INTVAL (operands[3]));
! 
      if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_<shrn_op><sra_op>shrn2_n<mode>_insn_be (
! 		operands[0], operands[1], operands[2], operands[3]));
      else
!       emit_insn (gen_aarch64_<shrn_op><sra_op>shrn2_n<mode>_insn_le (
! 		operands[0], operands[1], operands[2], operands[3]));
!     DONE;
!   }
! )
  
! (define_insn "aarch64_<shrn_op>rshrn2_n<mode>_insn_le"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (ALL_TRUNC:<VNARROWQ>
! 	    (<TRUNC_SHIFT>:<V2XWIDE>
! 	      (plus:<V2XWIDE>
! 		(<TRUNCEXTEND>:<V2XWIDE>
! 		  (match_operand:VQN 2 "register_operand" "w"))
! 		(match_operand:<V2XWIDE> 4 "aarch64_int_rnd_operand"))
! 	      (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")))))]
!   "TARGET_SIMD && !BYTES_BIG_ENDIAN
!    && aarch64_const_vec_rnd_cst_p (operands[4], operands[3])"
!   "<shrn_op>rshrn2\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_insn "aarch64_<shrn_op>rshrn2_n<mode>_insn_be"
!   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
! 	(vec_concat:<VNARROWQ2>
! 	  (ALL_TRUNC:<VNARROWQ>
! 	    (<TRUNC_SHIFT>:<V2XWIDE>
! 	      (plus:<V2XWIDE>
! 		(<TRUNCEXTEND>:<V2XWIDE>
! 		  (match_operand:VQN 2 "register_operand" "w"))
! 		(match_operand:<V2XWIDE> 4 "aarch64_int_rnd_operand"))
! 	      (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>")))
! 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
!   "TARGET_SIMD && BYTES_BIG_ENDIAN
!    && aarch64_const_vec_rnd_cst_p (operands[4], operands[3])"
!   "<shrn_op>rshrn2\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
! )
! 
! (define_expand "aarch64_<shrn_op>rshrn2_n<mode>"
!   [(match_operand:<VNARROWQ2> 0 "register_operand")
!    (match_operand:<VNARROWQ> 1 "register_operand")
!    (ALL_TRUNC:<VNARROWQ> (match_operand:VQN 2 "register_operand"))
!    (match_operand:SI 3 "aarch64_simd_shift_imm_offset_<vn_mode>")]
!   "TARGET_SIMD"
!   {
!     if (<CODE> == TRUNCATE
! 	&& INTVAL (operands[3]) == GET_MODE_UNIT_BITSIZE (<VNARROWQ>mode))
!       {
! 	rtx tmp = aarch64_gen_shareable_zero (<MODE>mode);
! 	emit_insn (gen_aarch64_raddhn2<mode> (operands[0], operands[1],
! 					      operands[2], tmp));
! 	DONE;
!       }
!     /* Use this expander to create the rounding constant vector, which is
!        1 << (shift - 1).  Use wide_int here to ensure that the right TImode
!        RTL is generated when handling the DImode expanders.  */
!     int prec = GET_MODE_UNIT_PRECISION (<V2XWIDE>mode);
!     wide_int rnd_wi = wi::set_bit_in_zero (INTVAL (operands[3]) - 1, prec);
!     rtx rnd = immed_wide_int_const (rnd_wi, GET_MODE_INNER (<V2XWIDE>mode));
!     rnd = gen_const_vec_duplicate (<V2XWIDE>mode, rnd);
!     operands[3] = gen_const_vec_duplicate (<MODE>mode, operands[3]);
!     if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_<shrn_op>rshrn2_n<mode>_insn_be (operands[0],
! 							      operands[1],
! 							      operands[2],
! 							      operands[3],
! 							      rnd));
!     else
!       emit_insn (gen_aarch64_<shrn_op>rshrn2_n<mode>_insn_le (operands[0],
! 							      operands[1],
! 							      operands[2],
! 							      operands[3],
! 							      rnd));
      DONE;
    }
  )
  
! (define_insn "aarch64_sqshrun2_n<mode>_insn_le"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
! 	  (truncate:<VNARROWQ>
! 	    (smin:VQN
! 	      (smax:VQN
! 		(ashiftrt:VQN
! 		  (match_operand:VQN 2 "register_operand" "w")
! 		  (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>"))
! 		(match_operand:VQN 4 "aarch64_simd_imm_zero"))
! 	      (match_operand:VQN 5 "aarch64_simd_umax_half_mode")))))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN"
!   "sqshrun2\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
  )
  
! (define_insn "aarch64_sqshrun2_n<mode>_insn_be"
    [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
  	(vec_concat:<VNARROWQ2>
! 	  (truncate:<VNARROWQ>
! 	    (smin:VQN
! 	      (smax:VQN
! 		(ashiftrt:VQN
! 		  (match_operand:VQN 2 "register_operand" "w")
! 		  (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>"))
! 		(match_operand:VQN 4 "aarch64_simd_imm_zero"))
! 	      (match_operand:VQN 5 "aarch64_simd_umax_half_mode")))
  	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
    "TARGET_SIMD && BYTES_BIG_ENDIAN"
!   "sqshrun2\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
!   [(set_attr "type" "neon_shift_imm_narrow_q")]
  )
  
! (define_expand "aarch64_sqshrun2_n<mode>"
    [(match_operand:<VNARROWQ2> 0 "register_operand")
     (match_operand:<VNARROWQ> 1 "register_operand")
!    (match_operand:VQN 2 "register_operand")
!    (match_operand:SI 3 "aarch64_simd_shift_imm_offset_<vn_mode>")]
    "TARGET_SIMD"
    {
      operands[3] = aarch64_simd_gen_const_vector_dup (<MODE>mode,
  						 INTVAL (operands[3]));
!     rtx zeros = CONST0_RTX (<MODE>mode);
!     rtx half_umax
!       = aarch64_simd_gen_const_vector_dup (<MODE>mode,
! 			GET_MODE_MASK (GET_MODE_INNER (<VNARROWQ>mode)));
      if (BYTES_BIG_ENDIAN)
!       emit_insn (gen_aarch64_sqshrun2_n<mode>_insn_be (operands[0],
! 				operands[1], operands[2], operands[3],
! 				zeros, half_umax));
      else
!       emit_insn (gen_aarch64_sqshrun2_n<mode>_insn_le (operands[0],
! 				operands[1], operands[2], operands[3],
! 				zeros, half_umax));
      DONE;
    }
  )
  
+ (define_insn "aarch64_sqrshrun2_n<mode>_insn_le"
+   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
+ 	(vec_concat:<VNARROWQ2>
+ 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")
+ 	  (truncate:<VNARROWQ>
+ 	    (smin:<V2XWIDE>
+ 	      (smax:<V2XWIDE>
+ 		(ashiftrt:<V2XWIDE>
+ 		  (plus:<V2XWIDE>
+ 		    (sign_extend:<V2XWIDE>
+ 		      (match_operand:VQN 2 "register_operand" "w"))
+ 		    (match_operand:<V2XWIDE> 4 "aarch64_int_rnd_operand"))
+ 		  (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>"))
+ 		(match_operand:<V2XWIDE> 5 "aarch64_simd_imm_zero"))
+ 	      (match_operand:<V2XWIDE> 6 "aarch64_simd_umax_quarter_mode")))))]
+   "TARGET_SIMD && !BYTES_BIG_ENDIAN
+    && aarch64_const_vec_rnd_cst_p (operands[4], operands[3])"
+   "sqrshrun2\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
+   [(set_attr "type" "neon_shift_imm_narrow_q")]
+ )
+ 
+ (define_insn "aarch64_sqrshrun2_n<mode>_insn_be"
+   [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=w")
+ 	(vec_concat:<VNARROWQ2>
+ 	  (truncate:<VNARROWQ>
+ 	    (smin:<V2XWIDE>
+ 	      (smax:<V2XWIDE>
+ 		(ashiftrt:<V2XWIDE>
+ 		  (plus:<V2XWIDE>
+ 		    (sign_extend:<V2XWIDE>
+ 		      (match_operand:VQN 2 "register_operand" "w"))
+ 		    (match_operand:<V2XWIDE> 4 "aarch64_int_rnd_operand"))
+ 		  (match_operand:VQN 3 "aarch64_simd_shift_imm_vec_<vn_mode>"))
+ 		(match_operand:<V2XWIDE> 5 "aarch64_simd_imm_zero"))
+ 	      (match_operand:<V2XWIDE> 6 "aarch64_simd_umax_quarter_mode")))
+ 	  (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
+   "TARGET_SIMD && BYTES_BIG_ENDIAN
+    && aarch64_const_vec_rnd_cst_p (operands[4], operands[3])"
+   "sqrshrun2\t%<vn2>0.<V2ntype>, %<v>2.<Vtype>, %3"
+   [(set_attr "type" "neon_shift_imm_narrow_q")]
+ )
+ 
+ (define_expand "aarch64_sqrshrun2_n<mode>"
+   [(match_operand:<VNARROWQ2> 0 "register_operand")
+    (match_operand:<VNARROWQ> 1 "register_operand")
+    (match_operand:VQN 2 "register_operand")
+    (match_operand:SI 3 "aarch64_simd_shift_imm_offset_<vn_mode>")]
+   "TARGET_SIMD"
+   {
+     int prec = GET_MODE_UNIT_PRECISION (<V2XWIDE>mode);
+     wide_int rnd_wi = wi::set_bit_in_zero (INTVAL (operands[3]) - 1, prec);
+     rtx rnd = immed_wide_int_const (rnd_wi, GET_MODE_INNER (<V2XWIDE>mode));
+     rnd = gen_const_vec_duplicate (<V2XWIDE>mode, rnd);
+     rtx zero = CONST0_RTX (<V2XWIDE>mode);
+     rtx half_umax
+       = aarch64_simd_gen_const_vector_dup (<V2XWIDE>mode,
+ 			GET_MODE_MASK (GET_MODE_INNER (<VNARROWQ>mode)));
+     operands[3] = gen_const_vec_duplicate (<MODE>mode, operands[3]);
+     if (BYTES_BIG_ENDIAN)
+       emit_insn (gen_aarch64_sqrshrun2_n<mode>_insn_be (operands[0],
+ 				operands[1], operands[2], operands[3], rnd,
+ 				zero, half_umax));
+     else
+       emit_insn (gen_aarch64_sqrshrun2_n<mode>_insn_le (operands[0],
+ 				operands[1], operands[2], operands[3], rnd,
+ 				zero, half_umax));
+     DONE;
+   }
+ )
  
  ;; cm(eq|ge|gt|lt|le)
  ;; Note, we have constraints for Dz and Z as different expanders
  ;; have different ideas of what should be passed to this pattern.
  
! (define_insn "aarch64_cm<optab><mode><vczle><vczbe>"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand")
  	(neg:<V_INT_EQUIV>
  	  (COMPARISONS:<V_INT_EQUIV>
! 	    (match_operand:VDQ_I 1 "register_operand")
! 	    (match_operand:VDQ_I 2 "aarch64_simd_reg_or_zero")
  	  )))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2   ; attrs: type           ]
!      [ w        , w , w   ; neon_compare<q>       ] cm<n_optab>\t%<v>0<Vmtype>, %<v><cmp_1><Vmtype>, %<v><cmp_2><Vmtype>
!      [ w        , w , ZDz ; neon_compare_zero<q>  ] cm<optab>\t%<v>0<Vmtype>, %<v>1<Vmtype>, #0
!   }
  )
  
  (define_insn_and_split "aarch64_cm<optab>di"
***************
*** 6550,6571 ****
  )
  
  (define_insn "*aarch64_cm<optab>di"
!   [(set (match_operand:DI 0 "register_operand" "=w,w")
  	(neg:DI
  	  (COMPARISONS:DI
! 	    (match_operand:DI 1 "register_operand" "w,w")
! 	    (match_operand:DI 2 "aarch64_simd_reg_or_zero" "w,ZDz")
  	  )))]
    "TARGET_SIMD && reload_completed"
!   "@
!   cm<n_optab>\t%d0, %d<cmp_1>, %d<cmp_2>
!   cm<optab>\t%d0, %d1, #0"
!   [(set_attr "type" "neon_compare, neon_compare_zero")]
  )
  
  ;; cm(hs|hi)
  
! (define_insn "aarch64_cm<optab><mode>"
    [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
  	(neg:<V_INT_EQUIV>
  	  (UCOMPARISONS:<V_INT_EQUIV>
--- 7072,7093 ----
  )
  
  (define_insn "*aarch64_cm<optab>di"
!   [(set (match_operand:DI 0 "register_operand")
  	(neg:DI
  	  (COMPARISONS:DI
! 	    (match_operand:DI 1 "register_operand")
! 	    (match_operand:DI 2 "aarch64_simd_reg_or_zero")
  	  )))]
    "TARGET_SIMD && reload_completed"
!   {@ [ cons: =0 , 1 , 2   ; attrs: type        ]
!      [ w        , w , w   ; neon_compare       ] cm<n_optab>\t%d0, %d<cmp_1>, %d<cmp_2>
!      [ w        , w , ZDz ; neon_compare_zero  ] cm<optab>\t%d0, %d1, #0
!   }
  )
  
  ;; cm(hs|hi)
  
! (define_insn "aarch64_cm<optab><mode><vczle><vczbe>"
    [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
  	(neg:<V_INT_EQUIV>
  	  (UCOMPARISONS:<V_INT_EQUIV>
***************
*** 6632,6638 ****
  ;; which is rewritten by simplify_rtx as
  ;; plus (eq (and x y) 0) -1.
  
! (define_insn "aarch64_cmtst<mode>"
    [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
  	(plus:<V_INT_EQUIV>
  	  (eq:<V_INT_EQUIV>
--- 7154,7160 ----
  ;; which is rewritten by simplify_rtx as
  ;; plus (eq (and x y) 0) -1.
  
! (define_insn "aarch64_cmtst<mode><vczle><vczbe>"
    [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
  	(plus:<V_INT_EQUIV>
  	  (eq:<V_INT_EQUIV>
***************
*** 6651,6657 ****
  ;; not (neq (eq x 0)) in which case you rewrite it to
  ;; a comparison against itself
  
! (define_insn "*aarch64_cmtst_same_<mode>"
    [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
  	(plus:<V_INT_EQUIV>
  	  (eq:<V_INT_EQUIV>
--- 7173,7179 ----
  ;; not (neq (eq x 0)) in which case you rewrite it to
  ;; a comparison against itself
  
! (define_insn "*aarch64_cmtst_same_<mode><vczle><vczbe>"
    [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
  	(plus:<V_INT_EQUIV>
  	  (eq:<V_INT_EQUIV>
***************
*** 6702,6708 ****
    [(set_attr "type" "neon_tst,multiple")]
  )
  
! (define_insn "*aarch64_cmtstdi"
    [(set (match_operand:DI 0 "register_operand" "=w")
  	(neg:DI
  	  (ne:DI
--- 7224,7230 ----
    [(set_attr "type" "neon_tst,multiple")]
  )
  
! (define_insn "*aarch64_cmtstdi<vczle><vczbe>"
    [(set (match_operand:DI 0 "register_operand" "=w")
  	(neg:DI
  	  (ne:DI
***************
*** 6717,6733 ****
  
  ;; fcm(eq|ge|gt|le|lt)
  
! (define_insn "aarch64_cm<optab><mode>"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w,w")
  	(neg:<V_INT_EQUIV>
  	  (COMPARISONS:<V_INT_EQUIV>
! 	    (match_operand:VHSDF_HSDF 1 "register_operand" "w,w")
! 	    (match_operand:VHSDF_HSDF 2 "aarch64_simd_reg_or_zero" "w,YDz")
  	  )))]
    "TARGET_SIMD"
!   "@
!   fcm<n_optab>\t%<v>0<Vmtype>, %<v><cmp_1><Vmtype>, %<v><cmp_2><Vmtype>
!   fcm<optab>\t%<v>0<Vmtype>, %<v>1<Vmtype>, 0"
    [(set_attr "type" "neon_fp_compare_<stype><q>")]
  )
  
--- 7239,7256 ----
  
  ;; fcm(eq|ge|gt|le|lt)
  
! (define_insn "aarch64_cm<optab><mode><vczle><vczbe>"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand")
  	(neg:<V_INT_EQUIV>
  	  (COMPARISONS:<V_INT_EQUIV>
! 	    (match_operand:VHSDF_HSDF 1 "register_operand")
! 	    (match_operand:VHSDF_HSDF 2 "aarch64_simd_reg_or_zero")
  	  )))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2    ]
!      [ w        , w , w    ] fcm<n_optab>\t%<v>0<Vmtype>, %<v><cmp_1><Vmtype>, %<v><cmp_2><Vmtype>
!      [ w        , w , YDz  ] fcm<optab>\t%<v>0<Vmtype>, %<v>1<Vmtype>, 0
!   }
    [(set_attr "type" "neon_fp_compare_<stype><q>")]
  )
  
***************
*** 6735,6741 ****
  ;; Note we can also handle what would be fac(le|lt) by
  ;; generating fac(ge|gt).
  
! (define_insn "aarch64_fac<optab><mode>"
    [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
  	(neg:<V_INT_EQUIV>
  	  (FAC_COMPARISONS:<V_INT_EQUIV>
--- 7258,7264 ----
  ;; Note we can also handle what would be fac(le|lt) by
  ;; generating fac(ge|gt).
  
! (define_insn "aarch64_fac<optab><mode><vczle><vczbe>"
    [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
  	(neg:<V_INT_EQUIV>
  	  (FAC_COMPARISONS:<V_INT_EQUIV>
***************
*** 6751,6775 ****
  
  ;; addp
  
! (define_insn "aarch64_addp<mode>"
!   [(set (match_operand:VDQ_I 0 "register_operand" "=w")
!         (unspec:VDQ_I
!           [(match_operand:VDQ_I 1 "register_operand" "w")
! 	   (match_operand:VDQ_I 2 "register_operand" "w")]
!           UNSPEC_ADDP))]
!   "TARGET_SIMD"
    "addp\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>"
    [(set_attr "type" "neon_reduc_add<q>")]
  )
  
! (define_insn "aarch64_addpdi"
!   [(set (match_operand:DI 0 "register_operand" "=w")
!         (unspec:DI
!           [(match_operand:V2DI 1 "register_operand" "w")]
!           UNSPEC_ADDP))]
    "TARGET_SIMD"
!   "addp\t%d0, %1.2d"
!   [(set_attr "type" "neon_reduc_add")]
  )
  
  ;; sqrt
--- 7274,7374 ----
  
  ;; addp
  
! ;; ADDP with two registers semantically concatenates them and performs
! ;; a pairwise addition on the result.  For 128-bit input modes represent this
! ;; as a concatentation of the pairwise addition results of the two input
! ;; registers.  This allow us to avoid using intermediate 256-bit modes.
! (define_insn "aarch64_addp<mode>_insn"
!   [(set (match_operand:VQ_I 0 "register_operand" "=w")
! 	(vec_concat:VQ_I
! 	  (plus:<VHALF>
! 	    (vec_select:<VHALF>
! 	      (match_operand:VQ_I 1 "register_operand" "w")
! 	      (match_operand:VQ_I 3 "vect_par_cnst_even_or_odd_half"))
! 	    (vec_select:<VHALF>
! 	      (match_dup 1)
! 	      (match_operand:VQ_I 4 "vect_par_cnst_even_or_odd_half")))
! 	  (plus:<VHALF>
! 	    (vec_select:<VHALF>
! 	      (match_operand:VQ_I 2 "register_operand" "w")
! 	      (match_dup 3))
! 	    (vec_select:<VHALF>
! 	      (match_dup 2)
! 	      (match_dup 4)))))]
!   "TARGET_SIMD && !rtx_equal_p (operands[3], operands[4])"
    "addp\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>"
    [(set_attr "type" "neon_reduc_add<q>")]
  )
  
! ;; For 64-bit input modes an ADDP is represented as a concatentation
! ;; of the input registers into an 128-bit register which is then fed
! ;; into a pairwise add.  That way we avoid having to create intermediate
! ;; 32-bit vector modes.
! (define_insn "aarch64_addp<mode><vczle><vczbe>_insn"
!   [(set (match_operand:VD_BHSI 0 "register_operand" "=w")
! 	(plus:VD_BHSI
! 	  (vec_select:VD_BHSI
! 	    (vec_concat:<VDBL>
! 	      (match_operand:VD_BHSI 1 "register_operand" "w")
! 	      (match_operand:VD_BHSI 2 "register_operand" "w"))
! 	    (match_operand:<VDBL> 3 "vect_par_cnst_even_or_odd_half"))
! 	  (vec_select:VD_BHSI
! 	    (vec_concat:<VDBL>
! 	      (match_dup 1)
! 	      (match_dup 2))
! 	    (match_operand:<VDBL> 4 "vect_par_cnst_even_or_odd_half"))))]
!   "TARGET_SIMD && !rtx_equal_p (operands[3], operands[4])"
!   "addp\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>"
!   [(set_attr "type" "neon_reduc_add<q>")]
! )
! 
! ;; A common usecase of 64-bit ADDP is to have both operands come from the same
! ;; 128-bit vector and produce the pairwise addition results in the lower half.
! ;; Split into the 128-bit ADDP form and extract the low half.
! (define_insn_and_split "*aarch64_addp_same_reg<mode>"
!   [(set (match_operand:<VHALF> 0 "register_operand" "=w")
! 	(plus:<VHALF>
! 	  (vec_select:<VHALF>
! 	    (match_operand:VQ_I 1 "register_operand" "w")
! 	    (match_operand:VQ_I 2 "vect_par_cnst_even_or_odd_half"))
! 	  (vec_select:<VHALF>
! 	    (match_dup 1)
! 	    (match_operand:VQ_I 3 "vect_par_cnst_even_or_odd_half"))))]
!   "TARGET_SIMD && !rtx_equal_p (operands[2], operands[3])"
!   "#"
!   "&& 1"
!   [(const_int 0)]
!   {
!     rtx scratch;
!     if (can_create_pseudo_p ())
!       scratch = gen_reg_rtx (<MODE>mode);
!     else
!       scratch = lowpart_subreg (<MODE>mode, operands[0], <VHALF>mode);
! 
!     emit_insn (gen_aarch64_addp<mode>_insn (scratch, operands[1], operands[1],
! 					    operands[2], operands[3]));
!     emit_move_insn (operands[0], gen_lowpart (<VHALF>mode, scratch));
!     DONE;
!   }
! )
! 
! (define_expand "aarch64_addp<mode>"
!   [(match_operand:VDQ_I 0 "register_operand")
!    (match_operand:VDQ_I 1 "register_operand")
!    (match_operand:VDQ_I 2 "register_operand")]
    "TARGET_SIMD"
!   {
!     int nunits = GET_MODE_NUNITS (<MODE>mode).to_constant ();
!     if (known_eq (GET_MODE_BITSIZE (<MODE>mode), 128))
!       nunits /= 2;
!     rtx par_even = aarch64_gen_stepped_int_parallel (nunits, 0, 2);
!     rtx par_odd = aarch64_gen_stepped_int_parallel (nunits, 1, 2);
!     if (BYTES_BIG_ENDIAN)
!       std::swap (operands[1], operands[2]);
!     emit_insn (gen_aarch64_addp<mode>_insn (operands[0], operands[1],
! 					    operands[2], par_even, par_odd));
!     DONE;
!   }
  )
  
  ;; sqrt
***************
*** 6783,6789 ****
      DONE;
  })
  
! (define_insn "*sqrt<mode>2"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
  	(sqrt:VHSDF (match_operand:VHSDF 1 "register_operand" "w")))]
    "TARGET_SIMD"
--- 7382,7388 ----
      DONE;
  })
  
! (define_insn "*sqrt<mode>2<vczle><vczbe>"
    [(set (match_operand:VHSDF 0 "register_operand" "=w")
  	(sqrt:VHSDF (match_operand:VHSDF 1 "register_operand" "w")))]
    "TARGET_SIMD"
***************
*** 7093,7098 ****
--- 7692,7762 ----
    DONE;
  })
  
+ ;; Patterns for rcpc3 vector lane loads and stores.
+ 
+ (define_insn "aarch64_vec_stl1_lanes<mode>_lane<Vel>"
+   [(set (match_operand:BLK 0 "aarch64_simd_struct_operand" "=Q")
+ 	(unspec:BLK [(match_operand:V12DIF 1 "register_operand" "w")
+ 		     (match_operand:SI 2 "immediate_operand" "i")]
+ 		     UNSPEC_STL1_LANE))]
+   "TARGET_RCPC3"
+   {
+     operands[2] = aarch64_endian_lane_rtx (<MODE>mode,
+ 					   INTVAL (operands[2]));
+     return "stl1\\t{%S1.<Vetype>}[%2], %0";
+   }
+   [(set_attr "type" "neon_store2_one_lane")]
+ )
+ 
+ (define_expand "aarch64_vec_stl1_lane<mode>"
+  [(match_operand:DI 0 "register_operand")
+   (match_operand:V12DIF 1 "register_operand")
+   (match_operand:SI 2 "immediate_operand")]
+   "TARGET_RCPC3"
+ {
+   rtx mem = gen_rtx_MEM (BLKmode, operands[0]);
+   set_mem_size (mem, GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)));
+ 
+   aarch64_simd_lane_bounds (operands[2], 0,
+ 			    GET_MODE_NUNITS (<MODE>mode).to_constant (), NULL);
+   emit_insn (gen_aarch64_vec_stl1_lanes<mode>_lane<Vel> (mem,
+ 					operands[1], operands[2]));
+   DONE;
+ })
+ 
+ (define_insn "aarch64_vec_ldap1_lanes<mode>_lane<Vel>"
+   [(set (match_operand:V12DIF 0 "register_operand" "=w")
+ 	(unspec:V12DIF [
+ 		(match_operand:BLK 1 "aarch64_simd_struct_operand" "Q")
+ 		(match_operand:V12DIF 2 "register_operand" "0")
+ 		(match_operand:SI 3 "immediate_operand" "i")]
+ 		UNSPEC_LDAP1_LANE))]
+   "TARGET_RCPC3"
+   {
+     operands[3] = aarch64_endian_lane_rtx (<MODE>mode,
+ 					   INTVAL (operands[3]));
+     return "ldap1\\t{%S0.<Vetype>}[%3], %1";
+   }
+   [(set_attr "type" "neon_load2_one_lane")]
+ )
+ 
+ (define_expand "aarch64_vec_ldap1_lane<mode>"
+   [(match_operand:V12DIF 0 "register_operand")
+ 	(match_operand:DI 1 "register_operand")
+ 	(match_operand:V12DIF 2 "register_operand")
+ 	(match_operand:SI 3 "immediate_operand")]
+   "TARGET_RCPC3"
+ {
+   rtx mem = gen_rtx_MEM (BLKmode, operands[1]);
+   set_mem_size (mem, GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)));
+ 
+   aarch64_simd_lane_bounds (operands[3], 0,
+ 			    GET_MODE_NUNITS (<MODE>mode).to_constant (), NULL);
+   emit_insn (gen_aarch64_vec_ldap1_lanes<mode>_lane<Vel> (operands[0],
+ 				mem, operands[2], operands[3]));
+   DONE;
+ })
+ 
  (define_insn_and_split "aarch64_rev_reglist<mode>"
  [(set (match_operand:VSTRUCT_QD 0 "register_operand" "=&w")
  	(unspec:VSTRUCT_QD
***************
*** 7254,7286 ****
  )
  
  (define_insn "*aarch64_mov<mode>"
!   [(set (match_operand:VSTRUCT_QD 0 "aarch64_simd_nonimmediate_operand" "=w,Utv,w")
! 	(match_operand:VSTRUCT_QD 1 "aarch64_simd_general_operand" " w,w,Utv"))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   "@
!    #
!    st1\\t{%S1.<Vtype> - %<Vendreg>1.<Vtype>}, %0
!    ld1\\t{%S0.<Vtype> - %<Vendreg>0.<Vtype>}, %1"
!   [(set_attr "type" "multiple,neon_store<nregs>_<nregs>reg_q,\
! 		     neon_load<nregs>_<nregs>reg_q")
!    (set_attr "length" "<insn_count>,4,4")]
  )
  
  (define_insn "*aarch64_mov<mode>"
!   [(set (match_operand:VSTRUCT 0 "aarch64_simd_nonimmediate_operand" "=w,Utv,w")
! 	(match_operand:VSTRUCT 1 "aarch64_simd_general_operand" " w,w,Utv"))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   "@
!    #
!    st1\\t{%S1.16b - %<Vendreg>1.16b}, %0
!    ld1\\t{%S0.16b - %<Vendreg>0.16b}, %1"
!   [(set_attr "type" "multiple,neon_store<nregs>_<nregs>reg_q,\
! 		     neon_load<nregs>_<nregs>reg_q")
!    (set_attr "length" "<insn_count>,4,4")]
  )
  
  (define_insn "*aarch64_movv8di"
--- 7918,7946 ----
  )
  
  (define_insn "*aarch64_mov<mode>"
!   [(set (match_operand:VSTRUCT_QD 0 "aarch64_simd_nonimmediate_operand")
! 	(match_operand:VSTRUCT_QD 1 "aarch64_simd_general_operand"))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   {@ [ cons: =0 , 1   ; attrs: type                    , length        ]
!      [ w        , w   ; multiple                       , <insn_count>  ] #
!      [ Utv      , w   ; neon_store<nregs>_<nregs>reg_q , 4             ] st1\t{%S1.<Vtype> - %<Vendreg>1.<Vtype>}, %0
!      [ w        , Utv ; neon_load<nregs>_<nregs>reg_q  , 4             ] ld1\t{%S0.<Vtype> - %<Vendreg>0.<Vtype>}, %1
!   }
  )
  
  (define_insn "*aarch64_mov<mode>"
!   [(set (match_operand:VSTRUCT 0 "aarch64_simd_nonimmediate_operand")
! 	(match_operand:VSTRUCT 1 "aarch64_simd_general_operand"))]
    "TARGET_SIMD && !BYTES_BIG_ENDIAN
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   {@ [ cons: =0 , 1   ; attrs: type                    , length        ]
!      [ w        , w   ; multiple                       , <insn_count>  ] #
!      [ Utv      , w   ; neon_store<nregs>_<nregs>reg_q , 4             ] st1\t{%S1.16b - %<Vendreg>1.16b}, %0
!      [ w        , Utv ; neon_load<nregs>_<nregs>reg_q  , 4             ] ld1\t{%S0.16b - %<Vendreg>0.16b}, %1
!   }
  )
  
  (define_insn "*aarch64_movv8di"
***************
*** 7313,7362 ****
  )
  
  (define_insn "*aarch64_be_mov<mode>"
!   [(set (match_operand:VSTRUCT_2D 0 "nonimmediate_operand" "=w,m,w")
! 	(match_operand:VSTRUCT_2D 1 "general_operand"      " w,w,m"))]
    "TARGET_FLOAT
     && (!TARGET_SIMD || BYTES_BIG_ENDIAN)
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   "@
!    #
!    stp\\t%d1, %R1, %0
!    ldp\\t%d0, %R0, %1"
!   [(set_attr "type" "multiple,neon_stp,neon_ldp")
!    (set_attr "length" "8,4,4")]
  )
  
  (define_insn "*aarch64_be_mov<mode>"
!   [(set (match_operand:VSTRUCT_2Q 0 "nonimmediate_operand" "=w,m,w")
! 	(match_operand:VSTRUCT_2Q 1 "general_operand"      " w,w,m"))]
    "TARGET_FLOAT
     && (!TARGET_SIMD || BYTES_BIG_ENDIAN)
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   "@
!    #
!    stp\\t%q1, %R1, %0
!    ldp\\t%q0, %R0, %1"
!   [(set_attr "type" "multiple,neon_stp_q,neon_ldp_q")
!    (set_attr "arch" "simd,*,*")
!    (set_attr "length" "8,4,4")]
  )
  
  (define_insn "*aarch64_be_movoi"
!   [(set (match_operand:OI 0 "nonimmediate_operand" "=w,m,w")
! 	(match_operand:OI 1 "general_operand"      " w,w,m"))]
    "TARGET_FLOAT
     && (!TARGET_SIMD || BYTES_BIG_ENDIAN)
     && (register_operand (operands[0], OImode)
         || register_operand (operands[1], OImode))"
!   "@
!    #
!    stp\\t%q1, %R1, %0
!    ldp\\t%q0, %R0, %1"
!   [(set_attr "type" "multiple,neon_stp_q,neon_ldp_q")
!    (set_attr "arch" "simd,*,*")
!    (set_attr "length" "8,4,4")]
  )
  
  (define_insn "*aarch64_be_mov<mode>"
--- 7973,8017 ----
  )
  
  (define_insn "*aarch64_be_mov<mode>"
!   [(set (match_operand:VSTRUCT_2D 0 "nonimmediate_operand")
! 	(match_operand:VSTRUCT_2D 1 "general_operand"))]
    "TARGET_FLOAT
     && (!TARGET_SIMD || BYTES_BIG_ENDIAN)
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   {@ [ cons: =0 , 1 ; attrs: type , length ]
!      [ w        , w ; multiple    , 8      ] #
!      [ m        , w ; neon_stp    , 4      ] stp\t%d1, %R1, %0
!      [ w        , m ; neon_ldp    , 4      ] ldp\t%d0, %R0, %1
!   }
  )
  
  (define_insn "*aarch64_be_mov<mode>"
!   [(set (match_operand:VSTRUCT_2Q 0 "nonimmediate_operand")
! 	(match_operand:VSTRUCT_2Q 1 "general_operand"))]
    "TARGET_FLOAT
     && (!TARGET_SIMD || BYTES_BIG_ENDIAN)
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   {@ [ cons: =0 , 1 ; attrs: type , arch , length ]
!      [ w        , w ; multiple    , simd , 8      ] #
!      [ m        , w ; neon_stp_q  , *    , 4      ] stp\t%q1, %R1, %0
!      [ w        , m ; neon_ldp_q  , *    , 4      ] ldp\t%q0, %R0, %1
!   }
  )
  
  (define_insn "*aarch64_be_movoi"
!   [(set (match_operand:OI 0 "nonimmediate_operand")
! 	(match_operand:OI 1 "general_operand"))]
    "TARGET_FLOAT
     && (!TARGET_SIMD || BYTES_BIG_ENDIAN)
     && (register_operand (operands[0], OImode)
         || register_operand (operands[1], OImode))"
!   {@ [ cons: =0 , 1 ; attrs: type , arch , length ]
!      [ w        , w ; multiple    , simd , 8      ] #
!      [ m        , w ; neon_stp_q  , *    , 4      ] stp\t%q1, %R1, %0
!      [ w        , m ; neon_ldp_q  , *    , 4      ] ldp\t%q0, %R0, %1
!   }
  )
  
  (define_insn "*aarch64_be_mov<mode>"
***************
*** 7566,7576 ****
  	   || (memory_operand (operands[0], V8DImode)
  	       && register_operand (operands[1], V8DImode)))
      {
!       for (int offset = 0; offset < 64; offset += 16)
! 	emit_move_insn (simplify_gen_subreg (TImode, operands[0],
! 					     V8DImode, offset),
! 			simplify_gen_subreg (TImode, operands[1],
! 					     V8DImode, offset));
        DONE;
      }
    else
--- 8221,8244 ----
  	   || (memory_operand (operands[0], V8DImode)
  	       && register_operand (operands[1], V8DImode)))
      {
!       /* V8DI only guarantees 8-byte alignment, whereas TImode requires 16.  */
!       auto mode = STRICT_ALIGNMENT ? DImode : TImode;
!       int increment = GET_MODE_SIZE (mode);
!       std::pair<rtx, rtx> last_pair = {};
!       for (int offset = 0; offset < 64; offset += increment)
!         {
! 	  std::pair<rtx, rtx> pair = {
! 	    simplify_gen_subreg (mode, operands[0], V8DImode, offset),
! 	    simplify_gen_subreg (mode, operands[1], V8DImode, offset)
! 	  };
! 	  if (register_operand (pair.first, mode)
! 	      && reg_overlap_mentioned_p (pair.first, pair.second))
! 	    last_pair = pair;
! 	  else
! 	    emit_move_insn (pair.first, pair.second);
!         }
!       if (last_pair.first)
! 	emit_move_insn (last_pair.first, last_pair.second);
        DONE;
      }
    else
***************
*** 7840,7846 ****
  ;; This instruction's pattern is generated directly by
  ;; aarch64_expand_vec_perm_const, so any changes to the pattern would
  ;; need corresponding changes there.
! (define_insn "aarch64_<PERMUTE:perm_insn><mode>"
    [(set (match_operand:VALL_F16 0 "register_operand" "=w")
  	(unspec:VALL_F16 [(match_operand:VALL_F16 1 "register_operand" "w")
  			  (match_operand:VALL_F16 2 "register_operand" "w")]
--- 8508,8514 ----
  ;; This instruction's pattern is generated directly by
  ;; aarch64_expand_vec_perm_const, so any changes to the pattern would
  ;; need corresponding changes there.
! (define_insn "aarch64_<PERMUTE:perm_insn><mode><vczle><vczbe>"
    [(set (match_operand:VALL_F16 0 "register_operand" "=w")
  	(unspec:VALL_F16 [(match_operand:VALL_F16 1 "register_operand" "w")
  			  (match_operand:VALL_F16 2 "register_operand" "w")]
***************
*** 7850,7855 ****
--- 8518,8535 ----
    [(set_attr "type" "neon_permute<q>")]
  )
  
+ ;; ZIP1 ignores the contents of the upper halves of the registers,
+ ;; so we can describe 128-bit operations in terms of 64-bit inputs.
+ (define_insn "aarch64_zip1<mode>_low"
+   [(set (match_operand:VQ 0 "register_operand" "=w")
+ 	(unspec:VQ [(match_operand:<VHALF> 1 "register_operand" "w")
+ 		    (match_operand:<VHALF> 2 "register_operand" "w")]
+ 		   UNSPEC_ZIP1))]
+   "TARGET_SIMD"
+   "zip1\t%0.<Vtype>, %1.<Vtype>, %2.<Vtype>"
+   [(set_attr "type" "neon_permute_q")]
+ )
+ 
  ;; This instruction's pattern is generated directly by
  ;; aarch64_expand_vec_perm_const, so any changes to the pattern would
  ;; need corresponding changes there.  Note that the immediate (third)
***************
*** 7872,7878 ****
  ;; This instruction's pattern is generated directly by
  ;; aarch64_expand_vec_perm_const, so any changes to the pattern would
  ;; need corresponding changes there.
! (define_insn "aarch64_rev<REVERSE:rev_op><mode>"
    [(set (match_operand:VALL_F16 0 "register_operand" "=w")
  	(unspec:VALL_F16 [(match_operand:VALL_F16 1 "register_operand" "w")]
                      REVERSE))]
--- 8552,8558 ----
  ;; This instruction's pattern is generated directly by
  ;; aarch64_expand_vec_perm_const, so any changes to the pattern would
  ;; need corresponding changes there.
! (define_insn "aarch64_rev<REVERSE:rev_op><mode><vczle><vczbe>"
    [(set (match_operand:VALL_F16 0 "register_operand" "=w")
  	(unspec:VALL_F16 [(match_operand:VALL_F16 1 "register_operand" "w")]
                      REVERSE))]
***************
*** 8091,8098 ****
    "TARGET_SIMD"
  {
    int start = INTVAL (operands[2]);
!   if (start != 0 && start != <nunits> / 2)
!     FAIL;
    rtx sel = aarch64_gen_stepped_int_parallel (<nunits> / 2, start, 1);
    emit_insn (gen_aarch64_get_half<mode> (operands[0], operands[1], sel));
    DONE;
--- 8771,8778 ----
    "TARGET_SIMD"
  {
    int start = INTVAL (operands[2]);
!   gcc_assert (start == 0 || start == 1);
!   start *= <nunits> / 2;
    rtx sel = aarch64_gen_stepped_int_parallel (<nunits> / 2, start, 1);
    emit_insn (gen_aarch64_get_half<mode> (operands[0], operands[1], sel));
    DONE;
***************
*** 9015,9025 ****
  )
  
  ;; Sign- or zero-extend a 64-bit integer vector to a 128-bit vector.
! (define_insn "<optab><Vnarrowq><mode>2"
    [(set (match_operand:VQN 0 "register_operand" "=w")
  	(ANY_EXTEND:VQN (match_operand:<VNARROWQ> 1 "register_operand" "w")))]
    "TARGET_SIMD"
    "<su>xtl\t%0.<Vtype>, %1.<Vntype>"
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
--- 9695,9719 ----
  )
  
  ;; Sign- or zero-extend a 64-bit integer vector to a 128-bit vector.
! (define_insn_and_split "<optab><Vnarrowq><mode>2"
    [(set (match_operand:VQN 0 "register_operand" "=w")
  	(ANY_EXTEND:VQN (match_operand:<VNARROWQ> 1 "register_operand" "w")))]
    "TARGET_SIMD"
    "<su>xtl\t%0.<Vtype>, %1.<Vntype>"
+   "&& <CODE> == ZERO_EXTEND
+    && aarch64_split_simd_shift_p (insn)"
+   [(const_int 0)]
+   {
+     /* On many cores, it is cheaper to implement UXTL using a ZIP1 with zero,
+        provided that the cost of the zero can be amortized over several
+        operations.  We'll later recombine the zero and zip if there are
+        not sufficient uses of the zero to make the split worthwhile.  */
+     rtx res = simplify_gen_subreg (<VNARROWQ2>mode, operands[0],
+ 				   <MODE>mode, 0);
+     rtx zero = aarch64_gen_shareable_zero (<VNARROWQ>mode);
+     emit_insn (gen_aarch64_zip1<Vnarrowq2>_low (res, operands[1], zero));
+     DONE;
+   }
    [(set_attr "type" "neon_shift_imm_long")]
  )
  
***************
*** 9031,9037 ****
  )
  
  ;; Truncate a 128-bit integer vector to a 64-bit vector.
! (define_insn "trunc<mode><Vnarrowq>2"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
  	(truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand" "w")))]
    "TARGET_SIMD"
--- 9725,9731 ----
  )
  
  ;; Truncate a 128-bit integer vector to a 64-bit vector.
! (define_insn "trunc<mode><Vnarrowq>2<vczle><vczbe>"
    [(set (match_operand:<VNARROWQ> 0 "register_operand" "=w")
  	(truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand" "w")))]
    "TARGET_SIMD"
***************
*** 9039,9044 ****
--- 9733,9747 ----
    [(set_attr "type" "neon_move_narrow_q")]
  )
  
+ ;; Expander for the intrinsics that only takes one mode unlike the two-mode
+ ;; trunc optab.
+ (define_expand "aarch64_xtn<mode>"
+   [(set (match_operand:<VNARROWQ> 0 "register_operand")
+        (truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand")))]
+   "TARGET_SIMD"
+   {}
+ )
+ 
  (define_insn "aarch64_bfdot<mode>"
    [(set (match_operand:VDQSF 0 "register_operand" "=w")
  	(plus:VDQSF
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sme.md gcc-14.1.0/gcc/config/aarch64/aarch64-sme.md
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sme.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sme.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1942 ----
+ ;; Machine description for AArch64 SME.
+ ;; Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ ;;
+ ;; This file is part of GCC.
+ ;;
+ ;; GCC is free software; you can redistribute it and/or modify it
+ ;; under the terms of the GNU General Public License as published by
+ ;; the Free Software Foundation; either version 3, or (at your option)
+ ;; any later version.
+ ;;
+ ;; GCC is distributed in the hope that it will be useful, but
+ ;; WITHOUT ANY WARRANTY; without even the implied warranty of
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ ;; General Public License for more details.
+ ;;
+ ;; You should have received a copy of the GNU General Public License
+ ;; along with GCC; see the file COPYING3.  If not see
+ ;; <http://www.gnu.org/licenses/>.
+ 
+ ;; The file is organised into the following sections (search for the full
+ ;; line):
+ ;;
+ ;; == State management
+ ;; ---- Test current state
+ ;; ---- PSTATE.SM management
+ ;; ---- PSTATE.ZA management
+ ;;
+ ;; == Loads, stores and moves
+ ;; ---- Single-vector loads
+ ;; ---- Table loads
+ ;; ---- Single-vector stores
+ ;; ---- Table stores
+ ;; ---- Single-vector moves
+ ;; ---- Multi-vector moves
+ ;; ---- Zeroing
+ ;;
+ ;; == Binary arithmetic
+ ;; ---- Binary arithmetic on ZA tile
+ ;; ---- Binary arithmetic on ZA slice
+ ;; ---- Binary arithmetic, writing to ZA slice
+ ;;
+ ;; == Ternary arithmetic
+ ;; ---- [INT] Dot product
+ ;; ---- [INT] Ternary widening arithmetic on ZA slice
+ ;; ---- [INT] Sum of outer products
+ ;; ---- [FP] Dot product
+ ;; ---- [FP] Ternary arithmetic on ZA slice
+ ;; ---- [FP] Ternary widening arithmetic on ZA slice
+ ;; ---- [FP] Sum of outer products
+ ;;
+ ;; == Table lookup
+ ;; ---- Table lookup
+ 
+ ;; =========================================================================
+ ;; == State management
+ ;; =========================================================================
+ ;;
+ ;; Many of the instructions in this section are only valid when SME is
+ ;; present.  However, they don't have a TARGET_SME condition since
+ ;; (a) they are only emitted under direct control of aarch64 code and
+ ;; (b) they are sometimes used conditionally, particularly in streaming-
+ ;; compatible code.
+ ;;
+ ;; =========================================================================
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Test current state
+ ;; -------------------------------------------------------------------------
+ 
+ (define_c_enum "unspec" [
+   UNSPEC_OLD_VG_SAVED
+   UNSPEC_UPDATE_VG
+   UNSPEC_GET_SME_STATE
+   UNSPEC_READ_SVCR
+ ])
+ 
+ ;; A marker instruction to say that the old value of the DWARF VG register
+ ;; has been saved to the stack, for CFI purposes.  Operand 0 is the old
+ ;; value of the register and operand 1 is the save slot.
+ (define_insn "aarch64_old_vg_saved"
+   [(set (reg:DI VG_REGNUM)
+ 	(unspec:DI [(match_operand 0)
+ 		    (match_operand 1)] UNSPEC_OLD_VG_SAVED))]
+   ""
+   ""
+   [(set_attr "type" "no_insn")]
+ )
+ 
+ ;; A marker to indicate places where a call temporarily changes VG.
+ (define_insn "aarch64_update_vg"
+   [(set (reg:DI VG_REGNUM)
+ 	(unspec:DI [(reg:DI VG_REGNUM)] UNSPEC_UPDATE_VG))]
+   ""
+   ""
+   [(set_attr "type" "no_insn")]
+ )
+ 
+ (define_insn "aarch64_get_sme_state"
+   [(set (reg:TI R0_REGNUM)
+ 	(unspec_volatile:TI [(const_int 0)] UNSPEC_GET_SME_STATE))
+    (clobber (reg:DI R16_REGNUM))
+    (clobber (reg:DI R17_REGNUM))
+    (clobber (reg:DI R18_REGNUM))
+    (clobber (reg:DI R30_REGNUM))
+    (clobber (reg:CC CC_REGNUM))]
+   ""
+   "bl\t__arm_sme_state"
+   [(set_attr "is_call" "yes")]
+ )
+ 
+ (define_insn "aarch64_read_svcr"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+ 	(unspec_volatile:DI [(const_int 0)] UNSPEC_READ_SVCR))]
+   ""
+   "mrs\t%0, svcr"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- PSTATE.SM management
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - SMSTART SM
+ ;; - SMSTOP SM
+ ;; -------------------------------------------------------------------------
+ 
+ (define_c_enum "unspec" [
+   UNSPEC_SMSTART_SM
+   UNSPEC_SMSTOP_SM
+ ])
+ 
+ ;; Turn on streaming mode.  This clobbers all SVE state.
+ ;;
+ ;; Depend on VG_REGNUM to ensure that the VG save slot has already been
+ ;; initialized.
+ (define_insn "aarch64_smstart_sm"
+   [(unspec_volatile [(const_int 0)] UNSPEC_SMSTART_SM)
+    (use (reg:DI VG_REGNUM))
+    (clobber (reg:V4x16QI V0_REGNUM))
+    (clobber (reg:V4x16QI V4_REGNUM))
+    (clobber (reg:V4x16QI V8_REGNUM))
+    (clobber (reg:V4x16QI V12_REGNUM))
+    (clobber (reg:V4x16QI V16_REGNUM))
+    (clobber (reg:V4x16QI V20_REGNUM))
+    (clobber (reg:V4x16QI V24_REGNUM))
+    (clobber (reg:V4x16QI V28_REGNUM))
+    (clobber (reg:VNx16BI P0_REGNUM))
+    (clobber (reg:VNx16BI P1_REGNUM))
+    (clobber (reg:VNx16BI P2_REGNUM))
+    (clobber (reg:VNx16BI P3_REGNUM))
+    (clobber (reg:VNx16BI P4_REGNUM))
+    (clobber (reg:VNx16BI P5_REGNUM))
+    (clobber (reg:VNx16BI P6_REGNUM))
+    (clobber (reg:VNx16BI P7_REGNUM))
+    (clobber (reg:VNx16BI P8_REGNUM))
+    (clobber (reg:VNx16BI P9_REGNUM))
+    (clobber (reg:VNx16BI P10_REGNUM))
+    (clobber (reg:VNx16BI P11_REGNUM))
+    (clobber (reg:VNx16BI P12_REGNUM))
+    (clobber (reg:VNx16BI P13_REGNUM))
+    (clobber (reg:VNx16BI P14_REGNUM))
+    (clobber (reg:VNx16BI P15_REGNUM))]
+   ""
+   "smstart\tsm"
+ )
+ 
+ ;; Turn off streaming mode.  This clobbers all SVE state.
+ ;;
+ ;; Depend on VG_REGNUM to ensure that the VG save slot has already been
+ ;; initialized.
+ (define_insn "aarch64_smstop_sm"
+   [(unspec_volatile [(const_int 0)] UNSPEC_SMSTOP_SM)
+    (use (reg:DI VG_REGNUM))
+    (clobber (reg:V4x16QI V0_REGNUM))
+    (clobber (reg:V4x16QI V4_REGNUM))
+    (clobber (reg:V4x16QI V8_REGNUM))
+    (clobber (reg:V4x16QI V12_REGNUM))
+    (clobber (reg:V4x16QI V16_REGNUM))
+    (clobber (reg:V4x16QI V20_REGNUM))
+    (clobber (reg:V4x16QI V24_REGNUM))
+    (clobber (reg:V4x16QI V28_REGNUM))
+    (clobber (reg:VNx16BI P0_REGNUM))
+    (clobber (reg:VNx16BI P1_REGNUM))
+    (clobber (reg:VNx16BI P2_REGNUM))
+    (clobber (reg:VNx16BI P3_REGNUM))
+    (clobber (reg:VNx16BI P4_REGNUM))
+    (clobber (reg:VNx16BI P5_REGNUM))
+    (clobber (reg:VNx16BI P6_REGNUM))
+    (clobber (reg:VNx16BI P7_REGNUM))
+    (clobber (reg:VNx16BI P8_REGNUM))
+    (clobber (reg:VNx16BI P9_REGNUM))
+    (clobber (reg:VNx16BI P10_REGNUM))
+    (clobber (reg:VNx16BI P11_REGNUM))
+    (clobber (reg:VNx16BI P12_REGNUM))
+    (clobber (reg:VNx16BI P13_REGNUM))
+    (clobber (reg:VNx16BI P14_REGNUM))
+    (clobber (reg:VNx16BI P15_REGNUM))]
+   ""
+   "smstop\tsm"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- PSTATE.ZA management
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - SMSTART ZA
+ ;; - SMSTOP ZA
+ ;; plus calls to support routines.
+ ;; -------------------------------------------------------------------------
+ 
+ (define_c_enum "unspec" [
+   UNSPEC_SMSTOP_ZA
+   UNSPEC_INITIAL_ZERO_ZA
+   UNSPEC_TPIDR2_SAVE
+   UNSPEC_TPIDR2_RESTORE
+   UNSPEC_READ_TPIDR2
+   UNSPEC_WRITE_TPIDR2
+   UNSPEC_SETUP_LOCAL_TPIDR2
+   UNSPEC_RESTORE_ZA
+   UNSPEC_START_PRIVATE_ZA_CALL
+   UNSPEC_END_PRIVATE_ZA_CALL
+   UNSPEC_COMMIT_LAZY_SAVE
+ ])
+ 
+ (define_c_enum "unspecv" [
+   UNSPECV_ASM_UPDATE_ZA
+   UNSPECV_ASM_UPDATE_ZT0
+ ])
+ 
+ ;; Use the ABI-defined routine to commit an uncommitted lazy save.
+ ;; This relies on the current PSTATE.ZA, so depends on SME_STATE_REGNUM.
+ ;; The fake TPIDR2_SETUP_REGNUM register initially holds the incoming
+ ;; value of the architected TPIDR2_EL0.
+ (define_insn "aarch64_tpidr2_save"
+   [(set (reg:DI ZA_FREE_REGNUM)
+ 	(unspec:DI [(reg:DI SME_STATE_REGNUM)
+ 		    (reg:DI TPIDR2_SETUP_REGNUM)] UNSPEC_TPIDR2_SAVE))
+    (clobber (reg:DI R14_REGNUM))
+    (clobber (reg:DI R15_REGNUM))
+    (clobber (reg:DI R16_REGNUM))
+    (clobber (reg:DI R17_REGNUM))
+    (clobber (reg:DI R18_REGNUM))
+    (clobber (reg:DI R30_REGNUM))
+    (clobber (reg:CC CC_REGNUM))]
+   ""
+   "bl\t__arm_tpidr2_save"
+   [(set_attr "is_call" "yes")]
+ )
+ 
+ ;; Set PSTATE.ZA to 1.  If ZA was previously dormant or active,
+ ;; it remains in the same state afterwards, with the same contents.
+ ;; Otherwise, it goes from off to on with zeroed contents.
+ ;;
+ ;; Later writes of TPIDR2_EL0 to a nonzero value must not be moved
+ ;; up past this instruction, since that could create an invalid
+ ;; combination of having an active lazy save while ZA is off.
+ ;; Create an anti-dependence by reading the current contents
+ ;; of TPIDR2_SETUP_REGNUM.
+ ;;
+ ;; Making this depend on ZA_FREE_REGNUM ensures that contents belonging
+ ;; to the caller have already been saved.  That isn't necessary for this
+ ;; instruction itself, since PSTATE.ZA is already 1 if it contains data.
+ ;; But doing this here means that other uses of ZA can just depend on
+ ;; SME_STATE_REGNUM, rather than both SME_STATE_REGNUM and ZA_FREE_REGNUM.
+ (define_insn "aarch64_smstart_za"
+   [(set (reg:DI SME_STATE_REGNUM)
+ 	(const_int 1))
+    (use (reg:DI TPIDR2_SETUP_REGNUM))
+    (use (reg:DI ZA_FREE_REGNUM))]
+   ""
+   "smstart\tza"
+ )
+ 
+ ;; Disable ZA and discard its current contents.
+ ;;
+ ;; The ABI says that the ZA save buffer must be null whenever PSTATE.ZA
+ ;; is zero, so earlier writes to TPIDR2_EL0 must not be moved down past
+ ;; this instruction.  Depend on TPIDR2_SETUP_REGNUM to ensure this.
+ ;;
+ ;; We can only turn ZA off once we know that it is free (i.e. doesn't
+ ;; contain data belonging to the caller).  Depend on ZA_FREE_REGNUM
+ ;; to ensure this.
+ ;;
+ ;; We only turn ZA off when the current function's ZA state is dead,
+ ;; or perhaps if we're sure that the contents are saved.  Either way,
+ ;; we know whether ZA is saved or not.
+ (define_insn "aarch64_smstop_za"
+   [(set (reg:DI SME_STATE_REGNUM)
+ 	(const_int 0))
+    (set (reg:DI ZA_SAVED_REGNUM)
+ 	(unspec:DI [(reg:DI TPIDR2_SETUP_REGNUM)
+ 		    (reg:DI ZA_FREE_REGNUM)] UNSPEC_SMSTOP_ZA))]
+   ""
+   "smstop\tza"
+ )
+ 
+ ;; Zero ZA after committing a lazy save.  The sequencing is enforced
+ ;; by reading ZA_FREE_REGNUM.
+ (define_insn "aarch64_initial_zero_za"
+   [(set (reg:DI ZA_REGNUM)
+ 	(unspec:DI [(reg:DI SME_STATE_REGNUM)
+ 		    (reg:DI ZA_FREE_REGNUM)] UNSPEC_INITIAL_ZERO_ZA))]
+   ""
+   "zero\t{ za }"
+ )
+ 
+ ;; Initialize the abstract TPIDR2_BLOCK_REGNUM from the contents of
+ ;; the current function's TPIDR2 block.  Other instructions can then
+ ;; depend on TPIDR2_BLOCK_REGNUM rather than on the memory block.
+ (define_insn "aarch64_setup_local_tpidr2"
+   [(set (reg:DI TPIDR2_BLOCK_REGNUM)
+ 	(unspec:DI [(match_operand:V16QI 0 "memory_operand" "m")]
+ 		   UNSPEC_SETUP_LOCAL_TPIDR2))]
+   ""
+   ""
+   [(set_attr "type" "no_insn")]
+ )
+ 
+ ;; Clear TPIDR2_EL0, cancelling any uncommitted lazy save.
+ (define_insn "aarch64_clear_tpidr2"
+   [(set (reg:DI TPIDR2_SETUP_REGNUM)
+ 	(const_int 0))]
+   ""
+   "msr\ttpidr2_el0, xzr"
+ )
+ 
+ ;; Point TPIDR2_EL0 to the current function's TPIDR2 block, whose address
+ ;; is given by operand 0.  TPIDR2_BLOCK_REGNUM represents the contents of the
+ ;; pointed-to block.
+ (define_insn "aarch64_write_tpidr2"
+   [(set (reg:DI TPIDR2_SETUP_REGNUM)
+ 	(unspec:DI [(match_operand 0 "pmode_register_operand" "r")
+ 		    (reg:DI TPIDR2_BLOCK_REGNUM)] UNSPEC_WRITE_TPIDR2))]
+   ""
+   "msr\ttpidr2_el0, %0"
+ )
+ 
+ ;; Check whether ZA has been saved.  The system depends on the value that
+ ;; we wrote to TPIDR2_EL0 previously, so it depends on TPDIR2_SETUP_REGNUM.
+ (define_insn "aarch64_read_tpidr2"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+ 	(unspec:DI [(reg:DI TPIDR2_SETUP_REGNUM)
+ 		    (reg:DI ZA_SAVED_REGNUM)] UNSPEC_READ_TPIDR2))]
+   ""
+   "mrs\t%0, tpidr2_el0"
+ )
+ 
+ ;; Use the ABI-defined routine to restore lazy-saved ZA contents
+ ;; from the TPIDR2 block pointed to by X0.  ZA must already be active.
+ (define_insn "aarch64_tpidr2_restore"
+   [(set (reg:DI ZA_SAVED_REGNUM)
+ 	(unspec:DI [(reg:DI R0_REGNUM)] UNSPEC_TPIDR2_RESTORE))
+    (set (reg:DI SME_STATE_REGNUM)
+ 	(unspec:DI [(reg:DI SME_STATE_REGNUM)] UNSPEC_TPIDR2_RESTORE))
+    (clobber (reg:DI R14_REGNUM))
+    (clobber (reg:DI R15_REGNUM))
+    (clobber (reg:DI R16_REGNUM))
+    (clobber (reg:DI R17_REGNUM))
+    (clobber (reg:DI R18_REGNUM))
+    (clobber (reg:DI R30_REGNUM))
+    (clobber (reg:CC CC_REGNUM))]
+   ""
+   "bl\t__arm_tpidr2_restore"
+   [(set_attr "is_call" "yes")]
+ )
+ 
+ ;; Check whether a lazy save set up by aarch64_save_za was committed
+ ;; and restore the saved contents if so.
+ ;;
+ ;; Operand 0 is the address of the current function's TPIDR2 block.
+ (define_insn_and_split "aarch64_restore_za"
+   [(set (reg:DI ZA_SAVED_REGNUM)
+ 	(unspec:DI [(match_operand 0 "pmode_register_operand" "r")
+ 		    (reg:DI SME_STATE_REGNUM)
+ 		    (reg:DI TPIDR2_SETUP_REGNUM)
+ 		    (reg:DI ZA_SAVED_REGNUM)] UNSPEC_RESTORE_ZA))
+    (clobber (reg:DI R0_REGNUM))
+    (clobber (reg:DI R14_REGNUM))
+    (clobber (reg:DI R15_REGNUM))
+    (clobber (reg:DI R16_REGNUM))
+    (clobber (reg:DI R17_REGNUM))
+    (clobber (reg:DI R18_REGNUM))
+    (clobber (reg:DI R30_REGNUM))
+    (clobber (reg:CC CC_REGNUM))]
+   ""
+   "#"
+   "&& epilogue_completed"
+   [(const_int 0)]
+   {
+     auto label = gen_label_rtx ();
+     auto tpidr2 = gen_rtx_REG (DImode, R16_REGNUM);
+     emit_insn (gen_aarch64_read_tpidr2 (tpidr2));
+     auto jump = emit_likely_jump_insn (gen_aarch64_cbnedi1 (tpidr2, label));
+     JUMP_LABEL (jump) = label;
+ 
+     aarch64_restore_za (operands[0]);
+     emit_label (label);
+     DONE;
+   }
+ )
+ 
+ ;; This instruction is emitted after asms that alter ZA, in order to model
+ ;; the effect on dataflow.  The asm itself can't have ZA as an input or
+ ;; an output, since there is no associated data type.  Instead it retains
+ ;; the original "za" clobber, which on its own would indicate that ZA
+ ;; is dead.
+ ;;
+ ;; The operand is a unique identifier.
+ (define_insn "aarch64_asm_update_za"
+   [(set (reg:VNx16QI ZA_REGNUM)
+ 	(unspec_volatile:VNx16QI
+ 	  [(reg:VNx16QI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand 0 "const_int_operand")]
+ 	  UNSPECV_ASM_UPDATE_ZA))]
+   ""
+   ""
+   [(set_attr "type" "no_insn")]
+ )
+ 
+ ;; A similar pattern for ZT0.
+ (define_insn "aarch64_asm_update_zt0"
+   [(set (reg:V8DI ZT0_REGNUM)
+ 	(unspec_volatile:V8DI
+ 	  [(reg:V8DI ZT0_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand 0 "const_int_operand")]
+ 	  UNSPECV_ASM_UPDATE_ZT0))]
+   ""
+   ""
+   [(set_attr "type" "no_insn")]
+ )
+ 
+ ;; This pseudo-instruction is emitted as part of a call to a private-ZA
+ ;; function from a function with ZA state.  It marks a natural place to set
+ ;; up a lazy save, if that turns out to be necessary.  The save itself
+ ;; is managed by the mode-switching pass.
+ (define_insn "aarch64_start_private_za_call"
+   [(set (reg:DI LOWERING_REGNUM)
+ 	(unspec:DI [(reg:DI LOWERING_REGNUM)] UNSPEC_START_PRIVATE_ZA_CALL))]
+   ""
+   ""
+   [(set_attr "type" "no_insn")]
+ )
+ 
+ ;; This pseudo-instruction is emitted as part of a call to a private-ZA
+ ;; function from a function with ZA state.  It marks a natural place to restore
+ ;; the current function's ZA contents from the lazy save buffer, if that
+ ;; turns out to be necessary.  The save itself is managed by the
+ ;; mode-switching pass.
+ (define_insn "aarch64_end_private_za_call"
+   [(set (reg:DI LOWERING_REGNUM)
+ 	(unspec:DI [(reg:DI LOWERING_REGNUM)] UNSPEC_END_PRIVATE_ZA_CALL))]
+   ""
+   ""
+   [(set_attr "type" "no_insn")]
+ )
+ 
+ ;; =========================================================================
+ ;; == Loads, stores and moves
+ ;; =========================================================================
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Single-vector loads
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - LD1
+ ;; - LDR
+ ;; -------------------------------------------------------------------------
+ 
+ (define_c_enum "unspec" [
+   UNSPEC_SME_LDR
+ ])
+ 
+ (define_insn "@aarch64_sme_<optab><mode>"
+   [(set (reg:SME_ZA_I ZA_REGNUM)
+ 	(unspec:SME_ZA_I
+ 	  [(reg:SME_ZA_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:SI 1 "register_operand" "Ucj")
+ 	   (match_operand:<VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:SME_ZA_I 3 "aarch64_sve_ldff1_operand" "Utf")]
+ 	  SME_LD1))]
+   "TARGET_STREAMING_SME"
+   "ld1<Vesize>\t{ za%0<hv>.<Vetype>[%w1, 0] }, %2/z, %3"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><mode>_plus"
+   [(set (reg:SME_ZA_I ZA_REGNUM)
+ 	(unspec:SME_ZA_I
+ 	  [(reg:SME_ZA_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (plus:SI (match_operand:SI 1 "register_operand" "Ucj")
+ 		    (match_operand:SI 2 "const_int_operand"))
+ 	   (match_operand:<VPRED> 3 "register_operand" "Upl")
+ 	   (match_operand:SME_ZA_I 4 "aarch64_sve_ldff1_operand" "Utf")]
+ 	  SME_LD1))]
+   "TARGET_STREAMING_SME
+    && UINTVAL (operands[2]) < 128 / <elem_bits>"
+   "ld1<Vesize>\t{ za%0<hv>.<Vetype>[%w1, %2] }, %3/z, %4"
+ )
+ 
+ (define_insn "aarch64_sme_ldr0"
+   [(set (reg:VNx16QI ZA_REGNUM)
+ 	(unspec:VNx16QI
+ 	  [(reg:VNx16QI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Ucj")
+ 	   (mem:VNx16QI (match_operand 1 "pmode_register_operand" "rk"))]
+ 	  UNSPEC_SME_LDR))]
+   "TARGET_SME"
+   "ldr\tza[%w0, 0], [%1, #0, mul vl]"
+ )
+ 
+ (define_insn "@aarch64_sme_ldrn<mode>"
+   [(set (reg:VNx16QI ZA_REGNUM)
+ 	(unspec:VNx16QI
+ 	  [(reg:VNx16QI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Ucj")
+ 		    (match_operand:SI 1 "const_int_operand"))
+ 	   (mem:VNx16QI
+ 	     (plus:P (match_operand:P 2 "register_operand" "rk")
+ 		     (match_operand:P 3 "aarch64_mov_operand")))]
+ 	  UNSPEC_SME_LDR))]
+   "TARGET_SME
+    && aarch64_sme_ldr_vnum_offset_p (operands[1], operands[3])"
+   "ldr\tza[%w0, %1], [%2, #%1, mul vl]"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Table loads
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - LDR
+ ;; -------------------------------------------------------------------------
+ 
+ (define_c_enum "unspec" [
+   UNSPEC_RESTORE_ZT0
+ ])
+ 
+ (define_insn "aarch64_sme_ldr_zt0"
+   [(set (reg:V8DI ZT0_REGNUM)
+ 	(match_operand:V8DI 0 "aarch64_sync_memory_operand" "Q"))
+    (use (reg:DI SME_STATE_REGNUM))]
+   "TARGET_SME2"
+   "ldr\tzt0, %0"
+ )
+ 
+ ;; This version is used after calls to private-ZA functions.  Since ZT0_REGNUM
+ ;; represents the current function's state, it isn't clobbered by private-ZA
+ ;; functions, so we need to make it depend on the ZA reinitialization code.
+ (define_insn "aarch64_restore_zt0"
+   [(set (reg:V8DI ZT0_REGNUM)
+ 	(unspec:V8DI
+ 	  [(reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:V8DI 0 "aarch64_sync_memory_operand" "Q")]
+ 	  UNSPEC_RESTORE_ZT0))]
+   "TARGET_SME2"
+   "ldr\tzt0, %0"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Single-vector stores
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - ST1
+ ;; - STR
+ ;; -------------------------------------------------------------------------
+ 
+ (define_c_enum "unspec" [
+   UNSPEC_SME_STR
+ ])
+ 
+ (define_insn "@aarch64_sme_<optab><mode>"
+   [(set (match_operand:SME_ZA_I 0 "aarch64_sve_ldff1_operand" "+Utf")
+ 	(unspec:SME_ZA_I
+ 	  [(reg:SME_ZA_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_dup 0)
+ 	   (match_operand:DI 1 "const_int_operand")
+ 	   (match_operand:SI 2 "register_operand" "Ucj")
+ 	   (match_operand:<VPRED> 3 "register_operand" "Upl")]
+ 	  SME_ST1))]
+   "TARGET_STREAMING_SME"
+   "st1<Vesize>\t{ za%1<hv>.<Vetype>[%w2, 0] }, %3, %0"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><mode>_plus"
+   [(set (match_operand:SME_ZA_I 0 "aarch64_sve_ldff1_operand" "+Utf")
+ 	(unspec:SME_ZA_I
+ 	  [(reg:SME_ZA_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_dup 0)
+ 	   (match_operand:DI 1 "const_int_operand")
+ 	   (plus:SI (match_operand:SI 2 "register_operand" "Ucj")
+ 		    (match_operand:SI 3 "const_int_operand"))
+ 	   (match_operand:<VPRED> 4 "register_operand" "Upl")]
+ 	  SME_ST1))]
+   "TARGET_STREAMING_SME
+    && UINTVAL (operands[3]) < 128 / <elem_bits>"
+   "st1<Vesize>\t{ za%1<hv>.<Vetype>[%w2, %3] }, %4, %0"
+ )
+ 
+ (define_insn "aarch64_sme_str0"
+   [(set (mem:VNx16QI (match_operand 1 "pmode_register_operand" "rk"))
+ 	(unspec:VNx16QI
+ 	  [(reg:VNx16QI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (mem:VNx16QI (match_dup 1))
+ 	   (match_operand:SI 0 "register_operand" "Ucj")]
+ 	  UNSPEC_SME_STR))]
+   "TARGET_SME"
+   "str\tza[%w0, 0], [%1, #0, mul vl]"
+ )
+ 
+ (define_insn "@aarch64_sme_strn<mode>"
+   [(set (mem:VNx16QI
+ 	  (plus:P (match_operand:P 2 "register_operand" "rk")
+ 		  (match_operand:P 3 "aarch64_mov_operand")))
+ 	(unspec:VNx16QI
+ 	  [(reg:VNx16QI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (mem:VNx16QI (plus:P (match_dup 2) (match_dup 3)))
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Ucj")
+ 		    (match_operand:SI 1 "const_int_operand"))]
+ 	  UNSPEC_SME_STR))]
+   "TARGET_SME
+    && aarch64_sme_ldr_vnum_offset_p (operands[1], operands[3])"
+   "str\tza[%w0, %1], [%2, #%1, mul vl]"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Table stores
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - STR
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "aarch64_sme_str_zt0"
+   [(set (match_operand:V8DI 0 "aarch64_sync_memory_operand" "=Q")
+ 	(reg:V8DI ZT0_REGNUM))
+    (use (reg:DI SME_STATE_REGNUM))]
+   "TARGET_SME2"
+   "str\tzt0, %0"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Single-vector moves
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - MOVA
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><v_int_container><mode>"
+   [(set (match_operand:SVE_FULL 0 "register_operand" "=w")
+ 	(unspec:SVE_FULL
+ 	  [(reg:<V_INT_CONTAINER> ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SVE_FULL 1 "register_operand" "0")
+ 	   (match_operand:<VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:DI 3 "const_int_operand")
+ 	   (match_operand:SI 4 "register_operand" "Ucj")]
+ 	  SME_READ))]
+   "TARGET_STREAMING_SME"
+   "mova\t%0.<Vetype>, %2/m, za%3<hv>.<Vetype>[%w4, 0]"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><v_int_container><mode>_plus"
+   [(set (match_operand:SVE_FULL 0 "register_operand" "=w")
+ 	(unspec:SVE_FULL
+ 	  [(reg:<V_INT_CONTAINER> ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SVE_FULL 1 "register_operand" "0")
+ 	   (match_operand:<VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:DI 3 "const_int_operand")
+ 	   (plus:SI (match_operand:SI 4 "register_operand" "Ucj")
+ 		    (match_operand:SI 5 "const_int_operand"))]
+ 	  SME_READ))]
+   "TARGET_STREAMING_SME
+    && UINTVAL (operands[5]) < 128 / <elem_bits>"
+   "mova\t%0.<Vetype>, %2/m, za%3<hv>.<Vetype>[%w4, %5]"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx1TI_ONLY:mode><SVE_FULL:mode>"
+   [(set (match_operand:SVE_FULL 0 "register_operand" "=w")
+ 	(unspec:SVE_FULL
+ 	  [(reg:VNx1TI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SVE_FULL 1 "register_operand" "0")
+ 	   (match_operand:VNx2BI 2 "register_operand" "Upl")
+ 	   (match_operand:DI 3 "const_int_operand")
+ 	   (match_operand:SI 4 "register_operand" "Ucj")]
+ 	  SME_READ))]
+   "TARGET_STREAMING_SME"
+   "mova\t%0.q, %2/m, za%3<hv>.q[%w4, 0]"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><v_int_container><mode>"
+   [(set (reg:<V_INT_CONTAINER> ZA_REGNUM)
+ 	(unspec:<V_INT_CONTAINER>
+ 	  [(reg:SVE_FULL ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:SI 1 "register_operand" "Ucj")
+ 	   (match_operand:<VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:SVE_FULL 3 "register_operand" "w")]
+ 	  SME_WRITE))]
+   "TARGET_STREAMING_SME"
+   "mova\tza%0<hv>.<Vetype>[%w1, 0], %2/m, %3.<Vetype>"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><v_int_container><mode>_plus"
+   [(set (reg:<V_INT_CONTAINER> ZA_REGNUM)
+ 	(unspec:<V_INT_CONTAINER>
+ 	  [(reg:SVE_FULL ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (plus:SI (match_operand:SI 1 "register_operand" "Ucj")
+ 		    (match_operand:SI 2 "const_int_operand"))
+ 	   (match_operand:<VPRED> 3 "register_operand" "Upl")
+ 	   (match_operand:SVE_FULL 4 "register_operand" "w")]
+ 	  SME_WRITE))]
+   "TARGET_STREAMING_SME
+    && UINTVAL (operands[2]) < 128 / <elem_bits>"
+   "mova\tza%0<hv>.<Vetype>[%w1, %2], %3/m, %4.<Vetype>"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx1TI_ONLY:mode><SVE_FULL:mode>"
+   [(set (reg:VNx1TI_ONLY ZA_REGNUM)
+ 	(unspec:VNx1TI_ONLY
+ 	  [(reg:VNx1TI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:SI 1 "register_operand" "Ucj")
+ 	   (match_operand:VNx2BI 2 "register_operand" "Upl")
+ 	   (match_operand:SVE_FULL 3 "register_operand" "w")]
+ 	  SME_WRITE))]
+   "TARGET_STREAMING_SME"
+   "mova\tza%0<hv>.q[%w1, 0], %2/m, %3.q"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Multi-vector moves
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - MOVA
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><mode><mode>"
+   [(set (match_operand:SVE_FULLx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_FULLx24
+ 	  [(reg:SVE_FULLx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 1 "const_int_operand")
+ 	   (match_operand:SI 2 "register_operand" "Ucj")]
+ 	  SME_READ))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[3] = GEN_INT (<vector_count> - 1);
+     return "mova\t%0, za%1<hv>.<Vetype>[%w2, 0:%3]";
+   }
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><mode><mode>_plus"
+   [(set (match_operand:SVE_FULLx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_FULLx24
+ 	  [(reg:SVE_FULLx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 1 "const_int_operand")
+ 	   (plus:SI
+ 	     (match_operand:SI 2 "register_operand" "Ucj")
+ 	     (match_operand:SI 3 "const_int_operand"))]
+ 	  SME_READ))]
+   "TARGET_STREAMING_SME2
+    && UINTVAL (operands[3]) % <vector_count> == 0
+    && UINTVAL (operands[3]) < 128 / <elem_bits>"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[3]) + <vector_count> - 1);
+     return "mova\t%0, za%1<hv>.<Vetype>[%w2, %3:%4]";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_read<mode>"
+   [(set (match_operand:SVE_DIx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_DIx24
+ 	  [(reg:SVE_DIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 1 "register_operand" "Uci")]
+ 	  UNSPEC_SME_READ))]
+   "TARGET_STREAMING_SME2"
+   "mova\t%0, za.d[%w1, 0, vgx<vector_count>]"
+ )
+ 
+ (define_insn "*aarch64_sme_read<mode>_plus"
+   [(set (match_operand:SVE_DIx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_DIx24
+ 	  [(reg:SVE_DIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 1 "register_operand" "Uci")
+ 		    (match_operand:SI 2 "const_0_to_7_operand"))]
+ 	  UNSPEC_SME_READ))]
+   "TARGET_STREAMING_SME2"
+   "mova\t%0, za.d[%w1, %2, vgx<vector_count>]"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><mode><mode>"
+   [(set (reg:SVE_FULLx24 ZA_REGNUM)
+ 	(unspec:SVE_FULLx24
+ 	  [(reg:SVE_FULLx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:SI 1 "register_operand" "Ucj")
+ 	   (match_operand:SVE_FULLx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_WRITE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[3] = GEN_INT (<vector_count> - 1);
+     return "mova\tza%0<hv>.<Vetype>[%w1, 0:%3], %2";
+   }
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><mode><mode>_plus"
+   [(set (reg:SVE_FULLx24 ZA_REGNUM)
+ 	(unspec:SVE_FULLx24
+ 	  [(reg:SVE_FULLx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (plus:SI
+ 	     (match_operand:SI 1 "register_operand" "Ucj")
+ 	     (match_operand:SI 2 "const_int_operand"))
+ 	   (match_operand:SVE_FULLx24 3 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_WRITE))]
+   "TARGET_STREAMING_SME2
+    && UINTVAL (operands[2]) % <vector_count> == 0
+    && UINTVAL (operands[2]) < 128 / <elem_bits>"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[2]) + <vector_count> - 1);
+     return "mova\tza%0<hv>.<Vetype>[%w1, %2:%4], %3";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_write<mode>"
+   [(set (reg:SVE_DIx24 ZA_REGNUM)
+ 	(unspec:SVE_DIx24
+ 	  [(reg:SVE_DIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SVE_DIx24 1 "aligned_register_operand" "Uw<vector_count>")]
+ 	  UNSPEC_SME_READ))]
+   "TARGET_STREAMING_SME2"
+   "mova\tza.d[%w0, 0, vgx<vector_count>], %1"
+ )
+ 
+ (define_insn "*aarch64_sme_write<mode>_plus"
+   [(set (reg:SVE_DIx24 ZA_REGNUM)
+ 	(unspec:SVE_DIx24
+ 	  [(reg:SVE_DIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SVE_DIx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  UNSPEC_SME_READ))]
+   "TARGET_STREAMING_SME2"
+   "mova\tza.d[%w0, %1, vgx<vector_count>], %2"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Zeroing
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - ZERO
+ ;; -------------------------------------------------------------------------
+ 
+ (define_c_enum "unspec" [UNSPEC_SME_ZERO])
+ 
+ (define_insn "aarch64_sme_zero_za"
+   [(set (reg:VNx16QI ZA_REGNUM)
+ 	(unspec:VNx16QI [(reg:VNx16QI ZA_REGNUM)
+ 			 (reg:DI SME_STATE_REGNUM)
+ 			 (match_operand:DI 0 "const_int_operand")]
+ 			UNSPEC_SME_ZERO))]
+   "TARGET_SME"
+   {
+     return aarch64_output_sme_zero_za (operands[0]);
+   }
+ )
+ 
+ (define_insn "aarch64_sme_zero_zt0"
+   [(set (reg:V8DI ZT0_REGNUM)
+ 	(const_int 0))
+    (use (reg:DI SME_STATE_REGNUM))]
+   "TARGET_SME2"
+   "zero\t{ zt0 }"
+ )
+ 
+ ;; =========================================================================
+ ;; == Binary arithmetic
+ ;; =========================================================================
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Binary arithmetic on ZA tile
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - ADDHA
+ ;; - ADDVA
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><mode>"
+   [(set (reg:SME_ZA_SDI ZA_REGNUM)
+ 	(unspec:SME_ZA_SDI
+ 	  [(reg:SME_ZA_SDI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:<VPRED> 1 "register_operand" "Upl")
+ 	   (match_operand:<VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:SME_ZA_SDI 3 "register_operand" "w")]
+ 	  SME_BINARY_SDI))]
+   "TARGET_STREAMING_SME"
+   "<optab>\tza%0.<Vetype>, %1/m, %2/m, %3.<Vetype>"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Binary arithmetic on ZA slice
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - ADD
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><mode>"
+   [(set (reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	(unspec:SME_ZA_SDIx24
+ 	  [(reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_SDIx24 1 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_BINARY_SLICE_SDI))]
+   "TARGET_STREAMING_SME2"
+   "<optab>\tza.<Vetype>[%w0, 0, vgx<vector_count>], %1"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><mode>_plus"
+   [(set (reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	(unspec:SME_ZA_SDIx24
+ 	  [(reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_SDIx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_BINARY_SLICE_SDI))]
+   "TARGET_STREAMING_SME2"
+   "<optab>\tza.<Vetype>[%w0, %1, vgx<vector_count>], %2"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><mode>"
+   [(set (reg:SME_ZA_SDFx24 ZA_REGNUM)
+ 	(unspec:SME_ZA_SDFx24
+ 	  [(reg:SME_ZA_SDFx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_SDFx24 1 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_BINARY_SLICE_SDF))]
+   "TARGET_STREAMING_SME2"
+   "<optab>\tza.<Vetype>[%w0, 0, vgx<vector_count>], %1"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><mode>_plus"
+   [(set (reg:SME_ZA_SDFx24 ZA_REGNUM)
+ 	(unspec:SME_ZA_SDFx24
+ 	  [(reg:SME_ZA_SDFx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_SDFx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_BINARY_SLICE_SDF))]
+   "TARGET_STREAMING_SME2"
+   "<optab>\tza.<Vetype>[%w0, %1, vgx<vector_count>], %2"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Binary arithmetic, writing to ZA slice
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - ADD
+ ;; - SUB
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><mode>"
+   [(set (reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	(unspec:SME_ZA_SDIx24
+ 	  [(reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_SDIx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_SDIx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_BINARY_WRITE_SLICE_SDI))]
+   "TARGET_STREAMING_SME2"
+   "<sme_int_op>\tza.<Vetype>[%w0, 0, vgx<vector_count>], %1, %2"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><mode>_plus"
+   [(set (reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	(unspec:SME_ZA_SDIx24
+ 	  [(reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_SDIx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_SDIx24 3 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_BINARY_WRITE_SLICE_SDI))]
+   "TARGET_STREAMING_SME2"
+   "<sme_int_op>\tza.<Vetype>[%w0, %1, vgx<vector_count>], %2, %3"
+ )
+ 
+ (define_insn "@aarch64_sme_single_<optab><mode>"
+   [(set (reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	(unspec:SME_ZA_SDIx24
+ 	  [(reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_SDIx24 1 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_SDIx24
+ 	     (match_operand:<VSINGLE> 2 "register_operand" "x"))]
+ 	  SME_BINARY_WRITE_SLICE_SDI))]
+   "TARGET_STREAMING_SME2"
+   "<sme_int_op>\tza.<Vetype>[%w0, 0, vgx<vector_count>], %1, %2.<Vetype>"
+ )
+ 
+ (define_insn "*aarch64_sme_single_<optab><mode>_plus"
+   [(set (reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	(unspec:SME_ZA_SDIx24
+ 	  [(reg:SME_ZA_SDIx24 ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_SDIx24 2 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_SDIx24
+ 	     (match_operand:<VSINGLE> 3 "register_operand" "x"))]
+ 	  SME_BINARY_WRITE_SLICE_SDI))]
+   "TARGET_STREAMING_SME2"
+   "<sme_int_op>\tza.<Vetype>[%w0, %1, vgx<vector_count>], %2, %3.<Vetype>"
+ )
+ 
+ ;; =========================================================================
+ ;; == Ternary arithmetic
+ ;; =========================================================================
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [INT] Dot product
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - SDOT
+ ;; - SUDOT
+ ;; - UDOT
+ ;; - USDOT
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>"
+   [(set (reg:SME_ZA_SDI ZA_REGNUM)
+ 	(unspec:SME_ZA_SDI
+ 	  [(reg:SME_ZA_SDI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_BHIx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_BHIx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_INT_DOTPROD))]
+   "TARGET_STREAMING_SME2
+    && (<SME_ZA_SDI:elem_bits> == 32 || <SME_ZA_BHIx24:elem_bits> == 16)
+    && (<SME_ZA_BHIx24:elem_bits> == 8 || <has_16bit_form>)"
+   "<optab>\tza.<SME_ZA_SDI:Vetype>[%w0, 0, vgx<vector_count>], %1, %2"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>_plus"
+   [(set (reg:SME_ZA_SDI ZA_REGNUM)
+ 	(unspec:SME_ZA_SDI
+ 	  [(reg:SME_ZA_SDI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_BHIx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_BHIx24 3 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_INT_DOTPROD))]
+   "TARGET_STREAMING_SME2
+    && (<SME_ZA_SDI:elem_bits> == 32 || <SME_ZA_BHIx24:elem_bits> == 16)
+    && (<SME_ZA_BHIx24:elem_bits> == 8 || <has_16bit_form>)"
+   "<optab>\tza.<SME_ZA_SDI:Vetype>[%w0, %1, vgx<vector_count>], %2, %3"
+ )
+ 
+ (define_insn "@aarch64_sme_single_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>"
+   [(set (reg:SME_ZA_SDI ZA_REGNUM)
+ 	(unspec:SME_ZA_SDI
+ 	  [(reg:SME_ZA_SDI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_BHIx24 1 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_BHIx24
+ 	     (match_operand:<VSINGLE> 2 "register_operand" "x"))]
+ 	  SME_INT_DOTPROD))]
+   "TARGET_STREAMING_SME2
+    && (<SME_ZA_SDI:elem_bits> == 32 || <SME_ZA_BHIx24:elem_bits> == 16)
+    && (<SME_ZA_BHIx24:elem_bits> == 8 || <has_16bit_form>)"
+   "<optab>\tza.<SME_ZA_SDI:Vetype>[%w0, 0, vgx<vector_count>], %1, %2.<SME_ZA_BHIx24:Vetype>"
+ )
+ 
+ (define_insn "*aarch64_sme_single_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>_plus"
+   [(set (reg:SME_ZA_SDI ZA_REGNUM)
+ 	(unspec:SME_ZA_SDI
+ 	  [(reg:SME_ZA_SDI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_BHIx24 2 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_BHIx24
+ 	     (match_operand:<VSINGLE> 3 "register_operand" "x"))]
+ 	  SME_INT_DOTPROD))]
+   "TARGET_STREAMING_SME2
+    && (<SME_ZA_SDI:elem_bits> == 32 || <SME_ZA_BHIx24:elem_bits> == 16)
+    && (<SME_ZA_BHIx24:elem_bits> == 8 || <has_16bit_form>)"
+   "<optab>\tza.<SME_ZA_SDI:Vetype>[%w0, %1, vgx<vector_count>], %2, %3.<SME_ZA_BHIx24:Vetype>"
+ )
+ 
+ ;; SUDOT is USDOT with the operands swapped.
+ (define_insn "@aarch64_sme_single_sudot<VNx4SI_ONLY:mode><SME_ZA_BIx24:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (vec_duplicate:SME_ZA_BIx24
+ 	     (match_operand:<VSINGLE> 2 "register_operand" "x"))
+ 	   (match_operand:SME_ZA_BIx24 1 "register_operand" "w")]
+ 	  UNSPEC_SME_USDOT))]
+   "TARGET_STREAMING_SME2"
+   "sudot\tza.s[%w0, 0, vgx<vector_count>], %1, %2.b"
+ )
+ 
+ (define_insn "*aarch64_sme_single_sudot<VNx4SI_ONLY:mode><SME_ZA_BIx24:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (vec_duplicate:SME_ZA_BIx24
+ 	     (match_operand:<VSINGLE> 3 "register_operand" "x"))
+ 	   (match_operand:SME_ZA_BIx24 2 "register_operand" "w")]
+ 	  UNSPEC_SME_USDOT))]
+   "TARGET_STREAMING_SME2"
+   "sudot\tza.s[%w0, %1, vgx<vector_count>], %2, %3.b"
+ )
+ 
+ (define_insn "@aarch64_sme_lane_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>"
+   [(set (reg:SME_ZA_SDI ZA_REGNUM)
+ 	(unspec:SME_ZA_SDI
+ 	  [(reg:SME_ZA_SDI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_BHIx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (unspec:SME_ZA_BHIx24
+ 	     [(match_operand:<VSINGLE> 2 "register_operand" "x")
+ 	      (match_operand:SI 3 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_INT_DOTPROD_LANE))]
+   "TARGET_STREAMING_SME2
+    && (<SME_ZA_SDI:elem_bits> == 32 || <SME_ZA_BHIx24:elem_bits> == 16)
+    && (<SME_ZA_BHIx24:elem_bits> == 8 || <has_16bit_form>)"
+   "<optab>\tza.<SME_ZA_SDI:Vetype>[%w0, 0, vgx<vector_count>], %1, %2.<SME_ZA_BHIx24:Vetype>[%3]"
+ )
+ 
+ (define_insn "*aarch64_sme_lane_<optab><SME_ZA_SDI:mode><SME_ZA_BHIx24:mode>_plus"
+   [(set (reg:SME_ZA_SDI ZA_REGNUM)
+ 	(unspec:SME_ZA_SDI
+ 	  [(reg:SME_ZA_SDI ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_BHIx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (unspec:SME_ZA_BHIx24
+ 	     [(match_operand:<VSINGLE> 3 "register_operand" "x")
+ 	      (match_operand:SI 4 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_INT_DOTPROD_LANE))]
+   "TARGET_STREAMING_SME2
+    && (<SME_ZA_SDI:elem_bits> == 32 || <SME_ZA_BHIx24:elem_bits> == 16)
+    && (<SME_ZA_BHIx24:elem_bits> == 8 || <has_16bit_form>)"
+   "<optab>\tza.<SME_ZA_SDI:Vetype>[%w0, %1, vgx<vector_count>], %2, %3.<SME_ZA_BHIx24:Vetype>[%4]"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [INT] Ternary widening arithmetic on ZA slice
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - SMLA
+ ;; - SMLS
+ ;; - UMLA
+ ;; - UMLS
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><VNx4SI_ONLY:mode><SVE_FULL_BHI:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SVE_FULL_BHI 1 "register_operand" "w")
+ 	   (match_operand:SVE_FULL_BHI 2 "register_operand" "x")]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   "<optab><za32_long>\tza.s[%w0, 0:<za32_last_offset>], %1.<SVE_FULL_BHI:Vetype>, %2.<SVE_FULL_BHI:Vetype>"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><VNx4SI_ONLY:mode><SVE_FULL_BHI:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za32_offset_range>_operand"))
+ 	   (match_operand:SVE_FULL_BHI 2 "register_operand" "w")
+ 	   (match_operand:SVE_FULL_BHI 3 "register_operand" "x")]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + <za32_last_offset>);
+     return "<optab><za32_long>\tza.s[%w0, %1:%4], %2.<SVE_FULL_BHI:Vetype>, %3.<SVE_FULL_BHI:Vetype>";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx24:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_BHIx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_BHIx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   "<optab><za32_long>\tza.s[%w0, 0:<za32_last_offset>, vgx<vector_count>], %1, %2"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx24:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za32_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_BHIx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_BHIx24 3 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + <za32_last_offset>);
+     return "<optab><za32_long>\tza.s[%w0, %1:%4, vgx<vector_count>], %2, %3";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx24:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_BHIx24 1 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_BHIx24
+ 	     (match_operand:<SME_ZA_BHIx24:VSINGLE> 2 "register_operand" "x"))]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   "<optab><za32_long>\tza.s[%w0, 0:<za32_last_offset>, vgx<vector_count>], %1, %2.<SME_ZA_BHIx24:Vetype>"
+ )
+ 
+ (define_insn "*aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx24:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za32_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_BHIx24 2 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_BHIx24
+ 	     (match_operand:<SME_ZA_BHIx24:VSINGLE> 3 "register_operand" "x"))]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + <za32_last_offset>);
+     return "<optab><za32_long>\tza.s[%w0, %1:%4, vgx<vector_count>], %2, %3.<SME_ZA_BHIx24:Vetype>";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx124:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_BHIx124 1 "<aligned_operand>" "<aligned_fpr>")
+ 	   (unspec:SME_ZA_BHIx124
+ 	     [(match_operand:<VSINGLE> 2 "register_operand" "x")
+ 	      (match_operand:SI 3 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   "<optab><za32_long>\tza.s[%w0, 0:<za32_last_offset><vg_modifier>], %1<z_suffix>, %2.<SME_ZA_BHIx124:Vetype>[%3]"
+ )
+ 
+ (define_insn "*aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_BHIx124:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za32_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_BHIx124 2 "<aligned_operand>" "<aligned_fpr>")
+ 	   (unspec:SME_ZA_BHIx124
+ 	     [(match_operand:<VSINGLE> 3 "register_operand" "x")
+ 	      (match_operand:SI 4 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[5] = GEN_INT (INTVAL (operands[1]) + <za32_last_offset>);
+     return "<optab><za32_long>\tza.s[%w0, %1:%5<vg_modifier>], %2<z_suffix>, %3.<SME_ZA_BHIx124:Vetype>[%4]";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx2DI_ONLY:mode><VNx8HI_ONLY:mode>"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:VNx8HI_ONLY 1 "register_operand" "w")
+ 	   (match_operand:VNx8HI_ONLY 2 "register_operand" "x")]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_SME2 && TARGET_SME_I16I64 && TARGET_STREAMING_SME"
+   "<optab>ll\tza.d[%w0, 0:3], %1.h, %2.h"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><VNx2DI_ONLY:mode><VNx8HI_ONLY:mode>_plus"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za64_offset_range>_operand"))
+ 	   (match_operand:VNx8HI_ONLY 2 "register_operand" "w")
+ 	   (match_operand:VNx8HI_ONLY 3 "register_operand" "x")]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_SME2 && TARGET_SME_I16I64 && TARGET_STREAMING_SME"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + 3);
+     return "<optab>ll\tza.d[%w0, %1:%4], %2.h, %3.h";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx24:mode>"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HIx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_HIx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_SME2 && TARGET_SME_I16I64 && TARGET_STREAMING_SME"
+   "<optab>ll\tza.d[%w0, 0:3, vgx<vector_count>], %1, %2"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx24:mode>_plus"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za64_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_HIx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_HIx24 3 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_SME2 && TARGET_SME_I16I64 && TARGET_STREAMING_SME"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + 3);
+     return "<optab>ll\tza.d[%w0, %1:%4, vgx<vector_count>], %2, %3";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_single_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx24:mode>"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HIx24 1 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_HIx24
+ 	     (match_operand:<SME_ZA_HIx24:VSINGLE> 2 "register_operand" "x"))]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_SME2 && TARGET_SME_I16I64 && TARGET_STREAMING_SME"
+   "<optab>ll\tza.d[%w0, 0:3, vgx<vector_count>], %1, %2.h"
+ )
+ 
+ (define_insn "*aarch64_sme_single_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx24:mode>_plus"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za64_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_HIx24 2 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_HIx24
+ 	     (match_operand:<SME_ZA_HIx24:VSINGLE> 3 "register_operand" "x"))]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_SME2 && TARGET_SME_I16I64 && TARGET_STREAMING_SME"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + 3);
+     return "<optab>ll\tza.d[%w0, %1:%4, vgx<vector_count>], %2, %3.h";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_lane_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx124:mode>"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HIx124 1 "<aligned_operand>" "<aligned_fpr>")
+ 	   (unspec:SME_ZA_HIx124
+ 	     [(match_operand:<VSINGLE> 2 "register_operand" "x")
+ 	      (match_operand:SI 3 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_SME2 && TARGET_SME_I16I64 && TARGET_STREAMING_SME"
+   "<optab>ll\tza.d[%w0, 0:3<vg_modifier>], %1<z_suffix>, %2.h[%3]"
+ )
+ 
+ (define_insn "*aarch64_sme_lane_<optab><VNx2DI_ONLY:mode><SME_ZA_HIx124:mode>"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za64_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_HIx124 2 "<aligned_operand>" "<aligned_fpr>")
+ 	   (unspec:SME_ZA_HIx124
+ 	     [(match_operand:<VSINGLE> 3 "register_operand" "x")
+ 	      (match_operand:SI 4 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_INT_TERNARY_SLICE))]
+   "TARGET_SME2 && TARGET_SME_I16I64 && TARGET_STREAMING_SME"
+   {
+     operands[5] = GEN_INT (INTVAL (operands[1]) + 3);
+     return "<optab>ll\tza.d[%w0, %1:%5<vg_modifier>], %2<z_suffix>, %3.h[%4]";
+   }
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [INT] Sum of outer products
+ ;; -------------------------------------------------------------------------
+ ;; - BMOPA
+ ;; - BMOPS
+ ;; - SMOPA
+ ;; - SMOPS
+ ;; - SUMOPA
+ ;; - SUMOPS
+ ;; - UMOPA
+ ;; - UMOPS
+ ;; - USMOPA
+ ;; - USMOPS
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><VNx4SI_ONLY:mode><VNx16QI_ONLY:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:<VNx4SI_ONLY:VPRED> 1 "register_operand" "Upl")
+ 	   (match_operand:<VNx4SI_ONLY:VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:VNx16QI_ONLY 3 "register_operand" "w")
+ 	   (match_operand:VNx16QI_ONLY 4 "register_operand" "w")]
+ 	  SME_INT_MOP))]
+   "TARGET_STREAMING_SME"
+   "<optab>\tza%0.s, %1/m, %2/m, %3.b, %4.b"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx2DI_ONLY:mode><VNx8HI_ONLY:mode>"
+   [(set (reg:VNx2DI_ONLY ZA_REGNUM)
+ 	(unspec:VNx2DI_ONLY
+ 	  [(reg:VNx2DI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:<VNx2DI_ONLY:VPRED> 1 "register_operand" "Upl")
+ 	   (match_operand:<VNx2DI_ONLY:VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:VNx8HI_ONLY 3 "register_operand" "w")
+ 	   (match_operand:VNx8HI_ONLY 4 "register_operand" "w")]
+ 	  SME_INT_MOP))]
+   "TARGET_STREAMING_SME && TARGET_SME_I16I64"
+   "<optab>\tza%0.d, %1/m, %2/m, %3.h, %4.h"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx4SI_ONLY:mode><VNx8HI_ONLY:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:<VNx4SI_ONLY:VPRED> 1 "register_operand" "Upl")
+ 	   (match_operand:<VNx4SI_ONLY:VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:VNx8HI_ONLY 3 "register_operand" "w")
+ 	   (match_operand:VNx8HI_ONLY 4 "register_operand" "w")]
+ 	  SME2_INT_MOP))]
+   "TARGET_STREAMING_SME2"
+   "<optab>\tza%0.s, %1/m, %2/m, %3.h, %4.h"
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx4SI_ONLY:mode><VNx4SI_ONLY:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:<VNx4SI_ONLY:VPRED> 1 "register_operand" "Upl")
+ 	   (match_operand:<VNx4SI_ONLY:VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:VNx4SI_ONLY 3 "register_operand" "w")
+ 	   (match_operand:VNx4SI_ONLY 4 "register_operand" "w")]
+ 	  SME2_BMOP))]
+   "TARGET_STREAMING_SME2"
+   "<optab>\tza%0.s, %1/m, %2/m, %3.s, %4.s"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [FP] Dot product
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - BFDOT
+ ;; - FDOT
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HFx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_HFx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_FP_DOTPROD))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>\tza.s[%w0, 0, vgx<vector_count>], %1, %2"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_HFx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_HFx24 3 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_FP_DOTPROD))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>\tza.s[%w0, %1, vgx<vector_count>], %2, %3"
+ )
+ 
+ (define_insn "@aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HFx24 1 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_HFx24
+ 	     (match_operand:<VSINGLE> 2 "register_operand" "x"))]
+ 	  SME_FP_DOTPROD))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>\tza.s[%w0, 0, vgx<vector_count>], %1, %2.h"
+ )
+ 
+ (define_insn "*aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_HFx24 2 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_HFx24
+ 	     (match_operand:<VSINGLE> 3 "register_operand" "x"))]
+ 	  SME_FP_DOTPROD))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>\tza.s[%w0, %1, vgx<vector_count>], %2, %3.h"
+ )
+ 
+ (define_insn "@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HFx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (unspec:SME_ZA_HFx24
+ 	     [(match_operand:<VSINGLE> 2 "register_operand" "x")
+ 	      (match_operand:SI 3 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_FP_DOTPROD_LANE))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>\tza.s[%w0, 0, vgx<vector_count>], %1, %2.h[%3]"
+ )
+ 
+ (define_insn "*aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_HFx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (unspec:SME_ZA_HFx24
+ 	     [(match_operand:<VSINGLE> 3 "register_operand" "x")
+ 	      (match_operand:SI 4 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_FP_DOTPROD_LANE))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>\tza.s[%w0, %1, vgx<vector_count>], %2, %3.h[%4]"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [FP] Ternary arithmetic on ZA slice
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - FMLA
+ ;; - FMLS
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>"
+   [(set (reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	(unspec:SME_ZA_SDF_I
+ 	  [(reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_SDFx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_SDFx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_SME2
+    && TARGET_STREAMING_SME
+    && <SME_ZA_SDF_I:elem_bits> == <SME_ZA_SDFx24:elem_bits>"
+   "<optab>\tza.<SME_ZA_SDF_I:Vetype>[%w0, 0, vgx<vector_count>], %1, %2"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>_plus"
+   [(set (reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	(unspec:SME_ZA_SDF_I
+ 	  [(reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_SDFx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_SDFx24 3 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_SME2
+    && TARGET_STREAMING_SME
+    && <SME_ZA_SDF_I:elem_bits> == <SME_ZA_SDFx24:elem_bits>"
+   "<optab>\tza.<SME_ZA_SDF_I:Vetype>[%w0, %1, vgx<vector_count>], %2, %3"
+ )
+ 
+ (define_insn "@aarch64_sme_single_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>"
+   [(set (reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	(unspec:SME_ZA_SDF_I
+ 	  [(reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_SDFx24 1 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_SDFx24
+ 	     (match_operand:<VSINGLE> 2 "register_operand" "x"))]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_SME2
+    && TARGET_STREAMING_SME
+    && <SME_ZA_SDF_I:elem_bits> == <SME_ZA_SDFx24:elem_bits>"
+   "<optab>\tza.<SME_ZA_SDF_I:Vetype>[%w0, 0, vgx<vector_count>], %1, %2.<SME_ZA_SDFx24:Vetype>"
+ )
+ 
+ (define_insn "*aarch64_sme_single_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>_plus"
+   [(set (reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	(unspec:SME_ZA_SDF_I
+ 	  [(reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_SDFx24 2 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_SDFx24
+ 	     (match_operand:<VSINGLE> 3 "register_operand" "x"))]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_SME2
+    && TARGET_STREAMING_SME
+    && <SME_ZA_SDF_I:elem_bits> == <SME_ZA_SDFx24:elem_bits>"
+   "<optab>\tza.<SME_ZA_SDF_I:Vetype>[%w0, %1, vgx<vector_count>], %2, %3.<SME_ZA_SDFx24:Vetype>"
+ )
+ 
+ (define_insn "@aarch64_sme_lane_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>"
+   [(set (reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	(unspec:SME_ZA_SDF_I
+ 	  [(reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_SDFx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (unspec:SME_ZA_SDFx24
+ 	     [(match_operand:<VSINGLE> 2 "register_operand" "x")
+ 	      (match_operand:SI 3 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_SME2
+    && TARGET_STREAMING_SME
+    && <SME_ZA_SDF_I:elem_bits> == <SME_ZA_SDFx24:elem_bits>"
+   "<optab>\tza.<SME_ZA_SDF_I:Vetype>[%w0, 0, vgx<vector_count>], %1, %2.<SME_ZA_SDFx24:Vetype>[%3]"
+ )
+ 
+ (define_insn "*aarch64_sme_lane_<optab><SME_ZA_SDF_I:mode><SME_ZA_SDFx24:mode>"
+   [(set (reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	(unspec:SME_ZA_SDF_I
+ 	  [(reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_0_to_7_operand"))
+ 	   (match_operand:SME_ZA_SDFx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (unspec:SME_ZA_SDFx24
+ 	     [(match_operand:<VSINGLE> 3 "register_operand" "x")
+ 	      (match_operand:SI 4 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_SME2
+    && TARGET_STREAMING_SME
+    && <SME_ZA_SDF_I:elem_bits> == <SME_ZA_SDFx24:elem_bits>"
+   "<optab>\tza.<SME_ZA_SDF_I:Vetype>[%w0, %1, vgx<vector_count>], %2, %3.<SME_ZA_SDFx24:Vetype>[%4]"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [FP] Ternary widening arithmetic on ZA slice
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - BFMLAL
+ ;; - BFMLSL
+ ;; - FMLAL
+ ;; - FMLSL
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><VNx4SI_ONLY:mode><SVE_FULL_HF:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SVE_FULL_HF 1 "register_operand" "w")
+ 	   (match_operand:SVE_FULL_HF 2 "register_operand" "x")]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>l\tza.s[%w0, 0:1], %1.h, %2.h"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><VNx4SI_ONLY:mode><SVE_FULL_HF:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za32_offset_range>_operand"))
+ 	   (match_operand:SVE_FULL_HF 2 "register_operand" "w")
+ 	   (match_operand:SVE_FULL_HF 3 "register_operand" "x")]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + 1);
+     return "<b><optab>l\tza.s[%w0, %1:%4], %2.h, %3.h";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HFx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_HFx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>l\tza.s[%w0, 0:1, vgx<vector_count>], %1, %2"
+ )
+ 
+ (define_insn "*aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za32_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_HFx24 2 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SME_ZA_HFx24 3 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + 1);
+     return "<b><optab>l\tza.s[%w0, %1:%4, vgx<vector_count>], %2, %3";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HFx24 1 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_HFx24
+ 	     (match_operand:<SME_ZA_HFx24:VSINGLE> 2 "register_operand" "x"))]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>l\tza.s[%w0, 0:1, vgx<vector_count>], %1, %2.h"
+ )
+ 
+ (define_insn "*aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx24:mode>_plus"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za32_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_HFx24 2 "register_operand" "w")
+ 	   (vec_duplicate:SME_ZA_HFx24
+ 	     (match_operand:<SME_ZA_HFx24:VSINGLE> 3 "register_operand" "x"))]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[4] = GEN_INT (INTVAL (operands[1]) + 1);
+     return "<b><optab>l\tza.s[%w0, %1:%4, vgx<vector_count>], %2, %3.h";
+   }
+ )
+ 
+ (define_insn "@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx124:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:SI 0 "register_operand" "Uci")
+ 	   (match_operand:SME_ZA_HFx124 1 "<aligned_operand>" "<aligned_fpr>")
+ 	   (unspec:SME_ZA_HFx124
+ 	     [(match_operand:<VSINGLE> 2 "register_operand" "x")
+ 	      (match_operand:SI 3 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   "<b><optab>l\tza.s[%w0, 0:1<vg_modifier>], %1<z_suffix>, %2.h[%3]"
+ )
+ 
+ (define_insn "*aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_HFx124:mode>"
+   [(set (reg:VNx4SI_ONLY ZA_REGNUM)
+ 	(unspec:VNx4SI_ONLY
+ 	  [(reg:VNx4SI_ONLY ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (plus:SI (match_operand:SI 0 "register_operand" "Uci")
+ 		    (match_operand:SI 1 "const_<za32_offset_range>_operand"))
+ 	   (match_operand:SME_ZA_HFx124 2 "<aligned_operand>" "<aligned_fpr>")
+ 	   (unspec:SME_ZA_HFx124
+ 	     [(match_operand:<VSINGLE> 3 "register_operand" "x")
+ 	      (match_operand:SI 4 "const_int_operand")]
+ 	     UNSPEC_SVE_LANE_SELECT)]
+ 	  SME_FP_TERNARY_SLICE))]
+   "TARGET_STREAMING_SME2"
+   {
+     operands[5] = GEN_INT (INTVAL (operands[1]) + 1);
+     return "<b><optab>l\tza.s[%w0, %1:%5<vg_modifier>], %2<z_suffix>, %3.h[%4]";
+   }
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [FP] Sum of outer products
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - BFMOPA
+ ;; - BFMOPS
+ ;; - FMOPA
+ ;; - FMOPS
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sme_<optab><SME_ZA_SDF_I:mode><SME_MOP_HSDF:mode>"
+   [(set (reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	(unspec:SME_ZA_SDF_I
+ 	  [(reg:SME_ZA_SDF_I ZA_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:DI 0 "const_int_operand")
+ 	   (match_operand:<SME_ZA_SDF_I:VPRED> 1 "register_operand" "Upl")
+ 	   (match_operand:<SME_ZA_SDF_I:VPRED> 2 "register_operand" "Upl")
+ 	   (match_operand:SME_MOP_HSDF 3 "register_operand" "w")
+ 	   (match_operand:SME_MOP_HSDF 4 "register_operand" "w")]
+ 	  SME_FP_MOP))]
+   "TARGET_STREAMING_SME
+    && (<SME_ZA_SDF_I:elem_bits> == 32) == (<SME_MOP_HSDF:elem_bits> <= 32)"
+   "<b><optab>\tza%0.<SME_ZA_SDF_I:Vetype>, %1/m, %2/m, %3.<SME_MOP_HSDF:Vetype>, %4.<SME_MOP_HSDF:Vetype>"
+ )
+ 
+ ;; =========================================================================
+ ;; == Table lookup
+ ;; =========================================================================
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Table lookup
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - LUTI2
+ ;; - LUTI4
+ ;; -------------------------------------------------------------------------
+ 
+ (define_c_enum "unspec" [
+   UNSPEC_SME_LUTI
+ ])
+ 
+ (define_insn "@aarch64_sme_lut<LUTI_BITS><mode>"
+   [(set (match_operand:SVE_FULL_BHS 0 "register_operand" "=w")
+ 	(unspec:SVE_FULL_BHS
+ 	  [(reg:V8DI ZT0_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:VNx16QI 1 "register_operand" "w")
+ 	   (match_operand:DI 2 "const_int_operand")
+ 	   (const_int LUTI_BITS)]
+ 	  UNSPEC_SME_LUTI))]
+   "TARGET_STREAMING_SME2"
+   "luti<LUTI_BITS>\t%0.<Vetype>, zt0, %1[%2]"
+ )
+ 
+ (define_insn "@aarch64_sme_lut<LUTI_BITS><mode>"
+   [(set (match_operand:SVE_BHSx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_BHSx24
+ 	  [(reg:V8DI ZT0_REGNUM)
+ 	   (reg:DI SME_STATE_REGNUM)
+ 	   (match_operand:VNx16QI 1 "register_operand" "w")
+ 	   (match_operand:DI 2 "const_int_operand")
+ 	   (const_int LUTI_BITS)]
+ 	  UNSPEC_SME_LUTI))]
+   "TARGET_STREAMING_SME2
+    && !(<LUTI_BITS> == 4 && <vector_count> == 4 && <elem_bits> == 8)"
+   "luti<LUTI_BITS>\t%0, zt0, %1[%2]"
+ )
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-speculation.cc gcc-14.1.0/gcc/config/aarch64/aarch64-speculation.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-speculation.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-speculation.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Speculation tracking and mitigation (e.g. CVE 2017-5753) for AArch64.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Speculation tracking and mitigation (e.g. CVE 2017-5753) for AArch64.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 39,48 ****
  #include "insn-config.h"
  #include "recog.h"
  
! /* This pass scans the RTL just before the final branch
!    re-organisation pass.  The aim is to identify all places where
!    there is conditional control flow and to insert code that tracks
!    any speculative execution of a conditional branch.
  
     To do this we reserve a call-clobbered register (so that it can be
     initialized very early in the function prologue) that can then be
--- 39,48 ----
  #include "insn-config.h"
  #include "recog.h"
  
! /* This pass scans the RTL insns late in the RTL pipeline.  The aim is
!    to identify all places where there is conditional control flow and
!    to insert code that tracks any speculative execution of a conditional
!    branch.
  
     To do this we reserve a call-clobbered register (so that it can be
     initialized very early in the function prologue) that can then be
***************
*** 131,141 ****
     carry the tracking state in SP for this period of time unless the
     tracker value is needed at that point in time.
  
!    We run the pass just before the final branch reorganization pass so
!    that we can handle most of the conditional branch cases using the
!    standard edge insertion code.  The reorg pass will hopefully clean
!    things up for afterwards so that the results aren't too
!    horrible.  */
  
  /* Generate a code sequence to clobber SP if speculating incorreclty.  */
  static rtx_insn *
--- 131,152 ----
     carry the tracking state in SP for this period of time unless the
     tracker value is needed at that point in time.
  
!    We run the pass while the CFG is still present so that we can handle
!    most of the conditional branch cases using the standard edge insertion
!    code.  Where possible, we prefer to run the pass just before the final
!    branch reorganization pass.  That pass will then hopefully clean things
!    up afterwards so that the results aren't too horrible.
! 
!    However, we must run the pass after all conditional branches have
!    been inserted.  switch_pstate_sm inserts conditional branches for
!    streaming-compatible code, and so for streaming-compatible functions,
!    this pass must run after that one.
! 
!    We handle this by having two copies of the pass: the normal one that
!    runs before branch reorganization, and a "late" one that runs just
!    before late_thread_prologue_and_epilogue.  The two passes have
!    mutually exclusive gates, with the normal pass being chosen wherever
!    possible.  */
  
  /* Generate a code sequence to clobber SP if speculating incorreclty.  */
  static rtx_insn *
*************** aarch64_do_track_speculation ()
*** 315,325 ****
  	      needs_tracking = true;
  	    }
  
! 	  if (CALL_P (insn))
  	    {
  	      bool tailcall
! 		= (SIBLING_CALL_P (insn)
! 		   || find_reg_note (insn, REG_NORETURN, NULL_RTX));
  
  	      /* Tailcalls are like returns, we can eliminate the
  		 transfer between the tracker register and SP if we
--- 326,340 ----
  	      needs_tracking = true;
  	    }
  
! 	  if (CALL_P (insn)
! 	      || (NONDEBUG_INSN_P (insn)
! 		  && recog_memoized (insn) >= 0
! 		  && get_attr_is_call (insn) == IS_CALL_YES))
  	    {
  	      bool tailcall
! 		= (CALL_P (insn)
! 		   && (SIBLING_CALL_P (insn)
! 		       || find_reg_note (insn, REG_NORETURN, NULL_RTX)));
  
  	      /* Tailcalls are like returns, we can eliminate the
  		 transfer between the tracker register and SP if we
*************** const pass_data pass_data_aarch64_track_
*** 461,481 ****
  
  class pass_track_speculation : public rtl_opt_pass
  {
!  public:
!   pass_track_speculation(gcc::context *ctxt)
!     : rtl_opt_pass(pass_data_aarch64_track_speculation, ctxt)
!     {}
  
    /* opt_pass methods:  */
    virtual bool gate (function *)
      {
!       return aarch64_track_speculation;
      }
  
    virtual unsigned int execute (function *)
      {
        return aarch64_do_track_speculation ();
      }
  }; // class pass_track_speculation.
  } // anon namespace.
  
--- 476,503 ----
  
  class pass_track_speculation : public rtl_opt_pass
  {
! public:
!   pass_track_speculation(gcc::context *ctxt, bool is_late)
!     : rtl_opt_pass(pass_data_aarch64_track_speculation, ctxt),
!       is_late (is_late)
!   {}
  
    /* opt_pass methods:  */
    virtual bool gate (function *)
      {
!       return (aarch64_track_speculation
! 	      && (is_late == bool (TARGET_STREAMING_COMPATIBLE)));
      }
  
    virtual unsigned int execute (function *)
      {
        return aarch64_do_track_speculation ();
      }
+ 
+ private:
+   /* Whether this is the late pass that runs before late prologue/epilogue
+      insertion, or the normal pass that runs before branch reorganization.  */
+   bool is_late;
  }; // class pass_track_speculation.
  } // anon namespace.
  
*************** class pass_track_speculation : public rt
*** 483,487 ****
  rtl_opt_pass *
  make_pass_track_speculation (gcc::context *ctxt)
  {
!   return new pass_track_speculation (ctxt);
  }
--- 505,515 ----
  rtl_opt_pass *
  make_pass_track_speculation (gcc::context *ctxt)
  {
!   return new pass_track_speculation (ctxt, /*is_late=*/false);
! }
! 
! rtl_opt_pass *
! make_pass_late_track_speculation (gcc::context *ctxt)
! {
!   return new pass_track_speculation (ctxt, /*is_late=*/true);
  }
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-base.cc gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-base.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-base.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-base.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 44,56 ****
--- 44,77 ----
  #include "aarch64-sve-builtins-shapes.h"
  #include "aarch64-sve-builtins-base.h"
  #include "aarch64-sve-builtins-functions.h"
+ #include "aarch64-builtins.h"
  #include "ssa.h"
  #include "gimple-fold.h"
+ #include "tree-ssa.h"
  
  using namespace aarch64_sve;
  
  namespace {
  
+ /* Return true if VAL is an undefined value.  */
+ static bool
+ is_undef (tree val)
+ {
+   if (TREE_CODE (val) == SSA_NAME)
+     {
+       if (ssa_undefined_value_p (val, false))
+ 	return true;
+ 
+       gimple *def = SSA_NAME_DEF_STMT (val);
+       if (gcall *call = dyn_cast<gcall *> (def))
+ 	if (tree fndecl = gimple_call_fndecl (call))
+ 	  if (const function_instance *instance = lookup_fndecl (fndecl))
+ 	    if (instance->base == functions::svundef)
+ 	      return true;
+     }
+   return false;
+ }
+ 
  /* Return the UNSPEC_CMLA* unspec for rotation amount ROT.  */
  static int
  unspec_cmla (int rot)
*************** public:
*** 240,246 ****
        {
  	machine_mode mode = GET_MODE_INNER (e.vector_mode (0));
  	e.args[2] = simplify_unary_operation (NOT, mode, e.args[2], mode);
! 	return e.map_to_rtx_codes (AND, AND, -1);
        }
  
      if (e.type_suffix_ids[0] == TYPE_SUFFIX_b)
--- 261,267 ----
        {
  	machine_mode mode = GET_MODE_INNER (e.vector_mode (0));
  	e.args[2] = simplify_unary_operation (NOT, mode, e.args[2], mode);
! 	return e.map_to_rtx_codes (AND, AND, -1, -1);
        }
  
      if (e.type_suffix_ids[0] == TYPE_SUFFIX_b)
*************** public:
*** 496,510 ****
    expand (function_expander &e) const override
    {
      machine_mode mode = e.vector_mode (0);
!     if (e.pred == PRED_x)
!       {
! 	/* The pattern for CNOT includes an UNSPEC_PRED_Z, so needs
! 	   a ptrue hint.  */
! 	e.add_ptrue_hint (0, e.gp_mode (0));
! 	return e.use_pred_x_insn (code_for_aarch64_pred_cnot (mode));
!       }
  
!     return e.use_cond_insn (code_for_cond_cnot (mode), 0);
    }
  };
  
--- 517,538 ----
    expand (function_expander &e) const override
    {
      machine_mode mode = e.vector_mode (0);
!     machine_mode pred_mode = e.gp_mode (0);
!     /* The underlying _x pattern is effectively:
  
! 	 dst = src == 0 ? 1 : 0
! 
!        rather than an UNSPEC_PRED_X.  Using this form allows autovec
!        constructs to be matched by combine, but it means that the
!        predicate on the src == 0 comparison must be all-true.
! 
!        For simplicity, represent other _x operations as fully-defined _m
!        operations rather than using a separate bespoke pattern.  */
!     if (e.pred == PRED_x
! 	&& gen_lowpart (pred_mode, e.args[0]) == CONSTM1_RTX (pred_mode))
!       return e.use_pred_x_insn (code_for_aarch64_ptrue_cnot (mode));
!     return e.use_cond_insn (code_for_cond_cnot (mode),
! 			    e.pred == PRED_x ? 1 : 0);
    }
  };
  
*************** public:
*** 573,578 ****
--- 601,612 ----
    rtx
    expand (function_expander &e) const override
    {
+     if (e.type_suffix (0).tclass == TYPE_count)
+       {
+ 	unsigned int bits = e.type_suffix (0).element_bits;
+ 	return e.use_exact_insn (code_for_aarch64_sve_cntp_c (bits));
+       }
+ 
      machine_mode mode = e.vector_mode (0);
      e.add_ptrue_hint (0, mode);
      return e.use_exact_insn (code_for_aarch64_pred_cntp (mode));
*************** public:
*** 640,648 ****
    rtx
    expand (function_expander &e) const override
    {
      machine_mode mode0 = e.vector_mode (0);
      machine_mode mode1 = e.vector_mode (1);
-     insn_code icode;
      /* All this complication comes from the need to select four things
         simultaneously:
  
--- 674,697 ----
    rtx
    expand (function_expander &e) const override
    {
+     insn_code icode;
+     if (e.pred == PRED_none)
+       {
+ 	machine_mode mode0 = e.result_mode ();
+ 	machine_mode mode1 = GET_MODE (e.args[0]);
+ 	convert_optab optab;
+ 	if (e.type_suffix (0).integer_p)
+ 	  optab = e.type_suffix (0).unsigned_p ? ufix_optab : sfix_optab;
+ 	else if (e.type_suffix (1).integer_p)
+ 	  optab = e.type_suffix (1).unsigned_p ? ufloat_optab : sfloat_optab;
+ 	else
+ 	  optab = trunc_optab;
+ 	icode = convert_optab_handler (optab, mode0, mode1);
+ 	gcc_assert (icode != CODE_FOR_nothing);
+ 	return e.use_exact_insn (icode);
+       }
      machine_mode mode0 = e.vector_mode (0);
      machine_mode mode1 = e.vector_mode (1);
      /* All this complication comes from the need to select four things
         simultaneously:
  
*************** public:
*** 706,714 ****
      /* In the optab, the multiplication operands come before the accumulator
         operand.  The optab is keyed off the multiplication mode.  */
      e.rotate_inputs_left (0, 3);
!     insn_code icode
!       = e.direct_optab_handler_for_sign (sdot_prod_optab, udot_prod_optab,
! 					 0, GET_MODE (e.args[0]));
      return e.use_unpred_insn (icode);
    }
  };
--- 755,771 ----
      /* In the optab, the multiplication operands come before the accumulator
         operand.  The optab is keyed off the multiplication mode.  */
      e.rotate_inputs_left (0, 3);
!     insn_code icode;
!     if (e.type_suffix_ids[1] == NUM_TYPE_SUFFIXES)
!       icode = e.direct_optab_handler_for_sign (sdot_prod_optab,
! 					       udot_prod_optab,
! 					       0, GET_MODE (e.args[0]));
!     else
!       icode = (e.type_suffix (0).float_p
! 	       ? CODE_FOR_aarch64_sve_fdotvnx4sfvnx8hf
! 	       : e.type_suffix (0).unsigned_p
! 	       ? CODE_FOR_aarch64_sve_udotvnx4sivnx8hi
! 	       : CODE_FOR_aarch64_sve_sdotvnx4sivnx8hi);
      return e.use_unpred_insn (icode);
    }
  };
*************** public:
*** 721,732 ****
    rtx
    expand (function_expander &e) const override
    {
      /* Use the same ordering as the dot_prod_optab, with the
         accumulator last.  */
      e.rotate_inputs_left (0, 4);
      int unspec = unspec_for (e);
!     machine_mode mode = e.vector_mode (0);
!     return e.use_exact_insn (code_for_aarch64_dot_prod_lane (unspec, mode));
    }
  };
  
--- 778,795 ----
    rtx
    expand (function_expander &e) const override
    {
+     machine_mode mode0 = GET_MODE (e.args[0]);
+     machine_mode mode1 = GET_MODE (e.args[1]);
      /* Use the same ordering as the dot_prod_optab, with the
         accumulator last.  */
      e.rotate_inputs_left (0, 4);
      int unspec = unspec_for (e);
!     insn_code icode;
!     if (unspec == UNSPEC_FDOT)
!       icode = CODE_FOR_aarch64_fdot_prod_lanevnx4sfvnx8hf;
!     else
!       icode = code_for_aarch64_dot_prod_lane (unspec, mode0, mode1);
!     return e.use_exact_insn (icode);
    }
  };
  
*************** public:
*** 817,822 ****
--- 880,931 ----
  
  class svdupq_impl : public quiet<function_base>
  {
+ private:
+   gimple *
+   fold_nonconst_dupq (gimple_folder &f) const
+   {
+     /* Lower lhs = svdupq (arg0, arg1, ..., argN} into:
+        tmp = {arg0, arg1, ..., arg<N-1>}
+        lhs = VEC_PERM_EXPR (tmp, tmp, {0, 1, 2, N-1, ...})  */
+ 
+     if (f.type_suffix (0).bool_p
+ 	|| BYTES_BIG_ENDIAN)
+       return NULL;
+ 
+     tree lhs = gimple_call_lhs (f.call);
+     tree lhs_type = TREE_TYPE (lhs);
+     tree elt_type = TREE_TYPE (lhs_type);
+     scalar_mode elt_mode = SCALAR_TYPE_MODE (elt_type);
+     machine_mode vq_mode = aarch64_vq_mode (elt_mode).require ();
+     tree vq_type = build_vector_type_for_mode (elt_type, vq_mode);
+ 
+     unsigned nargs = gimple_call_num_args (f.call);
+     vec<constructor_elt, va_gc> *v;
+     vec_alloc (v, nargs);
+     for (unsigned i = 0; i < nargs; i++)
+       CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, gimple_call_arg (f.call, i));
+     tree vec = build_constructor (vq_type, v);
+     tree tmp = make_ssa_name_fn (cfun, vq_type, 0);
+     gimple *g = gimple_build_assign (tmp, vec);
+ 
+     gimple_seq stmts = NULL;
+     gimple_seq_add_stmt_without_update (&stmts, g);
+ 
+     poly_uint64 lhs_len = TYPE_VECTOR_SUBPARTS (lhs_type);
+     vec_perm_builder sel (lhs_len, nargs, 1);
+     for (unsigned i = 0; i < nargs; i++)
+       sel.quick_push (i);
+ 
+     vec_perm_indices indices (sel, 1, nargs);
+     tree mask_type = build_vector_type (ssizetype, lhs_len);
+     tree mask = vec_perm_indices_to_tree (mask_type, indices);
+ 
+     gimple *g2 = gimple_build_assign (lhs, VEC_PERM_EXPR, tmp, tmp, mask);
+     gimple_seq_add_stmt_without_update (&stmts, g2);
+     gsi_replace_with_seq (f.gsi, stmts, false);
+     return g2;
+   }
+ 
  public:
    gimple *
    fold (gimple_folder &f) const override
*************** public:
*** 832,838 ****
        {
  	tree elt = gimple_call_arg (f.call, i);
  	if (!CONSTANT_CLASS_P (elt))
! 	  return NULL;
  	builder.quick_push (elt);
  	for (unsigned int j = 1; j < factor; ++j)
  	  builder.quick_push (build_zero_cst (TREE_TYPE (vec_type)));
--- 941,947 ----
        {
  	tree elt = gimple_call_arg (f.call, i);
  	if (!CONSTANT_CLASS_P (elt))
! 	  return fold_nonconst_dupq (f);
  	builder.quick_push (elt);
  	for (unsigned int j = 1; j < factor; ++j)
  	  builder.quick_push (build_zero_cst (TREE_TYPE (vec_type)));
*************** public:
*** 967,973 ****
  	     with an extra argument on the end.  Take the inactive elements
  	     from this extra argument.  */
  	  e.rotate_inputs_left (0, 4);
! 	return e.map_to_rtx_codes (AND, AND, -1, 3);
        }
  
      machine_mode wide_mode = e.vector_mode (0);
--- 1076,1082 ----
  	     with an extra argument on the end.  Take the inactive elements
  	     from this extra argument.  */
  	  e.rotate_inputs_left (0, 4);
! 	return e.map_to_rtx_codes (AND, AND, -1, -1, 3);
        }
  
      machine_mode wide_mode = e.vector_mode (0);
*************** public:
*** 1018,1023 ****
--- 1127,1245 ----
    }
  };
  
+ class svget_neonq_impl : public function_base
+ {
+ public:
+   gimple *
+   fold (gimple_folder &f) const override
+   {
+     if (BYTES_BIG_ENDIAN)
+       return NULL;
+     tree rhs_sve_vector = gimple_call_arg (f.call, 0);
+     tree rhs_vector = build3 (BIT_FIELD_REF, TREE_TYPE (f.lhs),
+ 			     rhs_sve_vector, bitsize_int (128), bitsize_int (0));
+     return gimple_build_assign (f.lhs, rhs_vector);
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     if (BYTES_BIG_ENDIAN)
+       {
+ 	machine_mode mode = e.vector_mode (0);
+ 	insn_code icode = code_for_aarch64_sve_get_neonq (mode);
+ 	unsigned int nunits = 128 / GET_MODE_UNIT_BITSIZE (mode);
+ 	rtx indices = aarch64_gen_stepped_int_parallel
+ 	  (nunits, nunits - 1, -1);
+ 
+ 	e.add_output_operand (icode);
+ 	e.add_input_operand (icode, e.args[0]);
+ 	e.add_fixed_operand (indices);
+ 	return e.generate_insn (icode);
+       }
+     return simplify_gen_subreg (e.result_mode (), e.args[0],
+ 				GET_MODE (e.args[0]), 0);
+   }
+ };
+ 
+ class svset_neonq_impl : public function_base
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     machine_mode mode = e.vector_mode (0);
+ 
+     /* If the SVE argument is undefined, we just need to reinterpret the
+        Advanced SIMD argument as an SVE vector.  */
+     if (!BYTES_BIG_ENDIAN
+ 	&& is_undef (CALL_EXPR_ARG (e.call_expr, 0)))
+       return simplify_gen_subreg (mode, e.args[1], GET_MODE (e.args[1]), 0);
+ 
+     rtx_vector_builder builder (VNx16BImode, 16, 2);
+     for (unsigned int i = 0; i < 16; i++)
+       builder.quick_push (CONST1_RTX (BImode));
+     for (unsigned int i = 0; i < 16; i++)
+       builder.quick_push (CONST0_RTX (BImode));
+     e.args.quick_push (builder.build ());
+     if (BYTES_BIG_ENDIAN)
+       return e.use_exact_insn (code_for_aarch64_sve_set_neonq (mode));
+     insn_code icode = code_for_vcond_mask (mode, mode);
+     e.args[1] = lowpart_subreg (mode, e.args[1], GET_MODE (e.args[1]));
+     e.add_output_operand (icode);
+     e.add_input_operand (icode, e.args[1]);
+     e.add_input_operand (icode, e.args[0]);
+     e.add_input_operand (icode, e.args[2]);
+     return e.generate_insn (icode);
+   }
+ };
+ 
+ class svdup_neonq_impl : public function_base
+ {
+ public:
+   gimple *
+   fold (gimple_folder &f) const override
+   {
+     if (BYTES_BIG_ENDIAN)
+       return NULL;
+     tree rhs_vector = gimple_call_arg (f.call, 0);
+     unsigned HOST_WIDE_INT neon_nelts
+       = TYPE_VECTOR_SUBPARTS (TREE_TYPE (rhs_vector)).to_constant ();
+     poly_uint64 sve_nelts = TYPE_VECTOR_SUBPARTS (TREE_TYPE (f.lhs));
+     vec_perm_builder builder (sve_nelts, neon_nelts, 1);
+     for (unsigned int i = 0; i < neon_nelts; i++)
+       builder.quick_push (i);
+     vec_perm_indices indices (builder, 1, neon_nelts);
+     tree perm_type = build_vector_type (ssizetype, sve_nelts);
+     return gimple_build_assign (f.lhs, VEC_PERM_EXPR,
+ 				rhs_vector,
+ 				rhs_vector,
+ 				vec_perm_indices_to_tree (perm_type, indices));
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     machine_mode mode = e.vector_mode (0);
+     if (BYTES_BIG_ENDIAN)
+       {
+ 	insn_code icode = code_for_aarch64_vec_duplicate_vq_be (mode);
+ 	unsigned int nunits = 128 / GET_MODE_UNIT_BITSIZE (mode);
+ 	rtx indices = aarch64_gen_stepped_int_parallel
+ 	  (nunits, nunits - 1, -1);
+ 
+ 	e.add_output_operand (icode);
+ 	e.add_input_operand (icode, e.args[0]);
+ 	e.add_fixed_operand (indices);
+ 	return e.generate_insn (icode);
+       }
+     insn_code icode = code_for_aarch64_vec_duplicate_vq_le (mode);
+     e.add_output_operand (icode);
+     e.add_input_operand (icode, e.args[0]);
+     return e.generate_insn (icode);
+   }
+ };
+ 
  class svindex_impl : public function_base
  {
  public:
*************** class svlast_impl : public quiet<functio
*** 1056,1061 ****
--- 1278,1403 ----
  public:
    CONSTEXPR svlast_impl (int unspec) : m_unspec (unspec) {}
  
+   bool is_lasta () const { return m_unspec == UNSPEC_LASTA; }
+   bool is_lastb () const { return m_unspec == UNSPEC_LASTB; }
+ 
+   /* Fold a svlast{a/b} call with constant predicate to a BIT_FIELD_REF.
+      BIT_FIELD_REF lowers to Advanced SIMD element extract, so we have to
+      ensure the index of the element being accessed is in the range of a
+      Advanced SIMD vector width.  */
+   gimple *fold (gimple_folder & f) const override
+   {
+     tree pred = gimple_call_arg (f.call, 0);
+     tree val = gimple_call_arg (f.call, 1);
+ 
+     if (TREE_CODE (pred) == VECTOR_CST)
+       {
+ 	HOST_WIDE_INT pos;
+ 	int i = 0;
+ 	int step = f.type_suffix (0).element_bytes;
+ 	int step_1 = gcd (step, VECTOR_CST_NPATTERNS (pred));
+ 	int npats = VECTOR_CST_NPATTERNS (pred);
+ 	unsigned enelts = vector_cst_encoded_nelts (pred);
+ 	tree b = NULL_TREE;
+ 	unsigned HOST_WIDE_INT nelts;
+ 
+ 	/* We can optimize 2 cases common to variable and fixed-length cases
+ 	   without a linear search of the predicate vector:
+ 	   1.  LASTA if predicate is all true, return element 0.
+ 	   2.  LASTA if predicate all false, return element 0.  */
+ 	if (is_lasta () && vector_cst_all_same (pred, step_1))
+ 	  {
+ 	    b = build3 (BIT_FIELD_REF, TREE_TYPE (f.lhs), val,
+ 			bitsize_int (step * BITS_PER_UNIT), bitsize_int (0));
+ 	    return gimple_build_assign (f.lhs, b);
+ 	  }
+ 
+ 	/* Handle the all-false case for LASTB where SVE VL == 128b -
+ 	   return the highest numbered element.  */
+ 	if (is_lastb () && known_eq (BYTES_PER_SVE_VECTOR, 16)
+ 	    && vector_cst_all_same (pred, step_1)
+ 	    && integer_zerop (VECTOR_CST_ENCODED_ELT (pred, 0)))
+ 	  {
+ 	    b = build3 (BIT_FIELD_REF, TREE_TYPE (f.lhs), val,
+ 			bitsize_int (step * BITS_PER_UNIT),
+ 			bitsize_int ((16 - step) * BITS_PER_UNIT));
+ 
+ 	    return gimple_build_assign (f.lhs, b);
+ 	  }
+ 
+ 	/* Determine if there are any repeating non-zero elements in variable
+ 	   length vectors.  */
+ 	if (!VECTOR_CST_NELTS (pred).is_constant (&nelts))
+ 	  {
+ 	   /* If VECTOR_CST_NELTS_PER_PATTERN (pred) == 2 and every multiple of
+ 	      'step_1' in
+ 		[VECTOR_CST_NPATTERNS .. VECTOR_CST_ENCODED_NELTS - 1]
+ 	      is zero, then we can treat the vector as VECTOR_CST_NPATTERNS
+ 	      elements followed by all inactive elements.  */
+ 	    if (VECTOR_CST_NELTS_PER_PATTERN (pred) == 2)
+ 	      {
+ 		/* Restrict the scope of search to NPATS if vector is
+ 		   variable-length for linear search later.  */
+ 		nelts = npats;
+ 		for (unsigned j = npats; j < enelts; j += step_1)
+ 		  {
+ 		    /* If there are active elements in the repeated pattern of a
+ 		       variable-length vector, then return NULL as there is no
+ 		       way to be sure statically if this falls within the
+ 		       Advanced SIMD range.  */
+ 		    if (!integer_zerop (VECTOR_CST_ENCODED_ELT (pred, j)))
+ 		      return NULL;
+ 		  }
+ 	      }
+ 	    else
+ 	      /* If we're here, it means that for NELTS_PER_PATTERN != 2, there
+ 		 is a repeating non-zero element.  */
+ 	      return NULL;
+ 	  }
+ 
+ 	/* If we're here, it means either:
+ 	   1. The vector is variable-length and there's no active element in the
+ 	      repeated part of the pattern, or
+ 	   2. The vector is fixed-length.
+ 
+ 	   Fall through to finding the last active element linearly for
+ 	   for all cases where the last active element is known to be
+ 	   within a statically-determinable range.  */
+ 	i = MAX ((int)nelts - step, 0);
+ 	for (; i >= 0; i -= step)
+ 	  if (!integer_zerop (VECTOR_CST_ELT (pred, i)))
+ 	    break;
+ 
+ 	if (is_lastb ())
+ 	  {
+ 	    /* For LASTB, the element is the last active element.  */
+ 	    pos = i;
+ 	  }
+ 	else
+ 	  {
+ 	    /* For LASTA, the element is one after last active element.  */
+ 	    pos = i + step;
+ 
+ 	    /* If last active element is
+ 	       last element, wrap-around and return first Advanced SIMD
+ 	       element.  */
+ 	    if (known_ge (pos, BYTES_PER_SVE_VECTOR))
+ 	      pos = 0;
+ 	  }
+ 
+ 	/* Out of Advanced SIMD range.  */
+ 	if (pos < 0 || pos > 15)
+ 	  return NULL;
+ 
+ 	b = build3 (BIT_FIELD_REF, TREE_TYPE (f.lhs), val,
+ 		    bitsize_int (step * BITS_PER_UNIT),
+ 		    bitsize_int (pos * BITS_PER_UNIT));
+ 
+ 	return gimple_build_assign (f.lhs, b);
+       }
+     return NULL;
+   }
+ 
    rtx
    expand (function_expander &e) const override
    {
*************** public:
*** 1078,1083 ****
--- 1420,1428 ----
    gimple *
    fold (gimple_folder &f) const override
    {
+     if (f.vectors_per_tuple () != 1)
+       return nullptr;
+ 
      tree vectype = f.vector_type (0);
  
      /* Get the predicate and base pointer.  */
*************** public:
*** 1096,1103 ****
    rtx
    expand (function_expander &e) const override
    {
!     insn_code icode = convert_optab_handler (maskload_optab,
! 					     e.vector_mode (0), e.gp_mode (0));
      return e.use_contiguous_load_insn (icode);
    }
  };
--- 1441,1452 ----
    rtx
    expand (function_expander &e) const override
    {
!     insn_code icode;
!     if (e.vectors_per_tuple () == 1)
!       icode = convert_optab_handler (maskload_optab,
! 				     e.vector_mode (0), e.gp_mode (0));
!     else
!       icode = code_for_aarch64 (UNSPEC_LD1_COUNT, e.tuple_mode (0));
      return e.use_contiguous_load_insn (icode);
    }
  };
*************** public:
*** 1327,1333 ****
    rtx
    expand (function_expander &e) const override
    {
!     machine_mode tuple_mode = TYPE_MODE (TREE_TYPE (e.call_expr));
      insn_code icode = convert_optab_handler (vec_mask_load_lanes_optab,
  					     tuple_mode, e.vector_mode (0));
      return e.use_contiguous_load_insn (icode);
--- 1676,1682 ----
    rtx
    expand (function_expander &e) const override
    {
!     machine_mode tuple_mode = e.result_mode ();
      insn_code icode = convert_optab_handler (vec_mask_load_lanes_optab,
  					     tuple_mode, e.vector_mode (0));
      return e.use_contiguous_load_insn (icode);
*************** public:
*** 1397,1403 ****
    rtx
    expand (function_expander &e) const override
    {
!     insn_code icode = code_for_aarch64_ldnt1 (e.vector_mode (0));
      return e.use_contiguous_load_insn (icode);
    }
  };
--- 1746,1755 ----
    rtx
    expand (function_expander &e) const override
    {
!     insn_code icode = (e.vectors_per_tuple () == 1
! 		       ? code_for_aarch64_ldnt1 (e.vector_mode (0))
! 		       : code_for_aarch64 (UNSPEC_LDNT1_COUNT,
! 					   e.tuple_mode (0)));
      return e.use_contiguous_load_insn (icode);
    }
  };
*************** public:
*** 1657,1663 ****
    gimple *
    fold (gimple_folder &f) const override
    {
!     return f.fold_to_pfalse ();
    }
  
    rtx
--- 2009,2018 ----
    gimple *
    fold (gimple_folder &f) const override
    {
!     if (f.type_suffix (0).tclass == TYPE_bool)
!       return f.fold_to_pfalse ();
! 
!     return nullptr;
    }
  
    rtx
*************** public:
*** 1802,1814 ****
    gimple *
    fold (gimple_folder &f) const override
    {
!     return f.fold_to_ptrue ();
    }
  
    rtx
    expand (function_expander &e) const override
    {
!     return aarch64_ptrue_all (e.type_suffix (0).element_bytes);
    }
  };
  
--- 2157,2176 ----
    gimple *
    fold (gimple_folder &f) const override
    {
!     if (f.type_suffix (0).tclass == TYPE_bool)
!       return f.fold_to_ptrue ();
! 
!     return nullptr;
    }
  
    rtx
    expand (function_expander &e) const override
    {
!     if (e.type_suffix (0).tclass == TYPE_bool)
!       return aarch64_ptrue_all (e.type_suffix (0).element_bytes);
! 
!     auto bits = e.type_suffix (0).element_bits;
!     return e.use_exact_insn (code_for_aarch64_sve_ptrue_c (bits));
    }
  };
  
*************** public:
*** 1982,1991 ****
    gimple *
    fold (gimple_folder &f) const override
    {
      /* Punt to rtl if the effect of the reinterpret on registers does not
         conform to GCC's endianness model.  */
!     if (!targetm.can_change_mode_class (f.vector_mode (0),
! 					f.vector_mode (1), FP_REGS))
        return NULL;
  
      /* Otherwise svreinterpret corresponds directly to a VIEW_CONVERT_EXPR
--- 2344,2357 ----
    gimple *
    fold (gimple_folder &f) const override
    {
+     if (f.vectors_per_tuple () > 1)
+       return NULL;
+ 
      /* Punt to rtl if the effect of the reinterpret on registers does not
         conform to GCC's endianness model.  */
!     if (GET_MODE_CLASS (f.vector_mode (0)) != MODE_VECTOR_BOOL
! 	&& !targetm.can_change_mode_class (f.vector_mode (0),
! 					   f.vector_mode (1), FP_REGS))
        return NULL;
  
      /* Otherwise svreinterpret corresponds directly to a VIEW_CONVERT_EXPR
*************** public:
*** 1998,2004 ****
    rtx
    expand (function_expander &e) const override
    {
!     machine_mode mode = e.vector_mode (0);
      return e.use_exact_insn (code_for_aarch64_sve_reinterpret (mode));
    }
  };
--- 2364,2373 ----
    rtx
    expand (function_expander &e) const override
    {
!     machine_mode mode = e.tuple_mode (0);
!     /* Handle svbool_t <-> svcount_t.  */
!     if (mode == e.tuple_mode (1))
!       return e.args[0];
      return e.use_exact_insn (code_for_aarch64_sve_reinterpret (mode));
    }
  };
*************** public:
*** 2029,2040 ****
--- 2398,2434 ----
    }
  };
  
+ class svrint_impl : public function_base
+ {
+ public:
+   CONSTEXPR svrint_impl (optab_tag optab, int cond_unspec)
+     : m_optab (optab), m_cond_unspec (cond_unspec)
+   {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     if (e.pred == PRED_none)
+       {
+ 	auto icode = direct_optab_handler (m_optab, e.tuple_mode (0));
+ 	return e.use_exact_insn (icode);
+       }
+     return e.map_to_unspecs (-1, -1, m_cond_unspec);
+   }
+ 
+   optab_tag m_optab;
+   int m_cond_unspec;
+ };
+ 
  class svsel_impl : public quiet<function_base>
  {
  public:
    gimple *
    fold (gimple_folder &f) const override
    {
+     if (f.vectors_per_tuple () > 1)
+       return nullptr;
+ 
      /* svsel corresponds exactly to VEC_COND_EXPR.  */
      gimple_seq stmts = NULL;
      tree pred = f.convert_pred (stmts, f.vector_type (0), 0);
*************** public:
*** 2049,2057 ****
    {
      /* svsel (cond, truev, falsev) is vcond_mask (truev, falsev, cond).  */
      e.rotate_inputs_left (0, 3);
!     insn_code icode = convert_optab_handler (vcond_mask_optab,
! 					     e.vector_mode (0),
! 					     e.gp_mode (0));
      return e.use_exact_insn (icode);
    }
  };
--- 2443,2453 ----
    {
      /* svsel (cond, truev, falsev) is vcond_mask (truev, falsev, cond).  */
      e.rotate_inputs_left (0, 3);
!     insn_code icode = (e.vectors_per_tuple () > 1
! 		       ? code_for_aarch64_sve_sel (e.tuple_mode (0))
! 		       : convert_optab_handler (vcond_mask_optab,
! 						e.vector_mode (0),
! 						e.gp_mode (0)));
      return e.use_exact_insn (icode);
    }
  };
*************** public:
*** 2138,2143 ****
--- 2534,2542 ----
    gimple *
    fold (gimple_folder &f) const override
    {
+     if (f.vectors_per_tuple () != 1)
+       return nullptr;
+ 
      tree vectype = f.vector_type (0);
  
      /* Get the predicate and base pointer.  */
*************** public:
*** 2155,2162 ****
    rtx
    expand (function_expander &e) const override
    {
!     insn_code icode = convert_optab_handler (maskstore_optab,
! 					     e.vector_mode (0), e.gp_mode (0));
      return e.use_contiguous_store_insn (icode);
    }
  };
--- 2554,2565 ----
    rtx
    expand (function_expander &e) const override
    {
!     insn_code icode;
!     if (e.vectors_per_tuple () == 1)
!       icode = convert_optab_handler (maskstore_optab,
! 				     e.vector_mode (0), e.gp_mode (0));
!     else
!       icode = code_for_aarch64 (UNSPEC_ST1_COUNT, e.tuple_mode (0));
      return e.use_contiguous_store_insn (icode);
    }
  };
*************** public:
*** 2274,2280 ****
    rtx
    expand (function_expander &e) const override
    {
!     insn_code icode = code_for_aarch64_stnt1 (e.vector_mode (0));
      return e.use_contiguous_store_insn (icode);
    }
  };
--- 2677,2686 ----
    rtx
    expand (function_expander &e) const override
    {
!     insn_code icode = (e.vectors_per_tuple () == 1
! 		       ? code_for_aarch64_stnt1 (e.vector_mode (0))
! 		       : code_for_aarch64 (UNSPEC_STNT1_COUNT,
! 					   e.tuple_mode (0)));
      return e.use_contiguous_store_insn (icode);
    }
  };
*************** public:
*** 2291,2297 ****
      /* Canonicalize subtractions of constants to additions.  */
      machine_mode mode = e.vector_mode (0);
      if (e.try_negating_argument (2, mode))
!       return e.map_to_rtx_codes (PLUS, PLUS, UNSPEC_COND_FADD);
  
      return rtx_code_function::expand (e);
    }
--- 2697,2703 ----
      /* Canonicalize subtractions of constants to additions.  */
      machine_mode mode = e.vector_mode (0);
      if (e.try_negating_argument (2, mode))
!       return e.map_to_rtx_codes (PLUS, PLUS, UNSPEC_COND_FADD, -1);
  
      return rtx_code_function::expand (e);
    }
*************** public:
*** 2403,2409 ****
         version) is through the USDOT instruction but with the second and third
         inputs swapped.  */
      if (m_su)
!       e.rotate_inputs_left (1, 2);
      /* The ACLE function has the same order requirements as for svdot.
         While there's no requirement for the RTL pattern to have the same sort
         of order as that for <sur>dot_prod, it's easier to read.
--- 2809,2815 ----
         version) is through the USDOT instruction but with the second and third
         inputs swapped.  */
      if (m_su)
!       e.rotate_inputs_left (1, 3);
      /* The ACLE function has the same order requirements as for svdot.
         While there's no requirement for the RTL pattern to have the same sort
         of order as that for <sur>dot_prod, it's easier to read.
*************** public:
*** 2502,2507 ****
--- 2908,2916 ----
    gimple *
    fold (gimple_folder &f) const override
    {
+     if (f.vectors_per_tuple () > 1)
+       return nullptr;
+ 
      if (f.type_suffix (1).unsigned_p)
        return fold_type<poly_uint64> (f);
      else
*************** FUNCTION (svcvtnt, CODE_FOR_MODE0 (aarch
*** 2639,2645 ****
  FUNCTION (svdiv, rtx_code_function, (DIV, UDIV, UNSPEC_COND_FDIV))
  FUNCTION (svdivr, rtx_code_function_rotated, (DIV, UDIV, UNSPEC_COND_FDIV))
  FUNCTION (svdot, svdot_impl,)
! FUNCTION (svdot_lane, svdotprod_lane_impl, (UNSPEC_SDOT, UNSPEC_UDOT, -1))
  FUNCTION (svdup, svdup_impl,)
  FUNCTION (svdup_lane, svdup_lane_impl,)
  FUNCTION (svdupq, svdupq_impl,)
--- 3048,3055 ----
  FUNCTION (svdiv, rtx_code_function, (DIV, UDIV, UNSPEC_COND_FDIV))
  FUNCTION (svdivr, rtx_code_function_rotated, (DIV, UDIV, UNSPEC_COND_FDIV))
  FUNCTION (svdot, svdot_impl,)
! FUNCTION (svdot_lane, svdotprod_lane_impl, (UNSPEC_SDOT, UNSPEC_UDOT,
! 					    UNSPEC_FDOT))
  FUNCTION (svdup, svdup_impl,)
  FUNCTION (svdup_lane, svdup_lane_impl,)
  FUNCTION (svdupq, svdupq_impl,)
*************** FUNCTION (svlsl_wide, shift_wide, (ASHIF
*** 2705,2716 ****
  FUNCTION (svlsr, rtx_code_function, (LSHIFTRT, LSHIFTRT))
  FUNCTION (svlsr_wide, shift_wide, (LSHIFTRT, UNSPEC_LSHIFTRT_WIDE))
  FUNCTION (svmad, svmad_impl,)
! FUNCTION (svmax, rtx_code_function, (SMAX, UMAX, UNSPEC_COND_FMAX))
! FUNCTION (svmaxnm, unspec_based_function, (-1, -1, UNSPEC_COND_FMAXNM))
  FUNCTION (svmaxnmv, reduction, (UNSPEC_FMAXNMV))
  FUNCTION (svmaxv, reduction, (UNSPEC_SMAXV, UNSPEC_UMAXV, UNSPEC_FMAXV))
! FUNCTION (svmin, rtx_code_function, (SMIN, UMIN, UNSPEC_COND_FMIN))
! FUNCTION (svminnm, unspec_based_function, (-1, -1, UNSPEC_COND_FMINNM))
  FUNCTION (svminnmv, reduction, (UNSPEC_FMINNMV))
  FUNCTION (svminv, reduction, (UNSPEC_SMINV, UNSPEC_UMINV, UNSPEC_FMINV))
  FUNCTION (svmla, svmla_impl,)
--- 3115,3130 ----
  FUNCTION (svlsr, rtx_code_function, (LSHIFTRT, LSHIFTRT))
  FUNCTION (svlsr_wide, shift_wide, (LSHIFTRT, UNSPEC_LSHIFTRT_WIDE))
  FUNCTION (svmad, svmad_impl,)
! FUNCTION (svmax, rtx_code_function, (SMAX, UMAX, UNSPEC_COND_FMAX,
! 				     UNSPEC_FMAX))
! FUNCTION (svmaxnm, cond_or_uncond_unspec_function, (UNSPEC_COND_FMAXNM,
! 						    UNSPEC_FMAXNM))
  FUNCTION (svmaxnmv, reduction, (UNSPEC_FMAXNMV))
  FUNCTION (svmaxv, reduction, (UNSPEC_SMAXV, UNSPEC_UMAXV, UNSPEC_FMAXV))
! FUNCTION (svmin, rtx_code_function, (SMIN, UMIN, UNSPEC_COND_FMIN,
! 				     UNSPEC_FMIN))
! FUNCTION (svminnm, cond_or_uncond_unspec_function, (UNSPEC_COND_FMINNM,
! 						    UNSPEC_FMINNM))
  FUNCTION (svminnmv, reduction, (UNSPEC_FMINNMV))
  FUNCTION (svminv, reduction, (UNSPEC_SMINV, UNSPEC_UMINV, UNSPEC_FMINV))
  FUNCTION (svmla, svmla_impl,)
*************** FUNCTION (svrev, svrev_impl,)
*** 2782,2794 ****
  FUNCTION (svrevb, unspec_based_function, (UNSPEC_REVB, UNSPEC_REVB, -1))
  FUNCTION (svrevh, unspec_based_function, (UNSPEC_REVH, UNSPEC_REVH, -1))
  FUNCTION (svrevw, unspec_based_function, (UNSPEC_REVW, UNSPEC_REVW, -1))
! FUNCTION (svrinta, unspec_based_function, (-1, -1, UNSPEC_COND_FRINTA))
! FUNCTION (svrinti, unspec_based_function, (-1, -1, UNSPEC_COND_FRINTI))
! FUNCTION (svrintm, unspec_based_function, (-1, -1, UNSPEC_COND_FRINTM))
! FUNCTION (svrintn, unspec_based_function, (-1, -1, UNSPEC_COND_FRINTN))
! FUNCTION (svrintp, unspec_based_function, (-1, -1, UNSPEC_COND_FRINTP))
! FUNCTION (svrintx, unspec_based_function, (-1, -1, UNSPEC_COND_FRINTX))
! FUNCTION (svrintz, unspec_based_function, (-1, -1, UNSPEC_COND_FRINTZ))
  FUNCTION (svrsqrte, unspec_based_function, (-1, UNSPEC_RSQRTE, UNSPEC_RSQRTE))
  FUNCTION (svrsqrts, unspec_based_function, (-1, -1, UNSPEC_RSQRTS))
  FUNCTION (svscale, unspec_based_function, (-1, -1, UNSPEC_COND_FSCALE))
--- 3196,3208 ----
  FUNCTION (svrevb, unspec_based_function, (UNSPEC_REVB, UNSPEC_REVB, -1))
  FUNCTION (svrevh, unspec_based_function, (UNSPEC_REVH, UNSPEC_REVH, -1))
  FUNCTION (svrevw, unspec_based_function, (UNSPEC_REVW, UNSPEC_REVW, -1))
! FUNCTION (svrinta, svrint_impl, (round_optab, UNSPEC_COND_FRINTA))
! FUNCTION (svrinti, svrint_impl, (nearbyint_optab, UNSPEC_COND_FRINTI))
! FUNCTION (svrintm, svrint_impl, (floor_optab, UNSPEC_COND_FRINTM))
! FUNCTION (svrintn, svrint_impl, (roundeven_optab, UNSPEC_COND_FRINTN))
! FUNCTION (svrintp, svrint_impl, (ceil_optab, UNSPEC_COND_FRINTP))
! FUNCTION (svrintx, svrint_impl, (rint_optab, UNSPEC_COND_FRINTX))
! FUNCTION (svrintz, svrint_impl, (btrunc_optab, UNSPEC_COND_FRINTZ))
  FUNCTION (svrsqrte, unspec_based_function, (-1, UNSPEC_RSQRTE, UNSPEC_RSQRTE))
  FUNCTION (svrsqrts, unspec_based_function, (-1, -1, UNSPEC_RSQRTS))
  FUNCTION (svscale, unspec_based_function, (-1, -1, UNSPEC_COND_FSCALE))
*************** FUNCTION (svzip1q, unspec_based_function
*** 2849,2853 ****
--- 3263,3270 ----
  FUNCTION (svzip2, svzip_impl, (1))
  FUNCTION (svzip2q, unspec_based_function, (UNSPEC_ZIP2Q, UNSPEC_ZIP2Q,
  					   UNSPEC_ZIP2Q))
+ NEON_SVE_BRIDGE_FUNCTION (svget_neonq, svget_neonq_impl,)
+ NEON_SVE_BRIDGE_FUNCTION (svset_neonq, svset_neonq_impl,)
+ NEON_SVE_BRIDGE_FUNCTION (svdup_neonq, svdup_neonq_impl,)
  
  } /* end namespace aarch64_sve */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-base.def gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-base.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-base.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-base.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 17,23 ****
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
! #define REQUIRED_EXTENSIONS 0
  DEF_SVE_FUNCTION (svabd, binary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svabs, unary, all_float_and_signed, mxz)
  DEF_SVE_FUNCTION (svacge, compare_opt_n, all_float, implicit)
--- 17,23 ----
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_SVE
  DEF_SVE_FUNCTION (svabd, binary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svabs, unary, all_float_and_signed, mxz)
  DEF_SVE_FUNCTION (svacge, compare_opt_n, all_float, implicit)
*************** DEF_SVE_FUNCTION (svacgt, compare_opt_n,
*** 25,36 ****
  DEF_SVE_FUNCTION (svacle, compare_opt_n, all_float, implicit)
  DEF_SVE_FUNCTION (svaclt, compare_opt_n, all_float, implicit)
  DEF_SVE_FUNCTION (svadd, binary_opt_n, all_arith, mxz)
- DEF_SVE_FUNCTION (svadda, fold_left, all_float, implicit)
  DEF_SVE_FUNCTION (svaddv, reduction_wide, all_arith, implicit)
- DEF_SVE_FUNCTION (svadrb, adr_offset, none, none)
- DEF_SVE_FUNCTION (svadrd, adr_index, none, none)
- DEF_SVE_FUNCTION (svadrh, adr_index, none, none)
- DEF_SVE_FUNCTION (svadrw, adr_index, none, none)
  DEF_SVE_FUNCTION (svand, binary_opt_n, all_integer, mxz)
  DEF_SVE_FUNCTION (svand, binary_opt_n, b, z)
  DEF_SVE_FUNCTION (svandv, reduction, all_integer, implicit)
--- 25,31 ----
*************** DEF_SVE_FUNCTION (svcnth_pat, count_pat,
*** 75,89 ****
  DEF_SVE_FUNCTION (svcntp, count_pred, all_pred, implicit)
  DEF_SVE_FUNCTION (svcntw, count_inherent, none, none)
  DEF_SVE_FUNCTION (svcntw_pat, count_pat, none, none)
- DEF_SVE_FUNCTION (svcompact, unary, sd_data, implicit)
  DEF_SVE_FUNCTION (svcreate2, create, all_data, none)
  DEF_SVE_FUNCTION (svcreate3, create, all_data, none)
  DEF_SVE_FUNCTION (svcreate4, create, all_data, none)
! DEF_SVE_FUNCTION (svcvt, unary_convert, cvt, mxz)
  DEF_SVE_FUNCTION (svdiv, binary_opt_n, all_float_and_sd_integer, mxz)
  DEF_SVE_FUNCTION (svdivr, binary_opt_n, all_float_and_sd_integer, mxz)
! DEF_SVE_FUNCTION (svdot, ternary_qq_opt_n, sd_integer, none)
! DEF_SVE_FUNCTION (svdot_lane, ternary_qq_lane, sd_integer, none)
  DEF_SVE_FUNCTION (svdup, unary_n, all_data, mxz_or_none)
  DEF_SVE_FUNCTION (svdup, unary_n, all_pred, none)
  DEF_SVE_FUNCTION (svdup_lane, binary_uint_n, all_data, none)
--- 70,84 ----
  DEF_SVE_FUNCTION (svcntp, count_pred, all_pred, implicit)
  DEF_SVE_FUNCTION (svcntw, count_inherent, none, none)
  DEF_SVE_FUNCTION (svcntw_pat, count_pat, none, none)
  DEF_SVE_FUNCTION (svcreate2, create, all_data, none)
+ DEF_SVE_FUNCTION (svcreate2, create, b, none)
  DEF_SVE_FUNCTION (svcreate3, create, all_data, none)
  DEF_SVE_FUNCTION (svcreate4, create, all_data, none)
! DEF_SVE_FUNCTION (svcvt, unary_convertxn, cvt, mxz)
  DEF_SVE_FUNCTION (svdiv, binary_opt_n, all_float_and_sd_integer, mxz)
  DEF_SVE_FUNCTION (svdivr, binary_opt_n, all_float_and_sd_integer, mxz)
! DEF_SVE_FUNCTION (svdot, ternary_qq_opt_n_or_011, sd_integer, none)
! DEF_SVE_FUNCTION (svdot_lane, ternary_qq_or_011_lane, sd_integer, none)
  DEF_SVE_FUNCTION (svdup, unary_n, all_data, mxz_or_none)
  DEF_SVE_FUNCTION (svdup, unary_n, all_pred, none)
  DEF_SVE_FUNCTION (svdup_lane, binary_uint_n, all_data, none)
*************** DEF_SVE_FUNCTION (svdupq_lane, binary_ui
*** 93,104 ****
  DEF_SVE_FUNCTION (sveor, binary_opt_n, all_integer, mxz)
  DEF_SVE_FUNCTION (sveor, binary_opt_n, b, z)
  DEF_SVE_FUNCTION (sveorv, reduction, all_integer, implicit)
- DEF_SVE_FUNCTION (svexpa, unary_uint, all_float, none)
  DEF_SVE_FUNCTION (svext, ext, all_data, none)
  DEF_SVE_FUNCTION (svextb, unary, hsd_integer, mxz)
  DEF_SVE_FUNCTION (svexth, unary, sd_integer, mxz)
  DEF_SVE_FUNCTION (svextw, unary, d_integer, mxz)
  DEF_SVE_FUNCTION (svget2, get, all_data, none)
  DEF_SVE_FUNCTION (svget3, get, all_data, none)
  DEF_SVE_FUNCTION (svget4, get, all_data, none)
  DEF_SVE_FUNCTION (svindex, binary_scalar, all_integer, none)
--- 88,99 ----
  DEF_SVE_FUNCTION (sveor, binary_opt_n, all_integer, mxz)
  DEF_SVE_FUNCTION (sveor, binary_opt_n, b, z)
  DEF_SVE_FUNCTION (sveorv, reduction, all_integer, implicit)
  DEF_SVE_FUNCTION (svext, ext, all_data, none)
  DEF_SVE_FUNCTION (svextb, unary, hsd_integer, mxz)
  DEF_SVE_FUNCTION (svexth, unary, sd_integer, mxz)
  DEF_SVE_FUNCTION (svextw, unary, d_integer, mxz)
  DEF_SVE_FUNCTION (svget2, get, all_data, none)
+ DEF_SVE_FUNCTION (svget2, get, b, none)
  DEF_SVE_FUNCTION (svget3, get, all_data, none)
  DEF_SVE_FUNCTION (svget4, get, all_data, none)
  DEF_SVE_FUNCTION (svindex, binary_scalar, all_integer, none)
*************** DEF_SVE_FUNCTION (svinsr, binary_n, all_
*** 106,156 ****
  DEF_SVE_FUNCTION (svlasta, reduction, all_data, implicit)
  DEF_SVE_FUNCTION (svlastb, reduction, all_data, implicit)
  DEF_SVE_FUNCTION (svld1, load, all_data, implicit)
- DEF_SVE_FUNCTION (svld1_gather, load_gather_sv, sd_data, implicit)
- DEF_SVE_FUNCTION (svld1_gather, load_gather_vs, sd_data, implicit)
  DEF_SVE_FUNCTION (svld1rq, load_replicate, all_data, implicit)
  DEF_SVE_FUNCTION (svld1sb, load_ext, hsd_integer, implicit)
- DEF_SVE_FUNCTION (svld1sb_gather, load_ext_gather_offset, sd_integer, implicit)
  DEF_SVE_FUNCTION (svld1sh, load_ext, sd_integer, implicit)
- DEF_SVE_FUNCTION (svld1sh_gather, load_ext_gather_offset, sd_integer, implicit)
- DEF_SVE_FUNCTION (svld1sh_gather, load_ext_gather_index, sd_integer, implicit)
  DEF_SVE_FUNCTION (svld1sw, load_ext, d_integer, implicit)
- DEF_SVE_FUNCTION (svld1sw_gather, load_ext_gather_offset, d_integer, implicit)
- DEF_SVE_FUNCTION (svld1sw_gather, load_ext_gather_index, d_integer, implicit)
  DEF_SVE_FUNCTION (svld1ub, load_ext, hsd_integer, implicit)
- DEF_SVE_FUNCTION (svld1ub_gather, load_ext_gather_offset, sd_integer, implicit)
  DEF_SVE_FUNCTION (svld1uh, load_ext, sd_integer, implicit)
- DEF_SVE_FUNCTION (svld1uh_gather, load_ext_gather_offset, sd_integer, implicit)
- DEF_SVE_FUNCTION (svld1uh_gather, load_ext_gather_index, sd_integer, implicit)
  DEF_SVE_FUNCTION (svld1uw, load_ext, d_integer, implicit)
- DEF_SVE_FUNCTION (svld1uw_gather, load_ext_gather_offset, d_integer, implicit)
- DEF_SVE_FUNCTION (svld1uw_gather, load_ext_gather_index, d_integer, implicit)
- DEF_SVE_FUNCTION (svldff1, load, all_data, implicit)
- DEF_SVE_FUNCTION (svldff1_gather, load_gather_sv, sd_data, implicit)
- DEF_SVE_FUNCTION (svldff1_gather, load_gather_vs, sd_data, implicit)
- DEF_SVE_FUNCTION (svldff1sb, load_ext, hsd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1sb_gather, load_ext_gather_offset, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1sh, load_ext, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1sh_gather, load_ext_gather_offset, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1sh_gather, load_ext_gather_index, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1sw, load_ext, d_integer, implicit)
- DEF_SVE_FUNCTION (svldff1sw_gather, load_ext_gather_offset, d_integer, implicit)
- DEF_SVE_FUNCTION (svldff1sw_gather, load_ext_gather_index, d_integer, implicit)
- DEF_SVE_FUNCTION (svldff1ub, load_ext, hsd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1ub_gather, load_ext_gather_offset, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1uh, load_ext, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1uh_gather, load_ext_gather_offset, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1uh_gather, load_ext_gather_index, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldff1uw, load_ext, d_integer, implicit)
- DEF_SVE_FUNCTION (svldff1uw_gather, load_ext_gather_offset, d_integer, implicit)
- DEF_SVE_FUNCTION (svldff1uw_gather, load_ext_gather_index, d_integer, implicit)
- DEF_SVE_FUNCTION (svldnf1, load, all_data, implicit)
- DEF_SVE_FUNCTION (svldnf1sb, load_ext, hsd_integer, implicit)
- DEF_SVE_FUNCTION (svldnf1sh, load_ext, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldnf1sw, load_ext, d_integer, implicit)
- DEF_SVE_FUNCTION (svldnf1ub, load_ext, hsd_integer, implicit)
- DEF_SVE_FUNCTION (svldnf1uh, load_ext, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldnf1uw, load_ext, d_integer, implicit)
  DEF_SVE_FUNCTION (svldnt1, load, all_data, implicit)
  DEF_SVE_FUNCTION (svld2, load, all_data, implicit)
  DEF_SVE_FUNCTION (svld3, load, all_data, implicit)
--- 101,113 ----
*************** DEF_SVE_FUNCTION (svlsl_wide, binary_uin
*** 161,179 ****
  DEF_SVE_FUNCTION (svlsr, binary_uint_opt_n, all_unsigned, mxz)
  DEF_SVE_FUNCTION (svlsr_wide, binary_uint64_opt_n, bhs_unsigned, mxz)
  DEF_SVE_FUNCTION (svmad, ternary_opt_n, all_arith, mxz)
! DEF_SVE_FUNCTION (svmax, binary_opt_n, all_arith, mxz)
! DEF_SVE_FUNCTION (svmaxnm, binary_opt_n, all_float, mxz)
  DEF_SVE_FUNCTION (svmaxnmv, reduction, all_float, implicit)
  DEF_SVE_FUNCTION (svmaxv, reduction, all_arith, implicit)
! DEF_SVE_FUNCTION (svmin, binary_opt_n, all_arith, mxz)
! DEF_SVE_FUNCTION (svminnm, binary_opt_n, all_float, mxz)
  DEF_SVE_FUNCTION (svminnmv, reduction, all_float, implicit)
  DEF_SVE_FUNCTION (svminv, reduction, all_arith, implicit)
  DEF_SVE_FUNCTION (svmla, ternary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svmla_lane, ternary_lane, all_float, none)
  DEF_SVE_FUNCTION (svmls, ternary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svmls_lane, ternary_lane, all_float, none)
- DEF_SVE_FUNCTION (svmmla, mmla, none, none)
  DEF_SVE_FUNCTION (svmov, unary, b, z)
  DEF_SVE_FUNCTION (svmsb, ternary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svmul, binary_opt_n, all_arith, mxz)
--- 118,135 ----
  DEF_SVE_FUNCTION (svlsr, binary_uint_opt_n, all_unsigned, mxz)
  DEF_SVE_FUNCTION (svlsr_wide, binary_uint64_opt_n, bhs_unsigned, mxz)
  DEF_SVE_FUNCTION (svmad, ternary_opt_n, all_arith, mxz)
! DEF_SVE_FUNCTION (svmax, binary_opt_single_n, all_arith, mxz)
! DEF_SVE_FUNCTION (svmaxnm, binary_opt_single_n, all_float, mxz)
  DEF_SVE_FUNCTION (svmaxnmv, reduction, all_float, implicit)
  DEF_SVE_FUNCTION (svmaxv, reduction, all_arith, implicit)
! DEF_SVE_FUNCTION (svmin, binary_opt_single_n, all_arith, mxz)
! DEF_SVE_FUNCTION (svminnm, binary_opt_single_n, all_float, mxz)
  DEF_SVE_FUNCTION (svminnmv, reduction, all_float, implicit)
  DEF_SVE_FUNCTION (svminv, reduction, all_arith, implicit)
  DEF_SVE_FUNCTION (svmla, ternary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svmla_lane, ternary_lane, all_float, none)
  DEF_SVE_FUNCTION (svmls, ternary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svmls_lane, ternary_lane, all_float, none)
  DEF_SVE_FUNCTION (svmov, unary, b, z)
  DEF_SVE_FUNCTION (svmsb, ternary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svmul, binary_opt_n, all_arith, mxz)
*************** DEF_SVE_FUNCTION (svorr, binary_opt_n, a
*** 194,209 ****
  DEF_SVE_FUNCTION (svorr, binary_opt_n, b, z)
  DEF_SVE_FUNCTION (svorv, reduction, all_integer, implicit)
  DEF_SVE_FUNCTION (svpfalse, inherent_b, b, none)
  DEF_SVE_FUNCTION (svpfirst, unary, b, implicit)
  DEF_SVE_FUNCTION (svpnext, unary_pred, all_pred, implicit)
  DEF_SVE_FUNCTION (svprfb, prefetch, none, implicit)
- DEF_SVE_FUNCTION (svprfb_gather, prefetch_gather_offset, none, implicit)
  DEF_SVE_FUNCTION (svprfd, prefetch, none, implicit)
- DEF_SVE_FUNCTION (svprfd_gather, prefetch_gather_index, none, implicit)
  DEF_SVE_FUNCTION (svprfh, prefetch, none, implicit)
- DEF_SVE_FUNCTION (svprfh_gather, prefetch_gather_index, none, implicit)
  DEF_SVE_FUNCTION (svprfw, prefetch, none, implicit)
- DEF_SVE_FUNCTION (svprfw_gather, prefetch_gather_index, none, implicit)
  DEF_SVE_FUNCTION (svptest_any, ptest, none, implicit)
  DEF_SVE_FUNCTION (svptest_first, ptest, none, implicit)
  DEF_SVE_FUNCTION (svptest_last, ptest, none, implicit)
--- 150,162 ----
  DEF_SVE_FUNCTION (svorr, binary_opt_n, b, z)
  DEF_SVE_FUNCTION (svorv, reduction, all_integer, implicit)
  DEF_SVE_FUNCTION (svpfalse, inherent_b, b, none)
+ DEF_SVE_FUNCTION (svpfalse, inherent, c, none)
  DEF_SVE_FUNCTION (svpfirst, unary, b, implicit)
  DEF_SVE_FUNCTION (svpnext, unary_pred, all_pred, implicit)
  DEF_SVE_FUNCTION (svprfb, prefetch, none, implicit)
  DEF_SVE_FUNCTION (svprfd, prefetch, none, implicit)
  DEF_SVE_FUNCTION (svprfh, prefetch, none, implicit)
  DEF_SVE_FUNCTION (svprfw, prefetch, none, implicit)
  DEF_SVE_FUNCTION (svptest_any, ptest, none, implicit)
  DEF_SVE_FUNCTION (svptest_first, ptest, none, implicit)
  DEF_SVE_FUNCTION (svptest_last, ptest, none, implicit)
*************** DEF_SVE_FUNCTION (svqincw_pat, inc_dec_p
*** 244,304 ****
  DEF_SVE_FUNCTION (svqincw_pat, inc_dec_pat, sd_integer, none)
  DEF_SVE_FUNCTION (svqsub, binary_opt_n, all_integer, none)
  DEF_SVE_FUNCTION (svrbit, unary, all_integer, mxz)
- DEF_SVE_FUNCTION (svrdffr, rdffr, none, z_or_none)
  DEF_SVE_FUNCTION (svrecpe, unary, all_float, none)
  DEF_SVE_FUNCTION (svrecps, binary, all_float, none)
  DEF_SVE_FUNCTION (svrecpx, unary, all_float, mxz)
! DEF_SVE_FUNCTION (svreinterpret, unary_convert, reinterpret, none)
  DEF_SVE_FUNCTION (svrev, unary, all_data, none)
  DEF_SVE_FUNCTION (svrev, unary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svrevb, unary, hsd_integer, mxz)
  DEF_SVE_FUNCTION (svrevh, unary, sd_integer, mxz)
  DEF_SVE_FUNCTION (svrevw, unary, d_integer, mxz)
! DEF_SVE_FUNCTION (svrinta, unary, all_float, mxz)
  DEF_SVE_FUNCTION (svrinti, unary, all_float, mxz)
! DEF_SVE_FUNCTION (svrintm, unary, all_float, mxz)
! DEF_SVE_FUNCTION (svrintn, unary, all_float, mxz)
! DEF_SVE_FUNCTION (svrintp, unary, all_float, mxz)
  DEF_SVE_FUNCTION (svrintx, unary, all_float, mxz)
  DEF_SVE_FUNCTION (svrintz, unary, all_float, mxz)
  DEF_SVE_FUNCTION (svrsqrte, unary, all_float, none)
  DEF_SVE_FUNCTION (svrsqrts, binary, all_float, none)
  DEF_SVE_FUNCTION (svscale, binary_int_opt_n, all_float, mxz)
! DEF_SVE_FUNCTION (svsel, binary, all_data, implicit)
! DEF_SVE_FUNCTION (svsel, binary, b, implicit)
  DEF_SVE_FUNCTION (svset2, set, all_data, none)
  DEF_SVE_FUNCTION (svset3, set, all_data, none)
  DEF_SVE_FUNCTION (svset4, set, all_data, none)
- DEF_SVE_FUNCTION (svsetffr, setffr, none, none)
  DEF_SVE_FUNCTION (svsplice, binary, all_data, implicit)
  DEF_SVE_FUNCTION (svsqrt, unary, all_float, mxz)
! DEF_SVE_FUNCTION (svst1, store, all_data, implicit)
! DEF_SVE_FUNCTION (svst1_scatter, store_scatter_index, sd_data, implicit)
! DEF_SVE_FUNCTION (svst1_scatter, store_scatter_offset, sd_data, implicit)
  DEF_SVE_FUNCTION (svst1b, store, hsd_integer, implicit)
- DEF_SVE_FUNCTION (svst1b_scatter, store_scatter_offset, sd_integer, implicit)
  DEF_SVE_FUNCTION (svst1h, store, sd_integer, implicit)
- DEF_SVE_FUNCTION (svst1h_scatter, store_scatter_index, sd_integer, implicit)
- DEF_SVE_FUNCTION (svst1h_scatter, store_scatter_offset, sd_integer, implicit)
  DEF_SVE_FUNCTION (svst1w, store, d_integer, implicit)
- DEF_SVE_FUNCTION (svst1w_scatter, store_scatter_index, d_integer, implicit)
- DEF_SVE_FUNCTION (svst1w_scatter, store_scatter_offset, d_integer, implicit)
  DEF_SVE_FUNCTION (svst2, store, all_data, implicit)
  DEF_SVE_FUNCTION (svst3, store, all_data, implicit)
  DEF_SVE_FUNCTION (svst4, store, all_data, implicit)
! DEF_SVE_FUNCTION (svstnt1, store, all_data, implicit)
  DEF_SVE_FUNCTION (svsub, binary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svsubr, binary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svtbl, binary_uint, all_data, none)
- DEF_SVE_FUNCTION (svtmad, tmad, all_float, none)
  DEF_SVE_FUNCTION (svtrn1, binary, all_data, none)
  DEF_SVE_FUNCTION (svtrn1, binary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svtrn2, binary, all_data, none)
  DEF_SVE_FUNCTION (svtrn2, binary_pred, all_pred, none)
- DEF_SVE_FUNCTION (svtsmul, binary_uint, all_float, none)
- DEF_SVE_FUNCTION (svtssel, binary_uint, all_float, none)
  DEF_SVE_FUNCTION (svundef, inherent, all_data, none)
  DEF_SVE_FUNCTION (svundef2, inherent, all_data, none)
  DEF_SVE_FUNCTION (svundef3, inherent, all_data, none)
  DEF_SVE_FUNCTION (svundef4, inherent, all_data, none)
  DEF_SVE_FUNCTION (svunpkhi, unary_widen, hsd_integer, none)
--- 197,248 ----
  DEF_SVE_FUNCTION (svqincw_pat, inc_dec_pat, sd_integer, none)
  DEF_SVE_FUNCTION (svqsub, binary_opt_n, all_integer, none)
  DEF_SVE_FUNCTION (svrbit, unary, all_integer, mxz)
  DEF_SVE_FUNCTION (svrecpe, unary, all_float, none)
  DEF_SVE_FUNCTION (svrecps, binary, all_float, none)
  DEF_SVE_FUNCTION (svrecpx, unary, all_float, mxz)
! DEF_SVE_FUNCTION_GS (svreinterpret, reinterpret, reinterpret, x1234, none)
! DEF_SVE_FUNCTION (svreinterpret, reinterpret, reinterpret_b, none)
  DEF_SVE_FUNCTION (svrev, unary, all_data, none)
  DEF_SVE_FUNCTION (svrev, unary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svrevb, unary, hsd_integer, mxz)
  DEF_SVE_FUNCTION (svrevh, unary, sd_integer, mxz)
  DEF_SVE_FUNCTION (svrevw, unary, d_integer, mxz)
! DEF_SVE_FUNCTION (svrinta, unaryxn, all_float, mxz)
  DEF_SVE_FUNCTION (svrinti, unary, all_float, mxz)
! DEF_SVE_FUNCTION (svrintm, unaryxn, all_float, mxz)
! DEF_SVE_FUNCTION (svrintn, unaryxn, all_float, mxz)
! DEF_SVE_FUNCTION (svrintp, unaryxn, all_float, mxz)
  DEF_SVE_FUNCTION (svrintx, unary, all_float, mxz)
  DEF_SVE_FUNCTION (svrintz, unary, all_float, mxz)
  DEF_SVE_FUNCTION (svrsqrte, unary, all_float, none)
  DEF_SVE_FUNCTION (svrsqrts, binary, all_float, none)
  DEF_SVE_FUNCTION (svscale, binary_int_opt_n, all_float, mxz)
! DEF_SVE_FUNCTION (svsel, binaryxn, all_data, implicit)
! DEF_SVE_FUNCTION (svsel, binaryxn, b, implicit)
  DEF_SVE_FUNCTION (svset2, set, all_data, none)
+ DEF_SVE_FUNCTION (svset2, set, b, none)
  DEF_SVE_FUNCTION (svset3, set, all_data, none)
  DEF_SVE_FUNCTION (svset4, set, all_data, none)
  DEF_SVE_FUNCTION (svsplice, binary, all_data, implicit)
  DEF_SVE_FUNCTION (svsqrt, unary, all_float, mxz)
! DEF_SVE_FUNCTION (svst1, storexn, all_data, implicit)
  DEF_SVE_FUNCTION (svst1b, store, hsd_integer, implicit)
  DEF_SVE_FUNCTION (svst1h, store, sd_integer, implicit)
  DEF_SVE_FUNCTION (svst1w, store, d_integer, implicit)
  DEF_SVE_FUNCTION (svst2, store, all_data, implicit)
  DEF_SVE_FUNCTION (svst3, store, all_data, implicit)
  DEF_SVE_FUNCTION (svst4, store, all_data, implicit)
! DEF_SVE_FUNCTION (svstnt1, storexn, all_data, implicit)
  DEF_SVE_FUNCTION (svsub, binary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svsubr, binary_opt_n, all_arith, mxz)
  DEF_SVE_FUNCTION (svtbl, binary_uint, all_data, none)
  DEF_SVE_FUNCTION (svtrn1, binary, all_data, none)
  DEF_SVE_FUNCTION (svtrn1, binary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svtrn2, binary, all_data, none)
  DEF_SVE_FUNCTION (svtrn2, binary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svundef, inherent, all_data, none)
  DEF_SVE_FUNCTION (svundef2, inherent, all_data, none)
+ DEF_SVE_FUNCTION (svundef2, inherent, b, none)
  DEF_SVE_FUNCTION (svundef3, inherent, all_data, none)
  DEF_SVE_FUNCTION (svundef4, inherent, all_data, none)
  DEF_SVE_FUNCTION (svunpkhi, unary_widen, hsd_integer, none)
*************** DEF_SVE_FUNCTION (svuzp2, binary, all_da
*** 311,351 ****
  DEF_SVE_FUNCTION (svuzp2, binary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svwhilele, compare_scalar, while, none)
  DEF_SVE_FUNCTION (svwhilelt, compare_scalar, while, none)
- DEF_SVE_FUNCTION (svwrffr, setffr, none, implicit)
  DEF_SVE_FUNCTION (svzip1, binary, all_data, none)
  DEF_SVE_FUNCTION (svzip1, binary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svzip2, binary, all_data, none)
  DEF_SVE_FUNCTION (svzip2, binary_pred, all_pred, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_BF16
  DEF_SVE_FUNCTION (svbfdot, ternary_bfloat_opt_n, s_float, none)
  DEF_SVE_FUNCTION (svbfdot_lane, ternary_bfloat_lanex2, s_float, none)
  DEF_SVE_FUNCTION (svbfmlalb, ternary_bfloat_opt_n, s_float, none)
  DEF_SVE_FUNCTION (svbfmlalb_lane, ternary_bfloat_lane, s_float, none)
  DEF_SVE_FUNCTION (svbfmlalt, ternary_bfloat_opt_n, s_float, none)
  DEF_SVE_FUNCTION (svbfmlalt_lane, ternary_bfloat_lane, s_float, none)
! DEF_SVE_FUNCTION (svbfmmla, ternary_bfloat, s_float, none)
! DEF_SVE_FUNCTION (svcvt, unary_convert, cvt_bfloat, mxz)
  DEF_SVE_FUNCTION (svcvtnt, unary_convert_narrowt, cvt_bfloat, mx)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_I8MM
! DEF_SVE_FUNCTION (svmmla, mmla, s_integer, none)
! DEF_SVE_FUNCTION (svusmmla, ternary_uintq_intq, s_signed, none)
  DEF_SVE_FUNCTION (svsudot, ternary_intq_uintq_opt_n, s_signed, none)
  DEF_SVE_FUNCTION (svsudot_lane, ternary_intq_uintq_lane, s_signed, none)
  DEF_SVE_FUNCTION (svusdot, ternary_uintq_intq_opt_n, s_signed, none)
  DEF_SVE_FUNCTION (svusdot_lane, ternary_uintq_intq_lane, s_signed, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_F32MM
  DEF_SVE_FUNCTION (svmmla, mmla, s_float, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_F64MM
! DEF_SVE_FUNCTION (svld1ro, load_replicate, all_data, implicit)
! DEF_SVE_FUNCTION (svmmla, mmla, d_float, none)
  DEF_SVE_FUNCTION (svtrn1q, binary, all_data, none)
  DEF_SVE_FUNCTION (svtrn2q, binary, all_data, none)
  DEF_SVE_FUNCTION (svuzp1q, binary, all_data, none)
--- 255,370 ----
  DEF_SVE_FUNCTION (svuzp2, binary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svwhilele, compare_scalar, while, none)
  DEF_SVE_FUNCTION (svwhilelt, compare_scalar, while, none)
  DEF_SVE_FUNCTION (svzip1, binary, all_data, none)
  DEF_SVE_FUNCTION (svzip1, binary_pred, all_pred, none)
  DEF_SVE_FUNCTION (svzip2, binary, all_data, none)
  DEF_SVE_FUNCTION (svzip2, binary_pred, all_pred, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_SVE | AARCH64_FL_SM_OFF
! DEF_SVE_FUNCTION (svadda, fold_left, all_float, implicit)
! DEF_SVE_FUNCTION (svadrb, adr_offset, none, none)
! DEF_SVE_FUNCTION (svadrd, adr_index, none, none)
! DEF_SVE_FUNCTION (svadrh, adr_index, none, none)
! DEF_SVE_FUNCTION (svadrw, adr_index, none, none)
! DEF_SVE_FUNCTION (svcompact, unary, sd_data, implicit)
! DEF_SVE_FUNCTION (svexpa, unary_uint, all_float, none)
! DEF_SVE_FUNCTION (svld1_gather, load_gather_sv, sd_data, implicit)
! DEF_SVE_FUNCTION (svld1_gather, load_gather_vs, sd_data, implicit)
! DEF_SVE_FUNCTION (svld1sb_gather, load_ext_gather_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svld1sh_gather, load_ext_gather_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svld1sh_gather, load_ext_gather_index, sd_integer, implicit)
! DEF_SVE_FUNCTION (svld1sw_gather, load_ext_gather_offset, d_integer, implicit)
! DEF_SVE_FUNCTION (svld1sw_gather, load_ext_gather_index, d_integer, implicit)
! DEF_SVE_FUNCTION (svld1ub_gather, load_ext_gather_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svld1uh_gather, load_ext_gather_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svld1uh_gather, load_ext_gather_index, sd_integer, implicit)
! DEF_SVE_FUNCTION (svld1uw_gather, load_ext_gather_offset, d_integer, implicit)
! DEF_SVE_FUNCTION (svld1uw_gather, load_ext_gather_index, d_integer, implicit)
! DEF_SVE_FUNCTION (svldff1, load, all_data, implicit)
! DEF_SVE_FUNCTION (svldff1_gather, load_gather_sv, sd_data, implicit)
! DEF_SVE_FUNCTION (svldff1_gather, load_gather_vs, sd_data, implicit)
! DEF_SVE_FUNCTION (svldff1sb, load_ext, hsd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1sb_gather, load_ext_gather_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1sh, load_ext, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1sh_gather, load_ext_gather_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1sh_gather, load_ext_gather_index, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1sw, load_ext, d_integer, implicit)
! DEF_SVE_FUNCTION (svldff1sw_gather, load_ext_gather_offset, d_integer, implicit)
! DEF_SVE_FUNCTION (svldff1sw_gather, load_ext_gather_index, d_integer, implicit)
! DEF_SVE_FUNCTION (svldff1ub, load_ext, hsd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1ub_gather, load_ext_gather_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1uh, load_ext, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1uh_gather, load_ext_gather_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1uh_gather, load_ext_gather_index, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldff1uw, load_ext, d_integer, implicit)
! DEF_SVE_FUNCTION (svldff1uw_gather, load_ext_gather_offset, d_integer, implicit)
! DEF_SVE_FUNCTION (svldff1uw_gather, load_ext_gather_index, d_integer, implicit)
! DEF_SVE_FUNCTION (svldnf1, load, all_data, implicit)
! DEF_SVE_FUNCTION (svldnf1sb, load_ext, hsd_integer, implicit)
! DEF_SVE_FUNCTION (svldnf1sh, load_ext, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldnf1sw, load_ext, d_integer, implicit)
! DEF_SVE_FUNCTION (svldnf1ub, load_ext, hsd_integer, implicit)
! DEF_SVE_FUNCTION (svldnf1uh, load_ext, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldnf1uw, load_ext, d_integer, implicit)
! DEF_SVE_FUNCTION (svmmla, mmla, none, none)
! DEF_SVE_FUNCTION (svprfb_gather, prefetch_gather_offset, none, implicit)
! DEF_SVE_FUNCTION (svprfd_gather, prefetch_gather_index, none, implicit)
! DEF_SVE_FUNCTION (svprfh_gather, prefetch_gather_index, none, implicit)
! DEF_SVE_FUNCTION (svprfw_gather, prefetch_gather_index, none, implicit)
! DEF_SVE_FUNCTION (svrdffr, rdffr, none, z_or_none)
! DEF_SVE_FUNCTION (svsetffr, setffr, none, none)
! DEF_SVE_FUNCTION (svst1_scatter, store_scatter_index, sd_data, implicit)
! DEF_SVE_FUNCTION (svst1_scatter, store_scatter_offset, sd_data, implicit)
! DEF_SVE_FUNCTION (svst1b_scatter, store_scatter_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svst1h_scatter, store_scatter_index, sd_integer, implicit)
! DEF_SVE_FUNCTION (svst1h_scatter, store_scatter_offset, sd_integer, implicit)
! DEF_SVE_FUNCTION (svst1w_scatter, store_scatter_index, d_integer, implicit)
! DEF_SVE_FUNCTION (svst1w_scatter, store_scatter_offset, d_integer, implicit)
! DEF_SVE_FUNCTION (svtmad, tmad, all_float, none)
! DEF_SVE_FUNCTION (svtsmul, binary_uint, all_float, none)
! DEF_SVE_FUNCTION (svtssel, binary_uint, all_float, none)
! DEF_SVE_FUNCTION (svwrffr, setffr, none, implicit)
! #undef REQUIRED_EXTENSIONS
! 
! #define REQUIRED_EXTENSIONS AARCH64_FL_SVE | AARCH64_FL_BF16
  DEF_SVE_FUNCTION (svbfdot, ternary_bfloat_opt_n, s_float, none)
  DEF_SVE_FUNCTION (svbfdot_lane, ternary_bfloat_lanex2, s_float, none)
  DEF_SVE_FUNCTION (svbfmlalb, ternary_bfloat_opt_n, s_float, none)
  DEF_SVE_FUNCTION (svbfmlalb_lane, ternary_bfloat_lane, s_float, none)
  DEF_SVE_FUNCTION (svbfmlalt, ternary_bfloat_opt_n, s_float, none)
  DEF_SVE_FUNCTION (svbfmlalt_lane, ternary_bfloat_lane, s_float, none)
! DEF_SVE_FUNCTION (svcvt, unary_convertxn, cvt_bfloat, mxz)
  DEF_SVE_FUNCTION (svcvtnt, unary_convert_narrowt, cvt_bfloat, mx)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
! 			     | AARCH64_FL_BF16 \
! 			     | AARCH64_FL_SM_OFF)
! DEF_SVE_FUNCTION (svbfmmla, ternary_bfloat, s_float, none)
! #undef REQUIRED_EXTENSIONS
! 
! #define REQUIRED_EXTENSIONS AARCH64_FL_SVE | AARCH64_FL_I8MM
  DEF_SVE_FUNCTION (svsudot, ternary_intq_uintq_opt_n, s_signed, none)
  DEF_SVE_FUNCTION (svsudot_lane, ternary_intq_uintq_lane, s_signed, none)
  DEF_SVE_FUNCTION (svusdot, ternary_uintq_intq_opt_n, s_signed, none)
  DEF_SVE_FUNCTION (svusdot_lane, ternary_uintq_intq_lane, s_signed, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
! 			     | AARCH64_FL_I8MM \
! 			     | AARCH64_FL_SM_OFF)
! DEF_SVE_FUNCTION (svmmla, mmla, s_integer, none)
! DEF_SVE_FUNCTION (svusmmla, ternary_uintq_intq, s_signed, none)
! #undef REQUIRED_EXTENSIONS
! 
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
! 			     | AARCH64_FL_F32MM \
! 			     | AARCH64_FL_SM_OFF)
  DEF_SVE_FUNCTION (svmmla, mmla, s_float, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_SVE | AARCH64_FL_F64MM
  DEF_SVE_FUNCTION (svtrn1q, binary, all_data, none)
  DEF_SVE_FUNCTION (svtrn2q, binary, all_data, none)
  DEF_SVE_FUNCTION (svuzp1q, binary, all_data, none)
*************** DEF_SVE_FUNCTION (svuzp2q, binary, all_d
*** 353,355 ****
--- 372,381 ----
  DEF_SVE_FUNCTION (svzip1q, binary, all_data, none)
  DEF_SVE_FUNCTION (svzip2q, binary, all_data, none)
  #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
+ 			     | AARCH64_FL_F64MM \
+ 			     | AARCH64_FL_SM_OFF)
+ DEF_SVE_FUNCTION (svld1ro, load_replicate, all_data, implicit)
+ DEF_SVE_FUNCTION (svmmla, mmla, d_float, none)
+ #undef REQUIRED_EXTENSIONS
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-base.h gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-base.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-base.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-base.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** namespace aarch64_sve
*** 299,304 ****
--- 299,310 ----
      extern const function_base *const svzip2;
      extern const function_base *const svzip2q;
    }
+   namespace neon_sve_bridge_functions
+   {
+     extern const function_base *const svset_neonq;
+     extern const function_base *const svget_neonq;
+     extern const function_base *const svdup_neonq;
+   }
  }
  
  #endif
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-functions.h gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-functions.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-functions.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-functions.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (function_base classes)
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (function_base classes)
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** public:
*** 39,44 ****
--- 39,71 ----
    }
  };
  
+ /* Wrap T, which is derived from function_base, and indicate that it
+    additionally has the call properties in PROPERTIES.  */
+ template<typename T, unsigned int PROPERTIES>
+ class add_call_properties : public T
+ {
+ public:
+   using T::T;
+ 
+   unsigned int
+   call_properties (const function_instance &fi) const override
+   {
+     return T::call_properties (fi) | PROPERTIES;
+   }
+ };
+ 
+ template<typename T>
+ using read_write_za = add_call_properties<T, CP_READ_ZA | CP_WRITE_ZA>;
+ 
+ template<typename T>
+ using write_za = add_call_properties<T, CP_WRITE_ZA>;
+ 
+ template<typename T>
+ using read_zt0 = add_call_properties<T, CP_READ_ZT0>;
+ 
+ template<typename T>
+ using write_zt0 = add_call_properties<T, CP_WRITE_ZT0>;
+ 
  /* A function_base that sometimes or always operates on tuples of
     vectors.  */
  class multi_vector_function : public function_base
*************** public:
*** 48,55 ****
      : m_vectors_per_tuple (vectors_per_tuple) {}
  
    unsigned int
!   vectors_per_tuple () const override
    {
      return m_vectors_per_tuple;
    }
  
--- 75,87 ----
      : m_vectors_per_tuple (vectors_per_tuple) {}
  
    unsigned int
!   vectors_per_tuple (const function_instance &fi) const override
    {
+     if (fi.group_suffix_id != GROUP_none)
+       {
+ 	gcc_checking_assert (m_vectors_per_tuple == 1);
+ 	return fi.group_suffix ().vectors_per_tuple;
+       }
      return m_vectors_per_tuple;
    }
  
*************** public:
*** 76,83 ****
    memory_vector_mode (const function_instance &fi) const override
    {
      machine_mode mode = fi.vector_mode (0);
!     if (m_vectors_per_tuple != 1)
!       mode = targetm.array_mode (mode, m_vectors_per_tuple).require ();
      return mode;
    }
  };
--- 108,116 ----
    memory_vector_mode (const function_instance &fi) const override
    {
      machine_mode mode = fi.vector_mode (0);
!     auto vectors_per_tuple = fi.vectors_per_tuple ();
!     if (vectors_per_tuple != 1)
!       mode = targetm.array_mode (mode, vectors_per_tuple).require ();
      return mode;
    }
  };
*************** class rtx_code_function_base : public fu
*** 170,178 ****
  public:
    CONSTEXPR rtx_code_function_base (rtx_code code_for_sint,
  				    rtx_code code_for_uint,
! 				    int unspec_for_fp = -1)
      : m_code_for_sint (code_for_sint), m_code_for_uint (code_for_uint),
!       m_unspec_for_fp (unspec_for_fp) {}
  
    /* The rtx code to use for signed and unsigned integers respectively.
       Can be UNKNOWN for functions that don't have integer forms.  */
--- 203,213 ----
  public:
    CONSTEXPR rtx_code_function_base (rtx_code code_for_sint,
  				    rtx_code code_for_uint,
! 				    int unspec_for_cond_fp = -1,
! 				    int unspec_for_uncond_fp = -1)
      : m_code_for_sint (code_for_sint), m_code_for_uint (code_for_uint),
!       m_unspec_for_cond_fp (unspec_for_cond_fp),
!       m_unspec_for_uncond_fp (unspec_for_uncond_fp) {}
  
    /* The rtx code to use for signed and unsigned integers respectively.
       Can be UNKNOWN for functions that don't have integer forms.  */
*************** public:
*** 181,187 ****
  
    /* The UNSPEC_COND_* to use for floating-point operations.  Can be -1
       for functions that only operate on integers.  */
!   int m_unspec_for_fp;
  };
  
  /* A function_base for functions that have an associated rtx code.
--- 216,226 ----
  
    /* The UNSPEC_COND_* to use for floating-point operations.  Can be -1
       for functions that only operate on integers.  */
!   int m_unspec_for_cond_fp;
! 
!   /* The UNSPEC_* to use for unpredicated floating-point operations.
!      Can be -1 if there is no such operation.  */
!   int m_unspec_for_uncond_fp;
  };
  
  /* A function_base for functions that have an associated rtx code.
*************** public:
*** 195,201 ****
    expand (function_expander &e) const override
    {
      return e.map_to_rtx_codes (m_code_for_sint, m_code_for_uint,
! 			       m_unspec_for_fp);
    }
  };
  
--- 234,240 ----
    expand (function_expander &e) const override
    {
      return e.map_to_rtx_codes (m_code_for_sint, m_code_for_uint,
! 			       m_unspec_for_cond_fp, m_unspec_for_uncond_fp);
    }
  };
  
*************** public:
*** 216,222 ****
      unsigned int nargs = e.args.length ();
      e.rotate_inputs_left (e.pred != PRED_none ? 1 : 0, nargs);
      return e.map_to_rtx_codes (m_code_for_sint, m_code_for_uint,
! 			       m_unspec_for_fp, nargs - 1);
    }
  };
  
--- 255,262 ----
      unsigned int nargs = e.args.length ();
      e.rotate_inputs_left (e.pred != PRED_none ? 1 : 0, nargs);
      return e.map_to_rtx_codes (m_code_for_sint, m_code_for_uint,
! 			       m_unspec_for_cond_fp, m_unspec_for_uncond_fp,
! 			       nargs - 1);
    }
  };
  
*************** class unspec_based_function_base : publi
*** 229,246 ****
  public:
    CONSTEXPR unspec_based_function_base (int unspec_for_sint,
  					int unspec_for_uint,
! 					int unspec_for_fp)
      : m_unspec_for_sint (unspec_for_sint),
        m_unspec_for_uint (unspec_for_uint),
!       m_unspec_for_fp (unspec_for_fp)
    {}
  
    /* Return the unspec code to use for INSTANCE, based on type suffix 0.  */
    int
    unspec_for (const function_instance &instance) const
    {
!     return (!instance.type_suffix (0).integer_p ? m_unspec_for_fp
! 	    : instance.type_suffix (0).unsigned_p ? m_unspec_for_uint
  	    : m_unspec_for_sint);
    }
  
--- 269,289 ----
  public:
    CONSTEXPR unspec_based_function_base (int unspec_for_sint,
  					int unspec_for_uint,
! 					int unspec_for_fp,
! 					unsigned int suffix_index = 0)
      : m_unspec_for_sint (unspec_for_sint),
        m_unspec_for_uint (unspec_for_uint),
!       m_unspec_for_fp (unspec_for_fp),
!       m_suffix_index (suffix_index)
    {}
  
    /* Return the unspec code to use for INSTANCE, based on type suffix 0.  */
    int
    unspec_for (const function_instance &instance) const
    {
!     auto &suffix = instance.type_suffix (m_suffix_index);
!     return (!suffix.integer_p ? m_unspec_for_fp
! 	    : suffix.unsigned_p ? m_unspec_for_uint
  	    : m_unspec_for_sint);
    }
  
*************** public:
*** 249,254 ****
--- 292,300 ----
    int m_unspec_for_sint;
    int m_unspec_for_uint;
    int m_unspec_for_fp;
+ 
+   /* Which type suffix is used to choose between the unspecs.  */
+   unsigned int m_suffix_index;
  };
  
  /* A function_base for functions that have an associated unspec code.
*************** public:
*** 301,310 ****
    rtx
    expand (function_expander &e) const override
    {
!     return e.use_exact_insn (CODE (unspec_for (e), e.vector_mode (0)));
    }
  };
  
  /* A function that performs an unspec and then adds it to another value.  */
  typedef unspec_based_function_exact_insn<code_for_aarch64_sve_add>
    unspec_based_add_function;
--- 347,360 ----
    rtx
    expand (function_expander &e) const override
    {
!     return e.use_exact_insn (CODE (unspec_for (e),
! 				   e.tuple_mode (m_suffix_index)));
    }
  };
  
+ typedef unspec_based_function_exact_insn<code_for_aarch64_sve>
+   unspec_based_uncond_function;
+ 
  /* A function that performs an unspec and then adds it to another value.  */
  typedef unspec_based_function_exact_insn<code_for_aarch64_sve_add>
    unspec_based_add_function;
*************** typedef unspec_based_function_exact_insn
*** 341,346 ****
--- 391,480 ----
  typedef unspec_based_function_exact_insn<code_for_aarch64_sve_sub_lane>
    unspec_based_sub_lane_function;
  
+ /* A function that has conditional and unconditional forms, with both
+    forms being associated with a single unspec each.  */
+ class cond_or_uncond_unspec_function : public function_base
+ {
+ public:
+   CONSTEXPR cond_or_uncond_unspec_function (int cond_unspec, int uncond_unspec)
+     : m_cond_unspec (cond_unspec), m_uncond_unspec (uncond_unspec) {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     if (e.pred == PRED_none)
+       {
+ 	auto mode = e.tuple_mode (0);
+ 	auto icode = (e.mode_suffix_id == MODE_single
+ 		      ? code_for_aarch64_sve_single (m_uncond_unspec, mode)
+ 		      : code_for_aarch64_sve (m_uncond_unspec, mode));
+ 	return e.use_exact_insn (icode);
+       }
+     return e.map_to_unspecs (m_cond_unspec, m_cond_unspec, m_cond_unspec);
+   }
+ 
+   /* The unspecs for the conditional and unconditional instructions,
+      respectively.  */
+   int m_cond_unspec;
+   int m_uncond_unspec;
+ };
+ 
+ /* General SME unspec-based functions, parameterized on the vector mode.  */
+ class sme_1mode_function : public read_write_za<unspec_based_function_base>
+ {
+ public:
+   using parent = read_write_za<unspec_based_function_base>;
+ 
+   CONSTEXPR sme_1mode_function (int unspec_for_sint, int unspec_for_uint,
+ 				int unspec_for_fp)
+     : parent (unspec_for_sint, unspec_for_uint, unspec_for_fp, 1)
+   {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code icode;
+     if (e.mode_suffix_id == MODE_single)
+       icode = code_for_aarch64_sme_single (unspec_for (e), e.tuple_mode (1));
+     else
+       icode = code_for_aarch64_sme (unspec_for (e), e.tuple_mode (1));
+     return e.use_exact_insn (icode);
+   }
+ };
+ 
+ /* General SME unspec-based functions, parameterized on both the ZA mode
+    and the vector mode.  */
+ template<insn_code (*CODE) (int, machine_mode, machine_mode),
+ 	 insn_code (*CODE_SINGLE) (int, machine_mode, machine_mode)>
+ class sme_2mode_function_t : public read_write_za<unspec_based_function_base>
+ {
+ public:
+   using parent = read_write_za<unspec_based_function_base>;
+ 
+   CONSTEXPR sme_2mode_function_t (int unspec_for_sint, int unspec_for_uint,
+ 				  int unspec_for_fp)
+     : parent (unspec_for_sint, unspec_for_uint, unspec_for_fp, 1)
+   {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code icode;
+     if (e.mode_suffix_id == MODE_single)
+       icode = CODE_SINGLE (unspec_for (e), e.vector_mode (0),
+ 			   e.tuple_mode (1));
+     else
+       icode = CODE (unspec_for (e), e.vector_mode (0), e.tuple_mode (1));
+     return e.use_exact_insn (icode);
+   }
+ };
+ 
+ using sme_2mode_function
+   = sme_2mode_function_t<code_for_aarch64_sme, code_for_aarch64_sme_single>;
+ 
+ using sme_2mode_lane_function
+   = sme_2mode_function_t<code_for_aarch64_sme_lane, nullptr>;
+ 
  /* A function that acts like unspec_based_function_exact_insn<INT_CODE>
     when operating on integers, but that expands to an (fma ...)-style
     aarch64_sve* operation when applied to floats.  */
*************** public:
*** 355,370 ****
    {
      int unspec = unspec_for (e);
      insn_code icode;
!     if (e.type_suffix (0).float_p)
        {
  	/* Put the operands in the normal (fma ...) order, with the accumulator
  	   last.  This fits naturally since that's also the unprinted operand
  	   in the asm output.  */
  	e.rotate_inputs_left (0, e.pred != PRED_none ? 4 : 3);
! 	icode = code_for_aarch64_sve (unspec, e.vector_mode (0));
        }
      else
!       icode = INT_CODE (unspec, e.vector_mode (0));
      return e.use_exact_insn (icode);
    }
  };
--- 489,504 ----
    {
      int unspec = unspec_for (e);
      insn_code icode;
!     if (e.type_suffix (m_suffix_index).float_p)
        {
  	/* Put the operands in the normal (fma ...) order, with the accumulator
  	   last.  This fits naturally since that's also the unprinted operand
  	   in the asm output.  */
  	e.rotate_inputs_left (0, e.pred != PRED_none ? 4 : 3);
! 	icode = code_for_aarch64_sve (unspec, e.vector_mode (m_suffix_index));
        }
      else
!       icode = INT_CODE (unspec, e.vector_mode (m_suffix_index));
      return e.use_exact_insn (icode);
    }
  };
*************** public:
*** 385,400 ****
    {
      int unspec = unspec_for (e);
      insn_code icode;
!     if (e.type_suffix (0).float_p)
        {
  	/* Put the operands in the normal (fma ...) order, with the accumulator
  	   last.  This fits naturally since that's also the unprinted operand
  	   in the asm output.  */
  	e.rotate_inputs_left (0, e.pred != PRED_none ? 5 : 4);
! 	icode = code_for_aarch64_lane (unspec, e.vector_mode (0));
        }
      else
!       icode = INT_CODE (unspec, e.vector_mode (0));
      return e.use_exact_insn (icode);
    }
  };
--- 519,534 ----
    {
      int unspec = unspec_for (e);
      insn_code icode;
!     if (e.type_suffix (m_suffix_index).float_p)
        {
  	/* Put the operands in the normal (fma ...) order, with the accumulator
  	   last.  This fits naturally since that's also the unprinted operand
  	   in the asm output.  */
  	e.rotate_inputs_left (0, e.pred != PRED_none ? 5 : 4);
! 	icode = code_for_aarch64_lane (unspec, e.vector_mode (m_suffix_index));
        }
      else
!       icode = INT_CODE (unspec, e.vector_mode (m_suffix_index));
      return e.use_exact_insn (icode);
    }
  };
*************** public:
*** 489,494 ****
--- 623,699 ----
    int m_unspec;
  };
  
+ /* A function that implements a x2 or x4 permute instruction.  Both forms
+    of intrinsic have a single x2 or x4 tuple argument, but the underlying
+    x2 instruction takes two separate input operands.  */
+ class multireg_permute : public function_base
+ {
+ public:
+   CONSTEXPR multireg_permute (int unspec) : m_unspec (unspec) {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code icode = code_for_aarch64_sve (m_unspec, e.tuple_mode (0));
+     if (e.group_suffix ().vectors_per_tuple == 2)
+       {
+ 	machine_mode elt_mode = e.vector_mode (0);
+ 	rtx arg = e.args[0];
+ 	e.args[0] = simplify_gen_subreg (elt_mode, arg, GET_MODE (arg), 0);
+ 	e.args.safe_push (simplify_gen_subreg (elt_mode, arg, GET_MODE (arg),
+ 					       GET_MODE_SIZE (elt_mode)));
+       }
+     return e.use_exact_insn (icode);
+   }
+ 
+   /* The unspec associated with the permutation.  */
+   int m_unspec;
+ };
+ 
+ /* A function that has two type integer type suffixes, which might agree
+    or disagree on signedness.  There are separate instructions for each
+    signed/unsigned combination.  */
+ class integer_conversion : public function_base
+ {
+ public:
+   CONSTEXPR integer_conversion (int unspec_for_sint, int unspec_for_sintu,
+ 				int unspec_for_uint, int unspec_for_uints)
+     : m_unspec_for_sint (unspec_for_sint),
+       m_unspec_for_sintu (unspec_for_sintu),
+       m_unspec_for_uint (unspec_for_uint),
+       m_unspec_for_uints (unspec_for_uints)
+   {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     machine_mode mode0 = e.vector_mode (0);
+     machine_mode mode1 = GET_MODE (e.args[0]);
+     int unspec;
+     if (e.type_suffix (0).unsigned_p == e.type_suffix (1).unsigned_p)
+       unspec = (e.type_suffix (0).unsigned_p
+ 		? m_unspec_for_uint
+ 		: m_unspec_for_sint);
+     else
+       unspec = (e.type_suffix (0).unsigned_p
+ 		? m_unspec_for_sintu
+ 		: m_unspec_for_uints);
+     return e.use_exact_insn (code_for_aarch64_sve (unspec, mode0, mode1));
+   }
+ 
+   /* The unspec for signed -> signed.  */
+   int m_unspec_for_sint;
+ 
+   /* The unspec for signed -> unsigned.  */
+   int m_unspec_for_sintu;
+ 
+   /* The unspec for unsigned -> signed.  */
+   int m_unspec_for_uint;
+ 
+   /* The unspec for unsigned -> unsigned.  */
+   int m_unspec_for_uints;
+ };
+ 
  /* A function_base for functions that reduce a vector to a scalar.  */
  class reduction : public function_base
  {
*************** public:
*** 547,553 ****
      if (aarch64_simd_shift_imm_p (shift, elem_mode, m_code == ASHIFT))
        {
  	e.args.last () = shift;
! 	return e.map_to_rtx_codes (m_code, m_code, -1);
        }
  
      if (e.pred == PRED_x)
--- 752,758 ----
      if (aarch64_simd_shift_imm_p (shift, elem_mode, m_code == ASHIFT))
        {
  	e.args.last () = shift;
! 	return e.map_to_rtx_codes (m_code, m_code, -1, -1);
        }
  
      if (e.pred == PRED_x)
*************** public:
*** 603,608 ****
--- 808,826 ----
      int unspec = (e.type_suffix (1).unsigned_p
  		  ? m_unspec_for_uint
  		  : m_unspec_for_sint);
+     if (e.vectors_per_tuple () > 1)
+       {
+ 	auto bits = e.type_suffix (0).element_bits;
+ 	auto icode = code_for_aarch64_sve_while_b_x2 (unspec, bits);
+ 	return e.use_exact_insn (icode);
+       }
+     if (e.type_suffix (0).tclass == TYPE_count)
+       {
+ 	auto bits = e.type_suffix (0).element_bits;
+ 	auto icode = code_for_aarch64_sve_while_c (unspec, bits);
+ 	return e.use_exact_insn (icode);
+       }
+ 
      machine_mode pred_mode = e.vector_mode (0);
      scalar_mode reg_mode = GET_MODE_INNER (e.vector_mode (1));
      return e.use_exact_insn (code_for_while (unspec, reg_mode, pred_mode));
*************** public:
*** 622,625 ****
--- 840,847 ----
    namespace { static CONSTEXPR const CLASS NAME##_obj ARGS; } \
    namespace functions { const function_base *const NAME = &NAME##_obj; }
  
+ #define NEON_SVE_BRIDGE_FUNCTION(NAME, CLASS, ARGS) \
+   namespace { static CONSTEXPR const CLASS NAME##_obj ARGS; } \
+   namespace neon_sve_bridge_functions { const function_base *const NAME = &NAME##_obj; }
+ 
  #endif
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-shapes.cc gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-shapes.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-shapes.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-shapes.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (function shapes)
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (function shapes)
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 29,34 ****
--- 29,35 ----
  #include "optabs.h"
  #include "aarch64-sve-builtins.h"
  #include "aarch64-sve-builtins-shapes.h"
+ #include "aarch64-builtins.h"
  
  /* In the comments below, _t0 represents the first type suffix and _t1
     represents the second.  Square brackets enclose characters that are
*************** build_const_pointer (tree t)
*** 52,57 ****
--- 53,69 ----
    return build_pointer_type (build_qualified_type (t, TYPE_QUAL_CONST));
  }
  
+ /* GROUP's first type suffix is a ZA-related one.  Return true if the
+    group exists only for the purpose of defining C overloads.  This is
+    useful if some forms of an instruction require one feature and other
+    forms require another feature, and neither feature implies the other.  */
+ static bool
+ za_group_is_pure_overload (const function_group_info &group)
+ {
+   gcc_checking_assert (type_suffixes[group.types[0][0]].za_p);
+   return group.types[0][1] == NUM_TYPE_SUFFIXES;
+ }
+ 
  /* If INSTANCE has a governing predicate, add it to the list of argument
     types in ARGUMENT_TYPES.  RETURN_TYPE is the type returned by the
     function.  */
*************** static void
*** 59,73 ****
  apply_predication (const function_instance &instance, tree return_type,
  		   vec<tree> &argument_types)
  {
!   if (instance.pred != PRED_none)
      {
!       argument_types.quick_insert (0, get_svbool_t ());
        /* For unary merge operations, the first argument is a vector with
  	 the same type as the result.  For unary_convert_narrowt it also
  	 provides the "bottom" half of active elements, and is present
  	 for all types of predication.  */
!       if ((argument_types.length () == 2 && instance.pred == PRED_m)
! 	  || instance.shape == shapes::unary_convert_narrowt)
  	argument_types.quick_insert (0, return_type);
      }
  }
--- 71,88 ----
  apply_predication (const function_instance &instance, tree return_type,
  		   vec<tree> &argument_types)
  {
!   /* There are currently no SME ZA instructions that have both merging and
!      unpredicated forms, so for simplicity, the predicates are always included
!      in the original format string.  */
!   if (instance.pred != PRED_none && instance.pred != PRED_za_m)
      {
!       argument_types.quick_insert (0, instance.gp_type ());
        /* For unary merge operations, the first argument is a vector with
  	 the same type as the result.  For unary_convert_narrowt it also
  	 provides the "bottom" half of active elements, and is present
  	 for all types of predication.  */
!       auto nargs = argument_types.length () - 1;
!       if (instance.shape->has_merge_argument_p (instance, nargs))
  	argument_types.quick_insert (0, return_type);
      }
  }
*************** apply_predication (const function_instan
*** 79,84 ****
--- 94,100 ----
     f<bits> - a floating-point type with the given number of bits
     f[01]   - a floating-point type with the same width as type suffix 0 or 1
     B       - bfloat16_t
+    c       - a predicate-as-counter
     h<elt>  - a half-sized version of <elt>
     p       - a predicate (represented as TYPE_SUFFIX_b)
     q<elt>  - a quarter-sized version of <elt>
*************** parse_element_type (const function_insta
*** 115,120 ****
--- 131,139 ----
        return suffix;
      }
  
+   if (ch == 'c')
+     return TYPE_SUFFIX_c;
+ 
    if (ch == 'p')
      return TYPE_SUFFIX_b;
  
*************** parse_element_type (const function_insta
*** 153,163 ****
--- 172,186 ----
     ap      - array pointer for prefetches
     as      - array pointer for stores
     b       - base vector type (from a _<m0>base suffix)
+    c0      - the result of a conversion, based on type and group suffixes
+    c1      - the source of a conversion, based on type and group suffixes
     d       - displacement vector type (from a _<m1>index or _<m1>offset suffix)
     e<name> - an enum with the given name
     s<elt>  - a scalar type with the given element suffix
     t<elt>  - a vector or tuple type with given element suffix [*1]
     v<elt>  - a vector with the given element suffix
+    D<elt>  - a 64 bit neon vector
+    Q<elt>  - a 128 bit neon vector
  
     where <elt> has the format described above parse_element_type
  
*************** parse_type (const function_instance &ins
*** 186,191 ****
--- 209,231 ----
    if (ch == 'b')
      return instance.base_vector_type ();
  
+   if (ch == 'c')
+     {
+       int ch = *format++;
+       gcc_assert (ch == '0' || ch == '1');
+       unsigned int id = (ch == '0' ? 0 : 1);
+       auto vector_type = instance.type_suffix (id).vector_type;
+       unsigned int num_vectors = instance.group_suffix ().vectors_per_tuple;
+       if (num_vectors != 1)
+ 	{
+ 	  unsigned int bits = instance.type_suffix (id).element_bits;
+ 	  unsigned int other_bits = instance.type_suffix (1 - id).element_bits;
+ 	  if (other_bits > bits)
+ 	    num_vectors /= other_bits / bits;
+ 	}
+       return acle_vector_types[num_vectors - 1][vector_type];
+     }
+ 
    if (ch == 'd')
      return instance.displacement_vector_type ();
  
*************** parse_type (const function_instance &ins
*** 224,229 ****
--- 264,283 ----
        return acle_vector_types[0][type_suffixes[suffix].vector_type];
      }
  
+   if (ch == 'D')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       int neon_index = type_suffixes[suffix].neon64_type;
+       return aarch64_simd_types[neon_index].itype;
+     }
+ 
+   if (ch == 'Q')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       int neon_index = type_suffixes[suffix].neon128_type;
+       return aarch64_simd_types[neon_index].itype;
+     }
+ 
    gcc_unreachable ();
  }
  
*************** parse_signature (const function_instance
*** 275,292 ****
  }
  
  /* Add one function instance for GROUP, using mode suffix MODE_SUFFIX_ID,
!    the type suffixes at index TI and the predication suffix at index PI.
!    The other arguments are as for build_all.  */
  static void
  build_one (function_builder &b, const char *signature,
  	   const function_group_info &group, mode_suffix_index mode_suffix_id,
! 	   unsigned int ti, unsigned int pi, bool force_direct_overloads)
  {
    /* Byte forms of svdupq take 16 arguments.  */
    auto_vec<tree, 16> argument_types;
    function_instance instance (group.base_name, *group.base, *group.shape,
  			      mode_suffix_id, group.types[ti],
! 			      group.preds[pi]);
    tree return_type = parse_signature (instance, signature, argument_types);
    apply_predication (instance, return_type, argument_types);
    b.add_unique_function (instance, return_type, argument_types,
--- 329,356 ----
  }
  
  /* Add one function instance for GROUP, using mode suffix MODE_SUFFIX_ID,
!    the type suffixes at index TI, the group suffixes at index GI, and the
!    predication suffix at index PI.  The other arguments are as for
!    build_all.  */
  static void
  build_one (function_builder &b, const char *signature,
  	   const function_group_info &group, mode_suffix_index mode_suffix_id,
! 	   unsigned int ti, unsigned int gi, unsigned int pi,
! 	   bool force_direct_overloads)
  {
+   /* For simplicity, function definitions are allowed to use the group
+      suffix lists vg2 and vg4 for shapes that have _single forms,
+      even though the _single form applies only to vgNx2 and vgNx4,
+      not to vgNx1.  */
+   if (mode_suffix_id == MODE_single
+       && group_suffixes[group.groups[gi]].vectors_per_tuple == 1)
+     return;
+ 
    /* Byte forms of svdupq take 16 arguments.  */
    auto_vec<tree, 16> argument_types;
    function_instance instance (group.base_name, *group.base, *group.shape,
  			      mode_suffix_id, group.types[ti],
! 			      group.groups[gi], group.preds[pi]);
    tree return_type = parse_signature (instance, signature, argument_types);
    apply_predication (instance, return_type, argument_types);
    b.add_unique_function (instance, return_type, argument_types,
*************** build_32_64 (function_builder &b, const
*** 312,335 ****
  	     mode_suffix_index mode64, bool force_direct_overloads = false)
  {
    for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
!     if (group.types[0][0] == NUM_TYPE_SUFFIXES)
!       {
! 	gcc_assert (mode32 != MODE_none && mode64 != MODE_none);
! 	build_one (b, signature, group, mode32, 0, pi,
! 		   force_direct_overloads);
! 	build_one (b, signature, group, mode64, 0, pi,
! 		   force_direct_overloads);
!       }
!     else
!       for (unsigned int ti = 0; group.types[ti][0] != NUM_TYPE_SUFFIXES; ++ti)
  	{
! 	  unsigned int bits = type_suffixes[group.types[ti][0]].element_bits;
! 	  gcc_assert (bits == 32 || bits == 64);
! 	  mode_suffix_index mode = bits == 32 ? mode32 : mode64;
! 	  if (mode != MODE_none)
! 	    build_one (b, signature, group, mode, ti, pi,
! 		       force_direct_overloads);
  	}
  }
  
  /* For every type and predicate combination in GROUP, add one function
--- 376,401 ----
  	     mode_suffix_index mode64, bool force_direct_overloads = false)
  {
    for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
!     for (unsigned int gi = 0; group.groups[gi] != NUM_GROUP_SUFFIXES; ++gi)
!       if (group.types[0][0] == NUM_TYPE_SUFFIXES)
  	{
! 	  gcc_assert (mode32 != MODE_none && mode64 != MODE_none);
! 	  build_one (b, signature, group, mode32, 0, gi, pi,
! 		     force_direct_overloads);
! 	  build_one (b, signature, group, mode64, 0, gi, pi,
! 		     force_direct_overloads);
  	}
+       else
+ 	for (unsigned int ti = 0; group.types[ti][0] != NUM_TYPE_SUFFIXES;
+ 	     ++ti)
+ 	  {
+ 	    unsigned int bits = type_suffixes[group.types[ti][0]].element_bits;
+ 	    gcc_assert (bits == 32 || bits == 64);
+ 	    mode_suffix_index mode = bits == 32 ? mode32 : mode64;
+ 	    if (mode != MODE_none)
+ 	      build_one (b, signature, group, mode, ti, gi, pi,
+ 			 force_direct_overloads);
+ 	  }
  }
  
  /* For every type and predicate combination in GROUP, add one function
*************** build_all (function_builder &b, const ch
*** 423,432 ****
  	   bool force_direct_overloads = false)
  {
    for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
!     for (unsigned int ti = 0;
! 	 ti == 0 || group.types[ti][0] != NUM_TYPE_SUFFIXES; ++ti)
!       build_one (b, signature, group, mode_suffix_id, ti, pi,
! 		 force_direct_overloads);
  }
  
  /* TYPE is the largest type suffix associated with the arguments of R,
--- 489,499 ----
  	   bool force_direct_overloads = false)
  {
    for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
!     for (unsigned int gi = 0; group.groups[gi] != NUM_GROUP_SUFFIXES; ++gi)
!       for (unsigned int ti = 0;
! 	   ti == 0 || group.types[ti][0] != NUM_TYPE_SUFFIXES; ++ti)
! 	build_one (b, signature, group, mode_suffix_id, ti, gi, pi,
! 		   force_direct_overloads);
  }
  
  /* TYPE is the largest type suffix associated with the arguments of R,
*************** struct binary_imm_long_base : public ove
*** 584,589 ****
--- 651,740 ----
    }
  };
  
+ /* Base class for binary_za_m and similar shapes.  */
+ template<type_class_index TCLASS = function_resolver::SAME_TYPE_CLASS,
+ 	 unsigned int BITS = function_resolver::SAME_SIZE>
+ struct binary_za_m_base : public overloaded_base<1>
+ {
+   tree
+   resolve (function_resolver &r) const override
+   {
+     type_suffix_index type;
+     if (!r.check_num_arguments (5)
+ 	|| !r.require_integer_immediate (0)
+ 	|| !r.require_vector_type (1, VECTOR_TYPE_svbool_t)
+ 	|| !r.require_vector_type (2, VECTOR_TYPE_svbool_t)
+ 	|| (type = r.infer_vector_type (3)) == NUM_TYPE_SUFFIXES
+ 	|| !r.require_derived_vector_type (4, 3, type, TCLASS, BITS))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, r.type_suffix_ids[0], type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_range (0, 0, c.num_za_tiles () - 1);
+   }
+ };
+ 
+ /* Base class for shapes like binary_za_slice_lane.  TCLASS is the type
+    class of the final vector argument.  */
+ template<type_class_index TCLASS = function_resolver::SAME_TYPE_CLASS>
+ struct binary_za_slice_lane_base : public overloaded_base<1>
+ {
+   constexpr binary_za_slice_lane_base (unsigned int lane_type_suffix)
+     : m_lane_type_suffix (lane_type_suffix) {}
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su32,t1,v1,su64", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (4)
+ 	|| !r.require_scalar_type (0, "uint32_t")
+ 	|| !(type = r.infer_tuple_type (1))
+ 	|| !r.require_derived_vector_type (2, 1, type, TCLASS)
+ 	|| !r.require_integer_immediate (3))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     unsigned int bytes = c.type_suffix (m_lane_type_suffix).element_bytes;
+     return c.require_immediate_range (3, 0, 16 / bytes - 1);
+   }
+ 
+   unsigned int m_lane_type_suffix;
+ };
+ 
+ /* Base class for shapes like binary_za_slice_opt_single.  TCLASS is the
+    type class of the final argument.  */
+ template<type_class_index TCLASS = function_resolver::SAME_TYPE_CLASS>
+ struct binary_za_slice_opt_single_base : public overloaded_base<1>
+ {
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (3)
+ 	|| !r.require_scalar_type (0, "uint32_t")
+ 	|| !(type = r.infer_tuple_type (1)))
+       return error_mark_node;
+ 
+     return r.finish_opt_single_resolution (2, 1, type, TCLASS);
+   }
+ };
+ 
  /* Base class for inc_dec and inc_dec_pat.  */
  struct inc_dec_base : public overloaded_base<0>
  {
*************** struct load_contiguous_base : public ove
*** 649,655 ****
  	|| (vnum_p && !r.require_scalar_type (i + 1, "int64_t")))
        return error_mark_node;
  
!     return r.resolve_to (r.mode_suffix_id, type);
    }
  };
  
--- 800,807 ----
  	|| (vnum_p && !r.require_scalar_type (i + 1, "int64_t")))
        return error_mark_node;
  
!     return r.resolve_to (r.mode_suffix_id, type, NUM_TYPE_SUFFIXES,
! 			 r.group_suffix_id);
    }
  };
  
*************** struct load_ext_gather_base : public ove
*** 704,709 ****
--- 856,884 ----
    }
  };
  
+ /* sv<t0>x<g>_t svfoo_t0_g(uint64_t, svuint8_t, uint64_t)
+ 
+    where the first argument is the ZT register number (currently always 0)
+    and the final argument is a constant index.  The instruction divides
+    the vector argument in BITS-bit quantities.  */
+ template<unsigned int BITS>
+ struct luti_lane_zt_base : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "t0,su64,vu8,su64", group, MODE_none);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     auto nvectors = c.vectors_per_tuple ();
+     return (c.require_immediate_range (0, 0, 0)
+ 	    && c.require_immediate_range (2, 0, 32 / BITS / nvectors - 1));
+   }
+ };
+ 
  /* sv<t0>_t svfoo[_t0](sv<t0>_t, sv<t0:quarter>_t,
  		       sv<t0:quarter>_t)  (for integer t0)
     sv<t0>_t svmmla[_t0](sv<t0>_t, sv<t0>_t, sv<t0>_t)  (for floating-point t0)
*************** struct ternary_bfloat_lane_base
*** 941,947 ****
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (3, N);
    }
  };
  
--- 1116,1122 ----
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (3, 2, N);
    }
  };
  
*************** struct ternary_qq_lane_base
*** 956,962 ****
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (3, 4);
    }
  };
  
--- 1131,1137 ----
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (3, 0);
    }
  };
  
*************** struct binary_int_opt_n_def : public ove
*** 1101,1106 ****
--- 1276,1316 ----
  };
  SHAPE (binary_int_opt_n)
  
+ /* Like binary_int_opt_n for single vectors.  For tuples:
+ 
+    sv<t0>x<g>_t svfoo[_t0_g](sv<t0>x<g>_t, sv<t0:int>x<g>_t)
+    sv<t0>x<g>_t svfoo[_single_t0_g](sv<t0>x<g>_t, sv<t0:int>_t).  */
+ struct binary_int_opt_single_n_def : public overloaded_base<0>
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "t0,t0,ts0", group, MODE_none);
+     if (group.groups[0] == GROUP_none)
+       build_all (b, "v0,v0,ss0", group, MODE_n);
+     else
+       build_all (b, "t0,t0,vs0", group, MODE_single);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     sve_type type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| !(type = r.infer_sve_type (i)))
+       return error_mark_node;
+ 
+     return (type.num_vectors == 1 && r.scalar_argument_p (i + 1)
+ 	    ? r.finish_opt_n_resolution (i + 1, i, type.type, TYPE_signed)
+ 	    : r.finish_opt_single_resolution (i + 1, i, type, TYPE_signed));
+   }
+ };
+ SHAPE (binary_int_opt_single_n)
+ 
  /* sv<t0>_t svfoo_<t0>(sv<t0>_t, sv<t0>_t, uint64_t)
  
     where the final argument is an integer constant expression in the
*************** struct binary_lane_def : public overload
*** 1123,1129 ****
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (2);
    }
  };
  SHAPE (binary_lane)
--- 1333,1339 ----
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (2, 1);
    }
  };
  SHAPE (binary_lane)
*************** struct binary_long_lane_def : public ove
*** 1148,1154 ****
      type_suffix_index type, result_type;
      if (!r.check_gp_argument (3, i, nargs)
  	|| (type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES
! 	|| !r.require_matching_vector_type (i + 1, type)
  	|| !r.require_integer_immediate (i + 2)
  	|| (result_type = long_type_suffix (r, type)) == NUM_TYPE_SUFFIXES)
        return error_mark_node;
--- 1358,1364 ----
      type_suffix_index type, result_type;
      if (!r.check_gp_argument (3, i, nargs)
  	|| (type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES
! 	|| !r.require_matching_vector_type (i + 1, i, type)
  	|| !r.require_integer_immediate (i + 2)
  	|| (result_type = long_type_suffix (r, type)) == NUM_TYPE_SUFFIXES)
        return error_mark_node;
*************** struct binary_long_lane_def : public ove
*** 1162,1168 ****
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (2);
    }
  };
  SHAPE (binary_long_lane)
--- 1372,1378 ----
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (2, 1);
    }
  };
  SHAPE (binary_long_lane)
*************** struct binary_opt_n_def : public overloa
*** 1305,1310 ****
--- 1515,1555 ----
  };
  SHAPE (binary_opt_n)
  
+ /* Like binary_opt_n for single vectors.  For tuples:
+ 
+    sv<t0>x<g>_t svfoo[_t0_g](sv<t0>x<g>_t, sv<t0>x<g>_t)
+    sv<t0>x<g>_t svfoo[_single_t0_g](sv<t0>x<g>_t, sv<t0>_t).  */
+ struct binary_opt_single_n_def : public overloaded_base<0>
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "t0,t0,t0", group, MODE_none);
+     if (group.groups[0] == GROUP_none)
+       build_all (b, "v0,v0,s0", group, MODE_n);
+     else
+       build_all (b, "t0,t0,v0", group, MODE_single);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     sve_type type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| !(type = r.infer_sve_type (i)))
+       return error_mark_node;
+ 
+     return (type.num_vectors == 1 && r.scalar_argument_p (i + 1)
+ 	    ? r.finish_opt_n_resolution (i + 1, i, type.type)
+ 	    : r.finish_opt_single_resolution (i + 1, i, type));
+   }
+ };
+ SHAPE (binary_opt_single_n)
+ 
  /* svbool_t svfoo(svbool_t, svbool_t).  */
  struct binary_pred_def : public nonoverloaded_base
  {
*************** struct binary_scalar_def : public nonove
*** 1356,1361 ****
--- 1601,1633 ----
  };
  SHAPE (binary_scalar)
  
+ /* sv<t0>x<g>_t svfoo[_single_t0_g](sv<t0>x<g>_t, sv<t0>_t).  */
+ struct binary_single_def : public overloaded_base<0>
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "t0,t0,v0", group, MODE_single);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (2)
+ 	|| !(type = r.infer_sve_type (0))
+ 	|| !r.require_derived_vector_type (1, 0, type, r.SAME_TYPE_CLASS,
+ 					   r.SAME_SIZE, 1))
+       return error_mark_node;
+ 
+     return r.resolve_to (MODE_single, type);
+   }
+ };
+ SHAPE (binary_single)
+ 
  /* sv<t0:uint>_t svfoo[_t0](sv<t0>_t, sv<t0>_t).
  
     i.e. a version of "binary" that returns unsigned integers.  */
*************** struct binary_wide_opt_n_def : public ov
*** 1571,1576 ****
--- 1843,2039 ----
  };
  SHAPE (binary_wide_opt_n)
  
+ /* void svfoo_t0[_t1]_g(uint64_t, svbool_t, svbool_t, sv<t1>x<g>_t,
+ 			sv<t1:int>x<g>_t)
+ 
+    where the first argument is a ZA tile.  */
+ struct binary_za_int_m_def : public binary_za_m_base<TYPE_signed>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su64,vp,vp,t1,ts1", group, MODE_none);
+   }
+ };
+ SHAPE (binary_za_int_m)
+ 
+ /* void svfoo_t0[_t1]_g(uint64_t, svbool_t, svbool_t, sv<t1>x<g>_t,
+ 			sv<t1>x<g>_t)
+ 
+    where the first argument is a ZA tile.  */
+ struct binary_za_m_def : public binary_za_m_base<>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     /* Allow the overloaded form to be specified seperately, with just
+        a single suffix.  This is necessary for the 64-bit SME MOP intrinsics,
+        which have some forms dependent on FEAT_SME_I16I64 and some forms
+        dependent on FEAT_SME_F64F64.  The resolver needs to be defined
+        for base SME.  */
+     if (group.types[0][1] != NUM_TYPE_SUFFIXES)
+       build_all (b, "_,su64,vp,vp,t1,t1", group, MODE_none);
+   }
+ };
+ SHAPE (binary_za_m)
+ 
+ /* void svfoo_lane_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1>_t, uint64_t)
+ 
+    where the first argument is a variable ZA slice and the final argument
+    indexes a single element in the preceding vector argument.  */
+ struct binary_za_slice_lane_def : public binary_za_slice_lane_base<>
+ {
+   constexpr binary_za_slice_lane_def () : binary_za_slice_lane_base<> (1) {}
+ };
+ SHAPE (binary_za_slice_lane)
+ 
+ /* void svfoo_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1:int>x<g>_t)
+    void svfoo[_single]_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1:int>_t).
+ 
+    where the first argument is a variable ZA slice.  */
+ struct binary_za_slice_int_opt_single_def
+   : public binary_za_slice_opt_single_base<TYPE_signed>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su32,t1,ts1", group, MODE_none);
+     build_all (b, "_,su32,t1,vs1", group, MODE_single);
+   }
+ };
+ SHAPE (binary_za_slice_int_opt_single)
+ 
+ /* void svfoo_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1>x<g>_t)
+    void svfoo[_single]_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1>_t)
+ 
+    where the first argument is a variable ZA slice.  */
+ struct binary_za_slice_opt_single_def
+   : public binary_za_slice_opt_single_base<>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su32,t1,t1", group, MODE_none);
+     build_all (b, "_,su32,t1,v1", group, MODE_single);
+   }
+ };
+ SHAPE (binary_za_slice_opt_single)
+ 
+ /* void svfoo_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1:uint>x<g>_t)
+    void svfoo[_single]_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1:uint>_t)
+ 
+    where the first argument is a variable ZA slice.  */
+ struct binary_za_slice_uint_opt_single_def
+   : public binary_za_slice_opt_single_base<TYPE_unsigned>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su32,t1,tu1", group, MODE_none);
+     build_all (b, "_,su32,t1,vu1", group, MODE_single);
+   }
+ };
+ SHAPE (binary_za_slice_uint_opt_single)
+ 
+ /* void svfoo_t0[_t1]_g(uint64_t, svbool_t, svbool_t, sv<t1>x<g>_t,
+ 			sv<t1:uint>x<g>_t)
+ 
+    where the first argument is a ZA tile.  */
+ struct binary_za_uint_m_def : public binary_za_m_base<TYPE_unsigned>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su64,vp,vp,t1,tu1", group, MODE_none);
+   }
+ };
+ SHAPE (binary_za_uint_m)
+ 
+ /* sv<t0>x<g>_t svfoo[_t0_t1_g](sv<t0>x<g>_t, sv<t0>x<g>_t).  */
+ struct binaryxn_def : public overloaded_base<0>
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "t0,t0,t0", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     vector_type_index pred_type;
+     sve_type type;
+     if (!r.check_num_arguments (3)
+ 	|| (pred_type = r.infer_predicate_type (0)) == NUM_VECTOR_TYPES
+ 	|| !(type = r.infer_sve_type (1))
+ 	|| !r.require_matching_predicate_type (pred_type, type)
+ 	|| !r.require_matching_vector_type (2, 1, type))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binaryxn)
+ 
+ /* bool svfoo().  */
+ struct bool_inherent_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "sp", group, MODE_none);
+   }
+ };
+ SHAPE (bool_inherent)
+ 
+ /* Either:
+ 
+      sv<t0>_t svfoo[_t0](sv<t0>_t, sv<t0>_t, sv<t0>_t)
+ 
+    for single vectors or:
+ 
+      sv<t0>x<g>_t svfoo[_single_t0_g](sv<t0>x<g>_t, sv<t0>_t, sv<t0>_t)
+ 
+    for tuples.  */
+ struct clamp_def : public overloaded_base<0>
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "t0,t0,v0,v0", group,
+ 	       group.groups[0] == GROUP_none ? MODE_none : MODE_single);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (3)
+ 	|| !(type = r.infer_sve_type (0))
+ 	|| !r.require_derived_vector_type (1, 0, type, r.SAME_TYPE_CLASS,
+ 					   r.SAME_SIZE, 1)
+ 	|| !r.require_derived_vector_type (2, 0, type, r.SAME_TYPE_CLASS,
+ 					   r.SAME_SIZE, 1))
+       return error_mark_node;
+ 
+     auto mode = type.num_vectors == 1 ? MODE_none : MODE_single;
+     return r.resolve_to (mode, type);
+   }
+ };
+ SHAPE (clamp)
+ 
  /* sv<t0>_t svfoo[_t0](sv<t0>_t, sv<t0>_t)
     <t0>_t svfoo[_n_t0](<t0>_t, sv<t0>_t).  */
  struct clast_def : public overloaded_base<0>
*************** struct clast_def : public overloaded_bas
*** 1603,1609 ****
        {
  	type_suffix_index type;
  	if ((type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES
! 	    || !r.require_matching_vector_type (i + 1, type))
  	  return error_mark_node;
  	return r.resolve_to (MODE_none, type);
        }
--- 2066,2072 ----
        {
  	type_suffix_index type;
  	if ((type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES
! 	    || !r.require_matching_vector_type (i + 1, i, type))
  	  return error_mark_node;
  	return r.resolve_to (MODE_none, type);
        }
*************** struct compare_ptr_def : public overload
*** 1676,1682 ****
  };
  SHAPE (compare_ptr)
  
! /* svbool_t svfoo_t0[_t1](<t1>_t, <t1>_t)
  
     where _t0 is a _b<bits> suffix that describes the predicate result.
     There is no direct relationship between the element sizes of _t0
--- 2139,2145 ----
  };
  SHAPE (compare_ptr)
  
! /* svboolx<g>_t svfoo_t0[_t1]_g(<t1>_t, <t1>_t)
  
     where _t0 is a _b<bits> suffix that describes the predicate result.
     There is no direct relationship between the element sizes of _t0
*************** struct compare_scalar_def : public overl
*** 1687,1693 ****
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     build_all (b, "vp,s1,s1", group, MODE_none);
    }
  
    tree
--- 2150,2156 ----
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     build_all (b, "tp,s1,s1", group, MODE_none);
    }
  
    tree
*************** struct compare_scalar_def : public overl
*** 1700,1710 ****
  	|| !r.require_matching_integer_scalar_type (i + 1, i, type))
        return error_mark_node;
  
!     return r.resolve_to (r.mode_suffix_id, r.type_suffix_ids[0], type);
    }
  };
  SHAPE (compare_scalar)
  
  /* svbool_t svfoo[_t0](sv<t0>_t, svint64_t)  (for signed t0)
     svbool_t svfoo[_n_t0](sv<t0>_t, int64_t)  (for signed t0)
     svbool_t svfoo[_t0](sv<t0>_t, svuint64_t)  (for unsigned t0)
--- 2163,2209 ----
  	|| !r.require_matching_integer_scalar_type (i + 1, i, type))
        return error_mark_node;
  
!     return r.resolve_to (r.mode_suffix_id, r.type_suffix_ids[0], type,
! 			 r.group_suffix_id);
    }
  };
  SHAPE (compare_scalar)
  
+ /* svcount_t svfoo_t0[_t1](<t1>_t, <t1>_t, uint64_t)
+ 
+    where _t0 is a _c<bits> suffix that describes the predicate-as-counter
+    result.  The final argument is an integer constant that specifies the
+    number of vectors (2 or 4).  */
+ struct compare_scalar_count_def : public overloaded_base<1>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "v0,s1,s1,su64", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (3, i, nargs)
+ 	|| (type = r.infer_64bit_scalar_integer_pair (i)) == NUM_TYPE_SUFFIXES
+ 	|| !r.require_integer_immediate (i + 2))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, r.type_suffix_ids[0], type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_either_or (2, 2, 4);
+   }
+ };
+ SHAPE (compare_scalar_count)
+ 
  /* svbool_t svfoo[_t0](sv<t0>_t, svint64_t)  (for signed t0)
     svbool_t svfoo[_n_t0](sv<t0>_t, int64_t)  (for signed t0)
     svbool_t svfoo[_t0](sv<t0>_t, svuint64_t)  (for unsigned t0)
*************** struct count_pred_def : public nonoverlo
*** 1768,1773 ****
--- 2267,2291 ----
  };
  SHAPE (count_pred)
  
+ /* uint64_t svfoo_t0(sv<t0>_t, uint64_t)
+ 
+    where the final argument must be 2 or 4.  */
+ struct count_pred_c_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "su64,v0,su64", group, MODE_none);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_either_or (1, 2, 4);
+   }
+ };
+ SHAPE (count_pred_c)
+ 
  /* uint64_t svfoo[_t0](sv<t0>_t).  */
  struct count_vector_def : public overloaded_base<0>
  {
*************** struct create_def : public overloaded_ba
*** 1806,1811 ****
--- 2324,2377 ----
  };
  SHAPE (create)
  
+ /* void svfoo_lane_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1:int>_t, uint64_t)
+ 
+    where the final argument indexes a <t0>-sized group of elements in the
+    preceding vector argument.  */
+ struct dot_za_slice_int_lane_def
+   : public binary_za_slice_lane_base<TYPE_signed>
+ {
+   constexpr dot_za_slice_int_lane_def ()
+     : binary_za_slice_lane_base<TYPE_signed> (0) {}
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su32,t1,vs1,su64", group, MODE_none);
+   }
+ };
+ SHAPE (dot_za_slice_int_lane)
+ 
+ /* void svfoo_lane_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1>_t, uint64_t)
+ 
+    where the final argument indexes a <t0>-sized group of elements in the
+    preceding vector argument.  */
+ struct dot_za_slice_lane_def : public binary_za_slice_lane_base<>
+ {
+   constexpr dot_za_slice_lane_def () : binary_za_slice_lane_base<> (0) {}
+ };
+ SHAPE (dot_za_slice_lane)
+ 
+ /* void svfoo_lane_t0[_t1]_g(uint32_t, sv<t1>x<g>_t, sv<t1:uint>_t, uint64_t)
+ 
+    where the final argument indexes a <t0>-sized group of elements in the
+    preceding vector argument.  */
+ struct dot_za_slice_uint_lane_def
+   : public binary_za_slice_lane_base<TYPE_unsigned>
+ {
+   constexpr dot_za_slice_uint_lane_def ()
+     : binary_za_slice_lane_base<TYPE_unsigned> (0) {}
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su32,t1,vu1,su64", group, MODE_none);
+   }
+ };
+ SHAPE (dot_za_slice_uint_lane)
+ 
  /* sv<t0>_t svfoo[_n]_t0(<t0>_t, ..., <t0>_t)
  
     where there are enough arguments to fill 128 bits of data (or to
*************** struct ext_def : public overloaded_base<
*** 1857,1862 ****
--- 2423,2446 ----
  };
  SHAPE (ext)
  
+ /* svboolx<g>_t svfoo_t0_g(sv<t0>_t, sv<t0>_t, uint32_t).  */
+ struct extract_pred_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "tp,vc,su64", group, MODE_none);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     unsigned int size = c.vectors_per_tuple ();
+     return c.require_immediate_range (1, 0, 4 / size - 1);
+   }
+ };
+ SHAPE (extract_pred)
+ 
  /* <t0>_t svfoo[_t0](<t0>_t, sv<t0>_t).  */
  struct fold_left_def : public overloaded_base<0>
  {
*************** struct get_def : public overloaded_base<
*** 1899,1907 ****
    resolve (function_resolver &r) const override
    {
      unsigned int i, nargs;
!     type_suffix_index type;
      if (!r.check_gp_argument (2, i, nargs)
! 	|| (type = r.infer_tuple_type (i)) == NUM_TYPE_SUFFIXES
  	|| !r.require_integer_immediate (i + 1))
        return error_mark_node;
  
--- 2483,2491 ----
    resolve (function_resolver &r) const override
    {
      unsigned int i, nargs;
!     sve_type type;
      if (!r.check_gp_argument (2, i, nargs)
! 	|| !(type = r.infer_tuple_type (i))
  	|| !r.require_integer_immediate (i + 1))
        return error_mark_node;
  
*************** struct get_def : public overloaded_base<
*** 1917,1922 ****
--- 2501,2567 ----
  };
  SHAPE (get)
  
+ /* <t0>xN_t svfoo[_t0](sv<t0>_t).  */
+ struct get_neonq_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "Q0,v0", group, MODE_none);
+   }
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_unary ();
+   }
+ };
+ SHAPE (get_neonq)
+ 
+ /* sv<t0>_t svfoo[_t0](sv<t0>_t, <t0>xN_t).  */
+ struct set_neonq_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "v0,v0,Q0", group, MODE_none);
+   }
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_neon128_vector_type (i + 1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (set_neonq)
+ 
+ /* sv<t0>_t svfoo[_t0](<t0>xN_t).  */
+ struct dup_neonq_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "v0,Q0", group, MODE_none);
+   }
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (1, i, nargs)
+ 	|| (type = r.infer_neon128_vector_type (i)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (dup_neonq)
+ 
  /* sv<t0>_t svfoo[_t0](sv<t0>_t, uint64_t)
     <t0>_t svfoo[_n_t0](<t0>_t, uint64_t)
  
*************** struct inherent_b_def : public overloade
*** 2050,2057 ****
  };
  SHAPE (inherent_b)
  
! /* sv<t0>[xN]_t svfoo[_t0](const <t0>_t *)
!    sv<t0>[xN]_t svfoo_vnum[_t0](const <t0>_t *, int64_t).  */
  struct load_def : public load_contiguous_base
  {
    void
--- 2695,2785 ----
  };
  SHAPE (inherent_b)
  
! /* void svfoo_t0().  */
! struct inherent_za_def : public nonoverloaded_base
! {
!   void
!   build (function_builder &b, const function_group_info &group) const override
!   {
!     build_all (b, "_", group, MODE_none);
!   }
! };
! SHAPE (inherent_za)
! 
! /* void svfoo_zt(uint64_t)
! 
!    where the argument must be zero.  */
! struct inherent_zt_def : public nonoverloaded_base
! {
!   void
!   build (function_builder &b, const function_group_info &group) const override
!   {
!     build_all (b, "_,su64", group, MODE_none);
!   }
! 
!   bool
!   check (function_checker &c) const override
!   {
!     return c.require_immediate_range (0, 0, 0);
!   }
! };
! SHAPE (inherent_zt)
! 
! /* void svfoo_t0(uint64_t)
! 
!    where the argument is an integer constant that specifies an 8-bit mask.  */
! struct inherent_mask_za_def : public nonoverloaded_base
! {
!   void
!   build (function_builder &b, const function_group_info &group) const override
!   {
!     build_all (b, "_,su64", group, MODE_none);
!   }
! 
!   bool
!   check (function_checker &c) const override
!   {
!     return c.require_immediate_range (0, 0, 255);
!   }
! };
! SHAPE (inherent_mask_za)
! 
! /* void svfoo_t0(uint32_t, const void *)
!    void svfoo_vnum_t0(uint32_t, const void *, int64_t)
! 
!    where the first argument is a variable ZA slice.  */
! struct ldr_za_def : public nonoverloaded_base
! {
!   void
!   build (function_builder &b, const function_group_info &group) const override
!   {
!     build_all (b, "_,su32,al", group, MODE_none);
!     build_all (b, "_,su32,al,ss64", group, MODE_vnum);
!   }
! };
! SHAPE (ldr_za)
! 
! /* void svfoo_zt(uint64_t, const void *)
! 
!    where the first argument must be zero.  */
! struct ldr_zt_def : public nonoverloaded_base
! {
!   void
!   build (function_builder &b, const function_group_info &group) const override
!   {
!     build_all (b, "_,su64,al", group, MODE_none);
!   }
! 
!   bool
!   check (function_checker &c) const override
!   {
!     return c.require_immediate_range (0, 0, 0);
!   }
! };
! SHAPE (ldr_zt)
! 
! /* sv<t0>[xN]_t svfoo[_t0]_g(const <t0>_t *)
!    sv<t0>[xN]_t svfoo_vnum[_t0]_g(const <t0>_t *, int64_t).  */
  struct load_def : public load_contiguous_base
  {
    void
*************** struct load_replicate_def : public load_
*** 2260,2265 ****
--- 2988,3020 ----
  };
  SHAPE (load_replicate)
  
+ /* void svfoo_t0(uint64_t, uint32_t, svbool_t, const void *)
+    void svfoo_vnum_t0(uint64_t, uint32_t, svbool_t, const void *, int64_t)
+ 
+    where the first two fields form a (ZA tile, slice) pair.  */
+ struct load_za_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "_,su64,su32,vp,al", group, MODE_none);
+     build_all (b, "_,su64,su32,vp,al,ss64", group, MODE_vnum);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_range (0, 0, c.num_za_tiles () - 1);
+   }
+ };
+ SHAPE (load_za)
+ 
+ using luti2_lane_zt_def = luti_lane_zt_base<2>;
+ SHAPE (luti2_lane_zt)
+ 
+ using luti4_lane_zt_def = luti_lane_zt_base<4>;
+ SHAPE (luti4_lane_zt)
+ 
  /* svbool_t svfoo(enum svpattern).  */
  struct pattern_pred_def : public nonoverloaded_base
  {
*************** struct rdffr_def : public nonoverloaded_
*** 2354,2359 ****
--- 3109,3184 ----
  };
  SHAPE (rdffr)
  
+ /* sv<t1>x<g>_t svfoo_t0_t1_g(uint64_t, uint32_t).  */
+ struct read_za_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "t1,su64,su32", group, MODE_none);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_range (0, 0, c.num_za_tiles () - 1);
+   }
+ };
+ SHAPE (read_za)
+ 
+ /* sv<t1>_t svfoo_t0[_t1](uint64_t, uint32_t)
+ 
+    where the first two fields form a (ZA tile, slice) pair.  */
+ struct read_za_m_def : public overloaded_base<1>
+ {
+   bool
+   has_merge_argument_p (const function_instance &, unsigned int) const override
+   {
+     return true;
+   }
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "t1,su64,su32", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     gcc_assert (r.pred == PRED_m);
+     type_suffix_index type;
+     if (!r.check_num_arguments (4)
+ 	|| (type = r.infer_vector_type (0)) == NUM_TYPE_SUFFIXES
+ 	|| !r.require_vector_type (1, VECTOR_TYPE_svbool_t)
+ 	|| !r.require_integer_immediate (2)
+ 	|| !r.require_scalar_type (3, "uint32_t"))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, r.type_suffix_ids[0], type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     gcc_assert (c.pred == PRED_m);
+     return c.require_immediate_range (1, 0, c.num_za_tiles () - 1);
+   }
+ };
+ SHAPE (read_za_m)
+ 
+ /* sv<t1>x<g>_t svfoo_t0_t1_g(uint32_t).  */
+ struct read_za_slice_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "t1,su32", group, MODE_none);
+   }
+ };
+ SHAPE (read_za_slice)
+ 
  /* <t0>_t svfoo[_t0](sv<t0>_t).  */
  struct reduction_def : public overloaded_base<0>
  {
*************** struct reduction_wide_def : public overl
*** 2395,2400 ****
--- 3220,3264 ----
  };
  SHAPE (reduction_wide)
  
+ /* sv<t0>x<g>_t svfoo_t0[_t1_g](sv<t1>x<g>_t)
+ 
+    where the target type <t0> must be specified explicitly but the source
+    type <t1> can be inferred.  */
+ struct reinterpret_def : public overloaded_base<1>
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "t0,t1", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (1)
+ 	|| !(type = r.infer_sve_type (0)))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (reinterpret)
+ 
+ /* sv<t0>_t svfoo_t0(sv<t0>_t, sv<t0>_t, uint32_t).  */
+ struct select_pred_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "v0,v0,vp,su32", group, MODE_none);
+   }
+ };
+ SHAPE (select_pred)
+ 
  /* sv<t0>xN_t svfoo[_t0](sv<t0>xN_t, uint64_t, sv<t0>_t)
  
     where the second argument is an integer constant expression in the
*************** struct set_def : public overloaded_base<
*** 2412,2420 ****
    resolve (function_resolver &r) const override
    {
      unsigned int i, nargs;
!     type_suffix_index type;
      if (!r.check_gp_argument (3, i, nargs)
! 	|| (type = r.infer_tuple_type (i)) == NUM_TYPE_SUFFIXES
  	|| !r.require_integer_immediate (i + 1)
  	|| !r.require_derived_vector_type (i + 2, i, type))
        return error_mark_node;
--- 3276,3284 ----
    resolve (function_resolver &r) const override
    {
      unsigned int i, nargs;
!     sve_type type;
      if (!r.check_gp_argument (3, i, nargs)
! 	|| !(type = r.infer_tuple_type (i))
  	|| !r.require_integer_immediate (i + 1)
  	|| !r.require_derived_vector_type (i + 2, i, type))
        return error_mark_node;
*************** typedef shift_right_imm_narrow_wrapper<b
*** 2564,2569 ****
--- 3428,3469 ----
    shift_right_imm_narrowt_to_uint_def;
  SHAPE (shift_right_imm_narrowt_to_uint)
  
+ /* sv<t0>_t svfoo[_n_t0])(sv<t0>_t, uint64_t)
+ 
+    where the final argument must be an integer constant expression in the
+    range [1, sizeof (<t0>_t) * 8].  */
+ struct shift_right_imm_narrowxn_def : public overloaded_base<1>
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_n);
+     build_all (b, "c0,c1,su64", group, MODE_n);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (2)
+ 	|| !(type = r.infer_sve_type (0))
+ 	|| !r.require_integer_immediate (1))
+       return error_mark_node;
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     unsigned int suffix = c.group_suffix_id == GROUP_x4 ? 1 : 0;
+     unsigned int bits = c.type_suffix (suffix).element_bits;
+     return c.require_immediate_range (1, 1, bits);
+   }
+ };
+ SHAPE (shift_right_imm_narrowxn)
+ 
  /* void svfoo[_t0](<X>_t *, sv<t0>[xN]_t)
     void svfoo_vnum[_t0](<X>_t *, int64_t, sv<t0>[xN]_t)
  
*************** struct store_def : public overloaded_bas
*** 2587,2597 ****
      gcc_assert (r.mode_suffix_id == MODE_none || vnum_p);
  
      unsigned int i, nargs;
!     type_suffix_index type;
      if (!r.check_gp_argument (vnum_p ? 3 : 2, i, nargs)
  	|| !r.require_pointer_type (i)
  	|| (vnum_p && !r.require_scalar_type (i + 1, "int64_t"))
! 	|| ((type = r.infer_tuple_type (nargs - 1)) == NUM_TYPE_SUFFIXES))
        return error_mark_node;
  
      return r.resolve_to (r.mode_suffix_id, type);
--- 3487,3497 ----
      gcc_assert (r.mode_suffix_id == MODE_none || vnum_p);
  
      unsigned int i, nargs;
!     sve_type type;
      if (!r.check_gp_argument (vnum_p ? 3 : 2, i, nargs)
  	|| !r.require_pointer_type (i)
  	|| (vnum_p && !r.require_scalar_type (i + 1, "int64_t"))
! 	|| !(type = r.infer_tuple_type (nargs - 1)))
        return error_mark_node;
  
      return r.resolve_to (r.mode_suffix_id, type);
*************** struct store_scatter_offset_restricted_d
*** 2694,2699 ****
--- 3594,3685 ----
  };
  SHAPE (store_scatter_offset_restricted)
  
+ /* void svfoo_t0(uint64_t, uint32_t, svbool_t, void *)
+    void svfoo_vnum_t0(uint64_t, uint32_t, svbool_t, void *, int64_t)
+ 
+    where the first two fields form a (ZA tile, slice) pair.  */
+ struct store_za_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "_,su64,su32,vp,as", group, MODE_none);
+     build_all (b, "_,su64,su32,vp,as,ss64", group, MODE_vnum);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_range (0, 0, c.num_za_tiles () - 1);
+   }
+ };
+ SHAPE (store_za)
+ 
+ /* void svfoo[_t0_g](<X>_t *, sv<t0>x<g>_t)
+    void svfoo_vnum[_t0_g](<X>_t *, int64_t, sv<t0>x<g>_t)
+ 
+    where <X> might be tied to <t0> (for non-truncating stores) or might
+    depend on the function base name (for truncating stores).  */
+ struct storexn_def : public store_def
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     bool vnum_p = r.mode_suffix_id == MODE_vnum;
+     gcc_assert (r.mode_suffix_id == MODE_none || vnum_p);
+ 
+     unsigned int nargs = vnum_p ? 4 : 3;
+     vector_type_index pred_type;
+     sve_type type;
+     if (!r.check_num_arguments (nargs)
+ 	|| (pred_type = r.infer_predicate_type (0)) == NUM_VECTOR_TYPES
+ 	|| !r.require_pointer_type (1)
+ 	|| (vnum_p && !r.require_scalar_type (2, "int64_t"))
+ 	|| !(type = r.infer_sve_type (nargs - 1))
+ 	|| !r.require_matching_predicate_type (pred_type, type))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (storexn)
+ 
+ /* void svfoo_t0(uint32_t, void *)
+    void svfoo_vnum_t0(uint32_t, void *, int64_t)
+ 
+    where the first argument is a variable ZA slice.  */
+ struct str_za_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "_,su32,as", group, MODE_none);
+     build_all (b, "_,su32,as,ss64", group, MODE_vnum);
+   }
+ };
+ SHAPE (str_za)
+ 
+ /* void svfoo_zt(uint64_t, void *)
+ 
+    where the first argument must be zero.  */
+ struct str_zt_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     build_all (b, "_,su64,as", group, MODE_none);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_range (0, 0, 0);
+   }
+ };
+ SHAPE (str_zt)
+ 
  /* sv<t0>_t svfoo[_t0](sv<t0>xN_t, sv<t0:uint>_t).  */
  struct tbl_tuple_def : public overloaded_base<0>
  {
*************** struct tbl_tuple_def : public overloaded
*** 2708,2716 ****
    resolve (function_resolver &r) const override
    {
      unsigned int i, nargs;
!     type_suffix_index type;
      if (!r.check_gp_argument (2, i, nargs)
! 	|| (type = r.infer_tuple_type (i)) == NUM_TYPE_SUFFIXES
  	|| !r.require_derived_vector_type (i + 1, i, type, TYPE_unsigned))
        return error_mark_node;
  
--- 3694,3702 ----
    resolve (function_resolver &r) const override
    {
      unsigned int i, nargs;
!     sve_type type;
      if (!r.check_gp_argument (2, i, nargs)
! 	|| !(type = r.infer_tuple_type (i))
  	|| !r.require_derived_vector_type (i + 1, i, type, TYPE_unsigned))
        return error_mark_node;
  
*************** struct ternary_lane_def : public overloa
*** 2817,2823 ****
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (3);
    }
  };
  SHAPE (ternary_lane)
--- 3803,3809 ----
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (3, 2);
    }
  };
  SHAPE (ternary_lane)
*************** struct ternary_lane_rotate_def : public
*** 2845,2851 ****
    bool
    check (function_checker &c) const override
    {
!     return (c.require_immediate_lane_index (3, 2)
  	    && c.require_immediate_one_of (4, 0, 90, 180, 270));
    }
  };
--- 3831,3837 ----
    bool
    check (function_checker &c) const override
    {
!     return (c.require_immediate_lane_index (3, 2, 2)
  	    && c.require_immediate_one_of (4, 0, 90, 180, 270));
    }
  };
*************** struct ternary_long_lane_def
*** 2868,2874 ****
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (3);
    }
  };
  SHAPE (ternary_long_lane)
--- 3854,3860 ----
    bool
    check (function_checker &c) const override
    {
!     return c.require_immediate_lane_index (3, 2);
    }
  };
  SHAPE (ternary_long_lane)
*************** struct ternary_opt_n_def : public overlo
*** 2915,2934 ****
  };
  SHAPE (ternary_opt_n)
  
! /* sv<t0>_t svfoo[_t0](sv<t0>_t, sv<t0:quarter>_t, sv<t0:quarter>_t, uint64_t)
  
     where the final argument is an integer constant expression in the range
     [0, 16 / sizeof (<t0>_t) - 1].  */
! struct ternary_qq_lane_def : public ternary_qq_lane_base<>
  {
    void
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     build_all (b, "v0,v0,vq0,vq0,su64", group, MODE_none);
    }
  };
! SHAPE (ternary_qq_lane)
  
  /* svbool_t svfoo[_<t0>](sv<t0>_t, sv<t0:quarter>_t, sv<t0:quarter>_t,
  			 uint64_t)
--- 3901,3949 ----
  };
  SHAPE (ternary_opt_n)
  
! /* A choice between:
! 
!    (1) sv<t0>_t svfoo[_t0](sv<t0>_t, sv<t0:quarter>_t, sv<t0:quarter>_t,
! 			   uint64_t)
! 
!    (2) sv<t0>_t svfoo[_t0_t1](sv<t0>_t, sv<t1>_t, sv<t1>_t, uint64_t)
  
     where the final argument is an integer constant expression in the range
     [0, 16 / sizeof (<t0>_t) - 1].  */
! struct ternary_qq_or_011_lane_def : public ternary_qq_lane_base<>
  {
    void
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     if (group.types[0][1] == NUM_TYPE_SUFFIXES)
!       build_all (b, "v0,v0,vq0,vq0,su64", group, MODE_none);
!     else
!       build_all (b, "v0,v0,v1,v1,su64", group, MODE_none);
!   }
! 
!   tree
!   resolve (function_resolver &r) const override
!   {
!     unsigned int i, nargs;
!     type_suffix_index type0, type1;
!     if (!r.check_gp_argument (4, i, nargs)
! 	|| (type0 = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES
! 	|| (type1 = r.infer_vector_type (i + 1)) == NUM_TYPE_SUFFIXES
! 	|| !r.require_matching_vector_type (i + 2, i + 1, type1)
! 	|| !r.require_integer_immediate (i + 3))
!       return error_mark_node;
! 
!     if ((type_suffixes[type0].element_bits
! 	 == 4 * type_suffixes[type1].element_bits)
! 	&& type_suffixes[type0].tclass == type_suffixes[type1].tclass)
!       if (tree res = r.lookup_form (MODE_none, type0))
! 	return res;
! 
!     return r.resolve_to (r.mode_suffix_id, type0, type1);
    }
  };
! SHAPE (ternary_qq_or_011_lane)
  
  /* svbool_t svfoo[_<t0>](sv<t0>_t, sv<t0:quarter>_t, sv<t0:quarter>_t,
  			 uint64_t)
*************** struct ternary_qq_lane_rotate_def : publ
*** 2965,2994 ****
    bool
    check (function_checker &c) const override
    {
!     return (c.require_immediate_lane_index (3, 4)
  	    && c.require_immediate_one_of (4, 0, 90, 180, 270));
    }
  };
  SHAPE (ternary_qq_lane_rotate)
  
! /* sv<t0>_t svfoo[_t0](sv<t0>_t, sv<t0:quarter>_t, sv<t0:quarter>_t)
!    sv<t0>_t svfoo[_n_t0](sv<t0>_t, sv<t0:quarter>_t, <t0:quarter>_t)
  
!    i.e. a version of the standard ternary shape ternary_opt_n in which
!    the element type of the last two arguments is the quarter-sized
!    equivalent of <t0>.  */
! struct ternary_qq_opt_n_def
    : public ternary_resize2_opt_n_base<function_resolver::QUARTER_SIZE>
  {
    void
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     build_all (b, "v0,v0,vq0,vq0", group, MODE_none);
!     build_all (b, "v0,v0,vq0,sq0", group, MODE_n);
    }
  };
! SHAPE (ternary_qq_opt_n)
  
  /* svbool_t svfoo[_<t0>](sv<t0>_t, sv<t0:quarter>_t, sv<t0:quarter>_t,
  			 uint64_t)
--- 3980,4049 ----
    bool
    check (function_checker &c) const override
    {
!     return (c.require_immediate_lane_index (3, 0)
  	    && c.require_immediate_one_of (4, 0, 90, 180, 270));
    }
  };
  SHAPE (ternary_qq_lane_rotate)
  
! /* A choice between:
  
!    (1) sv<t0>_t svfoo[_t0](sv<t0>_t, sv<t0:quarter>_t, sv<t0:quarter>_t)
!        sv<t0>_t svfoo[_n_t0](sv<t0>_t, sv<t0:quarter>_t, <t0:quarter>_t)
! 
!        i.e. a version of the standard ternary shape ternary_opt_n in which
!        the element type of the last two arguments is the quarter-sized
!        equivalent of <t0>.
! 
!    (2) sv<t0>_t svfoo[_t0_t1](sv<t0>_t, sv<t1>_t, sv<t1>_t)
! 
!        where the element type of the last two arguments is specified
!        explicitly.  */
! struct ternary_qq_opt_n_or_011_def
    : public ternary_resize2_opt_n_base<function_resolver::QUARTER_SIZE>
  {
    void
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     if (group.types[0][1] == NUM_TYPE_SUFFIXES)
!       {
! 	build_all (b, "v0,v0,vq0,vq0", group, MODE_none);
! 	build_all (b, "v0,v0,vq0,sq0", group, MODE_n);
!       }
!     else
!       build_all (b, "v0,v0,v1,v1", group, MODE_none);
!   }
! 
!   tree
!   resolve (function_resolver &r) const override
!   {
!     unsigned int i, nargs;
!     type_suffix_index type0, type1;
!     if (!r.check_gp_argument (3, i, nargs)
! 	|| (type0 = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES
! 	|| (type1 = r.infer_vector_type (i + 1)) == NUM_TYPE_SUFFIXES
! 	|| !r.require_vector_or_scalar_type (i + 2))
!       return error_mark_node;
! 
!     auto mode = r.scalar_argument_p (i + 2) ? MODE_n : MODE_none;
!     if (mode == MODE_none
! 	&& !r.require_matching_vector_type (i + 2, i + 1, type1))
!       return error_mark_node;
! 
!     if ((type_suffixes[type0].element_bits
! 	 == 4 * type_suffixes[type1].element_bits)
! 	&& type_suffixes[type0].tclass == type_suffixes[type1].tclass)
!       if (tree res = r.lookup_form (mode, type0))
! 	return res;
! 
!     if (!r.require_nonscalar_type (i + 2))
!       return error_mark_node;
! 
!     return r.resolve_to (r.mode_suffix_id, type0, type1);
    }
  };
! SHAPE (ternary_qq_opt_n_or_011)
  
  /* svbool_t svfoo[_<t0>](sv<t0>_t, sv<t0:quarter>_t, sv<t0:quarter>_t,
  			 uint64_t)
*************** struct ternary_uint_def : public overloa
*** 3103,3109 ****
      type_suffix_index type;
      if (!r.check_gp_argument (3, i, nargs)
  	|| (type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES
! 	|| !r.require_matching_vector_type (i + 1, type)
  	|| !r.require_derived_vector_type (i + 2, i, type, TYPE_unsigned))
        return error_mark_node;
  
--- 4158,4164 ----
      type_suffix_index type;
      if (!r.check_gp_argument (3, i, nargs)
  	|| (type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES
! 	|| !r.require_matching_vector_type (i + 1, i, type)
  	|| !r.require_derived_vector_type (i + 2, i, type, TYPE_unsigned))
        return error_mark_node;
  
*************** struct unary_def : public overloaded_bas
*** 3198,3204 ****
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     build_all (b, "v0,v0", group, MODE_none);
    }
  
    tree
--- 4253,4259 ----
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     build_all (b, "t0,t0", group, MODE_none);
    }
  
    tree
*************** struct unary_convert_def : public overlo
*** 3219,3225 ****
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     build_all (b, "v0,v1", group, MODE_none);
    }
  
    tree
--- 4274,4280 ----
    build (function_builder &b, const function_group_info &group) const override
    {
      b.add_overloaded_functions (group, MODE_none);
!     build_all (b, "c0,c1", group, MODE_none);
    }
  
    tree
*************** SHAPE (unary_convert)
*** 3238,3243 ****
--- 4293,4304 ----
     predicate.  */
  struct unary_convert_narrowt_def : public overloaded_base<1>
  {
+   bool
+   has_merge_argument_p (const function_instance &, unsigned int) const override
+   {
+     return true;
+   }
+ 
    void
    build (function_builder &b, const function_group_info &group) const override
    {
*************** struct unary_convert_narrowt_def : publi
*** 3254,3259 ****
--- 4315,4352 ----
  };
  SHAPE (unary_convert_narrowt)
  
+ /* sv<t0>x<g0>_t svfoo_t0[_t1_g](sv<t1>x<g1>_t)
+ 
+    where the target type <t0> must be specified explicitly but the
+    source type <t1> can be inferred.
+ 
+    Functions with a group suffix are unpredicated.  For them:
+ 
+    - If <t0> is N times wider than <t1>, the return value has N times
+      more vectors than the argument.
+ 
+    - If <t1> is N times wider than <t0>, the argument has N times
+      more vectors than the return type.  */
+ struct unary_convertxn_def : public unary_convert_def
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     if (r.pred != PRED_none)
+       return unary_convert_def::resolve (r);
+ 
+     sve_type type;
+     if (!r.check_num_arguments (1)
+ 	|| !(type = r.infer_sve_type (0)))
+       return error_mark_node;
+ 
+     return r.resolve_conversion (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (unary_convertxn)
+ 
  /* sv<t0>_t svfoo[_t0](sv<t0:half>_t).  */
  struct unary_long_def : public overloaded_base<0>
  {
*************** struct unary_widen_def : public overload
*** 3448,3451 ****
--- 4541,4713 ----
  };
  SHAPE (unary_widen)
  
+ /* void svfoo_t0[_t1](uint64_t, svbool_t, svbool_t, sv<t1>_t)
+ 
+    where the first argument is a ZA tile.  */
+ struct unary_za_m_def : public overloaded_base<1>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su64,vp,vp,t1", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     type_suffix_index type;
+     if (!r.check_num_arguments (4)
+ 	|| !r.require_integer_immediate (0)
+ 	|| !r.require_vector_type (1, VECTOR_TYPE_svbool_t)
+ 	|| !r.require_vector_type (2, VECTOR_TYPE_svbool_t)
+ 	|| (type = r.infer_vector_type (3)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, r.type_suffix_ids[0], type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_range (0, 0, c.num_za_tiles () - 1);
+   }
+ };
+ SHAPE (unary_za_m)
+ 
+ /* void svfoo_t0[_t1]_g(uint32_t, sv<t1>x<g>_t).  */
+ struct unary_za_slice_def : public overloaded_base<1>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     if (!za_group_is_pure_overload (group))
+       build_all (b, "_,su32,t1", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (2)
+ 	|| !r.require_scalar_type (0, "uint32_t")
+ 	|| !(type = r.infer_tuple_type (1)))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (unary_za_slice)
+ 
+ /* sv<t0>x<g>_t svfoo[_t0_g](sv<t0>x<g>_t).  */
+ struct unaryxn_def : public unary_def
+ {
+   bool explicit_group_suffix_p () const override { return false; }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     if (r.pred != PRED_none)
+       return unary_def::resolve (r);
+ 
+     sve_type type;
+     if (!r.check_num_arguments (1)
+ 	|| !(type = r.infer_sve_type (0)))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (unaryxn)
+ 
+ /* void svfoo_t0[_t1_g](uint64_t, uint32_t, sv<t1>x<g>_t).  */
+ struct write_za_def : public overloaded_base<1>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su64,su32,t1", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (3)
+ 	|| !r.require_integer_immediate (0)
+ 	|| !r.require_scalar_type (1, "uint32_t")
+ 	|| !(type = r.infer_tuple_type (2)))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_range (0, 0, c.num_za_tiles () - 1);
+   }
+ };
+ SHAPE (write_za)
+ 
+ /* void svfoo_t0[_t1](uint64_t, uint32_t, svbool_t, sv<t1>_t)
+ 
+    where the first two fields form a (ZA tile, slice) pair.  */
+ struct write_za_m_def : public overloaded_base<1>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su64,su32,vp,t1", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     type_suffix_index type;
+     if (!r.check_num_arguments (4)
+ 	|| !r.require_integer_immediate (0)
+ 	|| !r.require_scalar_type (1, "uint32_t")
+ 	|| !r.require_vector_type (2, VECTOR_TYPE_svbool_t)
+ 	|| (type = r.infer_vector_type (3)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, r.type_suffix_ids[0], type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     return c.require_immediate_range (0, 0, c.num_za_tiles () - 1);
+   }
+ };
+ SHAPE (write_za_m)
+ 
+ /* void svfoo_t0[_t1_g](uint32_t, sv<t1>x<g>_t).  */
+ struct write_za_slice_def : public overloaded_base<1>
+ {
+   void
+   build (function_builder &b, const function_group_info &group) const override
+   {
+     b.add_overloaded_functions (group, MODE_none);
+     build_all (b, "_,su32,t1", group, MODE_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     sve_type type;
+     if (!r.check_num_arguments (2)
+ 	|| !r.require_scalar_type (0, "uint32_t")
+ 	|| !(type = r.infer_tuple_type (1)))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (write_za_slice)
+ 
  }
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-shapes.h gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-shapes.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-shapes.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-shapes.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (function shapes)
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (function shapes)
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** namespace aarch64_sve
*** 40,45 ****
--- 40,48 ----
         one in which the argument is the usual vector, and one in which it
         is replaced by a scalar.
  
+      - an "_opt_single" suffix similarly says that the function can take
+        a vector or tuple argument, with the former having a "_single" suffix.
+ 
       - "_int" and "_uint" replace the argument's element type with a
         signed or unsigned integer of the same width.  The suffixes above
         then indicate whether this final argument is or might be a scalar.
*************** namespace aarch64_sve
*** 75,80 ****
--- 78,84 ----
      extern const function_shape *const adr_offset;
      extern const function_shape *const binary;
      extern const function_shape *const binary_int_opt_n;
+     extern const function_shape *const binary_int_opt_single_n;
      extern const function_shape *const binary_lane;
      extern const function_shape *const binary_long_lane;
      extern const function_shape *const binary_long_opt_n;
*************** namespace aarch64_sve
*** 82,90 ****
--- 86,96 ----
      extern const function_shape *const binary_narrowb_opt_n;
      extern const function_shape *const binary_narrowt_opt_n;
      extern const function_shape *const binary_opt_n;
+     extern const function_shape *const binary_opt_single_n;
      extern const function_shape *const binary_pred;
      extern const function_shape *const binary_rotate;
      extern const function_shape *const binary_scalar;
+     extern const function_shape *const binary_single;
      extern const function_shape *const binary_to_uint;
      extern const function_shape *const binary_uint;
      extern const function_shape *const binary_uint_n;
*************** namespace aarch64_sve
*** 93,119 ****
--- 99,148 ----
      extern const function_shape *const binary_uint64_opt_n;
      extern const function_shape *const binary_wide;
      extern const function_shape *const binary_wide_opt_n;
+     extern const function_shape *const binary_za_int_m;
+     extern const function_shape *const binary_za_m;
+     extern const function_shape *const binary_za_slice_lane;
+     extern const function_shape *const binary_za_slice_int_opt_single;
+     extern const function_shape *const binary_za_slice_opt_single;
+     extern const function_shape *const binary_za_slice_uint_opt_single;
+     extern const function_shape *const binary_za_uint_m;
+     extern const function_shape *const binaryxn;
+     extern const function_shape *const bool_inherent;
+     extern const function_shape *const clamp;
      extern const function_shape *const clast;
      extern const function_shape *const compare;
      extern const function_shape *const compare_opt_n;
      extern const function_shape *const compare_ptr;
      extern const function_shape *const compare_scalar;
+     extern const function_shape *const compare_scalar_count;
      extern const function_shape *const compare_wide_opt_n;
      extern const function_shape *const count_inherent;
      extern const function_shape *const count_pat;
      extern const function_shape *const count_pred;
+     extern const function_shape *const count_pred_c;
      extern const function_shape *const count_vector;
      extern const function_shape *const create;
+     extern const function_shape *const dot_za_slice_int_lane;
+     extern const function_shape *const dot_za_slice_lane;
+     extern const function_shape *const dot_za_slice_uint_lane;
      extern const function_shape *const dupq;
+     extern const function_shape *const dup_neonq;
      extern const function_shape *const ext;
+     extern const function_shape *const extract_pred;
      extern const function_shape *const fold_left;
      extern const function_shape *const get;
+     extern const function_shape *const get_neonq;
      extern const function_shape *const inc_dec;
      extern const function_shape *const inc_dec_pat;
      extern const function_shape *const inc_dec_pred;
      extern const function_shape *const inc_dec_pred_scalar;
      extern const function_shape *const inherent;
      extern const function_shape *const inherent_b;
+     extern const function_shape *const inherent_za;
+     extern const function_shape *const inherent_zt;
+     extern const function_shape *const inherent_mask_za;
+     extern const function_shape *const ldr_zt;
+     extern const function_shape *const ldr_za;
      extern const function_shape *const load;
      extern const function_shape *const load_ext;
      extern const function_shape *const load_ext_gather_index;
*************** namespace aarch64_sve
*** 124,129 ****
--- 153,161 ----
      extern const function_shape *const load_gather_sv_restricted;
      extern const function_shape *const load_gather_vs;
      extern const function_shape *const load_replicate;
+     extern const function_shape *const load_za;
+     extern const function_shape *const luti2_lane_zt;
+     extern const function_shape *const luti4_lane_zt;
      extern const function_shape *const mmla;
      extern const function_shape *const pattern_pred;
      extern const function_shape *const prefetch;
*************** namespace aarch64_sve
*** 131,145 ****
--- 163,184 ----
      extern const function_shape *const prefetch_gather_offset;
      extern const function_shape *const ptest;
      extern const function_shape *const rdffr;
+     extern const function_shape *const read_za;
+     extern const function_shape *const read_za_m;
+     extern const function_shape *const read_za_slice;
      extern const function_shape *const reduction;
      extern const function_shape *const reduction_wide;
+     extern const function_shape *const reinterpret;
+     extern const function_shape *const select_pred;
      extern const function_shape *const set;
      extern const function_shape *const setffr;
+     extern const function_shape *const set_neonq;
      extern const function_shape *const shift_left_imm_long;
      extern const function_shape *const shift_left_imm_to_uint;
      extern const function_shape *const shift_right_imm;
      extern const function_shape *const shift_right_imm_narrowb;
      extern const function_shape *const shift_right_imm_narrowt;
+     extern const function_shape *const shift_right_imm_narrowxn;
      extern const function_shape *const shift_right_imm_narrowb_to_uint;
      extern const function_shape *const shift_right_imm_narrowt_to_uint;
      extern const function_shape *const store;
*************** namespace aarch64_sve
*** 147,152 ****
--- 186,195 ----
      extern const function_shape *const store_scatter_index_restricted;
      extern const function_shape *const store_scatter_offset;
      extern const function_shape *const store_scatter_offset_restricted;
+     extern const function_shape *const store_za;
+     extern const function_shape *const storexn;
+     extern const function_shape *const str_za;
+     extern const function_shape *const str_zt;
      extern const function_shape *const tbl_tuple;
      extern const function_shape *const ternary_bfloat;
      extern const function_shape *const ternary_bfloat_lane;
*************** namespace aarch64_sve
*** 159,167 ****
      extern const function_shape *const ternary_long_lane;
      extern const function_shape *const ternary_long_opt_n;
      extern const function_shape *const ternary_opt_n;
!     extern const function_shape *const ternary_qq_lane;
      extern const function_shape *const ternary_qq_lane_rotate;
!     extern const function_shape *const ternary_qq_opt_n;
      extern const function_shape *const ternary_qq_rotate;
      extern const function_shape *const ternary_rotate;
      extern const function_shape *const ternary_shift_left_imm;
--- 202,210 ----
      extern const function_shape *const ternary_long_lane;
      extern const function_shape *const ternary_long_opt_n;
      extern const function_shape *const ternary_opt_n;
!     extern const function_shape *const ternary_qq_or_011_lane;
      extern const function_shape *const ternary_qq_lane_rotate;
!     extern const function_shape *const ternary_qq_opt_n_or_011;
      extern const function_shape *const ternary_qq_rotate;
      extern const function_shape *const ternary_rotate;
      extern const function_shape *const ternary_shift_left_imm;
*************** namespace aarch64_sve
*** 174,179 ****
--- 217,223 ----
      extern const function_shape *const unary;
      extern const function_shape *const unary_convert;
      extern const function_shape *const unary_convert_narrowt;
+     extern const function_shape *const unary_convertxn;
      extern const function_shape *const unary_long;
      extern const function_shape *const unary_n;
      extern const function_shape *const unary_narrowb;
*************** namespace aarch64_sve
*** 185,190 ****
--- 229,240 ----
      extern const function_shape *const unary_to_uint;
      extern const function_shape *const unary_uint;
      extern const function_shape *const unary_widen;
+     extern const function_shape *const unary_za_m;
+     extern const function_shape *const unary_za_slice;
+     extern const function_shape *const unaryxn;
+     extern const function_shape *const write_za;
+     extern const function_shape *const write_za_m;
+     extern const function_shape *const write_za_slice;
    }
  }
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sme.cc gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sme.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sme.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sme.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,580 ----
+ /* ACLE support for AArch64 SME.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "tree.h"
+ #include "rtl.h"
+ #include "tm_p.h"
+ #include "memmodel.h"
+ #include "insn-codes.h"
+ #include "optabs.h"
+ #include "recog.h"
+ #include "expr.h"
+ #include "basic-block.h"
+ #include "function.h"
+ #include "fold-const.h"
+ #include "gimple.h"
+ #include "gimple-iterator.h"
+ #include "gimplify.h"
+ #include "explow.h"
+ #include "emit-rtl.h"
+ #include "aarch64-sve-builtins.h"
+ #include "aarch64-sve-builtins-shapes.h"
+ #include "aarch64-sve-builtins-base.h"
+ #include "aarch64-sve-builtins-sme.h"
+ #include "aarch64-sve-builtins-functions.h"
+ 
+ using namespace aarch64_sve;
+ 
+ namespace {
+ 
+ class load_store_za_zt0_base : public function_base
+ {
+ public:
+   tree
+   memory_scalar_type (const function_instance &) const override
+   {
+     return void_type_node;
+   }
+ };
+ 
+ class read_write_za_base : public function_base
+ {
+ public:
+   constexpr read_write_za_base (int unspec) : m_unspec (unspec) {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     auto za_mode = e.vector_mode (0);
+     auto z_mode = e.tuple_mode (1);
+     auto icode = (za_mode == VNx1TImode
+ 		  ? code_for_aarch64_sme (m_unspec, za_mode, z_mode)
+ 		  : code_for_aarch64_sme (m_unspec, z_mode, z_mode));
+     return e.use_exact_insn (icode);
+   }
+ 
+   int m_unspec;
+ };
+ 
+ using load_za_base = add_call_properties<load_store_za_zt0_base,
+ 					 CP_READ_MEMORY | CP_READ_ZA
+ 					 | CP_WRITE_ZA>;
+ 
+ using store_za_base = add_call_properties<load_store_za_zt0_base,
+ 					  CP_WRITE_MEMORY | CP_READ_ZA>;
+ 
+ /* E is a load or store intrinsic that accesses a ZA slice of mode MEM_MODE.
+    The intrinsic has a vnum parameter at index ARGNO.  Return true if the
+    vnum argument is a constant that is a valid ZA offset for the underlying
+    instruction.  */
+ 
+ static bool
+ has_in_range_vnum_arg (function_expander &e, machine_mode mem_mode,
+ 		       unsigned int argno)
+ {
+   return (e.mode_suffix_id == MODE_vnum
+ 	  && CONST_INT_P (e.args[argno])
+ 	  && UINTVAL (e.args[argno]) < 16 / GET_MODE_UNIT_SIZE (mem_mode));
+ }
+ 
+ /* E is a ZA load or store intrinsic that uses instruction ICODE.  Add a
+    32-bit operand that gives the total ZA slice.  (The instruction hard-codes
+    the constant offset to 0, so there is no operand for that.)
+ 
+    Argument ARGNO is the intrinsic's slice argument.  If the intrinsic is
+    a _vnum intrinsic, argument VNUM_ARGNO is the intrinsic's vnum operand,
+    which must be added to the slice argument.  */
+ 
+ static void
+ add_load_store_slice_operand (function_expander &e, insn_code icode,
+ 			      unsigned int argno, unsigned int vnum_argno)
+ {
+   rtx base = e.args[argno];
+   if (e.mode_suffix_id == MODE_vnum)
+     {
+       rtx vnum = lowpart_subreg (SImode, e.args[vnum_argno], DImode);
+       base = simplify_gen_binary (PLUS, SImode, base, vnum);
+     }
+   e.add_input_operand (icode, base);
+ }
+ 
+ /* Add a memory operand for ZA LD1 or ST1 intrinsic E.  BASE_ARGNO is
+    the index of the base argument.  */
+ 
+ static void
+ add_load_store_operand (function_expander &e, unsigned int base_argno)
+ {
+   auto mode = e.vector_mode (0);
+   rtx base = e.get_contiguous_base (mode, base_argno, base_argno + 1,
+ 				    AARCH64_FL_SM_ON);
+   auto mem = gen_rtx_MEM (mode, force_reg (Pmode, base));
+   set_mem_align (mem, BITS_PER_UNIT);
+   e.add_fixed_operand (mem);
+ }
+ 
+ /* Expand ZA LDR or STR intrinsic E.  There are two underlying instructions:
+ 
+    - BASE_CODE has a zero ZA slice offset
+    - VNUM_CODE has a constant operand for the ZA slice offset.  */
+ 
+ static rtx
+ expand_ldr_str_za (function_expander &e, insn_code base_code,
+ 		   insn_code vnum_code)
+ {
+   if (has_in_range_vnum_arg (e, VNx16QImode, 2))
+     {
+       rtx mem_offset = aarch64_sme_vq_immediate (Pmode,
+ 						 UINTVAL (e.args[2]) * 16,
+ 						 AARCH64_ISA_MODE);
+       e.add_input_operand (vnum_code, e.args[0]);
+       e.add_input_operand (vnum_code, e.args[2]);
+       e.add_input_operand (vnum_code, e.args[1]);
+       e.add_input_operand (vnum_code, mem_offset);
+       return e.generate_insn (vnum_code);
+     }
+   else
+     {
+       rtx base = e.get_contiguous_base (VNx16QImode, 1, 2, AARCH64_FL_SM_ON);
+       add_load_store_slice_operand (e, base_code, 0, 2);
+       e.add_input_operand (base_code, base);
+       return e.generate_insn (base_code);
+     }
+ }
+ 
+ /* Use instruction ICODE to expand ZT0 load or store E.  */
+ 
+ static rtx
+ expand_ldr_str_zt0 (function_expander &e, insn_code icode)
+ {
+   rtx base = e.convert_to_pmode (e.args[1]);
+   rtx mem = gen_rtx_MEM (V8DImode, force_reg (Pmode, base));
+   e.add_fixed_operand (mem);
+   return e.generate_insn (icode);
+ }
+ 
+ /* Expand ZA LD1 or ST1 intrinsic E.  UNSPEC is the load or store unspec.
+    IS_LOAD is true if E is a load, false if it is a store.  */
+ 
+ static rtx
+ expand_ld1_st1 (function_expander &e, int unspec, bool is_load)
+ {
+   bool is_vnum = has_in_range_vnum_arg (e, e.vector_mode (0), 4);
+   auto icode = (is_vnum
+ 		? code_for_aarch64_sme_plus (unspec, e.vector_mode (0))
+ 		: code_for_aarch64_sme (unspec, e.vector_mode (0)));
+   if (!is_load)
+     add_load_store_operand (e, 3);
+   e.add_input_operand (icode, e.args[0]);
+   if (is_vnum)
+     {
+       e.add_input_operand (icode, e.args[1]);
+       e.add_input_operand (icode, e.args[4]);
+     }
+   else
+     add_load_store_slice_operand (e, icode, 1, 4);
+   e.add_input_operand (icode, e.args[2]);
+   if (is_load)
+     add_load_store_operand (e, 3);
+   return e.generate_insn (icode);
+ }
+ 
+ class arm_has_sme_impl : public function_base
+ {
+   gimple *
+   fold (gimple_folder &f) const override
+   {
+     if (TARGET_SME)
+       return f.fold_to_cstu (1);
+     return nullptr;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     if (TARGET_SME)
+       return const1_rtx;
+     emit_insn (gen_aarch64_get_sme_state ());
+     return expand_simple_binop (DImode, LSHIFTRT,
+ 				gen_rtx_REG (DImode, R0_REGNUM),
+ 				gen_int_mode (63, QImode),
+ 				e.possible_target, true, OPTAB_LIB_WIDEN);
+   }
+ };
+ 
+ class arm_in_streaming_mode_impl : public function_base
+ {
+   gimple *
+   fold (gimple_folder &f) const override
+   {
+     if (TARGET_STREAMING)
+       return f.fold_to_cstu (1);
+     if (TARGET_NON_STREAMING)
+       return f.fold_to_cstu (0);
+     return nullptr;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     if (TARGET_STREAMING)
+       return const1_rtx;
+ 
+     if (TARGET_NON_STREAMING)
+       return const0_rtx;
+ 
+     rtx reg;
+     if (TARGET_SME)
+       {
+ 	reg = gen_reg_rtx (DImode);
+ 	emit_insn (gen_aarch64_read_svcr (reg));
+       }
+     else
+       {
+ 	emit_insn (gen_aarch64_get_sme_state ());
+ 	reg = gen_rtx_REG (DImode, R0_REGNUM);
+       }
+     return expand_simple_binop (DImode, AND, reg, gen_int_mode (1, DImode),
+ 				e.possible_target, true, OPTAB_LIB_WIDEN);
+   }
+ };
+ 
+ /* Implements svcnts[bhwd].  */
+ class svcnts_bhwd_impl : public function_base
+ {
+ public:
+   constexpr svcnts_bhwd_impl (machine_mode ref_mode) : m_ref_mode (ref_mode) {}
+ 
+   unsigned int
+   get_shift () const
+   {
+     return exact_log2 (GET_MODE_UNIT_SIZE (m_ref_mode));
+   }
+ 
+   gimple *
+   fold (gimple_folder &f) const override
+   {
+     if (TARGET_STREAMING)
+       return f.fold_to_cstu (GET_MODE_NUNITS (m_ref_mode));
+     return nullptr;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     rtx cntsb = aarch64_sme_vq_immediate (DImode, 16, AARCH64_ISA_MODE);
+     auto shift = get_shift ();
+     if (!shift)
+       return cntsb;
+ 
+     return expand_simple_binop (DImode, LSHIFTRT, cntsb,
+ 				gen_int_mode (shift, QImode),
+ 				e.possible_target, true, OPTAB_LIB_WIDEN);
+   }
+ 
+   /* The mode of the vector associated with the [bhwd] suffix.  */
+   machine_mode m_ref_mode;
+ };
+ 
+ class svld1_za_impl : public load_za_base
+ {
+ public:
+   constexpr svld1_za_impl (int unspec) : m_unspec (unspec) {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     return expand_ld1_st1 (e, m_unspec, true);
+   }
+ 
+   int m_unspec;
+ };
+ 
+ class svldr_za_impl : public load_za_base
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     return expand_ldr_str_za (e, CODE_FOR_aarch64_sme_ldr0,
+ 			      code_for_aarch64_sme_ldrn (Pmode));
+   }
+ };
+ 
+ class svldr_zt_impl : public load_store_za_zt0_base
+ {
+ public:
+   unsigned int
+   call_properties (const function_instance &) const override
+   {
+     return CP_READ_MEMORY | CP_WRITE_ZT0;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     return expand_ldr_str_zt0 (e, CODE_FOR_aarch64_sme_ldr_zt0);
+   }
+ };
+ 
+ class svluti_lane_zt_impl : public read_zt0<function_base>
+ {
+ public:
+   CONSTEXPR svluti_lane_zt_impl (unsigned int bits) : m_bits (bits) {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     auto mode = e.tuple_mode (0);
+     e.args.ordered_remove (0);
+     return e.use_exact_insn (code_for_aarch64_sme_lut (m_bits, mode));
+   }
+ 
+   unsigned int m_bits;
+ };
+ 
+ class svread_za_impl : public function_base
+ {
+ public:
+   unsigned int
+   call_properties (const function_instance &) const override
+   {
+     return CP_READ_ZA;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     machine_mode mode = e.vectors_per_tuple () == 4 ? VNx8DImode : VNx4DImode;
+     rtx res = e.use_exact_insn (code_for_aarch64_sme_read (mode));
+     return aarch64_sve_reinterpret (e.result_mode (), res);
+   }
+ };
+ 
+ using svread_za_tile_impl = add_call_properties<read_write_za_base,
+ 						CP_READ_ZA>;
+ 
+ class svst1_za_impl : public store_za_base
+ {
+ public:
+   constexpr svst1_za_impl (int unspec) : m_unspec (unspec) {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     return expand_ld1_st1 (e, m_unspec, false);
+   }
+ 
+   int m_unspec;
+ };
+ 
+ class svstr_za_impl : public store_za_base
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     return expand_ldr_str_za (e, CODE_FOR_aarch64_sme_str0,
+ 			      code_for_aarch64_sme_strn (Pmode));
+   }
+ };
+ 
+ class svstr_zt_impl : public load_store_za_zt0_base
+ {
+ public:
+   unsigned int
+   call_properties (const function_instance &) const override
+   {
+     return CP_WRITE_MEMORY | CP_READ_ZT0;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     return expand_ldr_str_zt0 (e, CODE_FOR_aarch64_sme_str_zt0);
+   }
+ };
+ 
+ class svsudot_za_impl : public read_write_za<function_base>
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     if (e.mode_suffix_id == MODE_single)
+       {
+ 	auto icode = code_for_aarch64_sme_single_sudot (e.vector_mode (0),
+ 							e.tuple_mode (1));
+ 	return e.use_exact_insn (icode);
+       }
+     std::swap (e.args[1], e.args[2]);
+     return e.use_exact_insn (code_for_aarch64_sme (UNSPEC_SME_USDOT,
+ 						   e.vector_mode (0),
+ 						   e.tuple_mode (1)));
+   }
+ };
+ 
+ class svundef_za_impl : public write_za<function_base>
+ {
+ public:
+   rtx
+   expand (function_expander &) const override
+   {
+     rtx target = gen_rtx_REG (VNx16QImode, ZA_REGNUM);
+     emit_clobber (copy_rtx (target));
+     return const0_rtx;
+   }
+ };
+ 
+ class svwrite_za_impl : public function_base
+ {
+ public:
+   unsigned int
+   call_properties (const function_instance &) const override
+   {
+     return CP_WRITE_ZA;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     machine_mode mode = e.vectors_per_tuple () == 4 ? VNx8DImode : VNx4DImode;
+     e.args[1] = aarch64_sve_reinterpret (mode, e.args[1]);
+     return e.use_exact_insn (code_for_aarch64_sme_write (mode));
+   }
+ };
+ 
+ using svwrite_za_tile_impl = add_call_properties<read_write_za_base,
+ 						 CP_READ_ZA | CP_WRITE_ZA>;
+ 
+ class svzero_mask_za_impl : public write_za<function_base>
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     return e.use_exact_insn (CODE_FOR_aarch64_sme_zero_za);
+   }
+ };
+ 
+ class svzero_za_impl : public write_za<function_base>
+ {
+ public:
+   rtx
+   expand (function_expander &) const override
+   {
+     emit_insn (gen_aarch64_sme_zero_za (gen_int_mode (0xff, SImode)));
+     return const0_rtx;
+   }
+ };
+ 
+ class svzero_zt_impl : public write_zt0<function_base>
+ {
+ public:
+   rtx
+   expand (function_expander &) const override
+   {
+     emit_insn (gen_aarch64_sme_zero_zt0 ());
+     return const0_rtx;
+   }
+ };
+ 
+ } /* end anonymous namespace */
+ 
+ namespace aarch64_sve {
+ 
+ FUNCTION (arm_has_sme, arm_has_sme_impl, )
+ FUNCTION (arm_in_streaming_mode, arm_in_streaming_mode_impl, )
+ FUNCTION (svadd_za, sme_1mode_function, (UNSPEC_SME_ADD, UNSPEC_SME_ADD,
+ 					 UNSPEC_SME_FADD))
+ FUNCTION (svadd_write_za, sme_1mode_function, (UNSPEC_SME_ADD_WRITE,
+ 					       UNSPEC_SME_ADD_WRITE, -1))
+ FUNCTION (svaddha_za, sme_1mode_function, (UNSPEC_SME_ADDHA,
+ 					   UNSPEC_SME_ADDHA, -1))
+ FUNCTION (svaddva_za, sme_1mode_function, (UNSPEC_SME_ADDVA,
+ 					  UNSPEC_SME_ADDVA, -1))
+ FUNCTION (svbmopa_za, sme_2mode_function, (-1, UNSPEC_SME_BMOPA, -1))
+ FUNCTION (svbmops_za, sme_2mode_function, (-1, UNSPEC_SME_BMOPS, -1))
+ FUNCTION (svcntsb, svcnts_bhwd_impl, (VNx16QImode))
+ FUNCTION (svcntsd, svcnts_bhwd_impl, (VNx2DImode))
+ FUNCTION (svcntsh, svcnts_bhwd_impl, (VNx8HImode))
+ FUNCTION (svcntsw, svcnts_bhwd_impl, (VNx4SImode))
+ FUNCTION (svdot_za, sme_2mode_function, (UNSPEC_SME_SDOT, UNSPEC_SME_UDOT,
+ 					 UNSPEC_SME_FDOT))
+ FUNCTION (svdot_lane_za, sme_2mode_lane_function, (UNSPEC_SME_SDOT,
+ 						   UNSPEC_SME_UDOT,
+ 						   UNSPEC_SME_FDOT))
+ FUNCTION (svld1_hor_za, svld1_za_impl, (UNSPEC_SME_LD1_HOR))
+ FUNCTION (svld1_ver_za, svld1_za_impl, (UNSPEC_SME_LD1_VER))
+ FUNCTION (svldr_za, svldr_za_impl, )
+ FUNCTION (svldr_zt, svldr_zt_impl, )
+ FUNCTION (svluti2_lane_zt, svluti_lane_zt_impl, (2))
+ FUNCTION (svluti4_lane_zt, svluti_lane_zt_impl, (4))
+ FUNCTION (svmla_za, sme_2mode_function, (UNSPEC_SME_SMLA, UNSPEC_SME_UMLA,
+ 					 UNSPEC_SME_FMLA))
+ FUNCTION (svmla_lane_za, sme_2mode_lane_function, (UNSPEC_SME_SMLA,
+ 						   UNSPEC_SME_UMLA,
+ 						   UNSPEC_SME_FMLA))
+ FUNCTION (svmls_za, sme_2mode_function, (UNSPEC_SME_SMLS, UNSPEC_SME_UMLS,
+ 					 UNSPEC_SME_FMLS))
+ FUNCTION (svmls_lane_za, sme_2mode_lane_function, (UNSPEC_SME_SMLS,
+ 						   UNSPEC_SME_UMLS,
+ 						   UNSPEC_SME_FMLS))
+ FUNCTION (svmopa_za, sme_2mode_function, (UNSPEC_SME_SMOPA, UNSPEC_SME_UMOPA,
+ 					  UNSPEC_SME_FMOPA))
+ FUNCTION (svmops_za, sme_2mode_function, (UNSPEC_SME_SMOPS, UNSPEC_SME_UMOPS,
+ 					  UNSPEC_SME_FMOPS))
+ FUNCTION (svread_za, svread_za_impl,)
+ FUNCTION (svread_hor_za, svread_za_tile_impl, (UNSPEC_SME_READ_HOR))
+ FUNCTION (svread_ver_za, svread_za_tile_impl, (UNSPEC_SME_READ_VER))
+ FUNCTION (svst1_hor_za, svst1_za_impl, (UNSPEC_SME_ST1_HOR))
+ FUNCTION (svst1_ver_za, svst1_za_impl, (UNSPEC_SME_ST1_VER))
+ FUNCTION (svstr_za, svstr_za_impl, )
+ FUNCTION (svstr_zt, svstr_zt_impl, )
+ FUNCTION (svsub_za, sme_1mode_function, (UNSPEC_SME_SUB, UNSPEC_SME_SUB,
+ 					 UNSPEC_SME_FSUB))
+ FUNCTION (svsub_write_za, sme_1mode_function, (UNSPEC_SME_SUB_WRITE,
+ 					       UNSPEC_SME_SUB_WRITE, -1))
+ FUNCTION (svsudot_za, svsudot_za_impl,)
+ FUNCTION (svsudot_lane_za, sme_2mode_lane_function, (UNSPEC_SME_SUDOT, -1, -1))
+ FUNCTION (svsuvdot_lane_za, sme_2mode_lane_function, (UNSPEC_SME_SUVDOT,
+ 						      -1, -1))
+ FUNCTION (svsumopa_za, sme_2mode_function, (UNSPEC_SME_SUMOPA, -1, -1))
+ FUNCTION (svsumops_za, sme_2mode_function, (UNSPEC_SME_SUMOPS, -1, -1))
+ FUNCTION (svundef_za, svundef_za_impl, )
+ FUNCTION (svusdot_za, sme_2mode_function, (-1, UNSPEC_SME_USDOT, -1))
+ FUNCTION (svusdot_lane_za, sme_2mode_lane_function, (-1, UNSPEC_SME_USDOT, -1))
+ FUNCTION (svusvdot_lane_za, sme_2mode_lane_function, (-1, UNSPEC_SME_USVDOT,
+ 						      -1))
+ FUNCTION (svusmopa_za, sme_2mode_function, (-1, UNSPEC_SME_USMOPA, -1))
+ FUNCTION (svusmops_za, sme_2mode_function, (-1, UNSPEC_SME_USMOPS, -1))
+ FUNCTION (svvdot_lane_za, sme_2mode_lane_function, (UNSPEC_SME_SVDOT,
+ 						    UNSPEC_SME_UVDOT,
+ 						    UNSPEC_SME_FVDOT))
+ FUNCTION (svwrite_za, svwrite_za_impl,)
+ FUNCTION (svwrite_hor_za, svwrite_za_tile_impl, (UNSPEC_SME_WRITE_HOR))
+ FUNCTION (svwrite_ver_za, svwrite_za_tile_impl, (UNSPEC_SME_WRITE_VER))
+ FUNCTION (svzero_mask_za, svzero_mask_za_impl, )
+ FUNCTION (svzero_za, svzero_za_impl, )
+ FUNCTION (svzero_zt, svzero_zt_impl, )
+ 
+ } /* end namespace aarch64_sve */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sme.def gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sme.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sme.def	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sme.def	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,219 ----
+ /* ACLE support for AArch64 SME.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef DEF_SME_FUNCTION
+ #define DEF_SME_FUNCTION(NAME, SHAPE, TYPES, PREDS) \
+   DEF_SME_FUNCTION_GS (NAME, SHAPE, TYPES, none, PREDS)
+ #endif
+ 
+ #ifndef DEF_SME_ZA_FUNCTION_GS
+ #define DEF_SME_ZA_FUNCTION_GS(NAME, SHAPE, TYPES, GROUP, PREDS) \
+   DEF_SME_FUNCTION_GS (NAME, SHAPE, TYPES, GROUP, PREDS)
+ #endif
+ 
+ #ifndef DEF_SME_ZA_FUNCTION
+ #define DEF_SME_ZA_FUNCTION(NAME, SHAPE, TYPES, PREDS) \
+   DEF_SME_ZA_FUNCTION_GS (NAME, SHAPE, TYPES, none, PREDS)
+ #endif
+ 
+ #define REQUIRED_EXTENSIONS 0
+ DEF_SME_FUNCTION (arm_has_sme, bool_inherent, none, none)
+ DEF_SME_FUNCTION (arm_in_streaming_mode, bool_inherent, none, none)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS AARCH64_FL_SME
+ DEF_SME_FUNCTION (svcntsb, count_inherent, none, none)
+ DEF_SME_FUNCTION (svcntsd, count_inherent, none, none)
+ DEF_SME_FUNCTION (svcntsh, count_inherent, none, none)
+ DEF_SME_FUNCTION (svcntsw, count_inherent, none, none)
+ DEF_SME_ZA_FUNCTION (svldr, ldr_za, za, none)
+ DEF_SME_ZA_FUNCTION (svstr, str_za, za, none)
+ DEF_SME_ZA_FUNCTION (svundef, inherent_za, za, none)
+ DEF_SME_ZA_FUNCTION (svzero, inherent_za, za, none)
+ DEF_SME_ZA_FUNCTION (svzero_mask, inherent_mask_za, za, none)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS AARCH64_FL_SME | AARCH64_FL_SM_ON
+ DEF_SME_ZA_FUNCTION (svaddha, unary_za_m, za_s_integer, za_m)
+ DEF_SME_ZA_FUNCTION (svaddva, unary_za_m, za_s_integer, za_m)
+ DEF_SME_ZA_FUNCTION (svld1_hor, load_za, all_za, none)
+ DEF_SME_ZA_FUNCTION (svld1_ver, load_za, all_za, none)
+ DEF_SME_ZA_FUNCTION (svmopa, binary_za_m, mop_base, za_m)
+ DEF_SME_ZA_FUNCTION (svmopa, binary_za_m, d_za, za_m)
+ DEF_SME_ZA_FUNCTION (svmops, binary_za_m, mop_base, za_m)
+ DEF_SME_ZA_FUNCTION (svmops, binary_za_m, d_za, za_m)
+ DEF_SME_ZA_FUNCTION (svread_hor, read_za_m, za_all_data, m)
+ DEF_SME_ZA_FUNCTION (svread_ver, read_za_m, za_all_data, m)
+ DEF_SME_ZA_FUNCTION (svst1_hor, store_za, all_za, none)
+ DEF_SME_ZA_FUNCTION (svst1_ver, store_za, all_za, none)
+ DEF_SME_ZA_FUNCTION (svsumopa, binary_za_uint_m, mop_base_signed, za_m)
+ DEF_SME_ZA_FUNCTION (svsumops, binary_za_uint_m, mop_base_signed, za_m)
+ DEF_SME_ZA_FUNCTION (svusmopa, binary_za_int_m, mop_base_unsigned, za_m)
+ DEF_SME_ZA_FUNCTION (svusmops, binary_za_int_m, mop_base_unsigned, za_m)
+ DEF_SME_ZA_FUNCTION (svwrite_hor, write_za_m, za_all_data, za_m)
+ DEF_SME_ZA_FUNCTION (svwrite_ver, write_za_m, za_all_data, za_m)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS (AARCH64_FL_SME \
+ 			     | AARCH64_FL_SME_I16I64 \
+ 			     | AARCH64_FL_SM_ON)
+ DEF_SME_ZA_FUNCTION (svaddha, unary_za_m, za_d_integer, za_m)
+ DEF_SME_ZA_FUNCTION (svaddva, unary_za_m, za_d_integer, za_m)
+ DEF_SME_ZA_FUNCTION (svmopa, binary_za_m, mop_i16i64, za_m)
+ DEF_SME_ZA_FUNCTION (svmops, binary_za_m, mop_i16i64, za_m)
+ DEF_SME_ZA_FUNCTION (svsumopa, binary_za_uint_m, mop_i16i64_signed, za_m)
+ DEF_SME_ZA_FUNCTION (svsumops, binary_za_uint_m, mop_i16i64_signed, za_m)
+ DEF_SME_ZA_FUNCTION (svusmopa, binary_za_int_m, mop_i16i64_unsigned, za_m)
+ DEF_SME_ZA_FUNCTION (svusmops, binary_za_int_m, mop_i16i64_unsigned, za_m)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS (AARCH64_FL_SME \
+ 			     | AARCH64_FL_SME_F64F64 \
+ 			     | AARCH64_FL_SM_ON)
+ DEF_SME_ZA_FUNCTION (svmopa, binary_za_m, za_d_float, za_m)
+ DEF_SME_ZA_FUNCTION (svmops, binary_za_m, za_d_float, za_m)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS AARCH64_FL_SME | AARCH64_FL_SME2
+ DEF_SME_FUNCTION (svldr_zt, ldr_zt, none, none)
+ DEF_SME_FUNCTION (svstr_zt, str_zt, none, none)
+ DEF_SME_FUNCTION (svzero_zt, inherent_zt, none, none)
+ #undef REQUIRED_EXTENSIONS
+ 
+ /* The d_za entries in this section just declare C _za64 overloads,
+    which will then be resolved to either an integer function or a
+    floating-point function.  They are needed because the integer and
+    floating-point functions have different architecture requirements.  */
+ #define REQUIRED_EXTENSIONS AARCH64_FL_SME | AARCH64_FL_SME2 | AARCH64_FL_SM_ON
+ DEF_SME_ZA_FUNCTION_GS (svadd, unary_za_slice, za_s_data, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svadd, unary_za_slice, d_za, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svadd_write, binary_za_slice_opt_single, za_s_integer,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION (svbmopa, binary_za_m, za_s_unsigned, za_m)
+ DEF_SME_ZA_FUNCTION (svbmops, binary_za_m, za_s_unsigned, za_m)
+ DEF_SME_ZA_FUNCTION_GS (svdot, binary_za_slice_opt_single, za_s_h_data,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svdot, binary_za_slice_opt_single, za_s_b_integer,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svdot_lane, dot_za_slice_lane, za_s_h_data,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svdot_lane, dot_za_slice_lane, za_s_b_integer,
+ 			vg1x24, none)
+ DEF_SME_FUNCTION_GS (svluti2_lane_zt, luti2_lane_zt, bhs_data, x124, none)
+ DEF_SME_FUNCTION_GS (svluti4_lane_zt, luti4_lane_zt, bhs_data, x12, none)
+ DEF_SME_FUNCTION_GS (svluti4_lane_zt, luti4_lane_zt, hs_data, x4, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla, binary_za_slice_opt_single, za_s_float,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla, binary_za_slice_opt_single, za_s_h_data,
+ 			vg2, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla, binary_za_slice_opt_single, za_s_b_integer,
+ 			vg4, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla_lane, binary_za_slice_lane, za_s_float,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla_lane, binary_za_slice_lane, za_s_h_data,
+ 			vg2, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla_lane, binary_za_slice_lane, za_s_b_integer,
+ 			vg4, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls, binary_za_slice_opt_single, za_s_float,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls, binary_za_slice_opt_single, za_s_h_data,
+ 			vg2, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls, binary_za_slice_opt_single, za_s_b_integer,
+ 			vg4, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls_lane, binary_za_slice_lane, za_s_float,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls_lane, binary_za_slice_lane, za_s_h_data,
+ 			vg2, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls_lane, binary_za_slice_lane, za_s_b_integer,
+ 			vg4, none)
+ DEF_SME_ZA_FUNCTION (svmopa, binary_za_m, za_s_h_integer, za_m)
+ DEF_SME_ZA_FUNCTION (svmops, binary_za_m, za_s_h_integer, za_m)
+ DEF_SME_ZA_FUNCTION_GS (svread, read_za_slice, za_bhsd_data, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svread_hor, read_za, za_bhsd_data, vg24, none)
+ DEF_SME_ZA_FUNCTION_GS (svread_ver, read_za, za_bhsd_data, vg24, none)
+ DEF_SME_ZA_FUNCTION_GS (svsub, unary_za_slice, za_s_data, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svsub, unary_za_slice, d_za, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svsub_write, binary_za_slice_opt_single, za_s_integer,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svsudot, binary_za_slice_uint_opt_single,
+ 		        za_s_b_signed, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svsudot_lane, dot_za_slice_uint_lane,
+ 			za_s_b_signed, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svsuvdot_lane, dot_za_slice_uint_lane,
+ 			za_s_b_signed, vg1x4, none)
+ DEF_SME_ZA_FUNCTION_GS (svusdot, binary_za_slice_int_opt_single,
+ 		        za_s_b_unsigned, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svusdot_lane, dot_za_slice_int_lane,
+ 			za_s_b_unsigned, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svusvdot_lane, dot_za_slice_int_lane,
+ 			za_s_b_unsigned, vg1x4, none)
+ DEF_SME_ZA_FUNCTION_GS (svvdot_lane, dot_za_slice_lane, za_s_h_data,
+ 			vg1x2, none)
+ DEF_SME_ZA_FUNCTION_GS (svvdot_lane, dot_za_slice_lane, za_s_b_integer,
+ 			vg1x4, none)
+ DEF_SME_ZA_FUNCTION_GS (svwrite, write_za_slice, za_bhsd_data, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svwrite_hor, write_za, za_bhsd_data, vg24, none)
+ DEF_SME_ZA_FUNCTION_GS (svwrite_ver, write_za, za_bhsd_data, vg24, none)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS (AARCH64_FL_SME \
+ 			     | AARCH64_FL_SME2 \
+ 			     | AARCH64_FL_SME_I16I64 \
+ 			     | AARCH64_FL_SM_ON)
+ DEF_SME_ZA_FUNCTION_GS (svadd, unary_za_slice, za_d_integer, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svadd_write, binary_za_slice_opt_single, za_d_integer,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svdot, binary_za_slice_opt_single, za_d_h_integer,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svdot_lane, dot_za_slice_lane, za_d_h_integer,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla, binary_za_slice_opt_single, za_d_h_integer,
+ 			vg4, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla_lane, binary_za_slice_lane, za_d_h_integer,
+ 			vg4, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls, binary_za_slice_opt_single, za_d_h_integer,
+ 			vg4, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls_lane, binary_za_slice_lane, za_d_h_integer,
+ 			vg4, none)
+ DEF_SME_ZA_FUNCTION_GS (svsub, unary_za_slice, za_d_integer, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svsub_write, binary_za_slice_opt_single, za_d_integer,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svvdot_lane, dot_za_slice_lane, za_d_h_integer,
+ 			vg1x4, none)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS (AARCH64_FL_SME \
+ 			     | AARCH64_FL_SME2 \
+ 			     | AARCH64_FL_SME_F64F64 \
+ 			     | AARCH64_FL_SM_ON)
+ DEF_SME_ZA_FUNCTION_GS (svadd, unary_za_slice, za_d_float, vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla, binary_za_slice_opt_single, za_d_float,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmla_lane, binary_za_slice_lane, za_d_float,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls, binary_za_slice_opt_single, za_d_float,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svmls_lane, binary_za_slice_lane, za_d_float,
+ 			vg1x24, none)
+ DEF_SME_ZA_FUNCTION_GS (svsub, unary_za_slice, za_d_float, vg1x24, none)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #undef DEF_SME_ZA_FUNCTION
+ #undef DEF_SME_ZA_FUNCTION_GS
+ #undef DEF_SME_FUNCTION
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sme.h gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sme.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sme.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sme.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,83 ----
+ /* ACLE support for AArch64 SME.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_SVE_BUILTINS_SME_H
+ #define GCC_AARCH64_SVE_BUILTINS_SME_H
+ 
+ namespace aarch64_sve
+ {
+   namespace functions
+   {
+     extern const function_base *const arm_has_sme;
+     extern const function_base *const arm_in_streaming_mode;
+     extern const function_base *const svadd_za;
+     extern const function_base *const svadd_write_za;
+     extern const function_base *const svaddha_za;
+     extern const function_base *const svaddva_za;
+     extern const function_base *const svbmopa_za;
+     extern const function_base *const svbmops_za;
+     extern const function_base *const svcntsb;
+     extern const function_base *const svcntsd;
+     extern const function_base *const svcntsh;
+     extern const function_base *const svcntsw;
+     extern const function_base *const svdot_za;
+     extern const function_base *const svdot_lane_za;
+     extern const function_base *const svld1_hor_za;
+     extern const function_base *const svld1_ver_za;
+     extern const function_base *const svldr_za;
+     extern const function_base *const svldr_zt;
+     extern const function_base *const svluti2_lane_zt;
+     extern const function_base *const svluti4_lane_zt;
+     extern const function_base *const svmla_za;
+     extern const function_base *const svmla_lane_za;
+     extern const function_base *const svmls_za;
+     extern const function_base *const svmls_lane_za;
+     extern const function_base *const svmopa_za;
+     extern const function_base *const svmops_za;
+     extern const function_base *const svread_za;
+     extern const function_base *const svread_hor_za;
+     extern const function_base *const svread_ver_za;
+     extern const function_base *const svst1_hor_za;
+     extern const function_base *const svst1_ver_za;
+     extern const function_base *const svstr_za;
+     extern const function_base *const svstr_zt;
+     extern const function_base *const svsub_za;
+     extern const function_base *const svsub_write_za;
+     extern const function_base *const svsudot_za;
+     extern const function_base *const svsudot_lane_za;
+     extern const function_base *const svsuvdot_lane_za;
+     extern const function_base *const svsumopa_za;
+     extern const function_base *const svsumops_za;
+     extern const function_base *const svusdot_za;
+     extern const function_base *const svusdot_lane_za;
+     extern const function_base *const svusvdot_lane_za;
+     extern const function_base *const svusmopa_za;
+     extern const function_base *const svusmops_za;
+     extern const function_base *const svwrite_za;
+     extern const function_base *const svwrite_hor_za;
+     extern const function_base *const svwrite_ver_za;
+     extern const function_base *const svundef_za;
+     extern const function_base *const svvdot_lane_za;
+     extern const function_base *const svzero_mask_za;
+     extern const function_base *const svzero_za;
+     extern const function_base *const svzero_zt;
+   }
+ }
+ 
+ #endif
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE2 intrinsics)
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE2 intrinsics)
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** public:
*** 116,121 ****
--- 116,154 ----
    }
  };
  
+ class svclamp_impl : public function_base
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     auto mode = e.tuple_mode (0);
+     insn_code icode;
+     if (e.type_suffix (0).float_p)
+       icode = (e.vectors_per_tuple () > 1
+ 	       ? code_for_aarch64_sve_fclamp_single (mode)
+ 	       : code_for_aarch64_sve_fclamp (mode));
+     else
+       {
+ 	auto max = e.type_suffix (0).unsigned_p ? UMAX : SMAX;
+ 	icode = (e.vectors_per_tuple () > 1
+ 		 ? code_for_aarch64_sve_clamp_single (max, mode)
+ 		 : code_for_aarch64_sve_clamp (max, mode));
+       }
+     return e.use_exact_insn (icode);
+   }
+ };
+ 
+ class svcvtn_impl : public function_base
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     return e.use_exact_insn (code_for_aarch64_sve_cvtn (e.result_mode ()));
+   }
+ };
+ 
  class svldnt1_gather_impl : public full_width_access
  {
  public:
*************** public:
*** 188,193 ****
--- 221,250 ----
    }
  };
  
+ class svpext_impl : public function_base
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     unsigned int bits = e.type_suffix (0).element_bits;
+     return e.use_exact_insn (e.vectors_per_tuple () == 2
+ 			     ? code_for_aarch64_sve_pextx2 (bits)
+ 			     : code_for_aarch64_sve_pext (bits));
+   }
+ };
+ 
+ class svpsel_impl : public function_base
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     unsigned int bits = e.type_suffix (0).element_bits;
+     return e.use_exact_insn (code_for_aarch64_sve_psel (bits));
+   }
+ };
+ 
  class svqcadd_impl : public function_base
  {
  public:
*************** public:
*** 247,253 ****
  	       that we can use for sensible shift amounts.  */
  	    function_instance instance ("svqshl", functions::svqshl,
  					shapes::binary_int_opt_n, MODE_n,
! 					f.type_suffix_ids, f.pred);
  	    return f.redirect_call (instance);
  	  }
  	else
--- 304,310 ----
  	       that we can use for sensible shift amounts.  */
  	    function_instance instance ("svqshl", functions::svqshl,
  					shapes::binary_int_opt_n, MODE_n,
! 					f.type_suffix_ids, GROUP_none, f.pred);
  	    return f.redirect_call (instance);
  	  }
  	else
*************** public:
*** 255,262 ****
  	    /* The saturation has no effect, and [SU]RSHL has immediate forms
  	       that we can use for sensible shift amounts.  */
  	    function_instance instance ("svrshl", functions::svrshl,
! 					shapes::binary_int_opt_n, MODE_n,
! 					f.type_suffix_ids, f.pred);
  	    return f.redirect_call (instance);
  	  }
        }
--- 312,320 ----
  	    /* The saturation has no effect, and [SU]RSHL has immediate forms
  	       that we can use for sensible shift amounts.  */
  	    function_instance instance ("svrshl", functions::svrshl,
! 					shapes::binary_int_opt_single_n,
! 					MODE_n, f.type_suffix_ids, GROUP_none,
! 					f.pred);
  	    return f.redirect_call (instance);
  	  }
        }
*************** public:
*** 285,291 ****
  				       -wi::to_wide (amount));
  	    function_instance instance ("svasr", functions::svasr,
  					shapes::binary_uint_opt_n, MODE_n,
! 					f.type_suffix_ids, f.pred);
  	    if (f.type_suffix (0).unsigned_p)
  	      {
  		instance.base_name = "svlsr";
--- 343,349 ----
  				       -wi::to_wide (amount));
  	    function_instance instance ("svasr", functions::svasr,
  					shapes::binary_uint_opt_n, MODE_n,
! 					f.type_suffix_ids, GROUP_none, f.pred);
  	    if (f.type_suffix (0).unsigned_p)
  	      {
  		instance.base_name = "svlsr";
*************** public:
*** 309,314 ****
--- 367,375 ----
    gimple *
    fold (gimple_folder &f) const override
    {
+     if (f.vectors_per_tuple () > 1)
+       return nullptr;
+ 
      if (tree amount = uniform_integer_cst_p (gimple_call_arg (f.call, 2)))
        {
  	if (wi::to_widest (amount) >= 0)
*************** public:
*** 317,323 ****
  	       that we can use for sensible shift amounts.  */
  	    function_instance instance ("svlsl", functions::svlsl,
  					shapes::binary_uint_opt_n, MODE_n,
! 					f.type_suffix_ids, f.pred);
  	    gcall *call = as_a <gcall *> (f.redirect_call (instance));
  	    gimple_call_set_arg (call, 2, amount);
  	    return call;
--- 378,384 ----
  	       that we can use for sensible shift amounts.  */
  	    function_instance instance ("svlsl", functions::svlsl,
  					shapes::binary_uint_opt_n, MODE_n,
! 					f.type_suffix_ids, GROUP_none, f.pred);
  	    gcall *call = as_a <gcall *> (f.redirect_call (instance));
  	    gimple_call_set_arg (call, 2, amount);
  	    return call;
*************** public:
*** 330,336 ****
  				       -wi::to_wide (amount));
  	    function_instance instance ("svrshr", functions::svrshr,
  					shapes::shift_right_imm, MODE_n,
! 					f.type_suffix_ids, f.pred);
  	    gcall *call = as_a <gcall *> (f.redirect_call (instance));
  	    gimple_call_set_arg (call, 2, amount);
  	    return call;
--- 391,397 ----
  				       -wi::to_wide (amount));
  	    function_instance instance ("svrshr", functions::svrshr,
  					shapes::shift_right_imm, MODE_n,
! 					f.type_suffix_ids, GROUP_none, f.pred);
  	    gcall *call = as_a <gcall *> (f.redirect_call (instance));
  	    gimple_call_set_arg (call, 2, amount);
  	    return call;
*************** public:
*** 349,355 ****
      machine_mode mode = e.vector_mode (0);
      if (e.pred == PRED_x
  	&& aarch64_sve_sqadd_sqsub_immediate_p (mode, e.args[2], false))
!       return e.map_to_rtx_codes (UNKNOWN, US_PLUS, -1);
      return e.map_to_unspecs (-1, UNSPEC_USQADD, -1);
    }
  };
--- 410,416 ----
      machine_mode mode = e.vector_mode (0);
      if (e.pred == PRED_x
  	&& aarch64_sve_sqadd_sqsub_immediate_p (mode, e.args[2], false))
!       return e.map_to_rtx_codes (UNKNOWN, US_PLUS, -1, -1);
      return e.map_to_unspecs (-1, UNSPEC_USQADD, -1);
    }
  };
*************** public:
*** 412,417 ****
--- 473,491 ----
    }
  };
  
+ class svunpk_impl : public function_base
+ {
+ public:
+   rtx
+   expand (function_expander &e) const override
+   {
+     optab op = (e.type_suffix (0).unsigned_p ? zext_optab : sext_optab);
+     insn_code icode = convert_optab_handler (op, e.result_mode (),
+ 					     GET_MODE (e.args[0]));
+     return e.use_exact_insn (icode);
+   }
+ };
+ 
  class svuqadd_impl : public function_base
  {
  public:
*************** FUNCTION (svaesmc, fixed_insn_function,
*** 474,486 ****
--- 548,568 ----
  FUNCTION (svbcax, CODE_FOR_MODE0 (aarch64_sve2_bcax),)
  FUNCTION (svbdep, unspec_based_function, (UNSPEC_BDEP, UNSPEC_BDEP, -1))
  FUNCTION (svbext, unspec_based_function, (UNSPEC_BEXT, UNSPEC_BEXT, -1))
+ FUNCTION (svbfmlslb, fixed_insn_function, (CODE_FOR_aarch64_sve_bfmlslbvnx4sf))
+ FUNCTION (svbfmlslb_lane, fixed_insn_function,
+ 	  (CODE_FOR_aarch64_sve_bfmlslb_lanevnx4sf))
+ FUNCTION (svbfmlslt, fixed_insn_function, (CODE_FOR_aarch64_sve_bfmlsltvnx4sf))
+ FUNCTION (svbfmlslt_lane, fixed_insn_function,
+ 	  (CODE_FOR_aarch64_sve_bfmlslt_lanevnx4sf))
  FUNCTION (svbgrp, unspec_based_function, (UNSPEC_BGRP, UNSPEC_BGRP, -1))
  FUNCTION (svbsl, CODE_FOR_MODE0 (aarch64_sve2_bsl),)
  FUNCTION (svbsl1n, CODE_FOR_MODE0 (aarch64_sve2_bsl1n),)
  FUNCTION (svbsl2n, CODE_FOR_MODE0 (aarch64_sve2_bsl2n),)
  FUNCTION (svcdot, svcdot_impl,)
  FUNCTION (svcdot_lane, svcdot_lane_impl,)
+ FUNCTION (svclamp, svclamp_impl,)
  FUNCTION (svcvtlt, unspec_based_function, (-1, -1, UNSPEC_COND_FCVTLT))
+ FUNCTION (svcvtn, svcvtn_impl,)
  FUNCTION (svcvtx, unspec_based_function, (-1, -1, UNSPEC_COND_FCVTX))
  FUNCTION (svcvtxnt, CODE_FOR_MODE1 (aarch64_sve2_cvtxnt),)
  FUNCTION (sveor3, CODE_FOR_MODE0 (aarch64_sve2_eor3),)
*************** FUNCTION (svmullt_lane, unspec_based_lan
*** 537,549 ****
--- 619,637 ----
  						     UNSPEC_UMULLT, -1))
  FUNCTION (svnbsl, CODE_FOR_MODE0 (aarch64_sve2_nbsl),)
  FUNCTION (svnmatch, svmatch_svnmatch_impl, (UNSPEC_NMATCH))
+ FUNCTION (svpext, svpext_impl,)
  FUNCTION (svpmul, CODE_FOR_MODE0 (aarch64_sve2_pmul),)
  FUNCTION (svpmullb, unspec_based_function, (-1, UNSPEC_PMULLB, -1))
  FUNCTION (svpmullb_pair, unspec_based_function, (-1, UNSPEC_PMULLB_PAIR, -1))
  FUNCTION (svpmullt, unspec_based_function, (-1, UNSPEC_PMULLT, -1))
  FUNCTION (svpmullt_pair, unspec_based_function, (-1, UNSPEC_PMULLT_PAIR, -1))
+ FUNCTION (svpsel, svpsel_impl,)
  FUNCTION (svqabs, rtx_code_function, (SS_ABS, UNKNOWN, UNKNOWN))
  FUNCTION (svqcadd, svqcadd_impl,)
+ FUNCTION (svqcvt, integer_conversion, (UNSPEC_SQCVT, UNSPEC_SQCVTU,
+ 				       UNSPEC_UQCVT, -1))
+ FUNCTION (svqcvtn, integer_conversion, (UNSPEC_SQCVTN, UNSPEC_SQCVTUN,
+ 					UNSPEC_UQCVTN, -1))
  FUNCTION (svqdmlalb, unspec_based_qadd_function, (UNSPEC_SQDMULLB, -1, -1))
  FUNCTION (svqdmlalb_lane, unspec_based_qadd_lane_function, (UNSPEC_SQDMULLB,
  							    -1, -1))
*************** FUNCTION (svqrdmlsh, unspec_based_functi
*** 579,588 ****
--- 667,682 ----
  FUNCTION (svqrdmlsh_lane, unspec_based_lane_function, (UNSPEC_SQRDMLSH,
  						       -1, -1))
  FUNCTION (svqrshl, svqrshl_impl,)
+ FUNCTION (svqrshr, unspec_based_uncond_function, (UNSPEC_SQRSHR,
+ 						  UNSPEC_UQRSHR, -1, 1))
+ FUNCTION (svqrshrn, unspec_based_uncond_function, (UNSPEC_SQRSHRN,
+ 						   UNSPEC_UQRSHRN, -1, 1))
  FUNCTION (svqrshrnb, unspec_based_function, (UNSPEC_SQRSHRNB,
  					     UNSPEC_UQRSHRNB, -1))
  FUNCTION (svqrshrnt, unspec_based_function, (UNSPEC_SQRSHRNT,
  					     UNSPEC_UQRSHRNT, -1))
+ FUNCTION (svqrshru, unspec_based_uncond_function, (UNSPEC_SQRSHRU, -1, -1, 1))
+ FUNCTION (svqrshrun, unspec_based_uncond_function, (UNSPEC_SQRSHRUN, -1, -1, 1))
  FUNCTION (svqrshrunb, unspec_based_function, (UNSPEC_SQRSHRUNB, -1, -1))
  FUNCTION (svqrshrunt, unspec_based_function, (UNSPEC_SQRSHRUNT, -1, -1))
  FUNCTION (svqshl, svqshl_impl,)
*************** FUNCTION (svraddhnb, unspec_based_functi
*** 603,608 ****
--- 697,704 ----
  FUNCTION (svraddhnt, unspec_based_function, (UNSPEC_RADDHNT,
  					     UNSPEC_RADDHNT, -1))
  FUNCTION (svrax1, fixed_insn_function, (CODE_FOR_aarch64_sve2_rax1))
+ FUNCTION (svrevd, unspec_based_function, (UNSPEC_REVD, UNSPEC_REVD,
+ 					  UNSPEC_REVD))
  FUNCTION (svrhadd, unspec_based_function, (UNSPEC_SRHADD, UNSPEC_URHADD, -1))
  FUNCTION (svrshl, svrshl_impl,)
  FUNCTION (svrshr, unspec_based_function, (UNSPEC_SRSHR, UNSPEC_URSHR, -1))
*************** FUNCTION (svsubwb, unspec_based_function
*** 639,645 ****
--- 735,746 ----
  FUNCTION (svsubwt, unspec_based_function, (UNSPEC_SSUBWT, UNSPEC_USUBWT, -1))
  FUNCTION (svtbl2, svtbl2_impl,)
  FUNCTION (svtbx, CODE_FOR_MODE0 (aarch64_sve2_tbx),)
+ FUNCTION (svunpk, svunpk_impl,)
  FUNCTION (svuqadd, svuqadd_impl,)
+ FUNCTION (svuzp, multireg_permute, (UNSPEC_UZP))
+ FUNCTION (svuzpq, multireg_permute, (UNSPEC_UZPQ))
+ FUNCTION (svzip, multireg_permute, (UNSPEC_ZIP))
+ FUNCTION (svzipq, multireg_permute, (UNSPEC_ZIPQ))
  FUNCTION (svwhilege, while_comparison, (UNSPEC_WHILEGE, UNSPEC_WHILEHS))
  FUNCTION (svwhilegt, while_comparison, (UNSPEC_WHILEGT, UNSPEC_WHILEHI))
  FUNCTION (svwhilerw, svwhilerw_svwhilewr_impl, (UNSPEC_WHILERW))
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.def gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 17,23 ****
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_SVE2
  DEF_SVE_FUNCTION (svaba, ternary_opt_n, all_integer, none)
  DEF_SVE_FUNCTION (svabalb, ternary_long_opt_n, hsd_integer, none)
  DEF_SVE_FUNCTION (svabalt, ternary_long_opt_n, hsd_integer, none)
--- 17,23 ----
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
! #define REQUIRED_EXTENSIONS AARCH64_FL_SVE | AARCH64_FL_SVE2
  DEF_SVE_FUNCTION (svaba, ternary_opt_n, all_integer, none)
  DEF_SVE_FUNCTION (svabalb, ternary_long_opt_n, hsd_integer, none)
  DEF_SVE_FUNCTION (svabalt, ternary_long_opt_n, hsd_integer, none)
*************** DEF_SVE_FUNCTION (sveor3, ternary_opt_n,
*** 51,74 ****
  DEF_SVE_FUNCTION (sveorbt, ternary_opt_n, all_integer, none)
  DEF_SVE_FUNCTION (sveortb, ternary_opt_n, all_integer, none)
  DEF_SVE_FUNCTION (svhadd, binary_opt_n, all_integer, mxz)
- DEF_SVE_FUNCTION (svhistcnt, binary_to_uint, sd_integer, z)
- DEF_SVE_FUNCTION (svhistseg, binary_to_uint, b_integer, none)
  DEF_SVE_FUNCTION (svhsub, binary_opt_n, all_integer, mxz)
  DEF_SVE_FUNCTION (svhsubr, binary_opt_n, all_integer, mxz)
- DEF_SVE_FUNCTION (svldnt1_gather, load_gather_sv_restricted, sd_data, implicit)
- DEF_SVE_FUNCTION (svldnt1_gather, load_gather_vs, sd_data, implicit)
- DEF_SVE_FUNCTION (svldnt1sb_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1sh_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1sh_gather, load_ext_gather_index_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1sw_gather, load_ext_gather_offset_restricted, d_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1sw_gather, load_ext_gather_index_restricted, d_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1ub_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1uh_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1uh_gather, load_ext_gather_index_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1uw_gather, load_ext_gather_offset_restricted, d_integer, implicit)
- DEF_SVE_FUNCTION (svldnt1uw_gather, load_ext_gather_index_restricted, d_integer, implicit)
  DEF_SVE_FUNCTION (svlogb, unary_to_int, all_float, mxz)
- DEF_SVE_FUNCTION (svmatch, compare, bh_integer, implicit)
  DEF_SVE_FUNCTION (svmaxp, binary, all_arith, mx)
  DEF_SVE_FUNCTION (svmaxnmp, binary, all_float, mx)
  DEF_SVE_FUNCTION (svmla_lane, ternary_lane, hsd_integer, none)
--- 51,59 ----
*************** DEF_SVE_FUNCTION (svmullb_lane, binary_l
*** 91,97 ****
  DEF_SVE_FUNCTION (svmullt, binary_long_opt_n, hsd_integer, none)
  DEF_SVE_FUNCTION (svmullt_lane, binary_long_lane, sd_integer, none)
  DEF_SVE_FUNCTION (svnbsl, ternary_opt_n, all_integer, none)
- DEF_SVE_FUNCTION (svnmatch, compare, bh_integer, implicit)
  DEF_SVE_FUNCTION (svpmul, binary_opt_n, b_unsigned, none)
  DEF_SVE_FUNCTION (svpmullb, binary_long_opt_n, hd_unsigned, none)
  DEF_SVE_FUNCTION (svpmullb_pair, binary_opt_n, bs_unsigned, none)
--- 76,81 ----
*************** DEF_SVE_FUNCTION (svqdmlslb_lane, ternar
*** 110,116 ****
  DEF_SVE_FUNCTION (svqdmlslbt, ternary_long_opt_n, hsd_signed, none)
  DEF_SVE_FUNCTION (svqdmlslt, ternary_long_opt_n, hsd_signed, none)
  DEF_SVE_FUNCTION (svqdmlslt_lane, ternary_long_lane, sd_signed, none)
! DEF_SVE_FUNCTION (svqdmulh, binary_opt_n, all_signed, none)
  DEF_SVE_FUNCTION (svqdmulh_lane, binary_lane, hsd_signed, none)
  DEF_SVE_FUNCTION (svqdmullb, binary_long_opt_n, hsd_signed, none)
  DEF_SVE_FUNCTION (svqdmullb_lane, binary_long_lane, sd_signed, none)
--- 94,100 ----
  DEF_SVE_FUNCTION (svqdmlslbt, ternary_long_opt_n, hsd_signed, none)
  DEF_SVE_FUNCTION (svqdmlslt, ternary_long_opt_n, hsd_signed, none)
  DEF_SVE_FUNCTION (svqdmlslt_lane, ternary_long_lane, sd_signed, none)
! DEF_SVE_FUNCTION (svqdmulh, binary_opt_single_n, all_signed, none)
  DEF_SVE_FUNCTION (svqdmulh_lane, binary_lane, hsd_signed, none)
  DEF_SVE_FUNCTION (svqdmullb, binary_long_opt_n, hsd_signed, none)
  DEF_SVE_FUNCTION (svqdmullb_lane, binary_long_lane, sd_signed, none)
*************** DEF_SVE_FUNCTION (svraddhnt, binary_narr
*** 147,153 ****
  DEF_SVE_FUNCTION (svrecpe, unary, s_unsigned, mxz)
  DEF_SVE_FUNCTION (svrhadd, binary_opt_n, all_integer, mxz)
  DEF_SVE_FUNCTION (svrsqrte, unary, s_unsigned, mxz)
! DEF_SVE_FUNCTION (svrshl, binary_int_opt_n, all_integer, mxz)
  DEF_SVE_FUNCTION (svrshr, shift_right_imm, all_integer, mxz)
  DEF_SVE_FUNCTION (svrshrnb, shift_right_imm_narrowb, hsd_integer, none)
  DEF_SVE_FUNCTION (svrshrnt, shift_right_imm_narrowt, hsd_integer, none)
--- 131,137 ----
  DEF_SVE_FUNCTION (svrecpe, unary, s_unsigned, mxz)
  DEF_SVE_FUNCTION (svrhadd, binary_opt_n, all_integer, mxz)
  DEF_SVE_FUNCTION (svrsqrte, unary, s_unsigned, mxz)
! DEF_SVE_FUNCTION (svrshl, binary_int_opt_single_n, all_integer, mxz)
  DEF_SVE_FUNCTION (svrshr, shift_right_imm, all_integer, mxz)
  DEF_SVE_FUNCTION (svrshrnb, shift_right_imm_narrowb, hsd_integer, none)
  DEF_SVE_FUNCTION (svrshrnt, shift_right_imm_narrowt, hsd_integer, none)
*************** DEF_SVE_FUNCTION (svsli, ternary_shift_l
*** 164,176 ****
  DEF_SVE_FUNCTION (svsqadd, binary_int_opt_n, all_unsigned, mxz)
  DEF_SVE_FUNCTION (svsra, ternary_shift_right_imm, all_integer, none)
  DEF_SVE_FUNCTION (svsri, ternary_shift_right_imm, all_integer, none)
- DEF_SVE_FUNCTION (svstnt1_scatter, store_scatter_index_restricted, sd_data, implicit)
- DEF_SVE_FUNCTION (svstnt1_scatter, store_scatter_offset_restricted, sd_data, implicit)
- DEF_SVE_FUNCTION (svstnt1b_scatter, store_scatter_offset_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svstnt1h_scatter, store_scatter_index_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svstnt1h_scatter, store_scatter_offset_restricted, sd_integer, implicit)
- DEF_SVE_FUNCTION (svstnt1w_scatter, store_scatter_index_restricted, d_integer, implicit)
- DEF_SVE_FUNCTION (svstnt1w_scatter, store_scatter_offset_restricted, d_integer, implicit)
  DEF_SVE_FUNCTION (svsubhnb, binary_narrowb_opt_n, hsd_integer, none)
  DEF_SVE_FUNCTION (svsubhnt, binary_narrowt_opt_n, hsd_integer, none)
  DEF_SVE_FUNCTION (svsublb, binary_long_opt_n, hsd_integer, none)
--- 148,153 ----
*************** DEF_SVE_FUNCTION (svwhilewr, compare_ptr
*** 189,195 ****
  DEF_SVE_FUNCTION (svxar, ternary_shift_right_imm, all_integer, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE2 | AARCH64_FL_SVE2_AES)
  DEF_SVE_FUNCTION (svaesd, binary, b_unsigned, none)
  DEF_SVE_FUNCTION (svaese, binary, b_unsigned, none)
  DEF_SVE_FUNCTION (svaesmc, unary, b_unsigned, none)
--- 166,203 ----
  DEF_SVE_FUNCTION (svxar, ternary_shift_right_imm, all_integer, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
! 			     | AARCH64_FL_SVE2 \
! 			     | AARCH64_FL_SM_OFF)
! DEF_SVE_FUNCTION (svhistcnt, binary_to_uint, sd_integer, z)
! DEF_SVE_FUNCTION (svhistseg, binary_to_uint, b_integer, none)
! DEF_SVE_FUNCTION (svldnt1_gather, load_gather_sv_restricted, sd_data, implicit)
! DEF_SVE_FUNCTION (svldnt1_gather, load_gather_vs, sd_data, implicit)
! DEF_SVE_FUNCTION (svldnt1sb_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1sh_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1sh_gather, load_ext_gather_index_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1sw_gather, load_ext_gather_offset_restricted, d_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1sw_gather, load_ext_gather_index_restricted, d_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1ub_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1uh_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1uh_gather, load_ext_gather_index_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1uw_gather, load_ext_gather_offset_restricted, d_integer, implicit)
! DEF_SVE_FUNCTION (svldnt1uw_gather, load_ext_gather_index_restricted, d_integer, implicit)
! DEF_SVE_FUNCTION (svmatch, compare, bh_integer, implicit)
! DEF_SVE_FUNCTION (svnmatch, compare, bh_integer, implicit)
! DEF_SVE_FUNCTION (svstnt1_scatter, store_scatter_index_restricted, sd_data, implicit)
! DEF_SVE_FUNCTION (svstnt1_scatter, store_scatter_offset_restricted, sd_data, implicit)
! DEF_SVE_FUNCTION (svstnt1b_scatter, store_scatter_offset_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svstnt1h_scatter, store_scatter_index_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svstnt1h_scatter, store_scatter_offset_restricted, sd_integer, implicit)
! DEF_SVE_FUNCTION (svstnt1w_scatter, store_scatter_index_restricted, d_integer, implicit)
! DEF_SVE_FUNCTION (svstnt1w_scatter, store_scatter_offset_restricted, d_integer, implicit)
! #undef REQUIRED_EXTENSIONS
! 
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
! 			     | AARCH64_FL_SVE2 \
! 			     | AARCH64_FL_SVE2_AES \
! 			     | AARCH64_FL_SM_OFF)
  DEF_SVE_FUNCTION (svaesd, binary, b_unsigned, none)
  DEF_SVE_FUNCTION (svaese, binary, b_unsigned, none)
  DEF_SVE_FUNCTION (svaesmc, unary, b_unsigned, none)
*************** DEF_SVE_FUNCTION (svpmullb_pair, binary_
*** 198,214 ****
  DEF_SVE_FUNCTION (svpmullt_pair, binary_opt_n, d_unsigned, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM)
  DEF_SVE_FUNCTION (svbdep, binary_opt_n, all_unsigned, none)
  DEF_SVE_FUNCTION (svbext, binary_opt_n, all_unsigned, none)
  DEF_SVE_FUNCTION (svbgrp, binary_opt_n, all_unsigned, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE2 | AARCH64_FL_SVE2_SHA3)
  DEF_SVE_FUNCTION (svrax1, binary, d_integer, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE2 | AARCH64_FL_SVE2_SM4)
  DEF_SVE_FUNCTION (svsm4e, binary, s_unsigned, none)
  DEF_SVE_FUNCTION (svsm4ekey, binary, s_unsigned, none)
  #undef REQUIRED_EXTENSIONS
--- 206,302 ----
  DEF_SVE_FUNCTION (svpmullt_pair, binary_opt_n, d_unsigned, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
! 			     | AARCH64_FL_SVE2 \
! 			     | AARCH64_FL_SVE2_BITPERM \
! 			     | AARCH64_FL_SM_OFF)
  DEF_SVE_FUNCTION (svbdep, binary_opt_n, all_unsigned, none)
  DEF_SVE_FUNCTION (svbext, binary_opt_n, all_unsigned, none)
  DEF_SVE_FUNCTION (svbgrp, binary_opt_n, all_unsigned, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
! 			     | AARCH64_FL_SVE2 \
! 			     | AARCH64_FL_SVE2_SHA3 \
! 			     | AARCH64_FL_SM_OFF)
  DEF_SVE_FUNCTION (svrax1, binary, d_integer, none)
  #undef REQUIRED_EXTENSIONS
  
! #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
! 			     | AARCH64_FL_SVE2 \
! 			     | AARCH64_FL_SVE2_SM4 \
! 			     | AARCH64_FL_SM_OFF)
  DEF_SVE_FUNCTION (svsm4e, binary, s_unsigned, none)
  DEF_SVE_FUNCTION (svsm4ekey, binary, s_unsigned, none)
  #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
+ 			     | AARCH64_FL_SVE2 \
+ 			     | AARCH64_FL_SME \
+ 			     | AARCH64_FL_SM_ON)
+ DEF_SVE_FUNCTION (svclamp, clamp, all_integer, none)
+ DEF_SVE_FUNCTION (svpsel, select_pred, all_pred_count, none)
+ DEF_SVE_FUNCTION (svrevd, unary, all_data, mxz)
+ #undef REQUIRED_EXTENSIONS
+ 
+ #define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
+ 			     | AARCH64_FL_SVE2 \
+ 			     | AARCH64_FL_SME \
+ 			     | AARCH64_FL_SME2 \
+ 			     | AARCH64_FL_SM_ON)
+ DEF_SVE_FUNCTION_GS (svadd, binary_single, all_integer, x24, none)
+ DEF_SVE_FUNCTION (svbfmlslb, ternary_bfloat_opt_n, s_float, none)
+ DEF_SVE_FUNCTION (svbfmlslb_lane, ternary_bfloat_lane, s_float, none)
+ DEF_SVE_FUNCTION (svbfmlslt, ternary_bfloat_opt_n, s_float, none)
+ DEF_SVE_FUNCTION (svbfmlslt_lane, ternary_bfloat_lane, s_float, none)
+ DEF_SVE_FUNCTION (svclamp, clamp, all_float, none)
+ DEF_SVE_FUNCTION_GS (svclamp, clamp, all_arith, x24, none)
+ DEF_SVE_FUNCTION (svcntp, count_pred_c, all_count, none)
+ DEF_SVE_FUNCTION_GS (svcvt, unary_convertxn, cvt_h_s_float, x2, none)
+ DEF_SVE_FUNCTION_GS (svcvt, unary_convertxn, cvt_s_s, x24, none)
+ DEF_SVE_FUNCTION_GS (svcvtn, unary_convertxn, cvt_h_s_float, x2, none)
+ DEF_SVE_FUNCTION (svdot, ternary_qq_opt_n_or_011, s_narrow_fsu, none)
+ DEF_SVE_FUNCTION (svdot_lane, ternary_qq_or_011_lane, s_narrow_fsu, none)
+ DEF_SVE_FUNCTION_GS (svld1, load, all_data, x24, implicit)
+ DEF_SVE_FUNCTION_GS (svldnt1, load, all_data, x24, implicit)
+ DEF_SVE_FUNCTION_GS (svmax, binary_opt_single_n, all_arith, x24, none)
+ DEF_SVE_FUNCTION_GS (svmaxnm, binary_opt_single_n, all_float, x24, none)
+ DEF_SVE_FUNCTION_GS (svmin, binary_opt_single_n, all_arith, x24, none)
+ DEF_SVE_FUNCTION_GS (svminnm, binary_opt_single_n, all_float, x24, none)
+ DEF_SVE_FUNCTION_GS (svpext, extract_pred, all_count, x12, none)
+ DEF_SVE_FUNCTION (svptrue, inherent, all_count, none)
+ DEF_SVE_FUNCTION_GS (svqcvt, unary_convertxn, qcvt_x2, x2, none)
+ DEF_SVE_FUNCTION_GS (svqcvt, unary_convertxn, qcvt_x4, x4, none)
+ DEF_SVE_FUNCTION_GS (svqcvtn, unary_convertxn, qcvt_x2, x2, none)
+ DEF_SVE_FUNCTION_GS (svqcvtn, unary_convertxn, qcvt_x4, x4, none)
+ DEF_SVE_FUNCTION_GS (svqdmulh, binary_opt_single_n, all_signed, x24, none)
+ DEF_SVE_FUNCTION_GS (svqrshr, shift_right_imm_narrowxn, qrshr_x2, x2, none)
+ DEF_SVE_FUNCTION_GS (svqrshr, shift_right_imm_narrowxn, qrshr_x4, x4, none)
+ DEF_SVE_FUNCTION_GS (svqrshrn, shift_right_imm_narrowxn, qrshr_x2, x2, none)
+ DEF_SVE_FUNCTION_GS (svqrshrn, shift_right_imm_narrowxn, qrshr_x4, x4, none)
+ DEF_SVE_FUNCTION_GS (svqrshru, shift_right_imm_narrowxn, qrshru_x2, x2, none)
+ DEF_SVE_FUNCTION_GS (svqrshru, shift_right_imm_narrowxn, qrshru_x4, x4, none)
+ DEF_SVE_FUNCTION_GS (svqrshrun, shift_right_imm_narrowxn, qrshru_x2, x2, none)
+ DEF_SVE_FUNCTION_GS (svqrshrun, shift_right_imm_narrowxn, qrshru_x4, x4, none)
+ DEF_SVE_FUNCTION_GS (svrinta, unaryxn, s_float, x24, none)
+ DEF_SVE_FUNCTION_GS (svrintm, unaryxn, s_float, x24, none)
+ DEF_SVE_FUNCTION_GS (svrintn, unaryxn, s_float, x24, none)
+ DEF_SVE_FUNCTION_GS (svrintp, unaryxn, s_float, x24, none)
+ DEF_SVE_FUNCTION_GS (svrshl, binary_int_opt_single_n, all_integer, x24, none)
+ DEF_SVE_FUNCTION_GS (svsel, binaryxn, all_data, x24, implicit)
+ DEF_SVE_FUNCTION_GS (svst1, storexn, all_data, x24, implicit)
+ DEF_SVE_FUNCTION_GS (svstnt1, storexn, all_data, x24, implicit)
+ DEF_SVE_FUNCTION_GS (svunpk, unary_convertxn, bhs_widen, x24, none)
+ DEF_SVE_FUNCTION_GS (svuzp, unaryxn, all_data, x24, none)
+ DEF_SVE_FUNCTION_GS (svuzpq, unaryxn, all_data, x24, none)
+ DEF_SVE_FUNCTION_GS (svwhilege, compare_scalar, while_x, x2, none)
+ DEF_SVE_FUNCTION (svwhilege, compare_scalar_count, while_x_c, none)
+ DEF_SVE_FUNCTION_GS (svwhilegt, compare_scalar, while_x, x2, none)
+ DEF_SVE_FUNCTION (svwhilegt, compare_scalar_count, while_x_c, none)
+ DEF_SVE_FUNCTION_GS (svwhilele, compare_scalar, while_x, x2, none)
+ DEF_SVE_FUNCTION (svwhilele, compare_scalar_count, while_x_c, none)
+ DEF_SVE_FUNCTION_GS (svwhilelt, compare_scalar, while_x, x2, none)
+ DEF_SVE_FUNCTION (svwhilelt, compare_scalar_count, while_x_c, none)
+ DEF_SVE_FUNCTION_GS (svzip, unaryxn, all_data, x24, none)
+ DEF_SVE_FUNCTION_GS (svzipq, unaryxn, all_data, x24, none)
+ #undef REQUIRED_EXTENSIONS
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.h gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins-sve2.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** namespace aarch64_sve
*** 47,59 ****
--- 47,66 ----
      extern const function_base *const svbcax;
      extern const function_base *const svbdep;
      extern const function_base *const svbext;
+     extern const function_base *const svbfmlslb;
+     extern const function_base *const svbfmlslb_lane;
+     extern const function_base *const svbfmlslt;
+     extern const function_base *const svbfmlslt_lane;
      extern const function_base *const svbgrp;
      extern const function_base *const svbsl;
      extern const function_base *const svbsl1n;
      extern const function_base *const svbsl2n;
      extern const function_base *const svcdot;
      extern const function_base *const svcdot_lane;
+     extern const function_base *const svclamp;
+     extern const function_base *const svcntp;
      extern const function_base *const svcvtlt;
+     extern const function_base *const svcvtn;
      extern const function_base *const svcvtx;
      extern const function_base *const svcvtxnt;
      extern const function_base *const sveor3;
*************** namespace aarch64_sve
*** 93,105 ****
--- 100,116 ----
      extern const function_base *const svmullt_lane;
      extern const function_base *const svnbsl;
      extern const function_base *const svnmatch;
+     extern const function_base *const svpext;
      extern const function_base *const svpmul;
      extern const function_base *const svpmullb;
      extern const function_base *const svpmullb_pair;
      extern const function_base *const svpmullt;
      extern const function_base *const svpmullt_pair;
+     extern const function_base *const svpsel;
      extern const function_base *const svqabs;
      extern const function_base *const svqcadd;
+     extern const function_base *const svqcvt;
+     extern const function_base *const svqcvtn;
      extern const function_base *const svqdmlalb;
      extern const function_base *const svqdmlalb_lane;
      extern const function_base *const svqdmlalbt;
*************** namespace aarch64_sve
*** 126,133 ****
--- 137,148 ----
      extern const function_base *const svqrdmlsh;
      extern const function_base *const svqrdmlsh_lane;
      extern const function_base *const svqrshl;
+     extern const function_base *const svqrshr;
+     extern const function_base *const svqrshrn;
      extern const function_base *const svqrshrnb;
      extern const function_base *const svqrshrnt;
+     extern const function_base *const svqrshru;
+     extern const function_base *const svqrshrun;
      extern const function_base *const svqrshrunb;
      extern const function_base *const svqrshrunt;
      extern const function_base *const svqshl;
*************** namespace aarch64_sve
*** 144,149 ****
--- 159,165 ----
      extern const function_base *const svraddhnb;
      extern const function_base *const svraddhnt;
      extern const function_base *const svrax1;
+     extern const function_base *const svrevd;
      extern const function_base *const svrhadd;
      extern const function_base *const svrshl;
      extern const function_base *const svrshr;
*************** namespace aarch64_sve
*** 178,184 ****
--- 194,205 ----
      extern const function_base *const svsubwt;
      extern const function_base *const svtbl2;
      extern const function_base *const svtbx;
+     extern const function_base *const svunpk;
      extern const function_base *const svuqadd;
+     extern const function_base *const svuzp;
+     extern const function_base *const svuzpq;
+     extern const function_base *const svzip;
+     extern const function_base *const svzipq;
      extern const function_base *const svwhilege;
      extern const function_base *const svwhilegt;
      extern const function_base *const svwhilerw;
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins.cc gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 51,57 ****
--- 51,59 ----
  #include "aarch64-sve-builtins.h"
  #include "aarch64-sve-builtins-base.h"
  #include "aarch64-sve-builtins-sve2.h"
+ #include "aarch64-sve-builtins-sme.h"
  #include "aarch64-sve-builtins-shapes.h"
+ #include "aarch64-builtins.h"
  
  namespace aarch64_sve {
  
*************** static const char *const pred_suffixes[N
*** 112,117 ****
--- 114,120 ----
    "_m",
    "_x",
    "_z",
+   "_m",
    ""
  };
  
*************** CONSTEXPR const mode_suffix_info mode_su
*** 127,133 ****
  
  /* Static information about each type_suffix_index.  */
  CONSTEXPR const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = {
! #define DEF_SVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE) \
    { "_" #NAME, \
      VECTOR_TYPE_##ACLE_TYPE, \
      TYPE_##CLASS, \
--- 130,137 ----
  
  /* Static information about each type_suffix_index.  */
  CONSTEXPR const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = {
! #define DEF_SVE_NEON_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE, \
! 				 NEON64, NEON128) \
    { "_" #NAME, \
      VECTOR_TYPE_##ACLE_TYPE, \
      TYPE_##CLASS, \
*************** CONSTEXPR const type_suffix_info type_su
*** 136,147 ****
      TYPE_##CLASS == TYPE_signed || TYPE_##CLASS == TYPE_unsigned, \
      TYPE_##CLASS == TYPE_unsigned, \
      TYPE_##CLASS == TYPE_float, \
      TYPE_##CLASS == TYPE_bool, \
      0, \
!     MODE },
  #include "aarch64-sve-builtins.def"
    { "", NUM_VECTOR_TYPES, TYPE_bool, 0, 0, false, false, false, false,
!     0, VOIDmode }
  };
  
  /* Define a TYPES_<combination> macro for each combination of type
--- 140,181 ----
      TYPE_##CLASS == TYPE_signed || TYPE_##CLASS == TYPE_unsigned, \
      TYPE_##CLASS == TYPE_unsigned, \
      TYPE_##CLASS == TYPE_float, \
+     TYPE_##CLASS != TYPE_bool, \
      TYPE_##CLASS == TYPE_bool, \
+     false, \
      0, \
!     MODE, \
!     NEON64, \
!     NEON128 },
! #define DEF_SVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE) \
!   DEF_SVE_NEON_TYPE_SUFFIX (NAME, ACLE_TYPE, CLASS, BITS, MODE, \
! 			    ARM_NEON_H_TYPES_LAST, ARM_NEON_H_TYPES_LAST)
! #define DEF_SME_ZA_SUFFIX(NAME, BITS, MODE) \
!   { "_" #NAME, \
!     NUM_VECTOR_TYPES, \
!     NUM_TYPE_CLASSES, \
!     BITS, \
!     BITS / BITS_PER_UNIT, \
!     false, \
!     false, \
!     false, \
!     false, \
!     false, \
!     true, \
!     0, \
!     MODE, \
!     ARM_NEON_H_TYPES_LAST, \
!     ARM_NEON_H_TYPES_LAST },
  #include "aarch64-sve-builtins.def"
    { "", NUM_VECTOR_TYPES, TYPE_bool, 0, 0, false, false, false, false,
!     false, false, 0, VOIDmode, ARM_NEON_H_TYPES_LAST, ARM_NEON_H_TYPES_LAST }
! };
! 
! CONSTEXPR const group_suffix_info group_suffixes[] = {
! #define DEF_SVE_GROUP_SUFFIX(NAME, VG, VECTORS_PER_TUPLE) \
!   { "_" #NAME, VG, VECTORS_PER_TUPLE },
! #include "aarch64-sve-builtins.def"
!   { "", 0, 1 }
  };
  
  /* Define a TYPES_<combination> macro for each combination of type
*************** CONSTEXPR const type_suffix_info type_su
*** 159,164 ****
--- 193,208 ----
  #define TYPES_all_pred(S, D) \
    S (b8), S (b16), S (b32), S (b64)
  
+ /* _c8 _c16 _c32 _c64.  */
+ #define TYPES_all_count(S, D) \
+   S (c8), S (c16), S (c32), S (c64)
+ 
+ /* _b8 _b16 _b32 _b64
+    _c8 _c16 _c32 _c64.  */
+ #define TYPES_all_pred_count(S, D) \
+   TYPES_all_pred (S, D), \
+   TYPES_all_count (S, D)
+ 
  /* _f16 _f32 _f64.  */
  #define TYPES_all_float(S, D) \
    S (f16), S (f32), S (f64)
*************** CONSTEXPR const type_suffix_info type_su
*** 198,203 ****
--- 242,251 ----
  #define TYPES_b(S, D) \
    S (b)
  
+ /* _c only.  */
+ #define TYPES_c(S, D) \
+   S (c)
+ 
  /* _u8.  */
  #define TYPES_b_unsigned(S, D) \
    S (u8)
*************** CONSTEXPR const type_suffix_info type_su
*** 229,234 ****
--- 277,295 ----
  #define TYPES_bhs_integer(S, D) \
    TYPES_bhs_signed (S, D), TYPES_bhs_unsigned (S, D)
  
+ /*      _bf16
+ 	 _f16  _f32
+     _s8  _s16  _s32
+     _u8  _u16  _u32.  */
+ #define TYPES_bhs_data(S, D) \
+   S (bf16), S (f16), S (f32), TYPES_bhs_integer (S, D)
+ 
+ /* _s16_s8  _s32_s16  _s64_s32
+    _u16_u8  _u32_u16  _u64_u32.  */
+ #define TYPES_bhs_widen(S, D) \
+   D (s16, s8), D (s32, s16), D (s64, s32), \
+   D (u16, u8), D (u32, u16), D (u64, u32)
+ 
  /* _s16
     _u16.  */
  #define TYPES_h_integer(S, D) \
*************** CONSTEXPR const type_suffix_info type_su
*** 247,252 ****
--- 308,320 ----
  #define TYPES_hs_float(S, D) \
    S (f16), S (f32)
  
+ /* _bf16
+     _f16  _f32
+     _s16  _s32
+     _u16  _u32.  */
+ #define TYPES_hs_data(S, D) \
+   S (bf16), S (f16), S (f32), TYPES_hs_integer (S, D)
+ 
  /* _u16 _u64.  */
  #define TYPES_hd_unsigned(S, D) \
    S (u16), S (u64)
*************** CONSTEXPR const type_suffix_info type_su
*** 358,363 ****
--- 426,435 ----
  #define TYPES_cvt_bfloat(S, D) \
    D (bf16, f32)
  
+ /* { _bf16 _f16 } x _f32.  */
+ #define TYPES_cvt_h_s_float(S, D) \
+   D (bf16, f32), D (f16, f32)
+ 
  /* _f32_f16
     _f64_f32.  */
  #define TYPES_cvt_long(S, D) \
*************** CONSTEXPR const type_suffix_info type_su
*** 372,377 ****
--- 444,458 ----
  #define TYPES_cvt_narrow(S, D) \
    D (f16, f32), TYPES_cvt_narrow_s (S, D)
  
+ /* { _s32 _u32 } x _f32
+ 
+    _f32 x { _s32 _u32 }.  */
+ #define TYPES_cvt_s_s(S, D) \
+   D (s32, f32), \
+   D (u32, f32), \
+   D (f32, s32), \
+   D (f32, u32)
+ 
  /* { _s32 _s64 } x { _b8 _b16 _b32 _b64 }
     { _u32 _u64 }.  */
  #define TYPES_inc_dec_n1(D, A) \
*************** CONSTEXPR const type_suffix_info type_su
*** 382,387 ****
--- 463,517 ----
    TYPES_inc_dec_n1 (D, u32), \
    TYPES_inc_dec_n1 (D, u64)
  
+ /* { _s16 _u16 } x _s32
+ 
+    {      _u16 } x _u32.  */
+ #define TYPES_qcvt_x2(S, D) \
+   D (s16, s32), \
+   D (u16, u32), \
+   D (u16, s32)
+ 
+ /* { _s8  _u8  } x _s32
+ 
+    {      _u8  } x _u32
+ 
+    { _s16 _u16 } x _s64
+ 
+    {      _u16 } x _u64.  */
+ #define TYPES_qcvt_x4(S, D) \
+   D (s8, s32), \
+   D (u8, u32), \
+   D (u8, s32), \
+   D (s16, s64), \
+   D (u16, u64), \
+   D (u16, s64)
+ 
+ /* _s16_s32
+    _u16_u32.  */
+ #define TYPES_qrshr_x2(S, D) \
+   D (s16, s32), \
+   D (u16, u32)
+ 
+ /* _u16_s32.  */
+ #define TYPES_qrshru_x2(S, D) \
+   D (u16, s32)
+ 
+ /* _s8_s32
+    _s16_s64
+    _u8_u32
+    _u16_u64.  */
+ #define TYPES_qrshr_x4(S, D) \
+   D (s8, s32), \
+   D (s16, s64), \
+   D (u8, u32), \
+   D (u16, u64)
+ 
+ /* _u8_s32
+    _u16_s64.  */
+ #define TYPES_qrshru_x4(S, D) \
+   D (u8, s32), \
+   D (u16, s64)
+ 
  /* {     _bf16           }   {     _bf16           }
     {      _f16 _f32 _f64 }   {      _f16 _f32 _f64 }
     { _s8  _s16 _s32 _s64 } x { _s8  _s16 _s32 _s64 }
*************** CONSTEXPR const type_suffix_info type_su
*** 405,410 ****
--- 535,546 ----
    TYPES_reinterpret1 (D, u32), \
    TYPES_reinterpret1 (D, u64)
  
+ /* _b_c
+    _c_b.  */
+ #define TYPES_reinterpret_b(S, D) \
+   D (b, c), \
+   D (c, b)
+ 
  /* { _b8 _b16 _b32 _b64 } x { _s32 _s64 }
  			    { _u32 _u64 } */
  #define TYPES_while1(D, bn) \
*************** CONSTEXPR const type_suffix_info type_su
*** 415,420 ****
--- 551,686 ----
    TYPES_while1 (D, b32), \
    TYPES_while1 (D, b64)
  
+ /* { _b8 _b16 _b32 _b64 } x { _s64 }
+ 			    { _u64 } */
+ #define TYPES_while_x(S, D) \
+   D (b8, s64), D (b8, u64), \
+   D (b16, s64), D (b16, u64), \
+   D (b32, s64), D (b32, u64), \
+   D (b64, s64), D (b64, u64)
+ 
+ /* { _c8 _c16 _c32 _c64 } x { _s64 }
+ 			    { _u64 } */
+ #define TYPES_while_x_c(S, D) \
+   D (c8, s64), D (c8, u64), \
+   D (c16, s64), D (c16, u64), \
+   D (c32, s64), D (c32, u64), \
+   D (c64, s64), D (c64, u64)
+ 
+ /* _f32_f16
+    _s32_s16
+    _u32_u16.  */
+ #define TYPES_s_narrow_fsu(S, D) \
+   D (f32, f16), D (s32, s16), D (u32, u16)
+ 
+ /* _za8 _za16 _za32 _za64 _za128.  */
+ #define TYPES_all_za(S, D) \
+   S (za8), S (za16), S (za32), S (za64), S (za128)
+ 
+ /* _za64.  */
+ #define TYPES_d_za(S, D) \
+   S (za64)
+ 
+ /* {   _za8 } x {             _s8  _u8 }
+ 
+    {  _za16 } x { _bf16 _f16 _s16 _u16 }
+ 
+    {  _za32 } x {       _f32 _s32 _u32 }
+ 
+    {  _za64 } x {       _f64 _s64 _u64 }.  */
+ #define TYPES_za_bhsd_data(S, D) \
+   D (za8, s8), D (za8, u8), \
+   D (za16, bf16), D (za16, f16), D (za16, s16), D (za16, u16), \
+   D (za32, f32), D (za32, s32), D (za32, u32), \
+   D (za64, f64), D (za64, s64), D (za64, u64)
+ 
+ /* Likewise, plus:
+ 
+    { _za128 } x {      _bf16           }
+ 		{       _f16 _f32 _f64 }
+ 		{ _s8   _s16 _s32 _s64 }
+ 		{ _u8   _u16 _u32 _u64 }.  */
+ 
+ #define TYPES_za_all_data(S, D) \
+   TYPES_za_bhsd_data (S, D), \
+   TYPES_reinterpret1 (D, za128)
+ 
+ /* _za32_s8.  */
+ #define TYPES_za_s_b_signed(S, D) \
+    D (za32, s8)
+ 
+ /* _za32_u8.  */
+ #define TYPES_za_s_b_unsigned(S, D) \
+    D (za32, u8)
+ 
+ /* _za32 x { _s8 _u8 }.  */
+ #define TYPES_za_s_b_integer(S, D) \
+   D (za32, s8), D (za32, u8)
+ 
+ /* _za32 x { _s16 _u16 }.  */
+ #define TYPES_za_s_h_integer(S, D) \
+   D (za32, s16), D (za32, u16)
+ 
+ /* _za32 x { _bf16 _f16 _s16 _u16 }.  */
+ #define TYPES_za_s_h_data(S, D) \
+   D (za32, bf16), D (za32, f16), D (za32, s16), D (za32, u16)
+ 
+ /* _za32_u32.  */
+ #define TYPES_za_s_unsigned(S, D) \
+   D (za32, u32)
+ 
+ /* _za32 x { _s32 _u32 }.  */
+ #define TYPES_za_s_integer(S, D) \
+   D (za32, s32), D (za32, u32)
+ 
+ /* _za32_f32.  */
+ #define TYPES_za_s_float(S, D) \
+   D (za32, f32)
+ 
+ /* _za32 x { _f32 _s32 _u32 }.  */
+ #define TYPES_za_s_data(S, D) \
+   D (za32, f32), D (za32, s32), D (za32, u32)
+ 
+ /* _za64 x { _s16 _u16 }.  */
+ #define TYPES_za_d_h_integer(S, D) \
+   D (za64, s16), D (za64, u16)
+ 
+ /* _za64_f64.  */
+ #define TYPES_za_d_float(S, D) \
+   D (za64, f64)
+ 
+ /* _za64 x { _s64 _u64 }.  */
+ #define TYPES_za_d_integer(S, D) \
+   D (za64, s64), D (za64, u64)
+ 
+ /* _za32 x { _s8 _u8 _bf16 _f16 _f32 }.  */
+ #define TYPES_mop_base(S, D) \
+   D (za32, s8), D (za32, u8), D (za32, bf16), D (za32, f16), D (za32, f32)
+ 
+ /* _za32_s8.  */
+ #define TYPES_mop_base_signed(S, D) \
+   D (za32, s8)
+ 
+ /* _za32_u8.  */
+ #define TYPES_mop_base_unsigned(S, D) \
+   D (za32, u8)
+ 
+ /* _za64 x { _s16 _u16 }.  */
+ #define TYPES_mop_i16i64(S, D) \
+   D (za64, s16), D (za64, u16)
+ 
+ /* _za64_s16.  */
+ #define TYPES_mop_i16i64_signed(S, D) \
+   D (za64, s16)
+ 
+ /* _za64_u16.  */
+ #define TYPES_mop_i16i64_unsigned(S, D) \
+   D (za64, u16)
+ 
+ /* _za.  */
+ #define TYPES_za(S, D) \
+   S (za)
+ 
  /* Describe a pair of type suffixes in which only the first is used.  */
  #define DEF_VECTOR_TYPE(X) { TYPE_SUFFIX_ ## X, NUM_TYPE_SUFFIXES }
  
*************** static const type_suffix_pair types_none
*** 437,442 ****
--- 703,710 ----
  
  /* Create an array for each TYPES_<combination> macro above.  */
  DEF_SVE_TYPES_ARRAY (all_pred);
+ DEF_SVE_TYPES_ARRAY (all_count);
+ DEF_SVE_TYPES_ARRAY (all_pred_count);
  DEF_SVE_TYPES_ARRAY (all_float);
  DEF_SVE_TYPES_ARRAY (all_signed);
  DEF_SVE_TYPES_ARRAY (all_float_and_signed);
*************** DEF_SVE_TYPES_ARRAY (bs_unsigned);
*** 452,461 ****
--- 720,733 ----
  DEF_SVE_TYPES_ARRAY (bhs_signed);
  DEF_SVE_TYPES_ARRAY (bhs_unsigned);
  DEF_SVE_TYPES_ARRAY (bhs_integer);
+ DEF_SVE_TYPES_ARRAY (bhs_data);
+ DEF_SVE_TYPES_ARRAY (bhs_widen);
+ DEF_SVE_TYPES_ARRAY (c);
  DEF_SVE_TYPES_ARRAY (h_integer);
  DEF_SVE_TYPES_ARRAY (hs_signed);
  DEF_SVE_TYPES_ARRAY (hs_integer);
  DEF_SVE_TYPES_ARRAY (hs_float);
+ DEF_SVE_TYPES_ARRAY (hs_data);
  DEF_SVE_TYPES_ARRAY (hd_unsigned);
  DEF_SVE_TYPES_ARRAY (hsd_signed);
  DEF_SVE_TYPES_ARRAY (hsd_integer);
*************** DEF_SVE_TYPES_ARRAY (d_integer);
*** 476,487 ****
--- 748,842 ----
  DEF_SVE_TYPES_ARRAY (d_data);
  DEF_SVE_TYPES_ARRAY (cvt);
  DEF_SVE_TYPES_ARRAY (cvt_bfloat);
+ DEF_SVE_TYPES_ARRAY (cvt_h_s_float);
  DEF_SVE_TYPES_ARRAY (cvt_long);
  DEF_SVE_TYPES_ARRAY (cvt_narrow_s);
  DEF_SVE_TYPES_ARRAY (cvt_narrow);
+ DEF_SVE_TYPES_ARRAY (cvt_s_s);
  DEF_SVE_TYPES_ARRAY (inc_dec_n);
+ DEF_SVE_TYPES_ARRAY (qcvt_x2);
+ DEF_SVE_TYPES_ARRAY (qcvt_x4);
+ DEF_SVE_TYPES_ARRAY (qrshr_x2);
+ DEF_SVE_TYPES_ARRAY (qrshr_x4);
+ DEF_SVE_TYPES_ARRAY (qrshru_x2);
+ DEF_SVE_TYPES_ARRAY (qrshru_x4);
  DEF_SVE_TYPES_ARRAY (reinterpret);
+ DEF_SVE_TYPES_ARRAY (reinterpret_b);
  DEF_SVE_TYPES_ARRAY (while);
+ DEF_SVE_TYPES_ARRAY (while_x);
+ DEF_SVE_TYPES_ARRAY (while_x_c);
+ DEF_SVE_TYPES_ARRAY (s_narrow_fsu);
+ DEF_SVE_TYPES_ARRAY (all_za);
+ DEF_SVE_TYPES_ARRAY (d_za);
+ DEF_SVE_TYPES_ARRAY (za_bhsd_data);
+ DEF_SVE_TYPES_ARRAY (za_all_data);
+ DEF_SVE_TYPES_ARRAY (za_s_b_signed);
+ DEF_SVE_TYPES_ARRAY (za_s_b_unsigned);
+ DEF_SVE_TYPES_ARRAY (za_s_b_integer);
+ DEF_SVE_TYPES_ARRAY (za_s_h_integer);
+ DEF_SVE_TYPES_ARRAY (za_s_h_data);
+ DEF_SVE_TYPES_ARRAY (za_s_unsigned);
+ DEF_SVE_TYPES_ARRAY (za_s_integer);
+ DEF_SVE_TYPES_ARRAY (za_s_float);
+ DEF_SVE_TYPES_ARRAY (za_s_data);
+ DEF_SVE_TYPES_ARRAY (za_d_h_integer);
+ DEF_SVE_TYPES_ARRAY (za_d_float);
+ DEF_SVE_TYPES_ARRAY (za_d_integer);
+ DEF_SVE_TYPES_ARRAY (mop_base);
+ DEF_SVE_TYPES_ARRAY (mop_base_signed);
+ DEF_SVE_TYPES_ARRAY (mop_base_unsigned);
+ DEF_SVE_TYPES_ARRAY (mop_i16i64);
+ DEF_SVE_TYPES_ARRAY (mop_i16i64_signed);
+ DEF_SVE_TYPES_ARRAY (mop_i16i64_unsigned);
+ DEF_SVE_TYPES_ARRAY (za);
+ 
+ static const group_suffix_index groups_none[] = {
+   GROUP_none, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_x2[] = { GROUP_x2, NUM_GROUP_SUFFIXES };
+ 
+ static const group_suffix_index groups_x12[] = {
+   GROUP_none, GROUP_x2, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_x4[] = { GROUP_x4, NUM_GROUP_SUFFIXES };
+ 
+ static const group_suffix_index groups_x24[] = {
+   GROUP_x2, GROUP_x4, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_x124[] = {
+   GROUP_none, GROUP_x2, GROUP_x4, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_x1234[] = {
+   GROUP_none, GROUP_x2, GROUP_x3, GROUP_x4, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_vg1x2[] = {
+   GROUP_vg1x2, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_vg1x4[] = {
+   GROUP_vg1x4, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_vg1x24[] = {
+   GROUP_vg1x2, GROUP_vg1x4, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_vg2[] = {
+   GROUP_vg2x1, GROUP_vg2x2, GROUP_vg2x4, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_vg4[] = {
+   GROUP_vg4x1, GROUP_vg4x2, GROUP_vg4x4, NUM_GROUP_SUFFIXES
+ };
+ 
+ static const group_suffix_index groups_vg24[] = {
+   GROUP_vg2, GROUP_vg4, NUM_GROUP_SUFFIXES
+ };
  
  /* Used by functions that have no governing predicate.  */
  static const predication_index preds_none[] = { PRED_none, NUM_PREDS };
*************** static const predication_index preds_non
*** 490,495 ****
--- 845,853 ----
     explicit suffix.  */
  static const predication_index preds_implicit[] = { PRED_implicit, NUM_PREDS };
  
+ /* Used by functions that only support "_m" predication.  */
+ static const predication_index preds_m[] = { PRED_m, NUM_PREDS };
+ 
  /* Used by functions that allow merging and "don't care" predication,
     but are not suitable for predicated MOVPRFX.  */
  static const predication_index preds_mx[] = {
*************** static const predication_index preds_z_o
*** 521,537 ****
  /* Used by (mostly predicate) functions that only support "_z" predication.  */
  static const predication_index preds_z[] = { PRED_z, NUM_PREDS };
  
! /* A list of all SVE ACLE functions.  */
  static CONSTEXPR const function_group_info function_groups[] = {
! #define DEF_SVE_FUNCTION(NAME, SHAPE, TYPES, PREDS) \
!   { #NAME, &functions::NAME, &shapes::SHAPE, types_##TYPES, preds_##PREDS, \
!     REQUIRED_EXTENSIONS | AARCH64_FL_SVE },
  #include "aarch64-sve-builtins.def"
  };
  
  /* The scalar type associated with each vector type.  */
! extern GTY(()) tree scalar_types[NUM_VECTOR_TYPES];
! tree scalar_types[NUM_VECTOR_TYPES];
  
  /* The single-predicate and single-vector types, with their built-in
     "__SV..._t" name.  Allow an index of NUM_VECTOR_TYPES, which always
--- 879,917 ----
  /* Used by (mostly predicate) functions that only support "_z" predication.  */
  static const predication_index preds_z[] = { PRED_z, NUM_PREDS };
  
! /* Used by SME instructions that always merge into ZA.  */
! static const predication_index preds_za_m[] = { PRED_za_m, NUM_PREDS };
! 
! /* A list of all arm_sve.h functions.  */
  static CONSTEXPR const function_group_info function_groups[] = {
! #define DEF_SVE_FUNCTION_GS(NAME, SHAPE, TYPES, GROUPS, PREDS) \
!   { #NAME, &functions::NAME, &shapes::SHAPE, types_##TYPES, groups_##GROUPS, \
!     preds_##PREDS, REQUIRED_EXTENSIONS },
  #include "aarch64-sve-builtins.def"
  };
  
+ /* A list of all arm_neon_sve_bridge.h ACLE functions.  */
+ static CONSTEXPR const function_group_info neon_sve_function_groups[] = {
+ #define DEF_NEON_SVE_FUNCTION(NAME, SHAPE, TYPES, GROUPS, PREDS) \
+   { #NAME, &neon_sve_bridge_functions::NAME, &shapes::SHAPE, types_##TYPES, \
+     groups_##GROUPS, preds_##PREDS, 0 },
+ #include "aarch64-neon-sve-bridge-builtins.def"
+ };
+ 
+ /* A list of all arm_sme.h functions.  */
+ static CONSTEXPR const function_group_info sme_function_groups[] = {
+ #define DEF_SME_FUNCTION_GS(NAME, SHAPE, TYPES, GROUPS, PREDS) \
+   { #NAME, &functions::NAME, &shapes::SHAPE, types_##TYPES, groups_##GROUPS, \
+     preds_##PREDS, REQUIRED_EXTENSIONS },
+ #define DEF_SME_ZA_FUNCTION_GS(NAME, SHAPE, TYPES, GROUPS, PREDS) \
+   { #NAME, &functions::NAME##_za, &shapes::SHAPE, types_##TYPES, \
+     groups_##GROUPS, preds_##PREDS, (REQUIRED_EXTENSIONS | AARCH64_FL_ZA_ON) },
+ #include "aarch64-sve-builtins-sme.def"
+ };
+ 
  /* The scalar type associated with each vector type.  */
! extern GTY(()) tree scalar_types[NUM_VECTOR_TYPES + 1];
! tree scalar_types[NUM_VECTOR_TYPES + 1];
  
  /* The single-predicate and single-vector types, with their built-in
     "__SV..._t" name.  Allow an index of NUM_VECTOR_TYPES, which always
*************** tree acle_svprfop;
*** 553,563 ****
--- 933,952 ----
  /* The list of all registered function decls, indexed by code.  */
  static GTY(()) vec<registered_function *, va_gc> *registered_functions;
  
+ /* Stores the starting function index for each pragma handler.  */
+ static unsigned int initial_indexes[NUM_PRAGMA_HANDLERS];
+ 
  /* All registered function decls, hashed on the function_instance
     that they implement.  This is used for looking up implementations of
     overloaded functions.  */
  static hash_table<registered_function_hasher> *function_table;
  
+ /* Index 0 maps all overloaded function names that we've registered so far to
+    their associated function_instances.  Index 1 does the same for functions
+    that we've skipped over without registering.  In both cases, the map keys
+    are IDENTIFIER_NODEs.  */
+ static GTY(()) hash_map<tree, registered_function *> *overload_names[2];
+ 
  /* True if we've already complained about attempts to use functions
     when the required extension is disabled.  */
  static bool reported_missing_extension_p;
*************** find_type_suffix_for_scalar_type (const_
*** 639,645 ****
    /* A linear search should be OK here, since the code isn't hot and
       the number of types is only small.  */
    for (unsigned int suffix_i = 0; suffix_i < NUM_TYPE_SUFFIXES; ++suffix_i)
!     if (!type_suffixes[suffix_i].bool_p)
        {
  	vector_type_index vector_i = type_suffixes[suffix_i].vector_type;
  	if (matches_type_p (scalar_types[vector_i], type))
--- 1028,1034 ----
    /* A linear search should be OK here, since the code isn't hot and
       the number of types is only small.  */
    for (unsigned int suffix_i = 0; suffix_i < NUM_TYPE_SUFFIXES; ++suffix_i)
!     if (type_suffixes[suffix_i].vector_p)
        {
  	vector_type_index vector_i = type_suffixes[suffix_i].vector_type;
  	if (matches_type_p (scalar_types[vector_i], type))
*************** find_type_suffix_for_scalar_type (const_
*** 648,653 ****
--- 1037,1081 ----
    return NUM_TYPE_SUFFIXES;
  }
  
+ /* Return the implicit group suffix for intrinsics that operate on NVECTORS
+    vectors.  */
+ static group_suffix_index
+ num_vectors_to_group (unsigned int nvectors)
+ {
+   switch (nvectors)
+     {
+     case 1: return GROUP_none;
+     case 2: return GROUP_x2;
+     case 3: return GROUP_x3;
+     case 4: return GROUP_x4;
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Return the vector type associated with TYPE.  */
+ static tree
+ get_vector_type (sve_type type)
+ {
+   auto vector_type = type_suffixes[type.type].vector_type;
+   return acle_vector_types[type.num_vectors - 1][vector_type];
+ }
+ 
+ /* If FNDECL is an SVE builtin, return its function instance, otherwise
+    return null.  */
+ const function_instance *
+ lookup_fndecl (tree fndecl)
+ {
+   if (!fndecl_built_in_p (fndecl, BUILT_IN_MD))
+     return nullptr;
+ 
+   unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
+   if ((code & AARCH64_BUILTIN_CLASS) != AARCH64_BUILTIN_SVE)
+     return nullptr;
+ 
+   unsigned int subcode = code >> AARCH64_BUILTIN_SHIFT;
+   return &(*registered_functions)[subcode]->instance;
+ }
+ 
  /* Report an error against LOCATION that the user has tried to use
     function FNDECL when extension EXTENSION is disabled.  */
  static void
*************** check_required_extensions (location_t lo
*** 700,705 ****
--- 1128,1154 ----
    if (missing_extensions == 0)
      return check_required_registers (location, fndecl);
  
+   if (missing_extensions & AARCH64_FL_SM_OFF)
+     {
+       error_at (location, "ACLE function %qD cannot be called when"
+ 		" SME streaming mode is enabled", fndecl);
+       return false;
+     }
+ 
+   if (missing_extensions & AARCH64_FL_SM_ON)
+     {
+       error_at (location, "ACLE function %qD can only be called when"
+ 		" SME streaming mode is enabled", fndecl);
+       return false;
+     }
+ 
+   if (missing_extensions & AARCH64_FL_ZA_ON)
+     {
+       error_at (location, "ACLE function %qD can only be called from"
+ 		" a function that has %qs state", fndecl, "za");
+       return false;
+     }
+ 
    static const struct {
      aarch64_feature_flags flag;
      const char *name;
*************** report_out_of_range (location_t location
*** 735,743 ****
  		     HOST_WIDE_INT actual, HOST_WIDE_INT min,
  		     HOST_WIDE_INT max)
  {
!   error_at (location, "passing %wd to argument %d of %qE, which expects"
! 	    " a value in the range [%wd, %wd]", actual, argno + 1, fndecl,
! 	    min, max);
  }
  
  /* Report that LOCATION has a call to FNDECL in which argument ARGNO has
--- 1184,1196 ----
  		     HOST_WIDE_INT actual, HOST_WIDE_INT min,
  		     HOST_WIDE_INT max)
  {
!   if (min == max)
!     error_at (location, "passing %wd to argument %d of %qE, which expects"
! 	      " the value %wd", actual, argno + 1, fndecl, min);
!   else
!     error_at (location, "passing %wd to argument %d of %qE, which expects"
! 	      " a value in the range [%wd, %wd]", actual, argno + 1, fndecl,
! 	      min, max);
  }
  
  /* Report that LOCATION has a call to FNDECL in which argument ARGNO has
*************** function_instance::hash () const
*** 788,793 ****
--- 1241,1247 ----
    h.add_int (mode_suffix_id);
    h.add_int (type_suffix_ids[0]);
    h.add_int (type_suffix_ids[1]);
+   h.add_int (group_suffix_id);
    h.add_int (pred);
    return h.end ();
  }
*************** function_instance::reads_global_state_p
*** 823,829 ****
      return true;
  
    /* Handle direct reads of global state.  */
!   return flags & (CP_READ_MEMORY | CP_READ_FFR);
  }
  
  /* Return true if calls to the function could modify some form of
--- 1277,1283 ----
      return true;
  
    /* Handle direct reads of global state.  */
!   return flags & (CP_READ_MEMORY | CP_READ_FFR | CP_READ_ZA | CP_READ_ZT0);
  }
  
  /* Return true if calls to the function could modify some form of
*************** function_instance::modifies_global_state
*** 844,850 ****
      return true;
  
    /* Handle direct modifications of global state.  */
!   return flags & (CP_WRITE_MEMORY | CP_WRITE_FFR);
  }
  
  /* Return true if calls to the function could raise a signal.  */
--- 1298,1304 ----
      return true;
  
    /* Handle direct modifications of global state.  */
!   return flags & (CP_WRITE_MEMORY | CP_WRITE_FFR | CP_WRITE_ZA | CP_WRITE_ZT0);
  }
  
  /* Return true if calls to the function could raise a signal.  */
*************** registered_function_hasher::equal (value
*** 876,883 ****
    return value->instance == key;
  }
  
! sve_switcher::sve_switcher ()
!   : aarch64_simd_switcher (AARCH64_FL_F16 | AARCH64_FL_SVE)
  {
    /* Changing the ISA flags and have_regs_of_mode should be enough here.
       We shouldn't need to pay the compile-time cost of a full target
--- 1330,1337 ----
    return value->instance == key;
  }
  
! sve_switcher::sve_switcher (aarch64_feature_flags flags)
!   : aarch64_simd_switcher (AARCH64_FL_F16 | AARCH64_FL_SVE | flags)
  {
    /* Changing the ISA flags and have_regs_of_mode should be enough here.
       We shouldn't need to pay the compile-time cost of a full target
*************** sve_switcher::~sve_switcher ()
*** 899,908 ****
    maximum_field_alignment = m_old_maximum_field_alignment;
  }
  
! function_builder::function_builder ()
  {
    m_overload_type = build_function_type (void_type_node, void_list_node);
    m_direct_overloads = lang_GNU_CXX ();
    gcc_obstack_init (&m_string_obstack);
  }
  
--- 1353,1373 ----
    maximum_field_alignment = m_old_maximum_field_alignment;
  }
  
! function_builder::function_builder (handle_pragma_index pragma_index,
! 				    bool function_nulls)
  {
    m_overload_type = build_function_type (void_type_node, void_list_node);
    m_direct_overloads = lang_GNU_CXX ();
+ 
+   if (initial_indexes[pragma_index] == 0)
+     {
+       unsigned int index = vec_safe_length (registered_functions);
+       initial_indexes[pragma_index] = index;
+     }
+ 
+   m_function_index = initial_indexes[pragma_index];
+   m_function_nulls = function_nulls;
+ 
    gcc_obstack_init (&m_string_obstack);
  }
  
*************** char *
*** 933,938 ****
--- 1398,1407 ----
  function_builder::get_name (const function_instance &instance,
  			    bool overloaded_p)
  {
+   /* __arm_* functions are listed as arm_*, so that the associated GCC
+      code is not in the implementation namespace.  */
+   if (strncmp (instance.base_name, "arm_", 4) == 0)
+     append_name ("__");
    append_name (instance.base_name);
    if (overloaded_p)
      switch (instance.displacement_units ())
*************** function_builder::get_name (const functi
*** 957,962 ****
--- 1426,1433 ----
    for (unsigned int i = 0; i < 2; ++i)
      if (!overloaded_p || instance.shape->explicit_type_suffix_p (i))
        append_name (instance.type_suffix (i).string);
+   if (!overloaded_p || instance.shape->explicit_group_suffix_p ())
+     append_name (instance.group_suffix ().string);
    append_name (pred_suffixes[instance.pred]);
    return finish_name ();
  }
*************** add_attribute (const char *name, tree at
*** 968,979 ****
    return tree_cons (get_identifier (name), NULL_TREE, attrs);
  }
  
! /* Return the appropriate function attributes for INSTANCE.  */
  tree
! function_builder::get_attributes (const function_instance &instance)
  {
    tree attrs = NULL_TREE;
  
    if (!instance.modifies_global_state_p ())
      {
        if (instance.reads_global_state_p ())
--- 1439,1511 ----
    return tree_cons (get_identifier (name), NULL_TREE, attrs);
  }
  
! /* Add attribute NS::NAME to ATTRS.  */
! static tree
! add_attribute (const char *ns, const char *name, tree value, tree attrs)
! {
!   return tree_cons (build_tree_list (get_identifier (ns),
! 				     get_identifier (name)),
! 		    value, attrs);
! }
! 
! /* Attribute arm::NAME describes shared state that is an input if IS_IN
!    and an output if IS_OUT.  Check whether a call with call properties
!    CALL_FLAGS needs such an attribute.  Add it to in-progress attribute
!    list ATTRS if so.  Return the new attribute list.  */
! static tree
! add_shared_state_attribute (const char *name, bool is_in, bool is_out,
! 			    unsigned int call_flags, tree attrs)
! {
!   struct state_flag_info
!   {
!     const char *name;
!     unsigned int read_flag;
!     unsigned int write_flag;
!   };
!   static state_flag_info state_flags[] =
!   {
!     { "za", CP_READ_ZA, CP_WRITE_ZA },
!     { "zt0", CP_READ_ZT0, CP_WRITE_ZT0 }
!   };
! 
!   tree args = NULL_TREE;
!   for (const auto &state_flag : state_flags)
!     {
!       auto all_flags = state_flag.read_flag | state_flag.write_flag;
!       auto these_flags = ((is_in ? state_flag.read_flag : 0)
! 			  | (is_out ? state_flag.write_flag : 0));
!       if ((call_flags & all_flags) == these_flags)
! 	{
! 	  tree value = build_string (strlen (state_flag.name) + 1,
! 				     state_flag.name);
! 	  args = tree_cons (NULL_TREE, value, args);
! 	}
!     }
!   if (args)
!     attrs = add_attribute ("arm", name, args, attrs);
!   return attrs;
! }
! 
! /* Return the appropriate function attributes for INSTANCE, which requires
!    the feature flags in REQUIRED_EXTENSIONS.  */
  tree
! function_builder::get_attributes (const function_instance &instance,
! 				  aarch64_feature_flags required_extensions)
  {
    tree attrs = NULL_TREE;
  
+   if (required_extensions & AARCH64_FL_SM_ON)
+     attrs = add_attribute ("arm", "streaming", NULL_TREE, attrs);
+   else if (!(required_extensions & AARCH64_FL_SM_OFF))
+     attrs = add_attribute ("arm", "streaming_compatible", NULL_TREE, attrs);
+ 
+   attrs = add_shared_state_attribute ("in", true, false,
+ 				      instance.call_properties (), attrs);
+   attrs = add_shared_state_attribute ("out", false, true,
+ 				      instance.call_properties (), attrs);
+   attrs = add_shared_state_attribute ("inout", true, true,
+ 				      instance.call_properties (), attrs);
+ 
    if (!instance.modifies_global_state_p ())
      {
        if (instance.reads_global_state_p ())
*************** function_builder::add_function (const fu
*** 999,1007 ****
  				bool overloaded_p,
  				bool placeholder_p)
  {
!   unsigned int code = vec_safe_length (registered_functions);
!   code = (code << AARCH64_BUILTIN_SHIFT) | AARCH64_BUILTIN_SVE;
! 
    /* We need to be able to generate placeholders to enusre that we have a
       consistent numbering scheme for function codes between the C and C++
       frontends, so that everything ties up in LTO.
--- 1531,1538 ----
  				bool overloaded_p,
  				bool placeholder_p)
  {
!   unsigned int length = vec_safe_length (registered_functions);
!   unsigned int code = (m_function_index << AARCH64_BUILTIN_SHIFT) | AARCH64_BUILTIN_SVE;
    /* We need to be able to generate placeholders to enusre that we have a
       consistent numbering scheme for function codes between the C and C++
       frontends, so that everything ties up in LTO.
*************** function_builder::add_function (const fu
*** 1015,1021 ****
       nodes and remove the target hook. For now, however, we need to appease the
       validation and return a non-NULL, non-error_mark_node node, so we
       arbitrarily choose integer_zero_node.  */
!   tree decl = placeholder_p
      ? integer_zero_node
      : simulate_builtin_function_decl (input_location, name, fntype,
  				      code, NULL, attrs);
--- 1546,1552 ----
       nodes and remove the target hook. For now, however, we need to appease the
       validation and return a non-NULL, non-error_mark_node node, so we
       arbitrarily choose integer_zero_node.  */
!   tree decl = placeholder_p || m_function_nulls
      ? integer_zero_node
      : simulate_builtin_function_decl (input_location, name, fntype,
  				      code, NULL, attrs);
*************** function_builder::add_function (const fu
*** 1025,1031 ****
    rfn.decl = decl;
    rfn.required_extensions = required_extensions;
    rfn.overloaded_p = overloaded_p;
!   vec_safe_push (registered_functions, &rfn);
  
    return rfn;
  }
--- 1556,1566 ----
    rfn.decl = decl;
    rfn.required_extensions = required_extensions;
    rfn.overloaded_p = overloaded_p;
!   if (m_function_index >= length)
!     vec_safe_push (registered_functions, &rfn);
!   else
!     (*registered_functions)[m_function_index] = &rfn;
!   m_function_index++;
  
    return rfn;
  }
*************** add_unique_function (const function_inst
*** 1049,1064 ****
    tree fntype = build_function_type_array (return_type,
  					   argument_types.length (),
  					   argument_types.address ());
!   tree attrs = get_attributes (instance);
    registered_function &rfn = add_function (instance, name, fntype, attrs,
  					   required_extensions, false, false);
  
    /* Enter the function into the hash table.  */
!   hashval_t hash = instance.hash ();
!   registered_function **rfn_slot
!     = function_table->find_slot_with_hash (instance, hash, INSERT);
!   gcc_assert (!*rfn_slot);
!   *rfn_slot = &rfn;
  
    /* Also add the function under its overloaded alias, if we want
       a separate decl for each instance of an overloaded function.  */
--- 1584,1602 ----
    tree fntype = build_function_type_array (return_type,
  					   argument_types.length (),
  					   argument_types.address ());
!   tree attrs = get_attributes (instance, required_extensions);
    registered_function &rfn = add_function (instance, name, fntype, attrs,
  					   required_extensions, false, false);
  
    /* Enter the function into the hash table.  */
!   if (!m_function_nulls)
!     {
!       hashval_t hash = instance.hash ();
!       registered_function **rfn_slot
! 	= function_table->find_slot_with_hash (instance, hash, INSERT);
!       gcc_assert (!*rfn_slot);
!       *rfn_slot = &rfn;
!     }
  
    /* Also add the function under its overloaded alias, if we want
       a separate decl for each instance of an overloaded function.  */
*************** add_unique_function (const function_inst
*** 1066,1072 ****
    if (strcmp (name, overload_name) != 0)
      {
        /* Attribute lists shouldn't be shared.  */
!       tree attrs = get_attributes (instance);
        bool placeholder_p = !(m_direct_overloads || force_direct_overloads);
        add_function (instance, overload_name, fntype, attrs,
  		    required_extensions, false, placeholder_p);
--- 1604,1610 ----
    if (strcmp (name, overload_name) != 0)
      {
        /* Attribute lists shouldn't be shared.  */
!       tree attrs = get_attributes (instance, required_extensions);
        bool placeholder_p = !(m_direct_overloads || force_direct_overloads);
        add_function (instance, overload_name, fntype, attrs,
  		    required_extensions, false, placeholder_p);
*************** function_builder::
*** 1089,1109 ****
  add_overloaded_function (const function_instance &instance,
  			 aarch64_feature_flags required_extensions)
  {
    char *name = get_name (instance, true);
!   if (registered_function **map_value = m_overload_names.get (name))
!     {
!       gcc_assert ((*map_value)->instance == instance
! 		  && ((*map_value)->required_extensions
! 		      & ~required_extensions) == 0);
!       obstack_free (&m_string_obstack, name);
!     }
    else
      {
        registered_function &rfn
  	= add_function (instance, name, m_overload_type, NULL_TREE,
  			required_extensions, true, m_direct_overloads);
!       m_overload_names.put (name, &rfn);
      }
  }
  
  /* If we are using manual overload resolution, add one function decl
--- 1627,1650 ----
  add_overloaded_function (const function_instance &instance,
  			 aarch64_feature_flags required_extensions)
  {
+   auto &name_map = overload_names[m_function_nulls];
+   if (!name_map)
+     name_map = hash_map<tree, registered_function *>::create_ggc ();
+ 
    char *name = get_name (instance, true);
!   tree id = get_identifier (name);
!   if (registered_function **map_value = name_map->get (id))
!     gcc_assert ((*map_value)->instance == instance
! 		&& ((*map_value)->required_extensions
! 		    & ~required_extensions) == 0);
    else
      {
        registered_function &rfn
  	= add_function (instance, name, m_overload_type, NULL_TREE,
  			required_extensions, true, m_direct_overloads);
!       name_map->put (id, &rfn);
      }
+   obstack_free (&m_string_obstack, name);
  }
  
  /* If we are using manual overload resolution, add one function decl
*************** void
*** 1113,1131 ****
  function_builder::add_overloaded_functions (const function_group_info &group,
  					    mode_suffix_index mode)
  {
!   unsigned int explicit_type0 = (*group.shape)->explicit_type_suffix_p (0);
!   unsigned int explicit_type1 = (*group.shape)->explicit_type_suffix_p (1);
!   for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
      {
        if (!explicit_type0 && !explicit_type1)
! 	{
! 	  /* Deal with the common case in which there is one overloaded
! 	     function for all type combinations.  */
! 	  function_instance instance (group.base_name, *group.base,
! 				      *group.shape, mode, types_none[0],
! 				      group.preds[pi]);
! 	  add_overloaded_function (instance, group.required_extensions);
! 	}
        else
  	for (unsigned int ti = 0; group.types[ti][0] != NUM_TYPE_SUFFIXES;
  	     ++ti)
--- 1654,1683 ----
  function_builder::add_overloaded_functions (const function_group_info &group,
  					    mode_suffix_index mode)
  {
!   bool explicit_type0 = (*group.shape)->explicit_type_suffix_p (0);
!   bool explicit_type1 = (*group.shape)->explicit_type_suffix_p (1);
!   bool explicit_group = (*group.shape)->explicit_group_suffix_p ();
!   auto add_function = [&](const type_suffix_pair &types,
! 			  group_suffix_index group_suffix_id,
! 			  unsigned int pi)
      {
+       function_instance instance (group.base_name, *group.base,
+ 				  *group.shape, mode, types,
+ 				  group_suffix_id, group.preds[pi]);
+       add_overloaded_function (instance, group.required_extensions);
+     };
+ 
+   auto add_group_suffix = [&](group_suffix_index group_suffix_id,
+ 			      unsigned int pi)
+     {
+       if (mode == MODE_single
+ 	  && group_suffixes[group_suffix_id].vectors_per_tuple == 1)
+ 	return;
+ 
        if (!explicit_type0 && !explicit_type1)
! 	/* Deal with the common case in which there is one overloaded
! 	   function for all type combinations.  */
! 	add_function (types_none[0], group_suffix_id, pi);
        else
  	for (unsigned int ti = 0; group.types[ti][0] != NUM_TYPE_SUFFIXES;
  	     ++ti)
*************** function_builder::add_overloaded_functio
*** 1136,1147 ****
  	      explicit_type0 ? group.types[ti][0] : NUM_TYPE_SUFFIXES,
  	      explicit_type1 ? group.types[ti][1] : NUM_TYPE_SUFFIXES
  	    };
! 	    function_instance instance (group.base_name, *group.base,
! 					*group.shape, mode, types,
! 					group.preds[pi]);
! 	    add_overloaded_function (instance, group.required_extensions);
  	  }
!     }
  }
  
  /* Register all the functions in GROUP.  */
--- 1688,1703 ----
  	      explicit_type0 ? group.types[ti][0] : NUM_TYPE_SUFFIXES,
  	      explicit_type1 ? group.types[ti][1] : NUM_TYPE_SUFFIXES
  	    };
! 	    add_function (types, group_suffix_id, pi);
  	  }
!     };
! 
!   for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
!     if (explicit_group)
!       for (unsigned int gi = 0; group.groups[gi] != NUM_GROUP_SUFFIXES; ++gi)
! 	add_group_suffix (group.groups[gi], pi);
!     else
!       add_group_suffix (GROUP_none, pi);
  }
  
  /* Register all the functions in GROUP.  */
*************** function_resolver::function_resolver (lo
*** 1165,1177 ****
  {
  }
  
- /* Return the vector type associated with type suffix TYPE.  */
- tree
- function_resolver::get_vector_type (type_suffix_index type)
- {
-   return acle_vector_types[0][type_suffixes[type].vector_type];
- }
- 
  /* Return the <stdint.h> name associated with TYPE.  Using the <stdint.h>
     name should be more user-friendly than the underlying canonical type,
     since it makes the signedness and bitwidth explicit.  */
--- 1721,1726 ----
*************** function_resolver::scalar_argument_p (un
*** 1202,1211 ****
  	  || SCALAR_FLOAT_TYPE_P (type));
  }
  
! /* Report that the function has no form that takes type suffix TYPE.
     Return error_mark_node.  */
  tree
! function_resolver::report_no_such_form (type_suffix_index type)
  {
    error_at (location, "%qE has no form that takes %qT arguments",
  	    fndecl, get_vector_type (type));
--- 1751,1828 ----
  	  || SCALAR_FLOAT_TYPE_P (type));
  }
  
! /* Report that argument ARGNO was expected to have NUM_VECTORS vectors.
!    TYPE is the type that ARGNO actually has.  */
! void
! function_resolver::report_incorrect_num_vectors (unsigned int argno,
! 						 sve_type type,
! 						 unsigned int num_vectors)
! {
!   if (num_vectors == 1)
!     error_at (location, "passing %qT to argument %d of %qE, which"
! 	      " expects a single SVE vector rather than a tuple",
! 	      get_vector_type (type), argno + 1, fndecl);
!   else if (type.num_vectors == 1
! 	   && type.type != TYPE_SUFFIX_b)
!     /* num_vectors is always != 1, so the singular isn't needed.  */
!     error_n (location, num_vectors, "%qT%d%qE%d",
! 	     "passing single vector %qT to argument %d"
! 	     " of %qE, which expects a tuple of %d vectors",
! 	     get_vector_type (type), argno + 1, fndecl, num_vectors);
!   else
!     /* num_vectors is always != 1, so the singular isn't needed.  */
!     error_n (location, num_vectors, "%qT%d%qE%d",
! 	     "passing %qT to argument %d of %qE, which"
! 	     " expects a tuple of %d vectors", get_vector_type (type),
! 	     argno + 1, fndecl, num_vectors);
! }
! 
! /* Report that arguments FIRST_ARGNO and ARGNO have different numbers
!    of vectors, but are required to have the same number of vectors.
!    FIRST_TYPE and TYPE are the types that arguments FIRST_ARGNO and
!    ARGNO actually have.  */
! void
! function_resolver::report_mismatched_num_vectors (unsigned int first_argno,
! 						  sve_type first_type,
! 						  unsigned int argno,
! 						  sve_type type)
! {
!   /* If the tuple size is implied by the group suffix, and if the first
!      type had the right number of vectors, treat argument ARGNO as being
!      individually wrong, rather than wrong in relation to FIRST_ARGNO.  */
!   if (group_suffix_id != GROUP_none
!       && first_type.num_vectors == vectors_per_tuple ())
!     {
!       report_incorrect_num_vectors (argno, type, first_type.num_vectors);
!       return;
!     }
! 
!   /* Make sure that FIRST_TYPE itself is sensible before using it
!      as a basis for an error message.  */
!   if (resolve_to (mode_suffix_id, first_type) == error_mark_node)
!     return;
! 
!   if (type.num_vectors != 1 && first_type.num_vectors == 1)
!     error_at (location, "passing tuple %qT to argument %d of %qE after"
! 	      " passing single vector %qT to argument %d",
! 	      get_vector_type (type), argno + 1, fndecl,
! 	      get_vector_type (first_type), first_argno + 1);
!   else if (type.num_vectors == 1 && first_type.num_vectors != 1)
!     error_at (location, "passing single vector %qT to argument %d"
! 	      " of %qE after passing tuple %qT to argument %d",
! 	      get_vector_type (type), argno + 1, fndecl,
! 	      get_vector_type (first_type), first_argno + 1);
!   else
!     error_at (location, "passing mismatched tuple types %qT and %qT"
! 	      " to arguments %d and %d of %qE",
! 	      get_vector_type (first_type), get_vector_type (type),
! 	      first_argno + 1, argno + 1, fndecl);
! }
! 
! /* Report that the function has no form that takes type TYPE.
     Return error_mark_node.  */
  tree
! function_resolver::report_no_such_form (sve_type type)
  {
    error_at (location, "%qE has no form that takes %qT arguments",
  	    fndecl, get_vector_type (type));
*************** function_resolver::report_no_such_form (
*** 1213,1253 ****
  }
  
  /* Silently check whether there is an instance of the function with the
!    mode suffix given by MODE and the type suffixes given by TYPE0 and TYPE1.
!    Return its function decl if so, otherwise return null.  */
  tree
  function_resolver::lookup_form (mode_suffix_index mode,
  				type_suffix_index type0,
! 				type_suffix_index type1)
  {
    type_suffix_pair types = { type0, type1 };
!   function_instance instance (base_name, base, shape, mode, types, pred);
    registered_function *rfn
      = function_table->find_with_hash (instance, instance.hash ());
    return rfn ? rfn->decl : NULL_TREE;
  }
  
! /* Resolve the function to one with the mode suffix given by MODE and the
!    type suffixes given by TYPE0 and TYPE1.  Return its function decl on
!    success, otherwise report an error and return error_mark_node.  */
  tree
  function_resolver::resolve_to (mode_suffix_index mode,
  			       type_suffix_index type0,
! 			       type_suffix_index type1)
  {
!   tree res = lookup_form (mode, type0, type1);
    if (!res)
      {
        if (type1 == NUM_TYPE_SUFFIXES)
  	return report_no_such_form (type0);
        if (type0 == type_suffix_ids[0])
  	return report_no_such_form (type1);
!       /* To be filled in when we have other cases.  */
!       gcc_unreachable ();
      }
    return res;
  }
  
  /* Require argument ARGNO to be a 32-bit or 64-bit scalar integer type.
     Return the associated type suffix on success, otherwise report an
     error and return NUM_TYPE_SUFFIXES.  */
--- 1830,1958 ----
  }
  
  /* Silently check whether there is an instance of the function with the
!    mode suffix given by MODE, the type suffixes given by TYPE0 and TYPE1,
!    and the group suffix given by GROUP.  Return its function decl if so,
!    otherwise return null.  */
  tree
  function_resolver::lookup_form (mode_suffix_index mode,
  				type_suffix_index type0,
! 				type_suffix_index type1,
! 				group_suffix_index group)
  {
    type_suffix_pair types = { type0, type1 };
!   function_instance instance (base_name, base, shape, mode, types,
! 			      group, pred);
    registered_function *rfn
      = function_table->find_with_hash (instance, instance.hash ());
    return rfn ? rfn->decl : NULL_TREE;
  }
  
! /* Silently check whether there is an instance of the function that has the
!    mode suffix given by MODE and the type and group suffixes implied by TYPE.
!    If the overloaded function has an explicit first type suffix (like
!    conversions do), TYPE describes the implicit second type suffix.
!    Otherwise, TYPE describes the only type suffix.
! 
!    Return the decl of the function if it exists, otherwise return null.  */
! tree
! function_resolver::lookup_form (mode_suffix_index mode, sve_type type)
! {
!   type_suffix_index type0 = type_suffix_ids[0];
!   type_suffix_index type1 = type_suffix_ids[1];
!   (type0 == NUM_TYPE_SUFFIXES ? type0 : type1) = type.type;
! 
!   group_suffix_index group = group_suffix_id;
!   if (group == GROUP_none && type.num_vectors != vectors_per_tuple ())
!     group = num_vectors_to_group (type.num_vectors);
! 
!   return lookup_form (mode, type0, type1, group);
! }
! 
! /* Resolve the function to one with the mode suffix given by MODE, the
!    type suffixes given by TYPE0 and TYPE1, and group suffix given by
!    GROUP.  Return its function decl on success, otherwise report an
!    error and return error_mark_node.  */
  tree
  function_resolver::resolve_to (mode_suffix_index mode,
  			       type_suffix_index type0,
! 			       type_suffix_index type1,
! 			       group_suffix_index group)
  {
!   tree res = lookup_form (mode, type0, type1, group);
    if (!res)
      {
        if (type1 == NUM_TYPE_SUFFIXES)
  	return report_no_such_form (type0);
        if (type0 == type_suffix_ids[0])
  	return report_no_such_form (type1);
!       error_at (location, "%qE has no form that takes %qT and %qT arguments",
! 		fndecl, get_vector_type (type0), get_vector_type (type1));
!       return error_mark_node;
      }
    return res;
  }
  
+ /* Resolve the function to one that has the suffixes associated with MODE
+    and TYPE; see lookup_form for how TYPE is interpreted.  Return the
+    function decl on success, otherwise report an error and return
+    error_mark_node.  */
+ tree
+ function_resolver::resolve_to (mode_suffix_index mode, sve_type type)
+ {
+   if (tree res = lookup_form (mode, type))
+     return res;
+ 
+   return report_no_such_form (type);
+ }
+ 
+ /* Like resolve_to, but used for a conversion function with the following
+    properties:
+ 
+    - The function has an explicit first type suffix.
+    - The elements of the argument (which has type TYPE) might be narrower
+      or wider than the elements of the return type.
+    - The return type has enough vectors to represent the converted value
+      of every element.
+    - The group suffix describes the wider of the argument type and the
+      return type.  */
+ tree
+ function_resolver::resolve_conversion (mode_suffix_index mode, sve_type type)
+ {
+   auto ret_type = type_suffix_ids[0];
+   unsigned int num_ret_vectors = (type.num_vectors
+ 				  * type_suffixes[ret_type].element_bits
+ 				  / type_suffixes[type.type].element_bits);
+   if (num_ret_vectors == 1
+       || num_ret_vectors == 2
+       || num_ret_vectors == 4)
+     {
+       unsigned int num_vectors = MAX (num_ret_vectors, type.num_vectors);
+       if (tree res = lookup_form (mode, { type.type, num_vectors }))
+ 	return res;
+     }
+   return report_no_such_form (type);
+ }
+ 
+ /* Require argument ARGNO to be an svbool_t or svcount_t predicate.
+    Return its type on success, otherwise report an error and return
+    NUM_VECTOR_TYPES.  */
+ vector_type_index
+ function_resolver::infer_predicate_type (unsigned int argno)
+ {
+   tree actual = get_argument_type (argno);
+   if (actual == error_mark_node)
+     return NUM_VECTOR_TYPES;
+ 
+   for (auto index : { VECTOR_TYPE_svbool_t, VECTOR_TYPE_svcount_t })
+     if (matches_type_p (acle_vector_types[0][index], actual))
+       return index;
+ 
+   error_at (location, "passing %qT to argument %d of %qE, which expects"
+ 	    " an %qs or %qs", actual, argno + 1, fndecl, "svbool_t",
+ 	    "svcount_t");
+   return NUM_VECTOR_TYPES;
+ }
+ 
  /* Require argument ARGNO to be a 32-bit or 64-bit scalar integer type.
     Return the associated type suffix on success, otherwise report an
     error and return NUM_TYPE_SUFFIXES.  */
*************** function_resolver::infer_integer_scalar_
*** 1278,1283 ****
--- 1983,2032 ----
    return NUM_TYPE_SUFFIXES;
  }
  
+ /* Return arguments ARGNO and ARGNO + 1 to be 64-bit scalar integers
+    of the same signedness, or be a combination that converts unambiguously
+    to such a pair.  Return the associated type suffix if they are,
+    otherwise report an error and return NUM_TYPE_SUFFIXES.  */
+ type_suffix_index
+ function_resolver::infer_64bit_scalar_integer_pair (unsigned int argno)
+ {
+   /* Require two scalar integers, with one having 64 bits and the other
+      one being no bigger.  */
+   tree types[] = { get_argument_type (argno), get_argument_type (argno + 1) };
+   if (!INTEGRAL_TYPE_P (types[0])
+       || !INTEGRAL_TYPE_P (types[1])
+       || MAX (TYPE_PRECISION (types[0]), TYPE_PRECISION (types[1])) != 64)
+     {
+       error_at (location, "passing %qT and %qT to arguments %d and %d of %qE,"
+ 		" which expects a pair of 64-bit integers", types[0], types[1],
+ 		argno + 1, argno + 2, fndecl);
+       return NUM_TYPE_SUFFIXES;
+     }
+ 
+   /* Allow signed integers smaller than int64_t to be paired with an int64_t.
+      Allow unsigned integers smaller than uint64_t to be paired with any
+      64-bit integer.  */
+   for (int i = 0; i < 2; ++i)
+     {
+       if (TYPE_PRECISION (types[i]) != 64)
+ 	continue;
+ 
+       if (TYPE_UNSIGNED (types[1 - i]) != TYPE_UNSIGNED (types[i]))
+ 	{
+ 	  if (TYPE_PRECISION (types[1 - i]) == 64)
+ 	    continue;
+ 	  if (!TYPE_UNSIGNED (types[1 - i]))
+ 	    continue;
+ 	}
+       return TYPE_UNSIGNED (types[i]) ? TYPE_SUFFIX_u64 : TYPE_SUFFIX_s64;
+     }
+ 
+   error_at (location, "passing mismatched integer types %qT and %qT"
+ 	    " to arguments %d and %d of %qE", types[0], types[1],
+ 	    argno + 1, argno + 2, fndecl);
+   return NUM_TYPE_SUFFIXES;
+ }
+ 
  /* Require argument ARGNO to be a pointer to a scalar type that has a
     corresponding type suffix.  Return that type suffix on success,
     otherwise report an error and return NUM_TYPE_SUFFIXES.
*************** function_resolver::infer_pointer_type (u
*** 1322,1378 ****
    return type;
  }
  
! /* Require argument ARGNO to be a single vector or a tuple of NUM_VECTORS
!    vectors; NUM_VECTORS is 1 for the former.  Return the associated type
!    suffix on success, using TYPE_SUFFIX_b for predicates.  Report an error
!    and return NUM_TYPE_SUFFIXES on failure.  */
! type_suffix_index
! function_resolver::infer_vector_or_tuple_type (unsigned int argno,
! 					       unsigned int num_vectors)
  {
-   tree actual = get_argument_type (argno);
-   if (actual == error_mark_node)
-     return NUM_TYPE_SUFFIXES;
- 
    /* A linear search should be OK here, since the code isn't hot and
       the number of types is only small.  */
    for (unsigned int size_i = 0; size_i < MAX_TUPLE_SIZE; ++size_i)
      for (unsigned int suffix_i = 0; suffix_i < NUM_TYPE_SUFFIXES; ++suffix_i)
        {
  	vector_type_index type_i = type_suffixes[suffix_i].vector_type;
! 	tree type = acle_vector_types[size_i][type_i];
! 	if (type && matches_type_p (type, actual))
! 	  {
! 	    if (size_i + 1 == num_vectors)
! 	      return type_suffix_index (suffix_i);
! 
! 	    if (num_vectors == 1)
! 	      error_at (location, "passing %qT to argument %d of %qE, which"
! 			" expects a single SVE vector rather than a tuple",
! 			actual, argno + 1, fndecl);
! 	    else if (size_i == 0 && type_i != VECTOR_TYPE_svbool_t)
! 	      /* num_vectors is always != 1, so the singular isn't needed.  */
! 	      error_n (location, num_vectors, "%qT%d%qE%d",
! 		       "passing single vector %qT to argument %d"
! 		       " of %qE, which expects a tuple of %d vectors",
! 		       actual, argno + 1, fndecl, num_vectors);
! 	    else
! 	      /* num_vectors is always != 1, so the singular isn't needed.  */
! 	      error_n (location, num_vectors, "%qT%d%qE%d",
! 		       "passing %qT to argument %d of %qE, which"
! 		       " expects a tuple of %d vectors", actual, argno + 1,
! 		       fndecl, num_vectors);
! 	    return NUM_TYPE_SUFFIXES;
! 	  }
        }
  
!   if (num_vectors == 1)
      error_at (location, "passing %qT to argument %d of %qE, which"
! 	      " expects an SVE vector type", actual, argno + 1, fndecl);
    else
      error_at (location, "passing %qT to argument %d of %qE, which"
! 	      " expects an SVE tuple type", actual, argno + 1, fndecl);
!   return NUM_TYPE_SUFFIXES;
  }
  
  /* Require argument ARGNO to have some form of vector type.  Return the
--- 2071,2135 ----
    return type;
  }
  
! /* If TYPE is an SVE predicate or vector type, or a tuple of such a type,
!    return the associated sve_type, otherwise return an invalid sve_type.  */
! static sve_type
! find_sve_type (const_tree type)
  {
    /* A linear search should be OK here, since the code isn't hot and
       the number of types is only small.  */
    for (unsigned int size_i = 0; size_i < MAX_TUPLE_SIZE; ++size_i)
      for (unsigned int suffix_i = 0; suffix_i < NUM_TYPE_SUFFIXES; ++suffix_i)
        {
  	vector_type_index type_i = type_suffixes[suffix_i].vector_type;
! 	tree this_type = acle_vector_types[size_i][type_i];
! 	if (this_type && matches_type_p (this_type, type))
! 	  return { type_suffix_index (suffix_i), size_i + 1 };
        }
  
!   return {};
! }
! 
! /* Require argument ARGNO to be an SVE type (i.e. something that can be
!    represented by sve_type).  Return the (valid) type if it is, otherwise
!    report an error and return an invalid type.  */
! sve_type
! function_resolver::infer_sve_type (unsigned int argno)
! {
!   tree actual = get_argument_type (argno);
!   if (actual == error_mark_node)
!     return {};
! 
!   if (sve_type type = find_sve_type (actual))
!     return type;
! 
!   if (scalar_argument_p (argno))
      error_at (location, "passing %qT to argument %d of %qE, which"
! 	      " expects an SVE type rather than a scalar type",
! 	      actual, argno + 1, fndecl);
    else
      error_at (location, "passing %qT to argument %d of %qE, which"
! 	      " expects an SVE type",
! 	      actual, argno + 1, fndecl);
!   return {};
! }
! 
! /* Require argument ARGNO to be a single vector or a tuple of NUM_VECTORS
!    vectors; NUM_VECTORS is 1 for the former.  Return the associated type
!    on success.  Report an error on failure.  */
! sve_type
! function_resolver::infer_vector_or_tuple_type (unsigned int argno,
! 					       unsigned int num_vectors)
! {
!   auto type = infer_sve_type (argno);
!   if (!type)
!     return type;
! 
!   if (type.num_vectors == num_vectors)
!     return type;
! 
!   report_incorrect_num_vectors (argno, type, num_vectors);
!   return {};
  }
  
  /* Require argument ARGNO to have some form of vector type.  Return the
*************** function_resolver::infer_vector_or_tuple
*** 1381,1387 ****
  type_suffix_index
  function_resolver::infer_vector_type (unsigned int argno)
  {
!   return infer_vector_or_tuple_type (argno, 1);
  }
  
  /* Like infer_vector_type, but also require the type to be integral.  */
--- 2138,2146 ----
  type_suffix_index
  function_resolver::infer_vector_type (unsigned int argno)
  {
!   if (auto type = infer_vector_or_tuple_type (argno, 1))
!     return type.type;
!   return NUM_TYPE_SUFFIXES;
  }
  
  /* Like infer_vector_type, but also require the type to be integral.  */
*************** function_resolver::infer_integer_vector_
*** 1403,1408 ****
--- 2162,2194 ----
    return type;
  }
  
+ /* Require argument ARGNO to have some form of NEON128 vector type.  Return the
+    associated type suffix on success.
+    Report an error and return NUM_TYPE_SUFFIXES on failure.  */
+ type_suffix_index
+ function_resolver::infer_neon128_vector_type (unsigned int argno)
+ {
+   tree actual = get_argument_type (argno);
+   if (actual == error_mark_node)
+     return NUM_TYPE_SUFFIXES;
+ 
+   for (unsigned int suffix_i = 0; suffix_i < NUM_TYPE_SUFFIXES; ++suffix_i)
+     {
+       int neon_index = type_suffixes[suffix_i].neon128_type;
+       if (neon_index != ARM_NEON_H_TYPES_LAST)
+ 	{
+ 	  tree type = aarch64_simd_types[neon_index].itype;
+ 	  if (type && matches_type_p (type, actual))
+ 	    return type_suffix_index (suffix_i);
+ 	}
+     }
+ 
+   error_at (location, "passing %qT to argument %d of %qE, which"
+ 	    " expects a 128 bit NEON vector type", actual, argno + 1, fndecl);
+   return NUM_TYPE_SUFFIXES;
+ }
+ 
+ 
  /* Like infer_vector_type, but also require the type to be an unsigned
     integer.  */
  type_suffix_index
*************** function_resolver::infer_sd_vector_type
*** 1446,1460 ****
  
  /* If the function operates on tuples of vectors, require argument ARGNO to be
     a tuple with the appropriate number of vectors, otherwise require it to be
!    a single vector.  Return the associated type suffix on success, using
!    TYPE_SUFFIX_b for predicates.  Report an error and return NUM_TYPE_SUFFIXES
     on failure.  */
! type_suffix_index
  function_resolver::infer_tuple_type (unsigned int argno)
  {
    return infer_vector_or_tuple_type (argno, vectors_per_tuple ());
  }
  
  /* Require argument ARGNO to be a vector or scalar argument.  Return true
     if it is, otherwise report an appropriate error.  */
  bool
--- 2232,2276 ----
  
  /* If the function operates on tuples of vectors, require argument ARGNO to be
     a tuple with the appropriate number of vectors, otherwise require it to be
!    a single vector.  Return the associated type on success.  Report an error
     on failure.  */
! sve_type
  function_resolver::infer_tuple_type (unsigned int argno)
  {
    return infer_vector_or_tuple_type (argno, vectors_per_tuple ());
  }
  
+ /* PRED_TYPE is the type of a governing predicate argument and DATA_TYPE
+    is the type of an argument that it predicates.  Require the two types
+    to "agree": svcount_t must be used for multiple vectors and svbool_t
+    for single vectors.
+ 
+    Return true if they do agree, otherwise report an error and
+    return false.  */
+ bool function_resolver::
+ require_matching_predicate_type (vector_type_index pred_type,
+ 				 sve_type data_type)
+ {
+   if (pred_type == VECTOR_TYPE_svbool_t && data_type.num_vectors == 1)
+     return true;
+ 
+   if (pred_type == VECTOR_TYPE_svcount_t && data_type.num_vectors != 1)
+     return true;
+ 
+   /* Make sure that FIRST_TYPE itself is sensible before using it
+      as a basis for an error message.  */
+   if (resolve_to (mode_suffix_id, data_type) == error_mark_node)
+     return false;
+ 
+   if (data_type.num_vectors > 1)
+     error_at (location, "operations on multiple vectors must be predicated"
+ 	      " by %qs rather than %qs", "svcount_t", "svbool_t");
+   else
+     error_at (location, "operations on single vectors must be predicated"
+ 	      " by %qs rather than %qs", "svbool_t", "svcount_t");
+   return false;
+ }
+ 
  /* Require argument ARGNO to be a vector or scalar argument.  Return true
     if it is, otherwise report an appropriate error.  */
  bool
*************** function_resolver::require_vector_type (
*** 1495,1523 ****
    return true;
  }
  
! /* Like require_vector_type, but TYPE is inferred from previous arguments
     rather than being a fixed part of the function signature.  This changes
     the nature of the error messages.  */
  bool
  function_resolver::require_matching_vector_type (unsigned int argno,
! 						 type_suffix_index type)
  {
!   type_suffix_index new_type = infer_vector_type (argno);
!   if (new_type == NUM_TYPE_SUFFIXES)
      return false;
  
    if (type != new_type)
      {
        error_at (location, "passing %qT to argument %d of %qE, but"
! 		" previous arguments had type %qT",
  		get_vector_type (new_type), argno + 1, fndecl,
! 		get_vector_type (type));
        return false;
      }
    return true;
  }
  
! /* Require argument ARGNO to be a vector type with the following properties:
  
     - the type class must be the same as FIRST_TYPE's if EXPECTED_TCLASS
       is SAME_TYPE_CLASS, otherwise it must be EXPECTED_TCLASS itself.
--- 2311,2347 ----
    return true;
  }
  
! /* Like require_vector_type, but TYPE is inferred from argument FIRST_ARGNO
     rather than being a fixed part of the function signature.  This changes
     the nature of the error messages.  */
  bool
  function_resolver::require_matching_vector_type (unsigned int argno,
! 						 unsigned int first_argno,
! 						 sve_type type)
  {
!   sve_type new_type = infer_sve_type (argno);
!   if (!new_type)
      return false;
  
+   if (type.num_vectors != new_type.num_vectors)
+     {
+       report_mismatched_num_vectors (first_argno, type, argno, new_type);
+       return false;
+     }
+ 
    if (type != new_type)
      {
        error_at (location, "passing %qT to argument %d of %qE, but"
! 		" argument %d had type %qT",
  		get_vector_type (new_type), argno + 1, fndecl,
! 		first_argno + 1, get_vector_type (type));
        return false;
      }
    return true;
  }
  
! /* Require argument ARGNO to be a vector or tuple type with the following
!    properties:
  
     - the type class must be the same as FIRST_TYPE's if EXPECTED_TCLASS
       is SAME_TYPE_CLASS, otherwise it must be EXPECTED_TCLASS itself.
*************** function_resolver::require_matching_vect
*** 1529,1534 ****
--- 2353,2361 ----
       - a quarter of FIRST_TYPE's if EXPECTED_BITS == QUARTER_SIZE
       - EXPECTED_BITS itself otherwise
  
+    - the number of vectors must be the same as FIRST_TYPE's if
+      EXPECTED_NUM_VECTORS is zero, otherwise it must be EXPECTED_NUM_VECTORS.
+ 
     Return true if the argument has the required type, otherwise report
     an appropriate error.
  
*************** function_resolver::require_matching_vect
*** 1546,1585 ****
  bool function_resolver::
  require_derived_vector_type (unsigned int argno,
  			     unsigned int first_argno,
! 			     type_suffix_index first_type,
  			     type_class_index expected_tclass,
! 			     unsigned int expected_bits)
  {
    /* If the type needs to match FIRST_ARGNO exactly, use the preferred
!      error message for that case.  The VECTOR_TYPE_P test excludes tuple
!      types, which we handle below instead.  */
!   bool both_vectors_p = VECTOR_TYPE_P (get_argument_type (first_argno));
!   if (both_vectors_p
!       && expected_tclass == SAME_TYPE_CLASS
!       && expected_bits == SAME_SIZE)
      {
        /* There's no need to resolve this case out of order.  */
        gcc_assert (argno > first_argno);
!       return require_matching_vector_type (argno, first_type);
      }
  
    /* Use FIRST_TYPE to get the expected type class and element size.  */
    type_class_index orig_expected_tclass = expected_tclass;
    if (expected_tclass == NUM_TYPE_CLASSES)
!     expected_tclass = type_suffixes[first_type].tclass;
  
    unsigned int orig_expected_bits = expected_bits;
    if (expected_bits == SAME_SIZE)
!     expected_bits = type_suffixes[first_type].element_bits;
    else if (expected_bits == HALF_SIZE)
!     expected_bits = type_suffixes[first_type].element_bits / 2;
    else if (expected_bits == QUARTER_SIZE)
!     expected_bits = type_suffixes[first_type].element_bits / 4;
  
    /* If the expected type doesn't depend on FIRST_TYPE at all,
       just check for the fixed choice of vector type.  */
    if (expected_tclass == orig_expected_tclass
!       && expected_bits == orig_expected_bits)
      {
        const type_suffix_info &expected_suffix
  	= type_suffixes[find_type_suffix (expected_tclass, expected_bits)];
--- 2373,2417 ----
  bool function_resolver::
  require_derived_vector_type (unsigned int argno,
  			     unsigned int first_argno,
! 			     sve_type first_type,
  			     type_class_index expected_tclass,
! 			     unsigned int expected_bits,
! 			     unsigned int expected_num_vectors)
  {
    /* If the type needs to match FIRST_ARGNO exactly, use the preferred
!      error message for that case.  */
!   if (expected_tclass == SAME_TYPE_CLASS
!       && expected_bits == SAME_SIZE
!       && expected_num_vectors == 0)
      {
        /* There's no need to resolve this case out of order.  */
        gcc_assert (argno > first_argno);
!       return require_matching_vector_type (argno, first_argno, first_type);
      }
  
    /* Use FIRST_TYPE to get the expected type class and element size.  */
+   auto &first_type_suffix = type_suffixes[first_type.type];
    type_class_index orig_expected_tclass = expected_tclass;
    if (expected_tclass == NUM_TYPE_CLASSES)
!     expected_tclass = first_type_suffix.tclass;
  
    unsigned int orig_expected_bits = expected_bits;
    if (expected_bits == SAME_SIZE)
!     expected_bits = first_type_suffix.element_bits;
    else if (expected_bits == HALF_SIZE)
!     expected_bits = first_type_suffix.element_bits / 2;
    else if (expected_bits == QUARTER_SIZE)
!     expected_bits = first_type_suffix.element_bits / 4;
! 
!   unsigned int orig_expected_num_vectors = expected_num_vectors;
!   if (expected_num_vectors == 0)
!     expected_num_vectors = first_type.num_vectors;
  
    /* If the expected type doesn't depend on FIRST_TYPE at all,
       just check for the fixed choice of vector type.  */
    if (expected_tclass == orig_expected_tclass
!       && expected_bits == orig_expected_bits
!       && orig_expected_num_vectors == 1)
      {
        const type_suffix_info &expected_suffix
  	= type_suffixes[find_type_suffix (expected_tclass, expected_bits)];
*************** require_derived_vector_type (unsigned in
*** 1588,1600 ****
  
    /* Require the argument to be some form of SVE vector type,
       without being specific about the type of vector we want.  */
!   type_suffix_index actual_type = infer_vector_type (argno);
!   if (actual_type == NUM_TYPE_SUFFIXES)
      return false;
  
    /* Exit now if we got the right type.  */
!   bool tclass_ok_p = (type_suffixes[actual_type].tclass == expected_tclass);
!   bool size_ok_p = (type_suffixes[actual_type].element_bits == expected_bits);
    if (tclass_ok_p && size_ok_p)
      return true;
  
--- 2420,2463 ----
  
    /* Require the argument to be some form of SVE vector type,
       without being specific about the type of vector we want.  */
!   sve_type actual_type = infer_sve_type (argno);
!   if (!actual_type)
      return false;
  
+   if (actual_type.num_vectors != expected_num_vectors)
+     {
+       if (orig_expected_num_vectors == 0)
+ 	report_mismatched_num_vectors (first_argno, first_type,
+ 				       argno, actual_type);
+       else
+ 	report_incorrect_num_vectors (argno, actual_type,
+ 				      expected_num_vectors);
+       return false;
+     }
+ 
+   if (orig_expected_tclass == SAME_TYPE_CLASS
+       && orig_expected_bits == SAME_SIZE)
+     {
+       if (actual_type.type == first_type.type)
+ 	return true;
+ 
+       if (first_type.num_vectors > 1)
+ 	error_at (location, "passing %qT to argument %d of %qE, but"
+ 		  " argument %d was a tuple of %qT",
+ 		  get_vector_type (actual_type), argno + 1, fndecl,
+ 		  first_argno + 1, get_vector_type (first_type.type));
+       else
+ 	error_at (location, "passing %qT to argument %d of %qE, but"
+ 		  " argument %d had type %qT",
+ 		  get_vector_type (actual_type), argno + 1, fndecl,
+ 		  first_argno + 1, get_vector_type (first_type));
+       return false;
+     }
+ 
    /* Exit now if we got the right type.  */
!   auto &actual_type_suffix = type_suffixes[actual_type.type];
!   bool tclass_ok_p = (actual_type_suffix.tclass == expected_tclass);
!   bool size_ok_p = (actual_type_suffix.element_bits == expected_bits);
    if (tclass_ok_p && size_ok_p)
      return true;
  
*************** require_derived_vector_type (unsigned in
*** 1602,1611 ****
       size requirement, without having to refer to FIRST_TYPE.  */
    if (!size_ok_p && expected_bits == orig_expected_bits)
      {
!       error_at (location, "passing %qT to argument %d of %qE, which"
! 		" expects a vector of %d-bit elements",
! 		get_vector_type (actual_type), argno + 1, fndecl,
! 		expected_bits);
        return false;
      }
  
--- 2465,2480 ----
       size requirement, without having to refer to FIRST_TYPE.  */
    if (!size_ok_p && expected_bits == orig_expected_bits)
      {
!       if (expected_num_vectors == 1)
! 	error_at (location, "passing %qT to argument %d of %qE, which"
! 		  " expects a vector of %d-bit elements",
! 		  get_vector_type (actual_type), argno + 1, fndecl,
! 		  expected_bits);
!       else
! 	error_at (location, "passing %qT to argument %d of %qE, which"
! 		  " expects vectors of %d-bit elements",
! 		  get_vector_type (actual_type), argno + 1, fndecl,
! 		  expected_bits);
        return false;
      }
  
*************** require_derived_vector_type (unsigned in
*** 1614,1629 ****
       translation work for other type classes.  */
    if (!tclass_ok_p && orig_expected_tclass == TYPE_signed)
      {
!       error_at (location, "passing %qT to argument %d of %qE, which"
! 		" expects a vector of signed integers",
! 		get_vector_type (actual_type), argno + 1, fndecl);
        return false;
      }
    if (!tclass_ok_p && orig_expected_tclass == TYPE_unsigned)
      {
!       error_at (location, "passing %qT to argument %d of %qE, which"
! 		" expects a vector of unsigned integers",
! 		get_vector_type (actual_type), argno + 1, fndecl);
        return false;
      }
  
--- 2483,2512 ----
       translation work for other type classes.  */
    if (!tclass_ok_p && orig_expected_tclass == TYPE_signed)
      {
!       if (expected_num_vectors == 1)
! 	error_at (location, "passing %qT to argument %d of %qE, which"
! 		  " expects a vector of signed integers",
! 		  get_vector_type (actual_type), argno + 1, fndecl);
!       else
! 	/* Translation note: could also be written "expects a tuple of
! 	   signed integer vectors".  */
! 	error_at (location, "passing %qT to argument %d of %qE, which"
! 		  " expects vectors of signed integers",
! 		  get_vector_type (actual_type), argno + 1, fndecl);
        return false;
      }
    if (!tclass_ok_p && orig_expected_tclass == TYPE_unsigned)
      {
!       if (expected_num_vectors == 1)
! 	error_at (location, "passing %qT to argument %d of %qE, which"
! 		  " expects a vector of unsigned integers",
! 		  get_vector_type (actual_type), argno + 1, fndecl);
!       else
! 	/* Translation note: could also be written "expects a tuple of
! 	   unsigned integer vectors".  */
! 	error_at (location, "passing %qT to argument %d of %qE, which"
! 		  " expects vectors of unsigned integers",
! 		  get_vector_type (actual_type), argno + 1, fndecl);
        return false;
      }
  
*************** require_derived_vector_type (unsigned in
*** 1634,1640 ****
  
    /* If the arguments have consistent type classes, but a link between
       the sizes has been broken, try to describe the error in those terms.  */
!   if (both_vectors_p && tclass_ok_p && orig_expected_bits == SAME_SIZE)
      {
        if (argno < first_argno)
  	{
--- 2517,2523 ----
  
    /* If the arguments have consistent type classes, but a link between
       the sizes has been broken, try to describe the error in those terms.  */
!   if (tclass_ok_p && orig_expected_bits == SAME_SIZE)
      {
        if (argno < first_argno)
  	{
*************** require_derived_vector_type (unsigned in
*** 1651,1661 ****
  
    /* Likewise in reverse: look for cases in which the sizes are consistent
       but a link between the type classes has been broken.  */
!   if (both_vectors_p
!       && size_ok_p
        && orig_expected_tclass == SAME_TYPE_CLASS
!       && type_suffixes[first_type].integer_p
!       && type_suffixes[actual_type].integer_p)
      {
        if (argno < first_argno)
  	{
--- 2534,2543 ----
  
    /* Likewise in reverse: look for cases in which the sizes are consistent
       but a link between the type classes has been broken.  */
!   if (size_ok_p
        && orig_expected_tclass == SAME_TYPE_CLASS
!       && first_type_suffix.integer_p
!       && actual_type_suffix.integer_p)
      {
        if (argno < first_argno)
  	{
*************** function_resolver::require_scalar_type (
*** 1712,1720 ****
  {
    if (!scalar_argument_p (argno))
      {
        error_at (location, "passing %qT to argument %d of %qE, which"
! 		" expects %qs", get_argument_type (argno), argno + 1,
! 		fndecl, expected);
        return false;
      }
    return true;
--- 2594,2621 ----
  {
    if (!scalar_argument_p (argno))
      {
+       if (expected)
+ 	error_at (location, "passing %qT to argument %d of %qE, which"
+ 		  " expects %qs", get_argument_type (argno), argno + 1,
+ 		  fndecl, expected);
+       return false;
+     }
+   return true;
+ }
+ 
+ /* Require argument ARGNO to be a nonscalar type, given that it has already
+    passed require_vector_or_scalar_type.  Return true if it is, otherwise
+    report an error.  This is used when two sets of instructions share the
+    same overloaded function and one accepts scalars while the other
+    doesn't.  */
+ bool
+ function_resolver::require_nonscalar_type (unsigned int argno)
+ {
+   if (scalar_argument_p (argno))
+     {
        error_at (location, "passing %qT to argument %d of %qE, which"
! 		" does not accept scalars for this combination of arguments",
! 		get_argument_type (argno), argno + 1, fndecl);
        return false;
      }
    return true;
*************** bool
*** 2141,2154 ****
  function_resolver::check_gp_argument (unsigned int nops,
  				      unsigned int &i, unsigned int &nargs)
  {
    i = 0;
    if (pred != PRED_none)
      {
        /* Unary merge operations should use resolve_unary instead.  */
!       gcc_assert (nops != 1 || pred != PRED_m);
        nargs = nops + 1;
        if (!check_num_arguments (nargs)
! 	  || !require_vector_type (i, VECTOR_TYPE_svbool_t))
  	return false;
        i += 1;
      }
--- 3042,3056 ----
  function_resolver::check_gp_argument (unsigned int nops,
  				      unsigned int &i, unsigned int &nargs)
  {
+   gcc_assert (pred != PRED_za_m);
    i = 0;
    if (pred != PRED_none)
      {
        /* Unary merge operations should use resolve_unary instead.  */
!       gcc_assert (!shape->has_merge_argument_p (*this, nops));
        nargs = nops + 1;
        if (!check_num_arguments (nargs)
! 	  || !require_vector_type (i, gp_type_index ()))
  	return false;
        i += 1;
      }
*************** finish_opt_n_resolution (unsigned int ar
*** 2218,2223 ****
--- 3120,3177 ----
    return resolve_to (mode_suffix_id, inferred_type);
  }
  
+ /* Finish resolving a function whose final argument can be a tuple
+    or a vector, with the function having an implicit "_single" suffix
+    in the latter case.  This "_single" form might only exist for certain
+    type suffixes.
+ 
+    ARGNO is the index of the final argument.  The inferred type suffix
+    was obtained from argument FIRST_ARGNO, which has type FIRST_TYPE.
+    EXPECTED_TCLASS gives the expected type class for the final tuple
+    or vector.
+ 
+    Return the function decl of the resolved function on success,
+    otherwise report a suitable error and return error_mark_node.  */
+ tree function_resolver::
+ finish_opt_single_resolution (unsigned int argno, unsigned int first_argno,
+ 			      sve_type first_type,
+ 			      type_class_index expected_tclass)
+ {
+   sve_type new_type = infer_sve_type (argno);
+   if (!new_type)
+     return error_mark_node;
+ 
+   /* If the type is a tuple, require it to match the group suffix.  */
+   unsigned int num_vectors = vectors_per_tuple ();
+   if (num_vectors != 1
+       && new_type.num_vectors != 1
+       && new_type.num_vectors != num_vectors)
+     {
+       report_incorrect_num_vectors (argno, new_type, num_vectors);
+       return error_mark_node;
+     }
+ 
+   auto expected_num_vectors = (new_type.num_vectors == 1 ? 1 : 0);
+   if (!require_derived_vector_type (argno, first_argno, first_type,
+ 				    expected_tclass, SAME_SIZE,
+ 				    expected_num_vectors))
+     return error_mark_node;
+ 
+   if (new_type.num_vectors == 1 && first_type.num_vectors > 1)
+     {
+       if (tree single_form = lookup_form (MODE_single, first_type))
+ 	return single_form;
+ 
+       if (resolve_to (mode_suffix_id, first_type) != error_mark_node)
+ 	error_at (location, "passing %qT to argument %d of %qE, but its"
+ 		  " %qT form does not accept single vectors",
+ 		  get_vector_type (new_type), argno + 1, fndecl,
+ 		  get_vector_type (first_type));
+       return error_mark_node;
+     }
+   return resolve_to (mode_suffix_id, first_type);
+ }
+ 
  /* Resolve a (possibly predicated) unary function.  If the function uses
     merge predication or if TREAT_AS_MERGE_P is true, there is an extra
     vector argument before the governing predicate that specifies the
*************** function_resolver::resolve_unary (type_c
*** 2248,2254 ****
  	     so we can use normal left-to-right resolution.  */
  	  if ((type = infer_vector_type (0)) == NUM_TYPE_SUFFIXES
  	      || !require_vector_type (1, VECTOR_TYPE_svbool_t)
! 	      || !require_matching_vector_type (2, type))
  	    return error_mark_node;
  	}
        else
--- 3202,3208 ----
  	     so we can use normal left-to-right resolution.  */
  	  if ((type = infer_vector_type (0)) == NUM_TYPE_SUFFIXES
  	      || !require_vector_type (1, VECTOR_TYPE_svbool_t)
! 	      || !require_matching_vector_type (2, 0, type))
  	    return error_mark_node;
  	}
        else
*************** function_resolver::resolve_uniform (unsi
*** 2293,2301 ****
        || (type = infer_vector_type (i)) == NUM_TYPE_SUFFIXES)
      return error_mark_node;
  
!   i += 1;
    for (; i < nargs - nimm; ++i)
!     if (!require_matching_vector_type (i, type))
        return error_mark_node;
  
    for (; i < nargs; ++i)
--- 3247,3255 ----
        || (type = infer_vector_type (i)) == NUM_TYPE_SUFFIXES)
      return error_mark_node;
  
!   unsigned int first_arg = i++;
    for (; i < nargs - nimm; ++i)
!     if (!require_matching_vector_type (i, first_arg, type))
        return error_mark_node;
  
    for (; i < nargs; ++i)
*************** function_resolver::resolve_uniform_opt_n
*** 2324,2330 ****
  
    unsigned int first_arg = i++;
    for (; i < nargs - 1; ++i)
!     if (!require_matching_vector_type (i, type))
        return error_mark_node;
  
    return finish_opt_n_resolution (i, first_arg, type);
--- 3278,3284 ----
  
    unsigned int first_arg = i++;
    for (; i < nargs - 1; ++i)
!     if (!require_matching_vector_type (i, first_arg, type))
        return error_mark_node;
  
    return finish_opt_n_resolution (i, first_arg, type);
*************** function_checker::function_checker (loca
*** 2346,2354 ****
  				    unsigned int nargs, tree *args)
    : function_call_info (location, instance, fndecl),
      m_fntype (fntype), m_nargs (nargs), m_args (args),
!     /* We don't have to worry about unary _m operations here, since they
!        never have arguments that need checking.  */
!     m_base_arg (pred != PRED_none ? 1 : 0)
  {
  }
  
--- 3300,3306 ----
  				    unsigned int nargs, tree *args)
    : function_call_info (location, instance, fndecl),
      m_fntype (fntype), m_nargs (nargs), m_args (args),
!     m_base_arg (pred != PRED_none && pred != PRED_za_m ? 1 : 0)
  {
  }
  
*************** function_checker::require_immediate_eith
*** 2404,2410 ****
  
    if (actual != value0 && actual != value1)
      {
!       report_neither_nor (location, fndecl, argno, actual, 90, 270);
        return false;
      }
  
--- 3356,3362 ----
  
    if (actual != value0 && actual != value1)
      {
!       report_neither_nor (location, fndecl, argno, actual, value0, value1);
        return false;
      }
  
*************** function_checker::require_immediate_enum
*** 2440,2459 ****
    return false;
  }
  
! /* Check that argument REL_ARGNO is suitable for indexing argument
!    REL_ARGNO - 1, in groups of GROUP_SIZE elements.  REL_ARGNO counts
!    from the end of the predication arguments.  */
  bool
  function_checker::require_immediate_lane_index (unsigned int rel_argno,
  						unsigned int group_size)
  {
    unsigned int argno = m_base_arg + rel_argno;
    if (!argument_exists_p (argno))
      return true;
  
!   /* Get the type of the previous argument.  tree_argument_type wants a
!      1-based number, whereas ARGNO is 0-based.  */
!   machine_mode mode = TYPE_MODE (type_argument_type (m_fntype, argno));
    gcc_assert (VECTOR_MODE_P (mode));
    unsigned int nlanes = 128 / (group_size * GET_MODE_UNIT_BITSIZE (mode));
    return require_immediate_range (rel_argno, 0, nlanes - 1);
--- 3392,3417 ----
    return false;
  }
  
! /* The intrinsic conceptually divides vector argument REL_VEC_ARGNO into
!    groups of GROUP_SIZE elements.  Return true if argument REL_ARGNO is
!    a suitable constant index for selecting one of these groups.  The
!    selection happens within a 128-bit quadword, rather than the whole vector.
! 
!    REL_ARGNO and REL_VEC_ARGNO count from the end of the predication
!    arguments.  */
  bool
  function_checker::require_immediate_lane_index (unsigned int rel_argno,
+ 						unsigned int rel_vec_argno,
  						unsigned int group_size)
  {
    unsigned int argno = m_base_arg + rel_argno;
    if (!argument_exists_p (argno))
      return true;
  
!   /* Get the type of the vector argument.  tree_argument_type wants a
!      1-based number, whereas VEC_ARGNO is 0-based.  */
!   unsigned int vec_argno = m_base_arg + rel_vec_argno;
!   machine_mode mode = TYPE_MODE (type_argument_type (m_fntype, vec_argno + 1));
    gcc_assert (VECTOR_MODE_P (mode));
    unsigned int nlanes = 128 / (group_size * GET_MODE_UNIT_BITSIZE (mode));
    return require_immediate_range (rel_argno, 0, nlanes - 1);
*************** function_checker::check ()
*** 2541,2546 ****
--- 3499,3535 ----
    return shape->check (*this);
  }
  
+ /* Return true if V is a vector constant and if, for every in-range integer I,
+    element STEP*I is equal to element 0.  */
+ bool
+ vector_cst_all_same (tree v, unsigned int step)
+ {
+   if (TREE_CODE (v) != VECTOR_CST)
+     return false;
+ 
+   /* VECTOR_CST_NELTS_PER_PATTERN applies to any multiple of
+      VECTOR_CST_NPATTERNS.  */
+   unsigned int lcm = least_common_multiple (step, VECTOR_CST_NPATTERNS (v));
+   unsigned int nelts = lcm * VECTOR_CST_NELTS_PER_PATTERN (v);
+   tree first_el = VECTOR_CST_ENCODED_ELT (v, 0);
+   for (unsigned int i = 0; i < nelts; i += step)
+     if (!operand_equal_p (VECTOR_CST_ELT (v, i), first_el, 0))
+       return false;
+ 
+   return true;
+ }
+ 
+ /* Return true if V is a constant predicate that acts as a ptrue when
+    predicating STEP-byte elements.  */
+ bool
+ is_ptrue (tree v, unsigned int step)
+ {
+   return (TREE_CODE (v) == VECTOR_CST
+ 	  && TYPE_MODE (TREE_TYPE (v)) == VNx16BImode
+ 	  && integer_nonzerop (VECTOR_CST_ENCODED_ELT (v, 0))
+ 	  && vector_cst_all_same (v, step));
+ }
+ 
  gimple_folder::gimple_folder (const function_instance &instance, tree fndecl,
  			      gimple_stmt_iterator *gsi_in, gcall *call_in)
    : function_call_info (gimple_location (call_in), instance, fndecl),
*************** gimple_folder::redirect_call (const func
*** 2615,2620 ****
--- 3604,3640 ----
    return call;
  }
  
+ /* Redirect _z and _m calls to _x functions if the predicate is all-true.
+    This allows us to use unpredicated instructions, where available.  */
+ gimple *
+ gimple_folder::redirect_pred_x ()
+ {
+   if (pred != PRED_z && pred != PRED_m)
+     return nullptr;
+ 
+   if (gimple_call_num_args (call) < 2)
+     return nullptr;
+ 
+   tree lhs_type = TREE_TYPE (TREE_TYPE (fndecl));
+   tree arg0_type = type_argument_type (TREE_TYPE (fndecl), 1);
+   tree arg1_type = type_argument_type (TREE_TYPE (fndecl), 2);
+   if (!VECTOR_TYPE_P (lhs_type)
+       || !VECTOR_TYPE_P (arg0_type)
+       || !VECTOR_TYPE_P (arg1_type))
+     return nullptr;
+ 
+   auto lhs_step = element_precision (lhs_type);
+   auto rhs_step = element_precision (arg1_type);
+   auto step = MAX (lhs_step, rhs_step);
+   if (!multiple_p (step, BITS_PER_UNIT)
+       || !is_ptrue (gimple_call_arg (call, 0), step / BITS_PER_UNIT))
+     return nullptr;
+ 
+   function_instance instance (*this);
+   instance.pred = PRED_x;
+   return redirect_call (instance);
+ }
+ 
  /* Fold the call to constant VAL.  */
  gimple *
  gimple_folder::fold_to_cstu (poly_uint64 val)
*************** gimple_folder::fold ()
*** 2687,2692 ****
--- 3707,3716 ----
    if (!lhs && TREE_TYPE (gimple_call_fntype (call)) != void_type_node)
      return NULL;
  
+   /* First try some simplifications that are common to many functions.  */
+   if (auto *call = redirect_pred_x ())
+     return call;
+ 
    return base->fold (*this);
  }
  
*************** function_expander::function_expander (co
*** 2702,2708 ****
  insn_code
  function_expander::direct_optab_handler (optab op, unsigned int suffix_i)
  {
!   return ::direct_optab_handler (op, vector_mode (suffix_i));
  }
  
  /* Choose between signed and unsigned direct optabs SIGNED_OP and
--- 3726,3732 ----
  insn_code
  function_expander::direct_optab_handler (optab op, unsigned int suffix_i)
  {
!   return ::direct_optab_handler (op, tuple_mode (suffix_i));
  }
  
  /* Choose between signed and unsigned direct optabs SIGNED_OP and
*************** function_expander::convert_to_pmode (rtx
*** 2741,2761 ****
  }
  
  /* Return the base address for a contiguous load or store function.
!    MEM_MODE is the mode of the addressed memory.  */
  rtx
! function_expander::get_contiguous_base (machine_mode mem_mode)
  {
!   rtx base = convert_to_pmode (args[1]);
    if (mode_suffix_id == MODE_vnum)
      {
!       /* Use the size of the memory mode for extending loads and truncating
! 	 stores.  Use the size of a full vector for non-extending loads
! 	 and non-truncating stores (including svld[234] and svst[234]).  */
!       poly_int64 size = ordered_min (GET_MODE_SIZE (mem_mode),
! 				     BYTES_PER_SVE_VECTOR);
!       rtx offset = gen_int_mode (size, Pmode);
!       offset = simplify_gen_binary (MULT, Pmode, args[2], offset);
!       base = simplify_gen_binary (PLUS, Pmode, base, offset);
      }
    return base;
  }
--- 3765,3815 ----
  }
  
  /* Return the base address for a contiguous load or store function.
!    MEM_MODE is the mode of the addressed memory, BASE_ARGNO is
!    the index of the base argument, and VNUM_ARGNO is the index of
!    the vnum offset argument (if any).  VL_ISA_MODE is AARCH64_FL_SM_ON
!    if the vnum argument is a factor of the SME vector length, 0 if it
!    is a factor of the current prevailing vector length.  */
  rtx
! function_expander::get_contiguous_base (machine_mode mem_mode,
! 					unsigned int base_argno,
! 					unsigned int vnum_argno,
! 					aarch64_feature_flags vl_isa_mode)
  {
!   rtx base = convert_to_pmode (args[base_argno]);
    if (mode_suffix_id == MODE_vnum)
      {
!       rtx vnum = args[vnum_argno];
!       if (vnum != const0_rtx)
! 	{
! 	  /* Use the size of the memory mode for extending loads and truncating
! 	     stores.  Use the size of a full vector for non-extending loads
! 	     and non-truncating stores (including svld[234] and svst[234]).  */
! 	  poly_int64 size = ordered_min (GET_MODE_SIZE (mem_mode),
! 					 BYTES_PER_SVE_VECTOR);
! 	  rtx offset;
! 	  if ((vl_isa_mode & AARCH64_FL_SM_ON)
! 	      && !TARGET_STREAMING
! 	      && !size.is_constant ())
! 	    {
! 	      gcc_assert (known_eq (size, BYTES_PER_SVE_VECTOR));
! 	      if (CONST_INT_P (vnum) && IN_RANGE (INTVAL (vnum), -32, 31))
! 		offset = aarch64_sme_vq_immediate (Pmode, INTVAL (vnum) * 16,
! 						   AARCH64_ISA_MODE);
! 	      else
! 		{
! 		  offset = aarch64_sme_vq_immediate (Pmode, 16,
! 						     AARCH64_ISA_MODE);
! 		  offset = simplify_gen_binary (MULT, Pmode, vnum, offset);
! 		}
! 	    }
! 	  else
! 	    {
! 	      offset = gen_int_mode (size, Pmode);
! 	      offset = simplify_gen_binary (MULT, Pmode, vnum, offset);
! 	    }
! 	  base = simplify_gen_binary (PLUS, Pmode, base, offset);
! 	}
      }
    return base;
  }
*************** function_expander::get_fallback_value (m
*** 2783,2789 ****
  
    gcc_assert (pred == PRED_m || pred == PRED_x);
    if (merge_argno == DEFAULT_MERGE_ARGNO)
!     merge_argno = nops == 1 && pred == PRED_m ? 0 : 1;
  
    if (merge_argno == 0)
      return args[argno++];
--- 3837,3843 ----
  
    gcc_assert (pred == PRED_m || pred == PRED_x);
    if (merge_argno == DEFAULT_MERGE_ARGNO)
!     merge_argno = shape->has_merge_argument_p (*this, nops) ? 0 : 1;
  
    if (merge_argno == 0)
      return args[argno++];
*************** function_expander::get_fallback_value (m
*** 2796,2802 ****
  rtx
  function_expander::get_reg_target ()
  {
!   machine_mode target_mode = TYPE_MODE (TREE_TYPE (TREE_TYPE (fndecl)));
    if (!possible_target || GET_MODE (possible_target) != target_mode)
      possible_target = gen_reg_rtx (target_mode);
    return possible_target;
--- 3850,3856 ----
  rtx
  function_expander::get_reg_target ()
  {
!   machine_mode target_mode = result_mode ();
    if (!possible_target || GET_MODE (possible_target) != target_mode)
      possible_target = gen_reg_rtx (target_mode);
    return possible_target;
*************** function_expander::add_input_operand (in
*** 2843,2853 ****
    machine_mode mode = operand.mode;
    if (mode == VOIDmode)
      {
!       /* The only allowable use of VOIDmode is the wildcard
! 	 aarch64_any_register_operand, which is used to avoid
! 	 combinatorial explosion in the reinterpret patterns.  */
!       gcc_assert (operand.predicate == aarch64_any_register_operand);
!       mode = GET_MODE (x);
      }
    else if (!VECTOR_MODE_P (GET_MODE (x)) && VECTOR_MODE_P (mode))
      x = expand_vector_broadcast (mode, x);
--- 3897,3914 ----
    machine_mode mode = operand.mode;
    if (mode == VOIDmode)
      {
!       /* The only allowable uses of VOIDmode are:
! 
! 	 - the wildcard aarch64_any_register_operand, which is used
! 	   to avoid combinatorial explosion in the reinterpret patterns
! 
! 	 - pmode_register_operand, which always has mode Pmode.  */
!       if (operand.predicate == aarch64_any_register_operand)
! 	mode = GET_MODE (x);
!       else if (operand.predicate == pmode_register_operand)
! 	mode = Pmode;
!       else
! 	gcc_unreachable ();
      }
    else if (!VECTOR_MODE_P (GET_MODE (x)) && VECTOR_MODE_P (mode))
      x = expand_vector_broadcast (mode, x);
*************** function_expander::add_input_operand (in
*** 2862,2868 ****
  
  /* Add an integer operand with value X to the instruction.  */
  void
! function_expander::add_integer_operand (HOST_WIDE_INT x)
  {
    m_ops.safe_grow (m_ops.length () + 1, true);
    create_integer_operand (&m_ops.last (), x);
--- 3923,3929 ----
  
  /* Add an integer operand with value X to the instruction.  */
  void
! function_expander::add_integer_operand (poly_int64 x)
  {
    m_ops.safe_grow (m_ops.length () + 1, true);
    create_integer_operand (&m_ops.last (), x);
*************** function_expander::use_pred_x_insn (insn
*** 3100,3106 ****
  	has_float_operand_p = true;
      }
  
!   if (has_float_operand_p)
      {
        /* Add a flag that indicates whether unpredicated instructions
  	 are allowed.  */
--- 4161,4168 ----
  	has_float_operand_p = true;
      }
  
!   if (has_float_operand_p
!       && insn_data[icode].n_operands > (int) nops + 2)
      {
        /* Add a flag that indicates whether unpredicated instructions
  	 are allowed.  */
*************** function_expander::use_contiguous_store_
*** 3233,3239 ****
  
     - CODE_FOR_SINT for signed integers
     - CODE_FOR_UINT for unsigned integers
!    - UNSPEC_FOR_FP for floating-point values
  
     and where <code_optab> is like <optab>, but uses CODE_FOR_SINT instead
     of UNSPEC_FOR_FP for floating-point values.
--- 4295,4302 ----
  
     - CODE_FOR_SINT for signed integers
     - CODE_FOR_UINT for unsigned integers
!    - UNSPEC_FOR_COND_FP for predicated floating-point
!    - UNSPEC_FOR_UNCOND_FP for unpredicated floating-point
  
     and where <code_optab> is like <optab>, but uses CODE_FOR_SINT instead
     of UNSPEC_FOR_FP for floating-point values.
*************** function_expander::use_contiguous_store_
*** 3243,3255 ****
  rtx
  function_expander::map_to_rtx_codes (rtx_code code_for_sint,
  				     rtx_code code_for_uint,
! 				     int unspec_for_fp,
  				     unsigned int merge_argno)
  {
!   machine_mode mode = vector_mode (0);
    rtx_code code = (type_suffix (0).unsigned_p ? code_for_uint : code_for_sint);
    insn_code icode;
  
    /* Handle predicate logic operations, which always use _z predication.  */
    if (type_suffix (0).tclass == TYPE_bool)
      {
--- 4306,4329 ----
  rtx
  function_expander::map_to_rtx_codes (rtx_code code_for_sint,
  				     rtx_code code_for_uint,
! 				     int unspec_for_cond_fp,
! 				     int unspec_for_uncond_fp,
  				     unsigned int merge_argno)
  {
!   machine_mode mode = tuple_mode (0);
    rtx_code code = (type_suffix (0).unsigned_p ? code_for_uint : code_for_sint);
    insn_code icode;
  
+   if (mode_suffix_id == MODE_single)
+     {
+       gcc_assert (pred == PRED_none);
+       if (type_suffix (0).integer_p)
+ 	icode = code_for_aarch64_sve_single (code, mode);
+       else
+ 	icode = code_for_aarch64_sve_single (unspec_for_uncond_fp, mode);
+       return use_exact_insn (icode);
+     }
+ 
    /* Handle predicate logic operations, which always use _z predication.  */
    if (type_suffix (0).tclass == TYPE_bool)
      {
*************** function_expander::map_to_rtx_codes (rtx
*** 3264,3270 ****
        if (type_suffix (0).integer_p)
  	icode = maybe_code_for_aarch64_pred (code, mode);
        else
! 	icode = maybe_code_for_aarch64_pred (unspec_for_fp, mode);
        if (icode != CODE_FOR_nothing)
  	return use_pred_x_insn (icode);
      }
--- 4338,4344 ----
        if (type_suffix (0).integer_p)
  	icode = maybe_code_for_aarch64_pred (code, mode);
        else
! 	icode = maybe_code_for_aarch64_pred (unspec_for_cond_fp, mode);
        if (icode != CODE_FOR_nothing)
  	return use_pred_x_insn (icode);
      }
*************** function_expander::map_to_rtx_codes (rtx
*** 3273,3279 ****
       Floating-point operations conventionally use the signed rtx code.  */
    if (pred == PRED_none || pred == PRED_x)
      {
!       icode = direct_optab_handler (code_to_optab (code), 0);
        if (icode == CODE_FOR_nothing)
  	icode = code_for_aarch64_sve (code, mode);
        return use_unpred_insn (icode);
--- 4347,4356 ----
       Floating-point operations conventionally use the signed rtx code.  */
    if (pred == PRED_none || pred == PRED_x)
      {
!       if (type_suffix (0).float_p && unspec_for_uncond_fp >= 0)
! 	icode = maybe_code_for_aarch64_sve (unspec_for_uncond_fp, mode);
!       else
! 	icode = direct_optab_handler (code_to_optab (code), 0);
        if (icode == CODE_FOR_nothing)
  	icode = code_for_aarch64_sve (code, mode);
        return use_unpred_insn (icode);
*************** function_expander::map_to_rtx_codes (rtx
*** 3283,3289 ****
    if (type_suffix (0).integer_p)
      icode = code_for_cond (code, mode);
    else
!     icode = code_for_cond (unspec_for_fp, mode);
    return use_cond_insn (icode, merge_argno);
  }
  
--- 4360,4366 ----
    if (type_suffix (0).integer_p)
      icode = code_for_cond (code, mode);
    else
!     icode = code_for_cond (unspec_for_cond_fp, mode);
    return use_cond_insn (icode, merge_argno);
  }
  
*************** rtx
*** 3309,3319 ****
  function_expander::map_to_unspecs (int unspec_for_sint, int unspec_for_uint,
  				   int unspec_for_fp, unsigned int merge_argno)
  {
!   machine_mode mode = vector_mode (0);
    int unspec = (!type_suffix (0).integer_p ? unspec_for_fp
  		: type_suffix (0).unsigned_p ? unspec_for_uint
  		: unspec_for_sint);
  
    if (pred == PRED_x)
      {
        insn_code icode = maybe_code_for_aarch64_pred (unspec, mode);
--- 4386,4402 ----
  function_expander::map_to_unspecs (int unspec_for_sint, int unspec_for_uint,
  				   int unspec_for_fp, unsigned int merge_argno)
  {
!   machine_mode mode = tuple_mode (0);
    int unspec = (!type_suffix (0).integer_p ? unspec_for_fp
  		: type_suffix (0).unsigned_p ? unspec_for_uint
  		: unspec_for_sint);
  
+   if (mode_suffix_id == MODE_single)
+     {
+       gcc_assert (pred == PRED_none);
+       return use_exact_insn (code_for_aarch64_sve_single (unspec, mode));
+     }
+ 
    if (pred == PRED_x)
      {
        insn_code icode = maybe_code_for_aarch64_pred (unspec, mode);
*************** function_expander::expand ()
*** 3344,3349 ****
--- 4427,4475 ----
    return base->expand (*this);
  }
  
+ /* Return a structure type that contains a single field of type FIELD_TYPE.
+    The field is called __val, but that's an internal detail rather than
+    an exposed part of the API.  */
+ static tree
+ wrap_type_in_struct (tree field_type)
+ {
+   tree field = build_decl (input_location, FIELD_DECL,
+ 			   get_identifier ("__val"), field_type);
+   tree struct_type = lang_hooks.types.make_type (RECORD_TYPE);
+   DECL_FIELD_CONTEXT (field) = struct_type;
+   TYPE_FIELDS (struct_type) = field;
+   make_type_sizeless (struct_type);
+   layout_type (struct_type);
+   return struct_type;
+ }
+ 
+ /* Register a built-in TYPE_DECL called NAME for TYPE.  This is used/needed
+    when TYPE is a structure type.  */
+ static void
+ register_type_decl (tree type, const char *name)
+ {
+   tree decl = build_decl (input_location, TYPE_DECL,
+ 			  get_identifier (name), type);
+   TYPE_NAME (type) = decl;
+   TYPE_STUB_DECL (type) = decl;
+   lang_hooks.decls.pushdecl (decl);
+   /* ??? Undo the effect of set_underlying_type for C.  The C frontend
+      doesn't recognize DECL as a built-in because (as intended) the decl has
+      a real location instead of BUILTINS_LOCATION.  The frontend therefore
+      treats the decl like a normal C "typedef struct foo foo;", expecting
+      the type for tag "struct foo" to have a dummy unnamed TYPE_DECL instead
+      of the named one we attached above.  It then sets DECL_ORIGINAL_TYPE
+      on the supposedly unnamed decl, creating a circularity that upsets
+      dwarf2out.
+ 
+      We don't want to follow the normal C model and create "struct foo"
+      tags for tuple types since (a) the types are supposed to be opaque
+      and (b) they couldn't be defined as a real struct anyway.  Treating
+      the TYPE_DECLs as "typedef struct foo foo;" without creating
+      "struct foo" would lead to confusing error messages.  */
+   DECL_ORIGINAL_TYPE (decl) = NULL_TREE;
+ }
+ 
  /* Register the built-in SVE ABI types, such as __SVBool_t.  */
  static void
  register_builtin_types ()
*************** register_builtin_types ()
*** 3354,3401 ****
  
    for (unsigned int i = 0; i < NUM_VECTOR_TYPES; ++i)
      {
-       tree eltype = scalar_types[i];
        tree vectype;
        unsigned int num_zr = 0, num_pr = 0;
!       if (eltype == boolean_type_node)
  	{
! 	  vectype = build_truth_vector_type_for_mode (BYTES_PER_SVE_VECTOR,
! 						      VNx16BImode);
! 	  gcc_assert (TYPE_MODE (vectype) == VNx16BImode
! 		      && TYPE_MODE (vectype) == TYPE_MODE_RAW (vectype)
! 		      && TYPE_ALIGN (vectype) == 16
! 		      && known_eq (wi::to_poly_offset (TYPE_SIZE (vectype)),
! 				   BYTES_PER_SVE_VECTOR));
  	  num_pr = 1;
  	}
        else
  	{
! 	  scalar_mode elmode = SCALAR_TYPE_MODE (eltype);
! 	  unsigned int elbytes = GET_MODE_SIZE (elmode);
! 	  poly_uint64 nunits = exact_div (BYTES_PER_SVE_VECTOR, elbytes);
! 	  machine_mode mode
! 	    = aarch64_sve_data_mode (elmode, nunits).require ();
! 	  vectype = build_vector_type_for_mode (eltype, mode);
! 	  gcc_assert (VECTOR_MODE_P (TYPE_MODE (vectype))
! 		      && TYPE_MODE (vectype) == mode
! 		      && TYPE_MODE_RAW (vectype) == mode
! 		      && TYPE_ALIGN (vectype) == 128
! 		      && known_eq (wi::to_poly_offset (TYPE_SIZE (vectype)),
! 				   BITS_PER_SVE_VECTOR));
! 	  num_zr = 1;
  	}
-       vectype = build_distinct_type_copy (vectype);
-       gcc_assert (vectype == TYPE_MAIN_VARIANT (vectype));
-       SET_TYPE_STRUCTURAL_EQUALITY (vectype);
-       TYPE_ARTIFICIAL (vectype) = 1;
-       TYPE_INDIVISIBLE_P (vectype) = 1;
        add_sve_type_attribute (vectype, num_zr, num_pr,
  			      vector_types[i].mangled_name,
  			      vector_types[i].acle_name);
-       make_type_sizeless (vectype);
        abi_vector_types[i] = vectype;
!       lang_hooks.types.register_builtin_type (vectype,
! 					      vector_types[i].abi_name);
      }
  }
  
--- 4480,4542 ----
  
    for (unsigned int i = 0; i < NUM_VECTOR_TYPES; ++i)
      {
        tree vectype;
        unsigned int num_zr = 0, num_pr = 0;
!       if (vector_type_index (i) == VECTOR_TYPE_svcount_t)
  	{
! 	  vectype = abi_vector_types[VECTOR_TYPE_svbool_t];
! 	  vectype = wrap_type_in_struct (vectype);
  	  num_pr = 1;
  	}
        else
  	{
! 	  tree eltype = scalar_types[i];
! 	  if (eltype == boolean_type_node)
! 	    {
! 	      vectype = build_truth_vector_type_for_mode (BYTES_PER_SVE_VECTOR,
! 							  VNx16BImode);
! 	      num_pr = 1;
! 	    }
! 	  else
! 	    {
! 	      scalar_mode elmode = SCALAR_TYPE_MODE (eltype);
! 	      unsigned int elbytes = GET_MODE_SIZE (elmode);
! 	      poly_uint64 nunits = exact_div (BYTES_PER_SVE_VECTOR, elbytes);
! 	      machine_mode mode
! 		= aarch64_sve_data_mode (elmode, nunits).require ();
! 	      vectype = build_vector_type_for_mode (eltype, mode);
! 	      auto size = wi::to_poly_offset (TYPE_SIZE (vectype));
! 	      gcc_assert (VECTOR_MODE_P (TYPE_MODE (vectype))
! 			  && TYPE_MODE (vectype) == mode
! 			  && TYPE_MODE_RAW (vectype) == mode
! 			  && TYPE_ALIGN (vectype) == 128
! 			  && known_eq (size, BITS_PER_SVE_VECTOR));
! 	      num_zr = 1;
! 	    }
! 	  vectype = build_distinct_type_copy (vectype);
! 	  gcc_assert (vectype == TYPE_MAIN_VARIANT (vectype));
! 	  SET_TYPE_STRUCTURAL_EQUALITY (vectype);
! 	  TYPE_ARTIFICIAL (vectype) = 1;
! 	  TYPE_INDIVISIBLE_P (vectype) = 1;
! 	  make_type_sizeless (vectype);
! 	}
!       if (num_pr)
! 	{
! 	  auto size = wi::to_poly_offset (TYPE_SIZE (vectype));
! 	  gcc_assert (TYPE_MODE (vectype) == VNx16BImode
! 		      && TYPE_MODE (vectype) == TYPE_MODE_RAW (vectype)
! 		      && TYPE_ALIGN (vectype) == 16
! 		      && known_eq (size, BYTES_PER_SVE_VECTOR));
  	}
        add_sve_type_attribute (vectype, num_zr, num_pr,
  			      vector_types[i].mangled_name,
  			      vector_types[i].acle_name);
        abi_vector_types[i] = vectype;
!       if (TREE_CODE (vectype) == RECORD_TYPE)
! 	register_type_decl (vectype, vector_types[i].abi_name);
!       else
! 	lang_hooks.types.register_builtin_type (vectype,
! 						vector_types[i].abi_name);
      }
  }
  
*************** init_builtins ()
*** 3407,3413 ****
    sve_switcher sve;
    register_builtin_types ();
    if (in_lto_p)
!     handle_arm_sve_h ();
  }
  
  /* Register vector type TYPE under its arm_sve.h name.  */
--- 4548,4558 ----
    sve_switcher sve;
    register_builtin_types ();
    if (in_lto_p)
!     {
!       handle_arm_sve_h (false);
!       handle_arm_sme_h (false);
!       handle_arm_neon_sve_bridge_h (false);
!     }
  }
  
  /* Register vector type TYPE under its arm_sve.h name.  */
*************** register_vector_type (vector_type_index
*** 3436,3442 ****
  static void
  register_tuple_type (unsigned int num_vectors, vector_type_index type)
  {
!   tree tuple_type = lang_hooks.types.make_type (RECORD_TYPE);
  
    /* Work out the structure name.  */
    char buffer[sizeof ("svbfloat16x4_t")];
--- 4581,4588 ----
  static void
  register_tuple_type (unsigned int num_vectors, vector_type_index type)
  {
!   tree vector_type = acle_vector_types[0][type];
!   bool is_pred = GET_MODE_CLASS (TYPE_MODE (vector_type)) == MODE_VECTOR_BOOL;
  
    /* Work out the structure name.  */
    char buffer[sizeof ("svbfloat16x4_t")];
*************** register_tuple_type (unsigned int num_ve
*** 3458,3500 ****
  
       Using arrays simplifies the handling of svget and svset for variable
       arguments.  */
-   tree vector_type = acle_vector_types[0][type];
    tree array_type = build_array_type_nelts (vector_type, num_vectors);
    gcc_assert (VECTOR_MODE_P (TYPE_MODE (array_type))
  	      && TYPE_MODE_RAW (array_type) == TYPE_MODE (array_type)
! 	      && TYPE_ALIGN (array_type) == 128);
  
!   tree field = build_decl (input_location, FIELD_DECL,
! 			   get_identifier ("__val"), array_type);
!   DECL_FIELD_CONTEXT (field) = tuple_type;
!   TYPE_FIELDS (tuple_type) = field;
!   add_sve_type_attribute (tuple_type, num_vectors, 0, NULL, buffer);
!   make_type_sizeless (tuple_type);
!   layout_type (tuple_type);
    gcc_assert (VECTOR_MODE_P (TYPE_MODE (tuple_type))
  	      && TYPE_MODE_RAW (tuple_type) == TYPE_MODE (tuple_type)
! 	      && TYPE_ALIGN (tuple_type) == 128);
! 
!   tree decl = build_decl (input_location, TYPE_DECL,
! 			  get_identifier (buffer), tuple_type);
!   TYPE_NAME (tuple_type) = decl;
!   TYPE_STUB_DECL (tuple_type) = decl;
!   lang_hooks.decls.pushdecl (decl);
!   /* ??? Undo the effect of set_underlying_type for C.  The C frontend
!      doesn't recognize DECL as a built-in because (as intended) the decl has
!      a real location instead of BUILTINS_LOCATION.  The frontend therefore
!      treats the decl like a normal C "typedef struct foo foo;", expecting
!      the type for tag "struct foo" to have a dummy unnamed TYPE_DECL instead
!      of the named one we attached above.  It then sets DECL_ORIGINAL_TYPE
!      on the supposedly unnamed decl, creating a circularity that upsets
!      dwarf2out.
  
!      We don't want to follow the normal C model and create "struct foo"
!      tags for tuple types since (a) the types are supposed to be opaque
!      and (b) they couldn't be defined as a real struct anyway.  Treating
!      the TYPE_DECLs as "typedef struct foo foo;" without creating
!      "struct foo" would lead to confusing error messages.  */
!   DECL_ORIGINAL_TYPE (decl) = NULL_TREE;
  
    acle_vector_types[num_vectors - 1][type] = tuple_type;
  }
--- 4604,4624 ----
  
       Using arrays simplifies the handling of svget and svset for variable
       arguments.  */
    tree array_type = build_array_type_nelts (vector_type, num_vectors);
    gcc_assert (VECTOR_MODE_P (TYPE_MODE (array_type))
  	      && TYPE_MODE_RAW (array_type) == TYPE_MODE (array_type)
! 	      && TYPE_ALIGN (array_type) == (is_pred ? 16 : 128));
  
!   tree tuple_type = wrap_type_in_struct (array_type);
!   if (is_pred)
!     add_sve_type_attribute (tuple_type, 0, num_vectors, NULL, buffer);
!   else
!     add_sve_type_attribute (tuple_type, num_vectors, 0, NULL, buffer);
    gcc_assert (VECTOR_MODE_P (TYPE_MODE (tuple_type))
  	      && TYPE_MODE_RAW (tuple_type) == TYPE_MODE (tuple_type)
! 	      && TYPE_ALIGN (tuple_type) == TYPE_ALIGN (array_type));
  
!   register_type_decl (tuple_type, buffer);
  
    acle_vector_types[num_vectors - 1][type] = tuple_type;
  }
*************** register_svprfop ()
*** 3529,3535 ****
  
  /* Implement #pragma GCC aarch64 "arm_sve.h".  */
  void
! handle_arm_sve_h ()
  {
    if (function_table)
      {
--- 4653,4659 ----
  
  /* Implement #pragma GCC aarch64 "arm_sve.h".  */
  void
! handle_arm_sve_h (bool function_nulls_p)
  {
    if (function_table)
      {
*************** handle_arm_sve_h ()
*** 3544,3552 ****
      {
        vector_type_index type = vector_type_index (type_i);
        register_vector_type (type);
!       if (type != VECTOR_TYPE_svbool_t)
  	for (unsigned int count = 2; count <= MAX_TUPLE_SIZE; ++count)
! 	  register_tuple_type (count, type);
      }
  
    /* Define the enums.  */
--- 4668,4677 ----
      {
        vector_type_index type = vector_type_index (type_i);
        register_vector_type (type);
!       if (type != VECTOR_TYPE_svcount_t)
  	for (unsigned int count = 2; count <= MAX_TUPLE_SIZE; ++count)
! 	  if (type != VECTOR_TYPE_svbool_t || count == 2)
! 	    register_tuple_type (count, type);
      }
  
    /* Define the enums.  */
*************** handle_arm_sve_h ()
*** 3555,3565 ****
  
    /* Define the functions.  */
    function_table = new hash_table<registered_function_hasher> (1023);
!   function_builder builder;
    for (unsigned int i = 0; i < ARRAY_SIZE (function_groups); ++i)
      builder.register_function_group (function_groups[i]);
  }
  
  /* Return the function decl with SVE function subcode CODE, or error_mark_node
     if no such function exists.  */
  tree
--- 4680,4703 ----
  
    /* Define the functions.  */
    function_table = new hash_table<registered_function_hasher> (1023);
!   function_builder builder (arm_sve_handle, function_nulls_p);
    for (unsigned int i = 0; i < ARRAY_SIZE (function_groups); ++i)
      builder.register_function_group (function_groups[i]);
  }
  
+ /* Implement #pragma GCC aarch64 "arm_neon_sve_bridge.h".  */
+ void
+ handle_arm_neon_sve_bridge_h (bool function_nulls_p)
+ {
+   if (initial_indexes[arm_sme_handle] == 0)
+     handle_arm_sme_h (true);
+ 
+   /* Define the functions.  */
+   function_builder builder (arm_neon_sve_handle, function_nulls_p);
+   for (unsigned int i = 0; i < ARRAY_SIZE (neon_sve_function_groups); ++i)
+     builder.register_function_group (neon_sve_function_groups[i]);
+ }
+ 
  /* Return the function decl with SVE function subcode CODE, or error_mark_node
     if no such function exists.  */
  tree
*************** builtin_decl (unsigned int code, bool)
*** 3570,3575 ****
--- 4708,4731 ----
    return (*registered_functions)[code]->decl;
  }
  
+ /* Implement #pragma GCC aarch64 "arm_sme.h".  */
+ void
+ handle_arm_sme_h (bool function_nulls_p)
+ {
+   if (!function_table)
+     {
+       error ("%qs defined without first defining %qs",
+ 	     "arm_sme.h", "arm_sve.h");
+       return;
+     }
+ 
+   sme_switcher sme;
+ 
+   function_builder builder (arm_sme_handle, function_nulls_p);
+   for (unsigned int i = 0; i < ARRAY_SIZE (sme_function_groups); ++i)
+     builder.register_function_group (sme_function_groups[i]);
+ }
+ 
  /* If we're implementing manual overloading, check whether the SVE
     function with subcode CODE is overloaded, and if so attempt to
     determine the corresponding non-overloaded function.  The call
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins.def gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Builtin lists for AArch64 SVE
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Builtin lists for AArch64 SVE
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 29,39 ****
  #define DEF_SVE_TYPE_SUFFIX(A, B, C, D, E)
  #endif
  
  #ifndef DEF_SVE_FUNCTION
! #define DEF_SVE_FUNCTION(A, B, C, D)
  #endif
  
  DEF_SVE_MODE (n, none, none, none)
  DEF_SVE_MODE (index, none, none, elements)
  DEF_SVE_MODE (offset, none, none, bytes)
  DEF_SVE_MODE (s32index, none, svint32_t, elements)
--- 29,58 ----
  #define DEF_SVE_TYPE_SUFFIX(A, B, C, D, E)
  #endif
  
+ #ifndef DEF_SME_ZA_SUFFIX
+ #define DEF_SME_ZA_SUFFIX(A, B, C)
+ #endif
+ 
+ #ifndef DEF_SVE_GROUP_SUFFIX
+ #define DEF_SVE_GROUP_SUFFIX(A, B, C)
+ #endif
+ 
+ #ifndef DEF_SVE_FUNCTION_GS
+ #define DEF_SVE_FUNCTION_GS(A, B, C, D, E)
+ #endif
+ 
+ #ifndef DEF_SVE_NEON_TYPE_SUFFIX
+ #define DEF_SVE_NEON_TYPE_SUFFIX(A, B, C, D, E, F, G) \
+   DEF_SVE_TYPE_SUFFIX(A, B, C, D, E)
+ #endif
+ 
  #ifndef DEF_SVE_FUNCTION
! #define DEF_SVE_FUNCTION(NAME, SHAPE, TYPES, PREDS) \
!   DEF_SVE_FUNCTION_GS (NAME, SHAPE, TYPES, none, PREDS)
  #endif
  
  DEF_SVE_MODE (n, none, none, none)
+ DEF_SVE_MODE (single, none, none, none)
  DEF_SVE_MODE (index, none, none, elements)
  DEF_SVE_MODE (offset, none, none, bytes)
  DEF_SVE_MODE (s32index, none, svint32_t, elements)
*************** DEF_SVE_MODE (u64offset, none, svuint64_
*** 61,66 ****
--- 80,86 ----
  DEF_SVE_MODE (vnum, none, none, vectors)
  
  DEF_SVE_TYPE (svbool_t, 10, __SVBool_t, boolean_type_node)
+ DEF_SVE_TYPE (svcount_t, 11, __SVCount_t, boolean_type_node)
  DEF_SVE_TYPE (svbfloat16_t, 14, __SVBfloat16_t, bfloat16_type_node)
  DEF_SVE_TYPE (svfloat16_t, 13, __SVFloat16_t, aarch64_fp16_type_node)
  DEF_SVE_TYPE (svfloat32_t, 13, __SVFloat32_t, float_type_node)
*************** DEF_SVE_TYPE_SUFFIX (b8, svbool_t, bool,
*** 82,104 ****
  DEF_SVE_TYPE_SUFFIX (b16, svbool_t, bool, 16, VNx8BImode)
  DEF_SVE_TYPE_SUFFIX (b32, svbool_t, bool, 32, VNx4BImode)
  DEF_SVE_TYPE_SUFFIX (b64, svbool_t, bool, 64, VNx2BImode)
! DEF_SVE_TYPE_SUFFIX (bf16, svbfloat16_t, bfloat, 16, VNx8BFmode)
! DEF_SVE_TYPE_SUFFIX (f16, svfloat16_t, float, 16, VNx8HFmode)
! DEF_SVE_TYPE_SUFFIX (f32, svfloat32_t, float, 32, VNx4SFmode)
! DEF_SVE_TYPE_SUFFIX (f64, svfloat64_t, float, 64, VNx2DFmode)
! DEF_SVE_TYPE_SUFFIX (s8, svint8_t, signed, 8, VNx16QImode)
! DEF_SVE_TYPE_SUFFIX (s16, svint16_t, signed, 16, VNx8HImode)
! DEF_SVE_TYPE_SUFFIX (s32, svint32_t, signed, 32, VNx4SImode)
! DEF_SVE_TYPE_SUFFIX (s64, svint64_t, signed, 64, VNx2DImode)
! DEF_SVE_TYPE_SUFFIX (u8, svuint8_t, unsigned, 8, VNx16QImode)
! DEF_SVE_TYPE_SUFFIX (u16, svuint16_t, unsigned, 16, VNx8HImode)
! DEF_SVE_TYPE_SUFFIX (u32, svuint32_t, unsigned, 32, VNx4SImode)
! DEF_SVE_TYPE_SUFFIX (u64, svuint64_t, unsigned, 64, VNx2DImode)
  
  #include "aarch64-sve-builtins-base.def"
  #include "aarch64-sve-builtins-sve2.def"
  
  #undef DEF_SVE_FUNCTION
  #undef DEF_SVE_TYPE_SUFFIX
  #undef DEF_SVE_TYPE
  #undef DEF_SVE_MODE
--- 102,169 ----
  DEF_SVE_TYPE_SUFFIX (b16, svbool_t, bool, 16, VNx8BImode)
  DEF_SVE_TYPE_SUFFIX (b32, svbool_t, bool, 32, VNx4BImode)
  DEF_SVE_TYPE_SUFFIX (b64, svbool_t, bool, 64, VNx2BImode)
! DEF_SVE_TYPE_SUFFIX (c, svcount_t, count, 8, VNx16BImode)
! DEF_SVE_TYPE_SUFFIX (c8, svcount_t, count, 8, VNx16BImode)
! DEF_SVE_TYPE_SUFFIX (c16, svcount_t, count, 16, VNx16BImode)
! DEF_SVE_TYPE_SUFFIX (c32, svcount_t, count, 32, VNx16BImode)
! DEF_SVE_TYPE_SUFFIX (c64, svcount_t, count, 64, VNx16BImode)
! DEF_SVE_NEON_TYPE_SUFFIX (bf16, svbfloat16_t, bfloat, 16, VNx8BFmode,
! 			  Bfloat16x4_t, Bfloat16x8_t)
! DEF_SVE_NEON_TYPE_SUFFIX (f16, svfloat16_t, float, 16, VNx8HFmode,
! 			  Float16x4_t, Float16x8_t)
! DEF_SVE_NEON_TYPE_SUFFIX (f32, svfloat32_t, float, 32, VNx4SFmode,
! 			  Float32x2_t, Float32x4_t)
! DEF_SVE_NEON_TYPE_SUFFIX (f64, svfloat64_t, float, 64, VNx2DFmode,
! 			  Float64x1_t, Float64x2_t)
! DEF_SVE_NEON_TYPE_SUFFIX (s8, svint8_t, signed, 8, VNx16QImode,
! 			  Int8x8_t, Int8x16_t)
! DEF_SVE_NEON_TYPE_SUFFIX (s16, svint16_t, signed, 16, VNx8HImode,
! 			  Int16x4_t, Int16x8_t)
! DEF_SVE_NEON_TYPE_SUFFIX (s32, svint32_t, signed, 32, VNx4SImode,
! 			  Int32x2_t, Int32x4_t)
! DEF_SVE_NEON_TYPE_SUFFIX (s64, svint64_t, signed, 64, VNx2DImode,
! 			  Int64x1_t, Int64x2_t)
! DEF_SVE_NEON_TYPE_SUFFIX (u8, svuint8_t, unsigned, 8, VNx16QImode,
! 			  Uint8x8_t, Uint8x16_t)
! DEF_SVE_NEON_TYPE_SUFFIX (u16, svuint16_t, unsigned, 16, VNx8HImode,
! 			  Uint16x4_t, Uint16x8_t)
! DEF_SVE_NEON_TYPE_SUFFIX (u32, svuint32_t, unsigned, 32, VNx4SImode,
! 			  Uint32x2_t, Uint32x4_t)
! DEF_SVE_NEON_TYPE_SUFFIX (u64, svuint64_t, unsigned, 64, VNx2DImode,
! 			  Uint64x1_t, Uint64x2_t)
! 
! /* Associate _za with bytes.  This is needed for svldr_vnum_za and
!    svstr_vnum_za, whose ZA offset can be in the range [0, 15], as for za8.  */
! DEF_SME_ZA_SUFFIX (za, 8, VNx16QImode)
! 
! DEF_SME_ZA_SUFFIX (za8, 8, VNx16QImode)
! DEF_SME_ZA_SUFFIX (za16, 16, VNx8HImode)
! DEF_SME_ZA_SUFFIX (za32, 32, VNx4SImode)
! DEF_SME_ZA_SUFFIX (za64, 64, VNx2DImode)
! DEF_SME_ZA_SUFFIX (za128, 128, VNx1TImode)
! 
! DEF_SVE_GROUP_SUFFIX (x2, 0, 2)
! DEF_SVE_GROUP_SUFFIX (x3, 0, 3)
! DEF_SVE_GROUP_SUFFIX (x4, 0, 4)
! DEF_SVE_GROUP_SUFFIX (vg1x2, 1, 2)
! DEF_SVE_GROUP_SUFFIX (vg1x4, 1, 4)
! DEF_SVE_GROUP_SUFFIX (vg2, 2, 2)
! DEF_SVE_GROUP_SUFFIX (vg2x1, 2, 1)
! DEF_SVE_GROUP_SUFFIX (vg2x2, 2, 2)
! DEF_SVE_GROUP_SUFFIX (vg2x4, 2, 4)
! DEF_SVE_GROUP_SUFFIX (vg4, 4, 4)
! DEF_SVE_GROUP_SUFFIX (vg4x1, 4, 1)
! DEF_SVE_GROUP_SUFFIX (vg4x2, 4, 2)
! DEF_SVE_GROUP_SUFFIX (vg4x4, 4, 4)
  
  #include "aarch64-sve-builtins-base.def"
  #include "aarch64-sve-builtins-sve2.def"
  
  #undef DEF_SVE_FUNCTION
+ #undef DEF_SVE_FUNCTION_GS
+ #undef DEF_SVE_GROUP_SUFFIX
+ #undef DEF_SME_ZA_SUFFIX
+ #undef DEF_SVE_NEON_TYPE_SUFFIX
  #undef DEF_SVE_TYPE_SUFFIX
  #undef DEF_SVE_TYPE
  #undef DEF_SVE_MODE
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins.h gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve-builtins.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve-builtins.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for AArch64 SVE
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for AArch64 SVE
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 20,25 ****
--- 20,27 ----
  #ifndef GCC_AARCH64_SVE_BUILTINS_H
  #define GCC_AARCH64_SVE_BUILTINS_H
  
+ #include "aarch64-builtins.h"
+ 
  /* The full name of an SVE ACLE function is the concatenation of:
  
     - the base name ("svadd", etc.)
*************** const unsigned int CP_PREFETCH_MEMORY =
*** 97,102 ****
--- 99,108 ----
  const unsigned int CP_WRITE_MEMORY = 1U << 4;
  const unsigned int CP_READ_FFR = 1U << 5;
  const unsigned int CP_WRITE_FFR = 1U << 6;
+ const unsigned int CP_READ_ZA = 1U << 7;
+ const unsigned int CP_WRITE_ZA = 1U << 8;
+ const unsigned int CP_READ_ZT0 = 1U << 9;
+ const unsigned int CP_WRITE_ZT0 = 1U << 10;
  
  /* Enumerates the SVE predicate and (data) vector types, together called
     "vector types" for brevity.  */
*************** enum units_index
*** 117,122 ****
--- 123,137 ----
    UNITS_vectors
  };
  
+ /* Enumerates the pragma handlers.  */
+ enum handle_pragma_index
+ {
+   arm_sve_handle,
+   arm_sme_handle,
+   arm_neon_sve_handle,
+   NUM_PRAGMA_HANDLERS
+ };
+ 
  /* Describes the various uses of a governing predicate.  */
  enum predication_index
  {
*************** enum predication_index
*** 142,156 ****
    /* Zero predication: set inactive lanes of the vector result to zero.  */
    PRED_z,
  
    NUM_PREDS
  };
  
  /* Classifies element types, based on type suffixes with the bit count
!    removed.  */
  enum type_class_index
  {
    TYPE_bool,
    TYPE_bfloat,
    TYPE_float,
    TYPE_signed,
    TYPE_unsigned,
--- 157,177 ----
    /* Zero predication: set inactive lanes of the vector result to zero.  */
    PRED_z,
  
+   /* Merging predication for SME's ZA: merge into slices of the array
+      instead of overwriting the whole slices.  */
+   PRED_za_m,
+ 
    NUM_PREDS
  };
  
  /* Classifies element types, based on type suffixes with the bit count
!    removed.  "count" isn't really an element type, but we pretend it is
!    for consistency.  */
  enum type_class_index
  {
    TYPE_bool,
    TYPE_bfloat,
+   TYPE_count,
    TYPE_float,
    TYPE_signed,
    TYPE_unsigned,
*************** enum type_suffix_index
*** 176,185 ****
--- 197,219 ----
  {
  #define DEF_SVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE) \
    TYPE_SUFFIX_ ## NAME,
+ #define DEF_SME_ZA_SUFFIX(NAME, BITS, MODE) \
+   TYPE_SUFFIX_ ## NAME,
  #include "aarch64-sve-builtins.def"
    NUM_TYPE_SUFFIXES
  };
  
+ /* Enumerates the possible group suffixes.  Each suffix combines two
+    optional pieces of information: the vector group size in a ZA index,
+    and the number of vectors in the largest tuple argument.  */
+ enum group_suffix_index
+ {
+ #define DEF_SVE_GROUP_SUFFIX(NAME, VG, VECTORS_PER_TUPLE) GROUP_##NAME,
+ #include "aarch64-sve-builtins.def"
+   GROUP_none,
+   NUM_GROUP_SUFFIXES
+ };
+ 
  /* Combines two type suffixes.  */
  typedef enum type_suffix_index type_suffix_pair[2];
  
*************** struct mode_suffix_info
*** 206,211 ****
--- 240,253 ----
    units_index displacement_units;
  };
  
+ #define ENTRY(E, M, Q, G) E,
+ enum aarch64_simd_type
+ {
+ #include "aarch64-simd-builtin-types.def"
+   ARM_NEON_H_TYPES_LAST
+ };
+ #undef ENTRY
+ 
  /* Static information about a type suffix.  */
  struct type_suffix_info
  {
*************** struct type_suffix_info
*** 229,242 ****
    unsigned int unsigned_p : 1;
    /* True if the suffix is for a floating-point type.  */
    unsigned int float_p : 1;
    /* True if the suffix is for a boolean type.  */
    unsigned int bool_p : 1;
!   unsigned int spare : 12;
  
    /* The associated vector or predicate mode.  */
    machine_mode vector_mode : 16;
  };
  
  /* Static information about a set of functions.  */
  struct function_group_info
  {
--- 271,342 ----
    unsigned int unsigned_p : 1;
    /* True if the suffix is for a floating-point type.  */
    unsigned int float_p : 1;
+   /* True if the suffix is for a vector type (integer or float).  */
+   unsigned int vector_p : 1;
    /* True if the suffix is for a boolean type.  */
    unsigned int bool_p : 1;
!   /* True if the suffix is for SME's ZA.  */
!   unsigned int za_p : 1;
!   unsigned int spare : 10;
  
    /* The associated vector or predicate mode.  */
    machine_mode vector_mode : 16;
+ 
+   /* The corresponding 64-bit and 128-bit arm_neon.h types, or
+      ARM_NEON_H_TYPES_LAST if none.  */
+   aarch64_simd_type neon64_type;
+   aarch64_simd_type neon128_type;
+ };
+ 
+ /* Static information about a group suffix.  */
+ struct group_suffix_info
+ {
+   /* The suffix string itself.  */
+   const char *string;
+ 
+   /* If the suffix describes a vector group in a ZA index, this is the
+      size of that group, otherwise it is zero.  */
+   unsigned int vg;
+ 
+   /* The number of vectors in the largest (or only) tuple argument,
+      or 1 if the suffix does not convey this information.  */
+   unsigned int vectors_per_tuple;
+ };
+ 
+ /* Represents an SVE vector, predicate, tuple of vectors, or tuple of
+    predicates.  There is also a representation of "no type"/"invalid type".  */
+ struct sve_type
+ {
+   sve_type () = default;
+   sve_type (type_suffix_index type) : type (type), num_vectors (1) {}
+   sve_type (type_suffix_index type, unsigned int num_vectors)
+     : type (type), num_vectors (num_vectors) {}
+ 
+   /* Return true if the type is valid.  */
+   explicit operator bool () const { return type != NUM_TYPE_SUFFIXES; }
+ 
+   bool operator== (const sve_type &) const;
+   bool operator!= (const sve_type &x) const { return !operator== (x); }
+ 
+   /* This is one of:
+ 
+      - TYPE_SUFFIX_b for svbool_t-based types
+      - TYPE_SUFFIX_c for svcount_t-based types
+      - the type suffix of a data element for SVE data vectors and tuples
+      - NUM_TYPE_SUFFIXES for invalid types.  */
+   type_suffix_index type = NUM_TYPE_SUFFIXES;
+ 
+   /* If the type is a tuple, this is the number of vectors in the tuple,
+      otherwise it is 1.  */
+   unsigned int num_vectors = 1;
  };
  
+ inline bool
+ sve_type::operator== (const sve_type &other) const
+ {
+   return type == other.type && num_vectors == other.num_vectors;
+ }
+ 
  /* Static information about a set of functions.  */
  struct function_group_info
  {
*************** struct function_group_info
*** 251,264 ****
       shapes.  */
    const function_shape *const *shape;
  
!   /* A list of the available type suffixes, and of the available predication
!      types.  The function supports every combination of the two.
  
!      The list of type suffixes is terminated by two NUM_TYPE_SUFFIXES
!      while the list of predication types is terminated by NUM_PREDS.
!      The list of type suffixes is lexicographically ordered based
!      on the index value.  */
    const type_suffix_pair *types;
    const predication_index *preds;
  
    /* The architecture extensions that the functions require, as a set of
--- 351,366 ----
       shapes.  */
    const function_shape *const *shape;
  
!   /* A list of the available type suffixes, group suffixes, and predication
!      types.  The function supports every combination of the three.
  
!      The list of type suffixes is terminated by two NUM_TYPE_SUFFIXES.
!      It is lexicographically ordered based on the index value.
! 
!      The list of group suffixes is terminated by NUM_GROUP_SUFFIXES
!      and the list of predication types is terminated by NUM_PREDS.  */
    const type_suffix_pair *types;
+   const group_suffix_index *groups;
    const predication_index *preds;
  
    /* The architecture extensions that the functions require, as a set of
*************** class GTY((user)) function_instance
*** 273,279 ****
  public:
    function_instance (const char *, const function_base *,
  		     const function_shape *, mode_suffix_index,
! 		     const type_suffix_pair &, predication_index);
  
    bool operator== (const function_instance &) const;
    bool operator!= (const function_instance &) const;
--- 375,382 ----
  public:
    function_instance (const char *, const function_base *,
  		     const function_shape *, mode_suffix_index,
! 		     const type_suffix_pair &, group_suffix_index,
! 		     predication_index);
  
    bool operator== (const function_instance &) const;
    bool operator!= (const function_instance &) const;
*************** public:
*** 284,289 ****
--- 387,395 ----
    bool modifies_global_state_p () const;
    bool could_trap_p () const;
  
+   vector_type_index gp_type_index () const;
+   tree gp_type () const;
+ 
    unsigned int vectors_per_tuple () const;
    tree memory_scalar_type () const;
    machine_mode memory_vector_mode () const;
*************** public:
*** 293,314 ****
    tree displacement_vector_type () const;
    units_index displacement_units () const;
  
    const type_suffix_info &type_suffix (unsigned int) const;
    tree scalar_type (unsigned int) const;
    tree vector_type (unsigned int) const;
    tree tuple_type (unsigned int) const;
!   unsigned int elements_per_vq (unsigned int i) const;
    machine_mode vector_mode (unsigned int) const;
    machine_mode gp_mode (unsigned int) const;
  
!   /* The properties of the function.  (The explicit "enum"s are required
!      for gengtype.)  */
    const char *base_name;
    const function_base *base;
    const function_shape *shape;
!   enum mode_suffix_index mode_suffix_id;
    type_suffix_pair type_suffix_ids;
!   enum predication_index pred;
  };
  
  class registered_function;
--- 399,425 ----
    tree displacement_vector_type () const;
    units_index displacement_units () const;
  
+   unsigned int num_za_tiles () const;
+ 
    const type_suffix_info &type_suffix (unsigned int) const;
+   const group_suffix_info &group_suffix () const;
+ 
    tree scalar_type (unsigned int) const;
    tree vector_type (unsigned int) const;
    tree tuple_type (unsigned int) const;
!   unsigned int elements_per_vq (unsigned int) const;
    machine_mode vector_mode (unsigned int) const;
+   machine_mode tuple_mode (unsigned int) const;
    machine_mode gp_mode (unsigned int) const;
  
!   /* The properties of the function.  */
    const char *base_name;
    const function_base *base;
    const function_shape *shape;
!   mode_suffix_index mode_suffix_id;
    type_suffix_pair type_suffix_ids;
!   group_suffix_index group_suffix_id;
!   predication_index pred;
  };
  
  class registered_function;
*************** class registered_function;
*** 317,323 ****
  class function_builder
  {
  public:
!   function_builder ();
    ~function_builder ();
  
    void add_unique_function (const function_instance &, tree,
--- 428,434 ----
  class function_builder
  {
  public:
!   function_builder (handle_pragma_index, bool);
    ~function_builder ();
  
    void add_unique_function (const function_instance &, tree,
*************** private:
*** 335,341 ****
  
    char *get_name (const function_instance &, bool);
  
!   tree get_attributes (const function_instance &);
  
    registered_function &add_function (const function_instance &,
  				     const char *, tree, tree,
--- 446,452 ----
  
    char *get_name (const function_instance &, bool);
  
!   tree get_attributes (const function_instance &, aarch64_feature_flags);
  
    registered_function &add_function (const function_instance &,
  				     const char *, tree, tree,
*************** private:
*** 352,360 ****
    /* Used for building up function names.  */
    obstack m_string_obstack;
  
!   /* Maps all overloaded function names that we've registered so far
!      to their associated function_instances.  */
!   hash_map<nofree_string_hash, registered_function *> m_overload_names;
  };
  
  /* A base class for handling calls to built-in functions.  */
--- 463,473 ----
    /* Used for building up function names.  */
    obstack m_string_obstack;
  
!   /* Used to store the index for the current function.  */
!   unsigned int m_function_index;
! 
!   /* Stores the mode of the current pragma handler.  */
!   bool m_function_nulls;
  };
  
  /* A base class for handling calls to built-in functions.  */
*************** public:
*** 382,419 ****
    function_resolver (location_t, const function_instance &, tree,
  		     vec<tree, va_gc> &);
  
-   tree get_vector_type (type_suffix_index);
    const char *get_scalar_type_name (type_suffix_index);
    tree get_argument_type (unsigned int);
    bool scalar_argument_p (unsigned int);
  
!   tree report_no_such_form (type_suffix_index);
    tree lookup_form (mode_suffix_index,
  		    type_suffix_index = NUM_TYPE_SUFFIXES,
! 		    type_suffix_index = NUM_TYPE_SUFFIXES);
    tree resolve_to (mode_suffix_index,
  		   type_suffix_index = NUM_TYPE_SUFFIXES,
! 		   type_suffix_index = NUM_TYPE_SUFFIXES);
  
    type_suffix_index infer_integer_scalar_type (unsigned int);
    type_suffix_index infer_pointer_type (unsigned int, bool = false);
!   type_suffix_index infer_vector_or_tuple_type (unsigned int, unsigned int);
    type_suffix_index infer_vector_type (unsigned int);
    type_suffix_index infer_integer_vector_type (unsigned int);
    type_suffix_index infer_unsigned_vector_type (unsigned int);
    type_suffix_index infer_sd_vector_type (unsigned int);
!   type_suffix_index infer_tuple_type (unsigned int);
  
    bool require_vector_or_scalar_type (unsigned int);
  
    bool require_vector_type (unsigned int, vector_type_index);
!   bool require_matching_vector_type (unsigned int, type_suffix_index);
!   bool require_derived_vector_type (unsigned int, unsigned int,
! 				    type_suffix_index,
  				    type_class_index = SAME_TYPE_CLASS,
! 				    unsigned int = SAME_SIZE);
  
    bool require_scalar_type (unsigned int, const char *);
    bool require_pointer_type (unsigned int);
    bool require_matching_integer_scalar_type (unsigned int, unsigned int,
  					     type_suffix_index);
--- 495,546 ----
    function_resolver (location_t, const function_instance &, tree,
  		     vec<tree, va_gc> &);
  
    const char *get_scalar_type_name (type_suffix_index);
    tree get_argument_type (unsigned int);
    bool scalar_argument_p (unsigned int);
  
!   void report_incorrect_num_vectors (unsigned int, sve_type, unsigned int);
!   void report_mismatched_num_vectors (unsigned int, sve_type,
! 				      unsigned int, sve_type);
! 
!   tree report_no_such_form (sve_type);
    tree lookup_form (mode_suffix_index,
  		    type_suffix_index = NUM_TYPE_SUFFIXES,
! 		    type_suffix_index = NUM_TYPE_SUFFIXES,
! 		    group_suffix_index = GROUP_none);
!   tree lookup_form (mode_suffix_index, sve_type);
    tree resolve_to (mode_suffix_index,
  		   type_suffix_index = NUM_TYPE_SUFFIXES,
! 		   type_suffix_index = NUM_TYPE_SUFFIXES,
! 		   group_suffix_index = GROUP_none);
!   tree resolve_to (mode_suffix_index, sve_type);
!   tree resolve_conversion (mode_suffix_index, sve_type);
  
+   vector_type_index infer_predicate_type (unsigned int);
    type_suffix_index infer_integer_scalar_type (unsigned int);
+   type_suffix_index infer_64bit_scalar_integer_pair (unsigned int);
    type_suffix_index infer_pointer_type (unsigned int, bool = false);
!   sve_type infer_sve_type (unsigned int);
!   sve_type infer_vector_or_tuple_type (unsigned int, unsigned int);
    type_suffix_index infer_vector_type (unsigned int);
    type_suffix_index infer_integer_vector_type (unsigned int);
+   type_suffix_index infer_neon128_vector_type (unsigned int);
    type_suffix_index infer_unsigned_vector_type (unsigned int);
    type_suffix_index infer_sd_vector_type (unsigned int);
!   sve_type infer_tuple_type (unsigned int);
  
    bool require_vector_or_scalar_type (unsigned int);
  
+   bool require_matching_predicate_type (vector_type_index, sve_type);
    bool require_vector_type (unsigned int, vector_type_index);
!   bool require_matching_vector_type (unsigned int, unsigned int, sve_type);
!   bool require_derived_vector_type (unsigned int, unsigned int, sve_type,
  				    type_class_index = SAME_TYPE_CLASS,
! 				    unsigned int = SAME_SIZE,
! 				    unsigned int = 1);
  
    bool require_scalar_type (unsigned int, const char *);
+   bool require_nonscalar_type (unsigned int);
    bool require_pointer_type (unsigned int);
    bool require_matching_integer_scalar_type (unsigned int, unsigned int,
  					     type_suffix_index);
*************** public:
*** 442,447 ****
--- 569,576 ----
  				type_class_index = SAME_TYPE_CLASS,
  				unsigned int = SAME_SIZE,
  				type_suffix_index = NUM_TYPE_SUFFIXES);
+   tree finish_opt_single_resolution (unsigned int, unsigned int, sve_type,
+ 				     type_class_index = SAME_TYPE_CLASS);
  
    tree resolve ();
  
*************** public:
*** 463,469 ****
    bool require_immediate_either_or (unsigned int, HOST_WIDE_INT,
  				    HOST_WIDE_INT);
    bool require_immediate_enum (unsigned int, tree);
!   bool require_immediate_lane_index (unsigned int, unsigned int = 1);
    bool require_immediate_one_of (unsigned int, HOST_WIDE_INT, HOST_WIDE_INT,
  				 HOST_WIDE_INT, HOST_WIDE_INT);
    bool require_immediate_range (unsigned int, HOST_WIDE_INT, HOST_WIDE_INT);
--- 592,599 ----
    bool require_immediate_either_or (unsigned int, HOST_WIDE_INT,
  				    HOST_WIDE_INT);
    bool require_immediate_enum (unsigned int, tree);
!   bool require_immediate_lane_index (unsigned int, unsigned int,
! 				     unsigned int = 1);
    bool require_immediate_one_of (unsigned int, HOST_WIDE_INT, HOST_WIDE_INT,
  				 HOST_WIDE_INT, HOST_WIDE_INT);
    bool require_immediate_range (unsigned int, HOST_WIDE_INT, HOST_WIDE_INT);
*************** public:
*** 500,505 ****
--- 630,637 ----
    tree load_store_cookie (tree);
  
    gimple *redirect_call (const function_instance &);
+   gimple *redirect_pred_x ();
+ 
    gimple *fold_to_cstu (poly_uint64);
    gimple *fold_to_pfalse ();
    gimple *fold_to_ptrue ();
*************** public:
*** 528,537 ****
    insn_code direct_optab_handler_for_sign (optab, optab, unsigned int = 0,
  					   machine_mode = E_VOIDmode);
  
    bool overlaps_input_p (rtx);
  
    rtx convert_to_pmode (rtx);
!   rtx get_contiguous_base (machine_mode);
    rtx get_fallback_value (machine_mode, unsigned int,
  			  unsigned int, unsigned int &);
    rtx get_reg_target ();
--- 660,672 ----
    insn_code direct_optab_handler_for_sign (optab, optab, unsigned int = 0,
  					   machine_mode = E_VOIDmode);
  
+   machine_mode result_mode () const;
+ 
    bool overlaps_input_p (rtx);
  
    rtx convert_to_pmode (rtx);
!   rtx get_contiguous_base (machine_mode, unsigned int = 1, unsigned int = 2,
! 			   aarch64_feature_flags = 0);
    rtx get_fallback_value (machine_mode, unsigned int,
  			  unsigned int, unsigned int &);
    rtx get_reg_target ();
*************** public:
*** 539,545 ****
  
    void add_output_operand (insn_code);
    void add_input_operand (insn_code, rtx);
!   void add_integer_operand (HOST_WIDE_INT);
    void add_mem_operand (machine_mode, rtx);
    void add_address_operand (rtx);
    void add_fixed_operand (rtx);
--- 674,680 ----
  
    void add_output_operand (insn_code);
    void add_input_operand (insn_code, rtx);
!   void add_integer_operand (poly_int64);
    void add_mem_operand (machine_mode, rtx);
    void add_address_operand (rtx);
    void add_fixed_operand (rtx);
*************** public:
*** 560,566 ****
    rtx use_contiguous_prefetch_insn (insn_code);
    rtx use_contiguous_store_insn (insn_code);
  
!   rtx map_to_rtx_codes (rtx_code, rtx_code, int,
  			unsigned int = DEFAULT_MERGE_ARGNO);
    rtx map_to_unspecs (int, int, int, unsigned int = DEFAULT_MERGE_ARGNO);
  
--- 695,701 ----
    rtx use_contiguous_prefetch_insn (insn_code);
    rtx use_contiguous_store_insn (insn_code);
  
!   rtx map_to_rtx_codes (rtx_code, rtx_code, int, int,
  			unsigned int = DEFAULT_MERGE_ARGNO);
    rtx map_to_unspecs (int, int, int, unsigned int = DEFAULT_MERGE_ARGNO);
  
*************** public:
*** 591,597 ****
  
    /* If the function operates on tuples of vectors, return the number
       of vectors in the tuples, otherwise return 1.  */
!   virtual unsigned int vectors_per_tuple () const { return 1; }
  
    /* If the function addresses memory, return the type of a single
       scalar memory element.  */
--- 726,732 ----
  
    /* If the function operates on tuples of vectors, return the number
       of vectors in the tuples, otherwise return 1.  */
!   virtual unsigned int vectors_per_tuple (const function_instance &) const;
  
    /* If the function addresses memory, return the type of a single
       scalar memory element.  */
*************** public:
*** 636,643 ****
--- 771,786 ----
  class function_shape
  {
  public:
+   virtual bool has_merge_argument_p (const function_instance &,
+ 				     unsigned int) const;
+ 
    virtual bool explicit_type_suffix_p (unsigned int) const = 0;
  
+   /* True if the group suffix is present in overloaded names.
+      This isn't meaningful for pre-SME intrinsics, and true is
+      more common than false, so provide a default definition.  */
+   virtual bool explicit_group_suffix_p () const { return true; }
+ 
    /* Define all functions associated with the given group.  */
    virtual void build (function_builder &,
  		      const function_group_info &) const = 0;
*************** public:
*** 656,662 ****
  class sve_switcher : public aarch64_simd_switcher
  {
  public:
!   sve_switcher ();
    ~sve_switcher ();
  
  private:
--- 799,805 ----
  class sve_switcher : public aarch64_simd_switcher
  {
  public:
!   sve_switcher (aarch64_feature_flags = 0);
    ~sve_switcher ();
  
  private:
*************** private:
*** 664,683 ****
    bool m_old_have_regs_of_mode[MAX_MACHINE_MODE];
  };
  
  extern const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1];
  extern const mode_suffix_info mode_suffixes[MODE_none + 1];
  
! extern tree scalar_types[NUM_VECTOR_TYPES];
  extern tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
  extern tree acle_svpattern;
  extern tree acle_svprfop;
  
! /* Return the ACLE type svbool_t.  */
! inline tree
! get_svbool_t (void)
! {
!   return acle_vector_types[0][VECTOR_TYPE_svbool_t];
! }
  
  /* Try to find a mode with the given mode_suffix_info fields.  Return the
     mode on success or MODE_none on failure.  */
--- 807,831 ----
    bool m_old_have_regs_of_mode[MAX_MACHINE_MODE];
  };
  
+ /* Extends sve_switch enough for defining arm_sme.h.  */
+ class sme_switcher : public sve_switcher
+ {
+ public:
+   sme_switcher () : sve_switcher (AARCH64_FL_SME) {}
+ };
+ 
  extern const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1];
  extern const mode_suffix_info mode_suffixes[MODE_none + 1];
+ extern const group_suffix_info group_suffixes[NUM_GROUP_SUFFIXES];
  
! extern tree scalar_types[NUM_VECTOR_TYPES + 1];
  extern tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
  extern tree acle_svpattern;
  extern tree acle_svprfop;
  
! bool vector_cst_all_same (tree, unsigned int);
! bool is_ptrue (tree, unsigned int);
! const function_instance *lookup_fndecl (tree);
  
  /* Try to find a mode with the given mode_suffix_info fields.  Return the
     mode on success or MODE_none on failure.  */
*************** function_instance (const char *base_name
*** 725,733 ****
  		   const function_shape *shape_in,
  		   mode_suffix_index mode_suffix_id_in,
  		   const type_suffix_pair &type_suffix_ids_in,
  		   predication_index pred_in)
    : base_name (base_name_in), base (base_in), shape (shape_in),
!     mode_suffix_id (mode_suffix_id_in), pred (pred_in)
  {
    memcpy (type_suffix_ids, type_suffix_ids_in, sizeof (type_suffix_ids));
  }
--- 873,883 ----
  		   const function_shape *shape_in,
  		   mode_suffix_index mode_suffix_id_in,
  		   const type_suffix_pair &type_suffix_ids_in,
+ 		   group_suffix_index group_suffix_id_in,
  		   predication_index pred_in)
    : base_name (base_name_in), base (base_in), shape (shape_in),
!     mode_suffix_id (mode_suffix_id_in), group_suffix_id (group_suffix_id_in),
!     pred (pred_in)
  {
    memcpy (type_suffix_ids, type_suffix_ids_in, sizeof (type_suffix_ids));
  }
*************** function_instance::operator== (const fun
*** 738,746 ****
    return (base == other.base
  	  && shape == other.shape
  	  && mode_suffix_id == other.mode_suffix_id
- 	  && pred == other.pred
  	  && type_suffix_ids[0] == other.type_suffix_ids[0]
! 	  && type_suffix_ids[1] == other.type_suffix_ids[1]);
  }
  
  inline bool
--- 888,897 ----
    return (base == other.base
  	  && shape == other.shape
  	  && mode_suffix_id == other.mode_suffix_id
  	  && type_suffix_ids[0] == other.type_suffix_ids[0]
! 	  && type_suffix_ids[1] == other.type_suffix_ids[1]
! 	  && group_suffix_id == other.group_suffix_id
! 	  && pred == other.pred);
  }
  
  inline bool
*************** function_instance::operator!= (const fun
*** 749,760 ****
    return !operator== (other);
  }
  
  /* If the function operates on tuples of vectors, return the number
     of vectors in the tuples, otherwise return 1.  */
  inline unsigned int
  function_instance::vectors_per_tuple () const
  {
!   return base->vectors_per_tuple ();
  }
  
  /* If the function addresses memory, return the type of a single
--- 900,929 ----
    return !operator== (other);
  }
  
+ /* Return the index of the type that should be used as the governing
+    predicate of this function.  */
+ inline vector_type_index
+ function_instance::gp_type_index () const
+ {
+   if (group_suffix ().vectors_per_tuple > 1)
+     return VECTOR_TYPE_svcount_t;
+   return VECTOR_TYPE_svbool_t;
+ }
+ 
+ /* Return the type that should be used as the governing predicate of
+    this function.  */
+ inline tree
+ function_instance::gp_type () const
+ {
+   return acle_vector_types[0][gp_type_index ()];
+ }
+ 
  /* If the function operates on tuples of vectors, return the number
     of vectors in the tuples, otherwise return 1.  */
  inline unsigned int
  function_instance::vectors_per_tuple () const
  {
!   return base->vectors_per_tuple (*this);
  }
  
  /* If the function addresses memory, return the type of a single
*************** function_instance::displacement_vector_t
*** 797,802 ****
--- 966,981 ----
    return acle_vector_types[0][mode_suffix ().displacement_vector_type];
  }
  
+ /* Return the number of ZA tiles associated with the _za<N> suffix
+    (which is always the first type suffix).  */
+ inline unsigned int
+ function_instance::num_za_tiles () const
+ {
+   auto &suffix = type_suffix (0);
+   gcc_checking_assert (suffix.za_p);
+   return suffix.element_bytes;
+ }
+ 
  /* If the function takes a vector or scalar displacement, return the units
     in which the displacement is measured, otherwise return UNITS_none.  */
  inline units_index
*************** function_instance::type_suffix (unsigned
*** 812,817 ****
--- 991,1003 ----
    return type_suffixes[type_suffix_ids[i]];
  }
  
+ /* Return information about the function's group suffix.  */
+ inline const group_suffix_info &
+ function_instance::group_suffix () const
+ {
+   return group_suffixes[group_suffix_id];
+ }
+ 
  /* Return the scalar type associated with type suffix I.  */
  inline tree
  function_instance::scalar_type (unsigned int i) const
*************** function_instance::vector_mode (unsigned
*** 851,861 ****
--- 1037,1060 ----
    return type_suffix (i).vector_mode;
  }
  
+ /* Return the mode of tuple_type (I).  */
+ inline machine_mode
+ function_instance::tuple_mode (unsigned int i) const
+ {
+   if (group_suffix ().vectors_per_tuple > 1)
+     return TYPE_MODE (tuple_type (i));
+   return vector_mode (i);
+ }
+ 
  /* Return the mode of the governing predicate to use when operating on
     type suffix I.  */
  inline machine_mode
  function_instance::gp_mode (unsigned int i) const
  {
+   /* Multi-vector operations are predicated on an svcount_t, which has
+      mode VNx16BI.  */
+   if (group_suffix ().vectors_per_tuple > 1)
+     return VNx16BImode;
    return aarch64_sve_pred_mode (type_suffix (i).element_bytes).require ();
  }
  
*************** function_base::call_properties (const fu
*** 877,882 ****
--- 1076,1104 ----
    return flags;
  }
  
+ inline unsigned int
+ function_base::vectors_per_tuple (const function_instance &instance) const
+ {
+   return instance.group_suffix ().vectors_per_tuple;
+ }
+ 
+ /* Return true if INSTANCE (which has NARGS arguments) has an initial
+    vector argument whose only purpose is to specify the values of
+    inactive lanes.  */
+ inline bool
+ function_shape::has_merge_argument_p (const function_instance &instance,
+ 				      unsigned int nargs) const
+ {
+   return nargs == 1 && instance.pred == PRED_m;
+ }
+ 
+ /* Return the mode of the result of a call.  */
+ inline machine_mode
+ function_expander::result_mode () const
+ {
+   return TYPE_MODE (TREE_TYPE (TREE_TYPE (fndecl)));
+ }
+ 
  }
  
  #endif
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve.md gcc-14.1.0/gcc/config/aarch64/aarch64-sve.md
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AArch64 SVE.
! ;; Copyright (C) 2009-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AArch64 SVE.
! ;; Copyright (C) 2009-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 33,38 ****
--- 33,39 ----
  ;; ---- Moves of single vectors
  ;; ---- Moves of multiple vectors
  ;; ---- Moves of predicates
+ ;; ---- Moves of multiple predicates
  ;; ---- Moves relating to the FFR
  ;;
  ;; == Loads
***************
*** 687,719 ****
  ;; and after RA; before RA we want the predicated load and store patterns to
  ;; be used instead.
  (define_insn "*aarch64_sve_mov<mode>_ldr_str"
!   [(set (match_operand:SVE_FULL 0 "aarch64_sve_nonimmediate_operand" "=w, Utr, w, w")
! 	(match_operand:SVE_FULL 1 "aarch64_sve_general_operand" "Utr, w, w, Dn"))]
    "TARGET_SVE
     && (<MODE>mode == VNx16QImode || !BYTES_BIG_ENDIAN)
     && ((lra_in_progress || reload_completed)
         || (register_operand (operands[0], <MODE>mode)
  	   && nonmemory_operand (operands[1], <MODE>mode)))"
!   "@
!    ldr\t%0, %1
!    str\t%1, %0
!    mov\t%0.d, %1.d
!    * return aarch64_output_sve_mov_immediate (operands[1]);"
  )
  
  ;; Unpredicated moves that cannot use LDR and STR, i.e. partial vectors
  ;; or vectors for which little-endian ordering isn't acceptable.  Memory
  ;; accesses require secondary reloads.
  (define_insn "*aarch64_sve_mov<mode>_no_ldr_str"
!   [(set (match_operand:SVE_ALL 0 "register_operand" "=w, w")
! 	(match_operand:SVE_ALL 1 "aarch64_nonmemory_operand" "w, Dn"))]
    "TARGET_SVE
     && <MODE>mode != VNx16QImode
     && (BYTES_BIG_ENDIAN
         || maybe_ne (BYTES_PER_SVE_VECTOR, GET_MODE_SIZE (<MODE>mode)))"
!   "@
!    mov\t%0.d, %1.d
!    * return aarch64_output_sve_mov_immediate (operands[1]);"
  )
  
  ;; Handle memory reloads for modes that can't use LDR and STR.  We use
--- 688,722 ----
  ;; and after RA; before RA we want the predicated load and store patterns to
  ;; be used instead.
  (define_insn "*aarch64_sve_mov<mode>_ldr_str"
!   [(set (match_operand:SVE_FULL 0 "aarch64_sve_nonimmediate_operand")
! 	(match_operand:SVE_FULL 1 "aarch64_sve_general_operand"))]
    "TARGET_SVE
     && (<MODE>mode == VNx16QImode || !BYTES_BIG_ENDIAN)
     && ((lra_in_progress || reload_completed)
         || (register_operand (operands[0], <MODE>mode)
  	   && nonmemory_operand (operands[1], <MODE>mode)))"
!   {@ [ cons: =0 , 1    ]
!      [ w        , Utr  ] ldr\t%0, %1
!      [ Utr      , w    ] str\t%1, %0
!      [ w        , w    ] mov\t%0.d, %1.d
!      [ w        , Dn   ] << aarch64_output_sve_mov_immediate (operands[1]);
!   }
  )
  
  ;; Unpredicated moves that cannot use LDR and STR, i.e. partial vectors
  ;; or vectors for which little-endian ordering isn't acceptable.  Memory
  ;; accesses require secondary reloads.
  (define_insn "*aarch64_sve_mov<mode>_no_ldr_str"
!   [(set (match_operand:SVE_ALL 0 "register_operand")
! 	(match_operand:SVE_ALL 1 "aarch64_nonmemory_operand"))]
    "TARGET_SVE
     && <MODE>mode != VNx16QImode
     && (BYTES_BIG_ENDIAN
         || maybe_ne (BYTES_PER_SVE_VECTOR, GET_MODE_SIZE (<MODE>mode)))"
!   {@ [ cons: =0 , 1   ]
!      [ w        , w   ] mov\t%0.d, %1.d
!      [ w        , Dn  ] << aarch64_output_sve_mov_immediate (operands[1]);
!   }
  )
  
  ;; Handle memory reloads for modes that can't use LDR and STR.  We use
***************
*** 743,760 ****
  ;; Note that this pattern is generated directly by aarch64_emit_sve_pred_move,
  ;; so changes to this pattern will need changes there as well.
  (define_insn_and_split "@aarch64_pred_mov<mode>"
!   [(set (match_operand:SVE_ALL 0 "nonimmediate_operand" "=w, w, m")
  	(unspec:SVE_ALL
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
! 	   (match_operand:SVE_ALL 2 "nonimmediate_operand" "w, m, w")]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[2], <MODE>mode))"
!   "@
!    #
!    ld1<Vesize>\t%0.<Vctype>, %1/z, %2
!    st1<Vesize>\t%2.<Vctype>, %1, %0"
    "&& register_operand (operands[0], <MODE>mode)
     && register_operand (operands[2], <MODE>mode)"
    [(set (match_dup 0) (match_dup 2))]
--- 746,764 ----
  ;; Note that this pattern is generated directly by aarch64_emit_sve_pred_move,
  ;; so changes to this pattern will need changes there as well.
  (define_insn_and_split "@aarch64_pred_mov<mode>"
!   [(set (match_operand:SVE_ALL 0 "nonimmediate_operand")
  	(unspec:SVE_ALL
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:SVE_ALL 2 "nonimmediate_operand")]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[2], <MODE>mode))"
!   {@ [ cons: =0 , 1   , 2  ]
!      [ w        , Upl , w  ] #
!      [ w        , Upl , m  ] ld1<Vesize>\t%0.<Vctype>, %1/z, %2
!      [ m        , Upl , w  ] st1<Vesize>\t%2.<Vctype>, %1, %0
!   }
    "&& register_operand (operands[0], <MODE>mode)
     && register_operand (operands[2], <MODE>mode)"
    [(set (match_dup 0) (match_dup 2))]
***************
*** 784,791 ****
  ;; This is equivalent to a subreg on little-endian targets but not for
  ;; big-endian; see the comment at the head of the file for details.
  (define_expand "@aarch64_sve_reinterpret<mode>"
!   [(set (match_operand:SVE_ALL 0 "register_operand")
! 	(unspec:SVE_ALL
  	  [(match_operand 1 "aarch64_any_register_operand")]
  	  UNSPEC_REINTERPRET))]
    "TARGET_SVE"
--- 788,795 ----
  ;; This is equivalent to a subreg on little-endian targets but not for
  ;; big-endian; see the comment at the head of the file for details.
  (define_expand "@aarch64_sve_reinterpret<mode>"
!   [(set (match_operand:SVE_ALL_STRUCT 0 "register_operand")
! 	(unspec:SVE_ALL_STRUCT
  	  [(match_operand 1 "aarch64_any_register_operand")]
  	  UNSPEC_REINTERPRET))]
    "TARGET_SVE"
***************
*** 802,809 ****
  ;; A pattern for handling type punning on big-endian targets.  We use a
  ;; special predicate for operand 1 to reduce the number of patterns.
  (define_insn_and_split "*aarch64_sve_reinterpret<mode>"
!   [(set (match_operand:SVE_ALL 0 "register_operand" "=w")
! 	(unspec:SVE_ALL
  	  [(match_operand 1 "aarch64_any_register_operand" "w")]
  	  UNSPEC_REINTERPRET))]
    "TARGET_SVE"
--- 806,813 ----
  ;; A pattern for handling type punning on big-endian targets.  We use a
  ;; special predicate for operand 1 to reduce the number of patterns.
  (define_insn_and_split "*aarch64_sve_reinterpret<mode>"
!   [(set (match_operand:SVE_ALL_STRUCT 0 "register_operand" "=w")
! 	(unspec:SVE_ALL_STRUCT
  	  [(match_operand 1 "aarch64_any_register_operand" "w")]
  	  UNSPEC_REINTERPRET))]
    "TARGET_SVE"
***************
*** 949,964 ****
  )
  
  (define_insn "*aarch64_sve_mov<mode>"
!   [(set (match_operand:PRED_ALL 0 "nonimmediate_operand" "=Upa, m, Upa, Upa")
! 	(match_operand:PRED_ALL 1 "aarch64_mov_operand" "Upa, Upa, m, Dn"))]
    "TARGET_SVE
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   "@
!    mov\t%0.b, %1.b
!    str\t%1, %0
!    ldr\t%0, %1
!    * return aarch64_output_sve_mov_immediate (operands[1]);"
  )
  
  ;; Match PTRUES Pn.B when both the predicate and flags are useful.
--- 953,969 ----
  )
  
  (define_insn "*aarch64_sve_mov<mode>"
!   [(set (match_operand:PRED_ALL 0 "nonimmediate_operand")
! 	(match_operand:PRED_ALL 1 "aarch64_mov_operand"))]
    "TARGET_SVE
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
!   {@ [ cons: =0 , 1    ]
!      [ Upa      , Upa  ] mov\t%0.b, %1.b
!      [ m        , Upa  ] str\t%1, %0
!      [ Upa      , m    ] ldr\t%0, %1
!      [ Upa      , Dn   ] << aarch64_output_sve_mov_immediate (operands[1]);
!   }
  )
  
  ;; Match PTRUES Pn.B when both the predicate and flags are useful.
***************
*** 1066,1071 ****
--- 1071,1097 ----
  )
  
  ;; -------------------------------------------------------------------------
+ ;; ---- Moves of multiple predicates
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn_and_split "movvnx32bi"
+   [(set (match_operand:VNx32BI 0 "nonimmediate_operand")
+ 	(match_operand:VNx32BI 1 "aarch64_mov_operand"))]
+   "TARGET_SVE"
+   {@ [ cons: =0 , 1   ]
+      [ Upa      , Upa ] #
+      [ Upa      , m   ] #
+      [ m        , Upa ] #
+   }
+   "&& reload_completed"
+   [(const_int 0)]
+   {
+     aarch64_split_double_move (operands[0], operands[1], VNx16BImode);
+     DONE;
+   }
+ )
+ 
+ ;; -------------------------------------------------------------------------
  ;; ---- Moves relating to the FFR
  ;; -------------------------------------------------------------------------
  ;; RDFFR
***************
*** 1079,1091 ****
  ;; Write to the FFR and start a new FFRT scheduling region.
  (define_insn "aarch64_wrffr"
    [(set (reg:VNx16BI FFR_REGNUM)
! 	(match_operand:VNx16BI 0 "aarch64_simd_reg_or_minus_one" "Dm, Upa"))
     (set (reg:VNx16BI FFRT_REGNUM)
  	(unspec:VNx16BI [(match_dup 0)] UNSPEC_WRFFR))]
!   "TARGET_SVE"
!   "@
!    setffr
!    wrffr\t%0.b"
  )
  
  ;; [L2 in the block comment above about FFR handling]
--- 1105,1118 ----
  ;; Write to the FFR and start a new FFRT scheduling region.
  (define_insn "aarch64_wrffr"
    [(set (reg:VNx16BI FFR_REGNUM)
! 	(match_operand:VNx16BI 0 "aarch64_simd_reg_or_minus_one"))
     (set (reg:VNx16BI FFRT_REGNUM)
  	(unspec:VNx16BI [(match_dup 0)] UNSPEC_WRFFR))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 ]
!      [ Dm      ] setffr
!      [ Upa     ] wrffr\t%0.b
!   }
  )
  
  ;; [L2 in the block comment above about FFR handling]
***************
*** 1123,1129 ****
  (define_insn "aarch64_rdffr"
    [(set (match_operand:VNx16BI 0 "register_operand" "=Upa")
  	(reg:VNx16BI FFRT_REGNUM))]
!   "TARGET_SVE"
    "rdffr\t%0.b"
  )
  
--- 1150,1156 ----
  (define_insn "aarch64_rdffr"
    [(set (match_operand:VNx16BI 0 "register_operand" "=Upa")
  	(reg:VNx16BI FFRT_REGNUM))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "rdffr\t%0.b"
  )
  
***************
*** 1133,1139 ****
  	(and:VNx16BI
  	  (reg:VNx16BI FFRT_REGNUM)
  	  (match_operand:VNx16BI 1 "register_operand" "Upa")))]
!   "TARGET_SVE"
    "rdffr\t%0.b, %1/z"
  )
  
--- 1160,1166 ----
  	(and:VNx16BI
  	  (reg:VNx16BI FFRT_REGNUM)
  	  (match_operand:VNx16BI 1 "register_operand" "Upa")))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "rdffr\t%0.b, %1/z"
  )
  
***************
*** 1149,1155 ****
  	     (match_dup 1))]
  	  UNSPEC_PTEST))
     (clobber (match_scratch:VNx16BI 0 "=Upa"))]
!   "TARGET_SVE"
    "rdffrs\t%0.b, %1/z"
  )
  
--- 1176,1182 ----
  	     (match_dup 1))]
  	  UNSPEC_PTEST))
     (clobber (match_scratch:VNx16BI 0 "=Upa"))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "rdffrs\t%0.b, %1/z"
  )
  
***************
*** 1163,1169 ****
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_PTEST))
     (clobber (match_scratch:VNx16BI 0 "=Upa"))]
!   "TARGET_SVE"
    "rdffrs\t%0.b, %1/z"
  )
  
--- 1190,1196 ----
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_PTEST))
     (clobber (match_scratch:VNx16BI 0 "=Upa"))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "rdffrs\t%0.b, %1/z"
  )
  
***************
*** 1182,1188 ****
  	(and:VNx16BI
  	  (reg:VNx16BI FFRT_REGNUM)
  	  (match_dup 1)))]
!   "TARGET_SVE"
    "rdffrs\t%0.b, %1/z"
  )
  
--- 1209,1215 ----
  	(and:VNx16BI
  	  (reg:VNx16BI FFRT_REGNUM)
  	  (match_dup 1)))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "rdffrs\t%0.b, %1/z"
  )
  
***************
*** 1197,1203 ****
  	  UNSPEC_PTEST))
     (set (match_operand:VNx16BI 0 "register_operand" "=Upa")
  	(reg:VNx16BI FFRT_REGNUM))]
!   "TARGET_SVE"
    "rdffrs\t%0.b, %1/z"
  )
  
--- 1224,1230 ----
  	  UNSPEC_PTEST))
     (set (match_operand:VNx16BI 0 "register_operand" "=Upa")
  	(reg:VNx16BI FFRT_REGNUM))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "rdffrs\t%0.b, %1/z"
  )
  
***************
*** 1239,1245 ****
  ;; - LD4W
  ;; -------------------------------------------------------------------------
  
! ;; Predicated LD1.
  (define_insn "maskload<mode><vpred>"
    [(set (match_operand:SVE_ALL 0 "register_operand" "=w")
  	(unspec:SVE_ALL
--- 1266,1272 ----
  ;; - LD4W
  ;; -------------------------------------------------------------------------
  
! ;; Predicated LD1 (single).
  (define_insn "maskload<mode><vpred>"
    [(set (match_operand:SVE_ALL 0 "register_operand" "=w")
  	(unspec:SVE_ALL
***************
*** 1327,1333 ****
  	   (match_operand:SVE_FULL 1 "aarch64_sve_ld<fn>f1_operand" "Ut<fn>")
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  SVE_LDFF1_LDNF1))]
!   "TARGET_SVE"
    "ld<fn>f1<Vesize>\t%0.<Vetype>, %2/z, %1"
  )
  
--- 1354,1360 ----
  	   (match_operand:SVE_FULL 1 "aarch64_sve_ld<fn>f1_operand" "Ut<fn>")
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  SVE_LDFF1_LDNF1))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "ld<fn>f1<Vesize>\t%0.<Vetype>, %2/z, %1"
  )
  
***************
*** 1361,1367 ****
  		(reg:VNx16BI FFRT_REGNUM)]
  	       SVE_LDFF1_LDNF1))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && (~<SVE_HSDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
    "ld<fn>f1<ANY_EXTEND:s><SVE_PARTIAL_I:Vesize>\t%0.<SVE_HSDI:Vctype>, %2/z, %1"
    "&& !CONSTANT_P (operands[3])"
    {
--- 1388,1396 ----
  		(reg:VNx16BI FFRT_REGNUM)]
  	       SVE_LDFF1_LDNF1))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE
!    && TARGET_NON_STREAMING
!    && (~<SVE_HSDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
    "ld<fn>f1<ANY_EXTEND:s><SVE_PARTIAL_I:Vesize>\t%0.<SVE_HSDI:Vctype>, %2/z, %1"
    "&& !CONSTANT_P (operands[3])"
    {
***************
*** 1379,1385 ****
  ;; - LDNT1W
  ;; -------------------------------------------------------------------------
  
! ;; Predicated contiguous non-temporal load.
  (define_insn "@aarch64_ldnt1<mode>"
    [(set (match_operand:SVE_FULL 0 "register_operand" "=w")
  	(unspec:SVE_FULL
--- 1408,1414 ----
  ;; - LDNT1W
  ;; -------------------------------------------------------------------------
  
! ;; Predicated contiguous non-temporal load (single).
  (define_insn "@aarch64_ldnt1<mode>"
    [(set (match_operand:SVE_FULL 0 "register_operand" "=w")
  	(unspec:SVE_FULL
***************
*** 1409,1415 ****
  	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE"
    {
      operands[5] = aarch64_ptrue_reg (<VPRED>mode);
    }
--- 1438,1444 ----
  	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    {
      operands[5] = aarch64_ptrue_reg (<VPRED>mode);
    }
***************
*** 1418,1481 ****
  ;; Predicated gather loads for 32-bit elements.  Operand 3 is true for
  ;; unsigned extension and false for signed extension.
  (define_insn "mask_gather_load<mode><v_int_container>"
!   [(set (match_operand:SVE_4 0 "register_operand" "=w, w, w, w, w, w")
  	(unspec:SVE_4
! 	  [(match_operand:VNx4BI 5 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
! 	   (match_operand:DI 1 "aarch64_sve_gather_offset_<Vesize>" "Z, vgw, rk, rk, rk, rk")
! 	   (match_operand:VNx4SI 2 "register_operand" "w, w, w, w, w, w")
! 	   (match_operand:DI 3 "const_int_operand" "Ui1, Ui1, Z, Ui1, Z, Ui1")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>" "Ui1, Ui1, Ui1, Ui1, i, i")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ld1<Vesize>\t%0.s, %5/z, [%2.s]
!    ld1<Vesize>\t%0.s, %5/z, [%2.s, #%1]
!    ld1<Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw]
!    ld1<Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw]
!    ld1<Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw %p4]
!    ld1<Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw %p4]"
  )
  
  ;; Predicated gather loads for 64-bit elements.  The value of operand 3
  ;; doesn't matter in this case.
  (define_insn "mask_gather_load<mode><v_int_container>"
!   [(set (match_operand:SVE_2 0 "register_operand" "=w, w, w, w")
  	(unspec:SVE_2
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl, Upl, Upl")
! 	   (match_operand:DI 1 "aarch64_sve_gather_offset_<Vesize>" "Z, vgd, rk, rk")
! 	   (match_operand:VNx2DI 2 "register_operand" "w, w, w, w")
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>" "Ui1, Ui1, Ui1, i")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ld1<Vesize>\t%0.d, %5/z, [%2.d]
!    ld1<Vesize>\t%0.d, %5/z, [%2.d, #%1]
!    ld1<Vesize>\t%0.d, %5/z, [%1, %2.d]
!    ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, lsl %p4]"
  )
  
  ;; Likewise, but with the offset being extended from 32 bits.
  (define_insn_and_rewrite "*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked"
!   [(set (match_operand:SVE_2 0 "register_operand" "=w, w")
  	(unspec:SVE_2
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 1 "register_operand" "rk, rk")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (ANY_EXTEND:VNx2DI
! 		(match_operand:VNx2SI 2 "register_operand" "w, w"))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>" "Ui1, i")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, <su>xtw]
!    ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, <su>xtw %p4]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
--- 1447,1525 ----
  ;; Predicated gather loads for 32-bit elements.  Operand 3 is true for
  ;; unsigned extension and false for signed extension.
  (define_insn "mask_gather_load<mode><v_int_container>"
!   [(set (match_operand:SVE_4 0 "register_operand")
  	(unspec:SVE_4
! 	  [(match_operand:VNx4BI 5 "register_operand")
! 	   (match_operand:DI 1 "aarch64_sve_gather_offset_<Vesize>")
! 	   (match_operand:VNx4SI 2 "register_operand")
! 	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5  ]
!      [&w, Z,   w, Ui1, Ui1, Upl] ld1<Vesize>\t%0.s, %5/z, [%2.s]
!      [?w, Z,   0, Ui1, Ui1, Upl] ^
!      [&w, vgw, w, Ui1, Ui1, Upl] ld1<Vesize>\t%0.s, %5/z, [%2.s, #%1]
!      [?w, vgw, 0, Ui1, Ui1, Upl] ^
!      [&w, rk,  w, Z,   Ui1, Upl] ld1<Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw]
!      [?w, rk,  0, Z,   Ui1, Upl] ^
!      [&w, rk,  w, Ui1, Ui1, Upl] ld1<Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw]
!      [?w, rk,  0, Ui1, Ui1, Upl] ^
!      [&w, rk,  w, Z,   i,   Upl] ld1<Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw %p4]
!      [?w, rk,  0, Z,   i,   Upl] ^
!      [&w, rk,  w, Ui1, i,   Upl] ld1<Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw %p4]
!      [?w, rk,  0, Ui1, i,   Upl] ^
!   }
  )
  
  ;; Predicated gather loads for 64-bit elements.  The value of operand 3
  ;; doesn't matter in this case.
  (define_insn "mask_gather_load<mode><v_int_container>"
!   [(set (match_operand:SVE_2 0 "register_operand")
  	(unspec:SVE_2
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 1 "aarch64_sve_gather_offset_<Vesize>")
! 	   (match_operand:VNx2DI 2 "register_operand")
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, Z,   w, i, Ui1, Upl] ld1<Vesize>\t%0.d, %5/z, [%2.d]
!      [?w, Z,   0, i, Ui1, Upl] ^
!      [&w, vgd, w, i, Ui1, Upl] ld1<Vesize>\t%0.d, %5/z, [%2.d, #%1]
!      [?w, vgd, 0, i, Ui1, Upl] ^
!      [&w, rk,  w, i, Ui1, Upl] ld1<Vesize>\t%0.d, %5/z, [%1, %2.d]
!      [?w, rk,  0, i, Ui1, Upl] ^
!      [&w, rk,  w, i, i,   Upl] ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, lsl %p4]
!      [?w, rk,  0, i, i,   Upl] ^
!   }
  )
  
  ;; Likewise, but with the offset being extended from 32 bits.
  (define_insn_and_rewrite "*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked"
!   [(set (match_operand:SVE_2 0 "register_operand")
  	(unspec:SVE_2
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 1 "register_operand")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (ANY_EXTEND:VNx2DI
! 		(match_operand:VNx2SI 2 "register_operand"))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, <su>xtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, <su>xtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
***************
*** 1485,1508 ****
  ;; Likewise, but with the offset being truncated to 32 bits and then
  ;; sign-extended.
  (define_insn_and_rewrite "*mask_gather_load<mode><v_int_container>_sxtw"
!   [(set (match_operand:SVE_2 0 "register_operand" "=w, w")
  	(unspec:SVE_2
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 1 "register_operand" "rk, rk")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (sign_extend:VNx2DI
  		(truncate:VNx2SI
! 		  (match_operand:VNx2DI 2 "register_operand" "w, w")))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>" "Ui1, i")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw]
!    ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw %p4]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
--- 1529,1555 ----
  ;; Likewise, but with the offset being truncated to 32 bits and then
  ;; sign-extended.
  (define_insn_and_rewrite "*mask_gather_load<mode><v_int_container>_sxtw"
!   [(set (match_operand:SVE_2 0 "register_operand")
  	(unspec:SVE_2
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 1 "register_operand")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (sign_extend:VNx2DI
  		(truncate:VNx2SI
! 		  (match_operand:VNx2DI 2 "register_operand")))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
***************
*** 1512,1532 ****
  ;; Likewise, but with the offset being truncated to 32 bits and then
  ;; zero-extended.
  (define_insn "*mask_gather_load<mode><v_int_container>_uxtw"
!   [(set (match_operand:SVE_2 0 "register_operand" "=w, w")
  	(unspec:SVE_2
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 1 "register_operand" "rk, rk")
  	   (and:VNx2DI
! 	     (match_operand:VNx2DI 2 "register_operand" "w, w")
  	     (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>" "Ui1, i")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw]
!    ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw %p4]"
  )
  
  ;; -------------------------------------------------------------------------
--- 1559,1582 ----
  ;; Likewise, but with the offset being truncated to 32 bits and then
  ;; zero-extended.
  (define_insn "*mask_gather_load<mode><v_int_container>_uxtw"
!   [(set (match_operand:SVE_2 0 "register_operand")
  	(unspec:SVE_2
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 1 "register_operand")
  	   (and:VNx2DI
! 	     (match_operand:VNx2DI 2 "register_operand")
  	     (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_<Vesize>")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LD1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ld1<Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 1544,1570 ****
  ;; Predicated extending gather loads for 32-bit elements.  Operand 3 is
  ;; true for unsigned extension and false for signed extension.
  (define_insn_and_rewrite "@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>"
!   [(set (match_operand:SVE_4HSI 0 "register_operand" "=w, w, w, w, w, w")
  	(unspec:SVE_4HSI
! 	  [(match_operand:VNx4BI 6 "general_operand" "UplDnm, UplDnm, UplDnm, UplDnm, UplDnm, UplDnm")
  	   (ANY_EXTEND:SVE_4HSI
  	     (unspec:SVE_4BHI
! 	       [(match_operand:VNx4BI 5 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
! 		(match_operand:DI 1 "aarch64_sve_gather_offset_<SVE_4BHI:Vesize>" "Z, vg<SVE_4BHI:Vesize>, rk, rk, rk, rk")
! 		(match_operand:VNx4SI 2 "register_operand" "w, w, w, w, w, w")
! 		(match_operand:DI 3 "const_int_operand" "Ui1, Ui1, Z, Ui1, Z, Ui1")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_4BHI:Vesize>" "Ui1, Ui1, Ui1, Ui1, i, i")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && (~<SVE_4HSI:narrower_mask> & <SVE_4BHI:self_mask>) == 0"
!   "@
!    ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%2.s]
!    ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%2.s, #%1]
!    ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw]
!    ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw]
!    ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw %p4]
!    ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw %p4]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx4BImode);
--- 1594,1629 ----
  ;; Predicated extending gather loads for 32-bit elements.  Operand 3 is
  ;; true for unsigned extension and false for signed extension.
  (define_insn_and_rewrite "@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>"
!   [(set (match_operand:SVE_4HSI 0 "register_operand")
  	(unspec:SVE_4HSI
! 	  [(match_operand:VNx4BI 6 "general_operand")
  	   (ANY_EXTEND:SVE_4HSI
  	     (unspec:SVE_4BHI
! 	       [(match_operand:VNx4BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_sve_gather_offset_<SVE_4BHI:Vesize>")
! 		(match_operand:VNx4SI 2 "register_operand")
! 		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_4BHI:Vesize>")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE
!    && TARGET_NON_STREAMING
!    && (~<SVE_4HSI:narrower_mask> & <SVE_4BHI:self_mask>) == 0"
!   {@ [cons: =0, 1, 2, 3, 4, 5, 6]
!      [&w, Z,                   w, Ui1, Ui1, Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%2.s]
!      [?w, Z,                   0, Ui1, Ui1, Upl, UplDnm] ^
!      [&w, vg<SVE_4BHI:Vesize>, w, Ui1, Ui1, Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%2.s, #%1]
!      [?w, vg<SVE_4BHI:Vesize>, 0, Ui1, Ui1, Upl, UplDnm] ^
!      [&w, rk,                  w, Z,   Ui1, Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw]
!      [?w, rk,                  0, Z,   Ui1, Upl, UplDnm] ^
!      [&w, rk,                  w, Ui1, Ui1, Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw]
!      [?w, rk,                  0, Ui1, Ui1, Upl, UplDnm] ^
!      [&w, rk,                  w, Z,   i,   Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw %p4]
!      [?w, rk,                  0, Z,   i,   Upl, UplDnm] ^
!      [&w, rk,                  w, Ui1, i,   Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_4BHI:Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw %p4]
!      [?w, rk,                  0, Ui1, i,   Upl, UplDnm] ^
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx4BImode);
***************
*** 1574,1598 ****
  ;; Predicated extending gather loads for 64-bit elements.  The value of
  ;; operand 3 doesn't matter in this case.
  (define_insn_and_rewrite "@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>"
!   [(set (match_operand:SVE_2HSDI 0 "register_operand" "=w, w, w, w")
  	(unspec:SVE_2HSDI
! 	  [(match_operand:VNx2BI 6 "general_operand" "UplDnm, UplDnm, UplDnm, UplDnm")
  	   (ANY_EXTEND:SVE_2HSDI
  	     (unspec:SVE_2BHSI
! 	       [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl, Upl, Upl")
! 		(match_operand:DI 1 "aarch64_sve_gather_offset_<SVE_2BHSI:Vesize>" "Z, vg<SVE_2BHSI:Vesize>, rk, rk")
! 		(match_operand:VNx2DI 2 "register_operand" "w, w, w, w")
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_2BHSI:Vesize>" "Ui1, Ui1, Ui1, i")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && (~<SVE_2HSDI:narrower_mask> & <SVE_2BHSI:self_mask>) == 0"
!   "@
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%2.d]
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%2.d, #%1]
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d]
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, lsl %p4]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
--- 1633,1664 ----
  ;; Predicated extending gather loads for 64-bit elements.  The value of
  ;; operand 3 doesn't matter in this case.
  (define_insn_and_rewrite "@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>"
!   [(set (match_operand:SVE_2HSDI 0 "register_operand")
  	(unspec:SVE_2HSDI
! 	  [(match_operand:VNx2BI 6 "general_operand")
  	   (ANY_EXTEND:SVE_2HSDI
  	     (unspec:SVE_2BHSI
! 	       [(match_operand:VNx2BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_sve_gather_offset_<SVE_2BHSI:Vesize>")
! 		(match_operand:VNx2DI 2 "register_operand")
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_2BHSI:Vesize>")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE
!    && TARGET_NON_STREAMING
!    && (~<SVE_2HSDI:narrower_mask> & <SVE_2BHSI:self_mask>) == 0"
!   {@ [cons: =0, 1, 2, 3, 4, 5, 6]
!      [&w, Z,                    w, i, Ui1, Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%2.d]
!      [?w, Z,                    0, i, Ui1, Upl, UplDnm] ^
!      [&w, vg<SVE_2BHSI:Vesize>, w, i, Ui1, Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%2.d, #%1]
!      [?w, vg<SVE_2BHSI:Vesize>, 0, i, Ui1, Upl, UplDnm] ^
!      [&w, rk,                   w, i, Ui1, Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d]
!      [?w, rk,                   0, i, Ui1, Upl, UplDnm] ^
!      [&w, rk,                   w, i, i,   Upl, UplDnm] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, lsl %p4]
!      [?w, rk,                   0, i, i,   Upl, UplDnm] ^
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
***************
*** 1601,1627 ****
  
  ;; Likewise, but with the offset being extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked"
!   [(set (match_operand:SVE_2HSDI 0 "register_operand" "=w, w")
  	(unspec:SVE_2HSDI
  	  [(match_operand 6)
  	   (ANY_EXTEND:SVE_2HSDI
  	     (unspec:SVE_2BHSI
! 	       [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 		(match_operand:DI 1 "aarch64_reg_or_zero" "rk, rk")
  		(unspec:VNx2DI
  		  [(match_operand 7)
  		   (ANY_EXTEND2:VNx2DI
! 		     (match_operand:VNx2SI 2 "register_operand" "w, w"))]
  		  UNSPEC_PRED_X)
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_2BHSI:Vesize>" "Ui1, i")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && (~<SVE_2HSDI:narrower_mask> & <SVE_2BHSI:self_mask>) == 0"
!   "@
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, <ANY_EXTEND2:su>xtw]
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, <ANY_EXTEND2:su>xtw %p4]"
    "&& (!CONSTANT_P (operands[6]) || !CONSTANT_P (operands[7]))"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
--- 1667,1698 ----
  
  ;; Likewise, but with the offset being extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked"
!   [(set (match_operand:SVE_2HSDI 0 "register_operand")
  	(unspec:SVE_2HSDI
  	  [(match_operand 6)
  	   (ANY_EXTEND:SVE_2HSDI
  	     (unspec:SVE_2BHSI
! 	       [(match_operand:VNx2BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_reg_or_zero")
  		(unspec:VNx2DI
  		  [(match_operand 7)
  		   (ANY_EXTEND2:VNx2DI
! 		     (match_operand:VNx2SI 2 "register_operand"))]
  		  UNSPEC_PRED_X)
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_2BHSI:Vesize>")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE
!    && TARGET_NON_STREAMING
!    && (~<SVE_2HSDI:narrower_mask> & <SVE_2BHSI:self_mask>) == 0"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, <ANY_EXTEND2:su>xtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, <ANY_EXTEND2:su>xtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
    "&& (!CONSTANT_P (operands[6]) || !CONSTANT_P (operands[7]))"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
***************
*** 1632,1659 ****
  ;; Likewise, but with the offset being truncated to 32 bits and then
  ;; sign-extended.
  (define_insn_and_rewrite "*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_sxtw"
!   [(set (match_operand:SVE_2HSDI 0 "register_operand" "=w, w")
  	(unspec:SVE_2HSDI
  	  [(match_operand 6)
  	   (ANY_EXTEND:SVE_2HSDI
  	     (unspec:SVE_2BHSI
! 	       [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 		(match_operand:DI 1 "aarch64_reg_or_zero" "rk, rk")
  		(unspec:VNx2DI
  		  [(match_operand 7)
  		   (sign_extend:VNx2DI
  		     (truncate:VNx2SI
! 		       (match_operand:VNx2DI 2 "register_operand" "w, w")))]
  		  UNSPEC_PRED_X)
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_2BHSI:Vesize>" "Ui1, i")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && (~<SVE_2HSDI:narrower_mask> & <SVE_2BHSI:self_mask>) == 0"
!   "@
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw]
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw %p4]"
    "&& (!CONSTANT_P (operands[6]) || !CONSTANT_P (operands[7]))"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
--- 1703,1735 ----
  ;; Likewise, but with the offset being truncated to 32 bits and then
  ;; sign-extended.
  (define_insn_and_rewrite "*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_sxtw"
!   [(set (match_operand:SVE_2HSDI 0 "register_operand")
  	(unspec:SVE_2HSDI
  	  [(match_operand 6)
  	   (ANY_EXTEND:SVE_2HSDI
  	     (unspec:SVE_2BHSI
! 	       [(match_operand:VNx2BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_reg_or_zero")
  		(unspec:VNx2DI
  		  [(match_operand 7)
  		   (sign_extend:VNx2DI
  		     (truncate:VNx2SI
! 		       (match_operand:VNx2DI 2 "register_operand")))]
  		  UNSPEC_PRED_X)
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_2BHSI:Vesize>")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE
!    && TARGET_NON_STREAMING
!    && (~<SVE_2HSDI:narrower_mask> & <SVE_2BHSI:self_mask>) == 0"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
    "&& (!CONSTANT_P (operands[6]) || !CONSTANT_P (operands[7]))"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
***************
*** 1664,1688 ****
  ;; Likewise, but with the offset being truncated to 32 bits and then
  ;; zero-extended.
  (define_insn_and_rewrite "*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_uxtw"
!   [(set (match_operand:SVE_2HSDI 0 "register_operand" "=w, w")
  	(unspec:SVE_2HSDI
  	  [(match_operand 7)
  	   (ANY_EXTEND:SVE_2HSDI
  	     (unspec:SVE_2BHSI
! 	       [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 		(match_operand:DI 1 "aarch64_reg_or_zero" "rk, rk")
  		(and:VNx2DI
! 		  (match_operand:VNx2DI 2 "register_operand" "w, w")
  		  (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_2BHSI:Vesize>" "Ui1, i")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && (~<SVE_2HSDI:narrower_mask> & <SVE_2BHSI:self_mask>) == 0"
!   "@
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw]
!    ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw %p4]"
    "&& !CONSTANT_P (operands[7])"
    {
      operands[7] = CONSTM1_RTX (VNx2BImode);
--- 1740,1769 ----
  ;; Likewise, but with the offset being truncated to 32 bits and then
  ;; zero-extended.
  (define_insn_and_rewrite "*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_uxtw"
!   [(set (match_operand:SVE_2HSDI 0 "register_operand")
  	(unspec:SVE_2HSDI
  	  [(match_operand 7)
  	   (ANY_EXTEND:SVE_2HSDI
  	     (unspec:SVE_2BHSI
! 	       [(match_operand:VNx2BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_reg_or_zero")
  		(and:VNx2DI
! 		  (match_operand:VNx2DI 2 "register_operand")
  		  (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<SVE_2BHSI:Vesize>")
  		(mem:BLK (scratch))]
  	       UNSPEC_LD1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE
!    && TARGET_NON_STREAMING
!    && (~<SVE_2HSDI:narrower_mask> & <SVE_2BHSI:self_mask>) == 0"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ld1<ANY_EXTEND:s><SVE_2BHSI:Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
    "&& !CONSTANT_P (operands[7])"
    {
      operands[7] = CONSTM1_RTX (VNx2BImode);
***************
*** 1700,1767 ****
  ;; Predicated first-faulting gather loads for 32-bit elements.  Operand
  ;; 3 is true for unsigned extension and false for signed extension.
  (define_insn "@aarch64_ldff1_gather<mode>"
!   [(set (match_operand:SVE_FULL_S 0 "register_operand" "=w, w, w, w, w, w")
  	(unspec:SVE_FULL_S
! 	  [(match_operand:VNx4BI 5 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
! 	   (match_operand:DI 1 "aarch64_sve_gather_offset_w" "Z, vgw, rk, rk, rk, rk")
! 	   (match_operand:VNx4SI 2 "register_operand" "w, w, w, w, w, w")
! 	   (match_operand:DI 3 "const_int_operand" "i, i, Z, Ui1, Z, Ui1")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_w" "Ui1, Ui1, Ui1, Ui1, i, i")
  	   (mem:BLK (scratch))
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_LDFF1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ldff1w\t%0.s, %5/z, [%2.s]
!    ldff1w\t%0.s, %5/z, [%2.s, #%1]
!    ldff1w\t%0.s, %5/z, [%1, %2.s, sxtw]
!    ldff1w\t%0.s, %5/z, [%1, %2.s, uxtw]
!    ldff1w\t%0.s, %5/z, [%1, %2.s, sxtw %p4]
!    ldff1w\t%0.s, %5/z, [%1, %2.s, uxtw %p4]"
  )
  
  ;; Predicated first-faulting gather loads for 64-bit elements.  The value
  ;; of operand 3 doesn't matter in this case.
  (define_insn "@aarch64_ldff1_gather<mode>"
!   [(set (match_operand:SVE_FULL_D 0 "register_operand" "=w, w, w, w")
  	(unspec:SVE_FULL_D
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl, Upl, Upl")
! 	   (match_operand:DI 1 "aarch64_sve_gather_offset_d" "Z, vgd, rk, rk")
! 	   (match_operand:VNx2DI 2 "register_operand" "w, w, w, w")
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_d" "Ui1, Ui1, Ui1, i")
  	   (mem:BLK (scratch))
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_LDFF1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ldff1d\t%0.d, %5/z, [%2.d]
!    ldff1d\t%0.d, %5/z, [%2.d, #%1]
!    ldff1d\t%0.d, %5/z, [%1, %2.d]
!    ldff1d\t%0.d, %5/z, [%1, %2.d, lsl %p4]"
  )
  
  ;; Likewise, but with the offset being sign-extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_ldff1_gather<mode>_sxtw"
!   [(set (match_operand:SVE_FULL_D 0 "register_operand" "=w, w")
  	(unspec:SVE_FULL_D
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 1 "register_operand" "rk, rk")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (sign_extend:VNx2DI
  		(truncate:VNx2SI
! 		  (match_operand:VNx2DI 2 "register_operand" "w, w")))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_d" "Ui1, i")
  	   (mem:BLK (scratch))
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_LDFF1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ldff1d\t%0.d, %5/z, [%1, %2.d, sxtw]
!    ldff1d\t%0.d, %5/z, [%1, %2.d, sxtw %p4]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
--- 1781,1863 ----
  ;; Predicated first-faulting gather loads for 32-bit elements.  Operand
  ;; 3 is true for unsigned extension and false for signed extension.
  (define_insn "@aarch64_ldff1_gather<mode>"
!   [(set (match_operand:SVE_FULL_S 0 "register_operand")
  	(unspec:SVE_FULL_S
! 	  [(match_operand:VNx4BI 5 "register_operand")
! 	   (match_operand:DI 1 "aarch64_sve_gather_offset_w")
! 	   (match_operand:VNx4SI 2 "register_operand")
! 	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_w")
  	   (mem:BLK (scratch))
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_LDFF1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5  ]
!      [&w, Z,   w, i,   Ui1, Upl] ldff1w\t%0.s, %5/z, [%2.s]
!      [?w, Z,   0, i,   Ui1, Upl] ^
!      [&w, vgw, w, i,   Ui1, Upl] ldff1w\t%0.s, %5/z, [%2.s, #%1]
!      [?w, vgw, 0, i,   Ui1, Upl] ^
!      [&w, rk,  w, Z,   Ui1, Upl] ldff1w\t%0.s, %5/z, [%1, %2.s, sxtw]
!      [?w, rk,  0, Z,   Ui1, Upl] ^
!      [&w, rk,  w, Ui1, Ui1, Upl] ldff1w\t%0.s, %5/z, [%1, %2.s, uxtw]
!      [?w, rk,  0, Ui1, Ui1, Upl] ^
!      [&w, rk,  w, Z,   i,   Upl] ldff1w\t%0.s, %5/z, [%1, %2.s, sxtw %p4]
!      [?w, rk,  0, Z,   i,   Upl] ^
!      [&w, rk,  w, Ui1, i,   Upl] ldff1w\t%0.s, %5/z, [%1, %2.s, uxtw %p4]
!      [?w, rk,  0, Ui1, i,   Upl] ^
!   }
  )
  
  ;; Predicated first-faulting gather loads for 64-bit elements.  The value
  ;; of operand 3 doesn't matter in this case.
  (define_insn "@aarch64_ldff1_gather<mode>"
!   [(set (match_operand:SVE_FULL_D 0 "register_operand")
  	(unspec:SVE_FULL_D
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 1 "aarch64_sve_gather_offset_d")
! 	   (match_operand:VNx2DI 2 "register_operand")
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_d")
  	   (mem:BLK (scratch))
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_LDFF1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5 ]
!      [&w, Z,   w, i, Ui1, Upl ] ldff1d\t%0.d, %5/z, [%2.d]
!      [?w, Z,   0, i, Ui1, Upl ] ^
!      [&w, vgd, w, i, Ui1, Upl ] ldff1d\t%0.d, %5/z, [%2.d, #%1]
!      [?w, vgd, 0, i, Ui1, Upl ] ^
!      [&w, rk,  w, i, Ui1, Upl ] ldff1d\t%0.d, %5/z, [%1, %2.d]
!      [?w, rk,  0, i, Ui1, Upl ] ^
!      [&w, rk,  w, i, i,   Upl ] ldff1d\t%0.d, %5/z, [%1, %2.d, lsl %p4]
!      [?w, rk,  0, i, i,   Upl ] ^
!   }
  )
  
  ;; Likewise, but with the offset being sign-extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_ldff1_gather<mode>_sxtw"
!   [(set (match_operand:SVE_FULL_D 0 "register_operand")
  	(unspec:SVE_FULL_D
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 1 "register_operand")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (sign_extend:VNx2DI
  		(truncate:VNx2SI
! 		  (match_operand:VNx2DI 2 "register_operand")))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_d")
  	   (mem:BLK (scratch))
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_LDFF1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ldff1d\t%0.d, %5/z, [%1, %2.d, sxtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ldff1d\t%0.d, %5/z, [%1, %2.d, sxtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
***************
*** 1770,1791 ****
  
  ;; Likewise, but with the offset being zero-extended from 32 bits.
  (define_insn "*aarch64_ldff1_gather<mode>_uxtw"
!   [(set (match_operand:SVE_FULL_D 0 "register_operand" "=w, w")
  	(unspec:SVE_FULL_D
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 1 "register_operand" "rk, rk")
  	   (and:VNx2DI
! 	     (match_operand:VNx2DI 2 "register_operand" "w, w")
  	     (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_d" "Ui1, i")
  	   (mem:BLK (scratch))
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_LDFF1_GATHER))]
!   "TARGET_SVE"
!   "@
!    ldff1d\t%0.d, %5/z, [%1, %2.d, uxtw]
!    ldff1d\t%0.d, %5/z, [%1, %2.d, uxtw %p4]"
  )
  
  ;; -------------------------------------------------------------------------
--- 1866,1890 ----
  
  ;; Likewise, but with the offset being zero-extended from 32 bits.
  (define_insn "*aarch64_ldff1_gather<mode>_uxtw"
!   [(set (match_operand:SVE_FULL_D 0 "register_operand")
  	(unspec:SVE_FULL_D
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 1 "register_operand")
  	   (and:VNx2DI
! 	     (match_operand:VNx2DI 2 "register_operand")
  	     (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  	   (match_operand:DI 3 "const_int_operand")
! 	   (match_operand:DI 4 "aarch64_gather_scale_operand_d")
  	   (mem:BLK (scratch))
  	   (reg:VNx16BI FFRT_REGNUM)]
  	  UNSPEC_LDFF1_GATHER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ldff1d\t%0.d, %5/z, [%1, %2.d, uxtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ldff1d\t%0.d, %5/z, [%1, %2.d, uxtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 1803,1830 ****
  ;; Predicated extending first-faulting gather loads for 32-bit elements.
  ;; Operand 3 is true for unsigned extension and false for signed extension.
  (define_insn_and_rewrite "@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>"
!   [(set (match_operand:VNx4_WIDE 0 "register_operand" "=w, w, w, w, w, w")
  	(unspec:VNx4_WIDE
! 	  [(match_operand:VNx4BI 6 "general_operand" "UplDnm, UplDnm, UplDnm, UplDnm, UplDnm, UplDnm")
  	   (ANY_EXTEND:VNx4_WIDE
  	     (unspec:VNx4_NARROW
! 	       [(match_operand:VNx4BI 5 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
! 		(match_operand:DI 1 "aarch64_sve_gather_offset_<VNx4_NARROW:Vesize>" "Z, vg<VNx4_NARROW:Vesize>, rk, rk, rk, rk")
! 		(match_operand:VNx4_WIDE 2 "register_operand" "w, w, w, w, w, w")
! 		(match_operand:DI 3 "const_int_operand" "i, i, Z, Ui1, Z, Ui1")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<VNx4_NARROW:Vesize>" "Ui1, Ui1, Ui1, Ui1, i, i")
  		(mem:BLK (scratch))
  		(reg:VNx16BI FFRT_REGNUM)]
  	       UNSPEC_LDFF1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE"
!   "@
!    ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%2.s]
!    ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%2.s, #%1]
!    ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw]
!    ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw]
!    ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw %p4]
!    ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw %p4]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx4BImode);
--- 1902,1936 ----
  ;; Predicated extending first-faulting gather loads for 32-bit elements.
  ;; Operand 3 is true for unsigned extension and false for signed extension.
  (define_insn_and_rewrite "@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>"
!   [(set (match_operand:VNx4_WIDE 0 "register_operand")
  	(unspec:VNx4_WIDE
! 	  [(match_operand:VNx4BI 6 "general_operand")
  	   (ANY_EXTEND:VNx4_WIDE
  	     (unspec:VNx4_NARROW
! 	       [(match_operand:VNx4BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_sve_gather_offset_<VNx4_NARROW:Vesize>")
! 		(match_operand:VNx4_WIDE 2 "register_operand")
! 		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<VNx4_NARROW:Vesize>")
  		(mem:BLK (scratch))
  		(reg:VNx16BI FFRT_REGNUM)]
  	       UNSPEC_LDFF1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5, 6]
!      [&w, Z,                      w, i,   Ui1, Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%2.s]
!      [?w, Z,                      0, i,   Ui1, Upl, UplDnm] ^
!      [&w, vg<VNx4_NARROW:Vesize>, w, i,   Ui1, Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%2.s, #%1]
!      [?w, vg<VNx4_NARROW:Vesize>, 0, i,   Ui1, Upl, UplDnm] ^
!      [&w, rk,                     w, Z,   Ui1, Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw]
!      [?w, rk,                     0, Z,   Ui1, Upl, UplDnm] ^
!      [&w, rk,                     w, Ui1, Ui1, Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw]
!      [?w, rk,                     0, Ui1, Ui1, Upl, UplDnm] ^
!      [&w, rk,                     w, Z,   i,   Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%1, %2.s, sxtw %p4]
!      [?w, rk,                     0, Z,   i,   Upl, UplDnm] ^
!      [&w, rk,                     w, Ui1, i,   Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx4_NARROW:Vesize>\t%0.s, %5/z, [%1, %2.s, uxtw %p4]
!      [?w, rk,                     0, Ui1, i,   Upl, UplDnm] ^
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx4BImode);
***************
*** 1834,1859 ****
  ;; Predicated extending first-faulting gather loads for 64-bit elements.
  ;; The value of operand 3 doesn't matter in this case.
  (define_insn_and_rewrite "@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>"
!   [(set (match_operand:VNx2_WIDE 0 "register_operand" "=w, w, w, w")
  	(unspec:VNx2_WIDE
! 	  [(match_operand:VNx2BI 6 "general_operand" "UplDnm, UplDnm, UplDnm, UplDnm")
  	   (ANY_EXTEND:VNx2_WIDE
  	     (unspec:VNx2_NARROW
! 	       [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl, Upl, Upl")
! 		(match_operand:DI 1 "aarch64_sve_gather_offset_<VNx2_NARROW:Vesize>" "Z, vg<VNx2_NARROW:Vesize>, rk, rk")
! 		(match_operand:VNx2_WIDE 2 "register_operand" "w, w, w, w")
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, Ui1, Ui1, i")
  		(mem:BLK (scratch))
  		(reg:VNx16BI FFRT_REGNUM)]
  	       UNSPEC_LDFF1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE"
!   "@
!    ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%2.d]
!    ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%2.d, #%1]
!    ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d]
!    ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, lsl %p4]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
--- 1940,1970 ----
  ;; Predicated extending first-faulting gather loads for 64-bit elements.
  ;; The value of operand 3 doesn't matter in this case.
  (define_insn_and_rewrite "@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>"
!   [(set (match_operand:VNx2_WIDE 0 "register_operand")
  	(unspec:VNx2_WIDE
! 	  [(match_operand:VNx2BI 6 "general_operand")
  	   (ANY_EXTEND:VNx2_WIDE
  	     (unspec:VNx2_NARROW
! 	       [(match_operand:VNx2BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_sve_gather_offset_<VNx2_NARROW:Vesize>")
! 		(match_operand:VNx2_WIDE 2 "register_operand")
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>")
  		(mem:BLK (scratch))
  		(reg:VNx16BI FFRT_REGNUM)]
  	       UNSPEC_LDFF1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5, 6]
!      [&w, Z,                      w, i, Ui1, Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%2.d]
!      [?w, Z,                      0, i, Ui1, Upl, UplDnm] ^
!      [&w, vg<VNx2_NARROW:Vesize>, w, i, Ui1, Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%2.d, #%1]
!      [?w, vg<VNx2_NARROW:Vesize>, 0, i, Ui1, Upl, UplDnm] ^
!      [&w, rk,                     w, i, Ui1, Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d]
!      [?w, rk,                     0, i, Ui1, Upl, UplDnm] ^
!      [&w, rk,                     w, i, i,   Upl, UplDnm] ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, lsl %p4]
!      [?w, rk,                     w, i, i,   Upl, UplDnm] ^
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
***************
*** 1862,1890 ****
  
  ;; Likewise, but with the offset being sign-extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw"
!   [(set (match_operand:VNx2_WIDE 0 "register_operand" "=w, w")
  	(unspec:VNx2_WIDE
  	  [(match_operand 6)
  	   (ANY_EXTEND:VNx2_WIDE
  	     (unspec:VNx2_NARROW
! 	       [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 		(match_operand:DI 1 "aarch64_reg_or_zero" "rk, rk")
  		(unspec:VNx2DI
  		  [(match_operand 7)
  		   (sign_extend:VNx2DI
  		     (truncate:VNx2SI
! 		       (match_operand:VNx2DI 2 "register_operand" "w, w")))]
  		  UNSPEC_PRED_X)
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, i")
  		(mem:BLK (scratch))
  		(reg:VNx16BI FFRT_REGNUM)]
  	       UNSPEC_LDFF1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE"
!   "@
!    ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw]
!    ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw %p4]"
    "&& (!CONSTANT_P (operands[6]) || !CONSTANT_P (operands[7]))"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
--- 1973,2004 ----
  
  ;; Likewise, but with the offset being sign-extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw"
!   [(set (match_operand:VNx2_WIDE 0 "register_operand")
  	(unspec:VNx2_WIDE
  	  [(match_operand 6)
  	   (ANY_EXTEND:VNx2_WIDE
  	     (unspec:VNx2_NARROW
! 	       [(match_operand:VNx2BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_reg_or_zero")
  		(unspec:VNx2DI
  		  [(match_operand 7)
  		   (sign_extend:VNx2DI
  		     (truncate:VNx2SI
! 		       (match_operand:VNx2DI 2 "register_operand")))]
  		  UNSPEC_PRED_X)
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>")
  		(mem:BLK (scratch))
  		(reg:VNx16BI FFRT_REGNUM)]
  	       UNSPEC_LDFF1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, sxtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
    "&& (!CONSTANT_P (operands[6]) || !CONSTANT_P (operands[7]))"
    {
      operands[6] = CONSTM1_RTX (VNx2BImode);
***************
*** 1894,1919 ****
  
  ;; Likewise, but with the offset being zero-extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw"
!   [(set (match_operand:VNx2_WIDE 0 "register_operand" "=w, w")
  	(unspec:VNx2_WIDE
  	  [(match_operand 7)
  	   (ANY_EXTEND:VNx2_WIDE
  	     (unspec:VNx2_NARROW
! 	       [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 		(match_operand:DI 1 "aarch64_reg_or_zero" "rk, rk")
  		(and:VNx2DI
! 		  (match_operand:VNx2DI 2 "register_operand" "w, w")
  		  (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, i")
  		(mem:BLK (scratch))
  		(reg:VNx16BI FFRT_REGNUM)]
  	       UNSPEC_LDFF1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE"
!   "@
!    ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw]
!    ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw %p4]"
    "&& !CONSTANT_P (operands[7])"
    {
      operands[7] = CONSTM1_RTX (VNx2BImode);
--- 2008,2036 ----
  
  ;; Likewise, but with the offset being zero-extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw"
!   [(set (match_operand:VNx2_WIDE 0 "register_operand")
  	(unspec:VNx2_WIDE
  	  [(match_operand 7)
  	   (ANY_EXTEND:VNx2_WIDE
  	     (unspec:VNx2_NARROW
! 	       [(match_operand:VNx2BI 5 "register_operand")
! 		(match_operand:DI 1 "aarch64_reg_or_zero")
  		(and:VNx2DI
! 		  (match_operand:VNx2DI 2 "register_operand")
  		  (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  		(match_operand:DI 3 "const_int_operand")
! 		(match_operand:DI 4 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>")
  		(mem:BLK (scratch))
  		(reg:VNx16BI FFRT_REGNUM)]
  	       UNSPEC_LDFF1_GATHER))]
  	  UNSPEC_PRED_X))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3, 4, 5]
!      [&w, rk, w, i, Ui1, Upl ] ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw]
!      [?w, rk, 0, i, Ui1, Upl ] ^
!      [&w, rk, w, i, i,   Upl ] ldff1<ANY_EXTEND:s><VNx2_NARROW:Vesize>\t%0.d, %5/z, [%1, %2.d, uxtw %p4]
!      [?w, rk, 0, i, i,   Upl ] ^
!   }
    "&& !CONSTANT_P (operands[7])"
    {
      operands[7] = CONSTM1_RTX (VNx2BImode);
***************
*** 1985,1991 ****
  	       UNSPEC_SVE_PREFETCH_GATHER)
  	     (match_operand:DI 7 "const_int_operand")
  	     (match_operand:DI 8 "const_int_operand"))]
!   "TARGET_SVE"
    {
      static const char *const insns[][2] = {
        "prf<SVE_FULL_I:Vesize>", "%0, [%2.s]",
--- 2102,2108 ----
  	       UNSPEC_SVE_PREFETCH_GATHER)
  	     (match_operand:DI 7 "const_int_operand")
  	     (match_operand:DI 8 "const_int_operand"))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    {
      static const char *const insns[][2] = {
        "prf<SVE_FULL_I:Vesize>", "%0, [%2.s]",
***************
*** 2014,2020 ****
  	       UNSPEC_SVE_PREFETCH_GATHER)
  	     (match_operand:DI 7 "const_int_operand")
  	     (match_operand:DI 8 "const_int_operand"))]
!   "TARGET_SVE"
    {
      static const char *const insns[][2] = {
        "prf<SVE_FULL_I:Vesize>", "%0, [%2.d]",
--- 2131,2137 ----
  	       UNSPEC_SVE_PREFETCH_GATHER)
  	     (match_operand:DI 7 "const_int_operand")
  	     (match_operand:DI 8 "const_int_operand"))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    {
      static const char *const insns[][2] = {
        "prf<SVE_FULL_I:Vesize>", "%0, [%2.d]",
***************
*** 2045,2051 ****
  	       UNSPEC_SVE_PREFETCH_GATHER)
  	     (match_operand:DI 7 "const_int_operand")
  	     (match_operand:DI 8 "const_int_operand"))]
!   "TARGET_SVE"
    {
      static const char *const insns[][2] = {
        "prfb", "%0, [%1, %2.d, sxtw]",
--- 2162,2168 ----
  	       UNSPEC_SVE_PREFETCH_GATHER)
  	     (match_operand:DI 7 "const_int_operand")
  	     (match_operand:DI 8 "const_int_operand"))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    {
      static const char *const insns[][2] = {
        "prfb", "%0, [%1, %2.d, sxtw]",
***************
*** 2075,2081 ****
  	       UNSPEC_SVE_PREFETCH_GATHER)
  	     (match_operand:DI 7 "const_int_operand")
  	     (match_operand:DI 8 "const_int_operand"))]
!   "TARGET_SVE"
    {
      static const char *const insns[][2] = {
        "prfb", "%0, [%1, %2.d, uxtw]",
--- 2192,2198 ----
  	       UNSPEC_SVE_PREFETCH_GATHER)
  	     (match_operand:DI 7 "const_int_operand")
  	     (match_operand:DI 8 "const_int_operand"))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    {
      static const char *const insns[][2] = {
        "prfb", "%0, [%1, %2.d, uxtw]",
***************
*** 2112,2118 ****
  ;; - ST4W
  ;; -------------------------------------------------------------------------
  
! ;; Predicated ST1.
  (define_insn "maskstore<mode><vpred>"
    [(set (match_operand:SVE_ALL 0 "memory_operand" "+m")
  	(unspec:SVE_ALL
--- 2229,2235 ----
  ;; - ST4W
  ;; -------------------------------------------------------------------------
  
! ;; Predicated ST1 (single).
  (define_insn "maskstore<mode><vpred>"
    [(set (match_operand:SVE_ALL 0 "memory_operand" "+m")
  	(unspec:SVE_ALL
***************
*** 2242,2248 ****
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>")
  	   (match_operand:SVE_24 4 "register_operand")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
    {
      operands[5] = aarch64_ptrue_reg (<VPRED>mode);
    }
--- 2359,2365 ----
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>")
  	   (match_operand:SVE_24 4 "register_operand")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    {
      operands[5] = aarch64_ptrue_reg (<VPRED>mode);
    }
***************
*** 2253,2273 ****
  (define_insn "mask_scatter_store<mode><v_int_container>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx4BI 5 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
! 	   (match_operand:DI 0 "aarch64_sve_gather_offset_<Vesize>" "Z, vgw, rk, rk, rk, rk")
! 	   (match_operand:VNx4SI 1 "register_operand" "w, w, w, w, w, w")
! 	   (match_operand:DI 2 "const_int_operand" "Ui1, Ui1, Z, Ui1, Z, Ui1")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>" "Ui1, Ui1, Ui1, Ui1, i, i")
! 	   (match_operand:SVE_4 4 "register_operand" "w, w, w, w, w, w")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<Vesize>\t%4.s, %5, [%1.s]
!    st1<Vesize>\t%4.s, %5, [%1.s, #%0]
!    st1<Vesize>\t%4.s, %5, [%0, %1.s, sxtw]
!    st1<Vesize>\t%4.s, %5, [%0, %1.s, uxtw]
!    st1<Vesize>\t%4.s, %5, [%0, %1.s, sxtw %p3]
!    st1<Vesize>\t%4.s, %5, [%0, %1.s, uxtw %p3]"
  )
  
  ;; Predicated scatter stores for 64-bit elements.  The value of operand 2
--- 2370,2391 ----
  (define_insn "mask_scatter_store<mode><v_int_container>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx4BI 5 "register_operand")
! 	   (match_operand:DI 0 "aarch64_sve_gather_offset_<Vesize>")
! 	   (match_operand:VNx4SI 1 "register_operand")
! 	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>")
! 	   (match_operand:SVE_4 4 "register_operand")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 , 1 , 2   , 3   , 4 , 5    ]
!      [ Z       , w , Ui1 , Ui1 , w , Upl  ] st1<Vesize>\t%4.s, %5, [%1.s]
!      [ vgw     , w , Ui1 , Ui1 , w , Upl  ] st1<Vesize>\t%4.s, %5, [%1.s, #%0]
!      [ rk      , w , Z   , Ui1 , w , Upl  ] st1<Vesize>\t%4.s, %5, [%0, %1.s, sxtw]
!      [ rk      , w , Ui1 , Ui1 , w , Upl  ] st1<Vesize>\t%4.s, %5, [%0, %1.s, uxtw]
!      [ rk      , w , Z   , i   , w , Upl  ] st1<Vesize>\t%4.s, %5, [%0, %1.s, sxtw %p3]
!      [ rk      , w , Ui1 , i   , w , Upl  ] st1<Vesize>\t%4.s, %5, [%0, %1.s, uxtw %p3]
!   }
  )
  
  ;; Predicated scatter stores for 64-bit elements.  The value of operand 2
***************
*** 2275,2314 ****
  (define_insn "mask_scatter_store<mode><v_int_container>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl, Upl, Upl")
! 	   (match_operand:DI 0 "aarch64_sve_gather_offset_<Vesize>" "Z, vgd, rk, rk")
! 	   (match_operand:VNx2DI 1 "register_operand" "w, w, w, w")
  	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>" "Ui1, Ui1, Ui1, i")
! 	   (match_operand:SVE_2 4 "register_operand" "w, w, w, w")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<Vesize>\t%4.d, %5, [%1.d]
!    st1<Vesize>\t%4.d, %5, [%1.d, #%0]
!    st1<Vesize>\t%4.d, %5, [%0, %1.d]
!    st1<Vesize>\t%4.d, %5, [%0, %1.d, lsl %p3]"
  )
  
  ;; Likewise, but with the offset being extended from 32 bits.
  (define_insn_and_rewrite "*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 0 "register_operand" "rk, rk")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (ANY_EXTEND:VNx2DI
! 		(match_operand:VNx2SI 1 "register_operand" "w, w"))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>" "Ui1, i")
! 	   (match_operand:SVE_2 4 "register_operand" "w, w")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<Vesize>\t%4.d, %5, [%0, %1.d, <su>xtw]
!    st1<Vesize>\t%4.d, %5, [%0, %1.d, <su>xtw %p3]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (<VPRED>mode);
--- 2393,2434 ----
  (define_insn "mask_scatter_store<mode><v_int_container>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 0 "aarch64_sve_gather_offset_<Vesize>")
! 	   (match_operand:VNx2DI 1 "register_operand")
  	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>")
! 	   (match_operand:SVE_2 4 "register_operand")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 , 1 , 3   , 4 , 5    ]
!      [ Z       , w , Ui1 , w , Upl  ] st1<Vesize>\t%4.d, %5, [%1.d]
!      [ vgd     , w , Ui1 , w , Upl  ] st1<Vesize>\t%4.d, %5, [%1.d, #%0]
!      [ rk      , w , Ui1 , w , Upl  ] st1<Vesize>\t%4.d, %5, [%0, %1.d]
!      [ rk      , w , i   , w , Upl  ] st1<Vesize>\t%4.d, %5, [%0, %1.d, lsl %p3]
!   }
  )
  
  ;; Likewise, but with the offset being extended from 32 bits.
  (define_insn_and_rewrite "*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 0 "register_operand")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (ANY_EXTEND:VNx2DI
! 		(match_operand:VNx2SI 1 "register_operand"))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>")
! 	   (match_operand:SVE_2 4 "register_operand")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 , 1 , 3   , 4 , 5    ]
!      [ rk      , w , Ui1 , w , Upl  ] st1<Vesize>\t%4.d, %5, [%0, %1.d, <su>xtw]
!      [ rk      , w , i   , w , Upl  ] st1<Vesize>\t%4.d, %5, [%0, %1.d, <su>xtw %p3]
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (<VPRED>mode);
***************
*** 2320,2341 ****
  (define_insn_and_rewrite "*mask_scatter_store<mode><v_int_container>_sxtw"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 0 "register_operand" "rk, rk")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (sign_extend:VNx2DI
  		(truncate:VNx2SI
! 		  (match_operand:VNx2DI 1 "register_operand" "w, w")))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>" "Ui1, i")
! 	   (match_operand:SVE_2 4 "register_operand" "w, w")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<Vesize>\t%4.d, %5, [%0, %1.d, sxtw]
!    st1<Vesize>\t%4.d, %5, [%0, %1.d, sxtw %p3]"
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (<VPRED>mode);
--- 2440,2462 ----
  (define_insn_and_rewrite "*mask_scatter_store<mode><v_int_container>_sxtw"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 0 "register_operand")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (sign_extend:VNx2DI
  		(truncate:VNx2SI
! 		  (match_operand:VNx2DI 1 "register_operand")))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>")
! 	   (match_operand:SVE_2 4 "register_operand")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 , 1 , 3   , 4 , 5    ]
!      [ rk      , w , Ui1 , w , Upl  ] st1<Vesize>\t%4.d, %5, [%0, %1.d, sxtw]
!      [ rk      , w , i   , w , Upl  ] st1<Vesize>\t%4.d, %5, [%0, %1.d, sxtw %p3]
!   }
    "&& !CONSTANT_P (operands[6])"
    {
      operands[6] = CONSTM1_RTX (<VPRED>mode);
***************
*** 2347,2365 ****
  (define_insn "*mask_scatter_store<mode><v_int_container>_uxtw"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 0 "aarch64_reg_or_zero" "rk, rk")
  	   (and:VNx2DI
! 	     (match_operand:VNx2DI 1 "register_operand" "w, w")
  	     (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>" "Ui1, i")
! 	   (match_operand:SVE_2 4 "register_operand" "w, w")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<Vesize>\t%4.d, %5, [%0, %1.d, uxtw]
!    st1<Vesize>\t%4.d, %5, [%0, %1.d, uxtw %p3]"
  )
  
  ;; -------------------------------------------------------------------------
--- 2468,2487 ----
  (define_insn "*mask_scatter_store<mode><v_int_container>_uxtw"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 0 "aarch64_reg_or_zero")
  	   (and:VNx2DI
! 	     (match_operand:VNx2DI 1 "register_operand")
  	     (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  	   (match_operand:DI 2 "const_int_operand")
! 	   (match_operand:DI 3 "aarch64_gather_scale_operand_<Vesize>")
! 	   (match_operand:SVE_2 4 "register_operand")]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 , 1 , 3   , 4 , 5    ]
!      [ rk      , w , Ui1 , w , Upl  ] st1<Vesize>\t%4.d, %5, [%0, %1.d, uxtw]
!      [ rk      , w , i   , w , Upl  ] st1<Vesize>\t%4.d, %5, [%0, %1.d, uxtw %p3]
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 2376,2397 ****
  (define_insn "@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx4BI 5 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
  	   (match_operand:DI 0 "aarch64_sve_gather_offset_<VNx4_NARROW:Vesize>" "Z, vg<VNx4_NARROW:Vesize>, rk, rk, rk, rk")
! 	   (match_operand:VNx4SI 1 "register_operand" "w, w, w, w, w, w")
! 	   (match_operand:DI 2 "const_int_operand" "Ui1, Ui1, Z, Ui1, Z, Ui1")
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<VNx4_NARROW:Vesize>" "Ui1, Ui1, Ui1, Ui1, i, i")
  	   (truncate:VNx4_NARROW
! 	     (match_operand:VNx4_WIDE 4 "register_operand" "w, w, w, w, w, w"))]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%1.s]
!    st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%1.s, #%0]
!    st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%0, %1.s, sxtw]
!    st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%0, %1.s, uxtw]
!    st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%0, %1.s, sxtw %p3]
!    st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%0, %1.s, uxtw %p3]"
  )
  
  ;; Predicated truncating scatter stores for 64-bit elements.  The value of
--- 2498,2520 ----
  (define_insn "@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx4BI 5 "register_operand")
  	   (match_operand:DI 0 "aarch64_sve_gather_offset_<VNx4_NARROW:Vesize>" "Z, vg<VNx4_NARROW:Vesize>, rk, rk, rk, rk")
! 	   (match_operand:VNx4SI 1 "register_operand")
! 	   (match_operand:DI 2 "const_int_operand")
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<VNx4_NARROW:Vesize>" "Ui1, Ui1, Ui1, Ui1, i, i")
  	   (truncate:VNx4_NARROW
! 	     (match_operand:VNx4_WIDE 4 "register_operand"))]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 1 , 2   , 4 , 5    ]
!      [ w       , Ui1 , w , Upl  ] st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%1.s]
!      [ w       , Ui1 , w , Upl  ] st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%1.s, #%0]
!      [ w       , Z   , w , Upl  ] st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%0, %1.s, sxtw]
!      [ w       , Ui1 , w , Upl  ] st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%0, %1.s, uxtw]
!      [ w       , Z   , w , Upl  ] st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%0, %1.s, sxtw %p3]
!      [ w       , Ui1 , w , Upl  ] st1<VNx4_NARROW:Vesize>\t%4.s, %5, [%0, %1.s, uxtw %p3]
!   }
  )
  
  ;; Predicated truncating scatter stores for 64-bit elements.  The value of
***************
*** 2399,2441 ****
  (define_insn "@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl, Upl, Upl")
  	   (match_operand:DI 0 "aarch64_sve_gather_offset_<VNx2_NARROW:Vesize>" "Z, vg<VNx2_NARROW:Vesize>, rk, rk")
! 	   (match_operand:VNx2DI 1 "register_operand" "w, w, w, w")
  	   (match_operand:DI 2 "const_int_operand")
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, Ui1, Ui1, i")
  	   (truncate:VNx2_NARROW
! 	     (match_operand:VNx2_WIDE 4 "register_operand" "w, w, w, w"))]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%1.d]
!    st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%1.d, #%0]
!    st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d]
!    st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, lsl %p3]"
  )
  
  ;; Likewise, but with the offset being sign-extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 0 "register_operand" "rk, rk")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (sign_extend:VNx2DI
  		(truncate:VNx2SI
! 		  (match_operand:VNx2DI 1 "register_operand" "w, w")))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 2 "const_int_operand")
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, i")
  	   (truncate:VNx2_NARROW
! 	     (match_operand:VNx2_WIDE 4 "register_operand" "w, w"))]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, sxtw]
!    st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, sxtw %p3]"
    "&& !rtx_equal_p (operands[5], operands[6])"
    {
      operands[6] = copy_rtx (operands[5]);
--- 2522,2566 ----
  (define_insn "@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand")
  	   (match_operand:DI 0 "aarch64_sve_gather_offset_<VNx2_NARROW:Vesize>" "Z, vg<VNx2_NARROW:Vesize>, rk, rk")
! 	   (match_operand:VNx2DI 1 "register_operand")
  	   (match_operand:DI 2 "const_int_operand")
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, Ui1, Ui1, i")
  	   (truncate:VNx2_NARROW
! 	     (match_operand:VNx2_WIDE 4 "register_operand"))]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 1 , 4 , 5    ]
!      [ w       , w , Upl  ] st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%1.d]
!      [ w       , w , Upl  ] st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%1.d, #%0]
!      [ w       , w , Upl  ] st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d]
!      [ w       , w , Upl  ] st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, lsl %p3]
!   }
  )
  
  ;; Likewise, but with the offset being sign-extended from 32 bits.
  (define_insn_and_rewrite "*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 0 "register_operand")
  	   (unspec:VNx2DI
  	     [(match_operand 6)
  	      (sign_extend:VNx2DI
  		(truncate:VNx2SI
! 		  (match_operand:VNx2DI 1 "register_operand")))]
  	     UNSPEC_PRED_X)
  	   (match_operand:DI 2 "const_int_operand")
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, i")
  	   (truncate:VNx2_NARROW
! 	     (match_operand:VNx2_WIDE 4 "register_operand"))]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 , 1 , 4 , 5    ]
!      [ rk      , w , w , Upl  ] st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, sxtw]
!      [ rk      , w , w , Upl  ] st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, sxtw %p3]
!   }
    "&& !rtx_equal_p (operands[5], operands[6])"
    {
      operands[6] = copy_rtx (operands[5]);
***************
*** 2446,2465 ****
  (define_insn "*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 0 "aarch64_reg_or_zero" "rk, rk")
  	   (and:VNx2DI
! 	     (match_operand:VNx2DI 1 "register_operand" "w, w")
  	     (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  	   (match_operand:DI 2 "const_int_operand")
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, i")
  	   (truncate:VNx2_NARROW
! 	     (match_operand:VNx2_WIDE 4 "register_operand" "w, w"))]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, uxtw]
!    st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, uxtw %p3]"
  )
  
  ;; =========================================================================
--- 2571,2591 ----
  (define_insn "*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:VNx2BI 5 "register_operand")
! 	   (match_operand:DI 0 "aarch64_reg_or_zero")
  	   (and:VNx2DI
! 	     (match_operand:VNx2DI 1 "register_operand")
  	     (match_operand:VNx2DI 6 "aarch64_sve_uxtw_immediate"))
  	   (match_operand:DI 2 "const_int_operand")
  	   (match_operand:DI 3 "aarch64_gather_scale_operand_<VNx2_NARROW:Vesize>" "Ui1, i")
  	   (truncate:VNx2_NARROW
! 	     (match_operand:VNx2_WIDE 4 "register_operand"))]
  	  UNSPEC_ST1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 , 1 , 4 , 5    ]
!      [ rk      , w , w , Upl  ] st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, uxtw]
!      [ rk      , w , w , Upl  ] st1<VNx2_NARROW:Vesize>\t%4.d, %5, [%0, %1.d, uxtw %p3]
!   }
  )
  
  ;; =========================================================================
***************
*** 2509,2523 ****
  ;; the load at the first opportunity in order to allow the PTRUE to be
  ;; optimized with surrounding code.
  (define_insn_and_split "*vec_duplicate<mode>_reg"
!   [(set (match_operand:SVE_ALL 0 "register_operand" "=w, w, w")
  	(vec_duplicate:SVE_ALL
! 	  (match_operand:<VEL> 1 "aarch64_sve_dup_operand" "r, w, Uty")))
     (clobber (match_scratch:VNx16BI 2 "=X, X, Upl"))]
    "TARGET_SVE"
!   "@
!    mov\t%0.<Vetype>, %<vwcore>1
!    mov\t%0.<Vetype>, %<Vetype>1
!    #"
    "&& MEM_P (operands[1])"
    [(const_int 0)]
    {
--- 2635,2650 ----
  ;; the load at the first opportunity in order to allow the PTRUE to be
  ;; optimized with surrounding code.
  (define_insn_and_split "*vec_duplicate<mode>_reg"
!   [(set (match_operand:SVE_ALL 0 "register_operand")
  	(vec_duplicate:SVE_ALL
! 	  (match_operand:<VEL> 1 "aarch64_sve_dup_operand")))
     (clobber (match_scratch:VNx16BI 2 "=X, X, Upl"))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   ; attrs: length ]
!      [ w        , r   ; 4             ] mov\t%0.<Vetype>, %<vwcore>1
!      [ w        , w   ; 4             ] mov\t%0.<Vetype>, %<Vetype>1
!      [ w        , Uty ; 8             ] #
!   }
    "&& MEM_P (operands[1])"
    [(const_int 0)]
    {
***************
*** 2529,2543 ****
  				   CONST0_RTX (<MODE>mode)));
      DONE;
    }
-   [(set_attr "length" "4,4,8")]
  )
  
  ;; Duplicate an Advanced SIMD vector to fill an SVE vector (LE version).
  
  (define_insn_and_split "@aarch64_vec_duplicate_vq<mode>_le"
    [(set (match_operand:SVE_FULL 0 "register_operand" "=w, w")
  	(vec_duplicate:SVE_FULL
! 	  (match_operand:<V128> 1 "aarch64_sve_dup_ld1rq_operand" "w, UtQ")))
     (clobber (match_scratch:VNx16BI 2 "=X, Upl"))]
    "TARGET_SVE && !BYTES_BIG_ENDIAN"
    {
--- 2656,2676 ----
  				   CONST0_RTX (<MODE>mode)));
      DONE;
    }
  )
  
  ;; Duplicate an Advanced SIMD vector to fill an SVE vector (LE version).
+ ;;
+ ;; The addressing mode range of LD1RQ does not match the addressing mode
+ ;; range of LDR Qn.  If the predicate enforced the LD1RQ range, we would
+ ;; not be able to combine LDR Qns outside that range.  The predicate
+ ;; therefore accepts all memory operands, with only the constraints
+ ;; enforcing the actual restrictions.  If the instruction is split
+ ;; before RA, we need to load invalid addresses into a temporary.
  
  (define_insn_and_split "@aarch64_vec_duplicate_vq<mode>_le"
    [(set (match_operand:SVE_FULL 0 "register_operand" "=w, w")
  	(vec_duplicate:SVE_FULL
! 	  (match_operand:<V128> 1 "nonimmediate_operand" "w, UtQ")))
     (clobber (match_scratch:VNx16BI 2 "=X, Upl"))]
    "TARGET_SVE && !BYTES_BIG_ENDIAN"
    {
***************
*** 2555,2560 ****
--- 2688,2696 ----
    "&& MEM_P (operands[1])"
    [(const_int 0)]
    {
+     if (can_create_pseudo_p ()
+         && !aarch64_sve_ld1rq_operand (operands[1], <V128>mode))
+       operands[1] = force_reload_address (operands[1]);
      if (GET_CODE (operands[2]) == SCRATCH)
        operands[2] = gen_reg_rtx (VNx16BImode);
      emit_move_insn (operands[2], CONSTM1_RTX (VNx16BImode));
***************
*** 2622,2628 ****
  	   (match_operand:OI 1 "aarch64_sve_ld1ro_operand_<Vesize>"
  			       "UO<Vesize>")]
  	  UNSPEC_LD1RO))]
!   "TARGET_SVE_F64MM"
    {
      operands[1] = gen_rtx_MEM (<VEL>mode, XEXP (operands[1], 0));
      return "ld1ro<Vesize>\t%0.<Vetype>, %2/z, %1";
--- 2758,2764 ----
  	   (match_operand:OI 1 "aarch64_sve_ld1ro_operand_<Vesize>"
  			       "UO<Vesize>")]
  	  UNSPEC_LD1RO))]
!   "TARGET_SVE_F64MM && TARGET_NON_STREAMING"
    {
      operands[1] = gen_rtx_MEM (<VEL>mode, XEXP (operands[1], 0));
      return "ld1ro<Vesize>\t%0.<Vetype>, %2/z, %1";
***************
*** 2648,2665 ****
  
  ;; Shift an SVE vector left and insert a scalar into element 0.
  (define_insn "vec_shl_insert_<mode>"
!   [(set (match_operand:SVE_FULL 0 "register_operand" "=?w, w, ??&w, ?&w")
  	(unspec:SVE_FULL
! 	  [(match_operand:SVE_FULL 1 "register_operand" "0, 0, w, w")
! 	   (match_operand:<VEL> 2 "aarch64_reg_or_zero" "rZ, w, rZ, w")]
  	  UNSPEC_INSR))]
    "TARGET_SVE"
!   "@
!    insr\t%0.<Vetype>, %<vwcore>2
!    insr\t%0.<Vetype>, %<Vetype>2
!    movprfx\t%0, %1\;insr\t%0.<Vetype>, %<vwcore>2
!    movprfx\t%0, %1\;insr\t%0.<Vetype>, %<Vetype>2"
!   [(set_attr "movprfx" "*,*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 2784,2801 ----
  
  ;; Shift an SVE vector left and insert a scalar into element 0.
  (define_insn "vec_shl_insert_<mode>"
!   [(set (match_operand:SVE_FULL 0 "register_operand")
  	(unspec:SVE_FULL
! 	  [(match_operand:SVE_FULL 1 "register_operand")
! 	   (match_operand:<VEL> 2 "aarch64_reg_or_zero")]
  	  UNSPEC_INSR))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2  ; attrs: movprfx ]
!      [ ?w       , 0 , rZ ; *              ] insr\t%0.<Vetype>, %<vwcore>2
!      [ w        , 0 , w  ; *              ] insr\t%0.<Vetype>, %<Vetype>2
!      [ ??&w     , w , rZ ; yes            ] movprfx\t%0, %1\;insr\t%0.<Vetype>, %<vwcore>2
!      [ ?&w      , w , w  ; yes            ] movprfx\t%0, %1\;insr\t%0.<Vetype>, %<Vetype>2
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 2670,2684 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "vec_series<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, w, w")
  	(vec_series:SVE_I
! 	  (match_operand:<VEL> 1 "aarch64_sve_index_operand" "Usi, r, r")
! 	  (match_operand:<VEL> 2 "aarch64_sve_index_operand" "r, Usi, r")))]
    "TARGET_SVE"
!   "@
!    index\t%0.<Vctype>, #%1, %<vccore>2
!    index\t%0.<Vctype>, %<vccore>1, #%2
!    index\t%0.<Vctype>, %<vccore>1, %<vccore>2"
  )
  
  ;; Optimize {x, x, x, x, ...} + {0, n, 2*n, 3*n, ...} if n is in range
--- 2806,2821 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "vec_series<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(vec_series:SVE_I
! 	  (match_operand:<VEL> 1 "aarch64_sve_index_operand")
! 	  (match_operand:<VEL> 2 "aarch64_sve_index_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2    ]
!      [ w        , Usi , r    ] index\t%0.<Vctype>, #%1, %<vccore>2
!      [ w        , r   , Usi  ] index\t%0.<Vctype>, %<vccore>1, #%2
!      [ w        , r   , r    ] index\t%0.<Vctype>, %<vccore>1, %<vccore>2
!   }
  )
  
  ;; Optimize {x, x, x, x, ...} + {0, n, 2*n, 3*n, ...} if n is in range
***************
*** 2877,2891 ****
  ;; Extract the last active element of operand 1 into operand 0.
  ;; If no elements are active, extract the last inactive element instead.
  (define_insn "@extract_<last_op>_<mode>"
!   [(set (match_operand:<VEL> 0 "register_operand" "=?r, w")
  	(unspec:<VEL>
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
! 	   (match_operand:SVE_FULL 2 "register_operand" "w, w")]
  	  LAST))]
    "TARGET_SVE"
!   "@
!    last<ab>\t%<vwcore>0, %1, %2.<Vetype>
!    last<ab>\t%<Vetype>0, %1, %2.<Vetype>"
  )
  
  ;; -------------------------------------------------------------------------
--- 3014,3029 ----
  ;; Extract the last active element of operand 1 into operand 0.
  ;; If no elements are active, extract the last inactive element instead.
  (define_insn "@extract_<last_op>_<mode>"
!   [(set (match_operand:<VEL> 0 "register_operand")
  	(unspec:<VEL>
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:SVE_FULL 2 "register_operand")]
  	  LAST))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  ]
!      [ ?r       , Upl , w  ] last<ab>\t%<vwcore>0, %1, %2.<Vetype>
!      [ w        , Upl , w  ] last<ab>\t%<Vetype>0, %1, %2.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 2945,2961 ****
  
  ;; Integer unary arithmetic predicated with a PTRUE.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (SVE_INT_UNARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "0, w"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer unary arithmetic with merging.
--- 3083,3099 ----
  
  ;; Integer unary arithmetic predicated with a PTRUE.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_UNARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Predicated integer unary arithmetic with merging.
***************
*** 2972,2989 ****
  
  ;; Predicated integer unary arithmetic, merging with the first input.
  (define_insn "*cond_<optab><mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (SVE_INT_UNARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "0, w"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer unary arithmetic, merging with an independent value.
--- 3110,3127 ----
  
  ;; Predicated integer unary arithmetic, merging with the first input.
  (define_insn "*cond_<optab><mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_UNARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Predicated integer unary arithmetic, merging with an independent value.
***************
*** 2994,3012 ****
  ;; as earlyclobber helps to make the instruction more regular to the
  ;; register allocator.
  (define_insn "*cond_<optab><mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=&w, ?&w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (SVE_INT_UNARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "w, w, w"))
! 	   (match_operand:SVE_I 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[3])"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 3132,3150 ----
  ;; as earlyclobber helps to make the instruction more regular to the
  ;; register allocator.
  (define_insn "*cond_<optab><mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_UNARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand"))
! 	   (match_operand:SVE_I 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[3])"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 3021,3038 ****
  
  ;; Predicated integer unary operations.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand" "0, w")]
  	     SVE_INT_UNARY)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE && <elem_bits> >= <min_elem_bits>"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Another way of expressing the REVB, REVH and REVW patterns, with this
--- 3159,3176 ----
  
  ;; Predicated integer unary operations.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand")]
  	     SVE_INT_UNARY)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE && <elem_bits> >= <min_elem_bits>"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Another way of expressing the REVB, REVH and REVW patterns, with this
***************
*** 3040,3075 ****
  ;; of lanes and the data mode decides the granularity of the reversal within
  ;; each lane.
  (define_insn "@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>"
!   [(set (match_operand:SVE_ALL 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_ALL
! 	  [(match_operand:PRED_HSD 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_ALL
! 	     [(match_operand:SVE_ALL 2 "register_operand" "0, w")]
  	     UNSPEC_REVBHW)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE && <PRED_HSD:elem_bits> > <SVE_ALL:container_bits>"
!   "@
!    rev<SVE_ALL:Vcwtype>\t%0.<PRED_HSD:Vetype>, %1/m, %2.<PRED_HSD:Vetype>
!    movprfx\t%0, %2\;rev<SVE_ALL:Vcwtype>\t%0.<PRED_HSD:Vetype>, %1/m, %2.<PRED_HSD:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer unary operations with merging.
  (define_insn "@cond_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand" "w, w, w")]
  	     SVE_INT_UNARY)
! 	   (match_operand:SVE_FULL_I 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <elem_bits> >= <min_elem_bits>"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 3178,3213 ----
  ;; of lanes and the data mode decides the granularity of the reversal within
  ;; each lane.
  (define_insn "@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>"
!   [(set (match_operand:SVE_ALL 0 "register_operand")
  	(unspec:SVE_ALL
! 	  [(match_operand:PRED_HSD 1 "register_operand")
  	   (unspec:SVE_ALL
! 	     [(match_operand:SVE_ALL 2 "register_operand")]
  	     UNSPEC_REVBHW)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE && <PRED_HSD:elem_bits> > <SVE_ALL:container_bits>"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] rev<SVE_ALL:Vcwtype>\t%0.<PRED_HSD:Vetype>, %1/m, %2.<PRED_HSD:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;rev<SVE_ALL:Vcwtype>\t%0.<PRED_HSD:Vetype>, %1/m, %2.<PRED_HSD:Vetype>
!   }
  )
  
  ;; Predicated integer unary operations with merging.
  (define_insn "@cond_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand")]
  	     SVE_INT_UNARY)
! 	   (match_operand:SVE_FULL_I 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <elem_bits> >= <min_elem_bits>"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ w        , Upl , w , 0  ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 3100,3152 ****
  
  ;; Predicated sign and zero extension from a narrower mode.
  (define_insn "*<optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2"
!   [(set (match_operand:SVE_HSDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_HSDI
! 	  [(match_operand:<SVE_HSDI:VPRED> 1 "register_operand" "Upl, Upl")
  	   (ANY_EXTEND:SVE_HSDI
! 	     (match_operand:SVE_PARTIAL_I 2 "register_operand" "0, w"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE && (~<SVE_HSDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   "@
!    <su>xt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_HSDI:Vetype>, %1/m, %2.<SVE_HSDI:Vetype>
!    movprfx\t%0, %2\;<su>xt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_HSDI:Vetype>, %1/m, %2.<SVE_HSDI:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated truncate-and-sign-extend operations.
  (define_insn "@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand" "Upl, Upl")
  	   (sign_extend:SVE_FULL_HSDI
  	     (truncate:SVE_PARTIAL_I
! 	       (match_operand:SVE_FULL_HSDI 2 "register_operand" "0, w")))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE
     && (~<SVE_FULL_HSDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   "@
!    sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!    movprfx\t%0, %2\;sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated truncate-and-sign-extend operations with merging.
  (define_insn "@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w, ?&w")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (sign_extend:SVE_FULL_HSDI
  	     (truncate:SVE_PARTIAL_I
! 	       (match_operand:SVE_FULL_HSDI 2 "register_operand" "w, w, w")))
! 	   (match_operand:SVE_FULL_HSDI 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && (~<SVE_FULL_HSDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   "@
!    sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!    movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!    movprfx\t%0, %3\;sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; Predicated truncate-and-zero-extend operations, merging with the
--- 3238,3290 ----
  
  ;; Predicated sign and zero extension from a narrower mode.
  (define_insn "*<optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2"
!   [(set (match_operand:SVE_HSDI 0 "register_operand")
  	(unspec:SVE_HSDI
! 	  [(match_operand:<SVE_HSDI:VPRED> 1 "register_operand")
  	   (ANY_EXTEND:SVE_HSDI
! 	     (match_operand:SVE_PARTIAL_I 2 "register_operand"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE && (~<SVE_HSDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <su>xt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_HSDI:Vetype>, %1/m, %2.<SVE_HSDI:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<su>xt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_HSDI:Vetype>, %1/m, %2.<SVE_HSDI:Vetype>
!   }
  )
  
  ;; Predicated truncate-and-sign-extend operations.
  (define_insn "@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand")
  	   (sign_extend:SVE_FULL_HSDI
  	     (truncate:SVE_PARTIAL_I
! 	       (match_operand:SVE_FULL_HSDI 2 "register_operand")))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE
     && (~<SVE_FULL_HSDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!   }
  )
  
  ;; Predicated truncate-and-sign-extend operations with merging.
  (define_insn "@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand")
  	   (sign_extend:SVE_FULL_HSDI
  	     (truncate:SVE_PARTIAL_I
! 	       (match_operand:SVE_FULL_HSDI 2 "register_operand")))
! 	   (match_operand:SVE_FULL_HSDI 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && (~<SVE_FULL_HSDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ w        , Upl , w , 0  ; *              ] sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;sxt<SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!   }
  )
  
  ;; Predicated truncate-and-zero-extend operations, merging with the
***************
*** 3155,3173 ****
  ;; The canonical form of this operation is an AND of a constant rather
  ;; than (zero_extend (truncate ...)).
  (define_insn "*cond_uxt<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (and:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "0, w")
  	     (match_operand:SVE_I 3 "aarch64_sve_uxt_immediate"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    uxt%e3\t%0.<Vetype>, %1/m, %0.<Vetype>
!    movprfx\t%0, %2\;uxt%e3\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated truncate-and-zero-extend operations, merging with an
--- 3293,3311 ----
  ;; The canonical form of this operation is an AND of a constant rather
  ;; than (zero_extend (truncate ...)).
  (define_insn "*cond_uxt<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (and:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand")
  	     (match_operand:SVE_I 3 "aarch64_sve_uxt_immediate"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] uxt%e3\t%0.<Vetype>, %1/m, %0.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;uxt%e3\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Predicated truncate-and-zero-extend operations, merging with an
***************
*** 3179,3198 ****
  ;; as early-clobber helps to make the instruction more regular to the
  ;; register allocator.
  (define_insn "*cond_uxt<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=&w, ?&w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (and:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "w, w, w")
  	     (match_operand:SVE_I 3 "aarch64_sve_uxt_immediate"))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    uxt%e3\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;uxt%e3\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %4\;uxt%e3\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 3317,3336 ----
  ;; as early-clobber helps to make the instruction more regular to the
  ;; register allocator.
  (define_insn "*cond_uxt<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (and:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand")
  	     (match_operand:SVE_I 3 "aarch64_sve_uxt_immediate"))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 4  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] uxt%e3\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;uxt%e3\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %4\;uxt%e3\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 3225,3269 ****
  ;; - CNOT
  ;; -------------------------------------------------------------------------
  
! ;; Predicated logical inverse.
! (define_expand "@aarch64_pred_cnot<mode>"
    [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
  	  [(unspec:<VPRED>
  	     [(match_operand:<VPRED> 1 "register_operand")
! 	      (match_operand:SI 2 "aarch64_sve_ptrue_flag")
  	      (eq:<VPRED>
! 		(match_operand:SVE_FULL_I 3 "register_operand")
! 		(match_dup 4))]
  	     UNSPEC_PRED_Z)
! 	   (match_dup 5)
! 	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
    {
!     operands[4] = CONST0_RTX (<MODE>mode);
!     operands[5] = CONST1_RTX (<MODE>mode);
    }
  )
  
  (define_insn "*cnot<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
  	  [(unspec:<VPRED>
! 	     [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
! 	      (match_operand:SI 5 "aarch64_sve_ptrue_flag")
  	      (eq:<VPRED>
! 		(match_operand:SVE_I 2 "register_operand" "0, w")
  		(match_operand:SVE_I 3 "aarch64_simd_imm_zero"))]
  	     UNSPEC_PRED_Z)
  	   (match_operand:SVE_I 4 "aarch64_simd_imm_one")
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %2\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated logical inverse with merging.
--- 3363,3407 ----
  ;; - CNOT
  ;; -------------------------------------------------------------------------
  
! ;; Logical inverse, predicated with a ptrue.
! (define_expand "@aarch64_ptrue_cnot<mode>"
    [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
  	  [(unspec:<VPRED>
  	     [(match_operand:<VPRED> 1 "register_operand")
! 	      (const_int SVE_KNOWN_PTRUE)
  	      (eq:<VPRED>
! 		(match_operand:SVE_FULL_I 2 "register_operand")
! 		(match_dup 3))]
  	     UNSPEC_PRED_Z)
! 	   (match_dup 4)
! 	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
    {
!     operands[3] = CONST0_RTX (<MODE>mode);
!     operands[4] = CONST1_RTX (<MODE>mode);
    }
  )
  
  (define_insn "*cnot<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
  	  [(unspec:<VPRED>
! 	     [(match_operand:<VPRED> 1 "register_operand")
! 	      (const_int SVE_KNOWN_PTRUE)
  	      (eq:<VPRED>
! 		(match_operand:SVE_I 2 "register_operand")
  		(match_operand:SVE_I 3 "aarch64_simd_imm_zero"))]
  	     UNSPEC_PRED_Z)
  	   (match_operand:SVE_I 4 "aarch64_simd_imm_one")
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Predicated logical inverse with merging.
***************
*** 3294,3309 ****
  
  ;; Predicated logical inverse, merging with the first input.
  (define_insn_and_rewrite "*cond_cnot<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   ;; Logical inverse of operand 2 (as above).
  	   (unspec:SVE_I
  	     [(unspec:<VPRED>
  		[(match_operand 5)
  		 (const_int SVE_KNOWN_PTRUE)
  		 (eq:<VPRED>
! 		   (match_operand:SVE_I 2 "register_operand" "0, w")
  		   (match_operand:SVE_I 3 "aarch64_simd_imm_zero"))]
  		UNSPEC_PRED_Z)
  	      (match_operand:SVE_I 4 "aarch64_simd_imm_one")
--- 3432,3447 ----
  
  ;; Predicated logical inverse, merging with the first input.
  (define_insn_and_rewrite "*cond_cnot<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   ;; Logical inverse of operand 2 (as above).
  	   (unspec:SVE_I
  	     [(unspec:<VPRED>
  		[(match_operand 5)
  		 (const_int SVE_KNOWN_PTRUE)
  		 (eq:<VPRED>
! 		   (match_operand:SVE_I 2 "register_operand")
  		   (match_operand:SVE_I 3 "aarch64_simd_imm_zero"))]
  		UNSPEC_PRED_Z)
  	      (match_operand:SVE_I 4 "aarch64_simd_imm_one")
***************
*** 3312,3325 ****
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    cnot\t%0.<Vetype>, %1/m, %0.<Vetype>
!    movprfx\t%0, %2\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>"
    "&& !CONSTANT_P (operands[5])"
    {
      operands[5] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated logical inverse, merging with an independent value.
--- 3450,3463 ----
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] cnot\t%0.<Vetype>, %1/m, %0.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
    "&& !CONSTANT_P (operands[5])"
    {
      operands[5] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Predicated logical inverse, merging with an independent value.
***************
*** 3330,3362 ****
  ;; as earlyclobber helps to make the instruction more regular to the
  ;; register allocator.
  (define_insn_and_rewrite "*cond_cnot<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=&w, ?&w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   ;; Logical inverse of operand 2 (as above).
  	   (unspec:SVE_I
  	     [(unspec:<VPRED>
  		[(match_operand 5)
  		 (const_int SVE_KNOWN_PTRUE)
  		 (eq:<VPRED>
! 		   (match_operand:SVE_I 2 "register_operand" "w, w, w")
  		   (match_operand:SVE_I 3 "aarch64_simd_imm_zero"))]
  		UNSPEC_PRED_Z)
  	      (match_operand:SVE_I 4 "aarch64_simd_imm_one")
  	      (match_dup 3)]
  	     UNSPEC_SEL)
! 	   (match_operand:SVE_I 6 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[6])"
!   "@
!    cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %6\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>"
    "&& !CONSTANT_P (operands[5])"
    {
      operands[5] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 3468,3500 ----
  ;; as earlyclobber helps to make the instruction more regular to the
  ;; register allocator.
  (define_insn_and_rewrite "*cond_cnot<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   ;; Logical inverse of operand 2 (as above).
  	   (unspec:SVE_I
  	     [(unspec:<VPRED>
  		[(match_operand 5)
  		 (const_int SVE_KNOWN_PTRUE)
  		 (eq:<VPRED>
! 		   (match_operand:SVE_I 2 "register_operand")
  		   (match_operand:SVE_I 3 "aarch64_simd_imm_zero"))]
  		UNSPEC_PRED_Z)
  	      (match_operand:SVE_I 4 "aarch64_simd_imm_one")
  	      (match_dup 3)]
  	     UNSPEC_SEL)
! 	   (match_operand:SVE_I 6 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[6])"
!   {@ [ cons: =0 , 1   , 2 , 6  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %6\;cnot\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
    "&& !CONSTANT_P (operands[5])"
    {
      operands[5] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 3421,3437 ****
  
  ;; Predicated floating-point unary operations.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "0, w")]
  	  SVE_COND_FP_UNARY))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point unary arithmetic with merging.
--- 3559,3575 ----
  
  ;; Predicated floating-point unary operations.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")]
  	  SVE_COND_FP_UNARY))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Predicated floating-point unary arithmetic with merging.
***************
*** 3451,3493 ****
  
  ;; Predicated floating-point unary arithmetic, merging with the first input.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 3)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")]
  	     SVE_COND_FP_UNARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[3])"
    {
      operands[3] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")]
  	     SVE_COND_FP_UNARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point unary arithmetic, merging with an independent
--- 3589,3631 ----
  
  ;; Predicated floating-point unary arithmetic, merging with the first input.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 3)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")]
  	     SVE_COND_FP_UNARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[3])"
    {
      operands[3] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")]
  	     SVE_COND_FP_UNARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Predicated floating-point unary arithmetic, merging with an independent
***************
*** 3499,3543 ****
  ;; as earlyclobber helps to make the instruction more regular to the
  ;; register allocator.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, ?&w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w")]
  	     SVE_COND_FP_UNARY)
! 	   (match_operand:SVE_FULL_F 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[3])"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, ?&w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w")]
  	     SVE_COND_FP_UNARY)
! 	   (match_operand:SVE_FULL_F 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[3])"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 3637,3681 ----
  ;; as earlyclobber helps to make the instruction more regular to the
  ;; register allocator.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")]
  	     SVE_COND_FP_UNARY)
! 	   (match_operand:SVE_FULL_F 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[3])"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")]
  	     SVE_COND_FP_UNARY)
! 	   (match_operand:SVE_FULL_F 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[3])"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 3651,3657 ****
    [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
  	  [(match_dup 3)
! 	   (SVE_INT_BINARY_IMM:SVE_I
  	     (match_operand:SVE_I 1 "register_operand")
  	     (match_operand:SVE_I 2 "aarch64_sve_<sve_imm_con>_operand"))]
  	  UNSPEC_PRED_X))]
--- 3789,3795 ----
    [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
  	  [(match_dup 3)
! 	   (SVE_INT_BINARY_MULTI:SVE_I
  	     (match_operand:SVE_I 1 "register_operand")
  	     (match_operand:SVE_I 2 "aarch64_sve_<sve_imm_con>_operand"))]
  	  UNSPEC_PRED_X))]
***************
*** 3661,3707 ****
    }
  )
  
  ;; Integer binary operations that have an immediate form, predicated
  ;; with a PTRUE.  We don't actually need the predicate for the first
  ;; and third alternatives, but using Upa or X isn't likely to gain much
  ;; and would make the instruction seem less uniform to the register
  ;; allocator.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, w, ?&w, ?&w")
! 	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
! 	   (SVE_INT_BINARY_IMM:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "%0, 0, w, w")
! 	     (match_operand:SVE_I 3 "aarch64_sve_<sve_imm_con>_operand" "<sve_imm_con>, w, <sve_imm_con>, w"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   "@
!    #
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    ; Split the unpredicated form after reload, so that we don't have
    ; the unnecessary PTRUE.
    "&& reload_completed
     && !register_operand (operands[3], <MODE>mode)"
    [(set (match_dup 0)
! 	(SVE_INT_BINARY_IMM:SVE_I (match_dup 2) (match_dup 3)))]
    ""
-   [(set_attr "movprfx" "*,*,yes,yes")]
  )
  
  ;; Unpredicated binary operations with a constant (post-RA only).
  ;; These are generated by splitting a predicated instruction whose
  ;; predicate is unused.
  (define_insn "*post_ra_<optab><mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
! 	(SVE_INT_BINARY_IMM:SVE_I
! 	  (match_operand:SVE_I 1 "register_operand" "0, w")
! 	  (match_operand:SVE_I 2 "aarch64_sve_<sve_imm_con>_immediate")))]
    "TARGET_SVE && reload_completed"
    "@
!    <sve_int_op>\t%0.<Vetype>, %0.<Vetype>, #%<sve_imm_prefix>2
!    movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %0.<Vetype>, #%<sve_imm_prefix>2"
    [(set_attr "movprfx" "*,yes")]
  )
  
--- 3799,3873 ----
    }
  )
  
+ ;; Unpredicated integer binary operations that have an immediate form.
+ ;; Advanced SIMD does not support vector DImode MUL, but SVE does.
+ ;; Make use of the overlap between Z and V registers to implement the V2DI
+ ;; optab for TARGET_SVE.  The mulvnx2di3 expander can
+ ;; handle the TARGET_SVE2 case transparently.
+ (define_expand "mul<mode>3"
+   [(set (match_operand:SVE_I_SIMD_DI 0 "register_operand")
+ 	(unspec:SVE_I_SIMD_DI
+ 	  [(match_dup 3)
+ 	   (mult:SVE_I_SIMD_DI
+ 	     (match_operand:SVE_I_SIMD_DI 1 "register_operand")
+ 	     (match_operand:SVE_I_SIMD_DI 2 "aarch64_sve_vsm_operand"))]
+ 	  UNSPEC_PRED_X))]
+   "TARGET_SVE"
+   {
+     /* SVE2 supports the MUL (vectors, unpredicated) form.  Emit the simple
+        pattern for it here rather than splitting off the MULT expander
+        separately.  */
+     if (TARGET_SVE2)
+       {
+ 	emit_move_insn (operands[0], gen_rtx_MULT (<MODE>mode,
+ 						   operands[1], operands[2]));
+ 	DONE;
+       }
+     operands[3] = aarch64_ptrue_reg (<VPRED>mode);
+   }
+ )
+ 
  ;; Integer binary operations that have an immediate form, predicated
  ;; with a PTRUE.  We don't actually need the predicate for the first
  ;; and third alternatives, but using Upa or X isn't likely to gain much
  ;; and would make the instruction seem less uniform to the register
  ;; allocator.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_I_SIMD_DI 0 "register_operand")
! 	(unspec:SVE_I_SIMD_DI
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (SVE_INT_BINARY_IMM:SVE_I_SIMD_DI
! 	     (match_operand:SVE_I_SIMD_DI 2 "register_operand")
! 	     (match_operand:SVE_I_SIMD_DI 3 "aarch64_sve_<sve_imm_con>_operand"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3             ; attrs: movprfx ]
!      [ w        , Upl , %0 , <sve_imm_con> ; *              ] #
!      [ w        , Upl , 0  , w             ; *              ] <sve_int_op>\t%Z0.<Vetype>, %1/m, %Z0.<Vetype>, %Z3.<Vetype>
!      [ ?&w      , Upl , w  , <sve_imm_con> ; yes            ] #
!      [ ?&w      , Upl , w  , w             ; yes            ] movprfx\t%Z0, %Z2\;<sve_int_op>\t%Z0.<Vetype>, %1/m, %Z0.<Vetype>, %Z3.<Vetype>
!   }
    ; Split the unpredicated form after reload, so that we don't have
    ; the unnecessary PTRUE.
    "&& reload_completed
     && !register_operand (operands[3], <MODE>mode)"
    [(set (match_dup 0)
! 	(SVE_INT_BINARY_IMM:SVE_I_SIMD_DI (match_dup 2) (match_dup 3)))]
    ""
  )
  
  ;; Unpredicated binary operations with a constant (post-RA only).
  ;; These are generated by splitting a predicated instruction whose
  ;; predicate is unused.
  (define_insn "*post_ra_<optab><mode>3"
!   [(set (match_operand:SVE_I_SIMD_DI 0 "register_operand" "=w, ?&w")
! 	(SVE_INT_BINARY_IMM:SVE_I_SIMD_DI
! 	  (match_operand:SVE_I_SIMD_DI 1 "register_operand" "0, w")
! 	  (match_operand:SVE_I_SIMD_DI 2 "aarch64_sve_<sve_imm_con>_immediate")))]
    "TARGET_SVE && reload_completed"
    "@
!    <sve_int_op>\t%Z0.<Vetype>, %Z0.<Vetype>, #%<sve_imm_prefix>2
!    movprfx\t%Z0, %Z1\;<sve_int_op>\t%Z0.<Vetype>, %Z0.<Vetype>, #%<sve_imm_prefix>2"
    [(set_attr "movprfx" "*,yes")]
  )
  
***************
*** 3720,3776 ****
  
  ;; Predicated integer operations, merging with the first input.
  (define_insn "*cond_<optab><mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (SVE_INT_BINARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "0, w")
! 	     (match_operand:SVE_I 3 "register_operand" "w, w"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer operations, merging with the second input.
  (define_insn "*cond_<optab><mode>_3"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (SVE_INT_BINARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "w, w")
! 	     (match_operand:SVE_I 3 "register_operand" "0, w"))
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer operations, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=&w, &w, &w, &w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (SVE_INT_BINARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "0, w, w, w, w")
! 	     (match_operand:SVE_I 3 "register_operand" "w, 0, w, w, w"))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 3886,3943 ----
  
  ;; Predicated integer operations, merging with the first input.
  (define_insn "*cond_<optab><mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_BINARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand")
! 	     (match_operand:SVE_I 3 "register_operand"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated integer operations, merging with the second input.
  (define_insn "*cond_<optab><mode>_3"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_BINARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand")
! 	     (match_operand:SVE_I 3 "register_operand"))
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] <sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
  )
  
  ;; Predicated integer operations, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_BINARY:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand")
! 	     (match_operand:SVE_I 3 "register_operand"))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 3799,3817 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "add<mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, w, w, ?w, ?w, w")
  	(plus:SVE_I
! 	  (match_operand:SVE_I 1 "register_operand" "%0, 0, 0, w, w, w")
! 	  (match_operand:SVE_I 2 "aarch64_sve_add_operand" "vsa, vsn, vsi, vsa, vsn, w")))]
    "TARGET_SVE"
!   "@
!    add\t%0.<Vetype>, %0.<Vetype>, #%D2
!    sub\t%0.<Vetype>, %0.<Vetype>, #%N2
!    * return aarch64_output_sve_vector_inc_dec (\"%0.<Vetype>\", operands[2]);
!    movprfx\t%0, %1\;add\t%0.<Vetype>, %0.<Vetype>, #%D2
!    movprfx\t%0, %1\;sub\t%0.<Vetype>, %0.<Vetype>, #%N2
!    add\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>"
!   [(set_attr "movprfx" "*,*,*,yes,yes,*")]
  )
  
  ;; Merging forms are handled through SVE_INT_BINARY.
--- 3966,3984 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "add<mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(plus:SVE_I
! 	  (match_operand:SVE_I 1 "register_operand")
! 	  (match_operand:SVE_I 2 "aarch64_sve_add_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1  , 2   ; attrs: movprfx ]
!      [ w        , %0 , vsa ; *              ] add\t%0.<Vetype>, %0.<Vetype>, #%D2
!      [ w        , 0  , vsn ; *              ] sub\t%0.<Vetype>, %0.<Vetype>, #%N2
!      [ w        , 0  , vsi ; *              ] << aarch64_output_sve_vector_inc_dec ("%0.<Vetype>", operands[2]);
!      [ ?w       , w  , vsa ; yes            ] movprfx\t%0, %1\;add\t%0.<Vetype>, %0.<Vetype>, #%D2
!      [ ?w       , w  , vsn ; yes            ] movprfx\t%0, %1\;sub\t%0.<Vetype>, %0.<Vetype>, #%N2
!      [ w        , w  , w   ; *              ] add\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>
!   }
  )
  
  ;; Merging forms are handled through SVE_INT_BINARY.
***************
*** 3825,3840 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "sub<mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, w, ?&w")
  	(minus:SVE_I
! 	  (match_operand:SVE_I 1 "aarch64_sve_arith_operand" "w, vsa, vsa")
! 	  (match_operand:SVE_I 2 "register_operand" "w, 0, w")))]
    "TARGET_SVE"
!   "@
!    sub\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>
!    subr\t%0.<Vetype>, %0.<Vetype>, #%D1
!    movprfx\t%0, %2\;subr\t%0.<Vetype>, %0.<Vetype>, #%D1"
!   [(set_attr "movprfx" "*,*,yes")]
  )
  
  ;; Merging forms are handled through SVE_INT_BINARY.
--- 3992,4007 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "sub<mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(minus:SVE_I
! 	  (match_operand:SVE_I 1 "aarch64_sve_arith_operand")
! 	  (match_operand:SVE_I 2 "register_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , w   , w ; *              ] sub\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>
!      [ w        , vsa , 0 ; *              ] subr\t%0.<Vetype>, %0.<Vetype>, #%D1
!      [ ?&w      , vsa , w ; yes            ] movprfx\t%0, %2\;subr\t%0.<Vetype>, %0.<Vetype>, #%D1
!   }
  )
  
  ;; Merging forms are handled through SVE_INT_BINARY.
***************
*** 3854,3860 ****
  	  [(match_operand:SVE_FULL_SDI 1 "register_operand" "w")
  	   (match_operand:SVE_FULL_SDI 2 "register_operand" "w")]
  	  UNSPEC_ADR))]
!   "TARGET_SVE"
    "adr\t%0.<Vetype>, [%1.<Vetype>, %2.<Vetype>]"
  )
  
--- 4021,4027 ----
  	  [(match_operand:SVE_FULL_SDI 1 "register_operand" "w")
  	   (match_operand:SVE_FULL_SDI 2 "register_operand" "w")]
  	  UNSPEC_ADR))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "adr\t%0.<Vetype>, [%1.<Vetype>, %2.<Vetype>]"
  )
  
***************
*** 3870,3876 ****
  		  (match_operand:VNx2DI 2 "register_operand" "w")))]
  	     UNSPEC_PRED_X)]
  	  UNSPEC_ADR))]
!   "TARGET_SVE"
    "adr\t%0.d, [%1.d, %2.d, sxtw]"
    "&& !CONSTANT_P (operands[3])"
    {
--- 4037,4043 ----
  		  (match_operand:VNx2DI 2 "register_operand" "w")))]
  	     UNSPEC_PRED_X)]
  	  UNSPEC_ADR))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "adr\t%0.d, [%1.d, %2.d, sxtw]"
    "&& !CONSTANT_P (operands[3])"
    {
***************
*** 3887,3893 ****
  	     (match_operand:VNx2DI 2 "register_operand" "w")
  	     (match_operand:VNx2DI 3 "aarch64_sve_uxtw_immediate"))]
  	  UNSPEC_ADR))]
!   "TARGET_SVE"
    "adr\t%0.d, [%1.d, %2.d, uxtw]"
  )
  
--- 4054,4060 ----
  	     (match_operand:VNx2DI 2 "register_operand" "w")
  	     (match_operand:VNx2DI 3 "aarch64_sve_uxtw_immediate"))]
  	  UNSPEC_ADR))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "adr\t%0.d, [%1.d, %2.d, uxtw]"
  )
  
***************
*** 3899,3905 ****
  	    (match_operand:VNx2DI 2 "register_operand" "w")
  	    (match_operand:VNx2DI 3 "aarch64_sve_uxtw_immediate"))
  	  (match_operand:VNx2DI 1 "register_operand" "w")))]
!   "TARGET_SVE"
    "adr\t%0.d, [%1.d, %2.d, uxtw]"
  )
  
--- 4066,4072 ----
  	    (match_operand:VNx2DI 2 "register_operand" "w")
  	    (match_operand:VNx2DI 3 "aarch64_sve_uxtw_immediate"))
  	  (match_operand:VNx2DI 1 "register_operand" "w")))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "adr\t%0.d, [%1.d, %2.d, uxtw]"
  )
  
***************
*** 3914,3920 ****
  	       (match_operand:SVE_FULL_SDI 3 "const_1_to_3_operand"))]
  	    UNSPEC_PRED_X)
  	  (match_operand:SVE_FULL_SDI 1 "register_operand")))]
!   "TARGET_SVE"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
--- 4081,4087 ----
  	       (match_operand:SVE_FULL_SDI 3 "const_1_to_3_operand"))]
  	    UNSPEC_PRED_X)
  	  (match_operand:SVE_FULL_SDI 1 "register_operand")))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
***************
*** 3930,3936 ****
  	       (match_operand:SVE_24I 3 "const_1_to_3_operand"))]
  	    UNSPEC_PRED_X)
  	  (match_operand:SVE_24I 1 "register_operand" "w")))]
!   "TARGET_SVE"
    "adr\t%0.<Vctype>, [%1.<Vctype>, %2.<Vctype>, lsl %3]"
    "&& !CONSTANT_P (operands[4])"
    {
--- 4097,4103 ----
  	       (match_operand:SVE_24I 3 "const_1_to_3_operand"))]
  	    UNSPEC_PRED_X)
  	  (match_operand:SVE_24I 1 "register_operand" "w")))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "adr\t%0.<Vctype>, [%1.<Vctype>, %2.<Vctype>, lsl %3]"
    "&& !CONSTANT_P (operands[4])"
    {
***************
*** 3954,3960 ****
  	       (match_operand:VNx2DI 3 "const_1_to_3_operand"))]
  	    UNSPEC_PRED_X)
  	  (match_operand:VNx2DI 1 "register_operand" "w")))]
!   "TARGET_SVE"
    "adr\t%0.d, [%1.d, %2.d, sxtw %3]"
    "&& (!CONSTANT_P (operands[4]) || !CONSTANT_P (operands[5]))"
    {
--- 4121,4127 ----
  	       (match_operand:VNx2DI 3 "const_1_to_3_operand"))]
  	    UNSPEC_PRED_X)
  	  (match_operand:VNx2DI 1 "register_operand" "w")))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "adr\t%0.d, [%1.d, %2.d, sxtw %3]"
    "&& (!CONSTANT_P (operands[4]) || !CONSTANT_P (operands[5]))"
    {
***************
*** 3975,3981 ****
  	       (match_operand:VNx2DI 3 "const_1_to_3_operand"))]
  	    UNSPEC_PRED_X)
  	  (match_operand:VNx2DI 1 "register_operand" "w")))]
!   "TARGET_SVE"
    "adr\t%0.d, [%1.d, %2.d, uxtw %3]"
    "&& !CONSTANT_P (operands[5])"
    {
--- 4142,4148 ----
  	       (match_operand:VNx2DI 3 "const_1_to_3_operand"))]
  	    UNSPEC_PRED_X)
  	  (match_operand:VNx2DI 1 "register_operand" "w")))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "adr\t%0.d, [%1.d, %2.d, uxtw %3]"
    "&& !CONSTANT_P (operands[5])"
    {
***************
*** 3992,3998 ****
  ;; -------------------------------------------------------------------------
  
  ;; Unpredicated integer absolute difference.
! (define_expand "<su>abd<mode>_3"
    [(use (match_operand:SVE_I 0 "register_operand"))
     (USMAX:SVE_I
       (match_operand:SVE_I 1 "register_operand")
--- 4159,4165 ----
  ;; -------------------------------------------------------------------------
  
  ;; Unpredicated integer absolute difference.
! (define_expand "<su>abd<mode>3"
    [(use (match_operand:SVE_I 0 "register_operand"))
     (USMAX:SVE_I
       (match_operand:SVE_I 1 "register_operand")
***************
*** 4008,4020 ****
  
  ;; Predicated integer absolute difference.
  (define_insn "@aarch64_pred_<su>abd<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(minus:SVE_I
  	  (unspec:SVE_I
! 	    [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	     (USMAX:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "%0, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w"))]
  	    UNSPEC_PRED_X)
  	  (unspec:SVE_I
  	    [(match_dup 1)
--- 4175,4187 ----
  
  ;; Predicated integer absolute difference.
  (define_insn "@aarch64_pred_<su>abd<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(minus:SVE_I
  	  (unspec:SVE_I
! 	    [(match_operand:<VPRED> 1 "register_operand")
  	     (USMAX:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand"))]
  	    UNSPEC_PRED_X)
  	  (unspec:SVE_I
  	    [(match_dup 1)
***************
*** 4023,4032 ****
  	       (match_dup 3))]
  	    UNSPEC_PRED_X)))]
    "TARGET_SVE"
!   "@
!    <su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_expand "@aarch64_cond_<su>abd<mode>"
--- 4190,4199 ----
  	       (match_dup 3))]
  	    UNSPEC_PRED_X)))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3 ; attrs: movprfx ]
!      [ w        , Upl , %0 , w ; *              ] <su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , w ; yes            ] movprfx\t%0, %2\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  (define_expand "@aarch64_cond_<su>abd<mode>"
***************
*** 4056,4070 ****
  
  ;; Predicated integer absolute difference, merging with the first input.
  (define_insn_and_rewrite "*aarch64_cond_<su>abd<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (minus:SVE_I
  	     (unspec:SVE_I
  	       [(match_operand 4)
  		(USMAX:SVE_I
! 		  (match_operand:SVE_I 2 "register_operand" "0, w")
! 		  (match_operand:SVE_I 3 "register_operand" "w, w"))]
  	       UNSPEC_PRED_X)
  	     (unspec:SVE_I
  	       [(match_operand 5)
--- 4223,4237 ----
  
  ;; Predicated integer absolute difference, merging with the first input.
  (define_insn_and_rewrite "*aarch64_cond_<su>abd<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (minus:SVE_I
  	     (unspec:SVE_I
  	       [(match_operand 4)
  		(USMAX:SVE_I
! 		  (match_operand:SVE_I 2 "register_operand")
! 		  (match_operand:SVE_I 3 "register_operand"))]
  	       UNSPEC_PRED_X)
  	     (unspec:SVE_I
  	       [(match_operand 5)
***************
*** 4075,4101 ****
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& (!CONSTANT_P (operands[4]) || !CONSTANT_P (operands[5]))"
    {
      operands[4] = operands[5] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer absolute difference, merging with the second input.
  (define_insn_and_rewrite "*aarch64_cond_<su>abd<mode>_3"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (minus:SVE_I
  	     (unspec:SVE_I
  	       [(match_operand 4)
  		(USMAX:SVE_I
! 		  (match_operand:SVE_I 2 "register_operand" "w, w")
! 		  (match_operand:SVE_I 3 "register_operand" "0, w"))]
  	       UNSPEC_PRED_X)
  	     (unspec:SVE_I
  	       [(match_operand 5)
--- 4242,4268 ----
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& (!CONSTANT_P (operands[4]) || !CONSTANT_P (operands[5]))"
    {
      operands[4] = operands[5] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Predicated integer absolute difference, merging with the second input.
  (define_insn_and_rewrite "*aarch64_cond_<su>abd<mode>_3"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (minus:SVE_I
  	     (unspec:SVE_I
  	       [(match_operand 4)
  		(USMAX:SVE_I
! 		  (match_operand:SVE_I 2 "register_operand")
! 		  (match_operand:SVE_I 3 "register_operand"))]
  	       UNSPEC_PRED_X)
  	     (unspec:SVE_I
  	       [(match_operand 5)
***************
*** 4106,4132 ****
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
    "&& (!CONSTANT_P (operands[4]) || !CONSTANT_P (operands[5]))"
    {
      operands[4] = operands[5] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer absolute difference, merging with an independent value.
  (define_insn_and_rewrite "*aarch64_cond_<su>abd<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=&w, &w, &w, &w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (minus:SVE_I
  	     (unspec:SVE_I
  	       [(match_operand 5)
  		(USMAX:SVE_I
! 		  (match_operand:SVE_I 2 "register_operand" "0, w, w, w, w")
! 		  (match_operand:SVE_I 3 "register_operand" "w, 0, w, w, w"))]
  	       UNSPEC_PRED_X)
  	     (unspec:SVE_I
  	       [(match_operand 6)
--- 4273,4299 ----
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] <su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
    "&& (!CONSTANT_P (operands[4]) || !CONSTANT_P (operands[5]))"
    {
      operands[4] = operands[5] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Predicated integer absolute difference, merging with an independent value.
  (define_insn_and_rewrite "*aarch64_cond_<su>abd<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (minus:SVE_I
  	     (unspec:SVE_I
  	       [(match_operand 5)
  		(USMAX:SVE_I
! 		  (match_operand:SVE_I 2 "register_operand")
! 		  (match_operand:SVE_I 3 "register_operand"))]
  	       UNSPEC_PRED_X)
  	     (unspec:SVE_I
  	       [(match_operand 6)
***************
*** 4134,4150 ****
  		  (match_dup 2)
  		  (match_dup 3))]
  	       UNSPEC_PRED_X))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& 1"
    {
      if (!CONSTANT_P (operands[5]) || !CONSTANT_P (operands[6]))
--- 4301,4318 ----
  		  (match_dup 2)
  		  (match_dup 3))]
  	       UNSPEC_PRED_X))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<su>abd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& 1"
    {
      if (!CONSTANT_P (operands[5]) || !CONSTANT_P (operands[6]))
***************
*** 4174,4205 ****
  
  ;; Unpredicated saturating signed addition and subtraction.
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, w, ?&w, ?&w, w")
  	(SBINQOPS:SVE_FULL_I
! 	  (match_operand:SVE_FULL_I 1 "register_operand" "0, 0, w, w, w")
! 	  (match_operand:SVE_FULL_I 2 "aarch64_sve_sqadd_operand" "vsQ, vsS, vsQ, vsS, w")))]
    "TARGET_SVE"
!   "@
!    <binqops_op>\t%0.<Vetype>, %0.<Vetype>, #%D2
!    <binqops_op_rev>\t%0.<Vetype>, %0.<Vetype>, #%N2
!    movprfx\t%0, %1\;<binqops_op>\t%0.<Vetype>, %0.<Vetype>, #%D2
!    movprfx\t%0, %1\;<binqops_op_rev>\t%0.<Vetype>, %0.<Vetype>, #%N2
!    <binqops_op>\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>"
!   [(set_attr "movprfx" "*,*,yes,yes,*")]
  )
  
  ;; Unpredicated saturating unsigned addition and subtraction.
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w, w")
  	(UBINQOPS:SVE_FULL_I
! 	  (match_operand:SVE_FULL_I 1 "register_operand" "0, w, w")
! 	  (match_operand:SVE_FULL_I 2 "aarch64_sve_arith_operand" "vsa, vsa, w")))]
    "TARGET_SVE"
!   "@
!    <binqops_op>\t%0.<Vetype>, %0.<Vetype>, #%D2
!    movprfx\t%0, %1\;<binqops_op>\t%0.<Vetype>, %0.<Vetype>, #%D2
!    <binqops_op>\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes,*")]
  )
  
  ;; -------------------------------------------------------------------------
--- 4342,4373 ----
  
  ;; Unpredicated saturating signed addition and subtraction.
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(SBINQOPS:SVE_FULL_I
! 	  (match_operand:SVE_FULL_I 1 "register_operand")
! 	  (match_operand:SVE_FULL_I 2 "aarch64_sve_sqadd_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , 0 , vsQ ; *              ] <binqops_op>\t%0.<Vetype>, %0.<Vetype>, #%D2
!      [ w        , 0 , vsS ; *              ] <binqops_op_rev>\t%0.<Vetype>, %0.<Vetype>, #%N2
!      [ ?&w      , w , vsQ ; yes            ] movprfx\t%0, %1\;<binqops_op>\t%0.<Vetype>, %0.<Vetype>, #%D2
!      [ ?&w      , w , vsS ; yes            ] movprfx\t%0, %1\;<binqops_op_rev>\t%0.<Vetype>, %0.<Vetype>, #%N2
!      [ w        , w , w   ; *              ] <binqops_op>\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>
!   }
  )
  
  ;; Unpredicated saturating unsigned addition and subtraction.
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(UBINQOPS:SVE_FULL_I
! 	  (match_operand:SVE_FULL_I 1 "register_operand")
! 	  (match_operand:SVE_FULL_I 2 "aarch64_sve_arith_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , 0 , vsa ; *              ] <binqops_op>\t%0.<Vetype>, %0.<Vetype>, #%D2
!      [ ?&w      , w , vsa ; yes            ] movprfx\t%0, %1\;<binqops_op>\t%0.<Vetype>, %0.<Vetype>, #%D2
!      [ w        , w , w   ; *              ] <binqops_op>\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 4228,4246 ****
  
  ;; Predicated highpart multiplication.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_I
! 	     [(match_operand:SVE_I 2 "register_operand" "%0, w")
! 	      (match_operand:SVE_I 3 "register_operand" "w, w")]
  	     MUL_HIGHPART)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   "@
!    <su>mulh\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<su>mulh\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated highpart multiplications with merging.
--- 4396,4414 ----
  
  ;; Predicated highpart multiplication.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_I
! 	     [(match_operand:SVE_I 2 "register_operand")
! 	      (match_operand:SVE_I 3 "register_operand")]
  	     MUL_HIGHPART)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3 ; attrs: movprfx ]
!      [ w        , Upl , %0 , w ; *              ] <su>mulh\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , w ; yes            ] movprfx\t%0, %2\;<su>mulh\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated highpart multiplications with merging.
***************
*** 4264,4299 ****
  
  ;; Predicated highpart multiplications, merging with the first input.
  (define_insn "*cond_<optab><mode>_2"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand" "0, w")
! 	      (match_operand:SVE_FULL_I 3 "register_operand" "w, w")]
  	     MUL_HIGHPART)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")])
  
  ;; Predicated highpart multiplications, merging with zero.
  (define_insn "*cond_<optab><mode>_z"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=&w, &w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand" "%0, w")
! 	      (match_operand:SVE_FULL_I 3 "register_operand" "w, w")]
  	     MUL_HIGHPART)
  	   (match_operand:SVE_FULL_I 4 "aarch64_simd_imm_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    [(set_attr "movprfx" "yes")])
  
  ;; -------------------------------------------------------------------------
--- 4432,4469 ----
  
  ;; Predicated highpart multiplications, merging with the first input.
  (define_insn "*cond_<optab><mode>_2"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand")
! 	      (match_operand:SVE_FULL_I 3 "register_operand")]
  	     MUL_HIGHPART)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
! )
  
  ;; Predicated highpart multiplications, merging with zero.
  (define_insn "*cond_<optab><mode>_z"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand")
! 	      (match_operand:SVE_FULL_I 3 "register_operand")]
  	     MUL_HIGHPART)
  	   (match_operand:SVE_FULL_I 4 "aarch64_simd_imm_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3  ]
!      [ &w       , Upl , %0 , w  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w  , w  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    [(set_attr "movprfx" "yes")])
  
  ;; -------------------------------------------------------------------------
***************
*** 4307,4319 ****
  ;; -------------------------------------------------------------------------
  
  ;; Unpredicated integer division.
  (define_expand "<optab><mode>3"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
! 	(unspec:SVE_FULL_SDI
  	  [(match_dup 3)
! 	   (SVE_INT_BINARY_SD:SVE_FULL_SDI
! 	     (match_operand:SVE_FULL_SDI 1 "register_operand")
! 	     (match_operand:SVE_FULL_SDI 2 "register_operand"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
    {
--- 4477,4492 ----
  ;; -------------------------------------------------------------------------
  
  ;; Unpredicated integer division.
+ ;; SVE has vector integer divisions, unlike Advanced SIMD.
+ ;; We can use it with Advanced SIMD modes to expose the V2DI and V4SI
+ ;; optabs to the midend.
  (define_expand "<optab><mode>3"
!   [(set (match_operand:SVE_FULL_SDI_SIMD 0 "register_operand")
! 	(unspec:SVE_FULL_SDI_SIMD
  	  [(match_dup 3)
! 	   (SVE_INT_BINARY_SD:SVE_FULL_SDI_SIMD
! 	     (match_operand:SVE_FULL_SDI_SIMD 1 "register_operand")
! 	     (match_operand:SVE_FULL_SDI_SIMD 2 "register_operand"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
    {
***************
*** 4323,4341 ****
  
  ;; Integer division predicated with a PTRUE.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, w, ?&w")
! 	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
! 	   (SVE_INT_BINARY_SD:SVE_FULL_SDI
! 	     (match_operand:SVE_FULL_SDI 2 "register_operand" "0, w, w")
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand" "w, 0, w"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    <sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,*,yes")]
  )
  
  ;; Predicated integer division with merging.
--- 4496,4514 ----
  
  ;; Integer division predicated with a PTRUE.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_SDI_SIMD 0 "register_operand")
! 	(unspec:SVE_FULL_SDI_SIMD
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (SVE_INT_BINARY_SD:SVE_FULL_SDI_SIMD
! 	     (match_operand:SVE_FULL_SDI_SIMD 2 "register_operand")
! 	     (match_operand:SVE_FULL_SDI_SIMD 3 "register_operand"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%Z0.<Vetype>, %1/m, %Z0.<Vetype>, %Z3.<Vetype>
!      [ w        , Upl , w , 0 ; *              ] <sve_int_op>r\t%Z0.<Vetype>, %1/m, %Z0.<Vetype>, %Z2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%Z0, %Z2\;<sve_int_op>\t%Z0.<Vetype>, %1/m, %Z0.<Vetype>, %Z3.<Vetype>
!   }
  )
  
  ;; Predicated integer division with merging.
***************
*** 4353,4409 ****
  
  ;; Predicated integer division, merging with the first input.
  (define_insn "*cond_<optab><mode>_2"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (SVE_INT_BINARY_SD:SVE_FULL_SDI
! 	     (match_operand:SVE_FULL_SDI 2 "register_operand" "0, w")
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand" "w, w"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer division, merging with the second input.
  (define_insn "*cond_<optab><mode>_3"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (SVE_INT_BINARY_SD:SVE_FULL_SDI
! 	     (match_operand:SVE_FULL_SDI 2 "register_operand" "w, w")
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand" "0, w"))
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer division, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=&w, &w, &w, &w, ?&w")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (SVE_INT_BINARY_SD:SVE_FULL_SDI
! 	     (match_operand:SVE_FULL_SDI 2 "register_operand" "0, w, w, w, w")
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand" "w, 0, w, w, w"))
! 	   (match_operand:SVE_FULL_SDI 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 4526,4583 ----
  
  ;; Predicated integer division, merging with the first input.
  (define_insn "*cond_<optab><mode>_2"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_BINARY_SD:SVE_FULL_SDI
! 	     (match_operand:SVE_FULL_SDI 2 "register_operand")
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated integer division, merging with the second input.
  (define_insn "*cond_<optab><mode>_3"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_BINARY_SD:SVE_FULL_SDI
! 	     (match_operand:SVE_FULL_SDI 2 "register_operand")
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand"))
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] <sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
  )
  
  ;; Predicated integer division, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (SVE_INT_BINARY_SD:SVE_FULL_SDI
! 	     (match_operand:SVE_FULL_SDI 2 "register_operand")
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand"))
! 	   (match_operand:SVE_FULL_SDI 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 4426,4441 ****
  
  ;; Unpredicated integer binary logical operations.
  (define_insn "<optab><mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?w, w")
  	(LOGICAL:SVE_I
! 	  (match_operand:SVE_I 1 "register_operand" "%0, w, w")
! 	  (match_operand:SVE_I 2 "aarch64_sve_logical_operand" "vsl, vsl, w")))]
    "TARGET_SVE"
!   "@
!    <logical>\t%0.<Vetype>, %0.<Vetype>, #%C2
!    movprfx\t%0, %1\;<logical>\t%0.<Vetype>, %0.<Vetype>, #%C2
!    <logical>\t%0.d, %1.d, %2.d"
!   [(set_attr "movprfx" "*,yes,*")]
  )
  
  ;; Merging forms are handled through SVE_INT_BINARY.
--- 4600,4615 ----
  
  ;; Unpredicated integer binary logical operations.
  (define_insn "<optab><mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(LOGICAL:SVE_I
! 	  (match_operand:SVE_I 1 "register_operand")
! 	  (match_operand:SVE_I 2 "aarch64_sve_logical_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1  , 2   ; attrs: movprfx ]
!      [ w        , %0 , vsl ; *              ] <logical>\t%0.<Vetype>, %0.<Vetype>, #%C2
!      [ ?w       , w  , vsl ; yes            ] movprfx\t%0, %1\;<logical>\t%0.<Vetype>, %0.<Vetype>, #%C2
!      [ w        , w  , w   ; *              ] <logical>\t%0.d, %1.d, %2.d
!   }
  )
  
  ;; Merging forms are handled through SVE_INT_BINARY.
***************
*** 4495,4533 ****
  
  ;; Predicated integer BIC, merging with the first input.
  (define_insn "*cond_bic<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (and:SVE_I
  	     (not:SVE_I
! 	       (match_operand:SVE_I 3 "register_operand" "w, w"))
! 	     (match_operand:SVE_I 2 "register_operand" "0, w"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer BIC, merging with an independent value.
  (define_insn_and_rewrite "*cond_bic<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=&w, &w, &w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (and:SVE_I
  	     (not:SVE_I
! 	       (match_operand:SVE_I 3 "register_operand" "w, w, w, w"))
! 	     (match_operand:SVE_I 2 "register_operand" "0, w, w, w"))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 4669,4708 ----
  
  ;; Predicated integer BIC, merging with the first input.
  (define_insn "*cond_bic<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (and:SVE_I
  	     (not:SVE_I
! 	       (match_operand:SVE_I 3 "register_operand"))
! 	     (match_operand:SVE_I 2 "register_operand"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated integer BIC, merging with an independent value.
  (define_insn_and_rewrite "*cond_bic<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (and:SVE_I
  	     (not:SVE_I
! 	       (match_operand:SVE_I 3 "register_operand"))
! 	     (match_operand:SVE_I 2 "register_operand"))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;bic\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 4597,4620 ****
  ;; likely to gain much and would make the instruction seem less uniform
  ;; to the register allocator.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, w, w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (ASHIFT:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "w, 0, w, w")
! 	     (match_operand:SVE_I 3 "aarch64_sve_<lr>shift_operand" "D<lr>, w, 0, w"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   "@
!    #
!    <shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    <shift>r\t%0.<Vetype>, %1/m, %3.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %2\;<shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& reload_completed
     && !register_operand (operands[3], <MODE>mode)"
    [(set (match_dup 0) (ASHIFT:SVE_I (match_dup 2) (match_dup 3)))]
    ""
-   [(set_attr "movprfx" "*,*,*,yes")]
  )
  
  ;; Unpredicated shift operations by a constant (post-RA only).
--- 4772,4795 ----
  ;; likely to gain much and would make the instruction seem less uniform
  ;; to the register allocator.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (ASHIFT:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand")
! 	     (match_operand:SVE_I 3 "aarch64_sve_<lr>shift_operand"))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3     ; attrs: movprfx ]
!      [ w        , Upl , w , D<lr> ; *              ] #
!      [ w        , Upl , 0 , w     ; *              ] <shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ w        , Upl , w , 0     ; *              ] <shift>r\t%0.<Vetype>, %1/m, %3.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w     ; yes            ] movprfx\t%0, %2\;<shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& reload_completed
     && !register_operand (operands[3], <MODE>mode)"
    [(set (match_dup 0) (ASHIFT:SVE_I (match_dup 2) (match_dup 3)))]
    ""
  )
  
  ;; Unpredicated shift operations by a constant (post-RA only).
***************
*** 4631,4666 ****
  
  ;; Predicated integer shift, merging with the first input.
  (define_insn "*cond_<optab><mode>_2_const"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (ASHIFT:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "0, w")
  	     (match_operand:SVE_I 3 "aarch64_simd_<lr>shift_imm"))
  	   (match_dup 2)]
  	 UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;<shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer shift, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_const"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, &w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (ASHIFT:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand" "w, w, w")
  	     (match_operand:SVE_I 3 "aarch64_simd_<lr>shift_imm"))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero" "Dz, 0, w")]
  	 UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 4806,4842 ----
  
  ;; Predicated integer shift, merging with the first input.
  (define_insn "*cond_<optab><mode>_2_const"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (ASHIFT:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand")
  	     (match_operand:SVE_I 3 "aarch64_simd_<lr>shift_imm"))
  	   (match_dup 2)]
  	 UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!   }
  )
  
  ;; Predicated integer shift, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_const"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (ASHIFT:SVE_I
! 	     (match_operand:SVE_I 2 "register_operand")
  	     (match_operand:SVE_I 3 "aarch64_simd_<lr>shift_imm"))
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero")]
  	 UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 4   ]
!      [ w        , Upl , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ &w       , Upl , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<shift>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 4700,4735 ****
  ;; Predicated shifts of narrow elements by 64-bit amounts, merging with
  ;; the first input.
  (define_insn "*cond_<sve_int_op><mode>_m"
!   [(set (match_operand:SVE_FULL_BHSI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_BHSI
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_BHSI
! 	     [(match_operand:SVE_FULL_BHSI 2 "register_operand" "0, w")
! 	      (match_operand:VNx2DI 3 "register_operand" "w, w")]
  	     SVE_SHIFT_WIDE)
  	   (match_dup 2)]
  	 UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.d
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.d"
!   [(set_attr "movprfx" "*, yes")])
  
  ;; Predicated shifts of narrow elements by 64-bit amounts, merging with zero.
  (define_insn "*cond_<sve_int_op><mode>_z"
!   [(set (match_operand:SVE_FULL_BHSI 0 "register_operand" "=&w, &w")
  	(unspec:SVE_FULL_BHSI
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_BHSI
! 	     [(match_operand:SVE_FULL_BHSI 2 "register_operand" "0, w")
! 	      (match_operand:VNx2DI 3 "register_operand" "w, w")]
  	     SVE_SHIFT_WIDE)
  	   (match_operand:SVE_FULL_BHSI 4 "aarch64_simd_imm_zero")]
  	 UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.d
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.d"
    [(set_attr "movprfx" "yes")])
  
  ;; -------------------------------------------------------------------------
--- 4876,4913 ----
  ;; Predicated shifts of narrow elements by 64-bit amounts, merging with
  ;; the first input.
  (define_insn "*cond_<sve_int_op><mode>_m"
!   [(set (match_operand:SVE_FULL_BHSI 0 "register_operand")
  	(unspec:SVE_FULL_BHSI
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_BHSI
! 	     [(match_operand:SVE_FULL_BHSI 2 "register_operand")
! 	      (match_operand:VNx2DI 3 "register_operand")]
  	     SVE_SHIFT_WIDE)
  	   (match_dup 2)]
  	 UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.d
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.d
!   }
! )
  
  ;; Predicated shifts of narrow elements by 64-bit amounts, merging with zero.
  (define_insn "*cond_<sve_int_op><mode>_z"
!   [(set (match_operand:SVE_FULL_BHSI 0 "register_operand")
  	(unspec:SVE_FULL_BHSI
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_BHSI
! 	     [(match_operand:SVE_FULL_BHSI 2 "register_operand")
! 	      (match_operand:VNx2DI 3 "register_operand")]
  	     SVE_SHIFT_WIDE)
  	   (match_operand:SVE_FULL_BHSI 4 "aarch64_simd_imm_zero")]
  	 UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3  ]
!      [ &w       , Upl , 0 , w  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.d
!      [ &w       , Upl , w , w  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.d
!   }
    [(set_attr "movprfx" "yes")])
  
  ;; -------------------------------------------------------------------------
***************
*** 4760,4778 ****
  
  ;; Predicated ASRD.
  (define_insn "*sdiv_pow2<mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_I
! 	     [(match_operand:SVE_I 2 "register_operand" "0, w")
  	      (match_operand:SVE_I 3 "aarch64_simd_rshift_imm")]
  	     UNSPEC_ASRD)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   "@
!    asrd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;asrd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3"
!   [(set_attr "movprfx" "*,yes")])
  
  ;; Predicated shift with merging.
  (define_expand "@cond_<sve_int_op><mode>"
--- 4938,4957 ----
  
  ;; Predicated ASRD.
  (define_insn "*sdiv_pow2<mode>3"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_I
! 	     [(match_operand:SVE_I 2 "register_operand")
  	      (match_operand:SVE_I 3 "aarch64_simd_rshift_imm")]
  	     UNSPEC_ASRD)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] asrd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;asrd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!   }
! )
  
  ;; Predicated shift with merging.
  (define_expand "@cond_<sve_int_op><mode>"
***************
*** 4796,4842 ****
  
  ;; Predicated shift, merging with the first input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_I
  	     [(match_operand 4)
  	      (unspec:SVE_I
! 		[(match_operand:SVE_I 2 "register_operand" "0, w")
  		 (match_operand:SVE_I 3 "aarch64_simd_<lr>shift_imm")]
  		SVE_INT_SHIFT_IMM)]
  	     UNSPEC_PRED_X)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
!   [(set_attr "movprfx" "*,yes")])
  
  ;; Predicated shift, merging with an independent value.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, &w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_I
  	     [(match_operand 5)
  	      (unspec:SVE_I
! 		[(match_operand:SVE_I 2 "register_operand" "w, w, w")
  		 (match_operand:SVE_I 3 "aarch64_simd_<lr>shift_imm")]
  		SVE_INT_SHIFT_IMM)]
  	     UNSPEC_PRED_X)
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero" "Dz, 0, w")]
  	 UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 4975,5023 ----
  
  ;; Predicated shift, merging with the first input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_I
  	     [(match_operand 4)
  	      (unspec:SVE_I
! 		[(match_operand:SVE_I 2 "register_operand")
  		 (match_operand:SVE_I 3 "aarch64_simd_<lr>shift_imm")]
  		SVE_INT_SHIFT_IMM)]
  	     UNSPEC_PRED_X)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
! )
  
  ;; Predicated shift, merging with an independent value.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_I
  	     [(match_operand 5)
  	      (unspec:SVE_I
! 		[(match_operand:SVE_I 2 "register_operand")
  		 (match_operand:SVE_I 3 "aarch64_simd_<lr>shift_imm")]
  		SVE_INT_SHIFT_IMM)]
  	     UNSPEC_PRED_X)
! 	   (match_operand:SVE_I 4 "aarch64_simd_reg_or_zero")]
  	 UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 4   ]
!      [ w        , Upl , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ &w       , Upl , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 4872,4889 ****
  ;; Predicated floating-point binary operations that take an integer
  ;; as their second operand.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	   (match_operand:<V_INT_EQUIV> 3 "register_operand" "w, w")]
  	  SVE_COND_FP_BINARY_INT))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point binary operations with merging, taking an
--- 5053,5070 ----
  ;; Predicated floating-point binary operations that take an integer
  ;; as their second operand.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:<V_INT_EQUIV> 3 "register_operand")]
  	  SVE_COND_FP_BINARY_INT))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated floating-point binary operations with merging, taking an
***************
*** 4906,4973 ****
  ;; Predicated floating-point binary operations that take an integer as their
  ;; second operand, with inactive lanes coming from the first operand.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	      (match_operand:<V_INT_EQUIV> 3 "register_operand" "w, w")]
  	     SVE_COND_FP_BINARY_INT)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	      (match_operand:<V_INT_EQUIV> 3 "register_operand" "w, w")]
  	     SVE_COND_FP_BINARY_INT)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point binary operations that take an integer as
  ;; their second operand, with the values of inactive lanes being distinct
  ;; from the other inputs.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w, w, w")
! 	      (match_operand:<V_INT_EQUIV> 3 "register_operand" "w, w, w, w")]
  	     SVE_COND_FP_BINARY_INT)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& 1"
    {
      if (reload_completed
--- 5087,5155 ----
  ;; Predicated floating-point binary operations that take an integer as their
  ;; second operand, with inactive lanes coming from the first operand.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:<V_INT_EQUIV> 3 "register_operand")]
  	     SVE_COND_FP_BINARY_INT)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:<V_INT_EQUIV> 3 "register_operand")]
  	     SVE_COND_FP_BINARY_INT)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated floating-point binary operations that take an integer as
  ;; their second operand, with the values of inactive lanes being distinct
  ;; from the other inputs.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:<V_INT_EQUIV> 3 "register_operand")]
  	     SVE_COND_FP_BINARY_INT)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 4987,5009 ****
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w, w, w")
! 	      (match_operand:<V_INT_EQUIV> 3 "register_operand" "w, w, w, w")]
  	     SVE_COND_FP_BINARY_INT)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 5169,5192 ----
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:<V_INT_EQUIV> 3 "register_operand")]
  	     SVE_COND_FP_BINARY_INT)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 5083,5101 ****
  
  ;; Predicated floating-point binary operations that have no immediate forms.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "0, w, w")
! 	   (match_operand:SVE_FULL_F 3 "register_operand" "w, 0, w")]
  	  SVE_COND_FP_BINARY_REG))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    <sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,*,yes")]
  )
  
  ;; Predicated floating-point operations with merging.
--- 5266,5284 ----
  
  ;; Predicated floating-point binary operations that have no immediate forms.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:SVE_FULL_F 3 "register_operand")]
  	  SVE_COND_FP_BINARY_REG))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ w        , Upl , w , 0 ; *              ] <sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated floating-point operations with merging.
***************
*** 5116,5270 ****
  
  ;; Predicated floating-point operations, merging with the first input.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  	     SVE_COND_FP_BINARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  	     SVE_COND_FP_BINARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Same for operations that take a 1-bit constant.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
  	      (match_operand:SVE_FULL_F 3 "<sve_pred_fp_rhs2_immediate>")]
  	     SVE_COND_FP_BINARY_I1)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_2_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
  	      (match_operand:SVE_FULL_F 3 "<sve_pred_fp_rhs2_immediate>")]
  	     SVE_COND_FP_BINARY_I1)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point operations, merging with the second input.
  (define_insn_and_rewrite "*cond_<optab><mode>_3_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "0, w")]
  	     SVE_COND_FP_BINARY)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_3_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "0, w")]
  	     SVE_COND_FP_BINARY)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point operations, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w, w, w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, 0, w, w, w")]
  	     SVE_COND_FP_BINARY)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& 1"
    {
      if (reload_completed
--- 5299,5454 ----
  
  ;; Predicated floating-point operations, merging with the first input.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FP_BINARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FP_BINARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Same for operations that take a 1-bit constant.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
  	      (match_operand:SVE_FULL_F 3 "<sve_pred_fp_rhs2_immediate>")]
  	     SVE_COND_FP_BINARY_I1)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?w       , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_2_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
  	      (match_operand:SVE_FULL_F 3 "<sve_pred_fp_rhs2_immediate>")]
  	     SVE_COND_FP_BINARY_I1)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?w       , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!   }
  )
  
  ;; Predicated floating-point operations, merging with the second input.
  (define_insn_and_rewrite "*cond_<optab><mode>_3_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FP_BINARY)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] <sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;<sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_3_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FP_BINARY)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] <sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;<sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
  )
  
  ;; Predicated floating-point operations, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FP_BINARY)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 5284,5309 ****
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w, w, w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, 0, w, w, w")]
  	     SVE_COND_FP_BINARY)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 5468,5494 ----
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FP_BINARY)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 5317,5338 ****
  
  ;; Same for operations that take a 1-bit constant.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w")
  	      (match_operand:SVE_FULL_F 3 "<sve_pred_fp_rhs2_immediate>")]
  	     SVE_COND_FP_BINARY_I1)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    #"
    "&& 1"
    {
      if (reload_completed
--- 5502,5524 ----
  
  ;; Same for operations that take a 1-bit constant.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
  	      (match_operand:SVE_FULL_F 3 "<sve_pred_fp_rhs2_immediate>")]
  	     SVE_COND_FP_BINARY_I1)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 4   ]
!      [ w        , Upl , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?w       , Upl , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 5352,5373 ****
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w")
  	      (match_operand:SVE_FULL_F 3 "<sve_pred_fp_rhs2_immediate>")]
  	     SVE_COND_FP_BINARY_I1)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 5538,5560 ----
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
  	      (match_operand:SVE_FULL_F 3 "<sve_pred_fp_rhs2_immediate>")]
  	     SVE_COND_FP_BINARY_I1)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 4   ]
!      [ w        , Upl , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?w       , Upl , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 5389,5410 ****
  
  ;; Predicated floating-point addition.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, w, w, ?&w, ?&w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl, Upl")
! 	   (match_operand:SI 4 "aarch64_sve_gp_strictness" "i, i, Z, Ui1, i, i, Ui1")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "%0, 0, w, 0, w, w, w")
! 	   (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_operand" "vsA, vsN, w, w, vsA, vsN, w")]
  	  SVE_COND_FP_ADD))]
    "TARGET_SVE"
!   "@
!    fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!    #
!    fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!    movprfx\t%0, %2\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    ; Split the unpredicated form after reload, so that we don't have
    ; the unnecessary PTRUE.
    "&& reload_completed
--- 5576,5598 ----
  
  ;; Predicated floating-point addition.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_operand")]
  	  SVE_COND_FP_ADD))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3   , 4   ; attrs: movprfx ]
!      [ w        , Upl , %0 , vsA , i   ; *              ] fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , 0  , vsN , i   ; *              ] fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!      [ w        , Upl , w  , w   , Z   ; *              ] #
!      [ w        , Upl , 0  , w   , Ui1 ; *              ] fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , vsA , i   ; yes            ] movprfx\t%0, %2\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w  , vsN , i   ; yes            ] movprfx\t%0, %2\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!      [ ?&w      , Upl , w  , w   , Ui1 ; yes            ] movprfx\t%0, %2\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    ; Split the unpredicated form after reload, so that we don't have
    ; the unnecessary PTRUE.
    "&& reload_completed
***************
*** 5412,5490 ****
     && INTVAL (operands[4]) == SVE_RELAXED_GP"
    [(set (match_dup 0) (plus:SVE_FULL_F (match_dup 2) (match_dup 3)))]
    ""
-   [(set_attr "movprfx" "*,*,*,*,yes,yes,yes")]
  )
  
  ;; Predicated floating-point addition of a constant, merging with the
  ;; first input.
  (define_insn_and_rewrite "*cond_add<mode>_2_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, 0, w, w")
! 	      (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_immediate" "vsA, vsN, vsA, vsN")]
  	     UNSPEC_COND_FADD)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!    movprfx\t%0, %2\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,*,yes,yes")]
  )
  
  (define_insn "*cond_add<mode>_2_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, 0, w, w")
! 	      (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_immediate" "vsA, vsN, vsA, vsN")]
  	     UNSPEC_COND_FADD)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!    movprfx\t%0, %2\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3"
!   [(set_attr "movprfx" "*,*,yes,yes")]
  )
  
  ;; Predicated floating-point addition of a constant, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_add<mode>_any_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, w, w, ?w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w, w, w, w")
! 	      (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_immediate" "vsA, vsN, vsA, vsN, vsA, vsN")]
  	     UNSPEC_COND_FADD)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, 0, w, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!    #
!    #"
    "&& 1"
    {
      if (reload_completed
--- 5600,5678 ----
     && INTVAL (operands[4]) == SVE_RELAXED_GP"
    [(set (match_dup 0) (plus:SVE_FULL_F (match_dup 2) (match_dup 3)))]
    ""
  )
  
  ;; Predicated floating-point addition of a constant, merging with the
  ;; first input.
  (define_insn_and_rewrite "*cond_add<mode>_2_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_immediate")]
  	     UNSPEC_COND_FADD)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3   ; attrs: movprfx ]
!      [ w        , Upl , 0 , vsA ; *              ] fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , 0 , vsN ; *              ] fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!      [ ?w       , Upl , w , vsA ; yes            ] movprfx\t%0, %2\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?w       , Upl , w , vsN ; yes            ] movprfx\t%0, %2\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_add<mode>_2_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_immediate")]
  	     UNSPEC_COND_FADD)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3   ; attrs: movprfx ]
!      [ w        , Upl , 0 , vsA ; *              ] fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , 0 , vsN ; *              ] fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!      [ ?w       , Upl , w , vsA ; yes            ] movprfx\t%0, %2\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?w       , Upl , w , vsN ; yes            ] movprfx\t%0, %2\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!   }
  )
  
  ;; Predicated floating-point addition of a constant, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_add<mode>_any_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_immediate")]
  	     UNSPEC_COND_FADD)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3   , 4   ]
!      [ w        , Upl , w , vsA , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , w , vsN , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!      [ w        , Upl , w , vsA , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , w , vsN , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!      [ ?w       , Upl , w , vsA , w   ] #
!      [ ?w       , Upl , w , vsN , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 5504,5528 ****
  )
  
  (define_insn_and_rewrite "*cond_add<mode>_any_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, w, w, ?w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w, w, w, w")
! 	      (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_immediate" "vsA, vsN, vsA, vsN, vsA, vsN")]
  	     UNSPEC_COND_FADD)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, 0, w, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!    #
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 5692,5717 ----
  )
  
  (define_insn_and_rewrite "*cond_add<mode>_any_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "aarch64_sve_float_arith_with_sub_immediate")]
  	     UNSPEC_COND_FADD)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3   , 4   ]
!      [ w        , Upl , w , vsA , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , w , vsN , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!      [ w        , Upl , w , vsA , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fadd\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , w , vsN , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, #%N3
!      [ ?w       , Upl , w , vsA , w   ] #
!      [ ?w       , Upl , w , vsN , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 5545,5562 ****
  
  ;; Predicated FCADD.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	   (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  	  SVE_COND_FCADD))]
    "TARGET_SVE"
!   "@
!    fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0, %2\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated FCADD with merging.
--- 5734,5751 ----
  
  ;; Predicated FCADD.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:SVE_FULL_F 3 "register_operand")]
  	  SVE_COND_FCADD))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!   }
  )
  
  ;; Predicated FCADD with merging.
***************
*** 5591,5656 ****
  
  ;; Predicated FCADD, merging with the first input.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  	     SVE_COND_FCADD)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0, %2\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  	     SVE_COND_FCADD)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0, %2\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated FCADD, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, 0, w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w, w")]
  	     SVE_COND_FCADD)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    #"
    "&& 1"
    {
      if (reload_completed
--- 5780,5846 ----
  
  ;; Predicated FCADD, merging with the first input.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FCADD)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FCADD)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!   }
  )
  
  ;; Predicated FCADD, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FCADD)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 5670,5692 ****
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, 0, w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w, w")]
  	     SVE_COND_FCADD)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 5860,5883 ----
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     SVE_COND_FCADD)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[2], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fcadd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 5708,5728 ****
  
  ;; Predicated floating-point subtraction.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, w, w, ?&w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
! 	   (match_operand:SI 4 "aarch64_sve_gp_strictness" "i, Z, Ui1, Ui1, i, Ui1")
! 	   (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_operand" "vsA, w, 0, w, vsA, w")
! 	   (match_operand:SVE_FULL_F 3 "register_operand" "0, w, w, 0, w, w")]
  	  SVE_COND_FP_SUB))]
    "TARGET_SVE"
!   "@
!    fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!    #
!    fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!    movprfx\t%0, %2\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    ; Split the unpredicated form after reload, so that we don't have
    ; the unnecessary PTRUE.
    "&& reload_completed
--- 5899,5920 ----
  
  ;; Predicated floating-point subtraction.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_operand")
! 	   (match_operand:SVE_FULL_F 3 "register_operand")]
  	  SVE_COND_FP_SUB))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2   , 3 , 4   ; attrs: movprfx ]
!      [ w        , Upl , vsA , 0 , i   ; *              ] fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!      [ w        , Upl , w   , w , Z   ; *              ] #
!      [ w        , Upl , 0   , w , Ui1 ; *              ] fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ w        , Upl , w   , 0 , Ui1 ; *              ] fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , vsA , w , i   ; yes            ] movprfx\t%0, %3\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!      [ ?&w      , Upl , w   , w , Ui1 ; yes            ] movprfx\t%0, %2\;fsub\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    ; Split the unpredicated form after reload, so that we don't have
    ; the unnecessary PTRUE.
    "&& reload_completed
***************
*** 5730,5801 ****
     && INTVAL (operands[4]) == SVE_RELAXED_GP"
    [(set (match_dup 0) (minus:SVE_FULL_F (match_dup 2) (match_dup 3)))]
    ""
-   [(set_attr "movprfx" "*,*,*,*,yes,yes")]
  )
  
  ;; Predicated floating-point subtraction from a constant, merging with the
  ;; second input.
  (define_insn_and_rewrite "*cond_sub<mode>_3_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
  	      (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_immediate")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "0, w")]
  	     UNSPEC_COND_FSUB)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!    movprfx\t%0, %3\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_sub<mode>_3_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
  	      (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_immediate")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "0, w")]
  	     UNSPEC_COND_FSUB)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!    movprfx\t%0, %3\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point subtraction from a constant, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_sub<mode>_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
  	      (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_immediate")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w")]
  	     UNSPEC_COND_FSUB)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %3.<Vetype>\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!    movprfx\t%0.<Vetype>, %1/m, %3.<Vetype>\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!    #"
    "&& 1"
    {
      if (reload_completed
--- 5922,5993 ----
     && INTVAL (operands[4]) == SVE_RELAXED_GP"
    [(set (match_dup 0) (minus:SVE_FULL_F (match_dup 2) (match_dup 3)))]
    ""
  )
  
  ;; Predicated floating-point subtraction from a constant, merging with the
  ;; second input.
  (define_insn_and_rewrite "*cond_sub<mode>_3_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
  	      (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_immediate")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     UNSPEC_COND_FSUB)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!      [ ?w       , Upl , w ; yes            ] movprfx\t%0, %3\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_sub<mode>_3_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
  	      (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_immediate")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     UNSPEC_COND_FSUB)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!      [ ?w       , Upl , w ; yes            ] movprfx\t%0, %3\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!   }
  )
  
  ;; Predicated floating-point subtraction from a constant, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_sub<mode>_const_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
  	      (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_immediate")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     UNSPEC_COND_FSUB)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 3 , 4   ]
!      [ w        , Upl , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %3.<Vetype>\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!      [ w        , Upl , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %3.<Vetype>\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!      [ ?w       , Upl , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 5815,5836 ****
  )
  
  (define_insn_and_rewrite "*cond_sub<mode>_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
  	      (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_immediate")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w")]
  	     UNSPEC_COND_FSUB)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %3.<Vetype>\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!    movprfx\t%0.<Vetype>, %1/m, %3.<Vetype>\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 6007,6029 ----
  )
  
  (define_insn_and_rewrite "*cond_sub<mode>_const_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
  	      (match_operand:SVE_FULL_F 2 "aarch64_sve_float_arith_immediate")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     UNSPEC_COND_FSUB)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 3 , 4   ]
!      [ w        , Upl , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %3.<Vetype>\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!      [ w        , Upl , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %3.<Vetype>\;fsubr\t%0.<Vetype>, %1/m, %0.<Vetype>, #%2
!      [ ?w       , Upl , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 5868,5912 ****
  
  ;; Predicated floating-point absolute difference.
  (define_insn_and_rewrite "*aarch64_pred_abd<mode>_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "%0, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  	     UNSPEC_COND_FSUB)]
  	  UNSPEC_COND_FABS))]
    "TARGET_SVE"
!   "@
!    fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[5])"
    {
      operands[5] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*aarch64_pred_abd<mode>_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "%0, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  	     UNSPEC_COND_FSUB)]
  	  UNSPEC_COND_FABS))]
    "TARGET_SVE"
!   "@
!    fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_expand "@aarch64_cond_abd<mode>"
--- 6061,6105 ----
  
  ;; Predicated floating-point absolute difference.
  (define_insn_and_rewrite "*aarch64_pred_abd<mode>_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     UNSPEC_COND_FSUB)]
  	  UNSPEC_COND_FABS))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3 ; attrs: movprfx ]
!      [ w        , Upl , %0 , w ; *              ] fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , w ; yes            ] movprfx\t%0, %2\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[5])"
    {
      operands[5] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*aarch64_pred_abd<mode>_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")]
  	     UNSPEC_COND_FSUB)]
  	  UNSPEC_COND_FABS))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3 ; attrs: movprfx ]
!      [ w        , Upl , %0 , w ; *              ] fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , w ; yes            ] movprfx\t%0, %2\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  (define_expand "@aarch64_cond_abd<mode>"
***************
*** 5934,6071 ****
  ;; Predicated floating-point absolute difference, merging with the first
  ;; input.
  (define_insn_and_rewrite "*aarch64_cond_abd<mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
  	      (unspec:SVE_FULL_F
  		[(match_operand 5)
  		 (const_int SVE_RELAXED_GP)
! 		 (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 		 (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& (!rtx_equal_p (operands[1], operands[4])
         || !rtx_equal_p (operands[1], operands[5]))"
    {
      operands[4] = copy_rtx (operands[1]);
      operands[5] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*aarch64_cond_abd<mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
  	      (unspec:SVE_FULL_F
  		[(match_dup 1)
  		 (match_operand:SI 5 "aarch64_sve_gp_strictness")
! 		 (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 		 (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point absolute difference, merging with the second
  ;; input.
  (define_insn_and_rewrite "*aarch64_cond_abd<mode>_3_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
  	      (unspec:SVE_FULL_F
  		[(match_operand 5)
  		 (const_int SVE_RELAXED_GP)
! 		 (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 		 (match_operand:SVE_FULL_F 3 "register_operand" "0, w")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
    "&& (!rtx_equal_p (operands[1], operands[4])
         || !rtx_equal_p (operands[1], operands[5]))"
    {
      operands[4] = copy_rtx (operands[1]);
      operands[5] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*aarch64_cond_abd<mode>_3_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
  	      (unspec:SVE_FULL_F
  		[(match_dup 1)
  		 (match_operand:SI 5 "aarch64_sve_gp_strictness")
! 		 (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 		 (match_operand:SVE_FULL_F 3 "register_operand" "0, w")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point absolute difference, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*aarch64_cond_abd<mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
  	      (unspec:SVE_FULL_F
  		[(match_operand 6)
  		 (const_int SVE_RELAXED_GP)
! 		 (match_operand:SVE_FULL_F 2 "register_operand" "0, w, w, w, w")
! 		 (match_operand:SVE_FULL_F 3 "register_operand" "w, 0, w, w, w")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& 1"
    {
      if (reload_completed
--- 6127,6265 ----
  ;; Predicated floating-point absolute difference, merging with the first
  ;; input.
  (define_insn_and_rewrite "*aarch64_cond_abd<mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
  	      (unspec:SVE_FULL_F
  		[(match_operand 5)
  		 (const_int SVE_RELAXED_GP)
! 		 (match_operand:SVE_FULL_F 2 "register_operand")
! 		 (match_operand:SVE_FULL_F 3 "register_operand")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& (!rtx_equal_p (operands[1], operands[4])
         || !rtx_equal_p (operands[1], operands[5]))"
    {
      operands[4] = copy_rtx (operands[1]);
      operands[5] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*aarch64_cond_abd<mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
  	      (unspec:SVE_FULL_F
  		[(match_dup 1)
  		 (match_operand:SI 5 "aarch64_sve_gp_strictness")
! 		 (match_operand:SVE_FULL_F 2 "register_operand")
! 		 (match_operand:SVE_FULL_F 3 "register_operand")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated floating-point absolute difference, merging with the second
  ;; input.
  (define_insn_and_rewrite "*aarch64_cond_abd<mode>_3_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
  	      (unspec:SVE_FULL_F
  		[(match_operand 5)
  		 (const_int SVE_RELAXED_GP)
! 		 (match_operand:SVE_FULL_F 2 "register_operand")
! 		 (match_operand:SVE_FULL_F 3 "register_operand")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
    "&& (!rtx_equal_p (operands[1], operands[4])
         || !rtx_equal_p (operands[1], operands[5]))"
    {
      operands[4] = copy_rtx (operands[1]);
      operands[5] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*aarch64_cond_abd<mode>_3_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
  	      (unspec:SVE_FULL_F
  		[(match_dup 1)
  		 (match_operand:SI 5 "aarch64_sve_gp_strictness")
! 		 (match_operand:SVE_FULL_F 2 "register_operand")
! 		 (match_operand:SVE_FULL_F 3 "register_operand")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
  )
  
  ;; Predicated floating-point absolute difference, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*aarch64_cond_abd<mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
  	      (unspec:SVE_FULL_F
  		[(match_operand 6)
  		 (const_int SVE_RELAXED_GP)
! 		 (match_operand:SVE_FULL_F 2 "register_operand")
! 		 (match_operand:SVE_FULL_F 3 "register_operand")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 6089,6118 ****
  )
  
  (define_insn_and_rewrite "*aarch64_cond_abd<mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (match_operand:SI 5 "aarch64_sve_gp_strictness")
  	      (unspec:SVE_FULL_F
  		[(match_dup 1)
  		 (match_operand:SI 6 "aarch64_sve_gp_strictness")
! 		 (match_operand:SVE_FULL_F 2 "register_operand" "0, w, w, w, w")
! 		 (match_operand:SVE_FULL_F 3 "register_operand" "w, 0, w, w, w")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
--- 6283,6313 ----
  )
  
  (define_insn_and_rewrite "*aarch64_cond_abd<mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (match_operand:SI 5 "aarch64_sve_gp_strictness")
  	      (unspec:SVE_FULL_F
  		[(match_dup 1)
  		 (match_operand:SI 6 "aarch64_sve_gp_strictness")
! 		 (match_operand:SVE_FULL_F 2 "register_operand")
! 		 (match_operand:SVE_FULL_F 3 "register_operand")]
  		UNSPEC_COND_FSUB)]
  	     UNSPEC_COND_FABS)
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;fabd\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[4], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[4])"
***************
*** 6133,6152 ****
  
  ;; Predicated floating-point multiplication.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, w, ?&w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
! 	   (match_operand:SI 4 "aarch64_sve_gp_strictness" "i, Z, Ui1, i, Ui1")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "%0, w, 0, w, w")
! 	   (match_operand:SVE_FULL_F 3 "aarch64_sve_float_mul_operand" "vsM, w, w, vsM, w")]
  	  SVE_COND_FP_MUL))]
    "TARGET_SVE"
!   "@
!    fmul\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    #
!    fmul\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;fmul\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;fmul\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    ; Split the unpredicated form after reload, so that we don't have
    ; the unnecessary PTRUE.
    "&& reload_completed
--- 6328,6348 ----
  
  ;; Predicated floating-point multiplication.
  (define_insn_and_split "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:SVE_FULL_F 3 "aarch64_sve_float_mul_operand")]
  	  SVE_COND_FP_MUL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3   , 4   ; attrs: movprfx ]
!      [ w        , Upl , %0 , vsM , i   ; *              ] fmul\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , w  , w   , Z   ; *              ] #
!      [ w        , Upl , 0  , w   , Ui1 ; *              ] fmul\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , vsM , i   ; yes            ] movprfx\t%0, %2\;fmul\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w  , w   , Ui1 ; yes            ] movprfx\t%0, %2\;fmul\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    ; Split the unpredicated form after reload, so that we don't have
    ; the unnecessary PTRUE.
    "&& reload_completed
***************
*** 6154,6160 ****
     && INTVAL (operands[4]) == SVE_RELAXED_GP"
    [(set (match_dup 0) (mult:SVE_FULL_F (match_dup 2) (match_dup 3)))]
    ""
-   [(set_attr "movprfx" "*,*,*,yes,yes")]
  )
  
  ;; Merging forms are handled through SVE_COND_FP_BINARY and
--- 6350,6355 ----
***************
*** 6245,6251 ****
  (define_expand "copysign<mode>3"
    [(match_operand:SVE_FULL_F 0 "register_operand")
     (match_operand:SVE_FULL_F 1 "register_operand")
!    (match_operand:SVE_FULL_F 2 "register_operand")]
    "TARGET_SVE"
    {
      rtx sign = gen_reg_rtx (<V_INT_EQUIV>mode);
--- 6440,6446 ----
  (define_expand "copysign<mode>3"
    [(match_operand:SVE_FULL_F 0 "register_operand")
     (match_operand:SVE_FULL_F 1 "register_operand")
!    (match_operand:SVE_FULL_F 2 "nonmemory_operand")]
    "TARGET_SVE"
    {
      rtx sign = gen_reg_rtx (<V_INT_EQUIV>mode);
***************
*** 6256,6266 ****
      rtx arg1 = lowpart_subreg (<V_INT_EQUIV>mode, operands[1], <MODE>mode);
      rtx arg2 = lowpart_subreg (<V_INT_EQUIV>mode, operands[2], <MODE>mode);
  
!     emit_insn (gen_and<v_int_equiv>3
! 	       (sign, arg2,
! 		aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
! 						   HOST_WIDE_INT_M1U
! 						   << bits)));
      emit_insn (gen_and<v_int_equiv>3
  	       (mant, arg1,
  		aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
--- 6451,6476 ----
      rtx arg1 = lowpart_subreg (<V_INT_EQUIV>mode, operands[1], <MODE>mode);
      rtx arg2 = lowpart_subreg (<V_INT_EQUIV>mode, operands[2], <MODE>mode);
  
!     rtx v_sign_bitmask
!       = aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
! 					   HOST_WIDE_INT_M1U << bits);
! 
!     /* copysign (x, -1) should instead be expanded as orr with the sign
!        bit.  */
!     if (!REG_P (operands[2]))
!       {
! 	rtx op2_elt = unwrap_const_vec_duplicate (operands[2]);
! 	if (GET_CODE (op2_elt) == CONST_DOUBLE
! 	    && real_isneg (CONST_DOUBLE_REAL_VALUE (op2_elt)))
! 	  {
! 	    emit_insn (gen_ior<v_int_equiv>3 (int_res, arg1, v_sign_bitmask));
! 	    emit_move_insn (operands[0], gen_lowpart (<MODE>mode, int_res));
! 	    DONE;
! 	  }
!       }
! 
!     operands[2] = force_reg (<MODE>mode, operands[2]);
!     emit_insn (gen_and<v_int_equiv>3 (sign, arg2, v_sign_bitmask));
      emit_insn (gen_and<v_int_equiv>3
  	       (mant, arg1,
  		aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
***************
*** 6272,6277 ****
--- 6482,6538 ----
    }
  )
  
+ (define_expand "cond_copysign<mode>"
+   [(match_operand:SVE_FULL_F 0 "register_operand")
+    (match_operand:<VPRED> 1 "register_operand")
+    (match_operand:SVE_FULL_F 2 "register_operand")
+    (match_operand:SVE_FULL_F 3 "nonmemory_operand")
+    (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
+   "TARGET_SVE"
+   {
+     rtx sign = gen_reg_rtx (<V_INT_EQUIV>mode);
+     rtx mant = gen_reg_rtx (<V_INT_EQUIV>mode);
+     rtx int_res = gen_reg_rtx (<V_INT_EQUIV>mode);
+     int bits = GET_MODE_UNIT_BITSIZE (<MODE>mode) - 1;
+ 
+     rtx arg2 = lowpart_subreg (<V_INT_EQUIV>mode, operands[2], <MODE>mode);
+     rtx arg3 = lowpart_subreg (<V_INT_EQUIV>mode, operands[3], <MODE>mode);
+     rtx arg4 = lowpart_subreg (<V_INT_EQUIV>mode, operands[4], <MODE>mode);
+ 
+     rtx v_sign_bitmask
+       = aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
+ 					   HOST_WIDE_INT_M1U << bits);
+ 
+     /* copysign (x, -1) should instead be expanded as orr with the sign
+        bit.  */
+     if (!REG_P (operands[3]))
+       {
+ 	rtx op2_elt = unwrap_const_vec_duplicate (operands[3]);
+ 	if (GET_CODE (op2_elt) == CONST_DOUBLE
+ 	    && real_isneg (CONST_DOUBLE_REAL_VALUE (op2_elt)))
+ 	  {
+ 	    arg3 = force_reg (<V_INT_EQUIV>mode, v_sign_bitmask);
+ 	    emit_insn (gen_cond_ior<v_int_equiv> (int_res, operands[1], arg2,
+ 						  arg3, arg4));
+ 	    emit_move_insn (operands[0], gen_lowpart (<MODE>mode, int_res));
+ 	    DONE;
+ 	  }
+       }
+ 
+     operands[2] = force_reg (<MODE>mode, operands[3]);
+     emit_insn (gen_and<v_int_equiv>3 (sign, arg3, v_sign_bitmask));
+     emit_insn (gen_and<v_int_equiv>3
+ 	       (mant, arg2,
+ 		aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
+ 						   ~(HOST_WIDE_INT_M1U
+ 						     << bits))));
+     emit_insn (gen_cond_ior<v_int_equiv> (int_res, operands[1], sign, mant,
+ 					  arg4));
+     emit_move_insn (operands[0], gen_lowpart (<MODE>mode, int_res));
+     DONE;
+   }
+ )
+ 
  (define_expand "xorsign<mode>3"
    [(match_operand:SVE_FULL_F 0 "register_operand")
     (match_operand:SVE_FULL_F 1 "register_operand")
***************
*** 6341,6360 ****
  
  ;; Predicated floating-point maximum/minimum.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?&w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "%0, 0, w, w")
! 	   (match_operand:SVE_FULL_F 3 "aarch64_sve_float_maxmin_operand" "vsB, w, vsB, w")]
  	  SVE_COND_FP_MAXMIN))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,*,yes,yes")]
  )
  
  ;; Merging forms are handled through SVE_COND_FP_BINARY and
--- 6602,6621 ----
  
  ;; Predicated floating-point maximum/minimum.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:SVE_FULL_F 3 "aarch64_sve_float_maxmin_operand")]
  	  SVE_COND_FP_MAXMIN))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3   ; attrs: movprfx ]
!      [ w        , Upl , %0 , vsB ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , 0  , w   ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , vsB ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w  , w   ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Merging forms are handled through SVE_COND_FP_BINARY and
***************
*** 6608,6628 ****
  
  ;; Predicated integer addition of product.
  (define_insn "@aarch64_pred_fma<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, w, ?&w")
  	(plus:SVE_I
  	  (unspec:SVE_I
! 	    [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "%0, w, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w, w"))]
  	    UNSPEC_PRED_X)
! 	  (match_operand:SVE_I 4 "register_operand" "w, 0, w")))]
    "TARGET_SVE"
!   "@
!    mad\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %4\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,*,yes")]
  )
  
  ;; Predicated integer addition of product with merging.
--- 6869,6889 ----
  
  ;; Predicated integer addition of product.
  (define_insn "@aarch64_pred_fma<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(plus:SVE_I
  	  (unspec:SVE_I
! 	    [(match_operand:<VPRED> 1 "register_operand")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand"))]
  	    UNSPEC_PRED_X)
! 	  (match_operand:SVE_I 4 "register_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , %0 , w , w ; *              ] mad\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ w        , Upl , w  , w , 0 ; *              ] mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , w , w ; yes            ] movprfx\t%0, %4\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated integer addition of product with merging.
***************
*** 6650,6714 ****
  
  ;; Predicated integer addition of product, merging with the first input.
  (define_insn "*cond_fma<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (plus:SVE_I
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "0, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w"))
! 	     (match_operand:SVE_I 4 "register_operand" "w, w"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    mad\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0, %2\;mad\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer addition of product, merging with the third input.
  (define_insn "*cond_fma<mode>_4"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (plus:SVE_I
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "w, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w"))
! 	     (match_operand:SVE_I 4 "register_operand" "0, w"))
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %4\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer addition of product, merging with an independent value.
  (define_insn_and_rewrite "*cond_fma<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=&w, &w, &w, &w, &w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
  	   (plus:SVE_I
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "w, w, 0, w, w, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w, w, 0, w, w"))
! 	     (match_operand:SVE_I 4 "register_operand" "w, 0, w, w, w, w"))
! 	   (match_operand:SVE_I 5 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[5])
     && !rtx_equal_p (operands[3], operands[5])
     && !rtx_equal_p (operands[4], operands[5])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;mad\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;mad\t%0.<Vetype>, %1/m, %2.<Vetype>, %4.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[5], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[5])"
--- 6911,6976 ----
  
  ;; Predicated integer addition of product, merging with the first input.
  (define_insn "*cond_fma<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (plus:SVE_I
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand"))
! 	     (match_operand:SVE_I 4 "register_operand"))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w , w ; *              ] mad\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %2\;mad\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!   }
  )
  
  ;; Predicated integer addition of product, merging with the third input.
  (define_insn "*cond_fma<mode>_4"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (plus:SVE_I
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand"))
! 	     (match_operand:SVE_I 4 "register_operand"))
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , w , w , 0 ; *              ] mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %4\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated integer addition of product, merging with an independent value.
  (define_insn_and_rewrite "*cond_fma<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (plus:SVE_I
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand"))
! 	     (match_operand:SVE_I 4 "register_operand"))
! 	   (match_operand:SVE_I 5 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[5])
     && !rtx_equal_p (operands[3], operands[5])
     && !rtx_equal_p (operands[4], operands[5])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 , 5   ]
!      [ &w       , Upl , w , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , 0 , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;mad\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ &w       , Upl , w , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;mad\t%0.<Vetype>, %1/m, %2.<Vetype>, %4.<Vetype>
!      [ &w       , Upl , w , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;mla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[5], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[5])"
***************
*** 6749,6769 ****
  
  ;; Predicated integer subtraction of product.
  (define_insn "@aarch64_pred_fnma<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, w, ?&w")
  	(minus:SVE_I
! 	  (match_operand:SVE_I 4 "register_operand" "w, 0, w")
  	  (unspec:SVE_I
! 	    [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "%0, w, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w, w"))]
  	    UNSPEC_PRED_X)))]
    "TARGET_SVE"
!   "@
!    msb\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %4\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,*,yes")]
  )
  
  ;; Predicated integer subtraction of product with merging.
--- 7011,7031 ----
  
  ;; Predicated integer subtraction of product.
  (define_insn "@aarch64_pred_fnma<mode>"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(minus:SVE_I
! 	  (match_operand:SVE_I 4 "register_operand")
  	  (unspec:SVE_I
! 	    [(match_operand:<VPRED> 1 "register_operand")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand"))]
  	    UNSPEC_PRED_X)))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , %0 , w , w ; *              ] msb\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ w        , Upl , w  , w , 0 ; *              ] mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w  , w , w ; yes            ] movprfx\t%0, %4\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated integer subtraction of product with merging.
***************
*** 6791,6856 ****
  
  ;; Predicated integer subtraction of product, merging with the first input.
  (define_insn "*cond_fnma<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (minus:SVE_I
! 	     (match_operand:SVE_I 4 "register_operand" "w, w")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "0, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w")))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    msb\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0, %2\;msb\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer subtraction of product, merging with the third input.
  (define_insn "*cond_fnma<mode>_4"
!   [(set (match_operand:SVE_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (minus:SVE_I
! 	     (match_operand:SVE_I 4 "register_operand" "0, w")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "w, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w")))
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %4\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer subtraction of product, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_fnma<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand" "=&w, &w, &w, &w, &w, ?&w")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
  	   (minus:SVE_I
! 	     (match_operand:SVE_I 4 "register_operand" "w, 0, w, w, w, w")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand" "w, w, 0, w, w, w")
! 	       (match_operand:SVE_I 3 "register_operand" "w, w, w, 0, w, w")))
! 	   (match_operand:SVE_I 5 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[5])
     && !rtx_equal_p (operands[3], operands[5])
     && !rtx_equal_p (operands[4], operands[5])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;msb\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;msb\t%0.<Vetype>, %1/m, %2.<Vetype>, %4.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[5], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[5])"
--- 7053,7119 ----
  
  ;; Predicated integer subtraction of product, merging with the first input.
  (define_insn "*cond_fnma<mode>_2"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (minus:SVE_I
! 	     (match_operand:SVE_I 4 "register_operand")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand")))
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w , w ; *              ] msb\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %2\;msb\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!   }
  )
  
  ;; Predicated integer subtraction of product, merging with the third input.
  (define_insn "*cond_fnma<mode>_4"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (minus:SVE_I
! 	     (match_operand:SVE_I 4 "register_operand")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand")))
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , w , w , 0 ; *              ] mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %4\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated integer subtraction of product, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_fnma<mode>_any"
!   [(set (match_operand:SVE_I 0 "register_operand")
  	(unspec:SVE_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (minus:SVE_I
! 	     (match_operand:SVE_I 4 "register_operand")
  	     (mult:SVE_I
! 	       (match_operand:SVE_I 2 "register_operand")
! 	       (match_operand:SVE_I 3 "register_operand")))
! 	   (match_operand:SVE_I 5 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[5])
     && !rtx_equal_p (operands[3], operands[5])
     && !rtx_equal_p (operands[4], operands[5])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 , 5   ]
!      [ &w       , Upl , w , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , 0 , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;msb\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ &w       , Upl , w , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;msb\t%0.<Vetype>, %1/m, %2.<Vetype>, %4.<Vetype>
!      [ &w       , Upl , w , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;mls\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[5], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[5])"
***************
*** 6874,6943 ****
  
  ;; Four-element integer dot-product with accumulation.
  (define_insn "<sur>dot_prod<vsi2qi>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(plus:SVE_FULL_SDI
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VSI2QI> 1 "register_operand" "w, w")
! 	     (match_operand:<VSI2QI> 2 "register_operand" "w, w")]
  	    DOTPROD)
! 	  (match_operand:SVE_FULL_SDI 3 "register_operand" "0, w")))]
    "TARGET_SVE"
!   "@
!    <sur>dot\\t%0.<Vetype>, %1.<Vetype_fourth>, %2.<Vetype_fourth>
!    movprfx\t%0, %3\;<sur>dot\\t%0.<Vetype>, %1.<Vetype_fourth>, %2.<Vetype_fourth>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Four-element integer dot-product by selected lanes with accumulation.
! (define_insn "@aarch64_<sur>dot_prod_lane<vsi2qi>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(plus:SVE_FULL_SDI
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VSI2QI> 1 "register_operand" "w, w")
! 	     (unspec:<VSI2QI>
! 	       [(match_operand:<VSI2QI> 2 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  		(match_operand:SI 3 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    DOTPROD)
! 	  (match_operand:SVE_FULL_SDI 4 "register_operand" "0, w")))]
!   "TARGET_SVE"
!   "@
!    <sur>dot\\t%0.<Vetype>, %1.<Vetype_fourth>, %2.<Vetype_fourth>[%3]
!    movprfx\t%0, %4\;<sur>dot\\t%0.<Vetype>, %1.<Vetype_fourth>, %2.<Vetype_fourth>[%3]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "@<sur>dot_prod<vsi2qi>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand" "=w, ?&w")
          (plus:VNx4SI_ONLY
  	  (unspec:VNx4SI_ONLY
! 	    [(match_operand:<VSI2QI> 1 "register_operand" "w, w")
! 	     (match_operand:<VSI2QI> 2 "register_operand" "w, w")]
  	    DOTPROD_US_ONLY)
! 	  (match_operand:VNx4SI_ONLY 3 "register_operand" "0, w")))]
    "TARGET_SVE_I8MM"
!   "@
!    <sur>dot\\t%0.s, %1.b, %2.b
!    movprfx\t%0, %3\;<sur>dot\\t%0.s, %1.b, %2.b"
!    [(set_attr "movprfx" "*,yes")]
  )
  
! (define_insn "@aarch64_<sur>dot_prod_lane<vsi2qi>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand" "=w, ?&w")
  	(plus:VNx4SI_ONLY
  	  (unspec:VNx4SI_ONLY
! 	    [(match_operand:<VSI2QI> 1 "register_operand" "w, w")
! 	     (unspec:<VSI2QI>
! 	       [(match_operand:<VSI2QI> 2 "register_operand" "y, y")
  		(match_operand:SI 3 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    DOTPROD_I8MM)
! 	  (match_operand:VNx4SI_ONLY 4 "register_operand" "0, w")))]
    "TARGET_SVE_I8MM"
!   "@
!    <sur>dot\\t%0.s, %1.b, %2.b[%3]
!    movprfx\t%0, %4\;<sur>dot\\t%0.s, %1.b, %2.b[%3]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 7137,7210 ----
  
  ;; Four-element integer dot-product with accumulation.
  (define_insn "<sur>dot_prod<vsi2qi>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(plus:SVE_FULL_SDI
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VSI2QI> 1 "register_operand")
! 	     (match_operand:<VSI2QI> 2 "register_operand")]
  	    DOTPROD)
! 	  (match_operand:SVE_FULL_SDI 3 "register_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , w , w , 0 ; *              ] <sur>dot\t%0.<Vetype>, %1.<Vetype_fourth>, %2.<Vetype_fourth>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %3\;<sur>dot\t%0.<Vetype>, %1.<Vetype_fourth>, %2.<Vetype_fourth>
!   }
  )
  
  ;; Four-element integer dot-product by selected lanes with accumulation.
! (define_insn "@aarch64_<sur>dot_prod_lane<SVE_FULL_SDI:mode><SVE_FULL_BHI:mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(plus:SVE_FULL_SDI
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:SVE_FULL_BHI 1 "register_operand")
! 	     (unspec:SVE_FULL_BHI
! 	       [(match_operand:SVE_FULL_BHI 2 "register_operand")
  		(match_operand:SI 3 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    DOTPROD)
! 	  (match_operand:SVE_FULL_SDI 4 "register_operand")))]
!   "TARGET_SVE
!    && (<SVE_FULL_SDI:elem_bits> == <SVE_FULL_BHI:elem_bits> * 4
!        || (TARGET_STREAMING_SME2
! 	   && <SVE_FULL_SDI:elem_bits> == 32
! 	   && <SVE_FULL_BHI:elem_bits> == 16))"
!   {@ [ cons: =0 , 1 , 2                           , 4 ; attrs: movprfx ]
!      [ w        , w , <SVE_FULL_SDI:sve_lane_con> , 0 ; *              ] <sur>dot\t%0.<SVE_FULL_SDI:Vetype>, %1.<SVE_FULL_BHI:Vetype>, %2.<SVE_FULL_BHI:Vetype>[%3]
!      [ ?&w      , w , <SVE_FULL_SDI:sve_lane_con> , w ; yes            ] movprfx\t%0, %4\;<sur>dot\t%0.<SVE_FULL_SDI:Vetype>, %1.<SVE_FULL_BHI:Vetype>, %2.<SVE_FULL_BHI:Vetype>[%3]
!   }
  )
  
  (define_insn "@<sur>dot_prod<vsi2qi>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand")
          (plus:VNx4SI_ONLY
  	  (unspec:VNx4SI_ONLY
! 	    [(match_operand:<VSI2QI> 1 "register_operand")
! 	     (match_operand:<VSI2QI> 2 "register_operand")]
  	    DOTPROD_US_ONLY)
! 	  (match_operand:VNx4SI_ONLY 3 "register_operand")))]
    "TARGET_SVE_I8MM"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , w , w , 0 ; *              ] <sur>dot\t%0.s, %1.b, %2.b
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %3\;<sur>dot\t%0.s, %1.b, %2.b
!   }
  )
  
! (define_insn "@aarch64_<sur>dot_prod_lane<VNx4SI_ONLY:mode><VNx16QI_ONLY:mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand")
  	(plus:VNx4SI_ONLY
  	  (unspec:VNx4SI_ONLY
! 	    [(match_operand:VNx16QI_ONLY 1 "register_operand")
! 	     (unspec:VNx16QI_ONLY
! 	       [(match_operand:VNx16QI_ONLY 2 "register_operand")
  		(match_operand:SI 3 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    DOTPROD_I8MM)
! 	  (match_operand:VNx4SI_ONLY 4 "register_operand")))]
    "TARGET_SVE_I8MM"
!   {@ [ cons: =0 , 1 , 2 , 4 ; attrs: movprfx ]
!      [ w        , w , y , 0 ; *              ] <sur>dot\t%0.s, %1.b, %2.b[%3]
!      [ ?&w      , w , y , w ; yes            ] movprfx\t%0, %4\;<sur>dot\t%0.s, %1.b, %2.b[%3]
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 6955,6970 ****
  ;; [SU]ABD	diff.b, p0/m, op1.b, op2.b
  ;; MOVPRFX	op0, op3	// If necessary
  ;; UDOT		op0.s, diff.b, ones.b
! (define_expand "<sur>sad<vsi2qi>"
    [(use (match_operand:SVE_FULL_SDI 0 "register_operand"))
!    (unspec:<VSI2QI> [(use (match_operand:<VSI2QI> 1 "register_operand"))
! 		    (use (match_operand:<VSI2QI> 2 "register_operand"))] ABAL)
     (use (match_operand:SVE_FULL_SDI 3 "register_operand"))]
    "TARGET_SVE"
    {
      rtx ones = force_reg (<VSI2QI>mode, CONST1_RTX (<VSI2QI>mode));
      rtx diff = gen_reg_rtx (<VSI2QI>mode);
!     emit_insn (gen_<sur>abd<vsi2qi>_3 (diff, operands[1], operands[2]));
      emit_insn (gen_udot_prod<vsi2qi> (operands[0], diff, ones, operands[3]));
      DONE;
    }
--- 7222,7237 ----
  ;; [SU]ABD	diff.b, p0/m, op1.b, op2.b
  ;; MOVPRFX	op0, op3	// If necessary
  ;; UDOT		op0.s, diff.b, ones.b
! (define_expand "<su>sad<vsi2qi>"
    [(use (match_operand:SVE_FULL_SDI 0 "register_operand"))
!    (USMAX:<VSI2QI> (match_operand:<VSI2QI> 1 "register_operand")
! 		   (match_operand:<VSI2QI> 2 "register_operand"))
     (use (match_operand:SVE_FULL_SDI 3 "register_operand"))]
    "TARGET_SVE"
    {
      rtx ones = force_reg (<VSI2QI>mode, CONST1_RTX (<VSI2QI>mode));
      rtx diff = gen_reg_rtx (<VSI2QI>mode);
!     emit_insn (gen_<su>abd<vsi2qi>3 (diff, operands[1], operands[2]));
      emit_insn (gen_udot_prod<vsi2qi> (operands[0], diff, ones, operands[3]));
      DONE;
    }
***************
*** 6980,6997 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_add_<optab><vsi2qi>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand" "=w, ?&w")
  	(plus:VNx4SI_ONLY
  	  (unspec:VNx4SI_ONLY
! 	    [(match_operand:<VSI2QI> 2 "register_operand" "w, w")
! 	     (match_operand:<VSI2QI> 3 "register_operand" "w, w")]
  	    MATMUL)
! 	  (match_operand:VNx4SI_ONLY 1 "register_operand" "0, w")))]
!   "TARGET_SVE_I8MM"
!   "@
!    <sur>mmla\\t%0.s, %2.b, %3.b
!    movprfx\t%0, %1\;<sur>mmla\\t%0.s, %2.b, %3.b"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 7247,7264 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_add_<optab><vsi2qi>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand")
  	(plus:VNx4SI_ONLY
  	  (unspec:VNx4SI_ONLY
! 	    [(match_operand:<VSI2QI> 2 "register_operand")
! 	     (match_operand:<VSI2QI> 3 "register_operand")]
  	    MATMUL)
! 	  (match_operand:VNx4SI_ONLY 1 "register_operand")))]
!   "TARGET_SVE_I8MM && TARGET_NON_STREAMING"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sur>mmla\t%0.s, %2.b, %3.b
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sur>mmla\t%0.s, %2.b, %3.b
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 7026,7045 ****
  
  ;; Predicated floating-point ternary operations.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (match_operand:SI 5 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "%w, 0, w")
! 	   (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w")
! 	   (match_operand:SVE_FULL_F 4 "register_operand" "0, w, w")]
  	  SVE_COND_FP_TERNARY))]
    "TARGET_SVE"
!   "@
!    <sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    <sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0, %4\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,*,yes")]
  )
  
  ;; Predicated floating-point ternary operations with merging.
--- 7293,7312 ----
  
  ;; Predicated floating-point ternary operations.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 5 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:SVE_FULL_F 3 "register_operand")
! 	   (match_operand:SVE_FULL_F 4 "register_operand")]
  	  SVE_COND_FP_TERNARY))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2  , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , %w , w , 0 ; *              ] <sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ w        , Upl , 0  , w , w ; *              ] <sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ ?&w      , Upl , w  , w , w ; yes            ] movprfx\t%0, %4\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated floating-point ternary operations with merging.
***************
*** 7067,7187 ****
  ;; Predicated floating-point ternary operations, merging with the
  ;; first input.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "w, w")]
  	     SVE_COND_FP_TERNARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0, %2\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[5])"
    {
      operands[5] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "w, w")]
  	     SVE_COND_FP_TERNARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0, %2\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point ternary operations, merging with the
  ;; third input.
  (define_insn_and_rewrite "*cond_<optab><mode>_4_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "0, w")]
  	     SVE_COND_FP_TERNARY)
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %4\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[5])"
    {
      operands[5] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_4_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "0, w")]
  	     SVE_COND_FP_TERNARY)
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %4\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated floating-point ternary operations, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 6)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, 0, w, w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w, 0, w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "w, 0, w, w, w, w")]
  	     SVE_COND_FP_TERNARY)
! 	   (match_operand:SVE_FULL_F 5 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[5])
     && !rtx_equal_p (operands[3], operands[5])
     && !rtx_equal_p (operands[4], operands[5])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %4.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    #"
    "&& 1"
    {
      if (reload_completed
--- 7334,7455 ----
  ;; Predicated floating-point ternary operations, merging with the
  ;; first input.
  (define_insn_and_rewrite "*cond_<optab><mode>_2_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FP_TERNARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w , w ; *              ] <sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %2\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[5])"
    {
      operands[5] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_2_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FP_TERNARY)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w , w ; *              ] <sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %2\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!   }
  )
  
  ;; Predicated floating-point ternary operations, merging with the
  ;; third input.
  (define_insn_and_rewrite "*cond_<optab><mode>_4_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FP_TERNARY)
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , w , w , 0 ; *              ] <sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %4\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[5])"
    {
      operands[5] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_4_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FP_TERNARY)
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , w , w , 0 ; *              ] <sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %4\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated floating-point ternary operations, merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 6)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FP_TERNARY)
! 	   (match_operand:SVE_FULL_F 5 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[5])
     && !rtx_equal_p (operands[3], operands[5])
     && !rtx_equal_p (operands[4], operands[5])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 , 5   ]
!      [ &w       , Upl , w , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , 0 , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ &w       , Upl , w , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %4.<Vetype>
!      [ &w       , Upl , w , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 7201,7229 ****
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, 0, w, w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w, 0, w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "w, 0, w, w, w, w")]
  	     SVE_COND_FP_TERNARY)
! 	   (match_operand:SVE_FULL_F 5 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[5])
     && !rtx_equal_p (operands[3], operands[5])
     && !rtx_equal_p (operands[4], operands[5])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %4.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!    #"
    "&& reload_completed
     && register_operand (operands[5], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[5])"
--- 7469,7498 ----
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FP_TERNARY)
! 	   (match_operand:SVE_FULL_F 5 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && !rtx_equal_p (operands[2], operands[5])
     && !rtx_equal_p (operands[3], operands[5])
     && !rtx_equal_p (operands[4], operands[5])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 , 5   ]
!      [ &w       , Upl , w , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , 0 , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %3.<Vetype>, %4.<Vetype>
!      [ &w       , Upl , w , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_fmad_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %4.<Vetype>
!      [ &w       , Upl , w , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;<sve_fmla_op>\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[5], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[5])"
***************
*** 7238,7257 ****
  ;; Unpredicated FMLA and FMLS by selected lanes.  It doesn't seem worth using
  ;; (fma ...) since target-independent code won't understand the indexing.
  (define_insn "@aarch64_<optab>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:SVE_FULL_F 1 "register_operand" "w, w")
  	   (unspec:SVE_FULL_F
! 	     [(match_operand:SVE_FULL_F 2 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  	      (match_operand:SI 3 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)
! 	   (match_operand:SVE_FULL_F 4 "register_operand" "0, w")]
  	  SVE_FP_TERNARY_LANE))]
    "TARGET_SVE"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3]
!    movprfx\t%0, %4\;<sve_fp_op>\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 7507,7526 ----
  ;; Unpredicated FMLA and FMLS by selected lanes.  It doesn't seem worth using
  ;; (fma ...) since target-independent code won't understand the indexing.
  (define_insn "@aarch64_<optab>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:SVE_FULL_F 1 "register_operand")
  	   (unspec:SVE_FULL_F
! 	     [(match_operand:SVE_FULL_F 2 "register_operand")
  	      (match_operand:SI 3 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)
! 	   (match_operand:SVE_FULL_F 4 "register_operand")]
  	  SVE_FP_TERNARY_LANE))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2              , 4 ; attrs: movprfx ]
!      [ w        , w , <sve_lane_con> , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3]
!      [ ?&w      , w , <sve_lane_con> , w ; yes            ] movprfx\t%0, %4\;<sve_fp_op>\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3]
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 7263,7281 ****
  
  ;; Predicated FCMLA.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 5 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 	   (match_operand:SVE_FULL_F 3 "register_operand" "w, w")
! 	   (match_operand:SVE_FULL_F 4 "register_operand" "0, w")]
  	  SVE_COND_FCMLA))]
    "TARGET_SVE"
!   "@
!    fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0, %4\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; unpredicated optab pattern for auto-vectorizer
--- 7532,7550 ----
  
  ;; Predicated FCMLA.
  (define_insn "@aarch64_pred_<optab><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 5 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:SVE_FULL_F 3 "register_operand")
! 	   (match_operand:SVE_FULL_F 4 "register_operand")]
  	  SVE_COND_FCMLA))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , w , w , 0 ; *              ] fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %4\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!   }
  )
  
  ;; unpredicated optab pattern for auto-vectorizer
***************
*** 7353,7421 ****
  
  ;; Predicated FCMLA, merging with the third input.
  (define_insn_and_rewrite "*cond_<optab><mode>_4_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "0, w")]
  	     SVE_COND_FCMLA)
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0, %4\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>"
    "&& !rtx_equal_p (operands[1], operands[5])"
    {
      operands[5] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "*cond_<optab><mode>_4_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "0, w")]
  	     SVE_COND_FCMLA)
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0, %4\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated FCMLA, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 6)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "w, 0, w, w")]
  	     SVE_COND_FCMLA)
! 	   (match_operand:SVE_FULL_F 5 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[4], operands[5])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    #"
    "&& 1"
    {
      if (reload_completed
--- 7622,7691 ----
  
  ;; Predicated FCMLA, merging with the third input.
  (define_insn_and_rewrite "*cond_<optab><mode>_4_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 5)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FCMLA)
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , w , w , 0 ; *              ] fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %4\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!   }
    "&& !rtx_equal_p (operands[1], operands[5])"
    {
      operands[5] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab><mode>_4_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FCMLA)
  	   (match_dup 4)]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 ; attrs: movprfx ]
!      [ w        , Upl , w , w , 0 ; *              ] fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w , w ; yes            ] movprfx\t%0, %4\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!   }
  )
  
  ;; Predicated FCMLA, merging with an independent value.
  (define_insn_and_rewrite "*cond_<optab><mode>_any_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 6)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FCMLA)
! 	   (match_operand:SVE_FULL_F 5 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[4], operands[5])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 , 5   ]
!      [ &w       , Upl , w , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ &w       , Upl , w , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ &w       , Upl , w , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 7435,7458 ****
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w, w")
! 	      (match_operand:SVE_FULL_F 3 "register_operand" "w, w, w, w")
! 	      (match_operand:SVE_FULL_F 4 "register_operand" "w, 0, w, w")]
  	     SVE_COND_FCMLA)
! 	   (match_operand:SVE_FULL_F 5 "aarch64_simd_reg_or_zero" "Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[4], operands[5])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!    #"
    "&& reload_completed
     && register_operand (operands[5], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[5])"
--- 7705,7729 ----
  )
  
  (define_insn_and_rewrite "*cond_<optab><mode>_any_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")
! 	      (match_operand:SVE_FULL_F 3 "register_operand")
! 	      (match_operand:SVE_FULL_F 4 "register_operand")]
  	     SVE_COND_FCMLA)
! 	   (match_operand:SVE_FULL_F 5 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && !rtx_equal_p (operands[4], operands[5])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4 , 5   ]
!      [ &w       , Upl , w , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %4.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ &w       , Upl , w , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ &w       , Upl , w , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %4.<Vetype>\;fcmla\t%0.<Vetype>, %1/m, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , Upl , w , w , w , w   ] #
!   }
    "&& reload_completed
     && register_operand (operands[5], <MODE>mode)
     && !rtx_equal_p (operands[0], operands[5])"
***************
*** 7466,7485 ****
  
  ;; Unpredicated FCMLA with indexing.
  (define_insn "@aarch64_<optab>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSF 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_HSF
! 	  [(match_operand:SVE_FULL_HSF 1 "register_operand" "w, w")
  	   (unspec:SVE_FULL_HSF
! 	     [(match_operand:SVE_FULL_HSF 2 "register_operand" "<sve_lane_pair_con>, <sve_lane_pair_con>")
  	      (match_operand:SI 3 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)
! 	   (match_operand:SVE_FULL_HSF 4 "register_operand" "0, w")]
  	  FCMLA))]
    "TARGET_SVE"
!   "@
!    fcmla\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3], #<rot>
!    movprfx\t%0, %4\;fcmla\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3], #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 7737,7756 ----
  
  ;; Unpredicated FCMLA with indexing.
  (define_insn "@aarch64_<optab>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSF 0 "register_operand")
  	(unspec:SVE_FULL_HSF
! 	  [(match_operand:SVE_FULL_HSF 1 "register_operand")
  	   (unspec:SVE_FULL_HSF
! 	     [(match_operand:SVE_FULL_HSF 2 "register_operand")
  	      (match_operand:SI 3 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)
! 	   (match_operand:SVE_FULL_HSF 4 "register_operand")]
  	  FCMLA))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2                   , 4 ; attrs: movprfx ]
!      [ w        , w , <sve_lane_pair_con> , 0 ; *              ] fcmla\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3], #<rot>
!      [ ?&w      , w , <sve_lane_pair_con> , w ; yes            ] movprfx\t%0, %4\;fcmla\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3], #<rot>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 7490,7506 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_tmad<mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:SVE_FULL_F 1 "register_operand" "0, w")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "w, w")
  	   (match_operand:DI 3 "const_int_operand")]
  	  UNSPEC_FTMAD))]
    "TARGET_SVE"
!   "@
!    ftmad\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #%3
!    movprfx\t%0, %1\;ftmad\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #%3"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 7761,7777 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_tmad<mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:SVE_FULL_F 1 "register_operand")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
  	   (match_operand:DI 3 "const_int_operand")]
  	  UNSPEC_FTMAD))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2 ; attrs: movprfx ]
!      [ w        , 0 , w ; *              ] ftmad\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #%3
!      [ ?&w      , w , w ; yes            ] movprfx\t%0, %1\;ftmad\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #%3
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 7510,7546 ****
  ;; - BFDOT (BF16)
  ;; - BFMLALB (BF16)
  ;; - BFMLALT (BF16)
  ;; - BFMMLA (BF16)
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<sve_fp_op>vnx4sf"
!   [(set (match_operand:VNx4SF 0 "register_operand" "=w, ?&w")
  	(unspec:VNx4SF
! 	  [(match_operand:VNx4SF 1 "register_operand" "0, w")
! 	   (match_operand:VNx8BF 2 "register_operand" "w, w")
! 	   (match_operand:VNx8BF 3 "register_operand" "w, w")]
  	  SVE_BFLOAT_TERNARY_LONG))]
    "TARGET_SVE_BF16"
!   "@
!    <sve_fp_op>\t%0.s, %2.h, %3.h
!    movprfx\t%0, %1\;<sve_fp_op>\t%0.s, %2.h, %3.h"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; The immediate range is enforced before generating the instruction.
  (define_insn "@aarch64_sve_<sve_fp_op>_lanevnx4sf"
!   [(set (match_operand:VNx4SF 0 "register_operand" "=w, ?&w")
  	(unspec:VNx4SF
! 	  [(match_operand:VNx4SF 1 "register_operand" "0, w")
! 	   (match_operand:VNx8BF 2 "register_operand" "w, w")
! 	   (match_operand:VNx8BF 3 "register_operand" "y, y")
  	   (match_operand:SI 4 "const_int_operand")]
  	  SVE_BFLOAT_TERNARY_LONG_LANE))]
    "TARGET_SVE_BF16"
!   "@
!    <sve_fp_op>\t%0.s, %2.h, %3.h[%4]
!    movprfx\t%0, %1\;<sve_fp_op>\t%0.s, %2.h, %3.h[%4]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 7781,7819 ----
  ;; - BFDOT (BF16)
  ;; - BFMLALB (BF16)
  ;; - BFMLALT (BF16)
+ ;; - BFMLSLB (SME2)
+ ;; - BFMLSLT (SME2)
  ;; - BFMMLA (BF16)
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<sve_fp_op>vnx4sf"
!   [(set (match_operand:VNx4SF 0 "register_operand")
  	(unspec:VNx4SF
! 	  [(match_operand:VNx4SF 1 "register_operand")
! 	   (match_operand:VNx8BF 2 "register_operand")
! 	   (match_operand:VNx8BF 3 "register_operand")]
  	  SVE_BFLOAT_TERNARY_LONG))]
    "TARGET_SVE_BF16"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_fp_op>\t%0.s, %2.h, %3.h
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_fp_op>\t%0.s, %2.h, %3.h
!   }
  )
  
  ;; The immediate range is enforced before generating the instruction.
  (define_insn "@aarch64_sve_<sve_fp_op>_lanevnx4sf"
!   [(set (match_operand:VNx4SF 0 "register_operand")
  	(unspec:VNx4SF
! 	  [(match_operand:VNx4SF 1 "register_operand")
! 	   (match_operand:VNx8BF 2 "register_operand")
! 	   (match_operand:VNx8BF 3 "register_operand")
  	   (match_operand:SI 4 "const_int_operand")]
  	  SVE_BFLOAT_TERNARY_LONG_LANE))]
    "TARGET_SVE_BF16"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , y ; *              ] <sve_fp_op>\t%0.s, %2.h, %3.h[%4]
!      [ ?&w      , w , w , y ; yes            ] movprfx\t%0, %1\;<sve_fp_op>\t%0.s, %2.h, %3.h[%4]
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 7552,7568 ****
  
  ;; The mode iterator enforces the target requirements.
  (define_insn "@aarch64_sve_<sve_fp_op><mode>"
!   [(set (match_operand:SVE_MATMULF 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_MATMULF
! 	  [(match_operand:SVE_MATMULF 2 "register_operand" "w, w")
! 	   (match_operand:SVE_MATMULF 3 "register_operand" "w, w")
! 	   (match_operand:SVE_MATMULF 1 "register_operand" "0, w")]
  	  FMMLA))]
!   "TARGET_SVE"
!   "@
!    <sve_fp_op>\\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %1\;<sve_fp_op>\\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; =========================================================================
--- 7825,7841 ----
  
  ;; The mode iterator enforces the target requirements.
  (define_insn "@aarch64_sve_<sve_fp_op><mode>"
!   [(set (match_operand:SVE_MATMULF 0 "register_operand")
  	(unspec:SVE_MATMULF
! 	  [(match_operand:SVE_MATMULF 2 "register_operand")
! 	   (match_operand:SVE_MATMULF 3 "register_operand")
! 	   (match_operand:SVE_MATMULF 1 "register_operand")]
  	  FMMLA))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_fp_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_fp_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; =========================================================================
***************
*** 7613,7636 ****
  ;; For the other instructions, using the element size is more natural,
  ;; so we do that for SEL as well.
  (define_insn "*vcond_mask_<mode><vpred>"
!   [(set (match_operand:SVE_ALL 0 "register_operand" "=w, w, w, w, ?w, ?&w, ?&w")
  	(unspec:SVE_ALL
! 	  [(match_operand:<VPRED> 3 "register_operand" "Upa, Upa, Upa, Upa, Upl, Upl, Upl")
! 	   (match_operand:SVE_ALL 1 "aarch64_sve_reg_or_dup_imm" "w, vss, vss, Ufc, Ufc, vss, Ufc")
! 	   (match_operand:SVE_ALL 2 "aarch64_simd_reg_or_zero" "w, 0, Dz, 0, Dz, w, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && (!register_operand (operands[1], <MODE>mode)
         || register_operand (operands[2], <MODE>mode))"
!   "@
!    sel\t%0.<Vetype>, %3, %1.<Vetype>, %2.<Vetype>
!    mov\t%0.<Vetype>, %3/m, #%I1
!    mov\t%0.<Vetype>, %3/z, #%I1
!    fmov\t%0.<Vetype>, %3/m, #%1
!    movprfx\t%0.<Vetype>, %3/z, %0.<Vetype>\;fmov\t%0.<Vetype>, %3/m, #%1
!    movprfx\t%0, %2\;mov\t%0.<Vetype>, %3/m, #%I1
!    movprfx\t%0, %2\;fmov\t%0.<Vetype>, %3/m, #%1"
!   [(set_attr "movprfx" "*,*,*,*,yes,yes,yes")]
  )
  
  ;; Optimize selects between a duplicated scalar variable and another vector,
--- 7886,7909 ----
  ;; For the other instructions, using the element size is more natural,
  ;; so we do that for SEL as well.
  (define_insn "*vcond_mask_<mode><vpred>"
!   [(set (match_operand:SVE_ALL 0 "register_operand")
  	(unspec:SVE_ALL
! 	  [(match_operand:<VPRED> 3 "register_operand")
! 	   (match_operand:SVE_ALL 1 "aarch64_sve_reg_or_dup_imm")
! 	   (match_operand:SVE_ALL 2 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE
     && (!register_operand (operands[1], <MODE>mode)
         || register_operand (operands[2], <MODE>mode))"
!   {@ [ cons: =0 , 1   , 2  , 3   ; attrs: movprfx ]
!      [ w        , w   , w  , Upa ; *              ] sel\t%0.<Vetype>, %3, %1.<Vetype>, %2.<Vetype>
!      [ w        , vss , 0  , Upa ; *              ] mov\t%0.<Vetype>, %3/m, #%I1
!      [ w        , vss , Dz , Upa ; *              ] mov\t%0.<Vetype>, %3/z, #%I1
!      [ w        , Ufc , 0  , Upa ; *              ] fmov\t%0.<Vetype>, %3/m, #%1
!      [ ?w       , Ufc , Dz , Upl ; yes            ] movprfx\t%0.<Vetype>, %3/z, %0.<Vetype>\;fmov\t%0.<Vetype>, %3/m, #%1
!      [ ?&w      , vss , w  , Upa ; yes            ] movprfx\t%0, %2\;mov\t%0.<Vetype>, %3/m, #%I1
!      [ ?&w      , Ufc , w  , Upa ; yes            ] movprfx\t%0, %2\;fmov\t%0.<Vetype>, %3/m, #%1
!   }
  )
  
  ;; Optimize selects between a duplicated scalar variable and another vector,
***************
*** 7638,7659 ****
  ;; of GPRs as being more expensive than duplicates of FPRs, since they
  ;; involve a cross-file move.
  (define_insn "@aarch64_sel_dup<mode>"
!   [(set (match_operand:SVE_ALL 0 "register_operand" "=?w, w, ??w, ?&w, ??&w, ?&w")
  	(unspec:SVE_ALL
! 	  [(match_operand:<VPRED> 3 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl")
  	   (vec_duplicate:SVE_ALL
! 	     (match_operand:<VEL> 1 "register_operand" "r, w, r, w, r, w"))
! 	   (match_operand:SVE_ALL 2 "aarch64_simd_reg_or_zero" "0, 0, Dz, Dz, w, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    mov\t%0.<Vetype>, %3/m, %<vwcore>1
!    mov\t%0.<Vetype>, %3/m, %<Vetype>1
!    movprfx\t%0.<Vetype>, %3/z, %0.<Vetype>\;mov\t%0.<Vetype>, %3/m, %<vwcore>1
!    movprfx\t%0.<Vetype>, %3/z, %0.<Vetype>\;mov\t%0.<Vetype>, %3/m, %<Vetype>1
!    movprfx\t%0, %2\;mov\t%0.<Vetype>, %3/m, %<vwcore>1
!    movprfx\t%0, %2\;mov\t%0.<Vetype>, %3/m, %<Vetype>1"
!   [(set_attr "movprfx" "*,*,yes,yes,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 7911,7932 ----
  ;; of GPRs as being more expensive than duplicates of FPRs, since they
  ;; involve a cross-file move.
  (define_insn "@aarch64_sel_dup<mode>"
!   [(set (match_operand:SVE_ALL 0 "register_operand")
  	(unspec:SVE_ALL
! 	  [(match_operand:<VPRED> 3 "register_operand")
  	   (vec_duplicate:SVE_ALL
! 	     (match_operand:<VEL> 1 "register_operand"))
! 	   (match_operand:SVE_ALL 2 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2  , 3   ; attrs: movprfx ]
!      [ ?w       , r , 0  , Upl ; *              ] mov\t%0.<Vetype>, %3/m, %<vwcore>1
!      [ w        , w , 0  , Upl ; *              ] mov\t%0.<Vetype>, %3/m, %<Vetype>1
!      [ ??w      , r , Dz , Upl ; yes            ] movprfx\t%0.<Vetype>, %3/z, %0.<Vetype>\;mov\t%0.<Vetype>, %3/m, %<vwcore>1
!      [ ?&w      , w , Dz , Upl ; yes            ] movprfx\t%0.<Vetype>, %3/z, %0.<Vetype>\;mov\t%0.<Vetype>, %3/m, %<Vetype>1
!      [ ??&w     , r , w  , Upl ; yes            ] movprfx\t%0, %2\;mov\t%0.<Vetype>, %3/m, %<vwcore>1
!      [ ?&w      , w , w  , Upl ; yes            ] movprfx\t%0, %2\;mov\t%0.<Vetype>, %3/m, %<Vetype>1
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 7791,7809 ****
  ;;   - the predicate result bit is in the undefined part of a VNx2BI,
  ;;     so its value doesn't matter anyway.
  (define_insn "@aarch64_pred_cmp<cmp_op><mode>"
!   [(set (match_operand:<VPRED> 0 "register_operand" "=Upa, Upa")
  	(unspec:<VPRED>
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 2 "aarch64_sve_ptrue_flag")
  	   (SVE_INT_CMP:<VPRED>
! 	     (match_operand:SVE_I 3 "register_operand" "w, w")
! 	     (match_operand:SVE_I 4 "aarch64_sve_cmp_<sve_imm_con>_operand" "<sve_imm_con>, w"))]
  	  UNSPEC_PRED_Z))
     (clobber (reg:CC_NZC CC_REGNUM))]
    "TARGET_SVE"
!   "@
!    cmp<cmp_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, #%4
!    cmp<cmp_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, %4.<Vetype>"
  )
  
  ;; Predicated integer comparisons in which both the flag and predicate
--- 8064,8083 ----
  ;;   - the predicate result bit is in the undefined part of a VNx2BI,
  ;;     so its value doesn't matter anyway.
  (define_insn "@aarch64_pred_cmp<cmp_op><mode>"
!   [(set (match_operand:<VPRED> 0 "register_operand")
  	(unspec:<VPRED>
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 2 "aarch64_sve_ptrue_flag")
  	   (SVE_INT_CMP:<VPRED>
! 	     (match_operand:SVE_I 3 "register_operand")
! 	     (match_operand:SVE_I 4 "aarch64_sve_cmp_<sve_imm_con>_operand"))]
  	  UNSPEC_PRED_Z))
     (clobber (reg:CC_NZC CC_REGNUM))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 3 , 4              ]
!      [ Upa      , Upl , w , <sve_imm_con>  ] cmp<cmp_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, #%4
!      [ Upa      , Upl , w , w              ] cmp<cmp_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, %4.<Vetype>
!   }
  )
  
  ;; Predicated integer comparisons in which both the flag and predicate
***************
*** 7811,7828 ****
  (define_insn_and_rewrite "*cmp<cmp_op><mode>_cc"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upl, Upl")
  	   (match_operand 4)
  	   (match_operand:SI 5 "aarch64_sve_ptrue_flag")
  	   (unspec:<VPRED>
  	     [(match_operand 6)
  	      (match_operand:SI 7 "aarch64_sve_ptrue_flag")
  	      (SVE_INT_CMP:<VPRED>
! 		(match_operand:SVE_I 2 "register_operand" "w, w")
! 		(match_operand:SVE_I 3 "aarch64_sve_cmp_<sve_imm_con>_operand" "<sve_imm_con>, w"))]
  	     UNSPEC_PRED_Z)]
  	  UNSPEC_PTEST))
!    (set (match_operand:<VPRED> 0 "register_operand" "=Upa, Upa")
  	(unspec:<VPRED>
  	  [(match_dup 6)
  	   (match_dup 7)
--- 8085,8102 ----
  (define_insn_and_rewrite "*cmp<cmp_op><mode>_cc"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 1 "register_operand")
  	   (match_operand 4)
  	   (match_operand:SI 5 "aarch64_sve_ptrue_flag")
  	   (unspec:<VPRED>
  	     [(match_operand 6)
  	      (match_operand:SI 7 "aarch64_sve_ptrue_flag")
  	      (SVE_INT_CMP:<VPRED>
! 		(match_operand:SVE_I 2 "register_operand")
! 		(match_operand:SVE_I 3 "aarch64_sve_cmp_<sve_imm_con>_operand"))]
  	     UNSPEC_PRED_Z)]
  	  UNSPEC_PTEST))
!    (set (match_operand:<VPRED> 0 "register_operand")
  	(unspec:<VPRED>
  	  [(match_dup 6)
  	   (match_dup 7)
***************
*** 7832,7840 ****
  	  UNSPEC_PRED_Z))]
    "TARGET_SVE
     && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])"
!   "@
!    cmp<cmp_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, #%3
!    cmp<cmp_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, %3.<Vetype>"
    "&& !rtx_equal_p (operands[4], operands[6])"
    {
      operands[6] = copy_rtx (operands[4]);
--- 8106,8115 ----
  	  UNSPEC_PRED_Z))]
    "TARGET_SVE
     && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])"
!   {@ [ cons: =0 , 1   , 2 , 3              ]
!      [ Upa      , Upl , w , <sve_imm_con>  ] cmp<cmp_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, #%3
!      [ Upa      , Upl , w , w              ] cmp<cmp_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, %3.<Vetype>
!   }
    "&& !rtx_equal_p (operands[4], operands[6])"
    {
      operands[6] = copy_rtx (operands[4]);
***************
*** 7847,7869 ****
  (define_insn_and_rewrite "*cmp<cmp_op><mode>_ptest"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upl, Upl")
  	   (match_operand 4)
  	   (match_operand:SI 5 "aarch64_sve_ptrue_flag")
  	   (unspec:<VPRED>
  	     [(match_operand 6)
  	      (match_operand:SI 7 "aarch64_sve_ptrue_flag")
  	      (SVE_INT_CMP:<VPRED>
! 		(match_operand:SVE_I 2 "register_operand" "w, w")
! 		(match_operand:SVE_I 3 "aarch64_sve_cmp_<sve_imm_con>_operand" "<sve_imm_con>, w"))]
  	     UNSPEC_PRED_Z)]
  	  UNSPEC_PTEST))
     (clobber (match_scratch:<VPRED> 0 "=Upa, Upa"))]
    "TARGET_SVE
     && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])"
!   "@
!    cmp<cmp_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, #%3
!    cmp<cmp_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, %3.<Vetype>"
    "&& !rtx_equal_p (operands[4], operands[6])"
    {
      operands[6] = copy_rtx (operands[4]);
--- 8122,8145 ----
  (define_insn_and_rewrite "*cmp<cmp_op><mode>_ptest"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 1 "register_operand")
  	   (match_operand 4)
  	   (match_operand:SI 5 "aarch64_sve_ptrue_flag")
  	   (unspec:<VPRED>
  	     [(match_operand 6)
  	      (match_operand:SI 7 "aarch64_sve_ptrue_flag")
  	      (SVE_INT_CMP:<VPRED>
! 		(match_operand:SVE_I 2 "register_operand")
! 		(match_operand:SVE_I 3 "aarch64_sve_cmp_<sve_imm_con>_operand"))]
  	     UNSPEC_PRED_Z)]
  	  UNSPEC_PTEST))
     (clobber (match_scratch:<VPRED> 0 "=Upa, Upa"))]
    "TARGET_SVE
     && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])"
!   {@ [ cons: 1 , 2 , 3              ]
!      [ Upl     , w , <sve_imm_con>  ] cmp<cmp_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, #%3
!      [ Upl     , w , w              ] cmp<cmp_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, %3.<Vetype>
!   }
    "&& !rtx_equal_p (operands[4], operands[6])"
    {
      operands[6] = copy_rtx (operands[4]);
***************
*** 7988,7998 ****
  ;; - WHILEWR (SVE2)
  ;; -------------------------------------------------------------------------
  
  ;; Set element I of the result if (cmp (plus operand1 J) operand2) is
  ;; true for all J in [0, I].
  (define_insn "@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>"
    [(set (match_operand:PRED_ALL 0 "register_operand" "=Upa")
! 	(unspec:PRED_ALL [(match_operand:GPI 1 "aarch64_reg_or_zero" "rZ")
  			  (match_operand:GPI 2 "aarch64_reg_or_zero" "rZ")]
  			 SVE_WHILE))
     (clobber (reg:CC_NZC CC_REGNUM))]
--- 8264,8281 ----
  ;; - WHILEWR (SVE2)
  ;; -------------------------------------------------------------------------
  
+ (define_constants [
+   (SVE_WHILE_B 0)
+   (SVE_WHILE_B_X2 1)
+   (SVE_WHILE_C 2)
+ ])
+ 
  ;; Set element I of the result if (cmp (plus operand1 J) operand2) is
  ;; true for all J in [0, I].
  (define_insn "@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>"
    [(set (match_operand:PRED_ALL 0 "register_operand" "=Upa")
! 	(unspec:PRED_ALL [(const_int SVE_WHILE_B)
! 			  (match_operand:GPI 1 "aarch64_reg_or_zero" "rZ")
  			  (match_operand:GPI 2 "aarch64_reg_or_zero" "rZ")]
  			 SVE_WHILE))
     (clobber (reg:CC_NZC CC_REGNUM))]
***************
*** 8010,8021 ****
  	   (match_operand 4)
  	   (const_int SVE_KNOWN_PTRUE)
  	   (unspec:PRED_ALL
! 	     [(match_operand:GPI 1 "aarch64_reg_or_zero" "rZ")
  	      (match_operand:GPI 2 "aarch64_reg_or_zero" "rZ")]
  	     SVE_WHILE)]
  	  UNSPEC_PTEST))
     (set (match_operand:PRED_ALL 0 "register_operand" "=Upa")
! 	(unspec:PRED_ALL [(match_dup 1)
  			  (match_dup 2)]
  			 SVE_WHILE))]
    "TARGET_SVE"
--- 8293,8306 ----
  	   (match_operand 4)
  	   (const_int SVE_KNOWN_PTRUE)
  	   (unspec:PRED_ALL
! 	     [(const_int SVE_WHILE_B)
! 	      (match_operand:GPI 1 "aarch64_reg_or_zero" "rZ")
  	      (match_operand:GPI 2 "aarch64_reg_or_zero" "rZ")]
  	     SVE_WHILE)]
  	  UNSPEC_PTEST))
     (set (match_operand:PRED_ALL 0 "register_operand" "=Upa")
! 	(unspec:PRED_ALL [(const_int SVE_WHILE_B)
! 			  (match_dup 1)
  			  (match_dup 2)]
  			 SVE_WHILE))]
    "TARGET_SVE"
***************
*** 8037,8043 ****
  	   (match_operand 4)
  	   (const_int SVE_KNOWN_PTRUE)
  	   (unspec:PRED_ALL
! 	     [(match_operand:GPI 1 "aarch64_reg_or_zero" "rZ")
  	      (match_operand:GPI 2 "aarch64_reg_or_zero" "rZ")]
  	     SVE_WHILE)]
  	  UNSPEC_PTEST))
--- 8322,8329 ----
  	   (match_operand 4)
  	   (const_int SVE_KNOWN_PTRUE)
  	   (unspec:PRED_ALL
! 	     [(const_int SVE_WHILE_B)
! 	      (match_operand:GPI 1 "aarch64_reg_or_zero" "rZ")
  	      (match_operand:GPI 2 "aarch64_reg_or_zero" "rZ")]
  	     SVE_WHILE)]
  	  UNSPEC_PTEST))
***************
*** 8084,8100 ****
  
  ;; Predicated floating-point comparisons.
  (define_insn "@aarch64_pred_fcm<cmp_op><mode>"
!   [(set (match_operand:<VPRED> 0 "register_operand" "=Upa, Upa")
  	(unspec:<VPRED>
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 2 "aarch64_sve_ptrue_flag")
! 	   (match_operand:SVE_FULL_F 3 "register_operand" "w, w")
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero" "Dz, w")]
  	  SVE_COND_FP_CMP_I0))]
    "TARGET_SVE"
!   "@
!    fcm<cmp_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, #0.0
!    fcm<cmp_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, %4.<Vetype>"
  )
  
  ;; Same for unordered comparisons.
--- 8370,8387 ----
  
  ;; Predicated floating-point comparisons.
  (define_insn "@aarch64_pred_fcm<cmp_op><mode>"
!   [(set (match_operand:<VPRED> 0 "register_operand")
  	(unspec:<VPRED>
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 2 "aarch64_sve_ptrue_flag")
! 	   (match_operand:SVE_FULL_F 3 "register_operand")
! 	   (match_operand:SVE_FULL_F 4 "aarch64_simd_reg_or_zero")]
  	  SVE_COND_FP_CMP_I0))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 3 , 4   ]
!      [ Upa      , Upl , w , Dz  ] fcm<cmp_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, #0.0
!      [ Upa      , Upl , w , w   ] fcm<cmp_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, %4.<Vetype>
!   }
  )
  
  ;; Same for unordered comparisons.
***************
*** 8476,8504 ****
  ;; Set operand 0 to the last active element in operand 3, or to tied
  ;; operand 1 if no elements are active.
  (define_insn "@fold_extract_<last_op>_<mode>"
!   [(set (match_operand:<VEL> 0 "register_operand" "=?r, w")
  	(unspec:<VEL>
! 	  [(match_operand:<VEL> 1 "register_operand" "0, 0")
! 	   (match_operand:<VPRED> 2 "register_operand" "Upl, Upl")
! 	   (match_operand:SVE_FULL 3 "register_operand" "w, w")]
  	  CLAST))]
    "TARGET_SVE"
!   "@
!    clast<ab>\t%<vwcore>0, %2, %<vwcore>0, %3.<Vetype>
!    clast<ab>\t%<Vetype>0, %2, %<Vetype>0, %3.<Vetype>"
  )
  
  (define_insn "@aarch64_fold_extract_vector_<last_op>_<mode>"
!   [(set (match_operand:SVE_FULL 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL
! 	  [(match_operand:SVE_FULL 1 "register_operand" "0, w")
! 	   (match_operand:<VPRED> 2 "register_operand" "Upl, Upl")
! 	   (match_operand:SVE_FULL 3 "register_operand" "w, w")]
  	  CLAST))]
    "TARGET_SVE"
!   "@
!    clast<ab>\t%0.<Vetype>, %2, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %1\;clast<ab>\t%0.<Vetype>, %2, %0.<Vetype>, %3.<Vetype>"
  )
  
  ;; -------------------------------------------------------------------------
--- 8763,8793 ----
  ;; Set operand 0 to the last active element in operand 3, or to tied
  ;; operand 1 if no elements are active.
  (define_insn "@fold_extract_<last_op>_<mode>"
!   [(set (match_operand:<VEL> 0 "register_operand")
  	(unspec:<VEL>
! 	  [(match_operand:<VEL> 1 "register_operand")
! 	   (match_operand:<VPRED> 2 "register_operand")
! 	   (match_operand:SVE_FULL 3 "register_operand")]
  	  CLAST))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   , 3  ]
!      [ ?r       , 0 , Upl , w  ] clast<ab>\t%<vwcore>0, %2, %<vwcore>0, %3.<Vetype>
!      [ w        , 0 , Upl , w  ] clast<ab>\t%<Vetype>0, %2, %<Vetype>0, %3.<Vetype>
!   }
  )
  
  (define_insn "@aarch64_fold_extract_vector_<last_op>_<mode>"
!   [(set (match_operand:SVE_FULL 0 "register_operand")
  	(unspec:SVE_FULL
! 	  [(match_operand:SVE_FULL 1 "register_operand")
! 	   (match_operand:<VPRED> 2 "register_operand")
! 	   (match_operand:SVE_FULL 3 "register_operand")]
  	  CLAST))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   , 3  ]
!      [ w        , 0 , Upl , w  ] clast<ab>\t%0.<Vetype>, %2, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , w , Upl , w  ] movprfx\t%0, %1\;clast<ab>\t%0.<Vetype>, %2, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 8621,8627 ****
  		       (match_operand:<VEL> 1 "register_operand")
  		       (match_operand:SVE_FULL_F 2 "register_operand")]
  		      UNSPEC_FADDA))]
!   "TARGET_SVE"
    {
      operands[3] = aarch64_ptrue_reg (<VPRED>mode);
    }
--- 8910,8916 ----
  		       (match_operand:<VEL> 1 "register_operand")
  		       (match_operand:SVE_FULL_F 2 "register_operand")]
  		      UNSPEC_FADDA))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    {
      operands[3] = aarch64_ptrue_reg (<VPRED>mode);
    }
***************
*** 8634,8640 ****
  		       (match_operand:<VEL> 1 "register_operand" "0")
  		       (match_operand:SVE_FULL_F 2 "register_operand" "w")]
  		      UNSPEC_FADDA))]
!   "TARGET_SVE"
    "fadda\t%<Vetype>0, %3, %<Vetype>0, %2.<Vetype>"
  )
  
--- 8923,8929 ----
  		       (match_operand:<VEL> 1 "register_operand" "0")
  		       (match_operand:SVE_FULL_F 2 "register_operand" "w")]
  		      UNSPEC_FADDA))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "fadda\t%<Vetype>0, %3, %<Vetype>0, %2.<Vetype>"
  )
  
***************
*** 8688,8694 ****
  	  [(match_operand:<VPRED> 1 "register_operand" "Upl")
  	   (match_operand:SVE_FULL_SD 2 "register_operand" "w")]
  	  UNSPEC_SVE_COMPACT))]
!   "TARGET_SVE"
    "compact\t%0.<Vetype>, %1, %2.<Vetype>"
  )
  
--- 8977,8983 ----
  	  [(match_operand:<VPRED> 1 "register_operand" "Upl")
  	   (match_operand:SVE_FULL_SD 2 "register_operand" "w")]
  	  UNSPEC_SVE_COMPACT))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
    "compact\t%0.<Vetype>, %1, %2.<Vetype>"
  )
  
***************
*** 8765,8781 ****
  
  ;; Like EXT, but start at the first active element.
  (define_insn "@aarch64_sve_splice<mode>"
!   [(set (match_operand:SVE_FULL 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
! 	   (match_operand:SVE_FULL 2 "register_operand" "0, w")
! 	   (match_operand:SVE_FULL 3 "register_operand" "w, w")]
  	  UNSPEC_SVE_SPLICE))]
    "TARGET_SVE"
!   "@
!    splice\t%0.<Vetype>, %1, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;splice\t%0.<Vetype>, %1, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*, yes")]
  )
  
  ;; Permutes that take half the elements from one vector and half the
--- 9054,9070 ----
  
  ;; Like EXT, but start at the first active element.
  (define_insn "@aarch64_sve_splice<mode>"
!   [(set (match_operand:SVE_FULL 0 "register_operand")
  	(unspec:SVE_FULL
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:SVE_FULL 2 "register_operand")
! 	   (match_operand:SVE_FULL 3 "register_operand")]
  	  UNSPEC_SVE_SPLICE))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] splice\t%0.<Vetype>, %1, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;splice\t%0.<Vetype>, %1, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Permutes that take half the elements from one vector and half the
***************
*** 8957,8988 ****
  
  ;; Predicated float-to-integer conversion, either to the same width or wider.
  (define_insn "@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "0, w")]
  	  SVE_COND_FCVTI))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   "@
!    fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!    movprfx\t%0, %2\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated narrowing float-to-integer conversion.
  (define_insn "@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand" "=w, ?&w")
  	(unspec:VNx4SI_ONLY
! 	  [(match_operand:VNx2BI 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:VNx2DF_ONLY 2 "register_operand" "0, w")]
  	  SVE_COND_FCVTI))]
    "TARGET_SVE"
!   "@
!    fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>
!    movprfx\t%0, %2\;fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated float-to-integer conversion with merging, either to the same
--- 9246,9277 ----
  
  ;; Predicated float-to-integer conversion, either to the same width or wider.
  (define_insn "@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")]
  	  SVE_COND_FCVTI))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!   }
  )
  
  ;; Predicated narrowing float-to-integer conversion.
  (define_insn "@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand")
  	(unspec:VNx4SI_ONLY
! 	  [(match_operand:VNx2BI 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:VNx2DF_ONLY 2 "register_operand")]
  	  SVE_COND_FCVTI))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>
!   }
  )
  
  ;; Predicated float-to-integer conversion with merging, either to the same
***************
*** 9007,9051 ****
  ;; alternatives earlyclobber makes things more consistent for the
  ;; register allocator.
  (define_insn_and_rewrite "*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=&w, &w, ?&w")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_HSDI
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w")]
  	     SVE_COND_FCVTI)
! 	   (match_operand:SVE_FULL_HSDI 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   "@
!    fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!    movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!    movprfx\t%0, %3\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  (define_insn "*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=&w, &w, ?&w")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_HSDI
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w")]
  	     SVE_COND_FCVTI)
! 	   (match_operand:SVE_FULL_HSDI 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   "@
!    fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!    movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!    movprfx\t%0, %3\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; Predicated narrowing float-to-integer conversion with merging.
--- 9296,9340 ----
  ;; alternatives earlyclobber makes things more consistent for the
  ;; register allocator.
  (define_insn_and_rewrite "*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_HSDI
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")]
  	     SVE_COND_FCVTI)
! 	   (match_operand:SVE_FULL_HSDI 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!      [ &w       , Upl , w , Dz ; yes            ] movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_HSDI
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")]
  	     SVE_COND_FCVTI)
! 	   (match_operand:SVE_FULL_HSDI 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!      [ &w       , Upl , w , Dz ; yes            ] movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;fcvtz<su>\t%0.<SVE_FULL_HSDI:Vetype>, %1/m, %2.<SVE_FULL_F:Vetype>
!   }
  )
  
  ;; Predicated narrowing float-to-integer conversion with merging.
***************
*** 9064,9085 ****
  )
  
  (define_insn "*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand" "=&w, &w, ?&w")
  	(unspec:VNx4SI_ONLY
! 	  [(match_operand:VNx2BI 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:VNx4SI_ONLY
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:VNx2DF_ONLY 2 "register_operand" "w, w, w")]
  	     SVE_COND_FCVTI)
! 	   (match_operand:VNx4SI_ONLY 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>
!    movprfx\t%0.<VNx2DF_ONLY:Vetype>, %1/z, %2.<VNx2DF_ONLY:Vetype>\;fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>
!    movprfx\t%0, %3\;fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 9353,9374 ----
  )
  
  (define_insn "*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand")
  	(unspec:VNx4SI_ONLY
! 	  [(match_operand:VNx2BI 1 "register_operand")
  	   (unspec:VNx4SI_ONLY
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:VNx2DF_ONLY 2 "register_operand")]
  	     SVE_COND_FCVTI)
! 	   (match_operand:VNx4SI_ONLY 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>
!      [ &w       , Upl , w , Dz ; yes            ] movprfx\t%0.<VNx2DF_ONLY:Vetype>, %1/z, %2.<VNx2DF_ONLY:Vetype>\;fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;fcvtz<su>\t%0.<VNx4SI_ONLY:Vetype>, %1/m, %2.<VNx2DF_ONLY:Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 9144,9175 ****
  ;; Predicated integer-to-float conversion, either to the same width or
  ;; narrower.
  (define_insn "@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_HSDI 2 "register_operand" "0, w")]
  	  SVE_COND_ICVTF))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   "@
!    <su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!    movprfx\t%0, %2\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated widening integer-to-float conversion.
  (define_insn "@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>"
!   [(set (match_operand:VNx2DF_ONLY 0 "register_operand" "=w, ?&w")
  	(unspec:VNx2DF_ONLY
! 	  [(match_operand:VNx2BI 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:VNx4SI_ONLY 2 "register_operand" "0, w")]
  	  SVE_COND_ICVTF))]
    "TARGET_SVE"
!   "@
!    <su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>
!    movprfx\t%0, %2\;<su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer-to-float conversion with merging, either to the same
--- 9433,9464 ----
  ;; Predicated integer-to-float conversion, either to the same width or
  ;; narrower.
  (define_insn "@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_HSDI 2 "register_operand")]
  	  SVE_COND_ICVTF))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!   }
  )
  
  ;; Predicated widening integer-to-float conversion.
  (define_insn "@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>"
!   [(set (match_operand:VNx2DF_ONLY 0 "register_operand")
  	(unspec:VNx2DF_ONLY
! 	  [(match_operand:VNx2BI 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:VNx4SI_ONLY 2 "register_operand")]
  	  SVE_COND_ICVTF))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>
!   }
  )
  
  ;; Predicated integer-to-float conversion with merging, either to the same
***************
*** 9194,9238 ****
  ;; alternatives earlyclobber makes things more consistent for the
  ;; register allocator.
  (define_insn_and_rewrite "*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_HSDI 2 "register_operand" "w, w, w")]
  	     SVE_COND_ICVTF)
! 	   (match_operand:SVE_FULL_F 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   "@
!    <su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!    movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!    movprfx\t%0, %3\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  (define_insn "*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=&w, &w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_HSDI 2 "register_operand" "w, w, w")]
  	     SVE_COND_ICVTF)
! 	   (match_operand:SVE_FULL_F 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   "@
!    <su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!    movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!    movprfx\t%0, %3\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; Predicated widening integer-to-float conversion with merging.
--- 9483,9527 ----
  ;; alternatives earlyclobber makes things more consistent for the
  ;; register allocator.
  (define_insn_and_rewrite "*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_HSDI 2 "register_operand")]
  	     SVE_COND_ICVTF)
! 	   (match_operand:SVE_FULL_F 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!      [ &w       , Upl , w , Dz ; yes            ] movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<SVE_FULL_HSDI:VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_F
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_HSDI 2 "register_operand")]
  	     SVE_COND_ICVTF)
! 	   (match_operand:SVE_FULL_F 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_HSDI:elem_bits> >= <SVE_FULL_F:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!      [ &w       , Upl , w , Dz ; yes            ] movprfx\t%0.<SVE_FULL_HSDI:Vetype>, %1/z, %2.<SVE_FULL_HSDI:Vetype>\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<su>cvtf\t%0.<SVE_FULL_F:Vetype>, %1/m, %2.<SVE_FULL_HSDI:Vetype>
!   }
  )
  
  ;; Predicated widening integer-to-float conversion with merging.
***************
*** 9251,9272 ****
  )
  
  (define_insn "*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>"
!   [(set (match_operand:VNx2DF_ONLY 0 "register_operand" "=w, ?&w, ?&w")
  	(unspec:VNx2DF_ONLY
! 	  [(match_operand:VNx2BI 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:VNx2DF_ONLY
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:VNx4SI_ONLY 2 "register_operand" "w, w, w")]
  	     SVE_COND_ICVTF)
! 	   (match_operand:VNx2DF_ONLY 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   "@
!    <su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>
!    movprfx\t%0.<VNx2DF_ONLY:Vetype>, %1/z, %2.<VNx2DF_ONLY:Vetype>\;<su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>
!    movprfx\t%0, %3\;<su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 9540,9561 ----
  )
  
  (define_insn "*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>"
!   [(set (match_operand:VNx2DF_ONLY 0 "register_operand")
  	(unspec:VNx2DF_ONLY
! 	  [(match_operand:VNx2BI 1 "register_operand")
  	   (unspec:VNx2DF_ONLY
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:VNx4SI_ONLY 2 "register_operand")]
  	     SVE_COND_ICVTF)
! 	   (match_operand:VNx2DF_ONLY 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ w        , Upl , w , 0  ; *              ] <su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<VNx2DF_ONLY:Vetype>, %1/z, %2.<VNx2DF_ONLY:Vetype>\;<su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<su>cvtf\t%0.<VNx2DF_ONLY:Vetype>, %1/m, %2.<VNx4SI_ONLY:Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 9342,9358 ****
  
  ;; Predicated float-to-float truncation.
  (define_insn "@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>"
!   [(set (match_operand:SVE_FULL_HSF 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_HSF
! 	  [(match_operand:<SVE_FULL_SDF:VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_SDF 2 "register_operand" "0, w")]
  	  SVE_COND_FCVT))]
    "TARGET_SVE && <SVE_FULL_SDF:elem_bits> > <SVE_FULL_HSF:elem_bits>"
!   "@
!    fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>
!    movprfx\t%0, %2\;fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated float-to-float truncation with merging.
--- 9631,9647 ----
  
  ;; Predicated float-to-float truncation.
  (define_insn "@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>"
!   [(set (match_operand:SVE_FULL_HSF 0 "register_operand")
  	(unspec:SVE_FULL_HSF
! 	  [(match_operand:<SVE_FULL_SDF:VPRED> 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_SDF 2 "register_operand")]
  	  SVE_COND_FCVT))]
    "TARGET_SVE && <SVE_FULL_SDF:elem_bits> > <SVE_FULL_HSF:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>
!   }
  )
  
  ;; Predicated float-to-float truncation with merging.
***************
*** 9371,9392 ****
  )
  
  (define_insn "*cond_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>"
!   [(set (match_operand:SVE_FULL_HSF 0 "register_operand" "=w, ?&w, ?&w")
  	(unspec:SVE_FULL_HSF
! 	  [(match_operand:<SVE_FULL_SDF:VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_HSF
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:SVE_FULL_SDF 2 "register_operand" "w, w, w")]
  	     SVE_COND_FCVT)
! 	   (match_operand:SVE_FULL_HSF 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_SDF:elem_bits> > <SVE_FULL_HSF:elem_bits>"
!   "@
!    fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>
!    movprfx\t%0.<SVE_FULL_SDF:Vetype>, %1/z, %2.<SVE_FULL_SDF:Vetype>\;fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>
!    movprfx\t%0, %3\;fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 9660,9681 ----
  )
  
  (define_insn "*cond_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>"
!   [(set (match_operand:SVE_FULL_HSF 0 "register_operand")
  	(unspec:SVE_FULL_HSF
! 	  [(match_operand:<SVE_FULL_SDF:VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_HSF
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:SVE_FULL_SDF 2 "register_operand")]
  	     SVE_COND_FCVT)
! 	   (match_operand:SVE_FULL_HSF 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_SDF:elem_bits> > <SVE_FULL_HSF:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ w        , Upl , w , 0  ; *              ] fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<SVE_FULL_SDF:Vetype>, %1/z, %2.<SVE_FULL_SDF:Vetype>\;fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;fcvt\t%0.<SVE_FULL_HSF:Vetype>, %1/m, %2.<SVE_FULL_SDF:Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 9399,9415 ****
  
  ;; Predicated BFCVT.
  (define_insn "@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>"
!   [(set (match_operand:VNx8BF_ONLY 0 "register_operand" "=w, ?&w")
  	(unspec:VNx8BF_ONLY
! 	  [(match_operand:VNx4BI 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:VNx4SF_ONLY 2 "register_operand" "0, w")]
  	  SVE_COND_FCVT))]
    "TARGET_SVE_BF16"
!   "@
!    bfcvt\t%0.h, %1/m, %2.s
!    movprfx\t%0, %2\;bfcvt\t%0.h, %1/m, %2.s"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated BFCVT with merging.
--- 9688,9704 ----
  
  ;; Predicated BFCVT.
  (define_insn "@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>"
!   [(set (match_operand:VNx8BF_ONLY 0 "register_operand")
  	(unspec:VNx8BF_ONLY
! 	  [(match_operand:VNx4BI 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:VNx4SF_ONLY 2 "register_operand")]
  	  SVE_COND_FCVT))]
    "TARGET_SVE_BF16"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] bfcvt\t%0.h, %1/m, %2.s
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;bfcvt\t%0.h, %1/m, %2.s
!   }
  )
  
  ;; Predicated BFCVT with merging.
***************
*** 9428,9449 ****
  )
  
  (define_insn "*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>"
!   [(set (match_operand:VNx8BF_ONLY 0 "register_operand" "=w, ?&w, ?&w")
  	(unspec:VNx8BF_ONLY
! 	  [(match_operand:VNx4BI 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:VNx8BF_ONLY
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:VNx4SF_ONLY 2 "register_operand" "w, w, w")]
  	     SVE_COND_FCVT)
! 	   (match_operand:VNx8BF_ONLY 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE_BF16"
!   "@
!    bfcvt\t%0.h, %1/m, %2.s
!    movprfx\t%0.s, %1/z, %2.s\;bfcvt\t%0.h, %1/m, %2.s
!    movprfx\t%0, %3\;bfcvt\t%0.h, %1/m, %2.s"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; Predicated BFCVTNT.  This doesn't give a natural aarch64_pred_*/cond_*
--- 9717,9738 ----
  )
  
  (define_insn "*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>"
!   [(set (match_operand:VNx8BF_ONLY 0 "register_operand")
  	(unspec:VNx8BF_ONLY
! 	  [(match_operand:VNx4BI 1 "register_operand")
  	   (unspec:VNx8BF_ONLY
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:VNx4SF_ONLY 2 "register_operand")]
  	     SVE_COND_FCVT)
! 	   (match_operand:VNx8BF_ONLY 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE_BF16"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ w        , Upl , w , 0  ; *              ] bfcvt\t%0.h, %1/m, %2.s
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.s, %1/z, %2.s\;bfcvt\t%0.h, %1/m, %2.s
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;bfcvt\t%0.h, %1/m, %2.s
!   }
  )
  
  ;; Predicated BFCVTNT.  This doesn't give a natural aarch64_pred_*/cond_*
***************
*** 9499,9515 ****
  
  ;; Predicated float-to-float extension.
  (define_insn "@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>"
!   [(set (match_operand:SVE_FULL_SDF 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_SDF
! 	  [(match_operand:<SVE_FULL_SDF:VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_HSF 2 "register_operand" "0, w")]
  	  SVE_COND_FCVT))]
    "TARGET_SVE && <SVE_FULL_SDF:elem_bits> > <SVE_FULL_HSF:elem_bits>"
!   "@
!    fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>
!    movprfx\t%0, %2\;fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated float-to-float extension with merging.
--- 9788,9804 ----
  
  ;; Predicated float-to-float extension.
  (define_insn "@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>"
!   [(set (match_operand:SVE_FULL_SDF 0 "register_operand")
  	(unspec:SVE_FULL_SDF
! 	  [(match_operand:<SVE_FULL_SDF:VPRED> 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_HSF 2 "register_operand")]
  	  SVE_COND_FCVT))]
    "TARGET_SVE && <SVE_FULL_SDF:elem_bits> > <SVE_FULL_HSF:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>
!   }
  )
  
  ;; Predicated float-to-float extension with merging.
***************
*** 9528,9549 ****
  )
  
  (define_insn "*cond_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>"
!   [(set (match_operand:SVE_FULL_SDF 0 "register_operand" "=w, ?&w, ?&w")
  	(unspec:SVE_FULL_SDF
! 	  [(match_operand:<SVE_FULL_SDF:VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_SDF
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:SVE_FULL_HSF 2 "register_operand" "w, w, w")]
  	     SVE_COND_FCVT)
! 	   (match_operand:SVE_FULL_SDF 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_SDF:elem_bits> > <SVE_FULL_HSF:elem_bits>"
!   "@
!    fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>
!    movprfx\t%0.<SVE_FULL_SDF:Vetype>, %1/z, %2.<SVE_FULL_SDF:Vetype>\;fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>
!    movprfx\t%0, %3\;fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 9817,9838 ----
  )
  
  (define_insn "*cond_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>"
!   [(set (match_operand:SVE_FULL_SDF 0 "register_operand")
  	(unspec:SVE_FULL_SDF
! 	  [(match_operand:<SVE_FULL_SDF:VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_SDF
  	     [(match_dup 1)
  	      (match_operand:SI 4 "aarch64_sve_gp_strictness")
! 	      (match_operand:SVE_FULL_HSF 2 "register_operand")]
  	     SVE_COND_FCVT)
! 	   (match_operand:SVE_FULL_SDF 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE && <SVE_FULL_SDF:elem_bits> > <SVE_FULL_HSF:elem_bits>"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ w        , Upl , w , 0  ; *              ] fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<SVE_FULL_SDF:Vetype>, %1/z, %2.<SVE_FULL_SDF:Vetype>\;fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;fcvt\t%0.<SVE_FULL_SDF:Vetype>, %1/m, %2.<SVE_FULL_HSF:Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 9616,9631 ****
  ;; zeroing forms, these instructions don't operate elementwise and so
  ;; don't fit the IFN_COND model.
  (define_insn "@aarch64_brk<brk_op>"
!   [(set (match_operand:VNx16BI 0 "register_operand" "=Upa, Upa")
  	(unspec:VNx16BI
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upa, Upa")
! 	   (match_operand:VNx16BI 2 "register_operand" "Upa, Upa")
! 	   (match_operand:VNx16BI 3 "aarch64_simd_reg_or_zero" "Dz, 0")]
  	  SVE_BRK_UNARY))]
    "TARGET_SVE"
!   "@
!    brk<brk_op>\t%0.b, %1/z, %2.b
!    brk<brk_op>\t%0.b, %1/m, %2.b"
  )
  
  ;; Same, but also producing a flags result.
--- 9905,9921 ----
  ;; zeroing forms, these instructions don't operate elementwise and so
  ;; don't fit the IFN_COND model.
  (define_insn "@aarch64_brk<brk_op>"
!   [(set (match_operand:VNx16BI 0 "register_operand")
  	(unspec:VNx16BI
! 	  [(match_operand:VNx16BI 1 "register_operand")
! 	   (match_operand:VNx16BI 2 "register_operand")
! 	   (match_operand:VNx16BI 3 "aarch64_simd_reg_or_zero")]
  	  SVE_BRK_UNARY))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1   , 2   , 3   ]
!      [ Upa      , Upa , Upa , Dz  ] brk<brk_op>\t%0.b, %1/z, %2.b
!      [ Upa      , Upa , Upa , 0   ] brk<brk_op>\t%0.b, %1/m, %2.b
!   }
  )
  
  ;; Same, but also producing a flags result.
***************
*** 10346,10370 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx2DI 0 "register_operand" "=w, ?&w")
  	(ANY_PLUS:VNx2DI
  	  (vec_duplicate:VNx2DI
  	    (zero_extend:DI
  	      (unspec:SI
  		[(match_operand 3)
  		 (const_int SVE_KNOWN_PTRUE)
! 		 (match_operand:<VPRED> 2 "register_operand" "Upa, Upa")]
  		UNSPEC_CNTP)))
! 	  (match_operand:VNx2DI_ONLY 1 "register_operand" "0, w")))]
    "TARGET_SVE"
!   "@
!    <inc_dec>p\t%0.d, %2
!    movprfx\t%0, %1\;<inc_dec>p\t%0.d, %2"
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Increment a vector of SIs by the number of set bits in a predicate.
--- 10636,10660 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx2DI 0 "register_operand")
  	(ANY_PLUS:VNx2DI
  	  (vec_duplicate:VNx2DI
  	    (zero_extend:DI
  	      (unspec:SI
  		[(match_operand 3)
  		 (const_int SVE_KNOWN_PTRUE)
! 		 (match_operand:<VPRED> 2 "register_operand")]
  		UNSPEC_CNTP)))
! 	  (match_operand:VNx2DI_ONLY 1 "register_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , 0 , Upa ; *              ] <inc_dec>p\t%0.d, %2
!      [ ?&w      , w , Upa ; yes            ] movprfx\t%0, %1\;<inc_dec>p\t%0.d, %2
!   }
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Increment a vector of SIs by the number of set bits in a predicate.
***************
*** 10386,10409 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx4SI 0 "register_operand" "=w, ?&w")
  	(ANY_PLUS:VNx4SI
  	  (vec_duplicate:VNx4SI
  	    (unspec:SI
  	      [(match_operand 3)
  	       (const_int SVE_KNOWN_PTRUE)
! 	       (match_operand:<VPRED> 2 "register_operand" "Upa, Upa")]
  	      UNSPEC_CNTP))
! 	  (match_operand:VNx4SI_ONLY 1 "register_operand" "0, w")))]
    "TARGET_SVE"
!   "@
!    <inc_dec>p\t%0.s, %2
!    movprfx\t%0, %1\;<inc_dec>p\t%0.s, %2"
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Increment a vector of HIs by the number of set bits in a predicate.
--- 10676,10699 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx4SI 0 "register_operand")
  	(ANY_PLUS:VNx4SI
  	  (vec_duplicate:VNx4SI
  	    (unspec:SI
  	      [(match_operand 3)
  	       (const_int SVE_KNOWN_PTRUE)
! 	       (match_operand:<VPRED> 2 "register_operand")]
  	      UNSPEC_CNTP))
! 	  (match_operand:VNx4SI_ONLY 1 "register_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , 0 , Upa ; *              ] <inc_dec>p\t%0.s, %2
!      [ ?&w      , w , Upa ; yes            ] movprfx\t%0, %1\;<inc_dec>p\t%0.s, %2
!   }
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Increment a vector of HIs by the number of set bits in a predicate.
***************
*** 10426,10450 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx8HI 0 "register_operand" "=w, ?&w")
  	(ANY_PLUS:VNx8HI
  	  (vec_duplicate:VNx8HI
  	    (match_operator:HI 3 "subreg_lowpart_operator"
  	      [(unspec:SI
  		 [(match_operand 4)
  		  (const_int SVE_KNOWN_PTRUE)
! 		  (match_operand:<VPRED> 2 "register_operand" "Upa, Upa")]
  		 UNSPEC_CNTP)]))
! 	  (match_operand:VNx8HI_ONLY 1 "register_operand" "0, w")))]
    "TARGET_SVE"
!   "@
!    <inc_dec>p\t%0.h, %2
!    movprfx\t%0, %1\;<inc_dec>p\t%0.h, %2"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 10716,10740 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx8HI 0 "register_operand")
  	(ANY_PLUS:VNx8HI
  	  (vec_duplicate:VNx8HI
  	    (match_operator:HI 3 "subreg_lowpart_operator"
  	      [(unspec:SI
  		 [(match_operand 4)
  		  (const_int SVE_KNOWN_PTRUE)
! 		  (match_operand:<VPRED> 2 "register_operand")]
  		 UNSPEC_CNTP)]))
! 	  (match_operand:VNx8HI_ONLY 1 "register_operand")))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , 0 , Upa ; *              ] <inc_dec>p\t%0.h, %2
!      [ ?&w      , w , Upa ; yes            ] movprfx\t%0, %1\;<inc_dec>p\t%0.h, %2
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 10579,10603 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx2DI 0 "register_operand" "=w, ?&w")
  	(ANY_MINUS:VNx2DI
! 	  (match_operand:VNx2DI_ONLY 1 "register_operand" "0, w")
  	  (vec_duplicate:VNx2DI
  	    (zero_extend:DI
  	      (unspec:SI
  		[(match_operand 3)
  		 (const_int SVE_KNOWN_PTRUE)
! 		 (match_operand:<VPRED> 2 "register_operand" "Upa, Upa")]
  		UNSPEC_CNTP)))))]
    "TARGET_SVE"
!   "@
!    <inc_dec>p\t%0.d, %2
!    movprfx\t%0, %1\;<inc_dec>p\t%0.d, %2"
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Decrement a vector of SIs by the number of set bits in a predicate.
--- 10869,10893 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx2DI 0 "register_operand")
  	(ANY_MINUS:VNx2DI
! 	  (match_operand:VNx2DI_ONLY 1 "register_operand")
  	  (vec_duplicate:VNx2DI
  	    (zero_extend:DI
  	      (unspec:SI
  		[(match_operand 3)
  		 (const_int SVE_KNOWN_PTRUE)
! 		 (match_operand:<VPRED> 2 "register_operand")]
  		UNSPEC_CNTP)))))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , 0 , Upa ; *              ] <inc_dec>p\t%0.d, %2
!      [ ?&w      , w , Upa ; yes            ] movprfx\t%0, %1\;<inc_dec>p\t%0.d, %2
!   }
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Decrement a vector of SIs by the number of set bits in a predicate.
***************
*** 10619,10642 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx4SI 0 "register_operand" "=w, ?&w")
  	(ANY_MINUS:VNx4SI
! 	  (match_operand:VNx4SI_ONLY 1 "register_operand" "0, w")
  	  (vec_duplicate:VNx4SI
  	    (unspec:SI
  	      [(match_operand 3)
  	       (const_int SVE_KNOWN_PTRUE)
! 	       (match_operand:<VPRED> 2 "register_operand" "Upa, Upa")]
  	      UNSPEC_CNTP))))]
    "TARGET_SVE"
!   "@
!    <inc_dec>p\t%0.s, %2
!    movprfx\t%0, %1\;<inc_dec>p\t%0.s, %2"
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Decrement a vector of HIs by the number of set bits in a predicate.
--- 10909,10932 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx4SI 0 "register_operand")
  	(ANY_MINUS:VNx4SI
! 	  (match_operand:VNx4SI_ONLY 1 "register_operand")
  	  (vec_duplicate:VNx4SI
  	    (unspec:SI
  	      [(match_operand 3)
  	       (const_int SVE_KNOWN_PTRUE)
! 	       (match_operand:<VPRED> 2 "register_operand")]
  	      UNSPEC_CNTP))))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , 0 , Upa ; *              ] <inc_dec>p\t%0.s, %2
!      [ ?&w      , w , Upa ; yes            ] movprfx\t%0, %1\;<inc_dec>p\t%0.s, %2
!   }
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Decrement a vector of HIs by the number of set bits in a predicate.
***************
*** 10659,10681 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx8HI 0 "register_operand" "=w, ?&w")
  	(ANY_MINUS:VNx8HI
! 	  (match_operand:VNx8HI_ONLY 1 "register_operand" "0, w")
  	  (vec_duplicate:VNx8HI
  	    (match_operator:HI 3 "subreg_lowpart_operator"
  	      [(unspec:SI
  		 [(match_operand 4)
  		  (const_int SVE_KNOWN_PTRUE)
! 		  (match_operand:<VPRED> 2 "register_operand" "Upa, Upa")]
  		 UNSPEC_CNTP)]))))]
    "TARGET_SVE"
!   "@
!    <inc_dec>p\t%0.h, %2
!    movprfx\t%0, %1\;<inc_dec>p\t%0.h, %2"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
!   [(set_attr "movprfx" "*,yes")]
  )
--- 10949,11004 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve_<inc_dec><mode>_cntp"
!   [(set (match_operand:VNx8HI 0 "register_operand")
  	(ANY_MINUS:VNx8HI
! 	  (match_operand:VNx8HI_ONLY 1 "register_operand")
  	  (vec_duplicate:VNx8HI
  	    (match_operator:HI 3 "subreg_lowpart_operator"
  	      [(unspec:SI
  		 [(match_operand 4)
  		  (const_int SVE_KNOWN_PTRUE)
! 		  (match_operand:<VPRED> 2 "register_operand")]
  		 UNSPEC_CNTP)]))))]
    "TARGET_SVE"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , 0 , Upa ; *              ] <inc_dec>p\t%0.h, %2
!      [ ?&w      , w , Upa ; yes            ] movprfx\t%0, %1\;<inc_dec>p\t%0.h, %2
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
! )
! 
! (define_insn_and_split "@aarch64_sve_get_neonq_<mode>"
!   [(set (match_operand:<V128> 0 "register_operand" "=w")
! 	  (vec_select:<V128>
! 	    (match_operand:SVE_FULL 1 "register_operand" "w")
! 	    (match_operand 2 "descending_int_parallel")))]
!   "TARGET_SVE
!    && BYTES_BIG_ENDIAN
!    && known_eq (INTVAL (XVECEXP (operands[2], 0, 0)),
! 		GET_MODE_NUNITS (<V128>mode) - 1)"
!   "#"
!   "&& reload_completed"
!   [(set (match_dup 0) (match_dup 1))]
!   {
!     operands[1] = gen_rtx_REG (<V128>mode, REGNO (operands[1]));
!   }
! )
! 
! (define_insn "@aarch64_sve_set_neonq_<mode>"
!   [(set (match_operand:SVE_FULL 0 "register_operand" "=w")
!       (unspec:SVE_FULL
! 	[(match_operand:SVE_FULL 1 "register_operand" "w")
! 	(match_operand:<V128> 2 "register_operand" "w")
! 	(match_operand:<VPRED> 3 "register_operand" "Upl")]
! 	UNSPEC_SET_NEONQ))]
!   "TARGET_SVE
!    && BYTES_BIG_ENDIAN"
!   {
!     operands[2] = lowpart_subreg (<MODE>mode, operands[2],
!                                   GET_MODE (operands[2]));
!     return "sel\t%0.<Vetype>, %3, %2.<Vetype>, %1.<Vetype>";
!   }
  )
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sve2.md gcc-14.1.0/gcc/config/aarch64/aarch64-sve2.md
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sve2.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sve2.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AArch64 SVE2.
! ;; Copyright (C) 2019-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AArch64 SVE2.
! ;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 21,36 ****
  ;; The file is organised into the following sections (search for the full
  ;; line):
  ;;
! ;; == Moves
  ;; ---- Non-temporal gather loads
  ;; ---- Non-temporal scatter stores
  ;;
  ;; == Uniform binary arithmnetic
  ;; ---- [INT] Multiplication
  ;; ---- [INT] Scaled high-part multiplication
  ;; ---- [INT] General binary arithmetic that maps to unspecs
  ;; ---- [INT] Saturating binary arithmetic
  ;; ---- [INT] Saturating left shifts
  ;;
  ;; == Uniform ternary arithmnetic
  ;; ---- [INT] General ternary arithmetic that maps to unspecs
--- 21,52 ----
  ;; The file is organised into the following sections (search for the full
  ;; line):
  ;;
! ;; == Loads
! ;; ---- Multi-register loads predicated by a counter
  ;; ---- Non-temporal gather loads
+ ;;
+ ;; == Stores
+ ;; ---- Multi-register stores predicated by a counter
  ;; ---- Non-temporal scatter stores
  ;;
+ ;; == Predicate manipulation
+ ;; ---- [PRED] Predicate-as-counter PTRUE
+ ;; ---- [PRED] Predicate extraction
+ ;; ---- [PRED] Predicate selection
+ ;; ---- [PRED] Predicate count
+ ;;
+ ;; == Uniform unary arithmnetic
+ ;; ---- [FP] Multi-register unary operations
+ ;;
  ;; == Uniform binary arithmnetic
+ ;; ---- [INT] Multi-register operations
+ ;; ---- [INT] Clamp to minimum/maximum
  ;; ---- [INT] Multiplication
  ;; ---- [INT] Scaled high-part multiplication
  ;; ---- [INT] General binary arithmetic that maps to unspecs
  ;; ---- [INT] Saturating binary arithmetic
  ;; ---- [INT] Saturating left shifts
+ ;; ---- [FP] Clamp to minimum/maximum
  ;;
  ;; == Uniform ternary arithmnetic
  ;; ---- [INT] General ternary arithmetic that maps to unspecs
***************
*** 42,57 ****
--- 58,77 ----
  ;; ---- [INT] Sum of absolute differences
  ;;
  ;; == Extending arithmetic
+ ;; ---- [INT] Multi-register widening conversions
  ;; ---- [INT] Wide binary arithmetic
  ;; ---- [INT] Long binary arithmetic
  ;; ---- [INT] Long left shifts
  ;; ---- [INT] Long binary arithmetic with accumulation
+ ;; ---- [FP] Multi-register operations
  ;; ---- [FP] Long multiplication with accumulation
  ;;
  ;; == Narrowing arithnetic
  ;; ---- [INT] Narrowing unary arithmetic
+ ;; ---- [INT] Multi-vector narrowing unary arithmetic
  ;; ---- [INT] Narrowing binary arithmetic
  ;; ---- [INT] Narrowing right shifts
+ ;; ---- [INT] Multi-vector narrowing right shifts
  ;;
  ;; == Pairwise arithmetic
  ;; ---- [INT] Pairwise arithmetic
***************
*** 66,79 ****
--- 86,108 ----
  ;; == Conversions
  ;; ---- [FP<-FP] Widening conversions
  ;; ---- [FP<-FP] Narrowing conversions
+ ;; ---- [FP<-FP] Multi-vector narrowing conversions
+ ;; ---- [FP<-INT] Multi-vector conversions
+ ;; ---- [INT<-FP] Multi-vector conversions
  ;;
  ;; == Other arithmetic
  ;; ---- [INT] Reciprocal approximation
  ;; ---- [INT<-FP] Base-2 logarithm
  ;; ---- [INT] Polynomial multiplication
  ;;
+ ;; == Comparisons and selects
+ ;; ---- [INT,FP] Select based on predicates as counters
+ ;; ---- [INT] While tests
+ ;;
  ;; == Permutation
+ ;; ---- [INT,FP] Reversal
  ;; ---- [INT,FP] General permutes
+ ;; ---- [INT,FP] Multi-register permutes
  ;; ---- [INT] Optional bit-permute extensions
  ;;
  ;; == General
***************
*** 87,96 ****
  ;; ---- Optional SM4 extensions
  
  ;; =========================================================================
! ;; == Moves
  ;; =========================================================================
  
  ;; -------------------------------------------------------------------------
  ;; ---- Non-temporal gather loads
  ;; -------------------------------------------------------------------------
  ;; Includes gather forms of:
--- 116,201 ----
  ;; ---- Optional SM4 extensions
  
  ;; =========================================================================
! ;; == Loads
  ;; =========================================================================
  
  ;; -------------------------------------------------------------------------
+ ;; ---- Multi-register loads predicated by a counter
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - LD1B
+ ;; - LD1D
+ ;; - LD1H
+ ;; - LD1W
+ ;; - LDNT1B
+ ;; - LDNT1D
+ ;; - LDNT1H
+ ;; - LDNT1W
+ ;; -------------------------------------------------------------------------
+ 
+ ;; Predicated LD1 (multi), with a count as predicate.
+ (define_insn "@aarch64_<optab><mode>"
+   [(set (match_operand:SVE_FULLx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_FULLx24
+ 	  [(match_operand:VNx16BI 2 "register_operand" "Uph")
+ 	   (match_operand:SVE_FULLx24 1 "memory_operand" "m")]
+ 	  LD1_COUNT))]
+   "TARGET_STREAMING_SME2"
+   "<optab><Vesize>\t%0, %K2/z, %1"
+   [(set_attr "stride_type" "ld1_consecutive")]
+ )
+ 
+ (define_insn "@aarch64_<optab><mode>_strided2"
+   [(set (match_operand:<VSINGLE> 0 "aarch64_simd_register" "=Uwd")
+ 	(unspec:<VSINGLE>
+ 	  [(match_operand:VNx16BI 3 "register_operand" "Uph")
+ 	   (match_operand:SVE_FULLx2 2 "memory_operand" "m")
+ 	   (const_int 0)]
+ 	  LD1_COUNT))
+    (set (match_operand:<VSINGLE> 1 "aarch64_simd_register" "=w")
+ 	(unspec:<VSINGLE>
+ 	  [(match_dup 3)
+ 	   (match_dup 2)
+ 	   (const_int 1)]
+ 	  LD1_COUNT))]
+   "TARGET_STREAMING_SME2
+    && aarch64_strided_registers_p (operands, 2, 8)"
+   "<optab><Vesize>\t{%0.<Vetype>, %1.<Vetype>}, %K3/z, %2"
+   [(set_attr "stride_type" "ld1_strided")]
+ )
+ 
+ (define_insn "@aarch64_<optab><mode>_strided4"
+   [(set (match_operand:<VSINGLE> 0 "aarch64_simd_register" "=Uwt")
+ 	(unspec:<VSINGLE>
+ 	  [(match_operand:VNx16BI 5 "register_operand" "Uph")
+ 	   (match_operand:SVE_FULLx4 4 "memory_operand" "m")
+ 	   (const_int 0)]
+ 	  LD1_COUNT))
+    (set (match_operand:<VSINGLE> 1 "aarch64_simd_register" "=w")
+ 	(unspec:<VSINGLE>
+ 	  [(match_dup 5)
+ 	   (match_dup 4)
+ 	   (const_int 1)]
+ 	  LD1_COUNT))
+    (set (match_operand:<VSINGLE> 2 "aarch64_simd_register" "=w")
+ 	(unspec:<VSINGLE>
+ 	  [(match_dup 5)
+ 	   (match_dup 4)
+ 	   (const_int 2)]
+ 	  LD1_COUNT))
+    (set (match_operand:<VSINGLE> 3 "aarch64_simd_register" "=w")
+ 	(unspec:<VSINGLE>
+ 	  [(match_dup 5)
+ 	   (match_dup 4)
+ 	   (const_int 3)]
+ 	  LD1_COUNT))]
+   "TARGET_STREAMING_SME2
+    && aarch64_strided_registers_p (operands, 4, 4)"
+   "<optab><Vesize>\t{%0.<Vetype>, %1.<Vetype>, %2.<Vetype>, %3.<Vetype>}, %K5/z, %4"
+   [(set_attr "stride_type" "ld1_strided")]
+ )
+ 
+ ;; -------------------------------------------------------------------------
  ;; ---- Non-temporal gather loads
  ;; -------------------------------------------------------------------------
  ;; Includes gather forms of:
***************
*** 102,144 ****
  
  ;; Non-extending loads.
  (define_insn "@aarch64_gather_ldnt<mode>"
!   [(set (match_operand:SVE_FULL_SD 0 "register_operand" "=w, w")
  	(unspec:SVE_FULL_SD
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 2 "aarch64_reg_or_zero" "Z, r")
! 	   (match_operand:<V_INT_EQUIV> 3 "register_operand" "w, w")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LDNT1_GATHER))]
!   "TARGET_SVE2"
!   "@
!    ldnt1<Vesize>\t%0.<Vetype>, %1/z, [%3.<Vetype>]
!    ldnt1<Vesize>\t%0.<Vetype>, %1/z, [%3.<Vetype>, %2]"
  )
  
  ;; Extending loads.
  (define_insn_and_rewrite "@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, w")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<SVE_FULL_SDI:VPRED> 4 "general_operand" "UplDnm, UplDnm")
  	   (ANY_EXTEND:SVE_FULL_SDI
  	     (unspec:SVE_PARTIAL_I
! 	       [(match_operand:<SVE_FULL_SDI:VPRED> 1 "register_operand" "Upl, Upl")
! 		(match_operand:DI 2 "aarch64_reg_or_zero" "Z, r")
! 		(match_operand:<SVE_FULL_SDI:V_INT_EQUIV> 3 "register_operand" "w, w")
  		(mem:BLK (scratch))]
  	       UNSPEC_LDNT1_GATHER))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2
     && (~<SVE_FULL_SDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   "@
!    ldnt1<ANY_EXTEND:s><SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_SDI:Vetype>, %1/z, [%3.<SVE_FULL_SDI:Vetype>]
!    ldnt1<ANY_EXTEND:s><SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_SDI:Vetype>, %1/z, [%3.<SVE_FULL_SDI:Vetype>, %2]"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<SVE_FULL_SDI:VPRED>mode);
    }
  )
  
  ;; -------------------------------------------------------------------------
  ;; ---- Non-temporal scatter stores
  ;; -------------------------------------------------------------------------
--- 207,316 ----
  
  ;; Non-extending loads.
  (define_insn "@aarch64_gather_ldnt<mode>"
!   [(set (match_operand:SVE_FULL_SD 0 "register_operand")
  	(unspec:SVE_FULL_SD
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:DI 2 "aarch64_reg_or_zero")
! 	   (match_operand:<V_INT_EQUIV> 3 "register_operand")
  	   (mem:BLK (scratch))]
  	  UNSPEC_LDNT1_GATHER))]
!   "TARGET_SVE2 && TARGET_NON_STREAMING"
!   {@ [cons: =0, 1, 2, 3]
!      [&w, Upl, Z, w    ] ldnt1<Vesize>\t%0.<Vetype>, %1/z, [%3.<Vetype>]
!      [?w, Upl, Z, 0    ] ^
!      [&w, Upl, r, w    ] ldnt1<Vesize>\t%0.<Vetype>, %1/z, [%3.<Vetype>, %2]
!      [?w, Upl, r, 0    ] ^
!   }
  )
  
  ;; Extending loads.
  (define_insn_and_rewrite "@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:<SVE_FULL_SDI:VPRED> 4 "general_operand")
  	   (ANY_EXTEND:SVE_FULL_SDI
  	     (unspec:SVE_PARTIAL_I
! 	       [(match_operand:<SVE_FULL_SDI:VPRED> 1 "register_operand")
! 		(match_operand:DI 2 "aarch64_reg_or_zero")
! 		(match_operand:<SVE_FULL_SDI:V_INT_EQUIV> 3 "register_operand")
  		(mem:BLK (scratch))]
  	       UNSPEC_LDNT1_GATHER))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2
+    && TARGET_NON_STREAMING
     && (~<SVE_FULL_SDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   {@ [cons: =0, 1, 2, 3, 4]
!      [&w, Upl, Z, w, UplDnm] ldnt1<ANY_EXTEND:s><SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_SDI:Vetype>, %1/z, [%3.<SVE_FULL_SDI:Vetype>]
!      [?w, Upl, Z, 0, UplDnm] ^
!      [&w, Upl, r, w, UplDnm] ldnt1<ANY_EXTEND:s><SVE_PARTIAL_I:Vesize>\t%0.<SVE_FULL_SDI:Vetype>, %1/z, [%3.<SVE_FULL_SDI:Vetype>, %2]
!      [?w, Upl, r, 0, UplDnm] ^
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<SVE_FULL_SDI:VPRED>mode);
    }
  )
  
+ ;; =========================================================================
+ ;; == Stores
+ ;; =========================================================================
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- Multi-register stores predicated by a counter
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - ST1B
+ ;; - ST1D
+ ;; - ST1H
+ ;; - ST1W
+ ;; - STNT1B
+ ;; - STNT1D
+ ;; - STNT1H
+ ;; - STNT1W
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_<optab><mode>"
+   [(set (match_operand:SVE_FULLx24 0 "memory_operand" "+m")
+ 	(unspec:SVE_FULLx24
+ 	  [(match_operand:VNx16BI 2 "register_operand" "Uph")
+ 	   (match_operand:SVE_FULLx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_dup 0)]
+ 	  ST1_COUNT))]
+   "TARGET_STREAMING_SME2"
+   "<optab><Vesize>\t%1, %K2, %0"
+   [(set_attr "stride_type" "st1_consecutive")]
+ )
+ 
+ (define_insn "@aarch64_<optab><mode>_strided2"
+   [(set (match_operand:SVE_FULLx24 0 "memory_operand" "+m")
+ 	(unspec:SVE_FULLx24
+ 	  [(match_operand:VNx16BI 1 "register_operand" "Uph")
+ 	   (match_operand:<VSINGLE> 2 "aarch64_simd_register" "Uwd")
+ 	   (match_operand:<VSINGLE> 3 "aarch64_simd_register" "w")
+ 	   (match_dup 0)]
+ 	  ST1_COUNT))]
+   "TARGET_STREAMING_SME2
+    && aarch64_strided_registers_p (operands + 2, 2, 8)"
+   "<optab><Vesize>\t{%2.<Vetype>, %3.<Vetype>}, %K1, %0"
+   [(set_attr "stride_type" "st1_strided")]
+ )
+ 
+ (define_insn "@aarch64_<optab><mode>_strided4"
+   [(set (match_operand:SVE_FULLx24 0 "memory_operand" "+m")
+ 	(unspec:SVE_FULLx24
+ 	  [(match_operand:VNx16BI 1 "register_operand" "Uph")
+ 	   (match_operand:<VSINGLE> 2 "aarch64_simd_register" "Uwt")
+ 	   (match_operand:<VSINGLE> 3 "aarch64_simd_register" "w")
+ 	   (match_operand:<VSINGLE> 4 "aarch64_simd_register" "w")
+ 	   (match_operand:<VSINGLE> 5 "aarch64_simd_register" "w")
+ 	   (match_dup 0)]
+ 	  ST1_COUNT))]
+   "TARGET_STREAMING_SME2
+    && aarch64_strided_registers_p (operands + 2, 4, 4)"
+   "<optab><Vesize>\t{%2.<Vetype>, %3.<Vetype>, %4.<Vetype>, %5.<Vetype>}, %K1, %0"
+   [(set_attr "stride_type" "st1_strided")]
+ )
+ 
  ;; -------------------------------------------------------------------------
  ;; ---- Non-temporal scatter stores
  ;; -------------------------------------------------------------------------
***************
*** 153,185 ****
  (define_insn "@aarch64_scatter_stnt<mode>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:<VPRED> 0 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 1 "aarch64_reg_or_zero" "Z, r")
! 	   (match_operand:<V_INT_EQUIV> 2 "register_operand" "w, w")
! 	   (match_operand:SVE_FULL_SD 3 "register_operand" "w, w")]
  
  	  UNSPEC_STNT1_SCATTER))]
!   "TARGET_SVE"
!   "@
!    stnt1<Vesize>\t%3.<Vetype>, %0, [%2.<Vetype>]
!    stnt1<Vesize>\t%3.<Vetype>, %0, [%2.<Vetype>, %1]"
  )
  
  ;; Truncating stores.
  (define_insn "@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:<SVE_FULL_SDI:VPRED> 0 "register_operand" "Upl, Upl")
! 	   (match_operand:DI 1 "aarch64_reg_or_zero" "Z, r")
! 	   (match_operand:<SVE_FULL_SDI:V_INT_EQUIV> 2 "register_operand" "w, w")
  	   (truncate:SVE_PARTIAL_I
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand" "w, w"))]
  	  UNSPEC_STNT1_SCATTER))]
    "TARGET_SVE2
     && (~<SVE_FULL_SDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   "@
!    stnt1<SVE_PARTIAL_I:Vesize>\t%3.<SVE_FULL_SDI:Vetype>, %0, [%2.<SVE_FULL_SDI:Vetype>]
!    stnt1<SVE_PARTIAL_I:Vesize>\t%3.<SVE_FULL_SDI:Vetype>, %0, [%2.<SVE_FULL_SDI:Vetype>, %1]"
  )
  
  ;; =========================================================================
--- 325,481 ----
  (define_insn "@aarch64_scatter_stnt<mode>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:<VPRED> 0 "register_operand")
! 	   (match_operand:DI 1 "aarch64_reg_or_zero")
! 	   (match_operand:<V_INT_EQUIV> 2 "register_operand")
! 	   (match_operand:SVE_FULL_SD 3 "register_operand")]
  
  	  UNSPEC_STNT1_SCATTER))]
!   "TARGET_SVE && TARGET_NON_STREAMING"
!   {@ [ cons: 0 , 1 , 2 , 3  ]
!      [ Upl     , Z , w , w  ] stnt1<Vesize>\t%3.<Vetype>, %0, [%2.<Vetype>]
!      [ Upl     , r , w , w  ] stnt1<Vesize>\t%3.<Vetype>, %0, [%2.<Vetype>, %1]
!   }
  )
  
  ;; Truncating stores.
  (define_insn "@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(match_operand:<SVE_FULL_SDI:VPRED> 0 "register_operand")
! 	   (match_operand:DI 1 "aarch64_reg_or_zero")
! 	   (match_operand:<SVE_FULL_SDI:V_INT_EQUIV> 2 "register_operand")
  	   (truncate:SVE_PARTIAL_I
! 	     (match_operand:SVE_FULL_SDI 3 "register_operand"))]
  	  UNSPEC_STNT1_SCATTER))]
    "TARGET_SVE2
+    && TARGET_NON_STREAMING
     && (~<SVE_FULL_SDI:narrower_mask> & <SVE_PARTIAL_I:self_mask>) == 0"
!   {@ [ cons: 0 , 1 , 2 , 3  ]
!      [ Upl     , Z , w , w  ] stnt1<SVE_PARTIAL_I:Vesize>\t%3.<SVE_FULL_SDI:Vetype>, %0, [%2.<SVE_FULL_SDI:Vetype>]
!      [ Upl     , r , w , w  ] stnt1<SVE_PARTIAL_I:Vesize>\t%3.<SVE_FULL_SDI:Vetype>, %0, [%2.<SVE_FULL_SDI:Vetype>, %1]
!   }
! )
! 
! ;; =========================================================================
! ;; == Predicate manipulation
! ;; =========================================================================
! 
! ;; -------------------------------------------------------------------------
! ;; ---- [PRED] Predicate-as-counter PTRUE
! ;; -------------------------------------------------------------------------
! ;; - PTRUE (predicate-as-counter form)
! ;; -------------------------------------------------------------------------
! 
! (define_insn "@aarch64_sve_ptrue_c<BHSD_BITS>"
!   [(set (match_operand:VNx16BI 0 "register_operand" "=Uph")
! 	(unspec:VNx16BI [(const_int BHSD_BITS)] UNSPEC_PTRUE_C))]
!   "TARGET_STREAMING_SME2"
!   "ptrue\t%K0.<bits_etype>"
! )
! 
! ;; -------------------------------------------------------------------------
! ;; ---- [PRED] Predicate extraction
! ;; -------------------------------------------------------------------------
! ;; Includes
! ;; - PEXT
! ;; -------------------------------------------------------------------------
! 
! (define_insn "@aarch64_sve_pext<BHSD_BITS>"
!   [(set (match_operand:VNx16BI 0 "register_operand" "=Upa")
! 	(unspec:VNx16BI
! 	  [(match_operand:VNx16BI 1 "register_operand" "Uph")
! 	   (match_operand:DI 2 "const_int_operand")
! 	   (const_int BHSD_BITS)]
! 	  UNSPEC_PEXT))]
!   "TARGET_STREAMING_SME2"
!   "pext\t%0.<bits_etype>, %K1[%2]"
! )
! 
! (define_insn "@aarch64_sve_pext<BHSD_BITS>x2"
!   [(set (match_operand:VNx32BI 0 "register_operand" "=Up2")
! 	(unspec:VNx32BI
! 	  [(match_operand:VNx16BI 1 "register_operand" "Uph")
! 	   (match_operand:DI 2 "const_int_operand")
! 	   (const_int BHSD_BITS)]
! 	  UNSPEC_PEXTx2))]
!   "TARGET_STREAMING_SME2"
!   "pext\t{%S0.<bits_etype>, %T0.<bits_etype>}, %K1[%2]"
! )
! 
! ;; -------------------------------------------------------------------------
! ;; ---- [PRED] Predicate selection
! ;; -------------------------------------------------------------------------
! ;; Includes
! ;; - PSEL
! ;; -------------------------------------------------------------------------
! 
! (define_insn "@aarch64_sve_psel<BHSD_BITS>"
!   [(set (match_operand:VNx16BI 0 "register_operand" "=Upa")
! 	(unspec:VNx16BI
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upa")
! 	   (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	   (match_operand:SI 3 "register_operand" "Ucj")
! 	   (const_int BHSD_BITS)]
! 	  UNSPEC_PSEL))]
!   "TARGET_STREAMING_SME2"
!   "psel\t%0, %1, %2.<bits_etype>[%w3, 0]"
! )
! 
! (define_insn "*aarch64_sve_psel<BHSD_BITS>_plus"
!   [(set (match_operand:VNx16BI 0 "register_operand" "=Upa")
! 	(unspec:VNx16BI
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upa")
! 	   (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	   (plus:SI
! 	     (match_operand:SI 3 "register_operand" "Ucj")
! 	     (match_operand:SI 4 "const_int_operand"))
! 	   (const_int BHSD_BITS)]
! 	  UNSPEC_PSEL))]
!   "TARGET_STREAMING_SME2
!    && UINTVAL (operands[4]) < 128 / <BHSD_BITS>"
!   "psel\t%0, %1, %2.<bits_etype>[%w3, %4]"
! )
! 
! ;; -------------------------------------------------------------------------
! ;; ---- [PRED] Predicate count
! ;; -------------------------------------------------------------------------
! ;; Includes
! ;; - CNTP (predicate as counter)
! ;; -------------------------------------------------------------------------
! 
! (define_insn "@aarch64_sve_cntp_c<BHSD_BITS>"
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(unspec:DI
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upa")
! 	   (match_operand:DI 2 "const_int_operand")
! 	   (const_int BHSD_BITS)]
! 	  UNSPEC_CNTP_C))]
!   "TARGET_STREAMING_SME2"
!   "cntp\t%x0, %K1.<bits_etype>, vlx%2"
! )
! 
! ;; =========================================================================
! ;; == Uniform unary arithmnetic
! ;; =========================================================================
! 
! ;; -------------------------------------------------------------------------
! ;; ---- [FP] Multi-register unary operations
! ;; -------------------------------------------------------------------------
! ;; Includes:
! ;; - FRINTA
! ;; - FRINTM
! ;; - FRINTN
! ;; - FRINTP
! ;; -------------------------------------------------------------------------
! 
! (define_insn "<frint_pattern><mode>2"
!   [(set (match_operand:SVE_SFx24 0 "aligned_register_operand" "=Uw<vector_count>")
! 	(unspec:SVE_SFx24
! 	  [(match_operand:SVE_SFx24 1 "aligned_register_operand" "Uw<vector_count>")]
! 	  SVE2_SFx24_UNARY))]
!   "TARGET_STREAMING_SME2"
!   "frint<frint_suffix>\t%0, %1"
  )
  
  ;; =========================================================================
***************
*** 187,208 ****
  ;; =========================================================================
  
  ;; -------------------------------------------------------------------------
  ;; ---- [INT] Multiplication
  ;; -------------------------------------------------------------------------
! ;; Includes the lane forms of:
  ;; - MUL
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_mul_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w")
! 	(mult:SVE_FULL_HSDI
! 	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:SVE_FULL_HSDI 2 "register_operand" "<sve_lane_con>")
  	     (match_operand:SI 3 "const_int_operand")]
  	    UNSPEC_SVE_LANE_SELECT)
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand" "w")))]
    "TARGET_SVE2"
!   "mul\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>[%3]"
  )
  
  ;; -------------------------------------------------------------------------
--- 483,644 ----
  ;; =========================================================================
  
  ;; -------------------------------------------------------------------------
+ ;; ---- [INT] Multi-register operations
+ ;; -------------------------------------------------------------------------
+ ;; Includes the multi-register forms of:
+ ;; - ADD
+ ;; - SMAX
+ ;; - SMIN
+ ;; - SQMULH
+ ;; - SRSHL
+ ;; - UMAX
+ ;; - UMIN
+ ;; - URSHL
+ ;; -------------------------------------------------------------------------
+ 
+ (define_expand "<optab><mode>3"
+   [(set (match_operand:SVE_Ix24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(SVE_INT_BINARY_MULTI:SVE_Ix24
+ 	  (match_operand:SVE_Ix24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	  (match_operand:SVE_Ix24 2 "aligned_register_operand" "Uw<vector_count>")))]
+   "TARGET_STREAMING_SME2"
+ )
+ 
+ (define_insn "*<optab><mode>3"
+   [(set (match_operand:SVE_Ix24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(SVE_INT_BINARY_MULTI:SVE_Ix24
+ 	  (match_operand:SVE_Ix24 1 "aligned_register_operand" "%0")
+ 	  (match_operand:SVE_Ix24 2 "aligned_register_operand" "Uw<vector_count>")))]
+   "TARGET_STREAMING_SME2"
+   "<sve_int_op>\t%0, %0, %2"
+ )
+ 
+ (define_insn "@aarch64_sve_single_<optab><mode>"
+   [(set (match_operand:SVE_Ix24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(SVE_INT_BINARY_SINGLE:SVE_Ix24
+ 	  (match_operand:SVE_Ix24 1 "aligned_register_operand" "0")
+ 	  (vec_duplicate:SVE_Ix24
+ 	    (match_operand:<VSINGLE> 2 "register_operand" "x"))))]
+   "TARGET_STREAMING_SME2"
+   "<sve_int_op>\t%0, %0, %2.<Vetype>"
+ )
+ 
+ (define_insn "@aarch64_sve_<sve_int_op><mode>"
+   [(set (match_operand:SVE_Ix24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_Ix24
+ 	  [(match_operand:SVE_Ix24 1 "aligned_register_operand" "%0")
+ 	   (match_operand:SVE_Ix24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SVE_INT_BINARY_MULTI))]
+   "TARGET_STREAMING_SME2"
+   "<sve_int_op>\t%0, %0, %2"
+ )
+ 
+ (define_insn "@aarch64_sve_single_<sve_int_op><mode>"
+   [(set (match_operand:SVE_Ix24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_Ix24
+ 	  [(match_operand:SVE_Ix24 1 "aligned_register_operand" "0")
+ 	   (vec_duplicate:SVE_Ix24
+ 	     (match_operand:<VSINGLE> 2 "register_operand" "x"))]
+ 	  SVE_INT_BINARY_MULTI))]
+   "TARGET_STREAMING_SME2"
+   "<sve_int_op>\t%0, %0, %2.<Vetype>"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [INT] Clamp to minimum/maximum
+ ;; -------------------------------------------------------------------------
+ ;; - SCLAMP
+ ;; - UCLAMP
+ ;; -------------------------------------------------------------------------
+ 
+ ;; The minimum is applied after the maximum, which matters if the maximum
+ ;; bound is (unexpectedly) less than the minimum bound.
+ (define_insn "@aarch64_sve_<su>clamp<mode>"
+   [(set (match_operand:SVE_FULL_I 0 "register_operand")
+ 	(<max_opp>:SVE_FULL_I
+ 	  (USMAX:SVE_FULL_I
+ 	    (match_operand:SVE_FULL_I 1 "register_operand")
+ 	    (match_operand:SVE_FULL_I 2 "register_operand"))
+ 	  (match_operand:SVE_FULL_I 3 "register_operand")))]
+   "TARGET_STREAMING_SME"
+   {@ [cons: =0,  1, 2, 3; attrs: movprfx]
+      [       w, %0, w, w; *             ] <su>clamp\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
+      [     ?&w,  w, w, w; yes           ] movprfx\t%0, %1\;<su>clamp\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
+   }
+ )
+ 
+ (define_insn_and_split "*aarch64_sve_<su>clamp<mode>_x"
+   [(set (match_operand:SVE_FULL_I 0 "register_operand")
+ 	(unspec:SVE_FULL_I
+ 	  [(match_operand 4)
+ 	   (<max_opp>:SVE_FULL_I
+ 	     (unspec:SVE_FULL_I
+ 	       [(match_operand 5)
+ 		(USMAX:SVE_FULL_I
+ 		  (match_operand:SVE_FULL_I 1 "register_operand")
+ 		  (match_operand:SVE_FULL_I 2 "register_operand"))]
+ 	       UNSPEC_PRED_X)
+ 	     (match_operand:SVE_FULL_I 3 "register_operand"))]
+ 	  UNSPEC_PRED_X))]
+   "TARGET_STREAMING_SME"
+   {@ [cons: =0,  1, 2, 3; attrs: movprfx]
+      [       w, %0, w, w; *             ] #
+      [     ?&w,  w, w, w; yes           ] #
+   }
+   "&& true"
+   [(set (match_dup 0)
+ 	(<max_opp>:SVE_FULL_I
+ 	  (USMAX:SVE_FULL_I
+ 	    (match_dup 1)
+ 	    (match_dup 2))
+ 	  (match_dup 3)))]
+ )
+ 
+ (define_insn "@aarch64_sve_<su>clamp_single<mode>"
+   [(set (match_operand:SVE_Ix24 0 "register_operand" "=Uw<vector_count>")
+ 	(<max_opp>:SVE_Ix24
+ 	  (USMAX:SVE_Ix24
+ 	    (match_operand:SVE_Ix24 1 "register_operand" "0")
+ 	    (vec_duplicate:SVE_Ix24
+ 	      (match_operand:<VSINGLE> 2 "register_operand" "w")))
+ 	  (vec_duplicate:SVE_Ix24
+ 	    (match_operand:<VSINGLE> 3 "register_operand" "w"))))]
+   "TARGET_STREAMING_SME2"
+   "<su>clamp\t%0, %2.<Vetype>, %3.<Vetype>"
+ )
+ 
+ ;; -------------------------------------------------------------------------
  ;; ---- [INT] Multiplication
  ;; -------------------------------------------------------------------------
! ;; Includes the lane and unpredicated forms of:
  ;; - MUL
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_mul_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSDI_SIMD_DI 0 "register_operand" "=w")
! 	(mult:SVE_FULL_HSDI_SIMD_DI
! 	  (unspec:SVE_FULL_HSDI_SIMD_DI
! 	    [(match_operand:SVE_FULL_HSDI_SIMD_DI 2 "register_operand" "<sve_lane_con>")
  	     (match_operand:SI 3 "const_int_operand")]
  	    UNSPEC_SVE_LANE_SELECT)
! 	  (match_operand:SVE_FULL_HSDI_SIMD_DI 1 "register_operand" "w")))]
    "TARGET_SVE2"
!   "mul\t%Z0.<Vetype>, %Z1.<Vetype>, %Z2.<Vetype>[%3]"
! )
! 
! ;; The 2nd and 3rd alternatives are valid for just TARGET_SVE as well but
! ;; we include them here to allow matching simpler, unpredicated RTL.
! (define_insn "*aarch64_mul_unpredicated_<mode>"
!   [(set (match_operand:SVE_I_SIMD_DI 0 "register_operand")
! 	(mult:SVE_I_SIMD_DI
! 	  (match_operand:SVE_I_SIMD_DI 1 "register_operand")
! 	  (match_operand:SVE_I_SIMD_DI 2 "aarch64_sve_vsm_operand")))]
!   "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2   ; attrs: movprfx ]
!      [ w        , w , w   ; *              ] mul\t%Z0.<Vetype>, %Z1.<Vetype>, %Z2.<Vetype>
!      [ w        , 0 , vsm ; *              ] mul\t%Z0.<Vetype>, %Z0.<Vetype>, #%2
!      [ ?&w      , w , vsm ; yes            ] movprfx\t%Z0, %Z1\;mul\t%Z0.<Vetype>, %Z0.<Vetype>, #%2
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 328,347 ****
  ;; General predicated binary arithmetic.  All operations handled here
  ;; are commutative or have a reversed form.
  (define_insn "@aarch64_pred_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand" "0, w, w")
! 	      (match_operand:SVE_FULL_I 3 "register_operand" "w, 0, w")]
  	     SVE2_COND_INT_BINARY_REV)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    <sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,*,yes")]
  )
  
  ;; Predicated binary arithmetic with merging.
--- 764,783 ----
  ;; General predicated binary arithmetic.  All operations handled here
  ;; are commutative or have a reversed form.
  (define_insn "@aarch64_pred_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand")
! 	      (match_operand:SVE_FULL_I 3 "register_operand")]
  	     SVE2_COND_INT_BINARY_REV)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ w        , Upl , w , 0 ; *              ] <sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated binary arithmetic with merging.
***************
*** 366,442 ****
  
  ;; Predicated binary arithmetic, merging with the first input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_2"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 4)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand" "0, w")
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "w, w")]
  		SVE2_COND_INT_BINARY)]
  	     UNSPEC_PRED_X)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated binary arithmetic, merging with the second input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_3"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 4)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand" "w, w")
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "0, w")]
  		SVE2_COND_INT_BINARY_REV)]
  	     UNSPEC_PRED_X)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated binary operations, merging with an independent value.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_any"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=&w, &w, &w, &w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 5)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand" "0, w, w, w, w")
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "w, 0, w, w, w")]
  		SVE2_COND_INT_BINARY_REV)]
  	     UNSPEC_PRED_X)
! 	   (match_operand:SVE_FULL_I 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, 0, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    #"
    "&& 1"
    {
      if (reload_completed
--- 802,879 ----
  
  ;; Predicated binary arithmetic, merging with the first input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_2"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 4)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand")
! 		 (match_operand:SVE_FULL_I 3 "register_operand")]
  		SVE2_COND_INT_BINARY)]
  	     UNSPEC_PRED_X)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Predicated binary arithmetic, merging with the second input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_3"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 4)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand")
! 		 (match_operand:SVE_FULL_I 3 "register_operand")]
  		SVE2_COND_INT_BINARY_REV)]
  	     UNSPEC_PRED_X)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] <sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Predicated binary operations, merging with an independent value.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_any"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 5)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand")
! 		 (match_operand:SVE_FULL_I 3 "register_operand")]
  		SVE2_COND_INT_BINARY_REV)]
  	     UNSPEC_PRED_X)
! 	   (match_operand:SVE_FULL_I 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2
     && !rtx_equal_p (operands[2], operands[4])
     && !rtx_equal_p (operands[3], operands[4])"
!   {@ [ cons: =0 , 1   , 2 , 3 , 4   ]
!      [ &w       , Upl , 0 , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0 , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , w , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 460,481 ****
  ;; so there's no correctness requirement to handle merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_z"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=&w, &w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 5)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand" "0, w")
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "w, w")]
  		SVE2_COND_INT_BINARY_NOREV)]
  	     UNSPEC_PRED_X)
  	   (match_operand:SVE_FULL_I 4 "aarch64_simd_imm_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& !CONSTANT_P (operands[5])"
    {
      operands[5] = CONSTM1_RTX (<VPRED>mode);
--- 897,919 ----
  ;; so there's no correctness requirement to handle merging with an
  ;; independent value.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_z"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 5)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand")
! 		 (match_operand:SVE_FULL_I 3 "register_operand")]
  		SVE2_COND_INT_BINARY_NOREV)]
  	     UNSPEC_PRED_X)
  	   (match_operand:SVE_FULL_I 4 "aarch64_simd_imm_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3  ]
!      [ &w       , Upl , 0 , w  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , w  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& !CONSTANT_P (operands[5])"
    {
      operands[5] = CONSTM1_RTX (<VPRED>mode);
***************
*** 526,547 ****
  
  ;; Predicated left shifts.
  (define_insn "@aarch64_pred_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, w, w, ?&w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand" "0, 0, w, w, w")
! 	      (match_operand:SVE_FULL_I 3 "aarch64_sve_<lr>shift_operand" "D<lr>, w, 0, D<lr>, w")]
  	     SVE2_COND_INT_SHIFT)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    <sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,*,*,yes,yes")]
  )
  
  ;; Predicated left shifts with merging.
--- 964,985 ----
  
  ;; Predicated left shifts.
  (define_insn "@aarch64_pred_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
! 	     [(match_operand:SVE_FULL_I 2 "register_operand")
! 	      (match_operand:SVE_FULL_I 3 "aarch64_sve_<lr>shift_operand")]
  	     SVE2_COND_INT_SHIFT)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3     ; attrs: movprfx ]
!      [ w        , Upl , 0 , D<lr> ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , 0 , w     ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ w        , Upl , w , 0     ; *              ] <sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , D<lr> ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w , w     ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; Predicated left shifts with merging.
***************
*** 566,648 ****
  
  ;; Predicated left shifts, merging with the first input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_2"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, w, ?&w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 4)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand" "0, 0, w, w")
! 		 (match_operand:SVE_FULL_I 3 "aarch64_sve_<lr>shift_operand" "D<lr>, w, D<lr>, w")]
  		SVE2_COND_INT_SHIFT)]
  	     UNSPEC_PRED_X)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,*,yes,yes")]
  )
  
  ;; Predicated left shifts, merging with the second input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_3"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 4)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand" "w, w")
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "0, w")]
  		SVE2_COND_INT_SHIFT)]
  	     UNSPEC_PRED_X)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated left shifts, merging with an independent value.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_any"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=&w, &w, &w, &w, &w, &w, &w, ?&w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl, Upl, Upl, Upl, Upl, Upl, Upl")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 5)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand" "0, 0, w, w, w, w, w, w, w")
! 		 (match_operand:SVE_FULL_I 3 "aarch64_sve_<lr>shift_operand" "D<lr>, w, 0, D<lr>, w, D<lr>, w, D<lr>, w")]
  		SVE2_COND_INT_SHIFT)]
  	     UNSPEC_PRED_X)
! 	   (match_operand:SVE_FULL_I 4 "aarch64_simd_reg_or_zero" "Dz, Dz, Dz, Dz, Dz, 0, 0, w, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2
     && !rtx_equal_p (operands[2], operands[4])
     && (CONSTANT_P (operands[4]) || !rtx_equal_p (operands[3], operands[4]))"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!    movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   #
!   #"
    "&& 1"
    {
      if (reload_completed
--- 1004,1087 ----
  
  ;; Predicated left shifts, merging with the first input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_2"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 4)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand")
! 		 (match_operand:SVE_FULL_I 3 "aarch64_sve_<lr>shift_operand")]
  		SVE2_COND_INT_SHIFT)]
  	     UNSPEC_PRED_X)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3     ; attrs: movprfx ]
!      [ w        , Upl , 0 , D<lr> ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ w        , Upl , 0 , w     ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , D<lr> ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ ?&w      , Upl , w , w     ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Predicated left shifts, merging with the second input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_3"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 4)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand")
! 		 (match_operand:SVE_FULL_I 3 "register_operand")]
  		SVE2_COND_INT_SHIFT)]
  	     UNSPEC_PRED_X)
  	   (match_dup 3)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , w , 0 ; *              ] <sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %3\;<sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Predicated left shifts, merging with an independent value.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_any"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_I
  	     [(match_operand 5)
  	      (unspec:SVE_FULL_I
! 		[(match_operand:SVE_FULL_I 2 "register_operand")
! 		 (match_operand:SVE_FULL_I 3 "aarch64_sve_<lr>shift_operand")]
  		SVE2_COND_INT_SHIFT)]
  	     UNSPEC_PRED_X)
! 	   (match_operand:SVE_FULL_I 4 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2
     && !rtx_equal_p (operands[2], operands[4])
     && (CONSTANT_P (operands[4]) || !rtx_equal_p (operands[3], operands[4]))"
!   {@ [ cons: =0 , 1   , 2 , 3     , 4   ]
!      [ &w       , Upl , 0 , D<lr> , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ &w       , Upl , 0 , w     , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , 0     , Dz  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>r\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
!      [ &w       , Upl , w , D<lr> , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ &w       , Upl , w , w     , Dz  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ &w       , Upl , w , D<lr> , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, #%3
!      [ &w       , Upl , w , w     , 0   ] movprfx\t%0.<Vetype>, %1/m, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , D<lr> , w   ] #
!      [ ?&w      , Upl , w , w     , w   ] #
!   }
    "&& 1"
    {
      if (reload_completed
***************
*** 661,666 ****
--- 1100,1173 ----
    [(set_attr "movprfx" "yes")]
  )
  
+ ;; -------------------------------------------------------------------------
+ ;; ---- [FP] Clamp to minimum/maximum
+ ;; -------------------------------------------------------------------------
+ ;; - FCLAMP
+ ;; -------------------------------------------------------------------------
+ 
+ ;; The minimum is applied after the maximum, which matters if the maximum
+ ;; bound is (unexpectedly) less than the minimum bound.
+ (define_insn "@aarch64_sve_fclamp<mode>"
+   [(set (match_operand:SVE_FULL_F 0 "register_operand")
+ 	(unspec:SVE_FULL_F
+ 	  [(unspec:SVE_FULL_F
+ 	     [(match_operand:SVE_FULL_F 1 "register_operand")
+ 	      (match_operand:SVE_FULL_F 2 "register_operand")]
+ 	     UNSPEC_FMAXNM)
+ 	   (match_operand:SVE_FULL_F 3 "register_operand")]
+ 	  UNSPEC_FMINNM))]
+   "TARGET_STREAMING_SME"
+   {@ [cons: =0,  1, 2, 3; attrs: movprfx]
+      [       w, %0, w, w; *             ] fclamp\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
+      [     ?&w,  w, w, w; yes           ] movprfx\t%0, %1\;fclamp\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
+   }
+ )
+ 
+ (define_insn_and_split "*aarch64_sve_fclamp<mode>_x"
+   [(set (match_operand:SVE_FULL_F 0 "register_operand")
+ 	(unspec:SVE_FULL_F
+ 	  [(match_operand 4)
+ 	   (const_int SVE_RELAXED_GP)
+ 	   (unspec:SVE_FULL_F
+ 	     [(match_operand 5)
+ 	      (const_int SVE_RELAXED_GP)
+ 	      (match_operand:SVE_FULL_F 1 "register_operand")
+ 	      (match_operand:SVE_FULL_F 2 "register_operand")]
+ 	     UNSPEC_COND_FMAXNM)
+ 	   (match_operand:SVE_FULL_F 3 "register_operand")]
+ 	  UNSPEC_COND_FMINNM))]
+   "TARGET_STREAMING_SME"
+   {@ [cons: =0,  1, 2, 3; attrs: movprfx]
+      [       w, %0, w, w; *             ] #
+      [     ?&w,  w, w, w; yes           ] #
+   }
+   "&& true"
+   [(set (match_dup 0)
+ 	(unspec:SVE_FULL_F
+ 	  [(unspec:SVE_FULL_F
+ 	     [(match_dup 1)
+ 	      (match_dup 2)]
+ 	     UNSPEC_FMAXNM)
+ 	   (match_dup 3)]
+ 	  UNSPEC_FMINNM))]
+ )
+ 
+ (define_insn "@aarch64_sve_fclamp_single<mode>"
+   [(set (match_operand:SVE_Fx24 0 "register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_Fx24
+ 	  [(unspec:SVE_Fx24
+ 	     [(match_operand:SVE_Fx24 1 "register_operand" "0")
+ 	      (vec_duplicate:SVE_Fx24
+ 		(match_operand:<VSINGLE> 2 "register_operand" "w"))]
+ 	     UNSPEC_FMAXNM)
+ 	   (vec_duplicate:SVE_Fx24
+ 	     (match_operand:<VSINGLE> 3 "register_operand" "w"))]
+ 	  UNSPEC_FMINNM))]
+   "TARGET_STREAMING_SME2"
+   "fclamp\t%0, %2.<Vetype>, %3.<Vetype>"
+ )
+ 
  ;; =========================================================================
  ;; == Uniform ternary arithmnetic
  ;; =========================================================================
***************
*** 680,713 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:SVE_FULL_I 2 "register_operand" "w, w")
! 	   (match_operand:SVE_FULL_I 3 "register_operand" "w, w")
! 	   (match_operand:SVE_FULL_I 1 "register_operand" "0, w")]
  	  SVE2_INT_TERNARY))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "@aarch64_sve_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:SVE_FULL_HSDI 2 "register_operand" "w, w")
  	   (unspec:SVE_FULL_HSDI
! 	     [(match_operand:SVE_FULL_HSDI 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  	      (match_operand:SI 4 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)
! 	   (match_operand:SVE_FULL_HSDI 1 "register_operand" "0, w")]
  	  SVE2_INT_TERNARY_LANE))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!    movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 1187,1220 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:SVE_FULL_I 2 "register_operand")
! 	   (match_operand:SVE_FULL_I 3 "register_operand")
! 	   (match_operand:SVE_FULL_I 1 "register_operand")]
  	  SVE2_INT_TERNARY))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  (define_insn "@aarch64_sve_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:SVE_FULL_HSDI 2 "register_operand")
  	   (unspec:SVE_FULL_HSDI
! 	     [(match_operand:SVE_FULL_HSDI 3 "register_operand")
  	      (match_operand:SI 4 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)
! 	   (match_operand:SVE_FULL_HSDI 1 "register_operand")]
  	  SVE2_INT_TERNARY_LANE))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] <sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 719,755 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_add_mul_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(plus:SVE_FULL_HSDI
  	  (mult:SVE_FULL_HSDI
  	    (unspec:SVE_FULL_HSDI
! 	      [(match_operand:SVE_FULL_HSDI 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  	       (match_operand:SI 4 "const_int_operand")]
  	      UNSPEC_SVE_LANE_SELECT)
! 	    (match_operand:SVE_FULL_HSDI 2 "register_operand" "w, w"))
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!    mla\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!    movprfx\t%0, %1\;mla\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "@aarch64_sve_sub_mul_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(minus:SVE_FULL_HSDI
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand" "0, w")
  	  (mult:SVE_FULL_HSDI
  	    (unspec:SVE_FULL_HSDI
! 	      [(match_operand:SVE_FULL_HSDI 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  	       (match_operand:SI 4 "const_int_operand")]
  	      UNSPEC_SVE_LANE_SELECT)
! 	    (match_operand:SVE_FULL_HSDI 2 "register_operand" "w, w"))))]
    "TARGET_SVE2"
!   "@
!    mls\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!    movprfx\t%0, %1\;mls\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 1226,1262 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_add_mul_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(plus:SVE_FULL_HSDI
  	  (mult:SVE_FULL_HSDI
  	    (unspec:SVE_FULL_HSDI
! 	      [(match_operand:SVE_FULL_HSDI 3 "register_operand")
  	       (match_operand:SI 4 "const_int_operand")]
  	      UNSPEC_SVE_LANE_SELECT)
! 	    (match_operand:SVE_FULL_HSDI 2 "register_operand"))
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] mla\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;mla\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!   }
  )
  
  (define_insn "@aarch64_sve_sub_mul_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(minus:SVE_FULL_HSDI
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand")
  	  (mult:SVE_FULL_HSDI
  	    (unspec:SVE_FULL_HSDI
! 	      [(match_operand:SVE_FULL_HSDI 3 "register_operand")
  	       (match_operand:SI 4 "const_int_operand")]
  	      UNSPEC_SVE_LANE_SELECT)
! 	    (match_operand:SVE_FULL_HSDI 2 "register_operand"))))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] mls\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;mls\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4]
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 760,776 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve2_xar<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(rotatert:SVE_FULL_I
  	  (xor:SVE_FULL_I
! 	    (match_operand:SVE_FULL_I 1 "register_operand" "%0, w")
! 	    (match_operand:SVE_FULL_I 2 "register_operand" "w, w"))
  	  (match_operand:SVE_FULL_I 3 "aarch64_simd_rshift_imm")))]
    "TARGET_SVE2"
!   "@
!   xar\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #%3
!   movprfx\t%0, %1\;xar\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #%3"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 1267,1283 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve2_xar<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(rotatert:SVE_FULL_I
  	  (xor:SVE_FULL_I
! 	    (match_operand:SVE_FULL_I 1 "register_operand")
! 	    (match_operand:SVE_FULL_I 2 "register_operand"))
  	  (match_operand:SVE_FULL_I 3 "aarch64_simd_rshift_imm")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1  , 2 ; attrs: movprfx ]
!      [ w        , %0 , w ; *              ] xar\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #%3
!      [ ?&w      , w  , w ; yes            ] movprfx\t%0, %1\;xar\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #%3
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 804,889 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve2_bcax<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(xor:SVE_FULL_I
  	  (and:SVE_FULL_I
  	    (unspec:SVE_FULL_I
  	      [(match_operand 4)
  	       (not:SVE_FULL_I
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "w, w"))]
  	      UNSPEC_PRED_X)
! 	    (match_operand:SVE_FULL_I 2 "register_operand" "w, w"))
! 	  (match_operand:SVE_FULL_I 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!   bcax\t%0.d, %0.d, %2.d, %3.d
!   movprfx\t%0, %1\;bcax\t%0.d, %0.d, %2.d, %3.d"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Unpredicated 3-way exclusive OR.
  (define_insn "@aarch64_sve2_eor3<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, w, w, ?&w")
  	(xor:SVE_FULL_I
  	  (xor:SVE_FULL_I
! 	    (match_operand:SVE_FULL_I 1 "register_operand" "0, w, w, w")
! 	    (match_operand:SVE_FULL_I 2 "register_operand" "w, 0, w, w"))
! 	  (match_operand:SVE_FULL_I 3 "register_operand" "w, w, 0, w")))]
    "TARGET_SVE2"
!   "@
!   eor3\t%0.d, %0.d, %2.d, %3.d
!   eor3\t%0.d, %0.d, %1.d, %3.d
!   eor3\t%0.d, %0.d, %1.d, %2.d
!   movprfx\t%0, %1\;eor3\t%0.d, %0.d, %2.d, %3.d"
!   [(set_attr "movprfx" "*,*,*,yes")]
  )
  
  ;; Use NBSL for vector NOR.
  (define_insn_and_rewrite "*aarch64_sve2_nor<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
  	  [(match_operand 3)
  	   (and:SVE_FULL_I
  	     (not:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 1 "register_operand" "%0, w"))
  	     (not:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 2 "register_operand" "w, w")))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   "@
!   nbsl\t%0.d, %0.d, %2.d, %0.d
!   movprfx\t%0, %1\;nbsl\t%0.d, %0.d, %2.d, %0.d"
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Use NBSL for vector NAND.
  (define_insn_and_rewrite "*aarch64_sve2_nand<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
  	  [(match_operand 3)
  	   (ior:SVE_FULL_I
  	     (not:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 1 "register_operand" "%0, w"))
  	     (not:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 2 "register_operand" "w, w")))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   "@
!   nbsl\t%0.d, %0.d, %2.d, %2.d
!   movprfx\t%0, %1\;nbsl\t%0.d, %0.d, %2.d, %2.d"
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Unpredicated bitwise select.
--- 1311,1396 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve2_bcax<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(xor:SVE_FULL_I
  	  (and:SVE_FULL_I
  	    (unspec:SVE_FULL_I
  	      [(match_operand 4)
  	       (not:SVE_FULL_I
! 		 (match_operand:SVE_FULL_I 3 "register_operand"))]
  	      UNSPEC_PRED_X)
! 	    (match_operand:SVE_FULL_I 2 "register_operand"))
! 	  (match_operand:SVE_FULL_I 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] bcax\t%0.d, %0.d, %2.d, %3.d
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;bcax\t%0.d, %0.d, %2.d, %3.d
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Unpredicated 3-way exclusive OR.
  (define_insn "@aarch64_sve2_eor3<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(xor:SVE_FULL_I
  	  (xor:SVE_FULL_I
! 	    (match_operand:SVE_FULL_I 1 "register_operand")
! 	    (match_operand:SVE_FULL_I 2 "register_operand"))
! 	  (match_operand:SVE_FULL_I 3 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] eor3\t%0.d, %0.d, %2.d, %3.d
!      [ w        , w , 0 , w ; *              ] eor3\t%0.d, %0.d, %1.d, %3.d
!      [ w        , w , w , 0 ; *              ] eor3\t%0.d, %0.d, %1.d, %2.d
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;eor3\t%0.d, %0.d, %2.d, %3.d
!   }
  )
  
  ;; Use NBSL for vector NOR.
  (define_insn_and_rewrite "*aarch64_sve2_nor<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
  	  [(match_operand 3)
  	   (and:SVE_FULL_I
  	     (not:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 1 "register_operand"))
  	     (not:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 2 "register_operand")))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1  , 2 ; attrs: movprfx ]
!      [ w        , %0 , w ; *              ] nbsl\t%0.d, %0.d, %2.d, %0.d
!      [ ?&w      , w  , w ; yes            ] movprfx\t%0, %1\;nbsl\t%0.d, %0.d, %2.d, %0.d
!   }
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Use NBSL for vector NAND.
  (define_insn_and_rewrite "*aarch64_sve2_nand<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
  	  [(match_operand 3)
  	   (ior:SVE_FULL_I
  	     (not:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 1 "register_operand"))
  	     (not:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 2 "register_operand")))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1  , 2 ; attrs: movprfx ]
!      [ w        , %0 , w ; *              ] nbsl\t%0.d, %0.d, %2.d, %2.d
!      [ ?&w      , w  , w ; yes            ] movprfx\t%0, %1\;nbsl\t%0.d, %0.d, %2.d, %2.d
!   }
    "&& !CONSTANT_P (operands[3])"
    {
      operands[3] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Unpredicated bitwise select.
***************
*** 901,919 ****
  )
  
  (define_insn "*aarch64_sve2_bsl<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(xor:SVE_FULL_I
  	  (and:SVE_FULL_I
  	    (xor:SVE_FULL_I
! 	      (match_operand:SVE_FULL_I 1 "register_operand" "<bsl_1st>, w")
! 	      (match_operand:SVE_FULL_I 2 "register_operand" "<bsl_2nd>, w"))
! 	    (match_operand:SVE_FULL_I 3 "register_operand" "w, w"))
  	  (match_dup BSL_DUP)))]
    "TARGET_SVE2"
!   "@
!   bsl\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!   movprfx\t%0, %<bsl_mov>\;bsl\t%0.d, %0.d, %<bsl_dup>.d, %3.d"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Unpredicated bitwise inverted select.
--- 1408,1426 ----
  )
  
  (define_insn "*aarch64_sve2_bsl<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(xor:SVE_FULL_I
  	  (and:SVE_FULL_I
  	    (xor:SVE_FULL_I
! 	      (match_operand:SVE_FULL_I 1 "register_operand")
! 	      (match_operand:SVE_FULL_I 2 "register_operand"))
! 	    (match_operand:SVE_FULL_I 3 "register_operand"))
  	  (match_dup BSL_DUP)))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1         , 2         , 3 ; attrs: movprfx ]
!      [ w        , <bsl_1st> , <bsl_2nd> , w ; *              ] bsl\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!      [ ?&w      , w         , w         , w ; yes            ] movprfx\t%0, %<bsl_mov>\;bsl\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!   }
  )
  
  ;; Unpredicated bitwise inverted select.
***************
*** 938,964 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve2_nbsl<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
  	  [(match_operand 4)
  	   (not:SVE_FULL_I
  	     (xor:SVE_FULL_I
  	       (and:SVE_FULL_I
  		 (xor:SVE_FULL_I
! 		   (match_operand:SVE_FULL_I 1 "register_operand" "<bsl_1st>, w")
! 		   (match_operand:SVE_FULL_I 2 "register_operand" "<bsl_2nd>, w"))
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "w, w"))
  	       (match_dup BSL_DUP)))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   "@
!   nbsl\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!   movprfx\t%0, %<bsl_mov>\;nbsl\t%0.d, %0.d, %<bsl_dup>.d, %3.d"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Unpredicated bitwise select with inverted first operand.
--- 1445,1471 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve2_nbsl<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
  	  [(match_operand 4)
  	   (not:SVE_FULL_I
  	     (xor:SVE_FULL_I
  	       (and:SVE_FULL_I
  		 (xor:SVE_FULL_I
! 		   (match_operand:SVE_FULL_I 1 "register_operand")
! 		   (match_operand:SVE_FULL_I 2 "register_operand"))
! 		 (match_operand:SVE_FULL_I 3 "register_operand"))
  	       (match_dup BSL_DUP)))]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1         , 2         , 3 ; attrs: movprfx ]
!      [ w        , <bsl_1st> , <bsl_2nd> , w ; *              ] nbsl\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!      [ ?&w      , w         , w         , w ; yes            ] movprfx\t%0, %<bsl_mov>\;nbsl\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Unpredicated bitwise select with inverted first operand.
***************
*** 983,1009 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve2_bsl1n<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(xor:SVE_FULL_I
  	  (and:SVE_FULL_I
  	    (unspec:SVE_FULL_I
  	      [(match_operand 4)
  	       (not:SVE_FULL_I
  		 (xor:SVE_FULL_I
! 		   (match_operand:SVE_FULL_I 1 "register_operand" "<bsl_1st>, w")
! 		   (match_operand:SVE_FULL_I 2 "register_operand" "<bsl_2nd>, w")))]
  	      UNSPEC_PRED_X)
! 	    (match_operand:SVE_FULL_I 3 "register_operand" "w, w"))
  	  (match_dup BSL_DUP)))]
    "TARGET_SVE2"
!   "@
!   bsl1n\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!   movprfx\t%0, %<bsl_mov>\;bsl1n\t%0.d, %0.d, %<bsl_dup>.d, %3.d"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Unpredicated bitwise select with inverted second operand.
--- 1490,1516 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve2_bsl1n<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(xor:SVE_FULL_I
  	  (and:SVE_FULL_I
  	    (unspec:SVE_FULL_I
  	      [(match_operand 4)
  	       (not:SVE_FULL_I
  		 (xor:SVE_FULL_I
! 		   (match_operand:SVE_FULL_I 1 "register_operand")
! 		   (match_operand:SVE_FULL_I 2 "register_operand")))]
  	      UNSPEC_PRED_X)
! 	    (match_operand:SVE_FULL_I 3 "register_operand"))
  	  (match_dup BSL_DUP)))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1         , 2         , 3 ; attrs: movprfx ]
!      [ w        , <bsl_1st> , <bsl_2nd> , w ; *              ] bsl1n\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!      [ ?&w      , w         , w         , w ; yes            ] movprfx\t%0, %<bsl_mov>\;bsl1n\t%0.d, %0.d, %<bsl_dup>.d, %3.d
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Unpredicated bitwise select with inverted second operand.
***************
*** 1029,1083 ****
  )
  
  (define_insn_and_rewrite "*aarch64_sve2_bsl2n<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(ior:SVE_FULL_I
  	  (and:SVE_FULL_I
! 	    (match_operand:SVE_FULL_I 1 "register_operand" "<bsl_1st>, w")
! 	    (match_operand:SVE_FULL_I 2 "register_operand" "<bsl_2nd>, w"))
  	  (unspec:SVE_FULL_I
  	    [(match_operand 4)
  	     (and:SVE_FULL_I
  	       (not:SVE_FULL_I
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "w, w"))
  	       (not:SVE_FULL_I
  		 (match_dup BSL_DUP)))]
  	    UNSPEC_PRED_X)))]
    "TARGET_SVE2"
!   "@
!   bsl2n\t%0.d, %0.d, %3.d, %<bsl_dup>.d
!   movprfx\t%0, %<bsl_mov>\;bsl2n\t%0.d, %0.d, %3.d, %<bsl_dup>.d"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Unpredicated bitwise select with inverted second operand, alternative form.
  ;; (bsl_dup ? bsl_mov : ~op3) == ((bsl_dup & bsl_mov) | (~bsl_dup & ~op3))
  (define_insn_and_rewrite "*aarch64_sve2_bsl2n<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(ior:SVE_FULL_I
  	  (and:SVE_FULL_I
! 	    (match_operand:SVE_FULL_I 1 "register_operand" "<bsl_1st>, w")
! 	    (match_operand:SVE_FULL_I 2 "register_operand" "<bsl_2nd>, w"))
  	  (unspec:SVE_FULL_I
  	    [(match_operand 4)
  	     (and:SVE_FULL_I
  	       (not:SVE_FULL_I
  		 (match_dup BSL_DUP))
  	       (not:SVE_FULL_I
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "w, w")))]
  	    UNSPEC_PRED_X)))]
    "TARGET_SVE2"
!   "@
!   bsl2n\t%0.d, %0.d, %3.d, %<bsl_dup>.d
!   movprfx\t%0, %<bsl_mov>\;bsl2n\t%0.d, %0.d, %3.d, %<bsl_dup>.d"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 1536,1590 ----
  )
  
  (define_insn_and_rewrite "*aarch64_sve2_bsl2n<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(ior:SVE_FULL_I
  	  (and:SVE_FULL_I
! 	    (match_operand:SVE_FULL_I 1 "register_operand")
! 	    (match_operand:SVE_FULL_I 2 "register_operand"))
  	  (unspec:SVE_FULL_I
  	    [(match_operand 4)
  	     (and:SVE_FULL_I
  	       (not:SVE_FULL_I
! 		 (match_operand:SVE_FULL_I 3 "register_operand"))
  	       (not:SVE_FULL_I
  		 (match_dup BSL_DUP)))]
  	    UNSPEC_PRED_X)))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1         , 2         , 3 ; attrs: movprfx ]
!      [ w        , <bsl_1st> , <bsl_2nd> , w ; *              ] bsl2n\t%0.d, %0.d, %3.d, %<bsl_dup>.d
!      [ ?&w      , w         , w         , w ; yes            ] movprfx\t%0, %<bsl_mov>\;bsl2n\t%0.d, %0.d, %3.d, %<bsl_dup>.d
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Unpredicated bitwise select with inverted second operand, alternative form.
  ;; (bsl_dup ? bsl_mov : ~op3) == ((bsl_dup & bsl_mov) | (~bsl_dup & ~op3))
  (define_insn_and_rewrite "*aarch64_sve2_bsl2n<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(ior:SVE_FULL_I
  	  (and:SVE_FULL_I
! 	    (match_operand:SVE_FULL_I 1 "register_operand")
! 	    (match_operand:SVE_FULL_I 2 "register_operand"))
  	  (unspec:SVE_FULL_I
  	    [(match_operand 4)
  	     (and:SVE_FULL_I
  	       (not:SVE_FULL_I
  		 (match_dup BSL_DUP))
  	       (not:SVE_FULL_I
! 		 (match_operand:SVE_FULL_I 3 "register_operand")))]
  	    UNSPEC_PRED_X)))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1         , 2         , 3 ; attrs: movprfx ]
!      [ w        , <bsl_1st> , <bsl_2nd> , w ; *              ] bsl2n\t%0.d, %0.d, %3.d, %<bsl_dup>.d
!      [ ?&w      , w         , w         , w ; yes            ] movprfx\t%0, %<bsl_mov>\;bsl2n\t%0.d, %0.d, %3.d, %<bsl_dup>.d
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 1110,1149 ****
  ;; Pattern-match SSRA and USRA as a predicated operation whose predicate
  ;; isn't needed.
  (define_insn_and_rewrite "*aarch64_sve2_sra<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(plus:SVE_FULL_I
  	  (unspec:SVE_FULL_I
  	    [(match_operand 4)
  	     (SHIFTRT:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 2 "register_operand" "w, w")
  	       (match_operand:SVE_FULL_I 3 "aarch64_simd_rshift_imm"))]
  	    UNSPEC_PRED_X)
! 	 (match_operand:SVE_FULL_I 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!    <sra_op>sra\t%0.<Vetype>, %2.<Vetype>, #%3
!    movprfx\t%0, %1\;<sra_op>sra\t%0.<Vetype>, %2.<Vetype>, #%3"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; SRSRA and URSRA.
  (define_insn "@aarch64_sve_add_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(plus:SVE_FULL_I
  	  (unspec:SVE_FULL_I
! 	    [(match_operand:SVE_FULL_I 2 "register_operand" "w, w")
  	     (match_operand:SVE_FULL_I 3 "aarch64_simd_rshift_imm")]
  	    VRSHR_N)
! 	 (match_operand:SVE_FULL_I 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!    <sur>sra\t%0.<Vetype>, %2.<Vetype>, #%3
!    movprfx\t%0, %1\;<sur>sra\t%0.<Vetype>, %2.<Vetype>, #%3"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 1617,1656 ----
  ;; Pattern-match SSRA and USRA as a predicated operation whose predicate
  ;; isn't needed.
  (define_insn_and_rewrite "*aarch64_sve2_sra<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(plus:SVE_FULL_I
  	  (unspec:SVE_FULL_I
  	    [(match_operand 4)
  	     (SHIFTRT:SVE_FULL_I
! 	       (match_operand:SVE_FULL_I 2 "register_operand")
  	       (match_operand:SVE_FULL_I 3 "aarch64_simd_rshift_imm"))]
  	    UNSPEC_PRED_X)
! 	 (match_operand:SVE_FULL_I 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 ; attrs: movprfx ]
!      [ w        , 0 , w ; *              ] <sra_op>sra\t%0.<Vetype>, %2.<Vetype>, #%3
!      [ ?&w      , w , w ; yes            ] movprfx\t%0, %1\;<sra_op>sra\t%0.<Vetype>, %2.<Vetype>, #%3
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; SRSRA and URSRA.
  (define_insn "@aarch64_sve_add_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(plus:SVE_FULL_I
  	  (unspec:SVE_FULL_I
! 	    [(match_operand:SVE_FULL_I 2 "register_operand")
  	     (match_operand:SVE_FULL_I 3 "aarch64_simd_rshift_imm")]
  	    VRSHR_N)
! 	 (match_operand:SVE_FULL_I 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 ; attrs: movprfx ]
!      [ w        , 0 , w ; *              ] <sur>sra\t%0.<Vetype>, %2.<Vetype>, #%3
!      [ ?&w      , w , w ; yes            ] movprfx\t%0, %1\;<sur>sra\t%0.<Vetype>, %2.<Vetype>, #%3
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 1201,1214 ****
  ;; Pattern-match SABA and UABA as an absolute-difference-and-accumulate
  ;; operation whose predicates aren't needed.
  (define_insn "*aarch64_sve2_<su>aba<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(plus:SVE_FULL_I
  	  (minus:SVE_FULL_I
  	    (unspec:SVE_FULL_I
  	      [(match_operand 4)
  	       (USMAX:SVE_FULL_I
! 		 (match_operand:SVE_FULL_I 2 "register_operand" "w, w")
! 		 (match_operand:SVE_FULL_I 3 "register_operand" "w, w"))]
  	      UNSPEC_PRED_X)
  	    (unspec:SVE_FULL_I
  	      [(match_operand 5)
--- 1708,1721 ----
  ;; Pattern-match SABA and UABA as an absolute-difference-and-accumulate
  ;; operation whose predicates aren't needed.
  (define_insn "*aarch64_sve2_<su>aba<mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(plus:SVE_FULL_I
  	  (minus:SVE_FULL_I
  	    (unspec:SVE_FULL_I
  	      [(match_operand 4)
  	       (USMAX:SVE_FULL_I
! 		 (match_operand:SVE_FULL_I 2 "register_operand")
! 		 (match_operand:SVE_FULL_I 3 "register_operand"))]
  	      UNSPEC_PRED_X)
  	    (unspec:SVE_FULL_I
  	      [(match_operand 5)
***************
*** 1216,1227 ****
  		 (match_dup 2)
  		 (match_dup 3))]
  	      UNSPEC_PRED_X))
! 	  (match_operand:SVE_FULL_I 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!    <su>aba\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %1\;<su>aba\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; =========================================================================
--- 1723,1734 ----
  		 (match_dup 2)
  		 (match_dup 3))]
  	      UNSPEC_PRED_X))
! 	  (match_operand:SVE_FULL_I 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <su>aba\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<su>aba\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; =========================================================================
***************
*** 1229,1234 ****
--- 1736,1765 ----
  ;; =========================================================================
  
  ;; -------------------------------------------------------------------------
+ ;; ---- [INT] Multi-register widening conversions
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - SUNPK
+ ;; - UUNPK
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "<optab><mode><v2xwide>2"
+   [(set (match_operand:<V2XWIDE> 0 "aligned_register_operand" "=Uw2")
+ 	(ANY_EXTEND:<V2XWIDE>
+ 	  (match_operand:SVE_FULL_BHSI 1 "register_operand" "w")))]
+   "TARGET_STREAMING_SME2"
+   "<su>unpk\t%0, %1.<Vetype>"
+ )
+ 
+ (define_insn "<optab><mode><v2xwide>2"
+   [(set (match_operand:<V2XWIDE> 0 "aligned_register_operand" "=Uw4")
+ 	(ANY_EXTEND:<V2XWIDE>
+ 	  (match_operand:SVE_FULL_BHSIx2 1 "aligned_register_operand" "Uw2")))]
+   "TARGET_STREAMING_SME2"
+   "<su>unpk\t%0, %1"
+ )
+ 
+ ;; -------------------------------------------------------------------------
  ;; ---- [INT] Wide binary arithmetic
  ;; -------------------------------------------------------------------------
  ;; Includes:
***************
*** 1329,1334 ****
--- 1860,1866 ----
  ;; Includes:
  ;; - SABALB
  ;; - SABALT
+ ;; - SDOT (SME2 or SVE2p1)
  ;; - SMLALB
  ;; - SMLALT
  ;; - SMLSLB
***************
*** 1341,1346 ****
--- 1873,1879 ----
  ;; - SQDMLSLT
  ;; - UABALB
  ;; - UABALT
+ ;; - UDOT (SME2 or SVE2p1)
  ;; - UMLALB
  ;; - UMLALT
  ;; - UMLSLB
***************
*** 1349,1495 ****
  
  ;; Non-saturating MLA operations.
  (define_insn "@aarch64_sve_add_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(plus:SVE_FULL_HSDI
  	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:<VNARROW> 2 "register_operand" "w, w")
! 	     (match_operand:<VNARROW> 3 "register_operand" "w, w")]
  	    SVE2_INT_ADD_BINARY_LONG)
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!    <sve_int_add_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!    movprfx\t%0, %1\;<sve_int_add_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Non-saturating MLA operations with lane select.
  (define_insn "@aarch64_sve_add_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(plus:SVE_FULL_SDI
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VNARROW> 2 "register_operand" "w, w")
  	     (unspec:<VNARROW>
! 	       [(match_operand:<VNARROW> 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  		(match_operand:SI 4 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    SVE2_INT_ADD_BINARY_LONG_LANE)
! 	  (match_operand:SVE_FULL_SDI 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!    <sve_int_add_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!    movprfx\t%0, %1\;<sve_int_add_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Saturating MLA operations.
  (define_insn "@aarch64_sve_qadd_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(ss_plus:SVE_FULL_HSDI
  	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:<VNARROW> 2 "register_operand" "w, w")
! 	     (match_operand:<VNARROW> 3 "register_operand" "w, w")]
  	    SVE2_INT_QADD_BINARY_LONG)
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!    <sve_int_qadd_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!    movprfx\t%0, %1\;<sve_int_qadd_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Saturating MLA operations with lane select.
  (define_insn "@aarch64_sve_qadd_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(ss_plus:SVE_FULL_SDI
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VNARROW> 2 "register_operand" "w, w")
  	     (unspec:<VNARROW>
! 	       [(match_operand:<VNARROW> 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  		(match_operand:SI 4 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    SVE2_INT_QADD_BINARY_LONG_LANE)
! 	  (match_operand:SVE_FULL_SDI 1 "register_operand" "0, w")))]
    "TARGET_SVE2"
!   "@
!    <sve_int_qadd_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!    movprfx\t%0, %1\;<sve_int_qadd_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Non-saturating MLS operations.
  (define_insn "@aarch64_sve_sub_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(minus:SVE_FULL_HSDI
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand" "0, w")
  	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:<VNARROW> 2 "register_operand" "w, w")
! 	     (match_operand:<VNARROW> 3 "register_operand" "w, w")]
  	    SVE2_INT_SUB_BINARY_LONG)))]
    "TARGET_SVE2"
!   "@
!    <sve_int_sub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!    movprfx\t%0, %1\;<sve_int_sub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Non-saturating MLS operations with lane select.
  (define_insn "@aarch64_sve_sub_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(minus:SVE_FULL_SDI
! 	  (match_operand:SVE_FULL_SDI 1 "register_operand" "0, w")
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VNARROW> 2 "register_operand" "w, w")
  	     (unspec:<VNARROW>
! 	       [(match_operand:<VNARROW> 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  		(match_operand:SI 4 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    SVE2_INT_SUB_BINARY_LONG_LANE)))]
    "TARGET_SVE2"
!   "@
!    <sve_int_sub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!    movprfx\t%0, %1\;<sve_int_sub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Saturating MLS operations.
  (define_insn "@aarch64_sve_qsub_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(ss_minus:SVE_FULL_HSDI
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand" "0, w")
  	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:<VNARROW> 2 "register_operand" "w, w")
! 	     (match_operand:<VNARROW> 3 "register_operand" "w, w")]
  	    SVE2_INT_QSUB_BINARY_LONG)))]
    "TARGET_SVE2"
!   "@
!    <sve_int_qsub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!    movprfx\t%0, %1\;<sve_int_qsub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Saturating MLS operations with lane select.
  (define_insn "@aarch64_sve_qsub_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(ss_minus:SVE_FULL_SDI
! 	  (match_operand:SVE_FULL_SDI 1 "register_operand" "0, w")
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VNARROW> 2 "register_operand" "w, w")
  	     (unspec:<VNARROW>
! 	       [(match_operand:<VNARROW> 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  		(match_operand:SI 4 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    SVE2_INT_QSUB_BINARY_LONG_LANE)))]
    "TARGET_SVE2"
!   "@
!    <sve_int_qsub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!    movprfx\t%0, %1\;<sve_int_qsub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]"
!   [(set_attr "movprfx" "*,yes")]
  )
  ;; -------------------------------------------------------------------------
  ;; ---- [FP] Long multiplication with accumulation
  ;; -------------------------------------------------------------------------
  ;; Includes:
  ;; - FMLALB
  ;; - FMLALT
  ;; - FMLSLB
--- 1882,2086 ----
  
  ;; Non-saturating MLA operations.
  (define_insn "@aarch64_sve_add_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(plus:SVE_FULL_HSDI
  	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:<VNARROW> 2 "register_operand")
! 	     (match_operand:<VNARROW> 3 "register_operand")]
  	    SVE2_INT_ADD_BINARY_LONG)
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_int_add_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_int_add_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!   }
  )
  
  ;; Non-saturating MLA operations with lane select.
  (define_insn "@aarch64_sve_add_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(plus:SVE_FULL_SDI
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VNARROW> 2 "register_operand")
  	     (unspec:<VNARROW>
! 	       [(match_operand:<VNARROW> 3 "register_operand")
  		(match_operand:SI 4 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    SVE2_INT_ADD_BINARY_LONG_LANE)
! 	  (match_operand:SVE_FULL_SDI 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] <sve_int_add_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;<sve_int_add_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!   }
  )
  
  ;; Saturating MLA operations.
  (define_insn "@aarch64_sve_qadd_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(ss_plus:SVE_FULL_HSDI
  	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:<VNARROW> 2 "register_operand")
! 	     (match_operand:<VNARROW> 3 "register_operand")]
  	    SVE2_INT_QADD_BINARY_LONG)
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_int_qadd_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_int_qadd_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!   }
  )
  
  ;; Saturating MLA operations with lane select.
  (define_insn "@aarch64_sve_qadd_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(ss_plus:SVE_FULL_SDI
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VNARROW> 2 "register_operand")
  	     (unspec:<VNARROW>
! 	       [(match_operand:<VNARROW> 3 "register_operand")
  		(match_operand:SI 4 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    SVE2_INT_QADD_BINARY_LONG_LANE)
! 	  (match_operand:SVE_FULL_SDI 1 "register_operand")))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] <sve_int_qadd_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;<sve_int_qadd_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!   }
  )
  
  ;; Non-saturating MLS operations.
  (define_insn "@aarch64_sve_sub_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(minus:SVE_FULL_HSDI
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand")
  	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:<VNARROW> 2 "register_operand")
! 	     (match_operand:<VNARROW> 3 "register_operand")]
  	    SVE2_INT_SUB_BINARY_LONG)))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_int_sub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_int_sub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!   }
  )
  
  ;; Non-saturating MLS operations with lane select.
  (define_insn "@aarch64_sve_sub_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(minus:SVE_FULL_SDI
! 	  (match_operand:SVE_FULL_SDI 1 "register_operand")
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VNARROW> 2 "register_operand")
  	     (unspec:<VNARROW>
! 	       [(match_operand:<VNARROW> 3 "register_operand")
  		(match_operand:SI 4 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    SVE2_INT_SUB_BINARY_LONG_LANE)))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] <sve_int_sub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;<sve_int_sub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!   }
  )
  
  ;; Saturating MLS operations.
  (define_insn "@aarch64_sve_qsub_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(ss_minus:SVE_FULL_HSDI
! 	  (match_operand:SVE_FULL_HSDI 1 "register_operand")
  	  (unspec:SVE_FULL_HSDI
! 	    [(match_operand:<VNARROW> 2 "register_operand")
! 	     (match_operand:<VNARROW> 3 "register_operand")]
  	    SVE2_INT_QSUB_BINARY_LONG)))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_int_qsub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_int_qsub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>
!   }
  )
  
  ;; Saturating MLS operations with lane select.
  (define_insn "@aarch64_sve_qsub_<sve_int_op>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(ss_minus:SVE_FULL_SDI
! 	  (match_operand:SVE_FULL_SDI 1 "register_operand")
  	  (unspec:SVE_FULL_SDI
! 	    [(match_operand:<VNARROW> 2 "register_operand")
  	     (unspec:<VNARROW>
! 	       [(match_operand:<VNARROW> 3 "register_operand")
  		(match_operand:SI 4 "const_int_operand")]
  	       UNSPEC_SVE_LANE_SELECT)]
  	    SVE2_INT_QSUB_BINARY_LONG_LANE)))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] <sve_int_qsub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;<sve_int_qsub_op>\t%0.<Vetype>, %2.<Ventype>, %3.<Ventype>[%4]
!   }
  )
+ 
+ ;; Two-way dot-product.
+ (define_insn "@aarch64_sve_<sur>dotvnx4sivnx8hi"
+   [(set (match_operand:VNx4SI 0 "register_operand")
+ 	(plus:VNx4SI
+ 	  (unspec:VNx4SI
+ 	    [(match_operand:VNx8HI 1 "register_operand")
+ 	     (match_operand:VNx8HI 2 "register_operand")]
+ 	    DOTPROD)
+ 	  (match_operand:VNx4SI 3 "register_operand")))]
+   "TARGET_STREAMING_SME2"
+   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
+      [ w        , w , w , 0 ; *              ] <sur>dot\t%0.s, %1.h, %2.h
+      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %3\;<sur>dot\t%0.s, %1.h, %2.h
+   }
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [FP] Multi-register operations
+ ;; -------------------------------------------------------------------------
+ ;; Includes the multi-register forms of:
+ ;; - FMAX
+ ;; - FMAXNM
+ ;; - FMIN
+ ;; - FMINNM
+ ;; -------------------------------------------------------------------------
+ 
+ (define_expand "@aarch64_sve_<maxmin_uns_op><mode>"
+   [(set (match_operand:SVE_Fx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_Fx24
+ 	  [(match_operand:SVE_Fx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SVE_Fx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SVE_FP_BINARY_MULTI))]
+   "TARGET_STREAMING_SME2"
+ )
+ 
+ (define_insn "*aarch64_sve_<maxmin_uns_op><mode>"
+   [(set (match_operand:SVE_Fx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_Fx24
+ 	  [(match_operand:SVE_Fx24 1 "aligned_register_operand" "%0")
+ 	   (match_operand:SVE_Fx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SVE_FP_BINARY_MULTI))]
+   "TARGET_STREAMING_SME2"
+   "<maxmin_uns_op>\t%0, %0, %2"
+ )
+ 
+ (define_insn "@aarch64_sve_single_<maxmin_uns_op><mode>"
+   [(set (match_operand:SVE_Fx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_Fx24
+ 	  [(match_operand:SVE_Fx24 1 "aligned_register_operand" "0")
+ 	   (vec_duplicate:SVE_Fx24
+ 	     (match_operand:<VSINGLE> 2 "register_operand" "x"))]
+ 	  SVE_FP_BINARY_MULTI))]
+   "TARGET_STREAMING_SME2"
+   "<maxmin_uns_op>\t%0, %0, %2.<Vetype>"
+ )
+ 
  ;; -------------------------------------------------------------------------
  ;; ---- [FP] Long multiplication with accumulation
  ;; -------------------------------------------------------------------------
  ;; Includes:
+ ;; - FDOT (SME2 or SVE2p1)
  ;; - FMLALB
  ;; - FMLALT
  ;; - FMLSLB
***************
*** 1497,1530 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<sve_fp_op><mode>"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand" "=w, ?&w")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VNARROW> 1 "register_operand" "w, w")
! 	   (match_operand:<VNARROW> 2 "register_operand" "w, w")
! 	   (match_operand:VNx4SF_ONLY 3 "register_operand" "0, w")]
  	  SVE2_FP_TERNARY_LONG))]
    "TARGET_SVE2"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1.<Ventype>, %2.<Ventype>
!    movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1.<Ventype>, %2.<Ventype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "@aarch64_<sve_fp_op>_lane_<mode>"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand" "=w, ?&w")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VNARROW> 1 "register_operand" "w, w")
  	   (unspec:<VNARROW>
! 	     [(match_operand:<VNARROW> 2 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  	      (match_operand:SI 3 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)
! 	   (match_operand:VNx4SF_ONLY 4 "register_operand" "0, w")]
  	  SVE2_FP_TERNARY_LONG_LANE))]
    "TARGET_SVE2"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1.<Ventype>, %2.<Ventype>[%3]
!    movprfx\t%0, %4\;<sve_fp_op>\t%0.<Vetype>, %1.<Ventype>, %2.<Ventype>[%3]"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; =========================================================================
--- 2088,2155 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<sve_fp_op><mode>"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VNARROW> 1 "register_operand")
! 	   (match_operand:<VNARROW> 2 "register_operand")
! 	   (match_operand:VNx4SF_ONLY 3 "register_operand")]
  	  SVE2_FP_TERNARY_LONG))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , w , w , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1.<Ventype>, %2.<Ventype>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1.<Ventype>, %2.<Ventype>
!   }
  )
  
  (define_insn "@aarch64_<sve_fp_op>_lane_<mode>"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VNARROW> 1 "register_operand")
  	   (unspec:<VNARROW>
! 	     [(match_operand:<VNARROW> 2 "register_operand")
  	      (match_operand:SI 3 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)
! 	   (match_operand:VNx4SF_ONLY 4 "register_operand")]
  	  SVE2_FP_TERNARY_LONG_LANE))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2              , 4 ; attrs: movprfx ]
!      [ w        , w , <sve_lane_con> , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1.<Ventype>, %2.<Ventype>[%3]
!      [ ?&w      , w , <sve_lane_con> , w ; yes            ] movprfx\t%0, %4\;<sve_fp_op>\t%0.<Vetype>, %1.<Ventype>, %2.<Ventype>[%3]
!   }
! )
! 
! ;; Two-way dot-product.
! (define_insn "aarch64_sve_fdotvnx4sfvnx8hf"
!   [(set (match_operand:VNx4SF 0 "register_operand")
! 	(plus:VNx4SF
! 	  (unspec:VNx4SF
! 	    [(match_operand:VNx8HF 1 "register_operand")
! 	     (match_operand:VNx8HF 2 "register_operand")]
! 	    UNSPEC_FDOT)
! 	  (match_operand:VNx4SF 3 "register_operand")))]
!   "TARGET_STREAMING_SME2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , w , w , 0 ; *              ] fdot\t%0.s, %1.h, %2.h
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %3\;fdot\t%0.s, %1.h, %2.h
!   }
! )
! 
! (define_insn "aarch64_fdot_prod_lanevnx4sfvnx8hf"
!   [(set (match_operand:VNx4SF 0 "register_operand")
! 	(plus:VNx4SF
! 	  (unspec:VNx4SF
! 	    [(match_operand:VNx8HF 1 "register_operand")
! 	     (unspec:VNx8HF
! 	       [(match_operand:VNx8HF 2 "register_operand")
! 		(match_operand:SI 3 "const_int_operand")]
! 	       UNSPEC_SVE_LANE_SELECT)]
! 	    UNSPEC_FDOT)
! 	  (match_operand:VNx4SF 4 "register_operand")))]
!   "TARGET_STREAMING_SME2"
!   {@ [ cons: =0 , 1 , 2 , 4 ; attrs: movprfx ]
!      [ w        , w , y , 0 ; *              ] fdot\t%0.s, %1.h, %2.h[%3]
!      [ ?&w      , w , y , w ; yes            ] movprfx\t%0, %4\;fdot\t%0.s, %1.h, %2.h[%3]
!   }
  )
  
  ;; =========================================================================
***************
*** 1564,1569 ****
--- 2189,2231 ----
  )
  
  ;; -------------------------------------------------------------------------
+ ;; ---- [INT] Multi-vector narrowing unary arithmetic
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - SQCVT
+ ;; - SQCVTN
+ ;; - UQCVT
+ ;; - UQCVTN
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sve_<optab><VNx16QI_ONLY:mode><VNx16SI_ONLY:mode>"
+   [(set (match_operand:VNx16QI_ONLY 0 "register_operand" "=w")
+ 	(unspec:VNx16QI_ONLY
+ 	  [(match_operand:VNx16SI_ONLY 1 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SVE_QCVTxN))]
+   "TARGET_SME2 && TARGET_STREAMING"
+   "<optab>\t%0.b, %1"
+ )
+ 
+ (define_insn "@aarch64_sve_<optab><VNx8HI_ONLY:mode><VNx8SI_ONLY:mode>"
+   [(set (match_operand:VNx8HI_ONLY 0 "register_operand" "=w")
+ 	(unspec:VNx8HI_ONLY
+ 	  [(match_operand:VNx8SI_ONLY 1 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SVE_QCVTxN))]
+   "TARGET_SME2 && TARGET_STREAMING"
+   "<optab>\t%0.h, %1"
+ )
+ 
+ (define_insn "@aarch64_sve_<optab><VNx8HI_ONLY:mode><VNx8DI_ONLY:mode>"
+   [(set (match_operand:VNx8HI_ONLY 0 "register_operand" "=w")
+ 	(unspec:VNx8HI_ONLY
+ 	  [(match_operand:VNx8DI_ONLY 1 "aligned_register_operand" "Uw<vector_count>")]
+ 	  SVE_QCVTxN))]
+   "TARGET_SME2 && TARGET_STREAMING"
+   "<optab>\t%0.h, %1"
+ )
+ 
+ ;; -------------------------------------------------------------------------
  ;; ---- [INT] Narrowing binary arithmetic
  ;; -------------------------------------------------------------------------
  ;; Includes:
***************
*** 1661,1666 ****
--- 2323,2342 ----
    "<sve_int_op>\t%0.<Ventype>, %2.<Vetype>, #%3"
  )
  
+ ;; -------------------------------------------------------------------------
+ ;; ---- [INT] Multi-vector narrowing right shifts
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sve_<sve_int_op><mode>"
+   [(set (match_operand:<VNARROW> 0 "register_operand" "=w")
+ 	(unspec:<VNARROW>
+ 	  [(match_operand:SVE_FULL_SIx2_SDIx4 1 "register_operand" "Uw<vector_count>")
+ 	   (match_operand:DI 2 "const_int_operand")]
+ 	  SVE2_INT_SHIFT_IMM_NARROWxN))]
+   "TARGET_STREAMING_SME2"
+   "<sve_int_op>\t%0.<Ventype>, %1, #%2"
+ )
+ 
  ;; =========================================================================
  ;; == Pairwise arithmetic
  ;; =========================================================================
***************
*** 1677,1693 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_pred_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
! 	   (match_operand:SVE_FULL_I 2 "register_operand" "0, w")
! 	   (match_operand:SVE_FULL_I 3 "register_operand" "w, w")]
  	  SVE2_INT_BINARY_PAIR))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 2353,2369 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_pred_<sve_int_op><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:SVE_FULL_I 2 "register_operand")
! 	   (match_operand:SVE_FULL_I 3 "register_operand")]
  	  SVE2_INT_BINARY_PAIR))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 1702,1718 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_pred_<sve_fp_op><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "0, w")
! 	   (match_operand:SVE_FULL_F 3 "register_operand" "w, w")]
  	  SVE2_FP_BINARY_PAIR))]
    "TARGET_SVE2"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 2378,2394 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_pred_<sve_fp_op><mode>"
!   [(set (match_operand:SVE_FULL_F 0 "register_operand")
  	(unspec:SVE_FULL_F
! 	  [(match_operand:<VPRED> 1 "register_operand")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")
! 	   (match_operand:SVE_FULL_F 3 "register_operand")]
  	  SVE2_FP_BINARY_PAIR))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 1746,1788 ****
  ;; Predicated pairwise absolute difference and accumulate, merging with
  ;; the first input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_2"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_HSDI
  	     [(match_operand 4)
! 	      (match_operand:SVE_FULL_HSDI 2 "register_operand" "0, w")
! 	      (match_operand:<VNARROW> 3 "register_operand" "w, w")]
  	     SVE2_INT_BINARY_PAIR_LONG)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %3.<Ventype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %3.<Ventype>"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated pairwise absolute difference and accumulate, merging with zero.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_z"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand" "=&w, &w")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:SVE_FULL_HSDI
  	     [(match_operand 5)
! 	      (match_operand:SVE_FULL_HSDI 2 "register_operand" "0, w")
! 	      (match_operand:<VNARROW> 3 "register_operand" "w, w")]
  	     SVE2_INT_BINARY_PAIR_LONG)
  	   (match_operand:SVE_FULL_HSDI 4 "aarch64_simd_imm_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   "@
!    movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %3.<Ventype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %3.<Ventype>"
    "&& !CONSTANT_P (operands[5])"
    {
      operands[5] = CONSTM1_RTX (<VPRED>mode);
--- 2422,2465 ----
  ;; Predicated pairwise absolute difference and accumulate, merging with
  ;; the first input.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_2"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_HSDI
  	     [(match_operand 4)
! 	      (match_operand:SVE_FULL_HSDI 2 "register_operand")
! 	      (match_operand:<VNARROW> 3 "register_operand")]
  	     SVE2_INT_BINARY_PAIR_LONG)
  	   (match_dup 2)]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3 ; attrs: movprfx ]
!      [ w        , Upl , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %3.<Ventype>
!      [ ?&w      , Upl , w , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %3.<Ventype>
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; Predicated pairwise absolute difference and accumulate, merging with zero.
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>_z"
!   [(set (match_operand:SVE_FULL_HSDI 0 "register_operand")
  	(unspec:SVE_FULL_HSDI
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:SVE_FULL_HSDI
  	     [(match_operand 5)
! 	      (match_operand:SVE_FULL_HSDI 2 "register_operand")
! 	      (match_operand:<VNARROW> 3 "register_operand")]
  	     SVE2_INT_BINARY_PAIR_LONG)
  	   (match_operand:SVE_FULL_HSDI 4 "aarch64_simd_imm_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3  ]
!      [ &w       , Upl , 0 , w  ] movprfx\t%0.<Vetype>, %1/z, %0.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %3.<Ventype>
!      [ &w       , Upl , w , w  ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %3.<Ventype>
!   }
    "&& !CONSTANT_P (operands[5])"
    {
      operands[5] = CONSTM1_RTX (<VPRED>mode);
***************
*** 1803,1818 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:SVE_FULL_I 1 "register_operand" "0, w")
! 	   (match_operand:SVE_FULL_I 2 "register_operand" "w, w")]
  	  SVE2_INT_CADD))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #<rot>
!    movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; unpredicated optab pattern for auto-vectorizer
--- 2480,2495 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:SVE_FULL_I 1 "register_operand")
! 	   (match_operand:SVE_FULL_I 2 "register_operand")]
  	  SVE2_INT_CADD))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 ; attrs: movprfx ]
!      [ w        , 0 , w ; *              ] <sve_int_op>\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #<rot>
!      [ ?&w      , w , w ; yes            ] movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %0.<Vetype>, %2.<Vetype>, #<rot>
!   }
  )
  
  ;; unpredicated optab pattern for auto-vectorizer
***************
*** 1834,1867 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:SVE_FULL_I 1 "register_operand" "0, w")
! 	   (match_operand:SVE_FULL_I 2 "register_operand" "w, w")
! 	   (match_operand:SVE_FULL_I 3 "register_operand" "w, w")]
  	  SVE2_INT_CMLA))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>, #<rot>
!    movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>, #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "@aarch64_<optab>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_HSI
! 	  [(match_operand:SVE_FULL_HSI 1 "register_operand" "0, w")
! 	   (match_operand:SVE_FULL_HSI 2 "register_operand" "w, w")
  	   (unspec:SVE_FULL_HSI
! 	     [(match_operand:SVE_FULL_HSI 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  	      (match_operand:SI 4 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)]
  	  SVE2_INT_CMLA))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4], #<rot>
!    movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4], #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; unpredicated optab pattern for auto-vectorizer
--- 2511,2544 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_I 0 "register_operand")
  	(unspec:SVE_FULL_I
! 	  [(match_operand:SVE_FULL_I 1 "register_operand")
! 	   (match_operand:SVE_FULL_I 2 "register_operand")
! 	   (match_operand:SVE_FULL_I 3 "register_operand")]
  	  SVE2_INT_CMLA))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>, #<rot>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>, #<rot>
!   }
  )
  
  (define_insn "@aarch64_<optab>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_HSI 0 "register_operand")
  	(unspec:SVE_FULL_HSI
! 	  [(match_operand:SVE_FULL_HSI 1 "register_operand")
! 	   (match_operand:SVE_FULL_HSI 2 "register_operand")
  	   (unspec:SVE_FULL_HSI
! 	     [(match_operand:SVE_FULL_HSI 3 "register_operand")
  	      (match_operand:SI 4 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)]
  	  SVE2_INT_CMLA))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] <sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4], #<rot>
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>[%4], #<rot>
!   }
  )
  
  ;; unpredicated optab pattern for auto-vectorizer
***************
*** 1914,1947 ****
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:SVE_FULL_SDI 1 "register_operand" "0, w")
! 	   (match_operand:<VSI2QI> 2 "register_operand" "w, w")
! 	   (match_operand:<VSI2QI> 3 "register_operand" "w, w")]
  	  SVE2_INT_CDOT))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %2.<Vetype_fourth>, %3.<Vetype_fourth>, #<rot>
!    movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype_fourth>, %3.<Vetype_fourth>, #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  (define_insn "@aarch64_<optab>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand" "=w, ?&w")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:SVE_FULL_SDI 1 "register_operand" "0, w")
! 	   (match_operand:<VSI2QI> 2 "register_operand" "w, w")
  	   (unspec:<VSI2QI>
! 	     [(match_operand:<VSI2QI> 3 "register_operand" "<sve_lane_con>, <sve_lane_con>")
  	      (match_operand:SI 4 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)]
  	  SVE2_INT_CDOT))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %2.<Vetype_fourth>, %3.<Vetype_fourth>[%4], #<rot>
!    movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype_fourth>, %3.<Vetype_fourth>[%4], #<rot>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; =========================================================================
--- 2591,2624 ----
  ;; -------------------------------------------------------------------------
  
  (define_insn "@aarch64_sve_<optab><mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:SVE_FULL_SDI 1 "register_operand")
! 	   (match_operand:<VSI2QI> 2 "register_operand")
! 	   (match_operand:<VSI2QI> 3 "register_operand")]
  	  SVE2_INT_CDOT))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: movprfx ]
!      [ w        , 0 , w , w ; *              ] <sve_int_op>\t%0.<Vetype>, %2.<Vetype_fourth>, %3.<Vetype_fourth>, #<rot>
!      [ ?&w      , w , w , w ; yes            ] movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype_fourth>, %3.<Vetype_fourth>, #<rot>
!   }
  )
  
  (define_insn "@aarch64_<optab>_lane_<mode>"
!   [(set (match_operand:SVE_FULL_SDI 0 "register_operand")
  	(unspec:SVE_FULL_SDI
! 	  [(match_operand:SVE_FULL_SDI 1 "register_operand")
! 	   (match_operand:<VSI2QI> 2 "register_operand")
  	   (unspec:<VSI2QI>
! 	     [(match_operand:<VSI2QI> 3 "register_operand")
  	      (match_operand:SI 4 "const_int_operand")]
  	     UNSPEC_SVE_LANE_SELECT)]
  	  SVE2_INT_CDOT))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1 , 2 , 3              ; attrs: movprfx ]
!      [ w        , 0 , w , <sve_lane_con> ; *              ] <sve_int_op>\t%0.<Vetype>, %2.<Vetype_fourth>, %3.<Vetype_fourth>[%4], #<rot>
!      [ ?&w      , w , w , <sve_lane_con> ; yes            ] movprfx\t%0, %1\;<sve_int_op>\t%0.<Vetype>, %2.<Vetype_fourth>, %3.<Vetype_fourth>[%4], #<rot>
!   }
  )
  
  ;; =========================================================================
***************
*** 2046,2062 ****
  ;; Predicated FCVTX (equivalent to what would be FCVTXNB, except that
  ;; it supports MOVPRFX).
  (define_insn "@aarch64_pred_<sve_fp_op><mode>"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand" "=w, ?&w")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VWIDE_PRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:<VWIDE> 2 "register_operand" "0, w")]
  	  SVE2_COND_FP_UNARY_NARROWB))]
    "TARGET_SVE2"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated FCVTX with merging.
--- 2723,2739 ----
  ;; Predicated FCVTX (equivalent to what would be FCVTXNB, except that
  ;; it supports MOVPRFX).
  (define_insn "@aarch64_pred_<sve_fp_op><mode>"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VWIDE_PRED> 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:<VWIDE> 2 "register_operand")]
  	  SVE2_COND_FP_UNARY_NARROWB))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!   }
  )
  
  ;; Predicated FCVTX with merging.
***************
*** 2075,2119 ****
  )
  
  (define_insn_and_rewrite "*cond_<sve_fp_op><mode>_any_relaxed"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand" "=&w, &w, &w")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VWIDE_PRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:VNx4SF_ONLY
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:<VWIDE> 2 "register_operand" "w, w, w")]
  	     SVE2_COND_FP_UNARY_NARROWB)
! 	   (match_operand:VNx4SF_ONLY 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2 && !rtx_equal_p (operands[2], operands[3])"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!    movprfx\t%0.<Vewtype>, %1/z, %2.<Vewtype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!    movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  (define_insn "*cond_<sve_fp_op><mode>_any_strict"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand" "=&w, &w, &w")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VWIDE_PRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:VNx4SF_ONLY
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:<VWIDE> 2 "register_operand" "w, w, w")]
  	     SVE2_COND_FP_UNARY_NARROWB)
! 	   (match_operand:VNx4SF_ONLY 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2 && !rtx_equal_p (operands[2], operands[3])"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!    movprfx\t%0.<Vewtype>, %1/z, %2.<Vewtype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!    movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; Predicated FCVTXNT.  This doesn't give a natural aarch64_pred_*/cond_*
--- 2752,2796 ----
  )
  
  (define_insn_and_rewrite "*cond_<sve_fp_op><mode>_any_relaxed"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VWIDE_PRED> 1 "register_operand")
  	   (unspec:VNx4SF_ONLY
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:<VWIDE> 2 "register_operand")]
  	     SVE2_COND_FP_UNARY_NARROWB)
! 	   (match_operand:VNx4SF_ONLY 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2 && !rtx_equal_p (operands[2], operands[3])"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!      [ &w       , Upl , w , Dz ; yes            ] movprfx\t%0.<Vewtype>, %1/z, %2.<Vewtype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!      [ &w       , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<sve_fp_op><mode>_any_strict"
!   [(set (match_operand:VNx4SF_ONLY 0 "register_operand")
  	(unspec:VNx4SF_ONLY
! 	  [(match_operand:<VWIDE_PRED> 1 "register_operand")
  	   (unspec:VNx4SF_ONLY
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:<VWIDE> 2 "register_operand")]
  	     SVE2_COND_FP_UNARY_NARROWB)
! 	   (match_operand:VNx4SF_ONLY 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2 && !rtx_equal_p (operands[2], operands[3])"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!      [ &w       , Upl , w , Dz ; yes            ] movprfx\t%0.<Vewtype>, %1/z, %2.<Vewtype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!      [ &w       , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vewtype>
!   }
  )
  
  ;; Predicated FCVTXNT.  This doesn't give a natural aarch64_pred_*/cond_*
***************
*** 2133,2138 ****
--- 2810,2866 ----
    "fcvtxnt\t%0.<Ventype>, %2/m, %3.<Vetype>"
  )
  
+ ;; -------------------------------------------------------------------------
+ ;; ---- [FP<-FP] Multi-vector narrowing conversions
+ ;; -------------------------------------------------------------------------
+ ;; Includes the multi-register forms of:
+ ;; - BFCVT
+ ;; - BFCVTN
+ ;; - FCVT
+ ;; - FCVTN
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "truncvnx8sf<mode>2"
+   [(set (match_operand:SVE_FULL_HF 0 "register_operand" "=w")
+ 	(float_truncate:SVE_FULL_HF
+ 	  (match_operand:VNx8SF 1 "aligned_register_operand" "Uw2")))]
+   "TARGET_STREAMING_SME2"
+   "<b>fcvt\t%0.h, %1"
+ )
+ 
+ (define_insn "@aarch64_sve_cvtn<mode>"
+   [(set (match_operand:SVE_FULL_HF 0 "register_operand" "=w")
+ 	(unspec:SVE_FULL_HF
+ 	  [(match_operand:VNx8SF 1 "aligned_register_operand" "Uw2")]
+ 	  UNSPEC_FCVTN))]
+   "TARGET_STREAMING_SME2"
+   "<b>fcvtn\t%0.h, %1"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [FP<-INT] Multi-vector conversions
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "<optab><v_int_equiv><mode>2"
+   [(set (match_operand:SVE_SFx24 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(FLOATUORS:SVE_SFx24
+ 	  (match_operand:<V_INT_EQUIV> 1 "aligned_register_operand" "Uw<vector_count>")))]
+   "TARGET_STREAMING_SME2"
+   "<su_optab>cvtf\t%0, %1"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [INT<-FP] Multi-vector conversions
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "<optab><mode><v_int_equiv>2"
+   [(set (match_operand:<V_INT_EQUIV> 0 "aligned_register_operand" "=Uw<vector_count>")
+ 	(FIXUORS:<V_INT_EQUIV>
+ 	  (match_operand:SVE_SFx24 1 "aligned_register_operand" "Uw<vector_count>")))]
+   "TARGET_STREAMING_SME2"
+   "fcvtz<su>\t%0, %1"
+ )
+ 
  ;; =========================================================================
  ;; == Other arithmetic
  ;; =========================================================================
***************
*** 2147,2164 ****
  
  ;; Predicated integer unary operations.
  (define_insn "@aarch64_pred_<sve_int_op><mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand" "=w, ?&w")
  	(unspec:VNx4SI_ONLY
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (unspec:VNx4SI_ONLY
! 	     [(match_operand:VNx4SI_ONLY 2 "register_operand" "0, w")]
  	     SVE2_U32_UNARY)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated integer unary operations with merging.
--- 2875,2892 ----
  
  ;; Predicated integer unary operations.
  (define_insn "@aarch64_pred_<sve_int_op><mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand")
  	(unspec:VNx4SI_ONLY
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:VNx4SI_ONLY
! 	     [(match_operand:VNx4SI_ONLY 2 "register_operand")]
  	     SVE2_U32_UNARY)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Predicated integer unary operations with merging.
***************
*** 2181,2207 ****
  )
  
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand" "=w, ?&w, ?&w")
  	(unspec:VNx4SI_ONLY
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:VNx4SI_ONLY
  	     [(match_operand 4)
  	      (unspec:VNx4SI_ONLY
! 		[(match_operand:VNx4SI_ONLY 2 "register_operand" "w, w, w")]
  		SVE2_U32_UNARY)]
  	     UNSPEC_PRED_X)
! 	   (match_operand:VNx4SI_ONLY 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   "@
!    <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
-   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 2909,2935 ----
  )
  
  (define_insn_and_rewrite "*cond_<sve_int_op><mode>"
!   [(set (match_operand:VNx4SI_ONLY 0 "register_operand")
  	(unspec:VNx4SI_ONLY
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:VNx4SI_ONLY
  	     [(match_operand 4)
  	      (unspec:VNx4SI_ONLY
! 		[(match_operand:VNx4SI_ONLY 2 "register_operand")]
  		SVE2_U32_UNARY)]
  	     UNSPEC_PRED_X)
! 	   (match_operand:VNx4SI_ONLY 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ w        , Upl , w , 0  ; *              ] <sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_int_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
    "&& !CONSTANT_P (operands[4])"
    {
      operands[4] = CONSTM1_RTX (<VPRED>mode);
    }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 2213,2229 ****
  
  ;; Predicated FLOGB.
  (define_insn "@aarch64_pred_<sve_fp_op><mode>"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w, ?&w")
  	(unspec:<V_INT_EQUIV>
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand" "0, w")]
  	  SVE2_COND_INT_UNARY_FP))]
    "TARGET_SVE2"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes")]
  )
  
  ;; Predicated FLOGB with merging.
--- 2941,2957 ----
  
  ;; Predicated FLOGB.
  (define_insn "@aarch64_pred_<sve_fp_op><mode>"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand")
  	(unspec:<V_INT_EQUIV>
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (match_operand:SI 3 "aarch64_sve_gp_strictness")
! 	   (match_operand:SVE_FULL_F 2 "register_operand")]
  	  SVE2_COND_INT_UNARY_FP))]
    "TARGET_SVE2"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; Predicated FLOGB with merging.
***************
*** 2242,2286 ****
  )
  
  (define_insn_and_rewrite "*cond_<sve_fp_op><mode>"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=&w, ?&w, ?&w")
  	(unspec:<V_INT_EQUIV>
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:<V_INT_EQUIV>
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w")]
  	     SVE2_COND_INT_UNARY_FP)
! 	   (match_operand:<V_INT_EQUIV> 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2 && !rtx_equal_p (operands[2], operands[3])"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
-   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  (define_insn "*cond_<sve_fp_op><mode>_strict"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=&w, ?&w, ?&w")
  	(unspec:<V_INT_EQUIV>
! 	  [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
  	   (unspec:<V_INT_EQUIV>
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand" "w, w, w")]
  	     SVE2_COND_INT_UNARY_FP)
! 	   (match_operand:<V_INT_EQUIV> 3 "aarch64_simd_reg_or_zero" "0, Dz, w")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2 && !rtx_equal_p (operands[2], operands[3])"
!   "@
!    <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!    movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>"
!   [(set_attr "movprfx" "*,yes,yes")]
  )
  
  ;; -------------------------------------------------------------------------
--- 2970,3014 ----
  )
  
  (define_insn_and_rewrite "*cond_<sve_fp_op><mode>"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand")
  	(unspec:<V_INT_EQUIV>
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:<V_INT_EQUIV>
  	     [(match_operand 4)
  	      (const_int SVE_RELAXED_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")]
  	     SVE2_COND_INT_UNARY_FP)
! 	   (match_operand:<V_INT_EQUIV> 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2 && !rtx_equal_p (operands[2], operands[3])"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
    "&& !rtx_equal_p (operands[1], operands[4])"
    {
      operands[4] = copy_rtx (operands[1]);
    }
  )
  
  (define_insn "*cond_<sve_fp_op><mode>_strict"
!   [(set (match_operand:<V_INT_EQUIV> 0 "register_operand")
  	(unspec:<V_INT_EQUIV>
! 	  [(match_operand:<VPRED> 1 "register_operand")
  	   (unspec:<V_INT_EQUIV>
  	     [(match_dup 1)
  	      (const_int SVE_STRICT_GP)
! 	      (match_operand:SVE_FULL_F 2 "register_operand")]
  	     SVE2_COND_INT_UNARY_FP)
! 	   (match_operand:<V_INT_EQUIV> 3 "aarch64_simd_reg_or_zero")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2 && !rtx_equal_p (operands[2], operands[3])"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ &w       , Upl , w , 0  ; *              ] <sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , Dz ; yes            ] movprfx\t%0.<Vetype>, %1/z, %2.<Vetype>\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;<sve_fp_op>\t%0.<Vetype>, %1/m, %2.<Vetype>
!   }
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 2329,2338 ****
--- 3057,3164 ----
  )
  
  ;; =========================================================================
+ ;; == Comparisons and selects
+ ;; =========================================================================
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [INT,FP] Select based on predicates as counters
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sve_sel<mode>"
+   [(set (match_operand:SVE_FULLx24 0 "register_operand" "=Uw<vector_count>")
+ 	(unspec:SVE_FULLx24
+ 	  [(match_operand:<VPRED> 3 "register_operand" "Uph")
+ 	   (match_operand:SVE_FULLx24 1 "aligned_register_operand" "Uw<vector_count>")
+ 	   (match_operand:SVE_FULLx24 2 "aligned_register_operand" "Uw<vector_count>")]
+ 	  UNSPEC_SEL))]
+   "TARGET_STREAMING_SME2"
+   "sel\t%0, %K3, %1, %2"
+ )
+ 
+ ;; -------------------------------------------------------------------------
+ ;; ---- [INT] While tests
+ ;; -------------------------------------------------------------------------
+ ;; Includes the x2 and count versions of:
+ ;; - WHILEGE
+ ;; - WHILEGT
+ ;; - WHILEHI
+ ;; - WHILEHS
+ ;; - WHILELE
+ ;; - WHILELO
+ ;; - WHILELS
+ ;; - WHILELT
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sve_while<while_optab_cmp>_b<BHSD_BITS>_x2"
+   [(set (match_operand:VNx32BI 0 "register_operand" "=Up2")
+ 	(unspec:VNx32BI
+ 	  [(const_int SVE_WHILE_B_X2)
+ 	   (match_operand:DI 1 "aarch64_reg_or_zero" "rZ")
+ 	   (match_operand:DI 2 "aarch64_reg_or_zero" "rZ")
+ 	   (const_int BHSD_BITS)]
+ 	  SVE_WHILE_ORDER))
+    (clobber (reg:CC_NZC CC_REGNUM))]
+   "TARGET_STREAMING_SME2"
+   "while<cmp_op>\t{%S0.<bits_etype>, %T0.<bits_etype>}, %x1, %x2"
+ )
+ 
+ (define_insn "@aarch64_sve_while<while_optab_cmp>_c<BHSD_BITS>"
+   [(set (match_operand:VNx16BI 0 "register_operand" "=Uph")
+ 	(unspec:VNx16BI
+ 	  [(const_int SVE_WHILE_C)
+ 	   (match_operand:DI 1 "aarch64_reg_or_zero" "rZ")
+ 	   (match_operand:DI 2 "aarch64_reg_or_zero" "rZ")
+ 	   (const_int BHSD_BITS)
+ 	   (match_operand:DI 3 "const_int_operand")]
+ 	  SVE_WHILE_ORDER))
+    (clobber (reg:CC_NZC CC_REGNUM))]
+   "TARGET_STREAMING_SME2"
+   "while<cmp_op>\t%K0.<bits_etype>, %x1, %x2, vlx%3"
+ )
+ 
+ ;; =========================================================================
  ;; == Permutation
  ;; =========================================================================
  
  ;; -------------------------------------------------------------------------
+ ;; ---- [INT,FP] Reversal
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - REVD
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_pred_<optab><mode>"
+   [(set (match_operand:SVE_FULL 0 "register_operand")
+ 	(unspec:SVE_FULL
+ 	  [(match_operand:VNx2BI 1 "register_operand")
+ 	   (unspec:SVE_FULL
+ 	     [(match_operand:SVE_FULL 2 "register_operand")]
+ 	     UNSPEC_REVD_ONLY)]
+ 	  UNSPEC_PRED_X))]
+   "TARGET_STREAMING_SME"
+   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
+      [ w        , Upl , 0 ; *              ] revd\t%0.q, %1/m, %2.q
+      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;revd\t%0.q, %1/m, %2.q
+   }
+ )
+ 
+ (define_insn "@cond_<optab><mode>"
+   [(set (match_operand:SVE_FULL 0 "register_operand")
+ 	(unspec:SVE_FULL
+ 	  [(match_operand:VNx2BI 1 "register_operand")
+ 	   (unspec:SVE_FULL
+ 	     [(match_operand:SVE_FULL 2 "register_operand")]
+ 	     UNSPEC_REVD_ONLY)
+ 	   (match_operand:SVE_FULL 3 "register_operand")]
+ 	  UNSPEC_SEL))]
+   "TARGET_STREAMING_SME"
+   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
+      [ w        , Upl , w , 0  ; *              ] revd\t%0.q, %1/m, %2.q
+      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;revd\t%0.q, %1/m, %2.q
+   }
+ )
+ 
+ ;; -------------------------------------------------------------------------
  ;; ---- [INT,FP] General permutes
  ;; -------------------------------------------------------------------------
  ;; Includes:
***************
*** 2364,2369 ****
--- 3190,3241 ----
  )
  
  ;; -------------------------------------------------------------------------
+ ;; ---- [INT,FP] Multi-register permutes
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - ZIP
+ ;; - UZP
+ ;; -------------------------------------------------------------------------
+ 
+ (define_insn "@aarch64_sve_<optab><mode>"
+   [(set (match_operand:SVE_FULLx2 0 "aligned_register_operand" "=Uw2")
+ 	(unspec:SVE_FULLx2
+ 	  [(match_operand:<VSINGLE> 1 "register_operand" "w")
+ 	   (match_operand:<VSINGLE> 2 "register_operand" "w")]
+ 	  SVE2_x24_PERMUTE))]
+   "TARGET_STREAMING_SME2"
+   "<perm_insn>\t%0, %1.<Vetype>, %2.<Vetype>"
+ )
+ 
+ (define_insn "@aarch64_sve_<optab><mode>"
+   [(set (match_operand:SVE_FULLx2 0 "aligned_register_operand" "=Uw2")
+ 	(unspec:SVE_FULLx2
+ 	  [(match_operand:<VSINGLE> 1 "register_operand" "w")
+ 	   (match_operand:<VSINGLE> 2 "register_operand" "w")]
+ 	  SVE2_x24_PERMUTEQ))]
+   "TARGET_STREAMING_SME2"
+   "<perm_insn>\t{%S0.q - %T0.q}, %1.q, %2.q"
+ )
+ 
+ (define_insn "@aarch64_sve_<optab><mode>"
+   [(set (match_operand:SVE_FULLx4 0 "aligned_register_operand" "=Uw4")
+ 	(unspec:SVE_FULLx4
+ 	  [(match_operand:SVE_FULLx4 1 "aligned_register_operand" "Uw4")]
+ 	  SVE2_x24_PERMUTE))]
+   "TARGET_STREAMING_SME2"
+   "<perm_insn>\t%0, %1"
+ )
+ 
+ (define_insn "@aarch64_sve_<optab><mode>"
+   [(set (match_operand:SVE_FULLx4 0 "aligned_register_operand" "=Uw4")
+ 	(unspec:SVE_FULLx4
+ 	  [(match_operand:SVE_FULLx4 1 "aligned_register_operand" "Uw4")]
+ 	  SVE2_x24_PERMUTEQ))]
+   "TARGET_STREAMING_SME2"
+   "<perm_insn>\t{%S0.q - %V0.q}, {%S1.q - %V1.q}"
+ )
+ 
+ ;; -------------------------------------------------------------------------
  ;; ---- [INT] Optional bit-permute extensions
  ;; -------------------------------------------------------------------------
  ;; Includes:
***************
*** 2442,2448 ****
  	   (match_operand:SVE_FULL_SDI 2 "register_operand" "w")
  	   (match_operand:SVE_FULL_SDI 3 "register_operand" "w")]
  	  UNSPEC_HISTCNT))]
!   "TARGET_SVE2"
    "histcnt\t%0.<Vetype>, %1/z, %2.<Vetype>, %3.<Vetype>"
  )
  
--- 3314,3320 ----
  	   (match_operand:SVE_FULL_SDI 2 "register_operand" "w")
  	   (match_operand:SVE_FULL_SDI 3 "register_operand" "w")]
  	  UNSPEC_HISTCNT))]
!   "TARGET_SVE2 && TARGET_NON_STREAMING"
    "histcnt\t%0.<Vetype>, %1/z, %2.<Vetype>, %3.<Vetype>"
  )
  
***************
*** 2452,2458 ****
  	  [(match_operand:VNx16QI_ONLY 1 "register_operand" "w")
  	   (match_operand:VNx16QI_ONLY 2 "register_operand" "w")]
  	  UNSPEC_HISTSEG))]
!   "TARGET_SVE2"
    "histseg\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>"
  )
  
--- 3324,3330 ----
  	  [(match_operand:VNx16QI_ONLY 1 "register_operand" "w")
  	   (match_operand:VNx16QI_ONLY 2 "register_operand" "w")]
  	  UNSPEC_HISTSEG))]
!   "TARGET_SVE2 && TARGET_NON_STREAMING"
    "histseg\t%0.<Vetype>, %1.<Vetype>, %2.<Vetype>"
  )
  
***************
*** 2476,2482 ****
  	     SVE2_MATCH)]
  	  UNSPEC_PRED_Z))
     (clobber (reg:CC_NZC CC_REGNUM))]
!   "TARGET_SVE2"
    "<sve_int_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, %4.<Vetype>"
  )
  
--- 3348,3354 ----
  	     SVE2_MATCH)]
  	  UNSPEC_PRED_Z))
     (clobber (reg:CC_NZC CC_REGNUM))]
!   "TARGET_SVE2 && TARGET_NON_STREAMING"
    "<sve_int_op>\t%0.<Vetype>, %1/z, %3.<Vetype>, %4.<Vetype>"
  )
  
***************
*** 2507,2512 ****
--- 3379,3385 ----
  	     SVE2_MATCH)]
  	  UNSPEC_PRED_Z))]
    "TARGET_SVE2
+    && TARGET_NON_STREAMING
     && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])"
    "<sve_int_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, %3.<Vetype>"
    "&& !rtx_equal_p (operands[4], operands[6])"
***************
*** 2534,2539 ****
--- 3407,3413 ----
  	  UNSPEC_PTEST))
     (clobber (match_scratch:<VPRED> 0 "=Upa"))]
    "TARGET_SVE2
+    && TARGET_NON_STREAMING
     && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])"
    "<sve_int_op>\t%0.<Vetype>, %1/z, %2.<Vetype>, %3.<Vetype>"
    "&& !rtx_equal_p (operands[4], operands[6])"
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-sys-regs.def gcc-14.1.0/gcc/config/aarch64/aarch64-sys-regs.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-sys-regs.def	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64-sys-regs.def	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1162 ----
+ /* aarch64-system-regs.def -- AArch64 opcode support.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+    Contributed by ARM Ltd.
+ 
+    This file is part of the GNU opcodes library.
+ 
+    This library is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    It is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program; see the file COPYING3.  If not,
+    see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Array of system registers and their associated arch features.
+ 
+    This file is also used by GCC.  Where necessary, any updates should
+    be made in Binutils and the updated file copied across to GCC, such
+    that the two projects are kept in sync at all times.
+ 
+    Before using #include to read this file, define a macro:
+ 
+      SYSREG (name, encoding, flags, features)
+ 
+   The NAME is the system register name, as recognized by the
+   assembler.  ENCODING provides the necessary information for the binary
+   encoding of the system register.  The FLAGS field is a bitmask of
+   relevant behavior information pertaining to the particular register.
+   For example: is it read/write-only? does it alias another register?
+   The FEATURES field maps onto ISA flags and specifies the architectural
+   feature requirements of the system register.  */
+ 
+   SYSREG ("accdata_el1",	CPENC (3,0,13,0,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("actlr_el1",		CPENC (3,0,1,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("actlr_el2",		CPENC (3,4,1,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("actlr_el3",		CPENC (3,6,1,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("afsr0_el1",		CPENC (3,0,5,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("afsr0_el12",		CPENC (3,5,5,1,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("afsr0_el2",		CPENC (3,4,5,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("afsr0_el3",		CPENC (3,6,5,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("afsr1_el1",		CPENC (3,0,5,1,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("afsr1_el12",		CPENC (3,5,5,1,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("afsr1_el2",		CPENC (3,4,5,1,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("afsr1_el3",		CPENC (3,6,5,1,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("aidr_el1",		CPENC (3,1,0,0,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("allint",		CPENC (3,0,4,3,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_8A))
+   SYSREG ("amair_el1",		CPENC (3,0,10,3,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("amair_el12",		CPENC (3,5,10,3,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("amair_el2",		CPENC (3,4,10,3,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("amair_el3",		CPENC (3,6,10,3,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("amair2_el1",		CPENC (3,0,10,3,1),	F_ARCHEXT,		AARCH64_FEATURE (AIE))
+   SYSREG ("amair2_el12",	CPENC (3,5,10,3,1),	F_ARCHEXT,		AARCH64_FEATURE (AIE))
+   SYSREG ("amair2_el2",		CPENC (3,4,10,3,1),	F_ARCHEXT,		AARCH64_FEATURE (AIE))
+   SYSREG ("amair2_el3",		CPENC (3,6,10,3,1),	F_ARCHEXT,		AARCH64_FEATURE (AIE))
+   SYSREG ("amcfgr_el0",		CPENC (3,3,13,2,1),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_4A))
+   SYSREG ("amcg1idr_el0",	CPENC (3,3,13,2,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_6A))
+   SYSREG ("amcgcr_el0",		CPENC (3,3,13,2,2),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_4A))
+   SYSREG ("amcntenclr0_el0",	CPENC (3,3,13,2,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amcntenclr1_el0",	CPENC (3,3,13,3,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amcntenset0_el0",	CPENC (3,3,13,2,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amcntenset1_el0",	CPENC (3,3,13,3,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amcr_el0",		CPENC (3,3,13,2,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr00_el0",	CPENC (3,3,13,4,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr01_el0",	CPENC (3,3,13,4,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr02_el0",	CPENC (3,3,13,4,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr03_el0",	CPENC (3,3,13,4,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr10_el0",	CPENC (3,3,13,12,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr110_el0",	CPENC (3,3,13,13,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr111_el0",	CPENC (3,3,13,13,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr112_el0",	CPENC (3,3,13,13,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr113_el0",	CPENC (3,3,13,13,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr114_el0",	CPENC (3,3,13,13,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr115_el0",	CPENC (3,3,13,13,7),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr11_el0",	CPENC (3,3,13,12,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr12_el0",	CPENC (3,3,13,12,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr13_el0",	CPENC (3,3,13,12,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr14_el0",	CPENC (3,3,13,12,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr15_el0",	CPENC (3,3,13,12,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr16_el0",	CPENC (3,3,13,12,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr17_el0",	CPENC (3,3,13,12,7),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr18_el0",	CPENC (3,3,13,13,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntr19_el0",	CPENC (3,3,13,13,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevcntvoff00_el2",	CPENC (3,4,13,8,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff010_el2",	CPENC (3,4,13,9,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff011_el2",	CPENC (3,4,13,9,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff012_el2",	CPENC (3,4,13,9,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff013_el2",	CPENC (3,4,13,9,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff014_el2",	CPENC (3,4,13,9,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff015_el2",	CPENC (3,4,13,9,7),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff01_el2",	CPENC (3,4,13,8,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff02_el2",	CPENC (3,4,13,8,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff03_el2",	CPENC (3,4,13,8,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff04_el2",	CPENC (3,4,13,8,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff05_el2",	CPENC (3,4,13,8,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff06_el2",	CPENC (3,4,13,8,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff07_el2",	CPENC (3,4,13,8,7),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff08_el2",	CPENC (3,4,13,9,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff09_el2",	CPENC (3,4,13,9,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff10_el2",	CPENC (3,4,13,10,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff110_el2",	CPENC (3,4,13,11,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff111_el2",	CPENC (3,4,13,11,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff112_el2",	CPENC (3,4,13,11,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff113_el2",	CPENC (3,4,13,11,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff114_el2",	CPENC (3,4,13,11,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff115_el2",	CPENC (3,4,13,11,7),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff11_el2",	CPENC (3,4,13,10,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff12_el2",	CPENC (3,4,13,10,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff13_el2",	CPENC (3,4,13,10,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff14_el2",	CPENC (3,4,13,10,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff15_el2",	CPENC (3,4,13,10,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff16_el2",	CPENC (3,4,13,10,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff17_el2",	CPENC (3,4,13,10,7),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff18_el2",	CPENC (3,4,13,11,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevcntvoff19_el2",	CPENC (3,4,13,11,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("amevtyper00_el0",	CPENC (3,3,13,6,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper01_el0",	CPENC (3,3,13,6,1),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper02_el0",	CPENC (3,3,13,6,2),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper03_el0",	CPENC (3,3,13,6,3),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper10_el0",	CPENC (3,3,13,14,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper110_el0",	CPENC (3,3,13,15,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper111_el0",	CPENC (3,3,13,15,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper112_el0",	CPENC (3,3,13,15,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper113_el0",	CPENC (3,3,13,15,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper114_el0",	CPENC (3,3,13,15,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper115_el0",	CPENC (3,3,13,15,7),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper11_el0",	CPENC (3,3,13,14,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper12_el0",	CPENC (3,3,13,14,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper13_el0",	CPENC (3,3,13,14,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper14_el0",	CPENC (3,3,13,14,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper15_el0",	CPENC (3,3,13,14,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper16_el0",	CPENC (3,3,13,14,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper17_el0",	CPENC (3,3,13,14,7),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper18_el0",	CPENC (3,3,13,15,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amevtyper19_el0",	CPENC (3,3,13,15,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("amuserenr_el0",	CPENC (3,3,13,2,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("apdakeyhi_el1",	CPENC (3,0,2,2,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apdakeylo_el1",	CPENC (3,0,2,2,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apdbkeyhi_el1",	CPENC (3,0,2,2,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apdbkeylo_el1",	CPENC (3,0,2,2,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apgakeyhi_el1",	CPENC (3,0,2,3,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apgakeylo_el1",	CPENC (3,0,2,3,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apiakeyhi_el1",	CPENC (3,0,2,1,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apiakeylo_el1",	CPENC (3,0,2,1,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apibkeyhi_el1",	CPENC (3,0,2,1,3),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("apibkeylo_el1",	CPENC (3,0,2,1,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_3A))
+   SYSREG ("brbcr_el1",		CPENC (2,1,9,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("brbcr_el12",		CPENC (2,5,9,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("brbcr_el2",		CPENC (2,4,9,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("brbfcr_el1",		CPENC (2,1,9,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("brbidr0_el1",	CPENC (2,1,9,2,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf0_el1",	CPENC (2,1,8,0,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf10_el1",	CPENC (2,1,8,10,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf11_el1",	CPENC (2,1,8,11,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf12_el1",	CPENC (2,1,8,12,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf13_el1",	CPENC (2,1,8,13,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf14_el1",	CPENC (2,1,8,14,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf15_el1",	CPENC (2,1,8,15,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf16_el1",	CPENC (2,1,8,0,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf17_el1",	CPENC (2,1,8,1,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf18_el1",	CPENC (2,1,8,2,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf19_el1",	CPENC (2,1,8,3,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf1_el1",	CPENC (2,1,8,1,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf20_el1",	CPENC (2,1,8,4,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf21_el1",	CPENC (2,1,8,5,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf22_el1",	CPENC (2,1,8,6,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf23_el1",	CPENC (2,1,8,7,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf24_el1",	CPENC (2,1,8,8,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf25_el1",	CPENC (2,1,8,9,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf26_el1",	CPENC (2,1,8,10,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf27_el1",	CPENC (2,1,8,11,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf28_el1",	CPENC (2,1,8,12,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf29_el1",	CPENC (2,1,8,13,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf2_el1",	CPENC (2,1,8,2,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf30_el1",	CPENC (2,1,8,14,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf31_el1",	CPENC (2,1,8,15,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf3_el1",	CPENC (2,1,8,3,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf4_el1",	CPENC (2,1,8,4,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf5_el1",	CPENC (2,1,8,5,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf6_el1",	CPENC (2,1,8,6,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf7_el1",	CPENC (2,1,8,7,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf8_el1",	CPENC (2,1,8,8,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinf9_el1",	CPENC (2,1,8,9,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbinfinj_el1",	CPENC (2,1,9,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc0_el1",	CPENC (2,1,8,0,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc10_el1",	CPENC (2,1,8,10,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc11_el1",	CPENC (2,1,8,11,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc12_el1",	CPENC (2,1,8,12,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc13_el1",	CPENC (2,1,8,13,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc14_el1",	CPENC (2,1,8,14,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc15_el1",	CPENC (2,1,8,15,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc16_el1",	CPENC (2,1,8,0,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc17_el1",	CPENC (2,1,8,1,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc18_el1",	CPENC (2,1,8,2,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc19_el1",	CPENC (2,1,8,3,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc1_el1",	CPENC (2,1,8,1,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc20_el1",	CPENC (2,1,8,4,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc21_el1",	CPENC (2,1,8,5,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc22_el1",	CPENC (2,1,8,6,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc23_el1",	CPENC (2,1,8,7,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc24_el1",	CPENC (2,1,8,8,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc25_el1",	CPENC (2,1,8,9,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc26_el1",	CPENC (2,1,8,10,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc27_el1",	CPENC (2,1,8,11,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc28_el1",	CPENC (2,1,8,12,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc29_el1",	CPENC (2,1,8,13,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc2_el1",	CPENC (2,1,8,2,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc30_el1",	CPENC (2,1,8,14,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc31_el1",	CPENC (2,1,8,15,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc3_el1",	CPENC (2,1,8,3,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc4_el1",	CPENC (2,1,8,4,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc5_el1",	CPENC (2,1,8,5,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc6_el1",	CPENC (2,1,8,6,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc7_el1",	CPENC (2,1,8,7,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc8_el1",	CPENC (2,1,8,8,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrc9_el1",	CPENC (2,1,8,9,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbsrcinj_el1",	CPENC (2,1,9,1,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt0_el1",	CPENC (2,1,8,0,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt10_el1",	CPENC (2,1,8,10,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt11_el1",	CPENC (2,1,8,11,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt12_el1",	CPENC (2,1,8,12,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt13_el1",	CPENC (2,1,8,13,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt14_el1",	CPENC (2,1,8,14,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt15_el1",	CPENC (2,1,8,15,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt16_el1",	CPENC (2,1,8,0,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt17_el1",	CPENC (2,1,8,1,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt18_el1",	CPENC (2,1,8,2,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt19_el1",	CPENC (2,1,8,3,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt1_el1",	CPENC (2,1,8,1,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt20_el1",	CPENC (2,1,8,4,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt21_el1",	CPENC (2,1,8,5,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt22_el1",	CPENC (2,1,8,6,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt23_el1",	CPENC (2,1,8,7,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt24_el1",	CPENC (2,1,8,8,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt25_el1",	CPENC (2,1,8,9,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt26_el1",	CPENC (2,1,8,10,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt27_el1",	CPENC (2,1,8,11,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt28_el1",	CPENC (2,1,8,12,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt29_el1",	CPENC (2,1,8,13,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt2_el1",	CPENC (2,1,8,2,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt30_el1",	CPENC (2,1,8,14,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt31_el1",	CPENC (2,1,8,15,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt3_el1",	CPENC (2,1,8,3,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt4_el1",	CPENC (2,1,8,4,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt5_el1",	CPENC (2,1,8,5,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt6_el1",	CPENC (2,1,8,6,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt7_el1",	CPENC (2,1,8,7,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt8_el1",	CPENC (2,1,8,8,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgt9_el1",	CPENC (2,1,8,9,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("brbtgtinj_el1",	CPENC (2,1,9,1,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("brbts_el1",		CPENC (2,1,9,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ccsidr2_el1",	CPENC (3,1,0,0,2),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_3A))
+   SYSREG ("ccsidr_el1",		CPENC (3,1,0,0,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("clidr_el1",		CPENC (3,1,0,0,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("cntfrq_el0",		CPENC (3,3,14,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cnthctl_el2",	CPENC (3,4,14,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cnthp_ctl_el2",	CPENC (3,4,14,2,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cnthp_cval_el2",	CPENC (3,4,14,2,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cnthp_tval_el2",	CPENC (3,4,14,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cnthps_ctl_el2",	CPENC (3,4,14,5,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("cnthps_cval_el2",	CPENC (3,4,14,5,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("cnthps_tval_el2",	CPENC (3,4,14,5,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("cnthv_ctl_el2",	CPENC (3,4,14,3,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cnthv_cval_el2",	CPENC (3,4,14,3,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cnthv_tval_el2",	CPENC (3,4,14,3,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cnthvs_ctl_el2",	CPENC (3,4,14,4,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("cnthvs_cval_el2",	CPENC (3,4,14,4,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("cnthvs_tval_el2",	CPENC (3,4,14,4,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("cntkctl_el1",	CPENC (3,0,14,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntkctl_el12",	CPENC (3,5,14,1,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cntp_ctl_el0",	CPENC (3,3,14,2,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntp_ctl_el02",	CPENC (3,5,14,2,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cntp_cval_el0",	CPENC (3,3,14,2,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntp_cval_el02",	CPENC (3,5,14,2,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cntp_tval_el0",	CPENC (3,3,14,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntp_tval_el02",	CPENC (3,5,14,2,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cntpct_el0",		CPENC (3,3,14,0,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("cntpctss_el0",	CPENC (3,3,14,0,5),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_6A))
+   SYSREG ("cntpoff_el2",	CPENC (3,4,14,0,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("cntps_ctl_el1",	CPENC (3,7,14,2,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntps_cval_el1",	CPENC (3,7,14,2,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntps_tval_el1",	CPENC (3,7,14,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntv_ctl_el0",	CPENC (3,3,14,3,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntv_ctl_el02",	CPENC (3,5,14,3,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cntv_cval_el0",	CPENC (3,3,14,3,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntv_cval_el02",	CPENC (3,5,14,3,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cntv_tval_el0",	CPENC (3,3,14,3,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cntv_tval_el02",	CPENC (3,5,14,3,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cntvct_el0",		CPENC (3,3,14,0,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("cntvctss_el0",	CPENC (3,3,14,0,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_6A))
+   SYSREG ("cntvoff_el2",	CPENC (3,4,14,0,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("contextidr_el1",	CPENC (3,0,13,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("contextidr_el12",	CPENC (3,5,13,0,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("contextidr_el2",	CPENC (3,4,13,0,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cpacr_el1",		CPENC (3,0,1,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cpacr_el12",		CPENC (3,5,1,0,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("cptr_el2",		CPENC (3,4,1,1,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("cptr_el3",		CPENC (3,6,1,1,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csrcr_el0",		CPENC (2,3,8,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csrcr_el1",		CPENC (2,0,8,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csrcr_el12",		CPENC (2,5,8,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csrcr_el2",		CPENC (2,4,8,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csridr_el0",		CPENC (2,3,8,0,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("csrptr_el0",		CPENC (2,3,8,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csrptr_el1",		CPENC (2,0,8,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csrptr_el12",	CPENC (2,5,8,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csrptr_el2",		CPENC (2,4,8,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("csrptridx_el0",	CPENC (2,3,8,0,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("csrptridx_el1",	CPENC (2,0,8,0,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("csrptridx_el2",	CPENC (2,4,8,0,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("csselr_el1",		CPENC (3,2,0,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ctr_el0",		CPENC (3,3,0,0,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("currentel",		CPENC (3,0,4,2,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("dacr32_el2",		CPENC (3,4,3,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("daif",		CPENC (3,3,4,2,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgauthstatus_el1",	CPENC (2,0,7,14,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr0_el1",	CPENC (2,0,0,0,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr10_el1",	CPENC (2,0,0,10,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr11_el1",	CPENC (2,0,0,11,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr12_el1",	CPENC (2,0,0,12,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr13_el1",	CPENC (2,0,0,13,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr14_el1",	CPENC (2,0,0,14,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr15_el1",	CPENC (2,0,0,15,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr1_el1",	CPENC (2,0,0,1,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr2_el1",	CPENC (2,0,0,2,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr3_el1",	CPENC (2,0,0,3,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr4_el1",	CPENC (2,0,0,4,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr5_el1",	CPENC (2,0,0,5,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr6_el1",	CPENC (2,0,0,6,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr7_el1",	CPENC (2,0,0,7,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr8_el1",	CPENC (2,0,0,8,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbcr9_el1",	CPENC (2,0,0,9,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr0_el1",	CPENC (2,0,0,0,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr10_el1",	CPENC (2,0,0,10,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr11_el1",	CPENC (2,0,0,11,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr12_el1",	CPENC (2,0,0,12,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr13_el1",	CPENC (2,0,0,13,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr14_el1",	CPENC (2,0,0,14,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr15_el1",	CPENC (2,0,0,15,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr1_el1",	CPENC (2,0,0,1,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr2_el1",	CPENC (2,0,0,2,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr3_el1",	CPENC (2,0,0,3,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr4_el1",	CPENC (2,0,0,4,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr5_el1",	CPENC (2,0,0,5,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr6_el1",	CPENC (2,0,0,6,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr7_el1",	CPENC (2,0,0,7,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr8_el1",	CPENC (2,0,0,8,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgbvr9_el1",	CPENC (2,0,0,9,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgclaimclr_el1",	CPENC (2,0,7,9,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgclaimset_el1",	CPENC (2,0,7,8,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgdtr_el0",		CPENC (2,3,0,4,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgdtrrx_el0",	CPENC (2,3,0,5,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("dbgdtrtx_el0",	CPENC (2,3,0,5,0),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("dbgprcr_el1",	CPENC (2,0,1,4,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgvcr32_el2",	CPENC (2,4,0,7,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr0_el1",	CPENC (2,0,0,0,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr10_el1",	CPENC (2,0,0,10,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr11_el1",	CPENC (2,0,0,11,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr12_el1",	CPENC (2,0,0,12,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr13_el1",	CPENC (2,0,0,13,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr14_el1",	CPENC (2,0,0,14,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr15_el1",	CPENC (2,0,0,15,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr1_el1",	CPENC (2,0,0,1,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr2_el1",	CPENC (2,0,0,2,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr3_el1",	CPENC (2,0,0,3,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr4_el1",	CPENC (2,0,0,4,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr5_el1",	CPENC (2,0,0,5,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr6_el1",	CPENC (2,0,0,6,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr7_el1",	CPENC (2,0,0,7,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr8_el1",	CPENC (2,0,0,8,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwcr9_el1",	CPENC (2,0,0,9,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr0_el1",	CPENC (2,0,0,0,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr10_el1",	CPENC (2,0,0,10,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr11_el1",	CPENC (2,0,0,11,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr12_el1",	CPENC (2,0,0,12,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr13_el1",	CPENC (2,0,0,13,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr14_el1",	CPENC (2,0,0,14,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr15_el1",	CPENC (2,0,0,15,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr1_el1",	CPENC (2,0,0,1,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr2_el1",	CPENC (2,0,0,2,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr3_el1",	CPENC (2,0,0,3,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr4_el1",	CPENC (2,0,0,4,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr5_el1",	CPENC (2,0,0,5,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr6_el1",	CPENC (2,0,0,6,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr7_el1",	CPENC (2,0,0,7,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr8_el1",	CPENC (2,0,0,8,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dbgwvr9_el1",	CPENC (2,0,0,9,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dczid_el0",		CPENC (3,3,0,0,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("disr_el1",		CPENC (3,0,12,1,1),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("dit",		CPENC (3,3,4,2,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("dlr_el0",		CPENC (3,3,4,5,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("dspsr_el0",		CPENC (3,3,4,5,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("elr_el1",		CPENC (3,0,4,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("elr_el12",		CPENC (3,5,4,0,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("elr_el2",		CPENC (3,4,4,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("elr_el3",		CPENC (3,6,4,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("erridr_el1",		CPENC (3,0,5,3,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (RAS))
+   SYSREG ("errselr_el1",	CPENC (3,0,5,3,1),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxaddr_el1",	CPENC (3,0,5,4,3),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxctlr_el1",	CPENC (3,0,5,4,1),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxfr_el1",		CPENC (3,0,5,4,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (RAS))
+   SYSREG ("erxgsr_el1",		CPENC (3,0,5,3,2),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (RASv2))
+   SYSREG ("erxmisc0_el1",	CPENC (3,0,5,5,0),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxmisc1_el1",	CPENC (3,0,5,5,1),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxmisc2_el1",	CPENC (3,0,5,5,2),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxmisc3_el1",	CPENC (3,0,5,5,3),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxpfgcdn_el1",	CPENC (3,0,5,4,6),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxpfgctl_el1",	CPENC (3,0,5,4,5),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("erxpfgf_el1",	CPENC (3,0,5,4,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (RAS))
+   SYSREG ("erxstatus_el1",	CPENC (3,0,5,4,2),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("esr_el1",		CPENC (3,0,5,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("esr_el12",		CPENC (3,5,5,2,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("esr_el2",		CPENC (3,4,5,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("esr_el3",		CPENC (3,6,5,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("far_el1",		CPENC (3,0,6,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("far_el12",		CPENC (3,5,6,0,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("far_el2",		CPENC (3,4,6,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("far_el3",		CPENC (3,6,6,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("fpcr",		CPENC (3,3,4,4,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("fpexc32_el2",	CPENC (3,4,5,3,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("fpsr",		CPENC (3,3,4,4,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("gcspr_el0",		CPENC (3,3,2,5,1),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcspr_el1",		CPENC (3,0,2,5,1),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcspr_el2",		CPENC (3,4,2,5,1),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcspr_el12",		CPENC (3,5,2,5,1),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcspr_el3",		CPENC (3,6,2,5,1),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcscre0_el1",	CPENC (3,0,2,5,2),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcscr_el1",		CPENC (3,0,2,5,0),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcscr_el2",		CPENC (3,4,2,5,0),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcscr_el12",		CPENC (3,5,2,5,0),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcscr_el3",		CPENC (3,6,2,5,0),    	F_ARCHEXT,		AARCH64_FEATURE (GCS))
+   SYSREG ("gcr_el1",		CPENC (3,0,1,0,6),	F_ARCHEXT,		AARCH64_FEATURE (MEMTAG))
+   SYSREG ("gmid_el1",		CPENC (3,1,0,0,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (MEMTAG))
+   SYSREG ("gpccr_el3",		CPENC (3,6,2,1,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("gptbr_el3",		CPENC (3,6,2,1,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("hacr_el2",		CPENC (3,4,1,1,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("hafgrtr_el2",	CPENC (3,4,3,1,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("hcr_el2",		CPENC (3,4,1,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("hcrx_el2",		CPENC (3,4,1,2,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_7A))
+   SYSREG ("hdfgrtr_el2",	CPENC (3,4,3,1,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("hdfgrtr2_el2",	CPENC (3,4,3,1,0),	F_ARCHEXT,		AARCH64_FEATURE (FGT2))
+   SYSREG ("hdfgwtr_el2",	CPENC (3,4,3,1,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("hdfgwtr2_el2",	CPENC (3,4,3,1,1),	F_ARCHEXT,		AARCH64_FEATURE (FGT2))
+   SYSREG ("hfgitr_el2",		CPENC (3,4,1,1,6),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("hfgrtr_el2",		CPENC (3,4,1,1,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("hfgrtr2_el2",	CPENC (3,4,3,1,2),	F_ARCHEXT,		AARCH64_FEATURE (FGT2))
+   SYSREG ("hfgwtr_el2",		CPENC (3,4,1,1,5),	F_ARCHEXT,		AARCH64_FEATURE (V8_6A))
+   SYSREG ("hfgwtr2_el2",	CPENC (3,4,3,1,3),	F_ARCHEXT,		AARCH64_FEATURE (FGT2))
+   SYSREG ("hpfar_el2",		CPENC (3,4,6,0,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("hstr_el2",		CPENC (3,4,1,1,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ap0r0_el1",	CPENC (3,0,12,8,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ap0r1_el1",	CPENC (3,0,12,8,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ap0r2_el1",	CPENC (3,0,12,8,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ap0r3_el1",	CPENC (3,0,12,8,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ap1r0_el1",	CPENC (3,0,12,9,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ap1r1_el1",	CPENC (3,0,12,9,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ap1r2_el1",	CPENC (3,0,12,9,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ap1r3_el1",	CPENC (3,0,12,9,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_asgi1r_el1",	CPENC (3,0,12,11,6),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_bpr0_el1",	CPENC (3,0,12,8,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_bpr1_el1",	CPENC (3,0,12,12,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ctlr_el1",	CPENC (3,0,12,12,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_ctlr_el3",	CPENC (3,6,12,12,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_dir_el1",	CPENC (3,0,12,11,1),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_eoir0_el1",	CPENC (3,0,12,8,1),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_eoir1_el1",	CPENC (3,0,12,12,1),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_hppir0_el1",	CPENC (3,0,12,8,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_hppir1_el1",	CPENC (3,0,12,12,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_iar0_el1",	CPENC (3,0,12,8,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_iar1_el1",	CPENC (3,0,12,12,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_igrpen0_el1",	CPENC (3,0,12,12,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_igrpen1_el1",	CPENC (3,0,12,12,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_igrpen1_el3",	CPENC (3,6,12,12,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_nmiar1_el1",	CPENC (3,0,12,9,5),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_8A))
+   SYSREG ("icc_pmr_el1",	CPENC (3,0,4,6,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_rpr_el1",	CPENC (3,0,12,11,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_sgi0r_el1",	CPENC (3,0,12,11,7),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_sgi1r_el1",	CPENC (3,0,12,11,5),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("icc_sre_el1",	CPENC (3,0,12,12,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_sre_el2",	CPENC (3,4,12,9,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("icc_sre_el3",	CPENC (3,6,12,12,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_ap0r0_el2",	CPENC (3,4,12,8,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_ap0r1_el2",	CPENC (3,4,12,8,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_ap0r2_el2",	CPENC (3,4,12,8,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_ap0r3_el2",	CPENC (3,4,12,8,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_ap1r0_el2",	CPENC (3,4,12,9,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_ap1r1_el2",	CPENC (3,4,12,9,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_ap1r2_el2",	CPENC (3,4,12,9,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_ap1r3_el2",	CPENC (3,4,12,9,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_eisr_el2",	CPENC (3,4,12,11,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("ich_elrsr_el2",	CPENC (3,4,12,11,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("ich_hcr_el2",	CPENC (3,4,12,11,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr0_el2",	CPENC (3,4,12,12,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr10_el2",	CPENC (3,4,12,13,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr11_el2",	CPENC (3,4,12,13,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr12_el2",	CPENC (3,4,12,13,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr13_el2",	CPENC (3,4,12,13,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr14_el2",	CPENC (3,4,12,13,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr15_el2",	CPENC (3,4,12,13,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr1_el2",	CPENC (3,4,12,12,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr2_el2",	CPENC (3,4,12,12,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr3_el2",	CPENC (3,4,12,12,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr4_el2",	CPENC (3,4,12,12,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr5_el2",	CPENC (3,4,12,12,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr6_el2",	CPENC (3,4,12,12,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr7_el2",	CPENC (3,4,12,12,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr8_el2",	CPENC (3,4,12,13,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_lr9_el2",	CPENC (3,4,12,13,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_misr_el2",	CPENC (3,4,12,11,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("ich_vmcr_el2",	CPENC (3,4,12,11,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ich_vtr_el2",	CPENC (3,4,12,11,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64afr0_el1",	CPENC (3,0,0,5,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64afr1_el1",	CPENC (3,0,0,5,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64dfr0_el1",	CPENC (3,0,0,5,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64dfr1_el1",	CPENC (3,0,0,5,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64isar0_el1",	CPENC (3,0,0,6,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64isar1_el1",	CPENC (3,0,0,6,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64isar2_el1",	CPENC (3,0,0,6,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64isar3_el1",	CPENC (3,0,0,6,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64mmfr0_el1",	CPENC (3,0,0,7,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64mmfr1_el1",	CPENC (3,0,0,7,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64mmfr2_el1",	CPENC (3,0,0,7,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64mmfr3_el1",	CPENC (3,0,0,7,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64mmfr4_el1",	CPENC (3,0,0,7,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64pfr0_el1",	CPENC (3,0,0,4,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64pfr1_el1",	CPENC (3,0,0,4,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_aa64smfr0_el1",	CPENC (3,0,0,4,5),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SME))
+   SYSREG ("id_aa64zfr0_el1",	CPENC (3,0,0,4,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SVE))
+   SYSREG ("id_afr0_el1",	CPENC (3,0,0,1,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_dfr0_el1",	CPENC (3,0,0,1,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_dfr1_el1",	CPENC (3,0,0,3,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_isar0_el1",	CPENC (3,0,0,2,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_isar1_el1",	CPENC (3,0,0,2,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_isar2_el1",	CPENC (3,0,0,2,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_isar3_el1",	CPENC (3,0,0,2,3),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_isar4_el1",	CPENC (3,0,0,2,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_isar5_el1",	CPENC (3,0,0,2,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_isar6_el1",	CPENC (3,0,0,2,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_mmfr0_el1",	CPENC (3,0,0,1,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_mmfr1_el1",	CPENC (3,0,0,1,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_mmfr2_el1",	CPENC (3,0,0,1,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_mmfr3_el1",	CPENC (3,0,0,1,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_mmfr4_el1",	CPENC (3,0,0,2,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_mmfr5_el1",	CPENC (3,0,0,3,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_pfr0_el1",	CPENC (3,0,0,1,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_pfr1_el1",	CPENC (3,0,0,1,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("id_pfr2_el1",	CPENC (3,0,0,3,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (ID_PFR2))
+   SYSREG ("ifsr32_el2",		CPENC (3,4,5,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("isr_el1",		CPENC (3,0,12,1,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("lorc_el1",		CPENC (3,0,10,4,3),	F_ARCHEXT,		AARCH64_FEATURE (LOR))
+   SYSREG ("lorea_el1",		CPENC (3,0,10,4,1),	F_ARCHEXT,		AARCH64_FEATURE (LOR))
+   SYSREG ("lorid_el1",		CPENC (3,0,10,4,7),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (LOR))
+   SYSREG ("lorn_el1",		CPENC (3,0,10,4,2),	F_ARCHEXT,		AARCH64_FEATURE (LOR))
+   SYSREG ("lorsa_el1",		CPENC (3,0,10,4,0),	F_ARCHEXT,		AARCH64_FEATURE (LOR))
+   SYSREG ("mair_el1",		CPENC (3,0,10,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mair_el12",		CPENC (3,5,10,2,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("mair_el2",		CPENC (3,4,10,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mair_el3",		CPENC (3,6,10,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mair2_el1",		CPENC (3,0,10,2,1),	F_ARCHEXT,		AARCH64_FEATURE (AIE))
+   SYSREG ("mair2_el12",		CPENC (3,5,10,2,1),	F_ARCHEXT,		AARCH64_FEATURE (AIE))
+   SYSREG ("mair2_el2",		CPENC (3,4,10,1,1),	F_ARCHEXT,		AARCH64_FEATURE (AIE))
+   SYSREG ("mair2_el3",		CPENC (3,6,10,1,1),	F_ARCHEXT,		AARCH64_FEATURE (AIE))
+   SYSREG ("mdccint_el1",	CPENC (2,0,0,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mdccsr_el0",		CPENC (2,3,0,1,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("mdcr_el2",		CPENC (3,4,1,1,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mdcr_el3",		CPENC (3,6,1,3,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mdrar_el1",		CPENC (2,0,1,0,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("mdscr_el1",		CPENC (2,0,0,2,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mdselr_el1",		CPENC (2,0,0,4,2),	F_ARCHEXT,		AARCH64_FEATURE (DEBUGv8p9))
+   SYSREG ("mecid_a0_el2",	CPENC (3,4,10,8,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mecid_a1_el2",	CPENC (3,4,10,8,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mecid_p0_el2",	CPENC (3,4,10,8,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mecid_p1_el2",	CPENC (3,4,10,8,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mecid_rl_a_el3",	CPENC (3,6,10,10,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mecidr_el2",		CPENC (3,4,10,8,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("mfar_el3",		CPENC (3,6,6,0,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("midr_el1",		CPENC (3,0,0,0,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("mpam0_el1",		CPENC (3,0,10,5,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpam1_el1",		CPENC (3,0,10,5,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpam1_el12",		CPENC (3,5,10,5,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpam2_el2",		CPENC (3,4,10,5,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpam3_el3",		CPENC (3,6,10,5,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamhcr_el2",	CPENC (3,4,10,4,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamidr_el1",	CPENC (3,0,10,4,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("mpamsm_el1",		CPENC (3,0,10,5,3),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("mpamvpm0_el2",	CPENC (3,4,10,6,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamvpm1_el2",	CPENC (3,4,10,6,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamvpm2_el2",	CPENC (3,4,10,6,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamvpm3_el2",	CPENC (3,4,10,6,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamvpm4_el2",	CPENC (3,4,10,6,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamvpm5_el2",	CPENC (3,4,10,6,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamvpm6_el2",	CPENC (3,4,10,6,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamvpm7_el2",	CPENC (3,4,10,6,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpamvpmv_el2",	CPENC (3,4,10,4,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("mpidr_el1",		CPENC (3,0,0,0,5),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("mpuir_el1",		CPENC (3,0,0,0,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8R))
+   SYSREG ("mpuir_el2",		CPENC (3,4,0,0,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8R))
+   SYSREG ("mvfr0_el1",		CPENC (3,0,0,3,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("mvfr1_el1",		CPENC (3,0,0,3,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("mvfr2_el1",		CPENC (3,0,0,3,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("nzcv",		CPENC (3,3,4,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("osdlr_el1",		CPENC (2,0,1,3,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("osdtrrx_el1",	CPENC (2,0,0,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("osdtrtx_el1",	CPENC (2,0,0,3,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("oseccr_el1",		CPENC (2,0,0,6,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("oslar_el1",		CPENC (2,0,1,0,4),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("oslsr_el1",		CPENC (2,0,1,1,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("pir_el1",		CPENC (3,0,10,2,3),	F_ARCHEXT,		AARCH64_FEATURE (S1PIE))
+   SYSREG ("pir_el12",		CPENC (3,5,10,2,3),	F_ARCHEXT,		AARCH64_FEATURE (S1PIE))
+   SYSREG ("pir_el2",		CPENC (3,4,10,2,3),	F_ARCHEXT,		AARCH64_FEATURE (S1PIE))
+   SYSREG ("pir_el3",		CPENC (3,6,10,2,3),	F_ARCHEXT,		AARCH64_FEATURE (S1PIE))
+   SYSREG ("pire0_el1",		CPENC (3,0,10,2,2),	F_ARCHEXT,		AARCH64_FEATURE (S1PIE))
+   SYSREG ("pire0_el12",		CPENC (3,5,10,2,2),	F_ARCHEXT,		AARCH64_FEATURE (S1PIE))
+   SYSREG ("pire0_el2",		CPENC (3,4,10,2,2),	F_ARCHEXT,		AARCH64_FEATURE (S1PIE))
+   SYSREG ("pan",		CPENC (3,0,4,2,3),	F_ARCHEXT,		AARCH64_FEATURE (PAN))
+   SYSREG ("par_el1",		CPENC (3,0,7,4,0),	F_REG_128,		AARCH64_NO_FEATURES)
+   SYSREG ("pfar_el1",		CPENC (3,0,6,0,5),      F_ARCHEXT,              AARCH64_FEATURE (PFAR))
+   SYSREG ("pfar_el12",		CPENC (3,5,6,0,5),      F_ARCHEXT,              AARCH64_FEATURE (PFAR))
+   SYSREG ("pfar_el2",		CPENC (3,4,6,0,5),      F_ARCHEXT,              AARCH64_FEATURE (PFAR))
+   SYSREG ("pmbidr_el1",		CPENC (3,0,9,10,7),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmblimitr_el1",	CPENC (3,0,9,10,0),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmbptr_el1",		CPENC (3,0,9,10,1),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmbsr_el1",		CPENC (3,0,9,10,3),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmccfiltr_el0",	CPENC (3,3,14,15,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmccntr_el0",	CPENC (3,3,9,13,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmccntsvr_el1",	CPENC (2,0,14,11,7),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmceid0_el0",	CPENC (3,3,9,12,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("pmceid1_el0",	CPENC (3,3,9,12,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("pmcntenclr_el0",	CPENC (3,3,9,12,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmcntenset_el0",	CPENC (3,3,9,12,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmcr_el0",		CPENC (3,3,9,12,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmecr_el1",		CPENC (3,0,9,14,5),	F_ARCHEXT,		AARCH64_FEATURE (SEBEP))
+   SYSREG ("pmevcntr0_el0",	CPENC (3,3,14,8,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr10_el0",	CPENC (3,3,14,9,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr11_el0",	CPENC (3,3,14,9,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr12_el0",	CPENC (3,3,14,9,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr13_el0",	CPENC (3,3,14,9,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr14_el0",	CPENC (3,3,14,9,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr15_el0",	CPENC (3,3,14,9,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr16_el0",	CPENC (3,3,14,10,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr17_el0",	CPENC (3,3,14,10,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr18_el0",	CPENC (3,3,14,10,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr19_el0",	CPENC (3,3,14,10,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr1_el0",	CPENC (3,3,14,8,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr20_el0",	CPENC (3,3,14,10,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr21_el0",	CPENC (3,3,14,10,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr22_el0",	CPENC (3,3,14,10,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr23_el0",	CPENC (3,3,14,10,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr24_el0",	CPENC (3,3,14,11,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr25_el0",	CPENC (3,3,14,11,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr26_el0",	CPENC (3,3,14,11,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr27_el0",	CPENC (3,3,14,11,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr28_el0",	CPENC (3,3,14,11,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr29_el0",	CPENC (3,3,14,11,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr2_el0",	CPENC (3,3,14,8,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr30_el0",	CPENC (3,3,14,11,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr3_el0",	CPENC (3,3,14,8,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr4_el0",	CPENC (3,3,14,8,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr5_el0",	CPENC (3,3,14,8,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr6_el0",	CPENC (3,3,14,8,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr7_el0",	CPENC (3,3,14,8,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr8_el0",	CPENC (3,3,14,9,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntr9_el0",	CPENC (3,3,14,9,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevcntsvr0_el1",	CPENC (2,0,14,8,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr10_el1",	CPENC (2,0,14,9,2),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr11_el1",	CPENC (2,0,14,9,3),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr12_el1",	CPENC (2,0,14,9,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr13_el1",	CPENC (2,0,14,9,5),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr14_el1",	CPENC (2,0,14,9,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr15_el1",	CPENC (2,0,14,9,7),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr16_el1",	CPENC (2,0,14,10,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr17_el1",	CPENC (2,0,14,10,1),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr18_el1",	CPENC (2,0,14,10,2),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr19_el1",	CPENC (2,0,14,10,3),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr1_el1",	CPENC (2,0,14,8,1),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr20_el1",	CPENC (2,0,14,10,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr21_el1",	CPENC (2,0,14,10,5),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr22_el1",	CPENC (2,0,14,10,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr23_el1",	CPENC (2,0,14,10,7),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr24_el1",	CPENC (2,0,14,11,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr25_el1",	CPENC (2,0,14,11,1),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr26_el1",	CPENC (2,0,14,11,2),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr27_el1",	CPENC (2,0,14,11,3),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr28_el1",	CPENC (2,0,14,11,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr29_el1",	CPENC (2,0,14,11,5),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr2_el1",	CPENC (2,0,14,8,2),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr30_el1",	CPENC (2,0,14,11,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr3_el1",	CPENC (2,0,14,8,3),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr4_el1",	CPENC (2,0,14,8,4),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr5_el1",	CPENC (2,0,14,8,5),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr6_el1",	CPENC (2,0,14,8,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr7_el1",	CPENC (2,0,14,8,7),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr8_el1",	CPENC (2,0,14,9,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevcntsvr9_el1",	CPENC (2,0,14,9,1),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmevtyper0_el0",	CPENC (3,3,14,12,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper10_el0",	CPENC (3,3,14,13,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper11_el0",	CPENC (3,3,14,13,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper12_el0",	CPENC (3,3,14,13,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper13_el0",	CPENC (3,3,14,13,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper14_el0",	CPENC (3,3,14,13,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper15_el0",	CPENC (3,3,14,13,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper16_el0",	CPENC (3,3,14,14,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper17_el0",	CPENC (3,3,14,14,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper18_el0",	CPENC (3,3,14,14,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper19_el0",	CPENC (3,3,14,14,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper1_el0",	CPENC (3,3,14,12,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper20_el0",	CPENC (3,3,14,14,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper21_el0",	CPENC (3,3,14,14,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper22_el0",	CPENC (3,3,14,14,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper23_el0",	CPENC (3,3,14,14,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper24_el0",	CPENC (3,3,14,15,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper25_el0",	CPENC (3,3,14,15,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper26_el0",	CPENC (3,3,14,15,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper27_el0",	CPENC (3,3,14,15,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper28_el0",	CPENC (3,3,14,15,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper29_el0",	CPENC (3,3,14,15,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper2_el0",	CPENC (3,3,14,12,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper30_el0",	CPENC (3,3,14,15,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper3_el0",	CPENC (3,3,14,12,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper4_el0",	CPENC (3,3,14,12,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper5_el0",	CPENC (3,3,14,12,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper6_el0",	CPENC (3,3,14,12,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper7_el0",	CPENC (3,3,14,12,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper8_el0",	CPENC (3,3,14,13,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmevtyper9_el0",	CPENC (3,3,14,13,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmiar_el1",		CPENC (3,0,9,14,7),	F_ARCHEXT,		AARCH64_FEATURE (SEBEP))
+   SYSREG ("pmicfiltr_el0",	CPENC (3,3,9,6,0),	F_ARCHEXT,		AARCH64_FEATURE (PMUv3_ICNTR))
+   SYSREG ("pmicntr_el0",	CPENC (3,3,9,4,0),	F_ARCHEXT,		AARCH64_FEATURE (PMUv3_ICNTR))
+   SYSREG ("pmicntsvr_el1",	CPENC (2,0,14,12,0),	F_REG_READ|F_ARCHEXT,   AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmintenclr_el1",	CPENC (3,0,9,14,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmintenset_el1",	CPENC (3,0,9,14,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmmir_el1",		CPENC (3,0,9,14,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (V8_4A))
+   SYSREG ("pmovsclr_el0",	CPENC (3,3,9,12,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmovsset_el0",	CPENC (3,3,9,14,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmscr_el1",		CPENC (3,0,9,9,0),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmscr_el12",		CPENC (3,5,9,9,0),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmscr_el2",		CPENC (3,4,9,9,0),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmsdsfr_el1",	CPENC (3,4,9,10,4),	F_ARCHEXT,		AARCH64_FEATURE (SPE_FDS))
+   SYSREG ("pmselr_el0",		CPENC (3,3,9,12,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmsevfr_el1",	CPENC (3,0,9,9,5),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmsfcr_el1",		CPENC (3,0,9,9,4),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmsicr_el1",		CPENC (3,0,9,9,2),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmsidr_el1",		CPENC (3,0,9,9,7),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmsirr_el1",		CPENC (3,0,9,9,3),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmslatfr_el1",	CPENC (3,0,9,9,6),	F_ARCHEXT,		AARCH64_FEATURE (PROFILE))
+   SYSREG ("pmsnevfr_el1",	CPENC (3,0,9,9,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_7A))
+   SYSREG ("pmsscr_el1",		CPENC (3,0,9,13,3),	F_ARCHEXT,		AARCH64_FEATURE (PMUv3_SS))
+   SYSREG ("pmswinc_el0",	CPENC (3,3,9,12,4),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("pmuacr_el1",		CPENC (3,0,9,14,4),	F_ARCHEXT,		AARCH64_FEATURE (PMUv3p9))
+   SYSREG ("pmuserenr_el0",	CPENC (3,3,9,14,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmxevcntr_el0",	CPENC (3,3,9,13,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmxevtyper_el0",	CPENC (3,3,9,13,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("pmzr_el0",		CPENC (3,3,9,13,4),	F_REG_WRITE|F_ARCHEXT,	AARCH64_FEATURE (PMUv3_ICNTR))
+   SYSREG ("por_el0",		CPENC (3,3,10,2,4),	F_ARCHEXT,		AARCH64_FEATURE (S1POE))
+   SYSREG ("por_el1",		CPENC (3,0,10,2,4),	F_ARCHEXT,		AARCH64_FEATURE (S1POE))
+   SYSREG ("por_el12",		CPENC (3,5,10,2,4),	F_ARCHEXT,		AARCH64_FEATURE (S1POE))
+   SYSREG ("por_el2",		CPENC (3,4,10,2,4),	F_ARCHEXT,		AARCH64_FEATURE (S1POE))
+   SYSREG ("por_el3",		CPENC (3,6,10,2,4),	F_ARCHEXT,		AARCH64_FEATURE (S1POE))
+   SYSREG ("prbar10_el1",	CPENC (3,0,6,13,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar10_el2",	CPENC (3,4,6,13,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar11_el1",	CPENC (3,0,6,13,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar11_el2",	CPENC (3,4,6,13,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar12_el1",	CPENC (3,0,6,14,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar12_el2",	CPENC (3,4,6,14,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar13_el1",	CPENC (3,0,6,14,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar13_el2",	CPENC (3,4,6,14,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar14_el1",	CPENC (3,0,6,15,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar14_el2",	CPENC (3,4,6,15,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar15_el1",	CPENC (3,0,6,15,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar15_el2",	CPENC (3,4,6,15,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar1_el1",		CPENC (3,0,6,8,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar1_el2",		CPENC (3,4,6,8,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar2_el1",		CPENC (3,0,6,9,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar2_el2",		CPENC (3,4,6,9,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar3_el1",		CPENC (3,0,6,9,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar3_el2",		CPENC (3,4,6,9,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar4_el1",		CPENC (3,0,6,10,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar4_el2",		CPENC (3,4,6,10,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar5_el1",		CPENC (3,0,6,10,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar5_el2",		CPENC (3,4,6,10,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar6_el1",		CPENC (3,0,6,11,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar6_el2",		CPENC (3,4,6,11,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar7_el1",		CPENC (3,0,6,11,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar7_el2",		CPENC (3,4,6,11,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar8_el1",		CPENC (3,0,6,12,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar8_el2",		CPENC (3,4,6,12,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar9_el1",		CPENC (3,0,6,12,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar9_el2",		CPENC (3,4,6,12,4),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar_el1",		CPENC (3,0,6,8,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prbar_el2",		CPENC (3,4,6,8,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prenr_el1",		CPENC (3,0,6,1,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prenr_el2",		CPENC (3,4,6,1,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar10_el1",	CPENC (3,0,6,13,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar10_el2",	CPENC (3,4,6,13,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar11_el1",	CPENC (3,0,6,13,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar11_el2",	CPENC (3,4,6,13,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar12_el1",	CPENC (3,0,6,14,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar12_el2",	CPENC (3,4,6,14,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar13_el1",	CPENC (3,0,6,14,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar13_el2",	CPENC (3,4,6,14,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar14_el1",	CPENC (3,0,6,15,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar14_el2",	CPENC (3,4,6,15,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar15_el1",	CPENC (3,0,6,15,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar15_el2",	CPENC (3,4,6,15,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar1_el1",		CPENC (3,0,6,8,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar1_el2",		CPENC (3,4,6,8,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar2_el1",		CPENC (3,0,6,9,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar2_el2",		CPENC (3,4,6,9,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar3_el1",		CPENC (3,0,6,9,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar3_el2",		CPENC (3,4,6,9,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar4_el1",		CPENC (3,0,6,10,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar4_el2",		CPENC (3,4,6,10,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar5_el1",		CPENC (3,0,6,10,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar5_el2",		CPENC (3,4,6,10,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar6_el1",		CPENC (3,0,6,11,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar6_el2",		CPENC (3,4,6,11,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar7_el1",		CPENC (3,0,6,11,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar7_el2",		CPENC (3,4,6,11,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar8_el1",		CPENC (3,0,6,12,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar8_el2",		CPENC (3,4,6,12,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar9_el1",		CPENC (3,0,6,12,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar9_el2",		CPENC (3,4,6,12,5),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar_el1",		CPENC (3,0,6,8,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prlar_el2",		CPENC (3,4,6,8,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prselr_el1",		CPENC (3,0,6,2,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("prselr_el2",		CPENC (3,4,6,2,1),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("rcwmask_el1",	CPENC (3,0,13,0,6),	F_ARCHEXT|F_REG_128,	AARCH64_FEATURE (THE))
+   SYSREG ("rcwsmask_el1",	CPENC (3,0,13,0,3),	F_ARCHEXT|F_REG_128,	AARCH64_FEATURE (THE))
+   SYSREG ("revidr_el1",		CPENC (3,0,0,0,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("rgsr_el1",		CPENC (3,0,1,0,5),	F_ARCHEXT,		AARCH64_FEATURE (MEMTAG))
+   SYSREG ("rmr_el1",		CPENC (3,0,12,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("rmr_el2",		CPENC (3,4,12,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("rmr_el3",		CPENC (3,6,12,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("rndr",		CPENC (3,3,2,4,0),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (RNG))
+   SYSREG ("rndrrs",		CPENC (3,3,2,4,1),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (RNG))
+   SYSREG ("rvbar_el1",		CPENC (3,0,12,0,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("rvbar_el2",		CPENC (3,4,12,0,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("rvbar_el3",		CPENC (3,6,12,0,1),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("scr_el3",		CPENC (3,6,1,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("sctlr_el1",		CPENC (3,0,1,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("sctlr_el12",		CPENC (3,5,1,0,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("sctlr_el2",		CPENC (3,4,1,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("sctlr_el3",		CPENC (3,6,1,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("sctlr2_el1",		CPENC (3,0,1,0,3),	F_ARCHEXT,		AARCH64_FEATURE (SCTLR2))
+   SYSREG ("sctlr2_el12",	CPENC (3,5,1,0,3),	F_ARCHEXT,		AARCH64_FEATURE (SCTLR2))
+   SYSREG ("sctlr2_el2",		CPENC (3,4,1,0,3),	F_ARCHEXT,		AARCH64_FEATURE (SCTLR2))
+   SYSREG ("sctlr2_el3",		CPENC (3,6,1,0,3),	F_ARCHEXT,		AARCH64_FEATURE (SCTLR2))
+   SYSREG ("scxtnum_el0",	CPENC (3,3,13,0,7),	F_ARCHEXT,		AARCH64_FEATURE (SCXTNUM))
+   SYSREG ("scxtnum_el1",	CPENC (3,0,13,0,7),	F_ARCHEXT,		AARCH64_FEATURE (SCXTNUM))
+   SYSREG ("scxtnum_el12",	CPENC (3,5,13,0,7),	F_ARCHEXT,		AARCH64_FEATURE (SCXTNUM))
+   SYSREG ("scxtnum_el2",	CPENC (3,4,13,0,7),	F_ARCHEXT,		AARCH64_FEATURE (SCXTNUM))
+   SYSREG ("scxtnum_el3",	CPENC (3,6,13,0,7),	F_ARCHEXT,		AARCH64_FEATURE (SCXTNUM))
+   SYSREG ("sder32_el2",		CPENC (3,4,1,3,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("sder32_el3",		CPENC (3,6,1,1,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("smcr_el1",		CPENC (3,0,1,2,6),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("smcr_el12",		CPENC (3,5,1,2,6),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("smcr_el2",		CPENC (3,4,1,2,6),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("smcr_el3",		CPENC (3,6,1,2,6),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("smidr_el1",		CPENC (3,1,0,0,6),	F_REG_READ|F_ARCHEXT,	AARCH64_FEATURE (SME))
+   SYSREG ("smpri_el1",		CPENC (3,0,1,2,4),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("smprimap_el2",	CPENC (3,4,1,2,5),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("sp_el0",		CPENC (3,0,4,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("sp_el1",		CPENC (3,4,4,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("sp_el2",		CPENC (3,6,4,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("spsel",		CPENC (3,0,4,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("spsr_abt",		CPENC (3,4,4,3,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("spsr_el1",		CPENC (3,0,4,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("spsr_el12",		CPENC (3,5,4,0,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("spsr_el2",		CPENC (3,4,4,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("spsr_el3",		CPENC (3,6,4,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("spsr_fiq",		CPENC (3,4,4,3,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("spsr_hyp",		CPENC (3,4,4,0,0),	F_DEPRECATED,		AARCH64_NO_FEATURES)
+   SYSREG ("spsr_irq",		CPENC (3,4,4,3,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("spsr_svc",		CPENC (3,0,4,0,0),	F_DEPRECATED,		AARCH64_NO_FEATURES)
+   SYSREG ("spsr_und",		CPENC (3,4,4,3,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ssbs",		CPENC (3,3,4,2,6),	F_ARCHEXT,		AARCH64_FEATURE (SSBS))
+   SYSREG ("svcr",		CPENC (3,3,4,2,2),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("s2pir_el2",		CPENC (3,4,10,2,5),	F_ARCHEXT,		AARCH64_FEATURE (S2PIE))
+   SYSREG ("s2por_el1",		CPENC (3,0,10,2,5),	F_ARCHEXT,		AARCH64_FEATURE (S2POE))
+   SYSREG ("tco",		CPENC (3,3,4,2,7),	F_ARCHEXT,		AARCH64_FEATURE (MEMTAG))
+   SYSREG ("tcr_el1",		CPENC (3,0,2,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("tcr_el12",		CPENC (3,5,2,0,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("tcr_el2",		CPENC (3,4,2,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("tcr_el3",		CPENC (3,6,2,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("tcr2_el1",		CPENC (3,0,2,0,3),	F_ARCHEXT,		AARCH64_FEATURE (TCR2))
+   SYSREG ("tcr2_el12",		CPENC (3,5,2,0,3),	F_ARCHEXT,		AARCH64_FEATURE (TCR2))
+   SYSREG ("tcr2_el2",		CPENC (3,4,2,0,3),	F_ARCHEXT,		AARCH64_FEATURE (TCR2))
+   SYSREG ("teecr32_el1",	CPENC (2,2,0,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("teehbr32_el1",	CPENC (2,2,1,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("tfsr_el1",		CPENC (3,0,5,6,0),	F_ARCHEXT,		AARCH64_FEATURE (MEMTAG))
+   SYSREG ("tfsr_el12",		CPENC (3,5,5,6,0),	F_ARCHEXT,		AARCH64_FEATURE (MEMTAG))
+   SYSREG ("tfsr_el2",		CPENC (3,4,5,6,0),	F_ARCHEXT,		AARCH64_FEATURE (MEMTAG))
+   SYSREG ("tfsr_el3",		CPENC (3,6,5,6,0),	F_ARCHEXT,		AARCH64_FEATURE (MEMTAG))
+   SYSREG ("tfsre0_el1",		CPENC (3,0,5,6,1),	F_ARCHEXT,		AARCH64_FEATURE (MEMTAG))
+   SYSREG ("tpidr2_el0",		CPENC (3,3,13,0,5),	F_ARCHEXT,		AARCH64_FEATURE (SME))
+   SYSREG ("tpidr_el0",		CPENC (3,3,13,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("tpidr_el1",		CPENC (3,0,13,0,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("tpidr_el2",		CPENC (3,4,13,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("tpidr_el3",		CPENC (3,6,13,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("tpidrro_el0",	CPENC (3,3,13,0,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trbbaser_el1",	CPENC (3,0,9,11,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trbidr_el1",		CPENC (3,0,9,11,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trblimitr_el1",	CPENC (3,0,9,11,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trbmar_el1",		CPENC (3,0,9,11,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trbptr_el1",		CPENC (3,0,9,11,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trbsr_el1",		CPENC (3,0,9,11,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trbtrg_el1",		CPENC (3,0,9,11,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr0",		CPENC (2,1,2,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr1",		CPENC (2,1,2,2,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr10",		CPENC (2,1,2,4,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr11",		CPENC (2,1,2,6,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr12",		CPENC (2,1,2,8,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr13",		CPENC (2,1,2,10,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr14",		CPENC (2,1,2,12,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr15",		CPENC (2,1,2,14,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr2",		CPENC (2,1,2,4,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr3",		CPENC (2,1,2,6,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr4",		CPENC (2,1,2,8,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr5",		CPENC (2,1,2,10,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr6",		CPENC (2,1,2,12,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr7",		CPENC (2,1,2,14,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr8",		CPENC (2,1,2,0,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacatr9",		CPENC (2,1,2,2,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr0",		CPENC (2,1,2,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr1",		CPENC (2,1,2,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr10",		CPENC (2,1,2,4,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr11",		CPENC (2,1,2,6,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr12",		CPENC (2,1,2,8,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr13",		CPENC (2,1,2,10,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr14",		CPENC (2,1,2,12,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr15",		CPENC (2,1,2,14,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr2",		CPENC (2,1,2,4,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr3",		CPENC (2,1,2,6,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr4",		CPENC (2,1,2,8,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr5",		CPENC (2,1,2,10,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr6",		CPENC (2,1,2,12,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr7",		CPENC (2,1,2,14,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr8",		CPENC (2,1,2,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcacvr9",		CPENC (2,1,2,2,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcauthstatus",	CPENC (2,1,7,14,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcauxctlr",		CPENC (2,1,0,6,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcbbctlr",		CPENC (2,1,0,15,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcccctlr",		CPENC (2,1,0,14,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcctlr0",	CPENC (2,1,3,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcctlr1",	CPENC (2,1,3,1,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcvr0",		CPENC (2,1,3,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcvr1",		CPENC (2,1,3,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcvr2",		CPENC (2,1,3,4,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcvr3",		CPENC (2,1,3,6,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcvr4",		CPENC (2,1,3,8,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcvr5",		CPENC (2,1,3,10,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcvr6",		CPENC (2,1,3,12,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidcvr7",		CPENC (2,1,3,14,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccidr0",		CPENC (2,1,7,12,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trccidr1",		CPENC (2,1,7,13,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trccidr2",		CPENC (2,1,7,14,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trccidr3",		CPENC (2,1,7,15,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcclaimclr",	CPENC (2,1,7,9,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcclaimset",	CPENC (2,1,7,8,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntctlr0",	CPENC (2,1,0,4,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntctlr1",	CPENC (2,1,0,5,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntctlr2",	CPENC (2,1,0,6,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntctlr3",	CPENC (2,1,0,7,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntrldvr0",	CPENC (2,1,0,0,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntrldvr1",	CPENC (2,1,0,1,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntrldvr2",	CPENC (2,1,0,2,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntrldvr3",	CPENC (2,1,0,3,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntvr0",		CPENC (2,1,0,8,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntvr1",		CPENC (2,1,0,9,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntvr2",		CPENC (2,1,0,10,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trccntvr3",		CPENC (2,1,0,11,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcconfigr",		CPENC (2,1,0,4,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdevaff0",		CPENC (2,1,7,10,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcdevaff1",		CPENC (2,1,7,11,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcdevarch",		CPENC (2,1,7,15,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcdevid",		CPENC (2,1,7,2,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcdevtype",		CPENC (2,1,7,3,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcmr0",		CPENC (2,1,2,0,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcmr1",		CPENC (2,1,2,4,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcmr2",		CPENC (2,1,2,8,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcmr3",		CPENC (2,1,2,12,6),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcmr4",		CPENC (2,1,2,0,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcmr5",		CPENC (2,1,2,4,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcmr6",		CPENC (2,1,2,8,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcmr7",		CPENC (2,1,2,12,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcvr0",		CPENC (2,1,2,0,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcvr1",		CPENC (2,1,2,4,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcvr2",		CPENC (2,1,2,8,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcvr3",		CPENC (2,1,2,12,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcvr4",		CPENC (2,1,2,0,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcvr5",		CPENC (2,1,2,4,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcvr6",		CPENC (2,1,2,8,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcdvcvr7",		CPENC (2,1,2,12,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trceventctl0r",	CPENC (2,1,0,8,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trceventctl1r",	CPENC (2,1,0,9,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcextinselr",	CPENC (2,1,0,8,4),	F_REG_ALIAS,		AARCH64_NO_FEATURES)
+   SYSREG ("trcextinselr0",	CPENC (2,1,0,8,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcextinselr1",	CPENC (2,1,0,9,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcextinselr2",	CPENC (2,1,0,10,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcextinselr3",	CPENC (2,1,0,11,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcidr0",		CPENC (2,1,0,8,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr1",		CPENC (2,1,0,9,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr10",		CPENC (2,1,0,2,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr11",		CPENC (2,1,0,3,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr12",		CPENC (2,1,0,4,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr13",		CPENC (2,1,0,5,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr2",		CPENC (2,1,0,10,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr3",		CPENC (2,1,0,11,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr4",		CPENC (2,1,0,12,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr5",		CPENC (2,1,0,13,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr6",		CPENC (2,1,0,14,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr7",		CPENC (2,1,0,15,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr8",		CPENC (2,1,0,0,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcidr9",		CPENC (2,1,0,1,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcimspec0",		CPENC (2,1,0,0,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcimspec1",		CPENC (2,1,0,1,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcimspec2",		CPENC (2,1,0,2,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcimspec3",		CPENC (2,1,0,3,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcimspec4",		CPENC (2,1,0,4,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcimspec5",		CPENC (2,1,0,5,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcimspec6",		CPENC (2,1,0,6,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcimspec7",		CPENC (2,1,0,7,7),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcitctrl",		CPENC (2,1,7,0,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcitecr_el1",	CPENC (3,0,1,2,3),	F_ARCHEXT,		AARCH64_FEATURE (ITE))
+   SYSREG ("trcitecr_el12",	CPENC (3,5,1,2,3),	F_ARCHEXT,		AARCH64_FEATURE (ITE))
+   SYSREG ("trcitecr_el2",	CPENC (3,4,1,2,3),	F_ARCHEXT,		AARCH64_FEATURE (ITE))
+   SYSREG ("trciteedcr",		CPENC (2,1,0,2,1),	F_ARCHEXT,		AARCH64_FEATURE (ITE))
+   SYSREG ("trclar",		CPENC (2,1,7,12,6),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("trclsr",		CPENC (2,1,7,13,6),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcoslar",		CPENC (2,1,1,0,4),	F_REG_WRITE,		AARCH64_NO_FEATURES)
+   SYSREG ("trcoslsr",		CPENC (2,1,1,1,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpdcr",		CPENC (2,1,1,4,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcpdsr",		CPENC (2,1,1,5,4),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpidr0",		CPENC (2,1,7,8,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpidr1",		CPENC (2,1,7,9,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpidr2",		CPENC (2,1,7,10,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpidr3",		CPENC (2,1,7,11,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpidr4",		CPENC (2,1,7,4,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpidr5",		CPENC (2,1,7,5,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpidr6",		CPENC (2,1,7,6,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcpidr7",		CPENC (2,1,7,7,7),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcprgctlr",		CPENC (2,1,0,1,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcprocselr",	CPENC (2,1,0,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcqctlr",		CPENC (2,1,0,1,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr10",	CPENC (2,1,1,10,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr11",	CPENC (2,1,1,11,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr12",	CPENC (2,1,1,12,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr13",	CPENC (2,1,1,13,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr14",	CPENC (2,1,1,14,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr15",	CPENC (2,1,1,15,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr16",	CPENC (2,1,1,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr17",	CPENC (2,1,1,1,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr18",	CPENC (2,1,1,2,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr19",	CPENC (2,1,1,3,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr2",		CPENC (2,1,1,2,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr20",	CPENC (2,1,1,4,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr21",	CPENC (2,1,1,5,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr22",	CPENC (2,1,1,6,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr23",	CPENC (2,1,1,7,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr24",	CPENC (2,1,1,8,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr25",	CPENC (2,1,1,9,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr26",	CPENC (2,1,1,10,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr27",	CPENC (2,1,1,11,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr28",	CPENC (2,1,1,12,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr29",	CPENC (2,1,1,13,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr3",		CPENC (2,1,1,3,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr30",	CPENC (2,1,1,14,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr31",	CPENC (2,1,1,15,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr4",		CPENC (2,1,1,4,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr5",		CPENC (2,1,1,5,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr6",		CPENC (2,1,1,6,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr7",		CPENC (2,1,1,7,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr8",		CPENC (2,1,1,8,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsctlr9",		CPENC (2,1,1,9,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcrsr",		CPENC (2,1,0,10,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcseqevr0",		CPENC (2,1,0,0,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcseqevr1",		CPENC (2,1,0,1,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcseqevr2",		CPENC (2,1,0,2,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcseqrstevr",	CPENC (2,1,0,6,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcseqstr",		CPENC (2,1,0,7,4),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcssccr0",		CPENC (2,1,1,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcssccr1",		CPENC (2,1,1,1,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcssccr2",		CPENC (2,1,1,2,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcssccr3",		CPENC (2,1,1,3,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcssccr4",		CPENC (2,1,1,4,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcssccr5",		CPENC (2,1,1,5,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcssccr6",		CPENC (2,1,1,6,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcssccr7",		CPENC (2,1,1,7,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsscsr0",		CPENC (2,1,1,8,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsscsr1",		CPENC (2,1,1,9,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsscsr2",		CPENC (2,1,1,10,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsscsr3",		CPENC (2,1,1,11,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsscsr4",		CPENC (2,1,1,12,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsscsr5",		CPENC (2,1,1,13,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsscsr6",		CPENC (2,1,1,14,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsscsr7",		CPENC (2,1,1,15,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsspcicr0",	CPENC (2,1,1,0,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsspcicr1",	CPENC (2,1,1,1,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsspcicr2",	CPENC (2,1,1,2,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsspcicr3",	CPENC (2,1,1,3,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsspcicr4",	CPENC (2,1,1,4,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsspcicr5",	CPENC (2,1,1,5,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsspcicr6",	CPENC (2,1,1,6,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcsspcicr7",	CPENC (2,1,1,7,3),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcstallctlr",	CPENC (2,1,0,11,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcstatr",		CPENC (2,1,0,3,0),	F_REG_READ,		AARCH64_NO_FEATURES)
+   SYSREG ("trcsyncpr",		CPENC (2,1,0,13,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trctraceidr",	CPENC (2,1,0,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trctsctlr",		CPENC (2,1,0,12,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvdarcctlr",	CPENC (2,1,0,10,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvdctlr",		CPENC (2,1,0,8,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvdsacctlr",	CPENC (2,1,0,9,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvictlr",		CPENC (2,1,0,0,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcviiectlr",	CPENC (2,1,0,1,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvipcssctlr",	CPENC (2,1,0,3,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvissctlr",	CPENC (2,1,0,2,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcctlr0",	CPENC (2,1,3,2,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcctlr1",	CPENC (2,1,3,3,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcvr0",	CPENC (2,1,3,0,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcvr1",	CPENC (2,1,3,2,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcvr2",	CPENC (2,1,3,4,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcvr3",	CPENC (2,1,3,6,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcvr4",	CPENC (2,1,3,8,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcvr5",	CPENC (2,1,3,10,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcvr6",	CPENC (2,1,3,12,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trcvmidcvr7",	CPENC (2,1,3,14,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("trfcr_el1",		CPENC (3,0,1,2,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("trfcr_el12",		CPENC (3,5,1,2,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("trfcr_el2",		CPENC (3,4,1,2,1),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("ttbr0_el1",		CPENC (3,0,2,0,0),	F_REG_128,		AARCH64_NO_FEATURES)
+   SYSREG ("ttbr0_el12",		CPENC (3,5,2,0,0),	F_ARCHEXT|F_REG_128,	AARCH64_FEATURE (V8_1A))
+   SYSREG ("ttbr0_el2",		CPENC (3,4,2,0,0),	F_ARCHEXT|F_REG_128,	AARCH64_FEATURE (V8A))
+   SYSREG ("ttbr0_el3",		CPENC (3,6,2,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("ttbr1_el1",		CPENC (3,0,2,0,1),	F_REG_128,		AARCH64_NO_FEATURES)
+   SYSREG ("ttbr1_el12",		CPENC (3,5,2,0,1),	F_ARCHEXT|F_REG_128,	AARCH64_FEATURE (V8_1A))
+   SYSREG ("ttbr1_el2",		CPENC (3,4,2,0,1),	F_ARCHEXT|F_REG_128,	AARCH64_FEATURES (2, V8A, V8_1A))
+   SYSREG ("uao",		CPENC (3,0,4,2,4),	F_ARCHEXT,		AARCH64_FEATURE (V8_2A))
+   SYSREG ("vbar_el1",		CPENC (3,0,12,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("vbar_el12",		CPENC (3,5,12,0,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_1A))
+   SYSREG ("vbar_el2",		CPENC (3,4,12,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("vbar_el3",		CPENC (3,6,12,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("vdisr_el2",		CPENC (3,4,12,1,1),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("vmecid_a_el2",	CPENC (3,4,10,9,1),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("vmecid_p_el2",	CPENC (3,4,10,9,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("vmpidr_el2",		CPENC (3,4,0,0,5),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("vncr_el2",		CPENC (3,4,2,2,0),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("vpidr_el2",		CPENC (3,4,0,0,0),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("vsctlr_el2",		CPENC (3,4,2,0,0),	F_ARCHEXT,		AARCH64_FEATURE (V8R))
+   SYSREG ("vsesr_el2",		CPENC (3,4,5,2,3),	F_ARCHEXT,		AARCH64_FEATURE (RAS))
+   SYSREG ("vstcr_el2",		CPENC (3,4,2,6,2),	F_ARCHEXT,		AARCH64_FEATURE (V8_4A))
+   SYSREG ("vsttbr_el2",		CPENC (3,4,2,6,0),	F_ARCHEXT,		AARCH64_FEATURES (2, V8A, V8_4A))
+   SYSREG ("vtcr_el2",		CPENC (3,4,2,1,2),	0,			AARCH64_NO_FEATURES)
+   SYSREG ("vttbr_el2",		CPENC (3,4,2,1,0),	F_ARCHEXT|F_REG_128,	AARCH64_FEATURE (V8A))
+   SYSREG ("zcr_el1",		CPENC (3,0,1,2,0),	F_ARCHEXT,		AARCH64_FEATURE (SVE))
+   SYSREG ("zcr_el12",		CPENC (3,5,1,2,0),	F_ARCHEXT,		AARCH64_FEATURE (SVE))
+   SYSREG ("zcr_el2",		CPENC (3,4,1,2,0),	F_ARCHEXT,		AARCH64_FEATURE (SVE))
+   SYSREG ("zcr_el3",		CPENC (3,6,1,2,0),	F_ARCHEXT,		AARCH64_FEATURE (SVE))
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-tune.md gcc-14.1.0/gcc/config/aarch64/aarch64-tune.md
*** gcc-13.2.0/gcc/config/aarch64/aarch64-tune.md	Thu Jul 27 08:17:14 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-tune.md	Tue May  7 06:52:51 2024
***************
*** 1,5 ****
  ;; -*- buffer-read-only: t -*-
  ;; Generated automatically by gentune.sh from aarch64-cores.def
  (define_attr "tune"
! 	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa710,cortexa715,cortexx2,cortexx3,neoversen2,demeter,neoversev2"
  	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
--- 1,5 ----
  ;; -*- buffer-read-only: t -*-
  ;; Generated automatically by gentune.sh from aarch64-cores.def
  (define_attr "tune"
! 	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexx2,cortexx3,cortexx4,neoversen2,cobalt100,neoversev2,demeter,generic,generic_armv8_a,generic_armv9_a"
  	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-tuning-flags.def gcc-14.1.0/gcc/config/aarch64/aarch64-tuning-flags.def
*** gcc-13.2.0/gcc/config/aarch64/aarch64-tuning-flags.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-tuning-flags.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2015-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2015-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 30,40 ****
  
  AARCH64_EXTRA_TUNING_OPTION ("rename_fma_regs", RENAME_FMA_REGS)
  
- /* Don't create non-8 byte aligned load/store pair.  That is if the
- two load/stores are not at least 8 byte aligned don't create load/store
- pairs.   */
- AARCH64_EXTRA_TUNING_OPTION ("slow_unaligned_ldpw", SLOW_UNALIGNED_LDPW)
- 
  /* Some of the optional shift to some arthematic instructions are
     considered cheap.  Logical shift left <=4 with or without a
     zero extend are considered cheap.  Sign extend; non logical shift left
--- 30,35 ----
*************** AARCH64_EXTRA_TUNING_OPTION ("cheap_shif
*** 44,52 ****
  /* Disallow load/store pair instructions on Q-registers.  */
  AARCH64_EXTRA_TUNING_OPTION ("no_ldp_stp_qregs", NO_LDP_STP_QREGS)
  
- /* Disallow load-pair instructions to be formed in combine/peephole.  */
- AARCH64_EXTRA_TUNING_OPTION ("no_ldp_combine", NO_LDP_COMBINE)
- 
  AARCH64_EXTRA_TUNING_OPTION ("rename_load_regs", RENAME_LOAD_REGS)
  
  AARCH64_EXTRA_TUNING_OPTION ("cse_sve_vl_constants", CSE_SVE_VL_CONSTANTS)
--- 39,44 ----
*************** AARCH64_EXTRA_TUNING_OPTION ("use_new_ve
*** 55,58 ****
--- 47,54 ----
  
  AARCH64_EXTRA_TUNING_OPTION ("matched_vector_throughput", MATCHED_VECTOR_THROUGHPUT)
  
+ AARCH64_EXTRA_TUNING_OPTION ("avoid_cross_loop_fma", AVOID_CROSS_LOOP_FMA)
+ 
+ AARCH64_EXTRA_TUNING_OPTION ("fully_pipelined_fma", FULLY_PIPELINED_FMA)
+ 
  #undef AARCH64_EXTRA_TUNING_OPTION
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64-vxworks.h gcc-14.1.0/gcc/config/aarch64/aarch64-vxworks.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64-vxworks.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64-vxworks.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for GNU compiler.  Vxworks Aarch 64bit
     version.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by Douglas B Rupp
  
  This file is part of GCC.
--- 1,6 ----
  /* Definitions of target machine for GNU compiler.  Vxworks Aarch 64bit
     version.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by Douglas B Rupp
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64.cc gcc-14.1.0/gcc/config/aarch64/aarch64.cc
*** gcc-13.2.0/gcc/config/aarch64/aarch64.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 22,27 ****
--- 22,28 ----
  
  #define INCLUDE_STRING
  #define INCLUDE_ALGORITHM
+ #define INCLUDE_VECTOR
  #include "config.h"
  #include "system.h"
  #include "coretypes.h"
***************
*** 84,89 ****
--- 85,101 ----
  #include "aarch64-feature-deps.h"
  #include "config/arm/aarch-common.h"
  #include "config/arm/aarch-common-protos.h"
+ #include "common/config/aarch64/cpuinfo.h"
+ #include "ssa.h"
+ #include "except.h"
+ #include "tree-pass.h"
+ #include "cfgbuild.h"
+ #include "symbol-summary.h"
+ #include "sreal.h"
+ #include "ipa-cp.h"
+ #include "ipa-prop.h"
+ #include "ipa-fnsummary.h"
+ #include "hash-map.h"
  
  /* This file should be included last.  */
  #include "target-def.h"
***************
*** 91,96 ****
--- 103,128 ----
  /* Defined for convenience.  */
  #define POINTER_BYTES (POINTER_SIZE / BITS_PER_UNIT)
  
+ /* Flags that describe how a function shares certain architectural state
+    with its callers.
+ 
+    - AARCH64_STATE_SHARED indicates that the function does share the state
+      with callers.
+ 
+    - AARCH64_STATE_IN indicates that the function reads (or might read) the
+      incoming state.  The converse is that the function ignores the incoming
+      state.
+ 
+    - AARCH64_STATE_OUT indicates that the function returns new state.
+      The converse is that the state on return is the same as it was on entry.
+ 
+    A function that partially modifies the state treats it as both IN
+    and OUT (because the value on return depends to some extent on the
+    value on input).  */
+ constexpr auto AARCH64_STATE_SHARED = 1U << 0;
+ constexpr auto AARCH64_STATE_IN = 1U << 1;
+ constexpr auto AARCH64_STATE_OUT = 1U << 2;
+ 
  /* Information about a legitimate vector immediate operand.  */
  struct simd_immediate_info
  {
*************** public:
*** 256,262 ****
      machine_mode orig_mode;
  
      /* The offset in bytes of the piece from the start of the type.  */
!     poly_uint64_pod offset;
    };
  
    /* Divides types analyzed as IS_PST into individual pieces.  The pieces
--- 288,294 ----
      machine_mode orig_mode;
  
      /* The offset in bytes of the piece from the start of the type.  */
!     poly_uint64 offset;
    };
  
    /* Divides types analyzed as IS_PST into individual pieces.  The pieces
*************** private:
*** 281,286 ****
--- 313,320 ----
  /* The current code model.  */
  enum aarch64_code_model aarch64_cmodel;
  
+ enum aarch64_tp_reg aarch64_tpidr_register;
+ 
  /* The number of 64-bit elements in an SVE vector.  */
  poly_uint16 aarch64_sve_vg;
  
*************** bool aarch64_pcrelative_literal_loads;
*** 320,327 ****
  /* Global flag for whether frame pointer is enabled.  */
  bool aarch64_use_frame_pointer;
  
- char *accepted_branch_protection_string = NULL;
- 
  /* Support for command line parsing of boolean flags in the tuning
     structures.  */
  struct aarch64_flag_desc
--- 354,359 ----
*************** static const struct aarch64_flag_desc aa
*** 351,2766 ****
  };
  
  /* Tuning parameters.  */
  
! static const struct cpu_addrcost_table generic_addrcost_table =
! {
!     {
!       1, /* hi  */
!       0, /* si  */
!       0, /* di  */
!       1, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   0, /* post_modify_ld3_st3  */
!   0, /* post_modify_ld4_st4  */
!   0, /* register_offset  */
!   0, /* register_sextend  */
!   0, /* register_zextend  */
!   0 /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table exynosm1_addrcost_table =
! {
!     {
!       0, /* hi  */
!       0, /* si  */
!       0, /* di  */
!       2, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   0, /* post_modify_ld3_st3  */
!   0, /* post_modify_ld4_st4  */
!   1, /* register_offset  */
!   1, /* register_sextend  */
!   2, /* register_zextend  */
!   0, /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table xgene1_addrcost_table =
! {
!     {
!       1, /* hi  */
!       0, /* si  */
!       0, /* di  */
!       1, /* ti  */
!     },
!   1, /* pre_modify  */
!   1, /* post_modify  */
!   1, /* post_modify_ld3_st3  */
!   1, /* post_modify_ld4_st4  */
!   0, /* register_offset  */
!   1, /* register_sextend  */
!   1, /* register_zextend  */
!   0, /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table thunderx2t99_addrcost_table =
! {
!     {
!       1, /* hi  */
!       1, /* si  */
!       1, /* di  */
!       2, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   0, /* post_modify_ld3_st3  */
!   0, /* post_modify_ld4_st4  */
!   2, /* register_offset  */
!   3, /* register_sextend  */
!   3, /* register_zextend  */
!   0, /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table thunderx3t110_addrcost_table =
! {
!     {
!       1, /* hi  */
!       1, /* si  */
!       1, /* di  */
!       2, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   0, /* post_modify_ld3_st3  */
!   0, /* post_modify_ld4_st4  */
!   2, /* register_offset  */
!   3, /* register_sextend  */
!   3, /* register_zextend  */
!   0, /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table tsv110_addrcost_table =
! {
!     {
!       1, /* hi  */
!       0, /* si  */
!       0, /* di  */
!       1, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   0, /* post_modify_ld3_st3  */
!   0, /* post_modify_ld4_st4  */
!   0, /* register_offset  */
!   1, /* register_sextend  */
!   1, /* register_zextend  */
!   0, /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table qdf24xx_addrcost_table =
! {
!     {
!       1, /* hi  */
!       1, /* si  */
!       1, /* di  */
!       2, /* ti  */
!     },
!   1, /* pre_modify  */
!   1, /* post_modify  */
!   1, /* post_modify_ld3_st3  */
!   1, /* post_modify_ld4_st4  */
!   3, /* register_offset  */
!   3, /* register_sextend  */
!   3, /* register_zextend  */
!   2, /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table a64fx_addrcost_table =
! {
!     {
!       1, /* hi  */
!       1, /* si  */
!       1, /* di  */
!       2, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   0, /* post_modify_ld3_st3  */
!   0, /* post_modify_ld4_st4  */
!   2, /* register_offset  */
!   3, /* register_sextend  */
!   3, /* register_zextend  */
!   0, /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table neoversev1_addrcost_table =
! {
!     {
!       1, /* hi  */
!       0, /* si  */
!       0, /* di  */
!       1, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   3, /* post_modify_ld3_st3  */
!   3, /* post_modify_ld4_st4  */
!   0, /* register_offset  */
!   0, /* register_sextend  */
!   0, /* register_zextend  */
!   0 /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table neoversen2_addrcost_table =
! {
!     {
!       1, /* hi  */
!       0, /* si  */
!       0, /* di  */
!       1, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   2, /* post_modify_ld3_st3  */
!   2, /* post_modify_ld4_st4  */
!   0, /* register_offset  */
!   0, /* register_sextend  */
!   0, /* register_zextend  */
!   0 /* imm_offset  */
! };
! 
! static const struct cpu_addrcost_table neoversev2_addrcost_table =
! {
!     {
!       1, /* hi  */
!       0, /* si  */
!       0, /* di  */
!       1, /* ti  */
!     },
!   0, /* pre_modify  */
!   0, /* post_modify  */
!   2, /* post_modify_ld3_st3  */
!   2, /* post_modify_ld4_st4  */
!   0, /* register_offset  */
!   0, /* register_sextend  */
!   0, /* register_zextend  */
!   0 /* imm_offset  */
! };
! 
! static const struct cpu_regmove_cost generic_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of slow int<->fp moves for spilling by setting
!      their cost higher than memmov_cost.  */
!   5, /* GP2FP  */
!   5, /* FP2GP  */
!   2 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost cortexa57_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of slow int<->fp moves for spilling by setting
!      their cost higher than memmov_cost.  */
!   5, /* GP2FP  */
!   5, /* FP2GP  */
!   2 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost cortexa53_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of slow int<->fp moves for spilling by setting
!      their cost higher than memmov_cost.  */
!   5, /* GP2FP  */
!   5, /* FP2GP  */
!   2 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost exynosm1_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of slow int<->fp moves for spilling by setting
!      their cost higher than memmov_cost (actual, 4 and 9).  */
!   9, /* GP2FP  */
!   9, /* FP2GP  */
!   1 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost thunderx_regmove_cost =
! {
!   2, /* GP2GP  */
!   2, /* GP2FP  */
!   6, /* FP2GP  */
!   4 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost xgene1_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of slow int<->fp moves for spilling by setting
!      their cost higher than memmov_cost.  */
!   8, /* GP2FP  */
!   8, /* FP2GP  */
!   2 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost qdf24xx_regmove_cost =
! {
!   2, /* GP2GP  */
!   /* Avoid the use of int<->fp moves for spilling.  */
!   6, /* GP2FP  */
!   6, /* FP2GP  */
!   4 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost thunderx2t99_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of int<->fp moves for spilling.  */
!   5, /* GP2FP  */
!   6, /* FP2GP  */
!   3, /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost thunderx3t110_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of int<->fp moves for spilling.  */
!   4, /* GP2FP  */
!   5, /* FP2GP  */
!   4  /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost tsv110_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of slow int<->fp moves for spilling by setting
!      their cost higher than memmov_cost.  */
!   2, /* GP2FP  */
!   3, /* FP2GP  */
!   2  /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost a64fx_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Avoid the use of slow int<->fp moves for spilling by setting
!      their cost higher than memmov_cost.  */
!   5, /* GP2FP  */
!   7, /* FP2GP  */
!   2 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost neoversen2_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Spilling to int<->fp instead of memory is recommended so set
!      realistic costs compared to memmov_cost.  */
!   3, /* GP2FP  */
!   2, /* FP2GP  */
!   2 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost neoversev1_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Spilling to int<->fp instead of memory is recommended so set
!      realistic costs compared to memmov_cost.  */
!   3, /* GP2FP  */
!   2, /* FP2GP  */
!   2 /* FP2FP  */
! };
! 
! static const struct cpu_regmove_cost neoversev2_regmove_cost =
! {
!   1, /* GP2GP  */
!   /* Spilling to int<->fp instead of memory is recommended so set
!      realistic costs compared to memmov_cost.  */
!   3, /* GP2FP  */
!   2, /* FP2GP  */
!   2 /* FP2FP  */
! };
! 
! /* Generic costs for Advanced SIMD vector operations.   */
! static const advsimd_vec_cost generic_advsimd_vector_cost =
! {
!   1, /* int_stmt_cost  */
!   1, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   2, /* permute_cost  */
!   2, /* reduc_i8_cost  */
!   2, /* reduc_i16_cost  */
!   2, /* reduc_i32_cost  */
!   2, /* reduc_i64_cost  */
!   2, /* reduc_f16_cost  */
!   2, /* reduc_f32_cost  */
!   2, /* reduc_f64_cost  */
!   2, /* store_elt_extra_cost  */
!   2, /* vec_to_scalar_cost  */
!   1, /* scalar_to_vec_cost  */
!   1, /* align_load_cost  */
!   1, /* unalign_load_cost  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! /* Generic costs for SVE vector operations.  */
! static const sve_vec_cost generic_sve_vector_cost =
! {
!   {
!     1, /* int_stmt_cost  */
!     1, /* fp_stmt_cost  */
!     0, /* ld2_st2_permute_cost  */
!     0, /* ld3_st3_permute_cost  */
!     0, /* ld4_st4_permute_cost  */
!     2, /* permute_cost  */
!     2, /* reduc_i8_cost  */
!     2, /* reduc_i16_cost  */
!     2, /* reduc_i32_cost  */
!     2, /* reduc_i64_cost  */
!     2, /* reduc_f16_cost  */
!     2, /* reduc_f32_cost  */
!     2, /* reduc_f64_cost  */
!     2, /* store_elt_extra_cost  */
!     2, /* vec_to_scalar_cost  */
!     1, /* scalar_to_vec_cost  */
!     1, /* align_load_cost  */
!     1, /* unalign_load_cost  */
!     1, /* unalign_store_cost  */
!     1  /* store_cost  */
!   },
!   2, /* clast_cost  */
!   2, /* fadda_f16_cost  */
!   2, /* fadda_f32_cost  */
!   2, /* fadda_f64_cost  */
!   4, /* gather_load_x32_cost  */
!   2, /* gather_load_x64_cost  */
!   1 /* scatter_store_elt_cost  */
! };
! 
! /* Generic costs for vector insn classes.  */
! static const struct cpu_vector_cost generic_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   1, /* scalar_fp_stmt_cost  */
!   1, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   3, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &generic_advsimd_vector_cost, /* advsimd  */
!   &generic_sve_vector_cost, /* sve */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost a64fx_advsimd_vector_cost =
! {
!   2, /* int_stmt_cost  */
!   5, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   3, /* permute_cost  */
!   13, /* reduc_i8_cost  */
!   13, /* reduc_i16_cost  */
!   13, /* reduc_i32_cost  */
!   13, /* reduc_i64_cost  */
!   13, /* reduc_f16_cost  */
!   13, /* reduc_f32_cost  */
!   13, /* reduc_f64_cost  */
!   13, /* store_elt_extra_cost  */
!   13, /* vec_to_scalar_cost  */
!   4, /* scalar_to_vec_cost  */
!   6, /* align_load_cost  */
!   6, /* unalign_load_cost  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! static const sve_vec_cost a64fx_sve_vector_cost =
! {
!   {
!     2, /* int_stmt_cost  */
!     5, /* fp_stmt_cost  */
!     0, /* ld2_st2_permute_cost  */
!     0, /* ld3_st3_permute_cost  */
!     0, /* ld4_st4_permute_cost  */
!     3, /* permute_cost  */
!     13, /* reduc_i8_cost  */
!     13, /* reduc_i16_cost  */
!     13, /* reduc_i32_cost  */
!     13, /* reduc_i64_cost  */
!     13, /* reduc_f16_cost  */
!     13, /* reduc_f32_cost  */
!     13, /* reduc_f64_cost  */
!     13, /* store_elt_extra_cost  */
!     13, /* vec_to_scalar_cost  */
!     4, /* scalar_to_vec_cost  */
!     6, /* align_load_cost  */
!     6, /* unalign_load_cost  */
!     1, /* unalign_store_cost  */
!     1  /* store_cost  */
!   },
!   13, /* clast_cost  */
!   13, /* fadda_f16_cost  */
!   13, /* fadda_f32_cost  */
!   13, /* fadda_f64_cost  */
!   64, /* gather_load_x32_cost  */
!   32, /* gather_load_x64_cost  */
!   1 /* scatter_store_elt_cost  */
! };
! 
! static const struct cpu_vector_cost a64fx_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   5, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   3, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &a64fx_advsimd_vector_cost, /* advsimd  */
!   &a64fx_sve_vector_cost, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost qdf24xx_advsimd_vector_cost =
! {
!   1, /* int_stmt_cost  */
!   3, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   2, /* permute_cost  */
!   1, /* reduc_i8_cost  */
!   1, /* reduc_i16_cost  */
!   1, /* reduc_i32_cost  */
!   1, /* reduc_i64_cost  */
!   1, /* reduc_f16_cost  */
!   1, /* reduc_f32_cost  */
!   1, /* reduc_f64_cost  */
!   1, /* store_elt_extra_cost  */
!   1, /* vec_to_scalar_cost  */
!   1, /* scalar_to_vec_cost  */
!   1, /* align_load_cost  */
!   1, /* unalign_load_cost  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! /* QDF24XX costs for vector insn classes.  */
! static const struct cpu_vector_cost qdf24xx_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   1, /* scalar_fp_stmt_cost  */
!   1, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   3, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &qdf24xx_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! 
! static const advsimd_vec_cost thunderx_advsimd_vector_cost =
! {
!   4, /* int_stmt_cost  */
!   1, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   4, /* permute_cost  */
!   2, /* reduc_i8_cost  */
!   2, /* reduc_i16_cost  */
!   2, /* reduc_i32_cost  */
!   2, /* reduc_i64_cost  */
!   2, /* reduc_f16_cost  */
!   2, /* reduc_f32_cost  */
!   2, /* reduc_f64_cost  */
!   2, /* store_elt_extra_cost  */
!   2, /* vec_to_scalar_cost  */
!   2, /* scalar_to_vec_cost  */
!   3, /* align_load_cost  */
!   5, /* unalign_load_cost  */
!   5, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! /* ThunderX costs for vector insn classes.  */
! static const struct cpu_vector_cost thunderx_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   1, /* scalar_fp_stmt_cost  */
!   3, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   3, /* cond_taken_branch_cost  */
!   3, /* cond_not_taken_branch_cost  */
!   &thunderx_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost tsv110_advsimd_vector_cost =
! {
!   2, /* int_stmt_cost  */
!   2, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   2, /* permute_cost  */
!   3, /* reduc_i8_cost  */
!   3, /* reduc_i16_cost  */
!   3, /* reduc_i32_cost  */
!   3, /* reduc_i64_cost  */
!   3, /* reduc_f16_cost  */
!   3, /* reduc_f32_cost  */
!   3, /* reduc_f64_cost  */
!   3, /* store_elt_extra_cost  */
!   3, /* vec_to_scalar_cost  */
!   2, /* scalar_to_vec_cost  */
!   5, /* align_load_cost  */
!   5, /* unalign_load_cost  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! static const struct cpu_vector_cost tsv110_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   1, /* scalar_fp_stmt_cost  */
!   5, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   1, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &tsv110_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost cortexa57_advsimd_vector_cost =
! {
!   2, /* int_stmt_cost  */
!   2, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   3, /* permute_cost  */
!   8, /* reduc_i8_cost  */
!   8, /* reduc_i16_cost  */
!   8, /* reduc_i32_cost  */
!   8, /* reduc_i64_cost  */
!   8, /* reduc_f16_cost  */
!   8, /* reduc_f32_cost  */
!   8, /* reduc_f64_cost  */
!   8, /* store_elt_extra_cost  */
!   8, /* vec_to_scalar_cost  */
!   8, /* scalar_to_vec_cost  */
!   4, /* align_load_cost  */
!   4, /* unalign_load_cost  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! /* Cortex-A57 costs for vector insn classes.  */
! static const struct cpu_vector_cost cortexa57_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   1, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   1, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &cortexa57_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost exynosm1_advsimd_vector_cost =
! {
!   3, /* int_stmt_cost  */
!   3, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   3, /* permute_cost  */
!   3, /* reduc_i8_cost  */
!   3, /* reduc_i16_cost  */
!   3, /* reduc_i32_cost  */
!   3, /* reduc_i64_cost  */
!   3, /* reduc_f16_cost  */
!   3, /* reduc_f32_cost  */
!   3, /* reduc_f64_cost  */
!   3, /* store_elt_extra_cost  */
!   3, /* vec_to_scalar_cost  */
!   3, /* scalar_to_vec_cost  */
!   5, /* align_load_cost  */
!   5, /* unalign_load_cost  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! static const struct cpu_vector_cost exynosm1_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   1, /* scalar_fp_stmt_cost  */
!   5, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   1, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &exynosm1_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost xgene1_advsimd_vector_cost =
! {
!   2, /* int_stmt_cost  */
!   2, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   2, /* permute_cost  */
!   4, /* reduc_i8_cost  */
!   4, /* reduc_i16_cost  */
!   4, /* reduc_i32_cost  */
!   4, /* reduc_i64_cost  */
!   4, /* reduc_f16_cost  */
!   4, /* reduc_f32_cost  */
!   4, /* reduc_f64_cost  */
!   4, /* store_elt_extra_cost  */
!   4, /* vec_to_scalar_cost  */
!   4, /* scalar_to_vec_cost  */
!   10, /* align_load_cost  */
!   10, /* unalign_load_cost  */
!   2, /* unalign_store_cost  */
!   2  /* store_cost  */
! };
! 
! /* Generic costs for vector insn classes.  */
! static const struct cpu_vector_cost xgene1_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   1, /* scalar_fp_stmt_cost  */
!   5, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   2, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &xgene1_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost thunderx2t99_advsimd_vector_cost =
! {
!   4, /* int_stmt_cost  */
!   5, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   10, /* permute_cost  */
!   6, /* reduc_i8_cost  */
!   6, /* reduc_i16_cost  */
!   6, /* reduc_i32_cost  */
!   6, /* reduc_i64_cost  */
!   6, /* reduc_f16_cost  */
!   6, /* reduc_f32_cost  */
!   6, /* reduc_f64_cost  */
!   6, /* store_elt_extra_cost  */
!   6, /* vec_to_scalar_cost  */
!   5, /* scalar_to_vec_cost  */
!   4, /* align_load_cost  */
!   4, /* unalign_load_cost  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! /* Costs for vector insn classes for Vulcan.  */
! static const struct cpu_vector_cost thunderx2t99_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   6, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   2, /* cond_taken_branch_cost  */
!   1,  /* cond_not_taken_branch_cost  */
!   &thunderx2t99_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost thunderx3t110_advsimd_vector_cost =
! {
!   5, /* int_stmt_cost  */
!   5, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   10, /* permute_cost  */
!   5, /* reduc_i8_cost  */
!   5, /* reduc_i16_cost  */
!   5, /* reduc_i32_cost  */
!   5, /* reduc_i64_cost  */
!   5, /* reduc_f16_cost  */
!   5, /* reduc_f32_cost  */
!   5, /* reduc_f64_cost  */
!   5, /* store_elt_extra_cost  */
!   5, /* vec_to_scalar_cost  */
!   5, /* scalar_to_vec_cost  */
!   4, /* align_load_cost  */
!   4, /* unalign_load_cost  */
!   4, /* unalign_store_cost  */
!   4  /* store_cost  */
! };
! 
! static const struct cpu_vector_cost thunderx3t110_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   5, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   2, /* cond_taken_branch_cost  */
!   1,  /* cond_not_taken_branch_cost  */
!   &thunderx3t110_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr /* issue_info  */
! };
! 
! static const advsimd_vec_cost ampere1_advsimd_vector_cost =
! {
!   1, /* int_stmt_cost  */
!   3, /* fp_stmt_cost  */
!   0, /* ld2_st2_permute_cost  */
!   0, /* ld3_st3_permute_cost  */
!   0, /* ld4_st4_permute_cost  */
!   2, /* permute_cost  */
!   12, /* reduc_i8_cost  */
!   9, /* reduc_i16_cost  */
!   6, /* reduc_i32_cost  */
!   5, /* reduc_i64_cost  */
!   9, /* reduc_f16_cost  */
!   6, /* reduc_f32_cost  */
!   5, /* reduc_f64_cost  */
!   8, /* store_elt_extra_cost  */
!   6, /* vec_to_scalar_cost  */
!   7, /* scalar_to_vec_cost  */
!   4, /* align_load_cost  */
!   4, /* unalign_load_cost  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! /* Ampere-1 costs for vector insn classes.  */
! static const struct cpu_vector_cost ampere1_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   3, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   1, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &ampere1_advsimd_vector_cost, /* advsimd  */
!   nullptr, /* sve  */
!   nullptr  /* issue_info  */
! };
! 
! /* Generic costs for branch instructions.  */
! static const struct cpu_branch_cost generic_branch_cost =
! {
!   1,  /* Predictable.  */
!   3   /* Unpredictable.  */
! };
! 
! /* Generic approximation modes.  */
! static const cpu_approx_modes generic_approx_modes =
! {
!   AARCH64_APPROX_NONE,	/* division  */
!   AARCH64_APPROX_NONE,	/* sqrt  */
!   AARCH64_APPROX_NONE	/* recip_sqrt  */
! };
! 
! /* Approximation modes for Exynos M1.  */
! static const cpu_approx_modes exynosm1_approx_modes =
! {
!   AARCH64_APPROX_NONE,	/* division  */
!   AARCH64_APPROX_ALL,	/* sqrt  */
!   AARCH64_APPROX_ALL	/* recip_sqrt  */
! };
! 
! /* Approximation modes for X-Gene 1.  */
! static const cpu_approx_modes xgene1_approx_modes =
! {
!   AARCH64_APPROX_NONE,	/* division  */
!   AARCH64_APPROX_NONE,	/* sqrt  */
!   AARCH64_APPROX_ALL	/* recip_sqrt  */
! };
! 
! /* Generic prefetch settings (which disable prefetch).  */
! static const cpu_prefetch_tune generic_prefetch_tune =
! {
!   0,			/* num_slots  */
!   -1,			/* l1_cache_size  */
!   -1,			/* l1_cache_line_size  */
!   -1,			/* l2_cache_size  */
!   true,			/* prefetch_dynamic_strides */
!   -1,			/* minimum_stride */
!   -1			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune exynosm1_prefetch_tune =
! {
!   0,			/* num_slots  */
!   -1,			/* l1_cache_size  */
!   64,			/* l1_cache_line_size  */
!   -1,			/* l2_cache_size  */
!   true,			/* prefetch_dynamic_strides */
!   -1,			/* minimum_stride */
!   -1			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune qdf24xx_prefetch_tune =
! {
!   4,			/* num_slots  */
!   32,			/* l1_cache_size  */
!   64,			/* l1_cache_line_size  */
!   512,			/* l2_cache_size  */
!   false,		/* prefetch_dynamic_strides */
!   2048,			/* minimum_stride */
!   3			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune thunderxt88_prefetch_tune =
! {
!   8,			/* num_slots  */
!   32,			/* l1_cache_size  */
!   128,			/* l1_cache_line_size  */
!   16*1024,		/* l2_cache_size  */
!   true,			/* prefetch_dynamic_strides */
!   -1,			/* minimum_stride */
!   3			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune thunderx_prefetch_tune =
! {
!   8,			/* num_slots  */
!   32,			/* l1_cache_size  */
!   128,			/* l1_cache_line_size  */
!   -1,			/* l2_cache_size  */
!   true,			/* prefetch_dynamic_strides */
!   -1,			/* minimum_stride */
!   -1			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune thunderx2t99_prefetch_tune =
! {
!   8,			/* num_slots  */
!   32,			/* l1_cache_size  */
!   64,			/* l1_cache_line_size  */
!   256,			/* l2_cache_size  */
!   true,			/* prefetch_dynamic_strides */
!   -1,			/* minimum_stride */
!   -1			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune thunderx3t110_prefetch_tune =
! {
!   8,			/* num_slots  */
!   32,			/* l1_cache_size  */
!   64,			/* l1_cache_line_size  */
!   256,			/* l2_cache_size  */
!   true,			/* prefetch_dynamic_strides */
!   -1,			/* minimum_stride */
!   -1			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune tsv110_prefetch_tune =
! {
!   0,                    /* num_slots  */
!   64,                   /* l1_cache_size  */
!   64,                   /* l1_cache_line_size  */
!   512,                  /* l2_cache_size  */
!   true,                 /* prefetch_dynamic_strides */
!   -1,                   /* minimum_stride */
!   -1                    /* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune xgene1_prefetch_tune =
! {
!   8,			/* num_slots  */
!   32,			/* l1_cache_size  */
!   64,			/* l1_cache_line_size  */
!   256,			/* l2_cache_size  */
!   true,                 /* prefetch_dynamic_strides */
!   -1,                   /* minimum_stride */
!   -1			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune a64fx_prefetch_tune =
! {
!   8,			/* num_slots  */
!   64,			/* l1_cache_size  */
!   256,			/* l1_cache_line_size  */
!   32768,		/* l2_cache_size  */
!   true,			/* prefetch_dynamic_strides */
!   -1,			/* minimum_stride */
!   -1			/* default_opt_level  */
! };
! 
! static const cpu_prefetch_tune ampere1_prefetch_tune =
! {
!   0,			/* num_slots  */
!   64,			/* l1_cache_size  */
!   64,			/* l1_cache_line_size  */
!   2048,			/* l2_cache_size  */
!   true,			/* prefetch_dynamic_strides */
!   -1,			/* minimum_stride */
!   -1			/* default_opt_level  */
! };
! 
! static const struct tune_params generic_tunings =
! {
!   &cortexa57_extra_costs,
!   &generic_addrcost_table,
!   &generic_regmove_cost,
!   &generic_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   2, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
!   "16:12",	/* function_align.  */
!   "4",	/* jump_align.  */
!   "8",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   /* Enabling AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS significantly benefits
!      Neoverse V1.  It does not have a noticeable effect on A64FX and should
!      have at most a very minor effect on SVE2 cores.  */
!   (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
! 
! static const struct tune_params cortexa35_tunings =
! {
!   &cortexa53_extra_costs,
!   &generic_addrcost_table,
!   &cortexa53_regmove_cost,
!   &generic_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   1, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
!    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
!   "16",	/* function_align.  */
!   "4",	/* jump_align.  */
!   "8",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
! 
! static const struct tune_params cortexa53_tunings =
! {
!   &cortexa53_extra_costs,
!   &generic_addrcost_table,
!   &cortexa53_regmove_cost,
!   &generic_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   2, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
!    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
!   "16",	/* function_align.  */
!   "4",	/* jump_align.  */
!   "8",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
! 
! static const struct tune_params cortexa57_tunings =
! {
!   &cortexa57_extra_costs,
!   &generic_addrcost_table,
!   &cortexa57_regmove_cost,
!   &cortexa57_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   3, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
!    | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops  */
!   "16",	/* function_align.  */
!   "4",	/* jump_align.  */
!   "8",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_RENAME_FMA_REGS),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
! 
! static const struct tune_params cortexa72_tunings =
! {
!   &cortexa57_extra_costs,
!   &generic_addrcost_table,
!   &cortexa57_regmove_cost,
!   &cortexa57_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   3, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
!    | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops  */
!   "16",	/* function_align.  */
!   "4",	/* jump_align.  */
!   "8",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
! 
! static const struct tune_params cortexa73_tunings =
! {
!   &cortexa57_extra_costs,
!   &generic_addrcost_table,
!   &cortexa57_regmove_cost,
!   &cortexa57_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   2, /* issue_rate.  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
!    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
!   "16",	/* function_align.  */
!   "4",	/* jump_align.  */
!   "8",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
! 
! 
! 
! static const struct tune_params exynosm1_tunings =
  {
!   &exynosm1_extra_costs,
!   &exynosm1_addrcost_table,
!   &exynosm1_regmove_cost,
!   &exynosm1_vector_cost,
!   &generic_branch_cost,
!   &exynosm1_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   3,	/* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC), /* fusible_ops  */
!   "4",	/* function_align.  */
!   "4",	/* jump_align.  */
!   "4",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   48,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE), /* tune_flags.  */
!   &exynosm1_prefetch_tune
  };
  
! static const struct tune_params thunderxt88_tunings =
! {
!   &thunderx_extra_costs,
!   &generic_addrcost_table,
!   &thunderx_regmove_cost,
!   &thunderx_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 6, /* load_int.  */
!     6, /* store_int.  */
!     6, /* load_fp.  */
!     6, /* store_fp.  */
!     6, /* load_pred.  */
!     6 /* store_pred.  */
!   }, /* memmov_cost.  */
!   2, /* issue_rate  */
!   AARCH64_FUSE_ALU_BRANCH, /* fusible_ops  */
!   "8",	/* function_align.  */
!   "8",	/* jump_align.  */
!   "8",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW),	/* tune_flags.  */
!   &thunderxt88_prefetch_tune
! };
  
! static const struct tune_params thunderx_tunings =
  {
!   &thunderx_extra_costs,
!   &generic_addrcost_table,
!   &thunderx_regmove_cost,
!   &thunderx_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 6, /* load_int.  */
!     6, /* store_int.  */
!     6, /* load_fp.  */
!     6, /* store_fp.  */
!     6, /* load_pred.  */
!     6 /* store_pred.  */
!   }, /* memmov_cost.  */
!   2, /* issue_rate  */
!   AARCH64_FUSE_ALU_BRANCH, /* fusible_ops  */
!   "8",	/* function_align.  */
!   "8",	/* jump_align.  */
!   "8",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW
!    | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),	/* tune_flags.  */
!   &thunderx_prefetch_tune
  };
  
! static const struct tune_params tsv110_tunings =
  {
!   &tsv110_extra_costs,
!   &tsv110_addrcost_table,
!   &tsv110_regmove_cost,
!   &tsv110_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   4,    /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_ALU_BRANCH
!    | AARCH64_FUSE_ALU_CBZ), /* fusible_ops  */
!   "16", /* function_align.  */
!   "4",  /* jump_align.  */
!   "8",  /* loop_align.  */
!   2,    /* int_reassoc_width.  */
!   4,    /* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,    /* vec_reassoc_width.  */
!   2,    /* min_div_recip_mul_sf.  */
!   2,    /* min_div_recip_mul_df.  */
!   0,    /* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,     /* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),     /* tune_flags.  */
!   &tsv110_prefetch_tune
  };
  
! static const struct tune_params xgene1_tunings =
  {
!   &xgene1_extra_costs,
!   &xgene1_addrcost_table,
!   &xgene1_regmove_cost,
!   &xgene1_vector_cost,
!   &generic_branch_cost,
!   &xgene1_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 6, /* load_int.  */
!     6, /* store_int.  */
!     6, /* load_fp.  */
!     6, /* store_fp.  */
!     6, /* load_pred.  */
!     6 /* store_pred.  */
!   }, /* memmov_cost.  */
!   4, /* issue_rate  */
!   AARCH64_FUSE_NOTHING, /* fusible_ops  */
!   "16",	/* function_align.  */
!   "16",	/* jump_align.  */
!   "16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   17,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS),	/* tune_flags.  */
!   &xgene1_prefetch_tune
  };
  
! static const struct tune_params emag_tunings =
  {
!   &xgene1_extra_costs,
!   &xgene1_addrcost_table,
!   &xgene1_regmove_cost,
!   &xgene1_vector_cost,
!   &generic_branch_cost,
!   &xgene1_approx_modes,
!   SVE_NOT_IMPLEMENTED,
!   { 6, /* load_int.  */
!     6, /* store_int.  */
!     6, /* load_fp.  */
!     6, /* store_fp.  */
!     6, /* load_pred.  */
!     6 /* store_pred.  */
!   }, /* memmov_cost.  */
!   4, /* issue_rate  */
!   AARCH64_FUSE_NOTHING, /* fusible_ops  */
!   "16",	/* function_align.  */
!   "16",	/* jump_align.  */
!   "16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   17,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS),	/* tune_flags.  */
!   &xgene1_prefetch_tune
  };
  
! static const struct tune_params qdf24xx_tunings =
! {
!   &qdf24xx_extra_costs,
!   &qdf24xx_addrcost_table,
!   &qdf24xx_regmove_cost,
!   &qdf24xx_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   4, /* issue_rate  */
!   (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
!    | AARCH64_FUSE_MOVK_MOVK), /* fuseable_ops  */
!   "16",	/* function_align.  */
!   "8",	/* jump_align.  */
!   "16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   AARCH64_EXTRA_TUNE_RENAME_LOAD_REGS, /* tune_flags.  */
!   &qdf24xx_prefetch_tune
! };
  
! /* Tuning structure for the Qualcomm Saphira core.  Default to falkor values
!    for now.  */
! static const struct tune_params saphira_tunings =
! {
!   &generic_extra_costs,
!   &generic_addrcost_table,
!   &generic_regmove_cost,
!   &generic_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   4, /* issue_rate  */
!   (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
!    | AARCH64_FUSE_MOVK_MOVK), /* fuseable_ops  */
!   "16",	/* function_align.  */
!   "8",	/* jump_align.  */
!   "16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   1,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),		/* tune_flags.  */
!   &generic_prefetch_tune
! };
  
! static const struct tune_params thunderx2t99_tunings =
! {
!   &thunderx2t99_extra_costs,
!   &thunderx2t99_addrcost_table,
!   &thunderx2t99_regmove_cost,
!   &thunderx2t99_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   4, /* issue_rate.  */
!   (AARCH64_FUSE_ALU_BRANCH | AARCH64_FUSE_AES_AESMC
!    | AARCH64_FUSE_ALU_CBZ), /* fusible_ops  */
!   "16",	/* function_align.  */
!   "8",	/* jump_align.  */
!   "16",	/* loop_align.  */
!   3,	/* int_reassoc_width.  */
!   2,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
!   &thunderx2t99_prefetch_tune
! };
  
! static const struct tune_params thunderx3t110_tunings =
! {
!   &thunderx3t110_extra_costs,
!   &thunderx3t110_addrcost_table,
!   &thunderx3t110_regmove_cost,
!   &thunderx3t110_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   6, /* issue_rate.  */
!   (AARCH64_FUSE_ALU_BRANCH | AARCH64_FUSE_AES_AESMC
!    | AARCH64_FUSE_ALU_CBZ), /* fusible_ops  */
!   "16",	/* function_align.  */
!   "8",	/* jump_align.  */
!   "16",	/* loop_align.  */
!   3,	/* int_reassoc_width.  */
!   2,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
!   &thunderx3t110_prefetch_tune
! };
  
! static const struct tune_params neoversen1_tunings =
! {
!   &cortexa76_extra_costs,
!   &generic_addrcost_table,
!   &generic_regmove_cost,
!   &cortexa57_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     2, /* store_int.  */
!     5, /* load_fp.  */
!     2, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   3, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
!   "32:16",	/* function_align.  */
!   "4",		/* jump_align.  */
!   "32:16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
  
! static const struct tune_params ampere1_tunings =
  {
!   &ampere1_extra_costs,
!   &generic_addrcost_table,
!   &generic_regmove_cost,
!   &ampere1_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   4, /* issue_rate  */
!   (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC |
!    AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK |
!    AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ |
!    AARCH64_FUSE_CMP_BRANCH),
!   /* fusible_ops  */
!   "32",		/* function_align.  */
!   "4",		/* jump_align.  */
!   "32:16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NO_LDP_COMBINE),	/* tune_flags.  */
!   &ampere1_prefetch_tune
  };
  
! static const struct tune_params ampere1a_tunings =
! {
!   &ampere1a_extra_costs,
!   &generic_addrcost_table,
!   &generic_regmove_cost,
!   &ampere1_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_NOT_IMPLEMENTED, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   4, /* issue_rate  */
!   (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC |
!    AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK |
!    AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ |
!    AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_ALU_CBZ |
!    AARCH64_FUSE_ADDSUB_2REG_CONST1),
!   /* fusible_ops  */
!   "32",		/* function_align.  */
!   "4",		/* jump_align.  */
!   "32:16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NO_LDP_COMBINE),	/* tune_flags.  */
!   &ampere1_prefetch_tune
! };
  
! static const advsimd_vec_cost neoversev1_advsimd_vector_cost =
! {
!   2, /* int_stmt_cost  */
!   2, /* fp_stmt_cost  */
!   4, /* ld2_st2_permute_cost */
!   4, /* ld3_st3_permute_cost  */
!   5, /* ld4_st4_permute_cost  */
!   3, /* permute_cost  */
!   4, /* reduc_i8_cost  */
!   4, /* reduc_i16_cost  */
!   2, /* reduc_i32_cost  */
!   2, /* reduc_i64_cost  */
!   6, /* reduc_f16_cost  */
!   3, /* reduc_f32_cost  */
!   2, /* reduc_f64_cost  */
!   2, /* store_elt_extra_cost  */
!   /* This value is just inherited from the Cortex-A57 table.  */
!   8, /* vec_to_scalar_cost  */
!   /* This depends very much on what the scalar value is and
!      where it comes from.  E.g. some constants take two dependent
!      instructions or a load, while others might be moved from a GPR.
!      4 seems to be a reasonable compromise in practice.  */
!   4, /* scalar_to_vec_cost  */
!   4, /* align_load_cost  */
!   4, /* unalign_load_cost  */
!   /* Although stores have a latency of 2 and compete for the
!      vector pipes, in practice it's better not to model that.  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
  
! static const sve_vec_cost neoversev1_sve_vector_cost =
  {
!   {
!     2, /* int_stmt_cost  */
!     2, /* fp_stmt_cost  */
!     4, /* ld2_st2_permute_cost  */
!     7, /* ld3_st3_permute_cost  */
!     8, /* ld4_st4_permute_cost  */
!     3, /* permute_cost  */
!     /* Theoretically, a reduction involving 31 scalar ADDs could
!        complete in ~9 cycles and would have a cost of 31.  [SU]ADDV
!        completes in 14 cycles, so give it a cost of 31 + 5.  */
!     36, /* reduc_i8_cost  */
!     /* Likewise for 15 scalar ADDs (~5 cycles) vs. 12: 15 + 7.  */
!     22, /* reduc_i16_cost  */
!     /* Likewise for 7 scalar ADDs (~3 cycles) vs. 10: 7 + 7.  */
!     14, /* reduc_i32_cost  */
!     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 10: 3 + 8.  */
!     11, /* reduc_i64_cost  */
!     /* Theoretically, a reduction involving 15 scalar FADDs could
!        complete in ~9 cycles and would have a cost of 30.  FADDV
!        completes in 13 cycles, so give it a cost of 30 + 4.  */
!     34, /* reduc_f16_cost  */
!     /* Likewise for 7 scalar FADDs (~6 cycles) vs. 11: 14 + 5.  */
!     19, /* reduc_f32_cost  */
!     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 9: 6 + 5.  */
!     11, /* reduc_f64_cost  */
!     2, /* store_elt_extra_cost  */
!     /* This value is just inherited from the Cortex-A57 table.  */
!     8, /* vec_to_scalar_cost  */
!     /* See the comment above the Advanced SIMD versions.  */
!     4, /* scalar_to_vec_cost  */
!     4, /* align_load_cost  */
!     4, /* unalign_load_cost  */
!     /* Although stores have a latency of 2 and compete for the
!        vector pipes, in practice it's better not to model that.  */
!     1, /* unalign_store_cost  */
!     1  /* store_cost  */
!   },
!   3, /* clast_cost  */
!   19, /* fadda_f16_cost  */
!   11, /* fadda_f32_cost  */
!   8, /* fadda_f64_cost  */
!   32, /* gather_load_x32_cost  */
!   16, /* gather_load_x64_cost  */
!   3 /* scatter_store_elt_cost  */
! };
  
! static const aarch64_scalar_vec_issue_info neoversev1_scalar_issue_info =
  {
!   3, /* loads_stores_per_cycle  */
!   2, /* stores_per_cycle  */
!   4, /* general_ops_per_cycle  */
!   0, /* fp_simd_load_general_ops  */
!   1 /* fp_simd_store_general_ops  */
! };
  
- static const aarch64_advsimd_vec_issue_info neoversev1_advsimd_issue_info =
- {
-   {
-     3, /* loads_stores_per_cycle  */
-     2, /* stores_per_cycle  */
-     4, /* general_ops_per_cycle  */
-     0, /* fp_simd_load_general_ops  */
-     1 /* fp_simd_store_general_ops  */
-   },
-   2, /* ld2_st2_general_ops  */
-   2, /* ld3_st3_general_ops  */
-   3 /* ld4_st4_general_ops  */
- };
  
! static const aarch64_sve_vec_issue_info neoversev1_sve_issue_info =
! {
!   {
      {
!       2, /* loads_per_cycle  */
!       2, /* stores_per_cycle  */
!       2, /* general_ops_per_cycle  */
!       0, /* fp_simd_load_general_ops  */
!       1 /* fp_simd_store_general_ops  */
!     },
!     2, /* ld2_st2_general_ops  */
!     2, /* ld3_st3_general_ops  */
!     3 /* ld4_st4_general_ops  */
!   },
!   1, /* pred_ops_per_cycle  */
!   2, /* while_pred_ops  */
!   2, /* int_cmp_pred_ops  */
!   1, /* fp_cmp_pred_ops  */
!   1, /* gather_scatter_pair_general_ops  */
!   1 /* gather_scatter_pair_pred_ops  */
! };
  
! static const aarch64_vec_issue_info neoversev1_vec_issue_info =
  {
!   &neoversev1_scalar_issue_info,
!   &neoversev1_advsimd_issue_info,
!   &neoversev1_sve_issue_info
! };
  
! /* Neoverse V1 costs for vector insn classes.  */
! static const struct cpu_vector_cost neoversev1_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   2, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   1, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &neoversev1_advsimd_vector_cost, /* advsimd  */
!   &neoversev1_sve_vector_cost, /* sve  */
!   &neoversev1_vec_issue_info /* issue_info  */
! };
  
! static const struct tune_params neoversev1_tunings =
! {
!   &cortexa76_extra_costs,
!   &neoversev1_addrcost_table,
!   &neoversev1_regmove_cost,
!   &neoversev1_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_256, /* sve_width  */
!   { 4, /* load_int.  */
!     2, /* store_int.  */
!     6, /* load_fp.  */
!     2, /* store_fp.  */
!     6, /* load_pred.  */
!     1 /* store_pred.  */
!   }, /* memmov_cost.  */
!   3, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
!   "32:16",	/* function_align.  */
!   "4",		/* jump_align.  */
!   "32:16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   4,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
!    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
!    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
!    | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
  
! static const sve_vec_cost neoverse512tvb_sve_vector_cost =
  {
!   {
!     2, /* int_stmt_cost  */
!     2, /* fp_stmt_cost  */
!     4, /* ld2_st2_permute_cost  */
!     5, /* ld3_st3_permute_cost  */
!     5, /* ld4_st4_permute_cost  */
!     3, /* permute_cost  */
!     /* Theoretically, a reduction involving 15 scalar ADDs could
!        complete in ~5 cycles and would have a cost of 15.  Assume that
!        [SU]ADDV completes in 11 cycles and so give it a cost of 15 + 6.  */
!     21, /* reduc_i8_cost  */
!     /* Likewise for 7 scalar ADDs (~3 cycles) vs. 9: 7 + 6.  */
!     13, /* reduc_i16_cost  */
!     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 8: 3 + 6.  */
!     9, /* reduc_i32_cost  */
!     /* Likewise for 1 scalar ADD (1 cycle) vs. 8: 1 + 7.  */
!     8, /* reduc_i64_cost  */
!     /* Theoretically, a reduction involving 7 scalar FADDs could
!        complete in ~6 cycles and would have a cost of 14.  Assume that
!        FADDV completes in 8 cycles and so give it a cost of 14 + 2.  */
!     16, /* reduc_f16_cost  */
!     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 6: 6 + 2.  */
!     8, /* reduc_f32_cost  */
!     /* Likewise for 1 scalar FADD (2 cycles) vs. 4: 2 + 2.  */
!     4, /* reduc_f64_cost  */
!     2, /* store_elt_extra_cost  */
!     /* This value is just inherited from the Cortex-A57 table.  */
!     8, /* vec_to_scalar_cost  */
!     /* This depends very much on what the scalar value is and
!        where it comes from.  E.g. some constants take two dependent
!        instructions or a load, while others might be moved from a GPR.
!        4 seems to be a reasonable compromise in practice.  */
!     4, /* scalar_to_vec_cost  */
!     4, /* align_load_cost  */
!     4, /* unalign_load_cost  */
!     /* Although stores generally have a latency of 2 and compete for the
!        vector pipes, in practice it's better not to model that.  */
!     1, /* unalign_store_cost  */
!     1  /* store_cost  */
!   },
!   3, /* clast_cost  */
!   10, /* fadda_f16_cost  */
!   6, /* fadda_f32_cost  */
!   4, /* fadda_f64_cost  */
!   /* A strided Advanced SIMD x64 load would take two parallel FP loads
!      (6 cycles) plus an insertion (2 cycles).  Assume a 64-bit SVE gather
!      is 1 cycle more.  The Advanced SIMD version is costed as 2 scalar loads
!      (cost 8) and a vec_construct (cost 2).  Add a full vector operation
!      (cost 2) to that, to avoid the difference being lost in rounding.
! 
!      There is no easy comparison between a strided Advanced SIMD x32 load
!      and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector
!      operation more than a 64-bit gather.  */
!   14, /* gather_load_x32_cost  */
!   12, /* gather_load_x64_cost  */
!   3 /* scatter_store_elt_cost  */
! };
  
! static const aarch64_sve_vec_issue_info neoverse512tvb_sve_issue_info =
  {
!   {
      {
!       3, /* loads_per_cycle  */
!       2, /* stores_per_cycle  */
!       4, /* general_ops_per_cycle  */
!       0, /* fp_simd_load_general_ops  */
!       1 /* fp_simd_store_general_ops  */
!     },
!     2, /* ld2_st2_general_ops  */
!     2, /* ld3_st3_general_ops  */
!     3 /* ld4_st4_general_ops  */
!   },
!   2, /* pred_ops_per_cycle  */
!   2, /* while_pred_ops  */
!   2, /* int_cmp_pred_ops  */
!   1, /* fp_cmp_pred_ops  */
!   1, /* gather_scatter_pair_general_ops  */
!   1 /* gather_scatter_pair_pred_ops  */
! };
! 
! static const aarch64_vec_issue_info neoverse512tvb_vec_issue_info =
! {
!   &neoversev1_scalar_issue_info,
!   &neoversev1_advsimd_issue_info,
!   &neoverse512tvb_sve_issue_info
! };
! 
! static const struct cpu_vector_cost neoverse512tvb_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   2, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   1, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &neoversev1_advsimd_vector_cost, /* advsimd  */
!   &neoverse512tvb_sve_vector_cost, /* sve  */
!   &neoverse512tvb_vec_issue_info /* issue_info  */
! };
! 
! static const struct tune_params neoverse512tvb_tunings =
! {
!   &cortexa76_extra_costs,
!   &neoversev1_addrcost_table,
!   &neoversev1_regmove_cost,
!   &neoverse512tvb_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_128 | SVE_256, /* sve_width  */
!   { 4, /* load_int.  */
!     2, /* store_int.  */
!     6, /* load_fp.  */
!     2, /* store_fp.  */
!     6, /* load_pred.  */
!     1 /* store_pred.  */
!   }, /* memmov_cost.  */
!   3, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
!   "32:16",	/* function_align.  */
!   "4",		/* jump_align.  */
!   "32:16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   4,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
!    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
!    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
! 
! static const advsimd_vec_cost neoversen2_advsimd_vector_cost =
! {
!   2, /* int_stmt_cost  */
!   2, /* fp_stmt_cost  */
!   2, /* ld2_st2_permute_cost */
!   2, /* ld3_st3_permute_cost  */
!   3, /* ld4_st4_permute_cost  */
!   3, /* permute_cost  */
!   4, /* reduc_i8_cost  */
!   4, /* reduc_i16_cost  */
!   2, /* reduc_i32_cost  */
!   2, /* reduc_i64_cost  */
!   6, /* reduc_f16_cost  */
!   4, /* reduc_f32_cost  */
!   2, /* reduc_f64_cost  */
!   2, /* store_elt_extra_cost  */
!   /* This value is just inherited from the Cortex-A57 table.  */
!   8, /* vec_to_scalar_cost  */
!   /* This depends very much on what the scalar value is and
!      where it comes from.  E.g. some constants take two dependent
!      instructions or a load, while others might be moved from a GPR.
!      4 seems to be a reasonable compromise in practice.  */
!   4, /* scalar_to_vec_cost  */
!   4, /* align_load_cost  */
!   4, /* unalign_load_cost  */
!   /* Although stores have a latency of 2 and compete for the
!      vector pipes, in practice it's better not to model that.  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
  
! static const sve_vec_cost neoversen2_sve_vector_cost =
! {
!   {
!     2, /* int_stmt_cost  */
!     2, /* fp_stmt_cost  */
!     3, /* ld2_st2_permute_cost  */
!     4, /* ld3_st3_permute_cost  */
!     4, /* ld4_st4_permute_cost  */
!     3, /* permute_cost  */
!     /* Theoretically, a reduction involving 15 scalar ADDs could
!        complete in ~5 cycles and would have a cost of 15.  [SU]ADDV
!        completes in 11 cycles, so give it a cost of 15 + 6.  */
!     21, /* reduc_i8_cost  */
!     /* Likewise for 7 scalar ADDs (~3 cycles) vs. 9: 7 + 6.  */
!     13, /* reduc_i16_cost  */
!     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 8: 3 + 6.  */
!     9, /* reduc_i32_cost  */
!     /* Likewise for 1 scalar ADD (~1 cycles) vs. 2: 1 + 1.  */
!     2, /* reduc_i64_cost  */
!     /* Theoretically, a reduction involving 7 scalar FADDs could
!        complete in ~8 cycles and would have a cost of 14.  FADDV
!        completes in 6 cycles, so give it a cost of 14 - 2.  */
!     12, /* reduc_f16_cost  */
!     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 4: 6 - 0.  */
!     6, /* reduc_f32_cost  */
!     /* Likewise for 1 scalar FADD (~2 cycles) vs. 2: 2 - 0.  */
!     2, /* reduc_f64_cost  */
!     2, /* store_elt_extra_cost  */
!     /* This value is just inherited from the Cortex-A57 table.  */
!     8, /* vec_to_scalar_cost  */
!     /* See the comment above the Advanced SIMD versions.  */
!     4, /* scalar_to_vec_cost  */
!     4, /* align_load_cost  */
!     4, /* unalign_load_cost  */
!     /* Although stores have a latency of 2 and compete for the
!        vector pipes, in practice it's better not to model that.  */
!     1, /* unalign_store_cost  */
!     1  /* store_cost  */
!   },
!   3, /* clast_cost  */
!   10, /* fadda_f16_cost  */
!   6, /* fadda_f32_cost  */
!   4, /* fadda_f64_cost  */
!   /* A strided Advanced SIMD x64 load would take two parallel FP loads
!      (8 cycles) plus an insertion (2 cycles).  Assume a 64-bit SVE gather
!      is 1 cycle more.  The Advanced SIMD version is costed as 2 scalar loads
!      (cost 8) and a vec_construct (cost 2).  Add a full vector operation
!      (cost 2) to that, to avoid the difference being lost in rounding.
  
!      There is no easy comparison between a strided Advanced SIMD x32 load
!      and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector
!      operation more than a 64-bit gather.  */
!   14, /* gather_load_x32_cost  */
!   12, /* gather_load_x64_cost  */
!   3 /* scatter_store_elt_cost  */
! };
  
! static const aarch64_scalar_vec_issue_info neoversen2_scalar_issue_info =
! {
!   3, /* loads_stores_per_cycle  */
!   2, /* stores_per_cycle  */
!   4, /* general_ops_per_cycle  */
!   0, /* fp_simd_load_general_ops  */
!   1 /* fp_simd_store_general_ops  */
! };
  
! static const aarch64_advsimd_vec_issue_info neoversen2_advsimd_issue_info =
  {
!   {
!     3, /* loads_stores_per_cycle  */
!     2, /* stores_per_cycle  */
!     2, /* general_ops_per_cycle  */
!     0, /* fp_simd_load_general_ops  */
!     1 /* fp_simd_store_general_ops  */
!   },
!   2, /* ld2_st2_general_ops  */
!   2, /* ld3_st3_general_ops  */
!   3 /* ld4_st4_general_ops  */
! };
  
! static const aarch64_sve_vec_issue_info neoversen2_sve_issue_info =
  {
!   {
      {
!       3, /* loads_per_cycle  */
!       2, /* stores_per_cycle  */
!       2, /* general_ops_per_cycle  */
!       0, /* fp_simd_load_general_ops  */
!       1 /* fp_simd_store_general_ops  */
!     },
!     2, /* ld2_st2_general_ops  */
!     3, /* ld3_st3_general_ops  */
!     3 /* ld4_st4_general_ops  */
!   },
!   2, /* pred_ops_per_cycle  */
!   2, /* while_pred_ops  */
!   2, /* int_cmp_pred_ops  */
!   1, /* fp_cmp_pred_ops  */
!   1, /* gather_scatter_pair_general_ops  */
!   1 /* gather_scatter_pair_pred_ops  */
! };
! 
! static const aarch64_vec_issue_info neoversen2_vec_issue_info =
! {
!   &neoversen2_scalar_issue_info,
!   &neoversen2_advsimd_issue_info,
!   &neoversen2_sve_issue_info
! };
! 
! /* Neoverse N2 costs for vector insn classes.  */
! static const struct cpu_vector_cost neoversen2_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   2, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   1, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &neoversen2_advsimd_vector_cost, /* advsimd  */
!   &neoversen2_sve_vector_cost, /* sve  */
!   &neoversen2_vec_issue_info /* issue_info  */
! };
! 
! static const struct tune_params neoversen2_tunings =
! {
!   &cortexa76_extra_costs,
!   &neoversen2_addrcost_table,
!   &neoversen2_regmove_cost,
!   &neoversen2_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_128, /* sve_width  */
!   { 4, /* load_int.  */
!     1, /* store_int.  */
!     6, /* load_fp.  */
!     2, /* store_fp.  */
!     6, /* load_pred.  */
!     1 /* store_pred.  */
!   }, /* memmov_cost.  */
!   3, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
!   "32:16",	/* function_align.  */
!   "4",		/* jump_align.  */
!   "32:16",	/* loop_align.  */
!   2,	/* int_reassoc_width.  */
!   4,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
!    | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
!    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
!    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
! 
! static const advsimd_vec_cost neoversev2_advsimd_vector_cost =
! {
!   2, /* int_stmt_cost  */
!   2, /* fp_stmt_cost  */
!   2, /* ld2_st2_permute_cost */
!   2, /* ld3_st3_permute_cost  */
!   3, /* ld4_st4_permute_cost  */
!   3, /* permute_cost  */
!   4, /* reduc_i8_cost  */
!   4, /* reduc_i16_cost  */
!   2, /* reduc_i32_cost  */
!   2, /* reduc_i64_cost  */
!   6, /* reduc_f16_cost  */
!   3, /* reduc_f32_cost  */
!   2, /* reduc_f64_cost  */
!   2, /* store_elt_extra_cost  */
!   /* This value is just inherited from the Cortex-A57 table.  */
!   8, /* vec_to_scalar_cost  */
!   /* This depends very much on what the scalar value is and
!      where it comes from.  E.g. some constants take two dependent
!      instructions or a load, while others might be moved from a GPR.
!      4 seems to be a reasonable compromise in practice.  */
!   4, /* scalar_to_vec_cost  */
!   4, /* align_load_cost  */
!   4, /* unalign_load_cost  */
!   /* Although stores have a latency of 2 and compete for the
!      vector pipes, in practice it's better not to model that.  */
!   1, /* unalign_store_cost  */
!   1  /* store_cost  */
! };
! 
! static const sve_vec_cost neoversev2_sve_vector_cost =
! {
!   {
!     2, /* int_stmt_cost  */
!     2, /* fp_stmt_cost  */
!     3, /* ld2_st2_permute_cost  */
!     3, /* ld3_st3_permute_cost  */
!     4, /* ld4_st4_permute_cost  */
!     3, /* permute_cost  */
!     /* Theoretically, a reduction involving 15 scalar ADDs could
!        complete in ~3 cycles and would have a cost of 15.  [SU]ADDV
!        completes in 11 cycles, so give it a cost of 15 + 8.  */
!     21, /* reduc_i8_cost  */
!     /* Likewise for 7 scalar ADDs (~2 cycles) vs. 9: 7 + 7.  */
!     14, /* reduc_i16_cost  */
!     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 8: 3 + 4.  */
!     7, /* reduc_i32_cost  */
!     /* Likewise for 1 scalar ADD (~1 cycles) vs. 2: 1 + 1.  */
!     2, /* reduc_i64_cost  */
!     /* Theoretically, a reduction involving 7 scalar FADDs could
!        complete in ~6 cycles and would have a cost of 14.  FADDV
!        completes in 8 cycles, so give it a cost of 14 + 2.  */
!     16, /* reduc_f16_cost  */
!     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 6: 6 + 2.  */
!     8, /* reduc_f32_cost  */
!     /* Likewise for 1 scalar FADD (~2 cycles) vs. 4: 2 + 2.  */
!     4, /* reduc_f64_cost  */
!     2, /* store_elt_extra_cost  */
!     /* This value is just inherited from the Cortex-A57 table.  */
!     8, /* vec_to_scalar_cost  */
!     /* See the comment above the Advanced SIMD versions.  */
!     4, /* scalar_to_vec_cost  */
!     4, /* align_load_cost  */
!     4, /* unalign_load_cost  */
!     /* Although stores have a latency of 2 and compete for the
!        vector pipes, in practice it's better not to model that.  */
!     1, /* unalign_store_cost  */
!     1  /* store_cost  */
!   },
!   3, /* clast_cost  */
!   10, /* fadda_f16_cost  */
!   6, /* fadda_f32_cost  */
!   4, /* fadda_f64_cost  */
!   /* A strided Advanced SIMD x64 load would take two parallel FP loads
!      (8 cycles) plus an insertion (2 cycles).  Assume a 64-bit SVE gather
!      is 1 cycle more.  The Advanced SIMD version is costed as 2 scalar loads
!      (cost 8) and a vec_construct (cost 2).  Add a full vector operation
!      (cost 2) to that, to avoid the difference being lost in rounding.
! 
!      There is no easy comparison between a strided Advanced SIMD x32 load
!      and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector
!      operation more than a 64-bit gather.  */
!   14, /* gather_load_x32_cost  */
!   12, /* gather_load_x64_cost  */
!   3 /* scatter_store_elt_cost  */
! };
! 
! static const aarch64_scalar_vec_issue_info neoversev2_scalar_issue_info =
! {
!   3, /* loads_stores_per_cycle  */
!   2, /* stores_per_cycle  */
!   6, /* general_ops_per_cycle  */
!   0, /* fp_simd_load_general_ops  */
!   1 /* fp_simd_store_general_ops  */
! };
! 
! static const aarch64_advsimd_vec_issue_info neoversev2_advsimd_issue_info =
! {
!   {
!     3, /* loads_stores_per_cycle  */
!     2, /* stores_per_cycle  */
!     4, /* general_ops_per_cycle  */
!     0, /* fp_simd_load_general_ops  */
!     1 /* fp_simd_store_general_ops  */
!   },
!   2, /* ld2_st2_general_ops  */
!   2, /* ld3_st3_general_ops  */
!   3 /* ld4_st4_general_ops  */
! };
  
! static const aarch64_sve_vec_issue_info neoversev2_sve_issue_info =
! {
!   {
      {
!       3, /* loads_per_cycle  */
!       2, /* stores_per_cycle  */
!       4, /* general_ops_per_cycle  */
!       0, /* fp_simd_load_general_ops  */
!       1 /* fp_simd_store_general_ops  */
!     },
!     2, /* ld2_st2_general_ops  */
!     3, /* ld3_st3_general_ops  */
!     3 /* ld4_st4_general_ops  */
!   },
!   2, /* pred_ops_per_cycle  */
!   2, /* while_pred_ops  */
!   2, /* int_cmp_pred_ops  */
!   1, /* fp_cmp_pred_ops  */
!   1, /* gather_scatter_pair_general_ops  */
!   1 /* gather_scatter_pair_pred_ops  */
! };
! 
! static const aarch64_vec_issue_info neoversev2_vec_issue_info =
! {
!   &neoversev2_scalar_issue_info,
!   &neoversev2_advsimd_issue_info,
!   &neoversev2_sve_issue_info
! };
! 
! /* Demeter costs for vector insn classes.  */
! static const struct cpu_vector_cost neoversev2_vector_cost =
! {
!   1, /* scalar_int_stmt_cost  */
!   2, /* scalar_fp_stmt_cost  */
!   4, /* scalar_load_cost  */
!   1, /* scalar_store_cost  */
!   1, /* cond_taken_branch_cost  */
!   1, /* cond_not_taken_branch_cost  */
!   &neoversev2_advsimd_vector_cost, /* advsimd  */
!   &neoversev2_sve_vector_cost, /* sve  */
!   &neoversev2_vec_issue_info /* issue_info  */
! };
! 
! static const struct tune_params neoversev2_tunings =
! {
!   &cortexa76_extra_costs,
!   &neoversev2_addrcost_table,
!   &neoversev2_regmove_cost,
!   &neoversev2_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_128, /* sve_width  */
!   { 4, /* load_int.  */
!     2, /* store_int.  */
!     6, /* load_fp.  */
!     1, /* store_fp.  */
!     6, /* load_pred.  */
!     2 /* store_pred.  */
!   }, /* memmov_cost.  */
!   5, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
!   "32:16",	/* function_align.  */
!   "4",		/* jump_align.  */
!   "32:16",	/* loop_align.  */
!   3,	/* int_reassoc_width.  */
!   6,	/* fp_reassoc_width.  */
!   4,	/* fma_reassoc_width.  */
!   3,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
!    | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
!    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
!    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
!   &generic_prefetch_tune
! };
  
! static const struct tune_params a64fx_tunings =
! {
!   &a64fx_extra_costs,
!   &a64fx_addrcost_table,
!   &a64fx_regmove_cost,
!   &a64fx_vector_cost,
!   &generic_branch_cost,
!   &generic_approx_modes,
!   SVE_512, /* sve_width  */
!   { 4, /* load_int.  */
!     4, /* store_int.  */
!     4, /* load_fp.  */
!     4, /* store_fp.  */
!     4, /* load_pred.  */
!     4 /* store_pred.  */
!   }, /* memmov_cost.  */
!   7, /* issue_rate  */
!   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
!   "32",	/* function_align.  */
!   "16",	/* jump_align.  */
!   "32",	/* loop_align.  */
!   4,	/* int_reassoc_width.  */
!   2,	/* fp_reassoc_width.  */
!   1,	/* fma_reassoc_width.  */
!   2,	/* vec_reassoc_width.  */
!   2,	/* min_div_recip_mul_sf.  */
!   2,	/* min_div_recip_mul_df.  */
!   0,	/* max_case_values.  */
!   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
!   &a64fx_prefetch_tune
! };
  
! /* Support for fine-grained override of the tuning structures.  */
! struct aarch64_tuning_override_function
  {
!   const char* name;
!   void (*parse_override)(const char*, struct tune_params*);
! };
! 
! static void aarch64_parse_fuse_string (const char*, struct tune_params*);
! static void aarch64_parse_tune_string (const char*, struct tune_params*);
! static void aarch64_parse_sve_width_string (const char*, struct tune_params*);
  
! static const struct aarch64_tuning_override_function
! aarch64_tuning_override_functions[] =
! {
!   { "fuse", aarch64_parse_fuse_string },
!   { "tune", aarch64_parse_tune_string },
!   { "sve_width", aarch64_parse_sve_width_string },
!   { NULL, NULL }
! };
  
! /* A processor implementing AArch64.  */
! struct processor
! {
!   const char *name;
!   aarch64_processor ident;
!   aarch64_processor sched_core;
!   aarch64_arch arch;
!   aarch64_feature_flags flags;
!   const tune_params *tune;
! };
  
! /* Architectures implementing AArch64.  */
! static CONSTEXPR const processor all_architectures[] =
  {
! #define AARCH64_ARCH(NAME, CORE, ARCH_IDENT, D, E) \
!   {NAME, CORE, CORE, AARCH64_ARCH_##ARCH_IDENT, \
!    feature_deps::ARCH_IDENT ().enable, NULL},
! #include "aarch64-arches.def"
!   {NULL, aarch64_none, aarch64_none, aarch64_no_arch, 0, NULL}
! };
  
! /* Processor cores implementing AArch64.  */
! static const struct processor all_cores[] =
! {
! #define AARCH64_CORE(NAME, IDENT, SCHED, ARCH, E, COSTS, G, H, I) \
!   {NAME, IDENT, SCHED, AARCH64_ARCH_##ARCH, \
!    feature_deps::cpu_##IDENT, &COSTS##_tunings},
! #include "aarch64-cores.def"
!   {"generic", generic, cortexa53, AARCH64_ARCH_V8A,
!    feature_deps::V8A ().enable, &generic_tunings},
!   {NULL, aarch64_none, aarch64_none, aarch64_no_arch, 0, NULL}
! };
  
! /* The current tuning set.  */
! struct tune_params aarch64_tune_params = generic_tunings;
  
  /* Check whether an 'aarch64_vector_pcs' attribute is valid.  */
  
--- 383,714 ----
  };
  
  /* Tuning parameters.  */
+ #include "tuning_models/generic.h"
+ #include "tuning_models/generic_armv8_a.h"
+ #include "tuning_models/generic_armv9_a.h"
+ #include "tuning_models/cortexa35.h"
+ #include "tuning_models/cortexa53.h"
+ #include "tuning_models/cortexa57.h"
+ #include "tuning_models/cortexa72.h"
+ #include "tuning_models/cortexa73.h"
+ #include "tuning_models/exynosm1.h"
+ #include "tuning_models/thunderxt88.h"
+ #include "tuning_models/thunderx.h"
+ #include "tuning_models/tsv110.h"
+ #include "tuning_models/xgene1.h"
+ #include "tuning_models/emag.h"
+ #include "tuning_models/qdf24xx.h"
+ #include "tuning_models/saphira.h"
+ #include "tuning_models/thunderx2t99.h"
+ #include "tuning_models/thunderx3t110.h"
+ #include "tuning_models/neoversen1.h"
+ #include "tuning_models/ampere1.h"
+ #include "tuning_models/ampere1a.h"
+ #include "tuning_models/ampere1b.h"
+ #include "tuning_models/neoversev1.h"
+ #include "tuning_models/neoverse512tvb.h"
+ #include "tuning_models/neoversen2.h"
+ #include "tuning_models/neoversev2.h"
+ #include "tuning_models/a64fx.h"
  
! /* Support for fine-grained override of the tuning structures.  */
! struct aarch64_tuning_override_function
  {
!   const char* name;
!   void (*parse_override)(const char*, struct tune_params*);
  };
  
! static void aarch64_parse_fuse_string (const char*, struct tune_params*);
! static void aarch64_parse_tune_string (const char*, struct tune_params*);
! static void aarch64_parse_sve_width_string (const char*, struct tune_params*);
  
! static const struct aarch64_tuning_override_function
! aarch64_tuning_override_functions[] =
  {
!   { "fuse", aarch64_parse_fuse_string },
!   { "tune", aarch64_parse_tune_string },
!   { "sve_width", aarch64_parse_sve_width_string },
!   { NULL, NULL }
  };
  
! /* A processor implementing AArch64.  */
! struct processor
  {
!   const char *name;
!   aarch64_processor ident;
!   aarch64_processor sched_core;
!   aarch64_arch arch;
!   aarch64_feature_flags flags;
!   const tune_params *tune;
  };
  
! /* Architectures implementing AArch64.  */
! static CONSTEXPR const processor all_architectures[] =
  {
! #define AARCH64_ARCH(NAME, CORE, ARCH_IDENT, D, E) \
!   {NAME, CORE, CORE, AARCH64_ARCH_##ARCH_IDENT, \
!    feature_deps::ARCH_IDENT ().enable, NULL},
! #include "aarch64-arches.def"
!   {NULL, aarch64_none, aarch64_none, aarch64_no_arch, 0, NULL}
  };
  
! /* Processor cores implementing AArch64.  */
! static const struct processor all_cores[] =
  {
! #define AARCH64_CORE(NAME, IDENT, SCHED, ARCH, E, COSTS, G, H, I) \
!   {NAME, IDENT, SCHED, AARCH64_ARCH_##ARCH, \
!    feature_deps::cpu_##IDENT, &COSTS##_tunings},
! #include "aarch64-cores.def"
!   {NULL, aarch64_none, aarch64_none, aarch64_no_arch, 0, NULL}
  };
+ /* Internal representation of system registers.  */
+ typedef struct {
+   const char *name;
+   /* Stringified sysreg encoding values, represented as
+      s<sn>_<op1>_c<cn>_c<cm>_<op2>.  */
+   const char *encoding;
+   /* Flags affecting sysreg usage, such as read/write-only.  */
+   unsigned properties;
+   /* Architectural features implied by sysreg.  */
+   aarch64_feature_flags arch_reqs;
+ } sysreg_t;
  
! /* An aarch64_feature_set initializer for a single feature,
!    AARCH64_FEATURE_<FEAT>.  */
! #define AARCH64_FEATURE(FEAT) AARCH64_FL_##FEAT
  
! /* Used by AARCH64_FEATURES.  */
! #define AARCH64_OR_FEATURES_1(X, F1) \
!   AARCH64_FEATURE (F1)
! #define AARCH64_OR_FEATURES_2(X, F1, F2) \
!   (AARCH64_FEATURE (F1) | AARCH64_OR_FEATURES_1 (X, F2))
! #define AARCH64_OR_FEATURES_3(X, F1, ...) \
!   (AARCH64_FEATURE (F1) | AARCH64_OR_FEATURES_2 (X, __VA_ARGS__))
  
! /* An aarch64_feature_set initializer for the N features listed in "...".  */
! #define AARCH64_FEATURES(N, ...) \
!   AARCH64_OR_FEATURES_##N (0, __VA_ARGS__)
  
! #define AARCH64_NO_FEATURES	   0
  
! /* Flags associated with the properties of system registers.  It mainly serves
!    to mark particular registers as read or write only.  */
! #define F_DEPRECATED		   (1 << 1)
! #define F_REG_READ		   (1 << 2)
! #define F_REG_WRITE		   (1 << 3)
! #define F_ARCHEXT		   (1 << 4)
! /* Flag indicating register name is alias for another system register.  */
! #define F_REG_ALIAS		   (1 << 5)
! /* Flag indicatinig registers which may be implemented with 128-bits.  */
! #define F_REG_128		   (1 << 6)
  
! /* Database of system registers, their encodings and architectural
!    requirements.  */
! const sysreg_t aarch64_sysregs[] =
  {
! #define CPENC(SN, OP1, CN, CM, OP2) "s"#SN"_"#OP1"_c"#CN"_c"#CM"_"#OP2
! #define SYSREG(NAME, ENC, FLAGS, ARCH) \
!   { NAME, ENC, FLAGS, ARCH },
! #include "aarch64-sys-regs.def"
! #undef CPENC
  };
  
! #undef AARCH64_NO_FEATURES
  
! using sysreg_map_t = hash_map<nofree_string_hash, const sysreg_t *>;
! static sysreg_map_t *sysreg_map = nullptr;
  
! /* Map system register names to their hardware metadata: encoding,
!    feature flags and architectural feature requirements, all of which
!    are encoded in a sysreg_t struct.  */
! void
! aarch64_register_sysreg (const char *name, const sysreg_t *metadata)
  {
!   bool dup = sysreg_map->put (name, metadata);
!   gcc_checking_assert (!dup);
! }
  
! /* Lazily initialize hash table for system register validation,
!    checking the validity of supplied register name and returning
!    register's associated metadata.  */
! static void
! aarch64_init_sysregs (void)
  {
!   gcc_assert (!sysreg_map);
!   sysreg_map = new sysreg_map_t;
  
  
!   for (unsigned i = 0; i < ARRAY_SIZE (aarch64_sysregs); i++)
      {
!       const sysreg_t *reg = aarch64_sysregs + i;
!       aarch64_register_sysreg (reg->name, reg);
!     }
! }
  
! /* No direct access to the sysreg hash-map should be made.  Doing so
!    risks trying to acess an unitialized hash-map and dereferencing the
!    returned double pointer without due care risks dereferencing a
!    null-pointer.  */
! const sysreg_t *
! aarch64_lookup_sysreg_map (const char *regname)
  {
!   if (!sysreg_map)
!     aarch64_init_sysregs ();
  
!   const sysreg_t **sysreg_entry = sysreg_map->get (regname);
!   if (sysreg_entry != NULL)
!     return *sysreg_entry;
!   return NULL;
! }
  
! /* The current tuning set.  */
! struct tune_params aarch64_tune_params = generic_tunings;
  
! /* If NAME is the name of an arm:: attribute that describes shared state,
!    return its associated AARCH64_STATE_* flags, otherwise return 0.  */
! static unsigned int
! aarch64_attribute_shared_state_flags (const char *name)
  {
!   if (strcmp (name, "in") == 0)
!     return AARCH64_STATE_SHARED | AARCH64_STATE_IN;
!   if (strcmp (name, "inout") == 0)
!     return AARCH64_STATE_SHARED | AARCH64_STATE_IN | AARCH64_STATE_OUT;
!   if (strcmp (name, "out") == 0)
!     return AARCH64_STATE_SHARED | AARCH64_STATE_OUT;
!   if (strcmp (name, "preserves") == 0)
!     return AARCH64_STATE_SHARED;
!   return 0;
! }
  
! /* See whether attribute list ATTRS has any sharing information
!    for state STATE_NAME.  Return the associated state flags if so,
!    otherwise return 0.  */
! static unsigned int
! aarch64_lookup_shared_state_flags (tree attrs, const char *state_name)
  {
!   for (tree attr = attrs; attr; attr = TREE_CHAIN (attr))
      {
!       if (!cxx11_attribute_p (attr))
! 	continue;
  
!       auto ns = IDENTIFIER_POINTER (TREE_PURPOSE (TREE_PURPOSE (attr)));
!       if (strcmp (ns, "arm") != 0)
! 	continue;
  
!       auto attr_name = IDENTIFIER_POINTER (TREE_VALUE (TREE_PURPOSE (attr)));
!       auto flags = aarch64_attribute_shared_state_flags (attr_name);
!       if (!flags)
! 	continue;
  
!       for (tree arg = TREE_VALUE (attr); arg; arg = TREE_CHAIN (arg))
! 	{
! 	  tree value = TREE_VALUE (arg);
! 	  if (TREE_CODE (value) == STRING_CST
! 	      && strcmp (TREE_STRING_POINTER (value), state_name) == 0)
! 	    return flags;
! 	}
!     }
!   return 0;
! }
  
! /* Return true if DECL creates a new scope for state STATE_STRING.  */
! static bool
! aarch64_fndecl_has_new_state (const_tree decl, const char *state_name)
  {
!   if (tree attr = lookup_attribute ("arm", "new", DECL_ATTRIBUTES (decl)))
!     for (tree arg = TREE_VALUE (attr); arg; arg = TREE_CHAIN (arg))
!       {
! 	tree value = TREE_VALUE (arg);
! 	if (TREE_CODE (value) == STRING_CST
! 	    && strcmp (TREE_STRING_POINTER (value), state_name) == 0)
! 	  return true;
!       }
!   return false;
! }
  
! /* Return true if attribute argument VALUE is a recognized state string,
!    otherwise report an error.  NAME is the name of the attribute to which
!    VALUE is being passed.  */
! static bool
! aarch64_check_state_string (tree name, tree value)
  {
!   if (TREE_CODE (value) != STRING_CST)
      {
!       error ("the arguments to %qE must be constant strings", name);
!       return false;
!     }
  
!   const char *state_name = TREE_STRING_POINTER (value);
!   if (strcmp (state_name, "za") != 0
!       && strcmp (state_name, "zt0") != 0)
      {
!       error ("unrecognized state string %qs", state_name);
!       return false;
!     }
  
!   return true;
! }
  
! /* qsort callback to compare two STRING_CSTs.  */
! static int
! cmp_string_csts (const void *a, const void *b)
  {
!   return strcmp (TREE_STRING_POINTER (*(const_tree const *) a),
! 		 TREE_STRING_POINTER (*(const_tree const *) b));
! }
  
! /* Canonicalize a list of state strings.  ARGS contains the arguments to
!    a new attribute while OLD_ATTR, if nonnull, contains a previous attribute
!    of the same type.  If CAN_MERGE_IN_PLACE, it is safe to adjust OLD_ATTR's
!    arguments and drop the new attribute.  Otherwise, the new attribute must
!    be kept and ARGS must include the information in OLD_ATTR.
  
!    In both cases, the new arguments must be a sorted list of state strings
!    with duplicates removed.
  
!    Return true if new attribute should be kept, false if it should be
!    dropped.  */
! static bool
! aarch64_merge_string_arguments (tree args, tree old_attr,
! 				bool can_merge_in_place)
  {
!   /* Get a sorted list of all state strings (including duplicates).  */
!   auto add_args = [](vec<tree> &strings, const_tree args)
!     {
!       for (const_tree arg = args; arg; arg = TREE_CHAIN (arg))
! 	if (TREE_CODE (TREE_VALUE (arg)) == STRING_CST)
! 	  strings.safe_push (TREE_VALUE (arg));
!     };
!   auto_vec<tree, 16> strings;
!   add_args (strings, args);
!   if (old_attr)
!     add_args (strings, TREE_VALUE (old_attr));
!   strings.qsort (cmp_string_csts);
  
!   /* The list can be empty if there was no previous attribute and if all
!      the new arguments are erroneous.  Drop the attribute in that case.  */
!   if (strings.is_empty ())
!     return false;
  
!   /* Destructively modify one of the argument lists, removing duplicates
!      on the fly.  */
!   bool use_old_attr = old_attr && can_merge_in_place;
!   tree *end = use_old_attr ? &TREE_VALUE (old_attr) : &args;
!   tree prev = NULL_TREE;
!   for (tree arg : strings)
!     {
!       if (prev && simple_cst_equal (arg, prev))
! 	continue;
!       prev = arg;
!       if (!*end)
! 	*end = tree_cons (NULL_TREE, arg, NULL_TREE);
!       else
! 	TREE_VALUE (*end) = arg;
!       end = &TREE_CHAIN (*end);
!     }
!   *end = NULL_TREE;
!   return !use_old_attr;
! }
  
  /* Check whether an 'aarch64_vector_pcs' attribute is valid.  */
  
*************** handle_aarch64_vector_pcs_attribute (tre
*** 2790,2797 ****
    gcc_unreachable ();
  }
  
  /* Table of machine attributes.  */
! static const struct attribute_spec aarch64_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
--- 738,850 ----
    gcc_unreachable ();
  }
  
+ /* Return true if arm::new(ARGS) is compatible with the type of decl DECL,
+    otherwise report an error.  */
+ static bool
+ aarch64_check_arm_new_against_type (tree args, tree decl)
+ {
+   tree type_attrs = TYPE_ATTRIBUTES (TREE_TYPE (decl));
+   for (tree arg = args; arg; arg = TREE_CHAIN (arg))
+     {
+       tree value = TREE_VALUE (arg);
+       if (TREE_CODE (value) == STRING_CST)
+ 	{
+ 	  const char *state_name = TREE_STRING_POINTER (value);
+ 	  if (aarch64_lookup_shared_state_flags (type_attrs, state_name))
+ 	    {
+ 	      error_at (DECL_SOURCE_LOCATION (decl),
+ 			"cannot create a new %qs scope since %qs is shared"
+ 			" with callers", state_name, state_name);
+ 	      return false;
+ 	    }
+ 	}
+     }
+   return true;
+ }
+ 
+ /* Callback for arm::new attributes.  */
+ static tree
+ handle_arm_new (tree *node, tree name, tree args, int, bool *no_add_attrs)
+ {
+   tree decl = *node;
+   if (TREE_CODE (decl) != FUNCTION_DECL)
+     {
+       error ("%qE attribute applies only to function definitions", name);
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+   if (TREE_TYPE (decl) == error_mark_node)
+     {
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+ 
+   for (tree arg = args; arg; arg = TREE_CHAIN (arg))
+     aarch64_check_state_string (name, TREE_VALUE (arg));
+ 
+   if (!aarch64_check_arm_new_against_type (args, decl))
+     {
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+ 
+   /* If there is an old attribute, we should try to update it in-place,
+      so that there is only one (definitive) arm::new attribute on the decl.  */
+   tree old_attr = lookup_attribute ("arm", "new", DECL_ATTRIBUTES (decl));
+   if (!aarch64_merge_string_arguments (args, old_attr, true))
+     *no_add_attrs = true;
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Callback for arm::{in,out,inout,preserves} attributes.  */
+ static tree
+ handle_arm_shared (tree *node, tree name, tree args,
+ 		   int, bool *no_add_attrs)
+ {
+   tree type = *node;
+   tree old_attrs = TYPE_ATTRIBUTES (type);
+   auto flags = aarch64_attribute_shared_state_flags (IDENTIFIER_POINTER (name));
+   for (tree arg = args; arg; arg = TREE_CHAIN (arg))
+     {
+       tree value = TREE_VALUE (arg);
+       if (aarch64_check_state_string (name, value))
+ 	{
+ 	  const char *state_name = TREE_STRING_POINTER (value);
+ 	  auto old_flags = aarch64_lookup_shared_state_flags (old_attrs,
+ 							      state_name);
+ 	  if (old_flags && old_flags != flags)
+ 	    {
+ 	      error ("inconsistent attributes for state %qs", state_name);
+ 	      *no_add_attrs = true;
+ 	      return NULL_TREE;
+ 	    }
+ 	}
+     }
+ 
+   /* We can't update an old attribute in-place, since types are shared.
+      Instead make sure that this new attribute contains all the
+      information, so that the old attribute becomes redundant.  */
+   tree old_attr = lookup_attribute ("arm", IDENTIFIER_POINTER (name),
+ 				    old_attrs);
+   if (!aarch64_merge_string_arguments (args, old_attr, false))
+     *no_add_attrs = true;
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Mutually-exclusive function type attributes for controlling PSTATE.SM.  */
+ static const struct attribute_spec::exclusions attr_streaming_exclusions[] =
+ {
+   /* Attribute name     exclusion applies to:
+ 			function, type, variable */
+   { "streaming", false, true, false },
+   { "streaming_compatible", false, true, false },
+   { NULL, false, false, false }
+ };
+ 
  /* Table of machine attributes.  */
! static const attribute_spec aarch64_gnu_attributes[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
*************** static const struct attribute_spec aarch
*** 2802,2809 ****
  			  NULL },
    { "Advanced SIMD type", 1, 1, false, true,  false, true,  NULL, NULL },
    { "SVE type",		  3, 3, false, true,  false, true,  NULL, NULL },
!   { "SVE sizeless type",  0, 0, false, true,  false, true,  NULL, NULL },
!   { NULL,                 0, 0, false, false, false, false, NULL, NULL }
  };
  
  typedef enum aarch64_cond_code
--- 855,896 ----
  			  NULL },
    { "Advanced SIMD type", 1, 1, false, true,  false, true,  NULL, NULL },
    { "SVE type",		  3, 3, false, true,  false, true,  NULL, NULL },
!   { "SVE sizeless type",  0, 0, false, true,  false, true,  NULL, NULL }
! };
! 
! static const scoped_attribute_specs aarch64_gnu_attribute_table =
! {
!   "gnu", { aarch64_gnu_attributes }
! };
! 
! static const attribute_spec aarch64_arm_attributes[] =
! {
!   { "streaming",	  0, 0, false, true,  true,  true,
! 			  NULL, attr_streaming_exclusions },
!   { "streaming_compatible", 0, 0, false, true,  true,  true,
! 			  NULL, attr_streaming_exclusions },
!   { "locally_streaming",  0, 0, true, false, false, false, NULL, NULL },
!   { "new",		  1, -1, true, false, false, false,
! 			  handle_arm_new, NULL },
!   { "preserves",	  1, -1, false, true,  true,  true,
! 			  handle_arm_shared, NULL },
!   { "in",		  1, -1, false, true,  true,  true,
! 			  handle_arm_shared, NULL },
!   { "out",		  1, -1, false, true,  true,  true,
! 			  handle_arm_shared, NULL },
!   { "inout",		  1, -1, false, true,  true,  true,
! 			  handle_arm_shared, NULL }
! };
! 
! static const scoped_attribute_specs aarch64_arm_attribute_table =
! {
!   "arm", { aarch64_arm_attributes }
! };
! 
! static const scoped_attribute_specs *const aarch64_attribute_table[] =
! {
!   &aarch64_gnu_attribute_table,
!   &aarch64_arm_attribute_table
  };
  
  typedef enum aarch64_cond_code
*************** pure_scalable_type_info::piece::get_rtx
*** 2862,2868 ****
    if (num_zr > 0 && num_pr == 0)
      return gen_rtx_REG (mode, first_zr);
  
!   if (num_zr == 0 && num_pr == 1)
      return gen_rtx_REG (mode, first_pr);
  
    gcc_unreachable ();
--- 949,955 ----
    if (num_zr > 0 && num_pr == 0)
      return gen_rtx_REG (mode, first_zr);
  
!   if (num_zr == 0 && num_pr <= 2)
      return gen_rtx_REG (mode, first_pr);
  
    gcc_unreachable ();
*************** pure_scalable_type_info::add_piece (cons
*** 3085,3090 ****
--- 1172,1178 ----
        gcc_assert (VECTOR_MODE_P (p.mode) && VECTOR_MODE_P (prev.mode));
        unsigned int nelems1, nelems2;
        if (prev.orig_mode == p.orig_mode
+ 	  && GET_MODE_CLASS (p.orig_mode) != MODE_VECTOR_BOOL
  	  && known_eq (prev.offset + GET_MODE_SIZE (prev.mode), p.offset)
  	  && constant_multiple_p (GET_MODE_NUNITS (prev.mode),
  				  GET_MODE_NUNITS (p.orig_mode), &nelems1)
*************** aarch64_sve_pred_mode_p (machine_mode mo
*** 3386,3393 ****
  const unsigned int VEC_ADVSIMD  = 1;
  const unsigned int VEC_SVE_DATA = 2;
  const unsigned int VEC_SVE_PRED = 4;
! /* Can be used in combination with VEC_ADVSIMD or VEC_SVE_DATA to indicate
!    a structure of 2, 3 or 4 vectors.  */
  const unsigned int VEC_STRUCT   = 8;
  /* Can be used in combination with VEC_SVE_DATA to indicate that the
     vector has fewer significant bytes than a full SVE vector.  */
--- 1474,1480 ----
  const unsigned int VEC_ADVSIMD  = 1;
  const unsigned int VEC_SVE_DATA = 2;
  const unsigned int VEC_SVE_PRED = 4;
! /* Indicates a structure of 2, 3 or 4 vectors or predicates.  */
  const unsigned int VEC_STRUCT   = 8;
  /* Can be used in combination with VEC_SVE_DATA to indicate that the
     vector has fewer significant bytes than a full SVE vector.  */
*************** const unsigned int VEC_ANY_SVE  = VEC_SV
*** 3397,3405 ****
  const unsigned int VEC_ANY_DATA = VEC_ADVSIMD | VEC_SVE_DATA;
  
  /* Return a set of flags describing the vector properties of mode MODE.
!    Ignore modes that are not supported by the current target.  */
  static unsigned int
! aarch64_classify_vector_mode (machine_mode mode)
  {
    if (aarch64_sve_pred_mode_p (mode))
      return VEC_SVE_PRED;
--- 1484,1495 ----
  const unsigned int VEC_ANY_DATA = VEC_ADVSIMD | VEC_SVE_DATA;
  
  /* Return a set of flags describing the vector properties of mode MODE.
!    If ANY_TARGET_P is false (the default), ignore modes that are not supported
!    by the current target.  Otherwise categorize the modes that can be used
!    with the set of all targets supported by the port.  */
! 
  static unsigned int
! aarch64_classify_vector_mode (machine_mode mode, bool any_target_p = false)
  {
    if (aarch64_sve_pred_mode_p (mode))
      return VEC_SVE_PRED;
*************** aarch64_classify_vector_mode (machine_mo
*** 3426,3432 ****
      case E_VNx4BFmode:
      /* Partial SVE SF vector.  */
      case E_VNx2SFmode:
!       return TARGET_SVE ? VEC_SVE_DATA | VEC_PARTIAL : 0;
  
      case E_VNx16QImode:
      case E_VNx8HImode:
--- 1516,1522 ----
      case E_VNx4BFmode:
      /* Partial SVE SF vector.  */
      case E_VNx2SFmode:
!       return (TARGET_SVE || any_target_p) ? VEC_SVE_DATA | VEC_PARTIAL : 0;
  
      case E_VNx16QImode:
      case E_VNx8HImode:
*************** aarch64_classify_vector_mode (machine_mo
*** 3436,3442 ****
      case E_VNx8HFmode:
      case E_VNx4SFmode:
      case E_VNx2DFmode:
!       return TARGET_SVE ? VEC_SVE_DATA : 0;
  
      /* x2 SVE vectors.  */
      case E_VNx32QImode:
--- 1526,1532 ----
      case E_VNx8HFmode:
      case E_VNx4SFmode:
      case E_VNx2DFmode:
!       return (TARGET_SVE || any_target_p) ? VEC_SVE_DATA : 0;
  
      /* x2 SVE vectors.  */
      case E_VNx32QImode:
*************** aarch64_classify_vector_mode (machine_mo
*** 3465,3476 ****
      case E_VNx32HFmode:
      case E_VNx16SFmode:
      case E_VNx8DFmode:
!       return TARGET_SVE ? VEC_SVE_DATA | VEC_STRUCT : 0;
  
      case E_OImode:
      case E_CImode:
      case E_XImode:
!       return TARGET_FLOAT ? VEC_ADVSIMD | VEC_STRUCT : 0;
  
      /* Structures of 64-bit Advanced SIMD vectors.  */
      case E_V2x8QImode:
--- 1555,1566 ----
      case E_VNx32HFmode:
      case E_VNx16SFmode:
      case E_VNx8DFmode:
!       return (TARGET_SVE || any_target_p) ? VEC_SVE_DATA | VEC_STRUCT : 0;
  
      case E_OImode:
      case E_CImode:
      case E_XImode:
!       return (TARGET_FLOAT || any_target_p) ? VEC_ADVSIMD | VEC_STRUCT : 0;
  
      /* Structures of 64-bit Advanced SIMD vectors.  */
      case E_V2x8QImode:
*************** aarch64_classify_vector_mode (machine_mo
*** 3497,3503 ****
      case E_V4x4HFmode:
      case E_V4x2SFmode:
      case E_V4x1DFmode:
!       return TARGET_FLOAT ? VEC_ADVSIMD | VEC_STRUCT | VEC_PARTIAL : 0;
  
      /* Structures of 128-bit Advanced SIMD vectors.  */
      case E_V2x16QImode:
--- 1587,1594 ----
      case E_V4x4HFmode:
      case E_V4x2SFmode:
      case E_V4x1DFmode:
!       return (TARGET_FLOAT || any_target_p)
! 	      ? VEC_ADVSIMD | VEC_STRUCT | VEC_PARTIAL : 0;
  
      /* Structures of 128-bit Advanced SIMD vectors.  */
      case E_V2x16QImode:
*************** aarch64_classify_vector_mode (machine_mo
*** 3524,3530 ****
      case E_V4x8HFmode:
      case E_V4x4SFmode:
      case E_V4x2DFmode:
!       return TARGET_FLOAT ? VEC_ADVSIMD | VEC_STRUCT : 0;
  
      /* 64-bit Advanced SIMD vectors.  */
      case E_V8QImode:
--- 1615,1621 ----
      case E_V4x8HFmode:
      case E_V4x4SFmode:
      case E_V4x2DFmode:
!       return (TARGET_FLOAT || any_target_p) ? VEC_ADVSIMD | VEC_STRUCT : 0;
  
      /* 64-bit Advanced SIMD vectors.  */
      case E_V8QImode:
*************** aarch64_classify_vector_mode (machine_mo
*** 3544,3550 ****
      case E_V8BFmode:
      case E_V4SFmode:
      case E_V2DFmode:
!       return TARGET_FLOAT ? VEC_ADVSIMD : 0;
  
      default:
        return 0;
--- 1635,1644 ----
      case E_V8BFmode:
      case E_V4SFmode:
      case E_V2DFmode:
!       return (TARGET_FLOAT || any_target_p) ? VEC_ADVSIMD : 0;
! 
!     case E_VNx32BImode:
!       return TARGET_SVE ? VEC_SVE_PRED | VEC_STRUCT : 0;
  
      default:
        return 0;
*************** aarch64_sve_data_mode (scalar_mode inner
*** 3673,3684 ****
  static opt_machine_mode
  aarch64_array_mode (machine_mode mode, unsigned HOST_WIDE_INT nelems)
  {
!   if (aarch64_classify_vector_mode (mode) == VEC_SVE_DATA
!       && IN_RANGE (nelems, 2, 4))
      return aarch64_sve_data_mode (GET_MODE_INNER (mode),
  				  GET_MODE_NUNITS (mode) * nelems);
!   if (aarch64_classify_vector_mode (mode) == VEC_ADVSIMD
!       && IN_RANGE (nelems, 2, 4))
      return aarch64_advsimd_vector_array_mode (mode, nelems);
  
    return opt_machine_mode ();
--- 1767,1790 ----
  static opt_machine_mode
  aarch64_array_mode (machine_mode mode, unsigned HOST_WIDE_INT nelems)
  {
!   if (TARGET_SVE && GET_MODE_CLASS (mode) == MODE_VECTOR_BOOL)
!     {
!       /* Use VNx32BI for pairs of predicates, but explicitly reject giving
! 	 a mode to other array sizes.  Using integer modes requires a round
! 	 trip through memory and generates terrible code.  */
!       if (nelems == 1)
! 	return mode;
!       if (mode == VNx16BImode && nelems == 2)
! 	return VNx32BImode;
!       return BLKmode;
!     }
! 
!   auto flags = aarch64_classify_vector_mode (mode);
!   if (flags == VEC_SVE_DATA && IN_RANGE (nelems, 2, 4))
      return aarch64_sve_data_mode (GET_MODE_INNER (mode),
  				  GET_MODE_NUNITS (mode) * nelems);
! 
!   if (flags == VEC_ADVSIMD && IN_RANGE (nelems, 2, 4))
      return aarch64_advsimd_vector_array_mode (mode, nelems);
  
    return opt_machine_mode ();
*************** static bool
*** 3689,3695 ****
  aarch64_array_mode_supported_p (machine_mode mode,
  				unsigned HOST_WIDE_INT nelems)
  {
!   if (TARGET_SIMD
        && (AARCH64_VALID_SIMD_QREG_MODE (mode)
  	  || AARCH64_VALID_SIMD_DREG_MODE (mode))
        && (nelems >= 2 && nelems <= 4))
--- 1795,1801 ----
  aarch64_array_mode_supported_p (machine_mode mode,
  				unsigned HOST_WIDE_INT nelems)
  {
!   if (TARGET_BASE_SIMD
        && (AARCH64_VALID_SIMD_QREG_MODE (mode)
  	  || AARCH64_VALID_SIMD_DREG_MODE (mode))
        && (nelems >= 2 && nelems <= 4))
*************** aarch64_hard_regno_nregs (unsigned regno
*** 3898,3909 ****
--- 2004,2020 ----
  	  return GET_MODE_SIZE (mode).to_constant () / 8;
  	return CEIL (lowest_size, UNITS_PER_VREG);
        }
+ 
      case PR_REGS:
      case PR_LO_REGS:
      case PR_HI_REGS:
+       return mode == VNx32BImode ? 2 : 1;
+ 
      case FFR_REGS:
      case PR_AND_FFR_REGS:
+     case FAKE_REGS:
        return 1;
+ 
      default:
        return CEIL (lowest_size, UNITS_PER_WORD);
      }
*************** aarch64_hard_regno_mode_ok (unsigned reg
*** 3927,3938 ****
      return mode == DImode;
  
    unsigned int vec_flags = aarch64_classify_vector_mode (mode);
!   if (vec_flags & VEC_SVE_PRED)
      return pr_or_ffr_regnum_p (regno);
  
    if (pr_or_ffr_regnum_p (regno))
      return false;
  
    if (regno == SP_REGNUM)
      /* The purpose of comparing with ptr_mode is to support the
         global register variable associated with the stack pointer
--- 2038,2056 ----
      return mode == DImode;
  
    unsigned int vec_flags = aarch64_classify_vector_mode (mode);
!   if (vec_flags == VEC_SVE_PRED)
      return pr_or_ffr_regnum_p (regno);
  
+   if (vec_flags == (VEC_SVE_PRED | VEC_STRUCT))
+     return PR_REGNUM_P (regno);
+ 
    if (pr_or_ffr_regnum_p (regno))
      return false;
  
+   /* These registers are abstract; their modes don't matter.  */
+   if (FAKE_REGNUM_P (regno))
+     return true;
+ 
    if (regno == SP_REGNUM)
      /* The purpose of comparing with ptr_mode is to support the
         global register variable associated with the stack pointer
*************** aarch64_fntype_abi (const_tree fntype)
*** 4038,4043 ****
--- 2156,2332 ----
    return default_function_abi;
  }
  
+ /* Return the state of PSTATE.SM on entry to functions of type FNTYPE.  */
+ 
+ static aarch64_feature_flags
+ aarch64_fntype_pstate_sm (const_tree fntype)
+ {
+   if (lookup_attribute ("arm", "streaming", TYPE_ATTRIBUTES (fntype)))
+     return AARCH64_FL_SM_ON;
+ 
+   if (lookup_attribute ("arm", "streaming_compatible",
+ 			TYPE_ATTRIBUTES (fntype)))
+     return 0;
+ 
+   return AARCH64_FL_SM_OFF;
+ }
+ 
+ /* Return state flags that describe whether and how functions of type
+    FNTYPE share state STATE_NAME with their callers.  */
+ 
+ static unsigned int
+ aarch64_fntype_shared_flags (const_tree fntype, const char *state_name)
+ {
+   return aarch64_lookup_shared_state_flags (TYPE_ATTRIBUTES (fntype),
+ 					    state_name);
+ }
+ 
+ /* Return the state of PSTATE.ZA on entry to functions of type FNTYPE.  */
+ 
+ static aarch64_feature_flags
+ aarch64_fntype_pstate_za (const_tree fntype)
+ {
+   if (aarch64_fntype_shared_flags (fntype, "za")
+       || aarch64_fntype_shared_flags (fntype, "zt0"))
+     return AARCH64_FL_ZA_ON;
+ 
+   return 0;
+ }
+ 
+ /* Return the ISA mode on entry to functions of type FNTYPE.  */
+ 
+ static aarch64_feature_flags
+ aarch64_fntype_isa_mode (const_tree fntype)
+ {
+   return (aarch64_fntype_pstate_sm (fntype)
+ 	  | aarch64_fntype_pstate_za (fntype));
+ }
+ 
+ /* Return true if FNDECL uses streaming mode internally, as an
+    implementation choice.  */
+ 
+ static bool
+ aarch64_fndecl_is_locally_streaming (const_tree fndecl)
+ {
+   return lookup_attribute ("arm", "locally_streaming",
+ 			   DECL_ATTRIBUTES (fndecl));
+ }
+ 
+ /* Return the state of PSTATE.SM when compiling the body of
+    function FNDECL.  This might be different from the state of
+    PSTATE.SM on entry.  */
+ 
+ static aarch64_feature_flags
+ aarch64_fndecl_pstate_sm (const_tree fndecl)
+ {
+   if (aarch64_fndecl_is_locally_streaming (fndecl))
+     return AARCH64_FL_SM_ON;
+ 
+   return aarch64_fntype_pstate_sm (TREE_TYPE (fndecl));
+ }
+ 
+ /* Return true if function FNDECL has state STATE_NAME, either by creating
+    new state itself or by sharing state with callers.  */
+ 
+ static bool
+ aarch64_fndecl_has_state (tree fndecl, const char *state_name)
+ {
+   return (aarch64_fndecl_has_new_state (fndecl, state_name)
+ 	  || aarch64_fntype_shared_flags (TREE_TYPE (fndecl),
+ 					  state_name) != 0);
+ }
+ 
+ /* Return the state of PSTATE.ZA when compiling the body of function FNDECL.
+    This might be different from the state of PSTATE.ZA on entry.  */
+ 
+ static aarch64_feature_flags
+ aarch64_fndecl_pstate_za (const_tree fndecl)
+ {
+   if (aarch64_fndecl_has_new_state (fndecl, "za")
+       || aarch64_fndecl_has_new_state (fndecl, "zt0"))
+     return AARCH64_FL_ZA_ON;
+ 
+   return aarch64_fntype_pstate_za (TREE_TYPE (fndecl));
+ }
+ 
+ /* Return the ISA mode that should be used to compile the body of
+    function FNDECL.  */
+ 
+ static aarch64_feature_flags
+ aarch64_fndecl_isa_mode (const_tree fndecl)
+ {
+   return (aarch64_fndecl_pstate_sm (fndecl)
+ 	  | aarch64_fndecl_pstate_za (fndecl));
+ }
+ 
+ /* Return the state of PSTATE.SM on entry to the current function.
+    This might be different from the state of PSTATE.SM in the function
+    body.  */
+ 
+ static aarch64_feature_flags
+ aarch64_cfun_incoming_pstate_sm ()
+ {
+   return aarch64_fntype_pstate_sm (TREE_TYPE (cfun->decl));
+ }
+ 
+ /* Return the state of PSTATE.ZA on entry to the current function.
+    This might be different from the state of PSTATE.ZA in the function
+    body.  */
+ 
+ static aarch64_feature_flags
+ aarch64_cfun_incoming_pstate_za ()
+ {
+   return aarch64_fntype_pstate_za (TREE_TYPE (cfun->decl));
+ }
+ 
+ /* Return state flags that describe whether and how the current function shares
+    state STATE_NAME with callers.  */
+ 
+ static unsigned int
+ aarch64_cfun_shared_flags (const char *state_name)
+ {
+   return aarch64_fntype_shared_flags (TREE_TYPE (cfun->decl), state_name);
+ }
+ 
+ /* Return true if the current function creates new state of type STATE_NAME
+    (as opposed to sharing the state with its callers or ignoring the state
+    altogether).  */
+ 
+ static bool
+ aarch64_cfun_has_new_state (const char *state_name)
+ {
+   return aarch64_fndecl_has_new_state (cfun->decl, state_name);
+ }
+ 
+ /* Return true if PSTATE.SM is 1 in the body of the current function,
+    but is not guaranteed to be 1 on entry.  */
+ 
+ static bool
+ aarch64_cfun_enables_pstate_sm ()
+ {
+   return (aarch64_fndecl_is_locally_streaming (cfun->decl)
+ 	  && aarch64_cfun_incoming_pstate_sm () != AARCH64_FL_SM_ON);
+ }
+ 
+ /* Return true if the current function has state STATE_NAME, either by
+    creating new state itself or by sharing state with callers.  */
+ 
+ static bool
+ aarch64_cfun_has_state (const char *state_name)
+ {
+   return aarch64_fndecl_has_state (cfun->decl, state_name);
+ }
+ 
+ /* Return true if a call from the current function to a function with
+    ISA mode CALLEE_MODE would involve a change to PSTATE.SM around
+    the BL instruction.  */
+ 
+ static bool
+ aarch64_call_switches_pstate_sm (aarch64_feature_flags callee_mode)
+ {
+   return (callee_mode & ~AARCH64_ISA_MODE & AARCH64_FL_SM_STATE) != 0;
+ }
+ 
  /* Implement TARGET_COMPATIBLE_VECTOR_TYPES_P.  */
  
  static bool
*************** aarch64_emit_cfi_for_reg_p (unsigned int
*** 4061,4067 ****
  static machine_mode
  aarch64_reg_save_mode (unsigned int regno)
  {
!   if (GP_REGNUM_P (regno))
      return DImode;
  
    if (FP_REGNUM_P (regno))
--- 2350,2356 ----
  static machine_mode
  aarch64_reg_save_mode (unsigned int regno)
  {
!   if (GP_REGNUM_P (regno) || regno == VG_REGNUM)
      return DImode;
  
    if (FP_REGNUM_P (regno))
*************** aarch64_reg_save_mode (unsigned int regn
*** 4074,4080 ****
        case ARM_PCS_SIMD:
  	/* The vector PCS saves the low 128 bits (which is the full
  	   register on non-SVE targets).  */
! 	return TFmode;
  
        case ARM_PCS_SVE:
  	/* Use vectors of DImode for registers that need frame
--- 2363,2369 ----
        case ARM_PCS_SIMD:
  	/* The vector PCS saves the low 128 bits (which is the full
  	   register on non-SVE targets).  */
! 	return V16QImode;
  
        case ARM_PCS_SVE:
  	/* Use vectors of DImode for registers that need frame
*************** aarch64_reg_save_mode (unsigned int regn
*** 4100,4116 ****
    gcc_unreachable ();
  }
  
! /* Implement TARGET_INSN_CALLEE_ABI.  */
  
! const predefined_function_abi &
! aarch64_insn_callee_abi (const rtx_insn *insn)
  {
    rtx pat = PATTERN (insn);
    gcc_assert (GET_CODE (pat) == PARALLEL);
    rtx unspec = XVECEXP (pat, 0, 1);
    gcc_assert (GET_CODE (unspec) == UNSPEC
  	      && XINT (unspec, 1) == UNSPEC_CALLEE_ABI);
!   return function_abis[INTVAL (XVECEXP (unspec, 0, 0))];
  }
  
  /* Implement TARGET_HARD_REGNO_CALL_PART_CLOBBERED.  The callee only saves
--- 2389,2453 ----
    gcc_unreachable ();
  }
  
! /* Given the ISA mode on entry to a callee and the ABI of the callee,
!    return the CONST_INT that should be placed in an UNSPEC_CALLEE_ABI rtx.  */
  
! rtx
! aarch64_gen_callee_cookie (aarch64_feature_flags isa_mode, arm_pcs pcs_variant)
! {
!   return gen_int_mode ((unsigned int) isa_mode
! 		       | (unsigned int) pcs_variant << AARCH64_NUM_ISA_MODES,
! 		       DImode);
! }
! 
! /* COOKIE is a CONST_INT from an UNSPEC_CALLEE_ABI rtx.  Return the
!    callee's ABI.  */
! 
! static const predefined_function_abi &
! aarch64_callee_abi (rtx cookie)
! {
!   return function_abis[UINTVAL (cookie) >> AARCH64_NUM_ISA_MODES];
! }
! 
! /* COOKIE is a CONST_INT from an UNSPEC_CALLEE_ABI rtx.  Return the
!    required ISA mode on entry to the callee, which is also the ISA
!    mode on return from the callee.  */
! 
! static aarch64_feature_flags
! aarch64_callee_isa_mode (rtx cookie)
! {
!   return UINTVAL (cookie) & AARCH64_FL_ISA_MODES;
! }
! 
! /* INSN is a call instruction.  Return the CONST_INT stored in its
!    UNSPEC_CALLEE_ABI rtx.  */
! 
! static rtx
! aarch64_insn_callee_cookie (const rtx_insn *insn)
  {
    rtx pat = PATTERN (insn);
    gcc_assert (GET_CODE (pat) == PARALLEL);
    rtx unspec = XVECEXP (pat, 0, 1);
    gcc_assert (GET_CODE (unspec) == UNSPEC
  	      && XINT (unspec, 1) == UNSPEC_CALLEE_ABI);
!   return XVECEXP (unspec, 0, 0);
! }
! 
! /* Implement TARGET_INSN_CALLEE_ABI.  */
! 
! const predefined_function_abi &
! aarch64_insn_callee_abi (const rtx_insn *insn)
! {
!   return aarch64_callee_abi (aarch64_insn_callee_cookie (insn));
! }
! 
! /* INSN is a call instruction.  Return the required ISA mode on entry to
!    the callee, which is also the ISA mode on return from the callee.  */
! 
! static aarch64_feature_flags
! aarch64_insn_callee_isa_mode (const rtx_insn *insn)
! {
!   return aarch64_callee_isa_mode (aarch64_insn_callee_cookie (insn));
  }
  
  /* Implement TARGET_HARD_REGNO_CALL_PART_CLOBBERED.  The callee only saves
*************** aarch64_gen_compare_reg_maybe_ze (RTX_CO
*** 4302,4307 ****
--- 2639,2687 ----
    return aarch64_gen_compare_reg (code, x, y);
  }
  
+ /* Generate conditional branch to LABEL, comparing X to 0 using CODE.
+    Return the jump instruction.  */
+ 
+ static rtx
+ aarch64_gen_compare_zero_and_branch (rtx_code code, rtx x,
+ 				     rtx_code_label *label)
+ {
+   if (aarch64_track_speculation)
+     {
+       /* Emit an explicit compare instruction, so that we can correctly
+ 	 track the condition codes.  */
+       rtx cc_reg = aarch64_gen_compare_reg (code, x, const0_rtx);
+       x = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
+     }
+   else
+     x = gen_rtx_fmt_ee (code, VOIDmode, x, const0_rtx);
+ 
+   x = gen_rtx_IF_THEN_ELSE (VOIDmode, x,
+ 			    gen_rtx_LABEL_REF (Pmode, label), pc_rtx);
+   return gen_rtx_SET (pc_rtx, x);
+ }
+ 
+ /* Return an rtx that branches to LABEL based on the value of bit BITNUM of X.
+    If CODE is NE, it branches to LABEL when the bit is set; if CODE is EQ,
+    it branches to LABEL when the bit is clear.  */
+ 
+ static rtx
+ aarch64_gen_test_and_branch (rtx_code code, rtx x, int bitnum,
+ 			     rtx_code_label *label)
+ {
+   auto mode = GET_MODE (x);
+   if (aarch64_track_speculation)
+     {
+       auto mask = gen_int_mode (HOST_WIDE_INT_1U << bitnum, mode);
+       emit_insn (gen_aarch64_and3nr_compare0 (mode, x, mask));
+       rtx cc_reg = gen_rtx_REG (CC_NZVmode, CC_REGNUM);
+       rtx x = gen_rtx_fmt_ee (code, CC_NZVmode, cc_reg, const0_rtx);
+       return gen_condjump (x, cc_reg, label);
+     }
+   return gen_aarch64_tb (code, mode, mode,
+ 			 x, gen_int_mode (bitnum, mode), label);
+ }
+ 
  /* Consider the operation:
  
       OPERANDS[0] = CODE (OPERANDS[1], OPERANDS[2]) + OPERANDS[3]
*************** aarch64_emit_binop (rtx dest, optab bino
*** 4790,4795 ****
--- 3170,3202 ----
      emit_move_insn (dest, tmp);
  }
  
+ /* Split a move from SRC to DST into two moves of mode SINGLE_MODE.  */
+ 
+ void
+ aarch64_split_double_move (rtx dst, rtx src, machine_mode single_mode)
+ {
+   machine_mode mode = GET_MODE (dst);
+ 
+   rtx dst0 = simplify_gen_subreg (single_mode, dst, mode, 0);
+   rtx dst1 = simplify_gen_subreg (single_mode, dst, mode,
+ 				  GET_MODE_SIZE (single_mode));
+   rtx src0 = simplify_gen_subreg (single_mode, src, mode, 0);
+   rtx src1 = simplify_gen_subreg (single_mode, src, mode,
+ 				  GET_MODE_SIZE (single_mode));
+ 
+   /* At most one pairing may overlap.  */
+   if (reg_overlap_mentioned_p (dst0, src1))
+     {
+       aarch64_emit_move (dst1, src1);
+       aarch64_emit_move (dst0, src0);
+     }
+   else
+     {
+       aarch64_emit_move (dst0, src0);
+       aarch64_emit_move (dst1, src1);
+     }
+ }
+ 
  /* Split a 128-bit move operation into two 64-bit move operations,
     taking care to handle partial overlap of register to register
     copies.  Special cases are needed when moving between GP regs and
*************** aarch64_emit_binop (rtx dest, optab bino
*** 4799,4807 ****
  void
  aarch64_split_128bit_move (rtx dst, rtx src)
  {
-   rtx dst_lo, dst_hi;
-   rtx src_lo, src_hi;
- 
    machine_mode mode = GET_MODE (dst);
  
    gcc_assert (mode == TImode || mode == TFmode || mode == TDmode);
--- 3206,3211 ----
*************** aarch64_split_128bit_move (rtx dst, rtx
*** 4816,4823 ****
        /* Handle FP <-> GP regs.  */
        if (FP_REGNUM_P (dst_regno) && GP_REGNUM_P (src_regno))
  	{
! 	  src_lo = gen_lowpart (word_mode, src);
! 	  src_hi = gen_highpart (word_mode, src);
  
  	  emit_insn (gen_aarch64_movlow_di (mode, dst, src_lo));
  	  emit_insn (gen_aarch64_movhigh_di (mode, dst, src_hi));
--- 3220,3227 ----
        /* Handle FP <-> GP regs.  */
        if (FP_REGNUM_P (dst_regno) && GP_REGNUM_P (src_regno))
  	{
! 	  rtx src_lo = gen_lowpart (word_mode, src);
! 	  rtx src_hi = gen_highpart (word_mode, src);
  
  	  emit_insn (gen_aarch64_movlow_di (mode, dst, src_lo));
  	  emit_insn (gen_aarch64_movhigh_di (mode, dst, src_hi));
*************** aarch64_split_128bit_move (rtx dst, rtx
*** 4825,4832 ****
  	}
        else if (GP_REGNUM_P (dst_regno) && FP_REGNUM_P (src_regno))
  	{
! 	  dst_lo = gen_lowpart (word_mode, dst);
! 	  dst_hi = gen_highpart (word_mode, dst);
  
  	  emit_insn (gen_aarch64_movdi_low (mode, dst_lo, src));
  	  emit_insn (gen_aarch64_movdi_high (mode, dst_hi, src));
--- 3229,3236 ----
  	}
        else if (GP_REGNUM_P (dst_regno) && FP_REGNUM_P (src_regno))
  	{
! 	  rtx dst_lo = gen_lowpart (word_mode, dst);
! 	  rtx dst_hi = gen_highpart (word_mode, dst);
  
  	  emit_insn (gen_aarch64_movdi_low (mode, dst_lo, src));
  	  emit_insn (gen_aarch64_movdi_high (mode, dst_hi, src));
*************** aarch64_split_128bit_move (rtx dst, rtx
*** 4834,4855 ****
  	}
      }
  
!   dst_lo = gen_lowpart (word_mode, dst);
!   dst_hi = gen_highpart (word_mode, dst);
!   src_lo = gen_lowpart (word_mode, src);
!   src_hi = gen_highpart_mode (word_mode, mode, src);
! 
!   /* At most one pairing may overlap.  */
!   if (reg_overlap_mentioned_p (dst_lo, src_hi))
!     {
!       aarch64_emit_move (dst_hi, src_hi);
!       aarch64_emit_move (dst_lo, src_lo);
!     }
!   else
!     {
!       aarch64_emit_move (dst_lo, src_lo);
!       aarch64_emit_move (dst_hi, src_hi);
!     }
  }
  
  /* Return true if we should split a move from 128-bit value SRC
--- 3238,3244 ----
  	}
      }
  
!   aarch64_split_double_move (dst, src, word_mode);
  }
  
  /* Return true if we should split a move from 128-bit value SRC
*************** aarch64_split_simd_move (rtx dst, rtx sr
*** 4881,4886 ****
--- 3270,3297 ----
      }
  }
  
+ /* Return a register that contains SVE value X reinterpreted as SVE mode MODE.
+    The semantics of those of svreinterpret rather than those of subregs;
+    see the comment at the head of aarch64-sve.md for details about the
+    difference.  */
+ 
+ rtx
+ aarch64_sve_reinterpret (machine_mode mode, rtx x)
+ {
+   if (GET_MODE (x) == mode)
+     return x;
+ 
+   /* can_change_mode_class must only return true if subregs and svreinterprets
+      have the same semantics.  */
+   if (targetm.can_change_mode_class (GET_MODE (x), mode, FP_REGS))
+     return lowpart_subreg (mode, x, GET_MODE (x));
+ 
+   rtx res = gen_reg_rtx (mode);
+   x = force_reg (GET_MODE (x), x);
+   emit_insn (gen_aarch64_sve_reinterpret (mode, res, x));
+   return res;
+ }
+ 
  bool
  aarch64_zero_extend_const_eq (machine_mode xmode, rtx x,
  			      machine_mode ymode, rtx y)
*************** aarch64_ptrue_all (unsigned int elt_size
*** 5115,5121 ****
  rtx
  aarch64_ptrue_reg (machine_mode mode)
  {
!   gcc_assert (GET_MODE_CLASS (mode) == MODE_VECTOR_BOOL);
    rtx reg = force_reg (VNx16BImode, CONSTM1_RTX (VNx16BImode));
    return gen_lowpart (mode, reg);
  }
--- 3526,3532 ----
  rtx
  aarch64_ptrue_reg (machine_mode mode)
  {
!   gcc_assert (aarch64_sve_pred_mode_p (mode));
    rtx reg = force_reg (VNx16BImode, CONSTM1_RTX (VNx16BImode));
    return gen_lowpart (mode, reg);
  }
*************** aarch64_ptrue_reg (machine_mode mode)
*** 5125,5131 ****
  rtx
  aarch64_pfalse_reg (machine_mode mode)
  {
!   gcc_assert (GET_MODE_CLASS (mode) == MODE_VECTOR_BOOL);
    rtx reg = force_reg (VNx16BImode, CONST0_RTX (VNx16BImode));
    return gen_lowpart (mode, reg);
  }
--- 3536,3542 ----
  rtx
  aarch64_pfalse_reg (machine_mode mode)
  {
!   gcc_assert (aarch64_sve_pred_mode_p (mode));
    rtx reg = force_reg (VNx16BImode, CONST0_RTX (VNx16BImode));
    return gen_lowpart (mode, reg);
  }
*************** bool
*** 5141,5147 ****
  aarch64_sve_same_pred_for_ptest_p (rtx *pred1, rtx *pred2)
  {
    machine_mode mode = GET_MODE (pred1[0]);
!   gcc_assert (GET_MODE_CLASS (mode) == MODE_VECTOR_BOOL
  	      && mode == GET_MODE (pred2[0])
  	      && aarch64_sve_ptrue_flag (pred1[1], SImode)
  	      && aarch64_sve_ptrue_flag (pred2[1], SImode));
--- 3552,3558 ----
  aarch64_sve_same_pred_for_ptest_p (rtx *pred1, rtx *pred2)
  {
    machine_mode mode = GET_MODE (pred1[0]);
!   gcc_assert (aarch64_sve_pred_mode_p (mode)
  	      && mode == GET_MODE (pred2[0])
  	      && aarch64_sve_ptrue_flag (pred1[1], SImode)
  	      && aarch64_sve_ptrue_flag (pred2[1], SImode));
*************** aarch64_fold_sve_cnt_pat (aarch64_svpatt
*** 5256,5261 ****
--- 3667,3684 ----
    return -1;
  }
  
+ /* Return true if a single CNT[BHWD] instruction can multiply FACTOR
+    by the number of 128-bit quadwords in an SVE vector.  */
+ 
+ static bool
+ aarch64_sve_cnt_factor_p (HOST_WIDE_INT factor)
+ {
+   /* The coefficient must be [1, 16] * {2, 4, 8, 16}.  */
+   return (IN_RANGE (factor, 2, 16 * 16)
+ 	  && (factor & 1) == 0
+ 	  && factor <= 16 * (factor & -factor));
+ }
+ 
  /* Return true if we can move VALUE into a register using a single
     CNT[BHWD] instruction.  */
  
*************** static bool
*** 5263,5273 ****
  aarch64_sve_cnt_immediate_p (poly_int64 value)
  {
    HOST_WIDE_INT factor = value.coeffs[0];
!   /* The coefficient must be [1, 16] * {2, 4, 8, 16}.  */
!   return (value.coeffs[1] == factor
! 	  && IN_RANGE (factor, 2, 16 * 16)
! 	  && (factor & 1) == 0
! 	  && factor <= 16 * (factor & -factor));
  }
  
  /* Likewise for rtx X.  */
--- 3686,3692 ----
  aarch64_sve_cnt_immediate_p (poly_int64 value)
  {
    HOST_WIDE_INT factor = value.coeffs[0];
!   return value.coeffs[1] == factor && aarch64_sve_cnt_factor_p (factor);
  }
  
  /* Likewise for rtx X.  */
*************** aarch64_output_sve_scalar_inc_dec (rtx o
*** 5383,5388 ****
--- 3802,3862 ----
  					     -offset_value.coeffs[1], 0);
  }
  
+ /* Return true if a single RDVL instruction can multiply FACTOR by the
+    number of 128-bit quadwords in an SVE vector.  This is also the
+    range of ADDVL.  */
+ 
+ static bool
+ aarch64_sve_rdvl_addvl_factor_p (HOST_WIDE_INT factor)
+ {
+   return (multiple_p (factor, 16)
+ 	  && IN_RANGE (factor, -32 * 16, 31 * 16));
+ }
+ 
+ /* Return true if ADDPL can be used to add FACTOR multiplied by the number
+    of quadwords in an SVE vector.  */
+ 
+ static bool
+ aarch64_sve_addpl_factor_p (HOST_WIDE_INT factor)
+ {
+   return (multiple_p (factor, 2)
+ 	  && IN_RANGE (factor, -32 * 2, 31 * 2));
+ }
+ 
+ /* Return true if we can move VALUE into a register using a single
+    RDVL instruction.  */
+ 
+ static bool
+ aarch64_sve_rdvl_immediate_p (poly_int64 value)
+ {
+   HOST_WIDE_INT factor = value.coeffs[0];
+   return value.coeffs[1] == factor && aarch64_sve_rdvl_addvl_factor_p (factor);
+ }
+ 
+ /* Likewise for rtx X.  */
+ 
+ bool
+ aarch64_sve_rdvl_immediate_p (rtx x)
+ {
+   poly_int64 value;
+   return poly_int_rtx_p (x, &value) && aarch64_sve_rdvl_immediate_p (value);
+ }
+ 
+ /* Return the asm string for moving RDVL immediate OFFSET into register
+    operand 0.  */
+ 
+ char *
+ aarch64_output_sve_rdvl (rtx offset)
+ {
+   static char buffer[sizeof ("rdvl\t%x0, #-") + 3 * sizeof (int)];
+   poly_int64 offset_value = rtx_to_poly_int64 (offset);
+   gcc_assert (aarch64_sve_rdvl_immediate_p (offset_value));
+ 
+   int factor = offset_value.coeffs[1];
+   snprintf (buffer, sizeof (buffer), "rdvl\t%%x0, #%d", factor / 16);
+   return buffer;
+ }
+ 
  /* Return true if we can add VALUE to a register using a single ADDVL
     or ADDPL instruction.  */
  
*************** aarch64_sve_addvl_addpl_immediate_p (pol
*** 5392,5401 ****
    HOST_WIDE_INT factor = value.coeffs[0];
    if (factor == 0 || value.coeffs[1] != factor)
      return false;
!   /* FACTOR counts VG / 2, so a value of 2 is one predicate width
!      and a value of 16 is one vector width.  */
!   return (((factor & 15) == 0 && IN_RANGE (factor, -32 * 16, 31 * 16))
! 	  || ((factor & 1) == 0 && IN_RANGE (factor, -32 * 2, 31 * 2)));
  }
  
  /* Likewise for rtx X.  */
--- 3866,3873 ----
    HOST_WIDE_INT factor = value.coeffs[0];
    if (factor == 0 || value.coeffs[1] != factor)
      return false;
!   return (aarch64_sve_rdvl_addvl_factor_p (factor)
! 	  || aarch64_sve_addpl_factor_p (factor));
  }
  
  /* Likewise for rtx X.  */
*************** aarch64_output_sve_vector_inc_dec (const
*** 5491,5496 ****
--- 3963,4068 ----
  					     factor, nelts_per_vq);
  }
  
+ /* Return a constant that represents FACTOR multiplied by the
+    number of 128-bit quadwords in an SME vector.  ISA_MODE is the
+    ISA mode in which the calculation is being performed.  */
+ 
+ rtx
+ aarch64_sme_vq_immediate (machine_mode mode, HOST_WIDE_INT factor,
+ 			  aarch64_feature_flags isa_mode)
+ {
+   gcc_assert (aarch64_sve_rdvl_addvl_factor_p (factor));
+   if (isa_mode & AARCH64_FL_SM_ON)
+     /* We're in streaming mode, so we can use normal poly-int values.  */
+     return gen_int_mode ({ factor, factor }, mode);
+ 
+   rtvec vec = gen_rtvec (1, gen_int_mode (factor, SImode));
+   rtx unspec = gen_rtx_UNSPEC (mode, vec, UNSPEC_SME_VQ);
+   return gen_rtx_CONST (mode, unspec);
+ }
+ 
+ /* Return true if X is a constant that represents some number X
+    multiplied by the number of quadwords in an SME vector.  Store this X
+    in *FACTOR if so.  */
+ 
+ static bool
+ aarch64_sme_vq_unspec_p (const_rtx x, HOST_WIDE_INT *factor)
+ {
+   if (!TARGET_SME || GET_CODE (x) != CONST)
+     return false;
+ 
+   x = XEXP (x, 0);
+   if (GET_CODE (x) != UNSPEC
+       || XINT (x, 1) != UNSPEC_SME_VQ
+       || XVECLEN (x, 0) != 1)
+     return false;
+ 
+   x = XVECEXP (x, 0, 0);
+   if (!CONST_INT_P (x))
+     return false;
+ 
+   *factor = INTVAL (x);
+   return true;
+ }
+ 
+ /* Return true if X is a constant that represents some number Y
+    multiplied by the number of quadwords in an SME vector, and if
+    that Y is in the range of RDSVL.  */
+ 
+ bool
+ aarch64_rdsvl_immediate_p (const_rtx x)
+ {
+   HOST_WIDE_INT factor;
+   return (aarch64_sme_vq_unspec_p (x, &factor)
+ 	  && aarch64_sve_rdvl_addvl_factor_p (factor));
+ }
+ 
+ /* Return the asm string for an RDSVL instruction that calculates X,
+    which is a constant that satisfies aarch64_rdsvl_immediate_p.  */
+ 
+ char *
+ aarch64_output_rdsvl (const_rtx x)
+ {
+   gcc_assert (aarch64_rdsvl_immediate_p (x));
+   static char buffer[sizeof ("rdsvl\t%x0, #-") + 3 * sizeof (int)];
+   x = XVECEXP (XEXP (x, 0), 0, 0);
+   snprintf (buffer, sizeof (buffer), "rdsvl\t%%x0, #%d",
+ 	    (int) INTVAL (x) / 16);
+   return buffer;
+ }
+ 
+ /* Return true if X is a constant that can be added using ADDSVL or ADDSPL.  */
+ 
+ bool
+ aarch64_addsvl_addspl_immediate_p (const_rtx x)
+ {
+   HOST_WIDE_INT factor;
+   return (aarch64_sme_vq_unspec_p (x, &factor)
+ 	  && (aarch64_sve_rdvl_addvl_factor_p (factor)
+ 	      || aarch64_sve_addpl_factor_p (factor)));
+ }
+ 
+ /* X is a constant that satisfies aarch64_addsvl_addspl_immediate_p.
+    Return the asm string for the associated instruction.  */
+ 
+ char *
+ aarch64_output_addsvl_addspl (rtx x)
+ {
+   static char buffer[sizeof ("addspl\t%x0, %x1, #-") + 3 * sizeof (int)];
+   HOST_WIDE_INT factor;
+   if (!aarch64_sme_vq_unspec_p (x, &factor))
+     gcc_unreachable ();
+   if (aarch64_sve_rdvl_addvl_factor_p (factor))
+     snprintf (buffer, sizeof (buffer), "addsvl\t%%x0, %%x1, #%d",
+ 	      (int) factor / 16);
+   else if (aarch64_sve_addpl_factor_p (factor))
+     snprintf (buffer, sizeof (buffer), "addspl\t%%x0, %%x1, #%d",
+ 	      (int) factor / 2);
+   else
+     gcc_unreachable ();
+   return buffer;
+ }
+ 
  /* Multipliers for repeating bitmasks of width 32, 16, 8, 4, and 2.  */
  
  static const unsigned HOST_WIDE_INT bitmask_imm_mul[] =
*************** aarch64_internal_mov_immediate (rtx dest
*** 5633,5639 ****
  				machine_mode mode)
  {
    int i;
!   unsigned HOST_WIDE_INT val, val2, mask;
    int one_match, zero_match;
    int num_insns;
  
--- 4205,4211 ----
  				machine_mode mode)
  {
    int i;
!   unsigned HOST_WIDE_INT val, val2, val3, mask;
    int one_match, zero_match;
    int num_insns;
  
*************** aarch64_internal_mov_immediate (rtx dest
*** 5696,5701 ****
--- 4268,4293 ----
  	    }
  	  return 2;
  	}
+ 
+       /* Try 2 bitmask immediates which are xor'd together. */
+       for (i = 0; i < 64; i += 16)
+ 	{
+ 	  val2 = (val >> i) & mask;
+ 	  val2 |= val2 << 16;
+ 	  val2 |= val2 << 32;
+ 	  if (aarch64_bitmask_imm (val2) && aarch64_bitmask_imm (val ^ val2))
+ 	    break;
+ 	}
+ 
+       if (i != 64)
+ 	{
+ 	  if (generate)
+ 	    {
+ 	      emit_insn (gen_rtx_SET (dest, GEN_INT (val2)));
+ 	      emit_insn (gen_xordi3 (dest, dest, GEN_INT (val ^ val2)));
+ 	    }
+ 	  return 2;
+ 	}
      }
  
    /* Try a bitmask plus 2 movk to generate the immediate in 3 instructions.  */
*************** aarch64_internal_mov_immediate (rtx dest
*** 5715,5720 ****
--- 4307,4341 ----
  		}
  	      return 3;
  	    }
+ 
+       /* Try shifting and inserting the bottom 32-bits into the top bits.  */
+       val2 = val & 0xffffffff;
+       val3 = 0xffffffff;
+       val3 = val2 | (val3 << 32);
+       for (i = 17; i < 48; i++)
+ 	if ((val2 | (val2 << i)) == val)
+ 	  {
+ 	    if (generate)
+ 	      {
+ 		emit_insn (gen_rtx_SET (dest, GEN_INT (val2 & 0xffff)));
+ 		emit_insn (gen_insv_immdi (dest, GEN_INT (16),
+ 					   GEN_INT (val2 >> 16)));
+ 		emit_insn (gen_ior_ashldi3 (dest, dest, GEN_INT (i), dest));
+ 	      }
+ 	    return 3;
+ 	  }
+ 	else if ((val3 & ~(val3 << i)) == val)
+ 	  {
+ 	    if (generate)
+ 	      {
+ 		emit_insn (gen_rtx_SET (dest, GEN_INT (val3 | 0xffff0000)));
+ 		emit_insn (gen_insv_immdi (dest, GEN_INT (16),
+ 					   GEN_INT (val2 >> 16)));
+ 		emit_insn (gen_and_one_cmpl_ashldi3 (dest, dest, GEN_INT (i),
+ 						      dest));
+ 	      }
+ 	    return 3;
+ 	  }
      }
  
    /* Generate 2-4 instructions, skipping 16 bits of all zeroes or ones which
*************** aarch64_offset_temporaries (bool add_p,
*** 5963,5975 ****
      count += 1;
    else if (factor != 0)
      {
!       factor = abs (factor);
!       if (factor > 16 * (factor & -factor))
! 	/* Need one register for the CNT result and one for the multiplication
! 	   factor.  If necessary, the second temporary can be reused for the
! 	   constant part of the offset.  */
  	return 2;
!       /* Need one register for the CNT result (which might then
  	 be shifted).  */
        count += 1;
      }
--- 4584,4596 ----
      count += 1;
    else if (factor != 0)
      {
!       factor /= (HOST_WIDE_INT) least_bit_hwi (factor);
!       if (!IN_RANGE (factor, -32, 31))
! 	/* Need one register for the CNT or RDVL result and one for the
! 	   multiplication factor.  If necessary, the second temporary
! 	   can be reused for the constant part of the offset.  */
  	return 2;
!       /* Need one register for the CNT or RDVL result (which might then
  	 be shifted).  */
        count += 1;
      }
*************** aarch64_add_offset_temporaries (rtx x)
*** 6002,6007 ****
--- 4623,4632 ----
     TEMP2, if nonnull, is a second temporary register that doesn't
     overlap either DEST or REG.
  
+    FORCE_ISA_MODE is AARCH64_FL_SM_ON if any variable component of OFFSET
+    is measured relative to the SME vector length instead of the current
+    prevailing vector length.  It is 0 otherwise.
+ 
     Since this function may be used to adjust the stack pointer, we must
     ensure that it cannot cause transient stack deallocation (for example
     by first incrementing SP and then decrementing when adjusting by a
*************** aarch64_add_offset_temporaries (rtx x)
*** 6010,6015 ****
--- 4635,4641 ----
  static void
  aarch64_add_offset (scalar_int_mode mode, rtx dest, rtx src,
  		    poly_int64 offset, rtx temp1, rtx temp2,
+ 		    aarch64_feature_flags force_isa_mode,
  		    bool frame_related_p, bool emit_move_imm = true)
  {
    gcc_assert (emit_move_imm || temp1 != NULL_RTX);
*************** aarch64_add_offset (scalar_int_mode mode
*** 6022,6030 ****
    /* Try using ADDVL or ADDPL to add the whole value.  */
    if (src != const0_rtx && aarch64_sve_addvl_addpl_immediate_p (offset))
      {
!       rtx offset_rtx = gen_int_mode (offset, mode);
        rtx_insn *insn = emit_insn (gen_add3_insn (dest, src, offset_rtx));
        RTX_FRAME_RELATED_P (insn) = frame_related_p;
        return;
      }
  
--- 4648,4665 ----
    /* Try using ADDVL or ADDPL to add the whole value.  */
    if (src != const0_rtx && aarch64_sve_addvl_addpl_immediate_p (offset))
      {
!       gcc_assert (offset.coeffs[0] == offset.coeffs[1]);
!       rtx offset_rtx;
!       if (force_isa_mode == 0)
! 	offset_rtx = gen_int_mode (offset, mode);
!       else
! 	offset_rtx = aarch64_sme_vq_immediate (mode, offset.coeffs[0], 0);
        rtx_insn *insn = emit_insn (gen_add3_insn (dest, src, offset_rtx));
        RTX_FRAME_RELATED_P (insn) = frame_related_p;
+       if (frame_related_p && (force_isa_mode & AARCH64_FL_SM_ON))
+ 	add_reg_note (insn, REG_CFA_ADJUST_CFA,
+ 		      gen_rtx_SET (dest, plus_constant (Pmode, src,
+ 							offset)));
        return;
      }
  
*************** aarch64_add_offset (scalar_int_mode mode
*** 6040,6050 ****
    if (src != const0_rtx
        && aarch64_sve_addvl_addpl_immediate_p (poly_offset))
      {
!       rtx offset_rtx = gen_int_mode (poly_offset, mode);
        if (frame_related_p)
  	{
  	  rtx_insn *insn = emit_insn (gen_add3_insn (dest, src, offset_rtx));
  	  RTX_FRAME_RELATED_P (insn) = true;
  	  src = dest;
  	}
        else
--- 4675,4693 ----
    if (src != const0_rtx
        && aarch64_sve_addvl_addpl_immediate_p (poly_offset))
      {
!       rtx offset_rtx;
!       if (force_isa_mode == 0)
! 	offset_rtx = gen_int_mode (poly_offset, mode);
!       else
! 	offset_rtx = aarch64_sme_vq_immediate (mode, factor, 0);
        if (frame_related_p)
  	{
  	  rtx_insn *insn = emit_insn (gen_add3_insn (dest, src, offset_rtx));
  	  RTX_FRAME_RELATED_P (insn) = true;
+ 	  if (force_isa_mode & AARCH64_FL_SM_ON)
+ 	    add_reg_note (insn, REG_CFA_ADJUST_CFA,
+ 			  gen_rtx_SET (dest, plus_constant (Pmode, src,
+ 							    poly_offset)));
  	  src = dest;
  	}
        else
*************** aarch64_add_offset (scalar_int_mode mode
*** 6058,6142 ****
    /* Otherwise use a CNT-based sequence.  */
    else if (factor != 0)
      {
!       /* Use a subtraction if we have a negative factor.  */
!       rtx_code code = PLUS;
!       if (factor < 0)
! 	{
! 	  factor = -factor;
! 	  code = MINUS;
! 	}
  
!       /* Calculate CNTD * FACTOR / 2.  First try to fold the division
! 	 into the multiplication.  */
        rtx val;
!       int shift = 0;
!       if (factor & 1)
! 	/* Use a right shift by 1.  */
! 	shift = -1;
!       else
! 	factor /= 2;
!       HOST_WIDE_INT low_bit = factor & -factor;
!       if (factor <= 16 * low_bit)
  	{
! 	  if (factor > 16 * 8)
  	    {
! 	      /* "CNTB Xn, ALL, MUL #FACTOR" is out of range, so calculate
! 		 the value with the minimum multiplier and shift it into
! 		 position.  */
! 	      int extra_shift = exact_log2 (low_bit);
! 	      shift += extra_shift;
! 	      factor >>= extra_shift;
  	    }
! 	  val = gen_int_mode (poly_int64 (factor * 2, factor * 2), mode);
  	}
        else
  	{
! 	  /* Base the factor on LOW_BIT if we can calculate LOW_BIT
! 	     directly, since that should increase the chances of being
! 	     able to use a shift and add sequence.  If LOW_BIT itself
! 	     is out of range, just use CNTD.  */
! 	  if (low_bit <= 16 * 8)
! 	    factor /= low_bit;
  	  else
! 	    low_bit = 1;
  
- 	  val = gen_int_mode (poly_int64 (low_bit * 2, low_bit * 2), mode);
  	  val = aarch64_force_temporary (mode, temp1, val);
  
  	  if (can_create_pseudo_p ())
  	    {
! 	      rtx coeff1 = gen_int_mode (factor, mode);
  	      val = expand_mult (mode, val, coeff1, NULL_RTX, true, true);
  	    }
  	  else
  	    {
! 	      /* Go back to using a negative multiplication factor if we have
! 		 no register from which to subtract.  */
! 	      if (code == MINUS && src == const0_rtx)
! 		{
! 		  factor = -factor;
! 		  code = PLUS;
! 		}
! 	      rtx coeff1 = gen_int_mode (factor, mode);
  	      coeff1 = aarch64_force_temporary (mode, temp2, coeff1);
  	      val = gen_rtx_MULT (mode, val, coeff1);
  	    }
  	}
  
        if (shift > 0)
  	{
- 	  /* Multiply by 1 << SHIFT.  */
  	  val = aarch64_force_temporary (mode, temp1, val);
  	  val = gen_rtx_ASHIFT (mode, val, GEN_INT (shift));
  	}
!       else if (shift == -1)
  	{
- 	  /* Divide by 2.  */
  	  val = aarch64_force_temporary (mode, temp1, val);
! 	  val = gen_rtx_ASHIFTRT (mode, val, const1_rtx);
  	}
  
!       /* Calculate SRC +/- CNTD * FACTOR / 2.  */
        if (src != const0_rtx)
  	{
  	  val = aarch64_force_temporary (mode, temp1, val);
--- 4701,4817 ----
    /* Otherwise use a CNT-based sequence.  */
    else if (factor != 0)
      {
!       /* Calculate CNTB * FACTOR / 16 as CNTB * REL_FACTOR * 2**SHIFT,
! 	 with negative shifts indicating a shift right.  */
!       HOST_WIDE_INT low_bit = least_bit_hwi (factor);
!       HOST_WIDE_INT rel_factor = factor / low_bit;
!       int shift = exact_log2 (low_bit) - 4;
!       gcc_assert (shift >= -4 && (rel_factor & 1) != 0);
  
!       /* Set CODE, VAL and SHIFT so that [+-] VAL * 2**SHIFT is
! 	 equal to CNTB * FACTOR / 16, with CODE being the [+-].
! 
! 	 We can avoid a multiplication if REL_FACTOR is in the range
! 	 of RDVL, although there are then various optimizations that
! 	 we can try on top.  */
!       rtx_code code = PLUS;
        rtx val;
!       if (IN_RANGE (rel_factor, -32, 31))
  	{
! 	  if (force_isa_mode & AARCH64_FL_SM_ON)
  	    {
! 	      /* Try to use an unshifted RDSVL, otherwise fall back on
! 		 a shifted RDSVL #1.  */
! 	      if (aarch64_sve_rdvl_addvl_factor_p (factor))
! 		shift = 0;
! 	      else
! 		factor = rel_factor * 16;
! 	      val = aarch64_sme_vq_immediate (mode, factor, 0);
  	    }
! 	  /* Try to use an unshifted CNT[BHWD] or RDVL.  */
! 	  else if (aarch64_sve_cnt_factor_p (factor)
! 		   || aarch64_sve_rdvl_addvl_factor_p (factor))
! 	    {
! 	      val = gen_int_mode (poly_int64 (factor, factor), mode);
! 	      shift = 0;
! 	    }
! 	  /* Try to subtract an unshifted CNT[BHWD].  */
! 	  else if (aarch64_sve_cnt_factor_p (-factor))
! 	    {
! 	      code = MINUS;
! 	      val = gen_int_mode (poly_int64 (-factor, -factor), mode);
! 	      shift = 0;
! 	    }
! 	  /* If subtraction is free, prefer to load a positive constant.
! 	     In the best case this will fit a shifted CNTB.  */
! 	  else if (src != const0_rtx && rel_factor < 0)
! 	    {
! 	      code = MINUS;
! 	      val = gen_int_mode (-rel_factor * BYTES_PER_SVE_VECTOR, mode);
! 	    }
! 	  /* Otherwise use a shifted RDVL or CNT[BHWD].  */
! 	  else
! 	    val = gen_int_mode (rel_factor * BYTES_PER_SVE_VECTOR, mode);
  	}
        else
  	{
! 	  /* If we can calculate CNTB << SHIFT directly, prefer to do that,
! 	     since it should increase the chances of being able to use
! 	     a shift and add sequence for the multiplication.
! 	     If CNTB << SHIFT is out of range, stick with the current
! 	     shift factor.  */
! 	  if (force_isa_mode == 0
! 	      && IN_RANGE (low_bit, 2, 16 * 16))
! 	    {
! 	      val = gen_int_mode (poly_int64 (low_bit, low_bit), mode);
! 	      shift = 0;
! 	    }
! 	  else if ((force_isa_mode & AARCH64_FL_SM_ON)
! 		   && aarch64_sve_rdvl_addvl_factor_p (low_bit))
! 	    {
! 	      val = aarch64_sme_vq_immediate (mode, low_bit, 0);
! 	      shift = 0;
! 	    }
  	  else
! 	    val = gen_int_mode (BYTES_PER_SVE_VECTOR, mode);
  
  	  val = aarch64_force_temporary (mode, temp1, val);
  
+ 	  /* Prefer to multiply by a positive factor and subtract rather
+ 	     than multiply by a negative factor and add, since positive
+ 	     values are usually easier to move.  */
+ 	  if (rel_factor < 0 && src != const0_rtx)
+ 	    {
+ 	      rel_factor = -rel_factor;
+ 	      code = MINUS;
+ 	    }
+ 
  	  if (can_create_pseudo_p ())
  	    {
! 	      rtx coeff1 = gen_int_mode (rel_factor, mode);
  	      val = expand_mult (mode, val, coeff1, NULL_RTX, true, true);
  	    }
  	  else
  	    {
! 	      rtx coeff1 = gen_int_mode (rel_factor, mode);
  	      coeff1 = aarch64_force_temporary (mode, temp2, coeff1);
  	      val = gen_rtx_MULT (mode, val, coeff1);
  	    }
  	}
  
+       /* Multiply by 2 ** SHIFT.  */
        if (shift > 0)
  	{
  	  val = aarch64_force_temporary (mode, temp1, val);
  	  val = gen_rtx_ASHIFT (mode, val, GEN_INT (shift));
  	}
!       else if (shift < 0)
  	{
  	  val = aarch64_force_temporary (mode, temp1, val);
! 	  val = gen_rtx_ASHIFTRT (mode, val, GEN_INT (-shift));
  	}
  
!       /* Add the result to SRC or subtract the result from SRC.  */
        if (src != const0_rtx)
  	{
  	  val = aarch64_force_temporary (mode, temp1, val);
*************** aarch64_split_add_offset (scalar_int_mod
*** 6184,6213 ****
  			  rtx offset_rtx, rtx temp1, rtx temp2)
  {
    aarch64_add_offset (mode, dest, src, rtx_to_poly_int64 (offset_rtx),
! 		      temp1, temp2, false);
  }
  
  /* Add DELTA to the stack pointer, marking the instructions frame-related.
!    TEMP1 is available as a temporary if nonnull.  EMIT_MOVE_IMM is false
!    if TEMP1 already contains abs (DELTA).  */
  
  static inline void
! aarch64_add_sp (rtx temp1, rtx temp2, poly_int64 delta, bool emit_move_imm)
  {
    aarch64_add_offset (Pmode, stack_pointer_rtx, stack_pointer_rtx, delta,
! 		      temp1, temp2, true, emit_move_imm);
  }
  
  /* Subtract DELTA from the stack pointer, marking the instructions
!    frame-related if FRAME_RELATED_P.  TEMP1 is available as a temporary
!    if nonnull.  */
  
  static inline void
! aarch64_sub_sp (rtx temp1, rtx temp2, poly_int64 delta, bool frame_related_p,
! 		bool emit_move_imm = true)
  {
    aarch64_add_offset (Pmode, stack_pointer_rtx, stack_pointer_rtx, -delta,
! 		      temp1, temp2, frame_related_p, emit_move_imm);
  }
  
  /* Set DEST to (vec_series BASE STEP).  */
--- 4859,5373 ----
  			  rtx offset_rtx, rtx temp1, rtx temp2)
  {
    aarch64_add_offset (mode, dest, src, rtx_to_poly_int64 (offset_rtx),
! 		      temp1, temp2, 0, false);
  }
  
  /* Add DELTA to the stack pointer, marking the instructions frame-related.
!    TEMP1 is available as a temporary if nonnull.  FORCE_ISA_MODE is as
!    for aarch64_add_offset.  EMIT_MOVE_IMM is false if TEMP1 already
!    contains abs (DELTA).  */
  
  static inline void
! aarch64_add_sp (rtx temp1, rtx temp2, poly_int64 delta,
! 		aarch64_feature_flags force_isa_mode, bool emit_move_imm)
  {
    aarch64_add_offset (Pmode, stack_pointer_rtx, stack_pointer_rtx, delta,
! 		      temp1, temp2, force_isa_mode, true, emit_move_imm);
  }
  
  /* Subtract DELTA from the stack pointer, marking the instructions
!    frame-related if FRAME_RELATED_P.  FORCE_ISA_MODE is as for
!    aarch64_add_offset.  TEMP1 is available as a temporary if nonnull.  */
  
  static inline void
! aarch64_sub_sp (rtx temp1, rtx temp2, poly_int64 delta,
! 		aarch64_feature_flags force_isa_mode,
! 		bool frame_related_p, bool emit_move_imm = true)
  {
    aarch64_add_offset (Pmode, stack_pointer_rtx, stack_pointer_rtx, -delta,
! 		      temp1, temp2, force_isa_mode, frame_related_p,
! 		      emit_move_imm);
! }
! 
! /* A streaming-compatible function needs to switch temporarily to the known
!    PSTATE.SM mode described by LOCAL_MODE.  The low bit of OLD_SVCR contains
!    the runtime state of PSTATE.SM in the streaming-compatible code, before
!    the start of the switch to LOCAL_MODE.
! 
!    Emit instructions to branch around the mode switch if PSTATE.SM already
!    matches LOCAL_MODE.  Return the label that the branch jumps to.  */
! 
! static rtx_insn *
! aarch64_guard_switch_pstate_sm (rtx old_svcr, aarch64_feature_flags local_mode)
! {
!   local_mode &= AARCH64_FL_SM_STATE;
!   gcc_assert (local_mode != 0);
!   auto already_ok_cond = (local_mode & AARCH64_FL_SM_ON ? NE : EQ);
!   auto *label = gen_label_rtx ();
!   auto branch = aarch64_gen_test_and_branch (already_ok_cond, old_svcr, 0,
! 					     label);
!   auto *jump = emit_jump_insn (branch);
!   JUMP_LABEL (jump) = label;
!   return label;
! }
! 
! /* Emit code to switch from the PSTATE.SM state in OLD_MODE to the PSTATE.SM
!    state in NEW_MODE.  This is known to involve either an SMSTART SM or
!    an SMSTOP SM.  */
! 
! static void
! aarch64_switch_pstate_sm (aarch64_feature_flags old_mode,
! 			  aarch64_feature_flags new_mode)
! {
!   old_mode &= AARCH64_FL_SM_STATE;
!   new_mode &= AARCH64_FL_SM_STATE;
!   gcc_assert (old_mode != new_mode);
! 
!   if ((new_mode & AARCH64_FL_SM_ON)
!       || (new_mode == 0 && (old_mode & AARCH64_FL_SM_OFF)))
!     emit_insn (gen_aarch64_smstart_sm ());
!   else
!     emit_insn (gen_aarch64_smstop_sm ());
! }
! 
! /* As a side-effect, SMSTART SM and SMSTOP SM clobber the contents of all
!    FP and predicate registers.  This class emits code to preserve any
!    necessary registers around the mode switch.
! 
!    The class uses four approaches to saving and restoring contents, enumerated
!    by group_type:
! 
!    - GPR: save and restore the contents of FP registers using GPRs.
!      This is used if the FP register contains no more than 64 significant
!      bits.  The registers used are FIRST_GPR onwards.
! 
!    - MEM_128: save and restore 128-bit SIMD registers using memory.
! 
!    - MEM_SVE_PRED: save and restore full SVE predicate registers using memory.
! 
!    - MEM_SVE_DATA: save and restore full SVE vector registers using memory.
! 
!    The save slots within each memory group are consecutive, with the
!    MEM_SVE_PRED slots occupying a region below the MEM_SVE_DATA slots.
! 
!    There will only be two mode switches for each use of SME, so they should
!    not be particularly performance-sensitive.  It's also rare for SIMD, SVE
!    or predicate registers to be live across mode switches.  We therefore
!    don't preallocate the save slots but instead allocate them locally on
!    demand.  This makes the code emitted by the class self-contained.  */
! 
! class aarch64_sme_mode_switch_regs
! {
! public:
!   static const unsigned int FIRST_GPR = R10_REGNUM;
! 
!   void add_reg (machine_mode, unsigned int);
!   void add_call_args (rtx_call_insn *);
!   void add_call_result (rtx_call_insn *);
!   void add_call_preserved_reg (unsigned int);
!   void add_call_preserved_regs (bitmap);
! 
!   void emit_prologue ();
!   void emit_epilogue ();
! 
!   /* The number of GPRs needed to save FP registers, starting from
!      FIRST_GPR.  */
!   unsigned int num_gprs () { return m_group_count[GPR]; }
! 
! private:
!   enum sequence { PROLOGUE, EPILOGUE };
!   enum group_type { GPR, MEM_128, MEM_SVE_PRED, MEM_SVE_DATA, NUM_GROUPS };
! 
!   /* Information about the save location for one FP, SIMD, SVE data, or
!      SVE predicate register.  */
!   struct save_location {
!     /* The register to be saved.  */
!     rtx reg;
! 
!     /* Which group the save location belongs to.  */
!     group_type group;
! 
!     /* A zero-based index of the register within the group.  */
!     unsigned int index;
!   };
! 
!   unsigned int sve_data_headroom ();
!   rtx get_slot_mem (machine_mode, poly_int64);
!   void emit_stack_adjust (sequence, poly_int64);
!   void emit_mem_move (sequence, const save_location &, poly_int64);
! 
!   void emit_gpr_moves (sequence);
!   void emit_mem_128_moves (sequence);
!   void emit_sve_sp_adjust (sequence);
!   void emit_sve_pred_moves (sequence);
!   void emit_sve_data_moves (sequence);
! 
!   /* All save locations, in no particular order.  */
!   auto_vec<save_location, 12> m_save_locations;
! 
!   /* The number of registers in each group.  */
!   unsigned int m_group_count[NUM_GROUPS] = {};
! };
! 
! /* Record that (reg:MODE REGNO) needs to be preserved around the mode
!    switch.  */
! 
! void
! aarch64_sme_mode_switch_regs::add_reg (machine_mode mode, unsigned int regno)
! {
!   if (!FP_REGNUM_P (regno) && !PR_REGNUM_P (regno))
!     return;
! 
!   unsigned int end_regno = end_hard_regno (mode, regno);
!   unsigned int vec_flags = aarch64_classify_vector_mode (mode);
!   gcc_assert ((vec_flags & VEC_STRUCT) || end_regno == regno + 1);
!   for (; regno < end_regno; regno++)
!     {
!       /* Force the mode of SVE saves and restores even for single registers.
! 	 This is necessary because big-endian targets only allow LDR Z and
! 	 STR Z to be used with byte modes.  */
!       machine_mode submode = mode;
!       if (vec_flags & VEC_SVE_PRED)
! 	submode = VNx16BImode;
!       else if (vec_flags & VEC_SVE_DATA)
! 	submode = SVE_BYTE_MODE;
!       else if (vec_flags & VEC_STRUCT)
! 	{
! 	  if (vec_flags & VEC_PARTIAL)
! 	    submode = V8QImode;
! 	  else
! 	    submode = V16QImode;
! 	}
!       save_location loc;
!       loc.reg = gen_rtx_REG (submode, regno);
!       if (vec_flags & VEC_SVE_PRED)
! 	{
! 	  gcc_assert (PR_REGNUM_P (regno));
! 	  loc.group = MEM_SVE_PRED;
! 	}
!       else
! 	{
! 	  gcc_assert (FP_REGNUM_P (regno));
! 	  if (known_le (GET_MODE_SIZE (submode), 8))
! 	    loc.group = GPR;
! 	  else if (known_eq (GET_MODE_SIZE (submode), 16))
! 	    loc.group = MEM_128;
! 	  else
! 	    loc.group = MEM_SVE_DATA;
! 	}
!       loc.index = m_group_count[loc.group]++;
!       m_save_locations.quick_push (loc);
!     }
! }
! 
! /* Record that the arguments to CALL_INSN need to be preserved around
!    the mode switch.  */
! 
! void
! aarch64_sme_mode_switch_regs::add_call_args (rtx_call_insn *call_insn)
! {
!   for (rtx node = CALL_INSN_FUNCTION_USAGE (call_insn);
!        node; node = XEXP (node, 1))
!     {
!       rtx item = XEXP (node, 0);
!       if (GET_CODE (item) != USE)
! 	continue;
!       item = XEXP (item, 0);
!       if (!REG_P (item))
! 	continue;
!       add_reg (GET_MODE (item), REGNO (item));
!     }
! }
! 
! /* Record that the return value from CALL_INSN (if any) needs to be
!    preserved around the mode switch.  */
! 
! void
! aarch64_sme_mode_switch_regs::add_call_result (rtx_call_insn *call_insn)
! {
!   rtx pat = PATTERN (call_insn);
!   gcc_assert (GET_CODE (pat) == PARALLEL);
!   pat = XVECEXP (pat, 0, 0);
!   if (GET_CODE (pat) == CALL)
!     return;
!   rtx dest = SET_DEST (pat);
!   if (GET_CODE (dest) == PARALLEL)
!     for (int i = 0; i < XVECLEN (dest, 0); ++i)
!       {
! 	rtx x = XVECEXP (dest, 0, i);
! 	gcc_assert (GET_CODE (x) == EXPR_LIST);
! 	rtx reg = XEXP (x, 0);
! 	add_reg (GET_MODE (reg), REGNO (reg));
!       }
!   else
!     add_reg (GET_MODE (dest), REGNO (dest));
! }
! 
! /* REGNO is a register that is call-preserved under the current function's ABI.
!    Record that it must be preserved around the mode switch.  */
! 
! void
! aarch64_sme_mode_switch_regs::add_call_preserved_reg (unsigned int regno)
! {
!   if (FP_REGNUM_P (regno))
!     switch (crtl->abi->id ())
!       {
!       case ARM_PCS_SVE:
! 	add_reg (VNx16QImode, regno);
! 	break;
!       case ARM_PCS_SIMD:
! 	add_reg (V16QImode, regno);
! 	break;
!       case ARM_PCS_AAPCS64:
! 	add_reg (DImode, regno);
! 	break;
!       default:
! 	gcc_unreachable ();
!       }
!   else if (PR_REGNUM_P (regno))
!     add_reg (VNx16BImode, regno);
! }
! 
! /* The hard registers in REGS are call-preserved under the current function's
!    ABI.  Record that they must be preserved around the mode switch.  */
! 
! void
! aarch64_sme_mode_switch_regs::add_call_preserved_regs (bitmap regs)
! {
!   bitmap_iterator bi;
!   unsigned int regno;
!   EXECUTE_IF_SET_IN_BITMAP (regs, 0, regno, bi)
!     if (HARD_REGISTER_NUM_P (regno))
!       add_call_preserved_reg (regno);
!     else
!       break;
! }
! 
! /* Emit code to save registers before the mode switch.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_prologue ()
! {
!   emit_sve_sp_adjust (PROLOGUE);
!   emit_sve_pred_moves (PROLOGUE);
!   emit_sve_data_moves (PROLOGUE);
!   emit_mem_128_moves (PROLOGUE);
!   emit_gpr_moves (PROLOGUE);
! }
! 
! /* Emit code to restore registers after the mode switch.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_epilogue ()
! {
!   emit_gpr_moves (EPILOGUE);
!   emit_mem_128_moves (EPILOGUE);
!   emit_sve_pred_moves (EPILOGUE);
!   emit_sve_data_moves (EPILOGUE);
!   emit_sve_sp_adjust (EPILOGUE);
! }
! 
! /* The SVE predicate registers are stored below the SVE data registers,
!    with the predicate save area being padded to a data-register-sized
!    boundary.  Return the size of this padded area as a whole number
!    of data register slots.  */
! 
! unsigned int
! aarch64_sme_mode_switch_regs::sve_data_headroom ()
! {
!   return CEIL (m_group_count[MEM_SVE_PRED], 8);
! }
! 
! /* Return a memory reference of mode MODE to OFFSET bytes from the
!    stack pointer.  */
! 
! rtx
! aarch64_sme_mode_switch_regs::get_slot_mem (machine_mode mode,
! 					    poly_int64 offset)
! {
!   rtx addr = plus_constant (Pmode, stack_pointer_rtx, offset);
!   return gen_rtx_MEM (mode, addr);
! }
! 
! /* Allocate or deallocate SIZE bytes of stack space: SEQ decides which.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_stack_adjust (sequence seq,
! 						 poly_int64 size)
! {
!   if (seq == PROLOGUE)
!     size = -size;
!   emit_insn (gen_rtx_SET (stack_pointer_rtx,
! 			  plus_constant (Pmode, stack_pointer_rtx, size)));
! }
! 
! /* Save or restore the register in LOC, whose slot is OFFSET bytes from
!    the stack pointer.  SEQ chooses between saving and restoring.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_mem_move (sequence seq,
! 					     const save_location &loc,
! 					     poly_int64 offset)
! {
!   rtx mem = get_slot_mem (GET_MODE (loc.reg), offset);
!   if (seq == PROLOGUE)
!     emit_move_insn (mem, loc.reg);
!   else
!     emit_move_insn (loc.reg, mem);
! }
! 
! /* Emit instructions to save or restore the GPR group.  SEQ chooses between
!    saving and restoring.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_gpr_moves (sequence seq)
! {
!   for (auto &loc : m_save_locations)
!     if (loc.group == GPR)
!       {
! 	gcc_assert (loc.index < 8);
! 	rtx gpr = gen_rtx_REG (GET_MODE (loc.reg), FIRST_GPR + loc.index);
! 	if (seq == PROLOGUE)
! 	  emit_move_insn (gpr, loc.reg);
! 	else
! 	  emit_move_insn (loc.reg, gpr);
!       }
! }
! 
! /* Emit instructions to save or restore the MEM_128 group.  SEQ chooses
!    between saving and restoring.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_mem_128_moves (sequence seq)
! {
!   HOST_WIDE_INT count = m_group_count[MEM_128];
!   if (count == 0)
!     return;
! 
!   auto sp = stack_pointer_rtx;
!   auto sp_adjust = (seq == PROLOGUE ? -count : count) * 16;
! 
!   /* Pick a common mode that supports LDR & STR with pre/post-modification
!      and LDP & STP with pre/post-modification.  */
!   auto mode = TFmode;
! 
!   /* An instruction pattern that should be emitted at the end.  */
!   rtx last_pat = NULL_RTX;
! 
!   /* A previous MEM_128 location that hasn't been handled yet.  */
!   save_location *prev_loc = nullptr;
! 
!   /* Look for LDP/STPs and record any leftover LDR/STR in PREV_LOC.  */
!   for (auto &loc : m_save_locations)
!     if (loc.group == MEM_128)
!       {
! 	if (!prev_loc)
! 	  {
! 	    prev_loc = &loc;
! 	    continue;
! 	  }
! 	gcc_assert (loc.index == prev_loc->index + 1);
! 
! 	/* The offset of the base of the save area from the current
! 	   stack pointer.  */
! 	HOST_WIDE_INT bias = 0;
! 	if (prev_loc->index == 0 && seq == PROLOGUE)
! 	  bias = sp_adjust;
! 
! 	/* Get the two sets in the LDP/STP.  */
! 	rtx ops[] = {
! 	  gen_rtx_REG (mode, REGNO (prev_loc->reg)),
! 	  get_slot_mem (mode, prev_loc->index * 16 + bias),
! 	  gen_rtx_REG (mode, REGNO (loc.reg)),
! 	  get_slot_mem (mode, loc.index * 16 + bias)
! 	};
! 	unsigned int lhs = (seq == PROLOGUE);
! 	rtx set1 = gen_rtx_SET (ops[lhs], ops[1 - lhs]);
! 	rtx set2 = gen_rtx_SET (ops[lhs + 2], ops[3 - lhs]);
! 
! 	/* Combine the sets with any stack allocation/deallocation.  */
! 	rtx pat;
! 	if (prev_loc->index == 0)
! 	  {
! 	    rtx plus_sp = plus_constant (Pmode, sp, sp_adjust);
! 	    rtvec vec = gen_rtvec (3, gen_rtx_SET (sp, plus_sp), set1, set2);
! 	    pat = gen_rtx_PARALLEL (VOIDmode, vec);
! 	  }
! 	else if (seq == PROLOGUE)
! 	  pat = aarch64_gen_store_pair (ops[1], ops[0], ops[2]);
! 	else
! 	  pat = aarch64_gen_load_pair (ops[0], ops[2], ops[1]);
! 
! 	/* Queue a deallocation to the end, otherwise emit the
! 	   instruction now.  */
! 	if (seq == EPILOGUE && prev_loc->index == 0)
! 	  last_pat = pat;
! 	else
! 	  emit_insn (pat);
! 	prev_loc = nullptr;
!       }
! 
!   /* Handle any leftover LDR/STR.  */
!   if (prev_loc)
!     {
!       rtx reg = gen_rtx_REG (mode, REGNO (prev_loc->reg));
!       rtx addr;
!       if (prev_loc->index != 0)
! 	addr = plus_constant (Pmode, sp, prev_loc->index * 16);
!       else if (seq == PROLOGUE)
! 	{
! 	  rtx allocate = plus_constant (Pmode, sp, -count * 16);
! 	  addr = gen_rtx_PRE_MODIFY (Pmode, sp, allocate);
! 	}
!       else
! 	{
! 	  rtx deallocate = plus_constant (Pmode, sp, count * 16);
! 	  addr = gen_rtx_POST_MODIFY (Pmode, sp, deallocate);
! 	}
!       rtx mem = gen_rtx_MEM (mode, addr);
!       if (seq == PROLOGUE)
! 	emit_move_insn (mem, reg);
!       else
! 	emit_move_insn (reg, mem);
!     }
! 
!   if (last_pat)
!     emit_insn (last_pat);
! }
! 
! /* Allocate or deallocate the stack space needed by the SVE groups.
!    SEQ chooses between allocating and deallocating.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_sve_sp_adjust (sequence seq)
! {
!   if (unsigned int count = m_group_count[MEM_SVE_DATA] + sve_data_headroom ())
!     emit_stack_adjust (seq, count * BYTES_PER_SVE_VECTOR);
! }
! 
! /* Save or restore the MEM_SVE_DATA group.  SEQ chooses between saving
!    and restoring.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_sve_data_moves (sequence seq)
! {
!   for (auto &loc : m_save_locations)
!     if (loc.group == MEM_SVE_DATA)
!       {
! 	auto index = loc.index + sve_data_headroom ();
! 	emit_mem_move (seq, loc, index * BYTES_PER_SVE_VECTOR);
!       }
! }
! 
! /* Save or restore the MEM_SVE_PRED group.  SEQ chooses between saving
!    and restoring.  */
! 
! void
! aarch64_sme_mode_switch_regs::emit_sve_pred_moves (sequence seq)
! {
!   for (auto &loc : m_save_locations)
!     if (loc.group == MEM_SVE_PRED)
!       emit_mem_move (seq, loc, loc.index * BYTES_PER_SVE_PRED);
  }
  
  /* Set DEST to (vec_series BASE STEP).  */
*************** aarch64_expand_mov_immediate (rtx dest,
*** 6782,6788 ****
  	      aarch64_report_sve_required ();
  	      return;
  	    }
! 	  if (base == const0_rtx && aarch64_sve_cnt_immediate_p (offset))
  	    emit_insn (gen_rtx_SET (dest, imm));
  	  else
  	    {
--- 5942,5950 ----
  	      aarch64_report_sve_required ();
  	      return;
  	    }
! 	  if (base == const0_rtx
! 	      && (aarch64_sve_cnt_immediate_p (offset)
! 		  || aarch64_sve_rdvl_immediate_p (offset)))
  	    emit_insn (gen_rtx_SET (dest, imm));
  	  else
  	    {
*************** aarch64_expand_mov_immediate (rtx dest,
*** 6800,6814 ****
  		{
  		  base = aarch64_force_temporary (int_mode, dest, base);
  		  aarch64_add_offset (int_mode, dest, base, offset,
! 				      NULL_RTX, NULL_RTX, false);
  		}
  	      else
  		aarch64_add_offset (int_mode, dest, base, offset,
! 				    dest, NULL_RTX, false);
  	    }
  	  return;
  	}
  
        sty = aarch64_classify_symbol (base, const_offset);
        switch (sty)
  	{
--- 5962,5985 ----
  		{
  		  base = aarch64_force_temporary (int_mode, dest, base);
  		  aarch64_add_offset (int_mode, dest, base, offset,
! 				      NULL_RTX, NULL_RTX, 0, false);
  		}
  	      else
  		aarch64_add_offset (int_mode, dest, base, offset,
! 				    dest, NULL_RTX, 0, false);
  	    }
  	  return;
  	}
  
+       if (aarch64_rdsvl_immediate_p (base))
+ 	{
+ 	  /* We could handle non-constant offsets if they are ever
+ 	     generated.  */
+ 	  gcc_assert (const_offset == 0);
+ 	  emit_insn (gen_rtx_SET (dest, imm));
+ 	  return;
+ 	}
+ 
        sty = aarch64_classify_symbol (base, const_offset);
        switch (sty)
  	{
*************** aarch64_expand_mov_immediate (rtx dest,
*** 6822,6828 ****
  	      gcc_assert (can_create_pseudo_p ());
  	      base = aarch64_force_temporary (int_mode, dest, base);
  	      aarch64_add_offset (int_mode, dest, base, const_offset,
! 				  NULL_RTX, NULL_RTX, false);
  	      return;
  	    }
  
--- 5993,5999 ----
  	      gcc_assert (can_create_pseudo_p ());
  	      base = aarch64_force_temporary (int_mode, dest, base);
  	      aarch64_add_offset (int_mode, dest, base, const_offset,
! 				  NULL_RTX, NULL_RTX, 0, false);
  	      return;
  	    }
  
*************** aarch64_expand_mov_immediate (rtx dest,
*** 6862,6868 ****
  	      gcc_assert(can_create_pseudo_p ());
  	      base = aarch64_force_temporary (int_mode, dest, base);
  	      aarch64_add_offset (int_mode, dest, base, const_offset,
! 				  NULL_RTX, NULL_RTX, false);
  	      return;
  	    }
  	  /* FALLTHRU */
--- 6033,6039 ----
  	      gcc_assert(can_create_pseudo_p ());
  	      base = aarch64_force_temporary (int_mode, dest, base);
  	      aarch64_add_offset (int_mode, dest, base, const_offset,
! 				  NULL_RTX, NULL_RTX, 0, false);
  	      return;
  	    }
  	  /* FALLTHRU */
*************** aarch64_expand_mov_immediate (rtx dest,
*** 6883,6889 ****
  
    if (!CONST_INT_P (imm))
      {
!       if (GET_MODE_CLASS (mode) == MODE_VECTOR_BOOL)
  	{
  	  /* Only the low bit of each .H, .S and .D element is defined,
  	     so we can set the upper bits to whatever we like.  If the
--- 6054,6060 ----
  
    if (!CONST_INT_P (imm))
      {
!       if (aarch64_sve_pred_mode_p (mode))
  	{
  	  /* Only the low bit of each .H, .S and .D element is defined,
  	     so we can set the upper bits to whatever we like.  If the
*************** aarch64_function_ok_for_sibcall (tree, t
*** 7162,7167 ****
--- 6333,6345 ----
    if (crtl->abi->id () != expr_callee_abi (exp).id ())
      return false;
  
+   tree fntype = TREE_TYPE (TREE_TYPE (CALL_EXPR_FN (exp)));
+   if (aarch64_fntype_pstate_sm (fntype) & ~aarch64_cfun_incoming_pstate_sm ())
+     return false;
+   for (auto state : { "za", "zt0" })
+     if (bool (aarch64_cfun_shared_flags (state))
+ 	!= bool (aarch64_fntype_shared_flags (fntype, state)))
+       return false;
    return true;
  }
  
*************** aarch64_return_in_memory_1 (const_tree t
*** 7405,7410 ****
--- 6583,6589 ----
    int count;
  
    if (!AGGREGATE_TYPE_P (type)
+       && TREE_CODE (type) != BITINT_TYPE
        && TREE_CODE (type) != COMPLEX_TYPE
        && TREE_CODE (type) != VECTOR_TYPE)
      /* Simple scalar types always returned in registers.  */
*************** aarch64_vfp_is_call_candidate (cumulativ
*** 7462,7480 ****
  /* Given MODE and TYPE of a function argument, return the alignment in
     bits.  The idea is to suppress any stronger alignment requested by
     the user and opt for the natural alignment (specified in AAPCS64 \S
!    4.1).  ABI_BREAK is set to the old alignment if the alignment was
!    incorrectly calculated in versions of GCC prior to GCC-9.
!    ABI_BREAK_PACKED is set to the old alignment if it was incorrectly
!    calculated in versions between GCC-9 and GCC-13.  This is a helper
!    function for local use only.  */
  
  static unsigned int
  aarch64_function_arg_alignment (machine_mode mode, const_tree type,
! 				unsigned int *abi_break,
! 				unsigned int *abi_break_packed)
  {
!   *abi_break = 0;
!   *abi_break_packed = 0;
    if (!type)
      return GET_MODE_ALIGNMENT (mode);
  
--- 6641,6664 ----
  /* Given MODE and TYPE of a function argument, return the alignment in
     bits.  The idea is to suppress any stronger alignment requested by
     the user and opt for the natural alignment (specified in AAPCS64 \S
!    4.1).  ABI_BREAK_GCC_9 is set to the old alignment if the alignment
!    was incorrectly calculated in versions of GCC prior to GCC 9.
!    ABI_BREAK_GCC_13 is set to the old alignment if it was incorrectly
!    calculated in versions between GCC 9 and GCC 13.  If the alignment
!    might have changed between GCC 13 and GCC 14, ABI_BREAK_GCC_14
!    is the old GCC 13 alignment, otherwise it is zero.
! 
!    This is a helper function for local use only.  */
  
  static unsigned int
  aarch64_function_arg_alignment (machine_mode mode, const_tree type,
! 				unsigned int *abi_break_gcc_9,
! 				unsigned int *abi_break_gcc_13,
! 				unsigned int *abi_break_gcc_14)
  {
!   *abi_break_gcc_9 = 0;
!   *abi_break_gcc_13 = 0;
!   *abi_break_gcc_14 = 0;
    if (!type)
      return GET_MODE_ALIGNMENT (mode);
  
*************** aarch64_function_arg_alignment (machine_
*** 7495,7500 ****
--- 6679,6690 ----
  	  gcc_assert (known_eq (POINTER_SIZE, GET_MODE_BITSIZE (mode)));
  	  return POINTER_SIZE;
  	}
+       if (TREE_CODE (type) == ENUMERAL_TYPE && TREE_TYPE (type))
+ 	{
+ 	  *abi_break_gcc_14 = TYPE_ALIGN (type);
+ 	  type = TYPE_MAIN_VARIANT (TREE_TYPE (type));
+ 	}
+       gcc_assert (!TYPE_USER_ALIGN (type));
        return TYPE_ALIGN (type);
      }
  
*************** aarch64_function_arg_alignment (machine_
*** 7544,7560 ****
       'packed' attribute into account.  */
    if (bitfield_alignment != bitfield_alignment_with_packed
        && bitfield_alignment_with_packed > alignment)
!     *abi_break_packed = bitfield_alignment_with_packed;
  
    if (bitfield_alignment > alignment)
      {
!       *abi_break = alignment;
        return bitfield_alignment;
      }
  
    return alignment;
  }
  
  /* Layout a function argument according to the AAPCS64 rules.  The rule
     numbers refer to the rule numbers in the AAPCS64.  ORIG_MODE is the
     mode that was originally given to us by the target hook, whereas the
--- 6734,6781 ----
       'packed' attribute into account.  */
    if (bitfield_alignment != bitfield_alignment_with_packed
        && bitfield_alignment_with_packed > alignment)
!     *abi_break_gcc_13 = bitfield_alignment_with_packed;
  
    if (bitfield_alignment > alignment)
      {
!       *abi_break_gcc_9 = alignment;
        return bitfield_alignment;
      }
  
    return alignment;
  }
  
+ /* Return true if TYPE describes a _BitInt(N) or an angreggate that uses the
+    _BitInt(N) type.  These include ARRAY_TYPE's with an element that is a
+    _BitInt(N) or an aggregate that uses it, and a RECORD_TYPE or a UNION_TYPE
+    with a field member that is a _BitInt(N) or an aggregate that uses it.
+    Return false otherwise.  */
+ 
+ static bool
+ bitint_or_aggr_of_bitint_p (tree type)
+ {
+   if (!type)
+     return false;
+ 
+   if (TREE_CODE (type) == BITINT_TYPE)
+     return true;
+ 
+   /* If ARRAY_TYPE, check it's element type.  */
+   if (TREE_CODE (type) == ARRAY_TYPE)
+     return bitint_or_aggr_of_bitint_p (TREE_TYPE (type));
+ 
+   /* If RECORD_TYPE or UNION_TYPE, check the fields' types.  */
+   if (RECORD_OR_UNION_TYPE_P (type))
+     for (tree field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+       {
+ 	if (TREE_CODE (field) != FIELD_DECL)
+ 	  continue;
+ 	if (bitint_or_aggr_of_bitint_p (TREE_TYPE (field)))
+ 	  return true;
+       }
+   return false;
+ }
+ 
  /* Layout a function argument according to the AAPCS64 rules.  The rule
     numbers refer to the rule numbers in the AAPCS64.  ORIG_MODE is the
     mode that was originally given to us by the target hook, whereas the
*************** aarch64_layout_arg (cumulative_args_t pc
*** 7570,7577 ****
    int ncrn, nvrn, nregs;
    bool allocate_ncrn, allocate_nvrn;
    HOST_WIDE_INT size;
!   unsigned int abi_break;
!   unsigned int abi_break_packed;
  
    /* We need to do this once per argument.  */
    if (pcum->aapcs_arg_processed)
--- 6791,6799 ----
    int ncrn, nvrn, nregs;
    bool allocate_ncrn, allocate_nvrn;
    HOST_WIDE_INT size;
!   unsigned int abi_break_gcc_9;
!   unsigned int abi_break_gcc_13;
!   unsigned int abi_break_gcc_14;
  
    /* We need to do this once per argument.  */
    if (pcum->aapcs_arg_processed)
*************** aarch64_layout_arg (cumulative_args_t pc
*** 7609,7615 ****
  
       Versions prior to GCC 9.1 ignored a bitfield's underlying type
       and so could calculate an alignment that was too small.  If this
!      happened for TYPE then ABI_BREAK is this older, too-small alignment.
  
       Although GCC 9.1 fixed that bug, it introduced a different one:
       it would consider the alignment of a bitfield's underlying type even
--- 6831,6837 ----
  
       Versions prior to GCC 9.1 ignored a bitfield's underlying type
       and so could calculate an alignment that was too small.  If this
!      happened for TYPE then ABI_BREAK_GCC_9 is this older, too-small alignment.
  
       Although GCC 9.1 fixed that bug, it introduced a different one:
       it would consider the alignment of a bitfield's underlying type even
*************** aarch64_layout_arg (cumulative_args_t pc
*** 7617,7623 ****
       the alignment of the underlying type).  This was fixed in GCC 13.1.
  
       As a result of this bug, GCC 9 to GCC 12 could calculate an alignment
!      that was too big.  If this happened for TYPE, ABI_BREAK_PACKED is
       this older, too-big alignment.
  
       Also, the fact that GCC 9 to GCC 12 considered irrelevant
--- 6839,6845 ----
       the alignment of the underlying type).  This was fixed in GCC 13.1.
  
       As a result of this bug, GCC 9 to GCC 12 could calculate an alignment
!      that was too big.  If this happened for TYPE, ABI_BREAK_GCC_13 is
       this older, too-big alignment.
  
       Also, the fact that GCC 9 to GCC 12 considered irrelevant
*************** aarch64_layout_arg (cumulative_args_t pc
*** 7710,7717 ****
    gcc_assert (!sve_p || !allocate_nvrn);
  
    unsigned int alignment
!     = aarch64_function_arg_alignment (mode, type, &abi_break,
! 				      &abi_break_packed);
  
    /* allocate_ncrn may be false-positive, but allocate_nvrn is quite reliable.
       The following code thus handles passing by SIMD/FP registers first.  */
--- 6932,6947 ----
    gcc_assert (!sve_p || !allocate_nvrn);
  
    unsigned int alignment
!     = aarch64_function_arg_alignment (mode, type, &abi_break_gcc_9,
! 				      &abi_break_gcc_13, &abi_break_gcc_14);
! 
!   gcc_assert ((allocate_nvrn || alignment <= 16 * BITS_PER_UNIT)
! 	      && (!alignment || abi_break_gcc_9 < alignment)
! 	      && (!abi_break_gcc_13 || alignment < abi_break_gcc_13));
! 
!   /* _BitInt(N) was only added in GCC 14.  */
!   bool warn_pcs_change_le_gcc14
!     = warn_pcs_change && !bitint_or_aggr_of_bitint_p (type);
  
    /* allocate_ncrn may be false-positive, but allocate_nvrn is quite reliable.
       The following code thus handles passing by SIMD/FP registers first.  */
*************** aarch64_layout_arg (cumulative_args_t pc
*** 7784,7803 ****
  	{
  	  /* Emit a warning if the alignment changed when taking the
  	     'packed' attribute into account.  */
! 	  if (warn_pcs_change
! 	      && abi_break_packed
! 	      && ((abi_break_packed == 16 * BITS_PER_UNIT)
  		  != (alignment == 16 * BITS_PER_UNIT)))
  	    inform (input_location, "parameter passing for argument of type "
  		    "%qT changed in GCC 13.1", type);
  
  	  /* The == 16 * BITS_PER_UNIT instead of >= 16 * BITS_PER_UNIT
  	     comparison is there because for > 16 * BITS_PER_UNIT
  	     alignment nregs should be > 2 and therefore it should be
  	     passed by reference rather than value.  */
  	  if (alignment == 16 * BITS_PER_UNIT)
  	    {
! 	      if (warn_pcs_change && abi_break)
  		inform (input_location, "parameter passing for argument of type "
  			"%qT changed in GCC 9.1", type);
  	      ++ncrn;
--- 7014,7041 ----
  	{
  	  /* Emit a warning if the alignment changed when taking the
  	     'packed' attribute into account.  */
! 	  if (warn_pcs_change_le_gcc14
! 	      && abi_break_gcc_13
! 	      && ((abi_break_gcc_13 == 16 * BITS_PER_UNIT)
  		  != (alignment == 16 * BITS_PER_UNIT)))
  	    inform (input_location, "parameter passing for argument of type "
  		    "%qT changed in GCC 13.1", type);
  
+ 	  if (warn_pcs_change_le_gcc14
+ 	      && abi_break_gcc_14
+ 	      && ((abi_break_gcc_14 == 16 * BITS_PER_UNIT)
+ 		  != (alignment == 16 * BITS_PER_UNIT)))
+ 	    inform (input_location, "parameter passing for argument of type "
+ 		    "%qT changed in GCC 14.1", type);
+ 
  	  /* The == 16 * BITS_PER_UNIT instead of >= 16 * BITS_PER_UNIT
  	     comparison is there because for > 16 * BITS_PER_UNIT
  	     alignment nregs should be > 2 and therefore it should be
  	     passed by reference rather than value.  */
  	  if (alignment == 16 * BITS_PER_UNIT)
  	    {
! 	      if (warn_pcs_change_le_gcc14
! 		  && abi_break_gcc_9)
  		inform (input_location, "parameter passing for argument of type "
  			"%qT changed in GCC 9.1", type);
  	      ++ncrn;
*************** aarch64_layout_arg (cumulative_args_t pc
*** 7855,7873 ****
  on_stack:
    pcum->aapcs_stack_words = size / UNITS_PER_WORD;
  
!   if (warn_pcs_change
!       && abi_break_packed
!       && ((abi_break_packed >= 16 * BITS_PER_UNIT)
  	  != (alignment >= 16 * BITS_PER_UNIT)))
      inform (input_location, "parameter passing for argument of type "
  	    "%qT changed in GCC 13.1", type);
  
    if (alignment == 16 * BITS_PER_UNIT)
      {
        int new_size = ROUND_UP (pcum->aapcs_stack_size, 16 / UNITS_PER_WORD);
        if (pcum->aapcs_stack_size != new_size)
  	{
! 	  if (warn_pcs_change && abi_break)
  	    inform (input_location, "parameter passing for argument of type "
  		    "%qT changed in GCC 9.1", type);
  	  pcum->aapcs_stack_size = new_size;
--- 7093,7119 ----
  on_stack:
    pcum->aapcs_stack_words = size / UNITS_PER_WORD;
  
!   if (warn_pcs_change_le_gcc14
!       && abi_break_gcc_13
!       && ((abi_break_gcc_13 >= 16 * BITS_PER_UNIT)
  	  != (alignment >= 16 * BITS_PER_UNIT)))
      inform (input_location, "parameter passing for argument of type "
  	    "%qT changed in GCC 13.1", type);
  
+   if (warn_pcs_change_le_gcc14
+       && abi_break_gcc_14
+       && ((abi_break_gcc_14 >= 16 * BITS_PER_UNIT)
+ 	  != (alignment >= 16 * BITS_PER_UNIT)))
+     inform (input_location, "parameter passing for argument of type "
+ 	    "%qT changed in GCC 14.1", type);
+ 
    if (alignment == 16 * BITS_PER_UNIT)
      {
        int new_size = ROUND_UP (pcum->aapcs_stack_size, 16 / UNITS_PER_WORD);
        if (pcum->aapcs_stack_size != new_size)
  	{
! 	  if (warn_pcs_change_le_gcc14
! 	      && abi_break_gcc_9)
  	    inform (input_location, "parameter passing for argument of type "
  		    "%qT changed in GCC 9.1", type);
  	  pcum->aapcs_stack_size = new_size;
*************** on_stack:
*** 7876,7881 ****
--- 7122,7161 ----
    return;
  }
  
+ /* Add the current argument register to the set of those that need
+    to be saved and restored around a change to PSTATE.SM.  */
+ 
+ static void
+ aarch64_record_sme_mode_switch_args (CUMULATIVE_ARGS *pcum)
+ {
+   subrtx_var_iterator::array_type array;
+   FOR_EACH_SUBRTX_VAR (iter, array, pcum->aapcs_reg, NONCONST)
+     {
+       rtx x = *iter;
+       if (REG_P (x) && (FP_REGNUM_P (REGNO (x)) || PR_REGNUM_P (REGNO (x))))
+ 	{
+ 	  unsigned int i = pcum->num_sme_mode_switch_args++;
+ 	  gcc_assert (i < ARRAY_SIZE (pcum->sme_mode_switch_args));
+ 	  pcum->sme_mode_switch_args[i] = x;
+ 	}
+     }
+ }
+ 
+ /* Return a parallel that contains all the registers that need to be
+    saved around a change to PSTATE.SM.  Return const0_rtx if there is
+    no such mode switch, or if no registers need to be saved.  */
+ 
+ static rtx
+ aarch64_finish_sme_mode_switch_args (CUMULATIVE_ARGS *pcum)
+ {
+   if (!pcum->num_sme_mode_switch_args)
+     return const0_rtx;
+ 
+   auto argvec = gen_rtvec_v (pcum->num_sme_mode_switch_args,
+ 			     pcum->sme_mode_switch_args);
+   return gen_rtx_PARALLEL (VOIDmode, argvec);
+ }
+ 
  /* Implement TARGET_FUNCTION_ARG.  */
  
  static rtx
*************** aarch64_function_arg (cumulative_args_t
*** 7887,7893 ****
  	      || pcum->pcs_variant == ARM_PCS_SVE);
  
    if (arg.end_marker_p ())
!     return gen_int_mode (pcum->pcs_variant, DImode);
  
    aarch64_layout_arg (pcum_v, arg);
    return pcum->aapcs_reg;
--- 7167,7183 ----
  	      || pcum->pcs_variant == ARM_PCS_SVE);
  
    if (arg.end_marker_p ())
!     {
!       rtx abi_cookie = aarch64_gen_callee_cookie (pcum->isa_mode,
! 						  pcum->pcs_variant);
!       rtx sme_mode_switch_args = aarch64_finish_sme_mode_switch_args (pcum);
!       rtx shared_za_flags = gen_int_mode (pcum->shared_za_flags, SImode);
!       rtx shared_zt0_flags = gen_int_mode (pcum->shared_zt0_flags, SImode);
!       return gen_rtx_PARALLEL (VOIDmode, gen_rtvec (4, abi_cookie,
! 						    sme_mode_switch_args,
! 						    shared_za_flags,
! 						    shared_zt0_flags));
!     }
  
    aarch64_layout_arg (pcum_v, arg);
    return pcum->aapcs_reg;
*************** void
*** 7897,7903 ****
  aarch64_init_cumulative_args (CUMULATIVE_ARGS *pcum,
  			      const_tree fntype,
  			      rtx libname ATTRIBUTE_UNUSED,
! 			      const_tree fndecl ATTRIBUTE_UNUSED,
  			      unsigned n_named ATTRIBUTE_UNUSED,
  			      bool silent_p)
  {
--- 7187,7193 ----
  aarch64_init_cumulative_args (CUMULATIVE_ARGS *pcum,
  			      const_tree fntype,
  			      rtx libname ATTRIBUTE_UNUSED,
! 			      const_tree fndecl,
  			      unsigned n_named ATTRIBUTE_UNUSED,
  			      bool silent_p)
  {
*************** aarch64_init_cumulative_args (CUMULATIVE
*** 7908,7921 ****
    pcum->aapcs_nextnvrn = 0;
    pcum->aapcs_nextnprn = 0;
    if (fntype)
!     pcum->pcs_variant = (arm_pcs) fntype_abi (fntype).id ();
    else
!     pcum->pcs_variant = ARM_PCS_AAPCS64;
    pcum->aapcs_reg = NULL_RTX;
    pcum->aapcs_arg_processed = false;
    pcum->aapcs_stack_words = 0;
    pcum->aapcs_stack_size = 0;
    pcum->silent_p = silent_p;
  
    if (!silent_p
        && !TARGET_FLOAT
--- 7198,7222 ----
    pcum->aapcs_nextnvrn = 0;
    pcum->aapcs_nextnprn = 0;
    if (fntype)
!     {
!       pcum->pcs_variant = (arm_pcs) fntype_abi (fntype).id ();
!       pcum->isa_mode = aarch64_fntype_isa_mode (fntype);
!     }
    else
!     {
!       pcum->pcs_variant = ARM_PCS_AAPCS64;
!       pcum->isa_mode = AARCH64_FL_DEFAULT_ISA_MODE;
!     }
    pcum->aapcs_reg = NULL_RTX;
    pcum->aapcs_arg_processed = false;
    pcum->aapcs_stack_words = 0;
    pcum->aapcs_stack_size = 0;
    pcum->silent_p = silent_p;
+   pcum->shared_za_flags
+     = (fntype ? aarch64_fntype_shared_flags (fntype, "za") : 0U);
+   pcum->shared_zt0_flags
+     = (fntype ? aarch64_fntype_shared_flags (fntype, "zt0") : 0U);
+   pcum->num_sme_mode_switch_args = 0;
  
    if (!silent_p
        && !TARGET_FLOAT
*************** aarch64_function_arg_advance (cumulative
*** 7956,7961 ****
--- 7257,7266 ----
        aarch64_layout_arg (pcum_v, arg);
        gcc_assert ((pcum->aapcs_reg != NULL_RTX)
  		  != (pcum->aapcs_stack_words != 0));
+       if (pcum->aapcs_reg
+ 	  && aarch64_call_switches_pstate_sm (pcum->isa_mode))
+ 	aarch64_record_sme_mode_switch_args (pcum);
+ 
        pcum->aapcs_arg_processed = false;
        pcum->aapcs_ncrn = pcum->aapcs_nextncrn;
        pcum->aapcs_nvrn = pcum->aapcs_nextnvrn;
*************** aarch64_function_arg_regno_p (unsigned r
*** 7984,7994 ****
  static unsigned int
  aarch64_function_arg_boundary (machine_mode mode, const_tree type)
  {
!   unsigned int abi_break;
!   unsigned int abi_break_packed;
    unsigned int alignment = aarch64_function_arg_alignment (mode, type,
! 							   &abi_break,
! 							   &abi_break_packed);
    /* We rely on aarch64_layout_arg and aarch64_gimplify_va_arg_expr
       to emit warnings about ABI incompatibility.  */
    alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
--- 7289,7301 ----
  static unsigned int
  aarch64_function_arg_boundary (machine_mode mode, const_tree type)
  {
!   unsigned int abi_break_gcc_9;
!   unsigned int abi_break_gcc_13;
!   unsigned int abi_break_gcc_14;
    unsigned int alignment = aarch64_function_arg_alignment (mode, type,
! 							   &abi_break_gcc_9,
! 							   &abi_break_gcc_13,
! 							   &abi_break_gcc_14);
    /* We rely on aarch64_layout_arg and aarch64_gimplify_va_arg_expr
       to emit warnings about ABI incompatibility.  */
    alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
*************** aarch64_function_arg_boundary (machine_m
*** 8000,8005 ****
--- 7307,7316 ----
  static fixed_size_mode
  aarch64_get_reg_raw_mode (int regno)
  {
+   /* Don't use any non GP registers for __builtin_apply and
+      __builtin_return if general registers only mode is requested. */
+   if (TARGET_GENERAL_REGS_ONLY && !GP_REGNUM_P (regno))
+     return as_a <fixed_size_mode> (VOIDmode);
    if (TARGET_SVE && FP_REGNUM_P (regno))
      /* Don't use the SVE part of the register for __builtin_apply and
         __builtin_return.  The SVE registers aren't used by the normal PCS,
*************** aarch64_output_probe_sve_stack_clash (rt
*** 8379,8386 ****
  static bool
  aarch64_needs_frame_chain (void)
  {
!   /* Force a frame chain for EH returns so the return address is at FP+8.  */
!   if (frame_pointer_needed || crtl->calls_eh_return)
      return true;
  
    /* A leaf function cannot have calls or write LR.  */
--- 7690,7696 ----
  static bool
  aarch64_needs_frame_chain (void)
  {
!   if (frame_pointer_needed)
      return true;
  
    /* A leaf function cannot have calls or write LR.  */
*************** aarch64_needs_frame_chain (void)
*** 8394,8411 ****
    return aarch64_use_frame_pointer;
  }
  
  /* Mark the registers that need to be saved by the callee and calculate
     the size of the callee-saved registers area and frame record (both FP
     and LR may be omitted).  */
  static void
  aarch64_layout_frame (void)
  {
!   poly_int64 offset = 0;
!   int regno, last_fp_reg = INVALID_REGNUM;
    machine_mode vector_save_mode = aarch64_reg_save_mode (V8_REGNUM);
    poly_int64 vector_save_size = GET_MODE_SIZE (vector_save_mode);
    bool frame_related_fp_reg_p = false;
    aarch64_frame &frame = cfun->machine->frame;
  
    frame.emit_frame_chain = aarch64_needs_frame_chain ();
  
--- 7704,7784 ----
    return aarch64_use_frame_pointer;
  }
  
+ /* Return true if the current function should save registers above
+    the locals area, rather than below it.  */
+ 
+ static bool
+ aarch64_save_regs_above_locals_p ()
+ {
+   /* When using stack smash protection, make sure that the canary slot
+      comes between the locals and the saved registers.  Otherwise,
+      it would be possible for a carefully sized smash attack to change
+      the saved registers (particularly LR and FP) without reaching the
+      canary.  */
+   return crtl->stack_protect_guard;
+ }
+ 
+ /* Return true if the current function needs to record the incoming
+    value of PSTATE.SM.  */
+ static bool
+ aarch64_need_old_pstate_sm ()
+ {
+   /* Exit early if the incoming value of PSTATE.SM is known at
+      compile time.  */
+   if (aarch64_cfun_incoming_pstate_sm () != 0)
+     return false;
+ 
+   if (aarch64_cfun_enables_pstate_sm ())
+     return true;
+ 
+   /* Non-local goto receivers are entered with PSTATE.SM equal to 0,
+      but the function needs to return with PSTATE.SM unchanged.  */
+   if (nonlocal_goto_handler_labels)
+     return true;
+ 
+   /* Likewise for exception handlers.  */
+   eh_landing_pad lp;
+   for (unsigned int i = 1; vec_safe_iterate (cfun->eh->lp_array, i, &lp); ++i)
+     if (lp && lp->post_landing_pad)
+       return true;
+ 
+   /* Non-local gotos need to set PSTATE.SM to zero.  It's possible to call
+      streaming-compatible functions without SME being available, so PSTATE.SM
+      should only be changed if it is currently set to one.  */
+   if (crtl->has_nonlocal_goto)
+     return true;
+ 
+   if (cfun->machine->call_switches_pstate_sm)
+     for (auto insn = get_insns (); insn; insn = NEXT_INSN (insn))
+       if (auto *call = dyn_cast<rtx_call_insn *> (insn))
+ 	if (!SIBLING_CALL_P (call))
+ 	  {
+ 	    /* Return true if there is a call to a non-streaming-compatible
+ 	       function.  */
+ 	    auto callee_isa_mode = aarch64_insn_callee_isa_mode (call);
+ 	    if (aarch64_call_switches_pstate_sm (callee_isa_mode))
+ 	      return true;
+ 	  }
+   return false;
+ }
+ 
  /* Mark the registers that need to be saved by the callee and calculate
     the size of the callee-saved registers area and frame record (both FP
     and LR may be omitted).  */
  static void
  aarch64_layout_frame (void)
  {
!   unsigned regno, last_fp_reg = INVALID_REGNUM;
    machine_mode vector_save_mode = aarch64_reg_save_mode (V8_REGNUM);
    poly_int64 vector_save_size = GET_MODE_SIZE (vector_save_mode);
    bool frame_related_fp_reg_p = false;
    aarch64_frame &frame = cfun->machine->frame;
+   poly_int64 top_of_locals = -1;
+   bool enables_pstate_sm = aarch64_cfun_enables_pstate_sm ();
+ 
+   vec_safe_truncate (frame.saved_gprs, 0);
+   vec_safe_truncate (frame.saved_fprs, 0);
+   vec_safe_truncate (frame.saved_prs, 0);
  
    frame.emit_frame_chain = aarch64_needs_frame_chain ();
  
*************** aarch64_layout_frame (void)
*** 8423,8428 ****
--- 7796,7802 ----
    /* First mark all the registers that really need to be saved...  */
    for (regno = 0; regno <= LAST_SAVED_REGNUM; regno++)
      frame.reg_offset[regno] = SLOT_NOT_REQUIRED;
+   frame.old_svcr_offset = SLOT_NOT_REQUIRED;
  
    /* ... that includes the eh data registers (if needed)...  */
    if (crtl->calls_eh_return)
*************** aarch64_layout_frame (void)
*** 8438,8444 ****
        frame.reg_offset[regno] = SLOT_REQUIRED;
  
    for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
!     if (df_regs_ever_live_p (regno)
  	&& !fixed_regs[regno]
  	&& !crtl->abi->clobbers_full_reg_p (regno))
        {
--- 7812,7818 ----
        frame.reg_offset[regno] = SLOT_REQUIRED;
  
    for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
!     if ((enables_pstate_sm || df_regs_ever_live_p (regno))
  	&& !fixed_regs[regno]
  	&& !crtl->abi->clobbers_full_reg_p (regno))
        {
*************** aarch64_layout_frame (void)
*** 8467,8482 ****
      }
  
    for (regno = P0_REGNUM; regno <= P15_REGNUM; regno++)
!     if (df_regs_ever_live_p (regno)
  	&& !fixed_regs[regno]
  	&& !crtl->abi->clobbers_full_reg_p (regno))
        frame.reg_offset[regno] = SLOT_REQUIRED;
  
!   /* With stack-clash, LR must be saved in non-leaf functions.  The saving of
!      LR counts as an implicit probe which allows us to maintain the invariant
!      described in the comment at expand_prologue.  */
!   gcc_assert (crtl->is_leaf
! 	      || maybe_ne (frame.reg_offset[R30_REGNUM], SLOT_NOT_REQUIRED));
  
    /* Now assign stack slots for the registers.  Start with the predicate
       registers, since predicate LDR and STR have a relatively small
--- 7841,7863 ----
      }
  
    for (regno = P0_REGNUM; regno <= P15_REGNUM; regno++)
!     if ((enables_pstate_sm || df_regs_ever_live_p (regno))
  	&& !fixed_regs[regno]
  	&& !crtl->abi->clobbers_full_reg_p (regno))
        frame.reg_offset[regno] = SLOT_REQUIRED;
  
!   bool regs_at_top_p = aarch64_save_regs_above_locals_p ();
! 
!   poly_int64 offset = crtl->outgoing_args_size;
!   gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
!   if (regs_at_top_p)
!     {
!       offset += get_frame_size ();
!       offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
!       top_of_locals = offset;
!     }
!   frame.bytes_below_saved_regs = offset;
!   frame.sve_save_and_probe = INVALID_REGNUM;
  
    /* Now assign stack slots for the registers.  Start with the predicate
       registers, since predicate LDR and STR have a relatively small
*************** aarch64_layout_frame (void)
*** 8484,8494 ****
    for (regno = P0_REGNUM; regno <= P15_REGNUM; regno++)
      if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
        {
  	frame.reg_offset[regno] = offset;
  	offset += BYTES_PER_SVE_PRED;
        }
  
!   if (maybe_ne (offset, 0))
      {
        /* If we have any vector registers to save above the predicate registers,
  	 the offset of the vector register save slots need to be a multiple
--- 7865,7879 ----
    for (regno = P0_REGNUM; regno <= P15_REGNUM; regno++)
      if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
        {
+ 	vec_safe_push (frame.saved_prs, regno);
+ 	if (frame.sve_save_and_probe == INVALID_REGNUM)
+ 	  frame.sve_save_and_probe = regno;
  	frame.reg_offset[regno] = offset;
  	offset += BYTES_PER_SVE_PRED;
        }
  
!   poly_int64 saved_prs_size = offset - frame.bytes_below_saved_regs;
!   if (maybe_ne (saved_prs_size, 0))
      {
        /* If we have any vector registers to save above the predicate registers,
  	 the offset of the vector register save slots need to be a multiple
*************** aarch64_layout_frame (void)
*** 8502,8553 ****
  	 If we don't have any vector registers to save, and we know how
  	 big the predicate save area is, we can just round it up to the
  	 next 16-byte boundary.  */
!       if (last_fp_reg == (int) INVALID_REGNUM && offset.is_constant ())
  	offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
        else
  	{
! 	  if (known_le (offset, vector_save_size))
! 	    offset = vector_save_size;
! 	  else if (known_le (offset, vector_save_size * 2))
! 	    offset = vector_save_size * 2;
  	  else
  	    gcc_unreachable ();
  	}
      }
  
    /* If we need to save any SVE vector registers, add them next.  */
!   if (last_fp_reg != (int) INVALID_REGNUM && crtl->abi->id () == ARM_PCS_SVE)
      for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
        if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
  	{
  	  frame.reg_offset[regno] = offset;
  	  offset += vector_save_size;
  	}
  
    /* OFFSET is now the offset of the hard frame pointer from the bottom
       of the callee save area.  */
!   bool saves_below_hard_fp_p = maybe_ne (offset, 0);
!   frame.below_hard_fp_saved_regs_size = offset;
    if (frame.emit_frame_chain)
      {
        /* FP and LR are placed in the linkage record.  */
!       frame.reg_offset[R29_REGNUM] = offset;
!       frame.wb_push_candidate1 = R29_REGNUM;
!       frame.reg_offset[R30_REGNUM] = offset + UNITS_PER_WORD;
!       frame.wb_push_candidate2 = R30_REGNUM;
!       offset += 2 * UNITS_PER_WORD;
      }
  
    for (regno = R0_REGNUM; regno <= R30_REGNUM; regno++)
      if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
!       {
! 	frame.reg_offset[regno] = offset;
! 	if (frame.wb_push_candidate1 == INVALID_REGNUM)
! 	  frame.wb_push_candidate1 = regno;
! 	else if (frame.wb_push_candidate2 == INVALID_REGNUM)
! 	  frame.wb_push_candidate2 = regno;
! 	offset += UNITS_PER_WORD;
!       }
  
    poly_int64 max_int_offset = offset;
    offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
--- 7887,7969 ----
  	 If we don't have any vector registers to save, and we know how
  	 big the predicate save area is, we can just round it up to the
  	 next 16-byte boundary.  */
!       if (last_fp_reg == INVALID_REGNUM && offset.is_constant ())
  	offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
        else
  	{
! 	  if (known_le (saved_prs_size, vector_save_size))
! 	    offset = frame.bytes_below_saved_regs + vector_save_size;
! 	  else if (known_le (saved_prs_size, vector_save_size * 2))
! 	    offset = frame.bytes_below_saved_regs + vector_save_size * 2;
  	  else
  	    gcc_unreachable ();
  	}
      }
  
    /* If we need to save any SVE vector registers, add them next.  */
!   if (last_fp_reg != INVALID_REGNUM && crtl->abi->id () == ARM_PCS_SVE)
      for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
        if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
  	{
+ 	  vec_safe_push (frame.saved_fprs, regno);
+ 	  if (frame.sve_save_and_probe == INVALID_REGNUM)
+ 	    frame.sve_save_and_probe = regno;
  	  frame.reg_offset[regno] = offset;
  	  offset += vector_save_size;
  	}
  
    /* OFFSET is now the offset of the hard frame pointer from the bottom
       of the callee save area.  */
!   auto below_hard_fp_saved_regs_size = offset - frame.bytes_below_saved_regs;
!   bool saves_below_hard_fp_p = maybe_ne (below_hard_fp_saved_regs_size, 0);
!   gcc_assert (!saves_below_hard_fp_p
! 	      || (frame.sve_save_and_probe != INVALID_REGNUM
! 		  && known_eq (frame.reg_offset[frame.sve_save_and_probe],
! 			       frame.bytes_below_saved_regs)));
! 
!   frame.bytes_below_hard_fp = offset;
!   frame.hard_fp_save_and_probe = INVALID_REGNUM;
! 
!   auto allocate_gpr_slot = [&](unsigned int regno)
!     {
!       vec_safe_push (frame.saved_gprs, regno);
!       frame.reg_offset[regno] = offset;
!       offset += UNITS_PER_WORD;
!     };
! 
    if (frame.emit_frame_chain)
      {
        /* FP and LR are placed in the linkage record.  */
!       allocate_gpr_slot (R29_REGNUM);
!       allocate_gpr_slot (R30_REGNUM);
      }
+   else if ((flag_stack_clash_protection || !frame.is_scs_enabled)
+ 	   && known_eq (frame.reg_offset[R30_REGNUM], SLOT_REQUIRED))
+     /* Put the LR save slot first, since it makes a good choice of probe
+        for stack clash purposes.  The idea is that the link register usually
+        has to be saved before a call anyway, and so we lose little by
+        stopping it from being individually shrink-wrapped.  */
+     allocate_gpr_slot (R30_REGNUM);
  
    for (regno = R0_REGNUM; regno <= R30_REGNUM; regno++)
      if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
!       allocate_gpr_slot (regno);
! 
!   if (aarch64_need_old_pstate_sm ())
!     {
!       frame.old_svcr_offset = offset;
!       offset += UNITS_PER_WORD;
!     }
! 
!   /* If the current function changes the SVE vector length, ensure that the
!      old value of the DWARF VG register is saved and available in the CFI,
!      so that outer frames with VL-sized offsets can be processed correctly.  */
!   if (cfun->machine->call_switches_pstate_sm
!       || aarch64_cfun_enables_pstate_sm ())
!     {
!       frame.reg_offset[VG_REGNUM] = offset;
!       offset += UNITS_PER_WORD;
!     }
  
    poly_int64 max_int_offset = offset;
    offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
*************** aarch64_layout_frame (void)
*** 8556,8561 ****
--- 7972,7978 ----
    for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
      if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
        {
+ 	vec_safe_push (frame.saved_fprs, regno);
  	/* If there is an alignment gap between integer and fp callee-saves,
  	   allocate the last fp register to it if possible.  */
  	if (regno == last_fp_reg
*************** aarch64_layout_frame (void)
*** 8568,8607 ****
  	  }
  
  	frame.reg_offset[regno] = offset;
- 	if (frame.wb_push_candidate1 == INVALID_REGNUM)
- 	  frame.wb_push_candidate1 = regno;
- 	else if (frame.wb_push_candidate2 == INVALID_REGNUM
- 		 && frame.wb_push_candidate1 >= V0_REGNUM)
- 	  frame.wb_push_candidate2 = regno;
  	offset += vector_save_size;
        }
  
    offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
  
!   frame.saved_regs_size = offset;
! 
!   poly_int64 varargs_and_saved_regs_size = offset + frame.saved_varargs_size;
! 
!   poly_int64 above_outgoing_args
!     = aligned_upper_bound (varargs_and_saved_regs_size
! 			   + get_frame_size (),
! 			   STACK_BOUNDARY / BITS_PER_UNIT);
  
!   frame.hard_fp_offset
!     = above_outgoing_args - frame.below_hard_fp_saved_regs_size;
  
!   /* Both these values are already aligned.  */
!   gcc_assert (multiple_p (crtl->outgoing_args_size,
! 			  STACK_BOUNDARY / BITS_PER_UNIT));
!   frame.frame_size = above_outgoing_args + crtl->outgoing_args_size;
  
!   frame.locals_offset = frame.saved_varargs_size;
  
    frame.initial_adjust = 0;
    frame.final_adjust = 0;
    frame.callee_adjust = 0;
    frame.sve_callee_adjust = 0;
-   frame.callee_offset = 0;
  
    frame.wb_pop_candidate1 = frame.wb_push_candidate1;
    frame.wb_pop_candidate2 = frame.wb_push_candidate2;
--- 7985,8032 ----
  	  }
  
  	frame.reg_offset[regno] = offset;
  	offset += vector_save_size;
        }
  
    offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+   auto saved_regs_size = offset - frame.bytes_below_saved_regs;
  
!   array_slice<unsigned int> push_regs = (!vec_safe_is_empty (frame.saved_gprs)
! 					 ? frame.saved_gprs
! 					 : frame.saved_fprs);
!   if (!push_regs.empty ()
!       && known_eq (frame.reg_offset[push_regs[0]], frame.bytes_below_hard_fp))
!     {
!       frame.hard_fp_save_and_probe = push_regs[0];
!       frame.wb_push_candidate1 = push_regs[0];
!       if (push_regs.size () > 1)
! 	frame.wb_push_candidate2 = push_regs[1];
!     }
  
!   /* With stack-clash, a register must be saved in non-leaf functions.
!      The saving of the bottommost register counts as an implicit probe,
!      which allows us to maintain the invariant described in the comment
!      at expand_prologue.  */
!   gcc_assert (crtl->is_leaf || maybe_ne (saved_regs_size, 0));
  
!   if (!regs_at_top_p)
!     {
!       offset += get_frame_size ();
!       offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
!       top_of_locals = offset;
!     }
!   offset += frame.saved_varargs_size;
!   gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
!   frame.frame_size = offset;
  
!   frame.bytes_above_hard_fp = frame.frame_size - frame.bytes_below_hard_fp;
!   gcc_assert (known_ge (top_of_locals, 0));
!   frame.bytes_above_locals = frame.frame_size - top_of_locals;
  
    frame.initial_adjust = 0;
    frame.final_adjust = 0;
    frame.callee_adjust = 0;
    frame.sve_callee_adjust = 0;
  
    frame.wb_pop_candidate1 = frame.wb_push_candidate1;
    frame.wb_pop_candidate2 = frame.wb_push_candidate2;
*************** aarch64_layout_frame (void)
*** 8612,8618 ****
    frame.is_scs_enabled
      = (!crtl->calls_eh_return
         && sanitize_flags_p (SANITIZE_SHADOW_CALL_STACK)
!        && known_ge (cfun->machine->frame.reg_offset[LR_REGNUM], 0));
  
    /* When shadow call stack is enabled, the scs_pop in the epilogue will
       restore x30, and we don't need to pop x30 again in the traditional
--- 8037,8043 ----
    frame.is_scs_enabled
      = (!crtl->calls_eh_return
         && sanitize_flags_p (SANITIZE_SHADOW_CALL_STACK)
!        && known_ge (frame.reg_offset[LR_REGNUM], 0));
  
    /* When shadow call stack is enabled, the scs_pop in the epilogue will
       restore x30, and we don't need to pop x30 again in the traditional
*************** aarch64_layout_frame (void)
*** 8632,8706 ****
       max_push_offset to 0, because no registers are popped at this time,
       so callee_adjust cannot be adjusted.  */
    HOST_WIDE_INT max_push_offset = 0;
!   if (frame.wb_pop_candidate2 != INVALID_REGNUM)
!     max_push_offset = 512;
!   else if (frame.wb_pop_candidate1 != INVALID_REGNUM)
!     max_push_offset = 256;
  
!   HOST_WIDE_INT const_size, const_outgoing_args_size, const_fp_offset;
    HOST_WIDE_INT const_saved_regs_size;
!   if (frame.frame_size.is_constant (&const_size)
!       && const_size < max_push_offset
!       && known_eq (frame.hard_fp_offset, const_size))
      {
!       /* Simple, small frame with no outgoing arguments:
  
  	 stp reg1, reg2, [sp, -frame_size]!
  	 stp reg3, reg4, [sp, 16]  */
        frame.callee_adjust = const_size;
      }
!   else if (crtl->outgoing_args_size.is_constant (&const_outgoing_args_size)
! 	   && frame.saved_regs_size.is_constant (&const_saved_regs_size)
! 	   && const_outgoing_args_size + const_saved_regs_size < 512
! 	   /* We could handle this case even with outgoing args, provided
! 	      that the number of args left us with valid offsets for all
! 	      predicate and vector save slots.  It's such a rare case that
! 	      it hardly seems worth the effort though.  */
! 	   && (!saves_below_hard_fp_p || const_outgoing_args_size == 0)
  	   && !(cfun->calls_alloca
! 		&& frame.hard_fp_offset.is_constant (&const_fp_offset)
! 		&& const_fp_offset < max_push_offset))
      {
!       /* Frame with small outgoing arguments:
  
  	 sub sp, sp, frame_size
! 	 stp reg1, reg2, [sp, outgoing_args_size]
! 	 stp reg3, reg4, [sp, outgoing_args_size + 16]  */
        frame.initial_adjust = frame.frame_size;
-       frame.callee_offset = const_outgoing_args_size;
      }
    else if (saves_below_hard_fp_p
! 	   && known_eq (frame.saved_regs_size,
! 			frame.below_hard_fp_saved_regs_size))
      {
        /* Frame in which all saves are SVE saves:
  
! 	 sub sp, sp, hard_fp_offset + below_hard_fp_saved_regs_size
  	 save SVE registers relative to SP
! 	 sub sp, sp, outgoing_args_size  */
!       frame.initial_adjust = (frame.hard_fp_offset
! 			      + frame.below_hard_fp_saved_regs_size);
!       frame.final_adjust = crtl->outgoing_args_size;
      }
!   else if (frame.hard_fp_offset.is_constant (&const_fp_offset)
! 	   && const_fp_offset < max_push_offset)
      {
!       /* Frame with large outgoing arguments or SVE saves, but with
! 	 a small local area:
  
  	 stp reg1, reg2, [sp, -hard_fp_offset]!
  	 stp reg3, reg4, [sp, 16]
  	 [sub sp, sp, below_hard_fp_saved_regs_size]
  	 [save SVE registers relative to SP]
! 	 sub sp, sp, outgoing_args_size  */
!       frame.callee_adjust = const_fp_offset;
!       frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
!       frame.final_adjust = crtl->outgoing_args_size;
      }
    else
      {
!       /* Frame with large local area and outgoing arguments or SVE saves,
! 	 using frame pointer:
  
  	 sub sp, sp, hard_fp_offset
  	 stp x29, x30, [sp, 0]
--- 8057,8133 ----
       max_push_offset to 0, because no registers are popped at this time,
       so callee_adjust cannot be adjusted.  */
    HOST_WIDE_INT max_push_offset = 0;
!   if (frame.wb_pop_candidate1 != INVALID_REGNUM)
!     {
!       if (frame.wb_pop_candidate2 != INVALID_REGNUM)
! 	max_push_offset = 512;
!       else
! 	max_push_offset = 256;
!     }
  
!   HOST_WIDE_INT const_size, const_below_saved_regs, const_above_fp;
    HOST_WIDE_INT const_saved_regs_size;
!   if (known_eq (saved_regs_size, 0))
!     frame.initial_adjust = frame.frame_size;
!   else if (frame.frame_size.is_constant (&const_size)
! 	   && const_size < max_push_offset
! 	   && known_eq (frame.bytes_above_hard_fp, const_size))
      {
!       /* Simple, small frame with no data below the saved registers.
  
  	 stp reg1, reg2, [sp, -frame_size]!
  	 stp reg3, reg4, [sp, 16]  */
        frame.callee_adjust = const_size;
      }
!   else if (frame.bytes_below_saved_regs.is_constant (&const_below_saved_regs)
! 	   && saved_regs_size.is_constant (&const_saved_regs_size)
! 	   && const_below_saved_regs + const_saved_regs_size < 512
! 	   /* We could handle this case even with data below the saved
! 	      registers, provided that that data left us with valid offsets
! 	      for all predicate and vector save slots.  It's such a rare
! 	      case that it hardly seems worth the effort though.  */
! 	   && (!saves_below_hard_fp_p || const_below_saved_regs == 0)
  	   && !(cfun->calls_alloca
! 		&& frame.bytes_above_hard_fp.is_constant (&const_above_fp)
! 		&& const_above_fp < max_push_offset))
      {
!       /* Frame with small area below the saved registers:
  
  	 sub sp, sp, frame_size
! 	 stp reg1, reg2, [sp, bytes_below_saved_regs]
! 	 stp reg3, reg4, [sp, bytes_below_saved_regs + 16]  */
        frame.initial_adjust = frame.frame_size;
      }
    else if (saves_below_hard_fp_p
! 	   && known_eq (saved_regs_size, below_hard_fp_saved_regs_size))
      {
        /* Frame in which all saves are SVE saves:
  
! 	 sub sp, sp, frame_size - bytes_below_saved_regs
  	 save SVE registers relative to SP
! 	 sub sp, sp, bytes_below_saved_regs  */
!       frame.initial_adjust = frame.frame_size - frame.bytes_below_saved_regs;
!       frame.final_adjust = frame.bytes_below_saved_regs;
      }
!   else if (frame.wb_push_candidate1 != INVALID_REGNUM
! 	   && frame.bytes_above_hard_fp.is_constant (&const_above_fp)
! 	   && const_above_fp < max_push_offset)
      {
!       /* Frame with large area below the saved registers, or with SVE saves,
! 	 but with a small area above:
  
  	 stp reg1, reg2, [sp, -hard_fp_offset]!
  	 stp reg3, reg4, [sp, 16]
  	 [sub sp, sp, below_hard_fp_saved_regs_size]
  	 [save SVE registers relative to SP]
! 	 sub sp, sp, bytes_below_saved_regs  */
!       frame.callee_adjust = const_above_fp;
!       frame.sve_callee_adjust = below_hard_fp_saved_regs_size;
!       frame.final_adjust = frame.bytes_below_saved_regs;
      }
    else
      {
!       /* General case:
  
  	 sub sp, sp, hard_fp_offset
  	 stp x29, x30, [sp, 0]
*************** aarch64_layout_frame (void)
*** 8708,8717 ****
  	 stp reg3, reg4, [sp, 16]
  	 [sub sp, sp, below_hard_fp_saved_regs_size]
  	 [save SVE registers relative to SP]
! 	 sub sp, sp, outgoing_args_size  */
!       frame.initial_adjust = frame.hard_fp_offset;
!       frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
!       frame.final_adjust = crtl->outgoing_args_size;
      }
  
    /* Make sure the individual adjustments add up to the full frame size.  */
--- 8135,8163 ----
  	 stp reg3, reg4, [sp, 16]
  	 [sub sp, sp, below_hard_fp_saved_regs_size]
  	 [save SVE registers relative to SP]
! 	 sub sp, sp, bytes_below_saved_regs  */
!       frame.initial_adjust = frame.bytes_above_hard_fp;
!       frame.sve_callee_adjust = below_hard_fp_saved_regs_size;
!       frame.final_adjust = frame.bytes_below_saved_regs;
!     }
! 
!   /* The frame is allocated in pieces, with each non-final piece
!      including a register save at offset 0 that acts as a probe for
!      the following piece.  In addition, the save of the bottommost register
!      acts as a probe for callees and allocas.  Roll back any probes that
!      aren't needed.
! 
!      A probe isn't needed if it is associated with the final allocation
!      (including callees and allocas) that happens before the epilogue is
!      executed.  */
!   if (crtl->is_leaf
!       && !cfun->calls_alloca
!       && known_eq (frame.final_adjust, 0))
!     {
!       if (maybe_ne (frame.sve_callee_adjust, 0))
! 	frame.sve_save_and_probe = INVALID_REGNUM;
!       else
! 	frame.hard_fp_save_and_probe = INVALID_REGNUM;
      }
  
    /* Make sure the individual adjustments add up to the full frame size.  */
*************** aarch64_layout_frame (void)
*** 8720,8731 ****
  			+ frame.sve_callee_adjust
  			+ frame.final_adjust, frame.frame_size));
  
!   if (!frame.emit_frame_chain && frame.callee_adjust == 0)
      {
!       /* We've decided not to associate any register saves with the initial
! 	 stack allocation.  */
!       frame.wb_pop_candidate1 = frame.wb_push_candidate1 = INVALID_REGNUM;
!       frame.wb_pop_candidate2 = frame.wb_push_candidate2 = INVALID_REGNUM;
      }
  
    frame.laid_out = true;
--- 8166,8179 ----
  			+ frame.sve_callee_adjust
  			+ frame.final_adjust, frame.frame_size));
  
!   if (frame.callee_adjust == 0)
      {
!       /* We've decided not to do a "real" push and pop.  However,
! 	 setting up the frame chain is treated as being essentially
! 	 a multi-instruction push.  */
!       frame.wb_pop_candidate1 = frame.wb_pop_candidate2 = INVALID_REGNUM;
!       if (!frame.emit_frame_chain)
! 	frame.wb_push_candidate1 = frame.wb_push_candidate2 = INVALID_REGNUM;
      }
  
    frame.laid_out = true;
*************** aarch64_register_saved_on_entry (int reg
*** 8740,8756 ****
    return known_ge (cfun->machine->frame.reg_offset[regno], 0);
  }
  
- /* Return the next register up from REGNO up to LIMIT for the callee
-    to save.  */
- 
- static unsigned
- aarch64_next_callee_save (unsigned regno, unsigned limit)
- {
-   while (regno <= limit && !aarch64_register_saved_on_entry (regno))
-     regno ++;
-   return regno;
- }
- 
  /* Push the register number REGNO of mode MODE to the stack with write-back
     adjusting the stack by ADJUSTMENT.  */
  
--- 8188,8193 ----
*************** static rtx
*** 8778,8800 ****
  aarch64_gen_storewb_pair (machine_mode mode, rtx base, rtx reg, rtx reg2,
  			  HOST_WIDE_INT adjustment)
  {
!   switch (mode)
!     {
!     case E_DImode:
!       return gen_storewb_pairdi_di (base, base, reg, reg2,
! 				    GEN_INT (-adjustment),
! 				    GEN_INT (UNITS_PER_WORD - adjustment));
!     case E_DFmode:
!       return gen_storewb_pairdf_di (base, base, reg, reg2,
! 				    GEN_INT (-adjustment),
! 				    GEN_INT (UNITS_PER_WORD - adjustment));
!     case E_TFmode:
!       return gen_storewb_pairtf_di (base, base, reg, reg2,
! 				    GEN_INT (-adjustment),
! 				    GEN_INT (UNITS_PER_VREG - adjustment));
!     default:
!       gcc_unreachable ();
!     }
  }
  
  /* Push registers numbered REGNO1 and REGNO2 to the stack, adjusting the
--- 8215,8229 ----
  aarch64_gen_storewb_pair (machine_mode mode, rtx base, rtx reg, rtx reg2,
  			  HOST_WIDE_INT adjustment)
  {
!   rtx new_base = plus_constant (Pmode, base, -adjustment);
!   rtx mem = gen_frame_mem (mode, new_base);
!   rtx mem2 = adjust_address_nv (mem, mode, GET_MODE_SIZE (mode));
! 
!   return gen_rtx_PARALLEL (VOIDmode,
! 			   gen_rtvec (3,
! 				      gen_rtx_SET (base, new_base),
! 				      gen_rtx_SET (mem, reg),
! 				      gen_rtx_SET (mem2, reg2)));
  }
  
  /* Push registers numbered REGNO1 and REGNO2 to the stack, adjusting the
*************** static rtx
*** 8826,8845 ****
  aarch64_gen_loadwb_pair (machine_mode mode, rtx base, rtx reg, rtx reg2,
  			 HOST_WIDE_INT adjustment)
  {
!   switch (mode)
!     {
!     case E_DImode:
!       return gen_loadwb_pairdi_di (base, base, reg, reg2, GEN_INT (adjustment),
! 				   GEN_INT (UNITS_PER_WORD));
!     case E_DFmode:
!       return gen_loadwb_pairdf_di (base, base, reg, reg2, GEN_INT (adjustment),
! 				   GEN_INT (UNITS_PER_WORD));
!     case E_TFmode:
!       return gen_loadwb_pairtf_di (base, base, reg, reg2, GEN_INT (adjustment),
! 				   GEN_INT (UNITS_PER_VREG));
!     default:
!       gcc_unreachable ();
!     }
  }
  
  /* Pop the two registers numbered REGNO1, REGNO2 from the stack, adjusting it
--- 8255,8269 ----
  aarch64_gen_loadwb_pair (machine_mode mode, rtx base, rtx reg, rtx reg2,
  			 HOST_WIDE_INT adjustment)
  {
!   rtx mem = gen_frame_mem (mode, base);
!   rtx mem2 = adjust_address_nv (mem, mode, GET_MODE_SIZE (mode));
!   rtx new_base = plus_constant (Pmode, base, adjustment);
! 
!   return gen_rtx_PARALLEL (VOIDmode,
! 			   gen_rtvec (3,
! 				      gen_rtx_SET (base, new_base),
! 				      gen_rtx_SET (reg, mem),
! 				      gen_rtx_SET (reg2, mem2)));
  }
  
  /* Pop the two registers numbered REGNO1, REGNO2 from the stack, adjusting it
*************** aarch64_pop_regs (unsigned regno1, unsig
*** 8870,8928 ****
      }
  }
  
! /* Generate and return a store pair instruction of mode MODE to store
!    register REG1 to MEM1 and register REG2 to MEM2.  */
  
! static rtx
! aarch64_gen_store_pair (machine_mode mode, rtx mem1, rtx reg1, rtx mem2,
! 			rtx reg2)
  {
!   switch (mode)
!     {
!     case E_DImode:
!       return gen_store_pair_dw_didi (mem1, reg1, mem2, reg2);
  
!     case E_DFmode:
!       return gen_store_pair_dw_dfdf (mem1, reg1, mem2, reg2);
  
!     case E_TFmode:
!       return gen_store_pair_dw_tftf (mem1, reg1, mem2, reg2);
  
!     case E_V4SImode:
!       return gen_vec_store_pairv4siv4si (mem1, reg1, mem2, reg2);
  
!     case E_V16QImode:
!       return gen_vec_store_pairv16qiv16qi (mem1, reg1, mem2, reg2);
  
!     default:
!       gcc_unreachable ();
!     }
  }
  
! /* Generate and regurn a load pair isntruction of mode MODE to load register
!    REG1 from MEM1 and register REG2 from MEM2.  */
  
! static rtx
! aarch64_gen_load_pair (machine_mode mode, rtx reg1, rtx mem1, rtx reg2,
! 		       rtx mem2)
  {
!   switch (mode)
!     {
!     case E_DImode:
!       return gen_load_pair_dw_didi (reg1, mem1, reg2, mem2);
  
!     case E_DFmode:
!       return gen_load_pair_dw_dfdf (reg1, mem1, reg2, mem2);
  
!     case E_TFmode:
!       return gen_load_pair_dw_tftf (reg1, mem1, reg2, mem2);
  
!     case E_V4SImode:
!       return gen_load_pairv4siv4si (reg1, mem1, reg2, mem2);
  
!     default:
!       gcc_unreachable ();
!     }
  }
  
  /* Return TRUE if return address signing should be enabled for the current
--- 8294,8378 ----
      }
  }
  
! /* Given an ldp/stp register operand mode MODE, return a suitable mode to use
!    for a mem rtx representing the entire pair.  */
  
! static machine_mode
! aarch64_pair_mode_for_mode (machine_mode mode)
  {
!   if (known_eq (GET_MODE_SIZE (mode), 4))
!     return V2x4QImode;
!   else if (known_eq (GET_MODE_SIZE (mode), 8))
!     return V2x8QImode;
!   else if (known_eq (GET_MODE_SIZE (mode), 16))
!     return V2x16QImode;
!   else
!     gcc_unreachable ();
! }
  
! /* Given a base mem MEM with mode and address suitable for a single ldp/stp
!    operand, return an rtx like MEM which instead represents the entire pair.  */
  
! static rtx
! aarch64_pair_mem_from_base (rtx mem)
! {
!   auto pair_mode = aarch64_pair_mode_for_mode (GET_MODE (mem));
!   mem = adjust_bitfield_address_nv (mem, pair_mode, 0);
!   gcc_assert (aarch64_mem_pair_lanes_operand (mem, pair_mode));
!   return mem;
! }
  
! /* Generate and return a store pair instruction to store REG1 and REG2
!    into memory starting at BASE_MEM.  All three rtxes should have modes of the
!    same size.  */
  
! rtx
! aarch64_gen_store_pair (rtx base_mem, rtx reg1, rtx reg2)
! {
!   rtx pair_mem = aarch64_pair_mem_from_base (base_mem);
  
!   return gen_rtx_SET (pair_mem,
! 		      gen_rtx_UNSPEC (GET_MODE (pair_mem),
! 				      gen_rtvec (2, reg1, reg2),
! 				      UNSPEC_STP));
  }
  
! /* Generate and return a load pair instruction to load a pair of
!    registers starting at BASE_MEM into REG1 and REG2.  If CODE is
!    UNKNOWN, all three rtxes should have modes of the same size.
!    Otherwise, CODE is {SIGN,ZERO}_EXTEND, base_mem should be in SImode,
!    and REG{1,2} should be in DImode.  */
  
! rtx
! aarch64_gen_load_pair (rtx reg1, rtx reg2, rtx base_mem, enum rtx_code code)
  {
!   rtx pair_mem = aarch64_pair_mem_from_base (base_mem);
  
!   const bool any_extend_p = (code == ZERO_EXTEND || code == SIGN_EXTEND);
!   if (any_extend_p)
!     gcc_checking_assert (GET_MODE (base_mem) == SImode
! 			 && GET_MODE (reg1) == DImode
! 			 && GET_MODE (reg2) == DImode);
!   else
!     gcc_assert (code == UNKNOWN);
  
!   rtx unspecs[2] = {
!     gen_rtx_UNSPEC (any_extend_p ? SImode : GET_MODE (reg1),
! 		    gen_rtvec (1, pair_mem),
! 		    UNSPEC_LDP_FST),
!     gen_rtx_UNSPEC (any_extend_p ? SImode : GET_MODE (reg2),
! 		    gen_rtvec (1, copy_rtx (pair_mem)),
! 		    UNSPEC_LDP_SND)
!   };
  
!   if (any_extend_p)
!     for (int i = 0; i < 2; i++)
!       unspecs[i] = gen_rtx_fmt_e (code, DImode, unspecs[i]);
  
!   return gen_rtx_PARALLEL (VOIDmode,
! 			   gen_rtvec (2,
! 				      gen_rtx_SET (reg1, unspecs[0]),
! 				      gen_rtx_SET (reg2, unspecs[1])));
  }
  
  /* Return TRUE if return address signing should be enabled for the current
*************** aarch64_return_address_signing_enabled (
*** 8934,8950 ****
    /* This function should only be called after frame laid out.   */
    gcc_assert (cfun->machine->frame.laid_out);
  
-   /* Turn return address signing off in any function that uses
-      __builtin_eh_return.  The address passed to __builtin_eh_return
-      is not signed so either it has to be signed (with original sp)
-      or the code path that uses it has to avoid authenticating it.
-      Currently eh return introduces a return to anywhere gadget, no
-      matter what we do here since it uses ret with user provided
-      address. An ideal fix for that is to use indirect branch which
-      can be protected with BTI j (to some extent).  */
-   if (crtl->calls_eh_return)
-     return false;
- 
    /* If signing scope is AARCH_FUNCTION_NON_LEAF, we only sign a leaf function
       if its LR is pushed onto stack.  */
    return (aarch_ra_sign_scope == AARCH_FUNCTION_ALL
--- 8384,8389 ----
*************** aarch64_add_cfa_expression (rtx_insn *in
*** 9068,9107 ****
    add_reg_note (insn, REG_CFA_EXPRESSION, gen_rtx_SET (mem, reg));
  }
  
! /* Emit code to save the callee-saved registers from register number START
!    to LIMIT to the stack at the location starting at offset START_OFFSET,
!    skipping any write-back candidates if SKIP_WB is true.  HARD_FP_VALID_P
!    is true if the hard frame pointer has been set up.  */
  
  static void
! aarch64_save_callee_saves (poly_int64 start_offset,
! 			   unsigned start, unsigned limit, bool skip_wb,
  			   bool hard_fp_valid_p)
  {
    rtx_insn *insn;
-   unsigned regno;
-   unsigned regno2;
    rtx anchor_reg = NULL_RTX, ptrue = NULL_RTX;
  
!   for (regno = aarch64_next_callee_save (start, limit);
!        regno <= limit;
!        regno = aarch64_next_callee_save (regno + 1, limit))
      {
!       rtx reg, mem;
        poly_int64 offset;
        bool frame_related_p = aarch64_emit_cfi_for_reg_p (regno);
  
!       if (skip_wb
! 	  && (regno == cfun->machine->frame.wb_push_candidate1
! 	      || regno == cfun->machine->frame.wb_push_candidate2))
! 	continue;
! 
!       if (cfun->machine->reg_is_wrapped_separately[regno])
  	continue;
  
        machine_mode mode = aarch64_reg_save_mode (regno);
!       reg = gen_rtx_REG (mode, regno);
!       offset = start_offset + cfun->machine->frame.reg_offset[regno];
        rtx base_rtx = stack_pointer_rtx;
        poly_int64 sp_offset = offset;
  
--- 8507,8559 ----
    add_reg_note (insn, REG_CFA_EXPRESSION, gen_rtx_SET (mem, reg));
  }
  
! /* Emit code to save the callee-saved registers in REGS.  Skip any
!    write-back candidates if SKIP_WB is true, otherwise consider only
!    write-back candidates.
! 
!    The stack pointer is currently BYTES_BELOW_SP bytes above the bottom
!    of the static frame.  HARD_FP_VALID_P is true if the hard frame pointer
!    has been set up.  */
  
  static void
! aarch64_save_callee_saves (poly_int64 bytes_below_sp,
! 			   array_slice<unsigned int> regs, bool skip_wb,
  			   bool hard_fp_valid_p)
  {
+   aarch64_frame &frame = cfun->machine->frame;
    rtx_insn *insn;
    rtx anchor_reg = NULL_RTX, ptrue = NULL_RTX;
  
!   auto skip_save_p = [&](unsigned int regno)
      {
!       if (cfun->machine->reg_is_wrapped_separately[regno])
! 	return true;
! 
!       if (skip_wb == (regno == frame.wb_push_candidate1
! 		      || regno == frame.wb_push_candidate2))
! 	return true;
! 
!       return false;
!     };
! 
!   for (unsigned int i = 0; i < regs.size (); ++i)
!     {
!       unsigned int regno = regs[i];
        poly_int64 offset;
        bool frame_related_p = aarch64_emit_cfi_for_reg_p (regno);
  
!       if (skip_save_p (regno))
  	continue;
  
        machine_mode mode = aarch64_reg_save_mode (regno);
!       rtx reg = gen_rtx_REG (mode, regno);
!       rtx move_src = reg;
!       offset = frame.reg_offset[regno] - bytes_below_sp;
!       if (regno == VG_REGNUM)
! 	{
! 	  move_src = gen_rtx_REG (DImode, IP0_REGNUM);
! 	  emit_move_insn (move_src, gen_int_mode (aarch64_sve_vg, DImode));
! 	}
        rtx base_rtx = stack_pointer_rtx;
        poly_int64 sp_offset = offset;
  
*************** aarch64_save_callee_saves (poly_int64 st
*** 9109,9120 ****
        if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg,
  					     offset, ptrue);
!       else if (GP_REGNUM_P (regno)
  	       && (!offset.is_constant (&const_offset) || const_offset >= 512))
  	{
! 	  gcc_assert (known_eq (start_offset, 0));
! 	  poly_int64 fp_offset
! 	    = cfun->machine->frame.below_hard_fp_saved_regs_size;
  	  if (hard_fp_valid_p)
  	    base_rtx = hard_frame_pointer_rtx;
  	  else
--- 8561,8570 ----
        if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg,
  					     offset, ptrue);
!       else if (GP_REGNUM_P (REGNO (reg))
  	       && (!offset.is_constant (&const_offset) || const_offset >= 512))
  	{
! 	  poly_int64 fp_offset = frame.bytes_below_hard_fp - bytes_below_sp;
  	  if (hard_fp_valid_p)
  	    base_rtx = hard_frame_pointer_rtx;
  	  else
*************** aarch64_save_callee_saves (poly_int64 st
*** 9129,9237 ****
  	    }
  	  offset -= fp_offset;
  	}
!       mem = gen_frame_mem (mode, plus_constant (Pmode, base_rtx, offset));
!       bool need_cfa_note_p = (base_rtx != stack_pointer_rtx);
  
        if (!aarch64_sve_mode_p (mode)
! 	  && (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit
! 	  && !cfun->machine->reg_is_wrapped_separately[regno2]
  	  && known_eq (GET_MODE_SIZE (mode),
! 		       cfun->machine->frame.reg_offset[regno2]
! 		       - cfun->machine->frame.reg_offset[regno]))
  	{
  	  rtx reg2 = gen_rtx_REG (mode, regno2);
- 	  rtx mem2;
  
  	  offset += GET_MODE_SIZE (mode);
! 	  mem2 = gen_frame_mem (mode, plus_constant (Pmode, base_rtx, offset));
! 	  insn = emit_insn (aarch64_gen_store_pair (mode, mem, reg, mem2,
! 						    reg2));
  
! 	  /* The first part of a frame-related parallel insn is
! 	     always assumed to be relevant to the frame
! 	     calculations; subsequent parts, are only
! 	     frame-related if explicitly marked.  */
  	  if (aarch64_emit_cfi_for_reg_p (regno2))
! 	    {
! 	      if (need_cfa_note_p)
! 		aarch64_add_cfa_expression (insn, reg2, stack_pointer_rtx,
! 					    sp_offset + GET_MODE_SIZE (mode));
! 	      else
! 		RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1;
! 	    }
  
  	  regno = regno2;
  	}
!       else if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	{
! 	  insn = emit_insn (gen_aarch64_pred_mov (mode, mem, ptrue, reg));
! 	  need_cfa_note_p = true;
  	}
-       else if (aarch64_sve_mode_p (mode))
- 	insn = emit_insn (gen_rtx_SET (mem, reg));
-       else
- 	insn = emit_move_insn (mem, reg);
  
        RTX_FRAME_RELATED_P (insn) = frame_related_p;
!       if (frame_related_p && need_cfa_note_p)
! 	aarch64_add_cfa_expression (insn, reg, stack_pointer_rtx, sp_offset);
      }
  }
  
! /* Emit code to restore the callee registers from register number START
!    up to and including LIMIT.  Restore from the stack offset START_OFFSET,
!    skipping any write-back candidates if SKIP_WB is true.  Write the
!    appropriate REG_CFA_RESTORE notes into CFI_OPS.  */
  
  static void
! aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
! 			      unsigned limit, bool skip_wb, rtx *cfi_ops)
  {
!   unsigned regno;
!   unsigned regno2;
    poly_int64 offset;
    rtx anchor_reg = NULL_RTX, ptrue = NULL_RTX;
  
!   for (regno = aarch64_next_callee_save (start, limit);
!        regno <= limit;
!        regno = aarch64_next_callee_save (regno + 1, limit))
      {
-       bool frame_related_p = aarch64_emit_cfi_for_reg_p (regno);
        if (cfun->machine->reg_is_wrapped_separately[regno])
! 	continue;
  
!       rtx reg, mem;
  
!       if (skip_wb
! 	  && (regno == cfun->machine->frame.wb_pop_candidate1
! 	      || regno == cfun->machine->frame.wb_pop_candidate2))
  	continue;
  
        machine_mode mode = aarch64_reg_save_mode (regno);
!       reg = gen_rtx_REG (mode, regno);
!       offset = start_offset + cfun->machine->frame.reg_offset[regno];
        rtx base_rtx = stack_pointer_rtx;
        if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg,
  					     offset, ptrue);
!       mem = gen_frame_mem (mode, plus_constant (Pmode, base_rtx, offset));
  
        if (!aarch64_sve_mode_p (mode)
! 	  && (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit
! 	  && !cfun->machine->reg_is_wrapped_separately[regno2]
  	  && known_eq (GET_MODE_SIZE (mode),
! 		       cfun->machine->frame.reg_offset[regno2]
! 		       - cfun->machine->frame.reg_offset[regno]))
  	{
  	  rtx reg2 = gen_rtx_REG (mode, regno2);
- 	  rtx mem2;
  
  	  offset += GET_MODE_SIZE (mode);
! 	  mem2 = gen_frame_mem (mode, plus_constant (Pmode, base_rtx, offset));
! 	  emit_insn (aarch64_gen_load_pair (mode, reg, mem, reg2, mem2));
  
  	  *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg2, *cfi_ops);
  	  regno = regno2;
  	}
        else if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	emit_insn (gen_aarch64_pred_mov (mode, reg, ptrue, mem));
--- 8579,8716 ----
  	    }
  	  offset -= fp_offset;
  	}
!       rtx mem = gen_frame_mem (mode, plus_constant (Pmode, base_rtx, offset));
!       rtx cfi_mem = gen_frame_mem (mode, plus_constant (Pmode,
! 							stack_pointer_rtx,
! 							sp_offset));
!       rtx cfi_set = gen_rtx_SET (cfi_mem, reg);
!       bool need_cfi_note_p = (base_rtx != stack_pointer_rtx);
  
+       unsigned int regno2;
        if (!aarch64_sve_mode_p (mode)
! 	  && reg == move_src
! 	  && i + 1 < regs.size ()
! 	  && (regno2 = regs[i + 1], !skip_save_p (regno2))
  	  && known_eq (GET_MODE_SIZE (mode),
! 		       frame.reg_offset[regno2] - frame.reg_offset[regno]))
  	{
  	  rtx reg2 = gen_rtx_REG (mode, regno2);
  
  	  offset += GET_MODE_SIZE (mode);
! 	  insn = emit_insn (aarch64_gen_store_pair (mem, reg, reg2));
  
! 	  rtx cfi_mem2
! 	    = gen_frame_mem (mode,
! 			     plus_constant (Pmode,
! 					    stack_pointer_rtx,
! 					    sp_offset + GET_MODE_SIZE (mode)));
! 	  rtx cfi_set2 = gen_rtx_SET (cfi_mem2, reg2);
! 
! 	  /* The first part of a frame-related parallel insn is always
! 	     assumed to be relevant to the frame calculations;
! 	     subsequent parts, are only frame-related if
! 	     explicitly marked.  */
  	  if (aarch64_emit_cfi_for_reg_p (regno2))
! 	    RTX_FRAME_RELATED_P (cfi_set2) = 1;
! 
! 	  /* Add a REG_FRAME_RELATED_EXPR note since the unspec
! 	     representation of stp cannot be understood directly by
! 	     dwarf2cfi.  */
! 	  rtx par = gen_rtx_PARALLEL (VOIDmode,
! 				      gen_rtvec (2, cfi_set, cfi_set2));
! 	  add_reg_note (insn, REG_FRAME_RELATED_EXPR, par);
  
  	  regno = regno2;
+ 	  ++i;
  	}
!       else
  	{
! 	  if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
! 	    {
! 	      insn = emit_insn (gen_aarch64_pred_mov (mode, mem,
! 						      ptrue, move_src));
! 	      need_cfi_note_p = true;
! 	    }
! 	  else if (aarch64_sve_mode_p (mode))
! 	    insn = emit_insn (gen_rtx_SET (mem, move_src));
! 	  else
! 	    insn = emit_move_insn (mem, move_src);
! 
! 	  if (frame_related_p && (need_cfi_note_p || move_src != reg))
! 	    add_reg_note (insn, REG_FRAME_RELATED_EXPR, cfi_set);
  	}
  
        RTX_FRAME_RELATED_P (insn) = frame_related_p;
! 
!       /* Emit a fake instruction to indicate that the VG save slot has
! 	 been initialized.  */
!       if (regno == VG_REGNUM)
! 	emit_insn (gen_aarch64_old_vg_saved (move_src, mem));
      }
  }
  
! /* Emit code to restore the callee registers in REGS, ignoring pop candidates
!    and any other registers that are handled separately.  Write the appropriate
!    REG_CFA_RESTORE notes into CFI_OPS.
! 
!    The stack pointer is currently BYTES_BELOW_SP bytes above the bottom
!    of the static frame.  */
  
  static void
! aarch64_restore_callee_saves (poly_int64 bytes_below_sp,
! 			      array_slice<unsigned int> regs, rtx *cfi_ops)
  {
!   aarch64_frame &frame = cfun->machine->frame;
    poly_int64 offset;
    rtx anchor_reg = NULL_RTX, ptrue = NULL_RTX;
  
!   auto skip_restore_p = [&](unsigned int regno)
      {
        if (cfun->machine->reg_is_wrapped_separately[regno])
! 	return true;
  
!       if (regno == frame.wb_pop_candidate1
! 	  || regno == frame.wb_pop_candidate2)
! 	return true;
  
!       /* The shadow call stack code restores LR separately.  */
!       if (frame.is_scs_enabled && regno == LR_REGNUM)
! 	return true;
! 
!       return false;
!     };
! 
!   for (unsigned int i = 0; i < regs.size (); ++i)
!     {
!       unsigned int regno = regs[i];
!       bool frame_related_p = aarch64_emit_cfi_for_reg_p (regno);
!       if (skip_restore_p (regno))
  	continue;
  
        machine_mode mode = aarch64_reg_save_mode (regno);
!       rtx reg = gen_rtx_REG (mode, regno);
!       offset = frame.reg_offset[regno] - bytes_below_sp;
        rtx base_rtx = stack_pointer_rtx;
        if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg,
  					     offset, ptrue);
!       rtx mem = gen_frame_mem (mode, plus_constant (Pmode, base_rtx, offset));
  
+       unsigned int regno2;
        if (!aarch64_sve_mode_p (mode)
! 	  && i + 1 < regs.size ()
! 	  && (regno2 = regs[i + 1], !skip_restore_p (regno2))
  	  && known_eq (GET_MODE_SIZE (mode),
! 		       frame.reg_offset[regno2] - frame.reg_offset[regno]))
  	{
  	  rtx reg2 = gen_rtx_REG (mode, regno2);
  
  	  offset += GET_MODE_SIZE (mode);
! 	  emit_insn (aarch64_gen_load_pair (reg, reg2, mem));
  
  	  *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg2, *cfi_ops);
  	  regno = regno2;
+ 	  ++i;
  	}
        else if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	emit_insn (gen_aarch64_pred_mov (mode, reg, ptrue, mem));
*************** offset_12bit_unsigned_scaled_p (machine_
*** 9326,9338 ****
--- 8805,8825 ----
  static sbitmap
  aarch64_get_separate_components (void)
  {
+   aarch64_frame &frame = cfun->machine->frame;
    sbitmap components = sbitmap_alloc (LAST_SAVED_REGNUM + 1);
    bitmap_clear (components);
  
    /* The registers we need saved to the frame.  */
+   bool enables_pstate_sm = aarch64_cfun_enables_pstate_sm ();
    for (unsigned regno = 0; regno <= LAST_SAVED_REGNUM; regno++)
      if (aarch64_register_saved_on_entry (regno))
        {
+ 	/* Disallow shrink wrapping for registers that will be clobbered
+ 	   by an SMSTART SM in the prologue.  */
+ 	if (enables_pstate_sm
+ 	    && (FP_REGNUM_P (regno) || PR_REGNUM_P (regno)))
+ 	  continue;
+ 
  	/* Punt on saves and restores that use ST1D and LD1D.  We could
  	   try to be smarter, but it would involve making sure that the
  	   spare predicate register itself is safe to use at the save
*************** aarch64_get_separate_components (void)
*** 9342,9361 ****
  	if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	  continue;
  
! 	poly_int64 offset = cfun->machine->frame.reg_offset[regno];
! 
! 	/* If the register is saved in the first SVE save slot, we use
! 	   it as a stack probe for -fstack-clash-protection.  */
! 	if (flag_stack_clash_protection
! 	    && maybe_ne (cfun->machine->frame.below_hard_fp_saved_regs_size, 0)
! 	    && known_eq (offset, 0))
! 	  continue;
  
  	/* Get the offset relative to the register we'll use.  */
  	if (frame_pointer_needed)
! 	  offset -= cfun->machine->frame.below_hard_fp_saved_regs_size;
! 	else
! 	  offset += crtl->outgoing_args_size;
  
  	/* Check that we can access the stack slot of the register with one
  	   direct load with no adjustments needed.  */
--- 8829,8839 ----
  	if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
  	  continue;
  
! 	poly_int64 offset = frame.reg_offset[regno];
  
  	/* Get the offset relative to the register we'll use.  */
  	if (frame_pointer_needed)
! 	  offset -= frame.bytes_below_hard_fp;
  
  	/* Check that we can access the stack slot of the register with one
  	   direct load with no adjustments needed.  */
*************** aarch64_get_separate_components (void)
*** 9372,9382 ****
    /* If the spare predicate register used by big-endian SVE code
       is call-preserved, it must be saved in the main prologue
       before any saves that use it.  */
!   if (cfun->machine->frame.spare_pred_reg != INVALID_REGNUM)
!     bitmap_clear_bit (components, cfun->machine->frame.spare_pred_reg);
  
!   unsigned reg1 = cfun->machine->frame.wb_push_candidate1;
!   unsigned reg2 = cfun->machine->frame.wb_push_candidate2;
    /* If registers have been chosen to be stored/restored with
       writeback don't interfere with them to avoid having to output explicit
       stack adjustment instructions.  */
--- 8850,8860 ----
    /* If the spare predicate register used by big-endian SVE code
       is call-preserved, it must be saved in the main prologue
       before any saves that use it.  */
!   if (frame.spare_pred_reg != INVALID_REGNUM)
!     bitmap_clear_bit (components, frame.spare_pred_reg);
  
!   unsigned reg1 = frame.wb_push_candidate1;
!   unsigned reg2 = frame.wb_push_candidate2;
    /* If registers have been chosen to be stored/restored with
       writeback don't interfere with them to avoid having to output explicit
       stack adjustment instructions.  */
*************** aarch64_get_separate_components (void)
*** 9387,9392 ****
--- 8865,8881 ----
  
    bitmap_clear_bit (components, LR_REGNUM);
    bitmap_clear_bit (components, SP_REGNUM);
+   if (flag_stack_clash_protection)
+     {
+       if (frame.sve_save_and_probe != INVALID_REGNUM)
+ 	bitmap_clear_bit (components, frame.sve_save_and_probe);
+       if (frame.hard_fp_save_and_probe != INVALID_REGNUM)
+ 	bitmap_clear_bit (components, frame.hard_fp_save_and_probe);
+     }
+ 
+   /* The VG save sequence needs a temporary GPR.  Punt for now on trying
+      to find one.  */
+   bitmap_clear_bit (components, VG_REGNUM);
  
    return components;
  }
*************** aarch64_get_next_set_bit (sbitmap bmp, u
*** 9485,9490 ****
--- 8974,8980 ----
  static void
  aarch64_process_components (sbitmap components, bool prologue_p)
  {
+   aarch64_frame &frame = cfun->machine->frame;
    rtx ptr_reg = gen_rtx_REG (Pmode, frame_pointer_needed
  			     ? HARD_FRAME_POINTER_REGNUM
  			     : STACK_POINTER_REGNUM);
*************** aarch64_process_components (sbitmap comp
*** 9499,9509 ****
        machine_mode mode = aarch64_reg_save_mode (regno);
        
        rtx reg = gen_rtx_REG (mode, regno);
!       poly_int64 offset = cfun->machine->frame.reg_offset[regno];
        if (frame_pointer_needed)
! 	offset -= cfun->machine->frame.below_hard_fp_saved_regs_size;
!       else
! 	offset += crtl->outgoing_args_size;
  
        rtx addr = plus_constant (Pmode, ptr_reg, offset);
        rtx mem = gen_frame_mem (mode, addr);
--- 8989,8997 ----
        machine_mode mode = aarch64_reg_save_mode (regno);
        
        rtx reg = gen_rtx_REG (mode, regno);
!       poly_int64 offset = frame.reg_offset[regno];
        if (frame_pointer_needed)
! 	offset -= frame.bytes_below_hard_fp;
  
        rtx addr = plus_constant (Pmode, ptr_reg, offset);
        rtx mem = gen_frame_mem (mode, addr);
*************** aarch64_process_components (sbitmap comp
*** 9526,9539 ****
  	  break;
  	}
  
!       poly_int64 offset2 = cfun->machine->frame.reg_offset[regno2];
        /* The next register is not of the same class or its offset is not
  	 mergeable with the current one into a pair.  */
        if (aarch64_sve_mode_p (mode)
  	  || !satisfies_constraint_Ump (mem)
  	  || GP_REGNUM_P (regno) != GP_REGNUM_P (regno2)
  	  || (crtl->abi->id () == ARM_PCS_SIMD && FP_REGNUM_P (regno))
! 	  || maybe_ne ((offset2 - cfun->machine->frame.reg_offset[regno]),
  		       GET_MODE_SIZE (mode)))
  	{
  	  insn = emit_insn (set);
--- 9014,9027 ----
  	  break;
  	}
  
!       poly_int64 offset2 = frame.reg_offset[regno2];
        /* The next register is not of the same class or its offset is not
  	 mergeable with the current one into a pair.  */
        if (aarch64_sve_mode_p (mode)
  	  || !satisfies_constraint_Ump (mem)
  	  || GP_REGNUM_P (regno) != GP_REGNUM_P (regno2)
  	  || (crtl->abi->id () == ARM_PCS_SIMD && FP_REGNUM_P (regno))
! 	  || maybe_ne ((offset2 - frame.reg_offset[regno]),
  		       GET_MODE_SIZE (mode)))
  	{
  	  insn = emit_insn (set);
*************** aarch64_process_components (sbitmap comp
*** 9555,9572 ****
        /* REGNO2 can be saved/restored in a pair with REGNO.  */
        rtx reg2 = gen_rtx_REG (mode, regno2);
        if (frame_pointer_needed)
! 	offset2 -= cfun->machine->frame.below_hard_fp_saved_regs_size;
!       else
! 	offset2 += crtl->outgoing_args_size;
        rtx addr2 = plus_constant (Pmode, ptr_reg, offset2);
        rtx mem2 = gen_frame_mem (mode, addr2);
        rtx set2 = prologue_p ? gen_rtx_SET (mem2, reg2)
  			     : gen_rtx_SET (reg2, mem2);
  
        if (prologue_p)
! 	insn = emit_insn (aarch64_gen_store_pair (mode, mem, reg, mem2, reg2));
        else
! 	insn = emit_insn (aarch64_gen_load_pair (mode, reg, mem, reg2, mem2));
  
        if (frame_related_p || frame_related2_p)
  	{
--- 9043,9058 ----
        /* REGNO2 can be saved/restored in a pair with REGNO.  */
        rtx reg2 = gen_rtx_REG (mode, regno2);
        if (frame_pointer_needed)
! 	offset2 -= frame.bytes_below_hard_fp;
        rtx addr2 = plus_constant (Pmode, ptr_reg, offset2);
        rtx mem2 = gen_frame_mem (mode, addr2);
        rtx set2 = prologue_p ? gen_rtx_SET (mem2, reg2)
  			     : gen_rtx_SET (reg2, mem2);
  
        if (prologue_p)
! 	insn = emit_insn (aarch64_gen_store_pair (mem, reg, reg2));
        else
! 	insn = emit_insn (aarch64_gen_load_pair (reg, reg2, mem));
  
        if (frame_related_p || frame_related2_p)
  	{
*************** aarch64_stack_clash_protection_alloca_pr
*** 9626,9640 ****
    return STACK_CLASH_CALLER_GUARD;
  }
  
  
  /* Allocate POLY_SIZE bytes of stack space using TEMP1 and TEMP2 as scratch
     registers.  If POLY_SIZE is not large enough to require a probe this function
     will only adjust the stack.  When allocating the stack space
     FRAME_RELATED_P is then used to indicate if the allocation is frame related.
!    FINAL_ADJUSTMENT_P indicates whether we are allocating the outgoing
!    arguments.  If we are then we ensure that any allocation larger than the ABI
!    defined buffer needs a probe so that the invariant of having a 1KB buffer is
!    maintained.
  
     We emit barriers after each stack adjustment to prevent optimizations from
     breaking the invariant that we never drop the stack more than a page.  This
--- 9112,9136 ----
    return STACK_CLASH_CALLER_GUARD;
  }
  
+ /* Emit a stack tie that acts as a scheduling barrier for all previous and
+    subsequent memory accesses and that requires the stack pointer and REG
+    to have their current values.  REG can be stack_pointer_rtx if no
+    other register's value needs to be fixed.  */
+ 
+ static void
+ aarch64_emit_stack_tie (rtx reg)
+ {
+   emit_insn (gen_stack_tie (reg, gen_int_mode (REGNO (reg), DImode)));
+ }
  
  /* Allocate POLY_SIZE bytes of stack space using TEMP1 and TEMP2 as scratch
     registers.  If POLY_SIZE is not large enough to require a probe this function
     will only adjust the stack.  When allocating the stack space
     FRAME_RELATED_P is then used to indicate if the allocation is frame related.
!    FINAL_ADJUSTMENT_P indicates whether we are allocating the area below
!    the saved registers.  If we are then we ensure that any allocation
!    larger than the ABI defined buffer needs a probe so that the
!    invariant of having a 1KB buffer is maintained.
  
     We emit barriers after each stack adjustment to prevent optimizations from
     breaking the invariant that we never drop the stack more than a page.  This
*************** aarch64_stack_clash_protection_alloca_pr
*** 9642,9694 ****
     events, e.g. if we were to allow the stack to be dropped by more than a page
     and then have multiple probes up and we take a signal somewhere in between
     then the signal handler doesn't know the state of the stack and can make no
!    assumptions about which pages have been probed.  */
  
  static void
  aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
  					poly_int64 poly_size,
  					bool frame_related_p,
  					bool final_adjustment_p)
  {
    HOST_WIDE_INT guard_size
      = 1 << param_stack_clash_protection_guard_size;
    HOST_WIDE_INT guard_used_by_caller = STACK_CLASH_CALLER_GUARD;
    HOST_WIDE_INT min_probe_threshold
      = (final_adjustment_p
!        ? guard_used_by_caller
         : guard_size - guard_used_by_caller);
!   /* When doing the final adjustment for the outgoing arguments, take into
!      account any unprobed space there is above the current SP.  There are
!      two cases:
! 
!      - When saving SVE registers below the hard frame pointer, we force
!        the lowest save to take place in the prologue before doing the final
!        adjustment (i.e. we don't allow the save to be shrink-wrapped).
!        This acts as a probe at SP, so there is no unprobed space.
! 
!      - When there are no SVE register saves, we use the store of the link
!        register as a probe.  We can't assume that LR was saved at position 0
!        though, so treat any space below it as unprobed.  */
!   if (final_adjustment_p
!       && known_eq (cfun->machine->frame.below_hard_fp_saved_regs_size, 0))
!     {
!       poly_int64 lr_offset = cfun->machine->frame.reg_offset[LR_REGNUM];
!       if (known_ge (lr_offset, 0))
! 	min_probe_threshold -= lr_offset.to_constant ();
!       else
! 	gcc_assert (!flag_stack_clash_protection || known_eq (poly_size, 0));
!     }
! 
!   poly_int64 frame_size = cfun->machine->frame.frame_size;
  
    /* We should always have a positive probe threshold.  */
    gcc_assert (min_probe_threshold > 0);
  
    if (flag_stack_clash_protection && !final_adjustment_p)
      {
!       poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
!       poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
!       poly_int64 final_adjust = cfun->machine->frame.final_adjust;
  
        if (known_eq (frame_size, 0))
  	{
--- 9138,9176 ----
     events, e.g. if we were to allow the stack to be dropped by more than a page
     and then have multiple probes up and we take a signal somewhere in between
     then the signal handler doesn't know the state of the stack and can make no
!    assumptions about which pages have been probed.
! 
!    FORCE_ISA_MODE is AARCH64_FL_SM_ON if any variable component of POLY_SIZE
!    is measured relative to the SME vector length instead of the current
!    prevailing vector length.  It is 0 otherwise.  */
  
  static void
  aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
  					poly_int64 poly_size,
+ 					aarch64_feature_flags force_isa_mode,
  					bool frame_related_p,
  					bool final_adjustment_p)
  {
+   aarch64_frame &frame = cfun->machine->frame;
    HOST_WIDE_INT guard_size
      = 1 << param_stack_clash_protection_guard_size;
    HOST_WIDE_INT guard_used_by_caller = STACK_CLASH_CALLER_GUARD;
+   HOST_WIDE_INT byte_sp_alignment = STACK_BOUNDARY / BITS_PER_UNIT;
+   gcc_assert (multiple_p (poly_size, byte_sp_alignment));
    HOST_WIDE_INT min_probe_threshold
      = (final_adjustment_p
!        ? guard_used_by_caller + byte_sp_alignment
         : guard_size - guard_used_by_caller);
!   poly_int64 frame_size = frame.frame_size;
  
    /* We should always have a positive probe threshold.  */
    gcc_assert (min_probe_threshold > 0);
  
    if (flag_stack_clash_protection && !final_adjustment_p)
      {
!       poly_int64 initial_adjust = frame.initial_adjust;
!       poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
!       poly_int64 final_adjust = frame.final_adjust;
  
        if (known_eq (frame_size, 0))
  	{
*************** aarch64_allocate_and_probe_stack_space (
*** 9707,9713 ****
    if (known_lt (poly_size, min_probe_threshold)
        || !flag_stack_clash_protection)
      {
!       aarch64_sub_sp (temp1, temp2, poly_size, frame_related_p);
        return;
      }
  
--- 9189,9196 ----
    if (known_lt (poly_size, min_probe_threshold)
        || !flag_stack_clash_protection)
      {
!       aarch64_sub_sp (temp1, temp2, poly_size, force_isa_mode,
! 		      frame_related_p);
        return;
      }
  
*************** aarch64_allocate_and_probe_stack_space (
*** 9724,9730 ****
  
        /* First calculate the amount of bytes we're actually spilling.  */
        aarch64_add_offset (Pmode, temp1, CONST0_RTX (Pmode),
! 			  poly_size, temp1, temp2, false, true);
  
        rtx_insn *insn = get_last_insn ();
  
--- 9207,9214 ----
  
        /* First calculate the amount of bytes we're actually spilling.  */
        aarch64_add_offset (Pmode, temp1, CONST0_RTX (Pmode),
! 			  poly_size, temp1, temp2, force_isa_mode,
! 			  false, true);
  
        rtx_insn *insn = get_last_insn ();
  
*************** aarch64_allocate_and_probe_stack_space (
*** 9738,9744 ****
  	     the instruction.  */
  	  rtx stack_ptr_copy = gen_rtx_REG (Pmode, STACK_CLASH_SVE_CFA_REGNUM);
  	  emit_move_insn (stack_ptr_copy, stack_pointer_rtx);
! 	  emit_insn (gen_stack_tie (stack_ptr_copy, stack_pointer_rtx));
  
  	  /* We want the CFA independent of the stack pointer for the
  	     duration of the loop.  */
--- 9222,9228 ----
  	     the instruction.  */
  	  rtx stack_ptr_copy = gen_rtx_REG (Pmode, STACK_CLASH_SVE_CFA_REGNUM);
  	  emit_move_insn (stack_ptr_copy, stack_pointer_rtx);
! 	  aarch64_emit_stack_tie (stack_ptr_copy);
  
  	  /* We want the CFA independent of the stack pointer for the
  	     duration of the loop.  */
*************** aarch64_allocate_and_probe_stack_space (
*** 9782,9788 ****
      {
        for (HOST_WIDE_INT i = 0; i < rounded_size; i += guard_size)
  	{
! 	  aarch64_sub_sp (NULL, temp2, guard_size, true);
  	  emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
  					   guard_used_by_caller));
  	  emit_insn (gen_blockage ());
--- 9266,9272 ----
      {
        for (HOST_WIDE_INT i = 0; i < rounded_size; i += guard_size)
  	{
! 	  aarch64_sub_sp (NULL, temp2, guard_size, force_isa_mode, true);
  	  emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
  					   guard_used_by_caller));
  	  emit_insn (gen_blockage ());
*************** aarch64_allocate_and_probe_stack_space (
*** 9793,9799 ****
      {
        /* Compute the ending address.  */
        aarch64_add_offset (Pmode, temp1, stack_pointer_rtx, -rounded_size,
! 			  temp1, NULL, false, true);
        rtx_insn *insn = get_last_insn ();
  
        /* For the initial allocation, we don't have a frame pointer
--- 9277,9283 ----
      {
        /* Compute the ending address.  */
        aarch64_add_offset (Pmode, temp1, stack_pointer_rtx, -rounded_size,
! 			  temp1, NULL, force_isa_mode, false, true);
        rtx_insn *insn = get_last_insn ();
  
        /* For the initial allocation, we don't have a frame pointer
*************** aarch64_allocate_and_probe_stack_space (
*** 9842,9848 ****
    /* Handle any residuals.  Residuals of at least MIN_PROBE_THRESHOLD have to
       be probed.  This maintains the requirement that each page is probed at
       least once.  For initial probing we probe only if the allocation is
!      more than GUARD_SIZE - buffer, and for the outgoing arguments we probe
       if the amount is larger than buffer.  GUARD_SIZE - buffer + buffer ==
       GUARD_SIZE.  This works that for any allocation that is large enough to
       trigger a probe here, we'll have at least one, and if they're not large
--- 9326,9332 ----
    /* Handle any residuals.  Residuals of at least MIN_PROBE_THRESHOLD have to
       be probed.  This maintains the requirement that each page is probed at
       least once.  For initial probing we probe only if the allocation is
!      more than GUARD_SIZE - buffer, and below the saved registers we probe
       if the amount is larger than buffer.  GUARD_SIZE - buffer + buffer ==
       GUARD_SIZE.  This works that for any allocation that is large enough to
       trigger a probe here, we'll have at least one, and if they're not large
*************** aarch64_allocate_and_probe_stack_space (
*** 9852,9869 ****
       are still safe.  */
    if (residual)
      {
!       HOST_WIDE_INT residual_probe_offset = guard_used_by_caller;
        /* If we're doing final adjustments, and we've done any full page
  	 allocations then any residual needs to be probed.  */
        if (final_adjustment_p && rounded_size != 0)
  	min_probe_threshold = 0;
-       /* If doing a small final adjustment, we always probe at offset 0.
- 	 This is done to avoid issues when LR is not at position 0 or when
- 	 the final adjustment is smaller than the probing offset.  */
-       else if (final_adjustment_p && rounded_size == 0)
- 	residual_probe_offset = 0;
  
!       aarch64_sub_sp (temp1, temp2, residual, frame_related_p);
        if (residual >= min_probe_threshold)
  	{
  	  if (dump_file)
--- 9336,9349 ----
       are still safe.  */
    if (residual)
      {
!       gcc_assert (guard_used_by_caller + byte_sp_alignment <= size);
! 
        /* If we're doing final adjustments, and we've done any full page
  	 allocations then any residual needs to be probed.  */
        if (final_adjustment_p && rounded_size != 0)
  	min_probe_threshold = 0;
  
!       aarch64_sub_sp (temp1, temp2, residual, force_isa_mode, frame_related_p);
        if (residual >= min_probe_threshold)
  	{
  	  if (dump_file)
*************** aarch64_allocate_and_probe_stack_space (
*** 9872,9892 ****
  		     HOST_WIDE_INT_PRINT_DEC " bytes, probing will be required."
  		     "\n", residual);
  
! 	    emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
! 					     residual_probe_offset));
  	  emit_insn (gen_blockage ());
  	}
      }
  }
  
  /* Return 1 if the register is used by the epilogue.  We need to say the
     return register is used, but only after epilogue generation is complete.
     Note that in the case of sibcalls, the values "used by the epilogue" are
!    considered live at the start of the called function.
! 
!    For SIMD functions we need to return 1 for FP registers that are saved and
!    restored by a function but are not zero in call_used_regs.  If we do not do 
!    this optimizations may remove the restore of the register.  */
  
  int
  aarch64_epilogue_uses (int regno)
--- 9352,9396 ----
  		     HOST_WIDE_INT_PRINT_DEC " bytes, probing will be required."
  		     "\n", residual);
  
! 	  emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
! 					   guard_used_by_caller));
  	  emit_insn (gen_blockage ());
  	}
      }
  }
  
+ /* Implement TARGET_EXTRA_LIVE_ON_ENTRY.  */
+ 
+ void
+ aarch64_extra_live_on_entry (bitmap regs)
+ {
+   if (TARGET_ZA)
+     {
+       bitmap_set_bit (regs, LOWERING_REGNUM);
+       bitmap_set_bit (regs, SME_STATE_REGNUM);
+       bitmap_set_bit (regs, TPIDR2_SETUP_REGNUM);
+       bitmap_set_bit (regs, ZA_FREE_REGNUM);
+       bitmap_set_bit (regs, ZA_SAVED_REGNUM);
+ 
+       /* The only time ZA can't have live contents on entry is when
+ 	 the function explicitly treats it as a pure output.  */
+       auto za_flags = aarch64_cfun_shared_flags ("za");
+       if (za_flags != (AARCH64_STATE_SHARED | AARCH64_STATE_OUT))
+ 	bitmap_set_bit (regs, ZA_REGNUM);
+ 
+       /* Since ZT0 is call-clobbered, it is only live on input if
+ 	 it is explicitly shared, and is not a pure output.  */
+       auto zt0_flags = aarch64_cfun_shared_flags ("zt0");
+       if (zt0_flags != 0
+ 	  && zt0_flags != (AARCH64_STATE_SHARED | AARCH64_STATE_OUT))
+ 	bitmap_set_bit (regs, ZT0_REGNUM);
+     }
+ }
+ 
  /* Return 1 if the register is used by the epilogue.  We need to say the
     return register is used, but only after epilogue generation is complete.
     Note that in the case of sibcalls, the values "used by the epilogue" are
!    considered live at the start of the called function.  */
  
  int
  aarch64_epilogue_uses (int regno)
*************** aarch64_epilogue_uses (int regno)
*** 9896,9904 ****
--- 9400,9471 ----
        if (regno == LR_REGNUM)
  	return 1;
      }
+   if (regno == LOWERING_REGNUM && TARGET_ZA)
+     return 1;
+   if (regno == SME_STATE_REGNUM && TARGET_ZA)
+     return 1;
+   if (regno == TPIDR2_SETUP_REGNUM && TARGET_ZA)
+     return 1;
+   /* If the function shares SME state with its caller, ensure that that
+      data is not in the lazy save buffer on exit.  */
+   if (regno == ZA_SAVED_REGNUM && aarch64_cfun_incoming_pstate_za () != 0)
+     return 1;
+   if (regno == ZA_REGNUM && aarch64_cfun_shared_flags ("za") != 0)
+     return 1;
+   if (regno == ZT0_REGNUM && aarch64_cfun_shared_flags ("zt0") != 0)
+     return 1;
    return 0;
  }
  
+ /* Implement TARGET_USE_LATE_PROLOGUE_EPILOGUE.  */
+ 
+ static bool
+ aarch64_use_late_prologue_epilogue ()
+ {
+   return aarch64_cfun_enables_pstate_sm ();
+ }
+ 
+ /* The current function's frame has a save slot for the incoming state
+    of SVCR.  Return a legitimate memory for the slot, based on the hard
+    frame pointer.  */
+ 
+ static rtx
+ aarch64_old_svcr_mem ()
+ {
+   gcc_assert (frame_pointer_needed
+ 	      && known_ge (cfun->machine->frame.old_svcr_offset, 0));
+   rtx base = hard_frame_pointer_rtx;
+   poly_int64 offset = (0
+ 		       /* hard fp -> bottom of frame.  */
+ 		       - cfun->machine->frame.bytes_below_hard_fp
+ 		       /* bottom of frame -> save slot.  */
+ 		       + cfun->machine->frame.old_svcr_offset);
+   return gen_frame_mem (DImode, plus_constant (Pmode, base, offset));
+ }
+ 
+ /* The current function's frame has a save slot for the incoming state
+    of SVCR.  Load the slot into register REGNO and return the register.  */
+ 
+ static rtx
+ aarch64_read_old_svcr (unsigned int regno)
+ {
+   rtx svcr = gen_rtx_REG (DImode, regno);
+   emit_move_insn (svcr, aarch64_old_svcr_mem ());
+   return svcr;
+ }
+ 
+ /* Like the rtx version of aarch64_guard_switch_pstate_sm, but first
+    load the incoming value of SVCR from its save slot into temporary
+    register REGNO.  */
+ 
+ static rtx_insn *
+ aarch64_guard_switch_pstate_sm (unsigned int regno,
+ 				aarch64_feature_flags local_mode)
+ {
+   rtx old_svcr = aarch64_read_old_svcr (regno);
+   return aarch64_guard_switch_pstate_sm (old_svcr, local_mode);
+ }
+ 
  /* AArch64 stack frames generated by this compiler look like:
  
  	+-------------------------------+
*************** aarch64_epilogue_uses (int regno)
*** 9911,9930 ****
  	|  for register varargs         |
  	|                               |
  	+-------------------------------+
! 	|  local variables              | <-- frame_pointer_rtx
  	|                               |
  	+-------------------------------+
! 	|  padding                      | \
! 	+-------------------------------+  |
! 	|  callee-saved registers       |  | frame.saved_regs_size
! 	+-------------------------------+  |
! 	|  LR'                          |  |
! 	+-------------------------------+  |
! 	|  FP'                          |  |
! 	+-------------------------------+  |<- hard_frame_pointer_rtx (aligned)
! 	|  SVE vector registers         |  | \
! 	+-------------------------------+  |  | below_hard_fp_saved_regs_size
! 	|  SVE predicate registers      | /  /
  	+-------------------------------+
  	|  dynamic allocation           |
  	+-------------------------------+
--- 9478,9501 ----
  	|  for register varargs         |
  	|                               |
  	+-------------------------------+
! 	|  local variables (1)          | <-- frame_pointer_rtx
  	|                               |
  	+-------------------------------+
! 	|  padding (1)                  |
! 	+-------------------------------+
! 	|  callee-saved registers       |
! 	+-------------------------------+
! 	|  LR'                          |
! 	+-------------------------------+
! 	|  FP'                          |
! 	+-------------------------------+ <-- hard_frame_pointer_rtx (aligned)
! 	|  SVE vector registers         |
! 	+-------------------------------+
! 	|  SVE predicate registers      |
! 	+-------------------------------+
! 	|  local variables (2)          |
! 	+-------------------------------+
! 	|  padding (2)                  |
  	+-------------------------------+
  	|  dynamic allocation           |
  	+-------------------------------+
*************** aarch64_epilogue_uses (int regno)
*** 9935,9940 ****
--- 9506,9514 ----
  	+-------------------------------+
  	|                               | <-- stack_pointer_rtx (aligned)
  
+    The regions marked (1) and (2) are mutually exclusive.  (2) is used
+    when aarch64_save_regs_above_locals_p is true.
+ 
     Dynamic stack allocations via alloca() decrease stack_pointer_rtx
     but leave frame_pointer_rtx and hard_frame_pointer_rtx
     unchanged.
*************** aarch64_epilogue_uses (int regno)
*** 9949,9956 ****
     When probing is needed, we emit a probe at the start of the prologue
     and every PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE bytes thereafter.
  
!    We have to track how much space has been allocated and the only stores
!    to the stack we track as implicit probes are the FP/LR stores.
  
     For outgoing arguments we probe if the size is larger than 1KB, such that
     the ABI specified buffer is maintained for the next callee.
--- 9523,9530 ----
     When probing is needed, we emit a probe at the start of the prologue
     and every PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE bytes thereafter.
  
!    We can also use register saves as probes.  These are stored in
!    sve_save_and_probe and hard_fp_save_and_probe.
  
     For outgoing arguments we probe if the size is larger than 1KB, such that
     the ABI specified buffer is maintained for the next callee.
*************** aarch64_epilogue_uses (int regno)
*** 9977,9996 ****
  void
  aarch64_expand_prologue (void)
  {
!   poly_int64 frame_size = cfun->machine->frame.frame_size;
!   poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
!   HOST_WIDE_INT callee_adjust = cfun->machine->frame.callee_adjust;
!   poly_int64 final_adjust = cfun->machine->frame.final_adjust;
!   poly_int64 callee_offset = cfun->machine->frame.callee_offset;
!   poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
!   poly_int64 below_hard_fp_saved_regs_size
!     = cfun->machine->frame.below_hard_fp_saved_regs_size;
!   unsigned reg1 = cfun->machine->frame.wb_push_candidate1;
!   unsigned reg2 = cfun->machine->frame.wb_push_candidate2;
!   bool emit_frame_chain = cfun->machine->frame.emit_frame_chain;
    rtx_insn *insn;
  
!   if (flag_stack_clash_protection && known_eq (callee_adjust, 0))
      {
        /* Fold the SVE allocation into the initial allocation.
  	 We don't do this in aarch64_layout_arg to avoid pessimizing
--- 9551,9573 ----
  void
  aarch64_expand_prologue (void)
  {
!   aarch64_frame &frame = cfun->machine->frame;
!   poly_int64 frame_size = frame.frame_size;
!   poly_int64 initial_adjust = frame.initial_adjust;
!   HOST_WIDE_INT callee_adjust = frame.callee_adjust;
!   poly_int64 final_adjust = frame.final_adjust;
!   poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
!   unsigned reg1 = frame.wb_push_candidate1;
!   unsigned reg2 = frame.wb_push_candidate2;
!   bool emit_frame_chain = frame.emit_frame_chain;
    rtx_insn *insn;
+   aarch64_feature_flags force_isa_mode = 0;
+   if (aarch64_cfun_enables_pstate_sm ())
+     force_isa_mode = AARCH64_FL_SM_ON;
  
!   if (flag_stack_clash_protection
!       && known_eq (callee_adjust, 0)
!       && known_lt (frame.reg_offset[VG_REGNUM], 0))
      {
        /* Fold the SVE allocation into the initial allocation.
  	 We don't do this in aarch64_layout_arg to avoid pessimizing
*************** aarch64_expand_prologue (void)
*** 10002,10013 ****
    /* Sign return address for functions.  */
    if (aarch64_return_address_signing_enabled ())
      {
!       switch (aarch_ra_sign_key)
  	{
! 	  case AARCH_KEY_A:
  	    insn = emit_insn (gen_paciasp ());
  	    break;
! 	  case AARCH_KEY_B:
  	    insn = emit_insn (gen_pacibsp ());
  	    break;
  	  default:
--- 9579,9590 ----
    /* Sign return address for functions.  */
    if (aarch64_return_address_signing_enabled ())
      {
!       switch (aarch64_ra_sign_key)
  	{
! 	  case AARCH64_KEY_A:
  	    insn = emit_insn (gen_paciasp ());
  	    break;
! 	  case AARCH64_KEY_B:
  	    insn = emit_insn (gen_pacibsp ());
  	    break;
  	  default:
*************** aarch64_expand_prologue (void)
*** 10018,10024 ****
      }
  
    /* Push return address to shadow call stack.  */
!   if (cfun->machine->frame.is_scs_enabled)
      emit_insn (gen_scs_push ());
  
    if (flag_stack_usage_info)
--- 9595,9601 ----
      }
  
    /* Push return address to shadow call stack.  */
!   if (frame.is_scs_enabled)
      emit_insn (gen_scs_push ());
  
    if (flag_stack_usage_info)
*************** aarch64_expand_prologue (void)
*** 10050,10082 ****
       less the amount of the guard reserved for use by the caller's
       outgoing args.  */
    aarch64_allocate_and_probe_stack_space (tmp0_rtx, tmp1_rtx, initial_adjust,
! 					  true, false);
  
    if (callee_adjust != 0)
      aarch64_push_regs (reg1, reg2, callee_adjust);
  
!   /* The offset of the frame chain record (if any) from the current SP.  */
!   poly_int64 chain_offset = (initial_adjust + callee_adjust
! 			     - cfun->machine->frame.hard_fp_offset);
!   gcc_assert (known_ge (chain_offset, 0));
! 
!   /* The offset of the bottom of the save area from the current SP.  */
!   poly_int64 saved_regs_offset = chain_offset - below_hard_fp_saved_regs_size;
  
    if (emit_frame_chain)
      {
        if (callee_adjust == 0)
! 	{
! 	  reg1 = R29_REGNUM;
! 	  reg2 = R30_REGNUM;
! 	  aarch64_save_callee_saves (saved_regs_offset, reg1, reg2,
! 				     false, false);
! 	}
        else
  	gcc_assert (known_eq (chain_offset, 0));
        aarch64_add_offset (Pmode, hard_frame_pointer_rtx,
  			  stack_pointer_rtx, chain_offset,
! 			  tmp1_rtx, tmp0_rtx, frame_pointer_needed);
        if (frame_pointer_needed && !frame_size.is_constant ())
  	{
  	  /* Variable-sized frames need to describe the save slot
--- 9627,9657 ----
       less the amount of the guard reserved for use by the caller's
       outgoing args.  */
    aarch64_allocate_and_probe_stack_space (tmp0_rtx, tmp1_rtx, initial_adjust,
! 					  force_isa_mode, true, false);
  
    if (callee_adjust != 0)
      aarch64_push_regs (reg1, reg2, callee_adjust);
  
!   /* The offset of the current SP from the bottom of the static frame.  */
!   poly_int64 bytes_below_sp = frame_size - initial_adjust - callee_adjust;
  
    if (emit_frame_chain)
      {
+       /* The offset of the frame chain record (if any) from the current SP.  */
+       poly_int64 chain_offset = (initial_adjust + callee_adjust
+ 				 - frame.bytes_above_hard_fp);
+       gcc_assert (known_ge (chain_offset, 0));
+ 
+       gcc_assert (reg1 == R29_REGNUM && reg2 == R30_REGNUM);
        if (callee_adjust == 0)
! 	aarch64_save_callee_saves (bytes_below_sp, frame.saved_gprs,
! 				   false, false);
        else
  	gcc_assert (known_eq (chain_offset, 0));
        aarch64_add_offset (Pmode, hard_frame_pointer_rtx,
  			  stack_pointer_rtx, chain_offset,
! 			  tmp1_rtx, tmp0_rtx, force_isa_mode,
! 			  frame_pointer_needed);
        if (frame_pointer_needed && !frame_size.is_constant ())
  	{
  	  /* Variable-sized frames need to describe the save slot
*************** aarch64_expand_prologue (void)
*** 10094,10101 ****
  	     implicit.  */
  	  if (!find_reg_note (insn, REG_CFA_ADJUST_CFA, NULL_RTX))
  	    {
! 	      rtx src = plus_constant (Pmode, stack_pointer_rtx,
! 				       callee_offset);
  	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
  			    gen_rtx_SET (hard_frame_pointer_rtx, src));
  	    }
--- 9669,9675 ----
  	     implicit.  */
  	  if (!find_reg_note (insn, REG_CFA_ADJUST_CFA, NULL_RTX))
  	    {
! 	      rtx src = plus_constant (Pmode, stack_pointer_rtx, chain_offset);
  	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
  			    gen_rtx_SET (hard_frame_pointer_rtx, src));
  	    }
*************** aarch64_expand_prologue (void)
*** 10107,10137 ****
  	  aarch64_add_cfa_expression (insn, regno_reg_rtx[reg1],
  				      hard_frame_pointer_rtx, 0);
  	}
!       emit_insn (gen_stack_tie (stack_pointer_rtx, hard_frame_pointer_rtx));
      }
  
!   aarch64_save_callee_saves (saved_regs_offset, R0_REGNUM, R30_REGNUM,
! 			     callee_adjust != 0 || emit_frame_chain,
  			     emit_frame_chain);
    if (maybe_ne (sve_callee_adjust, 0))
      {
        gcc_assert (!flag_stack_clash_protection
! 		  || known_eq (initial_adjust, 0));
        aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx,
  					      sve_callee_adjust,
  					      !frame_pointer_needed, false);
!       saved_regs_offset += sve_callee_adjust;
      }
!   aarch64_save_callee_saves (saved_regs_offset, P0_REGNUM, P15_REGNUM,
! 			     false, emit_frame_chain);
!   aarch64_save_callee_saves (saved_regs_offset, V0_REGNUM, V31_REGNUM,
! 			     callee_adjust != 0 || emit_frame_chain,
  			     emit_frame_chain);
  
    /* We may need to probe the final adjustment if it is larger than the guard
       that is assumed by the called.  */
    aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, final_adjust,
  					  !frame_pointer_needed, true);
  }
  
  /* Return TRUE if we can use a simple_return insn.
--- 9681,9787 ----
  	  aarch64_add_cfa_expression (insn, regno_reg_rtx[reg1],
  				      hard_frame_pointer_rtx, 0);
  	}
!       aarch64_emit_stack_tie (hard_frame_pointer_rtx);
      }
  
!   aarch64_save_callee_saves (bytes_below_sp, frame.saved_gprs, true,
  			     emit_frame_chain);
+   if (maybe_ge (frame.reg_offset[VG_REGNUM], 0))
+     {
+       unsigned int saved_regs[] = { VG_REGNUM };
+       aarch64_save_callee_saves (bytes_below_sp, saved_regs, true,
+ 				 emit_frame_chain);
+     }
    if (maybe_ne (sve_callee_adjust, 0))
      {
        gcc_assert (!flag_stack_clash_protection
! 		  || known_eq (initial_adjust, 0)
! 		  /* The VG save isn't shrink-wrapped and so serves as
! 		     a probe of the initial allocation.  */
! 		  || known_eq (frame.reg_offset[VG_REGNUM], bytes_below_sp));
        aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx,
  					      sve_callee_adjust,
+ 					      force_isa_mode,
  					      !frame_pointer_needed, false);
!       bytes_below_sp -= sve_callee_adjust;
      }
!   aarch64_save_callee_saves (bytes_below_sp, frame.saved_prs, true,
! 			     emit_frame_chain);
!   aarch64_save_callee_saves (bytes_below_sp, frame.saved_fprs, true,
  			     emit_frame_chain);
  
    /* We may need to probe the final adjustment if it is larger than the guard
       that is assumed by the called.  */
+   gcc_assert (known_eq (bytes_below_sp, final_adjust));
    aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, final_adjust,
+ 					  force_isa_mode,
  					  !frame_pointer_needed, true);
+   if (emit_frame_chain && maybe_ne (final_adjust, 0))
+     aarch64_emit_stack_tie (hard_frame_pointer_rtx);
+ 
+   /* Save the incoming value of PSTATE.SM, if required.  Code further
+      down does this for locally-streaming functions.  */
+   if (known_ge (frame.old_svcr_offset, 0)
+       && !aarch64_cfun_enables_pstate_sm ())
+     {
+       rtx mem = aarch64_old_svcr_mem ();
+       MEM_VOLATILE_P (mem) = 1;
+       if (TARGET_SME)
+ 	{
+ 	  rtx reg = gen_rtx_REG (DImode, IP0_REGNUM);
+ 	  emit_insn (gen_aarch64_read_svcr (reg));
+ 	  emit_move_insn (mem, reg);
+ 	}
+       else
+ 	{
+ 	  rtx old_r0 = NULL_RTX, old_r1 = NULL_RTX;
+ 	  auto &args = crtl->args.info;
+ 	  if (args.aapcs_ncrn > 0)
+ 	    {
+ 	      old_r0 = gen_rtx_REG (DImode, PROBE_STACK_FIRST_REGNUM);
+ 	      emit_move_insn (old_r0, gen_rtx_REG (DImode, R0_REGNUM));
+ 	    }
+ 	  if (args.aapcs_ncrn > 1)
+ 	    {
+ 	      old_r1 = gen_rtx_REG (DImode, PROBE_STACK_SECOND_REGNUM);
+ 	      emit_move_insn (old_r1, gen_rtx_REG (DImode, R1_REGNUM));
+ 	    }
+ 	  emit_insn (gen_aarch64_get_sme_state ());
+ 	  emit_move_insn (mem, gen_rtx_REG (DImode, R0_REGNUM));
+ 	  if (old_r0)
+ 	    emit_move_insn (gen_rtx_REG (DImode, R0_REGNUM), old_r0);
+ 	  if (old_r1)
+ 	    emit_move_insn (gen_rtx_REG (DImode, R1_REGNUM), old_r1);
+ 	}
+     }
+ 
+   /* Enable PSTATE.SM, if required.  */
+   if (aarch64_cfun_enables_pstate_sm ())
+     {
+       rtx_insn *guard_label = nullptr;
+       if (known_ge (cfun->machine->frame.old_svcr_offset, 0))
+ 	{
+ 	  /* The current function is streaming-compatible.  Save the
+ 	     original state of PSTATE.SM.  */
+ 	  rtx svcr = gen_rtx_REG (DImode, IP0_REGNUM);
+ 	  emit_insn (gen_aarch64_read_svcr (svcr));
+ 	  emit_move_insn (aarch64_old_svcr_mem (), svcr);
+ 	  guard_label = aarch64_guard_switch_pstate_sm (svcr,
+ 							aarch64_isa_flags);
+ 	}
+       aarch64_sme_mode_switch_regs args_switch;
+       auto &args = crtl->args.info;
+       for (unsigned int i = 0; i < args.num_sme_mode_switch_args; ++i)
+ 	{
+ 	  rtx x = args.sme_mode_switch_args[i];
+ 	  args_switch.add_reg (GET_MODE (x), REGNO (x));
+ 	}
+       args_switch.emit_prologue ();
+       emit_insn (gen_aarch64_smstart_sm ());
+       args_switch.emit_epilogue ();
+       if (guard_label)
+ 	emit_label (guard_label);
+     }
  }
  
  /* Return TRUE if we can use a simple_return insn.
*************** aarch64_use_return_insn_p (void)
*** 10158,10176 ****
     from a deallocated stack, and we optimize the unwind records by
     emitting them all together if possible.  */
  void
! aarch64_expand_epilogue (bool for_sibcall)
  {
!   poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
!   HOST_WIDE_INT callee_adjust = cfun->machine->frame.callee_adjust;
!   poly_int64 final_adjust = cfun->machine->frame.final_adjust;
!   poly_int64 callee_offset = cfun->machine->frame.callee_offset;
!   poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
!   poly_int64 below_hard_fp_saved_regs_size
!     = cfun->machine->frame.below_hard_fp_saved_regs_size;
!   unsigned reg1 = cfun->machine->frame.wb_pop_candidate1;
!   unsigned reg2 = cfun->machine->frame.wb_pop_candidate2;
!   unsigned int last_gpr = (cfun->machine->frame.is_scs_enabled
! 			   ? R29_REGNUM : R30_REGNUM);
    rtx cfi_ops = NULL;
    rtx_insn *insn;
    /* A stack clash protection prologue may not have left EP0_REGNUM or
--- 9808,9823 ----
     from a deallocated stack, and we optimize the unwind records by
     emitting them all together if possible.  */
  void
! aarch64_expand_epilogue (rtx_call_insn *sibcall)
  {
!   aarch64_frame &frame = cfun->machine->frame;
!   poly_int64 initial_adjust = frame.initial_adjust;
!   HOST_WIDE_INT callee_adjust = frame.callee_adjust;
!   poly_int64 final_adjust = frame.final_adjust;
!   poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
!   poly_int64 bytes_below_hard_fp = frame.bytes_below_hard_fp;
!   unsigned reg1 = frame.wb_pop_candidate1;
!   unsigned reg2 = frame.wb_pop_candidate2;
    rtx cfi_ops = NULL;
    rtx_insn *insn;
    /* A stack clash protection prologue may not have left EP0_REGNUM or
*************** aarch64_expand_epilogue (bool for_sibcal
*** 10181,10186 ****
--- 9828,9836 ----
    HOST_WIDE_INT guard_size
      = 1 << param_stack_clash_protection_guard_size;
    HOST_WIDE_INT guard_used_by_caller = STACK_CLASH_CALLER_GUARD;
+   aarch64_feature_flags force_isa_mode = 0;
+   if (aarch64_cfun_enables_pstate_sm ())
+     force_isa_mode = AARCH64_FL_SM_ON;
  
    /* We can re-use the registers when:
  
*************** aarch64_expand_epilogue (bool for_sibcal
*** 10203,10216 ****
    /* We need to add memory barrier to prevent read from deallocated stack.  */
    bool need_barrier_p
      = maybe_ne (get_frame_size ()
! 		+ cfun->machine->frame.saved_varargs_size, 0);
  
    /* Emit a barrier to prevent loads from a deallocated stack.  */
    if (maybe_gt (final_adjust, crtl->outgoing_args_size)
        || cfun->calls_alloca
        || crtl->calls_eh_return)
      {
!       emit_insn (gen_stack_tie (stack_pointer_rtx, stack_pointer_rtx));
        need_barrier_p = false;
      }
  
--- 9853,9886 ----
    /* We need to add memory barrier to prevent read from deallocated stack.  */
    bool need_barrier_p
      = maybe_ne (get_frame_size ()
! 		+ frame.saved_varargs_size, 0);
! 
!   /* Reset PSTATE.SM, if required.  */
!   if (aarch64_cfun_enables_pstate_sm ())
!     {
!       rtx_insn *guard_label = nullptr;
!       if (known_ge (cfun->machine->frame.old_svcr_offset, 0))
! 	guard_label = aarch64_guard_switch_pstate_sm (IP0_REGNUM,
! 						      aarch64_isa_flags);
!       aarch64_sme_mode_switch_regs return_switch;
!       if (sibcall)
! 	return_switch.add_call_args (sibcall);
!       else if (crtl->return_rtx && REG_P (crtl->return_rtx))
! 	return_switch.add_reg (GET_MODE (crtl->return_rtx),
! 			       REGNO (crtl->return_rtx));
!       return_switch.emit_prologue ();
!       emit_insn (gen_aarch64_smstop_sm ());
!       return_switch.emit_epilogue ();
!       if (guard_label)
! 	emit_label (guard_label);
!     }
  
    /* Emit a barrier to prevent loads from a deallocated stack.  */
    if (maybe_gt (final_adjust, crtl->outgoing_args_size)
        || cfun->calls_alloca
        || crtl->calls_eh_return)
      {
!       aarch64_emit_stack_tie (stack_pointer_rtx);
        need_barrier_p = false;
      }
  
*************** aarch64_expand_epilogue (bool for_sibcal
*** 10224,10255 ****
         is restored on the instruction doing the writeback.  */
      aarch64_add_offset (Pmode, stack_pointer_rtx,
  			hard_frame_pointer_rtx,
! 			-callee_offset - below_hard_fp_saved_regs_size,
! 			tmp1_rtx, tmp0_rtx, callee_adjust == 0);
    else
       /* The case where we need to re-use the register here is very rare, so
  	avoid the complicated condition and just always emit a move if the
  	immediate doesn't fit.  */
!      aarch64_add_sp (tmp1_rtx, tmp0_rtx, final_adjust, true);
  
    /* Restore the vector registers before the predicate registers,
       so that we can use P4 as a temporary for big-endian SVE frames.  */
!   aarch64_restore_callee_saves (callee_offset, V0_REGNUM, V31_REGNUM,
! 				callee_adjust != 0, &cfi_ops);
!   aarch64_restore_callee_saves (callee_offset, P0_REGNUM, P15_REGNUM,
! 				false, &cfi_ops);
    if (maybe_ne (sve_callee_adjust, 0))
!     aarch64_add_sp (NULL_RTX, NULL_RTX, sve_callee_adjust, true);
  
    /* When shadow call stack is enabled, the scs_pop in the epilogue will
       restore x30, we don't need to restore x30 again in the traditional
       way.  */
!   aarch64_restore_callee_saves (callee_offset - sve_callee_adjust,
! 				R0_REGNUM, last_gpr,
! 				callee_adjust != 0, &cfi_ops);
  
    if (need_barrier_p)
!     emit_insn (gen_stack_tie (stack_pointer_rtx, stack_pointer_rtx));
  
    if (callee_adjust != 0)
      aarch64_pop_regs (reg1, reg2, callee_adjust, &cfi_ops);
--- 9894,9924 ----
         is restored on the instruction doing the writeback.  */
      aarch64_add_offset (Pmode, stack_pointer_rtx,
  			hard_frame_pointer_rtx,
! 			-bytes_below_hard_fp + final_adjust,
! 			tmp1_rtx, tmp0_rtx, force_isa_mode,
! 			callee_adjust == 0);
    else
       /* The case where we need to re-use the register here is very rare, so
  	avoid the complicated condition and just always emit a move if the
  	immediate doesn't fit.  */
!      aarch64_add_sp (tmp1_rtx, tmp0_rtx, final_adjust, force_isa_mode, true);
  
    /* Restore the vector registers before the predicate registers,
       so that we can use P4 as a temporary for big-endian SVE frames.  */
!   aarch64_restore_callee_saves (final_adjust, frame.saved_fprs, &cfi_ops);
!   aarch64_restore_callee_saves (final_adjust, frame.saved_prs, &cfi_ops);
    if (maybe_ne (sve_callee_adjust, 0))
!     aarch64_add_sp (NULL_RTX, NULL_RTX, sve_callee_adjust,
! 		    force_isa_mode, true);
  
    /* When shadow call stack is enabled, the scs_pop in the epilogue will
       restore x30, we don't need to restore x30 again in the traditional
       way.  */
!   aarch64_restore_callee_saves (final_adjust + sve_callee_adjust,
! 				frame.saved_gprs, &cfi_ops);
  
    if (need_barrier_p)
!     aarch64_emit_stack_tie (stack_pointer_rtx);
  
    if (callee_adjust != 0)
      aarch64_pop_regs (reg1, reg2, callee_adjust, &cfi_ops);
*************** aarch64_expand_epilogue (bool for_sibcal
*** 10270,10276 ****
  
    /* Liveness of EP0_REGNUM can not be trusted across function calls either, so
       add restriction on emit_move optimization to leaf functions.  */
!   aarch64_add_sp (tmp0_rtx, tmp1_rtx, initial_adjust,
  		  (!can_inherit_p || !crtl->is_leaf
  		   || df_regs_ever_live_p (EP0_REGNUM)));
  
--- 9939,9945 ----
  
    /* Liveness of EP0_REGNUM can not be trusted across function calls either, so
       add restriction on emit_move optimization to leaf functions.  */
!   aarch64_add_sp (tmp0_rtx, tmp1_rtx, initial_adjust, force_isa_mode,
  		  (!can_inherit_p || !crtl->is_leaf
  		   || df_regs_ever_live_p (EP0_REGNUM)));
  
*************** aarch64_expand_epilogue (bool for_sibcal
*** 10284,10290 ****
      }
  
    /* Pop return address from shadow call stack.  */
!   if (cfun->machine->frame.is_scs_enabled)
      {
        machine_mode mode = aarch64_reg_save_mode (R30_REGNUM);
        rtx reg = gen_rtx_REG (mode, R30_REGNUM);
--- 9953,9959 ----
      }
  
    /* Pop return address from shadow call stack.  */
!   if (frame.is_scs_enabled)
      {
        machine_mode mode = aarch64_reg_save_mode (R30_REGNUM);
        rtx reg = gen_rtx_REG (mode, R30_REGNUM);
*************** aarch64_expand_epilogue (bool for_sibcal
*** 10294,10299 ****
--- 9963,9991 ----
        RTX_FRAME_RELATED_P (insn) = 1;
      }
  
+   /* Stack adjustment for exception handler.  */
+   if (crtl->calls_eh_return && !sibcall)
+     {
+       /* If the EH_RETURN_TAKEN_RTX flag is set then we need
+ 	 to unwind the stack and jump to the handler, otherwise
+ 	 skip this eh_return logic and continue with normal
+ 	 return after the label.  We have already reset the CFA
+ 	 to be SP; letting the CFA move during this adjustment
+ 	 is just as correct as retaining the CFA from the body
+ 	 of the function.  Therefore, do nothing special.  */
+       rtx_code_label *label = gen_label_rtx ();
+       rtx x = aarch64_gen_compare_zero_and_branch (EQ, EH_RETURN_TAKEN_RTX,
+ 						   label);
+       rtx jump = emit_jump_insn (x);
+       JUMP_LABEL (jump) = label;
+       LABEL_NUSES (label)++;
+       emit_insn (gen_add2_insn (stack_pointer_rtx,
+ 				EH_RETURN_STACKADJ_RTX));
+       emit_jump_insn (gen_indirect_jump (EH_RETURN_HANDLER_RTX));
+       emit_barrier ();
+       emit_label (label);
+     }
+ 
    /* We prefer to emit the combined return/authenticate instruction RETAA,
       however there are three cases in which we must instead emit an explicit
       authentication instruction.
*************** aarch64_expand_epilogue (bool for_sibcal
*** 10306,10319 ****
  	   explicitly authenticate.
      */
    if (aarch64_return_address_signing_enabled ()
!       && (for_sibcall || !TARGET_ARMV8_3))
      {
!       switch (aarch_ra_sign_key)
  	{
! 	  case AARCH_KEY_A:
  	    insn = emit_insn (gen_autiasp ());
  	    break;
! 	  case AARCH_KEY_B:
  	    insn = emit_insn (gen_autibsp ());
  	    break;
  	  default:
--- 9998,10011 ----
  	   explicitly authenticate.
      */
    if (aarch64_return_address_signing_enabled ()
!       && (sibcall || !TARGET_ARMV8_3))
      {
!       switch (aarch64_ra_sign_key)
  	{
! 	  case AARCH64_KEY_A:
  	    insn = emit_insn (gen_autiasp ());
  	    break;
! 	  case AARCH64_KEY_B:
  	    insn = emit_insn (gen_autibsp ());
  	    break;
  	  default:
*************** aarch64_expand_epilogue (bool for_sibcal
*** 10323,10380 ****
        RTX_FRAME_RELATED_P (insn) = 1;
      }
  
-   /* Stack adjustment for exception handler.  */
-   if (crtl->calls_eh_return && !for_sibcall)
-     {
-       /* We need to unwind the stack by the offset computed by
- 	 EH_RETURN_STACKADJ_RTX.  We have already reset the CFA
- 	 to be SP; letting the CFA move during this adjustment
- 	 is just as correct as retaining the CFA from the body
- 	 of the function.  Therefore, do nothing special.  */
-       emit_insn (gen_add2_insn (stack_pointer_rtx, EH_RETURN_STACKADJ_RTX));
-     }
- 
    emit_use (gen_rtx_REG (DImode, LR_REGNUM));
!   if (!for_sibcall)
      emit_jump_insn (ret_rtx);
  }
  
- /* Implement EH_RETURN_HANDLER_RTX.  EH returns need to either return
-    normally or return to a previous frame after unwinding.
- 
-    An EH return uses a single shared return sequence.  The epilogue is
-    exactly like a normal epilogue except that it has an extra input
-    register (EH_RETURN_STACKADJ_RTX) which contains the stack adjustment
-    that must be applied after the frame has been destroyed.  An extra label
-    is inserted before the epilogue which initializes this register to zero,
-    and this is the entry point for a normal return.
- 
-    An actual EH return updates the return address, initializes the stack
-    adjustment and jumps directly into the epilogue (bypassing the zeroing
-    of the adjustment).  Since the return address is typically saved on the
-    stack when a function makes a call, the saved LR must be updated outside
-    the epilogue.
- 
-    This poses problems as the store is generated well before the epilogue,
-    so the offset of LR is not known yet.  Also optimizations will remove the
-    store as it appears dead, even after the epilogue is generated (as the
-    base or offset for loading LR is different in many cases).
- 
-    To avoid these problems this implementation forces the frame pointer
-    in eh_return functions so that the location of LR is fixed and known early.
-    It also marks the store volatile, so no optimization is permitted to
-    remove the store.  */
- rtx
- aarch64_eh_return_handler_rtx (void)
- {
-   rtx tmp = gen_frame_mem (Pmode,
-     plus_constant (Pmode, hard_frame_pointer_rtx, UNITS_PER_WORD));
- 
-   /* Mark the store volatile, so no optimization is permitted to remove it.  */
-   MEM_VOLATILE_P (tmp) = true;
-   return tmp;
- }
- 
  /* Output code to add DELTA to the first argument, and then jump
     to FUNCTION.  Used for C++ multiple inheritance.  */
  static void
--- 10015,10025 ----
        RTX_FRAME_RELATED_P (insn) = 1;
      }
  
    emit_use (gen_rtx_REG (DImode, LR_REGNUM));
!   if (!sibcall)
      emit_jump_insn (ret_rtx);
  }
  
  /* Output code to add DELTA to the first argument, and then jump
     to FUNCTION.  Used for C++ multiple inheritance.  */
  static void
*************** aarch64_output_mi_thunk (FILE *file, tre
*** 10403,10409 ****
    temp1 = gen_rtx_REG (Pmode, EP1_REGNUM);
  
    if (vcall_offset == 0)
!     aarch64_add_offset (Pmode, this_rtx, this_rtx, delta, temp1, temp0, false);
    else
      {
        gcc_assert ((vcall_offset & (POINTER_BYTES - 1)) == 0);
--- 10048,10055 ----
    temp1 = gen_rtx_REG (Pmode, EP1_REGNUM);
  
    if (vcall_offset == 0)
!     aarch64_add_offset (Pmode, this_rtx, this_rtx, delta, temp1, temp0,
! 			0, false);
    else
      {
        gcc_assert ((vcall_offset & (POINTER_BYTES - 1)) == 0);
*************** aarch64_output_mi_thunk (FILE *file, tre
*** 10416,10422 ****
  				       plus_constant (Pmode, this_rtx, delta));
  	  else
  	    aarch64_add_offset (Pmode, this_rtx, this_rtx, delta,
! 				temp1, temp0, false);
  	}
  
        if (Pmode == ptr_mode)
--- 10062,10068 ----
  				       plus_constant (Pmode, this_rtx, delta));
  	  else
  	    aarch64_add_offset (Pmode, this_rtx, this_rtx, delta,
! 				temp1, temp0, 0, false);
  	}
  
        if (Pmode == ptr_mode)
*************** aarch64_output_mi_thunk (FILE *file, tre
*** 10453,10459 ****
      }
    funexp = XEXP (DECL_RTL (function), 0);
    funexp = gen_rtx_MEM (FUNCTION_MODE, funexp);
!   rtx callee_abi = gen_int_mode (fndecl_abi (function).id (), DImode);
    insn = emit_call_insn (gen_sibcall (funexp, const0_rtx, callee_abi));
    SIBLING_CALL_P (insn) = 1;
  
--- 10099,10107 ----
      }
    funexp = XEXP (DECL_RTL (function), 0);
    funexp = gen_rtx_MEM (FUNCTION_MODE, funexp);
!   auto isa_mode = aarch64_fntype_isa_mode (TREE_TYPE (function));
!   auto pcs_variant = arm_pcs (fndecl_abi (function).id ());
!   rtx callee_abi = aarch64_gen_callee_cookie (isa_mode, pcs_variant);
    insn = emit_call_insn (gen_sibcall (funexp, const0_rtx, callee_abi));
    SIBLING_CALL_P (insn) = 1;
  
*************** aarch64_cannot_force_const_mem (machine_
*** 10498,10505 ****
  
    /* There's no way to calculate VL-based values using relocations.  */
    subrtx_iterator::array_type array;
    FOR_EACH_SUBRTX (iter, array, x, ALL)
!     if (GET_CODE (*iter) == CONST_POLY_INT)
        return true;
  
    poly_int64 offset;
--- 10146,10155 ----
  
    /* There's no way to calculate VL-based values using relocations.  */
    subrtx_iterator::array_type array;
+   HOST_WIDE_INT factor;
    FOR_EACH_SUBRTX (iter, array, x, ALL)
!     if (GET_CODE (*iter) == CONST_POLY_INT
! 	|| aarch64_sme_vq_unspec_p (x, &factor))
        return true;
  
    poly_int64 offset;
*************** aarch64_classify_index (struct aarch64_a
*** 10665,10671 ****
        type = ADDRESS_REG_UXTW;
        index = XEXP (XEXP (x, 0), 0);
        shift = exact_log2 (INTVAL (XEXP (XEXP (x, 0), 1)));
!       if (INTVAL (XEXP (x, 1)) != (HOST_WIDE_INT)0xffffffff << shift)
  	shift = -1;
      }
    /* (and:DI (ashift:DI (reg:DI) (const_int shift))
--- 10315,10323 ----
        type = ADDRESS_REG_UXTW;
        index = XEXP (XEXP (x, 0), 0);
        shift = exact_log2 (INTVAL (XEXP (XEXP (x, 0), 1)));
!       /* Avoid undefined code dealing with shift being -1. */
!       if (shift != -1
! 	  && INTVAL (XEXP (x, 1)) != (HOST_WIDE_INT)0xffffffff << shift)
  	shift = -1;
      }
    /* (and:DI (ashift:DI (reg:DI) (const_int shift))
*************** aarch64_classify_index (struct aarch64_a
*** 10711,10717 ****
        && contains_reg_of_mode[GENERAL_REGS][GET_MODE (SUBREG_REG (index))])
      index = SUBREG_REG (index);
  
!   if (aarch64_sve_data_mode_p (mode))
      {
        if (type != ADDRESS_REG_REG
  	  || (1 << shift) != GET_MODE_UNIT_SIZE (mode))
--- 10363,10369 ----
        && contains_reg_of_mode[GENERAL_REGS][GET_MODE (SUBREG_REG (index))])
      index = SUBREG_REG (index);
  
!   if (aarch64_sve_data_mode_p (mode) || mode == VNx1TImode)
      {
        if (type != ADDRESS_REG_REG
  	  || (1 << shift) != GET_MODE_UNIT_SIZE (mode))
*************** aarch64_classify_address (struct aarch64
*** 10802,10820 ****
       mode of the corresponding addressing mode is half of that.  */
    if (type == ADDR_QUERY_LDP_STP_N)
      {
!       if (known_eq (GET_MODE_SIZE (mode), 16))
  	mode = DFmode;
        else if (known_eq (GET_MODE_SIZE (mode), 8))
  	mode = SFmode;
        else
  	return false;
      }
  
    bool allow_reg_index_p = (!load_store_pair_p
  			    && ((vec_flags == 0
  				 && known_lt (GET_MODE_SIZE (mode), 16))
  				|| vec_flags == VEC_ADVSIMD
! 				|| vec_flags & VEC_SVE_DATA));
  
    /* For SVE, only accept [Rn], [Rn, #offset, MUL VL] and [Rn, Rm, LSL #shift].
       The latter is not valid for SVE predicates, and that's rejected through
--- 10454,10479 ----
       mode of the corresponding addressing mode is half of that.  */
    if (type == ADDR_QUERY_LDP_STP_N)
      {
!       if (known_eq (GET_MODE_SIZE (mode), 32))
! 	mode = V16QImode;
!       else if (known_eq (GET_MODE_SIZE (mode), 16))
  	mode = DFmode;
        else if (known_eq (GET_MODE_SIZE (mode), 8))
  	mode = SFmode;
        else
  	return false;
+ 
+       /* This isn't really an Advanced SIMD struct mode, but a mode
+ 	 used to represent the complete mem in a load/store pair.  */
+       advsimd_struct_p = false;
      }
  
    bool allow_reg_index_p = (!load_store_pair_p
  			    && ((vec_flags == 0
  				 && known_lt (GET_MODE_SIZE (mode), 16))
  				|| vec_flags == VEC_ADVSIMD
! 				|| vec_flags & VEC_SVE_DATA
! 				|| mode == VNx1TImode));
  
    /* For SVE, only accept [Rn], [Rn, #offset, MUL VL] and [Rn, Rm, LSL #shift].
       The latter is not valid for SVE predicates, and that's rejected through
*************** aarch64_classify_address (struct aarch64
*** 10933,10939 ****
  	  /* Make "m" use the LD1 offset range for SVE data modes, so
  	     that pre-RTL optimizers like ivopts will work to that
  	     instead of the wider LDR/STR range.  */
! 	  if (vec_flags == VEC_SVE_DATA)
  	    return (type == ADDR_QUERY_M
  		    ? offset_4bit_signed_scaled_p (mode, offset)
  		    : offset_9bit_signed_scaled_p (mode, offset));
--- 10592,10598 ----
  	  /* Make "m" use the LD1 offset range for SVE data modes, so
  	     that pre-RTL optimizers like ivopts will work to that
  	     instead of the wider LDR/STR range.  */
! 	  if (vec_flags == VEC_SVE_DATA || mode == VNx1TImode)
  	    return (type == ADDR_QUERY_M
  		    ? offset_4bit_signed_scaled_p (mode, offset)
  		    : offset_9bit_signed_scaled_p (mode, offset));
*************** aarch64_classify_address (struct aarch64
*** 10953,10958 ****
--- 10612,10626 ----
  	  if (vec_flags == VEC_SVE_PRED)
  	    return offset_9bit_signed_scaled_p (mode, offset);
  
+ 	  if (vec_flags == (VEC_SVE_PRED | VEC_STRUCT))
+ 	    {
+ 	      poly_int64 end_offset = (offset
+ 				       + GET_MODE_SIZE (mode)
+ 				       - BYTES_PER_SVE_PRED);
+ 	      return (offset_9bit_signed_scaled_p (VNx16BImode, end_offset)
+ 		      && offset_9bit_signed_scaled_p (VNx16BImode, offset));
+ 	    }
+ 
  	  if (load_store_pair_p)
  	    return ((known_eq (GET_MODE_SIZE (mode), 4)
  		     || known_eq (GET_MODE_SIZE (mode), 8)
*************** aarch64_classify_symbolic_expression (rt
*** 11134,11140 ****
  /* Return TRUE if X is a legitimate address for accessing memory in
     mode MODE.  */
  static bool
! aarch64_legitimate_address_hook_p (machine_mode mode, rtx x, bool strict_p)
  {
    struct aarch64_address_info addr;
  
--- 10802,10809 ----
  /* Return TRUE if X is a legitimate address for accessing memory in
     mode MODE.  */
  static bool
! aarch64_legitimate_address_hook_p (machine_mode mode, rtx x, bool strict_p,
! 				   code_helper = ERROR_MARK)
  {
    struct aarch64_address_info addr;
  
*************** aarch64_float_const_zero_rtx_p (rtx x)
*** 11310,11315 ****
--- 10979,10993 ----
    return real_equal (CONST_DOUBLE_REAL_VALUE (x), &dconst0);
  }
  
+ /* Return true if X is any kind of constant zero rtx.  */
+ 
+ bool
+ aarch64_const_zero_rtx_p (rtx x)
+ {
+   return (x == CONST0_RTX (GET_MODE (x))
+ 	  || (CONST_DOUBLE_P (x) && aarch64_float_const_zero_rtx_p (x)));
+ }
+ 
  /* Return TRUE if rtx X is immediate constant that fits in a single
     MOVI immediate operation.  */
  bool
*************** aarch64_fixed_condition_code_regs (unsig
*** 11361,11381 ****
    return true;
  }
  
  /* This function is used by the call expanders of the machine description.
     RESULT is the register in which the result is returned.  It's NULL for
     "call" and "sibcall".
     MEM is the location of the function call.
!    CALLEE_ABI is a const_int that gives the arm_pcs of the callee.
     SIBCALL indicates whether this function call is normal call or sibling call.
     It will generate different pattern accordingly.  */
  
  void
! aarch64_expand_call (rtx result, rtx mem, rtx callee_abi, bool sibcall)
  {
    rtx call, callee, tmp;
    rtvec vec;
    machine_mode mode;
  
    gcc_assert (MEM_P (mem));
    callee = XEXP (mem, 0);
    mode = GET_MODE (callee);
--- 11039,11231 ----
    return true;
  }
  
+ /* Return a fresh memory reference to the current function's TPIDR2 block,
+    creating a block if necessary.  */
+ 
+ static rtx
+ aarch64_get_tpidr2_block ()
+ {
+   if (!cfun->machine->tpidr2_block)
+     /* The TPIDR2 block is 16 bytes in size and must be aligned to a 128-bit
+        boundary.  */
+     cfun->machine->tpidr2_block = assign_stack_local (V16QImode, 16, 128);
+   return copy_rtx (cfun->machine->tpidr2_block);
+ }
+ 
+ /* Return a fresh register that points to the current function's
+    TPIDR2 block, creating a block if necessary.  */
+ 
+ static rtx
+ aarch64_get_tpidr2_ptr ()
+ {
+   rtx block = aarch64_get_tpidr2_block ();
+   return force_reg (Pmode, XEXP (block, 0));
+ }
+ 
+ /* Emit instructions to allocate a ZA lazy save buffer and initialize the
+    current function's TPIDR2 block.  */
+ 
+ static void
+ aarch64_init_tpidr2_block ()
+ {
+   rtx block = aarch64_get_tpidr2_block ();
+ 
+   /* The ZA save buffer is SVL.B*SVL.B bytes in size.  */
+   rtx svl_bytes = aarch64_sme_vq_immediate (Pmode, 16, AARCH64_ISA_MODE);
+   rtx svl_bytes_reg = force_reg (DImode, svl_bytes);
+   rtx za_size = expand_simple_binop (Pmode, MULT, svl_bytes_reg,
+ 				     svl_bytes_reg, NULL, 0, OPTAB_LIB_WIDEN);
+   rtx za_save_buffer = allocate_dynamic_stack_space (za_size, 128,
+ 						     BITS_PER_UNIT, -1, true);
+   za_save_buffer = force_reg (Pmode, za_save_buffer);
+   cfun->machine->za_save_buffer = za_save_buffer;
+ 
+   /* The first word of the block points to the save buffer and the second
+      word is the number of ZA slices to save.  */
+   rtx block_0 = adjust_address (block, DImode, 0);
+   emit_insn (aarch64_gen_store_pair (block_0, za_save_buffer, svl_bytes_reg));
+ 
+   if (!memory_operand (block, V16QImode))
+     block = replace_equiv_address (block, force_reg (Pmode, XEXP (block, 0)));
+   emit_insn (gen_aarch64_setup_local_tpidr2 (block));
+ }
+ 
+ /* Restore the contents of ZA from the lazy save buffer, given that
+    register TPIDR2_BLOCK points to the current function's TPIDR2 block.
+    PSTATE.ZA is known to be 0 and TPIDR2_EL0 is known to be null.  */
+ 
+ void
+ aarch64_restore_za (rtx tpidr2_block)
+ {
+   emit_insn (gen_aarch64_smstart_za ());
+   if (REGNO (tpidr2_block) != R0_REGNUM)
+     emit_move_insn (gen_rtx_REG (Pmode, R0_REGNUM), tpidr2_block);
+   emit_insn (gen_aarch64_tpidr2_restore ());
+ }
+ 
+ /* Return the ZT0 save buffer, creating one if necessary.  */
+ 
+ static rtx
+ aarch64_get_zt0_save_buffer ()
+ {
+   if (!cfun->machine->zt0_save_buffer)
+     cfun->machine->zt0_save_buffer = assign_stack_local (V8DImode, 64, 128);
+   return cfun->machine->zt0_save_buffer;
+ }
+ 
+ /* Save ZT0 to the current function's save buffer.  */
+ 
+ static void
+ aarch64_save_zt0 ()
+ {
+   rtx mem = aarch64_get_zt0_save_buffer ();
+   mem = replace_equiv_address (mem, force_reg (Pmode, XEXP (mem, 0)));
+   emit_insn (gen_aarch64_sme_str_zt0 (mem));
+ }
+ 
+ /* Restore ZT0 from the current function's save buffer.  FROM_LAZY_SAVE_P
+    is true if the load is happening after a call to a private-ZA function,
+    false if it can be treated as a normal load.  */
+ 
+ static void
+ aarch64_restore_zt0 (bool from_lazy_save_p)
+ {
+   rtx mem = aarch64_get_zt0_save_buffer ();
+   mem = replace_equiv_address (mem, force_reg (Pmode, XEXP (mem, 0)));
+   emit_insn (from_lazy_save_p
+ 	     ? gen_aarch64_restore_zt0 (mem)
+ 	     : gen_aarch64_sme_ldr_zt0 (mem));
+ }
+ 
+ /* Implement TARGET_START_CALL_ARGS.  */
+ 
+ static void
+ aarch64_start_call_args (cumulative_args_t ca_v)
+ {
+   CUMULATIVE_ARGS *ca = get_cumulative_args (ca_v);
+ 
+   if (!TARGET_SME && (ca->isa_mode & AARCH64_FL_SM_ON))
+     {
+       error ("calling a streaming function requires the ISA extension %qs",
+ 	     "sme");
+       inform (input_location, "you can enable %qs using the command-line"
+ 	      " option %<-march%>, or by using the %<target%>"
+ 	      " attribute or pragma", "sme");
+     }
+ 
+   if ((ca->shared_za_flags & (AARCH64_STATE_IN | AARCH64_STATE_OUT))
+       && !aarch64_cfun_has_state ("za"))
+     error ("call to a function that shares %qs state from a function"
+ 	   " that has no %qs state", "za", "za");
+   else if ((ca->shared_zt0_flags & (AARCH64_STATE_IN | AARCH64_STATE_OUT))
+ 	   && !aarch64_cfun_has_state ("zt0"))
+     error ("call to a function that shares %qs state from a function"
+ 	   " that has no %qs state", "zt0", "zt0");
+   else if (!TARGET_ZA && (ca->isa_mode & AARCH64_FL_ZA_ON))
+     error ("call to a function that shares SME state from a function"
+ 	   " that has no SME state");
+ 
+   /* If this is a call to a private ZA function, emit a marker to
+      indicate where any necessary set-up code could be inserted.
+      The code itself is inserted by the mode-switching pass.  */
+   if (TARGET_ZA && !(ca->isa_mode & AARCH64_FL_ZA_ON))
+     emit_insn (gen_aarch64_start_private_za_call ());
+ 
+   /* If this is a call to a shared-ZA function that doesn't share ZT0,
+      save and restore ZT0 around the call.  */
+   if (aarch64_cfun_has_state ("zt0")
+       && (ca->isa_mode & AARCH64_FL_ZA_ON)
+       && ca->shared_zt0_flags == 0)
+     aarch64_save_zt0 ();
+ }
+ 
  /* This function is used by the call expanders of the machine description.
     RESULT is the register in which the result is returned.  It's NULL for
     "call" and "sibcall".
     MEM is the location of the function call.
!    COOKIE is either:
!      - a const_int that gives the argument to the call's UNSPEC_CALLEE_ABI.
!      - a PARALLEL that contains such a const_int as its first element.
!        The second element is a PARALLEL that lists all the argument
!        registers that need to be saved and restored around a change
!        in PSTATE.SM, or const0_rtx if no such switch is needed.
!        The third and fourth elements are const_ints that contain the
!        sharing flags for ZA and ZT0 respectively.
     SIBCALL indicates whether this function call is normal call or sibling call.
     It will generate different pattern accordingly.  */
  
  void
! aarch64_expand_call (rtx result, rtx mem, rtx cookie, bool sibcall)
  {
    rtx call, callee, tmp;
    rtvec vec;
    machine_mode mode;
  
+   rtx callee_abi = cookie;
+   rtx sme_mode_switch_args = const0_rtx;
+   unsigned int shared_za_flags = 0;
+   unsigned int shared_zt0_flags = 0;
+   if (GET_CODE (cookie) == PARALLEL)
+     {
+       callee_abi = XVECEXP (cookie, 0, 0);
+       sme_mode_switch_args = XVECEXP (cookie, 0, 1);
+       shared_za_flags = INTVAL (XVECEXP (cookie, 0, 2));
+       shared_zt0_flags = INTVAL (XVECEXP (cookie, 0, 3));
+     }
+ 
+   gcc_assert (CONST_INT_P (callee_abi));
+   auto callee_isa_mode = aarch64_callee_isa_mode (callee_abi);
+ 
+   if (aarch64_cfun_has_state ("za")
+       && (callee_isa_mode & AARCH64_FL_ZA_ON)
+       && !shared_za_flags)
+     {
+       sorry ("call to a function that shares state other than %qs"
+ 	     " from a function that has %qs state", "za", "za");
+       inform (input_location, "use %<__arm_preserves(\"za\")%> if the"
+ 	      " callee preserves ZA");
+     }
+ 
    gcc_assert (MEM_P (mem));
    callee = XEXP (mem, 0);
    mode = GET_MODE (callee);
*************** aarch64_expand_call (rtx result, rtx mem
*** 11390,11395 ****
--- 11240,11282 ----
        : !REG_P (callee))
      XEXP (mem, 0) = force_reg (mode, callee);
  
+   /* Accumulate the return values, including state that is shared via
+      attributes.  */
+   auto_vec<rtx, 8> return_values;
+   if (result)
+     {
+       if (GET_CODE (result) == PARALLEL)
+ 	for (int i = 0; i < XVECLEN (result, 0); ++i)
+ 	  return_values.safe_push (XVECEXP (result, 0, i));
+       else
+ 	return_values.safe_push (result);
+     }
+   unsigned int orig_num_return_values = return_values.length ();
+   if (shared_za_flags & AARCH64_STATE_OUT)
+     return_values.safe_push (gen_rtx_REG (VNx16BImode, ZA_REGNUM));
+   /* When calling private-ZA functions from functions with ZA state,
+      we want to know whether the call committed a lazy save.  */
+   if (TARGET_ZA && !shared_za_flags)
+     return_values.safe_push (gen_rtx_REG (VNx16BImode, ZA_SAVED_REGNUM));
+   if (shared_zt0_flags & AARCH64_STATE_OUT)
+     return_values.safe_push (gen_rtx_REG (V8DImode, ZT0_REGNUM));
+ 
+   /* Create the new return value, if necessary.  */
+   if (orig_num_return_values != return_values.length ())
+     {
+       if (return_values.length () == 1)
+ 	result = return_values[0];
+       else
+ 	{
+ 	  for (rtx &x : return_values)
+ 	    if (GET_CODE (x) != EXPR_LIST)
+ 	      x = gen_rtx_EXPR_LIST (VOIDmode, x, const0_rtx);
+ 	  rtvec v = gen_rtvec_v (return_values.length (),
+ 				 return_values.address ());
+ 	  result = gen_rtx_PARALLEL (VOIDmode, v);
+ 	}
+     }
+ 
    call = gen_rtx_CALL (VOIDmode, mem, const0_rtx);
  
    if (result != NULL_RTX)
*************** aarch64_expand_call (rtx result, rtx mem
*** 11400,11425 ****
    else
      tmp = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNUM));
  
-   gcc_assert (CONST_INT_P (callee_abi));
    callee_abi = gen_rtx_UNSPEC (DImode, gen_rtvec (1, callee_abi),
  			       UNSPEC_CALLEE_ABI);
  
    vec = gen_rtvec (3, call, callee_abi, tmp);
    call = gen_rtx_PARALLEL (VOIDmode, vec);
  
!   aarch64_emit_call_insn (call);
  }
  
  /* Emit call insn with PAT and do aarch64-specific handling.  */
  
! void
  aarch64_emit_call_insn (rtx pat)
  {
!   rtx insn = emit_call_insn (pat);
  
    rtx *fusage = &CALL_INSN_FUNCTION_USAGE (insn);
    clobber_reg (fusage, gen_rtx_REG (word_mode, IP0_REGNUM));
    clobber_reg (fusage, gen_rtx_REG (word_mode, IP1_REGNUM));
  }
  
  machine_mode
--- 11287,11418 ----
    else
      tmp = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNUM));
  
    callee_abi = gen_rtx_UNSPEC (DImode, gen_rtvec (1, callee_abi),
  			       UNSPEC_CALLEE_ABI);
  
    vec = gen_rtvec (3, call, callee_abi, tmp);
    call = gen_rtx_PARALLEL (VOIDmode, vec);
  
!   auto call_insn = aarch64_emit_call_insn (call);
! 
!   /* Check whether the call requires a change to PSTATE.SM.  We can't
!      emit the instructions to change PSTATE.SM yet, since they involve
!      a change in vector length and a change in instruction set, which
!      cannot be represented in RTL.
! 
!      For now, just record which registers will be clobbered and used
!      by the changes to PSTATE.SM.  */
!   if (!sibcall && aarch64_call_switches_pstate_sm (callee_isa_mode))
!     {
!       aarch64_sme_mode_switch_regs args_switch;
!       if (sme_mode_switch_args != const0_rtx)
! 	{
! 	  unsigned int num_args = XVECLEN (sme_mode_switch_args, 0);
! 	  for (unsigned int i = 0; i < num_args; ++i)
! 	    {
! 	      rtx x = XVECEXP (sme_mode_switch_args, 0, i);
! 	      args_switch.add_reg (GET_MODE (x), REGNO (x));
! 	    }
! 	}
! 
!       aarch64_sme_mode_switch_regs result_switch;
!       if (result)
! 	result_switch.add_call_result (call_insn);
! 
!       unsigned int num_gprs = MAX (args_switch.num_gprs (),
! 				   result_switch.num_gprs ());
!       for (unsigned int i = 0; i < num_gprs; ++i)
! 	clobber_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 		     gen_rtx_REG (DImode, args_switch.FIRST_GPR + i));
! 
!       for (int regno = V0_REGNUM; regno < V0_REGNUM + 32; regno += 4)
! 	clobber_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 		     gen_rtx_REG (V4x16QImode, regno));
! 
!       for (int regno = P0_REGNUM; regno < P0_REGNUM + 16; regno += 1)
! 	clobber_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 		     gen_rtx_REG (VNx16BImode, regno));
! 
!       /* Ensure that the VG save slot has been initialized.  Also emit
! 	 an instruction to model the effect of the temporary clobber
! 	 of VG, so that the prologue/epilogue pass sees the need to
! 	 save the old value.  */
!       use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 	       gen_rtx_REG (DImode, VG_REGNUM));
!       emit_insn_before (gen_aarch64_update_vg (), call_insn);
! 
!       cfun->machine->call_switches_pstate_sm = true;
!     }
! 
!   /* Add any ZA-related information.
! 
!      ZA_REGNUM represents the current function's ZA state, rather than
!      the contents of the ZA register itself.  We ensure that the function's
!      ZA state is preserved by private-ZA call sequences, so the call itself
!      does not use or clobber ZA_REGNUM.  The same thing applies to
!      ZT0_REGNUM.  */
!   if (TARGET_ZA)
!     {
!       /* The callee requires ZA to be active if the callee is shared-ZA,
! 	 otherwise it requires ZA to be dormant or off.  The state of ZA is
! 	 captured by a combination of SME_STATE_REGNUM, TPIDR2_SETUP_REGNUM,
! 	 and ZA_SAVED_REGNUM.  */
!       use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 	       gen_rtx_REG (DImode, SME_STATE_REGNUM));
!       use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 	       gen_rtx_REG (DImode, TPIDR2_SETUP_REGNUM));
!       use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 	       gen_rtx_REG (VNx16BImode, ZA_SAVED_REGNUM));
! 
!       /* Keep the aarch64_start/end_private_za_call markers live.  */
!       if (!(callee_isa_mode & AARCH64_FL_ZA_ON))
! 	use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 		 gen_rtx_REG (VNx16BImode, LOWERING_REGNUM));
! 
!       /* If the callee is a shared-ZA function, record whether it uses the
! 	 current value of ZA and ZT0.  */
!       if (shared_za_flags & AARCH64_STATE_IN)
! 	use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 		 gen_rtx_REG (VNx16BImode, ZA_REGNUM));
! 
!       if (shared_zt0_flags & AARCH64_STATE_IN)
! 	use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn),
! 		 gen_rtx_REG (V8DImode, ZT0_REGNUM));
!     }
! }
! 
! /* Implement TARGET_END_CALL_ARGS.  */
! 
! static void
! aarch64_end_call_args (cumulative_args_t ca_v)
! {
!   CUMULATIVE_ARGS *ca = get_cumulative_args (ca_v);
! 
!   /* If this is a call to a private ZA function, emit a marker to
!      indicate where any necessary restoration code could be inserted.
!      The code itself is inserted by the mode-switching pass.  */
!   if (TARGET_ZA && !(ca->isa_mode & AARCH64_FL_ZA_ON))
!     emit_insn (gen_aarch64_end_private_za_call ());
! 
!   /* If this is a call to a shared-ZA function that doesn't share ZT0,
!      save and restore ZT0 around the call.  */
!   if (aarch64_cfun_has_state ("zt0")
!       && (ca->isa_mode & AARCH64_FL_ZA_ON)
!       && ca->shared_zt0_flags == 0)
!     aarch64_restore_zt0 (false);
  }
  
  /* Emit call insn with PAT and do aarch64-specific handling.  */
  
! rtx_call_insn *
  aarch64_emit_call_insn (rtx pat)
  {
!   auto insn = emit_call_insn (pat);
  
    rtx *fusage = &CALL_INSN_FUNCTION_USAGE (insn);
    clobber_reg (fusage, gen_rtx_REG (word_mode, IP0_REGNUM));
    clobber_reg (fusage, gen_rtx_REG (word_mode, IP1_REGNUM));
+   return as_a<rtx_call_insn *> (insn);
  }
  
  machine_mode
*************** aarch64_get_condition_code_1 (machine_mo
*** 11696,11701 ****
--- 11689,11746 ----
    return -1;
  }
  
+ /* Return true if X is a CONST_INT, CONST_WIDE_INT or a constant vector
+    duplicate of such constants.  If so, store in RET_WI the wide_int
+    representation of the constant paired with the inner mode of the vector mode
+    or MODE for scalar X constants.  If MODE is not provided then TImode is
+    used.  */
+ 
+ static bool
+ aarch64_extract_vec_duplicate_wide_int (rtx x, wide_int *ret_wi,
+ 					scalar_mode mode = TImode)
+ {
+   rtx elt = unwrap_const_vec_duplicate (x);
+   if (!CONST_SCALAR_INT_P (elt))
+     return false;
+   scalar_mode smode
+     = CONST_SCALAR_INT_P (x) ? mode : GET_MODE_INNER (GET_MODE (x));
+   *ret_wi = rtx_mode_t (elt, smode);
+   return true;
+ }
+ 
+ /* Return true if X is a scalar or a constant vector of integer
+    immediates that represent the rounding constant used in the fixed-point
+    arithmetic instructions.
+    The accepted form of the constant is (1 << (C - 1)) where C is in the range
+    [1, MODE_WIDTH/2].  */
+ 
+ bool
+ aarch64_rnd_imm_p (rtx x)
+ {
+   wide_int rnd_cst;
+   if (!aarch64_extract_vec_duplicate_wide_int (x, &rnd_cst))
+     return false;
+   int log2 = wi::exact_log2 (rnd_cst);
+   if (log2 < 0)
+     return false;
+   return IN_RANGE (log2, 0, rnd_cst.get_precision () / 2 - 1);
+ }
+ 
+ /* Return true if RND is a constant vector of integer rounding constants
+    corresponding to a constant vector of shifts, SHIFT.
+    The relationship should be RND == (1 << (SHIFT - 1)).  */
+ 
+ bool
+ aarch64_const_vec_rnd_cst_p (rtx rnd, rtx shift)
+ {
+   wide_int rnd_cst, shft_cst;
+   if (!aarch64_extract_vec_duplicate_wide_int (rnd, &rnd_cst)
+       || !aarch64_extract_vec_duplicate_wide_int (shift, &shft_cst))
+     return false;
+ 
+   return rnd_cst == (wi::shwi (1, rnd_cst.get_precision ()) << (shft_cst - 1));
+ }
+ 
  bool
  aarch64_const_vec_all_same_in_range_p (rtx x,
  				       HOST_WIDE_INT minval,
*************** aarch64_const_vec_all_same_in_range_p (r
*** 11707,11712 ****
--- 11752,11800 ----
  	  && IN_RANGE (INTVAL (elt), minval, maxval));
  }
  
+ /* Some constants can't be made using normal mov instructions in Advanced SIMD
+    but we can still create them in various ways.  If the constant in VAL can be
+    created using alternate methods then if possible then return true and
+    additionally set TARGET to the rtx for the sequence if TARGET is not NULL.
+    Otherwise return false if sequence is not possible.  */
+ 
+ bool
+ aarch64_maybe_generate_simd_constant (rtx target, rtx val, machine_mode mode)
+ {
+   wide_int wval;
+   auto smode = GET_MODE_INNER (mode);
+   if (!aarch64_extract_vec_duplicate_wide_int (val, &wval, smode))
+     return false;
+ 
+   /* For Advanced SIMD we can create an integer with only the top bit set
+      using fneg (0.0f).  */
+   if (TARGET_SIMD
+       && !TARGET_SVE
+       && smode == DImode
+       && wi::only_sign_bit_p (wval))
+     {
+       if (!target)
+ 	return true;
+ 
+       /* Use the same base type as aarch64_gen_shareable_zero.  */
+       rtx zero = CONST0_RTX (V4SImode);
+       emit_move_insn (lowpart_subreg (V4SImode, target, mode), zero);
+       rtx neg = lowpart_subreg (V2DFmode, target, mode);
+       emit_insn (gen_negv2df2 (neg, copy_rtx (neg)));
+       return true;
+     }
+ 
+   return false;
+ }
+ 
+ /* Check if the value in VAL with mode MODE can be created using special
+    instruction sequences.  */
+ 
+ bool aarch64_simd_special_constant_p (rtx val, machine_mode mode)
+ {
+   return aarch64_maybe_generate_simd_constant (NULL_RTX, val, mode);
+ }
+ 
  bool
  aarch64_const_vec_all_same_int_p (rtx x, HOST_WIDE_INT val)
  {
*************** sizetochar (int size)
*** 11846,11851 ****
--- 11934,11943 ----
       'N':		Take the duplicated element in a vector constant
  			and print the negative of it in decimal.
       'b/h/s/d/q':	Print a scalar FP/SIMD register name.
+      'Z':		Same for SVE registers.  ('z' was already taken.)
+ 			Note that it is not necessary to use %Z for operands
+ 			that have SVE modes.  The convention is to use %Z
+ 			only for non-SVE (or potentially non-SVE) modes.
       'S/T/U/V':		Print a FP/SIMD register name for a register list.
  			The register printed is the FP/SIMD register name
  			of X + 0/1/2/3 for S/T/U/V.
*************** sizetochar (int size)
*** 11856,11861 ****
--- 11948,11954 ----
       '0':		Print a normal operand, if it's a general register,
  			then we assume DImode.
       'k':		Print NZCV for conditional compare instructions.
+      'K':		Print a predicate register as pn<N> rather than p<N>
       'A':		Output address constant representing the first
  			argument of X, specifying a relocation offset
  			if appropriate.
*************** aarch64_print_operand (FILE *f, rtx x, i
*** 12018,12023 ****
--- 12111,12118 ----
      case 's':
      case 'd':
      case 'q':
+     case 'Z':
+       code = TOLOWER (code);
        if (!REG_P (x) || !FP_REGNUM_P (REGNO (x)))
  	{
  	  output_operand_lossage ("incompatible floating point / vector register operand for '%%%c'", code);
*************** aarch64_print_operand (FILE *f, rtx x, i
*** 12030,12043 ****
      case 'T':
      case 'U':
      case 'V':
!       if (!REG_P (x) || !FP_REGNUM_P (REGNO (x)))
  	{
! 	  output_operand_lossage ("incompatible floating point / vector register operand for '%%%c'", code);
  	  return;
  	}
!       asm_fprintf (f, "%c%d",
! 		   aarch64_sve_data_mode_p (GET_MODE (x)) ? 'z' : 'v',
! 		   REGNO (x) - V0_REGNUM + (code - 'S'));
        break;
  
      case 'R':
--- 12125,12141 ----
      case 'T':
      case 'U':
      case 'V':
!       if (!REG_P (x) || (!FP_REGNUM_P (REGNO (x)) && !PR_REGNUM_P (REGNO (x))))
  	{
! 	  output_operand_lossage ("incompatible operand for '%%%c'", code);
  	  return;
  	}
!       if (PR_REGNUM_P (REGNO (x)))
! 	asm_fprintf (f, "p%d", REGNO (x) - P0_REGNUM + (code - 'S'));
!       else
! 	asm_fprintf (f, "%c%d",
! 		     aarch64_sve_data_mode_p (GET_MODE (x)) ? 'z' : 'v',
! 		     REGNO (x) - V0_REGNUM + (code - 'S'));
        break;
  
      case 'R':
*************** aarch64_print_operand (FILE *f, rtx x, i
*** 12091,12098 ****
  
      case 'w':
      case 'x':
!       if (x == const0_rtx
! 	  || (CONST_DOUBLE_P (x) && aarch64_float_const_zero_rtx_p (x)))
  	{
  	  asm_fprintf (f, "%czr", code);
  	  break;
--- 12189,12195 ----
  
      case 'w':
      case 'x':
!       if (aarch64_const_zero_rtx_p (x))
  	{
  	  asm_fprintf (f, "%czr", code);
  	  break;
*************** aarch64_print_operand (FILE *f, rtx x, i
*** 12121,12126 ****
--- 12218,12228 ----
  
        switch (GET_CODE (x))
  	{
+ 	case CONST_STRING:
+ 	  {
+ 	    asm_fprintf (f, "%s", XSTR (x, 0));
+ 	    break;
+ 	  }
  	case REG:
  	  if (aarch64_sve_data_mode_p (GET_MODE (x)))
  	    {
*************** aarch64_print_operand (FILE *f, rtx x, i
*** 12313,12318 ****
--- 12415,12429 ----
        }
        break;
  
+     case 'K':
+       if (!REG_P (x) || !PR_REGNUM_P (REGNO (x)))
+ 	{
+ 	  output_operand_lossage ("invalid operand for '%%%c'", code);
+ 	  return;
+ 	}
+       asm_fprintf (f, "pn%d", REGNO (x) - P0_REGNUM);
+       break;
+ 
      case 'y':
      case 'z':
        {
*************** aarch64_print_operand (FILE *f, rtx x, i
*** 12321,12327 ****
  	if (!MEM_P (x)
  	    || (code == 'y'
  		&& maybe_ne (GET_MODE_SIZE (mode), 8)
! 		&& maybe_ne (GET_MODE_SIZE (mode), 16)))
  	  {
  	    output_operand_lossage ("invalid operand for '%%%c'", code);
  	    return;
--- 12432,12439 ----
  	if (!MEM_P (x)
  	    || (code == 'y'
  		&& maybe_ne (GET_MODE_SIZE (mode), 8)
! 		&& maybe_ne (GET_MODE_SIZE (mode), 16)
! 		&& maybe_ne (GET_MODE_SIZE (mode), 32)))
  	  {
  	    output_operand_lossage ("invalid operand for '%%%c'", code);
  	    return;
*************** aarch64_print_address_internal (FILE *f,
*** 12360,12365 ****
--- 12472,12480 ----
        return false;
      }
  
+   const bool load_store_pair_p = (type == ADDR_QUERY_LDP_STP
+ 				  || type == ADDR_QUERY_LDP_STP_N);
+ 
    if (aarch64_classify_address (&addr, x, mode, true, type))
      switch (addr.type)
        {
*************** aarch64_print_address_internal (FILE *f,
*** 12371,12377 ****
  	  }
  
  	vec_flags = aarch64_classify_vector_mode (mode);
! 	if (vec_flags & VEC_ANY_SVE)
  	  {
  	    HOST_WIDE_INT vnum
  	      = exact_div (addr.const_offset,
--- 12486,12492 ----
  	  }
  
  	vec_flags = aarch64_classify_vector_mode (mode);
! 	if ((vec_flags & VEC_ANY_SVE) && !load_store_pair_p)
  	  {
  	    HOST_WIDE_INT vnum
  	      = exact_div (addr.const_offset,
*************** aarch64_print_address_internal (FILE *f,
*** 12381,12386 ****
--- 12496,12504 ----
  	    return true;
  	  }
  
+ 	if (!CONST_INT_P (addr.offset))
+ 	  return false;
+ 
  	asm_fprintf (f, "[%s, %wd]", reg_names[REGNO (addr.base)],
  		     INTVAL (addr.offset));
  	return true;
*************** aarch64_label_mentioned_p (rtx x)
*** 12515,12520 ****
--- 12633,12644 ----
  enum reg_class
  aarch64_regno_regclass (unsigned regno)
  {
+   if (W8_W11_REGNUM_P (regno))
+     return W8_W11_REGS;
+ 
+   if (W12_W15_REGNUM_P (regno))
+     return W12_W15_REGS;
+ 
    if (STUB_REGNUM_P (regno))
      return STUB_REGS;
  
*************** aarch64_regno_regclass (unsigned regno)
*** 12538,12543 ****
--- 12662,12670 ----
    if (regno == FFR_REGNUM || regno == FFRT_REGNUM)
      return FFR_REGS;
  
+   if (FAKE_REGNUM_P (regno))
+     return FAKE_REGS;
+ 
    return NO_REGS;
  }
  
*************** aarch64_legitimize_address (rtx x, rtx /
*** 12586,12591 ****
--- 12713,12729 ----
       not to split a CONST for some forms of address expression, otherwise
       it will generate sub-optimal code.  */
  
+   /* First split X + CONST (base, offset) into (base + X) + offset.  */
+   if (GET_CODE (x) == PLUS && GET_CODE (XEXP (x, 1)) == CONST)
+     {
+       poly_int64 offset;
+       rtx base = strip_offset (XEXP (x, 1), &offset);
+ 
+       base = expand_binop (Pmode, add_optab, base, XEXP (x, 0),
+ 			   NULL_RTX, true, OPTAB_DIRECT);
+       x = plus_constant (Pmode, base, offset);
+     }
+ 
    if (GET_CODE (x) == PLUS && CONST_INT_P (XEXP (x, 1)))
      {
        rtx base = XEXP (x, 0);
*************** aarch64_secondary_reload (bool in_p ATTR
*** 12672,12679 ****
        return NO_REGS;
      }
  
!   /* Without the TARGET_SIMD instructions we cannot move a Q register
!      to a Q register directly.  We need a scratch.  */
    if (REG_P (x)
        && (mode == TFmode
  	  || mode == TImode
--- 12810,12817 ----
        return NO_REGS;
      }
  
!   /* Without the TARGET_SIMD or TARGET_SVE instructions we cannot move a
!      Q register to a Q register directly.  We need a scratch.  */
    if (REG_P (x)
        && (mode == TFmode
  	  || mode == TImode
*************** aarch64_secondary_memory_needed (machine
*** 12725,12730 ****
--- 12863,12878 ----
    return false;
  }
  
+ /* Implement TARGET_FRAME_POINTER_REQUIRED.  */
+ 
+ static bool
+ aarch64_frame_pointer_required ()
+ {
+   /* If the function needs to record the incoming value of PSTATE.SM,
+      make sure that the slot is accessible from the frame pointer.  */
+   return aarch64_need_old_pstate_sm ();
+ }
+ 
  static bool
  aarch64_can_eliminate (const int from ATTRIBUTE_UNUSED, const int to)
  {
*************** aarch64_can_eliminate (const int from AT
*** 12740,12763 ****
  poly_int64
  aarch64_initial_elimination_offset (unsigned from, unsigned to)
  {
    if (to == HARD_FRAME_POINTER_REGNUM)
      {
        if (from == ARG_POINTER_REGNUM)
! 	return cfun->machine->frame.hard_fp_offset;
  
        if (from == FRAME_POINTER_REGNUM)
! 	return cfun->machine->frame.hard_fp_offset
! 	       - cfun->machine->frame.locals_offset;
      }
  
    if (to == STACK_POINTER_REGNUM)
      {
        if (from == FRAME_POINTER_REGNUM)
! 	  return cfun->machine->frame.frame_size
! 		 - cfun->machine->frame.locals_offset;
      }
  
!   return cfun->machine->frame.frame_size;
  }
  
  
--- 12888,12911 ----
  poly_int64
  aarch64_initial_elimination_offset (unsigned from, unsigned to)
  {
+   aarch64_frame &frame = cfun->machine->frame;
+ 
    if (to == HARD_FRAME_POINTER_REGNUM)
      {
        if (from == ARG_POINTER_REGNUM)
! 	return frame.bytes_above_hard_fp;
  
        if (from == FRAME_POINTER_REGNUM)
! 	return frame.bytes_above_hard_fp - frame.bytes_above_locals;
      }
  
    if (to == STACK_POINTER_REGNUM)
      {
        if (from == FRAME_POINTER_REGNUM)
! 	return frame.frame_size - frame.bytes_above_locals;
      }
  
!   return frame.frame_size;
  }
  
  
*************** aarch64_class_max_nregs (reg_class_t reg
*** 12866,12871 ****
--- 13014,13021 ----
    unsigned int nregs, vec_flags;
    switch (regclass)
      {
+     case W8_W11_REGS:
+     case W12_W15_REGS:
      case STUB_REGS:
      case TAILCALL_ADDR_REGS:
      case POINTER_REGS:
*************** aarch64_class_max_nregs (reg_class_t reg
*** 12880,12894 ****
  	  && constant_multiple_p (GET_MODE_SIZE (mode),
  				  aarch64_vl_bytes (mode, vec_flags), &nregs))
  	return nregs;
        return (vec_flags & VEC_ADVSIMD
  	      ? CEIL (lowest_size, UNITS_PER_VREG)
  	      : CEIL (lowest_size, UNITS_PER_WORD));
!     case STACK_REG:
      case PR_REGS:
      case PR_LO_REGS:
      case PR_HI_REGS:
      case FFR_REGS:
      case PR_AND_FFR_REGS:
        return 1;
  
      case NO_REGS:
--- 13030,13050 ----
  	  && constant_multiple_p (GET_MODE_SIZE (mode),
  				  aarch64_vl_bytes (mode, vec_flags), &nregs))
  	return nregs;
+       if (vec_flags == (VEC_ADVSIMD | VEC_STRUCT | VEC_PARTIAL))
+ 	return GET_MODE_SIZE (mode).to_constant () / 8;
        return (vec_flags & VEC_ADVSIMD
  	      ? CEIL (lowest_size, UNITS_PER_VREG)
  	      : CEIL (lowest_size, UNITS_PER_WORD));
! 
      case PR_REGS:
      case PR_LO_REGS:
      case PR_HI_REGS:
+       return mode == VNx32BImode ? 2 : 1;
+ 
+     case STACK_REG:
      case FFR_REGS:
      case PR_AND_FFR_REGS:
+     case FAKE_REGS:
        return 1;
  
      case NO_REGS:
*************** aarch64_output_casesi (rtx *operands)
*** 13033,13038 ****
--- 13189,13243 ----
    return "";
  }
  
+ /* Return the asm string for an SME ZERO instruction whose 8-bit mask
+    operand is MASK.  */
+ const char *
+ aarch64_output_sme_zero_za (rtx mask)
+ {
+   auto mask_val = UINTVAL (mask);
+   if (mask_val == 0)
+     return "zero\t{}";
+ 
+   if (mask_val == 0xff)
+     return "zero\t{ za }";
+ 
+   static constexpr struct { unsigned char mask; char letter; } tiles[] = {
+     { 0xff, 'b' },
+     { 0x55, 'h' },
+     { 0x11, 's' },
+     { 0x01, 'd' }
+   };
+   /* The last entry in the list has the form "za7.d }", but that's the
+      same length as "za7.d, ".  */
+   static char buffer[sizeof("zero\t{ ") + sizeof ("za7.d, ") * 8 + 1];
+   for (auto &tile : tiles)
+     {
+       unsigned int tile_mask = tile.mask;
+       unsigned int tile_index = 0;
+       unsigned int i = snprintf (buffer, sizeof (buffer), "zero\t");
+       const char *prefix = "{ ";
+       auto remaining_mask = mask_val;
+       while (tile_mask < 0x100)
+ 	{
+ 	  if ((remaining_mask & tile_mask) == tile_mask)
+ 	    {
+ 	      i += snprintf (buffer + i, sizeof (buffer) - i, "%sza%d.%c",
+ 			     prefix, tile_index, tile.letter);
+ 	      prefix = ", ";
+ 	      remaining_mask &= ~tile_mask;
+ 	    }
+ 	  tile_mask <<= 1;
+ 	  tile_index += 1;
+ 	}
+       if (remaining_mask == 0)
+ 	{
+ 	  gcc_assert (i + 3 <= sizeof (buffer));
+ 	  snprintf (buffer + i, sizeof (buffer) - i, " }");
+ 	  return buffer;
+ 	}
+     }
+   gcc_unreachable ();
+ }
  
  /* Return size in bits of an arithmetic operand which is shifted/scaled and
     masked such that it is suitable for a UXTB, UXTH, or UXTW extend
*************** aarch64_if_then_else_costs (rtx op0, rtx
*** 13716,13721 ****
--- 13921,13938 ----
  	    /* CSINV/NEG with zero extend + const 0 (*csinv3_uxtw_insn3).  */
  	    op1 = XEXP (inner, 0);
  	}
+       else if (op1 == constm1_rtx || op1 == const1_rtx)
+ 	{
+ 	  /* Use CSINV or CSINC.  */
+ 	  *cost += rtx_cost (op2, VOIDmode, IF_THEN_ELSE, 2, speed);
+ 	  return true;
+ 	}
+       else if (op2 == constm1_rtx || op2 == const1_rtx)
+ 	{
+ 	  /* Use CSINV or CSINC.  */
+ 	  *cost += rtx_cost (op1, VOIDmode, IF_THEN_ELSE, 1, speed);
+ 	  return true;
+ 	}
  
        *cost += rtx_cost (op1, VOIDmode, IF_THEN_ELSE, 1, speed);
        *cost += rtx_cost (op2, VOIDmode, IF_THEN_ELSE, 2, speed);
*************** aarch64_masks_and_shift_for_bfi_p (scala
*** 13815,13820 ****
--- 14032,14062 ----
    return (t == (t & -t));
  }
  
+ /* Return true if X is an RTX representing an operation in the ABD family
+    of instructions.  */
+ 
+ static bool
+ aarch64_abd_rtx_p (rtx x)
+ {
+   if (GET_CODE (x) != MINUS)
+     return false;
+   rtx max_arm = XEXP (x, 0);
+   rtx min_arm = XEXP (x, 1);
+   if (GET_CODE (max_arm) != SMAX && GET_CODE (max_arm) != UMAX)
+     return false;
+   bool signed_p = GET_CODE (max_arm) == SMAX;
+   if (signed_p && GET_CODE (min_arm) != SMIN)
+     return false;
+   else if (!signed_p && GET_CODE (min_arm) != UMIN)
+     return false;
+ 
+   rtx maxop0 = XEXP (max_arm, 0);
+   rtx maxop1 = XEXP (max_arm, 1);
+   rtx minop0 = XEXP (min_arm, 0);
+   rtx minop1 = XEXP (min_arm, 1);
+   return rtx_equal_p (maxop0, minop0) && rtx_equal_p (maxop1, minop1);
+ }
+ 
  /* Calculate the cost of calculating X, storing it in *COST.  Result
     is true if the total cost of the operation has now been calculated.  */
  static bool
*************** aarch64_rtx_costs (rtx x, machine_mode m
*** 14022,14027 ****
--- 14264,14290 ----
  
        if (VECTOR_MODE_P (mode))
  	{
+ 	  /* Many vector comparison operations are represented as NEG
+ 	     of a comparison.  */
+ 	  if (COMPARISON_P (op0))
+ 	    {
+ 	      rtx op00 = XEXP (op0, 0);
+ 	      rtx op01 = XEXP (op0, 1);
+ 	      machine_mode inner_mode = GET_MODE (op00);
+ 	      /* FACGE/FACGT.  */
+ 	      if (GET_MODE_CLASS (inner_mode) == MODE_VECTOR_FLOAT
+ 		  && GET_CODE (op00) == ABS
+ 		  && GET_CODE (op01) == ABS)
+ 		{
+ 		  op00 = XEXP (op00, 0);
+ 		  op01 = XEXP (op01, 0);
+ 		}
+ 	      *cost += rtx_cost (op00, inner_mode, GET_CODE (op0), 0, speed);
+ 	      *cost += rtx_cost (op01, inner_mode, GET_CODE (op0), 1, speed);
+ 	      if (speed)
+ 		*cost += extra_cost->vect.alu;
+ 	      return true;
+ 	    }
  	  if (speed)
  	    {
  	      /* FNEG.  */
*************** aarch64_rtx_costs (rtx x, machine_mode m
*** 14211,14221 ****
  cost_minus:
  	if (VECTOR_MODE_P (mode))
  	  {
- 	    /* SUBL2 and SUBW2.  */
  	    unsigned int vec_flags = aarch64_classify_vector_mode (mode);
  	    if (TARGET_SIMD && (vec_flags & VEC_ADVSIMD))
  	      {
! 		/* The select-operand-high-half versions of the sub instruction
  		   have the same cost as the regular three vector version -
  		   don't add the costs of the select into the costs of the sub.
  		   */
--- 14474,14493 ----
  cost_minus:
  	if (VECTOR_MODE_P (mode))
  	  {
  	    unsigned int vec_flags = aarch64_classify_vector_mode (mode);
  	    if (TARGET_SIMD && (vec_flags & VEC_ADVSIMD))
  	      {
! 		/* Recognise the SABD and UABD operation here.
! 		   Recursion from the PLUS case will catch the accumulating
! 		   forms.  */
! 		if (aarch64_abd_rtx_p (x))
! 		  {
! 		    if (speed)
! 		      *cost += extra_cost->vect.alu;
! 		    return true;
! 		  }
! 		  /* SUBL2 and SUBW2.
! 		   The select-operand-high-half versions of the sub instruction
  		   have the same cost as the regular three vector version -
  		   don't add the costs of the select into the costs of the sub.
  		   */
*************** cost_plus:
*** 14673,14678 ****
--- 14945,14954 ----
  	}
        return false;
  
+     case ROTATE:
+     case ROTATERT:
+     case LSHIFTRT:
+     case ASHIFTRT:
      case ASHIFT:
        op0 = XEXP (x, 0);
        op1 = XEXP (x, 1);
*************** cost_plus:
*** 14688,14695 ****
  		}
  	      else
  		{
! 		  /* LSL (immediate), UBMF, UBFIZ and friends.  These are all
! 		     aliases.  */
  		  *cost += extra_cost->alu.shift;
  		}
  	    }
--- 14964,14971 ----
  		}
  	      else
  		{
! 		  /* LSL (immediate), ASR (immediate), UBMF, UBFIZ and friends.
! 		     These are all aliases.  */
  		  *cost += extra_cost->alu.shift;
  		}
  	    }
*************** cost_plus:
*** 14713,14721 ****
  	  else
  	    {
  	      if (speed)
! 		/* LSLV.  */
  		*cost += extra_cost->alu.shift_reg;
  
  	      if (GET_CODE (op1) == AND && REG_P (XEXP (op1, 0))
  		  && CONST_INT_P (XEXP (op1, 1))
  		  && known_eq (INTVAL (XEXP (op1, 1)),
--- 14989,15001 ----
  	  else
  	    {
  	      if (speed)
! 		/* LSLV, ASRV.  */
  		*cost += extra_cost->alu.shift_reg;
  
+ 	       /* The register shift amount may be in a shorter mode expressed
+ 		  as a lowpart SUBREG.  For costing purposes just look inside.  */
+ 	      if (SUBREG_P (op1) && subreg_lowpart_p (op1))
+ 		op1 = SUBREG_REG (op1);
  	      if (GET_CODE (op1) == AND && REG_P (XEXP (op1, 0))
  		  && CONST_INT_P (XEXP (op1, 1))
  		  && known_eq (INTVAL (XEXP (op1, 1)),
*************** cost_plus:
*** 14730,14784 ****
  	  return false;  /* All arguments need to be in registers.  */
          }
  
-     case ROTATE:
-     case ROTATERT:
-     case LSHIFTRT:
-     case ASHIFTRT:
-       op0 = XEXP (x, 0);
-       op1 = XEXP (x, 1);
- 
-       if (CONST_INT_P (op1))
- 	{
- 	  /* ASR (immediate) and friends.  */
- 	  if (speed)
- 	    {
- 	      if (VECTOR_MODE_P (mode))
- 		*cost += extra_cost->vect.alu;
- 	      else
- 		*cost += extra_cost->alu.shift;
- 	    }
- 
- 	  *cost += rtx_cost (op0, mode, (enum rtx_code) code, 0, speed);
- 	  return true;
- 	}
-       else
- 	{
- 	  if (VECTOR_MODE_P (mode))
- 	    {
- 	      if (speed)
- 		/* Vector shift (register).  */
- 		*cost += extra_cost->vect.alu;
- 	    }
- 	  else
- 	    {
- 	      if (speed)
- 		/* ASR (register) and friends.  */
- 		*cost += extra_cost->alu.shift_reg;
- 
- 	      if (GET_CODE (op1) == AND && REG_P (XEXP (op1, 0))
- 		  && CONST_INT_P (XEXP (op1, 1))
- 		  && known_eq (INTVAL (XEXP (op1, 1)),
- 			       GET_MODE_BITSIZE (mode) - 1))
- 		{
- 		  *cost += rtx_cost (op0, mode, (rtx_code) code, 0, speed);
- 		  /* We already demanded XEXP (op1, 0) to be REG_P, so
- 		     don't recurse into it.  */
- 		  return true;
- 		}
- 	    }
- 	  return false;  /* All arguments need to be in registers.  */
- 	}
- 
      case SYMBOL_REF:
  
        if (aarch64_cmodel == AARCH64_CMODEL_LARGE
--- 15010,15015 ----
*************** aarch64_register_move_cost (machine_mode
*** 15208,15220 ****
    const struct cpu_regmove_cost *regmove_cost
      = aarch64_tune_params.regmove_cost;
  
!   /* Caller save and pointer regs are equivalent to GENERAL_REGS.  */
!   if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS
!       || to == STUB_REGS)
      to = GENERAL_REGS;
  
!   if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS
!       || from == STUB_REGS)
      from = GENERAL_REGS;
  
    /* Make RDFFR very expensive.  In particular, if we know that the FFR
--- 15439,15449 ----
    const struct cpu_regmove_cost *regmove_cost
      = aarch64_tune_params.regmove_cost;
  
!   /* Trest any subset of POINTER_REGS as though it were GENERAL_REGS.  */
!   if (reg_class_subset_p (to, POINTER_REGS))
      to = GENERAL_REGS;
  
!   if (reg_class_subset_p (from, POINTER_REGS))
      from = GENERAL_REGS;
  
    /* Make RDFFR very expensive.  In particular, if we know that the FFR
*************** aarch64_register_move_cost (machine_mode
*** 15252,15258 ****
  	 secondary reload.  A general register is used as a scratch to move
  	 the upper DI value and the lower DI value is moved directly,
  	 hence the cost is the sum of three moves. */
!       if (! TARGET_SIMD)
  	return regmove_cost->GP2FP + regmove_cost->FP2GP + regmove_cost->FP2FP;
  
        return regmove_cost->FP2FP;
--- 15481,15487 ----
  	 secondary reload.  A general register is used as a scratch to move
  	 the upper DI value and the lower DI value is moved directly,
  	 hence the cost is the sum of three moves. */
!       if (!TARGET_SIMD && !TARGET_SVE)
  	return regmove_cost->GP2FP + regmove_cost->FP2GP + regmove_cost->FP2FP;
  
        return regmove_cost->FP2FP;
*************** aarch64_memory_move_cost (machine_mode m
*** 15302,15307 ****
--- 15531,15558 ----
  	  : aarch64_tune_params.memmov_cost.store_int);
  }
  
+ /* Implement TARGET_INSN_COST.  We have the opportunity to do something
+    much more productive here, such as using insn attributes to cost things.
+    But we don't, not yet.
+ 
+    The main point of this current definition is to make calling insn_cost
+    on one instruction equivalent to calling seq_cost on a sequence that
+    contains only that instruction.  The default definition would instead
+    only look at SET_SRCs, ignoring SET_DESTs.
+ 
+    This ensures that, for example, storing a 128-bit zero vector is more
+    expensive than storing a 128-bit vector register.  A move of zero
+    into a 128-bit vector register followed by multiple stores of that
+    register is then cheaper than multiple stores of zero (which would
+    use STP of XZR).  This in turn allows STP Qs to be formed.  */
+ static int
+ aarch64_insn_cost (rtx_insn *insn, bool speed)
+ {
+   if (rtx set = single_set (insn))
+     return set_rtx_cost (set, speed);
+   return pattern_cost (PATTERN (insn), speed);
+ }
+ 
  /* Implement TARGET_INIT_BUILTINS.  */
  static void
  aarch64_init_builtins ()
*************** private:
*** 15948,15953 ****
--- 16199,16213 ----
       leaving a vectorization of { elts }.  */
    bool m_stores_to_vector_load_decl = false;
  
+   /* Non-zero if the last operation we costed is a vector promotion or demotion.
+      In this case the value is the number of insns in the last operation.
+ 
+      On AArch64 vector promotion and demotions require us to first widen or
+      narrow the input and only after that emit conversion instructions.  For
+      costing this means we need to emit the cost of the final conversions as
+      well.  */
+   unsigned int m_num_last_promote_demote = 0;
+ 
    /* - If M_VEC_FLAGS is zero then we're costing the original scalar code.
       - If M_VEC_FLAGS & VEC_ADVSIMD is nonzero then we're costing Advanced
         SIMD code.
*************** aarch64_vector_costs::analyze_loop_vinfo
*** 16146,16166 ****
    /* Detect whether we're vectorizing for SVE and should apply the unrolling
       heuristic described above m_unrolled_advsimd_niters.  */
    record_potential_advsimd_unrolling (loop_vinfo);
- 
-   /* Record the issue information for any SVE WHILE instructions that the
-      loop needs.  */
-   if (!m_ops.is_empty () && !LOOP_VINFO_MASKS (loop_vinfo).is_empty ())
-     {
-       unsigned int num_masks = 0;
-       rgroup_controls *rgm;
-       unsigned int num_vectors_m1;
-       FOR_EACH_VEC_ELT (LOOP_VINFO_MASKS (loop_vinfo), num_vectors_m1, rgm)
- 	if (rgm->type)
- 	  num_masks += num_vectors_m1 + 1;
-       for (auto &ops : m_ops)
- 	if (auto *issue = ops.sve_issue_info ())
- 	  ops.pred_ops += num_masks * issue->while_pred_ops;
-     }
  }
  
  /* Implement targetm.vectorize.builtin_vectorization_cost.  */
--- 16406,16411 ----
*************** aarch64_multiply_add_p (vec_info *vinfo,
*** 16297,16320 ****
    if (code != PLUS_EXPR && code != MINUS_EXPR)
      return false;
  
!   if (CONSTANT_CLASS_P (gimple_assign_rhs1 (assign))
!       || CONSTANT_CLASS_P (gimple_assign_rhs2 (assign)))
!     return false;
! 
!   for (int i = 1; i < 3; ++i)
      {
        tree rhs = gimple_op (assign, i);
        /* ??? Should we try to check for a single use as well?  */
        if (TREE_CODE (rhs) != SSA_NAME)
! 	continue;
  
        stmt_vec_info def_stmt_info = vinfo->lookup_def (rhs);
        if (!def_stmt_info
  	  || STMT_VINFO_DEF_TYPE (def_stmt_info) != vect_internal_def)
! 	continue;
        gassign *rhs_assign = dyn_cast<gassign *> (def_stmt_info->stmt);
        if (!rhs_assign || gimple_assign_rhs_code (rhs_assign) != MULT_EXPR)
! 	continue;
  
        if (vec_flags & VEC_ADVSIMD)
  	{
--- 16542,16561 ----
    if (code != PLUS_EXPR && code != MINUS_EXPR)
      return false;
  
!   auto is_mul_result = [&](int i)
      {
        tree rhs = gimple_op (assign, i);
        /* ??? Should we try to check for a single use as well?  */
        if (TREE_CODE (rhs) != SSA_NAME)
! 	return false;
  
        stmt_vec_info def_stmt_info = vinfo->lookup_def (rhs);
        if (!def_stmt_info
  	  || STMT_VINFO_DEF_TYPE (def_stmt_info) != vect_internal_def)
! 	return false;
        gassign *rhs_assign = dyn_cast<gassign *> (def_stmt_info->stmt);
        if (!rhs_assign || gimple_assign_rhs_code (rhs_assign) != MULT_EXPR)
! 	return false;
  
        if (vec_flags & VEC_ADVSIMD)
  	{
*************** aarch64_multiply_add_p (vec_info *vinfo,
*** 16328,16338 ****
  	    return false;
  	  def_stmt_info = vinfo->lookup_def (rhs);
  	  if (!def_stmt_info
! 	      || STMT_VINFO_DEF_TYPE (def_stmt_info) == vect_external_def)
  	    return false;
  	}
  
        return true;
      }
    return false;
  }
--- 16569,16634 ----
  	    return false;
  	  def_stmt_info = vinfo->lookup_def (rhs);
  	  if (!def_stmt_info
! 	      || STMT_VINFO_DEF_TYPE (def_stmt_info) == vect_external_def
! 	      || STMT_VINFO_DEF_TYPE (def_stmt_info) == vect_constant_def)
  	    return false;
  	}
  
        return true;
+     };
+ 
+   if (code == MINUS_EXPR && (vec_flags & VEC_ADVSIMD))
+     /* Advanced SIMD doesn't have FNMADD/FNMSUB/FNMLA/FNMLS, so the
+        multiplication must be on the second operand (to form an FMLS).
+        But if both operands are multiplications and the second operand
+        is used more than once, we'll instead negate the second operand
+        and use it as an accumulator for the first operand.  */
+     return (is_mul_result (2)
+ 	    && (has_single_use (gimple_assign_rhs2 (assign))
+ 		|| !is_mul_result (1)));
+ 
+   return is_mul_result (1) || is_mul_result (2);
+ }
+ 
+ /* Return true if STMT_INFO is the second part of a two-statement boolean AND
+    expression sequence that might be suitable for fusing into a
+    single instruction.  If VEC_FLAGS is zero, analyze the operation as
+    a scalar one, otherwise analyze it as an operation on vectors with those
+    VEC_* flags.  */
+ 
+ static bool
+ aarch64_bool_compound_p (vec_info *vinfo, stmt_vec_info stmt_info,
+ 			 unsigned int vec_flags)
+ {
+   gassign *assign = dyn_cast<gassign *> (stmt_info->stmt);
+   if (!assign
+       || gimple_assign_rhs_code (assign) != BIT_AND_EXPR
+       || !STMT_VINFO_VECTYPE (stmt_info)
+       || !VECTOR_BOOLEAN_TYPE_P (STMT_VINFO_VECTYPE (stmt_info)))
+     return false;
+ 
+   for (int i = 1; i < 3; ++i)
+     {
+       tree rhs = gimple_op (assign, i);
+ 
+       if (TREE_CODE (rhs) != SSA_NAME)
+ 	continue;
+ 
+       stmt_vec_info def_stmt_info = vinfo->lookup_def (rhs);
+       if (!def_stmt_info
+ 	  || STMT_VINFO_DEF_TYPE (def_stmt_info) != vect_internal_def)
+ 	continue;
+ 
+       gassign *rhs_assign = dyn_cast<gassign *> (def_stmt_info->stmt);
+       if (!rhs_assign
+ 	  || TREE_CODE_CLASS (gimple_assign_rhs_code (rhs_assign))
+ 		!= tcc_comparison)
+ 	continue;
+ 
+       if (vec_flags & VEC_ADVSIMD)
+ 	return false;
+ 
+       return true;
      }
    return false;
  }
*************** aarch64_sve_adjust_stmt_cost (class vec_
*** 16608,16615 ****
     and which when vectorized would operate on vector type VECTYPE.  Add the
     cost of any embedded operations.  */
  static fractional_cost
! aarch64_adjust_stmt_cost (vect_cost_for_stmt kind, stmt_vec_info stmt_info,
! 			  tree vectype, fractional_cost stmt_cost)
  {
    if (vectype)
      {
--- 16904,16912 ----
     and which when vectorized would operate on vector type VECTYPE.  Add the
     cost of any embedded operations.  */
  static fractional_cost
! aarch64_adjust_stmt_cost (vec_info *vinfo, vect_cost_for_stmt kind,
! 			  stmt_vec_info stmt_info, tree vectype,
! 			  unsigned vec_flags, fractional_cost stmt_cost)
  {
    if (vectype)
      {
*************** aarch64_adjust_stmt_cost (vect_cost_for_
*** 16632,16637 ****
--- 16929,16948 ----
  	  break;
  	}
  
+       gassign *assign = dyn_cast<gassign *> (STMT_VINFO_STMT (stmt_info));
+       if ((kind == scalar_stmt || kind == vector_stmt) && assign)
+ 	{
+ 	  /* For MLA we need to reduce the cost since MLA is 1 instruction.  */
+ 	  if (!vect_is_reduction (stmt_info)
+ 	      && aarch64_multiply_add_p (vinfo, stmt_info, vec_flags))
+ 	    return 0;
+ 
+ 	  /* For vector boolean ANDs with a compare operand we just need
+ 	     one insn.  */
+ 	  if (aarch64_bool_compound_p (vinfo, stmt_info, vec_flags))
+ 	    return 0;
+ 	}
+ 
        if (kind == vector_stmt || kind == vec_to_scalar)
  	if (tree cmp_type = vect_embedded_comparison_type (stmt_info))
  	  {
*************** aarch64_adjust_stmt_cost (vect_cost_for_
*** 16654,16659 ****
--- 16965,16986 ----
    return stmt_cost;
  }
  
+ /* Return true if STMT_INFO is part of a reduction that has the form:
+ 
+       r = r op ...;
+       r = r op ...;
+ 
+    with the single accumulator being read and written multiple times.  */
+ static bool
+ aarch64_force_single_cycle (vec_info *vinfo, stmt_vec_info stmt_info)
+ {
+   if (!STMT_VINFO_REDUC_DEF (stmt_info))
+     return false;
+ 
+   auto reduc_info = info_for_reduction (vinfo, stmt_info);
+   return STMT_VINFO_FORCE_SINGLE_CYCLE (reduc_info);
+ }
+ 
  /* COUNT, KIND and STMT_INFO are the same as for vector_costs::add_stmt_cost
     and they describe an operation in the body of a vector loop.  Record issue
     information relating to the vector operation in OPS.  */
*************** aarch64_vector_costs::count_ops (unsigne
*** 16675,16689 ****
      {
        unsigned int base
  	= aarch64_in_loop_reduction_latency (m_vinfo, stmt_info, m_vec_flags);
  
!       /* ??? Ideally we'd do COUNT reductions in parallel, but unfortunately
! 	 that's not yet the case.  */
!       ops->reduction_latency = MAX (ops->reduction_latency, base * count);
      }
  
-   /* Assume that multiply-adds will become a single operation.  */
-   if (stmt_info && aarch64_multiply_add_p (m_vinfo, stmt_info, m_vec_flags))
-     return;
  
    /* Count the basic operation cost associated with KIND.  */
    switch (kind)
--- 17002,17028 ----
      {
        unsigned int base
  	= aarch64_in_loop_reduction_latency (m_vinfo, stmt_info, m_vec_flags);
+       if (aarch64_force_single_cycle (m_vinfo, stmt_info))
+ 	/* ??? Ideally we'd use a tree to reduce the copies down to 1 vector,
+ 	   and then accumulate that, but at the moment the loop-carried
+ 	   dependency includes all copies.  */
+ 	ops->reduction_latency = MAX (ops->reduction_latency, base * count);
+       else
+ 	ops->reduction_latency = MAX (ops->reduction_latency, base);
+     }
  
!   if (stmt_info && (kind == scalar_stmt || kind == vector_stmt))
!     {
!       /* Assume that multiply-adds will become a single operation.  */
!       if (aarch64_multiply_add_p (m_vinfo, stmt_info, m_vec_flags))
! 	return;
! 
!       /* Assume that bool AND with compare operands will become a single
! 	 operation.  */
!       if (aarch64_bool_compound_p (m_vinfo, stmt_info, m_vec_flags))
! 	return;
      }
  
  
    /* Count the basic operation cost associated with KIND.  */
    switch (kind)
*************** aarch64_vector_costs::add_stmt_cost (int
*** 16924,16935 ****
      stmt_cost = aarch64_sve_adjust_stmt_cost (m_vinfo, kind, stmt_info,
  					      vectype, stmt_cost);
  
    if (stmt_info && aarch64_use_new_vector_costs_p ())
      {
        /* Account for any extra "embedded" costs that apply additively
  	 to the base cost calculated above.  */
!       stmt_cost = aarch64_adjust_stmt_cost (kind, stmt_info, vectype,
! 					    stmt_cost);
  
        /* If we're recording a nonzero vector loop body cost for the
  	 innermost loop, also estimate the operations that would need
--- 17263,17297 ----
      stmt_cost = aarch64_sve_adjust_stmt_cost (m_vinfo, kind, stmt_info,
  					      vectype, stmt_cost);
  
+   /*  Vector promotion and demotion requires us to widen the operation first
+       and only after that perform the conversion.  Unfortunately the mid-end
+       expects this to be doable as a single operation and doesn't pass on
+       enough context here for us to tell which operation is happening.  To
+       account for this we count every promote-demote operation twice and if
+       the previously costed operation was also a promote-demote we reduce
+       the cost of the currently being costed operation to simulate the final
+       conversion cost.  Note that for SVE we can do better here if the converted
+       value comes from a load since the widening load would consume the widening
+       operations.  However since we're in stage 3 we can't change the helper
+       vect_is_extending_load and duplicating the code seems not useful.  */
+   gassign *assign = NULL;
+   if (kind == vec_promote_demote
+       && (assign = dyn_cast <gassign *> (STMT_VINFO_STMT (stmt_info)))
+       && gimple_assign_rhs_code (assign) == FLOAT_EXPR)
+     {
+       auto new_count = count * 2 - m_num_last_promote_demote;
+       m_num_last_promote_demote = count;
+       count = new_count;
+     }
+   else
+     m_num_last_promote_demote = 0;
+ 
    if (stmt_info && aarch64_use_new_vector_costs_p ())
      {
        /* Account for any extra "embedded" costs that apply additively
  	 to the base cost calculated above.  */
!       stmt_cost = aarch64_adjust_stmt_cost (m_vinfo, kind, stmt_info,
! 					    vectype, m_vec_flags, stmt_cost);
  
        /* If we're recording a nonzero vector loop body cost for the
  	 innermost loop, also estimate the operations that would need
*************** adjust_body_cost (loop_vec_info loop_vin
*** 17251,17259 ****
  void
  aarch64_vector_costs::finish_cost (const vector_costs *uncast_scalar_costs)
  {
    auto *scalar_costs
      = static_cast<const aarch64_vector_costs *> (uncast_scalar_costs);
-   loop_vec_info loop_vinfo = dyn_cast<loop_vec_info> (m_vinfo);
    if (loop_vinfo
        && m_vec_flags
        && aarch64_use_new_vector_costs_p ())
--- 17613,17639 ----
  void
  aarch64_vector_costs::finish_cost (const vector_costs *uncast_scalar_costs)
  {
+   /* Record the issue information for any SVE WHILE instructions that the
+      loop needs.  */
+   loop_vec_info loop_vinfo = dyn_cast<loop_vec_info> (m_vinfo);
+   if (!m_ops.is_empty ()
+       && loop_vinfo
+       && LOOP_VINFO_FULLY_MASKED_P (loop_vinfo))
+     {
+       unsigned int num_masks = 0;
+       rgroup_controls *rgm;
+       unsigned int num_vectors_m1;
+       FOR_EACH_VEC_ELT (LOOP_VINFO_MASKS (loop_vinfo).rgc_vec,
+ 			num_vectors_m1, rgm)
+ 	if (rgm->type)
+ 	  num_masks += num_vectors_m1 + 1;
+       for (auto &ops : m_ops)
+ 	if (auto *issue = ops.sve_issue_info ())
+ 	  ops.pred_ops += num_masks * issue->while_pred_ops;
+     }
+ 
    auto *scalar_costs
      = static_cast<const aarch64_vector_costs *> (uncast_scalar_costs);
    if (loop_vinfo
        && m_vec_flags
        && aarch64_use_new_vector_costs_p ())
*************** aarch64_adjust_generic_arch_tuning (stru
*** 17807,17818 ****
  static void
  aarch64_override_options_after_change_1 (struct gcc_options *opts)
  {
-   if (accepted_branch_protection_string)
-     {
-       opts->x_aarch64_branch_protection_string
- 	= xstrdup (accepted_branch_protection_string);
-     }
- 
    /* PR 70044: We have to be careful about being called multiple times for the
       same function.  This means all changes should be repeatable.  */
  
--- 18187,18192 ----
*************** aarch64_override_options_internal (struc
*** 17880,17885 ****
--- 18254,18265 ----
      aarch64_parse_override_string (opts->x_aarch64_override_tune_string,
  				   &aarch64_tune_params);
  
+   if (opts->x_aarch64_ldp_policy_param)
+     aarch64_tune_params.ldp_policy_model = opts->x_aarch64_ldp_policy_param;
+ 
+   if (opts->x_aarch64_stp_policy_param)
+     aarch64_tune_params.stp_policy_model = opts->x_aarch64_stp_policy_param;
+ 
    /* This target defaults to strict volatile bitfields.  */
    if (opts->x_flag_strict_volatile_bitfields < 0 && abi_version_at_least (2))
      opts->x_flag_strict_volatile_bitfields = 1;
*************** aarch64_override_options_internal (struc
*** 17923,17930 ****
--- 18303,18328 ----
        && !fixed_regs[R18_REGNUM])
      error ("%<-fsanitize=shadow-call-stack%> requires %<-ffixed-x18%>");
  
+   if ((opts->x_aarch64_isa_flags & (AARCH64_FL_SM_ON | AARCH64_FL_ZA_ON))
+       && !(opts->x_aarch64_isa_flags & AARCH64_FL_SME))
+     {
+       if (opts->x_aarch64_isa_flags & AARCH64_FL_SM_ON)
+ 	error ("streaming functions require the ISA extension %qs", "sme");
+       else
+ 	error ("functions with SME state require the ISA extension %qs",
+ 	       "sme");
+       inform (input_location, "you can enable %qs using the command-line"
+ 	      " option %<-march%>, or by using the %<target%>"
+ 	      " attribute or pragma", "sme");
+       opts->x_target_flags &= ~MASK_GENERAL_REGS_ONLY;
+       auto new_flags = (opts->x_aarch64_asm_isa_flags
+ 			| feature_deps::SME ().enable);
+       aarch64_set_asm_isa_flags (opts, new_flags);
+     }
+ 
    initialize_aarch64_code_model (opts);
    initialize_aarch64_tls_size (opts);
+   aarch64_tpidr_register = opts->x_aarch64_tpidr_reg;
  
    int queue_depth = 0;
    switch (aarch64_tune_params.autoprefetcher_model)
*************** aarch64_override_options_internal (struc
*** 17947,17958 ****
    SET_OPTION_IF_UNSET (opts, &global_options_set,
  		       param_sched_autopref_queue_depth, queue_depth);
  
-   /* If using Advanced SIMD only for autovectorization disable SVE vector costs
-      comparison.  */
-   if (aarch64_autovec_preference == 1)
-     SET_OPTION_IF_UNSET (opts, &global_options_set,
- 			 aarch64_sve_compare_costs, 0);
- 
    /* Set up parameters to be used in prefetching algorithm.  Do not
       override the defaults unless we are tuning for a core we have
       researched values for.  */
--- 18345,18350 ----
*************** aarch64_override_options_internal (struc
*** 18039,18044 ****
--- 18431,18448 ----
        && opts->x_optimize >= aarch64_tune_params.prefetch->default_opt_level)
      opts->x_flag_prefetch_loop_arrays = 1;
  
+   /* Avoid loop-dependant FMA chains.  */
+   if (aarch64_tune_params.extra_tuning_flags
+       & AARCH64_EXTRA_TUNE_AVOID_CROSS_LOOP_FMA)
+     SET_OPTION_IF_UNSET (opts, &global_options_set, param_avoid_fma_max_bits,
+ 			 512);
+ 
+   /* Consider fully pipelined FMA in reassociation.  */
+   if (aarch64_tune_params.extra_tuning_flags
+       & AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA)
+     SET_OPTION_IF_UNSET (opts, &global_options_set, param_fully_pipelined_fma,
+ 			 1);
+ 
    aarch64_override_options_after_change_1 (opts);
  }
  
*************** aarch64_validate_mcpu (const char *str,
*** 18134,18139 ****
--- 18538,18549 ----
        case AARCH_PARSE_INVALID_ARG:
  	error ("unknown value %qs for %<-mcpu%>", str);
  	aarch64_print_hint_for_core (str);
+ 	/* A common user error is confusing -march and -mcpu.
+ 	   If the -mcpu string matches a known architecture then suggest
+ 	   -march=.  */
+ 	parse_res = aarch64_parse_arch (str, res, isa_flags, &invalid_extension);
+ 	if (parse_res == AARCH_PARSE_OK)
+ 	  inform (input_location, "did you mean %<-march=%s%>?", str);
  	break;
        case AARCH_PARSE_INVALID_FEATURE:
  	error ("invalid feature modifier %qs in %<-mcpu=%s%>",
*************** aarch64_set_asm_isa_flags (aarch64_featu
*** 18321,18326 ****
--- 18731,18792 ----
    aarch64_set_asm_isa_flags (&global_options, flags);
  }
  
+ static void
+ aarch64_handle_no_branch_protection (void)
+ {
+   aarch_ra_sign_scope = AARCH_FUNCTION_NONE;
+   aarch_enable_bti = 0;
+ }
+ 
+ static void
+ aarch64_handle_standard_branch_protection (void)
+ {
+   aarch_ra_sign_scope = AARCH_FUNCTION_NON_LEAF;
+   aarch64_ra_sign_key = AARCH64_KEY_A;
+   aarch_enable_bti = 1;
+ }
+ 
+ static void
+ aarch64_handle_pac_ret_protection (void)
+ {
+   aarch_ra_sign_scope = AARCH_FUNCTION_NON_LEAF;
+   aarch64_ra_sign_key = AARCH64_KEY_A;
+ }
+ 
+ static void
+ aarch64_handle_pac_ret_leaf (void)
+ {
+   aarch_ra_sign_scope = AARCH_FUNCTION_ALL;
+ }
+ 
+ static void
+ aarch64_handle_pac_ret_b_key (void)
+ {
+   aarch64_ra_sign_key = AARCH64_KEY_B;
+ }
+ 
+ static void
+ aarch64_handle_bti_protection (void)
+ {
+   aarch_enable_bti = 1;
+ }
+ 
+ static const struct aarch_branch_protect_type aarch64_pac_ret_subtypes[] = {
+   { "leaf", false, aarch64_handle_pac_ret_leaf, NULL, 0 },
+   { "b-key", false, aarch64_handle_pac_ret_b_key, NULL, 0 },
+   { NULL, false, NULL, NULL, 0 }
+ };
+ 
+ static const struct aarch_branch_protect_type aarch64_branch_protect_types[] =
+ {
+   { "none", true, aarch64_handle_no_branch_protection, NULL, 0 },
+   { "standard", true, aarch64_handle_standard_branch_protection, NULL, 0 },
+   { "pac-ret", false, aarch64_handle_pac_ret_protection,
+     aarch64_pac_ret_subtypes, ARRAY_SIZE (aarch64_pac_ret_subtypes) },
+   { "bti", false, aarch64_handle_bti_protection, NULL, 0 },
+   { NULL, false, NULL, NULL, 0 }
+ };
+ 
  /* Implement TARGET_OPTION_OVERRIDE.  This is called once in the beginning
     and is used to parse the -m{cpu,tune,arch} strings and setup the initial
     tuning structs.  In particular it must set selected_tune and
*************** aarch64_override_options (void)
*** 18343,18349 ****
      aarch64_validate_sls_mitigation (aarch64_harden_sls_string);
  
    if (aarch64_branch_protection_string)
!     aarch_validate_mbranch_protection (aarch64_branch_protection_string);
  
    /* -mcpu=CPU is shorthand for -march=ARCH_FOR_CPU, -mtune=CPU.
       If either of -march or -mtune is given, they override their
--- 18809,18817 ----
      aarch64_validate_sls_mitigation (aarch64_harden_sls_string);
  
    if (aarch64_branch_protection_string)
!     aarch_validate_mbranch_protection (aarch64_branch_protect_types,
! 				       aarch64_branch_protection_string,
! 				       "-mbranch-protection=");
  
    /* -mcpu=CPU is shorthand for -march=ARCH_FOR_CPU, -mtune=CPU.
       If either of -march or -mtune is given, they override their
*************** aarch64_override_options (void)
*** 18361,18397 ****
    SUBTARGET_OVERRIDE_OPTIONS;
  #endif
  
    if (cpu && arch)
      {
        /* If both -mcpu and -march are specified, warn if they are not
! 	 architecturally compatible and prefer the -march ISA flags.  */
!       if (arch->arch != cpu->arch)
  	{
! 	  warning (0, "switch %<-mcpu=%s%> conflicts with %<-march=%s%> switch",
  		       aarch64_cpu_string,
! 		       aarch64_arch_string);
  	}
  
        selected_arch = arch->arch;
!       aarch64_set_asm_isa_flags (arch_isa);
      }
    else if (cpu)
      {
        selected_arch = cpu->arch;
!       aarch64_set_asm_isa_flags (cpu_isa);
      }
    else if (arch)
      {
        cpu = &all_cores[arch->ident];
        selected_arch = arch->arch;
!       aarch64_set_asm_isa_flags (arch_isa);
      }
    else
      {
        /* No -mcpu or -march specified, so use the default CPU.  */
        cpu = &all_cores[TARGET_CPU_DEFAULT];
        selected_arch = cpu->arch;
!       aarch64_set_asm_isa_flags (cpu->flags);
      }
  
    selected_tune = tune ? tune->ident : cpu->ident;
--- 18829,18876 ----
    SUBTARGET_OVERRIDE_OPTIONS;
  #endif
  
+   auto isa_mode = AARCH64_FL_DEFAULT_ISA_MODE;
    if (cpu && arch)
      {
        /* If both -mcpu and -march are specified, warn if they are not
! 	 feature compatible.  feature compatible means that the inclusion of the
! 	 cpu features would end up disabling an achitecture feature.  In
! 	 otherwords the cpu features need to be a strict superset of the arch
! 	 features and if so prefer the -march ISA flags.  */
!       auto full_arch_flags = arch->flags | arch_isa;
!       auto full_cpu_flags = cpu->flags | cpu_isa;
!       if (~full_cpu_flags & full_arch_flags)
  	{
! 	  std::string ext_diff
! 	    = aarch64_get_extension_string_for_isa_flags (full_arch_flags,
! 							  full_cpu_flags);
! 	  warning (0, "switch %<-mcpu=%s%> conflicts with %<-march=%s%> switch "
! 		      "and resulted in options %<%s%> being added",
  		       aarch64_cpu_string,
! 		       aarch64_arch_string,
! 		       ext_diff.c_str ());
  	}
  
        selected_arch = arch->arch;
!       aarch64_set_asm_isa_flags (arch_isa | isa_mode);
      }
    else if (cpu)
      {
        selected_arch = cpu->arch;
!       aarch64_set_asm_isa_flags (cpu_isa | isa_mode);
      }
    else if (arch)
      {
        cpu = &all_cores[arch->ident];
        selected_arch = arch->arch;
!       aarch64_set_asm_isa_flags (arch_isa | isa_mode);
      }
    else
      {
        /* No -mcpu or -march specified, so use the default CPU.  */
        cpu = &all_cores[TARGET_CPU_DEFAULT];
        selected_arch = cpu->arch;
!       aarch64_set_asm_isa_flags (cpu->flags | isa_mode);
      }
  
    selected_tune = tune ? tune->ident : cpu->ident;
*************** aarch64_override_options (void)
*** 18408,18414 ****
    /* Return address signing is currently not supported for ILP32 targets.  For
       LP64 targets use the configured option in the absence of a command-line
       option for -mbranch-protection.  */
!   if (!TARGET_ILP32 && accepted_branch_protection_string == NULL)
      {
  #ifdef TARGET_ENABLE_PAC_RET
        aarch_ra_sign_scope = AARCH_FUNCTION_NON_LEAF;
--- 18887,18893 ----
    /* Return address signing is currently not supported for ILP32 targets.  For
       LP64 targets use the configured option in the absence of a command-line
       option for -mbranch-protection.  */
!   if (!TARGET_ILP32 && aarch64_branch_protection_string == NULL)
      {
  #ifdef TARGET_ENABLE_PAC_RET
        aarch_ra_sign_scope = AARCH_FUNCTION_NON_LEAF;
*************** aarch64_save_restore_target_globals (tre
*** 18564,18569 ****
--- 19043,19063 ----
      TREE_TARGET_GLOBALS (new_tree) = save_target_globals_default_opts ();
  }
  
+ /* Return the target_option_node for FNDECL, or the current options
+    if FNDECL is null.  */
+ 
+ static tree
+ aarch64_fndecl_options (tree fndecl)
+ {
+   if (!fndecl)
+     return target_option_current_node;
+ 
+   if (tree options = DECL_FUNCTION_SPECIFIC_TARGET (fndecl))
+     return options;
+ 
+   return target_option_default_node;
+ }
+ 
  /* Implement TARGET_SET_CURRENT_FUNCTION.  Unpack the codegen decisions
     like tuning and ISA features from the DECL_FUNCTION_SPECIFIC_TARGET
     of the function, if such exists.  This function may be called multiple
*************** aarch64_save_restore_target_globals (tre
*** 18573,18597 ****
  static void
  aarch64_set_current_function (tree fndecl)
  {
!   if (!fndecl || fndecl == aarch64_previous_fndecl)
!     return;
! 
!   tree old_tree = (aarch64_previous_fndecl
! 		   ? DECL_FUNCTION_SPECIFIC_TARGET (aarch64_previous_fndecl)
! 		   : NULL_TREE);
  
!   tree new_tree = DECL_FUNCTION_SPECIFIC_TARGET (fndecl);
  
!   /* If current function has no attributes but the previous one did,
!      use the default node.  */
!   if (!new_tree && old_tree)
!     new_tree = target_option_default_node;
  
    /* If nothing to do, return.  #pragma GCC reset or #pragma GCC pop to
       the default have been handled by aarch64_save_restore_target_globals from
       aarch64_pragma_target_parse.  */
!   if (old_tree == new_tree)
!     return;
  
    aarch64_previous_fndecl = fndecl;
  
--- 19067,19104 ----
  static void
  aarch64_set_current_function (tree fndecl)
  {
!   tree old_tree = aarch64_fndecl_options (aarch64_previous_fndecl);
!   tree new_tree = aarch64_fndecl_options (fndecl);
  
!   auto new_isa_mode = (fndecl
! 		       ? aarch64_fndecl_isa_mode (fndecl)
! 		       : AARCH64_FL_DEFAULT_ISA_MODE);
!   auto isa_flags = TREE_TARGET_OPTION (new_tree)->x_aarch64_isa_flags;
  
!   static bool reported_zt0_p;
!   if (!reported_zt0_p
!       && !(isa_flags & AARCH64_FL_SME2)
!       && fndecl
!       && aarch64_fndecl_has_state (fndecl, "zt0"))
!     {
!       error ("functions with %qs state require the ISA extension %qs",
! 	     "zt0", "sme2");
!       inform (input_location, "you can enable %qs using the command-line"
! 	      " option %<-march%>, or by using the %<target%>"
! 	      " attribute or pragma", "sme2");
!       reported_zt0_p = true;
!     }
  
    /* If nothing to do, return.  #pragma GCC reset or #pragma GCC pop to
       the default have been handled by aarch64_save_restore_target_globals from
       aarch64_pragma_target_parse.  */
!   if (old_tree == new_tree
!       && (!fndecl || aarch64_previous_fndecl)
!       && (isa_flags & AARCH64_FL_ISA_MODES) == new_isa_mode)
!     {
!       gcc_assert (AARCH64_ISA_MODE == new_isa_mode);
!       return;
!     }
  
    aarch64_previous_fndecl = fndecl;
  
*************** aarch64_set_current_function (tree fndec
*** 18599,18605 ****
--- 19106,19133 ----
    cl_target_option_restore (&global_options, &global_options_set,
  			    TREE_TARGET_OPTION (new_tree));
  
+   /* The ISA mode can vary based on function type attributes and
+      function declaration attributes.  Make sure that the target
+      options correctly reflect these attributes.  */
+   if ((isa_flags & AARCH64_FL_ISA_MODES) != new_isa_mode)
+     {
+       auto base_flags = (aarch64_asm_isa_flags & ~AARCH64_FL_ISA_MODES);
+       aarch64_set_asm_isa_flags (base_flags | new_isa_mode);
+ 
+       aarch64_override_options_internal (&global_options);
+       new_tree = build_target_option_node (&global_options,
+ 					   &global_options_set);
+       DECL_FUNCTION_SPECIFIC_TARGET (fndecl) = new_tree;
+ 
+       tree new_optimize = build_optimization_node (&global_options,
+ 						   &global_options_set);
+       if (new_optimize != optimization_default_node)
+ 	DECL_FUNCTION_SPECIFIC_OPTIMIZATION (fndecl) = new_optimize;
+     }
+ 
    aarch64_save_restore_target_globals (new_tree);
+ 
+   gcc_assert (AARCH64_ISA_MODE == new_isa_mode);
  }
  
  /* Enum describing the various ways we can handle attributes.
*************** aarch64_handle_attr_arch (const char *st
*** 18649,18655 ****
      {
        gcc_assert (tmp_arch);
        selected_arch = tmp_arch->arch;
!       aarch64_set_asm_isa_flags (tmp_flags);
        return true;
      }
  
--- 19177,19183 ----
      {
        gcc_assert (tmp_arch);
        selected_arch = tmp_arch->arch;
!       aarch64_set_asm_isa_flags (tmp_flags | AARCH64_ISA_MODE);
        return true;
      }
  
*************** aarch64_handle_attr_cpu (const char *str
*** 18690,18696 ****
        gcc_assert (tmp_cpu);
        selected_tune = tmp_cpu->ident;
        selected_arch = tmp_cpu->arch;
!       aarch64_set_asm_isa_flags (tmp_flags);
        return true;
      }
  
--- 19218,19224 ----
        gcc_assert (tmp_cpu);
        selected_tune = tmp_cpu->ident;
        selected_arch = tmp_cpu->arch;
!       aarch64_set_asm_isa_flags (tmp_flags | AARCH64_ISA_MODE);
        return true;
      }
  
*************** aarch64_handle_attr_cpu (const char *str
*** 18717,18750 ****
  
  /* Handle the argument STR to the branch-protection= attribute.  */
  
!  static bool
!  aarch64_handle_attr_branch_protection (const char* str)
!  {
!   char *err_str = (char *) xmalloc (strlen (str) + 1);
!   enum aarch_parse_opt_result res = aarch_parse_branch_protection (str,
! 								   &err_str);
!   bool success = false;
!   switch (res)
!     {
!      case AARCH_PARSE_MISSING_ARG:
!        error ("missing argument to %<target(\"branch-protection=\")%> pragma or"
! 	      " attribute");
!        break;
!      case AARCH_PARSE_INVALID_ARG:
!        error ("invalid protection type %qs in %<target(\"branch-protection"
! 	      "=\")%> pragma or attribute", err_str);
!        break;
!      case AARCH_PARSE_OK:
!        success = true;
!       /* Fall through.  */
!      case AARCH_PARSE_INVALID_FEATURE:
!        break;
!      default:
!        gcc_unreachable ();
!     }
!   free (err_str);
!   return success;
!  }
  
  /* Handle the argument STR to the tune= target attribute.  */
  
--- 19245,19256 ----
  
  /* Handle the argument STR to the branch-protection= attribute.  */
  
! static bool
! aarch64_handle_attr_branch_protection (const char* str)
! {
!   return aarch_validate_mbranch_protection (aarch64_branch_protect_types, str,
! 					    "target(\"branch-protection=\")");
! }
  
  /* Handle the argument STR to the tune= target attribute.  */
  
*************** aarch64_handle_attr_isa_flags (char *str
*** 18790,18796 ****
       features if the user wants to handpick specific features.  */
    if (strncmp ("+nothing", str, 8) == 0)
      {
!       isa_flags = 0;
        str += 8;
      }
  
--- 19296,19302 ----
       features if the user wants to handpick specific features.  */
    if (strncmp ("+nothing", str, 8) == 0)
      {
!       isa_flags = AARCH64_ISA_MODE;
        str += 8;
      }
  
*************** aarch64_process_target_attr (tree args)
*** 19081,19086 ****
--- 19587,19594 ----
    return true;
  }
  
+ static bool aarch64_process_target_version_attr (tree args);
+ 
  /* Implement TARGET_OPTION_VALID_ATTRIBUTE_P.  This is used to
     process attribute ((target ("..."))).  */
  
*************** aarch64_option_valid_attribute_p (tree f
*** 19136,19141 ****
--- 19644,19662 ----
  			      TREE_TARGET_OPTION (target_option_current_node));
  
    ret = aarch64_process_target_attr (args);
+   if (ret)
+     {
+       tree version_attr = lookup_attribute ("target_version",
+ 					    DECL_ATTRIBUTES (fndecl));
+       if (version_attr != NULL_TREE)
+ 	{
+ 	  /* Reapply any target_version attribute after target attribute.
+ 	     This should be equivalent to applying the target_version once
+ 	     after processing all target attributes.  */
+ 	  tree version_args = TREE_VALUE (version_attr);
+ 	  ret = aarch64_process_target_version_attr (version_args);
+ 	}
+     }
  
    /* Set up any additional state.  */
    if (ret)
*************** aarch64_option_valid_attribute_p (tree f
*** 19166,19171 ****
--- 19687,20576 ----
    return ret;
  }
  
+ typedef unsigned long long aarch64_fmv_feature_mask;
+ 
+ typedef struct
+ {
+   const char *name;
+   aarch64_fmv_feature_mask feature_mask;
+   aarch64_feature_flags opt_flags;
+ } aarch64_fmv_feature_datum;
+ 
+ #define AARCH64_FMV_FEATURE(NAME, FEAT_NAME, C) \
+   {NAME, 1ULL << FEAT_##FEAT_NAME, ::feature_deps::fmv_deps_##FEAT_NAME},
+ 
+ /* The "rdma" alias uses a different FEAT_NAME to avoid a duplicate
+    feature_deps name.  */
+ #define FEAT_RDMA FEAT_RDM
+ 
+ /* FMV features are listed in priority order, to make it easier to sort target
+    strings.  */
+ static aarch64_fmv_feature_datum aarch64_fmv_feature_data[] = {
+ #include "config/aarch64/aarch64-option-extensions.def"
+ };
+ 
+ /* Parse a function multiversioning feature string STR, as found in a
+    target_version or target_clones attribute.
+ 
+    If ISA_FLAGS is nonnull, then update it with the specified architecture
+    features turned on.  If FEATURE_MASK is nonnull, then assign to it a bitmask
+    representing the set of features explicitly specified in the feature string.
+    Return an aarch_parse_opt_result describing the result.
+ 
+    When the STR string contains an invalid or duplicate extension, a copy of
+    the extension string is created and stored to INVALID_EXTENSION.  */
+ 
+ static enum aarch_parse_opt_result
+ aarch64_parse_fmv_features (const char *str, aarch64_feature_flags *isa_flags,
+ 			    aarch64_fmv_feature_mask *feature_mask,
+ 			    std::string *invalid_extension)
+ {
+   if (feature_mask)
+     *feature_mask = 0ULL;
+ 
+   if (strcmp (str, "default") == 0)
+     return AARCH_PARSE_OK;
+ 
+   while (str != NULL && *str != 0)
+     {
+       const char *ext;
+       size_t len;
+ 
+       ext = strchr (str, '+');
+ 
+       if (ext != NULL)
+ 	len = ext - str;
+       else
+ 	len = strlen (str);
+ 
+       if (len == 0)
+ 	return AARCH_PARSE_MISSING_ARG;
+ 
+       int num_features = ARRAY_SIZE (aarch64_fmv_feature_data);
+       int i;
+       for (i = 0; i < num_features; i++)
+ 	{
+ 	  if (strlen (aarch64_fmv_feature_data[i].name) == len
+ 	      && strncmp (aarch64_fmv_feature_data[i].name, str, len) == 0)
+ 	    {
+ 	      if (isa_flags)
+ 		*isa_flags |= aarch64_fmv_feature_data[i].opt_flags;
+ 	      if (feature_mask)
+ 		{
+ 		  auto old_feature_mask = *feature_mask;
+ 		  *feature_mask |= aarch64_fmv_feature_data[i].feature_mask;
+ 		  if (*feature_mask == old_feature_mask)
+ 		    {
+ 		      /* Duplicate feature.  */
+ 		      if (invalid_extension)
+ 			*invalid_extension = std::string (str, len);
+ 		      return AARCH_PARSE_DUPLICATE_FEATURE;
+ 		    }
+ 		}
+ 	      break;
+ 	    }
+ 	}
+ 
+       if (i == num_features)
+ 	{
+ 	  /* Feature not found in list.  */
+ 	  if (invalid_extension)
+ 	    *invalid_extension = std::string (str, len);
+ 	  return AARCH_PARSE_INVALID_FEATURE;
+ 	}
+ 
+       str = ext;
+       if (str)
+ 	/* Skip over the next '+'.  */
+ 	str++;
+     }
+ 
+   return AARCH_PARSE_OK;
+ }
+ 
+ /* Parse the tree in ARGS that contains the target_version attribute
+    information and update the global target options space.  */
+ 
+ static bool
+ aarch64_process_target_version_attr (tree args)
+ {
+   if (TREE_CODE (args) == TREE_LIST)
+     {
+       if (TREE_CHAIN (args))
+ 	{
+ 	  error ("attribute %<target_version%> has multiple values");
+ 	  return false;
+ 	}
+       args = TREE_VALUE (args);
+     }
+ 
+   if (!args || TREE_CODE (args) != STRING_CST)
+     {
+       error ("attribute %<target_version%> argument not a string");
+       return false;
+     }
+ 
+   const char *str = TREE_STRING_POINTER (args);
+ 
+   enum aarch_parse_opt_result parse_res;
+   auto isa_flags = aarch64_asm_isa_flags;
+ 
+   std::string invalid_extension;
+   parse_res = aarch64_parse_fmv_features (str, &isa_flags, NULL,
+ 					  &invalid_extension);
+ 
+   if (parse_res == AARCH_PARSE_OK)
+     {
+       aarch64_set_asm_isa_flags (isa_flags);
+       return true;
+     }
+ 
+   switch (parse_res)
+     {
+     case AARCH_PARSE_MISSING_ARG:
+       error ("missing value in %<target_version%> attribute");
+       break;
+ 
+     case AARCH_PARSE_INVALID_FEATURE:
+       error ("invalid feature modifier %qs of value %qs in "
+ 	     "%<target_version%> attribute", invalid_extension.c_str (),
+ 	     str);
+       break;
+ 
+     case AARCH_PARSE_DUPLICATE_FEATURE:
+       error ("duplicate feature modifier %qs of value %qs in "
+ 	     "%<target_version%> attribute", invalid_extension.c_str (),
+ 	     str);
+       break;
+ 
+     default:
+       gcc_unreachable ();
+     }
+ 
+   return false;
+ }
+ 
+ /* Implement TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P.  This is used to
+    process attribute ((target_version ("..."))).  */
+ 
+ static bool
+ aarch64_option_valid_version_attribute_p (tree fndecl, tree, tree args, int)
+ {
+   struct cl_target_option cur_target;
+   bool ret;
+   tree new_target;
+   tree existing_target = DECL_FUNCTION_SPECIFIC_TARGET (fndecl);
+ 
+   /* Save the current target options to restore at the end.  */
+   cl_target_option_save (&cur_target, &global_options, &global_options_set);
+ 
+   /* If fndecl already has some target attributes applied to it, unpack
+      them so that we add this attribute on top of them, rather than
+      overwriting them.  */
+   if (existing_target)
+     {
+       struct cl_target_option *existing_options
+ 	= TREE_TARGET_OPTION (existing_target);
+ 
+       if (existing_options)
+ 	cl_target_option_restore (&global_options, &global_options_set,
+ 				  existing_options);
+     }
+   else
+     cl_target_option_restore (&global_options, &global_options_set,
+ 			      TREE_TARGET_OPTION (target_option_current_node));
+ 
+   ret = aarch64_process_target_version_attr (args);
+ 
+   /* Set up any additional state.  */
+   if (ret)
+     {
+       aarch64_override_options_internal (&global_options);
+       new_target = build_target_option_node (&global_options,
+ 					     &global_options_set);
+     }
+   else
+     new_target = NULL;
+ 
+   if (fndecl && ret)
+       DECL_FUNCTION_SPECIFIC_TARGET (fndecl) = new_target;
+ 
+   cl_target_option_restore (&global_options, &global_options_set, &cur_target);
+ 
+   return ret;
+ }
+ 
+ /* This parses the attribute arguments to target_version in DECL and the
+    feature mask required to select those targets.  No adjustments are made to
+    add or remove redundant feature requirements.  */
+ 
+ static aarch64_fmv_feature_mask
+ get_feature_mask_for_version (tree decl)
+ {
+   tree version_attr = lookup_attribute ("target_version",
+ 					DECL_ATTRIBUTES (decl));
+   if (version_attr == NULL)
+     return 0;
+ 
+   const char *version_string = TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE
+ 						    (version_attr)));
+   enum aarch_parse_opt_result parse_res;
+   aarch64_fmv_feature_mask feature_mask;
+ 
+   parse_res = aarch64_parse_fmv_features (version_string, NULL, &feature_mask,
+ 					  NULL);
+ 
+   /* We should have detected any errors before getting here.  */
+   gcc_assert (parse_res == AARCH_PARSE_OK);
+ 
+   return feature_mask;
+ }
+ 
+ /* Compare priorities of two feature masks. Return:
+      1: mask1 is higher priority
+     -1: mask2 is higher priority
+      0: masks are equal.  */
+ 
+ static int
+ compare_feature_masks (aarch64_fmv_feature_mask mask1,
+ 		       aarch64_fmv_feature_mask mask2)
+ {
+   int pop1 = popcount_hwi (mask1);
+   int pop2 = popcount_hwi (mask2);
+   if (pop1 > pop2)
+     return 1;
+   if (pop2 > pop1)
+     return -1;
+ 
+   auto diff_mask = mask1 ^ mask2;
+   if (diff_mask == 0ULL)
+     return 0;
+   int num_features = ARRAY_SIZE (aarch64_fmv_feature_data);
+   for (int i = num_features - 1; i >= 0; i--)
+     {
+       auto bit_mask = aarch64_fmv_feature_data[i].feature_mask;
+       if (diff_mask & bit_mask)
+ 	return (mask1 & bit_mask) ? 1 : -1;
+     }
+   gcc_unreachable();
+ }
+ 
+ /* Compare priorities of two version decls.  */
+ 
+ int
+ aarch64_compare_version_priority (tree decl1, tree decl2)
+ {
+   auto mask1 = get_feature_mask_for_version (decl1);
+   auto mask2 = get_feature_mask_for_version (decl2);
+ 
+   return compare_feature_masks (mask1, mask2);
+ }
+ 
+ /* Build the struct __ifunc_arg_t type:
+ 
+    struct __ifunc_arg_t
+    {
+      unsigned long _size; // Size of the struct, so it can grow.
+      unsigned long _hwcap;
+      unsigned long _hwcap2;
+    }
+  */
+ 
+ static tree
+ build_ifunc_arg_type ()
+ {
+   tree ifunc_arg_type = lang_hooks.types.make_type (RECORD_TYPE);
+   tree field1 = build_decl (UNKNOWN_LOCATION, FIELD_DECL,
+ 			    get_identifier ("_size"),
+ 			    long_unsigned_type_node);
+   tree field2 = build_decl (UNKNOWN_LOCATION, FIELD_DECL,
+ 			    get_identifier ("_hwcap"),
+ 			    long_unsigned_type_node);
+   tree field3 = build_decl (UNKNOWN_LOCATION, FIELD_DECL,
+ 			    get_identifier ("_hwcap2"),
+ 			    long_unsigned_type_node);
+ 
+   DECL_FIELD_CONTEXT (field1) = ifunc_arg_type;
+   DECL_FIELD_CONTEXT (field2) = ifunc_arg_type;
+   DECL_FIELD_CONTEXT (field3) = ifunc_arg_type;
+ 
+   TYPE_FIELDS (ifunc_arg_type) = field1;
+   DECL_CHAIN (field1) = field2;
+   DECL_CHAIN (field2) = field3;
+ 
+   layout_type (ifunc_arg_type);
+ 
+   tree const_type = build_qualified_type (ifunc_arg_type, TYPE_QUAL_CONST);
+   tree pointer_type = build_pointer_type (const_type);
+ 
+   return pointer_type;
+ }
+ 
+ /* Implement TARGET_MANGLE_DECL_ASSEMBLER_NAME, to add function multiversioning
+    suffixes.  */
+ 
+ tree
+ aarch64_mangle_decl_assembler_name (tree decl, tree id)
+ {
+   /* For function version, add the target suffix to the assembler name.  */
+   if (TREE_CODE (decl) == FUNCTION_DECL
+       && DECL_FUNCTION_VERSIONED (decl))
+     {
+       aarch64_fmv_feature_mask feature_mask = get_feature_mask_for_version (decl);
+ 
+       std::string name = IDENTIFIER_POINTER (id);
+ 
+       /* For the default version, append ".default".  */
+       if (feature_mask == 0ULL)
+ 	{
+ 	  name += ".default";
+ 	  return get_identifier (name.c_str());
+ 	}
+ 
+       name += "._";
+ 
+       int num_features = ARRAY_SIZE (aarch64_fmv_feature_data);
+       for (int i = 0; i < num_features; i++)
+ 	{
+ 	  if (feature_mask & aarch64_fmv_feature_data[i].feature_mask)
+ 	    {
+ 	      name += "M";
+ 	      name += aarch64_fmv_feature_data[i].name;
+ 	    }
+ 	}
+ 
+       if (DECL_ASSEMBLER_NAME_SET_P (decl))
+ 	SET_DECL_RTL (decl, NULL);
+ 
+       id = get_identifier (name.c_str());
+     }
+   return id;
+ }
+ 
+ /* Return an identifier for the base assembler name of a versioned function.
+    This is computed by taking the default version's assembler name, and
+    stripping off the ".default" suffix if it's already been appended.  */
+ 
+ static tree
+ get_suffixed_assembler_name (tree default_decl, const char *suffix)
+ {
+   std::string name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (default_decl));
+ 
+   auto size = name.size ();
+   if (size >= 8 && name.compare (size - 8, 8, ".default") == 0)
+     name.resize (size - 8);
+   name += suffix;
+   return get_identifier (name.c_str());
+ }
+ 
+ /* Make the resolver function decl to dispatch the versions of
+    a multi-versioned function,  DEFAULT_DECL.  IFUNC_ALIAS_DECL is
+    ifunc alias that will point to the created resolver.  Create an
+    empty basic block in the resolver and store the pointer in
+    EMPTY_BB.  Return the decl of the resolver function.  */
+ 
+ static tree
+ make_resolver_func (const tree default_decl,
+ 		    const tree ifunc_alias_decl,
+ 		    basic_block *empty_bb)
+ {
+   tree decl, type, t;
+ 
+   /* Create resolver function name based on default_decl.  We need to remove an
+      existing ".default" suffix if this has already been appended.  */
+   tree decl_name = get_suffixed_assembler_name (default_decl, ".resolver");
+   const char *resolver_name = IDENTIFIER_POINTER (decl_name);
+ 
+   /* The resolver function should have signature
+      (void *) resolver (uint64_t, const __ifunc_arg_t *) */
+   type = build_function_type_list (ptr_type_node,
+ 				   uint64_type_node,
+ 				   build_ifunc_arg_type (),
+ 				   NULL_TREE);
+ 
+   decl = build_fn_decl (resolver_name, type);
+   SET_DECL_ASSEMBLER_NAME (decl, decl_name);
+ 
+   DECL_NAME (decl) = decl_name;
+   TREE_USED (decl) = 1;
+   DECL_ARTIFICIAL (decl) = 1;
+   DECL_IGNORED_P (decl) = 1;
+   TREE_PUBLIC (decl) = 0;
+   DECL_UNINLINABLE (decl) = 1;
+ 
+   /* Resolver is not external, body is generated.  */
+   DECL_EXTERNAL (decl) = 0;
+   DECL_EXTERNAL (ifunc_alias_decl) = 0;
+ 
+   DECL_CONTEXT (decl) = NULL_TREE;
+   DECL_INITIAL (decl) = make_node (BLOCK);
+   DECL_STATIC_CONSTRUCTOR (decl) = 0;
+ 
+   if (DECL_COMDAT_GROUP (default_decl)
+       || TREE_PUBLIC (default_decl))
+     {
+       /* In this case, each translation unit with a call to this
+ 	 versioned function will put out a resolver.  Ensure it
+ 	 is comdat to keep just one copy.  */
+       DECL_COMDAT (decl) = 1;
+       make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
+     }
+   else
+     TREE_PUBLIC (ifunc_alias_decl) = 0;
+ 
+   /* Build result decl and add to function_decl. */
+   t = build_decl (UNKNOWN_LOCATION, RESULT_DECL, NULL_TREE, ptr_type_node);
+   DECL_CONTEXT (t) = decl;
+   DECL_ARTIFICIAL (t) = 1;
+   DECL_IGNORED_P (t) = 1;
+   DECL_RESULT (decl) = t;
+ 
+   /* Build parameter decls and add to function_decl. */
+   tree arg1 = build_decl (UNKNOWN_LOCATION, PARM_DECL,
+ 			  get_identifier ("hwcap"),
+ 			  uint64_type_node);
+   tree arg2 = build_decl (UNKNOWN_LOCATION, PARM_DECL,
+ 			  get_identifier ("arg"),
+ 			  build_ifunc_arg_type());
+   DECL_CONTEXT (arg1) = decl;
+   DECL_CONTEXT (arg2) = decl;
+   DECL_ARTIFICIAL (arg1) = 1;
+   DECL_ARTIFICIAL (arg2) = 1;
+   DECL_IGNORED_P (arg1) = 1;
+   DECL_IGNORED_P (arg2) = 1;
+   DECL_ARG_TYPE (arg1) = uint64_type_node;
+   DECL_ARG_TYPE (arg2) = build_ifunc_arg_type ();
+   DECL_ARGUMENTS (decl) = arg1;
+   TREE_CHAIN (arg1) = arg2;
+ 
+   gimplify_function_tree (decl);
+   push_cfun (DECL_STRUCT_FUNCTION (decl));
+   *empty_bb = init_lowered_empty_function (decl, false,
+ 					   profile_count::uninitialized ());
+ 
+   cgraph_node::add_new_function (decl, true);
+   symtab->call_cgraph_insertion_hooks (cgraph_node::get_create (decl));
+ 
+   pop_cfun ();
+ 
+   gcc_assert (ifunc_alias_decl != NULL);
+   /* Mark ifunc_alias_decl as "ifunc" with resolver as resolver_name.  */
+   DECL_ATTRIBUTES (ifunc_alias_decl)
+     = make_attribute ("ifunc", resolver_name,
+ 		      DECL_ATTRIBUTES (ifunc_alias_decl));
+ 
+   /* Create the alias for dispatch to resolver here.  */
+   cgraph_node::create_same_body_alias (ifunc_alias_decl, decl);
+   return decl;
+ }
+ 
+ /* This adds a condition to the basic_block NEW_BB in function FUNCTION_DECL
+    to return a pointer to VERSION_DECL if all feature bits specified in
+    FEATURE_MASK are not set in MASK_VAR.  This function will be called during
+    version dispatch to decide which function version to execute.  It returns
+    the basic block at the end, to which more conditions can be added.  */
+ static basic_block
+ add_condition_to_bb (tree function_decl, tree version_decl,
+ 		     aarch64_fmv_feature_mask feature_mask,
+ 		     tree mask_var, basic_block new_bb)
+ {
+   gimple *return_stmt;
+   tree convert_expr, result_var;
+   gimple *convert_stmt;
+   gimple *if_else_stmt;
+ 
+   basic_block bb1, bb2, bb3;
+   edge e12, e23;
+ 
+   gimple_seq gseq;
+ 
+   push_cfun (DECL_STRUCT_FUNCTION (function_decl));
+ 
+   gcc_assert (new_bb != NULL);
+   gseq = bb_seq (new_bb);
+ 
+   convert_expr = build1 (CONVERT_EXPR, ptr_type_node,
+ 			 build_fold_addr_expr (version_decl));
+   result_var = create_tmp_var (ptr_type_node);
+   convert_stmt = gimple_build_assign (result_var, convert_expr);
+   return_stmt = gimple_build_return (result_var);
+ 
+   if (feature_mask == 0ULL)
+     {
+       /* Default version.  */
+       gimple_seq_add_stmt (&gseq, convert_stmt);
+       gimple_seq_add_stmt (&gseq, return_stmt);
+       set_bb_seq (new_bb, gseq);
+       gimple_set_bb (convert_stmt, new_bb);
+       gimple_set_bb (return_stmt, new_bb);
+       pop_cfun ();
+       return new_bb;
+     }
+ 
+   tree and_expr_var = create_tmp_var (long_long_unsigned_type_node);
+   tree and_expr = build2 (BIT_AND_EXPR,
+ 			  long_long_unsigned_type_node,
+ 			  mask_var,
+ 			  build_int_cst (long_long_unsigned_type_node,
+ 					 feature_mask));
+   gimple *and_stmt = gimple_build_assign (and_expr_var, and_expr);
+   gimple_set_block (and_stmt, DECL_INITIAL (function_decl));
+   gimple_set_bb (and_stmt, new_bb);
+   gimple_seq_add_stmt (&gseq, and_stmt);
+ 
+   tree zero_llu = build_int_cst (long_long_unsigned_type_node, 0);
+   if_else_stmt = gimple_build_cond (EQ_EXPR, and_expr_var, zero_llu,
+ 				    NULL_TREE, NULL_TREE);
+   gimple_set_block (if_else_stmt, DECL_INITIAL (function_decl));
+   gimple_set_bb (if_else_stmt, new_bb);
+   gimple_seq_add_stmt (&gseq, if_else_stmt);
+ 
+   gimple_seq_add_stmt (&gseq, convert_stmt);
+   gimple_seq_add_stmt (&gseq, return_stmt);
+   set_bb_seq (new_bb, gseq);
+ 
+   bb1 = new_bb;
+   e12 = split_block (bb1, if_else_stmt);
+   bb2 = e12->dest;
+   e12->flags &= ~EDGE_FALLTHRU;
+   e12->flags |= EDGE_TRUE_VALUE;
+ 
+   e23 = split_block (bb2, return_stmt);
+ 
+   gimple_set_bb (convert_stmt, bb2);
+   gimple_set_bb (return_stmt, bb2);
+ 
+   bb3 = e23->dest;
+   make_edge (bb1, bb3, EDGE_FALSE_VALUE);
+ 
+   remove_edge (e23);
+   make_edge (bb2, EXIT_BLOCK_PTR_FOR_FN (cfun), 0);
+ 
+   pop_cfun ();
+ 
+   return bb3;
+ }
+ 
+ /* This function generates the dispatch function for
+    multi-versioned functions.  DISPATCH_DECL is the function which will
+    contain the dispatch logic.  FNDECLS are the function choices for
+    dispatch, and is a tree chain.  EMPTY_BB is the basic block pointer
+    in DISPATCH_DECL in which the dispatch code is generated.  */
+ 
+ static int
+ dispatch_function_versions (tree dispatch_decl,
+ 			    void *fndecls_p,
+ 			    basic_block *empty_bb)
+ {
+   gimple *ifunc_cpu_init_stmt;
+   gimple_seq gseq;
+   vec<tree> *fndecls;
+ 
+   gcc_assert (dispatch_decl != NULL
+ 	      && fndecls_p != NULL
+ 	      && empty_bb != NULL);
+ 
+   push_cfun (DECL_STRUCT_FUNCTION (dispatch_decl));
+ 
+   gseq = bb_seq (*empty_bb);
+   /* Function version dispatch is via IFUNC.  IFUNC resolvers fire before
+      constructors, so explicity call __init_cpu_features_resolver here.  */
+   tree init_fn_type = build_function_type_list (void_type_node,
+ 						long_unsigned_type_node,
+ 						build_ifunc_arg_type(),
+ 						NULL);
+   tree init_fn_id = get_identifier ("__init_cpu_features_resolver");
+   tree init_fn_decl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL,
+ 				  init_fn_id, init_fn_type);
+   tree arg1 = DECL_ARGUMENTS (dispatch_decl);
+   tree arg2 = TREE_CHAIN (arg1);
+   ifunc_cpu_init_stmt = gimple_build_call (init_fn_decl, 2, arg1, arg2);
+   gimple_seq_add_stmt (&gseq, ifunc_cpu_init_stmt);
+   gimple_set_bb (ifunc_cpu_init_stmt, *empty_bb);
+ 
+   /* Build the struct type for __aarch64_cpu_features.  */
+   tree global_type = lang_hooks.types.make_type (RECORD_TYPE);
+   tree field1 = build_decl (UNKNOWN_LOCATION, FIELD_DECL,
+ 			    get_identifier ("features"),
+ 			    long_long_unsigned_type_node);
+   DECL_FIELD_CONTEXT (field1) = global_type;
+   TYPE_FIELDS (global_type) = field1;
+   layout_type (global_type);
+ 
+   tree global_var = build_decl (UNKNOWN_LOCATION, VAR_DECL,
+ 				get_identifier ("__aarch64_cpu_features"),
+ 				global_type);
+   DECL_EXTERNAL (global_var) = 1;
+   tree mask_var = create_tmp_var (long_long_unsigned_type_node);
+ 
+   tree component_expr = build3 (COMPONENT_REF, long_long_unsigned_type_node,
+ 				global_var, field1, NULL_TREE);
+   gimple *component_stmt = gimple_build_assign (mask_var, component_expr);
+   gimple_set_block (component_stmt, DECL_INITIAL (dispatch_decl));
+   gimple_set_bb (component_stmt, *empty_bb);
+   gimple_seq_add_stmt (&gseq, component_stmt);
+ 
+   tree not_expr = build1 (BIT_NOT_EXPR, long_long_unsigned_type_node, mask_var);
+   gimple *not_stmt = gimple_build_assign (mask_var, not_expr);
+   gimple_set_block (not_stmt, DECL_INITIAL (dispatch_decl));
+   gimple_set_bb (not_stmt, *empty_bb);
+   gimple_seq_add_stmt (&gseq, not_stmt);
+ 
+   set_bb_seq (*empty_bb, gseq);
+ 
+   pop_cfun ();
+ 
+   /* fndecls_p is actually a vector.  */
+   fndecls = static_cast<vec<tree> *> (fndecls_p);
+ 
+   /* At least one more version other than the default.  */
+   unsigned int num_versions = fndecls->length ();
+   gcc_assert (num_versions >= 2);
+ 
+   struct function_version_info
+     {
+       tree version_decl;
+       aarch64_fmv_feature_mask feature_mask;
+     } *function_versions;
+ 
+   function_versions = (struct function_version_info *)
+     XNEWVEC (struct function_version_info, (num_versions));
+ 
+   unsigned int actual_versions = 0;
+ 
+   for (tree version_decl : *fndecls)
+     {
+       aarch64_fmv_feature_mask feature_mask;
+       /* Get attribute string, parse it and find the right features.  */
+       feature_mask = get_feature_mask_for_version (version_decl);
+       function_versions [actual_versions].version_decl = version_decl;
+       function_versions [actual_versions].feature_mask = feature_mask;
+       actual_versions++;
+     }
+ 
+   auto compare_feature_version_info = [](const void *p1, const void *p2) {
+     const function_version_info v1 = *(const function_version_info *)p1;
+     const function_version_info v2 = *(const function_version_info *)p2;
+     return - compare_feature_masks (v1.feature_mask, v2.feature_mask);
+   };
+ 
+   /* Sort the versions according to descending order of dispatch priority.  */
+   qsort (function_versions, actual_versions,
+ 	 sizeof (struct function_version_info), compare_feature_version_info);
+ 
+   for (unsigned int i = 0; i < actual_versions; ++i)
+     *empty_bb = add_condition_to_bb (dispatch_decl,
+ 				     function_versions[i].version_decl,
+ 				     function_versions[i].feature_mask,
+ 				     mask_var,
+ 				     *empty_bb);
+ 
+   free (function_versions);
+   return 0;
+ }
+ 
+ /* Implement TARGET_GENERATE_VERSION_DISPATCHER_BODY.  */
+ 
+ tree
+ aarch64_generate_version_dispatcher_body (void *node_p)
+ {
+   tree resolver_decl;
+   basic_block empty_bb;
+   tree default_ver_decl;
+   struct cgraph_node *versn;
+   struct cgraph_node *node;
+ 
+   struct cgraph_function_version_info *node_version_info = NULL;
+   struct cgraph_function_version_info *versn_info = NULL;
+ 
+   node = (cgraph_node *)node_p;
+ 
+   node_version_info = node->function_version ();
+   gcc_assert (node->dispatcher_function
+ 	      && node_version_info != NULL);
+ 
+   if (node_version_info->dispatcher_resolver)
+     return node_version_info->dispatcher_resolver;
+ 
+   /* The first version in the chain corresponds to the default version.  */
+   default_ver_decl = node_version_info->next->this_node->decl;
+ 
+   /* node is going to be an alias, so remove the finalized bit.  */
+   node->definition = false;
+ 
+   resolver_decl = make_resolver_func (default_ver_decl,
+ 				      node->decl, &empty_bb);
+ 
+   node_version_info->dispatcher_resolver = resolver_decl;
+ 
+   push_cfun (DECL_STRUCT_FUNCTION (resolver_decl));
+ 
+   auto_vec<tree, 2> fn_ver_vec;
+ 
+   for (versn_info = node_version_info->next; versn_info;
+        versn_info = versn_info->next)
+     {
+       versn = versn_info->this_node;
+       /* Check for virtual functions here again, as by this time it should
+ 	 have been determined if this function needs a vtable index or
+ 	 not.  This happens for methods in derived classes that override
+ 	 virtual methods in base classes but are not explicitly marked as
+ 	 virtual.  */
+       if (DECL_VINDEX (versn->decl))
+ 	sorry ("virtual function multiversioning not supported");
+ 
+       fn_ver_vec.safe_push (versn->decl);
+     }
+ 
+   dispatch_function_versions (resolver_decl, &fn_ver_vec, &empty_bb);
+   cgraph_edge::rebuild_edges ();
+   pop_cfun ();
+ 
+   /* Fix up symbol names.  First we need to obtain the base name, which may
+      have already been mangled.  */
+   tree base_name = get_suffixed_assembler_name (default_ver_decl, "");
+ 
+   /* We need to redo the version mangling on the non-default versions for the
+      target_clones case.  Redoing the mangling for the target_version case is
+      redundant but does no harm.  We need to skip the default version, because
+      expand_clones will append ".default" later; fortunately that suffix is the
+      one we want anyway.  */
+   for (versn_info = node_version_info->next->next; versn_info;
+        versn_info = versn_info->next)
+     {
+       tree version_decl = versn_info->this_node->decl;
+       tree name = aarch64_mangle_decl_assembler_name (version_decl,
+ 						      base_name);
+       symtab->change_decl_assembler_name (version_decl, name);
+     }
+ 
+   /* We also need to use the base name for the ifunc declaration.  */
+   symtab->change_decl_assembler_name (node->decl, base_name);
+ 
+   return resolver_decl;
+ }
+ 
+ /* Make a dispatcher declaration for the multi-versioned function DECL.
+    Calls to DECL function will be replaced with calls to the dispatcher
+    by the front-end.  Returns the decl of the dispatcher function.  */
+ 
+ tree
+ aarch64_get_function_versions_dispatcher (void *decl)
+ {
+   tree fn = (tree) decl;
+   struct cgraph_node *node = NULL;
+   struct cgraph_node *default_node = NULL;
+   struct cgraph_function_version_info *node_v = NULL;
+   struct cgraph_function_version_info *first_v = NULL;
+ 
+   tree dispatch_decl = NULL;
+ 
+   struct cgraph_function_version_info *default_version_info = NULL;
+ 
+   gcc_assert (fn != NULL && DECL_FUNCTION_VERSIONED (fn));
+ 
+   node = cgraph_node::get (fn);
+   gcc_assert (node != NULL);
+ 
+   node_v = node->function_version ();
+   gcc_assert (node_v != NULL);
+ 
+   if (node_v->dispatcher_resolver != NULL)
+     return node_v->dispatcher_resolver;
+ 
+   /* Find the default version and make it the first node.  */
+   first_v = node_v;
+   /* Go to the beginning of the chain.  */
+   while (first_v->prev != NULL)
+     first_v = first_v->prev;
+   default_version_info = first_v;
+   while (default_version_info != NULL)
+     {
+       if (get_feature_mask_for_version
+ 	    (default_version_info->this_node->decl) == 0ULL)
+ 	break;
+       default_version_info = default_version_info->next;
+     }
+ 
+   /* If there is no default node, just return NULL.  */
+   if (default_version_info == NULL)
+     return NULL;
+ 
+   /* Make default info the first node.  */
+   if (first_v != default_version_info)
+     {
+       default_version_info->prev->next = default_version_info->next;
+       if (default_version_info->next)
+ 	default_version_info->next->prev = default_version_info->prev;
+       first_v->prev = default_version_info;
+       default_version_info->next = first_v;
+       default_version_info->prev = NULL;
+     }
+ 
+   default_node = default_version_info->this_node;
+ 
+   if (targetm.has_ifunc_p ())
+     {
+       struct cgraph_function_version_info *it_v = NULL;
+       struct cgraph_node *dispatcher_node = NULL;
+       struct cgraph_function_version_info *dispatcher_version_info = NULL;
+ 
+       /* Right now, the dispatching is done via ifunc.  */
+       dispatch_decl = make_dispatcher_decl (default_node->decl);
+       TREE_NOTHROW (dispatch_decl) = TREE_NOTHROW (fn);
+ 
+       dispatcher_node = cgraph_node::get_create (dispatch_decl);
+       gcc_assert (dispatcher_node != NULL);
+       dispatcher_node->dispatcher_function = 1;
+       dispatcher_version_info
+ 	= dispatcher_node->insert_new_function_version ();
+       dispatcher_version_info->next = default_version_info;
+       dispatcher_node->definition = 1;
+ 
+       /* Set the dispatcher for all the versions.  */
+       it_v = default_version_info;
+       while (it_v != NULL)
+ 	{
+ 	  it_v->dispatcher_resolver = dispatch_decl;
+ 	  it_v = it_v->next;
+ 	}
+     }
+   else
+     {
+       error_at (DECL_SOURCE_LOCATION (default_node->decl),
+ 		"multiversioning needs %<ifunc%> which is not supported "
+ 		"on this target");
+     }
+ 
+   return dispatch_decl;
+ }
+ 
+ /* This function returns true if FN1 and FN2 are versions of the same function,
+    that is, the target_version attributes of the function decls are different.
+    This assumes that FN1 and FN2 have the same signature.  */
+ 
+ bool
+ aarch64_common_function_versions (tree fn1, tree fn2)
+ {
+   if (TREE_CODE (fn1) != FUNCTION_DECL
+       || TREE_CODE (fn2) != FUNCTION_DECL)
+     return false;
+ 
+   return (aarch64_compare_version_priority (fn1, fn2) != 0);
+ }
+ 
+ /* Implement TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P.  Use an opt-out
+    rather than an opt-in list.  */
+ 
+ static bool
+ aarch64_function_attribute_inlinable_p (const_tree fndecl)
+ {
+   /* A function that has local SME state cannot be inlined into its caller,
+      since we only support managing PSTATE.ZA switches at function scope.  */
+   return (!aarch64_fndecl_has_new_state (fndecl, "za")
+ 	  && !aarch64_fndecl_has_new_state (fndecl, "zt0"));
+ }
+ 
  /* Helper for aarch64_can_inline_p.  In the case where CALLER and CALLEE are
     tri-bool options (yes, no, don't care) and the default value is
     DEF, determine whether to reject inlining.  */
*************** aarch64_tribools_ok_for_inlining_p (int
*** 19187,19192 ****
--- 20592,20654 ----
    return (callee == caller || callee == def);
  }
  
+ /* Bit allocations for ipa_fn_summary::target_info.  */
+ 
+ /* Set if the function contains a stmt that relies on the function's
+    choice of PSTATE.SM setting (0 for non-streaming, 1 for streaming).
+    Not meaningful for streaming-compatible functions.  */
+ constexpr auto AARCH64_IPA_SM_FIXED = 1U << 0;
+ 
+ /* Set if the function clobbers ZA and ZT0.  Not meaningful for functions that
+    have ZA state.  */
+ constexpr auto AARCH64_IPA_CLOBBERS_ZA = 1U << 1;
+ constexpr auto AARCH64_IPA_CLOBBERS_ZT0 = 1U << 2;
+ 
+ /* Implement TARGET_NEED_IPA_FN_TARGET_INFO.  */
+ 
+ static bool
+ aarch64_need_ipa_fn_target_info (const_tree, unsigned int &)
+ {
+   /* We could in principle skip this for streaming-compatible functions
+      that have ZA state, but that's a rare combination.  */
+   return true;
+ }
+ 
+ /* Implement TARGET_UPDATE_IPA_FN_TARGET_INFO.  */
+ 
+ static bool
+ aarch64_update_ipa_fn_target_info (unsigned int &info, const gimple *stmt)
+ {
+   if (auto *ga = dyn_cast<const gasm *> (stmt))
+     {
+       /* We don't know what the asm does, so conservatively assume that
+ 	 it requires the function's current SM mode.  */
+       info |= AARCH64_IPA_SM_FIXED;
+       for (unsigned int i = 0; i < gimple_asm_nclobbers (ga); ++i)
+ 	{
+ 	  tree op = gimple_asm_clobber_op (ga, i);
+ 	  const char *clobber = TREE_STRING_POINTER (TREE_VALUE (op));
+ 	  if (strcmp (clobber, "za") == 0)
+ 	    info |= AARCH64_IPA_CLOBBERS_ZA;
+ 	  if (strcmp (clobber, "zt0") == 0)
+ 	    info |= AARCH64_IPA_CLOBBERS_ZT0;
+ 	}
+     }
+   if (auto *call = dyn_cast<const gcall *> (stmt))
+     {
+       if (gimple_call_builtin_p (call, BUILT_IN_MD))
+ 	{
+ 	  /* The attributes on AArch64 builtins are supposed to be accurate.
+ 	     If the function isn't marked streaming-compatible then it
+ 	     needs whichever SM mode it selects.  */
+ 	  tree decl = gimple_call_fndecl (call);
+ 	  if (aarch64_fndecl_pstate_sm (decl) != 0)
+ 	    info |= AARCH64_IPA_SM_FIXED;
+ 	}
+     }
+   return true;
+ }
+ 
  /* Implement TARGET_CAN_INLINE_P.  Decide whether it is valid
     to inline CALLEE into CALLER based on target-specific info.
     Make sure that the caller and callee have compatible architectural
*************** aarch64_can_inline_p (tree caller, tree
*** 19209,19220 ****
  					   : target_option_default_node);
  
    /* Callee's ISA flags should be a subset of the caller's.  */
!   if ((caller_opts->x_aarch64_asm_isa_flags
!        & callee_opts->x_aarch64_asm_isa_flags)
!       != callee_opts->x_aarch64_asm_isa_flags)
      return false;
!   if ((caller_opts->x_aarch64_isa_flags & callee_opts->x_aarch64_isa_flags)
!       != callee_opts->x_aarch64_isa_flags)
      return false;
  
    /* Allow non-strict aligned functions inlining into strict
--- 20671,20730 ----
  					   : target_option_default_node);
  
    /* Callee's ISA flags should be a subset of the caller's.  */
!   auto caller_asm_isa = (caller_opts->x_aarch64_asm_isa_flags
! 			 & ~AARCH64_FL_ISA_MODES);
!   auto callee_asm_isa = (callee_opts->x_aarch64_asm_isa_flags
! 			 & ~AARCH64_FL_ISA_MODES);
!   if (callee_asm_isa & ~caller_asm_isa)
      return false;
! 
!   auto caller_isa = (caller_opts->x_aarch64_isa_flags
! 		     & ~AARCH64_FL_ISA_MODES);
!   auto callee_isa = (callee_opts->x_aarch64_isa_flags
! 		     & ~AARCH64_FL_ISA_MODES);
!   if (callee_isa & ~caller_isa)
!     return false;
! 
!   /* Return true if the callee might have target_info property PROPERTY.
!      The answer must be true unless we have positive proof to the contrary.  */
!   auto callee_has_property = [&](unsigned int property)
!     {
!       if (ipa_fn_summaries)
! 	if (auto *summary = ipa_fn_summaries->get (cgraph_node::get (callee)))
! 	  if (!(summary->target_info & property))
! 	    return false;
!       return true;
!     };
! 
!   /* Streaming-compatible code can be inlined into functions with any
!      PSTATE.SM mode.  Otherwise the caller and callee must agree on
!      PSTATE.SM mode, unless we can prove that the callee is naturally
!      streaming-compatible.  */
!   auto caller_sm = (caller_opts->x_aarch64_isa_flags & AARCH64_FL_SM_STATE);
!   auto callee_sm = (callee_opts->x_aarch64_isa_flags & AARCH64_FL_SM_STATE);
!   if (callee_sm
!       && caller_sm != callee_sm
!       && callee_has_property (AARCH64_IPA_SM_FIXED))
!     return false;
! 
!   /* aarch64_function_attribute_inlinable_p prevents new-ZA and new-ZT0
!      functions from being inlined into others.  We also need to prevent
!      inlining of shared-ZA functions into functions without ZA state,
!      since this is an error condition.
! 
!      The only other problematic case for ZA is inlining a function that
!      directly clobbers ZA or ZT0 into a function that has ZA or ZT0 state.  */
!   auto caller_za = (caller_opts->x_aarch64_isa_flags & AARCH64_FL_ZA_ON);
!   auto callee_za = (callee_opts->x_aarch64_isa_flags & AARCH64_FL_ZA_ON);
!   if (!caller_za && callee_za)
!     return false;
!   if (!callee_za
!       && aarch64_fndecl_has_state (caller, "za")
!       && callee_has_property (AARCH64_IPA_CLOBBERS_ZA))
!     return false;
!   if (!callee_za
!       && aarch64_fndecl_has_state (caller, "zt0")
!       && callee_has_property (AARCH64_IPA_CLOBBERS_ZT0))
      return false;
  
    /* Allow non-strict aligned functions inlining into strict
*************** aarch64_can_inline_p (tree caller, tree
*** 19283,19289 ****
  /* Return the ID of the TLDESC ABI, initializing the descriptor if hasn't
     been already.  */
  
! unsigned int
  aarch64_tlsdesc_abi_id ()
  {
    predefined_function_abi &tlsdesc_abi = function_abis[ARM_PCS_TLSDESC];
--- 20793,20799 ----
  /* Return the ID of the TLDESC ABI, initializing the descriptor if hasn't
     been already.  */
  
! arm_pcs
  aarch64_tlsdesc_abi_id ()
  {
    predefined_function_abi &tlsdesc_abi = function_abis[ARM_PCS_TLSDESC];
*************** aarch64_tlsdesc_abi_id ()
*** 19297,19303 ****
  	SET_HARD_REG_BIT (full_reg_clobbers, regno);
        tlsdesc_abi.initialize (ARM_PCS_TLSDESC, full_reg_clobbers);
      }
!   return tlsdesc_abi.id ();
  }
  
  /* Return true if SYMBOL_REF X binds locally.  */
--- 20807,20813 ----
  	SET_HARD_REG_BIT (full_reg_clobbers, regno);
        tlsdesc_abi.initialize (ARM_PCS_TLSDESC, full_reg_clobbers);
      }
!   return ARM_PCS_TLSDESC;
  }
  
  /* Return true if SYMBOL_REF X binds locally.  */
*************** aarch64_gimplify_va_arg_expr (tree valis
*** 19755,19764 ****
  		  f_stack, NULL_TREE);
    size = int_size_in_bytes (type);
  
!   unsigned int abi_break;
!   unsigned int abi_break_packed;
    align
!     = aarch64_function_arg_alignment (mode, type, &abi_break, &abi_break_packed)
      / BITS_PER_UNIT;
  
    dw_align = false;
--- 21265,21276 ----
  		  f_stack, NULL_TREE);
    size = int_size_in_bytes (type);
  
!   unsigned int abi_break_gcc_9;
!   unsigned int abi_break_gcc_13;
!   unsigned int abi_break_gcc_14;
    align
!     = aarch64_function_arg_alignment (mode, type, &abi_break_gcc_9,
! 				      &abi_break_gcc_13, &abi_break_gcc_14)
      / BITS_PER_UNIT;
  
    dw_align = false;
*************** aarch64_gimplify_va_arg_expr (tree valis
*** 19802,19814 ****
        rsize = ROUND_UP (size, UNITS_PER_WORD);
        nregs = rsize / UNITS_PER_WORD;
  
!       if (align <= 8 && abi_break_packed && warn_psabi)
  	inform (input_location, "parameter passing for argument of type "
  		"%qT changed in GCC 13.1", type);
  
        if (align > 8)
  	{
! 	  if (abi_break && warn_psabi)
  	    inform (input_location, "parameter passing for argument of type "
  		    "%qT changed in GCC 9.1", type);
  	  dw_align = true;
--- 21314,21338 ----
        rsize = ROUND_UP (size, UNITS_PER_WORD);
        nregs = rsize / UNITS_PER_WORD;
  
!       if (align <= 8
! 	  && abi_break_gcc_13
! 	  && warn_psabi
! 	  && !bitint_or_aggr_of_bitint_p (type))
  	inform (input_location, "parameter passing for argument of type "
  		"%qT changed in GCC 13.1", type);
  
+       if (warn_psabi
+ 	  && abi_break_gcc_14
+ 	  && (abi_break_gcc_14 > 8 * BITS_PER_UNIT) != (align > 8)
+ 	  && !bitint_or_aggr_of_bitint_p (type))
+ 	inform (input_location, "parameter passing for argument of type "
+ 		"%qT changed in GCC 14.1", type);
+ 
        if (align > 8)
  	{
! 	  if (abi_break_gcc_9
! 	      && warn_psabi
! 	      && !bitint_or_aggr_of_bitint_p (type))
  	    inform (input_location, "parameter passing for argument of type "
  		    "%qT changed in GCC 9.1", type);
  	  dw_align = true;
*************** aarch64_conditional_register_usage (void
*** 20106,20114 ****
  	call_used_regs[i] = 1;
        }
  
!   /* Only allow the FFR and FFRT to be accessed via special patterns.  */
    CLEAR_HARD_REG_BIT (operand_reg_set, FFR_REGNUM);
    CLEAR_HARD_REG_BIT (operand_reg_set, FFRT_REGNUM);
  
    /* When tracking speculation, we need a couple of call-clobbered registers
       to track the speculation state.  It would be nice to just use
--- 21630,21641 ----
  	call_used_regs[i] = 1;
        }
  
!   /* Only allow these registers to be accessed via special patterns.  */
!   CLEAR_HARD_REG_BIT (operand_reg_set, VG_REGNUM);
    CLEAR_HARD_REG_BIT (operand_reg_set, FFR_REGNUM);
    CLEAR_HARD_REG_BIT (operand_reg_set, FFRT_REGNUM);
+   for (int i = FIRST_FAKE_REGNUM; i <= LAST_FAKE_REGNUM; ++i)
+     CLEAR_HARD_REG_BIT (operand_reg_set, i);
  
    /* When tracking speculation, we need a couple of call-clobbered registers
       to track the speculation state.  It would be nice to just use
*************** aarch64_member_type_forces_blk (const_tr
*** 20133,20143 ****
       an ARRAY_TYPE.  In both cases we're interested in the TREE_TYPE.  */
    const_tree type = TREE_TYPE (field_or_array);
  
!   /* Assign BLKmode to anything that contains multiple SVE predicates.
       For structures, the "multiple" case is indicated by MODE being
       VOIDmode.  */
    unsigned int num_zr, num_pr;
!   if (aarch64_sve::builtin_type_p (type, &num_zr, &num_pr) && num_pr != 0)
      {
        if (TREE_CODE (field_or_array) == ARRAY_TYPE)
  	return !simple_cst_equal (TYPE_SIZE (field_or_array),
--- 21660,21670 ----
       an ARRAY_TYPE.  In both cases we're interested in the TREE_TYPE.  */
    const_tree type = TREE_TYPE (field_or_array);
  
!   /* Assign BLKmode to anything that contains more than 2 SVE predicates.
       For structures, the "multiple" case is indicated by MODE being
       VOIDmode.  */
    unsigned int num_zr, num_pr;
!   if (aarch64_sve::builtin_type_p (type, &num_zr, &num_pr) && num_pr > 2)
      {
        if (TREE_CODE (field_or_array) == ARRAY_TYPE)
  	return !simple_cst_equal (TYPE_SIZE (field_or_array),
*************** aarch64_short_vector_p (const_tree type,
*** 20411,20417 ****
  {
    poly_int64 size = -1;
  
!   if (type && TREE_CODE (type) == VECTOR_TYPE)
      {
        if (aarch64_sve::builtin_type_p (type))
  	return false;
--- 21938,21944 ----
  {
    poly_int64 size = -1;
  
!   if (type && VECTOR_TYPE_P (type))
      {
        if (aarch64_sve::builtin_type_p (type))
  	return false;
*************** aarch64_composite_type_p (const_tree typ
*** 20479,20484 ****
--- 22006,22016 ----
    if (type && (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == COMPLEX_TYPE))
      return true;
  
+   if (type
+       && TREE_CODE (type) == BITINT_TYPE
+       && int_size_in_bytes (type) > 16)
+     return true;
+ 
    if (mode == BLKmode
        || GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT
        || GET_MODE_CLASS (mode) == MODE_COMPLEX_INT)
*************** aarch64_vector_mode_supported_p (machine
*** 20600,20605 ****
--- 22132,22145 ----
    return vec_flags != 0 && (vec_flags & VEC_STRUCT) == 0;
  }
  
+ /* Implements target hook vector_mode_supported_any_target_p.  */
+ static bool
+ aarch64_vector_mode_supported_any_target_p (machine_mode mode)
+ {
+   unsigned int vec_flags = aarch64_classify_vector_mode (mode, true);
+   return vec_flags != 0 && (vec_flags & VEC_STRUCT) == 0;
+ }
+ 
  /* Return the full-width SVE vector mode for element mode MODE, if one
     exists.  */
  opt_machine_mode
*************** aarch64_simd_container_mode (scalar_mode
*** 20667,20673 ****
      return aarch64_full_sve_mode (mode).else_mode (word_mode);
  
    gcc_assert (known_eq (width, 64) || known_eq (width, 128));
!   if (TARGET_SIMD)
      {
        if (known_eq (width, 128))
  	return aarch64_vq_mode (mode).else_mode (word_mode);
--- 22207,22213 ----
      return aarch64_full_sve_mode (mode).else_mode (word_mode);
  
    gcc_assert (known_eq (width, 64) || known_eq (width, 128));
!   if (TARGET_BASE_SIMD)
      {
        if (known_eq (width, 128))
  	return aarch64_vq_mode (mode).else_mode (word_mode);
*************** aarch64_autovectorize_vector_modes (vect
*** 20830,20841 ****
     modes->safe_push (sve_modes[sve_i++]);
  
    unsigned int flags = 0;
!   /* Consider enabling VECT_COMPARE_COSTS for SVE, both so that we
!      can compare SVE against Advanced SIMD and so that we can compare
!      multiple SVE vectorization approaches against each other.  There's
!      not really any point doing this for Advanced SIMD only, since the
!      first mode that works should always be the best.  */
!   if (TARGET_SVE && aarch64_sve_compare_costs)
      flags |= VECT_COMPARE_COSTS;
    return flags;
  }
--- 22370,22376 ----
     modes->safe_push (sve_modes[sve_i++]);
  
    unsigned int flags = 0;
!   if (aarch64_vect_compare_costs)
      flags |= VECT_COMPARE_COSTS;
    return flags;
  }
*************** aarch64_mangle_type (const_tree type)
*** 20851,20857 ****
      return "St9__va_list";
  
    /* Half-precision floating point types.  */
!   if (TREE_CODE (type) == REAL_TYPE && TYPE_PRECISION (type) == 16)
      {
        if (TYPE_MAIN_VARIANT (type) == float16_type_node)
  	return NULL;
--- 22386,22392 ----
      return "St9__va_list";
  
    /* Half-precision floating point types.  */
!   if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16)
      {
        if (TYPE_MAIN_VARIANT (type) == float16_type_node)
  	return NULL;
*************** aarch64_simd_valid_immediate (rtx op, si
*** 21369,21374 ****
--- 22904,22912 ----
    if ((vec_flags & VEC_ADVSIMD) && !TARGET_SIMD)
      return false;
  
+   if (vec_flags == (VEC_SVE_PRED | VEC_STRUCT))
+     return op == CONST0_RTX (mode) || op == CONSTM1_RTX (mode);
+ 
    if (vec_flags & VEC_SVE_PRED)
      return aarch64_sve_pred_valid_immediate (op, info);
  
*************** aarch64_mov_operand_p (rtx x, machine_mo
*** 21542,21548 ****
  	 force everything to have a canonical form.  */
        if (!lra_in_progress
  	  && !reload_completed
! 	  && GET_MODE_CLASS (GET_MODE (x)) == MODE_VECTOR_BOOL
  	  && GET_MODE (x) != VNx16BImode)
  	return false;
  
--- 23080,23087 ----
  	 force everything to have a canonical form.  */
        if (!lra_in_progress
  	  && !reload_completed
! 	  && aarch64_sve_pred_mode_p (GET_MODE (x))
! 	  && known_eq (GET_MODE_SIZE (GET_MODE (x)), BYTES_PER_SVE_PRED)
  	  && GET_MODE (x) != VNx16BImode)
  	return false;
  
*************** aarch64_mov_operand_p (rtx x, machine_mo
*** 21560,21582 ****
    if (SYMBOL_REF_P (x) && mode == DImode && CONSTANT_ADDRESS_P (x))
      return true;
  
!   if (TARGET_SVE && aarch64_sve_cnt_immediate_p (x))
      return true;
  
    return aarch64_classify_symbolic_expression (x)
      == SYMBOL_TINY_ABSOLUTE;
  }
  
  /* Create a 0 constant that is based on V4SI to allow CSE to optimally share
     the constant creation.  */
  
  rtx
  aarch64_gen_shareable_zero (machine_mode mode)
  {
!   machine_mode zmode = V4SImode;
!   rtx tmp = gen_reg_rtx (zmode);
!   emit_move_insn (tmp, CONST0_RTX (zmode));
!   return lowpart_subreg (mode, tmp, zmode);
  }
  
  /* Return a const_int vector of VAL.  */
--- 23099,23171 ----
    if (SYMBOL_REF_P (x) && mode == DImode && CONSTANT_ADDRESS_P (x))
      return true;
  
!   if (TARGET_SVE
!       && (aarch64_sve_cnt_immediate_p (x)
! 	  || aarch64_sve_rdvl_immediate_p (x)))
!     return true;
! 
!   if (aarch64_rdsvl_immediate_p (x))
      return true;
  
    return aarch64_classify_symbolic_expression (x)
      == SYMBOL_TINY_ABSOLUTE;
  }
  
+ /* Return a function-invariant register that contains VALUE.  *CACHED_INSN
+    caches instructions that set up such registers, so that they can be
+    reused by future calls.  */
+ 
+ static rtx
+ aarch64_get_shareable_reg (rtx_insn **cached_insn, rtx value)
+ {
+   rtx_insn *insn = *cached_insn;
+   if (insn && INSN_P (insn) && !insn->deleted ())
+     {
+       rtx pat = PATTERN (insn);
+       if (GET_CODE (pat) == SET)
+ 	{
+ 	  rtx dest = SET_DEST (pat);
+ 	  if (REG_P (dest)
+ 	      && !HARD_REGISTER_P (dest)
+ 	      && rtx_equal_p (SET_SRC (pat), value))
+ 	    return dest;
+ 	}
+     }
+   rtx reg = gen_reg_rtx (GET_MODE (value));
+   *cached_insn = emit_insn_before (gen_rtx_SET (reg, value),
+ 				   function_beg_insn);
+   return reg;
+ }
+ 
  /* Create a 0 constant that is based on V4SI to allow CSE to optimally share
     the constant creation.  */
  
  rtx
  aarch64_gen_shareable_zero (machine_mode mode)
  {
!   rtx reg = aarch64_get_shareable_reg (&cfun->machine->advsimd_zero_insn,
! 				       CONST0_RTX (V4SImode));
!   return lowpart_subreg (mode, reg, GET_MODE (reg));
! }
! 
! /* INSN is some form of extension or shift that can be split into a
!    permutation involving a shared zero.  Return true if we should
!    perform such a split.
! 
!    ??? For now, make sure that the split instruction executes more
!    frequently than the zero that feeds it.  In future it would be good
!    to split without that restriction and instead recombine shared zeros
!    if they turn out not to be worthwhile.  This would allow splits in
!    single-block functions and would also cope more naturally with
!    rematerialization.  */
! 
! bool
! aarch64_split_simd_shift_p (rtx_insn *insn)
! {
!   return (can_create_pseudo_p ()
! 	  && optimize_bb_for_speed_p (BLOCK_FOR_INSN (insn))
! 	  && (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count
! 	      < BLOCK_FOR_INSN (insn)->count));
  }
  
  /* Return a const_int vector of VAL.  */
*************** aarch64_stepped_int_parallel_p (rtx op,
*** 21705,21710 ****
--- 23294,23312 ----
    return true;
  }
  
+ /* Return true if OPERANDS[0] to OPERANDS[NUM_OPERANDS - 1] form a
+    sequence of strided registers, with the stride being equal STRIDE.
+    The operands are already known to be FPRs.  */
+ bool
+ aarch64_strided_registers_p (rtx *operands, unsigned int num_operands,
+ 			     unsigned int stride)
+ {
+   for (unsigned int i = 1; i < num_operands; ++i)
+     if (REGNO (operands[i]) != REGNO (operands[0]) + i * stride)
+       return false;
+   return true;
+ }
+ 
  /* Bounds-check lanes.  Ensure OPERAND lies between LOW (inclusive) and
     HIGH (exclusive).  */
  void
*************** aarch64_sve_struct_memory_operand_p (rtx
*** 21874,21879 ****
--- 23476,23506 ----
  	  && offset_4bit_signed_scaled_p (SVE_BYTE_MODE, last));
  }
  
+ /* Return true if OFFSET is a constant integer and if VNUM is
+    OFFSET * the number of bytes in an SVE vector.  This is the requirement
+    that exists in SME LDR and STR instructions, where the VL offset must
+    equal the ZA slice offset.  */
+ bool
+ aarch64_sme_ldr_vnum_offset_p (rtx offset, rtx vnum)
+ {
+   if (!CONST_INT_P (offset) || !IN_RANGE (INTVAL (offset), 0, 15))
+     return false;
+ 
+   if (TARGET_STREAMING)
+     {
+       poly_int64 const_vnum;
+       return (poly_int_rtx_p (vnum, &const_vnum)
+ 	      && known_eq (const_vnum,
+ 			   INTVAL (offset) * BYTES_PER_SVE_VECTOR));
+     }
+   else
+     {
+       HOST_WIDE_INT factor;
+       return (aarch64_sme_vq_unspec_p (vnum, &factor)
+ 	      && factor == INTVAL (offset) * 16);
+     }
+ }
+ 
  /* Emit a register copy from operand to operand, taking care not to
     early-clobber source registers in the process.
  
*************** aarch64_simd_dup_constant (rtx vals)
*** 21998,22004 ****
    /* We can load this constant by using DUP and a constant in a
       single ARM register.  This will be cheaper than a vector
       load.  */
!   x = copy_to_mode_reg (inner_mode, x);
    return gen_vec_duplicate (mode, x);
  }
  
--- 23625,23631 ----
    /* We can load this constant by using DUP and a constant in a
       single ARM register.  This will be cheaper than a vector
       load.  */
!   x = force_reg (inner_mode, x);
    return gen_vec_duplicate (mode, x);
  }
  
*************** aarch64_simd_make_constant (rtx vals)
*** 22053,22063 ****
      return NULL_RTX;
  }
  
! /* Expand a vector initialisation sequence, such that TARGET is
!    initialised to contain VALS.  */
  
  void
! aarch64_expand_vector_init (rtx target, rtx vals)
  {
    machine_mode mode = GET_MODE (target);
    scalar_mode inner_mode = GET_MODE_INNER (mode);
--- 23680,23691 ----
      return NULL_RTX;
  }
  
! /* A subroutine of aarch64_expand_vector_init, with the same interface.
!    The caller has already tried a divide-and-conquer approach, so do
!    not consider that case here.  */
  
  void
! aarch64_expand_vector_init_fallback (rtx target, rtx vals)
  {
    machine_mode mode = GET_MODE (target);
    scalar_mode inner_mode = GET_MODE_INNER (mode);
*************** aarch64_expand_vector_init (rtx target,
*** 22112,22154 ****
    /* Splat a single non-constant element if we can.  */
    if (all_same)
      {
!       rtx x = copy_to_mode_reg (inner_mode, v0);
        aarch64_emit_move (target, gen_vec_duplicate (mode, x));
        return;
      }
  
-   /* Check for interleaving case.
-      For eg if initializer is (int16x8_t) {x, y, x, y, x, y, x, y}.
-      Generate following code:
-      dup v0.h, x
-      dup v1.h, y
-      zip1 v0.h, v0.h, v1.h
-      for "large enough" initializer.  */
- 
-   if (n_elts >= 8)
-     {
-       int i;
-       for (i = 2; i < n_elts; i++)
- 	if (!rtx_equal_p (XVECEXP (vals, 0, i), XVECEXP (vals, 0, i % 2)))
- 	  break;
- 
-       if (i == n_elts)
- 	{
- 	  machine_mode mode = GET_MODE (target);
- 	  rtx dest[2];
- 
- 	  for (int i = 0; i < 2; i++)
- 	    {
- 	      rtx x = expand_vector_broadcast (mode, XVECEXP (vals, 0, i));
- 	      dest[i] = force_reg (mode, x);
- 	    }
- 
- 	  rtvec v = gen_rtvec (2, dest[0], dest[1]);
- 	  emit_set_insn (target, gen_rtx_UNSPEC (mode, v, UNSPEC_ZIP1));
- 	  return;
- 	}
-     }
- 
    enum insn_code icode = optab_handler (vec_set_optab, mode);
    gcc_assert (icode != CODE_FOR_nothing);
  
--- 23740,23750 ----
    /* Splat a single non-constant element if we can.  */
    if (all_same)
      {
!       rtx x = force_reg (inner_mode, v0);
        aarch64_emit_move (target, gen_vec_duplicate (mode, x));
        return;
      }
  
    enum insn_code icode = optab_handler (vec_set_optab, mode);
    gcc_assert (icode != CODE_FOR_nothing);
  
*************** aarch64_expand_vector_init (rtx target,
*** 22160,22166 ****
       and matches[X][1] with the count of duplicate elements (if X is the
       earliest element which has duplicates).  */
  
!   if (n_var == n_elts && n_elts <= 16)
      {
        int matches[16][2] = {0};
        for (int i = 0; i < n_elts; i++)
--- 23756,23762 ----
       and matches[X][1] with the count of duplicate elements (if X is the
       earliest element which has duplicates).  */
  
!   if (n_var >= n_elts - 1 && n_elts <= 16)
      {
        int matches[16][2] = {0};
        for (int i = 0; i < n_elts; i++)
*************** aarch64_expand_vector_init (rtx target,
*** 22177,22188 ****
  	}
        int maxelement = 0;
        int maxv = 0;
        for (int i = 0; i < n_elts; i++)
! 	if (matches[i][1] > maxv)
! 	  {
! 	    maxelement = i;
! 	    maxv = matches[i][1];
! 	  }
  
        /* Create a duplicate of the most common element, unless all elements
  	 are equally useless to us, in which case just immediately set the
--- 23773,23795 ----
  	}
        int maxelement = 0;
        int maxv = 0;
+       rtx const_elem = NULL_RTX;
+       int const_elem_pos = 0;
+ 
        for (int i = 0; i < n_elts; i++)
! 	{
! 	  if (matches[i][1] > maxv)
! 	    {
! 	      maxelement = i;
! 	      maxv = matches[i][1];
! 	    }
! 	  if (CONST_INT_P (XVECEXP (vals, 0, i))
! 	      || CONST_DOUBLE_P (XVECEXP (vals, 0, i)))
! 	    {
! 	      const_elem_pos = i;
! 	      const_elem = XVECEXP (vals, 0, i);
! 	    }
! 	}
  
        /* Create a duplicate of the most common element, unless all elements
  	 are equally useless to us, in which case just immediately set the
*************** aarch64_expand_vector_init (rtx target,
*** 22220,22231 ****
  	     vector register.  For big-endian we want that position to hold
  	     the last element of VALS.  */
  	  maxelement = BYTES_BIG_ENDIAN ? n_elts - 1 : 0;
! 	  rtx x = copy_to_mode_reg (inner_mode, XVECEXP (vals, 0, maxelement));
! 	  aarch64_emit_move (target, lowpart_subreg (mode, x, inner_mode));
  	}
        else
  	{
! 	  rtx x = copy_to_mode_reg (inner_mode, XVECEXP (vals, 0, maxelement));
  	  aarch64_emit_move (target, gen_vec_duplicate (mode, x));
  	}
  
--- 23827,23849 ----
  	     vector register.  For big-endian we want that position to hold
  	     the last element of VALS.  */
  	  maxelement = BYTES_BIG_ENDIAN ? n_elts - 1 : 0;
! 
! 	  /* If we have a single constant element, use that for duplicating
! 	     instead.  */
! 	  if (const_elem)
! 	    {
! 	      maxelement = const_elem_pos;
! 	      aarch64_emit_move (target, gen_vec_duplicate (mode, const_elem));
! 	    }
! 	  else
! 	    {
! 	      rtx x = force_reg (inner_mode, XVECEXP (vals, 0, maxelement));
! 	      aarch64_emit_move (target, lowpart_subreg (mode, x, inner_mode));
! 	    }
  	}
        else
  	{
! 	  rtx x = force_reg (inner_mode, XVECEXP (vals, 0, maxelement));
  	  aarch64_emit_move (target, gen_vec_duplicate (mode, x));
  	}
  
*************** aarch64_expand_vector_init (rtx target,
*** 22235,22241 ****
  	  rtx x = XVECEXP (vals, 0, i);
  	  if (matches[i][0] == maxelement)
  	    continue;
! 	  x = copy_to_mode_reg (inner_mode, x);
  	  emit_insn (GEN_FCN (icode) (target, x, GEN_INT (i)));
  	}
        return;
--- 23853,23859 ----
  	  rtx x = XVECEXP (vals, 0, i);
  	  if (matches[i][0] == maxelement)
  	    continue;
! 	  x = force_reg (inner_mode, x);
  	  emit_insn (GEN_FCN (icode) (target, x, GEN_INT (i)));
  	}
        return;
*************** aarch64_expand_vector_init (rtx target,
*** 22270,22276 ****
  	    }
  	  XVECEXP (copy, 0, i) = subst;
  	}
!       aarch64_expand_vector_init (target, copy);
      }
  
    /* Insert the variable lanes directly.  */
--- 23888,23894 ----
  	    }
  	  XVECEXP (copy, 0, i) = subst;
  	}
!       aarch64_expand_vector_init_fallback (target, copy);
      }
  
    /* Insert the variable lanes directly.  */
*************** aarch64_expand_vector_init (rtx target,
*** 22279,22289 ****
        rtx x = XVECEXP (vals, 0, i);
        if (CONST_INT_P (x) || CONST_DOUBLE_P (x))
  	continue;
!       x = copy_to_mode_reg (inner_mode, x);
        emit_insn (GEN_FCN (icode) (target, x, GEN_INT (i)));
      }
  }
  
  /* Emit RTL corresponding to:
     insr TARGET, ELEM.  */
  
--- 23897,24021 ----
        rtx x = XVECEXP (vals, 0, i);
        if (CONST_INT_P (x) || CONST_DOUBLE_P (x))
  	continue;
!       x = force_reg (inner_mode, x);
        emit_insn (GEN_FCN (icode) (target, x, GEN_INT (i)));
      }
  }
  
+ /* Return even or odd half of VALS depending on EVEN_P.  */
+ 
+ static rtx
+ aarch64_unzip_vector_init (machine_mode mode, rtx vals, bool even_p)
+ {
+   int n = XVECLEN (vals, 0);
+   machine_mode new_mode
+     = aarch64_simd_container_mode (GET_MODE_INNER (mode),
+ 				   GET_MODE_BITSIZE (mode).to_constant () / 2);
+   rtvec vec = rtvec_alloc (n / 2);
+   for (int i = 0; i < n / 2; i++)
+     RTVEC_ELT (vec, i) = (even_p) ? XVECEXP (vals, 0, 2 * i)
+ 				  : XVECEXP (vals, 0, 2 * i + 1);
+   return gen_rtx_PARALLEL (new_mode, vec);
+ }
+ 
+ /* Return true if SET is a scalar move.  */
+ 
+ static bool
+ scalar_move_insn_p (rtx set)
+ {
+   rtx src = SET_SRC (set);
+   rtx dest = SET_DEST (set);
+   return (is_a<scalar_mode> (GET_MODE (dest))
+ 	  && aarch64_mov_operand (src, GET_MODE (dest)));
+ }
+ 
+ /* Similar to seq_cost, but ignore cost for scalar moves.  */
+ 
+ static unsigned
+ seq_cost_ignoring_scalar_moves (const rtx_insn *seq, bool speed)
+ {
+   unsigned cost = 0;
+ 
+   for (; seq; seq = NEXT_INSN (seq))
+     if (NONDEBUG_INSN_P (seq))
+       {
+ 	if (rtx set = single_set (seq))
+ 	  {
+ 	    if (!scalar_move_insn_p (set))
+ 	      cost += set_rtx_cost (set, speed);
+ 	  }
+ 	else
+ 	  {
+ 	    int this_cost = insn_cost (CONST_CAST_RTX_INSN (seq), speed);
+ 	    if (this_cost > 0)
+ 	      cost += this_cost;
+ 	    else
+ 	      cost++;
+ 	  }
+       }
+ 
+   return cost;
+ }
+ 
+ /* Expand a vector initialization sequence, such that TARGET is
+    initialized to contain VALS.  */
+ 
+ void
+ aarch64_expand_vector_init (rtx target, rtx vals)
+ {
+   /* Try decomposing the initializer into even and odd halves and
+      then ZIP them together.  Use the resulting sequence if it is
+      strictly cheaper than loading VALS directly.
+ 
+      Prefer the fallback sequence in the event of a tie, since it
+      will tend to use fewer registers.  */
+ 
+   machine_mode mode = GET_MODE (target);
+   int n_elts = XVECLEN (vals, 0);
+ 
+   if (n_elts < 4
+       || maybe_ne (GET_MODE_BITSIZE (mode), 128))
+     {
+       aarch64_expand_vector_init_fallback (target, vals);
+       return;
+     }
+ 
+   start_sequence ();
+   rtx halves[2];
+   unsigned costs[2];
+   for (int i = 0; i < 2; i++)
+     {
+       start_sequence ();
+       rtx new_vals = aarch64_unzip_vector_init (mode, vals, i == 0);
+       rtx tmp_reg = gen_reg_rtx (GET_MODE (new_vals));
+       aarch64_expand_vector_init (tmp_reg, new_vals);
+       halves[i] = gen_rtx_SUBREG (mode, tmp_reg, 0);
+       rtx_insn *rec_seq = get_insns ();
+       end_sequence ();
+       costs[i] = seq_cost_ignoring_scalar_moves (rec_seq, !optimize_size);
+       emit_insn (rec_seq);
+     }
+ 
+   rtvec v = gen_rtvec (2, halves[0], halves[1]);
+   rtx_insn *zip1_insn
+     = emit_set_insn (target, gen_rtx_UNSPEC (mode, v, UNSPEC_ZIP1));
+   unsigned seq_total_cost
+     = (!optimize_size) ? std::max (costs[0], costs[1]) : costs[0] + costs[1];
+   seq_total_cost += insn_cost (zip1_insn, !optimize_size);
+ 
+   rtx_insn *seq = get_insns ();
+   end_sequence ();
+ 
+   start_sequence ();
+   aarch64_expand_vector_init_fallback (target, vals);
+   rtx_insn *fallback_seq = get_insns ();
+   unsigned fallback_seq_cost
+     = seq_cost_ignoring_scalar_moves (fallback_seq, !optimize_size);
+   end_sequence ();
+ 
+   emit_insn (seq_total_cost < fallback_seq_cost ? seq : fallback_seq);
+ }
+ 
  /* Emit RTL corresponding to:
     insr TARGET, ELEM.  */
  
*************** aarch64_declare_function_name (FILE *str
*** 22747,22753 ****
  
    /* Don't forget the type directive for ELF.  */
    ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "function");
!   ASM_OUTPUT_LABEL (stream, name);
  
    cfun->machine->label_is_assembled = true;
  }
--- 24479,24485 ----
  
    /* Don't forget the type directive for ELF.  */
    ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "function");
!   ASM_OUTPUT_FUNCTION_LABEL (stream, name, fndecl);
  
    cfun->machine->label_is_assembled = true;
  }
*************** void
*** 22833,22839 ****
  aarch64_post_cfi_startproc (FILE *f, tree ignored ATTRIBUTE_UNUSED)
  {
    if (cfun->machine->frame.laid_out && aarch64_return_address_signing_enabled ()
!       && aarch_ra_sign_key == AARCH_KEY_B)
  	asm_fprintf (f, "\t.cfi_b_key_frame\n");
  }
  
--- 24565,24571 ----
  aarch64_post_cfi_startproc (FILE *f, tree ignored ATTRIBUTE_UNUSED)
  {
    if (cfun->machine->frame.laid_out && aarch64_return_address_signing_enabled ()
!       && aarch64_ra_sign_key == AARCH64_KEY_B)
  	asm_fprintf (f, "\t.cfi_b_key_frame\n");
  }
  
*************** aarch64_expand_compare_and_swap (rtx ope
*** 23020,23025 ****
--- 24752,24759 ----
          rval = copy_to_mode_reg (r_mode, oldval);
        else
  	emit_move_insn (rval, gen_lowpart (r_mode, oldval));
+       if (mode == TImode)
+ 	newval = force_reg (mode, newval);
  
        emit_insn (gen_aarch64_compare_and_swap_lse (mode, rval, mem,
  						   newval, mod_s));
*************** aarch64_split_compare_and_swap (rtx oper
*** 23091,23101 ****
    mem = operands[1];
    oldval = operands[2];
    newval = operands[3];
-   is_weak = (operands[4] != const0_rtx);
    model_rtx = operands[5];
    scratch = operands[7];
    mode = GET_MODE (mem);
    model = memmodel_from_int (INTVAL (model_rtx));
  
    /* When OLDVAL is zero and we want the strong version we can emit a tighter
      loop:
--- 24825,24835 ----
    mem = operands[1];
    oldval = operands[2];
    newval = operands[3];
    model_rtx = operands[5];
    scratch = operands[7];
    mode = GET_MODE (mem);
    model = memmodel_from_int (INTVAL (model_rtx));
+   is_weak = operands[4] != const0_rtx && mode != TImode;
  
    /* When OLDVAL is zero and we want the strong version we can emit a tighter
      loop:
*************** aarch64_split_compare_and_swap (rtx oper
*** 23139,23161 ****
  
    if (!is_weak)
      {
!       if (aarch64_track_speculation)
! 	{
! 	  /* Emit an explicit compare instruction, so that we can correctly
! 	     track the condition codes.  */
! 	  rtx cc_reg = aarch64_gen_compare_reg (NE, scratch, const0_rtx);
! 	  x = gen_rtx_NE (GET_MODE (cc_reg), cc_reg, const0_rtx);
! 	}
!       else
! 	x = gen_rtx_NE (VOIDmode, scratch, const0_rtx);
! 
!       x = gen_rtx_IF_THEN_ELSE (VOIDmode, x,
! 				gen_rtx_LABEL_REF (Pmode, label1), pc_rtx);
!       aarch64_emit_unlikely_jump (gen_rtx_SET (pc_rtx, x));
      }
    else
      aarch64_gen_compare_reg (NE, scratch, const0_rtx);
  
    emit_label (label2);
  
    /* If we used a CBNZ in the exchange loop emit an explicit compare with RVAL
--- 24873,24901 ----
  
    if (!is_weak)
      {
!       x = aarch64_gen_compare_zero_and_branch (NE, scratch, label1);
!       aarch64_emit_unlikely_jump (x);
      }
    else
      aarch64_gen_compare_reg (NE, scratch, const0_rtx);
  
+   /* 128-bit LDAXP is not atomic unless STLXP succeeds.  So for a mismatch,
+      store the returned value and loop if the STLXP fails.  */
+   if (mode == TImode)
+     {
+       rtx_code_label *label3 = gen_label_rtx ();
+       emit_jump_insn (gen_rtx_SET (pc_rtx, gen_rtx_LABEL_REF (Pmode, label3)));
+       emit_barrier ();
+ 
+       emit_label (label2);
+       aarch64_emit_store_exclusive (mode, scratch, mem, rval, model_rtx);
+ 
+       x = aarch64_gen_compare_zero_and_branch (NE, scratch, label1);
+       aarch64_emit_unlikely_jump (x);
+ 
+       label2 = label3;
+     }
+ 
    emit_label (label2);
  
    /* If we used a CBNZ in the exchange loop emit an explicit compare with RVAL
*************** aarch64_split_atomic_op (enum rtx_code c
*** 23235,23253 ****
    aarch64_emit_store_exclusive (mode, cond, mem,
  				gen_lowpart (mode, new_out), model_rtx);
  
!   if (aarch64_track_speculation)
!     {
!       /* Emit an explicit compare instruction, so that we can correctly
! 	 track the condition codes.  */
!       rtx cc_reg = aarch64_gen_compare_reg (NE, cond, const0_rtx);
!       x = gen_rtx_NE (GET_MODE (cc_reg), cc_reg, const0_rtx);
!     }
!   else
!     x = gen_rtx_NE (VOIDmode, cond, const0_rtx);
! 
!   x = gen_rtx_IF_THEN_ELSE (VOIDmode, x,
! 			    gen_rtx_LABEL_REF (Pmode, label), pc_rtx);
!   aarch64_emit_unlikely_jump (gen_rtx_SET (pc_rtx, x));
  
    /* Emit any final barrier needed for a __sync operation.  */
    if (is_sync)
--- 24975,24982 ----
    aarch64_emit_store_exclusive (mode, cond, mem,
  				gen_lowpart (mode, new_out), model_rtx);
  
!   x = aarch64_gen_compare_zero_and_branch (NE, cond, label);
!   aarch64_emit_unlikely_jump (x);
  
    /* Emit any final barrier needed for a __sync operation.  */
    if (is_sync)
*************** aarch64_float_const_representable_p (rtx
*** 23333,23338 ****
--- 25062,25071 ----
        || REAL_VALUE_MINUS_ZERO (r))
      return false;
  
+   /* For BFmode, only handle 0.0. */
+   if (GET_MODE (x) == BFmode)
+     return real_iszero (&r, false);
+ 
    /* Extract exponent.  */
    r = real_value_abs (&r);
    exponent = REAL_EXP (&r);
*************** aarch64_evpc_ext (struct expand_vec_perm
*** 23983,23989 ****
  
    /* The first element always refers to the first vector.
       Check if the extracted indices are increasing by one.  */
!   if (d->vec_flags == VEC_SVE_PRED
        || !d->perm[0].is_constant (&location)
        || !d->perm.series_p (0, 1, location, 1))
      return false;
--- 25716,25722 ----
  
    /* The first element always refers to the first vector.
       Check if the extracted indices are increasing by one.  */
!   if ((d->vec_flags & VEC_SVE_PRED)
        || !d->perm[0].is_constant (&location)
        || !d->perm.series_p (0, 1, location, 1))
      return false;
*************** aarch64_evpc_rev_local (struct expand_ve
*** 24027,24033 ****
    unsigned int i, size, unspec;
    machine_mode pred_mode;
  
!   if (d->vec_flags == VEC_SVE_PRED
        || !d->one_vector_p
        || !d->perm[0].is_constant (&diff)
        || !diff)
--- 25760,25766 ----
    unsigned int i, size, unspec;
    machine_mode pred_mode;
  
!   if ((d->vec_flags & VEC_SVE_PRED)
        || !d->one_vector_p
        || !d->perm[0].is_constant (&diff)
        || !diff)
*************** aarch64_evpc_dup (struct expand_vec_perm
*** 24108,24114 ****
    machine_mode vmode = d->vmode;
    rtx lane;
  
!   if (d->vec_flags == VEC_SVE_PRED
        || d->perm.encoding ().encoded_nelts () != 1
        || !d->perm[0].is_constant (&elt))
      return false;
--- 25841,25847 ----
    machine_mode vmode = d->vmode;
    rtx lane;
  
!   if ((d->vec_flags & VEC_SVE_PRED)
        || d->perm.encoding ().encoded_nelts () != 1
        || !d->perm[0].is_constant (&elt))
      return false;
*************** aarch64_expand_sve_vcond (machine_mode d
*** 24701,24741 ****
    emit_set_insn (ops[0], gen_rtx_UNSPEC (data_mode, vec, UNSPEC_SEL));
  }
  
! /* Implement TARGET_MODES_TIEABLE_P.  In principle we should always return
!    true.  However due to issues with register allocation it is preferable
!    to avoid tieing integer scalar and FP scalar modes.  Executing integer
!    operations in general registers is better than treating them as scalar
!    vector operations.  This reduces latency and avoids redundant int<->FP
!    moves.  So tie modes if they are either the same class, or vector modes
!    with other vector modes, vector structs or any scalar mode.  */
  
  static bool
! aarch64_modes_tieable_p (machine_mode mode1, machine_mode mode2)
  {
!   if ((aarch64_advsimd_partial_struct_mode_p (mode1)
!        != aarch64_advsimd_partial_struct_mode_p (mode2))
        && maybe_gt (GET_MODE_SIZE (mode1), 8)
        && maybe_gt (GET_MODE_SIZE (mode2), 8))
      return false;
  
!   if (GET_MODE_CLASS (mode1) == GET_MODE_CLASS (mode2))
!     return true;
  
!   /* We specifically want to allow elements of "structure" modes to
!      be tieable to the structure.  This more general condition allows
!      other rarer situations too.  The reason we don't extend this to
!      predicate modes is that there are no predicate structure modes
!      nor any specific instructions for extracting part of a predicate
!      register.  */
!   if (aarch64_vector_data_mode_p (mode1)
!       && aarch64_vector_data_mode_p (mode2))
!     return true;
  
!   /* Also allow any scalar modes with vectors.  */
!   if (aarch64_vector_mode_supported_p (mode1)
!       || aarch64_vector_mode_supported_p (mode2))
!     return true;
  
    return false;
  }
  
--- 26434,26564 ----
    emit_set_insn (ops[0], gen_rtx_UNSPEC (data_mode, vec, UNSPEC_SEL));
  }
  
! /* Return true if:
! 
!    (a) MODE1 and MODE2 use the same layout for bytes that are common
!        to both modes;
! 
!    (b) subregs involving the two modes behave as the target-independent
!        subreg rules require; and
! 
!    (c) there is at least one register that can hold both modes.
! 
!    Return false otherwise.  */
  
  static bool
! aarch64_modes_compatible_p (machine_mode mode1, machine_mode mode2)
  {
!   unsigned int flags1 = aarch64_classify_vector_mode (mode1);
!   unsigned int flags2 = aarch64_classify_vector_mode (mode2);
! 
!   bool sve1_p = (flags1 & VEC_ANY_SVE);
!   bool sve2_p = (flags2 & VEC_ANY_SVE);
! 
!   bool partial_sve1_p = sve1_p && (flags1 & VEC_PARTIAL);
!   bool partial_sve2_p = sve2_p && (flags2 & VEC_PARTIAL);
! 
!   bool pred1_p = (flags1 & VEC_SVE_PRED);
!   bool pred2_p = (flags2 & VEC_SVE_PRED);
! 
!   bool partial_advsimd_struct1_p = (flags1 == (VEC_ADVSIMD | VEC_STRUCT
! 					       | VEC_PARTIAL));
!   bool partial_advsimd_struct2_p = (flags2 == (VEC_ADVSIMD | VEC_STRUCT
! 					       | VEC_PARTIAL));
! 
!   /* Don't allow changes between predicate modes and other modes.
!      Only predicate registers can hold predicate modes and only
!      non-predicate registers can hold non-predicate modes, so any
!      attempt to mix them would require a round trip through memory.  */
!   if (pred1_p != pred2_p)
!     return false;
! 
!   /* The contents of partial SVE modes are distributed evenly across
!      the register, whereas GCC expects them to be clustered together.
!      We therefore need to be careful about mode changes involving them.  */
!   if (partial_sve1_p && partial_sve2_p)
!     {
!       /* Reject changes between partial SVE modes that have different
! 	 patterns of significant and insignificant bits.  */
!       if ((aarch64_sve_container_bits (mode1)
! 	   != aarch64_sve_container_bits (mode2))
! 	  || GET_MODE_UNIT_SIZE (mode1) != GET_MODE_UNIT_SIZE (mode2))
! 	return false;
!     }
!   else if (partial_sve1_p)
!     {
!       /* The first lane of MODE1 is where GCC expects it, but anything
! 	 bigger than that is not.  */
!       if (maybe_gt (GET_MODE_SIZE (mode2), GET_MODE_UNIT_SIZE (mode1)))
! 	return false;
!     }
!   else if (partial_sve2_p)
!     {
!       /* Similarly in reverse.  */
!       if (maybe_gt (GET_MODE_SIZE (mode1), GET_MODE_UNIT_SIZE (mode2)))
! 	return false;
!     }
! 
!   /* Don't allow changes between partial Advanced SIMD structure modes
!      and other modes that are bigger than 8 bytes.  E.g. V16QI and V2x8QI
!      are the same size, but the former occupies one Q register while the
!      latter occupies two D registers.  */
!   if (partial_advsimd_struct1_p != partial_advsimd_struct2_p
        && maybe_gt (GET_MODE_SIZE (mode1), 8)
        && maybe_gt (GET_MODE_SIZE (mode2), 8))
      return false;
  
!   if (maybe_ne (BITS_PER_SVE_VECTOR, 128u))
!     {
!       /* Don't allow changes between SVE modes and other modes that might
! 	 be bigger than 128 bits.  In particular, OImode, CImode and XImode
! 	 divide into 128-bit quantities while SVE modes divide into
! 	 BITS_PER_SVE_VECTOR quantities.  */
!       if (sve1_p && !sve2_p && maybe_gt (GET_MODE_BITSIZE (mode2), 128))
! 	return false;
!       if (sve2_p && !sve1_p && maybe_gt (GET_MODE_BITSIZE (mode1), 128))
! 	return false;
!     }
  
!   if (BYTES_BIG_ENDIAN)
!     {
!       /* Don't allow changes between SVE data modes and non-SVE modes.
! 	 See the comment at the head of aarch64-sve.md for details.  */
!       if (sve1_p != sve2_p)
! 	return false;
  
!       /* Don't allow changes in element size: lane 0 of the new vector
! 	 would not then be lane 0 of the old vector.  See the comment
! 	 above aarch64_maybe_expand_sve_subreg_move for a more detailed
! 	 description.
  
+ 	 In the worst case, this forces a register to be spilled in
+ 	 one mode and reloaded in the other, which handles the
+ 	 endianness correctly.  */
+       if (sve1_p && GET_MODE_UNIT_SIZE (mode1) != GET_MODE_UNIT_SIZE (mode2))
+ 	return false;
+     }
+   return true;
+ }
+ 
+ /* Implement TARGET_MODES_TIEABLE_P.  In principle we should always defer
+    to aarch64_modes_compatible_p.  However due to issues with register
+    allocation it is preferable to avoid tieing integer scalar and FP
+    scalar modes.  Executing integer operations in general registers is
+    better than treating them as scalar vector operations.  This reduces
+    latency and avoids redundant int<->FP moves.  So tie modes if they
+    are either the same class, or one of them is a vector mode.  */
+ 
+ static bool
+ aarch64_modes_tieable_p (machine_mode mode1, machine_mode mode2)
+ {
+   if (aarch64_modes_compatible_p (mode1, mode2))
+     {
+       if (GET_MODE_CLASS (mode1) == GET_MODE_CLASS (mode2))
+ 	return true;
+       if (VECTOR_MODE_P (mode1) || VECTOR_MODE_P (mode2))
+ 	return true;
+     }
    return false;
  }
  
*************** aarch64_progress_pointer (rtx pointer)
*** 24760,24810 ****
    return aarch64_move_pointer (pointer, GET_MODE_SIZE (GET_MODE (pointer)));
  }
  
! /* Copy one MODE sized block from SRC to DST, then progress SRC and DST by
!    MODE bytes.  */
! 
! static void
! aarch64_copy_one_block_and_progress_pointers (rtx *src, rtx *dst,
! 					      machine_mode mode)
! {
!   /* Handle 256-bit memcpy separately.  We do this by making 2 adjacent memory
!      address copies using V4SImode so that we can use Q registers.  */
!   if (known_eq (GET_MODE_BITSIZE (mode), 256))
!     {
!       mode = V4SImode;
!       rtx reg1 = gen_reg_rtx (mode);
!       rtx reg2 = gen_reg_rtx (mode);
!       /* "Cast" the pointers to the correct mode.  */
!       *src = adjust_address (*src, mode, 0);
!       *dst = adjust_address (*dst, mode, 0);
!       /* Emit the memcpy.  */
!       emit_insn (aarch64_gen_load_pair (mode, reg1, *src, reg2,
! 					aarch64_progress_pointer (*src)));
!       emit_insn (aarch64_gen_store_pair (mode, *dst, reg1,
! 					 aarch64_progress_pointer (*dst), reg2));
!       /* Move the pointers forward.  */
!       *src = aarch64_move_pointer (*src, 32);
!       *dst = aarch64_move_pointer (*dst, 32);
!       return;
!     }
! 
!   rtx reg = gen_reg_rtx (mode);
! 
!   /* "Cast" the pointers to the correct mode.  */
!   *src = adjust_address (*src, mode, 0);
!   *dst = adjust_address (*dst, mode, 0);
!   /* Emit the memcpy.  */
!   emit_move_insn (reg, *src);
!   emit_move_insn (*dst, reg);
!   /* Move the pointers forward.  */
!   *src = aarch64_progress_pointer (*src);
!   *dst = aarch64_progress_pointer (*dst);
! }
! 
! /* Expand a cpymem using the MOPS extension.  OPERANDS are taken
!    from the cpymem pattern.  Return true iff we succeeded.  */
! static bool
! aarch64_expand_cpymem_mops (rtx *operands)
  {
    if (!TARGET_MOPS)
      return false;
--- 26583,26593 ----
    return aarch64_move_pointer (pointer, GET_MODE_SIZE (GET_MODE (pointer)));
  }
  
! /* Expand a cpymem/movmem using the MOPS extension.  OPERANDS are taken
!    from the cpymem/movmem pattern.  IS_MEMMOVE is true if this is a memmove
!    rather than memcpy.  Return true iff we succeeded.  */
! bool
! aarch64_expand_cpymem_mops (rtx *operands, bool is_memmove)
  {
    if (!TARGET_MOPS)
      return false;
*************** aarch64_expand_cpymem_mops (rtx *operand
*** 24816,24875 ****
    rtx dst_mem = replace_equiv_address (operands[0], dst_addr);
    rtx src_mem = replace_equiv_address (operands[1], src_addr);
    rtx sz_reg = copy_to_mode_reg (DImode, operands[2]);
!   emit_insn (gen_aarch64_cpymemdi (dst_mem, src_mem, sz_reg));
! 
    return true;
  }
  
! /* Expand cpymem, as if from a __builtin_memcpy.  Return true if
!    we succeed, otherwise return false, indicating that a libcall to
!    memcpy should be emitted.  */
! 
  bool
! aarch64_expand_cpymem (rtx *operands)
  {
!   int mode_bits;
    rtx dst = operands[0];
    rtx src = operands[1];
    rtx base;
!   machine_mode cur_mode = BLKmode;
! 
!   /* Variable-sized memcpy can go through the MOPS expansion if available.  */
!   if (!CONST_INT_P (operands[2]))
!     return aarch64_expand_cpymem_mops (operands);
! 
!   unsigned HOST_WIDE_INT size = INTVAL (operands[2]);
  
!   /* Try to inline up to 256 bytes or use the MOPS threshold if available.  */
!   unsigned HOST_WIDE_INT max_copy_size
!     = TARGET_MOPS ? aarch64_mops_memcpy_size_threshold : 256;
  
!   bool size_p = optimize_function_for_size_p (cfun);
  
!   /* Large constant-sized cpymem should go through MOPS when possible.
!      It should be a win even for size optimization in the general case.
!      For speed optimization the choice between MOPS and the SIMD sequence
!      depends on the size of the copy, rather than number of instructions,
!      alignment etc.  */
!   if (size > max_copy_size)
!     return aarch64_expand_cpymem_mops (operands);
  
!   int copy_bits = 256;
  
!   /* Default to 256-bit LDP/STP on large copies, however small copies, no SIMD
!      support or slow 256-bit LDP/STP fall back to 128-bit chunks.  */
!   if (size <= 24
!       || !TARGET_SIMD
!       || (aarch64_tune_params.extra_tuning_flags
! 	  & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS))
!     copy_bits = 128;
  
!   /* Emit an inline load+store sequence and count the number of operations
!      involved.  We use a simple count of just the loads and stores emitted
!      rather than rtx_insn count as all the pointer adjustments and reg copying
!      in this function will get optimized away later in the pipeline.  */
!   start_sequence ();
!   unsigned nops = 0;
  
    base = copy_to_mode_reg (Pmode, XEXP (dst, 0));
    dst = adjust_automodify_address (dst, VOIDmode, base, 0);
--- 26599,26652 ----
    rtx dst_mem = replace_equiv_address (operands[0], dst_addr);
    rtx src_mem = replace_equiv_address (operands[1], src_addr);
    rtx sz_reg = copy_to_mode_reg (DImode, operands[2]);
!   if (is_memmove)
!     emit_insn (gen_aarch64_movmemdi (dst_mem, src_mem, sz_reg));
!   else
!     emit_insn (gen_aarch64_cpymemdi (dst_mem, src_mem, sz_reg));
    return true;
  }
  
! /* Expand cpymem/movmem, as if from a __builtin_memcpy/memmove.
!    OPERANDS are taken from the cpymem/movmem pattern.  IS_MEMMOVE is true
!    if this is a memmove rather than memcpy.  Return true if we succeed,
!    otherwise return false, indicating that a libcall should be emitted.  */
  bool
! aarch64_expand_cpymem (rtx *operands, bool is_memmove)
  {
!   int mode_bytes;
    rtx dst = operands[0];
    rtx src = operands[1];
+   unsigned align = UINTVAL (operands[3]);
    rtx base;
!   machine_mode mode = BLKmode, next_mode;
  
!   /* Variable-sized or strict-align copies may use the MOPS expansion.  */
!   if (!CONST_INT_P (operands[2]) || (STRICT_ALIGNMENT && align < 16))
!     return aarch64_expand_cpymem_mops (operands, is_memmove);
  
!   unsigned HOST_WIDE_INT size = UINTVAL (operands[2]);
!   bool use_ldpq = TARGET_SIMD && !(aarch64_tune_params.extra_tuning_flags
! 				   & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS);
  
!   /* Set inline limits for memmove/memcpy.  MOPS has a separate threshold.  */
!   unsigned max_copy_size = use_ldpq ? 256 : 128;
!   unsigned mops_threshold = is_memmove ? aarch64_mops_memmove_size_threshold
! 				       : aarch64_mops_memcpy_size_threshold;
  
!   /* Reduce the maximum size with -Os.  */
!   if (optimize_function_for_size_p (cfun))
!     max_copy_size /= 4;
  
!   /* Large copies use MOPS when available or a library call.  */
!   if (size > max_copy_size || (TARGET_MOPS && size > mops_threshold))
!     return aarch64_expand_cpymem_mops (operands, is_memmove);
  
!   /* Default to 32-byte LDP/STP on large copies, however small copies or
!      no SIMD support fall back to 16-byte chunks.
!      ??? Although it would be possible to use LDP/STP Qn in streaming mode
!      (so using TARGET_BASE_SIMD instead of TARGET_SIMD), it isn't clear
!      whether that would improve performance.  */
!   bool use_qregs = size > 24 && TARGET_SIMD;
  
    base = copy_to_mode_reg (Pmode, XEXP (dst, 0));
    dst = adjust_automodify_address (dst, VOIDmode, base, 0);
*************** aarch64_expand_cpymem (rtx *operands)
*** 24877,24945 ****
    base = copy_to_mode_reg (Pmode, XEXP (src, 0));
    src = adjust_automodify_address (src, VOIDmode, base, 0);
  
!   /* Convert size to bits to make the rest of the code simpler.  */
!   int n = size * BITS_PER_UNIT;
  
!   while (n > 0)
      {
        /* Find the largest mode in which to do the copy in without over reading
  	 or writing.  */
        opt_scalar_int_mode mode_iter;
        FOR_EACH_MODE_IN_CLASS (mode_iter, MODE_INT)
! 	if (GET_MODE_BITSIZE (mode_iter.require ()) <= MIN (n, copy_bits))
! 	  cur_mode = mode_iter.require ();
  
!       gcc_assert (cur_mode != BLKmode);
  
!       mode_bits = GET_MODE_BITSIZE (cur_mode).to_constant ();
  
!       /* Prefer Q-register accesses for the last bytes.  */
!       if (mode_bits == 128 && copy_bits == 256)
! 	cur_mode = V4SImode;
  
!       aarch64_copy_one_block_and_progress_pointers (&src, &dst, cur_mode);
!       /* A single block copy is 1 load + 1 store.  */
!       nops += 2;
!       n -= mode_bits;
  
        /* Emit trailing copies using overlapping unaligned accesses
! 	(when !STRICT_ALIGNMENT) - this is smaller and faster.  */
!       if (n > 0 && n < copy_bits / 2 && !STRICT_ALIGNMENT)
  	{
! 	  machine_mode next_mode = smallest_mode_for_size (n, MODE_INT);
! 	  int n_bits = GET_MODE_BITSIZE (next_mode).to_constant ();
! 	  gcc_assert (n_bits <= mode_bits);
! 	  src = aarch64_move_pointer (src, (n - n_bits) / BITS_PER_UNIT);
! 	  dst = aarch64_move_pointer (dst, (n - n_bits) / BITS_PER_UNIT);
! 	  n = n_bits;
  	}
      }
-   rtx_insn *seq = get_insns ();
-   end_sequence ();
-   /* MOPS sequence requires 3 instructions for the memory copying + 1 to move
-      the constant size into a register.  */
-   unsigned mops_cost = 3 + 1;
  
!   /* If MOPS is available at this point we don't consider the libcall as it's
!      not a win even on code size.  At this point only consider MOPS if
!      optimizing for size.  For speed optimizations we will have chosen between
!      the two based on copy size already.  */
!   if (TARGET_MOPS)
      {
!       if (size_p && mops_cost < nops)
! 	return aarch64_expand_cpymem_mops (operands);
!       emit_insn (seq);
!       return true;
      }
- 
-   /* A memcpy libcall in the worst case takes 3 instructions to prepare the
-      arguments + 1 for the call.  When MOPS is not available and we're
-      optimizing for size a libcall may be preferable.  */
-   unsigned libcall_cost = 4;
-   if (size_p && libcall_cost < nops)
-     return false;
- 
-   emit_insn (seq);
    return true;
  }
  
--- 26654,26712 ----
    base = copy_to_mode_reg (Pmode, XEXP (src, 0));
    src = adjust_automodify_address (src, VOIDmode, base, 0);
  
!   auto_vec<std::pair<rtx, rtx>, 16> ops;
!   int offset = 0;
  
!   while (size > 0)
      {
        /* Find the largest mode in which to do the copy in without over reading
  	 or writing.  */
        opt_scalar_int_mode mode_iter;
        FOR_EACH_MODE_IN_CLASS (mode_iter, MODE_INT)
! 	if (GET_MODE_SIZE (mode_iter.require ()) <= MIN (size, 16))
! 	  mode = mode_iter.require ();
  
!       gcc_assert (mode != BLKmode);
  
!       mode_bytes = GET_MODE_SIZE (mode).to_constant ();
  
!       /* Prefer Q-register accesses.  */
!       if (mode_bytes == 16 && use_qregs)
! 	mode = V4SImode;
  
!       rtx reg = gen_reg_rtx (mode);
!       rtx load = gen_move_insn (reg, adjust_address (src, mode, offset));
!       rtx store = gen_move_insn (adjust_address (dst, mode, offset), reg);
!       ops.safe_push ({ load, store });
!       size -= mode_bytes;
!       offset += mode_bytes;
  
        /* Emit trailing copies using overlapping unaligned accesses
! 	 (when !STRICT_ALIGNMENT) - this is smaller and faster.  */
!       if (size > 0 && size < 16 && !STRICT_ALIGNMENT)
  	{
! 	  next_mode = smallest_mode_for_size (size * BITS_PER_UNIT, MODE_INT);
! 	  int n_bytes = GET_MODE_SIZE (next_mode).to_constant ();
! 	  gcc_assert (n_bytes <= mode_bytes);
! 	  offset -= n_bytes - size;
! 	  size = n_bytes;
  	}
      }
  
!   /* Memcpy interleaves loads with stores, memmove emits all loads first.  */
!   int nops = ops.length();
!   int inc = is_memmove || nops <= 8 ? nops : 6;
! 
!   for (int i = 0; i < nops; i += inc)
      {
!       int m = MIN (nops, i + inc);
!       /* Emit loads.  */
!       for (int j = i; j < m; j++)
! 	emit_insn (ops[j].first);
!       /* Emit stores.  */
!       for (int j = i; j < m; j++)
! 	emit_insn (ops[j].second);
      }
    return true;
  }
  
*************** aarch64_set_one_block_and_progress_point
*** 24957,24964 ****
        /* "Cast" the *dst to the correct mode.  */
        *dst = adjust_address (*dst, mode, 0);
        /* Emit the memset.  */
!       emit_insn (aarch64_gen_store_pair (mode, *dst, src,
! 					 aarch64_progress_pointer (*dst), src));
  
        /* Move the pointers forward.  */
        *dst = aarch64_move_pointer (*dst, 32);
--- 26724,26731 ----
        /* "Cast" the *dst to the correct mode.  */
        *dst = adjust_address (*dst, mode, 0);
        /* Emit the memset.  */
!       emit_move_insn (*dst, src);
!       emit_move_insn (aarch64_move_pointer (*dst, 16), src);
  
        /* Move the pointers forward.  */
        *dst = aarch64_move_pointer (*dst, 32);
*************** aarch64_expand_setmem (rtx *operands)
*** 25015,25026 ****
    unsigned HOST_WIDE_INT len;
    rtx dst = operands[0];
    rtx val = operands[2], src;
    rtx base;
    machine_mode cur_mode = BLKmode, next_mode;
  
!   /* If we don't have SIMD registers or the size is variable use the MOPS
!      inlined sequence if possible.  */
!   if (!CONST_INT_P (operands[1]) || !TARGET_SIMD)
      return aarch64_expand_setmem_mops (operands);
  
    bool size_p = optimize_function_for_size_p (cfun);
--- 26782,26794 ----
    unsigned HOST_WIDE_INT len;
    rtx dst = operands[0];
    rtx val = operands[2], src;
+   unsigned align = UINTVAL (operands[3]);
    rtx base;
    machine_mode cur_mode = BLKmode, next_mode;
  
!   /* Variable-sized or strict-align memset may use the MOPS expansion.  */
!   if (!CONST_INT_P (operands[1]) || !TARGET_SIMD
!       || (STRICT_ALIGNMENT && align < 16))
      return aarch64_expand_setmem_mops (operands);
  
    bool size_p = optimize_function_for_size_p (cfun);
*************** aarch64_expand_setmem (rtx *operands)
*** 25028,25037 ****
    /* Default the maximum to 256-bytes when considering only libcall vs
       SIMD broadcast sequence.  */
    unsigned max_set_size = 256;
  
!   len = INTVAL (operands[1]);
!   if (len > max_set_size && !TARGET_MOPS)
!     return false;
  
    int cst_val = !!(CONST_INT_P (val) && (INTVAL (val) != 0));
    /* The MOPS sequence takes:
--- 26796,26808 ----
    /* Default the maximum to 256-bytes when considering only libcall vs
       SIMD broadcast sequence.  */
    unsigned max_set_size = 256;
+   unsigned mops_threshold = aarch64_mops_memset_size_threshold;
  
!   len = UINTVAL (operands[1]);
! 
!   /* Large memset uses MOPS when available or a library call.  */
!   if (len > max_set_size || (TARGET_MOPS && len > mops_threshold))
!     return aarch64_expand_setmem_mops (operands);
  
    int cst_val = !!(CONST_INT_P (val) && (INTVAL (val) != 0));
    /* The MOPS sequence takes:
*************** aarch64_expand_setmem (rtx *operands)
*** 25044,25055 ****
       the arguments + 1 for the call.  */
    unsigned libcall_cost = 4;
  
-   /* Upper bound check.  For large constant-sized setmem use the MOPS sequence
-      when available.  */
-   if (TARGET_MOPS
-       && len >= (unsigned HOST_WIDE_INT) aarch64_mops_memset_size_threshold)
-     return aarch64_expand_setmem_mops (operands);
- 
    /* Attempt a sequence with a vector broadcast followed by stores.
       Count the number of operations involved to see if it's worth it
       against the alternatives.  A simple counter simd_ops on the
--- 26815,26820 ----
*************** aarch64_expand_setmem (rtx *operands)
*** 25091,25100 ****
        simd_ops++;
        n -= mode_bits;
  
!       /* Do certain trailing copies as overlapping if it's going to be
! 	 cheaper.  i.e. less instructions to do so.  For instance doing a 15
! 	 byte copy it's more efficient to do two overlapping 8 byte copies than
! 	 8 + 4 + 2 + 1.  Only do this when -mstrict-align is not supplied.  */
        if (n > 0 && n < copy_limit / 2 && !STRICT_ALIGNMENT)
  	{
  	  next_mode = smallest_mode_for_size (n, MODE_INT);
--- 26856,26863 ----
        simd_ops++;
        n -= mode_bits;
  
!       /* Emit trailing writes using overlapping unaligned accesses
! 	(when !STRICT_ALIGNMENT) - this is smaller and faster.  */
        if (n > 0 && n < copy_limit / 2 && !STRICT_ALIGNMENT)
  	{
  	  next_mode = smallest_mode_for_size (n, MODE_INT);
*************** aarch64_split_dimode_const_store (rtx ds
*** 25142,25149 ****
    rtx lo = gen_lowpart (SImode, src);
    rtx hi = gen_highpart_mode (SImode, DImode, src);
  
-   bool size_p = optimize_function_for_size_p (cfun);
- 
    if (!rtx_equal_p (lo, hi))
      return false;
  
--- 26905,26910 ----
*************** aarch64_split_dimode_const_store (rtx ds
*** 25162,25175 ****
       MOV	w1, 49370
       MOVK	w1, 0x140, lsl 16
       STP	w1, w1, [x0]
!    So we want to perform this only when we save two instructions
!    or more.  When optimizing for size, however, accept any code size
!    savings we can.  */
!   if (size_p && orig_cost <= lo_cost)
!     return false;
! 
!   if (!size_p
!       && (orig_cost <= lo_cost + 1))
      return false;
  
    rtx mem_lo = adjust_address (dst, SImode, 0);
--- 26923,26930 ----
       MOV	w1, 49370
       MOVK	w1, 0x140, lsl 16
       STP	w1, w1, [x0]
!    So we want to perform this when we save at least one instruction.  */
!   if (orig_cost <= lo_cost)
      return false;
  
    rtx mem_lo = adjust_address (dst, SImode, 0);
*************** aarch64_asan_shadow_offset (void)
*** 25332,25338 ****
  
  static rtx
  aarch64_gen_ccmp_first (rtx_insn **prep_seq, rtx_insn **gen_seq,
! 			int code, tree treeop0, tree treeop1)
  {
    machine_mode op_mode, cmp_mode, cc_mode = CCmode;
    rtx op0, op1;
--- 27087,27093 ----
  
  static rtx
  aarch64_gen_ccmp_first (rtx_insn **prep_seq, rtx_insn **gen_seq,
! 			rtx_code code, tree treeop0, tree treeop1)
  {
    machine_mode op_mode, cmp_mode, cc_mode = CCmode;
    rtx op0, op1;
*************** aarch64_gen_ccmp_first (rtx_insn **prep_
*** 25406,25412 ****
  
  static rtx
  aarch64_gen_ccmp_next (rtx_insn **prep_seq, rtx_insn **gen_seq, rtx prev,
! 		       int cmp_code, tree treeop0, tree treeop1, int bit_code)
  {
    rtx op0, op1, target;
    machine_mode op_mode, cmp_mode, cc_mode = CCmode;
--- 27161,27168 ----
  
  static rtx
  aarch64_gen_ccmp_next (rtx_insn **prep_seq, rtx_insn **gen_seq, rtx prev,
! 		       rtx_code cmp_code, tree treeop0, tree treeop1,
! 		       rtx_code bit_code)
  {
    rtx op0, op1, target;
    machine_mode op_mode, cmp_mode, cc_mode = CCmode;
*************** aarch64_check_consecutive_mems (rtx *mem
*** 26026,26031 ****
--- 27782,27801 ----
    return false;
  }
  
+ /* Test if MODE is suitable for a single transfer register in an ldp or stp
+    instruction.  */
+ 
+ bool
+ aarch64_ldpstp_operand_mode_p (machine_mode mode)
+ {
+   if (!targetm.hard_regno_mode_ok (V0_REGNUM, mode)
+       || hard_regno_nregs (V0_REGNUM, mode) > 1)
+     return false;
+ 
+   const auto size = GET_MODE_SIZE (mode);
+   return known_eq (size, 4) || known_eq (size, 8) || known_eq (size, 16);
+ }
+ 
  /* Return true if MEM1 and MEM2 can be combined into a single access
     of mode MODE, with the combined access having the same address as MEM1.  */
  
*************** aarch64_mergeable_load_pair_p (machine_m
*** 26037,26067 ****
    return aarch64_check_consecutive_mems (&mem1, &mem2, nullptr);
  }
  
  /* Given OPERANDS of consecutive load/store, check if we can merge
!    them into ldp/stp.  LOAD is true if they are load instructions.
!    MODE is the mode of memory operands.  */
  
  bool
! aarch64_operands_ok_for_ldpstp (rtx *operands, bool load,
! 				machine_mode mode)
  {
    enum reg_class rclass_1, rclass_2;
    rtx mem_1, mem_2, reg_1, reg_2;
  
-   /* Allow the tuning structure to disable LDP instruction formation
-      from combining instructions (e.g., in peephole2).
-      TODO: Implement fine-grained tuning control for LDP and STP:
- 	   1. control policies for load and store separately;
- 	   2. support the following policies:
- 	      - default (use what is in the tuning structure)
- 	      - always
- 	      - never
- 	      - aligned (only if the compiler can prove that the
- 		load will be aligned to 2 * element_size)  */
-   if (load && (aarch64_tune_params.extra_tuning_flags
- 	       & AARCH64_EXTRA_TUNE_NO_LDP_COMBINE))
-     return false;
- 
    if (load)
      {
        mem_1 = operands[1];
--- 27807,27846 ----
    return aarch64_check_consecutive_mems (&mem1, &mem2, nullptr);
  }
  
+ /* Return true if MEM agrees with the ldp-stp policy model.
+    Otherwise, false.  */
+ 
+ bool
+ aarch64_mem_ok_with_ldpstp_policy_model (rtx mem, bool load, machine_mode mode)
+ {
+   auto policy = (load
+ 		 ? aarch64_tune_params.ldp_policy_model
+ 		 : aarch64_tune_params.stp_policy_model);
+ 
+   /* If we have AARCH64_LDP_STP_POLICY_NEVER, reject the load pair.  */
+   if (policy == AARCH64_LDP_STP_POLICY_NEVER)
+     return false;
+ 
+   /* If we have AARCH64_LDP_STP_POLICY_ALIGNED,
+      do not emit the load pair unless the alignment is checked to be
+      at least double the alignment of the type.  */
+   if (policy == AARCH64_LDP_STP_POLICY_ALIGNED
+       && !optimize_function_for_size_p (cfun)
+       && MEM_ALIGN (mem) < 2 * GET_MODE_ALIGNMENT (mode))
+     return false;
+ 
+   return true;
+ }
+ 
  /* Given OPERANDS of consecutive load/store, check if we can merge
!    them into ldp/stp.  LOAD is true if they are load instructions.  */
  
  bool
! aarch64_operands_ok_for_ldpstp (rtx *operands, bool load)
  {
    enum reg_class rclass_1, rclass_2;
    rtx mem_1, mem_2, reg_1, reg_2;
  
    if (load)
      {
        mem_1 = operands[1];
*************** aarch64_operands_ok_for_ldpstp (rtx *ope
*** 26086,26100 ****
    if (MEM_VOLATILE_P (mem_1) || MEM_VOLATILE_P (mem_2))
      return false;
  
-   /* If we have SImode and slow unaligned ldp,
-      check the alignment to be at least 8 byte. */
-   if (mode == SImode
-       && (aarch64_tune_params.extra_tuning_flags
-           & AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW)
-       && !optimize_size
-       && MEM_ALIGN (mem_1) < 8 * BITS_PER_UNIT)
-     return false;
- 
    /* Check if the addresses are in the form of [base+offset].  */
    bool reversed = false;
    if (!aarch64_check_consecutive_mems (&mem_1, &mem_2, &reversed))
--- 27865,27870 ----
*************** aarch64_operands_ok_for_ldpstp (rtx *ope
*** 26104,26114 ****
    gcc_assert (known_eq (GET_MODE_SIZE (GET_MODE (mem_1)),
  			GET_MODE_SIZE (GET_MODE (mem_2))));
  
!   /* One of the memory accesses must be a mempair operand.
!      If it is not the first one, they need to be swapped by the
!      peephole.  */
!   if (!aarch64_mem_pair_operand (mem_1, GET_MODE (mem_1))
!        && !aarch64_mem_pair_operand (mem_2, GET_MODE (mem_2)))
      return false;
  
    if (REG_P (reg_1) && FP_REGNUM_P (REGNO (reg_1)))
--- 27874,27888 ----
    gcc_assert (known_eq (GET_MODE_SIZE (GET_MODE (mem_1)),
  			GET_MODE_SIZE (GET_MODE (mem_2))));
  
!   /* The lower memory access must be a mem-pair operand.  */
!   rtx lower_mem = reversed ? mem_2 : mem_1;
!   machine_mode lower_mem_mode = GET_MODE (lower_mem);
!   if (!aarch64_mem_pair_operand (lower_mem, lower_mem_mode))
!     return false;
! 
!   /* Check if lower_mem is ok with the ldp-stp policy model.  */
!   if (!aarch64_mem_ok_with_ldpstp_policy_model (lower_mem, load,
! 						lower_mem_mode))
      return false;
  
    if (REG_P (reg_1) && FP_REGNUM_P (REGNO (reg_1)))
*************** aarch64_swap_ldrstr_operands (rtx* opera
*** 26148,26153 ****
--- 27922,27950 ----
      }
  }
  
+ /* Helper function used for generation of load/store pair instructions, called
+    from peepholes in aarch64-ldpstp.md.  OPERANDS is an array of
+    operands as matched by the peepholes in that file.  LOAD_P is true if we're
+    generating a load pair, otherwise we're generating a store pair.  CODE is
+    either {ZERO,SIGN}_EXTEND for extending loads or UNKNOWN if we're generating a
+    standard load/store pair.  */
+ 
+ void
+ aarch64_finish_ldpstp_peephole (rtx *operands, bool load_p, enum rtx_code code)
+ {
+   aarch64_swap_ldrstr_operands (operands, load_p);
+ 
+   if (load_p)
+     emit_insn (aarch64_gen_load_pair (operands[0], operands[2],
+ 				      operands[1], code));
+   else
+     {
+       gcc_assert (code == UNKNOWN);
+       emit_insn (aarch64_gen_store_pair (operands[0], operands[1],
+ 					 operands[3]));
+     }
+ }
+ 
  /* Taking X and Y to be HOST_WIDE_INT pointers, return the result of a
     comparison between the two.  */
  int
*************** aarch64_operands_adjust_ok_for_ldpstp (r
*** 26311,26323 ****
    if (offvals[0] % msize != offvals[2] % msize)
      return false;
  
!   /* If we have SImode and slow unaligned ldp,
!      check the alignment to be at least 8 byte. */
!   if (mode == SImode
!       && (aarch64_tune_params.extra_tuning_flags
! 	  & AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW)
!       && !optimize_size
!       && MEM_ALIGN (mem[0]) < 8 * BITS_PER_UNIT)
      return false;
  
    return true;
--- 28108,28115 ----
    if (offvals[0] % msize != offvals[2] % msize)
      return false;
  
!    /* Check if mem[0] is ok with the ldp-stp policy model.  */
!   if (!aarch64_mem_ok_with_ldpstp_policy_model (mem[0], load, mode))
      return false;
  
    return true;
*************** bool
*** 26334,26343 ****
  aarch64_gen_adjusted_ldpstp (rtx *operands, bool load,
  			     machine_mode mode, RTX_CODE code)
  {
!   rtx base, offset_1, offset_3, t1, t2;
!   rtx mem_1, mem_2, mem_3, mem_4;
    rtx temp_operands[8];
!   HOST_WIDE_INT off_val_1, off_val_3, base_off, new_off_1, new_off_3,
  		stp_off_upper_limit, stp_off_lower_limit, msize;
  
    /* We make changes on a copy as we may still bail out.  */
--- 28126,28135 ----
  aarch64_gen_adjusted_ldpstp (rtx *operands, bool load,
  			     machine_mode mode, RTX_CODE code)
  {
!   rtx base, offset_1, offset_2;
!   rtx mem_1, mem_2;
    rtx temp_operands[8];
!   HOST_WIDE_INT off_val_1, off_val_2, base_off, new_off_1, new_off_2,
  		stp_off_upper_limit, stp_off_lower_limit, msize;
  
    /* We make changes on a copy as we may still bail out.  */
*************** aarch64_gen_adjusted_ldpstp (rtx *operan
*** 26360,26382 ****
    if (load)
      {
        mem_1 = copy_rtx (temp_operands[1]);
!       mem_2 = copy_rtx (temp_operands[3]);
!       mem_3 = copy_rtx (temp_operands[5]);
!       mem_4 = copy_rtx (temp_operands[7]);
      }
    else
      {
        mem_1 = copy_rtx (temp_operands[0]);
!       mem_2 = copy_rtx (temp_operands[2]);
!       mem_3 = copy_rtx (temp_operands[4]);
!       mem_4 = copy_rtx (temp_operands[6]);
        gcc_assert (code == UNKNOWN);
      }
  
    extract_base_offset_in_addr (mem_1, &base, &offset_1);
!   extract_base_offset_in_addr (mem_3, &base, &offset_3);
    gcc_assert (base != NULL_RTX && offset_1 != NULL_RTX
! 	      && offset_3 != NULL_RTX);
  
    /* Adjust offset so it can fit in LDP/STP instruction.  */
    msize = GET_MODE_SIZE (mode).to_constant();
--- 28152,28170 ----
    if (load)
      {
        mem_1 = copy_rtx (temp_operands[1]);
!       mem_2 = copy_rtx (temp_operands[5]);
      }
    else
      {
        mem_1 = copy_rtx (temp_operands[0]);
!       mem_2 = copy_rtx (temp_operands[4]);
        gcc_assert (code == UNKNOWN);
      }
  
    extract_base_offset_in_addr (mem_1, &base, &offset_1);
!   extract_base_offset_in_addr (mem_2, &base, &offset_2);
    gcc_assert (base != NULL_RTX && offset_1 != NULL_RTX
! 	      && offset_2 != NULL_RTX);
  
    /* Adjust offset so it can fit in LDP/STP instruction.  */
    msize = GET_MODE_SIZE (mode).to_constant();
*************** aarch64_gen_adjusted_ldpstp (rtx *operan
*** 26384,26394 ****
    stp_off_lower_limit = - msize * 0x40;
  
    off_val_1 = INTVAL (offset_1);
!   off_val_3 = INTVAL (offset_3);
  
    /* The base offset is optimally half way between the two STP/LDP offsets.  */
    if (msize <= 4)
!     base_off = (off_val_1 + off_val_3) / 2;
    else
      /* However, due to issues with negative LDP/STP offset generation for
         larger modes, for DF, DD, DI and vector modes. we must not use negative
--- 28172,28182 ----
    stp_off_lower_limit = - msize * 0x40;
  
    off_val_1 = INTVAL (offset_1);
!   off_val_2 = INTVAL (offset_2);
  
    /* The base offset is optimally half way between the two STP/LDP offsets.  */
    if (msize <= 4)
!     base_off = (off_val_1 + off_val_2) / 2;
    else
      /* However, due to issues with negative LDP/STP offset generation for
         larger modes, for DF, DD, DI and vector modes. we must not use negative
*************** aarch64_gen_adjusted_ldpstp (rtx *operan
*** 26428,26500 ****
    new_off_1 = off_val_1 - base_off;
  
    /* Offset of the second STP/LDP.  */
!   new_off_3 = off_val_3 - base_off;
  
    /* The offsets must be within the range of the LDP/STP instructions.  */
    if (new_off_1 > stp_off_upper_limit || new_off_1 < stp_off_lower_limit
!       || new_off_3 > stp_off_upper_limit || new_off_3 < stp_off_lower_limit)
      return false;
  
    replace_equiv_address_nv (mem_1, plus_constant (Pmode, operands[8],
  						  new_off_1), true);
    replace_equiv_address_nv (mem_2, plus_constant (Pmode, operands[8],
! 						  new_off_1 + msize), true);
!   replace_equiv_address_nv (mem_3, plus_constant (Pmode, operands[8],
! 						  new_off_3), true);
!   replace_equiv_address_nv (mem_4, plus_constant (Pmode, operands[8],
! 						  new_off_3 + msize), true);
  
    if (!aarch64_mem_pair_operand (mem_1, mode)
!       || !aarch64_mem_pair_operand (mem_3, mode))
      return false;
  
-   if (code == ZERO_EXTEND)
-     {
-       mem_1 = gen_rtx_ZERO_EXTEND (DImode, mem_1);
-       mem_2 = gen_rtx_ZERO_EXTEND (DImode, mem_2);
-       mem_3 = gen_rtx_ZERO_EXTEND (DImode, mem_3);
-       mem_4 = gen_rtx_ZERO_EXTEND (DImode, mem_4);
-     }
-   else if (code == SIGN_EXTEND)
-     {
-       mem_1 = gen_rtx_SIGN_EXTEND (DImode, mem_1);
-       mem_2 = gen_rtx_SIGN_EXTEND (DImode, mem_2);
-       mem_3 = gen_rtx_SIGN_EXTEND (DImode, mem_3);
-       mem_4 = gen_rtx_SIGN_EXTEND (DImode, mem_4);
-     }
- 
    if (load)
      {
        operands[0] = temp_operands[0];
        operands[1] = mem_1;
        operands[2] = temp_operands[2];
-       operands[3] = mem_2;
        operands[4] = temp_operands[4];
!       operands[5] = mem_3;
        operands[6] = temp_operands[6];
-       operands[7] = mem_4;
      }
    else
      {
        operands[0] = mem_1;
        operands[1] = temp_operands[1];
-       operands[2] = mem_2;
        operands[3] = temp_operands[3];
!       operands[4] = mem_3;
        operands[5] = temp_operands[5];
-       operands[6] = mem_4;
        operands[7] = temp_operands[7];
      }
  
    /* Emit adjusting instruction.  */
    emit_insn (gen_rtx_SET (operands[8], plus_constant (DImode, base, base_off)));
    /* Emit ldp/stp instructions.  */
!   t1 = gen_rtx_SET (operands[0], operands[1]);
!   t2 = gen_rtx_SET (operands[2], operands[3]);
!   emit_insn (gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, t1, t2)));
!   t1 = gen_rtx_SET (operands[4], operands[5]);
!   t2 = gen_rtx_SET (operands[6], operands[7]);
!   emit_insn (gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, t1, t2)));
    return true;
  }
  
--- 28216,28273 ----
    new_off_1 = off_val_1 - base_off;
  
    /* Offset of the second STP/LDP.  */
!   new_off_2 = off_val_2 - base_off;
  
    /* The offsets must be within the range of the LDP/STP instructions.  */
    if (new_off_1 > stp_off_upper_limit || new_off_1 < stp_off_lower_limit
!       || new_off_2 > stp_off_upper_limit || new_off_2 < stp_off_lower_limit)
      return false;
  
    replace_equiv_address_nv (mem_1, plus_constant (Pmode, operands[8],
  						  new_off_1), true);
    replace_equiv_address_nv (mem_2, plus_constant (Pmode, operands[8],
! 						  new_off_2), true);
  
    if (!aarch64_mem_pair_operand (mem_1, mode)
!       || !aarch64_mem_pair_operand (mem_2, mode))
      return false;
  
    if (load)
      {
        operands[0] = temp_operands[0];
        operands[1] = mem_1;
        operands[2] = temp_operands[2];
        operands[4] = temp_operands[4];
!       operands[5] = mem_2;
        operands[6] = temp_operands[6];
      }
    else
      {
        operands[0] = mem_1;
        operands[1] = temp_operands[1];
        operands[3] = temp_operands[3];
!       operands[4] = mem_2;
        operands[5] = temp_operands[5];
        operands[7] = temp_operands[7];
      }
  
    /* Emit adjusting instruction.  */
    emit_insn (gen_rtx_SET (operands[8], plus_constant (DImode, base, base_off)));
    /* Emit ldp/stp instructions.  */
!   if (load)
!     {
!       emit_insn (aarch64_gen_load_pair (operands[0], operands[2],
! 					operands[1], code));
!       emit_insn (aarch64_gen_load_pair (operands[4], operands[6],
! 					operands[5], code));
!     }
!   else
!     {
!       emit_insn (aarch64_gen_store_pair (operands[0], operands[1],
! 					 operands[3]));
!       emit_insn (aarch64_gen_store_pair (operands[4], operands[5],
! 					 operands[7]));
!     }
    return true;
  }
  
*************** aarch64_excess_precision (enum excess_pr
*** 26719,26724 ****
--- 28492,28533 ----
    return FLT_EVAL_METHOD_UNPREDICTABLE;
  }
  
+ /* Implement TARGET_C_BITINT_TYPE_INFO.
+    Return true if _BitInt(N) is supported and fill its details into *INFO.  */
+ bool
+ aarch64_bitint_type_info (int n, struct bitint_info *info)
+ {
+   if (TARGET_BIG_END)
+     return false;
+ 
+   if (n <= 8)
+     info->limb_mode = QImode;
+   else if (n <= 16)
+     info->limb_mode = HImode;
+   else if (n <= 32)
+     info->limb_mode = SImode;
+   else if (n <= 64)
+     info->limb_mode = DImode;
+   else if (n <= 128)
+     info->limb_mode = TImode;
+   else
+     /* The AAPCS for AArch64 defines _BitInt(N > 128) as an array with
+        type {signed,unsigned} __int128[M] where M*128 >= N.  However, to be
+        able to use libgcc's implementation to support large _BitInt's we need
+        to use a LIMB_MODE that is no larger than 'long long'.  This is why we
+        use DImode for our internal LIMB_MODE and we define the ABI_LIMB_MODE to
+        be TImode to ensure we are ABI compliant.  */
+     info->limb_mode = DImode;
+ 
+   if (n > 128)
+     info->abi_limb_mode = TImode;
+   else
+     info->abi_limb_mode = info->limb_mode;
+   info->big_endian = TARGET_BIG_END;
+   info->extended = false;
+   return true;
+ }
+ 
  /* Implement TARGET_SCHED_CAN_SPECULATE_INSN.  Return true if INSN can be
     scheduled for speculative execution.  Reject the long-running division
     and square-root instructions.  */
*************** static bool
*** 26773,26852 ****
  aarch64_can_change_mode_class (machine_mode from,
  			       machine_mode to, reg_class_t)
  {
!   unsigned int from_flags = aarch64_classify_vector_mode (from);
!   unsigned int to_flags = aarch64_classify_vector_mode (to);
! 
!   bool from_sve_p = (from_flags & VEC_ANY_SVE);
!   bool to_sve_p = (to_flags & VEC_ANY_SVE);
! 
!   bool from_partial_sve_p = from_sve_p && (from_flags & VEC_PARTIAL);
!   bool to_partial_sve_p = to_sve_p && (to_flags & VEC_PARTIAL);
! 
!   bool from_pred_p = (from_flags & VEC_SVE_PRED);
!   bool to_pred_p = (to_flags & VEC_SVE_PRED);
! 
!   bool to_partial_advsimd_struct_p = (to_flags == (VEC_ADVSIMD | VEC_STRUCT
! 						   | VEC_PARTIAL));
!   bool from_partial_advsimd_struct_p = (from_flags == (VEC_ADVSIMD | VEC_STRUCT
! 						   | VEC_PARTIAL));
! 
!   /* Don't allow changes between predicate modes and other modes.
!      Only predicate registers can hold predicate modes and only
!      non-predicate registers can hold non-predicate modes, so any
!      attempt to mix them would require a round trip through memory.  */
!   if (from_pred_p != to_pred_p)
!     return false;
! 
!   /* Don't allow changes between partial SVE modes and other modes.
!      The contents of partial SVE modes are distributed evenly across
!      the register, whereas GCC expects them to be clustered together.  */
!   if (from_partial_sve_p != to_partial_sve_p)
!     return false;
! 
!   /* Similarly reject changes between partial SVE modes that have
!      different patterns of significant and insignificant bits.  */
!   if (from_partial_sve_p
!       && (aarch64_sve_container_bits (from) != aarch64_sve_container_bits (to)
! 	  || GET_MODE_UNIT_SIZE (from) != GET_MODE_UNIT_SIZE (to)))
!     return false;
! 
!   /* Don't allow changes between partial and other registers only if
!      one is a normal SIMD register, allow only if not larger than 64-bit.  */
!   if ((to_partial_advsimd_struct_p ^ from_partial_advsimd_struct_p)
!       && (known_gt (GET_MODE_SIZE (to), 8) || known_gt (GET_MODE_SIZE (to), 8)))
!     return false;
! 
!   if (maybe_ne (BITS_PER_SVE_VECTOR, 128u))
!     {
!       /* Don't allow changes between SVE modes and other modes that might
! 	 be bigger than 128 bits.  In particular, OImode, CImode and XImode
! 	 divide into 128-bit quantities while SVE modes divide into
! 	 BITS_PER_SVE_VECTOR quantities.  */
!       if (from_sve_p && !to_sve_p && maybe_gt (GET_MODE_BITSIZE (to), 128))
! 	return false;
!       if (to_sve_p && !from_sve_p && maybe_gt (GET_MODE_BITSIZE (from), 128))
! 	return false;
!     }
! 
!   if (BYTES_BIG_ENDIAN)
!     {
!       /* Don't allow changes between SVE data modes and non-SVE modes.
! 	 See the comment at the head of aarch64-sve.md for details.  */
!       if (from_sve_p != to_sve_p)
! 	return false;
! 
!       /* Don't allow changes in element size: lane 0 of the new vector
! 	 would not then be lane 0 of the old vector.  See the comment
! 	 above aarch64_maybe_expand_sve_subreg_move for a more detailed
! 	 description.
! 
! 	 In the worst case, this forces a register to be spilled in
! 	 one mode and reloaded in the other, which handles the
! 	 endianness correctly.  */
!       if (from_sve_p && GET_MODE_UNIT_SIZE (from) != GET_MODE_UNIT_SIZE (to))
! 	return false;
!     }
!   return true;
  }
  
  /* Implement TARGET_EARLY_REMAT_MODES.  */
--- 28582,28588 ----
  aarch64_can_change_mode_class (machine_mode from,
  			       machine_mode to, reg_class_t)
  {
!   return aarch64_modes_compatible_p (from, to);
  }
  
  /* Implement TARGET_EARLY_REMAT_MODES.  */
*************** supported_simd_type (tree t)
*** 26941,26973 ****
    return false;
  }
  
! /* Return true for types that currently are supported as SIMD return
!    or argument types.  */
  
! static bool
! currently_supported_simd_type (tree t, tree b)
  {
!   if (COMPLEX_FLOAT_TYPE_P (t))
!     return false;
  
!   if (TYPE_SIZE (t) != TYPE_SIZE (b))
!     return false;
  
!   return supported_simd_type (t);
  }
  
  /* Implement TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN.  */
  
  static int
  aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
  					struct cgraph_simd_clone *clonei,
! 					tree base_type, int num,
! 					bool explicit_p)
  {
    tree t, ret_type;
!   unsigned int elt_bits, count;
    unsigned HOST_WIDE_INT const_simdlen;
-   poly_uint64 vec_bits;
  
    if (!TARGET_SIMD)
      return 0;
--- 28677,28737 ----
    return false;
  }
  
! /* Determine the lane size for the clone argument/return type.  This follows
!    the LS(P) rule in the VFABIA64.  */
  
! static unsigned
! lane_size (cgraph_simd_clone_arg_type clone_arg_type, tree type)
  {
!   gcc_assert (clone_arg_type != SIMD_CLONE_ARG_TYPE_MASK);
  
!   /* For non map-to-vector types that are pointers we use the element type it
!      points to.  */
!   if (POINTER_TYPE_P (type))
!     switch (clone_arg_type)
!       {
!       default:
! 	break;
!       case SIMD_CLONE_ARG_TYPE_UNIFORM:
!       case SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP:
!       case SIMD_CLONE_ARG_TYPE_LINEAR_VARIABLE_STEP:
! 	type = TREE_TYPE (type);
! 	break;
!       }
  
!   /* For types (or pointers of non map-to-vector types point to) that are
!      integers or floating point, we use their size if they are 1, 2, 4 or 8.
!    */
!   if (INTEGRAL_TYPE_P (type)
!       || SCALAR_FLOAT_TYPE_P (type))
!     switch (TYPE_PRECISION (type) / BITS_PER_UNIT)
!       {
!       default:
! 	break;
!       case 1:
!       case 2:
!       case 4:
!       case 8:
! 	return TYPE_PRECISION (type);
!       }
!   /* For any other we use the size of uintptr_t.  For map-to-vector types that
!      are pointers, using the size of uintptr_t is the same as using the size of
!      their type, seeing all pointers are the same size as uintptr_t.  */
!   return POINTER_SIZE;
  }
  
+ 
  /* Implement TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN.  */
  
  static int
  aarch64_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
  					struct cgraph_simd_clone *clonei,
! 					tree base_type ATTRIBUTE_UNUSED,
! 					int num, bool explicit_p)
  {
    tree t, ret_type;
!   unsigned int nds_elt_bits;
    unsigned HOST_WIDE_INT const_simdlen;
  
    if (!TARGET_SIMD)
      return 0;
*************** aarch64_simd_clone_compute_vecsize_and_s
*** 26987,27066 ****
      }
  
    ret_type = TREE_TYPE (TREE_TYPE (node->decl));
    if (TREE_CODE (ret_type) != VOID_TYPE
!       && !currently_supported_simd_type (ret_type, base_type))
      {
        if (!explicit_p)
  	;
!       else if (TYPE_SIZE (ret_type) != TYPE_SIZE (base_type))
! 	warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 		    "GCC does not currently support mixed size types "
! 		    "for %<simd%> functions");
!       else if (supported_simd_type (ret_type))
  	warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
  		    "GCC does not currently support return type %qT "
! 		    "for %<simd%> functions", ret_type);
        else
  	warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 		    "unsupported return type %qT for %<simd%> functions",
  		    ret_type);
        return 0;
      }
  
    int i;
    tree type_arg_types = TYPE_ARG_TYPES (TREE_TYPE (node->decl));
    bool decl_arg_p = (node->definition || type_arg_types == NULL_TREE);
- 
    for (t = (decl_arg_p ? DECL_ARGUMENTS (node->decl) : type_arg_types), i = 0;
         t && t != void_list_node; t = TREE_CHAIN (t), i++)
      {
        tree arg_type = decl_arg_p ? TREE_TYPE (t) : TREE_VALUE (t);
- 
        if (clonei->args[i].arg_type != SIMD_CLONE_ARG_TYPE_UNIFORM
! 	  && !currently_supported_simd_type (arg_type, base_type))
  	{
  	  if (!explicit_p)
  	    ;
! 	  else if (TYPE_SIZE (arg_type) != TYPE_SIZE (base_type))
  	    warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 			"GCC does not currently support mixed size types "
! 			"for %<simd%> functions");
  	  else
  	    warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 			"GCC does not currently support argument type %qT "
! 			"for %<simd%> functions", arg_type);
  	  return 0;
  	}
      }
  
    clonei->vecsize_mangle = 'n';
    clonei->mask_mode = VOIDmode;
!   elt_bits = GET_MODE_BITSIZE (SCALAR_TYPE_MODE (base_type));
    if (known_eq (clonei->simdlen, 0U))
      {
!       count = 2;
!       vec_bits = (num == 0 ? 64 : 128);
!       clonei->simdlen = exact_div (vec_bits, elt_bits);
      }
    else
      {
!       count = 1;
!       vec_bits = clonei->simdlen * elt_bits;
!       /* For now, SVE simdclones won't produce illegal simdlen, So only check
! 	 const simdlens here.  */
!       if (clonei->simdlen.is_constant (&const_simdlen)
! 	  && maybe_ne (vec_bits, 64U) && maybe_ne (vec_bits, 128U))
  	{
! 	  if (explicit_p)
! 	    warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 			"GCC does not currently support simdlen %wd for "
! 			"type %qT",
! 			const_simdlen, base_type);
! 	  return 0;
  	}
      }
!   clonei->vecsize_int = vec_bits;
!   clonei->vecsize_float = vec_bits;
    return count;
  }
  
--- 28751,28883 ----
      }
  
    ret_type = TREE_TYPE (TREE_TYPE (node->decl));
+   /* According to AArch64's Vector ABI the type that determines the simdlen is
+      the narrowest of types, so we ignore base_type for AArch64.  */
    if (TREE_CODE (ret_type) != VOID_TYPE
!       && !supported_simd_type (ret_type))
      {
        if (!explicit_p)
  	;
!       else if (COMPLEX_FLOAT_TYPE_P (ret_type))
  	warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
  		    "GCC does not currently support return type %qT "
! 		    "for simd", ret_type);
        else
  	warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 		    "unsupported return type %qT for simd",
  		    ret_type);
        return 0;
      }
  
+   auto_vec<std::pair <tree, unsigned int>> vec_elts (clonei->nargs + 1);
+ 
+   /* We are looking for the NDS type here according to the VFABIA64.  */
+   if (TREE_CODE (ret_type) != VOID_TYPE)
+     {
+       nds_elt_bits = lane_size (SIMD_CLONE_ARG_TYPE_VECTOR, ret_type);
+       vec_elts.safe_push (std::make_pair (ret_type, nds_elt_bits));
+     }
+   else
+     nds_elt_bits = POINTER_SIZE;
+ 
    int i;
    tree type_arg_types = TYPE_ARG_TYPES (TREE_TYPE (node->decl));
    bool decl_arg_p = (node->definition || type_arg_types == NULL_TREE);
    for (t = (decl_arg_p ? DECL_ARGUMENTS (node->decl) : type_arg_types), i = 0;
         t && t != void_list_node; t = TREE_CHAIN (t), i++)
      {
        tree arg_type = decl_arg_p ? TREE_TYPE (t) : TREE_VALUE (t);
        if (clonei->args[i].arg_type != SIMD_CLONE_ARG_TYPE_UNIFORM
! 	  && !supported_simd_type (arg_type))
  	{
  	  if (!explicit_p)
  	    ;
! 	  else if (COMPLEX_FLOAT_TYPE_P (ret_type))
  	    warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 			"GCC does not currently support argument type %qT "
! 			"for simd", arg_type);
  	  else
  	    warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 			"unsupported argument type %qT for simd",
! 			arg_type);
  	  return 0;
  	}
+       unsigned lane_bits = lane_size (clonei->args[i].arg_type, arg_type);
+       if (clonei->args[i].arg_type == SIMD_CLONE_ARG_TYPE_VECTOR)
+ 	vec_elts.safe_push (std::make_pair (arg_type, lane_bits));
+       if (nds_elt_bits > lane_bits)
+ 	nds_elt_bits = lane_bits;
      }
  
    clonei->vecsize_mangle = 'n';
    clonei->mask_mode = VOIDmode;
!   poly_uint64 simdlen;
!   auto_vec<poly_uint64> simdlens (2);
!   /* Keep track of the possible simdlens the clones of this function can have,
!      and check them later to see if we support them.  */
    if (known_eq (clonei->simdlen, 0U))
      {
!       simdlen = exact_div (poly_uint64 (64), nds_elt_bits);
!       if (maybe_ne (simdlen, 1U))
! 	simdlens.safe_push (simdlen);
!       simdlens.safe_push (simdlen * 2);
      }
    else
+     simdlens.safe_push (clonei->simdlen);
+ 
+   clonei->vecsize_int = 0;
+   clonei->vecsize_float = 0;
+ 
+   /* We currently do not support generating simdclones where vector arguments
+      do not fit into a single vector register, i.e. vector types that are more
+      than 128-bits large.  This is because of how we currently represent such
+      types in ACLE, where we use a struct to allow us to pass them as arguments
+      and return.
+      Hence why we have to check whether the simdlens available for this
+      simdclone would cause a vector type to be larger than 128-bits, and reject
+      such a clone.  */
+   unsigned j = 0;
+   while (j < simdlens.length ())
      {
!       bool remove_simdlen = false;
!       for (auto elt : vec_elts)
! 	if (known_gt (simdlens[j] * elt.second, 128U))
! 	  {
! 	    /* Don't issue a warning for every simdclone when there is no
! 	       specific simdlen clause.  */
! 	    if (explicit_p && maybe_ne (clonei->simdlen, 0U))
! 	      warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 			  "GCC does not currently support simdlen %wd for "
! 			  "type %qT",
! 			  constant_lower_bound (simdlens[j]), elt.first);
! 	    remove_simdlen = true;
! 	    break;
! 	  }
!       if (remove_simdlen)
! 	simdlens.ordered_remove (j);
!       else
! 	j++;
!     }
! 
! 
!   int count = simdlens.length ();
!   if (count == 0)
!     {
!       if (explicit_p && known_eq (clonei->simdlen, 0U))
  	{
! 	  /* Warn the user if we can't generate any simdclone.  */
! 	  simdlen = exact_div (poly_uint64 (64), nds_elt_bits);
! 	  warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 		      "GCC does not currently support a simdclone with simdlens"
! 		      " %wd and %wd for these types.",
! 		      constant_lower_bound (simdlen),
! 		      constant_lower_bound (simdlen*2));
  	}
+       return 0;
      }
! 
!   gcc_assert (num < count);
!   clonei->simdlen = simdlens[num];
    return count;
  }
  
*************** aarch64_simd_clone_usable (struct cgraph
*** 27098,27123 ****
  static int
  aarch64_comp_type_attributes (const_tree type1, const_tree type2)
  {
!   auto check_attr = [&](const char *name) {
!     tree attr1 = lookup_attribute (name, TYPE_ATTRIBUTES (type1));
!     tree attr2 = lookup_attribute (name, TYPE_ATTRIBUTES (type2));
      if (!attr1 && !attr2)
        return true;
  
      return attr1 && attr2 && attribute_value_equal (attr1, attr2);
    };
  
!   if (!check_attr ("aarch64_vector_pcs"))
      return 0;
!   if (!check_attr ("Advanced SIMD type"))
      return 0;
!   if (!check_attr ("SVE type"))
      return 0;
!   if (!check_attr ("SVE sizeless type"))
      return 0;
    return 1;
  }
  
  /* Implement TARGET_GET_MULTILIB_ABI_NAME */
  
  static const char *
--- 28915,28983 ----
  static int
  aarch64_comp_type_attributes (const_tree type1, const_tree type2)
  {
!   auto check_attr = [&](const char *ns, const char *name) {
!     tree attr1 = lookup_attribute (ns, name, TYPE_ATTRIBUTES (type1));
!     tree attr2 = lookup_attribute (ns, name, TYPE_ATTRIBUTES (type2));
      if (!attr1 && !attr2)
        return true;
  
      return attr1 && attr2 && attribute_value_equal (attr1, attr2);
    };
  
!   if (!check_attr ("gnu", "aarch64_vector_pcs"))
      return 0;
!   if (!check_attr ("gnu", "Advanced SIMD type"))
      return 0;
!   if (!check_attr ("gnu", "SVE type"))
      return 0;
!   if (!check_attr ("gnu", "SVE sizeless type"))
!     return 0;
!   if (!check_attr ("arm", "streaming"))
!     return 0;
!   if (!check_attr ("arm", "streaming_compatible"))
!     return 0;
!   if (aarch64_lookup_shared_state_flags (TYPE_ATTRIBUTES (type1), "za")
!       != aarch64_lookup_shared_state_flags (TYPE_ATTRIBUTES (type2), "za"))
!     return 0;
!   if (aarch64_lookup_shared_state_flags (TYPE_ATTRIBUTES (type1), "zt0")
!       != aarch64_lookup_shared_state_flags (TYPE_ATTRIBUTES (type2), "zt0"))
      return 0;
    return 1;
  }
  
+ /* Implement TARGET_MERGE_DECL_ATTRIBUTES.  */
+ 
+ static tree
+ aarch64_merge_decl_attributes (tree olddecl, tree newdecl)
+ {
+   tree old_attrs = DECL_ATTRIBUTES (olddecl);
+   tree old_new = lookup_attribute ("arm", "new", old_attrs);
+ 
+   tree new_attrs = DECL_ATTRIBUTES (newdecl);
+   tree new_new = lookup_attribute ("arm", "new", new_attrs);
+ 
+   if (DECL_INITIAL (olddecl) && new_new)
+     {
+       error ("cannot apply attribute %qs to %q+D after the function"
+ 	     " has been defined", "new", newdecl);
+       inform (DECL_SOURCE_LOCATION (olddecl), "%q+D defined here",
+ 	      newdecl);
+     }
+   else
+     {
+       if (old_new && new_new)
+ 	{
+ 	  old_attrs = remove_attribute ("arm", "new", old_attrs);
+ 	  TREE_VALUE (new_new) = chainon (TREE_VALUE (new_new),
+ 					  TREE_VALUE (old_new));
+ 	}
+       if (new_new)
+ 	aarch64_check_arm_new_against_type (TREE_VALUE (new_new), newdecl);
+     }
+ 
+   return merge_attributes (old_attrs, new_attrs);
+ }
+ 
  /* Implement TARGET_GET_MULTILIB_ABI_NAME */
  
  static const char *
*************** aarch64_indirect_call_asm (rtx addr)
*** 27445,27450 ****
--- 29305,30371 ----
    return "";
  }
  
+ /* Emit the assembly instruction to load the thread pointer into DEST.
+    Select between different tpidr_elN registers depending on -mtp= setting.  */
+ 
+ const char *
+ aarch64_output_load_tp (rtx dest)
+ {
+   const char *tpidrs[] = {"tpidr_el0", "tpidr_el1", "tpidr_el2",
+ 			  "tpidr_el3", "tpidrro_el0"};
+   char buffer[64];
+   snprintf (buffer, sizeof (buffer), "mrs\t%%0, %s",
+ 	    tpidrs[aarch64_tpidr_register]);
+   output_asm_insn (buffer, &dest);
+   return "";
+ }
+ 
+ /* Set up the value of REG_ALLOC_ORDER from scratch.
+ 
+    It was previously good practice to put call-clobbered registers ahead
+    of call-preserved registers, but that isn't necessary these days.
+    IRA's model of register save/restore costs is much more sophisticated
+    than the model that a simple ordering could provide.  We leave
+    HONOR_REG_ALLOC_ORDER undefined so that we can get the full benefit
+    of IRA's model.
+ 
+    However, it is still useful to list registers that are members of
+    multiple classes after registers that are members of fewer classes.
+    For example, we have:
+ 
+    - FP_LO8_REGS: v0-v7
+    - FP_LO_REGS: v0-v15
+    - FP_REGS: v0-v31
+ 
+    If, as a tie-breaker, we allocate FP_REGS in the order v0-v31,
+    we run the risk of starving other (lower-priority) pseudos that
+    require FP_LO8_REGS or FP_LO_REGS.  Allocating FP_LO_REGS in the
+    order v0-v15 could similarly starve pseudos that require FP_LO8_REGS.
+    Allocating downwards rather than upwards avoids this problem, at least
+    in code that has reasonable register pressure.
+ 
+    The situation for predicate registers is similar.  */
+ 
+ void
+ aarch64_adjust_reg_alloc_order ()
+ {
+   for (int i = 0; i < FIRST_PSEUDO_REGISTER; ++i)
+     if (IN_RANGE (i, V0_REGNUM, V31_REGNUM))
+       reg_alloc_order[i] = V31_REGNUM - (i - V0_REGNUM);
+     else if (IN_RANGE (i, P0_REGNUM, P15_REGNUM))
+       reg_alloc_order[i] = P15_REGNUM - (i - P0_REGNUM);
+     else
+       reg_alloc_order[i] = i;
+ }
+ 
+ /* Return true if the PARALLEL PAR can be used in a VEC_SELECT expression
+    of vector mode MODE to select half the elements of that vector.
+    Allow any combination of indices except duplicates (or out of range of
+    the mode units).  */
+ 
+ bool
+ aarch64_parallel_select_half_p (machine_mode mode, rtx par)
+ {
+   int nunits = XVECLEN (par, 0);
+   if (!known_eq (GET_MODE_NUNITS (mode), nunits * 2))
+     return false;
+   int mode_nunits = nunits * 2;
+   /* Put all the elements of PAR into a hash_set and use its
+      uniqueness guarantees to check that we don't try to insert the same
+      element twice.  */
+   hash_set<rtx> parset;
+   for (int i = 0; i < nunits; ++i)
+     {
+       rtx elt = XVECEXP (par, 0, i);
+       if (!CONST_INT_P (elt)
+ 	  || !IN_RANGE (INTVAL (elt), 0, mode_nunits - 1)
+ 	  || parset.add (elt))
+ 	return false;
+     }
+   return true;
+ }
+ 
+ /* Return true if PAR1 and PAR2, two PARALLEL rtxes of CONST_INT values,
+    contain any common elements.  */
+ 
+ bool
+ aarch64_pars_overlap_p (rtx par1, rtx par2)
+ {
+   int len1 = XVECLEN (par1, 0);
+   int len2 = XVECLEN (par2, 0);
+   hash_set<rtx> parset;
+   for (int i = 0; i < len1; ++i)
+     parset.add (XVECEXP (par1, 0, i));
+   for (int i = 0; i < len2; ++i)
+     if (parset.contains (XVECEXP (par2, 0, i)))
+       return true;
+   return false;
+ }
+ 
+ /* Implement OPTIMIZE_MODE_SWITCHING.  */
+ 
+ bool
+ aarch64_optimize_mode_switching (aarch64_mode_entity entity)
+ {
+   bool have_sme_state = (aarch64_cfun_incoming_pstate_za () != 0
+ 			 || (aarch64_cfun_has_new_state ("za")
+ 			     && df_regs_ever_live_p (ZA_REGNUM))
+ 			 || (aarch64_cfun_has_new_state ("zt0")
+ 			     && df_regs_ever_live_p (ZT0_REGNUM)));
+ 
+   if (have_sme_state && nonlocal_goto_handler_labels)
+     {
+       static bool reported;
+       if (!reported)
+ 	{
+ 	  sorry ("non-local gotos in functions with SME state");
+ 	  reported = true;
+ 	}
+     }
+ 
+   switch (entity)
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       return have_sme_state && !nonlocal_goto_handler_labels;
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_EMIT for ZA_SAVE_BUFFER.  */
+ 
+ static void
+ aarch64_mode_emit_za_save_buffer (aarch64_tristate_mode mode,
+ 				  aarch64_tristate_mode prev_mode)
+ {
+   if (mode == aarch64_tristate_mode::YES)
+     {
+       gcc_assert (prev_mode == aarch64_tristate_mode::NO);
+       aarch64_init_tpidr2_block ();
+     }
+   else
+     gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_EMIT for LOCAL_SME_STATE.  */
+ 
+ static void
+ aarch64_mode_emit_local_sme_state (aarch64_local_sme_state mode,
+ 				   aarch64_local_sme_state prev_mode)
+ {
+   /* Back-propagation should ensure that we're always starting from
+      a known mode.  */
+   gcc_assert (prev_mode != aarch64_local_sme_state::ANY);
+ 
+   if (prev_mode == aarch64_local_sme_state::INACTIVE_CALLER)
+     {
+       /* Commit any uncommitted lazy save.  This leaves ZA either active
+ 	 and zero (lazy save case) or off (normal case).
+ 
+ 	 The sequence is:
+ 
+ 	     mrs <temp>, tpidr2_el0
+ 	     cbz <temp>, no_save
+ 	     bl __arm_tpidr2_save
+ 	     msr tpidr2_el0, xzr
+ 	     zero { za }       // Only if ZA is live
+ 	     zero { zt0 }      // Only if ZT0 is live
+ 	 no_save:  */
+       auto tmp_reg = gen_reg_rtx (DImode);
+       emit_insn (gen_aarch64_read_tpidr2 (tmp_reg));
+       auto label = gen_label_rtx ();
+       rtx branch = aarch64_gen_compare_zero_and_branch (EQ, tmp_reg, label);
+       auto jump = emit_jump_insn (branch);
+       JUMP_LABEL (jump) = label;
+       emit_insn (gen_aarch64_tpidr2_save ());
+       emit_insn (gen_aarch64_clear_tpidr2 ());
+       if (mode == aarch64_local_sme_state::ACTIVE_LIVE
+ 	  || mode == aarch64_local_sme_state::ACTIVE_DEAD)
+ 	{
+ 	  if (aarch64_cfun_has_state ("za"))
+ 	    emit_insn (gen_aarch64_initial_zero_za ());
+ 	  if (aarch64_cfun_has_state ("zt0"))
+ 	    emit_insn (gen_aarch64_sme_zero_zt0 ());
+ 	}
+       emit_label (label);
+     }
+ 
+   if (mode == aarch64_local_sme_state::ACTIVE_LIVE
+       || mode == aarch64_local_sme_state::ACTIVE_DEAD)
+     {
+       if (prev_mode == aarch64_local_sme_state::INACTIVE_LOCAL)
+ 	{
+ 	  /* Make ZA active after being inactive.
+ 
+ 	     First handle the case in which the lazy save we set up was
+ 	     committed by a callee.  If the function's source-level ZA state
+ 	     is live then we must conditionally restore it from the lazy
+ 	     save buffer.  Otherwise we can just force PSTATE.ZA to 1.  */
+ 	  if (mode == aarch64_local_sme_state::ACTIVE_LIVE)
+ 	    emit_insn (gen_aarch64_restore_za (aarch64_get_tpidr2_ptr ()));
+ 	  else
+ 	    emit_insn (gen_aarch64_smstart_za ());
+ 
+ 	  /* Now handle the case in which the lazy save was not committed.
+ 	     In that case, ZA still contains the current function's ZA state,
+ 	     and we just need to cancel the lazy save.  */
+ 	  emit_insn (gen_aarch64_clear_tpidr2 ());
+ 
+ 	  /* Restore the ZT0 state, if we have some.  */
+ 	  if (aarch64_cfun_has_state ("zt0"))
+ 	    aarch64_restore_zt0 (true);
+ 
+ 	  return;
+ 	}
+ 
+       if (prev_mode == aarch64_local_sme_state::SAVED_LOCAL)
+ 	{
+ 	  /* Retrieve the current function's ZA state from the lazy save
+ 	     buffer.  */
+ 	  aarch64_restore_za (aarch64_get_tpidr2_ptr ());
+ 
+ 	  /* Restore the ZT0 state, if we have some.  */
+ 	  if (aarch64_cfun_has_state ("zt0"))
+ 	    aarch64_restore_zt0 (true);
+ 	  return;
+ 	}
+ 
+       if (prev_mode == aarch64_local_sme_state::INACTIVE_CALLER
+ 	  || prev_mode == aarch64_local_sme_state::OFF)
+ 	{
+ 	  /* INACTIVE_CALLER means that we are enabling ZA for the first
+ 	     time in this function.  The code above means that ZA is either
+ 	     active and zero (if we committed a lazy save) or off.  Handle
+ 	     the latter case by forcing ZA on.
+ 
+ 	     OFF means that PSTATE.ZA is guaranteed to be 0.  We just need
+ 	     to force it to 1.
+ 
+ 	     Both cases leave ZA zeroed.  */
+ 	  emit_insn (gen_aarch64_smstart_za ());
+ 
+ 	  /* Restore the ZT0 state, if we have some.  */
+ 	  if (prev_mode == aarch64_local_sme_state::OFF
+ 	      && aarch64_cfun_has_state ("zt0"))
+ 	    aarch64_restore_zt0 (true);
+ 	  return;
+ 	}
+ 
+       if (prev_mode == aarch64_local_sme_state::ACTIVE_DEAD
+ 	  || prev_mode == aarch64_local_sme_state::ACTIVE_LIVE)
+ 	/* A simple change in liveness, such as in a CFG structure where
+ 	   ZA is only conditionally defined.  No code is needed.  */
+ 	return;
+ 
+       gcc_unreachable ();
+     }
+ 
+   if (mode == aarch64_local_sme_state::INACTIVE_LOCAL)
+     {
+       if (prev_mode == aarch64_local_sme_state::ACTIVE_LIVE
+ 	  || prev_mode == aarch64_local_sme_state::ACTIVE_DEAD
+ 	  || prev_mode == aarch64_local_sme_state::INACTIVE_CALLER)
+ 	{
+ 	  /* Save the ZT0 state, if we have some.  */
+ 	  if (aarch64_cfun_has_state ("zt0"))
+ 	    aarch64_save_zt0 ();
+ 
+ 	  /* A transition from ACTIVE_LIVE to INACTIVE_LOCAL is the usual
+ 	     case of setting up a lazy save buffer before a call.
+ 	     A transition from INACTIVE_CALLER is similar, except that
+ 	     the contents of ZA are known to be zero.
+ 
+ 	     A transition from ACTIVE_DEAD means that ZA is live at the
+ 	     point of the transition, but is dead on at least one incoming
+ 	     edge.  (That is, ZA is only conditionally initialized.)
+ 	     For efficiency, we want to set up a lazy save even for
+ 	     dead contents, since forcing ZA off would make later code
+ 	     restore ZA from the lazy save buffer.  */
+ 	  emit_insn (gen_aarch64_write_tpidr2 (aarch64_get_tpidr2_ptr ()));
+ 	  return;
+ 	}
+ 
+       if (prev_mode == aarch64_local_sme_state::SAVED_LOCAL
+ 	  || prev_mode == aarch64_local_sme_state::OFF)
+ 	/* We're simply discarding the information about which inactive
+ 	   state applies.  */
+ 	return;
+ 
+       gcc_unreachable ();
+     }
+ 
+   if (mode == aarch64_local_sme_state::INACTIVE_CALLER
+       || mode == aarch64_local_sme_state::OFF)
+     {
+       /* Save the ZT0 state, if we have some.  */
+       if ((prev_mode == aarch64_local_sme_state::ACTIVE_LIVE
+ 	   || prev_mode == aarch64_local_sme_state::ACTIVE_DEAD)
+ 	  && mode == aarch64_local_sme_state::OFF
+ 	  && aarch64_cfun_has_state ("zt0"))
+ 	aarch64_save_zt0 ();
+ 
+       /* The transition to INACTIVE_CALLER is used before returning from
+ 	 new("za") functions.  Any state in ZA belongs to the current
+ 	 function rather than a caller, but that state is no longer
+ 	 needed.  Clear any pending lazy save and turn ZA off.
+ 
+ 	 The transition to OFF is used before calling a private-ZA function.
+ 	 We committed any incoming lazy save above, so at this point any
+ 	 contents in ZA belong to the current function.  */
+       if (prev_mode == aarch64_local_sme_state::INACTIVE_LOCAL)
+ 	emit_insn (gen_aarch64_clear_tpidr2 ());
+ 
+       if (prev_mode != aarch64_local_sme_state::OFF
+ 	  && prev_mode != aarch64_local_sme_state::SAVED_LOCAL)
+ 	emit_insn (gen_aarch64_smstop_za ());
+ 
+       return;
+     }
+ 
+   if (mode == aarch64_local_sme_state::SAVED_LOCAL)
+     {
+       /* This is a transition to an exception handler.  */
+       gcc_assert (prev_mode == aarch64_local_sme_state::OFF
+ 		  || prev_mode == aarch64_local_sme_state::INACTIVE_LOCAL);
+       return;
+     }
+ 
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_EMIT.  */
+ 
+ static void
+ aarch64_mode_emit (int entity, int mode, int prev_mode, HARD_REG_SET live)
+ {
+   if (mode == prev_mode)
+     return;
+ 
+   start_sequence ();
+   switch (aarch64_mode_entity (entity))
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+       aarch64_mode_emit_za_save_buffer (aarch64_tristate_mode (mode),
+ 					aarch64_tristate_mode (prev_mode));
+       break;
+ 
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       aarch64_mode_emit_local_sme_state (aarch64_local_sme_state (mode),
+ 					 aarch64_local_sme_state (prev_mode));
+       break;
+     }
+   rtx_insn *seq = get_insns ();
+   end_sequence ();
+ 
+   /* Get the set of clobbered registers that are currently live.  */
+   HARD_REG_SET clobbers = {};
+   for (rtx_insn *insn = seq; insn; insn = NEXT_INSN (insn))
+     {
+       if (!NONDEBUG_INSN_P (insn))
+ 	continue;
+       vec_rtx_properties properties;
+       properties.add_insn (insn, false);
+       for (rtx_obj_reference ref : properties.refs ())
+ 	if (ref.is_write () && HARD_REGISTER_NUM_P (ref.regno))
+ 	  SET_HARD_REG_BIT (clobbers, ref.regno);
+     }
+   clobbers &= live;
+ 
+   /* Emit instructions to save clobbered registers to pseudos.  Queue
+      instructions to restore the registers afterwards.
+ 
+      This should only needed in rare situations.  */
+   auto_vec<rtx, 33> after;
+   for (unsigned int regno = R0_REGNUM; regno < R30_REGNUM; ++regno)
+     if (TEST_HARD_REG_BIT (clobbers, regno))
+       {
+ 	rtx hard_reg = gen_rtx_REG (DImode, regno);
+ 	rtx pseudo_reg = gen_reg_rtx (DImode);
+ 	emit_move_insn (pseudo_reg, hard_reg);
+ 	after.quick_push (gen_move_insn (hard_reg, pseudo_reg));
+       }
+   if (TEST_HARD_REG_BIT (clobbers, CC_REGNUM))
+     {
+       rtx pseudo_reg = gen_reg_rtx (DImode);
+       emit_insn (gen_aarch64_save_nzcv (pseudo_reg));
+       after.quick_push (gen_aarch64_restore_nzcv (pseudo_reg));
+     }
+ 
+   /* Emit the transition instructions themselves.  */
+   emit_insn (seq);
+ 
+   /* Restore the clobbered registers.  */
+   for (auto *insn : after)
+     emit_insn (insn);
+ }
+ 
+ /* Return true if INSN references the SME state represented by hard register
+    REGNO.  */
+ 
+ static bool
+ aarch64_insn_references_sme_state_p (rtx_insn *insn, unsigned int regno)
+ {
+   df_ref ref;
+   FOR_EACH_INSN_DEF (ref, insn)
+     if (!DF_REF_FLAGS_IS_SET (ref, DF_REF_MUST_CLOBBER)
+ 	&& DF_REF_REGNO (ref) == regno)
+       return true;
+   FOR_EACH_INSN_USE (ref, insn)
+     if (DF_REF_REGNO (ref) == regno)
+       return true;
+   return false;
+ }
+ 
+ /* Implement TARGET_MODE_NEEDED for LOCAL_SME_STATE.  */
+ 
+ static aarch64_local_sme_state
+ aarch64_mode_needed_local_sme_state (rtx_insn *insn, HARD_REG_SET live)
+ {
+   if (!CALL_P (insn)
+       && find_reg_note (insn, REG_EH_REGION, NULL_RTX))
+     {
+       static bool reported;
+       if (!reported)
+ 	{
+ 	  sorry ("catching non-call exceptions in functions with SME state");
+ 	  reported = true;
+ 	}
+       /* Aim for graceful error recovery by picking the value that is
+ 	 least likely to generate an ICE.  */
+       return aarch64_local_sme_state::INACTIVE_LOCAL;
+     }
+ 
+   /* A non-local goto is equivalent to a return.  We disallow non-local
+      receivers in functions with SME state, so we know that the target
+      expects ZA to be dormant or off.  */
+   if (JUMP_P (insn)
+       && find_reg_note (insn, REG_NON_LOCAL_GOTO, NULL_RTX))
+     return aarch64_local_sme_state::INACTIVE_CALLER;
+ 
+   /* start_private_za_call and end_private_za_call bracket a sequence
+      that calls a private-ZA function.  Force ZA to be turned off if the
+      function doesn't have any live ZA state, otherwise require ZA to be
+      inactive.  */
+   auto icode = recog_memoized (insn);
+   if (icode == CODE_FOR_aarch64_start_private_za_call
+       || icode == CODE_FOR_aarch64_end_private_za_call)
+     return (TEST_HARD_REG_BIT (live, ZA_REGNUM)
+ 	    ? aarch64_local_sme_state::INACTIVE_LOCAL
+ 	    : aarch64_local_sme_state::OFF);
+ 
+   /* Force ZA to contain the current function's ZA state if INSN wants
+      to access it.  Do the same for accesses to ZT0, since ZA and ZT0
+      are both controlled by PSTATE.ZA.  */
+   if (aarch64_insn_references_sme_state_p (insn, ZA_REGNUM)
+       || aarch64_insn_references_sme_state_p (insn, ZT0_REGNUM))
+     return (TEST_HARD_REG_BIT (live, ZA_REGNUM)
+ 	    ? aarch64_local_sme_state::ACTIVE_LIVE
+ 	    : aarch64_local_sme_state::ACTIVE_DEAD);
+ 
+   return aarch64_local_sme_state::ANY;
+ }
+ 
+ /* Implement TARGET_MODE_NEEDED for ZA_SAVE_BUFFER.  */
+ 
+ static aarch64_tristate_mode
+ aarch64_mode_needed_za_save_buffer (rtx_insn *insn, HARD_REG_SET live)
+ {
+   /* We need to set up a lazy save buffer no later than the first
+      transition to INACTIVE_LOCAL (which involves setting up a lazy save).  */
+   if (aarch64_mode_needed_local_sme_state (insn, live)
+       == aarch64_local_sme_state::INACTIVE_LOCAL)
+     return aarch64_tristate_mode::YES;
+ 
+   /* Also make sure that the lazy save buffer is set up before the first
+      insn that throws internally.  The exception handler will sometimes
+      load from it.  */
+   if (find_reg_note (insn, REG_EH_REGION, NULL_RTX))
+     return aarch64_tristate_mode::YES;
+ 
+   return aarch64_tristate_mode::MAYBE;
+ }
+ 
+ /* Implement TARGET_MODE_NEEDED.  */
+ 
+ static int
+ aarch64_mode_needed (int entity, rtx_insn *insn, HARD_REG_SET live)
+ {
+   switch (aarch64_mode_entity (entity))
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+       return int (aarch64_mode_needed_za_save_buffer (insn, live));
+ 
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       return int (aarch64_mode_needed_local_sme_state (insn, live));
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_AFTER for LOCAL_SME_STATE.  */
+ 
+ static aarch64_local_sme_state
+ aarch64_mode_after_local_sme_state (aarch64_local_sme_state mode,
+ 				    HARD_REG_SET live)
+ {
+   /* Note places where ZA dies, so that we can try to avoid saving and
+      restoring state that isn't needed.  */
+   if (mode == aarch64_local_sme_state::ACTIVE_LIVE
+       && !TEST_HARD_REG_BIT (live, ZA_REGNUM))
+     return aarch64_local_sme_state::ACTIVE_DEAD;
+ 
+   /* Note where ZA is born, e.g. when moving past an __arm_out("za")
+      function.  */
+   if (mode == aarch64_local_sme_state::ACTIVE_DEAD
+       && TEST_HARD_REG_BIT (live, ZA_REGNUM))
+     return aarch64_local_sme_state::ACTIVE_LIVE;
+ 
+   return mode;
+ }
+ 
+ /* Implement TARGET_MODE_AFTER.  */
+ 
+ static int
+ aarch64_mode_after (int entity, int mode, rtx_insn *, HARD_REG_SET live)
+ {
+   switch (aarch64_mode_entity (entity))
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+       return mode;
+ 
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       return int (aarch64_mode_after_local_sme_state
+ 		  (aarch64_local_sme_state (mode), live));
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_CONFLUENCE for LOCAL_SME_STATE.  */
+ 
+ static aarch64_local_sme_state
+ aarch64_local_sme_confluence (aarch64_local_sme_state mode1,
+ 			      aarch64_local_sme_state mode2)
+ {
+   /* Perform a symmetrical check for two values.  */
+   auto is_pair = [&](aarch64_local_sme_state val1,
+ 		     aarch64_local_sme_state val2)
+     {
+       return ((mode1 == val1 && mode2 == val2)
+ 	      || (mode1 == val2 && mode2 == val1));
+     };
+ 
+   /* INACTIVE_CALLER means ZA is off or it has dormant contents belonging
+      to a caller.  OFF is one of the options.  */
+   if (is_pair (aarch64_local_sme_state::INACTIVE_CALLER,
+ 	       aarch64_local_sme_state::OFF))
+     return aarch64_local_sme_state::INACTIVE_CALLER;
+ 
+   /* Similarly for dormant contents belonging to the current function.  */
+   if (is_pair (aarch64_local_sme_state::INACTIVE_LOCAL,
+ 	       aarch64_local_sme_state::OFF))
+     return aarch64_local_sme_state::INACTIVE_LOCAL;
+ 
+   /* Treat a conditionally-initialized value as a fully-initialized value.  */
+   if (is_pair (aarch64_local_sme_state::ACTIVE_LIVE,
+ 	       aarch64_local_sme_state::ACTIVE_DEAD))
+     return aarch64_local_sme_state::ACTIVE_LIVE;
+ 
+   return aarch64_local_sme_state::ANY;
+ }
+ 
+ /* Implement TARGET_MODE_CONFLUENCE.  */
+ 
+ static int
+ aarch64_mode_confluence (int entity, int mode1, int mode2)
+ {
+   gcc_assert (mode1 != mode2);
+   switch (aarch64_mode_entity (entity))
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+       return int (aarch64_tristate_mode::MAYBE);
+ 
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       return int (aarch64_local_sme_confluence
+ 		  (aarch64_local_sme_state (mode1),
+ 		   aarch64_local_sme_state (mode2)));
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_BACKPROP for an entity that either stays
+    NO throughput, or makes one transition from NO to YES.  */
+ 
+ static aarch64_tristate_mode
+ aarch64_one_shot_backprop (aarch64_tristate_mode mode1,
+ 			   aarch64_tristate_mode mode2)
+ {
+   /* Keep bringing the transition forward until it starts from NO.  */
+   if (mode1 == aarch64_tristate_mode::MAYBE
+       && mode2 == aarch64_tristate_mode::YES)
+     return mode2;
+ 
+   return aarch64_tristate_mode::MAYBE;
+ }
+ 
+ /* Implement TARGET_MODE_BACKPROP for LOCAL_SME_STATE.  */
+ 
+ static aarch64_local_sme_state
+ aarch64_local_sme_backprop (aarch64_local_sme_state mode1,
+ 			    aarch64_local_sme_state mode2)
+ {
+   /* We always need to know what the current state is when transitioning
+      to a new state.  Force any location with indeterminate starting state
+      to be active.  */
+   if (mode1 == aarch64_local_sme_state::ANY)
+     switch (mode2)
+       {
+       case aarch64_local_sme_state::INACTIVE_CALLER:
+       case aarch64_local_sme_state::OFF:
+       case aarch64_local_sme_state::ACTIVE_DEAD:
+ 	/* The current function's ZA state is not live.  */
+ 	return aarch64_local_sme_state::ACTIVE_DEAD;
+ 
+       case aarch64_local_sme_state::INACTIVE_LOCAL:
+       case aarch64_local_sme_state::ACTIVE_LIVE:
+ 	/* The current function's ZA state is live.  */
+ 	return aarch64_local_sme_state::ACTIVE_LIVE;
+ 
+       case aarch64_local_sme_state::SAVED_LOCAL:
+ 	/* This is a transition to an exception handler.  Since we don't
+ 	   support non-call exceptions for SME functions, the source of
+ 	   the transition must be known.  We'll assert later if that's
+ 	   not the case.  */
+ 	return aarch64_local_sme_state::ANY;
+ 
+       case aarch64_local_sme_state::ANY:
+ 	return aarch64_local_sme_state::ANY;
+       }
+ 
+   return aarch64_local_sme_state::ANY;
+ }
+ 
+ /* Implement TARGET_MODE_BACKPROP.  */
+ 
+ static int
+ aarch64_mode_backprop (int entity, int mode1, int mode2)
+ {
+   switch (aarch64_mode_entity (entity))
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+       return int (aarch64_one_shot_backprop (aarch64_tristate_mode (mode1),
+ 					     aarch64_tristate_mode (mode2)));
+ 
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       return int (aarch64_local_sme_backprop
+ 		  (aarch64_local_sme_state (mode1),
+ 		   aarch64_local_sme_state (mode2)));
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_ENTRY.  */
+ 
+ static int
+ aarch64_mode_entry (int entity)
+ {
+   switch (aarch64_mode_entity (entity))
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+       return int (aarch64_tristate_mode::NO);
+ 
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       return int (aarch64_cfun_shared_flags ("za") != 0
+ 		  ? aarch64_local_sme_state::ACTIVE_LIVE
+ 		  : aarch64_cfun_incoming_pstate_za () != 0
+ 		  ? aarch64_local_sme_state::ACTIVE_DEAD
+ 		  : aarch64_local_sme_state::INACTIVE_CALLER);
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_EXIT.  */
+ 
+ static int
+ aarch64_mode_exit (int entity)
+ {
+   switch (aarch64_mode_entity (entity))
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+       return int (aarch64_tristate_mode::MAYBE);
+ 
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       return int (aarch64_cfun_shared_flags ("za") != 0
+ 		  ? aarch64_local_sme_state::ACTIVE_LIVE
+ 		  : aarch64_cfun_incoming_pstate_za () != 0
+ 		  ? aarch64_local_sme_state::ACTIVE_DEAD
+ 		  : aarch64_local_sme_state::INACTIVE_CALLER);
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_EH_HANDLER.  */
+ 
+ static int
+ aarch64_mode_eh_handler (int entity)
+ {
+   switch (aarch64_mode_entity (entity))
+     {
+     case aarch64_mode_entity::HAVE_ZA_SAVE_BUFFER:
+       /* Require a lazy save buffer to be allocated before the first
+ 	 insn that can throw.  */
+       return int (aarch64_tristate_mode::YES);
+ 
+     case aarch64_mode_entity::LOCAL_SME_STATE:
+       return int (aarch64_local_sme_state::SAVED_LOCAL);
+     }
+   gcc_unreachable ();
+ }
+ 
+ /* Implement TARGET_MODE_PRIORITY.  */
+ 
+ static int
+ aarch64_mode_priority (int, int n)
+ {
+   return n;
+ }
+ 
+ /* Implement TARGET_MD_ASM_ADJUST.  */
+ 
+ static rtx_insn *
+ aarch64_md_asm_adjust (vec<rtx> &outputs, vec<rtx> &inputs,
+ 		       vec<machine_mode> &input_modes,
+ 		       vec<const char *> &constraints,
+ 		       vec<rtx> &uses, vec<rtx> &clobbers,
+ 		       HARD_REG_SET &clobbered_regs, location_t loc)
+ {
+   rtx_insn *seq = arm_md_asm_adjust (outputs, inputs, input_modes, constraints,
+ 				     uses, clobbers, clobbered_regs, loc);
+ 
+   /* "za" in the clobber list of a function with ZA state is defined to
+      mean that the asm can read from and write to ZA.  We can model the
+      read using a USE, but unfortunately, it's not possible to model the
+      write directly.   Use a separate insn to model the effect.
+ 
+      We must ensure that ZA is active on entry, which is enforced by using
+      SME_STATE_REGNUM.  The asm must ensure that ZA is active on return.
+ 
+      The same thing applies to ZT0.  */
+   if (TARGET_ZA)
+     for (unsigned int i = clobbers.length (); i-- > 0; )
+       {
+ 	rtx x = clobbers[i];
+ 	if (REG_P (x)
+ 	    && (REGNO (x) == ZA_REGNUM || REGNO (x) == ZT0_REGNUM))
+ 	  {
+ 	    auto id = cfun->machine->next_asm_update_za_id++;
+ 
+ 	    start_sequence ();
+ 	    if (seq)
+ 	      emit_insn (seq);
+ 	    rtx id_rtx = gen_int_mode (id, SImode);
+ 	    emit_insn (REGNO (x) == ZA_REGNUM
+ 		       ? gen_aarch64_asm_update_za (id_rtx)
+ 		       : gen_aarch64_asm_update_zt0 (id_rtx));
+ 	    seq = get_insns ();
+ 	    end_sequence ();
+ 
+ 	    auto mode = REGNO (x) == ZA_REGNUM ? VNx16QImode : V8DImode;
+ 	    uses.safe_push (gen_rtx_REG (mode, REGNO (x)));
+ 	    uses.safe_push (gen_rtx_REG (DImode, SME_STATE_REGNUM));
+ 
+ 	    clobbers.ordered_remove (i);
+ 	    CLEAR_HARD_REG_BIT (clobbered_regs, REGNO (x));
+ 	  }
+       }
+   return seq;
+ }
+ 
+ /* BB is the target of an exception or nonlocal goto edge, which means
+    that PSTATE.SM is known to be 0 on entry.  Put it into the state that
+    the current function requires.  */
+ 
+ static bool
+ aarch64_switch_pstate_sm_for_landing_pad (basic_block bb)
+ {
+   if (TARGET_NON_STREAMING)
+     return false;
+ 
+   start_sequence ();
+   rtx_insn *guard_label = nullptr;
+   if (TARGET_STREAMING_COMPATIBLE)
+     guard_label = aarch64_guard_switch_pstate_sm (IP0_REGNUM,
+ 						  AARCH64_FL_SM_OFF);
+   aarch64_sme_mode_switch_regs args_switch;
+   args_switch.add_call_preserved_regs (df_get_live_in (bb));
+   args_switch.emit_prologue ();
+   aarch64_switch_pstate_sm (AARCH64_FL_SM_OFF, AARCH64_FL_SM_ON);
+   args_switch.emit_epilogue ();
+   if (guard_label)
+     emit_label (guard_label);
+   auto seq = get_insns ();
+   end_sequence ();
+ 
+   emit_insn_after (seq, bb_note (bb));
+   return true;
+ }
+ 
+ /* JUMP is a nonlocal goto.  Its target requires PSTATE.SM to be 0 on entry,
+    so arrange to make it so.  */
+ 
+ static bool
+ aarch64_switch_pstate_sm_for_jump (rtx_insn *jump)
+ {
+   if (TARGET_NON_STREAMING)
+     return false;
+ 
+   start_sequence ();
+   rtx_insn *guard_label = nullptr;
+   if (TARGET_STREAMING_COMPATIBLE)
+     guard_label = aarch64_guard_switch_pstate_sm (IP0_REGNUM,
+ 						  AARCH64_FL_SM_OFF);
+   aarch64_switch_pstate_sm (AARCH64_FL_SM_ON, AARCH64_FL_SM_OFF);
+   if (guard_label)
+     emit_label (guard_label);
+   auto seq = get_insns ();
+   end_sequence ();
+ 
+   emit_insn_before (seq, jump);
+   return true;
+ }
+ 
+ /* If CALL involves a change in PSTATE.SM, emit the instructions needed
+    to switch to the new mode and the instructions needed to restore the
+    original mode.  Return true if something changed.  */
+ static bool
+ aarch64_switch_pstate_sm_for_call (rtx_call_insn *call)
+ {
+   /* Mode switches for sibling calls are handled via the epilogue.  */
+   if (SIBLING_CALL_P (call))
+     return false;
+ 
+   auto callee_isa_mode = aarch64_insn_callee_isa_mode (call);
+   if (!aarch64_call_switches_pstate_sm (callee_isa_mode))
+     return false;
+ 
+   /* Switch mode before the call, preserving any argument registers
+      across the switch.  */
+   start_sequence ();
+   rtx_insn *args_guard_label = nullptr;
+   if (TARGET_STREAMING_COMPATIBLE)
+     args_guard_label = aarch64_guard_switch_pstate_sm (IP0_REGNUM,
+ 						       callee_isa_mode);
+   aarch64_sme_mode_switch_regs args_switch;
+   args_switch.add_call_args (call);
+   args_switch.emit_prologue ();
+   aarch64_switch_pstate_sm (AARCH64_ISA_MODE, callee_isa_mode);
+   args_switch.emit_epilogue ();
+   if (args_guard_label)
+     emit_label (args_guard_label);
+   auto args_seq = get_insns ();
+   end_sequence ();
+   emit_insn_before (args_seq, call);
+ 
+   if (find_reg_note (call, REG_NORETURN, NULL_RTX))
+     return true;
+ 
+   /* Switch mode after the call, preserving any return registers across
+      the switch.  */
+   start_sequence ();
+   rtx_insn *return_guard_label = nullptr;
+   if (TARGET_STREAMING_COMPATIBLE)
+     return_guard_label = aarch64_guard_switch_pstate_sm (IP0_REGNUM,
+ 							 callee_isa_mode);
+   aarch64_sme_mode_switch_regs return_switch;
+   return_switch.add_call_result (call);
+   return_switch.emit_prologue ();
+   aarch64_switch_pstate_sm (callee_isa_mode, AARCH64_ISA_MODE);
+   return_switch.emit_epilogue ();
+   if (return_guard_label)
+     emit_label (return_guard_label);
+   auto result_seq = get_insns ();
+   end_sequence ();
+   emit_insn_after (result_seq, call);
+   return true;
+ }
+ 
+ namespace {
+ 
+ const pass_data pass_data_switch_pstate_sm =
+ {
+   RTL_PASS, // type
+   "smstarts", // name
+   OPTGROUP_NONE, // optinfo_flags
+   TV_NONE, // tv_id
+   0, // properties_required
+   0, // properties_provided
+   0, // properties_destroyed
+   0, // todo_flags_start
+   TODO_df_finish, // todo_flags_finish
+ };
+ 
+ class pass_switch_pstate_sm : public rtl_opt_pass
+ {
+ public:
+   pass_switch_pstate_sm (gcc::context *ctxt)
+     : rtl_opt_pass (pass_data_switch_pstate_sm, ctxt)
+   {}
+ 
+   // opt_pass methods:
+   bool gate (function *) override final;
+   unsigned int execute (function *) override final;
+ };
+ 
+ bool
+ pass_switch_pstate_sm::gate (function *fn)
+ {
+   return (aarch64_fndecl_pstate_sm (fn->decl) != AARCH64_FL_SM_OFF
+ 	  || cfun->machine->call_switches_pstate_sm);
+ }
+ 
+ /* Emit any instructions needed to switch PSTATE.SM.  */
+ unsigned int
+ pass_switch_pstate_sm::execute (function *fn)
+ {
+   basic_block bb;
+ 
+   auto_sbitmap blocks (last_basic_block_for_fn (cfun));
+   bitmap_clear (blocks);
+   FOR_EACH_BB_FN (bb, fn)
+     {
+       if (has_abnormal_call_or_eh_pred_edge_p (bb)
+ 	  && aarch64_switch_pstate_sm_for_landing_pad (bb))
+ 	bitmap_set_bit (blocks, bb->index);
+ 
+       if (cfun->machine->call_switches_pstate_sm)
+ 	{
+ 	  rtx_insn *insn;
+ 	  FOR_BB_INSNS (bb, insn)
+ 	    if (auto *call = dyn_cast<rtx_call_insn *> (insn))
+ 	      if (aarch64_switch_pstate_sm_for_call (call))
+ 		bitmap_set_bit (blocks, bb->index);
+ 	}
+ 
+       auto end = BB_END (bb);
+       if (JUMP_P (end)
+ 	  && find_reg_note (end, REG_NON_LOCAL_GOTO, NULL_RTX)
+ 	  && aarch64_switch_pstate_sm_for_jump (end))
+ 	bitmap_set_bit (blocks, bb->index);
+     }
+   find_many_sub_basic_blocks (blocks);
+   clear_aux_for_blocks ();
+   return 0;
+ }
+ 
+ }
+ 
+ rtl_opt_pass *
+ make_pass_switch_pstate_sm (gcc::context *ctxt)
+ {
+   return new pass_switch_pstate_sm (ctxt);
+ }
+ 
+ /* Parse an implementation-defined system register name of
+    the form S[0-3]_[0-7]_C[0-15]_C[0-15]_[0-7].
+    Return true if name matched against above pattern, false
+    otherwise.  */
+ bool
+ aarch64_is_implem_def_reg (const char *regname)
+ {
+   unsigned pos = 0;
+   unsigned name_len = strlen (regname);
+   if (name_len < 12 || name_len > 14)
+     return false;
+ 
+   auto cterm_valid_p = [&]()
+   {
+     bool leading_zero_p = false;
+     unsigned i = 0;
+     char n[3] = {0};
+ 
+     if (regname[pos] != 'c')
+       return false;
+     pos++;
+     while (regname[pos] != '_')
+       {
+ 	if (leading_zero_p)
+ 	  return false;
+ 	if (i == 0 && regname[pos] == '0')
+ 	  leading_zero_p = true;
+ 	if (i > 2)
+ 	  return false;
+ 	if (!ISDIGIT (regname[pos]))
+ 	  return false;
+ 	n[i++] = regname[pos++];
+       }
+     if (atoi (n) > 15)
+       return false;
+     return true;
+   };
+ 
+   if (regname[pos] != 's')
+     return false;
+   pos++;
+   if (regname[pos] < '0' || regname[pos] > '3')
+     return false;
+   pos++;
+   if (regname[pos++] != '_')
+     return false;
+   if (regname[pos] < '0' || regname[pos] > '7')
+     return false;
+   pos++;
+   if (regname[pos++] != '_')
+     return false;
+   if (!cterm_valid_p ())
+     return false;
+   if (regname[pos++] != '_')
+     return false;
+   if (!cterm_valid_p ())
+     return false;
+   if (regname[pos++] != '_')
+     return false;
+   if (regname[pos] < '0' || regname[pos] > '7')
+     return false;
+   return true;
+ }
+ 
+ /* Return true if REGNAME matches either a known permitted system
+    register name, or a generic sysreg specification.  For use in
+    back-end predicate `aarch64_sysreg_string'.  */
+ bool
+ aarch64_valid_sysreg_name_p (const char *regname)
+ {
+   const sysreg_t *sysreg = aarch64_lookup_sysreg_map (regname);
+   if (sysreg == NULL)
+     return aarch64_is_implem_def_reg (regname);
+   if (sysreg->arch_reqs)
+     return (aarch64_isa_flags & sysreg->arch_reqs);
+   return true;
+ }
+ 
+ /* Return the generic sysreg specification for a valid system register
+    name, otherwise NULL.  WRITE_P is true iff the register is being
+    written to.  IS128OP indicates the requested system register should
+    be checked for a 128-bit implementation.  */
+ const char *
+ aarch64_retrieve_sysreg (const char *regname, bool write_p, bool is128op)
+ {
+   const sysreg_t *sysreg = aarch64_lookup_sysreg_map (regname);
+   if (sysreg == NULL)
+     {
+       if (aarch64_is_implem_def_reg (regname))
+ 	return regname;
+       else
+ 	return NULL;
+     }
+   if (is128op && !(sysreg->properties & F_REG_128))
+     return NULL;
+   if ((write_p && (sysreg->properties & F_REG_READ))
+       || (!write_p && (sysreg->properties & F_REG_WRITE)))
+     return NULL;
+   if ((~aarch64_isa_flags & sysreg->arch_reqs) != 0)
+     return NULL;
+   return sysreg->encoding;
+ }
+ 
  /* Target-specific selftests.  */
  
  #if CHECKING_P
*************** aarch64_test_fractional_cost ()
*** 27508,27525 ****
    ASSERT_EQ (cf (2, 3) * 5, cf (10, 3));
    ASSERT_EQ (14 * cf (11, 21), cf (22, 3));
  
!   ASSERT_TRUE (cf (4, 15) < cf (5, 15));
!   ASSERT_FALSE (cf (5, 15) < cf (5, 15));
!   ASSERT_FALSE (cf (6, 15) < cf (5, 15));
!   ASSERT_TRUE (cf (1, 3) < cf (2, 5));
!   ASSERT_TRUE (cf (1, 12) < cf (1, 6));
!   ASSERT_FALSE (cf (5, 3) < cf (5, 3));
!   ASSERT_TRUE (cf (239, 240) < 1);
!   ASSERT_FALSE (cf (240, 240) < 1);
!   ASSERT_FALSE (cf (241, 240) < 1);
!   ASSERT_FALSE (2 < cf (207, 104));
!   ASSERT_FALSE (2 < cf (208, 104));
!   ASSERT_TRUE (2 < cf (209, 104));
  
    ASSERT_TRUE (cf (4, 15) < cf (5, 15));
    ASSERT_FALSE (cf (5, 15) < cf (5, 15));
--- 30429,30446 ----
    ASSERT_EQ (cf (2, 3) * 5, cf (10, 3));
    ASSERT_EQ (14 * cf (11, 21), cf (22, 3));
  
!   ASSERT_TRUE (cf (4, 15) <= cf (5, 15));
!   ASSERT_TRUE (cf (5, 15) <= cf (5, 15));
!   ASSERT_FALSE (cf (6, 15) <= cf (5, 15));
!   ASSERT_TRUE (cf (1, 3) <= cf (2, 5));
!   ASSERT_TRUE (cf (1, 12) <= cf (1, 6));
!   ASSERT_TRUE (cf (5, 3) <= cf (5, 3));
!   ASSERT_TRUE (cf (239, 240) <= 1);
!   ASSERT_TRUE (cf (240, 240) <= 1);
!   ASSERT_FALSE (cf (241, 240) <= 1);
!   ASSERT_FALSE (2 <= cf (207, 104));
!   ASSERT_TRUE (2 <= cf (208, 104));
!   ASSERT_TRUE (2 <= cf (209, 104));
  
    ASSERT_TRUE (cf (4, 15) < cf (5, 15));
    ASSERT_FALSE (cf (5, 15) < cf (5, 15));
*************** aarch64_test_fractional_cost ()
*** 27572,27577 ****
--- 30493,30540 ----
    ASSERT_EQ (cf (1, 2).as_double (), 0.5);
  }
  
+ /* Calculate whether our system register data, as imported from
+    `aarch64-sys-reg.def' has any duplicate entries.  */
+ static void
+ aarch64_test_sysreg_encoding_clashes (void)
+ {
+   using dup_instances_t = hash_map<nofree_string_hash,
+ 				   std::vector<const sysreg_t*>>;
+ 
+   dup_instances_t duplicate_instances;
+ 
+   /* Every time an encoding is established to come up more than once
+      we add it to a "clash-analysis queue", which is then used to extract
+      necessary information from our hash map when establishing whether
+      repeated encodings are valid.  */
+ 
+   /* 1) Collect recurrence information.  */
+   for (unsigned i = 0; i < ARRAY_SIZE (aarch64_sysregs); i++)
+     {
+       const sysreg_t *reg = aarch64_sysregs + i;
+ 
+       std::vector<const sysreg_t*> *tmp
+ 	= &duplicate_instances.get_or_insert (reg->encoding);
+ 
+       tmp->push_back (reg);
+     }
+ 
+   /* 2) Carry out analysis on collected data.  */
+   for (auto instance : duplicate_instances)
+     {
+       unsigned nrep = instance.second.size ();
+       if (nrep > 1)
+ 	for (unsigned i = 0; i < nrep; i++)
+ 	  for (unsigned j = i + 1; j < nrep; j++)
+ 	    {
+ 	      const sysreg_t *a = instance.second[i];
+ 	      const sysreg_t *b = instance.second[j];
+ 	      ASSERT_TRUE ((a->properties != b->properties)
+ 			   || (a->arch_reqs != b->arch_reqs));
+ 	    }
+     }
+ }
+ 
  /* Run all target-specific selftests.  */
  
  static void
*************** aarch64_run_selftests (void)
*** 27579,27584 ****
--- 30542,30548 ----
  {
    aarch64_test_loading_full_dump ();
    aarch64_test_fractional_cost ();
+   aarch64_test_sysreg_encoding_clashes ();
  }
  
  } // namespace selftest
*************** aarch64_run_selftests (void)
*** 27632,27640 ****
--- 30596,30617 ----
  #undef TARGET_CALLEE_COPIES
  #define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_arg_info_false
  
+ #undef TARGET_FRAME_POINTER_REQUIRED
+ #define TARGET_FRAME_POINTER_REQUIRED aarch64_frame_pointer_required
+ 
  #undef TARGET_CAN_ELIMINATE
  #define TARGET_CAN_ELIMINATE aarch64_can_eliminate
  
+ #undef TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P
+ #define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P \
+   aarch64_function_attribute_inlinable_p
+ 
+ #undef TARGET_NEED_IPA_FN_TARGET_INFO
+ #define TARGET_NEED_IPA_FN_TARGET_INFO aarch64_need_ipa_fn_target_info
+ 
+ #undef TARGET_UPDATE_IPA_FN_TARGET_INFO
+ #define TARGET_UPDATE_IPA_FN_TARGET_INFO aarch64_update_ipa_fn_target_info
+ 
  #undef TARGET_CAN_INLINE_P
  #define TARGET_CAN_INLINE_P aarch64_can_inline_p
  
*************** aarch64_run_selftests (void)
*** 27675,27680 ****
--- 30652,30660 ----
  #undef TARGET_C_EXCESS_PRECISION
  #define TARGET_C_EXCESS_PRECISION aarch64_excess_precision
  
+ #undef TARGET_C_BITINT_TYPE_INFO
+ #define TARGET_C_BITINT_TYPE_INFO aarch64_bitint_type_info
+ 
  #undef  TARGET_EXPAND_BUILTIN
  #define TARGET_EXPAND_BUILTIN aarch64_expand_builtin
  
*************** aarch64_run_selftests (void)
*** 27710,27715 ****
--- 30690,30701 ----
  #undef TARGET_FUNCTION_VALUE_REGNO_P
  #define TARGET_FUNCTION_VALUE_REGNO_P aarch64_function_value_regno_p
  
+ #undef TARGET_START_CALL_ARGS
+ #define TARGET_START_CALL_ARGS aarch64_start_call_args
+ 
+ #undef TARGET_END_CALL_ARGS
+ #define TARGET_END_CALL_ARGS aarch64_end_call_args
+ 
  #undef TARGET_GIMPLE_FOLD_BUILTIN
  #define TARGET_GIMPLE_FOLD_BUILTIN aarch64_gimple_fold_builtin
  
*************** aarch64_libgcc_floating_mode_supported_p
*** 27783,27788 ****
--- 30769,30778 ----
  #undef TARGET_OPTION_VALID_ATTRIBUTE_P
  #define TARGET_OPTION_VALID_ATTRIBUTE_P aarch64_option_valid_attribute_p
  
+ #undef TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P
+ #define TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P \
+   aarch64_option_valid_version_attribute_p
+ 
  #undef TARGET_SET_CURRENT_FUNCTION
  #define TARGET_SET_CURRENT_FUNCTION aarch64_set_current_function
  
*************** aarch64_libgcc_floating_mode_supported_p
*** 27828,27833 ****
--- 30818,30826 ----
  #undef TARGET_RTX_COSTS
  #define TARGET_RTX_COSTS aarch64_rtx_costs_wrapper
  
+ #undef TARGET_INSN_COST
+ #define TARGET_INSN_COST aarch64_insn_cost
+ 
  #undef TARGET_SCALAR_MODE_SUPPORTED_P
  #define TARGET_SCALAR_MODE_SUPPORTED_P aarch64_scalar_mode_supported_p
  
*************** aarch64_libgcc_floating_mode_supported_p
*** 27878,27883 ****
--- 30871,30879 ----
  #undef TARGET_VECTOR_MODE_SUPPORTED_P
  #define TARGET_VECTOR_MODE_SUPPORTED_P aarch64_vector_mode_supported_p
  
+ #undef TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P
+ #define TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P aarch64_vector_mode_supported_any_target_p
+ 
  #undef TARGET_COMPATIBLE_VECTOR_TYPES_P
  #define TARGET_COMPATIBLE_VECTOR_TYPES_P aarch64_compatible_vector_types_p
  
*************** aarch64_libgcc_floating_mode_supported_p
*** 28072,28077 ****
--- 31068,31076 ----
  #undef TARGET_COMP_TYPE_ATTRIBUTES
  #define TARGET_COMP_TYPE_ATTRIBUTES aarch64_comp_type_attributes
  
+ #undef TARGET_MERGE_DECL_ATTRIBUTES
+ #define TARGET_MERGE_DECL_ATTRIBUTES aarch64_merge_decl_attributes
+ 
  #undef TARGET_GET_MULTILIB_ABI_NAME
  #define TARGET_GET_MULTILIB_ABI_NAME aarch64_get_multilib_abi_name
  
*************** aarch64_libgcc_floating_mode_supported_p
*** 28092,28099 ****
  #undef TARGET_STRICT_ARGUMENT_NAMING
  #define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_true
  
  #undef TARGET_MD_ASM_ADJUST
! #define TARGET_MD_ASM_ADJUST arm_md_asm_adjust
  
  #undef TARGET_ASM_FILE_END
  #define TARGET_ASM_FILE_END aarch64_asm_file_end
--- 31091,31125 ----
  #undef TARGET_STRICT_ARGUMENT_NAMING
  #define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_true
  
+ #undef TARGET_MODE_EMIT
+ #define TARGET_MODE_EMIT aarch64_mode_emit
+ 
+ #undef TARGET_MODE_NEEDED
+ #define TARGET_MODE_NEEDED aarch64_mode_needed
+ 
+ #undef TARGET_MODE_AFTER
+ #define TARGET_MODE_AFTER aarch64_mode_after
+ 
+ #undef TARGET_MODE_CONFLUENCE
+ #define TARGET_MODE_CONFLUENCE aarch64_mode_confluence
+ 
+ #undef TARGET_MODE_BACKPROP
+ #define TARGET_MODE_BACKPROP aarch64_mode_backprop
+ 
+ #undef TARGET_MODE_ENTRY
+ #define TARGET_MODE_ENTRY aarch64_mode_entry
+ 
+ #undef TARGET_MODE_EXIT
+ #define TARGET_MODE_EXIT aarch64_mode_exit
+ 
+ #undef TARGET_MODE_EH_HANDLER
+ #define TARGET_MODE_EH_HANDLER aarch64_mode_eh_handler
+ 
+ #undef TARGET_MODE_PRIORITY
+ #define TARGET_MODE_PRIORITY aarch64_mode_priority
+ 
  #undef TARGET_MD_ASM_ADJUST
! #define TARGET_MD_ASM_ADJUST aarch64_md_asm_adjust
  
  #undef TARGET_ASM_FILE_END
  #define TARGET_ASM_FILE_END aarch64_asm_file_end
*************** aarch64_libgcc_floating_mode_supported_p
*** 28107,28112 ****
--- 31133,31164 ----
  #undef TARGET_CONST_ANCHOR
  #define TARGET_CONST_ANCHOR 0x1000000
  
+ #undef TARGET_EXTRA_LIVE_ON_ENTRY
+ #define TARGET_EXTRA_LIVE_ON_ENTRY aarch64_extra_live_on_entry
+ 
+ #undef TARGET_USE_LATE_PROLOGUE_EPILOGUE
+ #define TARGET_USE_LATE_PROLOGUE_EPILOGUE aarch64_use_late_prologue_epilogue
+ 
+ #undef TARGET_EMIT_EPILOGUE_FOR_SIBCALL
+ #define TARGET_EMIT_EPILOGUE_FOR_SIBCALL aarch64_expand_epilogue
+ 
+ #undef TARGET_OPTION_FUNCTION_VERSIONS
+ #define TARGET_OPTION_FUNCTION_VERSIONS aarch64_common_function_versions
+ 
+ #undef TARGET_COMPARE_VERSION_PRIORITY
+ #define TARGET_COMPARE_VERSION_PRIORITY aarch64_compare_version_priority
+ 
+ #undef TARGET_GENERATE_VERSION_DISPATCHER_BODY
+ #define TARGET_GENERATE_VERSION_DISPATCHER_BODY \
+   aarch64_generate_version_dispatcher_body
+ 
+ #undef TARGET_GET_FUNCTION_VERSIONS_DISPATCHER
+ #define TARGET_GET_FUNCTION_VERSIONS_DISPATCHER \
+   aarch64_get_function_versions_dispatcher
+ 
+ #undef TARGET_MANGLE_DECL_ASSEMBLER_NAME
+ #define TARGET_MANGLE_DECL_ASSEMBLER_NAME aarch64_mangle_decl_assembler_name
+ 
  struct gcc_target targetm = TARGET_INITIALIZER;
  
  #include "gt-aarch64.h"
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64.h gcc-14.1.0/gcc/config/aarch64/aarch64.h
*** gcc-13.2.0/gcc/config/aarch64/aarch64.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Machine description for AArch64 architecture.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 61,68 ****
  #define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN)
  
  /* AdvSIMD is supported in the default configuration, unless disabled by
!    -mgeneral-regs-only or by the +nosimd extension.  */
! #define TARGET_SIMD (AARCH64_ISA_SIMD)
  #define TARGET_FLOAT (AARCH64_ISA_FP)
  
  #define UNITS_PER_WORD		8
--- 61,75 ----
  #define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN)
  
  /* AdvSIMD is supported in the default configuration, unless disabled by
!    -mgeneral-regs-only or by the +nosimd extension.  The set of available
!    instructions is then subdivided into:
! 
!    - the "base" set, available both in SME streaming mode and in
!      non-streaming mode
! 
!    - the full set, available only in non-streaming mode.  */
! #define TARGET_BASE_SIMD (AARCH64_ISA_SIMD)
! #define TARGET_SIMD (AARCH64_ISA_SIMD && AARCH64_ISA_SM_OFF)
  #define TARGET_FLOAT (AARCH64_ISA_FP)
  
  #define UNITS_PER_WORD		8
***************
*** 157,166 ****
  
  #ifndef USED_FOR_TARGET
  
! /* Define an enum of all features (architectures and extensions).  */
  enum class aarch64_feature : unsigned char {
  #define AARCH64_OPT_EXTENSION(A, IDENT, C, D, E, F) IDENT,
  #define AARCH64_ARCH(A, B, IDENT, D, E) IDENT,
  #include "aarch64-option-extensions.def"
  #include "aarch64-arches.def"
  };
--- 164,176 ----
  
  #ifndef USED_FOR_TARGET
  
! /* Define an enum of all features (ISA modes, architectures and extensions).
!    The ISA modes must come first.  */
  enum class aarch64_feature : unsigned char {
+ #define DEF_AARCH64_ISA_MODE(IDENT) IDENT,
  #define AARCH64_OPT_EXTENSION(A, IDENT, C, D, E, F) IDENT,
  #define AARCH64_ARCH(A, B, IDENT, D, E) IDENT,
+ #include "aarch64-isa-modes.def"
  #include "aarch64-option-extensions.def"
  #include "aarch64-arches.def"
  };
*************** enum class aarch64_feature : unsigned ch
*** 169,186 ****
  #define HANDLE(IDENT) \
    constexpr auto AARCH64_FL_##IDENT \
      = aarch64_feature_flags (1) << int (aarch64_feature::IDENT);
  #define AARCH64_OPT_EXTENSION(A, IDENT, C, D, E, F) HANDLE (IDENT)
  #define AARCH64_ARCH(A, B, IDENT, D, E) HANDLE (IDENT)
  #include "aarch64-option-extensions.def"
  #include "aarch64-arches.def"
  #undef HANDLE
  
  #endif
  
! /* Macros to test ISA flags.  */
  
  #define AARCH64_ISA_CRC            (aarch64_isa_flags & AARCH64_FL_CRC)
- #define AARCH64_ISA_CRYPTO         (aarch64_isa_flags & AARCH64_FL_CRYPTO)
  #define AARCH64_ISA_FP             (aarch64_isa_flags & AARCH64_FL_FP)
  #define AARCH64_ISA_SIMD           (aarch64_isa_flags & AARCH64_FL_SIMD)
  #define AARCH64_ISA_LSE		   (aarch64_isa_flags & AARCH64_FL_LSE)
--- 179,222 ----
  #define HANDLE(IDENT) \
    constexpr auto AARCH64_FL_##IDENT \
      = aarch64_feature_flags (1) << int (aarch64_feature::IDENT);
+ #define DEF_AARCH64_ISA_MODE(IDENT) HANDLE (IDENT)
  #define AARCH64_OPT_EXTENSION(A, IDENT, C, D, E, F) HANDLE (IDENT)
  #define AARCH64_ARCH(A, B, IDENT, D, E) HANDLE (IDENT)
+ #include "aarch64-isa-modes.def"
  #include "aarch64-option-extensions.def"
  #include "aarch64-arches.def"
  #undef HANDLE
  
+ constexpr auto AARCH64_FL_SM_STATE = AARCH64_FL_SM_ON | AARCH64_FL_SM_OFF;
+ 
+ constexpr unsigned int AARCH64_NUM_ISA_MODES = (0
+ #define DEF_AARCH64_ISA_MODE(IDENT) + 1
+ #include "aarch64-isa-modes.def"
+ );
+ 
+ /* The mask of all ISA modes.  */
+ constexpr auto AARCH64_FL_ISA_MODES
+   = (aarch64_feature_flags (1) << AARCH64_NUM_ISA_MODES) - 1;
+ 
+ /* The default ISA mode, for functions with no attributes that specify
+    something to the contrary.  */
+ constexpr auto AARCH64_FL_DEFAULT_ISA_MODE = AARCH64_FL_SM_OFF;
+ 
  #endif
  
! /* Macros to test ISA flags.
! 
!    There is intentionally no macro for AARCH64_FL_CRYPTO, since this flag bit
!    is not always set when its constituent features are present.
!    Check (TARGET_AES && TARGET_SHA2) instead.  */
  
+ #define AARCH64_ISA_SM_OFF         (aarch64_isa_flags & AARCH64_FL_SM_OFF)
+ #define AARCH64_ISA_SM_ON          (aarch64_isa_flags & AARCH64_FL_SM_ON)
+ #define AARCH64_ISA_ZA_ON          (aarch64_isa_flags & AARCH64_FL_ZA_ON)
+ #define AARCH64_ISA_MODE           (aarch64_isa_flags & AARCH64_FL_ISA_MODES)
+ #define AARCH64_ISA_V8A		   (aarch64_isa_flags & AARCH64_FL_V8A)
+ #define AARCH64_ISA_V8_1A	   (aarch64_isa_flags & AARCH64_FL_V8_1A)
  #define AARCH64_ISA_CRC            (aarch64_isa_flags & AARCH64_FL_CRC)
  #define AARCH64_ISA_FP             (aarch64_isa_flags & AARCH64_FL_FP)
  #define AARCH64_ISA_SIMD           (aarch64_isa_flags & AARCH64_FL_SIMD)
  #define AARCH64_ISA_LSE		   (aarch64_isa_flags & AARCH64_FL_LSE)
*************** enum class aarch64_feature : unsigned ch
*** 193,198 ****
--- 229,238 ----
  #define AARCH64_ISA_SVE2_BITPERM  (aarch64_isa_flags & AARCH64_FL_SVE2_BITPERM)
  #define AARCH64_ISA_SVE2_SHA3	   (aarch64_isa_flags & AARCH64_FL_SVE2_SHA3)
  #define AARCH64_ISA_SVE2_SM4	   (aarch64_isa_flags & AARCH64_FL_SVE2_SM4)
+ #define AARCH64_ISA_SME		   (aarch64_isa_flags & AARCH64_FL_SME)
+ #define AARCH64_ISA_SME_I16I64	   (aarch64_isa_flags & AARCH64_FL_SME_I16I64)
+ #define AARCH64_ISA_SME_F64F64	   (aarch64_isa_flags & AARCH64_FL_SME_F64F64)
+ #define AARCH64_ISA_SME2	   (aarch64_isa_flags & AARCH64_FL_SME2)
  #define AARCH64_ISA_V8_3A	   (aarch64_isa_flags & AARCH64_FL_V8_3A)
  #define AARCH64_ISA_DOTPROD	   (aarch64_isa_flags & AARCH64_FL_DOTPROD)
  #define AARCH64_ISA_AES	           (aarch64_isa_flags & AARCH64_FL_AES)
*************** enum class aarch64_feature : unsigned ch
*** 202,208 ****
  #define AARCH64_ISA_SHA3	   (aarch64_isa_flags & AARCH64_FL_SHA3)
  #define AARCH64_ISA_F16FML	   (aarch64_isa_flags & AARCH64_FL_F16FML)
  #define AARCH64_ISA_RCPC	   (aarch64_isa_flags & AARCH64_FL_RCPC)
! #define AARCH64_ISA_RCPC8_4	   (aarch64_isa_flags & AARCH64_FL_V8_4A)
  #define AARCH64_ISA_RNG		   (aarch64_isa_flags & AARCH64_FL_RNG)
  #define AARCH64_ISA_V8_5A	   (aarch64_isa_flags & AARCH64_FL_V8_5A)
  #define AARCH64_ISA_TME		   (aarch64_isa_flags & AARCH64_FL_TME)
--- 242,249 ----
  #define AARCH64_ISA_SHA3	   (aarch64_isa_flags & AARCH64_FL_SHA3)
  #define AARCH64_ISA_F16FML	   (aarch64_isa_flags & AARCH64_FL_F16FML)
  #define AARCH64_ISA_RCPC	   (aarch64_isa_flags & AARCH64_FL_RCPC)
! #define AARCH64_ISA_RCPC8_4	   ((AARCH64_ISA_RCPC && AARCH64_ISA_V8_4A) \
! 				    || (aarch64_isa_flags & AARCH64_FL_RCPC3))
  #define AARCH64_ISA_RNG		   (aarch64_isa_flags & AARCH64_FL_RNG)
  #define AARCH64_ISA_V8_5A	   (aarch64_isa_flags & AARCH64_FL_V8_5A)
  #define AARCH64_ISA_TME		   (aarch64_isa_flags & AARCH64_FL_TME)
*************** enum class aarch64_feature : unsigned ch
*** 213,231 ****
  #define AARCH64_ISA_F64MM	   (aarch64_isa_flags & AARCH64_FL_F64MM)
  #define AARCH64_ISA_BF16	   (aarch64_isa_flags & AARCH64_FL_BF16)
  #define AARCH64_ISA_SB		   (aarch64_isa_flags & AARCH64_FL_SB)
  #define AARCH64_ISA_V8R		   (aarch64_isa_flags & AARCH64_FL_V8R)
  #define AARCH64_ISA_PAUTH	   (aarch64_isa_flags & AARCH64_FL_PAUTH)
  #define AARCH64_ISA_V9A		   (aarch64_isa_flags & AARCH64_FL_V9A)
  #define AARCH64_ISA_V9_1A          (aarch64_isa_flags & AARCH64_FL_V9_1A)
  #define AARCH64_ISA_V9_2A          (aarch64_isa_flags & AARCH64_FL_V9_2A)
  #define AARCH64_ISA_V9_3A          (aarch64_isa_flags & AARCH64_FL_V9_3A)
  #define AARCH64_ISA_MOPS	   (aarch64_isa_flags & AARCH64_FL_MOPS)
  #define AARCH64_ISA_LS64	   (aarch64_isa_flags & AARCH64_FL_LS64)
  #define AARCH64_ISA_CSSC	   (aarch64_isa_flags & AARCH64_FL_CSSC)
! #define AARCH64_ISA_RCPC           (aarch64_isa_flags & AARCH64_FL_RCPC)
  
! /* Crypto is an optional extension to AdvSIMD.  */
! #define TARGET_CRYPTO (AARCH64_ISA_CRYPTO)
  
  /* SHA2 is an optional extension to AdvSIMD.  */
  #define TARGET_SHA2 (AARCH64_ISA_SHA2)
--- 254,322 ----
  #define AARCH64_ISA_F64MM	   (aarch64_isa_flags & AARCH64_FL_F64MM)
  #define AARCH64_ISA_BF16	   (aarch64_isa_flags & AARCH64_FL_BF16)
  #define AARCH64_ISA_SB		   (aarch64_isa_flags & AARCH64_FL_SB)
+ #define AARCH64_ISA_RCPC3	   (aarch64_isa_flags & AARCH64_FL_RCPC3)
  #define AARCH64_ISA_V8R		   (aarch64_isa_flags & AARCH64_FL_V8R)
  #define AARCH64_ISA_PAUTH	   (aarch64_isa_flags & AARCH64_FL_PAUTH)
+ #define AARCH64_ISA_V8_7A	   (aarch64_isa_flags & AARCH64_FL_V8_7A)
+ #define AARCH64_ISA_V8_8A	   (aarch64_isa_flags & AARCH64_FL_V8_8A)
+ #define AARCH64_ISA_V8_9A	   (aarch64_isa_flags & AARCH64_FL_V8_9A)
  #define AARCH64_ISA_V9A		   (aarch64_isa_flags & AARCH64_FL_V9A)
  #define AARCH64_ISA_V9_1A          (aarch64_isa_flags & AARCH64_FL_V9_1A)
  #define AARCH64_ISA_V9_2A          (aarch64_isa_flags & AARCH64_FL_V9_2A)
  #define AARCH64_ISA_V9_3A          (aarch64_isa_flags & AARCH64_FL_V9_3A)
+ #define AARCH64_ISA_V9_4A	   (aarch64_isa_flags & AARCH64_FL_V9_4A)
  #define AARCH64_ISA_MOPS	   (aarch64_isa_flags & AARCH64_FL_MOPS)
  #define AARCH64_ISA_LS64	   (aarch64_isa_flags & AARCH64_FL_LS64)
  #define AARCH64_ISA_CSSC	   (aarch64_isa_flags & AARCH64_FL_CSSC)
! #define AARCH64_ISA_D128	   (aarch64_isa_flags & AARCH64_FL_D128)
! #define AARCH64_ISA_THE		   (aarch64_isa_flags & AARCH64_FL_THE)
! #define AARCH64_ISA_GCS		   (aarch64_isa_flags & AARCH64_FL_GCS)
  
! /* The current function is a normal non-streaming function.  */
! #define TARGET_NON_STREAMING (AARCH64_ISA_SM_OFF)
! 
! /* The current function has a streaming body.  */
! #define TARGET_STREAMING (AARCH64_ISA_SM_ON)
! 
! /* The current function has a streaming-compatible body.  */
! #define TARGET_STREAMING_COMPATIBLE \
!   ((aarch64_isa_flags & AARCH64_FL_SM_STATE) == 0)
! 
! /* PSTATE.ZA is enabled in the current function body.  */
! #define TARGET_ZA (AARCH64_ISA_ZA_ON)
! /* AARCH64_FL options necessary for system register implementation.  */
! 
! /* Define AARCH64_FL aliases for architectural features which are protected
!    by -march flags in binutils but which receive no special treatment by GCC.
! 
!    Such flags are inherited from the Binutils definition of system registers
!    and are mapped to the architecture in which the feature is implemented.  */
! #define AARCH64_FL_RAS		   AARCH64_FL_V8A
! #define AARCH64_FL_LOR		   AARCH64_FL_V8_1A
! #define AARCH64_FL_PAN		   AARCH64_FL_V8_1A
! #define AARCH64_FL_AMU		   AARCH64_FL_V8_4A
! #define AARCH64_FL_SCXTNUM	   AARCH64_FL_V8_5A
! #define AARCH64_FL_ID_PFR2	   AARCH64_FL_V8_5A
! 
! /* Armv8.9-A extension feature bits defined in Binutils but absent from GCC,
!    aliased to their base architecture.  */
! #define AARCH64_FL_AIE		   AARCH64_FL_V8_9A
! #define AARCH64_FL_DEBUGv8p9	   AARCH64_FL_V8_9A
! #define AARCH64_FL_FGT2	   AARCH64_FL_V8_9A
! #define AARCH64_FL_ITE		   AARCH64_FL_V8_9A
! #define AARCH64_FL_PFAR	   AARCH64_FL_V8_9A
! #define AARCH64_FL_PMUv3_ICNTR	   AARCH64_FL_V8_9A
! #define AARCH64_FL_PMUv3_SS	   AARCH64_FL_V8_9A
! #define AARCH64_FL_PMUv3p9	   AARCH64_FL_V8_9A
! #define AARCH64_FL_RASv2	   AARCH64_FL_V8_9A
! #define AARCH64_FL_S1PIE	   AARCH64_FL_V8_9A
! #define AARCH64_FL_S1POE	   AARCH64_FL_V8_9A
! #define AARCH64_FL_S2PIE	   AARCH64_FL_V8_9A
! #define AARCH64_FL_S2POE	   AARCH64_FL_V8_9A
! #define AARCH64_FL_SCTLR2	   AARCH64_FL_V8_9A
! #define AARCH64_FL_SEBEP	   AARCH64_FL_V8_9A
! #define AARCH64_FL_SPE_FDS	   AARCH64_FL_V8_9A
! #define AARCH64_FL_TCR2	   AARCH64_FL_V8_9A
  
  /* SHA2 is an optional extension to AdvSIMD.  */
  #define TARGET_SHA2 (AARCH64_ISA_SHA2)
*************** enum class aarch64_feature : unsigned ch
*** 262,277 ****
  #define TARGET_SVE2 (AARCH64_ISA_SVE2)
  
  /* SVE2 AES instructions, enabled through +sve2-aes.  */
! #define TARGET_SVE2_AES (AARCH64_ISA_SVE2_AES)
  
  /* SVE2 BITPERM instructions, enabled through +sve2-bitperm.  */
! #define TARGET_SVE2_BITPERM (AARCH64_ISA_SVE2_BITPERM)
  
  /* SVE2 SHA3 instructions, enabled through +sve2-sha3.  */
! #define TARGET_SVE2_SHA3 (AARCH64_ISA_SVE2_SHA3)
  
  /* SVE2 SM4 instructions, enabled through +sve2-sm4.  */
! #define TARGET_SVE2_SM4 (AARCH64_ISA_SVE2_SM4)
  
  /* ARMv8.3-A features.  */
  #define TARGET_ARMV8_3	(AARCH64_ISA_V8_3A)
--- 353,387 ----
  #define TARGET_SVE2 (AARCH64_ISA_SVE2)
  
  /* SVE2 AES instructions, enabled through +sve2-aes.  */
! #define TARGET_SVE2_AES (AARCH64_ISA_SVE2_AES && TARGET_NON_STREAMING)
  
  /* SVE2 BITPERM instructions, enabled through +sve2-bitperm.  */
! #define TARGET_SVE2_BITPERM (AARCH64_ISA_SVE2_BITPERM && TARGET_NON_STREAMING)
  
  /* SVE2 SHA3 instructions, enabled through +sve2-sha3.  */
! #define TARGET_SVE2_SHA3 (AARCH64_ISA_SVE2_SHA3 && TARGET_NON_STREAMING)
  
  /* SVE2 SM4 instructions, enabled through +sve2-sm4.  */
! #define TARGET_SVE2_SM4 (AARCH64_ISA_SVE2_SM4 && TARGET_NON_STREAMING)
! 
! /* SME instructions, enabled through +sme.  Note that this does not
!    imply anything about the state of PSTATE.SM.  */
! #define TARGET_SME (AARCH64_ISA_SME)
! 
! /* Same with streaming mode enabled.  */
! #define TARGET_STREAMING_SME (TARGET_STREAMING && TARGET_SME)
! 
! /* The FEAT_SME_I16I64 extension to SME, enabled through +sme-i16i64.  */
! #define TARGET_SME_I16I64 (AARCH64_ISA_SME_I16I64)
! 
! /* The FEAT_SME_F64F64 extension to SME, enabled through +sme-f64f64.  */
! #define TARGET_SME_F64F64 (AARCH64_ISA_SME_F64F64)
! 
! /* SME2 instructions, enabled through +sme2.  */
! #define TARGET_SME2 (AARCH64_ISA_SME2)
! 
! /* Same with streaming mode enabled.  */
! #define TARGET_STREAMING_SME2 (TARGET_STREAMING && TARGET_SME2)
  
  /* ARMv8.3-A features.  */
  #define TARGET_ARMV8_3	(AARCH64_ISA_V8_3A)
*************** enum class aarch64_feature : unsigned ch
*** 345,350 ****
--- 455,463 ----
     and sign-extending versions.*/
  #define TARGET_RCPC2 (AARCH64_ISA_RCPC8_4)
  
+ /* RCPC3 (Release Consistency) extensions, optional from Armv8.2-a.  */
+ #define TARGET_RCPC3 (AARCH64_ISA_RCPC3)
+ 
  /* Apply the workaround for Cortex-A53 erratum 835769.  */
  #define TARGET_FIX_ERR_A53_835769	\
    ((aarch64_fix_a53_err835769 == 2)	\
*************** enum class aarch64_feature : unsigned ch
*** 367,372 ****
--- 480,501 ----
  /* ARMv8.1-A Adv.SIMD support.  */
  #define TARGET_SIMD_RDMA (TARGET_SIMD && AARCH64_ISA_RDMA)
  
+ /* Armv9.4-A features.  */
+ #define TARGET_ARMV9_4 (AARCH64_ISA_V9_4A)
+ 
+ /*  128-bit System Registers and Instructions from Armv9.4-a are enabled
+     through +d128.  */
+ #define TARGET_D128 (AARCH64_ISA_D128)
+ 
+ /*  Armv8.9-A/9.4-A Translation Hardening Extension system registers are
+     enabled through +the.  */
+ #define TARGET_THE (AARCH64_ISA_THE)
+ 
+ /*  Armv9.4-A Guarded Control Stack extension system registers are
+     enabled through +gcs.  */
+ #define TARGET_GCS (AARCH64_ISA_GCS)
+ 
+ 
  /* Standard register usage.  */
  
  /* 31 64-bit general purpose registers R0-R30:
*************** enum class aarch64_feature : unsigned ch
*** 421,427 ****
      1, 1, 1, 1,			/* SFP, AP, CC, VG */	\
      0, 0, 0, 0,   0, 0, 0, 0,   /* P0 - P7 */           \
      0, 0, 0, 0,   0, 0, 0, 0,   /* P8 - P15 */          \
!     1, 1			/* FFR and FFRT */	\
    }
  
  /* X30 is marked as caller-saved which is in line with regular function call
--- 550,557 ----
      1, 1, 1, 1,			/* SFP, AP, CC, VG */	\
      0, 0, 0, 0,   0, 0, 0, 0,   /* P0 - P7 */           \
      0, 0, 0, 0,   0, 0, 0, 0,   /* P8 - P15 */          \
!     1, 1,			/* FFR and FFRT */	\
!     1, 1, 1, 1, 1, 1, 1, 1	/* Fake registers */	\
    }
  
  /* X30 is marked as caller-saved which is in line with regular function call
*************** enum class aarch64_feature : unsigned ch
*** 431,437 ****
     true but not until function epilogues have been generated.  This ensures
     that X30 is available for use in leaf functions if needed.  */
  
! #define CALL_USED_REGISTERS				\
    {							\
      1, 1, 1, 1,   1, 1, 1, 1,	/* R0 - R7 */		\
      1, 1, 1, 1,   1, 1, 1, 1,	/* R8 - R15 */		\
--- 561,567 ----
     true but not until function epilogues have been generated.  This ensures
     that X30 is available for use in leaf functions if needed.  */
  
! #define CALL_REALLY_USED_REGISTERS			\
    {							\
      1, 1, 1, 1,   1, 1, 1, 1,	/* R0 - R7 */		\
      1, 1, 1, 1,   1, 1, 1, 1,	/* R8 - R15 */		\
*************** enum class aarch64_feature : unsigned ch
*** 441,450 ****
      0, 0, 0, 0,   0, 0, 0, 0,	/* V8 - V15 */		\
      1, 1, 1, 1,   1, 1, 1, 1,   /* V16 - V23 */         \
      1, 1, 1, 1,   1, 1, 1, 1,   /* V24 - V31 */         \
!     1, 1, 1, 1,			/* SFP, AP, CC, VG */	\
      1, 1, 1, 1,   1, 1, 1, 1,	/* P0 - P7 */		\
      1, 1, 1, 1,   1, 1, 1, 1,	/* P8 - P15 */		\
!     1, 1			/* FFR and FFRT */	\
    }
  
  #define REGISTER_NAMES						\
--- 571,581 ----
      0, 0, 0, 0,   0, 0, 0, 0,	/* V8 - V15 */		\
      1, 1, 1, 1,   1, 1, 1, 1,   /* V16 - V23 */         \
      1, 1, 1, 1,   1, 1, 1, 1,   /* V24 - V31 */         \
!     1, 1, 1, 0,			/* SFP, AP, CC, VG */	\
      1, 1, 1, 1,   1, 1, 1, 1,	/* P0 - P7 */		\
      1, 1, 1, 1,   1, 1, 1, 1,	/* P8 - P15 */		\
!     1, 1,			/* FFR and FFRT */	\
!     0, 0, 0, 0, 0, 0, 0, 0	/* Fake registers */	\
    }
  
  #define REGISTER_NAMES						\
*************** enum class aarch64_feature : unsigned ch
*** 460,466 ****
      "sfp", "ap",  "cc",  "vg",					\
      "p0",  "p1",  "p2",  "p3",  "p4",  "p5",  "p6",  "p7",	\
      "p8",  "p9",  "p10", "p11", "p12", "p13", "p14", "p15",	\
!     "ffr", "ffrt"						\
    }
  
  /* Generate the register aliases for core register N */
--- 591,599 ----
      "sfp", "ap",  "cc",  "vg",					\
      "p0",  "p1",  "p2",  "p3",  "p4",  "p5",  "p6",  "p7",	\
      "p8",  "p9",  "p10", "p11", "p12", "p13", "p14", "p15",	\
!     "ffr", "ffrt",						\
!     "lowering", "tpidr2_block", "sme_state", "tpidr2_setup",	\
!     "za_free", "za_saved", "za", "zt0"				\
    }
  
  /* Generate the register aliases for core register N */
*************** enum class aarch64_feature : unsigned ch
*** 474,479 ****
--- 607,614 ----
                       {"b" # N, V0_REGNUM + (N)}, \
                       {"z" # N, V0_REGNUM + (N)}
  
+ #define P_ALIASES(N) {"pn" # N, P0_REGNUM + (N)}
+ 
  /* Provide aliases for all of the ISA defined register name forms.
     These aliases are convenient for use in the clobber lists of inline
     asm statements.  */
*************** enum class aarch64_feature : unsigned ch
*** 494,500 ****
      V_ALIASES(16), V_ALIASES(17), V_ALIASES(18), V_ALIASES(19), \
      V_ALIASES(20), V_ALIASES(21), V_ALIASES(22), V_ALIASES(23), \
      V_ALIASES(24), V_ALIASES(25), V_ALIASES(26), V_ALIASES(27), \
!     V_ALIASES(28), V_ALIASES(29), V_ALIASES(30), V_ALIASES(31)  \
    }
  
  #define EPILOGUE_USES(REGNO) (aarch64_epilogue_uses (REGNO))
--- 629,639 ----
      V_ALIASES(16), V_ALIASES(17), V_ALIASES(18), V_ALIASES(19), \
      V_ALIASES(20), V_ALIASES(21), V_ALIASES(22), V_ALIASES(23), \
      V_ALIASES(24), V_ALIASES(25), V_ALIASES(26), V_ALIASES(27), \
!     V_ALIASES(28), V_ALIASES(29), V_ALIASES(30), V_ALIASES(31), \
!     P_ALIASES(0),  P_ALIASES(1),  P_ALIASES(2),  P_ALIASES(3),  \
!     P_ALIASES(4),  P_ALIASES(5),  P_ALIASES(6),  P_ALIASES(7),  \
!     P_ALIASES(8),  P_ALIASES(9),  P_ALIASES(10), P_ALIASES(11), \
!     P_ALIASES(12), P_ALIASES(13), P_ALIASES(14), P_ALIASES(15)  \
    }
  
  #define EPILOGUE_USES(REGNO) (aarch64_epilogue_uses (REGNO))
*************** enum class aarch64_feature : unsigned ch
*** 509,515 ****
  #define FRAME_POINTER_REGNUM		SFP_REGNUM
  #define STACK_POINTER_REGNUM		SP_REGNUM
  #define ARG_POINTER_REGNUM		AP_REGNUM
! #define FIRST_PSEUDO_REGISTER		(FFRT_REGNUM + 1)
  
  /* The number of argument registers available for each class.  */
  #define NUM_ARG_REGS			8
--- 648,654 ----
  #define FRAME_POINTER_REGNUM		SFP_REGNUM
  #define STACK_POINTER_REGNUM		SP_REGNUM
  #define ARG_POINTER_REGNUM		AP_REGNUM
! #define FIRST_PSEUDO_REGISTER		(LAST_FAKE_REGNUM + 1)
  
  /* The number of argument registers available for each class.  */
  #define NUM_ARG_REGS			8
*************** enum class aarch64_feature : unsigned ch
*** 584,592 ****
  /* Output assembly strings after .cfi_startproc is emitted.  */
  #define ASM_POST_CFI_STARTPROC  aarch64_post_cfi_startproc
  
! /* For EH returns X4 contains the stack adjustment.  */
! #define EH_RETURN_STACKADJ_RTX	gen_rtx_REG (Pmode, R4_REGNUM)
! #define EH_RETURN_HANDLER_RTX  aarch64_eh_return_handler_rtx ()
  
  #undef TARGET_COMPUTE_FRAME_LAYOUT
  #define TARGET_COMPUTE_FRAME_LAYOUT aarch64_layout_frame
--- 723,734 ----
  /* Output assembly strings after .cfi_startproc is emitted.  */
  #define ASM_POST_CFI_STARTPROC  aarch64_post_cfi_startproc
  
! /* For EH returns X4 is a flag that is set in the EH return
!    code paths and then X5 and X6 contain the stack adjustment
!    and return address respectively.  */
! #define EH_RETURN_TAKEN_RTX	gen_rtx_REG (Pmode, R4_REGNUM)
! #define EH_RETURN_STACKADJ_RTX	gen_rtx_REG (Pmode, R5_REGNUM)
! #define EH_RETURN_HANDLER_RTX	gen_rtx_REG (Pmode, R6_REGNUM)
  
  #undef TARGET_COMPUTE_FRAME_LAYOUT
  #define TARGET_COMPUTE_FRAME_LAYOUT aarch64_layout_frame
*************** enum class aarch64_feature : unsigned ch
*** 612,617 ****
--- 754,765 ----
     && (REGNO) != R17_REGNUM \
     && (REGNO) != R30_REGNUM) \
  
+ #define W8_W11_REGNUM_P(REGNO) \
+   IN_RANGE (REGNO, R8_REGNUM, R11_REGNUM)
+ 
+ #define W12_W15_REGNUM_P(REGNO) \
+   IN_RANGE (REGNO, R12_REGNUM, R15_REGNUM)
+ 
  #define FP_REGNUM_P(REGNO)			\
    (((unsigned) (REGNO - V0_REGNUM)) <= (V31_REGNUM - V0_REGNUM))
  
*************** enum class aarch64_feature : unsigned ch
*** 629,640 ****
--- 777,793 ----
  
  #define FP_SIMD_SAVED_REGNUM_P(REGNO)			\
    (((unsigned) (REGNO - V8_REGNUM)) <= (V23_REGNUM - V8_REGNUM))
+ 
+ #define FAKE_REGNUM_P(REGNO) \
+   IN_RANGE (REGNO, FIRST_FAKE_REGNUM, LAST_FAKE_REGNUM)
  
  /* Register and constant classes.  */
  
  enum reg_class
  {
    NO_REGS,
+   W8_W11_REGS,
+   W12_W15_REGS,
    TAILCALL_ADDR_REGS,
    STUB_REGS,
    GENERAL_REGS,
*************** enum reg_class
*** 649,654 ****
--- 802,808 ----
    PR_REGS,
    FFR_REGS,
    PR_AND_FFR_REGS,
+   FAKE_REGS,
    ALL_REGS,
    LIM_REG_CLASSES		/* Last */
  };
*************** enum reg_class
*** 658,663 ****
--- 812,819 ----
  #define REG_CLASS_NAMES				\
  {						\
    "NO_REGS",					\
+   "W8_W11_REGS",				\
+   "W12_W15_REGS",				\
    "TAILCALL_ADDR_REGS",				\
    "STUB_REGS",					\
    "GENERAL_REGS",				\
*************** enum reg_class
*** 672,683 ****
--- 828,842 ----
    "PR_REGS",					\
    "FFR_REGS",					\
    "PR_AND_FFR_REGS",				\
+   "FAKE_REGS",					\
    "ALL_REGS"					\
  }
  
  #define REG_CLASS_CONTENTS						\
  {									\
    { 0x00000000, 0x00000000, 0x00000000 },	/* NO_REGS */		\
+   { 0x00000f00, 0x00000000, 0x00000000 },	/* W8_W11_REGS */	\
+   { 0x0000f000, 0x00000000, 0x00000000 },	/* W12_W15_REGS */	\
    { 0x00030000, 0x00000000, 0x00000000 },	/* TAILCALL_ADDR_REGS */\
    { 0x3ffcffff, 0x00000000, 0x00000000 },	/* STUB_REGS */		\
    { 0x7fffffff, 0x00000000, 0x00000003 },	/* GENERAL_REGS */	\
*************** enum reg_class
*** 692,697 ****
--- 851,857 ----
    { 0x00000000, 0x00000000, 0x000ffff0 },	/* PR_REGS */		\
    { 0x00000000, 0x00000000, 0x00300000 },	/* FFR_REGS */		\
    { 0x00000000, 0x00000000, 0x003ffff0 },	/* PR_AND_FFR_REGS */	\
+   { 0x00000000, 0x00000000, 0x3fc00000 },	/* FAKE_REGS */		\
    { 0xffffffff, 0xffffffff, 0x000fffff }	/* ALL_REGS */		\
  }
  
*************** enum target_cpus
*** 721,732 ****
  #define AARCH64_CORE(NAME, INTERNAL_IDENT, SCHED, ARCH, FLAGS, COSTS, IMP, PART, VARIANT) \
    TARGET_CPU_##INTERNAL_IDENT,
  #include "aarch64-cores.def"
-   TARGET_CPU_generic
  };
  
  /* If there is no CPU defined at configure, use generic as default.  */
  #ifndef TARGET_CPU_DEFAULT
! # define TARGET_CPU_DEFAULT TARGET_CPU_generic
  #endif
  
  /* If inserting NOP before a mult-accumulate insn remember to adjust the
--- 881,891 ----
  #define AARCH64_CORE(NAME, INTERNAL_IDENT, SCHED, ARCH, FLAGS, COSTS, IMP, PART, VARIANT) \
    TARGET_CPU_##INTERNAL_IDENT,
  #include "aarch64-cores.def"
  };
  
  /* If there is no CPU defined at configure, use generic as default.  */
  #ifndef TARGET_CPU_DEFAULT
! # define TARGET_CPU_DEFAULT TARGET_CPU_generic_armv8_a
  #endif
  
  /* If inserting NOP before a mult-accumulate insn remember to adjust the
*************** extern enum aarch64_processor aarch64_tu
*** 763,798 ****
  
  #define DEFAULT_PCC_STRUCT_RETURN 0
  
! #ifdef HAVE_POLY_INT_H
  struct GTY (()) aarch64_frame
  {
    poly_int64 reg_offset[LAST_SAVED_REGNUM + 1];
  
    /* The number of extra stack bytes taken up by register varargs.
       This area is allocated by the callee at the very top of the
       frame.  This value is rounded up to a multiple of
       STACK_BOUNDARY.  */
    HOST_WIDE_INT saved_varargs_size;
  
!   /* The size of the callee-save registers with a slot in REG_OFFSET.  */
!   poly_int64 saved_regs_size;
  
!   /* The size of the callee-save registers with a slot in REG_OFFSET that
!      are saved below the hard frame pointer.  */
!   poly_int64 below_hard_fp_saved_regs_size;
  
!   /* Offset from the base of the frame (incomming SP) to the
!      top of the locals area.  This value is always a multiple of
       STACK_BOUNDARY.  */
!   poly_int64 locals_offset;
  
!   /* Offset from the base of the frame (incomming SP) to the
!      hard_frame_pointer.  This value is always a multiple of
       STACK_BOUNDARY.  */
!   poly_int64 hard_fp_offset;
  
!   /* The size of the frame.  This value is the offset from base of the
!      frame (incomming SP) to the stack_pointer.  This value is always
       a multiple of STACK_BOUNDARY.  */
    poly_int64 frame_size;
  
--- 922,977 ----
  
  #define DEFAULT_PCC_STRUCT_RETURN 0
  
! #if defined(HAVE_POLY_INT_H) && defined(GCC_VEC_H)
  struct GTY (()) aarch64_frame
  {
+   /* The offset from the bottom of the static frame (the bottom of the
+      outgoing arguments) of each register save slot, or -2 if no save is
+      needed.  */
    poly_int64 reg_offset[LAST_SAVED_REGNUM + 1];
  
+   /* The list of GPRs, FPRs and predicate registers that have nonnegative
+      entries in reg_offset.  The registers are listed in order of
+      increasing offset (rather than increasing register number).  */
+   vec<unsigned, va_gc_atomic> *saved_gprs;
+   vec<unsigned, va_gc_atomic> *saved_fprs;
+   vec<unsigned, va_gc_atomic> *saved_prs;
+ 
+   /* The offset from the base of the frame of a 64-bit slot whose low
+      bit contains the incoming value of PSTATE.SM.  This slot must be
+      within reach of the hard frame pointer.
+ 
+      The offset is -1 if such a slot isn't needed.  */
+   poly_int64 old_svcr_offset;
+ 
    /* The number of extra stack bytes taken up by register varargs.
       This area is allocated by the callee at the very top of the
       frame.  This value is rounded up to a multiple of
       STACK_BOUNDARY.  */
    HOST_WIDE_INT saved_varargs_size;
  
!   /* The number of bytes between the bottom of the static frame (the bottom
!      of the outgoing arguments) and the bottom of the register save area.
!      This value is always a multiple of STACK_BOUNDARY.  */
!   poly_int64 bytes_below_saved_regs;
  
!   /* The number of bytes between the bottom of the static frame (the bottom
!      of the outgoing arguments) and the hard frame pointer.  This value is
!      always a multiple of STACK_BOUNDARY.  */
!   poly_int64 bytes_below_hard_fp;
  
!   /* The number of bytes between the top of the locals area and the top
!      of the frame (the incomming SP).  This value is always a multiple of
       STACK_BOUNDARY.  */
!   poly_int64 bytes_above_locals;
  
!   /* The number of bytes between the hard_frame_pointer and the top of
!      the frame (the incomming SP).  This value is always a multiple of
       STACK_BOUNDARY.  */
!   poly_int64 bytes_above_hard_fp;
  
!   /* The size of the frame, i.e. the number of bytes between the bottom
!      of the outgoing arguments and the incoming SP.  This value is always
       a multiple of STACK_BOUNDARY.  */
    poly_int64 frame_size;
  
*************** struct GTY (()) aarch64_frame
*** 803,812 ****
       It is zero when no push is used.  */
    HOST_WIDE_INT callee_adjust;
  
-   /* The offset from SP to the callee-save registers after initial_adjust.
-      It may be non-zero if no push is used (ie. callee_adjust == 0).  */
-   poly_int64 callee_offset;
- 
    /* The size of the stack adjustment before saving or after restoring
       SVE registers.  */
    poly_int64 sve_callee_adjust;
--- 982,987 ----
*************** struct GTY (()) aarch64_frame
*** 854,859 ****
--- 1029,1042 ----
       This is the register they should use.  */
    unsigned spare_pred_reg;
  
+   /* An SVE register that is saved below the hard frame pointer and that acts
+      as a probe for later allocations, or INVALID_REGNUM if none.  */
+   unsigned sve_save_and_probe;
+ 
+   /* A register that is saved at the hard frame pointer and that acts
+      as a probe for later allocations, or INVALID_REGNUM if none.  */
+   unsigned hard_fp_save_and_probe;
+ 
    bool laid_out;
  
    /* True if shadow call stack should be enabled for the current function.  */
*************** typedef struct GTY (()) machine_function
*** 868,877 ****
--- 1051,1088 ----
    bool reg_is_wrapped_separately[LAST_SAVED_REGNUM];
    /* One entry for each general purpose register.  */
    rtx call_via[SP_REGNUM];
+ 
+   /* A pseudo register that points to the function's TPIDR2 block, or null
+      if the function doesn't have a TPIDR2 block.  */
+   rtx tpidr2_block;
+ 
+   /* A pseudo register that points to the function's ZA save buffer,
+      or null if none.  */
+   rtx za_save_buffer;
+ 
+   /* A stack slot that stores the contents of the function's ZT0 state.  */
+   rtx zt0_save_buffer;
+ 
    bool label_is_assembled;
+ 
+   /* True if we've expanded at least one call to a function that changes
+      PSTATE.SM.  This should only be used for saving compile time: false
+      guarantees that no such mode switch exists.  */
+   bool call_switches_pstate_sm;
+ 
+   /* Used to generated unique identifiers for each update to ZA by an
+      asm statement.  */
+   unsigned int next_asm_update_za_id;
+ 
    /* A set of all decls that have been passed to a vld1 intrinsic in the
       current function.  This is used to help guide the vector cost model.  */
    hash_set<tree> *vector_load_decls;
+ 
+   /* An instruction that was emitted at the start of the function to
+      set an Advanced SIMD pseudo register to zero.  If the instruction
+      still exists and still fulfils its original purpose. the same register
+      can be reused by other code.  */
+   rtx_insn *advsimd_zero_insn;
  } machine_function;
  #endif
  #endif
*************** enum arm_pcs
*** 917,922 ****
--- 1128,1134 ----
  typedef struct
  {
    enum arm_pcs pcs_variant;
+   aarch64_feature_flags isa_mode;
    int aapcs_arg_processed;	/* No need to lay out this argument again.  */
    int aapcs_ncrn;		/* Next Core register number.  */
    int aapcs_nextncrn;		/* Next next core register number.  */
*************** typedef struct
*** 936,941 ****
--- 1148,1164 ----
  				   stack arg area so far.  */
    bool silent_p;		/* True if we should act silently, rather than
  				   raise an error for invalid calls.  */
+ 
+   /* AARCH64_STATE_* flags that describe whether the function shares ZA
+      and ZT0 with its callers.  */
+   unsigned int shared_za_flags;
+   unsigned int shared_zt0_flags;
+ 
+   /* A list of registers that need to be saved and restored around a
+      change to PSTATE.SM.  An auto_vec would be more convenient, but those
+      can't be copied.  */
+   unsigned int num_sme_mode_switch_args;
+   rtx sme_mode_switch_args[12];
  } CUMULATIVE_ARGS;
  #endif
  
*************** extern enum aarch64_code_model aarch64_c
*** 1166,1171 ****
--- 1389,1396 ----
    (aarch64_cmodel == AARCH64_CMODEL_TINY		\
     || aarch64_cmodel == AARCH64_CMODEL_TINY_PIC)
  
+ #define TARGET_HAS_FMV_TARGET_ATTRIBUTE 0
+ 
  #define TARGET_SUPPORTS_WIDE_INT 1
  
  /* Modes valid for AdvSIMD D registers, i.e. that fit in half a Q register.  */
*************** extern poly_uint16 aarch64_sve_vg;
*** 1292,1295 ****
--- 1517,1587 ----
  		STACK_BOUNDARY / BITS_PER_UNIT)		   \
      : (crtl->outgoing_args_size + STACK_POINTER_OFFSET))
  
+ /* Filled in by aarch64_adjust_reg_alloc_order, which is called before
+    the first relevant use.  */
+ #define REG_ALLOC_ORDER {}
+ #define ADJUST_REG_ALLOC_ORDER aarch64_adjust_reg_alloc_order ()
+ 
+ #define AARCH64_VALID_SHRN_OP(T,S)			\
+ ((T) == TRUNCATE					\
+  || ((T) == US_TRUNCATE && (S) == LSHIFTRT)		\
+  || ((T) == SS_TRUNCATE && (S) == ASHIFTRT))
+ 
+ #ifndef USED_FOR_TARGET
+ 
+ /* Enumerates the mode-switching "entities" for AArch64.  */
+ enum class aarch64_mode_entity : int
+ {
+   /* An aarch64_tristate_mode that says whether we have created a local
+      save buffer for the current function's ZA state.  The only transition
+      is from NO to YES.  */
+   HAVE_ZA_SAVE_BUFFER,
+ 
+   /* An aarch64_local_sme_state that reflects the state of all data
+      controlled by PSTATE.ZA.  */
+   LOCAL_SME_STATE
+ };
+ 
+ /* Describes the state of all data controlled by PSTATE.ZA  */
+ enum class aarch64_local_sme_state : int
+ {
+   /* ZA is in the off or dormant state.  If it is dormant, the contents
+      of ZA belong to a caller.  */
+   INACTIVE_CALLER,
+ 
+   /* ZA is in the off state: PSTATE.ZA is 0 and TPIDR2_EL0 is null.  */
+   OFF,
+ 
+   /* ZA is in the off or dormant state.  If it is dormant, the contents
+      of ZA belong to the current function.  */
+   INACTIVE_LOCAL,
+ 
+   /* ZA is in the off state and the current function's ZA contents are
+      stored in the lazy save buffer.  This is the state on entry to
+      exception handlers.  */
+   SAVED_LOCAL,
+ 
+   /* ZA is in the active state: PSTATE.ZA is 1 and TPIDR2_EL0 is null.
+      The contents of ZA are live.  */
+   ACTIVE_LIVE,
+ 
+   /* ZA is in the active state: PSTATE.ZA is 1 and TPIDR2_EL0 is null.
+      The contents of ZA are dead.  */
+   ACTIVE_DEAD,
+ 
+   /* ZA could be in multiple states.  */
+   ANY
+ };
+ 
+ enum class aarch64_tristate_mode : int { NO, YES, MAYBE };
+ 
+ #define OPTIMIZE_MODE_SWITCHING(ENTITY) \
+   aarch64_optimize_mode_switching (aarch64_mode_entity (ENTITY))
+ 
+ #define NUM_MODES_FOR_MODE_SWITCHING \
+   { int (aarch64_tristate_mode::MAYBE), \
+     int (aarch64_local_sme_state::ANY) }
+ 
+ #endif
+ 
  #endif /* GCC_AARCH64_H */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64.md gcc-14.1.0/gcc/config/aarch64/aarch64.md
*** gcc-13.2.0/gcc/config/aarch64/aarch64.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AArch64 architecture.
! ;; Copyright (C) 2009-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AArch64 architecture.
! ;; Copyright (C) 2009-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 111,116 ****
--- 111,169 ----
      ;; "FFR token": a fake register used for representing the scheduling
      ;; restrictions on FFR-related operations.
      (FFRT_REGNUM	85)
+ 
+     ;; ----------------------------------------------------------------
+     ;; Fake registers
+     ;; ----------------------------------------------------------------
+     ;; These registers represent abstract things, rather than real
+     ;; architected registers.
+ 
+     ;; Sometimes we use placeholder instructions to mark where later
+     ;; ABI-related lowering is needed.  These placeholders read and
+     ;; write this register.  Instructions that depend on the lowering
+     ;; read the register.
+     (LOWERING_REGNUM 86)
+ 
+     ;; Represents the contents of the current function's TPIDR2 block,
+     ;; in abstract form.
+     (TPIDR2_BLOCK_REGNUM 87)
+ 
+     ;; Holds the value that the current function wants PSTATE.ZA to be.
+     ;; The actual value can sometimes vary, because it does not track
+     ;; changes to PSTATE.ZA that happen during a lazy save and restore.
+     ;; Those effects are instead tracked by ZA_SAVED_REGNUM.
+     (SME_STATE_REGNUM 88)
+ 
+     ;; Instructions write to this register if they set TPIDR2_EL0 to a
+     ;; well-defined value.  Instructions read from the register if they
+     ;; depend on the result of such writes.
+     ;;
+     ;; The register does not model the architected TPIDR2_ELO, just the
+     ;; current function's management of it.
+     (TPIDR2_SETUP_REGNUM 89)
+ 
+     ;; Represents the property "has an incoming lazy save been committed?".
+     (ZA_FREE_REGNUM 90)
+ 
+     ;; Represents the property "are the current function's ZA contents
+     ;; stored in the lazy save buffer, rather than in ZA itself?".
+     (ZA_SAVED_REGNUM 91)
+ 
+     ;; Represents the contents of the current function's ZA state in
+     ;; abstract form.  At various times in the function, these contents
+     ;; might be stored in ZA itself, or in the function's lazy save buffer.
+     ;;
+     ;; The contents persist even when the architected ZA is off.  Private-ZA
+     ;; functions have no effect on its contents.
+     (ZA_REGNUM 92)
+ 
+     ;; Similarly represents the contents of the current function's ZT0 state.
+     (ZT0_REGNUM 93)
+ 
+     (FIRST_FAKE_REGNUM	LOWERING_REGNUM)
+     (LAST_FAKE_REGNUM	ZT0_REGNUM)
+     ;; ----------------------------------------------------------------
+ 
      ;; The pair of scratch registers used for stack probing with -fstack-check.
      ;; Leave R9 alone as a possible choice for the static chain.
      ;; Note that the use of these registers is mutually exclusive with the use
***************
*** 175,180 ****
--- 228,236 ----
      UNSPEC_GOTSMALLTLS
      UNSPEC_GOTTINYPIC
      UNSPEC_GOTTINYTLS
+     UNSPEC_STP
+     UNSPEC_LDP_FST
+     UNSPEC_LDP_SND
      UNSPEC_LD1
      UNSPEC_LD2
      UNSPEC_LD2_DREG
***************
*** 204,213 ****
      UNSPEC_PRLG_STK
      UNSPEC_REV
      UNSPEC_RBIT
-     UNSPEC_SABAL
-     UNSPEC_SABAL2
-     UNSPEC_SABDL
-     UNSPEC_SABDL2
      UNSPEC_SADALP
      UNSPEC_SCVTF
      UNSPEC_SETMEM
--- 260,265 ----
***************
*** 228,237 ****
      UNSPEC_TLSLE24
      UNSPEC_TLSLE32
      UNSPEC_TLSLE48
-     UNSPEC_UABAL
-     UNSPEC_UABAL2
-     UNSPEC_UABDL
-     UNSPEC_UABDL2
      UNSPEC_UADALP
      UNSPEC_UCVTF
      UNSPEC_USHL_2S
--- 280,285 ----
***************
*** 239,245 ****
      UNSPEC_SSP_SYSREG
      UNSPEC_SP_SET
      UNSPEC_SP_TEST
-     UNSPEC_RSHRN
      UNSPEC_RSQRT
      UNSPEC_RSQRTE
      UNSPEC_RSQRTS
--- 287,292 ----
***************
*** 290,295 ****
--- 337,347 ----
      UNSPEC_UPDATE_FFRT
      UNSPEC_RDFFR
      UNSPEC_WRFFR
+     UNSPEC_SYSREG_RDI
+     UNSPEC_SYSREG_RTI
+     UNSPEC_SYSREG_WDI
+     UNSPEC_SYSREG_WTI
+     UNSPEC_PLDX
      ;; Represents an SVE-style lane index, in which the indexing applies
      ;; within the containing 128-bit block.
      UNSPEC_SVE_LANE_SELECT
***************
*** 303,309 ****
--- 355,368 ----
      UNSPEC_TAG_SPACE		; Translate address to MTE tag address space.
      UNSPEC_LD1RO
      UNSPEC_SALT_ADDR
+     UNSPEC_SAVE_NZCV
+     UNSPEC_RESTORE_NZCV
      UNSPECV_PATCHABLE_AREA
+     UNSPEC_LDAP1_LANE
+     UNSPEC_STL1_LANE
+     ;; Wraps a constant integer that should be multiplied by the number
+     ;; of quadwords in an SME vector.
+     UNSPEC_SME_VQ
  ])
  
  (define_c_enum "unspecv" [
***************
*** 375,384 ****
  ;; As a convenience, "fp_q" means "fp" + the ability to move between
  ;; Q registers and is equivalent to "simd".
  
! (define_enum "arches" [ any rcpc8_4 fp fp_q simd sve fp16])
  
  (define_enum_attr "arch" "arches" (const_string "any"))
  
  ;; [For compatibility with Arm in pipeline models]
  ;; Attribute that specifies whether or not the instruction touches fp
  ;; registers.
--- 434,450 ----
  ;; As a convenience, "fp_q" means "fp" + the ability to move between
  ;; Q registers and is equivalent to "simd".
  
! (define_enum "arches" [any rcpc8_4 fp fp_q base_simd nobase_simd
! 		       simd nosimd sve fp16 sme])
  
  (define_enum_attr "arch" "arches" (const_string "any"))
  
+ ;; Whether a normal INSN in fact contains a call.  Sometimes we represent
+ ;; calls to functions that use an ad-hoc ABI as normal insns, both for
+ ;; optimization reasons and to avoid the need to describe the ABI to
+ ;; target-independent code.
+ (define_attr "is_call" "no,yes" (const_string "no"))
+ 
  ;; [For compatibility with Arm in pipeline models]
  ;; Attribute that specifies whether or not the instruction touches fp
  ;; registers.
***************
*** 403,416 ****
  	(and (eq_attr "arch" "fp")
  	     (match_test "TARGET_FLOAT"))
  
  	(and (eq_attr "arch" "fp_q, simd")
  	     (match_test "TARGET_SIMD"))
  
  	(and (eq_attr "arch" "fp16")
  	     (match_test "TARGET_FP_F16INST"))
  
  	(and (eq_attr "arch" "sve")
! 	     (match_test "TARGET_SVE")))
      (const_string "yes")
      (const_string "no")))
  
--- 469,494 ----
  	(and (eq_attr "arch" "fp")
  	     (match_test "TARGET_FLOAT"))
  
+ 	(and (eq_attr "arch" "base_simd")
+ 	     (match_test "TARGET_BASE_SIMD"))
+ 
+ 	(and (eq_attr "arch" "nobase_simd")
+ 	     (match_test "!TARGET_BASE_SIMD"))
+ 
  	(and (eq_attr "arch" "fp_q, simd")
  	     (match_test "TARGET_SIMD"))
  
+ 	(and (eq_attr "arch" "nosimd")
+ 	     (match_test "!TARGET_SIMD"))
+ 
  	(and (eq_attr "arch" "fp16")
  	     (match_test "TARGET_FP_F16INST"))
  
  	(and (eq_attr "arch" "sve")
! 	     (match_test "TARGET_SVE"))
! 
! 	(and (eq_attr "arch" "sme")
! 	     (match_test "TARGET_SME")))
      (const_string "yes")
      (const_string "no")))
  
***************
*** 459,464 ****
--- 537,566 ----
  ;; may chose to hold the tracking state encoded in SP.
  (define_attr "speculation_barrier" "true,false" (const_string "false"))
  
+ ;; This attribute is attached to multi-register instructions that have
+ ;; two forms: one in which the registers are consecutive and one in
+ ;; which they are strided.  The consecutive and strided forms have
+ ;; different define_insns, with different operands.  The mapping between
+ ;; the RTL of the consecutive form and the RTL of the strided form varies
+ ;; from one type of instruction to another.
+ ;;
+ ;; The attribute gives two pieces of information:
+ ;; - does the current instruction have consecutive or strided registers?
+ ;; - what kind of RTL rewrite is needed to move between forms?
+ ;;
+ ;; For example, all consecutive LD*1 instructions have the same basic
+ ;; RTL structure.  The same applies to all strided LD*1 instructions.
+ ;; The RTL mapping therefore applies at LD1 granularity, rather than
+ ;; being broken down into individual types of load.
+ (define_attr "stride_type"
+   "none,ld1_consecutive,ld1_strided,st1_consecutive,st1_strided"
+   (const_string "none"))
+ 
+ ;; Attribute used to identify load pair and store pair instructions.
+ ;; Currently the attribute is only applied to the non-writeback ldp/stp
+ ;; patterns.
+ (define_attr "ldpstp" "ldp,stp,none" (const_string "none"))
+ 
  ;; -------------------------------------------------------------------
  ;; Pipeline descriptions and scheduling
  ;; -------------------------------------------------------------------
***************
*** 482,487 ****
--- 584,621 ----
  ;; Jumps and other miscellaneous insns
  ;; -------------------------------------------------------------------
  
+ (define_insn "aarch64_read_sysregdi"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+ 	(unspec_volatile:DI [(match_operand 1 "aarch64_sysreg_string" "")]
+ 			    UNSPEC_SYSREG_RDI))]
+   ""
+   "mrs\t%x0, %1"
+ )
+ 
+ (define_insn "aarch64_read_sysregti"
+   [(set (match_operand:TI 0 "register_operand" "=r")
+     (unspec_volatile:TI [(match_operand 1 "aarch64_sysreg_string" "")]
+ 			UNSPEC_SYSREG_RTI))]
+  "TARGET_D128"
+  "mrrs\t%x0, %H0, %x1"
+ )
+ 
+ (define_insn "aarch64_write_sysregdi"
+   [(unspec_volatile:DI [(match_operand 0 "aarch64_sysreg_string" "")
+ 			(match_operand:DI 1 "register_operand" "rZ")]
+ 		       UNSPEC_SYSREG_WDI)]
+   ""
+   "msr\t%0, %x1"
+ )
+ 
+ (define_insn "aarch64_write_sysregti"
+  [(unspec_volatile:TI [(match_operand 0 "aarch64_sysreg_string" "")
+ 		       (match_operand:TI 1 "register_operand" "r")]
+ 		      UNSPEC_SYSREG_WTI)]
+  "TARGET_D128"
+  "msrr\t%x0, %x1, %H1"
+ )
+ 
  (define_insn "indirect_jump"
    [(set (pc) (match_operand:DI 0 "register_operand" "r"))]
    ""
***************
*** 539,561 ****
    "")
  
  (define_insn "@ccmp<CC_ONLY:mode><GPI:mode>"
!   [(set (match_operand:CC_ONLY 1 "cc_register" "")
  	(if_then_else:CC_ONLY
  	  (match_operator 4 "aarch64_comparison_operator"
! 	   [(match_operand 0 "cc_register" "")
  	    (const_int 0)])
  	  (compare:CC_ONLY
! 	    (match_operand:GPI 2 "register_operand" "r,r,r")
! 	    (match_operand:GPI 3 "aarch64_ccmp_operand" "r,Uss,Usn"))
  	  (unspec:CC_ONLY
  	    [(match_operand 5 "immediate_operand")]
  	    UNSPEC_NZCV)))]
    ""
!   "@
!    ccmp\\t%<w>2, %<w>3, %k5, %m4
!    ccmp\\t%<w>2, %3, %k5, %m4
!    ccmn\\t%<w>2, #%n3, %k5, %m4"
!   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
  )
  
  (define_insn "@ccmp<CCFP_CCFPE:mode><GPF:mode>"
--- 673,695 ----
    "")
  
  (define_insn "@ccmp<CC_ONLY:mode><GPI:mode>"
!   [(set (match_operand:CC_ONLY 1 "cc_register")
  	(if_then_else:CC_ONLY
  	  (match_operator 4 "aarch64_comparison_operator"
! 	   [(match_operand 0 "cc_register")
  	    (const_int 0)])
  	  (compare:CC_ONLY
! 	    (match_operand:GPI 2 "register_operand")
! 	    (match_operand:GPI 3 "aarch64_ccmp_operand"))
  	  (unspec:CC_ONLY
  	    [(match_operand 5 "immediate_operand")]
  	    UNSPEC_NZCV)))]
    ""
!   {@ [ cons: 2 , 3   ; attrs: type ]
!      [ r       , r   ; alus_sreg   ] ccmp\t%<w>2, %<w>3, %k5, %m4
!      [ r       , Uss ; alus_imm    ] ccmp\t%<w>2, %3, %k5, %m4
!      [ r       , Usn ; alus_imm    ] ccmn\t%<w>2, #%n3, %k5, %m4
!   }
  )
  
  (define_insn "@ccmp<CCFP_CCFPE:mode><GPF:mode>"
***************
*** 576,598 ****
  )
  
  (define_insn "@ccmp<CC_ONLY:mode><GPI:mode>_rev"
!   [(set (match_operand:CC_ONLY 1 "cc_register" "")
  	(if_then_else:CC_ONLY
  	  (match_operator 4 "aarch64_comparison_operator"
! 	   [(match_operand 0 "cc_register" "")
  	    (const_int 0)])
  	  (unspec:CC_ONLY
  	    [(match_operand 5 "immediate_operand")]
  	    UNSPEC_NZCV)
  	  (compare:CC_ONLY
! 	    (match_operand:GPI 2 "register_operand" "r,r,r")
! 	    (match_operand:GPI 3 "aarch64_ccmp_operand" "r,Uss,Usn"))))]
    ""
!   "@
!    ccmp\\t%<w>2, %<w>3, %k5, %M4
!    ccmp\\t%<w>2, %3, %k5, %M4
!    ccmn\\t%<w>2, #%n3, %k5, %M4"
!   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
  )
  
  (define_insn "@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev"
--- 710,732 ----
  )
  
  (define_insn "@ccmp<CC_ONLY:mode><GPI:mode>_rev"
!   [(set (match_operand:CC_ONLY 1 "cc_register")
  	(if_then_else:CC_ONLY
  	  (match_operator 4 "aarch64_comparison_operator"
! 	   [(match_operand 0 "cc_register")
  	    (const_int 0)])
  	  (unspec:CC_ONLY
  	    [(match_operand 5 "immediate_operand")]
  	    UNSPEC_NZCV)
  	  (compare:CC_ONLY
! 	    (match_operand:GPI 2 "register_operand")
! 	    (match_operand:GPI 3 "aarch64_ccmp_operand"))))]
    ""
!   {@ [ cons: 2 , 3   ; attrs: type ]
!      [ r       , r   ; alus_sreg   ] ccmp\t%<w>2, %<w>3, %k5, %M4
!      [ r       , Uss ; alus_imm    ] ccmp\t%<w>2, %3, %k5, %M4
!      [ r       , Usn ; alus_imm    ] ccmn\t%<w>2, #%n3, %k5, %M4
!   }
  )
  
  (define_insn "@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev"
***************
*** 850,855 ****
--- 984,1000 ----
    [(set_attr "type" "load_4")]
  )
  
+ (define_insn "aarch64_pldx"
+   [(unspec [(match_operand 0 "" "")
+ 	    (match_operand:DI 1 "aarch64_prefetch_operand" "Dp")] UNSPEC_PLDX)]
+   ""
+   {
+     operands[1] = gen_rtx_MEM (DImode, operands[1]);
+     return "prfm\\t%0, %1";
+   }
+   [(set_attr "type" "load_4")]
+ )
+ 
  (define_insn "trap"
    [(trap_if (const_int 1) (const_int 8))]
    ""
***************
*** 869,884 ****
    [(clobber (const_int 0))]
    ""
    "
!   aarch64_expand_epilogue (false);
!   DONE;
!   "
! )
! 
! (define_expand "sibcall_epilogue"
!   [(clobber (const_int 0))]
!   ""
!   "
!   aarch64_expand_epilogue (true);
    DONE;
    "
  )
--- 1014,1020 ----
    [(clobber (const_int 0))]
    ""
    "
!   aarch64_expand_epilogue (nullptr);
    DONE;
    "
  )
***************
*** 891,897 ****
      if (aarch64_return_address_signing_enabled ()
  	&& (TARGET_PAUTH))
        {
! 	if (aarch_ra_sign_key == AARCH_KEY_B)
  	  ret = "retab";
  	else
  	  ret = "retaa";
--- 1027,1033 ----
      if (aarch64_return_address_signing_enabled ()
  	&& (TARGET_PAUTH))
        {
! 	if (aarch64_ra_sign_key == AARCH64_KEY_B)
  	  ret = "retab";
  	else
  	  ret = "retaa";
***************
*** 922,928 ****
     (set_attr "sls_length" "retbr")]
  )
  
! (define_insn "*cb<optab><mode>1"
    [(set (pc) (if_then_else (EQL (match_operand:GPI 0 "register_operand" "r")
  				(const_int 0))
  			   (label_ref (match_operand 1 "" ""))
--- 1058,1064 ----
     (set_attr "sls_length" "retbr")]
  )
  
! (define_insn "aarch64_cb<optab><mode>1"
    [(set (pc) (if_then_else (EQL (match_operand:GPI 0 "register_operand" "r")
  				(const_int 0))
  			   (label_ref (match_operand 1 "" ""))
***************
*** 964,970 ****
  					 operands[1]);
  })
  
! (define_insn "*tb<optab><ALLI:mode><GPI:mode>1"
    [(set (pc) (if_then_else
  	      (EQL (zero_extract:GPI (match_operand:ALLI 0 "register_operand" "r")
  				     (const_int 1)
--- 1100,1106 ----
  					 operands[1]);
  })
  
! (define_insn "@aarch64_tb<optab><ALLI:mode><GPI:mode>"
    [(set (pc) (if_then_else
  	      (EQL (zero_extract:GPI (match_operand:ALLI 0 "register_operand" "r")
  				     (const_int 1)
***************
*** 1051,1057 ****
    [(parallel
       [(call (match_operand 0 "memory_operand")
  	    (match_operand 1 "general_operand"))
!       (unspec:DI [(match_operand 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
        (clobber (reg:DI LR_REGNUM))])]
    ""
    "
--- 1187,1193 ----
    [(parallel
       [(call (match_operand 0 "memory_operand")
  	    (match_operand 1 "general_operand"))
!       (unspec:DI [(match_operand 2)] UNSPEC_CALLEE_ABI)
        (clobber (reg:DI LR_REGNUM))])]
    ""
    "
***************
*** 1062,1083 ****
  )
  
  (define_insn "*call_insn"
!   [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucr, Usf"))
  	 (match_operand 1 "" ""))
     (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
     (clobber (reg:DI LR_REGNUM))]
    ""
!   "@
!   * return aarch64_indirect_call_asm (operands[0]);
!   bl\\t%c0"
!   [(set_attr "type" "call, call")])
  
  (define_expand "call_value"
    [(parallel
       [(set (match_operand 0 "")
  	   (call (match_operand 1 "memory_operand")
  		 (match_operand 2 "general_operand")))
!      (unspec:DI [(match_operand 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
       (clobber (reg:DI LR_REGNUM))])]
    ""
    "
--- 1198,1220 ----
  )
  
  (define_insn "*call_insn"
!   [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand"))
  	 (match_operand 1 "" ""))
     (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
     (clobber (reg:DI LR_REGNUM))]
    ""
!   {@ [ cons: 0 ; attrs: type ]
!      [ Ucr     ; call        ] << aarch64_indirect_call_asm (operands[0]);
!      [ Usf     ; call        ] bl\t%c0
!   }
! )
  
  (define_expand "call_value"
    [(parallel
       [(set (match_operand 0 "")
  	   (call (match_operand 1 "memory_operand")
  		 (match_operand 2 "general_operand")))
!      (unspec:DI [(match_operand 3)] UNSPEC_CALLEE_ABI)
       (clobber (reg:DI LR_REGNUM))])]
    ""
    "
***************
*** 1089,1110 ****
  
  (define_insn "*call_value_insn"
    [(set (match_operand 0 "" "")
! 	(call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "Ucr, Usf"))
  		      (match_operand 2 "" "")))
     (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
     (clobber (reg:DI LR_REGNUM))]
    ""
!   "@
!   * return aarch64_indirect_call_asm (operands[1]);
!   bl\\t%c1"
!   [(set_attr "type" "call, call")]
  )
  
  (define_expand "sibcall"
    [(parallel
       [(call (match_operand 0 "memory_operand")
  	    (match_operand 1 "general_operand"))
!       (unspec:DI [(match_operand 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
        (return)])]
    ""
    {
--- 1226,1247 ----
  
  (define_insn "*call_value_insn"
    [(set (match_operand 0 "" "")
! 	(call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand"))
  		      (match_operand 2 "" "")))
     (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
     (clobber (reg:DI LR_REGNUM))]
    ""
!   {@ [ cons: 1 ; attrs: type ]
!      [ Ucr     ; call        ] << aarch64_indirect_call_asm (operands[1]);
!      [ Usf     ; call        ] bl\t%c1
!   }
  )
  
  (define_expand "sibcall"
    [(parallel
       [(call (match_operand 0 "memory_operand")
  	    (match_operand 1 "general_operand"))
!       (unspec:DI [(match_operand 2)] UNSPEC_CALLEE_ABI)
        (return)])]
    ""
    {
***************
*** 1118,1124 ****
       [(set (match_operand 0 "")
  	   (call (match_operand 1 "memory_operand")
  		 (match_operand 2 "general_operand")))
!       (unspec:DI [(match_operand 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
        (return)])]
    ""
    {
--- 1255,1261 ----
       [(set (match_operand 0 "")
  	   (call (match_operand 1 "memory_operand")
  		 (match_operand 2 "general_operand")))
!       (unspec:DI [(match_operand 3)] UNSPEC_CALLEE_ABI)
        (return)])]
    ""
    {
***************
*** 1176,1184 ****
  {
    int i;
  
    /* Untyped calls always use the default ABI.  It's only possible to use
       ABI variants if we know the type of the target function.  */
!   emit_call_insn (gen_call (operands[0], const0_rtx, const0_rtx));
  
    for (i = 0; i < XVECLEN (operands[2], 0); i++)
      {
--- 1313,1339 ----
  {
    int i;
  
+   /* Generate a PARALLEL that contains all of the register results.
+      The offsets are somewhat arbitrary, since we don't know the
+      actual return type.  The main thing we need to avoid is having
+      overlapping byte ranges, since those might give the impression
+      that two registers are known to have data in common.  */
+   rtvec rets = rtvec_alloc (XVECLEN (operands[2], 0));
+   poly_int64 offset = 0;
+   for (i = 0; i < XVECLEN (operands[2], 0); i++)
+     {
+       rtx reg = SET_SRC (XVECEXP (operands[2], 0, i));
+       gcc_assert (REG_P (reg));
+       rtx offset_rtx = gen_int_mode (offset, Pmode);
+       rtx piece = gen_rtx_EXPR_LIST (VOIDmode, reg, offset_rtx);
+       RTVEC_ELT (rets, i) = piece;
+       offset += GET_MODE_SIZE (GET_MODE (reg));
+     }
+   rtx ret = gen_rtx_PARALLEL (VOIDmode, rets);
+ 
    /* Untyped calls always use the default ABI.  It's only possible to use
       ABI variants if we know the type of the target function.  */
!   emit_call_insn (gen_call_value (ret, operands[0], const0_rtx, const0_rtx));
  
    for (i = 0; i < XVECLEN (operands[2], 0); i++)
      {
***************
*** 1215,1258 ****
  )
  
  (define_insn "*mov<mode>_aarch64"
!   [(set (match_operand:SHORT 0 "nonimmediate_operand" "=r,r,    w,r  ,r,w, m,m,r,w,w")
! 	(match_operand:SHORT 1 "aarch64_mov_operand"  " r,M,D<hq>,Usv,m,m,rZ,w,w,rZ,w"))]
    "(register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_zero (operands[1], <MODE>mode))"
! {
!    switch (which_alternative)
!      {
!      case 0:
!        return "mov\t%w0, %w1";
!      case 1:
!        return "mov\t%w0, %1";
!      case 2:
!        return aarch64_output_scalar_simd_mov_immediate (operands[1],
! 							<MODE>mode);
!      case 3:
!        return aarch64_output_sve_cnt_immediate (\"cnt\", \"%x0\", operands[1]);
!      case 4:
!        return "ldr<size>\t%w0, %1";
!      case 5:
!        return "ldr\t%<size>0, %1";
!      case 6:
!        return "str<size>\t%w1, %0";
!      case 7:
!        return "str\t%<size>1, %0";
!      case 8:
!        return TARGET_SIMD ? "umov\t%w0, %1.<v>[0]" : "fmov\t%w0, %s1";
!      case 9:
!        return TARGET_SIMD ? "dup\t%0.<Vallxd>, %w1" : "fmov\t%s0, %w1";
!      case 10:
!        return TARGET_SIMD ? "dup\t%<Vetype>0, %1.<v>[0]" : "fmov\t%s0, %s1";
!      default:
!        gcc_unreachable ();
!      }
! }
!   ;; The "mov_imm" type for CNT is just a placeholder.
!   [(set_attr "type" "mov_reg,mov_imm,neon_move,mov_imm,load_4,load_4,store_4,
! 		     store_4,neon_to_gp<q>,neon_from_gp<q>,neon_dup")
!    (set_attr "arch" "*,*,simd,sve,*,*,*,*,*,*,*")]
  )
  
  (define_expand "mov<mode>"
--- 1370,1398 ----
  )
  
  (define_insn "*mov<mode>_aarch64"
!   [(set (match_operand:SHORT 0 "nonimmediate_operand")
! 	(match_operand:SHORT 1 "aarch64_mov_operand"))]
    "(register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_zero (operands[1], <MODE>mode))"
!   {@ [cons: =0, 1; attrs: type, arch]
!      [w, Z    ; neon_move      , simd       ] movi\t%0.<Vbtype>, #0
!      [r, r    ; mov_reg        , *          ] mov\t%w0, %w1
!      [r, M    ; mov_imm        , *          ] mov\t%w0, %1
!      [w, D<hq>; neon_move      , simd       ] << aarch64_output_scalar_simd_mov_immediate (operands[1], <MODE>mode);
!      /* The "mov_imm" type for CNT is just a placeholder.  */
!      [r, Usv  ; mov_imm        , sve        ] << aarch64_output_sve_cnt_immediate ("cnt", "%x0", operands[1]);
!      [r, Usr  ; mov_imm        , sve        ] << aarch64_output_sve_rdvl (operands[1]);
!      [r, m    ; load_4         , *          ] ldr<size>\t%w0, %1
!      [w, m    ; load_4         , *          ] ldr\t%<size>0, %1
!      [m, r Z  ; store_4        , *          ] str<size>\\t%w1, %0
!      [m, w    ; store_4        , *          ] str\t%<size>1, %0
!      [r, w    ; neon_to_gp<q>  , base_simd  ] umov\t%w0, %1.<v>[0]
!      [r, w    ; neon_to_gp<q>  , nobase_simd] fmov\t%w0, %s1
!      [w, r Z  ; neon_from_gp<q>, simd       ] dup\t%0.<Vallxd>, %w1
!      [w, r Z  ; neon_from_gp<q>, nosimd     ] fmov\t%s0, %w1
!      [w, w    ; neon_dup       , simd       ] dup\t%<Vetype>0, %1.<v>[0]
!      [w, w    ; neon_dup       , nosimd     ] fmov\t%s0, %s1
!   }
  )
  
  (define_expand "mov<mode>"
***************
*** 1289,1367 ****
  )
  
  (define_insn_and_split "*movsi_aarch64"
!   [(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r, r,w, m, m,  r,  r,  r, w,r,w, w")
! 	(match_operand:SI 1 "aarch64_mov_operand"  " r,r,k,M,n,Usv,m,m,rZ,w,Usw,Usa,Ush,rZ,w,w,Ds"))]
    "(register_operand (operands[0], SImode)
      || aarch64_reg_or_zero (operands[1], SImode))"
!   "@
!    mov\\t%w0, %w1
!    mov\\t%w0, %w1
!    mov\\t%w0, %w1
!    mov\\t%w0, %1
!    #
!    * return aarch64_output_sve_cnt_immediate (\"cnt\", \"%x0\", operands[1]);
!    ldr\\t%w0, %1
!    ldr\\t%s0, %1
!    str\\t%w1, %0
!    str\\t%s1, %0
!    adrp\\t%x0, %A1\;ldr\\t%w0, [%x0, %L1]
!    adr\\t%x0, %c1
!    adrp\\t%x0, %A1
!    fmov\\t%s0, %w1
!    fmov\\t%w0, %s1
!    fmov\\t%s0, %s1
!    * return aarch64_output_scalar_simd_mov_immediate (operands[1], SImode);"
    "CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), SImode)
      && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
!    [(const_int 0)]
!    "{
!        aarch64_expand_mov_immediate (operands[0], operands[1]);
!        DONE;
!     }"
!   ;; The "mov_imm" type for CNT is just a placeholder.
!   [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,mov_imm,load_4,
! 		    load_4,store_4,store_4,load_4,adr,adr,f_mcr,f_mrc,fmov,neon_move")
!    (set_attr "arch"   "*,*,*,*,*,sve,*,fp,*,fp,*,*,*,fp,fp,fp,simd")
!    (set_attr "length" "4,4,4,4,*,  4,4, 4,4, 4,8,4,4, 4, 4, 4,   4")
! ]
  )
  
  (define_insn_and_split "*movdi_aarch64"
!   [(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r, r,w, m,m,   r,  r,  r, w,r,w, w")
! 	(match_operand:DI 1 "aarch64_mov_operand"  " r,r,k,O,n,Usv,m,m,rZ,w,Usw,Usa,Ush,rZ,w,w,Dd"))]
    "(register_operand (operands[0], DImode)
      || aarch64_reg_or_zero (operands[1], DImode))"
!   "@
!    mov\\t%x0, %x1
!    mov\\t%0, %x1
!    mov\\t%x0, %1
!    * return aarch64_is_mov_xn_imm (INTVAL (operands[1])) ? \"mov\\t%x0, %1\" : \"mov\\t%w0, %1\";
!    #
!    * return aarch64_output_sve_cnt_immediate (\"cnt\", \"%x0\", operands[1]);
!    ldr\\t%x0, %1
!    ldr\\t%d0, %1
!    str\\t%x1, %0
!    str\\t%d1, %0
!    * return TARGET_ILP32 ? \"adrp\\t%0, %A1\;ldr\\t%w0, [%0, %L1]\" : \"adrp\\t%0, %A1\;ldr\\t%0, [%0, %L1]\";
!    adr\\t%x0, %c1
!    adrp\\t%x0, %A1
!    fmov\\t%d0, %x1
!    fmov\\t%x0, %d1
!    fmov\\t%d0, %d1
!    * return aarch64_output_scalar_simd_mov_immediate (operands[1], DImode);"
!    "CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), DImode)
!     && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
!    [(const_int 0)]
!    "{
!        aarch64_expand_mov_immediate (operands[0], operands[1]);
!        DONE;
!     }"
!   ;; The "mov_imm" type for CNTD is just a placeholder.
!   [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,mov_imm,
! 		     load_8,load_8,store_8,store_8,load_8,adr,adr,f_mcr,f_mrc,
! 		     fmov,neon_move")
!    (set_attr "arch"   "*,*,*,*,*,sve,*,fp,*,fp,*,*,*,fp,fp,fp,simd")
!    (set_attr "length" "4,4,4,4,*,  4,4, 4,4, 4,8,4,4, 4, 4, 4,   4")]
  )
  
  (define_insn "insv_imm<mode>"
--- 1429,1512 ----
  )
  
  (define_insn_and_split "*movsi_aarch64"
!   [(set (match_operand:SI 0 "nonimmediate_operand")
! 	(match_operand:SI 1 "aarch64_mov_operand"))]
    "(register_operand (operands[0], SImode)
      || aarch64_reg_or_zero (operands[1], SImode))"
!   {@ [cons: =0, 1; attrs: type, arch, length]
!      [w  , Z  ; neon_move, simd, 4] movi\t%0.2d, #0
!      [r k, r  ; mov_reg  , *   , 4] mov\t%w0, %w1
!      [r  , k  ; mov_reg  , *   , 4] ^
!      [r  , M  ; mov_imm  , *   , 4] mov\t%w0, %1
!      [r  , n  ; mov_imm  , *   ,16] #
!      /* The "mov_imm" type for CNT is just a placeholder.  */
!      [r  , Usv; mov_imm  , sve , 4] << aarch64_output_sve_cnt_immediate ("cnt", "%x0", operands[1]);
!      [r  , Usr; mov_imm  , sve,  4] << aarch64_output_sve_rdvl (operands[1]);
!      [r  , UsR; mov_imm  , sme,  4] << aarch64_output_rdsvl (operands[1]);
!      [r  , m  ; load_4   , *   , 4] ldr\t%w0, %1
!      [w  , m  ; load_4   , fp  , 4] ldr\t%s0, %1
!      [m  , r Z; store_4  , *   , 4] str\t%w1, %0
!      [m  , w  ; store_4  , fp  , 4] str\t%s1, %0
!      [r  , Usw; load_4   , *   , 8] adrp\t%x0, %A1;ldr\t%w0, [%x0, %L1]
!      [r  , Usa; adr      , *   , 4] adr\t%x0, %c1
!      [r  , Ush; adr      , *   , 4] adrp\t%x0, %A1
!      [w  , r Z; f_mcr    , fp  , 4] fmov\t%s0, %w1
!      [r  , w  ; f_mrc    , fp  , 4] fmov\t%w0, %s1
!      [w  , w  ; fmov     , fp  , 4] fmov\t%s0, %s1
!      [w  , Ds ; neon_move, simd, 4] << aarch64_output_scalar_simd_mov_immediate (operands[1], SImode);
!   }
    "CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), SImode)
      && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))"
!   [(const_int 0)]
!   {
!     aarch64_expand_mov_immediate (operands[0], operands[1]);
!     DONE;
!   }
  )
  
  (define_insn_and_split "*movdi_aarch64"
!   [(set (match_operand:DI 0 "nonimmediate_operand")
! 	(match_operand:DI 1 "aarch64_mov_operand"))]
    "(register_operand (operands[0], DImode)
      || aarch64_reg_or_zero (operands[1], DImode))"
!   {@ [cons: =0, 1; attrs: type, arch, length]
!      [w, Z  ; neon_move, simd, 4] movi\t%0.2d, #0
!      [r, r  ; mov_reg  , *   , 4] mov\t%x0, %x1
!      [k, r  ; mov_reg  , *   , 4] mov\t%0, %x1
!      [r, k  ; mov_reg  , *   , 4] mov\t%x0, %1
!      [r, O  ; mov_imm  , *   , 4] << aarch64_is_mov_xn_imm (INTVAL (operands[1])) ? "mov\t%x0, %1" : "mov\t%w0, %1";
!      [r, n  ; mov_imm  , *   ,16] #
!      /* The "mov_imm" type for CNT is just a placeholder.  */
!      [r, Usv; mov_imm  , sve , 4] << aarch64_output_sve_cnt_immediate ("cnt", "%x0", operands[1]);
!      [r, Usr; mov_imm  , sve,  4] << aarch64_output_sve_rdvl (operands[1]);
!      [r, UsR; mov_imm  , sme,  4] << aarch64_output_rdsvl (operands[1]);
!      [r, m  ; load_8   , *   , 4] ldr\t%x0, %1
!      [w, m  ; load_8   , fp  , 4] ldr\t%d0, %1
!      [m, r Z; store_8  , *   , 4] str\t%x1, %0
!      [m, w  ; store_8  , fp  , 4] str\t%d1, %0
!      [r, Usw; load_8   , *   , 8] << TARGET_ILP32 ? "adrp\t%0, %A1;ldr\t%w0, [%0, %L1]" : "adrp\t%0, %A1;ldr\t%0, [%0, %L1]";
!      [r, Usa; adr      , *   , 4] adr\t%x0, %c1
!      [r, Ush; adr      , *   , 4] adrp\t%x0, %A1
!      [w, r Z; f_mcr    , fp  , 4] fmov\t%d0, %x1
!      [r, w  ; f_mrc    , fp  , 4] fmov\t%x0, %d1
!      [w, w  ; fmov     , fp  , 4] fmov\t%d0, %d1
!      [w, Dd ; neon_move, simd, 4] << aarch64_output_scalar_simd_mov_immediate (operands[1], DImode);
!      [w, Dx ; neon_move, simd, 8] #
!   }
!   "CONST_INT_P (operands[1])
!    && REG_P (operands[0])
!    && ((!aarch64_move_imm (INTVAL (operands[1]), DImode)
! 	&& GP_REGNUM_P (REGNO (operands[0])))
!        || (aarch64_simd_special_constant_p (operands[1], DImode)
! 	   && FP_REGNUM_P (REGNO (operands[0]))))"
!   [(const_int 0)]
!   {
!     if (GP_REGNUM_P (REGNO (operands[0])))
!       aarch64_expand_mov_immediate (operands[0], operands[1]);
!     else
!       aarch64_maybe_generate_simd_constant (operands[0], operands[1], DImode);
!     DONE;
!   }
  )
  
  (define_insn "insv_imm<mode>"
***************
*** 1413,1421 ****
  
  (define_insn "*movti_aarch64"
    [(set (match_operand:TI 0
! 	 "nonimmediate_operand"  "=   r,w,w,w, r,w,r,m,m,w,m")
  	(match_operand:TI 1
! 	 "aarch64_movti_operand" " rUti,Z,Z,r, w,w,m,r,Z,m,w"))]
    "(register_operand (operands[0], TImode)
      || aarch64_reg_or_zero (operands[1], TImode))"
    "@
--- 1558,1566 ----
  
  (define_insn "*movti_aarch64"
    [(set (match_operand:TI 0
! 	 "nonimmediate_operand"  "=   r,w,w,w, r,w,w,r,m,m,w,m")
  	(match_operand:TI 1
! 	 "aarch64_movti_operand" " rUti,Z,Z,r, w,w,w,m,r,Z,m,w"))]
    "(register_operand (operands[0], TImode)
      || aarch64_reg_or_zero (operands[1], TImode))"
    "@
***************
*** 1425,1440 ****
     #
     #
     mov\\t%0.16b, %1.16b
     ldp\\t%0, %H0, %1
     stp\\t%1, %H1, %0
     stp\\txzr, xzr, %0
     ldr\\t%q0, %1
     str\\t%q1, %0"
!   [(set_attr "type" "multiple,neon_move,f_mcr,f_mcr,f_mrc,neon_logic_q, \
  		             load_16,store_16,store_16,\
                               load_16,store_16")
!    (set_attr "length" "8,4,4,8,8,4,4,4,4,4,4")
!    (set_attr "arch" "*,simd,*,*,*,simd,*,*,*,fp,fp")]
  )
  
  ;; Split a TImode register-register or register-immediate move into
--- 1570,1586 ----
     #
     #
     mov\\t%0.16b, %1.16b
+    mov\\t%Z0.d, %Z1.d
     ldp\\t%0, %H0, %1
     stp\\t%1, %H1, %0
     stp\\txzr, xzr, %0
     ldr\\t%q0, %1
     str\\t%q1, %0"
!   [(set_attr "type" "multiple,neon_move,f_mcr,f_mcr,f_mrc,neon_logic_q,*,\
  		             load_16,store_16,store_16,\
                               load_16,store_16")
!    (set_attr "length" "8,4,4,8,8,4,4,4,4,4,4,4")
!    (set_attr "arch" "*,simd,*,*,*,simd,sve,*,*,*,fp,fp")]
  )
  
  ;; Split a TImode register-register or register-immediate move into
***************
*** 1473,1550 ****
  )
  
  (define_insn "*mov<mode>_aarch64"
!   [(set (match_operand:HFBF 0 "nonimmediate_operand" "=w,w  ,w ,w  ,?r,?r,w,w,w  ,w  ,w,m,r,m ,r")
! 	(match_operand:HFBF 1 "general_operand"      "Y ,?rY,?r,?rY, w, w,w,w,Ufc,Uvi,m,w,m,rY,r"))]
    "TARGET_FLOAT && (register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_fp_zero (operands[1], <MODE>mode))"
!   "@
!    movi\\t%0.4h, #0
!    fmov\\t%h0, %w1
!    dup\\t%w0.4h, %w1
!    fmov\\t%s0, %w1
!    umov\\t%w0, %1.h[0]
!    fmov\\t%w0, %s1
!    mov\\t%0.h[0], %1.h[0]
!    fmov\\t%s0, %s1
!    fmov\\t%h0, %1
!    * return aarch64_output_scalar_simd_mov_immediate (operands[1], HImode);
!    ldr\\t%h0, %1
!    str\\t%h1, %0
!    ldrh\\t%w0, %1
!    strh\\t%w1, %0
!    mov\\t%w0, %w1"
!   [(set_attr "type" "neon_move,f_mcr,neon_move,f_mcr,neon_to_gp,f_mrc,
! 		     neon_move,fmov,fconsts,neon_move,f_loads,f_stores,
! 		     load_4,store_4,mov_reg")
!    (set_attr "arch" "simd,fp16,simd,*,simd,*,simd,*,fp16,simd,*,*,*,*,*")]
  )
  
  (define_insn "*mov<mode>_aarch64"
!   [(set (match_operand:SFD 0 "nonimmediate_operand" "=w,w  ,?r,w,w  ,w  ,w,m,r,m ,r,r")
! 	(match_operand:SFD 1 "general_operand"      "Y ,?rY, w,w,Ufc,Uvi,m,w,m,rY,r,M"))]
    "TARGET_FLOAT && (register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_fp_zero (operands[1], <MODE>mode))"
!   "@
!    movi\\t%0.2s, #0
!    fmov\\t%s0, %w1
!    fmov\\t%w0, %s1
!    fmov\\t%s0, %s1
!    fmov\\t%s0, %1
!    * return aarch64_output_scalar_simd_mov_immediate (operands[1], SImode);
!    ldr\\t%s0, %1
!    str\\t%s1, %0
!    ldr\\t%w0, %1
!    str\\t%w1, %0
!    mov\\t%w0, %w1
!    mov\\t%w0, %1"
!   [(set_attr "type" "neon_move,f_mcr,f_mrc,fmov,fconsts,neon_move,\
! 		     f_loads,f_stores,load_4,store_4,mov_reg,\
! 		     fconsts")
!    (set_attr "arch" "simd,*,*,*,*,simd,*,*,*,*,*,*")]
  )
  
  (define_insn "*mov<mode>_aarch64"
!   [(set (match_operand:DFD 0 "nonimmediate_operand" "=w, w  ,?r,w,w  ,w  ,w,m,r,m ,r,r")
! 	(match_operand:DFD 1 "general_operand"      "Y , ?rY, w,w,Ufc,Uvi,m,w,m,rY,r,O"))]
    "TARGET_FLOAT && (register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_fp_zero (operands[1], <MODE>mode))"
!   "@
!    movi\\t%d0, #0
!    fmov\\t%d0, %x1
!    fmov\\t%x0, %d1
!    fmov\\t%d0, %d1
!    fmov\\t%d0, %1
!    * return aarch64_output_scalar_simd_mov_immediate (operands[1], DImode);
!    ldr\\t%d0, %1
!    str\\t%d1, %0
!    ldr\\t%x0, %1
!    str\\t%x1, %0
!    mov\\t%x0, %x1
!    * return aarch64_is_mov_xn_imm (INTVAL (operands[1])) ? \"mov\\t%x0, %1\" : \"mov\\t%w0, %1\";"
!   [(set_attr "type" "neon_move,f_mcr,f_mrc,fmov,fconstd,neon_move,\
! 		     f_loadd,f_stored,load_8,store_8,mov_reg,\
! 		     fconstd")
!    (set_attr "arch" "simd,*,*,*,*,simd,*,*,*,*,*,*")]
  )
  
  (define_split
--- 1619,1687 ----
  )
  
  (define_insn "*mov<mode>_aarch64"
!   [(set (match_operand:HFBF 0 "nonimmediate_operand")
! 	(match_operand:HFBF 1 "general_operand"))]
    "TARGET_FLOAT && (register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_fp_zero (operands[1], <MODE>mode))"
!   {@ [ cons: =0 , 1   ; attrs: type , arch  ]
!      [ w        , Y   ; neon_move   , simd  ] movi\t%0.4h, #0
!      [ w        , ?rY ; f_mcr       , fp16  ] fmov\t%h0, %w1
!      [ w        , ?r  ; neon_move   , simd  ] dup\t%w0.4h, %w1
!      [ w        , ?rY ; f_mcr       , *     ] fmov\t%s0, %w1
!      [ ?r       , w   ; neon_to_gp  , simd  ] umov\t%w0, %1.h[0]
!      [ ?r       , w   ; f_mrc       , *     ] fmov\t%w0, %s1
!      [ w        , w   ; neon_move   , simd  ] mov\t%0.h[0], %1.h[0]
!      [ w        , w   ; fmov        , *     ] fmov\t%s0, %s1
!      [ w        , Ufc ; fconsts     , fp16  ] fmov\t%h0, %1
!      [ w        , Uvi ; neon_move   , simd  ] << aarch64_output_scalar_simd_mov_immediate (operands[1], HImode);
!      [ w        , m   ; f_loads     , *     ] ldr\t%h0, %1
!      [ m        , w   ; f_stores    , *     ] str\t%h1, %0
!      [ r        , m   ; load_4      , *     ] ldrh\t%w0, %1
!      [ m        , rY  ; store_4     , *     ] strh\t%w1, %0
!      [ r        , r   ; mov_reg     , *     ] mov\t%w0, %w1
!   }
  )
  
  (define_insn "*mov<mode>_aarch64"
!   [(set (match_operand:SFD 0 "nonimmediate_operand")
! 	(match_operand:SFD 1 "general_operand"))]
    "TARGET_FLOAT && (register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_fp_zero (operands[1], <MODE>mode))"
!   {@ [ cons: =0 , 1   ; attrs: type , arch  ]
!      [ w        , Y   ; neon_move   , simd  ] movi\t%0.2s, #0
!      [ w        , ?rY ; f_mcr       , *     ] fmov\t%s0, %w1
!      [ ?r       , w   ; f_mrc       , *     ] fmov\t%w0, %s1
!      [ w        , w   ; fmov        , *     ] fmov\t%s0, %s1
!      [ w        , Ufc ; fconsts     , *     ] fmov\t%s0, %1
!      [ w        , Uvi ; neon_move   , simd  ] << aarch64_output_scalar_simd_mov_immediate (operands[1], SImode);
!      [ w        , m   ; f_loads     , *     ] ldr\t%s0, %1
!      [ m        , w   ; f_stores    , *     ] str\t%s1, %0
!      [ r        , m   ; load_4      , *     ] ldr\t%w0, %1
!      [ m        , rY  ; store_4     , *     ] str\t%w1, %0
!      [ r        , r   ; mov_reg     , *     ] mov\t%w0, %w1
!      [ r        , M   ; fconsts     , *     ] mov\t%w0, %1
!   }
  )
  
  (define_insn "*mov<mode>_aarch64"
!   [(set (match_operand:DFD 0 "nonimmediate_operand")
! 	(match_operand:DFD 1 "general_operand"))]
    "TARGET_FLOAT && (register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_fp_zero (operands[1], <MODE>mode))"
!   {@ [ cons: =0 , 1   ; attrs: type , arch  ]
!      [ w        , Y   ; neon_move   , simd  ] movi\t%d0, #0
!      [ w        , ?rY ; f_mcr       , *     ] fmov\t%d0, %x1
!      [ ?r       , w   ; f_mrc       , *     ] fmov\t%x0, %d1
!      [ w        , w   ; fmov        , *     ] fmov\t%d0, %d1
!      [ w        , Ufc ; fconstd     , *     ] fmov\t%d0, %1
!      [ w        , Uvi ; neon_move   , simd  ] << aarch64_output_scalar_simd_mov_immediate (operands[1], DImode);
!      [ w        , m   ; f_loadd     , *     ] ldr\t%d0, %1
!      [ m        , w   ; f_stored    , *     ] str\t%d1, %0
!      [ r        , m   ; load_8      , *     ] ldr\t%x0, %1
!      [ m        , rY  ; store_8     , *     ] str\t%x1, %0
!      [ r        , r   ; mov_reg     , *     ] mov\t%x0, %x1
!      [ r        , O   ; fconstd     , *     ] << aarch64_is_mov_xn_imm (INTVAL (operands[1])) ? "mov\t%x0, %1" : "mov\t%w0, %1";
!   }
  )
  
  (define_split
***************
*** 1570,1582 ****
  
  (define_insn "*mov<mode>_aarch64"
    [(set (match_operand:TFD 0
! 	 "nonimmediate_operand" "=w,?r ,w ,?r,w,?w,w,m,?r,m ,m")
  	(match_operand:TFD 1
! 	 "general_operand"      " w,?rY,?r,w ,Y,Y ,m,w,m ,?r,Y"))]
    "TARGET_FLOAT && (register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_fp_zero (operands[1], <MODE>mode))"
    "@
     mov\\t%0.16b, %1.16b
     #
     #
     #
--- 1707,1720 ----
  
  (define_insn "*mov<mode>_aarch64"
    [(set (match_operand:TFD 0
! 	 "nonimmediate_operand" "=w,w,?r ,w ,?r,w,?w,w,m,?r,m ,m")
  	(match_operand:TFD 1
! 	 "general_operand"      " w,w,?rY,?r,w ,Y,Y ,m,w,m ,?r,Y"))]
    "TARGET_FLOAT && (register_operand (operands[0], <MODE>mode)
      || aarch64_reg_or_fp_zero (operands[1], <MODE>mode))"
    "@
     mov\\t%0.16b, %1.16b
+    mov\\t%Z0.d, %Z1.d
     #
     #
     #
***************
*** 1587,1596 ****
     ldp\\t%0, %H0, %1
     stp\\t%1, %H1, %0
     stp\\txzr, xzr, %0"
!   [(set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,neon_move_q,f_mcr,\
                       f_loadd,f_stored,load_16,store_16,store_16")
!    (set_attr "length" "4,8,8,8,4,4,4,4,4,4,4")
!    (set_attr "arch" "simd,*,*,*,simd,*,*,*,*,*,*")]
  )
  
  (define_split
--- 1725,1734 ----
     ldp\\t%0, %H0, %1
     stp\\t%1, %H1, %0
     stp\\txzr, xzr, %0"
!   [(set_attr "type" "logic_reg,*,multiple,f_mcr,f_mrc,neon_move_q,f_mcr,\
                       f_loadd,f_stored,load_16,store_16,store_16")
!    (set_attr "length" "4,4,8,8,8,4,4,4,4,4,4,4")
!    (set_attr "arch" "simd,sve,*,*,*,simd,*,*,*,*,*,*")]
  )
  
  (define_split
***************
*** 1641,1655 ****
     (match_operand:BLK 1 "memory_operand")
     (match_operand:DI 2 "general_operand")
     (match_operand:DI 3 "immediate_operand")]
!    "!STRICT_ALIGNMENT || TARGET_MOPS"
  {
!   if (aarch64_expand_cpymem (operands))
      DONE;
    FAIL;
  }
  )
  
! (define_insn "aarch64_movmemdi"
    [(parallel [
     (set (match_operand:DI 2 "register_operand" "+&r") (const_int 0))
     (clobber (match_operand:DI 0 "register_operand" "+&r"))
--- 1779,1808 ----
     (match_operand:BLK 1 "memory_operand")
     (match_operand:DI 2 "general_operand")
     (match_operand:DI 3 "immediate_operand")]
!    ""
  {
!   if (aarch64_expand_cpymem (operands, false))
      DONE;
    FAIL;
  }
  )
  
! (define_expand "aarch64_movmemdi"
!   [(parallel
!      [(set (match_operand 2) (const_int 0))
!       (clobber (match_dup 3))
!       (clobber (match_dup 4))
!       (clobber (reg:CC CC_REGNUM))
!       (set (match_operand 0)
! 	   (unspec:BLK [(match_operand 1) (match_dup 2)] UNSPEC_MOVMEM))])]
!   "TARGET_MOPS"
!   {
!     operands[3] = XEXP (operands[0], 0);
!     operands[4] = XEXP (operands[1], 0);
!   }
! )
! 
! (define_insn "*aarch64_movmemdi"
    [(parallel [
     (set (match_operand:DI 2 "register_operand" "+&r") (const_int 0))
     (clobber (match_operand:DI 0 "register_operand" "+&r"))
***************
*** 1672,1698 ****
     (match_operand:BLK 1 "memory_operand")
     (match_operand:DI 2 "general_operand")
     (match_operand:DI 3 "immediate_operand")]
!    "TARGET_MOPS"
  {
!    rtx sz_reg = operands[2];
!    /* For constant-sized memmoves check the threshold.
!       FIXME: We should add a non-MOPS memmove expansion for smaller,
!       constant-sized memmove to avoid going to a libcall.  */
!    if (CONST_INT_P (sz_reg)
!        && INTVAL (sz_reg) < aarch64_mops_memmove_size_threshold)
!      FAIL;
! 
!    rtx addr_dst = XEXP (operands[0], 0);
!    rtx addr_src = XEXP (operands[1], 0);
! 
!    if (!REG_P (sz_reg))
!      sz_reg = force_reg (DImode, sz_reg);
!    if (!REG_P (addr_dst))
!      addr_dst = force_reg (DImode, addr_dst);
!    if (!REG_P (addr_src))
!      addr_src = force_reg (DImode, addr_src);
!    emit_insn (gen_aarch64_movmemdi (addr_dst, addr_src, sz_reg));
!    DONE;
  }
  )
  
--- 1825,1835 ----
     (match_operand:BLK 1 "memory_operand")
     (match_operand:DI 2 "general_operand")
     (match_operand:DI 3 "immediate_operand")]
!    ""
  {
!   if (aarch64_expand_cpymem (operands, true))
!     DONE;
!   FAIL;
  }
  )
  
***************
*** 1731,1737 ****
          (match_operand:QI  2 "nonmemory_operand")) ;; Value
     (use (match_operand:DI  1 "general_operand")) ;; Length
     (match_operand          3 "immediate_operand")] ;; Align
!  "TARGET_SIMD || TARGET_MOPS"
   {
    if (aarch64_expand_setmem (operands))
      DONE;
--- 1868,1874 ----
          (match_operand:QI  2 "nonmemory_operand")) ;; Value
     (use (match_operand:DI  1 "general_operand")) ;; Length
     (match_operand          3 "immediate_operand")] ;; Align
!  ""
   {
    if (aarch64_expand_setmem (operands))
      DONE;
***************
*** 1739,1940 ****
    FAIL;
  })
  
! ;; Operands 1 and 3 are tied together by the final condition; so we allow
! ;; fairly lax checking on the second memory operation.
! (define_insn "load_pair_sw_<SX:mode><SX2:mode>"
!   [(set (match_operand:SX 0 "register_operand" "=r,w")
! 	(match_operand:SX 1 "aarch64_mem_pair_operand" "Ump,Ump"))
!    (set (match_operand:SX2 2 "register_operand" "=r,w")
! 	(match_operand:SX2 3 "memory_operand" "m,m"))]
!    "rtx_equal_p (XEXP (operands[3], 0),
! 		 plus_constant (Pmode,
! 				XEXP (operands[1], 0),
! 				GET_MODE_SIZE (<SX:MODE>mode)))"
!   "@
!    ldp\\t%w0, %w2, %z1
!    ldp\\t%s0, %s2, %z1"
!   [(set_attr "type" "load_8,neon_load1_2reg")
!    (set_attr "arch" "*,fp")]
! )
! 
! ;; Storing different modes that can still be merged
! (define_insn "load_pair_dw_<DX:mode><DX2:mode>"
!   [(set (match_operand:DX 0 "register_operand" "=r,w")
! 	(match_operand:DX 1 "aarch64_mem_pair_operand" "Ump,Ump"))
!    (set (match_operand:DX2 2 "register_operand" "=r,w")
! 	(match_operand:DX2 3 "memory_operand" "m,m"))]
!    "rtx_equal_p (XEXP (operands[3], 0),
! 		 plus_constant (Pmode,
! 				XEXP (operands[1], 0),
! 				GET_MODE_SIZE (<DX:MODE>mode)))"
!   "@
!    ldp\\t%x0, %x2, %z1
!    ldp\\t%d0, %d2, %z1"
!   [(set_attr "type" "load_16,neon_load1_2reg")
!    (set_attr "arch" "*,fp")]
  )
  
! (define_insn "load_pair_dw_tftf"
!   [(set (match_operand:TF 0 "register_operand" "=w")
! 	(match_operand:TF 1 "aarch64_mem_pair_operand" "Ump"))
!    (set (match_operand:TF 2 "register_operand" "=w")
! 	(match_operand:TF 3 "memory_operand" "m"))]
!    "TARGET_SIMD
!     && rtx_equal_p (XEXP (operands[3], 0),
! 		    plus_constant (Pmode,
! 				   XEXP (operands[1], 0),
! 				   GET_MODE_SIZE (TFmode)))"
!   "ldp\\t%q0, %q2, %z1"
    [(set_attr "type" "neon_ldp_q")
!    (set_attr "fp" "yes")]
! )
! 
! ;; Operands 0 and 2 are tied together by the final condition; so we allow
! ;; fairly lax checking on the second memory operation.
! (define_insn "store_pair_sw_<SX:mode><SX2:mode>"
!   [(set (match_operand:SX 0 "aarch64_mem_pair_operand" "=Ump,Ump")
! 	(match_operand:SX 1 "aarch64_reg_zero_or_fp_zero" "rYZ,w"))
!    (set (match_operand:SX2 2 "memory_operand" "=m,m")
! 	(match_operand:SX2 3 "aarch64_reg_zero_or_fp_zero" "rYZ,w"))]
!    "rtx_equal_p (XEXP (operands[2], 0),
! 		 plus_constant (Pmode,
! 				XEXP (operands[0], 0),
! 				GET_MODE_SIZE (<SX:MODE>mode)))"
!   "@
!    stp\\t%w1, %w3, %z0
!    stp\\t%s1, %s3, %z0"
!   [(set_attr "type" "store_8,neon_store1_2reg")
!    (set_attr "arch" "*,fp")]
  )
  
! ;; Storing different modes that can still be merged
! (define_insn "store_pair_dw_<DX:mode><DX2:mode>"
!   [(set (match_operand:DX 0 "aarch64_mem_pair_operand" "=Ump,Ump")
! 	(match_operand:DX 1 "aarch64_reg_zero_or_fp_zero" "rYZ,w"))
!    (set (match_operand:DX2 2 "memory_operand" "=m,m")
! 	(match_operand:DX2 3 "aarch64_reg_zero_or_fp_zero" "rYZ,w"))]
!    "rtx_equal_p (XEXP (operands[2], 0),
! 		 plus_constant (Pmode,
! 				XEXP (operands[0], 0),
! 				GET_MODE_SIZE (<DX:MODE>mode)))"
!   "@
!    stp\\t%x1, %x3, %z0
!    stp\\t%d1, %d3, %z0"
!   [(set_attr "type" "store_16,neon_store1_2reg")
!    (set_attr "arch" "*,fp")]
  )
  
! (define_insn "store_pair_dw_tftf"
!   [(set (match_operand:TF 0 "aarch64_mem_pair_operand" "=Ump")
! 	(match_operand:TF 1 "register_operand" "w"))
!    (set (match_operand:TF 2 "memory_operand" "=m")
! 	(match_operand:TF 3 "register_operand" "w"))]
!    "TARGET_SIMD &&
!     rtx_equal_p (XEXP (operands[2], 0),
! 		 plus_constant (Pmode,
! 				XEXP (operands[0], 0),
! 				GET_MODE_SIZE (TFmode)))"
!   "stp\\t%q1, %q3, %z0"
    [(set_attr "type" "neon_stp_q")
!    (set_attr "fp" "yes")]
  )
  
  ;; Load pair with post-index writeback.  This is primarily used in function
  ;; epilogues.
! (define_insn "loadwb_pair<GPI:mode>_<P:mode>"
!   [(parallel
!     [(set (match_operand:P 0 "register_operand" "=k")
!           (plus:P (match_operand:P 1 "register_operand" "0")
!                   (match_operand:P 4 "aarch64_mem_pair_offset" "n")))
!      (set (match_operand:GPI 2 "register_operand" "=r")
!           (mem:GPI (match_dup 1)))
!      (set (match_operand:GPI 3 "register_operand" "=r")
!           (mem:GPI (plus:P (match_dup 1)
!                    (match_operand:P 5 "const_int_operand" "n"))))])]
!   "INTVAL (operands[5]) == GET_MODE_SIZE (<GPI:MODE>mode)"
!   "ldp\\t%<GPI:w>2, %<GPI:w>3, [%1], %4"
!   [(set_attr "type" "load_<GPI:ldpstp_sz>")]
  )
  
! (define_insn "loadwb_pair<GPF:mode>_<P:mode>"
!   [(parallel
!     [(set (match_operand:P 0 "register_operand" "=k")
!           (plus:P (match_operand:P 1 "register_operand" "0")
!                   (match_operand:P 4 "aarch64_mem_pair_offset" "n")))
!      (set (match_operand:GPF 2 "register_operand" "=w")
!           (mem:GPF (match_dup 1)))
!      (set (match_operand:GPF 3 "register_operand" "=w")
!           (mem:GPF (plus:P (match_dup 1)
!                    (match_operand:P 5 "const_int_operand" "n"))))])]
!   "INTVAL (operands[5]) == GET_MODE_SIZE (<GPF:MODE>mode)"
!   "ldp\\t%<GPF:w>2, %<GPF:w>3, [%1], %4"
!   [(set_attr "type" "neon_load1_2reg")]
  )
  
! (define_insn "loadwb_pair<TX:mode>_<P:mode>"
!   [(parallel
!     [(set (match_operand:P 0 "register_operand" "=k")
!           (plus:P (match_operand:P 1 "register_operand" "0")
!                   (match_operand:P 4 "aarch64_mem_pair_offset" "n")))
!      (set (match_operand:TX 2 "register_operand" "=w")
!           (mem:TX (match_dup 1)))
!      (set (match_operand:TX 3 "register_operand" "=w")
!           (mem:TX (plus:P (match_dup 1)
! 			  (match_operand:P 5 "const_int_operand" "n"))))])]
!   "TARGET_SIMD && INTVAL (operands[5]) == GET_MODE_SIZE (<TX:MODE>mode)"
!   "ldp\\t%q2, %q3, [%1], %4"
    [(set_attr "type" "neon_ldp_q")]
  )
  
  ;; Store pair with pre-index writeback.  This is primarily used in function
  ;; prologues.
! (define_insn "storewb_pair<GPI:mode>_<P:mode>"
!   [(parallel
!     [(set (match_operand:P 0 "register_operand" "=&k")
!           (plus:P (match_operand:P 1 "register_operand" "0")
!                   (match_operand:P 4 "aarch64_mem_pair_offset" "n")))
!      (set (mem:GPI (plus:P (match_dup 0)
!                    (match_dup 4)))
!           (match_operand:GPI 2 "register_operand" "r"))
!      (set (mem:GPI (plus:P (match_dup 0)
!                    (match_operand:P 5 "const_int_operand" "n")))
!           (match_operand:GPI 3 "register_operand" "r"))])]
!   "INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (<GPI:MODE>mode)"
!   "stp\\t%<GPI:w>2, %<GPI:w>3, [%0, %4]!"
!   [(set_attr "type" "store_<GPI:ldpstp_sz>")]
  )
  
! (define_insn "storewb_pair<GPF:mode>_<P:mode>"
!   [(parallel
!     [(set (match_operand:P 0 "register_operand" "=&k")
!           (plus:P (match_operand:P 1 "register_operand" "0")
!                   (match_operand:P 4 "aarch64_mem_pair_offset" "n")))
!      (set (mem:GPF (plus:P (match_dup 0)
!                    (match_dup 4)))
!           (match_operand:GPF 2 "register_operand" "w"))
!      (set (mem:GPF (plus:P (match_dup 0)
!                    (match_operand:P 5 "const_int_operand" "n")))
!           (match_operand:GPF 3 "register_operand" "w"))])]
!   "INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (<GPF:MODE>mode)"
!   "stp\\t%<GPF:w>2, %<GPF:w>3, [%0, %4]!"
!   [(set_attr "type" "neon_store1_2reg<q>")]
  )
  
! (define_insn "storewb_pair<TX:mode>_<P:mode>"
!   [(parallel
!     [(set (match_operand:P 0 "register_operand" "=&k")
!           (plus:P (match_operand:P 1 "register_operand" "0")
!                   (match_operand:P 4 "aarch64_mem_pair_offset" "n")))
!      (set (mem:TX (plus:P (match_dup 0)
! 			  (match_dup 4)))
!           (match_operand:TX 2 "register_operand" "w"))
!      (set (mem:TX (plus:P (match_dup 0)
! 			  (match_operand:P 5 "const_int_operand" "n")))
!           (match_operand:TX 3 "register_operand" "w"))])]
!   "TARGET_SIMD
!    && INTVAL (operands[5])
!       == INTVAL (operands[4]) + GET_MODE_SIZE (<TX:MODE>mode)"
!   "stp\\t%q2, %q3, [%0, %4]!"
    [(set_attr "type" "neon_stp_q")]
  )
  
--- 1876,2141 ----
    FAIL;
  })
  
! (define_insn "*load_pair_<ldst_sz>"
!   [(set (match_operand:GPI 0 "aarch64_ldp_reg_operand")
! 	(unspec [
! 	  (match_operand:<VPAIR> 1 "aarch64_mem_pair_lanes_operand")
! 	] UNSPEC_LDP_FST))
!    (set (match_operand:GPI 2 "aarch64_ldp_reg_operand")
! 	(unspec [
! 	  (match_dup 1)
! 	] UNSPEC_LDP_SND))]
!   ""
!   {@ [cons: =0, 1,   =2; attrs: type,	   arch]
!      [	     r, Umn,  r; load_<ldpstp_sz>, *   ] ldp\t%<w>0, %<w>2, %y1
!      [	     w, Umn,  w; neon_load1_2reg,  fp  ] ldp\t%<v>0, %<v>2, %y1
!   }
!   [(set_attr "ldpstp" "ldp")]
  )
  
! (define_insn "*load_pair_16"
!   [(set (match_operand:TI 0 "aarch64_ldp_reg_operand" "=w")
! 	(unspec [
! 	  (match_operand:V2x16QI 1 "aarch64_mem_pair_lanes_operand" "Umn")
! 	] UNSPEC_LDP_FST))
!    (set (match_operand:TI 2 "aarch64_ldp_reg_operand" "=w")
! 	(unspec [
! 	  (match_dup 1)
! 	] UNSPEC_LDP_SND))]
!   "TARGET_FLOAT"
!   "ldp\\t%q0, %q2, %y1"
    [(set_attr "type" "neon_ldp_q")
!    (set_attr "fp" "yes")
!    (set_attr "ldpstp" "ldp")]
  )
  
! (define_insn "*store_pair_<ldst_sz>"
!   [(set (match_operand:<VPAIR> 0 "aarch64_mem_pair_lanes_operand")
! 	(unspec:<VPAIR>
! 	  [(match_operand:GPI 1 "aarch64_stp_reg_operand")
! 	   (match_operand:GPI 2 "aarch64_stp_reg_operand")] UNSPEC_STP))]
!   ""
!   {@ [cons:  =0,   1,   2; attrs: type      , arch]
!      [	    Umn, rYZ, rYZ; store_<ldpstp_sz>, *   ] stp\t%<w>1, %<w>2, %y0
!      [	    Umn,   w,   w; neon_store1_2reg , fp  ] stp\t%<v>1, %<v>2, %y0
!   }
!   [(set_attr "ldpstp" "stp")]
  )
  
! (define_insn "*store_pair_16"
!   [(set (match_operand:V2x16QI 0 "aarch64_mem_pair_lanes_operand" "=Umn")
! 	(unspec:V2x16QI
! 	  [(match_operand:TI 1 "aarch64_ldp_reg_operand" "w")
! 	   (match_operand:TI 2 "aarch64_ldp_reg_operand" "w")] UNSPEC_STP))]
!   "TARGET_FLOAT"
!   "stp\t%q1, %q2, %y0"
    [(set_attr "type" "neon_stp_q")
!    (set_attr "fp" "yes")
!    (set_attr "ldpstp" "stp")]
  )
  
+ ;; Writeback load/store pair patterns.
+ ;;
+ ;; Note that modes in the patterns [SI DI TI] are used only as a proxy for their
+ ;; size; aarch64_ldp_reg_operand and aarch64_mem_pair_operator are special
+ ;; predicates which accept a wide range of operand modes, with the requirement
+ ;; that the contextual (pattern) mode is of the same size as the operand mode.
+ 
  ;; Load pair with post-index writeback.  This is primarily used in function
  ;; epilogues.
! (define_insn "*loadwb_post_pair_<ldst_sz>"
!   [(set (match_operand 0 "pmode_register_operand")
! 	(match_operator 7 "pmode_plus_operator" [
! 	  (match_operand 1 "pmode_register_operand")
! 	  (match_operand 4 "const_int_operand")]))
!    (set (match_operand:GPI 2 "aarch64_ldp_reg_operand")
! 	(match_operator 5 "memory_operand" [(match_dup 1)]))
!    (set (match_operand:GPI 3 "aarch64_ldp_reg_operand")
! 	(match_operator 6 "memory_operand" [
! 	  (match_operator 8 "pmode_plus_operator" [
! 	    (match_dup 1)
! 	    (const_int <ldst_sz>)])]))]
!   "aarch64_mem_pair_offset (operands[4], <MODE>mode)"
!   {@ [cons: =0, 1, =2, =3; attrs: type]
!      [      rk, 0,  r,  r; load_<ldpstp_sz>] ldp\t%<w>2, %<w>3, [%1], %4
!      [      rk, 0,  w,  w; neon_load1_2reg ] ldp\t%<v>2, %<v>3, [%1], %4
!   }
  )
  
! ;; q-register variant of the above
! (define_insn "*loadwb_post_pair_16"
!   [(set (match_operand 0 "pmode_register_operand" "=rk")
! 	(match_operator 7 "pmode_plus_operator" [
! 	  (match_operand 1 "pmode_register_operand" "0")
! 	  (match_operand 4 "const_int_operand")]))
!    (set (match_operand:TI 2 "aarch64_ldp_reg_operand" "=w")
! 	(match_operator 5 "memory_operand" [(match_dup 1)]))
!    (set (match_operand:TI 3 "aarch64_ldp_reg_operand" "=w")
! 	(match_operator 6 "memory_operand"
! 	  [(match_operator 8 "pmode_plus_operator" [
! 	     (match_dup 1)
! 	     (const_int 16)])]))]
!   "TARGET_FLOAT
!    && aarch64_mem_pair_offset (operands[4], TImode)"
!   "ldp\t%q2, %q3, [%1], %4"
!   [(set_attr "type" "neon_ldp_q")]
  )
  
! ;; Load pair with pre-index writeback.
! (define_insn "*loadwb_pre_pair_<ldst_sz>"
!   [(set (match_operand 0 "pmode_register_operand")
! 	(match_operator 8 "pmode_plus_operator" [
! 	  (match_operand 1 "pmode_register_operand")
! 	  (match_operand 4 "const_int_operand")]))
!    (set (match_operand:GPI 2 "aarch64_ldp_reg_operand")
! 	(match_operator 6 "memory_operand" [
! 	  (match_operator 9 "pmode_plus_operator" [
! 	    (match_dup 1)
! 	    (match_dup 4)
! 	  ])]))
!    (set (match_operand:GPI 3 "aarch64_ldp_reg_operand")
! 	(match_operator 7 "memory_operand" [
! 	  (match_operator 10 "pmode_plus_operator" [
! 	     (match_dup 1)
! 	     (match_operand 5 "const_int_operand")
! 	  ])]))]
!   "aarch64_mem_pair_offset (operands[4], <MODE>mode)
!    && known_eq (INTVAL (operands[5]),
! 		INTVAL (operands[4]) + GET_MODE_SIZE (<MODE>mode))"
!   {@ [cons: =&0, 1, =2, =3; attrs: type     ]
!      [       rk, 0,  r,  r; load_<ldpstp_sz>] ldp\t%<w>2, %<w>3, [%0, %4]!
!      [       rk, 0,  w,  w; neon_load1_2reg ] ldp\t%<v>2, %<v>3, [%0, %4]!
!   }
! )
! 
! ;; q-register variant of the above
! (define_insn "*loadwb_pre_pair_16"
!   [(set (match_operand 0 "pmode_register_operand" "=&rk")
! 	(match_operator 8 "pmode_plus_operator" [
! 	  (match_operand 1 "pmode_register_operand" "0")
! 	  (match_operand 4 "const_int_operand")]))
!    (set (match_operand:TI 2 "aarch64_ldp_reg_operand" "=w")
! 	(match_operator 6 "memory_operand" [
! 	  (match_operator 9 "pmode_plus_operator" [
! 	    (match_dup 1)
! 	    (match_dup 4)
! 	  ])]))
!    (set (match_operand:TI 3 "aarch64_ldp_reg_operand" "=w")
! 	(match_operator 7 "memory_operand" [
! 	  (match_operator 10 "pmode_plus_operator" [
! 	     (match_dup 1)
! 	     (match_operand 5 "const_int_operand")
! 	  ])]))]
!   "TARGET_FLOAT
!    && aarch64_mem_pair_offset (operands[4], TImode)
!    && known_eq (INTVAL (operands[5]), INTVAL (operands[4]) + 16)"
!   "ldp\t%q2, %q3, [%0, %4]!"
    [(set_attr "type" "neon_ldp_q")]
  )
  
  ;; Store pair with pre-index writeback.  This is primarily used in function
  ;; prologues.
! (define_insn "*storewb_pre_pair_<ldst_sz>"
!   [(set (match_operand 0 "pmode_register_operand")
! 	(match_operator 6 "pmode_plus_operator" [
! 	  (match_operand 1 "pmode_register_operand")
! 	  (match_operand 4 "const_int_operand")
! 	]))
!    (set (match_operator:GPI 7 "aarch64_mem_pair_operator" [
! 	  (match_operator 8 "pmode_plus_operator" [
! 	    (match_dup 0)
! 	    (match_dup 4)
! 	  ])])
! 	(match_operand:GPI 2 "aarch64_stp_reg_operand"))
!    (set (match_operator:GPI 9 "aarch64_mem_pair_operator" [
! 	  (match_operator 10 "pmode_plus_operator" [
! 	    (match_dup 0)
! 	    (match_operand 5 "const_int_operand")
! 	  ])])
! 	(match_operand:GPI 3 "aarch64_stp_reg_operand"))]
!   "aarch64_mem_pair_offset (operands[4], <MODE>mode)
!    && known_eq (INTVAL (operands[5]),
! 		INTVAL (operands[4]) + GET_MODE_SIZE (<MODE>mode))
!    && !reg_overlap_mentioned_p (operands[0], operands[2])
!    && !reg_overlap_mentioned_p (operands[0], operands[3])"
!   {@ [cons: =&0, 1,   2,   3; attrs: type      ]
!      [       rk, 0, rYZ, rYZ; store_<ldpstp_sz>] stp\t%<w>2, %<w>3, [%0, %4]!
!      [       rk, 0,   w,   w; neon_store1_2reg ] stp\t%<v>2, %<v>3, [%0, %4]!
!   }
  )
  
! ;; q-register variant of the above.
! (define_insn "*storewb_pre_pair_16"
!   [(set (match_operand 0 "pmode_register_operand" "=&rk")
! 	(match_operator 6 "pmode_plus_operator" [
! 	  (match_operand 1 "pmode_register_operand" "0")
! 	  (match_operand 4 "const_int_operand")
! 	]))
!    (set (match_operator:TI 7 "aarch64_mem_pair_operator" [
! 	  (match_operator 8 "pmode_plus_operator" [
! 	    (match_dup 0)
! 	    (match_dup 4)
! 	  ])])
! 	(match_operand:TI 2 "aarch64_ldp_reg_operand" "w"))
!    (set (match_operator:TI 9 "aarch64_mem_pair_operator" [
! 	  (match_operator 10 "pmode_plus_operator" [
! 	    (match_dup 0)
! 	    (match_operand 5 "const_int_operand")
! 	  ])])
! 	(match_operand:TI 3 "aarch64_ldp_reg_operand" "w"))]
!   "TARGET_FLOAT
!    && aarch64_mem_pair_offset (operands[4], TImode)
!    && known_eq (INTVAL (operands[5]), INTVAL (operands[4]) + 16)
!    && !reg_overlap_mentioned_p (operands[0], operands[2])
!    && !reg_overlap_mentioned_p (operands[0], operands[3])"
!   "stp\\t%q2, %q3, [%0, %4]!"
!   [(set_attr "type" "neon_stp_q")]
  )
  
! ;; Store pair with post-index writeback.
! (define_insn "*storewb_post_pair_<ldst_sz>"
!   [(set (match_operand 0 "pmode_register_operand")
! 	(match_operator 5 "pmode_plus_operator" [
! 	  (match_operand 1 "pmode_register_operand")
! 	  (match_operand 4 "const_int_operand")
! 	]))
!    (set (match_operator:GPI 6 "aarch64_mem_pair_operator" [(match_dup 1)])
! 	(match_operand 2 "aarch64_stp_reg_operand"))
!    (set (match_operator:GPI 7 "aarch64_mem_pair_operator" [
! 	  (match_operator 8 "pmode_plus_operator" [
! 	    (match_dup 0)
! 	    (const_int <ldst_sz>)
! 	  ])])
! 	(match_operand 3 "aarch64_stp_reg_operand"))]
!   "aarch64_mem_pair_offset (operands[4], <MODE>mode)
!    && !reg_overlap_mentioned_p (operands[0], operands[2])
!    && !reg_overlap_mentioned_p (operands[0], operands[3])"
!   {@ [cons: =0, 1,   2,   3; attrs: type      ]
!      [      rk, 0, rYZ, rYZ; store_<ldpstp_sz>] stp\t%<w>2, %<w>3, [%0], %4
!      [      rk, 0,   w,   w; neon_store1_2reg ] stp\t%<v>2, %<v>3, [%0], %4
!   }
! )
! 
! ;; Store pair with post-index writeback.
! (define_insn "*storewb_post_pair_16"
!   [(set (match_operand 0 "pmode_register_operand" "=rk")
! 	(match_operator 5 "pmode_plus_operator" [
! 	  (match_operand 1 "pmode_register_operand" "0")
! 	  (match_operand 4 "const_int_operand")
! 	]))
!    (set (match_operator:TI 6 "aarch64_mem_pair_operator" [(match_dup 1)])
! 	(match_operand:TI 2 "aarch64_ldp_reg_operand" "w"))
!    (set (match_operator:TI 7 "aarch64_mem_pair_operator" [
! 	  (match_operator 8 "pmode_plus_operator" [
! 	    (match_dup 0)
! 	    (const_int 16)
! 	  ])])
! 	(match_operand:TI 3 "aarch64_ldp_reg_operand" "w"))]
!   "TARGET_FLOAT
!    && aarch64_mem_pair_offset (operands[4], TImode)
!    && !reg_overlap_mentioned_p (operands[0], operands[2])
!    && !reg_overlap_mentioned_p (operands[0], operands[3])"
!   "stp\t%q2, %q3, [%0], %4"
    [(set_attr "type" "neon_stp_q")]
  )
  
***************
*** 1949,2005 ****
  )
  
  (define_insn "*extendsidi2_aarch64"
!   [(set (match_operand:DI 0 "register_operand" "=r,r")
!         (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "r,m")))]
    ""
!   "@
!    sxtw\t%0, %w1
!    ldrsw\t%0, %1"
!   [(set_attr "type" "extend,load_4")]
  )
  
  (define_insn "*load_pair_extendsidi2_aarch64"
    [(set (match_operand:DI 0 "register_operand" "=r")
! 	(sign_extend:DI (match_operand:SI 1 "aarch64_mem_pair_operand" "Ump")))
     (set (match_operand:DI 2 "register_operand" "=r")
! 	(sign_extend:DI (match_operand:SI 3 "memory_operand" "m")))]
!   "rtx_equal_p (XEXP (operands[3], 0),
! 		plus_constant (Pmode,
! 			       XEXP (operands[1], 0),
! 			       GET_MODE_SIZE (SImode)))"
!   "ldpsw\\t%0, %2, %z1"
    [(set_attr "type" "load_8")]
  )
  
  (define_insn "*zero_extendsidi2_aarch64"
!   [(set (match_operand:DI 0 "register_operand" "=r,r,w,w,r,w")
!         (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "r,m,r,m,w,w")))]
    ""
!   "@
!    uxtw\t%0, %w1
!    ldr\t%w0, %1
!    fmov\t%s0, %w1
!    ldr\t%s0, %1
!    fmov\t%w0, %s1
!    fmov\t%s0, %s1"
!   [(set_attr "type" "mov_reg,load_4,f_mcr,f_loads,f_mrc,fmov")
!    (set_attr "arch" "*,*,fp,fp,fp,fp")]
  )
  
  (define_insn "*load_pair_zero_extendsidi2_aarch64"
!   [(set (match_operand:DI 0 "register_operand" "=r,w")
! 	(zero_extend:DI (match_operand:SI 1 "aarch64_mem_pair_operand" "Ump,Ump")))
!    (set (match_operand:DI 2 "register_operand" "=r,w")
! 	(zero_extend:DI (match_operand:SI 3 "memory_operand" "m,m")))]
!   "rtx_equal_p (XEXP (operands[3], 0),
! 		plus_constant (Pmode,
! 			       XEXP (operands[1], 0),
! 			       GET_MODE_SIZE (SImode)))"
!   "@
!    ldp\t%w0, %w2, %z1
!    ldp\t%s0, %s2, %z1"
!   [(set_attr "type" "load_8,neon_load1_2reg")
!    (set_attr "arch" "*,fp")]
  )
  
  (define_expand "<ANY_EXTEND:optab><SHORT:mode><GPI:mode>2"
--- 2150,2206 ----
  )
  
  (define_insn "*extendsidi2_aarch64"
!   [(set (match_operand:DI 0 "register_operand")
!         (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand")))]
    ""
!   {@ [ cons: =0 , 1 ; attrs: type ]
!      [ r        , r ; extend      ] sxtw\t%0, %w1
!      [ r        , m ; load_4      ] ldrsw\t%0, %1
!   }
  )
  
  (define_insn "*load_pair_extendsidi2_aarch64"
    [(set (match_operand:DI 0 "register_operand" "=r")
! 	(sign_extend:DI (unspec:SI [
! 	  (match_operand:V2x4QI 1 "aarch64_mem_pair_lanes_operand" "Umn")
! 	] UNSPEC_LDP_FST)))
     (set (match_operand:DI 2 "register_operand" "=r")
! 	(sign_extend:DI (unspec:SI [
! 	  (match_dup 1)
! 	] UNSPEC_LDP_SND)))]
!   ""
!   "ldpsw\\t%0, %2, %y1"
    [(set_attr "type" "load_8")]
  )
  
  (define_insn "*zero_extendsidi2_aarch64"
!   [(set (match_operand:DI 0 "register_operand")
!         (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand")))]
    ""
!   {@ [ cons: =0 , 1 ; attrs: type , arch ]
!      [ r        , r ; mov_reg     , *    ] uxtw\t%0, %w1
!      [ r        , m ; load_4      , *    ] ldr\t%w0, %1
!      [ w        , r ; f_mcr       , fp   ] fmov\t%s0, %w1
!      [ w        , m ; f_loads     , fp   ] ldr\t%s0, %1
!      [ r        , w ; f_mrc       , fp   ] fmov\t%w0, %s1
!      [ w        , w ; fmov        , fp   ] fmov\t%s0, %s1
!   }
  )
  
  (define_insn "*load_pair_zero_extendsidi2_aarch64"
!   [(set (match_operand:DI 0 "register_operand")
! 	(zero_extend:DI (unspec:SI [
! 	  (match_operand:V2x4QI 1 "aarch64_mem_pair_lanes_operand")
! 	] UNSPEC_LDP_FST)))
!    (set (match_operand:DI 2 "register_operand")
! 	(zero_extend:DI (unspec:SI [
! 	  (match_dup 1)
! 	] UNSPEC_LDP_SND)))]
!   ""
!   {@ [ cons: =0 , 1   , =2; attrs: type    , arch]
!      [ r	, Umn , r ; load_8	   , *   ] ldp\t%w0, %w2, %y1
!      [ w	, Umn , w ; neon_load1_2reg, fp  ] ldp\t%s0, %s2, %y1
!   }
  )
  
  (define_expand "<ANY_EXTEND:optab><SHORT:mode><GPI:mode>2"
***************
*** 2009,2036 ****
  )
  
  (define_insn "*extend<SHORT:mode><GPI:mode>2_aarch64"
!   [(set (match_operand:GPI 0 "register_operand" "=r,r,r")
!         (sign_extend:GPI (match_operand:SHORT 1 "nonimmediate_operand" "r,m,w")))]
    ""
!   "@
!    sxt<SHORT:size>\t%<GPI:w>0, %w1
!    ldrs<SHORT:size>\t%<GPI:w>0, %1
!    smov\t%<GPI:w>0, %1.<SHORT:size>[0]"
!   [(set_attr "type" "extend,load_4,neon_to_gp")
!    (set_attr "arch" "*,*,fp")]
  )
  
  (define_insn "*zero_extend<SHORT:mode><GPI:mode>2_aarch64"
!   [(set (match_operand:GPI 0 "register_operand" "=r,r,w,r")
!         (zero_extend:GPI (match_operand:SHORT 1 "nonimmediate_operand" "r,m,m,w")))]
    ""
!   "@
!    and\t%<GPI:w>0, %<GPI:w>1, <SHORT:short_mask>
!    ldr<SHORT:size>\t%w0, %1
!    ldr\t%<SHORT:size>0, %1
!    umov\t%w0, %1.<SHORT:size>[0]"
!   [(set_attr "type" "logic_imm,load_4,f_loads,neon_to_gp")
!    (set_attr "arch" "*,*,fp,fp")]
  )
  
  (define_expand "<optab>qihi2"
--- 2210,2235 ----
  )
  
  (define_insn "*extend<SHORT:mode><GPI:mode>2_aarch64"
!   [(set (match_operand:GPI 0 "register_operand")
!         (sign_extend:GPI (match_operand:SHORT 1 "nonimmediate_operand")))]
    ""
!   {@ [ cons: =0 , 1 ; attrs: type , arch ]
!      [ r        , r ; extend      , *    ] sxt<SHORT:size>\t%<GPI:w>0, %w1
!      [ r        , m ; load_4      , *    ] ldrs<SHORT:size>\t%<GPI:w>0, %1
!      [ r        , w ; neon_to_gp  , fp   ] smov\t%<GPI:w>0, %1.<SHORT:size>[0]
!   }
  )
  
  (define_insn "*zero_extend<SHORT:mode><GPI:mode>2_aarch64"
!   [(set (match_operand:GPI 0 "register_operand")
!         (zero_extend:GPI (match_operand:SHORT 1 "nonimmediate_operand")))]
    ""
!   {@ [ cons: =0 , 1 ; attrs: type , arch ]
!      [ r        , r ; logic_imm   , *    ] and\t%<GPI:w>0, %<GPI:w>1, <SHORT:short_mask>
!      [ r        , m ; load_4      , *    ] ldr<SHORT:size>\t%w0, %1
!      [ w        , m ; f_loads     , fp   ] ldr\t%<SHORT:size>0, %1
!      [ r        , w ; neon_to_gp  , fp   ] umov\t%w0, %1.<SHORT:size>[0]
!   }
  )
  
  (define_expand "<optab>qihi2"
***************
*** 2040,2062 ****
  )
  
  (define_insn "*extendqihi2_aarch64"
!   [(set (match_operand:HI 0 "register_operand" "=r,r")
! 	(sign_extend:HI (match_operand:QI 1 "nonimmediate_operand" "r,m")))]
    ""
!   "@
!    sxtb\t%w0, %w1
!    ldrsb\t%w0, %1"
!   [(set_attr "type" "extend,load_4")]
  )
  
  (define_insn "*zero_extendqihi2_aarch64"
!   [(set (match_operand:HI 0 "register_operand" "=r,r")
! 	(zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "r,m")))]
    ""
!   "@
!    and\t%w0, %w1, 255
!    ldrb\t%w0, %1"
!   [(set_attr "type" "logic_imm,load_4")]
  )
  
  ;; -------------------------------------------------------------------
--- 2239,2261 ----
  )
  
  (define_insn "*extendqihi2_aarch64"
!   [(set (match_operand:HI 0 "register_operand")
! 	(sign_extend:HI (match_operand:QI 1 "nonimmediate_operand")))]
    ""
!   {@ [ cons: =0 , 1 ; attrs: type ]
!      [ r        , r ; extend      ] sxtb\t%w0, %w1
!      [ r        , m ; load_4      ] ldrsb\t%w0, %1
!   }
  )
  
  (define_insn "*zero_extendqihi2_aarch64"
!   [(set (match_operand:HI 0 "register_operand")
! 	(zero_extend:HI (match_operand:QI 1 "nonimmediate_operand")))]
    ""
!   {@ [ cons: =0 , 1 ; attrs: type ]
!      [ r        , r ; logic_imm   ] and\t%w0, %w1, 255
!      [ r        , m ; load_4      ] ldrb\t%w0, %1
!   }
  )
  
  ;; -------------------------------------------------------------------
***************
*** 2102,2139 ****
  
  (define_insn "*add<mode>3_aarch64"
    [(set
!     (match_operand:GPI 0 "register_operand" "=rk,rk,w,rk,r,r,rk")
      (plus:GPI
!      (match_operand:GPI 1 "register_operand" "%rk,rk,w,rk,rk,0,rk")
!      (match_operand:GPI 2 "aarch64_pluslong_operand" "I,r,w,J,Uaa,Uai,Uav")))]
    ""
!   "@
!   add\\t%<w>0, %<w>1, %2
!   add\\t%<w>0, %<w>1, %<w>2
!   add\\t%<rtn>0<vas>, %<rtn>1<vas>, %<rtn>2<vas>
!   sub\\t%<w>0, %<w>1, #%n2
!   #
!   * return aarch64_output_sve_scalar_inc_dec (operands[2]);
!   * return aarch64_output_sve_addvl_addpl (operands[2]);"
    ;; The "alu_imm" types for INC/DEC and ADDVL/ADDPL are just placeholders.
-   [(set_attr "type" "alu_imm,alu_sreg,neon_add,alu_imm,multiple,alu_imm,alu_imm")
-    (set_attr "arch" "*,*,simd,*,*,sve,sve")]
  )
  
  ;; zero_extend version of above
  (define_insn "*addsi3_aarch64_uxtw"
    [(set
!     (match_operand:DI 0 "register_operand" "=rk,rk,rk,r")
      (zero_extend:DI
!      (plus:SI (match_operand:SI 1 "register_operand" "%rk,rk,rk,rk")
! 	      (match_operand:SI 2 "aarch64_pluslong_operand" "I,r,J,Uaa"))))]
    ""
!   "@
!   add\\t%w0, %w1, %2
!   add\\t%w0, %w1, %w2
!   sub\\t%w0, %w1, #%n2
!   #"
!   [(set_attr "type" "alu_imm,alu_sreg,alu_imm,multiple")]
  )
  
  ;; If there's a free register, and we can load the constant with a
--- 2301,2338 ----
  
  (define_insn "*add<mode>3_aarch64"
    [(set
!     (match_operand:GPI 0 "register_operand")
      (plus:GPI
!      (match_operand:GPI 1 "register_operand")
!      (match_operand:GPI 2 "aarch64_pluslong_operand")))]
    ""
!   {@ [ cons: =0 , 1   , 2   ; attrs: type , arch  ]
!      [ rk       , %rk , I   ; alu_imm     , *     ] add\t%<w>0, %<w>1, %2
!      [ rk       , rk  , r   ; alu_sreg    , *     ] add\t%<w>0, %<w>1, %<w>2
!      [ w        , w   , w   ; neon_add    , simd  ] add\t%<rtn>0<vas>, %<rtn>1<vas>, %<rtn>2<vas>
!      [ rk       , rk  , J   ; alu_imm     , *     ] sub\t%<w>0, %<w>1, #%n2
!      [ r        , rk  , Uaa ; multiple    , *     ] #
!      [ r        , 0   , Uai ; alu_imm     , sve   ] << aarch64_output_sve_scalar_inc_dec (operands[2]);
!      [ rk       , rk  , Uav ; alu_imm     , sve   ] << aarch64_output_sve_addvl_addpl (operands[2]);
!      [ rk       , rk  , UaV ; alu_imm     , sme   ] << aarch64_output_addsvl_addspl (operands[2]);
!   }
    ;; The "alu_imm" types for INC/DEC and ADDVL/ADDPL are just placeholders.
  )
  
  ;; zero_extend version of above
  (define_insn "*addsi3_aarch64_uxtw"
    [(set
!     (match_operand:DI 0 "register_operand")
      (zero_extend:DI
!      (plus:SI (match_operand:SI 1 "register_operand")
! 	      (match_operand:SI 2 "aarch64_pluslong_operand"))))]
    ""
!   {@ [ cons: =0 , 1   , 2   ; attrs: type ]
!      [ rk       , %rk , I   ; alu_imm     ] add\t%w0, %w1, %2
!      [ rk       , rk  , r   ; alu_sreg    ] add\t%w0, %w1, %w2
!      [ rk       , rk  , J   ; alu_imm     ] sub\t%w0, %w1, #%n2
!      [ r        , rk  , Uaa ; multiple    ] #
!   }
  )
  
  ;; If there's a free register, and we can load the constant with a
***************
*** 2196,2214 ****
  ;; this pattern.
  (define_insn_and_split "*add<mode>3_poly_1"
    [(set
!     (match_operand:GPI 0 "register_operand" "=r,r,r,r,r,r,&r")
      (plus:GPI
!      (match_operand:GPI 1 "register_operand" "%rk,rk,rk,rk,0,rk,rk")
!      (match_operand:GPI 2 "aarch64_pluslong_or_poly_operand" "I,r,J,Uaa,Uai,Uav,Uat")))]
    "TARGET_SVE && operands[0] != stack_pointer_rtx"
!   "@
!   add\\t%<w>0, %<w>1, %2
!   add\\t%<w>0, %<w>1, %<w>2
!   sub\\t%<w>0, %<w>1, #%n2
!   #
!   * return aarch64_output_sve_scalar_inc_dec (operands[2]);
!   * return aarch64_output_sve_addvl_addpl (operands[2]);
!   #"
    "&& epilogue_completed
     && !reg_overlap_mentioned_p (operands[0], operands[1])
     && aarch64_split_add_offset_immediate (operands[2], <MODE>mode)"
--- 2395,2414 ----
  ;; this pattern.
  (define_insn_and_split "*add<mode>3_poly_1"
    [(set
!     (match_operand:GPI 0 "register_operand")
      (plus:GPI
!      (match_operand:GPI 1 "register_operand")
!      (match_operand:GPI 2 "aarch64_pluslong_or_poly_operand")))]
    "TARGET_SVE && operands[0] != stack_pointer_rtx"
!   {@ [ cons: =0 , 1   , 2   ; attrs: type ]
!      [ r        , %rk , I   ; alu_imm     ] add\t%<w>0, %<w>1, %2
!      [ r        , rk  , r   ; alu_sreg    ] add\t%<w>0, %<w>1, %<w>2
!      [ r        , rk  , J   ; alu_imm     ] sub\t%<w>0, %<w>1, #%n2
!      [ r        , rk  , Uaa ; multiple    ] #
!      [ r        , 0   , Uai ; alu_imm     ] << aarch64_output_sve_scalar_inc_dec (operands[2]);
!      [ r        , rk  , Uav ; alu_imm     ] << aarch64_output_sve_addvl_addpl (operands[2]);
!      [ &r       , rk  , Uat ; multiple    ] #
!   }
    "&& epilogue_completed
     && !reg_overlap_mentioned_p (operands[0], operands[1])
     && aarch64_split_add_offset_immediate (operands[2], <MODE>mode)"
***************
*** 2219,2225 ****
      DONE;
    }
    ;; The "alu_imm" types for INC/DEC and ADDVL/ADDPL are just placeholders.
-   [(set_attr "type" "alu_imm,alu_sreg,alu_imm,multiple,alu_imm,alu_imm,multiple")]
  )
  
  (define_split
--- 2419,2424 ----
***************
*** 2374,2455 ****
  (define_insn "add<mode>3_compare0"
    [(set (reg:CC_NZ CC_REGNUM)
  	(compare:CC_NZ
! 	 (plus:GPI (match_operand:GPI 1 "register_operand" "%rk,rk,rk")
! 		   (match_operand:GPI 2 "aarch64_plus_operand" "r,I,J"))
  	 (const_int 0)))
!    (set (match_operand:GPI 0 "register_operand" "=r,r,r")
  	(plus:GPI (match_dup 1) (match_dup 2)))]
    ""
!   "@
!   adds\\t%<w>0, %<w>1, %<w>2
!   adds\\t%<w>0, %<w>1, %2
!   subs\\t%<w>0, %<w>1, #%n2"
!   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
  )
  
  ;; zero_extend version of above
  (define_insn "*addsi3_compare0_uxtw"
    [(set (reg:CC_NZ CC_REGNUM)
  	(compare:CC_NZ
! 	 (plus:SI (match_operand:SI 1 "register_operand" "%rk,rk,rk")
! 		  (match_operand:SI 2 "aarch64_plus_operand" "r,I,J"))
  	 (const_int 0)))
!    (set (match_operand:DI 0 "register_operand" "=r,r,r")
  	(zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
    ""
!   "@
!   adds\\t%w0, %w1, %w2
!   adds\\t%w0, %w1, %2
!   subs\\t%w0, %w1, #%n2"
!   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
  )
  
  (define_insn "*add<mode>3_compareC_cconly"
    [(set (reg:CC_C CC_REGNUM)
  	(compare:CC_C
  	  (plus:GPI
! 	    (match_operand:GPI 0 "register_operand" "r,r,r")
! 	    (match_operand:GPI 1 "aarch64_plus_operand" "r,I,J"))
  	  (match_dup 0)))]
    ""
!   "@
!   cmn\\t%<w>0, %<w>1
!   cmn\\t%<w>0, %1
!   cmp\\t%<w>0, #%n1"
!   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
  )
  
  (define_insn "add<mode>3_compareC"
    [(set (reg:CC_C CC_REGNUM)
  	(compare:CC_C
  	  (plus:GPI
! 	    (match_operand:GPI 1 "register_operand" "rk,rk,rk")
! 	    (match_operand:GPI 2 "aarch64_plus_operand" "r,I,J"))
  	  (match_dup 1)))
!    (set (match_operand:GPI 0 "register_operand" "=r,r,r")
  	(plus:GPI (match_dup 1) (match_dup 2)))]
    ""
!   "@
!   adds\\t%<w>0, %<w>1, %<w>2
!   adds\\t%<w>0, %<w>1, %2
!   subs\\t%<w>0, %<w>1, #%n2"
!   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
  )
  
  (define_insn "*add<mode>3_compareV_cconly_imm"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	  (plus:<DWI>
! 	    (sign_extend:<DWI> (match_operand:GPI 0 "register_operand" "r,r"))
! 	    (match_operand:<DWI> 1 "const_scalar_int_operand" ""))
  	  (sign_extend:<DWI>
  	   (plus:GPI
  	    (match_dup 0)
! 	    (match_operand:GPI 2 "aarch64_plus_immediate" "I,J")))))]
    "INTVAL (operands[1]) == INTVAL (operands[2])"
!   "@
!   cmn\\t%<w>0, %<w>1
!   cmp\\t%<w>0, #%n1"
    [(set_attr "type" "alus_imm")]
  )
  
--- 2573,2655 ----
  (define_insn "add<mode>3_compare0"
    [(set (reg:CC_NZ CC_REGNUM)
  	(compare:CC_NZ
! 	 (plus:GPI (match_operand:GPI 1 "register_operand")
! 		   (match_operand:GPI 2 "aarch64_plus_operand"))
  	 (const_int 0)))
!    (set (match_operand:GPI 0 "register_operand")
  	(plus:GPI (match_dup 1) (match_dup 2)))]
    ""
!   {@ [ cons: =0 , 1   , 2 ; attrs: type ]
!      [ r        , %rk , r ; alus_sreg   ] adds\t%<w>0, %<w>1, %<w>2
!      [ r        , rk  , I ; alus_imm    ] adds\t%<w>0, %<w>1, %2
!      [ r        , rk  , J ; alus_imm    ] subs\t%<w>0, %<w>1, #%n2
!   }
  )
  
  ;; zero_extend version of above
  (define_insn "*addsi3_compare0_uxtw"
    [(set (reg:CC_NZ CC_REGNUM)
  	(compare:CC_NZ
! 	 (plus:SI (match_operand:SI 1 "register_operand")
! 		  (match_operand:SI 2 "aarch64_plus_operand"))
  	 (const_int 0)))
!    (set (match_operand:DI 0 "register_operand")
  	(zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
    ""
!   {@ [ cons: =0 , 1   , 2 ; attrs: type ]
!      [ r        , %rk , r ; alus_sreg   ] adds\t%w0, %w1, %w2
!      [ r        , rk  , I ; alus_imm    ] adds\t%w0, %w1, %2
!      [ r        , rk  , J ; alus_imm    ] subs\t%w0, %w1, #%n2
!   }
  )
  
  (define_insn "*add<mode>3_compareC_cconly"
    [(set (reg:CC_C CC_REGNUM)
  	(compare:CC_C
  	  (plus:GPI
! 	    (match_operand:GPI 0 "register_operand")
! 	    (match_operand:GPI 1 "aarch64_plus_operand"))
  	  (match_dup 0)))]
    ""
!   {@ [ cons: 0 , 1 ; attrs: type ]
!      [ r       , r ; alus_sreg   ] cmn\t%<w>0, %<w>1
!      [ r       , I ; alus_imm    ] cmn\t%<w>0, %1
!      [ r       , J ; alus_imm    ] cmp\t%<w>0, #%n1
!   }
  )
  
  (define_insn "add<mode>3_compareC"
    [(set (reg:CC_C CC_REGNUM)
  	(compare:CC_C
  	  (plus:GPI
! 	    (match_operand:GPI 1 "register_operand")
! 	    (match_operand:GPI 2 "aarch64_plus_operand"))
  	  (match_dup 1)))
!    (set (match_operand:GPI 0 "register_operand")
  	(plus:GPI (match_dup 1) (match_dup 2)))]
    ""
!   {@ [ cons: =0 , 1  , 2 ; attrs: type ]
!      [ r        , rk , r ; alus_sreg   ] adds\t%<w>0, %<w>1, %<w>2
!      [ r        , rk , I ; alus_imm    ] adds\t%<w>0, %<w>1, %2
!      [ r        , rk , J ; alus_imm    ] subs\t%<w>0, %<w>1, #%n2
!   }
  )
  
  (define_insn "*add<mode>3_compareV_cconly_imm"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	  (plus:<DWI>
! 	    (sign_extend:<DWI> (match_operand:GPI 0 "register_operand"))
! 	    (match_operand:<DWI> 1 "const_scalar_int_operand"))
  	  (sign_extend:<DWI>
  	   (plus:GPI
  	    (match_dup 0)
! 	    (match_operand:GPI 2 "aarch64_plus_immediate")))))]
    "INTVAL (operands[1]) == INTVAL (operands[2])"
!   {@ [ cons: 0 , 2  ]
!      [ r       , I  ] cmn\t%<w>0, %<w>1
!      [ r       , J  ] cmp\t%<w>0, #%n1
!   }
    [(set_attr "type" "alus_imm")]
  )
  
***************
*** 2470,2486 ****
  	(compare:CC_V
  	  (plus:<DWI>
  	    (sign_extend:<DWI>
! 	      (match_operand:GPI 1 "register_operand" "rk,rk"))
! 	    (match_operand:GPI 2 "aarch64_plus_immediate" "I,J"))
  	  (sign_extend:<DWI>
  	    (plus:GPI (match_dup 1) (match_dup 2)))))
!    (set (match_operand:GPI 0 "register_operand" "=r,r")
  	(plus:GPI (match_dup 1) (match_dup 2)))]
     ""
!    "@
!    adds\\t%<w>0, %<w>1, %<w>2
!    subs\\t%<w>0, %<w>1, #%n2"
!   [(set_attr "type" "alus_imm,alus_imm")]
  )
  
  (define_insn "add<mode>3_compareV"
--- 2670,2686 ----
  	(compare:CC_V
  	  (plus:<DWI>
  	    (sign_extend:<DWI>
! 	      (match_operand:GPI 1 "register_operand"))
! 	    (match_operand:GPI 2 "aarch64_plus_immediate"))
  	  (sign_extend:<DWI>
  	    (plus:GPI (match_dup 1) (match_dup 2)))))
!    (set (match_operand:GPI 0 "register_operand")
  	(plus:GPI (match_dup 1) (match_dup 2)))]
     ""
!    {@ [ cons: =0 , 1  , 2 ; attrs: type ]
!       [ r        , rk , I ; alus_imm    ] adds\t%<w>0, %<w>1, %<w>2
!       [ r        , rk , J ; alus_imm    ] subs\t%<w>0, %<w>1, #%n2
!   }
  )
  
  (define_insn "add<mode>3_compareV"
***************
*** 2596,2610 ****
  (define_insn "*add<mode>3nr_compare0"
    [(set (reg:CC_NZ CC_REGNUM)
  	(compare:CC_NZ
! 	 (plus:GPI (match_operand:GPI 0 "register_operand" "%r,r,r")
! 		   (match_operand:GPI 1 "aarch64_plus_operand" "r,I,J"))
  	 (const_int 0)))]
    ""
!   "@
!   cmn\\t%<w>0, %<w>1
!   cmn\\t%<w>0, %1
!   cmp\\t%<w>0, #%n1"
!   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
  )
  
  (define_insn "aarch64_sub<mode>_compare0"
--- 2796,2810 ----
  (define_insn "*add<mode>3nr_compare0"
    [(set (reg:CC_NZ CC_REGNUM)
  	(compare:CC_NZ
! 	 (plus:GPI (match_operand:GPI 0 "register_operand")
! 		   (match_operand:GPI 1 "aarch64_plus_operand"))
  	 (const_int 0)))]
    ""
!   {@ [ cons: 0 , 1 ; attrs: type ]
!      [ %r      , r ; alus_sreg   ] cmn\t%<w>0, %<w>1
!      [ r       , I ; alus_imm    ] cmn\t%<w>0, %1
!      [ r       , J ; alus_imm    ] cmp\t%<w>0, #%n1
!   }
  )
  
  (define_insn "aarch64_sub<mode>_compare0"
***************
*** 2916,2930 ****
  )
  
  (define_insn "subdi3"
!   [(set (match_operand:DI 0 "register_operand" "=rk,w")
! 	(minus:DI (match_operand:DI 1 "register_operand" "rk,w")
! 		  (match_operand:DI 2 "register_operand" "r,w")))]
    ""
!   "@
!    sub\\t%x0, %x1, %x2
!    sub\\t%d0, %d1, %d2"
!   [(set_attr "type" "alu_sreg, neon_sub")
!    (set_attr "arch" "*,simd")]
  )
  
  (define_expand "subv<GPI:mode>4"
--- 3116,3129 ----
  )
  
  (define_insn "subdi3"
!   [(set (match_operand:DI 0 "register_operand")
! 	(minus:DI (match_operand:DI 1 "register_operand")
! 		  (match_operand:DI 2 "register_operand")))]
    ""
!   {@ [ cons: =0 , 1  , 2 ; attrs: type , arch  ]
!      [ rk       , rk , r ; alu_sreg    , *     ] sub\t%x0, %x1, %x2
!      [ w        , w  , w ; neon_sub    , simd  ] sub\t%d0, %d1, %d2
!   }
  )
  
  (define_expand "subv<GPI:mode>4"
***************
*** 2964,2979 ****
  	(compare:CC_V
  	 (sign_extend:<DWI>
  	  (minus:GPI
! 	   (match_operand:GPI 1 "register_operand" "rk,rk")
! 	   (match_operand:GPI 2 "aarch64_plus_immediate" "I,J")))
  	 (minus:<DWI> (sign_extend:<DWI> (match_dup 1))
  		      (match_dup 2))))
!    (set (match_operand:GPI 0 "register_operand" "=r,r")
  	(minus:GPI (match_dup 1) (match_dup 2)))]
    ""
!   "@
!    subs\\t%<w>0, %<w>1, %2
!    adds\\t%<w>0, %<w>1, #%n2"
    [(set_attr "type" "alus_sreg")]
  )
  
--- 3163,3179 ----
  	(compare:CC_V
  	 (sign_extend:<DWI>
  	  (minus:GPI
! 	   (match_operand:GPI 1 "register_operand")
! 	   (match_operand:GPI 2 "aarch64_plus_immediate")))
  	 (minus:<DWI> (sign_extend:<DWI> (match_dup 1))
  		      (match_dup 2))))
!    (set (match_operand:GPI 0 "register_operand")
  	(minus:GPI (match_dup 1) (match_dup 2)))]
    ""
!   {@ [ cons: =0 , 1  , 2  ]
!      [ r        , rk , I  ] subs\t%<w>0, %<w>1, %2
!      [ r        , rk , J  ] adds\t%<w>0, %<w>1, #%n2
!   }
    [(set_attr "type" "alus_sreg")]
  )
  
***************
*** 3018,3032 ****
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (sign_extend:<DWI>
! 	  (minus:GPI (match_operand:GPI 0 "register_operand" "r,r,r")
! 		     (match_operand:GPI 1 "aarch64_plus_operand" "r,I,J")))
  	 (minus:<DWI> (sign_extend:<DWI> (match_dup 0))
  		    (sign_extend:<DWI> (match_dup 1)))))]
    ""
!   "@
!    cmp\\t%<w>0, %<w>1
!    cmp\\t%<w>0, %1
!    cmp\\t%<w>0, #%n1"
    [(set_attr "type" "alus_sreg")]
  )
  
--- 3218,3233 ----
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (sign_extend:<DWI>
! 	  (minus:GPI (match_operand:GPI 0 "register_operand")
! 		     (match_operand:GPI 1 "aarch64_plus_operand")))
  	 (minus:<DWI> (sign_extend:<DWI> (match_dup 0))
  		    (sign_extend:<DWI> (match_dup 1)))))]
    ""
!   {@ [ cons: 0 , 1  ]
!      [ r       , r  ] cmp\t%<w>0, %<w>1
!      [ r       , I  ] cmp\t%<w>0, %1
!      [ r       , J  ] cmp\t%<w>0, #%n1
!   }
    [(set_attr "type" "alus_sreg")]
  )
  
***************
*** 3173,3188 ****
  (define_insn "sub<mode>3_compare1_imm"
    [(set (reg:CC CC_REGNUM)
  	(compare:CC
! 	  (match_operand:GPI 1 "register_operand" "rk,rk")
! 	  (match_operand:GPI 2 "aarch64_plus_immediate" "I,J")))
!    (set (match_operand:GPI 0 "register_operand" "=r,r")
  	(plus:GPI
  	  (match_dup 1)
! 	  (match_operand:GPI 3 "aarch64_plus_immediate" "J,I")))]
    "UINTVAL (operands[2]) == -UINTVAL (operands[3])"
!   "@
!   subs\\t%<w>0, %<w>1, %2
!   adds\\t%<w>0, %<w>1, #%n2"
    [(set_attr "type" "alus_imm")]
  )
  
--- 3374,3390 ----
  (define_insn "sub<mode>3_compare1_imm"
    [(set (reg:CC CC_REGNUM)
  	(compare:CC
! 	  (match_operand:GPI 1 "register_operand")
! 	  (match_operand:GPI 2 "aarch64_plus_immediate")))
!    (set (match_operand:GPI 0 "register_operand")
  	(plus:GPI
  	  (match_dup 1)
! 	  (match_operand:GPI 3 "aarch64_plus_immediate")))]
    "UINTVAL (operands[2]) == -UINTVAL (operands[3])"
!   {@ [ cons: =0 , 1  , 2 , 3  ]
!      [ r        , rk , I , J  ] subs\t%<w>0, %<w>1, %2
!      [ r        , rk , J , I  ] adds\t%<w>0, %<w>1, #%n2
!   }
    [(set_attr "type" "alus_imm")]
  )
  
***************
*** 3623,3636 ****
  )
  
  (define_insn "neg<mode>2"
!   [(set (match_operand:GPI 0 "register_operand" "=r,w")
! 	(neg:GPI (match_operand:GPI 1 "register_operand" "r,w")))]
    ""
!   "@
!    neg\\t%<w>0, %<w>1
!    neg\\t%<rtn>0<vas>, %<rtn>1<vas>"
!   [(set_attr "type" "alu_sreg, neon_neg<q>")
!    (set_attr "arch" "*,simd")]
  )
  
  ;; zero_extend version of above
--- 3825,3837 ----
  )
  
  (define_insn "neg<mode>2"
!   [(set (match_operand:GPI 0 "register_operand")
! 	(neg:GPI (match_operand:GPI 1 "register_operand")))]
    ""
!   {@ [ cons: =0 , 1 ; attrs: type , arch  ]
!      [ r        , r ; alu_sreg    , *     ] neg\t%<w>0, %<w>1
!      [ w        , w ; neon_neg<q> , simd  ] neg\t%<rtn>0<vas>, %<rtn>1<vas>
!   }
  )
  
  ;; zero_extend version of above
***************
*** 3945,3979 ****
  
  (define_insn "cmp<mode>"
    [(set (reg:CC CC_REGNUM)
! 	(compare:CC (match_operand:GPI 0 "register_operand" "rk,rk,rk")
! 		    (match_operand:GPI 1 "aarch64_plus_operand" "r,I,J")))]
    ""
!   "@
!    cmp\\t%<w>0, %<w>1
!    cmp\\t%<w>0, %1
!    cmn\\t%<w>0, #%n1"
!   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
  )
  
  (define_insn "fcmp<mode>"
    [(set (reg:CCFP CC_REGNUM)
!         (compare:CCFP (match_operand:GPF 0 "register_operand" "w,w")
! 		      (match_operand:GPF 1 "aarch64_fp_compare_operand" "Y,w")))]
     "TARGET_FLOAT"
!    "@
!     fcmp\\t%<s>0, #0.0
!     fcmp\\t%<s>0, %<s>1"
    [(set_attr "type" "fcmp<s>")]
  )
  
  (define_insn "fcmpe<mode>"
    [(set (reg:CCFPE CC_REGNUM)
!         (compare:CCFPE (match_operand:GPF 0 "register_operand" "w,w")
! 		       (match_operand:GPF 1 "aarch64_fp_compare_operand" "Y,w")))]
     "TARGET_FLOAT"
!    "@
!     fcmpe\\t%<s>0, #0.0
!     fcmpe\\t%<s>0, %<s>1"
    [(set_attr "type" "fcmp<s>")]
  )
  
--- 4146,4182 ----
  
  (define_insn "cmp<mode>"
    [(set (reg:CC CC_REGNUM)
! 	(compare:CC (match_operand:GPI 0 "register_operand")
! 		    (match_operand:GPI 1 "aarch64_plus_operand")))]
    ""
!   {@ [ cons: 0 , 1 ; attrs: type ]
!      [ rk      , r ; alus_sreg   ] cmp\t%<w>0, %<w>1
!      [ rk      , I ; alus_imm    ] cmp\t%<w>0, %1
!      [ rk      , J ; alus_imm    ] cmn\t%<w>0, #%n1
!   }
  )
  
  (define_insn "fcmp<mode>"
    [(set (reg:CCFP CC_REGNUM)
!         (compare:CCFP (match_operand:GPF 0 "register_operand")
! 		      (match_operand:GPF 1 "aarch64_fp_compare_operand")))]
     "TARGET_FLOAT"
!    {@ [ cons: 0 , 1  ]
!       [ w       , Y  ] fcmp\t%<s>0, #0.0
!       [ w       , w  ] fcmp\t%<s>0, %<s>1
!   }
    [(set_attr "type" "fcmp<s>")]
  )
  
  (define_insn "fcmpe<mode>"
    [(set (reg:CCFPE CC_REGNUM)
!         (compare:CCFPE (match_operand:GPF 0 "register_operand")
! 		       (match_operand:GPF 1 "aarch64_fp_compare_operand")))]
     "TARGET_FLOAT"
!    {@ [ cons: 0 , 1  ]
!       [ w       , Y  ] fcmpe\t%<s>0, #0.0
!       [ w       , w  ] fcmpe\t%<s>0, %<s>1
!   }
    [(set_attr "type" "fcmp<s>")]
  )
  
***************
*** 4160,4206 ****
  )
  
  (define_insn "*cmov<mode>_insn"
!   [(set (match_operand:ALLI 0 "register_operand" "=r,r,r,r,r,r,r")
  	(if_then_else:ALLI
  	 (match_operator 1 "aarch64_comparison_operator"
! 	  [(match_operand 2 "cc_register" "") (const_int 0)])
! 	 (match_operand:ALLI 3 "aarch64_reg_zero_or_m1_or_1" "rZ,rZ,UsM,rZ,Ui1,UsM,Ui1")
! 	 (match_operand:ALLI 4 "aarch64_reg_zero_or_m1_or_1" "rZ,UsM,rZ,Ui1,rZ,UsM,Ui1")))]
    "!((operands[3] == const1_rtx && operands[4] == constm1_rtx)
       || (operands[3] == constm1_rtx && operands[4] == const1_rtx))"
    ;; Final two alternatives should be unreachable, but included for completeness
!   "@
!    csel\\t%<w>0, %<w>3, %<w>4, %m1
!    csinv\\t%<w>0, %<w>3, <w>zr, %m1
!    csinv\\t%<w>0, %<w>4, <w>zr, %M1
!    csinc\\t%<w>0, %<w>3, <w>zr, %m1
!    csinc\\t%<w>0, %<w>4, <w>zr, %M1
!    mov\\t%<w>0, -1
!    mov\\t%<w>0, 1"
!   [(set_attr "type" "csel, csel, csel, csel, csel, mov_imm, mov_imm")]
  )
  
  ;; zero_extend version of above
  (define_insn "*cmovsi_insn_uxtw"
!   [(set (match_operand:DI 0 "register_operand" "=r,r,r,r,r,r,r")
  	(zero_extend:DI
  	 (if_then_else:SI
  	  (match_operator 1 "aarch64_comparison_operator"
! 	   [(match_operand 2 "cc_register" "") (const_int 0)])
! 	  (match_operand:SI 3 "aarch64_reg_zero_or_m1_or_1" "rZ,rZ,UsM,rZ,Ui1,UsM,Ui1")
! 	  (match_operand:SI 4 "aarch64_reg_zero_or_m1_or_1" "rZ,UsM,rZ,Ui1,rZ,UsM,Ui1"))))]
    "!((operands[3] == const1_rtx && operands[4] == constm1_rtx)
       || (operands[3] == constm1_rtx && operands[4] == const1_rtx))"
    ;; Final two alternatives should be unreachable, but included for completeness
!   "@
!    csel\\t%w0, %w3, %w4, %m1
!    csinv\\t%w0, %w3, wzr, %m1
!    csinv\\t%w0, %w4, wzr, %M1
!    csinc\\t%w0, %w3, wzr, %m1
!    csinc\\t%w0, %w4, wzr, %M1
!    mov\\t%w0, -1
!    mov\\t%w0, 1"
!   [(set_attr "type" "csel, csel, csel, csel, csel, mov_imm, mov_imm")]
  )
  
  (define_insn "*cmovdi_insn_uxtw"
--- 4363,4430 ----
  )
  
  (define_insn "*cmov<mode>_insn"
!   [(set (match_operand:ALLI 0 "register_operand")
  	(if_then_else:ALLI
  	 (match_operator 1 "aarch64_comparison_operator"
! 	  [(match_operand 2 "cc_register") (const_int 0)])
! 	 (match_operand:ALLI 3 "aarch64_reg_zero_or_m1_or_1")
! 	 (match_operand:ALLI 4 "aarch64_reg_zero_or_m1_or_1")))]
    "!((operands[3] == const1_rtx && operands[4] == constm1_rtx)
       || (operands[3] == constm1_rtx && operands[4] == const1_rtx))"
    ;; Final two alternatives should be unreachable, but included for completeness
!   {@ [ cons: =0 , 3   , 4   ; attrs: type ]
!      [ r        , rZ  , rZ  ; csel        ] csel\t%<w>0, %<w>3, %<w>4, %m1
!      [ r        , rZ  , UsM ; csel        ] csinv\t%<w>0, %<w>3, <w>zr, %m1
!      [ r        , UsM , rZ  ; csel        ] csinv\t%<w>0, %<w>4, <w>zr, %M1
!      [ r        , rZ  , Ui1 ; csel        ] csinc\t%<w>0, %<w>3, <w>zr, %m1
!      [ r        , Ui1 , rZ  ; csel        ] csinc\t%<w>0, %<w>4, <w>zr, %M1
!      [ r        , UsM , UsM ; mov_imm     ] mov\t%<w>0, -1
!      [ r        , Ui1 , Ui1 ; mov_imm     ] mov\t%<w>0, 1
!   }
  )
  
  ;; zero_extend version of above
  (define_insn "*cmovsi_insn_uxtw"
!   [(set (match_operand:DI 0 "register_operand")
  	(zero_extend:DI
  	 (if_then_else:SI
  	  (match_operator 1 "aarch64_comparison_operator"
! 	   [(match_operand 2 "cc_register") (const_int 0)])
! 	  (match_operand:SI 3 "aarch64_reg_zero_or_m1_or_1")
! 	  (match_operand:SI 4 "aarch64_reg_zero_or_m1_or_1"))))]
    "!((operands[3] == const1_rtx && operands[4] == constm1_rtx)
       || (operands[3] == constm1_rtx && operands[4] == const1_rtx))"
    ;; Final two alternatives should be unreachable, but included for completeness
!   {@ [ cons: =0 , 3   , 4   ; attrs: type ]
!      [ r        , rZ  , rZ  ; csel        ] csel\t%w0, %w3, %w4, %m1
!      [ r        , rZ  , UsM ; csel        ] csinv\t%w0, %w3, wzr, %m1
!      [ r        , UsM , rZ  ; csel        ] csinv\t%w0, %w4, wzr, %M1
!      [ r        , rZ  , Ui1 ; csel        ] csinc\t%w0, %w3, wzr, %m1
!      [ r        , Ui1 , rZ  ; csel        ] csinc\t%w0, %w4, wzr, %M1
!      [ r        , UsM , UsM ; mov_imm     ] mov\t%w0, -1
!      [ r        , Ui1 , Ui1 ; mov_imm     ] mov\t%w0, 1
!   }
! )
! 
! ;; There are two canonical forms for `cmp ? -1 : a`.
! ;; This is the second form and is here to help combine.
! ;; Support `-(cmp) | a` into `cmp ? -1 : a` to be canonical in the backend.
! (define_insn_and_split "*cmov<mode>_insn_m1"
!   [(set (match_operand:GPI 0 "register_operand" "=r")
!         (ior:GPI
! 	 (neg:GPI
! 	  (match_operator:GPI 1 "aarch64_comparison_operator"
! 	   [(match_operand 2 "cc_register" "") (const_int 0)]))
! 	 (match_operand 3 "register_operand" "r")))]
!   ""
!   "#"
!   "&& true"
!   [(set (match_dup 0)
! 	(if_then_else:GPI (match_dup 1)
! 			  (const_int -1)
! 			  (match_dup 3)))]
!   {}
!   [(set_attr "type" "csel")]
  )
  
  (define_insn "*cmovdi_insn_uxtw"
***************
*** 4412,4426 ****
    [(set_attr "type" "csel")]
  )
  
! (define_insn "aarch64_umax<mode>3_insn"
!   [(set (match_operand:GPI 0 "register_operand" "=r,r")
!         (umax:GPI (match_operand:GPI 1 "register_operand" "r,r")
! 		(match_operand:GPI 2 "aarch64_uminmax_operand" "r,Uum")))]
!   "TARGET_CSSC"
!   "@
!    umax\\t%<w>0, %<w>1, %<w>2
!    umax\\t%<w>0, %<w>1, %2"
!   [(set_attr "type" "alu_sreg,alu_imm")]
  )
  
  ;; If X can be loaded by a single CNT[BHWD] instruction,
--- 4636,4686 ----
    [(set_attr "type" "csel")]
  )
  
! ;; There are two canonical forms for `cmp ? ~a : a`.
! ;; This is the second form and is here to help combine.
! ;; Support `-(cmp) ^ a` into `cmp ? ~a : a`
! ;; The second pattern is to support the zero extend'ed version.
! 
! (define_insn_and_split "*cmov<mode>_insn_insv"
!   [(set (match_operand:GPI 0 "register_operand" "=r")
!         (xor:GPI
! 	 (neg:GPI
! 	  (match_operator:GPI 1 "aarch64_comparison_operator"
! 	   [(match_operand 2 "cc_register" "") (const_int 0)]))
! 	 (match_operand:GPI 3 "general_operand" "r")))]
!   ""
!   "#"
!   "&& true"
!   [(set (match_dup 0)
! 	(if_then_else:GPI (match_dup 1)
! 			  (not:GPI (match_dup 3))
! 			  (match_dup 3)))]
!   {
!     /* After reload this will be a nop due to the constraint.  */
!     operands[3] = force_reg (<MODE>mode, operands[3]);
!   }
!   [(set_attr "type" "csel")]
! )
! 
! (define_insn_and_split "*cmov_uxtw_insn_insv"
!   [(set (match_operand:DI 0 "register_operand" "=r")
!         (zero_extend:DI
! 	 (xor:SI
! 	  (neg:SI
! 	   (match_operator:SI 1 "aarch64_comparison_operator"
! 	    [(match_operand 2 "cc_register" "") (const_int 0)]))
! 	  (match_operand:SI 3 "general_operand" "r"))))]
!   ""
!   "#"
!   "&& true"
!   [(set (match_dup 0)
! 	(if_then_else:DI (match_dup 1)
! 			  (zero_extend:DI (not:SI (match_dup 3)))
! 			  (zero_extend:DI (match_dup 3))))]
!   {
!     operands[3] = force_reg (SImode, operands[3]);
!   }
!   [(set_attr "type" "csel")]
  )
  
  ;; If X can be loaded by a single CNT[BHWD] instruction,
***************
*** 4466,4473 ****
  	operands[1] = force_reg (<MODE>mode, operands[1]);
  	if (!aarch64_uminmax_operand (operands[2], <MODE>mode))
  	  operands[2] = force_reg (<MODE>mode, operands[2]);
! 	emit_insn (gen_aarch64_umax<mode>3_insn (operands[0], operands[1],
! 						 operands[2]));
  	DONE;
        }
      else
--- 4726,4733 ----
  	operands[1] = force_reg (<MODE>mode, operands[1]);
  	if (!aarch64_uminmax_operand (operands[2], <MODE>mode))
  	  operands[2] = force_reg (<MODE>mode, operands[2]);
! 	emit_move_insn (operands[0], gen_rtx_UMAX (<MODE>mode, operands[1],
! 						   operands[2]));
  	DONE;
        }
      else
***************
*** 4545,4604 ****
  )
  
  (define_insn "<optab><mode>3"
!   [(set (match_operand:GPI 0 "register_operand" "=r,rk,w")
! 	(LOGICAL:GPI (match_operand:GPI 1 "register_operand" "%r,r,w")
! 		     (match_operand:GPI 2 "aarch64_logical_operand" "r,<lconst>,w")))]
    ""
!   "@
!   <logical>\\t%<w>0, %<w>1, %<w>2
!   <logical>\\t%<w>0, %<w>1, %2
!   <logical>\\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>"
!   [(set_attr "type" "logic_reg,logic_imm,neon_logic")
!    (set_attr "arch" "*,*,simd")]
  )
  
  ;; zero_extend version of above
  (define_insn "*<optab>si3_uxtw"
!   [(set (match_operand:DI 0 "register_operand" "=r,rk")
  	(zero_extend:DI
!          (LOGICAL:SI (match_operand:SI 1 "register_operand" "%r,r")
! 		     (match_operand:SI 2 "aarch64_logical_operand" "r,K"))))]
    ""
!   "@
!    <logical>\\t%w0, %w1, %w2
!    <logical>\\t%w0, %w1, %2"
!   [(set_attr "type" "logic_reg,logic_imm")]
  )
  
  (define_insn "*and<mode>3_compare0"
    [(set (reg:CC_NZV CC_REGNUM)
  	(compare:CC_NZV
! 	 (and:GPI (match_operand:GPI 1 "register_operand" "%r,r")
! 		  (match_operand:GPI 2 "aarch64_logical_operand" "r,<lconst>"))
  	 (const_int 0)))
!    (set (match_operand:GPI 0 "register_operand" "=r,r")
  	(and:GPI (match_dup 1) (match_dup 2)))]
    ""
!   "@
!    ands\\t%<w>0, %<w>1, %<w>2
!    ands\\t%<w>0, %<w>1, %2"
!   [(set_attr "type" "logics_reg,logics_imm")]
  )
  
  ;; zero_extend version of above
  (define_insn "*andsi3_compare0_uxtw"
    [(set (reg:CC_NZV CC_REGNUM)
  	(compare:CC_NZV
! 	 (and:SI (match_operand:SI 1 "register_operand" "%r,r")
! 		 (match_operand:SI 2 "aarch64_logical_operand" "r,K"))
  	 (const_int 0)))
!    (set (match_operand:DI 0 "register_operand" "=r,r")
  	(zero_extend:DI (and:SI (match_dup 1) (match_dup 2))))]
    ""
!   "@
!    ands\\t%w0, %w1, %w2
!    ands\\t%w0, %w1, %2"
!   [(set_attr "type" "logics_reg,logics_imm")]
  )
  
  (define_insn "*and_<SHIFT:optab><mode>3_compare0"
--- 4805,4864 ----
  )
  
  (define_insn "<optab><mode>3"
!   [(set (match_operand:GPI 0 "register_operand")
! 	(LOGICAL:GPI (match_operand:GPI 1 "register_operand")
! 		     (match_operand:GPI 2 "aarch64_logical_operand")))]
    ""
!   {@ [ cons: =0 , 1  , 2        ; attrs: type , arch  ]
!      [ r        , %r , r        ; logic_reg   , *     ] <logical>\t%<w>0, %<w>1, %<w>2
!      [ rk       , r  , <lconst> ; logic_imm   , *     ] <logical>\t%<w>0, %<w>1, %2
!      [ w        , 0  , <lconst> ; *           , sve   ] <logical>\t%Z0.<s>, %Z0.<s>, #%2
!      [ w        , w  , w        ; neon_logic  , simd  ] <logical>\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>
!   }
  )
  
  ;; zero_extend version of above
  (define_insn "*<optab>si3_uxtw"
!   [(set (match_operand:DI 0 "register_operand")
  	(zero_extend:DI
!          (LOGICAL:SI (match_operand:SI 1 "register_operand")
! 		     (match_operand:SI 2 "aarch64_logical_operand"))))]
    ""
!   {@ [ cons: =0 , 1  , 2 ; attrs: type ]
!      [ r        , %r , r ; logic_reg   ] <logical>\t%w0, %w1, %w2
!      [ rk       , r  , K ; logic_imm   ] <logical>\t%w0, %w1, %2
!   }
  )
  
  (define_insn "*and<mode>3_compare0"
    [(set (reg:CC_NZV CC_REGNUM)
  	(compare:CC_NZV
! 	 (and:GPI (match_operand:GPI 1 "register_operand")
! 		  (match_operand:GPI 2 "aarch64_logical_operand"))
  	 (const_int 0)))
!    (set (match_operand:GPI 0 "register_operand")
  	(and:GPI (match_dup 1) (match_dup 2)))]
    ""
!   {@ [ cons: =0 , 1  , 2        ; attrs: type ]
!      [ r        , %r , r        ; logics_reg  ] ands\t%<w>0, %<w>1, %<w>2
!      [ r        , r  , <lconst> ; logics_imm  ] ands\t%<w>0, %<w>1, %2
!   }
  )
  
  ;; zero_extend version of above
  (define_insn "*andsi3_compare0_uxtw"
    [(set (reg:CC_NZV CC_REGNUM)
  	(compare:CC_NZV
! 	 (and:SI (match_operand:SI 1 "register_operand")
! 		 (match_operand:SI 2 "aarch64_logical_operand"))
  	 (const_int 0)))
!    (set (match_operand:DI 0 "register_operand")
  	(zero_extend:DI (and:SI (match_dup 1) (match_dup 2))))]
    ""
!   {@ [ cons: =0 , 1  , 2 ; attrs: type ]
!      [ r        , %r , r ; logics_reg  ] ands\t%w0, %w1, %w2
!      [ r        , r  , K ; logics_imm  ] ands\t%w0, %w1, %2
!   }
  )
  
  (define_insn "*and_<SHIFT:optab><mode>3_compare0"
***************
*** 4641,4647 ****
    [(set_attr "type" "logics_shift_imm")]
  )
  
! (define_insn "*<LOGICAL:optab>_<SHIFT:optab><mode>3"
    [(set (match_operand:GPI 0 "register_operand" "=r")
  	(LOGICAL:GPI (SHIFT:GPI
  		      (match_operand:GPI 1 "register_operand" "r")
--- 4901,4907 ----
    [(set_attr "type" "logics_shift_imm")]
  )
  
! (define_insn "<LOGICAL:optab>_<SHIFT:optab><mode>3"
    [(set (match_operand:GPI 0 "register_operand" "=r")
  	(LOGICAL:GPI (SHIFT:GPI
  		      (match_operand:GPI 1 "register_operand" "r")
***************
*** 4763,4776 ****
  )
  
  (define_insn "one_cmpl<mode>2"
!   [(set (match_operand:GPI 0 "register_operand" "=r,w")
! 	(not:GPI (match_operand:GPI 1 "register_operand" "r,w")))]
    ""
!   "@
!   mvn\\t%<w>0, %<w>1
!   mvn\\t%0.8b, %1.8b"
!   [(set_attr "type" "logic_reg,neon_logic")
!    (set_attr "arch" "*,simd")]
  )
  
  (define_insn "*one_cmpl_zero_extend"
--- 5023,5035 ----
  )
  
  (define_insn "one_cmpl<mode>2"
!   [(set (match_operand:GPI 0 "register_operand")
! 	(not:GPI (match_operand:GPI 1 "register_operand")))]
    ""
!   {@ [ cons: =0 , 1 ; attrs: type , arch  ]
!      [ r        , r ; logic_reg   , *     ] mvn\t%<w>0, %<w>1
!      [ w        , w ; neon_logic  , simd  ] mvn\t%0.8b, %1.8b
!   }
  )
  
  (define_insn "*one_cmpl_zero_extend"
***************
*** 4798,4812 ****
  ;; Binary logical operators negating one operand, i.e. (a & !b), (a | !b).
  
  (define_insn "*<NLOGICAL:optab>_one_cmpl<mode>3"
!   [(set (match_operand:GPI 0 "register_operand" "=r,w")
! 	(NLOGICAL:GPI (not:GPI (match_operand:GPI 1 "register_operand" "r,w"))
! 		     (match_operand:GPI 2 "register_operand" "r,w")))]
    ""
!   "@
!   <NLOGICAL:nlogical>\\t%<w>0, %<w>2, %<w>1
!   <NLOGICAL:nlogical>\\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>"
!   [(set_attr "type" "logic_reg,neon_logic")
!    (set_attr "arch" "*,simd")]
  )
  
  (define_insn "*<NLOGICAL:optab>_one_cmplsidi3_ze"
--- 5057,5070 ----
  ;; Binary logical operators negating one operand, i.e. (a & !b), (a | !b).
  
  (define_insn "*<NLOGICAL:optab>_one_cmpl<mode>3"
!   [(set (match_operand:GPI 0 "register_operand")
! 	(NLOGICAL:GPI (not:GPI (match_operand:GPI 1 "register_operand"))
! 		     (match_operand:GPI 2 "register_operand")))]
    ""
!   {@ [ cons: =0 , 1 , 2 ; attrs: type , arch  ]
!      [ r        , r , r ; logic_reg   , *     ] <NLOGICAL:nlogical>\t%<w>0, %<w>2, %<w>1
!      [ w        , w , w ; neon_logic  , simd  ] <NLOGICAL:nlogical>\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>
!   }
  )
  
  (define_insn "*<NLOGICAL:optab>_one_cmplsidi3_ze"
***************
*** 5142,5158 ****
    [(set_attr "type" "alus_imm")]
  )
  
! (define_insn "*and<mode>3nr_compare0"
    [(set (reg:CC_NZV CC_REGNUM)
  	(compare:CC_NZV
! 	 (and:GPI (match_operand:GPI 0 "register_operand" "%r,r")
! 		  (match_operand:GPI 1 "aarch64_logical_operand" "r,<lconst>"))
  	 (const_int 0)))]
    ""
!   "@
!    tst\\t%<w>0, %<w>1
!    tst\\t%<w>0, %1"
!   [(set_attr "type" "logics_reg,logics_imm")]
  )
  
  (define_split
--- 5400,5416 ----
    [(set_attr "type" "alus_imm")]
  )
  
! (define_insn "@aarch64_and<mode>3nr_compare0"
    [(set (reg:CC_NZV CC_REGNUM)
  	(compare:CC_NZV
! 	 (and:GPI (match_operand:GPI 0 "register_operand")
! 		  (match_operand:GPI 1 "aarch64_logical_operand"))
  	 (const_int 0)))]
    ""
!   {@ [ cons: 0 , 1        ; attrs: type ]
!      [ %r      , r        ; logics_reg  ] tst\t%<w>0, %<w>1
!      [ r       , <lconst> ; logics_imm  ] tst\t%<w>0, %1
!   }
  )
  
  (define_split
***************
*** 5435,5470 ****
  
  ;; Logical left shift using SISD or Integer instruction
  (define_insn "*aarch64_ashl_sisd_or_int_<mode>3"
!   [(set (match_operand:GPI 0 "register_operand" "=r,r,w,w")
  	(ashift:GPI
! 	  (match_operand:GPI 1 "register_operand" "r,r,w,w")
! 	  (match_operand:QI 2 "aarch64_reg_or_shift_imm_<mode>" "Us<cmode>,r,Us<cmode>,w")))]
    ""
!   "@
!    lsl\t%<w>0, %<w>1, %2
!    lsl\t%<w>0, %<w>1, %<w>2
!    shl\t%<rtn>0<vas>, %<rtn>1<vas>, %2
!    ushl\t%<rtn>0<vas>, %<rtn>1<vas>, %<rtn>2<vas>"
!   [(set_attr "type" "bfx,shift_reg,neon_shift_imm<q>, neon_shift_reg<q>")
!    (set_attr "arch" "*,*,simd,simd")]
  )
  
  ;; Logical right shift using SISD or Integer instruction
  (define_insn "*aarch64_lshr_sisd_or_int_<mode>3"
!   [(set (match_operand:GPI 0 "register_operand" "=r,r,w,&w,&w")
  	(lshiftrt:GPI
! 	 (match_operand:GPI 1 "register_operand" "r,r,w,w,w")
! 	 (match_operand:QI 2 "aarch64_reg_or_shift_imm_<mode>"
! 			      "Us<cmode>,r,Us<cmode_simd>,w,0")))]
    ""
!   "@
!    lsr\t%<w>0, %<w>1, %2
!    lsr\t%<w>0, %<w>1, %<w>2
!    ushr\t%<rtn>0<vas>, %<rtn>1<vas>, %2
!    #
!    #"
!   [(set_attr "type" "bfx,shift_reg,neon_shift_imm<q>,neon_shift_reg<q>,neon_shift_reg<q>")
!    (set_attr "arch" "*,*,simd,simd,simd")]
  )
  
  (define_split
--- 5693,5725 ----
  
  ;; Logical left shift using SISD or Integer instruction
  (define_insn "*aarch64_ashl_sisd_or_int_<mode>3"
!   [(set (match_operand:GPI 0 "register_operand")
  	(ashift:GPI
! 	  (match_operand:GPI 1 "register_operand")
! 	  (match_operand:QI 2 "aarch64_reg_or_shift_imm_<mode>")))]
    ""
!   {@ [ cons: =0 , 1 , 2         ; attrs: type       , arch  ]
!      [ r        , r , Us<cmode> ; bfx               , *     ] lsl\t%<w>0, %<w>1, %2
!      [ r        , r , r         ; shift_reg         , *     ] lsl\t%<w>0, %<w>1, %<w>2
!      [ w        , w , Us<cmode> ; neon_shift_imm<q> , simd  ] shl\t%<rtn>0<vas>, %<rtn>1<vas>, %2
!      [ w        , w , w         ; neon_shift_reg<q> , simd  ] ushl\t%<rtn>0<vas>, %<rtn>1<vas>, %<rtn>2<vas>
!   }
  )
  
  ;; Logical right shift using SISD or Integer instruction
  (define_insn "*aarch64_lshr_sisd_or_int_<mode>3"
!   [(set (match_operand:GPI 0 "register_operand")
  	(lshiftrt:GPI
! 	 (match_operand:GPI 1 "register_operand")
! 	 (match_operand:QI 2 "aarch64_reg_or_shift_imm_<mode>")))]
    ""
!   {@ [ cons: =0 , 1 , 2              ; attrs: type       , arch  ]
!      [ r        , r , Us<cmode>      ; bfx               , *     ] lsr\t%<w>0, %<w>1, %2
!      [ r        , r , r              ; shift_reg         , *     ] lsr\t%<w>0, %<w>1, %<w>2
!      [ w        , w , Us<cmode_simd> ; neon_shift_imm<q> , simd  ] ushr\t%<rtn>0<vas>, %<rtn>1<vas>, %2
!      [ &w       , w , w              ; neon_shift_reg<q> , simd  ] #
!      [ &w       , w , 0              ; neon_shift_reg<q> , simd  ] #
!   }
  )
  
  (define_split
***************
*** 5499,5518 ****
  
  ;; Arithmetic right shift using SISD or Integer instruction
  (define_insn "*aarch64_ashr_sisd_or_int_<mode>3"
!   [(set (match_operand:GPI 0 "register_operand" "=r,r,w,&w,&w")
  	(ashiftrt:GPI
! 	  (match_operand:GPI 1 "register_operand" "r,r,w,w,w")
! 	  (match_operand:QI 2 "aarch64_reg_or_shift_imm_di"
! 			       "Us<cmode>,r,Us<cmode_simd>,w,0")))]
    ""
!   "@
!    asr\t%<w>0, %<w>1, %2
!    asr\t%<w>0, %<w>1, %<w>2
!    sshr\t%<rtn>0<vas>, %<rtn>1<vas>, %2
!    #
!    #"
!   [(set_attr "type" "bfx,shift_reg,neon_shift_imm<q>,neon_shift_reg<q>,neon_shift_reg<q>")
!    (set_attr "arch" "*,*,simd,simd,simd")]
  )
  
  (define_split
--- 5754,5771 ----
  
  ;; Arithmetic right shift using SISD or Integer instruction
  (define_insn "*aarch64_ashr_sisd_or_int_<mode>3"
!   [(set (match_operand:GPI 0 "register_operand")
  	(ashiftrt:GPI
! 	  (match_operand:GPI 1 "register_operand")
! 	  (match_operand:QI 2 "aarch64_reg_or_shift_imm_di")))]
    ""
!   {@ [ cons: =0 , 1 , 2              ; attrs: type       , arch  ]
!      [ r        , r , Us<cmode>      ; bfx               , *     ] asr\t%<w>0, %<w>1, %2
!      [ r        , r , r              ; shift_reg         , *     ] asr\t%<w>0, %<w>1, %<w>2
!      [ w        , w , Us<cmode_simd> ; neon_shift_imm<q> , simd  ] sshr\t%<rtn>0<vas>, %<rtn>1<vas>, %2
!      [ &w       , w , w              ; neon_shift_reg<q> , simd  ] #
!      [ &w       , w , 0              ; neon_shift_reg<q> , simd  ] #
!   }
  )
  
  (define_split
***************
*** 5596,5610 ****
  
  ;; Rotate right
  (define_insn "*ror<mode>3_insn"
!   [(set (match_operand:GPI 0 "register_operand" "=r,r")
       (rotatert:GPI
!        (match_operand:GPI 1 "register_operand" "r,r")
!        (match_operand:QI 2 "aarch64_reg_or_shift_imm_<mode>" "Us<cmode>,r")))]
    ""
!   "@
!    ror\\t%<w>0, %<w>1, %2
!    ror\\t%<w>0, %<w>1, %<w>2"
!   [(set_attr "type" "rotate_imm,shift_reg")]
  )
  
  (define_insn "*rol<mode>3_insn"
--- 5849,5863 ----
  
  ;; Rotate right
  (define_insn "*ror<mode>3_insn"
!   [(set (match_operand:GPI 0 "register_operand")
       (rotatert:GPI
!        (match_operand:GPI 1 "register_operand")
!        (match_operand:QI 2 "aarch64_reg_or_shift_imm_<mode>")))]
    ""
!   {@ [ cons: =0 , 1 , 2         ; attrs: type ]
!      [ r        , r , Us<cmode> ; rotate_imm  ] ror\t%<w>0, %<w>1, %2
!      [ r        , r , r         ; shift_reg   ] ror\t%<w>0, %<w>1, %<w>2
!   }
  )
  
  (define_insn "*rol<mode>3_insn"
***************
*** 5621,5635 ****
  
  ;; zero_extend version of shifts
  (define_insn "*<optab>si3_insn_uxtw"
!   [(set (match_operand:DI 0 "register_operand" "=r,r")
  	(zero_extend:DI (SHIFT_no_rotate:SI
! 	 (match_operand:SI 1 "register_operand" "r,r")
! 	 (match_operand:QI 2 "aarch64_reg_or_shift_imm_si" "Uss,r"))))]
    ""
!   "@
!    <shift>\\t%w0, %w1, %2
!    <shift>\\t%w0, %w1, %w2"
!   [(set_attr "type" "bfx,shift_reg")]
  )
  
  ;; zero_extend version of rotate right
--- 5874,5888 ----
  
  ;; zero_extend version of shifts
  (define_insn "*<optab>si3_insn_uxtw"
!   [(set (match_operand:DI 0 "register_operand")
  	(zero_extend:DI (SHIFT_no_rotate:SI
! 	 (match_operand:SI 1 "register_operand")
! 	 (match_operand:QI 2 "aarch64_reg_or_shift_imm_si"))))]
    ""
!   {@ [ cons: =0 , 1 , 2   ; attrs: type ]
!      [ r        , r , Uss ; bfx         ] <shift>\t%w0, %w1, %2
!      [ r        , r , r   ; shift_reg   ] <shift>\t%w0, %w1, %w2
!   }
  )
  
  ;; zero_extend version of rotate right
***************
*** 5861,5866 ****
--- 6114,6138 ----
    operands[3] = force_reg (<MODE>mode, value);
  })
  
+ (define_insn "*insv_reg<mode>_<SUBDI_BITS>"
+   [(set (zero_extract:GPI (match_operand:GPI 0 "register_operand" "+r,w,?w")
+ 			  (const_int SUBDI_BITS)
+ 			  (match_operand 1 "const_int_operand"))
+ 	(match_operand:GPI 2 "register_operand" "r,w,r"))]
+   "multiple_p (UINTVAL (operands[1]), <SUBDI_BITS>)
+    && UINTVAL (operands[1]) + <SUBDI_BITS> <= <GPI:sizen>"
+   {
+     if (which_alternative == 0)
+       return "bfi\t%<w>0, %<w>2, %1, <SUBDI_BITS>";
+ 
+     operands[1] = gen_int_mode (UINTVAL (operands[1]) / <SUBDI_BITS>, SImode);
+     if (which_alternative == 1)
+       return "ins\t%0.<bits_etype>[%1], %2.<bits_etype>[0]";
+     return "ins\t%0.<bits_etype>[%1], %w2";
+   }
+   [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")]
+ )
+ 
  (define_insn "*insv_reg<mode>"
    [(set (zero_extract:GPI (match_operand:GPI 0 "register_operand" "+r")
  			  (match_operand 1 "const_int_operand" "n")
***************
*** 5873,5878 ****
--- 6145,6171 ----
    [(set_attr "type" "bfm")]
  )
  
+ (define_insn_and_split "*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>"
+   [(set (zero_extract:GPI (match_operand:GPI 0 "register_operand" "+r,w,?w")
+ 			  (const_int SUBDI_BITS)
+ 			  (match_operand 1 "const_int_operand"))
+ 	(zero_extend:GPI (match_operand:ALLX 2  "register_operand" "r,w,r")))]
+   "<SUBDI_BITS> <= <ALLX:sizen>
+    && multiple_p (UINTVAL (operands[1]), <SUBDI_BITS>)
+    && UINTVAL (operands[1]) + <SUBDI_BITS> <= <GPI:sizen>"
+   "#"
+   "&& 1"
+   [(set (zero_extract:GPI (match_dup 0)
+ 			  (const_int SUBDI_BITS)
+ 			  (match_dup 1))
+ 	(match_dup 2))]
+   {
+     operands[2] = lowpart_subreg (<GPI:MODE>mode, operands[2],
+ 				  <ALLX:MODE>mode);
+   }
+   [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")]
+ )
+ 
  (define_insn "*aarch64_bfi<GPI:mode><ALLX:mode>4"
    [(set (zero_extract:GPI (match_operand:GPI 0 "register_operand" "+r")
  			  (match_operand 1 "const_int_operand" "n")
***************
*** 5883,5888 ****
--- 6176,6203 ----
    [(set_attr "type" "bfm")]
  )
  
+ (define_insn_and_split "*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>"
+   [(set (zero_extract:DI (match_operand:DI 0 "register_operand" "+r,w,?w")
+ 			 (const_int SUBDI_BITS)
+ 			 (match_operand 1 "const_int_operand"))
+ 	(match_operator:DI 2 "subreg_lowpart_operator"
+ 	  [(zero_extend:SI
+ 	     (match_operand:ALLX 3  "register_operand" "r,w,r"))]))]
+   "<SUBDI_BITS> <= <ALLX:sizen>
+    && multiple_p (UINTVAL (operands[1]), <SUBDI_BITS>)
+    && UINTVAL (operands[1]) + <SUBDI_BITS> <= 64"
+   "#"
+   "&& 1"
+   [(set (zero_extract:DI (match_dup 0)
+ 			 (const_int SUBDI_BITS)
+ 			 (match_dup 1))
+ 	(match_dup 2))]
+   {
+     operands[2] = lowpart_subreg (DImode, operands[3], <ALLX:MODE>mode);
+   }
+   [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")]
+ )
+ 
  ;;  Match a bfi instruction where the shift of OP3 means that we are
  ;;  actually copying the least significant bits of OP3 into OP0 by way
  ;;  of the AND masks and the IOR instruction.  A similar instruction
***************
*** 6120,6132 ****
    [(set_attr "type" "rev")]
  )
  
- (define_insn "@aarch64_rev16<mode>"
-   [(set (match_operand:GPI 0 "register_operand" "=r")
- 	(unspec:GPI [(match_operand:GPI 1 "register_operand" "r")] UNSPEC_REV))]
-   ""
-   "rev16\\t%<w>0, %<w>1"
-   [(set_attr "type" "rev")])
- 
  (define_insn "*aarch64_bfxil<mode>"
    [(set (match_operand:GPI 0 "register_operand" "=r,r")
      (ior:GPI (and:GPI (match_operand:GPI 1 "register_operand" "r,0")
--- 6435,6440 ----
***************
*** 6183,6189 ****
  ;; operations within an IOR/AND RTX, therefore we have two patterns matching
  ;; each valid permutation.
  
! (define_insn "rev16<mode>2"
    [(set (match_operand:GPI 0 "register_operand" "=r")
          (ior:GPI (and:GPI (ashift:GPI (match_operand:GPI 1 "register_operand" "r")
                                        (const_int 8))
--- 6491,6497 ----
  ;; operations within an IOR/AND RTX, therefore we have two patterns matching
  ;; each valid permutation.
  
! (define_insn "aarch64_rev16<mode>2_alt1"
    [(set (match_operand:GPI 0 "register_operand" "=r")
          (ior:GPI (and:GPI (ashift:GPI (match_operand:GPI 1 "register_operand" "r")
                                        (const_int 8))
***************
*** 6197,6203 ****
    [(set_attr "type" "rev")]
  )
  
! (define_insn "rev16<mode>2_alt"
    [(set (match_operand:GPI 0 "register_operand" "=r")
          (ior:GPI (and:GPI (lshiftrt:GPI (match_operand:GPI 1 "register_operand" "r")
                                          (const_int 8))
--- 6505,6511 ----
    [(set_attr "type" "rev")]
  )
  
! (define_insn "*aarch64_rev16<mode>2_alt2"
    [(set (match_operand:GPI 0 "register_operand" "=r")
          (ior:GPI (and:GPI (lshiftrt:GPI (match_operand:GPI 1 "register_operand" "r")
                                          (const_int 8))
***************
*** 6211,6216 ****
--- 6519,6534 ----
    [(set_attr "type" "rev")]
  )
  
+ ;; Similar pattern to match (rotate (bswap) 16)
+ (define_insn "aarch64_rev16si2_alt3"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+         (rotate:SI (bswap:SI (match_operand:SI 1 "register_operand" "r"))
+                    (const_int 16)))]
+   ""
+   "rev16\\t%w0, %w1"
+   [(set_attr "type" "rev")]
+ )
+ 
  ;; zero_extend version of above
  (define_insn "*bswapsi2_uxtw"
    [(set (match_operand:DI 0 "register_operand" "=r")
***************
*** 6220,6225 ****
--- 6538,6558 ----
    [(set_attr "type" "rev")]
  )
  
+ ;; Expander for __rev16 intrinsics.  We have organic RTL patterns for rev16 above.
+ ;; Use this expander to just create the shift constants needed.
+ (define_expand "@aarch64_rev16<mode>"
+   [(match_operand:GPI 0 "register_operand")
+    (match_operand:GPI 1 "register_operand")]
+   ""
+   {
+     rtx left = gen_int_mode (HOST_WIDE_INT_C (0xff00ff00ff00ff00), <MODE>mode);
+     rtx right = gen_int_mode (HOST_WIDE_INT_C (0xff00ff00ff00ff), <MODE>mode);
+     emit_insn (gen_aarch64_rev16<mode>2_alt1 (operands[0], operands[1],
+ 					      right, left));
+     DONE;
+   }
+ )
+ 
  ;; -------------------------------------------------------------------
  ;; Floating-point intrinsics
  ;; -------------------------------------------------------------------
***************
*** 6414,6427 ****
  ;; and making r = w more expensive
  
  (define_insn "<optab>_trunc<fcvt_target><GPI:mode>2"
!   [(set (match_operand:GPI 0 "register_operand" "=w,?r")
! 	(FIXUORS:GPI (match_operand:<FCVT_TARGET> 1 "register_operand" "w,w")))]
    "TARGET_FLOAT"
!   "@
!    fcvtz<su>\t%<s>0, %<s>1
!    fcvtz<su>\t%<w>0, %<s>1"
!   [(set_attr "type" "neon_fp_to_int_s,f_cvtf2i")
!    (set_attr "arch" "simd,fp")]
  )
  
  ;; Convert HF -> SI or DI
--- 6747,6759 ----
  ;; and making r = w more expensive
  
  (define_insn "<optab>_trunc<fcvt_target><GPI:mode>2"
!   [(set (match_operand:GPI 0 "register_operand")
! 	(FIXUORS:GPI (match_operand:<FCVT_TARGET> 1 "register_operand")))]
    "TARGET_FLOAT"
!   {@ [ cons: =0 , 1 ; attrs: type      , arch  ]
!      [ w        , w ; neon_fp_to_int_s , simd  ] fcvtz<su>\t%<s>0, %<s>1
!      [ ?r       , w ; f_cvtf2i         , fp    ] fcvtz<su>\t%<w>0, %<s>1
!   }
  )
  
  ;; Convert HF -> SI or DI
***************
*** 6494,6507 ****
  
  ;; Equal width integer to fp conversion.
  (define_insn "<optab><fcvt_target><GPF:mode>2"
!   [(set (match_operand:GPF 0 "register_operand" "=w,w")
!         (FLOATUORS:GPF (match_operand:<FCVT_TARGET> 1 "register_operand" "w,?r")))]
    "TARGET_FLOAT"
!   "@
!    <su_optab>cvtf\t%<GPF:s>0, %<s>1
!    <su_optab>cvtf\t%<GPF:s>0, %<w1>1"
!   [(set_attr "type" "neon_int_to_fp_<Vetype>,f_cvti2f")
!    (set_attr "arch" "simd,fp")]
  )
  
  ;; Unequal width integer to fp conversions.
--- 6826,6838 ----
  
  ;; Equal width integer to fp conversion.
  (define_insn "<optab><fcvt_target><GPF:mode>2"
!   [(set (match_operand:GPF 0 "register_operand")
!         (FLOATUORS:GPF (match_operand:<FCVT_TARGET> 1 "register_operand")))]
    "TARGET_FLOAT"
!   {@ [ cons: =0 , 1  ; attrs: type             , arch  ]
!      [ w        , w  ; neon_int_to_fp_<Vetype> , simd  ] <su_optab>cvtf\t%<GPF:s>0, %<s>1
!      [ w        , ?r ; f_cvti2f                , fp    ] <su_optab>cvtf\t%<GPF:s>0, %<w1>1
!   }
  )
  
  ;; Unequal width integer to fp conversions.
***************
*** 6578,6606 ****
  ;; Convert between fixed-point and floating-point (scalar modes)
  
  (define_insn "<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3"
!   [(set (match_operand:<GPF:FCVT_TARGET> 0 "register_operand" "=r, w")
! 	(unspec:<GPF:FCVT_TARGET> [(match_operand:GPF 1 "register_operand" "w, w")
! 				   (match_operand:SI 2 "immediate_operand" "i, i")]
  	 FCVT_F2FIXED))]
    ""
!   "@
!    <FCVT_F2FIXED:fcvt_fixed_insn>\t%<GPF:w1>0, %<GPF:s>1, #%2
!    <FCVT_F2FIXED:fcvt_fixed_insn>\t%<GPF:s>0, %<GPF:s>1, #%2"
!   [(set_attr "type" "f_cvtf2i, neon_fp_to_int_<GPF:Vetype>")
!    (set_attr "arch" "fp,simd")]
  )
  
  (define_insn "<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3"
!   [(set (match_operand:<GPI:FCVT_TARGET> 0 "register_operand" "=w, w")
! 	(unspec:<GPI:FCVT_TARGET> [(match_operand:GPI 1 "register_operand" "r, w")
! 				   (match_operand:SI 2 "immediate_operand" "i, i")]
  	 FCVT_FIXED2F))]
    ""
!   "@
!    <FCVT_FIXED2F:fcvt_fixed_insn>\t%<GPI:v>0, %<GPI:w>1, #%2
!    <FCVT_FIXED2F:fcvt_fixed_insn>\t%<GPI:v>0, %<GPI:v>1, #%2"
!   [(set_attr "type" "f_cvti2f, neon_int_to_fp_<GPI:Vetype>")
!    (set_attr "arch" "fp,simd")]
  )
  
  (define_insn "<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3"
--- 6909,6935 ----
  ;; Convert between fixed-point and floating-point (scalar modes)
  
  (define_insn "<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3"
!   [(set (match_operand:<GPF:FCVT_TARGET> 0 "register_operand")
! 	(unspec:<GPF:FCVT_TARGET> [(match_operand:GPF 1 "register_operand")
! 				   (match_operand:SI 2 "immediate_operand")]
  	 FCVT_F2FIXED))]
    ""
!   {@ [ cons: =0 , 1 , 2 ; attrs: type                 , arch  ]
!      [ r        , w , i ; f_cvtf2i                    , fp    ] <FCVT_F2FIXED:fcvt_fixed_insn>\t%<GPF:w1>0, %<GPF:s>1, #%2
!      [ w        , w , i ; neon_fp_to_int_<GPF:Vetype> , simd  ] <FCVT_F2FIXED:fcvt_fixed_insn>\t%<GPF:s>0, %<GPF:s>1, #%2
!   }
  )
  
  (define_insn "<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3"
!   [(set (match_operand:<GPI:FCVT_TARGET> 0 "register_operand")
! 	(unspec:<GPI:FCVT_TARGET> [(match_operand:GPI 1 "register_operand")
! 				   (match_operand:SI 2 "immediate_operand")]
  	 FCVT_FIXED2F))]
    ""
!   {@ [ cons: =0 , 1 , 2 ; attrs: type                 , arch  ]
!      [ w        , r , i ; f_cvti2f                    , fp    ] <FCVT_FIXED2F:fcvt_fixed_insn>\t%<GPI:v>0, %<GPI:w>1, #%2
!      [ w        , w , i ; neon_int_to_fp_<GPI:Vetype> , simd  ] <FCVT_FIXED2F:fcvt_fixed_insn>\t%<GPI:v>0, %<GPI:v>1, #%2
!   }
  )
  
  (define_insn "<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3"
***************
*** 6751,6765 ****
    [(set_attr "type" "ffarith<stype>")]
  )
  
! (define_insn "<optab><mode>3"
!   [(set (match_operand:GPI 0 "register_operand" "=r,r")
!         (MAXMIN_NOUMAX:GPI (match_operand:GPI 1 "register_operand" "r,r")
! 		(match_operand:GPI 2 "aarch64_<su>minmax_operand" "r,U<su>m")))]
    "TARGET_CSSC"
!   "@
!    <optab>\\t%<w>0, %<w>1, %<w>2
!    <optab>\\t%<w>0, %<w>1, %2"
!   [(set_attr "type" "alu_sreg,alu_imm")]
  )
  
  ;; Given that smax/smin do not specify the result when either input is NaN,
--- 7080,7125 ----
    [(set_attr "type" "ffarith<stype>")]
  )
  
! ;; Expander for integer smin, smax, umin.  Mainly used to generate
! ;; straightforward RTL for TARGET_CSSC.  When that is not available
! ;; FAIL and let the generic expanders generate the CMP + CSEL sequences,
! ;; except for the SMIN and SMAX with zero cases, for which we have a
! ;; single instruction even for the base architecture.
! (define_expand "<optab><mode>3"
!   [(set (match_operand:GPI 0 "register_operand")
!         (MAXMIN_NOUMAX:GPI
! 	  (match_operand:GPI 1 "register_operand")
! 	  (match_operand:GPI 2 "aarch64_<su>minmax_operand")))]
!   ""
!   {
!     if (!TARGET_CSSC)
!       {
! 	if (operands[2] != CONST0_RTX (<MODE>mode)
! 	    || !(<CODE> == SMAX || <CODE> == SMIN))
! 	  FAIL;
!       }
!   }
! )
! 
! (define_insn "*aarch64_<optab><mode>3_cssc"
!   [(set (match_operand:GPI 0 "register_operand")
!         (MAXMIN:GPI (match_operand:GPI 1 "register_operand")
! 		(match_operand:GPI 2 "aarch64_<su>minmax_operand")))]
    "TARGET_CSSC"
!   {@ [ cons: =0 , 1 , 2      ; attrs: type ]
!      [ r        , r , r      ; alu_sreg    ] <optab>\t%<w>0, %<w>1, %<w>2
!      [ r        , r , U<su>m ; alu_imm     ] <optab>\t%<w>0, %<w>1, %2
!   }
! )
! 
! (define_insn "*aarch64_<optab><mode>3_zero"
!   [(set (match_operand:GPI 0 "register_operand" "=r")
!         (FMAXMIN:GPI
! 	  (match_operand:GPI 1 "register_operand" "r")
! 	  (const_int 0)))]
!   ""
!   "<maxminand>\\t%<w>0, %<w>1, %<w>1, asr <sizem1>";
!   [(set_attr "type" "logic_shift_imm")]
  )
  
  ;; Given that smax/smin do not specify the result when either input is NaN,
***************
*** 6829,6840 ****
  (define_expand "copysign<GPF:mode>3"
    [(match_operand:GPF 0 "register_operand")
     (match_operand:GPF 1 "register_operand")
!    (match_operand:GPF 2 "register_operand")]
    "TARGET_SIMD"
  {
!   rtx bitmask = gen_reg_rtx (<V_INT_EQUIV>mode);
!   emit_move_insn (bitmask, GEN_INT (HOST_WIDE_INT_M1U
! 				    << (GET_MODE_BITSIZE (<MODE>mode) - 1)));
    emit_insn (gen_copysign<mode>3_insn (operands[0], operands[1], operands[2],
  				       bitmask));
    DONE;
--- 7189,7221 ----
  (define_expand "copysign<GPF:mode>3"
    [(match_operand:GPF 0 "register_operand")
     (match_operand:GPF 1 "register_operand")
!    (match_operand:GPF 2 "nonmemory_operand")]
    "TARGET_SIMD"
  {
!   rtx signbit_const = GEN_INT (HOST_WIDE_INT_M1U
! 			       << (GET_MODE_BITSIZE (<MODE>mode) - 1));
!   /* copysign (x, -1) should instead be expanded as orr with the sign
!      bit.  */
!   rtx op2_elt = unwrap_const_vec_duplicate (operands[2]);
!   if (GET_CODE (op2_elt) == CONST_DOUBLE
!       && real_isneg (CONST_DOUBLE_REAL_VALUE (op2_elt)))
!     {
!       rtx v_bitmask
! 	= force_reg (V2<V_INT_EQUIV>mode,
! 		     gen_const_vec_duplicate (V2<V_INT_EQUIV>mode,
! 					      signbit_const));
! 
!       emit_insn (gen_iorv2<v_int_equiv>3 (
! 	lowpart_subreg (V2<V_INT_EQUIV>mode, operands[0], <MODE>mode),
! 	lowpart_subreg (V2<V_INT_EQUIV>mode, operands[1], <MODE>mode),
! 	v_bitmask));
!       DONE;
!     }
! 
!   machine_mode int_mode = <V_INT_EQUIV>mode;
!   rtx bitmask = gen_reg_rtx (int_mode);
!   emit_move_insn (bitmask, signbit_const);
!   operands[2] = force_reg (<MODE>mode, operands[2]);
    emit_insn (gen_copysign<mode>3_insn (operands[0], operands[1], operands[2],
  				       bitmask));
    DONE;
***************
*** 6842,6859 ****
  )
  
  (define_insn "copysign<GPF:mode>3_insn"
!   [(set (match_operand:GPF 0 "register_operand" "=w,w,w,r")
! 	(unspec:GPF [(match_operand:GPF 1 "register_operand" "w,0,w,r")
! 		     (match_operand:GPF 2 "register_operand" "w,w,0,0")
! 		     (match_operand:<V_INT_EQUIV> 3 "register_operand" "0,w,w,X")]
  	 UNSPEC_COPYSIGN))]
    "TARGET_SIMD"
!   "@
!    bsl\\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>
!    bit\\t%0.<Vbtype>, %2.<Vbtype>, %3.<Vbtype>
!    bif\\t%0.<Vbtype>, %1.<Vbtype>, %3.<Vbtype>
!    bfxil\\t%<w1>0, %<w1>1, #0, <sizem1>"
!   [(set_attr "type" "neon_bsl<q>,neon_bsl<q>,neon_bsl<q>,bfm")]
  )
  
  
--- 7223,7240 ----
  )
  
  (define_insn "copysign<GPF:mode>3_insn"
!   [(set (match_operand:GPF 0 "register_operand")
! 	(unspec:GPF [(match_operand:GPF 1 "register_operand")
! 		     (match_operand:GPF 2 "register_operand")
! 		     (match_operand:<V_INT_EQUIV> 3 "register_operand")]
  	 UNSPEC_COPYSIGN))]
    "TARGET_SIMD"
!   {@ [ cons: =0 , 1 , 2 , 3 ; attrs: type  ]
!      [ w        , w , w , 0 ; neon_bsl<q>  ] bsl\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>
!      [ w        , 0 , w , w ; neon_bsl<q>  ] bit\t%0.<Vbtype>, %2.<Vbtype>, %3.<Vbtype>
!      [ w        , w , 0 , w ; neon_bsl<q>  ] bif\t%0.<Vbtype>, %1.<Vbtype>, %3.<Vbtype>
!      [ r        , r , 0 , X ; bfm          ] bfxil\t%<w1>0, %<w1>1, #0, <sizem1>
!   }
  )
  
  
***************
*** 6864,6894 ****
  ;; EOR   v0.8B, v0.8B, v3.8B
  ;;
  
! (define_expand "xorsign<mode>3"
    [(match_operand:GPF 0 "register_operand")
     (match_operand:GPF 1 "register_operand")
     (match_operand:GPF 2 "register_operand")]
    "TARGET_SIMD"
  {
! 
!   machine_mode imode = <V_INT_EQUIV>mode;
!   rtx mask = gen_reg_rtx (imode);
!   rtx op1x = gen_reg_rtx (imode);
!   rtx op2x = gen_reg_rtx (imode);
! 
!   int bits = GET_MODE_BITSIZE (<MODE>mode) - 1;
!   emit_move_insn (mask, GEN_INT (trunc_int_for_mode (HOST_WIDE_INT_M1U << bits,
! 						     imode)));
! 
!   emit_insn (gen_and<v_int_equiv>3 (op2x, mask,
! 				    lowpart_subreg (imode, operands[2],
! 						    <MODE>mode)));
!   emit_insn (gen_xor<v_int_equiv>3 (op1x,
! 				    lowpart_subreg (imode, operands[1],
! 						    <MODE>mode),
! 				    op2x));
    emit_move_insn (operands[0],
! 		  lowpart_subreg (<MODE>mode, op1x, imode));
    DONE;
  }
  )
--- 7245,7262 ----
  ;; EOR   v0.8B, v0.8B, v3.8B
  ;;
  
! (define_expand "@xorsign<mode>3"
    [(match_operand:GPF 0 "register_operand")
     (match_operand:GPF 1 "register_operand")
     (match_operand:GPF 2 "register_operand")]
    "TARGET_SIMD"
  {
!   rtx tmp = gen_reg_rtx (<VCONQ>mode);
!   rtx op1 = lowpart_subreg (<VCONQ>mode, operands[1], <MODE>mode);
!   rtx op2 = lowpart_subreg (<VCONQ>mode, operands[2], <MODE>mode);
!   emit_insn (gen_xorsign3 (<VCONQ>mode, tmp, op1, op2));
    emit_move_insn (operands[0],
! 		  lowpart_subreg (<MODE>mode, tmp, <VCONQ>mode));
    DONE;
  }
  )
***************
*** 7069,7075 ****
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(unspec:DI [(const_int 0)] UNSPEC_TLS))]
    ""
!   "mrs\\t%0, tpidr_el0"
    [(set_attr "type" "mrs")]
  )
  
--- 7437,7443 ----
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(unspec:DI [(const_int 0)] UNSPEC_TLS))]
    ""
!   "* return aarch64_output_load_tp (operands[0]);"
    [(set_attr "type" "mrs")]
  )
  
***************
*** 7192,7198 ****
    {
      if (TARGET_SVE)
        {
! 	rtx abi = gen_int_mode (aarch64_tlsdesc_abi_id (), DImode);
  	rtx_insn *call
  	  = emit_call_insn (gen_tlsdesc_small_sve_<mode> (operands[0], abi));
  	RTL_CONST_CALL_P (call) = 1;
--- 7560,7567 ----
    {
      if (TARGET_SVE)
        {
! 	rtx abi = aarch64_gen_callee_cookie (AARCH64_ISA_MODE,
! 					     aarch64_tlsdesc_abi_id ());
  	rtx_insn *call
  	  = emit_call_insn (gen_tlsdesc_small_sve_<mode> (operands[0], abi));
  	RTL_CONST_CALL_P (call) = 1;
***************
*** 7236,7245 ****
  
  (define_insn "stack_tie"
    [(set (mem:BLK (scratch))
! 	(unspec:BLK [(match_operand:DI 0 "register_operand" "rk")
! 		     (match_operand:DI 1 "register_operand" "rk")]
  		    UNSPEC_PRLG_STK))]
!   ""
    ""
    [(set_attr "length" "0")]
  )
--- 7605,7615 ----
  
  (define_insn "stack_tie"
    [(set (mem:BLK (scratch))
! 	(unspec:BLK [(reg:DI SP_REGNUM)
! 		     (match_operand:DI 0 "register_operand" "rk")
! 		     (match_operand:DI 1 "const_int_operand")]
  		    UNSPEC_PRLG_STK))]
!   "REGNO (operands[0]) == INTVAL (operands[1])"
    ""
    [(set_attr "length" "0")]
  )
***************
*** 7880,7885 ****
--- 8250,8270 ----
    [(set (attr "length") (symbol_ref "INTVAL (operands[0])"))]
  )
  
+ (define_insn "aarch64_save_nzcv"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+ 	(unspec:DI [(reg:CC CC_REGNUM)] UNSPEC_SAVE_NZCV))]
+   ""
+   "mrs\t%0, nzcv"
+ )
+ 
+ (define_insn "aarch64_restore_nzcv"
+   [(set (reg:CC CC_REGNUM)
+ 	(unspec:CC [(match_operand:DI 0 "register_operand" "r")]
+ 		   UNSPEC_RESTORE_NZCV))]
+   ""
+   "msr\tnzcv, %0"
+ )
+ 
  ;; AdvSIMD Stuff
  (include "aarch64-simd.md")
  
***************
*** 7894,7896 ****
--- 8279,8284 ----
  
  ;; SVE2.
  (include "aarch64-sve2.md")
+ 
+ ;; SME and extensions
+ (include "aarch64-sme.md")
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64.opt gcc-14.1.0/gcc/config/aarch64/aarch64.opt
*** gcc-13.2.0/gcc/config/aarch64/aarch64.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/aarch64.opt	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ; Machine description for AArch64 architecture.
! ; Copyright (C) 2009-2023 Free Software Foundation, Inc.
  ; Contributed by ARM Ltd.
  ;
  ; This file is part of GCC.
--- 1,5 ----
  ; Machine description for AArch64 architecture.
! ; Copyright (C) 2009-2024 Free Software Foundation, Inc.
  ; Contributed by ARM Ltd.
  ;
  ; This file is part of GCC.
*************** TargetVariable
*** 40,46 ****
  unsigned aarch_enable_bti = 2
  
  TargetVariable
! enum aarch_key_type aarch_ra_sign_key = AARCH_KEY_A
  
  ; The TLS dialect names to use with -mtls-dialect.
  
--- 40,46 ----
  unsigned aarch_enable_bti = 2
  
  TargetVariable
! enum aarch64_key_type aarch64_ra_sign_key = AARCH64_KEY_A
  
  ; The TLS dialect names to use with -mtls-dialect.
  
*************** mcmodel=
*** 97,102 ****
--- 97,137 ----
  Target RejectNegative Joined Enum(cmodel) Var(aarch64_cmodel_var) Init(AARCH64_CMODEL_SMALL) Save
  Specify the code model.
  
+ Enum
+ Name(tp_reg) Type(enum aarch64_tp_reg)
+ The register used to access the thread pointer:
+ 
+ EnumValue
+ Enum(tp_reg) String(el0) Value(AARCH64_TPIDR_EL0)
+ 
+ EnumValue
+ Enum(tp_reg) String(tpidr_el0) Value(AARCH64_TPIDR_EL0)
+ 
+ EnumValue
+ Enum(tp_reg) String(el1) Value(AARCH64_TPIDR_EL1)
+ 
+ EnumValue
+ Enum(tp_reg) String(tpidr_el1) Value(AARCH64_TPIDR_EL1)
+ 
+ EnumValue
+ Enum(tp_reg) String(el2) Value(AARCH64_TPIDR_EL2)
+ 
+ EnumValue
+ Enum(tp_reg) String(tpidr_el2) Value(AARCH64_TPIDR_EL2)
+ 
+ EnumValue
+ Enum(tp_reg) String(el3) Value(AARCH64_TPIDR_EL3)
+ 
+ EnumValue
+ Enum(tp_reg) String(tpidr_el3) Value(AARCH64_TPIDR_EL3)
+ 
+ EnumValue
+ Enum(tp_reg) String(tpidrro_el0) Value(AARCH64_TPIDRRO_EL0)
+ 
+ mtp=
+ Target RejectNegative Joined Enum(tp_reg) Var(aarch64_tpidr_reg) Init(AARCH64_TPIDR_EL0) Save
+ Specify the thread pointer register.
+ 
  mstrict-align
  Target Mask(STRICT_ALIGN) Save
  Don't assume that unaligned accesses are handled by the system.
*************** precision of division results to about 1
*** 203,208 ****
--- 238,261 ----
  single precision and to 32 bits for double precision.
  
  Enum
+ Name(early_ra_scope) Type(enum aarch64_early_ra_scope)
+ 
+ EnumValue
+ Enum(early_ra_scope) String(all) Value(AARCH64_EARLY_RA_ALL)
+ 
+ EnumValue
+ Enum(early_ra_scope) String(strided) Value(AARCH64_EARLY_RA_STRIDED)
+ 
+ EnumValue
+ Enum(early_ra_scope) String(none) Value(AARCH64_EARLY_RA_NONE)
+ 
+ mearly-ra=
+ Target RejectNegative Joined Enum(early_ra_scope) Var(aarch64_early_ra) Init(AARCH64_EARLY_RA_NONE) Save
+ Specify when to enable an early register allocation pass.  The possibilities
+ are: all functions, functions that have access to strided multi-register
+ instructions, and no functions.
+ 
+ Enum
  Name(sve_vector_bits) Type(enum aarch64_sve_vector_bits_enum)
  The possible SVE vector lengths:
  
*************** mtrack-speculation
*** 236,241 ****
--- 289,304 ----
  Target Var(aarch64_track_speculation)
  Generate code to track when the CPU might be speculating incorrectly.
  
+ mearly-ldp-fusion
+ Target Var(flag_aarch64_early_ldp_fusion) Optimization Init(1)
+ Enable the copy of the AArch64 load/store pair fusion pass that runs before
+ register allocation.
+ 
+ mlate-ldp-fusion
+ Target Var(flag_aarch64_late_ldp_fusion) Optimization Init(1)
+ Enable the copy of the AArch64 load/store pair fusion pass that runs after
+ register allocation.
+ 
  mstack-protector-guard=
  Target RejectNegative Joined Enum(stack_protector_guard) Var(aarch64_stack_protector_guard) Init(SSP_GLOBAL)
  Use given stack-protector guard.
*************** moutline-atomics
*** 269,277 ****
  Target Var(aarch64_flag_outline_atomics) Init(2) Save
  Generate local calls to out-of-line atomic operations.
  
! -param=aarch64-sve-compare-costs=
! Target Joined UInteger Var(aarch64_sve_compare_costs) Init(1) IntegerRange(0, 1) Param
! When vectorizing for SVE, consider using unpacked vectors for smaller elements and use the cost model to pick the cheapest approach.  Also use the cost model to choose between SVE and Advanced SIMD vectorization.
  
  -param=aarch64-float-recp-precision=
  Target Joined UInteger Var(aarch64_float_recp_precision) Init(1) IntegerRange(1, 5) Param
--- 332,341 ----
  Target Var(aarch64_flag_outline_atomics) Init(2) Save
  Generate local calls to out-of-line atomic operations.
  
! -param=aarch64-vect-compare-costs=
! Target Joined UInteger Var(aarch64_vect_compare_costs) Init(1) IntegerRange(0, 1) Param
! When vectorizing, consider using multiple different approaches and use
! the cost model to choose the cheapest one.
  
  -param=aarch64-float-recp-precision=
  Target Joined UInteger Var(aarch64_float_recp_precision) Init(1) IntegerRange(1, 5) Param
*************** Target Joined UInteger Var(aarch64_mops_
*** 292,298 ****
  Constant memcpy size in bytes above which to start using MOPS sequence.
  
  -param=aarch64-mops-memmove-size-threshold=
! Target Joined UInteger Var(aarch64_mops_memmove_size_threshold) Init(0) Param
  Constant memmove size in bytes above which to start using MOPS sequence.
  
  -param=aarch64-mops-memset-size-threshold=
--- 356,362 ----
  Constant memcpy size in bytes above which to start using MOPS sequence.
  
  -param=aarch64-mops-memmove-size-threshold=
! Target Joined UInteger Var(aarch64_mops_memmove_size_threshold) Init(256) Param
  Constant memmove size in bytes above which to start using MOPS sequence.
  
  -param=aarch64-mops-memset-size-threshold=
*************** Constant memset size in bytes from which
*** 302,304 ****
--- 366,404 ----
  -param=aarch64-vect-unroll-limit=
  Target Joined UInteger Var(aarch64_vect_unroll_limit) Init(4) Param
  Limit how much the autovectorizer may unroll a loop.
+ 
+ -param=aarch64-ldp-policy=
+ Target Joined Var(aarch64_ldp_policy_param) Enum(aarch64_ldp_stp_policy) Init(AARCH64_LDP_STP_POLICY_DEFAULT) Param
+ --param=aarch64-ldp-policy=[default|always|never|aligned] Fine-grained policy for load pairs.
+ 
+ -param=aarch64-stp-policy=
+ Target Joined Var(aarch64_stp_policy_param) Enum(aarch64_ldp_stp_policy) Init(AARCH64_LDP_STP_POLICY_DEFAULT) Param
+ --param=aarch64-stp-policy=[default|always|never|aligned] Fine-grained policy for store pairs.
+ 
+ Enum
+ Name(aarch64_ldp_stp_policy) Type(enum aarch64_ldp_stp_policy) UnknownError(unknown LDP/STP policy %qs)
+ 
+ EnumValue
+ Enum(aarch64_ldp_stp_policy) String(default) Value(AARCH64_LDP_STP_POLICY_DEFAULT)
+ 
+ EnumValue
+ Enum(aarch64_ldp_stp_policy) String(always) Value(AARCH64_LDP_STP_POLICY_ALWAYS)
+ 
+ EnumValue
+ Enum(aarch64_ldp_stp_policy) String(never) Value(AARCH64_LDP_STP_POLICY_NEVER)
+ 
+ EnumValue
+ Enum(aarch64_ldp_stp_policy) String(aligned) Value(AARCH64_LDP_STP_POLICY_ALIGNED)
+ 
+ -param=aarch64-ldp-alias-check-limit=
+ Target Joined UInteger Var(aarch64_ldp_alias_check_limit) Init(8) IntegerRange(0, 65536) Param
+ Limit on number of alias checks performed when attempting to form an ldp/stp.
+ 
+ -param=aarch64-ldp-writeback=
+ Target Joined UInteger Var(aarch64_ldp_writeback) Init(2) IntegerRange(0,2) Param
+ Param to control which writeback opportunities we try to handle in the
+ load/store pair fusion pass.  A value of zero disables writeback
+ handling.  One means we try to form pairs involving one or more existing
+ individual writeback accesses where possible.  A value of two means we
+ also try to opportunistically form writeback opportunities by folding in
+ trailing destructive updates of the base register used by a pair.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/aarch64.opt.urls gcc-14.1.0/gcc/config/aarch64/aarch64.opt.urls
*** gcc-13.2.0/gcc/config/aarch64/aarch64.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/aarch64.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,93 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/aarch64/aarch64.opt and generated HTML
+ 
+ mbig-endian
+ UrlSuffix(gcc/AArch64-Options.html#index-mbig-endian)
+ 
+ mgeneral-regs-only
+ UrlSuffix(gcc/AArch64-Options.html#index-mgeneral-regs-only)
+ 
+ mharden-sls=
+ UrlSuffix(gcc/AArch64-Options.html#index-mharden-sls)
+ 
+ mfix-cortex-a53-835769
+ UrlSuffix(gcc/AArch64-Options.html#index-mfix-cortex-a53-835769)
+ 
+ mfix-cortex-a53-843419
+ UrlSuffix(gcc/AArch64-Options.html#index-mfix-cortex-a53-843419)
+ 
+ mlittle-endian
+ UrlSuffix(gcc/AArch64-Options.html#index-mlittle-endian)
+ 
+ ; skipping UrlSuffix for 'mcmodel=' due to finding no URLs
+ 
+ mtp=
+ UrlSuffix(gcc/AArch64-Options.html#index-mtp)
+ 
+ mstrict-align
+ UrlSuffix(gcc/AArch64-Options.html#index-mstrict-align)
+ 
+ momit-leaf-frame-pointer
+ UrlSuffix(gcc/AArch64-Options.html#index-momit-leaf-frame-pointer)
+ 
+ ; skipping UrlSuffix for 'mtls-dialect=' due to finding no URLs
+ 
+ mtls-size=
+ UrlSuffix(gcc/AArch64-Options.html#index-mtls-size)
+ 
+ march=
+ UrlSuffix(gcc/AArch64-Options.html#index-march)
+ 
+ mcpu=
+ UrlSuffix(gcc/AArch64-Options.html#index-mcpu)
+ 
+ mtune=
+ UrlSuffix(gcc/AArch64-Options.html#index-mtune)
+ 
+ mabi=
+ UrlSuffix(gcc/AArch64-Options.html#index-mabi)
+ 
+ moverride=
+ UrlSuffix(gcc/AArch64-Options.html#index-moverride)
+ 
+ mpc-relative-literal-loads
+ UrlSuffix(gcc/AArch64-Options.html#index-mpc-relative-literal-loads)
+ 
+ mbranch-protection=
+ UrlSuffix(gcc/AArch64-Options.html#index-mbranch-protection)
+ 
+ msign-return-address=
+ UrlSuffix(gcc/AArch64-Options.html#index-msign-return-address)
+ 
+ mlow-precision-recip-sqrt
+ UrlSuffix(gcc/AArch64-Options.html#index-mlow-precision-recip-sqrt)
+ 
+ mlow-precision-sqrt
+ UrlSuffix(gcc/AArch64-Options.html#index-mlow-precision-sqrt)
+ 
+ mlow-precision-div
+ UrlSuffix(gcc/AArch64-Options.html#index-mlow-precision-div)
+ 
+ mearly-ra=
+ UrlSuffix(gcc/AArch64-Options.html#index-mearly-ra)
+ 
+ msve-vector-bits=
+ UrlSuffix(gcc/AArch64-Options.html#index-msve-vector-bits)
+ 
+ mverbose-cost-dump
+ UrlSuffix(gcc/AArch64-Options.html#index-mverbose-cost-dump)
+ 
+ mearly-ldp-fusion
+ UrlSuffix(gcc/AArch64-Options.html#index-mearly-ldp-fusion)
+ 
+ mlate-ldp-fusion
+ UrlSuffix(gcc/AArch64-Options.html#index-mlate-ldp-fusion)
+ 
+ mstack-protector-guard=
+ UrlSuffix(gcc/AArch64-Options.html#index-mstack-protector-guard)
+ 
+ mstack-protector-guard-reg=
+ UrlSuffix(gcc/AArch64-Options.html#index-mstack-protector-guard-reg)
+ 
+ mstack-protector-guard-offset=
+ UrlSuffix(gcc/AArch64-Options.html#index-mstack-protector-guard-offset)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/arm_acle.h gcc-14.1.0/gcc/config/aarch64/arm_acle.h
*** gcc-13.2.0/gcc/config/aarch64/arm_acle.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/arm_acle.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* AArch64 Non-NEON ACLE intrinsics include file.
  
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* AArch64 Non-NEON ACLE intrinsics include file.
  
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** _GCC_ARM_ACLE_DATA_FN (revll, bswap64, u
*** 78,83 ****
--- 78,113 ----
  
  #undef _GCC_ARM_ACLE_DATA_FN
  
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __pld (void const volatile *__addr)
+ {
+   return __builtin_aarch64_pld (__addr);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __pli (void const volatile *__addr)
+ {
+   return __builtin_aarch64_pli (__addr);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __plix (unsigned int __cache, unsigned int __rettn,
+ 	void const volatile *__addr)
+ {
+   return __builtin_aarch64_plix (__cache, __rettn, __addr);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __pldx (unsigned int __access, unsigned int __cache, unsigned int __rettn,
+ 	void const volatile *__addr)
+ {
+   return __builtin_aarch64_pldx (__access, __cache, __rettn, __addr);
+ }
+ 
  __extension__ extern __inline unsigned long
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __revl (unsigned long __value)
*************** __rndrrs (uint64_t *__res)
*** 314,319 ****
--- 344,390 ----
  
  #pragma GCC pop_options
  
+ #define __arm_rsr(__regname) \
+   __builtin_aarch64_rsr (__regname)
+ 
+ #define __arm_rsrp(__regname) \
+   __builtin_aarch64_rsrp (__regname)
+ 
+ #define __arm_rsr64(__regname) \
+   __builtin_aarch64_rsr64 (__regname)
+ 
+ #define __arm_rsrf(__regname) \
+   __builtin_aarch64_rsrf (__regname)
+ 
+ #define __arm_rsrf64(__regname) \
+   __builtin_aarch64_rsrf64 (__regname)
+ 
+ #define __arm_wsr(__regname, __value) \
+   __builtin_aarch64_wsr (__regname, __value)
+ 
+ #define __arm_wsrp(__regname, __value) \
+   __builtin_aarch64_wsrp (__regname, __value)
+ 
+ #define __arm_wsr64(__regname, __value) \
+   __builtin_aarch64_wsr64 (__regname, __value)
+ 
+ #define __arm_wsrf(__regname, __value) \
+   __builtin_aarch64_wsrf (__regname, __value)
+ 
+ #define __arm_wsrf64(__regname, __value) \
+   __builtin_aarch64_wsrf64 (__regname, __value)
+ 
+ #pragma GCC push_options
+ #pragma GCC target ("+nothing+d128")
+ 
+ #define __arm_rsr128(__regname) \
+   __builtin_aarch64_rsr128 (__regname)
+ 
+ #define __arm_wsr128(__regname, __value) \
+   __builtin_aarch64_wsr128 (__regname, __value)
+ 
+ #pragma GCC pop_options
+ 
  #ifdef __cplusplus
  }
  #endif
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/arm_bf16.h gcc-14.1.0/gcc/config/aarch64/arm_bf16.h
*** gcc-13.2.0/gcc/config/aarch64/arm_bf16.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/arm_bf16.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Arm BF16 instrinsics include file.
  
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by Arm.
  
     This file is part of GCC.
--- 1,6 ----
  /* Arm BF16 instrinsics include file.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by Arm.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/arm_fp16.h gcc-14.1.0/gcc/config/aarch64/arm_fp16.h
*** gcc-13.2.0/gcc/config/aarch64/arm_fp16.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/arm_fp16.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* ARM FP16 scalar intrinsics include file.
  
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* ARM FP16 scalar intrinsics include file.
  
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** __extension__ extern __inline float16_t
*** 334,340 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vnegh_f16 (float16_t __a)
  {
!   return __builtin_aarch64_neghf (__a);
  }
  
  __extension__ extern __inline float16_t
--- 334,340 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vnegh_f16 (float16_t __a)
  {
!   return -__a;
  }
  
  __extension__ extern __inline float16_t
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/arm_neon.h gcc-14.1.0/gcc/config/aarch64/arm_neon.h
*** gcc-13.2.0/gcc/config/aarch64/arm_neon.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/arm_neon.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* ARM NEON intrinsics include file.
  
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* ARM NEON intrinsics include file.
  
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** __extension__ extern __inline int8x8_t
*** 4755,4796 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_s16 (int16x8_t __a, const int __b)
  {
!   return __builtin_aarch64_shrnv8hi (__a, __b);
  }
  
  __extension__ extern __inline int16x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_s32 (int32x4_t __a, const int __b)
  {
!   return __builtin_aarch64_shrnv4si (__a, __b);
  }
  
  __extension__ extern __inline int32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_s64 (int64x2_t __a, const int __b)
  {
!   return __builtin_aarch64_shrnv2di (__a, __b);
  }
  
  __extension__ extern __inline uint8x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_u16 (uint16x8_t __a, const int __b)
  {
!   return __builtin_aarch64_shrnv8hi_uus (__a, __b);
  }
  
  __extension__ extern __inline uint16x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_u32 (uint32x4_t __a, const int __b)
  {
!   return __builtin_aarch64_shrnv4si_uus (__a, __b);
  }
  
  __extension__ extern __inline uint32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_u64 (uint64x2_t __a, const int __b)
  {
!   return __builtin_aarch64_shrnv2di_uus (__a, __b);
  }
  
  __extension__ extern __inline int32x4_t
--- 4755,4796 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_s16 (int16x8_t __a, const int __b)
  {
!   return __builtin_aarch64_shrn_nv8hi (__a, __b);
  }
  
  __extension__ extern __inline int16x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_s32 (int32x4_t __a, const int __b)
  {
!   return __builtin_aarch64_shrn_nv4si (__a, __b);
  }
  
  __extension__ extern __inline int32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_s64 (int64x2_t __a, const int __b)
  {
!   return __builtin_aarch64_shrn_nv2di (__a, __b);
  }
  
  __extension__ extern __inline uint8x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_u16 (uint16x8_t __a, const int __b)
  {
!   return __builtin_aarch64_shrn_nv8hi_uus (__a, __b);
  }
  
  __extension__ extern __inline uint16x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_u32 (uint32x4_t __a, const int __b)
  {
!   return __builtin_aarch64_shrn_nv4si_uus (__a, __b);
  }
  
  __extension__ extern __inline uint32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_n_u64 (uint64x2_t __a, const int __b)
  {
!   return __builtin_aarch64_shrn_nv2di_uus (__a, __b);
  }
  
  __extension__ extern __inline int32x4_t
*************** __extension__ extern __inline int8x16_t
*** 5469,5510 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_sqshrn2_nv8hi (__a, __b, __c);
  }
  
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_sqshrn2_nv4si (__a, __b, __c);
  }
  
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_sqshrn2_nv2di (__a, __b, __c);
  }
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_uqshrn2_nv8hi_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_uqshrn2_nv4si_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_uqshrn2_nv2di_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint8x16_t
--- 5469,5510 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_sqsshrn2_nv8hi (__a, __b, __c);
  }
  
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_sqsshrn2_nv4si (__a, __b, __c);
  }
  
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_sqsshrn2_nv2di (__a, __b, __c);
  }
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_uqushrn2_nv8hi_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_uqushrn2_nv4si_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vqshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_uqushrn2_nv2di_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint8x16_t
*************** __extension__ extern __inline int8x16_t
*** 5532,5615 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2v8hi (__a, __b, __c);
  }
  
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2v4si (__a, __b, __c);
  }
  
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2v2di (__a, __b, __c);
  }
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2v8hi_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2v4si_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2v2di_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline int8x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_s16 (int16x8_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrnv8hi (__a, __b);
  }
  
  __extension__ extern __inline int16x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_s32 (int32x4_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrnv4si (__a, __b);
  }
  
  __extension__ extern __inline int32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_s64 (int64x2_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrnv2di (__a, __b);
  }
  
  __extension__ extern __inline uint8x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_u16 (uint16x8_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrnv8hi_uus (__a, __b);
  }
  
  __extension__ extern __inline uint16x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_u32 (uint32x4_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrnv4si_uus (__a, __b);
  }
  
  __extension__ extern __inline uint32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_u64 (uint64x2_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrnv2di_uus (__a, __b);
  }
  
  __extension__ extern __inline uint32x2_t
--- 5532,5615 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2_nv8hi (__a, __b, __c);
  }
  
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2_nv4si (__a, __b, __c);
  }
  
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2_nv2di (__a, __b, __c);
  }
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2_nv8hi_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2_nv4si_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_rshrn2_nv2di_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline int8x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_s16 (int16x8_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrn_nv8hi (__a, __b);
  }
  
  __extension__ extern __inline int16x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_s32 (int32x4_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrn_nv4si (__a, __b);
  }
  
  __extension__ extern __inline int32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_s64 (int64x2_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrn_nv2di (__a, __b);
  }
  
  __extension__ extern __inline uint8x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_u16 (uint16x8_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrn_nv8hi_uus (__a, __b);
  }
  
  __extension__ extern __inline uint16x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_u32 (uint32x4_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrn_nv4si_uus (__a, __b);
  }
  
  __extension__ extern __inline uint32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vrshrn_n_u64 (uint64x2_t __a, const int __b)
  {
!   return __builtin_aarch64_rshrn_nv2di_uus (__a, __b);
  }
  
  __extension__ extern __inline uint32x2_t
*************** __extension__ extern __inline int8x16_t
*** 5630,5671 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_shrn2v8hi (__a, __b, __c);
  }
  
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_shrn2v4si (__a, __b, __c);
  }
  
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_shrn2v2di (__a, __b, __c);
  }
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_shrn2v8hi_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_shrn2v4si_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_shrn2v2di_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline poly8x8_t
--- 5630,5671 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_ushrn2_nv8hi (__a, __b, __c);
  }
  
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_ushrn2_nv4si (__a, __b, __c);
  }
  
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_ushrn2_nv2di (__a, __b, __c);
  }
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
  {
!   return __builtin_aarch64_ushrn2_nv8hi_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
  {
!   return __builtin_aarch64_ushrn2_nv4si_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
  {
!   return __builtin_aarch64_ushrn2_nv2di_uuus (__a, __b, __c);
  }
  
  __extension__ extern __inline poly8x8_t
*************** __extension__ extern __inline uint64x1_t
*** 7550,7591 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcage_f64 (float64x1_t __a, float64x1_t __b)
  {
!   return vabs_f64 (__a) >= vabs_f64 (__b);
  }
  
  __extension__ extern __inline uint32_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcages_f32 (float32_t __a, float32_t __b)
  {
!   return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
  }
  
  __extension__ extern __inline uint32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcage_f32 (float32x2_t __a, float32x2_t __b)
  {
!   return vabs_f32 (__a) >= vabs_f32 (__b);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcageq_f32 (float32x4_t __a, float32x4_t __b)
  {
!   return vabsq_f32 (__a) >= vabsq_f32 (__b);
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaged_f64 (float64_t __a, float64_t __b)
  {
!   return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
  }
  
  __extension__ extern __inline uint64x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcageq_f64 (float64x2_t __a, float64x2_t __b)
  {
!   return vabsq_f64 (__a) >= vabsq_f64 (__b);
  }
  
  /* vcagt  */
--- 7550,7591 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcage_f64 (float64x1_t __a, float64x1_t __b)
  {
!   return vcreate_u64 (__builtin_aarch64_facgedf_uss (__a[0], __b[0]));
  }
  
  __extension__ extern __inline uint32_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcages_f32 (float32_t __a, float32_t __b)
  {
!   return __builtin_aarch64_facgesf_uss  (__a, __b);
  }
  
  __extension__ extern __inline uint32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcage_f32 (float32x2_t __a, float32x2_t __b)
  {
!   return __builtin_aarch64_facgev2sf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcageq_f32 (float32x4_t __a, float32x4_t __b)
  {
!   return __builtin_aarch64_facgev4sf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaged_f64 (float64_t __a, float64_t __b)
  {
!   return __builtin_aarch64_facgedf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcageq_f64 (float64x2_t __a, float64x2_t __b)
  {
!   return __builtin_aarch64_facgev2df_uss (__a, __b);
  }
  
  /* vcagt  */
*************** __extension__ extern __inline uint32_t
*** 7594,7635 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagts_f32 (float32_t __a, float32_t __b)
  {
!   return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
  }
  
  __extension__ extern __inline uint32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagt_f32 (float32x2_t __a, float32x2_t __b)
  {
!   return vabs_f32 (__a) > vabs_f32 (__b);
  }
  
  __extension__ extern __inline uint64x1_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagt_f64 (float64x1_t __a, float64x1_t __b)
  {
!   return vabs_f64 (__a) > vabs_f64 (__b);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagtq_f32 (float32x4_t __a, float32x4_t __b)
  {
!   return vabsq_f32 (__a) > vabsq_f32 (__b);
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagtd_f64 (float64_t __a, float64_t __b)
  {
!   return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
  }
  
  __extension__ extern __inline uint64x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagtq_f64 (float64x2_t __a, float64x2_t __b)
  {
!   return vabsq_f64 (__a) > vabsq_f64 (__b);
  }
  
  /* vcale  */
--- 7594,7635 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagts_f32 (float32_t __a, float32_t __b)
  {
!   return __builtin_aarch64_facgtsf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint32x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagt_f32 (float32x2_t __a, float32x2_t __b)
  {
!   return __builtin_aarch64_facgtv2sf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64x1_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagt_f64 (float64x1_t __a, float64x1_t __b)
  {
!   return vcreate_u64 (__builtin_aarch64_facgtdf_uss (__a[0], __b[0]));
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagtq_f32 (float32x4_t __a, float32x4_t __b)
  {
!   return __builtin_aarch64_facgtv4sf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagtd_f64 (float64_t __a, float64_t __b)
  {
!   return __builtin_aarch64_facgtdf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcagtq_f64 (float64x2_t __a, float64x2_t __b)
  {
!   return __builtin_aarch64_facgtv2df_uss (__a, __b);
  }
  
  /* vcale  */
*************** __extension__ extern __inline uint32x2_t
*** 7638,7679 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcale_f32 (float32x2_t __a, float32x2_t __b)
  {
!   return vabs_f32 (__a) <= vabs_f32 (__b);
  }
  
  __extension__ extern __inline uint64x1_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcale_f64 (float64x1_t __a, float64x1_t __b)
  {
!   return vabs_f64 (__a) <= vabs_f64 (__b);
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaled_f64 (float64_t __a, float64_t __b)
  {
!   return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
  }
  
  __extension__ extern __inline uint32_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcales_f32 (float32_t __a, float32_t __b)
  {
!   return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaleq_f32 (float32x4_t __a, float32x4_t __b)
  {
!   return vabsq_f32 (__a) <= vabsq_f32 (__b);
  }
  
  __extension__ extern __inline uint64x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaleq_f64 (float64x2_t __a, float64x2_t __b)
  {
!   return vabsq_f64 (__a) <= vabsq_f64 (__b);
  }
  
  /* vcalt  */
--- 7638,7679 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcale_f32 (float32x2_t __a, float32x2_t __b)
  {
!   return __builtin_aarch64_faclev2sf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64x1_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcale_f64 (float64x1_t __a, float64x1_t __b)
  {
!   return vcreate_u64 (__builtin_aarch64_facledf_uss (__a[0], __b[0]));
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaled_f64 (float64_t __a, float64_t __b)
  {
!   return __builtin_aarch64_facledf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint32_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcales_f32 (float32_t __a, float32_t __b)
  {
!   return __builtin_aarch64_faclesf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaleq_f32 (float32x4_t __a, float32x4_t __b)
  {
!   return __builtin_aarch64_faclev4sf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaleq_f64 (float64x2_t __a, float64x2_t __b)
  {
!   return __builtin_aarch64_faclev2df_uss (__a, __b);
  }
  
  /* vcalt  */
*************** __extension__ extern __inline uint32x2_t
*** 7682,7723 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcalt_f32 (float32x2_t __a, float32x2_t __b)
  {
!   return vabs_f32 (__a) < vabs_f32 (__b);
  }
  
  __extension__ extern __inline uint64x1_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcalt_f64 (float64x1_t __a, float64x1_t __b)
  {
!   return vabs_f64 (__a) < vabs_f64 (__b);
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaltd_f64 (float64_t __a, float64_t __b)
  {
!   return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaltq_f32 (float32x4_t __a, float32x4_t __b)
  {
!   return vabsq_f32 (__a) < vabsq_f32 (__b);
  }
  
  __extension__ extern __inline uint64x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaltq_f64 (float64x2_t __a, float64x2_t __b)
  {
!   return vabsq_f64 (__a) < vabsq_f64 (__b);
  }
  
  __extension__ extern __inline uint32_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcalts_f32 (float32_t __a, float32_t __b)
  {
!   return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
  }
  
  /* vceq - vector.  */
--- 7682,7723 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcalt_f32 (float32x2_t __a, float32x2_t __b)
  {
!   return __builtin_aarch64_facltv2sf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64x1_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcalt_f64 (float64x1_t __a, float64x1_t __b)
  {
!   return vcreate_u64 (__builtin_aarch64_facltdf_uss (__a[0], __b[0]));
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaltd_f64 (float64_t __a, float64_t __b)
  {
!   return __builtin_aarch64_facltdf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaltq_f32 (float32x4_t __a, float32x4_t __b)
  {
!   return __builtin_aarch64_facltv4sf_uss (__a, __b);
  }
  
  __extension__ extern __inline uint64x2_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcaltq_f64 (float64x2_t __a, float64x2_t __b)
  {
!   return __builtin_aarch64_facltv2df_uss (__a, __b);
  }
  
  __extension__ extern __inline uint32_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vcalts_f32 (float32_t __a, float32_t __b)
  {
!   return __builtin_aarch64_facltsf_uss (__a, __b);
  }
  
  /* vceq - vector.  */
*************** vld1q_lane_u64 (const uint64_t *__src, u
*** 13446,13451 ****
--- 13446,13588 ----
    return __aarch64_vset_lane_any (*__src, __vec, __lane);
  }
  
+ #pragma GCC push_options
+ #pragma GCC target ("+nothing+rcpc3+simd")
+ 
+ /* vldap1_lane.  */
+ 
+ __extension__ extern __inline uint64x1_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vldap1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
+ {
+   return __builtin_aarch64_vec_ldap1_lanev1di_usus (
+ 	  (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
+ }
+ 
+ __extension__ extern __inline uint64x2_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vldap1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
+ {
+   return __builtin_aarch64_vec_ldap1_lanev2di_usus (
+ 	  (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
+ }
+ 
+ __extension__ extern __inline int64x1_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vldap1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
+ {
+   return __builtin_aarch64_vec_ldap1_lanev1di (
+ 	  (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
+ }
+ 
+ __extension__ extern __inline int64x2_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vldap1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
+ {
+   return __builtin_aarch64_vec_ldap1_lanev2di (
+ 	  (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
+ }
+ 
+ __extension__ extern __inline float64x1_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vldap1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
+ {
+   return __builtin_aarch64_vec_ldap1_lanev1df (
+ 	  (const __builtin_aarch64_simd_df *) __src, __vec, __lane);
+ }
+ 
+ __extension__ extern __inline float64x2_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vldap1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
+ {
+   return __builtin_aarch64_vec_ldap1_lanev2df (
+ 	  (const __builtin_aarch64_simd_df *) __src, __vec, __lane);
+ }
+ 
+ __extension__ extern __inline poly64x1_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vldap1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
+ {
+   return __builtin_aarch64_vec_ldap1_lanev1di_psps (
+ 	  (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
+ }
+ 
+ __extension__ extern __inline poly64x2_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vldap1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
+ {
+   return __builtin_aarch64_vec_ldap1_lanev2di_psps (
+ 	  (const __builtin_aarch64_simd_di *) __src, __vec, __lane);
+ }
+ 
+ /* vstl1_lane.  */
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vstl1_lane_u64 (uint64_t *__src, uint64x1_t __vec, const int __lane)
+ {
+   __builtin_aarch64_vec_stl1_lanev1di_sus ((__builtin_aarch64_simd_di *) __src,
+ 					   __vec, __lane);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vstl1q_lane_u64 (uint64_t *__src, uint64x2_t __vec, const int __lane)
+ {
+   __builtin_aarch64_vec_stl1_lanev2di_sus ((__builtin_aarch64_simd_di *) __src,
+ 					   __vec, __lane);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vstl1_lane_s64 (int64_t *__src, int64x1_t __vec, const int __lane)
+ {
+   __builtin_aarch64_vec_stl1_lanev1di ((__builtin_aarch64_simd_di *) __src,
+ 				       __vec, __lane);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vstl1q_lane_s64 (int64_t *__src, int64x2_t __vec, const int __lane)
+ {
+   __builtin_aarch64_vec_stl1_lanev2di ((__builtin_aarch64_simd_di *) __src,
+ 				       __vec, __lane);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vstl1_lane_f64 (float64_t *__src, float64x1_t __vec, const int __lane)
+ {
+   __builtin_aarch64_vec_stl1_lanev1df ((__builtin_aarch64_simd_df *) __src,
+ 				       __vec, __lane);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vstl1q_lane_f64 (float64_t *__src, float64x2_t __vec, const int __lane)
+ {
+   __builtin_aarch64_vec_stl1_lanev2df ((__builtin_aarch64_simd_df *) __src,
+ 				       __vec, __lane);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vstl1_lane_p64 (poly64_t *__src, poly64x1_t __vec, const int __lane)
+ {
+   __builtin_aarch64_vec_stl1_lanev1di_sps ((__builtin_aarch64_simd_di *) __src,
+ 					   __vec, __lane);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ vstl1q_lane_p64 (poly64_t *__src, poly64x2_t __vec, const int __lane)
+ {
+   __builtin_aarch64_vec_stl1_lanev2di_sps ((__builtin_aarch64_simd_di *) __src,
+ 					   __vec, __lane);
+ }
+ 
+ #pragma GCC pop_options
+ 
  /* vldn */
  
  __extension__ extern __inline int64x1x2_t
*************** __extension__ extern __inline int64_t
*** 17588,17601 ****
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vpaddd_s64 (int64x2_t __a)
  {
!   return __builtin_aarch64_addpdi (__a);
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vpaddd_u64 (uint64x2_t __a)
  {
!   return __builtin_aarch64_addpdi_uu (__a);
  }
  
  /* vqabs */
--- 17725,17738 ----
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vpaddd_s64 (int64x2_t __a)
  {
!   return __builtin_aarch64_reduc_plus_scal_v2di (__a);
  }
  
  __extension__ extern __inline uint64_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vpaddd_u64 (uint64x2_t __a)
  {
!   return __builtin_aarch64_reduc_plus_scal_v2di_uu (__a);
  }
  
  /* vqabs */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/arm_neon_sve_bridge.h gcc-14.1.0/gcc/config/aarch64/arm_neon_sve_bridge.h
*** gcc-13.2.0/gcc/config/aarch64/arm_neon_sve_bridge.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/arm_neon_sve_bridge.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,38 ----
+ /* AArch64 NEON-SVE Bridge intrinsics include file.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published
+    by the Free Software Foundation; either version 3, or (at your
+    option) any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    Under Section 7 of GPL version 3, you are granted additional
+    permissions described in the GCC Runtime Library Exception, version
+    3.1, as published by the Free Software Foundation.
+ 
+    You should have received a copy of the GNU General Public License and
+    a copy of the GCC Runtime Library Exception along with this program;
+    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _ARM_NEON_SVE_BRIDGE_H_
+ #define _ARM_NEON_SVE_BRIDGE_H_
+ 
+ #include <arm_neon.h>
+ #include <arm_sve.h>
+ 
+ /* NOTE: This implementation of arm_neon_sve_bridge.h is intentionally short.  It does
+    not define the types and intrinsic functions directly in C and C++
+    code, but instead uses the following pragma to tell GCC to insert the
+    necessary type and function definitions itself.  The net effect is the
+    same, and the file is a complete implementation of arm_neon_sve_bridge.h.  */
+ #pragma GCC aarch64 "arm_neon_sve_bridge.h"
+ 
+ #endif
\ No newline at end of file
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/arm_sme.h gcc-14.1.0/gcc/config/aarch64/arm_sme.h
*** gcc-13.2.0/gcc/config/aarch64/arm_sme.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/arm_sme.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,45 ----
+ /* AArch64 SME intrinsics include file.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published
+    by the Free Software Foundation; either version 3, or (at your
+    option) any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    Under Section 7 of GPL version 3, you are granted additional
+    permissions described in the GCC Runtime Library Exception, version
+    3.1, as published by the Free Software Foundation.
+ 
+    You should have received a copy of the GNU General Public License and
+    a copy of the GCC Runtime Library Exception along with this program;
+    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _ARM_SME_H_
+ #define _ARM_SME_H_
+ 
+ #include <arm_sve.h>
+ #pragma GCC aarch64 "arm_sme.h"
+ 
+ void __arm_za_disable(void) __arm_streaming_compatible;
+ 
+ void *__arm_sc_memcpy(void *, const void *, __SIZE_TYPE__)
+   __arm_streaming_compatible;
+ 
+ void *__arm_sc_memmove(void *, const void *, __SIZE_TYPE__)
+   __arm_streaming_compatible;
+ 
+ void *__arm_sc_memset(void *, int, __SIZE_TYPE__)
+   __arm_streaming_compatible;
+ 
+ void *__arm_sc_memchr(void *, int, __SIZE_TYPE__)
+   __arm_streaming_compatible;
+ 
+ #endif
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/arm_sve.h gcc-14.1.0/gcc/config/aarch64/arm_sve.h
*** gcc-13.2.0/gcc/config/aarch64/arm_sve.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/arm_sve.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* AArch64 SVE intrinsics include file.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* AArch64 SVE intrinsics include file.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/atomics.md gcc-14.1.0/gcc/config/aarch64/atomics.md
*** gcc-13.2.0/gcc/config/aarch64/atomics.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/atomics.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AArch64 processor synchronization primitives.
! ;; Copyright (C) 2009-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AArch64 processor synchronization primitives.
! ;; Copyright (C) 2009-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 39,45 ****
  (define_mode_attr cas_short_expected_pred
    [(QI "aarch64_reg_or_imm") (HI "aarch64_plushi_operand")])
  (define_mode_attr cas_short_expected_imm
!   [(QI "n") (HI "Uph")])
  
  (define_insn_and_split "@aarch64_compare_and_swap<mode>"
    [(set (reg:CC CC_REGNUM)					;; bool out
--- 39,45 ----
  (define_mode_attr cas_short_expected_pred
    [(QI "aarch64_reg_or_imm") (HI "aarch64_plushi_operand")])
  (define_mode_attr cas_short_expected_imm
!   [(QI "n") (HI "Uih")])
  
  (define_insn_and_split "@aarch64_compare_and_swap<mode>"
    [(set (reg:CC CC_REGNUM)					;; bool out
***************
*** 224,230 ****
        UNSPECV_ATOMIC_EXCHG))
     (clobber (reg:CC CC_REGNUM))
     (clobber (match_scratch:SI 4 "=&r"))]
!   ""
    "#"
    "&& epilogue_completed"
    [(const_int 0)]
--- 224,230 ----
        UNSPECV_ATOMIC_EXCHG))
     (clobber (reg:CC CC_REGNUM))
     (clobber (match_scratch:SI 4 "=&r"))]
!   "!TARGET_LSE"
    "#"
    "&& epilogue_completed"
    [(const_int 0)]
***************
*** 705,717 ****
  )
  
  (define_insn "*aarch64_atomic_load<ALLX:mode>_rcpc_zext"
!   [(set (match_operand:GPI 0 "register_operand" "=r")
!     (zero_extend:GPI
        (unspec_volatile:ALLX
          [(match_operand:ALLX 1 "aarch64_sync_memory_operand" "Q")
           (match_operand:SI 2 "const_int_operand")]			;; model
         UNSPECV_LDAP)))]
!   "TARGET_RCPC && (<GPI:sizen> > <ALLX:sizen>)"
    "ldapr<ALLX:atomic_sfx>\t%w0, %1"
  )
  
--- 705,717 ----
  )
  
  (define_insn "*aarch64_atomic_load<ALLX:mode>_rcpc_zext"
!   [(set (match_operand:SD_HSDI 0 "register_operand" "=r")
!     (zero_extend:SD_HSDI
        (unspec_volatile:ALLX
          [(match_operand:ALLX 1 "aarch64_sync_memory_operand" "Q")
           (match_operand:SI 2 "const_int_operand")]			;; model
         UNSPECV_LDAP)))]
!   "TARGET_RCPC && (<SD_HSDI:sizen> > <ALLX:sizen>)"
    "ldapr<ALLX:atomic_sfx>\t%w0, %1"
  )
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/biarchilp32.h gcc-14.1.0/gcc/config/aarch64/biarchilp32.h
*** gcc-13.2.0/gcc/config/aarch64/biarchilp32.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/biarchilp32.h	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* Make configure files to produce biarch compiler defaulting to ilp32 ABI.
     This file must be included very first, while the OS specific file later
     to overwrite otherwise wrong defaults.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
  This file is part of GCC.
--- 1,7 ----
  /* Make configure files to produce biarch compiler defaulting to ilp32 ABI.
     This file must be included very first, while the OS specific file later
     to overwrite otherwise wrong defaults.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/biarchlp64.h gcc-14.1.0/gcc/config/aarch64/biarchlp64.h
*** gcc-13.2.0/gcc/config/aarch64/biarchlp64.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/biarchlp64.h	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* Make configure files to produce biarch compiler defaulting to ilp64 ABI.
     This file must be included very first, while the OS specific file later
     to overwrite otherwise wrong defaults.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
  This file is part of GCC.
--- 1,7 ----
  /* Make configure files to produce biarch compiler defaulting to ilp64 ABI.
     This file must be included very first, while the OS specific file later
     to overwrite otherwise wrong defaults.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/check-sve-md.awk gcc-14.1.0/gcc/config/aarch64/check-sve-md.awk
*** gcc-13.2.0/gcc/config/aarch64/check-sve-md.awk	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/check-sve-md.awk	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  #!/usr/bin/awk -f
! # Copyright (C) 2019-2023 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify it
  # under the terms of the GNU General Public License as published by the
--- 1,5 ----
  #!/usr/bin/awk -f
! # Copyright (C) 2019-2024 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify it
  # under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/constraints.md gcc-14.1.0/gcc/config/aarch64/constraints.md
*** gcc-13.2.0/gcc/config/aarch64/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AArch64 architecture.
! ;; Copyright (C) 2009-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AArch64 architecture.
! ;; Copyright (C) 2009-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 21,26 ****
--- 21,32 ----
  (define_register_constraint "k" "STACK_REG"
    "@internal The stack register.")
  
+ (define_register_constraint "Uci" "W8_W11_REGS"
+   "@internal r8-r11, which can be used to index ZA.")
+ 
+ (define_register_constraint "Ucj" "W12_W15_REGS"
+   "@internal r12-r15, which can be used to index ZA.")
+ 
  (define_register_constraint "Ucs" "TAILCALL_ADDR_REGS"
    "@internal Registers suitable for an indirect tail call")
  
***************
*** 36,52 ****
  (define_register_constraint "w" "FP_REGS"
    "Floating point and SIMD vector registers.")
  
  (define_register_constraint "Upa" "PR_REGS"
    "SVE predicate registers p0 - p15.")
  
  (define_register_constraint "Upl" "PR_LO_REGS"
    "SVE predicate registers p0 - p7.")
  
! (define_register_constraint "x" "FP_LO_REGS"
!   "Floating point and SIMD vector registers V0 - V15.")
! 
! (define_register_constraint "y" "FP_LO8_REGS"
!   "Floating point and SIMD vector registers V0 - V7.")
  
  (define_constraint "c"
   "@internal The condition code register."
--- 42,81 ----
  (define_register_constraint "w" "FP_REGS"
    "Floating point and SIMD vector registers.")
  
+ (define_register_constraint "x" "FP_LO_REGS"
+   "Floating point and SIMD vector registers V0 - V15.")
+ 
+ (define_register_constraint "y" "FP_LO8_REGS"
+   "Floating point and SIMD vector registers V0 - V7.")
+ 
+ (define_register_constraint "Uw2" "FP_REGS"
+   "Even floating point and SIMD vector registers."
+   "regno % 2 == 0")
+ 
+ (define_register_constraint "Uw4" "FP_REGS"
+   "4-tuple-aligned floating point and SIMD vector registers."
+   "regno % 4 == 0")
+ 
+ (define_register_constraint "Uwd" "FP_REGS"
+   "@internal The first register in a tuple of 2 strided FPRs."
+   "(regno & 0x8) == 0")
+ 
+ (define_register_constraint "Uwt" "FP_REGS"
+   "@internal The first register in a tuple of 4 strided FPRs."
+   "(regno & 0xc) == 0")
+ 
  (define_register_constraint "Upa" "PR_REGS"
    "SVE predicate registers p0 - p15.")
  
+ (define_register_constraint "Up2" "PR_REGS"
+   "An even SVE predicate register, p0 - p14."
+   "regno % 2 == 0")
+ 
  (define_register_constraint "Upl" "PR_LO_REGS"
    "SVE predicate registers p0 - p7.")
  
! (define_register_constraint "Uph" "PR_HI_REGS"
!   "SVE predicate registers p8 - p15.")
  
  (define_constraint "c"
   "@internal The condition code register."
***************
*** 74,79 ****
--- 103,114 ----
     a single ADDVL or ADDPL."
   (match_operand 0 "aarch64_sve_addvl_addpl_immediate"))
  
+ (define_constraint "UaV"
+   "@internal
+    A constraint that matches a VG-based constant that can be added by
+    a single ADDSVL or ADDSPL."
+  (match_operand 0 "aarch64_addsvl_addspl_immediate"))
+ 
  (define_constraint "Uat"
    "@internal
     A constraint that matches a VG-based constant that can be added by
***************
*** 83,89 ****
  (define_constraint "J"
   "A constant that can be used with a SUB operation (once negated)."
   (and (match_code "const_int")
!       (match_test "aarch64_uimm12_shift (-ival)")))
  
  ;; We can't use the mode of a CONST_INT to determine the context in
  ;; which it is being used, so we must have a separate constraint for
--- 118,124 ----
  (define_constraint "J"
   "A constant that can be used with a SUB operation (once negated)."
   (and (match_code "const_int")
!       (match_test "aarch64_uimm12_shift (- (unsigned HOST_WIDE_INT) ival)")))
  
  ;; We can't use the mode of a CONST_INT to determine the context in
  ;; which it is being used, so we must have a separate constraint for
***************
*** 219,224 ****
--- 254,271 ----
   (and (match_code "const_int")
        (match_test "aarch64_high_bits_all_ones_p (ival)")))
  
+ (define_constraint "Usr"
+   "@internal
+    A constraint that matches a value produced by RDVL."
+  (and (match_code "const_poly_int")
+       (match_test "aarch64_sve_rdvl_immediate_p (op)")))
+ 
+ (define_constraint "UsR"
+   "@internal
+    A constraint that matches a value produced by RDSVL."
+  (and (match_code "const")
+       (match_test "aarch64_rdsvl_immediate_p (op)")))
+ 
  (define_constraint "Usv"
    "@internal
     A constraint that matches a VG-based constant that can be loaded by
***************
*** 260,266 ****
    (and (match_code "const_int")
         (match_test "(unsigned) exact_log2 (ival) <= 4")))
  
! (define_constraint "Uph"
    "@internal
    A constraint that matches HImode integers zero extendable to
    SImode plus_operand."
--- 307,313 ----
    (and (match_code "const_int")
         (match_test "(unsigned) exact_log2 (ival) <= 4")))
  
! (define_constraint "Uih"
    "@internal
    A constraint that matches HImode integers zero extendable to
    SImode plus_operand."
***************
*** 287,293 ****
  ;; Used for storing or loading pairs in an AdvSIMD register using an STP/LDP
  ;; as a vector-concat.  The address mode uses the same constraints as if it
  ;; were for a single value.
! (define_memory_constraint "Umn"
    "@internal
    A memory address suitable for a load/store pair operation."
    (and (match_code "mem")
--- 334,340 ----
  ;; Used for storing or loading pairs in an AdvSIMD register using an STP/LDP
  ;; as a vector-concat.  The address mode uses the same constraints as if it
  ;; were for a single value.
! (define_relaxed_memory_constraint "Umn"
    "@internal
    A memory address suitable for a load/store pair operation."
    (and (match_code "mem")
***************
*** 468,479 ****
--- 515,548 ----
  			GET_MODE_UNIT_BITSIZE (mode) - 1,
  			GET_MODE_UNIT_BITSIZE (mode) - 1)")))
  
+ (define_constraint "D2"
+   "@internal
+  A constraint that matches vector of immediates that is bits(mode)/2."
+  (and (match_code "const,const_vector")
+       (match_test "aarch64_simd_shift_imm_vec_exact_top (op, mode)")))
+ 
+ (define_constraint "DL"
+   "@internal
+  A constraint that matches vector of immediates for left shift long.
+  That is immediates between 0 to (bits(mode)/2)-1."
+  (and (match_code "const,const_vector")
+       (match_test "aarch64_const_vec_all_same_in_range_p (op, 0,
+ 			(GET_MODE_UNIT_BITSIZE (mode) / 2) - 1)")))
+ 
  (define_constraint "Dr"
    "@internal
   A constraint that matches vector of immediates for right shifts."
   (and (match_code "const,const_vector")
        (match_test "aarch64_simd_shift_imm_p (op, GET_MODE (op),
  						 false)")))
+ 
+ (define_constraint "Dx"
+   "@internal
+  A constraint that matches a vector of 64-bit immediates which we don't have a
+  single instruction to create but that we can create in creative ways."
+  (and (match_code "const_int,const,const_vector")
+       (match_test "aarch64_simd_special_constant_p (op, DImode)")))
+ 
  (define_constraint "Dz"
    "@internal
   A constraint that matches a vector of immediate zero."
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/cortex-a57-fma-steering.cc gcc-14.1.0/gcc/config/aarch64/cortex-a57-fma-steering.cc
*** gcc-13.2.0/gcc/config/aarch64/cortex-a57-fma-steering.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/cortex-a57-fma-steering.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* FMA steering optimization pass for Cortex-A57.
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* FMA steering optimization pass for Cortex-A57.
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/driver-aarch64.cc gcc-14.1.0/gcc/config/aarch64/driver-aarch64.cc
*** gcc-13.2.0/gcc/config/aarch64/driver-aarch64.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/driver-aarch64.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Native CPU detection for aarch64.
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Native CPU detection for aarch64.
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** host_detect_local_cpu (int argc, const c
*** 262,267 ****
--- 262,268 ----
    unsigned int n_variants = 0;
    bool processed_exts = false;
    aarch64_feature_flags extension_flags = 0;
+   aarch64_feature_flags unchecked_extension_flags = 0;
    aarch64_feature_flags default_flags = 0;
    std::string buf;
    size_t sep_pos = -1;
*************** host_detect_local_cpu (int argc, const c
*** 348,354 ****
  	      /* If the feature contains no HWCAPS string then ignore it for the
  		 auto detection.  */
  	      if (val.empty ())
! 		continue;
  
  	      bool enabled = true;
  
--- 349,358 ----
  	      /* If the feature contains no HWCAPS string then ignore it for the
  		 auto detection.  */
  	      if (val.empty ())
! 		{
! 		  unchecked_extension_flags |= aarch64_extensions[i].flag;
! 		  continue;
! 		}
  
  	      bool enabled = true;
  
*************** host_detect_local_cpu (int argc, const c
*** 380,386 ****
    if (n_cores == 0
        || n_cores > 2
        || (n_cores == 1 && n_variants != 1)
!       || imp == INVALID_IMP)
      goto not_found;
  
    /* Simple case, one core type or just looking for the arch. */
--- 384,391 ----
    if (n_cores == 0
        || n_cores > 2
        || (n_cores == 1 && n_variants != 1)
!       || imp == INVALID_IMP
!       || !processed_exts)
      goto not_found;
  
    /* Simple case, one core type or just looking for the arch. */
*************** host_detect_local_cpu (int argc, const c
*** 447,452 ****
--- 452,461 ----
    if (tune)
      return res;
  
+   /* Add any features that should be present, but can't be verified using
+      the /proc/cpuinfo "Features" list.  */
+   extension_flags |= unchecked_extension_flags & default_flags;
+ 
    {
      std::string extension
        = aarch64_get_extension_string_for_isa_flags (extension_flags,
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/falkor-tag-collision-avoidance.cc gcc-14.1.0/gcc/config/aarch64/falkor-tag-collision-avoidance.cc
*** gcc-13.2.0/gcc/config/aarch64/falkor-tag-collision-avoidance.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/falkor-tag-collision-avoidance.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Tag Collision Avoidance pass for Falkor.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Tag Collision Avoidance pass for Falkor.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** dump_insn_list (const rtx &t, const insn
*** 740,746 ****
  		void *unused ATTRIBUTE_UNUSED)
  {
    gcc_assert (dump_file);
!   fprintf (dump_file, "Tag 0x%lx ::\n", INTVAL (t));
  
    for (unsigned i = 0; i < insn_info.length (); i++)
      dump_insn_slim (dump_file, insn_info[i]->insn);
--- 740,746 ----
  		void *unused ATTRIBUTE_UNUSED)
  {
    gcc_assert (dump_file);
!   fprintf (dump_file, "Tag 0x" HOST_WIDE_INT_PRINT_HEX_PURE " ::\n", INTVAL (t));
  
    for (unsigned i = 0; i < insn_info.length (); i++)
      dump_insn_slim (dump_file, insn_info[i]->insn);
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/falkor.md gcc-14.1.0/gcc/config/aarch64/falkor.md
*** gcc-13.2.0/gcc/config/aarch64/falkor.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/falkor.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Falkor pipeline description
! ;; Copyright (C) 2017-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Falkor pipeline description
! ;; Copyright (C) 2017-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/fractional-cost.h gcc-14.1.0/gcc/config/aarch64/fractional-cost.h
*** gcc-13.2.0/gcc/config/aarch64/fractional-cost.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/fractional-cost.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  // Simple fixed-point representation of fractional costs
! // Copyright (C) 2021-2023 Free Software Foundation, Inc.
  //
  // This file is part of GCC.
  //
--- 1,5 ----
  // Simple fixed-point representation of fractional costs
! // Copyright (C) 2021-2024 Free Software Foundation, Inc.
  //
  // This file is part of GCC.
  //
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/geniterators.sh gcc-14.1.0/gcc/config/aarch64/geniterators.sh
*** gcc-13.2.0/gcc/config/aarch64/geniterators.sh	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/geniterators.sh	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/bin/sh
  #
! # Copyright (C) 2014-2023 Free Software Foundation, Inc.
  # Contributed by ARM Ltd.
  #
  # This file is part of GCC.
--- 1,6 ----
  #!/bin/sh
  #
! # Copyright (C) 2014-2024 Free Software Foundation, Inc.
  # Contributed by ARM Ltd.
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/gentune.sh gcc-14.1.0/gcc/config/aarch64/gentune.sh
*** gcc-13.2.0/gcc/config/aarch64/gentune.sh	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/gentune.sh	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/bin/sh
  #
! # Copyright (C) 2011-2023 Free Software Foundation, Inc.
  # Contributed by ARM Ltd.
  #
  # This file is part of GCC.
--- 1,6 ----
  #!/bin/sh
  #
! # Copyright (C) 2011-2024 Free Software Foundation, Inc.
  # Contributed by ARM Ltd.
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/iterators.md gcc-14.1.0/gcc/config/aarch64/iterators.md
*** gcc-13.2.0/gcc/config/aarch64/iterators.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/iterators.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AArch64 architecture.
! ;; Copyright (C) 2009-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AArch64 architecture.
! ;; Copyright (C) 2009-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 99,109 ****
  ;; Double vector modes suitable for moving.  Includes BFmode.
  (define_mode_iterator VDMOV [V8QI V4HI V4HF V4BF V2SI V2SF])
  
  ;; All modes stored in registers d0-d31.
  (define_mode_iterator DREG [V8QI V4HI V4HF V2SI V2SF DF])
  
  ;; Copy of the above.
! (define_mode_iterator DREG2 [V8QI V4HI V4HF V2SI V2SF DF])
  
  ;; All modes suitable to store/load pair (2 elements) using STP/LDP.
  (define_mode_iterator VP_2E [V2SI V2SF V2DI V2DF])
--- 99,112 ----
  ;; Double vector modes suitable for moving.  Includes BFmode.
  (define_mode_iterator VDMOV [V8QI V4HI V4HF V4BF V2SI V2SF])
  
+ ;; 64-bit modes for operations that implicitly clear the top bits of a Q reg.
+ (define_mode_iterator VDZ [V8QI V4HI V4HF V4BF V2SI V2SF DI DF])
+ 
  ;; All modes stored in registers d0-d31.
  (define_mode_iterator DREG [V8QI V4HI V4HF V2SI V2SF DF])
  
  ;; Copy of the above.
! (define_mode_iterator DREG2 [DREG])
  
  ;; All modes suitable to store/load pair (2 elements) using STP/LDP.
  (define_mode_iterator VP_2E [V2SI V2SF V2DI V2DF])
***************
*** 118,124 ****
  (define_mode_iterator VQ [V16QI V8HI V4SI V2DI V8HF V4SF V2DF V8BF])
  
  ;; Copy of the above.
! (define_mode_iterator VQ2 [V16QI V8HI V4SI V2DI V8HF V8BF V4SF V2DF])
  
  ;; Quad vector modes suitable for moving.  Includes BFmode.
  (define_mode_iterator VQMOV [V16QI V8HI V4SI V2DI V8HF V8BF V4SF V2DF])
--- 121,127 ----
  (define_mode_iterator VQ [V16QI V8HI V4SI V2DI V8HF V4SF V2DF V8BF])
  
  ;; Copy of the above.
! (define_mode_iterator VQ2 [VQ])
  
  ;; Quad vector modes suitable for moving.  Includes BFmode.
  (define_mode_iterator VQMOV [V16QI V8HI V4SI V2DI V8HF V8BF V4SF V2DF])
***************
*** 308,331 ****
  ;; All byte modes.
  (define_mode_iterator VB [V8QI V16QI])
  
  ;; 2 and 4 lane SI modes.
  (define_mode_iterator VS [V2SI V4SI])
  
  (define_mode_iterator TX [TI TF TD])
  
  (define_mode_iterator VTX [TI TF TD V16QI V8HI V4SI V2DI V8HF V4SF V2DF V8BF])
  
  ;; Advanced SIMD opaque structure modes.
  (define_mode_iterator VSTRUCT [OI CI XI])
  
- ;; Advanced SIMD 64-bit vector structure modes.
- (define_mode_iterator VSTRUCT_D [V2x8QI V2x4HI V2x2SI V2x1DI
- 				 V2x4HF V2x2SF V2x1DF V2x4BF
- 				 V3x8QI V3x4HI V3x2SI V3x1DI
- 				 V3x4HF V3x2SF V3x1DF V3x4BF
- 				 V4x8QI V4x4HI V4x2SI V4x1DI
- 				 V4x4HF V4x2SF V4x1DF V4x4BF])
- 
  ;; Advanced SIMD 64-bit 2-vector structure modes.
  (define_mode_iterator VSTRUCT_2D [V2x8QI V2x4HI V2x2SI V2x1DI
  				  V2x4HF V2x2SF V2x1DF V2x4BF])
--- 311,335 ----
  ;; All byte modes.
  (define_mode_iterator VB [V8QI V16QI])
  
+ ;; 1 and 2 lane DI and DF modes.
+ (define_mode_iterator V12DIF [V1DI V1DF V2DI V2DF])
+ 
+ ;; 1 and 2 lane DI mode.
+ (define_mode_iterator V12DI [V1DI V2DI])
+ 
  ;; 2 and 4 lane SI modes.
  (define_mode_iterator VS [V2SI V4SI])
  
  (define_mode_iterator TX [TI TF TD])
  
+ ;; Duplicate of the above
+ (define_mode_iterator TX2 [TX])
+ 
  (define_mode_iterator VTX [TI TF TD V16QI V8HI V4SI V2DI V8HF V4SF V2DF V8BF])
  
  ;; Advanced SIMD opaque structure modes.
  (define_mode_iterator VSTRUCT [OI CI XI])
  
  ;; Advanced SIMD 64-bit 2-vector structure modes.
  (define_mode_iterator VSTRUCT_2D [V2x8QI V2x4HI V2x2SI V2x1DI
  				  V2x4HF V2x2SF V2x1DF V2x4BF])
***************
*** 338,343 ****
--- 342,350 ----
  (define_mode_iterator VSTRUCT_4D [V4x8QI V4x4HI V4x2SI V4x1DI
  				  V4x4HF V4x2SF V4x1DF V4x4BF])
  
+ ;; Advanced SIMD 64-bit vector structure modes.
+ (define_mode_iterator VSTRUCT_D [VSTRUCT_2D VSTRUCT_3D VSTRUCT_4D])
+ 
  ;; Advanced SIMD 64-bit 2-vector structure modes minus V2x1DI and V2x1DF.
  (define_mode_iterator VSTRUCT_2DNX [V2x8QI V2x4HI V2x2SI V2x4HF
  				    V2x2SF V2x4BF])
***************
*** 362,375 ****
  ;; Advanced SIMD 64-bit 4-vector structure modes with 64-bit elements.
  (define_mode_iterator VSTRUCT_4DX [V4x1DI V4x1DF])
  
- ;; Advanced SIMD 128-bit vector structure modes.
- (define_mode_iterator VSTRUCT_Q [V2x16QI V2x8HI V2x4SI V2x2DI
- 				 V2x8HF V2x4SF V2x2DF V2x8BF
- 				 V3x16QI V3x8HI V3x4SI V3x2DI
- 				 V3x8HF V3x4SF V3x2DF V3x8BF
- 				 V4x16QI V4x8HI V4x4SI V4x2DI
- 				 V4x8HF V4x4SF V4x2DF V4x8BF])
- 
  ;; Advanced SIMD 128-bit 2-vector structure modes.
  (define_mode_iterator VSTRUCT_2Q [V2x16QI V2x8HI V2x4SI V2x2DI
  				  V2x8HF V2x4SF V2x2DF V2x8BF])
--- 369,374 ----
***************
*** 382,430 ****
  (define_mode_iterator VSTRUCT_4Q [V4x16QI V4x8HI V4x4SI V4x2DI
  				  V4x8HF V4x4SF V4x2DF V4x8BF])
  
  ;; Advanced SIMD 2-vector structure modes.
! (define_mode_iterator VSTRUCT_2QD [V2x8QI V2x4HI V2x2SI V2x1DI
! 				   V2x4HF V2x2SF V2x1DF V2x4BF
! 				   V2x16QI V2x8HI V2x4SI V2x2DI
! 				   V2x8HF V2x4SF V2x2DF V2x8BF])
  
  ;; Advanced SIMD 3-vector structure modes.
! (define_mode_iterator VSTRUCT_3QD [V3x8QI V3x4HI V3x2SI V3x1DI
! 				   V3x4HF V3x2SF V3x1DF V3x4BF
! 				   V3x16QI V3x8HI V3x4SI V3x2DI
! 				   V3x8HF V3x4SF V3x2DF V3x8BF])
  
  ;; Advanced SIMD 4-vector structure modes.
! (define_mode_iterator VSTRUCT_4QD [V4x8QI V4x4HI V4x2SI V4x1DI
! 				   V4x4HF V4x2SF V4x1DF V4x4BF
! 				   V4x16QI V4x8HI V4x4SI V4x2DI
! 				   V4x8HF V4x4SF V4x2DF V4x8BF])
  
  ;; Advanced SIMD vector structure modes.
! (define_mode_iterator VSTRUCT_QD [V2x8QI V2x4HI V2x2SI V2x1DI
! 				  V2x4HF V2x2SF V2x1DF V2x4BF
! 				  V3x8QI V3x4HI V3x2SI V3x1DI
! 				  V3x4HF V3x2SF V3x1DF V3x4BF
! 				  V4x8QI V4x4HI V4x2SI V4x1DI
! 				  V4x4HF V4x2SF V4x1DF V4x4BF
! 				  V2x16QI V2x8HI V2x4SI V2x2DI
! 				  V2x8HF V2x4SF V2x2DF V2x8BF
! 				  V3x16QI V3x8HI V3x4SI V3x2DI
! 				  V3x8HF V3x4SF V3x2DF V3x8BF
! 				  V4x16QI V4x8HI V4x4SI V4x2DI
! 				  V4x8HF V4x4SF V4x2DF V4x8BF])
  
  ;; Double scalar modes
  (define_mode_iterator DX [DI DF DD])
  
  ;; Duplicate of the above
! (define_mode_iterator DX2 [DI DF DD])
  
  ;; Single scalar modes
  (define_mode_iterator SX [SI SF])
  
  ;; Duplicate of the above
! (define_mode_iterator SX2 [SI SF])
  
  ;; Single and double integer and float modes
  (define_mode_iterator DSX [DF DI SF SI])
--- 381,412 ----
  (define_mode_iterator VSTRUCT_4Q [V4x16QI V4x8HI V4x4SI V4x2DI
  				  V4x8HF V4x4SF V4x2DF V4x8BF])
  
+ ;; Advanced SIMD 128-bit vector structure modes.
+ (define_mode_iterator VSTRUCT_Q [VSTRUCT_2Q VSTRUCT_3Q VSTRUCT_4Q])
+ 
  ;; Advanced SIMD 2-vector structure modes.
! (define_mode_iterator VSTRUCT_2QD [VSTRUCT_2D VSTRUCT_2Q])
  
  ;; Advanced SIMD 3-vector structure modes.
! (define_mode_iterator VSTRUCT_3QD [VSTRUCT_3D VSTRUCT_3Q])
  
  ;; Advanced SIMD 4-vector structure modes.
! (define_mode_iterator VSTRUCT_4QD [VSTRUCT_4D VSTRUCT_4Q])
  
  ;; Advanced SIMD vector structure modes.
! (define_mode_iterator VSTRUCT_QD [VSTRUCT_D VSTRUCT_Q])
  
  ;; Double scalar modes
  (define_mode_iterator DX [DI DF DD])
  
  ;; Duplicate of the above
! (define_mode_iterator DX2 [DX])
  
  ;; Single scalar modes
  (define_mode_iterator SX [SI SF])
  
  ;; Duplicate of the above
! (define_mode_iterator SX2 [SX])
  
  ;; Single and double integer and float modes
  (define_mode_iterator DSX [DF DI SF SI])
***************
*** 444,463 ****
  
  ;; Iterators for single modes, for "@" patterns.
  (define_mode_iterator VNx16QI_ONLY [VNx16QI])
  (define_mode_iterator VNx8HI_ONLY [VNx8HI])
  (define_mode_iterator VNx8BF_ONLY [VNx8BF])
  (define_mode_iterator VNx4SI_ONLY [VNx4SI])
  (define_mode_iterator VNx4SF_ONLY [VNx4SF])
  (define_mode_iterator VNx2DI_ONLY [VNx2DI])
  (define_mode_iterator VNx2DF_ONLY [VNx2DF])
! 
! ;; All SVE vector structure modes.
! (define_mode_iterator SVE_STRUCT [VNx32QI VNx16HI VNx8SI VNx4DI
! 				  VNx16BF VNx16HF VNx8SF VNx4DF
! 				  VNx48QI VNx24HI VNx12SI VNx6DI
! 				  VNx24BF VNx24HF VNx12SF VNx6DF
! 				  VNx64QI VNx32HI VNx16SI VNx8DI
! 				  VNx32BF VNx32HF VNx16SF VNx8DF])
  
  ;; All fully-packed SVE vector modes.
  (define_mode_iterator SVE_FULL [VNx16QI VNx8HI VNx4SI VNx2DI
--- 426,441 ----
  
  ;; Iterators for single modes, for "@" patterns.
  (define_mode_iterator VNx16QI_ONLY [VNx16QI])
+ (define_mode_iterator VNx16SI_ONLY [VNx16SI])
  (define_mode_iterator VNx8HI_ONLY [VNx8HI])
  (define_mode_iterator VNx8BF_ONLY [VNx8BF])
+ (define_mode_iterator VNx8SI_ONLY [VNx8SI])
+ (define_mode_iterator VNx8DI_ONLY [VNx8DI])
  (define_mode_iterator VNx4SI_ONLY [VNx4SI])
  (define_mode_iterator VNx4SF_ONLY [VNx4SF])
  (define_mode_iterator VNx2DI_ONLY [VNx2DI])
  (define_mode_iterator VNx2DF_ONLY [VNx2DF])
! (define_mode_iterator VNx1TI_ONLY [VNx1TI])
  
  ;; All fully-packed SVE vector modes.
  (define_mode_iterator SVE_FULL [VNx16QI VNx8HI VNx4SI VNx2DI
***************
*** 476,481 ****
--- 454,465 ----
  ;; elements.
  (define_mode_iterator SVE_FULL_BHSI [VNx16QI VNx8HI VNx4SI])
  
+ ;; Pairs of the above.
+ (define_mode_iterator SVE_FULL_BHSIx2 [VNx32QI VNx16HI VNx8SI])
+ 
+ ;; Fully-packed SVE vector modes that have 16-bit float elements.
+ (define_mode_iterator SVE_FULL_HF [VNx8BF VNx8HF])
+ 
  ;; Fully-packed SVE vector modes that have 16-bit, 32-bit or 64-bit elements.
  (define_mode_iterator SVE_FULL_HSD [VNx8HI VNx4SI VNx2DI
  				    VNx8BF VNx8HF VNx4SF VNx2DF])
***************
*** 484,489 ****
--- 468,477 ----
  ;; elements.
  (define_mode_iterator SVE_FULL_HSDI [VNx8HI VNx4SI VNx2DI])
  
+ ;; Fully-packed SVE integer vector modes that have 16-bit, 32-bit or 64-bit
+ ;; elements and Advanced SIMD Fully-packed 64-bit elements.
+ (define_mode_iterator SVE_FULL_HSDI_SIMD_DI [SVE_FULL_HSDI V2DI])
+ 
  ;; Fully-packed SVE integer vector modes that have 16-bit or 32-bit
  ;; elements.
  (define_mode_iterator SVE_FULL_HSI [VNx8HI VNx4SI])
***************
*** 501,506 ****
--- 489,501 ----
  ;; Fully-packed SVE integer vector modes that have 32-bit or 64-bit elements.
  (define_mode_iterator SVE_FULL_SDI [VNx4SI VNx2DI])
  
+ ;; Fully-packed SVE and Advanced SIMD integer vector modes that have 32-bit or
+ ;; 64-bit elements.
+ (define_mode_iterator SVE_FULL_SDI_SIMD [SVE_FULL_SDI V4SI V2DI])
+ 
+ ;; 2x and 4x tuples of the above, excluding 2x DI.
+ (define_mode_iterator SVE_FULL_SIx2_SDIx4 [VNx8SI VNx16SI VNx8DI])
+ 
  ;; Fully-packed SVE floating-point vector modes that have 32-bit or 64-bit
  ;; elements.
  (define_mode_iterator SVE_FULL_SDF [VNx4SF VNx2DF])
***************
*** 509,514 ****
--- 504,513 ----
  (define_mode_iterator SVE_MATMULF [(VNx4SF "TARGET_SVE_F32MM")
  				   (VNx2DF "TARGET_SVE_F64MM")])
  
+ ;; Fully-packed SVE vector modes that have 32-bit or smaller elements.
+ (define_mode_iterator SVE_FULL_BHS [VNx16QI VNx8HI VNx4SI
+ 				    VNx8BF VNx8HF VNx4SF])
+ 
  ;; Fully-packed SVE vector modes that have 32-bit elements.
  (define_mode_iterator SVE_FULL_S [VNx4SI VNx4SF])
  
***************
*** 530,546 ****
--- 529,571 ----
  			       VNx2DI
  			       VNx2DF])
  
+ ;; All SVE 2-vector modes.
+ (define_mode_iterator SVE_FULLx2 [VNx32QI VNx16HI VNx8SI VNx4DI
+ 			          VNx16BF VNx16HF VNx8SF VNx4DF])
+ 
+ ;; All SVE 3-vector modes.
+ (define_mode_iterator SVE_FULLx3 [VNx48QI VNx24HI VNx12SI VNx6DI
+ 			          VNx24BF VNx24HF VNx12SF VNx6DF])
+ 
+ ;; All SVE 4-vector modes.
+ (define_mode_iterator SVE_FULLx4 [VNx64QI VNx32HI VNx16SI VNx8DI
+ 			          VNx32BF VNx32HF VNx16SF VNx8DF])
+ 
+ (define_mode_iterator SVE_FULLx24 [SVE_FULLx2 SVE_FULLx4])
+ 
+ ;; All SVE vector structure modes.
+ (define_mode_iterator SVE_STRUCT [SVE_FULLx2 SVE_FULLx3 SVE_FULLx4])
+ 
+ ;; All SVE vector and structure modes.
+ (define_mode_iterator SVE_ALL_STRUCT [SVE_ALL SVE_STRUCT])
+ 
  ;; All SVE integer vector modes.
  (define_mode_iterator SVE_I [VNx16QI VNx8QI VNx4QI VNx2QI
  			     VNx8HI VNx4HI VNx2HI
  			     VNx4SI VNx2SI
  			     VNx2DI])
  
+ ;; All SVE integer vector modes and Advanced SIMD 64-bit vector
+ ;; element modes
+ (define_mode_iterator SVE_I_SIMD_DI [SVE_I V2DI])
+ 
  ;; SVE integer vector modes whose elements are 16 bits or wider.
  (define_mode_iterator SVE_HSDI [VNx8HI VNx4HI VNx2HI
  				VNx4SI VNx2SI
  				VNx2DI])
  
+ (define_mode_iterator SVE_DIx24 [VNx4DI VNx8DI])
+ 
  ;; SVE modes with 2 or 4 elements.
  (define_mode_iterator SVE_24 [VNx2QI VNx2HI VNx2HF VNx2BF VNx2SI VNx2SF
  			      VNx2DI VNx2DF
***************
*** 598,603 ****
--- 623,674 ----
  ;; Bfloat16 modes to which V4SF can be converted
  (define_mode_iterator V4SF_TO_BF [V4BF V8BF])
  
+ (define_mode_iterator SVE_BHSx24 [VNx32QI VNx16HI VNx8SI
+ 				  VNx16BF VNx16HF VNx8SF
+ 				  VNx64QI VNx32HI VNx16SI
+ 				  VNx32BF VNx32HF VNx16SF])
+ 
+ (define_mode_iterator SVE_Ix24 [VNx32QI VNx16HI VNx8SI VNx4DI
+ 				VNx64QI VNx32HI VNx16SI VNx8DI])
+ 
+ (define_mode_iterator SVE_Fx24 [VNx16HF VNx8SF VNx4DF
+ 				VNx32HF VNx16SF VNx8DF])
+ 
+ (define_mode_iterator SVE_SFx24 [VNx8SF VNx16SF])
+ 
+ ;; The modes used to represent different ZA access sizes.
+ (define_mode_iterator SME_ZA_I [VNx16QI VNx8HI VNx4SI VNx2DI VNx1TI])
+ (define_mode_iterator SME_ZA_SDI [VNx4SI (VNx2DI "TARGET_SME_I16I64")])
+ 
+ (define_mode_iterator SME_ZA_SDF_I [VNx4SI (VNx2DI "TARGET_SME_F64F64")])
+ 
+ (define_mode_iterator SME_ZA_BIx24 [VNx32QI VNx64QI])
+ 
+ (define_mode_iterator SME_ZA_BHIx124 [VNx16QI VNx32QI VNx64QI
+ 				      VNx8HI VNx16HI VNx32HI])
+ 
+ (define_mode_iterator SME_ZA_BHIx24 [VNx32QI VNx64QI VNx16HI VNx32HI])
+ 
+ (define_mode_iterator SME_ZA_HFx124 [VNx8BF VNx16BF VNx32BF
+ 				     VNx8HF VNx16HF VNx32HF])
+ 
+ (define_mode_iterator SME_ZA_HFx24 [VNx16BF VNx32BF VNx16HF VNx32HF])
+ 
+ (define_mode_iterator SME_ZA_HIx124 [VNx8HI VNx16HI VNx32HI])
+ 
+ (define_mode_iterator SME_ZA_HIx24 [VNx16HI VNx32HI])
+ 
+ (define_mode_iterator SME_ZA_SDIx24 [VNx8SI (VNx4DI "TARGET_SME_I16I64")
+ 				     VNx16SI (VNx8DI "TARGET_SME_I16I64")])
+ 
+ (define_mode_iterator SME_ZA_SDFx24 [VNx8SF (VNx4DF "TARGET_SME_F64F64")
+ 				     VNx16SF (VNx8DF "TARGET_SME_F64F64")])
+ 
+ ;; The modes for which outer product instructions are supported.
+ (define_mode_iterator SME_MOP_BHI [VNx16QI (VNx8HI "TARGET_SME_I16I64")])
+ (define_mode_iterator SME_MOP_HSDF [VNx8BF VNx8HF VNx4SF
+ 				    (VNx2DF "TARGET_SME_F64F64")])
+ 
  ;; ------------------------------------------------------------------
  ;; Unspec enumerations for Advance SIMD. These could well go into
  ;; aarch64.md but for their use in int_iterators here.
***************
*** 616,623 ****
      UNSPEC_FMINV	; Used in aarch64-simd.md.
      UNSPEC_FADDV	; Used in aarch64-simd.md.
      UNSPEC_ADDV		; Used in aarch64-simd.md.
-     UNSPEC_SADDLV	; Used in aarch64-simd.md.
-     UNSPEC_UADDLV	; Used in aarch64-simd.md.
      UNSPEC_SMAXV	; Used in aarch64-simd.md.
      UNSPEC_SMINV	; Used in aarch64-simd.md.
      UNSPEC_UMAXV	; Used in aarch64-simd.md.
--- 687,692 ----
***************
*** 628,659 ****
      UNSPEC_URHADD	; Used in aarch64-simd.md.
      UNSPEC_SHSUB	; Used in aarch64-simd.md.
      UNSPEC_UHSUB	; Used in aarch64-simd.md.
-     UNSPEC_ADDHN	; Used in aarch64-simd.md.
-     UNSPEC_RADDHN	; Used in aarch64-simd.md.
-     UNSPEC_SUBHN	; Used in aarch64-simd.md.
-     UNSPEC_RSUBHN	; Used in aarch64-simd.md.
      UNSPEC_SQDMULH	; Used in aarch64-simd.md.
      UNSPEC_SQRDMULH	; Used in aarch64-simd.md.
      UNSPEC_PMUL		; Used in aarch64-simd.md.
      UNSPEC_FMULX	; Used in aarch64-simd.md.
      UNSPEC_USQADD	; Used in aarch64-simd.md.
      UNSPEC_SUQADD	; Used in aarch64-simd.md.
-     UNSPEC_SQXTUN	; Used in aarch64-simd.md.
      UNSPEC_SSRA		; Used in aarch64-simd.md.
      UNSPEC_USRA		; Used in aarch64-simd.md.
-     UNSPEC_SRSRA	; Used in aarch64-simd.md.
-     UNSPEC_URSRA	; Used in aarch64-simd.md.
      UNSPEC_SRSHR	; Used in aarch64-simd.md.
      UNSPEC_URSHR	; Used in aarch64-simd.md.
      UNSPEC_SQSHLU	; Used in aarch64-simd.md.
      UNSPEC_SQSHL	; Used in aarch64-simd.md.
      UNSPEC_UQSHL	; Used in aarch64-simd.md.
-     UNSPEC_SQSHRUN	; Used in aarch64-simd.md.
-     UNSPEC_SQRSHRUN	; Used in aarch64-simd.md.
-     UNSPEC_SQSHRN	; Used in aarch64-simd.md.
-     UNSPEC_UQSHRN	; Used in aarch64-simd.md.
-     UNSPEC_SQRSHRN	; Used in aarch64-simd.md.
-     UNSPEC_UQRSHRN	; Used in aarch64-simd.md.
      UNSPEC_SSHL		; Used in aarch64-simd.md.
      UNSPEC_USHL		; Used in aarch64-simd.md.
      UNSPEC_SRSHL	; Used in aarch64-simd.md.
--- 697,715 ----
***************
*** 667,674 ****
      UNSPEC_SSHLL	; Used in aarch64-simd.md.
      UNSPEC_USHLL	; Used in aarch64-simd.md.
      UNSPEC_ADDP		; Used in aarch64-simd.md.
-     UNSPEC_SADDLP	; Used in aarch64-simd.md.
-     UNSPEC_UADDLP	; Used in aarch64-simd.md.
      UNSPEC_TBL		; Used in vector permute patterns.
      UNSPEC_TBX		; Used in vector permute patterns.
      UNSPEC_CONCAT	; Used in vector permute patterns.
--- 723,728 ----
***************
*** 747,752 ****
--- 801,807 ----
      UNSPEC_IORF		; Used in aarch64-sve.md.
      UNSPEC_XORF		; Used in aarch64-sve.md.
      UNSPEC_REVB		; Used in aarch64-sve.md.
+     UNSPEC_REVD		; Used in aarch64-sve2.md.
      UNSPEC_REVH		; Used in aarch64-sve.md.
      UNSPEC_REVW		; Used in aarch64-sve.md.
      UNSPEC_REVBHW	; Used in aarch64-sve.md.
***************
*** 760,765 ****
--- 815,821 ----
      UNSPEC_FTSMUL	; Used in aarch64-sve.md.
      UNSPEC_FTSSEL	; Used in aarch64-sve.md.
      UNSPEC_SMATMUL	; Used in aarch64-sve.md.
+     UNSPEC_SET_NEONQ	; Used in aarch64-sve.md.
      UNSPEC_UMATMUL	; Used in aarch64-sve.md.
      UNSPEC_USMATMUL	; Used in aarch64-sve.md.
      UNSPEC_TRN1Q	; Used in aarch64-sve.md.
***************
*** 861,866 ****
--- 917,923 ----
      UNSPEC_CMLA180_CONJ	; Used in aarch64-sve2.md.
      UNSPEC_CMUL		; Used in aarch64-sve2.md.
      UNSPEC_CMUL_CONJ	; Used in aarch64-sve2.md.
+     UNSPEC_CNTP_C	; Used in aarch64-sve2.md.
      UNSPEC_COND_FCVTLT	; Used in aarch64-sve2.md.
      UNSPEC_COND_FCVTNT	; Used in aarch64-sve2.md.
      UNSPEC_COND_FCVTX	; Used in aarch64-sve2.md.
***************
*** 879,890 ****
--- 936,953 ----
      UNSPEC_FMLSLT	; Used in aarch64-sve2.md.
      UNSPEC_HISTCNT	; Used in aarch64-sve2.md.
      UNSPEC_HISTSEG	; Used in aarch64-sve2.md.
+     UNSPEC_LD1_COUNT	; Used in aarch64-sve2.md.
+     UNSPEC_LDNT1_COUNT	; Used in aarch64-sve2.md.
      UNSPEC_MATCH	; Used in aarch64-sve2.md.
      UNSPEC_NMATCH	; Used in aarch64-sve2.md.
+     UNSPEC_PEXT		; Used in aarch64-sve2.md.
+     UNSPEC_PEXTx2	; Used in aarch64-sve2.md.
      UNSPEC_PMULLB	; Used in aarch64-sve2.md.
      UNSPEC_PMULLB_PAIR	; Used in aarch64-sve2.md.
      UNSPEC_PMULLT	; Used in aarch64-sve2.md.
      UNSPEC_PMULLT_PAIR	; Used in aarch64-sve2.md.
+     UNSPEC_PSEL		; Used in aarch64-sve2.md.
+     UNSPEC_PTRUE_C	; Used in aarch64-sve2.md.
      UNSPEC_RADDHNB	; Used in aarch64-sve2.md.
      UNSPEC_RADDHNT	; Used in aarch64-sve2.md.
      UNSPEC_RSHRNB	; Used in aarch64-sve2.md.
***************
*** 918,925 ****
--- 981,992 ----
      UNSPEC_SQRDCMLAH180	; Used in aarch64-sve2.md.
      UNSPEC_SQRDCMLAH270	; Used in aarch64-sve2.md.
      UNSPEC_SQRDCMLAH90	; Used in aarch64-sve2.md.
+     UNSPEC_SQRSHR	; Used in aarch64-sve2.md.
+     UNSPEC_SQRSHRN	; Used in aarch64-sve2.md.
      UNSPEC_SQRSHRNB	; Used in aarch64-sve2.md.
      UNSPEC_SQRSHRNT	; Used in aarch64-sve2.md.
+     UNSPEC_SQRSHRU	; Used in aarch64-sve2.md.
+     UNSPEC_SQRSHRUN	; Used in aarch64-sve2.md.
      UNSPEC_SQRSHRUNB	; Used in aarch64-sve2.md.
      UNSPEC_SQRSHRUNT	; Used in aarch64-sve2.md.
      UNSPEC_SQSHRNB	; Used in aarch64-sve2.md.
***************
*** 939,944 ****
--- 1006,1013 ----
      UNSPEC_SSUBLTB	; Used in aarch64-sve2.md.
      UNSPEC_SSUBWB	; Used in aarch64-sve2.md.
      UNSPEC_SSUBWT	; Used in aarch64-sve2.md.
+     UNSPEC_ST1_COUNT	; Used in aarch64-sve2.md.
+     UNSPEC_STNT1_COUNT	; Used in aarch64-sve2.md.
      UNSPEC_SUBHNB	; Used in aarch64-sve2.md.
      UNSPEC_SUBHNT	; Used in aarch64-sve2.md.
      UNSPEC_TBL2		; Used in aarch64-sve2.md.
***************
*** 954,959 ****
--- 1023,1030 ----
      UNSPEC_UMULHS	; Used in aarch64-sve2.md.
      UNSPEC_UMULLB	; Used in aarch64-sve2.md.
      UNSPEC_UMULLT	; Used in aarch64-sve2.md.
+     UNSPEC_UQRSHR	; Used in aarch64-sve2.md.
+     UNSPEC_UQRSHRN	; Used in aarch64-sve2.md.
      UNSPEC_UQRSHRNB	; Used in aarch64-sve2.md.
      UNSPEC_UQRSHRNT	; Used in aarch64-sve2.md.
      UNSPEC_UQSHRNB	; Used in aarch64-sve2.md.
***************
*** 967,981 ****
--- 1038,1116 ----
      UNSPEC_USUBWB	; Used in aarch64-sve2.md.
      UNSPEC_USUBWT	; Used in aarch64-sve2.md.
      UNSPEC_USDOT	; Used in aarch64-simd.md.
+     UNSPEC_UZP		; Used in aarch64-sve2.md.
+     UNSPEC_UZPQ		; Used in aarch64-sve2.md.
+     UNSPEC_ZIP		; Used in aarch64-sve2.md.
+     UNSPEC_ZIPQ		; Used in aarch64-sve2.md.
      UNSPEC_SUDOT	; Used in aarch64-simd.md.
      UNSPEC_BFDOT	; Used in aarch64-simd.md.
      UNSPEC_BFMLALB	; Used in aarch64-sve.md.
      UNSPEC_BFMLALT	; Used in aarch64-sve.md.
+     UNSPEC_BFMLSLB	; Used in aarch64-sve.md.
+     UNSPEC_BFMLSLT	; Used in aarch64-sve.md.
      UNSPEC_BFMMLA	; Used in aarch64-sve.md.
      UNSPEC_BFCVTN      ; Used in aarch64-simd.md.
      UNSPEC_BFCVTN2     ; Used in aarch64-simd.md.
      UNSPEC_BFCVT       ; Used in aarch64-simd.md.
      UNSPEC_FCVTXN	; Used in aarch64-simd.md.
+ 
+     ;; All used in aarch64-sve2.md
+     UNSPEC_FCVTN
+     UNSPEC_FDOT
+     UNSPEC_SQCVT
+     UNSPEC_SQCVTN
+     UNSPEC_SQCVTU
+     UNSPEC_SQCVTUN
+     UNSPEC_UQCVT
+     UNSPEC_UQCVTN
+ 
+     ;; All used in aarch64-sme.md
+     UNSPEC_SME_ADD
+     UNSPEC_SME_ADD_WRITE
+     UNSPEC_SME_ADDHA
+     UNSPEC_SME_ADDVA
+     UNSPEC_SME_BMOPA
+     UNSPEC_SME_BMOPS
+     UNSPEC_SME_FADD
+     UNSPEC_SME_FDOT
+     UNSPEC_SME_FVDOT
+     UNSPEC_SME_FMLA
+     UNSPEC_SME_FMLS
+     UNSPEC_SME_FMOPA
+     UNSPEC_SME_FMOPS
+     UNSPEC_SME_FSUB
+     UNSPEC_SME_LD1_HOR
+     UNSPEC_SME_LD1_VER
+     UNSPEC_SME_READ
+     UNSPEC_SME_READ_HOR
+     UNSPEC_SME_READ_VER
+     UNSPEC_SME_SDOT
+     UNSPEC_SME_SVDOT
+     UNSPEC_SME_SMLA
+     UNSPEC_SME_SMLS
+     UNSPEC_SME_SMOPA
+     UNSPEC_SME_SMOPS
+     UNSPEC_SME_ST1_HOR
+     UNSPEC_SME_ST1_VER
+     UNSPEC_SME_SUB
+     UNSPEC_SME_SUB_WRITE
+     UNSPEC_SME_SUDOT
+     UNSPEC_SME_SUVDOT
+     UNSPEC_SME_SUMOPA
+     UNSPEC_SME_SUMOPS
+     UNSPEC_SME_UDOT
+     UNSPEC_SME_UVDOT
+     UNSPEC_SME_UMLA
+     UNSPEC_SME_UMLS
+     UNSPEC_SME_UMOPA
+     UNSPEC_SME_UMOPS
+     UNSPEC_SME_USDOT
+     UNSPEC_SME_USVDOT
+     UNSPEC_SME_USMOPA
+     UNSPEC_SME_USMOPS
+     UNSPEC_SME_WRITE
+     UNSPEC_SME_WRITE_HOR
+     UNSPEC_SME_WRITE_VER
  ])
  
  ;; ------------------------------------------------------------------
***************
*** 1017,1022 ****
--- 1152,1160 ----
  ;; Likewise for load/store pair.
  (define_mode_attr ldpstp_sz [(SI "8") (DI "16")])
  
+ ;; Size of element access for STP/LDP-generated vectors.
+ (define_mode_attr ldpstp_vel_sz [(V2SI "8") (V2SF "8") (V2DI "16") (V2DF "16")])
+ 
  ;; For inequal width int to float conversion
  (define_mode_attr w1 [(HF "w") (SF "w") (DF "x")])
  (define_mode_attr w2 [(HF "x") (SF "x") (DF "w")])
***************
*** 1026,1031 ****
--- 1164,1171 ----
  
  (define_mode_attr short_mask [(HI "65535") (QI "255")])
  
+ (define_mode_attr half_mask [(HI "255") (SI "65535") (DI "4294967295")])
+ 
  ;; For constraints used in scalar immediate vector moves
  (define_mode_attr hq [(HI "h") (QI "q")])
  
***************
*** 1107,1115 ****
  ;; element.
  (define_mode_attr elem_bits [(VNx16BI "8") (VNx8BI "16")
  			     (VNx4BI "32") (VNx2BI "64")
! 			     (VNx16QI "8") (VNx8HI "16")
! 			     (VNx4SI "32") (VNx2DI "64")
! 			     (VNx8HF "16") (VNx4SF "32") (VNx2DF "64")])
  
  ;; The number of bits in a vector container.
  (define_mode_attr container_bits [(VNx16QI "8")
--- 1247,1261 ----
  ;; element.
  (define_mode_attr elem_bits [(VNx16BI "8") (VNx8BI "16")
  			     (VNx4BI "32") (VNx2BI "64")
! 			     (VNx16QI "8") (VNx32QI "8") (VNx64QI "8")
! 			     (VNx8HI "16") (VNx16HI "16") (VNx32HI "16")
! 			     (VNx8HF "16") (VNx16HF "16") (VNx32HF "16")
! 			     (VNx8BF "16") (VNx16BF "16") (VNx32BF "16")
! 			     (VNx4SI "32") (VNx8SI "32") (VNx16SI "32")
! 			     (VNx4SF "32") (VNx8SF "32") (VNx16SF "32")
! 			     (VNx2DI "64") (VNx4DI "64") (VNx8DI "64")
! 			     (VNx2DF "64") (VNx4DF "64") (VNx8DF "64")
! 			     (VNx1TI "128")])
  
  ;; The number of bits in a vector container.
  (define_mode_attr container_bits [(VNx16QI "8")
***************
*** 1198,1207 ****
  (define_mode_attr Vetype [(V8QI "b") (V16QI "b")
  			  (V4HI "h") (V8HI  "h")
  			  (V2SI "s") (V4SI  "s")
! 			  (V2DI "d")
  			  (V4HF "h") (V8HF  "h")
  			  (V2SF "s") (V4SF  "s")
! 			  (V2DF "d")
  			  (V2x8QI "b") (V2x4HI "h")
  			  (V2x2SI "s") (V2x1DI "d")
  			  (V2x4HF "h") (V2x2SF "s")
--- 1344,1353 ----
  (define_mode_attr Vetype [(V8QI "b") (V16QI "b")
  			  (V4HI "h") (V8HI  "h")
  			  (V2SI "s") (V4SI  "s")
! 			  (V2DI "d") (V1DI  "d")
  			  (V4HF "h") (V8HF  "h")
  			  (V2SF "s") (V4SF  "s")
! 			  (V2DF "d") (V1DF  "d")
  			  (V2x8QI "b") (V2x4HI "h")
  			  (V2x2SI "s") (V2x1DI "d")
  			  (V2x4HF "h") (V2x2SF "s")
***************
*** 1235,1240 ****
--- 1381,1395 ----
  			  (VNx4SF "s") (VNx2SF "s")
  			  (VNx2DI "d")
  			  (VNx2DF "d")
+ 			  (VNx1TI "q")
+ 			  (VNx32QI "b") (VNx64QI "b")
+ 			  (VNx16HI "h") (VNx32HI "h")
+ 			  (VNx16HF "h") (VNx32HF "h")
+ 			  (VNx16BF "h") (VNx32BF "h")
+ 			  (VNx8SI "s") (VNx16SI "s")
+ 			  (VNx8SF "s") (VNx16SF "s")
+ 			  (VNx4DI "d") (VNx8DI "d")
+ 			  (VNx4DF "d") (VNx8DF "d")
  			  (BF "h") (V4BF "h") (V8BF "h")
  			  (HF "h")
  			  (SF "s") (DF "d")
***************
*** 1253,1258 ****
--- 1408,1414 ----
  			  (VNx4SF "w") (VNx2SF "w")
  			  (VNx2DI "d")
  			  (VNx2DF "d")
+ 			  (VNx1TI "q")
  			  (VNx32QI "b") (VNx48QI "b") (VNx64QI "b")
  			  (VNx16HI "h") (VNx24HI "h") (VNx32HI "h")
  			  (VNx16HF "h") (VNx24HF "h") (VNx32HF "h")
***************
*** 1303,1308 ****
--- 1459,1465 ----
  			  (V4SF "16b") (V2DF  "16b")
  			  (DI   "8b")  (DF    "8b")
  			  (SI   "8b")  (SF    "8b")
+ 			  (QI   "8b")  (HI    "8b")
  			  (V4BF "8b")  (V8BF  "16b")])
  
  ;; Advanced SIMD vector structure to element modes.
***************
*** 1361,1370 ****
  (define_mode_attr VEL [(V8QI  "QI") (V16QI "QI")
  		       (V4HI "HI") (V8HI  "HI")
  		       (V2SI "SI") (V4SI  "SI")
! 		       (DI   "DI") (V2DI  "DI")
  		       (V4HF "HF") (V8HF  "HF")
  		       (V2SF "SF") (V4SF  "SF")
! 		       (DF   "DF") (V2DF  "DF")
  		       (SI   "SI") (HI    "HI")
  		       (QI   "QI")
  		       (V4BF "BF") (V8BF "BF")
--- 1518,1529 ----
  (define_mode_attr VEL [(V8QI  "QI") (V16QI "QI")
  		       (V4HI "HI") (V8HI  "HI")
  		       (V2SI "SI") (V4SI  "SI")
! 		       (DI   "DI") (V1DI  "DI")
! 		       (V2DI "DI")
  		       (V4HF "HF") (V8HF  "HF")
  		       (V2SF "SF") (V4SF  "SF")
! 		       (DF   "DF") (V1DF  "DF")
! 		       (V2DF "DF")
  		       (SI   "SI") (HI    "HI")
  		       (QI   "QI")
  		       (V4BF "BF") (V8BF "BF")
***************
*** 1381,1392 ****
  (define_mode_attr Vel [(V8QI "qi") (V16QI "qi")
  		       (V4HI "hi") (V8HI "hi")
  		       (V2SI "si") (V4SI "si")
! 		       (DI   "di") (V2DI "di")
  		       (V4HF "hf") (V8HF "hf")
  		       (V2SF "sf") (V4SF "sf")
! 		       (V2DF "df") (DF   "df")
! 		       (SI   "si") (HI   "hi")
! 		       (QI   "qi")
  		       (V4BF "bf") (V8BF "bf")
  		       (VNx16QI "qi") (VNx8QI "qi") (VNx4QI "qi") (VNx2QI "qi")
  		       (VNx8HI "hi") (VNx4HI "hi") (VNx2HI "hi")
--- 1540,1552 ----
  (define_mode_attr Vel [(V8QI "qi") (V16QI "qi")
  		       (V4HI "hi") (V8HI "hi")
  		       (V2SI "si") (V4SI "si")
! 		       (DI   "di") (V1DI "si")
! 		       (V2DI "di")
  		       (V4HF "hf") (V8HF "hf")
  		       (V2SF "sf") (V4SF "sf")
! 		       (V1DF "df") (V2DF "df")
! 		       (DF   "df") (SI   "si")
! 		       (HI   "hi") (QI   "qi")
  		       (V4BF "bf") (V8BF "bf")
  		       (VNx16QI "qi") (VNx8QI "qi") (VNx4QI "qi") (VNx2QI "qi")
  		       (VNx8HI "hi") (VNx4HI "hi") (VNx2HI "hi")
***************
*** 1415,1420 ****
--- 1575,1582 ----
  			(VNx4SI  "v4si") (VNx4SF "v4sf")
  			(VNx2DI  "v2di") (VNx2DF "v2df")])
  
+ (define_mode_attr vnx [(V4SI "vnx4si") (V2DI "vnx2di")])
+ 
  ;; 64-bit container modes the inner or scalar source mode.
  (define_mode_attr VCOND [(HI "V4HI") (SI "V2SI")
  			 (V4HI "V4HI") (V8HI "V4HI")
***************
*** 1432,1438 ****
  			 (V4HF "V8HF") (V8HF "V8HF")
  			 (V2SF "V4SF") (V4SF "V4SF")
  			 (V2DF "V2DF") (SI   "V4SI")
! 			 (HI   "V8HI") (QI   "V16QI")])
  
  ;; Half modes of all vector modes.
  (define_mode_attr VHALF [(V8QI "V4QI")  (V16QI "V8QI")
--- 1594,1601 ----
  			 (V4HF "V8HF") (V8HF "V8HF")
  			 (V2SF "V4SF") (V4SF "V4SF")
  			 (V2DF "V2DF") (SI   "V4SI")
! 			 (HI   "V8HI") (QI   "V16QI")
! 			 (SF   "V4SF") (DF   "V2DF")])
  
  ;; Half modes of all vector modes.
  (define_mode_attr VHALF [(V8QI "V4QI")  (V16QI "V8QI")
***************
*** 1464,1469 ****
--- 1627,1635 ----
  			(SI   "V2SI")  (SF   "V2SF")
  			(DI   "V2DI")  (DF   "V2DF")])
  
+ ;; Load/store pair mode.
+ (define_mode_attr VPAIR [(SI "V2x4QI") (DI "V2x8QI")])
+ 
  ;; Register suffix for double-length mode.
  (define_mode_attr Vdtype [(V4HF "8h") (V2SF "4s")])
  
***************
*** 1479,1484 ****
--- 1645,1653 ----
                    (V4HI "V2SI") (V8HI "V4SI")
                    (V2SI "DI")   (V4SI "V2DI")])
  
+ (define_mode_attr VQUADW [(V8QI "V4SI") (V16QI "V8SI")
+                   (V4HI "V2DI") (V8HI "V4DI")])
+ 
  ;; Narrowed modes for VDN.
  (define_mode_attr VNARROWD [(V4HI "V8QI") (V2SI "V4HI")
  			    (DI   "V2SI")])
***************
*** 1496,1506 ****
  ;; Narrowed quad-modes for VQN (Used for XTN2).
  (define_mode_attr VNARROWQ2 [(V8HI "V16QI") (V4SI "V8HI")
  			     (V2DI "V4SI")])
  
  ;; Narrowed modes of vector modes.
  (define_mode_attr VNARROW [(VNx8HI "VNx16QI")
  			   (VNx4SI "VNx8HI") (VNx4SF "VNx8HF")
! 			   (VNx2DI "VNx4SI") (VNx2DF "VNx4SF")])
  
  ;; Register suffix narrowed modes for VQN.
  (define_mode_attr Vntype [(V8HI "8b") (V4SI "4h")
--- 1665,1679 ----
  ;; Narrowed quad-modes for VQN (Used for XTN2).
  (define_mode_attr VNARROWQ2 [(V8HI "V16QI") (V4SI "V8HI")
  			     (V2DI "V4SI")])
+ (define_mode_attr Vnarrowq2 [(V8HI "v16qi") (V4SI "v8hi")
+ 			     (V2DI "v4si")])
  
  ;; Narrowed modes of vector modes.
  (define_mode_attr VNARROW [(VNx8HI "VNx16QI")
  			   (VNx4SI "VNx8HI") (VNx4SF "VNx8HF")
! 			   (VNx2DI "VNx4SI") (VNx2DF "VNx4SF")
! 			   (VNx8SI "VNx8HI") (VNx16SI "VNx16QI")
! 			   (VNx8DI "VNx8HI")])
  
  ;; Register suffix narrowed modes for VQN.
  (define_mode_attr Vntype [(V8HI "8b") (V4SI "4h")
***************
*** 1523,1528 ****
--- 1696,1726 ----
  			 (VNx16BI "VNx8BI") (VNx8BI "VNx4BI")
  			 (VNx4BI  "VNx2BI")])
  
+ ;; Modes with the same number of elements but strictly 2x the width.
+ (define_mode_attr V2XWIDE [(V8QI "V8HI") (V4HI "V4SI")
+ 			   (V16QI "V16HI") (V8HI "V8SI")
+ 			   (V2SI "V2DI") (V4SI "V4DI")
+ 			   (V2DI "V2TI") (DI "TI")
+ 			   (HI "SI") (SI "DI")
+ 			   (VNx16QI "VNx16HI")
+ 			   (VNx8HI "VNx8SI")
+ 			   (VNx4SI "VNx4DI")
+ 			   (VNx32QI "VNx32HI")
+ 			   (VNx16HI "VNx16SI")
+ 			   (VNx8SI "VNx8DI")])
+ 
+ (define_mode_attr v2xwide [(V8QI "v8hi") (V4HI "v4si")
+ 			   (V16QI "v16hi") (V8HI "v8si")
+ 			   (V2SI "v2di") (V4SI "v4di")
+ 			   (V2DI "v2ti") (DI "ti")
+ 			   (HI "si") (SI "di")
+ 			   (VNx16QI "vnx16hi")
+ 			   (VNx8HI "vnx8si")
+ 			   (VNx4SI "vnx4di")
+ 			   (VNx32QI "vnx32hi")
+ 			   (VNx16HI "vnx16si")
+ 			   (VNx8SI "vnx8di")])
+ 
  ;; Predicate mode associated with VWIDE.
  (define_mode_attr VWIDE_PRED [(VNx8HF "VNx4BI") (VNx4SF "VNx2BI")])
  
***************
*** 1554,1559 ****
--- 1752,1760 ----
  			  (V2SI "DI") (V16QI "HI")
  			  (V8HI "SI") (V4SI "DI")])
  
+ (define_mode_attr VWIDE2X_S [(V8QI "SI") (V4HI "DI")
+ 			  (V16QI "SI") (V8HI "DI")])
+ 
  ;; Widened mode with half the element register suffixes for VD_BHSI/VQW/VQ_HSF.
  (define_mode_attr Vwhalf [(V8QI "4h") (V4HI "2s")
  			  (V2SI "1d") (V16QI "8h")
***************
*** 1562,1568 ****
  ;; SVE vector after narrowing.
  (define_mode_attr Ventype [(VNx8HI "b")
  			   (VNx4SI "h") (VNx4SF "h")
! 			   (VNx2DI "s") (VNx2DF "s")])
  
  ;; SVE vector after widening.
  (define_mode_attr Vewtype [(VNx16QI "h")
--- 1763,1771 ----
  ;; SVE vector after narrowing.
  (define_mode_attr Ventype [(VNx8HI "b")
  			   (VNx4SI "h") (VNx4SF "h")
! 			   (VNx2DI "s") (VNx2DF "s")
! 			   (VNx8SI "h") (VNx16SI "b")
! 			   (VNx8DI "h")])
  
  ;; SVE vector after widening.
  (define_mode_attr Vewtype [(VNx16QI "h")
***************
*** 1658,1663 ****
--- 1861,1867 ----
  			       (VNx8BF  "VNx8HI")
  			       (VNx4SI  "VNx4SI") (VNx4SF "VNx4SI")
  			       (VNx2DI  "VNx2DI") (VNx2DF "VNx2DI")
+ 			       (VNx8SF  "VNx8SI") (VNx16SF "VNx16SI")
  ])
  
  ;; Lower case mode with floating-point values replaced by like-sized integers.
***************
*** 1675,1680 ****
--- 1879,1885 ----
  			       (VNx8BF  "vnx8hi")
  			       (VNx4SI  "vnx4si") (VNx4SF "vnx4si")
  			       (VNx2DI  "vnx2di") (VNx2DF "vnx2di")
+ 			       (VNx8SF  "vnx8si") (VNx16SF "vnx16si")
  ])
  
  ;; Floating-point equivalent of selected modes.
***************
*** 1975,1980 ****
--- 2180,2188 ----
  ;; Same as above, but louder.
  (define_code_attr MAX_OPP [(smax "SMIN") (umax "UMIN")])
  
+ ;; Map smax and umax to sign_extend and zero_extend
+ (define_code_attr USMAX_EXT [(smax "sign_extend") (umax "zero_extend")])
+ 
  ;; The number of subvectors in an SVE_STRUCT.
  (define_mode_attr vector_count [(VNx32QI "2") (VNx16HI "2")
  				(VNx8SI  "2") (VNx4DI  "2")
***************
*** 2005,2011 ****
  			       (VNx32HF "16") (VNx16SF "16") (VNx8DF "16")])
  
  ;; The type of a subvector in an SVE_STRUCT.
! (define_mode_attr VSINGLE [(VNx32QI "VNx16QI")
  			   (VNx16HI "VNx8HI") (VNx16HF "VNx8HF")
  			   (VNx16BF "VNx8BF")
  			   (VNx8SI "VNx4SI") (VNx8SF "VNx4SF")
--- 2213,2223 ----
  			       (VNx32HF "16") (VNx16SF "16") (VNx8DF "16")])
  
  ;; The type of a subvector in an SVE_STRUCT.
! (define_mode_attr VSINGLE [(VNx16QI "VNx16QI")
! 			   (VNx8BF "VNx8BF")
! 			   (VNx8HF "VNx8HF")
! 			   (VNx8HI "VNx8HI")
! 			   (VNx32QI "VNx16QI")
  			   (VNx16HI "VNx8HI") (VNx16HF "VNx8HF")
  			   (VNx16BF "VNx8BF")
  			   (VNx8SI "VNx4SI") (VNx8SF "VNx4SF")
***************
*** 2022,2028 ****
  			   (VNx8DI "VNx2DI") (VNx8DF "VNx2DF")])
  
  ;; ...and again in lower case.
! (define_mode_attr vsingle [(VNx32QI "vnx16qi")
  			   (VNx16HI "vnx8hi") (VNx16HF "vnx8hf")
  			   (VNx16BF "vnx8bf")
  			   (VNx8SI "vnx4si") (VNx8SF "vnx4sf")
--- 2234,2241 ----
  			   (VNx8DI "VNx2DI") (VNx8DF "VNx2DF")])
  
  ;; ...and again in lower case.
! (define_mode_attr vsingle [(VNx8HI "vnx8hi")
! 			   (VNx32QI "vnx16qi")
  			   (VNx16HI "vnx8hi") (VNx16HF "vnx8hf")
  			   (VNx16BF "vnx8bf")
  			   (VNx8SI "vnx4si") (VNx8SF "vnx4sf")
***************
*** 2049,2054 ****
--- 2262,2268 ----
  			 (VNx4SF "VNx4BI") (VNx2SF "VNx2BI")
  			 (VNx2DI "VNx2BI")
  			 (VNx2DF "VNx2BI")
+ 			 (VNx1TI "VNx2BI")
  			 (VNx32QI "VNx16BI")
  			 (VNx16HI "VNx8BI") (VNx16HF "VNx8BI")
  			 (VNx16BF "VNx8BI")
***************
*** 2063,2069 ****
  			 (VNx32HI "VNx8BI") (VNx32HF "VNx8BI")
  			 (VNx32BF "VNx8BI")
  			 (VNx16SI "VNx4BI") (VNx16SF "VNx4BI")
! 			 (VNx8DI "VNx2BI") (VNx8DF "VNx2BI")])
  
  ;; ...and again in lower case.
  (define_mode_attr vpred [(VNx16QI "vnx16bi") (VNx8QI "vnx8bi")
--- 2277,2284 ----
  			 (VNx32HI "VNx8BI") (VNx32HF "VNx8BI")
  			 (VNx32BF "VNx8BI")
  			 (VNx16SI "VNx4BI") (VNx16SF "VNx4BI")
! 			 (VNx8DI "VNx2BI") (VNx8DF "VNx2BI")
! 			 (V4SI "VNx4BI") (V2DI "VNx2BI")])
  
  ;; ...and again in lower case.
  (define_mode_attr vpred [(VNx16QI "vnx16bi") (VNx8QI "vnx8bi")
***************
*** 2104,2109 ****
--- 2319,2365 ----
  				    (V4HF "<Vetype>[%4]") (V8HF "<Vetype>[%4]")
  				    ])
  
+ (define_mode_attr za32_offset_range [(VNx16QI "0_to_12_step_4")
+ 				     (VNx8BF "0_to_14_step_2")
+ 				     (VNx8HF "0_to_14_step_2")
+ 				     (VNx8HI "0_to_14_step_2")
+ 				     (VNx32QI "0_to_4_step_4")
+ 				     (VNx16BF "0_to_6_step_2")
+ 				     (VNx16HF "0_to_6_step_2")
+ 				     (VNx16HI "0_to_6_step_2")
+ 				     (VNx64QI "0_to_4_step_4")
+ 				     (VNx32BF "0_to_6_step_2")
+ 				     (VNx32HF "0_to_6_step_2")
+ 				     (VNx32HI "0_to_6_step_2")])
+ 
+ (define_mode_attr za64_offset_range [(VNx8HI "0_to_12_step_4")
+ 				     (VNx16HI "0_to_4_step_4")
+ 				     (VNx32HI "0_to_4_step_4")])
+ 
+ (define_mode_attr za32_long [(VNx16QI "ll") (VNx32QI "ll") (VNx64QI "ll")
+ 			     (VNx8HI "l") (VNx16HI "l") (VNx32HI "l")])
+ 
+ (define_mode_attr za32_last_offset [(VNx16QI "3") (VNx32QI "3") (VNx64QI "3")
+ 				    (VNx8HI "1") (VNx16HI "1") (VNx32HI "1")])
+ 
+ (define_mode_attr vg_modifier [(VNx16QI "")
+ 			       (VNx32QI ", vgx2")
+ 			       (VNx64QI ", vgx4")
+ 			       (VNx8BF "")
+ 			       (VNx16BF ", vgx2")
+ 			       (VNx32BF ", vgx4")
+ 			       (VNx8HF "")
+ 			       (VNx16HF ", vgx2")
+ 			       (VNx32HF ", vgx4")
+ 			       (VNx8HI "")
+ 			       (VNx16HI ", vgx2")
+ 			       (VNx32HI ", vgx4")])
+ 
+ (define_mode_attr z_suffix [(VNx16QI ".b") (VNx32QI "") (VNx64QI "")
+ 			    (VNx8BF ".h") (VNx16BF "") (VNx32BF "")
+ 			    (VNx8HF ".h") (VNx16HF "") (VNx32HF "")
+ 			    (VNx8HI ".h") (VNx16HI "") (VNx32HI "")])
+ 
  ;; The number of bytes controlled by a predicate
  (define_mode_attr data_bytes [(VNx16BI "1") (VNx8BI "2")
  			      (VNx4BI "4") (VNx2BI "8")])
***************
*** 2124,2134 ****
--- 2380,2419 ----
  
  ;; The constraint to use for an SVE [SU]DOT, FMUL, FMLA or FMLS lane index.
  (define_mode_attr sve_lane_con [(VNx8HI "y") (VNx4SI "y") (VNx2DI "x")
+ 							  (V2DI "x")
  				(VNx8HF "y") (VNx4SF "y") (VNx2DF "x")])
  
  ;; The constraint to use for an SVE FCMLA lane index.
  (define_mode_attr sve_lane_pair_con [(VNx8HF "y") (VNx4SF "x")])
  
+ (define_mode_attr vec_or_offset [(V8QI "vec") (V16QI "vec") (V4HI "vec")
+ 				 (V8HI "vec") (V2SI "vec") (V4SI "vec")
+ 				 (V2DI "vec") (DI "offset")])
+ 
+ (define_mode_attr b [(VNx8BF "b") (VNx8HF "") (VNx4SF "") (VNx2DF "")
+ 		     (VNx16BF "b") (VNx16HF "")
+ 		     (VNx32BF "b") (VNx32HF "")])
+ 
+ (define_mode_attr aligned_operand [(VNx16QI "register_operand")
+ 				   (VNx8HI "register_operand")
+ 				   (VNx8BF "register_operand")
+ 				   (VNx8HF "register_operand")
+ 				   (VNx32QI "aligned_register_operand")
+ 				   (VNx16HI "aligned_register_operand")
+ 				   (VNx16BF "aligned_register_operand")
+ 				   (VNx16HF "aligned_register_operand")
+ 				   (VNx64QI "aligned_register_operand")
+ 				   (VNx32HI "aligned_register_operand")
+ 				   (VNx32BF "aligned_register_operand")
+ 				   (VNx32HF "aligned_register_operand")])
+ 
+ (define_mode_attr aligned_fpr [(VNx16QI "w") (VNx8HI "w")
+ 			       (VNx8BF "w") (VNx8HF "w")
+ 			       (VNx32QI "Uw2") (VNx16HI "Uw2")
+ 			       (VNx16BF "Uw2") (VNx16HF "Uw2")
+ 			       (VNx64QI "Uw4") (VNx32HI "Uw4")
+ 			       (VNx32BF "Uw4") (VNx32HF "Uw4")])
+ 
  ;; -------------------------------------------------------------------
  ;; Code Iterators
  ;; -------------------------------------------------------------------
***************
*** 2236,2241 ****
--- 2521,2528 ----
  ;; Signed and unsigned saturating truncations.
  (define_code_iterator SAT_TRUNC [ss_truncate us_truncate])
  
+ (define_code_iterator ALL_TRUNC [ss_truncate us_truncate truncate])
+ 
  ;; SVE integer unary operations.
  (define_code_iterator SVE_INT_UNARY [abs neg not clrsb clz popcount
  				     (ss_abs "TARGET_SVE2")
***************
*** 2256,2261 ****
--- 2543,2552 ----
  ;; SVE integer binary operations that have an immediate form.
  (define_code_iterator SVE_INT_BINARY_IMM [mult smax smin umax umin])
  
+ (define_code_iterator SVE_INT_BINARY_MULTI [smax smin umax umin])
+ 
+ (define_code_iterator SVE_INT_BINARY_SINGLE [plus smax smin umax umin])
+ 
  ;; SVE floating-point operations with an unpredicated all-register form.
  (define_code_iterator SVE_UNPRED_FP_BINARY [plus minus mult])
  
***************
*** 2319,2324 ****
--- 2610,2621 ----
  			  (ss_minus "sub")
  			  (us_minus "sub")])
  
+ (define_code_attr SHIFTEXTEND [(ashiftrt "sign_extend") (lshiftrt "zero_extend")])
+ 
+ (define_code_attr TRUNCEXTEND [(ss_truncate "sign_extend")
+ 			       (us_truncate "zero_extend")
+ 			       (truncate "zero_extend")])
+ 
  ;; For comparison operators we use the FCM* and CM* instructions.
  ;; As there are no CMLE or CMLT instructions which act on 3 vector
  ;; operands, we must use CMGE or CMGT and swap the order of the
***************
*** 2371,2376 ****
--- 2668,2675 ----
  ;; op prefix for shift right and narrow.
  (define_code_attr srn_op [(ashiftrt "r") (lshiftrt "")])
  
+ (define_code_attr shrn_s [(ashiftrt "s") (lshiftrt "")])
+ 
  ;; Map shift operators onto underlying bit-field instructions
  (define_code_attr bfshift [(ashift "ubfiz") (ashiftrt "sbfx")
  			   (lshiftrt "ubfx") (rotatert "extr")])
***************
*** 2408,2413 ****
--- 2707,2718 ----
  				 (ss_minus "sign_extend")
  				 (us_minus "zero_extend")])
  
+ (define_code_attr TRUNC_SHIFT [(ss_truncate "ashiftrt")
+ 			       (us_truncate "lshiftrt") (truncate "lshiftrt")])
+ 
+ (define_code_attr shrn_op [(ss_truncate "sq")
+ 			   (us_truncate "uq") (truncate "")])
+ 
  ;; Whether a shift is left or right.
  (define_code_attr lr [(ashift "l") (ashiftrt "r") (lshiftrt "r")])
  
***************
*** 2432,2437 ****
--- 2737,2744 ----
  			  (umax "max")
  			  (umin "min")])
  
+ (define_code_attr maxminand [(smax "bic") (smin "and")])
+ 
  ;; MLA/MLS attributes.
  (define_code_attr as [(ss_plus "a") (ss_minus "s")])
  
***************
*** 2562,2582 ****
  ;; Int Iterators.
  ;; -------------------------------------------------------------------
  
- ;; The unspec codes for the SABAL, UABAL AdvancedSIMD instructions.
- (define_int_iterator ABAL [UNSPEC_SABAL UNSPEC_UABAL])
- 
- ;; The unspec codes for the SABDL, UABDL AdvancedSIMD instructions.
- (define_int_iterator ABDL [UNSPEC_SABDL UNSPEC_UABDL])
- 
- ;; The unspec codes for the SABAL2, UABAL2 AdvancedSIMD instructions.
- (define_int_iterator ABAL2 [UNSPEC_SABAL2 UNSPEC_UABAL2])
- 
- ;; The unspec codes for the SABDL2, UABDL2 AdvancedSIMD instructions.
- (define_int_iterator ABDL2 [UNSPEC_SABDL2 UNSPEC_UABDL2])
- 
- ;; The unspec codes for the SADALP, UADALP AdvancedSIMD instructions.
- (define_int_iterator ADALP [UNSPEC_SADALP UNSPEC_UADALP])
- 
  (define_int_iterator MAXMINV [UNSPEC_UMAXV UNSPEC_UMINV
  			      UNSPEC_SMAXV UNSPEC_SMINV])
  
--- 2869,2874 ----
***************
*** 2587,2596 ****
  
  (define_int_iterator SVE_INT_ADDV [UNSPEC_SADDV UNSPEC_UADDV])
  
- (define_int_iterator USADDLP [UNSPEC_SADDLP UNSPEC_UADDLP])
- 
- (define_int_iterator USADDLV [UNSPEC_SADDLV UNSPEC_UADDLV])
- 
  (define_int_iterator LOGICALF [UNSPEC_ANDF UNSPEC_IORF UNSPEC_XORF])
  
  (define_int_iterator HADDSUB [UNSPEC_SHADD UNSPEC_UHADD
--- 2879,2884 ----
***************
*** 2608,2616 ****
  (define_int_iterator DOTPROD_I8MM [UNSPEC_USDOT UNSPEC_SUDOT])
  (define_int_iterator DOTPROD_US_ONLY [UNSPEC_USDOT])
  
- (define_int_iterator ADDSUBHN [UNSPEC_ADDHN UNSPEC_RADDHN
- 			       UNSPEC_SUBHN UNSPEC_RSUBHN])
- 
  (define_int_iterator FMAXMIN_UNS [UNSPEC_FMAX UNSPEC_FMIN
  				  UNSPEC_FMAXNM UNSPEC_FMINNM])
  
--- 2896,2901 ----
***************
*** 2635,2642 ****
  (define_int_iterator VQSHL [UNSPEC_SQSHL UNSPEC_UQSHL
                              UNSPEC_SQRSHL UNSPEC_UQRSHL])
  
! (define_int_iterator VSRA [UNSPEC_SSRA UNSPEC_USRA
! 			     UNSPEC_SRSRA UNSPEC_URSRA])
  
  (define_int_iterator VSLRI [UNSPEC_SSLI UNSPEC_USLI
  			      UNSPEC_SSRI UNSPEC_USRI])
--- 2920,2926 ----
  (define_int_iterator VQSHL [UNSPEC_SQSHL UNSPEC_UQSHL
                              UNSPEC_SQRSHL UNSPEC_UQRSHL])
  
! (define_int_iterator VSRA [UNSPEC_SSRA UNSPEC_USRA])
  
  (define_int_iterator VSLRI [UNSPEC_SSLI UNSPEC_USLI
  			      UNSPEC_SSRI UNSPEC_USRI])
***************
*** 2646,2655 ****
  
  (define_int_iterator VQSHL_N [UNSPEC_SQSHLU UNSPEC_SQSHL UNSPEC_UQSHL])
  
- (define_int_iterator VQSHRN_N [UNSPEC_SQSHRUN UNSPEC_SQRSHRUN
-                                UNSPEC_SQSHRN UNSPEC_UQSHRN
-                                UNSPEC_SQRSHRN UNSPEC_UQRSHRN])
- 
  (define_int_iterator SQRDMLH_AS [UNSPEC_SQRDMLAH UNSPEC_SQRDMLSH])
  
  (define_int_iterator PERMUTE [UNSPEC_ZIP1 UNSPEC_ZIP2
--- 2930,2935 ----
***************
*** 2715,2739 ****
  
  (define_int_iterator SVE_FP_UNARY [UNSPEC_FRECPE UNSPEC_RSQRTE])
  
! (define_int_iterator SVE_FP_UNARY_INT [UNSPEC_FEXPA])
  
  (define_int_iterator SVE_INT_SHIFT_IMM [UNSPEC_ASRD
  					(UNSPEC_SQSHLU "TARGET_SVE2")
  					(UNSPEC_SRSHR "TARGET_SVE2")
  					(UNSPEC_URSHR "TARGET_SVE2")])
  
  (define_int_iterator SVE_FP_BINARY [UNSPEC_FRECPS UNSPEC_RSQRTS])
  
  (define_int_iterator SVE_FP_BINARY_INT [UNSPEC_FTSMUL UNSPEC_FTSSEL])
  
! (define_int_iterator SVE_BFLOAT_TERNARY_LONG [UNSPEC_BFDOT
! 					      UNSPEC_BFMLALB
! 					      UNSPEC_BFMLALT
! 					      UNSPEC_BFMMLA])
  
! (define_int_iterator SVE_BFLOAT_TERNARY_LONG_LANE [UNSPEC_BFDOT
! 						   UNSPEC_BFMLALB
! 						   UNSPEC_BFMLALT])
  
  (define_int_iterator SVE_INT_REDUCTION [UNSPEC_ANDV
  					UNSPEC_IORV
--- 2995,3031 ----
  
  (define_int_iterator SVE_FP_UNARY [UNSPEC_FRECPE UNSPEC_RSQRTE])
  
! (define_int_iterator SVE_FP_UNARY_INT [(UNSPEC_FEXPA "TARGET_NON_STREAMING")])
  
  (define_int_iterator SVE_INT_SHIFT_IMM [UNSPEC_ASRD
  					(UNSPEC_SQSHLU "TARGET_SVE2")
  					(UNSPEC_SRSHR "TARGET_SVE2")
  					(UNSPEC_URSHR "TARGET_SVE2")])
  
+ (define_int_iterator SVE_INT_BINARY_MULTI [UNSPEC_SQDMULH
+ 					   UNSPEC_SRSHL UNSPEC_URSHL])
+ 
  (define_int_iterator SVE_FP_BINARY [UNSPEC_FRECPS UNSPEC_RSQRTS])
  
  (define_int_iterator SVE_FP_BINARY_INT [UNSPEC_FTSMUL UNSPEC_FTSSEL])
  
! (define_int_iterator SVE_FP_BINARY_MULTI [UNSPEC_FMAX UNSPEC_FMAXNM
! 					  UNSPEC_FMIN UNSPEC_FMINNM])
  
! (define_int_iterator SVE_BFLOAT_TERNARY_LONG
!   [UNSPEC_BFDOT
!    UNSPEC_BFMLALB
!    UNSPEC_BFMLALT
!    (UNSPEC_BFMLSLB "TARGET_SME2 && TARGET_STREAMING_SME")
!    (UNSPEC_BFMLSLT "TARGET_SME2 && TARGET_STREAMING_SME")
!    (UNSPEC_BFMMLA "TARGET_NON_STREAMING")])
! 
! (define_int_iterator SVE_BFLOAT_TERNARY_LONG_LANE
!   [UNSPEC_BFDOT
!    UNSPEC_BFMLALB
!    UNSPEC_BFMLALT
!    (UNSPEC_BFMLSLB "TARGET_SME2 && TARGET_STREAMING_SME")
!    (UNSPEC_BFMLSLT "TARGET_SME2 && TARGET_STREAMING_SME")])
  
  (define_int_iterator SVE_INT_REDUCTION [UNSPEC_ANDV
  					UNSPEC_IORV
***************
*** 2877,2882 ****
--- 3169,3179 ----
  
  (define_int_iterator SVE2_WHILE_PTR [UNSPEC_WHILERW UNSPEC_WHILEWR])
  
+ (define_int_iterator SVE_WHILE_ORDER [UNSPEC_WHILEGE UNSPEC_WHILEGT
+ 				      UNSPEC_WHILEHI UNSPEC_WHILEHS
+ 				      UNSPEC_WHILELE UNSPEC_WHILELO
+ 				      UNSPEC_WHILELS UNSPEC_WHILELT])
+ 
  (define_int_iterator SVE_SHIFT_WIDE [UNSPEC_ASHIFT_WIDE
  				     UNSPEC_ASHIFTRT_WIDE
  				     UNSPEC_LSHIFTRT_WIDE])
***************
*** 2887,2892 ****
--- 3184,3193 ----
  
  (define_int_attr pred_load [(UNSPEC_PRED_X "_x") (UNSPEC_LD1_SVE "")])
  
+ (define_int_iterator LD1_COUNT [UNSPEC_LD1_COUNT UNSPEC_LDNT1_COUNT])
+ 
+ (define_int_iterator ST1_COUNT [UNSPEC_ST1_COUNT UNSPEC_STNT1_COUNT])
+ 
  (define_int_iterator SVE2_U32_UNARY [UNSPEC_URECPE UNSPEC_RSQRTE])
  
  (define_int_iterator SVE2_INT_UNARY_NARROWB [UNSPEC_SQXTNB
***************
*** 2988,2993 ****
--- 3289,3301 ----
  						 UNSPEC_UQRSHRNT
  						 UNSPEC_UQSHRNT])
  
+ (define_int_iterator SVE2_INT_SHIFT_IMM_NARROWxN [UNSPEC_SQRSHR
+ 						  UNSPEC_SQRSHRN
+ 						  UNSPEC_SQRSHRU
+ 						  UNSPEC_SQRSHRUN
+ 						  UNSPEC_UQRSHR
+ 						  UNSPEC_UQRSHRN])
+ 
  (define_int_iterator SVE2_INT_SHIFT_INSERT [UNSPEC_SLI UNSPEC_SRI])
  
  (define_int_iterator SVE2_INT_CADD [UNSPEC_CADD90
***************
*** 3131,3136 ****
--- 3439,3454 ----
  
  (define_int_iterator SVE2_PMULL_PAIR [UNSPEC_PMULLB_PAIR UNSPEC_PMULLT_PAIR])
  
+ (define_int_iterator SVE_QCVTxN [UNSPEC_SQCVT UNSPEC_SQCVTN
+ 				 UNSPEC_SQCVTU UNSPEC_SQCVTUN
+ 				 UNSPEC_UQCVT UNSPEC_UQCVTN])
+ 
+ (define_int_iterator SVE2_SFx24_UNARY [UNSPEC_FRINTA UNSPEC_FRINTM
+ 				       UNSPEC_FRINTN UNSPEC_FRINTP])
+ 
+ (define_int_iterator SVE2_x24_PERMUTE [UNSPEC_ZIP UNSPEC_UZP])
+ (define_int_iterator SVE2_x24_PERMUTEQ [UNSPEC_ZIPQ UNSPEC_UZPQ])
+ 
  (define_int_iterator FCADD [UNSPEC_FCADD90
  			    UNSPEC_FCADD270])
  
***************
*** 3166,3171 ****
--- 3484,3534 ----
  (define_int_iterator FCMUL_OP [UNSPEC_FCMUL
  			       UNSPEC_FCMUL_CONJ])
  
+ (define_int_iterator UNSPEC_REVD_ONLY [UNSPEC_REVD])
+ 
+ (define_int_iterator SME_LD1 [UNSPEC_SME_LD1_HOR UNSPEC_SME_LD1_VER])
+ (define_int_iterator SME_READ [UNSPEC_SME_READ_HOR UNSPEC_SME_READ_VER])
+ (define_int_iterator SME_ST1 [UNSPEC_SME_ST1_HOR UNSPEC_SME_ST1_VER])
+ (define_int_iterator SME_WRITE [UNSPEC_SME_WRITE_HOR UNSPEC_SME_WRITE_VER])
+ 
+ (define_int_iterator SME_BINARY_SDI [UNSPEC_SME_ADDHA UNSPEC_SME_ADDVA])
+ 
+ (define_int_iterator SME_INT_MOP [UNSPEC_SME_SMOPA UNSPEC_SME_SMOPS
+ 				  UNSPEC_SME_SUMOPA UNSPEC_SME_SUMOPS
+ 				  UNSPEC_SME_UMOPA UNSPEC_SME_UMOPS
+ 				  UNSPEC_SME_USMOPA UNSPEC_SME_USMOPS])
+ 
+ (define_int_iterator SME2_INT_MOP [UNSPEC_SME_SMOPA UNSPEC_SME_SMOPS
+ 				   UNSPEC_SME_UMOPA UNSPEC_SME_UMOPS])
+ 
+ (define_int_iterator SME_FP_MOP [UNSPEC_SME_FMOPA UNSPEC_SME_FMOPS])
+ 
+ (define_int_iterator SME2_BMOP [UNSPEC_SME_BMOPA UNSPEC_SME_BMOPS])
+ 
+ (define_int_iterator SME_BINARY_SLICE_SDI [UNSPEC_SME_ADD UNSPEC_SME_SUB])
+ 
+ (define_int_iterator SME_BINARY_SLICE_SDF [UNSPEC_SME_FADD UNSPEC_SME_FSUB])
+ 
+ (define_int_iterator SME_BINARY_WRITE_SLICE_SDI [UNSPEC_SME_ADD_WRITE
+ 						 UNSPEC_SME_SUB_WRITE])
+ 
+ (define_int_iterator SME_INT_DOTPROD [UNSPEC_SME_SDOT UNSPEC_SME_UDOT
+ 				      UNSPEC_SME_USDOT])
+ 
+ (define_int_iterator SME_INT_DOTPROD_LANE [UNSPEC_SME_SDOT UNSPEC_SME_SVDOT
+ 					   UNSPEC_SME_UDOT UNSPEC_SME_UVDOT
+ 					   UNSPEC_SME_SUDOT UNSPEC_SME_SUVDOT
+ 					   UNSPEC_SME_USDOT UNSPEC_SME_USVDOT])
+ 
+ (define_int_iterator SME_FP_DOTPROD [UNSPEC_SME_FDOT])
+ 
+ (define_int_iterator SME_FP_DOTPROD_LANE [UNSPEC_SME_FDOT UNSPEC_SME_FVDOT])
+ 
+ (define_int_iterator SME_INT_TERNARY_SLICE [UNSPEC_SME_SMLA UNSPEC_SME_SMLS
+ 					    UNSPEC_SME_UMLA UNSPEC_SME_UMLS])
+ 
+ (define_int_iterator SME_FP_TERNARY_SLICE [UNSPEC_SME_FMLA UNSPEC_SME_FMLS])
+ 
  ;; Iterators for atomic operations.
  
  (define_int_iterator ATOMIC_LDOP
***************
*** 3180,3185 ****
--- 3543,3554 ----
   [(UNSPECV_ATOMIC_LDOP_OR "ior") (UNSPECV_ATOMIC_LDOP_BIC "bic")
    (UNSPECV_ATOMIC_LDOP_XOR "xor") (UNSPECV_ATOMIC_LDOP_PLUS "add")])
  
+ (define_int_iterator SUBDI_BITS [8 16 32])
+ 
+ (define_int_iterator BHSD_BITS [8 16 32 64])
+ 
+ (define_int_iterator LUTI_BITS [2 4])
+ 
  ;; -------------------------------------------------------------------
  ;; Int Iterators Attributes.
  ;; -------------------------------------------------------------------
***************
*** 3201,3206 ****
--- 3570,3576 ----
  			(UNSPEC_RSQRTS "frsqrts")
  			(UNSPEC_RBIT "rbit")
  			(UNSPEC_REVB "revb")
+ 			(UNSPEC_REVD "revd")
  			(UNSPEC_REVH "revh")
  			(UNSPEC_REVW "revw")
  			(UNSPEC_UMAXV "umax")
***************
*** 3233,3252 ****
--- 3603,3680 ----
  			(UNSPEC_FEXPA "fexpa")
  			(UNSPEC_FTSMUL "ftsmul")
  			(UNSPEC_FTSSEL "ftssel")
+ 			(UNSPEC_LD1_COUNT "ld1")
+ 			(UNSPEC_LDNT1_COUNT "ldnt1")
  			(UNSPEC_PMULLB "pmullb")
  			(UNSPEC_PMULLB_PAIR "pmullb_pair")
  			(UNSPEC_PMULLT "pmullt")
  			(UNSPEC_PMULLT_PAIR "pmullt_pair")
  			(UNSPEC_SMATMUL "smatmul")
+ 			(UNSPEC_UZP "uzp")
+ 			(UNSPEC_UZPQ "uzpq")
+ 			(UNSPEC_ZIP "zip")
+ 			(UNSPEC_ZIPQ "zipq")
+ 			(UNSPEC_SME_ADD "add")
+ 			(UNSPEC_SME_ADD_WRITE "add_write")
+ 			(UNSPEC_SME_ADDHA "addha")
+ 			(UNSPEC_SME_ADDVA "addva")
+ 			(UNSPEC_SME_BMOPA "bmopa")
+ 			(UNSPEC_SME_BMOPS "bmops")
+ 			(UNSPEC_SME_FADD "fadd")
+ 			(UNSPEC_SME_FDOT "fdot")
+ 			(UNSPEC_SME_FVDOT "fvdot")
+ 			(UNSPEC_SME_FMLA "fmla")
+ 			(UNSPEC_SME_FMLS "fmls")
+ 			(UNSPEC_SME_FMOPA "fmopa")
+ 			(UNSPEC_SME_FMOPS "fmops")
+ 			(UNSPEC_SME_FSUB "fsub")
+ 			(UNSPEC_SME_LD1_HOR "ld1_hor")
+ 			(UNSPEC_SME_LD1_VER "ld1_ver")
+ 			(UNSPEC_SME_READ_HOR "read_hor")
+ 			(UNSPEC_SME_READ_VER "read_ver")
+ 			(UNSPEC_SME_SDOT "sdot")
+ 			(UNSPEC_SME_SVDOT "svdot")
+ 			(UNSPEC_SME_SMLA "smla")
+ 			(UNSPEC_SME_SMLS "smls")
+ 			(UNSPEC_SME_SMOPA "smopa")
+ 			(UNSPEC_SME_SMOPS "smops")
+ 			(UNSPEC_SME_ST1_HOR "st1_hor")
+ 			(UNSPEC_SME_ST1_VER "st1_ver")
+ 			(UNSPEC_SME_SUB "sub")
+ 			(UNSPEC_SME_SUB_WRITE "sub_write")
+ 			(UNSPEC_SME_SUDOT "sudot")
+ 			(UNSPEC_SME_SUVDOT "suvdot")
+ 			(UNSPEC_SME_SUMOPA "sumopa")
+ 			(UNSPEC_SME_SUMOPS "sumops")
+ 			(UNSPEC_SME_UDOT "udot")
+ 			(UNSPEC_SME_UVDOT "uvdot")
+ 			(UNSPEC_SME_UMLA "umla")
+ 			(UNSPEC_SME_UMLS "umls")
+ 			(UNSPEC_SME_UMOPA "umopa")
+ 			(UNSPEC_SME_UMOPS "umops")
+ 			(UNSPEC_SME_USDOT "usdot")
+ 			(UNSPEC_SME_USVDOT "usvdot")
+ 			(UNSPEC_SME_USMOPA "usmopa")
+ 			(UNSPEC_SME_USMOPS "usmops")
+ 			(UNSPEC_SME_WRITE_HOR "write_hor")
+ 			(UNSPEC_SME_WRITE_VER "write_ver")
  			(UNSPEC_SQCADD90 "sqcadd90")
  			(UNSPEC_SQCADD270 "sqcadd270")
+ 			(UNSPEC_SQCVT "sqcvt")
+ 			(UNSPEC_SQCVTN "sqcvtn")
+ 			(UNSPEC_SQCVTU "sqcvtu")
+ 			(UNSPEC_SQCVTUN "sqcvtun")
  			(UNSPEC_SQRDCMLAH "sqrdcmlah")
  			(UNSPEC_SQRDCMLAH90 "sqrdcmlah90")
  			(UNSPEC_SQRDCMLAH180 "sqrdcmlah180")
  			(UNSPEC_SQRDCMLAH270 "sqrdcmlah270")
+ 			(UNSPEC_ST1_COUNT "st1")
+ 			(UNSPEC_STNT1_COUNT "stnt1")
  			(UNSPEC_TRN1Q "trn1q")
  			(UNSPEC_TRN2Q "trn2q")
  			(UNSPEC_UMATMUL "umatmul")
+ 			(UNSPEC_UQCVT "uqcvt")
+ 			(UNSPEC_UQCVTN "uqcvtn")
  			(UNSPEC_USMATMUL "usmatmul")
  			(UNSPEC_UZP1Q "uzp1q")
  			(UNSPEC_UZP2Q "uzp2q")
***************
*** 3334,3343 ****
  ;; "s" for signed operations and "u" for unsigned ones.
  (define_int_attr su [(UNSPEC_SADDV "s")
  		     (UNSPEC_UADDV "u")
- 		     (UNSPEC_SADDLP "s")
- 		     (UNSPEC_UADDLP "u")
- 		     (UNSPEC_SADDLV "s")
- 		     (UNSPEC_UADDLV "u")
  		     (UNSPEC_UNPACKSHI "s")
  		     (UNSPEC_UNPACKUHI "u")
  		     (UNSPEC_UNPACKSLO "s")
--- 3762,3767 ----
***************
*** 3354,3377 ****
  (define_int_attr sur [(UNSPEC_SHADD "s") (UNSPEC_UHADD "u")
  		      (UNSPEC_SRHADD "sr") (UNSPEC_URHADD "ur")
  		      (UNSPEC_SHSUB "s") (UNSPEC_UHSUB "u")
- 		      (UNSPEC_ADDHN "") (UNSPEC_RADDHN "r")
- 		      (UNSPEC_SABAL "s") (UNSPEC_UABAL "u")
- 		      (UNSPEC_SABAL2 "s") (UNSPEC_UABAL2 "u")
- 		      (UNSPEC_SABDL "s") (UNSPEC_UABDL "u")
- 		      (UNSPEC_SABDL2 "s") (UNSPEC_UABDL2 "u")
  		      (UNSPEC_SADALP "s") (UNSPEC_UADALP "u")
- 		      (UNSPEC_SUBHN "") (UNSPEC_RSUBHN "r")
  		      (UNSPEC_USQADD "us") (UNSPEC_SUQADD "su")
  		      (UNSPEC_SSLI  "s") (UNSPEC_USLI  "u")
  		      (UNSPEC_SSRI  "s") (UNSPEC_USRI  "u")
  		      (UNSPEC_USRA  "u") (UNSPEC_SSRA  "s")
- 		      (UNSPEC_URSRA  "ur") (UNSPEC_SRSRA  "sr")
  		      (UNSPEC_URSHR  "ur") (UNSPEC_SRSHR  "sr")
  		      (UNSPEC_SQSHLU "s") (UNSPEC_SQSHL   "s")
  		      (UNSPEC_UQSHL  "u")
- 		      (UNSPEC_SQSHRUN "s") (UNSPEC_SQRSHRUN "s")
-                       (UNSPEC_SQSHRN "s")  (UNSPEC_UQSHRN "u")
-                       (UNSPEC_SQRSHRN "s") (UNSPEC_UQRSHRN "u")
  		      (UNSPEC_USHL  "u")   (UNSPEC_SSHL  "s")
  		      (UNSPEC_USHLL  "u")  (UNSPEC_SSHLL "s")
  		      (UNSPEC_URSHL  "ur") (UNSPEC_SRSHL  "sr")
--- 3778,3791 ----
***************
*** 3383,3391 ****
  ])
  
  (define_int_attr r [(UNSPEC_SQDMULH "") (UNSPEC_SQRDMULH "r")
- 		    (UNSPEC_SQSHRUN "") (UNSPEC_SQRSHRUN "r")
-                     (UNSPEC_SQSHRN "")  (UNSPEC_UQSHRN "")
-                     (UNSPEC_SQRSHRN "r") (UNSPEC_UQRSHRN "r")
                      (UNSPEC_SQSHL   "")  (UNSPEC_UQSHL  "")
                      (UNSPEC_SQRSHL   "r")(UNSPEC_UQRSHL  "r")
  		    (UNSPEC_SMULHS "") (UNSPEC_UMULHS "")
--- 3797,3802 ----
***************
*** 3401,3409 ****
  		     (UNSPEC_SLI   "l") (UNSPEC_SRI   "r")])
  
  (define_int_attr u [(UNSPEC_SQSHLU "u") (UNSPEC_SQSHL "") (UNSPEC_UQSHL "")
- 		    (UNSPEC_SQSHRUN "u") (UNSPEC_SQRSHRUN "u")
- 		    (UNSPEC_SQSHRN "")  (UNSPEC_UQSHRN "")
- 		    (UNSPEC_SQRSHRN "") (UNSPEC_UQRSHRN "")
  		    (UNSPEC_SHADD "") (UNSPEC_UHADD "u")
  		    (UNSPEC_SRHADD "") (UNSPEC_URHADD "u")])
  
--- 3812,3817 ----
***************
*** 3419,3429 ****
  			 (UNSPEC_SRHADD "add")
  			 (UNSPEC_URHADD "add")
  			 (UNSPEC_SHSUB "sub")
! 			 (UNSPEC_UHSUB "sub")
! 			 (UNSPEC_ADDHN "add")
! 			 (UNSPEC_SUBHN "sub")
! 			 (UNSPEC_RADDHN "add")
! 			 (UNSPEC_RSUBHN "sub")])
  
  ;; BSL variants: first commutative operand.
  (define_int_attr bsl_1st [(1 "w") (2 "0")])
--- 3827,3833 ----
  			 (UNSPEC_SRHADD "add")
  			 (UNSPEC_URHADD "add")
  			 (UNSPEC_SHSUB "sub")
! 			 (UNSPEC_UHSUB "sub")])
  
  ;; BSL variants: first commutative operand.
  (define_int_attr bsl_1st [(1 "w") (2 "0")])
***************
*** 3500,3506 ****
  			    (UNSPEC_TRN1 "trn1") (UNSPEC_TRN2 "trn2")
  			    (UNSPEC_TRN1Q "trn1") (UNSPEC_TRN2Q "trn2")
  			    (UNSPEC_UZP1 "uzp1") (UNSPEC_UZP2 "uzp2")
! 			    (UNSPEC_UZP1Q "uzp1") (UNSPEC_UZP2Q "uzp2")])
  
  ; op code for REV instructions (size within which elements are reversed).
  (define_int_attr rev_op [(UNSPEC_REV64 "64") (UNSPEC_REV32 "32")
--- 3904,3912 ----
  			    (UNSPEC_TRN1 "trn1") (UNSPEC_TRN2 "trn2")
  			    (UNSPEC_TRN1Q "trn1") (UNSPEC_TRN2Q "trn2")
  			    (UNSPEC_UZP1 "uzp1") (UNSPEC_UZP2 "uzp2")
! 			    (UNSPEC_UZP1Q "uzp1") (UNSPEC_UZP2Q "uzp2")
! 			    (UNSPEC_UZP "uzp") (UNSPEC_UZPQ "uzp")
! 			    (UNSPEC_ZIP "zip") (UNSPEC_ZIPQ "zip")])
  
  ; op code for REV instructions (size within which elements are reversed).
  (define_int_attr rev_op [(UNSPEC_REV64 "64") (UNSPEC_REV32 "32")
***************
*** 3678,3685 ****
--- 4084,4095 ----
  			     (UNSPEC_SQRDMLSH "sqrdmlsh")
  			     (UNSPEC_SQRDMULH "sqrdmulh")
  			     (UNSPEC_SQRSHL "sqrshl")
+ 			     (UNSPEC_SQRSHR "sqrshr")
+ 			     (UNSPEC_SQRSHRN "sqrshrn")
  			     (UNSPEC_SQRSHRNB "sqrshrnb")
  			     (UNSPEC_SQRSHRNT "sqrshrnt")
+ 			     (UNSPEC_SQRSHRU "sqrshru")
+ 			     (UNSPEC_SQRSHRUN "sqrshrun")
  			     (UNSPEC_SQRSHRUNB "sqrshrunb")
  			     (UNSPEC_SQRSHRUNT "sqrshrunt")
  			     (UNSPEC_SQSHL "sqshl")
***************
*** 3724,3729 ****
--- 4134,4141 ----
  			     (UNSPEC_UMULLB "umullb")
  			     (UNSPEC_UMULLT "umullt")
  			     (UNSPEC_UQRSHL "uqrshl")
+ 			     (UNSPEC_UQRSHR "uqrshr")
+ 			     (UNSPEC_UQRSHRN "uqrshrn")
  			     (UNSPEC_UQRSHRNB "uqrshrnb")
  			     (UNSPEC_UQRSHRNT "uqrshrnt")
  			     (UNSPEC_UQSHL "uqshl")
***************
*** 3780,3785 ****
--- 4192,4199 ----
  (define_int_attr sve_fp_op [(UNSPEC_BFDOT "bfdot")
  			    (UNSPEC_BFMLALB "bfmlalb")
  			    (UNSPEC_BFMLALT "bfmlalt")
+ 			    (UNSPEC_BFMLSLB "bfmlslb")
+ 			    (UNSPEC_BFMLSLT "bfmlslt")
  			    (UNSPEC_BFMMLA "bfmmla")
  			    (UNSPEC_FRECPE "frecpe")
  			    (UNSPEC_FRECPS "frecps")
***************
*** 3840,3845 ****
--- 4254,4262 ----
  				(UNSPEC_COND_FMULX "fmulx")
  				(UNSPEC_COND_FSUB "fsubr")])
  
+ (define_int_attr sme_int_op [(UNSPEC_SME_ADD_WRITE "add")
+ 			     (UNSPEC_SME_SUB_WRITE "sub")])
+ 
  (define_int_attr rot [(UNSPEC_CADD90 "90")
  		      (UNSPEC_CADD270 "270")
  		      (UNSPEC_CDOT "0")
***************
*** 4007,4012 ****
--- 4424,4447 ----
  (define_int_attr unspec [(UNSPEC_WHILERW "UNSPEC_WHILERW")
  			 (UNSPEC_WHILEWR "UNSPEC_WHILEWR")])
  
+ (define_int_attr hv [(UNSPEC_SME_LD1_HOR "h")
+ 		     (UNSPEC_SME_LD1_VER "v")
+ 		     (UNSPEC_SME_READ_HOR "h")
+ 		     (UNSPEC_SME_READ_VER "v")
+ 		     (UNSPEC_SME_ST1_HOR "h")
+ 		     (UNSPEC_SME_ST1_VER "v")
+ 		     (UNSPEC_SME_WRITE_HOR "h")
+ 		     (UNSPEC_SME_WRITE_VER "v")])
+ 
+ (define_int_attr has_16bit_form [(UNSPEC_SME_SDOT "true")
+ 				 (UNSPEC_SME_SVDOT "true")
+ 				 (UNSPEC_SME_UDOT "true")
+ 				 (UNSPEC_SME_UVDOT "true")
+ 				 (UNSPEC_SME_SUDOT "false")
+ 				 (UNSPEC_SME_SUVDOT "false")
+ 				 (UNSPEC_SME_USDOT "false")
+ 				 (UNSPEC_SME_USVDOT "false")])
+ 
  ;; Iterators and attributes for fpcr fpsr getter setters
  
  (define_int_iterator GET_FPSCR
***************
*** 4020,4022 ****
--- 4455,4459 ----
     (UNSPECV_SET_FPSR "fpsr")
     (UNSPECV_GET_FPCR "fpcr")
     (UNSPECV_SET_FPCR "fpcr")])
+ 
+ (define_int_attr bits_etype [(8 "b") (16 "h") (32 "s") (64 "d")])
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/predicates.md gcc-14.1.0/gcc/config/aarch64/predicates.md
*** gcc-13.2.0/gcc/config/aarch64/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AArch64 architecture.
! ;; Copyright (C) 2009-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AArch64 architecture.
! ;; Copyright (C) 2009-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 20,25 ****
--- 20,29 ----
  
  (include "../arm/common.md")
  
+ (define_predicate "aarch64_sysreg_string"
+   (and (match_code "const_string")
+        (match_test "aarch64_valid_sysreg_name_p (XSTR (op, 0))")))
+ 
  (define_special_predicate "cc_register"
    (and (match_code "reg")
         (and (match_test "REGNO (op) == CC_REGNUM")
***************
*** 42,47 ****
--- 46,75 ----
    (and (match_code "const_int")
         (match_test "op == CONST0_RTX (mode)")))
  
+ (define_predicate "const_0_to_7_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 7)")))
+ 
+ (define_predicate "const_0_to_4_step_4_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 4)")
+        (match_test "(INTVAL (op) & 3) == 0")))
+ 
+ (define_predicate "const_0_to_6_step_2_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 6)")
+        (match_test "(INTVAL (op) & 1) == 0")))
+ 
+ (define_predicate "const_0_to_12_step_4_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 12)")
+        (match_test "(INTVAL (op) & 3) == 0")))
+ 
+ (define_predicate "const_0_to_14_step_2_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 14)")
+        (match_test "(INTVAL (op) & 1) == 0")))
+ 
  (define_predicate "const_1_to_3_operand"
    (match_code "const_int,const_vector")
  {
***************
*** 184,194 ****
    (and (match_code "const_poly_int")
         (match_test "aarch64_add_offset_temporaries (op) == 1")))
  
  (define_predicate "aarch64_pluslong_operand"
    (ior (match_operand 0 "register_operand")
         (match_operand 0 "aarch64_pluslong_immediate")
         (and (match_test "TARGET_SVE")
! 	    (match_operand 0 "aarch64_sve_plus_immediate"))))
  
  (define_predicate "aarch64_pluslong_or_poly_operand"
    (ior (match_operand 0 "aarch64_pluslong_operand")
--- 212,228 ----
    (and (match_code "const_poly_int")
         (match_test "aarch64_add_offset_temporaries (op) == 1")))
  
+ (define_predicate "aarch64_addsvl_addspl_immediate"
+   (and (match_code "const")
+        (match_test "aarch64_addsvl_addspl_immediate_p (op)")))
+ 
  (define_predicate "aarch64_pluslong_operand"
    (ior (match_operand 0 "register_operand")
         (match_operand 0 "aarch64_pluslong_immediate")
         (and (match_test "TARGET_SVE")
! 	    (match_operand 0 "aarch64_sve_plus_immediate"))
!        (and (match_test "TARGET_SME")
! 	    (match_operand 0 "aarch64_addsvl_addspl_immediate"))))
  
  (define_predicate "aarch64_pluslong_or_poly_operand"
    (ior (match_operand 0 "aarch64_pluslong_operand")
***************
*** 257,266 ****
    (and (match_code "const_int")
         (match_test "aarch64_offset_7bit_signed_scaled_p (mode, INTVAL (op))")))
  
! (define_predicate "aarch64_mem_pair_operand"
!   (and (match_code "mem")
!        (match_test "aarch64_legitimate_address_p (mode, XEXP (op, 0), false,
! 						  ADDR_QUERY_LDP_STP)")))
  
  ;; Used for storing two 64-bit values in an AdvSIMD register using an STP
  ;; as a 128-bit vec_concat.
--- 291,341 ----
    (and (match_code "const_int")
         (match_test "aarch64_offset_7bit_signed_scaled_p (mode, INTVAL (op))")))
  
! (define_special_predicate "aarch64_mem_pair_operator"
!   (and
!     (match_code "mem")
!     (match_test "aarch64_ldpstp_operand_mode_p (GET_MODE (op))")
!     (ior
!       (match_test "mode == VOIDmode")
!       (match_test "known_eq (GET_MODE_SIZE (mode),
! 			     GET_MODE_SIZE (GET_MODE (op)))"))))
! 
! ;; Like aarch64_mem_pair_operator, but additionally check the
! ;; address is suitable.
! (define_special_predicate "aarch64_mem_pair_operand"
!   (and (match_operand 0 "aarch64_mem_pair_operator")
!        (match_test "aarch64_legitimate_address_p (GET_MODE (op), XEXP (op, 0),
! 						  false, ADDR_QUERY_LDP_STP)")))
! 
! (define_predicate "pmode_plus_operator"
!   (and (match_code "plus")
!        (match_test "GET_MODE (op) == Pmode")))
! 
! (define_special_predicate "aarch64_ldp_reg_operand"
!   (and
!     (ior
!       (match_code "reg")
!       (and
!        (match_code "subreg")
!        (match_test "REG_P (SUBREG_REG (op))")))
!     (match_test "aarch64_ldpstp_operand_mode_p (GET_MODE (op))")
!     (ior
!       (match_test "mode == VOIDmode")
!       (match_test "known_eq (GET_MODE_SIZE (mode),
! 			     GET_MODE_SIZE (GET_MODE (op)))"))))
! 
! (define_special_predicate "aarch64_stp_reg_operand"
!   (ior (match_operand 0 "aarch64_ldp_reg_operand")
!        (and (match_code "const_int,const,const_vector,const_double")
! 	    (match_test "aarch64_const_zero_rtx_p (op)")
! 	    (ior
! 	      (match_test "GET_MODE (op) == VOIDmode")
! 	      (and
! 		(match_test "aarch64_ldpstp_operand_mode_p (GET_MODE (op))")
! 		(ior
! 		  (match_test "mode == VOIDmode")
! 		  (match_test "known_eq (GET_MODE_SIZE (mode),
! 					 GET_MODE_SIZE (GET_MODE (op)))")))))))
  
  ;; Used for storing two 64-bit values in an AdvSIMD register using an STP
  ;; as a 128-bit vec_concat.
***************
*** 460,465 ****
--- 535,564 ----
    return aarch64_simd_check_vect_par_cnst_half (op, mode, false);
  })
  
+ ;; PARALLEL for a vec_select that selects all the even or all the odd
+ ;; elements of a vector of MODE.
+ (define_special_predicate "vect_par_cnst_even_or_odd_half"
+   (match_code "parallel")
+ {
+   int nunits = XVECLEN (op, 0);
+   if (!known_eq (GET_MODE_NUNITS (mode), nunits * 2))
+     return false;
+   rtx first = XVECEXP (op, 0, 0);
+   if (!CONST_INT_P (first))
+     return false;
+   return (INTVAL (first) == 0 || INTVAL (first) == 1)
+ 	 && aarch64_stepped_int_parallel_p (op, 2);
+ })
+ 
+ ;; PARALLEL for a vec_select that selects half the elements in a vector of
+ ;; MODE.  Allows any combination of elements, as long as there's no
+ ;; duplicate entries.
+ (define_special_predicate "vect_par_cnst_select_half"
+   (match_code "parallel")
+ {
+   return aarch64_parallel_select_half_p (mode, op);
+ })
+ 
  (define_predicate "descending_int_parallel"
    (match_code "parallel")
  {
***************
*** 534,541 ****
  ;;   Shifts with a range 1-bit_size (aarch64_simd_shift_imm_offset)
  ;;   Shifts with a range 0-bit_size (aarch64_simd_shift_imm_bitsize)
  (define_predicate "aarch64_simd_shift_imm_qi"
!   (and (match_code "const_int")
!        (match_test "IN_RANGE (INTVAL (op), 0, 7)")))
  
  (define_predicate "aarch64_simd_shift_imm_hi"
    (and (match_code "const_int")
--- 633,639 ----
  ;;   Shifts with a range 1-bit_size (aarch64_simd_shift_imm_offset)
  ;;   Shifts with a range 0-bit_size (aarch64_simd_shift_imm_bitsize)
  (define_predicate "aarch64_simd_shift_imm_qi"
!   (match_operand 0 "const_0_to_7_operand"))
  
  (define_predicate "aarch64_simd_shift_imm_hi"
    (and (match_code "const_int")
***************
*** 571,576 ****
--- 669,689 ----
  			GET_MODE_UNIT_BITSIZE (GET_MODE (op)) / 2,
  			GET_MODE_UNIT_BITSIZE (GET_MODE (op)) / 2)")))
  
+ (define_predicate "aarch64_simd_umax_half_mode"
+   (and (match_code "const_vector")
+        (match_test "aarch64_const_vec_all_same_in_range_p (op,
+ 				(HOST_WIDE_INT_1U
+ 				<< (GET_MODE_UNIT_BITSIZE (mode) / 2)) - 1,
+ 				(HOST_WIDE_INT_1U
+ 				<< (GET_MODE_UNIT_BITSIZE (mode) / 2)) - 1)")))
+ 
+ (define_predicate "aarch64_simd_umax_quarter_mode"
+   (and (match_code "const_vector")
+        (match_test "aarch64_const_vec_all_same_in_range_p (op,
+ 				(HOST_WIDE_INT_1U
+ 				<< (GET_MODE_UNIT_BITSIZE (mode) / 4)) - 1,
+ 				(HOST_WIDE_INT_1U
+ 				<< (GET_MODE_UNIT_BITSIZE (mode) / 4)) - 1)")))
  (define_predicate "aarch64_simd_shift_imm_vec_qi"
    (and (match_code "const_vector")
         (match_test "aarch64_const_vec_all_same_in_range_p (op, 1, 8)")))
***************
*** 587,592 ****
--- 700,722 ----
    (and (match_code "const_vector")
         (match_test "aarch64_const_vec_all_same_in_range_p (op, 1, 64)")))
  
+ ;; A constant or vector of constants that represents an integer rounding
+ ;; constant added during fixed-point arithmetic calculations
+ (define_predicate "aarch64_int_rnd_operand"
+   (and (match_code "const_vector,const_int,const_wide_int")
+        (match_test "aarch64_rnd_imm_p (op)")))
+ 
+ (define_predicate "aarch64_simd_raddsubhn_imm_vec"
+   (and (match_code "const_vector")
+        (match_test "aarch64_const_vec_all_same_in_range_p (op, 1,
+ 				HOST_WIDE_INT_1U
+ 				<< (GET_MODE_UNIT_BITSIZE  (mode) / 2 - 1))")))
+ 
+ (define_predicate "aarch64_simd_shll_imm_vec"
+   (and (match_code "const_vector")
+        (match_test "aarch64_const_vec_all_same_in_range_p (op, 0,
+ 				GET_MODE_UNIT_BITSIZE (mode) / 2)")))
+ 
  (define_predicate "aarch64_simd_shift_imm_bitsize_qi"
    (and (match_code "const_int")
         (match_test "IN_RANGE (INTVAL (op), 0, 8)")))
***************
*** 676,685 ****
    (ior (match_operand 0 "register_operand")
         (match_operand 0 "aarch64_sve_ld1r_operand")))
  
- (define_predicate "aarch64_sve_dup_ld1rq_operand"
-   (ior (match_operand 0 "register_operand")
-        (match_operand 0 "aarch64_sve_ld1rq_operand")))
- 
  (define_predicate "aarch64_sve_ptrue_svpattern_immediate"
    (and (match_code "const")
         (match_test "aarch64_sve_ptrue_svpattern_p (op, NULL)")))
--- 806,811 ----
***************
*** 819,824 ****
--- 945,955 ----
    (ior (match_operand 0 "register_operand")
         (match_operand 0 "aarch64_sve_logical_immediate")))
  
+ (define_predicate "aarch64_orr_imm_sve_advsimd"
+   (ior (match_operand 0 "aarch64_reg_or_orr_imm")
+        (and (match_test "TARGET_SVE")
+ 	    (match_operand 0 "aarch64_sve_logical_operand"))))
+ 
  (define_predicate "aarch64_sve_gather_offset_b"
    (ior (match_operand 0 "register_operand")
         (match_operand 0 "aarch64_sve_gather_immediate_b")))
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/rtems.h gcc-14.1.0/gcc/config/aarch64/rtems.h
*** gcc-13.2.0/gcc/config/aarch64/rtems.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/rtems.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for RTEMS based AARCH64 system.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for RTEMS based AARCH64 system.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/saphira.md gcc-14.1.0/gcc/config/aarch64/saphira.md
*** gcc-13.2.0/gcc/config/aarch64/saphira.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/saphira.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Saphira pipeline description
! ;; Copyright (C) 2017-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Saphira pipeline description
! ;; Copyright (C) 2017-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/t-aarch64 gcc-14.1.0/gcc/config/aarch64/t-aarch64
*** gcc-13.2.0/gcc/config/aarch64/t-aarch64	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/t-aarch64	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Machine description for AArch64 architecture.
! #  Copyright (C) 2009-2023 Free Software Foundation, Inc.
  #  Contributed by ARM Ltd.
  #
  #  This file is part of GCC.
--- 1,5 ----
  # Machine description for AArch64 architecture.
! #  Copyright (C) 2009-2024 Free Software Foundation, Inc.
  #  Contributed by ARM Ltd.
  #
  #  This file is part of GCC.
***************
*** 20,26 ****
  
  TM_H += $(srcdir)/config/aarch64/aarch64-fusion-pairs.def \
  	$(srcdir)/config/aarch64/aarch64-tuning-flags.def \
! 	$(srcdir)/config/aarch64/aarch64-option-extensions.def
  OPTIONS_H_EXTRA += $(srcdir)/config/aarch64/aarch64-cores.def \
  		   $(srcdir)/config/aarch64/aarch64-arches.def
  
--- 20,29 ----
  
  TM_H += $(srcdir)/config/aarch64/aarch64-fusion-pairs.def \
  	$(srcdir)/config/aarch64/aarch64-tuning-flags.def \
! 	$(srcdir)/config/aarch64/aarch64-option-extensions.def \
! 	$(srcdir)/config/aarch64/aarch64-cores.def \
! 	$(srcdir)/config/aarch64/aarch64-isa-modes.def \
! 	$(srcdir)/config/aarch64/aarch64-arches.def
  OPTIONS_H_EXTRA += $(srcdir)/config/aarch64/aarch64-cores.def \
  		   $(srcdir)/config/aarch64/aarch64-arches.def
  
*************** aarch64-sve-builtins.o: $(srcdir)/config
*** 60,65 ****
--- 63,69 ----
    $(srcdir)/config/aarch64/aarch64-sve-builtins.def \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-base.def \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sve2.def \
+   $(srcdir)/config/aarch64/aarch64-sve-builtins-sme.def \
    $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) $(DIAGNOSTIC_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
*************** aarch64-sve-builtins.o: $(srcdir)/config
*** 69,75 ****
    $(srcdir)/config/aarch64/aarch64-sve-builtins.h \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-shapes.h \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-base.h \
!   $(srcdir)/config/aarch64/aarch64-sve-builtins-sve2.h
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/aarch64/aarch64-sve-builtins.cc
  
--- 73,80 ----
    $(srcdir)/config/aarch64/aarch64-sve-builtins.h \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-shapes.h \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-base.h \
!   $(srcdir)/config/aarch64/aarch64-sve-builtins-sve2.h \
!   $(srcdir)/config/aarch64/aarch64-sve-builtins-sme.h
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/aarch64/aarch64-sve-builtins.cc
  
*************** aarch64-sve-builtins-sve2.o: \
*** 110,115 ****
--- 115,133 ----
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/aarch64/aarch64-sve-builtins-sve2.cc
  
+ aarch64-sve-builtins-sme.o: \
+   $(srcdir)/config/aarch64/aarch64-sve-builtins-sme.cc \
+   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
+   $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) \
+   $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
+   gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) \
+   $(srcdir)/config/aarch64/aarch64-sve-builtins.h \
+   $(srcdir)/config/aarch64/aarch64-sve-builtins-shapes.h \
+   $(srcdir)/config/aarch64/aarch64-sve-builtins-sme.h \
+   $(srcdir)/config/aarch64/aarch64-sve-builtins-functions.h
+ 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ 		$(srcdir)/config/aarch64/aarch64-sve-builtins-sme.cc
+ 
  aarch64-builtin-iterators.h: $(srcdir)/config/aarch64/geniterators.sh \
  	$(srcdir)/config/aarch64/iterators.md
  	$(SHELL) $(srcdir)/config/aarch64/geniterators.sh \
*************** aarch64-cc-fusion.o: $(srcdir)/config/aa
*** 176,181 ****
--- 194,212 ----
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/aarch64/aarch64-cc-fusion.cc
  
+ aarch64-early-ra.o: $(srcdir)/config/aarch64/aarch64-early-ra.cc \
+     $(CONFIG_H) $(SYSTEM_H) $(CORETYPES_H) $(BACKEND_H) $(RTL_H) $(DF_H) \
+     $(RTL_SSA_H) tree-pass.h
+ 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ 		$(srcdir)/config/aarch64/aarch64-early-ra.cc
+ 
+ aarch64-ldp-fusion.o: $(srcdir)/config/aarch64/aarch64-ldp-fusion.cc \
+     $(CONFIG_H) $(SYSTEM_H) $(CORETYPES_H) $(BACKEND_H) $(RTL_H) $(DF_H) \
+     $(RTL_SSA_H) cfgcleanup.h tree-pass.h ordered-hash-map.h tree-dfa.h \
+     fold-const.h tree-hash-traits.h print-tree.h
+ 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ 		$(srcdir)/config/aarch64/aarch64-ldp-fusion.cc
+ 
  comma=,
  MULTILIB_OPTIONS    = $(subst $(comma),/, $(patsubst %, mabi=%, $(subst $(comma),$(comma)mabi=,$(TM_MULTILIB_CONFIG))))
  MULTILIB_DIRNAMES   = $(subst $(comma), ,$(TM_MULTILIB_CONFIG))
*************** MULTILIB_DIRNAMES   = $(subst $(comma),
*** 183,191 ****
  insn-conditions.md: s-check-sve-md
  s-check-sve-md: $(srcdir)/config/aarch64/check-sve-md.awk \
  		$(srcdir)/config/aarch64/aarch64-sve.md \
! 		$(srcdir)/config/aarch64/aarch64-sve2.md
  	$(AWK) -f $(srcdir)/config/aarch64/check-sve-md.awk \
  	  $(srcdir)/config/aarch64/aarch64-sve.md
  	$(AWK) -f $(srcdir)/config/aarch64/check-sve-md.awk \
  	  $(srcdir)/config/aarch64/aarch64-sve2.md
  	$(STAMP) s-check-sve-md
--- 214,225 ----
  insn-conditions.md: s-check-sve-md
  s-check-sve-md: $(srcdir)/config/aarch64/check-sve-md.awk \
  		$(srcdir)/config/aarch64/aarch64-sve.md \
! 		$(srcdir)/config/aarch64/aarch64-sve2.md \
! 		$(srcdir)/config/aarch64/aarch64-sme.md
  	$(AWK) -f $(srcdir)/config/aarch64/check-sve-md.awk \
  	  $(srcdir)/config/aarch64/aarch64-sve.md
  	$(AWK) -f $(srcdir)/config/aarch64/check-sve-md.awk \
  	  $(srcdir)/config/aarch64/aarch64-sve2.md
+ 	$(AWK) -f $(srcdir)/config/aarch64/check-sve-md.awk \
+ 	  $(srcdir)/config/aarch64/aarch64-sme.md
  	$(STAMP) s-check-sve-md
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/t-aarch64-freebsd gcc-14.1.0/gcc/config/aarch64/t-aarch64-freebsd
*** gcc-13.2.0/gcc/config/aarch64/t-aarch64-freebsd	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/t-aarch64-freebsd	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Machine description for AArch64 architecture.
! #  Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  #  This file is part of GCC.
  #
--- 1,5 ----
  # Machine description for AArch64 architecture.
! #  Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  #  This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/t-aarch64-linux gcc-14.1.0/gcc/config/aarch64/t-aarch64-linux
*** gcc-13.2.0/gcc/config/aarch64/t-aarch64-linux	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/t-aarch64-linux	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Machine description for AArch64 architecture.
! #  Copyright (C) 2009-2023 Free Software Foundation, Inc.
  #  Contributed by ARM Ltd.
  #
  #  This file is part of GCC.
--- 1,5 ----
  # Machine description for AArch64 architecture.
! #  Copyright (C) 2009-2024 Free Software Foundation, Inc.
  #  Contributed by ARM Ltd.
  #
  #  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/t-aarch64-netbsd gcc-14.1.0/gcc/config/aarch64/t-aarch64-netbsd
*** gcc-13.2.0/gcc/config/aarch64/t-aarch64-netbsd	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/t-aarch64-netbsd	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Machine description for AArch64 architecture.
! #  Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  #  This file is part of GCC.
  #
--- 1,5 ----
  # Machine description for AArch64 architecture.
! #  Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  #  This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/t-aarch64-rtems gcc-14.1.0/gcc/config/aarch64/t-aarch64-rtems
*** gcc-13.2.0/gcc/config/aarch64/t-aarch64-rtems	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/t-aarch64-rtems	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,42 ----
+ # Multilibs for aarch64 RTEMS targets.
+ #
+ # Copyright (C) 2024 Free Software Foundation, Inc.
+ #
+ # This file is part of GCC.
+ #
+ # GCC is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 3, or (at your option)
+ # any later version.
+ #
+ # GCC is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ # General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ MULTILIB_OPTIONS  =
+ MULTILIB_DIRNAMES =
+ MULTILIB_REQUIRED =
+ 
+ MULTILIB_OPTIONS  += mabi=ilp32
+ MULTILIB_DIRNAMES += ilp32
+ 
+ MULTILIB_OPTIONS  += mno-outline-atomics
+ MULTILIB_DIRNAMES += nooa
+ 
+ MULTILIB_OPTIONS  += mcpu=cortex-a53
+ MULTILIB_DIRNAMES += a53
+ 
+ MULTILIB_OPTIONS  += mfix-cortex-a53-835769
+ MULTILIB_DIRNAMES += fix835769
+ 
+ MULTILIB_OPTIONS  += mfix-cortex-a53-843419
+ MULTILIB_DIRNAMES += fix843419
+ 
+ MULTILIB_REQUIRED += mabi=ilp32
+ MULTILIB_REQUIRED += mabi=ilp32/mno-outline-atomics/mcpu=cortex-a53/mfix-cortex-a53-835769/mfix-cortex-a53-843419
+ MULTILIB_REQUIRED += mno-outline-atomics/mcpu=cortex-a53/mfix-cortex-a53-835769/mfix-cortex-a53-843419
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/t-aarch64-vxworks gcc-14.1.0/gcc/config/aarch64/t-aarch64-vxworks
*** gcc-13.2.0/gcc/config/aarch64/t-aarch64-vxworks	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/t-aarch64-vxworks	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  # Multilibs for VxWorks.
  #
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  # Multilibs for VxWorks.
  #
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/thunderx.md gcc-14.1.0/gcc/config/aarch64/thunderx.md
*** gcc-13.2.0/gcc/config/aarch64/thunderx.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/thunderx.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Cavium ThunderX pipeline description
! ;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;;
  ;; Written by Andrew Pinski  <apinski@cavium.com>
  
--- 1,5 ----
  ;; Cavium ThunderX pipeline description
! ;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;;
  ;; Written by Andrew Pinski  <apinski@cavium.com>
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/thunderx2t99.md gcc-14.1.0/gcc/config/aarch64/thunderx2t99.md
*** gcc-13.2.0/gcc/config/aarch64/thunderx2t99.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/thunderx2t99.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Cavium ThunderX 2 CN99xx pipeline description
! ;; Copyright (C) 2016-2023 Free Software Foundation, Inc.
  ;;
  ;; Contributed by Cavium, Broadcom and Mentor Embedded.
  
--- 1,5 ----
  ;; Cavium ThunderX 2 CN99xx pipeline description
! ;; Copyright (C) 2016-2024 Free Software Foundation, Inc.
  ;;
  ;; Contributed by Cavium, Broadcom and Mentor Embedded.
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/thunderx3t110.md gcc-14.1.0/gcc/config/aarch64/thunderx3t110.md
*** gcc-13.2.0/gcc/config/aarch64/thunderx3t110.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/thunderx3t110.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Cavium ThunderX 3 CN11xx pipeline description
! ;; Copyright (C) 2020-2023 Free Software Foundation, Inc.
  ;;
  ;; Contributed by Marvell
  
--- 1,5 ----
  ;; Cavium ThunderX 3 CN11xx pipeline description
! ;; Copyright (C) 2020-2024 Free Software Foundation, Inc.
  ;;
  ;; Contributed by Marvell
  
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tsv110.md gcc-14.1.0/gcc/config/aarch64/tsv110.md
*** gcc-13.2.0/gcc/config/aarch64/tsv110.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/tsv110.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; tsv110 pipeline description
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; tsv110 pipeline description
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/a64fx.h gcc-14.1.0/gcc/config/aarch64/tuning_models/a64fx.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/a64fx.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/a64fx.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,169 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_A64FX
+ #define GCC_AARCH64_H_A64FX
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table a64fx_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       1, /* si  */
+       1, /* di  */
+       2, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   0, /* post_modify_ld3_st3  */
+   0, /* post_modify_ld4_st4  */
+   2, /* register_offset  */
+   3, /* register_sextend  */
+   3, /* register_zextend  */
+   0, /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost a64fx_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of slow int<->fp moves for spilling by setting
+      their cost higher than memmov_cost.  */
+   5, /* GP2FP  */
+   7, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost a64fx_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   5, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   3, /* permute_cost  */
+   13, /* reduc_i8_cost  */
+   13, /* reduc_i16_cost  */
+   13, /* reduc_i32_cost  */
+   13, /* reduc_i64_cost  */
+   13, /* reduc_f16_cost  */
+   13, /* reduc_f32_cost  */
+   13, /* reduc_f64_cost  */
+   13, /* store_elt_extra_cost  */
+   13, /* vec_to_scalar_cost  */
+   4, /* scalar_to_vec_cost  */
+   6, /* align_load_cost  */
+   6, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ static const sve_vec_cost a64fx_sve_vector_cost =
+ {
+   {
+     2, /* int_stmt_cost  */
+     5, /* fp_stmt_cost  */
+     0, /* ld2_st2_permute_cost  */
+     0, /* ld3_st3_permute_cost  */
+     0, /* ld4_st4_permute_cost  */
+     3, /* permute_cost  */
+     13, /* reduc_i8_cost  */
+     13, /* reduc_i16_cost  */
+     13, /* reduc_i32_cost  */
+     13, /* reduc_i64_cost  */
+     13, /* reduc_f16_cost  */
+     13, /* reduc_f32_cost  */
+     13, /* reduc_f64_cost  */
+     13, /* store_elt_extra_cost  */
+     13, /* vec_to_scalar_cost  */
+     4, /* scalar_to_vec_cost  */
+     6, /* align_load_cost  */
+     6, /* unalign_load_cost  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   13, /* clast_cost  */
+   13, /* fadda_f16_cost  */
+   13, /* fadda_f32_cost  */
+   13, /* fadda_f64_cost  */
+   64, /* gather_load_x32_cost  */
+   32, /* gather_load_x64_cost  */
+   1 /* scatter_store_elt_cost  */
+ };
+ 
+ static const struct cpu_vector_cost a64fx_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   5, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   3, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &a64fx_advsimd_vector_cost, /* advsimd  */
+   &a64fx_sve_vector_cost, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ static const cpu_prefetch_tune a64fx_prefetch_tune =
+ {
+   8,			/* num_slots  */
+   64,			/* l1_cache_size  */
+   256,			/* l1_cache_line_size  */
+   32768,		/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params a64fx_tunings =
+ {
+   &a64fx_extra_costs,
+   &a64fx_addrcost_table,
+   &a64fx_regmove_cost,
+   &a64fx_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_512, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   7, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "32",	/* function_align.  */
+   "16",	/* jump_align.  */
+   "32",	/* loop_align.  */
+   4,	/* int_reassoc_width.  */
+   2,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+   &a64fx_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_A64FX.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/ampere1.h gcc-14.1.0/gcc/config/aarch64/tuning_models/ampere1.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/ampere1.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/ampere1.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,114 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_AMPERE1
+ #define GCC_AARCH64_H_AMPERE1
+ 
+ #include "generic.h"
+ 
+ static const advsimd_vec_cost ampere1_advsimd_vector_cost =
+ {
+   1, /* int_stmt_cost  */
+   3, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   2, /* permute_cost  */
+   12, /* reduc_i8_cost  */
+   9, /* reduc_i16_cost  */
+   6, /* reduc_i32_cost  */
+   5, /* reduc_i64_cost  */
+   9, /* reduc_f16_cost  */
+   6, /* reduc_f32_cost  */
+   5, /* reduc_f64_cost  */
+   8, /* store_elt_extra_cost  */
+   6, /* vec_to_scalar_cost  */
+   7, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ /* Ampere-1 costs for vector insn classes.  */
+ static const struct cpu_vector_cost ampere1_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   3, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &ampere1_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr  /* issue_info  */
+ };
+ 
+ static const cpu_prefetch_tune ampere1_prefetch_tune =
+ {
+   0,			/* num_slots  */
+   64,			/* l1_cache_size  */
+   64,			/* l1_cache_line_size  */
+   2048,			/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params ampere1_tunings =
+ {
+   &ampere1_extra_costs,
+   &generic_addrcost_table,
+   &generic_regmove_cost,
+   &ampere1_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4, /* issue_rate  */
+   (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC |
+    AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK |
+    AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ |
+    AARCH64_FUSE_CMP_BRANCH),
+   /* fusible_ops  */
+   "32",		/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   4,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_AVOID_CROSS_LOOP_FMA
+    | AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA), /* tune_flags.  */
+   &ampere1_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALIGNED,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALIGNED    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_AMPERE1.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/ampere1a.h gcc-14.1.0/gcc/config/aarch64/tuning_models/ampere1a.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/ampere1a.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/ampere1a.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,66 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_AMPERE1A
+ #define GCC_AARCH64_H_AMPERE1A
+ 
+ #include "generic.h"
+ 
+ static const struct tune_params ampere1a_tunings =
+ {
+   &ampere1a_extra_costs,
+   &generic_addrcost_table,
+   &generic_regmove_cost,
+   &ampere1_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4, /* issue_rate  */
+   (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC |
+    AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK |
+    AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ |
+    AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_ALU_CBZ |
+    AARCH64_FUSE_ADDSUB_2REG_CONST1),
+   /* fusible_ops  */
+   "32",		/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   4,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_AVOID_CROSS_LOOP_FMA
+    | AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA), /* tune_flags.  */
+   &ampere1_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALIGNED,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALIGNED    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_AMPERE1A.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/ampere1b.h gcc-14.1.0/gcc/config/aarch64/tuning_models/ampere1b.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/ampere1b.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/ampere1b.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,116 ----
+ /* Tuning model description for the Ampere1B core.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_AMPERE1B
+ #define GCC_AARCH64_H_AMPERE1B
+ 
+ #include "generic.h"
+ 
+ static const cpu_prefetch_tune ampere1b_prefetch_tune =
+ {
+   48,			/* num_slots  */
+   64,			/* l1_cache_size  */
+   64,			/* l1_cache_line_size  */
+   2048,			/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const advsimd_vec_cost ampere1b_advsimd_vector_cost =
+ {
+   1, /* int_stmt_cost  */
+   3, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   2, /* permute_cost  */
+   8, /* reduc_i8_cost  */
+   6, /* reduc_i16_cost  */
+   4, /* reduc_i32_cost  */
+   2, /* reduc_i64_cost  */
+   9, /* reduc_f16_cost  */
+   6, /* reduc_f32_cost  */
+   3, /* reduc_f64_cost  */
+   5, /* store_elt_extra_cost  */
+   5, /* vec_to_scalar_cost  */
+   5, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ /* Ampere-1B costs for vector insn classes.  */
+ static const struct cpu_vector_cost ampere1b_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   3, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &ampere1b_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr  /* issue_info  */
+ };
+ 
+ static const struct tune_params ampere1b_tunings =
+ {
+   &ampere1b_extra_costs,
+   &generic_addrcost_table,
+   &generic_regmove_cost,
+   &ampere1b_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 3, /* load_int.  */
+     1, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4, /* issue_rate  */
+   (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC |
+    AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK |
+    AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ |
+    AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_ALU_CBZ |
+    AARCH64_FUSE_ADDSUB_2REG_CONST1),
+   /* fusible_ops  */
+   "32",		/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   4,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_STRONG,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
+    | AARCH64_EXTRA_TUNE_AVOID_CROSS_LOOP_FMA
+    | AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA), /* tune_flags.  */
+   &ampere1b_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALIGNED,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALIGNED    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_AMPERE1B */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa35.h gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa35.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa35.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa35.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,62 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_CORTEXA35
+ #define GCC_AARCH64_H_CORTEXA35
+ 
+ #include "generic.h"
+ #include "cortexa53.h"
+ 
+ static const struct tune_params cortexa35_tunings =
+ {
+   &cortexa53_extra_costs,
+   &generic_addrcost_table,
+   &cortexa53_regmove_cost,
+   &generic_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   1, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
+    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
+   "16",	/* function_align.  */
+   "4",	/* jump_align.  */
+   "8",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_CORTEXA35.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa53.h gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa53.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa53.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa53.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,71 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_CORTEXA53
+ #define GCC_AARCH64_H_CORTEXA53
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_regmove_cost cortexa53_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of slow int<->fp moves for spilling by setting
+      their cost higher than memmov_cost.  */
+   5, /* GP2FP  */
+   5, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ static const struct tune_params cortexa53_tunings =
+ {
+   &cortexa53_extra_costs,
+   &generic_addrcost_table,
+   &cortexa53_regmove_cost,
+   &generic_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   2, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
+    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
+   "16",	/* function_align.  */
+   "4",	/* jump_align.  */
+   "8",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_CORTEXA53.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa57.h gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa57.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa57.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa57.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,109 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_CORTEXA57
+ #define GCC_AARCH64_H_CORTEXA57
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_regmove_cost cortexa57_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of slow int<->fp moves for spilling by setting
+      their cost higher than memmov_cost.  */
+   5, /* GP2FP  */
+   5, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost cortexa57_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   2, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   3, /* permute_cost  */
+   8, /* reduc_i8_cost  */
+   8, /* reduc_i16_cost  */
+   8, /* reduc_i32_cost  */
+   8, /* reduc_i64_cost  */
+   8, /* reduc_f16_cost  */
+   8, /* reduc_f32_cost  */
+   8, /* reduc_f64_cost  */
+   8, /* store_elt_extra_cost  */
+   8, /* vec_to_scalar_cost  */
+   8, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ /* Cortex-A57 costs for vector insn classes.  */
+ static const struct cpu_vector_cost cortexa57_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   1, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &cortexa57_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ static const struct tune_params cortexa57_tunings =
+ {
+   &cortexa57_extra_costs,
+   &generic_addrcost_table,
+   &cortexa57_regmove_cost,
+   &cortexa57_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
+    | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops  */
+   "16",	/* function_align.  */
+   "4",	/* jump_align.  */
+   "8",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_RENAME_FMA_REGS),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_CORTEXA57.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa72.h gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa72.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa72.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa72.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,61 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_CORTEXA72
+ #define GCC_AARCH64_H_CORTEXA72
+ 
+ #include "generic.h"
+ 
+ static const struct tune_params cortexa72_tunings =
+ {
+   &cortexa57_extra_costs,
+   &generic_addrcost_table,
+   &cortexa57_regmove_cost,
+   &cortexa57_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
+    | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops  */
+   "16",	/* function_align.  */
+   "4",	/* jump_align.  */
+   "8",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_CORTEXA72.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa73.h gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa73.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/cortexa73.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/cortexa73.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,62 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_CORTEXA73
+ #define GCC_AARCH64_H_CORTEXA73
+ 
+ #include "generic.h"
+ 
+ static const struct tune_params cortexa73_tunings =
+ {
+   &cortexa57_extra_costs,
+   &generic_addrcost_table,
+   &cortexa57_regmove_cost,
+   &cortexa57_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   2, /* issue_rate.  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
+    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
+   "16",	/* function_align.  */
+   "4",	/* jump_align.  */
+   "8",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ 
+ #endif /* GCC_AARCH64_H_CORTEXA73.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/emag.h gcc-14.1.0/gcc/config/aarch64/tuning_models/emag.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/emag.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/emag.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,60 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_EMAG
+ #define GCC_AARCH64_H_EMAG
+ 
+ #include "generic.h"
+ 
+ static const struct tune_params emag_tunings =
+ {
+   &xgene1_extra_costs,
+   &xgene1_addrcost_table,
+   &xgene1_regmove_cost,
+   &xgene1_vector_cost,
+   &generic_branch_cost,
+   &xgene1_approx_modes,
+   SVE_NOT_IMPLEMENTED,
+   { 6, /* load_int.  */
+     6, /* store_int.  */
+     6, /* load_fp.  */
+     6, /* store_fp.  */
+     6, /* load_pred.  */
+     6 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4, /* issue_rate  */
+   AARCH64_FUSE_NOTHING, /* fusible_ops  */
+   "16",	/* function_align.  */
+   "16",	/* jump_align.  */
+   "16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   17,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS),	/* tune_flags.  */
+   &xgene1_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_EMAG.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/exynosm1.h gcc-14.1.0/gcc/config/aarch64/tuning_models/exynosm1.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/exynosm1.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/exynosm1.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,144 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_EXYNOSM1
+ #define GCC_AARCH64_H_EXYNOSM1
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table exynosm1_addrcost_table =
+ {
+     {
+       0, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       2, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   0, /* post_modify_ld3_st3  */
+   0, /* post_modify_ld4_st4  */
+   1, /* register_offset  */
+   1, /* register_sextend  */
+   2, /* register_zextend  */
+   0, /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost exynosm1_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of slow int<->fp moves for spilling by setting
+      their cost higher than memmov_cost (actual, 4 and 9).  */
+   9, /* GP2FP  */
+   9, /* FP2GP  */
+   1 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost exynosm1_advsimd_vector_cost =
+ {
+   3, /* int_stmt_cost  */
+   3, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   3, /* permute_cost  */
+   3, /* reduc_i8_cost  */
+   3, /* reduc_i16_cost  */
+   3, /* reduc_i32_cost  */
+   3, /* reduc_i64_cost  */
+   3, /* reduc_f16_cost  */
+   3, /* reduc_f32_cost  */
+   3, /* reduc_f64_cost  */
+   3, /* store_elt_extra_cost  */
+   3, /* vec_to_scalar_cost  */
+   3, /* scalar_to_vec_cost  */
+   5, /* align_load_cost  */
+   5, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ static const struct cpu_vector_cost exynosm1_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   1, /* scalar_fp_stmt_cost  */
+   5, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &exynosm1_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ /* Approximation modes for Exynos M1.  */
+ static const cpu_approx_modes exynosm1_approx_modes =
+ {
+   AARCH64_APPROX_NONE,	/* division  */
+   AARCH64_APPROX_ALL,	/* sqrt  */
+   AARCH64_APPROX_ALL	/* recip_sqrt  */
+ };
+ 
+ static const cpu_prefetch_tune exynosm1_prefetch_tune =
+ {
+   0,			/* num_slots  */
+   -1,			/* l1_cache_size  */
+   64,			/* l1_cache_line_size  */
+   -1,			/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params exynosm1_tunings =
+ {
+   &exynosm1_extra_costs,
+   &exynosm1_addrcost_table,
+   &exynosm1_regmove_cost,
+   &exynosm1_vector_cost,
+   &generic_branch_cost,
+   &exynosm1_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3,	/* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC), /* fusible_ops  */
+   "4",	/* function_align.  */
+   "4",	/* jump_align.  */
+   "4",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   48,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE), /* tune_flags.  */
+   &exynosm1_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_EXYNOSM1.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/generic.h gcc-14.1.0/gcc/config/aarch64/tuning_models/generic.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/generic.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/generic.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,190 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+    Contributed by ARM Ltd.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_GENERIC
+ #define GCC_AARCH64_H_GENERIC
+ 
+ static const struct cpu_addrcost_table generic_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       1, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   0, /* post_modify_ld3_st3  */
+   0, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   0, /* register_sextend  */
+   0, /* register_zextend  */
+   0 /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost generic_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of slow int<->fp moves for spilling by setting
+      their cost higher than memmov_cost.  */
+   5, /* GP2FP  */
+   5, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ /* Generic costs for Advanced SIMD vector operations.   */
+ static const advsimd_vec_cost generic_advsimd_vector_cost =
+ {
+   1, /* int_stmt_cost  */
+   1, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   2, /* permute_cost  */
+   2, /* reduc_i8_cost  */
+   2, /* reduc_i16_cost  */
+   2, /* reduc_i32_cost  */
+   2, /* reduc_i64_cost  */
+   2, /* reduc_f16_cost  */
+   2, /* reduc_f32_cost  */
+   2, /* reduc_f64_cost  */
+   2, /* store_elt_extra_cost  */
+   2, /* vec_to_scalar_cost  */
+   1, /* scalar_to_vec_cost  */
+   1, /* align_load_cost  */
+   1, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ /* Generic costs for SVE vector operations.  */
+ static const sve_vec_cost generic_sve_vector_cost =
+ {
+   {
+     1, /* int_stmt_cost  */
+     1, /* fp_stmt_cost  */
+     0, /* ld2_st2_permute_cost  */
+     0, /* ld3_st3_permute_cost  */
+     0, /* ld4_st4_permute_cost  */
+     2, /* permute_cost  */
+     2, /* reduc_i8_cost  */
+     2, /* reduc_i16_cost  */
+     2, /* reduc_i32_cost  */
+     2, /* reduc_i64_cost  */
+     2, /* reduc_f16_cost  */
+     2, /* reduc_f32_cost  */
+     2, /* reduc_f64_cost  */
+     2, /* store_elt_extra_cost  */
+     2, /* vec_to_scalar_cost  */
+     1, /* scalar_to_vec_cost  */
+     1, /* align_load_cost  */
+     1, /* unalign_load_cost  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   2, /* clast_cost  */
+   2, /* fadda_f16_cost  */
+   2, /* fadda_f32_cost  */
+   2, /* fadda_f64_cost  */
+   4, /* gather_load_x32_cost  */
+   2, /* gather_load_x64_cost  */
+   1 /* scatter_store_elt_cost  */
+ };
+ 
+ /* Generic costs for vector insn classes.  */
+ static const struct cpu_vector_cost generic_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   1, /* scalar_fp_stmt_cost  */
+   1, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   3, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &generic_advsimd_vector_cost, /* advsimd  */
+   &generic_sve_vector_cost, /* sve */
+   nullptr /* issue_info  */
+ };
+ 
+ /* Generic costs for branch instructions.  */
+ static const struct cpu_branch_cost generic_branch_cost =
+ {
+   1,  /* Predictable.  */
+   3   /* Unpredictable.  */
+ };
+ 
+ /* Generic approximation modes.  */
+ static const cpu_approx_modes generic_approx_modes =
+ {
+   AARCH64_APPROX_NONE,	/* division  */
+   AARCH64_APPROX_NONE,	/* sqrt  */
+   AARCH64_APPROX_NONE	/* recip_sqrt  */
+ };
+ 
+ /* Generic prefetch settings (which disable prefetch).  */
+ static const cpu_prefetch_tune generic_prefetch_tune =
+ {
+   0,			/* num_slots  */
+   -1,			/* l1_cache_size  */
+   -1,			/* l1_cache_line_size  */
+   -1,			/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params generic_tunings =
+ {
+   &cortexa57_extra_costs,
+   &generic_addrcost_table,
+   &generic_regmove_cost,
+   &generic_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   2, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "16:12",	/* function_align.  */
+   "4",	/* jump_align.  */
+   "8",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   /* Enabling AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS significantly benefits
+      Neoverse V1.  It does not have a noticeable effect on A64FX and should
+      have at most a very minor effect on SVE2 cores.  */
+   (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_GENERIC.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/generic_armv8_a.h gcc-14.1.0/gcc/config/aarch64/tuning_models/generic_armv8_a.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/generic_armv8_a.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/generic_armv8_a.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,191 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_GENERIC_ARMV8_A
+ #define GCC_AARCH64_H_GENERIC_ARMV8_A
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table generic_armv8_a_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       1, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   0, /* post_modify_ld3_st3  */
+   0, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   0, /* register_sextend  */
+   0, /* register_zextend  */
+   0 /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost generic_armv8_a_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of slow int<->fp moves for spilling by setting
+      their cost higher than memmov_cost.  */
+   5, /* GP2FP  */
+   5, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ /* Generic costs for Advanced SIMD vector operations.   */
+ static const advsimd_vec_cost generic_armv8_a_advsimd_vector_cost =
+ {
+   1, /* int_stmt_cost  */
+   1, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   2, /* permute_cost  */
+   2, /* reduc_i8_cost  */
+   2, /* reduc_i16_cost  */
+   2, /* reduc_i32_cost  */
+   2, /* reduc_i64_cost  */
+   2, /* reduc_f16_cost  */
+   2, /* reduc_f32_cost  */
+   2, /* reduc_f64_cost  */
+   2, /* store_elt_extra_cost  */
+   2, /* vec_to_scalar_cost  */
+   1, /* scalar_to_vec_cost  */
+   1, /* align_load_cost  */
+   1, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ /* Generic costs for SVE vector operations.  */
+ static const sve_vec_cost generic_armv8_a_sve_vector_cost =
+ {
+   {
+     1, /* int_stmt_cost  */
+     1, /* fp_stmt_cost  */
+     0, /* ld2_st2_permute_cost  */
+     0, /* ld3_st3_permute_cost  */
+     0, /* ld4_st4_permute_cost  */
+     2, /* permute_cost  */
+     2, /* reduc_i8_cost  */
+     2, /* reduc_i16_cost  */
+     2, /* reduc_i32_cost  */
+     2, /* reduc_i64_cost  */
+     2, /* reduc_f16_cost  */
+     2, /* reduc_f32_cost  */
+     2, /* reduc_f64_cost  */
+     2, /* store_elt_extra_cost  */
+     2, /* vec_to_scalar_cost  */
+     1, /* scalar_to_vec_cost  */
+     1, /* align_load_cost  */
+     1, /* unalign_load_cost  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   2, /* clast_cost  */
+   2, /* fadda_f16_cost  */
+   2, /* fadda_f32_cost  */
+   2, /* fadda_f64_cost  */
+   4, /* gather_load_x32_cost  */
+   2, /* gather_load_x64_cost  */
+   1 /* scatter_store_elt_cost  */
+ };
+ 
+ /* Generic costs for vector insn classes.  */
+ static const struct cpu_vector_cost generic_armv8_a_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   1, /* scalar_fp_stmt_cost  */
+   1, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   3, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &generic_armv8_a_advsimd_vector_cost, /* advsimd  */
+   &generic_armv8_a_sve_vector_cost, /* sve */
+   nullptr /* issue_info  */
+ };
+ 
+ /* Generic costs for branch instructions.  */
+ static const struct cpu_branch_cost generic_armv8_a_branch_cost =
+ {
+   1,  /* Predictable.  */
+   3   /* Unpredictable.  */
+ };
+ 
+ /* Generic approximation modes.  */
+ static const cpu_approx_modes generic_armv8_a_approx_modes =
+ {
+   AARCH64_APPROX_NONE,	/* division  */
+   AARCH64_APPROX_NONE,	/* sqrt  */
+   AARCH64_APPROX_NONE	/* recip_sqrt  */
+ };
+ 
+ /* Generic prefetch settings (which disable prefetch).  */
+ static const cpu_prefetch_tune generic_armv8_a_prefetch_tune =
+ {
+   0,			/* num_slots  */
+   -1,			/* l1_cache_size  */
+   -1,			/* l1_cache_line_size  */
+   -1,			/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params generic_armv8_a_tunings =
+ {
+   &cortexa76_extra_costs,
+   &generic_armv8_a_addrcost_table,
+   &generic_armv8_a_regmove_cost,
+   &generic_armv8_a_vector_cost,
+   &generic_armv8_a_branch_cost,
+   &generic_armv8_a_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     2, /* store_int.  */
+     5, /* load_fp.  */
+     2, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "32:16",	/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
+    | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
+    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
+    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_GENERIC_ARMV8_A.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/generic_armv9_a.h gcc-14.1.0/gcc/config/aarch64/tuning_models/generic_armv9_a.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/generic_armv9_a.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/generic_armv9_a.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,245 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_GENERIC_ARMV9_A
+ #define GCC_AARCH64_H_GENERIC_ARMV9_A
+ 
+ #include "generic.h"
+ #include "generic_armv8_a.h"
+ 
+ static const struct cpu_addrcost_table generic_armv9_a_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       1, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   2, /* post_modify_ld3_st3  */
+   2, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   0, /* register_sextend  */
+   0, /* register_zextend  */
+   0 /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost generic_armv9_a_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Spilling to int<->fp instead of memory is recommended so set
+      realistic costs compared to memmov_cost.  */
+   3, /* GP2FP  */
+   2, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost generic_armv9_a_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   2, /* fp_stmt_cost  */
+   2, /* ld2_st2_permute_cost */
+   2, /* ld3_st3_permute_cost  */
+   3, /* ld4_st4_permute_cost  */
+   3, /* permute_cost  */
+   4, /* reduc_i8_cost  */
+   4, /* reduc_i16_cost  */
+   2, /* reduc_i32_cost  */
+   2, /* reduc_i64_cost  */
+   6, /* reduc_f16_cost  */
+   4, /* reduc_f32_cost  */
+   2, /* reduc_f64_cost  */
+   2, /* store_elt_extra_cost  */
+   /* This value is just inherited from the Cortex-A57 table.  */
+   8, /* vec_to_scalar_cost  */
+   /* This depends very much on what the scalar value is and
+      where it comes from.  E.g. some constants take two dependent
+      instructions or a load, while others might be moved from a GPR.
+      4 seems to be a reasonable compromise in practice.  */
+   4, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   /* Although stores have a latency of 2 and compete for the
+      vector pipes, in practice it's better not to model that.  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ static const sve_vec_cost generic_armv9_a_sve_vector_cost =
+ {
+   {
+     2, /* int_stmt_cost  */
+     2, /* fp_stmt_cost  */
+     3, /* ld2_st2_permute_cost  */
+     4, /* ld3_st3_permute_cost  */
+     4, /* ld4_st4_permute_cost  */
+     3, /* permute_cost  */
+     /* Theoretically, a reduction involving 15 scalar ADDs could
+        complete in ~5 cycles and would have a cost of 15.  [SU]ADDV
+        completes in 11 cycles, so give it a cost of 15 + 6.  */
+     21, /* reduc_i8_cost  */
+     /* Likewise for 7 scalar ADDs (~3 cycles) vs. 9: 7 + 6.  */
+     13, /* reduc_i16_cost  */
+     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 8: 3 + 6.  */
+     9, /* reduc_i32_cost  */
+     /* Likewise for 1 scalar ADD (~1 cycles) vs. 2: 1 + 1.  */
+     2, /* reduc_i64_cost  */
+     /* Theoretically, a reduction involving 7 scalar FADDs could
+        complete in ~8 cycles and would have a cost of 14.  FADDV
+        completes in 6 cycles, so give it a cost of 14 - 2.  */
+     12, /* reduc_f16_cost  */
+     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 4: 6 - 0.  */
+     6, /* reduc_f32_cost  */
+     /* Likewise for 1 scalar FADD (~2 cycles) vs. 2: 2 - 0.  */
+     2, /* reduc_f64_cost  */
+     2, /* store_elt_extra_cost  */
+     /* This value is just inherited from the Cortex-A57 table.  */
+     8, /* vec_to_scalar_cost  */
+     /* See the comment above the Advanced SIMD versions.  */
+     4, /* scalar_to_vec_cost  */
+     4, /* align_load_cost  */
+     4, /* unalign_load_cost  */
+     /* Although stores have a latency of 2 and compete for the
+        vector pipes, in practice it's better not to model that.  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   3, /* clast_cost  */
+   10, /* fadda_f16_cost  */
+   6, /* fadda_f32_cost  */
+   4, /* fadda_f64_cost  */
+   /* A strided Advanced SIMD x64 load would take two parallel FP loads
+      (8 cycles) plus an insertion (2 cycles).  Assume a 64-bit SVE gather
+      is 1 cycle more.  The Advanced SIMD version is costed as 2 scalar loads
+      (cost 8) and a vec_construct (cost 2).  Add a full vector operation
+      (cost 2) to that, to avoid the difference being lost in rounding.
+ 
+      There is no easy comparison between a strided Advanced SIMD x32 load
+      and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector
+      operation more than a 64-bit gather.  */
+   14, /* gather_load_x32_cost  */
+   12, /* gather_load_x64_cost  */
+   3 /* scatter_store_elt_cost  */
+ };
+ 
+ static const aarch64_scalar_vec_issue_info generic_armv9_a_scalar_issue_info =
+ {
+   3, /* loads_stores_per_cycle  */
+   2, /* stores_per_cycle  */
+   4, /* general_ops_per_cycle  */
+   0, /* fp_simd_load_general_ops  */
+   1 /* fp_simd_store_general_ops  */
+ };
+ 
+ static const aarch64_advsimd_vec_issue_info generic_armv9_a_advsimd_issue_info =
+ {
+   {
+     3, /* loads_stores_per_cycle  */
+     2, /* stores_per_cycle  */
+     2, /* general_ops_per_cycle  */
+     0, /* fp_simd_load_general_ops  */
+     1 /* fp_simd_store_general_ops  */
+   },
+   2, /* ld2_st2_general_ops  */
+   2, /* ld3_st3_general_ops  */
+   3 /* ld4_st4_general_ops  */
+ };
+ 
+ static const aarch64_sve_vec_issue_info generic_armv9_a_sve_issue_info =
+ {
+   {
+     {
+       3, /* loads_per_cycle  */
+       2, /* stores_per_cycle  */
+       2, /* general_ops_per_cycle  */
+       0, /* fp_simd_load_general_ops  */
+       1 /* fp_simd_store_general_ops  */
+     },
+     2, /* ld2_st2_general_ops  */
+     3, /* ld3_st3_general_ops  */
+     3 /* ld4_st4_general_ops  */
+   },
+   2, /* pred_ops_per_cycle  */
+   2, /* while_pred_ops  */
+   2, /* int_cmp_pred_ops  */
+   1, /* fp_cmp_pred_ops  */
+   1, /* gather_scatter_pair_general_ops  */
+   1 /* gather_scatter_pair_pred_ops  */
+ };
+ 
+ static const aarch64_vec_issue_info generic_armv9_a_vec_issue_info =
+ {
+   &generic_armv9_a_scalar_issue_info,
+   &generic_armv9_a_advsimd_issue_info,
+   &generic_armv9_a_sve_issue_info
+ };
+ 
+ /* Neoverse N2 costs for vector insn classes.  */
+ static const struct cpu_vector_cost generic_armv9_a_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   2, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &generic_armv9_a_advsimd_vector_cost, /* advsimd  */
+   &generic_armv9_a_sve_vector_cost, /* sve  */
+   &generic_armv9_a_vec_issue_info /* issue_info  */
+ };
+ 
+ static const struct tune_params generic_armv9_a_tunings =
+ {
+   &cortexa76_extra_costs,
+   &generic_armv9_a_addrcost_table,
+   &generic_armv9_a_regmove_cost,
+   &generic_armv9_a_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_SCALABLE, /* sve_width  */
+   { 4, /* load_int.  */
+     1, /* store_int.  */
+     6, /* load_fp.  */
+     2, /* store_fp.  */
+     6, /* load_pred.  */
+     1 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "32:16",	/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
+    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
+    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS	   /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_GENERIC_ARMV9_A.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/neoverse512tvb.h gcc-14.1.0/gcc/config/aarch64/tuning_models/neoverse512tvb.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/neoverse512tvb.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/neoverse512tvb.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,164 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_NEOVERSE512TVB
+ #define GCC_AARCH64_H_NEOVERSE512TVB
+ 
+ #include "generic.h"
+ 
+ static const sve_vec_cost neoverse512tvb_sve_vector_cost =
+ {
+   {
+     2, /* int_stmt_cost  */
+     2, /* fp_stmt_cost  */
+     4, /* ld2_st2_permute_cost  */
+     5, /* ld3_st3_permute_cost  */
+     5, /* ld4_st4_permute_cost  */
+     3, /* permute_cost  */
+     /* Theoretically, a reduction involving 15 scalar ADDs could
+        complete in ~5 cycles and would have a cost of 15.  Assume that
+        [SU]ADDV completes in 11 cycles and so give it a cost of 15 + 6.  */
+     21, /* reduc_i8_cost  */
+     /* Likewise for 7 scalar ADDs (~3 cycles) vs. 9: 7 + 6.  */
+     13, /* reduc_i16_cost  */
+     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 8: 3 + 6.  */
+     9, /* reduc_i32_cost  */
+     /* Likewise for 1 scalar ADD (1 cycle) vs. 8: 1 + 7.  */
+     8, /* reduc_i64_cost  */
+     /* Theoretically, a reduction involving 7 scalar FADDs could
+        complete in ~6 cycles and would have a cost of 14.  Assume that
+        FADDV completes in 8 cycles and so give it a cost of 14 + 2.  */
+     16, /* reduc_f16_cost  */
+     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 6: 6 + 2.  */
+     8, /* reduc_f32_cost  */
+     /* Likewise for 1 scalar FADD (2 cycles) vs. 4: 2 + 2.  */
+     4, /* reduc_f64_cost  */
+     2, /* store_elt_extra_cost  */
+     /* This value is just inherited from the Cortex-A57 table.  */
+     8, /* vec_to_scalar_cost  */
+     /* This depends very much on what the scalar value is and
+        where it comes from.  E.g. some constants take two dependent
+        instructions or a load, while others might be moved from a GPR.
+        4 seems to be a reasonable compromise in practice.  */
+     4, /* scalar_to_vec_cost  */
+     4, /* align_load_cost  */
+     4, /* unalign_load_cost  */
+     /* Although stores generally have a latency of 2 and compete for the
+        vector pipes, in practice it's better not to model that.  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   3, /* clast_cost  */
+   10, /* fadda_f16_cost  */
+   6, /* fadda_f32_cost  */
+   4, /* fadda_f64_cost  */
+   /* A strided Advanced SIMD x64 load would take two parallel FP loads
+      (6 cycles) plus an insertion (2 cycles).  Assume a 64-bit SVE gather
+      is 1 cycle more.  The Advanced SIMD version is costed as 2 scalar loads
+      (cost 8) and a vec_construct (cost 2).  Add a full vector operation
+      (cost 2) to that, to avoid the difference being lost in rounding.
+ 
+      There is no easy comparison between a strided Advanced SIMD x32 load
+      and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector
+      operation more than a 64-bit gather.  */
+   14, /* gather_load_x32_cost  */
+   12, /* gather_load_x64_cost  */
+   3 /* scatter_store_elt_cost  */
+ };
+ 
+ static const aarch64_sve_vec_issue_info neoverse512tvb_sve_issue_info =
+ {
+   {
+     {
+       3, /* loads_per_cycle  */
+       2, /* stores_per_cycle  */
+       4, /* general_ops_per_cycle  */
+       0, /* fp_simd_load_general_ops  */
+       1 /* fp_simd_store_general_ops  */
+     },
+     2, /* ld2_st2_general_ops  */
+     2, /* ld3_st3_general_ops  */
+     3 /* ld4_st4_general_ops  */
+   },
+   2, /* pred_ops_per_cycle  */
+   2, /* while_pred_ops  */
+   2, /* int_cmp_pred_ops  */
+   1, /* fp_cmp_pred_ops  */
+   1, /* gather_scatter_pair_general_ops  */
+   1 /* gather_scatter_pair_pred_ops  */
+ };
+ 
+ static const aarch64_vec_issue_info neoverse512tvb_vec_issue_info =
+ {
+   &neoversev1_scalar_issue_info,
+   &neoversev1_advsimd_issue_info,
+   &neoverse512tvb_sve_issue_info
+ };
+ 
+ static const struct cpu_vector_cost neoverse512tvb_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   2, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &neoversev1_advsimd_vector_cost, /* advsimd  */
+   &neoverse512tvb_sve_vector_cost, /* sve  */
+   &neoverse512tvb_vec_issue_info /* issue_info  */
+ };
+ 
+ static const struct tune_params neoverse512tvb_tunings =
+ {
+   &cortexa76_extra_costs,
+   &neoversev1_addrcost_table,
+   &neoversev1_regmove_cost,
+   &neoverse512tvb_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_128 | SVE_256, /* sve_width  */
+   { 4, /* load_int.  */
+     2, /* store_int.  */
+     6, /* load_fp.  */
+     2, /* store_fp.  */
+     6, /* load_pred.  */
+     1 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "32:16",	/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   4,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
+    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
+    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS	   /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_NEOVERSE512TVB.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/neoversen1.h gcc-14.1.0/gcc/config/aarch64/tuning_models/neoversen1.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/neoversen1.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/neoversen1.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,60 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_NEOVERSEN1
+ #define GCC_AARCH64_H_NEOVERSEN1
+ 
+ #include "generic.h"
+ 
+ static const struct tune_params neoversen1_tunings =
+ {
+   &cortexa76_extra_costs,
+   &generic_addrcost_table,
+   &generic_regmove_cost,
+   &cortexa57_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     2, /* store_int.  */
+     5, /* load_fp.  */
+     2, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "32:16",	/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_NEOVERSEN1.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/neoversen2.h gcc-14.1.0/gcc/config/aarch64/tuning_models/neoversen2.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/neoversen2.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/neoversen2.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,245 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_NEOVERSEN2
+ #define GCC_AARCH64_H_NEOVERSEN2
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table neoversen2_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       1, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   2, /* post_modify_ld3_st3  */
+   2, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   0, /* register_sextend  */
+   0, /* register_zextend  */
+   0 /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost neoversen2_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Spilling to int<->fp instead of memory is recommended so set
+      realistic costs compared to memmov_cost.  */
+   3, /* GP2FP  */
+   2, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost neoversen2_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   2, /* fp_stmt_cost  */
+   2, /* ld2_st2_permute_cost */
+   2, /* ld3_st3_permute_cost  */
+   3, /* ld4_st4_permute_cost  */
+   3, /* permute_cost  */
+   4, /* reduc_i8_cost  */
+   4, /* reduc_i16_cost  */
+   2, /* reduc_i32_cost  */
+   2, /* reduc_i64_cost  */
+   6, /* reduc_f16_cost  */
+   4, /* reduc_f32_cost  */
+   2, /* reduc_f64_cost  */
+   2, /* store_elt_extra_cost  */
+   /* This value is just inherited from the Cortex-A57 table.  */
+   8, /* vec_to_scalar_cost  */
+   /* This depends very much on what the scalar value is and
+      where it comes from.  E.g. some constants take two dependent
+      instructions or a load, while others might be moved from a GPR.
+      4 seems to be a reasonable compromise in practice.  */
+   4, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   /* Although stores have a latency of 2 and compete for the
+      vector pipes, in practice it's better not to model that.  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ static const sve_vec_cost neoversen2_sve_vector_cost =
+ {
+   {
+     2, /* int_stmt_cost  */
+     2, /* fp_stmt_cost  */
+     3, /* ld2_st2_permute_cost  */
+     4, /* ld3_st3_permute_cost  */
+     4, /* ld4_st4_permute_cost  */
+     3, /* permute_cost  */
+     /* Theoretically, a reduction involving 15 scalar ADDs could
+        complete in ~5 cycles and would have a cost of 15.  [SU]ADDV
+        completes in 11 cycles, so give it a cost of 15 + 6.  */
+     21, /* reduc_i8_cost  */
+     /* Likewise for 7 scalar ADDs (~3 cycles) vs. 9: 7 + 6.  */
+     13, /* reduc_i16_cost  */
+     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 8: 3 + 6.  */
+     9, /* reduc_i32_cost  */
+     /* Likewise for 1 scalar ADD (~1 cycles) vs. 2: 1 + 1.  */
+     2, /* reduc_i64_cost  */
+     /* Theoretically, a reduction involving 7 scalar FADDs could
+        complete in ~8 cycles and would have a cost of 14.  FADDV
+        completes in 6 cycles, so give it a cost of 14 - 2.  */
+     12, /* reduc_f16_cost  */
+     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 4: 6 - 0.  */
+     6, /* reduc_f32_cost  */
+     /* Likewise for 1 scalar FADD (~2 cycles) vs. 2: 2 - 0.  */
+     2, /* reduc_f64_cost  */
+     2, /* store_elt_extra_cost  */
+     /* This value is just inherited from the Cortex-A57 table.  */
+     8, /* vec_to_scalar_cost  */
+     /* See the comment above the Advanced SIMD versions.  */
+     4, /* scalar_to_vec_cost  */
+     4, /* align_load_cost  */
+     4, /* unalign_load_cost  */
+     /* Although stores have a latency of 2 and compete for the
+        vector pipes, in practice it's better not to model that.  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   3, /* clast_cost  */
+   10, /* fadda_f16_cost  */
+   6, /* fadda_f32_cost  */
+   4, /* fadda_f64_cost  */
+   /* A strided Advanced SIMD x64 load would take two parallel FP loads
+      (8 cycles) plus an insertion (2 cycles).  Assume a 64-bit SVE gather
+      is 1 cycle more.  The Advanced SIMD version is costed as 2 scalar loads
+      (cost 8) and a vec_construct (cost 2).  Add a full vector operation
+      (cost 2) to that, to avoid the difference being lost in rounding.
+ 
+      There is no easy comparison between a strided Advanced SIMD x32 load
+      and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector
+      operation more than a 64-bit gather.  */
+   14, /* gather_load_x32_cost  */
+   12, /* gather_load_x64_cost  */
+   3 /* scatter_store_elt_cost  */
+ };
+ 
+ static const aarch64_scalar_vec_issue_info neoversen2_scalar_issue_info =
+ {
+   3, /* loads_stores_per_cycle  */
+   2, /* stores_per_cycle  */
+   4, /* general_ops_per_cycle  */
+   0, /* fp_simd_load_general_ops  */
+   1 /* fp_simd_store_general_ops  */
+ };
+ 
+ static const aarch64_advsimd_vec_issue_info neoversen2_advsimd_issue_info =
+ {
+   {
+     3, /* loads_stores_per_cycle  */
+     2, /* stores_per_cycle  */
+     2, /* general_ops_per_cycle  */
+     0, /* fp_simd_load_general_ops  */
+     1 /* fp_simd_store_general_ops  */
+   },
+   2, /* ld2_st2_general_ops  */
+   2, /* ld3_st3_general_ops  */
+   3 /* ld4_st4_general_ops  */
+ };
+ 
+ static const aarch64_sve_vec_issue_info neoversen2_sve_issue_info =
+ {
+   {
+     {
+       3, /* loads_per_cycle  */
+       2, /* stores_per_cycle  */
+       2, /* general_ops_per_cycle  */
+       0, /* fp_simd_load_general_ops  */
+       1 /* fp_simd_store_general_ops  */
+     },
+     2, /* ld2_st2_general_ops  */
+     3, /* ld3_st3_general_ops  */
+     3 /* ld4_st4_general_ops  */
+   },
+   2, /* pred_ops_per_cycle  */
+   2, /* while_pred_ops  */
+   2, /* int_cmp_pred_ops  */
+   1, /* fp_cmp_pred_ops  */
+   1, /* gather_scatter_pair_general_ops  */
+   1 /* gather_scatter_pair_pred_ops  */
+ };
+ 
+ static const aarch64_vec_issue_info neoversen2_vec_issue_info =
+ {
+   &neoversen2_scalar_issue_info,
+   &neoversen2_advsimd_issue_info,
+   &neoversen2_sve_issue_info
+ };
+ 
+ /* Neoverse N2 costs for vector insn classes.  */
+ static const struct cpu_vector_cost neoversen2_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   2, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &neoversen2_advsimd_vector_cost, /* advsimd  */
+   &neoversen2_sve_vector_cost, /* sve  */
+   &neoversen2_vec_issue_info /* issue_info  */
+ };
+ 
+ static const struct tune_params neoversen2_tunings =
+ {
+   &cortexa76_extra_costs,
+   &neoversen2_addrcost_table,
+   &neoversen2_regmove_cost,
+   &neoversen2_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_128, /* sve_width  */
+   { 4, /* load_int.  */
+     1, /* store_int.  */
+     6, /* load_fp.  */
+     2, /* store_fp.  */
+     6, /* load_pred.  */
+     1 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "32:16",	/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
+    | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
+    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
+    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS	   /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_NEOVERSEN2.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/neoversev1.h gcc-14.1.0/gcc/config/aarch64/tuning_models/neoversev1.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/neoversev1.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/neoversev1.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,237 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_NEOVERSEV1
+ #define GCC_AARCH64_H_NEOVERSEV1
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table neoversev1_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       1, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   3, /* post_modify_ld3_st3  */
+   3, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   0, /* register_sextend  */
+   0, /* register_zextend  */
+   0 /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost neoversev1_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Spilling to int<->fp instead of memory is recommended so set
+      realistic costs compared to memmov_cost.  */
+   3, /* GP2FP  */
+   2, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost neoversev1_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   2, /* fp_stmt_cost  */
+   4, /* ld2_st2_permute_cost */
+   4, /* ld3_st3_permute_cost  */
+   5, /* ld4_st4_permute_cost  */
+   3, /* permute_cost  */
+   4, /* reduc_i8_cost  */
+   4, /* reduc_i16_cost  */
+   2, /* reduc_i32_cost  */
+   2, /* reduc_i64_cost  */
+   6, /* reduc_f16_cost  */
+   3, /* reduc_f32_cost  */
+   2, /* reduc_f64_cost  */
+   2, /* store_elt_extra_cost  */
+   /* This value is just inherited from the Cortex-A57 table.  */
+   8, /* vec_to_scalar_cost  */
+   /* This depends very much on what the scalar value is and
+      where it comes from.  E.g. some constants take two dependent
+      instructions or a load, while others might be moved from a GPR.
+      4 seems to be a reasonable compromise in practice.  */
+   4, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   /* Although stores have a latency of 2 and compete for the
+      vector pipes, in practice it's better not to model that.  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ static const sve_vec_cost neoversev1_sve_vector_cost =
+ {
+   {
+     2, /* int_stmt_cost  */
+     2, /* fp_stmt_cost  */
+     4, /* ld2_st2_permute_cost  */
+     7, /* ld3_st3_permute_cost  */
+     8, /* ld4_st4_permute_cost  */
+     3, /* permute_cost  */
+     /* Theoretically, a reduction involving 31 scalar ADDs could
+        complete in ~9 cycles and would have a cost of 31.  [SU]ADDV
+        completes in 14 cycles, so give it a cost of 31 + 5.  */
+     36, /* reduc_i8_cost  */
+     /* Likewise for 15 scalar ADDs (~5 cycles) vs. 12: 15 + 7.  */
+     22, /* reduc_i16_cost  */
+     /* Likewise for 7 scalar ADDs (~3 cycles) vs. 10: 7 + 7.  */
+     14, /* reduc_i32_cost  */
+     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 10: 3 + 8.  */
+     11, /* reduc_i64_cost  */
+     /* Theoretically, a reduction involving 15 scalar FADDs could
+        complete in ~9 cycles and would have a cost of 30.  FADDV
+        completes in 13 cycles, so give it a cost of 30 + 4.  */
+     34, /* reduc_f16_cost  */
+     /* Likewise for 7 scalar FADDs (~6 cycles) vs. 11: 14 + 5.  */
+     19, /* reduc_f32_cost  */
+     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 9: 6 + 5.  */
+     11, /* reduc_f64_cost  */
+     2, /* store_elt_extra_cost  */
+     /* This value is just inherited from the Cortex-A57 table.  */
+     8, /* vec_to_scalar_cost  */
+     /* See the comment above the Advanced SIMD versions.  */
+     4, /* scalar_to_vec_cost  */
+     4, /* align_load_cost  */
+     4, /* unalign_load_cost  */
+     /* Although stores have a latency of 2 and compete for the
+        vector pipes, in practice it's better not to model that.  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   3, /* clast_cost  */
+   19, /* fadda_f16_cost  */
+   11, /* fadda_f32_cost  */
+   8, /* fadda_f64_cost  */
+   32, /* gather_load_x32_cost  */
+   16, /* gather_load_x64_cost  */
+   3 /* scatter_store_elt_cost  */
+ };
+ 
+ static const aarch64_scalar_vec_issue_info neoversev1_scalar_issue_info =
+ {
+   3, /* loads_stores_per_cycle  */
+   2, /* stores_per_cycle  */
+   4, /* general_ops_per_cycle  */
+   0, /* fp_simd_load_general_ops  */
+   1 /* fp_simd_store_general_ops  */
+ };
+ 
+ static const aarch64_advsimd_vec_issue_info neoversev1_advsimd_issue_info =
+ {
+   {
+     3, /* loads_stores_per_cycle  */
+     2, /* stores_per_cycle  */
+     4, /* general_ops_per_cycle  */
+     0, /* fp_simd_load_general_ops  */
+     1 /* fp_simd_store_general_ops  */
+   },
+   2, /* ld2_st2_general_ops  */
+   2, /* ld3_st3_general_ops  */
+   3 /* ld4_st4_general_ops  */
+ };
+ 
+ static const aarch64_sve_vec_issue_info neoversev1_sve_issue_info =
+ {
+   {
+     {
+       2, /* loads_per_cycle  */
+       2, /* stores_per_cycle  */
+       2, /* general_ops_per_cycle  */
+       0, /* fp_simd_load_general_ops  */
+       1 /* fp_simd_store_general_ops  */
+     },
+     2, /* ld2_st2_general_ops  */
+     2, /* ld3_st3_general_ops  */
+     3 /* ld4_st4_general_ops  */
+   },
+   1, /* pred_ops_per_cycle  */
+   2, /* while_pred_ops  */
+   2, /* int_cmp_pred_ops  */
+   1, /* fp_cmp_pred_ops  */
+   1, /* gather_scatter_pair_general_ops  */
+   1 /* gather_scatter_pair_pred_ops  */
+ };
+ 
+ static const aarch64_vec_issue_info neoversev1_vec_issue_info =
+ {
+   &neoversev1_scalar_issue_info,
+   &neoversev1_advsimd_issue_info,
+   &neoversev1_sve_issue_info
+ };
+ 
+ /* Neoverse V1 costs for vector insn classes.  */
+ static const struct cpu_vector_cost neoversev1_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   2, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &neoversev1_advsimd_vector_cost, /* advsimd  */
+   &neoversev1_sve_vector_cost, /* sve  */
+   &neoversev1_vec_issue_info /* issue_info  */
+ };
+ 
+ static const struct tune_params neoversev1_tunings =
+ {
+   &cortexa76_extra_costs,
+   &neoversev1_addrcost_table,
+   &neoversev1_regmove_cost,
+   &neoversev1_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_256, /* sve_width  */
+   { 4, /* load_int.  */
+     2, /* store_int.  */
+     6, /* load_fp.  */
+     2, /* store_fp.  */
+     6, /* load_pred.  */
+     1 /* store_pred.  */
+   }, /* memmov_cost.  */
+   3, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "32:16",	/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   4,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
+    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
+    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
+    | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ 
+ #endif /* GCC_AARCH64_H_NEOVERSEV1.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/neoversev2.h gcc-14.1.0/gcc/config/aarch64/tuning_models/neoversev2.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/neoversev2.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/neoversev2.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,245 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_NEOVERSEV2
+ #define GCC_AARCH64_H_NEOVERSEV2
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table neoversev2_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       1, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   2, /* post_modify_ld3_st3  */
+   2, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   0, /* register_sextend  */
+   0, /* register_zextend  */
+   0 /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost neoversev2_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Spilling to int<->fp instead of memory is recommended so set
+      realistic costs compared to memmov_cost.  */
+   3, /* GP2FP  */
+   2, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost neoversev2_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   2, /* fp_stmt_cost  */
+   2, /* ld2_st2_permute_cost */
+   2, /* ld3_st3_permute_cost  */
+   3, /* ld4_st4_permute_cost  */
+   3, /* permute_cost  */
+   4, /* reduc_i8_cost  */
+   4, /* reduc_i16_cost  */
+   2, /* reduc_i32_cost  */
+   2, /* reduc_i64_cost  */
+   6, /* reduc_f16_cost  */
+   3, /* reduc_f32_cost  */
+   2, /* reduc_f64_cost  */
+   2, /* store_elt_extra_cost  */
+   /* This value is just inherited from the Cortex-A57 table.  */
+   8, /* vec_to_scalar_cost  */
+   /* This depends very much on what the scalar value is and
+      where it comes from.  E.g. some constants take two dependent
+      instructions or a load, while others might be moved from a GPR.
+      4 seems to be a reasonable compromise in practice.  */
+   4, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   /* Although stores have a latency of 2 and compete for the
+      vector pipes, in practice it's better not to model that.  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ static const sve_vec_cost neoversev2_sve_vector_cost =
+ {
+   {
+     2, /* int_stmt_cost  */
+     2, /* fp_stmt_cost  */
+     3, /* ld2_st2_permute_cost  */
+     3, /* ld3_st3_permute_cost  */
+     4, /* ld4_st4_permute_cost  */
+     3, /* permute_cost  */
+     /* Theoretically, a reduction involving 15 scalar ADDs could
+        complete in ~3 cycles and would have a cost of 15.  [SU]ADDV
+        completes in 11 cycles, so give it a cost of 15 + 8.  */
+     21, /* reduc_i8_cost  */
+     /* Likewise for 7 scalar ADDs (~2 cycles) vs. 9: 7 + 7.  */
+     14, /* reduc_i16_cost  */
+     /* Likewise for 3 scalar ADDs (~2 cycles) vs. 8: 3 + 4.  */
+     7, /* reduc_i32_cost  */
+     /* Likewise for 1 scalar ADD (~1 cycles) vs. 2: 1 + 1.  */
+     2, /* reduc_i64_cost  */
+     /* Theoretically, a reduction involving 7 scalar FADDs could
+        complete in ~6 cycles and would have a cost of 14.  FADDV
+        completes in 8 cycles, so give it a cost of 14 + 2.  */
+     16, /* reduc_f16_cost  */
+     /* Likewise for 3 scalar FADDs (~4 cycles) vs. 6: 6 + 2.  */
+     8, /* reduc_f32_cost  */
+     /* Likewise for 1 scalar FADD (~2 cycles) vs. 4: 2 + 2.  */
+     4, /* reduc_f64_cost  */
+     2, /* store_elt_extra_cost  */
+     /* This value is just inherited from the Cortex-A57 table.  */
+     8, /* vec_to_scalar_cost  */
+     /* See the comment above the Advanced SIMD versions.  */
+     4, /* scalar_to_vec_cost  */
+     4, /* align_load_cost  */
+     4, /* unalign_load_cost  */
+     /* Although stores have a latency of 2 and compete for the
+        vector pipes, in practice it's better not to model that.  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   3, /* clast_cost  */
+   10, /* fadda_f16_cost  */
+   6, /* fadda_f32_cost  */
+   4, /* fadda_f64_cost  */
+   /* A strided Advanced SIMD x64 load would take two parallel FP loads
+      (8 cycles) plus an insertion (2 cycles).  Assume a 64-bit SVE gather
+      is 1 cycle more.  The Advanced SIMD version is costed as 2 scalar loads
+      (cost 8) and a vec_construct (cost 2).  Add a full vector operation
+      (cost 2) to that, to avoid the difference being lost in rounding.
+ 
+      There is no easy comparison between a strided Advanced SIMD x32 load
+      and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector
+      operation more than a 64-bit gather.  */
+   14, /* gather_load_x32_cost  */
+   12, /* gather_load_x64_cost  */
+   3 /* scatter_store_elt_cost  */
+ };
+ 
+ static const aarch64_scalar_vec_issue_info neoversev2_scalar_issue_info =
+ {
+   3, /* loads_stores_per_cycle  */
+   2, /* stores_per_cycle  */
+   6, /* general_ops_per_cycle  */
+   0, /* fp_simd_load_general_ops  */
+   1 /* fp_simd_store_general_ops  */
+ };
+ 
+ static const aarch64_advsimd_vec_issue_info neoversev2_advsimd_issue_info =
+ {
+   {
+     3, /* loads_stores_per_cycle  */
+     2, /* stores_per_cycle  */
+     4, /* general_ops_per_cycle  */
+     0, /* fp_simd_load_general_ops  */
+     1 /* fp_simd_store_general_ops  */
+   },
+   2, /* ld2_st2_general_ops  */
+   2, /* ld3_st3_general_ops  */
+   3 /* ld4_st4_general_ops  */
+ };
+ 
+ static const aarch64_sve_vec_issue_info neoversev2_sve_issue_info =
+ {
+   {
+     {
+       3, /* loads_per_cycle  */
+       2, /* stores_per_cycle  */
+       4, /* general_ops_per_cycle  */
+       0, /* fp_simd_load_general_ops  */
+       1 /* fp_simd_store_general_ops  */
+     },
+     2, /* ld2_st2_general_ops  */
+     3, /* ld3_st3_general_ops  */
+     3 /* ld4_st4_general_ops  */
+   },
+   2, /* pred_ops_per_cycle  */
+   2, /* while_pred_ops  */
+   2, /* int_cmp_pred_ops  */
+   1, /* fp_cmp_pred_ops  */
+   1, /* gather_scatter_pair_general_ops  */
+   1 /* gather_scatter_pair_pred_ops  */
+ };
+ 
+ static const aarch64_vec_issue_info neoversev2_vec_issue_info =
+ {
+   &neoversev2_scalar_issue_info,
+   &neoversev2_advsimd_issue_info,
+   &neoversev2_sve_issue_info
+ };
+ 
+ /* Demeter costs for vector insn classes.  */
+ static const struct cpu_vector_cost neoversev2_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   2, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &neoversev2_advsimd_vector_cost, /* advsimd  */
+   &neoversev2_sve_vector_cost, /* sve  */
+   &neoversev2_vec_issue_info /* issue_info  */
+ };
+ 
+ static const struct tune_params neoversev2_tunings =
+ {
+   &cortexa76_extra_costs,
+   &neoversev2_addrcost_table,
+   &neoversev2_regmove_cost,
+   &neoversev2_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_128, /* sve_width  */
+   { 4, /* load_int.  */
+     2, /* store_int.  */
+     6, /* load_fp.  */
+     1, /* store_fp.  */
+     6, /* load_pred.  */
+     2 /* store_pred.  */
+   }, /* memmov_cost.  */
+   5, /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops  */
+   "32:16",	/* function_align.  */
+   "4",		/* jump_align.  */
+   "32:16",	/* loop_align.  */
+   3,	/* int_reassoc_width.  */
+   6,	/* fp_reassoc_width.  */
+   4,	/* fma_reassoc_width.  */
+   3,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
+    | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
+    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
+    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS	   /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_NEOVERSEV2.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/qdf24xx.h gcc-14.1.0/gcc/config/aarch64/tuning_models/qdf24xx.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/qdf24xx.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/qdf24xx.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,137 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_QDF24XX
+ #define GCC_AARCH64_H_QDF24XX
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table qdf24xx_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       1, /* si  */
+       1, /* di  */
+       2, /* ti  */
+     },
+   1, /* pre_modify  */
+   1, /* post_modify  */
+   1, /* post_modify_ld3_st3  */
+   1, /* post_modify_ld4_st4  */
+   3, /* register_offset  */
+   3, /* register_sextend  */
+   3, /* register_zextend  */
+   2, /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost qdf24xx_regmove_cost =
+ {
+   2, /* GP2GP  */
+   /* Avoid the use of int<->fp moves for spilling.  */
+   6, /* GP2FP  */
+   6, /* FP2GP  */
+   4 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost qdf24xx_advsimd_vector_cost =
+ {
+   1, /* int_stmt_cost  */
+   3, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   2, /* permute_cost  */
+   1, /* reduc_i8_cost  */
+   1, /* reduc_i16_cost  */
+   1, /* reduc_i32_cost  */
+   1, /* reduc_i64_cost  */
+   1, /* reduc_f16_cost  */
+   1, /* reduc_f32_cost  */
+   1, /* reduc_f64_cost  */
+   1, /* store_elt_extra_cost  */
+   1, /* vec_to_scalar_cost  */
+   1, /* scalar_to_vec_cost  */
+   1, /* align_load_cost  */
+   1, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ /* QDF24XX costs for vector insn classes.  */
+ static const struct cpu_vector_cost qdf24xx_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   1, /* scalar_fp_stmt_cost  */
+   1, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   3, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &qdf24xx_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ static const cpu_prefetch_tune qdf24xx_prefetch_tune =
+ {
+   4,			/* num_slots  */
+   32,			/* l1_cache_size  */
+   64,			/* l1_cache_line_size  */
+   512,			/* l2_cache_size  */
+   false,		/* prefetch_dynamic_strides */
+   2048,			/* minimum_stride */
+   3			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params qdf24xx_tunings =
+ {
+   &qdf24xx_extra_costs,
+   &qdf24xx_addrcost_table,
+   &qdf24xx_regmove_cost,
+   &qdf24xx_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4, /* issue_rate  */
+   (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
+    | AARCH64_FUSE_MOVK_MOVK), /* fuseable_ops  */
+   "16",	/* function_align.  */
+   "8",	/* jump_align.  */
+   "16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   AARCH64_EXTRA_TUNE_RENAME_LOAD_REGS, /* tune_flags.  */
+   &qdf24xx_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_QDF24XX.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/saphira.h gcc-14.1.0/gcc/config/aarch64/tuning_models/saphira.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/saphira.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/saphira.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,63 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_SAPHIRA
+ #define GCC_AARCH64_H_SAPHIRA
+ 
+ #include "generic.h"
+ 
+ /* Tuning structure for the Qualcomm Saphira core.  Default to falkor values
+    for now.  */
+ static const struct tune_params saphira_tunings =
+ {
+   &generic_extra_costs,
+   &generic_addrcost_table,
+   &generic_regmove_cost,
+   &generic_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4, /* issue_rate  */
+   (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
+    | AARCH64_FUSE_MOVK_MOVK), /* fuseable_ops  */
+   "16",	/* function_align.  */
+   "8",	/* jump_align.  */
+   "16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),		/* tune_flags.  */
+   &generic_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_SAPHIRA.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/thunderx.h gcc-14.1.0/gcc/config/aarch64/tuning_models/thunderx.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/thunderx.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/thunderx.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,117 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_THUNDERX
+ #define GCC_AARCH64_H_THUNDERX
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_regmove_cost thunderx_regmove_cost =
+ {
+   2, /* GP2GP  */
+   2, /* GP2FP  */
+   6, /* FP2GP  */
+   4 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost thunderx_advsimd_vector_cost =
+ {
+   4, /* int_stmt_cost  */
+   1, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   4, /* permute_cost  */
+   2, /* reduc_i8_cost  */
+   2, /* reduc_i16_cost  */
+   2, /* reduc_i32_cost  */
+   2, /* reduc_i64_cost  */
+   2, /* reduc_f16_cost  */
+   2, /* reduc_f32_cost  */
+   2, /* reduc_f64_cost  */
+   2, /* store_elt_extra_cost  */
+   2, /* vec_to_scalar_cost  */
+   2, /* scalar_to_vec_cost  */
+   3, /* align_load_cost  */
+   5, /* unalign_load_cost  */
+   5, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ /* ThunderX costs for vector insn classes.  */
+ static const struct cpu_vector_cost thunderx_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   1, /* scalar_fp_stmt_cost  */
+   3, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   3, /* cond_taken_branch_cost  */
+   3, /* cond_not_taken_branch_cost  */
+   &thunderx_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ static const cpu_prefetch_tune thunderx_prefetch_tune =
+ {
+   8,			/* num_slots  */
+   32,			/* l1_cache_size  */
+   128,			/* l1_cache_line_size  */
+   -1,			/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params thunderx_tunings =
+ {
+   &thunderx_extra_costs,
+   &generic_addrcost_table,
+   &thunderx_regmove_cost,
+   &thunderx_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 6, /* load_int.  */
+     6, /* store_int.  */
+     6, /* load_fp.  */
+     6, /* store_fp.  */
+     6, /* load_pred.  */
+     6 /* store_pred.  */
+   }, /* memmov_cost.  */
+   2, /* issue_rate  */
+   AARCH64_FUSE_ALU_BRANCH, /* fusible_ops  */
+   "8",	/* function_align.  */
+   "8",	/* jump_align.  */
+   "8",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND),	/* tune_flags.  */
+   &thunderx_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALIGNED,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALIGNED    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_THUNDERX.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/thunderx2t99.h gcc-14.1.0/gcc/config/aarch64/tuning_models/thunderx2t99.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/thunderx2t99.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/thunderx2t99.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,137 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_THUNDERX2T99
+ #define GCC_AARCH64_H_THUNDERX2T99
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table thunderx2t99_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       1, /* si  */
+       1, /* di  */
+       2, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   0, /* post_modify_ld3_st3  */
+   0, /* post_modify_ld4_st4  */
+   2, /* register_offset  */
+   3, /* register_sextend  */
+   3, /* register_zextend  */
+   0, /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost thunderx2t99_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of int<->fp moves for spilling.  */
+   5, /* GP2FP  */
+   6, /* FP2GP  */
+   3, /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost thunderx2t99_advsimd_vector_cost =
+ {
+   4, /* int_stmt_cost  */
+   5, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   10, /* permute_cost  */
+   6, /* reduc_i8_cost  */
+   6, /* reduc_i16_cost  */
+   6, /* reduc_i32_cost  */
+   6, /* reduc_i64_cost  */
+   6, /* reduc_f16_cost  */
+   6, /* reduc_f32_cost  */
+   6, /* reduc_f64_cost  */
+   6, /* store_elt_extra_cost  */
+   6, /* vec_to_scalar_cost  */
+   5, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ /* Costs for vector insn classes for Vulcan.  */
+ static const struct cpu_vector_cost thunderx2t99_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   6, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   2, /* cond_taken_branch_cost  */
+   1,  /* cond_not_taken_branch_cost  */
+   &thunderx2t99_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ static const cpu_prefetch_tune thunderx2t99_prefetch_tune =
+ {
+   8,			/* num_slots  */
+   32,			/* l1_cache_size  */
+   64,			/* l1_cache_line_size  */
+   256,			/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params thunderx2t99_tunings =
+ {
+   &thunderx2t99_extra_costs,
+   &thunderx2t99_addrcost_table,
+   &thunderx2t99_regmove_cost,
+   &thunderx2t99_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4, /* issue_rate.  */
+   (AARCH64_FUSE_ALU_BRANCH | AARCH64_FUSE_AES_AESMC
+    | AARCH64_FUSE_ALU_CBZ), /* fusible_ops  */
+   "16",	/* function_align.  */
+   "8",	/* jump_align.  */
+   "16",	/* loop_align.  */
+   3,	/* int_reassoc_width.  */
+   2,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+   &thunderx2t99_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_THUNDERX2T99.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/thunderx3t110.h gcc-14.1.0/gcc/config/aarch64/tuning_models/thunderx3t110.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/thunderx3t110.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/thunderx3t110.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,136 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_THUNDERX3T110
+ #define GCC_AARCH64_H_THUNDERX3T110
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table thunderx3t110_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       1, /* si  */
+       1, /* di  */
+       2, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   0, /* post_modify_ld3_st3  */
+   0, /* post_modify_ld4_st4  */
+   2, /* register_offset  */
+   3, /* register_sextend  */
+   3, /* register_zextend  */
+   0, /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost thunderx3t110_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of int<->fp moves for spilling.  */
+   4, /* GP2FP  */
+   5, /* FP2GP  */
+   4  /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost thunderx3t110_advsimd_vector_cost =
+ {
+   5, /* int_stmt_cost  */
+   5, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   10, /* permute_cost  */
+   5, /* reduc_i8_cost  */
+   5, /* reduc_i16_cost  */
+   5, /* reduc_i32_cost  */
+   5, /* reduc_i64_cost  */
+   5, /* reduc_f16_cost  */
+   5, /* reduc_f32_cost  */
+   5, /* reduc_f64_cost  */
+   5, /* store_elt_extra_cost  */
+   5, /* vec_to_scalar_cost  */
+   5, /* scalar_to_vec_cost  */
+   4, /* align_load_cost  */
+   4, /* unalign_load_cost  */
+   4, /* unalign_store_cost  */
+   4  /* store_cost  */
+ };
+ 
+ static const struct cpu_vector_cost thunderx3t110_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   5, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   2, /* cond_taken_branch_cost  */
+   1,  /* cond_not_taken_branch_cost  */
+   &thunderx3t110_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ static const cpu_prefetch_tune thunderx3t110_prefetch_tune =
+ {
+   8,			/* num_slots  */
+   32,			/* l1_cache_size  */
+   64,			/* l1_cache_line_size  */
+   256,			/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params thunderx3t110_tunings =
+ {
+   &thunderx3t110_extra_costs,
+   &thunderx3t110_addrcost_table,
+   &thunderx3t110_regmove_cost,
+   &thunderx3t110_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   6, /* issue_rate.  */
+   (AARCH64_FUSE_ALU_BRANCH | AARCH64_FUSE_AES_AESMC
+    | AARCH64_FUSE_ALU_CBZ), /* fusible_ops  */
+   "16",	/* function_align.  */
+   "8",	/* jump_align.  */
+   "16",	/* loop_align.  */
+   3,	/* int_reassoc_width.  */
+   2,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   2,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+   &thunderx3t110_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_THUNDERX3T110.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/thunderxt88.h gcc-14.1.0/gcc/config/aarch64/tuning_models/thunderxt88.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/thunderxt88.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/thunderxt88.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,72 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_THUNDERXT88
+ #define GCC_AARCH64_H_THUNDERXT88
+ 
+ #include "generic.h"
+ #include "thunderx.h"
+ 
+ static const cpu_prefetch_tune thunderxt88_prefetch_tune =
+ {
+   8,			/* num_slots  */
+   32,			/* l1_cache_size  */
+   128,			/* l1_cache_line_size  */
+   16*1024,		/* l2_cache_size  */
+   true,			/* prefetch_dynamic_strides */
+   -1,			/* minimum_stride */
+   3			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params thunderxt88_tunings =
+ {
+   &thunderx_extra_costs,
+   &generic_addrcost_table,
+   &thunderx_regmove_cost,
+   &thunderx_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 6, /* load_int.  */
+     6, /* store_int.  */
+     6, /* load_fp.  */
+     6, /* store_fp.  */
+     6, /* load_pred.  */
+     6 /* store_pred.  */
+   }, /* memmov_cost.  */
+   2, /* issue_rate  */
+   AARCH64_FUSE_ALU_BRANCH, /* fusible_ops  */
+   "8",	/* function_align.  */
+   "8",	/* jump_align.  */
+   "8",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   0,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),	/* tune_flags.  */
+   &thunderxt88_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALIGNED,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALIGNED    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_THUNDERXT88.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/tsv110.h gcc-14.1.0/gcc/config/aarch64/tuning_models/tsv110.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/tsv110.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/tsv110.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,137 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_TSV110
+ #define GCC_AARCH64_H_TSV110
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table tsv110_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       1, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   0, /* post_modify_ld3_st3  */
+   0, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   1, /* register_sextend  */
+   1, /* register_zextend  */
+   0, /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost tsv110_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of slow int<->fp moves for spilling by setting
+      their cost higher than memmov_cost.  */
+   2, /* GP2FP  */
+   3, /* FP2GP  */
+   2  /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost tsv110_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   2, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   2, /* permute_cost  */
+   3, /* reduc_i8_cost  */
+   3, /* reduc_i16_cost  */
+   3, /* reduc_i32_cost  */
+   3, /* reduc_i64_cost  */
+   3, /* reduc_f16_cost  */
+   3, /* reduc_f32_cost  */
+   3, /* reduc_f64_cost  */
+   3, /* store_elt_extra_cost  */
+   3, /* vec_to_scalar_cost  */
+   2, /* scalar_to_vec_cost  */
+   5, /* align_load_cost  */
+   5, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ static const struct cpu_vector_cost tsv110_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   1, /* scalar_fp_stmt_cost  */
+   5, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &tsv110_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ static const cpu_prefetch_tune tsv110_prefetch_tune =
+ {
+   0,                    /* num_slots  */
+   64,                   /* l1_cache_size  */
+   64,                   /* l1_cache_line_size  */
+   512,                  /* l2_cache_size  */
+   true,                 /* prefetch_dynamic_strides */
+   -1,                   /* minimum_stride */
+   -1                    /* default_opt_level  */
+ };
+ 
+ static const struct tune_params tsv110_tunings =
+ {
+   &tsv110_extra_costs,
+   &tsv110_addrcost_table,
+   &tsv110_regmove_cost,
+   &tsv110_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 4, /* load_int.  */
+     4, /* store_int.  */
+     4, /* load_fp.  */
+     4, /* store_fp.  */
+     4, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4,    /* issue_rate  */
+   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_ALU_BRANCH
+    | AARCH64_FUSE_ALU_CBZ), /* fusible_ops  */
+   "16", /* function_align.  */
+   "4",  /* jump_align.  */
+   "8",  /* loop_align.  */
+   2,    /* int_reassoc_width.  */
+   4,    /* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,    /* vec_reassoc_width.  */
+   2,    /* min_div_recip_mul_sf.  */
+   2,    /* min_div_recip_mul_df.  */
+   0,    /* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,     /* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NONE),     /* tune_flags.  */
+   &tsv110_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_TSV110.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/tuning_models/xgene1.h gcc-14.1.0/gcc/config/aarch64/tuning_models/xgene1.h
*** gcc-13.2.0/gcc/config/aarch64/tuning_models/xgene1.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/aarch64/tuning_models/xgene1.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,145 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_XGENE1
+ #define GCC_AARCH64_H_XGENE1
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table xgene1_addrcost_table =
+ {
+     {
+       1, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       1, /* ti  */
+     },
+   1, /* pre_modify  */
+   1, /* post_modify  */
+   1, /* post_modify_ld3_st3  */
+   1, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   1, /* register_sextend  */
+   1, /* register_zextend  */
+   0, /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost xgene1_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Avoid the use of slow int<->fp moves for spilling by setting
+      their cost higher than memmov_cost.  */
+   8, /* GP2FP  */
+   8, /* FP2GP  */
+   2 /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost xgene1_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   2, /* fp_stmt_cost  */
+   0, /* ld2_st2_permute_cost  */
+   0, /* ld3_st3_permute_cost  */
+   0, /* ld4_st4_permute_cost  */
+   2, /* permute_cost  */
+   4, /* reduc_i8_cost  */
+   4, /* reduc_i16_cost  */
+   4, /* reduc_i32_cost  */
+   4, /* reduc_i64_cost  */
+   4, /* reduc_f16_cost  */
+   4, /* reduc_f32_cost  */
+   4, /* reduc_f64_cost  */
+   4, /* store_elt_extra_cost  */
+   4, /* vec_to_scalar_cost  */
+   4, /* scalar_to_vec_cost  */
+   10, /* align_load_cost  */
+   10, /* unalign_load_cost  */
+   2, /* unalign_store_cost  */
+   2  /* store_cost  */
+ };
+ 
+ /* Generic costs for vector insn classes.  */
+ static const struct cpu_vector_cost xgene1_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   1, /* scalar_fp_stmt_cost  */
+   5, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   2, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &xgene1_advsimd_vector_cost, /* advsimd  */
+   nullptr, /* sve  */
+   nullptr /* issue_info  */
+ };
+ 
+ /* Approximation modes for X-Gene 1.  */
+ static const cpu_approx_modes xgene1_approx_modes =
+ {
+   AARCH64_APPROX_NONE,	/* division  */
+   AARCH64_APPROX_NONE,	/* sqrt  */
+   AARCH64_APPROX_ALL	/* recip_sqrt  */
+ };
+ 
+ static const cpu_prefetch_tune xgene1_prefetch_tune =
+ {
+   8,			/* num_slots  */
+   32,			/* l1_cache_size  */
+   64,			/* l1_cache_line_size  */
+   256,			/* l2_cache_size  */
+   true,                 /* prefetch_dynamic_strides */
+   -1,                   /* minimum_stride */
+   -1			/* default_opt_level  */
+ };
+ 
+ static const struct tune_params xgene1_tunings =
+ {
+   &xgene1_extra_costs,
+   &xgene1_addrcost_table,
+   &xgene1_regmove_cost,
+   &xgene1_vector_cost,
+   &generic_branch_cost,
+   &xgene1_approx_modes,
+   SVE_NOT_IMPLEMENTED, /* sve_width  */
+   { 6, /* load_int.  */
+     6, /* store_int.  */
+     6, /* load_fp.  */
+     6, /* store_fp.  */
+     6, /* load_pred.  */
+     6 /* store_pred.  */
+   }, /* memmov_cost.  */
+   4, /* issue_rate  */
+   AARCH64_FUSE_NOTHING, /* fusible_ops  */
+   "16",	/* function_align.  */
+   "16",	/* jump_align.  */
+   "16",	/* loop_align.  */
+   2,	/* int_reassoc_width.  */
+   4,	/* fp_reassoc_width.  */
+   1,	/* fma_reassoc_width.  */
+   1,	/* vec_reassoc_width.  */
+   2,	/* min_div_recip_mul_sf.  */
+   2,	/* min_div_recip_mul_df.  */
+   17,	/* max_case_values.  */
+   tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS),	/* tune_flags.  */
+   &xgene1_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_XGENE1.  */
diff -Nrcpad gcc-13.2.0/gcc/config/aarch64/x-aarch64 gcc-14.1.0/gcc/config/aarch64/x-aarch64
*** gcc-13.2.0/gcc/config/aarch64/x-aarch64	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/aarch64/x-aarch64	Tue May  7 06:51:37 2024
***************
*** 1,3 ****
  driver-aarch64.o: $(srcdir)/config/aarch64/driver-aarch64.cc \
!   $(CONFIG_H) $(SYSTEM_H)
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
--- 1,5 ----
  driver-aarch64.o: $(srcdir)/config/aarch64/driver-aarch64.cc \
!   $(CONFIG_H) $(SYSTEM_H) $(TM_H) $(CORETYPES_H) \
!   $(srcdir)/config/aarch64/aarch64-protos.h \
!   $(srcdir)/config/aarch64/aarch64-feature-deps.h
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/alpha-modes.def gcc-14.1.0/gcc/config/alpha/alpha-modes.def
*** gcc-13.2.0/gcc/config/alpha/alpha-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/alpha-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Alpha extra machine modes. 
!    Copyright (C) 2003-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Alpha extra machine modes. 
!    Copyright (C) 2003-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/alpha-passes.def gcc-14.1.0/gcc/config/alpha/alpha-passes.def
*** gcc-13.2.0/gcc/config/alpha/alpha-passes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/alpha-passes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Description of target passes for DEC Alpha
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Description of target passes for DEC Alpha
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/alpha-protos.h gcc-14.1.0/gcc/config/alpha/alpha-protos.h
*** gcc-13.2.0/gcc/config/alpha/alpha-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/alpha-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Prototypes for alpha.cc functions used in the md file & elsewhere.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Prototypes for alpha.cc functions used in the md file & elsewhere.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/alpha.cc gcc-14.1.0/gcc/config/alpha/alpha.cc
*** gcc-13.2.0/gcc/config/alpha/alpha.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/alpha.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines used for code generation on the DEC Alpha.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
     Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
  
  This file is part of GCC.
--- 1,5 ----
  /* Subroutines used for code generation on the DEC Alpha.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
     Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
  
  This file is part of GCC.
*************** alpha_in_small_data_p (const_tree exp)
*** 784,793 ****
      return false;
  
    /* COMMON symbols are never small data.  */
!   if (TREE_CODE (exp) == VAR_DECL && DECL_COMMON (exp))
      return false;
  
!   if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
      {
        const char *section = DECL_SECTION_NAME (exp);
        if (strcmp (section, ".sdata") == 0
--- 784,793 ----
      return false;
  
    /* COMMON symbols are never small data.  */
!   if (VAR_P (exp) && DECL_COMMON (exp))
      return false;
  
!   if (VAR_P (exp) && DECL_SECTION_NAME (exp))
      {
        const char *section = DECL_SECTION_NAME (exp);
        if (strcmp (section, ".sdata") == 0
*************** alpha_linkage_symbol_p (const char *symn
*** 844,850 ****
     low-order three bits; this is an "unaligned" access.  */
  
  static bool
! alpha_legitimate_address_p (machine_mode mode, rtx x, bool strict)
  {
    /* If this is an ldq_u type address, discard the outer AND.  */
    if (mode == DImode
--- 844,851 ----
     low-order three bits; this is an "unaligned" access.  */
  
  static bool
! alpha_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 			    code_helper = ERROR_MARK)
  {
    /* If this is an ldq_u type address, discard the outer AND.  */
    if (mode == DImode
*************** alpha_setup_incoming_varargs (cumulative
*** 6089,6095 ****
  {
    CUMULATIVE_ARGS cum = *get_cumulative_args (pcum);
  
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl)))
      /* Skip the current argument.  */
      targetm.calls.function_arg_advance (pack_cumulative_args (&cum), arg);
  
--- 6090,6097 ----
  {
    CUMULATIVE_ARGS cum = *get_cumulative_args (pcum);
  
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl))
!       || arg.type != NULL_TREE)
      /* Skip the current argument.  */
      targetm.calls.function_arg_advance (pack_cumulative_args (&cum), arg);
  
*************** alpha_gimplify_va_arg_1 (tree type, tree
*** 6258,6264 ****
  
        return build2 (COMPLEX_EXPR, type, real_temp, imag_part);
      }
!   else if (TREE_CODE (type) == REAL_TYPE)
      {
        tree fpaddend, cond, fourtyeight;
  
--- 6260,6266 ----
  
        return build2 (COMPLEX_EXPR, type, real_temp, imag_part);
      }
!   else if (SCALAR_FLOAT_TYPE_P (type))
      {
        tree fpaddend, cond, fourtyeight;
  
*************** common_object_handler (tree *node, tree
*** 7481,7494 ****
    return NULL_TREE;
  }
  
! static const struct attribute_spec vms_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
    { COMMON_OBJECT,   0, 1, true,  false, false, false, common_object_handler,
!     NULL },
!   { NULL,            0, 0, false, false, false, false, NULL, NULL }
! };
  
  void
  vms_output_aligned_decl_common(FILE *file, tree decl, const char *name,
--- 7483,7495 ----
    return NULL_TREE;
  }
  
! TARGET_GNU_ATTRIBUTES (vms_attribute_table,
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
    { COMMON_OBJECT,   0, 1, true,  false, false, false, common_object_handler,
!     NULL }
! });
  
  void
  vms_output_aligned_decl_common(FILE *file, tree decl, const char *name,
*************** int num_source_filenames = 0;
*** 7986,7993 ****
  /* Output the textual info surrounding the prologue.  */
  
  void
! alpha_start_function (FILE *file, const char *fnname,
! 		      tree decl ATTRIBUTE_UNUSED)
  {
    unsigned long imask, fmask;
    /* Complete stack size needed.  */
--- 7987,7993 ----
  /* Output the textual info surrounding the prologue.  */
  
  void
! alpha_start_function (FILE *file, const char *fnname, tree decl)
  {
    unsigned long imask, fmask;
    /* Complete stack size needed.  */
*************** alpha_start_function (FILE *file, const
*** 8052,8058 ****
    if (TARGET_ABI_OPEN_VMS)
      strcat (entry_label, "..en");
  
!   ASM_OUTPUT_LABEL (file, entry_label);
    inside_function = TRUE;
  
    if (TARGET_ABI_OPEN_VMS)
--- 8052,8058 ----
    if (TARGET_ABI_OPEN_VMS)
      strcat (entry_label, "..en");
  
!   ASM_OUTPUT_FUNCTION_LABEL (file, entry_label, decl);
    inside_function = TRUE;
  
    if (TARGET_ABI_OPEN_VMS)
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/alpha.h gcc-14.1.0/gcc/config/alpha/alpha.h
*** gcc-13.2.0/gcc/config/alpha/alpha.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/alpha.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, for DEC Alpha.
!    Copyright (C) 1992-2023 Free Software Foundation, Inc.
     Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, for DEC Alpha.
!    Copyright (C) 1992-2024 Free Software Foundation, Inc.
     Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/alpha.md gcc-14.1.0/gcc/config/alpha/alpha.md
*** gcc-13.2.0/gcc/config/alpha/alpha.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/alpha.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for DEC Alpha for GNU C compiler
! ;; Copyright (C) 1992-2023 Free Software Foundation, Inc.
  ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for DEC Alpha for GNU C compiler
! ;; Copyright (C) 1992-2024 Free Software Foundation, Inc.
  ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
  ;;
  ;; This file is part of GCC.
***************
*** 683,723 ****
    [(set_attr "type" "imul")
     (set_attr "opsize" "<mode>")])
  
! (define_expand "umuldi3_highpart"
!   [(set (match_operand:DI 0 "register_operand")
! 	(truncate:DI
! 	 (lshiftrt:TI
! 	  (mult:TI (zero_extend:TI
! 		     (match_operand:DI 1 "register_operand"))
! 		   (match_operand:DI 2 "reg_or_8bit_operand"))
! 	  (const_int 64))))]
!   ""
! {
!   if (REG_P (operands[2]))
!     operands[2] = gen_rtx_ZERO_EXTEND (TImode, operands[2]);
! })
! 
! (define_insn "*umuldi3_highpart_reg"
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(truncate:DI
! 	 (lshiftrt:TI
! 	  (mult:TI (zero_extend:TI
! 		     (match_operand:DI 1 "register_operand" "r"))
! 		   (zero_extend:TI
! 		     (match_operand:DI 2 "register_operand" "r")))
! 	  (const_int 64))))]
!   ""
!   "umulh %1,%2,%0"
!   [(set_attr "type" "imul")
!    (set_attr "opsize" "udi")])
! 
! (define_insn "*umuldi3_highpart_const"
    [(set (match_operand:DI 0 "register_operand" "=r")
! 	(truncate:DI
! 	 (lshiftrt:TI
! 	  (mult:TI (zero_extend:TI (match_operand:DI 1 "register_operand" "r"))
! 		   (match_operand:TI 2 "cint8_operand" "I"))
! 	  (const_int 64))))]
    ""
    "umulh %1,%2,%0"
    [(set_attr "type" "imul")
--- 683,692 ----
    [(set_attr "type" "imul")
     (set_attr "opsize" "<mode>")])
  
! (define_insn "umuldi3_highpart"
    [(set (match_operand:DI 0 "register_operand" "=r")
! 	(umul_highpart:DI (match_operand:DI 1 "reg_or_0_operand" "%rJ")
! 			  (match_operand:DI 2 "reg_or_8bit_operand" "rI")))]
    ""
    "umulh %1,%2,%0"
    [(set_attr "type" "imul")
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/alpha.opt gcc-14.1.0/gcc/config/alpha/alpha.opt
*** gcc-13.2.0/gcc/config/alpha/alpha.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/alpha.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the DEC Alpha port of the compiler
  ;
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the DEC Alpha port of the compiler
  ;
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/alpha.opt.urls gcc-14.1.0/gcc/config/alpha/alpha.opt.urls
*** gcc-13.2.0/gcc/config/alpha/alpha.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/alpha/alpha.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,76 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/alpha/alpha.opt and generated HTML
+ 
+ msoft-float
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-msoft-float-2)
+ 
+ ; skipping UrlSuffix for 'mgas' due to finding no URLs
+ 
+ mieee-conformant
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mieee-conformant)
+ 
+ mieee
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mieee)
+ 
+ mieee-with-inexact
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mieee-with-inexact)
+ 
+ mbuild-constants
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mbuild-constants)
+ 
+ mfloat-vax
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mfloat-vax)
+ 
+ mfloat-ieee
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mfloat-ieee)
+ 
+ mbwx
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mbwx)
+ 
+ mmax
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mmax)
+ 
+ mfix
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mfix)
+ 
+ mcix
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mcix)
+ 
+ mexplicit-relocs
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mexplicit-relocs)
+ 
+ msmall-data
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-msmall-data)
+ 
+ mlarge-data
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mlarge-data)
+ 
+ msmall-text
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-msmall-text)
+ 
+ mlarge-text
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mlarge-text)
+ 
+ ; skipping UrlSuffix for 'mlong-double-128' due to finding no URLs
+ 
+ ; skipping UrlSuffix for 'mlong-double-64' due to finding no URLs
+ 
+ mcpu=
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mcpu-4)
+ 
+ mtune=
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mtune-6)
+ 
+ mfp-rounding-mode=
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mfp-rounding-mode)
+ 
+ mfp-trap-mode=
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mfp-trap-mode)
+ 
+ mtrap-precision=
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mtrap-precision)
+ 
+ mmemory-latency=
+ UrlSuffix(gcc/DEC-Alpha-Options.html#index-mmemory-latency)
+ 
+ ; skipping UrlSuffix for 'mtls-size=' due to finding no URLs
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/constraints.md gcc-14.1.0/gcc/config/alpha/constraints.md
*** gcc-13.2.0/gcc/config/alpha/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for DEC Alpha.
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Constraint definitions for DEC Alpha.
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/driver-alpha.cc gcc-14.1.0/gcc/config/alpha/driver-alpha.cc
*** gcc-13.2.0/gcc/config/alpha/driver-alpha.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/driver-alpha.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines for the gcc driver.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by Arthur Loiret <aloiret@debian.org>
  
  This file is part of GCC.
--- 1,5 ----
  /* Subroutines for the gcc driver.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by Arthur Loiret <aloiret@debian.org>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/elf.h gcc-14.1.0/gcc/config/alpha/elf.h
*** gcc-13.2.0/gcc/config/alpha/elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, for DEC Alpha w/ELF.
!    Copyright (C) 1996-2023 Free Software Foundation, Inc.
     Contributed by Richard Henderson (rth@tamu.edu).
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, for DEC Alpha w/ELF.
!    Copyright (C) 1996-2024 Free Software Foundation, Inc.
     Contributed by Richard Henderson (rth@tamu.edu).
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/elf.opt gcc-14.1.0/gcc/config/alpha/elf.opt
*** gcc-13.2.0/gcc/config/alpha/elf.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/elf.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Alpha ELF options.
  
! ; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Alpha ELF options.
  
! ; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/elf.opt.urls gcc-14.1.0/gcc/config/alpha/elf.opt.urls
*** gcc-13.2.0/gcc/config/alpha/elf.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/alpha/elf.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/alpha/elf.opt and generated HTML
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/ev4.md gcc-14.1.0/gcc/config/alpha/ev4.md
*** gcc-13.2.0/gcc/config/alpha/ev4.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/ev4.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Scheduling description for Alpha EV4.
! ;;   Copyright (C) 2002-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Scheduling description for Alpha EV4.
! ;;   Copyright (C) 2002-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/ev5.md gcc-14.1.0/gcc/config/alpha/ev5.md
*** gcc-13.2.0/gcc/config/alpha/ev5.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/ev5.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Scheduling description for Alpha EV5.
! ;;   Copyright (C) 2002-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Scheduling description for Alpha EV5.
! ;;   Copyright (C) 2002-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/ev6.md gcc-14.1.0/gcc/config/alpha/ev6.md
*** gcc-13.2.0/gcc/config/alpha/ev6.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/ev6.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Scheduling description for Alpha EV6.
! ;;   Copyright (C) 2002-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Scheduling description for Alpha EV6.
! ;;   Copyright (C) 2002-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/linux-elf.h gcc-14.1.0/gcc/config/alpha/linux-elf.h
*** gcc-13.2.0/gcc/config/alpha/linux-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/linux-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for GNU compiler
     for Alpha Linux-based GNU systems using ELF.
!    Copyright (C) 1996-2023 Free Software Foundation, Inc.
     Contributed by Richard Henderson.
  
  This file is part of GCC.
--- 1,6 ----
  /* Definitions of target machine for GNU compiler
     for Alpha Linux-based GNU systems using ELF.
!    Copyright (C) 1996-2024 Free Software Foundation, Inc.
     Contributed by Richard Henderson.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/linux.h gcc-14.1.0/gcc/config/alpha/linux.h
*** gcc-13.2.0/gcc/config/alpha/linux.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/linux.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for GNU compiler,
     for Alpha Linux-based GNU systems.
!    Copyright (C) 1996-2023 Free Software Foundation, Inc.
     Contributed by Richard Henderson.
  
  This file is part of GCC.
--- 1,6 ----
  /* Definitions of target machine for GNU compiler,
     for Alpha Linux-based GNU systems.
!    Copyright (C) 1996-2024 Free Software Foundation, Inc.
     Contributed by Richard Henderson.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/netbsd.h gcc-14.1.0/gcc/config/alpha/netbsd.h
*** gcc-13.2.0/gcc/config/alpha/netbsd.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/netbsd.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for GNU compiler,
     for Alpha NetBSD systems.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,6 ----
  /* Definitions of target machine for GNU compiler,
     for Alpha NetBSD systems.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/openbsd.h gcc-14.1.0/gcc/config/alpha/openbsd.h
*** gcc-13.2.0/gcc/config/alpha/openbsd.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/openbsd.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Configuration file for an alpha OpenBSD target.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Configuration file for an alpha OpenBSD target.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/predicates.md gcc-14.1.0/gcc/config/alpha/predicates.md
*** gcc-13.2.0/gcc/config/alpha/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for DEC Alpha.
! ;; Copyright (C) 2004-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Predicate definitions for DEC Alpha.
! ;; Copyright (C) 2004-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/sync.md gcc-14.1.0/gcc/config/alpha/sync.md
*** gcc-13.2.0/gcc/config/alpha/sync.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/sync.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; GCC machine description for Alpha synchronization instructions.
! ;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; GCC machine description for Alpha synchronization instructions.
! ;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/t-alpha gcc-14.1.0/gcc/config/alpha/t-alpha
*** gcc-13.2.0/gcc/config/alpha/t-alpha	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/t-alpha	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/t-vms gcc-14.1.0/gcc/config/alpha/t-vms
*** gcc-13.2.0/gcc/config/alpha/t-vms	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/t-vms	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 1996-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 1996-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/alpha/vms.h gcc-14.1.0/gcc/config/alpha/vms.h
*** gcc-13.2.0/gcc/config/alpha/vms.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/alpha/vms.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Output variables, constants and external declarations, for GNU compiler.
!    Copyright (C) 1996-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Output variables, constants and external declarations, for GNU compiler.
!    Copyright (C) 1996-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-arch.h gcc-14.1.0/gcc/config/arc/arc-arch.h
*** gcc-13.2.0/gcc/config/arc/arc-arch.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-arch.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of types that are used to store ARC architecture and
     device information.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
     Contributed by Claudiu Zissulescu (claziss@synopsys.com)
  
  This file is part of GCC.
--- 1,6 ----
  /* Definitions of types that are used to store ARC architecture and
     device information.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
     Contributed by Claudiu Zissulescu (claziss@synopsys.com)
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-arches.def gcc-14.1.0/gcc/config/arc/arc-arches.def
*** gcc-13.2.0/gcc/config/arc/arc-arches.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-arches.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ARC ARCH architectures.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ARC ARCH architectures.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-c.cc gcc-14.1.0/gcc/config/arc/arc-c.cc
*** gcc-13.2.0/gcc/config/arc/arc-c.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-c.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-c.def gcc-14.1.0/gcc/config/arc/arc-c.def
*** gcc-13.2.0/gcc/config/arc/arc-c.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-c.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-cpus.def gcc-14.1.0/gcc/config/arc/arc-cpus.def
*** gcc-13.2.0/gcc/config/arc/arc-cpus.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-cpus.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ARC CPU architectures.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ARC CPU architectures.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-modes.def gcc-14.1.0/gcc/config/arc/arc-modes.def
*** gcc-13.2.0/gcc/config/arc/arc-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
  		on behalf of Synopsys Inc.
  
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
  		on behalf of Synopsys Inc.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-options.def gcc-14.1.0/gcc/config/arc/arc-options.def
*** gcc-13.2.0/gcc/config/arc/arc-options.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-options.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ARC options.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ARC options.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-opts.h gcc-14.1.0/gcc/config/arc/arc-opts.h
*** gcc-13.2.0/gcc/config/arc/arc-opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-opts.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* GCC option-handling definitions for the Synopsys DesignWare ARC architecture.
  
!    Copyright (C) 2007-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,6 ----
  /* GCC option-handling definitions for the Synopsys DesignWare ARC architecture.
  
!    Copyright (C) 2007-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-passes.def gcc-14.1.0/gcc/config/arc/arc-passes.def
*** gcc-13.2.0/gcc/config/arc/arc-passes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-passes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Description of target passes for ARC.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc. */
  
  /* This file is part of GCC.
  
--- 1,5 ----
  /* Description of target passes for ARC.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc. */
  
  /* This file is part of GCC.
  
***************
*** 17,28 ****
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
- /* First target dependent ARC if-conversion pass.  */
- INSERT_PASS_AFTER (pass_delay_slots, 1, pass_arc_ifcvt);
- 
- /* Second target dependent ARC if-conversion pass.  */
- INSERT_PASS_BEFORE (pass_shorten_branches, 1, pass_arc_ifcvt);
- 
  /* Find annulled delay insns and convert them to use the appropriate
     predicate.  This allows branch shortening to size up these
     instructions properly.  */
--- 17,22 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-protos.h gcc-14.1.0/gcc/config/arc/arc-protos.h
*** gcc-13.2.0/gcc/config/arc/arc-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern machine_mode arc_select_cc_mode (
*** 25,42 ****
  extern struct rtx_def *gen_compare_reg (rtx, machine_mode);
  
  /* Declarations for various fns used in the .md file.  */
! extern const char *output_shift (rtx *);
  extern bool compact_sda_memory_operand (rtx, machine_mode, bool);
  extern bool arc_double_limm_p (rtx);
  extern void arc_print_operand (FILE *, rtx, int);
  extern void arc_print_operand_address (FILE *, rtx);
  extern void arc_final_prescan_insn (rtx_insn *, rtx *, int);
  extern const char *arc_output_libcall (const char *);
- extern int arc_output_addsi (rtx *operands, bool, bool);
  extern int arc_output_commutative_cond_exec (rtx *operands, bool);
  extern bool arc_expand_cpymem (rtx *operands);
  extern bool prepare_move_operands (rtx *operands, machine_mode mode);
! extern void emit_shift (enum rtx_code, rtx, rtx, rtx);
  extern void arc_expand_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx);
  extern void arc_split_compare_and_swap (rtx *);
  extern void arc_expand_compare_and_swap (rtx *);
--- 25,46 ----
  extern struct rtx_def *gen_compare_reg (rtx, machine_mode);
  
  /* Declarations for various fns used in the .md file.  */
! extern const char *output_shift_loop (enum rtx_code, rtx *);
! extern void arc_split_ashl (rtx *);
! extern void arc_split_ashr (rtx *);
! extern void arc_split_lshr (rtx *);
! extern void arc_split_rotl (rtx *);
! extern void arc_split_rotr (rtx *);
  extern bool compact_sda_memory_operand (rtx, machine_mode, bool);
  extern bool arc_double_limm_p (rtx);
  extern void arc_print_operand (FILE *, rtx, int);
  extern void arc_print_operand_address (FILE *, rtx);
  extern void arc_final_prescan_insn (rtx_insn *, rtx *, int);
  extern const char *arc_output_libcall (const char *);
  extern int arc_output_commutative_cond_exec (rtx *operands, bool);
  extern bool arc_expand_cpymem (rtx *operands);
  extern bool prepare_move_operands (rtx *operands, machine_mode mode);
! extern bool arc_pre_reload_split (void);
  extern void arc_expand_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx);
  extern void arc_split_compare_and_swap (rtx *);
  extern void arc_expand_compare_and_swap (rtx *);
*************** extern bool arc_can_use_return_insn (voi
*** 53,60 ****
  extern bool arc_split_move_p (rtx *);
  #endif /* RTX_CODE */
  
- extern bool arc_ccfsm_branch_deleted_p (void);
- extern void arc_ccfsm_record_branch_deleted (void);
  
  void arc_asm_output_aligned_decl_local (FILE *, tree, const char *,
  					unsigned HOST_WIDE_INT,
--- 57,62 ----
*************** extern bool arc_raw_symbolic_reference_m
*** 68,74 ****
  extern bool arc_is_longcall_p (rtx);
  extern bool arc_is_shortcall_p (rtx);
  extern bool valid_brcc_with_delay_p (rtx *);
- extern bool arc_ccfsm_cond_exec_p (void);
  extern rtx disi_highpart (rtx);
  extern int arc_adjust_insn_length (rtx_insn *, int, bool);
  extern int arc_corereg_hazard (rtx, rtx);
--- 70,75 ----
*************** extern int arc_write_ext_corereg (rtx);
*** 77,92 ****
  extern rtx gen_acc1 (void);
  extern rtx gen_acc2 (void);
  extern bool arc_branch_size_unknown_p (void);
- struct arc_ccfsm;
- extern void arc_ccfsm_record_condition (rtx, bool, rtx_insn *,
- 					struct arc_ccfsm *);
  extern void arc_expand_prologue (void);
  extern void arc_expand_epilogue (int);
  extern void arc_init_expanders (void);
  extern int arc_check_millicode (rtx op, int offset, int load_p);
- extern void arc_clear_unalign (void);
- extern void arc_toggle_unalign (void);
- extern void split_addsi (rtx *);
  extern void split_subsi (rtx *);
  extern void arc_split_move (rtx *);
  extern const char *arc_short_long (rtx_insn *insn, const char *, const char *);
--- 78,87 ----
*************** extern bool arc_is_jli_call_p (rtx);
*** 108,112 ****
  extern void arc_file_end (void);
  extern bool arc_is_secure_call_p (rtx);
  
- rtl_opt_pass * make_pass_arc_ifcvt (gcc::context *ctxt);
  rtl_opt_pass * make_pass_arc_predicate_delay_insns (gcc::context *ctxt);
--- 103,106 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-simd.h gcc-14.1.0/gcc/config/arc/arc-simd.h
*** gcc-13.2.0/gcc/config/arc/arc-simd.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-simd.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Synopsys DesignWare ARC SIMD include file.
!    Copyright (C) 2007-2023 Free Software Foundation, Inc.
     Written by Saurabh Verma (saurabh.verma@celunite.com) on behalf os Synopsys
     Inc.
  
--- 1,5 ----
  /* Synopsys DesignWare ARC SIMD include file.
!    Copyright (C) 2007-2024 Free Software Foundation, Inc.
     Written by Saurabh Verma (saurabh.verma@celunite.com) on behalf os Synopsys
     Inc.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-tables.opt gcc-14.1.0/gcc/config/arc/arc-tables.opt
*** gcc-13.2.0/gcc/config/arc/arc-tables.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc-tables.opt	Tue May  7 06:51:37 2024
***************
*** 2,8 ****
  ; Generated by    : ./gcc/config/arc/genoptions.awk
  ; Generated from  : ./gcc/config/arc/arc-cpu.def
  ;
! ; Copyright (C) 2016-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 2,8 ----
  ; Generated by    : ./gcc/config/arc/genoptions.awk
  ; Generated from  : ./gcc/config/arc/arc-cpu.def
  ;
! ; Copyright (C) 2016-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc-tables.opt.urls gcc-14.1.0/gcc/config/arc/arc-tables.opt.urls
*** gcc-13.2.0/gcc/config/arc/arc-tables.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arc/arc-tables.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/arc/arc-tables.opt and generated HTML
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc.cc gcc-14.1.0/gcc/config/arc/arc.cc
*** gcc-13.2.0/gcc/config/arc/arc.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines used for code generation on the Synopsys DesignWare ARC cpu.
!    Copyright (C) 1994-2023 Free Software Foundation, Inc.
  
     Sources derived from work done by Sankhya Technologies (www.sankhya.com) on
     behalf of Synopsys Inc.
--- 1,5 ----
  /* Subroutines used for code generation on the Synopsys DesignWare ARC cpu.
!    Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
     Sources derived from work done by Sankhya Technologies (www.sankhya.com) on
     behalf of Synopsys Inc.
*************** along with GCC; see the file COPYING3.
*** 68,73 ****
--- 68,75 ----
  #include "alias.h"
  #include "opts.h"
  #include "hw-doloop.h"
+ #include "targhooks.h"
+ #include "case-cfn-macros.h"
  
  /* Which cpu we're compiling for (ARC600, ARC601, ARC700).  */
  static char arc_cpu_name[10] = "";
*************** HARD_REG_SET overrideregs;
*** 99,114 ****
  /* Array of valid operand punctuation characters.  */
  char arc_punct_chars[256];
  
- /* State used by arc_ccfsm_advance to implement conditional execution.  */
- struct GTY (()) arc_ccfsm
- {
-   int state;
-   int cc;
-   rtx cond;
-   rtx_insn *target_insn;
-   int target_label;
- };
- 
  /* Status of the IRQ_CTRL_AUX register.  */
  typedef struct irq_ctrl_saved_t
  {
--- 101,106 ----
*************** static irq_ctrl_saved_t irq_ctrl_saved;
*** 141,176 ****
  /* Number of registers in second bank for FIRQ support.  */
  static int rgf_banked_register_count;
  
- #define arc_ccfsm_current cfun->machine->ccfsm_current
- 
- #define ARC_CCFSM_BRANCH_DELETED_P(STATE) \
-   ((STATE)->state == 1 || (STATE)->state == 2)
- 
- /* Indicate we're conditionalizing insns now.  */
- #define ARC_CCFSM_RECORD_BRANCH_DELETED(STATE) \
-   ((STATE)->state += 2)
- 
- #define ARC_CCFSM_COND_EXEC_P(STATE) \
-   ((STATE)->state == 3 || (STATE)->state == 4 || (STATE)->state == 5 \
-    || current_insn_predicate)
- 
- /* Check if INSN has a 16 bit opcode considering struct arc_ccfsm *STATE.  */
- #define CCFSM_ISCOMPACT(INSN,STATE) \
-   (ARC_CCFSM_COND_EXEC_P (STATE) \
-    ? (get_attr_iscompact (INSN) == ISCOMPACT_TRUE \
-       || get_attr_iscompact (INSN) == ISCOMPACT_TRUE_LIMM) \
-    : get_attr_iscompact (INSN) != ISCOMPACT_FALSE)
- 
- /* Likewise, but also consider that INSN might be in a delay slot of JUMP.  */
- #define CCFSM_DBR_ISCOMPACT(INSN,JUMP,STATE) \
-   ((ARC_CCFSM_COND_EXEC_P (STATE) \
-     || (JUMP_P (JUMP) \
- 	&& INSN_ANNULLED_BRANCH_P (JUMP) \
- 	&& (TARGET_AT_DBR_CONDEXEC || INSN_FROM_TARGET_P (INSN)))) \
-    ? (get_attr_iscompact (INSN) == ISCOMPACT_TRUE \
-       || get_attr_iscompact (INSN) == ISCOMPACT_TRUE_LIMM) \
-    : get_attr_iscompact (INSN) != ISCOMPACT_FALSE)
- 
  /* Start enter/leave register range.  */
  #define ENTER_LEAVE_START_REG 13
  
--- 133,138 ----
*************** static int rgf_banked_register_count;
*** 216,226 ****
  /* ARC600 MULHI register.  */
  #define AUX_MULHI 0x12
  
- /* A nop is needed between a 4 byte insn that sets the condition codes and
-    a branch that uses them (the same isn't true for an 8 byte insn that sets
-    the condition codes).  Set by arc_ccfsm_advance.  Used by
-    arc_print_operand.  */
- 
  static int get_arc_condition_code (rtx);
  
  static tree arc_handle_interrupt_attribute (tree *, tree, tree, int, bool *);
--- 178,183 ----
*************** static tree arc_handle_secure_attribute
*** 230,273 ****
  static tree arc_handle_uncached_attribute (tree *, tree, tree, int, bool *);
  static tree arc_handle_aux_attribute (tree *, tree, tree, int, bool *);
  
- /* Initialized arc_attribute_table to NULL since arc doesnot have any
-    machine specific supported attributes.  */
- const struct attribute_spec arc_attribute_table[] =
- {
-  /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
-       affects_type_identity, handler, exclude } */
-   { "interrupt", 1, 1, true, false, false, true,
-     arc_handle_interrupt_attribute, NULL },
-   /* Function calls made to this symbol must be done indirectly, because
-      it may lie outside of the 21/25 bit addressing range of a normal function
-      call.  */
-   { "long_call",    0, 0, false, true,  true,  false, NULL, NULL },
-   /* Whereas these functions are always known to reside within the 25 bit
-      addressing range of unconditionalized bl.  */
-   { "medium_call",   0, 0, false, true,  true, false, NULL, NULL },
-   /* And these functions are always known to reside within the 21 bit
-      addressing range of blcc.  */
-   { "short_call",   0, 0, false, true,  true,  false, NULL, NULL },
-   /* Function which are not having the prologue and epilogue generated
-      by the compiler.  */
-   { "naked", 0, 0, true, false, false,  false, arc_handle_fndecl_attribute,
-     NULL },
-   /* Functions calls made using jli instruction.  The pointer in JLI
-      table is found latter.  */
-   { "jli_always",    0, 0, false, true,  true, false,  NULL, NULL },
-   /* Functions calls made using jli instruction.  The pointer in JLI
-      table is given as input parameter.  */
-   { "jli_fixed",    1, 1, false, true,  true, false, arc_handle_jli_attribute,
-     NULL },
-   /* Call a function using secure-mode.  */
-   { "secure_call",  1, 1, false, true, true, false, arc_handle_secure_attribute,
-     NULL },
-    /* Bypass caches using .di flag.  */
-   { "uncached", 0, 0, false, true, false, false, arc_handle_uncached_attribute,
-     NULL },
-   { "aux", 0, 1, true, false, false, false, arc_handle_aux_attribute, NULL },
-   { NULL, 0, 0, false, false, false, false, NULL, NULL }
- };
  static int arc_comp_type_attributes (const_tree, const_tree);
  static void arc_file_start (void);
  static void arc_internal_label (FILE *, const char *, unsigned long);
--- 187,192 ----
*************** static int branch_dest (rtx);
*** 284,290 ****
  static void  arc_output_pic_addr_const (FILE *,  rtx, int);
  static bool arc_function_ok_for_sibcall (tree, tree);
  static rtx arc_function_value (const_tree, const_tree, bool);
- const char * output_shift (rtx *);
  static void arc_reorg (void);
  static bool arc_in_small_data_p (const_tree);
  
--- 203,208 ----
*************** typedef struct GTY (()) machine_function
*** 421,431 ****
  {
    unsigned int fn_type;
    struct arc_frame_info frame_info;
-   /* To keep track of unalignment caused by short insns.  */
-   int unalign;
-   struct arc_ccfsm ccfsm_current;
-   /* Map from uid to ccfsm state during branch shortening.  */
-   rtx ccfsm_current_insn;
    char arc_reorg_started;
    char prescan_initialized;
  } machine_function;
--- 339,344 ----
*************** static rtx arc_legitimize_address_0 (rtx
*** 692,697 ****
--- 605,613 ----
  #undef  TARGET_EXPAND_BUILTIN
  #define TARGET_EXPAND_BUILTIN arc_expand_builtin
  
+ #undef  TARGET_FOLD_BUILTIN
+ #define TARGET_FOLD_BUILTIN arc_fold_builtin
+ 
  #undef  TARGET_BUILTIN_DECL
  #define TARGET_BUILTIN_DECL arc_builtin_decl
  
*************** static rtx arc_legitimize_address_0 (rtx
*** 819,824 ****
--- 735,776 ----
  
  #include "target-def.h"
  
+ TARGET_GNU_ATTRIBUTES (arc_attribute_table,
+ {
+  /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+       affects_type_identity, handler, exclude } */
+   { "interrupt", 1, 1, true, false, false, true,
+     arc_handle_interrupt_attribute, NULL },
+   /* Function calls made to this symbol must be done indirectly, because
+      it may lie outside of the 21/25 bit addressing range of a normal function
+      call.  */
+   { "long_call",    0, 0, false, true,  true,  false, NULL, NULL },
+   /* Whereas these functions are always known to reside within the 25 bit
+      addressing range of unconditionalized bl.  */
+   { "medium_call",   0, 0, false, true,  true, false, NULL, NULL },
+   /* And these functions are always known to reside within the 21 bit
+      addressing range of blcc.  */
+   { "short_call",   0, 0, false, true,  true,  false, NULL, NULL },
+   /* Function which are not having the prologue and epilogue generated
+      by the compiler.  */
+   { "naked", 0, 0, true, false, false,  false, arc_handle_fndecl_attribute,
+     NULL },
+   /* Functions calls made using jli instruction.  The pointer in JLI
+      table is found latter.  */
+   { "jli_always",    0, 0, false, true,  true, false,  NULL, NULL },
+   /* Functions calls made using jli instruction.  The pointer in JLI
+      table is given as input parameter.  */
+   { "jli_fixed",    1, 1, false, true,  true, false, arc_handle_jli_attribute,
+     NULL },
+   /* Call a function using secure-mode.  */
+   { "secure_call",  1, 1, false, true, true, false, arc_handle_secure_attribute,
+     NULL },
+    /* Bypass caches using .di flag.  */
+   { "uncached", 0, 0, false, true, false, false, arc_handle_uncached_attribute,
+     NULL },
+   { "aux", 0, 1, true, false, false, false, arc_handle_aux_attribute, NULL }
+ });
+ 
  #undef TARGET_ASM_ALIGNED_HI_OP
  #define TARGET_ASM_ALIGNED_HI_OP "\t.hword\t"
  #undef TARGET_ASM_ALIGNED_SI_OP
*************** arc_secondary_reload_conv (rtx reg, rtx
*** 962,1014 ****
    return;
  }
  
- static unsigned arc_ifcvt (void);
- 
- namespace {
- 
- const pass_data pass_data_arc_ifcvt =
- {
-   RTL_PASS,
-   "arc_ifcvt",				/* name */
-   OPTGROUP_NONE,			/* optinfo_flags */
-   TV_IFCVT2,				/* tv_id */
-   0,					/* properties_required */
-   0,					/* properties_provided */
-   0,					/* properties_destroyed */
-   0,					/* todo_flags_start */
-   TODO_df_finish			/* todo_flags_finish */
- };
- 
- class pass_arc_ifcvt : public rtl_opt_pass
- {
-  public:
-  pass_arc_ifcvt (gcc::context *ctxt)
-    : rtl_opt_pass (pass_data_arc_ifcvt, ctxt)
-     {}
- 
-   /* opt_pass methods: */
-   opt_pass * clone ()
-     {
-       return new pass_arc_ifcvt (m_ctxt);
-     }
-   virtual unsigned int execute (function *)
-   {
-     return arc_ifcvt ();
-   }
-   virtual bool gate (function *)
-   {
-     return (optimize > 1 && !TARGET_NO_COND_EXEC);
-   }
- };
- 
- } // anon namespace
- 
- rtl_opt_pass *
- make_pass_arc_ifcvt (gcc::context *ctxt)
- {
-   return new pass_arc_ifcvt (ctxt);
- }
- 
  static unsigned arc_predicate_delay_insns (void);
  
  namespace {
--- 914,919 ----
*************** arc_init (void)
*** 1126,1137 ****
  
    /* Initialize array for PRINT_OPERAND_PUNCT_VALID_P.  */
    memset (arc_punct_chars, 0, sizeof (arc_punct_chars));
-   arc_punct_chars['#'] = 1;
    arc_punct_chars['*'] = 1;
    arc_punct_chars['?'] = 1;
    arc_punct_chars['!'] = 1;
-   arc_punct_chars['^'] = 1;
-   arc_punct_chars['&'] = 1;
    arc_punct_chars['+'] = 1;
    arc_punct_chars['_'] = 1;
  }
--- 1031,1039 ----
*************** arc_select_cc_mode (enum rtx_code op, rt
*** 1660,1666 ****
  
    /* add.f for if (a+b) */
    if (mode == SImode
!       && GET_CODE (y) == NEG
        && (op == EQ || op == NE))
      return CC_ZNmode;
  
--- 1562,1568 ----
  
    /* add.f for if (a+b) */
    if (mode == SImode
!       && GET_CODE (x) == NEG
        && (op == EQ || op == NE))
      return CC_ZNmode;
  
*************** arc_setup_incoming_varargs (cumulative_a
*** 2450,2456 ****
    /* We must treat `__builtin_va_alist' as an anonymous arg.  */
  
    next_cum = *get_cumulative_args (args_so_far);
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl)))
      arc_function_arg_advance (pack_cumulative_args (&next_cum), arg);
    first_anon_arg = next_cum;
  
--- 2352,2359 ----
    /* We must treat `__builtin_va_alist' as an anonymous arg.  */
  
    next_cum = *get_cumulative_args (args_so_far);
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl))
!       || arg.type != NULL_TREE)
      arc_function_arg_advance (pack_cumulative_args (&next_cum), arg);
    first_anon_arg = next_cum;
  
*************** arc_unspec_offset (rtx loc, int unspec)
*** 4237,4393 ****
  					       unspec));
  }
  
! /* !TARGET_BARREL_SHIFTER support.  */
! /* Emit a shift insn to set OP0 to OP1 shifted by OP2; CODE specifies what
!    kind of shift.  */
  
! void
! emit_shift (enum rtx_code code, rtx op0, rtx op1, rtx op2)
  {
!   rtx shift = gen_rtx_fmt_ee (code, SImode, op1, op2);
!   rtx pat
!     = ((shift4_operator (shift, SImode) ?  gen_shift_si3 : gen_shift_si3_loop)
! 	(op0, op1, op2, shift));
!   emit_insn (pat);
  }
  
! /* Output the assembler code for doing a shift.
!    We go to a bit of trouble to generate efficient code as the ARC601 only has
!    single bit shifts.  This is taken from the h8300 port.  We only have one
!    mode of shifting and can't access individual bytes like the h8300 can, so
!    this is greatly simplified (at the expense of not generating hyper-
!    efficient code).
! 
!    This function is not used if the variable shift insns are present.  */
! 
! /* FIXME:  This probably can be done using a define_split in arc.md.
!    Alternately, generate rtx rather than output instructions.  */
  
  const char *
! output_shift (rtx *operands)
  {
!   /*  static int loopend_lab;*/
!   rtx shift = operands[3];
!   machine_mode mode = GET_MODE (shift);
!   enum rtx_code code = GET_CODE (shift);
!   const char *shift_one;
  
!   gcc_assert (mode == SImode);
  
    switch (code)
      {
!     case ASHIFT:   shift_one = "add %0,%1,%1"; break;
!     case ASHIFTRT: shift_one = "asr %0,%1"; break;
!     case LSHIFTRT: shift_one = "lsr %0,%1"; break;
!     default:       gcc_unreachable ();
      }
  
!   if (GET_CODE (operands[2]) != CONST_INT)
      {
!       output_asm_insn ("and.f lp_count,%2, 0x1f", operands);
!       goto shiftloop;
      }
    else
      {
!       int n;
! 
!       n = INTVAL (operands[2]);
  
!       /* Only consider the lower 5 bits of the shift count.  */
!       n = n & 0x1f;
  
!       /* First see if we can do them inline.  */
!       /* ??? We could get better scheduling & shorter code (using short insns)
! 	 by using splitters.  Alas, that'd be even more verbose.  */
!       if (code == ASHIFT && n <= 9 && n > 2
! 	  && dest_reg_operand (operands[4], SImode))
  	{
! 	  output_asm_insn ("mov %4,0\n\tadd3 %0,%4,%1", operands);
! 	  for (n -=3 ; n >= 3; n -= 3)
! 	    output_asm_insn ("add3 %0,%4,%0", operands);
! 	  if (n == 2)
! 	    output_asm_insn ("add2 %0,%4,%0", operands);
! 	  else if (n)
! 	    output_asm_insn ("add %0,%0,%0", operands);
  	}
!       else if (n <= 4)
  	{
! 	  while (--n >= 0)
  	    {
! 	      output_asm_insn (shift_one, operands);
! 	      operands[1] = operands[0];
  	    }
  	}
!       /* See if we can use a rotate/and.  */
!       else if (n == BITS_PER_WORD - 1)
  	{
! 	  switch (code)
  	    {
! 	    case ASHIFT :
! 	      output_asm_insn ("and %0,%1,1\n\tror %0,%0", operands);
! 	      break;
! 	    case ASHIFTRT :
! 	      /* The ARC doesn't have a rol insn.  Use something else.  */
! 	      output_asm_insn ("add.f 0,%1,%1\n\tsbc %0,%0,%0", operands);
! 	      break;
! 	    case LSHIFTRT :
! 	      /* The ARC doesn't have a rol insn.  Use something else.  */
! 	      output_asm_insn ("add.f 0,%1,%1\n\trlc %0,0", operands);
! 	      break;
! 	    default:
! 	      break;
  	    }
  	}
!       else if (n == BITS_PER_WORD - 2 && dest_reg_operand (operands[4], SImode))
  	{
! 	  switch (code)
  	    {
! 	    case ASHIFT :
! 	      output_asm_insn ("and %0,%1,3\n\tror %0,%0\n\tror %0,%0", operands);
! 	      break;
! 	    case ASHIFTRT :
! #if 1 /* Need some scheduling comparisons.  */
! 	      output_asm_insn ("add.f %4,%1,%1\n\tsbc %0,%0,%0\n\t"
! 			       "add.f 0,%4,%4\n\trlc %0,%0", operands);
! #else
! 	      output_asm_insn ("add.f %4,%1,%1\n\tbxor %0,%4,31\n\t"
! 			       "sbc.f %0,%0,%4\n\trlc %0,%0", operands);
! #endif
! 	      break;
! 	    case LSHIFTRT :
! #if 1
! 	      output_asm_insn ("add.f %4,%1,%1\n\trlc %0,0\n\t"
! 			       "add.f 0,%4,%4\n\trlc %0,%0", operands);
! #else
! 	      output_asm_insn ("add.f %0,%1,%1\n\trlc.f %0,0\n\t"
! 			       "and %0,%0,1\n\trlc %0,%0", operands);
! #endif
! 	      break;
! 	    default:
! 	      break;
  	    }
  	}
!       else if (n == BITS_PER_WORD - 3 && code == ASHIFT)
! 	output_asm_insn ("and %0,%1,7\n\tror %0,%0\n\tror %0,%0\n\tror %0,%0",
! 			 operands);
!       /* Must loop.  */
!       else
  	{
! 	  operands[2] = GEN_INT (n);
! 	  output_asm_insn ("mov.f lp_count, %2", operands);
  
! 	shiftloop:
  	    {
! 	      output_asm_insn ("lpnz\t2f", operands);
! 	      output_asm_insn (shift_one, operands);
! 	      output_asm_insn ("nop", operands);
! 	      fprintf (asm_out_file, "2:\t%s end single insn loop\n",
! 		       ASM_COMMENT_START);
  	    }
  	}
      }
  
!   return "";
  }
  
  /* Nested function support.  */
--- 4140,4746 ----
  					       unspec));
  }
  
! /* Predicate for pre-reload splitters with associated instructions,
!    which can match any time before the split1 pass (usually combine),
!    then are unconditionally split in that pass and should not be
!    matched again afterwards.  */
  
! bool
! arc_pre_reload_split (void)
  {
!   return (can_create_pseudo_p ()
! 	  && !(cfun->curr_properties & PROP_rtl_split_insns));
  }
  
! /* Output the assembler code for a zero-overhead loop doing a shift
!    or rotate.  We know OPERANDS[0] == OPERANDS[1], and the bit count
!    is OPERANDS[2].  */
  
  const char *
! output_shift_loop (enum rtx_code code, rtx *operands)
  {
!   bool twice_p = false;
!   gcc_assert (GET_MODE (operands[0]) == SImode);
  
!   if (GET_CODE (operands[2]) != CONST_INT)
!     {
!       output_asm_insn ("and.f\tlp_count,%2,0x1f", operands);
!       output_asm_insn ("lpnz\t2f", operands);
!     }
!   else
!     {
!       int n = INTVAL (operands[2]) & 31;
!       if (!n)
! 	{
! 	  output_asm_insn ("mov\t%0,%1",operands);
! 	  return "";
! 	}
! 
!       if ((n & 1) == 0 && code != ROTATE)
! 	{
! 	  twice_p = true;
! 	  n >>= 1;
! 	}
!       operands[2] = GEN_INT (n);
!       output_asm_insn ("mov\tlp_count,%2", operands);
!       output_asm_insn ("lp\t2f", operands);
!     }
  
    switch (code)
      {
!     case ASHIFT:
!       output_asm_insn ("add\t%0,%1,%1", operands);
!       if (twice_p)
! 	output_asm_insn ("add\t%0,%1,%1", operands);
!       break;
!     case ASHIFTRT:
!       output_asm_insn ("asr\t%0,%1", operands);
!       if (twice_p)
! 	output_asm_insn ("asr\t%0,%1", operands);
!       break;
!     case LSHIFTRT:
!       output_asm_insn ("lsr\t%0,%1", operands);
!       if (twice_p)
! 	output_asm_insn ("lsr\t%0,%1", operands);
!       break;
!     case ROTATERT:
!       output_asm_insn ("ror\t%0,%1", operands);
!       if (twice_p)
! 	output_asm_insn ("ror\t%0,%1", operands);
!       break;
!     case ROTATE:
!       output_asm_insn ("add.f\t%0,%1,%1", operands);
!       output_asm_insn ("adc\t%0,%0,0", operands);
!       twice_p = true;
!       break;
!     default:
!       gcc_unreachable ();
      }
  
!   if (!twice_p)
!     output_asm_insn ("nop", operands);
!   fprintf (asm_out_file, "2:\t%s end single insn loop\n", ASM_COMMENT_START);
!   return "";
! }
! 
! /* See below where shifts are handled for explanation of this enum.  */
! enum arc_shift_alg
! {
!   SHIFT_MOVE,		/* Register-to-register move.  */
!   SHIFT_LOOP,		/* Zero-overhead loop implementation.  */
!   SHIFT_INLINE,		/* Mmultiple LSHIFTs and LSHIFT-PLUSs.  */ 
!   SHIFT_AND_ROT,        /* Bitwise AND, then ROTATERTs.  */
!   SHIFT_SWAP,		/* SWAP then multiple LSHIFTs/LSHIFT-PLUSs.  */
!   SHIFT_AND_SWAP_ROT	/* Bitwise AND, then SWAP, then ROTATERTs.  */
! };
! 
! struct arc_shift_info {
!   enum arc_shift_alg alg;
!   unsigned int cost;
! };
! 
! /* Return shift algorithm context, an index into the following tables.
!  * 0 for -Os (optimize for size)	3 for -O2 (optimized for speed)
!  * 1 for -Os -mswap TARGET_V2		4 for -O2 -mswap TARGET_V2
!  * 2 for -Os -mswap !TARGET_V2		5 for -O2 -mswap !TARGET_V2  */
! static unsigned int
! arc_shift_context_idx ()
! {
!   if (optimize_function_for_size_p (cfun))
      {
!       if (!TARGET_SWAP)
! 	return 0;
!       if (TARGET_V2)
! 	return 1;
!       return 2;
      }
    else
      {
!       if (!TARGET_SWAP)
! 	return 3;
!       if (TARGET_V2)
! 	return 4;
!       return 5;
!     }
! }
  
! static const arc_shift_info arc_ashl_alg[6][32] = {
!   {  /* 0: -Os.  */
!     { SHIFT_MOVE,         COSTS_N_INSNS (1) },  /*  0 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (1) },  /*  1 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  2 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  3 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  4 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  5 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  6 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  7 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  8 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  9 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 10 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 11 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 12 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 13 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 14 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 15 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 16 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 17 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 18 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 19 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 20 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 21 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 22 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 23 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 24 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 25 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 26 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 27 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 28 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (4) },  /* 29 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (3) },  /* 30 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (2) }   /* 31 */
!   },
!   {  /* 1: -Os -mswap TARGET_V2.  */
!     { SHIFT_MOVE,         COSTS_N_INSNS (1) },  /*  0 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (1) },  /*  1 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  2 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  3 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  4 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  5 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  6 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  7 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  8 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  9 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 10 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 11 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 12 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 13 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (4) },  /* 14 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (3) },  /* 15 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (1) },  /* 16 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (2) },  /* 17 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (3) },  /* 18 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (3) },  /* 19 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 20 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 21 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 22 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 23 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 24 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 25 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 26 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 27 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 28 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (4) },  /* 29 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (3) },  /* 30 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (2) }   /* 31 */
!   },
!   {  /* 2: -Os -mswap !TARGET_V2.  */
!     { SHIFT_MOVE,         COSTS_N_INSNS (1) },  /*  0 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (1) },  /*  1 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  2 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  3 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  4 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  5 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  6 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  7 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  8 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  9 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 10 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 11 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 12 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 13 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (4) },  /* 14 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (3) },  /* 15 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (2) },  /* 16 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (3) },  /* 17 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 18 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 19 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 20 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 21 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 22 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 23 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 24 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 25 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 26 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 27 */
!     { SHIFT_LOOP,         COSTS_N_INSNS (4) },  /* 28 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (4) },  /* 29 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (3) },  /* 30 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (2) }   /* 31 */
!   },
!   {  /* 3: -O2.  */
!     { SHIFT_MOVE,         COSTS_N_INSNS (1) },  /*  0 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (1) },  /*  1 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  2 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  3 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  4 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  5 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  6 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  7 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  8 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  9 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 10 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 11 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 12 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (6) },  /* 13 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (6) },  /* 14 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (6) },  /* 15 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (7) },  /* 16 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (7) },  /* 17 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (7) },  /* 18 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (8) },  /* 19 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (8) },  /* 20 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (8) },  /* 21 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (9) },  /* 22 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (9) },  /* 23 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (9) },  /* 24 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (8) },  /* 25 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (7) },  /* 26 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (6) },  /* 27 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (5) },  /* 28 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (4) },  /* 29 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (3) },  /* 30 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (2) }   /* 31 */
!   },
!   {  /* 4: -O2 -mswap TARGET_V2.  */
!     { SHIFT_MOVE,         COSTS_N_INSNS (1) },  /*  0 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (1) },  /*  1 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  2 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  3 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  4 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  5 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  6 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  7 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  8 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  9 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 10 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 11 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 12 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (5) },  /* 13 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (4) },  /* 14 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (3) },  /* 15 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (1) },  /* 16 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (2) },  /* 17 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (3) },  /* 18 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (3) },  /* 19 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 20 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 21 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 22 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (5) },  /* 23 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (5) },  /* 24 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (5) },  /* 25 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (6) },  /* 26 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (6) },  /* 27 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (5) },  /* 28 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (4) },  /* 29 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (3) },  /* 30 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (2) }   /* 31 */
!   },
!   {  /* 5: -O2 -mswap !TARGET_V2.  */
!     { SHIFT_MOVE,         COSTS_N_INSNS (1) },  /*  0 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (1) },  /*  1 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  2 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (2) },  /*  3 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  4 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  5 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (3) },  /*  6 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  7 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  8 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (4) },  /*  9 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 10 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 11 */
!     { SHIFT_INLINE,       COSTS_N_INSNS (5) },  /* 12 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (5) },  /* 13 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (4) },  /* 14 */
!     { SHIFT_AND_SWAP_ROT, COSTS_N_INSNS (3) },  /* 15 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (2) },  /* 16 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (3) },  /* 17 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 18 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (4) },  /* 19 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (5) },  /* 20 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (5) },  /* 21 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (5) },  /* 22 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (6) },  /* 23 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (6) },  /* 24 */
!     { SHIFT_SWAP,         COSTS_N_INSNS (6) },  /* 25 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (7) },  /* 26 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (6) },  /* 27 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (5) },  /* 28 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (4) },  /* 29 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (3) },  /* 30 */
!     { SHIFT_AND_ROT,      COSTS_N_INSNS (2) }   /* 31 */
!   }
! };
  
! /* Split SImode left shift instruction.  */
! void
! arc_split_ashl (rtx *operands)
! {
!   if (CONST_INT_P (operands[2]))
!     {
!       int n = INTVAL (operands[2]) & 0x1f;
!       switch (arc_ashl_alg [arc_shift_context_idx ()][n].alg)
  	{
! 	case SHIFT_MOVE:
! 	  emit_move_insn (operands[0], operands[1]);
! 	  return;
! 
! 	case SHIFT_SWAP:
! 	  if (!TARGET_V2)
! 	    {
! 	      emit_insn (gen_andsi3_i (operands[0], operands[1],
! 				       GEN_INT (0xffff)));
! 	      emit_insn (gen_rotrsi2_cnt16 (operands[0], operands[0]));
! 	    }
! 	  else
! 	    emit_insn (gen_ashlsi2_cnt16 (operands[0], operands[1]));
! 	  n -= 16;
! 	  if (n == 0)
! 	    return;
! 	  operands[1] = operands[0];
! 	  /* FALL THRU */
! 
! 	case SHIFT_INLINE:
! 	  if (n <= 2)
! 	    {
! 	      emit_insn (gen_ashlsi3_cnt1 (operands[0], operands[1]));
! 	      if (n == 2)
! 		emit_insn (gen_ashlsi3_cnt1 (operands[0], operands[0]));
! 	    }
! 	  else
! 	    {
! 	      rtx zero = gen_reg_rtx (SImode);
! 	      emit_move_insn (zero, const0_rtx);
! 	      emit_insn (gen_add_shift (operands[0], operands[1],
! 					GEN_INT (3), zero));
! 	      for (n -= 3; n >= 3; n -= 3)
! 		emit_insn (gen_add_shift (operands[0], operands[0],
! 					  GEN_INT (3), zero));
! 	      if (n == 2)
! 		emit_insn (gen_add_shift (operands[0], operands[0],
! 					  const2_rtx, zero));
! 	      else if (n)
! 		emit_insn (gen_ashlsi3_cnt1 (operands[0], operands[0]));
! 	    }
! 	  return;
! 
! 	case SHIFT_AND_ROT:
! 	  emit_insn (gen_andsi3_i (operands[0], operands[1],
! 				   GEN_INT ((1 << (32 - n)) - 1)));
! 	  for (; n < 32; n++)
! 	    emit_insn (gen_rotrsi3_cnt1 (operands[0], operands[0]));
! 	  return;
! 
! 	case SHIFT_AND_SWAP_ROT:
! 	  emit_insn (gen_andsi3_i (operands[0], operands[1],
! 				   GEN_INT ((1 << (32 - n)) - 1)));
! 	  emit_insn (gen_rotrsi2_cnt16 (operands[0], operands[0]));
! 	  for (; n < 16; n++)
! 	    emit_insn (gen_rotrsi3_cnt1 (operands[0], operands[0]));
! 	  return;
! 
! 	case SHIFT_LOOP:
! 	  break;
! 
! 	default:
! 	  gcc_unreachable ();
  	}
!     }
! 
!   emit_insn (gen_ashlsi3_loop (operands[0], operands[1], operands[2]));
! }
! 
! /* Split SImode arithmetic right shift instruction.  */
! void
! arc_split_ashr (rtx *operands)
! {
!   if (CONST_INT_P (operands[2]))
!     {
!       int n = INTVAL (operands[2]) & 0x1f;
!       if (n <= 4)
  	{
! 	  if (n != 0)
  	    {
! 	      emit_insn (gen_ashrsi3_cnt1 (operands[0], operands[1]));
! 	      while (--n > 0)
! 		emit_insn (gen_ashrsi3_cnt1 (operands[0], operands[0]));
  	    }
+ 	  else
+ 	    emit_move_insn (operands[0], operands[1]);
+ 	  return;
  	}
!       else if (n >= 16 && n <= 18 && TARGET_SWAP)
  	{
! 	  emit_insn (gen_rotrsi2_cnt16 (operands[0], operands[1]));
! 	  emit_insn (gen_extendhisi2 (operands[0],
! 				      gen_lowpart (HImode, operands[0])));
! 	  while (--n >= 16)
! 	    emit_insn (gen_ashrsi3_cnt1 (operands[0], operands[0]));
! 	  return;
! 	}
!       else if (n == 30)
! 	{
! 	  rtx tmp = gen_reg_rtx (SImode);
! 	  emit_insn (gen_add_f (tmp, operands[1], operands[1]));
! 	  emit_insn (gen_sbc (operands[0], operands[0], operands[0]));
! 	  emit_insn (gen_addsi_compare_2 (tmp, tmp));
! 	  emit_insn (gen_adc (operands[0], operands[0], operands[0]));
! 	  return;
! 	}
!       else if (n == 31)
! 	{
! 	  emit_insn (gen_addsi_compare_2 (operands[1], operands[1]));
! 	  emit_insn (gen_sbc (operands[0], operands[0], operands[0]));
! 	  return;
! 	}
!     }
! 
!   emit_insn (gen_ashrsi3_loop (operands[0], operands[1], operands[2]));
! }
! 
! /* Split SImode logical right shift instruction.  */
! void
! arc_split_lshr (rtx *operands)
! {
!   if (CONST_INT_P (operands[2]))
!     {
!       int n = INTVAL (operands[2]) & 0x1f;
!       if (n <= 4)
! 	{
! 	  if (n != 0)
  	    {
! 	      emit_insn (gen_lshrsi3_cnt1 (operands[0], operands[1]));
! 	      while (--n > 0)
! 		emit_insn (gen_lshrsi3_cnt1 (operands[0], operands[0]));
  	    }
+ 	  else
+ 	    emit_move_insn (operands[0], operands[1]);
+ 	  return;
  	}
!       else if (n >= 16 && n <= 19 && TARGET_SWAP && TARGET_V2)
  	{
! 	  emit_insn (gen_lshrsi2_cnt16 (operands[0], operands[1]));
! 	  while (--n >= 16)
! 	    emit_insn (gen_lshrsi3_cnt1 (operands[0], operands[0]));
! 	  return;
! 	}
!       else if (n == 30)
! 	{
! 	  rtx tmp = gen_reg_rtx (SImode);
! 	  emit_insn (gen_add_f (tmp, operands[1], operands[1]));
! 	  emit_insn (gen_scc_ltu_cc_c (operands[0]));
! 	  emit_insn (gen_addsi_compare_2 (tmp, tmp));
! 	  emit_insn (gen_adc (operands[0], operands[0], operands[0]));
! 	  return;
! 	}
!       else if (n == 31)
! 	{
! 	  emit_insn (gen_addsi_compare_2 (operands[1], operands[1]));
! 	  emit_insn (gen_scc_ltu_cc_c (operands[0]));
! 	  return;
! 	}
!     }
! 
!   emit_insn (gen_lshrsi3_loop (operands[0], operands[1], operands[2]));
! }
! 
! /* Split SImode rotate left instruction.  */
! void
! arc_split_rotl (rtx *operands)
! {
!   if (CONST_INT_P (operands[2]))
!     {
!       int n = INTVAL (operands[2]) & 0x1f;
!       if (n <= 2)
! 	{
! 	  if (n != 0)
  	    {
! 	      emit_insn (gen_rotlsi3_cnt1 (operands[0], operands[1]));
! 	      if (n == 2)
! 		emit_insn (gen_rotlsi3_cnt1 (operands[0], operands[0]));
  	    }
+ 	  else
+ 	    emit_move_insn (operands[0], operands[1]);
+ 	  return;
  	}
!       else if (n >= 28)
  	{
! 	  emit_insn (gen_rotrsi3_cnt1 (operands[0], operands[1]));
! 	  while (++n < 32)
! 	    emit_insn (gen_rotrsi3_cnt1 (operands[0], operands[0]));
! 	  return;
! 	}
!       else if (n >= 13 && n <= 16 && TARGET_SWAP)
! 	{
! 	  emit_insn (gen_rotlsi2_cnt16 (operands[0], operands[1]));
! 	  while (++n <= 16)
! 	    emit_insn (gen_rotrsi3_cnt1 (operands[0], operands[0]));
! 	  return;
! 	}
!       else if (n == 17 && TARGET_SWAP)
! 	{
! 	  emit_insn (gen_rotlsi2_cnt16 (operands[0], operands[1]));
! 	  emit_insn (gen_rotlsi3_cnt1 (operands[0], operands[0]));
! 	  return;
! 	}
!       else if (n >= 16 || n == 12 || n == 14)
! 	{
! 	  emit_insn (gen_rotrsi3_loop (operands[0], operands[1],
! 				       GEN_INT (32 - n)));
! 	  return;
! 	}
!     }
  
!   emit_insn (gen_rotlsi3_loop (operands[0], operands[1], operands[2]));
! }
! 
! /* Split SImode rotate right instruction.  */
! void
! arc_split_rotr (rtx *operands)
! {
!   if (CONST_INT_P (operands[2]))
!     {
!       int n = INTVAL (operands[2]) & 0x1f;
!       if (n <= 4)
! 	{
! 	  if (n != 0)
  	    {
! 	      emit_insn (gen_rotrsi3_cnt1 (operands[0], operands[1]));
! 	      while (--n > 0)
! 		emit_insn (gen_rotrsi3_cnt1 (operands[0], operands[0]));
  	    }
+ 	  else
+ 	    emit_move_insn (operands[0], operands[1]);
+ 	  return;
+ 	}
+       else if (n == 15 && TARGET_SWAP)
+ 	{
+ 	  emit_insn (gen_rotrsi2_cnt16 (operands[0], operands[1]));
+ 	  emit_insn (gen_rotlsi3_cnt1 (operands[0], operands[0]));
+ 	  return;
+ 	}
+       else if (n >= 16 && n <= 19 && TARGET_SWAP)
+ 	{
+ 	  emit_insn (gen_rotrsi2_cnt16 (operands[0], operands[1]));
+ 	  while (--n >= 16)
+ 	    emit_insn (gen_rotrsi3_cnt1 (operands[0], operands[0]));
+ 	  return;
+ 	}
+       else if (n >= 30)
+ 	{
+ 	  emit_insn (gen_rotlsi3_cnt1 (operands[0], operands[1]));
+ 	  if (n == 31)
+ 	    emit_insn (gen_rotlsi3_cnt1 (operands[1], operands[1]));
+ 	  return;
+ 	}
+       else if (n >= 21 || n == 17 || n == 19)
+ 	{
+ 	  emit_insn (gen_rotrsi3_loop (operands[0], operands[1],
+ 				       GEN_INT (32 - n)));
+ 	  return;
  	}
      }
  
!   emit_insn (gen_rotrsi3_loop (operands[0], operands[1], operands[2]));
  }
  
  /* Nested function support.  */
*************** static int output_sdata = 0;
*** 4499,4506 ****
  
  /* Print operand X (an rtx) in assembler syntax to file FILE.
     CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
!    For `%' followed by punctuation, CODE is the punctuation and X is null.  */
! /* In final.cc:output_asm_insn:
      'l' : label
      'a' : address
      'c' : constant address if CONSTANT_ADDRESS_P
--- 4852,4859 ----
  
  /* Print operand X (an rtx) in assembler syntax to file FILE.
     CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
!    For `%' followed by punctuation, CODE is the punctuation and X is null.
!    In final.cc:output_asm_insn:
      'l' : label
      'a' : address
      'c' : constant address if CONSTANT_ADDRESS_P
*************** static int output_sdata = 0;
*** 4510,4525 ****
      'z': log2
      'M': log2(~x)
      'p': bit Position of lsb
!     's': size of bit field
!     '#': condbranch delay slot suffix
      '*': jump delay slot suffix
      '?' : nonjump-insn suffix for conditional execution or short instruction
-     '!' : jump / call suffix for conditional execution or short instruction
-     '`': fold constant inside unary o-perator, re-recognize, and emit.
      'd'
      'D'
      'R': Second word
!     'S': JLI instruction
      'j': used by mov instruction to properly emit jli related labels.
      'B': Branch comparison operand - suppress sda reference
      'H': Most significant word
--- 4863,4878 ----
      'z': log2
      'M': log2(~x)
      'p': bit Position of lsb
!     's': scalled immediate
!     'S': Scalled immediate, to be used in pair with 's'.
!     'N': Negative immediate, to be used in pair with 's'.
!     'x': size of bit field
      '*': jump delay slot suffix
      '?' : nonjump-insn suffix for conditional execution or short instruction
      'd'
      'D'
      'R': Second word
!     'J': JLI instruction
      'j': used by mov instruction to properly emit jli related labels.
      'B': Branch comparison operand - suppress sda reference
      'H': Most significant word
*************** static int output_sdata = 0;
*** 4529,4541 ****
      'V': cache bypass indicator for volatile
      'P'
      'F'
-     '^'
      'O': Operator
      'o': original symbol - no @ prepending.  */
  
  void
  arc_print_operand (FILE *file, rtx x, int code)
  {
    switch (code)
      {
      case 'Z':
--- 4882,4897 ----
      'V': cache bypass indicator for volatile
      'P'
      'F'
      'O': Operator
      'o': original symbol - no @ prepending.  */
  
  void
  arc_print_operand (FILE *file, rtx x, int code)
  {
+   HOST_WIDE_INT ival;
+   unsigned scalled = 0;
+   int sign = 1;
+ 
    switch (code)
      {
      case 'Z':
*************** arc_print_operand (FILE *file, rtx x, in
*** 4556,4564 ****
  
      case 'c':
        if (GET_CODE (x) == CONST_INT)
!         fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x) );
        else
!         output_operand_lossage ("invalid operands to %%c code");
  
        return;
  
--- 4912,4920 ----
  
      case 'c':
        if (GET_CODE (x) == CONST_INT)
! 	fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x) );
        else
! 	output_operand_lossage ("invalid operands to %%c code");
  
        return;
  
*************** arc_print_operand (FILE *file, rtx x, in
*** 4578,4583 ****
--- 4934,4989 ----
        return;
  
      case 's':
+       if (REG_P (x))
+ 	return;
+       if (!CONST_INT_P (x))
+ 	{
+ 	  output_operand_lossage ("invalid operand for %%s code");
+ 	  return;
+ 	}
+       ival = INTVAL (x);
+       if ((ival & 0x07) == 0)
+ 	  scalled = 3;
+       else if ((ival & 0x03) == 0)
+ 	  scalled = 2;
+       else if ((ival & 0x01) == 0)
+ 	  scalled = 1;
+ 
+       if (scalled)
+ 	asm_fprintf (file, "%d", scalled);
+       return;
+ 
+     case 'N':
+       if (REG_P (x))
+ 	{
+ 	  output_operand_lossage ("invalid operand for %%N code");
+ 	  return;
+ 	}
+       sign = -1;
+       /* fall through */
+     case 'S':
+       if (REG_P (x))
+ 	{
+ 	  asm_fprintf (file, "%s", reg_names [REGNO (x)]);
+ 	  return;
+ 	}
+       if (!CONST_INT_P (x))
+ 	{
+ 	  output_operand_lossage ("invalid operand for %%N or %%S code");
+ 	  return;
+ 	}
+       ival = sign * INTVAL (x);
+       if ((ival & 0x07) == 0)
+ 	  scalled = 3;
+       else if ((ival & 0x03) == 0)
+ 	  scalled = 2;
+       else if ((ival & 0x01) == 0)
+ 	  scalled = 1;
+ 
+       asm_fprintf (file, "%wd", (ival >> scalled));
+       return;
+ 
+     case 'x':
        if (GET_CODE (x) == CONST_INT)
  	{
  	  HOST_WIDE_INT i = INTVAL (x);
*************** arc_print_operand (FILE *file, rtx x, in
*** 4588,4635 ****
  	output_operand_lossage ("invalid operand to %%s code");
        return;
  
-     case '#' :
-       /* Conditional branches depending on condition codes.
- 	 Note that this is only for branches that were known to depend on
- 	 condition codes before delay slot scheduling;
- 	 out-of-range brcc / bbit expansions should use '*'.
- 	 This distinction is important because of the different
- 	 allowable delay slot insns and the output of the delay suffix
- 	 for TARGET_AT_DBR_COND_EXEC.  */
      case '*' :
        /* Unconditional branches / branches not depending on condition codes.
  	 This could also be a CALL_INSN.
  	 Output the appropriate delay slot suffix.  */
        if (final_sequence && final_sequence->len () != 1)
  	{
- 	  rtx_insn *jump = final_sequence->insn (0);
  	  rtx_insn *delay = final_sequence->insn (1);
  
  	  /* For TARGET_PAD_RETURN we might have grabbed the delay insn.  */
  	  if (delay->deleted ())
  	    return;
! 	  if (JUMP_P (jump) && INSN_ANNULLED_BRANCH_P (jump))
! 	    fputs (INSN_FROM_TARGET_P (delay) ? ".d"
! 		   : TARGET_AT_DBR_CONDEXEC && code == '#' ? ".d"
! 		   : get_attr_type (jump) == TYPE_RETURN && code == '#' ? ""
! 		   : ".nd",
! 		   file);
! 	  else
! 	    fputs (".d", file);
  	}
        return;
      case '?' : /* with leading "." */
      case '!' : /* without leading "." */
-       /* This insn can be conditionally executed.  See if the ccfsm machinery
- 	 says it should be conditionalized.
- 	 If it shouldn't, we'll check the compact attribute if this insn
- 	 has a short variant, which may be used depending on code size and
- 	 alignment considerations.  */
        if (current_insn_predicate)
- 	arc_ccfsm_current.cc
- 	  = get_arc_condition_code (current_insn_predicate);
-       if (ARC_CCFSM_COND_EXEC_P (&arc_ccfsm_current))
  	{
  	  /* Is this insn in a delay slot sequence?  */
  	  if (!final_sequence || XVECLEN (final_sequence, 0) < 2
  	      || current_insn_predicate
--- 4994,5019 ----
  	output_operand_lossage ("invalid operand to %%s code");
        return;
  
      case '*' :
        /* Unconditional branches / branches not depending on condition codes.
  	 This could also be a CALL_INSN.
  	 Output the appropriate delay slot suffix.  */
        if (final_sequence && final_sequence->len () != 1)
  	{
  	  rtx_insn *delay = final_sequence->insn (1);
  
  	  /* For TARGET_PAD_RETURN we might have grabbed the delay insn.  */
  	  if (delay->deleted ())
  	    return;
! 	  fputs (".d", file);
  	}
        return;
+ 
      case '?' : /* with leading "." */
      case '!' : /* without leading "." */
        if (current_insn_predicate)
  	{
+ 	  int cc = get_arc_condition_code (current_insn_predicate);
  	  /* Is this insn in a delay slot sequence?  */
  	  if (!final_sequence || XVECLEN (final_sequence, 0) < 2
  	      || current_insn_predicate
*************** arc_print_operand (FILE *file, rtx x, in
*** 4639,4657 ****
  	      /* This insn isn't in a delay slot sequence, or conditionalized
  		 independently of its position in a delay slot.  */
  	      fprintf (file, "%s%s",
! 		       code == '?' ? "." : "",
! 		       arc_condition_codes[arc_ccfsm_current.cc]);
  	      /* If this is a jump, there are still short variants.  However,
  		 only beq_s / bne_s have the same offset range as b_s,
  		 and the only short conditional returns are jeq_s and jne_s.  */
  	      if (code == '!'
! 		  && (arc_ccfsm_current.cc == ARC_CC_EQ
! 		      || arc_ccfsm_current.cc == ARC_CC_NE
! 		      || 0 /* FIXME: check if branch in 7 bit range.  */))
  		output_short_suffix (file);
  	    }
  	  else if (code == '!') /* Jump with delay slot.  */
! 	    fputs (arc_condition_codes[arc_ccfsm_current.cc], file);
  	  else /* An Instruction in a delay slot of a jump or call.  */
  	    {
  	      rtx jump = XVECEXP (final_sequence, 0, 0);
--- 5023,5038 ----
  	      /* This insn isn't in a delay slot sequence, or conditionalized
  		 independently of its position in a delay slot.  */
  	      fprintf (file, "%s%s",
! 		       code == '?' ? "." : "", arc_condition_codes[cc]);
  	      /* If this is a jump, there are still short variants.  However,
  		 only beq_s / bne_s have the same offset range as b_s,
  		 and the only short conditional returns are jeq_s and jne_s.  */
  	      if (code == '!'
! 		  && (cc == ARC_CC_EQ || cc == ARC_CC_NE))
  		output_short_suffix (file);
  	    }
  	  else if (code == '!') /* Jump with delay slot.  */
! 	    fputs (arc_condition_codes[cc], file);
  	  else /* An Instruction in a delay slot of a jump or call.  */
  	    {
  	      rtx jump = XVECEXP (final_sequence, 0, 0);
*************** arc_print_operand (FILE *file, rtx x, in
*** 4664,4690 ****
  		  if (INSN_FROM_TARGET_P (insn))
  		    fprintf (file, "%s%s",
  			     code == '?' ? "." : "",
! 			     arc_condition_codes[ARC_INVERSE_CONDITION_CODE (arc_ccfsm_current.cc)]);
  		  else
  		    fprintf (file, "%s%s",
  			     code == '?' ? "." : "",
! 			     arc_condition_codes[arc_ccfsm_current.cc]);
! 		  if (arc_ccfsm_current.state == 5)
! 		    arc_ccfsm_current.state = 0;
  		}
  	      else
! 		/* This insn is executed for either path, so don't
! 		   conditionalize it at all.  */
! 		output_short_suffix (file);
! 
  	    }
  	}
        else
  	output_short_suffix (file);
        return;
!     case'`':
!       /* FIXME: fold constant inside unary operator, re-recognize, and emit.  */
!       gcc_unreachable ();
      case 'd' :
        fputs (arc_condition_codes[get_arc_condition_code (x)], file);
        return;
--- 5045,5068 ----
  		  if (INSN_FROM_TARGET_P (insn))
  		    fprintf (file, "%s%s",
  			     code == '?' ? "." : "",
! 			     arc_condition_codes[ARC_INVERSE_CONDITION_CODE (cc)]);
  		  else
  		    fprintf (file, "%s%s",
  			     code == '?' ? "." : "",
! 			     arc_condition_codes[cc]);
  		}
  	      else
! 		{
! 		  /* This insn is executed for either path, so don't
! 		     conditionalize it at all.  */
! 		  output_short_suffix (file);
! 		}
  	    }
  	}
        else
  	output_short_suffix (file);
        return;
! 
      case 'd' :
        fputs (arc_condition_codes[get_arc_condition_code (x)], file);
        return;
*************** arc_print_operand (FILE *file, rtx x, in
*** 4736,4742 ****
  	output_operand_lossage ("invalid operand to %%R code");
        return;
      case 'j':
!     case 'S' :
        if (GET_CODE (x) == SYMBOL_REF
  	  && arc_is_jli_call_p (x))
  	{
--- 5114,5120 ----
  	output_operand_lossage ("invalid operand to %%R code");
        return;
      case 'j':
!     case 'J' :
        if (GET_CODE (x) == SYMBOL_REF
  	  && arc_is_jli_call_p (x))
  	{
*************** arc_print_operand (FILE *file, rtx x, in
*** 4899,4912 ****
      case 'F':
        fputs (reg_names[REGNO (x)]+1, file);
        return;
-     case '^':
- 	/* This punctuation character is needed because label references are
- 	printed in the output template using %l. This is a front end
- 	character, and when we want to emit a '@' before it, we have to use
- 	this '^'.  */
  
- 	fputc('@',file);
- 	return;
      case 'O':
        /* Output an operator.  */
        switch (GET_CODE (x))
--- 5277,5283 ----
*************** arc_print_operand (FILE *file, rtx x, in
*** 4954,4963 ****
  	  return;
  	}
        break;
!     case '&':
!       if (TARGET_ANNOTATE_ALIGN)
! 	fprintf (file, "; unalign: %d", cfun->machine->unalign);
!       return;
      case '+':
        if (TARGET_V2)
  	fputs ("m", file);
--- 5325,5331 ----
  	  return;
  	}
        break;
! 
      case '+':
        if (TARGET_V2)
  	fputs ("m", file);
*************** arc_print_operand_address (FILE *file ,
*** 5128,5631 ****
      }
  }
  
- /* Conditional execution support.
- 
-    This is based on the ARM port but for now is much simpler.
- 
-    A finite state machine takes care of noticing whether or not instructions
-    can be conditionally executed, and thus decrease execution time and code
-    size by deleting branch instructions.  The fsm is controlled by
-    arc_ccfsm_advance (called by arc_final_prescan_insn), and controls the
-    actions of PRINT_OPERAND.  The patterns in the .md file for the branch
-    insns also have a hand in this.  */
- /* The way we leave dealing with non-anulled or annull-false delay slot
-    insns to the consumer is awkward.  */
- 
- /* The state of the fsm controlling condition codes are:
-    0: normal, do nothing special
-    1: don't output this insn
-    2: don't output this insn
-    3: make insns conditional
-    4: make insns conditional
-    5: make insn conditional (only for outputting anulled delay slot insns)
- 
-    special value for cfun->machine->uid_ccfsm_state:
-    6: return with but one insn before it since function start / call
- 
-    State transitions (state->state by whom, under what condition):
-    0 -> 1 arc_ccfsm_advance, if insn is a conditional branch skipping over
-           some instructions.
-    0 -> 2 arc_ccfsm_advance, if insn is a conditional branch followed
-           by zero or more non-jump insns and an unconditional branch with
- 	  the same target label as the condbranch.
-    1 -> 3 branch patterns, after having not output the conditional branch
-    2 -> 4 branch patterns, after having not output the conditional branch
-    0 -> 5 branch patterns, for anulled delay slot insn.
-    3 -> 0 ASM_OUTPUT_INTERNAL_LABEL, if the `target' label is reached
-           (the target label has CODE_LABEL_NUMBER equal to
- 	  arc_ccfsm_target_label).
-    4 -> 0 arc_ccfsm_advance, if `target' unconditional branch is reached
-    3 -> 1 arc_ccfsm_advance, finding an 'else' jump skipping over some insns.
-    5 -> 0 when outputting the delay slot insn
- 
-    If the jump clobbers the conditions then we use states 2 and 4.
- 
-    A similar thing can be done with conditional return insns.
- 
-    We also handle separating branches from sets of the condition code.
-    This is done here because knowledge of the ccfsm state is required,
-    we may not be outputting the branch.  */
- 
- /* arc_final_prescan_insn calls arc_ccfsm_advance to adjust arc_ccfsm_current,
-    before letting final output INSN.  */
- 
- static void
- arc_ccfsm_advance (rtx_insn *insn, struct arc_ccfsm *state)
- {
-   /* BODY will hold the body of INSN.  */
-   rtx body;
- 
-   /* This will be 1 if trying to repeat the trick (ie: do the `else' part of
-      an if/then/else), and things need to be reversed.  */
-   int reverse = 0;
- 
-   /* If we start with a return insn, we only succeed if we find another one.  */
-   int seeking_return = 0;
- 
-   /* START_INSN will hold the insn from where we start looking.  This is the
-      first insn after the following code_label if REVERSE is true.  */
-   rtx_insn *start_insn = insn;
- 
-   /* Type of the jump_insn. Brcc insns don't affect ccfsm changes,
-      since they don't rely on a cmp preceding the.  */
-   enum attr_type jump_insn_type;
- 
-   /* Allow -mdebug-ccfsm to turn this off so we can see how well it does.
-      We can't do this in macro FINAL_PRESCAN_INSN because its called from
-      final_scan_insn which has `optimize' as a local.  */
-   if (optimize < 2 || TARGET_NO_COND_EXEC)
-     return;
- 
-   /* Ignore notes and labels.  */
-   if (!INSN_P (insn))
-     return;
-   body = PATTERN (insn);
-   /* If in state 4, check if the target branch is reached, in order to
-      change back to state 0.  */
-   if (state->state == 4)
-     {
-       if (insn == state->target_insn)
- 	{
- 	  state->target_insn = NULL;
- 	  state->state = 0;
- 	}
-       return;
-     }
- 
-   /* If in state 3, it is possible to repeat the trick, if this insn is an
-      unconditional branch to a label, and immediately following this branch
-      is the previous target label which is only used once, and the label this
-      branch jumps to is not too far off.  Or in other words "we've done the
-      `then' part, see if we can do the `else' part."  */
-   if (state->state == 3)
-     {
-       if (simplejump_p (insn))
- 	{
- 	  start_insn = next_nonnote_insn (start_insn);
- 	  if (GET_CODE (start_insn) == BARRIER)
- 	    {
- 	      /* ??? Isn't this always a barrier?  */
- 	      start_insn = next_nonnote_insn (start_insn);
- 	    }
- 	  if (GET_CODE (start_insn) == CODE_LABEL
- 	      && CODE_LABEL_NUMBER (start_insn) == state->target_label
- 	      && LABEL_NUSES (start_insn) == 1)
- 	    reverse = TRUE;
- 	  else
- 	    return;
- 	}
-       else if (GET_CODE (body) == SIMPLE_RETURN)
- 	{
- 	  start_insn = next_nonnote_insn (start_insn);
- 	  if (GET_CODE (start_insn) == BARRIER)
- 	    start_insn = next_nonnote_insn (start_insn);
- 	  if (GET_CODE (start_insn) == CODE_LABEL
- 	      && CODE_LABEL_NUMBER (start_insn) == state->target_label
- 	      && LABEL_NUSES (start_insn) == 1)
- 	    {
- 	      reverse = TRUE;
- 	      seeking_return = 1;
- 	    }
- 	  else
- 	    return;
- 	}
-       else
- 	return;
-     }
- 
-   if (GET_CODE (insn) != JUMP_INSN
-       || GET_CODE (PATTERN (insn)) == ADDR_VEC
-       || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC)
-     return;
- 
-  /* We can't predicate BRCC or loop ends.
-     Also, when generating PIC code, and considering a medium range call,
-     we can't predicate the call.  */
-   jump_insn_type = get_attr_type (insn);
-   if (jump_insn_type == TYPE_BRCC
-       || jump_insn_type == TYPE_BRCC_NO_DELAY_SLOT
-       || jump_insn_type == TYPE_LOOP_END
-       || (jump_insn_type == TYPE_CALL && !get_attr_predicable (insn)))
-     return;
- 
-   /* This jump might be paralleled with a clobber of the condition codes,
-      the jump should always come first.  */
-   if (GET_CODE (body) == PARALLEL && XVECLEN (body, 0) > 0)
-     body = XVECEXP (body, 0, 0);
- 
-   if (reverse
-       || (GET_CODE (body) == SET && GET_CODE (SET_DEST (body)) == PC
- 	  && GET_CODE (SET_SRC (body)) == IF_THEN_ELSE))
-     {
-       int insns_skipped = 0, fail = FALSE, succeed = FALSE;
-       /* Flag which part of the IF_THEN_ELSE is the LABEL_REF.  */
-       int then_not_else = TRUE;
-       /* Nonzero if next insn must be the target label.  */
-       int next_must_be_target_label_p;
-       rtx_insn *this_insn = start_insn;
-       rtx label = 0;
- 
-       /* Register the insn jumped to.  */
-       if (reverse)
- 	{
- 	  if (!seeking_return)
- 	    label = XEXP (SET_SRC (body), 0);
- 	}
-       else if (GET_CODE (XEXP (SET_SRC (body), 1)) == LABEL_REF)
- 	label = XEXP (XEXP (SET_SRC (body), 1), 0);
-       else if (GET_CODE (XEXP (SET_SRC (body), 2)) == LABEL_REF)
- 	{
- 	  label = XEXP (XEXP (SET_SRC (body), 2), 0);
- 	  then_not_else = FALSE;
- 	}
-       else if (GET_CODE (XEXP (SET_SRC (body), 1)) == SIMPLE_RETURN)
- 	seeking_return = 1;
-       else if (GET_CODE (XEXP (SET_SRC (body), 2)) == SIMPLE_RETURN)
- 	{
- 	  seeking_return = 1;
- 	  then_not_else = FALSE;
- 	}
-       else
- 	gcc_unreachable ();
- 
-       /* If this is a non-annulled branch with a delay slot, there is
- 	 no need to conditionalize the delay slot.  */
-       if ((GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (insn)))) == SEQUENCE)
- 	  && state->state == 0 && !INSN_ANNULLED_BRANCH_P (insn))
- 	{
- 	  this_insn = NEXT_INSN (this_insn);
- 	}
-       /* See how many insns this branch skips, and what kind of insns.  If all
- 	 insns are okay, and the label or unconditional branch to the same
- 	 label is not too far away, succeed.  */
-       for (insns_skipped = 0, next_must_be_target_label_p = FALSE;
- 	   !fail && !succeed && insns_skipped < MAX_INSNS_SKIPPED;
- 	   insns_skipped++)
- 	{
- 	  rtx scanbody;
- 
- 	  this_insn = next_nonnote_insn (this_insn);
- 	  if (!this_insn)
- 	    break;
- 
- 	  if (next_must_be_target_label_p)
- 	    {
- 	      if (GET_CODE (this_insn) == BARRIER)
- 		continue;
- 	      if (GET_CODE (this_insn) == CODE_LABEL
- 		  && this_insn == label)
- 		{
- 		  state->state = 1;
- 		  succeed = TRUE;
- 		}
- 	      else
- 		fail = TRUE;
- 	      break;
- 	    }
- 
- 	  switch (GET_CODE (this_insn))
- 	    {
- 	    case CODE_LABEL:
- 	      /* Succeed if it is the target label, otherwise fail since
- 		 control falls in from somewhere else.  */
- 	      if (this_insn == label)
- 		{
- 		  state->state = 1;
- 		  succeed = TRUE;
- 		}
- 	      else
- 		fail = TRUE;
- 	      break;
- 
- 	    case BARRIER:
- 	      /* Succeed if the following insn is the target label.
- 		 Otherwise fail.
- 		 If return insns are used then the last insn in a function
- 		 will be a barrier.  */
- 	      next_must_be_target_label_p = TRUE;
- 	      break;
- 
- 	    case CALL_INSN:
- 	      /* Can handle a call insn if there are no insns after it.
- 		 IE: The next "insn" is the target label.  We don't have to
- 		 worry about delay slots as such insns are SEQUENCE's inside
- 		 INSN's.  ??? It is possible to handle such insns though.  */
- 	      if (get_attr_cond (this_insn) == COND_CANUSE)
- 		next_must_be_target_label_p = TRUE;
- 	      else
- 		fail = TRUE;
- 	      break;
- 
- 	    case JUMP_INSN:
- 	      scanbody = PATTERN (this_insn);
- 
- 	      /* If this is an unconditional branch to the same label, succeed.
- 		 If it is to another label, do nothing.  If it is conditional,
- 		 fail.  */
- 	      /* ??? Probably, the test for the SET and the PC are
- 		 unnecessary.  */
- 
- 	      if (GET_CODE (scanbody) == SET
- 		  && GET_CODE (SET_DEST (scanbody)) == PC)
- 		{
- 		  if (GET_CODE (SET_SRC (scanbody)) == LABEL_REF
- 		      && XEXP (SET_SRC (scanbody), 0) == label && !reverse)
- 		    {
- 		      state->state = 2;
- 		      succeed = TRUE;
- 		    }
- 		  else if (GET_CODE (SET_SRC (scanbody)) == IF_THEN_ELSE)
- 		    fail = TRUE;
- 		  else if (get_attr_cond (this_insn) != COND_CANUSE)
- 		    fail = TRUE;
- 		}
- 	      else if (GET_CODE (scanbody) == SIMPLE_RETURN
- 		       && seeking_return)
- 		{
- 		  state->state = 2;
- 		  succeed = TRUE;
- 		}
- 	      else if (GET_CODE (scanbody) == PARALLEL)
- 		{
- 		  if (get_attr_cond (this_insn) != COND_CANUSE)
- 		    fail = TRUE;
- 		}
- 	      break;
- 
- 	    case INSN:
- 	      scanbody = PATTERN (this_insn);
- 
- 	      /* We can only do this with insns that can use the condition
- 		 codes (and don't set them).  */
- 	      if (GET_CODE (scanbody) == SET
- 		  || GET_CODE (scanbody) == PARALLEL)
- 		{
- 		  if (get_attr_cond (this_insn) != COND_CANUSE)
- 		    fail = TRUE;
- 		}
- 	      /* We can't handle other insns like sequences.  */
- 	      else
- 		fail = TRUE;
- 	      break;
- 
- 	    default:
- 	      break;
- 	    }
- 	}
- 
-       if (succeed)
- 	{
- 	  if ((!seeking_return) && (state->state == 1 || reverse))
- 	    state->target_label = CODE_LABEL_NUMBER (label);
- 	  else if (seeking_return || state->state == 2)
- 	    {
- 	      while (this_insn && GET_CODE (PATTERN (this_insn)) == USE)
- 		{
- 		  this_insn = next_nonnote_insn (this_insn);
- 
- 		  gcc_assert (!this_insn ||
- 			      (GET_CODE (this_insn) != BARRIER
- 			       && GET_CODE (this_insn) != CODE_LABEL));
- 		}
- 	      if (!this_insn)
- 		{
- 		  /* Oh dear! we ran off the end, give up.  */
- 		  extract_insn_cached (insn);
- 		  state->state = 0;
- 		  state->target_insn = NULL;
- 		  return;
- 		}
- 	      state->target_insn = this_insn;
- 	    }
- 	  else
- 	    gcc_unreachable ();
- 
- 	  /* If REVERSE is true, ARM_CURRENT_CC needs to be inverted from
- 	     what it was.  */
- 	  if (!reverse)
- 	    {
- 	      state->cond = XEXP (SET_SRC (body), 0);
- 	      state->cc = get_arc_condition_code (XEXP (SET_SRC (body), 0));
- 	    }
- 
- 	  if (reverse || then_not_else)
- 	    state->cc = ARC_INVERSE_CONDITION_CODE (state->cc);
- 	}
- 
-       /* Restore recog_operand.  Getting the attributes of other insns can
- 	 destroy this array, but final.cc assumes that it remains intact
- 	 across this call; since the insn has been recognized already we
- 	 call insn_extract direct.  */
-       extract_insn_cached (insn);
-     }
- }
- 
- /* Record that we are currently outputting label NUM with prefix PREFIX.
-    It it's the label we're looking for, reset the ccfsm machinery.
- 
-    Called from ASM_OUTPUT_INTERNAL_LABEL.  */
- 
- static void
- arc_ccfsm_at_label (const char *prefix, int num, struct arc_ccfsm *state)
- {
-   if (state->state == 3 && state->target_label == num
-       && !strcmp (prefix, "L"))
-     {
-       state->state = 0;
-       state->target_insn = NULL;
-     }
- }
- 
- /* We are considering a conditional branch with the condition COND.
-    Check if we want to conditionalize a delay slot insn, and if so modify
-    the ccfsm state accordingly.
-    REVERSE says branch will branch when the condition is false.  */
- void
- arc_ccfsm_record_condition (rtx cond, bool reverse, rtx_insn *jump,
- 			    struct arc_ccfsm *state)
- {
-   rtx_insn *seq_insn = NEXT_INSN (PREV_INSN (jump));
-   if (!state)
-     state = &arc_ccfsm_current;
- 
-   gcc_assert (state->state == 0);
-   if (seq_insn != jump)
-     {
-       rtx insn = XVECEXP (PATTERN (seq_insn), 0, 1);
- 
-       if (!as_a<rtx_insn *> (insn)->deleted ()
- 	  && INSN_ANNULLED_BRANCH_P (jump)
- 	  && (TARGET_AT_DBR_CONDEXEC || INSN_FROM_TARGET_P (insn)))
- 	{
- 	  state->cond = cond;
- 	  state->cc = get_arc_condition_code (cond);
- 	  if (!reverse)
- 	    arc_ccfsm_current.cc
- 	      = ARC_INVERSE_CONDITION_CODE (state->cc);
- 	  rtx pat = PATTERN (insn);
- 	  if (GET_CODE (pat) == COND_EXEC)
- 	    gcc_assert ((INSN_FROM_TARGET_P (insn)
- 			 ? ARC_INVERSE_CONDITION_CODE (state->cc) : state->cc)
- 			== get_arc_condition_code (XEXP (pat, 0)));
- 	  else
- 	    state->state = 5;
- 	}
-     }
- }
- 
- /* Update *STATE as we would when we emit INSN.  */
- 
- static void
- arc_ccfsm_post_advance (rtx_insn *insn, struct arc_ccfsm *state)
- {
-   enum attr_type type;
- 
-   if (LABEL_P (insn))
-     arc_ccfsm_at_label ("L", CODE_LABEL_NUMBER (insn), state);
-   else if (JUMP_P (insn)
- 	   && GET_CODE (PATTERN (insn)) != ADDR_VEC
- 	   && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
- 	   && ((type = get_attr_type (insn)) == TYPE_BRANCH
- 	       || ((type == TYPE_UNCOND_BRANCH
- 		    || type == TYPE_RETURN)
- 		   && ARC_CCFSM_BRANCH_DELETED_P (state))))
-     {
-       if (ARC_CCFSM_BRANCH_DELETED_P (state))
- 	ARC_CCFSM_RECORD_BRANCH_DELETED (state);
-       else
- 	{
- 	  rtx src = SET_SRC (PATTERN (insn));
- 	  arc_ccfsm_record_condition (XEXP (src, 0), XEXP (src, 1) == pc_rtx,
- 				      insn, state);
- 	}
-     }
-   else if (arc_ccfsm_current.state == 5)
-     arc_ccfsm_current.state = 0;
- }
- 
- /* Return true if the current insn, which is a conditional branch, is to be
-    deleted.  */
- 
- bool
- arc_ccfsm_branch_deleted_p (void)
- {
-   return ARC_CCFSM_BRANCH_DELETED_P (&arc_ccfsm_current);
- }
- 
- /* Record a branch isn't output because subsequent insns can be
-    conditionalized.  */
- 
- void
- arc_ccfsm_record_branch_deleted (void)
- {
-   ARC_CCFSM_RECORD_BRANCH_DELETED (&arc_ccfsm_current);
- }
- 
- /* During insn output, indicate if the current insn is predicated.  */
- 
- bool
- arc_ccfsm_cond_exec_p (void)
- {
-   return (cfun->machine->prescan_initialized
- 	  && ARC_CCFSM_COND_EXEC_P (&arc_ccfsm_current));
- }
- 
- /* When deciding if an insn should be output short, we want to know something
-    about the following insns:
-    - if another insn follows which we know we can output as a short insn
-      before an alignment-sensitive point, we can output this insn short:
-      the decision about the eventual alignment can be postponed.
-    - if a to-be-aligned label comes next, we should output this insn such
-      as to get / preserve 4-byte alignment.
-    - if a likely branch without delay slot insn, or a call with an immediately
-      following short insn comes next, we should out output this insn such as to
-      get / preserve 2 mod 4 unalignment.
-    - do the same for a not completely unlikely branch with a short insn
-      following before any other branch / label.
-    - in order to decide if we are actually looking at a branch, we need to
-      call arc_ccfsm_advance.
-    - in order to decide if we are looking at a short insn, we should know
-      if it is conditionalized.  To a first order of approximation this is
-      the case if the state from arc_ccfsm_advance from before this insn
-      indicates the insn is conditionalized.  However, a further refinement
-      could be to not conditionalize an insn if the destination register(s)
-      is/are dead in the non-executed case.  */
  /* Return non-zero if INSN should be output as a short insn.  UNALIGN is
     zero if the current insn is aligned to a 4-byte-boundary, two otherwise.
     If CHECK_ATTR is greater than 0, check the iscompact attribute first.  */
  
  static int
! arc_verify_short (rtx_insn *insn, int, int check_attr)
  {
    enum attr_iscompact iscompact;
  
--- 5496,5507 ----
      }
  }
  
  /* Return non-zero if INSN should be output as a short insn.  UNALIGN is
     zero if the current insn is aligned to a 4-byte-boundary, two otherwise.
     If CHECK_ATTR is greater than 0, check the iscompact attribute first.  */
  
  static int
! arc_verify_short (rtx_insn *insn, int check_attr)
  {
    enum attr_iscompact iscompact;
  
*************** arc_verify_short (rtx_insn *insn, int, i
*** 5640,5647 ****
  }
  
  /* When outputting an instruction (alternative) that can potentially be short,
!    output the short suffix if the insn is in fact short, and update
!    cfun->machine->unalign accordingly.  */
  
  static void
  output_short_suffix (FILE *file)
--- 5516,5522 ----
  }
  
  /* When outputting an instruction (alternative) that can potentially be short,
!    output the short suffix if the insn is in fact short.  */
  
  static void
  output_short_suffix (FILE *file)
*************** output_short_suffix (FILE *file)
*** 5650,5659 ****
    if (!insn)
      return;
  
!   if (arc_verify_short (insn, cfun->machine->unalign, 1))
      {
        fprintf (file, "_s");
-       cfun->machine->unalign ^= 2;
      }
    /* Restore recog_operand.  */
    extract_insn_cached (insn);
--- 5525,5533 ----
    if (!insn)
      return;
  
!   if (arc_verify_short (insn, 1))
      {
        fprintf (file, "_s");
      }
    /* Restore recog_operand.  */
    extract_insn_cached (insn);
*************** arc_final_prescan_insn (rtx_insn *insn,
*** 5667,5680 ****
  {
    if (TARGET_DUMPISIZE)
      fprintf (asm_out_file, "\n; at %04x\n", INSN_ADDRESSES (INSN_UID (insn)));
- 
-   if (!cfun->machine->prescan_initialized)
-     {
-       /* Clear lingering state from branch shortening.  */
-       memset (&arc_ccfsm_current, 0, sizeof arc_ccfsm_current);
-       cfun->machine->prescan_initialized = 1;
-     }
-   arc_ccfsm_advance (insn, &arc_ccfsm_current);
  }
  
  /* Given FROM and TO register numbers, say whether this elimination is allowed.
--- 5541,5546 ----
*************** arc_encode_section_info (tree decl, rtx
*** 5782,5788 ****
  
        SYMBOL_REF_FLAGS (symbol) = flags;
      }
!   else if (TREE_CODE (decl) == VAR_DECL)
      {
        rtx symbol = XEXP (rtl, 0);
  
--- 5648,5654 ----
  
        SYMBOL_REF_FLAGS (symbol) = flags;
      }
!   else if (VAR_P (decl))
      {
        rtx symbol = XEXP (rtl, 0);
  
*************** arc_encode_section_info (tree decl, rtx
*** 5807,5814 ****
  
  static void arc_internal_label (FILE *stream, const char *prefix, unsigned long labelno)
  {
-   if (cfun)
-     arc_ccfsm_at_label (prefix, labelno, &arc_ccfsm_current);
    default_internal_label (stream, prefix, labelno);
  }
  
--- 5673,5678 ----
*************** arc_rtx_costs (rtx x, machine_mode mode,
*** 5938,5944 ****
      case CONST:
      case LABEL_REF:
      case SYMBOL_REF:
!       *total = speed ? COSTS_N_INSNS (1) : COSTS_N_INSNS (4);
        return true;
  
      case CONST_DOUBLE:
--- 5802,5808 ----
      case CONST:
      case LABEL_REF:
      case SYMBOL_REF:
!       *total = speed ? COSTS_N_INSNS (1) : COSTS_N_BYTES (4);
        return true;
  
      case CONST_DOUBLE:
*************** arc_rtx_costs (rtx x, machine_mode mode,
*** 5960,5987 ****
         If we need more than 12 insns to do a multiply, then go out-of-line,
         since the call overhead will be < 10% of the cost of the multiply.  */
      case ASHIFT:
      case ASHIFTRT:
      case LSHIFTRT:
        if (TARGET_BARREL_SHIFTER)
  	{
! 	  if (CONSTANT_P (XEXP (x, 0)))
  	    {
! 	      *total += rtx_cost (XEXP (x, 1), mode, (enum rtx_code) code,
  				  0, speed);
  	      return true;
  	    }
- 	  *total = COSTS_N_INSNS (1);
  	}
        else if (GET_CODE (XEXP (x, 1)) != CONST_INT)
! 	*total = COSTS_N_INSNS (16);
        else
  	{
! 	  *total = COSTS_N_INSNS (INTVAL (XEXP ((x), 1)));
! 	  /* ??? want_to_gcse_p can throw negative shift counts at us,
! 	     and then panics when it gets a negative cost as result.
! 	     Seen for gcc.c-torture/compile/20020710-1.c -Os .  */
! 	  if (*total < 0)
! 	    *total = 0;
  	}
        return false;
  
--- 5824,5888 ----
         If we need more than 12 insns to do a multiply, then go out-of-line,
         since the call overhead will be < 10% of the cost of the multiply.  */
      case ASHIFT:
+       if (mode == DImode)
+ 	{
+ 	  if (XEXP (x, 1) == const1_rtx)
+ 	    {
+ 	      *total += rtx_cost (XEXP (x, 0), mode, ASHIFT, 0, speed)
+ 			+ COSTS_N_INSNS (2);
+ 	      return true;
+ 	    }
+ 	  return false;
+ 	}
+       if (TARGET_BARREL_SHIFTER)
+ 	{
+ 	  *total = COSTS_N_INSNS (1);
+ 	  if (CONST_INT_P (XEXP (x, 1)))
+ 	    {
+ 	      *total += rtx_cost (XEXP (x, 0), mode, ASHIFT, 0, speed);
+ 	      return true;
+ 	    }
+ 	}
+       else if (CONST_INT_P (XEXP (x, 1)))
+ 	{
+ 	  unsigned int n = INTVAL (XEXP (x, 1)) & 0x1f;
+ 	  *total = arc_ashl_alg[arc_shift_context_idx ()][n].cost
+ 		   + rtx_cost (XEXP (x, 0), mode, ASHIFT, 0, speed);
+ 	  return true;
+ 	}
+       else
+ 	/* Variable shift loop takes 2 * n + 2 cycles.  */
+ 	*total = speed ? COSTS_N_INSNS (64) : COSTS_N_INSNS (4);
+       return false;
+ 
      case ASHIFTRT:
      case LSHIFTRT:
+     case ROTATE:
+     case ROTATERT:
+       if (mode == DImode)
+ 	return false;
        if (TARGET_BARREL_SHIFTER)
  	{
! 	  *total = COSTS_N_INSNS (1);
! 	  if (CONSTANT_P (XEXP (x, 1)))
  	    {
! 	      *total += rtx_cost (XEXP (x, 0), mode, (enum rtx_code) code,
  				  0, speed);
  	      return true;
  	    }
  	}
        else if (GET_CODE (XEXP (x, 1)) != CONST_INT)
! 	*total = speed ? COSTS_N_INSNS (16) : COSTS_N_INSNS (4);
        else
  	{
! 	  int n = INTVAL (XEXP (x, 1)) & 31;
! 	  if (n < 4)
! 	    *total = COSTS_N_INSNS (n);
! 	  else
! 	    *total = speed ? COSTS_N_INSNS (n + 2) : COSTS_N_INSNS (4);
! 	  *total += rtx_cost (XEXP (x, 0), mode, (enum rtx_code) code,
! 			      0, speed);
! 	  return true;
  	}
        return false;
  
*************** arc_rtx_costs (rtx x, machine_mode mode,
*** 6013,6018 ****
--- 5914,5921 ----
        return false;
  
      case PLUS:
+       if (mode == DImode)
+ 	return false;
        if (outer_code == MEM && CONST_INT_P (XEXP (x, 1))
  	  && RTX_OK_FOR_OFFSET_P (mode, XEXP (x, 1)))
  	{
*************** arc_rtx_costs (rtx x, machine_mode mode,
*** 6022,6029 ****
  
        if ((GET_CODE (XEXP (x, 0)) == ASHIFT
  	   && _1_2_3_operand (XEXP (XEXP (x, 0), 1), VOIDmode))
!           || (GET_CODE (XEXP (x, 0)) == MULT
!               && _2_4_8_operand (XEXP (XEXP (x, 0), 1), VOIDmode)))
  	{
  	  if (CONSTANT_P (XEXP (x, 1)) && !speed)
  	    *total += COSTS_N_INSNS (4);
--- 5925,5932 ----
  
        if ((GET_CODE (XEXP (x, 0)) == ASHIFT
  	   && _1_2_3_operand (XEXP (XEXP (x, 0), 1), VOIDmode))
! 	  || (GET_CODE (XEXP (x, 0)) == MULT
! 	      && _2_4_8_operand (XEXP (XEXP (x, 0), 1), VOIDmode)))
  	{
  	  if (CONSTANT_P (XEXP (x, 1)) && !speed)
  	    *total += COSTS_N_INSNS (4);
*************** arc_rtx_costs (rtx x, machine_mode mode,
*** 6034,6041 ****
      case MINUS:
        if ((GET_CODE (XEXP (x, 1)) == ASHIFT
  	   && _1_2_3_operand (XEXP (XEXP (x, 1), 1), VOIDmode))
!           || (GET_CODE (XEXP (x, 1)) == MULT
!               && _2_4_8_operand (XEXP (XEXP (x, 1), 1), VOIDmode)))
  	{
  	  if (CONSTANT_P (XEXP (x, 0)) && !speed)
  	    *total += COSTS_N_INSNS (4);
--- 5937,5944 ----
      case MINUS:
        if ((GET_CODE (XEXP (x, 1)) == ASHIFT
  	   && _1_2_3_operand (XEXP (XEXP (x, 1), 1), VOIDmode))
! 	  || (GET_CODE (XEXP (x, 1)) == MULT
! 	      && _2_4_8_operand (XEXP (XEXP (x, 1), 1), VOIDmode)))
  	{
  	  if (CONSTANT_P (XEXP (x, 0)) && !speed)
  	    *total += COSTS_N_INSNS (4);
*************** arc_call_tls_get_addr (rtx ti)
*** 6255,6262 ****
    return ret;
  }
  
- #define DTPOFF_ZERO_SYM ".tdata"
- 
  /* Return a legitimized address for ADDR,
     which is a SYMBOL_REF with tls_model MODEL.  */
  
--- 6158,6163 ----
*************** arc_legitimize_tls_address (rtx addr, en
*** 6265,6301 ****
  {
    rtx tmp;
  
-   if (!flag_pic && model == TLS_MODEL_LOCAL_DYNAMIC)
-     model = TLS_MODEL_LOCAL_EXEC;
- 
- 
    /* The TP pointer needs to be set.  */
    gcc_assert (arc_tp_regno != -1);
  
    switch (model)
      {
      case TLS_MODEL_GLOBAL_DYNAMIC:
        tmp = gen_reg_rtx (Pmode);
        emit_move_insn (tmp, arc_unspec_offset (addr, UNSPEC_TLS_GD));
        return arc_call_tls_get_addr (tmp);
  
-     case TLS_MODEL_LOCAL_DYNAMIC:
-       rtx base;
-       tree decl;
-       const char *base_name;
- 
-       decl = SYMBOL_REF_DECL (addr);
-       base_name = DTPOFF_ZERO_SYM;
-       if (decl && bss_initializer_p (decl))
- 	base_name = ".tbss";
- 
-       base = gen_rtx_SYMBOL_REF (Pmode, base_name);
-       tmp = gen_reg_rtx (Pmode);
-       emit_move_insn (tmp, arc_unspec_offset (base, UNSPEC_TLS_GD));
-       base = arc_call_tls_get_addr (tmp);
-       return gen_rtx_PLUS (Pmode, force_reg (Pmode, base),
- 			   arc_unspec_offset (addr, UNSPEC_TLS_OFF));
- 
      case TLS_MODEL_INITIAL_EXEC:
        addr = arc_unspec_offset (addr, UNSPEC_TLS_IE);
        addr = copy_to_mode_reg (Pmode, gen_const_mem (Pmode, addr));
--- 6166,6182 ----
  {
    rtx tmp;
  
    /* The TP pointer needs to be set.  */
    gcc_assert (arc_tp_regno != -1);
  
    switch (model)
      {
      case TLS_MODEL_GLOBAL_DYNAMIC:
+     case TLS_MODEL_LOCAL_DYNAMIC:
        tmp = gen_reg_rtx (Pmode);
        emit_move_insn (tmp, arc_unspec_offset (addr, UNSPEC_TLS_GD));
        return arc_call_tls_get_addr (tmp);
  
      case TLS_MODEL_INITIAL_EXEC:
        addr = arc_unspec_offset (addr, UNSPEC_TLS_IE);
        addr = copy_to_mode_reg (Pmode, gen_const_mem (Pmode, addr));
*************** arc_legitimate_constant_p (machine_mode
*** 6735,6741 ****
  }
  
  static bool
! arc_legitimate_address_p (machine_mode mode, rtx x, bool strict)
  {
    if (RTX_OK_FOR_BASE_P (x, strict))
       return true;
--- 6616,6623 ----
  }
  
  static bool
! arc_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 			  code_helper = ERROR_MARK)
  {
    if (RTX_OK_FOR_BASE_P (x, strict))
       return true;
*************** arc_expand_builtin (tree exp,
*** 7454,7459 ****
--- 7336,7381 ----
      return const0_rtx;
  }
  
+ /* Implement TARGET_FOLD_BUILTIN.  */
+ 
+ static tree
+ arc_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *arg,
+                   bool ignore ATTRIBUTE_UNUSED)
+ {
+   unsigned int fcode = DECL_MD_FUNCTION_CODE (fndecl);
+ 
+   switch (fcode)
+     {
+     default:
+       break;
+ 
+     case ARC_BUILTIN_SWAP:
+       return fold_build2 (LROTATE_EXPR, integer_type_node, arg[0],
+                           build_int_cst (integer_type_node, 16));
+ 
+     case ARC_BUILTIN_NORM:
+       if (TREE_CODE (arg[0]) == INTEGER_CST
+ 	  && !TREE_OVERFLOW (arg[0]))
+ 	{
+ 	  wide_int arg0 = wi::to_wide (arg[0], 32);
+ 	  wide_int result = wi::shwi (wi::clrsb (arg0), 32);
+ 	  return wide_int_to_tree (integer_type_node, result);
+ 	}
+       break;
+ 
+     case ARC_BUILTIN_NORMW:
+       if (TREE_CODE (arg[0]) == INTEGER_CST
+ 	  && !TREE_OVERFLOW (arg[0]))
+ 	{
+ 	  wide_int arg0 = wi::to_wide (arg[0], 16);
+ 	  wide_int result = wi::shwi (wi::clrsb (arg0), 32);
+ 	  return wide_int_to_tree (integer_type_node, result);
+ 	}
+       break;
+     }
+   return NULL_TREE;
+ }
+ 
  /* Returns true if the operands[opno] is a valid compile-time constant to be
     used as register number in the code for builtins.  Else it flags an error
     and returns false.  */
*************** hwloop_optimize (hwloop_info loop)
*** 8156,8164 ****
    if (REG_P (loop->iter_reg) && (REGNO (loop->iter_reg)) != LP_COUNT)
      {
        if (dump_file)
!         fprintf (dump_file, ";; loop %d doesn't use lp_count as loop"
  		 " iterator\n",
!                  loop->loop_no);
        /* This loop doesn't use the lp_count, check though if we can
  	 fix it.  */
        if (TEST_HARD_REG_BIT (loop->regs_set_in_loop, LP_COUNT)
--- 8078,8086 ----
    if (REG_P (loop->iter_reg) && (REGNO (loop->iter_reg)) != LP_COUNT)
      {
        if (dump_file)
! 	fprintf (dump_file, ";; loop %d doesn't use lp_count as loop"
  		 " iterator\n",
! 		 loop->loop_no);
        /* This loop doesn't use the lp_count, check though if we can
  	 fix it.  */
        if (TEST_HARD_REG_BIT (loop->regs_set_in_loop, LP_COUNT)
*************** hwloop_optimize (hwloop_info loop)
*** 8331,8337 ****
  		 /* Make sure we don't split a call and its corresponding
  		    CALL_ARG_LOCATION note.  */
  		 && NOTE_KIND (entry_after) != NOTE_INSN_CALL_ARG_LOCATION))
!         entry_after = NEXT_INSN (entry_after);
  #endif
        entry_after = next_nonnote_insn_bb (entry_after);
  
--- 8253,8259 ----
  		 /* Make sure we don't split a call and its corresponding
  		    CALL_ARG_LOCATION note.  */
  		 && NOTE_KIND (entry_after) != NOTE_INSN_CALL_ARG_LOCATION))
! 	entry_after = NEXT_INSN (entry_after);
  #endif
        entry_after = next_nonnote_insn_bb (entry_after);
  
*************** arc_reorg (void)
*** 8508,8524 ****
    jli_call_scan ();
    pad_return ();
  
! /* FIXME: should anticipate ccfsm action, generate special patterns for
!    to-be-deleted branches that have no delay slot and have at least the
!    length of the size increase forced on other insns that are conditionalized.
!    This can also have an insn_list inside that enumerates insns which are
!    not actually conditionalized because the destinations are dead in the
!    not-execute case.
!    Could also tag branches that we want to be unaligned if they get no delay
!    slot, or even ones that we don't want to do delay slot sheduling for
!    because we can unalign them.
! 
!    However, there are cases when conditional execution is only possible after
     delay slot scheduling:
  
     - If a delay slot is filled with a nocond/set insn from above, the previous
--- 8430,8436 ----
    jli_call_scan ();
    pad_return ();
  
! /* There are cases when conditional execution is only possible after
     delay slot scheduling:
  
     - If a delay slot is filled with a nocond/set insn from above, the previous
*************** arc_reorg (void)
*** 8547,8568 ****
        init_insn_lengths();
        changed = 0;
  
-       if (optimize > 1 && !TARGET_NO_COND_EXEC)
- 	{
- 	  arc_ifcvt ();
- 	  unsigned int flags = pass_data_arc_ifcvt.todo_flags_finish;
- 	  df_finish_pass ((flags & TODO_df_verify) != 0);
- 
- 	  if (dump_file)
- 	    {
- 	      fprintf (dump_file, ";; After if conversion:\n\n");
- 	      print_rtl (dump_file, get_insns ());
- 	    }
- 	}
- 
        /* Call shorten_branches to calculate the insn lengths.  */
        shorten_branches (get_insns());
-       cfun->machine->ccfsm_current_insn = NULL_RTX;
  
        if (!INSN_ADDRESSES_SET_P())
  	  fatal_error (input_location,
--- 8459,8466 ----
*************** arc_is_aux_reg_p (rtx pat)
*** 8933,8939 ****
      return false;
  
    /* Get the attributes.  */
!   if (TREE_CODE (addr) == VAR_DECL)
      attrs = DECL_ATTRIBUTES (addr);
    else if (TREE_CODE (addr) == MEM_REF)
      attrs = TYPE_ATTRIBUTES (TREE_TYPE (TREE_OPERAND (addr, 0)));
--- 8831,8837 ----
      return false;
  
    /* Get the attributes.  */
!   if (VAR_P (addr))
      attrs = DECL_ATTRIBUTES (addr);
    else if (TREE_CODE (addr) == MEM_REF)
      attrs = TYPE_ATTRIBUTES (TREE_TYPE (TREE_OPERAND (addr, 0)));
*************** arc_register_move_cost (machine_mode,
*** 9008,9014 ****
     Return the length of the instruction.
     If OUTPUT_P is false, don't actually output the instruction, just return
     its length.  */
! int
  arc_output_addsi (rtx *operands, bool cond_p, bool output_p)
  {
    char format[35];
--- 8906,8912 ----
     Return the length of the instruction.
     If OUTPUT_P is false, don't actually output the instruction, just return
     its length.  */
! static int
  arc_output_addsi (rtx *operands, bool cond_p, bool output_p)
  {
    char format[35];
*************** arc_output_libcall (const char *fname)
*** 9431,9438 ****
    static char buf[64];
  
    gcc_assert (len < sizeof buf - 35);
!   if (TARGET_LONG_CALLS_SET
!      || (TARGET_MEDIUM_CALLS && arc_ccfsm_cond_exec_p ()))
      {
        if (flag_pic)
  	sprintf (buf, "add r12,pcl,@%s@pcl\n\tjl%%!%%* [r12]", fname);
--- 9329,9335 ----
    static char buf[64];
  
    gcc_assert (len < sizeof buf - 35);
!   if (TARGET_LONG_CALLS_SET)
      {
        if (flag_pic)
  	sprintf (buf, "add r12,pcl,@%s@pcl\n\tjl%%!%%* [r12]", fname);
*************** arc_adjust_insn_length (rtx_insn *insn,
*** 9532,9562 ****
    return len;
  }
  
- /* Return a copy of COND from *STATEP, inverted if that is indicated by the
-    CC field of *STATEP.  */
- 
- static rtx
- arc_get_ccfsm_cond (struct arc_ccfsm *statep, bool reverse)
- {
-   rtx cond = statep->cond;
-   int raw_cc = get_arc_condition_code (cond);
-   if (reverse)
-     raw_cc = ARC_INVERSE_CONDITION_CODE (raw_cc);
- 
-   if (statep->cc == raw_cc)
-     return copy_rtx (cond);
- 
-   gcc_assert (ARC_INVERSE_CONDITION_CODE (raw_cc) == statep->cc);
- 
-   machine_mode ccm = GET_MODE (XEXP (cond, 0));
-   enum rtx_code code = reverse_condition (GET_CODE (cond));
-   if (code == UNKNOWN || ccm == CC_FP_GTmode || ccm == CC_FP_GEmode)
-     code = reverse_condition_maybe_unordered (GET_CODE (cond));
- 
-   return gen_rtx_fmt_ee (code, GET_MODE (cond),
- 			 copy_rtx (XEXP (cond, 0)), copy_rtx (XEXP (cond, 1)));
- }
- 
  /* Return version of PAT conditionalized with COND, which is part of INSN.
     ANNULLED indicates if INSN is an annulled delay-slot insn.
     Register further changes if necessary.  */
--- 9429,9434 ----
*************** conditionalize_nonjump (rtx pat, rtx con
*** 9601,9725 ****
    return pat;
  }
  
- /* Use the ccfsm machinery to do if conversion.  */
- 
- static unsigned
- arc_ifcvt (void)
- {
-   struct arc_ccfsm *statep = &cfun->machine->ccfsm_current;
- 
-   memset (statep, 0, sizeof *statep);
-   for (rtx_insn *insn = get_insns (); insn; insn = next_insn (insn))
-     {
-       arc_ccfsm_advance (insn, statep);
- 
-       switch (statep->state)
- 	{
- 	case 0:
- 	  break;
- 	case 1: case 2:
- 	  {
- 	    /* Deleted branch.  */
- 	    arc_ccfsm_post_advance (insn, statep);
- 	    gcc_assert (!IN_RANGE (statep->state, 1, 2));
- 	    rtx_insn *seq = NEXT_INSN (PREV_INSN (insn));
- 	    if (GET_CODE (PATTERN (seq)) == SEQUENCE)
- 	      {
- 		rtx slot = XVECEXP (PATTERN (seq), 0, 1);
- 		rtx pat = PATTERN (slot);
- 		if (INSN_ANNULLED_BRANCH_P (insn))
- 		  {
- 		    rtx cond
- 		      = arc_get_ccfsm_cond (statep, INSN_FROM_TARGET_P (slot));
- 		    pat = gen_rtx_COND_EXEC (VOIDmode, cond, pat);
- 		  }
- 		if (!validate_change (seq, &PATTERN (seq), pat, 0))
- 		  gcc_unreachable ();
- 		PUT_CODE (slot, NOTE);
- 		NOTE_KIND (slot) = NOTE_INSN_DELETED;
- 	      }
- 	    else
- 	      {
- 		set_insn_deleted (insn);
- 	      }
- 	    continue;
- 	  }
- 	case 3:
- 	  if (LABEL_P (insn)
- 	      && statep->target_label == CODE_LABEL_NUMBER (insn))
- 	    {
- 	      arc_ccfsm_post_advance (insn, statep);
- 	      if (--LABEL_NUSES (insn) == 0)
- 		delete_insn (insn);
- 	      continue;
- 	    }
- 	  /* Fall through.  */
- 	case 4: case 5:
- 	  if (!NONDEBUG_INSN_P (insn))
- 	    break;
- 
- 	  /* Conditionalized insn.  */
- 
- 	  rtx_insn *prev, *pprev;
- 	  rtx *patp, pat, cond;
- 	  bool annulled; annulled = false;
- 
- 	  /* If this is a delay slot insn in a non-annulled branch,
- 	     don't conditionalize it.  N.B., this should be fine for
- 	     conditional return too.  However, don't do this for
- 	     unconditional branches, as these would be encountered when
- 	     processing an 'else' part.  */
- 	  prev = PREV_INSN (insn);
- 	  pprev = PREV_INSN (prev);
- 	  if (pprev && NEXT_INSN (NEXT_INSN (pprev)) == NEXT_INSN (insn)
- 	      && JUMP_P (prev) && get_attr_cond (prev) == COND_USE)
- 	    {
- 	      if (!INSN_ANNULLED_BRANCH_P (prev))
- 		break;
- 	      annulled = true;
- 	    }
- 
- 	  patp = &PATTERN (insn);
- 	  pat = *patp;
- 	  cond = arc_get_ccfsm_cond (statep, INSN_FROM_TARGET_P (insn));
- 	  if (NONJUMP_INSN_P (insn) || CALL_P (insn))
- 	    {
- 	      /* ??? don't conditionalize if all side effects are dead
- 		 in the not-execute case.  */
- 
- 	      pat = conditionalize_nonjump (pat, cond, insn, annulled);
- 	    }
- 	  else if (simplejump_p (insn))
- 	    {
- 	      patp = &SET_SRC (pat);
- 	      pat = gen_rtx_IF_THEN_ELSE (VOIDmode, cond, *patp, pc_rtx);
- 	    }
- 	  else if (JUMP_P (insn) && ANY_RETURN_P (PATTERN (insn)))
- 	    {
- 	      pat = gen_rtx_IF_THEN_ELSE (VOIDmode, cond, pat, pc_rtx);
- 	      pat = gen_rtx_SET (pc_rtx, pat);
- 	    }
- 	  else
- 	    gcc_unreachable ();
- 	  validate_change (insn, patp, pat, 1);
- 	  if (!apply_change_group ())
- 	    gcc_unreachable ();
- 	  if (JUMP_P (insn))
- 	    {
- 	      rtx_insn *next = next_nonnote_insn (insn);
- 	      if (GET_CODE (next) == BARRIER)
- 		delete_insn (next);
- 	      if (statep->state == 3)
- 		continue;
- 	    }
- 	  break;
- 	default:
- 	  gcc_unreachable ();
- 	}
-       arc_ccfsm_post_advance (insn, statep);
-     }
-   return 0;
- }
  
  /* Find annulled delay insns and convert them to use the appropriate predicate.
     This allows branch shortening to size up these insns properly.  */
--- 9473,9478 ----
*************** arc_check_millicode (rtx op, int offset,
*** 10020,10065 ****
    return 1;
  }
  
- /* Accessor functions for cfun->machine->unalign.  */
- 
- void
- arc_clear_unalign (void)
- {
-   if (cfun)
-     cfun->machine->unalign = 0;
- }
- 
- void
- arc_toggle_unalign (void)
- {
-   cfun->machine->unalign ^= 2;
- }
- 
- /* Operands 0..2 are the operands of a addsi which uses a 12 bit
-    constant in operand 2, but which would require a LIMM because of
-    operand mismatch.
-    operands 3 and 4 are new SET_SRCs for operands 0.  */
- 
- void
- split_addsi (rtx *operands)
- {
-   int val = INTVAL (operands[2]);
- 
-   /* Try for two short insns first.  Lengths being equal, we prefer
-      expansions with shorter register lifetimes.  */
-   if (val > 127 && val <= 255
-       && arc_check_short_reg_p (operands[0]))
-     {
-       operands[3] = operands[2];
-       operands[4] = gen_rtx_PLUS (SImode, operands[0], operands[1]);
-     }
-   else
-     {
-       operands[3] = operands[1];
-       operands[4] = gen_rtx_PLUS (SImode, operands[0], operands[2]);
-     }
- }
- 
  /* Operands 0..2 are the operands of a subsi which uses a 12 bit
     constant in operand 1, but which would require a LIMM because of
     operand mismatch.
--- 9773,9778 ----
*************** arc_split_move (rtx *operands)
*** 10298,10304 ****
  const char *
  arc_short_long (rtx_insn *insn, const char *s_tmpl, const char *l_tmpl)
  {
!   int is_short = arc_verify_short (insn, cfun->machine->unalign, -1);
  
    extract_constrain_insn_cached (insn);
    return is_short ? s_tmpl : l_tmpl;
--- 10011,10017 ----
  const char *
  arc_short_long (rtx_insn *insn, const char *s_tmpl, const char *l_tmpl)
  {
!   int is_short = arc_verify_short (insn, -1);
  
    extract_constrain_insn_cached (insn);
    return is_short ? s_tmpl : l_tmpl;
*************** arc_is_uncached_mem_p (rtx pat)
*** 11245,11251 ****
  
    /* Get the attributes.  */
    if (TREE_CODE (addr) == MEM_REF
!       || TREE_CODE (addr) == VAR_DECL)
      {
        attrs = TYPE_ATTRIBUTES (TREE_TYPE (addr));
        if (lookup_attribute ("uncached", attrs))
--- 10958,10964 ----
  
    /* Get the attributes.  */
    if (TREE_CODE (addr) == MEM_REF
!       || VAR_P (addr))
      {
        attrs = TYPE_ATTRIBUTES (TREE_TYPE (addr));
        if (lookup_attribute ("uncached", attrs))
*************** arc_handle_aux_attribute (tree *node,
*** 11313,11319 ****
  	  /* FIXME! add range check.  TREE_INT_CST_LOW (arg) */
  	}
  
!       if (TREE_CODE (*node) == VAR_DECL)
  	{
  	  tree fntype = TREE_TYPE (*node);
  	  if (fntype && TREE_CODE (fntype) == POINTER_TYPE)
--- 11026,11032 ----
  	  /* FIXME! add range check.  TREE_INT_CST_LOW (arg) */
  	}
  
!       if (VAR_P (*node))
  	{
  	  tree fntype = TREE_TYPE (*node);
  	  if (fntype && TREE_CODE (fntype) == POINTER_TYPE)
*************** arc_split_mov_const (rtx *operands)
*** 11666,11672 ****
      }
  
    /* 3. Check if we can just shift by 16 to fit into the u6 of LSL16.  */
!   if (TARGET_BARREL_SHIFTER && TARGET_V2
        && ((ival & ~0x3f0000) == 0))
      {
        shimm = (ival >> 16) & 0x3f;
--- 11379,11385 ----
      }
  
    /* 3. Check if we can just shift by 16 to fit into the u6 of LSL16.  */
!   if (TARGET_SWAP && TARGET_V2
        && ((ival & ~0x3f0000) == 0))
      {
        shimm = (ival >> 16) & 0x3f;
*************** static int
*** 11777,11811 ****
  arc_insn_cost (rtx_insn *insn, bool speed)
  {
    int cost;
!   if (recog_memoized (insn) < 0)
!     return 0;
! 
!   /* If optimizing for size, we want the insn size.  */
!   if (!speed)
!     return get_attr_length (insn);
! 
!   /* Use cost if provided.  */
!   cost = get_attr_cost (insn);
!   if (cost > 0)
!     return cost;
  
!   /* For speed make a simple cost model: memory access is more
!      expensive than any other instruction.  */
!   enum attr_type type = get_attr_type (insn);
  
!   switch (type)
      {
!     case TYPE_LOAD:
!     case TYPE_STORE:
!       cost = COSTS_N_INSNS (2);
!       break;
! 
!     default:
!       cost = COSTS_N_INSNS (1);
!       break;
      }
! 
!   return cost;
  }
  
  #undef TARGET_USE_ANCHORS_FOR_SYMBOL_P
--- 11490,11557 ----
  arc_insn_cost (rtx_insn *insn, bool speed)
  {
    int cost;
!   enum attr_type type;
!   if (recog_memoized (insn) >= 0)
!     {
!       if (speed)
! 	{
! 	  /* Use cost if provided.  */
! 	  cost = get_attr_cost (insn);
! 	  if (cost > 0)
! 	    return cost;
! 	  /* For speed make a simple cost model: memory access is more
! 	     expensive than any other instruction.  */
! 	  type = get_attr_type (insn);
! 	  if (type == TYPE_LOAD || type == TYPE_STORE)
! 	    return COSTS_N_INSNS (2);
! 	}
!       else
! 	{
! 	  /* If optimizing for size, we want the insn size.  */
! 	  type = get_attr_type (insn);
! 	  if (type != TYPE_MULTI)
! 	    return get_attr_length (insn);
! 	}
!     }
  
!   if (rtx set = single_set (insn))
!     cost = set_rtx_cost (set, speed);
!   else
!     cost = pattern_cost (PATTERN (insn), speed);
!   /* If the cost is zero, then it's likely a complex insn.  We don't
!      want the cost of these to be less than something we know about.  */
!   return cost ? cost : COSTS_N_INSNS (2);
! }
  
! static unsigned
! arc_libm_function_max_error (unsigned cfn, machine_mode mode,
! 			     bool boundary_p)
! {
! #ifdef OPTION_GLIBC
!   bool glibc_p = OPTION_GLIBC;
! #else
!   bool glibc_p = false;
! #endif
!   if (glibc_p)
      {
!       int rnd = flag_rounding_math ? 4 : 0;
!       switch (cfn)
! 	{
! 	CASE_CFN_SIN:
! 	CASE_CFN_SIN_FN:
! 	  if (!boundary_p && mode == DFmode)
! 	    return 7 + rnd;
! 	  break;
! 	CASE_CFN_COS:
! 	CASE_CFN_COS_FN:
! 	  if (!boundary_p && mode == DFmode)
! 	    return 4 + rnd;
! 	default:
! 	  break;
! 	}
!       return glibc_linux_libm_function_max_error (cfn, mode, boundary_p);
      }
!   return default_libm_function_max_error (cfn, mode, boundary_p);
  }
  
  #undef TARGET_USE_ANCHORS_FOR_SYMBOL_P
*************** arc_insn_cost (rtx_insn *insn, bool spee
*** 11832,11837 ****
--- 11578,11586 ----
  #undef  TARGET_INSN_COST
  #define TARGET_INSN_COST arc_insn_cost
  
+ #undef  TARGET_LIBM_FUNCTION_MAX_ERROR
+ #define TARGET_LIBM_FUNCTION_MAX_ERROR arc_libm_function_max_error
+ 
  struct gcc_target targetm = TARGET_INITIALIZER;
  
  #include "gt-arc.h"
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc.h gcc-14.1.0/gcc/config/arc/arc.h
*** gcc-13.2.0/gcc/config/arc/arc.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu.
!    Copyright (C) 1994-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu.
!    Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern enum reg_class arc_regno_reg_clas
*** 615,639 ****
  ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD))
  
  #define SMALL_INT(X) ((unsigned) ((X) + 0x100) < 0x200)
! #define SMALL_INT_RANGE(X, OFFSET, SHIFT) \
!   ((unsigned) (((X) >> (SHIFT)) + 0x100) \
     < 0x200 - ((unsigned) (OFFSET) >> (SHIFT)))
! #define SIGNED_INT12(X) ((unsigned) ((X) + 0x800) < 0x1000)
! #define SIGNED_INT16(X) ((unsigned) ((X) + 0x8000) < 0x10000)
! #define LARGE_INT(X) \
! (((X) < 0) \
!  ? (X) >= (-(HOST_WIDE_INT) 0x7fffffff - 1) \
!  : (unsigned HOST_WIDE_INT) (X) <= (unsigned HOST_WIDE_INT) 0xffffffff)
! #define UNSIGNED_INT3(X) ((unsigned) (X) < 0x8)
! #define UNSIGNED_INT5(X) ((unsigned) (X) < 0x20)
! #define UNSIGNED_INT6(X) ((unsigned) (X) < 0x40)
! #define UNSIGNED_INT7(X) ((unsigned) (X) < 0x80)
! #define UNSIGNED_INT8(X) ((unsigned) (X) < 0x100)
! #define UNSIGNED_INT12(X) ((unsigned) (X) < 0x800)
! #define UNSIGNED_INT16(X) ((unsigned) (X) < 0x10000)
  #define IS_ONE(X) ((X) == 1)
  #define IS_ZERO(X) ((X) == 0)
  
  /* Stack layout and stack pointer usage.  */
  
  /* Define this macro if pushing a word onto the stack moves the stack
--- 615,667 ----
  ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD))
  
  #define SMALL_INT(X) ((unsigned) ((X) + 0x100) < 0x200)
! #define SMALL_INT_RANGE(X, OFFSET, SHIFT)	\
!   ((unsigned) (((X) >> (SHIFT)) + 0x100)	\
     < 0x200 - ((unsigned) (OFFSET) >> (SHIFT)))
! #define LARGE_INT(X)				\
!   (((X) < 0)					\
!    ? (X) >= (-(HOST_WIDE_INT) 0x7fffffff - 1)				\
!    : (unsigned HOST_WIDE_INT) (X) <= (unsigned HOST_WIDE_INT) 0xffffffff)
! 
  #define IS_ONE(X) ((X) == 1)
  #define IS_ZERO(X) ((X) == 0)
  
+ #define SIGNED(X,V)							\
+   ((unsigned long long) ((X) + (1ULL << (V - 1))) < (1ULL << V))
+ #define UNSIGNED(X,V) ((unsigned long long) (X) < (1ULL << V))
+ #define VERIFY_SHIFT(X,S) ((X & ((1 << S) - 1)) == 0)
+ 
+ #define UNSIGNED_INT3(X) (UNSIGNED(X,3))
+ #define UNSIGNED_INT5(X) (UNSIGNED(X,5))
+ #define UNSIGNED_INT6(X) (UNSIGNED(X,6))
+ #define UNSIGNED_INT7(X) (UNSIGNED(X,7))
+ #define UNSIGNED_INT8(X) (UNSIGNED(X,8))
+ #define UNSIGNED_INT9(X) (UNSIGNED(X,9))
+ #define UNSIGNED_INT10(X) (UNSIGNED(X,10))
+ #define UNSIGNED_INT12(X) (UNSIGNED(X,12))
+ #define UNSIGNED_INT16(X) (UNSIGNED(X,16))
+ 
+ #define SIGNED_INT3(X) (SIGNED(X,3))
+ #define SIGNED_INT6(X) (SIGNED(X,6))
+ #define SIGNED_INT7(X) (SIGNED(X,7))
+ #define SIGNED_INT8(X) (SIGNED(X,8))
+ #define SIGNED_INT9(X) (SIGNED(X,9))
+ #define SIGNED_INT10(X) (SIGNED(X,10))
+ #define SIGNED_INT11(X) (SIGNED(X,11))
+ #define SIGNED_INT12(X) (SIGNED(X,12))
+ #define SIGNED_INT13(X) (SIGNED(X,13))
+ #define SIGNED_INT16(X) (SIGNED(X,16))
+ #define SIGNED_INT21(X) (SIGNED(X,21))
+ #define SIGNED_INT25(X) (SIGNED(X,25))
+ 
+ #define UNSIGNED_INT7_SHIFTED(X,S) (VERIFY_SHIFT(X,S) && UNSIGNED_INT6(X >> S))
+ #define UNSIGNED_INT8_SHIFTED(X,S) (VERIFY_SHIFT(X,S) && UNSIGNED_INT6(X >> S))
+ #define UNSIGNED_INT9_SHIFTED(X,S) (VERIFY_SHIFT(X,S) && UNSIGNED_INT6(X >> S))
+ 
+ #define SIGNED_INT13_SHIFTED(X,S) (VERIFY_SHIFT(X,S) && SIGNED_INT12(X >> S))
+ #define SIGNED_INT14_SHIFTED(X,S) (VERIFY_SHIFT(X,S) && SIGNED_INT12(X >> S))
+ #define SIGNED_INT15_SHIFTED(X,S) (VERIFY_SHIFT(X,S) && SIGNED_INT12(X >> S))
+ 
  /* Stack layout and stack pointer usage.  */
  
  /* Define this macro if pushing a word onto the stack moves the stack
*************** arc_select_cc_mode (OP, X, Y)
*** 928,937 ****
  
  /* Costs.  */
  
  /* The cost of a branch insn.  */
  /* ??? What's the right value here?  Branches are certainly more
     expensive than reg->reg moves.  */
! #define BRANCH_COST(speed_p, predictable_p) 2
  
  /* Scc sets the destination to 1 and then conditionally zeroes it.
     Best case, ORed SCCs can be made into clear - condset - condset.
--- 956,971 ----
  
  /* Costs.  */
  
+ /* Analog of COSTS_N_INSNS when optimizing for size.  */
+ #ifndef COSTS_N_BYTES
+ #define COSTS_N_BYTES(N) (N)
+ #endif
+ 
  /* The cost of a branch insn.  */
  /* ??? What's the right value here?  Branches are certainly more
     expensive than reg->reg moves.  */
! #define BRANCH_COST(speed_p, predictable_p) \
! 	(speed_p ? COSTS_N_INSNS (2) : COSTS_N_INSNS (1))
  
  /* Scc sets the destination to 1 and then conditionally zeroes it.
     Best case, ORed SCCs can be made into clear - condset - condset.
*************** arc_select_cc_mode (OP, X, Y)
*** 943,953 ****
     beging decisive of p0, we want:
     p0 * (branch_cost - 4) > (1 - p0) * 5
     ??? We don't get to see that probability to evaluate, so we can
!    only wildly guess that it might be 50%.
!    ??? The compiler also lacks the notion of branch predictability.  */
! #define LOGICAL_OP_NON_SHORT_CIRCUIT \
!   (BRANCH_COST (optimize_function_for_speed_p (cfun), \
! 		false) > 9)
  
  /* Nonzero if access to memory by bytes is slow and undesirable.
     For RISC chips, it means that access to memory by bytes is no
--- 977,984 ----
     beging decisive of p0, we want:
     p0 * (branch_cost - 4) > (1 - p0) * 5
     ??? We don't get to see that probability to evaluate, so we can
!    only wildly guess that it might be 50%.  */
! #define LOGICAL_OP_NON_SHORT_CIRCUIT false
  
  /* Nonzero if access to memory by bytes is slow and undesirable.
     For RISC chips, it means that access to memory by bytes is no
*************** do {							\
*** 1284,1303 ****
  /* Defined to also emit an .align in elfos.h.  We don't want that.  */
  #undef ASM_OUTPUT_CASE_LABEL
  
- /* ADDR_DIFF_VECs are in the text section and thus can affect the
-    current alignment.  */
- #define ASM_OUTPUT_CASE_END(FILE, NUM, JUMPTABLE)       \
-   do                                                    \
-     {                                                   \
-       if (GET_CODE (PATTERN (JUMPTABLE)) == ADDR_DIFF_VEC \
- 	  && ((GET_MODE_SIZE (as_a <scalar_int_mode>	\
- 			      (GET_MODE (PATTERN (JUMPTABLE)))) \
- 	       * XVECLEN (PATTERN (JUMPTABLE), 1) + 1)	\
- 	      & 2))					\
-       arc_toggle_unalign ();				\
-     }                                                   \
-   while (0)
- 
  #define JUMP_ALIGN(LABEL) (arc_size_opt_level < 2 ? 2 : 0)
  #define LABEL_ALIGN_AFTER_BARRIER(LABEL) \
    (JUMP_ALIGN(LABEL) \
--- 1315,1320 ----
*************** do {							\
*** 1318,1325 ****
  #define ASM_OUTPUT_ALIGN(FILE,LOG) \
  do { \
    if ((LOG) != 0) fprintf (FILE, "\t.align %d\n", 1 << (LOG)); \
-   if ((LOG)  > 1) \
-     arc_clear_unalign (); \
  } while (0)
  
  /*  ASM_OUTPUT_ALIGNED_DECL_LOCAL (STREAM, DECL, NAME, SIZE, ALIGNMENT)
--- 1335,1340 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc.md gcc-14.1.0/gcc/config/arc/arc.md
*** gcc-13.2.0/gcc/config/arc/arc.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description of the Synopsys DesignWare ARC cpu for GNU C compiler
! ;; Copyright (C) 1994-2023 Free Software Foundation, Inc.
  
  ;; Sources derived from work done by Sankhya Technologies (www.sankhya.com) on
  ;; behalf of Synopsys Inc.
--- 1,5 ----
  ;; Machine description of the Synopsys DesignWare ARC cpu for GNU C compiler
! ;; Copyright (C) 1994-2024 Free Software Foundation, Inc.
  
  ;; Sources derived from work done by Sankhya Technologies (www.sankhya.com) on
  ;; behalf of Synopsys Inc.
***************
*** 116,122 ****
    UNSPEC_TLS_OFF
    UNSPEC_ARC_NORM
    UNSPEC_ARC_NORMW
-   UNSPEC_ARC_SWAP
    UNSPEC_ARC_DIVAW
    UNSPEC_ARC_DIRECT
    UNSPEC_ARC_LP
--- 116,121 ----
***************
*** 137,142 ****
--- 136,142 ----
    UNSPEC_ARC_VMAC2HU
    UNSPEC_ARC_VMPY2H
    UNSPEC_ARC_VMPY2HU
+   UNSPEC_ARC_CC_NEZ
  
    VUNSPEC_ARC_RTIE
    VUNSPEC_ARC_SYNC
***************
*** 242,252 ****
  ; via r12.
  
  (define_attr "type"
!   "move,load,store,cmove,unary,binary,compare,shift,uncond_branch,jump,branch,
!    brcc,brcc_no_delay_slot,call,sfunc,call_no_delay_slot,rtie,
!    multi,umulti, two_cycle_core,lr,sr,divaw,loop_setup,loop_end,return,
!    misc,spfp,dpfp_mult,dpfp_addsub,mulmac_600,cc_arith,
!    simd_vload, simd_vload128, simd_vstore, simd_vmove, simd_vmove_else_zero,
     simd_vmove_with_acc, simd_varith_1cycle, simd_varith_2cycle,
     simd_varith_with_acc, simd_vlogic, simd_vlogic_with_acc,
     simd_vcompare, simd_vpermute, simd_vpack, simd_vpack_with_acc,
--- 242,253 ----
  ; via r12.
  
  (define_attr "type"
!   "add,sub,bxor,move,load,store,cmove,unary,binary,compare,shift,uncond_branch,
!    jump,branch,brcc,brcc_no_delay_slot,call,sfunc,call_no_delay_slot,rtie,
!    multi,umulti,
!    two_cycle_core,lr,sr,divaw,loop_setup,loop_end,return,
!    misc,spfp,dpfp_mult,dpfp_addsub,mulmac_600,cc_arith, simd_vload,
!    simd_vload128, simd_vstore, simd_vmove, simd_vmove_else_zero,
     simd_vmove_with_acc, simd_varith_1cycle, simd_varith_2cycle,
     simd_varith_with_acc, simd_vlogic, simd_vlogic_with_acc,
     simd_vcompare, simd_vpermute, simd_vpack, simd_vpack_with_acc,
***************
*** 546,561 ****
  	 (const_string "false")]
  	(const_string "true")))
  
- ;; Instructions that we can put into a delay slot and conditionalize.
- (define_attr "cond_delay_insn" "no,yes"
-   (cond [(eq_attr "cond" "!canuse") (const_string "no")
- 	 (eq_attr "type" "call,branch,uncond_branch,jump,brcc")
- 	 (const_string "no")
- 	 (match_test "find_reg_note (insn, REG_SAVE_NOTE, GEN_INT (2))")
- 	 (const_string "no")
- 	 (eq_attr "length" "2,4") (const_string "yes")]
- 	(const_string "no")))
- 
  (define_attr "in_ret_delay_slot" "no,yes"
    (cond [(eq_attr "in_delay_slot" "false")
  	 (const_string "no")
--- 547,552 ----
***************
*** 564,582 ****
  	 (const_string "no")]
  	(const_string "yes")))
  
- (define_attr "cond_ret_delay_insn" "no,yes"
-   (cond [(eq_attr "in_ret_delay_slot" "no") (const_string "no")
- 	 (eq_attr "cond_delay_insn" "no") (const_string "no")]
- 	(const_string "yes")))
- 
- (define_attr "annul_ret_delay_insn" "no,yes"
-   (cond [(eq_attr "cond_ret_delay_insn" "yes") (const_string "yes")
- 	 (match_test "TARGET_AT_DBR_CONDEXEC") (const_string "no")
- 	 (eq_attr "type" "!call,branch,uncond_branch,jump,brcc,return,sfunc")
- 	   (const_string "yes")]
-    (const_string "no")))
- 
- 
  ;; Delay slot definition for ARCompact ISA
  ;; ??? FIXME:
  ;; When outputting an annul-true insn elegible for cond-exec
--- 555,560 ----
***************
*** 589,602 ****
     (eq_attr "in_call_delay_slot" "true")
     (nil)])
  
! (define_delay (and (match_test "!TARGET_AT_DBR_CONDEXEC")
! 		   (eq_attr "type" "brcc"))
!   [(eq_attr "in_delay_slot" "true")
!    (eq_attr "in_delay_slot" "true")
!    (nil)])
! 
! (define_delay (and (match_test "TARGET_AT_DBR_CONDEXEC")
! 		   (eq_attr "type" "brcc"))
    [(eq_attr "in_delay_slot" "true")
     (nil)
     (nil)])
--- 567,573 ----
     (eq_attr "in_call_delay_slot" "true")
     (nil)])
  
! (define_delay (eq_attr "type" "brcc")
    [(eq_attr "in_delay_slot" "true")
     (nil)
     (nil)])
***************
*** 604,642 ****
  (define_delay
    (eq_attr "type" "return")
    [(eq_attr "in_ret_delay_slot" "yes")
!    (eq_attr "annul_ret_delay_insn" "yes")
!    (eq_attr "cond_ret_delay_insn" "yes")])
  
  (define_delay (eq_attr "type" "loop_end")
    [(eq_attr "in_delay_slot" "true")
!    (eq_attr "in_delay_slot" "true")
     (nil)])
  
! ;; For ARC600, unexposing the delay sloy incurs a penalty also in the
! ;; non-taken case, so the only meaningful way to have an annull-true
  ;; filled delay slot is to conditionalize the delay slot insn.
! (define_delay (and (match_test "TARGET_AT_DBR_CONDEXEC")
! 		   (eq_attr "type" "branch,uncond_branch,jump")
! 		   (match_test "!optimize_size"))
!   [(eq_attr "in_delay_slot" "true")
!    (eq_attr "cond_delay_insn" "yes")
!    (eq_attr "cond_delay_insn" "yes")])
! 
! ;; For ARC700, anything goes for annulled-true insns, since there is no
! ;; penalty for the unexposed delay slot when the branch is not taken,
! ;; however, we must avoid things that have a delay slot themselvese to
! ;; avoid confusing gcc.
! (define_delay (and (match_test "!TARGET_AT_DBR_CONDEXEC")
! 		   (eq_attr "type" "branch,uncond_branch,jump")
  		   (match_test "!optimize_size"))
    [(eq_attr "in_delay_slot" "true")
!    (eq_attr "type" "!call,branch,uncond_branch,jump,brcc,return,sfunc")
!    (eq_attr "cond_delay_insn" "yes")])
  
  ;; -mlongcall -fpic sfuncs use r12 to load the function address
  (define_delay (eq_attr "type" "sfunc")
    [(eq_attr "in_sfunc_delay_slot" "true")
!    (eq_attr "in_sfunc_delay_slot" "true")
     (nil)])
  ;; ??? need to use a working strategy for canuse_limm:
  ;; - either canuse_limm is not eligible for delay slots, and has no
--- 575,600 ----
  (define_delay
    (eq_attr "type" "return")
    [(eq_attr "in_ret_delay_slot" "yes")
!    (nil)
!    (nil)])
  
  (define_delay (eq_attr "type" "loop_end")
    [(eq_attr "in_delay_slot" "true")
!    (nil)
     (nil)])
  
! ;; The only meaningful way to have an annull-true
  ;; filled delay slot is to conditionalize the delay slot insn.
! (define_delay (and (eq_attr "type" "branch,uncond_branch,jump")
  		   (match_test "!optimize_size"))
    [(eq_attr "in_delay_slot" "true")
!    (nil)
!    (nil)])
  
  ;; -mlongcall -fpic sfuncs use r12 to load the function address
  (define_delay (eq_attr "type" "sfunc")
    [(eq_attr "in_sfunc_delay_slot" "true")
!    (nil)
     (nil)])
  ;; ??? need to use a working strategy for canuse_limm:
  ;; - either canuse_limm is not eligible for delay slots, and has no
*************** archs4x, archs4xd"
*** 705,733 ****
  	(match_operand:QI 1 "move_src_operand"  "rL,rP,q,P,hCm1,cL, I,?Rac,i,?i,T,q,Usd,Ucm,m,?Rac,c,?Rac,Cm3,i"))]
    "register_operand (operands[0], QImode)
     || register_operand (operands[1], QImode)
     || (satisfies_constraint_Cm3 (operands[1])
         && memory_operand (operands[0], QImode))"
    "@
!    mov%? %0,%1%&
!    mov%? %0,%1%&
!    mov%? %0,%1%&
!    mov%? %0,%1%&
!    mov%? %0,%1%&
!    mov%? %0,%1
!    mov%? %0,%1
!    mov%? %0,%1
!    mov%? %0,%1
!    mov%? %0,%1
!    ldb%? %0,%1%&
!    stb%? %1,%0%&
!    ldb%? %0,%1%&
!    xldb%U1 %0,%1
!    ldb%U1%V1 %0,%1
!    xstb%U0 %1,%0
!    stb%U0%V0 %1,%0
!    stb%U0%V0 %1,%0
!    stb%U0%V0 %1,%0
!    stb%U0%V0 %1,%0"
    [(set_attr "type" "move,move,move,move,move,move,move,move,move,move,load,store,load,load,load,store,store,store,store,store")
     (set_attr "iscompact" "maybe,maybe,maybe,true,true,false,false,false,maybe_limm,false,true,true,true,false,false,false,false,false,false,false")
     (set_attr "predicable" "yes,no,yes,no,no,yes,no,yes,yes,yes,no,no,no,no,no,no,no,no,no,no")
--- 663,694 ----
  	(match_operand:QI 1 "move_src_operand"  "rL,rP,q,P,hCm1,cL, I,?Rac,i,?i,T,q,Usd,Ucm,m,?Rac,c,?Rac,Cm3,i"))]
    "register_operand (operands[0], QImode)
     || register_operand (operands[1], QImode)
+    || (CONSTANT_P (operands[1])
+        && (!satisfies_constraint_I (operands[1]) || !optimize_size)
+        && satisfies_constraint_Usc (operands[0]))
     || (satisfies_constraint_Cm3 (operands[1])
         && memory_operand (operands[0], QImode))"
    "@
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    ldb%?\\t%0,%1
!    stb%?\\t%1,%0
!    ldb%?\\t%0,%1
!    xldb%U1\\t%0,%1
!    ldb%U1%V1\\t%0,%1
!    xstb%U0\\t%1,%0
!    stb%U0%V0\\t%1,%0
!    stb%U0%V0\\t%1,%0
!    stb%U0%V0\\t%1,%0
!    stb%U0%V0\\t%1,%0"
    [(set_attr "type" "move,move,move,move,move,move,move,move,move,move,load,store,load,load,load,store,store,store,store,store")
     (set_attr "iscompact" "maybe,maybe,maybe,true,true,false,false,false,maybe_limm,false,true,true,true,false,false,false,false,false,false,false")
     (set_attr "predicable" "yes,no,yes,no,no,yes,no,yes,yes,yes,no,no,no,no,no,no,no,no,no,no")
*************** archs4x, archs4xd"
*** 752,777 ****
     || (satisfies_constraint_Cm3 (operands[1])
         && memory_operand (operands[0], HImode))"
    "@
!    mov%? %0,%1%&
!    mov%? %0,%1%&
!    mov%? %0,%1%&
!    mov%? %0,%1%&
!    mov%? %0,%1%&
!    mov%? %0,%1
!    mov%? %0,%1
!    mov%? %0,%1
!    mov%? %0,%1%&
!    mov%? %0,%1
!    mov%? %0,%1
!    ld%_%? %0,%1%&
!    st%_%? %1,%0%&
!    xld%_%U1 %0,%1
!    ld%_%U1%V1 %0,%1
!    xst%_%U0 %1,%0
!    st%_%U0%V0 %1,%0
!    st%_%U0%V0 %1,%0
!    st%_%U0%V0 %1,%0
!    st%_%U0%V0 %1,%0"
    [(set_attr "type" "move,move,move,move,move,move,move,move,move,move,move,load,store,load,load,store,store,store,store,store")
     (set_attr "iscompact" "maybe,maybe,maybe,true,true,false,false,false,maybe_limm,maybe_limm,false,true,true,false,false,false,false,false,false,false")
     (set_attr "predicable" "yes,no,yes,no,no,yes,no,yes,yes,yes,yes,no,no,no,no,no,no,no,no,no")
--- 713,738 ----
     || (satisfies_constraint_Cm3 (operands[1])
         && memory_operand (operands[0], HImode))"
    "@
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    mov%?\\t%0,%1
!    ld%_%?\\t%0,%1
!    st%_%?\\t%1,%0
!    xld%_%U1\\t%0,%1
!    ld%_%U1%V1\\t%0,%1
!    xst%_%U0\\t%1,%0
!    st%_%U0%V0\\t%1,%0
!    st%_%U0%V0\\t%1,%0
!    st%_%U0%V0\\t%1,%0
!    st%_%U0%V0\\t%1,%0"
    [(set_attr "type" "move,move,move,move,move,move,move,move,move,move,move,load,store,load,load,store,store,store,store,store")
     (set_attr "iscompact" "maybe,maybe,maybe,true,true,false,false,false,maybe_limm,maybe_limm,false,true,true,false,false,false,false,false,false,false")
     (set_attr "predicable" "yes,no,yes,no,no,yes,no,yes,yes,yes,yes,no,no,no,no,no,no,no,no,no")
*************** archs4x, archs4xd"
*** 818,832 ****
     mov%?\\t%0,%j1	;14
     ld%?\\t%0,%1		;15
     st%?\\t%1,%0		;16
!    * return arc_short_long (insn, \"push%?\\t%1%&\", \"st%U0\\t%1,%0%&\");
!    * return arc_short_long (insn, \"pop%?\\t%0%&\",  \"ld%U1\\t%0,%1%&\");
     ld%?\\t%0,%1		;19
     xld%U1\\t%0,%1	;20
     ld%?\\t%0,%1		;21
     ld%?\\t%0,%1		;22
     ld%U1%V1\\t%0,%1	;23
     xst%U0\\t%1,%0	;24
!    st%?\\t%1,%0%&	;25
     st%U0%V0\\t%1,%0	;26
     st%U0%V0\\t%1,%0	;37
     st%U0%V0\\t%1,%0	;28"
--- 779,793 ----
     mov%?\\t%0,%j1	;14
     ld%?\\t%0,%1		;15
     st%?\\t%1,%0		;16
!    * return arc_short_long (insn, \"push%?\\t%1\", \"st%U0\\t%1,%0\");
!    * return arc_short_long (insn, \"pop%?\\t%0\",  \"ld%U1\\t%0,%1\");
     ld%?\\t%0,%1		;19
     xld%U1\\t%0,%1	;20
     ld%?\\t%0,%1		;21
     ld%?\\t%0,%1		;22
     ld%U1%V1\\t%0,%1	;23
     xst%U0\\t%1,%0	;24
!    st%?\\t%1,%0 	;25
     st%U0%V0\\t%1,%0	;26
     st%U0%V0\\t%1,%0	;37
     st%U0%V0\\t%1,%0	;28"
*************** archs4x, archs4xd"
*** 857,863 ****
  		  (plus:SI (reg:SI SP_REG)
  			   (match_operand 1 "immediate_operand" "Cal")))))]
    "reload_completed"
!   "ld.a %0,[sp,%1]"
    [(set_attr "type" "load")
     (set_attr "length" "8")])
  
--- 818,824 ----
  		  (plus:SI (reg:SI SP_REG)
  			   (match_operand 1 "immediate_operand" "Cal")))))]
    "reload_completed"
!   "ld.a\\t%0,[sp,%1]"
    [(set_attr "type" "load")
     (set_attr "length" "8")])
  
*************** archs4x, archs4xd"
*** 869,875 ****
        (unspec:SI [(match_operand:SI 1 "register_operand" "c")]
         UNSPEC_ARC_DIRECT))]
    ""
!   "st%U0 %1,%0\;st%U0.di %1,%0"
    [(set_attr "type" "store")])
  
  ;; Combiner patterns for compare with zero
--- 830,836 ----
        (unspec:SI [(match_operand:SI 1 "register_operand" "c")]
         UNSPEC_ARC_DIRECT))]
    ""
!   "st%U0\\t%1,%0\;st%U0.di\\t%1,%0"
    [(set_attr "type" "store")])
  
  ;; Combiner patterns for compare with zero
*************** archs4x, archs4xd"
*** 983,989 ****
     (set (match_operand:SI 0 "register_operand" "=w")
  	(match_dup 3))]
    ""
!   "%O3.f %0,%1"
    [(set_attr "type" "compare")
     (set_attr "cond" "set_zn")
     (set_attr "length" "4")])
--- 944,950 ----
     (set (match_operand:SI 0 "register_operand" "=w")
  	(match_dup 3))]
    ""
!   "%O3.f\\t%0,%1"
    [(set_attr "type" "compare")
     (set_attr "cond" "set_zn")
     (set_attr "length" "4")])
*************** archs4x, archs4xd"
*** 1001,1007 ****
  	(const_int 0)]))
     (clobber (match_scratch:SI 3 "=X,X,X,X,X,X,Rrq,1,c"))]
    "TARGET_NPS_BITOPS"
!   "movb.f.cl %3,%1,%p2,%p2,%s2"
    "TARGET_NPS_BITOPS && reload_completed
     && (extract_constrain_insn_cached (insn), (which_alternative & ~1) != 6)"
    [(set (match_dup 0) (match_dup 4))])
--- 962,968 ----
  	(const_int 0)]))
     (clobber (match_scratch:SI 3 "=X,X,X,X,X,X,Rrq,1,c"))]
    "TARGET_NPS_BITOPS"
!   "movb.f.cl %3,%1,%p2,%p2,%x2"
    "TARGET_NPS_BITOPS && reload_completed
     && (extract_constrain_insn_cached (insn), (which_alternative & ~1) != 6)"
    [(set (match_dup 0) (match_dup 4))])
*************** archs4x, archs4xd"
*** 1026,1040 ****
      switch (which_alternative)
      {
      case 0: case 2: case 3: case 7:
!       return \"tst%? %1,%2\";
      case 1:
!       return \"btst%? %1,%z2\";
      case 4:
!       return \"bmsk%?.f 0,%1,%Z2%&\";
      case 5:
!       return \"bclr%?.f 0,%1,%M2%&\";
      case 6:
!       return \"asr.f 0,%1,%p2\";
      default:
        gcc_unreachable ();
      }
--- 987,1001 ----
      switch (which_alternative)
      {
      case 0: case 2: case 3: case 7:
!       return \"tst%?\\t%1,%2\";
      case 1:
!       return \"btst%?\\t%1,%z2\";
      case 4:
!       return \"bmsk%?.f\\t0,%1,%Z2\";
      case 5:
!       return \"bclr%?.f\\t0,%1,%M2\";
      case 6:
!       return \"asr.f\\t0,%1,%p2\";
      default:
        gcc_unreachable ();
      }
*************** archs4x, archs4xd"
*** 1065,1071 ****
     && (INTVAL (operands[3]) + INTVAL (operands[2]) <= 11
         || (INTVAL (operands[3]) <= 11
  	   && INTVAL (operands[3]) + INTVAL (operands[2]) == 32))"
!   "tst %1,((1<<%2)-1)<<%3"
    [(set_attr "type" "compare")
     (set_attr "cond" "set_zn")
     (set_attr "length" "4")])
--- 1026,1032 ----
     && (INTVAL (operands[3]) + INTVAL (operands[2]) <= 11
         || (INTVAL (operands[3]) <= 11
  	   && INTVAL (operands[3]) + INTVAL (operands[2]) == 32))"
!   "tst\\t%1,((1<<%2)-1)<<%3"
    [(set_attr "type" "compare")
     (set_attr "cond" "set_zn")
     (set_attr "length" "4")])
*************** archs4x, archs4xd"
*** 1097,1107 ****
     (clobber (match_scratch:SI 4 "=X,X,X,Rrq,X"))]
    ""
    "@
!    btst%? %1,%3
!    btst %1,%3
!    bmsk.f 0,%1,%2-1
!    movb.f.cl %4,%1,%3,%3,%2
!    and.f 0,%1,((1<<%2)-1)<<%3"
    [(set_attr "iscompact" "maybe,false,false,false,false")
     (set_attr "type" "compare,compare,compare,shift,compare")
     (set_attr "cond" "set_zn")
--- 1058,1068 ----
     (clobber (match_scratch:SI 4 "=X,X,X,Rrq,X"))]
    ""
    "@
!    btst%?\\t%1,%3
!    btst\\t%1,%3
!    bmsk.f\\t0,%1,%2-1
!    movb.f.cl\\t%4,%1,%3,%3,%2
!    and.f\\t0,%1,((1<<%2)-1)<<%3"
    [(set_attr "iscompact" "maybe,false,false,false,false")
     (set_attr "type" "compare,compare,compare,shift,compare")
     (set_attr "cond" "set_zn")
*************** archs4x, archs4xd"
*** 1141,1174 ****
  ; the combiner needs this pattern
  (define_insn "*addsi_compare"
    [(set (reg:CC_ZN CC_REG)
! 	(compare:CC_ZN (match_operand:SI 0 "register_operand" "c")
! 		       (neg:SI (match_operand:SI 1 "register_operand" "c"))))]
    ""
!   "add.f 0,%0,%1"
    [(set_attr "cond" "set")
     (set_attr "type" "compare")
     (set_attr "length" "4")])
  
- ; for flag setting 'add' instructions like if (a+b < a) { ...}
- ; the combiner needs this pattern
  (define_insn "addsi_compare_2"
    [(set (reg:CC_C CC_REG)
! 	(compare:CC_C (plus:SI (match_operand:SI 0 "register_operand" "c,c")
! 			       (match_operand:SI 1 "nonmemory_operand" "cL,Cal"))
! 		      (match_dup 0)))]
    ""
!   "add.f 0,%0,%1"
    [(set_attr "cond" "set")
     (set_attr "type" "compare")
     (set_attr "length" "4,8")])
  
  (define_insn "*addsi_compare_3"
    [(set (reg:CC_C CC_REG)
! 	(compare:CC_C (plus:SI (match_operand:SI 0 "register_operand" "c")
! 			       (match_operand:SI 1 "register_operand" "c"))
! 		      (match_dup 1)))]
    ""
!   "add.f 0,%0,%1"
    [(set_attr "cond" "set")
     (set_attr "type" "compare")
     (set_attr "length" "4")])
--- 1102,1134 ----
  ; the combiner needs this pattern
  (define_insn "*addsi_compare"
    [(set (reg:CC_ZN CC_REG)
! 	(compare:CC_ZN (neg:SI
! 			(match_operand:SI 0 "register_operand" "r"))
! 		       (match_operand:SI 1 "register_operand"  "r")))]
    ""
!   "add.f\\t0,%0,%1"
    [(set_attr "cond" "set")
     (set_attr "type" "compare")
     (set_attr "length" "4")])
  
  (define_insn "addsi_compare_2"
    [(set (reg:CC_C CC_REG)
!        (compare:CC_C (plus:SI (match_operand:SI 0 "register_operand"   "r,r")
!                               (match_operand:SI 1 "nonmemory_operand" "rL,Cal"))
!                      (match_dup 0)))]
    ""
!   "add.f\\t0,%0,%1"
    [(set_attr "cond" "set")
     (set_attr "type" "compare")
     (set_attr "length" "4,8")])
  
  (define_insn "*addsi_compare_3"
    [(set (reg:CC_C CC_REG)
!        (compare:CC_C (plus:SI (match_operand:SI 0 "register_operand" "r")
!                               (match_operand:SI 1 "register_operand" "r"))
!                      (match_dup 1)))]
    ""
!   "add.f\\t0,%0,%1"
    [(set_attr "cond" "set")
     (set_attr "type" "compare")
     (set_attr "length" "4")])
*************** archs4x, archs4xd"
*** 1186,1192 ****
     (set (match_operand:SI 0 "register_operand" "=w,w,w")
  	(match_dup 4))]
    ""
!   "%O4.f %0,%1,%2 ; non-mult commutative"
    [(set_attr "type" "compare,compare,compare")
     (set_attr "cond" "set_zn,set_zn,set_zn")
     (set_attr "length" "4,4,8")])
--- 1146,1152 ----
     (set (match_operand:SI 0 "register_operand" "=w,w,w")
  	(match_dup 4))]
    ""
!   "%O4.f\\t%0,%1,%2 ; non-mult commutative"
    [(set_attr "type" "compare,compare,compare")
     (set_attr "cond" "set_zn,set_zn,set_zn")
     (set_attr "length" "4,4,8")])
*************** archs4x, archs4xd"
*** 1204,1210 ****
     (set (match_operand:SI 0 "register_operand" "=W,W,W")
  	(match_dup 4))]
    "!TARGET_ARC600_FAMILY"
!   "%O4.f %0,%1,%2 ; mult commutative"
    [(set_attr "type" "compare,compare,compare")
     (set_attr "cond" "set_zn,set_zn,set_zn")
     (set_attr "length" "4,4,8")])
--- 1164,1170 ----
     (set (match_operand:SI 0 "register_operand" "=W,W,W")
  	(match_dup 4))]
    "!TARGET_ARC600_FAMILY"
!   "%O4.f\\t%0,%1,%2 ; mult commutative"
    [(set_attr "type" "compare,compare,compare")
     (set_attr "cond" "set_zn,set_zn,set_zn")
     (set_attr "length" "4,4,8")])
*************** archs4x, archs4xd"
*** 1288,1294 ****
     (set (match_operand:SI 0 "register_operand" "=w,w,w")
  	(and:SI (match_dup 1) (not:SI (match_dup 2))))]
    ""
!   "bic.f %0,%1,%2"
    [(set_attr "type" "compare,compare,compare")
     (set_attr "cond" "set_zn,set_zn,set_zn")
     (set_attr "length" "4,4,8")])
--- 1248,1254 ----
     (set (match_operand:SI 0 "register_operand" "=w,w,w")
  	(and:SI (match_dup 1) (not:SI (match_dup 2))))]
    ""
!   "bic.f\\t%0,%1,%2"
    [(set_attr "type" "compare,compare,compare")
     (set_attr "cond" "set_zn,set_zn,set_zn")
     (set_attr "length" "4,4,8")])
*************** archs4x, archs4xd"
*** 1363,1369 ****
    [(set (match_operand:SF 0 "move_dest_operand"   "=h,h,   r,r,  q,S,Usc,r,m")
  	(match_operand:SF 1 "move_src_operand"  "hCfZ,E,rCfZ,E,Uts,q,  E,m,r"))]
    "register_operand (operands[0], SFmode)
!    || register_operand (operands[1], SFmode)"
    "@
     mov%?\\t%0,%1
     mov%?\\t%0,%1 ; %A1
--- 1323,1332 ----
    [(set (match_operand:SF 0 "move_dest_operand"   "=h,h,   r,r,  q,S,Usc,r,m")
  	(match_operand:SF 1 "move_src_operand"  "hCfZ,E,rCfZ,E,Uts,q,  E,m,r"))]
    "register_operand (operands[0], SFmode)
!    || register_operand (operands[1], SFmode)
!    || (CONSTANT_P (operands[1])
!        && (!satisfies_constraint_I (operands[1]) || !optimize_size)
!        && satisfies_constraint_Usc (operands[0]))"
    "@
     mov%?\\t%0,%1
     mov%?\\t%0,%1 ; %A1
*************** archs4x, archs4xd"
*** 1677,1689 ****
  {
    if (rtx_equal_p (operands[1], const0_rtx) && GET_CODE (operands[3]) == NE
        && IN_RANGE (REGNO (operands[0]) ^ 4, 4, 11))
!     return "sub%?.ne %0,%0,%0";
    /* ??? might be good for speed on ARC600 too, *if* properly scheduled.  */
    if ((optimize_size && (!TARGET_ARC600_FAMILY))
        && rtx_equal_p (operands[1], constm1_rtx)
        && GET_CODE (operands[3]) == LTU)
!     return "sbc.cs %0,%0,%0";
!   return "mov.%d3 %0,%1";
  }
    [(set_attr "type" "cmove,cmove")
     (set_attr "length" "4,8")])
--- 1640,1652 ----
  {
    if (rtx_equal_p (operands[1], const0_rtx) && GET_CODE (operands[3]) == NE
        && IN_RANGE (REGNO (operands[0]) ^ 4, 4, 11))
!     return "sub%?.ne\\t%0,%0,%0";
    /* ??? might be good for speed on ARC600 too, *if* properly scheduled.  */
    if ((optimize_size && (!TARGET_ARC600_FAMILY))
        && rtx_equal_p (operands[1], constm1_rtx)
        && GET_CODE (operands[3]) == LTU)
!     return "sbc.cs\\t%0,%0,%0";
!   return "mov.%d3\\t%0,%1";
  }
    [(set_attr "type" "cmove,cmove")
     (set_attr "length" "4,8")])
*************** archs4x, archs4xd"
*** 1771,1781 ****
   	 the first register operand 0 is the same as the second register of
   	 operand 1, we must copy in the opposite order.  */
         if (REGNO (operands[0]) == REGNO (operands[1]) + 1)
!  	return \"mov.%d3 %R0,%R1\;mov.%d3 %0,%1\";
         else
!  	return \"mov.%d3 %0,%1\;mov.%d3 %R0,%R1\";
       case 1 :
! 	return \"mov.%d3 %L0,%L1\;mov.%d3 %H0,%H1\";
  
  
       }
--- 1734,1744 ----
   	 the first register operand 0 is the same as the second register of
   	 operand 1, we must copy in the opposite order.  */
         if (REGNO (operands[0]) == REGNO (operands[1]) + 1)
!  	return \"mov.%d3\\t%R0,%R1\;mov.%d3\\t%0,%1\";
         else
!  	return \"mov.%d3\\t%0,%1\;mov.%d3\\t%R0,%R1\";
       case 1 :
! 	return \"mov.%d3\\t%L0,%L1\;mov.%d3\\t%H0,%H1\";
  
  
       }
*************** archs4x, archs4xd"
*** 1792,1799 ****
  		      (match_operand:SF 2 "register_operand" "0,0")))]
    ""
    "@
!    mov.%d3 %0,%1
!    mov.%d3 %0,%1 ; %A1"
    [(set_attr "type" "cmove,cmove")])
  
  (define_insn "*movdfcc_insn"
--- 1755,1762 ----
  		      (match_operand:SF 2 "register_operand" "0,0")))]
    ""
    "@
!    mov.%d3\\t%0,%1
!    mov.%d3\\t%0,%1 ; %A1"
    [(set_attr "type" "cmove,cmove")])
  
  (define_insn "*movdfcc_insn"
*************** archs4x, archs4xd"
*** 1813,1824 ****
  	 the first register operand 0 is the same as the second register of
  	 operand 1, we must copy in the opposite order.  */
        if (REGNO (operands[0]) == REGNO (operands[2]) + 1)
! 	return \"mov.%d1 %R0,%R2\;mov.%d1 %0,%2\";
        else
! 	return \"mov.%d1 %0,%2\;mov.%d1 %R0,%R2\";
      case 1 :
! 	      return \"mov.%d1 %L0,%L2\;mov.%d1 %H0,%H2; %A2 \";
! 
      }
  }"
    [(set_attr "type" "cmove,cmove")
--- 1776,1786 ----
  	 the first register operand 0 is the same as the second register of
  	 operand 1, we must copy in the opposite order.  */
        if (REGNO (operands[0]) == REGNO (operands[2]) + 1)
! 	return \"mov.%d1\\t%R0,%R2\;mov.%d1\\t%0,%2\";
        else
! 	return \"mov.%d1\\t%0,%2\;mov.%d1\\t%R0,%R2\";
      case 1 :
!       return \"mov.%d1\\t%L0,%L2\;mov.%d1\\t%H0,%H2; %A2\";
      }
  }"
    [(set_attr "type" "cmove,cmove")
*************** archs4x, archs4xd"
*** 1953,1959 ****
    "@
     sex%_%?\\t%0,%1
     sex%_\\t%0,%1
!    ldh%?.x\\t%0,%1%&
     ld%_.x%U1%V1\\t%0,%1
     ld%_.x%U1%V1\\t%0,%1"
    [(set_attr "type" "unary,unary,load,load,load")
--- 1915,1921 ----
    "@
     sex%_%?\\t%0,%1
     sex%_\\t%0,%1
!    ldh%?.x\\t%0,%1
     ld%_.x%U1%V1\\t%0,%1
     ld%_.x%U1%V1\\t%0,%1"
    [(set_attr "type" "unary,unary,load,load,load")
*************** archs4x, archs4xd"
*** 1981,1987 ****
    [(set (match_operand:SI 0 "dest_reg_operand" "=q,w,w")
  	(abs:SI (match_operand:SI 1 "nonmemory_operand" "q,cL,Cal")))]
    ""
!   "abs%? %0,%1%&"
    [(set_attr "type" "two_cycle_core")
     (set_attr "length" "*,4,8")
     (set_attr "iscompact" "true,false,false")])
--- 1943,1949 ----
    [(set (match_operand:SI 0 "dest_reg_operand" "=q,w,w")
  	(abs:SI (match_operand:SI 1 "nonmemory_operand" "q,cL,Cal")))]
    ""
!   "abs%?\\t%0,%1"
    [(set_attr "type" "two_cycle_core")
     (set_attr "length" "*,4,8")
     (set_attr "iscompact" "true,false,false")])
*************** archs4x, archs4xd"
*** 2012,2055 ****
  
  ;; Arithmetic instructions.
  
- ; We say an insn can be conditionalized if this doesn't introduce a long
- ; immediate.  We set the type such that we still have good scheduling if the
- ; insn is conditionalized.
- ; ??? It would make sense to allow introduction of long immediates, but
- ;     we'd need to communicate to the ccfsm machinery the extra cost.
  ; The alternatives in the constraints still serve three purposes:
  ; - estimate insn size assuming conditional execution
  ; - guide reload to re-order the second and third operand to get a better fit.
  ; - give tentative insn type to guide scheduling
  ;   N.B. "%" for commutativity doesn't help when there is another matching
  ;   (but longer) alternative.
! ; We avoid letting this pattern use LP_COUNT as a register by specifying
! ;  register class 'W' instead of 'w'.
! (define_insn_and_split "*addsi3_mixed"
!   ;;                                                      0  1    2     3   4   5   6  7  8  9 a    b     c   d e   f  10  11  12
!   [(set (match_operand:SI 0 "dest_reg_operand"           "=q,q,   h,!*Rsd,  q,Rcb,  q, q, q, r,r,   r,    W,  W,W,  W,  q,  r,  W")
! 	(plus:SI (match_operand:SI 1 "register_operand"  "%0,c,   0,    q,  0,  0,Rcb, q, 0, 0,r,   0,    c,  c,0,  0,  0,  0,  c")
! 		 (match_operand:SI 2 "nonmemory_operand" "cL,0, Cm1,    L,CL2,Csp,CM4,qK,cO,rL,0,rCca,cLCmL,Cca,I,C2a,Cal,Cal,Cal")))]
    ""
! {
!   arc_output_addsi (operands, arc_ccfsm_cond_exec_p (), true);
!   return "";
! }
!   "&& reload_completed && get_attr_length (insn) == 8
!    && satisfies_constraint_I (operands[2])
!    && GET_CODE (PATTERN (insn)) != COND_EXEC"
!   [(set (match_dup 0) (match_dup 3)) (set (match_dup 0) (match_dup 4))]
!   "split_addsi (operands);"
!   [(set_attr "type" "*,*,*,*,two_cycle_core,two_cycle_core,*,*,*,*,*,two_cycle_core,*,two_cycle_core,*,two_cycle_core,*,*,*")
!    (set (attr "iscompact")
! 	(cond [(match_test "~arc_output_addsi (operands, false, false) & 2")
! 	       (const_string "false")
! 	       (match_operand 2 "long_immediate_operand" "")
! 	       (const_string "maybe_limm")]
! 	      (const_string "maybe")))
!    (set_attr "length"     "*,*,*,*,*,*,*,*,*,4,4,4,4,4,4,4,*,8,8")
!    (set_attr "predicable" "no,no,no,no,no,no,no,no,no,yes,yes,yes,no,no,no,no,no,yes,no")
!    (set_attr "cond"       "canuse,nocond,nocond,nocond,canuse,canuse,nocond,nocond,nocond,canuse,canuse,canuse,nocond,nocond,canuse_limm,canuse_limm,canuse,canuse,nocond")
  ])
  
  ;; ARCv2 MPYW and MPYUW
--- 1974,2013 ----
  
  ;; Arithmetic instructions.
  
  ; The alternatives in the constraints still serve three purposes:
  ; - estimate insn size assuming conditional execution
  ; - guide reload to re-order the second and third operand to get a better fit.
  ; - give tentative insn type to guide scheduling
  ;   N.B. "%" for commutativity doesn't help when there is another matching
  ;   (but longer) alternative.
! (define_insn "*addsi3_mixed"
!   ;;                                                      0    1     2   3   4   5  6  7  8  9   a   b   c   d   e   f  10
!   [(set (match_operand:SI 0 "register_operand"           "=q,  h,!*Rsd,Rcb,Rcb,  q, q, q, r,r,   r,  r,  r,  r,  q,  r,  r")
! 	(plus:SI (match_operand:SI 1 "register_operand"  "%0,  0,    q,  0,  0,Rcb, q, 0, 0,r,   r,  r,  0,  r,  0,  0,  r")
! 		 (match_operand:SI 2 "nonmemory_operand" "hL,Cm1,    L,CP4,CM4,CM4,qK, O,rL,0,rC6u,C6n,CIs,C4p,Cal,Cal,Cal")))]
    ""
!   "@
!   add_s\\t%0,%1,%2   ;b,b,h
!   add_s\\t%0,%1,%2   ;h,h,s3
!   add_s\\t%0,%1,%2   ;R0/R1,b,u6
!   sub_s\\t%0,%1,%n2  ;sp,sp,u7
!   add_s\\t%0,%1,%2   ;sp,sp,u7
!   add_s\\t%0,%1,%2   ;b,sp,u7
!   add_s\\t%0,%1,%2   ;a,b,c/u3
!   add_s\\t%0,%1,%2   ;b,b,u7
!   add%?\\t%0,%1,%2   ;(p)b,b,c/u6
!   add%?\\t%0,%2,%1   ;(p)b,b,c
!   add%s2\\t%0,%1,%S2 ;a,b,c/u6
!   sub%s2\\t%0,%1,%N2 ;a,b,u6
!   add%s2\\t%0,%1,%S2 ;b,b,s12
!   bxor\\t%0,%1,31
!   add_s\\t%0,%1,%2   ;b,b,limm
!   add%?\\t%0,%1,%2   ;(p)b,b,limm
!   add\\t%0,%1,%2     ;a,b,limm"
!   [(set_attr "type"       "add,add,add,sub,add,add,add,add,add,add,add,sub,add,bxor,add,add,add")
!    (set_attr "iscompact"  "true,true,true,true,true,true,true,true,false,false,false,false,false,false,true_limm,false,false")
!    (set_attr "length"     "2,2,2,2,2,2,2,2,4,4,4,4,4,4,6,8,8")
!    (set_attr "predicable" "no,no,no,no,no,no,no,no,yes,yes,no,no,no,no,no,yes,no")
  ])
  
  ;; ARCv2 MPYW and MPYUW
*************** archs4x, archs4xd"
*** 2072,2078 ****
  	(mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "0,r,0,  0,  r"))
  		 (match_operand:HI 2 "short_const_int_operand"          "L,L,I,C16,C16")))]
    "TARGET_MPYW"
!   "mpyw%? %0,%1,%2"
    [(set_attr "length" "4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "mul16_em")
--- 2030,2036 ----
  	(mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "0,r,0,  0,  r"))
  		 (match_operand:HI 2 "short_const_int_operand"          "L,L,I,C16,C16")))]
    "TARGET_MPYW"
!   "mpyw%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "mul16_em")
*************** archs4x, archs4xd"
*** 2085,2091 ****
  	(mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand"  "0,0,r"))
  		 (sign_extend:SI (match_operand:HI 2 "nonmemory_operand" "q,r,r"))))]
    "TARGET_MPYW"
!   "mpyw%? %0,%1,%2"
    [(set_attr "length" "*,4,4")
     (set_attr "iscompact" "maybe,false,false")
     (set_attr "type" "mul16_em")
--- 2043,2049 ----
  	(mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand"  "0,0,r"))
  		 (sign_extend:SI (match_operand:HI 2 "nonmemory_operand" "q,r,r"))))]
    "TARGET_MPYW"
!   "mpyw%?\\t%0,%1,%2"
    [(set_attr "length" "*,4,4")
     (set_attr "iscompact" "maybe,false,false")
     (set_attr "type" "mul16_em")
*************** archs4x, archs4xd"
*** 2112,2118 ****
  	(mult:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "%0, r,  0,  0,  r"))
  		 (match_operand:HI 2 "short_unsigned_const_operand"     " L, L,J12,J16,J16")))]
    "TARGET_MPYW"
!   "mpyuw%? %0,%1,%2"
    [(set_attr "length" "4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "mul16_em")
--- 2070,2076 ----
  	(mult:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "%0, r,  0,  0,  r"))
  		 (match_operand:HI 2 "short_unsigned_const_operand"     " L, L,J12,J16,J16")))]
    "TARGET_MPYW"
!   "mpyuw%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "mul16_em")
*************** archs4x, archs4xd"
*** 2125,2131 ****
  	(mult:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "%0, 0, r"))
  		 (zero_extend:SI (match_operand:HI 2 "register_operand"  "q, r, r"))))]
    "TARGET_MPYW"
!   "mpyuw%? %0,%1,%2"
    [(set_attr "length" "*,4,4")
     (set_attr "iscompact" "maybe,false,false")
     (set_attr "type" "mul16_em")
--- 2083,2089 ----
  	(mult:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "%0, 0, r"))
  		 (zero_extend:SI (match_operand:HI 2 "register_operand"  "q, r, r"))))]
    "TARGET_MPYW"
!   "mpyuw%?\\t%0,%1,%2"
    [(set_attr "length" "*,4,4")
     (set_attr "iscompact" "maybe,false,false")
     (set_attr "type" "mul16_em")
*************** archs4x, archs4xd"
*** 2196,2202 ****
  				  (const_int 0))))
     (clobber (match_operand:SI 3 "acc1_operand" ""))]
    "TARGET_MULMAC_32BY16_SET"
!   "mululw 0, %0, %1"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no")
--- 2154,2160 ----
  				  (const_int 0))))
     (clobber (match_operand:SI 3 "acc1_operand" ""))]
    "TARGET_MULMAC_32BY16_SET"
!   "mululw\\t0,%0,%1"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no")
*************** archs4x, archs4xd"
*** 2214,2220 ****
  	  (match_dup 2)))
     (clobber (match_operand:SI 3 "acc1_operand" ""))]
    "TARGET_MULMAC_32BY16_SET"
!   "machlw%? 0, %0, %1"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600, mulmac_600, mulmac_600")
     (set_attr "predicable" "no, no, yes")
--- 2172,2178 ----
  	  (match_dup 2)))
     (clobber (match_operand:SI 3 "acc1_operand" ""))]
    "TARGET_MULMAC_32BY16_SET"
!   "machlw%?\\t0,%0,%1"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600, mulmac_600, mulmac_600")
     (set_attr "predicable" "no, no, yes")
*************** archs4x, archs4xd"
*** 2283,2289 ****
  	 (sign_extend:DI (match_operand:SI 0 "register_operand" "%q, c,c,  c"))
  	 (sign_extend:DI (match_operand:SI 1 "nonmemory_operand" "q,cL,L,C32"))))]
    "TARGET_MUL64_SET"
!   "mul64%? \t0, %0, %1%&"
    [(set_attr "length" "*,4,4,8")
     (set_attr "iscompact" "maybe,false,false,false")
     (set_attr "type" "multi,multi,multi,multi")
--- 2241,2247 ----
  	 (sign_extend:DI (match_operand:SI 0 "register_operand" "%q, c,c,  c"))
  	 (sign_extend:DI (match_operand:SI 1 "nonmemory_operand" "q,cL,L,C32"))))]
    "TARGET_MUL64_SET"
!   "mul64%?\\t0,%0,%1"
    [(set_attr "length" "*,4,4,8")
     (set_attr "iscompact" "maybe,false,false,false")
     (set_attr "type" "multi,multi,multi,multi")
*************** archs4x, archs4xd"
*** 2318,2324 ****
  	 (zero_extend:DI (match_operand:SI 0 "register_operand"  "%c,c,c"))
  	 (zero_extend:DI (match_operand:SI 1 "nonmemory_operand" "cL,L,C32"))))]
    "TARGET_MUL64_SET"
!   "mulu64%? \t0, %0, %1%&"
    [(set_attr "length" "4,4,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "umulti")
--- 2276,2282 ----
  	 (zero_extend:DI (match_operand:SI 0 "register_operand"  "%c,c,c"))
  	 (zero_extend:DI (match_operand:SI 1 "nonmemory_operand" "cL,L,C32"))))]
    "TARGET_MUL64_SET"
!   "mulu64%?\\t0,%0,%1"
    [(set_attr "length" "4,4,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "umulti")
*************** archs4x, archs4xd"
*** 2334,2340 ****
  ; registers, since it cannot be the destination of a multi-cycle insn
  ; like MPY or MPYU.
  (define_insn "mulsi3_700"
!  [(set (match_operand:SI 0 "mpy_dest_reg_operand"        "=r, r,r,  r,r")
  	(mult:SI (match_operand:SI 1 "register_operand"  "%0, r,0,  0,r")
  		 (match_operand:SI 2 "nonmemory_operand" "rL,rL,I,Cal,Cal")))]
   "TARGET_ARC700_MPY"
--- 2292,2298 ----
  ; registers, since it cannot be the destination of a multi-cycle insn
  ; like MPY or MPYU.
  (define_insn "mulsi3_700"
!  [(set (match_operand:SI 0 "register_operand"            "=r, r,r,  r,r")
  	(mult:SI (match_operand:SI 1 "register_operand"  "%0, r,0,  0,r")
  		 (match_operand:SI 2 "nonmemory_operand" "rL,rL,I,Cal,Cal")))]
   "TARGET_ARC700_MPY"
*************** archs4x, archs4xd"
*** 2347,2354 ****
  ; ARCv2 has no penalties between mpy and mpyu. So, we use mpy because of its
  ; short variant. LP_COUNT constraints are still valid.
  (define_insn "mulsi3_v2"
!  [(set (match_operand:SI 0 "mpy_dest_reg_operand"        "=q,q, r, r,r,  r,  r")
! 	(mult:SI (match_operand:SI 1 "register_operand"  "%0,q, 0, r,0,  0,  c")
  		 (match_operand:SI 2 "nonmemory_operand"  "q,0,rL,rL,I,Cal,Cal")))]
   "TARGET_MULTI"
   "@
--- 2305,2312 ----
  ; ARCv2 has no penalties between mpy and mpyu. So, we use mpy because of its
  ; short variant. LP_COUNT constraints are still valid.
  (define_insn "mulsi3_v2"
!  [(set (match_operand:SI 0 "register_operand"            "=q,q, r, r,r,  r,  r")
! 	(mult:SI (match_operand:SI 1 "register_operand"  "%0,q, 0, r,0,  0,  r")
  		 (match_operand:SI 2 "nonmemory_operand"  "q,0,rL,rL,I,Cal,Cal")))]
   "TARGET_MULTI"
   "@
*************** archs4x, archs4xd"
*** 2442,2448 ****
  				  (const_int 0))))
    ]
    "TARGET_MULMAC_32BY16_SET"
!   "mullw%? 0, %0, %1"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no,no,yes")
--- 2400,2406 ----
  				  (const_int 0))))
    ]
    "TARGET_MULMAC_32BY16_SET"
!   "mullw%?\\t0,%0,%1"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no,no,yes")
*************** archs4x, archs4xd"
*** 2470,2476 ****
  	    (reg:DI MUL32x16_REG))
  	  (const_int 32) (const_int 32)))]
    "TARGET_MULMAC_32BY16_SET"
!   "machlw%? %0, %1, %2"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no,no,yes")
--- 2428,2434 ----
  	    (reg:DI MUL32x16_REG))
  	  (const_int 32) (const_int 32)))]
    "TARGET_MULMAC_32BY16_SET"
!   "machlw%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no,no,yes")
*************** archs4x, archs4xd"
*** 2657,2663 ****
  				  (const_int 0))))
    ]
    "TARGET_MULMAC_32BY16_SET"
!   "mululw 0, %0, %1"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no")
--- 2615,2621 ----
  				  (const_int 0))))
    ]
    "TARGET_MULMAC_32BY16_SET"
!   "mululw\\t0,%0,%1"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no")
*************** archs4x, archs4xd"
*** 2684,2690 ****
  	    (reg:DI MUL32x16_REG))
  	  (const_int 32) (const_int 32)))]
    "TARGET_MULMAC_32BY16_SET"
!   "machulw%? %0, %1, %2"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no,no,yes")
--- 2642,2648 ----
  	    (reg:DI MUL32x16_REG))
  	  (const_int 32) (const_int 32)))]
    "TARGET_MULMAC_32BY16_SET"
!   "machulw%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "mulmac_600")
     (set_attr "predicable" "no,no,yes")
*************** archs4x, archs4xd"
*** 2716,2734 ****
  	(plus:SI (match_operand:SI 1 "register_operand" "")
  		 (match_operand:SI 2 "nonmemory_operand" "")))]
    ""
!   "if (flag_pic && arc_raw_symbolic_reference_mentioned_p (operands[2], false))
!      {
!        operands[2]=force_reg(SImode, operands[2]);
!      }
!   ")
  
  (define_expand "adddi3"
    [(set (match_operand:DI 0 "register_operand" "")
  	(plus:DI (match_operand:DI 1 "register_operand" "")
  		 (match_operand:DI 2 "nonmemory_operand" "")))
     (clobber (reg:CC CC_REG))]
!   ""
!   "
    rtx l0 = gen_lowpart (SImode, operands[0]);
    rtx h0 = gen_highpart (SImode, operands[0]);
    rtx l1 = gen_lowpart (SImode, operands[1]);
--- 2674,2701 ----
  	(plus:SI (match_operand:SI 1 "register_operand" "")
  		 (match_operand:SI 2 "nonmemory_operand" "")))]
    ""
! {
!   if (flag_pic && arc_raw_symbolic_reference_mentioned_p (operands[2], false))
!     operands[2] = force_reg (SImode, operands[2]);
! })
  
  (define_expand "adddi3"
+   [(parallel
+       [(set (match_operand:DI 0 "register_operand" "")
+ 	    (plus:DI (match_operand:DI 1 "register_operand" "")
+ 		     (match_operand:DI 2 "nonmemory_operand" "")))
+        (clobber (reg:CC CC_REG))])])
+ 
+ (define_insn_and_split "*adddi3"
    [(set (match_operand:DI 0 "register_operand" "")
  	(plus:DI (match_operand:DI 1 "register_operand" "")
  		 (match_operand:DI 2 "nonmemory_operand" "")))
     (clobber (reg:CC CC_REG))]
!   "arc_pre_reload_split ()"
!   "#"
!   "&& 1"
!   [(const_int 0)]
! {
    rtx l0 = gen_lowpart (SImode, operands[0]);
    rtx h0 = gen_highpart (SImode, operands[0]);
    rtx l1 = gen_lowpart (SImode, operands[1]);
*************** archs4x, archs4xd"
*** 2760,2770 ****
  	   gen_rtx_LTU (VOIDmode, gen_rtx_REG (CC_Cmode, CC_REG), GEN_INT (0)),
  	   gen_rtx_SET (h0, plus_constant (SImode, h0, 1))));
        DONE;
!       }
    emit_insn (gen_add_f (l0, l1, l2));
    emit_insn (gen_adc (h0, h1, h2));
    DONE;
! ")
  
  (define_insn "add_f"
    [(set (reg:CC_C CC_REG)
--- 2727,2738 ----
  	   gen_rtx_LTU (VOIDmode, gen_rtx_REG (CC_Cmode, CC_REG), GEN_INT (0)),
  	   gen_rtx_SET (h0, plus_constant (SImode, h0, 1))));
        DONE;
!     }
    emit_insn (gen_add_f (l0, l1, l2));
    emit_insn (gen_adc (h0, h1, h2));
    DONE;
! }
!   [(set_attr "length" "8")])
  
  (define_insn "add_f"
    [(set (reg:CC_C CC_REG)
*************** archs4x, archs4xd"
*** 2821,2826 ****
--- 2789,2819 ----
     (set_attr "type" "cc_arith")
     (set_attr "length" "4,4,4,4,8,8")])
  
+ (define_insn "adc_f"
+   [(set (reg:CC_C CC_REG)
+ 	(compare:CC_C
+ 	  (zero_extend:DI
+ 	    (plus:SI
+ 	      (plus:SI
+ 		(ltu:SI (reg:CC_C CC_REG) (const_int 0))
+ 		(match_operand:SI 1 "register_operand" "%r"))
+ 	      (match_operand:SI 2 "register_operand" "r")))
+ 	  (plus:DI
+ 	    (ltu:DI (reg:CC_C CC_REG) (const_int 0))
+ 	    (zero_extend:DI (match_dup 1)))))
+    (set (match_operand:SI 0 "register_operand" "=r")
+ 	(plus:SI
+ 	  (plus:SI
+ 	    (ltu:SI (reg:CC_C CC_REG) (const_int 0))
+ 	    (match_dup 1))
+ 	  (match_dup 2)))]
+   ""
+   "adc.f\\t%0,%1,%2"
+   [(set_attr "cond" "set")
+    (set_attr "predicable" "no")
+    (set_attr "type" "cc_arith")
+    (set_attr "length" "4")])
+ 
  ; combiner-splitter cmp / scc -> cmp / adc
  (define_split
    [(set (match_operand:SI 0 "dest_reg_operand" "")
*************** archs4x, archs4xd"
*** 2855,2861 ****
  ;	(plus:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0))
  ;		 (match_operand:SI 1 "register_operand" "c")))]
  ;  ""
! ;  "adc %0,%1,0"
  ;  [(set_attr "cond" "use")
  ;   (set_attr "type" "cc_arith")
  ;   (set_attr "length" "4")])
--- 2848,2854 ----
  ;	(plus:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0))
  ;		 (match_operand:SI 1 "register_operand" "c")))]
  ;  ""
! ;  "adc\\t%0,%1,0"
  ;  [(set_attr "cond" "use")
  ;   (set_attr "type" "cc_arith")
  ;   (set_attr "length" "4")])
*************** archs4x, archs4xd"
*** 2899,2906 ****
    "register_operand (operands[1], SImode)
     || register_operand (operands[2], SImode)"
    "@
!     sub%?\\t%0,%1,%2%&
!     sub%?\\t%0,%1,%2%&
      sub%?\\t%0,%1,%2
      rsub%?\\t%0,%2,%1
      sub\\t%0,%1,%2
--- 2892,2899 ----
    "register_operand (operands[1], SImode)
     || register_operand (operands[2], SImode)"
    "@
!     sub%?\\t%0,%1,%2
!     sub%?\\t%0,%1,%2
      sub%?\\t%0,%1,%2
      rsub%?\\t%0,%2,%1
      sub\\t%0,%1,%2
*************** archs4x, archs4xd"
*** 2961,2967 ****
  		  (ltu:SI (match_operand:CC_C 2 "cc_use_register")
  			  (const_int 0))))]
    ""
!   "sbc %0,%1,0"
    [(set_attr "cond" "use")
     (set_attr "type" "cc_arith")
     (set_attr "length" "4")])
--- 2954,2960 ----
  		  (ltu:SI (match_operand:CC_C 2 "cc_use_register")
  			  (const_int 0))))]
    ""
!   "sbc\\t%0,%1,0"
    [(set_attr "cond" "use")
     (set_attr "type" "cc_arith")
     (set_attr "length" "4")])
*************** archs4x, archs4xd"
*** 3208,3245 ****
    switch (which_alternative)
      {
      case 0: case 5: case 10: case 11: case 16: case 17: case 18:
!       return "and%? %0,%1,%2%&";
      case 1: case 6:
!       return "and%? %0,%2,%1%&";
      case 2:
!       return "bmsk%? %0,%1,%Z2%&";
      case 7: case 12:
       if (satisfies_constraint_C2p (operands[2]))
         {
  	operands[2] = GEN_INT ((~INTVAL (operands[2])));
! 	return "bmskn%? %0,%1,%Z2%&";
         }
       else
         {
! 	return "bmsk%? %0,%1,%Z2%&";
         }
      case 3: case 8: case 13:
!       return "bclr%? %0,%1,%M2%&";
      case 4:
        return (INTVAL (operands[2]) == 0xff
! 	      ? "extb%? %0,%1%&" : "ext%_%? %0,%1%&");
!     case 9: case 14: return \"bic%? %0,%1,%n2-1\";
      case 15:
!       return "movb.cl %0,%1,%p2,%p2,%s2";
  
      case 19:
        const char *tmpl;
  
        if (satisfies_constraint_Ucm (operands[1]))
  	tmpl = (INTVAL (operands[2]) == 0xff
! 		? "xldb%U1 %0,%1" : "xld%_%U1 %0,%1");
        else
! 	tmpl = INTVAL (operands[2]) == 0xff ? "ldb %0,%1" : "ld%_ %0,%1";
  
        if (TARGET_BIG_ENDIAN)
  	{
--- 3201,3238 ----
    switch (which_alternative)
      {
      case 0: case 5: case 10: case 11: case 16: case 17: case 18:
!       return "and%?\\t%0,%1,%2";
      case 1: case 6:
!       return "and%?\\t%0,%2,%1";
      case 2:
!       return "bmsk%?\\t%0,%1,%Z2";
      case 7: case 12:
       if (satisfies_constraint_C2p (operands[2]))
         {
  	operands[2] = GEN_INT ((~INTVAL (operands[2])));
! 	return "bmskn%?\\t%0,%1,%Z2";
         }
       else
         {
! 	return "bmsk%?\\t%0,%1,%Z2";
         }
      case 3: case 8: case 13:
!       return "bclr%?\\t%0,%1,%M2";
      case 4:
        return (INTVAL (operands[2]) == 0xff
! 	      ? "extb%?\\t%0,%1" : "ext%_%?\\t%0,%1");
!     case 9: case 14: return \"bic%?\\t%0,%1,%n2-1\";
      case 15:
!       return "movb.cl\\t%0,%1,%p2,%p2,%x2";
  
      case 19:
        const char *tmpl;
  
        if (satisfies_constraint_Ucm (operands[1]))
  	tmpl = (INTVAL (operands[2]) == 0xff
! 		? "xldb%U1\\t%0,%1" : "xld%_%U1\\t%0,%1");
        else
! 	tmpl = INTVAL (operands[2]) == 0xff ? "ldb\\t%0,%1" : "ld%_\\t%0,%1";
  
        if (TARGET_BIG_ENDIAN)
  	{
*************** archs4x, archs4xd"
*** 3285,3291 ****
   		(match_operand:SI 2 "nonmemory_operand" "0,0,0,0,r,r,Cal")))]
    ""
    "@
!    bic%?\\t%0, %2, %1%& ;;constraint 0
     bic%?\\t%0,%2,%1  ;;constraint 1
     bic\\t%0,%2,%1    ;;constraint 2, FIXME: will it ever get generated ???
     bic%?\\t%0,%2,%1  ;;constraint 3, FIXME: will it ever get generated ???
--- 3278,3284 ----
   		(match_operand:SI 2 "nonmemory_operand" "0,0,0,0,r,r,Cal")))]
    ""
    "@
!    bic%?\\t%0,%2,%1  ;;constraint 0
     bic%?\\t%0,%2,%1  ;;constraint 1
     bic\\t%0,%2,%1    ;;constraint 2, FIXME: will it ever get generated ???
     bic%?\\t%0,%2,%1  ;;constraint 3, FIXME: will it ever get generated ???
*************** archs4x, archs4xd"
*** 3340,3348 ****
    switch (which_alternative)
      {
      case 0: case 2: case 5: case 6: case 8: case 9: case 10:
!       return \"xor%?\\t%0,%1,%2%&\";
      case 1: case 3:
!       return \"xor%?\\t%0,%2,%1%&\";
      case 4: case 7:
        return \"bxor%?\\t%0,%1,%z2\";
      default:
--- 3333,3341 ----
    switch (which_alternative)
      {
      case 0: case 2: case 5: case 6: case 8: case 9: case 10:
!       return \"xor%?\\t%0,%1,%2\";
      case 1: case 3:
!       return \"xor%?\\t%0,%2,%1\";
      case 4: case 7:
        return \"bxor%?\\t%0,%1,%z2\";
      default:
*************** archs4x, archs4xd"
*** 3359,3365 ****
    [(set (match_operand:SI 0 "dest_reg_operand" "=q,q,r,r")
  	(neg:SI (match_operand:SI 1 "register_operand" "0,q,0,r")))]
    ""
!   "neg%?\\t%0,%1%&"
    [(set_attr "type" "unary")
     (set_attr "iscompact" "maybe,true,false,false")
     (set_attr "predicable" "no,no,yes,no")])
--- 3352,3358 ----
    [(set (match_operand:SI 0 "dest_reg_operand" "=q,q,r,r")
  	(neg:SI (match_operand:SI 1 "register_operand" "0,q,0,r")))]
    ""
!   "neg%?\\t%0,%1"
    [(set_attr "type" "unary")
     (set_attr "iscompact" "maybe,true,false,false")
     (set_attr "predicable" "no,no,yes,no")])
*************** archs4x, archs4xd"
*** 3368,3374 ****
    [(set (match_operand:SI 0 "dest_reg_operand" "=q,w")
  	(not:SI (match_operand:SI 1 "register_operand" "q,c")))]
    ""
!   "not%? %0,%1%&"
    [(set_attr "type" "unary,unary")
     (set_attr "iscompact" "true,false")])
  
--- 3361,3367 ----
    [(set (match_operand:SI 0 "dest_reg_operand" "=q,w")
  	(not:SI (match_operand:SI 1 "register_operand" "q,c")))]
    ""
!   "not%?\\t%0,%1"
    [(set_attr "type" "unary,unary")
     (set_attr "iscompact" "true,false")])
  
*************** archs4x, archs4xd"
*** 3394,3467 ****
  
  ;; Shift instructions.
  
! (define_expand "ashlsi3"
!   [(set (match_operand:SI 0 "dest_reg_operand" "")
! 	(ashift:SI (match_operand:SI 1 "register_operand" "")
! 		   (match_operand:SI 2 "nonmemory_operand" "")))]
!   ""
!   "
! {
!   if (!TARGET_BARREL_SHIFTER)
!     {
!       emit_shift (ASHIFT, operands[0], operands[1], operands[2]);
!       DONE;
!     }
! }")
  
! (define_expand "ashrsi3"
!   [(set (match_operand:SI 0 "dest_reg_operand" "")
! 	(ashiftrt:SI (match_operand:SI 1 "register_operand" "")
! 		     (match_operand:SI 2 "nonmemory_operand" "")))]
!   ""
!   "
! {
!   if (!TARGET_BARREL_SHIFTER)
!     {
!       emit_shift (ASHIFTRT, operands[0], operands[1], operands[2]);
!       DONE;
!     }
! }")
  
! (define_expand "lshrsi3"
    [(set (match_operand:SI 0 "dest_reg_operand" "")
! 	(lshiftrt:SI (match_operand:SI 1 "register_operand" "")
! 		     (match_operand:SI 2 "nonmemory_operand" "")))]
!   ""
!   "
! {
!   if (!TARGET_BARREL_SHIFTER)
!     {
!       emit_shift (LSHIFTRT, operands[0], operands[1], operands[2]);
!       DONE;
!     }
! }")
! 
! (define_insn "shift_si3"
!   [(set (match_operand:SI 0 "dest_reg_operand" "=r")
! 	(match_operator:SI 3 "shift4_operator"
! 			   [(match_operand:SI 1 "register_operand" "0")
! 			    (match_operand:SI 2 "const_int_operand" "n")]))
!    (clobber (match_scratch:SI 4 "=&r"))
!    (clobber (reg:CC CC_REG))
!   ]
!   "!TARGET_BARREL_SHIFTER"
!   "* return output_shift (operands);"
!   [(set_attr "type" "shift")
!    (set_attr "length" "16")])
! 
! (define_insn "shift_si3_loop"
!   [(set (match_operand:SI 0 "dest_reg_operand" "=r,r")
! 	(match_operator:SI 3 "shift_operator"
! 			   [(match_operand:SI 1 "register_operand" "0,0")
! 			    (match_operand:SI 2 "nonmemory_operand" "rn,Cal")]))
!    (clobber (match_scratch:SI 4 "=X,X"))
!    (clobber (reg:SI LP_COUNT))
!    (clobber (reg:CC CC_REG))
!   ]
!   "!TARGET_BARREL_SHIFTER"
!   "* return output_shift (operands);"
!   [(set_attr "type" "shift")
!    (set_attr "length" "16,20")])
  
  ; asl, asr, lsr patterns:
  ; There is no point in including an 'I' alternative since only the lowest 5
--- 3387,3404 ----
  
  ;; Shift instructions.
  
! (define_code_iterator ANY_ROTATE [rotate rotatert])
! (define_code_iterator ANY_SHIFT_ROTATE [ashift ashiftrt lshiftrt
! 					rotate rotatert])
  
! (define_code_attr insn [(ashift "ashl") (ashiftrt "ashr") (lshiftrt "lshr")
! 			(rotate "rotl") (rotatert "rotr")])
  
! (define_expand "<insn>si3"
    [(set (match_operand:SI 0 "dest_reg_operand" "")
! 	(ANY_SHIFT_ROTATE:SI (match_operand:SI 1 "register_operand" "")
! 			     (match_operand:SI 2 "nonmemory_operand" "")))]
!   "")
  
  ; asl, asr, lsr patterns:
  ; There is no point in including an 'I' alternative since only the lowest 5
*************** archs4x, archs4xd"
*** 3496,3515 ****
     (set_attr "cond" "canuse,nocond,canuse,canuse,nocond,nocond")])
  
  (define_insn "*lshrsi3_insn"
!   [(set (match_operand:SI 0 "dest_reg_operand"               "=q,q, q, r, r,   r")
! 	(lshiftrt:SI (match_operand:SI 1 "nonmemory_operand" "!0,q, 0, 0, r,rCal")
! 		     (match_operand:SI 2 "nonmemory_operand"  "N,N,qM,rL,rL,rCal")))]
    "TARGET_BARREL_SHIFTER
     && (register_operand (operands[1], SImode)
         || register_operand (operands[2], SImode))"
!   "*return (which_alternative <= 1 && !arc_ccfsm_cond_exec_p ()
! 	    ?  \"lsr%?\\t%0,%1%&\" : \"lsr%?\\t%0,%1,%2%&\");"
    [(set_attr "type" "shift")
!    (set_attr "iscompact" "maybe,maybe,maybe,false,false,false")
!    (set_attr "predicable" "no,no,no,yes,no,no")
!    (set_attr "cond" "canuse,nocond,canuse,canuse,nocond,nocond")])
  
! (define_insn "rotrsi3"
    [(set (match_operand:SI 0 "dest_reg_operand"                    "=r, r,   r")
  	(rotatert:SI (match_operand:SI 1 "arc_nonmemory_operand"  " 0,rL,rCsz")
  		     (match_operand:SI 2 "nonmemory_operand"      "rL,rL,rCal")))]
--- 3433,3624 ----
     (set_attr "cond" "canuse,nocond,canuse,canuse,nocond,nocond")])
  
  (define_insn "*lshrsi3_insn"
!   [(set (match_operand:SI 0 "dest_reg_operand"               "=q, q, r, r,   r")
! 	(lshiftrt:SI (match_operand:SI 1 "nonmemory_operand"  "q, 0, 0, r,rCal")
! 		     (match_operand:SI 2 "nonmemory_operand"  "N,qM,rL,rL,rCal")))]
    "TARGET_BARREL_SHIFTER
     && (register_operand (operands[1], SImode)
         || register_operand (operands[2], SImode))"
!   "@
!    lsr_s\\t%0,%1
!    lsr_s\\t%0,%1,%2
!    lsr%?\\t%0,%1,%2
!    lsr%?\\t%0,%1,%2
!    lsr%?\\t%0,%1,%2"
    [(set_attr "type" "shift")
!    (set_attr "iscompact" "maybe,maybe,false,false,false")
!    (set_attr "predicable" "no,no,yes,no,no")
!    (set_attr "cond" "nocond,canuse,canuse,nocond,nocond")])
  
! (define_insn "<insn>si2_cnt16"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(ANY_ROTATE:SI (match_operand:SI 1 "register_operand" "r")
! 		       (const_int 16)))]
!   "TARGET_SWAP"
!   "swap\\t%0,%1"
!   [(set_attr "length" "4")
!    (set_attr "type" "two_cycle_core")])
! 
! (define_insn "ashlsi2_cnt16"
!   [(set (match_operand:SI 0 "register_operand"             "=r")
! 	(ashift:SI (match_operand:SI 1 "nonmemory_operand" "rL")
! 		   (const_int 16)))]
!   "TARGET_SWAP && TARGET_V2"
!   "lsl16\\t%0,%1"
!   [(set_attr "type" "shift")
!    (set_attr "iscompact" "false")
!    (set_attr "length" "4")
!    (set_attr "predicable" "no")])
! 
! (define_insn "lshrsi2_cnt16"
!   [(set (match_operand:SI 0 "register_operand"               "=r")
! 	(lshiftrt:SI (match_operand:SI 1 "nonmemory_operand" "rL")
! 		     (const_int 16)))]
!   "TARGET_SWAP && TARGET_V2"
!   "lsr16\\t%0,%1"
!   [(set_attr "type" "shift")
!    (set_attr "iscompact" "false")
!    (set_attr "length" "4")
!    (set_attr "predicable" "no")])
! 
! ;; Split asl dst,1,src into bset dst,0,src.
! (define_insn_and_split "*ashlsi3_1"
!   [(set (match_operand:SI 0 "dest_reg_operand")
! 	(ashift:SI (const_int 1)
! 		   (match_operand:SI 1 "nonmemory_operand")))]
!   "!TARGET_BARREL_SHIFTER
!    && arc_pre_reload_split ()"
!   "#"
!   "&& 1"
!   [(set (match_dup 0)
! 	(ior:SI (ashift:SI (const_int 1) (match_dup 1))
! 		(const_int 0)))]
!   ""
!   [(set_attr "type" "shift")
!    (set_attr "length" "8")])
! 
! (define_insn_and_split "*<insn>si3_nobs"
!   [(set (match_operand:SI 0 "dest_reg_operand")
! 	(ANY_SHIFT_ROTATE:SI (match_operand:SI 1 "register_operand")
! 			     (match_operand:SI 2 "nonmemory_operand")))]
!   "!TARGET_BARREL_SHIFTER
!    && operands[2] != const1_rtx
!    && arc_pre_reload_split ()"
!   "#"
!   "&& 1"
!   [(const_int 0)]
! {
!   arc_split_<insn> (operands);
!   DONE;
! })
! 
! ;; <ANY_SHIFT_ROTATE>si3_loop appears after <ANY_SHIFT_ROTATE>si3_nobs
! (define_insn "<insn>si3_loop"
!   [(set (match_operand:SI 0 "dest_reg_operand" "=r,r")
! 	(ANY_SHIFT_ROTATE:SI 
! 	  (match_operand:SI 1 "register_operand" "0,0")
! 	  (match_operand:SI 2 "nonmemory_operand" "rn,Cal")))
!    (clobber (reg:SI LP_COUNT))
!    (clobber (reg:CC CC_REG))
!   ]
!   "!TARGET_BARREL_SHIFTER
!    && operands[2] != const1_rtx"
!   "* return output_shift_loop (<CODE>, operands);"
!   [(set_attr "type" "shift")
!    (set_attr "length" "16,20")])
! 
! ;; DImode shifts
! 
! (define_expand "ashldi3"
!   [(parallel
!       [(set (match_operand:DI 0 "register_operand")
! 	    (ashift:DI (match_operand:DI 1 "register_operand")
! 		       (match_operand:QI 2 "const_int_operand")))
!        (clobber (reg:CC CC_REG))])]
!   ""
! {
!   if (operands[2] != const1_rtx)
!     FAIL;
! })
! 
! (define_insn_and_split "*ashldi3_cnt1"
!   [(set (match_operand:DI 0 "register_operand")
! 	(ashift:DI (match_operand:DI 1 "register_operand")
! 		   (const_int 1)))
!    (clobber (reg:CC CC_REG))]
!   "arc_pre_reload_split ()"
!   "#"
!   "&& 1"
!   [(parallel [(set (match_dup 0) (plus:DI (match_dup 1) (match_dup 1)))
! 	      (clobber (reg:CC CC_REG))])]
!   ""
!   [(set_attr "length" "8")])
! 
! (define_expand "ashrdi3"
!   [(parallel
!       [(set (match_operand:DI 0 "register_operand")
! 	    (ashiftrt:DI (match_operand:DI 1 "register_operand")
! 			 (match_operand:QI 2 "const_int_operand")))
!        (clobber (reg:CC CC_REG))])]
!   ""
! {
!   if (operands[2] != const1_rtx)
!     FAIL;
! })
! 
! ;; Split into asr.f hi; rrc lo
! (define_insn_and_split "*ashrdi3_cnt1"
!   [(set (match_operand:DI 0 "register_operand")
! 	(ashiftrt:DI (match_operand:DI 1 "register_operand")
! 		     (const_int 1)))
!    (clobber (reg:CC CC_REG))]
!   "arc_pre_reload_split ()"
!   "#"
!   "&& 1"
!   [(const_int 0)]
! {
!   emit_insn (gen_ashrsi3_cnt1_carry (gen_highpart (SImode, operands[0]),
! 				     gen_highpart (SImode, operands[1])));
!   emit_insn (gen_rrcsi2 (gen_lowpart (SImode, operands[0]),
! 			 gen_lowpart (SImode, operands[1])));
!   DONE;
! }
!   [(set_attr "length" "8")])
! 
! (define_expand "lshrdi3"
!   [(parallel
!       [(set (match_operand:DI 0 "register_operand")
! 	    (lshiftrt:DI (match_operand:DI 1 "register_operand")
! 			 (match_operand:QI 2 "const_int_operand")))
!        (clobber (reg:CC CC_REG))])]
!   ""
! {
!   if (operands[2] != const1_rtx)
!     FAIL;
! })
! 
! ;; Split into lsr.f hi; rrc lo
! (define_insn_and_split "*lshrdi3_cnt1"
!   [(set (match_operand:DI 0 "register_operand")
! 	(lshiftrt:DI (match_operand:DI 1 "register_operand")
! 		     (const_int 1)))
!    (clobber (reg:CC CC_REG))]
!   "arc_pre_reload_split ()"
!   "#"
!   "&& 1"
!   [(const_int 0)]
! {
!   emit_insn (gen_lshrsi3_cnt1_carry (gen_highpart (SImode, operands[0]),
! 				     gen_highpart (SImode, operands[1])));
!   emit_insn (gen_rrcsi2 (gen_lowpart (SImode, operands[0]),
! 			 gen_lowpart (SImode, operands[1])));
!   DONE;
! }
!   [(set_attr "length" "8")])
! 
! ;; Rotate instructions.
! 
! (define_insn "rotrsi3_insn"
    [(set (match_operand:SI 0 "dest_reg_operand"                    "=r, r,   r")
  	(rotatert:SI (match_operand:SI 1 "arc_nonmemory_operand"  " 0,rL,rCsz")
  		     (match_operand:SI 2 "nonmemory_operand"      "rL,rL,rCal")))]
*************** archs4x, archs4xd"
*** 3519,3524 ****
--- 3628,3759 ----
     (set_attr "predicable" "yes,no,no")
     (set_attr "length" "4,4,8")])
  
+ (define_insn_and_split "*rotlsi3"
+   [(set (match_operand:SI 0 "dest_reg_operand")
+ 	(rotate:SI (match_operand:SI 1 "register_operand")
+ 		   (match_operand:SI 2 "nonmemory_operand")))]
+   "TARGET_BARREL_SHIFTER
+    && arc_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0) (rotatert:SI (match_dup 1) (match_dup 3)))]
+ {
+   if (CONST_INT_P (operands[2]))
+     {
+       int n = INTVAL (operands[2]) & 31;
+       if (n == 0)
+ 	{
+ 	  emit_move_insn (operands[0], operands[1]);
+ 	  DONE;
+ 	}
+       else operands[3] = GEN_INT (32 - n);
+     }
+   else
+     {
+       if (!register_operand (operands[2], SImode))
+ 	operands[2] = force_reg (SImode, operands[2]);
+       operands[3] = gen_reg_rtx (SImode);
+       emit_insn (gen_negsi2 (operands[3], operands[2]));
+     }
+ })
+ 
+ ;; Rotate through carry flag
+ 
+ (define_insn "rrcsi2"
+   [(set (match_operand:SI 0 "dest_reg_operand" "=r")
+ 	(plus:SI
+ 	  (lshiftrt:SI (match_operand:SI 1 "register_operand" "r")
+ 		       (const_int 1))
+ 	  (ashift:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0))
+ 		     (const_int 31))))]
+   ""
+   "rrc\\t%0,%1"
+   [(set_attr "type" "shift")
+    (set_attr "predicable" "no")
+    (set_attr "length" "4")])
+ 
+ (define_insn "rrcsi2_carry"
+   [(set (reg:CC_C CC_REG)
+ 	(unspec:CC_C [(and:SI (match_operand:SI 1 "register_operand" "r")
+ 			      (const_int 1))] UNSPEC_ARC_CC_NEZ))
+    (set (match_operand:SI 0 "dest_reg_operand" "=r")
+ 	(plus:SI
+ 	  (lshiftrt:SI (match_dup 1) (const_int 1))
+ 	  (ashift:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0))
+ 		     (const_int 31))))]
+   ""
+   "rrc.f\\t%0,%1"
+   [(set_attr "type" "shift")
+    (set_attr "predicable" "no")
+    (set_attr "length" "4")])
+ 
+ ;; DImode Rotate instructions
+ 
+ (define_expand "rotldi3"
+   [(parallel
+       [(set (match_operand:DI 0 "register_operand")
+ 	    (rotate:DI (match_operand:DI 1 "register_operand")
+ 		       (match_operand:QI 2 "const_int_operand")))
+        (clobber (reg:CC CC_REG))])]
+   ""
+ {
+   if (operands[2] != const1_rtx)
+     FAIL;
+ })
+ 
+ ;; split into add.f lo; adc.f hi; adc lo
+ (define_insn_and_split "*rotldi3_cnt1"
+   [(set (match_operand:DI 0 "register_operand")
+ 	(rotate:DI (match_operand:DI 1 "register_operand")
+ 		   (const_int 1)))
+    (clobber (reg:CC CC_REG))]
+   "arc_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(const_int 0)]
+ {
+   rtx lo0 = gen_lowpart (SImode, operands[0]);
+   rtx lo1 = gen_lowpart (SImode, operands[1]);
+   rtx hi1 = gen_highpart (SImode, operands[1]);
+   emit_insn (gen_add_f (lo0, lo1, lo1));
+   emit_insn (gen_adc_f (gen_highpart (SImode, operands[0]), hi1, hi1));
+   emit_insn (gen_adc (lo0, lo0, const0_rtx));
+   DONE;
+ }
+   [(set_attr "length" "12")])
+ 
+ (define_expand "rotrdi3"
+   [(parallel
+       [(set (match_operand:DI 0 "register_operand")
+ 	    (rotatert:DI (match_operand:DI 1 "register_operand")
+ 			 (match_operand:QI 2 "const_int_operand")))
+        (clobber (reg:CC CC_REG))])]
+   ""
+ {
+   if (operands[2] != const1_rtx)
+     FAIL;
+ })
+ 
+ ;; split into asr.f lo; rrc.f hi; rrc lo
+ (define_insn_and_split "*rotrdi3_cnt1"
+   [(set (match_operand:DI 0 "register_operand")
+ 	(rotatert:DI (match_operand:DI 1 "register_operand")
+ 		     (const_int 1)))
+    (clobber (reg:CC CC_REG))]
+   "arc_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(const_int 0)]
+ {
+   rtx lo = gen_lowpart (SImode, operands[1]);
+   emit_insn (gen_btst_0_carry (lo));
+   emit_insn (gen_rrcsi2_carry (gen_highpart (SImode, operands[0]),
+ 			       gen_highpart (SImode, operands[1])));
+   emit_insn (gen_rrcsi2 (gen_lowpart (SImode, operands[0]), lo));
+   DONE;
+ }
+   [(set_attr "length" "12")])
+ 
  ;; Compare / branch instructions.
  
  (define_expand "cbranchsi4"
*************** archs4x, archs4xd"
*** 3547,3553 ****
  	(compare:CC (match_operand:SI 0 "register_operand"   "q, q,  h, c, c,  q,c")
  		    (match_operand:SI 1 "nonmemory_operand" "cO,hO,Cm1,cI,cL,Cal,Cal")))]
    ""
!   "cmp%? %0,%B1%&"
    [(set_attr "type" "compare")
     (set_attr "iscompact" "true,true,true,false,false,true_limm,false")
     (set_attr "predicable" "no,no,no,no,yes,no,yes")
--- 3782,3788 ----
  	(compare:CC (match_operand:SI 0 "register_operand"   "q, q,  h, c, c,  q,c")
  		    (match_operand:SI 1 "nonmemory_operand" "cO,hO,Cm1,cI,cL,Cal,Cal")))]
    ""
!   "cmp%?\\t%0,%B1"
    [(set_attr "type" "compare")
     (set_attr "iscompact" "true,true,true,false,false,true_limm,false")
     (set_attr "predicable" "no,no,no,no,yes,no,yes")
*************** archs4x, archs4xd"
*** 3560,3566 ****
  	(compare:CC_ZN (match_operand:SI 0 "register_operand"  "q,c")
  		       (const_int 0)))]
    ""
!   "tst%? %0,%0%&"
    [(set_attr "type" "compare,compare")
     (set_attr "iscompact" "true,false")
     (set_attr "predicable" "no,yes")
--- 3795,3801 ----
  	(compare:CC_ZN (match_operand:SI 0 "register_operand"  "q,c")
  		       (const_int 0)))]
    ""
!   "tst%?\\t%0,%0"
    [(set_attr "type" "compare,compare")
     (set_attr "iscompact" "true,false")
     (set_attr "predicable" "no,yes")
*************** archs4x, archs4xd"
*** 3576,3627 ****
  			   (match_operand:SI 1 "nonmemory_operand" "L,Lc"))
  	  (const_int 0)))]
    ""
!   "btst%? %0,%1"
    [(set_attr "iscompact" "true,false")
     (set_attr "predicable" "no,yes")
     (set_attr "cond" "set")
     (set_attr "type" "compare")
     (set_attr "length" "*,4")])
  
- ; combine suffers from 'simplifications' that replace a one-bit zero
- ; extract with a shift if it can prove that the upper bits are zero.
- ; arc_reorg sees the code after sched2, which can have caused our
- ; inputs to be clobbered even if they were not clobbered before.
- ; Therefore, add a third way to convert btst / b{eq,ne} to bbit{0,1}
- ; OTOH, this is somewhat marginal, and can leat to out-of-range
- ; bbit (i.e. bad scheduling) and missed conditional execution,
- ; so make this an option.
- (define_peephole2
-   [(set (reg:CC_ZN CC_REG)
- 	(compare:CC_ZN
- 	  (zero_extract:SI (match_operand:SI 0 "register_operand" "")
- 			   (const_int 1)
- 			   (match_operand:SI 1 "nonmemory_operand" ""))
- 	  (const_int 0)))
-    (set (pc)
- 	(if_then_else (match_operator 3 "equality_comparison_operator"
- 				      [(reg:CC_ZN CC_REG) (const_int 0)])
- 		      (label_ref (match_operand 2 "" ""))
- 		      (pc)))]
-   "TARGET_BBIT_PEEPHOLE && peep2_regno_dead_p (2, CC_REG)"
-   [(parallel [(set (pc)
- 		   (if_then_else
- 		     (match_op_dup 3
- 		       [(zero_extract:SI (match_dup 0)
- 					 (const_int 1) (match_dup 1))
- 			(const_int 0)])
- 		     (label_ref (match_dup 2))
- 		     (pc)))
- 	      (clobber (reg:CC_ZN CC_REG))])])
- 
  (define_insn "*cmpsi_cc_z_insn"
    [(set (reg:CC_Z CC_REG)
  	(compare:CC_Z (match_operand:SI 0 "register_operand"  "q,c")
  		      (match_operand:SI 1 "p2_immediate_operand"  "O,n")))]
    ""
    "@
! 	cmp%? %0,%1%&
! 	bxor.f 0,%0,%z1"
    [(set_attr "type" "compare,compare")
     (set_attr "iscompact" "true,false")
     (set_attr "cond" "set,set_zn")
--- 3811,3831 ----
  			   (match_operand:SI 1 "nonmemory_operand" "L,Lc"))
  	  (const_int 0)))]
    ""
!   "btst%?\\t%0,%1"
    [(set_attr "iscompact" "true,false")
     (set_attr "predicable" "no,yes")
     (set_attr "cond" "set")
     (set_attr "type" "compare")
     (set_attr "length" "*,4")])
  
  (define_insn "*cmpsi_cc_z_insn"
    [(set (reg:CC_Z CC_REG)
  	(compare:CC_Z (match_operand:SI 0 "register_operand"  "q,c")
  		      (match_operand:SI 1 "p2_immediate_operand"  "O,n")))]
    ""
    "@
! 	cmp%?\\t%0,%1
! 	bxor.f\\t0,%0,%z1"
    [(set_attr "type" "compare,compare")
     (set_attr "iscompact" "true,false")
     (set_attr "cond" "set,set_zn")
*************** archs4x, archs4xd"
*** 3632,3638 ****
  	(compare:CC_C (match_operand:SI 0 "register_operand"   "q, q,  h, c,  q,  c")
  		      (match_operand:SI 1 "nonmemory_operand" "cO,hO,Cm1,cI,Cal,Cal")))]
    ""
!   "cmp%? %0,%1%&"
    [(set_attr "type" "compare")
     (set_attr "iscompact" "true,true,true,false,true_limm,false")
     (set_attr "cond" "set")
--- 3836,3842 ----
  	(compare:CC_C (match_operand:SI 0 "register_operand"   "q, q,  h, c,  q,  c")
  		      (match_operand:SI 1 "nonmemory_operand" "cO,hO,Cm1,cI,Cal,Cal")))]
    ""
!   "cmp%?\\t%0,%1"
    [(set_attr "type" "compare")
     (set_attr "iscompact" "true,true,true,false,true_limm,false")
     (set_attr "cond" "set")
*************** archs4x, archs4xd"
*** 3686,3697 ****
  (define_expand "scc_insn"
    [(set (match_operand:SI 0 "dest_reg_operand" "=w") (match_operand:SI 1 ""))])
  
  (define_insn_and_split "*scc_insn"
    [(set (match_operand:SI 0 "dest_reg_operand" "=w")
  	(match_operator:SI 1 "proper_comparison_operator" [(reg CC_REG) (const_int 0)]))]
    ""
    "#"
!   "reload_completed"
    [(set (match_dup 0) (const_int 1))
     (cond_exec
       (match_dup 1)
--- 3890,3913 ----
  (define_expand "scc_insn"
    [(set (match_operand:SI 0 "dest_reg_operand" "=w") (match_operand:SI 1 ""))])
  
+ (define_mode_iterator CC_ltu [CC_C CC])
+ 
+ (define_insn "scc_ltu_<mode>"
+   [(set (match_operand:SI 0 "dest_reg_operand" "=w")
+         (ltu:SI (reg:CC_ltu CC_REG) (const_int 0)))]
+   ""
+   "rlc\\t%0,0"
+   [(set_attr "type" "shift")
+    (set_attr "predicable" "no")
+    (set_attr "length" "4")])
+ 
  (define_insn_and_split "*scc_insn"
    [(set (match_operand:SI 0 "dest_reg_operand" "=w")
  	(match_operator:SI 1 "proper_comparison_operator" [(reg CC_REG) (const_int 0)]))]
    ""
    "#"
!   "reload_completed
!    && GET_CODE (operands[1]) != LTU"
    [(set (match_dup 0) (const_int 1))
     (cond_exec
       (match_dup 1)
*************** archs4x, archs4xd"
*** 3730,3736 ****
       (set (match_operand:SI 0 "dest_reg_operand" "=w,w")
  	  (match_operand:SI 1 "nonmemory_operand" "LRac,?Cal")))]
    ""
!   "mov.%d3 %0,%1"
    [(set_attr "type" "cmove")
     (set_attr "length" "4,8")])
  
--- 3946,3952 ----
       (set (match_operand:SI 0 "dest_reg_operand" "=w,w")
  	  (match_operand:SI 1 "nonmemory_operand" "LRac,?Cal")))]
    ""
!   "mov.%d3\\t%0,%1"
    [(set_attr "type" "cmove")
     (set_attr "length" "4,8")])
  
*************** archs4x, archs4xd"
*** 3766,3774 ****
  		    (match_operand:SI 2 "nonmemory_operand" "cL,0,0"))))]
    ""
    "@
! 	sub.%d4 %0,%1,%2
! 	rsub.%d4 %0,%2,%1
! 	rsub.%d4 %0,%2,%1"
    [(set_attr "cond" "use")
     (set_attr "type" "cmove")
     (set_attr "length" "4,4,8")])
--- 3982,3990 ----
  		    (match_operand:SI 2 "nonmemory_operand" "cL,0,0"))))]
    ""
    "@
! 	sub.%d4\\t%0,%1,%2
! 	rsub.%d4\\t%0,%2,%1
! 	rsub.%d4\\t%0,%2,%1"
    [(set_attr "cond" "use")
     (set_attr "type" "cmove")
     (set_attr "length" "4,4,8")])
*************** archs4x, archs4xd"
*** 3782,3788 ****
  	    [(match_operand:SI 1 "register_operand" "0,0")
  	     (match_operand:SI 2 "nonmemory_operand" "cL,Cal")])))]
    ""
!   "%O3.%d5 %0,%1,%2"
    [(set_attr "cond" "use")
     (set_attr "type" "cmove")
     (set_attr "length" "4,8")])
--- 3998,4004 ----
  	    [(match_operand:SI 1 "register_operand" "0,0")
  	     (match_operand:SI 2 "nonmemory_operand" "cL,Cal")])))]
    ""
!   "%O3.%d5\\t%0,%1,%2"
    [(set_attr "cond" "use")
     (set_attr "type" "cmove")
     (set_attr "length" "4,8")])
*************** archs4x, archs4xd"
*** 3815,3833 ****
    ""
    "*
  {
-   if (arc_ccfsm_branch_deleted_p ())
-     {
-       arc_ccfsm_record_branch_deleted ();
-       return \"; branch deleted, next insns conditionalized\";
-     }
-   else
-     {
-       arc_ccfsm_record_condition (operands[1], false, insn, 0);
        if (get_attr_length (insn) == 2)
! 	 return \"b%d1%? %^%l0%&\";
        else
! 	 return \"b%d1%# %^%l0\";
!     }
  }"
    [(set_attr "type" "branch")
     (set
--- 4031,4040 ----
    ""
    "*
  {
        if (get_attr_length (insn) == 2)
! 	 return \"b%d1%?\\t%l0\";
        else
! 	 return \"b%d1%*\\t%l0\";
  }"
    [(set_attr "type" "branch")
     (set
*************** archs4x, archs4xd"
*** 3863,3884 ****
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))]
    "REVERSIBLE_CC_MODE (GET_MODE (XEXP (operands[1], 0)))"
!   "*
! {
!   if (arc_ccfsm_branch_deleted_p ())
!     {
!       arc_ccfsm_record_branch_deleted ();
!       return \"; branch deleted, next insns conditionalized\";
!     }
!   else
!     {
!       arc_ccfsm_record_condition (operands[1], true, insn, 0);
!       if (get_attr_length (insn) == 2)
! 	 return \"b%D1%? %^%l0\";
!       else
! 	 return \"b%D1%# %^%l0\";
!     }
! }"
    [(set_attr "type" "branch")
     (set
       (attr "length")
--- 4070,4076 ----
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))]
    "REVERSIBLE_CC_MODE (GET_MODE (XEXP (operands[1], 0)))"
!   "b%D1%?\\t%l0"
    [(set_attr "type" "branch")
     (set
       (attr "length")
*************** archs4x, archs4xd"
*** 3916,3922 ****
  (define_insn "jump_i"
    [(set (pc) (label_ref (match_operand 0 "" "")))]
    "!TARGET_LONG_CALLS_SET || !CROSSING_JUMP_P (insn)"
!   "b%!%* %^%l0%&"
    [(set_attr "type" "uncond_branch")
     (set (attr "iscompact")
  	(if_then_else (match_test "get_attr_length (insn) == 2")
--- 4108,4114 ----
  (define_insn "jump_i"
    [(set (pc) (label_ref (match_operand 0 "" "")))]
    "!TARGET_LONG_CALLS_SET || !CROSSING_JUMP_P (insn)"
!   "b%!%*\\t%l0"
    [(set_attr "type" "uncond_branch")
     (set (attr "iscompact")
  	(if_then_else (match_test "get_attr_length (insn) == 2")
*************** archs4x, archs4xd"
*** 3945,3955 ****
    [(set (pc) (match_operand:SI 0 "nonmemory_operand" "L,I,Cal,q,r"))]
    ""
    "@
!    j%!%* %0%&
!    j%!%* %0%&
!    j%!%* %0%&
!    j%!%* [%0]%&
!    j%!%* [%0]%&"
    [(set_attr "type" "jump")
     (set_attr "iscompact" "false,false,false,maybe,false")
     (set_attr "cond" "canuse,canuse_limm,canuse,canuse,canuse")])
--- 4137,4147 ----
    [(set (pc) (match_operand:SI 0 "nonmemory_operand" "L,I,Cal,q,r"))]
    ""
    "@
!    j%!%*\\t%0
!    j%!%*\\t%0
!    j%!%*\\t%0
!    j%!%*\\t[%0]
!    j%!%*\\t[%0]"
    [(set_attr "type" "jump")
     (set_attr "iscompact" "false,false,false,maybe,false")
     (set_attr "cond" "canuse,canuse_limm,canuse,canuse,canuse")])
*************** archs4x, archs4xd"
*** 4034,4047 ****
    switch (GET_MODE (diff_vec))
      {
      case E_SImode:
!       return \"ld.as\\t%0,[%1,%2]%&\";
      case E_HImode:
        if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
  	return \"ld%_.as\\t%0,[%1,%2]\";
        return \"ld%_.x.as\\t%0,[%1,%2]\";
      case E_QImode:
        if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
! 	return \"ldb%?\\t%0,[%1,%2]%&\";
        return \"ldb.x\\t%0,[%1,%2]\";
      default:
        gcc_unreachable ();
--- 4226,4239 ----
    switch (GET_MODE (diff_vec))
      {
      case E_SImode:
!       return \"ld.as\\t%0,[%1,%2]\";
      case E_HImode:
        if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
  	return \"ld%_.as\\t%0,[%1,%2]\";
        return \"ld%_.x.as\\t%0,[%1,%2]\";
      case E_QImode:
        if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
! 	return \"ldb%?\\t%0,[%1,%2]\";
        return \"ldb.x\\t%0,[%1,%2]\";
      default:
        gcc_unreachable ();
*************** archs4x, archs4xd"
*** 4077,4083 ****
    [(set (pc) (match_operand:SI 0 "register_operand" "Cal,q,c"))
     (use (label_ref (match_operand 1 "" "")))]
    ""
!   "j%!%* [%0]%&"
    [(set_attr "type" "jump")
     (set_attr "iscompact" "false,maybe,false")
     (set_attr "cond" "canuse")])
--- 4269,4275 ----
    [(set (pc) (match_operand:SI 0 "register_operand" "Cal,q,c"))
     (use (label_ref (match_operand 1 "" "")))]
    ""
!   "j%!%* [%0]"
    [(set_attr "type" "jump")
     (set_attr "iscompact" "false,maybe,false")
     (set_attr "cond" "canuse")])
*************** archs4x, archs4xd"
*** 4113,4127 ****
     (clobber (reg:SI 31))]
    ""
    "@
!    jl%!%* [%0]%&
!    jl%!%* [%0]
!    jli_s %S0
!    sjli  %S0
!    bl%!%* %P0
!    bl%!%* %P0
!    jl%!%* %0
!    jl%* %0
!    jl%! %0"
    [(set_attr "type" "call,call,call_no_delay_slot,call_no_delay_slot,call,call,call,call,call_no_delay_slot")
     (set_attr "iscompact" "maybe,*,true,*,*,*,*,*,*")
     (set_attr "predicable" "no,yes,no,no,yes,no,yes,no,yes")
--- 4305,4319 ----
     (clobber (reg:SI 31))]
    ""
    "@
!    jl%!%*\\t[%0]
!    jl%!%*\\t[%0]
!    jli_s\\t%J0
!    sjli\\t%J0
!    bl%!%*\\t%P0
!    bl%!%*\\t%P0
!    jl%!%*\\t%0
!    jl%*\\t%0
!    jl%!\\t%0"
    [(set_attr "type" "call,call,call_no_delay_slot,call_no_delay_slot,call,call,call,call,call_no_delay_slot")
     (set_attr "iscompact" "maybe,*,true,*,*,*,*,*,*")
     (set_attr "predicable" "no,yes,no,no,yes,no,yes,no,yes")
*************** archs4x, archs4xd"
*** 4157,4171 ****
     (clobber (reg:SI 31))]
    ""
    "@
!    jl%!%* [%1]%&
!    jl%!%* [%1]
!    jli_s %S1
!    sjli  %S1
!    bl%!%* %P1;1
!    bl%!%* %P1;1
!    jl%!%* %1
!    jl%* %1
!    jl%! %1"
    [(set_attr "type" "call,call,call_no_delay_slot,call_no_delay_slot,call,call,call,call,call_no_delay_slot")
     (set_attr "iscompact" "maybe,*,true,false,*,*,*,*,*")
     (set_attr "predicable" "no,yes,no,no,yes,no,yes,no,yes")
--- 4349,4363 ----
     (clobber (reg:SI 31))]
    ""
    "@
!    jl%!%*\\t[%1]
!    jl%!%*\\t[%1]
!    jli_s\\t%J1
!    sjli\\t%J1
!    bl%!%*\\t%P1;1
!    bl%!%*\\t%P1;1
!    jl%!%*\\t%1
!    jl%*\\t%1
!    jl%!\\t%1"
    [(set_attr "type" "call,call,call_no_delay_slot,call_no_delay_slot,call,call,call,call,call_no_delay_slot")
     (set_attr "iscompact" "maybe,*,true,false,*,*,*,*,*")
     (set_attr "predicable" "no,yes,no,no,yes,no,yes,no,yes")
*************** archs4x, archs4xd"
*** 4383,4390 ****
  	  (clrsb:HI (match_operand:HI 1 "general_operand" "cL,Cal"))))]
    "TARGET_NORM"
    "@
!    norm%_ \t%0, %1
!    norm%_ \t%0, %1"
    [(set_attr "length" "4,8")
     (set_attr "type" "two_cycle_core,two_cycle_core")])
  
--- 4575,4582 ----
  	  (clrsb:HI (match_operand:HI 1 "general_operand" "cL,Cal"))))]
    "TARGET_NORM"
    "@
!    norm%_\\t%0,%1
!    norm%_\\t%0,%1"
    [(set_attr "length" "4,8")
     (set_attr "type" "two_cycle_core,two_cycle_core")])
  
*************** archs4x, archs4xd"
*** 4481,4498 ****
  [(set_attr "type" "unary")
   (set_attr "length" "20")])
  
- (define_insn "swap"
-   [(set (match_operand:SI  0 "dest_reg_operand" "=w,w,w")
- 	(unspec:SI [(match_operand:SI 1 "general_operand" "L,Cal,c")]
- 			    UNSPEC_ARC_SWAP))]
-   "TARGET_SWAP"
-   "@
-    swap \t%0, %1
-    swap \t%0, %1
-    swap \t%0, %1"
-   [(set_attr "length" "4,8,4")
-    (set_attr "type" "two_cycle_core,two_cycle_core,two_cycle_core")])
- 
  (define_insn "divaw"
    [(set (match_operand:SI 0 "dest_reg_operand" "=&w,&w,&w")
  			  (unspec:SI [(div:SI (match_operand:SI 1 "general_operand" "r,Cal,r")
--- 4673,4678 ----
*************** archs4x, archs4xd"
*** 4500,4508 ****
  					   UNSPEC_ARC_DIVAW))]
    "TARGET_ARC700 || TARGET_EA_SET"
    "@
!    divaw \t%0, %1, %2
!    divaw \t%0, %1, %2
!    divaw \t%0, %1, %2"
    [(set_attr "length" "4,8,8")
     (set_attr "type" "divaw,divaw,divaw")])
  
--- 4680,4688 ----
  					   UNSPEC_ARC_DIVAW))]
    "TARGET_ARC700 || TARGET_EA_SET"
    "@
!    divaw\\t%0,%1,%2
!    divaw\\t%0,%1,%2
!    divaw\\t%0,%1,%2"
    [(set_attr "length" "4,8,8")
     (set_attr "type" "divaw,divaw,divaw")])
  
*************** archs4x, archs4xd"
*** 4511,4519 ****
  		   VUNSPEC_ARC_FLAG)]
    ""
    "@
!     flag%? %0
!     flag %0
!     flag%? %0"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "misc,misc,misc")
     (set_attr "predicable" "yes,no,yes")
--- 4691,4699 ----
  		   VUNSPEC_ARC_FLAG)]
    ""
    "@
!     flag%?\\t%0
!     flag\\t%0
!     flag%?\\t%0"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "misc,misc,misc")
     (set_attr "predicable" "yes,no,yes")
*************** archs4x, archs4xd"
*** 4563,4569 ****
    [(unspec_volatile [(match_operand:SI 0 "nonmemory_operand" "Lr")]
  		   VUNSPEC_ARC_SLEEP)]
    ""
!   "sleep %0"
    [(set_attr "length" "4")
    (set_attr "type" "misc")])
  
--- 4743,4749 ----
    [(unspec_volatile [(match_operand:SI 0 "nonmemory_operand" "Lr")]
  		   VUNSPEC_ARC_SLEEP)]
    ""
!   "sleep\\t%0"
    [(set_attr "length" "4")
    (set_attr "type" "misc")])
  
*************** archs4x, archs4xd"
*** 4587,4594 ****
    ""
    "*
      if (check_if_valid_regno_const (operands, 1))
!       return \"mov \tr%1, %0\";
!     return \"mov \tr%1, %0\";
    "
    [(set_attr "length" "4")
     (set_attr "type" "unary")])
--- 4767,4774 ----
    ""
    "*
      if (check_if_valid_regno_const (operands, 1))
!       return \"mov\\tr%1,%0\";
!     return \"mov\\tr%1,%0\";
    "
    [(set_attr "length" "4")
     (set_attr "type" "unary")])
*************** archs4x, archs4xd"
*** 4676,4683 ****
  {
    if (which_alternative == 0)
      {
!       arc_toggle_unalign ();
!       return \"trap_s %0\";
      }
  
    /* Keep this message in sync with the one in arc.cc:arc_expand_builtin,
--- 4856,4862 ----
  {
    if (which_alternative == 0)
      {
!       return \"trap_s\\t%0\";
      }
  
    /* Keep this message in sync with the one in arc.cc:arc_expand_builtin,
*************** archs4x, archs4xd"
*** 4837,4848 ****
  				      [(reg CC_REG) (const_int 0)])
  		      (simple_return) (pc)))]
    "reload_completed"
! {
!   output_asm_insn (\"j%d0%!%#\\t[blink]\", operands);
!   /* record the condition in case there is a delay insn.  */
!   arc_ccfsm_record_condition (operands[0], false, insn, 0);
!   return \"\";
! }
    [(set_attr "type" "return")
     (set_attr "cond" "use")
     (set_attr "iscompact" "maybe" )
--- 5016,5022 ----
  				      [(reg CC_REG) (const_int 0)])
  		      (simple_return) (pc)))]
    "reload_completed"
!   "j%d0%!%*\\t[blink]"
    [(set_attr "type" "return")
     (set_attr "cond" "use")
     (set_attr "iscompact" "maybe" )
*************** archs4x, archs4xd"
*** 4881,4893 ****
     "*
       switch (get_attr_length (insn))
       {
!        case 2: return \"br%d0%? %1, %2, %^%l3%&\";
!        case 4: return \"br%d0%* %1, %B2, %^%l3\";
         case 8: if (!brcc_nolimm_operator (operands[0], VOIDmode))
! 		 return \"br%d0%* %1, %B2, %^%l3\";
         /* FALLTHRU */
         case 6: case 10:
!        case 12:return \"cmp%? %1, %B2\\n\\tb%d0%* %^%l3%& ;br%d0 out of range\";
         default: fprintf (stderr, \"unexpected length %d\\n\", get_attr_length (insn)); fflush (stderr); gcc_unreachable ();
       }
     "
--- 5055,5067 ----
     "*
       switch (get_attr_length (insn))
       {
!        case 2: return \"br%d0%?\\t%1,%2,%l3\";
!        case 4: return \"br%d0%*\\t%1,%B2,%l3\";
         case 8: if (!brcc_nolimm_operator (operands[0], VOIDmode))
! 		 return \"br%d0%*\\t%1,%B2,%l3\";
         /* FALLTHRU */
         case 6: case 10:
!        case 12:return \"cmp%?\\t%1,%B2\\n\\tb%d0%*\\t%l3 ;br%d0 out of range\";
         default: fprintf (stderr, \"unexpected length %d\\n\", get_attr_length (insn)); fflush (stderr); gcc_unreachable ();
       }
     "
*************** archs4x, archs4xd"
*** 4949,4957 ****
    switch (get_attr_length (insn))
      {
        case 4: return (GET_CODE (operands[3]) == EQ
! 		      ? \"bbit0%* %1,%2,%0\" : \"bbit1%* %1,%2,%0\");
        case 6:
!       case 8: return \"btst%? %1,%2\n\tb%d3%* %0; bbit out of range\";
        default: gcc_unreachable ();
      }
  }
--- 5123,5131 ----
    switch (get_attr_length (insn))
      {
        case 4: return (GET_CODE (operands[3]) == EQ
! 		      ? \"bbit0%*\\t%1,%2,%0\" : \"bbit1%*\\t%1,%2,%0\");
        case 6:
!       case 8: return \"btst%?\\t%1,%2\n\tb%d3%*\\t%0; bbit out of range\";
        default: gcc_unreachable ();
      }
  }
*************** archs4x, archs4xd"
*** 5066,5072 ****
     (clobber (match_scratch:SI 2 "=X,r"))]
    "TARGET_DBNZ"
    "@
!    dbnz%#\\t%0,%l1
     #"
    "TARGET_DBNZ && reload_completed && memory_operand (operands[0], SImode)"
    [(set (match_dup 2) (match_dup 0))
--- 5240,5246 ----
     (clobber (match_scratch:SI 2 "=X,r"))]
    "TARGET_DBNZ"
    "@
!    dbnz%*\\t%0,%l1
     #"
    "TARGET_DBNZ && reload_completed && memory_operand (operands[0], SImode)"
    [(set (match_dup 2) (match_dup 0))
*************** archs4x, archs4xd"
*** 5150,5156 ****
    [(set (match_operand:SF 0 "dest_reg_operand"    "=q,r,r")
  	(abs:SF (match_operand:SF 1 "register_operand" "0,0,r")))]
    ""
!   "bclr%?\\t%0,%1,31%&"
    [(set_attr "type" "unary")
     (set_attr "iscompact" "maybe,false,false")
     (set_attr "length" "2,4,4")
--- 5324,5330 ----
    [(set (match_operand:SF 0 "dest_reg_operand"    "=q,r,r")
  	(abs:SF (match_operand:SF 1 "register_operand" "0,0,r")))]
    ""
!   "bclr%?\\t%0,%1,31"
    [(set_attr "type" "unary")
     (set_attr "iscompact" "maybe,false,false")
     (set_attr "length" "2,4,4")
*************** archs4x, archs4xd"
*** 5248,5254 ****
    [(set (match_operand:SI 0 "register_operand"           "= r,r")
  	(bswap:SI (match_operand:SI 1 "nonmemory_operand" "rL,Cal")))]
    "TARGET_V2 && TARGET_SWAP"
!   "swape %0, %1"
    [(set_attr "length" "4,8")
     (set_attr "type" "two_cycle_core")])
  
--- 5422,5428 ----
    [(set (match_operand:SI 0 "register_operand"           "= r,r")
  	(bswap:SI (match_operand:SI 1 "nonmemory_operand" "rL,Cal")))]
    "TARGET_V2 && TARGET_SWAP"
!   "swape\\t%0,%1"
    [(set_attr "length" "4,8")
     (set_attr "type" "two_cycle_core")])
  
*************** archs4x, archs4xd"
*** 5281,5289 ****
    "TARGET_HS"
    {
     if (INTVAL (operands[2]))
!       return "prefetchw [%0, %1]";
     else
!       return "prefetch [%0, %1]";
    }
    [(set_attr "type" "load")
     (set_attr "length" "4,4,8")])
--- 5455,5463 ----
    "TARGET_HS"
    {
     if (INTVAL (operands[2]))
!       return "prefetchw\\t[%0, %1]";
     else
!       return "prefetch\\t[%0, %1]";
    }
    [(set_attr "type" "load")
     (set_attr "length" "4,4,8")])
*************** archs4x, archs4xd"
*** 5296,5304 ****
    {
     operands[0] = gen_rtx_MEM (SImode, operands[0]);
     if (INTVAL (operands[1]))
!       return "prefetchw%U0 %0";
     else
!       return "prefetch%U0 %0";
     }
    [(set_attr "type" "load")
     (set_attr "length" "8")])
--- 5470,5478 ----
    {
     operands[0] = gen_rtx_MEM (SImode, operands[0]);
     if (INTVAL (operands[1]))
!       return "prefetchw%U0\\t%0";
     else
!       return "prefetch%U0\\t%0";
     }
    [(set_attr "type" "load")
     (set_attr "length" "8")])
*************** archs4x, archs4xd"
*** 5308,5314 ****
  	(div:SI (match_operand:SI 1 "nonmemory_operand" "0,r,Cal,0,r,0,  0,  r")
  		(match_operand:SI 2 "nonmemory_operand" "r,r,  r,L,L,I,Cal,Cal")))]
    "TARGET_DIVREM"
!   "div%? %0, %1, %2"
    [(set_attr "length" "4,4,8,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "div_rem")
--- 5482,5488 ----
  	(div:SI (match_operand:SI 1 "nonmemory_operand" "0,r,Cal,0,r,0,  0,  r")
  		(match_operand:SI 2 "nonmemory_operand" "r,r,  r,L,L,I,Cal,Cal")))]
    "TARGET_DIVREM"
!   "div%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,8,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "div_rem")
*************** archs4x, archs4xd"
*** 5321,5327 ****
  	(udiv:SI (match_operand:SI 1 "nonmemory_operand" "0,r,Cal,0,r,0,  0,  r")
  		 (match_operand:SI 2 "nonmemory_operand" "r,r,  r,L,L,I,Cal,Cal")))]
    "TARGET_DIVREM"
!   "divu%? %0, %1, %2"
    [(set_attr "length" "4,4,8,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "div_rem")
--- 5495,5501 ----
  	(udiv:SI (match_operand:SI 1 "nonmemory_operand" "0,r,Cal,0,r,0,  0,  r")
  		 (match_operand:SI 2 "nonmemory_operand" "r,r,  r,L,L,I,Cal,Cal")))]
    "TARGET_DIVREM"
!   "divu%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,8,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "div_rem")
*************** archs4x, archs4xd"
*** 5334,5340 ****
  	(mod:SI (match_operand:SI 1 "nonmemory_operand" "0,r,Cal,0,r,0,  0,  r")
  		(match_operand:SI 2 "nonmemory_operand" "r,r,  r,L,L,I,Cal,Cal")))]
    "TARGET_DIVREM"
!   "rem%? %0, %1, %2"
    [(set_attr "length" "4,4,8,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "div_rem")
--- 5508,5514 ----
  	(mod:SI (match_operand:SI 1 "nonmemory_operand" "0,r,Cal,0,r,0,  0,  r")
  		(match_operand:SI 2 "nonmemory_operand" "r,r,  r,L,L,I,Cal,Cal")))]
    "TARGET_DIVREM"
!   "rem%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,8,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "div_rem")
*************** archs4x, archs4xd"
*** 5347,5353 ****
  	(umod:SI (match_operand:SI 1 "nonmemory_operand" "0,r,Cal,0,r,0,  0,  r")
  		 (match_operand:SI 2 "nonmemory_operand" "r,r,  r,L,L,I,Cal,Cal")))]
    "TARGET_DIVREM"
!   "remu%? %0, %1, %2"
    [(set_attr "length" "4,4,8,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "div_rem")
--- 5521,5527 ----
  	(umod:SI (match_operand:SI 1 "nonmemory_operand" "0,r,Cal,0,r,0,  0,  r")
  		 (match_operand:SI 2 "nonmemory_operand" "r,r,  r,L,L,I,Cal,Cal")))]
    "TARGET_DIVREM"
!   "remu%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,8,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "div_rem")
*************** archs4x, archs4xd"
*** 5363,5369 ****
  	(arcCC_cond:SI (match_operand:SI 1 "register_operand"  "0,r,0,r,0,0,r")
  		       (match_operand:SI 2 "nonmemory_operand" "r,r,L,L,I,n,n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "set<code>%? %0, %1, %2"
    [(set_attr "length" "4,4,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "compare")
--- 5537,5543 ----
  	(arcCC_cond:SI (match_operand:SI 1 "register_operand"  "0,r,0,r,0,0,r")
  		       (match_operand:SI 2 "nonmemory_operand" "r,r,L,L,I,n,n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "set<code>%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "compare")
*************** archs4x, archs4xd"
*** 5376,5382 ****
  	(ltu:SI (match_operand:SI 1 "register_operand"  "0,r,0,r,0,  0,  r")
  		(match_operand:SI 2 "nonmemory_operand" "r,r,L,L,I,  n,  n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "setlo%? %0, %1, %2"
    [(set_attr "length" "4,4,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "compare")
--- 5550,5556 ----
  	(ltu:SI (match_operand:SI 1 "register_operand"  "0,r,0,r,0,  0,  r")
  		(match_operand:SI 2 "nonmemory_operand" "r,r,L,L,I,  n,  n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "setlo%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "compare")
*************** archs4x, archs4xd"
*** 5389,5395 ****
  	(geu:SI (match_operand:SI 1 "register_operand"  "0,r,0,r,0,  0,  r")
  		(match_operand:SI 2 "nonmemory_operand" "r,r,L,L,I,  n,  n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "seths%? %0, %1, %2"
    [(set_attr "length" "4,4,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "compare")
--- 5563,5569 ----
  	(geu:SI (match_operand:SI 1 "register_operand"  "0,r,0,r,0,  0,  r")
  		(match_operand:SI 2 "nonmemory_operand" "r,r,L,L,I,  n,  n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "seths%?\\t%0,%1,%2"
    [(set_attr "length" "4,4,4,4,4,8,8")
     (set_attr "iscompact" "false")
     (set_attr "type" "compare")
*************** archs4x, archs4xd"
*** 5403,5409 ****
  	(gtu:SI (match_operand:SI 1 "register_operand"  "r,r,  r,r")
  		(match_operand:SI 2 "nonmemory_operand" "0,r,C62,n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "setlo%? %0, %2, %1"
    "reload_completed
     && CONST_INT_P (operands[2])
     && satisfies_constraint_C62 (operands[2])"
--- 5577,5583 ----
  	(gtu:SI (match_operand:SI 1 "register_operand"  "r,r,  r,r")
  		(match_operand:SI 2 "nonmemory_operand" "0,r,C62,n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "setlo%?\\t%0,%2,%1"
    "reload_completed
     && CONST_INT_P (operands[2])
     && satisfies_constraint_C62 (operands[2])"
*************** archs4x, archs4xd"
*** 5426,5432 ****
  	(leu:SI (match_operand:SI 1 "register_operand"  "r,r,  r,r")
  		(match_operand:SI 2 "nonmemory_operand" "0,r,C62,n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "seths%? %0, %2, %1"
    "reload_completed
     && CONST_INT_P (operands[2])
     && satisfies_constraint_C62 (operands[2])"
--- 5600,5606 ----
  	(leu:SI (match_operand:SI 1 "register_operand"  "r,r,  r,r")
  		(match_operand:SI 2 "nonmemory_operand" "0,r,C62,n")))]
    "TARGET_V2 && TARGET_CODE_DENSITY"
!   "seths%?\\t%0,%2,%1"
    "reload_completed
     && CONST_INT_P (operands[2])
     && satisfies_constraint_C62 (operands[2])"
*************** archs4x, archs4xd"
*** 5489,5497 ****
  		   VUNSPEC_ARC_KFLAG)]
    "TARGET_V2"
    "@
!     kflag%? %0
!     kflag %0
!     kflag%? %0"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "misc,misc,misc")
     (set_attr "predicable" "yes,no,yes")
--- 5663,5671 ----
  		   VUNSPEC_ARC_KFLAG)]
    "TARGET_V2"
    "@
!     kflag%?\\t%0
!     kflag\\t%0
!     kflag%?\\t%0"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "misc,misc,misc")
     (set_attr "predicable" "yes,no,yes")
*************** archs4x, archs4xd"
*** 5502,5508 ****
  	(unspec_volatile:SI [(match_operand:SI 1 "immediate_operand" "N")]
  			    VUNSPEC_ARC_CLRI))]
    "TARGET_V2"
!   "clri  %0"
    [(set_attr "length" "4")
     (set_attr "type" "misc")])
  
--- 5676,5682 ----
  	(unspec_volatile:SI [(match_operand:SI 1 "immediate_operand" "N")]
  			    VUNSPEC_ARC_CLRI))]
    "TARGET_V2"
!   "clri\\t%0"
    [(set_attr "length" "4")
     (set_attr "type" "misc")])
  
*************** archs4x, archs4xd"
*** 5764,5770 ****
  			 (match_operand:SI 2 "const_int_operand" "n")
  			 (match_operand:SI 3 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32"
!   "movb.cl %0,%1,0,%3,%2"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
--- 5938,5944 ----
  			 (match_operand:SI 2 "const_int_operand" "n")
  			 (match_operand:SI 3 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32"
!   "movb.cl\\t%0,%1,0,%3,%2"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
*************** archs4x, archs4xd"
*** 5790,5797 ****
     && (register_operand (operands[3], SImode)
         || satisfies_constraint_C18 (operands[1]))"
    "@
!    movbi %0,%0,%3,%2,%1
!    movb %0,%0,%3,%2,0,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
--- 5964,5971 ----
     && (register_operand (operands[3], SImode)
         || satisfies_constraint_C18 (operands[1]))"
    "@
!    movbi\\t%0,%0,%3,%2,%1
!    movb\\t%0,%0,%3,%2,0,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
*************** archs4x, archs4xd"
*** 5803,5809 ****
  			 (match_dup 1)
  			 (match_operand:SI 4 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS"
!   "movb %0,%0,%3,%2,%4,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
--- 5977,5983 ----
  			 (match_dup 1)
  			 (match_operand:SI 4 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS"
!   "movb\\t%0,%0,%3,%2,%4,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
*************** archs4x, archs4xd"
*** 5815,5821 ****
  			 (match_dup 1)
  			 (match_operand:SI 4 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS"
!   "movb %0,%0,%3,%2,%4,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
--- 5989,5995 ----
  			 (match_dup 1)
  			 (match_operand:SI 4 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS"
!   "movb\\t%0,%0,%3,%2,%4,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
*************** archs4x, archs4xd"
*** 5827,5833 ****
  		     (match_operand:SI 4 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS
     && INTVAL (operands[4]) + INTVAL (operands[1]) <= 32"
!   "movb %0,%0,%3,%2,%4,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
--- 6001,6007 ----
  		     (match_operand:SI 4 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS
     && INTVAL (operands[4]) + INTVAL (operands[1]) <= 32"
!   "movb\\t%0,%0,%3,%2,%4,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
*************** archs4x, archs4xd"
*** 5842,5848 ****
  		     (match_operand:SI 4 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS
     && INTVAL (operands[4]) + INTVAL (operands[1]) <= 32"
!   "movb %0,%0,%3,%2,%4,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
--- 6016,6022 ----
  		     (match_operand:SI 4 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS
     && INTVAL (operands[4]) + INTVAL (operands[1]) <= 32"
!   "movb\\t%0,%0,%3,%2,%4,%1"
    [(set_attr "type" "shift")
     (set_attr "length" "4")])
  
*************** archs4x, archs4xd"
*** 5873,5879 ****
  			 (match_operand:SI 7 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS"
  {
!   output_asm_insn ("mrgb %0,%0,%6,%2,%3,%1,%5,%7,%4", operands);
    /* The ;%? updates the known unalignment.  */
    return arc_short_long (insn, ";%?", "nop_s");
  }
--- 6047,6053 ----
  			 (match_operand:SI 7 "const_int_operand" "n")))]
    "TARGET_NPS_BITOPS"
  {
!   output_asm_insn ("mrgb\\t%0,%0,%6,%2,%3,%1,%5,%7,%4", operands);
    /* The ;%? updates the known unalignment.  */
    return arc_short_long (insn, ";%?", "nop_s");
  }
*************** archs4x, archs4xd"
*** 5939,5945 ****
  		   (zero_extract:SI (match_dup 1) (match_dup 5) (match_dup 7)))])
     (match_dup 1)])
  
! (define_insn "*rotrsi3_cnt1"
    [(set (match_operand:SI 0 "dest_reg_operand"              "=r")
  	(rotatert:SI (match_operand:SI 1 "nonmemory_operand" "rL")
  		     (const_int 1)))]
--- 6113,6167 ----
  		   (zero_extract:SI (match_dup 1) (match_dup 5) (match_dup 7)))])
     (match_dup 1)])
  
! ;; Split sign-extension of single least significant bit as and x,$1;neg x
! (define_insn_and_split "*extvsi_1_0"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(sign_extract:SI (match_operand:SI 1 "register_operand" "0")
! 			 (const_int 1)
! 			 (const_int 0)))]
!   "!TARGET_BARREL_SHIFTER"
!   "#"
!   "&& 1"
!   [(set (match_dup 0) (and:SI (match_dup 1) (const_int 1)))
!    (set (match_dup 0) (neg:SI (match_dup 0)))]
!   ""
!   [(set_attr "length" "8")])
! 
! (define_insn_and_split "*extvsi_n_0"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(sign_extract:SI (match_operand:SI 1 "register_operand" "0")
! 			 (match_operand:QI 2 "const_int_operand")
! 			 (const_int 0)))]
!   "!TARGET_BARREL_SHIFTER
!    && IN_RANGE (INTVAL (operands[2]), 2,
! 		(optimize_insn_for_size_p () ? 28 : 30))"
!   "#"
!   "&& 1"
! [(set (match_dup 0) (and:SI (match_dup 0) (match_dup 3)))
!  (set (match_dup 0) (xor:SI (match_dup 0) (match_dup 4)))
!  (set (match_dup 0) (minus:SI (match_dup 0) (match_dup 4)))]
! {
!   int tmp = INTVAL (operands[2]);
!   operands[3] = GEN_INT (~(HOST_WIDE_INT_M1U << tmp));
!   operands[4] = GEN_INT (HOST_WIDE_INT_1U << (tmp - 1));
! }
!   [(set_attr "length" "14")])
! 
! (define_insn_and_split "rotlsi3_cnt1"
!   [(set (match_operand:SI 0 "dest_reg_operand"            "=r")
! 	(rotate:SI (match_operand:SI 1 "register_operand" "r")
! 		   (const_int 1)))]
!   "!TARGET_BARREL_SHIFTER"
!   "#"
!   "&& 1"
!   [(const_int 0)]
! {
!   emit_insn (gen_add_f (operands[0], operands[1], operands[1]));
!   emit_insn (gen_adc (operands[0], operands[0], const0_rtx));
!   DONE;
! })
! 
! (define_insn "rotrsi3_cnt1"
    [(set (match_operand:SI 0 "dest_reg_operand"              "=r")
  	(rotatert:SI (match_operand:SI 1 "nonmemory_operand" "rL")
  		     (const_int 1)))]
*************** archs4x, archs4xd"
*** 5959,5973 ****
     (set_attr "predicable" "no")
     (set_attr "length" "4")])
  
! (define_insn "*ashlsi2_cnt1"
    [(set (match_operand:SI 0 "dest_reg_operand"           "=q,w")
  	(ashift:SI (match_operand:SI 1 "register_operand" "q,c")
  		   (const_int 1)))]
    ""
!   "asl%? %0,%1%&"
!   [(set_attr "type" "shift")
     (set_attr "iscompact" "maybe,false")
!    (set_attr "length" "4")
     (set_attr "predicable" "no,no")])
  
  (define_insn "*ashlsi2_cnt8"
--- 6181,6195 ----
     (set_attr "predicable" "no")
     (set_attr "length" "4")])
  
! (define_insn "ashlsi3_cnt1"
    [(set (match_operand:SI 0 "dest_reg_operand"           "=q,w")
  	(ashift:SI (match_operand:SI 1 "register_operand" "q,c")
  		   (const_int 1)))]
    ""
!   "asl%?\\t%0,%1"
!   [(set_attr "type" "unary")
     (set_attr "iscompact" "maybe,false")
!    (set_attr "length" "*,4")
     (set_attr "predicable" "no,no")])
  
  (define_insn "*ashlsi2_cnt8"
*************** archs4x, archs4xd"
*** 5981,6017 ****
     (set_attr "length" "4")
     (set_attr "predicable" "no")])
  
! (define_insn "*ashlsi2_cnt16"
!   [(set (match_operand:SI 0 "register_operand"            "=r")
! 	(ashift:SI (match_operand:SI 1 "nonmemory_operand" "rL")
! 		   (const_int 16)))]
!   "TARGET_BARREL_SHIFTER && TARGET_V2"
!   "lsl16\\t%0,%1"
!   [(set_attr "type" "shift")
!    (set_attr "iscompact" "false")
!    (set_attr "length" "4")
!    (set_attr "predicable" "no")])
! 
! (define_insn "*lshrsi3_cnt1"
    [(set (match_operand:SI 0 "dest_reg_operand"             "=q,w")
  	(lshiftrt:SI (match_operand:SI 1 "register_operand" "q,c")
  		     (const_int 1)))]
    ""
!   "lsr%? %0,%1%&"
!   [(set_attr "type" "shift")
     (set_attr "iscompact" "maybe,false")
     (set_attr "predicable" "no,no")])
  
! (define_insn "*ashrsi3_cnt1"
    [(set (match_operand:SI 0 "dest_reg_operand"             "=q,w")
  	(ashiftrt:SI (match_operand:SI 1 "register_operand" "q,c")
  		     (const_int 1)))]
    ""
!   "asr%? %0,%1%&"
!   [(set_attr "type" "shift")
     (set_attr "iscompact" "maybe,false")
     (set_attr "predicable" "no,no")])
  
  (define_peephole2
    [(set (match_operand:SI 0 "register_operand" "")
  	(zero_extract:SI (match_dup 0)
--- 6203,6262 ----
     (set_attr "length" "4")
     (set_attr "predicable" "no")])
  
! (define_insn "lshrsi3_cnt1"
    [(set (match_operand:SI 0 "dest_reg_operand"             "=q,w")
  	(lshiftrt:SI (match_operand:SI 1 "register_operand" "q,c")
  		     (const_int 1)))]
    ""
!   "lsr%?\\t%0,%1"
!   [(set_attr "type" "unary")
     (set_attr "iscompact" "maybe,false")
     (set_attr "predicable" "no,no")])
  
! (define_insn "lshrsi3_cnt1_carry"
!   [(set (reg:CC_C CC_REG)
! 	(unspec:CC_C [(and:SI (match_operand:SI 1 "register_operand" "r")
! 			      (const_int 1))] UNSPEC_ARC_CC_NEZ))
!    (set (match_operand:SI 0 "dest_reg_operand" "=r")
! 	(lshiftrt:SI (match_dup 1) (const_int 1)))]
!   ""
!   "lsr.f\\t%0,%1"
!   [(set_attr "type" "unary")
!    (set_attr "length" "4")
!    (set_attr "predicable" "no")])
! 
! (define_insn "ashrsi3_cnt1"
    [(set (match_operand:SI 0 "dest_reg_operand"             "=q,w")
  	(ashiftrt:SI (match_operand:SI 1 "register_operand" "q,c")
  		     (const_int 1)))]
    ""
!   "asr%?\\t%0,%1"
!   [(set_attr "type" "unary")
     (set_attr "iscompact" "maybe,false")
     (set_attr "predicable" "no,no")])
  
+ (define_insn "ashrsi3_cnt1_carry"
+   [(set (reg:CC_C CC_REG)
+ 	(unspec:CC_C [(and:SI (match_operand:SI 1 "register_operand" "r")
+ 			      (const_int 1))] UNSPEC_ARC_CC_NEZ))
+    (set (match_operand:SI 0 "dest_reg_operand" "=r")
+ 	(ashiftrt:SI (match_dup 1) (const_int 1)))]
+   ""
+   "asr.f\\t%0,%1"
+   [(set_attr "type" "unary")
+    (set_attr "length" "4")
+    (set_attr "predicable" "no")])
+ 
+ (define_insn "btst_0_carry"
+   [(set (reg:CC_C CC_REG)
+ 	(unspec:CC_C [(and:SI (match_operand:SI 0 "register_operand" "r")
+ 			      (const_int 1))] UNSPEC_ARC_CC_NEZ))]
+   ""
+   "asr.f\\t0,%0"
+   [(set_attr "type" "unary")
+    (set_attr "length" "4")
+    (set_attr "predicable" "no")])
+ 
  (define_peephole2
    [(set (match_operand:SI 0 "register_operand" "")
  	(zero_extract:SI (match_dup 0)
*************** archs4x, archs4xd"
*** 6147,6153 ****
  		  (sign_extend:DI (match_dup 2)))
  	 (reg:DI ARCV2_ACC)))]
   "TARGET_PLUS_MACD"
!  "macd %0,%1,%2"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "multi")
     (set_attr "predicable" "yes,no,no")
--- 6392,6398 ----
  		  (sign_extend:DI (match_dup 2)))
  	 (reg:DI ARCV2_ACC)))]
   "TARGET_PLUS_MACD"
!  "macd\\t%0,%1,%2"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "multi")
     (set_attr "predicable" "yes,no,no")
*************** archs4x, archs4xd"
*** 6190,6196 ****
  	  (reg:DI ARCV2_ACC))))
     (clobber (reg:DI ARCV2_ACC))]
   "TARGET_PLUS_DMPY"
!  "mac %0,%1,%2"
    [(set_attr "length" "4,8")
     (set_attr "type" "multi")
     (set_attr "predicable" "no")
--- 6435,6441 ----
  	  (reg:DI ARCV2_ACC))))
     (clobber (reg:DI ARCV2_ACC))]
   "TARGET_PLUS_DMPY"
!  "mac\\t%0,%1,%2"
    [(set_attr "length" "4,8")
     (set_attr "type" "multi")
     (set_attr "predicable" "no")
*************** archs4x, archs4xd"
*** 6249,6255 ****
  		  (zero_extend:DI (match_dup 2)))
  	 (reg:DI ARCV2_ACC)))]
   "TARGET_PLUS_MACD"
!  "macdu %0,%1,%2"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "multi")
     (set_attr "predicable" "yes,no,no")
--- 6494,6500 ----
  		  (zero_extend:DI (match_dup 2)))
  	 (reg:DI ARCV2_ACC)))]
   "TARGET_PLUS_MACD"
!  "macdu\\t%0,%1,%2"
    [(set_attr "length" "4,4,8")
     (set_attr "type" "multi")
     (set_attr "predicable" "yes,no,no")
*************** archs4x, archs4xd"
*** 6292,6298 ****
  	  (reg:DI ARCV2_ACC))))
     (clobber (reg:DI ARCV2_ACC))]
   "TARGET_PLUS_DMPY"
!  "macu %0,%1,%2"
    [(set_attr "length" "4,8")
     (set_attr "type" "multi")
     (set_attr "predicable" "no")
--- 6537,6543 ----
  	  (reg:DI ARCV2_ACC))))
     (clobber (reg:DI ARCV2_ACC))]
   "TARGET_PLUS_DMPY"
!  "macu\\t%0,%1,%2"
    [(set_attr "length" "4,8")
     (set_attr "type" "multi")
     (set_attr "predicable" "no")
*************** archs4x, archs4xd"
*** 6358,6364 ****
     (set_attr "type" "multi")
     (set_attr "predicable" "yes")])
  
! (define_insn "*add_shift"
    [(set (match_operand:SI 0 "register_operand" "=q,r,r")
  	(plus:SI (ashift:SI (match_operand:SI 1 "register_operand" "q,r,r")
  			    (match_operand:SI 2 "_1_2_3_operand" ""))
--- 6603,6609 ----
     (set_attr "type" "multi")
     (set_attr "predicable" "yes")])
  
! (define_insn "add_shift"
    [(set (match_operand:SI 0 "register_operand" "=q,r,r")
  	(plus:SI (ashift:SI (match_operand:SI 1 "register_operand" "q,r,r")
  			    (match_operand:SI 2 "_1_2_3_operand" ""))
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc.opt gcc-14.1.0/gcc/config/arc/arc.opt
*** gcc-13.2.0/gcc/config/arc/arc.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the Synopsys DesignWare ARC port of the compiler
  ;
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the Synopsys DesignWare ARC port of the compiler
  ;
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** Target Var(TARGET_MEDIUM_CALLS) Init(TAR
*** 300,307 ****
  Don't use less than 25 bit addressing range for calls.
  
  mannotate-align
! Target Var(TARGET_ANNOTATE_ALIGN)
! Explain what alignment considerations lead to the decision to make an insn short or long.
  
  malign-call
  Target Ignore
--- 300,307 ----
  Don't use less than 25 bit addressing range for calls.
  
  mannotate-align
! Target Ignore
! Does nothing.  Preserved for backward compatibility.
  
  malign-call
  Target Ignore
*************** Target Var(TARGET_EARLY_CBRANCHSI)
*** 322,329 ****
  Enable pre-reload use of cbranchsi pattern.
  
  mbbit-peephole
! Target Var(TARGET_BBIT_PEEPHOLE)
! Enable bbit peephole2.
  
  mcase-vector-pcrel
  Target Var(TARGET_CASE_VECTOR_PC_RELATIVE)
--- 322,329 ----
  Enable pre-reload use of cbranchsi pattern.
  
  mbbit-peephole
! Target Ignore
! Does nothing.  Preserved for backward compatibility.
  
  mcase-vector-pcrel
  Target Var(TARGET_CASE_VECTOR_PC_RELATIVE)
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc.opt.urls gcc-14.1.0/gcc/config/arc/arc.opt.urls
*** gcc-13.2.0/gcc/config/arc/arc.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arc/arc.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,260 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/arc/arc.opt and generated HTML
+ 
+ mbig-endian
+ UrlSuffix(gcc/ARC-Options.html#index-mbig-endian-1)
+ 
+ mlittle-endian
+ UrlSuffix(gcc/ARC-Options.html#index-mlittle-endian-1)
+ 
+ mno-cond-exec
+ UrlSuffix(gcc/ARC-Options.html#index-mno-cond-exec)
+ 
+ mA6
+ UrlSuffix(gcc/ARC-Options.html#index-mA6)
+ 
+ mARC600
+ UrlSuffix(gcc/ARC-Options.html#index-mARC600)
+ 
+ mARC601
+ UrlSuffix(gcc/ARC-Options.html#index-mARC601)
+ 
+ mA7
+ UrlSuffix(gcc/ARC-Options.html#index-mA7)
+ 
+ mARC700
+ UrlSuffix(gcc/ARC-Options.html#index-mARC700)
+ 
+ mjli-always
+ UrlSuffix(gcc/ARC-Options.html#index-mjli-always)
+ 
+ mmpy-option=
+ UrlSuffix(gcc/ARC-Options.html#index-mmpy-option)
+ 
+ mdiv-rem
+ UrlSuffix(gcc/ARC-Options.html#index-mdiv-rem)
+ 
+ mcode-density
+ UrlSuffix(gcc/ARC-Options.html#index-mcode-density)
+ 
+ mmixed-code
+ UrlSuffix(gcc/ARC-Options.html#index-mmixed-code)
+ 
+ mvolatile-cache
+ UrlSuffix(gcc/ARC-Options.html#index-mvolatile-cache)
+ 
+ mno-volatile-cache
+ UrlSuffix(gcc/ARC-Options.html#index-mno-volatile-cache)
+ 
+ mbarrel-shifter
+ UrlSuffix(gcc/ARC-Options.html#index-mbarrel-shifter)
+ 
+ mnorm
+ UrlSuffix(gcc/ARC-Options.html#index-mnorm)
+ 
+ mswap
+ UrlSuffix(gcc/ARC-Options.html#index-mswap)
+ 
+ mmul64
+ UrlSuffix(gcc/ARC-Options.html#index-mmul64)
+ 
+ mno-mpy
+ UrlSuffix(gcc/ARC-Options.html#index-mno-mpy)
+ 
+ mea
+ UrlSuffix(gcc/ARC-Options.html#index-mea)
+ 
+ msoft-float
+ UrlSuffix(gcc/ARC-Options.html#index-msoft-float)
+ 
+ mlong-calls
+ UrlSuffix(gcc/ARC-Options.html#index-mlong-calls-1)
+ 
+ mno-brcc
+ UrlSuffix(gcc/ARC-Options.html#index-mno-brcc)
+ 
+ msdata
+ UrlSuffix(gcc/ARC-Options.html#index-msdata)
+ 
+ mmillicode
+ UrlSuffix(gcc/ARC-Options.html#index-mmillicode)
+ 
+ mspfp
+ UrlSuffix(gcc/ARC-Options.html#index-mspfp)
+ 
+ mspfp-compact
+ UrlSuffix(gcc/ARC-Options.html#index-mspfp-compact)
+ 
+ mspfp-fast
+ UrlSuffix(gcc/ARC-Options.html#index-mspfp-fast)
+ 
+ margonaut
+ UrlSuffix(gcc/ARC-Options.html#index-margonaut)
+ 
+ mdpfp
+ UrlSuffix(gcc/ARC-Options.html#index-mdpfp)
+ 
+ mdpfp-compact
+ UrlSuffix(gcc/ARC-Options.html#index-mdpfp-compact)
+ 
+ mdpfp-fast
+ UrlSuffix(gcc/ARC-Options.html#index-mdpfp-fast)
+ 
+ mno-dpfp-lrsr
+ UrlSuffix(gcc/ARC-Options.html#index-mno-dpfp-lrsr)
+ 
+ msimd
+ UrlSuffix(gcc/ARC-Options.html#index-msimd)
+ 
+ mcpu=
+ UrlSuffix(gcc/ARC-Options.html#index-mcpu-1)
+ 
+ msize-level=
+ UrlSuffix(gcc/ARC-Options.html#index-msize-level)
+ 
+ misize
+ UrlSuffix(gcc/ARC-Options.html#index-misize)
+ 
+ mmultcost=
+ UrlSuffix(gcc/ARC-Options.html#index-mmultcost)
+ 
+ mtune=
+ UrlSuffix(gcc/ARC-Options.html#index-mtune-2)
+ 
+ mindexed-loads
+ UrlSuffix(gcc/ARC-Options.html#index-mindexed-loads)
+ 
+ mauto-modify-reg
+ UrlSuffix(gcc/ARC-Options.html#index-mauto-modify-reg)
+ 
+ mmul32x16
+ UrlSuffix(gcc/ARC-Options.html#index-mmul32x16)
+ 
+ munalign-prob-threshold=
+ UrlSuffix(gcc/ARC-Options.html#index-munalign-prob-threshold)
+ 
+ mmedium-calls
+ UrlSuffix(gcc/ARC-Options.html#index-mmedium-calls)
+ 
+ mannotate-align
+ UrlSuffix(gcc/ARC-Options.html#index-mannotate-align)
+ 
+ malign-call
+ UrlSuffix(gcc/ARC-Options.html#index-malign-call)
+ 
+ mRcq
+ UrlSuffix(gcc/ARC-Options.html#index-mRcq)
+ 
+ mRcw
+ UrlSuffix(gcc/ARC-Options.html#index-mRcw)
+ 
+ mearly-cbranchsi
+ UrlSuffix(gcc/ARC-Options.html#index-mearly-cbranchsi)
+ 
+ mbbit-peephole
+ UrlSuffix(gcc/ARC-Options.html#index-mbbit-peephole)
+ 
+ mcase-vector-pcrel
+ UrlSuffix(gcc/ARC-Options.html#index-mcase-vector-pcrel)
+ 
+ mcompact-casesi
+ UrlSuffix(gcc/ARC-Options.html#index-mcompact-casesi)
+ 
+ mq-class
+ UrlSuffix(gcc/ARC-Options.html#index-mq-class)
+ 
+ mexpand-adddi
+ UrlSuffix(gcc/ARC-Options.html#index-mexpand-adddi)
+ 
+ ; skipping UrlSuffix for 'mcrc' due to finding no URLs
+ 
+ mdsp-packa
+ UrlSuffix(gcc/ARC-Options.html#index-mdsp-packa)
+ 
+ mdvbf
+ UrlSuffix(gcc/ARC-Options.html#index-mdvbf)
+ 
+ mmac-d16
+ UrlSuffix(gcc/ARC-Options.html#index-mmac-d16)
+ 
+ mmac-24
+ UrlSuffix(gcc/ARC-Options.html#index-mmac-24)
+ 
+ mtelephony
+ UrlSuffix(gcc/ARC-Options.html#index-mtelephony)
+ 
+ mxy
+ UrlSuffix(gcc/ARC-Options.html#index-mxy)
+ 
+ mlock
+ UrlSuffix(gcc/ARC-Options.html#index-mlock)
+ 
+ mswape
+ UrlSuffix(gcc/ARC-Options.html#index-mswape)
+ 
+ mrtsc
+ UrlSuffix(gcc/ARC-Options.html#index-mrtsc)
+ 
+ EB
+ UrlSuffix(gcc/ARC-Options.html#index-EB)
+ 
+ EL
+ UrlSuffix(gcc/ARC-Options.html#index-EL)
+ 
+ marclinux
+ UrlSuffix(gcc/ARC-Options.html#index-marclinux)
+ 
+ marclinux_prof
+ UrlSuffix(gcc/ARC-Options.html#index-marclinux_005fprof)
+ 
+ mlra
+ UrlSuffix(gcc/ARC-Options.html#index-mlra)
+ 
+ mlra-priority-none
+ UrlSuffix(gcc/ARC-Options.html#index-mlra-priority-none)
+ 
+ mlra-priority-compact
+ UrlSuffix(gcc/ARC-Options.html#index-mlra-priority-compact)
+ 
+ mlra-priority-noncompact
+ UrlSuffix(gcc/ARC-Options.html#index-mlra-priority-noncompact)
+ 
+ mEA
+ UrlSuffix(gcc/ARC-Options.html#index-mEA)
+ 
+ multcost=
+ UrlSuffix(gcc/ARC-Options.html#index-multcost)
+ 
+ matomic
+ UrlSuffix(gcc/ARC-Options.html#index-matomic)
+ 
+ mll64
+ UrlSuffix(gcc/ARC-Options.html#index-mll64)
+ 
+ mfpu=
+ UrlSuffix(gcc/ARC-Options.html#index-mfpu)
+ 
+ mtp-regno=
+ UrlSuffix(gcc/ARC-Options.html#index-mtp-regno)
+ 
+ ; skipping UrlSuffix for 'mbitops' due to finding no URLs
+ 
+ ; skipping UrlSuffix for 'munaligned-access' due to finding no URLs
+ 
+ mirq-ctrl-saved=
+ UrlSuffix(gcc/ARC-Options.html#index-mirq-ctrl-saved)
+ 
+ mrgf-banked-regs=
+ UrlSuffix(gcc/ARC-Options.html#index-mrgf-banked-regs)
+ 
+ mlpc-width=
+ UrlSuffix(gcc/ARC-Options.html#index-mlpc-width)
+ 
+ mrf16
+ UrlSuffix(gcc/ARC-Options.html#index-mrf16)
+ 
+ mbranch-index
+ UrlSuffix(gcc/ARC-Options.html#index-mbranch-index)
+ 
+ mcode-density-frame
+ UrlSuffix(gcc/ARC-Options.html#index-mcode-density-frame)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc600.md gcc-14.1.0/gcc/config/arc/arc600.md
*** gcc-13.2.0/gcc/config/arc/arc600.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc600.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;; DFA scheduling description of the Synopsys DesignWare ARC600 cpu
  ;; for GNU C compiler
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
  ;;              on behalf of Synopsys Inc.
  
--- 1,6 ----
  ;; DFA scheduling description of the Synopsys DesignWare ARC600 cpu
  ;; for GNU C compiler
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
  ;;              on behalf of Synopsys Inc.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arc700.md gcc-14.1.0/gcc/config/arc/arc700.md
*** gcc-13.2.0/gcc/config/arc/arc700.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arc700.md	Tue May  7 06:51:37 2024
***************
*** 5,11 ****
  ;;    Ramana Radhakrishnan(ramana.radhakrishnan@codito.com)
  ;;    Factoring out and improvement of ARC700 Scheduling by
  ;;    Joern Rennecke (joern.rennecke@embecosm.com)
! ;; Copyright (C) 2006-2023 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
--- 5,11 ----
  ;;    Ramana Radhakrishnan(ramana.radhakrishnan@codito.com)
  ;;    Factoring out and improvement of ARC700 Scheduling by
  ;;    Joern Rennecke (joern.rennecke@embecosm.com)
! ;; Copyright (C) 2006-2024 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
***************
*** 46,52 ****
  
  (define_insn_reservation "core_insn" 1
    (and (eq_attr "tune_arc700" "true")
!        (eq_attr "type" "unary, move, binary"))
    "issue+core, nothing, write_port")
  
  (define_insn_reservation "cmove" 1
--- 46,52 ----
  
  (define_insn_reservation "core_insn" 1
    (and (eq_attr "tune_arc700" "true")
!        (eq_attr "type" "unary, move, binary, add, sub, bxor"))
    "issue+core, nothing, write_port")
  
  (define_insn_reservation "cmove" 1
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arcEM.md gcc-14.1.0/gcc/config/arc/arcEM.md
*** gcc-13.2.0/gcc/config/arc/arcEM.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arcEM.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;; DFA scheduling description of the Synopsys DesignWare ARC EM cpu
  ;; for GNU C compiler
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Contributor: Claudiu Zissulescu <claudiu.zissulescu@synopsys.com>
  
  ;; This file is part of GCC.
--- 1,6 ----
  ;; DFA scheduling description of the Synopsys DesignWare ARC EM cpu
  ;; for GNU C compiler
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Contributor: Claudiu Zissulescu <claudiu.zissulescu@synopsys.com>
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arcHS.md gcc-14.1.0/gcc/config/arc/arcHS.md
*** gcc-13.2.0/gcc/config/arc/arcHS.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arcHS.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;; DFA scheduling description of the Synopsys DesignWare ARC HS cpu
  ;; for GNU C compiler
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Contributor: Claudiu Zissulescu <claudiu.zissulescu@synopsys.com>
  
  ;; This file is part of GCC.
--- 1,6 ----
  ;; DFA scheduling description of the Synopsys DesignWare ARC HS cpu
  ;; for GNU C compiler
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Contributor: Claudiu Zissulescu <claudiu.zissulescu@synopsys.com>
  
  ;; This file is part of GCC.
***************
*** 46,52 ****
  (define_insn_reservation "hs_alu1" 4
    (and (match_test "TARGET_HS")
         (eq_attr "tune" "none")
!        (eq_attr "type" "move, cmove, unary, binary, compare, misc"))
    "hs_issue+x1, nothing*3")
  
  (define_insn_reservation "hs_divrem" 13
--- 46,52 ----
  (define_insn_reservation "hs_alu1" 4
    (and (match_test "TARGET_HS")
         (eq_attr "tune" "none")
!        (eq_attr "type" "move, cmove, unary, binary, compare, misc, add, sub, bxor"))
    "hs_issue+x1, nothing*3")
  
  (define_insn_reservation "hs_divrem" 13
diff -Nrcpad gcc-13.2.0/gcc/config/arc/arcHS4x.md gcc-14.1.0/gcc/config/arc/arcHS4x.md
*** gcc-13.2.0/gcc/config/arc/arcHS4x.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/arcHS4x.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;; DFA scheduling description of the Synopsys DesignWare ARC HS4x cpu
  ;; for GNU C compiler
! ;; Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
--- 1,6 ----
  ;; DFA scheduling description of the Synopsys DesignWare ARC HS4x cpu
  ;; for GNU C compiler
! ;; Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
*************** branch, sfunc"))
*** 77,83 ****
  (define_insn_reservation "hs4x_basic_alue_op" 1
    (and (match_test "TARGET_HS")
         (eq_attr "tune" "archs4x, archs4xd")
!        (eq_attr "type" "move, cmove, unary, binary, compare, misc"))
    "(hs4x_issue0 | hs4x_issue1) + hs4x_y1")
  
  (define_insn_reservation "hs4x_basic_alul_op" 4
--- 77,83 ----
  (define_insn_reservation "hs4x_basic_alue_op" 1
    (and (match_test "TARGET_HS")
         (eq_attr "tune" "archs4x, archs4xd")
!        (eq_attr "type" "move, cmove, unary, binary, compare, misc, add, sub, bxor"))
    "(hs4x_issue0 | hs4x_issue1) + hs4x_y1")
  
  (define_insn_reservation "hs4x_basic_alul_op" 4
diff -Nrcpad gcc-13.2.0/gcc/config/arc/atomic.md gcc-14.1.0/gcc/config/arc/atomic.md
*** gcc-13.2.0/gcc/config/arc/atomic.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/atomic.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; GCC machine description for ARC atomic instructions.
! ;; Copyright (C) 2015-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; GCC machine description for ARC atomic instructions.
! ;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arc/big.h gcc-14.1.0/gcc/config/arc/big.h
*** gcc-13.2.0/gcc/config/arc/big.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/big.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definition of big endian ARC machine for GNU compiler.
  
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,6 ----
  /* Definition of big endian ARC machine for GNU compiler.
  
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/builtins.def gcc-14.1.0/gcc/config/arc/builtins.def
*** gcc-13.2.0/gcc/config/arc/builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2015-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2015-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** DEF_BUILTIN (CORE_WRITE, 2, void_ftype_u
*** 50,63 ****
  DEF_BUILTIN (SETI,       1, void_ftype_int,         seti,       TARGET_V2)
  
  /* Regular builtins.  */
! DEF_BUILTIN (NORM,       1, int_ftype_int,          clrsbsi2,   TARGET_NORM)
! DEF_BUILTIN (NORMW,      1, int_ftype_short,        normw,      TARGET_NORM)
! DEF_BUILTIN (SWAP,       1, int_ftype_int,          swap,       TARGET_SWAP)
! DEF_BUILTIN (DIVAW,      2, int_ftype_int_int,      divaw,      TARGET_EA_SET)
! DEF_BUILTIN (CORE_READ,  1, usint_ftype_usint,      core_read,  1)
! DEF_BUILTIN (LR,         1, usint_ftype_usint,      lr,         1)
! DEF_BUILTIN (FFS,        1, int_ftype_int,          ffs,        (TARGET_EM && TARGET_NORM) || TARGET_HS)
! DEF_BUILTIN (FLS,        1, int_ftype_int,          fls,        (TARGET_EM && TARGET_NORM) || TARGET_HS)
  
  /* ARC SIMD extenssion.  */
  /* BEGIN SIMD marker.  */
--- 50,63 ----
  DEF_BUILTIN (SETI,       1, void_ftype_int,         seti,       TARGET_V2)
  
  /* Regular builtins.  */
! DEF_BUILTIN (NORM,       1, int_ftype_int,     clrsbsi2,      TARGET_NORM)
! DEF_BUILTIN (NORMW,      1, int_ftype_short,   normw,         TARGET_NORM)
! DEF_BUILTIN (SWAP,       1, int_ftype_int,     rotlsi2_cnt16, TARGET_SWAP)
! DEF_BUILTIN (DIVAW,      2, int_ftype_int_int, divaw,         TARGET_EA_SET)
! DEF_BUILTIN (CORE_READ,  1, usint_ftype_usint, core_read,     1)
! DEF_BUILTIN (LR,         1, usint_ftype_usint, lr,            1)
! DEF_BUILTIN (FFS,        1, int_ftype_int,     ffs,           (TARGET_EM && TARGET_NORM) || TARGET_HS)
! DEF_BUILTIN (FLS,        1, int_ftype_int,     fls,           (TARGET_EM && TARGET_NORM) || TARGET_HS)
  
  /* ARC SIMD extenssion.  */
  /* BEGIN SIMD marker.  */
diff -Nrcpad gcc-13.2.0/gcc/config/arc/constraints.md gcc-14.1.0/gcc/config/arc/constraints.md
*** gcc-13.2.0/gcc/config/arc/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for Synopsys DesignWare ARC.
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Constraint definitions for Synopsys DesignWare ARC.
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 112,123 ****
    (and (match_code "const_int")
         (match_test "UNSIGNED_INT6 (~ival)")))
  
- (define_constraint "CmL"
-   "@internal
-    Two's complement of a 6-bit unsigned integer constant"
-   (and (match_code "const_int")
-        (match_test "UNSIGNED_INT6 (-ival)")))
- 
  (define_constraint "C16"
    "@internal
     A 16-bit signed integer constant"
--- 112,117 ----
***************
*** 160,201 ****
    (and (match_code "const_int")
         (match_test "ival <= 0")))
  
- (define_constraint "Cca"
-   "@internal
-    Conditional or three-address add / sub constant"
-   (and (match_code "const_int")
-        (match_test "ival == (HOST_WIDE_INT)(HOST_WIDE_INT_M1U << 31)
- 		    || (ival >= -0x1f8 && ival <= 0x1f8
- 			&& ((ival >= 0 ? ival : -ival)
- 			    <= 0x3f * (ival & -ival)))")))
- 
- ; intersection of "O" and "Cca".
- (define_constraint "CL2"
-   "@internal
-    A 6-bit unsigned integer constant times 2"
-   (and (match_code "const_int")
-        (match_test "!(ival & ~126)")))
- 
  (define_constraint "CM4"
    "@internal
!    A 5-bit unsigned integer constant times 4"
    (and (match_code "const_int")
         (match_test "!(ival & ~124)")))
  
! (define_constraint "Csp"
!   "@internal
!    A valid stack pointer offset for a short add"
!   (and (match_code "const_int")
!        (match_test "!(ival & ~124) || !(-ival & ~124)")))
! 
! (define_constraint "C2a"
    "@internal
!    Unconditional two-address add / sub constant"
    (and (match_code "const_int")
!        (match_test "ival == (HOST_WIDE_INT) (HOST_WIDE_INT_M1U << 31)
! 		    || (ival >= -0x4000 && ival <= 0x4000
! 			&& ((ival >= 0 ? ival : -ival)
! 			    <= 0x7ff * (ival & -ival)))")))
  
  (define_constraint "C0p"
   "@internal
--- 154,170 ----
    (and (match_code "const_int")
         (match_test "ival <= 0")))
  
  (define_constraint "CM4"
    "@internal
!    A valid 5-bit unsigned stack offset for a short add"
    (and (match_code "const_int")
         (match_test "!(ival & ~124)")))
  
! (define_constraint "CP4"
    "@internal
!    A valid 5-bit unsigned stack offset for a short sub"
    (and (match_code "const_int")
!        (match_test "!(-ival & ~124)")))
  
  (define_constraint "C0p"
   "@internal
***************
*** 532,534 ****
--- 501,535 ----
    "TARGET_CODE_DENSITY ? R0_REGS : NO_REGS"
    "@internal
     @code{r0} register for code density instructions.")
+ 
+ (define_constraint "C6u" "@internal
+   A 6-bit unsigned integer constant shifted by x-bit(s)"
+   (and (match_code "const_int")
+        (ior (match_test "UNSIGNED_INT9_SHIFTED (ival,3)")
+ 	    (match_test "UNSIGNED_INT8_SHIFTED (ival,2)")
+ 	    (match_test "UNSIGNED_INT7_SHIFTED (ival,1)")
+ 	    (match_test "UNSIGNED_INT6 (ival)"))))
+ 
+ (define_constraint "C6n" "@internal
+   A negative 6-bit integer constant shifted by x-bit(s) used by add."
+   (and (match_code "const_int")
+        (match_test "ival < 0")
+        (match_test "SIGNED_INT10(ival)")
+        (ior (match_test "UNSIGNED_INT9_SHIFTED (-ival,3)")
+ 	    (match_test "UNSIGNED_INT8_SHIFTED (-ival,2)")
+ 	    (match_test "UNSIGNED_INT7_SHIFTED (-ival,1)")
+ 	    (match_test "UNSIGNED_INT6 (-ival)"))))
+ 
+ (define_constraint "CIs" "@internal
+   A 12-bit signed integer constant shifted by x-bit(s)"
+   (and (match_code "const_int")
+        (ior (match_test "SIGNED_INT15_SHIFTED (ival,3)")
+ 	    (match_test "SIGNED_INT14_SHIFTED (ival,2)")
+ 	    (match_test "SIGNED_INT13_SHIFTED (ival,1)")
+ 	    (match_test "SIGNED_INT12 (ival)"))))
+ 
+ (define_constraint "C4p"
+  "@internal
+   Matches 0x8000_0000"
+   (and (match_code "const_int")
+        (match_test "ival == (HOST_WIDE_INT) (HOST_WIDE_INT_M1U << 31)")))
diff -Nrcpad gcc-13.2.0/gcc/config/arc/driver-arc.cc gcc-14.1.0/gcc/config/arc/driver-arc.cc
*** gcc-13.2.0/gcc/config/arc/driver-arc.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/driver-arc.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines for the gcc driver.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
     Contributed by Claudiu Zissulescu <claziss@synopsys.com>
  
     This file is part of GCC.
--- 1,5 ----
  /* Subroutines for the gcc driver.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
     Contributed by Claudiu Zissulescu <claziss@synopsys.com>
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arc/elf.h gcc-14.1.0/gcc/config/arc/elf.h
*** gcc-13.2.0/gcc/config/arc/elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/elf.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Target macros for arc*-elf targets.
  
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,6 ----
  /* Target macros for arc*-elf targets.
  
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/fpx.md gcc-14.1.0/gcc/config/arc/fpx.md
*** gcc-13.2.0/gcc/config/arc/fpx.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/fpx.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;; Machine description of the Synopsys DesignWare ARC cpu Floating Point
  ;; extensions for GNU C compiler
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
--- 1,6 ----
  ;; Machine description of the Synopsys DesignWare ARC cpu Floating Point
  ;; extensions for GNU C compiler
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/genmultilib.awk gcc-14.1.0/gcc/config/arc/genmultilib.awk
*** gcc-13.2.0/gcc/config/arc/genmultilib.awk	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/genmultilib.awk	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arc/genoptions.awk gcc-14.1.0/gcc/config/arc/genoptions.awk
*** gcc-13.2.0/gcc/config/arc/genoptions.awk	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/genoptions.awk	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arc/linux.h gcc-14.1.0/gcc/config/arc/linux.h
*** gcc-13.2.0/gcc/config/arc/linux.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/linux.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Target macros for arc*-*-linux targets.
  
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,6 ----
  /* Target macros for arc*-*-linux targets.
  
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/predicates.md gcc-14.1.0/gcc/config/arc/predicates.md
*** gcc-13.2.0/gcc/config/arc/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for Synopsys DesignWare ARC.
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Predicate definitions for Synopsys DesignWare ARC.
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 23,35 ****
    return register_operand (op, mode);
  })
  
- (define_predicate "mpy_dest_reg_operand"
-   (match_code "reg,subreg")
- {
-   return register_operand (op, mode);
- })
- 
- 
  ;; Returns 1 if OP is a symbol reference.
  (define_predicate "symbolic_operand"
    (match_code "symbol_ref, label_ref, const")
--- 23,28 ----
***************
*** 549,579 ****
    (match_code "ashiftrt, lshiftrt, ashift")
  )
  
- ;; Return true if OP is a left shift operator that can be implemented in
- ;; four insn words or less without a barrel shifter or multiplier.
- (define_predicate "shiftl4_operator"
-   (and (match_code "ashift")
-        (match_test "const_int_operand (XEXP (op, 1), VOIDmode) ")
-        (match_test "UINTVAL (XEXP (op, 1)) <= 9U
- 		    || INTVAL (XEXP (op, 1)) == 29
- 		    || INTVAL (XEXP (op, 1)) == 30
- 		    || INTVAL (XEXP (op, 1)) == 31")))
- 
- ;; Return true if OP is a right shift operator that can be implemented in
- ;; four insn words or less without a barrel shifter or multiplier.
- (define_predicate "shiftr4_operator"
-   (and (match_code "ashiftrt, lshiftrt")
-        (match_test "const_int_operand (XEXP (op, 1), VOIDmode) ")
-        (match_test "UINTVAL (XEXP (op, 1)) <= 4U
- 		    || INTVAL (XEXP (op, 1)) == 30
- 		    || INTVAL (XEXP (op, 1)) == 31")))
- 
- ;; Return true if OP is a shift operator that can be implemented in
- ;; four insn words or less without a barrel shifter or multiplier.
- (define_predicate "shift4_operator"
-   (ior (match_operand 0 "shiftl4_operator")
-        (match_operand 0 "shiftr4_operator")))
- 
  (define_predicate "mult_operator"
      (and (match_code "mult") (match_test "TARGET_MPY"))
  )
--- 542,547 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arc/simdext.md gcc-14.1.0/gcc/config/arc/simdext.md
*** gcc-13.2.0/gcc/config/arc/simdext.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/simdext.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description of the Synopsys DesignWare ARC cpu for GNU C compiler
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
--- 1,5 ----
  ;; Machine description of the Synopsys DesignWare ARC cpu for GNU C compiler
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arc/t-arc gcc-14.1.0/gcc/config/arc/t-arc
*** gcc-13.2.0/gcc/config/arc/t-arc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/t-arc	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  # GCC Makefile fragment for Synopsys DesignWare ARC.
  #
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  # GCC Makefile fragment for Synopsys DesignWare ARC.
  #
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arc/t-multilib gcc-14.1.0/gcc/config/arc/t-multilib
*** gcc-13.2.0/gcc/config/arc/t-multilib	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/t-multilib	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  # Generated from  : ./gcc/config/arc/arc-cpu.def
  # Used by         : tmake_file from Makefile and genmultilib
  
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 3,9 ----
  # Generated from  : ./gcc/config/arc/arc-cpu.def
  # Used by         : tmake_file from Makefile and genmultilib
  
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arc/t-multilib-linux gcc-14.1.0/gcc/config/arc/t-multilib-linux
*** gcc-13.2.0/gcc/config/arc/t-multilib-linux	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arc/t-multilib-linux	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/README-interworking gcc-14.1.0/gcc/config/arm/README-interworking
*** gcc-13.2.0/gcc/config/arm/README-interworking	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/README-interworking	Tue May  7 06:51:37 2024
*************** used.
*** 742,748 ****
       interworking as the --support-old-code switch has taken care if this.
  
  
! Copyright (C) 1998-2023 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
--- 742,748 ----
       interworking as the --support-old-code switch has taken care if this.
  
  
! Copyright (C) 1998-2024 Free Software Foundation, Inc.
  
  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
diff -Nrcpad gcc-13.2.0/gcc/config/arm/aarch-bti-insert.cc gcc-14.1.0/gcc/config/arm/aarch-bti-insert.cc
*** gcc-13.2.0/gcc/config/arm/aarch-bti-insert.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/aarch-bti-insert.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Branch Target Identification for AArch64 architecture.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Branch Target Identification for AArch64 architecture.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/aarch-common-protos.h gcc-14.1.0/gcc/config/arm/aarch-common-protos.h
*** gcc-13.2.0/gcc/config/arm/aarch-common-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/aarch-common-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Functions and structures shared between arm and aarch64.
  
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* Functions and structures shared between arm and aarch64.
  
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** struct cpu_cost_table
*** 155,168 ****
  
  rtx_insn *arm_md_asm_adjust (vec<rtx> &outputs, vec<rtx> & /*inputs*/,
  			     vec<machine_mode> & /*input_modes*/,
! 			     vec<const char *> &constraints,
  			     vec<rtx> &clobbers, HARD_REG_SET &clobbered_regs,
  			     location_t loc);
  
! /* Parsing routine for branch-protection common to AArch64 and Arm.  */
! enum aarch_parse_opt_result aarch_parse_branch_protection (const char*, char**);
  
! /* Validation routine for branch-protection common to AArch64 and Arm.  */
! bool aarch_validate_mbranch_protection (const char *);
  
  #endif /* GCC_AARCH_COMMON_PROTOS_H */
--- 155,180 ----
  
  rtx_insn *arm_md_asm_adjust (vec<rtx> &outputs, vec<rtx> & /*inputs*/,
  			     vec<machine_mode> & /*input_modes*/,
! 			     vec<const char *> &constraints, vec<rtx> &,
  			     vec<rtx> &clobbers, HARD_REG_SET &clobbered_regs,
  			     location_t loc);
  
! /* Specifies a -mbranch-protection= argument.  */
! struct aarch_branch_protect_type
! {
!   /* The type's name that the user passes to the branch-protection option
!      string.  */
!   const char* name;
!   /* The type can only appear alone, other types should be rejected.  */
!   int alone;
!   /* Function to handle the protection type and set global variables.  */
!   void (*handler)(void);
!   /* A list of types that can follow this type in the option string.  */
!   const struct aarch_branch_protect_type* subtypes;
!   unsigned int num_subtypes;
! };
  
! bool aarch_validate_mbranch_protection (
!   const struct aarch_branch_protect_type *, const char *, const char *);
  
  #endif /* GCC_AARCH_COMMON_PROTOS_H */
diff -Nrcpad gcc-13.2.0/gcc/config/arm/aarch-common.cc gcc-14.1.0/gcc/config/arm/aarch-common.cc
*** gcc-13.2.0/gcc/config/arm/aarch-common.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/aarch-common.cc	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* Dependency checks for instruction scheduling, shared between ARM and
     AARCH64.
  
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,7 ----
  /* Dependency checks for instruction scheduling, shared between ARM and
     AARCH64.
  
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 37,42 ****
--- 37,43 ----
  #include "function.h"
  #include "emit-rtl.h"
  #include "aarch-common.h"
+ #include "aarch-common-protos.h"
  
  /* Return TRUE if X is either an arithmetic shift left, or
     is a multiplication by a power of two.  */
*************** arm_mac_accumulator_is_mul_result (rtx p
*** 534,540 ****
  rtx_insn *
  arm_md_asm_adjust (vec<rtx> &outputs, vec<rtx> & /*inputs*/,
  		   vec<machine_mode> & /*input_modes*/,
! 		   vec<const char *> &constraints, vec<rtx> & /*clobbers*/,
  		   HARD_REG_SET & /*clobbered_regs*/, location_t loc)
  {
    bool saw_asm_flag = false;
--- 535,542 ----
  rtx_insn *
  arm_md_asm_adjust (vec<rtx> &outputs, vec<rtx> & /*inputs*/,
  		   vec<machine_mode> & /*input_modes*/,
! 		   vec<const char *> &constraints,
! 		   vec<rtx> & /*uses*/, vec<rtx> & /*clobbers*/,
  		   HARD_REG_SET & /*clobbered_regs*/, location_t loc)
  {
    bool saw_asm_flag = false;
*************** arm_md_asm_adjust (vec<rtx> &outputs, ve
*** 659,843 ****
    return saw_asm_flag ? seq : NULL;
  }
  
! #define BRANCH_PROTECT_STR_MAX 255
! extern char *accepted_branch_protection_string;
! 
! static enum aarch_parse_opt_result
! aarch_handle_no_branch_protection (char* str, char* rest)
! {
!   aarch_ra_sign_scope = AARCH_FUNCTION_NONE;
!   aarch_enable_bti = 0;
!   if (rest)
!     {
!       error ("unexpected %<%s%> after %<%s%>", rest, str);
!       return AARCH_PARSE_INVALID_FEATURE;
!     }
!   return AARCH_PARSE_OK;
! }
  
! static enum aarch_parse_opt_result
! aarch_handle_standard_branch_protection (char* str, char* rest)
  {
!   aarch_ra_sign_scope = AARCH_FUNCTION_NON_LEAF;
!   aarch_ra_sign_key = AARCH_KEY_A;
!   aarch_enable_bti = 1;
!   if (rest)
      {
!       error ("unexpected %<%s%> after %<%s%>", rest, str);
!       return AARCH_PARSE_INVALID_FEATURE;
      }
!   return AARCH_PARSE_OK;
! }
! 
! static enum aarch_parse_opt_result
! aarch_handle_pac_ret_protection (char* str ATTRIBUTE_UNUSED,
! 				 char* rest ATTRIBUTE_UNUSED)
! {
!   aarch_ra_sign_scope = AARCH_FUNCTION_NON_LEAF;
!   aarch_ra_sign_key = AARCH_KEY_A;
!   return AARCH_PARSE_OK;
! }
! 
! static enum aarch_parse_opt_result
! aarch_handle_pac_ret_leaf (char* str ATTRIBUTE_UNUSED,
! 			   char* rest ATTRIBUTE_UNUSED)
! {
!   aarch_ra_sign_scope = AARCH_FUNCTION_ALL;
!   return AARCH_PARSE_OK;
  }
  
! static enum aarch_parse_opt_result
! aarch_handle_pac_ret_b_key (char* str ATTRIBUTE_UNUSED,
! 			    char* rest ATTRIBUTE_UNUSED)
! {
!   aarch_ra_sign_key = AARCH_KEY_B;
!   return AARCH_PARSE_OK;
! }
  
! static enum aarch_parse_opt_result
! aarch_handle_bti_protection (char* str ATTRIBUTE_UNUSED,
! 			     char* rest ATTRIBUTE_UNUSED)
  {
!   aarch_enable_bti = 1;
!   return AARCH_PARSE_OK;
! }
  
! static const struct aarch_branch_protect_type aarch_pac_ret_subtypes[] = {
!   { "leaf", aarch_handle_pac_ret_leaf, NULL, 0 },
!   { "b-key", aarch_handle_pac_ret_b_key, NULL, 0 },
!   { NULL, NULL, NULL, 0 }
! };
  
! static const struct aarch_branch_protect_type aarch_branch_protect_types[] = {
!   { "none", aarch_handle_no_branch_protection, NULL, 0 },
!   { "standard", aarch_handle_standard_branch_protection, NULL, 0 },
!   { "pac-ret", aarch_handle_pac_ret_protection, aarch_pac_ret_subtypes,
!     ARRAY_SIZE (aarch_pac_ret_subtypes) },
!   { "bti", aarch_handle_bti_protection, NULL, 0 },
!   { NULL, NULL, NULL, 0 }
! };
  
! /* Parses CONST_STR for branch protection features specified in
!    aarch64_branch_protect_types, and set any global variables required.  Returns
!    the parsing result and assigns LAST_STR to the last processed token from
!    CONST_STR so that it can be used for error reporting.  */
  
! enum aarch_parse_opt_result
! aarch_parse_branch_protection (const char *const_str, char** last_str)
! {
!   char *str_root = xstrdup (const_str);
!   char* token_save = NULL;
!   char *str = strtok_r (str_root, "+", &token_save);
!   enum aarch_parse_opt_result res = AARCH_PARSE_OK;
!   if (!str)
!     res = AARCH_PARSE_MISSING_ARG;
!   else
!     {
!       char *next_str = strtok_r (NULL, "+", &token_save);
!       /* Reset the branch protection features to their defaults.  */
!       aarch_handle_no_branch_protection (NULL, NULL);
  
!       while (str && res == AARCH_PARSE_OK)
  	{
! 	  const aarch_branch_protect_type* type = aarch_branch_protect_types;
! 	  bool found = false;
! 	  /* Search for this type.  */
! 	  while (type && type->name && !found && res == AARCH_PARSE_OK)
! 	    {
! 	      if (strcmp (str, type->name) == 0)
! 		{
! 		  found = true;
! 		  res = type->handler (str, next_str);
! 		  str = next_str;
! 		  next_str = strtok_r (NULL, "+", &token_save);
! 		}
! 	      else
! 		type++;
! 	    }
! 	  if (found && res == AARCH_PARSE_OK)
! 	    {
! 	      bool found_subtype = true;
! 	      /* Loop through each token until we find one that isn't a
! 		 subtype.  */
! 	      while (found_subtype)
! 		{
! 		  found_subtype = false;
! 		  const aarch_branch_protect_type *subtype = type->subtypes;
! 		  /* Search for the subtype.  */
! 		  while (str && subtype && subtype->name && !found_subtype
! 			  && res == AARCH_PARSE_OK)
! 		    {
! 		      if (strcmp (str, subtype->name) == 0)
! 			{
! 			  found_subtype = true;
! 			  res = subtype->handler (str, next_str);
! 			  str = next_str;
! 			  next_str = strtok_r (NULL, "+", &token_save);
! 			}
! 		      else
! 			subtype++;
! 		    }
! 		}
! 	    }
! 	  else if (!found)
! 	    res = AARCH_PARSE_INVALID_ARG;
  	}
      }
-   /* Copy the last processed token into the argument to pass it back.
-     Used by option and attribute validation to print the offending token.  */
-   if (last_str)
-     {
-       if (str)
- 	strcpy (*last_str, str);
-       else
- 	*last_str = NULL;
-     }
  
!   if (res == AARCH_PARSE_OK)
!     {
!       /* If needed, alloc the accepted string then copy in const_str.
! 	Used by override_option_after_change_1.  */
!       if (!accepted_branch_protection_string)
! 	accepted_branch_protection_string
! 	  = (char *) xmalloc (BRANCH_PROTECT_STR_MAX + 1);
!       strncpy (accepted_branch_protection_string, const_str,
! 	       BRANCH_PROTECT_STR_MAX + 1);
!       /* Forcibly null-terminate.  */
!       accepted_branch_protection_string[BRANCH_PROTECT_STR_MAX] = '\0';
!     }
    return res;
  }
- 
- bool
- aarch_validate_mbranch_protection (const char *const_str)
- {
-   char *str = (char *) xmalloc (strlen (const_str));
-   enum aarch_parse_opt_result res =
-     aarch_parse_branch_protection (const_str, &str);
-   if (res == AARCH_PARSE_INVALID_ARG)
-     error ("invalid argument %<%s%> for %<-mbranch-protection=%>", str);
-   else if (res == AARCH_PARSE_MISSING_ARG)
-     error ("missing argument for %<-mbranch-protection=%>");
-   free (str);
-   return res == AARCH_PARSE_OK;
- }
--- 661,754 ----
    return saw_asm_flag ? seq : NULL;
  }
  
! /* In-place split *str at delim, return *str and set *str to the tail
!    of the string or NULL if the end is reached.  */
  
! static char *
! next_tok (char **str, int delim)
  {
!   char *tok = *str;
!   for (char *p = tok; p && *p != '\0'; p++)
      {
!       if (*p == delim)
! 	{
! 	  *p = '\0';
! 	  *str = p + 1;
! 	  return tok;
! 	}
      }
!   *str = NULL;
!   return tok;
  }
  
! /* Parses CONST_STR according to branch protection features specified in
!    TYPES.  The first type resets the settings, the last type is marked with
!    name == NULL.  On failure an error message is printed referencing OPT as
!    the source of the options.  Returns true on success.  */
  
! bool
! aarch_validate_mbranch_protection (
!   const struct aarch_branch_protect_type *types, const char *const_str,
!   const char *opt)
  {
!   char *str_root = xstrdup (const_str);
!   char *next_str = str_root;
!   char *str = next_tok (&next_str, '+');
!   char *alone_str = NULL;
!   bool reject_alone = false;
!   bool res = true;
  
!   /* First entry is "none" and it is used to reset the state.  */
!   types->handler ();
  
!   while (str)
!     {
!       const aarch_branch_protect_type *type = types;
!       for (; type->name; type++)
! 	if (strcmp (str, type->name) == 0)
! 	  break;
!       if (type->name == NULL)
! 	{
! 	  res = false;
! 	  if (strcmp (str, "") == 0)
! 	    error ("missing feature or flag for %<%s%>", opt);
! 	  else
! 	    error ("invalid argument %<%s%> for %<%s%>", str, opt);
! 	  break;
! 	}
  
!       if (type->alone && alone_str == NULL)
! 	alone_str = str;
!       else
! 	reject_alone = true;
!       if (reject_alone && alone_str != NULL)
! 	{
! 	  res = false;
! 	  error ("argument %<%s%> can only appear alone in %<%s%>",
! 		 alone_str, opt);
! 	  break;
! 	}
  
!       type->handler ();
!       str = next_tok (&next_str, '+');
!       if (type->subtypes == NULL)
! 	continue;
  
!       /* Loop through tokens until we find one that isn't a subtype.  */
!       while (str)
  	{
! 	  const aarch_branch_protect_type *subtype = type->subtypes;
! 	  for (; subtype->name; subtype++)
! 	    if (strcmp (str, subtype->name) == 0)
! 	      break;
! 	  if (subtype->name == NULL)
! 	    break;
! 
! 	  subtype->handler ();
! 	  str = next_tok (&next_str, '+');
  	}
      }
  
!   free (str_root);
    return res;
  }
diff -Nrcpad gcc-13.2.0/gcc/config/arm/aarch-common.h gcc-14.1.0/gcc/config/arm/aarch-common.h
*** gcc-13.2.0/gcc/config/arm/aarch-common.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/aarch-common.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Types shared between arm and aarch64.
  
!    Copyright (C) 2009-2021 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* Types shared between arm and aarch64.
  
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
***************
*** 23,29 ****
  #define GCC_AARCH_COMMON_H
  
  /* Enum describing the various ways that the
!    aarch*_parse_{arch,tune,cpu,extension} functions can fail.
     This way their callers can choose what kind of error to give.  */
  
  enum aarch_parse_opt_result
--- 23,29 ----
  #define GCC_AARCH_COMMON_H
  
  /* Enum describing the various ways that the
!    aarch*_parse_{arch,tune,cpu,extension,fmv_extension} functions can fail.
     This way their callers can choose what kind of error to give.  */
  
  enum aarch_parse_opt_result
*************** enum aarch_parse_opt_result
*** 31,37 ****
    AARCH_PARSE_OK,			/* Parsing was successful.  */
    AARCH_PARSE_MISSING_ARG,		/* Missing argument.  */
    AARCH_PARSE_INVALID_FEATURE,		/* Invalid feature modifier.  */
!   AARCH_PARSE_INVALID_ARG		/* Invalid arch, tune, cpu arg.  */
  };
  
  /* Function types -msign-return-address should sign.  */
--- 31,38 ----
    AARCH_PARSE_OK,			/* Parsing was successful.  */
    AARCH_PARSE_MISSING_ARG,		/* Missing argument.  */
    AARCH_PARSE_INVALID_FEATURE,		/* Invalid feature modifier.  */
!   AARCH_PARSE_INVALID_ARG,		/* Invalid arch, tune, cpu arg.  */
!   AARCH_PARSE_DUPLICATE_FEATURE		/* Duplicate feature modifier.  */
  };
  
  /* Function types -msign-return-address should sign.  */
*************** enum aarch_function_type {
*** 44,73 ****
    AARCH_FUNCTION_ALL
  };
  
- /* The key type that -msign-return-address should use.  */
- enum aarch_key_type {
-   AARCH_KEY_A,
-   AARCH_KEY_B
- };
- 
- struct aarch_branch_protect_type
- {
-   /* The type's name that the user passes to the branch-protection option
-      string.  */
-   const char* name;
-   /* Function to handle the protection type and set global variables.
-      First argument is the string token corresponding with this type and the
-      second argument is the next token in the option string.
-      Return values:
-      * AARCH_PARSE_OK: Handling was sucessful.
-      * AARCH_INVALID_ARG: The type is invalid in this context and the caller
-      should print an error.
-      * AARCH_INVALID_FEATURE: The type is invalid and the handler prints its
-      own error.  */
-   enum aarch_parse_opt_result (*handler)(char*, char*);
-   /* A list of types that can follow this type in the option string.  */
-   const struct aarch_branch_protect_type* subtypes;
-   unsigned int num_subtypes;
- };
- 
  #endif /* GCC_AARCH_COMMON_H */
--- 45,48 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arm/aarch-cost-tables.h gcc-14.1.0/gcc/config/arm/aarch-cost-tables.h
*** gcc-13.2.0/gcc/config/arm/aarch-cost-tables.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/aarch-cost-tables.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* RTX cost tables shared between arm and aarch64.
  
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* RTX cost tables shared between arm and aarch64.
  
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/aout.h gcc-14.1.0/gcc/config/arm/aout.h
*** gcc-13.2.0/gcc/config/arm/aout.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/aout.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, for ARM with a.out
!    Copyright (C) 1995-2023 Free Software Foundation, Inc.
     Contributed by Richard Earnshaw (rearnsha@armltd.co.uk).
     
     This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, for ARM with a.out
!    Copyright (C) 1995-2024 Free Software Foundation, Inc.
     Contributed by Richard Earnshaw (rearnsha@armltd.co.uk).
     
     This file is part of GCC.
***************
*** 152,158 ****
    do							\
      {							\
        ARM_DECLARE_FUNCTION_NAME (STREAM, NAME, DECL);   \
!       ASM_OUTPUT_LABEL (STREAM, NAME);			\
      }							\
    while (0)
  #endif
--- 152,158 ----
    do							\
      {							\
        ARM_DECLARE_FUNCTION_NAME (STREAM, NAME, DECL);   \
!       ASM_OUTPUT_FUNCTION_LABEL (STREAM, NAME, DECL);	\
      }							\
    while (0)
  #endif
***************
*** 183,189 ****
    do									\
      {									\
        if (TARGET_ARM)							\
! 	asm_fprintf (STREAM, "\tb\t%LL%d\n", VALUE);			\
        else if (TARGET_THUMB1)						\
  	{								\
  	  if (flag_pic || optimize_size)				\
--- 183,210 ----
    do									\
      {									\
        if (TARGET_ARM)							\
! 	{								\
! 	  switch (GET_MODE (body))					\
! 	    {								\
! 	    case E_QImode:						\
! 	      asm_fprintf (STREAM, "\t.byte\t(%LL%d-%LLrtx%d-4)/4\n",	\
! 			   VALUE, REL);					\
! 	      break;							\
! 	    case E_HImode:						\
! 	      asm_fprintf (STREAM, "\t.2byte\t(%LL%d-%LLrtx%d-4)/4\n",	\
! 			   VALUE, REL);					\
! 	      break;							\
! 	    case E_SImode:						\
! 	      if (flag_pic)						\
! 		asm_fprintf (STREAM, "\t.word\t%LL%d-%LLrtx%d-4\n",	\
! 			     VALUE, REL);				\
! 	      else							\
! 		asm_fprintf (STREAM, "\t.word\t%LL%d\n", VALUE);	\
! 	      break;							\
! 	    default:							\
! 	      gcc_unreachable ();					\
! 	    }								\
! 	}								\
        else if (TARGET_THUMB1)						\
  	{								\
  	  if (flag_pic || optimize_size)				\
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-builtins.cc gcc-14.1.0/gcc/config/arm/arm-builtins.cc
*** gcc-13.2.0/gcc/config/arm/arm-builtins.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-builtins.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Description of builtins used by the ARM backend.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Description of builtins used by the ARM backend.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** static tree arm_simd_polyHI_type_node =
*** 1405,1410 ****
--- 1405,1422 ----
  static tree arm_simd_polyDI_type_node = NULL_TREE;
  static tree arm_simd_polyTI_type_node = NULL_TREE;
  
+ /* Wrapper around add_builtin_function.  NAME is the name of the built-in
+    function, TYPE is the function type, CODE is the function subcode
+    (relative to ARM_BUILTIN_GENERAL), and ATTRS is the function
+    attributes.  */
+ static tree
+ arm_general_add_builtin_function (const char* name, tree type,
+ 				  unsigned int code, tree attrs = NULL_TREE)
+ {
+   code = (code << ARM_BUILTIN_SHIFT) | ARM_BUILTIN_GENERAL;
+   return add_builtin_function (name, type, code, BUILT_IN_MD, NULL, attrs);
+ }
+ 
  static const char *
  arm_mangle_builtin_scalar_type (const_tree type)
  {
*************** arm_init_simd_builtin_types (void)
*** 1568,1587 ****
        TYPE_STRING_FLAG (arm_simd_polyHI_type_node) = false;
      }
    /* Init all the element types built by the front-end.  */
!   arm_simd_types[Int8x8_t].eltype = intQI_type_node;
!   arm_simd_types[Int8x16_t].eltype = intQI_type_node;
!   arm_simd_types[Int16x4_t].eltype = intHI_type_node;
!   arm_simd_types[Int16x8_t].eltype = intHI_type_node;
!   arm_simd_types[Int32x2_t].eltype = intSI_type_node;
!   arm_simd_types[Int32x4_t].eltype = intSI_type_node;
!   arm_simd_types[Int64x2_t].eltype = intDI_type_node;
!   arm_simd_types[Uint8x8_t].eltype = unsigned_intQI_type_node;
!   arm_simd_types[Uint8x16_t].eltype = unsigned_intQI_type_node;
!   arm_simd_types[Uint16x4_t].eltype = unsigned_intHI_type_node;
!   arm_simd_types[Uint16x8_t].eltype = unsigned_intHI_type_node;
!   arm_simd_types[Uint32x2_t].eltype = unsigned_intSI_type_node;
!   arm_simd_types[Uint32x4_t].eltype = unsigned_intSI_type_node;
!   arm_simd_types[Uint64x2_t].eltype = unsigned_intDI_type_node;
  
    /* Note: poly64x2_t is defined in arm_neon.h, to ensure it gets default
       mangling.  */
--- 1580,1599 ----
        TYPE_STRING_FLAG (arm_simd_polyHI_type_node) = false;
      }
    /* Init all the element types built by the front-end.  */
!   arm_simd_types[Int8x8_t].eltype = get_typenode_from_name (INT8_TYPE);
!   arm_simd_types[Int8x16_t].eltype = get_typenode_from_name (INT8_TYPE);
!   arm_simd_types[Int16x4_t].eltype = get_typenode_from_name (INT16_TYPE);
!   arm_simd_types[Int16x8_t].eltype = get_typenode_from_name (INT16_TYPE);
!   arm_simd_types[Int32x2_t].eltype = get_typenode_from_name (INT32_TYPE);
!   arm_simd_types[Int32x4_t].eltype = get_typenode_from_name (INT32_TYPE);
!   arm_simd_types[Int64x2_t].eltype = get_typenode_from_name (INT64_TYPE);
!   arm_simd_types[Uint8x8_t].eltype = get_typenode_from_name (UINT8_TYPE);
!   arm_simd_types[Uint8x16_t].eltype = get_typenode_from_name (UINT8_TYPE);
!   arm_simd_types[Uint16x4_t].eltype = get_typenode_from_name (UINT16_TYPE);
!   arm_simd_types[Uint16x8_t].eltype = get_typenode_from_name (UINT16_TYPE);
!   arm_simd_types[Uint32x2_t].eltype = get_typenode_from_name (UINT32_TYPE);
!   arm_simd_types[Uint32x4_t].eltype = get_typenode_from_name (UINT32_TYPE);
!   arm_simd_types[Uint64x2_t].eltype = get_typenode_from_name (UINT64_TYPE);
  
    /* Note: poly64x2_t is defined in arm_neon.h, to ensure it gets default
       mangling.  */
*************** arm_init_builtin (unsigned int fcode, ar
*** 1811,1818 ****
      snprintf (namebuf, sizeof (namebuf), "%s_%s",
  	      prefix, d->name);
  
!   fndecl = add_builtin_function (namebuf, ftype, fcode, BUILT_IN_MD,
! 				 NULL, NULL_TREE);
    arm_builtin_decls[fcode] = fndecl;
  }
  
--- 1823,1829 ----
      snprintf (namebuf, sizeof (namebuf), "%s_%s",
  	      prefix, d->name);
  
!   fndecl = arm_general_add_builtin_function (namebuf, ftype, fcode);
    arm_builtin_decls[fcode] = fndecl;
  }
  
*************** arm_init_bf16_types (void)
*** 1832,1838 ****
  /* Set up ACLE builtins, even builtins for instructions that are not
     in the current target ISA to allow the user to compile particular modules
     with different target specific options that differ from the command line
!    options.  Such builtins will be rejected in arm_expand_builtin.  */
  
  static void
  arm_init_acle_builtins (void)
--- 1843,1849 ----
  /* Set up ACLE builtins, even builtins for instructions that are not
     in the current target ISA to allow the user to compile particular modules
     with different target specific options that differ from the command line
!    options.  Such builtins will be rejected in arm_general_expand_builtin.  */
  
  static void
  arm_init_acle_builtins (void)
*************** arm_init_acle_builtins (void)
*** 1845,1853 ****
  						 intSI_type_node,
  						 NULL);
    arm_builtin_decls[ARM_BUILTIN_SAT_IMM_CHECK]
!     = add_builtin_function ("__builtin_sat_imm_check", sat_check_fpr,
! 			    ARM_BUILTIN_SAT_IMM_CHECK, BUILT_IN_MD,
! 			    NULL, NULL_TREE);
  
    for (i = 0; i < ARRAY_SIZE (acle_builtin_data); i++, fcode++)
      {
--- 1856,1864 ----
  						 intSI_type_node,
  						 NULL);
    arm_builtin_decls[ARM_BUILTIN_SAT_IMM_CHECK]
!     = arm_general_add_builtin_function ("__builtin_sat_imm_check",
! 					sat_check_fpr,
! 					ARM_BUILTIN_SAT_IMM_CHECK);
  
    for (i = 0; i < ARRAY_SIZE (acle_builtin_data); i++, fcode++)
      {
*************** arm_init_mve_builtins (void)
*** 1894,1918 ****
  						    intSI_type_node,
  						    NULL);
    arm_builtin_decls[ARM_BUILTIN_GET_FPSCR_NZCVQC]
!     = add_builtin_function ("__builtin_arm_get_fpscr_nzcvqc", get_fpscr_nzcvqc,
! 			    ARM_BUILTIN_GET_FPSCR_NZCVQC, BUILT_IN_MD, NULL,
! 			    NULL_TREE);
    arm_builtin_decls[ARM_BUILTIN_SET_FPSCR_NZCVQC]
!     = add_builtin_function ("__builtin_arm_set_fpscr_nzcvqc", set_fpscr_nzcvqc,
! 			    ARM_BUILTIN_SET_FPSCR_NZCVQC, BUILT_IN_MD, NULL,
! 			    NULL_TREE);
  
    for (i = 0; i < ARRAY_SIZE (mve_builtin_data); i++, fcode++)
      {
        arm_builtin_datum *d = &mve_builtin_data[i];
        arm_init_builtin (fcode, d, "__builtin_mve");
      }
  }
  
  /* Set up all the NEON builtins, even builtins for instructions that are not
     in the current target ISA to allow the user to compile particular modules
     with different target specific options that differ from the command line
!    options. Such builtins will be rejected in arm_expand_builtin.  */
  
  static void
  arm_init_neon_builtins (void)
--- 1905,1938 ----
  						    intSI_type_node,
  						    NULL);
    arm_builtin_decls[ARM_BUILTIN_GET_FPSCR_NZCVQC]
!     = arm_general_add_builtin_function ("__builtin_arm_get_fpscr_nzcvqc",
! 					get_fpscr_nzcvqc,
! 					ARM_BUILTIN_GET_FPSCR_NZCVQC);
    arm_builtin_decls[ARM_BUILTIN_SET_FPSCR_NZCVQC]
!     = arm_general_add_builtin_function ("__builtin_arm_set_fpscr_nzcvqc",
! 					set_fpscr_nzcvqc,
! 					ARM_BUILTIN_SET_FPSCR_NZCVQC);
  
    for (i = 0; i < ARRAY_SIZE (mve_builtin_data); i++, fcode++)
      {
        arm_builtin_datum *d = &mve_builtin_data[i];
        arm_init_builtin (fcode, d, "__builtin_mve");
      }
+ 
+   if (in_lto_p)
+     {
+       arm_mve::handle_arm_mve_types_h ();
+       /* Under LTO, we cannot know whether
+ 	 __ARM_MVE_PRESERVE_USER_NAMESPACE was defined, so assume it
+ 	 was not.  */
+       arm_mve::handle_arm_mve_h (false);
+     }
  }
  
  /* Set up all the NEON builtins, even builtins for instructions that are not
     in the current target ISA to allow the user to compile particular modules
     with different target specific options that differ from the command line
!    options.  Such builtins will be rejected in arm_general_expand_builtin.  */
  
  static void
  arm_init_neon_builtins (void)
*************** arm_init_crypto_builtins (void)
*** 2006,2022 ****
      R##_ftype_##A1##_##A2##_##A3
    #define CRYPTO1(L, U, R, A) \
      arm_builtin_decls[C (U)] \
!       = add_builtin_function (N (L), FT1 (R, A), \
! 		  C (U), BUILT_IN_MD, NULL, NULL_TREE);
    #define CRYPTO2(L, U, R, A1, A2)  \
      arm_builtin_decls[C (U)]	\
!       = add_builtin_function (N (L), FT2 (R, A1, A2), \
! 		  C (U), BUILT_IN_MD, NULL, NULL_TREE);
  
    #define CRYPTO3(L, U, R, A1, A2, A3) \
      arm_builtin_decls[C (U)]	   \
!       = add_builtin_function (N (L), FT3 (R, A1, A2, A3), \
! 				  C (U), BUILT_IN_MD, NULL, NULL_TREE);
    #include "crypto.def"
  
    #undef CRYPTO1
--- 2026,2039 ----
      R##_ftype_##A1##_##A2##_##A3
    #define CRYPTO1(L, U, R, A) \
      arm_builtin_decls[C (U)] \
!       = arm_general_add_builtin_function (N (L), FT1 (R, A), C (U));
    #define CRYPTO2(L, U, R, A1, A2)  \
      arm_builtin_decls[C (U)]	\
!       = arm_general_add_builtin_function (N (L), FT2 (R, A1, A2), C (U));
  
    #define CRYPTO3(L, U, R, A1, A2, A3) \
      arm_builtin_decls[C (U)]	   \
!       = arm_general_add_builtin_function (N (L), FT3 (R, A1, A2, A3), C (U));
    #include "crypto.def"
  
    #undef CRYPTO1
*************** arm_init_crypto_builtins (void)
*** 2039,2046 ****
  	  || bitmap_bit_p (arm_active_target.isa, FLAG))		\
  	{								\
  	  tree bdecl;							\
! 	  bdecl = add_builtin_function ((NAME), (TYPE), (CODE),		\
! 					BUILT_IN_MD, NULL, NULL_TREE);	\
  	  arm_builtin_decls[CODE] = bdecl;				\
  	}								\
      }									\
--- 2056,2063 ----
  	  || bitmap_bit_p (arm_active_target.isa, FLAG))		\
  	{								\
  	  tree bdecl;							\
! 	  bdecl  = arm_general_add_builtin_function ((NAME), (TYPE),    \
! 						     (CODE));		\
  	  arm_builtin_decls[CODE] = bdecl;				\
  	}								\
      }									\
*************** arm_init_builtins (void)
*** 2650,2658 ****
  						      intSI_type_node,
  						      NULL);
        arm_builtin_decls[ARM_BUILTIN_SIMD_LANE_CHECK]
!       = add_builtin_function ("__builtin_arm_lane_check", lane_check_fpr,
! 			      ARM_BUILTIN_SIMD_LANE_CHECK, BUILT_IN_MD,
! 			      NULL, NULL_TREE);
        if (TARGET_HAVE_MVE)
  	arm_init_mve_builtins ();
        else
--- 2667,2675 ----
  						      intSI_type_node,
  						      NULL);
        arm_builtin_decls[ARM_BUILTIN_SIMD_LANE_CHECK]
!       = arm_general_add_builtin_function ("__builtin_arm_lane_check",
! 					  lane_check_fpr,
! 					  ARM_BUILTIN_SIMD_LANE_CHECK);
        if (TARGET_HAVE_MVE)
  	arm_init_mve_builtins ();
        else
*************** arm_init_builtins (void)
*** 2674,2684 ****
  	= build_function_type_list (unsigned_type_node, NULL);
  
        arm_builtin_decls[ARM_BUILTIN_GET_FPSCR]
! 	= add_builtin_function ("__builtin_arm_get_fpscr", ftype_get_fpscr,
! 				ARM_BUILTIN_GET_FPSCR, BUILT_IN_MD, NULL, NULL_TREE);
        arm_builtin_decls[ARM_BUILTIN_SET_FPSCR]
! 	= add_builtin_function ("__builtin_arm_set_fpscr", ftype_set_fpscr,
! 				ARM_BUILTIN_SET_FPSCR, BUILT_IN_MD, NULL, NULL_TREE);
      }
  
    if (use_cmse)
--- 2691,2703 ----
  	= build_function_type_list (unsigned_type_node, NULL);
  
        arm_builtin_decls[ARM_BUILTIN_GET_FPSCR]
! 	= arm_general_add_builtin_function ("__builtin_arm_get_fpscr",
! 					    ftype_get_fpscr,
! 					    ARM_BUILTIN_GET_FPSCR);
        arm_builtin_decls[ARM_BUILTIN_SET_FPSCR]
! 	= arm_general_add_builtin_function ("__builtin_arm_set_fpscr",
! 					    ftype_set_fpscr,
! 					    ARM_BUILTIN_SET_FPSCR);
      }
  
    if (use_cmse)
*************** arm_init_builtins (void)
*** 2686,2702 ****
        tree ftype_cmse_nonsecure_caller
  	= build_function_type_list (unsigned_type_node, NULL);
        arm_builtin_decls[ARM_BUILTIN_CMSE_NONSECURE_CALLER]
! 	= add_builtin_function ("__builtin_arm_cmse_nonsecure_caller",
! 				ftype_cmse_nonsecure_caller,
! 				ARM_BUILTIN_CMSE_NONSECURE_CALLER, BUILT_IN_MD,
! 				NULL, NULL_TREE);
      }
  }
  
! /* Return the ARM builtin for CODE.  */
! 
  tree
! arm_builtin_decl (unsigned code, bool initialize_p ATTRIBUTE_UNUSED)
  {
    if (code >= ARM_BUILTIN_MAX)
      return error_mark_node;
--- 2705,2719 ----
        tree ftype_cmse_nonsecure_caller
  	= build_function_type_list (unsigned_type_node, NULL);
        arm_builtin_decls[ARM_BUILTIN_CMSE_NONSECURE_CALLER]
! 	= arm_general_add_builtin_function ("__builtin_arm_cmse_nonsecure_caller",
! 					    ftype_cmse_nonsecure_caller,
! 					    ARM_BUILTIN_CMSE_NONSECURE_CALLER);
      }
  }
  
! /* Implement TARGET_BUILTIN_DECL for general builtins.  */
  tree
! arm_general_builtin_decl (unsigned code)
  {
    if (code >= ARM_BUILTIN_MAX)
      return error_mark_node;
*************** arm_builtin_decl (unsigned code, bool in
*** 2704,2709 ****
--- 2721,2743 ----
    return arm_builtin_decls[code];
  }
  
+ /* Implement TARGET_BUILTIN_DECL.  */
+ /* Return the ARM builtin for CODE.  */
+ tree
+ arm_builtin_decl (unsigned code, bool initialize_p ATTRIBUTE_UNUSED)
+ {
+   unsigned subcode = code >> ARM_BUILTIN_SHIFT;
+   switch (code & ARM_BUILTIN_CLASS)
+     {
+     case ARM_BUILTIN_GENERAL:
+       return arm_general_builtin_decl (subcode);
+     case ARM_BUILTIN_MVE:
+       return arm_mve::builtin_decl (subcode);
+     default:
+       gcc_unreachable ();
+     }
+ }
+ 
  /* Errors in the source file can cause expand_expr to return const0_rtx
     where we expect a vector.  To avoid crashing, use one of the vector
     clear instructions.  */
*************** arm_expand_ternop_builtin (enum insn_cod
*** 2769,2775 ****
    return target;
  }
  
! /* Subroutine of arm_expand_builtin to take care of binop insns.  */
  
  static rtx
  arm_expand_binop_builtin (enum insn_code icode,
--- 2803,2809 ----
    return target;
  }
  
! /* Subroutine of arm_general_expand_builtin to take care of binop insns.  */
  
  static rtx
  arm_expand_binop_builtin (enum insn_code icode,
*************** arm_expand_binop_builtin (enum insn_code
*** 2809,2815 ****
    return target;
  }
  
! /* Subroutine of arm_expand_builtin to take care of unop insns.  */
  
  static rtx
  arm_expand_unop_builtin (enum insn_code icode,
--- 2843,2849 ----
    return target;
  }
  
! /* Subroutine of arm_general_expand_builtin to take care of unop insns.  */
  
  static rtx
  arm_expand_unop_builtin (enum insn_code icode,
*************** mve_dereference_pointer (tree exp, tree
*** 2946,2956 ****
  		      build_int_cst (build_pointer_type (array_type), 0));
  }
  
! /* Expand a builtin.  */
  static rtx
! arm_expand_builtin_args (rtx target, machine_mode map_mode, int fcode,
! 		      int icode, int have_retval, tree exp,
! 		      builtin_arg *args)
  {
    rtx pat;
    tree arg[SIMD_MAX_BUILTIN_ARGS];
--- 2980,2990 ----
  		      build_int_cst (build_pointer_type (array_type), 0));
  }
  
! /* Implement TARGET_EXPAND_BUILTIN for general builtins.  */
  static rtx
! arm_general_expand_builtin_args (rtx target, machine_mode map_mode, int fcode,
! 				 int icode, int have_retval, tree exp,
! 				 builtin_arg *args)
  {
    rtx pat;
    tree arg[SIMD_MAX_BUILTIN_ARGS];
*************** constant_arg:
*** 3234,3246 ****
    return target;
  }
  
! /* Expand a builtin.  These builtins are "special" because they don't have
!    symbolic constants defined per-instruction or per instruction-variant.
     Instead, the required info is looked up in the ARM_BUILTIN_DATA record that
     is passed into the function.  */
  
  static rtx
! arm_expand_builtin_1 (int fcode, tree exp, rtx target,
  			   arm_builtin_datum *d)
  {
    enum insn_code icode = d->code;
--- 3268,3280 ----
    return target;
  }
  
! /* Expand a general builtin.  These builtins are "special" because they don't
!    have symbolic constants defined per-instruction or per instruction-variant.
     Instead, the required info is looked up in the ARM_BUILTIN_DATA record that
     is passed into the function.  */
  
  static rtx
! arm_general_expand_builtin_1 (int fcode, tree exp, rtx target,
  			   arm_builtin_datum *d)
  {
    enum insn_code icode = d->code;
*************** arm_expand_builtin_1 (int fcode, tree ex
*** 3308,3323 ****
      }
    args[k] = ARG_BUILTIN_STOP;
  
!   /* The interface to arm_expand_builtin_args expects a 0 if
       the function is void, and a 1 if it is not.  */
!   return arm_expand_builtin_args
      (target, d->mode, fcode, icode, !is_void, exp,
       &args[1]);
  }
  
  /* Expand an ACLE builtin, i.e. those registered only if their respective
     target constraints are met.  This check happens within
!    arm_expand_builtin_args.  */
  
  static rtx
  arm_expand_acle_builtin (int fcode, tree exp, rtx target)
--- 3342,3357 ----
      }
    args[k] = ARG_BUILTIN_STOP;
  
!   /* The interface to arm_general_expand_builtin_args expects a 0 if
       the function is void, and a 1 if it is not.  */
!   return arm_general_expand_builtin_args
      (target, d->mode, fcode, icode, !is_void, exp,
       &args[1]);
  }
  
  /* Expand an ACLE builtin, i.e. those registered only if their respective
     target constraints are met.  This check happens within
!    arm_general_expand_builtin_args.  */
  
  static rtx
  arm_expand_acle_builtin (int fcode, tree exp, rtx target)
*************** arm_expand_acle_builtin (int fcode, tree
*** 3351,3361 ****
        ? &acle_builtin_data[fcode - ARM_BUILTIN_ACLE_PATTERN_START]
        : &cde_builtin_data[fcode - ARM_BUILTIN_CDE_PATTERN_START].base;
  
!   return arm_expand_builtin_1 (fcode, exp, target, d);
  }
  
! /* Expand an MVE builtin, i.e. those registered only if their respective target
!    constraints are met.  This check happens within arm_expand_builtin.  */
  
  static rtx
  arm_expand_mve_builtin (int fcode, tree exp, rtx target)
--- 3385,3396 ----
        ? &acle_builtin_data[fcode - ARM_BUILTIN_ACLE_PATTERN_START]
        : &cde_builtin_data[fcode - ARM_BUILTIN_CDE_PATTERN_START].base;
  
!   return arm_general_expand_builtin_1 (fcode, exp, target, d);
  }
  
! /* Expand an MVE builtin, i.e. those registered only if their respective
!    target constraints are met.  This check happens within
!    arm_general_expand_builtin.  */
  
  static rtx
  arm_expand_mve_builtin (int fcode, tree exp, rtx target)
*************** arm_expand_mve_builtin (int fcode, tree
*** 3371,3377 ****
    arm_builtin_datum *d
      = &mve_builtin_data[fcode - ARM_BUILTIN_MVE_PATTERN_START];
  
!   return arm_expand_builtin_1 (fcode, exp, target, d);
  }
  
  /* Expand a Neon builtin, i.e. those registered only if TARGET_NEON holds.
--- 3406,3412 ----
    arm_builtin_datum *d
      = &mve_builtin_data[fcode - ARM_BUILTIN_MVE_PATTERN_START];
  
!   return arm_general_expand_builtin_1 (fcode, exp, target, d);
  }
  
  /* Expand a Neon builtin, i.e. those registered only if TARGET_NEON holds.
*************** arm_expand_neon_builtin (int fcode, tree
*** 3394,3400 ****
    arm_builtin_datum *d
      = &neon_builtin_data[fcode - ARM_BUILTIN_NEON_PATTERN_START];
  
!   return arm_expand_builtin_1 (fcode, exp, target, d);
  }
  
  /* Expand a VFP builtin.  These builtins are treated like
--- 3429,3435 ----
    arm_builtin_datum *d
      = &neon_builtin_data[fcode - ARM_BUILTIN_NEON_PATTERN_START];
  
!   return arm_general_expand_builtin_1 (fcode, exp, target, d);
  }
  
  /* Expand a VFP builtin.  These builtins are treated like
*************** arm_expand_vfp_builtin (int fcode, tree
*** 3415,3439 ****
    arm_builtin_datum *d
      = &vfp_builtin_data[fcode - ARM_BUILTIN_VFP_PATTERN_START];
  
!   return arm_expand_builtin_1 (fcode, exp, target, d);
  }
  
! /* Expand an expression EXP that calls a built-in function,
!    with result going to TARGET if that's convenient
!    (and in mode MODE if that's convenient).
!    SUBTARGET may be used as the target for computing one of EXP's operands.
!    IGNORE is nonzero if the value is to be ignored.  */
! 
  rtx
! arm_expand_builtin (tree exp,
  		    rtx target,
- 		    rtx subtarget ATTRIBUTE_UNUSED,
- 		    machine_mode mode ATTRIBUTE_UNUSED,
  		    int ignore ATTRIBUTE_UNUSED)
  {
    const struct builtin_description * d;
    enum insn_code    icode;
-   tree              fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
    tree              arg0;
    tree              arg1;
    tree              arg2;
--- 3450,3467 ----
    arm_builtin_datum *d
      = &vfp_builtin_data[fcode - ARM_BUILTIN_VFP_PATTERN_START];
  
!   return arm_general_expand_builtin_1 (fcode, exp, target, d);
  }
  
! /* Implement TARGET_EXPAND_BUILTIN for general builtins.  */
  rtx
! arm_general_expand_builtin (unsigned int fcode,
! 			    tree exp,
  		    rtx target,
  		    int ignore ATTRIBUTE_UNUSED)
  {
    const struct builtin_description * d;
    enum insn_code    icode;
    tree              arg0;
    tree              arg1;
    tree              arg2;
*************** arm_expand_builtin (tree exp,
*** 3441,3447 ****
    rtx               op1;
    rtx               op2;
    rtx               pat;
-   unsigned int      fcode = DECL_MD_FUNCTION_CODE (fndecl);
    size_t            i;
    machine_mode tmode;
    machine_mode mode0;
--- 3469,3474 ----
*************** arm_expand_builtin (tree exp,
*** 4052,4057 ****
--- 4079,4111 ----
    return NULL_RTX;
  }
  
+ /* Expand an expression EXP that calls a built-in function,
+    with result going to TARGET if that's convenient
+    (and in mode MODE if that's convenient).
+    SUBTARGET may be used as the target for computing one of EXP's operands.
+    IGNORE is nonzero if the value is to be ignored.  */
+ 
+ rtx
+ arm_expand_builtin (tree exp,
+ 		    rtx target,
+ 		    rtx subtarget ATTRIBUTE_UNUSED,
+ 		    machine_mode mode ATTRIBUTE_UNUSED,
+ 		    int ignore ATTRIBUTE_UNUSED)
+ {
+   tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
+   unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
+   unsigned int subcode = code >> ARM_BUILTIN_SHIFT;
+   switch (code & ARM_BUILTIN_CLASS)
+     {
+     case ARM_BUILTIN_GENERAL:
+       return arm_general_expand_builtin (subcode, exp, target, ignore);
+     case ARM_BUILTIN_MVE:
+       return arm_mve::expand_builtin (subcode, exp, target);
+     default:
+       gcc_unreachable ();
+     }
+ }
+ 
  void
  arm_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update)
  {
*************** arm_atomic_assign_expand_fenv (tree *hol
*** 4122,4143 ****
  			    reload_fenv, restore_fnenv), update_call);
  }
  
! /* Implement TARGET_CHECK_BUILTIN_CALL.  Record a read of the Q bit through
!    intrinsics in the machine function.  */
  bool
! arm_check_builtin_call (location_t , vec<location_t> , tree fndecl,
! 			tree, unsigned int, tree *)
  {
!   int fcode = DECL_MD_FUNCTION_CODE (fndecl);
!   if (fcode == ARM_BUILTIN_saturation_occurred
!       || fcode == ARM_BUILTIN_set_saturation)
      {
        if (cfun && cfun->decl)
  	DECL_ATTRIBUTES (cfun->decl)
  	  = tree_cons (get_identifier ("acle qbit"), NULL_TREE,
  		       DECL_ATTRIBUTES (cfun->decl));
      }
!   if (fcode == ARM_BUILTIN_sel)
      {
        if (cfun && cfun->decl)
  	DECL_ATTRIBUTES (cfun->decl)
--- 4176,4196 ----
  			    reload_fenv, restore_fnenv), update_call);
  }
  
! /* Implement TARGET_CHECK_BUILTIN_CALL for general builtins.  Record a read of
!    the Q bit through intrinsics in the machine function for general built-in
!    functions.  */
  bool
! arm_general_check_builtin_call (unsigned int code)
  {
!   if (code == ARM_BUILTIN_saturation_occurred
!      || code == ARM_BUILTIN_set_saturation)
      {
        if (cfun && cfun->decl)
  	DECL_ATTRIBUTES (cfun->decl)
  	  = tree_cons (get_identifier ("acle qbit"), NULL_TREE,
  		       DECL_ATTRIBUTES (cfun->decl));
      }
!   else if (code == ARM_BUILTIN_sel)
      {
        if (cfun && cfun->decl)
  	DECL_ATTRIBUTES (cfun->decl)
*************** arm_check_builtin_call (location_t , vec
*** 4147,4165 ****
    return true;
  }
  
  enum resolver_ident
  arm_describe_resolver (tree fndecl)
  {
!   if (DECL_MD_FUNCTION_CODE (fndecl) >= ARM_BUILTIN_vcx1qv16qi
!     && DECL_MD_FUNCTION_CODE (fndecl) < ARM_BUILTIN_MVE_BASE)
!     return arm_cde_resolver;
!   return arm_no_resolver;
  }
  
  unsigned
  arm_cde_end_args (tree fndecl)
  {
!   return DECL_MD_FUNCTION_CODE (fndecl) >= ARM_BUILTIN_vcx1q_p_v16qi ? 2 : 1;
  }
  
  #include "gt-arm-builtins.h"
--- 4200,4257 ----
    return true;
  }
  
+ /* Implement TARGET_CHECK_BUILTIN_CALL.  */
+ bool
+ arm_check_builtin_call (location_t loc, vec<location_t> arg_loc,
+ 			tree fndecl, tree orig_fndecl,
+ 			unsigned int nargs, tree *args)
+ {
+   unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
+   unsigned int subcode = code >> ARM_BUILTIN_SHIFT;
+   switch (code & ARM_BUILTIN_CLASS)
+     {
+     case ARM_BUILTIN_GENERAL:
+       return arm_general_check_builtin_call (subcode);
+     case ARM_BUILTIN_MVE:
+       return arm_mve::check_builtin_call (loc, arg_loc, subcode,
+ 					  orig_fndecl, nargs, args);
+     default:
+       gcc_unreachable ();
+     }
+ 
+ }
+ 
  enum resolver_ident
  arm_describe_resolver (tree fndecl)
  {
!   unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
!   unsigned int subcode = code >> ARM_BUILTIN_SHIFT;
!   switch (code & ARM_BUILTIN_CLASS)
!     {
!     case ARM_BUILTIN_GENERAL:
!       if (subcode >= ARM_BUILTIN_vcx1qv16qi
! 	&& subcode < ARM_BUILTIN_MVE_BASE)
! 	return arm_cde_resolver;
!       return arm_no_resolver;
!     case ARM_BUILTIN_MVE:
!       return arm_mve_resolver;
!     default:
!       gcc_unreachable ();
!     }
  }
  
  unsigned
  arm_cde_end_args (tree fndecl)
  {
!   unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
!   unsigned int subcode = code >> ARM_BUILTIN_SHIFT;
!   switch (code & ARM_BUILTIN_CLASS)
!     {
!     case ARM_BUILTIN_GENERAL:
!       return subcode >= ARM_BUILTIN_vcx1q_p_v16qi ? 2 : 1;
!     default:
!       gcc_unreachable ();
!     }
  }
  
  #include "gt-arm-builtins.h"
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-builtins.h gcc-14.1.0/gcc/config/arm/arm-builtins.h
*** gcc-13.2.0/gcc/config/arm/arm-builtins.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-builtins.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declarations for determining resolver for a given builtin.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Declarations for determining resolver for a given builtin.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 27,32 ****
--- 27,33 ----
  
  enum resolver_ident {
      arm_cde_resolver,
+     arm_mve_resolver,
      arm_no_resolver
  };
  enum resolver_ident arm_describe_resolver (tree);
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-c.cc gcc-14.1.0/gcc/config/arm/arm-c.cc
*** gcc-13.2.0/gcc/config/arm/arm-c.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-c.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2007-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2007-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** arm_pragma_arm (cpp_reader *)
*** 144,163 ****
    const char *name = TREE_STRING_POINTER (x);
    if (strcmp (name, "arm_mve_types.h") == 0)
      arm_mve::handle_arm_mve_types_h ();
    else
      error ("unknown %<#pragma GCC arm%> option %qs", name);
  }
  
! /* Implement TARGET_RESOLVE_OVERLOADED_BUILTIN.  This is currently only
!    used for the MVE related builtins for the CDE extension.
!    Here we ensure the type of arguments is such that the size is correct, and
!    then return a tree that describes the same function call but with the
!    relevant types cast as necessary.  */
  tree
! arm_resolve_overloaded_builtin (location_t loc, tree fndecl, void *arglist)
  {
!   if (arm_describe_resolver (fndecl) == arm_cde_resolver)
!     return arm_resolve_cde_builtin (loc, fndecl, arglist);
    return NULL_TREE;
  }
  
--- 144,187 ----
    const char *name = TREE_STRING_POINTER (x);
    if (strcmp (name, "arm_mve_types.h") == 0)
      arm_mve::handle_arm_mve_types_h ();
+   else if (strcmp (name, "arm_mve.h") == 0)
+     {
+       if (pragma_lex (&x) == CPP_NAME)
+ 	{
+ 	  if (strcmp (IDENTIFIER_POINTER (x), "true") == 0)
+ 	    arm_mve::handle_arm_mve_h (true);
+ 	  else if (strcmp (IDENTIFIER_POINTER (x), "false") == 0)
+ 	    arm_mve::handle_arm_mve_h (false);
+ 	  else
+ 	    error ("%<#pragma GCC arm \"arm_mve.h\"%> requires a boolean parameter");
+ 	}
+     }
    else
      error ("unknown %<#pragma GCC arm%> option %qs", name);
  }
  
! /* Implement TARGET_RESOLVE_OVERLOADED_BUILTIN.  */
  tree
! arm_resolve_overloaded_builtin (location_t loc, tree fndecl,
! 				void *uncast_arglist)
  {
!   enum resolver_ident resolver = arm_describe_resolver (fndecl);
!   if (resolver == arm_cde_resolver)
!     return arm_resolve_cde_builtin (loc, fndecl, uncast_arglist);
!   if (resolver == arm_mve_resolver)
!     {
!       vec<tree, va_gc> empty = {};
!       vec<tree, va_gc> *arglist = (uncast_arglist
! 				   ? (vec<tree, va_gc> *) uncast_arglist
! 				   : &empty);
!       unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
!       unsigned int subcode = code >> ARM_BUILTIN_SHIFT;
!       tree new_fndecl = arm_mve::resolve_overloaded_builtin (loc, subcode, arglist);
!       if (new_fndecl == NULL_TREE || new_fndecl == error_mark_node)
! 	return new_fndecl;
!       return build_function_call_vec (loc, vNULL, new_fndecl, arglist,
! 				      NULL, fndecl);
!     }
    return NULL_TREE;
  }
  
*************** arm_cpu_builtins (struct cpp_reader* pfi
*** 224,231 ****
    {
      unsigned int pac = 1;
  
-     gcc_assert (aarch_ra_sign_key == AARCH_KEY_A);
- 
      if (aarch_ra_sign_scope == AARCH_FUNCTION_ALL)
        pac |= 0x4;
  
--- 248,253 ----
*************** arm_register_target_pragmas (void)
*** 519,525 ****
--- 541,549 ----
  {
    /* Update pragma hook to allow parsing #pragma GCC target.  */
    targetm.target_option.pragma_parse = arm_pragma_target_parse;
+ 
    targetm.resolve_overloaded_builtin = arm_resolve_overloaded_builtin;
+   targetm.check_builtin_call = arm_check_builtin_call;
  
    c_register_pragma ("GCC", "arm", arm_pragma_arm);
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-cpus.in gcc-14.1.0/gcc/config/arm/arm-cpus.in
*** gcc-13.2.0/gcc/config/arm/arm-cpus.in	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-cpus.in	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  # CPU, FPU and architecture specifications for ARM.
  #
! # Copyright (C) 2011-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  # CPU, FPU and architecture specifications for ARM.
  #
! # Copyright (C) 2011-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** begin cpu cortex-m35p
*** 1641,1646 ****
--- 1641,1667 ----
   costs v7m
  end cpu cortex-m35p
  
+ begin cpu cortex-m52
+  cname cortexm52
+  tune flags LDSCHED
+  architecture armv8.1-m.main+pacbti+mve.fp+fp.dp
+  option nopacbti remove pacbti
+  option nomve.fp remove mve_float
+  option nomve remove mve mve_float
+  option nofp remove ALL_FP mve_float
+  option nodsp remove MVE mve_float
+  option cdecp0 add cdecp0
+  option cdecp1 add cdecp1
+  option cdecp2 add cdecp2
+  option cdecp3 add cdecp3
+  option cdecp4 add cdecp4
+  option cdecp5 add cdecp5
+  option cdecp6 add cdecp6
+  option cdecp7 add cdecp7
+  isa quirk_no_asmcpu quirk_vlldm
+  costs v7m
+ end cpu cortex-m52
+ 
  begin cpu cortex-m55
   cname cortexm55
   tune flags LDSCHED
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-d.cc gcc-14.1.0/gcc/config/arm/arm-d.cc
*** gcc-13.2.0/gcc/config/arm/arm-d.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-d.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines for the D front end on the ARM architecture.
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
--- 1,5 ----
  /* Subroutines for the D front end on the ARM architecture.
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-d.h gcc-14.1.0/gcc/config/arm/arm-d.h
*** gcc-13.2.0/gcc/config/arm/arm-d.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-d.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for the D front end on the ARM architecture.
!    Copyright (C) 2022-2023 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
--- 1,5 ----
  /* Definitions for the D front end on the ARM architecture.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-fixed.md gcc-14.1.0/gcc/config/arm/arm-fixed.md
*** gcc-13.2.0/gcc/config/arm/arm-fixed.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-fixed.md	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! ;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,4 ----
! ;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-flags.h gcc-14.1.0/gcc/config/arm/arm-flags.h
*** gcc-13.2.0/gcc/config/arm/arm-flags.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-flags.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Flags used to identify the presence of processor capabilities.
  
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* Flags used to identify the presence of processor capabilities.
  
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-generic.md gcc-14.1.0/gcc/config/arm/arm-generic.md
*** gcc-13.2.0/gcc/config/arm/arm-generic.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-generic.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Generic ARM Pipeline Description
! ;; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Generic ARM Pipeline Description
! ;; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-ldmstm.ml gcc-14.1.0/gcc/config/arm/arm-ldmstm.ml
*** gcc-13.2.0/gcc/config/arm/arm-ldmstm.ml	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-ldmstm.ml	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  (* Auto-generate ARM ldm/stm patterns
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
--- 1,5 ----
  (* Auto-generate ARM ldm/stm patterns
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
*************** let _ =
*** 335,341 ****
  "/* ARM ldm/stm instruction patterns.  This file was automatically generated";
  "   using arm-ldmstm.ml.  Please do not edit manually.";
  "";
! "   Copyright (C) 2010-2023 Free Software Foundation, Inc.";
  "   Contributed by CodeSourcery.";
  "";
  "   This file is part of GCC.";
--- 335,341 ----
  "/* ARM ldm/stm instruction patterns.  This file was automatically generated";
  "   using arm-ldmstm.ml.  Please do not edit manually.";
  "";
! "   Copyright (C) 2010-2024 Free Software Foundation, Inc.";
  "   Contributed by CodeSourcery.";
  "";
  "   This file is part of GCC.";
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mlib.h gcc-14.1.0/gcc/config/arm/arm-mlib.h
*** gcc-13.2.0/gcc/config/arm/arm-mlib.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-mlib.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Arm multilib default option include file.
  
!    Copyright (C) 2023 Free Software Foundation, Inc.
     Contributed by Arm.
  
     This file is part of GCC.
--- 1,6 ----
  /* Arm multilib default option include file.
  
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
     Contributed by Arm.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-modes.def gcc-14.1.0/gcc/config/arm/arm-modes.def
*** gcc-13.2.0/gcc/config/arm/arm-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, for ARM.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
     and Martin Simmons (@harleqn.co.uk).
     More major hacks by Richard Earnshaw (rearnsha@arm.com)
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, for ARM.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
     and Martin Simmons (@harleqn.co.uk).
     More major hacks by Richard Earnshaw (rearnsha@arm.com)
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins-base.cc gcc-14.1.0/gcc/config/arm/arm-mve-builtins-base.cc
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins-base.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins-base.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,469 ----
+ /* ACLE support for Arm MVE (__ARM_FEATURE_MVE intrinsics)
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "tree.h"
+ #include "rtl.h"
+ #include "memmodel.h"
+ #include "insn-codes.h"
+ #include "optabs.h"
+ #include "expr.h"
+ #include "basic-block.h"
+ #include "function.h"
+ #include "gimple.h"
+ #include "arm-mve-builtins.h"
+ #include "arm-mve-builtins-shapes.h"
+ #include "arm-mve-builtins-base.h"
+ #include "arm-mve-builtins-functions.h"
+ 
+ using namespace arm_mve;
+ 
+ namespace {
+ 
+ /* Implements vreinterpretq_* intrinsics.  */
+ class vreinterpretq_impl : public quiet<function_base>
+ {
+   gimple *
+   fold (gimple_folder &f) const override
+   {
+     /* We should punt to rtl if the effect of the reinterpret on
+        registers does not conform to GCC's endianness model like we do
+        on aarch64, but MVE intrinsics are not currently supported on
+        big-endian.  For this, we'd need to handle big-endian properly
+        in the .md file, like we do on aarch64 with
+        define_insn_and_split "*aarch64_sve_reinterpret<mode>".  */
+     gcc_assert (targetm.can_change_mode_class (f.vector_mode (0),
+ 					       f.vector_mode (1),
+ 					       VFP_REGS));
+ 
+     /* Otherwise vreinterpret corresponds directly to a VIEW_CONVERT_EXPR
+        reinterpretation.  */
+     tree rhs = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (f.lhs),
+ 		       gimple_call_arg (f.call, 0));
+     return gimple_build_assign (f.lhs, VIEW_CONVERT_EXPR, rhs);
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     machine_mode mode = e.vector_mode (0);
+     return e.use_exact_insn (code_for_arm_mve_reinterpret (mode));
+   }
+ };
+ 
+ /* Implements vuninitializedq_* intrinsics.  */
+ class vuninitializedq_impl : public quiet<function_base>
+ {
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     rtx target = e.get_reg_target ();
+     emit_clobber (copy_rtx (target));
+     return target;
+   }
+ };
+ 
+ class vld1_impl : public full_width_access
+ {
+ public:
+   unsigned int
+   call_properties (const function_instance &) const override
+   {
+     return CP_READ_MEMORY;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code icode;
+     if (e.type_suffix (0).float_p)
+       icode = code_for_mve_vld1q_f(e.vector_mode (0));
+     else
+       {
+ 	if (e.type_suffix (0).unsigned_p)
+ 	  icode = code_for_mve_vld1q(VLD1Q_U,
+ 				     e.vector_mode (0));
+ 	else
+ 	  icode = code_for_mve_vld1q(VLD1Q_S,
+ 				     e.vector_mode (0));
+       }
+     return e.use_contiguous_load_insn (icode);
+   }
+ };
+ 
+ class vst1_impl : public full_width_access
+ {
+ public:
+   unsigned int
+   call_properties (const function_instance &) const override
+   {
+     return CP_WRITE_MEMORY;
+   }
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code icode;
+     if (e.type_suffix (0).float_p)
+       icode = code_for_mve_vst1q_f(e.vector_mode (0));
+     else
+       {
+ 	if (e.type_suffix (0).unsigned_p)
+ 	  icode = code_for_mve_vst1q(VST1Q_U,
+ 				     e.vector_mode (0));
+ 	else
+ 	  icode = code_for_mve_vst1q(VST1Q_S,
+ 				     e.vector_mode (0));
+       }
+     return e.use_contiguous_store_insn (icode);
+   }
+ };
+ 
+ } /* end anonymous namespace */
+ 
+ namespace arm_mve {
+ 
+   /* Helper for builtins with RTX codes, _m predicated and _n overrides.  */
+ #define FUNCTION_WITH_RTX_M_N(NAME, RTX, UNSPEC) FUNCTION		\
+   (NAME, unspec_based_mve_function_exact_insn,				\
+    (RTX, RTX, RTX,							\
+     UNSPEC##_N_S, UNSPEC##_N_U, UNSPEC##_N_F,				\
+     UNSPEC##_M_S, UNSPEC##_M_U, UNSPEC##_M_F,				\
+     UNSPEC##_M_N_S, UNSPEC##_M_N_U, UNSPEC##_M_N_F))
+ 
+   /* Helper for builtins with RTX codes, and _m predicated overrides.  */
+ #define FUNCTION_WITH_RTX_M(NAME, RTX, UNSPEC) FUNCTION			\
+   (NAME, unspec_based_mve_function_exact_insn,				\
+    (RTX, RTX, RTX,							\
+     -1, -1, -1,								\
+     UNSPEC##_M_S, UNSPEC##_M_U, UNSPEC##_M_F,				\
+     -1, -1, -1))
+ 
+   /* Helper for builtins with RTX codes, _m predicated and _n
+      overrides, but no floating-point version.  */
+ #define FUNCTION_WITH_RTX_M_N_NO_F(NAME, RTX, UNSPEC) FUNCTION		\
+   (NAME, unspec_based_mve_function_exact_insn,				\
+    (RTX, RTX, UNKNOWN,							\
+     UNSPEC##_N_S, UNSPEC##_N_U, -1,					\
+     UNSPEC##_M_S, UNSPEC##_M_U, -1,					\
+     UNSPEC##_M_N_S, UNSPEC##_M_N_U, -1))
+ 
+   /* Helper for builtins with RTX codes, _m predicated and _n overrides.  */
+ #define FUNCTION_WITH_RTX_M_N_NO_N_F(NAME, RTX, UNSPEC) FUNCTION	\
+   (NAME, unspec_based_mve_function_exact_insn,				\
+    (RTX, RTX, RTX,							\
+     UNSPEC##_N_S, UNSPEC##_N_U, -1,					\
+     UNSPEC##_M_S, UNSPEC##_M_U, UNSPEC##_M_F,				\
+     UNSPEC##_M_N_S, UNSPEC##_M_N_U, -1))
+ 
+   /* Helper for builtins with RTX codes, _m predicated override, but
+      no floating-point versions.  */
+ #define FUNCTION_WITH_RTX_M_NO_F(NAME, RTX_S, RTX_U, UNSPEC) FUNCTION	\
+   (NAME, unspec_based_mve_function_exact_insn,				\
+    (RTX_S, RTX_U, UNKNOWN,						\
+     -1, -1, -1,								\
+     UNSPEC##_M_S, UNSPEC##_M_U, -1,					\
+     -1, -1, -1))
+ 
+   /* Helper for builtins without RTX codes, no _m predicated and no _n
+      overrides.  */
+ #define FUNCTION_WITHOUT_M_N(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (UNSPEC##_S, UNSPEC##_U, UNSPEC##_F,					\
+     -1, -1, -1,								\
+     -1, -1, -1,								\
+     -1, -1, -1))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated and _n
+      overrides, but no floating-point version.  */
+ #define FUNCTION_WITH_M_N_NO_F(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (UNSPEC##_S, UNSPEC##_U, -1,						\
+     UNSPEC##_N_S, UNSPEC##_N_U, -1,					\
+     UNSPEC##_M_S, UNSPEC##_M_U, -1,					\
+     UNSPEC##_M_N_S, UNSPEC##_M_N_U, -1))
+ 
+   /* Helper for vshl builtins with only unspec codes, _m predicated
+      and _n and _r overrides.  */
+ #define FUNCTION_WITH_M_N_R(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn_vshl,				\
+    (UNSPEC##_S, UNSPEC##_U,						\
+     UNSPEC##_N_S, UNSPEC##_N_U,						\
+     UNSPEC##_M_S, UNSPEC##_M_U,						\
+     UNSPEC##_M_N_S, UNSPEC##_M_N_U,					\
+     UNSPEC##_M_R_S, UNSPEC##_M_R_U,					\
+     UNSPEC##_R_S, UNSPEC##_R_U))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated
+      overrides, no _n and no floating-point version.  */
+ #define FUNCTION_WITHOUT_N_NO_F(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (UNSPEC##_S, UNSPEC##_U, -1,						\
+     -1, -1, -1,								\
+     UNSPEC##_M_S, UNSPEC##_M_U, -1,					\
+     -1, -1, -1))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated and _n
+      overrides, but no unsigned and floating-point versions.  */
+ #define FUNCTION_WITH_M_N_NO_U_F(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (UNSPEC##_S, -1, -1,							\
+     UNSPEC##_N_S, -1, -1,						\
+     UNSPEC##_M_S, -1, -1,						\
+     UNSPEC##_M_N_S, -1, -1))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated
+      overrides, but no _n version.  */
+ #define FUNCTION_WITHOUT_N(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (UNSPEC##_S, UNSPEC##_U, UNSPEC##_F,					\
+     -1, -1, -1,								\
+     UNSPEC##_M_S, UNSPEC##_M_U, UNSPEC##_M_F,				\
+     -1, -1, -1))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated
+      overrides, only _n version.  */
+ #define FUNCTION_ONLY_N(NAME, UNSPEC) FUNCTION				\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (-1, -1, -1,								\
+     UNSPEC##_N_S, UNSPEC##_N_U, UNSPEC##_N_F,				\
+     -1, -1, -1,								\
+     UNSPEC##_M_N_S, UNSPEC##_M_N_U, UNSPEC##_M_N_F))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated
+      overrides, only _n version, no floating-point.  */
+ #define FUNCTION_ONLY_N_NO_F(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (-1, -1, -1,								\
+     UNSPEC##_N_S, UNSPEC##_N_U, -1,					\
+     -1, -1, -1,								\
+     UNSPEC##_M_N_S, UNSPEC##_M_N_U, -1))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated
+      overrides, only _n version, no unsigned, no floating-point.  */
+ #define FUNCTION_ONLY_N_NO_U_F(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (-1, -1, -1,								\
+     UNSPEC##_N_S, -1, -1,						\
+     -1, -1, -1,								\
+     UNSPEC##_M_N_S, -1, -1))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated
+      overrides, but no _n version, no unsigned and no
+      floating-point.  */
+ #define FUNCTION_WITHOUT_N_NO_U_F(NAME, UNSPEC) FUNCTION		\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (UNSPEC##_S, -1, -1,							\
+     -1, -1, -1,								\
+     UNSPEC##_M_S, -1, -1,						\
+     -1, -1, -1))
+ 
+   /* Helper for builtins with only unspec codes, _m predicated
+      overrides, only floating-point.  */
+ #define FUNCTION_ONLY_F(NAME, UNSPEC) FUNCTION				\
+   (NAME, unspec_mve_function_exact_insn,				\
+    (-1, -1, UNSPEC##_F,							\
+     -1, -1, -1,								\
+     -1, -1, UNSPEC##_M_F,						\
+     -1, -1, -1))
+ 
+   /* Helper for builtins without RTX codes, _S mode, _p predicated.  */
+ #define FUNCTION_PRED_P_S(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn_pred_p,				\
+    (UNSPEC##_S, -1, -1,							\
+     UNSPEC##_P_S, -1, -1))
+ 
+   /* Helper for builtins without RTX codes, _S and _U modes, _p
+      predicated.  */
+ #define FUNCTION_PRED_P_S_U(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn_pred_p,				\
+    (UNSPEC##_S, UNSPEC##_U, -1,						\
+     UNSPEC##_P_S, UNSPEC##_P_U, -1))
+ 
+   /* Helper for builtins without RTX codes, _F mode, _p predicated.  */
+ #define FUNCTION_PRED_P_F(NAME, UNSPEC) FUNCTION			\
+   (NAME, unspec_mve_function_exact_insn_pred_p,				\
+    (-1, -1, UNSPEC##_F,							\
+     -1, -1, UNSPEC##_P_F))
+ 
+ FUNCTION_PRED_P_S_U (vabavq, VABAVQ)
+ FUNCTION_WITHOUT_N (vabdq, VABDQ)
+ FUNCTION (vabsq, unspec_based_mve_function_exact_insn, (ABS, ABS, ABS, -1, -1, -1, VABSQ_M_S, -1, VABSQ_M_F, -1, -1, -1))
+ FUNCTION_WITH_RTX_M_N (vaddq, PLUS, VADDQ)
+ FUNCTION_PRED_P_S_U (vaddlvaq, VADDLVAQ)
+ FUNCTION_PRED_P_S_U (vaddlvq, VADDLVQ)
+ FUNCTION_PRED_P_S_U (vaddvq, VADDVQ)
+ FUNCTION_PRED_P_S_U (vaddvaq, VADDVAQ)
+ FUNCTION_WITH_RTX_M (vandq, AND, VANDQ)
+ FUNCTION_ONLY_N (vbrsrq, VBRSRQ)
+ FUNCTION (vcaddq_rot90, unspec_mve_function_exact_insn_rot, (UNSPEC_VCADD90, UNSPEC_VCADD90, UNSPEC_VCADD90, VCADDQ_ROT90_M, VCADDQ_ROT90_M, VCADDQ_ROT90_M_F))
+ FUNCTION (vcaddq_rot270, unspec_mve_function_exact_insn_rot, (UNSPEC_VCADD270, UNSPEC_VCADD270, UNSPEC_VCADD270, VCADDQ_ROT270_M, VCADDQ_ROT270_M, VCADDQ_ROT270_M_F))
+ FUNCTION (vcmlaq, unspec_mve_function_exact_insn_rot, (-1, -1, UNSPEC_VCMLA, -1, -1, VCMLAQ_M_F))
+ FUNCTION (vcmlaq_rot90, unspec_mve_function_exact_insn_rot, (-1, -1, UNSPEC_VCMLA90, -1, -1, VCMLAQ_ROT90_M_F))
+ FUNCTION (vcmlaq_rot180, unspec_mve_function_exact_insn_rot, (-1, -1, UNSPEC_VCMLA180, -1, -1, VCMLAQ_ROT180_M_F))
+ FUNCTION (vcmlaq_rot270, unspec_mve_function_exact_insn_rot, (-1, -1, UNSPEC_VCMLA270, -1, -1, VCMLAQ_ROT270_M_F))
+ FUNCTION (vcmulq, unspec_mve_function_exact_insn_rot, (-1, -1, UNSPEC_VCMUL, -1, -1, VCMULQ_M_F))
+ FUNCTION (vcmulq_rot90, unspec_mve_function_exact_insn_rot, (-1, -1, UNSPEC_VCMUL90, -1, -1, VCMULQ_ROT90_M_F))
+ FUNCTION (vcmulq_rot180, unspec_mve_function_exact_insn_rot, (-1, -1, UNSPEC_VCMUL180, -1, -1, VCMULQ_ROT180_M_F))
+ FUNCTION (vcmulq_rot270, unspec_mve_function_exact_insn_rot, (-1, -1, UNSPEC_VCMUL270, -1, -1, VCMULQ_ROT270_M_F))
+ FUNCTION (vhcaddq_rot90, unspec_mve_function_exact_insn_rot, (VHCADDQ_ROT90_S, -1, -1, VHCADDQ_ROT90_M_S, -1, -1))
+ FUNCTION (vhcaddq_rot270, unspec_mve_function_exact_insn_rot, (VHCADDQ_ROT270_S, -1, -1, VHCADDQ_ROT270_M_S, -1, -1))
+ FUNCTION_WITHOUT_N_NO_U_F (vclsq, VCLSQ)
+ FUNCTION (vclzq, unspec_based_mve_function_exact_insn, (CLZ, CLZ, CLZ, -1, -1, -1, VCLZQ_M_S, VCLZQ_M_U, -1, -1, -1 ,-1))
+ FUNCTION (vcmpeqq, unspec_based_mve_function_exact_insn_vcmp, (EQ, EQ, EQ, VCMPEQQ_M_S, VCMPEQQ_M_U, VCMPEQQ_M_F, VCMPEQQ_M_N_S, VCMPEQQ_M_N_U, VCMPEQQ_M_N_F))
+ FUNCTION (vcmpneq, unspec_based_mve_function_exact_insn_vcmp, (NE, NE, NE, VCMPNEQ_M_S, VCMPNEQ_M_U, VCMPNEQ_M_F, VCMPNEQ_M_N_S, VCMPNEQ_M_N_U, VCMPNEQ_M_N_F))
+ FUNCTION (vcmpgeq, unspec_based_mve_function_exact_insn_vcmp, (GE, UNKNOWN, GE, VCMPGEQ_M_S, UNKNOWN, VCMPGEQ_M_F, VCMPGEQ_M_N_S, UNKNOWN, VCMPGEQ_M_N_F))
+ FUNCTION (vcmpgtq, unspec_based_mve_function_exact_insn_vcmp, (GT, UNKNOWN, GT, VCMPGTQ_M_S, UNKNOWN, VCMPGTQ_M_F, VCMPGTQ_M_N_S, UNKNOWN, VCMPGTQ_M_N_F))
+ FUNCTION (vcmpleq, unspec_based_mve_function_exact_insn_vcmp, (LE, UNKNOWN, LE, VCMPLEQ_M_S, UNKNOWN, VCMPLEQ_M_F, VCMPLEQ_M_N_S, UNKNOWN, VCMPLEQ_M_N_F))
+ FUNCTION (vcmpltq, unspec_based_mve_function_exact_insn_vcmp, (LT, UNKNOWN, LT, VCMPLTQ_M_S, UNKNOWN, VCMPLTQ_M_F, VCMPLTQ_M_N_S, UNKNOWN, VCMPLTQ_M_N_F))
+ FUNCTION (vcmpcsq, unspec_based_mve_function_exact_insn_vcmp, (UNKNOWN, GEU, UNKNOWN, UNKNOWN, VCMPCSQ_M_U, UNKNOWN, UNKNOWN, VCMPCSQ_M_N_U, UNKNOWN))
+ FUNCTION (vcmphiq, unspec_based_mve_function_exact_insn_vcmp, (UNKNOWN, GTU, UNKNOWN, UNKNOWN, VCMPHIQ_M_U, UNKNOWN, UNKNOWN, VCMPHIQ_M_N_U, UNKNOWN))
+ FUNCTION_WITHOUT_M_N (vcreateq, VCREATEQ)
+ FUNCTION_ONLY_N (vdupq, VDUPQ)
+ FUNCTION_WITH_RTX_M (veorq, XOR, VEORQ)
+ FUNCTION (vfmaq, unspec_mve_function_exact_insn, (-1, -1, VFMAQ_F, -1, -1, VFMAQ_N_F, -1, -1, VFMAQ_M_F, -1, -1, VFMAQ_M_N_F))
+ FUNCTION (vfmasq, unspec_mve_function_exact_insn, (-1, -1, -1, -1, -1, VFMASQ_N_F, -1, -1, -1, -1, -1, VFMASQ_M_N_F))
+ FUNCTION (vfmsq, unspec_mve_function_exact_insn, (-1, -1, VFMSQ_F, -1, -1, -1, -1, -1, VFMSQ_M_F, -1, -1, -1))
+ FUNCTION_WITH_M_N_NO_F (vhaddq, VHADDQ)
+ FUNCTION_WITH_M_N_NO_F (vhsubq, VHSUBQ)
+ FUNCTION (vld1q, vld1_impl,)
+ FUNCTION_PRED_P_S (vmaxavq, VMAXAVQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vmaxaq, VMAXAQ)
+ FUNCTION_ONLY_F (vmaxnmaq, VMAXNMAQ)
+ FUNCTION_PRED_P_F (vmaxnmavq, VMAXNMAVQ)
+ FUNCTION (vmaxnmq, unspec_based_mve_function_exact_insn, (UNKNOWN, UNKNOWN, SMAX, -1, -1, -1, -1, -1, VMAXNMQ_M_F, -1, -1, -1))
+ FUNCTION_PRED_P_F (vmaxnmvq, VMAXNMVQ)
+ FUNCTION_WITH_RTX_M_NO_F (vmaxq, SMAX, UMAX, VMAXQ)
+ FUNCTION_PRED_P_S_U (vmaxvq, VMAXVQ)
+ FUNCTION_PRED_P_S (vminavq, VMINAVQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vminaq, VMINAQ)
+ FUNCTION_ONLY_F (vminnmaq, VMINNMAQ)
+ FUNCTION_PRED_P_F (vminnmavq, VMINNMAVQ)
+ FUNCTION (vminnmq, unspec_based_mve_function_exact_insn, (UNKNOWN, UNKNOWN, SMIN, -1, -1, -1, -1, -1, VMINNMQ_M_F, -1, -1, -1))
+ FUNCTION_PRED_P_F (vminnmvq, VMINNMVQ)
+ FUNCTION_WITH_RTX_M_NO_F (vminq, SMIN, UMIN, VMINQ)
+ FUNCTION_PRED_P_S_U (vminvq, VMINVQ)
+ FUNCTION_PRED_P_S (vmladavaxq, VMLADAVAXQ)
+ FUNCTION_PRED_P_S_U (vmladavaq, VMLADAVAQ)
+ FUNCTION_PRED_P_S_U (vmladavq, VMLADAVQ)
+ FUNCTION_PRED_P_S (vmladavxq, VMLADAVXQ)
+ FUNCTION_PRED_P_S_U (vmlaldavaq, VMLALDAVAQ)
+ FUNCTION_PRED_P_S (vmlaldavaxq, VMLALDAVAXQ)
+ FUNCTION_PRED_P_S_U (vmlaldavq, VMLALDAVQ)
+ FUNCTION_PRED_P_S (vmlaldavxq, VMLALDAVXQ)
+ FUNCTION_ONLY_N_NO_F (vmlaq, VMLAQ)
+ FUNCTION_ONLY_N_NO_F (vmlasq, VMLASQ)
+ FUNCTION_PRED_P_S (vmlsdavaq, VMLSDAVAQ)
+ FUNCTION_PRED_P_S (vmlsdavaxq, VMLSDAVAXQ)
+ FUNCTION_PRED_P_S (vmlsdavq, VMLSDAVQ)
+ FUNCTION_PRED_P_S (vmlsdavxq, VMLSDAVXQ)
+ FUNCTION_PRED_P_S (vmlsldavaq, VMLSLDAVAQ)
+ FUNCTION_PRED_P_S (vmlsldavaxq, VMLSLDAVAXQ)
+ FUNCTION_PRED_P_S (vmlsldavq, VMLSLDAVQ)
+ FUNCTION_PRED_P_S (vmlsldavxq, VMLSLDAVXQ)
+ FUNCTION_WITHOUT_N_NO_F (vmovlbq, VMOVLBQ)
+ FUNCTION_WITHOUT_N_NO_F (vmovltq, VMOVLTQ)
+ FUNCTION_WITHOUT_N_NO_F (vmovnbq, VMOVNBQ)
+ FUNCTION_WITHOUT_N_NO_F (vmovntq, VMOVNTQ)
+ FUNCTION_WITHOUT_N_NO_F (vmulhq, VMULHQ)
+ FUNCTION (vmullbq_int, unspec_mve_function_exact_insn_vmull, (VMULLBQ_INT_S, VMULLBQ_INT_U, VMULLBQ_INT_M_S, VMULLBQ_INT_M_U))
+ FUNCTION (vmulltq_int, unspec_mve_function_exact_insn_vmull, (VMULLTQ_INT_S, VMULLTQ_INT_U, VMULLTQ_INT_M_S, VMULLTQ_INT_M_U))
+ FUNCTION (vmullbq_poly, unspec_mve_function_exact_insn_vmull_poly, (VMULLBQ_POLY_P, VMULLBQ_POLY_M_P))
+ FUNCTION (vmulltq_poly, unspec_mve_function_exact_insn_vmull_poly, (VMULLTQ_POLY_P, VMULLTQ_POLY_M_P))
+ FUNCTION_WITH_RTX_M_N (vmulq, MULT, VMULQ)
+ FUNCTION_WITH_RTX_M_N_NO_F (vmvnq, NOT, VMVNQ)
+ FUNCTION (vnegq, unspec_based_mve_function_exact_insn, (NEG, NEG, NEG, -1, -1, -1, VNEGQ_M_S, -1, VNEGQ_M_F, -1, -1, -1))
+ FUNCTION_WITHOUT_M_N (vpselq, VPSELQ)
+ FUNCTION_WITH_RTX_M_N_NO_N_F (vorrq, IOR, VORRQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqabsq, VQABSQ)
+ FUNCTION_WITH_M_N_NO_F (vqaddq, VQADDQ)
+ FUNCTION_WITHOUT_N_NO_F (vqmovnbq, VQMOVNBQ)
+ FUNCTION_WITHOUT_N_NO_F (vqmovntq, VQMOVNTQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqmovunbq, VQMOVUNBQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqmovuntq, VQMOVUNTQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqdmladhq, VQDMLADHQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqdmladhxq, VQDMLADHXQ)
+ FUNCTION_ONLY_N_NO_U_F (vqdmlahq, VQDMLAHQ)
+ FUNCTION_ONLY_N_NO_U_F (vqdmlashq, VQDMLASHQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqdmlsdhq, VQDMLSDHQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqdmlsdhxq, VQDMLSDHXQ)
+ FUNCTION_WITH_M_N_NO_U_F (vqdmulhq, VQDMULHQ)
+ FUNCTION_WITH_M_N_NO_U_F (vqdmullbq, VQDMULLBQ)
+ FUNCTION_WITH_M_N_NO_U_F (vqdmulltq, VQDMULLTQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqrdmladhq, VQRDMLADHQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqrdmladhxq, VQRDMLADHXQ)
+ FUNCTION_ONLY_N_NO_U_F (vqrdmlahq, VQRDMLAHQ)
+ FUNCTION_ONLY_N_NO_U_F (vqrdmlashq, VQRDMLASHQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqrdmlsdhq, VQRDMLSDHQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqrdmlsdhxq, VQRDMLSDHXQ)
+ FUNCTION_WITHOUT_N_NO_U_F (vqnegq, VQNEGQ)
+ FUNCTION_WITH_M_N_NO_F (vqrshlq, VQRSHLQ)
+ FUNCTION_WITH_M_N_NO_U_F (vqrdmulhq, VQRDMULHQ)
+ FUNCTION_WITH_M_N_R (vqshlq, VQSHLQ)
+ FUNCTION_ONLY_N_NO_U_F (vqshluq, VQSHLUQ)
+ FUNCTION_ONLY_N_NO_F (vqrshrnbq, VQRSHRNBQ)
+ FUNCTION_ONLY_N_NO_F (vqrshrntq, VQRSHRNTQ)
+ FUNCTION_ONLY_N_NO_U_F (vqrshrunbq, VQRSHRUNBQ)
+ FUNCTION_ONLY_N_NO_U_F (vqrshruntq, VQRSHRUNTQ)
+ FUNCTION_ONLY_N_NO_F (vqshrnbq, VQSHRNBQ)
+ FUNCTION_ONLY_N_NO_F (vqshrntq, VQSHRNTQ)
+ FUNCTION_ONLY_N_NO_U_F (vqshrunbq, VQSHRUNBQ)
+ FUNCTION_ONLY_N_NO_U_F (vqshruntq, VQSHRUNTQ)
+ FUNCTION_WITH_M_N_NO_F (vqsubq, VQSUBQ)
+ FUNCTION (vreinterpretq, vreinterpretq_impl,)
+ FUNCTION_WITHOUT_N_NO_F (vrev16q, VREV16Q)
+ FUNCTION_WITHOUT_N (vrev32q, VREV32Q)
+ FUNCTION_WITHOUT_N (vrev64q, VREV64Q)
+ FUNCTION_WITHOUT_N_NO_F (vrhaddq, VRHADDQ)
+ FUNCTION_PRED_P_S_U (vrmlaldavhaq, VRMLALDAVHAQ)
+ FUNCTION_PRED_P_S (vrmlaldavhaxq, VRMLALDAVHAXQ)
+ FUNCTION_PRED_P_S_U (vrmlaldavhq, VRMLALDAVHQ)
+ FUNCTION_PRED_P_S (vrmlaldavhxq, VRMLALDAVHXQ)
+ FUNCTION_PRED_P_S (vrmlsldavhaq, VRMLSLDAVHAQ)
+ FUNCTION_PRED_P_S (vrmlsldavhaxq, VRMLSLDAVHAXQ)
+ FUNCTION_PRED_P_S (vrmlsldavhq, VRMLSLDAVHQ)
+ FUNCTION_PRED_P_S (vrmlsldavhxq, VRMLSLDAVHXQ)
+ FUNCTION_WITHOUT_N_NO_F (vrmulhq, VRMULHQ)
+ FUNCTION_ONLY_F (vrndq, VRNDQ)
+ FUNCTION_ONLY_F (vrndaq, VRNDAQ)
+ FUNCTION_ONLY_F (vrndmq, VRNDMQ)
+ FUNCTION_ONLY_F (vrndnq, VRNDNQ)
+ FUNCTION_ONLY_F (vrndpq, VRNDPQ)
+ FUNCTION_ONLY_F (vrndxq, VRNDXQ)
+ FUNCTION_WITH_M_N_NO_F (vrshlq, VRSHLQ)
+ FUNCTION_ONLY_N_NO_F (vrshrnbq, VRSHRNBQ)
+ FUNCTION_ONLY_N_NO_F (vrshrntq, VRSHRNTQ)
+ FUNCTION_ONLY_N_NO_F (vrshrq, VRSHRQ)
+ FUNCTION_ONLY_N_NO_F (vshllbq, VSHLLBQ)
+ FUNCTION_ONLY_N_NO_F (vshlltq, VSHLLTQ)
+ FUNCTION_WITH_M_N_R (vshlq, VSHLQ)
+ FUNCTION_ONLY_N_NO_F (vshrnbq, VSHRNBQ)
+ FUNCTION_ONLY_N_NO_F (vshrntq, VSHRNTQ)
+ FUNCTION_ONLY_N_NO_F (vshrq, VSHRQ)
+ FUNCTION_ONLY_N_NO_F (vsliq, VSLIQ)
+ FUNCTION_ONLY_N_NO_F (vsriq, VSRIQ)
+ FUNCTION (vst1q, vst1_impl,)
+ FUNCTION_WITH_RTX_M_N (vsubq, MINUS, VSUBQ)
+ FUNCTION (vuninitializedq, vuninitializedq_impl,)
+ 
+ } /* end namespace arm_mve */
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins-base.def gcc-14.1.0/gcc/config/arm/arm-mve-builtins-base.def
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins-base.def	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins-base.def	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,212 ----
+ /* ACLE support for Arm MVE (__ARM_FEATURE_MVE intrinsics)
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #define REQUIRES_FLOAT false
+ DEF_MVE_FUNCTION (vabavq, binary_acca_int32, all_integer, p_or_none)
+ DEF_MVE_FUNCTION (vabdq, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vabsq, unary, all_signed, mx_or_none)
+ DEF_MVE_FUNCTION (vaddlvaq, unary_widen_acc, integer_32, p_or_none)
+ DEF_MVE_FUNCTION (vaddlvq, unary_acc, integer_32, p_or_none)
+ DEF_MVE_FUNCTION (vaddq, binary_opt_n, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vaddvaq, unary_int32_acc, all_integer, p_or_none)
+ DEF_MVE_FUNCTION (vaddvq, unary_int32, all_integer, p_or_none)
+ DEF_MVE_FUNCTION (vandq, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vbrsrq, binary_imm32, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vcaddq_rot270, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vclsq, unary, all_signed, mx_or_none)
+ DEF_MVE_FUNCTION (vclzq, unary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vcmpcsq, cmp, all_unsigned, m_or_none)
+ DEF_MVE_FUNCTION (vcmpeqq, cmp, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vcmpgeq, cmp, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vcmpgtq, cmp, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vcmphiq, cmp, all_unsigned, m_or_none)
+ DEF_MVE_FUNCTION (vcmpleq, cmp, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vcmpltq, cmp, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vcmpneq, cmp, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vcreateq, create, all_integer_with_64, none)
+ DEF_MVE_FUNCTION (vdupq, unary_n, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (veorq, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vhaddq, binary_opt_n, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vhcaddq_rot90, binary, all_signed, mx_or_none)
+ DEF_MVE_FUNCTION (vhcaddq_rot270, binary, all_signed, mx_or_none)
+ DEF_MVE_FUNCTION (vhsubq, binary_opt_n, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vld1q, load, all_integer, none)
+ DEF_MVE_FUNCTION (vmaxaq, binary_maxamina, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vmaxavq, binary_maxavminav, all_signed, p_or_none)
+ DEF_MVE_FUNCTION (vmaxq, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vmaxvq, binary_maxvminv, all_integer, p_or_none)
+ DEF_MVE_FUNCTION (vminaq, binary_maxamina, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vminavq, binary_maxavminav, all_signed, p_or_none)
+ DEF_MVE_FUNCTION (vminq, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vminvq, binary_maxvminv, all_integer, p_or_none)
+ DEF_MVE_FUNCTION (vmladavaq, binary_acca_int32, all_integer, p_or_none)
+ DEF_MVE_FUNCTION (vmladavaxq, binary_acca_int32, all_signed, p_or_none)
+ DEF_MVE_FUNCTION (vmladavq, binary_acc_int32, all_integer, p_or_none)
+ DEF_MVE_FUNCTION (vmladavxq, binary_acc_int32, all_signed, p_or_none)
+ DEF_MVE_FUNCTION (vmlaldavaq, binary_acca_int64, integer_16_32, p_or_none)
+ DEF_MVE_FUNCTION (vmlaldavaxq, binary_acca_int64, signed_16_32, p_or_none)
+ DEF_MVE_FUNCTION (vmlaldavq, binary_acc_int64, integer_16_32, p_or_none)
+ DEF_MVE_FUNCTION (vmlaldavxq, binary_acc_int64, signed_16_32, p_or_none)
+ DEF_MVE_FUNCTION (vmlaq, ternary_n, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vmlasq, ternary_n, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vmlsdavaq, binary_acca_int32, all_signed, p_or_none)
+ DEF_MVE_FUNCTION (vmlsdavaxq, binary_acca_int32, all_signed, p_or_none)
+ DEF_MVE_FUNCTION (vmlsdavq, binary_acc_int32, all_integer, p_or_none)
+ DEF_MVE_FUNCTION (vmlsdavxq, binary_acc_int32, all_signed, p_or_none)
+ DEF_MVE_FUNCTION (vmlsldavaq, binary_acca_int64, signed_16_32, p_or_none)
+ DEF_MVE_FUNCTION (vmlsldavaxq, binary_acca_int64, signed_16_32, p_or_none)
+ DEF_MVE_FUNCTION (vmlsldavq, binary_acc_int64, signed_16_32, p_or_none)
+ DEF_MVE_FUNCTION (vmlsldavxq, binary_acc_int64, signed_16_32, p_or_none)
+ DEF_MVE_FUNCTION (vmovlbq, unary_widen, integer_8_16, mx_or_none)
+ DEF_MVE_FUNCTION (vmovltq, unary_widen, integer_8_16, mx_or_none)
+ DEF_MVE_FUNCTION (vmovnbq, binary_move_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vmovntq, binary_move_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vmulhq, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vmullbq_int, binary_widen, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vmulltq_int, binary_widen, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vmullbq_poly, binary_widen_poly, poly_8_16, mx_or_none)
+ DEF_MVE_FUNCTION (vmulltq_poly, binary_widen_poly, poly_8_16, mx_or_none)
+ DEF_MVE_FUNCTION (vmulq, binary_opt_n, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vmvnq, mvn, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vnegq, unary, all_signed, mx_or_none)
+ DEF_MVE_FUNCTION (vorrq, binary_orrq, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vpselq, vpsel, all_integer_with_64, none)
+ DEF_MVE_FUNCTION (vqabsq, unary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqaddq, binary_opt_n, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vqdmladhq, ternary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqdmladhxq, ternary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqdmlahq, ternary_n, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqdmlashq, ternary_n, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqdmlsdhq, ternary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqdmlsdhxq, ternary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqdmulhq, binary_opt_n, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqdmullbq, binary_widen_opt_n, signed_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqdmulltq, binary_widen_opt_n, signed_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqmovnbq, binary_move_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqmovntq, binary_move_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqmovunbq, binary_move_narrow_unsigned, signed_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqmovuntq, binary_move_narrow_unsigned, signed_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqnegq, unary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqrdmladhq, ternary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqrdmladhxq, ternary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqrdmlahq, ternary_n, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqrdmlashq, ternary_n, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqrdmlsdhq, ternary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqrdmlsdhxq, ternary, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqrdmulhq, binary_opt_n, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqrshlq, binary_round_lshift, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vqrshrnbq, binary_rshift_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqrshrntq, binary_rshift_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqrshrunbq, binary_rshift_narrow_unsigned, signed_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqrshruntq, binary_rshift_narrow_unsigned, signed_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqshlq, binary_lshift, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vqshlq, binary_lshift_r, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vqshluq, binary_lshift_unsigned, all_signed, m_or_none)
+ DEF_MVE_FUNCTION (vqshrnbq, binary_rshift_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqshrntq, binary_rshift_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqshrunbq, binary_rshift_narrow_unsigned, signed_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqshruntq, binary_rshift_narrow_unsigned, signed_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vqsubq, binary_opt_n, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vreinterpretq, unary_convert, reinterpret_integer, none)
+ DEF_MVE_FUNCTION (vrev16q, unary, integer_8, mx_or_none)
+ DEF_MVE_FUNCTION (vrev32q, unary, integer_8_16, mx_or_none)
+ DEF_MVE_FUNCTION (vrev64q, unary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vrhaddq, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vrmlaldavhaq, binary_acca_int64, integer_32, p_or_none)
+ DEF_MVE_FUNCTION (vrmlaldavhaxq, binary_acca_int64, integer_32, p_or_none)
+ DEF_MVE_FUNCTION (vrmlaldavhq, binary_acc_int64, integer_32, p_or_none)
+ DEF_MVE_FUNCTION (vrmlaldavhxq, binary_acc_int64, signed_32, p_or_none)
+ DEF_MVE_FUNCTION (vrmlsldavhaq, binary_acca_int64, integer_32, p_or_none)
+ DEF_MVE_FUNCTION (vrmlsldavhaxq, binary_acca_int64, integer_32, p_or_none)
+ DEF_MVE_FUNCTION (vrmlsldavhq, binary_acc_int64, signed_32, p_or_none)
+ DEF_MVE_FUNCTION (vrmlsldavhxq, binary_acc_int64, signed_32, p_or_none)
+ DEF_MVE_FUNCTION (vrmulhq, binary, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vrshlq, binary_round_lshift, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vrshrnbq, binary_rshift_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vrshrntq, binary_rshift_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vrshrq, binary_rshift, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vshllbq, binary_widen_n, integer_8_16, mx_or_none)
+ DEF_MVE_FUNCTION (vshlltq, binary_widen_n, integer_8_16, mx_or_none)
+ DEF_MVE_FUNCTION (vshlq, binary_lshift, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vshlq, binary_lshift_r, all_integer, m_or_none) // "_r" forms do not support the "x" predicate
+ DEF_MVE_FUNCTION (vshrnbq, binary_rshift_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vshrntq, binary_rshift_narrow, integer_16_32, m_or_none)
+ DEF_MVE_FUNCTION (vshrq, binary_rshift, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vsliq, ternary_lshift, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vsriq, ternary_rshift, all_integer, m_or_none)
+ DEF_MVE_FUNCTION (vst1q, store, all_integer, none)
+ DEF_MVE_FUNCTION (vsubq, binary_opt_n, all_integer, mx_or_none)
+ DEF_MVE_FUNCTION (vuninitializedq, inherent, all_integer_with_64, none)
+ #undef REQUIRES_FLOAT
+ 
+ #define REQUIRES_FLOAT true
+ DEF_MVE_FUNCTION (vabdq, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vabsq, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vaddq, binary_opt_n, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vandq, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vbrsrq, binary_imm32, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vcaddq_rot270, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vcmlaq, ternary, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmlaq_rot90, ternary, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmlaq_rot180, ternary, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmlaq_rot270, ternary, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmulq, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vcmulq_rot90, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vcmulq_rot180, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vcmulq_rot270, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vcmpeqq, cmp, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmpgeq, cmp, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmpgtq, cmp, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmpleq, cmp, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmpltq, cmp, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcmpneq, cmp, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vcreateq, create, all_float, none)
+ DEF_MVE_FUNCTION (vdupq, unary_n, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (veorq, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vfmaq, ternary_opt_n, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vfmasq, ternary_n, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vfmsq, ternary, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vld1q, load, all_float, none)
+ DEF_MVE_FUNCTION (vmaxnmaq, binary, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vmaxnmavq, binary_maxvminv, all_float, p_or_none)
+ DEF_MVE_FUNCTION (vmaxnmq, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vmaxnmvq, binary_maxvminv, all_float, p_or_none)
+ DEF_MVE_FUNCTION (vminnmaq, binary, all_float, m_or_none)
+ DEF_MVE_FUNCTION (vminnmavq, binary_maxvminv, all_float, p_or_none)
+ DEF_MVE_FUNCTION (vminnmq, binary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vminnmvq, binary_maxvminv, all_float, p_or_none)
+ DEF_MVE_FUNCTION (vmulq, binary_opt_n, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vnegq, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vorrq, binary_orrq, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vpselq, vpsel, all_float, none)
+ DEF_MVE_FUNCTION (vreinterpretq, unary_convert, reinterpret_float, none)
+ DEF_MVE_FUNCTION (vrev32q, unary, float16, mx_or_none)
+ DEF_MVE_FUNCTION (vrev64q, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vrndaq, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vrndmq, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vrndnq, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vrndpq, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vrndq, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vrndxq, unary, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vst1q, store, all_float, none)
+ DEF_MVE_FUNCTION (vsubq, binary_opt_n, all_float, mx_or_none)
+ DEF_MVE_FUNCTION (vuninitializedq, inherent, all_float, none)
+ #undef REQUIRES_FLOAT
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins-base.h gcc-14.1.0/gcc/config/arm/arm-mve-builtins-base.h
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins-base.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins-base.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,189 ----
+ /* ACLE support for Arm MVE (__ARM_FEATURE_MVE intrinsics)
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_ARM_MVE_BUILTINS_BASE_H
+ #define GCC_ARM_MVE_BUILTINS_BASE_H
+ 
+ namespace arm_mve {
+ namespace functions {
+ 
+ extern const function_base *const vabavq;
+ extern const function_base *const vabdq;
+ extern const function_base *const vabsq;
+ extern const function_base *const vaddlvaq;
+ extern const function_base *const vaddlvq;
+ extern const function_base *const vaddq;
+ extern const function_base *const vaddvaq;
+ extern const function_base *const vaddvq;
+ extern const function_base *const vandq;
+ extern const function_base *const vbrsrq;
+ extern const function_base *const vcaddq_rot270;
+ extern const function_base *const vcaddq_rot90;
+ extern const function_base *const vclsq;
+ extern const function_base *const vclzq;
+ extern const function_base *const vcmlaq;
+ extern const function_base *const vcmlaq_rot180;
+ extern const function_base *const vcmlaq_rot270;
+ extern const function_base *const vcmlaq_rot90;
+ extern const function_base *const vcmpcsq;
+ extern const function_base *const vcmpeqq;
+ extern const function_base *const vcmpgeq;
+ extern const function_base *const vcmpgtq;
+ extern const function_base *const vcmphiq;
+ extern const function_base *const vcmpleq;
+ extern const function_base *const vcmpltq;
+ extern const function_base *const vcmpneq;
+ extern const function_base *const vcmulq;
+ extern const function_base *const vcmulq_rot180;
+ extern const function_base *const vcmulq_rot270;
+ extern const function_base *const vcmulq_rot90;
+ extern const function_base *const vcreateq;
+ extern const function_base *const vdupq;
+ extern const function_base *const veorq;
+ extern const function_base *const vfmaq;
+ extern const function_base *const vfmasq;
+ extern const function_base *const vfmsq;
+ extern const function_base *const vhaddq;
+ extern const function_base *const vhcaddq_rot270;
+ extern const function_base *const vhcaddq_rot90;
+ extern const function_base *const vhsubq;
+ extern const function_base *const vld1q;
+ extern const function_base *const vmaxaq;
+ extern const function_base *const vmaxavq;
+ extern const function_base *const vmaxnmaq;
+ extern const function_base *const vmaxnmavq;
+ extern const function_base *const vmaxnmq;
+ extern const function_base *const vmaxnmvq;
+ extern const function_base *const vmaxq;
+ extern const function_base *const vmaxvq;
+ extern const function_base *const vminaq;
+ extern const function_base *const vminavq;
+ extern const function_base *const vminnmaq;
+ extern const function_base *const vminnmavq;
+ extern const function_base *const vminnmq;
+ extern const function_base *const vminnmvq;
+ extern const function_base *const vminq;
+ extern const function_base *const vminvq;
+ extern const function_base *const vmladavaq;
+ extern const function_base *const vmladavaxq;
+ extern const function_base *const vmladavq;
+ extern const function_base *const vmladavxq;
+ extern const function_base *const vmlaldavaq;
+ extern const function_base *const vmlaldavaxq;
+ extern const function_base *const vmlaldavq;
+ extern const function_base *const vmlaldavxq;
+ extern const function_base *const vmlaq;
+ extern const function_base *const vmlasq;
+ extern const function_base *const vmlsdavaq;
+ extern const function_base *const vmlsdavaxq;
+ extern const function_base *const vmlsdavq;
+ extern const function_base *const vmlsdavxq;
+ extern const function_base *const vmlsldavaq;
+ extern const function_base *const vmlsldavaxq;
+ extern const function_base *const vmlsldavq;
+ extern const function_base *const vmlsldavxq;
+ extern const function_base *const vmovlbq;
+ extern const function_base *const vmovltq;
+ extern const function_base *const vmovnbq;
+ extern const function_base *const vmovntq;
+ extern const function_base *const vmulhq;
+ extern const function_base *const vmullbq_int;
+ extern const function_base *const vmullbq_poly;
+ extern const function_base *const vmulltq_int;
+ extern const function_base *const vmulltq_poly;
+ extern const function_base *const vmulq;
+ extern const function_base *const vmvnq;
+ extern const function_base *const vnegq;
+ extern const function_base *const vorrq;
+ extern const function_base *const vpselq;
+ extern const function_base *const vqabsq;
+ extern const function_base *const vqaddq;
+ extern const function_base *const vqdmladhq;
+ extern const function_base *const vqdmladhxq;
+ extern const function_base *const vqdmlahq;
+ extern const function_base *const vqdmlashq;
+ extern const function_base *const vqdmlsdhq;
+ extern const function_base *const vqdmlsdhxq;
+ extern const function_base *const vqdmulhq;
+ extern const function_base *const vqdmullbq;
+ extern const function_base *const vqdmulltq;
+ extern const function_base *const vqmovnbq;
+ extern const function_base *const vqmovntq;
+ extern const function_base *const vqmovunbq;
+ extern const function_base *const vqmovuntq;
+ extern const function_base *const vqnegq;
+ extern const function_base *const vqrdmladhq;
+ extern const function_base *const vqrdmladhxq;
+ extern const function_base *const vqrdmlahq;
+ extern const function_base *const vqrdmlashq;
+ extern const function_base *const vqrdmlsdhq;
+ extern const function_base *const vqrdmlsdhxq;
+ extern const function_base *const vqrdmulhq;
+ extern const function_base *const vqrshlq;
+ extern const function_base *const vqrshrnbq;
+ extern const function_base *const vqrshrntq;
+ extern const function_base *const vqrshrunbq;
+ extern const function_base *const vqrshruntq;
+ extern const function_base *const vqshlq;
+ extern const function_base *const vqshluq;
+ extern const function_base *const vqshrnbq;
+ extern const function_base *const vqshrntq;
+ extern const function_base *const vqshrunbq;
+ extern const function_base *const vqshruntq;
+ extern const function_base *const vqsubq;
+ extern const function_base *const vreinterpretq;
+ extern const function_base *const vrev16q;
+ extern const function_base *const vrev32q;
+ extern const function_base *const vrev64q;
+ extern const function_base *const vrhaddq;
+ extern const function_base *const vrmlaldavhaq;
+ extern const function_base *const vrmlaldavhaxq;
+ extern const function_base *const vrmlaldavhq;
+ extern const function_base *const vrmlaldavhxq;
+ extern const function_base *const vrmlsldavhaq;
+ extern const function_base *const vrmlsldavhaxq;
+ extern const function_base *const vrmlsldavhq;
+ extern const function_base *const vrmlsldavhxq;
+ extern const function_base *const vrmulhq;
+ extern const function_base *const vrndaq;
+ extern const function_base *const vrndmq;
+ extern const function_base *const vrndnq;
+ extern const function_base *const vrndpq;
+ extern const function_base *const vrndq;
+ extern const function_base *const vrndxq;
+ extern const function_base *const vrshlq;
+ extern const function_base *const vrshrnbq;
+ extern const function_base *const vrshrntq;
+ extern const function_base *const vrshrq;
+ extern const function_base *const vshllbq;
+ extern const function_base *const vshlltq;
+ extern const function_base *const vshlq;
+ extern const function_base *const vshrnbq;
+ extern const function_base *const vshrntq;
+ extern const function_base *const vshrq;
+ extern const function_base *const vsliq;
+ extern const function_base *const vsriq;
+ extern const function_base *const vst1q;
+ extern const function_base *const vsubq;
+ extern const function_base *const vuninitializedq;
+ 
+ } /* end namespace arm_mve::functions */
+ } /* end namespace arm_mve */
+ 
+ #endif
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins-functions.h gcc-14.1.0/gcc/config/arm/arm-mve-builtins-functions.h
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins-functions.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins-functions.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1035 ----
+ /* ACLE support for Arm MVE (function_base classes)
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_ARM_MVE_BUILTINS_FUNCTIONS_H
+ #define GCC_ARM_MVE_BUILTINS_FUNCTIONS_H
+ 
+ namespace arm_mve {
+ 
+ /* Wrap T, which is derived from function_base, and indicate that the
+    function never has side effects.  It is only necessary to use this
+    wrapper on functions that might have floating-point suffixes, since
+    otherwise we assume by default that the function has no side effects.  */
+ template<typename T>
+ class quiet : public T
+ {
+ public:
+   CONSTEXPR quiet () : T () {}
+ 
+   unsigned int
+   call_properties (const function_instance &) const override
+   {
+     return 0;
+   }
+ };
+ 
+ /* An incomplete function_base for functions that have an associated
+    rtx_code for signed integers, unsigned integers and floating-point
+    values for the non-predicated, non-suffixed intrinsic, and unspec
+    codes, with separate codes for signed integers, unsigned integers
+    and floating-point values.  The class simply records information
+    about the mapping for derived classes to use.  */
+ class unspec_based_mve_function_base : public function_base
+ {
+ public:
+   CONSTEXPR unspec_based_mve_function_base (rtx_code code_for_sint,
+ 					    rtx_code code_for_uint,
+ 					    rtx_code code_for_fp,
+ 					    int unspec_for_n_sint,
+ 					    int unspec_for_n_uint,
+ 					    int unspec_for_n_fp,
+ 					    int unspec_for_m_sint,
+ 					    int unspec_for_m_uint,
+ 					    int unspec_for_m_fp,
+ 					    int unspec_for_m_n_sint,
+ 					    int unspec_for_m_n_uint,
+ 					    int unspec_for_m_n_fp)
+     : m_code_for_sint (code_for_sint),
+       m_code_for_uint (code_for_uint),
+       m_code_for_fp (code_for_fp),
+       m_unspec_for_n_sint (unspec_for_n_sint),
+       m_unspec_for_n_uint (unspec_for_n_uint),
+       m_unspec_for_n_fp (unspec_for_n_fp),
+       m_unspec_for_m_sint (unspec_for_m_sint),
+       m_unspec_for_m_uint (unspec_for_m_uint),
+       m_unspec_for_m_fp (unspec_for_m_fp),
+       m_unspec_for_m_n_sint (unspec_for_m_n_sint),
+       m_unspec_for_m_n_uint (unspec_for_m_n_uint),
+       m_unspec_for_m_n_fp (unspec_for_m_n_fp)
+   {}
+ 
+   /* The rtx code to use for signed, unsigned integers and
+      floating-point values respectively.  */
+   rtx_code m_code_for_sint;
+   rtx_code m_code_for_uint;
+   rtx_code m_code_for_fp;
+ 
+   /* The unspec code associated with signed-integer, unsigned-integer
+      and floating-point operations respectively.  It covers the cases
+      with the _n suffix, and/or the _m predicate.  */
+   int m_unspec_for_n_sint;
+   int m_unspec_for_n_uint;
+   int m_unspec_for_n_fp;
+   int m_unspec_for_m_sint;
+   int m_unspec_for_m_uint;
+   int m_unspec_for_m_fp;
+   int m_unspec_for_m_n_sint;
+   int m_unspec_for_m_n_uint;
+   int m_unspec_for_m_n_fp;
+ };
+ 
+ /* Map the function directly to CODE (UNSPEC, M) where M is the vector
+    mode associated with type suffix 0, except when there is no
+    predicate and no _n suffix, in which case we use the appropriate
+    rtx_code.  This is useful when the basic operation is mapped to a
+    standard RTX code and all other versions use different unspecs.  */
+ class unspec_based_mve_function_exact_insn : public unspec_based_mve_function_base
+ {
+ public:
+   CONSTEXPR unspec_based_mve_function_exact_insn (rtx_code code_for_sint,
+ 						  rtx_code code_for_uint,
+ 						  rtx_code code_for_fp,
+ 						  int unspec_for_n_sint,
+ 						  int unspec_for_n_uint,
+ 						  int unspec_for_n_fp,
+ 						  int unspec_for_m_sint,
+ 						  int unspec_for_m_uint,
+ 						  int unspec_for_m_fp,
+ 						  int unspec_for_m_n_sint,
+ 						  int unspec_for_m_n_uint,
+ 						  int unspec_for_m_n_fp)
+     : unspec_based_mve_function_base (code_for_sint,
+ 				      code_for_uint,
+ 				      code_for_fp,
+ 				      unspec_for_n_sint,
+ 				      unspec_for_n_uint,
+ 				      unspec_for_n_fp,
+ 				      unspec_for_m_sint,
+ 				      unspec_for_m_uint,
+ 				      unspec_for_m_fp,
+ 				      unspec_for_m_n_sint,
+ 				      unspec_for_m_n_uint,
+ 				      unspec_for_m_n_fp)
+   {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     /* No suffix, no predicate, use the right RTX code.  */
+     if ((e.mode_suffix_id != MODE_n)
+ 	&& (e.pred == PRED_none))
+       return e.map_to_rtx_codes (m_code_for_sint, m_code_for_uint,
+ 				 m_code_for_fp);
+ 
+     insn_code code;
+     switch (e.pred)
+       {
+       case PRED_none:
+ 	if (e.mode_suffix_id == MODE_n)
+ 	  /* No predicate, _n suffix.  */
+ 	  {
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_n (m_unspec_for_n_uint, m_unspec_for_n_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_n (m_unspec_for_n_sint, m_unspec_for_n_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_n_f (m_unspec_for_n_fp, e.vector_mode (0));
+ 
+ 	    return e.use_exact_insn (code);
+ 	  }
+ 	gcc_unreachable ();
+ 	break;
+ 
+       case PRED_m:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No suffix, "m" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m (m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m (m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_f (m_unspec_for_m_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    /* _n suffix, "m" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m_n (m_unspec_for_m_n_uint, m_unspec_for_m_n_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m_n (m_unspec_for_m_n_sint, m_unspec_for_m_n_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_n_f (m_unspec_for_m_n_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_cond_insn (code, 0);
+ 
+       case PRED_x:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No suffix, "x" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m (m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m (m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_f (m_unspec_for_m_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    /* _n suffix, "x" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m_n (m_unspec_for_m_n_uint, m_unspec_for_m_n_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m_n (m_unspec_for_m_n_sint, m_unspec_for_m_n_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_n_f (m_unspec_for_m_n_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_pred_x_insn (code);
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+ 
+     gcc_unreachable ();
+   }
+ };
+ 
+ /* Map the function directly to CODE (UNSPEC, M) where M is the vector
+    mode associated with type suffix 0.  */
+ class unspec_mve_function_exact_insn : public function_base
+ {
+ public:
+   CONSTEXPR unspec_mve_function_exact_insn (int unspec_for_sint,
+ 					    int unspec_for_uint,
+ 					    int unspec_for_fp,
+ 					    int unspec_for_n_sint,
+ 					    int unspec_for_n_uint,
+ 					    int unspec_for_n_fp,
+ 					    int unspec_for_m_sint,
+ 					    int unspec_for_m_uint,
+ 					    int unspec_for_m_fp,
+ 					    int unspec_for_m_n_sint,
+ 					    int unspec_for_m_n_uint,
+ 					    int unspec_for_m_n_fp)
+     : m_unspec_for_sint (unspec_for_sint),
+       m_unspec_for_uint (unspec_for_uint),
+       m_unspec_for_fp (unspec_for_fp),
+       m_unspec_for_n_sint (unspec_for_n_sint),
+       m_unspec_for_n_uint (unspec_for_n_uint),
+       m_unspec_for_n_fp (unspec_for_n_fp),
+       m_unspec_for_m_sint (unspec_for_m_sint),
+       m_unspec_for_m_uint (unspec_for_m_uint),
+       m_unspec_for_m_fp (unspec_for_m_fp),
+       m_unspec_for_m_n_sint (unspec_for_m_n_sint),
+       m_unspec_for_m_n_uint (unspec_for_m_n_uint),
+       m_unspec_for_m_n_fp (unspec_for_m_n_fp)
+   {}
+ 
+   /* The unspec code associated with signed-integer, unsigned-integer
+      and floating-point operations respectively.  It covers the cases
+      with the _n suffix, and/or the _m predicate.  */
+   int m_unspec_for_sint;
+   int m_unspec_for_uint;
+   int m_unspec_for_fp;
+   int m_unspec_for_n_sint;
+   int m_unspec_for_n_uint;
+   int m_unspec_for_n_fp;
+   int m_unspec_for_m_sint;
+   int m_unspec_for_m_uint;
+   int m_unspec_for_m_fp;
+   int m_unspec_for_m_n_sint;
+   int m_unspec_for_m_n_uint;
+   int m_unspec_for_m_n_fp;
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code code;
+     switch (e.pred)
+       {
+       case PRED_none:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No predicate, no suffix.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q (m_unspec_for_uint, m_unspec_for_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q (m_unspec_for_sint, m_unspec_for_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_f (m_unspec_for_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    /* No predicate, _n suffix.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_n (m_unspec_for_n_uint, m_unspec_for_n_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_n (m_unspec_for_n_sint, m_unspec_for_n_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_n_f (m_unspec_for_n_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_exact_insn (code);
+ 
+       case PRED_m:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No suffix, "m" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m (m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m (m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_f (m_unspec_for_m_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    /* _n suffix, "m" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m_n (m_unspec_for_m_n_uint, m_unspec_for_m_n_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m_n (m_unspec_for_m_n_sint, m_unspec_for_m_n_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_n_f (m_unspec_for_m_n_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_cond_insn (code, 0);
+ 
+       case PRED_x:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No suffix, "x" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m (m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m (m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_f (m_unspec_for_m_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    /* _n suffix, "x" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m_n (m_unspec_for_m_n_uint, m_unspec_for_m_n_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m_n (m_unspec_for_m_n_sint, m_unspec_for_m_n_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_n_f (m_unspec_for_m_n_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_pred_x_insn (code);
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+ 
+     gcc_unreachable ();
+   }
+ };
+ 
+ /* Map the function directly to CODE (UNSPEC), when there is a
+    non-predicated version and one with the "_p" predicate.  */
+ class unspec_mve_function_exact_insn_pred_p : public function_base
+ {
+ public:
+   CONSTEXPR unspec_mve_function_exact_insn_pred_p (int unspec_for_sint,
+ 						   int unspec_for_uint,
+ 						   int unspec_for_fp,
+ 						   int unspec_for_p_sint,
+ 						   int unspec_for_p_uint,
+ 						   int unspec_for_p_fp)
+     : m_unspec_for_sint (unspec_for_sint),
+       m_unspec_for_uint (unspec_for_uint),
+       m_unspec_for_fp (unspec_for_fp),
+       m_unspec_for_p_sint (unspec_for_p_sint),
+       m_unspec_for_p_uint (unspec_for_p_uint),
+       m_unspec_for_p_fp (unspec_for_p_fp)
+   {}
+ 
+   /* The unspec code associated with signed-integer and unsigned-integer
+      operations, with no predicate, or with "_p" predicate.  */
+   int m_unspec_for_sint;
+   int m_unspec_for_uint;
+   int m_unspec_for_fp;
+   int m_unspec_for_p_sint;
+   int m_unspec_for_p_uint;
+   int m_unspec_for_p_fp;
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code code;
+ 
+     if (m_unspec_for_sint == VADDLVQ_S
+ 	|| m_unspec_for_sint == VADDLVAQ_S
+ 	|| m_unspec_for_sint == VRMLALDAVHAQ_S
+ 	|| m_unspec_for_sint == VRMLALDAVHAXQ_S
+ 	|| m_unspec_for_sint == VRMLALDAVHQ_S
+ 	|| m_unspec_for_sint == VRMLALDAVHXQ_S
+ 	|| m_unspec_for_sint == VRMLSLDAVHAQ_S
+ 	|| m_unspec_for_sint == VRMLSLDAVHAXQ_S
+ 	|| m_unspec_for_sint == VRMLSLDAVHQ_S
+ 	|| m_unspec_for_sint == VRMLSLDAVHXQ_S)
+       {
+ 	switch (e.pred)
+ 	  {
+ 	  case PRED_none:
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_v4si (m_unspec_for_uint, m_unspec_for_uint);
+ 	    else
+ 	      code = code_for_mve_q_v4si (m_unspec_for_sint, m_unspec_for_sint);
+ 	    return e.use_exact_insn (code);
+ 
+ 	  case PRED_p:
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_p_v4si (m_unspec_for_p_uint, m_unspec_for_p_uint);
+ 	    else
+ 	      code = code_for_mve_q_p_v4si (m_unspec_for_p_sint, m_unspec_for_p_sint);
+ 	    return e.use_exact_insn (code);
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+       }
+     else
+       {
+ 	switch (e.pred)
+ 	  {
+ 	  case PRED_none:
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q (m_unspec_for_uint, m_unspec_for_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q (m_unspec_for_sint, m_unspec_for_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_f (m_unspec_for_fp, e.vector_mode (0));
+ 
+ 	    return e.use_exact_insn (code);
+ 
+ 	  case PRED_p:
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_p (m_unspec_for_p_uint, m_unspec_for_p_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_p (m_unspec_for_p_sint, m_unspec_for_p_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_p_f (m_unspec_for_p_fp, e.vector_mode (0));
+ 
+ 	    return e.use_exact_insn (code);
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+       }
+ 
+     gcc_unreachable ();
+   }
+ };
+ 
+ /* Map the function directly to CODE (UNSPEC, M) for vshl-like
+    builtins. The difference with unspec_mve_function_exact_insn is
+    that this function handles MODE_r and the related unspecs..  */
+ class unspec_mve_function_exact_insn_vshl : public function_base
+ {
+ public:
+   CONSTEXPR unspec_mve_function_exact_insn_vshl (int unspec_for_sint,
+ 						 int unspec_for_uint,
+ 						 int unspec_for_n_sint,
+ 						 int unspec_for_n_uint,
+ 						 int unspec_for_m_sint,
+ 						 int unspec_for_m_uint,
+ 						 int unspec_for_m_n_sint,
+ 						 int unspec_for_m_n_uint,
+ 						 int unspec_for_m_r_sint,
+ 						 int unspec_for_m_r_uint,
+ 						 int unspec_for_r_sint,
+ 						 int unspec_for_r_uint)
+     : m_unspec_for_sint (unspec_for_sint),
+       m_unspec_for_uint (unspec_for_uint),
+       m_unspec_for_n_sint (unspec_for_n_sint),
+       m_unspec_for_n_uint (unspec_for_n_uint),
+       m_unspec_for_m_sint (unspec_for_m_sint),
+       m_unspec_for_m_uint (unspec_for_m_uint),
+       m_unspec_for_m_n_sint (unspec_for_m_n_sint),
+       m_unspec_for_m_n_uint (unspec_for_m_n_uint),
+       m_unspec_for_m_r_sint (unspec_for_m_r_sint),
+       m_unspec_for_m_r_uint (unspec_for_m_r_uint),
+       m_unspec_for_r_sint (unspec_for_r_sint),
+       m_unspec_for_r_uint (unspec_for_r_uint)
+   {}
+ 
+   /* The unspec code associated with signed-integer, unsigned-integer
+      and floating-point operations respectively.  It covers the cases
+      with the _n suffix, and/or the _m predicate.  */
+   int m_unspec_for_sint;
+   int m_unspec_for_uint;
+   int m_unspec_for_n_sint;
+   int m_unspec_for_n_uint;
+   int m_unspec_for_m_sint;
+   int m_unspec_for_m_uint;
+   int m_unspec_for_m_n_sint;
+   int m_unspec_for_m_n_uint;
+   int m_unspec_for_m_r_sint;
+   int m_unspec_for_m_r_uint;
+   int m_unspec_for_r_sint;
+   int m_unspec_for_r_uint;
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code code;
+     switch (e.pred)
+       {
+       case PRED_none:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No predicate, no suffix.  */
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q (m_unspec_for_uint, m_unspec_for_uint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q (m_unspec_for_sint, m_unspec_for_sint, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    /* No predicate, _n suffix.  */
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_n (m_unspec_for_n_uint, m_unspec_for_n_uint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_n (m_unspec_for_n_sint, m_unspec_for_n_sint, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_r:
+ 	    /* No predicate, _r suffix.  */
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_r (m_unspec_for_r_uint, m_unspec_for_r_uint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_r (m_unspec_for_r_sint, m_unspec_for_r_sint, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_exact_insn (code);
+ 
+       case PRED_m:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No suffix, "m" predicate.  */
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_m (m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m (m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    /* _n suffix, "m" predicate.  */
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_m_n (m_unspec_for_m_n_uint, m_unspec_for_m_n_uint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_n (m_unspec_for_m_n_sint, m_unspec_for_m_n_sint, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_r:
+ 	    /* _r suffix, "m" predicate.  */
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_m_r (m_unspec_for_m_r_uint, m_unspec_for_m_r_uint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_r (m_unspec_for_m_r_sint, m_unspec_for_m_r_sint, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_cond_insn (code, 0);
+ 
+       case PRED_x:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No suffix, "x" predicate.  */
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_m (m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m (m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    /* _n suffix, "x" predicate.  */
+ 	    if (e.type_suffix (0).unsigned_p)
+ 	      code = code_for_mve_q_m_n (m_unspec_for_m_n_uint, m_unspec_for_m_n_uint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_n (m_unspec_for_m_n_sint, m_unspec_for_m_n_sint, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_pred_x_insn (code);
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+ 
+     gcc_unreachable ();
+   }
+ };
+ 
+ /* Map the comparison functions.  */
+ class unspec_based_mve_function_exact_insn_vcmp : public unspec_based_mve_function_base
+ {
+ public:
+   CONSTEXPR unspec_based_mve_function_exact_insn_vcmp (rtx_code code_for_sint,
+ 						       rtx_code code_for_uint,
+ 						       rtx_code code_for_fp,
+ 						       int unspec_for_m_sint,
+ 						       int unspec_for_m_uint,
+ 						       int unspec_for_m_fp,
+ 						       int unspec_for_m_n_sint,
+ 						       int unspec_for_m_n_uint,
+ 						       int unspec_for_m_n_fp)
+     : unspec_based_mve_function_base (code_for_sint,
+ 				      code_for_uint,
+ 				      code_for_fp,
+ 				      -1,
+ 				      -1,
+ 				      -1,
+ 				      unspec_for_m_sint,
+ 				      unspec_for_m_uint,
+ 				      unspec_for_m_fp,
+ 				      unspec_for_m_n_sint,
+ 				      unspec_for_m_n_uint,
+ 				      unspec_for_m_n_fp)
+   {}
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     machine_mode mode = e.vector_mode (0);
+     insn_code code;
+     rtx target;
+ 
+     /* No suffix, no predicate, use the right RTX code.  */
+     if (e.pred == PRED_none)
+       {
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_vcmpq (m_code_for_uint, mode);
+ 	      else
+ 		code = code_for_mve_vcmpq (m_code_for_sint, mode);
+ 	    else
+ 	      code = code_for_mve_vcmpq_f (m_code_for_fp, mode);
+ 	    break;
+ 
+ 	  case MODE_n:
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_vcmpq_n (m_code_for_uint, mode);
+ 	      else
+ 		code = code_for_mve_vcmpq_n (m_code_for_sint, mode);
+ 	    else
+ 	      code = code_for_mve_vcmpq_n_f (m_code_for_fp, mode);
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	target = e.use_exact_insn (code);
+       }
+     else
+       {
+ 	switch (e.pred)
+ 	  {
+ 	  case PRED_m:
+ 	    switch (e.mode_suffix_id)
+ 	      {
+ 	      case MODE_none:
+ 		/* No suffix, "m" predicate.  */
+ 		if (e.type_suffix (0).integer_p)
+ 		  if (e.type_suffix (0).unsigned_p)
+ 		    code = code_for_mve_vcmpq_m (m_unspec_for_m_uint, m_unspec_for_m_uint, mode);
+ 		  else
+ 		    code = code_for_mve_vcmpq_m (m_unspec_for_m_sint, m_unspec_for_m_sint, mode);
+ 		else
+ 		  code = code_for_mve_vcmpq_m_f (m_unspec_for_m_fp, mode);
+ 		break;
+ 
+ 	      case MODE_n:
+ 		/* _n suffix, "m" predicate.  */
+ 		if (e.type_suffix (0).integer_p)
+ 		  if (e.type_suffix (0).unsigned_p)
+ 		    code = code_for_mve_vcmpq_m_n (m_unspec_for_m_n_uint, m_unspec_for_m_n_uint, mode);
+ 		  else
+ 		    code = code_for_mve_vcmpq_m_n (m_unspec_for_m_n_sint, m_unspec_for_m_n_sint, mode);
+ 		else
+ 		  code = code_for_mve_vcmpq_m_n_f (m_unspec_for_m_n_fp, mode);
+ 		break;
+ 
+ 	      default:
+ 		gcc_unreachable ();
+ 	      }
+ 	    target = e.use_cond_insn (code, 0);
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+       }
+ 
+     rtx HItarget = gen_reg_rtx (HImode);
+     emit_move_insn (HItarget, gen_lowpart (HImode, target));
+     return HItarget;
+   }
+ };
+ 
+ /* Map the function directly to CODE (UNSPEC, UNSPEC, UNSPEC, M) where
+    M is the vector mode associated with type suffix 0.  USed for the
+    operations where there is a "rot90" or "rot270" suffix, depending
+    on the UNSPEC.  */
+ class unspec_mve_function_exact_insn_rot : public function_base
+ {
+ public:
+   CONSTEXPR unspec_mve_function_exact_insn_rot (int unspec_for_sint,
+ 						int unspec_for_uint,
+ 						int unspec_for_fp,
+ 						int unspec_for_m_sint,
+ 						int unspec_for_m_uint,
+ 						int unspec_for_m_fp)
+     : m_unspec_for_sint (unspec_for_sint),
+       m_unspec_for_uint (unspec_for_uint),
+       m_unspec_for_fp (unspec_for_fp),
+       m_unspec_for_m_sint (unspec_for_m_sint),
+       m_unspec_for_m_uint (unspec_for_m_uint),
+       m_unspec_for_m_fp (unspec_for_m_fp)
+   {}
+ 
+   /* The unspec code associated with signed-integer, unsigned-integer
+      and floating-point operations respectively.  It covers the cases
+      with and without the _m predicate.  */
+   int m_unspec_for_sint;
+   int m_unspec_for_uint;
+   int m_unspec_for_fp;
+   int m_unspec_for_m_sint;
+   int m_unspec_for_m_uint;
+   int m_unspec_for_m_fp;
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code code;
+ 
+     switch (e.pred)
+       {
+       case PRED_none:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No predicate, no suffix.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q (m_unspec_for_uint, m_unspec_for_uint, m_unspec_for_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q (m_unspec_for_sint, m_unspec_for_sint, m_unspec_for_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_f (m_unspec_for_fp, m_unspec_for_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_exact_insn (code);
+ 
+       case PRED_m:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No suffix, "m" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m (m_unspec_for_m_uint, m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m (m_unspec_for_m_sint, m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_f (m_unspec_for_m_fp, m_unspec_for_m_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_cond_insn (code, 0);
+ 
+       case PRED_x:
+ 	switch (e.mode_suffix_id)
+ 	  {
+ 	  case MODE_none:
+ 	    /* No suffix, "x" predicate.  */
+ 	    if (e.type_suffix (0).integer_p)
+ 	      if (e.type_suffix (0).unsigned_p)
+ 		code = code_for_mve_q_m (m_unspec_for_m_uint, m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	      else
+ 		code = code_for_mve_q_m (m_unspec_for_m_sint, m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 	    else
+ 	      code = code_for_mve_q_m_f (m_unspec_for_m_fp, m_unspec_for_m_fp, e.vector_mode (0));
+ 	    break;
+ 
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+ 	return e.use_pred_x_insn (code);
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+ 
+     gcc_unreachable ();
+   }
+ };
+ 
+ /* Map the vmull-related function directly to CODE (UNSPEC, UNSPEC, M)
+    where M is the vector mode associated with type suffix 0.  We need
+    this special case because the builtins have _int in their
+    names.  */
+ class unspec_mve_function_exact_insn_vmull : public function_base
+ {
+ public:
+   CONSTEXPR unspec_mve_function_exact_insn_vmull (int unspec_for_sint,
+ 						  int unspec_for_uint,
+ 						  int unspec_for_m_sint,
+ 						  int unspec_for_m_uint)
+     : m_unspec_for_sint (unspec_for_sint),
+       m_unspec_for_uint (unspec_for_uint),
+       m_unspec_for_m_sint (unspec_for_m_sint),
+       m_unspec_for_m_uint (unspec_for_m_uint)
+   {}
+ 
+   /* The unspec code associated with signed-integer and
+      unsigned-integer operations respectively.  It covers the cases
+      with and without the _m predicate.  */
+   int m_unspec_for_sint;
+   int m_unspec_for_uint;
+   int m_unspec_for_m_sint;
+   int m_unspec_for_m_uint;
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code code;
+ 
+     if (! e.type_suffix (0).integer_p)
+       gcc_unreachable ();
+ 
+     if (e.mode_suffix_id != MODE_none)
+       gcc_unreachable ();
+ 
+     switch (e.pred)
+       {
+       case PRED_none:
+ 	/* No predicate, no suffix.  */
+ 	if (e.type_suffix (0).unsigned_p)
+ 	  code = code_for_mve_q_int (m_unspec_for_uint, m_unspec_for_uint, e.vector_mode (0));
+ 	else
+ 	  code = code_for_mve_q_int (m_unspec_for_sint, m_unspec_for_sint, e.vector_mode (0));
+ 
+ 	return e.use_exact_insn (code);
+ 
+       case PRED_m:
+ 	/* No suffix, "m" predicate.  */
+ 	if (e.type_suffix (0).unsigned_p)
+ 	  code = code_for_mve_q_int_m (m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	else
+ 	  code = code_for_mve_q_int_m (m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 
+ 	return e.use_cond_insn (code, 0);
+ 
+       case PRED_x:
+ 	/* No suffix, "x" predicate.  */
+ 	if (e.type_suffix (0).unsigned_p)
+ 	  code = code_for_mve_q_int_m (m_unspec_for_m_uint, m_unspec_for_m_uint, e.vector_mode (0));
+ 	else
+ 	  code = code_for_mve_q_int_m (m_unspec_for_m_sint, m_unspec_for_m_sint, e.vector_mode (0));
+ 
+ 	return e.use_pred_x_insn (code);
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+ 
+     gcc_unreachable ();
+   }
+ };
+ 
+ /* Map the vmull_poly-related function directly to CODE (UNSPEC,
+    UNSPEC, M) where M is the vector mode associated with type suffix
+    0.  We need this special case because the builtins have _poly in
+    their names, and use the special poly type..  */
+ class unspec_mve_function_exact_insn_vmull_poly : public function_base
+ {
+ public:
+   CONSTEXPR unspec_mve_function_exact_insn_vmull_poly (int unspec_for_poly,
+ 						       int unspec_for_m_poly)
+     : m_unspec_for_poly (unspec_for_poly),
+       m_unspec_for_m_poly (unspec_for_m_poly)
+   {}
+ 
+   /* The unspec code associated with signed-integer, unsigned-integer
+      and poly operations respectively.  It covers the cases with and
+      without the _m predicate.  */
+   int m_unspec_for_poly;
+   int m_unspec_for_m_poly;
+ 
+   rtx
+   expand (function_expander &e) const override
+   {
+     insn_code code;
+ 
+     if (e.mode_suffix_id != MODE_none)
+       gcc_unreachable ();
+ 
+     if (! e.type_suffix (0).poly_p)
+       gcc_unreachable ();
+ 
+     switch (e.pred)
+       {
+       case PRED_none:
+ 	/* No predicate, no suffix.  */
+ 	code = code_for_mve_q_poly (m_unspec_for_poly, m_unspec_for_poly, e.vector_mode (0));
+ 	return e.use_exact_insn (code);
+ 
+       case PRED_m:
+ 	/* No suffix, "m" predicate.  */
+ 	code = code_for_mve_q_poly_m (m_unspec_for_m_poly, m_unspec_for_m_poly, e.vector_mode (0));
+ 	return e.use_cond_insn (code, 0);
+ 
+       case PRED_x:
+ 	/* No suffix, "x" predicate.  */
+ 	code = code_for_mve_q_poly_m (m_unspec_for_m_poly, m_unspec_for_m_poly, e.vector_mode (0));
+ 	return e.use_pred_x_insn (code);
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+ 
+     gcc_unreachable ();
+   }
+ };
+ 
+ /* A function_base that sometimes or always operates on tuples of
+    vectors.  */
+ class multi_vector_function : public function_base
+ {
+ public:
+   CONSTEXPR multi_vector_function (unsigned int vectors_per_tuple)
+     : m_vectors_per_tuple (vectors_per_tuple) {}
+ 
+   unsigned int
+   vectors_per_tuple () const override
+   {
+     return m_vectors_per_tuple;
+   }
+ 
+   /* The number of vectors in a tuple, or 1 if the function only operates
+      on single vectors.  */
+   unsigned int m_vectors_per_tuple;
+ };
+ 
+ /* A function_base that loads or stores contiguous memory elements
+    without extending or truncating them.  */
+ class full_width_access : public multi_vector_function
+ {
+ public:
+   CONSTEXPR full_width_access (unsigned int vectors_per_tuple = 1)
+     : multi_vector_function (vectors_per_tuple) {}
+ 
+   tree
+   memory_scalar_type (const function_instance &fi) const override
+   {
+     return fi.scalar_type (0);
+   }
+ 
+   machine_mode
+   memory_vector_mode (const function_instance &fi) const override
+   {
+     machine_mode mode = fi.vector_mode (0);
+     /* Vectors of floating-point are managed in memory as vectors of
+        integers.  */
+     switch (mode)
+       {
+       case E_V4SFmode:
+ 	mode = E_V4SImode;
+ 	break;
+       case E_V8HFmode:
+ 	mode = E_V8HImode;
+ 	break;
+       default:
+ 	break;
+       }
+ 
+     if (m_vectors_per_tuple != 1)
+       mode = targetm.array_mode (mode, m_vectors_per_tuple).require ();
+ 
+     return mode;
+   }
+ };
+ 
+ } /* end namespace arm_mve */
+ 
+ /* Declare the global function base NAME, creating it from an instance
+    of class CLASS with constructor arguments ARGS.  */
+ #define FUNCTION(NAME, CLASS, ARGS) \
+   namespace { static CONSTEXPR const CLASS NAME##_obj ARGS; } \
+   namespace functions { const function_base *const NAME = &NAME##_obj; }
+ 
+ #endif
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins-shapes.cc gcc-14.1.0/gcc/config/arm/arm-mve-builtins-shapes.cc
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins-shapes.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins-shapes.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2024 ----
+ /* ACLE support for Arm MVE (function shapes)
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "tree.h"
+ #include "rtl.h"
+ #include "memmodel.h"
+ #include "insn-codes.h"
+ #include "optabs.h"
+ #include "arm-mve-builtins.h"
+ #include "arm-mve-builtins-shapes.h"
+ 
+ /* In the comments below, _t0 represents the first type suffix
+    (e.g. "_s8") and _t1 represents the second.  T0/T1 represent the
+    type full names (e.g. int8x16_t). Square brackets enclose
+    characters that are present in only the full name, not the
+    overloaded name.  Governing predicate arguments and predicate
+    suffixes are not shown, since they depend on the predication type,
+    which is a separate piece of information from the shape.  */
+ 
+ namespace arm_mve {
+ 
+ /* Return a representation of "const T *".  */
+ static tree
+ build_const_pointer (tree t)
+ {
+   return build_pointer_type (build_qualified_type (t, TYPE_QUAL_CONST));
+ }
+ 
+ /* If INSTANCE has a predicate, add it to the list of argument types
+    in ARGUMENT_TYPES.  RETURN_TYPE is the type returned by the
+    function.  */
+ static void
+ apply_predication (const function_instance &instance, tree return_type,
+ 		   vec<tree> &argument_types)
+ {
+   if (instance.pred != PRED_none)
+     {
+       /* When predicate is PRED_m, insert a first argument
+ 	 ("inactive") with the same type as return_type.  */
+       if (instance.has_inactive_argument ())
+ 	argument_types.quick_insert (0, return_type);
+       argument_types.quick_push (get_mve_pred16_t ());
+     }
+ }
+ 
+ /* Parse and move past an element type in FORMAT and return it as a type
+    suffix.  The format is:
+ 
+    [01]    - the element type in type suffix 0 or 1 of INSTANCE.
+    h<elt>  - a half-sized version of <elt>
+    p<elt>  - a poly type with the same width as <elt>
+    s<bits> - a signed type with the given number of bits
+    s[01]   - a signed type with the same width as type suffix 0 or 1
+    u<bits> - an unsigned type with the given number of bits
+    u[01]   - an unsigned type with the same width as type suffix 0 or 1
+    U<elt>  - an unsigned type with the double width as <elt>
+    w<elt>  - a double-sized version of <elt>
+    x<bits> - a type with the given number of bits and same signedness
+              as the next argument.
+ 
+    Future intrinsics will extend this format.  */
+ static type_suffix_index
+ parse_element_type (const function_instance &instance, const char *&format)
+ {
+   int ch = *format++;
+ 
+ 
+   if (ch == 's' || ch == 'u')
+     {
+       type_class_index tclass = (ch == 's' ? TYPE_signed
+ 				 : TYPE_unsigned);
+       char *end;
+       unsigned int bits = strtol (format, &end, 10);
+       format = end;
+       if (bits == 0 || bits == 1)
+ 	bits = instance.type_suffix (bits).element_bits;
+       return find_type_suffix (tclass, bits);
+     }
+ 
+   if (ch == 'h')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       return find_type_suffix (type_suffixes[suffix].tclass,
+ 			       type_suffixes[suffix].element_bits / 2);
+     }
+ 
+    if (ch == 'w')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       return find_type_suffix (type_suffixes[suffix].tclass,
+ 			       type_suffixes[suffix].element_bits * 2);
+     }
+ 
+    if (ch == 'U')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       return find_type_suffix (TYPE_unsigned,
+ 			       type_suffixes[suffix].element_bits * 2);
+     }
+ 
+    if (ch == 'p')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       return find_type_suffix (TYPE_poly,
+ 			       type_suffixes[suffix].element_bits);
+     }
+ 
+   if (ch == 'x')
+     {
+       const char *next = format;
+       next = strstr (format, ",");
+       next+=2;
+       type_suffix_index suffix = parse_element_type (instance, next);
+       type_class_index tclass = type_suffixes[suffix].tclass;
+       char *end;
+       unsigned int bits = strtol (format, &end, 10);
+       format = end;
+       return find_type_suffix (tclass, bits);
+     }
+ 
+   if (ch == '0' || ch == '1')
+     return instance.type_suffix_ids[ch - '0'];
+ 
+   gcc_unreachable ();
+ }
+ 
+ /* Read and return a type from FORMAT for function INSTANCE.  Advance
+    FORMAT beyond the type string.  The format is:
+ 
+    _       - void
+    al      - array pointer for loads
+    as      - array pointer for stores
+    p       - predicates with type mve_pred16_t
+    s<elt>  - a scalar type with the given element suffix
+    t<elt>  - a vector or tuple type with given element suffix [*1]
+    v<elt>  - a vector with the given element suffix
+ 
+    where <elt> has the format described above parse_element_type.
+ 
+    Future intrinsics will extend this format.
+ 
+    [*1] the vectors_per_tuple function indicates whether the type should
+         be a tuple, and if so, how many vectors it should contain.  */
+ static tree
+ parse_type (const function_instance &instance, const char *&format)
+ {
+   int ch = *format++;
+ 
+ 
+   if (ch == '_')
+     return void_type_node;
+ 
+   if (ch == 'a')
+     {
+       ch = *format++;
+       if (ch == 'l')
+ 	return build_const_pointer (instance.memory_scalar_type ());
+       if (ch == 's') {
+ 	return build_pointer_type (instance.memory_scalar_type ());
+       }
+       gcc_unreachable ();
+     }
+ 
+   if (ch == 'p')
+     return get_mve_pred16_t ();
+ 
+   if (ch == 's')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       return scalar_types[type_suffixes[suffix].vector_type];
+     }
+ 
+   if (ch == 't')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       vector_type_index vector_type = type_suffixes[suffix].vector_type;
+       unsigned int num_vectors = instance.vectors_per_tuple ();
+       return acle_vector_types[num_vectors - 1][vector_type];
+     }
+ 
+   if (ch == 'v')
+     {
+       type_suffix_index suffix = parse_element_type (instance, format);
+       return acle_vector_types[0][type_suffixes[suffix].vector_type];
+     }
+ 
+   gcc_unreachable ();
+ }
+ 
+ /* Read a type signature for INSTANCE from FORMAT.  Add the argument
+    types to ARGUMENT_TYPES and return the return type.  Assert there
+    are no more than MAX_ARGS arguments.
+ 
+    The format is a comma-separated list of types (as for parse_type),
+    with the first type being the return type and the rest being the
+    argument types.  */
+ static tree
+ parse_signature (const function_instance &instance, const char *format,
+ 		 vec<tree> &argument_types, unsigned int max_args)
+ {
+   tree return_type = parse_type (instance, format);
+   unsigned int args = 0;
+   while (format[0] == ',')
+     {
+       gcc_assert (args < max_args);
+       format += 1;
+       tree argument_type = parse_type (instance, format);
+       argument_types.quick_push (argument_type);
+       args += 1;
+     }
+   gcc_assert (format[0] == 0);
+   return return_type;
+ }
+ 
+ /* Add one function instance for GROUP, using mode suffix MODE_SUFFIX_ID,
+    the type suffixes at index TI and the predication suffix at index PI.
+    The other arguments are as for build_all.  */
+ static void
+ build_one (function_builder &b, const char *signature,
+ 	   const function_group_info &group, mode_suffix_index mode_suffix_id,
+ 	   unsigned int ti, unsigned int pi, bool preserve_user_namespace,
+ 	   bool force_direct_overloads)
+ {
+   /* Current functions take at most five arguments.  Match
+      parse_signature parameter below.  */
+   auto_vec<tree, 5> argument_types;
+   function_instance instance (group.base_name, *group.base, *group.shape,
+ 			      mode_suffix_id, group.types[ti],
+ 			      group.preds[pi]);
+   tree return_type = parse_signature (instance, signature, argument_types, 5);
+   apply_predication (instance, return_type, argument_types);
+   b.add_unique_function (instance, return_type, argument_types,
+ 			 preserve_user_namespace, group.requires_float,
+ 			 force_direct_overloads);
+ }
+ 
+ /* Add a function instance for every type and predicate combination in
+    GROUP, except if requested to use only the predicates listed in
+    RESTRICT_TO_PREDS.  Take the function base name from GROUP and the
+    mode suffix from MODE_SUFFIX_ID. Use SIGNATURE to construct the
+    function signature, then use apply_predication to add in the
+    predicate.  */
+ static void
+ build_all (function_builder &b, const char *signature,
+ 	   const function_group_info &group, mode_suffix_index mode_suffix_id,
+ 	   bool preserve_user_namespace,
+ 	   bool force_direct_overloads = false,
+ 	   const predication_index *restrict_to_preds = NULL)
+ {
+   for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
+     {
+       unsigned int pi2 = 0;
+ 
+       if (restrict_to_preds)
+ 	for (; restrict_to_preds[pi2] != NUM_PREDS; ++pi2)
+ 	  if (restrict_to_preds[pi2] == group.preds[pi])
+ 	    break;
+ 
+       if (restrict_to_preds == NULL || restrict_to_preds[pi2] != NUM_PREDS)
+ 	for (unsigned int ti = 0;
+ 	     ti == 0 || group.types[ti][0] != NUM_TYPE_SUFFIXES; ++ti)
+ 	  build_one (b, signature, group, mode_suffix_id, ti, pi,
+ 		     preserve_user_namespace, force_direct_overloads);
+     }
+ }
+ 
+ /* Add a function instance for every type and predicate combination in
+    GROUP, except if requested to use only the predicates listed in
+    RESTRICT_TO_PREDS, and only for 16-bit and 32-bit integers.  Take
+    the function base name from GROUP and the mode suffix from
+    MODE_SUFFIX_ID. Use SIGNATURE to construct the function signature,
+    then use apply_predication to add in the predicate.  */
+ static void
+ build_16_32 (function_builder &b, const char *signature,
+ 	     const function_group_info &group, mode_suffix_index mode_suffix_id,
+ 	     bool preserve_user_namespace,
+ 	     bool force_direct_overloads = false,
+ 	     const predication_index *restrict_to_preds = NULL)
+ {
+   for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
+     {
+       unsigned int pi2 = 0;
+ 
+       if (restrict_to_preds)
+ 	for (; restrict_to_preds[pi2] != NUM_PREDS; ++pi2)
+ 	  if (restrict_to_preds[pi2] == group.preds[pi])
+ 	    break;
+ 
+       if (restrict_to_preds == NULL || restrict_to_preds[pi2] != NUM_PREDS)
+ 	for (unsigned int ti = 0;
+ 	     ti == 0 || group.types[ti][0] != NUM_TYPE_SUFFIXES; ++ti)
+ 	  {
+ 	    unsigned int element_bits = type_suffixes[group.types[ti][0]].element_bits;
+ 	    type_class_index tclass = type_suffixes[group.types[ti][0]].tclass;
+ 	    if ((tclass == TYPE_signed || tclass == TYPE_unsigned)
+ 		&& (element_bits == 16 || element_bits == 32))
+ 	      build_one (b, signature, group, mode_suffix_id, ti, pi,
+ 			 preserve_user_namespace, force_direct_overloads);
+ 	  }
+     }
+ }
+ 
+ /* Declare the function shape NAME, pointing it to an instance
+    of class <NAME>_def.  */
+ #define SHAPE(NAME) \
+   static CONSTEXPR const NAME##_def NAME##_obj; \
+   namespace shapes { const function_shape *const NAME = &NAME##_obj; }
+ 
+ /* Base class for functions that are not overloaded.  */
+ struct nonoverloaded_base : public function_shape
+ {
+   bool
+   explicit_type_suffix_p (unsigned int, enum predication_index, enum mode_suffix_index) const override
+   {
+     return true;
+   }
+ 
+   bool
+   explicit_mode_suffix_p (enum predication_index, enum mode_suffix_index) const override
+   {
+     return true;
+   }
+ 
+   bool
+   skip_overload_p (enum predication_index, enum mode_suffix_index) const override
+   {
+     return false;
+   }
+ 
+   tree
+   resolve (function_resolver &) const override
+   {
+     gcc_unreachable ();
+   }
+ };
+ 
+ /* Base class for overloaded functions.  Bit N of EXPLICIT_MASK is true
+    if type suffix N appears in the overloaded name.  */
+ template<unsigned int EXPLICIT_MASK>
+ struct overloaded_base : public function_shape
+ {
+   bool
+   explicit_type_suffix_p (unsigned int i, enum predication_index, enum mode_suffix_index) const override
+   {
+     return (EXPLICIT_MASK >> i) & 1;
+   }
+ 
+   bool
+   explicit_mode_suffix_p (enum predication_index, enum mode_suffix_index) const override
+   {
+     return false;
+   }
+ 
+   bool
+   skip_overload_p (enum predication_index, enum mode_suffix_index) const override
+   {
+     return false;
+   }
+ };
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t, <T0>_t)
+ 
+    i.e. the standard shape for binary operations that operate on
+    uniform types.
+ 
+    Example: vandq.
+    int8x16_t [__arm_]vandq[_s8](int8x16_t a, int8x16_t b)
+    int8x16_t [__arm_]vandq_m[_s8](int8x16_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p)
+    int8x16_t [__arm_]vandq_x[_s8](int8x16_t a, int8x16_t b, mve_pred16_t p)  */
+ struct binary_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (2);
+   }
+ };
+ SHAPE (binary)
+ 
+ /* <[u]int32>_t vfoo[_<t0>](<T0>_t, <T0>_t)
+ 
+    i.e. the shape for binary operations that operate on a pair of
+    vectors and produce an int32_t or an uint32_t depending on the
+    signedness of the input elements.
+ 
+    Example: vmladavq.
+    int32_t [__arm_]vmladavq[_s16](int16x8_t m1, int16x8_t m2)
+    int32_t [__arm_]vmladavq_p[_s16](int16x8_t m1, int16x8_t m2, mve_pred16_t p)  */
+ struct binary_acc_int32_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "sx32,v0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (2);
+   }
+ };
+ SHAPE (binary_acc_int32)
+ 
+ /* <[u]int64>_t vfoo[_<t0>](<T0>_t, <T0>_t)
+ 
+    Example: vmlaldavq.
+    int64_t [__arm_]vmlaldavq[_s16](int16x8_t m1, int16x8_t m2)
+    int64_t [__arm_]vmlaldavq_p[_s16](int16x8_t m1, int16x8_t m2, mve_pred16_t p)  */
+ struct binary_acc_int64_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "sx64,v0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (2);
+   }
+ };
+ SHAPE (binary_acc_int64)
+ 
+ /* <[u]int32>_t vfoo[_<t0>]([u]int32_t, <T0>_t, <T0>_t)
+ 
+    Example: vmladavaq.
+    int32_t [__arm_]vmladavaq[_s16](int32_t add, int16x8_t m1, int16x8_t m2)
+    int32_t [__arm_]vmladavaq_p[_s16](int32_t add, int16x8_t m1, int16x8_t m2, mve_pred16_t p)  */
+ struct binary_acca_int32_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "sx32,sx32,v0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (3, i, nargs)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     unsigned int last_arg = i + 1;
+     for (i = 1; i < last_arg; i++)
+       if (!r.require_matching_vector_type (i, type))
+ 	return error_mark_node;
+ 
+     if (!r.require_integer_immediate (0))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_acca_int32)
+ 
+ /* [u]int64_t vfoo[_<t0>]([u]int64_t, <T0>_t, <T0>_t)
+ 
+    Example: vmlaldavaq.
+    int64_t [__arm_]vmlaldavaq[_s16](int64_t add, int16x8_t m1, int16x8_t m2)
+    int64_t [__arm_]vmlaldavaq_p[_s16](int64_t add, int16x8_t m1, int16x8_t m2, mve_pred16_t p)  */
+ struct binary_acca_int64_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "sx64,sx64,v0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (3, i, nargs)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     unsigned int last_arg = i + 1;
+     for (i = 1; i < last_arg; i++)
+       if (!r.require_matching_vector_type (i, type))
+ 	return error_mark_node;
+ 
+     if (!r.require_integer_immediate (0))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_acca_int64)
+ 
+ /* <T0>_t vfoo[_n_t0](<T0>_t, int32_t)
+ 
+    i.e. the shape for binary operations that operate on
+    a vector and an int32_t.
+ 
+    Example: vbrsrq.
+    int16x8_t [__arm_]vbrsrq[_n_s16](int16x8_t a, int32_t b)
+    int16x8_t [__arm_]vbrsrq_m[_n_s16](int16x8_t inactive, int16x8_t a, int32_t b, mve_pred16_t p)
+    int16x8_t [__arm_]vbrsrq_x[_n_s16](int16x8_t a, int32_t b, mve_pred16_t p)  */
+ struct binary_imm32_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,v0,ss32", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (1, 1);
+   }
+ };
+ SHAPE (binary_imm32)
+ 
+ /* <T0>_t vfoo[_n_t0](<T0>_t, const int)
+ 
+    Shape for vector shift right operations that take a vector first
+    argument and an integer, and produce a vector.
+ 
+    Check that 'imm' is in the [1..#bits] range.
+ 
+    Example: vrshrq.
+    int8x16_t [__arm_]vrshrq[_n_s8](int8x16_t a, const int imm)
+    int8x16_t [__arm_]vrshrq_m[_n_s8](int8x16_t inactive, int8x16_t a, const int imm, mve_pred16_t p)
+    int8x16_t [__arm_]vrshrq_x[_n_s8](int8x16_t a, const int imm, mve_pred16_t p)  */
+ struct binary_rshift_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,v0,ss32", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (1, 1);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     unsigned int bits = c.type_suffix (0).element_bits;
+     return c.require_immediate_range (1, 1, bits);
+   }
+ };
+ SHAPE (binary_rshift)
+ 
+ 
+ /* <uT0>_t vfoo[_n_t0](<T0>_t, int)
+ 
+    Shape for vector saturating shift left operations that take a
+    vector of signed elements as first argument and an integer, and
+    produce a vector of unsigned elements.
+ 
+    Check that 'imm' is in the [0..#bits-1] range.
+ 
+    Example: vqshluq.
+    uint16x8_t [__arm_]vqshluq[_n_s16](int16x8_t a, const int imm)
+    uint16x8_t [__arm_]vqshluq_m[_n_s16](uint16x8_t inactive, int16x8_t a, const int imm, mve_pred16_t p)  */
+ struct binary_lshift_unsigned_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "vu0,vs0,ss32", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (i-1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     if (r.pred == PRED_m)
+       {
+ 	/* With PRED_m, check that the 'inactive' first argument has
+ 	   the expeected unsigned type.  */
+ 	type_suffix_index return_type
+ 	  = find_type_suffix (TYPE_unsigned, type_suffixes[type].element_bits);
+ 
+ 	if (!r.require_matching_vector_type (0, return_type))
+ 	  return error_mark_node;
+       }
+ 
+     for (; i < nargs; ++i)
+       if (!r.require_integer_immediate (i))
+ 	return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     unsigned int bits = c.type_suffix (0).element_bits;
+     return c.require_immediate_range (1, 0, bits - 1);
+   }
+ 
+ };
+ SHAPE (binary_lshift_unsigned)
+ 
+ /* <uT0>_t vfoo[_t0](<uT0>_t, <T0>_t)
+ 
+    i.e. binary operations that take a vector of unsigned elements as first argument and a
+    vector of signed elements as second argument, and produce a vector of unsigned elements.
+ 
+    Example: vminaq.
+    uint8x16_t [__arm_]vminaq[_s8](uint8x16_t a, int8x16_t b)
+    uint8x16_t [__arm_]vminaq_m[_s8](uint8x16_t a, int8x16_t b, mve_pred16_t p)  */
+ struct binary_maxamina_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "vu0,vu0,vs0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     /* Check that the first argument has the expeected unsigned
+        type.  */
+     type_suffix_index return_type
+       = find_type_suffix (TYPE_unsigned, type_suffixes[type].element_bits);
+     if (!r.require_matching_vector_type (0, return_type))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_maxamina)
+ 
+ /* <uS0>_t vfoo[_<t0>](<uS0>_t, <T0>_t)
+ 
+    Example: vmaxavq.
+    uint8_t [__arm_]vmaxavq[_s8](uint8_t a, int8x16_t b)
+    uint8_t [__arm_]vmaxavq_p[_s8](uint8_t a, int8x16_t b, mve_pred16_t p)  */
+ struct binary_maxavminav_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "su0,su0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| !r.require_derived_scalar_type (0, TYPE_unsigned)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_maxavminav)
+ 
+ /* <S0>_t vfoo[_<t0>](<S0>_t, <T0>_t)
+ 
+    Example: vmaxvq.
+    int8_t [__arm_]vmaxvq[_s8](int8_t a, int8x16_t b)
+    int8_t [__arm_]vmaxvq_p[_s8](int8_t a, int8x16_t b, mve_pred16_t p)  */
+ struct binary_maxvminv_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "s0,s0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| !r.require_derived_scalar_type (0, r.SAME_TYPE_CLASS)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_maxvminv)
+ 
+ /* <T0:half>_t vfoo[_t0](<T0:half>_t, <T0>_t)
+ 
+    Example: vmovnbq.
+    int8x16_t [__arm_]vmovnbq[_s16](int8x16_t a, int16x8_t b)
+    int8x16_t [__arm_]vmovnbq_m[_s16](int8x16_t a, int16x8_t b, mve_pred16_t p)  */
+ struct binary_move_narrow_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "vh0,vh0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     type_suffix_index narrow_suffix
+       = find_type_suffix (type_suffixes[type].tclass,
+ 			  type_suffixes[type].element_bits / 2);
+ 
+ 
+     if (!r.require_matching_vector_type (0, narrow_suffix))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_move_narrow)
+ 
+ /* <uT0:half>_t vfoo[_t0](<uT0:half>_t, <T0>_t)
+ 
+    Example: vqmovunbq.
+    uint8x16_t [__arm_]vqmovunbq[_s16](uint8x16_t a, int16x8_t b)
+    uint8x16_t [__arm_]vqmovunbq_m[_s16](uint8x16_t a, int16x8_t b, mve_pred16_t p)  */
+ struct binary_move_narrow_unsigned_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "vhu0,vhu0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     type_suffix_index narrow_suffix
+       = find_type_suffix (TYPE_unsigned,
+ 			  type_suffixes[type].element_bits / 2);
+ 
+     if (!r.require_matching_vector_type (0, narrow_suffix))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_move_narrow_unsigned)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t, <T0>_t)
+    <T0>_t vfoo[_n_t0](<T0>_t, <S0>_t)
+ 
+    i.e. the standard shape for binary operations that operate on
+    uniform types.
+ 
+    Example: vaddq.
+    int8x16_t [__arm_]vaddq[_s8](int8x16_t a, int8x16_t b)
+    int8x16_t [__arm_]vaddq[_n_s8](int8x16_t a, int8_t b)
+    int8x16_t [__arm_]vaddq_m[_s8](int8x16_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p)
+    int8x16_t [__arm_]vaddq_m[_n_s8](int8x16_t inactive, int8x16_t a, int8_t b, mve_pred16_t p)
+    int8x16_t [__arm_]vaddq_x[_s8](int8x16_t a, int8x16_t b, mve_pred16_t p)
+    int8x16_t [__arm_]vaddq_x[_n_s8](int8x16_t a, int8_t b, mve_pred16_t p)  */
+ struct binary_opt_n_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,v0", group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,s0", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform_opt_n (2);
+   }
+ };
+ SHAPE (binary_opt_n)
+ 
+ /* <T0>_t vfoo[t0](<T0>_t, <T0>_t)
+    <T0>_t vfoo[_n_t0](<T0>_t, <S0>_t)
+ 
+    Where the _n form only supports s16/s32/u16/u32 types as for vorrq.
+ 
+    Example: vorrq.
+    int16x8_t [__arm_]vorrq[_s16](int16x8_t a, int16x8_t b)
+    int16x8_t [__arm_]vorrq_m[_s16](int16x8_t inactive, int16x8_t a, int16x8_t b, mve_pred16_t p)
+    int16x8_t [__arm_]vorrq_x[_s16](int16x8_t a, int16x8_t b, mve_pred16_t p)
+    int16x8_t [__arm_]vorrq[_n_s16](int16x8_t a, const int16_t imm)
+    int16x8_t [__arm_]vorrq_m_n[_s16](int16x8_t a, const int16_t imm, mve_pred16_t p)  */
+ struct binary_orrq_def : public overloaded_base<0>
+ {
+   bool
+   explicit_mode_suffix_p (enum predication_index pred, enum mode_suffix_index mode) const override
+   {
+     return (mode == MODE_n
+ 	    && pred == PRED_m);
+   }
+ 
+   bool
+   skip_overload_p (enum predication_index pred, enum mode_suffix_index mode) const override
+   {
+     switch (mode)
+       {
+       case MODE_none:
+ 	return false;
+ 
+ 	/* For MODE_n, share the overloaded instance with MODE_none, except for PRED_m.  */
+       case MODE_n:
+ 	return pred != PRED_m;
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+   }
+ 
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,v0,v0", group, MODE_none, preserve_user_namespace);
+     build_16_32 (b, "v0,v0,s0", group, MODE_n, preserve_user_namespace, false, preds_m_or_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (0)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.finish_opt_n_resolution (i, 0, type);
+   }
+ };
+ SHAPE (binary_orrq)
+ 
+ /* <T0>_t vfoo[t0](<T0>_t, <T0>_t)
+    <T0>_t vfoo[_n_t0](<T0>_t, int32_t)
+ 
+    Shape for rounding shift left operations.
+ 
+    Example: vrshlq.
+    int8x16_t [__arm_]vrshlq[_n_s8](int8x16_t a, int32_t b)
+    int8x16_t [__arm_]vrshlq_m_n[_s8](int8x16_t a, int32_t b, mve_pred16_t p)
+    int8x16_t [__arm_]vrshlq[_s8](int8x16_t a, int8x16_t b)
+    int8x16_t [__arm_]vrshlq_m[_s8](int8x16_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p)
+    int8x16_t [__arm_]vrshlq_x[_s8](int8x16_t a, int8x16_t b, mve_pred16_t p)  */
+ struct binary_round_lshift_def : public overloaded_base<0>
+ {
+   bool
+   explicit_mode_suffix_p (enum predication_index pred, enum mode_suffix_index mode) const override
+   {
+     return ((mode == MODE_n)
+ 	    && (pred == PRED_m));
+   }
+ 
+   bool
+   skip_overload_p (enum predication_index pred, enum mode_suffix_index mode) const override
+   {
+     switch (mode)
+       {
+       case MODE_none:
+ 	return false;
+ 
+ 	/* For MODE_n, share the overloaded instance with MODE_none, except for PRED_m.  */
+       case MODE_n:
+ 	return pred != PRED_m;
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+   }
+ 
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,v0,vs0", group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,ss32", group, MODE_n, preserve_user_namespace, false, preds_m_or_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (0)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.finish_opt_n_resolution (i, 0, type, TYPE_signed);
+   }
+ };
+ SHAPE (binary_round_lshift)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t, <T0>_t)
+    <T0>_t vfoo_n[_t0](<T0>_t, const int)
+ 
+    i.e. the standard shape for left shift operations that operate on
+    vector types.
+ 
+    For the MODE_n versions, check that 'imm' is in the [0..#bits-1] range.
+ 
+    Example: vshlq.
+    int8x16_t [__arm_]vshlq[_s8](int8x16_t a, int8x16_t b)
+    int8x16_t [__arm_]vshlq_m[_s8](int8x16_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p)
+    int8x16_t [__arm_]vshlq_x[_s8](int8x16_t a, int8x16_t b, mve_pred16_t p)
+    int8x16_t [__arm_]vshlq_n[_s8](int8x16_t a, const int imm)
+    int8x16_t [__arm_]vshlq_m_n[_s8](int8x16_t inactive, int8x16_t a, const int imm, mve_pred16_t p)
+    int8x16_t [__arm_]vshlq_x_n[_s8](int8x16_t a, const int imm, mve_pred16_t p)  */
+ struct binary_lshift_def : public overloaded_base<0>
+ {
+   bool
+   explicit_mode_suffix_p (enum predication_index, enum mode_suffix_index) const override
+   {
+     return true;
+   }
+ 
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,v0,vs0", group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,ss32", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (0)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.finish_opt_n_resolution (i, 0, type, TYPE_signed);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     if (c.mode_suffix_id != MODE_n)
+       return true;
+ 
+     unsigned int bits = c.type_suffix (0).element_bits;
+     return c.require_immediate_range (1, 0, bits - 1);
+   }
+ };
+ SHAPE (binary_lshift)
+ 
+ /* Used with the above form, but only for the MODE_r case which does
+    not always support the same set of predicates as MODE_none and
+    MODE_n.  For vqshlq they are the same, but for vshlq they are not.
+ 
+    <T0>_t vfoo_r[_t0](<T0>_t, int32_t)
+ 
+    i.e. the standard shape for shift operations that operate on
+    vector types.
+    Example: vshlq.
+    int8x16_t [__arm_]vshlq_r[_s8](int8x16_t a, int32_t b)
+    int8x16_t [__arm_]vshlq_m_r[_s8](int8x16_t a, int32_t b, mve_pred16_t p)  */
+ struct binary_lshift_r_def : public overloaded_base<0>
+ {
+   bool
+   explicit_mode_suffix_p (enum predication_index, enum mode_suffix_index) const override
+   {
+     return true;
+   }
+ 
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_r, preserve_user_namespace);
+     build_all (b, "v0,v0,ss32", group, MODE_r, preserve_user_namespace, false, preds_m_or_none);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (0)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.finish_opt_n_resolution (i, 0, type, TYPE_signed);
+   }
+ };
+ SHAPE (binary_lshift_r)
+ 
+ /* <T0:half>_t vfoo[_n_t0](<T0:half>_t, <T0>_t, const int)
+ 
+    Narrowing right shifts.
+    Check that 'imm' is in the [1..#bits/2] range.
+ 
+    Example: vqrshrnbq.
+    int8x16_t [__arm_]vqrshrnbq[_n_s16](int8x16_t a, int16x8_t b, const int imm)
+    int8x16_t [__arm_]vqrshrnbq_m[_n_s16](int8x16_t a, int16x8_t b, const int imm, mve_pred16_t p)  */
+ struct binary_rshift_narrow_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "vh0,vh0,v0,ss32", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (3, i, nargs)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES
+ 	|| !r.require_integer_immediate (i))
+       return error_mark_node;
+ 
+     type_suffix_index narrow_suffix
+       = find_type_suffix (type_suffixes[type].tclass,
+ 			  type_suffixes[type].element_bits / 2);
+ 
+     if (!r.require_matching_vector_type (0, narrow_suffix))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     unsigned int bits = c.type_suffix (0).element_bits;
+     return c.require_immediate_range (2, 1, bits / 2);
+   }
+ };
+ SHAPE (binary_rshift_narrow)
+ 
+ /* <uT0:half>_t vfoo[_n_t0](<uT0:half>_t, <T0>_t, const int)
+ 
+    Vector saturating rounding shift right and narrow.
+    Check that 'imm' is in the [1..#bits/2] range.
+ 
+    Example: vqshrunbq.
+    uint8x16_t [__arm_]vqshrunbq[_n_s16](uint8x16_t a, int16x8_t b, const int imm)
+    uint8x16_t [__arm_]vqshrunbq_m[_n_s16](uint8x16_t a, int16x8_t b, const int imm, mve_pred16_t p)  */
+ struct binary_rshift_narrow_unsigned_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "vhu0,vhu0,v0,ss32", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (3, i, nargs)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES
+ 	|| !r.require_integer_immediate (i))
+       return error_mark_node;
+ 
+     type_suffix_index narrow_suffix
+       = find_type_suffix (TYPE_unsigned,
+ 			  type_suffixes[type].element_bits / 2);
+ 
+     if (!r.require_matching_vector_type (0, narrow_suffix))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     unsigned int bits = c.type_suffix (0).element_bits;
+     return c.require_immediate_range (2, 1, bits / 2);
+   }
+ 
+ };
+ SHAPE (binary_rshift_narrow_unsigned)
+ 
+ /* <T0:twice>_t vfoo[_t0](<T0>_t, <T0>_t)
+ 
+    Example: vmullbq.
+    int32x4_t [__arm_]vmullbq_int[_s16](int16x8_t a, int16x8_t b)
+    int32x4_t [__arm_]vmullbq_int_m[_s16](int32x4_t inactive, int16x8_t a, int16x8_t b, mve_pred16_t p)
+    int32x4_t [__arm_]vmullbq_int_x[_s16](int16x8_t a, int16x8_t b, mve_pred16_t p)  */
+ struct binary_widen_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "vw0,v0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (i - 1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     type_suffix_index wide_suffix
+       = find_type_suffix (type_suffixes[type].tclass,
+ 			  type_suffixes[type].element_bits * 2);
+ 
+     if (!r.require_matching_vector_type (i, type))
+       return error_mark_node;
+ 
+     /* Check the inactive argument has the wide type.  */
+     if ((r.pred == PRED_m)
+ 	&& (r.infer_vector_type (0) != wide_suffix))
+       return r.report_no_such_form (type);
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_widen)
+ 
+ /* <T0:twice>_t vfoo[_t0](<T0>_t, <T0>_t)
+ 
+    Example: vmullbq_poly.
+    uint32x4_t [__arm_]vmullbq_poly[_p16](uint16x8_t a, uint16x8_t b)
+    uint32x4_t [__arm_]vmullbq_poly_m[_p16](uint32x4_t inactive, uint16x8_t a, uint16x8_t b, mve_pred16_t p)
+    uint32x4_t [__arm_]vmullbq_poly_x[_p16](uint16x8_t a, uint16x8_t b, mve_pred16_t p)  */
+ struct binary_widen_poly_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "vU0,vp0,vp0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (i - 1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     /* infer_vector_type found the 'unsigned' version of the 'poly'
+        type we are looking for, so find the 'poly' type with the same
+        width.  */
+     type = find_type_suffix (TYPE_poly, type_suffixes[type].element_bits);
+ 
+     type_suffix_index wide_suffix
+       = find_type_suffix (TYPE_unsigned,
+ 			  type_suffixes[type].element_bits * 2);
+ 
+     /* Require the 'poly' type, require_matching_vector_type would try
+        and fail with the 'unsigned' one.  */
+     if (!r.require_vector_type (i, type_suffixes[type].vector_type))
+       return error_mark_node;
+ 
+     /* Check the inactive argument has the wide type.  */
+     if ((r.pred == PRED_m)
+ 	&& (r.infer_vector_type (0) != wide_suffix))
+       return r.report_no_such_form (type);
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (binary_widen_poly)
+ 
+ /* <T0:twice>_t vfoo[_n_t0](<T0>_t, const int)
+ 
+    Check that 'imm' is in the [1..#bits] range.
+ 
+    Example: vshllbq.
+    int16x8_t [__arm_]vshllbq[_n_s8](int8x16_t a, const int imm)
+    int16x8_t [__arm_]vshllbq_m[_n_s8](int16x8_t inactive, int8x16_t a, const int imm, mve_pred16_t p)
+    int16x8_t [__arm_]vshllbq_x[_n_s8](int8x16_t a, const int imm, mve_pred16_t p)  */
+ struct binary_widen_n_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "vw0,v0,s0", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     tree res;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (i - 1)) == NUM_TYPE_SUFFIXES
+ 	|| !r.require_integer_immediate (i))
+       return error_mark_node;
+ 
+     type_suffix_index wide_suffix
+       = find_type_suffix (type_suffixes[type].tclass,
+ 			  type_suffixes[type].element_bits * 2);
+ 
+     /* Check the inactive argument has the wide type.  */
+     if (((r.pred == PRED_m) && (r.infer_vector_type (0) == wide_suffix))
+ 	|| r.pred == PRED_none
+ 	|| r.pred == PRED_x)
+       if ((res = r.lookup_form (r.mode_suffix_id, type)))
+ 	return res;
+ 
+     return r.report_no_such_form (type);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     unsigned int bits = c.type_suffix (0).element_bits;
+     return c.require_immediate_range (1, 1, bits);
+   }
+ 
+ };
+ SHAPE (binary_widen_n)
+ 
+ /* <T0:twice>_t vfoo[_t0](<T0>_t, <T0>_t)
+    <T0:twice>_t vfoo[_n_t0](<T0>_t, <S0>_t)
+ 
+    Example: vqdmullbq.
+    int32x4_t [__arm_]vqdmulltq[_n_s16](int16x8_t a, int16_t b)
+    int32x4_t [__arm_]vqdmulltq_m[_n_s16](int32x4_t inactive, int16x8_t a, int16_t b, mve_pred16_t p)
+    int32x4_t [__arm_]vqdmulltq[_s16](int16x8_t a, int16x8_t b)
+    int32x4_t [__arm_]vqdmulltq_m[_s16](int32x4_t inactive, int16x8_t a, int16x8_t b, mve_pred16_t p)  */
+ struct binary_widen_opt_n_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "vw0,v0,v0", group, MODE_none, preserve_user_namespace);
+     build_all (b, "vw0,v0,s0", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| (type = r.infer_vector_type (i - 1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     type_suffix_index wide_suffix
+       = find_type_suffix (type_suffixes[type].tclass,
+ 			  type_suffixes[type].element_bits * 2);
+ 
+     /* Skip last argument, may be scalar, will be checked below by
+        finish_opt_n_resolution.  */
+     unsigned int last_arg = i--;
+     for (; i > 0; i--)
+       if (!r.require_matching_vector_type (i, type))
+ 	return error_mark_node;
+ 
+     /* Check the inactive argument has the wide type.  */
+     if ((r.pred == PRED_m)
+ 	&& (r.infer_vector_type (0) != wide_suffix))
+       return r.report_no_such_form (type);
+ 
+     return r.finish_opt_n_resolution (last_arg, 0, type);
+   }
+ };
+ SHAPE (binary_widen_opt_n)
+ 
+ /* Shape for comparison operations that operate on
+    uniform types.
+ 
+    Examples: vcmpq.
+    mve_pred16_t [__arm_]vcmpeqq[_s16](int16x8_t a, int16x8_t b)
+    mve_pred16_t [__arm_]vcmpeqq[_n_s16](int16x8_t a, int16_t b)
+    mve_pred16_t [__arm_]vcmpeqq_m[_s16](int16x8_t a, int16x8_t b, mve_pred16_t p)
+    mve_pred16_t [__arm_]vcmpeqq_m[_n_s16](int16x8_t a, int16_t b, mve_pred16_t p)  */
+ struct cmp_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "p,v0,v0", group, MODE_none, preserve_user_namespace);
+     build_all (b, "p,v0,s0", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform_opt_n (2);
+   }
+ };
+ SHAPE (cmp)
+ 
+ /* <T0>xN_t vfoo[_t0](uint64_t, uint64_t)
+ 
+    where there are N arguments in total.
+    Example: vcreateq.
+    int16x8_t [__arm_]vcreateq_s16(uint64_t a, uint64_t b)  */
+ struct create_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     build_all (b, "v0,su64,su64", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (0, 2);
+   }
+ };
+ SHAPE (create)
+ 
+ /* <T0>[xN]_t vfoo_t0().
+ 
+    Example: vuninitializedq.
+    int8x16_t [__arm_]vuninitializedq_s8(void)
+    int8x16_t [__arm_]vuninitializedq(int8x16_t t)  */
+ struct inherent_def : public nonoverloaded_base
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     build_all (b, "t0", group, MODE_none, preserve_user_namespace);
+   }
+ };
+ SHAPE (inherent)
+ 
+ /* sv<t0>_t svfoo[_t0](const <t0>_t *)
+ 
+    Example: vld1q.
+    int8x16_t [__arm_]vld1q[_s8](int8_t const *base)
+    int8x16_t [__arm_]vld1q_z[_s8](int8_t const *base, mve_pred16_t p)  */
+ struct load_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "t0,al", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   /* Resolve a call based purely on a pointer argument.  */
+   tree
+   resolve (function_resolver &r) const override
+   {
+     gcc_assert (r.mode_suffix_id == MODE_none);
+ 
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (1, i, nargs)
+ 	|| (type = r.infer_pointer_type (i)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (load)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t)
+    <T0>_t vfoo_n_t0(<sT0>_t)
+ 
+    For MODE_n, define only the 16 and 32 bits versions.
+ 
+    Example: vmvnq.
+    int16x8_t [__arm_]vmvnq[_s16](int16x8_t a)
+    int16x8_t [__arm_]vmvnq_m[_s16](int16x8_t inactive, int16x8_t a, mve_pred16_t p)
+    int16x8_t [__arm_]vmvnq_x[_s16](int16x8_t a, mve_pred16_t p)
+    int16x8_t [__arm_]vmvnq_n_s16(const int16_t imm)
+    int16x8_t [__arm_]vmvnq_m[_n_s16](int16x8_t inactive, const int16_t imm, mve_pred16_t p)
+    int16x8_t [__arm_]vmvnq_x_n_s16(const int16_t imm, mve_pred16_t p)  */
+ struct mvn_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     /* Do not build a separate instance for MODE_n, since we want to
+        share vmvnq_m[_n_s16] with vmvnq_m[_s16].  */
+     build_all (b, "v0,v0", group, MODE_none, preserve_user_namespace);
+     build_16_32 (b, "v0,s0", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (1, i, nargs)
+ 	/* Same type for arg 0 and 1 if _m, so using 0 is OK */
+ 	|| (type = r.infer_vector_type (0)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+   /* Skip last argument, may be scalar.  */
+     unsigned int last_arg = i;
+     for (i = 0; i < last_arg; i++)
+       if (!r.require_matching_vector_type (i, type))
+ 	return error_mark_node;
+ 
+     if (last_arg == 0)
+       return r.resolve_to (r.mode_suffix_id, type);
+ 
+     return r.finish_opt_n_resolution (last_arg, 0, type);
+   }
+ };
+ SHAPE (mvn)
+ 
+ /* void vfoo[_t0](<X>_t *, v<t0>[xN]_t)
+ 
+    where <X> might be tied to <t0> (for non-truncating stores) or might
+    depend on the function base name (for truncating stores).
+ 
+    Example: vst1q.
+    void [__arm_]vst1q[_s8](int8_t *base, int8x16_t value)
+    void [__arm_]vst1q_p[_s8](int8_t *base, int8x16_t value, mve_pred16_t p)  */
+ struct store_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "_,as,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     gcc_assert (r.mode_suffix_id == MODE_none);
+ 
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| !r.require_pointer_type (0)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (store)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t, <T0>_t, <T0>_t)
+ 
+    i.e. the standard shape for ternary operations that operate on
+    uniform types.
+ 
+    Example: vqrdmlsdhxq.
+    int8x16_t [__arm_]vqrdmlsdhxq[_s8](int8x16_t inactive, int8x16_t a, int8x16_t b)
+    int8x16_t [__arm_]vqrdmlsdhxq_m[_s8](int8x16_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p)  */
+ struct ternary_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,v0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform_opt_n (3);
+   }
+ };
+ SHAPE (ternary)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t, <T0>_t, const int)
+ 
+    i.e. ternary operations that operate on a pair of vectors of the
+    same type as the destination, and take a third integer argument.
+ 
+    Check that 'imm' is in the [0..#bits-1] range.
+ 
+    Example: vsliq.
+    int16x8_t [__arm_]vsliq[_n_s16](int16x8_t a, int16x8_t b, const int imm)
+    int16x8_t [__arm_]vsliq_m[_n_s16](int16x8_t a, int16x8_t b, const int imm, mve_pred16_t p)  */
+ struct ternary_lshift_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,v0,v0,ss32", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (2, 1);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     if (c.mode_suffix_id != MODE_n)
+       return true;
+ 
+     unsigned int bits = c.type_suffix (0).element_bits;
+     return c.require_immediate_range (2, 0, bits - 1);
+   }
+ };
+ SHAPE (ternary_lshift)
+ 
+ /* <T0>_t vfoo[_n_t0](<T0>_t, <T0>_t, <S0>_t)
+ 
+    i.e. the standard shape for ternary operations that operate on a
+    pair of vectors of the same type as the destination, and take a
+    third scalar argument of the same type as the vector elements.
+ 
+    Example: vmlaq.
+    int8x16_t [__arm_]vmlaq[_n_s8](int8x16_t add, int8x16_t m1, int8_t m2)
+    int8x16_t [__arm_]vmlaq_m[_n_s8](int8x16_t add, int8x16_t m1, int8_t m2, mve_pred16_t p)  */
+ struct ternary_n_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,v0,v0,s0", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (2, 1);
+   }
+ };
+ SHAPE (ternary_n)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t, <T0>_t, <T0>_t)
+    <T0>_t vfoo[_n_t0](<T0>_t, <T0>_t, <S0>_t)
+ 
+    i.e. the standard shape for ternary operations that operate on
+    uniform types.
+ 
+    Example: vfmaq.
+    float16x8_t [__arm_]vfmaq[_n_f16](float16x8_t add, float16x8_t m1, float16_t m2)
+    float16x8_t [__arm_]vfmaq_m[_n_f16](float16x8_t add, float16x8_t m1, float16_t m2, mve_pred16_t p)
+    float16x8_t [__arm_]vfmaq[_f16](float16x8_t add, float16x8_t m1, float16x8_t m2)
+    float16x8_t [__arm_]vfmaq_m[_f16](float16x8_t add, float16x8_t m1, float16x8_t m2, mve_pred16_t p)  */
+ struct ternary_opt_n_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,v0,v0", group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,v0,s0", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform_opt_n (3);
+   }
+ };
+ SHAPE (ternary_opt_n)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t, <T0>_t, const int)
+ 
+    i.e. ternary operations that operate on a pair of vectors of the
+    same type as the destination, and take a third integer argument.
+ 
+    Check that 'imm' is in the [1..#bits] range.
+ 
+    Example: vsriq.
+    int8x16_t [__arm_]vsriq[_n_s8](int8x16_t a, int8x16_t b, const int imm)
+    int8x16_t [__arm_]vsriq_m[_n_s8](int8x16_t a, int8x16_t b, const int imm, mve_pred16_t p)  */
+ struct ternary_rshift_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,v0,v0,ss32", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (2, 1);
+   }
+ 
+   bool
+   check (function_checker &c) const override
+   {
+     if (c.mode_suffix_id != MODE_n)
+       return true;
+ 
+     unsigned int bits = c.type_suffix (0).element_bits;
+     return c.require_immediate_range (2, 1, bits);
+   }
+ };
+ SHAPE (ternary_rshift)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t)
+ 
+    i.e. the standard shape for unary operations that operate on
+    uniform types.
+ 
+    Example: vabsq.
+    int8x16_t [__arm_]vabsq[_s8](int8x16_t a)
+    int8x16_t [__arm_]vabsq_m[_s8](int8x16_t inactive, int8x16_t a, mve_pred16_t p)
+    int8x16_t [__arm_]vabsq_x[_s8](int8x16_t a, mve_pred16_t p)  */
+ struct unary_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_unary ();
+   }
+ };
+ SHAPE (unary)
+ 
+ /* <S0:twice>_t vfoo[_<t0>](<T0>_t)
+ 
+    i.e. a version of "unary" in which the source elements are half the
+    size of the destination scalar, but have the same type class.
+ 
+    Example: vaddlvq.
+    int64_t [__arm_]vaddlvq[_s32](int32x4_t a)
+    int64_t [__arm_]vaddlvq_p[_s32](int32x4_t a, mve_pred16_t p) */
+ struct unary_acc_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "sw0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     /* FIXME: check that the return value is actually
+        twice as wide as arg 0.  */
+     return r.resolve_unary ();
+   }
+ };
+ SHAPE (unary_acc)
+ 
+ /* <T0>_t foo_t0[_t1](<T1>_t)
+ 
+    where the target type <t0> must be specified explicitly but the source
+    type <t1> can be inferred.
+ 
+    Example: vreinterpretq.
+    int16x8_t [__arm_]vreinterpretq_s16[_s8](int8x16_t a)
+    int32x4_t [__arm_]vreinterpretq_s32[_s8](int8x16_t a)
+    int8x16_t [__arm_]vreinterpretq_s8[_s16](int16x8_t a)
+    int8x16_t [__arm_]vreinterpretq_s8[_s32](int32x4_t a)  */
+ struct unary_convert_def : public overloaded_base<1>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v1", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_unary ();
+   }
+ };
+ SHAPE (unary_convert)
+ 
+ /* [u]int32_t vfoo[_<t0>](<T0>_t)
+ 
+    i.e. a version of "unary" which generates a scalar of type int32_t
+    or uint32_t depending on the signedness of the elements of of input
+    vector.
+ 
+    Example: vaddvq
+    int32_t [__arm_]vaddvq[_s16](int16x8_t a)
+    int32_t [__arm_]vaddvq_p[_s16](int16x8_t a, mve_pred16_t p)  */
+ struct unary_int32_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "sx32,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_uniform (1);
+   }
+ };
+ SHAPE (unary_int32)
+ 
+ /* [u]int32_t vfoo[_<t0>]([u]int32_t, <T0>_t)
+ 
+    i.e. a version of "unary" which accumulates into scalar of type
+    int32_t or uint32_t depending on the signedness of the elements of
+    of input vector.
+ 
+    Example: vaddvaq.
+    int32_t [__arm_]vaddvaq[_s16](int32_t a, int16x8_t b)
+    int32_t [__arm_]vaddvaq_p[_s16](int32_t a, int16x8_t b, mve_pred16_t p)  */
+ struct unary_int32_acc_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "sx32,sx32,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| !r.require_integer_immediate (0)
+ 	|| (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (unary_int32_acc)
+ 
+ /* <T0>_t vfoo[_n]_t0(<S0>_t)
+ 
+    Example: vdupq.
+    int16x8_t [__arm_]vdupq_n_s16(int16_t a)
+    int16x8_t [__arm_]vdupq_m[_n_s16](int16x8_t inactive, int16_t a, mve_pred16_t p)
+    int16x8_t [__arm_]vdupq_x_n_s16(int16_t a, mve_pred16_t p)  */
+ struct unary_n_def : public overloaded_base<0>
+ {
+   bool
+   explicit_type_suffix_p (unsigned int, enum predication_index pred,
+ 			  enum mode_suffix_index) const override
+   {
+     return pred != PRED_m;
+   }
+ 
+   bool
+   explicit_mode_suffix_p (enum predication_index pred,
+ 			  enum mode_suffix_index mode) const override
+   {
+     return ((mode == MODE_n)
+ 	    && (pred != PRED_m));
+   }
+ 
+   bool
+   skip_overload_p (enum predication_index pred, enum mode_suffix_index mode)
+     const override
+   {
+     switch (mode)
+       {
+       case MODE_n:
+ 	return pred != PRED_m;
+ 
+       default:
+ 	gcc_unreachable ();
+       }
+   }
+ 
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_n, preserve_user_namespace);
+     build_all (b, "v0,s0", group, MODE_n, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     return r.resolve_unary_n ();
+   }
+ };
+ SHAPE (unary_n)
+ 
+ /* <T0:twice>_t vfoo[_t0](<T0>_t)
+ 
+    i.e. a version of "unary" in which the source elements are half the
+    size of the destination, but have the same type class.
+ 
+    Example: vmovlbq.
+    int32x4_t [__arm_]vmovlbq[_s16](int16x8_t a)
+    int32x4_t [__arm_]vmovlbq_m[_s16](int32x4_t inactive, int16x8_t a, mve_pred16_t p)
+    int32x4_t [__arm_]vmovlbq_x[_s16](int16x8_t a, mve_pred16_t p)  */
+ struct unary_widen_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "vw0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     tree res;
+     if (!r.check_gp_argument (1, i, nargs)
+ 	|| (type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     type_suffix_index wide_suffix
+       = find_type_suffix (type_suffixes[type].tclass,
+ 			  type_suffixes[type].element_bits * 2);
+ 
+     /* Check the inactive argument has the wide type.  */
+     if ((r.pred == PRED_m)
+ 	&& (r.infer_vector_type (0) != wide_suffix))
+     return r.report_no_such_form (type);
+ 
+     if ((res = r.lookup_form (r.mode_suffix_id, type)))
+ 	return res;
+ 
+     return r.report_no_such_form (type);
+   }
+ };
+ SHAPE (unary_widen)
+ 
+ /* <S0:twice>_t vfoo[_<t0>](<S0:twice>_t, <T0>_t)
+ 
+    i.e. a version of "unary" in which the source elements are half the
+    size of the destination scalar and accumulator, but have the same
+    type class.
+ 
+    Example: vaddlvaq.
+    int64_t [__arm_]vaddlvaq[_s32](int64_t a, int32x4_t b)
+    int64_t [__arm_]vaddlvaq_p[_s32](int64_t a, int32x4_t b, mve_pred16_t p)  */
+ struct unary_widen_acc_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "sw0,sw0,v0", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (2, i, nargs)
+ 	|| !r.require_derived_scalar_type (0, r.SAME_TYPE_CLASS)
+ 	|| (type = r.infer_vector_type (i)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (unary_widen_acc)
+ 
+ /* <T0>_t vfoo[_t0](<T0>_t, <T0>_t, mve_pred16_t)
+ 
+    i.e. a version of the standard ternary shape in which
+    the final argument is always a set of predicates.
+ 
+    Example: vpselq.
+    int16x8_t [__arm_]vpselq[_s16](int16x8_t a, int16x8_t b, mve_pred16_t p)  */
+ struct vpsel_def : public overloaded_base<0>
+ {
+   void
+   build (function_builder &b, const function_group_info &group,
+ 	 bool preserve_user_namespace) const override
+   {
+     b.add_overloaded_functions (group, MODE_none, preserve_user_namespace);
+     build_all (b, "v0,v0,v0,p", group, MODE_none, preserve_user_namespace);
+   }
+ 
+   tree
+   resolve (function_resolver &r) const override
+   {
+     unsigned int i, nargs;
+     type_suffix_index type;
+     if (!r.check_gp_argument (3, i, nargs)
+ 	|| (type = r.infer_vector_type (0)) == NUM_TYPE_SUFFIXES)
+       return error_mark_node;
+ 
+     unsigned int last_arg = i;
+     for (i = 0; i < last_arg; i++)
+       if (!r.require_matching_vector_type (i, type))
+ 	return error_mark_node;
+ 
+     if (!r.require_vector_type (2 , VECTOR_TYPE_mve_pred16_t))
+       return error_mark_node;
+ 
+     return r.resolve_to (r.mode_suffix_id, type);
+   }
+ };
+ SHAPE (vpsel)
+ 
+ } /* end namespace arm_mve */
+ 
+ #undef SHAPE
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins-shapes.h gcc-14.1.0/gcc/config/arm/arm-mve-builtins-shapes.h
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins-shapes.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins-shapes.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,85 ----
+ /* ACLE support for Arm MVE (function shapes)
+    Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_ARM_MVE_BUILTINS_SHAPES_H
+ #define GCC_ARM_MVE_BUILTINS_SHAPES_H
+ 
+ namespace arm_mve
+ {
+   /* The naming convention is:
+ 
+      - to use names like "unary" etc. if the rules are somewhat generic,
+        especially if there are no ranges involved.
+ 
+      Also:
+ 
+      - "inherent" means that the function takes no arguments.  */
+ 
+   namespace shapes
+   {
+ 
+     extern const function_shape *const binary;
+     extern const function_shape *const binary_acc_int32;
+     extern const function_shape *const binary_acc_int64;
+     extern const function_shape *const binary_acca_int32;
+     extern const function_shape *const binary_acca_int64;
+     extern const function_shape *const binary_imm32;
+     extern const function_shape *const binary_lshift;
+     extern const function_shape *const binary_lshift_r;
+     extern const function_shape *const binary_lshift_unsigned;
+     extern const function_shape *const binary_maxamina;
+     extern const function_shape *const binary_maxavminav;
+     extern const function_shape *const binary_maxvminv;
+     extern const function_shape *const binary_move_narrow;
+     extern const function_shape *const binary_move_narrow_unsigned;
+     extern const function_shape *const binary_opt_n;
+     extern const function_shape *const binary_orrq;
+     extern const function_shape *const binary_round_lshift;
+     extern const function_shape *const binary_rshift;
+     extern const function_shape *const binary_rshift_narrow;
+     extern const function_shape *const binary_rshift_narrow_unsigned;
+     extern const function_shape *const binary_widen;
+     extern const function_shape *const binary_widen_n;
+     extern const function_shape *const binary_widen_opt_n;
+     extern const function_shape *const binary_widen_poly;
+     extern const function_shape *const cmp;
+     extern const function_shape *const create;
+     extern const function_shape *const inherent;
+     extern const function_shape *const load;
+     extern const function_shape *const mvn;
+     extern const function_shape *const store;
+     extern const function_shape *const ternary;
+     extern const function_shape *const ternary_lshift;
+     extern const function_shape *const ternary_n;
+     extern const function_shape *const ternary_opt_n;
+     extern const function_shape *const ternary_rshift;
+     extern const function_shape *const unary;
+     extern const function_shape *const unary_acc;
+     extern const function_shape *const unary_convert;
+     extern const function_shape *const unary_int32;
+     extern const function_shape *const unary_int32_acc;
+     extern const function_shape *const unary_n;
+     extern const function_shape *const unary_widen;
+     extern const function_shape *const unary_widen_acc;
+     extern const function_shape *const vpsel;
+ 
+   } /* end namespace arm_mve::shapes */
+ } /* end namespace arm_mve */
+ 
+ #endif
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins.cc gcc-14.1.0/gcc/config/arm/arm-mve-builtins.cc
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for Arm MVE
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for Arm MVE
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 24,30 ****
--- 24,43 ----
  #include "coretypes.h"
  #include "tm.h"
  #include "tree.h"
+ #include "rtl.h"
+ #include "tm_p.h"
+ #include "memmodel.h"
+ #include "insn-codes.h"
+ #include "optabs.h"
+ #include "recog.h"
+ #include "expr.h"
+ #include "basic-block.h"
+ #include "function.h"
  #include "fold-const.h"
+ #include "gimple.h"
+ #include "gimple-iterator.h"
+ #include "explow.h"
+ #include "emit-rtl.h"
  #include "langhooks.h"
  #include "stringpool.h"
  #include "attribs.h"
***************
*** 32,37 ****
--- 45,52 ----
  #include "arm-protos.h"
  #include "arm-builtins.h"
  #include "arm-mve-builtins.h"
+ #include "arm-mve-builtins-base.h"
+ #include "arm-mve-builtins-shapes.h"
  
  namespace arm_mve {
  
*************** struct vector_type_info
*** 46,51 ****
--- 61,93 ----
    const bool requires_float;
  };
  
+ /* Describes a function decl.  */
+ class GTY(()) registered_function
+ {
+ public:
+   /* The ACLE function that the decl represents.  */
+   function_instance instance GTY ((skip));
+ 
+   /* The decl itself.  */
+   tree decl;
+ 
+   /* Whether the function requires a floating point abi.  */
+   bool requires_float;
+ 
+   /* True if the decl represents an overloaded function that needs to be
+      resolved by function_resolver.  */
+   bool overloaded_p;
+ };
+ 
+ /* Hash traits for registered_function.  */
+ struct registered_function_hasher : nofree_ptr_hash <registered_function>
+ {
+   typedef function_instance compare_type;
+ 
+   static hashval_t hash (value_type);
+   static bool equal (value_type, const compare_type &);
+ };
+ 
  /* Flag indicating whether the arm MVE types have been handled.  */
  static bool handle_arm_mve_types_p;
  
*************** static CONSTEXPR const vector_type_info
*** 54,64 ****
  #define DEF_MVE_TYPE(ACLE_NAME, SCALAR_TYPE) \
    { #ACLE_NAME, REQUIRES_FLOAT },
  #include "arm-mve-builtins.def"
! #undef DEF_MVE_TYPE
  };
  
  /* The scalar type associated with each vector type.  */
! GTY(()) tree scalar_types[NUM_VECTOR_TYPES];
  
  /* The single-predicate and single-vector types, with their built-in
     "__simd128_..._t" name.  Allow an index of NUM_VECTOR_TYPES, which always
--- 96,324 ----
  #define DEF_MVE_TYPE(ACLE_NAME, SCALAR_TYPE) \
    { #ACLE_NAME, REQUIRES_FLOAT },
  #include "arm-mve-builtins.def"
! };
! 
! /* The function name suffix associated with each predication type.  */
! static const char *const pred_suffixes[NUM_PREDS + 1] = {
!   "",
!   "_m",
!   "_p",
!   "_x",
!   "_z",
!   ""
! };
! 
! /* Static information about each mode_suffix_index.  */
! CONSTEXPR const mode_suffix_info mode_suffixes[] = {
! #define VECTOR_TYPE_none NUM_VECTOR_TYPES
! #define DEF_MVE_MODE(NAME, BASE, DISPLACEMENT, UNITS) \
!   { "_" #NAME, VECTOR_TYPE_##BASE, VECTOR_TYPE_##DISPLACEMENT, UNITS_##UNITS },
! #include "arm-mve-builtins.def"
! #undef VECTOR_TYPE_none
!   { "", NUM_VECTOR_TYPES, NUM_VECTOR_TYPES, UNITS_none }
! };
! 
! /* Static information about each type_suffix_index.  */
! CONSTEXPR const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = {
! #define DEF_MVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE)	\
!   { "_" #NAME, \
!     VECTOR_TYPE_##ACLE_TYPE, \
!     TYPE_##CLASS, \
!     BITS, \
!     BITS / BITS_PER_UNIT, \
!     TYPE_##CLASS == TYPE_signed || TYPE_##CLASS == TYPE_unsigned, \
!     TYPE_##CLASS == TYPE_unsigned, \
!     TYPE_##CLASS == TYPE_float, \
!     TYPE_##CLASS == TYPE_poly, \
!     0, \
!     MODE },
! #include "arm-mve-builtins.def"
!   { "", NUM_VECTOR_TYPES, TYPE_bool, 0, 0, false, false, false, false,
!     0, VOIDmode }
! };
! 
! /* Define a TYPES_<combination> macro for each combination of type
!    suffixes that an ACLE function can have, where <combination> is the
!    name used in DEF_MVE_FUNCTION entries.
! 
!    Use S (T) for single type suffix T and D (T1, T2) for a pair of type
!    suffixes T1 and T2.  Use commas to separate the suffixes.
! 
!    Although the order shouldn't matter, the convention is to sort the
!    suffixes lexicographically after dividing suffixes into a type
!    class ("b", "f", etc.) and a numerical bit count.  */
! 
! /* _f16.  */
! #define TYPES_float16(S, D) \
!   S (f16)
! 
! /* _f16 _f32.  */
! #define TYPES_all_float(S, D) \
!   S (f16), S (f32)
! 
! /* _s8  _u8 .  */
! #define TYPES_integer_8(S, D) \
!   S (s8), S (u8)
! 
! /* _s8 _s16
!    _u8 _u16.  */
! #define TYPES_integer_8_16(S, D) \
!   S (s8), S (s16), S (u8), S(u16)
! 
! /* _s16 _s32
!    _u16 _u32.  */
! #define TYPES_integer_16_32(S, D)     \
!   S (s16), S (s32),		      \
!   S (u16), S (u32)
! 
! /* _s16 _s32.  */
! #define TYPES_signed_16_32(S, D) \
!   S (s16), S (s32)
! 
! /* _s8 _s16 _s32.  */
! #define TYPES_all_signed(S, D) \
!   S (s8), S (s16), S (s32)
! 
! /* _p8 _p16.  */
! #define TYPES_poly_8_16(S, D) \
!   S (p8), S (p16)
! 
! /* _u8 _u16 _u32.  */
! #define TYPES_all_unsigned(S, D) \
!   S (u8), S (u16), S (u32)
! 
! /* _s8 _s16 _s32
!    _u8 _u16 _u32.  */
! #define TYPES_all_integer(S, D) \
!   TYPES_all_signed (S, D), TYPES_all_unsigned (S, D)
! 
! /* _s8 _s16 _s32 _s64
!    _u8 _u16 _u32 _u64.  */
! #define TYPES_all_integer_with_64(S, D) \
!   TYPES_all_signed (S, D), S (s64), TYPES_all_unsigned (S, D), S (u64)
! 
! /* s32 _u32.  */
! #define TYPES_integer_32(S, D) \
!   S (s32), S (u32)
! 
! /* s32 .  */
! #define TYPES_signed_32(S, D) \
!   S (s32)
! 
! #define TYPES_reinterpret_signed1(D, A) \
!   D (A, s8), D (A, s16), D (A, s32), D (A, s64)
! 
! #define TYPES_reinterpret_unsigned1(D, A) \
!   D (A, u8), D (A, u16), D (A, u32), D (A, u64)
! 
! #define TYPES_reinterpret_integer(S, D) \
!   TYPES_reinterpret_unsigned1 (D, s8), \
!   D (s8, s16), D (s8, s32), D (s8, s64), \
!   TYPES_reinterpret_unsigned1 (D, s16), \
!   D (s16, s8), D (s16, s32), D (s16, s64), \
!   TYPES_reinterpret_unsigned1 (D, s32), \
!   D (s32, s8), D (s32, s16), D (s32, s64), \
!   TYPES_reinterpret_unsigned1 (D, s64), \
!   D (s64, s8), D (s64, s16), D (s64, s32), \
!   TYPES_reinterpret_signed1 (D, u8), \
!   D (u8, u16), D (u8, u32), D (u8, u64), \
!   TYPES_reinterpret_signed1 (D, u16), \
!   D (u16, u8), D (u16, u32), D (u16, u64), \
!   TYPES_reinterpret_signed1 (D, u32), \
!   D (u32, u8), D (u32, u16), D (u32, u64), \
!   TYPES_reinterpret_signed1 (D, u64), \
!   D (u64, u8), D (u64, u16), D (u64, u32)
! 
! /* { _s8  _s16 _s32 _s64 } x { _s8  _s16 _s32 _s64 }
!    { _u8  _u16 _u32 _u64 }   { _u8  _u16 _u32 _u64 }.  */
! #define TYPES_reinterpret_integer1(D, A) \
!   TYPES_reinterpret_signed1 (D, A), \
!   TYPES_reinterpret_unsigned1 (D, A)
! 
! #define TYPES_reinterpret_float1(D, A) \
!   D (A, f16), D (A, f32)
! 
! #define TYPES_reinterpret_float(S, D) \
!   TYPES_reinterpret_float1 (D, s8), \
!   TYPES_reinterpret_float1 (D, s16), \
!   TYPES_reinterpret_float1 (D, s32), \
!   TYPES_reinterpret_float1 (D, s64), \
!   TYPES_reinterpret_float1 (D, u8), \
!   TYPES_reinterpret_float1 (D, u16), \
!   TYPES_reinterpret_float1 (D, u32), \
!   TYPES_reinterpret_float1 (D, u64), \
!   TYPES_reinterpret_integer1 (D, f16), \
!   TYPES_reinterpret_integer1 (D, f32), \
!   D (f16, f32), D (f32, f16)
! 
! /* Describe a pair of type suffixes in which only the first is used.  */
! #define DEF_VECTOR_TYPE(X) { TYPE_SUFFIX_ ## X, NUM_TYPE_SUFFIXES }
! 
! /* Describe a pair of type suffixes in which both are used.  */
! #define DEF_DOUBLE_TYPE(X, Y) { TYPE_SUFFIX_ ## X, TYPE_SUFFIX_ ## Y }
! 
! /* Create an array that can be used in arm-mve-builtins.def to
!    select the type suffixes in TYPES_<NAME>.  */
! #define DEF_MVE_TYPES_ARRAY(NAME) \
!   static const type_suffix_pair types_##NAME[] = { \
!     TYPES_##NAME (DEF_VECTOR_TYPE, DEF_DOUBLE_TYPE), \
!     { NUM_TYPE_SUFFIXES, NUM_TYPE_SUFFIXES } \
!   }
! 
! /* For functions that don't take any type suffixes.  */
! static const type_suffix_pair types_none[] = {
!   { NUM_TYPE_SUFFIXES, NUM_TYPE_SUFFIXES },
!   { NUM_TYPE_SUFFIXES, NUM_TYPE_SUFFIXES }
! };
! 
! DEF_MVE_TYPES_ARRAY (all_integer);
! DEF_MVE_TYPES_ARRAY (all_integer_with_64);
! DEF_MVE_TYPES_ARRAY (float16);
! DEF_MVE_TYPES_ARRAY (all_float);
! DEF_MVE_TYPES_ARRAY (all_signed);
! DEF_MVE_TYPES_ARRAY (all_unsigned);
! DEF_MVE_TYPES_ARRAY (integer_8);
! DEF_MVE_TYPES_ARRAY (integer_8_16);
! DEF_MVE_TYPES_ARRAY (integer_16_32);
! DEF_MVE_TYPES_ARRAY (integer_32);
! DEF_MVE_TYPES_ARRAY (poly_8_16);
! DEF_MVE_TYPES_ARRAY (signed_16_32);
! DEF_MVE_TYPES_ARRAY (signed_32);
! DEF_MVE_TYPES_ARRAY (reinterpret_integer);
! DEF_MVE_TYPES_ARRAY (reinterpret_float);
! 
! /* Used by functions that have no governing predicate.  */
! static const predication_index preds_none[] = { PRED_none, NUM_PREDS };
! 
! /* Used by functions that have the m (merging) predicated form, and in
!    addition have an unpredicated form.  */
! const predication_index preds_m_or_none[] = {
!   PRED_m, PRED_none, NUM_PREDS
! };
! 
! /* Used by functions that have the mx (merging and "don't care"
!    predicated forms, and in addition have an unpredicated form.  */
! static const predication_index preds_mx_or_none[] = {
!   PRED_m, PRED_x, PRED_none, NUM_PREDS
! };
! 
! /* Used by functions that have the p predicated form, in addition to
!    an unpredicated form.  */
! static const predication_index preds_p_or_none[] = {
!   PRED_p, PRED_none, NUM_PREDS
! };
! 
! /* A list of all MVE ACLE functions.  */
! static CONSTEXPR const function_group_info function_groups[] = {
! #define DEF_MVE_FUNCTION(NAME, SHAPE, TYPES, PREDS)			\
!   { #NAME, &functions::NAME, &shapes::SHAPE, types_##TYPES, preds_##PREDS, \
!     REQUIRES_FLOAT },
! #include "arm-mve-builtins.def"
  };
  
  /* The scalar type associated with each vector type.  */
! extern GTY(()) tree scalar_types[NUM_VECTOR_TYPES];
! tree scalar_types[NUM_VECTOR_TYPES];
  
  /* The single-predicate and single-vector types, with their built-in
     "__simd128_..._t" name.  Allow an index of NUM_VECTOR_TYPES, which always
*************** GTY(()) tree scalar_types[NUM_VECTOR_TYP
*** 66,72 ****
  static GTY(()) tree abi_vector_types[NUM_VECTOR_TYPES + 1];
  
  /* Same, but with the arm_mve.h names.  */
! GTY(()) tree acle_vector_types[3][NUM_VECTOR_TYPES + 1];
  
  /* Return the MVE abi type with element of type TYPE.  */
  static tree
--- 326,345 ----
  static GTY(()) tree abi_vector_types[NUM_VECTOR_TYPES + 1];
  
  /* Same, but with the arm_mve.h names.  */
! extern GTY(()) tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
! tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
! 
! /* The list of all registered function decls, indexed by code.  */
! static GTY(()) vec<registered_function *, va_gc> *registered_functions;
! 
! /* All registered function decls, hashed on the function_instance
!    that they implement.  This is used for looking up implementations of
!    overloaded functions.  */
! static hash_table<registered_function_hasher> *function_table;
! 
! /* True if we've already complained about attempts to use functions
!    when the required extension is disabled.  */
! static bool reported_missing_float_p;
  
  /* Return the MVE abi type with element of type TYPE.  */
  static tree
*************** register_builtin_types ()
*** 87,93 ****
  #define DEF_MVE_TYPE(ACLE_NAME, SCALAR_TYPE) \
    scalar_types[VECTOR_TYPE_ ## ACLE_NAME] = SCALAR_TYPE;
  #include "arm-mve-builtins.def"
- #undef DEF_MVE_TYPE
    for (unsigned int i = 0; i < NUM_VECTOR_TYPES; ++i)
      {
        if (vector_types[i].requires_float && !TARGET_HAVE_MVE_FLOAT)
--- 360,365 ----
*************** register_builtin_types ()
*** 113,120 ****
  static void
  register_vector_type (vector_type_index type)
  {
    if (vector_types[type].requires_float && !TARGET_HAVE_MVE_FLOAT)
!     return;
    tree vectype = abi_vector_types[type];
    tree id = get_identifier (vector_types[type].acle_name);
    tree decl = build_decl (input_location, TYPE_DECL, id, vectype);
--- 385,402 ----
  static void
  register_vector_type (vector_type_index type)
  {
+ 
+   /* If the target does not have the mve.fp extension, but the type requires
+      it, then it needs to be assigned a non-dummy type so that functions
+      with those types in their signature can be registered.  This allows for
+      diagnostics about the missing extension, rather than about a missing
+      function definition.  */
    if (vector_types[type].requires_float && !TARGET_HAVE_MVE_FLOAT)
!     {
!       acle_vector_types[0][type] = void_type_node;
!       return;
!     }
! 
    tree vectype = abi_vector_types[type];
    tree id = get_identifier (vector_types[type].acle_name);
    tree decl = build_decl (input_location, TYPE_DECL, id, vectype);
*************** register_vector_type (vector_type_index
*** 133,147 ****
    acle_vector_types[0][type] = vectype;
  }
  
! /* Register tuple type TYPE with NUM_VECTORS arity under its
!    arm_mve_types.h name.  */
  static void
  register_builtin_tuple_types (vector_type_index type)
  {
    const vector_type_info* info = &vector_types[type];
    if (scalar_types[type] == boolean_type_node
        || (info->requires_float && !TARGET_HAVE_MVE_FLOAT))
      return;
    const char *vector_type_name = info->acle_name;
    char buffer[sizeof ("float32x4x2_t")];
    for (unsigned int num_vectors = 2; num_vectors <= 4; num_vectors += 2)
--- 415,440 ----
    acle_vector_types[0][type] = vectype;
  }
  
! /* Register tuple types of element type TYPE under their arm_mve_types.h
!    names.  */
  static void
  register_builtin_tuple_types (vector_type_index type)
  {
    const vector_type_info* info = &vector_types[type];
+ 
+   /* If the target does not have the mve.fp extension, but the type requires
+      it, then it needs to be assigned a non-dummy type so that functions
+      with those types in their signature can be registered.  This allows for
+      diagnostics about the missing extension, rather than about a missing
+      function definition.  */
    if (scalar_types[type] == boolean_type_node
        || (info->requires_float && !TARGET_HAVE_MVE_FLOAT))
+     {
+       for (unsigned int num_vectors = 2; num_vectors <= 4; num_vectors += 2)
+ 	acle_vector_types[num_vectors >> 1][type] = void_type_node;
      return;
+     }
+ 
    const char *vector_type_name = info->acle_name;
    char buffer[sizeof ("float32x4x2_t")];
    for (unsigned int num_vectors = 2; num_vectors <= 4; num_vectors += 2)
*************** handle_arm_mve_types_h ()
*** 189,196 ****
--- 482,2374 ----
      }
  }
  
+ /* Implement #pragma GCC arm "arm_mve.h" <bool>.  */
+ void
+ handle_arm_mve_h (bool preserve_user_namespace)
+ {
+   if (function_table)
+     {
+       error ("duplicate definition of %qs", "arm_mve.h");
+       return;
+     }
+ 
+   /* Define MVE functions.  */
+   function_table = new hash_table<registered_function_hasher> (1023);
+   function_builder builder;
+   for (unsigned int i = 0; i < ARRAY_SIZE (function_groups); ++i)
+     builder.register_function_group (function_groups[i],
+ 				     preserve_user_namespace);
+ }
+ 
+ /* Return the function decl with MVE function subcode CODE, or error_mark_node
+    if no such function exists.  */
+ tree
+ builtin_decl (unsigned int code)
+ {
+   if (code >= vec_safe_length (registered_functions))
+     return error_mark_node;
+   return (*registered_functions)[code]->decl;
+ }
+ 
+ /* Return true if CANDIDATE is equivalent to MODEL_TYPE for overloading
+    purposes.  */
+ static bool
+ matches_type_p (const_tree model_type, const_tree candidate)
+ {
+   if (VECTOR_TYPE_P (model_type))
+     {
+       if (!VECTOR_TYPE_P (candidate)
+ 	  || maybe_ne (TYPE_VECTOR_SUBPARTS (model_type),
+ 		       TYPE_VECTOR_SUBPARTS (candidate))
+ 	  || TYPE_MODE (model_type) != TYPE_MODE (candidate))
+ 	return false;
+ 
+       model_type = TREE_TYPE (model_type);
+       candidate = TREE_TYPE (candidate);
+     }
+   return (candidate != error_mark_node
+ 	  && TYPE_MAIN_VARIANT (model_type) == TYPE_MAIN_VARIANT (candidate));
+ }
+ 
+ /* If TYPE is a valid MVE element type, return the corresponding type
+    suffix, otherwise return NUM_TYPE_SUFFIXES.  */
+ static type_suffix_index
+ find_type_suffix_for_scalar_type (const_tree type)
+ {
+   /* A linear search should be OK here, since the code isn't hot and
+      the number of types is only small.  */
+   for (unsigned int suffix_i = 0; suffix_i < NUM_TYPE_SUFFIXES; ++suffix_i)
+       {
+ 	vector_type_index vector_i = type_suffixes[suffix_i].vector_type;
+ 	if (matches_type_p (scalar_types[vector_i], type))
+ 	  return type_suffix_index (suffix_i);
+       }
+   return NUM_TYPE_SUFFIXES;
+ }
+ 
+ /* Report an error against LOCATION that the user has tried to use
+    a floating point function when the mve.fp extension is disabled.  */
+ static void
+ report_missing_float (location_t location, tree fndecl)
+ {
+   /* Avoid reporting a slew of messages for a single oversight.  */
+   if (reported_missing_float_p)
+     return;
+ 
+   error_at (location, "ACLE function %qD requires ISA extension %qs",
+ 	    fndecl, "mve.fp");
+   inform (location, "you can enable mve.fp by using the command-line"
+ 	  " option %<-march%>, or by using the %<target%>"
+ 	  " attribute or pragma");
+   reported_missing_float_p = true;
+ }
+ 
+ /* Report that LOCATION has a call to FNDECL in which argument ARGNO
+    was not an integer constant expression.  ARGNO counts from zero.  */
+ static void
+ report_non_ice (location_t location, tree fndecl, unsigned int argno)
+ {
+   error_at (location, "argument %d of %qE must be an integer constant"
+ 	    " expression", argno + 1, fndecl);
+ }
+ 
+ /* Report that LOCATION has a call to FNDECL in which argument ARGNO has
+    the value ACTUAL, whereas the function requires a value in the range
+    [MIN, MAX].  ARGNO counts from zero.  */
+ static void
+ report_out_of_range (location_t location, tree fndecl, unsigned int argno,
+ 		     HOST_WIDE_INT actual, HOST_WIDE_INT min,
+ 		     HOST_WIDE_INT max)
+ {
+   error_at (location, "passing %wd to argument %d of %qE, which expects"
+ 	    " a value in the range [%wd, %wd]", actual, argno + 1, fndecl,
+ 	    min, max);
+ }
+ 
+ /* Report that LOCATION has a call to FNDECL in which argument ARGNO has
+    the value ACTUAL, whereas the function requires a valid value of
+    enum type ENUMTYPE.  ARGNO counts from zero.  */
+ static void
+ report_not_enum (location_t location, tree fndecl, unsigned int argno,
+ 		 HOST_WIDE_INT actual, tree enumtype)
+ {
+   error_at (location, "passing %wd to argument %d of %qE, which expects"
+ 	    " a valid %qT value", actual, argno + 1, fndecl, enumtype);
+ }
+ 
+ /* Checks that the mve.fp extension is enabled, given that REQUIRES_FLOAT
+    indicates whether it is required or not for function FNDECL.
+    Report an error against LOCATION if not.  */
+ static bool
+ check_requires_float (location_t location, tree fndecl,
+ 		      bool requires_float)
+ {
+   if (requires_float && !TARGET_HAVE_MVE_FLOAT)
+     {
+       report_missing_float (location, fndecl);
+       return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* Return a hash code for a function_instance.  */
+ hashval_t
+ function_instance::hash () const
+ {
+   inchash::hash h;
+   /* BASE uniquely determines BASE_NAME, so we don't need to hash both.  */
+   h.add_ptr (base);
+   h.add_ptr (shape);
+   h.add_int (mode_suffix_id);
+   h.add_int (type_suffix_ids[0]);
+   h.add_int (type_suffix_ids[1]);
+   h.add_int (pred);
+   return h.end ();
+ }
+ 
+ /* Return a set of CP_* flags that describe what the function could do,
+    taking the command-line flags into account.  */
+ unsigned int
+ function_instance::call_properties () const
+ {
+   unsigned int flags = base->call_properties (*this);
+ 
+   /* -fno-trapping-math means that we can assume any FP exceptions
+      are not user-visible.  */
+   if (!flag_trapping_math)
+     flags &= ~CP_RAISE_FP_EXCEPTIONS;
+ 
+   return flags;
+ }
+ 
+ /* Return true if calls to the function could read some form of
+    global state.  */
+ bool
+ function_instance::reads_global_state_p () const
+ {
+   unsigned int flags = call_properties ();
+ 
+   /* Preserve any dependence on rounding mode, flush to zero mode, etc.
+      There is currently no way of turning this off; in particular,
+      -fno-rounding-math (which is the default) means that we should make
+      the usual assumptions about rounding mode, which for intrinsics means
+      acting as the instructions do.  */
+   if (flags & CP_READ_FPCR)
+     return true;
+ 
+   return flags & CP_READ_MEMORY;
+ }
+ 
+ /* Return true if calls to the function could modify some form of
+    global state.  */
+ bool
+ function_instance::modifies_global_state_p () const
+ {
+   unsigned int flags = call_properties ();
+ 
+   /* Preserve any exception state written back to the FPCR,
+      unless -fno-trapping-math says this is unnecessary.  */
+   if (flags & CP_RAISE_FP_EXCEPTIONS)
+     return true;
+ 
+   /* Handle direct modifications of global state.  */
+   return flags & CP_WRITE_MEMORY;
+ }
+ 
+ /* Return true if calls to the function could raise a signal.  */
+ bool
+ function_instance::could_trap_p () const
+ {
+   unsigned int flags = call_properties ();
+ 
+   /* Handle functions that could raise SIGFPE.  */
+   if (flags & CP_RAISE_FP_EXCEPTIONS)
+     return true;
+ 
+   /* Handle functions that could raise SIGBUS or SIGSEGV.  */
+   if (flags & (CP_READ_MEMORY | CP_WRITE_MEMORY))
+     return true;
+ 
+   return false;
+ }
+ 
+ /* Return true if the function has an implicit "inactive" argument.
+    This is the case of most _m predicated functions, but not all.
+    The list will be updated as needed.  */
+ bool
+ function_instance::has_inactive_argument () const
+ {
+   if (pred != PRED_m)
+     return false;
+ 
+   if (mode_suffix_id == MODE_r
+       || base == functions::vcmlaq
+       || base == functions::vcmlaq_rot90
+       || base == functions::vcmlaq_rot180
+       || base == functions::vcmlaq_rot270
+       || base == functions::vcmpeqq
+       || base == functions::vcmpneq
+       || base == functions::vcmpgeq
+       || base == functions::vcmpgtq
+       || base == functions::vcmpleq
+       || base == functions::vcmpltq
+       || base == functions::vcmpcsq
+       || base == functions::vcmphiq
+       || base == functions::vfmaq
+       || base == functions::vfmasq
+       || base == functions::vfmsq
+       || base == functions::vmaxaq
+       || base == functions::vmaxnmaq
+       || base == functions::vminaq
+       || base == functions::vminnmaq
+       || base == functions::vmlaq
+       || base == functions::vmlasq
+       || base == functions::vmovnbq
+       || base == functions::vmovntq
+       || base == functions::vqmovnbq
+       || base == functions::vqmovntq
+       || base == functions::vqmovunbq
+       || base == functions::vqmovuntq
+       || (base == functions::vorrq && mode_suffix_id == MODE_n)
+       || base == functions::vqdmladhq
+       || base == functions::vqdmladhxq
+       || base == functions::vqdmlahq
+       || base == functions::vqdmlashq
+       || base == functions::vqdmlsdhq
+       || base == functions::vqdmlsdhxq
+       || base == functions::vqrdmladhq
+       || base == functions::vqrdmladhxq
+       || base == functions::vqrdmlahq
+       || base == functions::vqrdmlashq
+       || base == functions::vqrdmlsdhq
+       || base == functions::vqrdmlsdhxq
+       || (base == functions::vqrshlq && mode_suffix_id == MODE_n)
+       || base == functions::vqrshrnbq
+       || base == functions::vqrshrntq
+       || base == functions::vqrshrunbq
+       || base == functions::vqrshruntq
+       || base == functions::vqshrnbq
+       || base == functions::vqshrntq
+       || base == functions::vqshrunbq
+       || base == functions::vqshruntq
+       || (base == functions::vrshlq && mode_suffix_id == MODE_n)
+       || base == functions::vrshrnbq
+       || base == functions::vrshrntq
+       || base == functions::vshrnbq
+       || base == functions::vshrntq
+       || base == functions::vsliq
+       || base == functions::vsriq)
+     return false;
+ 
+   return true;
+ }
+ 
+ inline hashval_t
+ registered_function_hasher::hash (value_type value)
+ {
+   return value->instance.hash ();
+ }
+ 
+ inline bool
+ registered_function_hasher::equal (value_type value, const compare_type &key)
+ {
+   return value->instance == key;
+ }
+ 
+ function_builder::function_builder ()
+ {
+   m_overload_type = build_function_type (void_type_node, void_list_node);
+   m_direct_overloads = lang_GNU_CXX ();
+   gcc_obstack_init (&m_string_obstack);
+ }
+ 
+ function_builder::~function_builder ()
+ {
+   obstack_free (&m_string_obstack, NULL);
+ }
+ 
+ /* Add NAME to the end of the function name being built.  */
+ void
+ function_builder::append_name (const char *name)
+ {
+   obstack_grow (&m_string_obstack, name, strlen (name));
+ }
+ 
+ /* Zero-terminate and complete the function name being built.  */
+ char *
+ function_builder::finish_name ()
+ {
+   obstack_1grow (&m_string_obstack, 0);
+   return (char *) obstack_finish (&m_string_obstack);
+ }
+ 
+ /* Return the overloaded or full function name for INSTANCE, with optional
+    prefix; PRESERVE_USER_NAMESPACE selects the prefix, and OVERLOADED_P
+    selects which the overloaded or full function name.  Allocate the string on
+    m_string_obstack; the caller must use obstack_free to free it after use.  */
+ char *
+ function_builder::get_name (const function_instance &instance,
+ 			    bool preserve_user_namespace,
+ 			    bool overloaded_p)
+ {
+   if (preserve_user_namespace)
+     append_name ("__arm_");
+   append_name (instance.base_name);
+   append_name (pred_suffixes[instance.pred]);
+   if (!overloaded_p
+       || instance.shape->explicit_mode_suffix_p (instance.pred,
+ 						 instance.mode_suffix_id))
+     append_name (instance.mode_suffix ().string);
+   for (unsigned int i = 0; i < 2; ++i)
+     if (!overloaded_p
+ 	|| instance.shape->explicit_type_suffix_p (i, instance.pred,
+ 						   instance.mode_suffix_id))
+       append_name (instance.type_suffix (i).string);
+   return finish_name ();
+ }
+ 
+ /* Add attribute NAME to ATTRS.  */
+ static tree
+ add_attribute (const char *name, tree attrs)
+ {
+   return tree_cons (get_identifier (name), NULL_TREE, attrs);
+ }
+ 
+ /* Return the appropriate function attributes for INSTANCE.  */
+ tree
+ function_builder::get_attributes (const function_instance &instance)
+ {
+   tree attrs = NULL_TREE;
+ 
+   if (!instance.modifies_global_state_p ())
+     {
+       if (instance.reads_global_state_p ())
+ 	attrs = add_attribute ("pure", attrs);
+       else
+ 	attrs = add_attribute ("const", attrs);
+     }
+ 
+   if (!flag_non_call_exceptions || !instance.could_trap_p ())
+     attrs = add_attribute ("nothrow", attrs);
+ 
+   return add_attribute ("leaf", attrs);
+ }
+ 
+ /* Add a function called NAME with type FNTYPE and attributes ATTRS.
+    INSTANCE describes what the function does and OVERLOADED_P indicates
+    whether it is overloaded.  REQUIRES_FLOAT indicates whether the function
+    requires the mve.fp extension.  */
+ registered_function &
+ function_builder::add_function (const function_instance &instance,
+ 				const char *name, tree fntype, tree attrs,
+ 				bool requires_float,
+ 				bool overloaded_p,
+ 				bool placeholder_p)
+ {
+   unsigned int code = vec_safe_length (registered_functions);
+   code = (code << ARM_BUILTIN_SHIFT) | ARM_BUILTIN_MVE;
+ 
+   /* We need to be able to generate placeholders to ensure that we have a
+      consistent numbering scheme for function codes between the C and C++
+      frontends, so that everything ties up in LTO.
+ 
+      Currently, tree-streamer-in.cc:unpack_ts_function_decl_value_fields
+      validates that tree nodes returned by TARGET_BUILTIN_DECL are non-NULL and
+      some node other than error_mark_node.  This is a holdover from when builtin
+      decls were streamed by code rather than by value.
+ 
+      Ultimately, we should be able to remove this validation of BUILT_IN_MD
+      nodes and remove the target hook.  For now, however, we need to appease the
+      validation and return a non-NULL, non-error_mark_node node, so we
+      arbitrarily choose integer_zero_node.  */
+   tree decl = placeholder_p
+     ? integer_zero_node
+     : simulate_builtin_function_decl (input_location, name, fntype,
+ 				      code, NULL, attrs);
+   registered_function &rfn = *ggc_alloc <registered_function> ();
+   rfn.instance = instance;
+   rfn.decl = decl;
+   rfn.requires_float = requires_float;
+   rfn.overloaded_p = overloaded_p;
+   vec_safe_push (registered_functions, &rfn);
+ 
+   return rfn;
+ }
+ 
+ /* Add a built-in function for INSTANCE, with the argument types given
+    by ARGUMENT_TYPES and the return type given by RETURN_TYPE.
+    REQUIRES_FLOAT indicates whether the function requires the mve.fp extension,
+    and PRESERVE_USER_NAMESPACE indicates whether the function should also be
+    registered under its non-prefixed name.  */
+ void
+ function_builder::add_unique_function (const function_instance &instance,
+ 				       tree return_type,
+ 				       vec<tree> &argument_types,
+ 				       bool preserve_user_namespace,
+ 				       bool requires_float,
+ 				       bool force_direct_overloads)
+ {
+   /* Add the function under its full (unique) name with prefix.  */
+   char *name = get_name (instance, true, false);
+   tree fntype = build_function_type_array (return_type,
+ 					   argument_types.length (),
+ 					   argument_types.address ());
+   tree attrs = get_attributes (instance);
+   registered_function &rfn = add_function (instance, name, fntype, attrs,
+ 					   requires_float, false, false);
+ 
+   /* Enter the function into the hash table.  */
+   hashval_t hash = instance.hash ();
+   registered_function **rfn_slot
+     = function_table->find_slot_with_hash (instance, hash, INSERT);
+   gcc_assert (!*rfn_slot);
+   *rfn_slot = &rfn;
+ 
+   /* Also add the non-prefixed non-overloaded function, as placeholder
+      if the user namespace does not need to be preserved.  */
+   char *noprefix_name = get_name (instance, false, false);
+   attrs = get_attributes (instance);
+   add_function (instance, noprefix_name, fntype, attrs, requires_float,
+ 		false, preserve_user_namespace);
+ 
+   /* Also add the function under its overloaded alias, if we want
+      a separate decl for each instance of an overloaded function.  */
+   char *overload_name = get_name (instance, true, true);
+   if (strcmp (name, overload_name) != 0)
+     {
+       /* Attribute lists shouldn't be shared.  */
+       attrs = get_attributes (instance);
+       bool placeholder_p = !(m_direct_overloads || force_direct_overloads);
+       add_function (instance, overload_name, fntype, attrs,
+ 		    requires_float, false, placeholder_p);
+ 
+       /* Also add the non-prefixed overloaded function, as placeholder
+ 	 if the user namespace does not need to be preserved.  */
+       char *noprefix_overload_name = get_name (instance, false, true);
+       attrs = get_attributes (instance);
+       add_function (instance, noprefix_overload_name, fntype, attrs,
+ 		    requires_float, false, preserve_user_namespace || placeholder_p);
+     }
+ 
+   obstack_free (&m_string_obstack, name);
+ }
+ 
+ /* Add one function decl for INSTANCE, to be used with manual overload
+    resolution.  REQUIRES_FLOAT indicates whether the function requires the
+    mve.fp extension.
+ 
+    For simplicity, partition functions by instance and required extensions,
+    and check whether the required extensions are available as part of resolving
+    the function to the relevant unique function.  */
+ void
+ function_builder::add_overloaded_function (const function_instance &instance,
+ 					   bool preserve_user_namespace,
+ 					   bool requires_float)
+ {
+   char *name = get_name (instance, true, true);
+   if (registered_function **map_value = m_overload_names.get (name))
+     {
+       gcc_assert ((*map_value)->instance == instance);
+       obstack_free (&m_string_obstack, name);
+     }
+   else
+     {
+       registered_function &rfn
+ 	= add_function (instance, name, m_overload_type, NULL_TREE,
+ 			requires_float, true, m_direct_overloads);
+       m_overload_names.put (name, &rfn);
+ 
+       /* Also add the non-prefixed function, as placeholder if the
+ 	 user namespace does not need to be preserved.  */
+       char *noprefix_name = get_name (instance, false, true);
+       registered_function &noprefix_rfn
+ 	= add_function (instance, noprefix_name, m_overload_type,
+ 			NULL_TREE, requires_float, true,
+ 			preserve_user_namespace || m_direct_overloads);
+       m_overload_names.put (noprefix_name, &noprefix_rfn);
+     }
+ }
+ 
+ /* If we are using manual overload resolution, add one function decl
+    for each overloaded function in GROUP.  Take the function base name
+    from GROUP and the mode from MODE.  */
+ void
+ function_builder::add_overloaded_functions (const function_group_info &group,
+ 					    mode_suffix_index mode,
+ 					    bool preserve_user_namespace)
+ {
+   for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi)
+     {
+       unsigned int explicit_type0
+ 	= (*group.shape)->explicit_type_suffix_p (0, group.preds[pi], mode);
+       unsigned int explicit_type1
+ 	= (*group.shape)->explicit_type_suffix_p (1, group.preds[pi], mode);
+ 
+       if ((*group.shape)->skip_overload_p (group.preds[pi], mode))
+ 	continue;
+ 
+       if (!explicit_type0 && !explicit_type1)
+ 	{
+ 	  /* Deal with the common case in which there is one overloaded
+ 	     function for all type combinations.  */
+ 	  function_instance instance (group.base_name, *group.base,
+ 				      *group.shape, mode, types_none[0],
+ 				      group.preds[pi]);
+ 	  add_overloaded_function (instance, preserve_user_namespace,
+ 				   group.requires_float);
+ 	}
+       else
+ 	for (unsigned int ti = 0; group.types[ti][0] != NUM_TYPE_SUFFIXES;
+ 	     ++ti)
+ 	  {
+ 	    /* Stub out the types that are determined by overload
+ 	       resolution.  */
+ 	    type_suffix_pair types = {
+ 	      explicit_type0 ? group.types[ti][0] : NUM_TYPE_SUFFIXES,
+ 	      explicit_type1 ? group.types[ti][1] : NUM_TYPE_SUFFIXES
+ 	    };
+ 	    function_instance instance (group.base_name, *group.base,
+ 					*group.shape, mode, types,
+ 					group.preds[pi]);
+ 	    add_overloaded_function (instance, preserve_user_namespace,
+ 				     group.requires_float);
+ 	  }
+     }
+ }
+ 
+ /* Register all the functions in GROUP.  */
+ void
+ function_builder::register_function_group (const function_group_info &group,
+ 					   bool preserve_user_namespace)
+ {
+   (*group.shape)->build (*this, group, preserve_user_namespace);
+ }
+ 
+ function_call_info::function_call_info (location_t location_in,
+ 					const function_instance &instance_in,
+ 					tree fndecl_in)
+   : function_instance (instance_in), location (location_in), fndecl (fndecl_in)
+ {
+ }
+ 
+ function_resolver::function_resolver (location_t location,
+ 				      const function_instance &instance,
+ 				      tree fndecl, vec<tree, va_gc> &arglist)
+   : function_call_info (location, instance, fndecl), m_arglist (arglist)
+ {
+ }
+ 
+ /* Return the vector type associated with type suffix TYPE.  */
+ tree
+ function_resolver::get_vector_type (type_suffix_index type)
+ {
+   return acle_vector_types[0][type_suffixes[type].vector_type];
+ }
+ 
+ /* Return the <stdint.h> name associated with TYPE.  Using the <stdint.h>
+    name should be more user-friendly than the underlying canonical type,
+    since it makes the signedness and bitwidth explicit.  */
+ const char *
+ function_resolver::get_scalar_type_name (type_suffix_index type)
+ {
+   return vector_types[type_suffixes[type].vector_type].acle_name + 2;
+ }
+ 
+ /* Return the type of argument I, or error_mark_node if it isn't
+    well-formed.  */
+ tree
+ function_resolver::get_argument_type (unsigned int i)
+ {
+   tree arg = m_arglist[i];
+   return arg == error_mark_node ? arg : TREE_TYPE (arg);
+ }
+ 
+ /* Return true if argument I is some form of scalar value.  */
+ bool
+ function_resolver::scalar_argument_p (unsigned int i)
+ {
+   tree type = get_argument_type (i);
+   return (INTEGRAL_TYPE_P (type)
+ 	  /* Allow pointer types, leaving the frontend to warn where
+ 	     necessary.  */
+ 	  || POINTER_TYPE_P (type)
+ 	  || SCALAR_FLOAT_TYPE_P (type));
+ }
+ 
+ /* Report that the function has no form that takes type suffix TYPE.
+    Return error_mark_node.  */
+ tree
+ function_resolver::report_no_such_form (type_suffix_index type)
+ {
+   error_at (location, "%qE has no form that takes %qT arguments",
+ 	    fndecl, get_vector_type (type));
+   return error_mark_node;
+ }
+ 
+ /* Silently check whether there is an instance of the function with the
+    mode suffix given by MODE and the type suffixes given by TYPE0 and TYPE1.
+    Return its function decl if so, otherwise return null.  */
+ tree
+ function_resolver::lookup_form (mode_suffix_index mode,
+ 				type_suffix_index type0,
+ 				type_suffix_index type1)
+ {
+   type_suffix_pair types = { type0, type1 };
+   function_instance instance (base_name, base, shape, mode, types, pred);
+   registered_function *rfn
+     = function_table->find_with_hash (instance, instance.hash ());
+   return rfn ? rfn->decl : NULL_TREE;
+ }
+ 
+ /* Resolve the function to one with the mode suffix given by MODE and the
+    type suffixes given by TYPE0 and TYPE1.  Return its function decl on
+    success, otherwise report an error and return error_mark_node.  */
+ tree
+ function_resolver::resolve_to (mode_suffix_index mode,
+ 			       type_suffix_index type0,
+ 			       type_suffix_index type1)
+ {
+   tree res = lookup_form (mode, type0, type1);
+   if (!res)
+     {
+       if (type1 == NUM_TYPE_SUFFIXES)
+ 	return report_no_such_form (type0);
+       if (type0 == type_suffix_ids[0])
+ 	return report_no_such_form (type1);
+       /* To be filled in when we have other cases.  */
+       gcc_unreachable ();
+     }
+   return res;
+ }
+ 
+ /* Require argument ARGNO to be a pointer to a scalar type that has a
+    corresponding type suffix.  Return that type suffix on success,
+    otherwise report an error and return NUM_TYPE_SUFFIXES.  */
+ type_suffix_index
+ function_resolver::infer_pointer_type (unsigned int argno)
+ {
+   tree actual = get_argument_type (argno);
+   if (actual == error_mark_node)
+     return NUM_TYPE_SUFFIXES;
+ 
+   if (TREE_CODE (actual) != POINTER_TYPE)
+     {
+       error_at (location, "passing %qT to argument %d of %qE, which"
+ 		" expects a pointer type", actual, argno + 1, fndecl);
+       return NUM_TYPE_SUFFIXES;
+     }
+ 
+   tree target = TREE_TYPE (actual);
+   type_suffix_index type = find_type_suffix_for_scalar_type (target);
+   if (type == NUM_TYPE_SUFFIXES)
+     {
+       error_at (location, "passing %qT to argument %d of %qE, but %qT is not"
+ 		" a valid MVE element type", actual, argno + 1, fndecl,
+ 		build_qualified_type (target, 0));
+       return NUM_TYPE_SUFFIXES;
+     }
+ 
+   return type;
+ }
+ 
+ /* Require argument ARGNO to be a single vector or a tuple of NUM_VECTORS
+    vectors; NUM_VECTORS is 1 for the former.  Return the associated type
+    suffix on success, using TYPE_SUFFIX_b for predicates.  Report an error
+    and return NUM_TYPE_SUFFIXES on failure.  */
+ type_suffix_index
+ function_resolver::infer_vector_or_tuple_type (unsigned int argno,
+ 					       unsigned int num_vectors)
+ {
+   tree actual = get_argument_type (argno);
+   if (actual == error_mark_node)
+     return NUM_TYPE_SUFFIXES;
+ 
+   /* A linear search should be OK here, since the code isn't hot and
+      the number of types is only small.  */
+   for (unsigned int size_i = 0; size_i < MAX_TUPLE_SIZE; ++size_i)
+     for (unsigned int suffix_i = 0; suffix_i < NUM_TYPE_SUFFIXES; ++suffix_i)
+       {
+ 	vector_type_index type_i = type_suffixes[suffix_i].vector_type;
+ 	tree type = acle_vector_types[size_i][type_i];
+ 	if (type && matches_type_p (type, actual))
+ 	  {
+ 	    if (size_i + 1 == num_vectors)
+ 	      return type_suffix_index (suffix_i);
+ 
+ 	    if (num_vectors == 1)
+ 	      error_at (location, "passing %qT to argument %d of %qE, which"
+ 			" expects a single MVE vector rather than a tuple",
+ 			actual, argno + 1, fndecl);
+ 	    else if (size_i == 0 && type_i != VECTOR_TYPE_mve_pred16_t)
+ 	      /* num_vectors is always != 1, so the singular isn't needed.  */
+ 	      error_n (location, num_vectors, "%qT%d%qE%d",
+ 		       "passing single vector %qT to argument %d"
+ 		       " of %qE, which expects a tuple of %d vectors",
+ 		       actual, argno + 1, fndecl, num_vectors);
+ 	    else
+ 	      /* num_vectors is always != 1, so the singular isn't needed.  */
+ 	      error_n (location, num_vectors, "%qT%d%qE%d",
+ 		       "passing %qT to argument %d of %qE, which"
+ 		       " expects a tuple of %d vectors", actual, argno + 1,
+ 		       fndecl, num_vectors);
+ 	    return NUM_TYPE_SUFFIXES;
+ 	  }
+       }
+ 
+   if (num_vectors == 1)
+     error_at (location, "passing %qT to argument %d of %qE, which"
+ 	      " expects an MVE vector type", actual, argno + 1, fndecl);
+   else
+     error_at (location, "passing %qT to argument %d of %qE, which"
+ 	      " expects an MVE tuple type", actual, argno + 1, fndecl);
+   return NUM_TYPE_SUFFIXES;
+ }
+ 
+ /* Require argument ARGNO to have some form of vector type.  Return the
+    associated type suffix on success, using TYPE_SUFFIX_b for predicates.
+    Report an error and return NUM_TYPE_SUFFIXES on failure.  */
+ type_suffix_index
+ function_resolver::infer_vector_type (unsigned int argno)
+ {
+   return infer_vector_or_tuple_type (argno, 1);
+ }
+ 
+ /* Require argument ARGNO to be a vector or scalar argument.  Return true
+    if it is, otherwise report an appropriate error.  */
+ bool
+ function_resolver::require_vector_or_scalar_type (unsigned int argno)
+ {
+   tree actual = get_argument_type (argno);
+   if (actual == error_mark_node)
+     return false;
+ 
+   if (!scalar_argument_p (argno) && !VECTOR_TYPE_P (actual))
+     {
+       error_at (location, "passing %qT to argument %d of %qE, which"
+ 		" expects a vector or scalar type", actual, argno + 1, fndecl);
+       return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* Require argument ARGNO to have vector type TYPE, in cases where this
+    requirement holds for all uses of the function.  Return true if the
+    argument has the right form, otherwise report an appropriate error.  */
+ bool
+ function_resolver::require_vector_type (unsigned int argno,
+ 					vector_type_index type)
+ {
+   tree expected = acle_vector_types[0][type];
+   tree actual = get_argument_type (argno);
+   if (actual == error_mark_node)
+     return false;
+ 
+   if (!matches_type_p (expected, actual))
+     {
+       error_at (location, "passing %qT to argument %d of %qE, which"
+ 		" expects %qT", actual, argno + 1, fndecl, expected);
+       return false;
+     }
+   return true;
+ }
+ 
+ /* Like require_vector_type, but TYPE is inferred from previous arguments
+    rather than being a fixed part of the function signature.  This changes
+    the nature of the error messages.  */
+ bool
+ function_resolver::require_matching_vector_type (unsigned int argno,
+ 						 type_suffix_index type)
+ {
+   type_suffix_index new_type = infer_vector_type (argno);
+   if (new_type == NUM_TYPE_SUFFIXES)
+     return false;
+ 
+   if (type != new_type)
+     {
+       error_at (location, "passing %qT to argument %d of %qE, but"
+ 		" previous arguments had type %qT",
+ 		get_vector_type (new_type), argno + 1, fndecl,
+ 		get_vector_type (type));
+       return false;
+     }
+   return true;
+ }
+ 
+ /* Require argument ARGNO to be a vector type with the following properties:
+ 
+    - the type class must be the same as FIRST_TYPE's if EXPECTED_TCLASS
+      is SAME_TYPE_CLASS, otherwise it must be EXPECTED_TCLASS itself.
+ 
+    - the element size must be:
+ 
+      - the same as FIRST_TYPE's if EXPECTED_BITS == SAME_SIZE
+      - half of FIRST_TYPE's if EXPECTED_BITS == HALF_SIZE
+      - a quarter of FIRST_TYPE's if EXPECTED_BITS == QUARTER_SIZE
+      - EXPECTED_BITS itself otherwise
+ 
+    Return true if the argument has the required type, otherwise report
+    an appropriate error.
+ 
+    FIRST_ARGNO is the first argument that is known to have type FIRST_TYPE.
+    Usually it comes before ARGNO, but sometimes it is more natural to resolve
+    arguments out of order.
+ 
+    If the required properties depend on FIRST_TYPE then both FIRST_ARGNO and
+    ARGNO contribute to the resolution process.  If the required properties
+    are fixed, only FIRST_ARGNO contributes to the resolution process.
+ 
+    This function is a bit of a Swiss army knife.  The complication comes
+    from trying to give good error messages when FIRST_ARGNO and ARGNO are
+    inconsistent, since either of them might be wrong.  */
+ bool function_resolver::
+ require_derived_vector_type (unsigned int argno,
+ 			     unsigned int first_argno,
+ 			     type_suffix_index first_type,
+ 			     type_class_index expected_tclass,
+ 			     unsigned int expected_bits)
+ {
+   /* If the type needs to match FIRST_ARGNO exactly, use the preferred
+      error message for that case.  The VECTOR_TYPE_P test excludes tuple
+      types, which we handle below instead.  */
+   bool both_vectors_p = VECTOR_TYPE_P (get_argument_type (first_argno));
+   if (both_vectors_p
+       && expected_tclass == SAME_TYPE_CLASS
+       && expected_bits == SAME_SIZE)
+     {
+       /* There's no need to resolve this case out of order.  */
+       gcc_assert (argno > first_argno);
+       return require_matching_vector_type (argno, first_type);
+     }
+ 
+   /* Use FIRST_TYPE to get the expected type class and element size.  */
+   type_class_index orig_expected_tclass = expected_tclass;
+   if (expected_tclass == NUM_TYPE_CLASSES)
+     expected_tclass = type_suffixes[first_type].tclass;
+ 
+   unsigned int orig_expected_bits = expected_bits;
+   if (expected_bits == SAME_SIZE)
+     expected_bits = type_suffixes[first_type].element_bits;
+   else if (expected_bits == HALF_SIZE)
+     expected_bits = type_suffixes[first_type].element_bits / 2;
+   else if (expected_bits == QUARTER_SIZE)
+     expected_bits = type_suffixes[first_type].element_bits / 4;
+ 
+   /* If the expected type doesn't depend on FIRST_TYPE at all,
+      just check for the fixed choice of vector type.  */
+   if (expected_tclass == orig_expected_tclass
+       && expected_bits == orig_expected_bits)
+     {
+       const type_suffix_info &expected_suffix
+ 	= type_suffixes[find_type_suffix (expected_tclass, expected_bits)];
+       return require_vector_type (argno, expected_suffix.vector_type);
+     }
+ 
+   /* Require the argument to be some form of MVE vector type,
+      without being specific about the type of vector we want.  */
+   type_suffix_index actual_type = infer_vector_type (argno);
+   if (actual_type == NUM_TYPE_SUFFIXES)
+     return false;
+ 
+   /* Exit now if we got the right type.  */
+   bool tclass_ok_p = (type_suffixes[actual_type].tclass == expected_tclass);
+   bool size_ok_p = (type_suffixes[actual_type].element_bits == expected_bits);
+   if (tclass_ok_p && size_ok_p)
+     return true;
+ 
+   /* First look for cases in which the actual type contravenes a fixed
+      size requirement, without having to refer to FIRST_TYPE.  */
+   if (!size_ok_p && expected_bits == orig_expected_bits)
+     {
+       error_at (location, "passing %qT to argument %d of %qE, which"
+ 		" expects a vector of %d-bit elements",
+ 		get_vector_type (actual_type), argno + 1, fndecl,
+ 		expected_bits);
+       return false;
+     }
+ 
+   /* Likewise for a fixed type class requirement.  This is only ever
+      needed for signed and unsigned types, so don't create unnecessary
+      translation work for other type classes.  */
+   if (!tclass_ok_p && orig_expected_tclass == TYPE_signed)
+     {
+       error_at (location, "passing %qT to argument %d of %qE, which"
+ 		" expects a vector of signed integers",
+ 		get_vector_type (actual_type), argno + 1, fndecl);
+       return false;
+     }
+   if (!tclass_ok_p && orig_expected_tclass == TYPE_unsigned)
+     {
+       error_at (location, "passing %qT to argument %d of %qE, which"
+ 		" expects a vector of unsigned integers",
+ 		get_vector_type (actual_type), argno + 1, fndecl);
+       return false;
+     }
+ 
+   /* Make sure that FIRST_TYPE itself is sensible before using it
+      as a basis for an error message.  */
+   if (resolve_to (mode_suffix_id, first_type) == error_mark_node)
+     return false;
+ 
+   /* If the arguments have consistent type classes, but a link between
+      the sizes has been broken, try to describe the error in those terms.  */
+   if (both_vectors_p && tclass_ok_p && orig_expected_bits == SAME_SIZE)
+     {
+       if (argno < first_argno)
+ 	{
+ 	  std::swap (argno, first_argno);
+ 	  std::swap (actual_type, first_type);
+ 	}
+       error_at (location, "arguments %d and %d of %qE must have the"
+ 		" same element size, but the values passed here have type"
+ 		" %qT and %qT respectively", first_argno + 1, argno + 1,
+ 		fndecl, get_vector_type (first_type),
+ 		get_vector_type (actual_type));
+       return false;
+     }
+ 
+   /* Likewise in reverse: look for cases in which the sizes are consistent
+      but a link between the type classes has been broken.  */
+   if (both_vectors_p
+       && size_ok_p
+       && orig_expected_tclass == SAME_TYPE_CLASS
+       && type_suffixes[first_type].integer_p
+       && type_suffixes[actual_type].integer_p)
+     {
+       if (argno < first_argno)
+ 	{
+ 	  std::swap (argno, first_argno);
+ 	  std::swap (actual_type, first_type);
+ 	}
+       error_at (location, "arguments %d and %d of %qE must have the"
+ 		" same signedness, but the values passed here have type"
+ 		" %qT and %qT respectively", first_argno + 1, argno + 1,
+ 		fndecl, get_vector_type (first_type),
+ 		get_vector_type (actual_type));
+       return false;
+     }
+ 
+   /* The two arguments are wildly inconsistent.  */
+   type_suffix_index expected_type
+     = find_type_suffix (expected_tclass, expected_bits);
+   error_at (location, "passing %qT instead of the expected %qT to argument"
+ 	    " %d of %qE, after passing %qT to argument %d",
+ 	    get_vector_type (actual_type), get_vector_type (expected_type),
+ 	    argno + 1, fndecl, get_argument_type (first_argno),
+ 	    first_argno + 1);
+   return false;
+ }
+ 
+ /* Require argument ARGNO to be a (possibly variable) scalar, expecting it
+    to have the following properties:
+ 
+    - the type class must be the same as for type suffix 0 if EXPECTED_TCLASS
+      is SAME_TYPE_CLASS, otherwise it must be EXPECTED_TCLASS itself.
+ 
+    - the element size must be the same as for type suffix 0 if EXPECTED_BITS
+      is SAME_TYPE_SIZE, otherwise it must be EXPECTED_BITS itself.
+ 
+    Return true if the argument is valid, otherwise report an appropriate error.
+ 
+    Note that we don't check whether the scalar type actually has the required
+    properties, since that's subject to implicit promotions and conversions.
+    Instead we just use the expected properties to tune the error message.  */
+ bool function_resolver::
+ require_derived_scalar_type (unsigned int argno,
+ 			     type_class_index expected_tclass,
+ 			     unsigned int expected_bits)
+ {
+   gcc_assert (expected_tclass == SAME_TYPE_CLASS
+ 	      || expected_tclass == TYPE_signed
+ 	      || expected_tclass == TYPE_unsigned);
+ 
+   /* If the expected type doesn't depend on the type suffix at all,
+      just check for the fixed choice of scalar type.  */
+   if (expected_tclass != SAME_TYPE_CLASS && expected_bits != SAME_SIZE)
+     {
+       type_suffix_index expected_type
+ 	= find_type_suffix (expected_tclass, expected_bits);
+       return require_scalar_type (argno, get_scalar_type_name (expected_type));
+     }
+ 
+   if (scalar_argument_p (argno))
+     return true;
+ 
+   if (expected_tclass == SAME_TYPE_CLASS)
+     /* It doesn't really matter whether the element is expected to be
+        the same size as type suffix 0.  */
+     error_at (location, "passing %qT to argument %d of %qE, which"
+ 	      " expects a scalar element", get_argument_type (argno),
+ 	      argno + 1, fndecl);
+   else
+     /* It doesn't seem useful to distinguish between signed and unsigned
+        scalars here.  */
+     error_at (location, "passing %qT to argument %d of %qE, which"
+ 	      " expects a scalar integer", get_argument_type (argno),
+ 	      argno + 1, fndecl);
+   return false;
+ }
+ 
+ /* Require argument ARGNO to be suitable for an integer constant expression.
+    Return true if it is, otherwise report an appropriate error.
+ 
+    function_checker checks whether the argument is actually constant and
+    has a suitable range.  The reason for distinguishing immediate arguments
+    here is because it provides more consistent error messages than
+    require_scalar_type would.  */
+ bool
+ function_resolver::require_integer_immediate (unsigned int argno)
+ {
+   if (!scalar_argument_p (argno))
+     {
+       report_non_ice (location, fndecl, argno);
+       return false;
+     }
+   return true;
+ }
+ 
+ /* Require argument ARGNO to be a (possibly variable) scalar, using EXPECTED
+    as the name of its expected type.  Return true if the argument has the
+    right form, otherwise report an appropriate error.  */
+ bool
+ function_resolver::require_scalar_type (unsigned int argno,
+ 					const char *expected)
+ {
+   if (!scalar_argument_p (argno))
+     {
+       error_at (location, "passing %qT to argument %d of %qE, which"
+ 		" expects %qs", get_argument_type (argno), argno + 1,
+ 		fndecl, expected);
+       return false;
+     }
+   return true;
+ }
+ 
+ /* Require argument ARGNO to be some form of pointer, without being specific
+    about its target type.  Return true if the argument has the right form,
+    otherwise report an appropriate error.  */
+ bool
+ function_resolver::require_pointer_type (unsigned int argno)
+ {
+   if (!scalar_argument_p (argno))
+     {
+       error_at (location, "passing %qT to argument %d of %qE, which"
+ 		" expects a scalar pointer", get_argument_type (argno),
+ 		argno + 1, fndecl);
+       return false;
+     }
+   return true;
+ }
+ 
+ /* Require the function to have exactly EXPECTED arguments.  Return true
+    if it does, otherwise report an appropriate error.  */
+ bool
+ function_resolver::check_num_arguments (unsigned int expected)
+ {
+   if (m_arglist.length () < expected)
+     error_at (location, "too few arguments to function %qE", fndecl);
+   else if (m_arglist.length () > expected)
+     error_at (location, "too many arguments to function %qE", fndecl);
+   return m_arglist.length () == expected;
+ }
+ 
+ /* If the function is predicated, check that the last argument is a
+    suitable predicate.  Also check that there are NOPS further
+    arguments before any predicate, but don't check what they are.
+ 
+    Return true on success, otherwise report a suitable error.
+    When returning true:
+ 
+    - set I to the number of the last unchecked argument.
+    - set NARGS to the total number of arguments.  */
+ bool
+ function_resolver::check_gp_argument (unsigned int nops,
+ 				      unsigned int &i, unsigned int &nargs)
+ {
+   i = nops - 1;
+   if (pred != PRED_none)
+     {
+       switch (pred)
+ 	{
+ 	case PRED_m:
+ 	  /* Add first inactive argument if needed, and final predicate.  */
+ 	  if (has_inactive_argument ())
+ 	    nargs = nops + 2;
+ 	  else
+ 	    nargs = nops + 1;
+ 	  break;
+ 
+ 	case PRED_p:
+ 	case PRED_x:
+ 	  /* Add final predicate.  */
+ 	  nargs = nops + 1;
+ 	  break;
+ 
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+ 
+       if (!check_num_arguments (nargs)
+ 	  || !require_vector_type (nargs - 1, VECTOR_TYPE_mve_pred16_t))
+ 	return false;
+ 
+       i = nargs - 2;
+     }
+   else
+     {
+       nargs = nops;
+       if (!check_num_arguments (nargs))
+ 	return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* Finish resolving a function whose final argument can be a vector
+    or a scalar, with the function having an implicit "_n" suffix
+    in the latter case.  This "_n" form might only exist for certain
+    type suffixes.
+ 
+    ARGNO is the index of the final argument.  The inferred type suffix
+    was obtained from argument FIRST_ARGNO, which has type FIRST_TYPE.
+    EXPECTED_TCLASS and EXPECTED_BITS describe the expected properties
+    of the final vector or scalar argument, in the same way as for
+    require_derived_vector_type.  INFERRED_TYPE is the inferred type
+    suffix itself, or NUM_TYPE_SUFFIXES if it's the same as FIRST_TYPE.
+ 
+    Return the function decl of the resolved function on success,
+    otherwise report a suitable error and return error_mark_node.  */
+ tree function_resolver::
+ finish_opt_n_resolution (unsigned int argno, unsigned int first_argno,
+ 			 type_suffix_index first_type,
+ 			 type_class_index expected_tclass,
+ 			 unsigned int expected_bits,
+ 			 type_suffix_index inferred_type)
+ {
+   if (inferred_type == NUM_TYPE_SUFFIXES)
+     inferred_type = first_type;
+   mode_suffix_index scalar_mode = MODE_n;
+   if (mode_suffix_id == MODE_r)
+     scalar_mode = MODE_r;
+   tree scalar_form = lookup_form (scalar_mode, inferred_type);
+ 
+   /* Allow the final argument to be scalar, if an _n form exists.  */
+   if (scalar_argument_p (argno))
+     {
+       if (scalar_form)
+ 	return scalar_form;
+ 
+       /* Check the vector form normally.  If that succeeds, raise an
+ 	 error about having no corresponding _n form.  */
+       tree res = resolve_to (mode_suffix_id, inferred_type);
+       if (res != error_mark_node)
+ 	error_at (location, "passing %qT to argument %d of %qE, but its"
+ 		  " %qT form does not accept scalars",
+ 		  get_argument_type (argno), argno + 1, fndecl,
+ 		  get_vector_type (first_type));
+       return error_mark_node;
+     }
+ 
+   /* If an _n form does exist, provide a more accurate message than
+      require_derived_vector_type would for arguments that are neither
+      vectors nor scalars.  */
+   if (scalar_form && !require_vector_or_scalar_type (argno))
+     return error_mark_node;
+ 
+   /* Check for the correct vector type.  */
+   if (!require_derived_vector_type (argno, first_argno, first_type,
+ 				    expected_tclass, expected_bits))
+     return error_mark_node;
+ 
+   return resolve_to (mode_suffix_id, inferred_type);
+ }
+ 
+ /* Resolve a (possibly predicated) unary function.  If the function uses
+    merge predication or if TREAT_AS_MERGE_P is true, there is an extra
+    vector argument before the governing predicate that specifies the
+    values of inactive elements.  This argument has the following
+    properties:
+ 
+    - the type class must be the same as for active elements if MERGE_TCLASS
+      is SAME_TYPE_CLASS, otherwise it must be MERGE_TCLASS itself.
+ 
+    - the element size must be the same as for active elements if MERGE_BITS
+      is SAME_TYPE_SIZE, otherwise it must be MERGE_BITS itself.
+ 
+    Return the function decl of the resolved function on success,
+    otherwise report a suitable error and return error_mark_node.  */
+ tree
+ function_resolver::resolve_unary (type_class_index merge_tclass,
+ 				  unsigned int merge_bits,
+ 				  bool treat_as_merge_p)
+ {
+   type_suffix_index type;
+   if (pred == PRED_m || treat_as_merge_p)
+     {
+       if (!check_num_arguments (3))
+ 	return error_mark_node;
+       if (merge_tclass == SAME_TYPE_CLASS && merge_bits == SAME_SIZE)
+ 	{
+ 	  /* The inactive elements are the same as the active elements,
+ 	     so we can use normal left-to-right resolution.  */
+ 	  if ((type = infer_vector_type (0)) == NUM_TYPE_SUFFIXES
+ 	      /* Predicates are the last argument.  */
+ 	      || !require_vector_type (2 , VECTOR_TYPE_mve_pred16_t)
+ 	      || !require_matching_vector_type (1 , type))
+ 	    return error_mark_node;
+ 	}
+       else
+ 	{
+ 	  /* The inactive element type is a function of the active one,
+ 	     so resolve the active one first.  */
+ 	  if (!require_vector_type (1, VECTOR_TYPE_mve_pred16_t)
+ 	      || (type = infer_vector_type (2)) == NUM_TYPE_SUFFIXES
+ 	      || !require_derived_vector_type (0, 2, type, merge_tclass,
+ 					       merge_bits))
+ 	    return error_mark_node;
+ 	}
+     }
+   else
+     {
+       /* We just need to check the predicate (if any) and the single
+ 	 vector argument.  */
+       unsigned int i, nargs;
+       if (!check_gp_argument (1, i, nargs)
+ 	  || (type = infer_vector_type (i)) == NUM_TYPE_SUFFIXES)
+ 	return error_mark_node;
+     }
+ 
+   /* Handle convert-like functions in which the first type suffix is
+      explicit.  */
+   if (type_suffix_ids[0] != NUM_TYPE_SUFFIXES)
+     return resolve_to (mode_suffix_id, type_suffix_ids[0], type);
+ 
+   return resolve_to (mode_suffix_id, type);
+ }
+ 
+ /* Resolve a (possibly predicated) unary function taking a scalar
+    argument (_n suffix).  If the function uses merge predication,
+    there is an extra vector argument in the first position, and the
+    final governing predicate that specifies the values of inactive
+    elements.
+ 
+    Return the function decl of the resolved function on success,
+    otherwise report a suitable error and return error_mark_node.  */
+ tree
+ function_resolver::resolve_unary_n ()
+ {
+   type_suffix_index type;
+ 
+   /* Currently only support overrides for _m (vdupq).  */
+   if (pred != PRED_m)
+     return error_mark_node;
+ 
+   if (pred == PRED_m)
+     {
+       if (!check_num_arguments (3))
+ 	return error_mark_node;
+ 
+       /* The inactive elements are the same as the active elements,
+ 	 so we can use normal left-to-right resolution.  */
+       if ((type = infer_vector_type (0)) == NUM_TYPE_SUFFIXES
+ 	  /* Predicates are the last argument.  */
+ 	  || !require_vector_type (2 , VECTOR_TYPE_mve_pred16_t))
+ 	return error_mark_node;
+     }
+ 
+   /* Make sure the argument is scalar.  */
+   tree scalar_form = lookup_form (MODE_n, type);
+ 
+   if (scalar_argument_p (1) && scalar_form)
+     return scalar_form;
+ 
+   return error_mark_node;
+ }
+ 
+ /* Resolve a (possibly predicated) function that takes NOPS like-typed
+    vector arguments followed by NIMM integer immediates.  Return the
+    function decl of the resolved function on success, otherwise report
+    a suitable error and return error_mark_node.  */
+ tree
+ function_resolver::resolve_uniform (unsigned int nops, unsigned int nimm)
+ {
+   unsigned int i, nargs;
+   type_suffix_index type;
+   if (!check_gp_argument (nops + nimm, i, nargs)
+       || (type = infer_vector_type (0 )) == NUM_TYPE_SUFFIXES)
+     return error_mark_node;
+ 
+   unsigned int last_arg = i + 1 - nimm;
+   for (i = 0; i < last_arg; i++)
+     if (!require_matching_vector_type (i, type))
+       return error_mark_node;
+ 
+   for (i = last_arg; i < nargs; ++i)
+     if (!require_integer_immediate (i))
+       return error_mark_node;
+ 
+   return resolve_to (mode_suffix_id, type);
+ }
+ 
+ /* Resolve a (possibly predicated) function that offers a choice between
+    taking:
+ 
+    - NOPS like-typed vector arguments or
+    - NOPS - 1 like-typed vector arguments followed by a scalar argument
+ 
+    Return the function decl of the resolved function on success,
+    otherwise report a suitable error and return error_mark_node.  */
+ tree
+ function_resolver::resolve_uniform_opt_n (unsigned int nops)
+ {
+   unsigned int i, nargs;
+   type_suffix_index type;
+   if (!check_gp_argument (nops, i, nargs)
+       /* Unary operators should use resolve_unary, so using i - 1 is
+ 	 safe.  */
+       || (type = infer_vector_type (i - 1)) == NUM_TYPE_SUFFIXES)
+     return error_mark_node;
+ 
+   /* Skip last argument, may be scalar.  */
+   unsigned int last_arg = i;
+   for (i = 0; i < last_arg; i++)
+     if (!require_matching_vector_type (i, type))
+       return error_mark_node;
+ 
+   return finish_opt_n_resolution (last_arg, 0, type);
+ }
+ 
+ /* If the call is erroneous, report an appropriate error and return
+    error_mark_node.  Otherwise, if the function is overloaded, return
+    the decl of the non-overloaded function.  Return NULL_TREE otherwise,
+    indicating that the call should be processed in the normal way.  */
+ tree
+ function_resolver::resolve ()
+ {
+   return shape->resolve (*this);
+ }
+ 
+ function_checker::function_checker (location_t location,
+ 				    const function_instance &instance,
+ 				    tree fndecl, tree fntype,
+ 				    unsigned int nargs, tree *args)
+   : function_call_info (location, instance, fndecl),
+     m_fntype (fntype), m_nargs (nargs), m_args (args)
+ {
+   if (instance.has_inactive_argument ())
+     m_base_arg = 1;
+   else
+     m_base_arg = 0;
+ }
+ 
+ /* Return true if argument ARGNO exists. which it might not for
+    erroneous calls.  It is safe to wave through checks if this
+    function returns false.  */
+ bool
+ function_checker::argument_exists_p (unsigned int argno)
+ {
+   gcc_assert (argno < (unsigned int) type_num_arguments (m_fntype));
+   return argno < m_nargs;
+ }
+ 
+ /* Check that argument ARGNO is an integer constant expression and
+    store its value in VALUE_OUT if so.  The caller should first
+    check that argument ARGNO exists.  */
+ bool
+ function_checker::require_immediate (unsigned int argno,
+ 				     HOST_WIDE_INT &value_out)
+ {
+   gcc_assert (argno < m_nargs);
+   tree arg = m_args[argno];
+ 
+   /* The type and range are unsigned, so read the argument as an
+      unsigned rather than signed HWI.  */
+   if (!tree_fits_uhwi_p (arg))
+     {
+       report_non_ice (location, fndecl, argno);
+       return false;
+     }
+ 
+   /* ...but treat VALUE_OUT as signed for error reporting, since printing
+      -1 is more user-friendly than the maximum uint64_t value.  */
+   value_out = tree_to_uhwi (arg);
+   return true;
+ }
+ 
+ /* Check that argument REL_ARGNO is an integer constant expression that has
+    a valid value for enumeration type TYPE.  REL_ARGNO counts from the end
+    of the predication arguments.  */
+ bool
+ function_checker::require_immediate_enum (unsigned int rel_argno, tree type)
+ {
+   unsigned int argno = m_base_arg + rel_argno;
+   if (!argument_exists_p (argno))
+     return true;
+ 
+   HOST_WIDE_INT actual;
+   if (!require_immediate (argno, actual))
+     return false;
+ 
+   for (tree entry = TYPE_VALUES (type); entry; entry = TREE_CHAIN (entry))
+     {
+       /* The value is an INTEGER_CST for C and a CONST_DECL wrapper
+ 	 around an INTEGER_CST for C++.  */
+       tree value = TREE_VALUE (entry);
+       if (TREE_CODE (value) == CONST_DECL)
+ 	value = DECL_INITIAL (value);
+       if (wi::to_widest (value) == actual)
+ 	return true;
+     }
+ 
+   report_not_enum (location, fndecl, argno, actual, type);
+   return false;
+ }
+ 
+ /* Check that argument REL_ARGNO is an integer constant expression in the
+    range [MIN, MAX].  REL_ARGNO counts from the end of the predication
+    arguments.  */
+ bool
+ function_checker::require_immediate_range (unsigned int rel_argno,
+ 					   HOST_WIDE_INT min,
+ 					   HOST_WIDE_INT max)
+ {
+   unsigned int argno = m_base_arg + rel_argno;
+   if (!argument_exists_p (argno))
+     return true;
+ 
+   /* Required because of the tree_to_uhwi -> HOST_WIDE_INT conversion
+      in require_immediate.  */
+   gcc_assert (min >= 0 && min <= max);
+   HOST_WIDE_INT actual;
+   if (!require_immediate (argno, actual))
+     return false;
+ 
+   if (!IN_RANGE (actual, min, max))
+     {
+       report_out_of_range (location, fndecl, argno, actual, min, max);
+       return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* Perform semantic checks on the call.  Return true if the call is valid,
+    otherwise report a suitable error.  */
+ bool
+ function_checker::check ()
+ {
+   function_args_iterator iter;
+   tree type;
+   unsigned int i = 0;
+   FOREACH_FUNCTION_ARGS (m_fntype, type, iter)
+     {
+       if (type == void_type_node || i >= m_nargs)
+ 	break;
+ 
+       if (i >= m_base_arg
+ 	  && TREE_CODE (type) == ENUMERAL_TYPE
+ 	  && !require_immediate_enum (i - m_base_arg, type))
+ 	return false;
+ 
+       i += 1;
+     }
+ 
+   return shape->check (*this);
+ }
+ 
+ gimple_folder::gimple_folder (const function_instance &instance, tree fndecl,
+ 			      gcall *call_in)
+   : function_call_info (gimple_location (call_in), instance, fndecl),
+     call (call_in), lhs (gimple_call_lhs (call_in))
+ {
+ }
+ 
+ /* Try to fold the call.  Return the new statement on success and null
+    on failure.  */
+ gimple *
+ gimple_folder::fold ()
+ {
+   /* Don't fold anything when MVE is disabled; emit an error during
+      expansion instead.  */
+   if (!TARGET_HAVE_MVE)
+     return NULL;
+ 
+   /* Punt if the function has a return type and no result location is
+      provided.  The attributes should allow target-independent code to
+      remove the calls if appropriate.  */
+   if (!lhs && TREE_TYPE (gimple_call_fntype (call)) != void_type_node)
+     return NULL;
+ 
+   return base->fold (*this);
+ }
+ 
+ function_expander::function_expander (const function_instance &instance,
+ 				      tree fndecl, tree call_expr_in,
+ 				      rtx possible_target_in)
+   : function_call_info (EXPR_LOCATION (call_expr_in), instance, fndecl),
+     call_expr (call_expr_in), possible_target (possible_target_in)
+ {
+ }
+ 
+ /* Return the handler of direct optab OP for type suffix SUFFIX_I.  */
+ insn_code
+ function_expander::direct_optab_handler (optab op, unsigned int suffix_i)
+ {
+   return ::direct_optab_handler (op, vector_mode (suffix_i));
+ }
+ 
+ /* Return the base address for a contiguous load or store
+    function.  */
+ rtx
+ function_expander::get_contiguous_base ()
+ {
+   return args[0];
+ }
+ 
+ /* For a function that does the equivalent of:
+ 
+      OUTPUT = COND ? FN (INPUTS) : FALLBACK;
+ 
+    return the value of FALLBACK.
+ 
+    MODE is the mode of OUTPUT.
+    MERGE_ARGNO is the argument that provides FALLBACK for _m functions,
+    or DEFAULT_MERGE_ARGNO if we should apply the usual rules.
+ 
+    ARGNO is the caller's index into args.  If the returned value is
+    argument 0 (as for unary _m operations), increment ARGNO past the
+    returned argument.  */
+ rtx
+ function_expander::get_fallback_value (machine_mode mode,
+ 				       unsigned int merge_argno,
+ 				       unsigned int &argno)
+ {
+   if (pred == PRED_z)
+     return CONST0_RTX (mode);
+ 
+   gcc_assert (pred == PRED_m || pred == PRED_x);
+ 
+   if (merge_argno == 0)
+     return args[argno++];
+ 
+   return args[merge_argno];
+ }
+ 
+ /* Return a REG rtx that can be used for the result of the function,
+    using the preferred target if suitable.  */
+ rtx
+ function_expander::get_reg_target ()
+ {
+   machine_mode target_mode = TYPE_MODE (TREE_TYPE (TREE_TYPE (fndecl)));
+   if (!possible_target || GET_MODE (possible_target) != target_mode)
+     possible_target = gen_reg_rtx (target_mode);
+   return possible_target;
+ }
+ 
+ /* Add an output operand to the instruction we're building, which has
+    code ICODE.  Bind the output to the preferred target rtx if possible.  */
+ void
+ function_expander::add_output_operand (insn_code icode)
+ {
+   unsigned int opno = m_ops.length ();
+   machine_mode mode = insn_data[icode].operand[opno].mode;
+   m_ops.safe_grow (opno + 1, true);
+   create_output_operand (&m_ops.last (), possible_target, mode);
+ }
+ 
+ /* Add an input operand to the instruction we're building, which has
+    code ICODE.  Calculate the value of the operand as follows:
+ 
+    - If the operand is a predicate, coerce X to have the
+      mode that the instruction expects.
+ 
+    - Otherwise use X directly.  The expand machinery checks that X has
+      the right mode for the instruction.  */
+ void
+ function_expander::add_input_operand (insn_code icode, rtx x)
+ {
+   unsigned int opno = m_ops.length ();
+   const insn_operand_data &operand = insn_data[icode].operand[opno];
+   machine_mode mode = operand.mode;
+   if (mode == VOIDmode)
+     {
+       /* The only allowable use of VOIDmode is the wildcard
+ 	 arm_any_register_operand, which is used to avoid
+ 	 combinatorial explosion in the reinterpret patterns.  */
+       gcc_assert (operand.predicate == arm_any_register_operand);
+       mode = GET_MODE (x);
+     }
+   else if (VALID_MVE_PRED_MODE (mode))
+     x = gen_lowpart (mode, x);
+ 
+   m_ops.safe_grow (m_ops.length () + 1, true);
+   create_input_operand (&m_ops.last (), x, mode);
+ }
+ 
+ /* Add an integer operand with value X to the instruction.  */
+ void
+ function_expander::add_integer_operand (HOST_WIDE_INT x)
+ {
+   m_ops.safe_grow (m_ops.length () + 1, true);
+   create_integer_operand (&m_ops.last (), x);
+ }
+ 
+ /* Add a memory operand with mode MODE and address ADDR.  */
+ void
+ function_expander::add_mem_operand (machine_mode mode, rtx addr)
+ {
+   gcc_assert (VECTOR_MODE_P (mode));
+   rtx mem = gen_rtx_MEM (mode, memory_address (mode, addr));
+   /* The memory is only guaranteed to be element-aligned.  */
+   set_mem_align (mem, GET_MODE_ALIGNMENT (GET_MODE_INNER (mode)));
+   add_fixed_operand (mem);
+ }
+ 
+ /* Add an operand that must be X.  The only way of legitimizing an
+    invalid X is to reload the address of a MEM.  */
+ void
+ function_expander::add_fixed_operand (rtx x)
+ {
+   m_ops.safe_grow (m_ops.length () + 1, true);
+   create_fixed_operand (&m_ops.last (), x);
+ }
+ 
+ /* Generate instruction ICODE, given that its operands have already
+    been added to M_OPS.  Return the value of the first operand.  */
+ rtx
+ function_expander::generate_insn (insn_code icode)
+ {
+   expand_insn (icode, m_ops.length (), m_ops.address ());
+   return function_returns_void_p () ? const0_rtx : m_ops[0].value;
+ }
+ 
+ /* Implement the call using instruction ICODE, with a 1:1 mapping between
+    arguments and input operands.  */
+ rtx
+ function_expander::use_exact_insn (insn_code icode)
+ {
+   unsigned int nops = insn_data[icode].n_operands;
+   if (!function_returns_void_p ())
+     {
+       add_output_operand (icode);
+       nops -= 1;
+     }
+   for (unsigned int i = 0; i < nops; ++i)
+     add_input_operand (icode, args[i]);
+   return generate_insn (icode);
+ }
+ 
+ /* Implement the call using instruction ICODE, which does not use a
+    predicate.  */
+ rtx
+ function_expander::use_unpred_insn (insn_code icode)
+ {
+   gcc_assert (pred == PRED_none);
+   /* Discount the output operand.  */
+   unsigned int nops = insn_data[icode].n_operands - 1;
+   unsigned int i = 0;
+ 
+   add_output_operand (icode);
+   for (; i < nops; ++i)
+     add_input_operand (icode, args[i]);
+ 
+   return generate_insn (icode);
+ }
+ 
+ /* Implement the call using instruction ICODE, which is a predicated
+    operation that returns arbitrary values for inactive lanes.  */
+ rtx
+ function_expander::use_pred_x_insn (insn_code icode)
+ {
+   gcc_assert (pred == PRED_x);
+   unsigned int nops = args.length ();
+ 
+   add_output_operand (icode);
+   /* Use first operand as arbitrary inactive input.  */
+   add_input_operand (icode, possible_target);
+   emit_clobber (possible_target);
+   /* Copy remaining arguments, including the final predicate.  */
+   for (unsigned int i = 0; i < nops; ++i)
+       add_input_operand (icode, args[i]);
+ 
+   return generate_insn (icode);
+ }
+ 
+ /* Implement the call using instruction ICODE, which does the equivalent of:
+ 
+      OUTPUT = COND ? FN (INPUTS) : FALLBACK;
+ 
+    The instruction operands are in the order above: OUTPUT, COND, INPUTS
+    and FALLBACK.  MERGE_ARGNO is the argument that provides FALLBACK for _m
+    functions, or DEFAULT_MERGE_ARGNO if we should apply the usual rules.  */
+ rtx
+ function_expander::use_cond_insn (insn_code icode, unsigned int merge_argno)
+ {
+   /* At present we never need to handle PRED_none, which would involve
+      creating a new predicate rather than using one supplied by the user.  */
+   gcc_assert (pred != PRED_none);
+   /* For MVE, we only handle PRED_m at present.  */
+   gcc_assert (pred == PRED_m);
+ 
+   /* Discount the output, predicate and fallback value.  */
+   unsigned int nops = insn_data[icode].n_operands - 3;
+   machine_mode mode = insn_data[icode].operand[0].mode;
+ 
+   unsigned int opno = 0;
+   rtx fallback_arg = NULL_RTX;
+   fallback_arg = get_fallback_value (mode, merge_argno, opno);
+   rtx pred_arg = args[nops + 1];
+ 
+   add_output_operand (icode);
+     add_input_operand (icode, fallback_arg);
+   for (unsigned int i = 0; i < nops; ++i)
+     add_input_operand (icode, args[opno + i]);
+   add_input_operand (icode, pred_arg);
+   return generate_insn (icode);
+ }
+ 
+ /* Implement the call using instruction ICODE, which loads memory operand 1
+    into register operand 0.  */
+ rtx
+ function_expander::use_contiguous_load_insn (insn_code icode)
+ {
+   machine_mode mem_mode = memory_vector_mode ();
+ 
+   add_output_operand (icode);
+   add_mem_operand (mem_mode, get_contiguous_base ());
+   return generate_insn (icode);
+ }
+ 
+ /* Implement the call using instruction ICODE, which stores register operand 1
+    into memory operand 0.  */
+ rtx
+ function_expander::use_contiguous_store_insn (insn_code icode)
+ {
+   machine_mode mem_mode = memory_vector_mode ();
+ 
+   add_mem_operand (mem_mode, get_contiguous_base ());
+   add_input_operand (icode, args[1]);
+   return generate_insn (icode);
+ }
+ 
+ /* Implement the call using a normal unpredicated optab for PRED_none.
+ 
+    <optab> corresponds to:
+ 
+    - CODE_FOR_SINT for signed integers
+    - CODE_FOR_UINT for unsigned integers
+    - CODE_FOR_FP for floating-point values  */
+ rtx
+ function_expander::map_to_rtx_codes (rtx_code code_for_sint,
+ 				     rtx_code code_for_uint,
+ 				     rtx_code code_for_fp)
+ {
+   gcc_assert (pred == PRED_none);
+   rtx_code code = type_suffix (0).integer_p ?
+     (type_suffix (0).unsigned_p ? code_for_uint : code_for_sint)
+     : code_for_fp;
+   insn_code icode = direct_optab_handler (code_to_optab (code), 0);
+   if (icode == CODE_FOR_nothing)
+     gcc_unreachable ();
+ 
+   return use_unpred_insn (icode);
+ }
+ 
+ /* Expand the call and return its lhs.  */
+ rtx
+ function_expander::expand ()
+ {
+   unsigned int nargs = call_expr_nargs (call_expr);
+   args.reserve (nargs);
+   for (unsigned int i = 0; i < nargs; ++i)
+     args.quick_push (expand_normal (CALL_EXPR_ARG (call_expr, i)));
+ 
+   return base->expand (*this);
+ }
+ 
+ /* If we're implementing manual overloading, check whether the MVE
+    function with subcode CODE is overloaded, and if so attempt to
+    determine the corresponding non-overloaded function.  The call
+    occurs at location LOCATION and has the arguments given by ARGLIST.
+ 
+    If the call is erroneous, report an appropriate error and return
+    error_mark_node.  Otherwise, if the function is overloaded, return
+    the decl of the non-overloaded function.  Return NULL_TREE otherwise,
+    indicating that the call should be processed in the normal way.  */
+ tree
+ resolve_overloaded_builtin (location_t location, unsigned int code,
+ 			    vec<tree, va_gc> *arglist)
+ {
+   if (code >= vec_safe_length (registered_functions))
+     return NULL_TREE;
+ 
+   registered_function &rfn = *(*registered_functions)[code];
+   if (rfn.overloaded_p)
+     return function_resolver (location, rfn.instance, rfn.decl,
+ 			      *arglist).resolve ();
+   return NULL_TREE;
+ }
+ 
+ /* Perform any semantic checks needed for a call to the MVE function
+    with subcode CODE, such as testing for integer constant expressions.
+    The call occurs at location LOCATION and has NARGS arguments,
+    given by ARGS.  FNDECL is the original function decl, before
+    overload resolution.
+ 
+    Return true if the call is valid, otherwise report a suitable error.  */
+ bool
+ check_builtin_call (location_t location, vec<location_t>, unsigned int code,
+ 		    tree fndecl, unsigned int nargs, tree *args)
+ {
+   const registered_function &rfn = *(*registered_functions)[code];
+   if (!check_requires_float (location, rfn.decl, rfn.requires_float))
+     return false;
+ 
+   return function_checker (location, rfn.instance, fndecl,
+ 			   TREE_TYPE (rfn.decl), nargs, args).check ();
+ }
+ 
+ /* Attempt to fold STMT, given that it's a call to the MVE function
+    with subcode CODE.  Return the new statement on success and null
+    on failure.  Insert any other new statements at GSI.  */
+ gimple *
+ gimple_fold_builtin (unsigned int code, gcall *stmt)
+ {
+   registered_function &rfn = *(*registered_functions)[code];
+   return gimple_folder (rfn.instance, rfn.decl, stmt).fold ();
+ }
+ 
+ /* Expand a call to the MVE function with subcode CODE.  EXP is the call
+    expression and TARGET is the preferred location for the result.
+    Return the value of the lhs.  */
+ rtx
+ expand_builtin (unsigned int code, tree exp, rtx target)
+ {
+   registered_function &rfn = *(*registered_functions)[code];
+   if (!check_requires_float (EXPR_LOCATION (exp), rfn.decl,
+ 			    rfn.requires_float))
+     return target;
+   return function_expander (rfn.instance, rfn.decl, exp, target).expand ();
+ }
+ 
  } /* end namespace arm_mve */
  
  using namespace arm_mve;
  
+ inline void
+ gt_ggc_mx (function_instance *)
+ {
+ }
+ 
+ inline void
+ gt_pch_nx (function_instance *)
+ {
+ }
+ 
+ inline void
+ gt_pch_nx (function_instance *, gt_pointer_operator, void *)
+ {
+ }
+ 
  #include "gt-arm-mve-builtins.h"
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins.def gcc-14.1.0/gcc/config/arm/arm-mve-builtins.def
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Builtin lists for Arm MVE
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Builtin lists for Arm MVE
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 17,39 ****
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
  #ifndef DEF_MVE_TYPE
! #error "arm-mve-builtins.def included without defining DEF_MVE_TYPE"
  #endif
  
  #define REQUIRES_FLOAT false
  DEF_MVE_TYPE (mve_pred16_t, boolean_type_node)
! DEF_MVE_TYPE (uint8x16_t, unsigned_intQI_type_node)
! DEF_MVE_TYPE (uint16x8_t, unsigned_intHI_type_node)
! DEF_MVE_TYPE (uint32x4_t, unsigned_intSI_type_node)
! DEF_MVE_TYPE (uint64x2_t, unsigned_intDI_type_node)
! DEF_MVE_TYPE (int8x16_t, intQI_type_node)
! DEF_MVE_TYPE (int16x8_t, intHI_type_node)
! DEF_MVE_TYPE (int32x4_t, intSI_type_node)
! DEF_MVE_TYPE (int64x2_t, intDI_type_node)
  #undef REQUIRES_FLOAT
  
  #define REQUIRES_FLOAT true
  DEF_MVE_TYPE (float16x8_t, arm_fp16_type_node)
  DEF_MVE_TYPE (float32x4_t, float_type_node)
  #undef REQUIRES_FLOAT
--- 17,80 ----
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
+ #ifndef DEF_MVE_MODE
+ #define DEF_MVE_MODE(A, B, C, D)
+ #endif
+ 
  #ifndef DEF_MVE_TYPE
! #define DEF_MVE_TYPE(A, B)
! #endif
! 
! #ifndef DEF_MVE_TYPE_SUFFIX
! #define DEF_MVE_TYPE_SUFFIX(A, B, C, D, E)
! #endif
! 
! #ifndef DEF_MVE_FUNCTION
! #define DEF_MVE_FUNCTION(A, B, C, D)
  #endif
  
+ DEF_MVE_MODE (n, none, none, none)
+ DEF_MVE_MODE (offset, none, none, bytes)
+ DEF_MVE_MODE (r, none, none, none)
+ 
  #define REQUIRES_FLOAT false
  DEF_MVE_TYPE (mve_pred16_t, boolean_type_node)
! DEF_MVE_TYPE (uint8x16_t, get_typenode_from_name (UINT8_TYPE))
! DEF_MVE_TYPE (uint16x8_t, get_typenode_from_name (UINT16_TYPE))
! DEF_MVE_TYPE (uint32x4_t, get_typenode_from_name (UINT32_TYPE))
! DEF_MVE_TYPE (uint64x2_t, get_typenode_from_name (UINT64_TYPE))
! DEF_MVE_TYPE (int8x16_t, get_typenode_from_name (INT8_TYPE))
! DEF_MVE_TYPE (int16x8_t, get_typenode_from_name (INT16_TYPE))
! DEF_MVE_TYPE (int32x4_t, get_typenode_from_name (INT32_TYPE))
! DEF_MVE_TYPE (int64x2_t, get_typenode_from_name (INT64_TYPE))
  #undef REQUIRES_FLOAT
  
  #define REQUIRES_FLOAT true
  DEF_MVE_TYPE (float16x8_t, arm_fp16_type_node)
  DEF_MVE_TYPE (float32x4_t, float_type_node)
  #undef REQUIRES_FLOAT
+ 
+ #define REQUIRES_FLOAT false
+ DEF_MVE_TYPE_SUFFIX (s8, int8x16_t, signed, 8, V16QImode)
+ DEF_MVE_TYPE_SUFFIX (s16, int16x8_t, signed, 16, V8HImode)
+ DEF_MVE_TYPE_SUFFIX (s32, int32x4_t, signed, 32, V4SImode)
+ DEF_MVE_TYPE_SUFFIX (s64, int64x2_t, signed, 64, V2DImode)
+ DEF_MVE_TYPE_SUFFIX (u8, uint8x16_t, unsigned, 8, V16QImode)
+ DEF_MVE_TYPE_SUFFIX (u16, uint16x8_t, unsigned, 16, V8HImode)
+ DEF_MVE_TYPE_SUFFIX (u32, uint32x4_t, unsigned, 32, V4SImode)
+ DEF_MVE_TYPE_SUFFIX (u64, uint64x2_t, unsigned, 64, V2DImode)
+ DEF_MVE_TYPE_SUFFIX (p8, uint8x16_t, poly, 8, V16QImode)
+ DEF_MVE_TYPE_SUFFIX (p16, uint16x8_t, poly, 16, V8HImode)
+ #undef REQUIRES_FLOAT
+ 
+ #define REQUIRES_FLOAT true
+ DEF_MVE_TYPE_SUFFIX (f16, float16x8_t, float, 16, V8HFmode)
+ DEF_MVE_TYPE_SUFFIX (f32, float32x4_t, float, 32, V4SFmode)
+ #undef REQUIRES_FLOAT
+ 
+ #include "arm-mve-builtins-base.def"
+ 
+ #undef DEF_MVE_TYPE
+ #undef DEF_MVE_TYPE_SUFFIX
+ #undef DEF_MVE_FUNCTION
+ #undef DEF_MVE_MODE
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-mve-builtins.h gcc-14.1.0/gcc/config/arm/arm-mve-builtins.h
*** gcc-13.2.0/gcc/config/arm/arm-mve-builtins.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-mve-builtins.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE support for Arm MVE
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* ACLE support for Arm MVE
!    Copyright (C) 2021-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 20,26 ****
--- 20,98 ----
  #ifndef GCC_ARM_MVE_BUILTINS_H
  #define GCC_ARM_MVE_BUILTINS_H
  
+ /* The full name of an MVE ACLE function is the concatenation of:
+ 
+    - the base name ("vadd", etc.)
+    - the "mode" suffix ("_n", "_index", etc.)
+    - the type suffixes ("_s32", "_b8", etc.)
+    - the predication suffix ("_x", "_z", etc.)
+ 
+    Each piece of information is individually useful, so we retain this
+    classification throughout:
+ 
+    - function_base represents the base name
+ 
+    - mode_suffix_index represents the mode suffix
+ 
+    - type_suffix_index represents individual type suffixes, while
+      type_suffix_pair represents a pair of them
+ 
+    - prediction_index extends the predication suffix with an additional
+      alternative: PRED_implicit for implicitly-predicated operations
+ 
+    In addition to its unique full name, a function may have a shorter
+    overloaded alias.  This alias removes pieces of the suffixes that
+    can be inferred from the arguments, such as by shortening the mode
+    suffix or dropping some of the type suffixes.  The base name and the
+    predication suffix stay the same.
+ 
+    The function_shape class describes what arguments a given function
+    takes and what its overloaded alias is called.  In broad terms,
+    function_base describes how the underlying instruction behaves while
+    function_shape describes how that instruction has been presented at
+    the language level.
+ 
+    The static list of functions uses function_group to describe a group
+    of related functions.  The function_builder class is responsible for
+    expanding this static description into a list of individual functions
+    and registering the associated built-in functions.  function_instance
+    describes one of these individual functions in terms of the properties
+    described above.
+ 
+    The classes involved in compiling a function call are:
+ 
+    - function_resolver, which resolves an overloaded function call to a
+      specific function_instance and its associated function decl
+ 
+    - function_checker, which checks whether the values of the arguments
+      conform to the ACLE specification
+ 
+    - gimple_folder, which tries to fold a function call at the gimple level
+ 
+    - function_expander, which expands a function call into rtl instructions
+ 
+    function_resolver and function_checker operate at the language level
+    and so are associated with the function_shape.  gimple_folder and
+    function_expander are concerned with the behavior of the function
+    and so are associated with the function_base.
+ 
+    Note that we've specifically chosen not to fold calls in the frontend,
+    since MVE intrinsics will hardly ever fold a useful language-level
+    constant.  */
  namespace arm_mve {
+ /* The maximum number of vectors in an ACLE tuple type.  */
+ const unsigned int MAX_TUPLE_SIZE = 3;
+ 
+ /* Used to represent the default merge argument index for _m functions.
+    The actual index depends on how many arguments the function takes.  */
+ const unsigned int DEFAULT_MERGE_ARGNO = 0;
+ 
+ /* Flags that describe what a function might do, in addition to reading
+    its arguments and returning a result.  */
+ const unsigned int CP_READ_FPCR = 1U << 0;
+ const unsigned int CP_RAISE_FP_EXCEPTIONS = 1U << 1;
+ const unsigned int CP_READ_MEMORY = 1U << 2;
+ const unsigned int CP_WRITE_MEMORY = 1U << 3;
  
  /* Enumerates the MVE predicate and (data) vector types, together called
     "vector types" for brevity.  */
*************** enum vector_type_index
*** 30,40 ****
    VECTOR_TYPE_ ## ACLE_NAME,
  #include "arm-mve-builtins.def"
    NUM_VECTOR_TYPES
- #undef DEF_MVE_TYPE
  };
  
  extern tree scalar_types[NUM_VECTOR_TYPES];
! extern tree acle_vector_types[3][NUM_VECTOR_TYPES + 1];
  
  } /* end namespace arm_mve */
  
--- 102,754 ----
    VECTOR_TYPE_ ## ACLE_NAME,
  #include "arm-mve-builtins.def"
    NUM_VECTOR_TYPES
  };
  
+ /* Classifies the available measurement units for an address displacement.  */
+ enum units_index
+ {
+   UNITS_none,
+   UNITS_bytes
+ };
+ 
+ /* Describes the various uses of a governing predicate.  */
+ enum predication_index
+ {
+   /* No governing predicate is present.  */
+   PRED_none,
+ 
+   /* Merging predication: copy inactive lanes from the first data argument
+      to the vector result.  */
+   PRED_m,
+ 
+   /* Plain predication: inactive lanes are not used to compute the
+      scalar result.  */
+   PRED_p,
+ 
+   /* "Don't care" predication: set inactive lanes of the vector result
+      to arbitrary values.  */
+   PRED_x,
+ 
+   /* Zero predication: set inactive lanes of the vector result to zero.  */
+   PRED_z,
+ 
+   NUM_PREDS
+ };
+ 
+ /* Some shapes need access to some predicate sets.  */
+ extern const predication_index preds_m_or_none[];
+ 
+ /* Classifies element types, based on type suffixes with the bit count
+    removed.  */
+ enum type_class_index
+ {
+   TYPE_bool,
+   TYPE_float,
+   TYPE_signed,
+   TYPE_unsigned,
+   TYPE_poly,
+   NUM_TYPE_CLASSES
+ };
+ 
+ /* Classifies an operation into "modes"; for example, to distinguish
+    vector-scalar operations from vector-vector operations, or to
+    distinguish between different addressing modes.  This classification
+    accounts for the function suffixes that occur between the base name
+    and the first type suffix.  */
+ enum mode_suffix_index
+ {
+ #define DEF_MVE_MODE(NAME, BASE, DISPLACEMENT, UNITS) MODE_##NAME,
+ #include "arm-mve-builtins.def"
+   MODE_none
+ };
+ 
+ /* Enumerates the possible type suffixes.  Each suffix is associated with
+    a vector type, but for predicates provides extra information about the
+    element size.  */
+ enum type_suffix_index
+ {
+ #define DEF_MVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE)	\
+   TYPE_SUFFIX_ ## NAME,
+ #include "arm-mve-builtins.def"
+   NUM_TYPE_SUFFIXES
+ };
+ 
+ /* Combines two type suffixes.  */
+ typedef enum type_suffix_index type_suffix_pair[2];
+ 
+ class function_base;
+ class function_shape;
+ 
+ /* Static information about a mode suffix.  */
+ struct mode_suffix_info
+ {
+   /* The suffix string itself.  */
+   const char *string;
+ 
+   /* The type of the vector base address, or NUM_VECTOR_TYPES if the
+      mode does not include a vector base address.  */
+   vector_type_index base_vector_type;
+ 
+   /* The type of the vector displacement, or NUM_VECTOR_TYPES if the
+      mode does not include a vector displacement.  (Note that scalar
+      displacements are always int64_t.)  */
+   vector_type_index displacement_vector_type;
+ 
+   /* The units in which the vector or scalar displacement is measured,
+      or UNITS_none if the mode doesn't take a displacement.  */
+   units_index displacement_units;
+ };
+ 
+ /* Static information about a type suffix.  */
+ struct type_suffix_info
+ {
+   /* The suffix string itself.  */
+   const char *string;
+ 
+   /* The associated ACLE vector or predicate type.  */
+   vector_type_index vector_type : 8;
+ 
+   /* What kind of type the suffix represents.  */
+   type_class_index tclass : 8;
+ 
+   /* The number of bits and bytes in an element.  For predicates this
+      measures the associated data elements.  */
+   unsigned int element_bits : 8;
+   unsigned int element_bytes : 8;
+ 
+   /* True if the suffix is for an integer type.  */
+   unsigned int integer_p : 1;
+   /* True if the suffix is for an unsigned type.  */
+   unsigned int unsigned_p : 1;
+   /* True if the suffix is for a floating-point type.  */
+   unsigned int float_p : 1;
+   /* True if the suffix is for a polynomial type.  */
+   unsigned int poly_p : 1;
+   unsigned int spare : 12;
+ 
+   /* The associated vector or predicate mode.  */
+   machine_mode vector_mode : 16;
+ };
+ 
+ /* Static information about a set of functions.  */
+ struct function_group_info
+ {
+   /* The base name, as a string.  */
+   const char *base_name;
+ 
+   /* Describes the behavior associated with the function base name.  */
+   const function_base *const *base;
+ 
+   /* The shape of the functions, as described above the class definition.
+      It's possible to have entries with the same base name but different
+      shapes.  */
+   const function_shape *const *shape;
+ 
+   /* A list of the available type suffixes, and of the available predication
+      types.  The function supports every combination of the two.
+ 
+      The list of type suffixes is terminated by two NUM_TYPE_SUFFIXES
+      while the list of predication types is terminated by NUM_PREDS.
+      The list of type suffixes is lexicographically ordered based
+      on the index value.  */
+   const type_suffix_pair *types;
+   const predication_index *preds;
+ 
+   /* Whether the function group requires a floating point abi.  */
+   bool requires_float;
+ };
+ 
+ /* Describes a single fully-resolved function (i.e. one that has a
+    unique full name).  */
+ class GTY((user)) function_instance
+ {
+ public:
+   function_instance (const char *, const function_base *,
+ 		     const function_shape *, mode_suffix_index,
+ 		     const type_suffix_pair &, predication_index);
+ 
+   bool operator== (const function_instance &) const;
+   bool operator!= (const function_instance &) const;
+   hashval_t hash () const;
+ 
+   unsigned int call_properties () const;
+   bool reads_global_state_p () const;
+   bool modifies_global_state_p () const;
+   bool could_trap_p () const;
+ 
+   unsigned int vectors_per_tuple () const;
+   tree memory_scalar_type () const;
+   machine_mode memory_vector_mode () const;
+ 
+   const mode_suffix_info &mode_suffix () const;
+ 
+   const type_suffix_info &type_suffix (unsigned int) const;
+   tree scalar_type (unsigned int) const;
+   tree vector_type (unsigned int) const;
+   tree tuple_type (unsigned int) const;
+   machine_mode vector_mode (unsigned int) const;
+   machine_mode gp_mode (unsigned int) const;
+ 
+   bool has_inactive_argument () const;
+ 
+   /* The properties of the function.  (The explicit "enum"s are required
+      for gengtype.)  */
+   const char *base_name;
+   const function_base *base;
+   const function_shape *shape;
+   enum mode_suffix_index mode_suffix_id;
+   type_suffix_pair type_suffix_ids;
+   enum predication_index pred;
+ };
+ 
+ class registered_function;
+ 
+ /* A class for building and registering function decls.  */
+ class function_builder
+ {
+ public:
+   function_builder ();
+   ~function_builder ();
+ 
+   void add_unique_function (const function_instance &, tree,
+ 			    vec<tree> &, bool, bool, bool);
+   void add_overloaded_function (const function_instance &, bool, bool);
+   void add_overloaded_functions (const function_group_info &,
+ 				 mode_suffix_index, bool);
+ 
+   void register_function_group (const function_group_info &, bool);
+ 
+ private:
+   void append_name (const char *);
+   char *finish_name ();
+ 
+   char *get_name (const function_instance &, bool, bool);
+ 
+   tree get_attributes (const function_instance &);
+ 
+   registered_function &add_function (const function_instance &,
+ 				     const char *, tree, tree,
+ 				     bool, bool, bool);
+ 
+   /* The function type to use for functions that are resolved by
+      function_resolver.  */
+   tree m_overload_type;
+ 
+   /* True if we should create a separate decl for each instance of an
+      overloaded function, instead of using function_resolver.  */
+   bool m_direct_overloads;
+ 
+   /* Used for building up function names.  */
+   obstack m_string_obstack;
+ 
+   /* Maps all overloaded function names that we've registered so far
+      to their associated function_instances.  */
+   hash_map<nofree_string_hash, registered_function *> m_overload_names;
+ };
+ 
+ /* A base class for handling calls to built-in functions.  */
+ class function_call_info : public function_instance
+ {
+ public:
+   function_call_info (location_t, const function_instance &, tree);
+ 
+   bool function_returns_void_p ();
+ 
+   /* The location of the call.  */
+   location_t location;
+ 
+   /* The FUNCTION_DECL that is being called.  */
+   tree fndecl;
+ };
+ 
+ /* A class for resolving an overloaded function call.  */
+ class function_resolver : public function_call_info
+ {
+ public:
+   enum { SAME_SIZE = 256, HALF_SIZE, QUARTER_SIZE };
+   static const type_class_index SAME_TYPE_CLASS = NUM_TYPE_CLASSES;
+ 
+   function_resolver (location_t, const function_instance &, tree,
+ 		     vec<tree, va_gc> &);
+ 
+   tree get_vector_type (type_suffix_index);
+   const char *get_scalar_type_name (type_suffix_index);
+   tree get_argument_type (unsigned int);
+   bool scalar_argument_p (unsigned int);
+ 
+   tree report_no_such_form (type_suffix_index);
+   tree lookup_form (mode_suffix_index,
+ 		    type_suffix_index = NUM_TYPE_SUFFIXES,
+ 		    type_suffix_index = NUM_TYPE_SUFFIXES);
+   tree resolve_to (mode_suffix_index,
+ 		   type_suffix_index = NUM_TYPE_SUFFIXES,
+ 		   type_suffix_index = NUM_TYPE_SUFFIXES);
+ 
+   type_suffix_index infer_pointer_type (unsigned int);
+   type_suffix_index infer_vector_or_tuple_type (unsigned int, unsigned int);
+   type_suffix_index infer_vector_type (unsigned int);
+ 
+   bool require_vector_or_scalar_type (unsigned int);
+ 
+   bool require_vector_type (unsigned int, vector_type_index);
+   bool require_matching_vector_type (unsigned int, type_suffix_index);
+   bool require_derived_vector_type (unsigned int, unsigned int,
+ 				    type_suffix_index,
+ 				    type_class_index = SAME_TYPE_CLASS,
+ 				    unsigned int = SAME_SIZE);
+   bool require_scalar_type (unsigned int, const char *);
+   bool require_pointer_type (unsigned int);
+   bool require_integer_immediate (unsigned int);
+   bool require_derived_scalar_type (unsigned int, type_class_index,
+ 				    unsigned int = SAME_SIZE);
+   
+   bool check_num_arguments (unsigned int);
+   bool check_gp_argument (unsigned int, unsigned int &, unsigned int &);
+   tree resolve_unary (type_class_index = SAME_TYPE_CLASS,
+ 		      unsigned int = SAME_SIZE, bool = false);
+   tree resolve_unary_n ();
+   tree resolve_uniform (unsigned int, unsigned int = 0);
+   tree resolve_uniform_opt_n (unsigned int);
+   tree finish_opt_n_resolution (unsigned int, unsigned int, type_suffix_index,
+ 				type_class_index = SAME_TYPE_CLASS,
+ 				unsigned int = SAME_SIZE,
+ 				type_suffix_index = NUM_TYPE_SUFFIXES);
+ 
+   tree resolve ();
+ 
+ private:
+   /* The arguments to the overloaded function.  */
+   vec<tree, va_gc> &m_arglist;
+ };
+ 
+ /* A class for checking that the semantic constraints on a function call are
+    satisfied, such as arguments being integer constant expressions with
+    a particular range.  The parent class's FNDECL is the decl that was
+    called in the original source, before overload resolution.  */
+ class function_checker : public function_call_info
+ {
+ public:
+   function_checker (location_t, const function_instance &, tree,
+ 		    tree, unsigned int, tree *);
+ 
+   bool require_immediate_enum (unsigned int, tree);
+   bool require_immediate_lane_index (unsigned int, unsigned int = 1);
+   bool require_immediate_range (unsigned int, HOST_WIDE_INT, HOST_WIDE_INT);
+ 
+   bool check ();
+ 
+ private:
+   bool argument_exists_p (unsigned int);
+ 
+   bool require_immediate (unsigned int, HOST_WIDE_INT &);
+ 
+   /* The type of the resolved function.  */
+   tree m_fntype;
+ 
+   /* The arguments to the function.  */
+   unsigned int m_nargs;
+   tree *m_args;
+ 
+   /* The first argument not associated with the function's predication
+      type.  */
+   unsigned int m_base_arg;
+ };
+ 
+ /* A class for folding a gimple function call.  */
+ class gimple_folder : public function_call_info
+ {
+ public:
+   gimple_folder (const function_instance &, tree,
+ 		 gcall *);
+ 
+   gimple *fold ();
+ 
+   /* The call we're folding.  */
+   gcall *call;
+ 
+   /* The result of the call, or null if none.  */
+   tree lhs;
+ };
+ 
+ /* A class for expanding a function call into RTL.  */
+ class function_expander : public function_call_info
+ {
+ public:
+   function_expander (const function_instance &, tree, tree, rtx);
+   rtx expand ();
+ 
+   insn_code direct_optab_handler (optab, unsigned int = 0);
+ 
+   rtx get_contiguous_base ();
+   rtx get_fallback_value (machine_mode, unsigned int, unsigned int &);
+   rtx get_reg_target ();
+ 
+   void add_output_operand (insn_code);
+   void add_input_operand (insn_code, rtx);
+   void add_integer_operand (HOST_WIDE_INT);
+   void add_mem_operand (machine_mode, rtx);
+   void add_fixed_operand (rtx);
+   rtx generate_insn (insn_code);
+ 
+   rtx use_exact_insn (insn_code);
+   rtx use_unpred_insn (insn_code);
+   rtx use_pred_x_insn (insn_code);
+   rtx use_cond_insn (insn_code, unsigned int = DEFAULT_MERGE_ARGNO);
+   rtx use_contiguous_load_insn (insn_code);
+   rtx use_contiguous_store_insn (insn_code);
+ 
+   rtx map_to_rtx_codes (rtx_code, rtx_code, rtx_code);
+ 
+   /* The function call expression.  */
+   tree call_expr;
+ 
+   /* For functions that return a value, this is the preferred location
+      of that value.  It could be null or could have a different mode
+      from the function return type.  */
+   rtx possible_target;
+ 
+   /* The expanded arguments.  */
+   auto_vec<rtx, 16> args;
+ 
+ private:
+   /* Used to build up the operands to an instruction.  */
+   auto_vec<expand_operand, 8> m_ops;
+ };
+ 
+ /* Provides information about a particular function base name, and handles
+    tasks related to the base name.  */
+ class function_base
+ {
+ public:
+   /* Return a set of CP_* flags that describe what the function might do,
+      in addition to reading its arguments and returning a result.  */
+   virtual unsigned int call_properties (const function_instance &) const;
+ 
+   /* If the function operates on tuples of vectors, return the number
+      of vectors in the tuples, otherwise return 1.  */
+   virtual unsigned int vectors_per_tuple () const { return 1; }
+ 
+   /* If the function addresses memory, return the type of a single
+      scalar memory element.  */
+   virtual tree
+   memory_scalar_type (const function_instance &) const
+   {
+     gcc_unreachable ();
+   }
+ 
+   /* If the function addresses memory, return a vector mode whose
+      GET_MODE_NUNITS is the number of elements addressed and whose
+      GET_MODE_INNER is the mode of a single scalar memory element.  */
+   virtual machine_mode
+   memory_vector_mode (const function_instance &) const
+   {
+     gcc_unreachable ();
+   }
+ 
+   /* Try to fold the given gimple call.  Return the new gimple statement
+      on success, otherwise return null.  */
+   virtual gimple *fold (gimple_folder &) const { return NULL; }
+ 
+   /* Expand the given call into rtl.  Return the result of the function,
+      or an arbitrary value if the function doesn't return a result.  */
+   virtual rtx expand (function_expander &) const = 0;
+ };
+ 
+ /* Classifies functions into "shapes".  The idea is to take all the
+    type signatures for a set of functions, and classify what's left
+    based on:
+ 
+    - the number of arguments
+ 
+    - the process of determining the types in the signature from the mode
+      and type suffixes in the function name (including types that are not
+      affected by the suffixes)
+ 
+    - which arguments must be integer constant expressions, and what range
+      those arguments have
+ 
+    - the process for mapping overloaded names to "full" names.  */
+ class function_shape
+ {
+ public:
+   virtual bool explicit_type_suffix_p (unsigned int, enum predication_index, enum mode_suffix_index) const = 0;
+   virtual bool explicit_mode_suffix_p (enum predication_index, enum mode_suffix_index) const = 0;
+   virtual bool skip_overload_p (enum predication_index, enum mode_suffix_index) const = 0;
+ 
+   /* Define all functions associated with the given group.  */
+   virtual void build (function_builder &,
+ 		      const function_group_info &,
+ 		      bool) const = 0;
+ 
+   /* Try to resolve the overloaded call.  Return the non-overloaded
+      function decl on success and error_mark_node on failure.  */
+   virtual tree resolve (function_resolver &) const = 0;
+ 
+   /* Check whether the given call is semantically valid.  Return true
+      if it is, otherwise report an error and return false.  */
+   virtual bool check (function_checker &) const { return true; }
+ };
+ 
+ extern const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1];
+ extern const mode_suffix_info mode_suffixes[MODE_none + 1];
+ 
  extern tree scalar_types[NUM_VECTOR_TYPES];
! extern tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
! 
! /* Return the ACLE type mve_pred16_t.  */
! inline tree
! get_mve_pred16_t (void)
! {
!   return acle_vector_types[0][VECTOR_TYPE_mve_pred16_t];
! }
! 
! /* Try to find a mode with the given mode_suffix_info fields.  Return the
!    mode on success or MODE_none on failure.  */
! inline mode_suffix_index
! find_mode_suffix (vector_type_index base_vector_type,
! 		  vector_type_index displacement_vector_type,
! 		  units_index displacement_units)
! {
!   for (unsigned int mode_i = 0; mode_i < ARRAY_SIZE (mode_suffixes); ++mode_i)
!     {
!       const mode_suffix_info &mode = mode_suffixes[mode_i];
!       if (mode.base_vector_type == base_vector_type
! 	  && mode.displacement_vector_type == displacement_vector_type
! 	  && mode.displacement_units == displacement_units)
! 	return mode_suffix_index (mode_i);
!     }
!   return MODE_none;
! }
! 
! /* Return the type suffix associated with ELEMENT_BITS-bit elements of type
!    class TCLASS.  */
! inline type_suffix_index
! find_type_suffix (type_class_index tclass, unsigned int element_bits)
! {
!   for (unsigned int i = 0; i < NUM_TYPE_SUFFIXES; ++i)
!     if (type_suffixes[i].tclass == tclass
! 	&& type_suffixes[i].element_bits == element_bits)
!       return type_suffix_index (i);
!   gcc_unreachable ();
! }
! 
! inline function_instance::
! function_instance (const char *base_name_in,
! 		   const function_base *base_in,
! 		   const function_shape *shape_in,
! 		   mode_suffix_index mode_suffix_id_in,
! 		   const type_suffix_pair &type_suffix_ids_in,
! 		   predication_index pred_in)
!   : base_name (base_name_in), base (base_in), shape (shape_in),
!     mode_suffix_id (mode_suffix_id_in), pred (pred_in)
! {
!   memcpy (type_suffix_ids, type_suffix_ids_in, sizeof (type_suffix_ids));
! }
! 
! inline bool
! function_instance::operator== (const function_instance &other) const
! {
!   return (base == other.base
! 	  && shape == other.shape
! 	  && mode_suffix_id == other.mode_suffix_id
! 	  && pred == other.pred
! 	  && type_suffix_ids[0] == other.type_suffix_ids[0]
! 	  && type_suffix_ids[1] == other.type_suffix_ids[1]);
! }
! 
! inline bool
! function_instance::operator!= (const function_instance &other) const
! {
!   return !operator== (other);
! }
! 
! /* If the function operates on tuples of vectors, return the number
!    of vectors in the tuples, otherwise return 1.  */
! inline unsigned int
! function_instance::vectors_per_tuple () const
! {
!   return base->vectors_per_tuple ();
! }
! 
! /* If the function addresses memory, return the type of a single
!    scalar memory element.  */
! inline tree
! function_instance::memory_scalar_type () const
! {
!   return base->memory_scalar_type (*this);
! }
! 
! /* If the function addresses memory, return a vector mode whose
!    GET_MODE_NUNITS is the number of elements addressed and whose
!    GET_MODE_INNER is the mode of a single scalar memory element.  */
! inline machine_mode
! function_instance::memory_vector_mode () const
! {
!   return base->memory_vector_mode (*this);
! }
! 
! /* Return information about the function's mode suffix.  */
! inline const mode_suffix_info &
! function_instance::mode_suffix () const
! {
!   return mode_suffixes[mode_suffix_id];
! }
! 
! /* Return information about type suffix I.  */
! inline const type_suffix_info &
! function_instance::type_suffix (unsigned int i) const
! {
!   return type_suffixes[type_suffix_ids[i]];
! }
! 
! /* Return the scalar type associated with type suffix I.  */
! inline tree
! function_instance::scalar_type (unsigned int i) const
! {
!   return scalar_types[type_suffix (i).vector_type];
! }
! 
! /* Return the vector type associated with type suffix I.  */
! inline tree
! function_instance::vector_type (unsigned int i) const
! {
!   return acle_vector_types[0][type_suffix (i).vector_type];
! }
! 
! /* If the function operates on tuples of vectors, return the tuple type
!    associated with type suffix I, otherwise return the vector type associated
!    with type suffix I.  */
! inline tree
! function_instance::tuple_type (unsigned int i) const
! {
!   unsigned int num_vectors = vectors_per_tuple ();
!   return acle_vector_types[num_vectors - 1][type_suffix (i).vector_type];
! }
! 
! /* Return the vector or predicate mode associated with type suffix I.  */
! inline machine_mode
! function_instance::vector_mode (unsigned int i) const
! {
!   return type_suffix (i).vector_mode;
! }
! 
! /* Return true if the function has no return value.  */
! inline bool
! function_call_info::function_returns_void_p ()
! {
!   return TREE_TYPE (TREE_TYPE (fndecl)) == void_type_node;
! }
! 
! /* Default implementation of function::call_properties, with conservatively
!    correct behavior for floating-point instructions.  */
! inline unsigned int
! function_base::call_properties (const function_instance &instance) const
! {
!   unsigned int flags = 0;
!   if (instance.type_suffix (0).float_p || instance.type_suffix (1).float_p)
!     flags |= CP_READ_FPCR | CP_RAISE_FP_EXCEPTIONS;
!   return flags;
! }
  
  } /* end namespace arm_mve */
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-opts.h gcc-14.1.0/gcc/config/arm/arm-opts.h
*** gcc-13.2.0/gcc/config/arm/arm-opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-opts.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for option handling for ARM.
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for option handling for ARM.
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** enum float_abi_type
*** 61,67 ****
  enum arm_tp_type {
    TP_AUTO,
    TP_SOFT,
!   TP_CP15
  };
  
  /* Which TLS scheme to use.  */
--- 61,69 ----
  enum arm_tp_type {
    TP_AUTO,
    TP_SOFT,
!   TP_TPIDRURW,
!   TP_TPIDRURO,
!   TP_TPIDRPRW
  };
  
  /* Which TLS scheme to use.  */
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-passes.def gcc-14.1.0/gcc/config/arm/arm-passes.def
*** gcc-13.2.0/gcc/config/arm/arm-passes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-passes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Arm-specific passes declarations.
!    Copyright (C) 2022 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Arm-specific passes declarations.
!    Copyright (C) 2022-2024 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-protos.h gcc-14.1.0/gcc/config/arm/arm-protos.h
*** gcc-13.2.0/gcc/config/arm/arm-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Prototypes for exported functions defined in arm.cc and pe.c
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
     Contributed by Richard Earnshaw (rearnsha@arm.com)
     Minor hacks by Nick Clifton (nickc@cygnus.com)
  
--- 1,5 ----
  /* Prototypes for exported functions defined in arm.cc and pe.c
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
     Contributed by Richard Earnshaw (rearnsha@arm.com)
     Minor hacks by Nick Clifton (nickc@cygnus.com)
  
***************
*** 23,28 ****
--- 23,29 ----
  #define GCC_ARM_PROTOS_H
  
  #include "sbitmap.h"
+ #include "tree.h" /* For ERROR_MARK.  */
  
  rtl_opt_pass *make_pass_insert_bti (gcc::context *ctxt);
  
*************** extern int arm_split_constant (RTX_CODE,
*** 83,89 ****
  extern int legitimate_pic_operand_p (rtx);
  extern rtx legitimize_pic_address (rtx, machine_mode, rtx, rtx, bool);
  extern rtx legitimize_tls_address (rtx, rtx);
! extern bool arm_legitimate_address_p (machine_mode, rtx, bool);
  extern int arm_legitimate_address_outer_p (machine_mode, rtx, RTX_CODE, int);
  extern int thumb_legitimate_offset_p (machine_mode, HOST_WIDE_INT);
  extern int thumb1_legitimate_address_p (machine_mode, rtx, int);
--- 84,91 ----
  extern int legitimate_pic_operand_p (rtx);
  extern rtx legitimize_pic_address (rtx, machine_mode, rtx, rtx, bool);
  extern rtx legitimize_tls_address (rtx, rtx);
! extern bool arm_legitimate_address_p (machine_mode, rtx, bool,
! 				      code_helper = ERROR_MARK);
  extern int arm_legitimate_address_outer_p (machine_mode, rtx, RTX_CODE, int);
  extern int thumb_legitimate_offset_p (machine_mode, HOST_WIDE_INT);
  extern int thumb1_legitimate_address_p (machine_mode, rtx, int);
*************** extern bool arm_is_long_call_p (tree);
*** 182,187 ****
--- 184,190 ----
  extern int    arm_emit_vector_const (FILE *, rtx);
  extern void arm_emit_fp16_const (rtx c);
  extern const char * arm_output_load_gr (rtx *);
+ extern const char * arm_output_load_tpidr (rtx, bool);
  extern const char *vfp_output_vstmd (rtx *);
  extern void arm_output_multireg_pop (rtx *, bool, rtx, bool, bool);
  extern void arm_set_return_address (rtx, rtx);
*************** extern opt_machine_mode arm_get_mask_mod
*** 210,218 ****
--- 213,246 ----
  
  #endif /* RTX_CODE */
  
+ /* It's convenient to divide the built-in function codes into groups,
+    rather than having everything in a single enum.  This type enumerates
+    those groups.  */
+ enum arm_builtin_class
+ {
+   ARM_BUILTIN_GENERAL,
+   ARM_BUILTIN_MVE
+ };
+ 
+ /* Built-in function codes are structured so that the low
+    ARM_BUILTIN_SHIFT bits contain the arm_builtin_class
+    and the upper bits contain a group-specific subcode.  */
+ const unsigned int ARM_BUILTIN_SHIFT = 1;
+ 
+ /* Mask that selects the arm part of a function code.  */
+ const unsigned int ARM_BUILTIN_CLASS = (1 << ARM_BUILTIN_SHIFT) - 1;
+ 
  /* MVE functions.  */
  namespace arm_mve {
    void handle_arm_mve_types_h ();
+   void handle_arm_mve_h (bool);
+   tree builtin_decl (unsigned);
+   tree resolve_overloaded_builtin (location_t, unsigned int,
+ 				   vec<tree, va_gc> *);
+   bool check_builtin_call (location_t, vec<location_t>, unsigned int,
+ 			   tree, unsigned int, tree *);
+   gimple *gimple_fold_builtin (unsigned int code, gcall *stmt);
+   rtx expand_builtin (unsigned int, tree, rtx);
  }
  
  /* Thumb functions.  */
*************** extern void thumb_expand_cpymemqi (rtx *
*** 233,238 ****
--- 261,267 ----
  extern rtx arm_return_addr (int, rtx);
  extern void thumb_reload_out_hi (rtx *);
  extern void thumb_set_return_address (rtx, rtx);
+ extern const char *arm_output_casesi (rtx *);
  extern const char *thumb1_output_casesi (rtx *);
  extern const char *thumb2_output_casesi (rtx *);
  #endif
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-simd-builtin-types.def gcc-14.1.0/gcc/config/arm/arm-simd-builtin-types.def
*** gcc-13.2.0/gcc/config/arm/arm-simd-builtin-types.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm-simd-builtin-types.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Builtin AdvSIMD types.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Builtin AdvSIMD types.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-tables.opt gcc-14.1.0/gcc/config/arm/arm-tables.opt
*** gcc-13.2.0/gcc/config/arm/arm-tables.opt	Thu Jul 27 08:17:14 2023
--- gcc-14.1.0/gcc/config/arm/arm-tables.opt	Tue May  7 06:52:51 2024
***************
*** 2,8 ****
  ; Generated automatically by parsecpu.awk from arm-cpus.in.
  ; Do not edit.
  
! ; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  ; This file is part of GCC.
  
--- 2,8 ----
  ; Generated automatically by parsecpu.awk from arm-cpus.in.
  ; Do not edit.
  
! ; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  ; This file is part of GCC.
  
*************** EnumValue
*** 283,288 ****
--- 283,291 ----
  Enum(processor_type) String(cortex-m35p) Value( TARGET_CPU_cortexm35p)
  
  EnumValue
+ Enum(processor_type) String(cortex-m52) Value( TARGET_CPU_cortexm52)
+ 
+ EnumValue
  Enum(processor_type) String(cortex-m55) Value( TARGET_CPU_cortexm55)
  
  EnumValue
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-tables.opt.urls gcc-14.1.0/gcc/config/arm/arm-tables.opt.urls
*** gcc-13.2.0/gcc/config/arm/arm-tables.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/arm-tables.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/arm/arm-tables.opt and generated HTML
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm-tune.md gcc-14.1.0/gcc/config/arm/arm-tune.md
*** gcc-13.2.0/gcc/config/arm/arm-tune.md	Thu Jul 27 08:17:14 2023
--- gcc-14.1.0/gcc/config/arm/arm-tune.md	Tue May  7 06:52:51 2024
***************
*** 2,8 ****
  ; Generated automatically by parsecpu.awk from arm-cpus.in.
  ; Do not edit.
  
! ; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  ; This file is part of GCC.
  
--- 2,8 ----
  ; Generated automatically by parsecpu.awk from arm-cpus.in.
  ; Do not edit.
  
! ; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  ; This file is part of GCC.
  
***************
*** 49,55 ****
  	cortexa710,cortexx1,cortexx1c,
  	neoversen1,cortexa75cortexa55,cortexa76cortexa55,
  	neoversev1,neoversen2,cortexm23,
! 	cortexm33,cortexm35p,cortexm55,
! 	starmc1,cortexm85,cortexr52,
! 	cortexr52plus"
  	(const (symbol_ref "((enum attr_tune) arm_tune)")))
--- 49,55 ----
  	cortexa710,cortexx1,cortexx1c,
  	neoversen1,cortexa75cortexa55,cortexa76cortexa55,
  	neoversev1,neoversen2,cortexm23,
! 	cortexm33,cortexm35p,cortexm52,
! 	cortexm55,starmc1,cortexm85,
! 	cortexr52,cortexr52plus"
  	(const (symbol_ref "((enum attr_tune) arm_tune)")))
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm.cc gcc-14.1.0/gcc/config/arm/arm.cc
*** gcc-13.2.0/gcc/config/arm/arm.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Output routines for GCC for ARM.
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
     Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
     and Martin Simmons (@harleqn.co.uk).
     More major hacks by Richard Earnshaw (rearnsha@arm.com).
--- 1,5 ----
  /* Output routines for GCC for ARM.
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
     Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
     and Martin Simmons (@harleqn.co.uk).
     More major hacks by Richard Earnshaw (rearnsha@arm.com).
***************
*** 69,74 ****
--- 69,75 ----
  #include "optabs-libfuncs.h"
  #include "gimplify.h"
  #include "gimple.h"
+ #include "gimple-iterator.h"
  #include "selftest.h"
  #include "tree-vectorizer.h"
  #include "opts.h"
*************** static HOST_WIDE_INT arm_constant_alignm
*** 327,337 ****
  static rtx_insn *thumb1_md_asm_adjust (vec<rtx> &, vec<rtx> &,
  				       vec<machine_mode> &,
  				       vec<const char *> &, vec<rtx> &,
! 				       HARD_REG_SET &, location_t);
  static const char *arm_identify_fpu_from_isa (sbitmap);
  
  /* Table of machine attributes.  */
! static const struct attribute_spec arm_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
--- 328,338 ----
  static rtx_insn *thumb1_md_asm_adjust (vec<rtx> &, vec<rtx> &,
  				       vec<machine_mode> &,
  				       vec<const char *> &, vec<rtx> &,
! 				       vec<rtx> &, HARD_REG_SET &, location_t);
  static const char *arm_identify_fpu_from_isa (sbitmap);
  
  /* Table of machine attributes.  */
! static const attribute_spec arm_gnu_attributes[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
*************** static const struct attribute_spec arm_a
*** 379,386 ****
      arm_handle_cmse_nonsecure_entry, NULL },
    { "cmse_nonsecure_call", 0, 0, false, false, false, true,
      arm_handle_cmse_nonsecure_call, NULL },
!   { "Advanced SIMD type", 1, 1, false, true, false, true, NULL, NULL },
!   { NULL, 0, 0, false, false, false, false, NULL, NULL }
  };
  
  /* Initialize the GCC target structure.  */
--- 380,396 ----
      arm_handle_cmse_nonsecure_entry, NULL },
    { "cmse_nonsecure_call", 0, 0, false, false, false, true,
      arm_handle_cmse_nonsecure_call, NULL },
!   { "Advanced SIMD type", 1, 1, false, true, false, true, NULL, NULL }
! };
! 
! static const scoped_attribute_specs arm_gnu_attribute_table =
! {
!   "gnu", { arm_gnu_attributes }
! };
! 
! static const scoped_attribute_specs *const arm_attribute_table[] =
! {
!   &arm_gnu_attribute_table
  };
  
  /* Initialize the GCC target structure.  */
*************** static const struct attribute_spec arm_a
*** 506,511 ****
--- 516,524 ----
  #undef TARGET_FUNCTION_VALUE_REGNO_P
  #define TARGET_FUNCTION_VALUE_REGNO_P arm_function_value_regno_p
  
+ #undef TARGET_GIMPLE_FOLD_BUILTIN
+ #define TARGET_GIMPLE_FOLD_BUILTIN arm_gimple_fold_builtin
+ 
  #undef  TARGET_ASM_OUTPUT_MI_THUNK
  #define TARGET_ASM_OUTPUT_MI_THUNK arm_output_mi_thunk
  #undef  TARGET_ASM_CAN_OUTPUT_MI_THUNK
*************** const struct tune_params arm_fa726te_tun
*** 2420,2427 ****
    tune_params::SCHED_AUTOPREF_OFF
  };
  
- char *accepted_branch_protection_string = NULL;
- 
  /* Auto-generated CPU, FPU and architecture tables.  */
  #include "arm-cpu-data.h"
  
--- 2433,2438 ----
*************** arm_init_libfuncs (void)
*** 2844,2849 ****
--- 2855,2883 ----
    speculation_barrier_libfunc = init_one_libfunc ("__speculation_barrier");
  }
  
+ /* Implement TARGET_GIMPLE_FOLD_BUILTIN.  */
+ static bool
+ arm_gimple_fold_builtin (gimple_stmt_iterator *gsi)
+ {
+   gcall *stmt = as_a <gcall *> (gsi_stmt (*gsi));
+   tree fndecl = gimple_call_fndecl (stmt);
+   unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
+   unsigned int subcode = code >> ARM_BUILTIN_SHIFT;
+   gimple *new_stmt = NULL;
+   switch (code & ARM_BUILTIN_CLASS)
+     {
+     case ARM_BUILTIN_GENERAL:
+       break;
+     case ARM_BUILTIN_MVE:
+       new_stmt = arm_mve::gimple_fold_builtin (subcode, stmt);
+     }
+   if (!new_stmt)
+     return false;
+ 
+   gsi_replace (gsi, new_stmt, true);
+   return true;
+ }
+ 
  /* On AAPCS systems, this is the "struct __va_list".  */
  static GTY(()) tree va_list_type;
  
*************** static sbitmap isa_all_fpubits_internal;
*** 3225,3230 ****
--- 3259,3310 ----
  static sbitmap isa_all_fpbits;
  static sbitmap isa_quirkbits;
  
+ static void
+ arm_handle_no_branch_protection (void)
+ {
+   aarch_ra_sign_scope = AARCH_FUNCTION_NONE;
+   aarch_enable_bti = 0;
+ }
+ 
+ static void
+ arm_handle_standard_branch_protection (void)
+ {
+   aarch_ra_sign_scope = AARCH_FUNCTION_NON_LEAF;
+   aarch_enable_bti = 1;
+ }
+ 
+ static void
+ arm_handle_pac_ret_protection (void)
+ {
+   aarch_ra_sign_scope = AARCH_FUNCTION_NON_LEAF;
+ }
+ 
+ static void
+ arm_handle_pac_ret_leaf (void)
+ {
+   aarch_ra_sign_scope = AARCH_FUNCTION_ALL;
+ }
+ 
+ static void
+ arm_handle_bti_protection (void)
+ {
+   aarch_enable_bti = 1;
+ }
+ 
+ static const struct aarch_branch_protect_type arm_pac_ret_subtypes[] = {
+   { "leaf", false, arm_handle_pac_ret_leaf, NULL, 0 },
+   { NULL, false, NULL, NULL, 0 }
+ };
+ 
+ static const struct aarch_branch_protect_type arm_branch_protect_types[] = {
+   { "none", true, arm_handle_no_branch_protection, NULL, 0 },
+   { "standard", true, arm_handle_standard_branch_protection, NULL, 0 },
+   { "pac-ret", false, arm_handle_pac_ret_protection, arm_pac_ret_subtypes,
+     ARRAY_SIZE (arm_pac_ret_subtypes) },
+   { "bti", false, arm_handle_bti_protection, NULL, 0 },
+   { NULL, false, NULL, NULL, 0 }
+ };
+ 
  /* Configure a build target TARGET from the user-specified options OPTS and
     OPTS_SET.  If WARN_COMPATIBLE, emit a diagnostic if both the CPU and
     architecture have been specified, but the two are not identical.  */
*************** arm_configure_build_target (struct arm_b
*** 3272,3284 ****
  
    if (opts->x_arm_branch_protection_string)
      {
!       aarch_validate_mbranch_protection (opts->x_arm_branch_protection_string);
! 
!       if (aarch_ra_sign_key != AARCH_KEY_A)
! 	{
! 	  warning (0, "invalid key type for %<-mbranch-protection=%>");
! 	  aarch_ra_sign_key = AARCH_KEY_A;
! 	}
      }
  
    if (arm_selected_arch)
--- 3352,3360 ----
  
    if (opts->x_arm_branch_protection_string)
      {
!       aarch_validate_mbranch_protection (arm_branch_protect_types,
! 					 opts->x_arm_branch_protection_string,
! 					 "-mbranch-protection=");
      }
  
    if (arm_selected_arch)
*************** arm_option_reconfigure_globals (void)
*** 3900,3906 ****
    if (target_thread_pointer == TP_AUTO)
      {
        if (arm_arch6k && !TARGET_THUMB1)
! 	target_thread_pointer = TP_CP15;
        else
  	target_thread_pointer = TP_SOFT;
      }
--- 3976,3982 ----
    if (target_thread_pointer == TP_AUTO)
      {
        if (arm_arch6k && !TARGET_THUMB1)
! 	target_thread_pointer = TP_TPIDRURO;
        else
  	target_thread_pointer = TP_SOFT;
      }
*************** arm_handle_isr_attribute (tree *node, tr
*** 7436,7443 ****
      }
    else
      {
!       if (TREE_CODE (*node) == FUNCTION_TYPE
! 	  || TREE_CODE (*node) == METHOD_TYPE)
  	{
  	  if (arm_isr_value (args) == ARM_FT_UNKNOWN)
  	    {
--- 7512,7518 ----
      }
    else
      {
!       if (FUNC_OR_METHOD_TYPE_P (*node))
  	{
  	  if (arm_isr_value (args) == ARM_FT_UNKNOWN)
  	    {
*************** arm_handle_isr_attribute (tree *node, tr
*** 7447,7454 ****
  	    }
  	}
        else if (TREE_CODE (*node) == POINTER_TYPE
! 	       && (TREE_CODE (TREE_TYPE (*node)) == FUNCTION_TYPE
! 		   || TREE_CODE (TREE_TYPE (*node)) == METHOD_TYPE)
  	       && arm_isr_value (args) != ARM_FT_UNKNOWN)
  	{
  	  *node = build_variant_type_copy (*node);
--- 7522,7528 ----
  	    }
  	}
        else if (TREE_CODE (*node) == POINTER_TYPE
! 	       && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (*node))
  	       && arm_isr_value (args) != ARM_FT_UNKNOWN)
  	{
  	  *node = build_variant_type_copy (*node);
*************** arm_handle_cmse_nonsecure_call (tree *no
*** 7656,7662 ****
      {
        fntype = TREE_TYPE (*node);
  
!       if (TREE_CODE (*node) == VAR_DECL || TREE_CODE (*node) == TYPE_DECL)
  	decl = *node;
      }
    else
--- 7730,7736 ----
      {
        fntype = TREE_TYPE (*node);
  
!       if (VAR_P (*node) || TREE_CODE (*node) == TYPE_DECL)
  	decl = *node;
      }
    else
*************** arm_set_default_type_attributes (tree ty
*** 7777,7783 ****
    /* Add __attribute__ ((long_call)) to all functions, when
       inside #pragma long_calls or __attribute__ ((short_call)),
       when inside #pragma no_long_calls.  */
!   if (TREE_CODE (type) == FUNCTION_TYPE || TREE_CODE (type) == METHOD_TYPE)
      {
        tree type_attr_list, attr_name;
        type_attr_list = TYPE_ATTRIBUTES (type);
--- 7851,7857 ----
    /* Add __attribute__ ((long_call)) to all functions, when
       inside #pragma long_calls or __attribute__ ((short_call)),
       when inside #pragma no_long_calls.  */
!   if (FUNC_OR_METHOD_TYPE_P (type))
      {
        tree type_attr_list, attr_name;
        type_attr_list = TYPE_ATTRIBUTES (type);
*************** arm_function_ok_for_sibcall (tree decl,
*** 7947,7956 ****
        && DECL_WEAK (decl))
      return false;
  
!   /* We cannot do a tailcall for an indirect call by descriptor if all the
!      argument registers are used because the only register left to load the
!      address is IP and it will already contain the static chain.  */
!   if (!decl && CALL_EXPR_BY_DESCRIPTOR (exp) && !flag_trampolines)
      {
        tree fntype = TREE_TYPE (TREE_TYPE (CALL_EXPR_FN (exp)));
        CUMULATIVE_ARGS cum;
--- 8021,8033 ----
        && DECL_WEAK (decl))
      return false;
  
!   /* We cannot tailcall an indirect call by descriptor if all the call-clobbered
!      general registers are live (r0-r3 and ip).  This can happen when:
!       - IP contains the static chain, or
!       - IP is needed for validating the PAC signature.  */
!   if (!decl
!       && ((CALL_EXPR_BY_DESCRIPTOR (exp) && !flag_trampolines)
! 	  || arm_current_function_pac_enabled_p()))
      {
        tree fntype = TREE_TYPE (TREE_TYPE (CALL_EXPR_FN (exp)));
        CUMULATIVE_ARGS cum;
*************** arm_is_segment_info_known (rtx orig, boo
*** 8425,8431 ****
  	      || !DECL_COMMON (SYMBOL_REF_DECL (orig))))
  	{
  	  tree decl = SYMBOL_REF_DECL (orig);
! 	  tree init = (TREE_CODE (decl) == VAR_DECL)
  	    ? DECL_INITIAL (decl) : (TREE_CODE (decl) == CONSTRUCTOR)
  	    ? decl : 0;
  	  int reloc = 0;
--- 8502,8508 ----
  	      || !DECL_COMMON (SYMBOL_REF_DECL (orig))))
  	{
  	  tree decl = SYMBOL_REF_DECL (orig);
! 	  tree init = VAR_P (decl)
  	    ? DECL_INITIAL (decl) : (TREE_CODE (decl) == CONSTRUCTOR)
  	    ? decl : 0;
  	  int reloc = 0;
*************** arm_is_segment_info_known (rtx orig, boo
*** 8434,8440 ****
  	  if (init && init != error_mark_node)
  	    reloc = compute_reloc_for_constant (init);
  
! 	  named_section = TREE_CODE (decl) == VAR_DECL
  	    && lookup_attribute ("section", DECL_ATTRIBUTES (decl));
  	  readonly = decl_readonly_section (decl, reloc);
  
--- 8511,8517 ----
  	  if (init && init != error_mark_node)
  	    reloc = compute_reloc_for_constant (init);
  
! 	  named_section = VAR_P (decl)
  	    && lookup_attribute ("section", DECL_ATTRIBUTES (decl));
  	  readonly = decl_readonly_section (decl, reloc);
  
*************** thumb1_legitimate_address_p (machine_mod
*** 9105,9113 ****
        else if (REG_P (XEXP (x, 0))
  	       && (REGNO (XEXP (x, 0)) == FRAME_POINTER_REGNUM
  		   || REGNO (XEXP (x, 0)) == ARG_POINTER_REGNUM
! 		   || (REGNO (XEXP (x, 0)) >= FIRST_VIRTUAL_REGISTER
! 		       && REGNO (XEXP (x, 0))
! 			  <= LAST_VIRTUAL_POINTER_REGISTER))
  	       && GET_MODE_SIZE (mode) >= 4
  	       && CONST_INT_P (XEXP (x, 1))
  	       && (INTVAL (XEXP (x, 1)) & 3) == 0)
--- 9182,9188 ----
        else if (REG_P (XEXP (x, 0))
  	       && (REGNO (XEXP (x, 0)) == FRAME_POINTER_REGNUM
  		   || REGNO (XEXP (x, 0)) == ARG_POINTER_REGNUM
! 		   || VIRTUAL_REGISTER_P (XEXP (x, 0)))
  	       && GET_MODE_SIZE (mode) >= 4
  	       && CONST_INT_P (XEXP (x, 1))
  	       && (INTVAL (XEXP (x, 1)) & 3) == 0)
*************** thumb_legitimate_offset_p (machine_mode
*** 9148,9154 ****
  }
  
  bool
! arm_legitimate_address_p (machine_mode mode, rtx x, bool strict_p)
  {
    if (TARGET_ARM)
      return arm_legitimate_address_outer_p (mode, x, SET, strict_p);
--- 9223,9229 ----
  }
  
  bool
! arm_legitimate_address_p (machine_mode mode, rtx x, bool strict_p, code_helper)
  {
    if (TARGET_ARM)
      return arm_legitimate_address_outer_p (mode, x, SET, strict_p);
*************** mve_vector_mem_operand (machine_mode mod
*** 13672,13679 ****
      }
    code = GET_CODE (op);
  
!   if (code == POST_INC || code == PRE_DEC
!       || code == PRE_INC || code == POST_DEC)
      {
        reg_no = arm_effective_regno (XEXP (op, 0), strict);
        return (((mode == E_V8QImode || mode == E_V4QImode || mode == E_V4HImode)
--- 13747,13757 ----
      }
    code = GET_CODE (op);
  
!   if ((code == POST_INC
!        || code == PRE_DEC
!        || code == PRE_INC
!        || code == POST_DEC)
!       && REG_P (XEXP (op, 0)))
      {
        reg_no = arm_effective_regno (XEXP (op, 0), strict);
        return (((mode == E_V8QImode || mode == E_V4QImode || mode == E_V4HImode)
*************** arm_eliminable_register (rtx x)
*** 13905,13912 ****
  {
    return REG_P (x) && (REGNO (x) == FRAME_POINTER_REGNUM
  		       || REGNO (x) == ARG_POINTER_REGNUM
! 		       || (REGNO (x) >= FIRST_VIRTUAL_REGISTER
! 			   && REGNO (x) <= LAST_VIRTUAL_REGISTER));
  }
  
  /* Return GENERAL_REGS if a scratch register required to reload x to/from
--- 13983,13989 ----
  {
    return REG_P (x) && (REGNO (x) == FRAME_POINTER_REGNUM
  		       || REGNO (x) == ARG_POINTER_REGNUM
! 		       || VIRTUAL_REGISTER_P (x));
  }
  
  /* Return GENERAL_REGS if a scratch register required to reload x to/from
*************** cmse_nonsecure_call_inline_register_clea
*** 19133,19138 ****
--- 19210,19239 ----
  	  end_sequence ();
  	  emit_insn_before (seq, insn);
  
+ 	  /* The AAPCS requires the callee to widen integral types narrower
+ 	     than 32 bits to the full width of the register; but when handling
+ 	     calls to non-secure space, we cannot trust the callee to have
+ 	     correctly done so.  So forcibly re-widen the result here.  */
+ 	  tree ret_type = TREE_TYPE (fntype);
+ 	  if ((TREE_CODE (ret_type) == INTEGER_TYPE
+ 	      || TREE_CODE (ret_type) == ENUMERAL_TYPE
+ 	      || TREE_CODE (ret_type) == BOOLEAN_TYPE)
+ 	      && known_lt (GET_MODE_SIZE (TYPE_MODE (ret_type)), 4))
+ 	    {
+ 	      machine_mode ret_mode = TYPE_MODE (ret_type);
+ 	      rtx extend;
+ 	      if (TYPE_UNSIGNED (ret_type))
+ 		extend = gen_rtx_ZERO_EXTEND (SImode,
+ 					      gen_rtx_REG (ret_mode, R0_REGNUM));
+ 	      else
+ 		extend = gen_rtx_SIGN_EXTEND (SImode,
+ 					      gen_rtx_REG (ret_mode, R0_REGNUM));
+ 	      emit_insn_after (gen_rtx_SET (gen_rtx_REG (SImode, R0_REGNUM),
+ 					     extend), insn);
+ 
+ 	    }
+ 
+ 
  	  if (TARGET_HAVE_FPCXT_CMSE)
  	    {
  	      rtx_insn *last, *pop_insn, *after = insn;
*************** arm_asm_declare_function_name (FILE *fil
*** 21767,21773 ****
    ARM_DECLARE_FUNCTION_NAME (file, name, decl);
    ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function");
    ASM_DECLARE_RESULT (file, DECL_RESULT (decl));
!   ASM_OUTPUT_LABEL (file, name);
  
    if (cmse_name)
      ASM_OUTPUT_LABEL (file, cmse_name);
--- 21868,21874 ----
    ARM_DECLARE_FUNCTION_NAME (file, name, decl);
    ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function");
    ASM_DECLARE_RESULT (file, DECL_RESULT (decl));
!   ASM_OUTPUT_FUNCTION_LABEL (file, name, decl);
  
    if (cmse_name)
      ASM_OUTPUT_LABEL (file, cmse_name);
*************** arm_expand_prologue (void)
*** 23575,23580 ****
--- 23676,23726 ----
  
    ip_rtx = gen_rtx_REG (SImode, IP_REGNUM);
  
+   /* The AAPCS requires the callee to widen integral types narrower
+      than 32 bits to the full width of the register; but when handling
+      calls to non-secure space, we cannot trust the callee to have
+      correctly done so.  So forcibly re-widen the result here.  */
+   if (IS_CMSE_ENTRY (func_type))
+     {
+       function_args_iterator args_iter;
+       CUMULATIVE_ARGS args_so_far_v;
+       cumulative_args_t args_so_far;
+       bool first_param = true;
+       tree arg_type;
+       tree fndecl = current_function_decl;
+       tree fntype = TREE_TYPE (fndecl);
+       arm_init_cumulative_args (&args_so_far_v, fntype, NULL_RTX, fndecl);
+       args_so_far = pack_cumulative_args (&args_so_far_v);
+       FOREACH_FUNCTION_ARGS (fntype, arg_type, args_iter)
+ 	{
+ 	  rtx arg_rtx;
+ 
+ 	  if (VOID_TYPE_P (arg_type))
+ 	    break;
+ 
+ 	  function_arg_info arg (arg_type, /*named=*/true);
+ 	  if (!first_param)
+ 	    /* We should advance after processing the argument and pass
+ 	       the argument we're advancing past.  */
+ 	    arm_function_arg_advance (args_so_far, arg);
+ 	  first_param = false;
+ 	  arg_rtx = arm_function_arg (args_so_far, arg);
+ 	  gcc_assert (REG_P (arg_rtx));
+ 	  if ((TREE_CODE (arg_type) == INTEGER_TYPE
+ 	      || TREE_CODE (arg_type) == ENUMERAL_TYPE
+ 	      || TREE_CODE (arg_type) == BOOLEAN_TYPE)
+ 	      && known_lt (GET_MODE_SIZE (GET_MODE (arg_rtx)), 4))
+ 	    {
+ 	      if (TYPE_UNSIGNED (arg_type))
+ 		emit_set_insn (gen_rtx_REG (SImode, REGNO (arg_rtx)),
+ 			       gen_rtx_ZERO_EXTEND (SImode, arg_rtx));
+ 	      else
+ 		emit_set_insn (gen_rtx_REG (SImode, REGNO (arg_rtx)),
+ 			       gen_rtx_SIGN_EXTEND (SImode, arg_rtx));
+ 	    }
+ 	}
+     }
+ 
    if (IS_STACKALIGN (func_type))
      {
        rtx r0, r1;
*************** arm_final_prescan_insn (rtx_insn *insn)
*** 25577,25587 ****
  	      break;
  
  	    case INSN:
! 	      /* Instructions using or affecting the condition codes make it
! 		 fail.  */
  	      scanbody = PATTERN (this_insn);
  	      if (!(GET_CODE (scanbody) == SET
  		    || GET_CODE (scanbody) == PARALLEL)
  		  || get_attr_conds (this_insn) != CONDS_NOCOND)
  		fail = TRUE;
  	      break;
--- 25723,25734 ----
  	      break;
  
  	    case INSN:
! 	      /* Check the instruction is explicitly marked as predicable.
! 		 Instructions using or affecting the condition codes are not.  */
  	      scanbody = PATTERN (this_insn);
  	      if (!(GET_CODE (scanbody) == SET
  		    || GET_CODE (scanbody) == PARALLEL)
+ 		  || get_attr_predicable (this_insn) != PREDICABLE_YES
  		  || get_attr_conds (this_insn) != CONDS_NOCOND)
  		fail = TRUE;
  	      break;
*************** arm_output_mi_thunk (FILE *file, tree th
*** 29224,29229 ****
--- 29371,29378 ----
    const char *fnname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (thunk));
  
    assemble_start_function (thunk, fnname);
+   if (aarch_bti_enabled ())
+     emit_insn (aarch_gen_bti_c ());
    if (TARGET_32BIT)
      arm32_output_mi_thunk (file, thunk, delta, vcall_offset, function);
    else
*************** arm_output_iwmmxt_tinsr (rtx *operands)
*** 30442,30447 ****
--- 30591,30652 ----
    return "";
  }
  
+ /* Output an arm casesi dispatch sequence.  Used by arm_casesi_internal insn.
+    Responsible for the handling of switch statements in arm.  */
+ const char *
+ arm_output_casesi (rtx *operands)
+ {
+   char label[100];
+   rtx diff_vec = PATTERN (NEXT_INSN (as_a <rtx_insn *> (operands[2])));
+   gcc_assert (GET_CODE (diff_vec) == ADDR_DIFF_VEC);
+   output_asm_insn ("cmp\t%0, %1", operands);
+   output_asm_insn ("bhi\t%l3", operands);
+   ASM_GENERATE_INTERNAL_LABEL (label, "Lrtx", CODE_LABEL_NUMBER (operands[2]));
+   switch (GET_MODE (diff_vec))
+     {
+     case E_QImode:
+       if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
+ 	output_asm_insn ("ldrb\t%4, [%5, %0]", operands);
+       else
+ 	output_asm_insn ("ldrsb\t%4, [%5, %0]", operands);
+       output_asm_insn ("add\t%|pc, %|pc, %4, lsl #2", operands);
+       break;
+     case E_HImode:
+       if (REGNO (operands[4]) != REGNO (operands[5]))
+ 	{
+ 	  output_asm_insn ("add\t%4, %0, %0", operands);
+ 	  if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
+ 	    output_asm_insn ("ldrh\t%4, [%5, %4]", operands);
+ 	  else
+ 	    output_asm_insn ("ldrsh\t%4, [%5, %4]", operands);
+ 	}
+       else
+ 	{
+ 	  output_asm_insn ("add\t%4, %5, %0", operands);
+ 	  if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
+ 	    output_asm_insn ("ldrh\t%4, [%4, %0]", operands);
+ 	  else
+ 	    output_asm_insn ("ldrsh\t%4, [%4, %0]", operands);
+ 	}
+       output_asm_insn ("add\t%|pc, %|pc, %4, lsl #2", operands);
+       break;
+     case E_SImode:
+       if (flag_pic)
+ 	{
+ 	  output_asm_insn ("ldr\t%4, [%5, %0, lsl #2]", operands);
+ 	  output_asm_insn ("add\t%|pc, %|pc, %4", operands);
+ 	}
+       else
+ 	output_asm_insn ("ldr\t%|pc, [%5, %0, lsl #2]", operands);
+       break;
+     default:
+       gcc_unreachable ();
+     }
+     assemble_label (asm_out_file, label);
+     output_asm_insn ("nop", operands);
+   return "";
+ }
+ 
  /* Output a Thumb-1 casesi dispatch sequence.  */
  const char *
  thumb1_output_casesi (rtx *operands)
*************** arm_mangle_type (const_tree type)
*** 30551,30557 ****
      return "St9__va_list";
  
    /* Half-precision floating point types.  */
!   if (TREE_CODE (type) == REAL_TYPE && TYPE_PRECISION (type) == 16)
      {
        if (TYPE_MAIN_VARIANT (type) == float16_type_node)
  	return NULL;
--- 30756,30762 ----
      return "St9__va_list";
  
    /* Half-precision floating point types.  */
!   if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16)
      {
        if (TYPE_MAIN_VARIANT (type) == float16_type_node)
  	return NULL;
*************** arm_expand_vcond (rtx *operands, machine
*** 31609,31621 ****
        switch (GET_MODE_CLASS (cmp_mode))
  	{
  	case MODE_VECTOR_INT:
! 	  emit_insn (gen_mve_vpselq (VPSELQ_S, cmp_mode, operands[0],
! 				     operands[1], operands[2], mask));
  	  break;
  	case MODE_VECTOR_FLOAT:
  	  if (TARGET_HAVE_MVE_FLOAT)
! 	    emit_insn (gen_mve_vpselq_f (cmp_mode, operands[0],
! 					 operands[1], operands[2], mask));
  	  else
  	    gcc_unreachable ();
  	  break;
--- 31814,31826 ----
        switch (GET_MODE_CLASS (cmp_mode))
  	{
  	case MODE_VECTOR_INT:
! 	  emit_insn (gen_mve_q (VPSELQ_S, VPSELQ_S, cmp_mode, operands[0],
! 				operands[1], operands[2], mask));
  	  break;
  	case MODE_VECTOR_FLOAT:
  	  if (TARGET_HAVE_MVE_FLOAT)
! 	    emit_insn (gen_mve_q_f (VPSELQ_F, cmp_mode, operands[0],
! 				    operands[1], operands[2], mask));
  	  else
  	    gcc_unreachable ();
  	  break;
*************** arm_stack_protect_guard (void)
*** 34556,34562 ****
  rtx_insn *
  thumb1_md_asm_adjust (vec<rtx> &outputs, vec<rtx> & /*inputs*/,
  		      vec<machine_mode> & /*input_modes*/,
! 		      vec<const char *> &constraints, vec<rtx> & /*clobbers*/,
  		      HARD_REG_SET & /*clobbered_regs*/, location_t /*loc*/)
  {
    for (unsigned i = 0, n = outputs.length (); i < n; ++i)
--- 34761,34768 ----
  rtx_insn *
  thumb1_md_asm_adjust (vec<rtx> &outputs, vec<rtx> & /*inputs*/,
  		      vec<machine_mode> & /*input_modes*/,
! 		      vec<const char *> &constraints,
! 		      vec<rtx> &, vec<rtx> & /*clobbers*/,
  		      HARD_REG_SET & /*clobbered_regs*/, location_t /*loc*/)
  {
    for (unsigned i = 0, n = outputs.length (); i < n; ++i)
*************** arm_get_mask_mode (machine_mode mode)
*** 34626,34629 ****
--- 34832,34865 ----
    return default_get_mask_mode (mode);
  }
  
+ /* Output assembly to read the thread pointer from the appropriate TPIDR
+    register into DEST.  If PRED_P also emit the %? that can be used to
+    output the predication code.  */
+ 
+ const char *
+ arm_output_load_tpidr (rtx dst, bool pred_p)
+ {
+   char buf[64];
+   int tpidr_coproc_num = -1;
+   switch (target_thread_pointer)
+     {
+     case TP_TPIDRURW:
+       tpidr_coproc_num = 2;
+       break;
+     case TP_TPIDRURO:
+       tpidr_coproc_num = 3;
+       break;
+     case TP_TPIDRPRW:
+       tpidr_coproc_num = 4;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+   snprintf (buf, sizeof (buf),
+ 	    "mrc%s\tp15, 0, %%0, c13, c0, %d\t@ load_tp_hard",
+ 	    pred_p ? "%?" : "", tpidr_coproc_num);
+   output_asm_insn (buf, &dst);
+   return "";
+ }
+ 
  #include "gt-arm.h"
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm.h gcc-14.1.0/gcc/config/arm/arm.h
*** gcc-13.2.0/gcc/config/arm/arm.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, for ARM.
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
     Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
     and Martin Simmons (@harleqn.co.uk).
     More major hacks by Richard Earnshaw (rearnsha@arm.com)
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, for ARM.
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
     Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
     and Martin Simmons (@harleqn.co.uk).
     More major hacks by Richard Earnshaw (rearnsha@arm.com)
*************** emission of floating point pcs attribute
*** 152,159 ****
  #define TARGET_AAPCS_BASED \
      (arm_abi != ARM_ABI_APCS && arm_abi != ARM_ABI_ATPCS)
  
- #define TARGET_HARD_TP			(target_thread_pointer == TP_CP15)
  #define TARGET_SOFT_TP			(target_thread_pointer == TP_SOFT)
  #define TARGET_GNU2_TLS			(target_tls_dialect == TLS_GNU2)
  
  /* Only 16-bit thumb code.  */
--- 152,159 ----
  #define TARGET_AAPCS_BASED \
      (arm_abi != ARM_ABI_APCS && arm_abi != ARM_ABI_ATPCS)
  
  #define TARGET_SOFT_TP			(target_thread_pointer == TP_SOFT)
+ #define TARGET_HARD_TP			!TARGET_SOFT_TP
  #define TARGET_GNU2_TLS			(target_tls_dialect == TLS_GNU2)
  
  /* Only 16-bit thumb code.  */
*************** enum arm_auto_incmodes
*** 2092,2101 ****
     for the index in the tablejump instruction.  */
  #define CASE_VECTOR_MODE Pmode
  
! #define CASE_VECTOR_PC_RELATIVE ((TARGET_THUMB2				\
! 				  || (TARGET_THUMB1			\
! 				      && (optimize_size || flag_pic)))	\
! 				 && (!target_pure_code))
  
  
  #define CASE_VECTOR_SHORTEN_MODE(min, max, body)			\
--- 2092,2102 ----
     for the index in the tablejump instruction.  */
  #define CASE_VECTOR_MODE Pmode
  
! #define CASE_VECTOR_PC_RELATIVE						\
!    (TARGET_ARM								\
!     || (!target_pure_code						\
! 	&& (TARGET_THUMB2						\
! 	    || (TARGET_THUMB1 && (optimize_size || flag_pic)))))
  
  
  #define CASE_VECTOR_SHORTEN_MODE(min, max, body)			\
*************** enum arm_auto_incmodes
*** 2109,2117 ****
        : min >= -4096 && max < 4096					\
        ? (ADDR_DIFF_VEC_FLAGS (body).offset_unsigned = 0, HImode)	\
        : SImode)								\
!    : ((min < 0 || max >= 0x20000 || !TARGET_THUMB2) ? SImode		\
!       : (max >= 0x200) ? HImode						\
!       : QImode))
  
  /* signed 'char' is most compatible, but RISC OS wants it unsigned.
     unsigned is probably best, but may break some code.  */
--- 2110,2128 ----
        : min >= -4096 && max < 4096					\
        ? (ADDR_DIFF_VEC_FLAGS (body).offset_unsigned = 0, HImode)	\
        : SImode)								\
!    : (TARGET_THUMB2							\
!       ? ((min > 0 && max < 0x200) ? QImode				\
!       : (min > 0 && max <= 0x20000) ? HImode				\
!       : SImode)								\
!    : ((min >= 0 && max < 1024)						\
!       ? (ADDR_DIFF_VEC_FLAGS (body).offset_unsigned = 1, QImode)	\
!       : (min >= -512 && max <= 508)					\
!       ? (ADDR_DIFF_VEC_FLAGS (body).offset_unsigned = 0, QImode)	\
!       :(min >= 0 && max < 262144)					\
!       ? (ADDR_DIFF_VEC_FLAGS (body).offset_unsigned = 1, HImode)	\
!       : (min >= -131072 && max <=131068)				\
!       ? (ADDR_DIFF_VEC_FLAGS (body).offset_unsigned = 0, HImode)	\
!       : SImode)))
  
  /* signed 'char' is most compatible, but RISC OS wants it unsigned.
     unsigned is probably best, but may break some code.  */
*************** extern int making_const_table;
*** 2291,2298 ****
  	asm_fprintf (STREAM, "\tpop {%r}\n", REGNO);	\
      } while (0)
  
! #define ADDR_VEC_ALIGN(JUMPTABLE)	\
!   ((TARGET_THUMB && GET_MODE (PATTERN (JUMPTABLE)) == SImode) ? 2 : 0)
  
  /* Alignment for case labels comes from ADDR_VEC_ALIGN; avoid the
     default alignment from elfos.h.  */
--- 2302,2315 ----
  	asm_fprintf (STREAM, "\tpop {%r}\n", REGNO);	\
      } while (0)
  
! /* If the switch table is in the code segment, additional alignment is
!    needed for Thumb SImode tables.  Otherwise, tables in RO data have
!    natural alignment.  */
! #define ADDR_VEC_ALIGN(TABLE)						\
!   (JUMP_TABLES_IN_TEXT_SECTION						\
!    ? ((TARGET_THUMB && GET_MODE (PATTERN (TABLE)) == SImode) ? 2 : 0)	\
!    : (exact_log2 (GET_MODE_ALIGNMENT (GET_MODE (PATTERN (TABLE)))	\
! 		  / BITS_PER_UNIT)))
  
  /* Alignment for case labels comes from ADDR_VEC_ALIGN; avoid the
     default alignment from elfos.h.  */
*************** extern int making_const_table;
*** 2301,2307 ****
  
  #define LABEL_ALIGN_AFTER_BARRIER(LABEL)                \
     (GET_CODE (PATTERN (prev_active_insn (LABEL))) == ADDR_DIFF_VEC \
!    ? 1 : 0)
  
  #define ARM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) 	\
    arm_declare_function_name ((STREAM), (NAME), (DECL));
--- 2318,2324 ----
  
  #define LABEL_ALIGN_AFTER_BARRIER(LABEL)                \
     (GET_CODE (PATTERN (prev_active_insn (LABEL))) == ADDR_DIFF_VEC \
!    ? (TARGET_ARM ? 2 : 1) : 0)
  
  #define ARM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) 	\
    arm_declare_function_name ((STREAM), (NAME), (DECL));
*************** extern int making_const_table;
*** 2358,2363 ****
--- 2375,2395 ----
    else if (TARGET_THUMB1)				\
      thumb1_final_prescan_insn (INSN)
  
+ /* These defines are useful to refer to the value of the mve_unpredicated_insn
+    insn attribute.  Note that, because these use the get_attr_* function, these
+    will change recog_data if (INSN) isn't current_insn.  */
+ #define MVE_VPT_PREDICABLE_INSN_P(INSN)					\
+   (recog_memoized (INSN) >= 0						\
+    && get_attr_mve_unpredicated_insn (INSN) != CODE_FOR_nothing)
+ 
+ #define MVE_VPT_PREDICATED_INSN_P(INSN)					\
+   (MVE_VPT_PREDICABLE_INSN_P (INSN)					\
+    && recog_memoized (INSN) != get_attr_mve_unpredicated_insn (INSN))
+ 
+ #define MVE_VPT_UNPREDICATED_INSN_P(INSN)				\
+   (MVE_VPT_PREDICABLE_INSN_P (INSN)					\
+    && recog_memoized (INSN) == get_attr_mve_unpredicated_insn (INSN))
+ 
  #define ARM_SIGN_EXTEND(x)  ((HOST_WIDE_INT)			\
    (HOST_BITS_PER_WIDE_INT <= 32 ? (unsigned HOST_WIDE_INT) (x)	\
     : ((((unsigned HOST_WIDE_INT)(x)) & (unsigned HOST_WIDE_INT) 0xffffffff) |\
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm.md gcc-14.1.0/gcc/config/arm/arm.md
*** gcc-13.2.0/gcc/config/arm/arm.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;;- Machine description for ARM for GNU compiler
! ;;  Copyright (C) 1991-2023 Free Software Foundation, Inc.
  ;;  Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
  ;;  and Martin Simmons (@harleqn.co.uk).
  ;;  More major hacks by Richard Earnshaw (rearnsha@arm.com).
--- 1,5 ----
  ;;- Machine description for ARM for GNU compiler
! ;;  Copyright (C) 1991-2024 Free Software Foundation, Inc.
  ;;  Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
  ;;  and Martin Simmons (@harleqn.co.uk).
  ;;  More major hacks by Richard Earnshaw (rearnsha@arm.com).
***************
*** 124,129 ****
--- 124,141 ----
  ; and not all ARM insns do.
  (define_attr "predicated" "yes,no" (const_string "no"))
  
+ ; An attribute that encodes the CODE_FOR_<insn> of the MVE VPT unpredicated
+ ; version of a VPT-predicated instruction.  For unpredicated instructions
+ ; that are predicable, encode the same pattern's CODE_FOR_<insn> as a way to
+ ; encode that it is a predicable instruction.
+ (define_attr "mve_unpredicated_insn" "" (symbol_ref "CODE_FOR_nothing"))
+ 
+ ; An attribute used by the loop-doloop pass when determining whether it is
+ ; safe to predicate a MVE instruction, that operates across lanes, and was
+ ; previously not predicated.  The pass will still check whether all inputs
+ ; are predicated by the VCTP predication mask.
+ (define_attr "mve_safe_imp_xlane_pred" "yes,no" (const_string "no"))
+ 
  ; LENGTH of an instruction (in bytes)
  (define_attr "length" ""
    (const_int 4))
***************
*** 307,312 ****
--- 319,326 ----
  ;
  ; NOCOND means that the instruction does not use or alter the condition
  ;   codes but can be converted into a conditionally exectuted instruction.
+ ;   Given that NOCOND is the default for most instructions if omitted,
+ ;   the attribute predicable must be set to yes as well.
  
  (define_attr "conds" "use,set,clob,unconditional,nocond"
  	(if_then_else
***************
*** 9514,9520 ****
     (match_operand:SI 2 "const_int_operand")	; total range
     (match_operand:SI 3 "" "")			; table label
     (match_operand:SI 4 "" "")]			; Out of range label
!   "(TARGET_32BIT || optimize_size || flag_pic) && !target_pure_code"
    "
    {
      enum insn_code code;
--- 9528,9536 ----
     (match_operand:SI 2 "const_int_operand")	; total range
     (match_operand:SI 3 "" "")			; table label
     (match_operand:SI 4 "" "")]			; Out of range label
!    "(TARGET_ARM
!      || (!target_pure_code
!          && (TARGET_THUMB2 || optimize_size || flag_pic)))"
    "
    {
      enum insn_code code;
***************
*** 9556,9568 ****
  		(match_dup 4)
  		(label_ref:SI (match_operand 3 ""))))
  	      (clobber (reg:CC CC_REGNUM))
  	      (use (label_ref:SI (match_operand 2 "")))])]
    "TARGET_ARM"
  {
!   operands[4] = gen_rtx_MULT (SImode, operands[0], GEN_INT (4));
!   operands[4] = gen_rtx_PLUS (SImode, operands[4],
! 			      gen_rtx_LABEL_REF (SImode, operands[2]));
!   operands[4] = gen_rtx_MEM (SImode, operands[4]);
    MEM_READONLY_P (operands[4]) = 1;
    MEM_NOTRAP_P (operands[4]) = 1;
  })
--- 9572,9586 ----
  		(match_dup 4)
  		(label_ref:SI (match_operand 3 ""))))
  	      (clobber (reg:CC CC_REGNUM))
+ 	      (clobber (match_scratch:SI 5))
  	      (use (label_ref:SI (match_operand 2 "")))])]
    "TARGET_ARM"
  {
!   rtx vec_table_ref = force_reg (SImode, gen_rtx_LABEL_REF (SImode, operands[2]));
!   rtx tmp = gen_rtx_MULT (SImode, operands[0], GEN_INT (4));
!   tmp = gen_rtx_PLUS (SImode, tmp,
! 			      vec_table_ref);
!   operands[4] = gen_rtx_MEM (SImode, tmp);
    MEM_READONLY_P (operands[4]) = 1;
    MEM_NOTRAP_P (operands[4]) = 1;
  })
***************
*** 9573,9590 ****
  		(leu (match_operand:SI 0 "s_register_operand" "r")
  		     (match_operand:SI 1 "arm_rhs_operand" "rI"))
  		(mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4))
! 				 (label_ref:SI (match_operand 2 "" ""))))
  		(label_ref:SI (match_operand 3 "" ""))))
  	      (clobber (reg:CC CC_REGNUM))
! 	      (use (label_ref:SI (match_dup 2)))])]
    "TARGET_ARM"
!   "*
!     if (flag_pic)
!       return \"cmp\\t%0, %1\;addls\\t%|pc, %|pc, %0, asl #2\;b\\t%l3\";
!     return   \"cmp\\t%0, %1\;ldrls\\t%|pc, [%|pc, %0, asl #2]\;b\\t%l3\";
!   "
    [(set_attr "conds" "clob")
!    (set_attr "length" "12")
     (set_attr "type" "multiple")]
  )
  
--- 9591,9607 ----
  		(leu (match_operand:SI 0 "s_register_operand" "r")
  		     (match_operand:SI 1 "arm_rhs_operand" "rI"))
  		(mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4))
! 				 (match_operand:SI 5 "s_register_operand" "r")))
  		(label_ref:SI (match_operand 3 "" ""))))
  	      (clobber (reg:CC CC_REGNUM))
! 	      (clobber (match_scratch:SI 4 "=r"))
! 	      (use (label_ref:SI (match_operand 2 "")))])]
    "TARGET_ARM"
!   {
!     return arm_output_casesi (operands);
!   }
    [(set_attr "conds" "clob")
!    (set_attr "length" "24")
     (set_attr "type" "multiple")]
  )
  
***************
*** 12180,12186 ****
    [(set_attr "predicable" "yes")
     (set_attr "type" "clz")])
  
! (define_insn "rbitsi2"
    [(set (match_operand:SI 0 "s_register_operand" "=r")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "r")] UNSPEC_RBIT))]
    "TARGET_32BIT && arm_arch_thumb2"
--- 12197,12203 ----
    [(set_attr "predicable" "yes")
     (set_attr "type" "clz")])
  
! (define_insn "arm_rbit"
    [(set (match_operand:SI 0 "s_register_operand" "=r")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "r")] UNSPEC_RBIT))]
    "TARGET_32BIT && arm_arch_thumb2"
***************
*** 12200,12206 ****
    "&& reload_completed"
    [(const_int 0)]
    "
!   emit_insn (gen_rbitsi2 (operands[0], operands[1]));
    emit_insn (gen_clzsi2 (operands[0], operands[0]));
    DONE;
  ")
--- 12217,12223 ----
    "&& reload_completed"
    [(const_int 0)]
    "
!   emit_insn (gen_arm_rbit (operands[0], operands[1]));
    emit_insn (gen_clzsi2 (operands[0], operands[0]));
    DONE;
  ")
***************
*** 12275,12281 ****
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(unspec:SI [(const_int 0)] UNSPEC_TLS))]
    "TARGET_HARD_TP"
!   "mrc%?\\tp15, 0, %0, c13, c0, 3\\t@ load_tp_hard"
    [(set_attr "predicable" "yes")
     (set_attr "type" "mrs")]
  )
--- 12292,12298 ----
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(unspec:SI [(const_int 0)] UNSPEC_TLS))]
    "TARGET_HARD_TP"
!   "* return arm_output_load_tpidr (operands[0], true);"
    [(set_attr "predicable" "yes")
     (set_attr "type" "mrs")]
  )
***************
*** 12285,12291 ****
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(unspec_volatile:SI [(const_int 0)] VUNSPEC_MRC))]
    "TARGET_HARD_TP"
!   "mrc\\tp15, 0, %0, c13, c0, 3\\t@ reload_tp_hard"
    [(set_attr "type" "mrs")]
  )
  
--- 12302,12308 ----
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(unspec_volatile:SI [(const_int 0)] VUNSPEC_MRC))]
    "TARGET_HARD_TP"
!   "* return arm_output_load_tpidr (operands[0], false);"
    [(set_attr "type" "mrs")]
  )
  
***************
*** 12544,12549 ****
--- 12561,12567 ----
    revsh%?\t%0, %1"
    [(set_attr "arch" "t1,t2,32")
     (set_attr "length" "2,2,4")
+    (set_attr "predicable" "no,yes,yes")
     (set_attr "type" "rev")]
  )
  
***************
*** 12557,12562 ****
--- 12575,12581 ----
     rev16%?\t%0, %1"
    [(set_attr "arch" "t1,t2,32")
     (set_attr "length" "2,2,4")
+    (set_attr "predicable" "no,yes,yes")
     (set_attr "type" "rev")]
  )
  
***************
*** 12564,12570 ****
  ;; operations within an IOR/AND RTX, therefore we have two patterns matching
  ;; each valid permutation.
  
! (define_insn "arm_rev16si2"
    [(set (match_operand:SI 0 "register_operand" "=l,l,r")
          (ior:SI (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "l,l,r")
                                     (const_int 8))
--- 12583,12589 ----
  ;; operations within an IOR/AND RTX, therefore we have two patterns matching
  ;; each valid permutation.
  
! (define_insn "arm_rev16si2_alt1"
    [(set (match_operand:SI 0 "register_operand" "=l,l,r")
          (ior:SI (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "l,l,r")
                                     (const_int 8))
***************
*** 12575,12587 ****
    "arm_arch6
     && aarch_rev16_shleft_mask_imm_p (operands[3], SImode)
     && aarch_rev16_shright_mask_imm_p (operands[2], SImode)"
!   "rev16\\t%0, %1"
    [(set_attr "arch" "t1,t2,32")
     (set_attr "length" "2,2,4")
     (set_attr "type" "rev")]
  )
  
! (define_insn "arm_rev16si2_alt"
    [(set (match_operand:SI 0 "register_operand" "=l,l,r")
          (ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "l,l,r")
                                       (const_int 8))
--- 12594,12610 ----
    "arm_arch6
     && aarch_rev16_shleft_mask_imm_p (operands[3], SImode)
     && aarch_rev16_shright_mask_imm_p (operands[2], SImode)"
!   "@
!    rev16\t%0, %1
!    rev16%?\t%0, %1
!    rev16%?\t%0, %1"
    [(set_attr "arch" "t1,t2,32")
     (set_attr "length" "2,2,4")
+    (set_attr "predicable" "no,yes,yes")
     (set_attr "type" "rev")]
  )
  
! (define_insn "*arm_rev16si2_alt2"
    [(set (match_operand:SI 0 "register_operand" "=l,l,r")
          (ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "l,l,r")
                                       (const_int 8))
***************
*** 12592,12598 ****
    "arm_arch6
     && aarch_rev16_shleft_mask_imm_p (operands[3], SImode)
     && aarch_rev16_shright_mask_imm_p (operands[2], SImode)"
!   "rev16\\t%0, %1"
    [(set_attr "arch" "t1,t2,32")
     (set_attr "length" "2,2,4")
     (set_attr "type" "rev")]
--- 12615,12640 ----
    "arm_arch6
     && aarch_rev16_shleft_mask_imm_p (operands[3], SImode)
     && aarch_rev16_shright_mask_imm_p (operands[2], SImode)"
!   "@
!    rev16\t%0, %1
!    rev16%?\t%0, %1
!    rev16%?\t%0, %1"
!   [(set_attr "arch" "t1,t2,32")
!    (set_attr "length" "2,2,4")
!    (set_attr "predicable" "no,yes,yes")
!    (set_attr "type" "rev")]
! )
! 
! ;; Similar pattern to match (rotate (bswap) 16)
! (define_insn "arm_rev16si2"
!   [(set (match_operand:SI 0 "register_operand" "=l,l,r")
!         (rotate:SI (bswap:SI (match_operand:SI 1 "register_operand" "l,l,r"))
!                    (const_int 16)))]
!   "arm_arch6"
!   "@
!    rev16\t%0, %1
!    rev16%?\t%0, %1
!    rev16%?\t%0, %1"
    [(set_attr "arch" "t1,t2,32")
     (set_attr "length" "2,2,4")
     (set_attr "type" "rev")]
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm.opt gcc-14.1.0/gcc/config/arm/arm.opt
*** gcc-13.2.0/gcc/config/arm/arm.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the ARM port of the compiler.
  
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the ARM port of the compiler.
  
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** enum aarch_function_type aarch_ra_sign_s
*** 30,38 ****
  TargetVariable
  unsigned aarch_enable_bti = 0
  
- TargetVariable
- enum aarch_key_type aarch_ra_sign_key = AARCH_KEY_A
- 
  Enum
  Name(tls_type) Type(enum arm_tls_type)
  TLS dialect to use:
--- 30,35 ----
*************** EnumValue
*** 230,236 ****
  Enum(arm_tp_type) String(auto) Value(TP_AUTO)
  
  EnumValue
! Enum(arm_tp_type) String(cp15) Value(TP_CP15)
  
  mtpcs-frame
  Target Mask(TPCS_FRAME)
--- 227,242 ----
  Enum(arm_tp_type) String(auto) Value(TP_AUTO)
  
  EnumValue
! Enum(arm_tp_type) String(tpidrurw) Value(TP_TPIDRURW)
! 
! EnumValue
! Enum(arm_tp_type) String(cp15) Value(TP_TPIDRURO)
! 
! EnumValue
! Enum(arm_tp_type) String(tpidruro) Value(TP_TPIDRURO)
! 
! EnumValue
! Enum(arm_tp_type) String(tpidrprw) Value(TP_TPIDRPRW)
  
  mtpcs-frame
  Target Mask(TPCS_FRAME)
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm.opt.urls gcc-14.1.0/gcc/config/arm/arm.opt.urls
*** gcc-13.2.0/gcc/config/arm/arm.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/arm.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,149 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/arm/arm.opt and generated HTML
+ 
+ mabi=
+ UrlSuffix(gcc/ARM-Options.html#index-mabi-1)
+ 
+ mabort-on-noreturn
+ UrlSuffix(gcc/ARM-Options.html#index-mabort-on-noreturn)
+ 
+ mapcs
+ UrlSuffix(gcc/ARM-Options.html#index-mapcs)
+ 
+ mapcs-frame
+ UrlSuffix(gcc/ARM-Options.html#index-mapcs-frame)
+ 
+ march=
+ UrlSuffix(gcc/ARM-Options.html#index-march-2)
+ 
+ marm
+ UrlSuffix(gcc/ARM-Options.html#index-marm)
+ 
+ mbig-endian
+ UrlSuffix(gcc/ARM-Options.html#index-mbig-endian-2)
+ 
+ mcallee-super-interworking
+ UrlSuffix(gcc/ARM-Options.html#index-mcallee-super-interworking)
+ 
+ mcaller-super-interworking
+ UrlSuffix(gcc/ARM-Options.html#index-mcaller-super-interworking)
+ 
+ mcpu=
+ UrlSuffix(gcc/ARM-Options.html#index-mcpu-2)
+ 
+ mfloat-abi=
+ UrlSuffix(gcc/ARM-Options.html#index-mfloat-abi)
+ 
+ mcmse
+ UrlSuffix(gcc/ARM-Options.html#index-mcmse)
+ 
+ mflip-thumb
+ UrlSuffix(gcc/ARM-Options.html#index-mflip-thumb)
+ 
+ mfp16-format=
+ UrlSuffix(gcc/ARM-Options.html#index-mfp16-format)
+ 
+ mfpu=
+ UrlSuffix(gcc/ARM-Options.html#index-mfpu-1)
+ 
+ ; skipping UrlSuffix for 'mhard-float' due to finding no URLs
+ 
+ mlittle-endian
+ UrlSuffix(gcc/ARM-Options.html#index-mlittle-endian-2)
+ 
+ mlong-calls
+ UrlSuffix(gcc/ARM-Options.html#index-mlong-calls-2)
+ 
+ mpic-data-is-text-relative
+ UrlSuffix(gcc/ARM-Options.html#index-mpic-data-is-text-relative)
+ 
+ mpic-register=
+ UrlSuffix(gcc/ARM-Options.html#index-mpic-register)
+ 
+ mpoke-function-name
+ UrlSuffix(gcc/ARM-Options.html#index-mpoke-function-name)
+ 
+ msched-prolog
+ UrlSuffix(gcc/ARM-Options.html#index-msched-prolog)
+ 
+ msingle-pic-base
+ UrlSuffix(gcc/ARM-Options.html#index-msingle-pic-base)
+ 
+ ; skipping UrlSuffix for 'msoft-float' due to finding no URLs
+ 
+ mstructure-size-boundary=
+ UrlSuffix(gcc/ARM-Options.html#index-mstructure-size-boundary)
+ 
+ mthumb
+ UrlSuffix(gcc/ARM-Options.html#index-mthumb)
+ 
+ mthumb-interwork
+ UrlSuffix(gcc/ARM-Options.html#index-mthumb-interwork)
+ 
+ mtls-dialect=
+ UrlSuffix(gcc/ARM-Options.html#index-mtls-dialect)
+ 
+ mtp=
+ UrlSuffix(gcc/ARM-Options.html#index-mtp-1)
+ 
+ mtpcs-frame
+ UrlSuffix(gcc/ARM-Options.html#index-mtpcs-frame)
+ 
+ mtpcs-leaf-frame
+ UrlSuffix(gcc/ARM-Options.html#index-mtpcs-leaf-frame)
+ 
+ mtune=
+ UrlSuffix(gcc/ARM-Options.html#index-mtune-4)
+ 
+ mprint-tune-info
+ UrlSuffix(gcc/ARM-Options.html#index-mprint-tune-info)
+ 
+ mverbose-cost-dump
+ UrlSuffix(gcc/ARM-Options.html#index-mverbose-cost-dump-1)
+ 
+ mword-relocations
+ UrlSuffix(gcc/ARM-Options.html#index-mword-relocations)
+ 
+ mrestrict-it
+ UrlSuffix(gcc/ARM-Options.html#index-mrestrict-it)
+ 
+ mfix-cortex-m3-ldrd
+ UrlSuffix(gcc/ARM-Options.html#index-mfix-cortex-m3-ldrd)
+ 
+ mfix-cmse-cve-2021-35465
+ UrlSuffix(gcc/ARM-Options.html#index-mfix-cmse-cve-2021-35465)
+ 
+ munaligned-access
+ UrlSuffix(gcc/ARM-Options.html#index-munaligned-access)
+ 
+ mneon-for-64bits
+ UrlSuffix(gcc/ARM-Options.html#index-mneon-for-64bits)
+ 
+ mslow-flash-data
+ UrlSuffix(gcc/ARM-Options.html#index-mslow-flash-data)
+ 
+ masm-syntax-unified
+ UrlSuffix(gcc/ARM-Options.html#index-masm-syntax-unified)
+ 
+ mpure-code
+ UrlSuffix(gcc/ARM-Options.html#index-mpure-code)
+ 
+ mbe8
+ UrlSuffix(gcc/ARM-Options.html#index-mbe8)
+ 
+ ; skipping UrlSuffix for 'mbranch-cost=' due to finding no URLs
+ 
+ mbranch-protection=
+ UrlSuffix(gcc/ARM-Options.html#index-mbranch-protection-1)
+ 
+ mgeneral-regs-only
+ UrlSuffix(gcc/ARM-Options.html#index-mgeneral-regs-only-1)
+ 
+ mfdpic
+ UrlSuffix(gcc/ARM-Options.html#index-mfdpic)
+ 
+ mstack-protector-guard=
+ UrlSuffix(gcc/ARM-Options.html#index-mstack-protector-guard-1)
+ 
+ mstack-protector-guard-offset=
+ UrlSuffix(gcc/ARM-Options.html#index-mstack-protector-guard-offset-1)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm1020e.md gcc-14.1.0/gcc/config/arm/arm1020e.md
*** gcc-13.2.0/gcc/config/arm/arm1020e.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm1020e.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM 1020E & ARM 1022E Pipeline Description
! ;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;; Contributed by Richard Earnshaw (richard.earnshaw@arm.com)
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM 1020E & ARM 1022E Pipeline Description
! ;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;; Contributed by Richard Earnshaw (richard.earnshaw@arm.com)
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm1026ejs.md gcc-14.1.0/gcc/config/arm/arm1026ejs.md
*** gcc-13.2.0/gcc/config/arm/arm1026ejs.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm1026ejs.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM 1026EJ-S Pipeline Description
! ;; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery, LLC.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM 1026EJ-S Pipeline Description
! ;; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery, LLC.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm1136jfs.md gcc-14.1.0/gcc/config/arm/arm1136jfs.md
*** gcc-13.2.0/gcc/config/arm/arm1136jfs.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm1136jfs.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM 1136J[F]-S Pipeline Description
! ;; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery, LLC.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM 1136J[F]-S Pipeline Description
! ;; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery, LLC.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm926ejs.md gcc-14.1.0/gcc/config/arm/arm926ejs.md
*** gcc-13.2.0/gcc/config/arm/arm926ejs.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm926ejs.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM 926EJ-S Pipeline Description
! ;; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery, LLC.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM 926EJ-S Pipeline Description
! ;; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery, LLC.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_acle.h gcc-14.1.0/gcc/config/arm/arm_acle.h
*** gcc-13.2.0/gcc/config/arm/arm_acle.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_acle.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* ARM Non-NEON ACLE intrinsics include file.
  
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* ARM Non-NEON ACLE intrinsics include file.
  
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
***************
*** 28,37 ****
--- 28,101 ----
  #define _GCC_ARM_ACLE_H
  
  #include <stdint.h>
+ 
  #ifdef __cplusplus
  extern "C" {
  #endif
  
+ #define _GCC_ARM_ACLE_ROR_FN(NAME, TYPE)				  \
+ __extension__ extern __inline TYPE					  \
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))	  \
+ NAME (TYPE __value, uint32_t __rotate)					  \
+ {									  \
+   int __size = (int) sizeof (TYPE) * __CHAR_BIT__;                        \
+   __rotate = __rotate % __size;                                           \
+   return __value >> __rotate | __value << ((__size - __rotate) % __size); \
+ }
+ 
+ _GCC_ARM_ACLE_ROR_FN (__ror, uint32_t)
+ _GCC_ARM_ACLE_ROR_FN (__rorl, unsigned long)
+ _GCC_ARM_ACLE_ROR_FN (__rorll, uint64_t)
+ 
+ #undef _GCC_ARM_ACLE_ROR_FN
+ 
+ #define _GCC_ARM_ACLE_DATA_FN(NAME, ITYPE, RTYPE) \
+ __extension__ extern __inline RTYPE				    \
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
+ __##NAME (ITYPE __value)
+ 
+ #define _GCC_ARM_ACLE_DATA_ALIAS(NAME, BUILTIN, ITYPE, RTYPE)	    \
+ _GCC_ARM_ACLE_DATA_FN(NAME, ITYPE, RTYPE) \
+ {                                         \
+   return __builtin_##BUILTIN (__value);   \
+ }
+ 
+ _GCC_ARM_ACLE_DATA_ALIAS (clz, clz, uint32_t, unsigned int)
+ _GCC_ARM_ACLE_DATA_ALIAS (clzl, clzl, unsigned long, unsigned int)
+ _GCC_ARM_ACLE_DATA_ALIAS (clzll, clzll, uint64_t, unsigned int)
+ _GCC_ARM_ACLE_DATA_ALIAS (cls, clrsb, uint32_t, unsigned int)
+ _GCC_ARM_ACLE_DATA_ALIAS (clsl, clrsbl, unsigned long, unsigned int)
+ _GCC_ARM_ACLE_DATA_ALIAS (clsll, clrsbll, uint64_t, unsigned int)
+ _GCC_ARM_ACLE_DATA_ALIAS (revsh, bswap16, int16_t, int16_t)
+ _GCC_ARM_ACLE_DATA_ALIAS (rev, bswap32, uint32_t, uint32_t)
+ _GCC_ARM_ACLE_DATA_ALIAS (revl, bswap32, unsigned long, unsigned long)
+ _GCC_ARM_ACLE_DATA_ALIAS (revll, bswap64, uint64_t, uint64_t)
+ #if __ARM_ARCH >= 6
+ _GCC_ARM_ACLE_DATA_ALIAS (rev16, arm_rev16si2, uint32_t, uint32_t)
+ _GCC_ARM_ACLE_DATA_ALIAS (rev16l, arm_rev16si2, unsigned long, unsigned long)
+ #else
+ _GCC_ARM_ACLE_DATA_FN(rev16, uint32_t, uint32_t) {
+   return ((__value & 0xff00ff) << 8 | (__value & 0xff00ff00) >> 8);
+ }
+ _GCC_ARM_ACLE_DATA_FN(rev16l, unsigned long, unsigned long) {
+   return ((__value & 0xff00ff) << 8 | (__value & 0xff00ff00) >> 8);
+ }
+ #endif
+ _GCC_ARM_ACLE_DATA_FN(rev16ll, uint64_t, uint64_t) {
+   return __rev16l(__value) | (uint64_t)__rev16l(__value >> 32) << 32;
+ }
+ 
+ #if __ARM_ARCH_6T2__ ||  __ARM_ARCH >= 7
+ _GCC_ARM_ACLE_DATA_ALIAS (rbit, arm_rbit, uint32_t, uint32_t)
+ _GCC_ARM_ACLE_DATA_ALIAS (rbitl, arm_rbit, unsigned long, unsigned int)
+ _GCC_ARM_ACLE_DATA_FN(rbitll, uint64_t, uint64_t) {
+   return ((uint64_t)__rbit(__value) << 32) | __rbit(__value >> 32);
+ }
+ #endif
+ 
+ #undef _GCC_ARM_ACLE_DATA_ALIAS
+ #undef _GCC_ARM_ACLE_DATA_FN
+ 
  #if (!__thumb__ || __thumb2__) &&  __ARM_ARCH >= 4
  __extension__ static __inline void __attribute__ ((__always_inline__))
  __arm_cdp (const unsigned int __coproc, const unsigned int __opc1,
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_acle_builtins.def gcc-14.1.0/gcc/config/arm/arm_acle_builtins.def
*** gcc-13.2.0/gcc/config/arm/arm_acle_builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_acle_builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ACLE builtin definitions for ARM.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* ACLE builtin definitions for ARM.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** VAR1 (BINOP, smuadx, si)
*** 117,119 ****
--- 117,122 ----
  
  VAR1 (SAT_BINOP_UNSIGNED_IMM, ssat16, si)
  VAR1 (SAT_BINOP_UNSIGNED_IMM, usat16, si)
+ 
+ VAR1 (BSWAP, rbit, si)
+ VAR1 (BSWAP, rev16si2, si)
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_bf16.h gcc-14.1.0/gcc/config/arm/arm_bf16.h
*** gcc-13.2.0/gcc/config/arm/arm_bf16.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_bf16.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Arm BF16 intrinsics include file.
  
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,6 ----
  /* Arm BF16 intrinsics include file.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_cde.h gcc-14.1.0/gcc/config/arm/arm_cde.h
*** gcc-13.2.0/gcc/config/arm/arm_cde.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_cde.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Arm Custom Datapath Extension (CDE) intrinsics include file.
  
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* Arm Custom Datapath Extension (CDE) intrinsics include file.
  
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_cde_builtins.def gcc-14.1.0/gcc/config/arm/arm_cde_builtins.def
*** gcc-13.2.0/gcc/config/arm/arm_cde_builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_cde_builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Arm Custom Datapath Extension (CDE) builtin definitions.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* Arm Custom Datapath Extension (CDE) builtin definitions.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by Arm Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_cmse.h gcc-14.1.0/gcc/config/arm/arm_cmse.h
*** gcc-13.2.0/gcc/config/arm/arm_cmse.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_cmse.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* ARMv8-M Secure Extensions intrinsics include file.
  
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* ARMv8-M Secure Extensions intrinsics include file.
  
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_fp16.h gcc-14.1.0/gcc/config/arm/arm_fp16.h
*** gcc-13.2.0/gcc/config/arm/arm_fp16.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_fp16.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* ARM FP16 intrinsics include file.
  
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,6 ----
  /* ARM FP16 intrinsics include file.
  
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_mve.h gcc-14.1.0/gcc/config/arm/arm_mve.h
*** gcc-13.2.0/gcc/config/arm/arm_mve.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_mve.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Arm MVE intrinsics include file.
  
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
     Contributed by Arm.
  
     This file is part of GCC.
--- 1,6 ----
  /* Arm MVE intrinsics include file.
  
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
     Contributed by Arm.
  
     This file is part of GCC.
***************
*** 34,316 ****
  #endif
  #include "arm_mve_types.h"
  
  #ifndef __ARM_MVE_PRESERVE_USER_NAMESPACE
  #define vst4q(__addr, __value) __arm_vst4q(__addr, __value)
- #define vdupq_n(__a) __arm_vdupq_n(__a)
- #define vabsq(__a) __arm_vabsq(__a)
- #define vclsq(__a) __arm_vclsq(__a)
- #define vclzq(__a) __arm_vclzq(__a)
- #define vnegq(__a) __arm_vnegq(__a)
- #define vaddlvq(__a) __arm_vaddlvq(__a)
- #define vaddvq(__a) __arm_vaddvq(__a)
- #define vmovlbq(__a) __arm_vmovlbq(__a)
- #define vmovltq(__a) __arm_vmovltq(__a)
- #define vmvnq(__a) __arm_vmvnq(__a)
- #define vrev16q(__a) __arm_vrev16q(__a)
- #define vrev32q(__a) __arm_vrev32q(__a)
- #define vrev64q(__a) __arm_vrev64q(__a)
- #define vqabsq(__a) __arm_vqabsq(__a)
- #define vqnegq(__a) __arm_vqnegq(__a)
- #define vshrq(__a, __imm) __arm_vshrq(__a, __imm)
- #define vaddlvq_p(__a, __p) __arm_vaddlvq_p(__a, __p)
- #define vcmpneq(__a, __b) __arm_vcmpneq(__a, __b)
- #define vshlq(__a, __b) __arm_vshlq(__a, __b)
- #define vsubq(__a, __b) __arm_vsubq(__a, __b)
- #define vrmulhq(__a, __b) __arm_vrmulhq(__a, __b)
- #define vrhaddq(__a, __b) __arm_vrhaddq(__a, __b)
- #define vqsubq(__a, __b) __arm_vqsubq(__a, __b)
- #define vqaddq(__a, __b) __arm_vqaddq(__a, __b)
- #define vorrq(__a, __b) __arm_vorrq(__a, __b)
  #define vornq(__a, __b) __arm_vornq(__a, __b)
- #define vmulq(__a, __b) __arm_vmulq(__a, __b)
- #define vmulltq_int(__a, __b) __arm_vmulltq_int(__a, __b)
- #define vmullbq_int(__a, __b) __arm_vmullbq_int(__a, __b)
- #define vmulhq(__a, __b) __arm_vmulhq(__a, __b)
- #define vmladavq(__a, __b) __arm_vmladavq(__a, __b)
- #define vminvq(__a, __b) __arm_vminvq(__a, __b)
- #define vminq(__a, __b) __arm_vminq(__a, __b)
- #define vmaxvq(__a, __b) __arm_vmaxvq(__a, __b)
- #define vmaxq(__a, __b) __arm_vmaxq(__a, __b)
- #define vhsubq(__a, __b) __arm_vhsubq(__a, __b)
- #define vhaddq(__a, __b) __arm_vhaddq(__a, __b)
- #define veorq(__a, __b) __arm_veorq(__a, __b)
- #define vcmphiq(__a, __b) __arm_vcmphiq(__a, __b)
- #define vcmpeqq(__a, __b) __arm_vcmpeqq(__a, __b)
- #define vcmpcsq(__a, __b) __arm_vcmpcsq(__a, __b)
- #define vcaddq_rot90(__a, __b) __arm_vcaddq_rot90(__a, __b)
- #define vcaddq_rot270(__a, __b) __arm_vcaddq_rot270(__a, __b)
  #define vbicq(__a, __b) __arm_vbicq(__a, __b)
- #define vandq(__a, __b) __arm_vandq(__a, __b)
- #define vaddvq_p(__a, __p) __arm_vaddvq_p(__a, __p)
- #define vaddvaq(__a, __b) __arm_vaddvaq(__a, __b)
- #define vaddq(__a, __b) __arm_vaddq(__a, __b)
- #define vabdq(__a, __b) __arm_vabdq(__a, __b)
- #define vshlq_r(__a, __b) __arm_vshlq_r(__a, __b)
- #define vrshlq(__a, __b) __arm_vrshlq(__a, __b)
- #define vqshlq(__a, __b) __arm_vqshlq(__a, __b)
- #define vqshlq_r(__a, __b) __arm_vqshlq_r(__a, __b)
- #define vqrshlq(__a, __b) __arm_vqrshlq(__a, __b)
- #define vminavq(__a, __b) __arm_vminavq(__a, __b)
- #define vminaq(__a, __b) __arm_vminaq(__a, __b)
- #define vmaxavq(__a, __b) __arm_vmaxavq(__a, __b)
- #define vmaxaq(__a, __b) __arm_vmaxaq(__a, __b)
- #define vbrsrq(__a, __b) __arm_vbrsrq(__a, __b)
- #define vshlq_n(__a, __imm) __arm_vshlq_n(__a, __imm)
- #define vrshrq(__a, __imm) __arm_vrshrq(__a, __imm)
- #define vqshlq_n(__a, __imm) __arm_vqshlq_n(__a, __imm)
- #define vcmpltq(__a, __b) __arm_vcmpltq(__a, __b)
- #define vcmpleq(__a, __b) __arm_vcmpleq(__a, __b)
- #define vcmpgtq(__a, __b) __arm_vcmpgtq(__a, __b)
- #define vcmpgeq(__a, __b) __arm_vcmpgeq(__a, __b)
- #define vqshluq(__a, __imm) __arm_vqshluq(__a, __imm)
- #define vqrdmulhq(__a, __b) __arm_vqrdmulhq(__a, __b)
- #define vqdmulhq(__a, __b) __arm_vqdmulhq(__a, __b)
- #define vmlsdavxq(__a, __b) __arm_vmlsdavxq(__a, __b)
- #define vmlsdavq(__a, __b) __arm_vmlsdavq(__a, __b)
- #define vmladavxq(__a, __b) __arm_vmladavxq(__a, __b)
- #define vhcaddq_rot90(__a, __b) __arm_vhcaddq_rot90(__a, __b)
- #define vhcaddq_rot270(__a, __b) __arm_vhcaddq_rot270(__a, __b)
- #define vqmovntq(__a, __b) __arm_vqmovntq(__a, __b)
- #define vqmovnbq(__a, __b) __arm_vqmovnbq(__a, __b)
- #define vmulltq_poly(__a, __b) __arm_vmulltq_poly(__a, __b)
- #define vmullbq_poly(__a, __b) __arm_vmullbq_poly(__a, __b)
- #define vmovntq(__a, __b) __arm_vmovntq(__a, __b)
- #define vmovnbq(__a, __b) __arm_vmovnbq(__a, __b)
- #define vmlaldavq(__a, __b) __arm_vmlaldavq(__a, __b)
- #define vqmovuntq(__a, __b) __arm_vqmovuntq(__a, __b)
- #define vqmovunbq(__a, __b) __arm_vqmovunbq(__a, __b)
- #define vshlltq(__a, __imm) __arm_vshlltq(__a, __imm)
- #define vshllbq(__a, __imm) __arm_vshllbq(__a, __imm)
- #define vqdmulltq(__a, __b) __arm_vqdmulltq(__a, __b)
- #define vqdmullbq(__a, __b) __arm_vqdmullbq(__a, __b)
- #define vmlsldavxq(__a, __b) __arm_vmlsldavxq(__a, __b)
- #define vmlsldavq(__a, __b) __arm_vmlsldavq(__a, __b)
- #define vmlaldavxq(__a, __b) __arm_vmlaldavxq(__a, __b)
- #define vrmlaldavhq(__a, __b) __arm_vrmlaldavhq(__a, __b)
- #define vaddlvaq(__a, __b) __arm_vaddlvaq(__a, __b)
- #define vrmlsldavhxq(__a, __b) __arm_vrmlsldavhxq(__a, __b)
- #define vrmlsldavhq(__a, __b) __arm_vrmlsldavhq(__a, __b)
- #define vrmlaldavhxq(__a, __b) __arm_vrmlaldavhxq(__a, __b)
- #define vabavq(__a, __b, __c) __arm_vabavq(__a, __b, __c)
  #define vbicq_m_n(__a, __imm, __p) __arm_vbicq_m_n(__a, __imm, __p)
- #define vqrshrnbq(__a, __b, __imm) __arm_vqrshrnbq(__a, __b, __imm)
- #define vqrshrunbq(__a, __b, __imm) __arm_vqrshrunbq(__a, __b, __imm)
- #define vrmlaldavhaq(__a, __b, __c) __arm_vrmlaldavhaq(__a, __b, __c)
  #define vshlcq(__a, __b, __imm) __arm_vshlcq(__a, __b, __imm)
- #define vpselq(__a, __b, __p) __arm_vpselq(__a, __b, __p)
- #define vrev64q_m(__inactive, __a, __p) __arm_vrev64q_m(__inactive, __a, __p)
- #define vqrdmlashq(__a, __b, __c) __arm_vqrdmlashq(__a, __b, __c)
- #define vqrdmlahq(__a, __b, __c) __arm_vqrdmlahq(__a, __b, __c)
- #define vqdmlashq(__a, __b, __c) __arm_vqdmlashq(__a, __b, __c)
- #define vqdmlahq(__a, __b, __c) __arm_vqdmlahq(__a, __b, __c)
- #define vmvnq_m(__inactive, __a, __p) __arm_vmvnq_m(__inactive, __a, __p)
- #define vmlasq(__a, __b, __c) __arm_vmlasq(__a, __b, __c)
- #define vmlaq(__a, __b, __c) __arm_vmlaq(__a, __b, __c)
- #define vmladavq_p(__a, __b, __p) __arm_vmladavq_p(__a, __b, __p)
- #define vmladavaq(__a, __b, __c) __arm_vmladavaq(__a, __b, __c)
- #define vminvq_p(__a, __b, __p) __arm_vminvq_p(__a, __b, __p)
- #define vmaxvq_p(__a, __b, __p) __arm_vmaxvq_p(__a, __b, __p)
- #define vdupq_m(__inactive, __a, __p) __arm_vdupq_m(__inactive, __a, __p)
- #define vcmpneq_m(__a, __b, __p) __arm_vcmpneq_m(__a, __b, __p)
- #define vcmphiq_m(__a, __b, __p) __arm_vcmphiq_m(__a, __b, __p)
- #define vcmpeqq_m(__a, __b, __p) __arm_vcmpeqq_m(__a, __b, __p)
- #define vcmpcsq_m(__a, __b, __p) __arm_vcmpcsq_m(__a, __b, __p)
- #define vcmpcsq_m_n(__a, __b, __p) __arm_vcmpcsq_m_n(__a, __b, __p)
- #define vclzq_m(__inactive, __a, __p) __arm_vclzq_m(__inactive, __a, __p)
- #define vaddvaq_p(__a, __b, __p) __arm_vaddvaq_p(__a, __b, __p)
- #define vsriq(__a, __b, __imm) __arm_vsriq(__a, __b, __imm)
- #define vsliq(__a, __b, __imm) __arm_vsliq(__a, __b, __imm)
- #define vshlq_m_r(__a, __b, __p) __arm_vshlq_m_r(__a, __b, __p)
- #define vrshlq_m_n(__a, __b, __p) __arm_vrshlq_m_n(__a, __b, __p)
- #define vqshlq_m_r(__a, __b, __p) __arm_vqshlq_m_r(__a, __b, __p)
- #define vqrshlq_m_n(__a, __b, __p) __arm_vqrshlq_m_n(__a, __b, __p)
- #define vminavq_p(__a, __b, __p) __arm_vminavq_p(__a, __b, __p)
- #define vminaq_m(__a, __b, __p) __arm_vminaq_m(__a, __b, __p)
- #define vmaxavq_p(__a, __b, __p) __arm_vmaxavq_p(__a, __b, __p)
- #define vmaxaq_m(__a, __b, __p) __arm_vmaxaq_m(__a, __b, __p)
- #define vcmpltq_m(__a, __b, __p) __arm_vcmpltq_m(__a, __b, __p)
- #define vcmpleq_m(__a, __b, __p) __arm_vcmpleq_m(__a, __b, __p)
- #define vcmpgtq_m(__a, __b, __p) __arm_vcmpgtq_m(__a, __b, __p)
- #define vcmpgeq_m(__a, __b, __p) __arm_vcmpgeq_m(__a, __b, __p)
- #define vqnegq_m(__inactive, __a, __p) __arm_vqnegq_m(__inactive, __a, __p)
- #define vqabsq_m(__inactive, __a, __p) __arm_vqabsq_m(__inactive, __a, __p)
- #define vnegq_m(__inactive, __a, __p) __arm_vnegq_m(__inactive, __a, __p)
- #define vmlsdavxq_p(__a, __b, __p) __arm_vmlsdavxq_p(__a, __b, __p)
- #define vmlsdavq_p(__a, __b, __p) __arm_vmlsdavq_p(__a, __b, __p)
- #define vmladavxq_p(__a, __b, __p) __arm_vmladavxq_p(__a, __b, __p)
- #define vclsq_m(__inactive, __a, __p) __arm_vclsq_m(__inactive, __a, __p)
- #define vabsq_m(__inactive, __a, __p) __arm_vabsq_m(__inactive, __a, __p)
- #define vqrdmlsdhxq(__inactive, __a, __b) __arm_vqrdmlsdhxq(__inactive, __a, __b)
- #define vqrdmlsdhq(__inactive, __a, __b) __arm_vqrdmlsdhq(__inactive, __a, __b)
- #define vqrdmladhxq(__inactive, __a, __b) __arm_vqrdmladhxq(__inactive, __a, __b)
- #define vqrdmladhq(__inactive, __a, __b) __arm_vqrdmladhq(__inactive, __a, __b)
- #define vqdmlsdhxq(__inactive, __a, __b) __arm_vqdmlsdhxq(__inactive, __a, __b)
- #define vqdmlsdhq(__inactive, __a, __b) __arm_vqdmlsdhq(__inactive, __a, __b)
- #define vqdmladhxq(__inactive, __a, __b) __arm_vqdmladhxq(__inactive, __a, __b)
- #define vqdmladhq(__inactive, __a, __b) __arm_vqdmladhq(__inactive, __a, __b)
- #define vmlsdavaxq(__a, __b, __c) __arm_vmlsdavaxq(__a, __b, __c)
- #define vmlsdavaq(__a, __b, __c) __arm_vmlsdavaq(__a, __b, __c)
- #define vmladavaxq(__a, __b, __c) __arm_vmladavaxq(__a, __b, __c)
- #define vrmlaldavhaxq(__a, __b, __c) __arm_vrmlaldavhaxq(__a, __b, __c)
- #define vrmlsldavhaq(__a, __b, __c) __arm_vrmlsldavhaq(__a, __b, __c)
- #define vrmlsldavhaxq(__a, __b, __c) __arm_vrmlsldavhaxq(__a, __b, __c)
- #define vaddlvaq_p(__a, __b, __p) __arm_vaddlvaq_p(__a, __b, __p)
- #define vrev16q_m(__inactive, __a, __p) __arm_vrev16q_m(__inactive, __a, __p)
- #define vrmlaldavhq_p(__a, __b, __p) __arm_vrmlaldavhq_p(__a, __b, __p)
- #define vrmlaldavhxq_p(__a, __b, __p) __arm_vrmlaldavhxq_p(__a, __b, __p)
- #define vrmlsldavhq_p(__a, __b, __p) __arm_vrmlsldavhq_p(__a, __b, __p)
- #define vrmlsldavhxq_p(__a, __b, __p) __arm_vrmlsldavhxq_p(__a, __b, __p)
- #define vorrq_m_n(__a, __imm, __p) __arm_vorrq_m_n(__a, __imm, __p)
- #define vqrshrntq(__a, __b, __imm) __arm_vqrshrntq(__a, __b, __imm)
- #define vqshrnbq(__a, __b, __imm) __arm_vqshrnbq(__a, __b, __imm)
- #define vqshrntq(__a, __b, __imm) __arm_vqshrntq(__a, __b, __imm)
- #define vrshrnbq(__a, __b, __imm) __arm_vrshrnbq(__a, __b, __imm)
- #define vrshrntq(__a, __b, __imm) __arm_vrshrntq(__a, __b, __imm)
- #define vshrnbq(__a, __b, __imm) __arm_vshrnbq(__a, __b, __imm)
- #define vshrntq(__a, __b, __imm) __arm_vshrntq(__a, __b, __imm)
- #define vmlaldavaq(__a, __b, __c) __arm_vmlaldavaq(__a, __b, __c)
- #define vmlaldavaxq(__a, __b, __c) __arm_vmlaldavaxq(__a, __b, __c)
- #define vmlsldavaq(__a, __b, __c) __arm_vmlsldavaq(__a, __b, __c)
- #define vmlsldavaxq(__a, __b, __c) __arm_vmlsldavaxq(__a, __b, __c)
- #define vmlaldavq_p(__a, __b, __p) __arm_vmlaldavq_p(__a, __b, __p)
- #define vmlaldavxq_p(__a, __b, __p) __arm_vmlaldavxq_p(__a, __b, __p)
- #define vmlsldavq_p(__a, __b, __p) __arm_vmlsldavq_p(__a, __b, __p)
- #define vmlsldavxq_p(__a, __b, __p) __arm_vmlsldavxq_p(__a, __b, __p)
- #define vmovlbq_m(__inactive, __a, __p) __arm_vmovlbq_m(__inactive, __a, __p)
- #define vmovltq_m(__inactive, __a, __p) __arm_vmovltq_m(__inactive, __a, __p)
- #define vmovnbq_m(__a, __b, __p) __arm_vmovnbq_m(__a, __b, __p)
- #define vmovntq_m(__a, __b, __p) __arm_vmovntq_m(__a, __b, __p)
- #define vqmovnbq_m(__a, __b, __p) __arm_vqmovnbq_m(__a, __b, __p)
- #define vqmovntq_m(__a, __b, __p) __arm_vqmovntq_m(__a, __b, __p)
- #define vrev32q_m(__inactive, __a, __p) __arm_vrev32q_m(__inactive, __a, __p)
- #define vqrshruntq(__a, __b, __imm) __arm_vqrshruntq(__a, __b, __imm)
- #define vqshrunbq(__a, __b, __imm) __arm_vqshrunbq(__a, __b, __imm)
- #define vqshruntq(__a, __b, __imm) __arm_vqshruntq(__a, __b, __imm)
- #define vqmovunbq_m(__a, __b, __p) __arm_vqmovunbq_m(__a, __b, __p)
- #define vqmovuntq_m(__a, __b, __p) __arm_vqmovuntq_m(__a, __b, __p)
- #define vsriq_m(__a, __b, __imm, __p) __arm_vsriq_m(__a, __b, __imm, __p)
- #define vsubq_m(__inactive, __a, __b, __p) __arm_vsubq_m(__inactive, __a, __b, __p)
- #define vqshluq_m(__inactive, __a, __imm, __p) __arm_vqshluq_m(__inactive, __a, __imm, __p)
- #define vabavq_p(__a, __b, __c, __p) __arm_vabavq_p(__a, __b, __c, __p)
- #define vshlq_m(__inactive, __a, __b, __p) __arm_vshlq_m(__inactive, __a, __b, __p)
- #define vabdq_m(__inactive, __a, __b, __p) __arm_vabdq_m(__inactive, __a, __b, __p)
- #define vaddq_m(__inactive, __a, __b, __p) __arm_vaddq_m(__inactive, __a, __b, __p)
- #define vandq_m(__inactive, __a, __b, __p) __arm_vandq_m(__inactive, __a, __b, __p)
  #define vbicq_m(__inactive, __a, __b, __p) __arm_vbicq_m(__inactive, __a, __b, __p)
- #define vbrsrq_m(__inactive, __a, __b, __p) __arm_vbrsrq_m(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m(__inactive, __a, __b, __p)
- #define veorq_m(__inactive, __a, __b, __p) __arm_veorq_m(__inactive, __a, __b, __p)
- #define vhaddq_m(__inactive, __a, __b, __p) __arm_vhaddq_m(__inactive, __a, __b, __p)
- #define vhcaddq_rot270_m(__inactive, __a, __b, __p) __arm_vhcaddq_rot270_m(__inactive, __a, __b, __p)
- #define vhcaddq_rot90_m(__inactive, __a, __b, __p) __arm_vhcaddq_rot90_m(__inactive, __a, __b, __p)
- #define vhsubq_m(__inactive, __a, __b, __p) __arm_vhsubq_m(__inactive, __a, __b, __p)
- #define vmaxq_m(__inactive, __a, __b, __p) __arm_vmaxq_m(__inactive, __a, __b, __p)
- #define vminq_m(__inactive, __a, __b, __p) __arm_vminq_m(__inactive, __a, __b, __p)
- #define vmladavaq_p(__a, __b, __c, __p) __arm_vmladavaq_p(__a, __b, __c, __p)
- #define vmladavaxq_p(__a, __b, __c, __p) __arm_vmladavaxq_p(__a, __b, __c, __p)
- #define vmlaq_m(__a, __b, __c, __p) __arm_vmlaq_m(__a, __b, __c, __p)
- #define vmlasq_m(__a, __b, __c, __p) __arm_vmlasq_m(__a, __b, __c, __p)
- #define vmlsdavaq_p(__a, __b, __c, __p) __arm_vmlsdavaq_p(__a, __b, __c, __p)
- #define vmlsdavaxq_p(__a, __b, __c, __p) __arm_vmlsdavaxq_p(__a, __b, __c, __p)
- #define vmulhq_m(__inactive, __a, __b, __p) __arm_vmulhq_m(__inactive, __a, __b, __p)
- #define vmullbq_int_m(__inactive, __a, __b, __p) __arm_vmullbq_int_m(__inactive, __a, __b, __p)
- #define vmulltq_int_m(__inactive, __a, __b, __p) __arm_vmulltq_int_m(__inactive, __a, __b, __p)
- #define vmulq_m(__inactive, __a, __b, __p) __arm_vmulq_m(__inactive, __a, __b, __p)
  #define vornq_m(__inactive, __a, __b, __p) __arm_vornq_m(__inactive, __a, __b, __p)
- #define vorrq_m(__inactive, __a, __b, __p) __arm_vorrq_m(__inactive, __a, __b, __p)
- #define vqaddq_m(__inactive, __a, __b, __p) __arm_vqaddq_m(__inactive, __a, __b, __p)
- #define vqdmladhq_m(__inactive, __a, __b, __p) __arm_vqdmladhq_m(__inactive, __a, __b, __p)
- #define vqdmlashq_m(__a, __b, __c, __p) __arm_vqdmlashq_m(__a, __b, __c, __p)
- #define vqdmladhxq_m(__inactive, __a, __b, __p) __arm_vqdmladhxq_m(__inactive, __a, __b, __p)
- #define vqdmlahq_m(__a, __b, __c, __p) __arm_vqdmlahq_m(__a, __b, __c, __p)
- #define vqdmlsdhq_m(__inactive, __a, __b, __p) __arm_vqdmlsdhq_m(__inactive, __a, __b, __p)
- #define vqdmlsdhxq_m(__inactive, __a, __b, __p) __arm_vqdmlsdhxq_m(__inactive, __a, __b, __p)
- #define vqdmulhq_m(__inactive, __a, __b, __p) __arm_vqdmulhq_m(__inactive, __a, __b, __p)
- #define vqrdmladhq_m(__inactive, __a, __b, __p) __arm_vqrdmladhq_m(__inactive, __a, __b, __p)
- #define vqrdmladhxq_m(__inactive, __a, __b, __p) __arm_vqrdmladhxq_m(__inactive, __a, __b, __p)
- #define vqrdmlahq_m(__a, __b, __c, __p) __arm_vqrdmlahq_m(__a, __b, __c, __p)
- #define vqrdmlashq_m(__a, __b, __c, __p) __arm_vqrdmlashq_m(__a, __b, __c, __p)
- #define vqrdmlsdhq_m(__inactive, __a, __b, __p) __arm_vqrdmlsdhq_m(__inactive, __a, __b, __p)
- #define vqrdmlsdhxq_m(__inactive, __a, __b, __p) __arm_vqrdmlsdhxq_m(__inactive, __a, __b, __p)
- #define vqrdmulhq_m(__inactive, __a, __b, __p) __arm_vqrdmulhq_m(__inactive, __a, __b, __p)
- #define vqrshlq_m(__inactive, __a, __b, __p) __arm_vqrshlq_m(__inactive, __a, __b, __p)
- #define vqshlq_m_n(__inactive, __a, __imm, __p) __arm_vqshlq_m_n(__inactive, __a, __imm, __p)
- #define vqshlq_m(__inactive, __a, __b, __p) __arm_vqshlq_m(__inactive, __a, __b, __p)
- #define vqsubq_m(__inactive, __a, __b, __p) __arm_vqsubq_m(__inactive, __a, __b, __p)
- #define vrhaddq_m(__inactive, __a, __b, __p) __arm_vrhaddq_m(__inactive, __a, __b, __p)
- #define vrmulhq_m(__inactive, __a, __b, __p) __arm_vrmulhq_m(__inactive, __a, __b, __p)
- #define vrshlq_m(__inactive, __a, __b, __p) __arm_vrshlq_m(__inactive, __a, __b, __p)
- #define vrshrq_m(__inactive, __a, __imm, __p) __arm_vrshrq_m(__inactive, __a, __imm, __p)
- #define vshlq_m_n(__inactive, __a, __imm, __p) __arm_vshlq_m_n(__inactive, __a, __imm, __p)
- #define vshrq_m(__inactive, __a, __imm, __p) __arm_vshrq_m(__inactive, __a, __imm, __p)
- #define vsliq_m(__a, __b, __imm, __p) __arm_vsliq_m(__a, __b, __imm, __p)
- #define vmlaldavaq_p(__a, __b, __c, __p) __arm_vmlaldavaq_p(__a, __b, __c, __p)
- #define vmlaldavaxq_p(__a, __b, __c, __p) __arm_vmlaldavaxq_p(__a, __b, __c, __p)
- #define vmlsldavaq_p(__a, __b, __c, __p) __arm_vmlsldavaq_p(__a, __b, __c, __p)
- #define vmlsldavaxq_p(__a, __b, __c, __p) __arm_vmlsldavaxq_p(__a, __b, __c, __p)
- #define vmullbq_poly_m(__inactive, __a, __b, __p) __arm_vmullbq_poly_m(__inactive, __a, __b, __p)
- #define vmulltq_poly_m(__inactive, __a, __b, __p) __arm_vmulltq_poly_m(__inactive, __a, __b, __p)
- #define vqdmullbq_m(__inactive, __a, __b, __p) __arm_vqdmullbq_m(__inactive, __a, __b, __p)
- #define vqdmulltq_m(__inactive, __a, __b, __p) __arm_vqdmulltq_m(__inactive, __a, __b, __p)
- #define vqrshrnbq_m(__a, __b, __imm, __p) __arm_vqrshrnbq_m(__a, __b, __imm, __p)
- #define vqrshrntq_m(__a, __b, __imm, __p) __arm_vqrshrntq_m(__a, __b, __imm, __p)
- #define vqrshrunbq_m(__a, __b, __imm, __p) __arm_vqrshrunbq_m(__a, __b, __imm, __p)
- #define vqrshruntq_m(__a, __b, __imm, __p) __arm_vqrshruntq_m(__a, __b, __imm, __p)
- #define vqshrnbq_m(__a, __b, __imm, __p) __arm_vqshrnbq_m(__a, __b, __imm, __p)
- #define vqshrntq_m(__a, __b, __imm, __p) __arm_vqshrntq_m(__a, __b, __imm, __p)
- #define vqshrunbq_m(__a, __b, __imm, __p) __arm_vqshrunbq_m(__a, __b, __imm, __p)
- #define vqshruntq_m(__a, __b, __imm, __p) __arm_vqshruntq_m(__a, __b, __imm, __p)
- #define vrmlaldavhaq_p(__a, __b, __c, __p) __arm_vrmlaldavhaq_p(__a, __b, __c, __p)
- #define vrmlaldavhaxq_p(__a, __b, __c, __p) __arm_vrmlaldavhaxq_p(__a, __b, __c, __p)
- #define vrmlsldavhaq_p(__a, __b, __c, __p) __arm_vrmlsldavhaq_p(__a, __b, __c, __p)
- #define vrmlsldavhaxq_p(__a, __b, __c, __p) __arm_vrmlsldavhaxq_p(__a, __b, __c, __p)
- #define vrshrnbq_m(__a, __b, __imm, __p) __arm_vrshrnbq_m(__a, __b, __imm, __p)
- #define vrshrntq_m(__a, __b, __imm, __p) __arm_vrshrntq_m(__a, __b, __imm, __p)
- #define vshllbq_m(__inactive, __a, __imm, __p) __arm_vshllbq_m(__inactive, __a, __imm, __p)
- #define vshlltq_m(__inactive, __a, __imm, __p) __arm_vshlltq_m(__inactive, __a, __imm, __p)
- #define vshrnbq_m(__a, __b, __imm, __p) __arm_vshrnbq_m(__a, __b, __imm, __p)
- #define vshrntq_m(__a, __b, __imm, __p) __arm_vshrntq_m(__a, __b, __imm, __p)
  #define vstrbq_scatter_offset(__base, __offset, __value) __arm_vstrbq_scatter_offset(__base, __offset, __value)
  #define vstrbq(__addr, __value) __arm_vstrbq(__addr, __value)
  #define vstrwq_scatter_base(__addr, __offset, __value) __arm_vstrwq_scatter_base(__addr, __offset, __value)
--- 34,53 ----
  #endif
  #include "arm_mve_types.h"
  
+ #ifdef __ARM_MVE_PRESERVE_USER_NAMESPACE
+ #pragma GCC arm "arm_mve.h" true
+ #else
+ #pragma GCC arm "arm_mve.h" false
+ #endif
+ 
  #ifndef __ARM_MVE_PRESERVE_USER_NAMESPACE
  #define vst4q(__addr, __value) __arm_vst4q(__addr, __value)
  #define vornq(__a, __b) __arm_vornq(__a, __b)
  #define vbicq(__a, __b) __arm_vbicq(__a, __b)
  #define vbicq_m_n(__a, __imm, __p) __arm_vbicq_m_n(__a, __imm, __p)
  #define vshlcq(__a, __b, __imm) __arm_vshlcq(__a, __b, __imm)
  #define vbicq_m(__inactive, __a, __b, __p) __arm_vbicq_m(__inactive, __a, __b, __p)
  #define vornq_m(__inactive, __a, __b, __p) __arm_vornq_m(__inactive, __a, __b, __p)
  #define vstrbq_scatter_offset(__base, __offset, __value) __arm_vstrbq_scatter_offset(__base, __offset, __value)
  #define vstrbq(__addr, __value) __arm_vstrbq(__addr, __value)
  #define vstrwq_scatter_base(__addr, __offset, __value) __arm_vstrwq_scatter_base(__addr, __offset, __value)
***************
*** 319,325 ****
  #define vstrbq_scatter_offset_p(__base, __offset, __value, __p) __arm_vstrbq_scatter_offset_p(__base, __offset, __value, __p)
  #define vstrwq_scatter_base_p(__addr, __offset, __value, __p) __arm_vstrwq_scatter_base_p(__addr, __offset, __value, __p)
  #define vldrbq_gather_offset_z(__base, __offset, __p) __arm_vldrbq_gather_offset_z(__base, __offset, __p)
- #define vld1q(__base) __arm_vld1q(__base)
  #define vldrhq_gather_offset(__base, __offset) __arm_vldrhq_gather_offset(__base, __offset)
  #define vldrhq_gather_offset_z(__base, __offset, __p) __arm_vldrhq_gather_offset_z(__base, __offset, __p)
  #define vldrhq_gather_shifted_offset(__base, __offset) __arm_vldrhq_gather_shifted_offset(__base, __offset)
--- 56,61 ----
***************
*** 332,338 ****
  #define vldrwq_gather_offset_z(__base, __offset, __p) __arm_vldrwq_gather_offset_z(__base, __offset, __p)
  #define vldrwq_gather_shifted_offset(__base, __offset) __arm_vldrwq_gather_shifted_offset(__base, __offset)
  #define vldrwq_gather_shifted_offset_z(__base, __offset, __p) __arm_vldrwq_gather_shifted_offset_z(__base, __offset, __p)
- #define vst1q(__addr, __value) __arm_vst1q(__addr, __value)
  #define vstrhq_scatter_offset(__base, __offset, __value) __arm_vstrhq_scatter_offset(__base, __offset, __value)
  #define vstrhq_scatter_offset_p(__base, __offset, __value, __p) __arm_vstrhq_scatter_offset_p(__base, __offset, __value, __p)
  #define vstrhq_scatter_shifted_offset(__base, __offset, __value) __arm_vstrhq_scatter_shifted_offset(__base, __offset, __value)
--- 68,73 ----
***************
*** 352,365 ****
  #define vstrwq_scatter_shifted_offset_p(__base, __offset, __value, __p) __arm_vstrwq_scatter_shifted_offset_p(__base, __offset, __value, __p)
  #define vstrwq_scatter_shifted_offset(__base, __offset, __value) __arm_vstrwq_scatter_shifted_offset(__base, __offset, __value)
  #define vuninitializedq(__v) __arm_vuninitializedq(__v)
- #define vreinterpretq_s16(__a) __arm_vreinterpretq_s16(__a)
- #define vreinterpretq_s32(__a) __arm_vreinterpretq_s32(__a)
- #define vreinterpretq_s64(__a) __arm_vreinterpretq_s64(__a)
- #define vreinterpretq_s8(__a) __arm_vreinterpretq_s8(__a)
- #define vreinterpretq_u16(__a) __arm_vreinterpretq_u16(__a)
- #define vreinterpretq_u32(__a) __arm_vreinterpretq_u32(__a)
- #define vreinterpretq_u64(__a) __arm_vreinterpretq_u64(__a)
- #define vreinterpretq_u8(__a) __arm_vreinterpretq_u8(__a)
  #define vddupq_m(__inactive, __a, __imm, __p) __arm_vddupq_m(__inactive, __a, __imm, __p)
  #define vddupq_u8(__a, __imm) __arm_vddupq_u8(__a, __imm)
  #define vddupq_u32(__a, __imm) __arm_vddupq_u32(__a, __imm)
--- 87,92 ----
***************
*** 392,439 ****
  #define viwdupq_x_u8(__a, __b, __imm, __p) __arm_viwdupq_x_u8(__a, __b, __imm, __p)
  #define viwdupq_x_u16(__a, __b, __imm, __p) __arm_viwdupq_x_u16(__a, __b, __imm, __p)
  #define viwdupq_x_u32(__a, __b, __imm, __p) __arm_viwdupq_x_u32(__a, __b, __imm, __p)
- #define vminq_x(__a, __b, __p) __arm_vminq_x(__a, __b, __p)
- #define vmaxq_x(__a, __b, __p) __arm_vmaxq_x(__a, __b, __p)
- #define vabdq_x(__a, __b, __p) __arm_vabdq_x(__a, __b, __p)
- #define vabsq_x(__a, __p) __arm_vabsq_x(__a, __p)
- #define vaddq_x(__a, __b, __p) __arm_vaddq_x(__a, __b, __p)
- #define vclsq_x(__a, __p) __arm_vclsq_x(__a, __p)
- #define vclzq_x(__a, __p) __arm_vclzq_x(__a, __p)
- #define vnegq_x(__a, __p) __arm_vnegq_x(__a, __p)
- #define vmulhq_x(__a, __b, __p) __arm_vmulhq_x(__a, __b, __p)
- #define vmullbq_poly_x(__a, __b, __p) __arm_vmullbq_poly_x(__a, __b, __p)
- #define vmullbq_int_x(__a, __b, __p) __arm_vmullbq_int_x(__a, __b, __p)
- #define vmulltq_poly_x(__a, __b, __p) __arm_vmulltq_poly_x(__a, __b, __p)
- #define vmulltq_int_x(__a, __b, __p) __arm_vmulltq_int_x(__a, __b, __p)
- #define vmulq_x(__a, __b, __p) __arm_vmulq_x(__a, __b, __p)
- #define vsubq_x(__a, __b, __p) __arm_vsubq_x(__a, __b, __p)
- #define vcaddq_rot90_x(__a, __b, __p) __arm_vcaddq_rot90_x(__a, __b, __p)
- #define vcaddq_rot270_x(__a, __b, __p) __arm_vcaddq_rot270_x(__a, __b, __p)
- #define vhaddq_x(__a, __b, __p) __arm_vhaddq_x(__a, __b, __p)
- #define vhcaddq_rot90_x(__a, __b, __p) __arm_vhcaddq_rot90_x(__a, __b, __p)
- #define vhcaddq_rot270_x(__a, __b, __p) __arm_vhcaddq_rot270_x(__a, __b, __p)
- #define vhsubq_x(__a, __b, __p) __arm_vhsubq_x(__a, __b, __p)
- #define vrhaddq_x(__a, __b, __p) __arm_vrhaddq_x(__a, __b, __p)
- #define vrmulhq_x(__a, __b, __p) __arm_vrmulhq_x(__a, __b, __p)
- #define vandq_x(__a, __b, __p) __arm_vandq_x(__a, __b, __p)
  #define vbicq_x(__a, __b, __p) __arm_vbicq_x(__a, __b, __p)
- #define vbrsrq_x(__a, __b, __p) __arm_vbrsrq_x(__a, __b, __p)
- #define veorq_x(__a, __b, __p) __arm_veorq_x(__a, __b, __p)
- #define vmovlbq_x(__a, __p) __arm_vmovlbq_x(__a, __p)
- #define vmovltq_x(__a, __p) __arm_vmovltq_x(__a, __p)
- #define vmvnq_x(__a, __p) __arm_vmvnq_x(__a, __p)
  #define vornq_x(__a, __b, __p) __arm_vornq_x(__a, __b, __p)
- #define vorrq_x(__a, __b, __p) __arm_vorrq_x(__a, __b, __p)
- #define vrev16q_x(__a, __p) __arm_vrev16q_x(__a, __p)
- #define vrev32q_x(__a, __p) __arm_vrev32q_x(__a, __p)
- #define vrev64q_x(__a, __p) __arm_vrev64q_x(__a, __p)
- #define vrshlq_x(__a, __b, __p) __arm_vrshlq_x(__a, __b, __p)
- #define vshllbq_x(__a, __imm, __p) __arm_vshllbq_x(__a, __imm, __p)
- #define vshlltq_x(__a, __imm, __p) __arm_vshlltq_x(__a, __imm, __p)
- #define vshlq_x(__a, __b, __p) __arm_vshlq_x(__a, __b, __p)
- #define vshlq_x_n(__a, __imm, __p) __arm_vshlq_x_n(__a, __imm, __p)
- #define vrshrq_x(__a, __imm, __p) __arm_vrshrq_x(__a, __imm, __p)
- #define vshrq_x(__a, __imm, __p) __arm_vshrq_x(__a, __imm, __p)
  #define vadciq(__a, __b, __carry_out) __arm_vadciq(__a, __b, __carry_out)
  #define vadciq_m(__inactive, __a, __b, __carry_out, __p) __arm_vadciq_m(__inactive, __a, __b, __carry_out, __p)
  #define vadcq(__a, __b, __carry) __arm_vadcq(__a, __b, __carry)
--- 119,126 ----
***************
*** 450,533 ****
  #define vsetq_lane(__a, __b, __idx) __arm_vsetq_lane(__a, __b, __idx)
  #define vgetq_lane(__a, __idx) __arm_vgetq_lane(__a, __idx)
  #define vshlcq_m(__a, __b, __imm, __p) __arm_vshlcq_m(__a, __b, __imm, __p)
- #define vrndxq(__a) __arm_vrndxq(__a)
- #define vrndq(__a) __arm_vrndq(__a)
- #define vrndpq(__a) __arm_vrndpq(__a)
- #define vrndnq(__a) __arm_vrndnq(__a)
- #define vrndmq(__a) __arm_vrndmq(__a)
- #define vrndaq(__a) __arm_vrndaq(__a)
  #define vcvttq_f32(__a) __arm_vcvttq_f32(__a)
  #define vcvtbq_f32(__a) __arm_vcvtbq_f32(__a)
  #define vcvtq(__a) __arm_vcvtq(__a)
  #define vcvtq_n(__a, __imm6) __arm_vcvtq_n(__a, __imm6)
- #define vminnmvq(__a, __b) __arm_vminnmvq(__a, __b)
- #define vminnmq(__a, __b) __arm_vminnmq(__a, __b)
- #define vminnmavq(__a, __b) __arm_vminnmavq(__a, __b)
- #define vminnmaq(__a, __b) __arm_vminnmaq(__a, __b)
- #define vmaxnmvq(__a, __b) __arm_vmaxnmvq(__a, __b)
- #define vmaxnmq(__a, __b) __arm_vmaxnmq(__a, __b)
- #define vmaxnmavq(__a, __b) __arm_vmaxnmavq(__a, __b)
- #define vmaxnmaq(__a, __b) __arm_vmaxnmaq(__a, __b)
- #define vcmulq_rot90(__a, __b) __arm_vcmulq_rot90(__a, __b)
- #define vcmulq_rot270(__a, __b) __arm_vcmulq_rot270(__a, __b)
- #define vcmulq_rot180(__a, __b) __arm_vcmulq_rot180(__a, __b)
- #define vcmulq(__a, __b) __arm_vcmulq(__a, __b)
  #define vcvtaq_m(__inactive, __a, __p) __arm_vcvtaq_m(__inactive, __a, __p)
  #define vcvtq_m(__inactive, __a, __p) __arm_vcvtq_m(__inactive, __a, __p)
  #define vcvtbq_m(__a, __b, __p) __arm_vcvtbq_m(__a, __b, __p)
  #define vcvttq_m(__a, __b, __p) __arm_vcvttq_m(__a, __b, __p)
- #define vcmlaq(__a, __b, __c) __arm_vcmlaq(__a, __b, __c)
- #define vcmlaq_rot180(__a, __b, __c) __arm_vcmlaq_rot180(__a, __b, __c)
- #define vcmlaq_rot270(__a, __b, __c) __arm_vcmlaq_rot270(__a, __b, __c)
- #define vcmlaq_rot90(__a, __b, __c) __arm_vcmlaq_rot90(__a, __b, __c)
- #define vfmaq(__a, __b, __c) __arm_vfmaq(__a, __b, __c)
- #define vfmasq(__a, __b, __c) __arm_vfmasq(__a, __b, __c)
- #define vfmsq(__a, __b, __c) __arm_vfmsq(__a, __b, __c)
  #define vcvtmq_m(__inactive, __a, __p) __arm_vcvtmq_m(__inactive, __a, __p)
  #define vcvtnq_m(__inactive, __a, __p) __arm_vcvtnq_m(__inactive, __a, __p)
  #define vcvtpq_m(__inactive, __a, __p) __arm_vcvtpq_m(__inactive, __a, __p)
- #define vmaxnmaq_m(__a, __b, __p) __arm_vmaxnmaq_m(__a, __b, __p)
- #define vmaxnmavq_p(__a, __b, __p) __arm_vmaxnmavq_p(__a, __b, __p)
- #define vmaxnmvq_p(__a, __b, __p) __arm_vmaxnmvq_p(__a, __b, __p)
- #define vminnmaq_m(__a, __b, __p) __arm_vminnmaq_m(__a, __b, __p)
- #define vminnmavq_p(__a, __b, __p) __arm_vminnmavq_p(__a, __b, __p)
- #define vminnmvq_p(__a, __b, __p) __arm_vminnmvq_p(__a, __b, __p)
- #define vrndaq_m(__inactive, __a, __p) __arm_vrndaq_m(__inactive, __a, __p)
- #define vrndmq_m(__inactive, __a, __p) __arm_vrndmq_m(__inactive, __a, __p)
- #define vrndnq_m(__inactive, __a, __p) __arm_vrndnq_m(__inactive, __a, __p)
- #define vrndpq_m(__inactive, __a, __p) __arm_vrndpq_m(__inactive, __a, __p)
- #define vrndq_m(__inactive, __a, __p) __arm_vrndq_m(__inactive, __a, __p)
- #define vrndxq_m(__inactive, __a, __p) __arm_vrndxq_m(__inactive, __a, __p)
  #define vcvtq_m_n(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n(__inactive, __a, __imm6, __p)
- #define vcmlaq_m(__a, __b, __c, __p) __arm_vcmlaq_m(__a, __b, __c, __p)
- #define vcmlaq_rot180_m(__a, __b, __c, __p) __arm_vcmlaq_rot180_m(__a, __b, __c, __p)
- #define vcmlaq_rot270_m(__a, __b, __c, __p) __arm_vcmlaq_rot270_m(__a, __b, __c, __p)
- #define vcmlaq_rot90_m(__a, __b, __c, __p) __arm_vcmlaq_rot90_m(__a, __b, __c, __p)
- #define vcmulq_m(__inactive, __a, __b, __p) __arm_vcmulq_m(__inactive, __a, __b, __p)
- #define vcmulq_rot180_m(__inactive, __a, __b, __p) __arm_vcmulq_rot180_m(__inactive, __a, __b, __p)
- #define vcmulq_rot270_m(__inactive, __a, __b, __p) __arm_vcmulq_rot270_m(__inactive, __a, __b, __p)
- #define vcmulq_rot90_m(__inactive, __a, __b, __p) __arm_vcmulq_rot90_m(__inactive, __a, __b, __p)
- #define vfmaq_m(__a, __b, __c, __p) __arm_vfmaq_m(__a, __b, __c, __p)
- #define vfmasq_m(__a, __b, __c, __p) __arm_vfmasq_m(__a, __b, __c, __p)
- #define vfmsq_m(__a, __b, __c, __p) __arm_vfmsq_m(__a, __b, __c, __p)
- #define vmaxnmq_m(__inactive, __a, __b, __p) __arm_vmaxnmq_m(__inactive, __a, __b, __p)
- #define vminnmq_m(__inactive, __a, __b, __p) __arm_vminnmq_m(__inactive, __a, __b, __p)
- #define vreinterpretq_f16(__a) __arm_vreinterpretq_f16(__a)
- #define vreinterpretq_f32(__a) __arm_vreinterpretq_f32(__a)
- #define vminnmq_x(__a, __b, __p) __arm_vminnmq_x(__a, __b, __p)
- #define vmaxnmq_x(__a, __b, __p) __arm_vmaxnmq_x(__a, __b, __p)
- #define vcmulq_x(__a, __b, __p) __arm_vcmulq_x(__a, __b, __p)
- #define vcmulq_rot90_x(__a, __b, __p) __arm_vcmulq_rot90_x(__a, __b, __p)
- #define vcmulq_rot180_x(__a, __b, __p) __arm_vcmulq_rot180_x(__a, __b, __p)
- #define vcmulq_rot270_x(__a, __b, __p) __arm_vcmulq_rot270_x(__a, __b, __p)
  #define vcvtq_x(__a, __p) __arm_vcvtq_x(__a, __p)
  #define vcvtq_x_n(__a, __imm6, __p) __arm_vcvtq_x_n(__a, __imm6, __p)
- #define vrndq_x(__a, __p) __arm_vrndq_x(__a, __p)
- #define vrndnq_x(__a, __p) __arm_vrndnq_x(__a, __p)
- #define vrndmq_x(__a, __p) __arm_vrndmq_x(__a, __p)
- #define vrndpq_x(__a, __p) __arm_vrndpq_x(__a, __p)
- #define vrndaq_x(__a, __p) __arm_vrndaq_x(__a, __p)
- #define vrndxq_x(__a, __p) __arm_vrndxq_x(__a, __p)
  
  
  #define vst4q_s8( __addr, __value) __arm_vst4q_s8( __addr, __value)
--- 137,156 ----
***************
*** 538,610 ****
  #define vst4q_u32( __addr, __value) __arm_vst4q_u32( __addr, __value)
  #define vst4q_f16( __addr, __value) __arm_vst4q_f16( __addr, __value)
  #define vst4q_f32( __addr, __value) __arm_vst4q_f32( __addr, __value)
- #define vrndxq_f16(__a) __arm_vrndxq_f16(__a)
- #define vrndxq_f32(__a) __arm_vrndxq_f32(__a)
- #define vrndq_f16(__a) __arm_vrndq_f16(__a)
- #define vrndq_f32(__a) __arm_vrndq_f32(__a)
- #define vrndpq_f16(__a) __arm_vrndpq_f16(__a)
- #define vrndpq_f32(__a) __arm_vrndpq_f32(__a)
- #define vrndnq_f16(__a) __arm_vrndnq_f16(__a)
- #define vrndnq_f32(__a) __arm_vrndnq_f32(__a)
- #define vrndmq_f16(__a) __arm_vrndmq_f16(__a)
- #define vrndmq_f32(__a) __arm_vrndmq_f32(__a)
- #define vrndaq_f16(__a) __arm_vrndaq_f16(__a)
- #define vrndaq_f32(__a) __arm_vrndaq_f32(__a)
- #define vrev64q_f16(__a) __arm_vrev64q_f16(__a)
- #define vrev64q_f32(__a) __arm_vrev64q_f32(__a)
- #define vnegq_f16(__a) __arm_vnegq_f16(__a)
- #define vnegq_f32(__a) __arm_vnegq_f32(__a)
- #define vdupq_n_f16(__a) __arm_vdupq_n_f16(__a)
- #define vdupq_n_f32(__a) __arm_vdupq_n_f32(__a)
- #define vabsq_f16(__a) __arm_vabsq_f16(__a)
- #define vabsq_f32(__a) __arm_vabsq_f32(__a)
- #define vrev32q_f16(__a) __arm_vrev32q_f16(__a)
  #define vcvttq_f32_f16(__a) __arm_vcvttq_f32_f16(__a)
  #define vcvtbq_f32_f16(__a) __arm_vcvtbq_f32_f16(__a)
  #define vcvtq_f16_s16(__a) __arm_vcvtq_f16_s16(__a)
  #define vcvtq_f32_s32(__a) __arm_vcvtq_f32_s32(__a)
  #define vcvtq_f16_u16(__a) __arm_vcvtq_f16_u16(__a)
  #define vcvtq_f32_u32(__a) __arm_vcvtq_f32_u32(__a)
- #define vdupq_n_s8(__a) __arm_vdupq_n_s8(__a)
- #define vdupq_n_s16(__a) __arm_vdupq_n_s16(__a)
- #define vdupq_n_s32(__a) __arm_vdupq_n_s32(__a)
- #define vabsq_s8(__a) __arm_vabsq_s8(__a)
- #define vabsq_s16(__a) __arm_vabsq_s16(__a)
- #define vabsq_s32(__a) __arm_vabsq_s32(__a)
- #define vclsq_s8(__a) __arm_vclsq_s8(__a)
- #define vclsq_s16(__a) __arm_vclsq_s16(__a)
- #define vclsq_s32(__a) __arm_vclsq_s32(__a)
- #define vclzq_s8(__a) __arm_vclzq_s8(__a)
- #define vclzq_s16(__a) __arm_vclzq_s16(__a)
- #define vclzq_s32(__a) __arm_vclzq_s32(__a)
- #define vnegq_s8(__a) __arm_vnegq_s8(__a)
- #define vnegq_s16(__a) __arm_vnegq_s16(__a)
- #define vnegq_s32(__a) __arm_vnegq_s32(__a)
- #define vaddlvq_s32(__a) __arm_vaddlvq_s32(__a)
- #define vaddvq_s8(__a) __arm_vaddvq_s8(__a)
- #define vaddvq_s16(__a) __arm_vaddvq_s16(__a)
- #define vaddvq_s32(__a) __arm_vaddvq_s32(__a)
- #define vmovlbq_s8(__a) __arm_vmovlbq_s8(__a)
- #define vmovlbq_s16(__a) __arm_vmovlbq_s16(__a)
- #define vmovltq_s8(__a) __arm_vmovltq_s8(__a)
- #define vmovltq_s16(__a) __arm_vmovltq_s16(__a)
- #define vmvnq_s8(__a) __arm_vmvnq_s8(__a)
- #define vmvnq_s16(__a) __arm_vmvnq_s16(__a)
- #define vmvnq_s32(__a) __arm_vmvnq_s32(__a)
- #define vmvnq_n_s16( __imm) __arm_vmvnq_n_s16( __imm)
- #define vmvnq_n_s32( __imm) __arm_vmvnq_n_s32( __imm)
- #define vrev16q_s8(__a) __arm_vrev16q_s8(__a)
- #define vrev32q_s8(__a) __arm_vrev32q_s8(__a)
- #define vrev32q_s16(__a) __arm_vrev32q_s16(__a)
- #define vrev64q_s8(__a) __arm_vrev64q_s8(__a)
- #define vrev64q_s16(__a) __arm_vrev64q_s16(__a)
- #define vrev64q_s32(__a) __arm_vrev64q_s32(__a)
- #define vqabsq_s8(__a) __arm_vqabsq_s8(__a)
- #define vqabsq_s16(__a) __arm_vqabsq_s16(__a)
- #define vqabsq_s32(__a) __arm_vqabsq_s32(__a)
- #define vqnegq_s8(__a) __arm_vqnegq_s8(__a)
- #define vqnegq_s16(__a) __arm_vqnegq_s16(__a)
- #define vqnegq_s32(__a) __arm_vqnegq_s32(__a)
  #define vcvtaq_s16_f16(__a) __arm_vcvtaq_s16_f16(__a)
  #define vcvtaq_s32_f32(__a) __arm_vcvtaq_s32_f32(__a)
  #define vcvtnq_s16_f16(__a) __arm_vcvtnq_s16_f16(__a)
--- 161,172 ----
***************
*** 615,645 ****
  #define vcvtmq_s32_f32(__a) __arm_vcvtmq_s32_f32(__a)
  #define vcvtq_s16_f16(__a) __arm_vcvtq_s16_f16(__a)
  #define vcvtq_s32_f32(__a) __arm_vcvtq_s32_f32(__a)
- #define vrev64q_u8(__a) __arm_vrev64q_u8(__a)
- #define vrev64q_u16(__a) __arm_vrev64q_u16(__a)
- #define vrev64q_u32(__a) __arm_vrev64q_u32(__a)
- #define vmvnq_u8(__a) __arm_vmvnq_u8(__a)
- #define vmvnq_u16(__a) __arm_vmvnq_u16(__a)
- #define vmvnq_u32(__a) __arm_vmvnq_u32(__a)
- #define vdupq_n_u8(__a) __arm_vdupq_n_u8(__a)
- #define vdupq_n_u16(__a) __arm_vdupq_n_u16(__a)
- #define vdupq_n_u32(__a) __arm_vdupq_n_u32(__a)
- #define vclzq_u8(__a) __arm_vclzq_u8(__a)
- #define vclzq_u16(__a) __arm_vclzq_u16(__a)
- #define vclzq_u32(__a) __arm_vclzq_u32(__a)
- #define vaddvq_u8(__a) __arm_vaddvq_u8(__a)
- #define vaddvq_u16(__a) __arm_vaddvq_u16(__a)
- #define vaddvq_u32(__a) __arm_vaddvq_u32(__a)
- #define vrev32q_u8(__a) __arm_vrev32q_u8(__a)
- #define vrev32q_u16(__a) __arm_vrev32q_u16(__a)
- #define vmovltq_u8(__a) __arm_vmovltq_u8(__a)
- #define vmovltq_u16(__a) __arm_vmovltq_u16(__a)
- #define vmovlbq_u8(__a) __arm_vmovlbq_u8(__a)
- #define vmovlbq_u16(__a) __arm_vmovlbq_u16(__a)
- #define vmvnq_n_u16( __imm) __arm_vmvnq_n_u16( __imm)
- #define vmvnq_n_u32( __imm) __arm_vmvnq_n_u32( __imm)
- #define vrev16q_u8(__a) __arm_vrev16q_u8(__a)
- #define vaddlvq_u32(__a) __arm_vaddlvq_u32(__a)
  #define vcvtq_u16_f16(__a) __arm_vcvtq_u16_f16(__a)
  #define vcvtq_u32_f32(__a) __arm_vcvtq_u32_f32(__a)
  #define vcvtpq_u16_f16(__a) __arm_vcvtpq_u16_f16(__a)
--- 177,182 ----
***************
*** 655,1214 ****
  #define vctp64q(__a) __arm_vctp64q(__a)
  #define vctp8q(__a) __arm_vctp8q(__a)
  #define vpnot(__a) __arm_vpnot(__a)
- #define vsubq_n_f16(__a, __b) __arm_vsubq_n_f16(__a, __b)
- #define vsubq_n_f32(__a, __b) __arm_vsubq_n_f32(__a, __b)
- #define vbrsrq_n_f16(__a, __b) __arm_vbrsrq_n_f16(__a, __b)
- #define vbrsrq_n_f32(__a, __b) __arm_vbrsrq_n_f32(__a, __b)
  #define vcvtq_n_f16_s16(__a,  __imm6) __arm_vcvtq_n_f16_s16(__a,  __imm6)
  #define vcvtq_n_f32_s32(__a,  __imm6) __arm_vcvtq_n_f32_s32(__a,  __imm6)
  #define vcvtq_n_f16_u16(__a,  __imm6) __arm_vcvtq_n_f16_u16(__a,  __imm6)
  #define vcvtq_n_f32_u32(__a,  __imm6) __arm_vcvtq_n_f32_u32(__a,  __imm6)
- #define vcreateq_f16(__a, __b) __arm_vcreateq_f16(__a, __b)
- #define vcreateq_f32(__a, __b) __arm_vcreateq_f32(__a, __b)
  #define vcvtq_n_s16_f16(__a,  __imm6) __arm_vcvtq_n_s16_f16(__a,  __imm6)
  #define vcvtq_n_s32_f32(__a,  __imm6) __arm_vcvtq_n_s32_f32(__a,  __imm6)
  #define vcvtq_n_u16_f16(__a,  __imm6) __arm_vcvtq_n_u16_f16(__a,  __imm6)
  #define vcvtq_n_u32_f32(__a,  __imm6) __arm_vcvtq_n_u32_f32(__a,  __imm6)
- #define vcreateq_u8(__a, __b) __arm_vcreateq_u8(__a, __b)
- #define vcreateq_u16(__a, __b) __arm_vcreateq_u16(__a, __b)
- #define vcreateq_u32(__a, __b) __arm_vcreateq_u32(__a, __b)
- #define vcreateq_u64(__a, __b) __arm_vcreateq_u64(__a, __b)
- #define vcreateq_s8(__a, __b) __arm_vcreateq_s8(__a, __b)
- #define vcreateq_s16(__a, __b) __arm_vcreateq_s16(__a, __b)
- #define vcreateq_s32(__a, __b) __arm_vcreateq_s32(__a, __b)
- #define vcreateq_s64(__a, __b) __arm_vcreateq_s64(__a, __b)
- #define vshrq_n_s8(__a,  __imm) __arm_vshrq_n_s8(__a,  __imm)
- #define vshrq_n_s16(__a,  __imm) __arm_vshrq_n_s16(__a,  __imm)
- #define vshrq_n_s32(__a,  __imm) __arm_vshrq_n_s32(__a,  __imm)
- #define vshrq_n_u8(__a,  __imm) __arm_vshrq_n_u8(__a,  __imm)
- #define vshrq_n_u16(__a,  __imm) __arm_vshrq_n_u16(__a,  __imm)
- #define vshrq_n_u32(__a,  __imm) __arm_vshrq_n_u32(__a,  __imm)
- #define vaddlvq_p_s32(__a, __p) __arm_vaddlvq_p_s32(__a, __p)
- #define vaddlvq_p_u32(__a, __p) __arm_vaddlvq_p_u32(__a, __p)
- #define vcmpneq_s8(__a, __b) __arm_vcmpneq_s8(__a, __b)
- #define vcmpneq_s16(__a, __b) __arm_vcmpneq_s16(__a, __b)
- #define vcmpneq_s32(__a, __b) __arm_vcmpneq_s32(__a, __b)
- #define vcmpneq_u8(__a, __b) __arm_vcmpneq_u8(__a, __b)
- #define vcmpneq_u16(__a, __b) __arm_vcmpneq_u16(__a, __b)
- #define vcmpneq_u32(__a, __b) __arm_vcmpneq_u32(__a, __b)
- #define vshlq_s8(__a, __b) __arm_vshlq_s8(__a, __b)
- #define vshlq_s16(__a, __b) __arm_vshlq_s16(__a, __b)
- #define vshlq_s32(__a, __b) __arm_vshlq_s32(__a, __b)
- #define vshlq_u8(__a, __b) __arm_vshlq_u8(__a, __b)
- #define vshlq_u16(__a, __b) __arm_vshlq_u16(__a, __b)
- #define vshlq_u32(__a, __b) __arm_vshlq_u32(__a, __b)
- #define vsubq_u8(__a, __b) __arm_vsubq_u8(__a, __b)
- #define vsubq_n_u8(__a, __b) __arm_vsubq_n_u8(__a, __b)
- #define vrmulhq_u8(__a, __b) __arm_vrmulhq_u8(__a, __b)
- #define vrhaddq_u8(__a, __b) __arm_vrhaddq_u8(__a, __b)
- #define vqsubq_u8(__a, __b) __arm_vqsubq_u8(__a, __b)
- #define vqsubq_n_u8(__a, __b) __arm_vqsubq_n_u8(__a, __b)
- #define vqaddq_u8(__a, __b) __arm_vqaddq_u8(__a, __b)
- #define vqaddq_n_u8(__a, __b) __arm_vqaddq_n_u8(__a, __b)
- #define vorrq_u8(__a, __b) __arm_vorrq_u8(__a, __b)
  #define vornq_u8(__a, __b) __arm_vornq_u8(__a, __b)
- #define vmulq_u8(__a, __b) __arm_vmulq_u8(__a, __b)
- #define vmulq_n_u8(__a, __b) __arm_vmulq_n_u8(__a, __b)
- #define vmulltq_int_u8(__a, __b) __arm_vmulltq_int_u8(__a, __b)
- #define vmullbq_int_u8(__a, __b) __arm_vmullbq_int_u8(__a, __b)
- #define vmulhq_u8(__a, __b) __arm_vmulhq_u8(__a, __b)
- #define vmladavq_u8(__a, __b) __arm_vmladavq_u8(__a, __b)
- #define vminvq_u8(__a, __b) __arm_vminvq_u8(__a, __b)
- #define vminq_u8(__a, __b) __arm_vminq_u8(__a, __b)
- #define vmaxvq_u8(__a, __b) __arm_vmaxvq_u8(__a, __b)
- #define vmaxq_u8(__a, __b) __arm_vmaxq_u8(__a, __b)
- #define vhsubq_u8(__a, __b) __arm_vhsubq_u8(__a, __b)
- #define vhsubq_n_u8(__a, __b) __arm_vhsubq_n_u8(__a, __b)
- #define vhaddq_u8(__a, __b) __arm_vhaddq_u8(__a, __b)
- #define vhaddq_n_u8(__a, __b) __arm_vhaddq_n_u8(__a, __b)
- #define veorq_u8(__a, __b) __arm_veorq_u8(__a, __b)
- #define vcmpneq_n_u8(__a, __b) __arm_vcmpneq_n_u8(__a, __b)
- #define vcmphiq_u8(__a, __b) __arm_vcmphiq_u8(__a, __b)
- #define vcmphiq_n_u8(__a, __b) __arm_vcmphiq_n_u8(__a, __b)
- #define vcmpeqq_u8(__a, __b) __arm_vcmpeqq_u8(__a, __b)
- #define vcmpeqq_n_u8(__a, __b) __arm_vcmpeqq_n_u8(__a, __b)
- #define vcmpcsq_u8(__a, __b) __arm_vcmpcsq_u8(__a, __b)
- #define vcmpcsq_n_u8(__a, __b) __arm_vcmpcsq_n_u8(__a, __b)
- #define vcaddq_rot90_u8(__a, __b) __arm_vcaddq_rot90_u8(__a, __b)
- #define vcaddq_rot270_u8(__a, __b) __arm_vcaddq_rot270_u8(__a, __b)
  #define vbicq_u8(__a, __b) __arm_vbicq_u8(__a, __b)
- #define vandq_u8(__a, __b) __arm_vandq_u8(__a, __b)
- #define vaddvq_p_u8(__a, __p) __arm_vaddvq_p_u8(__a, __p)
- #define vaddvaq_u8(__a, __b) __arm_vaddvaq_u8(__a, __b)
- #define vaddq_n_u8(__a, __b) __arm_vaddq_n_u8(__a, __b)
- #define vabdq_u8(__a, __b) __arm_vabdq_u8(__a, __b)
- #define vshlq_r_u8(__a, __b) __arm_vshlq_r_u8(__a, __b)
- #define vrshlq_u8(__a, __b) __arm_vrshlq_u8(__a, __b)
- #define vrshlq_n_u8(__a, __b) __arm_vrshlq_n_u8(__a, __b)
- #define vqshlq_u8(__a, __b) __arm_vqshlq_u8(__a, __b)
- #define vqshlq_r_u8(__a, __b) __arm_vqshlq_r_u8(__a, __b)
- #define vqrshlq_u8(__a, __b) __arm_vqrshlq_u8(__a, __b)
- #define vqrshlq_n_u8(__a, __b) __arm_vqrshlq_n_u8(__a, __b)
- #define vminavq_s8(__a, __b) __arm_vminavq_s8(__a, __b)
- #define vminaq_s8(__a, __b) __arm_vminaq_s8(__a, __b)
- #define vmaxavq_s8(__a, __b) __arm_vmaxavq_s8(__a, __b)
- #define vmaxaq_s8(__a, __b) __arm_vmaxaq_s8(__a, __b)
- #define vbrsrq_n_u8(__a, __b) __arm_vbrsrq_n_u8(__a, __b)
- #define vshlq_n_u8(__a,  __imm) __arm_vshlq_n_u8(__a,  __imm)
- #define vrshrq_n_u8(__a,  __imm) __arm_vrshrq_n_u8(__a,  __imm)
- #define vqshlq_n_u8(__a,  __imm) __arm_vqshlq_n_u8(__a,  __imm)
- #define vcmpneq_n_s8(__a, __b) __arm_vcmpneq_n_s8(__a, __b)
- #define vcmpltq_s8(__a, __b) __arm_vcmpltq_s8(__a, __b)
- #define vcmpltq_n_s8(__a, __b) __arm_vcmpltq_n_s8(__a, __b)
- #define vcmpleq_s8(__a, __b) __arm_vcmpleq_s8(__a, __b)
- #define vcmpleq_n_s8(__a, __b) __arm_vcmpleq_n_s8(__a, __b)
- #define vcmpgtq_s8(__a, __b) __arm_vcmpgtq_s8(__a, __b)
- #define vcmpgtq_n_s8(__a, __b) __arm_vcmpgtq_n_s8(__a, __b)
- #define vcmpgeq_s8(__a, __b) __arm_vcmpgeq_s8(__a, __b)
- #define vcmpgeq_n_s8(__a, __b) __arm_vcmpgeq_n_s8(__a, __b)
- #define vcmpeqq_s8(__a, __b) __arm_vcmpeqq_s8(__a, __b)
- #define vcmpeqq_n_s8(__a, __b) __arm_vcmpeqq_n_s8(__a, __b)
- #define vqshluq_n_s8(__a,  __imm) __arm_vqshluq_n_s8(__a,  __imm)
- #define vaddvq_p_s8(__a, __p) __arm_vaddvq_p_s8(__a, __p)
- #define vsubq_s8(__a, __b) __arm_vsubq_s8(__a, __b)
- #define vsubq_n_s8(__a, __b) __arm_vsubq_n_s8(__a, __b)
- #define vshlq_r_s8(__a, __b) __arm_vshlq_r_s8(__a, __b)
- #define vrshlq_s8(__a, __b) __arm_vrshlq_s8(__a, __b)
- #define vrshlq_n_s8(__a, __b) __arm_vrshlq_n_s8(__a, __b)
- #define vrmulhq_s8(__a, __b) __arm_vrmulhq_s8(__a, __b)
- #define vrhaddq_s8(__a, __b) __arm_vrhaddq_s8(__a, __b)
- #define vqsubq_s8(__a, __b) __arm_vqsubq_s8(__a, __b)
- #define vqsubq_n_s8(__a, __b) __arm_vqsubq_n_s8(__a, __b)
- #define vqshlq_s8(__a, __b) __arm_vqshlq_s8(__a, __b)
- #define vqshlq_r_s8(__a, __b) __arm_vqshlq_r_s8(__a, __b)
- #define vqrshlq_s8(__a, __b) __arm_vqrshlq_s8(__a, __b)
- #define vqrshlq_n_s8(__a, __b) __arm_vqrshlq_n_s8(__a, __b)
- #define vqrdmulhq_s8(__a, __b) __arm_vqrdmulhq_s8(__a, __b)
- #define vqrdmulhq_n_s8(__a, __b) __arm_vqrdmulhq_n_s8(__a, __b)
- #define vqdmulhq_s8(__a, __b) __arm_vqdmulhq_s8(__a, __b)
- #define vqdmulhq_n_s8(__a, __b) __arm_vqdmulhq_n_s8(__a, __b)
- #define vqaddq_s8(__a, __b) __arm_vqaddq_s8(__a, __b)
- #define vqaddq_n_s8(__a, __b) __arm_vqaddq_n_s8(__a, __b)
- #define vorrq_s8(__a, __b) __arm_vorrq_s8(__a, __b)
  #define vornq_s8(__a, __b) __arm_vornq_s8(__a, __b)
- #define vmulq_s8(__a, __b) __arm_vmulq_s8(__a, __b)
- #define vmulq_n_s8(__a, __b) __arm_vmulq_n_s8(__a, __b)
- #define vmulltq_int_s8(__a, __b) __arm_vmulltq_int_s8(__a, __b)
- #define vmullbq_int_s8(__a, __b) __arm_vmullbq_int_s8(__a, __b)
- #define vmulhq_s8(__a, __b) __arm_vmulhq_s8(__a, __b)
- #define vmlsdavxq_s8(__a, __b) __arm_vmlsdavxq_s8(__a, __b)
- #define vmlsdavq_s8(__a, __b) __arm_vmlsdavq_s8(__a, __b)
- #define vmladavxq_s8(__a, __b) __arm_vmladavxq_s8(__a, __b)
- #define vmladavq_s8(__a, __b) __arm_vmladavq_s8(__a, __b)
- #define vminvq_s8(__a, __b) __arm_vminvq_s8(__a, __b)
- #define vminq_s8(__a, __b) __arm_vminq_s8(__a, __b)
- #define vmaxvq_s8(__a, __b) __arm_vmaxvq_s8(__a, __b)
- #define vmaxq_s8(__a, __b) __arm_vmaxq_s8(__a, __b)
- #define vhsubq_s8(__a, __b) __arm_vhsubq_s8(__a, __b)
- #define vhsubq_n_s8(__a, __b) __arm_vhsubq_n_s8(__a, __b)
- #define vhcaddq_rot90_s8(__a, __b) __arm_vhcaddq_rot90_s8(__a, __b)
- #define vhcaddq_rot270_s8(__a, __b) __arm_vhcaddq_rot270_s8(__a, __b)
- #define vhaddq_s8(__a, __b) __arm_vhaddq_s8(__a, __b)
- #define vhaddq_n_s8(__a, __b) __arm_vhaddq_n_s8(__a, __b)
- #define veorq_s8(__a, __b) __arm_veorq_s8(__a, __b)
- #define vcaddq_rot90_s8(__a, __b) __arm_vcaddq_rot90_s8(__a, __b)
- #define vcaddq_rot270_s8(__a, __b) __arm_vcaddq_rot270_s8(__a, __b)
- #define vbrsrq_n_s8(__a, __b) __arm_vbrsrq_n_s8(__a, __b)
  #define vbicq_s8(__a, __b) __arm_vbicq_s8(__a, __b)
- #define vandq_s8(__a, __b) __arm_vandq_s8(__a, __b)
- #define vaddvaq_s8(__a, __b) __arm_vaddvaq_s8(__a, __b)
- #define vaddq_n_s8(__a, __b) __arm_vaddq_n_s8(__a, __b)
- #define vabdq_s8(__a, __b) __arm_vabdq_s8(__a, __b)
- #define vshlq_n_s8(__a,  __imm) __arm_vshlq_n_s8(__a,  __imm)
- #define vrshrq_n_s8(__a,  __imm) __arm_vrshrq_n_s8(__a,  __imm)
- #define vqshlq_n_s8(__a,  __imm) __arm_vqshlq_n_s8(__a,  __imm)
- #define vsubq_u16(__a, __b) __arm_vsubq_u16(__a, __b)
- #define vsubq_n_u16(__a, __b) __arm_vsubq_n_u16(__a, __b)
- #define vrmulhq_u16(__a, __b) __arm_vrmulhq_u16(__a, __b)
- #define vrhaddq_u16(__a, __b) __arm_vrhaddq_u16(__a, __b)
- #define vqsubq_u16(__a, __b) __arm_vqsubq_u16(__a, __b)
- #define vqsubq_n_u16(__a, __b) __arm_vqsubq_n_u16(__a, __b)
- #define vqaddq_u16(__a, __b) __arm_vqaddq_u16(__a, __b)
- #define vqaddq_n_u16(__a, __b) __arm_vqaddq_n_u16(__a, __b)
- #define vorrq_u16(__a, __b) __arm_vorrq_u16(__a, __b)
  #define vornq_u16(__a, __b) __arm_vornq_u16(__a, __b)
- #define vmulq_u16(__a, __b) __arm_vmulq_u16(__a, __b)
- #define vmulq_n_u16(__a, __b) __arm_vmulq_n_u16(__a, __b)
- #define vmulltq_int_u16(__a, __b) __arm_vmulltq_int_u16(__a, __b)
- #define vmullbq_int_u16(__a, __b) __arm_vmullbq_int_u16(__a, __b)
- #define vmulhq_u16(__a, __b) __arm_vmulhq_u16(__a, __b)
- #define vmladavq_u16(__a, __b) __arm_vmladavq_u16(__a, __b)
- #define vminvq_u16(__a, __b) __arm_vminvq_u16(__a, __b)
- #define vminq_u16(__a, __b) __arm_vminq_u16(__a, __b)
- #define vmaxvq_u16(__a, __b) __arm_vmaxvq_u16(__a, __b)
- #define vmaxq_u16(__a, __b) __arm_vmaxq_u16(__a, __b)
- #define vhsubq_u16(__a, __b) __arm_vhsubq_u16(__a, __b)
- #define vhsubq_n_u16(__a, __b) __arm_vhsubq_n_u16(__a, __b)
- #define vhaddq_u16(__a, __b) __arm_vhaddq_u16(__a, __b)
- #define vhaddq_n_u16(__a, __b) __arm_vhaddq_n_u16(__a, __b)
- #define veorq_u16(__a, __b) __arm_veorq_u16(__a, __b)
- #define vcmpneq_n_u16(__a, __b) __arm_vcmpneq_n_u16(__a, __b)
- #define vcmphiq_u16(__a, __b) __arm_vcmphiq_u16(__a, __b)
- #define vcmphiq_n_u16(__a, __b) __arm_vcmphiq_n_u16(__a, __b)
- #define vcmpeqq_u16(__a, __b) __arm_vcmpeqq_u16(__a, __b)
- #define vcmpeqq_n_u16(__a, __b) __arm_vcmpeqq_n_u16(__a, __b)
- #define vcmpcsq_u16(__a, __b) __arm_vcmpcsq_u16(__a, __b)
- #define vcmpcsq_n_u16(__a, __b) __arm_vcmpcsq_n_u16(__a, __b)
- #define vcaddq_rot90_u16(__a, __b) __arm_vcaddq_rot90_u16(__a, __b)
- #define vcaddq_rot270_u16(__a, __b) __arm_vcaddq_rot270_u16(__a, __b)
  #define vbicq_u16(__a, __b) __arm_vbicq_u16(__a, __b)
- #define vandq_u16(__a, __b) __arm_vandq_u16(__a, __b)
- #define vaddvq_p_u16(__a, __p) __arm_vaddvq_p_u16(__a, __p)
- #define vaddvaq_u16(__a, __b) __arm_vaddvaq_u16(__a, __b)
- #define vaddq_n_u16(__a, __b) __arm_vaddq_n_u16(__a, __b)
- #define vabdq_u16(__a, __b) __arm_vabdq_u16(__a, __b)
- #define vshlq_r_u16(__a, __b) __arm_vshlq_r_u16(__a, __b)
- #define vrshlq_u16(__a, __b) __arm_vrshlq_u16(__a, __b)
- #define vrshlq_n_u16(__a, __b) __arm_vrshlq_n_u16(__a, __b)
- #define vqshlq_u16(__a, __b) __arm_vqshlq_u16(__a, __b)
- #define vqshlq_r_u16(__a, __b) __arm_vqshlq_r_u16(__a, __b)
- #define vqrshlq_u16(__a, __b) __arm_vqrshlq_u16(__a, __b)
- #define vqrshlq_n_u16(__a, __b) __arm_vqrshlq_n_u16(__a, __b)
- #define vminavq_s16(__a, __b) __arm_vminavq_s16(__a, __b)
- #define vminaq_s16(__a, __b) __arm_vminaq_s16(__a, __b)
- #define vmaxavq_s16(__a, __b) __arm_vmaxavq_s16(__a, __b)
- #define vmaxaq_s16(__a, __b) __arm_vmaxaq_s16(__a, __b)
- #define vbrsrq_n_u16(__a, __b) __arm_vbrsrq_n_u16(__a, __b)
- #define vshlq_n_u16(__a,  __imm) __arm_vshlq_n_u16(__a,  __imm)
- #define vrshrq_n_u16(__a,  __imm) __arm_vrshrq_n_u16(__a,  __imm)
- #define vqshlq_n_u16(__a,  __imm) __arm_vqshlq_n_u16(__a,  __imm)
- #define vcmpneq_n_s16(__a, __b) __arm_vcmpneq_n_s16(__a, __b)
- #define vcmpltq_s16(__a, __b) __arm_vcmpltq_s16(__a, __b)
- #define vcmpltq_n_s16(__a, __b) __arm_vcmpltq_n_s16(__a, __b)
- #define vcmpleq_s16(__a, __b) __arm_vcmpleq_s16(__a, __b)
- #define vcmpleq_n_s16(__a, __b) __arm_vcmpleq_n_s16(__a, __b)
- #define vcmpgtq_s16(__a, __b) __arm_vcmpgtq_s16(__a, __b)
- #define vcmpgtq_n_s16(__a, __b) __arm_vcmpgtq_n_s16(__a, __b)
- #define vcmpgeq_s16(__a, __b) __arm_vcmpgeq_s16(__a, __b)
- #define vcmpgeq_n_s16(__a, __b) __arm_vcmpgeq_n_s16(__a, __b)
- #define vcmpeqq_s16(__a, __b) __arm_vcmpeqq_s16(__a, __b)
- #define vcmpeqq_n_s16(__a, __b) __arm_vcmpeqq_n_s16(__a, __b)
- #define vqshluq_n_s16(__a,  __imm) __arm_vqshluq_n_s16(__a,  __imm)
- #define vaddvq_p_s16(__a, __p) __arm_vaddvq_p_s16(__a, __p)
- #define vsubq_s16(__a, __b) __arm_vsubq_s16(__a, __b)
- #define vsubq_n_s16(__a, __b) __arm_vsubq_n_s16(__a, __b)
- #define vshlq_r_s16(__a, __b) __arm_vshlq_r_s16(__a, __b)
- #define vrshlq_s16(__a, __b) __arm_vrshlq_s16(__a, __b)
- #define vrshlq_n_s16(__a, __b) __arm_vrshlq_n_s16(__a, __b)
- #define vrmulhq_s16(__a, __b) __arm_vrmulhq_s16(__a, __b)
- #define vrhaddq_s16(__a, __b) __arm_vrhaddq_s16(__a, __b)
- #define vqsubq_s16(__a, __b) __arm_vqsubq_s16(__a, __b)
- #define vqsubq_n_s16(__a, __b) __arm_vqsubq_n_s16(__a, __b)
- #define vqshlq_s16(__a, __b) __arm_vqshlq_s16(__a, __b)
- #define vqshlq_r_s16(__a, __b) __arm_vqshlq_r_s16(__a, __b)
- #define vqrshlq_s16(__a, __b) __arm_vqrshlq_s16(__a, __b)
- #define vqrshlq_n_s16(__a, __b) __arm_vqrshlq_n_s16(__a, __b)
- #define vqrdmulhq_s16(__a, __b) __arm_vqrdmulhq_s16(__a, __b)
- #define vqrdmulhq_n_s16(__a, __b) __arm_vqrdmulhq_n_s16(__a, __b)
- #define vqdmulhq_s16(__a, __b) __arm_vqdmulhq_s16(__a, __b)
- #define vqdmulhq_n_s16(__a, __b) __arm_vqdmulhq_n_s16(__a, __b)
- #define vqaddq_s16(__a, __b) __arm_vqaddq_s16(__a, __b)
- #define vqaddq_n_s16(__a, __b) __arm_vqaddq_n_s16(__a, __b)
- #define vorrq_s16(__a, __b) __arm_vorrq_s16(__a, __b)
  #define vornq_s16(__a, __b) __arm_vornq_s16(__a, __b)
- #define vmulq_s16(__a, __b) __arm_vmulq_s16(__a, __b)
- #define vmulq_n_s16(__a, __b) __arm_vmulq_n_s16(__a, __b)
- #define vmulltq_int_s16(__a, __b) __arm_vmulltq_int_s16(__a, __b)
- #define vmullbq_int_s16(__a, __b) __arm_vmullbq_int_s16(__a, __b)
- #define vmulhq_s16(__a, __b) __arm_vmulhq_s16(__a, __b)
- #define vmlsdavxq_s16(__a, __b) __arm_vmlsdavxq_s16(__a, __b)
- #define vmlsdavq_s16(__a, __b) __arm_vmlsdavq_s16(__a, __b)
- #define vmladavxq_s16(__a, __b) __arm_vmladavxq_s16(__a, __b)
- #define vmladavq_s16(__a, __b) __arm_vmladavq_s16(__a, __b)
- #define vminvq_s16(__a, __b) __arm_vminvq_s16(__a, __b)
- #define vminq_s16(__a, __b) __arm_vminq_s16(__a, __b)
- #define vmaxvq_s16(__a, __b) __arm_vmaxvq_s16(__a, __b)
- #define vmaxq_s16(__a, __b) __arm_vmaxq_s16(__a, __b)
- #define vhsubq_s16(__a, __b) __arm_vhsubq_s16(__a, __b)
- #define vhsubq_n_s16(__a, __b) __arm_vhsubq_n_s16(__a, __b)
- #define vhcaddq_rot90_s16(__a, __b) __arm_vhcaddq_rot90_s16(__a, __b)
- #define vhcaddq_rot270_s16(__a, __b) __arm_vhcaddq_rot270_s16(__a, __b)
- #define vhaddq_s16(__a, __b) __arm_vhaddq_s16(__a, __b)
- #define vhaddq_n_s16(__a, __b) __arm_vhaddq_n_s16(__a, __b)
- #define veorq_s16(__a, __b) __arm_veorq_s16(__a, __b)
- #define vcaddq_rot90_s16(__a, __b) __arm_vcaddq_rot90_s16(__a, __b)
- #define vcaddq_rot270_s16(__a, __b) __arm_vcaddq_rot270_s16(__a, __b)
- #define vbrsrq_n_s16(__a, __b) __arm_vbrsrq_n_s16(__a, __b)
  #define vbicq_s16(__a, __b) __arm_vbicq_s16(__a, __b)
- #define vandq_s16(__a, __b) __arm_vandq_s16(__a, __b)
- #define vaddvaq_s16(__a, __b) __arm_vaddvaq_s16(__a, __b)
- #define vaddq_n_s16(__a, __b) __arm_vaddq_n_s16(__a, __b)
- #define vabdq_s16(__a, __b) __arm_vabdq_s16(__a, __b)
- #define vshlq_n_s16(__a,  __imm) __arm_vshlq_n_s16(__a,  __imm)
- #define vrshrq_n_s16(__a,  __imm) __arm_vrshrq_n_s16(__a,  __imm)
- #define vqshlq_n_s16(__a,  __imm) __arm_vqshlq_n_s16(__a,  __imm)
- #define vsubq_u32(__a, __b) __arm_vsubq_u32(__a, __b)
- #define vsubq_n_u32(__a, __b) __arm_vsubq_n_u32(__a, __b)
- #define vrmulhq_u32(__a, __b) __arm_vrmulhq_u32(__a, __b)
- #define vrhaddq_u32(__a, __b) __arm_vrhaddq_u32(__a, __b)
- #define vqsubq_u32(__a, __b) __arm_vqsubq_u32(__a, __b)
- #define vqsubq_n_u32(__a, __b) __arm_vqsubq_n_u32(__a, __b)
- #define vqaddq_u32(__a, __b) __arm_vqaddq_u32(__a, __b)
- #define vqaddq_n_u32(__a, __b) __arm_vqaddq_n_u32(__a, __b)
- #define vorrq_u32(__a, __b) __arm_vorrq_u32(__a, __b)
  #define vornq_u32(__a, __b) __arm_vornq_u32(__a, __b)
- #define vmulq_u32(__a, __b) __arm_vmulq_u32(__a, __b)
- #define vmulq_n_u32(__a, __b) __arm_vmulq_n_u32(__a, __b)
- #define vmulltq_int_u32(__a, __b) __arm_vmulltq_int_u32(__a, __b)
- #define vmullbq_int_u32(__a, __b) __arm_vmullbq_int_u32(__a, __b)
- #define vmulhq_u32(__a, __b) __arm_vmulhq_u32(__a, __b)
- #define vmladavq_u32(__a, __b) __arm_vmladavq_u32(__a, __b)
- #define vminvq_u32(__a, __b) __arm_vminvq_u32(__a, __b)
- #define vminq_u32(__a, __b) __arm_vminq_u32(__a, __b)
- #define vmaxvq_u32(__a, __b) __arm_vmaxvq_u32(__a, __b)
- #define vmaxq_u32(__a, __b) __arm_vmaxq_u32(__a, __b)
- #define vhsubq_u32(__a, __b) __arm_vhsubq_u32(__a, __b)
- #define vhsubq_n_u32(__a, __b) __arm_vhsubq_n_u32(__a, __b)
- #define vhaddq_u32(__a, __b) __arm_vhaddq_u32(__a, __b)
- #define vhaddq_n_u32(__a, __b) __arm_vhaddq_n_u32(__a, __b)
- #define veorq_u32(__a, __b) __arm_veorq_u32(__a, __b)
- #define vcmpneq_n_u32(__a, __b) __arm_vcmpneq_n_u32(__a, __b)
- #define vcmphiq_u32(__a, __b) __arm_vcmphiq_u32(__a, __b)
- #define vcmphiq_n_u32(__a, __b) __arm_vcmphiq_n_u32(__a, __b)
- #define vcmpeqq_u32(__a, __b) __arm_vcmpeqq_u32(__a, __b)
- #define vcmpeqq_n_u32(__a, __b) __arm_vcmpeqq_n_u32(__a, __b)
- #define vcmpcsq_u32(__a, __b) __arm_vcmpcsq_u32(__a, __b)
- #define vcmpcsq_n_u32(__a, __b) __arm_vcmpcsq_n_u32(__a, __b)
- #define vcaddq_rot90_u32(__a, __b) __arm_vcaddq_rot90_u32(__a, __b)
- #define vcaddq_rot270_u32(__a, __b) __arm_vcaddq_rot270_u32(__a, __b)
  #define vbicq_u32(__a, __b) __arm_vbicq_u32(__a, __b)
- #define vandq_u32(__a, __b) __arm_vandq_u32(__a, __b)
- #define vaddvq_p_u32(__a, __p) __arm_vaddvq_p_u32(__a, __p)
- #define vaddvaq_u32(__a, __b) __arm_vaddvaq_u32(__a, __b)
- #define vaddq_n_u32(__a, __b) __arm_vaddq_n_u32(__a, __b)
- #define vabdq_u32(__a, __b) __arm_vabdq_u32(__a, __b)
- #define vshlq_r_u32(__a, __b) __arm_vshlq_r_u32(__a, __b)
- #define vrshlq_u32(__a, __b) __arm_vrshlq_u32(__a, __b)
- #define vrshlq_n_u32(__a, __b) __arm_vrshlq_n_u32(__a, __b)
- #define vqshlq_u32(__a, __b) __arm_vqshlq_u32(__a, __b)
- #define vqshlq_r_u32(__a, __b) __arm_vqshlq_r_u32(__a, __b)
- #define vqrshlq_u32(__a, __b) __arm_vqrshlq_u32(__a, __b)
- #define vqrshlq_n_u32(__a, __b) __arm_vqrshlq_n_u32(__a, __b)
- #define vminavq_s32(__a, __b) __arm_vminavq_s32(__a, __b)
- #define vminaq_s32(__a, __b) __arm_vminaq_s32(__a, __b)
- #define vmaxavq_s32(__a, __b) __arm_vmaxavq_s32(__a, __b)
- #define vmaxaq_s32(__a, __b) __arm_vmaxaq_s32(__a, __b)
- #define vbrsrq_n_u32(__a, __b) __arm_vbrsrq_n_u32(__a, __b)
- #define vshlq_n_u32(__a,  __imm) __arm_vshlq_n_u32(__a,  __imm)
- #define vrshrq_n_u32(__a,  __imm) __arm_vrshrq_n_u32(__a,  __imm)
- #define vqshlq_n_u32(__a,  __imm) __arm_vqshlq_n_u32(__a,  __imm)
- #define vcmpneq_n_s32(__a, __b) __arm_vcmpneq_n_s32(__a, __b)
- #define vcmpltq_s32(__a, __b) __arm_vcmpltq_s32(__a, __b)
- #define vcmpltq_n_s32(__a, __b) __arm_vcmpltq_n_s32(__a, __b)
- #define vcmpleq_s32(__a, __b) __arm_vcmpleq_s32(__a, __b)
- #define vcmpleq_n_s32(__a, __b) __arm_vcmpleq_n_s32(__a, __b)
- #define vcmpgtq_s32(__a, __b) __arm_vcmpgtq_s32(__a, __b)
- #define vcmpgtq_n_s32(__a, __b) __arm_vcmpgtq_n_s32(__a, __b)
- #define vcmpgeq_s32(__a, __b) __arm_vcmpgeq_s32(__a, __b)
- #define vcmpgeq_n_s32(__a, __b) __arm_vcmpgeq_n_s32(__a, __b)
- #define vcmpeqq_s32(__a, __b) __arm_vcmpeqq_s32(__a, __b)
- #define vcmpeqq_n_s32(__a, __b) __arm_vcmpeqq_n_s32(__a, __b)
- #define vqshluq_n_s32(__a,  __imm) __arm_vqshluq_n_s32(__a,  __imm)
- #define vaddvq_p_s32(__a, __p) __arm_vaddvq_p_s32(__a, __p)
- #define vsubq_s32(__a, __b) __arm_vsubq_s32(__a, __b)
- #define vsubq_n_s32(__a, __b) __arm_vsubq_n_s32(__a, __b)
- #define vshlq_r_s32(__a, __b) __arm_vshlq_r_s32(__a, __b)
- #define vrshlq_s32(__a, __b) __arm_vrshlq_s32(__a, __b)
- #define vrshlq_n_s32(__a, __b) __arm_vrshlq_n_s32(__a, __b)
- #define vrmulhq_s32(__a, __b) __arm_vrmulhq_s32(__a, __b)
- #define vrhaddq_s32(__a, __b) __arm_vrhaddq_s32(__a, __b)
- #define vqsubq_s32(__a, __b) __arm_vqsubq_s32(__a, __b)
- #define vqsubq_n_s32(__a, __b) __arm_vqsubq_n_s32(__a, __b)
- #define vqshlq_s32(__a, __b) __arm_vqshlq_s32(__a, __b)
- #define vqshlq_r_s32(__a, __b) __arm_vqshlq_r_s32(__a, __b)
- #define vqrshlq_s32(__a, __b) __arm_vqrshlq_s32(__a, __b)
- #define vqrshlq_n_s32(__a, __b) __arm_vqrshlq_n_s32(__a, __b)
- #define vqrdmulhq_s32(__a, __b) __arm_vqrdmulhq_s32(__a, __b)
- #define vqrdmulhq_n_s32(__a, __b) __arm_vqrdmulhq_n_s32(__a, __b)
- #define vqdmulhq_s32(__a, __b) __arm_vqdmulhq_s32(__a, __b)
- #define vqdmulhq_n_s32(__a, __b) __arm_vqdmulhq_n_s32(__a, __b)
- #define vqaddq_s32(__a, __b) __arm_vqaddq_s32(__a, __b)
- #define vqaddq_n_s32(__a, __b) __arm_vqaddq_n_s32(__a, __b)
- #define vorrq_s32(__a, __b) __arm_vorrq_s32(__a, __b)
  #define vornq_s32(__a, __b) __arm_vornq_s32(__a, __b)
- #define vmulq_s32(__a, __b) __arm_vmulq_s32(__a, __b)
- #define vmulq_n_s32(__a, __b) __arm_vmulq_n_s32(__a, __b)
- #define vmulltq_int_s32(__a, __b) __arm_vmulltq_int_s32(__a, __b)
- #define vmullbq_int_s32(__a, __b) __arm_vmullbq_int_s32(__a, __b)
- #define vmulhq_s32(__a, __b) __arm_vmulhq_s32(__a, __b)
- #define vmlsdavxq_s32(__a, __b) __arm_vmlsdavxq_s32(__a, __b)
- #define vmlsdavq_s32(__a, __b) __arm_vmlsdavq_s32(__a, __b)
- #define vmladavxq_s32(__a, __b) __arm_vmladavxq_s32(__a, __b)
- #define vmladavq_s32(__a, __b) __arm_vmladavq_s32(__a, __b)
- #define vminvq_s32(__a, __b) __arm_vminvq_s32(__a, __b)
- #define vminq_s32(__a, __b) __arm_vminq_s32(__a, __b)
- #define vmaxvq_s32(__a, __b) __arm_vmaxvq_s32(__a, __b)
- #define vmaxq_s32(__a, __b) __arm_vmaxq_s32(__a, __b)
- #define vhsubq_s32(__a, __b) __arm_vhsubq_s32(__a, __b)
- #define vhsubq_n_s32(__a, __b) __arm_vhsubq_n_s32(__a, __b)
- #define vhcaddq_rot90_s32(__a, __b) __arm_vhcaddq_rot90_s32(__a, __b)
- #define vhcaddq_rot270_s32(__a, __b) __arm_vhcaddq_rot270_s32(__a, __b)
- #define vhaddq_s32(__a, __b) __arm_vhaddq_s32(__a, __b)
- #define vhaddq_n_s32(__a, __b) __arm_vhaddq_n_s32(__a, __b)
- #define veorq_s32(__a, __b) __arm_veorq_s32(__a, __b)
- #define vcaddq_rot90_s32(__a, __b) __arm_vcaddq_rot90_s32(__a, __b)
- #define vcaddq_rot270_s32(__a, __b) __arm_vcaddq_rot270_s32(__a, __b)
- #define vbrsrq_n_s32(__a, __b) __arm_vbrsrq_n_s32(__a, __b)
  #define vbicq_s32(__a, __b) __arm_vbicq_s32(__a, __b)
- #define vandq_s32(__a, __b) __arm_vandq_s32(__a, __b)
- #define vaddvaq_s32(__a, __b) __arm_vaddvaq_s32(__a, __b)
- #define vaddq_n_s32(__a, __b) __arm_vaddq_n_s32(__a, __b)
- #define vabdq_s32(__a, __b) __arm_vabdq_s32(__a, __b)
- #define vshlq_n_s32(__a,  __imm) __arm_vshlq_n_s32(__a,  __imm)
- #define vrshrq_n_s32(__a,  __imm) __arm_vrshrq_n_s32(__a,  __imm)
- #define vqshlq_n_s32(__a,  __imm) __arm_vqshlq_n_s32(__a,  __imm)
- #define vqmovntq_u16(__a, __b) __arm_vqmovntq_u16(__a, __b)
- #define vqmovnbq_u16(__a, __b) __arm_vqmovnbq_u16(__a, __b)
- #define vmulltq_poly_p8(__a, __b) __arm_vmulltq_poly_p8(__a, __b)
- #define vmullbq_poly_p8(__a, __b) __arm_vmullbq_poly_p8(__a, __b)
- #define vmovntq_u16(__a, __b) __arm_vmovntq_u16(__a, __b)
- #define vmovnbq_u16(__a, __b) __arm_vmovnbq_u16(__a, __b)
- #define vmlaldavq_u16(__a, __b) __arm_vmlaldavq_u16(__a, __b)
- #define vqmovuntq_s16(__a, __b) __arm_vqmovuntq_s16(__a, __b)
- #define vqmovunbq_s16(__a, __b) __arm_vqmovunbq_s16(__a, __b)
- #define vshlltq_n_u8(__a,  __imm) __arm_vshlltq_n_u8(__a,  __imm)
- #define vshllbq_n_u8(__a,  __imm) __arm_vshllbq_n_u8(__a,  __imm)
- #define vorrq_n_u16(__a,  __imm) __arm_vorrq_n_u16(__a,  __imm)
  #define vbicq_n_u16(__a,  __imm) __arm_vbicq_n_u16(__a,  __imm)
- #define vcmpneq_n_f16(__a, __b) __arm_vcmpneq_n_f16(__a, __b)
- #define vcmpneq_f16(__a, __b) __arm_vcmpneq_f16(__a, __b)
- #define vcmpltq_n_f16(__a, __b) __arm_vcmpltq_n_f16(__a, __b)
- #define vcmpltq_f16(__a, __b) __arm_vcmpltq_f16(__a, __b)
- #define vcmpleq_n_f16(__a, __b) __arm_vcmpleq_n_f16(__a, __b)
- #define vcmpleq_f16(__a, __b) __arm_vcmpleq_f16(__a, __b)
- #define vcmpgtq_n_f16(__a, __b) __arm_vcmpgtq_n_f16(__a, __b)
- #define vcmpgtq_f16(__a, __b) __arm_vcmpgtq_f16(__a, __b)
- #define vcmpgeq_n_f16(__a, __b) __arm_vcmpgeq_n_f16(__a, __b)
- #define vcmpgeq_f16(__a, __b) __arm_vcmpgeq_f16(__a, __b)
- #define vcmpeqq_n_f16(__a, __b) __arm_vcmpeqq_n_f16(__a, __b)
- #define vcmpeqq_f16(__a, __b) __arm_vcmpeqq_f16(__a, __b)
- #define vsubq_f16(__a, __b) __arm_vsubq_f16(__a, __b)
- #define vqmovntq_s16(__a, __b) __arm_vqmovntq_s16(__a, __b)
- #define vqmovnbq_s16(__a, __b) __arm_vqmovnbq_s16(__a, __b)
- #define vqdmulltq_s16(__a, __b) __arm_vqdmulltq_s16(__a, __b)
- #define vqdmulltq_n_s16(__a, __b) __arm_vqdmulltq_n_s16(__a, __b)
- #define vqdmullbq_s16(__a, __b) __arm_vqdmullbq_s16(__a, __b)
- #define vqdmullbq_n_s16(__a, __b) __arm_vqdmullbq_n_s16(__a, __b)
- #define vorrq_f16(__a, __b) __arm_vorrq_f16(__a, __b)
  #define vornq_f16(__a, __b) __arm_vornq_f16(__a, __b)
- #define vmulq_n_f16(__a, __b) __arm_vmulq_n_f16(__a, __b)
- #define vmulq_f16(__a, __b) __arm_vmulq_f16(__a, __b)
- #define vmovntq_s16(__a, __b) __arm_vmovntq_s16(__a, __b)
- #define vmovnbq_s16(__a, __b) __arm_vmovnbq_s16(__a, __b)
- #define vmlsldavxq_s16(__a, __b) __arm_vmlsldavxq_s16(__a, __b)
- #define vmlsldavq_s16(__a, __b) __arm_vmlsldavq_s16(__a, __b)
- #define vmlaldavxq_s16(__a, __b) __arm_vmlaldavxq_s16(__a, __b)
- #define vmlaldavq_s16(__a, __b) __arm_vmlaldavq_s16(__a, __b)
- #define vminnmvq_f16(__a, __b) __arm_vminnmvq_f16(__a, __b)
- #define vminnmq_f16(__a, __b) __arm_vminnmq_f16(__a, __b)
- #define vminnmavq_f16(__a, __b) __arm_vminnmavq_f16(__a, __b)
- #define vminnmaq_f16(__a, __b) __arm_vminnmaq_f16(__a, __b)
- #define vmaxnmvq_f16(__a, __b) __arm_vmaxnmvq_f16(__a, __b)
- #define vmaxnmq_f16(__a, __b) __arm_vmaxnmq_f16(__a, __b)
- #define vmaxnmavq_f16(__a, __b) __arm_vmaxnmavq_f16(__a, __b)
- #define vmaxnmaq_f16(__a, __b) __arm_vmaxnmaq_f16(__a, __b)
- #define veorq_f16(__a, __b) __arm_veorq_f16(__a, __b)
- #define vcmulq_rot90_f16(__a, __b) __arm_vcmulq_rot90_f16(__a, __b)
- #define vcmulq_rot270_f16(__a, __b) __arm_vcmulq_rot270_f16(__a, __b)
- #define vcmulq_rot180_f16(__a, __b) __arm_vcmulq_rot180_f16(__a, __b)
- #define vcmulq_f16(__a, __b) __arm_vcmulq_f16(__a, __b)
- #define vcaddq_rot90_f16(__a, __b) __arm_vcaddq_rot90_f16(__a, __b)
- #define vcaddq_rot270_f16(__a, __b) __arm_vcaddq_rot270_f16(__a, __b)
  #define vbicq_f16(__a, __b) __arm_vbicq_f16(__a, __b)
- #define vandq_f16(__a, __b) __arm_vandq_f16(__a, __b)
- #define vaddq_n_f16(__a, __b) __arm_vaddq_n_f16(__a, __b)
- #define vabdq_f16(__a, __b) __arm_vabdq_f16(__a, __b)
- #define vshlltq_n_s8(__a,  __imm) __arm_vshlltq_n_s8(__a,  __imm)
- #define vshllbq_n_s8(__a,  __imm) __arm_vshllbq_n_s8(__a,  __imm)
- #define vorrq_n_s16(__a,  __imm) __arm_vorrq_n_s16(__a,  __imm)
  #define vbicq_n_s16(__a,  __imm) __arm_vbicq_n_s16(__a,  __imm)
- #define vqmovntq_u32(__a, __b) __arm_vqmovntq_u32(__a, __b)
- #define vqmovnbq_u32(__a, __b) __arm_vqmovnbq_u32(__a, __b)
- #define vmulltq_poly_p16(__a, __b) __arm_vmulltq_poly_p16(__a, __b)
- #define vmullbq_poly_p16(__a, __b) __arm_vmullbq_poly_p16(__a, __b)
- #define vmovntq_u32(__a, __b) __arm_vmovntq_u32(__a, __b)
- #define vmovnbq_u32(__a, __b) __arm_vmovnbq_u32(__a, __b)
- #define vmlaldavq_u32(__a, __b) __arm_vmlaldavq_u32(__a, __b)
- #define vqmovuntq_s32(__a, __b) __arm_vqmovuntq_s32(__a, __b)
- #define vqmovunbq_s32(__a, __b) __arm_vqmovunbq_s32(__a, __b)
- #define vshlltq_n_u16(__a,  __imm) __arm_vshlltq_n_u16(__a,  __imm)
- #define vshllbq_n_u16(__a,  __imm) __arm_vshllbq_n_u16(__a,  __imm)
- #define vorrq_n_u32(__a,  __imm) __arm_vorrq_n_u32(__a,  __imm)
  #define vbicq_n_u32(__a,  __imm) __arm_vbicq_n_u32(__a,  __imm)
- #define vcmpneq_n_f32(__a, __b) __arm_vcmpneq_n_f32(__a, __b)
- #define vcmpneq_f32(__a, __b) __arm_vcmpneq_f32(__a, __b)
- #define vcmpltq_n_f32(__a, __b) __arm_vcmpltq_n_f32(__a, __b)
- #define vcmpltq_f32(__a, __b) __arm_vcmpltq_f32(__a, __b)
- #define vcmpleq_n_f32(__a, __b) __arm_vcmpleq_n_f32(__a, __b)
- #define vcmpleq_f32(__a, __b) __arm_vcmpleq_f32(__a, __b)
- #define vcmpgtq_n_f32(__a, __b) __arm_vcmpgtq_n_f32(__a, __b)
- #define vcmpgtq_f32(__a, __b) __arm_vcmpgtq_f32(__a, __b)
- #define vcmpgeq_n_f32(__a, __b) __arm_vcmpgeq_n_f32(__a, __b)
- #define vcmpgeq_f32(__a, __b) __arm_vcmpgeq_f32(__a, __b)
- #define vcmpeqq_n_f32(__a, __b) __arm_vcmpeqq_n_f32(__a, __b)
- #define vcmpeqq_f32(__a, __b) __arm_vcmpeqq_f32(__a, __b)
- #define vsubq_f32(__a, __b) __arm_vsubq_f32(__a, __b)
- #define vqmovntq_s32(__a, __b) __arm_vqmovntq_s32(__a, __b)
- #define vqmovnbq_s32(__a, __b) __arm_vqmovnbq_s32(__a, __b)
- #define vqdmulltq_s32(__a, __b) __arm_vqdmulltq_s32(__a, __b)
- #define vqdmulltq_n_s32(__a, __b) __arm_vqdmulltq_n_s32(__a, __b)
- #define vqdmullbq_s32(__a, __b) __arm_vqdmullbq_s32(__a, __b)
- #define vqdmullbq_n_s32(__a, __b) __arm_vqdmullbq_n_s32(__a, __b)
- #define vorrq_f32(__a, __b) __arm_vorrq_f32(__a, __b)
  #define vornq_f32(__a, __b) __arm_vornq_f32(__a, __b)
- #define vmulq_n_f32(__a, __b) __arm_vmulq_n_f32(__a, __b)
- #define vmulq_f32(__a, __b) __arm_vmulq_f32(__a, __b)
- #define vmovntq_s32(__a, __b) __arm_vmovntq_s32(__a, __b)
- #define vmovnbq_s32(__a, __b) __arm_vmovnbq_s32(__a, __b)
- #define vmlsldavxq_s32(__a, __b) __arm_vmlsldavxq_s32(__a, __b)
- #define vmlsldavq_s32(__a, __b) __arm_vmlsldavq_s32(__a, __b)
- #define vmlaldavxq_s32(__a, __b) __arm_vmlaldavxq_s32(__a, __b)
- #define vmlaldavq_s32(__a, __b) __arm_vmlaldavq_s32(__a, __b)
- #define vminnmvq_f32(__a, __b) __arm_vminnmvq_f32(__a, __b)
- #define vminnmq_f32(__a, __b) __arm_vminnmq_f32(__a, __b)
- #define vminnmavq_f32(__a, __b) __arm_vminnmavq_f32(__a, __b)
- #define vminnmaq_f32(__a, __b) __arm_vminnmaq_f32(__a, __b)
- #define vmaxnmvq_f32(__a, __b) __arm_vmaxnmvq_f32(__a, __b)
- #define vmaxnmq_f32(__a, __b) __arm_vmaxnmq_f32(__a, __b)
- #define vmaxnmavq_f32(__a, __b) __arm_vmaxnmavq_f32(__a, __b)
- #define vmaxnmaq_f32(__a, __b) __arm_vmaxnmaq_f32(__a, __b)
- #define veorq_f32(__a, __b) __arm_veorq_f32(__a, __b)
- #define vcmulq_rot90_f32(__a, __b) __arm_vcmulq_rot90_f32(__a, __b)
- #define vcmulq_rot270_f32(__a, __b) __arm_vcmulq_rot270_f32(__a, __b)
- #define vcmulq_rot180_f32(__a, __b) __arm_vcmulq_rot180_f32(__a, __b)
- #define vcmulq_f32(__a, __b) __arm_vcmulq_f32(__a, __b)
- #define vcaddq_rot90_f32(__a, __b) __arm_vcaddq_rot90_f32(__a, __b)
- #define vcaddq_rot270_f32(__a, __b) __arm_vcaddq_rot270_f32(__a, __b)
  #define vbicq_f32(__a, __b) __arm_vbicq_f32(__a, __b)
- #define vandq_f32(__a, __b) __arm_vandq_f32(__a, __b)
- #define vaddq_n_f32(__a, __b) __arm_vaddq_n_f32(__a, __b)
- #define vabdq_f32(__a, __b) __arm_vabdq_f32(__a, __b)
- #define vshlltq_n_s16(__a,  __imm) __arm_vshlltq_n_s16(__a,  __imm)
- #define vshllbq_n_s16(__a,  __imm) __arm_vshllbq_n_s16(__a,  __imm)
- #define vorrq_n_s32(__a,  __imm) __arm_vorrq_n_s32(__a,  __imm)
  #define vbicq_n_s32(__a,  __imm) __arm_vbicq_n_s32(__a,  __imm)
- #define vrmlaldavhq_u32(__a, __b) __arm_vrmlaldavhq_u32(__a, __b)
  #define vctp8q_m(__a, __p) __arm_vctp8q_m(__a, __p)
  #define vctp64q_m(__a, __p) __arm_vctp64q_m(__a, __p)
  #define vctp32q_m(__a, __p) __arm_vctp32q_m(__a, __p)
  #define vctp16q_m(__a, __p) __arm_vctp16q_m(__a, __p)
- #define vaddlvaq_u32(__a, __b) __arm_vaddlvaq_u32(__a, __b)
- #define vrmlsldavhxq_s32(__a, __b) __arm_vrmlsldavhxq_s32(__a, __b)
- #define vrmlsldavhq_s32(__a, __b) __arm_vrmlsldavhq_s32(__a, __b)
- #define vrmlaldavhxq_s32(__a, __b) __arm_vrmlaldavhxq_s32(__a, __b)
- #define vrmlaldavhq_s32(__a, __b) __arm_vrmlaldavhq_s32(__a, __b)
  #define vcvttq_f16_f32(__a, __b) __arm_vcvttq_f16_f32(__a, __b)
  #define vcvtbq_f16_f32(__a, __b) __arm_vcvtbq_f16_f32(__a, __b)
- #define vaddlvaq_s32(__a, __b) __arm_vaddlvaq_s32(__a, __b)
- #define vabavq_s8(__a, __b, __c) __arm_vabavq_s8(__a, __b, __c)
- #define vabavq_s16(__a, __b, __c) __arm_vabavq_s16(__a, __b, __c)
- #define vabavq_s32(__a, __b, __c) __arm_vabavq_s32(__a, __b, __c)
  #define vbicq_m_n_s16(__a,  __imm, __p) __arm_vbicq_m_n_s16(__a,  __imm, __p)
  #define vbicq_m_n_s32(__a,  __imm, __p) __arm_vbicq_m_n_s32(__a,  __imm, __p)
  #define vbicq_m_n_u16(__a,  __imm, __p) __arm_vbicq_m_n_u16(__a,  __imm, __p)
  #define vbicq_m_n_u32(__a,  __imm, __p) __arm_vbicq_m_n_u32(__a,  __imm, __p)
- #define vcmpeqq_m_f16(__a, __b, __p) __arm_vcmpeqq_m_f16(__a, __b, __p)
- #define vcmpeqq_m_f32(__a, __b, __p) __arm_vcmpeqq_m_f32(__a, __b, __p)
  #define vcvtaq_m_s16_f16(__inactive, __a, __p) __arm_vcvtaq_m_s16_f16(__inactive, __a, __p)
  #define vcvtaq_m_u16_f16(__inactive, __a, __p) __arm_vcvtaq_m_u16_f16(__inactive, __a, __p)
  #define vcvtaq_m_s32_f32(__inactive, __a, __p) __arm_vcvtaq_m_s32_f32(__inactive, __a, __p)
--- 192,235 ----
***************
*** 1217,2160 ****
  #define vcvtq_m_f16_u16(__inactive, __a, __p) __arm_vcvtq_m_f16_u16(__inactive, __a, __p)
  #define vcvtq_m_f32_s32(__inactive, __a, __p) __arm_vcvtq_m_f32_s32(__inactive, __a, __p)
  #define vcvtq_m_f32_u32(__inactive, __a, __p) __arm_vcvtq_m_f32_u32(__inactive, __a, __p)
- #define vqrshrnbq_n_s16(__a, __b,  __imm) __arm_vqrshrnbq_n_s16(__a, __b,  __imm)
- #define vqrshrnbq_n_u16(__a, __b,  __imm) __arm_vqrshrnbq_n_u16(__a, __b,  __imm)
- #define vqrshrnbq_n_s32(__a, __b,  __imm) __arm_vqrshrnbq_n_s32(__a, __b,  __imm)
- #define vqrshrnbq_n_u32(__a, __b,  __imm) __arm_vqrshrnbq_n_u32(__a, __b,  __imm)
- #define vqrshrunbq_n_s16(__a, __b,  __imm) __arm_vqrshrunbq_n_s16(__a, __b,  __imm)
- #define vqrshrunbq_n_s32(__a, __b,  __imm) __arm_vqrshrunbq_n_s32(__a, __b,  __imm)
- #define vrmlaldavhaq_s32(__a, __b, __c) __arm_vrmlaldavhaq_s32(__a, __b, __c)
- #define vrmlaldavhaq_u32(__a, __b, __c) __arm_vrmlaldavhaq_u32(__a, __b, __c)
  #define vshlcq_s8(__a,  __b,  __imm) __arm_vshlcq_s8(__a,  __b,  __imm)
  #define vshlcq_u8(__a,  __b,  __imm) __arm_vshlcq_u8(__a,  __b,  __imm)
  #define vshlcq_s16(__a,  __b,  __imm) __arm_vshlcq_s16(__a,  __b,  __imm)
  #define vshlcq_u16(__a,  __b,  __imm) __arm_vshlcq_u16(__a,  __b,  __imm)
  #define vshlcq_s32(__a,  __b,  __imm) __arm_vshlcq_s32(__a,  __b,  __imm)
  #define vshlcq_u32(__a,  __b,  __imm) __arm_vshlcq_u32(__a,  __b,  __imm)
- #define vabavq_u8(__a, __b, __c) __arm_vabavq_u8(__a, __b, __c)
- #define vabavq_u16(__a, __b, __c) __arm_vabavq_u16(__a, __b, __c)
- #define vabavq_u32(__a, __b, __c) __arm_vabavq_u32(__a, __b, __c)
- #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 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)
- #define vmladavq_p_u8(__a, __b, __p) __arm_vmladavq_p_u8(__a, __b, __p)
- #define vmladavaq_u8(__a, __b, __c) __arm_vmladavaq_u8(__a, __b, __c)
- #define vminvq_p_u8(__a, __b, __p) __arm_vminvq_p_u8(__a, __b, __p)
- #define vmaxvq_p_u8(__a, __b, __p) __arm_vmaxvq_p_u8(__a, __b, __p)
- #define vdupq_m_n_u8(__inactive, __a, __p) __arm_vdupq_m_n_u8(__inactive, __a, __p)
- #define vcmpneq_m_u8(__a, __b, __p) __arm_vcmpneq_m_u8(__a, __b, __p)
- #define vcmpneq_m_n_u8(__a, __b, __p) __arm_vcmpneq_m_n_u8(__a, __b, __p)
- #define vcmphiq_m_u8(__a, __b, __p) __arm_vcmphiq_m_u8(__a, __b, __p)
- #define vcmphiq_m_n_u8(__a, __b, __p) __arm_vcmphiq_m_n_u8(__a, __b, __p)
- #define vcmpeqq_m_u8(__a, __b, __p) __arm_vcmpeqq_m_u8(__a, __b, __p)
- #define vcmpeqq_m_n_u8(__a, __b, __p) __arm_vcmpeqq_m_n_u8(__a, __b, __p)
- #define vcmpcsq_m_u8(__a, __b, __p) __arm_vcmpcsq_m_u8(__a, __b, __p)
- #define vcmpcsq_m_n_u8(__a, __b, __p) __arm_vcmpcsq_m_n_u8(__a, __b, __p)
- #define vclzq_m_u8(__inactive, __a, __p) __arm_vclzq_m_u8(__inactive, __a, __p)
- #define vaddvaq_p_u8(__a, __b, __p) __arm_vaddvaq_p_u8(__a, __b, __p)
- #define vsriq_n_u8(__a, __b,  __imm) __arm_vsriq_n_u8(__a, __b,  __imm)
- #define vsliq_n_u8(__a, __b,  __imm) __arm_vsliq_n_u8(__a, __b,  __imm)
- #define vshlq_m_r_u8(__a, __b, __p) __arm_vshlq_m_r_u8(__a, __b, __p)
- #define vrshlq_m_n_u8(__a, __b, __p) __arm_vrshlq_m_n_u8(__a, __b, __p)
- #define vqshlq_m_r_u8(__a, __b, __p) __arm_vqshlq_m_r_u8(__a, __b, __p)
- #define vqrshlq_m_n_u8(__a, __b, __p) __arm_vqrshlq_m_n_u8(__a, __b, __p)
- #define vminavq_p_s8(__a, __b, __p) __arm_vminavq_p_s8(__a, __b, __p)
- #define vminaq_m_s8(__a, __b, __p) __arm_vminaq_m_s8(__a, __b, __p)
- #define vmaxavq_p_s8(__a, __b, __p) __arm_vmaxavq_p_s8(__a, __b, __p)
- #define vmaxaq_m_s8(__a, __b, __p) __arm_vmaxaq_m_s8(__a, __b, __p)
- #define vcmpneq_m_s8(__a, __b, __p) __arm_vcmpneq_m_s8(__a, __b, __p)
- #define vcmpneq_m_n_s8(__a, __b, __p) __arm_vcmpneq_m_n_s8(__a, __b, __p)
- #define vcmpltq_m_s8(__a, __b, __p) __arm_vcmpltq_m_s8(__a, __b, __p)
- #define vcmpltq_m_n_s8(__a, __b, __p) __arm_vcmpltq_m_n_s8(__a, __b, __p)
- #define vcmpleq_m_s8(__a, __b, __p) __arm_vcmpleq_m_s8(__a, __b, __p)
- #define vcmpleq_m_n_s8(__a, __b, __p) __arm_vcmpleq_m_n_s8(__a, __b, __p)
- #define vcmpgtq_m_s8(__a, __b, __p) __arm_vcmpgtq_m_s8(__a, __b, __p)
- #define vcmpgtq_m_n_s8(__a, __b, __p) __arm_vcmpgtq_m_n_s8(__a, __b, __p)
- #define vcmpgeq_m_s8(__a, __b, __p) __arm_vcmpgeq_m_s8(__a, __b, __p)
- #define vcmpgeq_m_n_s8(__a, __b, __p) __arm_vcmpgeq_m_n_s8(__a, __b, __p)
- #define vcmpeqq_m_s8(__a, __b, __p) __arm_vcmpeqq_m_s8(__a, __b, __p)
- #define vcmpeqq_m_n_s8(__a, __b, __p) __arm_vcmpeqq_m_n_s8(__a, __b, __p)
- #define vshlq_m_r_s8(__a, __b, __p) __arm_vshlq_m_r_s8(__a, __b, __p)
- #define vrshlq_m_n_s8(__a, __b, __p) __arm_vrshlq_m_n_s8(__a, __b, __p)
- #define vrev64q_m_s8(__inactive, __a, __p) __arm_vrev64q_m_s8(__inactive, __a, __p)
- #define vqshlq_m_r_s8(__a, __b, __p) __arm_vqshlq_m_r_s8(__a, __b, __p)
- #define vqrshlq_m_n_s8(__a, __b, __p) __arm_vqrshlq_m_n_s8(__a, __b, __p)
- #define vqnegq_m_s8(__inactive, __a, __p) __arm_vqnegq_m_s8(__inactive, __a, __p)
- #define vqabsq_m_s8(__inactive, __a, __p) __arm_vqabsq_m_s8(__inactive, __a, __p)
- #define vnegq_m_s8(__inactive, __a, __p) __arm_vnegq_m_s8(__inactive, __a, __p)
- #define vmvnq_m_s8(__inactive, __a, __p) __arm_vmvnq_m_s8(__inactive, __a, __p)
- #define vmlsdavxq_p_s8(__a, __b, __p) __arm_vmlsdavxq_p_s8(__a, __b, __p)
- #define vmlsdavq_p_s8(__a, __b, __p) __arm_vmlsdavq_p_s8(__a, __b, __p)
- #define vmladavxq_p_s8(__a, __b, __p) __arm_vmladavxq_p_s8(__a, __b, __p)
- #define vmladavq_p_s8(__a, __b, __p) __arm_vmladavq_p_s8(__a, __b, __p)
- #define vminvq_p_s8(__a, __b, __p) __arm_vminvq_p_s8(__a, __b, __p)
- #define vmaxvq_p_s8(__a, __b, __p) __arm_vmaxvq_p_s8(__a, __b, __p)
- #define vdupq_m_n_s8(__inactive, __a, __p) __arm_vdupq_m_n_s8(__inactive, __a, __p)
- #define vclzq_m_s8(__inactive, __a, __p) __arm_vclzq_m_s8(__inactive, __a, __p)
- #define vclsq_m_s8(__inactive, __a, __p) __arm_vclsq_m_s8(__inactive, __a, __p)
- #define vaddvaq_p_s8(__a, __b, __p) __arm_vaddvaq_p_s8(__a, __b, __p)
- #define vabsq_m_s8(__inactive, __a, __p) __arm_vabsq_m_s8(__inactive, __a, __p)
- #define vqrdmlsdhxq_s8(__inactive, __a, __b) __arm_vqrdmlsdhxq_s8(__inactive, __a, __b)
- #define vqrdmlsdhq_s8(__inactive, __a, __b) __arm_vqrdmlsdhq_s8(__inactive, __a, __b)
- #define vqrdmlashq_n_s8(__a, __b, __c) __arm_vqrdmlashq_n_s8(__a, __b, __c)
- #define vqrdmlahq_n_s8(__a, __b, __c) __arm_vqrdmlahq_n_s8(__a, __b, __c)
- #define vqrdmladhxq_s8(__inactive, __a, __b) __arm_vqrdmladhxq_s8(__inactive, __a, __b)
- #define vqrdmladhq_s8(__inactive, __a, __b) __arm_vqrdmladhq_s8(__inactive, __a, __b)
- #define vqdmlsdhxq_s8(__inactive, __a, __b) __arm_vqdmlsdhxq_s8(__inactive, __a, __b)
- #define vqdmlsdhq_s8(__inactive, __a, __b) __arm_vqdmlsdhq_s8(__inactive, __a, __b)
- #define vqdmlahq_n_s8(__a, __b, __c) __arm_vqdmlahq_n_s8(__a, __b, __c)
- #define vqdmlashq_n_s8(__a, __b, __c) __arm_vqdmlashq_n_s8(__a, __b, __c)
- #define vqdmladhxq_s8(__inactive, __a, __b) __arm_vqdmladhxq_s8(__inactive, __a, __b)
- #define vqdmladhq_s8(__inactive, __a, __b) __arm_vqdmladhq_s8(__inactive, __a, __b)
- #define vmlsdavaxq_s8(__a, __b, __c) __arm_vmlsdavaxq_s8(__a, __b, __c)
- #define vmlsdavaq_s8(__a, __b, __c) __arm_vmlsdavaq_s8(__a, __b, __c)
- #define vmlasq_n_s8(__a, __b, __c) __arm_vmlasq_n_s8(__a, __b, __c)
- #define vmlaq_n_s8(__a, __b, __c) __arm_vmlaq_n_s8(__a, __b, __c)
- #define vmladavaxq_s8(__a, __b, __c) __arm_vmladavaxq_s8(__a, __b, __c)
- #define vmladavaq_s8(__a, __b, __c) __arm_vmladavaq_s8(__a, __b, __c)
- #define vsriq_n_s8(__a, __b,  __imm) __arm_vsriq_n_s8(__a, __b,  __imm)
- #define vsliq_n_s8(__a, __b,  __imm) __arm_vsliq_n_s8(__a, __b,  __imm)
- #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 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)
- #define vmladavq_p_u16(__a, __b, __p) __arm_vmladavq_p_u16(__a, __b, __p)
- #define vmladavaq_u16(__a, __b, __c) __arm_vmladavaq_u16(__a, __b, __c)
- #define vminvq_p_u16(__a, __b, __p) __arm_vminvq_p_u16(__a, __b, __p)
- #define vmaxvq_p_u16(__a, __b, __p) __arm_vmaxvq_p_u16(__a, __b, __p)
- #define vdupq_m_n_u16(__inactive, __a, __p) __arm_vdupq_m_n_u16(__inactive, __a, __p)
- #define vcmpneq_m_u16(__a, __b, __p) __arm_vcmpneq_m_u16(__a, __b, __p)
- #define vcmpneq_m_n_u16(__a, __b, __p) __arm_vcmpneq_m_n_u16(__a, __b, __p)
- #define vcmphiq_m_u16(__a, __b, __p) __arm_vcmphiq_m_u16(__a, __b, __p)
- #define vcmphiq_m_n_u16(__a, __b, __p) __arm_vcmphiq_m_n_u16(__a, __b, __p)
- #define vcmpeqq_m_u16(__a, __b, __p) __arm_vcmpeqq_m_u16(__a, __b, __p)
- #define vcmpeqq_m_n_u16(__a, __b, __p) __arm_vcmpeqq_m_n_u16(__a, __b, __p)
- #define vcmpcsq_m_u16(__a, __b, __p) __arm_vcmpcsq_m_u16(__a, __b, __p)
- #define vcmpcsq_m_n_u16(__a, __b, __p) __arm_vcmpcsq_m_n_u16(__a, __b, __p)
- #define vclzq_m_u16(__inactive, __a, __p) __arm_vclzq_m_u16(__inactive, __a, __p)
- #define vaddvaq_p_u16(__a, __b, __p) __arm_vaddvaq_p_u16(__a, __b, __p)
- #define vsriq_n_u16(__a, __b,  __imm) __arm_vsriq_n_u16(__a, __b,  __imm)
- #define vsliq_n_u16(__a, __b,  __imm) __arm_vsliq_n_u16(__a, __b,  __imm)
- #define vshlq_m_r_u16(__a, __b, __p) __arm_vshlq_m_r_u16(__a, __b, __p)
- #define vrshlq_m_n_u16(__a, __b, __p) __arm_vrshlq_m_n_u16(__a, __b, __p)
- #define vqshlq_m_r_u16(__a, __b, __p) __arm_vqshlq_m_r_u16(__a, __b, __p)
- #define vqrshlq_m_n_u16(__a, __b, __p) __arm_vqrshlq_m_n_u16(__a, __b, __p)
- #define vminavq_p_s16(__a, __b, __p) __arm_vminavq_p_s16(__a, __b, __p)
- #define vminaq_m_s16(__a, __b, __p) __arm_vminaq_m_s16(__a, __b, __p)
- #define vmaxavq_p_s16(__a, __b, __p) __arm_vmaxavq_p_s16(__a, __b, __p)
- #define vmaxaq_m_s16(__a, __b, __p) __arm_vmaxaq_m_s16(__a, __b, __p)
- #define vcmpneq_m_s16(__a, __b, __p) __arm_vcmpneq_m_s16(__a, __b, __p)
- #define vcmpneq_m_n_s16(__a, __b, __p) __arm_vcmpneq_m_n_s16(__a, __b, __p)
- #define vcmpltq_m_s16(__a, __b, __p) __arm_vcmpltq_m_s16(__a, __b, __p)
- #define vcmpltq_m_n_s16(__a, __b, __p) __arm_vcmpltq_m_n_s16(__a, __b, __p)
- #define vcmpleq_m_s16(__a, __b, __p) __arm_vcmpleq_m_s16(__a, __b, __p)
- #define vcmpleq_m_n_s16(__a, __b, __p) __arm_vcmpleq_m_n_s16(__a, __b, __p)
- #define vcmpgtq_m_s16(__a, __b, __p) __arm_vcmpgtq_m_s16(__a, __b, __p)
- #define vcmpgtq_m_n_s16(__a, __b, __p) __arm_vcmpgtq_m_n_s16(__a, __b, __p)
- #define vcmpgeq_m_s16(__a, __b, __p) __arm_vcmpgeq_m_s16(__a, __b, __p)
- #define vcmpgeq_m_n_s16(__a, __b, __p) __arm_vcmpgeq_m_n_s16(__a, __b, __p)
- #define vcmpeqq_m_s16(__a, __b, __p) __arm_vcmpeqq_m_s16(__a, __b, __p)
- #define vcmpeqq_m_n_s16(__a, __b, __p) __arm_vcmpeqq_m_n_s16(__a, __b, __p)
- #define vshlq_m_r_s16(__a, __b, __p) __arm_vshlq_m_r_s16(__a, __b, __p)
- #define vrshlq_m_n_s16(__a, __b, __p) __arm_vrshlq_m_n_s16(__a, __b, __p)
- #define vrev64q_m_s16(__inactive, __a, __p) __arm_vrev64q_m_s16(__inactive, __a, __p)
- #define vqshlq_m_r_s16(__a, __b, __p) __arm_vqshlq_m_r_s16(__a, __b, __p)
- #define vqrshlq_m_n_s16(__a, __b, __p) __arm_vqrshlq_m_n_s16(__a, __b, __p)
- #define vqnegq_m_s16(__inactive, __a, __p) __arm_vqnegq_m_s16(__inactive, __a, __p)
- #define vqabsq_m_s16(__inactive, __a, __p) __arm_vqabsq_m_s16(__inactive, __a, __p)
- #define vnegq_m_s16(__inactive, __a, __p) __arm_vnegq_m_s16(__inactive, __a, __p)
- #define vmvnq_m_s16(__inactive, __a, __p) __arm_vmvnq_m_s16(__inactive, __a, __p)
- #define vmlsdavxq_p_s16(__a, __b, __p) __arm_vmlsdavxq_p_s16(__a, __b, __p)
- #define vmlsdavq_p_s16(__a, __b, __p) __arm_vmlsdavq_p_s16(__a, __b, __p)
- #define vmladavxq_p_s16(__a, __b, __p) __arm_vmladavxq_p_s16(__a, __b, __p)
- #define vmladavq_p_s16(__a, __b, __p) __arm_vmladavq_p_s16(__a, __b, __p)
- #define vminvq_p_s16(__a, __b, __p) __arm_vminvq_p_s16(__a, __b, __p)
- #define vmaxvq_p_s16(__a, __b, __p) __arm_vmaxvq_p_s16(__a, __b, __p)
- #define vdupq_m_n_s16(__inactive, __a, __p) __arm_vdupq_m_n_s16(__inactive, __a, __p)
- #define vclzq_m_s16(__inactive, __a, __p) __arm_vclzq_m_s16(__inactive, __a, __p)
- #define vclsq_m_s16(__inactive, __a, __p) __arm_vclsq_m_s16(__inactive, __a, __p)
- #define vaddvaq_p_s16(__a, __b, __p) __arm_vaddvaq_p_s16(__a, __b, __p)
- #define vabsq_m_s16(__inactive, __a, __p) __arm_vabsq_m_s16(__inactive, __a, __p)
- #define vqrdmlsdhxq_s16(__inactive, __a, __b) __arm_vqrdmlsdhxq_s16(__inactive, __a, __b)
- #define vqrdmlsdhq_s16(__inactive, __a, __b) __arm_vqrdmlsdhq_s16(__inactive, __a, __b)
- #define vqrdmlashq_n_s16(__a, __b, __c) __arm_vqrdmlashq_n_s16(__a, __b, __c)
- #define vqrdmlahq_n_s16(__a, __b, __c) __arm_vqrdmlahq_n_s16(__a, __b, __c)
- #define vqrdmladhxq_s16(__inactive, __a, __b) __arm_vqrdmladhxq_s16(__inactive, __a, __b)
- #define vqrdmladhq_s16(__inactive, __a, __b) __arm_vqrdmladhq_s16(__inactive, __a, __b)
- #define vqdmlsdhxq_s16(__inactive, __a, __b) __arm_vqdmlsdhxq_s16(__inactive, __a, __b)
- #define vqdmlsdhq_s16(__inactive, __a, __b) __arm_vqdmlsdhq_s16(__inactive, __a, __b)
- #define vqdmlashq_n_s16(__a, __b, __c) __arm_vqdmlashq_n_s16(__a, __b, __c)
- #define vqdmlahq_n_s16(__a, __b, __c) __arm_vqdmlahq_n_s16(__a, __b, __c)
- #define vqdmladhxq_s16(__inactive, __a, __b) __arm_vqdmladhxq_s16(__inactive, __a, __b)
- #define vqdmladhq_s16(__inactive, __a, __b) __arm_vqdmladhq_s16(__inactive, __a, __b)
- #define vmlsdavaxq_s16(__a, __b, __c) __arm_vmlsdavaxq_s16(__a, __b, __c)
- #define vmlsdavaq_s16(__a, __b, __c) __arm_vmlsdavaq_s16(__a, __b, __c)
- #define vmlasq_n_s16(__a, __b, __c) __arm_vmlasq_n_s16(__a, __b, __c)
- #define vmlaq_n_s16(__a, __b, __c) __arm_vmlaq_n_s16(__a, __b, __c)
- #define vmladavaxq_s16(__a, __b, __c) __arm_vmladavaxq_s16(__a, __b, __c)
- #define vmladavaq_s16(__a, __b, __c) __arm_vmladavaq_s16(__a, __b, __c)
- #define vsriq_n_s16(__a, __b,  __imm) __arm_vsriq_n_s16(__a, __b,  __imm)
- #define vsliq_n_s16(__a, __b,  __imm) __arm_vsliq_n_s16(__a, __b,  __imm)
- #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 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)
- #define vmladavq_p_u32(__a, __b, __p) __arm_vmladavq_p_u32(__a, __b, __p)
- #define vmladavaq_u32(__a, __b, __c) __arm_vmladavaq_u32(__a, __b, __c)
- #define vminvq_p_u32(__a, __b, __p) __arm_vminvq_p_u32(__a, __b, __p)
- #define vmaxvq_p_u32(__a, __b, __p) __arm_vmaxvq_p_u32(__a, __b, __p)
- #define vdupq_m_n_u32(__inactive, __a, __p) __arm_vdupq_m_n_u32(__inactive, __a, __p)
- #define vcmpneq_m_u32(__a, __b, __p) __arm_vcmpneq_m_u32(__a, __b, __p)
- #define vcmpneq_m_n_u32(__a, __b, __p) __arm_vcmpneq_m_n_u32(__a, __b, __p)
- #define vcmphiq_m_u32(__a, __b, __p) __arm_vcmphiq_m_u32(__a, __b, __p)
- #define vcmphiq_m_n_u32(__a, __b, __p) __arm_vcmphiq_m_n_u32(__a, __b, __p)
- #define vcmpeqq_m_u32(__a, __b, __p) __arm_vcmpeqq_m_u32(__a, __b, __p)
- #define vcmpeqq_m_n_u32(__a, __b, __p) __arm_vcmpeqq_m_n_u32(__a, __b, __p)
- #define vcmpcsq_m_u32(__a, __b, __p) __arm_vcmpcsq_m_u32(__a, __b, __p)
- #define vcmpcsq_m_n_u32(__a, __b, __p) __arm_vcmpcsq_m_n_u32(__a, __b, __p)
- #define vclzq_m_u32(__inactive, __a, __p) __arm_vclzq_m_u32(__inactive, __a, __p)
- #define vaddvaq_p_u32(__a, __b, __p) __arm_vaddvaq_p_u32(__a, __b, __p)
- #define vsriq_n_u32(__a, __b,  __imm) __arm_vsriq_n_u32(__a, __b,  __imm)
- #define vsliq_n_u32(__a, __b,  __imm) __arm_vsliq_n_u32(__a, __b,  __imm)
- #define vshlq_m_r_u32(__a, __b, __p) __arm_vshlq_m_r_u32(__a, __b, __p)
- #define vrshlq_m_n_u32(__a, __b, __p) __arm_vrshlq_m_n_u32(__a, __b, __p)
- #define vqshlq_m_r_u32(__a, __b, __p) __arm_vqshlq_m_r_u32(__a, __b, __p)
- #define vqrshlq_m_n_u32(__a, __b, __p) __arm_vqrshlq_m_n_u32(__a, __b, __p)
- #define vminavq_p_s32(__a, __b, __p) __arm_vminavq_p_s32(__a, __b, __p)
- #define vminaq_m_s32(__a, __b, __p) __arm_vminaq_m_s32(__a, __b, __p)
- #define vmaxavq_p_s32(__a, __b, __p) __arm_vmaxavq_p_s32(__a, __b, __p)
- #define vmaxaq_m_s32(__a, __b, __p) __arm_vmaxaq_m_s32(__a, __b, __p)
- #define vcmpneq_m_s32(__a, __b, __p) __arm_vcmpneq_m_s32(__a, __b, __p)
- #define vcmpneq_m_n_s32(__a, __b, __p) __arm_vcmpneq_m_n_s32(__a, __b, __p)
- #define vcmpltq_m_s32(__a, __b, __p) __arm_vcmpltq_m_s32(__a, __b, __p)
- #define vcmpltq_m_n_s32(__a, __b, __p) __arm_vcmpltq_m_n_s32(__a, __b, __p)
- #define vcmpleq_m_s32(__a, __b, __p) __arm_vcmpleq_m_s32(__a, __b, __p)
- #define vcmpleq_m_n_s32(__a, __b, __p) __arm_vcmpleq_m_n_s32(__a, __b, __p)
- #define vcmpgtq_m_s32(__a, __b, __p) __arm_vcmpgtq_m_s32(__a, __b, __p)
- #define vcmpgtq_m_n_s32(__a, __b, __p) __arm_vcmpgtq_m_n_s32(__a, __b, __p)
- #define vcmpgeq_m_s32(__a, __b, __p) __arm_vcmpgeq_m_s32(__a, __b, __p)
- #define vcmpgeq_m_n_s32(__a, __b, __p) __arm_vcmpgeq_m_n_s32(__a, __b, __p)
- #define vcmpeqq_m_s32(__a, __b, __p) __arm_vcmpeqq_m_s32(__a, __b, __p)
- #define vcmpeqq_m_n_s32(__a, __b, __p) __arm_vcmpeqq_m_n_s32(__a, __b, __p)
- #define vshlq_m_r_s32(__a, __b, __p) __arm_vshlq_m_r_s32(__a, __b, __p)
- #define vrshlq_m_n_s32(__a, __b, __p) __arm_vrshlq_m_n_s32(__a, __b, __p)
- #define vrev64q_m_s32(__inactive, __a, __p) __arm_vrev64q_m_s32(__inactive, __a, __p)
- #define vqshlq_m_r_s32(__a, __b, __p) __arm_vqshlq_m_r_s32(__a, __b, __p)
- #define vqrshlq_m_n_s32(__a, __b, __p) __arm_vqrshlq_m_n_s32(__a, __b, __p)
- #define vqnegq_m_s32(__inactive, __a, __p) __arm_vqnegq_m_s32(__inactive, __a, __p)
- #define vqabsq_m_s32(__inactive, __a, __p) __arm_vqabsq_m_s32(__inactive, __a, __p)
- #define vnegq_m_s32(__inactive, __a, __p) __arm_vnegq_m_s32(__inactive, __a, __p)
- #define vmvnq_m_s32(__inactive, __a, __p) __arm_vmvnq_m_s32(__inactive, __a, __p)
- #define vmlsdavxq_p_s32(__a, __b, __p) __arm_vmlsdavxq_p_s32(__a, __b, __p)
- #define vmlsdavq_p_s32(__a, __b, __p) __arm_vmlsdavq_p_s32(__a, __b, __p)
- #define vmladavxq_p_s32(__a, __b, __p) __arm_vmladavxq_p_s32(__a, __b, __p)
- #define vmladavq_p_s32(__a, __b, __p) __arm_vmladavq_p_s32(__a, __b, __p)
- #define vminvq_p_s32(__a, __b, __p) __arm_vminvq_p_s32(__a, __b, __p)
- #define vmaxvq_p_s32(__a, __b, __p) __arm_vmaxvq_p_s32(__a, __b, __p)
- #define vdupq_m_n_s32(__inactive, __a, __p) __arm_vdupq_m_n_s32(__inactive, __a, __p)
- #define vclzq_m_s32(__inactive, __a, __p) __arm_vclzq_m_s32(__inactive, __a, __p)
- #define vclsq_m_s32(__inactive, __a, __p) __arm_vclsq_m_s32(__inactive, __a, __p)
- #define vaddvaq_p_s32(__a, __b, __p) __arm_vaddvaq_p_s32(__a, __b, __p)
- #define vabsq_m_s32(__inactive, __a, __p) __arm_vabsq_m_s32(__inactive, __a, __p)
- #define vqrdmlsdhxq_s32(__inactive, __a, __b) __arm_vqrdmlsdhxq_s32(__inactive, __a, __b)
- #define vqrdmlsdhq_s32(__inactive, __a, __b) __arm_vqrdmlsdhq_s32(__inactive, __a, __b)
- #define vqrdmlashq_n_s32(__a, __b, __c) __arm_vqrdmlashq_n_s32(__a, __b, __c)
- #define vqrdmlahq_n_s32(__a, __b, __c) __arm_vqrdmlahq_n_s32(__a, __b, __c)
- #define vqrdmladhxq_s32(__inactive, __a, __b) __arm_vqrdmladhxq_s32(__inactive, __a, __b)
- #define vqrdmladhq_s32(__inactive, __a, __b) __arm_vqrdmladhq_s32(__inactive, __a, __b)
- #define vqdmlsdhxq_s32(__inactive, __a, __b) __arm_vqdmlsdhxq_s32(__inactive, __a, __b)
- #define vqdmlsdhq_s32(__inactive, __a, __b) __arm_vqdmlsdhq_s32(__inactive, __a, __b)
- #define vqdmlashq_n_s32(__a, __b, __c) __arm_vqdmlashq_n_s32(__a, __b, __c)
- #define vqdmlahq_n_s32(__a, __b, __c) __arm_vqdmlahq_n_s32(__a, __b, __c)
- #define vqdmladhxq_s32(__inactive, __a, __b) __arm_vqdmladhxq_s32(__inactive, __a, __b)
- #define vqdmladhq_s32(__inactive, __a, __b) __arm_vqdmladhq_s32(__inactive, __a, __b)
- #define vmlsdavaxq_s32(__a, __b, __c) __arm_vmlsdavaxq_s32(__a, __b, __c)
- #define vmlsdavaq_s32(__a, __b, __c) __arm_vmlsdavaq_s32(__a, __b, __c)
- #define vmlasq_n_s32(__a, __b, __c) __arm_vmlasq_n_s32(__a, __b, __c)
- #define vmlaq_n_s32(__a, __b, __c) __arm_vmlaq_n_s32(__a, __b, __c)
- #define vmladavaxq_s32(__a, __b, __c) __arm_vmladavaxq_s32(__a, __b, __c)
- #define vmladavaq_s32(__a, __b, __c) __arm_vmladavaq_s32(__a, __b, __c)
- #define vsriq_n_s32(__a, __b,  __imm) __arm_vsriq_n_s32(__a, __b,  __imm)
- #define vsliq_n_s32(__a, __b,  __imm) __arm_vsliq_n_s32(__a, __b,  __imm)
- #define vpselq_u64(__a, __b, __p) __arm_vpselq_u64(__a, __b, __p)
- #define vpselq_s64(__a, __b, __p) __arm_vpselq_s64(__a, __b, __p)
- #define vrmlaldavhaxq_s32(__a, __b, __c) __arm_vrmlaldavhaxq_s32(__a, __b, __c)
- #define vrmlsldavhaq_s32(__a, __b, __c) __arm_vrmlsldavhaq_s32(__a, __b, __c)
- #define vrmlsldavhaxq_s32(__a, __b, __c) __arm_vrmlsldavhaxq_s32(__a, __b, __c)
- #define vaddlvaq_p_s32(__a, __b, __p) __arm_vaddlvaq_p_s32(__a, __b, __p)
  #define vcvtbq_m_f16_f32(__a, __b, __p) __arm_vcvtbq_m_f16_f32(__a, __b, __p)
  #define vcvtbq_m_f32_f16(__inactive, __a, __p) __arm_vcvtbq_m_f32_f16(__inactive, __a, __p)
  #define vcvttq_m_f16_f32(__a, __b, __p) __arm_vcvttq_m_f16_f32(__a, __b, __p)
  #define vcvttq_m_f32_f16(__inactive, __a, __p) __arm_vcvttq_m_f32_f16(__inactive, __a, __p)
- #define vrev16q_m_s8(__inactive, __a, __p) __arm_vrev16q_m_s8(__inactive, __a, __p)
- #define vrev32q_m_f16(__inactive, __a, __p) __arm_vrev32q_m_f16(__inactive, __a, __p)
- #define vrmlaldavhq_p_s32(__a, __b, __p) __arm_vrmlaldavhq_p_s32(__a, __b, __p)
- #define vrmlaldavhxq_p_s32(__a, __b, __p) __arm_vrmlaldavhxq_p_s32(__a, __b, __p)
- #define vrmlsldavhq_p_s32(__a, __b, __p) __arm_vrmlsldavhq_p_s32(__a, __b, __p)
- #define vrmlsldavhxq_p_s32(__a, __b, __p) __arm_vrmlsldavhxq_p_s32(__a, __b, __p)
- #define vaddlvaq_p_u32(__a, __b, __p) __arm_vaddlvaq_p_u32(__a, __b, __p)
- #define vrev16q_m_u8(__inactive, __a, __p) __arm_vrev16q_m_u8(__inactive, __a, __p)
- #define vrmlaldavhq_p_u32(__a, __b, __p) __arm_vrmlaldavhq_p_u32(__a, __b, __p)
- #define vmvnq_m_n_s16(__inactive,  __imm, __p) __arm_vmvnq_m_n_s16(__inactive,  __imm, __p)
- #define vorrq_m_n_s16(__a,  __imm, __p) __arm_vorrq_m_n_s16(__a,  __imm, __p)
- #define vqrshrntq_n_s16(__a, __b,  __imm) __arm_vqrshrntq_n_s16(__a, __b,  __imm)
- #define vqshrnbq_n_s16(__a, __b,  __imm) __arm_vqshrnbq_n_s16(__a, __b,  __imm)
- #define vqshrntq_n_s16(__a, __b,  __imm) __arm_vqshrntq_n_s16(__a, __b,  __imm)
- #define vrshrnbq_n_s16(__a, __b,  __imm) __arm_vrshrnbq_n_s16(__a, __b,  __imm)
- #define vrshrntq_n_s16(__a, __b,  __imm) __arm_vrshrntq_n_s16(__a, __b,  __imm)
- #define vshrnbq_n_s16(__a, __b,  __imm) __arm_vshrnbq_n_s16(__a, __b,  __imm)
- #define vshrntq_n_s16(__a, __b,  __imm) __arm_vshrntq_n_s16(__a, __b,  __imm)
- #define vcmlaq_f16(__a, __b, __c) __arm_vcmlaq_f16(__a, __b, __c)
- #define vcmlaq_rot180_f16(__a, __b, __c) __arm_vcmlaq_rot180_f16(__a, __b, __c)
- #define vcmlaq_rot270_f16(__a, __b, __c) __arm_vcmlaq_rot270_f16(__a, __b, __c)
- #define vcmlaq_rot90_f16(__a, __b, __c) __arm_vcmlaq_rot90_f16(__a, __b, __c)
- #define vfmaq_f16(__a, __b, __c) __arm_vfmaq_f16(__a, __b, __c)
- #define vfmaq_n_f16(__a, __b, __c) __arm_vfmaq_n_f16(__a, __b, __c)
- #define vfmasq_n_f16(__a, __b, __c) __arm_vfmasq_n_f16(__a, __b, __c)
- #define vfmsq_f16(__a, __b, __c) __arm_vfmsq_f16(__a, __b, __c)
- #define vmlaldavaq_s16(__a, __b, __c) __arm_vmlaldavaq_s16(__a, __b, __c)
- #define vmlaldavaxq_s16(__a, __b, __c) __arm_vmlaldavaxq_s16(__a, __b, __c)
- #define vmlsldavaq_s16(__a, __b, __c) __arm_vmlsldavaq_s16(__a, __b, __c)
- #define vmlsldavaxq_s16(__a, __b, __c) __arm_vmlsldavaxq_s16(__a, __b, __c)
- #define vabsq_m_f16(__inactive, __a, __p) __arm_vabsq_m_f16(__inactive, __a, __p)
  #define vcvtmq_m_s16_f16(__inactive, __a, __p) __arm_vcvtmq_m_s16_f16(__inactive, __a, __p)
  #define vcvtnq_m_s16_f16(__inactive, __a, __p) __arm_vcvtnq_m_s16_f16(__inactive, __a, __p)
  #define vcvtpq_m_s16_f16(__inactive, __a, __p) __arm_vcvtpq_m_s16_f16(__inactive, __a, __p)
  #define vcvtq_m_s16_f16(__inactive, __a, __p) __arm_vcvtq_m_s16_f16(__inactive, __a, __p)
- #define vdupq_m_n_f16(__inactive, __a, __p) __arm_vdupq_m_n_f16(__inactive, __a, __p)
- #define vmaxnmaq_m_f16(__a, __b, __p) __arm_vmaxnmaq_m_f16(__a, __b, __p)
- #define vmaxnmavq_p_f16(__a, __b, __p) __arm_vmaxnmavq_p_f16(__a, __b, __p)
- #define vmaxnmvq_p_f16(__a, __b, __p) __arm_vmaxnmvq_p_f16(__a, __b, __p)
- #define vminnmaq_m_f16(__a, __b, __p) __arm_vminnmaq_m_f16(__a, __b, __p)
- #define vminnmavq_p_f16(__a, __b, __p) __arm_vminnmavq_p_f16(__a, __b, __p)
- #define vminnmvq_p_f16(__a, __b, __p) __arm_vminnmvq_p_f16(__a, __b, __p)
- #define vmlaldavq_p_s16(__a, __b, __p) __arm_vmlaldavq_p_s16(__a, __b, __p)
- #define vmlaldavxq_p_s16(__a, __b, __p) __arm_vmlaldavxq_p_s16(__a, __b, __p)
- #define vmlsldavq_p_s16(__a, __b, __p) __arm_vmlsldavq_p_s16(__a, __b, __p)
- #define vmlsldavxq_p_s16(__a, __b, __p) __arm_vmlsldavxq_p_s16(__a, __b, __p)
- #define vmovlbq_m_s8(__inactive, __a, __p) __arm_vmovlbq_m_s8(__inactive, __a, __p)
- #define vmovltq_m_s8(__inactive, __a, __p) __arm_vmovltq_m_s8(__inactive, __a, __p)
- #define vmovnbq_m_s16(__a, __b, __p) __arm_vmovnbq_m_s16(__a, __b, __p)
- #define vmovntq_m_s16(__a, __b, __p) __arm_vmovntq_m_s16(__a, __b, __p)
- #define vnegq_m_f16(__inactive, __a, __p) __arm_vnegq_m_f16(__inactive, __a, __p)
- #define vpselq_f16(__a, __b, __p) __arm_vpselq_f16(__a, __b, __p)
- #define vqmovnbq_m_s16(__a, __b, __p) __arm_vqmovnbq_m_s16(__a, __b, __p)
- #define vqmovntq_m_s16(__a, __b, __p) __arm_vqmovntq_m_s16(__a, __b, __p)
- #define vrev32q_m_s8(__inactive, __a, __p) __arm_vrev32q_m_s8(__inactive, __a, __p)
- #define vrev64q_m_f16(__inactive, __a, __p) __arm_vrev64q_m_f16(__inactive, __a, __p)
- #define vrndaq_m_f16(__inactive, __a, __p) __arm_vrndaq_m_f16(__inactive, __a, __p)
- #define vrndmq_m_f16(__inactive, __a, __p) __arm_vrndmq_m_f16(__inactive, __a, __p)
- #define vrndnq_m_f16(__inactive, __a, __p) __arm_vrndnq_m_f16(__inactive, __a, __p)
- #define vrndpq_m_f16(__inactive, __a, __p) __arm_vrndpq_m_f16(__inactive, __a, __p)
- #define vrndq_m_f16(__inactive, __a, __p) __arm_vrndq_m_f16(__inactive, __a, __p)
- #define vrndxq_m_f16(__inactive, __a, __p) __arm_vrndxq_m_f16(__inactive, __a, __p)
- #define vcmpeqq_m_n_f16(__a, __b, __p) __arm_vcmpeqq_m_n_f16(__a, __b, __p)
- #define vcmpgeq_m_f16(__a, __b, __p) __arm_vcmpgeq_m_f16(__a, __b, __p)
- #define vcmpgeq_m_n_f16(__a, __b, __p) __arm_vcmpgeq_m_n_f16(__a, __b, __p)
- #define vcmpgtq_m_f16(__a, __b, __p) __arm_vcmpgtq_m_f16(__a, __b, __p)
- #define vcmpgtq_m_n_f16(__a, __b, __p) __arm_vcmpgtq_m_n_f16(__a, __b, __p)
- #define vcmpleq_m_f16(__a, __b, __p) __arm_vcmpleq_m_f16(__a, __b, __p)
- #define vcmpleq_m_n_f16(__a, __b, __p) __arm_vcmpleq_m_n_f16(__a, __b, __p)
- #define vcmpltq_m_f16(__a, __b, __p) __arm_vcmpltq_m_f16(__a, __b, __p)
- #define vcmpltq_m_n_f16(__a, __b, __p) __arm_vcmpltq_m_n_f16(__a, __b, __p)
- #define vcmpneq_m_f16(__a, __b, __p) __arm_vcmpneq_m_f16(__a, __b, __p)
- #define vcmpneq_m_n_f16(__a, __b, __p) __arm_vcmpneq_m_n_f16(__a, __b, __p)
- #define vmvnq_m_n_u16(__inactive,  __imm, __p) __arm_vmvnq_m_n_u16(__inactive,  __imm, __p)
- #define vorrq_m_n_u16(__a,  __imm, __p) __arm_vorrq_m_n_u16(__a,  __imm, __p)
- #define vqrshruntq_n_s16(__a, __b,  __imm) __arm_vqrshruntq_n_s16(__a, __b,  __imm)
- #define vqshrunbq_n_s16(__a, __b,  __imm) __arm_vqshrunbq_n_s16(__a, __b,  __imm)
- #define vqshruntq_n_s16(__a, __b,  __imm) __arm_vqshruntq_n_s16(__a, __b,  __imm)
  #define vcvtmq_m_u16_f16(__inactive, __a, __p) __arm_vcvtmq_m_u16_f16(__inactive, __a, __p)
  #define vcvtnq_m_u16_f16(__inactive, __a, __p) __arm_vcvtnq_m_u16_f16(__inactive, __a, __p)
  #define vcvtpq_m_u16_f16(__inactive, __a, __p) __arm_vcvtpq_m_u16_f16(__inactive, __a, __p)
  #define vcvtq_m_u16_f16(__inactive, __a, __p) __arm_vcvtq_m_u16_f16(__inactive, __a, __p)
- #define vqmovunbq_m_s16(__a, __b, __p) __arm_vqmovunbq_m_s16(__a, __b, __p)
- #define vqmovuntq_m_s16(__a, __b, __p) __arm_vqmovuntq_m_s16(__a, __b, __p)
- #define vqrshrntq_n_u16(__a, __b,  __imm) __arm_vqrshrntq_n_u16(__a, __b,  __imm)
- #define vqshrnbq_n_u16(__a, __b,  __imm) __arm_vqshrnbq_n_u16(__a, __b,  __imm)
- #define vqshrntq_n_u16(__a, __b,  __imm) __arm_vqshrntq_n_u16(__a, __b,  __imm)
- #define vrshrnbq_n_u16(__a, __b,  __imm) __arm_vrshrnbq_n_u16(__a, __b,  __imm)
- #define vrshrntq_n_u16(__a, __b,  __imm) __arm_vrshrntq_n_u16(__a, __b,  __imm)
- #define vshrnbq_n_u16(__a, __b,  __imm) __arm_vshrnbq_n_u16(__a, __b,  __imm)
- #define vshrntq_n_u16(__a, __b,  __imm) __arm_vshrntq_n_u16(__a, __b,  __imm)
- #define vmlaldavaq_u16(__a, __b, __c) __arm_vmlaldavaq_u16(__a, __b, __c)
- #define vmlaldavq_p_u16(__a, __b, __p) __arm_vmlaldavq_p_u16(__a, __b, __p)
- #define vmovlbq_m_u8(__inactive, __a, __p) __arm_vmovlbq_m_u8(__inactive, __a, __p)
- #define vmovltq_m_u8(__inactive, __a, __p) __arm_vmovltq_m_u8(__inactive, __a, __p)
- #define vmovnbq_m_u16(__a, __b, __p) __arm_vmovnbq_m_u16(__a, __b, __p)
- #define vmovntq_m_u16(__a, __b, __p) __arm_vmovntq_m_u16(__a, __b, __p)
- #define vqmovnbq_m_u16(__a, __b, __p) __arm_vqmovnbq_m_u16(__a, __b, __p)
- #define vqmovntq_m_u16(__a, __b, __p) __arm_vqmovntq_m_u16(__a, __b, __p)
- #define vrev32q_m_u8(__inactive, __a, __p) __arm_vrev32q_m_u8(__inactive, __a, __p)
- #define vmvnq_m_n_s32(__inactive,  __imm, __p) __arm_vmvnq_m_n_s32(__inactive,  __imm, __p)
- #define vorrq_m_n_s32(__a,  __imm, __p) __arm_vorrq_m_n_s32(__a,  __imm, __p)
- #define vqrshrntq_n_s32(__a, __b,  __imm) __arm_vqrshrntq_n_s32(__a, __b,  __imm)
- #define vqshrnbq_n_s32(__a, __b,  __imm) __arm_vqshrnbq_n_s32(__a, __b,  __imm)
- #define vqshrntq_n_s32(__a, __b,  __imm) __arm_vqshrntq_n_s32(__a, __b,  __imm)
- #define vrshrnbq_n_s32(__a, __b,  __imm) __arm_vrshrnbq_n_s32(__a, __b,  __imm)
- #define vrshrntq_n_s32(__a, __b,  __imm) __arm_vrshrntq_n_s32(__a, __b,  __imm)
- #define vshrnbq_n_s32(__a, __b,  __imm) __arm_vshrnbq_n_s32(__a, __b,  __imm)
- #define vshrntq_n_s32(__a, __b,  __imm) __arm_vshrntq_n_s32(__a, __b,  __imm)
- #define vcmlaq_f32(__a, __b, __c) __arm_vcmlaq_f32(__a, __b, __c)
- #define vcmlaq_rot180_f32(__a, __b, __c) __arm_vcmlaq_rot180_f32(__a, __b, __c)
- #define vcmlaq_rot270_f32(__a, __b, __c) __arm_vcmlaq_rot270_f32(__a, __b, __c)
- #define vcmlaq_rot90_f32(__a, __b, __c) __arm_vcmlaq_rot90_f32(__a, __b, __c)
- #define vfmaq_f32(__a, __b, __c) __arm_vfmaq_f32(__a, __b, __c)
- #define vfmaq_n_f32(__a, __b, __c) __arm_vfmaq_n_f32(__a, __b, __c)
- #define vfmasq_n_f32(__a, __b, __c) __arm_vfmasq_n_f32(__a, __b, __c)
- #define vfmsq_f32(__a, __b, __c) __arm_vfmsq_f32(__a, __b, __c)
- #define vmlaldavaq_s32(__a, __b, __c) __arm_vmlaldavaq_s32(__a, __b, __c)
- #define vmlaldavaxq_s32(__a, __b, __c) __arm_vmlaldavaxq_s32(__a, __b, __c)
- #define vmlsldavaq_s32(__a, __b, __c) __arm_vmlsldavaq_s32(__a, __b, __c)
- #define vmlsldavaxq_s32(__a, __b, __c) __arm_vmlsldavaxq_s32(__a, __b, __c)
- #define vabsq_m_f32(__inactive, __a, __p) __arm_vabsq_m_f32(__inactive, __a, __p)
  #define vcvtmq_m_s32_f32(__inactive, __a, __p) __arm_vcvtmq_m_s32_f32(__inactive, __a, __p)
  #define vcvtnq_m_s32_f32(__inactive, __a, __p) __arm_vcvtnq_m_s32_f32(__inactive, __a, __p)
  #define vcvtpq_m_s32_f32(__inactive, __a, __p) __arm_vcvtpq_m_s32_f32(__inactive, __a, __p)
  #define vcvtq_m_s32_f32(__inactive, __a, __p) __arm_vcvtq_m_s32_f32(__inactive, __a, __p)
- #define vdupq_m_n_f32(__inactive, __a, __p) __arm_vdupq_m_n_f32(__inactive, __a, __p)
- #define vmaxnmaq_m_f32(__a, __b, __p) __arm_vmaxnmaq_m_f32(__a, __b, __p)
- #define vmaxnmavq_p_f32(__a, __b, __p) __arm_vmaxnmavq_p_f32(__a, __b, __p)
- #define vmaxnmvq_p_f32(__a, __b, __p) __arm_vmaxnmvq_p_f32(__a, __b, __p)
- #define vminnmaq_m_f32(__a, __b, __p) __arm_vminnmaq_m_f32(__a, __b, __p)
- #define vminnmavq_p_f32(__a, __b, __p) __arm_vminnmavq_p_f32(__a, __b, __p)
- #define vminnmvq_p_f32(__a, __b, __p) __arm_vminnmvq_p_f32(__a, __b, __p)
- #define vmlaldavq_p_s32(__a, __b, __p) __arm_vmlaldavq_p_s32(__a, __b, __p)
- #define vmlaldavxq_p_s32(__a, __b, __p) __arm_vmlaldavxq_p_s32(__a, __b, __p)
- #define vmlsldavq_p_s32(__a, __b, __p) __arm_vmlsldavq_p_s32(__a, __b, __p)
- #define vmlsldavxq_p_s32(__a, __b, __p) __arm_vmlsldavxq_p_s32(__a, __b, __p)
- #define vmovlbq_m_s16(__inactive, __a, __p) __arm_vmovlbq_m_s16(__inactive, __a, __p)
- #define vmovltq_m_s16(__inactive, __a, __p) __arm_vmovltq_m_s16(__inactive, __a, __p)
- #define vmovnbq_m_s32(__a, __b, __p) __arm_vmovnbq_m_s32(__a, __b, __p)
- #define vmovntq_m_s32(__a, __b, __p) __arm_vmovntq_m_s32(__a, __b, __p)
- #define vnegq_m_f32(__inactive, __a, __p) __arm_vnegq_m_f32(__inactive, __a, __p)
- #define vpselq_f32(__a, __b, __p) __arm_vpselq_f32(__a, __b, __p)
- #define vqmovnbq_m_s32(__a, __b, __p) __arm_vqmovnbq_m_s32(__a, __b, __p)
- #define vqmovntq_m_s32(__a, __b, __p) __arm_vqmovntq_m_s32(__a, __b, __p)
- #define vrev32q_m_s16(__inactive, __a, __p) __arm_vrev32q_m_s16(__inactive, __a, __p)
- #define vrev64q_m_f32(__inactive, __a, __p) __arm_vrev64q_m_f32(__inactive, __a, __p)
- #define vrndaq_m_f32(__inactive, __a, __p) __arm_vrndaq_m_f32(__inactive, __a, __p)
- #define vrndmq_m_f32(__inactive, __a, __p) __arm_vrndmq_m_f32(__inactive, __a, __p)
- #define vrndnq_m_f32(__inactive, __a, __p) __arm_vrndnq_m_f32(__inactive, __a, __p)
- #define vrndpq_m_f32(__inactive, __a, __p) __arm_vrndpq_m_f32(__inactive, __a, __p)
- #define vrndq_m_f32(__inactive, __a, __p) __arm_vrndq_m_f32(__inactive, __a, __p)
- #define vrndxq_m_f32(__inactive, __a, __p) __arm_vrndxq_m_f32(__inactive, __a, __p)
- #define vcmpeqq_m_n_f32(__a, __b, __p) __arm_vcmpeqq_m_n_f32(__a, __b, __p)
- #define vcmpgeq_m_f32(__a, __b, __p) __arm_vcmpgeq_m_f32(__a, __b, __p)
- #define vcmpgeq_m_n_f32(__a, __b, __p) __arm_vcmpgeq_m_n_f32(__a, __b, __p)
- #define vcmpgtq_m_f32(__a, __b, __p) __arm_vcmpgtq_m_f32(__a, __b, __p)
- #define vcmpgtq_m_n_f32(__a, __b, __p) __arm_vcmpgtq_m_n_f32(__a, __b, __p)
- #define vcmpleq_m_f32(__a, __b, __p) __arm_vcmpleq_m_f32(__a, __b, __p)
- #define vcmpleq_m_n_f32(__a, __b, __p) __arm_vcmpleq_m_n_f32(__a, __b, __p)
- #define vcmpltq_m_f32(__a, __b, __p) __arm_vcmpltq_m_f32(__a, __b, __p)
- #define vcmpltq_m_n_f32(__a, __b, __p) __arm_vcmpltq_m_n_f32(__a, __b, __p)
- #define vcmpneq_m_f32(__a, __b, __p) __arm_vcmpneq_m_f32(__a, __b, __p)
- #define vcmpneq_m_n_f32(__a, __b, __p) __arm_vcmpneq_m_n_f32(__a, __b, __p)
- #define vmvnq_m_n_u32(__inactive,  __imm, __p) __arm_vmvnq_m_n_u32(__inactive,  __imm, __p)
- #define vorrq_m_n_u32(__a,  __imm, __p) __arm_vorrq_m_n_u32(__a,  __imm, __p)
- #define vqrshruntq_n_s32(__a, __b,  __imm) __arm_vqrshruntq_n_s32(__a, __b,  __imm)
- #define vqshrunbq_n_s32(__a, __b,  __imm) __arm_vqshrunbq_n_s32(__a, __b,  __imm)
- #define vqshruntq_n_s32(__a, __b,  __imm) __arm_vqshruntq_n_s32(__a, __b,  __imm)
  #define vcvtmq_m_u32_f32(__inactive, __a, __p) __arm_vcvtmq_m_u32_f32(__inactive, __a, __p)
  #define vcvtnq_m_u32_f32(__inactive, __a, __p) __arm_vcvtnq_m_u32_f32(__inactive, __a, __p)
  #define vcvtpq_m_u32_f32(__inactive, __a, __p) __arm_vcvtpq_m_u32_f32(__inactive, __a, __p)
  #define vcvtq_m_u32_f32(__inactive, __a, __p) __arm_vcvtq_m_u32_f32(__inactive, __a, __p)
- #define vqmovunbq_m_s32(__a, __b, __p) __arm_vqmovunbq_m_s32(__a, __b, __p)
- #define vqmovuntq_m_s32(__a, __b, __p) __arm_vqmovuntq_m_s32(__a, __b, __p)
- #define vqrshrntq_n_u32(__a, __b,  __imm) __arm_vqrshrntq_n_u32(__a, __b,  __imm)
- #define vqshrnbq_n_u32(__a, __b,  __imm) __arm_vqshrnbq_n_u32(__a, __b,  __imm)
- #define vqshrntq_n_u32(__a, __b,  __imm) __arm_vqshrntq_n_u32(__a, __b,  __imm)
- #define vrshrnbq_n_u32(__a, __b,  __imm) __arm_vrshrnbq_n_u32(__a, __b,  __imm)
- #define vrshrntq_n_u32(__a, __b,  __imm) __arm_vrshrntq_n_u32(__a, __b,  __imm)
- #define vshrnbq_n_u32(__a, __b,  __imm) __arm_vshrnbq_n_u32(__a, __b,  __imm)
- #define vshrntq_n_u32(__a, __b,  __imm) __arm_vshrntq_n_u32(__a, __b,  __imm)
- #define vmlaldavaq_u32(__a, __b, __c) __arm_vmlaldavaq_u32(__a, __b, __c)
- #define vmlaldavq_p_u32(__a, __b, __p) __arm_vmlaldavq_p_u32(__a, __b, __p)
- #define vmovlbq_m_u16(__inactive, __a, __p) __arm_vmovlbq_m_u16(__inactive, __a, __p)
- #define vmovltq_m_u16(__inactive, __a, __p) __arm_vmovltq_m_u16(__inactive, __a, __p)
- #define vmovnbq_m_u32(__a, __b, __p) __arm_vmovnbq_m_u32(__a, __b, __p)
- #define vmovntq_m_u32(__a, __b, __p) __arm_vmovntq_m_u32(__a, __b, __p)
- #define vqmovnbq_m_u32(__a, __b, __p) __arm_vqmovnbq_m_u32(__a, __b, __p)
- #define vqmovntq_m_u32(__a, __b, __p) __arm_vqmovntq_m_u32(__a, __b, __p)
- #define vrev32q_m_u16(__inactive, __a, __p) __arm_vrev32q_m_u16(__inactive, __a, __p)
- #define vsriq_m_n_s8(__a, __b,  __imm, __p) __arm_vsriq_m_n_s8(__a, __b,  __imm, __p)
- #define vsubq_m_s8(__inactive, __a, __b, __p) __arm_vsubq_m_s8(__inactive, __a, __b, __p)
  #define vcvtq_m_n_f16_u16(__inactive, __a,  __imm6, __p) __arm_vcvtq_m_n_f16_u16(__inactive, __a,  __imm6, __p)
- #define vqshluq_m_n_s8(__inactive, __a,  __imm, __p) __arm_vqshluq_m_n_s8(__inactive, __a,  __imm, __p)
- #define vabavq_p_s8(__a, __b, __c, __p) __arm_vabavq_p_s8(__a, __b, __c, __p)
- #define vsriq_m_n_u8(__a, __b,  __imm, __p) __arm_vsriq_m_n_u8(__a, __b,  __imm, __p)
- #define vshlq_m_u8(__inactive, __a, __b, __p) __arm_vshlq_m_u8(__inactive, __a, __b, __p)
- #define vsubq_m_u8(__inactive, __a, __b, __p) __arm_vsubq_m_u8(__inactive, __a, __b, __p)
- #define vabavq_p_u8(__a, __b, __c, __p) __arm_vabavq_p_u8(__a, __b, __c, __p)
- #define vshlq_m_s8(__inactive, __a, __b, __p) __arm_vshlq_m_s8(__inactive, __a, __b, __p)
  #define vcvtq_m_n_f16_s16(__inactive, __a,  __imm6, __p) __arm_vcvtq_m_n_f16_s16(__inactive, __a,  __imm6, __p)
- #define vsriq_m_n_s16(__a, __b,  __imm, __p) __arm_vsriq_m_n_s16(__a, __b,  __imm, __p)
- #define vsubq_m_s16(__inactive, __a, __b, __p) __arm_vsubq_m_s16(__inactive, __a, __b, __p)
  #define vcvtq_m_n_f32_u32(__inactive, __a,  __imm6, __p) __arm_vcvtq_m_n_f32_u32(__inactive, __a,  __imm6, __p)
- #define vqshluq_m_n_s16(__inactive, __a,  __imm, __p) __arm_vqshluq_m_n_s16(__inactive, __a,  __imm, __p)
- #define vabavq_p_s16(__a, __b, __c, __p) __arm_vabavq_p_s16(__a, __b, __c, __p)
- #define vsriq_m_n_u16(__a, __b,  __imm, __p) __arm_vsriq_m_n_u16(__a, __b,  __imm, __p)
- #define vshlq_m_u16(__inactive, __a, __b, __p) __arm_vshlq_m_u16(__inactive, __a, __b, __p)
- #define vsubq_m_u16(__inactive, __a, __b, __p) __arm_vsubq_m_u16(__inactive, __a, __b, __p)
- #define vabavq_p_u16(__a, __b, __c, __p) __arm_vabavq_p_u16(__a, __b, __c, __p)
- #define vshlq_m_s16(__inactive, __a, __b, __p) __arm_vshlq_m_s16(__inactive, __a, __b, __p)
  #define vcvtq_m_n_f32_s32(__inactive, __a,  __imm6, __p) __arm_vcvtq_m_n_f32_s32(__inactive, __a,  __imm6, __p)
- #define vsriq_m_n_s32(__a, __b,  __imm, __p) __arm_vsriq_m_n_s32(__a, __b,  __imm, __p)
- #define vsubq_m_s32(__inactive, __a, __b, __p) __arm_vsubq_m_s32(__inactive, __a, __b, __p)
- #define vqshluq_m_n_s32(__inactive, __a,  __imm, __p) __arm_vqshluq_m_n_s32(__inactive, __a,  __imm, __p)
- #define vabavq_p_s32(__a, __b, __c, __p) __arm_vabavq_p_s32(__a, __b, __c, __p)
- #define vsriq_m_n_u32(__a, __b,  __imm, __p) __arm_vsriq_m_n_u32(__a, __b,  __imm, __p)
- #define vshlq_m_u32(__inactive, __a, __b, __p) __arm_vshlq_m_u32(__inactive, __a, __b, __p)
- #define vsubq_m_u32(__inactive, __a, __b, __p) __arm_vsubq_m_u32(__inactive, __a, __b, __p)
- #define vabavq_p_u32(__a, __b, __c, __p) __arm_vabavq_p_u32(__a, __b, __c, __p)
- #define vshlq_m_s32(__inactive, __a, __b, __p) __arm_vshlq_m_s32(__inactive, __a, __b, __p)
- #define vabdq_m_s8(__inactive, __a, __b, __p) __arm_vabdq_m_s8(__inactive, __a, __b, __p)
- #define vabdq_m_s32(__inactive, __a, __b, __p) __arm_vabdq_m_s32(__inactive, __a, __b, __p)
- #define vabdq_m_s16(__inactive, __a, __b, __p) __arm_vabdq_m_s16(__inactive, __a, __b, __p)
- #define vabdq_m_u8(__inactive, __a, __b, __p) __arm_vabdq_m_u8(__inactive, __a, __b, __p)
- #define vabdq_m_u32(__inactive, __a, __b, __p) __arm_vabdq_m_u32(__inactive, __a, __b, __p)
- #define vabdq_m_u16(__inactive, __a, __b, __p) __arm_vabdq_m_u16(__inactive, __a, __b, __p)
- #define vaddq_m_n_s8(__inactive, __a, __b, __p) __arm_vaddq_m_n_s8(__inactive, __a, __b, __p)
- #define vaddq_m_n_s32(__inactive, __a, __b, __p) __arm_vaddq_m_n_s32(__inactive, __a, __b, __p)
- #define vaddq_m_n_s16(__inactive, __a, __b, __p) __arm_vaddq_m_n_s16(__inactive, __a, __b, __p)
- #define vaddq_m_n_u8(__inactive, __a, __b, __p) __arm_vaddq_m_n_u8(__inactive, __a, __b, __p)
- #define vaddq_m_n_u32(__inactive, __a, __b, __p) __arm_vaddq_m_n_u32(__inactive, __a, __b, __p)
- #define vaddq_m_n_u16(__inactive, __a, __b, __p) __arm_vaddq_m_n_u16(__inactive, __a, __b, __p)
- #define vaddq_m_s8(__inactive, __a, __b, __p) __arm_vaddq_m_s8(__inactive, __a, __b, __p)
- #define vaddq_m_s32(__inactive, __a, __b, __p) __arm_vaddq_m_s32(__inactive, __a, __b, __p)
- #define vaddq_m_s16(__inactive, __a, __b, __p) __arm_vaddq_m_s16(__inactive, __a, __b, __p)
- #define vaddq_m_u8(__inactive, __a, __b, __p) __arm_vaddq_m_u8(__inactive, __a, __b, __p)
- #define vaddq_m_u32(__inactive, __a, __b, __p) __arm_vaddq_m_u32(__inactive, __a, __b, __p)
- #define vaddq_m_u16(__inactive, __a, __b, __p) __arm_vaddq_m_u16(__inactive, __a, __b, __p)
- #define vandq_m_s8(__inactive, __a, __b, __p) __arm_vandq_m_s8(__inactive, __a, __b, __p)
- #define vandq_m_s32(__inactive, __a, __b, __p) __arm_vandq_m_s32(__inactive, __a, __b, __p)
- #define vandq_m_s16(__inactive, __a, __b, __p) __arm_vandq_m_s16(__inactive, __a, __b, __p)
- #define vandq_m_u8(__inactive, __a, __b, __p) __arm_vandq_m_u8(__inactive, __a, __b, __p)
- #define vandq_m_u32(__inactive, __a, __b, __p) __arm_vandq_m_u32(__inactive, __a, __b, __p)
- #define vandq_m_u16(__inactive, __a, __b, __p) __arm_vandq_m_u16(__inactive, __a, __b, __p)
  #define vbicq_m_s8(__inactive, __a, __b, __p) __arm_vbicq_m_s8(__inactive, __a, __b, __p)
  #define vbicq_m_s32(__inactive, __a, __b, __p) __arm_vbicq_m_s32(__inactive, __a, __b, __p)
  #define vbicq_m_s16(__inactive, __a, __b, __p) __arm_vbicq_m_s16(__inactive, __a, __b, __p)
  #define vbicq_m_u8(__inactive, __a, __b, __p) __arm_vbicq_m_u8(__inactive, __a, __b, __p)
  #define vbicq_m_u32(__inactive, __a, __b, __p) __arm_vbicq_m_u32(__inactive, __a, __b, __p)
  #define vbicq_m_u16(__inactive, __a, __b, __p) __arm_vbicq_m_u16(__inactive, __a, __b, __p)
- #define vbrsrq_m_n_s8(__inactive, __a, __b, __p) __arm_vbrsrq_m_n_s8(__inactive, __a, __b, __p)
- #define vbrsrq_m_n_s32(__inactive, __a, __b, __p) __arm_vbrsrq_m_n_s32(__inactive, __a, __b, __p)
- #define vbrsrq_m_n_s16(__inactive, __a, __b, __p) __arm_vbrsrq_m_n_s16(__inactive, __a, __b, __p)
- #define vbrsrq_m_n_u8(__inactive, __a, __b, __p) __arm_vbrsrq_m_n_u8(__inactive, __a, __b, __p)
- #define vbrsrq_m_n_u32(__inactive, __a, __b, __p) __arm_vbrsrq_m_n_u32(__inactive, __a, __b, __p)
- #define vbrsrq_m_n_u16(__inactive, __a, __b, __p) __arm_vbrsrq_m_n_u16(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m_s8(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m_s8(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m_s32(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m_s32(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m_s16(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m_s16(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m_u8(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m_u8(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m_u32(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m_u32(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m_u16(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m_u16(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m_s8(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m_s8(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m_s32(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m_s32(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m_s16(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m_s16(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m_u8(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m_u8(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m_u32(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m_u32(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m_u16(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m_u16(__inactive, __a, __b, __p)
- #define veorq_m_s8(__inactive, __a, __b, __p) __arm_veorq_m_s8(__inactive, __a, __b, __p)
- #define veorq_m_s32(__inactive, __a, __b, __p) __arm_veorq_m_s32(__inactive, __a, __b, __p)
- #define veorq_m_s16(__inactive, __a, __b, __p) __arm_veorq_m_s16(__inactive, __a, __b, __p)
- #define veorq_m_u8(__inactive, __a, __b, __p) __arm_veorq_m_u8(__inactive, __a, __b, __p)
- #define veorq_m_u32(__inactive, __a, __b, __p) __arm_veorq_m_u32(__inactive, __a, __b, __p)
- #define veorq_m_u16(__inactive, __a, __b, __p) __arm_veorq_m_u16(__inactive, __a, __b, __p)
- #define vhaddq_m_n_s8(__inactive, __a, __b, __p) __arm_vhaddq_m_n_s8(__inactive, __a, __b, __p)
- #define vhaddq_m_n_s32(__inactive, __a, __b, __p) __arm_vhaddq_m_n_s32(__inactive, __a, __b, __p)
- #define vhaddq_m_n_s16(__inactive, __a, __b, __p) __arm_vhaddq_m_n_s16(__inactive, __a, __b, __p)
- #define vhaddq_m_n_u8(__inactive, __a, __b, __p) __arm_vhaddq_m_n_u8(__inactive, __a, __b, __p)
- #define vhaddq_m_n_u32(__inactive, __a, __b, __p) __arm_vhaddq_m_n_u32(__inactive, __a, __b, __p)
- #define vhaddq_m_n_u16(__inactive, __a, __b, __p) __arm_vhaddq_m_n_u16(__inactive, __a, __b, __p)
- #define vhaddq_m_s8(__inactive, __a, __b, __p) __arm_vhaddq_m_s8(__inactive, __a, __b, __p)
- #define vhaddq_m_s32(__inactive, __a, __b, __p) __arm_vhaddq_m_s32(__inactive, __a, __b, __p)
- #define vhaddq_m_s16(__inactive, __a, __b, __p) __arm_vhaddq_m_s16(__inactive, __a, __b, __p)
- #define vhaddq_m_u8(__inactive, __a, __b, __p) __arm_vhaddq_m_u8(__inactive, __a, __b, __p)
- #define vhaddq_m_u32(__inactive, __a, __b, __p) __arm_vhaddq_m_u32(__inactive, __a, __b, __p)
- #define vhaddq_m_u16(__inactive, __a, __b, __p) __arm_vhaddq_m_u16(__inactive, __a, __b, __p)
- #define vhcaddq_rot270_m_s8(__inactive, __a, __b, __p) __arm_vhcaddq_rot270_m_s8(__inactive, __a, __b, __p)
- #define vhcaddq_rot270_m_s32(__inactive, __a, __b, __p) __arm_vhcaddq_rot270_m_s32(__inactive, __a, __b, __p)
- #define vhcaddq_rot270_m_s16(__inactive, __a, __b, __p) __arm_vhcaddq_rot270_m_s16(__inactive, __a, __b, __p)
- #define vhcaddq_rot90_m_s8(__inactive, __a, __b, __p) __arm_vhcaddq_rot90_m_s8(__inactive, __a, __b, __p)
- #define vhcaddq_rot90_m_s32(__inactive, __a, __b, __p) __arm_vhcaddq_rot90_m_s32(__inactive, __a, __b, __p)
- #define vhcaddq_rot90_m_s16(__inactive, __a, __b, __p) __arm_vhcaddq_rot90_m_s16(__inactive, __a, __b, __p)
- #define vhsubq_m_n_s8(__inactive, __a, __b, __p) __arm_vhsubq_m_n_s8(__inactive, __a, __b, __p)
- #define vhsubq_m_n_s32(__inactive, __a, __b, __p) __arm_vhsubq_m_n_s32(__inactive, __a, __b, __p)
- #define vhsubq_m_n_s16(__inactive, __a, __b, __p) __arm_vhsubq_m_n_s16(__inactive, __a, __b, __p)
- #define vhsubq_m_n_u8(__inactive, __a, __b, __p) __arm_vhsubq_m_n_u8(__inactive, __a, __b, __p)
- #define vhsubq_m_n_u32(__inactive, __a, __b, __p) __arm_vhsubq_m_n_u32(__inactive, __a, __b, __p)
- #define vhsubq_m_n_u16(__inactive, __a, __b, __p) __arm_vhsubq_m_n_u16(__inactive, __a, __b, __p)
- #define vhsubq_m_s8(__inactive, __a, __b, __p) __arm_vhsubq_m_s8(__inactive, __a, __b, __p)
- #define vhsubq_m_s32(__inactive, __a, __b, __p) __arm_vhsubq_m_s32(__inactive, __a, __b, __p)
- #define vhsubq_m_s16(__inactive, __a, __b, __p) __arm_vhsubq_m_s16(__inactive, __a, __b, __p)
- #define vhsubq_m_u8(__inactive, __a, __b, __p) __arm_vhsubq_m_u8(__inactive, __a, __b, __p)
- #define vhsubq_m_u32(__inactive, __a, __b, __p) __arm_vhsubq_m_u32(__inactive, __a, __b, __p)
- #define vhsubq_m_u16(__inactive, __a, __b, __p) __arm_vhsubq_m_u16(__inactive, __a, __b, __p)
- #define vmaxq_m_s8(__inactive, __a, __b, __p) __arm_vmaxq_m_s8(__inactive, __a, __b, __p)
- #define vmaxq_m_s32(__inactive, __a, __b, __p) __arm_vmaxq_m_s32(__inactive, __a, __b, __p)
- #define vmaxq_m_s16(__inactive, __a, __b, __p) __arm_vmaxq_m_s16(__inactive, __a, __b, __p)
- #define vmaxq_m_u8(__inactive, __a, __b, __p) __arm_vmaxq_m_u8(__inactive, __a, __b, __p)
- #define vmaxq_m_u32(__inactive, __a, __b, __p) __arm_vmaxq_m_u32(__inactive, __a, __b, __p)
- #define vmaxq_m_u16(__inactive, __a, __b, __p) __arm_vmaxq_m_u16(__inactive, __a, __b, __p)
- #define vminq_m_s8(__inactive, __a, __b, __p) __arm_vminq_m_s8(__inactive, __a, __b, __p)
- #define vminq_m_s32(__inactive, __a, __b, __p) __arm_vminq_m_s32(__inactive, __a, __b, __p)
- #define vminq_m_s16(__inactive, __a, __b, __p) __arm_vminq_m_s16(__inactive, __a, __b, __p)
- #define vminq_m_u8(__inactive, __a, __b, __p) __arm_vminq_m_u8(__inactive, __a, __b, __p)
- #define vminq_m_u32(__inactive, __a, __b, __p) __arm_vminq_m_u32(__inactive, __a, __b, __p)
- #define vminq_m_u16(__inactive, __a, __b, __p) __arm_vminq_m_u16(__inactive, __a, __b, __p)
- #define vmladavaq_p_s8(__a, __b, __c, __p) __arm_vmladavaq_p_s8(__a, __b, __c, __p)
- #define vmladavaq_p_s32(__a, __b, __c, __p) __arm_vmladavaq_p_s32(__a, __b, __c, __p)
- #define vmladavaq_p_s16(__a, __b, __c, __p) __arm_vmladavaq_p_s16(__a, __b, __c, __p)
- #define vmladavaq_p_u8(__a, __b, __c, __p) __arm_vmladavaq_p_u8(__a, __b, __c, __p)
- #define vmladavaq_p_u32(__a, __b, __c, __p) __arm_vmladavaq_p_u32(__a, __b, __c, __p)
- #define vmladavaq_p_u16(__a, __b, __c, __p) __arm_vmladavaq_p_u16(__a, __b, __c, __p)
- #define vmladavaxq_p_s8(__a, __b, __c, __p) __arm_vmladavaxq_p_s8(__a, __b, __c, __p)
- #define vmladavaxq_p_s32(__a, __b, __c, __p) __arm_vmladavaxq_p_s32(__a, __b, __c, __p)
- #define vmladavaxq_p_s16(__a, __b, __c, __p) __arm_vmladavaxq_p_s16(__a, __b, __c, __p)
- #define vmlaq_m_n_s8(__a, __b, __c, __p) __arm_vmlaq_m_n_s8(__a, __b, __c, __p)
- #define vmlaq_m_n_s32(__a, __b, __c, __p) __arm_vmlaq_m_n_s32(__a, __b, __c, __p)
- #define vmlaq_m_n_s16(__a, __b, __c, __p) __arm_vmlaq_m_n_s16(__a, __b, __c, __p)
- #define vmlaq_m_n_u8(__a, __b, __c, __p) __arm_vmlaq_m_n_u8(__a, __b, __c, __p)
- #define vmlaq_m_n_u32(__a, __b, __c, __p) __arm_vmlaq_m_n_u32(__a, __b, __c, __p)
- #define vmlaq_m_n_u16(__a, __b, __c, __p) __arm_vmlaq_m_n_u16(__a, __b, __c, __p)
- #define vmlasq_m_n_s8(__a, __b, __c, __p) __arm_vmlasq_m_n_s8(__a, __b, __c, __p)
- #define vmlasq_m_n_s32(__a, __b, __c, __p) __arm_vmlasq_m_n_s32(__a, __b, __c, __p)
- #define vmlasq_m_n_s16(__a, __b, __c, __p) __arm_vmlasq_m_n_s16(__a, __b, __c, __p)
- #define vmlasq_m_n_u8(__a, __b, __c, __p) __arm_vmlasq_m_n_u8(__a, __b, __c, __p)
- #define vmlasq_m_n_u32(__a, __b, __c, __p) __arm_vmlasq_m_n_u32(__a, __b, __c, __p)
- #define vmlasq_m_n_u16(__a, __b, __c, __p) __arm_vmlasq_m_n_u16(__a, __b, __c, __p)
- #define vmlsdavaq_p_s8(__a, __b, __c, __p) __arm_vmlsdavaq_p_s8(__a, __b, __c, __p)
- #define vmlsdavaq_p_s32(__a, __b, __c, __p) __arm_vmlsdavaq_p_s32(__a, __b, __c, __p)
- #define vmlsdavaq_p_s16(__a, __b, __c, __p) __arm_vmlsdavaq_p_s16(__a, __b, __c, __p)
- #define vmlsdavaxq_p_s8(__a, __b, __c, __p) __arm_vmlsdavaxq_p_s8(__a, __b, __c, __p)
- #define vmlsdavaxq_p_s32(__a, __b, __c, __p) __arm_vmlsdavaxq_p_s32(__a, __b, __c, __p)
- #define vmlsdavaxq_p_s16(__a, __b, __c, __p) __arm_vmlsdavaxq_p_s16(__a, __b, __c, __p)
- #define vmulhq_m_s8(__inactive, __a, __b, __p) __arm_vmulhq_m_s8(__inactive, __a, __b, __p)
- #define vmulhq_m_s32(__inactive, __a, __b, __p) __arm_vmulhq_m_s32(__inactive, __a, __b, __p)
- #define vmulhq_m_s16(__inactive, __a, __b, __p) __arm_vmulhq_m_s16(__inactive, __a, __b, __p)
- #define vmulhq_m_u8(__inactive, __a, __b, __p) __arm_vmulhq_m_u8(__inactive, __a, __b, __p)
- #define vmulhq_m_u32(__inactive, __a, __b, __p) __arm_vmulhq_m_u32(__inactive, __a, __b, __p)
- #define vmulhq_m_u16(__inactive, __a, __b, __p) __arm_vmulhq_m_u16(__inactive, __a, __b, __p)
- #define vmullbq_int_m_s8(__inactive, __a, __b, __p) __arm_vmullbq_int_m_s8(__inactive, __a, __b, __p)
- #define vmullbq_int_m_s32(__inactive, __a, __b, __p) __arm_vmullbq_int_m_s32(__inactive, __a, __b, __p)
- #define vmullbq_int_m_s16(__inactive, __a, __b, __p) __arm_vmullbq_int_m_s16(__inactive, __a, __b, __p)
- #define vmullbq_int_m_u8(__inactive, __a, __b, __p) __arm_vmullbq_int_m_u8(__inactive, __a, __b, __p)
- #define vmullbq_int_m_u32(__inactive, __a, __b, __p) __arm_vmullbq_int_m_u32(__inactive, __a, __b, __p)
- #define vmullbq_int_m_u16(__inactive, __a, __b, __p) __arm_vmullbq_int_m_u16(__inactive, __a, __b, __p)
- #define vmulltq_int_m_s8(__inactive, __a, __b, __p) __arm_vmulltq_int_m_s8(__inactive, __a, __b, __p)
- #define vmulltq_int_m_s32(__inactive, __a, __b, __p) __arm_vmulltq_int_m_s32(__inactive, __a, __b, __p)
- #define vmulltq_int_m_s16(__inactive, __a, __b, __p) __arm_vmulltq_int_m_s16(__inactive, __a, __b, __p)
- #define vmulltq_int_m_u8(__inactive, __a, __b, __p) __arm_vmulltq_int_m_u8(__inactive, __a, __b, __p)
- #define vmulltq_int_m_u32(__inactive, __a, __b, __p) __arm_vmulltq_int_m_u32(__inactive, __a, __b, __p)
- #define vmulltq_int_m_u16(__inactive, __a, __b, __p) __arm_vmulltq_int_m_u16(__inactive, __a, __b, __p)
- #define vmulq_m_n_s8(__inactive, __a, __b, __p) __arm_vmulq_m_n_s8(__inactive, __a, __b, __p)
- #define vmulq_m_n_s32(__inactive, __a, __b, __p) __arm_vmulq_m_n_s32(__inactive, __a, __b, __p)
- #define vmulq_m_n_s16(__inactive, __a, __b, __p) __arm_vmulq_m_n_s16(__inactive, __a, __b, __p)
- #define vmulq_m_n_u8(__inactive, __a, __b, __p) __arm_vmulq_m_n_u8(__inactive, __a, __b, __p)
- #define vmulq_m_n_u32(__inactive, __a, __b, __p) __arm_vmulq_m_n_u32(__inactive, __a, __b, __p)
- #define vmulq_m_n_u16(__inactive, __a, __b, __p) __arm_vmulq_m_n_u16(__inactive, __a, __b, __p)
- #define vmulq_m_s8(__inactive, __a, __b, __p) __arm_vmulq_m_s8(__inactive, __a, __b, __p)
- #define vmulq_m_s32(__inactive, __a, __b, __p) __arm_vmulq_m_s32(__inactive, __a, __b, __p)
- #define vmulq_m_s16(__inactive, __a, __b, __p) __arm_vmulq_m_s16(__inactive, __a, __b, __p)
- #define vmulq_m_u8(__inactive, __a, __b, __p) __arm_vmulq_m_u8(__inactive, __a, __b, __p)
- #define vmulq_m_u32(__inactive, __a, __b, __p) __arm_vmulq_m_u32(__inactive, __a, __b, __p)
- #define vmulq_m_u16(__inactive, __a, __b, __p) __arm_vmulq_m_u16(__inactive, __a, __b, __p)
  #define vornq_m_s8(__inactive, __a, __b, __p) __arm_vornq_m_s8(__inactive, __a, __b, __p)
  #define vornq_m_s32(__inactive, __a, __b, __p) __arm_vornq_m_s32(__inactive, __a, __b, __p)
  #define vornq_m_s16(__inactive, __a, __b, __p) __arm_vornq_m_s16(__inactive, __a, __b, __p)
  #define vornq_m_u8(__inactive, __a, __b, __p) __arm_vornq_m_u8(__inactive, __a, __b, __p)
  #define vornq_m_u32(__inactive, __a, __b, __p) __arm_vornq_m_u32(__inactive, __a, __b, __p)
  #define vornq_m_u16(__inactive, __a, __b, __p) __arm_vornq_m_u16(__inactive, __a, __b, __p)
- #define vorrq_m_s8(__inactive, __a, __b, __p) __arm_vorrq_m_s8(__inactive, __a, __b, __p)
- #define vorrq_m_s32(__inactive, __a, __b, __p) __arm_vorrq_m_s32(__inactive, __a, __b, __p)
- #define vorrq_m_s16(__inactive, __a, __b, __p) __arm_vorrq_m_s16(__inactive, __a, __b, __p)
- #define vorrq_m_u8(__inactive, __a, __b, __p) __arm_vorrq_m_u8(__inactive, __a, __b, __p)
- #define vorrq_m_u32(__inactive, __a, __b, __p) __arm_vorrq_m_u32(__inactive, __a, __b, __p)
- #define vorrq_m_u16(__inactive, __a, __b, __p) __arm_vorrq_m_u16(__inactive, __a, __b, __p)
- #define vqaddq_m_n_s8(__inactive, __a, __b, __p) __arm_vqaddq_m_n_s8(__inactive, __a, __b, __p)
- #define vqaddq_m_n_s32(__inactive, __a, __b, __p) __arm_vqaddq_m_n_s32(__inactive, __a, __b, __p)
- #define vqaddq_m_n_s16(__inactive, __a, __b, __p) __arm_vqaddq_m_n_s16(__inactive, __a, __b, __p)
- #define vqaddq_m_n_u8(__inactive, __a, __b, __p) __arm_vqaddq_m_n_u8(__inactive, __a, __b, __p)
- #define vqaddq_m_n_u32(__inactive, __a, __b, __p) __arm_vqaddq_m_n_u32(__inactive, __a, __b, __p)
- #define vqaddq_m_n_u16(__inactive, __a, __b, __p) __arm_vqaddq_m_n_u16(__inactive, __a, __b, __p)
- #define vqaddq_m_s8(__inactive, __a, __b, __p) __arm_vqaddq_m_s8(__inactive, __a, __b, __p)
- #define vqaddq_m_s32(__inactive, __a, __b, __p) __arm_vqaddq_m_s32(__inactive, __a, __b, __p)
- #define vqaddq_m_s16(__inactive, __a, __b, __p) __arm_vqaddq_m_s16(__inactive, __a, __b, __p)
- #define vqaddq_m_u8(__inactive, __a, __b, __p) __arm_vqaddq_m_u8(__inactive, __a, __b, __p)
- #define vqaddq_m_u32(__inactive, __a, __b, __p) __arm_vqaddq_m_u32(__inactive, __a, __b, __p)
- #define vqaddq_m_u16(__inactive, __a, __b, __p) __arm_vqaddq_m_u16(__inactive, __a, __b, __p)
- #define vqdmladhq_m_s8(__inactive, __a, __b, __p) __arm_vqdmladhq_m_s8(__inactive, __a, __b, __p)
- #define vqdmladhq_m_s32(__inactive, __a, __b, __p) __arm_vqdmladhq_m_s32(__inactive, __a, __b, __p)
- #define vqdmladhq_m_s16(__inactive, __a, __b, __p) __arm_vqdmladhq_m_s16(__inactive, __a, __b, __p)
- #define vqdmladhxq_m_s8(__inactive, __a, __b, __p) __arm_vqdmladhxq_m_s8(__inactive, __a, __b, __p)
- #define vqdmladhxq_m_s32(__inactive, __a, __b, __p) __arm_vqdmladhxq_m_s32(__inactive, __a, __b, __p)
- #define vqdmladhxq_m_s16(__inactive, __a, __b, __p) __arm_vqdmladhxq_m_s16(__inactive, __a, __b, __p)
- #define vqdmlashq_m_n_s8(__a, __b, __c, __p) __arm_vqdmlashq_m_n_s8(__a, __b, __c, __p)
- #define vqdmlashq_m_n_s32(__a, __b, __c, __p) __arm_vqdmlashq_m_n_s32(__a, __b, __c, __p)
- #define vqdmlashq_m_n_s16(__a, __b, __c, __p) __arm_vqdmlashq_m_n_s16(__a, __b, __c, __p)
- #define vqdmlahq_m_n_s8(__a, __b, __c, __p) __arm_vqdmlahq_m_n_s8(__a, __b, __c, __p)
- #define vqdmlahq_m_n_s32(__a, __b, __c, __p) __arm_vqdmlahq_m_n_s32(__a, __b, __c, __p)
- #define vqdmlahq_m_n_s16(__a, __b, __c, __p) __arm_vqdmlahq_m_n_s16(__a, __b, __c, __p)
- #define vqdmlsdhq_m_s8(__inactive, __a, __b, __p) __arm_vqdmlsdhq_m_s8(__inactive, __a, __b, __p)
- #define vqdmlsdhq_m_s32(__inactive, __a, __b, __p) __arm_vqdmlsdhq_m_s32(__inactive, __a, __b, __p)
- #define vqdmlsdhq_m_s16(__inactive, __a, __b, __p) __arm_vqdmlsdhq_m_s16(__inactive, __a, __b, __p)
- #define vqdmlsdhxq_m_s8(__inactive, __a, __b, __p) __arm_vqdmlsdhxq_m_s8(__inactive, __a, __b, __p)
- #define vqdmlsdhxq_m_s32(__inactive, __a, __b, __p) __arm_vqdmlsdhxq_m_s32(__inactive, __a, __b, __p)
- #define vqdmlsdhxq_m_s16(__inactive, __a, __b, __p) __arm_vqdmlsdhxq_m_s16(__inactive, __a, __b, __p)
- #define vqdmulhq_m_n_s8(__inactive, __a, __b, __p) __arm_vqdmulhq_m_n_s8(__inactive, __a, __b, __p)
- #define vqdmulhq_m_n_s32(__inactive, __a, __b, __p) __arm_vqdmulhq_m_n_s32(__inactive, __a, __b, __p)
- #define vqdmulhq_m_n_s16(__inactive, __a, __b, __p) __arm_vqdmulhq_m_n_s16(__inactive, __a, __b, __p)
- #define vqdmulhq_m_s8(__inactive, __a, __b, __p) __arm_vqdmulhq_m_s8(__inactive, __a, __b, __p)
- #define vqdmulhq_m_s32(__inactive, __a, __b, __p) __arm_vqdmulhq_m_s32(__inactive, __a, __b, __p)
- #define vqdmulhq_m_s16(__inactive, __a, __b, __p) __arm_vqdmulhq_m_s16(__inactive, __a, __b, __p)
- #define vqrdmladhq_m_s8(__inactive, __a, __b, __p) __arm_vqrdmladhq_m_s8(__inactive, __a, __b, __p)
- #define vqrdmladhq_m_s32(__inactive, __a, __b, __p) __arm_vqrdmladhq_m_s32(__inactive, __a, __b, __p)
- #define vqrdmladhq_m_s16(__inactive, __a, __b, __p) __arm_vqrdmladhq_m_s16(__inactive, __a, __b, __p)
- #define vqrdmladhxq_m_s8(__inactive, __a, __b, __p) __arm_vqrdmladhxq_m_s8(__inactive, __a, __b, __p)
- #define vqrdmladhxq_m_s32(__inactive, __a, __b, __p) __arm_vqrdmladhxq_m_s32(__inactive, __a, __b, __p)
- #define vqrdmladhxq_m_s16(__inactive, __a, __b, __p) __arm_vqrdmladhxq_m_s16(__inactive, __a, __b, __p)
- #define vqrdmlahq_m_n_s8(__a, __b, __c, __p) __arm_vqrdmlahq_m_n_s8(__a, __b, __c, __p)
- #define vqrdmlahq_m_n_s32(__a, __b, __c, __p) __arm_vqrdmlahq_m_n_s32(__a, __b, __c, __p)
- #define vqrdmlahq_m_n_s16(__a, __b, __c, __p) __arm_vqrdmlahq_m_n_s16(__a, __b, __c, __p)
- #define vqrdmlashq_m_n_s8(__a, __b, __c, __p) __arm_vqrdmlashq_m_n_s8(__a, __b, __c, __p)
- #define vqrdmlashq_m_n_s32(__a, __b, __c, __p) __arm_vqrdmlashq_m_n_s32(__a, __b, __c, __p)
- #define vqrdmlashq_m_n_s16(__a, __b, __c, __p) __arm_vqrdmlashq_m_n_s16(__a, __b, __c, __p)
- #define vqrdmlsdhq_m_s8(__inactive, __a, __b, __p) __arm_vqrdmlsdhq_m_s8(__inactive, __a, __b, __p)
- #define vqrdmlsdhq_m_s32(__inactive, __a, __b, __p) __arm_vqrdmlsdhq_m_s32(__inactive, __a, __b, __p)
- #define vqrdmlsdhq_m_s16(__inactive, __a, __b, __p) __arm_vqrdmlsdhq_m_s16(__inactive, __a, __b, __p)
- #define vqrdmlsdhxq_m_s8(__inactive, __a, __b, __p) __arm_vqrdmlsdhxq_m_s8(__inactive, __a, __b, __p)
- #define vqrdmlsdhxq_m_s32(__inactive, __a, __b, __p) __arm_vqrdmlsdhxq_m_s32(__inactive, __a, __b, __p)
- #define vqrdmlsdhxq_m_s16(__inactive, __a, __b, __p) __arm_vqrdmlsdhxq_m_s16(__inactive, __a, __b, __p)
- #define vqrdmulhq_m_n_s8(__inactive, __a, __b, __p) __arm_vqrdmulhq_m_n_s8(__inactive, __a, __b, __p)
- #define vqrdmulhq_m_n_s32(__inactive, __a, __b, __p) __arm_vqrdmulhq_m_n_s32(__inactive, __a, __b, __p)
- #define vqrdmulhq_m_n_s16(__inactive, __a, __b, __p) __arm_vqrdmulhq_m_n_s16(__inactive, __a, __b, __p)
- #define vqrdmulhq_m_s8(__inactive, __a, __b, __p) __arm_vqrdmulhq_m_s8(__inactive, __a, __b, __p)
- #define vqrdmulhq_m_s32(__inactive, __a, __b, __p) __arm_vqrdmulhq_m_s32(__inactive, __a, __b, __p)
- #define vqrdmulhq_m_s16(__inactive, __a, __b, __p) __arm_vqrdmulhq_m_s16(__inactive, __a, __b, __p)
- #define vqrshlq_m_s8(__inactive, __a, __b, __p) __arm_vqrshlq_m_s8(__inactive, __a, __b, __p)
- #define vqrshlq_m_s32(__inactive, __a, __b, __p) __arm_vqrshlq_m_s32(__inactive, __a, __b, __p)
- #define vqrshlq_m_s16(__inactive, __a, __b, __p) __arm_vqrshlq_m_s16(__inactive, __a, __b, __p)
- #define vqrshlq_m_u8(__inactive, __a, __b, __p) __arm_vqrshlq_m_u8(__inactive, __a, __b, __p)
- #define vqrshlq_m_u32(__inactive, __a, __b, __p) __arm_vqrshlq_m_u32(__inactive, __a, __b, __p)
- #define vqrshlq_m_u16(__inactive, __a, __b, __p) __arm_vqrshlq_m_u16(__inactive, __a, __b, __p)
- #define vqshlq_m_n_s8(__inactive, __a,  __imm, __p) __arm_vqshlq_m_n_s8(__inactive, __a,  __imm, __p)
- #define vqshlq_m_n_s32(__inactive, __a,  __imm, __p) __arm_vqshlq_m_n_s32(__inactive, __a,  __imm, __p)
- #define vqshlq_m_n_s16(__inactive, __a,  __imm, __p) __arm_vqshlq_m_n_s16(__inactive, __a,  __imm, __p)
- #define vqshlq_m_n_u8(__inactive, __a,  __imm, __p) __arm_vqshlq_m_n_u8(__inactive, __a,  __imm, __p)
- #define vqshlq_m_n_u32(__inactive, __a,  __imm, __p) __arm_vqshlq_m_n_u32(__inactive, __a,  __imm, __p)
- #define vqshlq_m_n_u16(__inactive, __a,  __imm, __p) __arm_vqshlq_m_n_u16(__inactive, __a,  __imm, __p)
- #define vqshlq_m_s8(__inactive, __a, __b, __p) __arm_vqshlq_m_s8(__inactive, __a, __b, __p)
- #define vqshlq_m_s32(__inactive, __a, __b, __p) __arm_vqshlq_m_s32(__inactive, __a, __b, __p)
- #define vqshlq_m_s16(__inactive, __a, __b, __p) __arm_vqshlq_m_s16(__inactive, __a, __b, __p)
- #define vqshlq_m_u8(__inactive, __a, __b, __p) __arm_vqshlq_m_u8(__inactive, __a, __b, __p)
- #define vqshlq_m_u32(__inactive, __a, __b, __p) __arm_vqshlq_m_u32(__inactive, __a, __b, __p)
- #define vqshlq_m_u16(__inactive, __a, __b, __p) __arm_vqshlq_m_u16(__inactive, __a, __b, __p)
- #define vqsubq_m_n_s8(__inactive, __a, __b, __p) __arm_vqsubq_m_n_s8(__inactive, __a, __b, __p)
- #define vqsubq_m_n_s32(__inactive, __a, __b, __p) __arm_vqsubq_m_n_s32(__inactive, __a, __b, __p)
- #define vqsubq_m_n_s16(__inactive, __a, __b, __p) __arm_vqsubq_m_n_s16(__inactive, __a, __b, __p)
- #define vqsubq_m_n_u8(__inactive, __a, __b, __p) __arm_vqsubq_m_n_u8(__inactive, __a, __b, __p)
- #define vqsubq_m_n_u32(__inactive, __a, __b, __p) __arm_vqsubq_m_n_u32(__inactive, __a, __b, __p)
- #define vqsubq_m_n_u16(__inactive, __a, __b, __p) __arm_vqsubq_m_n_u16(__inactive, __a, __b, __p)
- #define vqsubq_m_s8(__inactive, __a, __b, __p) __arm_vqsubq_m_s8(__inactive, __a, __b, __p)
- #define vqsubq_m_s32(__inactive, __a, __b, __p) __arm_vqsubq_m_s32(__inactive, __a, __b, __p)
- #define vqsubq_m_s16(__inactive, __a, __b, __p) __arm_vqsubq_m_s16(__inactive, __a, __b, __p)
- #define vqsubq_m_u8(__inactive, __a, __b, __p) __arm_vqsubq_m_u8(__inactive, __a, __b, __p)
- #define vqsubq_m_u32(__inactive, __a, __b, __p) __arm_vqsubq_m_u32(__inactive, __a, __b, __p)
- #define vqsubq_m_u16(__inactive, __a, __b, __p) __arm_vqsubq_m_u16(__inactive, __a, __b, __p)
- #define vrhaddq_m_s8(__inactive, __a, __b, __p) __arm_vrhaddq_m_s8(__inactive, __a, __b, __p)
- #define vrhaddq_m_s32(__inactive, __a, __b, __p) __arm_vrhaddq_m_s32(__inactive, __a, __b, __p)
- #define vrhaddq_m_s16(__inactive, __a, __b, __p) __arm_vrhaddq_m_s16(__inactive, __a, __b, __p)
- #define vrhaddq_m_u8(__inactive, __a, __b, __p) __arm_vrhaddq_m_u8(__inactive, __a, __b, __p)
- #define vrhaddq_m_u32(__inactive, __a, __b, __p) __arm_vrhaddq_m_u32(__inactive, __a, __b, __p)
- #define vrhaddq_m_u16(__inactive, __a, __b, __p) __arm_vrhaddq_m_u16(__inactive, __a, __b, __p)
- #define vrmulhq_m_s8(__inactive, __a, __b, __p) __arm_vrmulhq_m_s8(__inactive, __a, __b, __p)
- #define vrmulhq_m_s32(__inactive, __a, __b, __p) __arm_vrmulhq_m_s32(__inactive, __a, __b, __p)
- #define vrmulhq_m_s16(__inactive, __a, __b, __p) __arm_vrmulhq_m_s16(__inactive, __a, __b, __p)
- #define vrmulhq_m_u8(__inactive, __a, __b, __p) __arm_vrmulhq_m_u8(__inactive, __a, __b, __p)
- #define vrmulhq_m_u32(__inactive, __a, __b, __p) __arm_vrmulhq_m_u32(__inactive, __a, __b, __p)
- #define vrmulhq_m_u16(__inactive, __a, __b, __p) __arm_vrmulhq_m_u16(__inactive, __a, __b, __p)
- #define vrshlq_m_s8(__inactive, __a, __b, __p) __arm_vrshlq_m_s8(__inactive, __a, __b, __p)
- #define vrshlq_m_s32(__inactive, __a, __b, __p) __arm_vrshlq_m_s32(__inactive, __a, __b, __p)
- #define vrshlq_m_s16(__inactive, __a, __b, __p) __arm_vrshlq_m_s16(__inactive, __a, __b, __p)
- #define vrshlq_m_u8(__inactive, __a, __b, __p) __arm_vrshlq_m_u8(__inactive, __a, __b, __p)
- #define vrshlq_m_u32(__inactive, __a, __b, __p) __arm_vrshlq_m_u32(__inactive, __a, __b, __p)
- #define vrshlq_m_u16(__inactive, __a, __b, __p) __arm_vrshlq_m_u16(__inactive, __a, __b, __p)
- #define vrshrq_m_n_s8(__inactive, __a,  __imm, __p) __arm_vrshrq_m_n_s8(__inactive, __a,  __imm, __p)
- #define vrshrq_m_n_s32(__inactive, __a,  __imm, __p) __arm_vrshrq_m_n_s32(__inactive, __a,  __imm, __p)
- #define vrshrq_m_n_s16(__inactive, __a,  __imm, __p) __arm_vrshrq_m_n_s16(__inactive, __a,  __imm, __p)
- #define vrshrq_m_n_u8(__inactive, __a,  __imm, __p) __arm_vrshrq_m_n_u8(__inactive, __a,  __imm, __p)
- #define vrshrq_m_n_u32(__inactive, __a,  __imm, __p) __arm_vrshrq_m_n_u32(__inactive, __a,  __imm, __p)
- #define vrshrq_m_n_u16(__inactive, __a,  __imm, __p) __arm_vrshrq_m_n_u16(__inactive, __a,  __imm, __p)
- #define vshlq_m_n_s8(__inactive, __a,  __imm, __p) __arm_vshlq_m_n_s8(__inactive, __a,  __imm, __p)
- #define vshlq_m_n_s32(__inactive, __a,  __imm, __p) __arm_vshlq_m_n_s32(__inactive, __a,  __imm, __p)
- #define vshlq_m_n_s16(__inactive, __a,  __imm, __p) __arm_vshlq_m_n_s16(__inactive, __a,  __imm, __p)
- #define vshlq_m_n_u8(__inactive, __a,  __imm, __p) __arm_vshlq_m_n_u8(__inactive, __a,  __imm, __p)
- #define vshlq_m_n_u32(__inactive, __a,  __imm, __p) __arm_vshlq_m_n_u32(__inactive, __a,  __imm, __p)
- #define vshlq_m_n_u16(__inactive, __a,  __imm, __p) __arm_vshlq_m_n_u16(__inactive, __a,  __imm, __p)
- #define vshrq_m_n_s8(__inactive, __a,  __imm, __p) __arm_vshrq_m_n_s8(__inactive, __a,  __imm, __p)
- #define vshrq_m_n_s32(__inactive, __a,  __imm, __p) __arm_vshrq_m_n_s32(__inactive, __a,  __imm, __p)
- #define vshrq_m_n_s16(__inactive, __a,  __imm, __p) __arm_vshrq_m_n_s16(__inactive, __a,  __imm, __p)
- #define vshrq_m_n_u8(__inactive, __a,  __imm, __p) __arm_vshrq_m_n_u8(__inactive, __a,  __imm, __p)
- #define vshrq_m_n_u32(__inactive, __a,  __imm, __p) __arm_vshrq_m_n_u32(__inactive, __a,  __imm, __p)
- #define vshrq_m_n_u16(__inactive, __a,  __imm, __p) __arm_vshrq_m_n_u16(__inactive, __a,  __imm, __p)
- #define vsliq_m_n_s8(__a, __b,  __imm, __p) __arm_vsliq_m_n_s8(__a, __b,  __imm, __p)
- #define vsliq_m_n_s32(__a, __b,  __imm, __p) __arm_vsliq_m_n_s32(__a, __b,  __imm, __p)
- #define vsliq_m_n_s16(__a, __b,  __imm, __p) __arm_vsliq_m_n_s16(__a, __b,  __imm, __p)
- #define vsliq_m_n_u8(__a, __b,  __imm, __p) __arm_vsliq_m_n_u8(__a, __b,  __imm, __p)
- #define vsliq_m_n_u32(__a, __b,  __imm, __p) __arm_vsliq_m_n_u32(__a, __b,  __imm, __p)
- #define vsliq_m_n_u16(__a, __b,  __imm, __p) __arm_vsliq_m_n_u16(__a, __b,  __imm, __p)
- #define vsubq_m_n_s8(__inactive, __a, __b, __p) __arm_vsubq_m_n_s8(__inactive, __a, __b, __p)
- #define vsubq_m_n_s32(__inactive, __a, __b, __p) __arm_vsubq_m_n_s32(__inactive, __a, __b, __p)
- #define vsubq_m_n_s16(__inactive, __a, __b, __p) __arm_vsubq_m_n_s16(__inactive, __a, __b, __p)
- #define vsubq_m_n_u8(__inactive, __a, __b, __p) __arm_vsubq_m_n_u8(__inactive, __a, __b, __p)
- #define vsubq_m_n_u32(__inactive, __a, __b, __p) __arm_vsubq_m_n_u32(__inactive, __a, __b, __p)
- #define vsubq_m_n_u16(__inactive, __a, __b, __p) __arm_vsubq_m_n_u16(__inactive, __a, __b, __p)
- #define vmlaldavaq_p_s32(__a, __b, __c, __p) __arm_vmlaldavaq_p_s32(__a, __b, __c, __p)
- #define vmlaldavaq_p_s16(__a, __b, __c, __p) __arm_vmlaldavaq_p_s16(__a, __b, __c, __p)
- #define vmlaldavaq_p_u32(__a, __b, __c, __p) __arm_vmlaldavaq_p_u32(__a, __b, __c, __p)
- #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 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)
- #define vmlsldavaxq_p_s16(__a, __b, __c, __p) __arm_vmlsldavaxq_p_s16(__a, __b, __c, __p)
- #define vmullbq_poly_m_p8(__inactive, __a, __b, __p) __arm_vmullbq_poly_m_p8(__inactive, __a, __b, __p)
- #define vmullbq_poly_m_p16(__inactive, __a, __b, __p) __arm_vmullbq_poly_m_p16(__inactive, __a, __b, __p)
- #define vmulltq_poly_m_p8(__inactive, __a, __b, __p) __arm_vmulltq_poly_m_p8(__inactive, __a, __b, __p)
- #define vmulltq_poly_m_p16(__inactive, __a, __b, __p) __arm_vmulltq_poly_m_p16(__inactive, __a, __b, __p)
- #define vqdmullbq_m_n_s32(__inactive, __a, __b, __p) __arm_vqdmullbq_m_n_s32(__inactive, __a, __b, __p)
- #define vqdmullbq_m_n_s16(__inactive, __a, __b, __p) __arm_vqdmullbq_m_n_s16(__inactive, __a, __b, __p)
- #define vqdmullbq_m_s32(__inactive, __a, __b, __p) __arm_vqdmullbq_m_s32(__inactive, __a, __b, __p)
- #define vqdmullbq_m_s16(__inactive, __a, __b, __p) __arm_vqdmullbq_m_s16(__inactive, __a, __b, __p)
- #define vqdmulltq_m_n_s32(__inactive, __a, __b, __p) __arm_vqdmulltq_m_n_s32(__inactive, __a, __b, __p)
- #define vqdmulltq_m_n_s16(__inactive, __a, __b, __p) __arm_vqdmulltq_m_n_s16(__inactive, __a, __b, __p)
- #define vqdmulltq_m_s32(__inactive, __a, __b, __p) __arm_vqdmulltq_m_s32(__inactive, __a, __b, __p)
- #define vqdmulltq_m_s16(__inactive, __a, __b, __p) __arm_vqdmulltq_m_s16(__inactive, __a, __b, __p)
- #define vqrshrnbq_m_n_s32(__a, __b,  __imm, __p) __arm_vqrshrnbq_m_n_s32(__a, __b,  __imm, __p)
- #define vqrshrnbq_m_n_s16(__a, __b,  __imm, __p) __arm_vqrshrnbq_m_n_s16(__a, __b,  __imm, __p)
- #define vqrshrnbq_m_n_u32(__a, __b,  __imm, __p) __arm_vqrshrnbq_m_n_u32(__a, __b,  __imm, __p)
- #define vqrshrnbq_m_n_u16(__a, __b,  __imm, __p) __arm_vqrshrnbq_m_n_u16(__a, __b,  __imm, __p)
- #define vqrshrntq_m_n_s32(__a, __b,  __imm, __p) __arm_vqrshrntq_m_n_s32(__a, __b,  __imm, __p)
- #define vqrshrntq_m_n_s16(__a, __b,  __imm, __p) __arm_vqrshrntq_m_n_s16(__a, __b,  __imm, __p)
- #define vqrshrntq_m_n_u32(__a, __b,  __imm, __p) __arm_vqrshrntq_m_n_u32(__a, __b,  __imm, __p)
- #define vqrshrntq_m_n_u16(__a, __b,  __imm, __p) __arm_vqrshrntq_m_n_u16(__a, __b,  __imm, __p)
- #define vqrshrunbq_m_n_s32(__a, __b,  __imm, __p) __arm_vqrshrunbq_m_n_s32(__a, __b,  __imm, __p)
- #define vqrshrunbq_m_n_s16(__a, __b,  __imm, __p) __arm_vqrshrunbq_m_n_s16(__a, __b,  __imm, __p)
- #define vqrshruntq_m_n_s32(__a, __b,  __imm, __p) __arm_vqrshruntq_m_n_s32(__a, __b,  __imm, __p)
- #define vqrshruntq_m_n_s16(__a, __b,  __imm, __p) __arm_vqrshruntq_m_n_s16(__a, __b,  __imm, __p)
- #define vqshrnbq_m_n_s32(__a, __b,  __imm, __p) __arm_vqshrnbq_m_n_s32(__a, __b,  __imm, __p)
- #define vqshrnbq_m_n_s16(__a, __b,  __imm, __p) __arm_vqshrnbq_m_n_s16(__a, __b,  __imm, __p)
- #define vqshrnbq_m_n_u32(__a, __b,  __imm, __p) __arm_vqshrnbq_m_n_u32(__a, __b,  __imm, __p)
- #define vqshrnbq_m_n_u16(__a, __b,  __imm, __p) __arm_vqshrnbq_m_n_u16(__a, __b,  __imm, __p)
- #define vqshrntq_m_n_s32(__a, __b,  __imm, __p) __arm_vqshrntq_m_n_s32(__a, __b,  __imm, __p)
- #define vqshrntq_m_n_s16(__a, __b,  __imm, __p) __arm_vqshrntq_m_n_s16(__a, __b,  __imm, __p)
- #define vqshrntq_m_n_u32(__a, __b,  __imm, __p) __arm_vqshrntq_m_n_u32(__a, __b,  __imm, __p)
- #define vqshrntq_m_n_u16(__a, __b,  __imm, __p) __arm_vqshrntq_m_n_u16(__a, __b,  __imm, __p)
- #define vqshrunbq_m_n_s32(__a, __b,  __imm, __p) __arm_vqshrunbq_m_n_s32(__a, __b,  __imm, __p)
- #define vqshrunbq_m_n_s16(__a, __b,  __imm, __p) __arm_vqshrunbq_m_n_s16(__a, __b,  __imm, __p)
- #define vqshruntq_m_n_s32(__a, __b,  __imm, __p) __arm_vqshruntq_m_n_s32(__a, __b,  __imm, __p)
- #define vqshruntq_m_n_s16(__a, __b,  __imm, __p) __arm_vqshruntq_m_n_s16(__a, __b,  __imm, __p)
- #define vrmlaldavhaq_p_s32(__a, __b, __c, __p) __arm_vrmlaldavhaq_p_s32(__a, __b, __c, __p)
- #define vrmlaldavhaq_p_u32(__a, __b, __c, __p) __arm_vrmlaldavhaq_p_u32(__a, __b, __c, __p)
- #define vrmlaldavhaxq_p_s32(__a, __b, __c, __p) __arm_vrmlaldavhaxq_p_s32(__a, __b, __c, __p)
- #define vrmlsldavhaq_p_s32(__a, __b, __c, __p) __arm_vrmlsldavhaq_p_s32(__a, __b, __c, __p)
- #define vrmlsldavhaxq_p_s32(__a, __b, __c, __p) __arm_vrmlsldavhaxq_p_s32(__a, __b, __c, __p)
- #define vrshrnbq_m_n_s32(__a, __b,  __imm, __p) __arm_vrshrnbq_m_n_s32(__a, __b,  __imm, __p)
- #define vrshrnbq_m_n_s16(__a, __b,  __imm, __p) __arm_vrshrnbq_m_n_s16(__a, __b,  __imm, __p)
- #define vrshrnbq_m_n_u32(__a, __b,  __imm, __p) __arm_vrshrnbq_m_n_u32(__a, __b,  __imm, __p)
- #define vrshrnbq_m_n_u16(__a, __b,  __imm, __p) __arm_vrshrnbq_m_n_u16(__a, __b,  __imm, __p)
- #define vrshrntq_m_n_s32(__a, __b,  __imm, __p) __arm_vrshrntq_m_n_s32(__a, __b,  __imm, __p)
- #define vrshrntq_m_n_s16(__a, __b,  __imm, __p) __arm_vrshrntq_m_n_s16(__a, __b,  __imm, __p)
- #define vrshrntq_m_n_u32(__a, __b,  __imm, __p) __arm_vrshrntq_m_n_u32(__a, __b,  __imm, __p)
- #define vrshrntq_m_n_u16(__a, __b,  __imm, __p) __arm_vrshrntq_m_n_u16(__a, __b,  __imm, __p)
- #define vshllbq_m_n_s8(__inactive, __a,  __imm, __p) __arm_vshllbq_m_n_s8(__inactive, __a,  __imm, __p)
- #define vshllbq_m_n_s16(__inactive, __a,  __imm, __p) __arm_vshllbq_m_n_s16(__inactive, __a,  __imm, __p)
- #define vshllbq_m_n_u8(__inactive, __a,  __imm, __p) __arm_vshllbq_m_n_u8(__inactive, __a,  __imm, __p)
- #define vshllbq_m_n_u16(__inactive, __a,  __imm, __p) __arm_vshllbq_m_n_u16(__inactive, __a,  __imm, __p)
- #define vshlltq_m_n_s8(__inactive, __a,  __imm, __p) __arm_vshlltq_m_n_s8(__inactive, __a,  __imm, __p)
- #define vshlltq_m_n_s16(__inactive, __a,  __imm, __p) __arm_vshlltq_m_n_s16(__inactive, __a,  __imm, __p)
- #define vshlltq_m_n_u8(__inactive, __a,  __imm, __p) __arm_vshlltq_m_n_u8(__inactive, __a,  __imm, __p)
- #define vshlltq_m_n_u16(__inactive, __a,  __imm, __p) __arm_vshlltq_m_n_u16(__inactive, __a,  __imm, __p)
- #define vshrnbq_m_n_s32(__a, __b,  __imm, __p) __arm_vshrnbq_m_n_s32(__a, __b,  __imm, __p)
- #define vshrnbq_m_n_s16(__a, __b,  __imm, __p) __arm_vshrnbq_m_n_s16(__a, __b,  __imm, __p)
- #define vshrnbq_m_n_u32(__a, __b,  __imm, __p) __arm_vshrnbq_m_n_u32(__a, __b,  __imm, __p)
- #define vshrnbq_m_n_u16(__a, __b,  __imm, __p) __arm_vshrnbq_m_n_u16(__a, __b,  __imm, __p)
- #define vshrntq_m_n_s32(__a, __b,  __imm, __p) __arm_vshrntq_m_n_s32(__a, __b,  __imm, __p)
- #define vshrntq_m_n_s16(__a, __b,  __imm, __p) __arm_vshrntq_m_n_s16(__a, __b,  __imm, __p)
- #define vshrntq_m_n_u32(__a, __b,  __imm, __p) __arm_vshrntq_m_n_u32(__a, __b,  __imm, __p)
- #define vshrntq_m_n_u16(__a, __b,  __imm, __p) __arm_vshrntq_m_n_u16(__a, __b,  __imm, __p)
- #define vabdq_m_f32(__inactive, __a, __b, __p) __arm_vabdq_m_f32(__inactive, __a, __b, __p)
- #define vabdq_m_f16(__inactive, __a, __b, __p) __arm_vabdq_m_f16(__inactive, __a, __b, __p)
- #define vaddq_m_f32(__inactive, __a, __b, __p) __arm_vaddq_m_f32(__inactive, __a, __b, __p)
- #define vaddq_m_f16(__inactive, __a, __b, __p) __arm_vaddq_m_f16(__inactive, __a, __b, __p)
- #define vaddq_m_n_f32(__inactive, __a, __b, __p) __arm_vaddq_m_n_f32(__inactive, __a, __b, __p)
- #define vaddq_m_n_f16(__inactive, __a, __b, __p) __arm_vaddq_m_n_f16(__inactive, __a, __b, __p)
- #define vandq_m_f32(__inactive, __a, __b, __p) __arm_vandq_m_f32(__inactive, __a, __b, __p)
- #define vandq_m_f16(__inactive, __a, __b, __p) __arm_vandq_m_f16(__inactive, __a, __b, __p)
  #define vbicq_m_f32(__inactive, __a, __b, __p) __arm_vbicq_m_f32(__inactive, __a, __b, __p)
  #define vbicq_m_f16(__inactive, __a, __b, __p) __arm_vbicq_m_f16(__inactive, __a, __b, __p)
- #define vbrsrq_m_n_f32(__inactive, __a, __b, __p) __arm_vbrsrq_m_n_f32(__inactive, __a, __b, __p)
- #define vbrsrq_m_n_f16(__inactive, __a, __b, __p) __arm_vbrsrq_m_n_f16(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m_f32(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m_f32(__inactive, __a, __b, __p)
- #define vcaddq_rot270_m_f16(__inactive, __a, __b, __p) __arm_vcaddq_rot270_m_f16(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m_f32(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m_f32(__inactive, __a, __b, __p)
- #define vcaddq_rot90_m_f16(__inactive, __a, __b, __p) __arm_vcaddq_rot90_m_f16(__inactive, __a, __b, __p)
- #define vcmlaq_m_f32(__a, __b, __c, __p) __arm_vcmlaq_m_f32(__a, __b, __c, __p)
- #define vcmlaq_m_f16(__a, __b, __c, __p) __arm_vcmlaq_m_f16(__a, __b, __c, __p)
- #define vcmlaq_rot180_m_f32(__a, __b, __c, __p) __arm_vcmlaq_rot180_m_f32(__a, __b, __c, __p)
- #define vcmlaq_rot180_m_f16(__a, __b, __c, __p) __arm_vcmlaq_rot180_m_f16(__a, __b, __c, __p)
- #define vcmlaq_rot270_m_f32(__a, __b, __c, __p) __arm_vcmlaq_rot270_m_f32(__a, __b, __c, __p)
- #define vcmlaq_rot270_m_f16(__a, __b, __c, __p) __arm_vcmlaq_rot270_m_f16(__a, __b, __c, __p)
- #define vcmlaq_rot90_m_f32(__a, __b, __c, __p) __arm_vcmlaq_rot90_m_f32(__a, __b, __c, __p)
- #define vcmlaq_rot90_m_f16(__a, __b, __c, __p) __arm_vcmlaq_rot90_m_f16(__a, __b, __c, __p)
- #define vcmulq_m_f32(__inactive, __a, __b, __p) __arm_vcmulq_m_f32(__inactive, __a, __b, __p)
- #define vcmulq_m_f16(__inactive, __a, __b, __p) __arm_vcmulq_m_f16(__inactive, __a, __b, __p)
- #define vcmulq_rot180_m_f32(__inactive, __a, __b, __p) __arm_vcmulq_rot180_m_f32(__inactive, __a, __b, __p)
- #define vcmulq_rot180_m_f16(__inactive, __a, __b, __p) __arm_vcmulq_rot180_m_f16(__inactive, __a, __b, __p)
- #define vcmulq_rot270_m_f32(__inactive, __a, __b, __p) __arm_vcmulq_rot270_m_f32(__inactive, __a, __b, __p)
- #define vcmulq_rot270_m_f16(__inactive, __a, __b, __p) __arm_vcmulq_rot270_m_f16(__inactive, __a, __b, __p)
- #define vcmulq_rot90_m_f32(__inactive, __a, __b, __p) __arm_vcmulq_rot90_m_f32(__inactive, __a, __b, __p)
- #define vcmulq_rot90_m_f16(__inactive, __a, __b, __p) __arm_vcmulq_rot90_m_f16(__inactive, __a, __b, __p)
  #define vcvtq_m_n_s32_f32(__inactive, __a,  __imm6, __p) __arm_vcvtq_m_n_s32_f32(__inactive, __a,  __imm6, __p)
  #define vcvtq_m_n_s16_f16(__inactive, __a,  __imm6, __p) __arm_vcvtq_m_n_s16_f16(__inactive, __a,  __imm6, __p)
  #define vcvtq_m_n_u32_f32(__inactive, __a,  __imm6, __p) __arm_vcvtq_m_n_u32_f32(__inactive, __a,  __imm6, __p)
  #define vcvtq_m_n_u16_f16(__inactive, __a,  __imm6, __p) __arm_vcvtq_m_n_u16_f16(__inactive, __a,  __imm6, __p)
- #define veorq_m_f32(__inactive, __a, __b, __p) __arm_veorq_m_f32(__inactive, __a, __b, __p)
- #define veorq_m_f16(__inactive, __a, __b, __p) __arm_veorq_m_f16(__inactive, __a, __b, __p)
- #define vfmaq_m_f32(__a, __b, __c, __p) __arm_vfmaq_m_f32(__a, __b, __c, __p)
- #define vfmaq_m_f16(__a, __b, __c, __p) __arm_vfmaq_m_f16(__a, __b, __c, __p)
- #define vfmaq_m_n_f32(__a, __b, __c, __p) __arm_vfmaq_m_n_f32(__a, __b, __c, __p)
- #define vfmaq_m_n_f16(__a, __b, __c, __p) __arm_vfmaq_m_n_f16(__a, __b, __c, __p)
- #define vfmasq_m_n_f32(__a, __b, __c, __p) __arm_vfmasq_m_n_f32(__a, __b, __c, __p)
- #define vfmasq_m_n_f16(__a, __b, __c, __p) __arm_vfmasq_m_n_f16(__a, __b, __c, __p)
- #define vfmsq_m_f32(__a, __b, __c, __p) __arm_vfmsq_m_f32(__a, __b, __c, __p)
- #define vfmsq_m_f16(__a, __b, __c, __p) __arm_vfmsq_m_f16(__a, __b, __c, __p)
- #define vmaxnmq_m_f32(__inactive, __a, __b, __p) __arm_vmaxnmq_m_f32(__inactive, __a, __b, __p)
- #define vmaxnmq_m_f16(__inactive, __a, __b, __p) __arm_vmaxnmq_m_f16(__inactive, __a, __b, __p)
- #define vminnmq_m_f32(__inactive, __a, __b, __p) __arm_vminnmq_m_f32(__inactive, __a, __b, __p)
- #define vminnmq_m_f16(__inactive, __a, __b, __p) __arm_vminnmq_m_f16(__inactive, __a, __b, __p)
- #define vmulq_m_f32(__inactive, __a, __b, __p) __arm_vmulq_m_f32(__inactive, __a, __b, __p)
- #define vmulq_m_f16(__inactive, __a, __b, __p) __arm_vmulq_m_f16(__inactive, __a, __b, __p)
- #define vmulq_m_n_f32(__inactive, __a, __b, __p) __arm_vmulq_m_n_f32(__inactive, __a, __b, __p)
- #define vmulq_m_n_f16(__inactive, __a, __b, __p) __arm_vmulq_m_n_f16(__inactive, __a, __b, __p)
  #define vornq_m_f32(__inactive, __a, __b, __p) __arm_vornq_m_f32(__inactive, __a, __b, __p)
  #define vornq_m_f16(__inactive, __a, __b, __p) __arm_vornq_m_f16(__inactive, __a, __b, __p)
- #define vorrq_m_f32(__inactive, __a, __b, __p) __arm_vorrq_m_f32(__inactive, __a, __b, __p)
- #define vorrq_m_f16(__inactive, __a, __b, __p) __arm_vorrq_m_f16(__inactive, __a, __b, __p)
- #define vsubq_m_f32(__inactive, __a, __b, __p) __arm_vsubq_m_f32(__inactive, __a, __b, __p)
- #define vsubq_m_f16(__inactive, __a, __b, __p) __arm_vsubq_m_f16(__inactive, __a, __b, __p)
- #define vsubq_m_n_f32(__inactive, __a, __b, __p) __arm_vsubq_m_n_f32(__inactive, __a, __b, __p)
- #define vsubq_m_n_f16(__inactive, __a, __b, __p) __arm_vsubq_m_n_f16(__inactive, __a, __b, __p)
  #define vstrbq_s8( __addr, __value) __arm_vstrbq_s8( __addr, __value)
  #define vstrbq_u8( __addr, __value) __arm_vstrbq_u8( __addr, __value)
  #define vstrbq_u16( __addr, __value) __arm_vstrbq_u16( __addr, __value)
--- 238,293 ----
***************
*** 2211,2222 ****
  #define vldrbq_z_u32(__base, __p) __arm_vldrbq_z_u32(__base, __p)
  #define vldrwq_gather_base_z_u32(__addr,  __offset, __p) __arm_vldrwq_gather_base_z_u32(__addr,  __offset, __p)
  #define vldrwq_gather_base_z_s32(__addr,  __offset, __p) __arm_vldrwq_gather_base_z_s32(__addr,  __offset, __p)
- #define vld1q_s8(__base) __arm_vld1q_s8(__base)
- #define vld1q_s32(__base) __arm_vld1q_s32(__base)
- #define vld1q_s16(__base) __arm_vld1q_s16(__base)
- #define vld1q_u8(__base) __arm_vld1q_u8(__base)
- #define vld1q_u32(__base) __arm_vld1q_u32(__base)
- #define vld1q_u16(__base) __arm_vld1q_u16(__base)
  #define vldrhq_gather_offset_s32(__base, __offset) __arm_vldrhq_gather_offset_s32(__base, __offset)
  #define vldrhq_gather_offset_s16(__base, __offset) __arm_vldrhq_gather_offset_s16(__base, __offset)
  #define vldrhq_gather_offset_u32(__base, __offset) __arm_vldrhq_gather_offset_u32(__base, __offset)
--- 344,349 ----
***************
*** 2245,2252 ****
  #define vldrwq_u32(__base) __arm_vldrwq_u32(__base)
  #define vldrwq_z_s32(__base, __p) __arm_vldrwq_z_s32(__base, __p)
  #define vldrwq_z_u32(__base, __p) __arm_vldrwq_z_u32(__base, __p)
- #define vld1q_f32(__base) __arm_vld1q_f32(__base)
- #define vld1q_f16(__base) __arm_vld1q_f16(__base)
  #define vldrhq_f16(__base) __arm_vldrhq_f16(__base)
  #define vldrhq_z_f16(__base, __p) __arm_vldrhq_z_f16(__base, __p)
  #define vldrwq_f32(__base) __arm_vldrwq_f32(__base)
--- 372,377 ----
***************
*** 2281,2294 ****
  #define vldrwq_gather_shifted_offset_z_f32(__base, __offset, __p) __arm_vldrwq_gather_shifted_offset_z_f32(__base, __offset, __p)
  #define vldrwq_gather_shifted_offset_z_s32(__base, __offset, __p) __arm_vldrwq_gather_shifted_offset_z_s32(__base, __offset, __p)
  #define vldrwq_gather_shifted_offset_z_u32(__base, __offset, __p) __arm_vldrwq_gather_shifted_offset_z_u32(__base, __offset, __p)
- #define vst1q_f32(__addr, __value) __arm_vst1q_f32(__addr, __value)
- #define vst1q_f16(__addr, __value) __arm_vst1q_f16(__addr, __value)
- #define vst1q_s8(__addr, __value) __arm_vst1q_s8(__addr, __value)
- #define vst1q_s32(__addr, __value) __arm_vst1q_s32(__addr, __value)
- #define vst1q_s16(__addr, __value) __arm_vst1q_s16(__addr, __value)
- #define vst1q_u8(__addr, __value) __arm_vst1q_u8(__addr, __value)
- #define vst1q_u32(__addr, __value) __arm_vst1q_u32(__addr, __value)
- #define vst1q_u16(__addr, __value) __arm_vst1q_u16(__addr, __value)
  #define vstrhq_f16(__addr, __value) __arm_vstrhq_f16(__addr, __value)
  #define vstrhq_scatter_offset_s32( __base, __offset, __value) __arm_vstrhq_scatter_offset_s32( __base, __offset, __value)
  #define vstrhq_scatter_offset_s16( __base, __offset, __value) __arm_vstrhq_scatter_offset_s16( __base, __offset, __value)
--- 406,411 ----
***************
*** 2351,2454 ****
  #define vstrwq_scatter_shifted_offset_p_u32(__base, __offset, __value, __p) __arm_vstrwq_scatter_shifted_offset_p_u32(__base, __offset, __value, __p)
  #define vstrwq_scatter_shifted_offset_s32(__base, __offset, __value) __arm_vstrwq_scatter_shifted_offset_s32(__base, __offset, __value)
  #define vstrwq_scatter_shifted_offset_u32(__base, __offset, __value) __arm_vstrwq_scatter_shifted_offset_u32(__base, __offset, __value)
- #define vaddq_s8(__a, __b) __arm_vaddq_s8(__a, __b)
- #define vaddq_s16(__a, __b) __arm_vaddq_s16(__a, __b)
- #define vaddq_s32(__a, __b) __arm_vaddq_s32(__a, __b)
- #define vaddq_u8(__a, __b) __arm_vaddq_u8(__a, __b)
- #define vaddq_u16(__a, __b) __arm_vaddq_u16(__a, __b)
- #define vaddq_u32(__a, __b) __arm_vaddq_u32(__a, __b)
- #define vaddq_f16(__a, __b) __arm_vaddq_f16(__a, __b)
- #define vaddq_f32(__a, __b) __arm_vaddq_f32(__a, __b)
- #define vreinterpretq_s16_s32(__a) __arm_vreinterpretq_s16_s32(__a)
- #define vreinterpretq_s16_s64(__a) __arm_vreinterpretq_s16_s64(__a)
- #define vreinterpretq_s16_s8(__a) __arm_vreinterpretq_s16_s8(__a)
- #define vreinterpretq_s16_u16(__a) __arm_vreinterpretq_s16_u16(__a)
- #define vreinterpretq_s16_u32(__a) __arm_vreinterpretq_s16_u32(__a)
- #define vreinterpretq_s16_u64(__a) __arm_vreinterpretq_s16_u64(__a)
- #define vreinterpretq_s16_u8(__a) __arm_vreinterpretq_s16_u8(__a)
- #define vreinterpretq_s32_s16(__a) __arm_vreinterpretq_s32_s16(__a)
- #define vreinterpretq_s32_s64(__a) __arm_vreinterpretq_s32_s64(__a)
- #define vreinterpretq_s32_s8(__a) __arm_vreinterpretq_s32_s8(__a)
- #define vreinterpretq_s32_u16(__a) __arm_vreinterpretq_s32_u16(__a)
- #define vreinterpretq_s32_u32(__a) __arm_vreinterpretq_s32_u32(__a)
- #define vreinterpretq_s32_u64(__a) __arm_vreinterpretq_s32_u64(__a)
- #define vreinterpretq_s32_u8(__a) __arm_vreinterpretq_s32_u8(__a)
- #define vreinterpretq_s64_s16(__a) __arm_vreinterpretq_s64_s16(__a)
- #define vreinterpretq_s64_s32(__a) __arm_vreinterpretq_s64_s32(__a)
- #define vreinterpretq_s64_s8(__a) __arm_vreinterpretq_s64_s8(__a)
- #define vreinterpretq_s64_u16(__a) __arm_vreinterpretq_s64_u16(__a)
- #define vreinterpretq_s64_u32(__a) __arm_vreinterpretq_s64_u32(__a)
- #define vreinterpretq_s64_u64(__a) __arm_vreinterpretq_s64_u64(__a)
- #define vreinterpretq_s64_u8(__a) __arm_vreinterpretq_s64_u8(__a)
- #define vreinterpretq_s8_s16(__a) __arm_vreinterpretq_s8_s16(__a)
- #define vreinterpretq_s8_s32(__a) __arm_vreinterpretq_s8_s32(__a)
- #define vreinterpretq_s8_s64(__a) __arm_vreinterpretq_s8_s64(__a)
- #define vreinterpretq_s8_u16(__a) __arm_vreinterpretq_s8_u16(__a)
- #define vreinterpretq_s8_u32(__a) __arm_vreinterpretq_s8_u32(__a)
- #define vreinterpretq_s8_u64(__a) __arm_vreinterpretq_s8_u64(__a)
- #define vreinterpretq_s8_u8(__a) __arm_vreinterpretq_s8_u8(__a)
- #define vreinterpretq_u16_s16(__a) __arm_vreinterpretq_u16_s16(__a)
- #define vreinterpretq_u16_s32(__a) __arm_vreinterpretq_u16_s32(__a)
- #define vreinterpretq_u16_s64(__a) __arm_vreinterpretq_u16_s64(__a)
- #define vreinterpretq_u16_s8(__a) __arm_vreinterpretq_u16_s8(__a)
- #define vreinterpretq_u16_u32(__a) __arm_vreinterpretq_u16_u32(__a)
- #define vreinterpretq_u16_u64(__a) __arm_vreinterpretq_u16_u64(__a)
- #define vreinterpretq_u16_u8(__a) __arm_vreinterpretq_u16_u8(__a)
- #define vreinterpretq_u32_s16(__a) __arm_vreinterpretq_u32_s16(__a)
- #define vreinterpretq_u32_s32(__a) __arm_vreinterpretq_u32_s32(__a)
- #define vreinterpretq_u32_s64(__a) __arm_vreinterpretq_u32_s64(__a)
- #define vreinterpretq_u32_s8(__a) __arm_vreinterpretq_u32_s8(__a)
- #define vreinterpretq_u32_u16(__a) __arm_vreinterpretq_u32_u16(__a)
- #define vreinterpretq_u32_u64(__a) __arm_vreinterpretq_u32_u64(__a)
- #define vreinterpretq_u32_u8(__a) __arm_vreinterpretq_u32_u8(__a)
- #define vreinterpretq_u64_s16(__a) __arm_vreinterpretq_u64_s16(__a)
- #define vreinterpretq_u64_s32(__a) __arm_vreinterpretq_u64_s32(__a)
- #define vreinterpretq_u64_s64(__a) __arm_vreinterpretq_u64_s64(__a)
- #define vreinterpretq_u64_s8(__a) __arm_vreinterpretq_u64_s8(__a)
- #define vreinterpretq_u64_u16(__a) __arm_vreinterpretq_u64_u16(__a)
- #define vreinterpretq_u64_u32(__a) __arm_vreinterpretq_u64_u32(__a)
- #define vreinterpretq_u64_u8(__a) __arm_vreinterpretq_u64_u8(__a)
- #define vreinterpretq_u8_s16(__a) __arm_vreinterpretq_u8_s16(__a)
- #define vreinterpretq_u8_s32(__a) __arm_vreinterpretq_u8_s32(__a)
- #define vreinterpretq_u8_s64(__a) __arm_vreinterpretq_u8_s64(__a)
- #define vreinterpretq_u8_s8(__a) __arm_vreinterpretq_u8_s8(__a)
- #define vreinterpretq_u8_u16(__a) __arm_vreinterpretq_u8_u16(__a)
- #define vreinterpretq_u8_u32(__a) __arm_vreinterpretq_u8_u32(__a)
- #define vreinterpretq_u8_u64(__a) __arm_vreinterpretq_u8_u64(__a)
- #define vreinterpretq_s32_f16(__a) __arm_vreinterpretq_s32_f16(__a)
- #define vreinterpretq_s32_f32(__a) __arm_vreinterpretq_s32_f32(__a)
- #define vreinterpretq_u16_f16(__a) __arm_vreinterpretq_u16_f16(__a)
- #define vreinterpretq_u16_f32(__a) __arm_vreinterpretq_u16_f32(__a)
- #define vreinterpretq_u32_f16(__a) __arm_vreinterpretq_u32_f16(__a)
- #define vreinterpretq_u32_f32(__a) __arm_vreinterpretq_u32_f32(__a)
- #define vreinterpretq_u64_f16(__a) __arm_vreinterpretq_u64_f16(__a)
- #define vreinterpretq_u64_f32(__a) __arm_vreinterpretq_u64_f32(__a)
- #define vreinterpretq_u8_f16(__a) __arm_vreinterpretq_u8_f16(__a)
- #define vreinterpretq_u8_f32(__a) __arm_vreinterpretq_u8_f32(__a)
- #define vreinterpretq_f16_f32(__a) __arm_vreinterpretq_f16_f32(__a)
- #define vreinterpretq_f16_s16(__a) __arm_vreinterpretq_f16_s16(__a)
- #define vreinterpretq_f16_s32(__a) __arm_vreinterpretq_f16_s32(__a)
- #define vreinterpretq_f16_s64(__a) __arm_vreinterpretq_f16_s64(__a)
- #define vreinterpretq_f16_s8(__a) __arm_vreinterpretq_f16_s8(__a)
- #define vreinterpretq_f16_u16(__a) __arm_vreinterpretq_f16_u16(__a)
- #define vreinterpretq_f16_u32(__a) __arm_vreinterpretq_f16_u32(__a)
- #define vreinterpretq_f16_u64(__a) __arm_vreinterpretq_f16_u64(__a)
- #define vreinterpretq_f16_u8(__a) __arm_vreinterpretq_f16_u8(__a)
- #define vreinterpretq_f32_f16(__a) __arm_vreinterpretq_f32_f16(__a)
- #define vreinterpretq_f32_s16(__a) __arm_vreinterpretq_f32_s16(__a)
- #define vreinterpretq_f32_s32(__a) __arm_vreinterpretq_f32_s32(__a)
- #define vreinterpretq_f32_s64(__a) __arm_vreinterpretq_f32_s64(__a)
- #define vreinterpretq_f32_s8(__a) __arm_vreinterpretq_f32_s8(__a)
- #define vreinterpretq_f32_u16(__a) __arm_vreinterpretq_f32_u16(__a)
- #define vreinterpretq_f32_u32(__a) __arm_vreinterpretq_f32_u32(__a)
- #define vreinterpretq_f32_u64(__a) __arm_vreinterpretq_f32_u64(__a)
- #define vreinterpretq_f32_u8(__a) __arm_vreinterpretq_f32_u8(__a)
- #define vreinterpretq_s16_f16(__a) __arm_vreinterpretq_s16_f16(__a)
- #define vreinterpretq_s16_f32(__a) __arm_vreinterpretq_s16_f32(__a)
- #define vreinterpretq_s64_f16(__a) __arm_vreinterpretq_s64_f16(__a)
- #define vreinterpretq_s64_f32(__a) __arm_vreinterpretq_s64_f32(__a)
- #define vreinterpretq_s8_f16(__a) __arm_vreinterpretq_s8_f16(__a)
- #define vreinterpretq_s8_f32(__a) __arm_vreinterpretq_s8_f32(__a)
  #define vuninitializedq_u8(void) __arm_vuninitializedq_u8(void)
  #define vuninitializedq_u16(void) __arm_vuninitializedq_u16(void)
  #define vuninitializedq_u32(void) __arm_vuninitializedq_u32(void)
--- 468,473 ----
***************
*** 2551,2847 ****
  #define viwdupq_x_wb_u8(__a, __b,  __imm, __p) __arm_viwdupq_x_wb_u8(__a, __b,  __imm, __p)
  #define viwdupq_x_wb_u16(__a, __b,  __imm, __p) __arm_viwdupq_x_wb_u16(__a, __b,  __imm, __p)
  #define viwdupq_x_wb_u32(__a, __b,  __imm, __p) __arm_viwdupq_x_wb_u32(__a, __b,  __imm, __p)
- #define vdupq_x_n_s8(__a, __p) __arm_vdupq_x_n_s8(__a, __p)
- #define vdupq_x_n_s16(__a, __p) __arm_vdupq_x_n_s16(__a, __p)
- #define vdupq_x_n_s32(__a, __p) __arm_vdupq_x_n_s32(__a, __p)
- #define vdupq_x_n_u8(__a, __p) __arm_vdupq_x_n_u8(__a, __p)
- #define vdupq_x_n_u16(__a, __p) __arm_vdupq_x_n_u16(__a, __p)
- #define vdupq_x_n_u32(__a, __p) __arm_vdupq_x_n_u32(__a, __p)
- #define vminq_x_s8(__a, __b, __p) __arm_vminq_x_s8(__a, __b, __p)
- #define vminq_x_s16(__a, __b, __p) __arm_vminq_x_s16(__a, __b, __p)
- #define vminq_x_s32(__a, __b, __p) __arm_vminq_x_s32(__a, __b, __p)
- #define vminq_x_u8(__a, __b, __p) __arm_vminq_x_u8(__a, __b, __p)
- #define vminq_x_u16(__a, __b, __p) __arm_vminq_x_u16(__a, __b, __p)
- #define vminq_x_u32(__a, __b, __p) __arm_vminq_x_u32(__a, __b, __p)
- #define vmaxq_x_s8(__a, __b, __p) __arm_vmaxq_x_s8(__a, __b, __p)
- #define vmaxq_x_s16(__a, __b, __p) __arm_vmaxq_x_s16(__a, __b, __p)
- #define vmaxq_x_s32(__a, __b, __p) __arm_vmaxq_x_s32(__a, __b, __p)
- #define vmaxq_x_u8(__a, __b, __p) __arm_vmaxq_x_u8(__a, __b, __p)
- #define vmaxq_x_u16(__a, __b, __p) __arm_vmaxq_x_u16(__a, __b, __p)
- #define vmaxq_x_u32(__a, __b, __p) __arm_vmaxq_x_u32(__a, __b, __p)
- #define vabdq_x_s8(__a, __b, __p) __arm_vabdq_x_s8(__a, __b, __p)
- #define vabdq_x_s16(__a, __b, __p) __arm_vabdq_x_s16(__a, __b, __p)
- #define vabdq_x_s32(__a, __b, __p) __arm_vabdq_x_s32(__a, __b, __p)
- #define vabdq_x_u8(__a, __b, __p) __arm_vabdq_x_u8(__a, __b, __p)
- #define vabdq_x_u16(__a, __b, __p) __arm_vabdq_x_u16(__a, __b, __p)
- #define vabdq_x_u32(__a, __b, __p) __arm_vabdq_x_u32(__a, __b, __p)
- #define vabsq_x_s8(__a, __p) __arm_vabsq_x_s8(__a, __p)
- #define vabsq_x_s16(__a, __p) __arm_vabsq_x_s16(__a, __p)
- #define vabsq_x_s32(__a, __p) __arm_vabsq_x_s32(__a, __p)
- #define vaddq_x_s8(__a, __b, __p) __arm_vaddq_x_s8(__a, __b, __p)
- #define vaddq_x_s16(__a, __b, __p) __arm_vaddq_x_s16(__a, __b, __p)
- #define vaddq_x_s32(__a, __b, __p) __arm_vaddq_x_s32(__a, __b, __p)
- #define vaddq_x_n_s8(__a, __b, __p) __arm_vaddq_x_n_s8(__a, __b, __p)
- #define vaddq_x_n_s16(__a, __b, __p) __arm_vaddq_x_n_s16(__a, __b, __p)
- #define vaddq_x_n_s32(__a, __b, __p) __arm_vaddq_x_n_s32(__a, __b, __p)
- #define vaddq_x_u8(__a, __b, __p) __arm_vaddq_x_u8(__a, __b, __p)
- #define vaddq_x_u16(__a, __b, __p) __arm_vaddq_x_u16(__a, __b, __p)
- #define vaddq_x_u32(__a, __b, __p) __arm_vaddq_x_u32(__a, __b, __p)
- #define vaddq_x_n_u8(__a, __b, __p) __arm_vaddq_x_n_u8(__a, __b, __p)
- #define vaddq_x_n_u16(__a, __b, __p) __arm_vaddq_x_n_u16(__a, __b, __p)
- #define vaddq_x_n_u32(__a, __b, __p) __arm_vaddq_x_n_u32(__a, __b, __p)
- #define vclsq_x_s8(__a, __p) __arm_vclsq_x_s8(__a, __p)
- #define vclsq_x_s16(__a, __p) __arm_vclsq_x_s16(__a, __p)
- #define vclsq_x_s32(__a, __p) __arm_vclsq_x_s32(__a, __p)
- #define vclzq_x_s8(__a, __p) __arm_vclzq_x_s8(__a, __p)
- #define vclzq_x_s16(__a, __p) __arm_vclzq_x_s16(__a, __p)
- #define vclzq_x_s32(__a, __p) __arm_vclzq_x_s32(__a, __p)
- #define vclzq_x_u8(__a, __p) __arm_vclzq_x_u8(__a, __p)
- #define vclzq_x_u16(__a, __p) __arm_vclzq_x_u16(__a, __p)
- #define vclzq_x_u32(__a, __p) __arm_vclzq_x_u32(__a, __p)
- #define vnegq_x_s8(__a, __p) __arm_vnegq_x_s8(__a, __p)
- #define vnegq_x_s16(__a, __p) __arm_vnegq_x_s16(__a, __p)
- #define vnegq_x_s32(__a, __p) __arm_vnegq_x_s32(__a, __p)
- #define vmulhq_x_s8(__a, __b, __p) __arm_vmulhq_x_s8(__a, __b, __p)
- #define vmulhq_x_s16(__a, __b, __p) __arm_vmulhq_x_s16(__a, __b, __p)
- #define vmulhq_x_s32(__a, __b, __p) __arm_vmulhq_x_s32(__a, __b, __p)
- #define vmulhq_x_u8(__a, __b, __p) __arm_vmulhq_x_u8(__a, __b, __p)
- #define vmulhq_x_u16(__a, __b, __p) __arm_vmulhq_x_u16(__a, __b, __p)
- #define vmulhq_x_u32(__a, __b, __p) __arm_vmulhq_x_u32(__a, __b, __p)
- #define vmullbq_poly_x_p8(__a, __b, __p) __arm_vmullbq_poly_x_p8(__a, __b, __p)
- #define vmullbq_poly_x_p16(__a, __b, __p) __arm_vmullbq_poly_x_p16(__a, __b, __p)
- #define vmullbq_int_x_s8(__a, __b, __p) __arm_vmullbq_int_x_s8(__a, __b, __p)
- #define vmullbq_int_x_s16(__a, __b, __p) __arm_vmullbq_int_x_s16(__a, __b, __p)
- #define vmullbq_int_x_s32(__a, __b, __p) __arm_vmullbq_int_x_s32(__a, __b, __p)
- #define vmullbq_int_x_u8(__a, __b, __p) __arm_vmullbq_int_x_u8(__a, __b, __p)
- #define vmullbq_int_x_u16(__a, __b, __p) __arm_vmullbq_int_x_u16(__a, __b, __p)
- #define vmullbq_int_x_u32(__a, __b, __p) __arm_vmullbq_int_x_u32(__a, __b, __p)
- #define vmulltq_poly_x_p8(__a, __b, __p) __arm_vmulltq_poly_x_p8(__a, __b, __p)
- #define vmulltq_poly_x_p16(__a, __b, __p) __arm_vmulltq_poly_x_p16(__a, __b, __p)
- #define vmulltq_int_x_s8(__a, __b, __p) __arm_vmulltq_int_x_s8(__a, __b, __p)
- #define vmulltq_int_x_s16(__a, __b, __p) __arm_vmulltq_int_x_s16(__a, __b, __p)
- #define vmulltq_int_x_s32(__a, __b, __p) __arm_vmulltq_int_x_s32(__a, __b, __p)
- #define vmulltq_int_x_u8(__a, __b, __p) __arm_vmulltq_int_x_u8(__a, __b, __p)
- #define vmulltq_int_x_u16(__a, __b, __p) __arm_vmulltq_int_x_u16(__a, __b, __p)
- #define vmulltq_int_x_u32(__a, __b, __p) __arm_vmulltq_int_x_u32(__a, __b, __p)
- #define vmulq_x_s8(__a, __b, __p) __arm_vmulq_x_s8(__a, __b, __p)
- #define vmulq_x_s16(__a, __b, __p) __arm_vmulq_x_s16(__a, __b, __p)
- #define vmulq_x_s32(__a, __b, __p) __arm_vmulq_x_s32(__a, __b, __p)
- #define vmulq_x_n_s8(__a, __b, __p) __arm_vmulq_x_n_s8(__a, __b, __p)
- #define vmulq_x_n_s16(__a, __b, __p) __arm_vmulq_x_n_s16(__a, __b, __p)
- #define vmulq_x_n_s32(__a, __b, __p) __arm_vmulq_x_n_s32(__a, __b, __p)
- #define vmulq_x_u8(__a, __b, __p) __arm_vmulq_x_u8(__a, __b, __p)
- #define vmulq_x_u16(__a, __b, __p) __arm_vmulq_x_u16(__a, __b, __p)
- #define vmulq_x_u32(__a, __b, __p) __arm_vmulq_x_u32(__a, __b, __p)
- #define vmulq_x_n_u8(__a, __b, __p) __arm_vmulq_x_n_u8(__a, __b, __p)
- #define vmulq_x_n_u16(__a, __b, __p) __arm_vmulq_x_n_u16(__a, __b, __p)
- #define vmulq_x_n_u32(__a, __b, __p) __arm_vmulq_x_n_u32(__a, __b, __p)
- #define vsubq_x_s8(__a, __b, __p) __arm_vsubq_x_s8(__a, __b, __p)
- #define vsubq_x_s16(__a, __b, __p) __arm_vsubq_x_s16(__a, __b, __p)
- #define vsubq_x_s32(__a, __b, __p) __arm_vsubq_x_s32(__a, __b, __p)
- #define vsubq_x_n_s8(__a, __b, __p) __arm_vsubq_x_n_s8(__a, __b, __p)
- #define vsubq_x_n_s16(__a, __b, __p) __arm_vsubq_x_n_s16(__a, __b, __p)
- #define vsubq_x_n_s32(__a, __b, __p) __arm_vsubq_x_n_s32(__a, __b, __p)
- #define vsubq_x_u8(__a, __b, __p) __arm_vsubq_x_u8(__a, __b, __p)
- #define vsubq_x_u16(__a, __b, __p) __arm_vsubq_x_u16(__a, __b, __p)
- #define vsubq_x_u32(__a, __b, __p) __arm_vsubq_x_u32(__a, __b, __p)
- #define vsubq_x_n_u8(__a, __b, __p) __arm_vsubq_x_n_u8(__a, __b, __p)
- #define vsubq_x_n_u16(__a, __b, __p) __arm_vsubq_x_n_u16(__a, __b, __p)
- #define vsubq_x_n_u32(__a, __b, __p) __arm_vsubq_x_n_u32(__a, __b, __p)
- #define vcaddq_rot90_x_s8(__a, __b, __p) __arm_vcaddq_rot90_x_s8(__a, __b, __p)
- #define vcaddq_rot90_x_s16(__a, __b, __p) __arm_vcaddq_rot90_x_s16(__a, __b, __p)
- #define vcaddq_rot90_x_s32(__a, __b, __p) __arm_vcaddq_rot90_x_s32(__a, __b, __p)
- #define vcaddq_rot90_x_u8(__a, __b, __p) __arm_vcaddq_rot90_x_u8(__a, __b, __p)
- #define vcaddq_rot90_x_u16(__a, __b, __p) __arm_vcaddq_rot90_x_u16(__a, __b, __p)
- #define vcaddq_rot90_x_u32(__a, __b, __p) __arm_vcaddq_rot90_x_u32(__a, __b, __p)
- #define vcaddq_rot270_x_s8(__a, __b, __p) __arm_vcaddq_rot270_x_s8(__a, __b, __p)
- #define vcaddq_rot270_x_s16(__a, __b, __p) __arm_vcaddq_rot270_x_s16(__a, __b, __p)
- #define vcaddq_rot270_x_s32(__a, __b, __p) __arm_vcaddq_rot270_x_s32(__a, __b, __p)
- #define vcaddq_rot270_x_u8(__a, __b, __p) __arm_vcaddq_rot270_x_u8(__a, __b, __p)
- #define vcaddq_rot270_x_u16(__a, __b, __p) __arm_vcaddq_rot270_x_u16(__a, __b, __p)
- #define vcaddq_rot270_x_u32(__a, __b, __p) __arm_vcaddq_rot270_x_u32(__a, __b, __p)
- #define vhaddq_x_n_s8(__a, __b, __p) __arm_vhaddq_x_n_s8(__a, __b, __p)
- #define vhaddq_x_n_s16(__a, __b, __p) __arm_vhaddq_x_n_s16(__a, __b, __p)
- #define vhaddq_x_n_s32(__a, __b, __p) __arm_vhaddq_x_n_s32(__a, __b, __p)
- #define vhaddq_x_n_u8(__a, __b, __p) __arm_vhaddq_x_n_u8(__a, __b, __p)
- #define vhaddq_x_n_u16(__a, __b, __p) __arm_vhaddq_x_n_u16(__a, __b, __p)
- #define vhaddq_x_n_u32(__a, __b, __p) __arm_vhaddq_x_n_u32(__a, __b, __p)
- #define vhaddq_x_s8(__a, __b, __p) __arm_vhaddq_x_s8(__a, __b, __p)
- #define vhaddq_x_s16(__a, __b, __p) __arm_vhaddq_x_s16(__a, __b, __p)
- #define vhaddq_x_s32(__a, __b, __p) __arm_vhaddq_x_s32(__a, __b, __p)
- #define vhaddq_x_u8(__a, __b, __p) __arm_vhaddq_x_u8(__a, __b, __p)
- #define vhaddq_x_u16(__a, __b, __p) __arm_vhaddq_x_u16(__a, __b, __p)
- #define vhaddq_x_u32(__a, __b, __p) __arm_vhaddq_x_u32(__a, __b, __p)
- #define vhcaddq_rot90_x_s8(__a, __b, __p) __arm_vhcaddq_rot90_x_s8(__a, __b, __p)
- #define vhcaddq_rot90_x_s16(__a, __b, __p) __arm_vhcaddq_rot90_x_s16(__a, __b, __p)
- #define vhcaddq_rot90_x_s32(__a, __b, __p) __arm_vhcaddq_rot90_x_s32(__a, __b, __p)
- #define vhcaddq_rot270_x_s8(__a, __b, __p) __arm_vhcaddq_rot270_x_s8(__a, __b, __p)
- #define vhcaddq_rot270_x_s16(__a, __b, __p) __arm_vhcaddq_rot270_x_s16(__a, __b, __p)
- #define vhcaddq_rot270_x_s32(__a, __b, __p) __arm_vhcaddq_rot270_x_s32(__a, __b, __p)
- #define vhsubq_x_n_s8(__a, __b, __p) __arm_vhsubq_x_n_s8(__a, __b, __p)
- #define vhsubq_x_n_s16(__a, __b, __p) __arm_vhsubq_x_n_s16(__a, __b, __p)
- #define vhsubq_x_n_s32(__a, __b, __p) __arm_vhsubq_x_n_s32(__a, __b, __p)
- #define vhsubq_x_n_u8(__a, __b, __p) __arm_vhsubq_x_n_u8(__a, __b, __p)
- #define vhsubq_x_n_u16(__a, __b, __p) __arm_vhsubq_x_n_u16(__a, __b, __p)
- #define vhsubq_x_n_u32(__a, __b, __p) __arm_vhsubq_x_n_u32(__a, __b, __p)
- #define vhsubq_x_s8(__a, __b, __p) __arm_vhsubq_x_s8(__a, __b, __p)
- #define vhsubq_x_s16(__a, __b, __p) __arm_vhsubq_x_s16(__a, __b, __p)
- #define vhsubq_x_s32(__a, __b, __p) __arm_vhsubq_x_s32(__a, __b, __p)
- #define vhsubq_x_u8(__a, __b, __p) __arm_vhsubq_x_u8(__a, __b, __p)
- #define vhsubq_x_u16(__a, __b, __p) __arm_vhsubq_x_u16(__a, __b, __p)
- #define vhsubq_x_u32(__a, __b, __p) __arm_vhsubq_x_u32(__a, __b, __p)
- #define vrhaddq_x_s8(__a, __b, __p) __arm_vrhaddq_x_s8(__a, __b, __p)
- #define vrhaddq_x_s16(__a, __b, __p) __arm_vrhaddq_x_s16(__a, __b, __p)
- #define vrhaddq_x_s32(__a, __b, __p) __arm_vrhaddq_x_s32(__a, __b, __p)
- #define vrhaddq_x_u8(__a, __b, __p) __arm_vrhaddq_x_u8(__a, __b, __p)
- #define vrhaddq_x_u16(__a, __b, __p) __arm_vrhaddq_x_u16(__a, __b, __p)
- #define vrhaddq_x_u32(__a, __b, __p) __arm_vrhaddq_x_u32(__a, __b, __p)
- #define vrmulhq_x_s8(__a, __b, __p) __arm_vrmulhq_x_s8(__a, __b, __p)
- #define vrmulhq_x_s16(__a, __b, __p) __arm_vrmulhq_x_s16(__a, __b, __p)
- #define vrmulhq_x_s32(__a, __b, __p) __arm_vrmulhq_x_s32(__a, __b, __p)
- #define vrmulhq_x_u8(__a, __b, __p) __arm_vrmulhq_x_u8(__a, __b, __p)
- #define vrmulhq_x_u16(__a, __b, __p) __arm_vrmulhq_x_u16(__a, __b, __p)
- #define vrmulhq_x_u32(__a, __b, __p) __arm_vrmulhq_x_u32(__a, __b, __p)
- #define vandq_x_s8(__a, __b, __p) __arm_vandq_x_s8(__a, __b, __p)
- #define vandq_x_s16(__a, __b, __p) __arm_vandq_x_s16(__a, __b, __p)
- #define vandq_x_s32(__a, __b, __p) __arm_vandq_x_s32(__a, __b, __p)
- #define vandq_x_u8(__a, __b, __p) __arm_vandq_x_u8(__a, __b, __p)
- #define vandq_x_u16(__a, __b, __p) __arm_vandq_x_u16(__a, __b, __p)
- #define vandq_x_u32(__a, __b, __p) __arm_vandq_x_u32(__a, __b, __p)
  #define vbicq_x_s8(__a, __b, __p) __arm_vbicq_x_s8(__a, __b, __p)
  #define vbicq_x_s16(__a, __b, __p) __arm_vbicq_x_s16(__a, __b, __p)
  #define vbicq_x_s32(__a, __b, __p) __arm_vbicq_x_s32(__a, __b, __p)
  #define vbicq_x_u8(__a, __b, __p) __arm_vbicq_x_u8(__a, __b, __p)
  #define vbicq_x_u16(__a, __b, __p) __arm_vbicq_x_u16(__a, __b, __p)
  #define vbicq_x_u32(__a, __b, __p) __arm_vbicq_x_u32(__a, __b, __p)
- #define vbrsrq_x_n_s8(__a, __b, __p) __arm_vbrsrq_x_n_s8(__a, __b, __p)
- #define vbrsrq_x_n_s16(__a, __b, __p) __arm_vbrsrq_x_n_s16(__a, __b, __p)
- #define vbrsrq_x_n_s32(__a, __b, __p) __arm_vbrsrq_x_n_s32(__a, __b, __p)
- #define vbrsrq_x_n_u8(__a, __b, __p) __arm_vbrsrq_x_n_u8(__a, __b, __p)
- #define vbrsrq_x_n_u16(__a, __b, __p) __arm_vbrsrq_x_n_u16(__a, __b, __p)
- #define vbrsrq_x_n_u32(__a, __b, __p) __arm_vbrsrq_x_n_u32(__a, __b, __p)
- #define veorq_x_s8(__a, __b, __p) __arm_veorq_x_s8(__a, __b, __p)
- #define veorq_x_s16(__a, __b, __p) __arm_veorq_x_s16(__a, __b, __p)
- #define veorq_x_s32(__a, __b, __p) __arm_veorq_x_s32(__a, __b, __p)
- #define veorq_x_u8(__a, __b, __p) __arm_veorq_x_u8(__a, __b, __p)
- #define veorq_x_u16(__a, __b, __p) __arm_veorq_x_u16(__a, __b, __p)
- #define veorq_x_u32(__a, __b, __p) __arm_veorq_x_u32(__a, __b, __p)
- #define vmovlbq_x_s8(__a, __p) __arm_vmovlbq_x_s8(__a, __p)
- #define vmovlbq_x_s16(__a, __p) __arm_vmovlbq_x_s16(__a, __p)
- #define vmovlbq_x_u8(__a, __p) __arm_vmovlbq_x_u8(__a, __p)
- #define vmovlbq_x_u16(__a, __p) __arm_vmovlbq_x_u16(__a, __p)
- #define vmovltq_x_s8(__a, __p) __arm_vmovltq_x_s8(__a, __p)
- #define vmovltq_x_s16(__a, __p) __arm_vmovltq_x_s16(__a, __p)
- #define vmovltq_x_u8(__a, __p) __arm_vmovltq_x_u8(__a, __p)
- #define vmovltq_x_u16(__a, __p) __arm_vmovltq_x_u16(__a, __p)
- #define vmvnq_x_s8(__a, __p) __arm_vmvnq_x_s8(__a, __p)
- #define vmvnq_x_s16(__a, __p) __arm_vmvnq_x_s16(__a, __p)
- #define vmvnq_x_s32(__a, __p) __arm_vmvnq_x_s32(__a, __p)
- #define vmvnq_x_u8(__a, __p) __arm_vmvnq_x_u8(__a, __p)
- #define vmvnq_x_u16(__a, __p) __arm_vmvnq_x_u16(__a, __p)
- #define vmvnq_x_u32(__a, __p) __arm_vmvnq_x_u32(__a, __p)
- #define vmvnq_x_n_s16( __imm, __p) __arm_vmvnq_x_n_s16( __imm, __p)
- #define vmvnq_x_n_s32( __imm, __p) __arm_vmvnq_x_n_s32( __imm, __p)
- #define vmvnq_x_n_u16( __imm, __p) __arm_vmvnq_x_n_u16( __imm, __p)
- #define vmvnq_x_n_u32( __imm, __p) __arm_vmvnq_x_n_u32( __imm, __p)
  #define vornq_x_s8(__a, __b, __p) __arm_vornq_x_s8(__a, __b, __p)
  #define vornq_x_s16(__a, __b, __p) __arm_vornq_x_s16(__a, __b, __p)
  #define vornq_x_s32(__a, __b, __p) __arm_vornq_x_s32(__a, __b, __p)
  #define vornq_x_u8(__a, __b, __p) __arm_vornq_x_u8(__a, __b, __p)
  #define vornq_x_u16(__a, __b, __p) __arm_vornq_x_u16(__a, __b, __p)
  #define vornq_x_u32(__a, __b, __p) __arm_vornq_x_u32(__a, __b, __p)
- #define vorrq_x_s8(__a, __b, __p) __arm_vorrq_x_s8(__a, __b, __p)
- #define vorrq_x_s16(__a, __b, __p) __arm_vorrq_x_s16(__a, __b, __p)
- #define vorrq_x_s32(__a, __b, __p) __arm_vorrq_x_s32(__a, __b, __p)
- #define vorrq_x_u8(__a, __b, __p) __arm_vorrq_x_u8(__a, __b, __p)
- #define vorrq_x_u16(__a, __b, __p) __arm_vorrq_x_u16(__a, __b, __p)
- #define vorrq_x_u32(__a, __b, __p) __arm_vorrq_x_u32(__a, __b, __p)
- #define vrev16q_x_s8(__a, __p) __arm_vrev16q_x_s8(__a, __p)
- #define vrev16q_x_u8(__a, __p) __arm_vrev16q_x_u8(__a, __p)
- #define vrev32q_x_s8(__a, __p) __arm_vrev32q_x_s8(__a, __p)
- #define vrev32q_x_s16(__a, __p) __arm_vrev32q_x_s16(__a, __p)
- #define vrev32q_x_u8(__a, __p) __arm_vrev32q_x_u8(__a, __p)
- #define vrev32q_x_u16(__a, __p) __arm_vrev32q_x_u16(__a, __p)
- #define vrev64q_x_s8(__a, __p) __arm_vrev64q_x_s8(__a, __p)
- #define vrev64q_x_s16(__a, __p) __arm_vrev64q_x_s16(__a, __p)
- #define vrev64q_x_s32(__a, __p) __arm_vrev64q_x_s32(__a, __p)
- #define vrev64q_x_u8(__a, __p) __arm_vrev64q_x_u8(__a, __p)
- #define vrev64q_x_u16(__a, __p) __arm_vrev64q_x_u16(__a, __p)
- #define vrev64q_x_u32(__a, __p) __arm_vrev64q_x_u32(__a, __p)
- #define vrshlq_x_s8(__a, __b, __p) __arm_vrshlq_x_s8(__a, __b, __p)
- #define vrshlq_x_s16(__a, __b, __p) __arm_vrshlq_x_s16(__a, __b, __p)
- #define vrshlq_x_s32(__a, __b, __p) __arm_vrshlq_x_s32(__a, __b, __p)
- #define vrshlq_x_u8(__a, __b, __p) __arm_vrshlq_x_u8(__a, __b, __p)
- #define vrshlq_x_u16(__a, __b, __p) __arm_vrshlq_x_u16(__a, __b, __p)
- #define vrshlq_x_u32(__a, __b, __p) __arm_vrshlq_x_u32(__a, __b, __p)
- #define vshllbq_x_n_s8(__a,  __imm, __p) __arm_vshllbq_x_n_s8(__a,  __imm, __p)
- #define vshllbq_x_n_s16(__a,  __imm, __p) __arm_vshllbq_x_n_s16(__a,  __imm, __p)
- #define vshllbq_x_n_u8(__a,  __imm, __p) __arm_vshllbq_x_n_u8(__a,  __imm, __p)
- #define vshllbq_x_n_u16(__a,  __imm, __p) __arm_vshllbq_x_n_u16(__a,  __imm, __p)
- #define vshlltq_x_n_s8(__a,  __imm, __p) __arm_vshlltq_x_n_s8(__a,  __imm, __p)
- #define vshlltq_x_n_s16(__a,  __imm, __p) __arm_vshlltq_x_n_s16(__a,  __imm, __p)
- #define vshlltq_x_n_u8(__a,  __imm, __p) __arm_vshlltq_x_n_u8(__a,  __imm, __p)
- #define vshlltq_x_n_u16(__a,  __imm, __p) __arm_vshlltq_x_n_u16(__a,  __imm, __p)
- #define vshlq_x_s8(__a, __b, __p) __arm_vshlq_x_s8(__a, __b, __p)
- #define vshlq_x_s16(__a, __b, __p) __arm_vshlq_x_s16(__a, __b, __p)
- #define vshlq_x_s32(__a, __b, __p) __arm_vshlq_x_s32(__a, __b, __p)
- #define vshlq_x_u8(__a, __b, __p) __arm_vshlq_x_u8(__a, __b, __p)
- #define vshlq_x_u16(__a, __b, __p) __arm_vshlq_x_u16(__a, __b, __p)
- #define vshlq_x_u32(__a, __b, __p) __arm_vshlq_x_u32(__a, __b, __p)
- #define vshlq_x_n_s8(__a,  __imm, __p) __arm_vshlq_x_n_s8(__a,  __imm, __p)
- #define vshlq_x_n_s16(__a,  __imm, __p) __arm_vshlq_x_n_s16(__a,  __imm, __p)
- #define vshlq_x_n_s32(__a,  __imm, __p) __arm_vshlq_x_n_s32(__a,  __imm, __p)
- #define vshlq_x_n_u8(__a,  __imm, __p) __arm_vshlq_x_n_u8(__a,  __imm, __p)
- #define vshlq_x_n_u16(__a,  __imm, __p) __arm_vshlq_x_n_u16(__a,  __imm, __p)
- #define vshlq_x_n_u32(__a,  __imm, __p) __arm_vshlq_x_n_u32(__a,  __imm, __p)
- #define vrshrq_x_n_s8(__a,  __imm, __p) __arm_vrshrq_x_n_s8(__a,  __imm, __p)
- #define vrshrq_x_n_s16(__a,  __imm, __p) __arm_vrshrq_x_n_s16(__a,  __imm, __p)
- #define vrshrq_x_n_s32(__a,  __imm, __p) __arm_vrshrq_x_n_s32(__a,  __imm, __p)
- #define vrshrq_x_n_u8(__a,  __imm, __p) __arm_vrshrq_x_n_u8(__a,  __imm, __p)
- #define vrshrq_x_n_u16(__a,  __imm, __p) __arm_vrshrq_x_n_u16(__a,  __imm, __p)
- #define vrshrq_x_n_u32(__a,  __imm, __p) __arm_vrshrq_x_n_u32(__a,  __imm, __p)
- #define vshrq_x_n_s8(__a,  __imm, __p) __arm_vshrq_x_n_s8(__a,  __imm, __p)
- #define vshrq_x_n_s16(__a,  __imm, __p) __arm_vshrq_x_n_s16(__a,  __imm, __p)
- #define vshrq_x_n_s32(__a,  __imm, __p) __arm_vshrq_x_n_s32(__a,  __imm, __p)
- #define vshrq_x_n_u8(__a,  __imm, __p) __arm_vshrq_x_n_u8(__a,  __imm, __p)
- #define vshrq_x_n_u16(__a,  __imm, __p) __arm_vshrq_x_n_u16(__a,  __imm, __p)
- #define vshrq_x_n_u32(__a,  __imm, __p) __arm_vshrq_x_n_u32(__a,  __imm, __p)
- #define vdupq_x_n_f16(__a, __p) __arm_vdupq_x_n_f16(__a, __p)
- #define vdupq_x_n_f32(__a, __p) __arm_vdupq_x_n_f32(__a, __p)
- #define vminnmq_x_f16(__a, __b, __p) __arm_vminnmq_x_f16(__a, __b, __p)
- #define vminnmq_x_f32(__a, __b, __p) __arm_vminnmq_x_f32(__a, __b, __p)
- #define vmaxnmq_x_f16(__a, __b, __p) __arm_vmaxnmq_x_f16(__a, __b, __p)
- #define vmaxnmq_x_f32(__a, __b, __p) __arm_vmaxnmq_x_f32(__a, __b, __p)
- #define vabdq_x_f16(__a, __b, __p) __arm_vabdq_x_f16(__a, __b, __p)
- #define vabdq_x_f32(__a, __b, __p) __arm_vabdq_x_f32(__a, __b, __p)
- #define vabsq_x_f16(__a, __p) __arm_vabsq_x_f16(__a, __p)
- #define vabsq_x_f32(__a, __p) __arm_vabsq_x_f32(__a, __p)
- #define vaddq_x_f16(__a, __b, __p) __arm_vaddq_x_f16(__a, __b, __p)
- #define vaddq_x_f32(__a, __b, __p) __arm_vaddq_x_f32(__a, __b, __p)
- #define vaddq_x_n_f16(__a, __b, __p) __arm_vaddq_x_n_f16(__a, __b, __p)
- #define vaddq_x_n_f32(__a, __b, __p) __arm_vaddq_x_n_f32(__a, __b, __p)
- #define vnegq_x_f16(__a, __p) __arm_vnegq_x_f16(__a, __p)
- #define vnegq_x_f32(__a, __p) __arm_vnegq_x_f32(__a, __p)
- #define vmulq_x_f16(__a, __b, __p) __arm_vmulq_x_f16(__a, __b, __p)
- #define vmulq_x_f32(__a, __b, __p) __arm_vmulq_x_f32(__a, __b, __p)
- #define vmulq_x_n_f16(__a, __b, __p) __arm_vmulq_x_n_f16(__a, __b, __p)
- #define vmulq_x_n_f32(__a, __b, __p) __arm_vmulq_x_n_f32(__a, __b, __p)
- #define vsubq_x_f16(__a, __b, __p) __arm_vsubq_x_f16(__a, __b, __p)
- #define vsubq_x_f32(__a, __b, __p) __arm_vsubq_x_f32(__a, __b, __p)
- #define vsubq_x_n_f16(__a, __b, __p) __arm_vsubq_x_n_f16(__a, __b, __p)
- #define vsubq_x_n_f32(__a, __b, __p) __arm_vsubq_x_n_f32(__a, __b, __p)
- #define vcaddq_rot90_x_f16(__a, __b, __p) __arm_vcaddq_rot90_x_f16(__a, __b, __p)
- #define vcaddq_rot90_x_f32(__a, __b, __p) __arm_vcaddq_rot90_x_f32(__a, __b, __p)
- #define vcaddq_rot270_x_f16(__a, __b, __p) __arm_vcaddq_rot270_x_f16(__a, __b, __p)
- #define vcaddq_rot270_x_f32(__a, __b, __p) __arm_vcaddq_rot270_x_f32(__a, __b, __p)
- #define vcmulq_x_f16(__a, __b, __p) __arm_vcmulq_x_f16(__a, __b, __p)
- #define vcmulq_x_f32(__a, __b, __p) __arm_vcmulq_x_f32(__a, __b, __p)
- #define vcmulq_rot90_x_f16(__a, __b, __p) __arm_vcmulq_rot90_x_f16(__a, __b, __p)
- #define vcmulq_rot90_x_f32(__a, __b, __p) __arm_vcmulq_rot90_x_f32(__a, __b, __p)
- #define vcmulq_rot180_x_f16(__a, __b, __p) __arm_vcmulq_rot180_x_f16(__a, __b, __p)
- #define vcmulq_rot180_x_f32(__a, __b, __p) __arm_vcmulq_rot180_x_f32(__a, __b, __p)
- #define vcmulq_rot270_x_f16(__a, __b, __p) __arm_vcmulq_rot270_x_f16(__a, __b, __p)
- #define vcmulq_rot270_x_f32(__a, __b, __p) __arm_vcmulq_rot270_x_f32(__a, __b, __p)
  #define vcvtaq_x_s16_f16(__a, __p) __arm_vcvtaq_x_s16_f16(__a, __p)
  #define vcvtaq_x_s32_f32(__a, __p) __arm_vcvtaq_x_s32_f32(__a, __p)
  #define vcvtaq_x_u16_f16(__a, __p) __arm_vcvtaq_x_u16_f16(__a, __p)
--- 570,587 ----
***************
*** 2876,2908 ****
  #define vcvtq_x_n_s32_f32(__a,  __imm6, __p) __arm_vcvtq_x_n_s32_f32(__a,  __imm6, __p)
  #define vcvtq_x_n_u16_f16(__a,  __imm6, __p) __arm_vcvtq_x_n_u16_f16(__a,  __imm6, __p)
  #define vcvtq_x_n_u32_f32(__a,  __imm6, __p) __arm_vcvtq_x_n_u32_f32(__a,  __imm6, __p)
- #define vrndq_x_f16(__a, __p) __arm_vrndq_x_f16(__a, __p)
- #define vrndq_x_f32(__a, __p) __arm_vrndq_x_f32(__a, __p)
- #define vrndnq_x_f16(__a, __p) __arm_vrndnq_x_f16(__a, __p)
- #define vrndnq_x_f32(__a, __p) __arm_vrndnq_x_f32(__a, __p)
- #define vrndmq_x_f16(__a, __p) __arm_vrndmq_x_f16(__a, __p)
- #define vrndmq_x_f32(__a, __p) __arm_vrndmq_x_f32(__a, __p)
- #define vrndpq_x_f16(__a, __p) __arm_vrndpq_x_f16(__a, __p)
- #define vrndpq_x_f32(__a, __p) __arm_vrndpq_x_f32(__a, __p)
- #define vrndaq_x_f16(__a, __p) __arm_vrndaq_x_f16(__a, __p)
- #define vrndaq_x_f32(__a, __p) __arm_vrndaq_x_f32(__a, __p)
- #define vrndxq_x_f16(__a, __p) __arm_vrndxq_x_f16(__a, __p)
- #define vrndxq_x_f32(__a, __p) __arm_vrndxq_x_f32(__a, __p)
- #define vandq_x_f16(__a, __b, __p) __arm_vandq_x_f16(__a, __b, __p)
- #define vandq_x_f32(__a, __b, __p) __arm_vandq_x_f32(__a, __b, __p)
  #define vbicq_x_f16(__a, __b, __p) __arm_vbicq_x_f16(__a, __b, __p)
  #define vbicq_x_f32(__a, __b, __p) __arm_vbicq_x_f32(__a, __b, __p)
- #define vbrsrq_x_n_f16(__a, __b, __p) __arm_vbrsrq_x_n_f16(__a, __b, __p)
- #define vbrsrq_x_n_f32(__a, __b, __p) __arm_vbrsrq_x_n_f32(__a, __b, __p)
- #define veorq_x_f16(__a, __b, __p) __arm_veorq_x_f16(__a, __b, __p)
- #define veorq_x_f32(__a, __b, __p) __arm_veorq_x_f32(__a, __b, __p)
  #define vornq_x_f16(__a, __b, __p) __arm_vornq_x_f16(__a, __b, __p)
  #define vornq_x_f32(__a, __b, __p) __arm_vornq_x_f32(__a, __b, __p)
- #define vorrq_x_f16(__a, __b, __p) __arm_vorrq_x_f16(__a, __b, __p)
- #define vorrq_x_f32(__a, __b, __p) __arm_vorrq_x_f32(__a, __b, __p)
- #define vrev32q_x_f16(__a, __p) __arm_vrev32q_x_f16(__a, __p)
- #define vrev64q_x_f16(__a, __p) __arm_vrev64q_x_f16(__a, __p)
- #define vrev64q_x_f32(__a, __p) __arm_vrev64q_x_f32(__a, __p)
  #define vadciq_s32(__a, __b,  __carry_out) __arm_vadciq_s32(__a, __b,  __carry_out)
  #define vadciq_u32(__a, __b,  __carry_out) __arm_vadciq_u32(__a, __b,  __carry_out)
  #define vadciq_m_s32(__inactive, __a, __b,  __carry_out, __p) __arm_vadciq_m_s32(__inactive, __a, __b,  __carry_out, __p)
--- 616,625 ----
*************** __arm_vst4q_u32 (uint32_t * __addr, uint
*** 3069,3529 ****
    __builtin_mve_vst4qv4si ((__builtin_neon_si *) __addr, __rv.__o);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n_s8 (int8_t __a)
- {
-   return __builtin_mve_vdupq_n_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n_s16 (int16_t __a)
- {
-   return __builtin_mve_vdupq_n_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n_s32 (int32_t __a)
- {
-   return __builtin_mve_vdupq_n_sv4si (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vabsq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vabsq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vabsq_sv4si (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vclsq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vclsq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vclsq_sv4si (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vclzq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vclzq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vclzq_sv4si (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vnegq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vnegq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vnegq_sv4si (__a);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vaddlvq_sv4si (__a);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vaddvq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vaddvq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vaddvq_sv4si (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vmovlbq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vmovlbq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vmovltq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vmovltq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vmvnq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vmvnq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vmvnq_sv4si (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_n_s16 (const int16_t __imm)
- {
-   return __builtin_mve_vmvnq_n_sv8hi (__imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_n_s32 (const int32_t __imm)
- {
-   return __builtin_mve_vmvnq_n_sv4si (__imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vrev16q_sv16qi (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vrev32q_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vrev32q_sv8hi (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vrev64q_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vrev64q_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vrev64q_sv4si (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vqabsq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vqabsq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vqabsq_sv4si (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_s8 (int8x16_t __a)
- {
-   return __builtin_mve_vqnegq_sv16qi (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_s16 (int16x8_t __a)
- {
-   return __builtin_mve_vqnegq_sv8hi (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_s32 (int32x4_t __a)
- {
-   return __builtin_mve_vqnegq_sv4si (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_u8 (uint8x16_t __a)
- {
-   return __builtin_mve_vrev64q_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_u16 (uint16x8_t __a)
- {
-   return __builtin_mve_vrev64q_uv8hi (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_u32 (uint32x4_t __a)
- {
-   return __builtin_mve_vrev64q_uv4si (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_u8 (uint8x16_t __a)
- {
-   return __builtin_mve_vmvnq_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_u16 (uint16x8_t __a)
- {
-   return __builtin_mve_vmvnq_uv8hi (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_u32 (uint32x4_t __a)
- {
-   return __builtin_mve_vmvnq_uv4si (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n_u8 (uint8_t __a)
- {
-   return __builtin_mve_vdupq_n_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n_u16 (uint16_t __a)
- {
-   return __builtin_mve_vdupq_n_uv8hi (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n_u32 (uint32_t __a)
- {
-   return __builtin_mve_vdupq_n_uv4si (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_u8 (uint8x16_t __a)
- {
-   return __builtin_mve_vclzq_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_u16 (uint16x8_t __a)
- {
-   return __builtin_mve_vclzq_uv8hi (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_u32 (uint32x4_t __a)
- {
-   return __builtin_mve_vclzq_uv4si (__a);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_u8 (uint8x16_t __a)
- {
-   return __builtin_mve_vaddvq_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_u16 (uint16x8_t __a)
- {
-   return __builtin_mve_vaddvq_uv8hi (__a);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_u32 (uint32x4_t __a)
- {
-   return __builtin_mve_vaddvq_uv4si (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_u8 (uint8x16_t __a)
- {
-   return __builtin_mve_vrev32q_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_u16 (uint16x8_t __a)
- {
-   return __builtin_mve_vrev32q_uv8hi (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_u8 (uint8x16_t __a)
- {
-   return __builtin_mve_vmovltq_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_u16 (uint16x8_t __a)
- {
-   return __builtin_mve_vmovltq_uv8hi (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_u8 (uint8x16_t __a)
- {
-   return __builtin_mve_vmovlbq_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_u16 (uint16x8_t __a)
- {
-   return __builtin_mve_vmovlbq_uv8hi (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_n_u16 (const int __imm)
- {
-   return __builtin_mve_vmvnq_n_uv8hi (__imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_n_u32 (const int __imm)
- {
-   return __builtin_mve_vmvnq_n_uv4si (__imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_u8 (uint8x16_t __a)
- {
-   return __builtin_mve_vrev16q_uv16qi (__a);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvq_u32 (uint32x4_t __a)
- {
-   return __builtin_mve_vaddlvq_uv4si (__a);
- }
- 
  __extension__ extern __inline mve_pred16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vctp16q (uint32_t __a)
--- 786,791 ----
*************** __arm_vpnot (mve_pred16_t __a)
*** 3561,3823 ****
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_u8 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_u16 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_u32 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_u64 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_uv2di (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_s8 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_s16 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_s32 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_s64 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_sv2di (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_n_s8 (int8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vshrq_n_sv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_n_s16 (int16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vshrq_n_sv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_n_s32 (int32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vshrq_n_sv4si (__a, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_n_u8 (uint8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vshrq_n_uv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_n_u16 (uint16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vshrq_n_uv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_n_u32 (uint32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vshrq_n_uv4si (__a, __imm);
- }
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvq_p_s32 (int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddlvq_p_sv4si (__a, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvq_p_u32 (uint32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddlvq_p_uv4si (__a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vcmpneq_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vcmpneq_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vcmpneq_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vcmpneq_v16qi ((int8x16_t)__a, (int8x16_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vcmpneq_v8hi ((int16x8_t)__a, (int16x8_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vcmpneq_v4si ((int32x4_t)__a, (int32x4_t)__b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vshlq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vshlq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vshlq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_u8 (uint8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vshlq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_u16 (uint16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vshlq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_u32 (uint32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vshlq_uv4si (__a, __b);
- }
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vsubq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vsubq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vrmulhq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vrhaddq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vqsubq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vqsubq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vqaddq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vqaddq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vorrq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_u8 (uint8x16_t __a, uint8x16_t __b)
  {
    return __builtin_mve_vornq_uv16qi (__a, __b);
--- 823,828 ----
*************** __arm_vornq_u8 (uint8x16_t __a, uint8x16
*** 3825,4376 ****
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmulq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vmulq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmulltq_int_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmullbq_int_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmulhq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmladavq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_u8 (uint8_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vminvq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vminq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_u8 (uint8_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmaxvq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmaxq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vhsubq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vhsubq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vhaddq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vhaddq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_veorq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vcmpneq_n_v16qi ((int8x16_t)__a, (int8_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vcmphiq_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vcmphiq_n_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vcmpeqq_v16qi ((int8x16_t)__a, (int8x16_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vcmpeqq_n_v16qi ((int8x16_t)__a, (int8_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vcmpcsq_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vcmpcsq_n_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return (uint8x16_t)
-     __builtin_mve_vcaddq_rot90v16qi ((int8x16_t)__a, (int8x16_t)__b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return (uint8x16_t)
-     __builtin_mve_vcaddq_rot270v16qi ((int8x16_t)__a, (int8x16_t)__b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
  {
    return __builtin_mve_vbicq_uv16qi (__a, __b);
  }
  
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vandq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p_u8 (uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvq_p_uv16qi (__a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_u8 (uint32_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vaddvaq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_n_u8 (uint8x16_t __a, uint8_t __b)
- {
-   return __builtin_mve_vaddq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vabdq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r_u8 (uint8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vshlq_r_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vrshlq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_n_u8 (uint8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vrshlq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqshlq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r_u8 (uint8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vqshlq_r_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqrshlq_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_n_u8 (uint8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vqrshlq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_s8 (uint8_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vminavq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_s8 (uint8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vminaq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_s8 (uint8_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmaxavq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_s8 (uint8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmaxaq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_n_u8 (uint8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vbrsrq_n_uv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n_u8 (uint8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vshlq_n_uv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_n_u8 (uint8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vrshrq_n_uv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n_u8 (uint8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vqshlq_n_uv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vcmpneq_n_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vcmpltq_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vcmpltq_n_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vcmpleq_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vcmpleq_n_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vcmpgtq_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vcmpgtq_n_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vcmpgeq_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vcmpgeq_n_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vcmpeqq_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vcmpeqq_n_v16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_n_s8 (int8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vqshluq_n_sv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvq_p_sv16qi (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vsubq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vsubq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r_s8 (int8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vshlq_r_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vrshlq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_n_s8 (int8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vrshlq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vrmulhq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vrhaddq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqsubq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vqsubq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqshlq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r_s8 (int8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vqshlq_r_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqrshlq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_n_s8 (int8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vqrshlq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqrdmulhq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vqrdmulhq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqdmulhq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vqdmulhq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqaddq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vqaddq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vorrq_sv16qi (__a, __b);
- }
- 
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_s8 (int8x16_t __a, int8x16_t __b)
--- 830,840 ----
*************** __arm_vornq_s8 (int8x16_t __a, int8x16_t
*** 4380,4663 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmulq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vmulq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmulltq_int_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmullbq_int_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmulhq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmlsdavxq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmlsdavq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmladavxq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmladavq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_s8 (int8_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vminvq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vminq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_s8 (int8_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmaxvq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vmaxq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vhsubq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vhsubq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vhcaddq_rot90_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vhcaddq_rot270_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vhaddq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vhaddq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_veorq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vcaddq_rot90v16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vcaddq_rot270v16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_n_s8 (int8x16_t __a, int32_t __b)
- {
-   return __builtin_mve_vbrsrq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_s8 (int8x16_t __a, int8x16_t __b)
  {
    return __builtin_mve_vbicq_sv16qi (__a, __b);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vandq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_s8 (int32_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vaddvaq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_n_s8 (int8x16_t __a, int8_t __b)
- {
-   return __builtin_mve_vaddq_n_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vabdq_sv16qi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n_s8 (int8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vshlq_n_sv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_n_s8 (int8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vrshrq_n_sv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n_s8 (int8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vqshlq_n_sv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vsubq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vsubq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vrmulhq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vrhaddq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vqsubq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vqsubq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vqaddq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vqaddq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vorrq_uv8hi (__a, __b);
- }
- 
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_u16 (uint16x8_t __a, uint16x8_t __b)
--- 844,854 ----
*************** __arm_vornq_u16 (uint16x8_t __a, uint16x
*** 4667,5218 ****
  
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmulq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vmulq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmulltq_int_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmullbq_int_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmulhq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmladavq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_u16 (uint16_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vminvq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vminq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_u16 (uint16_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmaxvq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmaxq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vhsubq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vhsubq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vhaddq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vhaddq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_veorq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vcmpneq_n_v8hi ((int16x8_t)__a, (int16_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vcmphiq_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vcmphiq_n_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vcmpeqq_v8hi ((int16x8_t)__a, (int16x8_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vcmpeqq_n_v8hi ((int16x8_t)__a, (int16_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vcmpcsq_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vcmpcsq_n_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return (uint16x8_t)
-     __builtin_mve_vcaddq_rot90v8hi ((int16x8_t)__a, (int16x8_t)__b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return (uint16x8_t)
-     __builtin_mve_vcaddq_rot270v8hi ((int16x8_t)__a, (int16x8_t)__b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
  {
    return __builtin_mve_vbicq_uv8hi (__a, __b);
  }
  
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vandq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p_u16 (uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvq_p_uv8hi (__a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_u16 (uint32_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vaddvaq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_n_u16 (uint16x8_t __a, uint16_t __b)
- {
-   return __builtin_mve_vaddq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vabdq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r_u16 (uint16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vshlq_r_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vrshlq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_n_u16 (uint16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vrshlq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqshlq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r_u16 (uint16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vqshlq_r_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqrshlq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_n_u16 (uint16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vqrshlq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_s16 (uint16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vminavq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_s16 (uint16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vminaq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_s16 (uint16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmaxavq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_s16 (uint16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmaxaq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_n_u16 (uint16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vbrsrq_n_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n_u16 (uint16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vshlq_n_uv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_n_u16 (uint16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vrshrq_n_uv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n_u16 (uint16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vqshlq_n_uv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vcmpneq_n_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vcmpltq_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vcmpltq_n_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vcmpleq_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vcmpleq_n_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vcmpgtq_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vcmpgtq_n_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vcmpgeq_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vcmpgeq_n_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vcmpeqq_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vcmpeqq_n_v8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_n_s16 (int16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vqshluq_n_sv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvq_p_sv8hi (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vsubq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vsubq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r_s16 (int16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vshlq_r_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vrshlq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_n_s16 (int16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vrshlq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vrmulhq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vrhaddq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqsubq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vqsubq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqshlq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r_s16 (int16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vqshlq_r_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqrshlq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_n_s16 (int16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vqrshlq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqrdmulhq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vqrdmulhq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqdmulhq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vqdmulhq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqaddq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vqaddq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vorrq_sv8hi (__a, __b);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_s16 (int16x8_t __a, int16x8_t __b)
--- 858,868 ----
*************** __arm_vornq_s16 (int16x8_t __a, int16x8_
*** 5222,5505 ****
  
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmulq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vmulq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmulltq_int_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmullbq_int_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmulhq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmlsdavxq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmlsdavq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmladavxq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmladavq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_s16 (int16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vminvq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vminq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_s16 (int16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmaxvq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmaxq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vhsubq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vhsubq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vhcaddq_rot90_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vhcaddq_rot270_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vhaddq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vhaddq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_veorq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vcaddq_rot90v8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vcaddq_rot270v8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_n_s16 (int16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vbrsrq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_s16 (int16x8_t __a, int16x8_t __b)
  {
    return __builtin_mve_vbicq_sv8hi (__a, __b);
  }
  
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vandq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_s16 (int32_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vaddvaq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vaddq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vabdq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n_s16 (int16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vshlq_n_sv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_n_s16 (int16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vrshrq_n_sv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n_s16 (int16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vqshlq_n_sv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vsubq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vsubq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vrmulhq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vrhaddq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vqsubq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vqsubq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vqaddq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vqaddq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vorrq_uv4si (__a, __b);
- }
- 
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_u32 (uint32x4_t __a, uint32x4_t __b)
--- 872,882 ----
*************** __arm_vornq_u32 (uint32x4_t __a, uint32x
*** 5509,6060 ****
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmulq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vmulq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmulltq_int_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmullbq_int_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmulhq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmladavq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_u32 (uint32_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vminvq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vminq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_u32 (uint32_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmaxvq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmaxq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vhsubq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vhsubq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vhaddq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vhaddq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_veorq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vcmpneq_n_v4si ((int32x4_t)__a, (int32_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vcmphiq_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vcmphiq_n_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vcmpeqq_v4si ((int32x4_t)__a, (int32x4_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vcmpeqq_n_v4si ((int32x4_t)__a, (int32_t)__b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vcmpcsq_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vcmpcsq_n_v4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return (uint32x4_t)
-     __builtin_mve_vcaddq_rot90v4si ((int32x4_t)__a, (int32x4_t)__b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return (uint32x4_t)
-     __builtin_mve_vcaddq_rot270v4si ((int32x4_t)__a, (int32x4_t)__b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
  {
    return __builtin_mve_vbicq_uv4si (__a, __b);
  }
  
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vandq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p_u32 (uint32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvq_p_uv4si (__a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_u32 (uint32_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vaddvaq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_n_u32 (uint32x4_t __a, uint32_t __b)
- {
-   return __builtin_mve_vaddq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vabdq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r_u32 (uint32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vshlq_r_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vrshlq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_n_u32 (uint32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vrshlq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqshlq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r_u32 (uint32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqshlq_r_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqrshlq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_n_u32 (uint32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqrshlq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_s32 (uint32_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vminavq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_s32 (uint32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vminaq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_s32 (uint32_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmaxavq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_s32 (uint32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmaxaq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_n_u32 (uint32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vbrsrq_n_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n_u32 (uint32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vshlq_n_uv4si (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_n_u32 (uint32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vrshrq_n_uv4si (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n_u32 (uint32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vqshlq_n_uv4si (__a, __imm);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vcmpneq_n_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vcmpltq_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vcmpltq_n_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vcmpleq_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vcmpleq_n_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vcmpgtq_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vcmpgtq_n_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vcmpgeq_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vcmpgeq_n_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vcmpeqq_v4si (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vcmpeqq_n_v4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_n_s32 (int32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vqshluq_n_sv4si (__a, __imm);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p_s32 (int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvq_p_sv4si (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vsubq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vsubq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vshlq_r_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vrshlq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vrshlq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vrmulhq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vrhaddq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqsubq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqsubq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqshlq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqshlq_r_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqrshlq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqrshlq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqrdmulhq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqrdmulhq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqdmulhq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqdmulhq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqaddq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqaddq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vorrq_sv4si (__a, __b);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_s32 (int32x4_t __a, int32x4_t __b)
--- 886,896 ----
*************** __arm_vornq_s32 (int32x4_t __a, int32x4_
*** 6064,6368 ****
  
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmulq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vmulq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmulltq_int_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmullbq_int_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmulhq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmlsdavxq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmlsdavq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmladavxq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmladavq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_s32 (int32_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vminvq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vminq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_s32 (int32_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmaxvq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmaxq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vhsubq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vhsubq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vhcaddq_rot90_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vhcaddq_rot270_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vhaddq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vhaddq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_veorq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vcaddq_rot90v4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vcaddq_rot270v4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vbrsrq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_s32 (int32x4_t __a, int32x4_t __b)
  {
    return __builtin_mve_vbicq_sv4si (__a, __b);
  }
  
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vandq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_s32 (int32_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vaddvaq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vaddq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vabdq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n_s32 (int32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vshlq_n_sv4si (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_n_s32 (int32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vrshrq_n_sv4si (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n_s32 (int32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vqshlq_n_sv4si (__a, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_u16 (uint8x16_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vqmovntq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_u16 (uint8x16_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vqmovnbq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_p8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmulltq_poly_pv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_p8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __builtin_mve_vmullbq_poly_pv16qi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_u16 (uint8x16_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmovntq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_u16 (uint8x16_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmovnbq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmlaldavq_uv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovuntq_s16 (uint8x16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqmovuntq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovunbq_s16 (uint8x16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqmovunbq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_n_u8 (uint8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vshlltq_n_uv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_n_u8 (uint8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vshllbq_n_uv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_n_u16 (uint16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vorrq_n_uv8hi (__a, __imm);
- }
- 
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_n_u16 (uint16x8_t __a, const int __imm)
--- 900,910 ----
*************** __arm_vbicq_n_u16 (uint16x8_t __a, const
*** 6370,6480 ****
    return __builtin_mve_vbicq_n_uv8hi (__a, __imm);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_s16 (int8x16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqmovntq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_s16 (int8x16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqmovnbq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqdmulltq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vqdmulltq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqdmullbq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_n_s16 (int16x8_t __a, int16_t __b)
- {
-   return __builtin_mve_vqdmullbq_n_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_s16 (int8x16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmovntq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_s16 (int8x16_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmovnbq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavxq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmlsldavxq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmlsldavq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavxq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmlaldavxq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vmlaldavq_sv8hi (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_n_s8 (int8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vshlltq_n_sv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_n_s8 (int8x16_t __a, const int __imm)
- {
-   return __builtin_mve_vshllbq_n_sv16qi (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_n_s16 (int16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vorrq_n_sv8hi (__a, __imm);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_n_s16 (int16x8_t __a, const int __imm)
--- 912,917 ----
*************** __arm_vbicq_n_s16 (int16x8_t __a, const
*** 6482,6571 ****
    return __builtin_mve_vbicq_n_sv8hi (__a, __imm);
  }
  
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_u32 (uint16x8_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vqmovntq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_u32 (uint16x8_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vqmovnbq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_p16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmulltq_poly_pv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_p16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __builtin_mve_vmullbq_poly_pv8hi (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_u32 (uint16x8_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmovntq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_u32 (uint16x8_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmovnbq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vmlaldavq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovuntq_s32 (uint16x8_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqmovuntq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovunbq_s32 (uint16x8_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqmovunbq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_n_u16 (uint16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vshlltq_n_uv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_n_u16 (uint16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vshllbq_n_uv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_n_u32 (uint32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vorrq_n_uv4si (__a, __imm);
- }
- 
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_n_u32 (uint32x4_t __a, const int __imm)
--- 919,924 ----
*************** __arm_vbicq_n_u32 (uint32x4_t __a, const
*** 6573,6683 ****
    return __builtin_mve_vbicq_n_uv4si (__a, __imm);
  }
  
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_s32 (int16x8_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqmovntq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_s32 (int16x8_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqmovnbq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqdmulltq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqdmulltq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqdmullbq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_n_s32 (int32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vqdmullbq_n_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_s32 (int16x8_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmovntq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_s32 (int16x8_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmovnbq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavxq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmlsldavxq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmlsldavq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavxq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmlaldavxq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vmlaldavq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_n_s16 (int16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vshlltq_n_sv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_n_s16 (int16x8_t __a, const int __imm)
- {
-   return __builtin_mve_vshllbq_n_sv8hi (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_n_s32 (int32x4_t __a, const int __imm)
- {
-   return __builtin_mve_vorrq_n_sv4si (__a, __imm);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_n_s32 (int32x4_t __a, const int __imm)
--- 926,931 ----
*************** __arm_vbicq_n_s32 (int32x4_t __a, const
*** 6685,6697 ****
    return __builtin_mve_vbicq_n_sv4si (__a, __imm);
  }
  
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vrmlaldavhq_uv4si (__a, __b);
- }
- 
  __extension__ extern __inline mve_pred16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vctp8q_m (uint32_t __a, mve_pred16_t __p)
--- 933,938 ----
*************** __arm_vctp16q_m (uint32_t __a, mve_pred1
*** 6720,6809 ****
    return __builtin_mve_vctp16q_mv8bi (__a, __p);
  }
  
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvaq_u32 (uint64_t __a, uint32x4_t __b)
- {
-   return __builtin_mve_vaddlvaq_uv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhxq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vrmlsldavhxq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vrmlsldavhq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhxq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vrmlaldavhxq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vrmlaldavhq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvaq_s32 (int64_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vaddlvaq_sv4si (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_s8 (uint32_t __a, int8x16_t __b, int8x16_t __c)
- {
-   return __builtin_mve_vabavq_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_s16 (uint32_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vabavq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_s32 (uint32_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vabavq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_u8 (uint32_t __a, uint8x16_t __b, uint8x16_t __c)
- {
-   return __builtin_mve_vabavq_uv16qi(__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_u16 (uint32_t __a, uint16x8_t __b, uint16x8_t __c)
- {
-   return __builtin_mve_vabavq_uv8hi(__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_u32 (uint32_t __a, uint32x4_t __b, uint32x4_t __c)
- {
-   return __builtin_mve_vabavq_uv4si(__a, __b, __c);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_m_n_s16 (int16x8_t __a, const int __imm, mve_pred16_t __p)
--- 961,966 ----
*************** __arm_vbicq_m_n_u32 (uint32x4_t __a, con
*** 6834,6895 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrnbq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrnbq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrnbq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrnbq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrunbq_n_s16 (uint8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrunbq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrunbq_n_s32 (uint16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrunbq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaq_s32 (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vrmlaldavhaq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaq_u32 (uint64_t __a, uint32x4_t __b, uint32x4_t __c)
- {
-   return __builtin_mve_vrmlaldavhaq_uv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vshlcq_s8 (int8x16_t __a, uint32_t * __b, const int __imm)
  {
    int8x16_t __res = __builtin_mve_vshlcq_vec_sv16qi (__a, *__b, __imm);
--- 991,996 ----
*************** __arm_vshlcq_u32 (uint32x4_t __a, uint32
*** 6942,9804 ****
    return __res;
  }
  
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m_u8 (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_uv16qi (__inactive, __a, __p);
- }
- 
- __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);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_n_u8 (uint8x16_t __a, uint8x16_t __b, uint8_t __c)
- {
-   return __builtin_mve_vmlasq_n_uv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_n_u8 (uint8x16_t __a, uint8x16_t __b, uint8_t __c)
- {
-   return __builtin_mve_vmlaq_n_uv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavq_p_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_u8 (uint32_t __a, uint8x16_t __b, uint8x16_t __c)
- {
-   return __builtin_mve_vmladavaq_uv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p_u8 (uint8_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminvq_p_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p_u8 (uint8_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxvq_p_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m_n_u8 (uint8x16_t __inactive, uint8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_uv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_n_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmphiq_m_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmphiq_m_n_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_n_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpcsq_m_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpcsq_m_n_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_uv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p_u8 (uint32_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvaq_p_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __imm)
- {
-   return __builtin_mve_vsriq_n_uv16qi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __imm)
- {
-   return __builtin_mve_vsliq_n_uv16qi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r_u8 (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_r_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n_u8 (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_n_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r_u8 (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_r_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n_u8 (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_n_uv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_p_s8 (uint8_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminavq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_m_s8 (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminaq_m_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_p_s8 (uint8_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxavq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_m_s8 (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxaq_m_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_n_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_n_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_n_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_n_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_n_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_n_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r_s8 (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_r_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n_s8 (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_n_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r_s8 (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_r_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n_s8 (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_n_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vqnegq_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vqabsq_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_sv16qi (__inactive, __a, __p);
- }
- 
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_p_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavxq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_p_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_p_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavxq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p_s8 (int8_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminvq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p_s8 (int8_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxvq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m_n_s8 (int8x16_t __inactive, int8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclsq_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p_s8 (int32_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvaq_p_sv16qi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqrdmlsdhxq_sv16qi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqrdmlsdhq_sv16qi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-   return __builtin_mve_vqrdmlashq_n_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-   return __builtin_mve_vqdmlashq_n_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-   return __builtin_mve_vqrdmlahq_n_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqrdmladhxq_sv16qi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqrdmladhq_sv16qi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqdmlsdhxq_sv16qi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqdmlsdhq_sv16qi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-   return __builtin_mve_vqdmlahq_n_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqdmladhxq_sv16qi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-   return __builtin_mve_vqdmladhq_sv16qi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_s8 (int32_t __a, int8x16_t __b, int8x16_t __c)
- {
-   return __builtin_mve_vmlsdavaxq_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_s8 (int32_t __a, int8x16_t __b, int8x16_t __c)
- {
-   return __builtin_mve_vmlsdavaq_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-   return __builtin_mve_vmlasq_n_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-   return __builtin_mve_vmlaq_n_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_s8 (int32_t __a, int8x16_t __b, int8x16_t __c)
- {
-   return __builtin_mve_vmladavaxq_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_s8 (int32_t __a, int8x16_t __b, int8x16_t __c)
- {
-   return __builtin_mve_vmladavaq_sv16qi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __imm)
- {
-   return __builtin_mve_vsriq_n_sv16qi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __imm)
- {
-   return __builtin_mve_vsliq_n_sv16qi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m_u16 (uint16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_uv8hi (__inactive, __a, __p);
- }
- 
- __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);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
- {
-   return __builtin_mve_vmlasq_n_uv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
- {
-   return __builtin_mve_vmlaq_n_uv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavq_p_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_u16 (uint32_t __a, uint16x8_t __b, uint16x8_t __c)
- {
-   return __builtin_mve_vmladavaq_uv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p_u16 (uint16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminvq_p_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p_u16 (uint16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxvq_p_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m_n_u16 (uint16x8_t __inactive, uint16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_uv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_n_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmphiq_m_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmphiq_m_n_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_n_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpcsq_m_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpcsq_m_n_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_uv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p_u16 (uint32_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvaq_p_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vsriq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vsliq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r_u16 (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_r_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n_u16 (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_n_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r_u16 (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_r_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n_u16 (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_n_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_p_s16 (uint16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminavq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_m_s16 (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminaq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_p_s16 (uint16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxavq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_m_s16 (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxaq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_n_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_n_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_n_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_n_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_n_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_n_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r_s16 (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_r_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n_s16 (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_n_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r_s16 (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_r_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n_s16 (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_n_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vqnegq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vqabsq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavxq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavxq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p_s16 (int16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminvq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p_s16 (int16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxvq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m_n_s16 (int16x8_t __inactive, int16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclsq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p_s16 (int32_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvaq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqrdmlsdhxq_sv8hi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqrdmlsdhq_sv8hi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-   return __builtin_mve_vqrdmlashq_n_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-   return __builtin_mve_vqdmlashq_n_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-   return __builtin_mve_vqrdmlahq_n_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqrdmladhxq_sv8hi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqrdmladhq_sv8hi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqdmlsdhxq_sv8hi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqdmlsdhq_sv8hi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-   return __builtin_mve_vqdmlahq_n_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqdmladhxq_sv8hi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-   return __builtin_mve_vqdmladhq_sv8hi (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_s16 (int32_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vmlsdavaxq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_s16 (int32_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vmlsdavaq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-   return __builtin_mve_vmlasq_n_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-   return __builtin_mve_vmlaq_n_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_s16 (int32_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vmladavaxq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_s16 (int32_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vmladavaq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vsriq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vsliq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m_u32 (uint32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_uv4si (__inactive, __a, __p);
- }
- 
- __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);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
- {
-   return __builtin_mve_vmlasq_n_uv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
- {
-   return __builtin_mve_vmlaq_n_uv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavq_p_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_u32 (uint32_t __a, uint32x4_t __b, uint32x4_t __c)
- {
-   return __builtin_mve_vmladavaq_uv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p_u32 (uint32_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminvq_p_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p_u32 (uint32_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxvq_p_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m_n_u32 (uint32x4_t __inactive, uint32_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_uv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_n_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmphiq_m_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmphiq_m_n_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_n_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpcsq_m_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpcsq_m_n_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_uv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p_u32 (uint32_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvaq_p_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vsriq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vsliq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r_u32 (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_r_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n_u32 (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_n_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r_u32 (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_r_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n_u32 (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_n_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_p_s32 (uint32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminavq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_m_s32 (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminaq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_p_s32 (uint32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxavq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_m_s32 (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxaq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_n_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_n_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_n_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_n_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_n_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_n_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_r_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_n_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m_s32 (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_r_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_n_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_m_s32 (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vqnegq_m_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_m_s32 (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vqabsq_m_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m_s32 (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m_s32 (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavxq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavxq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p_s32 (int32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminvq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p_s32 (int32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxvq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m_n_s32 (int32x4_t __inactive, int32_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m_s32 (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_m_s32 (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclsq_m_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p_s32 (int32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddvaq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m_s32 (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_sv4si (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqrdmlsdhxq_sv4si (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqrdmlsdhq_sv4si (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-   return __builtin_mve_vqrdmlashq_n_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-   return __builtin_mve_vqdmlashq_n_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-   return __builtin_mve_vqrdmlahq_n_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqrdmladhxq_sv4si (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqrdmladhq_sv4si (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqdmlsdhxq_sv4si (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqdmlsdhq_sv4si (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-   return __builtin_mve_vqdmlahq_n_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqdmladhxq_sv4si (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-   return __builtin_mve_vqdmladhq_sv4si (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_s32 (int32_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vmlsdavaxq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_s32 (int32_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vmlsdavaq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-   return __builtin_mve_vmlasq_n_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-   return __builtin_mve_vmlaq_n_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_s32 (int32_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vmladavaxq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_s32 (int32_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vmladavaq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vsriq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vsliq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_u64 (uint64x2_t __a, uint64x2_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_uv2di (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_s64 (int64x2_t __a, int64x2_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_sv2di (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaxq_s32 (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vrmlaldavhaxq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhaq_s32 (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vrmlsldavhaq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhaxq_s32 (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vrmlsldavhaxq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvaq_p_s32 (int64_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddlvaq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev16q_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlaldavhq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhxq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlaldavhxq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlsldavhq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhxq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlsldavhxq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvaq_p_u32 (uint64_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddlvaq_p_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_m_u8 (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev16q_m_uv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhq_p_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlaldavhq_p_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m_n_s16 (int16x8_t __inactive, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_n_sv8hi (__inactive, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_n_s16 (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_n_sv8hi (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrntq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrnbq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrntq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vrshrnbq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vrshrntq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vshrnbq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vshrntq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_s16 (int64_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vmlaldavaq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaxq_s16 (int64_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vmlaldavaxq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaq_s16 (int64_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vmlsldavaq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaxq_s16 (int64_t __a, int16x8_t __b, int16x8_t __c)
- {
-   return __builtin_mve_vmlsldavaxq_sv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavxq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavxq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsldavq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavxq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsldavxq_p_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_m_s8 (int16x8_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovlbq_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_m_s8 (int16x8_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovltq_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_m_s16 (int8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovnbq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_m_s16 (int8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovntq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_m_s16 (int8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovnbq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_m_s16 (int8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovntq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m_s8 (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_sv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m_n_u16 (uint16x8_t __inactive, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_n_uv8hi (__inactive, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_n_u16 (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_n_uv8hi (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshruntq_n_s16 (uint8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshruntq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrunbq_n_s16 (uint8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrunbq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshruntq_n_s16 (uint8x16_t __a, int16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqshruntq_n_sv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovunbq_m_s16 (uint8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovunbq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovuntq_m_s16 (uint8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovuntq_m_sv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrntq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrnbq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrntq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vrshrnbq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vrshrntq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vshrnbq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-   return __builtin_mve_vshrntq_n_uv8hi (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_u16 (uint64_t __a, uint16x8_t __b, uint16x8_t __c)
- {
-   return __builtin_mve_vmlaldavaq_uv8hi (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_p_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavq_p_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_m_u8 (uint16x8_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovlbq_m_uv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_m_u8 (uint16x8_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovltq_m_uv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_m_u16 (uint8x16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovnbq_m_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_m_u16 (uint8x16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovntq_m_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_m_u16 (uint8x16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovnbq_m_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_m_u16 (uint8x16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovntq_m_uv8hi (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m_u8 (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_uv16qi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m_n_s32 (int32x4_t __inactive, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_n_sv4si (__inactive, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_n_s32 (int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_n_sv4si (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrntq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrnbq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrntq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vrshrnbq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vrshrntq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vshrnbq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vshrntq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_s32 (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vmlaldavaq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaxq_s32 (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vmlaldavaxq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaq_s32 (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vmlsldavaq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaxq_s32 (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-   return __builtin_mve_vmlsldavaxq_sv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavxq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavxq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsldavq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavxq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsldavxq_p_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_m_s16 (int32x4_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovlbq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_m_s16 (int32x4_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovltq_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_m_s32 (int16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovnbq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_m_s32 (int16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovntq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_m_s32 (int16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovnbq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_m_s32 (int16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovntq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m_s16 (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_sv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m_n_u32 (uint32x4_t __inactive, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_n_uv4si (__inactive, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_n_u32 (uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_n_uv4si (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshruntq_n_s32 (uint16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshruntq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrunbq_n_s32 (uint16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrunbq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshruntq_n_s32 (uint16x8_t __a, int32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqshruntq_n_sv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovunbq_m_s32 (uint16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovunbq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovuntq_m_s32 (uint16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovuntq_m_sv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqrshrntq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrnbq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vqshrntq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vrshrnbq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vrshrntq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vshrnbq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-   return __builtin_mve_vshrntq_n_uv4si (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_u32 (uint64_t __a, uint32x4_t __b, uint32x4_t __c)
- {
-   return __builtin_mve_vmlaldavaq_uv4si (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_p_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavq_p_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_m_u16 (uint32x4_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovlbq_m_uv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_m_u16 (uint32x4_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovltq_m_uv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_m_u32 (uint16x8_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovnbq_m_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_m_u32 (uint16x8_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovntq_m_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_m_u32 (uint16x8_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovnbq_m_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_m_u32 (uint16x8_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqmovntq_m_uv4si (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m_u16 (uint16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_uv8hi (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m_n_s8 (int8x16_t __a, int8x16_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsriq_m_n_sv16qi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_m_n_s8 (uint8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshluq_m_n_sv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p_s8 (uint32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vabavq_p_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsriq_m_n_uv16qi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p_u8 (uint32_t __a, uint8x16_t __b, uint8x16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vabavq_p_uv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m_n_s16 (int16x8_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsriq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_m_n_s16 (uint16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshluq_m_n_sv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p_s16 (uint32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vabavq_p_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsriq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p_u16 (uint32_t __a, uint16x8_t __b, uint16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vabavq_p_uv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m_n_s32 (int32x4_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsriq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_m_n_s32 (uint32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshluq_m_n_sv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p_s32 (uint32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vabavq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsriq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p_u32 (uint32_t __a, uint32x4_t __b, uint32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vabavq_p_uv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
--- 1043,1048 ----
*************** __arm_vbicq_m_u16 (uint16x8_t __inactive
*** 9843,10709 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot270_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot270_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot270_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot90_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot90_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot90_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p_s8 (int32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaq_p_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p_s32 (int32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p_s16 (int32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaq_p_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p_u8 (uint32_t __a, uint8x16_t __b, uint8x16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaq_p_uv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p_u32 (uint32_t __a, uint32x4_t __b, uint32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaq_p_uv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p_u16 (uint32_t __a, uint16x8_t __b, uint16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaq_p_uv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_p_s8 (int32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaxq_p_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_p_s32 (int32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaxq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_p_s16 (int32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmladavaxq_p_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaq_m_n_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaq_m_n_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaq_m_n_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m_n_u8 (uint8x16_t __a, uint8x16_t __b, uint8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaq_m_n_uv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaq_m_n_uv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaq_m_n_uv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlasq_m_n_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlasq_m_n_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlasq_m_n_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m_n_u8 (uint8x16_t __a, uint8x16_t __b, uint8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlasq_m_n_uv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlasq_m_n_uv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlasq_m_n_uv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_p_s8 (int32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavaq_p_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_p_s32 (int32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavaq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_p_s16 (int32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavaq_p_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_p_s8 (int32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavaxq_p_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_p_s32 (int32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavaxq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_p_s16 (int32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsdavaxq_p_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m_s8 (int16x8_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m_s32 (int64x2_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m_s16 (int32x4_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m_u8 (uint16x8_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m_u32 (uint64x2_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m_u16 (uint32x4_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m_s8 (int16x8_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m_s32 (int64x2_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m_s16 (int32x4_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m_u8 (uint16x8_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m_u32 (uint64x2_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m_u16 (uint32x4_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
  {
    return __builtin_mve_vornq_m_sv16qi (__inactive, __a, __b, __p);
--- 1087,1092 ----
*************** __arm_vornq_m_u16 (uint16x8_t __inactive
*** 10744,12282 ****
    return __builtin_mve_vornq_m_uv8hi (__inactive, __a, __b, __p);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_n_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_n_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_n_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqaddq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmladhq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmladhq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmladhq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmladhxq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmladhxq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmladhxq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_m_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlahq_m_n_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_m_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlahq_m_n_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_m_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlahq_m_n_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlsdhq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlsdhq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlsdhq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlsdhxq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlsdhxq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlsdhxq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulhq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulhq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulhq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulhq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulhq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulhq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmladhq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmladhq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmladhq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmladhxq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmladhxq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmladhxq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_m_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlahq_m_n_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_m_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlahq_m_n_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_m_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlahq_m_n_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_m_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlashq_m_n_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_m_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlashq_m_n_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_m_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlashq_m_n_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_m_n_s8 (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlashq_m_n_sv16qi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_m_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlashq_m_n_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_m_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmlashq_m_n_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlsdhq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlsdhq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlsdhq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlsdhxq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlsdhxq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmlsdhxq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmulhq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmulhq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmulhq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmulhq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmulhq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrdmulhq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshlq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_n_sv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_n_sv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_n_sv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_n_uv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_n_uv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_n_uv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshlq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_n_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_n_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_n_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqsubq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_s8 (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_s32 (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_s16 (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_sv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_sv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_sv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_uv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_uv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_uv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_sv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_sv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_sv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_uv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_uv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_uv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_sv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_sv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_sv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_uv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_uv4si (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_uv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m_n_s8 (int8x16_t __a, int8x16_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsliq_m_n_sv16qi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m_n_s32 (int32x4_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsliq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m_n_s16 (int16x8_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsliq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsliq_m_n_uv16qi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsliq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vsliq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_n_s8 (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_sv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_n_s32 (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_n_s16 (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_n_u8 (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_uv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_n_u32 (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_uv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_n_u16 (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_uv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_p_s32 (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavaq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_p_s16 (int64_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavaq_p_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_p_u32 (uint64_t __a, uint32x4_t __b, uint32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavaq_p_uv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_p_u16 (uint64_t __a, uint16x8_t __b, uint16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavaq_p_uv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaxq_p_s32 (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavaxq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaxq_p_s16 (int64_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlaldavaxq_p_sv8hi (__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)
- {
-   return __builtin_mve_vmlsldavaq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaq_p_s16 (int64_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsldavaq_p_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaxq_p_s32 (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsldavaxq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaxq_p_s16 (int64_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vmlsldavaxq_p_sv8hi (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_m_p8 (uint16x8_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_poly_m_pv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_m_p16 (uint32x4_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_poly_m_pv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_m_p8 (uint16x8_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_poly_m_pv16qi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_m_p16 (uint32x4_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_poly_m_pv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_m_n_s32 (int64x2_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmullbq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_m_n_s16 (int32x4_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmullbq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_m_s32 (int64x2_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmullbq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_m_s16 (int32x4_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmullbq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_m_n_s32 (int64x2_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulltq_m_n_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_m_n_s16 (int32x4_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulltq_m_n_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_m_s32 (int64x2_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulltq_m_sv4si (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_m_s16 (int32x4_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vqdmulltq_m_sv8hi (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_m_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrnbq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_m_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrnbq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_m_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrnbq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_m_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrnbq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_m_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrntq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_m_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrntq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_m_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrntq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_m_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrntq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrunbq_m_n_s32 (uint16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrunbq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrunbq_m_n_s16 (uint8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshrunbq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshruntq_m_n_s32 (uint16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshruntq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshruntq_m_n_s16 (uint8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqrshruntq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_m_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrnbq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_m_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrnbq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_m_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrnbq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_m_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrnbq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_m_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrntq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_m_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrntq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_m_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrntq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_m_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrntq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrunbq_m_n_s32 (uint16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrunbq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrunbq_m_n_s16 (uint8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshrunbq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshruntq_m_n_s32 (uint16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshruntq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshruntq_m_n_s16 (uint8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vqshruntq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaq_p_s32 (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlaldavhaq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaq_p_u32 (uint64_t __a, uint32x4_t __b, uint32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlaldavhaq_p_uv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaxq_p_s32 (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlaldavhaxq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhaq_p_s32 (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlsldavhaq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhaxq_p_s32 (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmlsldavhaxq_p_sv4si (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_m_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrnbq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_m_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrnbq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_m_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrnbq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_m_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrnbq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_m_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrntq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_m_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrntq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_m_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrntq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_m_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrntq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_m_n_s8 (int16x8_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshllbq_m_n_sv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_m_n_s16 (int32x4_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshllbq_m_n_sv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_m_n_u8 (uint16x8_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshllbq_m_n_uv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_m_n_u16 (uint32x4_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshllbq_m_n_uv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_m_n_s8 (int16x8_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlltq_m_n_sv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_m_n_s16 (int32x4_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlltq_m_n_sv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_m_n_u8 (uint16x8_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlltq_m_n_uv16qi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_m_n_u16 (uint32x4_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlltq_m_n_uv8hi (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_m_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrnbq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_m_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrnbq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_m_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrnbq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_m_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrnbq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_m_n_s32 (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrntq_m_n_sv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_m_n_s16 (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrntq_m_n_sv8hi (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_m_n_u32 (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrntq_m_n_uv4si (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_m_n_u16 (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrntq_m_n_uv8hi (__a, __b, __imm, __p);
- }
- 
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vstrbq_scatter_offset_s8 (int8_t * __base, uint8x16_t __offset, int8x16_t __value)
--- 1127,1132 ----
*************** __arm_vldrwq_gather_base_z_u32 (uint32x4
*** 12669,12716 ****
    return __builtin_mve_vldrwq_gather_base_z_uv4si (__addr, __offset, __p);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q_s8 (int8_t const * __base)
- {
-   return __builtin_mve_vld1q_sv16qi ((__builtin_neon_qi *) __base);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q_s32 (int32_t const * __base)
- {
-   return __builtin_mve_vld1q_sv4si ((__builtin_neon_si *) __base);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q_s16 (int16_t const * __base)
- {
-   return __builtin_mve_vld1q_sv8hi ((__builtin_neon_hi *) __base);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q_u8 (uint8_t const * __base)
- {
-   return __builtin_mve_vld1q_uv16qi ((__builtin_neon_qi *) __base);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q_u32 (uint32_t const * __base)
- {
-   return __builtin_mve_vld1q_uv4si ((__builtin_neon_si *) __base);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q_u16 (uint16_t const * __base)
- {
-   return __builtin_mve_vld1q_uv8hi ((__builtin_neon_hi *) __base);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vldrhq_gather_offset_s32 (int16_t const * __base, uint32x4_t __offset)
--- 1519,1524 ----
*************** __arm_vldrwq_gather_shifted_offset_z_u32
*** 13051,13098 ****
  
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q_s8 (int8_t * __addr, int8x16_t __value)
- {
-   __builtin_mve_vst1q_sv16qi ((__builtin_neon_qi *) __addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q_s32 (int32_t * __addr, int32x4_t __value)
- {
-   __builtin_mve_vst1q_sv4si ((__builtin_neon_si *) __addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q_s16 (int16_t * __addr, int16x8_t __value)
- {
-   __builtin_mve_vst1q_sv8hi ((__builtin_neon_hi *) __addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q_u8 (uint8_t * __addr, uint8x16_t __value)
- {
-   __builtin_mve_vst1q_uv16qi ((__builtin_neon_qi *) __addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q_u32 (uint32_t * __addr, uint32x4_t __value)
- {
-   __builtin_mve_vst1q_uv4si ((__builtin_neon_si *) __addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q_u16 (uint16_t * __addr, uint16x8_t __value)
- {
-   __builtin_mve_vst1q_uv8hi ((__builtin_neon_hi *) __addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vstrhq_scatter_offset_s32 (int16_t * __base, uint32x4_t __offset, int32x4_t __value)
  {
    __builtin_mve_vstrhq_scatter_offset_sv4si ((__builtin_neon_hi *) __base, __offset, __value);
--- 1859,1864 ----
*************** __arm_vstrwq_scatter_shifted_offset_u32
*** 13427,13474 ****
    __builtin_mve_vstrwq_scatter_shifted_offset_uv4si ((__builtin_neon_si *) __base, __offset, __value);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_s8 (int8x16_t __a, int8x16_t __b)
- {
-   return __a + __b;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_s16 (int16x8_t __a, int16x8_t __b)
- {
-   return __a + __b;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_s32 (int32x4_t __a, int32x4_t __b)
- {
-   return __a + __b;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
- {
-   return __a + __b;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
- {
-   return __a + __b;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
- {
-   return __a + __b;
- }
- 
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vddupq_m_n_u8 (uint8x16_t __inactive, uint32_t __a, const int __imm, mve_pred16_t __p)
--- 2193,2198 ----
*************** __arm_viwdupq_x_wb_u32 (uint32_t *__a, u
*** 14232,15336 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_x_n_s8 (int8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_x_n_s16 (int16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_x_n_s32 (int32_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_x_n_u8 (uint8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_x_n_u16 (uint16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_x_n_u32 (uint32_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x_s32 (int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclsq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclsq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_x_s32 (int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclsq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x_s32 (int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x_u8 (uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x_u16 (uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x_u32 (uint32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vclzq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x_s32 (int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulhq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_x_p8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_poly_m_pv16qi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_x_p16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_poly_m_pv8hi (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_sv16qi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_sv8hi (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_sv4si (__arm_vuninitializedq_s64 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_uv16qi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_uv8hi (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmullbq_int_m_uv4si (__arm_vuninitializedq_u64 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_x_p8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_poly_m_pv16qi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_x_p16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_poly_m_pv8hi (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_sv16qi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_sv8hi (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_sv4si (__arm_vuninitializedq_s64 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_uv16qi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_uv8hi (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulltq_int_m_uv4si (__arm_vuninitializedq_u64 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhaddq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot90_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot90_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot90_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot270_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot270_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhcaddq_rot270_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_n_s8 (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_n_s16 (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_n_u8 (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_n_u16 (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_n_u32 (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vhsubq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrhaddq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrmulhq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
  {
    return __builtin_mve_vbicq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
--- 2956,2961 ----
*************** __arm_vbicq_x_u32 (uint32x4_t __a, uint3
*** 15373,15588 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x_n_s8 (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x_n_s16 (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x_n_s32 (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x_n_u8 (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x_n_u16 (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x_n_u32 (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovlbq_m_sv16qi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovlbq_m_sv8hi (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_x_u8 (uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovlbq_m_uv16qi (__arm_vuninitializedq_u16 (), __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_x_u16 (uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovlbq_m_uv8hi (__arm_vuninitializedq_u32 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovltq_m_sv16qi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovltq_m_sv8hi (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_x_u8 (uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovltq_m_uv16qi (__arm_vuninitializedq_u16 (), __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_x_u16 (uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmovltq_m_uv8hi (__arm_vuninitializedq_u32 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_s32 (int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_u8 (uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_u16 (uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_u32 (uint32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_n_s16 (const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_n_s32 (const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_n_sv4si (__arm_vuninitializedq_s32 (), __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_n_u16 (const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x_n_u32 (const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vmvnq_m_n_uv4si (__arm_vuninitializedq_u32 (), __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
  {
    return __builtin_mve_vornq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
--- 2998,3003 ----
*************** __arm_vornq_x_u32 (uint32x4_t __a, uint3
*** 15623,16020 ****
    return __builtin_mve_vornq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x_u8 (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x_u16 (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x_u32 (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev16q_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_x_u8 (uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev16q_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x_u8 (uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x_u16 (uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x_s8 (int8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x_s16 (int16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x_s32 (int32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_sv4si (__arm_vuninitializedq_s32 (), __a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x_u8 (uint8x16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x_u16 (uint16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x_u32 (uint32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_uv4si (__arm_vuninitializedq_u32 (), __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x_u8 (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x_u16 (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x_u32 (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshlq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_x_n_s8 (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshllbq_m_n_sv16qi (__arm_vuninitializedq_s16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_x_n_s16 (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshllbq_m_n_sv8hi (__arm_vuninitializedq_s32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_x_n_u8 (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshllbq_m_n_uv16qi (__arm_vuninitializedq_u16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_x_n_u16 (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshllbq_m_n_uv8hi (__arm_vuninitializedq_u32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_x_n_s8 (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlltq_m_n_sv16qi (__arm_vuninitializedq_s16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_x_n_s16 (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlltq_m_n_sv8hi (__arm_vuninitializedq_s32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_x_n_u8 (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlltq_m_n_uv16qi (__arm_vuninitializedq_u16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_x_n_u16 (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlltq_m_n_uv8hi (__arm_vuninitializedq_u32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_sv16qi (__arm_vuninitializedq_s8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_sv8hi (__arm_vuninitializedq_s16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_sv4si (__arm_vuninitializedq_s32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_u8 (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_uv16qi (__arm_vuninitializedq_u8 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_u16 (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_uv8hi (__arm_vuninitializedq_u16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_u32 (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_uv4si (__arm_vuninitializedq_u32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n_s8 (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n_s16 (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n_s32 (int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n_u8 (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n_u16 (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n_u32 (uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshlq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x_n_s8 (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x_n_s16 (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x_n_s32 (int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x_n_u8 (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x_n_u16 (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x_n_u32 (uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vrshrq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x_n_s8 (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_sv16qi (__arm_vuninitializedq_s8 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x_n_s16 (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_sv8hi (__arm_vuninitializedq_s16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x_n_s32 (int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_sv4si (__arm_vuninitializedq_s32 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x_n_u8 (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_uv16qi (__arm_vuninitializedq_u8 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x_n_u16 (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_uv8hi (__arm_vuninitializedq_u16 (), __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x_n_u32 (uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-   return __builtin_mve_vshrq_m_n_uv4si (__arm_vuninitializedq_u32 (), __a, __imm, __p);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vadciq_s32 (int32x4_t __a, int32x4_t __b, unsigned * __carry_out)
--- 3038,3043 ----
*************** __arm_vst4q_f32 (float32_t * __addr, flo
*** 16735,16887 ****
    __builtin_mve_vst4qv4sf (__addr, __rv.__o);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vrndxq_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vrndxq_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vrndq_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vrndq_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vrndpq_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vrndpq_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vrndnq_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vrndnq_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vrndmq_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vrndmq_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vrndaq_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vrndaq_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vrev64q_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vrev64q_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vnegq_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vnegq_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n_f16 (float16_t __a)
- {
-   return __builtin_mve_vdupq_n_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n_f32 (float32_t __a)
- {
-   return __builtin_mve_vdupq_n_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vabsq_fv8hf (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_f32 (float32x4_t __a)
- {
-   return __builtin_mve_vabsq_fv4sf (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_f16 (float16x8_t __a)
- {
-   return __builtin_mve_vrev32q_fv8hf (__a);
- }
- 
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvttq_f32_f16 (float16x8_t __a)
--- 3758,3763 ----
*************** __arm_vcvtmq_s32_f32 (float32x4_t __a)
*** 17066,17099 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vsubq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vsubq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_n_f16 (float16x8_t __a, int32_t __b)
- {
-   return __builtin_mve_vbrsrq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_n_f32 (float32x4_t __a, int32_t __b)
- {
-   return __builtin_mve_vbrsrq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtq_n_f16_s16 (int16x8_t __a, const int __imm6)
  {
    return __builtin_mve_vcvtq_n_to_f_sv8hf (__a, __imm6);
--- 3942,3947 ----
*************** __arm_vcvtq_n_f32_u32 (uint32x4_t __a, c
*** 17120,17139 ****
    return __builtin_mve_vcvtq_n_to_f_uv4sf (__a, __imm6);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_f16 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcreateq_f32 (uint64_t __a, uint64_t __b)
- {
-   return __builtin_mve_vcreateq_fv4sf (__a, __b);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtq_n_s16_f16 (float16x8_t __a, const int __imm6)
--- 3968,3973 ----
*************** __arm_vcvtq_n_u32_f32 (float32x4_t __a,
*** 17162,17265 ****
    return __builtin_mve_vcvtq_n_from_f_uv4si (__a, __imm6);
  }
  
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vcmpneq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmpneq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vcmpltq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmpltq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vcmpleq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmpleq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vcmpgtq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmpgtq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vcmpgeq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmpgeq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vcmpeqq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmpeqq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vsubq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vorrq_fv8hf (__a, __b);
- }
- 
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_f16 (float16x8_t __a, float16x8_t __b)
--- 3996,4001 ----
*************** __arm_vornq_f16 (float16x8_t __a, float1
*** 17269,17517 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vmulq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vmulq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmvq_f16 (float16_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vminnmvq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vminnmq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmavq_f16 (float16_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vminnmavq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmaq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vminnmaq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmvq_f16 (float16_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vmaxnmvq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vmaxnmq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmavq_f16 (float16_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vmaxnmavq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmaq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vmaxnmaq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_veorq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmulq_rot90v8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmulq_rot270v8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmulq_rot180v8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcmulqv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcaddq_rot90v8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vcaddq_rot270v8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_f16 (float16x8_t __a, float16x8_t __b)
  {
    return __builtin_mve_vbicq_fv8hf (__a, __b);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vandq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_n_f16 (float16x8_t __a, float16_t __b)
- {
-   return __builtin_mve_vaddq_n_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __builtin_mve_vabdq_fv8hf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vcmpneq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmpneq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vcmpltq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmpltq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vcmpleq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmpleq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vcmpgtq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmpgtq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vcmpgeq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmpgeq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vcmpeqq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmpeqq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vsubq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vorrq_fv4sf (__a, __b);
- }
- 
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_f32 (float32x4_t __a, float32x4_t __b)
--- 4005,4015 ----
*************** __arm_vornq_f32 (float32x4_t __a, float3
*** 17521,17671 ****
  
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vmulq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vmulq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmvq_f32 (float32_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vminnmvq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vminnmq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmavq_f32 (float32_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vminnmavq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmaq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vminnmaq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmvq_f32 (float32_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vmaxnmvq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vmaxnmq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmavq_f32 (float32_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vmaxnmavq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmaq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vmaxnmaq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_veorq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmulq_rot90v4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmulq_rot270v4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmulq_rot180v4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcmulqv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcaddq_rot90v4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vcaddq_rot270v4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_f32 (float32x4_t __a, float32x4_t __b)
  {
    return __builtin_mve_vbicq_fv4sf (__a, __b);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vandq_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_n_f32 (float32x4_t __a, float32_t __b)
- {
-   return __builtin_mve_vaddq_n_fv4sf (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __builtin_mve_vabdq_fv4sf (__a, __b);
- }
- 
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvttq_f16_f32 (float16x8_t __a, float32x4_t __b)
--- 4019,4029 ----
*************** __arm_vcvtbq_f16_f32 (float16x8_t __a, f
*** 17680,17699 ****
    return __builtin_mve_vcvtbq_f16_f32v8hf (__a, __b);
  }
  
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_fv4sf (__a, __b, __p);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtaq_m_s16_f16 (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
--- 4038,4043 ----
*************** __arm_vcvttq_m_f32_f16 (float32x4_t __in
*** 17779,17854 ****
    return __builtin_mve_vcvttq_m_f32_f16v4sf (__inactive, __a, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-   return __builtin_mve_vcmlaqv8hf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot180_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-   return __builtin_mve_vcmlaq_rot180v8hf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot270_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-   return __builtin_mve_vcmlaq_rot270v8hf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot90_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-   return __builtin_mve_vcmlaq_rot90v8hf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-   return __builtin_mve_vfmaq_fv8hf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
- {
-   return __builtin_mve_vfmaq_n_fv8hf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmasq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
- {
-   return __builtin_mve_vfmasq_n_fv8hf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-   return __builtin_mve_vfmsq_fv8hf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_fv8hf (__inactive, __a, __p);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtmq_m_s16_f16 (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
--- 4123,4128 ----
*************** __arm_vcvtq_m_s16_f16 (int16x8_t __inact
*** 17877,18071 ****
    return __builtin_mve_vcvtq_m_from_f_sv8hi (__inactive, __a, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m_n_f16 (float16x8_t __inactive, float16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmaq_m_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmaq_m_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmavq_p_f16 (float16_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmavq_p_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmvq_p_f16 (float16_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmvq_p_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmaq_m_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmaq_m_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmavq_p_f16 (float16_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmavq_p_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmvq_p_f16 (float16_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmvq_p_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndaq_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndmq_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndnq_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndpq_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndq_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_m_f16 (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndxq_m_fv8hf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_n_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_n_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_n_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_n_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_n_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_fv8hf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_n_fv8hf (__a, __b, __p);
- }
- 
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtmq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
--- 4151,4156 ----
*************** __arm_vcvtq_m_u16_f16 (uint16x8_t __inac
*** 18094,18162 ****
    return __builtin_mve_vcvtq_m_from_f_uv8hi (__inactive, __a, __p);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-   return __builtin_mve_vcmlaqv4sf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot180_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-   return __builtin_mve_vcmlaq_rot180v4sf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot270_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-   return __builtin_mve_vcmlaq_rot270v4sf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot90_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-   return __builtin_mve_vcmlaq_rot90v4sf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-   return __builtin_mve_vfmaq_fv4sf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
- {
-   return __builtin_mve_vfmaq_n_fv4sf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmasq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
- {
-   return __builtin_mve_vfmasq_n_fv4sf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-   return __builtin_mve_vfmsq_fv4sf (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_fv4sf (__inactive, __a, __p);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtmq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
--- 4179,4184 ----
*************** __arm_vcvtq_m_s32_f32 (int32x4_t __inact
*** 18185,18379 ****
    return __builtin_mve_vcvtq_m_from_f_sv4si (__inactive, __a, __p);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m_n_f32 (float32x4_t __inactive, float32_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmaq_m_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmaq_m_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmavq_p_f32 (float32_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmavq_p_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmvq_p_f32 (float32_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmvq_p_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmaq_m_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmaq_m_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmavq_p_f32 (float32_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmavq_p_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmvq_p_f32 (float32_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmvq_p_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vpselq_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndaq_m_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndmq_m_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndnq_m_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndpq_m_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndq_m_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_m_f32 (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndxq_m_fv4sf (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpeqq_m_n_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgeq_m_n_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpgtq_m_n_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpleq_m_n_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpltq_m_n_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_fv4sf (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmpneq_m_n_fv4sf (__a, __b, __p);
- }
- 
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtmq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
--- 4207,4212 ----
*************** __arm_vcvtq_m_n_f32_s32 (float32x4_t __i
*** 18432,18493 ****
  
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_n_f32 (float32x4_t __inactive, float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m_n_f16 (float16x8_t __inactive, float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
  {
    return __builtin_mve_vbicq_m_fv4sf (__inactive, __a, __b, __p);
--- 4265,4270 ----
*************** __arm_vbicq_m_f16 (float16x8_t __inactiv
*** 18500,18659 ****
    return __builtin_mve_vbicq_m_fv8hf (__inactive, __a, __b, __p);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m_n_f32 (float32x4_t __inactive, float32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m_n_f16 (float16x8_t __inactive, float16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_m_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmlaq_m_fv4sf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_m_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmlaq_m_fv8hf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot180_m_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmlaq_rot180_m_fv4sf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot180_m_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmlaq_rot180_m_fv8hf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot270_m_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmlaq_rot270_m_fv4sf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot270_m_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmlaq_rot270_m_fv8hf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot90_m_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmlaq_rot90_m_fv4sf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot90_m_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmlaq_rot90_m_fv8hf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot180_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot180_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot270_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot270_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot90_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot90_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtq_m_n_s32_f32 (int32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p)
--- 4277,4282 ----
*************** __arm_vcvtq_m_n_u16_f16 (uint16x8_t __in
*** 18684,18815 ****
  
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_m_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vfmaq_m_fv4sf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_m_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vfmaq_m_fv8hf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_m_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vfmaq_m_n_fv4sf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_m_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vfmaq_m_n_fv8hf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmasq_m_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vfmasq_m_n_fv4sf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmasq_m_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vfmasq_m_n_fv8hf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmsq_m_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vfmsq_m_fv4sf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmsq_m_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-   return __builtin_mve_vfmsq_m_fv8hf (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_n_f32 (float32x4_t __inactive, float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m_n_f16 (float16x8_t __inactive, float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
  {
    return __builtin_mve_vornq_m_fv4sf (__inactive, __a, __b, __p);
--- 4307,4312 ----
*************** __arm_vornq_m_f16 (float16x8_t __inactiv
*** 18824,18885 ****
  
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_n_f32 (float32x4_t __inactive, float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_fv4sf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m_n_f16 (float16x8_t __inactive, float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_fv8hf (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q_f32 (float32_t const * __base)
- {
-   return __builtin_mve_vld1q_fv4sf((__builtin_neon_si *) __base);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q_f16 (float16_t const * __base)
- {
-   return __builtin_mve_vld1q_fv8hf((__builtin_neon_hi *) __base);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vldrwq_f32 (float32_t const * __base)
  {
    return __builtin_mve_vldrwq_fv4sf((__builtin_neon_si *) __base);
--- 4321,4326 ----
*************** __arm_vstrwq_f32 (float32_t * __addr, fl
*** 18992,19011 ****
  
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q_f32 (float32_t * __addr, float32x4_t __value)
- {
-   __builtin_mve_vst1q_fv4sf ((__builtin_neon_si *) __addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q_f16 (float16_t * __addr, float16x8_t __value)
- {
-   __builtin_mve_vst1q_fv8hf ((__builtin_neon_hi *) __addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vstrhq_f16 (float16_t * __addr, float16x8_t __value)
  {
    __builtin_mve_vstrhq_fv8hf ((__builtin_neon_hi *) __addr, __value);
--- 4433,4438 ----
*************** __arm_vstrwq_scatter_shifted_offset_p_f3
*** 19088,19107 ****
    __builtin_mve_vstrwq_scatter_shifted_offset_p_fv4sf ((__builtin_neon_si *) __base, __offset, __value, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_f16 (float16x8_t __a, float16x8_t __b)
- {
-   return __a + __b;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_f32 (float32x4_t __a, float32x4_t __b)
- {
-   return __a + __b;
- }
- 
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vldrwq_gather_base_wb_f32 (uint32x4_t * __addr, const int __offset)
--- 4515,4520 ----
*************** __arm_vstrwq_scatter_base_wb_p_f32 (uint
*** 19136,19393 ****
    *__addr = __builtin_mve_vstrwq_scatter_base_wb_p_fv4sf (*__addr, __offset, __value, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_x_n_f16 (float16_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_x_n_f32 (float32_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vdupq_m_n_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vminnmq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmaxnmq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vabdq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vabsq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vaddq_m_n_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vnegq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vmulq_m_n_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_n_f16 (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x_n_f32 (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vsubq_m_n_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot90_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcaddq_rot270_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot90_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot90_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot180_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot180_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot270_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vcmulq_rot270_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtaq_x_s16_f16 (float16x8_t __a, mve_pred16_t __p)
--- 4549,4554 ----
*************** __arm_vcvtq_x_n_u32_f32 (float32x4_t __a
*** 19628,19731 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndnq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndnq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndmq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndmq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndpq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndpq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndaq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndaq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndxq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrndxq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vandq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
  {
    return __builtin_mve_vbicq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
--- 4789,4794 ----
*************** __arm_vbicq_x_f32 (float32x4_t __a, floa
*** 19740,19773 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x_n_f16 (float16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x_n_f32 (float32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vbrsrq_m_n_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_veorq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
  {
    return __builtin_mve_vornq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
--- 4803,4808 ----
*************** __arm_vornq_x_f32 (float32x4_t __a, floa
*** 19780,19820 ****
    return __builtin_mve_vornq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x_f32 (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-   return __builtin_mve_vorrq_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev32q_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x_f16 (float16x8_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_fv8hf (__arm_vuninitializedq_f16 (), __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x_f32 (float32x4_t __a, mve_pred16_t __p)
- {
-   return __builtin_mve_vrev64q_m_fv4sf (__arm_vuninitializedq_f32 (), __a, __p);
- }
- 
  __extension__ extern __inline float16x8x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vld4q_f16 (float16_t const * __addr)
--- 4815,4820 ----
*************** __arm_vst4q (uint32_t * __addr, uint32x4
*** 19975,20610 ****
   __arm_vst4q_u32 (__addr, __value);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n (int8_t __a)
- {
-  return __arm_vdupq_n_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n (int16_t __a)
- {
-  return __arm_vdupq_n_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n (int32_t __a)
- {
-  return __arm_vdupq_n_s32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq (int8x16_t __a)
- {
-  return __arm_vabsq_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq (int16x8_t __a)
- {
-  return __arm_vabsq_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq (int32x4_t __a)
- {
-  return __arm_vabsq_s32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq (int8x16_t __a)
- {
-  return __arm_vclsq_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq (int16x8_t __a)
- {
-  return __arm_vclsq_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq (int32x4_t __a)
- {
-  return __arm_vclsq_s32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq (int8x16_t __a)
- {
-  return __arm_vclzq_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq (int16x8_t __a)
- {
-  return __arm_vclzq_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq (int32x4_t __a)
- {
-  return __arm_vclzq_s32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq (int8x16_t __a)
- {
-  return __arm_vnegq_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq (int16x8_t __a)
- {
-  return __arm_vnegq_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq (int32x4_t __a)
- {
-  return __arm_vnegq_s32 (__a);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvq (int32x4_t __a)
- {
-  return __arm_vaddlvq_s32 (__a);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq (int8x16_t __a)
- {
-  return __arm_vaddvq_s8 (__a);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq (int16x8_t __a)
- {
-  return __arm_vaddvq_s16 (__a);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq (int32x4_t __a)
- {
-  return __arm_vaddvq_s32 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq (int8x16_t __a)
- {
-  return __arm_vmovlbq_s8 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq (int16x8_t __a)
- {
-  return __arm_vmovlbq_s16 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq (int8x16_t __a)
- {
-  return __arm_vmovltq_s8 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq (int16x8_t __a)
- {
-  return __arm_vmovltq_s16 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq (int8x16_t __a)
- {
-  return __arm_vmvnq_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq (int16x8_t __a)
- {
-  return __arm_vmvnq_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq (int32x4_t __a)
- {
-  return __arm_vmvnq_s32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q (int8x16_t __a)
- {
-  return __arm_vrev16q_s8 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q (int8x16_t __a)
- {
-  return __arm_vrev32q_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q (int16x8_t __a)
- {
-  return __arm_vrev32q_s16 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q (int8x16_t __a)
- {
-  return __arm_vrev64q_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q (int16x8_t __a)
- {
-  return __arm_vrev64q_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q (int32x4_t __a)
- {
-  return __arm_vrev64q_s32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq (int8x16_t __a)
- {
-  return __arm_vqabsq_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq (int16x8_t __a)
- {
-  return __arm_vqabsq_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq (int32x4_t __a)
- {
-  return __arm_vqabsq_s32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq (int8x16_t __a)
- {
-  return __arm_vqnegq_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq (int16x8_t __a)
- {
-  return __arm_vqnegq_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq (int32x4_t __a)
- {
-  return __arm_vqnegq_s32 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q (uint8x16_t __a)
- {
-  return __arm_vrev64q_u8 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q (uint16x8_t __a)
- {
-  return __arm_vrev64q_u16 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q (uint32x4_t __a)
- {
-  return __arm_vrev64q_u32 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq (uint8x16_t __a)
- {
-  return __arm_vmvnq_u8 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq (uint16x8_t __a)
- {
-  return __arm_vmvnq_u16 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq (uint32x4_t __a)
- {
-  return __arm_vmvnq_u32 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n (uint8_t __a)
- {
-  return __arm_vdupq_n_u8 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n (uint16_t __a)
- {
-  return __arm_vdupq_n_u16 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n (uint32_t __a)
- {
-  return __arm_vdupq_n_u32 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq (uint8x16_t __a)
- {
-  return __arm_vclzq_u8 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq (uint16x8_t __a)
- {
-  return __arm_vclzq_u16 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq (uint32x4_t __a)
- {
-  return __arm_vclzq_u32 (__a);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq (uint8x16_t __a)
- {
-  return __arm_vaddvq_u8 (__a);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq (uint16x8_t __a)
- {
-  return __arm_vaddvq_u16 (__a);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq (uint32x4_t __a)
- {
-  return __arm_vaddvq_u32 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q (uint8x16_t __a)
- {
-  return __arm_vrev32q_u8 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q (uint16x8_t __a)
- {
-  return __arm_vrev32q_u16 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq (uint8x16_t __a)
- {
-  return __arm_vmovltq_u8 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq (uint16x8_t __a)
- {
-  return __arm_vmovltq_u16 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq (uint8x16_t __a)
- {
-  return __arm_vmovlbq_u8 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq (uint16x8_t __a)
- {
-  return __arm_vmovlbq_u16 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q (uint8x16_t __a)
- {
-  return __arm_vrev16q_u8 (__a);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvq (uint32x4_t __a)
- {
-  return __arm_vaddlvq_u32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq (int8x16_t __a, const int __imm)
- {
-  return __arm_vshrq_n_s8 (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq (int16x8_t __a, const int __imm)
- {
-  return __arm_vshrq_n_s16 (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq (int32x4_t __a, const int __imm)
- {
-  return __arm_vshrq_n_s32 (__a, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq (uint8x16_t __a, const int __imm)
- {
-  return __arm_vshrq_n_u8 (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq (uint16x8_t __a, const int __imm)
- {
-  return __arm_vshrq_n_u16 (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq (uint32x4_t __a, const int __imm)
- {
-  return __arm_vshrq_n_u32 (__a, __imm);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvq_p (int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vaddlvq_p_s32 (__a, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvq_p (uint32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vaddlvq_p_u32 (__a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vcmpneq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vcmpneq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vcmpneq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vcmpneq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vcmpneq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vcmpneq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vshlq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vshlq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vshlq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq (uint8x16_t __a, int8x16_t __b)
- {
-  return __arm_vshlq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq (uint16x8_t __a, int16x8_t __b)
- {
-  return __arm_vshlq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq (uint32x4_t __a, int32x4_t __b)
- {
-  return __arm_vshlq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vsubq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vsubq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vrmulhq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vrhaddq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vqsubq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vqsubq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vqaddq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vqaddq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vorrq_u8 (__a, __b);
- }
- 
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq (uint8x16_t __a, uint8x16_t __b)
--- 4975,4980 ----
*************** __arm_vornq (uint8x16_t __a, uint8x16_t
*** 20614,21163 ****
  
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vmulq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vmulq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vmulltq_int_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vmullbq_int_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vmulhq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vmladavq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq (uint8_t __a, uint8x16_t __b)
- {
-  return __arm_vminvq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vminq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq (uint8_t __a, uint8x16_t __b)
- {
-  return __arm_vmaxvq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vmaxq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vhsubq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vhsubq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vhaddq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vhaddq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_veorq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vcmpneq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vcmphiq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vcmphiq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vcmpeqq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vcmpeqq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vcmpcsq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vcmpcsq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90 (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vcaddq_rot90_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270 (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vcaddq_rot270_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (uint8x16_t __a, uint8x16_t __b)
  {
   return __arm_vbicq_u8 (__a, __b);
  }
  
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vandq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p (uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vaddvq_p_u8 (__a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq (uint32_t __a, uint8x16_t __b)
- {
-  return __arm_vaddvaq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (uint8x16_t __a, uint8_t __b)
- {
-  return __arm_vaddq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vabdq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r (uint8x16_t __a, int32_t __b)
- {
-  return __arm_vshlq_r_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (uint8x16_t __a, int8x16_t __b)
- {
-  return __arm_vrshlq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (uint8x16_t __a, int32_t __b)
- {
-  return __arm_vrshlq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq (uint8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqshlq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r (uint8x16_t __a, int32_t __b)
- {
-  return __arm_vqshlq_r_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (uint8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqrshlq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (uint8x16_t __a, int32_t __b)
- {
-  return __arm_vqrshlq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq (uint8_t __a, int8x16_t __b)
- {
-  return __arm_vminavq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq (uint8x16_t __a, int8x16_t __b)
- {
-  return __arm_vminaq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq (uint8_t __a, int8x16_t __b)
- {
-  return __arm_vmaxavq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq (uint8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmaxaq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq (uint8x16_t __a, int32_t __b)
- {
-  return __arm_vbrsrq_n_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n (uint8x16_t __a, const int __imm)
- {
-  return __arm_vshlq_n_u8 (__a, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq (uint8x16_t __a, const int __imm)
- {
-  return __arm_vrshrq_n_u8 (__a, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n (uint8x16_t __a, const int __imm)
- {
-  return __arm_vqshlq_n_u8 (__a, __imm);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vcmpneq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vcmpltq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vcmpltq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vcmpleq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vcmpleq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vcmpgtq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vcmpgtq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vcmpgeq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vcmpgeq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vcmpeqq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vcmpeqq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq (int8x16_t __a, const int __imm)
- {
-  return __arm_vqshluq_n_s8 (__a, __imm);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vaddvq_p_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vsubq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vsubq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r (int8x16_t __a, int32_t __b)
- {
-  return __arm_vshlq_r_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vrshlq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (int8x16_t __a, int32_t __b)
- {
-  return __arm_vrshlq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vrmulhq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vrhaddq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqsubq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vqsubq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqshlq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r (int8x16_t __a, int32_t __b)
- {
-  return __arm_vqshlq_r_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqrshlq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (int8x16_t __a, int32_t __b)
- {
-  return __arm_vqrshlq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqrdmulhq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vqrdmulhq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqdmulhq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vqdmulhq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqaddq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vqaddq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vorrq_s8 (__a, __b);
- }
- 
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq (int8x16_t __a, int8x16_t __b)
--- 4984,4994 ----
*************** __arm_vornq (int8x16_t __a, int8x16_t __
*** 21167,21450 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmulq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vmulq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmulltq_int_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmullbq_int_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmulhq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmlsdavxq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmlsdavq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmladavxq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmladavq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq (int8_t __a, int8x16_t __b)
- {
-  return __arm_vminvq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vminq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq (int8_t __a, int8x16_t __b)
- {
-  return __arm_vmaxvq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vmaxq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vhsubq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vhsubq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90 (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vhcaddq_rot90_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270 (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vhcaddq_rot270_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vhaddq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vhaddq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_veorq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90 (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vcaddq_rot90_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270 (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vcaddq_rot270_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq (int8x16_t __a, int32_t __b)
- {
-  return __arm_vbrsrq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (int8x16_t __a, int8x16_t __b)
  {
   return __arm_vbicq_s8 (__a, __b);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vandq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq (int32_t __a, int8x16_t __b)
- {
-  return __arm_vaddvaq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (int8x16_t __a, int8_t __b)
- {
-  return __arm_vaddq_n_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vabdq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n (int8x16_t __a, const int __imm)
- {
-  return __arm_vshlq_n_s8 (__a, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq (int8x16_t __a, const int __imm)
- {
-  return __arm_vrshrq_n_s8 (__a, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n (int8x16_t __a, const int __imm)
- {
-  return __arm_vqshlq_n_s8 (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vsubq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vsubq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vrmulhq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vrhaddq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vqsubq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vqsubq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vqaddq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vqaddq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vorrq_u16 (__a, __b);
- }
- 
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq (uint16x8_t __a, uint16x8_t __b)
--- 4998,5008 ----
*************** __arm_vornq (uint16x8_t __a, uint16x8_t
*** 21454,22003 ****
  
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmulq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vmulq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmulltq_int_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmullbq_int_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmulhq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmladavq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq (uint16_t __a, uint16x8_t __b)
- {
-  return __arm_vminvq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vminq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq (uint16_t __a, uint16x8_t __b)
- {
-  return __arm_vmaxvq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmaxq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vhsubq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vhsubq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vhaddq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vhaddq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_veorq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vcmpneq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vcmphiq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vcmphiq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vcmpeqq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vcmpeqq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vcmpcsq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vcmpcsq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90 (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vcaddq_rot90_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270 (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vcaddq_rot270_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (uint16x8_t __a, uint16x8_t __b)
  {
   return __arm_vbicq_u16 (__a, __b);
  }
  
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vandq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p (uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vaddvq_p_u16 (__a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq (uint32_t __a, uint16x8_t __b)
- {
-  return __arm_vaddvaq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (uint16x8_t __a, uint16_t __b)
- {
-  return __arm_vaddq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vabdq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r (uint16x8_t __a, int32_t __b)
- {
-  return __arm_vshlq_r_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (uint16x8_t __a, int16x8_t __b)
- {
-  return __arm_vrshlq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (uint16x8_t __a, int32_t __b)
- {
-  return __arm_vrshlq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq (uint16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqshlq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r (uint16x8_t __a, int32_t __b)
- {
-  return __arm_vqshlq_r_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (uint16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqrshlq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (uint16x8_t __a, int32_t __b)
- {
-  return __arm_vqrshlq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq (uint16_t __a, int16x8_t __b)
- {
-  return __arm_vminavq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq (uint16x8_t __a, int16x8_t __b)
- {
-  return __arm_vminaq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq (uint16_t __a, int16x8_t __b)
- {
-  return __arm_vmaxavq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq (uint16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmaxaq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq (uint16x8_t __a, int32_t __b)
- {
-  return __arm_vbrsrq_n_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n (uint16x8_t __a, const int __imm)
- {
-  return __arm_vshlq_n_u16 (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq (uint16x8_t __a, const int __imm)
- {
-  return __arm_vrshrq_n_u16 (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n (uint16x8_t __a, const int __imm)
- {
-  return __arm_vqshlq_n_u16 (__a, __imm);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vcmpneq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vcmpltq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vcmpltq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vcmpleq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vcmpleq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vcmpgtq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vcmpgtq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vcmpgeq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vcmpgeq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vcmpeqq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vcmpeqq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq (int16x8_t __a, const int __imm)
- {
-  return __arm_vqshluq_n_s16 (__a, __imm);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vaddvq_p_s16 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vsubq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vsubq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r (int16x8_t __a, int32_t __b)
- {
-  return __arm_vshlq_r_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vrshlq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (int16x8_t __a, int32_t __b)
- {
-  return __arm_vrshlq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vrmulhq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vrhaddq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqsubq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vqsubq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqshlq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r (int16x8_t __a, int32_t __b)
- {
-  return __arm_vqshlq_r_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqrshlq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (int16x8_t __a, int32_t __b)
- {
-  return __arm_vqrshlq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqrdmulhq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vqrdmulhq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqdmulhq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vqdmulhq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqaddq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vqaddq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vorrq_s16 (__a, __b);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq (int16x8_t __a, int16x8_t __b)
--- 5012,5022 ----
*************** __arm_vornq (int16x8_t __a, int16x8_t __
*** 22007,22290 ****
  
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmulq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vmulq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmulltq_int_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmullbq_int_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmulhq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmlsdavxq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmlsdavq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmladavxq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmladavq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq (int16_t __a, int16x8_t __b)
- {
-  return __arm_vminvq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vminq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq (int16_t __a, int16x8_t __b)
- {
-  return __arm_vmaxvq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmaxq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vhsubq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vhsubq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90 (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vhcaddq_rot90_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270 (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vhcaddq_rot270_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vhaddq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vhaddq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_veorq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90 (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vcaddq_rot90_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270 (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vcaddq_rot270_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq (int16x8_t __a, int32_t __b)
- {
-  return __arm_vbrsrq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (int16x8_t __a, int16x8_t __b)
  {
   return __arm_vbicq_s16 (__a, __b);
  }
  
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vandq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq (int32_t __a, int16x8_t __b)
- {
-  return __arm_vaddvaq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vaddq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vabdq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n (int16x8_t __a, const int __imm)
- {
-  return __arm_vshlq_n_s16 (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq (int16x8_t __a, const int __imm)
- {
-  return __arm_vrshrq_n_s16 (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n (int16x8_t __a, const int __imm)
- {
-  return __arm_vqshlq_n_s16 (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vsubq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vsubq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vrmulhq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vrhaddq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vqsubq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vqsubq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vqaddq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vqaddq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vorrq_u32 (__a, __b);
- }
- 
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq (uint32x4_t __a, uint32x4_t __b)
--- 5026,5036 ----
*************** __arm_vornq (uint32x4_t __a, uint32x4_t
*** 22294,22843 ****
  
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vmulq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vmulq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vmulltq_int_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vmullbq_int_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vmulhq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vmladavq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq (uint32_t __a, uint32x4_t __b)
- {
-  return __arm_vminvq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vminq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq (uint32_t __a, uint32x4_t __b)
- {
-  return __arm_vmaxvq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vmaxq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vhsubq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vhsubq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vhaddq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vhaddq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_veorq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vcmpneq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vcmphiq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vcmphiq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vcmpeqq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vcmpeqq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vcmpcsq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vcmpcsq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90 (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vcaddq_rot90_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270 (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vcaddq_rot270_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (uint32x4_t __a, uint32x4_t __b)
  {
   return __arm_vbicq_u32 (__a, __b);
  }
  
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vandq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p (uint32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vaddvq_p_u32 (__a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq (uint32_t __a, uint32x4_t __b)
- {
-  return __arm_vaddvaq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (uint32x4_t __a, uint32_t __b)
- {
-  return __arm_vaddq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vabdq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r (uint32x4_t __a, int32_t __b)
- {
-  return __arm_vshlq_r_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (uint32x4_t __a, int32x4_t __b)
- {
-  return __arm_vrshlq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (uint32x4_t __a, int32_t __b)
- {
-  return __arm_vrshlq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq (uint32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqshlq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r (uint32x4_t __a, int32_t __b)
- {
-  return __arm_vqshlq_r_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (uint32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqrshlq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (uint32x4_t __a, int32_t __b)
- {
-  return __arm_vqrshlq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq (uint32_t __a, int32x4_t __b)
- {
-  return __arm_vminavq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq (uint32x4_t __a, int32x4_t __b)
- {
-  return __arm_vminaq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq (uint32_t __a, int32x4_t __b)
- {
-  return __arm_vmaxavq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq (uint32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmaxaq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq (uint32x4_t __a, int32_t __b)
- {
-  return __arm_vbrsrq_n_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n (uint32x4_t __a, const int __imm)
- {
-  return __arm_vshlq_n_u32 (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq (uint32x4_t __a, const int __imm)
- {
-  return __arm_vrshrq_n_u32 (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n (uint32x4_t __a, const int __imm)
- {
-  return __arm_vqshlq_n_u32 (__a, __imm);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vcmpneq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vcmpltq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vcmpltq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vcmpleq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vcmpleq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vcmpgtq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vcmpgtq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vcmpgeq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vcmpgeq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vcmpeqq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vcmpeqq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq (int32x4_t __a, const int __imm)
- {
-  return __arm_vqshluq_n_s32 (__a, __imm);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvq_p (int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vaddvq_p_s32 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vsubq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vsubq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_r (int32x4_t __a, int32_t __b)
- {
-  return __arm_vshlq_r_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vrshlq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vrshlq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vrmulhq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vrhaddq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqsubq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vqsubq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqshlq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_r (int32x4_t __a, int32_t __b)
- {
-  return __arm_vqshlq_r_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqrshlq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vqrshlq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqrdmulhq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vqrdmulhq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqdmulhq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vqdmulhq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqaddq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vqaddq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vorrq_s32 (__a, __b);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq (int32x4_t __a, int32x4_t __b)
--- 5040,5050 ----
*************** __arm_vornq (int32x4_t __a, int32x4_t __
*** 22847,23151 ****
  
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmulq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vmulq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmulltq_int_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmullbq_int_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmulhq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmlsdavxq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmlsdavq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmladavxq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmladavq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq (int32_t __a, int32x4_t __b)
- {
-  return __arm_vminvq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vminq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq (int32_t __a, int32x4_t __b)
- {
-  return __arm_vmaxvq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmaxq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vhsubq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vhsubq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90 (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vhcaddq_rot90_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270 (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vhcaddq_rot270_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vhaddq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vhaddq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_veorq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90 (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vcaddq_rot90_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270 (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vcaddq_rot270_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vbrsrq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (int32x4_t __a, int32x4_t __b)
  {
   return __arm_vbicq_s32 (__a, __b);
  }
  
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vandq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq (int32_t __a, int32x4_t __b)
- {
-  return __arm_vaddvaq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vaddq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vabdq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_n (int32x4_t __a, const int __imm)
- {
-  return __arm_vshlq_n_s32 (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq (int32x4_t __a, const int __imm)
- {
-  return __arm_vrshrq_n_s32 (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_n (int32x4_t __a, const int __imm)
- {
-  return __arm_vqshlq_n_s32 (__a, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq (uint8x16_t __a, uint16x8_t __b)
- {
-  return __arm_vqmovntq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq (uint8x16_t __a, uint16x8_t __b)
- {
-  return __arm_vqmovnbq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vmulltq_poly_p8 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vmullbq_poly_p8 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq (uint8x16_t __a, uint16x8_t __b)
- {
-  return __arm_vmovntq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq (uint8x16_t __a, uint16x8_t __b)
- {
-  return __arm_vmovnbq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmlaldavq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovuntq (uint8x16_t __a, int16x8_t __b)
- {
-  return __arm_vqmovuntq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovunbq (uint8x16_t __a, int16x8_t __b)
- {
-  return __arm_vqmovunbq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq (uint8x16_t __a, const int __imm)
- {
-  return __arm_vshlltq_n_u8 (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq (uint8x16_t __a, const int __imm)
- {
-  return __arm_vshllbq_n_u8 (__a, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (uint16x8_t __a, const int __imm)
- {
-  return __arm_vorrq_n_u16 (__a, __imm);
- }
- 
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (uint16x8_t __a, const int __imm)
--- 5054,5064 ----
*************** __arm_vbicq (uint16x8_t __a, const int _
*** 23153,23263 ****
   return __arm_vbicq_n_u16 (__a, __imm);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq (int8x16_t __a, int16x8_t __b)
- {
-  return __arm_vqmovntq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq (int8x16_t __a, int16x8_t __b)
- {
-  return __arm_vqmovnbq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqdmulltq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vqdmulltq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqdmullbq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq (int16x8_t __a, int16_t __b)
- {
-  return __arm_vqdmullbq_n_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq (int8x16_t __a, int16x8_t __b)
- {
-  return __arm_vmovntq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq (int8x16_t __a, int16x8_t __b)
- {
-  return __arm_vmovnbq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavxq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmlsldavxq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmlsldavq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavxq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmlaldavxq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vmlaldavq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq (int8x16_t __a, const int __imm)
- {
-  return __arm_vshlltq_n_s8 (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq (int8x16_t __a, const int __imm)
- {
-  return __arm_vshllbq_n_s8 (__a, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (int16x8_t __a, const int __imm)
- {
-  return __arm_vorrq_n_s16 (__a, __imm);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (int16x8_t __a, const int __imm)
--- 5066,5071 ----
*************** __arm_vbicq (int16x8_t __a, const int __
*** 23265,23354 ****
   return __arm_vbicq_n_s16 (__a, __imm);
  }
  
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq (uint16x8_t __a, uint32x4_t __b)
- {
-  return __arm_vqmovntq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq (uint16x8_t __a, uint32x4_t __b)
- {
-  return __arm_vqmovnbq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmulltq_poly_p16 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vmullbq_poly_p16 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq (uint16x8_t __a, uint32x4_t __b)
- {
-  return __arm_vmovntq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq (uint16x8_t __a, uint32x4_t __b)
- {
-  return __arm_vmovnbq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vmlaldavq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovuntq (uint16x8_t __a, int32x4_t __b)
- {
-  return __arm_vqmovuntq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovunbq (uint16x8_t __a, int32x4_t __b)
- {
-  return __arm_vqmovunbq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq (uint16x8_t __a, const int __imm)
- {
-  return __arm_vshlltq_n_u16 (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq (uint16x8_t __a, const int __imm)
- {
-  return __arm_vshllbq_n_u16 (__a, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (uint32x4_t __a, const int __imm)
- {
-  return __arm_vorrq_n_u32 (__a, __imm);
- }
- 
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (uint32x4_t __a, const int __imm)
--- 5073,5078 ----
*************** __arm_vbicq (uint32x4_t __a, const int _
*** 23356,23466 ****
   return __arm_vbicq_n_u32 (__a, __imm);
  }
  
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq (int16x8_t __a, int32x4_t __b)
- {
-  return __arm_vqmovntq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq (int16x8_t __a, int32x4_t __b)
- {
-  return __arm_vqmovnbq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqdmulltq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vqdmulltq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqdmullbq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq (int32x4_t __a, int32_t __b)
- {
-  return __arm_vqdmullbq_n_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq (int16x8_t __a, int32x4_t __b)
- {
-  return __arm_vmovntq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq (int16x8_t __a, int32x4_t __b)
- {
-  return __arm_vmovnbq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavxq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmlsldavxq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmlsldavq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavxq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmlaldavxq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vmlaldavq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq (int16x8_t __a, const int __imm)
- {
-  return __arm_vshlltq_n_s16 (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq (int16x8_t __a, const int __imm)
- {
-  return __arm_vshllbq_n_s16 (__a, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (int32x4_t __a, const int __imm)
- {
-  return __arm_vorrq_n_s32 (__a, __imm);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (int32x4_t __a, const int __imm)
--- 5080,5085 ----
*************** __arm_vbicq (int32x4_t __a, const int __
*** 23468,23564 ****
   return __arm_vbicq_n_s32 (__a, __imm);
  }
  
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vrmlaldavhq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvaq (uint64_t __a, uint32x4_t __b)
- {
-  return __arm_vaddlvaq_u32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhxq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vrmlsldavhxq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vrmlsldavhq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhxq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vrmlaldavhxq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vrmlaldavhq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvaq (int64_t __a, int32x4_t __b)
- {
-  return __arm_vaddlvaq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq (uint32_t __a, int8x16_t __b, int8x16_t __c)
- {
-  return __arm_vabavq_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq (uint32_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vabavq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq (uint32_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vabavq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq (uint32_t __a, uint8x16_t __b, uint8x16_t __c)
- {
-  return __arm_vabavq_u8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq (uint32_t __a, uint16x8_t __b, uint16x8_t __c)
- {
-  return __arm_vabavq_u16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq (uint32_t __a, uint32x4_t __b, uint32x4_t __c)
- {
-  return __arm_vabavq_u32 (__a, __b, __c);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_m_n (int16x8_t __a, const int __imm, mve_pred16_t __p)
--- 5087,5092 ----
*************** __arm_vbicq_m_n (uint32x4_t __a, const i
*** 23589,23650 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vqrshrnbq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vqrshrnbq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vqrshrnbq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vqrshrnbq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrunbq (uint8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vqrshrunbq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrunbq (uint16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vqrshrunbq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaq (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vrmlaldavhaq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaq (uint64_t __a, uint32x4_t __b, uint32x4_t __c)
- {
-  return __arm_vrmlaldavhaq_u32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vshlcq (int8x16_t __a, uint32_t * __b, const int __imm)
  {
   return __arm_vshlcq_s8 (__a, __b, __imm);
--- 5117,5122 ----
*************** __arm_vshlcq (uint32x4_t __a, uint32_t *
*** 23685,26546 ****
   return __arm_vshlcq_u32 (__a, __b, __imm);
  }
  
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_m_u8 (__inactive, __a, __p);
- }
- 
- __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);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq (uint8x16_t __a, uint8x16_t __b, uint8_t __c)
- {
-  return __arm_vmlasq_n_u8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq (uint8x16_t __a, uint8x16_t __b, uint8_t __c)
- {
-  return __arm_vmlaq_n_u8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavq_p_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq (uint32_t __a, uint8x16_t __b, uint8x16_t __c)
- {
-  return __arm_vmladavaq_u8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p (uint8_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vminvq_p_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p (uint8_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxvq_p_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m (uint8x16_t __inactive, uint8_t __a, mve_pred16_t __p)
- {
-  return __arm_vdupq_m_n_u8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmphiq_m_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmphiq_m_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpcsq_m_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpcsq_m_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_m_u8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p (uint32_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddvaq_p_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq (uint8x16_t __a, uint8x16_t __b, const int __imm)
- {
-  return __arm_vsriq_n_u8 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq (uint8x16_t __a, uint8x16_t __b, const int __imm)
- {
-  return __arm_vsliq_n_u8 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_r_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_r_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_p (uint8_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vminavq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_m (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vminaq_m_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_p (uint8_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxavq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_m (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxaq_m_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_r_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_r_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vqnegq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vqabsq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_p (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsdavxq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_p (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsdavq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_p (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavxq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p (int8_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vminvq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p (int8_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxvq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m (int8x16_t __inactive, int8_t __a, mve_pred16_t __p)
- {
-  return __arm_vdupq_m_n_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vclsq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p (int32_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddvaq_p_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqrdmlsdhxq_s8 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqrdmlsdhq_s8 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-  return __arm_vqrdmlashq_n_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-  return __arm_vqdmlashq_n_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-  return __arm_vqrdmlahq_n_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqrdmladhxq_s8 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqrdmladhq_s8 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqdmlsdhxq_s8 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqdmlsdhq_s8 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-  return __arm_vqdmlahq_n_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqdmladhxq_s8 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq (int8x16_t __inactive, int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vqdmladhq_s8 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq (int32_t __a, int8x16_t __b, int8x16_t __c)
- {
-  return __arm_vmlsdavaxq_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq (int32_t __a, int8x16_t __b, int8x16_t __c)
- {
-  return __arm_vmlsdavaq_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-  return __arm_vmlasq_n_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq (int8x16_t __a, int8x16_t __b, int8_t __c)
- {
-  return __arm_vmlaq_n_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq (int32_t __a, int8x16_t __b, int8x16_t __c)
- {
-  return __arm_vmladavaxq_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq (int32_t __a, int8x16_t __b, int8x16_t __c)
- {
-  return __arm_vmladavaq_s8 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq (int8x16_t __a, int8x16_t __b, const int __imm)
- {
-  return __arm_vsriq_n_s8 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq (int8x16_t __a, int8x16_t __b, const int __imm)
- {
-  return __arm_vsliq_n_s8 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m (uint16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_m_u16 (__inactive, __a, __p);
- }
- 
- __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);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
- {
-  return __arm_vmlasq_n_u16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
- {
-  return __arm_vmlaq_n_u16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavq_p_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq (uint32_t __a, uint16x8_t __b, uint16x8_t __c)
- {
-  return __arm_vmladavaq_u16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p (uint16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminvq_p_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p (uint16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxvq_p_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m (uint16x8_t __inactive, uint16_t __a, mve_pred16_t __p)
- {
-  return __arm_vdupq_m_n_u16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmphiq_m_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmphiq_m_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpcsq_m_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpcsq_m_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m (uint16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_m_u16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p (uint32_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddvaq_p_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq (uint16x8_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vsriq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq (uint16x8_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vsliq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_r_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_r_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_p (uint16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminavq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_m (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminaq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_p (uint16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxavq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_m (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxaq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_r_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_r_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vqnegq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vqabsq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsdavxq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsdavq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavxq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p (int16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminvq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p (int16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxvq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m (int16x8_t __inactive, int16_t __a, mve_pred16_t __p)
- {
-  return __arm_vdupq_m_n_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vclsq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p (int32_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddvaq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqrdmlsdhxq_s16 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqrdmlsdhq_s16 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-  return __arm_vqrdmlashq_n_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-  return __arm_vqdmlashq_n_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-  return __arm_vqrdmlahq_n_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqrdmladhxq_s16 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqrdmladhq_s16 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqdmlsdhxq_s16 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqdmlsdhq_s16 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-  return __arm_vqdmlahq_n_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqdmladhxq_s16 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq (int16x8_t __inactive, int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vqdmladhq_s16 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq (int32_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vmlsdavaxq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq (int32_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vmlsdavaq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-  return __arm_vmlasq_n_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq (int16x8_t __a, int16x8_t __b, int16_t __c)
- {
-  return __arm_vmlaq_n_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq (int32_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vmladavaxq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq (int32_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vmladavaq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq (int16x8_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vsriq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq (int16x8_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vsliq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m (uint32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_m_u32 (__inactive, __a, __p);
- }
- 
- __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);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
- {
-  return __arm_vmlasq_n_u32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
- {
-  return __arm_vmlaq_n_u32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavq_p_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq (uint32_t __a, uint32x4_t __b, uint32x4_t __c)
- {
-  return __arm_vmladavaq_u32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p (uint32_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminvq_p_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p (uint32_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxvq_p_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m (uint32x4_t __inactive, uint32_t __a, mve_pred16_t __p)
- {
-  return __arm_vdupq_m_n_u32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmphiq_m_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmphiq_m (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmphiq_m_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpcsq_m_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpcsq_m (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpcsq_m_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m (uint32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_m_u32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p (uint32_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddvaq_p_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq (uint32x4_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vsriq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq (uint32x4_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vsliq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_r_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_r_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminavq_p (uint32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminavq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminaq_m (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminaq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxavq_p (uint32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxavq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxaq_m (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxaq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_r (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_r_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m_n (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_m_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_r (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_r_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m_n (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqnegq_m (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vqnegq_m_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqabsq_m (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vqabsq_m_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_m_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_m_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavxq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsdavxq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsdavq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavxq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavxq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmladavq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminvq_p (int32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminvq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxvq_p (int32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxvq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m (int32x4_t __inactive, int32_t __a, mve_pred16_t __p)
- {
-  return __arm_vdupq_m_n_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_m (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_m_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_m (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vclsq_m_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddvaq_p (int32_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddvaq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m (int32x4_t __inactive, int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_m_s32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqrdmlsdhxq_s32 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqrdmlsdhq_s32 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-  return __arm_vqrdmlashq_n_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-  return __arm_vqdmlashq_n_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-  return __arm_vqrdmlahq_n_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqrdmladhxq_s32 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqrdmladhq_s32 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqdmlsdhxq_s32 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqdmlsdhq_s32 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-  return __arm_vqdmlahq_n_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqdmladhxq_s32 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq (int32x4_t __inactive, int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vqdmladhq_s32 (__inactive, __a, __b);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq (int32_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vmlsdavaxq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq (int32_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vmlsdavaq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-  return __arm_vmlasq_n_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq (int32x4_t __a, int32x4_t __b, int32_t __c)
- {
-  return __arm_vmlaq_n_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq (int32_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vmladavaxq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq (int32_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vmladavaq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq (int32x4_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vsriq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq (int32x4_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vsliq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (uint64x2_t __a, uint64x2_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_u64 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (int64x2_t __a, int64x2_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_s64 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaxq (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vrmlaldavhaxq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhaq (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vrmlsldavhaq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhaxq (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vrmlsldavhaxq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvaq_p (int64_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddlvaq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev16q_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmlaldavhq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhxq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmlaldavhxq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmlsldavhq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhxq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmlsldavhxq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddlvaq_p (uint64_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddlvaq_p_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_m (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev16q_m_u8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhq_p (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmlaldavhq_p_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m (int16x8_t __inactive, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vmvnq_m_n_s16 (__inactive, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_n (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_n_s16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vqrshrntq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vqshrnbq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vqshrntq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vrshrnbq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vrshrntq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vshrnbq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq (int8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vshrntq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq (int64_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vmlaldavaq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaxq (int64_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vmlaldavaxq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaq (int64_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vmlsldavaq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaxq (int64_t __a, int16x8_t __b, int16x8_t __c)
- {
-  return __arm_vmlsldavaxq_s16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlaldavq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavxq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlaldavxq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsldavq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavxq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsldavxq_p_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_m (int16x8_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovlbq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_m (int16x8_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovltq_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_m (int8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmovnbq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_m (int8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmovntq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_m (int8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovnbq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_m (int8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovntq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m (int8x16_t __inactive, int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_m_s8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m (uint16x8_t __inactive, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vmvnq_m_n_u16 (__inactive, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_n (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_n_u16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshruntq (uint8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vqrshruntq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrunbq (uint8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vqshrunbq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshruntq (uint8x16_t __a, int16x8_t __b, const int __imm)
- {
-  return __arm_vqshruntq_n_s16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovunbq_m (uint8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovunbq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovuntq_m (uint8x16_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovuntq_m_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vqrshrntq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vqshrnbq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vqshrntq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vrshrnbq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vrshrntq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vshrnbq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq (uint8x16_t __a, uint16x8_t __b, const int __imm)
- {
-  return __arm_vshrntq_n_u16 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq (uint64_t __a, uint16x8_t __b, uint16x8_t __c)
- {
-  return __arm_vmlaldavaq_u16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_p (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlaldavq_p_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_m (uint16x8_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovlbq_m_u8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_m (uint16x8_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovltq_m_u8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_m (uint8x16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmovnbq_m_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_m (uint8x16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmovntq_m_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_m (uint8x16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovnbq_m_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_m (uint8x16_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovntq_m_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_m_u8 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m (int32x4_t __inactive, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vmvnq_m_n_s32 (__inactive, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_n (int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_n_s32 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vqrshrntq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vqshrnbq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vqshrntq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vrshrnbq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vrshrntq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vshrnbq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq (int16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vshrntq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vmlaldavaq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaxq (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vmlaldavaxq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaq (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vmlsldavaq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaxq (int64_t __a, int32x4_t __b, int32x4_t __c)
- {
-  return __arm_vmlsldavaxq_s32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlaldavq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavxq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlaldavxq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsldavq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavxq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlsldavxq_p_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_m (int32x4_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovlbq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_m (int32x4_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovltq_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_m (int16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmovnbq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_m (int16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmovntq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_m (int16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovnbq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_m (int16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovntq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m (int16x8_t __inactive, int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_m_s16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_m (uint32x4_t __inactive, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vmvnq_m_n_u32 (__inactive, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m_n (uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_n_u32 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshruntq (uint16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vqrshruntq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrunbq (uint16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vqshrunbq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshruntq (uint16x8_t __a, int32x4_t __b, const int __imm)
- {
-  return __arm_vqshruntq_n_s32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovunbq_m (uint16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovunbq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovuntq_m (uint16x8_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovuntq_m_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vqrshrntq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vqshrnbq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vqshrntq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vrshrnbq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vrshrntq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vshrnbq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq (uint16x8_t __a, uint32x4_t __b, const int __imm)
- {
-  return __arm_vshrntq_n_u32 (__a, __b, __imm);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq (uint64_t __a, uint32x4_t __b, uint32x4_t __c)
- {
-  return __arm_vmlaldavaq_u32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavq_p (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmlaldavq_p_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_m (uint32x4_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovlbq_m_u16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_m (uint32x4_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovltq_m_u16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovnbq_m (uint16x8_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmovnbq_m_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovntq_m (uint16x8_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmovntq_m_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovnbq_m (uint16x8_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovnbq_m_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqmovntq_m (uint16x8_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqmovntq_m_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m (uint16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_m_u16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m (int8x16_t __a, int8x16_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsriq_m_n_s8 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_m (uint8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshluq_m_n_s8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p (uint32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-  return __arm_vabavq_p_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m (uint8x16_t __a, uint8x16_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsriq_m_n_u8 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m (uint8x16_t __inactive, uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p (uint32_t __a, uint8x16_t __b, uint8x16_t __c, mve_pred16_t __p)
- {
-  return __arm_vabavq_p_u8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m (int16x8_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsriq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_m (uint16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshluq_m_n_s16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p (uint32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vabavq_p_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m (uint16x8_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsriq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m (uint16x8_t __inactive, uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p (uint32_t __a, uint16x8_t __b, uint16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vabavq_p_u16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m (int32x4_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsriq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshluq_m (uint32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshluq_m_n_s32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p (uint32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vabavq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsriq_m (uint32x4_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsriq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m (uint32x4_t __inactive, uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabavq_p (uint32_t __a, uint32x4_t __b, uint32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vabavq_p_u32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_n_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_n_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_n_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_m_u16 (__inactive, __a, __b, __p);
- }
- 
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
--- 5157,5162 ----
*************** __arm_vbicq_m (uint16x8_t __inactive, ui
*** 26585,27451 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m (int8x16_t __inactive, int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m (int16x8_t __inactive, int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m (uint8x16_t __inactive, uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_m_n_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m (uint32x4_t __inactive, uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_m_n_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m (uint16x8_t __inactive, uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_m_n_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_n_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_n_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_n_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot270_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot270_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot270_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot90_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot90_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot90_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_n_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_n_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_n_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p (int32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaq_p_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p (int32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p (int32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaq_p_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p (uint32_t __a, uint8x16_t __b, uint8x16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaq_p_u8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p (uint32_t __a, uint32x4_t __b, uint32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaq_p_u32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaq_p (uint32_t __a, uint16x8_t __b, uint16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaq_p_u16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_p (int32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaxq_p_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_p (int32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaxq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmladavaxq_p (int32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmladavaxq_p_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaq_m_n_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaq_m_n_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaq_m_n_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m (uint8x16_t __a, uint8x16_t __b, uint8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaq_m_n_u8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m (uint32x4_t __a, uint32x4_t __b, uint32_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaq_m_n_u32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaq_m (uint16x8_t __a, uint16x8_t __b, uint16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaq_m_n_u16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlasq_m_n_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlasq_m_n_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlasq_m_n_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m (uint8x16_t __a, uint8x16_t __b, uint8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlasq_m_n_u8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m (uint32x4_t __a, uint32x4_t __b, uint32_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlasq_m_n_u32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlasq_m (uint16x8_t __a, uint16x8_t __b, uint16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlasq_m_n_u16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_p (int32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsdavaq_p_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_p (int32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsdavaq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaq_p (int32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsdavaq_p_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_p (int32_t __a, int8x16_t __b, int8x16_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsdavaxq_p_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_p (int32_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsdavaxq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsdavaxq_p (int32_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsdavaxq_p_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m (int16x8_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m (int64x2_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m (int32x4_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m (uint16x8_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m (uint64x2_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_m (uint32x4_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m (int16x8_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m (int64x2_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m (int32x4_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m (uint16x8_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m (uint64x2_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_m (uint32x4_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_n_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_n_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_n_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
  {
   return __arm_vornq_m_s8 (__inactive, __a, __b, __p);
--- 5201,5206 ----
*************** __arm_vornq_m (uint16x8_t __inactive, ui
*** 27486,29024 ****
   return __arm_vornq_m_u16 (__inactive, __a, __b, __p);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_n_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_n_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_n_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqaddq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqaddq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmladhq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmladhq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmladhq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmladhxq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmladhxq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmladhxq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmladhxq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_m (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-  return __arm_vqdmlahq_m_n_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_m (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-  return __arm_vqdmlahq_m_n_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlahq_m (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-  return __arm_vqdmlahq_m_n_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmlsdhq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmlsdhq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmlsdhq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmlsdhxq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmlsdhxq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlsdhxq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmlsdhxq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulhq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulhq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulhq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulhq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulhq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulhq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulhq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmladhq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmladhq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmladhq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmladhxq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmladhxq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmladhxq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmladhxq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_m (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-  return __arm_vqrdmlahq_m_n_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_m (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-  return __arm_vqrdmlahq_m_n_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlahq_m (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-  return __arm_vqrdmlahq_m_n_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_m (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-  return __arm_vqrdmlashq_m_n_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_m (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-  return __arm_vqrdmlashq_m_n_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlashq_m (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-  return __arm_vqrdmlashq_m_n_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_m (int8x16_t __a, int8x16_t __b, int8_t __c, mve_pred16_t __p)
- {
-  return __arm_vqdmlashq_m_n_s8 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_m (int16x8_t __a, int16x8_t __b, int16_t __c, mve_pred16_t __p)
- {
-  return __arm_vqdmlashq_m_n_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmlashq_m (int32x4_t __a, int32x4_t __b, int32_t __c, mve_pred16_t __p)
- {
-  return __arm_vqdmlashq_m_n_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmlsdhq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmlsdhq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmlsdhq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmlsdhxq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmlsdhxq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmlsdhxq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmlsdhxq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmulhq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmulhq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmulhq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmulhq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmulhq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrdmulhq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrdmulhq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m (uint8x16_t __inactive, uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m (uint32x4_t __inactive, uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshlq_m (uint16x8_t __inactive, uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqrshlq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n (int8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_n_s8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n (int32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_n_s32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n (int16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_n_s16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n (uint8x16_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_n_u8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n (uint32x4_t __inactive, uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_n_u32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m_n (uint16x8_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_n_u16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m (uint8x16_t __inactive, uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m (uint32x4_t __inactive, uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshlq_m (uint16x8_t __inactive, uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqshlq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_n_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_n_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_n_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqsubq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqsubq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m (uint8x16_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m (uint32x4_t __inactive, uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_m (uint16x8_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m (int8x16_t __inactive, int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m (int32x4_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m (int16x8_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m (uint8x16_t __inactive, uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m (uint32x4_t __inactive, uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_m (uint16x8_t __inactive, uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_m_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m (int8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_m_n_s8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m (int32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_m_n_s32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m (int16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_m_n_s16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m (uint8x16_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_m_n_u8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m (uint32x4_t __inactive, uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_m_n_u32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_m (uint16x8_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_m_n_u16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n (int8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_n_s8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n (int32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_n_s32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n (int16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_n_s16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n (uint8x16_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_n_u8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n (uint32x4_t __inactive, uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_n_u32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_m_n (uint16x8_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_m_n_u16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m (int8x16_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_m_n_s8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m (int32x4_t __inactive, int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_m_n_s32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m (int16x8_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_m_n_s16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m (uint8x16_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_m_n_u8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m (uint32x4_t __inactive, uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_m_n_u32 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_m (uint16x8_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_m_n_u16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m (int8x16_t __a, int8x16_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsliq_m_n_s8 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m (int32x4_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsliq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m (int16x8_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsliq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m (uint8x16_t __a, uint8x16_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsliq_m_n_u8 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m (uint32x4_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsliq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsliq_m (uint16x8_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vsliq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (int8x16_t __inactive, int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_n_s8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (int32x4_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (int16x8_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (uint8x16_t __inactive, uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_n_u8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (uint32x4_t __inactive, uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_n_u32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (uint16x8_t __inactive, uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_n_u16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_p (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaldavaq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_p (int64_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaldavaq_p_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_p (uint64_t __a, uint32x4_t __b, uint32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaldavaq_p_u32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaq_p (uint64_t __a, uint16x8_t __b, uint16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaldavaq_p_u16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlaldavaxq_p (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlaldavaxq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __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 int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaq_p (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsldavaq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaq_p (int64_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsldavaq_p_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaxq_p (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsldavaxq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmlsldavaxq_p (int64_t __a, int16x8_t __b, int16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vmlsldavaxq_p_s16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_m (uint16x8_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_poly_m_p8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_m (uint32x4_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_poly_m_p16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_m (uint16x8_t __inactive, uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_poly_m_p8 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_m (uint32x4_t __inactive, uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_poly_m_p16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_m (int64x2_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmullbq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_m (int32x4_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmullbq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_m (int64x2_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmullbq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmullbq_m (int32x4_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmullbq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_m (int64x2_t __inactive, int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulltq_m_n_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_m (int32x4_t __inactive, int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulltq_m_n_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_m (int64x2_t __inactive, int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulltq_m_s32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqdmulltq_m (int32x4_t __inactive, int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vqdmulltq_m_s16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_m (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrnbq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_m (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrnbq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_m (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrnbq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrnbq_m (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrnbq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_m (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrntq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_m (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrntq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_m (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrntq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrntq_m (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrntq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrunbq_m (uint16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrunbq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshrunbq_m (uint8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshrunbq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshruntq_m (uint16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshruntq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqrshruntq_m (uint8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqrshruntq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_m (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrnbq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_m (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrnbq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_m (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrnbq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrnbq_m (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrnbq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_m (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrntq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_m (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrntq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_m (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrntq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrntq_m (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrntq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrunbq_m (uint16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrunbq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshrunbq_m (uint8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshrunbq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshruntq_m (uint16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshruntq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vqshruntq_m (uint8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vqshruntq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaq_p (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vrmlaldavhaq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline uint64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaq_p (uint64_t __a, uint32x4_t __b, uint32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vrmlaldavhaq_p_u32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlaldavhaxq_p (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vrmlaldavhaxq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhaq_p (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vrmlsldavhaq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int64_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmlsldavhaxq_p (int64_t __a, int32x4_t __b, int32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vrmlsldavhaxq_p_s32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_m (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrnbq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_m (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrnbq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_m (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrnbq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrnbq_m (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrnbq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_m (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrntq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_m (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrntq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_m (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrntq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrntq_m (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrntq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_m (int16x8_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshllbq_m_n_s8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_m (int32x4_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshllbq_m_n_s16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_m (uint16x8_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshllbq_m_n_u8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_m (uint32x4_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshllbq_m_n_u16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_m (int16x8_t __inactive, int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlltq_m_n_s8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_m (int32x4_t __inactive, int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlltq_m_n_s16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_m (uint16x8_t __inactive, uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlltq_m_n_u8 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_m (uint32x4_t __inactive, uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlltq_m_n_u16 (__inactive, __a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_m (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrnbq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_m (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrnbq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_m (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrnbq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrnbq_m (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrnbq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_m (int16x8_t __a, int32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrntq_m_n_s32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_m (int8x16_t __a, int16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrntq_m_n_s16 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_m (uint16x8_t __a, uint32x4_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrntq_m_n_u32 (__a, __b, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrntq_m (uint8x16_t __a, uint16x8_t __b, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrntq_m_n_u16 (__a, __b, __imm, __p);
- }
- 
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vstrbq_scatter_offset (int8_t * __base, uint8x16_t __offset, int8x16_t __value)
--- 5241,5246 ----
*************** __arm_vldrbq_gather_offset_z (uint8_t co
*** 29299,29346 ****
   return __arm_vldrbq_gather_offset_z_u16 (__base, __offset, __p);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q (int8_t const * __base)
- {
-  return __arm_vld1q_s8 (__base);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q (int32_t const * __base)
- {
-  return __arm_vld1q_s32 (__base);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q (int16_t const * __base)
- {
-  return __arm_vld1q_s16 (__base);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q (uint8_t const * __base)
- {
-  return __arm_vld1q_u8 (__base);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q (uint32_t const * __base)
- {
-  return __arm_vld1q_u32 (__base);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q (uint16_t const * __base)
- {
-  return __arm_vld1q_u16 (__base);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vldrhq_gather_offset (int16_t const * __base, uint32x4_t __offset)
--- 5521,5526 ----
*************** __arm_vldrwq_gather_shifted_offset_z (ui
*** 29567,29614 ****
  
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q (int8_t * __addr, int8x16_t __value)
- {
-  __arm_vst1q_s8 (__addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q (int32_t * __addr, int32x4_t __value)
- {
-  __arm_vst1q_s32 (__addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q (int16_t * __addr, int16x8_t __value)
- {
-  __arm_vst1q_s16 (__addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q (uint8_t * __addr, uint8x16_t __value)
- {
-  __arm_vst1q_u8 (__addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q (uint32_t * __addr, uint32x4_t __value)
- {
-  __arm_vst1q_u32 (__addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q (uint16_t * __addr, uint16x8_t __value)
- {
-  __arm_vst1q_u16 (__addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vstrhq_scatter_offset (int16_t * __base, uint32x4_t __offset, int32x4_t __value)
  {
   __arm_vstrhq_scatter_offset_s32 (__base, __offset, __value);
--- 5747,5752 ----
*************** __arm_vstrwq_scatter_shifted_offset (uin
*** 29943,29990 ****
   __arm_vstrwq_scatter_shifted_offset_u32 (__base, __offset, __value);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (int8x16_t __a, int8x16_t __b)
- {
-  return __arm_vaddq_s8 (__a, __b);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (int16x8_t __a, int16x8_t __b)
- {
-  return __arm_vaddq_s16 (__a, __b);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (int32x4_t __a, int32x4_t __b)
- {
-  return __arm_vaddq_s32 (__a, __b);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (uint8x16_t __a, uint8x16_t __b)
- {
-  return __arm_vaddq_u8 (__a, __b);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (uint16x8_t __a, uint16x8_t __b)
- {
-  return __arm_vaddq_u16 (__a, __b);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (uint32x4_t __a, uint32x4_t __b)
- {
-  return __arm_vaddq_u32 (__a, __b);
- }
- 
  __extension__ extern __inline uint8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vddupq_m (uint8x16_t __inactive, uint32_t __a, const int __imm, mve_pred16_t __p)
--- 6081,6086 ----
*************** __arm_viwdupq_x_u32 (uint32_t *__a, uint
*** 30547,31609 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x (int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_x_s32 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vclsq_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vclsq_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclsq_x (int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vclsq_x_s32 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x (int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_x_s32 (__a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x (uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_x_u8 (__a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x (uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_x_u16 (__a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vclzq_x (uint32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vclzq_x_u32 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x (int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_x_s32 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulhq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulhq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_poly_x_p8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_poly_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_poly_x_p16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmullbq_int_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmullbq_int_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_poly_x_p8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_poly_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_poly_x_p16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulltq_int_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulltq_int_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhaddq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhaddq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot90_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot90_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot90_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot90_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot270_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot270_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhcaddq_rot270_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhcaddq_rot270_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (int8x16_t __a, int8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (int16x8_t __a, int16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (uint8x16_t __a, uint8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (uint16x8_t __a, uint16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (uint32x4_t __a, uint32_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vhsubq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vhsubq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrhaddq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrhaddq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrmulhq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrmulhq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
  {
   return __arm_vbicq_x_s8 (__a, __b, __p);
--- 6643,6648 ----
*************** __arm_vbicq_x (uint32x4_t __a, uint32x4_
*** 31646,31833 ****
  
  __extension__ extern __inline int8x16_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x (int8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_x_n_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x (int16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_x_n_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x (int32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_x_n_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x (uint8x16_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_x_n_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x (uint16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_x_n_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x (uint32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_x_n_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovlbq_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovlbq_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_x (uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovlbq_x_u8 (__a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovlbq_x (uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovlbq_x_u16 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovltq_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovltq_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_x (uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovltq_x_u8 (__a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmovltq_x (uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmovltq_x_u16 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x (int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_x_s32 (__a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x (uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_x_u8 (__a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x (uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_x_u16 (__a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmvnq_x (uint32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vmvnq_x_u32 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
  {
   return __arm_vornq_x_s8 (__a, __b, __p);
--- 6685,6690 ----
*************** __arm_vornq_x (uint32x4_t __a, uint32x4_
*** 31868,32265 ****
   return __arm_vornq_x_u32 (__a, __b, __p);
  }
  
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x (uint8x16_t __a, uint8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x (uint16x8_t __a, uint16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x (uint32x4_t __a, uint32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev16q_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev16q_x (uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev16q_x_u8 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x (uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_x_u8 (__a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x (uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_x_u16 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x (int8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_x_s8 (__a, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x (int16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_x_s16 (__a, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x (int32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_x_s32 (__a, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x (uint8x16_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_x_u8 (__a, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x (uint16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_x_u16 (__a, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x (uint32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_x_u32 (__a, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshlq_x (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vrshlq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_x (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshllbq_x_n_s8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_x (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshllbq_x_n_s16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_x (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshllbq_x_n_u8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshllbq_x (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshllbq_x_n_u16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_x (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlltq_x_n_s8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_x (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlltq_x_n_s16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_x (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlltq_x_n_u8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlltq_x (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlltq_x_n_u16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x (int8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_s8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x (int16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_s16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x (int32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_s32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_u8 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_u16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_u32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_n_s8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_n_s16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n (int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_n_s32 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_n_u8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_n_u16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshlq_x_n (uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshlq_x_n_u32 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_x_n_s8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_x_n_s16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x (int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_x_n_s32 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_x_n_u8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_x_n_u16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrshrq_x (uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vrshrq_x_n_u32 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x (int8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_x_n_s8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x (int16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_x_n_s16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x (int32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_x_n_s32 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x (uint8x16_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_x_n_u8 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x (uint16x8_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_x_n_u16 (__a, __imm, __p);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vshrq_x (uint32x4_t __a, const int __imm, mve_pred16_t __p)
- {
-  return __arm_vshrq_x_n_u32 (__a, __imm, __p);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vadciq (int32x4_t __a, int32x4_t __b, unsigned * __carry_out)
--- 6725,6730 ----
*************** __arm_vst4q (float32_t * __addr, float32
*** 32752,32904 ****
   __arm_vst4q_f32 (__addr, __value);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq (float16x8_t __a)
- {
-  return __arm_vrndxq_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq (float32x4_t __a)
- {
-  return __arm_vrndxq_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq (float16x8_t __a)
- {
-  return __arm_vrndq_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq (float32x4_t __a)
- {
-  return __arm_vrndq_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq (float16x8_t __a)
- {
-  return __arm_vrndpq_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq (float32x4_t __a)
- {
-  return __arm_vrndpq_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq (float16x8_t __a)
- {
-  return __arm_vrndnq_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq (float32x4_t __a)
- {
-  return __arm_vrndnq_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq (float16x8_t __a)
- {
-  return __arm_vrndmq_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq (float32x4_t __a)
- {
-  return __arm_vrndmq_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq (float16x8_t __a)
- {
-  return __arm_vrndaq_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq (float32x4_t __a)
- {
-  return __arm_vrndaq_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q (float16x8_t __a)
- {
-  return __arm_vrev64q_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q (float32x4_t __a)
- {
-  return __arm_vrev64q_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq (float16x8_t __a)
- {
-  return __arm_vnegq_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq (float32x4_t __a)
- {
-  return __arm_vnegq_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n (float16_t __a)
- {
-  return __arm_vdupq_n_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_n (float32_t __a)
- {
-  return __arm_vdupq_n_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq (float16x8_t __a)
- {
-  return __arm_vabsq_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq (float32x4_t __a)
- {
-  return __arm_vabsq_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q (float16x8_t __a)
- {
-  return __arm_vrev32q_f16 (__a);
- }
- 
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvttq_f32 (float16x8_t __a)
--- 7217,7222 ----
*************** __arm_vcvtq (uint32x4_t __a)
*** 32943,32976 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vsubq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vsubq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq (float16x8_t __a, int32_t __b)
- {
-  return __arm_vbrsrq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq (float32x4_t __a, int32_t __b)
- {
-  return __arm_vbrsrq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtq_n (int16x8_t __a, const int __imm6)
  {
   return __arm_vcvtq_n_f16_s16 (__a, __imm6);
--- 7261,7266 ----
*************** __arm_vcvtq_n (uint32x4_t __a, const int
*** 32997,33100 ****
   return __arm_vcvtq_n_f32_u32 (__a, __imm6);
  }
  
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vcmpneq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmpneq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vcmpltq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmpltq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vcmpleq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmpleq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vcmpgtq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmpgtq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vcmpgeq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmpgeq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vcmpeqq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmpeqq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vsubq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vorrq_f16 (__a, __b);
- }
- 
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq (float16x8_t __a, float16x8_t __b)
--- 7287,7292 ----
*************** __arm_vornq (float16x8_t __a, float16x8_
*** 33104,33352 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vmulq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vmulq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmvq (float16_t __a, float16x8_t __b)
- {
-  return __arm_vminnmvq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vminnmq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmavq (float16_t __a, float16x8_t __b)
- {
-  return __arm_vminnmavq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmaq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vminnmaq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmvq (float16_t __a, float16x8_t __b)
- {
-  return __arm_vmaxnmvq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vmaxnmq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmavq (float16_t __a, float16x8_t __b)
- {
-  return __arm_vmaxnmavq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmaq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vmaxnmaq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_veorq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90 (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmulq_rot90_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270 (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmulq_rot270_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180 (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmulq_rot180_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcmulq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90 (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcaddq_rot90_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270 (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vcaddq_rot270_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (float16x8_t __a, float16x8_t __b)
  {
   return __arm_vbicq_f16 (__a, __b);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vandq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (float16x8_t __a, float16_t __b)
- {
-  return __arm_vaddq_n_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vabdq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vcmpneq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmpneq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vcmpltq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmpltq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vcmpleq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmpleq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vcmpgtq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmpgtq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vcmpgeq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmpgeq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vcmpeqq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmpeqq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vsubq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vorrq_f32 (__a, __b);
- }
- 
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq (float32x4_t __a, float32x4_t __b)
--- 7296,7306 ----
*************** __arm_vornq (float32x4_t __a, float32x4_
*** 33356,33520 ****
  
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vmulq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vmulq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmvq (float32_t __a, float32x4_t __b)
- {
-  return __arm_vminnmvq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vminnmq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmavq (float32_t __a, float32x4_t __b)
- {
-  return __arm_vminnmavq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmaq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vminnmaq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmvq (float32_t __a, float32x4_t __b)
- {
-  return __arm_vmaxnmvq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vmaxnmq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmavq (float32_t __a, float32x4_t __b)
- {
-  return __arm_vmaxnmavq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmaq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vmaxnmaq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_veorq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90 (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmulq_rot90_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270 (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmulq_rot270_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180 (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmulq_rot180_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcmulq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90 (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcaddq_rot90_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270 (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vcaddq_rot270_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq (float32x4_t __a, float32x4_t __b)
  {
   return __arm_vbicq_f32 (__a, __b);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vandq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (float32x4_t __a, float32_t __b)
- {
-  return __arm_vaddq_n_f32 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vabdq_f32 (__a, __b);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_f32 (__a, __b, __p);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtaq_m (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
--- 7310,7320 ----
*************** __arm_vcvttq_m (float32x4_t __inactive,
*** 33599,33674 ****
   return __arm_vcvttq_m_f32_f16 (__inactive, __a, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-  return __arm_vcmlaq_f16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot180 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-  return __arm_vcmlaq_rot180_f16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot270 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-  return __arm_vcmlaq_rot270_f16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot90 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-  return __arm_vcmlaq_rot90_f16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-  return __arm_vfmaq_f16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq (float16x8_t __a, float16x8_t __b, float16_t __c)
- {
-  return __arm_vfmaq_n_f16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmasq (float16x8_t __a, float16x8_t __b, float16_t __c)
- {
-  return __arm_vfmasq_n_f16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmsq (float16x8_t __a, float16x8_t __b, float16x8_t __c)
- {
-  return __arm_vfmsq_f16 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_m_f16 (__inactive, __a, __p);
- }
- 
  __extension__ extern __inline int16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtmq_m (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
--- 7399,7404 ----
*************** __arm_vcvtq_m (int16x8_t __inactive, flo
*** 33697,33891 ****
   return __arm_vcvtq_m_s16_f16 (__inactive, __a, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m (float16x8_t __inactive, float16_t __a, mve_pred16_t __p)
- {
-  return __arm_vdupq_m_n_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmaq_m (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmaq_m_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmavq_p (float16_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmavq_p_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmvq_p (float16_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmvq_p_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmaq_m (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmaq_m_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmavq_p (float16_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmavq_p_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmvq_p (float16_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmvq_p_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndaq_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndmq_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndnq_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndpq_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndq_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_m (float16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndxq_m_f16 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_n_f16 (__a, __b, __p);
- }
- 
  __extension__ extern __inline uint16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtmq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p)
--- 7427,7432 ----
*************** __arm_vcvtq_m (uint16x8_t __inactive, fl
*** 33914,33982 ****
   return __arm_vcvtq_m_u16_f16 (__inactive, __a, __p);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-  return __arm_vcmlaq_f32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot180 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-  return __arm_vcmlaq_rot180_f32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot270 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-  return __arm_vcmlaq_rot270_f32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot90 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-  return __arm_vcmlaq_rot90_f32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-  return __arm_vfmaq_f32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq (float32x4_t __a, float32x4_t __b, float32_t __c)
- {
-  return __arm_vfmaq_n_f32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmasq (float32x4_t __a, float32x4_t __b, float32_t __c)
- {
-  return __arm_vfmasq_n_f32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmsq (float32x4_t __a, float32x4_t __b, float32x4_t __c)
- {
-  return __arm_vfmsq_f32 (__a, __b, __c);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_m_f32 (__inactive, __a, __p);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtmq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
--- 7455,7460 ----
*************** __arm_vcvtq_m (int32x4_t __inactive, flo
*** 34005,34199 ****
   return __arm_vcvtq_m_s32_f32 (__inactive, __a, __p);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vdupq_m (float32x4_t __inactive, float32_t __a, mve_pred16_t __p)
- {
-  return __arm_vdupq_m_n_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmaq_m (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmaq_m_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmavq_p (float32_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmavq_p_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmvq_p (float32_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmvq_p_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmaq_m (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmaq_m_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmavq_p (float32_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmavq_p_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmvq_p (float32_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmvq_p_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_m_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vpselq (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vpselq_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_m_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndaq_m_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndmq_m_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndnq_m_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndpq_m_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndq_m_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_m (float32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndxq_m_f32 (__inactive, __a, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpeqq_m (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpeqq_m_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgeq_m (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgeq_m_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpgtq_m (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpgtq_m_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpleq_m (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpleq_m_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpltq_m (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpltq_m_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline mve_pred16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmpneq_m (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmpneq_m_n_f32 (__a, __b, __p);
- }
- 
  __extension__ extern __inline uint32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtmq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p)
--- 7483,7488 ----
*************** __arm_vcvtq_m_n (float32x4_t __inactive,
*** 34252,34313 ****
  
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (float32x4_t __inactive, float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_n_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_m (float16x8_t __inactive, float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_m_n_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
  {
   return __arm_vbicq_m_f32 (__inactive, __a, __b, __p);
--- 7541,7546 ----
*************** __arm_vbicq_m (float16x8_t __inactive, f
*** 34320,34479 ****
   return __arm_vbicq_m_f16 (__inactive, __a, __b, __p);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m (float32x4_t __inactive, float32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_m_n_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_m (float16x8_t __inactive, float16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_m_n_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_m (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vcmlaq_m_f32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_m (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vcmlaq_m_f16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot180_m (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vcmlaq_rot180_m_f32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot180_m (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vcmlaq_rot180_m_f16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot270_m (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vcmlaq_rot270_m_f32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot270_m (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vcmlaq_rot270_m_f16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot90_m (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vcmlaq_rot90_m_f32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmlaq_rot90_m (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vcmlaq_rot90_m_f16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot180_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot180_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot270_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot270_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot90_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot90_m_f16 (__inactive, __a, __b, __p);
- }
- 
  __extension__ extern __inline int32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtq_m_n (int32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p)
--- 7553,7558 ----
*************** __arm_vcvtq_m_n (uint16x8_t __inactive,
*** 34504,34635 ****
  
  __extension__ extern __inline float32x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_m (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vfmaq_m_f32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_m (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vfmaq_m_f16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_m (float32x4_t __a, float32x4_t __b, float32_t __c, mve_pred16_t __p)
- {
-  return __arm_vfmaq_m_n_f32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmaq_m (float16x8_t __a, float16x8_t __b, float16_t __c, mve_pred16_t __p)
- {
-  return __arm_vfmaq_m_n_f16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmasq_m (float32x4_t __a, float32x4_t __b, float32_t __c, mve_pred16_t __p)
- {
-  return __arm_vfmasq_m_n_f32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmasq_m (float16x8_t __a, float16x8_t __b, float16_t __c, mve_pred16_t __p)
- {
-  return __arm_vfmasq_m_n_f16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmsq_m (float32x4_t __a, float32x4_t __b, float32x4_t __c, mve_pred16_t __p)
- {
-  return __arm_vfmsq_m_f32 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vfmsq_m (float16x8_t __a, float16x8_t __b, float16x8_t __c, mve_pred16_t __p)
- {
-  return __arm_vfmsq_m_f16 (__a, __b, __c, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (float32x4_t __inactive, float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_n_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_m (float16x8_t __inactive, float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_m_n_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
  {
   return __arm_vornq_m_f32 (__inactive, __a, __b, __p);
--- 7583,7588 ----
*************** __arm_vornq_m (float16x8_t __inactive, f
*** 34642,34703 ****
   return __arm_vornq_m_f16 (__inactive, __a, __b, __p);
  }
  
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (float32x4_t __inactive, float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_n_f32 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_m (float16x8_t __inactive, float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_m_n_f16 (__inactive, __a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q (float32_t const * __base)
- {
-  return __arm_vld1q_f32 (__base);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vld1q (float16_t const * __base)
- {
-  return __arm_vld1q_f16 (__base);
- }
- 
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vldrhq_gather_offset (float16_t const * __base, uint16x8_t __offset)
--- 7595,7600 ----
*************** __arm_vstrwq (float32_t * __addr, float3
*** 34770,34789 ****
  
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q (float32_t * __addr, float32x4_t __value)
- {
-  __arm_vst1q_f32 (__addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vst1q (float16_t * __addr, float16x8_t __value)
- {
-  __arm_vst1q_f16 (__addr, __value);
- }
- 
- __extension__ extern __inline void
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vstrhq (float16_t * __addr, float16x8_t __value)
  {
   __arm_vstrhq_f16 (__addr, __value);
--- 7667,7672 ----
*************** __arm_vstrwq_scatter_shifted_offset_p (f
*** 34866,34885 ****
   __arm_vstrwq_scatter_shifted_offset_p_f32 (__base, __offset, __value, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (float16x8_t __a, float16x8_t __b)
- {
-  return __arm_vaddq_f16 (__a, __b);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq (float32x4_t __a, float32x4_t __b)
- {
-  return __arm_vaddq_f32 (__a, __b);
- }
- 
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vstrwq_scatter_base_wb (uint32x4_t * __addr, const int __offset, float32x4_t __value)
--- 7749,7754 ----
*************** __arm_vstrwq_scatter_base_wb_p (uint32x4
*** 34896,35139 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vminnmq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vminnmq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmaxnmq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmaxnmq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabdq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vabdq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vabsq_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vabsq_x_f32 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vaddq_x (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vaddq_x_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vnegq_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vnegq_x_f32 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vmulq_x (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vmulq_x_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (float16x8_t __a, float16_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vsubq_x (float32x4_t __a, float32_t __b, mve_pred16_t __p)
- {
-  return __arm_vsubq_x_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot90_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot90_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcaddq_rot270_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcaddq_rot270_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot90_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot90_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot90_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot180_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot180_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot180_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot270_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vcmulq_rot270_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vcmulq_rot270_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vcvtq_x (uint16x8_t __a, mve_pred16_t __p)
  {
   return __arm_vcvtq_x_f16_u16 (__a, __p);
--- 7765,7770 ----
*************** __arm_vcvtq_x_n (uint32x4_t __a, const i
*** 35190,35293 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndq_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndq_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndq_x_f32 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndnq_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndnq_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndnq_x_f32 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndmq_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndmq_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndmq_x_f32 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndpq_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndpq_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndpq_x_f32 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndaq_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndaq_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndaq_x_f32 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndxq_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrndxq_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrndxq_x_f32 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vandq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vandq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vbicq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
  {
   return __arm_vbicq_x_f16 (__a, __b, __p);
--- 7821,7826 ----
*************** __arm_vbicq_x (float32x4_t __a, float32x
*** 35302,35335 ****
  
  __extension__ extern __inline float16x8_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x (float16x8_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_x_n_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vbrsrq_x (float32x4_t __a, int32_t __b, mve_pred16_t __p)
- {
-  return __arm_vbrsrq_x_n_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_veorq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_veorq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vornq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
  {
   return __arm_vornq_x_f16 (__a, __b, __p);
--- 7835,7840 ----
*************** __arm_vornq_x (float32x4_t __a, float32x
*** 35342,35382 ****
   return __arm_vornq_x_f32 (__a, __b, __p);
  }
  
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_x_f16 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vorrq_x (float32x4_t __a, float32x4_t __b, mve_pred16_t __p)
- {
-  return __arm_vorrq_x_f32 (__a, __b, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev32q_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev32q_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x (float16x8_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_x_f16 (__a, __p);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vrev64q_x (float32x4_t __a, mve_pred16_t __p)
- {
-  return __arm_vrev64q_x_f32 (__a, __p);
- }
- 
  __extension__ extern __inline float16x8x4_t
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  __arm_vld4q (float16_t const * __addr)
--- 7847,7852 ----
*************** __arm_vgetq_lane (float32x4_t __a, const
*** 35476,35481 ****
--- 7946,8024 ----
  }
  #endif /* MVE Floating point.  */
  
+ 
+ __extension__ extern __inline uint8x16_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (uint8x16_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_u8 ();
+ }
+ 
+ __extension__ extern __inline uint16x8_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (uint16x8_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_u16 ();
+ }
+ 
+ __extension__ extern __inline uint32x4_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (uint32x4_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_u32 ();
+ }
+ 
+ __extension__ extern __inline uint64x2_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (uint64x2_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_u64 ();
+ }
+ 
+ __extension__ extern __inline int8x16_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (int8x16_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_s8 ();
+ }
+ 
+ __extension__ extern __inline int16x8_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (int16x8_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_s16 ();
+ }
+ 
+ __extension__ extern __inline int32x4_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (int32x4_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_s32 ();
+ }
+ 
+ __extension__ extern __inline int64x2_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (int64x2_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_s64 ();
+ }
+ 
+ #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point.  */
+ __extension__ extern __inline float16x8_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (float16x8_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_f16 ();
+ }
+ 
+ __extension__ extern __inline float32x4_t
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __arm_vuninitializedq (float32x4_t /* __v ATTRIBUTE UNUSED */)
+ {
+  return __arm_vuninitializedq_f32 ();
+ }
+ #endif /* __ARM_FEATURE_MVE & 2 (MVE floating point)  */
+ 
  #else
  enum {
      __ARM_mve_type_fp_n = 1,
*************** extern void *__ARM_undef;
*** 35725,35800 ****
    int (*)[__ARM_mve_type_float16_t_ptr][__ARM_mve_type_float16x8x4_t]: __arm_vst4q_f16 (__ARM_mve_coerce_f16_ptr(__p0, float16_t *), __ARM_mve_coerce(__p1, float16x8x4_t)), \
    int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4x4_t]: __arm_vst4q_f32 (__ARM_mve_coerce_f32_ptr(__p0, float32_t *), __ARM_mve_coerce(__p1, float32x4x4_t)));})
  
- #define __arm_vrndxq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndxq_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndxq_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vrndq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndq_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndq_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vrndpq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndpq_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndpq_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vrndnq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndnq_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndnq_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vrndmq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndmq_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndmq_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vrndaq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndaq_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndaq_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vrev64q(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev64q_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrev64q_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrev64q_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev64q_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrev64q_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrev64q_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrev64q_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrev64q_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vnegq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vnegq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vnegq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vnegq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vnegq_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vnegq_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vdupq_n(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vdupq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vdupq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vabsq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vabsq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vabsq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vabsq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vabsq_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vabsq_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vrev32q(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev32q_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrev32q_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev32q_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrev32q_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrev32q_f16 (__ARM_mve_coerce(__p0, float16x8_t)));})
- 
  #define __arm_vcvtbq_f32(p0) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_float16x8_t]: __arm_vcvtbq_f32_f16 (__ARM_mve_coerce(__p0, float16x8_t)));})
--- 8268,8273 ----
*************** extern void *__ARM_undef;
*** 35803,35863 ****
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_float16x8_t]: __arm_vcvttq_f32_f16 (__ARM_mve_coerce(__p0, float16x8_t)));})
  
- #define __arm_vrev16q(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev16q_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev16q_u8 (__ARM_mve_coerce(__p0, uint8x16_t)));})
- 
- #define __arm_vqabsq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqabsq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqabsq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqabsq_s32 (__ARM_mve_coerce(__p0, int32x4_t)));})
- 
- #define __arm_vqnegq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqnegq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqnegq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqnegq_s32 (__ARM_mve_coerce(__p0, int32x4_t)));})
- 
- #define __arm_vmvnq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmvnq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmvnq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vmvnq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmvnq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmvnq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vmvnq_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));})
- 
- #define __arm_vmovlbq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovlbq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmovlbq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmovlbq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmovlbq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)));})
- 
- #define __arm_vmovltq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovltq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmovltq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmovltq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmovltq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)));})
- 
- #define __arm_vclzq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vclzq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vclzq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vclzq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vclzq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vclzq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vclzq_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));})
- 
- #define __arm_vclsq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vclsq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vclsq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vclsq_s32 (__ARM_mve_coerce(__p0, int32x4_t)));})
- 
  #define __arm_vcvtq(p0) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
--- 8276,8281 ----
*************** extern void *__ARM_undef;
*** 35865,35889 ****
    int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));})
  
- #define __arm_vshlq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vshrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshrq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshrq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
  #define __arm_vcvtq_n(p0,p1) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_n_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
--- 8283,8288 ----
*************** extern void *__ARM_undef;
*** 35891,35956 ****
    int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_n_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_n_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
  
- #define __arm_vorrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vorrq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vorrq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vorrq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vorrq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vorrq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vorrq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vorrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vorrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vorrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vorrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vorrq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vorrq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vabdq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabdq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabdq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabdq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabdq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabdq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabdq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vabdq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vabdq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vaddq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vaddq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vaddq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vaddq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vaddq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vaddq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vaddq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vaddq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vaddq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vaddq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vaddq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)));})
- 
- #define __arm_vandq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vandq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vandq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vandq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vandq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vandq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vandq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vandq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vandq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
  #define __arm_vbicq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
--- 8290,8295 ----
*************** extern void *__ARM_undef;
*** 35979,36627 ****
    int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vornq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
    int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vornq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
  
- #define __arm_vmulq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vmulq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vmulq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmulq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmulq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vcaddq_rot270(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot270_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot270_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot270_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot270_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot270_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot270_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcaddq_rot270_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcaddq_rot270_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vcmpeqq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpeqq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpeqq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpeqq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpeqq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpeqq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpeqq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpeqq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpeqq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpeqq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpeqq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vcaddq_rot90(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot90_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot90_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot90_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot90_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot90_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot90_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcaddq_rot90_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcaddq_rot90_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vcmpeqq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpeqq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpeqq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpeqq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpeqq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpeqq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpeqq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpeqq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpeqq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpeqq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpeqq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double), p2));})
- 
- #define __arm_vcmpgtq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgtq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgtq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgtq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpgtq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpgtq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpgtq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpgtq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)));})
- 
- #define __arm_vcmpleq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpleq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpleq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpleq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpleq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpleq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpleq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpleq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpleq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpleq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpleq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)));})
- 
- #define __arm_vcmpltq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpltq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpltq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpltq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpltq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpltq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpltq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpltq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpltq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpltq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpltq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)));})
- 
- #define __arm_vcmpneq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpneq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpneq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpneq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpneq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpneq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpneq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpneq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpneq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpneq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpneq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vcmulq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vcmulq_rot180(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot180_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot180_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vcmulq_rot270(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot270_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot270_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vcmulq_rot90(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot90_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot90_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_veorq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_veorq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_veorq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_veorq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_veorq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_veorq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_veorq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_veorq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_veorq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vmaxnmaq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmaxnmaq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmaxnmaq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vmaxnmavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vmaxnmavq_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vmaxnmavq_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vmaxnmq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmaxnmq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmaxnmq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vmaxnmvq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vmaxnmvq_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vmaxnmvq_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vmaxnmvq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vmaxnmvq_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vmaxnmvq_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vminnmaq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vminnmaq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vminnmaq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vminnmavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vminnmavq_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vminnmavq_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vbrsrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vbrsrq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vbrsrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vbrsrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vbrsrq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vbrsrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vbrsrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vbrsrq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), p1), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vbrsrq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), p1));})
- 
- #define __arm_vminnmq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vminnmq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vminnmq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vsubq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vsubq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vsubq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsubq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsubq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsubq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsubq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsubq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsubq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vsubq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vsubq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vminnmvq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vminnmvq_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vminnmvq_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
- #define __arm_vshlq_r(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlq_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlq_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshlq_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlq_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlq_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlq_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vshlq_n(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshlq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vshlltq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlltq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlltq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlltq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlltq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1));})
- 
- #define __arm_vshllbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshllbq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshllbq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshllbq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshllbq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1));})
- 
- #define __arm_vrshrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrshrq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrshrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrshrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrshrq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrshrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrshrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vrshrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrshrq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrshrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrshrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrshrq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrshrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrshrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vrshlq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshlq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshlq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshlq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshlq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshlq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshlq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vrmulhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrmulhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrmulhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrmulhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrmulhq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrmulhq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrmulhq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vrhaddq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrhaddq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrhaddq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrhaddq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrhaddq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrhaddq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrhaddq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vqsubq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqsubq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqsubq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqsubq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vqsubq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vqsubq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vqsubq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vqshluq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqshluq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqshluq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqshluq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1));})
- 
- #define __arm_vqshlq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqshlq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqshlq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqshlq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqshlq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqshlq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqshlq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqshlq_r(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqshlq_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqshlq_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqshlq_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vqshlq_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vqshlq_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vqshlq_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vqshlq_n(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqshlq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqshlq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqshlq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vqshlq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vqshlq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vqshlq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vqrshlq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrshlq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrshlq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrshlq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrshlq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrshlq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrshlq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vqrdmulhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmulhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmulhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmulhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vmlaldavxq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlaldavxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqmovuntq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovuntq_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovuntq_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqmovntq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovntq_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovntq_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqmovntq_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqmovntq_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vqmovnbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovnbq_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovnbq_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqmovnbq_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqmovnbq_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vqdmulltq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmulltq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmulltq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmulltq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmulltq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqmovunbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovunbq_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovunbq_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqdmullbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmullbq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmullbq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmullbq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmullbq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqdmulhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmulhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmulhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmulhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqaddq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqaddq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqaddq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqaddq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vqaddq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vqaddq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vqaddq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmulltq_poly(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_poly_p8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_poly_p16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)));})
- 
- #define __arm_vmullbq_poly(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_poly_p8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_poly_p16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)));})
- 
- #define __arm_vmulltq_int(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulltq_int_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulltq_int_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulltq_int_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_int_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_int_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulltq_int_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vhaddq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhaddq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhaddq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhaddq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vhaddq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vhaddq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vhaddq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vhcaddq_rot270(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhcaddq_rot270_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhcaddq_rot270_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhcaddq_rot270_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vhcaddq_rot90(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhcaddq_rot90_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhcaddq_rot90_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhcaddq_rot90_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vhsubq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhsubq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhsubq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhsubq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vhsubq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vhsubq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vhsubq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vminq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vminq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vminq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vminq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vminq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vminq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vminq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vminaq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vminaq_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vminaq_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vminaq_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vmaxq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmaxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmaxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmaxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmaxq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmaxq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmaxq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmaxaq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmaxaq_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmaxaq_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmaxaq_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vmovntq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vmovntq_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vmovntq_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vmovntq_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vmovntq_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmovnbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vmovnbq_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vmovnbq_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vmovnbq_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vmovnbq_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmulhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulhq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulhq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulhq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmullbq_int(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmullbq_int_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmullbq_int_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmullbq_int_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_int_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_int_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmullbq_int_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
  #define __arm_vbicq_m_n(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_int16x8_t]: __arm_vbicq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
--- 8318,8323 ----
*************** extern void *__ARM_undef;
*** 36629,36648 ****
    int (*)[__ARM_mve_type_uint16x8_t]: __arm_vbicq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vbicq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
  
- #define __arm_vqrshrnbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrnbq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrnbq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqrshrnbq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqrshrnbq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqrshrunbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrunbq_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrunbq_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
  #define __arm_vshlcq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlcq_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
--- 8325,8330 ----
*************** extern void *__ARM_undef;
*** 36652,36910 ****
    int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlcq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlcq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
  
- #define __arm_vclsq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vclsq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vclsq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vclsq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vclzq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vclzq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vclzq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vclzq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vclzq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vclzq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vclzq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmaxaq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmaxaq_m_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmaxaq_m_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmaxaq_m_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vminaq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vminaq_m_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vminaq_m_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vminaq_m_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmlaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vsriq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsriq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsriq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsriq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsriq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsriq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsriq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vsliq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsliq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsliq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsliq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsliq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsliq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsliq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vshlq_m_r(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlq_m_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlq_m_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshlq_m_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlq_m_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlq_m_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlq_m_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
- 
- #define __arm_vrshlq_m_n(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrshlq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrshlq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrshlq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrshlq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrshlq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrshlq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __p1, p2));})
- 
- #define __arm_vqshlq_m_r(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqshlq_m_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqshlq_m_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqshlq_m_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vqshlq_m_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vqshlq_m_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vqshlq_m_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
- 
- #define __arm_vqrshlq_m_n(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqrshlq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqrshlq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqrshlq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vqrshlq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vqrshlq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vqrshlq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
- 
- #define __arm_vqrdmlsdhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmlsdhxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmlsdhxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmlsdhxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqrdmlsdhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmlsdhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmlsdhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmlsdhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqrdmlashq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
- 	    int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vqdmlashq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
- 	    int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vqrdmlahq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vmlasq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vqdmlahq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vqrdmladhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmladhxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmladhxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmladhxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqrdmladhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmladhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmladhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmladhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqnegq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqnegq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqnegq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqnegq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqdmlsdhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmlsdhxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmlsdhxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmlsdhxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqdmlsdhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmlsdhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmlsdhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmlsdhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqdmladhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmladhxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmladhxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmladhxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqdmladhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmladhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmladhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmladhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vmovlbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int8x16_t]: __arm_vmovlbq_m_s8 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t]: __arm_vmovlbq_m_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t]: __arm_vmovlbq_m_u8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t]: __arm_vmovlbq_m_u16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vmovnbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vmovnbq_m_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vmovnbq_m_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vmovnbq_m_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vmovnbq_m_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmovntq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vmovntq_m_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vmovntq_m_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vmovntq_m_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vmovntq_m_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmovltq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int8x16_t]: __arm_vmovltq_m_s8 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t]: __arm_vmovltq_m_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t]: __arm_vmovltq_m_u8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t]: __arm_vmovltq_m_u16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vshrnbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vshrnbq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vshrnbq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vshrnbq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vshrnbq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
  #define __arm_vcvtaq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
--- 8334,8339 ----
*************** extern void *__ARM_undef;
*** 36937,37059 ****
    int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcvtq_m_n_f16_u16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
    int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcvtq_m_n_f32_u32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
  
- #define __arm_vabsq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabsq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabsq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabsq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vabsq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vabsq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vcmlaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmlaq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmlaq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t)));})
- 
- #define __arm_vcmlaq_rot180(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmlaq_rot180_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmlaq_rot180_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t)));})
- 
- #define __arm_vcmlaq_rot270(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmlaq_rot270_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmlaq_rot270_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t)));})
- 
- #define __arm_vcmlaq_rot90(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmlaq_rot90_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmlaq_rot90_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t)));})
- 
- #define __arm_vrndxq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vrndxq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vrndxq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vrndq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vrndq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndpq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vrndpq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vrndpq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vcmpgtq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgtq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgtq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgtq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpgtq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpgtq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpgtq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpgtq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vcmpleq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpleq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpleq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpleq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpleq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpleq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpleq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpleq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double), p2));})
- 
- #define __arm_vcmpltq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpltq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpltq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpltq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpltq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpltq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpltq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpltq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double), p2));})
- 
- #define __arm_vcmpneq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpneq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpneq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpneq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpneq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpneq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpneq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpneq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpneq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpneq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpneq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double), p2));})
- 
  #define __arm_vcvtbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
--- 8366,8371 ----
*************** extern void *__ARM_undef;
*** 37090,37400 ****
    int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtpq_m_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
    int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtpq_m_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
  
- #define __arm_vdupq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), (int8_t) __p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), (int16_t) __p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), (int32_t) __p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), (uint8_t) __p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), (uint16_t) __p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), (uint32_t) __p1, p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vdupq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), (float16_t) __p1, p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vdupq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), (float32_t) __p1, p2));})
- 
- #define __arm_vfmaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vfmaq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vfmaq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vfmaq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vfmaq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t)));})
- 
- #define __arm_vfmsq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vfmsq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vfmsq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t)));})
- 
- #define __arm_vfmasq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vfmasq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vfmasq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double)));})
- 
- #define __arm_vmaxnmaq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmaxnmaq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmaxnmaq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vmaxnmavq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmaxnmavq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmaxnmavq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vmaxnmvq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmaxnmvq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmaxnmvq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vmaxnmavq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vmaxnmavq_p_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vmaxnmavq_p_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vmaxnmvq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vmaxnmvq_p_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vmaxnmvq_p_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vminnmaq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vminnmaq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vminnmaq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vminnmavq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vminnmavq_p_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vminnmavq_p_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vminnmvq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float16x8_t]: __arm_vminnmvq_p_f16 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_fp_n][__ARM_mve_type_float32x4_t]: __arm_vminnmvq_p_f32 (__ARM_mve_coerce_f_scalar(__p0, double), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndnq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vrndnq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vrndnq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __p2));})
- 
- #define __arm_vrndaq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vrndaq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vrndaq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndmq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vrndmq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vrndmq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrev64q_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrev64q_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrev64q_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrev64q_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrev64q_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrev64q_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrev64q_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vrev64q_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vrev64q_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrev32q_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrev32q_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrev32q_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrev32q_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrev32q_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vrev32q_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2));})
- 
- #define __arm_vpselq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vpselq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vpselq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vpselq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int64x2_t][__ARM_mve_type_int64x2_t]: __arm_vpselq_s64 (__ARM_mve_coerce(__p0, int64x2_t), __ARM_mve_coerce(__p1, int64x2_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vpselq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vpselq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vpselq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint64x2_t][__ARM_mve_type_uint64x2_t]: __arm_vpselq_u64 (__ARM_mve_coerce(__p0, uint64x2_t), __ARM_mve_coerce(__p1, uint64x2_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vpselq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vpselq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vcmpgeq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgeq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgeq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgeq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpgeq_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpgeq_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t)), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpgeq_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double)), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpgeq_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double)));})
- 
- #define __arm_vrshrnbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vrshrnbq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vrshrnbq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vrshrnbq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vrshrnbq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vrev16q_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrev16q_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrev16q_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2));})
- 
- #define __arm_vqshruntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshruntq_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshruntq_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqshrnbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshrnbq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshrnbq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqshrnbq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqshrnbq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqshrntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshrntq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshrntq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqshrntq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqshrntq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqrshruntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshruntq_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshruntq_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqmovnbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovnbq_m_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovnbq_m_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqmovnbq_m_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqmovnbq_m_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqmovntq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovntq_m_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovntq_m_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqmovntq_m_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqmovntq_m_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqmovunbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovunbq_m_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovunbq_m_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqmovuntq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovuntq_m_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovuntq_m_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqrshrntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrntq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrntq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqrshrntq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqrshrntq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqrshruntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshruntq_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshruntq_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vnegq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vnegq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vnegq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vnegq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vnegq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vnegq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vcmpgeq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgeq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgeq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgeq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vcmpgeq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce_f_scalar(__p1, double), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vcmpgeq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce_f_scalar(__p1, double), p2), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmpgeq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmpgeq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vabdq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabdq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabdq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabdq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabdq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabdq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabdq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vabdq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vabdq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vaddq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vaddq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vaddq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vaddq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vaddq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vaddq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vaddq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vaddq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vaddq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vaddq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vaddq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double), p3));})
- 
- #define __arm_vandq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vandq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vandq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vandq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vandq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vandq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vandq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vandq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vandq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
  #define __arm_vbicq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
--- 8402,8407 ----
*************** extern void *__ARM_undef;
*** 37408,37578 ****
    int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vbicq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
    int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vbicq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
  
- #define __arm_vbrsrq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vbrsrq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vbrsrq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vbrsrq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vbrsrq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vbrsrq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vbrsrq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vbrsrq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vbrsrq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2, p3));})
- 
- #define __arm_vcaddq_rot270_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot270_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot270_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot270_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot270_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot270_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot270_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcaddq_rot270_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcaddq_rot270_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcaddq_rot90_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot90_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot90_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot90_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot90_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot90_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot90_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcaddq_rot90_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcaddq_rot90_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmlaq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmlaq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmlaq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmlaq_rot180_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmlaq_rot180_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmlaq_rot180_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmlaq_rot270_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmlaq_rot270_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmlaq_rot270_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmlaq_rot90_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmlaq_rot90_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmlaq_rot90_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmulq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmulq_rot180_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot180_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot180_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmulq_rot270_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot270_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot270_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmulq_rot90_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)] [__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot90_m_f16(__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot90_m_f32(__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_veorq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_veorq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_veorq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_veorq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_veorq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_veorq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_veorq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_veorq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_veorq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vfmaq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vfmaq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vfmaq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vfmaq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vfmaq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double), p3));})
- 
- #define __arm_vfmasq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vfmasq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vfmasq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double), p3));})
- 
- #define __arm_vfmsq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vfmsq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vfmsq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vmaxnmq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmaxnmq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmaxnmq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vminnmq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vminnmq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vminnmq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vmulq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmulq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmulq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vmulq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vmulq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double), p3));})
- 
  #define __arm_vornq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
--- 8415,8420 ----
*************** extern void *__ARM_undef;
*** 37586,37636 ****
    int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vornq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
    int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vornq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
  
- #define __arm_vsubq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsubq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsubq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsubq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsubq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsubq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsubq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vsubq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vsubq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vsubq_m_n_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vsubq_m_n_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double), p3));})
- 
- #define __arm_vorrq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vorrq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vorrq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vorrq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vorrq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vorrq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vorrq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vorrq_m_f16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vorrq_m_f32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vld1q(p0) (\
-   _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \
-   int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_s8 (__ARM_mve_coerce_s8_ptr(p0, int8_t *)), \
-   int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_s16 (__ARM_mve_coerce_s16_ptr(p0, int16_t *)), \
-   int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_s32 (__ARM_mve_coerce_s32_ptr(p0, int32_t *)), \
-   int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_u8 (__ARM_mve_coerce_u8_ptr(p0, uint8_t *)), \
-   int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_u16 (__ARM_mve_coerce_u16_ptr(p0, uint16_t *)), \
-   int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_u32 (__ARM_mve_coerce_u32_ptr(p0, uint32_t *)), \
-   int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld1q_f16 (__ARM_mve_coerce_f16_ptr(p0, float16_t *)), \
-   int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld1q_f32 (__ARM_mve_coerce_f32_ptr(p0, float32_t *))))
- 
  #define __arm_vld1q_z(p0,p1) ( \
    _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \
    int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_z_s8 (__ARM_mve_coerce_s8_ptr(p0, int8_t *), p1), \
--- 8428,8433 ----
*************** extern void *__ARM_undef;
*** 37742,37758 ****
    int (*)[__ARM_mve_type_float16_t_ptr][__ARM_mve_type_float16x8x2_t]: __arm_vst2q_f16 (__ARM_mve_coerce_f16_ptr(p0, float16_t *), __ARM_mve_coerce(__p1, float16x8x2_t)), \
    int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4x2_t]: __arm_vst2q_f32 (__ARM_mve_coerce_f32_ptr(p0, float32_t *), __ARM_mve_coerce(__p1, float32x4x2_t)));})
  
- #define __arm_vst1q(p0,p1) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int8x16_t]: __arm_vst1q_s8 (__ARM_mve_coerce_s8_ptr(p0, int8_t *), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16_t_ptr][__ARM_mve_type_int16x8_t]: __arm_vst1q_s16 (__ARM_mve_coerce_s16_ptr(p0, int16_t *), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: __arm_vst1q_s32 (__ARM_mve_coerce_s32_ptr(p0, int32_t *), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: __arm_vst1q_u8 (__ARM_mve_coerce_u8_ptr(p0, uint8_t *), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16_t_ptr][__ARM_mve_type_uint16x8_t]: __arm_vst1q_u16 (__ARM_mve_coerce_u16_ptr(p0, uint16_t *), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: __arm_vst1q_u32 (__ARM_mve_coerce_u32_ptr(p0, uint32_t *), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_float16_t_ptr][__ARM_mve_type_float16x8_t]: __arm_vst1q_f16 (__ARM_mve_coerce_f16_ptr(p0, float16_t *), __ARM_mve_coerce(__p1, float16x8_t)), \
-   int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4_t]: __arm_vst1q_f32 (__ARM_mve_coerce_f32_ptr(p0, float32_t *), __ARM_mve_coerce(__p1, float32x4_t)));})
- 
  #define __arm_vstrhq(p0,p1) ({ __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \
    int (*)[__ARM_mve_type_int16_t_ptr][__ARM_mve_type_int16x8_t]: __arm_vstrhq_s16 (__ARM_mve_coerce_s16_ptr(p0, int16_t *), __ARM_mve_coerce(__p1, int16x8_t)), \
--- 8539,8544 ----
*************** extern void *__ARM_undef;
*** 37920,38045 ****
    int (*)[__ARM_mve_type_float16x8_t]: __arm_vuninitializedq_f16 (), \
    int (*)[__ARM_mve_type_float32x4_t]: __arm_vuninitializedq_f32 ());})
  
- #define __arm_vreinterpretq_f16(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_f16_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_f16_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_f16_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_f16_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_f16_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_f16_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_f16_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vreinterpretq_f32(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_f32_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_f32_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_f32_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_f32_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_f32_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_f32_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_f32_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_f32_f16 (__ARM_mve_coerce(__p0, float16x8_t)));})
- 
- #define __arm_vreinterpretq_s16(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_s16_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_s16_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_s16_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_s16_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_s16_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_s16_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_s16_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_s16_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_s16_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vreinterpretq_s32(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_s32_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_s32_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_s32_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_s32_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_s32_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_s32_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_s32_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_s32_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_s32_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vreinterpretq_s64(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_s64_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_s64_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_s64_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_s64_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_s64_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_s64_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_s64_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_s64_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_s64_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vreinterpretq_s8(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_s8_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_s8_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_s8_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_s8_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_s8_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_s8_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_s8_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_s8_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_s8_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vreinterpretq_u16(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_u16_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_u16_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_u16_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_u16_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_u16_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_u16_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_u16_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_u16_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_u16_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vreinterpretq_u32(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_u32_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_u32_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_u32_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_u32_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_u32_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_u32_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_u32_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_u32_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_u32_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vreinterpretq_u64(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_u64_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_u64_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_u64_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_u64_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_u64_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_u64_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_u64_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_u64_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_u64_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
- #define __arm_vreinterpretq_u8(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vreinterpretq_u8_f16 (__ARM_mve_coerce(__p0, float16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_u8_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_u8_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_u8_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_u8_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_u8_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_u8_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_u8_u64 (__ARM_mve_coerce(__p0, uint64x2_t)), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vreinterpretq_u8_f32 (__ARM_mve_coerce(__p0, float32x4_t)));})
- 
  #define __arm_vstrwq_scatter_base_wb(p0,p1,p2) ({ __typeof(p2) __p2 = (p2); \
    _Generic( (int (*)[__ARM_mve_typeid(__p2)])0, \
    int (*)[__ARM_mve_type_int32x4_t]: __arm_vstrwq_scatter_base_wb_s32 (p0, p1, __ARM_mve_coerce(__p2, int32x4_t)), \
--- 8706,8711 ----
*************** extern void *__ARM_undef;
*** 38052,38109 ****
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vstrwq_scatter_base_wb_p_u32 (p0, p1, __ARM_mve_coerce(__p2, uint32x4_t), p3), \
    int (*)[__ARM_mve_type_float32x4_t]: __arm_vstrwq_scatter_base_wb_p_f32 (p0, p1, __ARM_mve_coerce(__p2, float32x4_t), p3));})
  
- #define __arm_vabdq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabdq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabdq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabdq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabdq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabdq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabdq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vabdq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vabdq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vabsq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vabsq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vabsq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vabsq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vabsq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vabsq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vaddq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vaddq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vaddq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vaddq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vaddq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vaddq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vaddq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vaddq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vaddq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vaddq_x_n_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vaddq_x_n_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double), p3));})
- 
- #define __arm_vandq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vandq_x_s8  (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vandq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vandq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vandq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vandq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vandq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vandq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vandq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
  #define __arm_vbicq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
    _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
--- 8718,8723 ----
*************** extern void *__ARM_undef;
*** 38116,38174 ****
    int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vbicq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
    int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vbicq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
  
- #define __arm_vbrsrq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vbrsrq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vbrsrq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vbrsrq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vbrsrq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vbrsrq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vbrsrq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vbrsrq_x_n_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vbrsrq_x_n_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2, p3));})
- 
- #define __arm_vcaddq_rot270_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot270_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot270_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot270_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot270_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot270_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot270_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcaddq_rot270_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcaddq_rot270_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcaddq_rot90_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot90_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot90_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot90_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot90_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot90_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot90_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcaddq_rot90_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcaddq_rot90_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmulq_rot180_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot180_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot180_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmulq_rot270_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot270_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot270_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vcmulq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
  #define __arm_vcvtq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
    int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_x_f16_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
--- 8730,8735 ----
*************** extern void *__ARM_undef;
*** 38183,38240 ****
    int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_x_n_f16_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_x_n_f32_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
  
- #define __arm_veorq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_veorq_x_s8(__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_veorq_x_s16(__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_veorq_x_s32(__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_veorq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_veorq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_veorq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_veorq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_veorq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vmaxnmq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmaxnmq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmaxnmq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vminnmq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vminnmq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vminnmq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vmulq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vmulq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vmulq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vmulq_x_n_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vmulq_x_n_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double), p3));})
- 
- #define __arm_vnegq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vnegq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vnegq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vnegq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vnegq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vnegq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
  #define __arm_vornq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
    _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
--- 8744,8749 ----
*************** extern void *__ARM_undef;
*** 38247,38339 ****
    int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vornq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
    int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vornq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
  
- #define __arm_vorrq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vorrq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vorrq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vorrq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vorrq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vorrq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vorrq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vorrq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vorrq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
- #define __arm_vrev32q_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev32q_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrev32q_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev32q_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrev32q_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrev32q_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2));})
- 
- #define __arm_vrev64q_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev64q_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrev64q_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrev64q_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev64q_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrev64q_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrev64q_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrev64q_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrev64q_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndaq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndaq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndaq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndmq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndmq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndmq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndnq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndnq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndnq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndpq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndpq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndpq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vrndxq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_float16x8_t]: __arm_vrndxq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), p2), \
-   int (*)[__ARM_mve_type_float32x4_t]: __arm_vrndxq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), p2));})
- 
- #define __arm_vsubq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsubq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsubq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsubq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsubq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsubq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsubq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vsubq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vsubq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3), \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_fp_n]: __arm_vsubq_x_n_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce_f_scalar(__p2, double), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_fp_n]: __arm_vsubq_x_n_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce_f_scalar(__p2, double), p3));})
- 
- #define __arm_vcmulq_rot90_x(p1,p2,p3)  ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcmulq_rot90_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \
-   int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcmulq_rot90_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));})
- 
  #define __arm_vgetq_lane(p0,p1) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_int8x16_t]: __arm_vgetq_lane_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
--- 8756,8761 ----
*************** extern void *__ARM_undef;
*** 38382,38700 ****
    int (*)[__ARM_mve_type_uint16_t_ptr][__ARM_mve_type_uint16x8x4_t]: __arm_vst4q_u16 (__ARM_mve_coerce_u16_ptr(p0, uint16_t *), __ARM_mve_coerce(__p1, uint16x8x4_t)), \
    int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4x4_t]: __arm_vst4q_u32 (__ARM_mve_coerce_u32_ptr(p0, uint32_t *), __ARM_mve_coerce(__p1, uint32x4x4_t)));})
  
- #define __arm_vabsq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vabsq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vabsq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vabsq_s32 (__ARM_mve_coerce(__p0, int32x4_t)));})
- 
- #define __arm_vclsq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vclsq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vclsq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vclsq_s32 (__ARM_mve_coerce(__p0, int32x4_t)));})
- 
- #define __arm_vclzq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vclzq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vclzq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vclzq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vclzq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vclzq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vclzq_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));})
- 
- #define __arm_vnegq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vnegq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vnegq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vnegq_s32 (__ARM_mve_coerce(__p0, int32x4_t)));})
- 
- #define __arm_vmovlbq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovlbq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmovlbq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmovlbq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmovlbq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)));})
- 
- #define __arm_vmovltq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovltq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmovltq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmovltq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmovltq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)));})
- 
- #define __arm_vmvnq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmvnq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmvnq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vmvnq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmvnq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmvnq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vmvnq_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));})
- 
- #define __arm_vrev16q(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev16q_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev16q_u8 (__ARM_mve_coerce(__p0, uint8x16_t)));})
- 
- #define __arm_vrev32q(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev32q_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrev32q_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev32q_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrev32q_u16 (__ARM_mve_coerce(__p0, uint16x8_t)));})
- 
- #define __arm_vrev64q(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev64q_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrev64q_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrev64q_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev64q_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrev64q_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrev64q_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));})
- 
- #define __arm_vqabsq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqabsq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqabsq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqabsq_s32 (__ARM_mve_coerce(__p0, int32x4_t)));})
- 
- #define __arm_vqnegq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqnegq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqnegq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqnegq_s32 (__ARM_mve_coerce(__p0, int32x4_t)));})
- 
- #define __arm_vshrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshrq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshrq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vcmpneq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpneq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpneq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpneq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpneq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpneq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpneq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vshlq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vsubq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsubq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsubq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsubq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsubq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsubq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsubq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vshlq_r(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlq_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlq_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshlq_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlq_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlq_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlq_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vrshlq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vrshlq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshlq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshlq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshlq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshlq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshlq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshlq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vrmulhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrmulhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrmulhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrmulhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrmulhq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrmulhq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrmulhq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vrhaddq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrhaddq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrhaddq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrhaddq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrhaddq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrhaddq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrhaddq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vqsubq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vqsubq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqsubq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqsubq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqsubq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vqsubq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vqsubq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vqsubq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vqshlq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqshlq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqshlq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqshlq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqshlq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqshlq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqshlq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqshlq_r(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqshlq_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqshlq_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqshlq_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vqshlq_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vqshlq_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vqshlq_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vqshluq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqshluq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqshluq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqshluq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1));})
- 
- #define __arm_vrshrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrshrq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrshrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrshrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrshrq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrshrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrshrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vshlq_n(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshlq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vqshlq_n(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqshlq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqshlq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqshlq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vqshlq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vqshlq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vqshlq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vqrshlq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrshlq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrshlq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrshlq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrshlq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrshlq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrshlq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vqrshlq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vqrdmulhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmulhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmulhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmulhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vqdmulhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmulhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmulhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmulhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqaddq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vqaddq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqaddq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqaddq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqaddq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vqaddq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vqaddq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vqaddq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vorrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vorrq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vorrq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vorrq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vorrq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vorrq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vorrq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vorrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vorrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vorrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vorrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
  #define __arm_vornq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
--- 8804,8809 ----
*************** extern void *__ARM_undef;
*** 38705,38875 ****
    int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vornq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
    int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vornq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
  
- #define __arm_vmulq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmulltq_int(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulltq_int_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulltq_int_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulltq_int_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_int_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_int_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulltq_int_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmullbq_int(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmullbq_int_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmullbq_int_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmullbq_int_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_int_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_int_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmullbq_int_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmulhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulhq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulhq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulhq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vminq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vminq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vminq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vminq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vminq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vminq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vminq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vminaq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vminaq_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vminaq_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vminaq_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vmaxq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmaxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmaxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmaxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmaxq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmaxq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmaxq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmaxaq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmaxaq_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmaxaq_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmaxaq_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vhsubq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vhsubq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhsubq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhsubq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhsubq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vhsubq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vhsubq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vhsubq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vhcaddq_rot90(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhcaddq_rot90_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhcaddq_rot90_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhcaddq_rot90_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vhcaddq_rot270(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhcaddq_rot270_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhcaddq_rot270_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhcaddq_rot270_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vhaddq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vhaddq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhaddq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhaddq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhaddq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vhaddq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vhaddq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vhaddq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_veorq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_veorq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_veorq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_veorq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_veorq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_veorq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_veorq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vcaddq_rot90(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot90_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot90_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot90_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot90_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot90_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot90_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vcaddq_rot270(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot270_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot270_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot270_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot270_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot270_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot270_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vbrsrq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vbrsrq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vbrsrq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vbrsrq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vbrsrq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vbrsrq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vbrsrq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
  #define __arm_vbicq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
--- 8814,8819 ----
*************** extern void *__ARM_undef;
*** 38884,39089 ****
    int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vbicq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
    int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vbicq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
  
- #define __arm_vaddq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vaddq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vaddq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vaddq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vaddq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vaddq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vaddq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vandq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vandq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vandq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vandq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vandq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vandq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vandq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vabdq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabdq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabdq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabdq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabdq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabdq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabdq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vcmpeqq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpeqq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpeqq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpeqq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpeqq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpeqq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpeqq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vqmovntq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovntq_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovntq_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqmovntq_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqmovntq_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vqmovnbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovnbq_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovnbq_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqmovnbq_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqmovnbq_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmulltq_poly(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_poly_p8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_poly_p16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)));})
- 
- #define __arm_vmullbq_poly(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_poly_p8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_poly_p16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)));})
- 
- #define __arm_vmovntq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vmovntq_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vmovntq_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vmovntq_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vmovntq_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmovnbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vmovnbq_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vmovnbq_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vmovnbq_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vmovnbq_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmlaldavxq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlaldavxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqmovuntq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovuntq_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovuntq_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vshlltq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlltq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlltq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlltq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlltq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1));})
- 
- #define __arm_vshllbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshllbq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshllbq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshllbq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshllbq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1));})
- 
- #define __arm_vqmovunbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovunbq_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovunbq_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqdmulltq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmulltq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmulltq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmulltq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmulltq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vqdmullbq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmullbq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmullbq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmullbq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmullbq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vcmpgeq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgeq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgeq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgeq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vcmpgtq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgtq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgtq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgtq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vcmpleq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpleq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpleq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpleq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpleq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpleq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpleq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vcmpltq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpltq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpltq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpltq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpltq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpltq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpltq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vcmpneq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpneq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpneq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpneq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpneq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpneq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpneq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
  #define __arm_vshlcq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlcq_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
--- 8828,8833 ----
*************** extern void *__ARM_undef;
*** 39093,39114 ****
    int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlcq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlcq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
  
- #define __arm_vcmpeqq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpeqq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpeqq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpeqq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpeqq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpeqq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpeqq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpeqq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2));})
- 
  #define __arm_vbicq_m_n(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_int16x8_t]: __arm_vbicq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
--- 8837,8842 ----
*************** extern void *__ARM_undef;
*** 39116,39627 ****
    int (*)[__ARM_mve_type_uint16x8_t]: __arm_vbicq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vbicq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
  
- #define __arm_vqrshrnbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrnbq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrnbq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqrshrnbq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqrshrnbq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqrshrunbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrunbq_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrunbq_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqrdmlsdhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmlsdhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmlsdhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmlsdhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqrdmlsdhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmlsdhxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmlsdhxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmlsdhxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqrshlq_m_n(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqrshlq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqrshlq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqrshlq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vqrshlq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vqrshlq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vqrshlq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
- 
- #define __arm_vqshlq_m_r(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vqshlq_m_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vqshlq_m_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vqshlq_m_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vqshlq_m_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vqshlq_m_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vqshlq_m_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
- 
- #define __arm_vrev64q_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrev64q_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrev64q_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrev64q_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrev64q_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrev64q_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrev64q_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vrshlq_m_n(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrshlq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrshlq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrshlq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrshlq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrshlq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrshlq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __p1, p2));})
- 
- #define __arm_vshlq_m_r(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlq_m_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlq_m_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshlq_m_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlq_m_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlq_m_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlq_m_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
- 
- #define __arm_vsliq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsliq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsliq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsliq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsliq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsliq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsliq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vsriq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsriq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsriq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsriq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsriq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsriq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsriq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqrdmlashq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vqdmlashq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vqrdmlahq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vqrdmladhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmladhxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmladhxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmladhxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqrdmladhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmladhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmladhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmladhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqnegq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqnegq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqnegq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqnegq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqdmlsdhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmlsdhxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmlsdhxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmlsdhxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vabsq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabsq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabsq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabsq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vclsq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vclsq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vclsq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vclsq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vclzq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vclzq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vclzq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vclzq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vclzq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vclzq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vclzq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vcmpgeq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgeq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgeq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgeq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgeq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2));})
- 
- 
- #define __arm_vcmpgtq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpgtq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpgtq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpgtq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpgtq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2));})
- 
- #define __arm_vcmpleq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpleq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpleq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpleq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpleq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2));})
- 
- #define __arm_vcmpltq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpltq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpltq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpltq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpltq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2));})
- 
- #define __arm_vcmpneq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcmpneq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcmpneq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcmpneq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpneq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpneq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpneq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpneq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2));})
- 
- #define __arm_vdupq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), (int8_t) __p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), (int16_t) __p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), (int32_t) __p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), (uint8_t) __p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), (uint16_t) __p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vdupq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), (uint32_t) __p1, p2));})
- 
- #define __arm_vmaxaq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmaxaq_m_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmaxaq_m_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmaxaq_m_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmlaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmlaq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vmlasq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmlasq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vnegq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vnegq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vnegq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vnegq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vpselq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vpselq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vpselq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vpselq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int64x2_t][__ARM_mve_type_int64x2_t]: __arm_vpselq_s64 (__ARM_mve_coerce(__p0, int64x2_t), __ARM_mve_coerce(__p1, int64x2_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vpselq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vpselq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vpselq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint64x2_t][__ARM_mve_type_uint64x2_t]: __arm_vpselq_u64 (__ARM_mve_coerce(__p0, uint64x2_t), __ARM_mve_coerce(__p1, uint64x2_t), p2));})
- 
- #define __arm_vqdmlahq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int)));})
- 
- #define __arm_vqdmlsdhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmlsdhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmlsdhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmlsdhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqdmladhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmladhxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmladhxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmladhxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vqdmladhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmladhq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmladhq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmladhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vminaq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vminaq_m_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vminaq_m_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vminaq_m_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmovlbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int8x16_t]: __arm_vmovlbq_m_s8 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t]: __arm_vmovlbq_m_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t]: __arm_vmovlbq_m_u8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t]: __arm_vmovlbq_m_u16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vmovnbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vmovnbq_m_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vmovnbq_m_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vmovnbq_m_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vmovnbq_m_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmovntq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vmovntq_m_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vmovntq_m_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vmovntq_m_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vmovntq_m_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vshrnbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vshrnbq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vshrnbq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vshrnbq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vshrnbq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vrshrnbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vrshrnbq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vrshrnbq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vrshrnbq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vrshrnbq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vrev32q_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrev32q_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrev32q_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrev32q_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrev32q_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vqshruntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshruntq_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshruntq_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vrev16q_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrev16q_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrev16q_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2));})
- 
- #define __arm_vqshrntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshrntq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshrntq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqshrntq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqshrntq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqrshruntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshruntq_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshruntq_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqrshrntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrntq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrntq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqrshrntq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqrshrntq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqshrnbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshrnbq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshrnbq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqshrnbq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqshrnbq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqmovuntq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovuntq_m_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovuntq_m_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqmovntq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovntq_m_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovntq_m_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqmovntq_m_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqmovntq_m_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vqmovnbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovnbq_m_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovnbq_m_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqmovnbq_m_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqmovnbq_m_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmovltq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int8x16_t]: __arm_vmovltq_m_s8 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t]: __arm_vmovltq_m_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t]: __arm_vmovltq_m_u8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t]: __arm_vmovltq_m_u16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vqmovunbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqmovunbq_m_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqmovunbq_m_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vsubq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsubq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsubq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsubq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsubq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsubq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsubq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vabavq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabavq_p_s8(__p0, __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabavq_p_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabavq_p_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabavq_p_u8(__p0, __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabavq_p_u16(__p0, __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabavq_p_u32(__p0, __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vabdq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabdq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabdq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabdq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabdq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabdq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabdq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vandq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vandq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vandq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vandq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vandq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vandq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vandq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
  #define __arm_vbicq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
--- 8844,8849 ----
*************** extern void *__ARM_undef;
*** 39633,39693 ****
    int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vbicq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
    int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vbicq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
  
- #define __arm_vbrsrq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vbrsrq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vbrsrq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vbrsrq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vbrsrq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vbrsrq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vbrsrq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __p2, p3));})
- 
- #define __arm_vcaddq_rot270_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot270_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot270_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot270_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot270_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot270_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot270_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vcaddq_rot90_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot90_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot90_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot90_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot90_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot90_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot90_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_veorq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_veorq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_veorq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_veorq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_veorq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_veorq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_veorq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmladavaq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavaq_p_s8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavaq_p_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_int32x4_t]: __arm_vmladavaq_p_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmladavaq_p_u8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmladavaq_p_u16 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_uint32x4_t]: __arm_vmladavaq_p_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
  #define __arm_vornq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
--- 8855,8860 ----
*************** extern void *__ARM_undef;
*** 39699,39749 ****
    int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vornq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
    int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vornq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
  
- #define __arm_vorrq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vorrq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vorrq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vorrq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vorrq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vorrq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vorrq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vaddq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vaddq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vaddq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vaddq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vaddq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vaddq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vaddq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmulq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
  #define __arm_vstrwq_scatter_base(p0,p1,p2) ({ __typeof(p2) __p2 = (p2); \
    _Generic( (int (*)[__ARM_mve_typeid(__p2)])0, \
    int (*)[__ARM_mve_type_int32x4_t]: __arm_vstrwq_scatter_base_s32(p0, p1, __ARM_mve_coerce(__p2, int32x4_t)), \
--- 8866,8871 ----
*************** extern void *__ARM_undef;
*** 39763,39777 ****
    int (*)[__ARM_mve_type_int32x4_t]: __arm_vstrwq_scatter_base_p_s32 (p0, p1, __ARM_mve_coerce(__p2, int32x4_t), p3), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vstrwq_scatter_base_p_u32 (p0, p1, __ARM_mve_coerce(__p2, uint32x4_t), p3));})
  
- #define __arm_vld1q(p0) (\
-   _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \
-   int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_s8 (__ARM_mve_coerce_s8_ptr(p0, int8_t *)), \
-   int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_s16 (__ARM_mve_coerce_s16_ptr(p0, int16_t *)), \
-   int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_s32 (__ARM_mve_coerce_s32_ptr(p0, int32_t *)), \
-   int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_u8 (__ARM_mve_coerce_u8_ptr(p0, uint8_t *)), \
-   int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_u16 (__ARM_mve_coerce_u16_ptr(p0, uint16_t *)), \
-   int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_u32 (__ARM_mve_coerce_u32_ptr(p0, uint32_t *))))
- 
  #define __arm_vldrhq_gather_offset(p0,p1) ({ __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \
    int (*)[__ARM_mve_type_int16_t_ptr][__ARM_mve_type_uint16x8_t]: __arm_vldrhq_gather_offset_s16 (__ARM_mve_coerce_s16_ptr(p0, int16_t *), __ARM_mve_coerce(__p1, uint16x8_t)), \
--- 8885,8890 ----
*************** extern void *__ARM_undef;
*** 39820,39834 ****
    int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vldrwq_gather_shifted_offset_z_s32 (__ARM_mve_coerce_s32_ptr(__p0, int32_t *), p1, p2), \
    int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vldrwq_gather_shifted_offset_z_u32 (__ARM_mve_coerce_u32_ptr(__p0, uint32_t *), p1, p2));})
  
- #define __arm_vst1q(p0,p1) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int8x16_t]: __arm_vst1q_s8 (__ARM_mve_coerce_s8_ptr(p0, int8_t *), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16_t_ptr][__ARM_mve_type_int16x8_t]: __arm_vst1q_s16 (__ARM_mve_coerce_s16_ptr(p0, int16_t *), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: __arm_vst1q_s32 (__ARM_mve_coerce_s32_ptr(p0, int32_t *), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: __arm_vst1q_u8 (__ARM_mve_coerce_u8_ptr(p0, uint8_t *), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16_t_ptr][__ARM_mve_type_uint16x8_t]: __arm_vst1q_u16 (__ARM_mve_coerce_u16_ptr(p0, uint16_t *), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: __arm_vst1q_u32 (__ARM_mve_coerce_u32_ptr(p0, uint32_t *), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
  #define __arm_vst1q_p(p0,p1,p2) ({ __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \
    int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int8x16_t]: __arm_vst1q_p_s8 (__ARM_mve_coerce_s8_ptr(p0, int8_t *), __ARM_mve_coerce(__p1, int8x16_t), p2), \
--- 8933,8938 ----
*************** extern void *__ARM_undef;
*** 39981,40196 ****
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vuninitializedq_u32 (), \
    int (*)[__ARM_mve_type_uint64x2_t]: __arm_vuninitializedq_u64 ());})
  
- #define __arm_vreinterpretq_s16(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_s16_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_s16_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_s16_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_s16_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_s16_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_s16_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_s16_u64 (__ARM_mve_coerce(__p0, uint64x2_t)));})
- 
- #define __arm_vreinterpretq_s32(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_s32_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_s32_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_s32_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_s32_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_s32_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_s32_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_s32_u64 (__ARM_mve_coerce(__p0, uint64x2_t)));})
- 
- #define __arm_vreinterpretq_s64(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_s64_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_s64_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_s64_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_s64_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_s64_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_s64_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_s64_u64 (__ARM_mve_coerce(__p0, uint64x2_t)));})
- 
- #define __arm_vreinterpretq_s8(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_s8_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_s8_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_s8_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_s8_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_s8_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_s8_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_s8_u64 (__ARM_mve_coerce(__p0, uint64x2_t)));})
- 
- #define __arm_vreinterpretq_u16(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_u16_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_u16_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_u16_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_u16_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_u16_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_u16_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_u16_u64 (__ARM_mve_coerce(__p0, uint64x2_t)));})
- 
- #define __arm_vreinterpretq_u32(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_u32_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_u32_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_u32_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_u32_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_u32_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_u32_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_u32_u64 (__ARM_mve_coerce(__p0, uint64x2_t)));})
- 
- #define __arm_vreinterpretq_u64(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_u64_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_u64_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_u64_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vreinterpretq_u64_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_u64_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_u64_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_u64_s64 (__ARM_mve_coerce(__p0, int64x2_t)));})
- 
- #define __arm_vreinterpretq_u8(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vreinterpretq_u8_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vreinterpretq_u8_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_int64x2_t]: __arm_vreinterpretq_u8_s64 (__ARM_mve_coerce(__p0, int64x2_t)), \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vreinterpretq_u8_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vreinterpretq_u8_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vreinterpretq_u8_u32 (__ARM_mve_coerce(__p0, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint64x2_t]: __arm_vreinterpretq_u8_u64 (__ARM_mve_coerce(__p0, uint64x2_t)));})
- 
- #define __arm_vabsq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vabsq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vabsq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vabsq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vaddq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vaddq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vaddq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vaddq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vaddq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vaddq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vaddq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vaddq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vcaddq_rot270_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot270_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot270_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot270_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot270_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot270_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot270_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vcaddq_rot90_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vcaddq_rot90_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcaddq_rot90_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcaddq_rot90_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcaddq_rot90_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcaddq_rot90_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcaddq_rot90_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_veorq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_veorq_x_s8(__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_veorq_x_s16(__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_veorq_x_s32(__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_veorq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_veorq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_veorq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmovlbq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovlbq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmovlbq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmovlbq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmovlbq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vmovltq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovltq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmovltq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmovltq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmovltq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vmulhq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulhq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulhq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulhq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulhq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulhq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulhq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmullbq_int_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmullbq_int_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmullbq_int_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmullbq_int_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_int_x_u8( __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_int_x_u16( __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmullbq_int_x_u32( __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmullbq_poly_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_poly_x_p8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_poly_x_p16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3));})
- 
- #define __arm_vmulltq_int_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulltq_int_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulltq_int_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulltq_int_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_int_x_u8( __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_int_x_u16( __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulltq_int_x_u32( __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmulltq_poly_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_poly_x_p8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_poly_x_p16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3));})
- 
- #define __arm_vmulq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmulq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vnegq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vnegq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vnegq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vnegq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
  #define __arm_vornq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
    _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
--- 9085,9090 ----
*************** extern void *__ARM_undef;
*** 40201,40252 ****
    int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vornq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
    int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vornq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
  
- #define __arm_vorrq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vorrq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vorrq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vorrq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vorrq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vorrq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vorrq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vrev32q_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev32q_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrev32q_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev32q_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrev32q_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vrev64q_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev64q_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrev64q_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrev64q_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev64q_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrev64q_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrev64q_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vabdq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabdq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabdq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabdq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabdq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabdq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabdq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vandq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vandq_x_s8  (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vandq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vandq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vandq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vandq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vandq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
  #define __arm_vbicq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
    _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
--- 9095,9100 ----
*************** extern void *__ARM_undef;
*** 40257,40271 ****
    int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vbicq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
    int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vbicq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
  
- #define __arm_vbrsrq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vbrsrq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vbrsrq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vbrsrq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vbrsrq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vbrsrq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vbrsrq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
  #define __arm_vld1q_z(p0,p1) ( _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \
    int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_z_s8 (__ARM_mve_coerce_s8_ptr(p0, int8_t *), p1), \
    int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_z_s16 (__ARM_mve_coerce_s16_ptr(p0, int16_t *), p1), \
--- 9105,9110 ----
*************** extern void *__ARM_undef;
*** 40291,40312 ****
    int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld4q_u16 (__ARM_mve_coerce_u16_ptr(p0, uint16_t *)), \
    int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld4q_u32 (__ARM_mve_coerce_u32_ptr(p0, uint32_t *))))
  
- #define __arm_vsubq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsubq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsubq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsubq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsubq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsubq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsubq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vsubq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
  #define __arm_vgetq_lane(p0,p1) ({ __typeof(p0) __p0 = (p0); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
    int (*)[__ARM_mve_type_int8x16_t]: __arm_vgetq_lane_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
--- 9130,9135 ----
*************** extern void *__ARM_undef;
*** 40332,40440 ****
  
  #endif /* MVE Integer.  */
  
- #define __arm_vshrntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vshrntq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vshrntq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vshrntq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vshrntq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- 
- #define __arm_vrshrntq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vrshrntq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vrshrntq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vrshrntq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vrshrntq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- 
- #define __arm_vmvnq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmvnq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmvnq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vmvnq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmvnq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmvnq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vmvnq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vrev16q_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrev16q_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrev16q_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2));})
- 
- #define __arm_vrhaddq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrhaddq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrhaddq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrhaddq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrhaddq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrhaddq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrhaddq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vshlq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vrmulhq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrmulhq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrmulhq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrmulhq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrmulhq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrmulhq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrmulhq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vrshlq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshlq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshlq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshlq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshlq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshlq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshlq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vrshrq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vrshrq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vrshrq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vrshrq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vrshrq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vrshrq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vrshrq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vshllbq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshllbq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshllbq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshllbq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshllbq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3));})
- 
- #define __arm_vshlltq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlltq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlltq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlltq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlltq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3));})
  
- #define __arm_vshlq_x_n(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshlq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
  
  #define __arm_vdwdupq_x_u8(p1,p2,p3,p4) ({ __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
--- 9155,9161 ----
*************** extern void *__ARM_undef;
*** 40496,40571 ****
    int (*)[__ARM_mve_type_int_n]: __arm_vddupq_x_n_u32 ((uint32_t) __p1, p2, p3), \
    int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vddupq_x_wb_u32 (__ARM_mve_coerce_u32_ptr(__p1, uint32_t *), p2, p3));})
  
- #define __arm_vshrq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshrq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshrq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshrq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshrq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshrq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshrq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vhaddq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vhaddq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vhaddq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vhaddq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vhaddq_x_n_u8( __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vhaddq_x_n_u16( __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vhaddq_x_n_u32( __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhaddq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhaddq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhaddq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vhaddq_x_u8( __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vhaddq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vhaddq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vhcaddq_rot270_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhcaddq_rot270_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhcaddq_rot270_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhcaddq_rot270_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vhcaddq_rot90_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhcaddq_rot90_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhcaddq_rot90_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhcaddq_rot90_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vhsubq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vhsubq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vhsubq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vhsubq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vhsubq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vhsubq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vhsubq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhsubq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhsubq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhsubq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vhsubq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vhsubq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vhsubq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vclsq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vclsq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vclsq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vclsq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vclzq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vclzq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vclzq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vclzq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vclzq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vclzq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vclzq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
  #define __arm_vadciq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
--- 9217,9222 ----
*************** extern void *__ARM_undef;
*** 40659,41341 ****
    int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: __arm_vldrbq_gather_offset_z_u16 (__ARM_mve_coerce_u8_ptr(p0, uint8_t *), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
    int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: __arm_vldrbq_gather_offset_z_u32 (__ARM_mve_coerce_u8_ptr(p0, uint8_t *), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
  
- #define __arm_vqrdmlahq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmlahq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vqrdmlashq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmlashq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vqdmlashq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmlashq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vqrshlq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrshlq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrshlq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrshlq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrshlq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrshlq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrshlq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqshlq_m_n(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqshlq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqshlq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqshlq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vqshlq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vqshlq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vqshlq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t),  p2, p3));})
- 
- #define __arm_vqshlq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqshlq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqshlq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqshlq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqshlq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqshlq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqshlq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vrhaddq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrhaddq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrhaddq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrhaddq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrhaddq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrhaddq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrhaddq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vrmulhq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrmulhq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrmulhq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrmulhq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrmulhq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrmulhq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrmulhq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vrshlq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshlq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshlq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshlq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshlq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshlq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshlq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vrshrq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vrshrq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vrshrq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrshrq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vrshrq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vrshrq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrshrq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t),  p2, p3));})
- 
- #define __arm_vshrq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshrq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshrq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshrq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vshrq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vshrq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vshrq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t),  p2, p3));})
- 
- #define __arm_vsliq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsliq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsliq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsliq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsliq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsliq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsliq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t),  p2, p3));})
- 
- #define __arm_vqsubq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqsubq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqsubq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqsubq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vqsubq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vqsubq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vqsubq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqsubq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqsubq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqsubq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vqsubq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vqsubq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vqsubq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vqrdmulhq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmulhq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmulhq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmulhq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqrdmulhq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vqrdmlsdhxq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmlsdhxq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmlsdhxq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmlsdhxq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqrdmlsdhq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmlsdhq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmlsdhq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmlsdhq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vshllbq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int8x16_t]: __arm_vshllbq_m_n_s8 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t]: __arm_vshllbq_m_n_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t]: __arm_vshllbq_m_n_u8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t]: __arm_vshllbq_m_n_u16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3));})
- 
- #define __arm_vshrntq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vshrntq_m_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vshrntq_m_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vshrntq_m_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vshrntq_m_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vshrnbq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vshrnbq_m_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vshrnbq_m_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vshrnbq_m_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vshrnbq_m_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vshlltq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int8x16_t]: __arm_vshlltq_m_n_s8 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t]: __arm_vshlltq_m_n_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t]: __arm_vshlltq_m_n_u8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t]: __arm_vshlltq_m_n_u16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3));})
- 
- #define __arm_vrshrntq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vrshrntq_m_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vrshrntq_m_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vrshrntq_m_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vrshrntq_m_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vqshruntq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshruntq_m_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshruntq_m_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3));})
- 
- #define __arm_vqshrunbq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshrunbq_m_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshrunbq_m_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3));})
- 
- #define __arm_vqrshrnbq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrnbq_m_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrnbq_m_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqrshrnbq_m_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqrshrnbq_m_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vqrshrntq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrntq_m_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrntq_m_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqrshrntq_m_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqrshrntq_m_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vqrshrunbq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshrunbq_m_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshrunbq_m_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3));})
- 
- #define __arm_vqrshruntq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqrshruntq_m_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqrshruntq_m_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3));})
- 
- #define __arm_vqshrnbq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshrnbq_m_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshrnbq_m_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqshrnbq_m_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqshrnbq_m_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vqshrntq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshrntq_m_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshrntq_m_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vqshrntq_m_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vqshrntq_m_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vrshrnbq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: __arm_vrshrnbq_m_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: __arm_vrshrnbq_m_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: __arm_vrshrnbq_m_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: __arm_vrshrnbq_m_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vmlaldavaq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavaq_p_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_int32x4_t]: __arm_vmlaldavaq_p_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_uint16x8_t]: __arm_vmlaldavaq_p_u16 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_uint32x4_t]: __arm_vmlaldavaq_p_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmlaldavaxq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavaxq_p_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_int32x4_t]: __arm_vmlaldavaxq_p_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __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); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsldavaq_p_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsldavaq_p_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vmlsldavaxq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsldavaxq_p_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsldavaxq_p_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vrmlaldavhaxq_p(p0,p1,p2,p3) __arm_vrmlaldavhaxq_p_s32(p0,p1,p2,p3)
- 
- #define __arm_vrmlsldavhaq_p(p0,p1,p2,p3) __arm_vrmlsldavhaq_p_s32(p0,p1,p2,p3)
- 
- #define __arm_vrmlsldavhaxq_p(p0,p1,p2,p3) __arm_vrmlsldavhaxq_p_s32(p0,p1,p2,p3)
- 
- #define __arm_vqdmladhq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmladhq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmladhq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmladhq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqdmladhxq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmladhxq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmladhxq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmladhxq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqdmlsdhq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmlsdhq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmlsdhq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmlsdhq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqdmlsdhxq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmlsdhxq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmlsdhxq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmlsdhxq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqabsq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqabsq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqabsq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqabsq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmvnq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmvnq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmvnq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmvnq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmvnq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmvnq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmvnq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmvnq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce_i_scalar(__p1, int) , p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmvnq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce_i_scalar(__p1, int) , p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmvnq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int) , p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmvnq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int) , p2));})
- 
- #define __arm_vorrq_m_n(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vorrq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vorrq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vorrq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vorrq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
- 
- #define __arm_vqshrunbq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int16x8_t]: __arm_vqshrunbq_n_s16 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int32x4_t]: __arm_vqshrunbq_n_s32 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vqshluq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqshluq_m_n_s8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqshluq_m_n_s16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqshluq_m_n_s32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3));})
- 
- #define __arm_vshlq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vshlq_m_n(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vshlq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vshlq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vshlq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vshlq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vshlq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t),  p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vshlq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t),  p2, p3));})
- 
- #define __arm_vshlq_m_r(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlq_m_r_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vshlq_m_r_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vshlq_m_r_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vshlq_m_r_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlq_m_r_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlq_m_r_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2));})
- 
- #define __arm_vsriq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vsriq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vsriq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vsriq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vsriq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vsriq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vsriq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));})
- 
- #define __arm_vhaddq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vhaddq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vhaddq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vhaddq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vhaddq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vhaddq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vhaddq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhaddq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhaddq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhaddq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vhaddq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vhaddq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vhaddq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vhcaddq_rot270_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhcaddq_rot270_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhcaddq_rot270_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhcaddq_rot270_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vhcaddq_rot90_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhcaddq_rot90_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhcaddq_rot90_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhcaddq_rot90_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vhsubq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vhsubq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vhsubq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vhsubq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vhsubq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vhsubq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vhsubq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vhsubq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vhsubq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vhsubq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vhsubq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vhsubq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vhsubq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vmaxq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmaxq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmaxq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmaxq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmaxq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmaxq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmaxq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vminq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vminq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vminq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vminq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vminq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vminq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vminq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmlaq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmlaq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmlaq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmlaq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmlaq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmlaq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmlaq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vmlasq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vmlasq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vmlasq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vmlasq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vmlasq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vmlasq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vmlasq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vmulhq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulhq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulhq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulhq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulhq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulhq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulhq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmullbq_int_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmullbq_int_m_s8 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmullbq_int_m_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int64x2_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmullbq_int_m_s32 (__ARM_mve_coerce(__p0, int64x2_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_int_m_u8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_int_m_u16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint64x2_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmullbq_int_m_u32 (__ARM_mve_coerce(__p0, uint64x2_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmulltq_int_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulltq_int_m_s8 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulltq_int_m_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int64x2_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulltq_int_m_s32 (__ARM_mve_coerce(__p0, int64x2_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_int_m_u8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_int_m_u16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint64x2_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulltq_int_m_u32 (__ARM_mve_coerce(__p0, uint64x2_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmulltq_poly_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_poly_m_p8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_poly_m_p16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3));})
- 
- #define __arm_vqaddq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqaddq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqaddq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqaddq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vqaddq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vqaddq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vqaddq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqaddq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqaddq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqaddq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vqaddq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vqaddq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vqaddq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vqdmlahq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmlahq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vqdmulhq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmulhq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqdmulhq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmulhq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmulhq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqdmullbq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmullbq_m_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int64x2_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmullbq_m_s32 (__ARM_mve_coerce(__p0, int64x2_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmullbq_m_n_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int64x2_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmullbq_m_n_s32 (__ARM_mve_coerce(__p0, int64x2_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3));})
- 
- #define __arm_vqdmulltq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: __arm_vqdmulltq_m_n_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int64x2_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: __arm_vqdmulltq_m_n_s32 (__ARM_mve_coerce(__p0, int64x2_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce_i_scalar(__p2, int), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqdmulltq_m_s16 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int64x2_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqdmulltq_m_s32 (__ARM_mve_coerce(__p0, int64x2_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqrdmladhq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmladhq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmladhq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmladhq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vqrdmladhxq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vqrdmladhxq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vqrdmladhxq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vqrdmladhxq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vmlsdavaxq_p(p0,p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmlsdavaxq_p_s8 (p0, __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsdavaxq_p_s16 (p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsdavaxq_p_s32 (p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vmlsdavaq(p0,p1,p2) ({  __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmlsdavaq_s8(p0, __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsdavaq_s16(p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsdavaq_s32(p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vmlsdavaxq(p0,p1,p2) ({ __typeof(p2) __p2 = (p2); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmlsdavaxq_s8(p0, __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsdavaxq_s16(p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsdavaxq_s32(p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vmlsdavq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmlsdavq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsdavq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsdavq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmlsdavxq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmlsdavxq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsdavxq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsdavxq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmlsdavaq_p(p0,p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmlsdavaq_p_s8(p0, __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsdavaq_p_s16(p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsdavaq_p_s32(p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vmladavaxq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavaxq_p_s8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavaxq_p_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_int32x4_t]: __arm_vmladavaxq_p_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3));})
- 
- #define __arm_vmullbq_poly_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_poly_m_p8 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_poly_m_p16 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3));})
- 
  #define __arm_vldrbq_gather_offset(p0,p1) ({ __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \
    int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t]: __arm_vldrbq_gather_offset_s8(__ARM_mve_coerce_s8_ptr(p0, int8_t *), __ARM_mve_coerce(__p1, uint8x16_t)), \
--- 9310,9315 ----
*************** extern void *__ARM_undef;
*** 41454,41915 ****
    int (*)[__ARM_mve_type_uint16x8_t]: __arm_vshlcq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1, p2, p3), \
    int (*)[__ARM_mve_type_uint32x4_t]: __arm_vshlcq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1, p2, p3));})
  
- #define __arm_vabavq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabavq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabavq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabavq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabavq_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabavq_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabavq_u32 (__p0, __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t)));})
- 
- #define __arm_vabavq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vabavq_p_s8(__p0, __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vabavq_p_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vabavq_p_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vabavq_p_u8(__p0, __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vabavq_p_u16(__p0, __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vabavq_p_u32(__p0, __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vaddlvaq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vaddlvaq_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vaddlvaq_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vaddlvaq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vaddlvaq_p_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vaddlvaq_p_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vaddlvq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vaddlvq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vaddlvq_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));})
- 
- #define __arm_vaddlvq_p(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vaddlvq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vaddlvq_p_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vaddvaq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vaddvaq_s8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vaddvaq_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vaddvaq_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vaddvaq_u8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vaddvaq_u16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vaddvaq_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vaddvaq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vaddvaq_p_s8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vaddvaq_p_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vaddvaq_p_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vaddvaq_p_u8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vaddvaq_p_u16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vaddvaq_p_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vaddvq(p0) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vaddvq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vaddvq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vaddvq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vaddvq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vaddvq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vaddvq_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));})
- 
- #define __arm_vaddvq_p(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vaddvq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vaddvq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \
-   int (*)[__ARM_mve_type_int32x4_t]: __arm_vaddvq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vaddvq_p_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vaddvq_p_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \
-   int (*)[__ARM_mve_type_uint32x4_t]: __arm_vaddvq_p_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));})
- 
- #define __arm_vcmpcsq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpcsq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpcsq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpcsq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpcsq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpcsq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpcsq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vcmpcsq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmpcsq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmpcsq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmpcsq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmpcsq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmpcsq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmpcsq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2));})
- 
- #define __arm_vcmphiq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmphiq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmphiq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmphiq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmphiq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmphiq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmphiq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int)));})
- 
- #define __arm_vcmphiq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: __arm_vcmphiq_m_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: __arm_vcmphiq_m_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: __arm_vcmphiq_m_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce_i_scalar(__p1, int), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vcmphiq_m_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmphiq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmphiq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmaxavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vmaxavq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vmaxavq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vmaxavq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vmaxavq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vmaxavq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vmaxavq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vmaxavq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmaxvq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vmaxvq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vmaxvq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vmaxvq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vmaxvq_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vmaxvq_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vmaxvq_u32 (__p0,__ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmaxvq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vmaxvq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vmaxvq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vmaxvq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vmaxvq_p_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vmaxvq_p_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vmaxvq_p_u32 (__p0, __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vminavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vminavq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vminavq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vminavq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vminavq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vminavq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vminavq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vminavq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmaxq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmaxq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmaxq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmaxq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmaxq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmaxq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmaxq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vminq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vminq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vminq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vminq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vminq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vminq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vminq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vminvq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vminvq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vminvq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vminvq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vminvq_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vminvq_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vminvq_u32 (__p0, __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vminvq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vminvq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vminvq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vminvq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vminvq_p_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vminvq_p_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vminvq_p_u32 (__p0, __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmladavaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavaq_s8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavaq_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmladavaq_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmladavaq_u8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmladavaq_u16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmladavaq_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t)));})
- 
- #define __arm_vmladavaq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavaq_p_s8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavaq_p_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_int32x4_t]: __arm_vmladavaq_p_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmladavaq_p_u8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmladavaq_p_u16 (__ARM_mve_coerce_i_scalar(__p0, int), __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_type_uint32x4_t]: __arm_vmladavaq_p_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmladavaxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavaxq_s8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavaxq_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmladavaxq_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmladavaxq_u8 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmladavaxq_u16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmladavaxq_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t)));})
- 
- #define __arm_vmladavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmladavq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmladavq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmladavq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmladavq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmladavq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmladavq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmladavq_p_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmladavq_p_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmladavq_p_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmladavxq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmladavxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmladavxq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmladavxq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmladavxq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmladavxq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmladavxq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmladavxq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmladavxq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmlaldavaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavaq_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlaldavaq_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmlaldavaq_u16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmlaldavaq_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t)));})
- 
- #define __arm_vmlaldavaxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavaxq_s16 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlaldavaxq_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vmlaldavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlaldavq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmlaldavq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmlaldavq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vmlaldavq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlaldavq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmlaldavq_p_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmlaldavq_p_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vmlaldavxq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlaldavxq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlaldavxq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmlsdavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmlsdavq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsdavq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsdavq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vmlsdavxq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmlsdavxq_s8 (__ARM_mve_coerce(__p0, int8x16_t), __ARM_mve_coerce(__p1, int8x16_t)), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsdavxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsdavxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vmlsldavaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsldavaq_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsldavaq_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vmlsldavaxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsldavaxq_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsldavaxq_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)));})
- 
- #define __arm_vmlsldavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsldavq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsldavq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vmlsldavq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsldavq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsldavq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmlsldavxq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsldavxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t)), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsldavxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)));})
- 
- #define __arm_vmlsldavxq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmlsldavxq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmlsldavxq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2));})
- 
- #define __arm_vmovlbq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovlbq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmovlbq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmovlbq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmovlbq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vmovltq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovltq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), p2), \
-   int (*)[__ARM_mve_type_int16x8_t]: __arm_vmovltq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \
-   int (*)[__ARM_mve_type_uint8x16_t]: __arm_vmovltq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), p2), \
-   int (*)[__ARM_mve_type_uint16x8_t]: __arm_vmovltq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2));})
- 
- #define __arm_vmulhq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulhq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulhq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulhq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulhq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulhq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulhq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmullbq_int_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmullbq_int_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmullbq_int_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmullbq_int_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_int_x_u8( __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_int_x_u16( __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmullbq_int_x_u32( __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmullbq_poly_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmullbq_poly_x_p8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmullbq_poly_x_p16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3));})
- 
- #define __arm_vmulltq_int_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: __arm_vmulltq_int_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), __ARM_mve_coerce(__p2, int8x16_t), p3), \
-   int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: __arm_vmulltq_int_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, int16x8_t), p3), \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vmulltq_int_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_int_x_u8( __ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_int_x_u16( __ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vmulltq_int_x_u32( __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
- #define __arm_vmulltq_poly_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: __arm_vmulltq_poly_x_p8 (__ARM_mve_coerce(__p1, uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \
-   int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vmulltq_poly_x_p16 (__ARM_mve_coerce(__p1, uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3));})
- 
- #define __arm_vrmlaldavhaxq(p0,p1,p2) __arm_vrmlaldavhaxq_s32(p0,p1,p2)
- 
- #define __arm_vrmlaldavhq(p0,p1) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrmlaldavhq_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t)), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrmlaldavhq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t)));})
- 
- #define __arm_vrmlaldavhq_p(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \
-   int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrmlaldavhq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \
-   int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrmlaldavhq_p_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));})
- 
- #define __arm_vrmlaldavhxq(p0,p1) __arm_vrmlaldavhxq_s32(p0,p1)
- 
- #define __arm_vrmlaldavhxq_p(p0,p1,p2) __arm_vrmlaldavhxq_p_s32(p0,p1,p2)
- 
- #define __arm_vrmlsldavhaq(p0,p1,p2) __arm_vrmlsldavhaq_s32(p0,p1,p2)
- 
- #define __arm_vrmlsldavhaxq(p0,p1,p2) __arm_vrmlsldavhaxq_s32(p0,p1,p2)
- 
- #define __arm_vrmlsldavhq(p0,p1) __arm_vrmlsldavhq_s32(p0,p1)
- 
- #define __arm_vrmlsldavhq_p(p0,p1,p2) __arm_vrmlsldavhq_p_s32(p0,p1,p2)
- 
- #define __arm_vrmlsldavhxq(p0,p1) __arm_vrmlsldavhxq_s32(p0,p1)
- 
- #define __arm_vrmlsldavhxq_p(p0,p1,p2) __arm_vrmlsldavhxq_p_s32(p0,p1,p2)
- 
  #define __arm_vstrbq(p0,p1) ({ __typeof(p1) __p1 = (p1); \
    _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \
    int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int8x16_t]: __arm_vstrbq_s8 (__ARM_mve_coerce_s8_ptr(p0, int8_t *), __ARM_mve_coerce(__p1, int8x16_t)), \
--- 9428,9433 ----
*************** extern void *__ARM_undef;
*** 41939,41958 ****
    int (*)[__ARM_mve_type_int64x2_t]: __arm_vstrdq_scatter_base_p_s64 (p0, p1, __ARM_mve_coerce(__p2, int64x2_t), p3), \
    int (*)[__ARM_mve_type_uint64x2_t]: __arm_vstrdq_scatter_base_p_u64 (p0, p1, __ARM_mve_coerce(__p2, uint64x2_t), p3));})
  
- #define __arm_vrmlaldavhaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrmlaldavhaq_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrmlaldavhaq_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t)));})
- 
- #define __arm_vrmlaldavhaq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \
-   __typeof(p1) __p1 = (p1); \
-   __typeof(p2) __p2 = (p2); \
-   _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: __arm_vrmlaldavhaq_p_s32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t), p3), \
-   int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vrmlaldavhaq_p_u32 (__ARM_mve_coerce_i_scalar(__p0, int), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));})
- 
  #define __arm_vstrbq_scatter_offset(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \
    __typeof(p1) __p1 = (p1); \
    __typeof(p2) __p2 = (p2); \
--- 9457,9462 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_mve_builtins.def gcc-14.1.0/gcc/config/arm/arm_mve_builtins.def
*** gcc-13.2.0/gcc/config/arm/arm_mve_builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_mve_builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /*  MVE builtin definitions for Arm.
!     Copyright  (C) 2019-2023 Free Software Foundation, Inc.
      Contributed by Arm.
  
      This file is part of GCC.
--- 1,5 ----
  /*  MVE builtin definitions for Arm.
!     Copyright  (C) 2019-2024 Free Software Foundation, Inc.
      Contributed by Arm.
  
      This file is part of GCC.
*************** VAR1 (BINOP_UNONE_UNONE_PRED, vaddlvq_p_
*** 92,98 ****
  VAR3 (BINOP_PRED_NONE_NONE, vcmpneq_, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vshlq_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_NONE, vshlq_u, v16qi, v8hi, v4si)
- VAR3 (BINOP_UNONE_UNONE_UNONE, vsubq_u, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_UNONE, vsubq_n_u, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_UNONE, vrmulhq_u, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_UNONE, vrhaddq_u, v16qi, v8hi, v4si)
--- 92,97 ----
*************** VAR3 (BINOP_UNONE_UNONE_UNONE, vqaddq_u,
*** 102,108 ****
  VAR3 (BINOP_UNONE_UNONE_UNONE, vqaddq_n_u, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_UNONE, vorrq_u, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_UNONE, vornq_u, v16qi, v8hi, v4si)
- VAR3 (BINOP_UNONE_UNONE_UNONE, vmulq_u, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_UNONE, vmulq_n_u, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_UNONE, vmulltq_int_u, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_UNONE_UNONE, vmullbq_int_u, v16qi, v8hi, v4si)
--- 101,106 ----
*************** VAR3 (BINOP_PRED_NONE_NONE, vcmpeqq_, v1
*** 155,161 ****
  VAR3 (BINOP_PRED_NONE_NONE, vcmpeqq_n_, v16qi, v8hi, v4si)
  VAR3 (BINOP_UNONE_NONE_IMM, vqshluq_n_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_PRED, vaddvq_p_s, v16qi, v8hi, v4si)
- VAR3 (BINOP_NONE_NONE_NONE, vsubq_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vsubq_n_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vshlq_r_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vrshlq_s, v16qi, v8hi, v4si)
--- 153,158 ----
*************** VAR3 (BINOP_NONE_NONE_NONE, vqaddq_s, v1
*** 176,182 ****
  VAR3 (BINOP_NONE_NONE_NONE, vqaddq_n_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vorrq_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vornq_s, v16qi, v8hi, v4si)
- VAR3 (BINOP_NONE_NONE_NONE, vmulq_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vmulq_n_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vmulltq_int_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vmullbq_int_s, v16qi, v8hi, v4si)
--- 173,178 ----
*************** VAR3 (BINOP_NONE_NONE_NONE, vmaxvq_s, v1
*** 191,196 ****
--- 187,200 ----
  VAR3 (BINOP_NONE_NONE_NONE, vmaxq_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vhsubq_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vhsubq_n_s, v16qi, v8hi, v4si)
+ VAR3 (BINOP_NONE_NONE_NONE, vcaddq_rot90_, v16qi, v8hi, v4si)
+ VAR3 (BINOP_NONE_NONE_NONE, vcaddq_rot270_, v16qi, v8hi, v4si)
+ VAR2 (BINOP_NONE_NONE_NONE, vcaddq_rot90_f, v8hf, v4sf)
+ VAR2 (BINOP_NONE_NONE_NONE, vcaddq_rot270_f, v8hf, v4sf)
+ VAR2 (BINOP_NONE_NONE_NONE, vcmulq_rot90_f, v8hf, v4sf)
+ VAR2 (BINOP_NONE_NONE_NONE, vcmulq_rot270_f, v8hf, v4sf)
+ VAR2 (BINOP_NONE_NONE_NONE, vcmulq_rot180_f, v8hf, v4sf)
+ VAR2 (BINOP_NONE_NONE_NONE, vcmulq_f, v8hf, v4sf)
  VAR3 (BINOP_NONE_NONE_NONE, vhcaddq_rot90_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vhcaddq_rot270_s, v16qi, v8hi, v4si)
  VAR3 (BINOP_NONE_NONE_NONE, vhaddq_s, v16qi, v8hi, v4si)
*************** VAR2 (BINOP_PRED_NONE_NONE, vcmpgeq_n_f,
*** 230,236 ****
  VAR2 (BINOP_PRED_NONE_NONE, vcmpgeq_f, v8hf, v4sf)
  VAR2 (BINOP_PRED_NONE_NONE, vcmpeqq_n_f, v8hf, v4sf)
  VAR2 (BINOP_PRED_NONE_NONE, vcmpeqq_f, v8hf, v4sf)
- VAR2 (BINOP_NONE_NONE_NONE, vsubq_f, v8hf, v4sf)
  VAR2 (BINOP_NONE_NONE_NONE, vqmovntq_s, v8hi, v4si)
  VAR2 (BINOP_NONE_NONE_NONE, vqmovnbq_s, v8hi, v4si)
  VAR2 (BINOP_NONE_NONE_NONE, vqdmulltq_s, v8hi, v4si)
--- 234,239 ----
*************** VAR2 (BINOP_NONE_NONE_NONE, vqdmullbq_n_
*** 240,246 ****
  VAR2 (BINOP_NONE_NONE_NONE, vorrq_f, v8hf, v4sf)
  VAR2 (BINOP_NONE_NONE_NONE, vornq_f, v8hf, v4sf)
  VAR2 (BINOP_NONE_NONE_NONE, vmulq_n_f, v8hf, v4sf)
- VAR2 (BINOP_NONE_NONE_NONE, vmulq_f, v8hf, v4sf)
  VAR2 (BINOP_NONE_NONE_NONE, vmovntq_s, v8hi, v4si)
  VAR2 (BINOP_NONE_NONE_NONE, vmovnbq_s, v8hi, v4si)
  VAR2 (BINOP_NONE_NONE_NONE, vmlsldavxq_s, v8hi, v4si)
--- 243,248 ----
*************** VAR3 (TERNOP_NONE_NONE_NONE_NONE, vmlasq
*** 376,381 ****
--- 378,387 ----
  VAR3 (TERNOP_NONE_NONE_NONE_NONE, vmlaq_n_s, v16qi, v8hi, v4si)
  VAR3 (TERNOP_NONE_NONE_NONE_NONE, vmladavaxq_s, v16qi, v8hi, v4si)
  VAR3 (TERNOP_NONE_NONE_NONE_NONE, vmladavaq_s, v16qi, v8hi, v4si)
+ VAR2 (TERNOP_NONE_NONE_NONE_NONE, vcmlaq_rot90_f, v8hf, v4sf)
+ VAR2 (TERNOP_NONE_NONE_NONE_NONE, vcmlaq_rot270_f, v8hf, v4sf)
+ VAR2 (TERNOP_NONE_NONE_NONE_NONE, vcmlaq_rot180_f, v8hf, v4sf)
+ VAR2 (TERNOP_NONE_NONE_NONE_NONE, vcmlaq_f, v8hf, v4sf)
  VAR3 (TERNOP_NONE_NONE_NONE_IMM, vsriq_n_s, v16qi, v8hi, v4si)
  VAR3 (TERNOP_NONE_NONE_NONE_IMM, vsliq_n_s, v16qi, v8hi, v4si)
  VAR2 (TERNOP_UNONE_UNONE_UNONE_PRED, vrev32q_m_u, v16qi, v8hi)
*************** VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRE
*** 517,524 ****
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vhaddq_m_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vhaddq_m_n_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, veorq_m_u, v16qi, v8hi, v4si)
! VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vcaddq_rot90_m_u, v16qi, v8hi, v4si)
! VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vcaddq_rot270_m_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vbicq_m_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vandq_m_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vaddq_m_u, v16qi, v8hi, v4si)
--- 523,530 ----
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vhaddq_m_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vhaddq_m_n_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, veorq_m_u, v16qi, v8hi, v4si)
! VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vcaddq_rot90_m_, v16qi, v8hi, v4si)
! VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vcaddq_rot270_m_, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vbicq_m_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vandq_m_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED, vaddq_m_u, v16qi, v8hi, v4si)
*************** VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, v
*** 581,588 ****
  VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, vhaddq_m_s, v16qi, v8hi, v4si)
  VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, vhaddq_m_n_s, v16qi, v8hi, v4si)
  VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, veorq_m_s, v16qi, v8hi, v4si)
- VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, vcaddq_rot90_m_s, v16qi, v8hi, v4si)
- VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, vcaddq_rot270_m_s, v16qi, v8hi, v4si)
  VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, vbrsrq_m_n_s, v16qi, v8hi, v4si)
  VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, vbicq_m_s, v16qi, v8hi, v4si)
  VAR3 (QUADOP_NONE_NONE_NONE_NONE_PRED, vandq_m_s, v16qi, v8hi, v4si)
--- 587,592 ----
*************** VAR3 (QUADOP_NONE_NONE_UNONE_IMM_PRED, v
*** 874,888 ****
  VAR3 (QUADOP_NONE_NONE_UNONE_IMM_PRED, vshlcq_m_carry_s, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED, vshlcq_m_vec_u, v16qi, v8hi, v4si)
  VAR3 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED, vshlcq_m_carry_u, v16qi, v8hi, v4si)
- 
- /* optabs without any suffixes.  */
- VAR5 (BINOP_NONE_NONE_NONE, vcaddq_rot90, v16qi, v8hi, v4si, v8hf, v4sf)
- VAR5 (BINOP_NONE_NONE_NONE, vcaddq_rot270, v16qi, v8hi, v4si, v8hf, v4sf)
- VAR2 (BINOP_NONE_NONE_NONE, vcmulq_rot90, v8hf, v4sf)
- VAR2 (BINOP_NONE_NONE_NONE, vcmulq_rot270, v8hf, v4sf)
- VAR2 (BINOP_NONE_NONE_NONE, vcmulq_rot180, v8hf, v4sf)
- VAR2 (BINOP_NONE_NONE_NONE, vcmulq, v8hf, v4sf)
- VAR2 (TERNOP_NONE_NONE_NONE_NONE, vcmlaq_rot90, v8hf, v4sf)
- VAR2 (TERNOP_NONE_NONE_NONE_NONE, vcmlaq_rot270, v8hf, v4sf)
- VAR2 (TERNOP_NONE_NONE_NONE_NONE, vcmlaq_rot180, v8hf, v4sf)
- VAR2 (TERNOP_NONE_NONE_NONE_NONE, vcmlaq, v8hf, v4sf)
--- 878,880 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_mve_types.h gcc-14.1.0/gcc/config/arm/arm_mve_types.h
*** gcc-13.2.0/gcc/config/arm/arm_mve_types.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_mve_types.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Arm MVE intrinsics include file.
  
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
     Contributed by Arm.
  
     This file is part of GCC.
--- 1,6 ----
  /* Arm MVE intrinsics include file.
  
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
     Contributed by Arm.
  
     This file is part of GCC.
*************** typedef float float32_t;
*** 29,1462 ****
  
  #pragma GCC arm "arm_mve_types.h"
  
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_s32 (int32x4_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_s64 (int64x2_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_s8 (int8x16_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_u16 (uint16x8_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_u32 (uint32x4_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_u64 (uint64x2_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_u8 (uint8x16_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_s16 (int16x8_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_s64 (int64x2_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_s8 (int8x16_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_u16 (uint16x8_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_u32 (uint32x4_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_u64 (uint64x2_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_u8 (uint8x16_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_s16 (int16x8_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_s32 (int32x4_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_s8 (int8x16_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_u16 (uint16x8_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_u32 (uint32x4_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_u64 (uint64x2_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_u8 (uint8x16_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_s16 (int16x8_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_s32 (int32x4_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_s64 (int64x2_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_u16 (uint16x8_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_u32 (uint32x4_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_u64 (uint64x2_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_u8 (uint8x16_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_s16 (int16x8_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_s32 (int32x4_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_s64 (int64x2_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_s8 (int8x16_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_u32 (uint32x4_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_u64 (uint64x2_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_u8 (uint8x16_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_s16 (int16x8_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_s32 (int32x4_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_s64 (int64x2_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_s8 (int8x16_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_u16 (uint16x8_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_u64 (uint64x2_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_u8 (uint8x16_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_s16 (int16x8_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_s32 (int32x4_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_s64 (int64x2_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_s8 (int8x16_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_u16 (uint16x8_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_u32 (uint32x4_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_u8 (uint8x16_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_s16 (int16x8_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_s32 (int32x4_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_s64 (int64x2_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_s8 (int8x16_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_u16 (uint16x8_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_u32 (uint32x4_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_u64 (uint64x2_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_u8 (void)
- {
-   uint8x16_t __uninit;
-   __asm__ ("": "=w"(__uninit));
-   return __uninit;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_u16 (void)
- {
-   uint16x8_t __uninit;
-   __asm__ ("": "=w"(__uninit));
-   return __uninit;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_u32 (void)
- {
-   uint32x4_t __uninit;
-   __asm__ ("": "=w"(__uninit));
-   return __uninit;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_u64 (void)
- {
-   uint64x2_t __uninit;
-   __asm__ ("": "=w"(__uninit));
-   return __uninit;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_s8 (void)
- {
-   int8x16_t __uninit;
-   __asm__ ("": "=w"(__uninit));
-   return __uninit;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_s16 (void)
- {
-   int16x8_t __uninit;
-   __asm__ ("": "=w"(__uninit));
-   return __uninit;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_s32 (void)
- {
-   int32x4_t __uninit;
-   __asm__ ("": "=w"(__uninit));
-   return __uninit;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_s64 (void)
- {
-   int64x2_t __uninit;
-   __asm__ ("": "=w"(__uninit));
-   return __uninit;
- }
- 
- #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point.  */
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_f16 (float16x8_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32_f32 (float32x4_t __a)
- {
-   return (int32x4_t)  __a;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_f16 (float16x8_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16_f32 (float32x4_t __a)
- {
-   return (int16x8_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_f16 (float16x8_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64_f32 (float32x4_t __a)
- {
-   return (int64x2_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_f16 (float16x8_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8_f32 (float32x4_t __a)
- {
-   return (int8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_f16 (float16x8_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16_f32 (float32x4_t __a)
- {
-   return (uint16x8_t)  __a;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_f16 (float16x8_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32_f32 (float32x4_t __a)
- {
-   return (uint32x4_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_f16 (float16x8_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64_f32 (float32x4_t __a)
- {
-   return (uint64x2_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_f16 (float16x8_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8_f32 (float32x4_t __a)
- {
-   return (uint8x16_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_f32 (float32x4_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_s16 (int16x8_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_s32 (int32x4_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_s64 (int64x2_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_s8 (int8x16_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_u16 (uint16x8_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_u32 (uint32x4_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_u64 (uint64x2_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16_u8 (uint8x16_t __a)
- {
-   return (float16x8_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_f16 (float16x8_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_s16 (int16x8_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_s32 (int32x4_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_s64 (int64x2_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_s8 (int8x16_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_u16 (uint16x8_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_u32 (uint32x4_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_u64 (uint64x2_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32_u8 (uint8x16_t __a)
- {
-   return (float32x4_t)  __a;
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_f16 (void)
- {
-   float16x8_t __uninit;
-   __asm__ ("": "=w" (__uninit));
-   return __uninit;
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq_f32 (void)
- {
-   float32x4_t __uninit;
-   __asm__ ("": "=w" (__uninit));
-   return __uninit;
- }
- 
- #endif
- 
- #ifdef __cplusplus
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_s16_s32 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_s16_s64 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_s16_s8 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_s16_u16 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_s16_u32 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_s16_u64 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_s16_u8 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_s32_s16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_s32_s64 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_s32_s8 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_s32_u16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_s32_u32 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_s32_u64 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_s32_u8 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_s64_s16 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_s64_s32 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_s64_s8 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_s64_u16 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_s64_u32 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_s64_u64 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_s64_u8 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_s8_s16 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_s8_s32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_s8_s64 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_s8_u16 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_s8_u32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_s8_u64 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_s8_u8 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_u16_s16 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_u16_s32 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_u16_s64 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_u16_s8 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_u16_u32 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_u16_u64 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_u16_u8 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_u32_s16 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_u32_s32 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_u32_s64 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_u32_s8 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_u32_u16 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_u32_u64 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_u32_u8 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_u64_s16 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_u64_s32 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_u64_s64 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_u64_s8 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_u64_u16 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_u64_u32 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_u64_u8 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_u8_s16 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_u8_s32 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_u8_s64 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_u8_s8 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_u8_u16 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_u8_u32 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_u8_u64 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (uint8x16_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_u8 ();
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (uint16x8_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_u16 ();
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (uint32x4_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_u32 ();
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (uint64x2_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_u64 ();
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (int8x16_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_s8 ();
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (int16x8_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_s16 ();
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (int32x4_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_s32 ();
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (int64x2_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_s64 ();
- }
- 
- #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point.  */
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_s32_f16 (__a);
- }
- 
- __extension__ extern __inline int32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s32 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_s32_f32 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_s16_f16 (__a);
- }
- 
- __extension__ extern __inline int16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s16 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_s16_f32 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_s64_f16 (__a);
- }
- 
- __extension__ extern __inline int64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s64 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_s64_f32 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_s8_f16 (__a);
- }
- 
- __extension__ extern __inline int8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_s8 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_s8_f32 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_u16_f16 (__a);
- }
- 
- __extension__ extern __inline uint16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u16 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_u16_f32 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_u32_f16 (__a);
- }
- 
- __extension__ extern __inline uint32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u32 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_u32_f32 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_u64_f16 (__a);
- }
- 
- __extension__ extern __inline uint64x2_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u64 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_u64_f32 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_u8_f16 (__a);
- }
- 
- __extension__ extern __inline uint8x16_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_u8 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_u8_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (float32x4_t __a)
- {
-  return __arm_vreinterpretq_f16_f32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_f16_s16 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_f16_s32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_f16_s64 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_f16_s8 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_f16_u16 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_f16_u32 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_f16_u64 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f16 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_f16_u8 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (float16x8_t __a)
- {
-  return __arm_vreinterpretq_f32_f16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (int16x8_t __a)
- {
-  return __arm_vreinterpretq_f32_s16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (int32x4_t __a)
- {
-  return __arm_vreinterpretq_f32_s32 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (int64x2_t __a)
- {
-  return __arm_vreinterpretq_f32_s64 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (int8x16_t __a)
- {
-  return __arm_vreinterpretq_f32_s8 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (uint16x8_t __a)
- {
-  return __arm_vreinterpretq_f32_u16 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (uint32x4_t __a)
- {
-  return __arm_vreinterpretq_f32_u32 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (uint64x2_t __a)
- {
-  return __arm_vreinterpretq_f32_u64 (__a);
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vreinterpretq_f32 (uint8x16_t __a)
- {
-  return __arm_vreinterpretq_f32_u8 (__a);
- }
- 
- __extension__ extern __inline float16x8_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (float16x8_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_f16 ();
- }
- 
- __extension__ extern __inline float32x4_t
- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
- __arm_vuninitializedq (float32x4_t /* __v ATTRIBUTE UNUSED */)
- {
-  return __arm_vuninitializedq_f32 ();
- }
- #endif /* __ARM_FEATURE_MVE & 2 (MVE floating point)  */
- #endif /* __cplusplus */
- 
  #endif /* _GCC_ARM_MVE_H.  */
--- 29,32 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_neon.h gcc-14.1.0/gcc/config/arm/arm_neon.h
*** gcc-13.2.0/gcc/config/arm/arm_neon.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_neon.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* ARM NEON intrinsics include file.
  
!    Copyright (C) 2006-2023 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
--- 1,6 ----
  /* ARM NEON intrinsics include file.
  
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
*************** vld1_p64 (const poly64_t * __a)
*** 10307,10312 ****
--- 10307,10339 ----
    return (poly64x1_t) { *__a };
  }
  
+ __extension__ extern __inline poly64x1x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p64_x2 (const poly64_t * __a)
+ {
+   union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly64x1x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p64_x3 (const poly64_t * __a)
+ {
+   union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly64x1x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p64_x4 (const poly64_t * __a)
+ {
+   union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
  #pragma GCC pop_options
  __extension__ extern __inline int8x8_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
*************** vld1_s64 (const int64_t * __a)
*** 10336,10341 ****
--- 10363,10476 ----
    return (int64x1_t) { *__a };
  }
  
+ __extension__ extern __inline int8x8x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s8_x2 (const int8_t * __a)
+ {
+   union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int16x4x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s16_x2 (const int16_t * __a)
+ {
+   union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int32x2x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s32_x2 (const int32_t * __a)
+ {
+   union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v2si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int64x1x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s64_x2 (const int64_t * __a)
+ {
+   union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int8x8x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s8_x3 (const int8_t * __a)
+ {
+   union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int16x4x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s16_x3 (const int16_t * __a)
+ {
+   union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int32x2x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s32_x3 (const int32_t * __a)
+ {
+   union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v2si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int64x1x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s64_x3 (const int64_t * __a)
+ {
+   union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int8x8x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s8_x4 (const int8_t * __a)
+ {
+   union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int16x4x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s16_x4 (const int16_t * __a)
+ {
+   union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int32x2x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s32_x4 (const int32_t * __a)
+ {
+   union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v2si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int64x1x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_s64_x4 (const int64_t * __a)
+ {
+   union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
  #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
  __extension__ extern __inline float16x4_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
*************** vld1_f32 (const float32_t * __a)
*** 10352,10357 ****
--- 10487,10552 ----
    return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
  }
  
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline float16x4x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_f16_x2 (const float16_t * __a)
+ {
+   union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v4hf (__a);
+   return __rv.__i;
+ }
+ #endif
+ 
+ __extension__ extern __inline float32x2x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_f32_x2 (const float32_t * __a)
+ {
+   union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v2sf ((const __builtin_neon_sf *) __a);
+   return __rv.__i;
+ }
+ 
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline float16x4x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_f16_x3 (const float16_t * __a)
+ {
+   union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v4hf (__a);
+   return __rv.__i;
+ }
+ #endif
+ 
+ __extension__ extern __inline float32x2x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_f32_x3 (const float32_t * __a)
+ {
+   union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v2sf ((const __builtin_neon_sf *) __a);
+   return __rv.__i;
+ }
+ 
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline float16x4x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_f16_x4 (const float16_t * __a)
+ {
+   union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v4hf (__a);
+   return __rv.__i;
+ }
+ #endif
+ 
+ __extension__ extern __inline float32x2x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_f32_x4 (const float32_t * __a)
+ {
+   union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v2sf ((const __builtin_neon_sf *) __a);
+   return __rv.__i;
+ }
+ 
  __extension__ extern __inline uint8x8_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vld1_u8 (const uint8_t * __a)
*************** vld1_u64 (const uint64_t * __a)
*** 10380,10385 ****
--- 10575,10688 ----
    return (uint64x1_t) { *__a };
  }
  
+ __extension__ extern __inline uint8x8x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u8_x2 (const uint8_t * __a)
+ {
+   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint16x4x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u16_x2 (const uint16_t * __a)
+ {
+   union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint32x2x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u32_x2 (const uint32_t * __a)
+ {
+   union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v2si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint64x1x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u64_x2 (const uint64_t * __a)
+ {
+   union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint8x8x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u8_x3 (const uint8_t * __a)
+ {
+   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint16x4x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u16_x3 (const uint16_t * __a)
+ {
+   union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint32x2x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u32_x3 (const uint32_t * __a)
+ {
+   union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v2si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint64x1x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u64_x3 (const uint64_t * __a)
+ {
+   union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint8x8x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u8_x4 (const uint8_t * __a)
+ {
+   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint16x4x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u16_x4 (const uint16_t * __a)
+ {
+   union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint32x2x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u32_x4 (const uint32_t * __a)
+ {
+   union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v2si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint64x1x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_u64_x4 (const uint64_t * __a)
+ {
+   union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
  __extension__ extern __inline poly8x8_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vld1_p8 (const poly8_t * __a)
*************** vld1_p16 (const poly16_t * __a)
*** 10394,10399 ****
--- 10697,10756 ----
    return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
  }
  
+ __extension__ extern __inline poly8x8x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p8_x2 (const poly8_t * __a)
+ {
+   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly16x4x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p16_x2 (const poly16_t * __a)
+ {
+   union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly8x8x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p8_x3 (const poly8_t * __a)
+ {
+   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly16x4x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p16_x3 (const poly16_t * __a)
+ {
+   union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly8x8x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p8_x4 (const poly8_t * __a)
+ {
+   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v8qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly16x4x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_p16_x4 (const poly16_t * __a)
+ {
+   union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v4hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
  #pragma GCC push_options
  #pragma GCC target ("fpu=crypto-neon-fp-armv8")
  __extension__ extern __inline poly64x2_t
*************** vld1q_p64 (const poly64_t * __a)
*** 10403,10408 ****
--- 10760,10792 ----
    return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
  }
  
+ __extension__ extern __inline poly64x2x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p64_x2 (const poly64_t * __a)
+ {
+   union { poly64x2x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly64x2x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p64_x3 (const poly64_t * __a)
+ {
+   union { poly64x2x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly64x2x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p64_x4 (const poly64_t * __a)
+ {
+   union { poly64x2x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
  #pragma GCC pop_options
  __extension__ extern __inline int8x16_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
*************** vld1q_s64 (const int64_t * __a)
*** 10432,10437 ****
--- 10816,10929 ----
    return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
  }
  
+ __extension__ extern __inline int8x16x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s8_x2 (const int8_t * __a)
+ {
+   union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int16x8x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s16_x2 (const int16_t * __a)
+ {
+   union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int32x4x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s32_x2 (const int32_t * __a)
+ {
+   union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v4si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int64x2x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s64_x2 (const int64_t * __a)
+ {
+   union { int64x2x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int8x16x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s8_x3 (const uint8_t * __a)
+ {
+   union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int16x8x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s16_x3 (const uint16_t * __a)
+ {
+   union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int32x4x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s32_x3 (const int32_t * __a)
+ {
+   union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v4si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int64x2x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s64_x3 (const int64_t * __a)
+ {
+   union { int64x2x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int8x16x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s8_x4 (const uint8_t * __a)
+ {
+   union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int16x8x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s16_x4 (const uint16_t * __a)
+ {
+   union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int32x4x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s32_x4 (const int32_t * __a)
+ {
+   union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v4si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline int64x2x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_s64_x4 (const int64_t * __a)
+ {
+   union { int64x2x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
  #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
  __extension__ extern __inline float16x8_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
*************** vld1q_f32 (const float32_t * __a)
*** 10448,10453 ****
--- 10940,11005 ----
    return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
  }
  
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline float16x8x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_f16_x2 (const float16_t * __a)
+ {
+   union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v8hf (__a);
+   return __rv.__i;
+ }
+ #endif
+ 
+ __extension__ extern __inline float32x4x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_f32_x2 (const float32_t * __a)
+ {
+   union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v4sf ((const __builtin_neon_sf *) __a);
+   return __rv.__i;
+ }
+ 
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline float16x8x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_f16_x3 (const float16_t * __a)
+ {
+   union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v8hf (__a);
+   return __rv.__i;
+ }
+ #endif
+ 
+ __extension__ extern __inline float32x4x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_f32_x3 (const float32_t * __a)
+ {
+   union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v4sf ((const __builtin_neon_sf *) __a);
+   return __rv.__i;
+ }
+ 
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline float16x8x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_f16_x4 (const float16_t * __a)
+ {
+   union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v8hf (__a);
+   return __rv.__i;
+ }
+ #endif
+ 
+ __extension__ extern __inline float32x4x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_f32_x4 (const float32_t * __a)
+ {
+   union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v4sf ((const __builtin_neon_sf *) __a);
+   return __rv.__i;
+ }
+ 
  __extension__ extern __inline uint8x16_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vld1q_u8 (const uint8_t * __a)
*************** vld1q_u64 (const uint64_t * __a)
*** 10476,10481 ****
--- 11028,11141 ----
    return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
  }
  
+ __extension__ extern __inline uint8x16x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u8_x2 (const uint8_t * __a)
+ {
+   union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint16x8x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u16_x2 (const uint16_t * __a)
+ {
+   union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint32x4x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u32_x2 (const uint32_t * __a)
+ {
+   union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v4si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint64x2x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u64_x2 (const uint64_t * __a)
+ {
+   union { uint64x2x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint8x16x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u8_x3 (const uint8_t * __a)
+ {
+   union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint16x8x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u16_x3 (const uint16_t * __a)
+ {
+   union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint32x4x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u32_x3 (const uint32_t * __a)
+ {
+   union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v4si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint64x2x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u64_x3 (const uint64_t * __a)
+ {
+   union { uint64x2x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint8x16x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u8_x4 (const uint8_t * __a)
+ {
+   union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint16x8x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u16_x4 (const uint16_t * __a)
+ {
+   union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint32x4x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u32_x4 (const uint32_t * __a)
+ {
+   union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v4si ((const __builtin_neon_si *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline uint64x2x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_u64_x4 (const uint64_t * __a)
+ {
+   union { uint64x2x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v2di ((const __builtin_neon_di *) __a);
+   return __rv.__i;
+ }
+ 
  __extension__ extern __inline poly8x16_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vld1q_p8 (const poly8_t * __a)
*************** vld1q_p16 (const poly16_t * __a)
*** 10490,10495 ****
--- 11150,11209 ----
    return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
  }
  
+ __extension__ extern __inline poly8x16x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p8_x2 (const poly8_t * __a)
+ {
+   union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly16x8x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p16_x2 (const poly16_t * __a)
+ {
+   union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly8x16x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p8_x3 (const poly8_t * __a)
+ {
+   union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly16x8x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p16_x3 (const poly16_t * __a)
+ {
+   union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly8x16x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p8_x4 (const poly8_t * __a)
+ {
+   union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v16qi ((const __builtin_neon_qi *) __a);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline poly16x8x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_p16_x4 (const poly16_t * __a)
+ {
+   union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v8hi ((const __builtin_neon_hi *) __a);
+   return __rv.__i;
+ }
+ 
  __extension__ extern __inline int8x8_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
*************** vst1_p64 (poly64_t * __a, poly64x1_t __b
*** 10885,10890 ****
--- 11599,11628 ----
    __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
  }
  
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p64_x2 (poly64_t * __a, poly64x1x2_t __b)
+ {
+   union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p64_x3 (poly64_t * __a, poly64x1x3_t __b)
+ {
+   union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p64_x4 (poly64_t * __a, poly64x1x4_t __b)
+ {
+   union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x3di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
  #pragma GCC pop_options
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
*************** vst1_s64 (int64_t * __a, int64x1_t __b)
*** 10914,10919 ****
--- 11652,11849 ----
    __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
  }
  
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s8_x2 (int8_t * __a, int8x8x2_t __b)
+ {
+   union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s16_x2 (int16_t * __a, int16x4x2_t __b)
+ {
+   union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s32_x2 (int32_t * __a, int32x2x2_t __b)
+ {
+   union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v2si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s64_x2 (int64_t * __a, int64x1x2_t __b)
+ {
+   union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s8_x2 (int8_t * __a, int8x16x2_t __b)
+ {
+   union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s16_x2 (int16_t * __a, int16x8x2_t __b)
+ {
+   union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s32_x2 (int32_t * __a, int32x4x2_t __b)
+ {
+   union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v4si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s64_x2 (int64_t * __a, int64x2x2_t __b)
+ {
+   union { int64x2x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s8_x3 (int8_t * __a, int8x16x3_t __b)
+ {
+   union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s16_x3 (int16_t * __a, int16x8x3_t __b)
+ {
+   union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s32_x3 (int32_t * __a, int32x4x3_t __b)
+ {
+   union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v4si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s64_x3 (int64_t * __a, int64x2x3_t __b)
+ {
+   union { int64x2x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s8_x4 (int8_t * __a, int8x16x4_t __b)
+ {
+   union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s16_x4 (int16_t * __a, int16x8x4_t __b)
+ {
+   union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s32_x4 (int32_t * __a, int32x4x4_t __b)
+ {
+   union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v4si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_s64_x4 (int64_t * __a, int64x2x4_t __b)
+ {
+   union { int64x2x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s8_x3 (int8_t * __a, int8x8x3_t __b)
+ {
+   union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s16_x3 (int16_t * __a, int16x4x3_t __b)
+ {
+   union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s32_x3 (int32_t * __a, int32x2x3_t __b)
+ {
+   union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v2si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s64_x3 (int64_t * __a, int64x1x3_t __b)
+ {
+   union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s8_x4 (int8_t * __a, int8x8x4_t __b)
+ {
+   union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s16_x4 (int16_t * __a, int16x4x4_t __b)
+ {
+   union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s32_x4 (int32_t * __a, int32x2x4_t __b)
+ {
+   union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v2si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_s64_x4 (int64_t * __a, int64x1x4_t __b)
+ {
+   union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
  #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
*************** vst1_f32 (float32_t * __a, float32x2_t _
*** 10930,10935 ****
--- 11860,11919 ----
    __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
  }
  
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_f16_x2 (float16_t * __a, float16x4x2_t __b)
+ {
+   union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v4hf (__a, __bu.__o);
+ }
+ #endif
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_f32_x2 (float32_t * __a, float32x2x2_t __b)
+ {
+   union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
+ }
+ 
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_f16_x3 (float16_t * __a, float16x4x3_t __b)
+ {
+   union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v4hf (__a, __bu.__o);
+ }
+ #endif
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_f32_x3 (float32_t * __a, float32x2x3_t __b)
+ {
+   union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
+ }
+ 
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_f16_x4 (float16_t * __a, float16x4x4_t __b)
+ {
+   union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v4hf (__a, __bu.__o);
+ }
+ #endif
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_f32_x4 (float32_t * __a, float32x2x4_t __b)
+ {
+   union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
+ }
+ 
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vst1_u8 (uint8_t * __a, uint8x8_t __b)
*************** vst1_u64 (uint64_t * __a, uint64x1_t __b
*** 10960,10965 ****
--- 11944,12045 ----
  
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u8_x2 (uint8_t * __a, uint8x8x2_t __b)
+ {
+   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u16_x2 (uint16_t * __a, uint16x4x2_t __b)
+ {
+   union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u32_x2 (uint32_t * __a, uint32x2x2_t __b)
+ {
+   union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v2si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u64_x2 (uint64_t * __a, uint64x1x2_t __b)
+ {
+   union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u8_x3 (uint8_t * __a, uint8x8x3_t __b)
+ {
+   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u16_x3 (uint16_t * __a, uint16x4x3_t __b)
+ {
+   union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u32_x3 (uint32_t * __a, uint32x2x3_t __b)
+ {
+   union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v2si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u64_x3 (uint64_t * __a, uint64x1x3_t __b)
+ {
+   union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u8_x4 (uint8_t * __a, uint8x8x4_t __b)
+ {
+   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u16_x4 (uint16_t * __a, uint16x4x4_t __b)
+ {
+   union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u32_x4 (uint32_t * __a, uint32x2x4_t __b)
+ {
+   union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v2si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_u64_x4 (uint64_t * __a, uint64x1x4_t __b)
+ {
+   union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vst1_p8 (poly8_t * __a, poly8x8_t __b)
  {
    __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
*************** vst1_p16 (poly16_t * __a, poly16x4_t __b
*** 10972,10977 ****
--- 12052,12105 ----
    __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
  }
  
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p8_x2 (poly8_t * __a, poly8x8x2_t __b)
+ {
+   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p16_x2 (poly16_t * __a, poly16x4x2_t __b)
+ {
+   union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p8_x3 (poly8_t * __a, poly8x8x3_t __b)
+ {
+   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p16_x3 (poly16_t * __a, poly16x4x3_t __b)
+ {
+   union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p8_x4 (poly8_t * __a, poly8x8x4_t __b)
+ {
+   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_p16_x4 (poly16_t * __a, poly16x4x4_t __b)
+ {
+   union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
  #pragma GCC push_options
  #pragma GCC target ("fpu=crypto-neon-fp-armv8")
  __extension__ extern __inline void
*************** vst1q_p64 (poly64_t * __a, poly64x2_t __
*** 10981,10986 ****
--- 12109,12138 ----
    __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
  }
  
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p64_x2 (poly64_t * __a, poly64x2x2_t __b)
+ {
+   union { poly64x2x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p64_x3 (poly64_t * __a, poly64x2x3_t __b)
+ {
+   union { poly64x2x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p64_x4 (poly64_t * __a, poly64x2x4_t __b)
+ {
+   union { poly64x2x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
  #pragma GCC pop_options
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
*************** vst1q_f32 (float32_t * __a, float32x4_t
*** 11026,11031 ****
--- 12178,12237 ----
    __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
  }
  
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_f16_x2 (float16_t * __a, float16x8x2_t __b)
+ {
+   union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v8hf (__a, __bu.__o);
+ }
+ #endif
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_f32_x2 (float32_t * __a, float32x4x2_t __b)
+ {
+   union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v4sf (__a, __bu.__o);
+ }
+ 
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_f16_x3 (float16_t * __a, float16x8x3_t __b)
+ {
+   union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v8hf (__a, __bu.__o);
+ }
+ #endif
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_f32_x3 (float32_t * __a, float32x4x3_t __b)
+ {
+   union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v4sf (__a, __bu.__o);
+ }
+ 
+ #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_f16_x4 (float16_t * __a, float16x8x4_t __b)
+ {
+   union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v8hf (__a, __bu.__o);
+ }
+ #endif
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_f32_x4 (float32_t * __a, float32x4x4_t __b)
+ {
+   union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v4sf (__a, __bu.__o);
+ }
+ 
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vst1q_u8 (uint8_t * __a, uint8x16_t __b)
*************** vst1q_u64 (uint64_t * __a, uint64x2_t __
*** 11056,11061 ****
--- 12262,12363 ----
  
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u8_x2 (uint8_t * __a, uint8x16x2_t __b)
+ {
+   union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u16_x2 (uint16_t * __a, uint16x8x2_t __b)
+ {
+   union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u32_x2 (uint32_t * __a, uint32x4x2_t __b)
+ {
+   union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v4si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u64_x2 (uint64_t * __a, uint64x2x2_t __b)
+ {
+   union { uint64x2x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u8_x3 (uint8_t * __a, uint8x16x3_t __b)
+ {
+   union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u16_x3 (uint16_t * __a, uint16x8x3_t __b)
+ {
+   union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u32_x3 (uint32_t * __a, uint32x4x3_t __b)
+ {
+   union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v4si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u64_x3 (uint64_t * __a, uint64x2x3_t __b)
+ {
+   union { uint64x2x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u8_x4 (uint8_t * __a, uint8x16x4_t __b)
+ {
+   union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u16_x4 (uint16_t * __a, uint16x8x4_t __b)
+ {
+   union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u32_x4 (uint32_t * __a, uint32x4x4_t __b)
+ {
+   union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v4si ((__builtin_neon_si *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_u64_x4 (uint64_t * __a, uint64x2x4_t __b)
+ {
+   union { uint64x2x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v2di ((__builtin_neon_di *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vst1q_p8 (poly8_t * __a, poly8x16_t __b)
  {
    __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
*************** vst1q_p16 (poly16_t * __a, poly16x8_t __
*** 11070,11075 ****
--- 12372,12425 ----
  
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p8_x2 (poly8_t * __a, poly8x16x2_t __b)
+ {
+   union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p16_x2 (poly16_t * __a, poly16x8x2_t __b)
+ {
+   union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p8_x3 (poly8_t * __a, poly8x16x3_t __b)
+ {
+   union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p16_x3 (poly16_t * __a, poly16x8x3_t __b)
+ {
+   union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p8_x4 (poly8_t * __a, poly8x16x4_t __b)
+ {
+   union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_p16_x4 (poly16_t * __a, poly16x8x4_t __b)
+ {
+   union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
  {
    __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
*************** vst1_bf16 (bfloat16_t * __a, bfloat16x4_
*** 19715,19726 ****
--- 21065,21124 ----
  
  __extension__ extern __inline void
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_bf16_x2 (bfloat16_t * __a, bfloat16x4x2_t __b)
+ {
+   union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
+   __builtin_neon_vst1_x2v4bf ((__builtin_neon_bf *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_bf16_x3 (bfloat16_t * __a, bfloat16x4x3_t __b)
+ {
+   union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
+   __builtin_neon_vst1_x3v4bf ((__builtin_neon_bf *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1_bf16_x4 (bfloat16_t * __a, bfloat16x4x4_t __b)
+ {
+   union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1_x4v4bf ((__builtin_neon_bf *) __a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vst1q_bf16 (bfloat16_t * __a, bfloat16x8_t __b)
  {
    __builtin_neon_vst1v8bf (__a, __b);
  }
  
  __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_bf16_x2 (bfloat16_t * __a, bfloat16x8x2_t __b)
+ {
+   union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x2v8bf (__a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_bf16_x3 (bfloat16_t * __a, bfloat16x8x3_t __b)
+ {
+   union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
+   __builtin_neon_vst1q_x3v8bf (__a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vst1q_bf16_x4 (bfloat16_t * __a, bfloat16x8x4_t __b)
+ {
+   union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
+   __builtin_neon_vst1q_x4v8bf (__a, __bu.__o);
+ }
+ 
+ __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
  vst2_bf16 (bfloat16_t * __ptr, bfloat16x4x2_t __val)
  {
*************** vld1_bf16 (bfloat16_t const * __ptr)
*** 19775,19780 ****
--- 21173,21205 ----
    return __builtin_neon_vld1v4bf (__ptr);
  }
  
+ __extension__ extern __inline bfloat16x4x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_bf16_x2 (const bfloat16_t * __ptr)
+ {
+   union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x2v4bf ((const __builtin_neon_bf *) __ptr);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline bfloat16x4x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_bf16_x3 (const bfloat16_t * __ptr)
+ {
+   union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x3v4bf ((const __builtin_neon_bf *) __ptr);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline bfloat16x4x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1_bf16_x4 (const bfloat16_t * __ptr)
+ {
+   union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1_x4v4bf ((const __builtin_neon_bf *) __ptr);
+   return __rv.__i;
+ }
+ 
  __extension__ extern __inline bfloat16x8_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vld1q_bf16 (const bfloat16_t * __ptr)
*************** vld1q_bf16 (const bfloat16_t * __ptr)
*** 19782,19787 ****
--- 21207,21239 ----
    return __builtin_neon_vld1v8bf (__ptr);
  }
  
+ __extension__ extern __inline bfloat16x8x2_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_bf16_x2 (const bfloat16_t * __ptr)
+ {
+   union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x2v8bf ((const __builtin_neon_bf *) __ptr);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline bfloat16x8x3_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_bf16_x3 (const bfloat16_t * __ptr)
+ {
+   union { bfloat16x8x3_t __i; __builtin_neon_oi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x3v8bf ((const __builtin_neon_bf *) __ptr);
+   return __rv.__i;
+ }
+ 
+ __extension__ extern __inline bfloat16x8x4_t
+ __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
+ vld1q_bf16_x4 (const bfloat16_t * __ptr)
+ {
+   union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
+   __rv.__o = __builtin_neon_vld1q_x4v8bf ((const __builtin_neon_bf *) __ptr);
+   return __rv.__i;
+ }
+ 
  __extension__ extern __inline bfloat16x4x2_t
  __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
  vld2_bf16 (bfloat16_t const * __ptr)
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_neon_builtins.def gcc-14.1.0/gcc/config/arm/arm_neon_builtins.def
*** gcc-13.2.0/gcc/config/arm/arm_neon_builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_neon_builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* NEON builtin definitions for ARM.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
--- 1,5 ----
  /* NEON builtin definitions for ARM.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
  
     This file is part of GCC.
*************** VAR1 (TERNOP, vtbx4, v8qi)
*** 301,306 ****
--- 301,312 ----
  VAR13 (LOAD1, vld1,
          v8qi, v4hi, v4hf, v2si, v2sf, v16qi, v8hi, v8hf, v4si, v4sf, v2di,
          v4bf, v8bf)
+ VAR7 (LOAD1, vld1_x2, v8qi, v4hi, v2si, di, v4hf, v2sf, v4bf)
+ VAR7 (LOAD1, vld1q_x2, v16qi, v8hi, v4si, v2di, v8hf, v4sf, v8bf)
+ VAR7 (LOAD1, vld1_x3, v8qi, v4hi, v2si, di, v4hf, v2sf, v4bf)
+ VAR7 (LOAD1, vld1q_x3, v16qi, v8hi, v4si, v2di, v8hf, v4sf, v8bf)
+ VAR7 (LOAD1, vld1_x4, v8qi, v4hi, v2si, di, v4hf, v2sf, v4bf)
+ VAR7 (LOAD1, vld1q_x4, v16qi, v8hi, v4si, v2di, v8hf, v4sf, v8bf)
  VAR12 (LOAD1LANE, vld1_lane,
  	v8qi, v4hi, v2si, v2sf, di, v16qi, v8hi, v4si, v4sf, v2di, v4bf, v8bf)
  VAR10 (LOAD1, vld1_dup,
*************** VAR10 (LOAD1, vld1_dup,
*** 308,313 ****
--- 314,325 ----
  VAR14 (STORE1, vst1,
          v8qi, v4hi, v4hf, v2si, v2sf, di, v16qi, v8hi, v8hf, v4si, v4sf, v2di,
          v4bf, v8bf)
+ VAR7 (STORE1, vst1_x2, v8qi, v4hi, v2si, di, v4hf, v2sf, v4bf)
+ VAR7 (STORE1, vst1q_x2, v16qi, v8hi, v4si, v2di, v8hf, v4sf, v8bf)
+ VAR7 (STORE1, vst1_x3, v8qi, v4hi, v2si, di, v4hf, v2sf, v4bf)
+ VAR7 (STORE1, vst1q_x3, v16qi, v8hi, v4si, v2di, v8hf, v4sf, v8bf)
+ VAR7 (STORE1, vst1_x4, v8qi, v4hi, v2si, di, v4hf, v2sf, v4bf)
+ VAR7 (STORE1, vst1q_x4, v16qi, v8hi, v4si, v2di, v8hf, v4sf, v8bf)
  VAR14 (STORE1LANE, vst1_lane,
         v8qi, v4hi, v4hf, v2si, v2sf, di, v16qi, v8hi, v8hf, v4si, v4sf, v2di, v4bf, v8bf)
  VAR13 (LOAD1, vld2,
diff -Nrcpad gcc-13.2.0/gcc/config/arm/arm_vfp_builtins.def gcc-14.1.0/gcc/config/arm/arm_vfp_builtins.def
*** gcc-13.2.0/gcc/config/arm/arm_vfp_builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/arm_vfp_builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* VFP instruction builtin definitions.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
     This file is part of GCC.
  
--- 1,5 ----
  /* VFP instruction builtin definitions.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/bpabi.h gcc-14.1.0/gcc/config/arm/bpabi.h
*** gcc-13.2.0/gcc/config/arm/bpabi.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/bpabi.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Configuration file for ARM BPABI targets.
!    Copyright (C) 2004-2023 Free Software Foundation, Inc.
     Contributed by CodeSourcery, LLC   
  
     This file is part of GCC.
--- 1,5 ----
  /* Configuration file for ARM BPABI targets.
!    Copyright (C) 2004-2024 Free Software Foundation, Inc.
     Contributed by CodeSourcery, LLC   
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/common.md gcc-14.1.0/gcc/config/arm/common.md
*** gcc-13.2.0/gcc/config/arm/common.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/common.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Common predicate definitions for ARM, Thumb and AArch64
! ;; Copyright (C) 2020-2023 Free Software Foundation, Inc.
  ;; Contributed by Fujitsu Ltd.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Common predicate definitions for ARM, Thumb and AArch64
! ;; Copyright (C) 2020-2024 Free Software Foundation, Inc.
  ;; Contributed by Fujitsu Ltd.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/constraints.md gcc-14.1.0/gcc/config/arm/constraints.md
*** gcc-13.2.0/gcc/config/arm/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for ARM and Thumb
! ;; Copyright (C) 2006-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Constraint definitions for ARM and Thumb
! ;; Copyright (C) 2006-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
***************
*** 36,42 ****
  ;; in Thumb-1 state: Pa, Pb, Pc, Pd, Pe
  ;; in Thumb-2 state: Ha, Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py, Pz, Rd, Rf, Rb, Ra,
  ;;		     Rg, Ri
! ;; in all states: Pf, Pg
  
  ;; The following memory constraints have been used:
  ;; in ARM/Thumb-2 state: Uh, Ut, Uv, Uy, Un, Um, Us, Up, Uf, Ux, Ul
--- 36,42 ----
  ;; in Thumb-1 state: Pa, Pb, Pc, Pd, Pe
  ;; in Thumb-2 state: Ha, Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py, Pz, Rd, Rf, Rb, Ra,
  ;;		     Rg, Ri
! ;; in all states: Pg
  
  ;; The following memory constraints have been used:
  ;; in ARM/Thumb-2 state: Uh, Ut, Uv, Uy, Un, Um, Us, Up, Uf, Ux, Ul
***************
*** 239,251 ****
    (and (match_code "const_int")
         (match_test "TARGET_THUMB1 && ival >= 256 && ival <= 510")))
  
- (define_constraint "Pf"
-   "Memory models except relaxed, consume or release ones."
-   (and (match_code "const_int")
-        (match_test "!is_mm_relaxed (memmodel_from_int (ival))
- 		    && !is_mm_consume (memmodel_from_int (ival))
- 		    && !is_mm_release (memmodel_from_int (ival))")))
- 
  (define_constraint "Pg"
    "@internal In Thumb-2 state a constant in range 1 to 32"
    (and (match_code "const_int")
--- 239,244 ----
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a15-neon.md gcc-14.1.0/gcc/config/arm/cortex-a15-neon.md
*** gcc-13.2.0/gcc/config/arm/cortex-a15-neon.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a15-neon.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A15 NEON pipeline description
! ;; Copyright (C) 2012-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; ARM Cortex-A15 NEON pipeline description
! ;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a15.md gcc-14.1.0/gcc/config/arm/cortex-a15.md
*** gcc-13.2.0/gcc/config/arm/cortex-a15.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a15.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A15 pipeline description
! ;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;;
  ;; Written by Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
  
--- 1,5 ----
  ;; ARM Cortex-A15 pipeline description
! ;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;;
  ;; Written by Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a17-neon.md gcc-14.1.0/gcc/config/arm/cortex-a17-neon.md
*** gcc-13.2.0/gcc/config/arm/cortex-a17-neon.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a17-neon.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A17 NEON pipeline description
! ;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; ARM Cortex-A17 NEON pipeline description
! ;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a17.md gcc-14.1.0/gcc/config/arm/cortex-a17.md
*** gcc-13.2.0/gcc/config/arm/cortex-a17.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a17.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A17 pipeline description
! ;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;;
  ;; Contributed by ARM Ltd.
  ;;
--- 1,5 ----
  ;; ARM Cortex-A17 pipeline description
! ;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;;
  ;; Contributed by ARM Ltd.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a5.md gcc-14.1.0/gcc/config/arm/cortex-a5.md
*** gcc-13.2.0/gcc/config/arm/cortex-a5.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a5.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A5 pipeline description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM Cortex-A5 pipeline description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a53.md gcc-14.1.0/gcc/config/arm/cortex-a53.md
*** gcc-13.2.0/gcc/config/arm/cortex-a53.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a53.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A53 pipeline description
! ;; Copyright (C) 2013-2023 Free Software Foundation, Inc.
  ;;
  ;; Contributed by ARM Ltd.
  ;;
--- 1,5 ----
  ;; ARM Cortex-A53 pipeline description
! ;; Copyright (C) 2013-2024 Free Software Foundation, Inc.
  ;;
  ;; Contributed by ARM Ltd.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a57.md gcc-14.1.0/gcc/config/arm/cortex-a57.md
*** gcc-13.2.0/gcc/config/arm/cortex-a57.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a57.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A57 pipeline description
! ;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; ARM Cortex-A57 pipeline description
! ;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a7.md gcc-14.1.0/gcc/config/arm/cortex-a7.md
*** gcc-13.2.0/gcc/config/arm/cortex-a7.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a7.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A7 pipeline description
! ;; Copyright (C) 2012-2023 Free Software Foundation, Inc.
  ;;
  ;; Contributed by ARM Ltd.
  ;; Based on cortex-a5.md which was originally contributed by CodeSourcery.
--- 1,5 ----
  ;; ARM Cortex-A7 pipeline description
! ;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
  ;;
  ;; Contributed by ARM Ltd.
  ;; Based on cortex-a5.md which was originally contributed by CodeSourcery.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a8-neon.md gcc-14.1.0/gcc/config/arm/cortex-a8-neon.md
*** gcc-13.2.0/gcc/config/arm/cortex-a8-neon.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a8-neon.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A8 NEON scheduling description.
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM Cortex-A8 NEON scheduling description.
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a8.md gcc-14.1.0/gcc/config/arm/cortex-a8.md
*** gcc-13.2.0/gcc/config/arm/cortex-a8.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a8.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A8 scheduling description.
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM Cortex-A8 scheduling description.
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a9-neon.md gcc-14.1.0/gcc/config/arm/cortex-a9-neon.md
*** gcc-13.2.0/gcc/config/arm/cortex-a9-neon.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a9-neon.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A9 pipeline description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;;
  ;; Neon pipeline description contributed by ARM Ltd.
  ;;
--- 1,5 ----
  ;; ARM Cortex-A9 pipeline description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;;
  ;; Neon pipeline description contributed by ARM Ltd.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-a9.md gcc-14.1.0/gcc/config/arm/cortex-a9.md
*** gcc-13.2.0/gcc/config/arm/cortex-a9.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-a9.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-A9 pipeline description
! ;; Copyright (C) 2008-2023 Free Software Foundation, Inc.
  ;; Originally written by CodeSourcery for VFP.
  ;;
  ;; Rewritten by Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
--- 1,5 ----
  ;; ARM Cortex-A9 pipeline description
! ;; Copyright (C) 2008-2024 Free Software Foundation, Inc.
  ;; Originally written by CodeSourcery for VFP.
  ;;
  ;; Rewritten by Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-m4-fpu.md gcc-14.1.0/gcc/config/arm/cortex-m4-fpu.md
*** gcc-13.2.0/gcc/config/arm/cortex-m4-fpu.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-m4-fpu.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-M4 FPU pipeline description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM Cortex-M4 FPU pipeline description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-m4.md gcc-14.1.0/gcc/config/arm/cortex-m4.md
*** gcc-13.2.0/gcc/config/arm/cortex-m4.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-m4.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-M4 pipeline description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM Cortex-M4 pipeline description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-m7.md gcc-14.1.0/gcc/config/arm/cortex-m7.md
*** gcc-13.2.0/gcc/config/arm/cortex-m7.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-m7.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-M7 pipeline description
! ;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; ARM Cortex-M7 pipeline description
! ;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-r4.md gcc-14.1.0/gcc/config/arm/cortex-r4.md
*** gcc-13.2.0/gcc/config/arm/cortex-r4.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-r4.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-R4 scheduling description.
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM Cortex-R4 scheduling description.
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Contributed by CodeSourcery.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/cortex-r4f.md gcc-14.1.0/gcc/config/arm/cortex-r4f.md
*** gcc-13.2.0/gcc/config/arm/cortex-r4f.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/cortex-r4f.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Cortex-R4F VFP pipeline description
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM Cortex-R4F VFP pipeline description
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/crypto.def gcc-14.1.0/gcc/config/arm/crypto.def
*** gcc-13.2.0/gcc/config/arm/crypto.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/crypto.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Cryptographic instruction builtin definitions.
!    Copyright (C) 2013-2023 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
     This file is part of GCC.
  
--- 1,5 ----
  /* Cryptographic instruction builtin definitions.
!    Copyright (C) 2013-2024 Free Software Foundation, Inc.
     Contributed by ARM Ltd.
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/crypto.md gcc-14.1.0/gcc/config/arm/crypto.md
*** gcc-13.2.0/gcc/config/arm/crypto.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/crypto.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARMv8-A crypto patterns.
! ;; Copyright (C) 2013-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARMv8-A crypto patterns.
! ;; Copyright (C) 2013-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/driver-arm.cc gcc-14.1.0/gcc/config/arm/driver-arm.cc
*** gcc-13.2.0/gcc/config/arm/driver-arm.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/driver-arm.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines for the gcc driver.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Subroutines for the gcc driver.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/elf.h gcc-14.1.0/gcc/config/arm/elf.h
*** gcc-13.2.0/gcc/config/arm/elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/elf.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for GNU compiler.
     For ARM with ELF obj format.
!    Copyright (C) 1995-2023 Free Software Foundation, Inc.
     Contributed by Philip Blundell <philb@gnu.org> and
     Catherine Moore <clm@cygnus.com>
     
--- 1,6 ----
  /* Definitions of target machine for GNU compiler.
     For ARM with ELF obj format.
!    Copyright (C) 1995-2024 Free Software Foundation, Inc.
     Contributed by Philip Blundell <philb@gnu.org> and
     Catherine Moore <clm@cygnus.com>
     
***************
*** 91,101 ****
  /* Define this macro if jump tables (for `tablejump' insns) should be
     output in the text section, along with the assembler instructions.
     Otherwise, the readonly data section is used.  */
! /* We put ARM and Thumb-2 jump tables in the text section, because it makes
!    the code more efficient, but for Thumb-1 it's better to put them out of
!    band unless we are generating compressed tables.  */
  #define JUMP_TABLES_IN_TEXT_SECTION					\
!    ((TARGET_32BIT || (TARGET_THUMB && (optimize_size || flag_pic))) \
      && !target_pure_code)
  
  #ifndef LINK_SPEC
--- 91,111 ----
  /* Define this macro if jump tables (for `tablejump' insns) should be
     output in the text section, along with the assembler instructions.
     Otherwise, the readonly data section is used.  */
! /* The choice of placement for jump tables is nuanced.  For cores with
!    Harvard caches (pretty much all cases these days), there is a
!    benefit of maintaing a separation between I- and D-cache candidates
!    and that favors having jump tables in the RO data section.  This
!    makes the dispatch sequence slightly longer as we need to load the
!    address of the jump table first, but we often save elsewhere as the
!    content of the code section becomes better packed and we need
!    fewer long-range branch operations.  We also require the dispatch
!    table to be in the RO section when compiling for pure code.  We
!    currently place jump tables in the RO-data section for Arm or
!    whenever pure code is required; we also do it for Thumb-1 when
!    using an ADDR_VEC.  The remaining cases put the jump table in the
!    text section, but we should revisit this choice.  */
  #define JUMP_TABLES_IN_TEXT_SECTION					\
!    ((TARGET_THUMB2 || (TARGET_THUMB && (optimize_size || flag_pic))) \
      && !target_pure_code)
  
  #ifndef LINK_SPEC
diff -Nrcpad gcc-13.2.0/gcc/config/arm/exynos-m1.md gcc-14.1.0/gcc/config/arm/exynos-m1.md
*** gcc-13.2.0/gcc/config/arm/exynos-m1.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/exynos-m1.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Samsung Exynos M1 pipeline description
! ;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Samsung Exynos M1 pipeline description
! ;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/fa526.md gcc-14.1.0/gcc/config/arm/fa526.md
*** gcc-13.2.0/gcc/config/arm/fa526.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/fa526.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Faraday FA526 Pipeline Description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Faraday FA526 Pipeline Description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/fa606te.md gcc-14.1.0/gcc/config/arm/fa606te.md
*** gcc-13.2.0/gcc/config/arm/fa606te.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/fa606te.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Faraday FA606TE Pipeline Description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Written by Mingfeng Wu, based on ARM926EJ-S Pipeline Description.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Faraday FA606TE Pipeline Description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Written by Mingfeng Wu, based on ARM926EJ-S Pipeline Description.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/fa626te.md gcc-14.1.0/gcc/config/arm/fa626te.md
*** gcc-13.2.0/gcc/config/arm/fa626te.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/fa626te.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Faraday FA626TE Pipeline Description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Faraday FA626TE Pipeline Description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/fa726te.md gcc-14.1.0/gcc/config/arm/fa726te.md
*** gcc-13.2.0/gcc/config/arm/fa726te.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/fa726te.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Faraday FA726TE Pipeline Description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Faraday FA726TE Pipeline Description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/fmp626.md gcc-14.1.0/gcc/config/arm/fmp626.md
*** gcc-13.2.0/gcc/config/arm/fmp626.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/fmp626.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Faraday FA626TE Pipeline Description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Written by Mingfeng Wu, based on ARM926EJ-S Pipeline Description.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Faraday FA626TE Pipeline Description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Written by Mingfeng Wu, based on ARM926EJ-S Pipeline Description.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/freebsd.h gcc-14.1.0/gcc/config/arm/freebsd.h
*** gcc-13.2.0/gcc/config/arm/freebsd.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/freebsd.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, FreeBSD/arm version.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by Wasabi Systems, Inc.
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, FreeBSD/arm version.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Wasabi Systems, Inc.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/fuchsia-elf.h gcc-14.1.0/gcc/config/arm/fuchsia-elf.h
*** gcc-13.2.0/gcc/config/arm/fuchsia-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/fuchsia-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Configuration file for ARM Fuchsia ELF targets.
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
     Contributed by Google.
  
     This file is part of GCC.
--- 1,5 ----
  /* Configuration file for ARM Fuchsia ELF targets.
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
     Contributed by Google.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/iterators.md gcc-14.1.0/gcc/config/arm/iterators.md
*** gcc-13.2.0/gcc/config/arm/iterators.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/iterators.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Code and mode itertator and attribute definitions for the ARM backend
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
--- 1,6 ----
+ 
  ;; Code and mode itertator and attribute definitions for the ARM backend
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  ;;
  ;; This file is part of GCC.
***************
*** 140,145 ****
--- 141,149 ----
  ;; Opaque structure types used in table lookups (except vtbl1/vtbx1).
  (define_mode_iterator VTAB [TI EI OI])
  
+ ;; Opaque structure types for x2 variants of VSTR1/VSTR1Q or VLD1/VLD1Q.
+ (define_mode_iterator VMEMX2 [TI OI])
+ 
  ;; Widenable modes.
  (define_mode_iterator VW [V8QI V4HI V2SI])
  
***************
*** 271,279 ****
  (define_mode_iterator MVE_3 [V16QI V8HI])
  (define_mode_iterator MVE_2 [V16QI V8HI V4SI])
  (define_mode_iterator MVE_5 [V8HI V4SI])
- (define_mode_iterator MVE_6 [V8HI V4SI])
  (define_mode_iterator MVE_7 [V16BI V8BI V4BI V2QI])
  (define_mode_iterator MVE_7_HI [HI V16BI V8BI V4BI V2QI])
  
  ;;----------------------------------------------------------------------------
  ;; Code iterators
--- 275,284 ----
  (define_mode_iterator MVE_3 [V16QI V8HI])
  (define_mode_iterator MVE_2 [V16QI V8HI V4SI])
  (define_mode_iterator MVE_5 [V8HI V4SI])
  (define_mode_iterator MVE_7 [V16BI V8BI V4BI V2QI])
  (define_mode_iterator MVE_7_HI [HI V16BI V8BI V4BI V2QI])
+ (define_mode_iterator MVE_V8HF [V8HF])
+ (define_mode_iterator MVE_V16QI [V16QI])
  
  ;;----------------------------------------------------------------------------
  ;; Code iterators
***************
*** 330,335 ****
--- 335,1319 ----
  ;; Saturating addition, subtraction
  (define_code_iterator SSPLUSMINUS [ss_plus ss_minus])
  
+ ;; Max/Min iterator, to factorize MVE patterns
+ (define_code_iterator MAX_MIN_SU [smax umax smin umin])
+ 
+ ;; Floating-point Max/Min iterator, to factorize MVE patterns
+ (define_code_iterator MAX_MIN_F [smax smin])
+ 
+ ;; MVE integer unary operations.
+ (define_int_iterator MVE_INT_M_UNARY [
+ 		     VABSQ_M_S
+ 		     VCLSQ_M_S
+ 		     VCLZQ_M_S VCLZQ_M_U
+ 		     VNEGQ_M_S
+ 		     VQABSQ_M_S
+ 		     VQNEGQ_M_S
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_UNARY [
+ 		     VCLSQ_S
+ 		     VQABSQ_S
+ 		     VQNEGQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_UNARY [
+ 		     VRNDQ_F
+ 		     VRNDAQ_F
+ 		     VRNDMQ_F
+ 		     VRNDNQ_F
+ 		     VRNDPQ_F
+ 		     VRNDXQ_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_M_UNARY [
+ 		     VABSQ_M_F
+ 		     VNEGQ_M_F
+ 		     VRNDAQ_M_F
+ 		     VRNDMQ_M_F
+ 		     VRNDNQ_M_F
+ 		     VRNDPQ_M_F
+ 		     VRNDQ_M_F
+ 		     VRNDXQ_M_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_VREV64Q_ONLY [
+ 		     VREV64Q_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_M_VREV64Q_ONLY [
+ 		     VREV64Q_M_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_VREV32Q_ONLY [
+ 		     VREV32Q_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_M_VREV32Q_ONLY [
+ 		     VREV32Q_M_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_M_N_VDUPQ_ONLY [
+ 		     VDUPQ_M_N_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_N_VDUPQ_ONLY [
+ 		     VDUPQ_N_F
+ 		     ])
+ 
+ ;; MVE integer binary operations.
+ (define_code_iterator MVE_INT_BINARY_RTX [plus minus mult])
+ 
+ (define_int_iterator MVE_INT_M_BINARY   [
+ 		     VADDQ_M_S VADDQ_M_U
+ 		     VMULQ_M_S VMULQ_M_U
+ 		     VSUBQ_M_S VSUBQ_M_U
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_SU_M_BINARY   [
+ 		     VABDQ_M_S VABDQ_M_U
+ 		     VHADDQ_M_S VHADDQ_M_U
+ 		     VHSUBQ_M_S VHSUBQ_M_U
+ 		     VMAXQ_M_S VMAXQ_M_U
+ 		     VMINQ_M_S VMINQ_M_U
+ 		     VMULHQ_M_S VMULHQ_M_U
+ 		     VQADDQ_M_S VQADDQ_M_U
+ 		     VQDMLADHQ_M_S
+ 		     VQDMLADHXQ_M_S
+ 		     VQDMLSDHQ_M_S
+ 		     VQDMLSDHXQ_M_S
+ 		     VQDMULHQ_M_S
+ 		     VQRDMLADHQ_M_S
+ 		     VQRDMLADHXQ_M_S
+ 		     VQRDMLSDHQ_M_S
+ 		     VQRDMLSDHXQ_M_S
+ 		     VQRDMULHQ_M_S
+ 		     VQRSHLQ_M_S VQRSHLQ_M_U
+ 		     VQSHLQ_M_S VQSHLQ_M_U
+ 		     VQSUBQ_M_S VQSUBQ_M_U
+ 		     VRHADDQ_M_S VRHADDQ_M_U
+ 		     VRMULHQ_M_S VRMULHQ_M_U
+ 		     VRSHLQ_M_S VRSHLQ_M_U
+ 		     VSHLQ_M_S VSHLQ_M_U
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_M_BINARY_LOGIC   [
+ 		     VANDQ_M_S VANDQ_M_U
+ 		     VBICQ_M_S VBICQ_M_U
+ 		     VEORQ_M_S VEORQ_M_U
+ 		     VORRQ_M_S VORRQ_M_U
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_M_N_BINARY [
+ 		     VADDQ_M_N_S VADDQ_M_N_U
+ 		     VMULQ_M_N_S VMULQ_M_N_U
+ 		     VSUBQ_M_N_S VSUBQ_M_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_M_N_BINARY_LOGIC [
+ 		     VBICQ_M_N_S VBICQ_M_N_U
+ 		     VORRQ_M_N_S VORRQ_M_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_SU_M_N_BINARY   [
+ 		     VHADDQ_M_N_S VHADDQ_M_N_U
+ 		     VHSUBQ_M_N_S VHSUBQ_M_N_U
+ 		     VMLAQ_M_N_S VMLAQ_M_N_U
+ 		     VMLASQ_M_N_S VMLASQ_M_N_U
+ 		     VQDMLAHQ_M_N_S
+ 		     VQDMLASHQ_M_N_S
+ 		     VQRDMLAHQ_M_N_S
+ 		     VQRDMLASHQ_M_N_S
+ 		     VQADDQ_M_N_S VQADDQ_M_N_U
+ 		     VQSUBQ_M_N_S VQSUBQ_M_N_U
+ 		     VQDMULHQ_M_N_S
+ 		     VQRDMULHQ_M_N_S
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_N_BINARY   [
+ 		     VADDQ_N_S VADDQ_N_U
+ 		     VMULQ_N_S VMULQ_N_U
+ 		     VSUBQ_N_S VSUBQ_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_VSHRQ_M_N [
+ 		     VRSHRQ_M_N_S VRSHRQ_M_N_U
+ 		     VSHRQ_M_N_S VSHRQ_M_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_VSHRQ_N [
+ 		     VRSHRQ_N_S VRSHRQ_N_U
+ 		     VSHRQ_N_S VSHRQ_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_SU_N_BINARY   [
+ 		     VHADDQ_N_S VHADDQ_N_U
+ 		     VHSUBQ_N_S VHSUBQ_N_U
+ 		     VQADDQ_N_S VQADDQ_N_U
+ 		     VQDMULHQ_N_S
+ 		     VQRDMULHQ_N_S
+ 		     VQSUBQ_N_S VQSUBQ_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_SU_BINARY   [
+ 		     VABDQ_S VABDQ_U
+ 		     VHADDQ_S VHADDQ_U
+ 		     VHSUBQ_S VHSUBQ_U
+ 		     VMULHQ_S VMULHQ_U
+ 		     VQADDQ_S VQADDQ_U
+ 		     VQDMULHQ_S
+ 		     VQRDMULHQ_S
+ 		     VQRSHLQ_S VQRSHLQ_U
+ 		     VQSHLQ_S VQSHLQ_U
+ 		     VQSUBQ_S VQSUBQ_U
+ 		     VRHADDQ_S VRHADDQ_U
+ 		     VRMULHQ_S VRMULHQ_U
+ 		     VRSHLQ_S VRSHLQ_U
+ 		     ])
+ 
+ (define_int_iterator MVE_INT_N_BINARY_LOGIC   [
+ 		     VBICQ_N_S VBICQ_N_U
+ 		     VORRQ_N_S VORRQ_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_SHIFT_M_R   [
+ 		     VQSHLQ_M_R_S VQSHLQ_M_R_U
+ 		     VSHLQ_M_R_S VSHLQ_M_R_U
+ 		     ])
+ 
+ (define_int_iterator MVE_SHIFT_M_N   [
+ 		     VQSHLQ_M_N_S VQSHLQ_M_N_U
+ 		     VSHLQ_M_N_S VSHLQ_M_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_SHIFT_N   [
+ 		     VQSHLQ_N_S VQSHLQ_N_U
+ 		     VSHLQ_N_S VSHLQ_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_SHIFT_R   [
+ 		     VQSHLQ_R_S VQSHLQ_R_U
+ 		     VSHLQ_R_S VSHLQ_R_U
+ 		     ])
+ 
+ (define_int_iterator MVE_RSHIFT_M_N   [
+ 		     VQRSHLQ_M_N_S VQRSHLQ_M_N_U
+ 		     VRSHLQ_M_N_S VRSHLQ_M_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_RSHIFT_N   [
+ 		     VQRSHLQ_N_S VQRSHLQ_N_U
+ 		     VRSHLQ_N_S VRSHLQ_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_SHRN_N [
+ 		     VQRSHRNBQ_N_S VQRSHRNBQ_N_U
+ 		     VQRSHRNTQ_N_S VQRSHRNTQ_N_U
+ 		     VQRSHRUNBQ_N_S
+ 		     VQRSHRUNTQ_N_S
+ 		     VQSHRNBQ_N_S VQSHRNBQ_N_U
+ 		     VQSHRNTQ_N_S VQSHRNTQ_N_U
+ 		     VQSHRUNBQ_N_S
+ 		     VQSHRUNTQ_N_S
+ 		     VRSHRNBQ_N_S VRSHRNBQ_N_U
+ 		     VRSHRNTQ_N_S VRSHRNTQ_N_U
+ 		     VSHRNBQ_N_S VSHRNBQ_N_U
+ 		     VSHRNTQ_N_S VSHRNTQ_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_SHRN_M_N [
+ 		     VQRSHRNBQ_M_N_S VQRSHRNBQ_M_N_U
+ 		     VQRSHRNTQ_M_N_S VQRSHRNTQ_M_N_U
+ 		     VQRSHRUNBQ_M_N_S
+ 		     VQRSHRUNTQ_M_N_S
+ 		     VQSHRNBQ_M_N_S VQSHRNBQ_M_N_U
+ 		     VQSHRNTQ_M_N_S VQSHRNTQ_M_N_U
+ 		     VQSHRUNBQ_M_N_S
+ 		     VQSHRUNTQ_M_N_S
+ 		     VRSHRNBQ_M_N_S VRSHRNBQ_M_N_U
+ 		     VRSHRNTQ_M_N_S VRSHRNTQ_M_N_U
+ 		     VSHRNBQ_M_N_S VSHRNBQ_M_N_U
+ 		     VSHRNTQ_M_N_S VSHRNTQ_M_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_M_BINARY   [
+ 		     VABDQ_M_F
+ 		     VADDQ_M_F
+ 		     VFMAQ_M_F
+ 		     VFMSQ_M_F
+ 		     VMAXNMQ_M_F
+ 		     VMINNMQ_M_F
+ 		     VMULQ_M_F
+ 		     VSUBQ_M_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_M_BINARY_LOGIC   [
+ 		     VANDQ_M_F
+ 		     VBICQ_M_F
+ 		     VEORQ_M_F
+ 		     VORRQ_M_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_M_N_BINARY [
+ 		     VADDQ_M_N_F
+ 		     VFMAQ_M_N_F
+ 		     VFMASQ_M_N_F
+ 		     VMULQ_M_N_F
+ 		     VSUBQ_M_N_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_N_BINARY   [
+ 		     VADDQ_N_F
+ 		     VMULQ_N_F
+ 		     VSUBQ_N_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_VABDQ_ONLY [
+ 		     VABDQ_F
+ 		     ])
+ 
+ (define_int_iterator MVE_FP_CREATE_ONLY [
+ 		     VCREATEQ_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VBRSR_M_N_FP [
+ 		     VBRSRQ_M_N_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VBRSR_N_FP [
+ 		     VBRSRQ_N_F
+ 		     ])
+ 
+ ;; MVE comparison iterators
+ (define_int_iterator MVE_CMP_M [
+ 		     VCMPCSQ_M_U
+ 		     VCMPEQQ_M_S VCMPEQQ_M_U
+ 		     VCMPGEQ_M_S
+ 		     VCMPGTQ_M_S
+ 		     VCMPHIQ_M_U
+ 		     VCMPLEQ_M_S
+ 		     VCMPLTQ_M_S
+ 		     VCMPNEQ_M_S VCMPNEQ_M_U
+ 		     ])
+ 
+ (define_int_iterator MVE_CMP_M_F [
+ 		     VCMPEQQ_M_F
+ 		     VCMPGEQ_M_F
+ 		     VCMPGTQ_M_F
+ 		     VCMPLEQ_M_F
+ 		     VCMPLTQ_M_F
+ 		     VCMPNEQ_M_F
+ 		     ])
+ 
+ (define_int_iterator MVE_CMP_M_N [
+ 		     VCMPCSQ_M_N_U
+ 		     VCMPEQQ_M_N_S VCMPEQQ_M_N_U
+ 		     VCMPGEQ_M_N_S
+ 		     VCMPGTQ_M_N_S
+ 		     VCMPHIQ_M_N_U
+ 		     VCMPLEQ_M_N_S
+ 		     VCMPLTQ_M_N_S
+ 		     VCMPNEQ_M_N_S VCMPNEQ_M_N_U
+ 		     ])
+ 
+ (define_int_iterator MVE_CMP_M_N_F [
+ 		     VCMPEQQ_M_N_F
+ 		     VCMPGEQ_M_N_F
+ 		     VCMPGTQ_M_N_F
+ 		     VCMPLEQ_M_N_F
+ 		     VCMPLTQ_M_N_F
+ 		     VCMPNEQ_M_N_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VFMxQ_F [
+ 		     VFMAQ_F VFMSQ_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VFMAxQ_N_F [
+ 		     VFMAQ_N_F VFMASQ_N_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VMAXVQ_VMINVQ [
+ 		     VMAXAVQ_S
+ 		     VMAXVQ_S VMAXVQ_U
+ 		     VMINAVQ_S
+ 		     VMINVQ_S VMINVQ_U
+ 		     ])
+ 
+ (define_int_iterator MVE_VMAXVQ_VMINVQ_P [
+ 		     VMAXAVQ_P_S
+ 		     VMAXVQ_P_S VMAXVQ_P_U
+ 		     VMINAVQ_P_S
+ 		     VMINVQ_P_S VMINVQ_P_U
+ 		     ])
+ 
+ (define_int_iterator MVE_VMAXNMxV_MINNMxVQ [
+ 		     VMAXNMAVQ_F
+ 		     VMAXNMVQ_F
+ 		     VMINNMAVQ_F
+ 		     VMINNMVQ_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VMAXNMxV_MINNMxVQ_P [
+ 		     VMAXNMAVQ_P_F
+ 		     VMAXNMVQ_P_F
+ 		     VMINNMAVQ_P_F
+ 		     VMINNMVQ_P_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VMAXNMA_VMINNMAQ [
+ 		     VMAXNMAQ_F
+ 		     VMINNMAQ_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VMAXNMA_VMINNMAQ_M [
+ 		     VMAXNMAQ_M_F
+ 		     VMINNMAQ_M_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VMAXAVMINAQ [
+ 		     VMAXAQ_S
+ 		     VMINAQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMAXAVMINAQ_M [
+ 		     VMAXAQ_M_S
+ 		     VMINAQ_M_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxQ_N [
+ 		     VMLAQ_N_S VMLAQ_N_U
+ 		     VMLASQ_N_S VMLASQ_N_U
+ 		     VQDMLAHQ_N_S
+ 		     VQDMLASHQ_N_S
+ 		     VQRDMLAHQ_N_S
+ 		     VQRDMLASHQ_N_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxDAVQ [
+ 		     VMLADAVQ_S VMLADAVQ_U
+ 		     VMLADAVXQ_S
+ 		     VMLSDAVQ_S
+ 		     VMLSDAVXQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxDAVQ_P [
+ 		     VMLADAVQ_P_S VMLADAVQ_P_U
+ 		     VMLADAVXQ_P_S
+ 		     VMLSDAVQ_P_S
+ 		     VMLSDAVXQ_P_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxDAVAQ [
+ 		     VMLADAVAQ_S VMLADAVAQ_U
+ 		     VMLSDAVAXQ_S
+ 		     VMLSDAVAQ_S
+ 		     VMLADAVAXQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxDAVAQ_P [
+ 		     VMLADAVAQ_P_S VMLADAVAQ_P_U
+ 		     VMLSDAVAXQ_P_S
+ 		     VMLSDAVAQ_P_S
+ 		     VMLADAVAXQ_P_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxLDAVxQ [
+ 		     VMLALDAVQ_S VMLALDAVQ_U
+ 		     VMLALDAVXQ_S
+ 		     VMLSLDAVQ_S
+ 		     VMLSLDAVXQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxLDAVxQ_P [
+ 		     VMLALDAVQ_P_S VMLALDAVQ_P_U
+ 		     VMLALDAVXQ_P_S
+ 		     VMLSLDAVQ_P_S
+ 		     VMLSLDAVXQ_P_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxLDAVAxQ [
+ 		     VMLALDAVAQ_S VMLALDAVAQ_U
+ 		     VMLALDAVAXQ_S
+ 		     VMLSLDAVAQ_S
+ 		     VMLSLDAVAXQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VMLxLDAVAxQ_P [
+ 		     VMLALDAVAQ_P_S VMLALDAVAQ_P_U
+ 		     VMLALDAVAXQ_P_S
+ 		     VMLSLDAVAQ_P_S
+ 		     VMLSLDAVAXQ_P_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VQDMULLxQ [
+ 		     VQDMULLBQ_S
+ 		     VQDMULLTQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VQDMULLxQ_M [
+ 		     VQDMULLBQ_M_S
+ 		     VQDMULLTQ_M_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VQDMULLxQ_M_N [
+ 		     VQDMULLBQ_M_N_S
+ 		     VQDMULLTQ_M_N_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VQDMULLxQ_N [
+ 		     VQDMULLBQ_N_S
+ 		     VQDMULLTQ_N_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VQxDMLxDHxQ_S [
+ 		     VQDMLADHQ_S
+ 		     VQDMLADHXQ_S
+ 		     VQDMLSDHQ_S
+ 		     VQDMLSDHXQ_S
+ 		     VQRDMLADHQ_S
+ 		     VQRDMLADHXQ_S
+ 		     VQRDMLSDHQ_S
+ 		     VQRDMLSDHXQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VRMLxLDAVxQ [
+ 		     VRMLALDAVHQ_S VRMLALDAVHQ_U
+ 		     VRMLALDAVHXQ_S
+ 		     VRMLSLDAVHQ_S
+ 		     VRMLSLDAVHXQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VRMLxLDAVHxQ_P [
+ 		     VRMLALDAVHQ_P_S VRMLALDAVHQ_P_U
+ 		     VRMLALDAVHXQ_P_S
+ 		     VRMLSLDAVHQ_P_S
+ 		     VRMLSLDAVHXQ_P_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VRMLxLDAVHAxQ [
+ 		     VRMLALDAVHAQ_S VRMLALDAVHAQ_U
+ 		     VRMLALDAVHAXQ_S
+ 		     VRMLSLDAVHAQ_S
+ 		     VRMLSLDAVHAXQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_VRMLxLDAVHAxQ_P [
+ 		     VRMLALDAVHAQ_P_S VRMLALDAVHAQ_P_U
+ 		     VRMLALDAVHAXQ_P_S
+ 		     VRMLSLDAVHAQ_P_S
+ 		     VRMLSLDAVHAXQ_P_S
+ 		     ])
+ 
+ (define_int_iterator MVE_MOVN [
+ 		     VMOVNBQ_S VMOVNBQ_U
+ 		     VMOVNTQ_S VMOVNTQ_U
+ 		     VQMOVNBQ_S VQMOVNBQ_U
+ 		     VQMOVNTQ_S VQMOVNTQ_U
+ 		     VQMOVUNBQ_S
+ 		     VQMOVUNTQ_S
+ 		     ])
+ 
+ (define_int_iterator MVE_MOVN_M [
+ 		     VMOVNBQ_M_S VMOVNBQ_M_U
+ 		     VMOVNTQ_M_S VMOVNTQ_M_U
+ 		     VQMOVNBQ_M_S VQMOVNBQ_M_U
+ 		     VQMOVNTQ_M_S VQMOVNTQ_M_U
+ 		     VQMOVUNBQ_M_S
+ 		     VQMOVUNTQ_M_S
+ 		     ])
+ 
+ (define_code_attr mve_addsubmul [
+ 		 (minus "vsub")
+ 		 (mult "vmul")
+ 		 (plus "vadd")
+ 		 ])
+ 
+ (define_int_attr mve_vmaxmin_safe_imp [
+ 		 (VMAXVQ_U "yes")
+ 		 (VMAXVQ_S "no")
+ 		 (VMAXAVQ_S "yes")
+ 		 (VMINVQ_U "no")
+ 		 (VMINVQ_S "no")
+ 		 (VMINAVQ_S "no")])
+ 
+ (define_int_attr mve_cmp_op1 [
+ 		 (VCMPCSQ_M_U "cs")
+ 		 (VCMPEQQ_M_S "eq") (VCMPEQQ_M_U "eq")
+ 		 (VCMPGEQ_M_S "ge")
+ 		 (VCMPGTQ_M_S "gt")
+ 		 (VCMPHIQ_M_U "hi")
+ 		 (VCMPLEQ_M_S "le")
+ 		 (VCMPLTQ_M_S "lt")
+ 		 (VCMPNEQ_M_S "ne") (VCMPNEQ_M_U "ne")
+ 		 (VCMPEQQ_M_F "eq")
+ 		 (VCMPGEQ_M_F "ge")
+ 		 (VCMPGTQ_M_F "gt")
+ 		 (VCMPLEQ_M_F "le")
+ 		 (VCMPLTQ_M_F "lt")
+ 		 (VCMPNEQ_M_F "ne")
+ 		 (VCMPCSQ_M_N_U "cs")
+ 		 (VCMPEQQ_M_N_S "eq") (VCMPEQQ_M_N_U "eq")
+ 		 (VCMPGEQ_M_N_S "ge")
+ 		 (VCMPGTQ_M_N_S "gt")
+ 		 (VCMPHIQ_M_N_U "hi")
+ 		 (VCMPLEQ_M_N_S "le")
+ 		 (VCMPLTQ_M_N_S "lt")
+ 		 (VCMPNEQ_M_N_S "ne") (VCMPNEQ_M_N_U "ne")
+ 		 (VCMPEQQ_M_N_F "eq")
+ 		 (VCMPGEQ_M_N_F "ge")
+ 		 (VCMPGTQ_M_N_F "gt")
+ 		 (VCMPLEQ_M_N_F "le")
+ 		 (VCMPLTQ_M_N_F "lt")
+ 		 (VCMPNEQ_M_N_F "ne")
+ 		 ])
+ 
+ (define_int_iterator MVE_VPSELQ_F [
+ 		     VPSELQ_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VCADDQ_VCMULQ [
+ 		     UNSPEC_VCADD90 UNSPEC_VCADD270
+ 		     UNSPEC_VCMUL UNSPEC_VCMUL90 UNSPEC_VCMUL180 UNSPEC_VCMUL270
+ 		     ])
+ 
+ (define_int_iterator MVE_VCADDQ_VCMULQ_M [
+ 		     VCADDQ_ROT90_M_F VCADDQ_ROT270_M_F
+ 		     VCMULQ_M_F VCMULQ_ROT90_M_F VCMULQ_ROT180_M_F VCMULQ_ROT270_M_F
+ 		     ])
+ 
+ (define_int_iterator MVE_VCMLAQ_M [
+ 		     VCMLAQ_M_F VCMLAQ_ROT90_M_F VCMLAQ_ROT180_M_F VCMLAQ_ROT270_M_F
+ 		     ])
+ 
+ (define_int_attr mve_insn [
+ 		 (UNSPEC_VCADD90 "vcadd") (UNSPEC_VCADD270 "vcadd")
+ 		 (UNSPEC_VCMLA "vcmla") (UNSPEC_VCMLA90 "vcmla") (UNSPEC_VCMLA180 "vcmla") (UNSPEC_VCMLA270 "vcmla")
+ 		 (UNSPEC_VCMUL "vcmul") (UNSPEC_VCMUL90 "vcmul") (UNSPEC_VCMUL180 "vcmul") (UNSPEC_VCMUL270 "vcmul")
+ 		 (VABAVQ_P_S "vabav") (VABAVQ_P_U "vabav")
+ 		 (VABAVQ_S "vabav") (VABAVQ_U "vabav")
+ 		 (VABDQ_M_S "vabd") (VABDQ_M_U "vabd") (VABDQ_M_F "vabd")
+ 		 (VABDQ_S "vabd") (VABDQ_U "vabd") (VABDQ_F "vabd")
+ 		 (VABSQ_M_F "vabs")
+ 		 (VABSQ_M_S "vabs")
+ 		 (VADDLVAQ_P_S "vaddlva") (VADDLVAQ_P_U "vaddlva")
+ 		 (VADDLVAQ_S "vaddlva") (VADDLVAQ_U "vaddlva")
+ 		 (VADDLVQ_P_S "vaddlv") (VADDLVQ_P_U "vaddlv")
+ 		 (VADDLVQ_S "vaddlv") (VADDLVQ_U "vaddlv")
+ 		 (VADDQ_M_N_S "vadd") (VADDQ_M_N_U "vadd") (VADDQ_M_N_F "vadd")
+ 		 (VADDQ_M_S "vadd") (VADDQ_M_U "vadd") (VADDQ_M_F "vadd")
+ 		 (VADDQ_N_S "vadd") (VADDQ_N_U "vadd") (VADDQ_N_F "vadd")
+ 		 (VADDVAQ_P_S "vaddva") (VADDVAQ_P_U "vaddva")
+ 		 (VADDVAQ_S "vaddva") (VADDVAQ_U "vaddva")
+ 		 (VADDVQ_P_S "vaddv") (VADDVQ_P_U "vaddv")
+ 		 (VADDVQ_S "vaddv") (VADDVQ_U "vaddv")
+ 		 (VANDQ_M_S "vand") (VANDQ_M_U "vand") (VANDQ_M_F "vand")
+ 		 (VBICQ_M_N_S "vbic") (VBICQ_M_N_U "vbic")
+ 		 (VBICQ_M_S "vbic") (VBICQ_M_U "vbic") (VBICQ_M_F "vbic")
+ 		 (VBICQ_N_S "vbic") (VBICQ_N_U "vbic")
+ 		 (VBRSRQ_M_N_S "vbrsr") (VBRSRQ_M_N_U "vbrsr") (VBRSRQ_M_N_F "vbrsr")
+ 		 (VBRSRQ_N_S "vbrsr") (VBRSRQ_N_U "vbrsr") (VBRSRQ_N_F "vbrsr")
+ 		 (VCADDQ_ROT270_M "vcadd") (VCADDQ_ROT270_M_F "vcadd")
+ 		 (VCADDQ_ROT90_M "vcadd") (VCADDQ_ROT90_M_F "vcadd")
+ 		 (VCLSQ_M_S "vcls")
+ 		 (VCLSQ_S "vcls")
+ 		 (VCLZQ_M_S "vclz") (VCLZQ_M_U "vclz")
+ 		 (VCMLAQ_M_F "vcmla") (VCMLAQ_ROT90_M_F "vcmla") (VCMLAQ_ROT180_M_F "vcmla") (VCMLAQ_ROT270_M_F "vcmla")
+ 		 (VCMULQ_M_F "vcmul") (VCMULQ_ROT90_M_F "vcmul") (VCMULQ_ROT180_M_F "vcmul") (VCMULQ_ROT270_M_F "vcmul")
+ 		 (VCREATEQ_S "vcreate") (VCREATEQ_U "vcreate") (VCREATEQ_F "vcreate")
+ 		 (VDUPQ_M_N_S "vdup") (VDUPQ_M_N_U "vdup") (VDUPQ_M_N_F "vdup")
+ 		 (VDUPQ_N_S "vdup") (VDUPQ_N_U "vdup") (VDUPQ_N_F "vdup")
+ 		 (VEORQ_M_S "veor") (VEORQ_M_U "veor") (VEORQ_M_F "veor")
+ 		 (VFMAQ_F "vfma")
+ 		 (VFMAQ_M_F "vfma")
+ 		 (VFMAQ_M_N_F "vfma")
+ 		 (VFMAQ_N_F "vfma")
+ 		 (VFMASQ_M_N_F "vfmas")
+ 		 (VFMASQ_N_F "vfmas")
+ 		 (VFMSQ_F "vfms")
+ 		 (VFMSQ_M_F "vfms")
+ 		 (VHADDQ_M_N_S "vhadd") (VHADDQ_M_N_U "vhadd")
+ 		 (VHADDQ_M_S "vhadd") (VHADDQ_M_U "vhadd")
+ 		 (VHADDQ_N_S "vhadd") (VHADDQ_N_U "vhadd")
+ 		 (VHADDQ_S "vhadd") (VHADDQ_U "vhadd")
+ 		 (VHCADDQ_ROT90_M_S "vhcadd") (VHCADDQ_ROT270_M_S "vhcadd")
+ 		 (VHCADDQ_ROT90_S "vhcadd") (VHCADDQ_ROT270_S "vhcadd")
+ 		 (VHSUBQ_M_N_S "vhsub") (VHSUBQ_M_N_U "vhsub")
+ 		 (VHSUBQ_M_S "vhsub") (VHSUBQ_M_U "vhsub")
+ 		 (VHSUBQ_N_S "vhsub") (VHSUBQ_N_U "vhsub")
+ 		 (VHSUBQ_S "vhsub") (VHSUBQ_U "vhsub")
+ 		 (VMAXAQ_M_S "vmaxa")
+ 		 (VMAXAQ_S "vmaxa")
+ 		 (VMAXAVQ_P_S "vmaxav")
+ 		 (VMAXAVQ_S "vmaxav")
+ 		 (VMAXNMAQ_F "vmaxnma")
+ 		 (VMAXNMAQ_M_F "vmaxnma")
+ 		 (VMAXNMAVQ_F "vmaxnmav")
+ 		 (VMAXNMAVQ_P_F "vmaxnmav")
+ 		 (VMAXNMQ_M_F "vmaxnm")
+ 		 (VMAXNMVQ_F "vmaxnmv")
+ 		 (VMAXNMVQ_P_F "vmaxnmv")
+ 		 (VMAXQ_M_S "vmax") (VMAXQ_M_U "vmax")
+ 		 (VMAXVQ_P_S "vmaxv") (VMAXVQ_P_U "vmaxv")
+ 		 (VMAXVQ_S "vmaxv") (VMAXVQ_U "vmaxv")
+ 		 (VMINAQ_M_S "vmina")
+ 		 (VMINAQ_S "vmina")
+ 		 (VMINAVQ_P_S "vminav")
+ 		 (VMINAVQ_S "vminav")
+ 		 (VMINNMAQ_F "vminnma")
+ 		 (VMINNMAQ_M_F "vminnma")
+ 		 (VMINNMAVQ_F "vminnmav")
+ 		 (VMINNMAVQ_P_F "vminnmav")
+ 		 (VMINNMQ_M_F "vminnm")
+ 		 (VMINNMVQ_F "vminnmv")
+ 		 (VMINNMVQ_P_F "vminnmv")
+ 		 (VMINQ_M_S "vmin") (VMINQ_M_U "vmin")
+ 		 (VMINVQ_P_S "vminv") (VMINVQ_P_U "vminv")
+ 		 (VMINVQ_S "vminv") (VMINVQ_U "vminv")
+ 		 (VMLADAVAQ_P_S "vmladava") (VMLADAVAQ_P_U "vmladava")
+ 		 (VMLADAVAQ_S "vmladava") (VMLADAVAQ_U "vmladava")
+ 		 (VMLADAVAXQ_P_S "vmladavax")
+ 		 (VMLADAVAXQ_S "vmladavax")
+ 		 (VMLADAVQ_P_S "vmladav") (VMLADAVQ_P_U "vmladav")
+ 		 (VMLADAVQ_S "vmladav") (VMLADAVQ_U "vmladav")
+ 		 (VMLADAVXQ_P_S "vmladavx")
+ 		 (VMLADAVXQ_S "vmladavx")
+ 		 (VMLALDAVAQ_P_S "vmlaldava") (VMLALDAVAQ_P_U "vmlaldava")
+ 		 (VMLALDAVAQ_S "vmlaldava") (VMLALDAVAQ_U "vmlaldava")
+ 		 (VMLALDAVAXQ_P_S "vmlaldavax")
+ 		 (VMLALDAVAXQ_S "vmlaldavax")
+ 		 (VMLALDAVQ_P_S "vmlaldav") (VMLALDAVQ_P_U "vmlaldav")
+ 		 (VMLALDAVQ_S "vmlaldav") (VMLALDAVQ_U "vmlaldav")
+ 		 (VMLALDAVXQ_P_S "vmlaldavx")
+ 		 (VMLALDAVXQ_S "vmlaldavx")
+ 		 (VMLAQ_M_N_S "vmla") (VMLAQ_M_N_U "vmla")
+ 		 (VMLAQ_N_S "vmla") (VMLAQ_N_U "vmla")
+ 		 (VMLASQ_M_N_S "vmlas") (VMLASQ_M_N_U "vmlas")
+ 		 (VMLASQ_N_S "vmlas") (VMLASQ_N_U "vmlas")
+ 		 (VMLSDAVAQ_P_S "vmlsdava")
+ 		 (VMLSDAVAQ_S "vmlsdava")
+ 		 (VMLSDAVAXQ_P_S "vmlsdavax")
+ 		 (VMLSDAVAXQ_S "vmlsdavax")
+ 		 (VMLSDAVQ_P_S "vmlsdav")
+ 		 (VMLSDAVQ_S "vmlsdav")
+ 		 (VMLSDAVXQ_P_S "vmlsdavx")
+ 		 (VMLSDAVXQ_S "vmlsdavx")
+ 		 (VMLSLDAVAQ_P_S "vmlsldava")
+ 		 (VMLSLDAVAQ_S "vmlsldava")
+ 		 (VMLSLDAVAXQ_P_S "vmlsldavax")
+ 		 (VMLSLDAVAXQ_S "vmlsldavax")
+ 		 (VMLSLDAVQ_P_S "vmlsldav")
+ 		 (VMLSLDAVQ_S "vmlsldav")
+ 		 (VMLSLDAVXQ_P_S "vmlsldavx")
+ 		 (VMLSLDAVXQ_S "vmlsldavx")
+ 		 (VMOVLBQ_M_S "vmovlb") (VMOVLBQ_M_U "vmovlb")
+ 		 (VMOVLBQ_S "vmovlb") (VMOVLBQ_U "vmovlb")
+ 		 (VMOVLTQ_M_S "vmovlt") (VMOVLTQ_M_U "vmovlt")
+ 		 (VMOVLTQ_S "vmovlt") (VMOVLTQ_U "vmovlt")
+ 		 (VMOVNBQ_M_S "vmovnb") (VMOVNBQ_M_U "vmovnb")
+ 		 (VMOVNBQ_S "vmovnb") (VMOVNBQ_U "vmovnb")
+ 		 (VMOVNTQ_M_S "vmovnt") (VMOVNTQ_M_U "vmovnt")
+ 		 (VMOVNTQ_S "vmovnt") (VMOVNTQ_U "vmovnt")
+ 		 (VMULHQ_M_S "vmulh") (VMULHQ_M_U "vmulh")
+ 		 (VMULHQ_S "vmulh") (VMULHQ_U "vmulh")
+ 		 (VMULLBQ_INT_M_S "vmullb") (VMULLBQ_INT_M_U "vmullb")
+ 		 (VMULLBQ_INT_S "vmullb") (VMULLBQ_INT_U "vmullb")
+ 		 (VMULLBQ_POLY_M_P "vmullb") (VMULLTQ_POLY_M_P "vmullt")
+ 		 (VMULLBQ_POLY_P "vmullb")
+ 		 (VMULLTQ_INT_M_S "vmullt") (VMULLTQ_INT_M_U "vmullt")
+ 		 (VMULLTQ_INT_S "vmullt") (VMULLTQ_INT_U "vmullt")
+ 		 (VMULLTQ_POLY_P "vmullt")
+ 		 (VMULQ_M_N_S "vmul") (VMULQ_M_N_U "vmul") (VMULQ_M_N_F "vmul")
+ 		 (VMULQ_M_S "vmul") (VMULQ_M_U "vmul") (VMULQ_M_F "vmul")
+ 		 (VMULQ_N_S "vmul") (VMULQ_N_U "vmul") (VMULQ_N_F "vmul")
+ 		 (VMVNQ_M_N_S "vmvn") (VMVNQ_M_N_U "vmvn")
+ 		 (VMVNQ_M_S "vmvn") (VMVNQ_M_U "vmvn")
+ 		 (VMVNQ_N_S "vmvn") (VMVNQ_N_U "vmvn")
+ 		 (VNEGQ_M_F "vneg")
+ 		 (VNEGQ_M_S "vneg")
+ 		 (VORRQ_M_N_S "vorr") (VORRQ_M_N_U "vorr")
+ 		 (VORRQ_M_S "vorr") (VORRQ_M_U "vorr") (VORRQ_M_F "vorr")
+ 		 (VORRQ_N_S "vorr") (VORRQ_N_U "vorr")
+ 		 (VPSELQ_S "vpsel") (VPSELQ_U "vpsel") (VPSELQ_F "vpsel")
+ 		 (VQABSQ_M_S "vqabs")
+ 		 (VQABSQ_S "vqabs")
+ 		 (VQADDQ_M_N_S "vqadd") (VQADDQ_M_N_U "vqadd")
+ 		 (VQADDQ_M_S "vqadd") (VQADDQ_M_U "vqadd")
+ 		 (VQADDQ_N_S "vqadd") (VQADDQ_N_U "vqadd")
+ 		 (VQADDQ_S "vqadd") (VQADDQ_U "vqadd")
+ 		 (VQDMLADHQ_M_S "vqdmladh")
+ 		 (VQDMLADHQ_S "vqdmladh")
+ 		 (VQDMLADHXQ_M_S "vqdmladhx")
+ 		 (VQDMLADHXQ_S "vqdmladhx")
+ 		 (VQDMLAHQ_M_N_S "vqdmlah")
+ 		 (VQDMLAHQ_N_S "vqdmlah")
+ 		 (VQDMLASHQ_M_N_S "vqdmlash")
+ 		 (VQDMLASHQ_N_S "vqdmlash")
+ 		 (VQDMLSDHQ_M_S "vqdmlsdh")
+ 		 (VQDMLSDHQ_S "vqdmlsdh")
+ 		 (VQDMLSDHXQ_M_S "vqdmlsdhx")
+ 		 (VQDMLSDHXQ_S "vqdmlsdhx")
+ 		 (VQDMULHQ_M_N_S "vqdmulh")
+ 		 (VQDMULHQ_M_S "vqdmulh")
+ 		 (VQDMULHQ_N_S "vqdmulh")
+ 		 (VQDMULHQ_S "vqdmulh")
+ 		 (VQDMULLBQ_M_N_S "vqdmullb")
+ 		 (VQDMULLBQ_M_S "vqdmullb")
+ 		 (VQDMULLBQ_N_S "vqdmullb")
+ 		 (VQDMULLBQ_S "vqdmullb")
+ 		 (VQDMULLTQ_M_N_S "vqdmullt")
+ 		 (VQDMULLTQ_M_S "vqdmullt")
+ 		 (VQDMULLTQ_N_S "vqdmullt")
+ 		 (VQDMULLTQ_S "vqdmullt")
+ 		 (VQMOVNBQ_M_S "vqmovnb") (VQMOVNBQ_M_U "vqmovnb")
+ 		 (VQMOVNBQ_S "vqmovnb") (VQMOVNBQ_U "vqmovnb")
+ 		 (VQMOVNTQ_M_S "vqmovnt") (VQMOVNTQ_M_U "vqmovnt")
+ 		 (VQMOVNTQ_S "vqmovnt") (VQMOVNTQ_U "vqmovnt")
+ 		 (VQMOVUNBQ_M_S "vqmovunb")
+ 		 (VQMOVUNBQ_S "vqmovunb")
+ 		 (VQMOVUNTQ_M_S "vqmovunt")
+ 		 (VQMOVUNTQ_S "vqmovunt")
+ 		 (VQNEGQ_M_S "vqneg")
+ 		 (VQNEGQ_S "vqneg")
+ 		 (VQRDMLADHQ_M_S "vqrdmladh")
+ 		 (VQRDMLADHQ_S "vqrdmladh")
+ 		 (VQRDMLADHXQ_M_S "vqrdmladhx")
+ 		 (VQRDMLADHXQ_S "vqrdmladhx")
+ 		 (VQRDMLAHQ_M_N_S "vqrdmlah")
+ 		 (VQRDMLAHQ_N_S "vqrdmlah")
+ 		 (VQRDMLASHQ_M_N_S "vqrdmlash")
+ 		 (VQRDMLASHQ_N_S "vqrdmlash")
+ 		 (VQRDMLSDHQ_M_S "vqrdmlsdh")
+ 		 (VQRDMLSDHQ_S "vqrdmlsdh")
+ 		 (VQRDMLSDHXQ_M_S "vqrdmlsdhx")
+ 		 (VQRDMLSDHXQ_S "vqrdmlsdhx")
+ 		 (VQRDMULHQ_M_N_S "vqrdmulh")
+ 		 (VQRDMULHQ_M_S "vqrdmulh")
+ 		 (VQRDMULHQ_N_S "vqrdmulh")
+ 		 (VQRDMULHQ_S "vqrdmulh")
+ 		 (VQRSHLQ_M_N_S "vqrshl") (VQRSHLQ_M_N_U "vqrshl")
+ 		 (VQRSHLQ_M_S "vqrshl") (VQRSHLQ_M_U "vqrshl")
+ 		 (VQRSHLQ_N_S "vqrshl") (VQRSHLQ_N_U "vqrshl")
+ 		 (VQRSHLQ_S "vqrshl") (VQRSHLQ_U "vqrshl")
+ 		 (VQRSHRNBQ_M_N_S "vqrshrnb") (VQRSHRNBQ_M_N_U "vqrshrnb")
+ 		 (VQRSHRNBQ_N_S "vqrshrnb") (VQRSHRNBQ_N_U "vqrshrnb")
+ 		 (VQRSHRNTQ_M_N_S "vqrshrnt") (VQRSHRNTQ_M_N_U "vqrshrnt")
+ 		 (VQRSHRNTQ_N_S "vqrshrnt") (VQRSHRNTQ_N_U "vqrshrnt")
+ 		 (VQRSHRUNBQ_M_N_S "vqrshrunb")
+ 		 (VQRSHRUNBQ_N_S "vqrshrunb")
+ 		 (VQRSHRUNTQ_M_N_S "vqrshrunt")
+ 		 (VQRSHRUNTQ_N_S "vqrshrunt")
+ 		 (VQSHLQ_M_N_S "vqshl") (VQSHLQ_M_N_U "vqshl")
+ 		 (VQSHLQ_M_R_S "vqshl") (VQSHLQ_M_R_U "vqshl")
+ 		 (VQSHLQ_M_S "vqshl") (VQSHLQ_M_U "vqshl")
+ 		 (VQSHLQ_N_S "vqshl") (VQSHLQ_N_U "vqshl")
+ 		 (VQSHLQ_R_S "vqshl") (VQSHLQ_R_U "vqshl")
+ 		 (VQSHLQ_S "vqshl") (VQSHLQ_U "vqshl")
+ 		 (VQSHLUQ_M_N_S "vqshlu")
+ 		 (VQSHLUQ_N_S "vqshlu")
+ 		 (VQSHRNBQ_M_N_S "vqshrnb") (VQSHRNBQ_M_N_U "vqshrnb")
+ 		 (VQSHRNBQ_N_S "vqshrnb") (VQSHRNBQ_N_U "vqshrnb")
+ 		 (VQSHRNTQ_M_N_S "vqshrnt") (VQSHRNTQ_M_N_U "vqshrnt")
+ 		 (VQSHRNTQ_N_S "vqshrnt") (VQSHRNTQ_N_U "vqshrnt")
+ 		 (VQSHRUNBQ_M_N_S "vqshrunb")
+ 		 (VQSHRUNBQ_N_S "vqshrunb")
+ 		 (VQSHRUNTQ_M_N_S "vqshrunt")
+ 		 (VQSHRUNTQ_N_S "vqshrunt")
+ 		 (VQSUBQ_M_N_S "vqsub") (VQSUBQ_M_N_U "vqsub")
+ 		 (VQSUBQ_M_S "vqsub") (VQSUBQ_M_U "vqsub")
+ 		 (VQSUBQ_N_S "vqsub") (VQSUBQ_N_U "vqsub")
+ 		 (VQSUBQ_S "vqsub") (VQSUBQ_U "vqsub")
+ 		 (VREV16Q_M_S "vrev16") (VREV16Q_M_U "vrev16")
+ 		 (VREV16Q_S "vrev16") (VREV16Q_U "vrev16")
+ 		 (VREV32Q_M_S "vrev32") (VREV32Q_M_U "vrev32") (VREV32Q_M_F "vrev32")
+ 		 (VREV32Q_S "vrev32") (VREV32Q_U "vrev32") (VREV32Q_F "vrev32")
+ 		 (VREV64Q_M_S "vrev64") (VREV64Q_M_U "vrev64") (VREV64Q_M_F "vrev64")
+ 		 (VREV64Q_S "vrev64") (VREV64Q_U "vrev64") (VREV64Q_F "vrev64")
+ 		 (VRHADDQ_M_S "vrhadd") (VRHADDQ_M_U "vrhadd")
+ 		 (VRHADDQ_S "vrhadd") (VRHADDQ_U "vrhadd")
+ 		 (VRMLALDAVHAQ_P_S "vrmlaldavha") (VRMLALDAVHAQ_P_U "vrmlaldavha")
+ 		 (VRMLALDAVHAQ_S "vrmlaldavha") (VRMLALDAVHAQ_U "vrmlaldavha")
+ 		 (VRMLALDAVHAXQ_P_S "vrmlaldavhax")
+ 		 (VRMLALDAVHAXQ_S "vrmlaldavhax")
+ 		 (VRMLALDAVHQ_P_S "vrmlaldavh") (VRMLALDAVHQ_P_U "vrmlaldavh")
+ 		 (VRMLALDAVHQ_S "vrmlaldavh") (VRMLALDAVHQ_U "vrmlaldavh")
+ 		 (VRMLALDAVHXQ_P_S "vrmlaldavhx")
+ 		 (VRMLALDAVHXQ_S "vrmlaldavhx")
+ 		 (VRMLSLDAVHAQ_P_S "vrmlsldavha")
+ 		 (VRMLSLDAVHAQ_S "vrmlsldavha")
+ 		 (VRMLSLDAVHAXQ_P_S "vrmlsldavhax")
+ 		 (VRMLSLDAVHAXQ_S "vrmlsldavhax")
+ 		 (VRMLSLDAVHQ_P_S "vrmlsldavh")
+ 		 (VRMLSLDAVHQ_S "vrmlsldavh")
+ 		 (VRMLSLDAVHXQ_P_S "vrmlsldavhx")
+ 		 (VRMLSLDAVHXQ_S "vrmlsldavhx")
+ 		 (VRMULHQ_M_S "vrmulh") (VRMULHQ_M_U "vrmulh")
+ 		 (VRMULHQ_S "vrmulh") (VRMULHQ_U "vrmulh")
+ 		 (VRNDAQ_F "vrnda") (VRNDAQ_M_F "vrnda")
+ 		 (VRNDMQ_F "vrndm") (VRNDMQ_M_F "vrndm")
+ 		 (VRNDNQ_F "vrndn") (VRNDNQ_M_F "vrndn")
+ 		 (VRNDPQ_F "vrndp") (VRNDPQ_M_F "vrndp")
+ 		 (VRNDQ_F "vrnd") (VRNDQ_M_F "vrnd")
+ 		 (VRNDXQ_F "vrndx") (VRNDXQ_M_F "vrndx")
+ 		 (VRSHLQ_M_N_S "vrshl") (VRSHLQ_M_N_U "vrshl")
+ 		 (VRSHLQ_M_S "vrshl") (VRSHLQ_M_U "vrshl")
+ 		 (VRSHLQ_N_S "vrshl") (VRSHLQ_N_U "vrshl")
+ 		 (VRSHLQ_S "vrshl") (VRSHLQ_U "vrshl")
+ 		 (VRSHRNBQ_M_N_S "vrshrnb") (VRSHRNBQ_M_N_U "vrshrnb")
+ 		 (VRSHRNBQ_N_S "vrshrnb") (VRSHRNBQ_N_U "vrshrnb")
+ 		 (VRSHRNTQ_M_N_S "vrshrnt") (VRSHRNTQ_M_N_U "vrshrnt")
+ 		 (VRSHRNTQ_N_S "vrshrnt") (VRSHRNTQ_N_U "vrshrnt")
+ 		 (VRSHRQ_M_N_S "vrshr") (VRSHRQ_M_N_U "vrshr")
+ 		 (VRSHRQ_N_S "vrshr") (VRSHRQ_N_U "vrshr")
+ 		 (VSHLLBQ_M_N_S "vshllb") (VSHLLBQ_M_N_U "vshllb")
+ 		 (VSHLLBQ_N_S "vshllb") (VSHLLBQ_N_U "vshllb")
+ 		 (VSHLLTQ_M_N_S "vshllt") (VSHLLTQ_M_N_U "vshllt")
+ 		 (VSHLLTQ_N_S "vshllt") (VSHLLTQ_N_U "vshllt")
+ 		 (VSHLQ_M_N_S "vshl") (VSHLQ_M_N_U "vshl")
+ 		 (VSHLQ_M_R_S "vshl") (VSHLQ_M_R_U "vshl")
+ 		 (VSHLQ_M_S "vshl") (VSHLQ_M_U "vshl")
+ 		 (VSHLQ_N_S "vshl") (VSHLQ_N_U "vshl")
+ 		 (VSHLQ_R_S "vshl") (VSHLQ_R_U "vshl")
+ 		 (VSHLQ_S "vshl") (VSHLQ_U "vshl")
+ 		 (VSHRNBQ_M_N_S "vshrnb") (VSHRNBQ_M_N_U "vshrnb")
+ 		 (VSHRNBQ_N_S "vshrnb") (VSHRNBQ_N_U "vshrnb")
+ 		 (VSHRNTQ_M_N_S "vshrnt") (VSHRNTQ_M_N_U "vshrnt")
+ 		 (VSHRNTQ_N_S "vshrnt") (VSHRNTQ_N_U "vshrnt")
+ 		 (VSHRQ_M_N_S "vshr") (VSHRQ_M_N_U "vshr")
+ 		 (VSHRQ_N_S "vshr") (VSHRQ_N_U "vshr")
+ 		 (VSLIQ_M_N_S "vsli") (VSLIQ_M_N_U "vsli")
+ 		 (VSLIQ_N_S "vsli") (VSLIQ_N_U "vsli")
+ 		 (VSRIQ_M_N_S "vsri") (VSRIQ_M_N_U "vsri")
+ 		 (VSRIQ_N_S "vsri") (VSRIQ_N_U "vsri")
+ 		 (VSUBQ_M_N_S "vsub") (VSUBQ_M_N_U "vsub") (VSUBQ_M_N_F "vsub")
+ 		 (VSUBQ_M_S "vsub") (VSUBQ_M_U "vsub") (VSUBQ_M_F "vsub")
+ 		 (VSUBQ_N_S "vsub") (VSUBQ_N_U "vsub") (VSUBQ_N_F "vsub")
+ 		 ])
+ 
+ (define_int_attr isu    [
+ 		 (UNSPEC_VCADD90 "i") (UNSPEC_VCADD270 "i")
+ 		 (VABSQ_M_S "s")
+ 		 (VCADDQ_ROT270_M "i")
+ 		 (VCADDQ_ROT90_M "i")
+ 		 (VCLSQ_M_S "s")
+ 		 (VCLZQ_M_S "i")
+ 		 (VCLZQ_M_U "i")
+ 		 (VCMPCSQ_M_N_U "u")
+ 		 (VCMPCSQ_M_U "u")
+ 		 (VCMPEQQ_M_N_S "i")
+ 		 (VCMPEQQ_M_N_U "i")
+ 		 (VCMPEQQ_M_S "i")
+ 		 (VCMPEQQ_M_U "i")
+ 		 (VCMPGEQ_M_N_S "s")
+ 		 (VCMPGEQ_M_S "s")
+ 		 (VCMPGTQ_M_N_S "s")
+ 		 (VCMPGTQ_M_S "s")
+ 		 (VCMPHIQ_M_N_U "u")
+ 		 (VCMPHIQ_M_U "u")
+ 		 (VCMPLEQ_M_N_S "s")
+ 		 (VCMPLEQ_M_S "s")
+ 		 (VCMPLTQ_M_N_S "s")
+ 		 (VCMPLTQ_M_S "s")
+ 		 (VCMPNEQ_M_N_S "i")
+ 		 (VCMPNEQ_M_N_U "i")
+ 		 (VCMPNEQ_M_S "i")
+ 		 (VCMPNEQ_M_U "i")
+ 		 (VHCADDQ_ROT90_M_S "s") (VHCADDQ_ROT270_M_S "s")
+ 		 (VHCADDQ_ROT90_S "s") (VHCADDQ_ROT270_S "s")
+ 		 (VMOVNBQ_M_S "i") (VMOVNBQ_M_U "i")
+ 		 (VMOVNBQ_S "i") (VMOVNBQ_U "i")
+ 		 (VMOVNTQ_M_S "i") (VMOVNTQ_M_U "i")
+ 		 (VMOVNTQ_S "i") (VMOVNTQ_U "i")
+ 		 (VMULLBQ_INT_S "s") (VMULLBQ_INT_U "u")
+ 		 (VMULLTQ_INT_S "s") (VMULLTQ_INT_U "u")
+ 		 (VNEGQ_M_S "s")
+ 		 (VQABSQ_M_S "s")
+ 		 (VQMOVNBQ_M_S "s") (VQMOVNBQ_M_U "u")
+ 		 (VQMOVNBQ_S "s") (VQMOVNBQ_U "u")
+ 		 (VQMOVNTQ_M_S "s") (VQMOVNTQ_M_U "u")
+ 		 (VQMOVNTQ_S "s") (VQMOVNTQ_U "u")
+ 		 (VQMOVUNBQ_M_S "s")
+ 		 (VQMOVUNBQ_S "s")
+ 		 (VQMOVUNTQ_M_S "s")
+ 		 (VQMOVUNTQ_S "s")
+ 		 (VQNEGQ_M_S "s")
+ 		 (VQRSHRNBQ_M_N_S "s") (VQRSHRNBQ_M_N_U "u")
+ 		 (VQRSHRNBQ_N_S "s") (VQRSHRNBQ_N_U "u")
+ 		 (VQRSHRNTQ_M_N_S "s") (VQRSHRNTQ_M_N_U "u")
+ 		 (VQRSHRNTQ_N_S "s") (VQRSHRNTQ_N_U "u")
+ 		 (VQRSHRUNBQ_M_N_S "s")
+ 		 (VQRSHRUNBQ_N_S "s")
+ 		 (VQRSHRUNTQ_M_N_S "s")
+ 		 (VQRSHRUNTQ_N_S "s")
+ 		 (VQSHRNBQ_M_N_S "s") (VQSHRNBQ_M_N_U "u")
+ 		 (VQSHRNBQ_N_S "s") (VQSHRNBQ_N_U "u")
+ 		 (VQSHRNTQ_M_N_S "s") (VQSHRNTQ_M_N_U "u")
+ 		 (VQSHRNTQ_N_S "s") (VQSHRNTQ_N_U "u")
+ 		 (VQSHRUNBQ_M_N_S "s")
+ 		 (VQSHRUNBQ_N_S "s")
+ 		 (VQSHRUNTQ_M_N_S "s")
+ 		 (VQSHRUNTQ_N_S "s")
+ 		 (VRSHRNBQ_M_N_S "i") (VRSHRNBQ_M_N_U "i")
+ 		 (VRSHRNBQ_N_S "i") (VRSHRNBQ_N_U "i")
+ 		 (VRSHRNTQ_M_N_S "i") (VRSHRNTQ_M_N_U "i")
+ 		 (VRSHRNTQ_N_S "i") (VRSHRNTQ_N_U "i")
+ 		 (VSHRNBQ_M_N_S "i") (VSHRNBQ_M_N_U "i")
+ 		 (VSHRNBQ_N_S "i") (VSHRNBQ_N_U "i")
+ 		 (VSHRNTQ_M_N_S "i") (VSHRNTQ_M_N_U "i")
+ 		 (VSHRNTQ_N_S "i") (VSHRNTQ_N_U "i")
+ 		 ])
+ 
+ (define_int_attr mve_mnemo [
+ 		 (VABSQ_M_S "vabs") (VABSQ_M_F "vabs")
+ 		 (VNEGQ_M_S "vneg") (VNEGQ_M_F "vneg")
+ 		 (VRNDAQ_F "vrinta") (VRNDAQ_M_F "vrinta")
+ 		 (VRNDMQ_F "vrintm") (VRNDMQ_M_F "vrintm")
+ 		 (VRNDNQ_F "vrintn") (VRNDNQ_M_F "vrintn")
+ 		 (VRNDPQ_F "vrintp") (VRNDPQ_M_F "vrintp")
+ 		 (VRNDQ_F "vrintz") (VRNDQ_M_F "vrintz")
+ 		 (VRNDXQ_F "vrintx") (VRNDXQ_M_F "vrintx")
+ 		 ])
+ 
  ;; plus and minus are the only SHIFTABLE_OPS for which Thumb2 allows
  ;; a stack pointer operand.  The minus operation is a candidate for an rsub
  ;; and hence only plus is supported.
***************
*** 560,565 ****
--- 1544,1552 ----
  ;; vtbl<n> suffix for NEON vector modes.
  (define_mode_attr VTAB_n [(TI "2") (EI "3") (OI "4")])
  
+ ;; Suffix for x2 variants of vld1 and vst1.
+ (define_mode_attr VMEMX2_q [(TI "") (OI "q")])
+ 
  ;; fp16 or bf16 marker for 16-bit float modes.
  (define_mode_attr fporbf [(HF "fp16") (BF "bf16")])
  
***************
*** 1007,1012 ****
--- 1994,2010 ----
  
  (define_code_attr float_SUP [(unsigned_float "U") (float "S")])
  
+ ;; max/min for MVE
+ (define_code_attr max_min_su_str [(smax "vmax") (umax "vmax") (smin "vmin") (umin "vmin")])
+ 
+ (define_code_attr max_min_supf [
+ 		 (smax "s") (umax "u")
+ 		 (smin "s") (umin "u")
+ 		 ])
+ 
+ ;; Floating-point max/min for MVE
+ (define_code_attr max_min_f_str [(smax "vmaxnm") (smin "vminnm")])
+ 
  ;;----------------------------------------------------------------------------
  ;; Int attributes
  ;;----------------------------------------------------------------------------
***************
*** 1208,1213 ****
--- 2206,2219 ----
  
  (define_int_attr rot [(UNSPEC_VCADD90 "90")
  		      (UNSPEC_VCADD270 "270")
+ 		      (VCADDQ_ROT90_M_F "90")
+ 		      (VCADDQ_ROT90_M "90")
+ 		      (VCADDQ_ROT270_M_F "270")
+ 		      (VCADDQ_ROT270_M "270")
+ 		      (VHCADDQ_ROT90_S "90")
+ 		      (VHCADDQ_ROT270_S "270")
+ 		      (VHCADDQ_ROT90_M_S "90")
+ 		      (VHCADDQ_ROT270_M_S "270")
  		      (UNSPEC_VCMUL "0")
  		      (UNSPEC_VCMUL90 "90")
  		      (UNSPEC_VCMUL180 "180")
***************
*** 1215,1221 ****
  		      (UNSPEC_VCMLA "0")
  		      (UNSPEC_VCMLA90 "90")
  		      (UNSPEC_VCMLA180 "180")
! 		      (UNSPEC_VCMLA270 "270")])
  
  ;; The complex operations when performed on a real complex number require two
  ;; instructions to perform the operation. e.g. complex multiplication requires
--- 2221,2236 ----
  		      (UNSPEC_VCMLA "0")
  		      (UNSPEC_VCMLA90 "90")
  		      (UNSPEC_VCMLA180 "180")
! 		      (UNSPEC_VCMLA270 "270")
! 		      (VCMULQ_M_F "0")
! 		      (VCMULQ_ROT90_M_F "90")
! 		      (VCMULQ_ROT180_M_F "180")
! 		      (VCMULQ_ROT270_M_F "270")
! 		      (VCMLAQ_M_F "0")
! 		      (VCMLAQ_ROT90_M_F "90")
! 		      (VCMLAQ_ROT180_M_F "180")
! 		      (VCMLAQ_ROT270_M_F "270")
! 		      ])
  
  ;; The complex operations when performed on a real complex number require two
  ;; instructions to perform the operation. e.g. complex multiplication requires
***************
*** 1246,1251 ****
--- 2261,2274 ----
  
  (define_int_attr mve_rot [(UNSPEC_VCADD90 "_rot90")
  			  (UNSPEC_VCADD270 "_rot270")
+ 			  (VCADDQ_ROT90_M_F "_rot90")
+ 			  (VCADDQ_ROT90_M "_rot90")
+ 			  (VCADDQ_ROT270_M_F "_rot270")
+ 			  (VCADDQ_ROT270_M "_rot270")
+ 			  (VHCADDQ_ROT90_S "_rot90")
+ 			  (VHCADDQ_ROT270_S "_rot270")
+ 			  (VHCADDQ_ROT90_M_S "_rot90")
+ 			  (VHCADDQ_ROT270_M_S "_rot270")
  			  (UNSPEC_VCMLA "")
  			  (UNSPEC_VCMLA90 "_rot90")
  			  (UNSPEC_VCMLA180 "_rot180")
***************
*** 1253,1262 ****
  			  (UNSPEC_VCMUL "")
  			  (UNSPEC_VCMUL90 "_rot90")
  			  (UNSPEC_VCMUL180 "_rot180")
! 			  (UNSPEC_VCMUL270 "_rot270")])
! 
! (define_int_iterator VCMUL [UNSPEC_VCMUL UNSPEC_VCMUL90
! 			    UNSPEC_VCMUL180 UNSPEC_VCMUL270])
  
  (define_int_attr fcmac1 [(UNSPEC_VCMLA "a") (UNSPEC_VCMLA_CONJ "a")
  			 (UNSPEC_VCMLA180 "s") (UNSPEC_VCMLA180_CONJ "s")])
--- 2276,2290 ----
  			  (UNSPEC_VCMUL "")
  			  (UNSPEC_VCMUL90 "_rot90")
  			  (UNSPEC_VCMUL180 "_rot180")
! 			  (UNSPEC_VCMUL270 "_rot270")
! 			  (VCMULQ_M_F "")
! 			  (VCMULQ_ROT90_M_F "_rot90")
! 			  (VCMULQ_ROT180_M_F "_rot180")
! 			  (VCMULQ_ROT270_M_F "_rot270")
! 			  (VCMLAQ_M_F "")
! 			  (VCMLAQ_ROT90_M_F "_rot90")
! 			  (VCMLAQ_ROT180_M_F "_rot180")
! 			  (VCMLAQ_ROT270_M_F "_rot270")])
  
  (define_int_attr fcmac1 [(UNSPEC_VCMLA "a") (UNSPEC_VCMLA_CONJ "a")
  			 (UNSPEC_VCMLA180 "s") (UNSPEC_VCMLA180_CONJ "s")])
***************
*** 1321,1326 ****
--- 2349,2358 ----
  		       (VMLADAVQ_U "u") (VMULHQ_S "s") (VMULHQ_U "u")
  		       (VMULLBQ_INT_S "s") (VMULLBQ_INT_U "u") (VQADDQ_S "s")
  		       (VMULLTQ_INT_S "s") (VMULLTQ_INT_U "u") (VQADDQ_U "u")
+ 		       (VMULLBQ_POLY_P "p")
+ 		       (VMULLTQ_POLY_P "p")
+ 		       (VMULLBQ_POLY_M_P "p")
+ 		       (VMULLTQ_POLY_M_P "p")
  		       (VMULQ_N_S "s") (VMULQ_N_U "u") (VMULQ_S "s")
  		       (VMULQ_U "u")
  		       (VQADDQ_N_S "s") (VQADDQ_N_U "u")
***************
*** 1337,1343 ****
  		       (VSUBQ_S "s") (VSUBQ_U "u") (VADDVAQ_S "s")
  		       (VADDVAQ_U "u") (VADDLVAQ_S "s") (VADDLVAQ_U "u")
  		       (VBICQ_N_S "s") (VBICQ_N_U "u") (VMLALDAVQ_U "u")
! 		       (VMLALDAVQ_S "s") (VMLALDAVXQ_U "u") (VMLALDAVXQ_S "s")
  		       (VMOVNBQ_U "u") (VMOVNBQ_S "s") (VMOVNTQ_U "u")
  		       (VMOVNTQ_S "s") (VORRQ_N_S "s") (VORRQ_N_U "u")
  		       (VQMOVNBQ_U "u") (VQMOVNBQ_S "s") (VQMOVNTQ_S "s")
--- 2369,2375 ----
  		       (VSUBQ_S "s") (VSUBQ_U "u") (VADDVAQ_S "s")
  		       (VADDVAQ_U "u") (VADDLVAQ_S "s") (VADDLVAQ_U "u")
  		       (VBICQ_N_S "s") (VBICQ_N_U "u") (VMLALDAVQ_U "u")
! 		       (VMLALDAVQ_S "s") (VMLALDAVXQ_S "s")
  		       (VMOVNBQ_U "u") (VMOVNBQ_S "s") (VMOVNTQ_U "u")
  		       (VMOVNTQ_S "s") (VORRQ_N_S "s") (VORRQ_N_U "u")
  		       (VQMOVNBQ_U "u") (VQMOVNBQ_S "s") (VQMOVNTQ_S "s")
***************
*** 1379,1386 ****
  		       (VREV16Q_M_S "s") (VREV16Q_M_U "u")
  		       (VQRSHRNTQ_N_U "u") (VMOVNTQ_M_U "u") (VMOVLBQ_M_U "u")
  		       (VMLALDAVAQ_U "u") (VQSHRNBQ_N_U "u") (VSHRNBQ_N_U "u")
! 		       (VRSHRNBQ_N_U "u") (VMLALDAVXQ_P_U "u")
! 		       (VMVNQ_M_N_U "u") (VQSHRNTQ_N_U "u") (VMLALDAVAXQ_U "u")
  		       (VQMOVNTQ_M_U "u") (VSHRNTQ_N_U "u") (VCVTMQ_M_S "s")
  		       (VCVTMQ_M_U "u") (VCVTNQ_M_S "s") (VCVTNQ_M_U "u")
  		       (VCVTPQ_M_S "s") (VCVTPQ_M_U "u") (VADDLVAQ_P_S "s")
--- 2411,2418 ----
  		       (VREV16Q_M_S "s") (VREV16Q_M_U "u")
  		       (VQRSHRNTQ_N_U "u") (VMOVNTQ_M_U "u") (VMOVLBQ_M_U "u")
  		       (VMLALDAVAQ_U "u") (VQSHRNBQ_N_U "u") (VSHRNBQ_N_U "u")
! 		       (VRSHRNBQ_N_U "u")
! 		       (VMVNQ_M_N_U "u") (VQSHRNTQ_N_U "u")
  		       (VQMOVNTQ_M_U "u") (VSHRNTQ_N_U "u") (VCVTMQ_M_S "s")
  		       (VCVTMQ_M_U "u") (VCVTNQ_M_S "s") (VCVTNQ_M_U "u")
  		       (VCVTPQ_M_S "s") (VCVTPQ_M_U "u") (VADDLVAQ_P_S "s")
***************
*** 1394,1400 ****
  		       (VCVTQ_M_N_TO_F_U "u") (VADDQ_M_N_U "u")
  		       (VSHLQ_M_N_S "s") (VMAXQ_M_U "u") (VHSUBQ_M_N_U "u")
  		       (VMULQ_M_N_S "s") (VQSHLQ_M_U "u") (VRHADDQ_M_S "s")
! 		       (VEORQ_M_U "u") (VSHRQ_M_N_U "u") (VCADDQ_ROT90_M_U "u")
  		       (VMLADAVAQ_P_U "u") (VEORQ_M_S "s") (VBRSRQ_M_N_S "s")
  		       (VMULQ_M_U "u") (VQRDMLAHQ_M_N_S "s") (VHSUBQ_M_N_S "s")
  		       (VQRSHLQ_M_S "s") (VMULQ_M_N_U "u")
--- 2426,2432 ----
  		       (VCVTQ_M_N_TO_F_U "u") (VADDQ_M_N_U "u")
  		       (VSHLQ_M_N_S "s") (VMAXQ_M_U "u") (VHSUBQ_M_N_U "u")
  		       (VMULQ_M_N_S "s") (VQSHLQ_M_U "u") (VRHADDQ_M_S "s")
! 		       (VEORQ_M_U "u") (VSHRQ_M_N_U "u")
  		       (VMLADAVAQ_P_U "u") (VEORQ_M_S "s") (VBRSRQ_M_N_S "s")
  		       (VMULQ_M_U "u") (VQRDMLAHQ_M_N_S "s") (VHSUBQ_M_N_S "s")
  		       (VQRSHLQ_M_S "s") (VMULQ_M_N_U "u")
***************
*** 1403,1419 ****
  		       (VMULLBQ_INT_M_U "u") (VSHLQ_M_N_U "u") (VQSUBQ_M_U "u")
  		       (VQDMLASHQ_M_N_S "s")
  		       (VQRDMLASHQ_M_N_U "u") (VRSHRQ_M_N_S "s")
! 		       (VORNQ_M_S "s") (VCADDQ_ROT270_M_S "s") (VRHADDQ_M_U "u")
  		       (VRSHRQ_M_N_U "u") (VMLASQ_M_N_U "u") (VHSUBQ_M_U "u")
  		       (VQSUBQ_M_N_S "s") (VMULLTQ_INT_M_S "s")
  		       (VORRQ_M_S "s") (VQDMLAHQ_M_N_U "u") (VRSHLQ_M_S "s")
  		       (VHADDQ_M_U "u") (VHADDQ_M_N_S "s") (VMULLTQ_INT_M_U "u")
  		       (VORRQ_M_U "u") (VHADDQ_M_S "s") (VHADDQ_M_N_U "u")
  		       (VQDMLAHQ_M_N_S "s") (VMAXQ_M_S "s") (VORNQ_M_U "u")
! 		       (VCADDQ_ROT270_M_U "u") (VQADDQ_M_U "u")
  		       (VQRDMLASHQ_M_N_S "s") (VBICQ_M_U "u") (VMINQ_M_U "u")
  		       (VSUBQ_M_N_S "s") (VMULLBQ_INT_M_S "s") (VQSUBQ_M_S "s")
! 		       (VCADDQ_ROT90_M_S "s") (VRMULHQ_M_S "s") (VANDQ_M_U "u")
  		       (VMULHQ_M_S "s") (VADDQ_M_S "s") (VQRDMLAHQ_M_N_U "u")
  		       (VMLASQ_M_N_S "s") (VHSUBQ_M_S "s") (VRMULHQ_M_U "u")
  		       (VQADDQ_M_N_S "s") (VSHRQ_M_N_S "s") (VANDQ_M_S "s")
--- 2435,2451 ----
  		       (VMULLBQ_INT_M_U "u") (VSHLQ_M_N_U "u") (VQSUBQ_M_U "u")
  		       (VQDMLASHQ_M_N_S "s")
  		       (VQRDMLASHQ_M_N_U "u") (VRSHRQ_M_N_S "s")
! 		       (VORNQ_M_S "s") (VCADDQ_ROT270_M "") (VRHADDQ_M_U "u")
  		       (VRSHRQ_M_N_U "u") (VMLASQ_M_N_U "u") (VHSUBQ_M_U "u")
  		       (VQSUBQ_M_N_S "s") (VMULLTQ_INT_M_S "s")
  		       (VORRQ_M_S "s") (VQDMLAHQ_M_N_U "u") (VRSHLQ_M_S "s")
  		       (VHADDQ_M_U "u") (VHADDQ_M_N_S "s") (VMULLTQ_INT_M_U "u")
  		       (VORRQ_M_U "u") (VHADDQ_M_S "s") (VHADDQ_M_N_U "u")
  		       (VQDMLAHQ_M_N_S "s") (VMAXQ_M_S "s") (VORNQ_M_U "u")
! 		       (VQADDQ_M_U "u")
  		       (VQRDMLASHQ_M_N_S "s") (VBICQ_M_U "u") (VMINQ_M_U "u")
  		       (VSUBQ_M_N_S "s") (VMULLBQ_INT_M_S "s") (VQSUBQ_M_S "s")
! 		       (VCADDQ_ROT90_M "") (VRMULHQ_M_S "s") (VANDQ_M_U "u")
  		       (VMULHQ_M_S "s") (VADDQ_M_S "s") (VQRDMLAHQ_M_N_U "u")
  		       (VMLASQ_M_N_S "s") (VHSUBQ_M_S "s") (VRMULHQ_M_U "u")
  		       (VQADDQ_M_N_S "s") (VSHRQ_M_N_S "s") (VANDQ_M_S "s")
***************
*** 1463,1469 ****
  		       (VADCIQ_U "u") (VADCIQ_M_U "u") (VADCIQ_S "s")
  		       (VADCIQ_M_S "s") (SQRSHRL_64 "64") (SQRSHRL_48 "48")
  		       (UQRSHLL_64 "64") (UQRSHLL_48 "48") (VSHLCQ_M_S "s")
! 		       (VSHLCQ_M_U "u")])
  ;; Both kinds of return insn.
  (define_code_iterator RETURNS [return simple_return])
  (define_code_attr return_str [(return "") (simple_return "simple_")])
--- 2495,2630 ----
  		       (VADCIQ_U "u") (VADCIQ_M_U "u") (VADCIQ_S "s")
  		       (VADCIQ_M_S "s") (SQRSHRL_64 "64") (SQRSHRL_48 "48")
  		       (UQRSHLL_64 "64") (UQRSHLL_48 "48") (VSHLCQ_M_S "s")
! 		       (VSHLCQ_M_U "u")
! 		       (VQDMLADHQ_M_S "s")
! 		       (VQDMLADHXQ_M_S "s")
! 		       (VQDMLSDHQ_M_S "s")
! 		       (VQDMLSDHXQ_M_S "s")
! 		       (VQDMULHQ_M_S "s")
! 		       (VQRDMLADHQ_M_S "s")
! 		       (VQRDMLADHXQ_M_S "s")
! 		       (VQRDMLSDHQ_M_S "s")
! 		       (VQRDMLSDHXQ_M_S "s")
! 		       (VQRDMULHQ_M_S "s")
! 		       (VQDMULHQ_N_S "s")
! 		       (VQRDMULHQ_N_S "s")
! 		       (VQDMLAHQ_M_N_S "s")
! 		       (VQDMLASHQ_M_N_S "s")
! 		       (VQRDMLAHQ_M_N_S "s")
! 		       (VQRDMLASHQ_M_N_S "s")
! 		       (VQDMULHQ_M_N_S "s")
! 		       (VQRDMULHQ_M_N_S "s")
! 		       (VQDMULHQ_S "s")
! 		       (VQRDMULHQ_S "s")
! 		       (VQRSHRUNBQ_M_N_S "s")
! 		       (VQRSHRUNBQ_N_S "s")
! 		       (VQRSHRUNTQ_M_N_S "s")
! 		       (VQRSHRUNTQ_N_S "s")
! 		       (VQSHRUNBQ_M_N_S "s")
! 		       (VQSHRUNBQ_N_S "s")
! 		       (VQSHRUNTQ_M_N_S "s")
! 		       (VQSHRUNTQ_N_S "s")
! 		       (VABSQ_M_S "s")
! 		       (VCLSQ_M_S "s")
! 		       (VCLZQ_M_S "s") (VCLZQ_M_U "u")
! 		       (VNEGQ_M_S "s")
! 		       (VQABSQ_M_S "s")
! 		       (VQNEGQ_M_S "s")
! 		       (VCLSQ_S "s")
! 		       (VQABSQ_S "s")
! 		       (VQNEGQ_S "s")
! 		       (VQMOVUNBQ_M_S "s")
! 		       (VQMOVUNBQ_S "s")
! 		       (VQMOVUNTQ_M_S "s")
! 		       (VQMOVUNTQ_S "s")
! 		       (VMAXAVQ_S "s")
! 		       (VMAXAVQ_P_S "s")
! 		       (VMINAVQ_S "s")
! 		       (VMINAVQ_P_S "s")
! 		       (VMAXAQ_S "s")
! 		       (VMAXAQ_M_S "s")
! 		       (VMINAQ_S "s")
! 		       (VMINAQ_M_S "s")
! 		       (VCMPCSQ_M_N_U "u")
! 		       (VCMPCSQ_M_U "u")
! 		       (VCMPEQQ_M_N_S "s") (VCMPEQQ_M_N_U "u")
! 		       (VCMPEQQ_M_S "s") (VCMPEQQ_M_U "u")
! 		       (VCMPGEQ_M_N_S "s")
! 		       (VCMPGEQ_M_S "s")
! 		       (VCMPGTQ_M_N_S "s")
! 		       (VCMPGTQ_M_S "s")
! 		       (VCMPHIQ_M_N_U "u")
! 		       (VCMPHIQ_M_U "u")
! 		       (VCMPLEQ_M_N_S "s")
! 		       (VCMPLEQ_M_S "s")
! 		       (VCMPLTQ_M_N_S "s")
! 		       (VCMPLTQ_M_S "s")
! 		       (VCMPNEQ_M_N_S "s") (VCMPNEQ_M_N_U "u")
! 		       (VCMPNEQ_M_S "s") (VCMPNEQ_M_U "u")
! 		       (VMLADAVAXQ_P_S "s")
! 		       (VMLADAVAXQ_S "s")
! 		       (VMLADAVXQ_P_S "s")
! 		       (VMLADAVXQ_S "s")
! 		       (VMLSDAVAQ_P_S "s")
! 		       (VMLSDAVAQ_S "s")
! 		       (VMLSDAVAXQ_P_S "s")
! 		       (VMLSDAVAXQ_S "s")
! 		       (VMLSDAVQ_P_S "s")
! 		       (VMLSDAVQ_S "s")
! 		       (VMLSDAVXQ_P_S "s")
! 		       (VMLSDAVXQ_S "s")
! 		       (VMLALDAVXQ_S "s")
! 		       (VMLSLDAVQ_S "s")
! 		       (VMLSLDAVXQ_S "s")
! 		       (VMLALDAVXQ_P_S "s")
! 		       (VMLSLDAVQ_P_S "s")
! 		       (VMLSLDAVXQ_P_S "s")
! 		       (VRMLALDAVHXQ_P_S "s")
! 		       (VRMLALDAVHXQ_S "s")
! 		       (VRMLSLDAVHQ_P_S "s")
! 		       (VRMLSLDAVHQ_S "s")
! 		       (VRMLSLDAVHXQ_P_S "s")
! 		       (VRMLSLDAVHXQ_S "s")
! 		       (VMLALDAVAXQ_P_S "s")
! 		       (VMLALDAVAXQ_S "s")
! 		       (VMLSLDAVAQ_P_S "s")
! 		       (VMLSLDAVAQ_S "s")
! 		       (VMLSLDAVAXQ_P_S "s")
! 		       (VMLSLDAVAXQ_S "s")
! 		       (VQDMLADHQ_S "s")
! 		       (VQDMLADHXQ_S "s")
! 		       (VQDMLSDHQ_S "s")
! 		       (VQDMLSDHXQ_S "s")
! 		       (VQRDMLADHQ_S "s")
! 		       (VQRDMLADHXQ_S "s")
! 		       (VQRDMLSDHQ_S "s")
! 		       (VQRDMLSDHXQ_S "s")
! 		       (VQDMLAHQ_N_S "s")
! 		       (VQDMLASHQ_N_S "s")
! 		       (VQRDMLAHQ_N_S "s")
! 		       (VQRDMLASHQ_N_S "s")
! 		       (VQDMULLBQ_S "s")
! 		       (VQDMULLBQ_M_S "s")
! 		       (VQDMULLBQ_M_N_S "s")
! 		       (VQDMULLBQ_N_S "s")
! 		       (VQDMULLTQ_S "s")
! 		       (VQDMULLTQ_M_S "s")
! 		       (VQDMULLTQ_M_N_S "s")
! 		       (VQDMULLTQ_N_S "s")
! 		       (VRMLALDAVHAXQ_P_S "s")
! 		       (VRMLALDAVHAXQ_S "s")
! 		       (VRMLSLDAVHAQ_P_S "s")
! 		       (VRMLSLDAVHAQ_S "s")
! 		       (VRMLSLDAVHAXQ_P_S "s")
! 		       (VRMLSLDAVHAXQ_S "s")
! 		       (VRMLALDAVHAQ_P_S "s") (VRMLALDAVHAQ_P_U "u")
! 		       (VQSHLUQ_M_N_S "s")
! 		       (VQSHLUQ_N_S "s")
! 		       (VHCADDQ_ROT90_M_S "s") (VHCADDQ_ROT270_M_S "s")
! 		       (VHCADDQ_ROT90_S "s") (VHCADDQ_ROT270_S "s")
! 		       (UNSPEC_VCADD90 "") (UNSPEC_VCADD270 "")
! 		       ])
! 
  ;; Both kinds of return insn.
  (define_code_iterator RETURNS [return simple_return])
  (define_code_attr return_str [(return "") (simple_return "simple_")])
***************
*** 1549,1556 ****
  (define_int_iterator VDUPQ_N [VDUPQ_N_U VDUPQ_N_S])
  (define_int_iterator VADDVQ [VADDVQ_U VADDVQ_S])
  (define_int_iterator VREV32Q [VREV32Q_U VREV32Q_S])
! (define_int_iterator VMOVLBQ [VMOVLBQ_S VMOVLBQ_U])
! (define_int_iterator VMOVLTQ [VMOVLTQ_U VMOVLTQ_S])
  (define_int_iterator VCVTPQ [VCVTPQ_S VCVTPQ_U])
  (define_int_iterator VCVTNQ [VCVTNQ_S VCVTNQ_U])
  (define_int_iterator VCVTMQ [VCVTMQ_S VCVTMQ_U])
--- 2710,2716 ----
  (define_int_iterator VDUPQ_N [VDUPQ_N_U VDUPQ_N_S])
  (define_int_iterator VADDVQ [VADDVQ_U VADDVQ_S])
  (define_int_iterator VREV32Q [VREV32Q_U VREV32Q_S])
! (define_int_iterator VMOVLxQ [VMOVLBQ_S VMOVLBQ_U VMOVLTQ_U VMOVLTQ_S])
  (define_int_iterator VCVTPQ [VCVTPQ_S VCVTPQ_U])
  (define_int_iterator VCVTNQ [VCVTNQ_S VCVTNQ_U])
  (define_int_iterator VCVTMQ [VCVTMQ_S VCVTMQ_U])
***************
*** 1576,1583 ****
  (define_int_iterator VMINVQ [VMINVQ_U VMINVQ_S])
  (define_int_iterator VMLADAVQ [VMLADAVQ_U VMLADAVQ_S])
  (define_int_iterator VMULHQ [VMULHQ_S VMULHQ_U])
! (define_int_iterator VMULLBQ_INT [VMULLBQ_INT_U VMULLBQ_INT_S])
! (define_int_iterator VMULLTQ_INT [VMULLTQ_INT_U VMULLTQ_INT_S])
  (define_int_iterator VMULQ [VMULQ_U VMULQ_S])
  (define_int_iterator VMULQ_N [VMULQ_N_U VMULQ_N_S])
  (define_int_iterator VQADDQ [VQADDQ_U VQADDQ_S])
--- 2736,2743 ----
  (define_int_iterator VMINVQ [VMINVQ_U VMINVQ_S])
  (define_int_iterator VMLADAVQ [VMLADAVQ_U VMLADAVQ_S])
  (define_int_iterator VMULHQ [VMULHQ_S VMULHQ_U])
! (define_int_iterator VMULLxQ_INT [VMULLBQ_INT_U VMULLBQ_INT_S VMULLTQ_INT_U VMULLTQ_INT_S])
! (define_int_iterator VMULLxQ_POLY [VMULLBQ_POLY_P VMULLTQ_POLY_P])
  (define_int_iterator VMULQ [VMULQ_U VMULQ_S])
  (define_int_iterator VMULQ_N [VMULQ_N_U VMULQ_N_S])
  (define_int_iterator VQADDQ [VQADDQ_U VQADDQ_S])
***************
*** 1601,1614 ****
  (define_int_iterator VADDLVAQ [VADDLVAQ_S VADDLVAQ_U])
  (define_int_iterator VBICQ_N [VBICQ_N_S VBICQ_N_U])
  (define_int_iterator VMLALDAVQ [VMLALDAVQ_U VMLALDAVQ_S])
- (define_int_iterator VMLALDAVXQ [VMLALDAVXQ_U VMLALDAVXQ_S])
  (define_int_iterator VMOVNBQ [VMOVNBQ_U VMOVNBQ_S])
  (define_int_iterator VMOVNTQ [VMOVNTQ_S VMOVNTQ_U])
  (define_int_iterator VORRQ_N [VORRQ_N_U VORRQ_N_S])
  (define_int_iterator VQMOVNBQ [VQMOVNBQ_U VQMOVNBQ_S])
  (define_int_iterator VQMOVNTQ [VQMOVNTQ_U VQMOVNTQ_S])
! (define_int_iterator VSHLLBQ_N [VSHLLBQ_N_S VSHLLBQ_N_U])
! (define_int_iterator VSHLLTQ_N [VSHLLTQ_N_U VSHLLTQ_N_S])
  (define_int_iterator VRMLALDAVHQ [VRMLALDAVHQ_U VRMLALDAVHQ_S])
  (define_int_iterator VBICQ_M_N [VBICQ_M_N_S VBICQ_M_N_U])
  (define_int_iterator VCVTAQ_M [VCVTAQ_M_S VCVTAQ_M_U])
--- 2761,2772 ----
  (define_int_iterator VADDLVAQ [VADDLVAQ_S VADDLVAQ_U])
  (define_int_iterator VBICQ_N [VBICQ_N_S VBICQ_N_U])
  (define_int_iterator VMLALDAVQ [VMLALDAVQ_U VMLALDAVQ_S])
  (define_int_iterator VMOVNBQ [VMOVNBQ_U VMOVNBQ_S])
  (define_int_iterator VMOVNTQ [VMOVNTQ_S VMOVNTQ_U])
  (define_int_iterator VORRQ_N [VORRQ_N_U VORRQ_N_S])
  (define_int_iterator VQMOVNBQ [VQMOVNBQ_U VQMOVNBQ_S])
  (define_int_iterator VQMOVNTQ [VQMOVNTQ_U VQMOVNTQ_S])
! (define_int_iterator VSHLLxQ_N [VSHLLBQ_N_S VSHLLBQ_N_U VSHLLTQ_N_S VSHLLTQ_N_U])
  (define_int_iterator VRMLALDAVHQ [VRMLALDAVHQ_U VRMLALDAVHQ_S])
  (define_int_iterator VBICQ_M_N [VBICQ_M_N_S VBICQ_M_N_U])
  (define_int_iterator VCVTAQ_M [VCVTAQ_M_S VCVTAQ_M_U])
***************
*** 1645,1651 ****
  (define_int_iterator VSRIQ_N [VSRIQ_N_S VSRIQ_N_U])
  (define_int_iterator VMLALDAVQ_P [VMLALDAVQ_P_U VMLALDAVQ_P_S])
  (define_int_iterator VQMOVNBQ_M [VQMOVNBQ_M_S VQMOVNBQ_M_U])
! (define_int_iterator VMOVLTQ_M [VMOVLTQ_M_U VMOVLTQ_M_S])
  (define_int_iterator VMOVNBQ_M [VMOVNBQ_M_U VMOVNBQ_M_S])
  (define_int_iterator VRSHRNTQ_N [VRSHRNTQ_N_U VRSHRNTQ_N_S])
  (define_int_iterator VORRQ_M_N [VORRQ_M_N_S VORRQ_M_N_U])
--- 2803,2809 ----
  (define_int_iterator VSRIQ_N [VSRIQ_N_S VSRIQ_N_U])
  (define_int_iterator VMLALDAVQ_P [VMLALDAVQ_P_U VMLALDAVQ_P_S])
  (define_int_iterator VQMOVNBQ_M [VQMOVNBQ_M_S VQMOVNBQ_M_U])
! (define_int_iterator VMOVLxQ_M [VMOVLBQ_M_U VMOVLBQ_M_S VMOVLTQ_M_U VMOVLTQ_M_S])
  (define_int_iterator VMOVNBQ_M [VMOVNBQ_M_U VMOVNBQ_M_S])
  (define_int_iterator VRSHRNTQ_N [VRSHRNTQ_N_U VRSHRNTQ_N_S])
  (define_int_iterator VORRQ_M_N [VORRQ_M_N_S VORRQ_M_N_U])
***************
*** 1653,1668 ****
  (define_int_iterator VREV16Q_M [VREV16Q_M_S VREV16Q_M_U])
  (define_int_iterator VQRSHRNTQ_N [VQRSHRNTQ_N_U VQRSHRNTQ_N_S])
  (define_int_iterator VMOVNTQ_M [VMOVNTQ_M_U VMOVNTQ_M_S])
- (define_int_iterator VMOVLBQ_M [VMOVLBQ_M_U VMOVLBQ_M_S])
  (define_int_iterator VMLALDAVAQ [VMLALDAVAQ_S VMLALDAVAQ_U])
  (define_int_iterator VQSHRNBQ_N [VQSHRNBQ_N_U VQSHRNBQ_N_S])
  (define_int_iterator VSHRNBQ_N [VSHRNBQ_N_U VSHRNBQ_N_S])
  (define_int_iterator VRSHRNBQ_N [VRSHRNBQ_N_S VRSHRNBQ_N_U])
- (define_int_iterator VMLALDAVXQ_P [VMLALDAVXQ_P_U VMLALDAVXQ_P_S])
  (define_int_iterator VQMOVNTQ_M [VQMOVNTQ_M_U VQMOVNTQ_M_S])
  (define_int_iterator VMVNQ_M_N [VMVNQ_M_N_U VMVNQ_M_N_S])
  (define_int_iterator VQSHRNTQ_N [VQSHRNTQ_N_U VQSHRNTQ_N_S])
- (define_int_iterator VMLALDAVAXQ [VMLALDAVAXQ_S VMLALDAVAXQ_U])
  (define_int_iterator VSHRNTQ_N [VSHRNTQ_N_S VSHRNTQ_N_U])
  (define_int_iterator VCVTMQ_M [VCVTMQ_M_S VCVTMQ_M_U])
  (define_int_iterator VCVTNQ_M [VCVTNQ_M_S VCVTNQ_M_U])
--- 2811,2823 ----
***************
*** 1680,1686 ****
  (define_int_iterator VSLIQ_M_N [VSLIQ_M_N_U VSLIQ_M_N_S])
  (define_int_iterator VRSHLQ_M [VRSHLQ_M_S VRSHLQ_M_U])
  (define_int_iterator VMINQ_M [VMINQ_M_S VMINQ_M_U])
! (define_int_iterator VMULLBQ_INT_M [VMULLBQ_INT_M_U VMULLBQ_INT_M_S])
  (define_int_iterator VMULHQ_M [VMULHQ_M_S VMULHQ_M_U])
  (define_int_iterator VMULQ_M [VMULQ_M_S VMULQ_M_U])
  (define_int_iterator VHSUBQ_M_N [VHSUBQ_M_N_S VHSUBQ_M_N_U])
--- 2835,2842 ----
  (define_int_iterator VSLIQ_M_N [VSLIQ_M_N_U VSLIQ_M_N_S])
  (define_int_iterator VRSHLQ_M [VRSHLQ_M_S VRSHLQ_M_U])
  (define_int_iterator VMINQ_M [VMINQ_M_S VMINQ_M_U])
! (define_int_iterator VMULLxQ_INT_M [VMULLBQ_INT_M_U VMULLBQ_INT_M_S VMULLTQ_INT_M_U VMULLTQ_INT_M_S])
! (define_int_iterator VMULLxQ_POLY_M [VMULLBQ_POLY_M_P VMULLTQ_POLY_M_P])
  (define_int_iterator VMULHQ_M [VMULHQ_M_S VMULHQ_M_U])
  (define_int_iterator VMULQ_M [VMULQ_M_S VMULQ_M_U])
  (define_int_iterator VHSUBQ_M_N [VHSUBQ_M_N_S VHSUBQ_M_N_U])
***************
*** 1697,1703 ****
  (define_int_iterator VANDQ_M [VANDQ_M_U VANDQ_M_S])
  (define_int_iterator VBICQ_M [VBICQ_M_U VBICQ_M_S])
  (define_int_iterator VSHLQ_M_N [VSHLQ_M_N_S VSHLQ_M_N_U])
! (define_int_iterator VCADDQ_ROT270_M [VCADDQ_ROT270_M_U VCADDQ_ROT270_M_S])
  (define_int_iterator VQRSHLQ_M [VQRSHLQ_M_U VQRSHLQ_M_S])
  (define_int_iterator VQADDQ_M_N [VQADDQ_M_N_U VQADDQ_M_N_S])
  (define_int_iterator VADDQ_M_N [VADDQ_M_N_S VADDQ_M_N_U])
--- 2853,2861 ----
  (define_int_iterator VANDQ_M [VANDQ_M_U VANDQ_M_S])
  (define_int_iterator VBICQ_M [VBICQ_M_U VBICQ_M_S])
  (define_int_iterator VSHLQ_M_N [VSHLQ_M_N_S VSHLQ_M_N_U])
! (define_int_iterator VCADDQ_M_F [VCADDQ_ROT90_M_F VCADDQ_ROT270_M_F])
! (define_int_iterator VxCADDQ [UNSPEC_VCADD90 UNSPEC_VCADD270 VHCADDQ_ROT90_S VHCADDQ_ROT270_S])
! (define_int_iterator VxCADDQ_M [VHCADDQ_ROT90_M_S VHCADDQ_ROT270_M_S VCADDQ_ROT90_M VCADDQ_ROT270_M])
  (define_int_iterator VQRSHLQ_M [VQRSHLQ_M_U VQRSHLQ_M_S])
  (define_int_iterator VQADDQ_M_N [VQADDQ_M_N_U VQADDQ_M_N_S])
  (define_int_iterator VADDQ_M_N [VADDQ_M_N_S VADDQ_M_N_U])
***************
*** 1707,1714 ****
  (define_int_iterator VMLADAVAQ_P [VMLADAVAQ_P_U VMLADAVAQ_P_S])
  (define_int_iterator VBRSRQ_M_N [VBRSRQ_M_N_U VBRSRQ_M_N_S])
  (define_int_iterator VMULQ_M_N [VMULQ_M_N_U VMULQ_M_N_S])
- (define_int_iterator VCADDQ_ROT90_M [VCADDQ_ROT90_M_U VCADDQ_ROT90_M_S])
- (define_int_iterator VMULLTQ_INT_M [VMULLTQ_INT_M_S VMULLTQ_INT_M_U])
  (define_int_iterator VEORQ_M [VEORQ_M_S VEORQ_M_U])
  (define_int_iterator VSHRQ_M_N [VSHRQ_M_N_S VSHRQ_M_N_U])
  (define_int_iterator VSUBQ_M_N [VSUBQ_M_N_S VSUBQ_M_N_U])
--- 2865,2870 ----
***************
*** 1724,1731 ****
  (define_int_iterator VQSHRNTQ_M_N [VQSHRNTQ_M_N_S VQSHRNTQ_M_N_U])
  (define_int_iterator VRSHRNBQ_M_N [VRSHRNBQ_M_N_U VRSHRNBQ_M_N_S])
  (define_int_iterator VRSHRNTQ_M_N [VRSHRNTQ_M_N_U VRSHRNTQ_M_N_S])
! (define_int_iterator VSHLLBQ_M_N [VSHLLBQ_M_N_U VSHLLBQ_M_N_S])
! (define_int_iterator VSHLLTQ_M_N [VSHLLTQ_M_N_U VSHLLTQ_M_N_S])
  (define_int_iterator VSHRNBQ_M_N [VSHRNBQ_M_N_S VSHRNBQ_M_N_U])
  (define_int_iterator VSHRNTQ_M_N [VSHRNTQ_M_N_S VSHRNTQ_M_N_U])
  (define_int_iterator VSTRWSBQ [VSTRWQSB_S VSTRWQSB_U])
--- 2880,2886 ----
  (define_int_iterator VQSHRNTQ_M_N [VQSHRNTQ_M_N_S VQSHRNTQ_M_N_U])
  (define_int_iterator VRSHRNBQ_M_N [VRSHRNBQ_M_N_U VRSHRNBQ_M_N_S])
  (define_int_iterator VRSHRNTQ_M_N [VRSHRNTQ_M_N_U VRSHRNTQ_M_N_S])
! (define_int_iterator VSHLLxQ_M_N [VSHLLBQ_M_N_U VSHLLBQ_M_N_S VSHLLTQ_M_N_U VSHLLTQ_M_N_S])
  (define_int_iterator VSHRNBQ_M_N [VSHRNBQ_M_N_S VSHRNBQ_M_N_U])
  (define_int_iterator VSHRNTQ_M_N [VSHRNTQ_M_N_S VSHRNTQ_M_N_U])
  (define_int_iterator VSTRWSBQ [VSTRWQSB_S VSTRWQSB_U])
***************
*** 1769,1774 ****
--- 2924,2931 ----
  (define_int_iterator UQRSHLLQ [UQRSHLL_64 UQRSHLL_48])
  (define_int_iterator SQRSHRLQ [SQRSHRL_64 SQRSHRL_48])
  (define_int_iterator VSHLCQ_M [VSHLCQ_M_S VSHLCQ_M_U])
+ (define_int_iterator VQSHLUQ_M_N [VQSHLUQ_M_N_S])
+ (define_int_iterator VQSHLUQ_N [VQSHLUQ_N_S])
  
  ;; Define iterators for VCMLA operations
  (define_int_iterator VCMLA_OP [UNSPEC_VCMLA
diff -Nrcpad gcc-13.2.0/gcc/config/arm/iwmmxt.md gcc-14.1.0/gcc/config/arm/iwmmxt.md
*** gcc-13.2.0/gcc/config/arm/iwmmxt.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/iwmmxt.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Patterns for the Intel Wireless MMX technology architecture.
! ;; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;; Contributed by Red Hat.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Patterns for the Intel Wireless MMX technology architecture.
! ;; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;; Contributed by Red Hat.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/iwmmxt2.md gcc-14.1.0/gcc/config/arm/iwmmxt2.md
*** gcc-13.2.0/gcc/config/arm/iwmmxt2.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/iwmmxt2.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Patterns for the Intel Wireless MMX technology architecture.
! ;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;; Written by Marvell, Inc.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Patterns for the Intel Wireless MMX technology architecture.
! ;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;; Written by Marvell, Inc.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/ldmstm.md gcc-14.1.0/gcc/config/arm/ldmstm.md
*** gcc-13.2.0/gcc/config/arm/ldmstm.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/ldmstm.md	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* ARM ldm/stm instruction patterns.  This file was automatically generated
     using arm-ldmstm.ml.  Please do not edit manually.
  
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
--- 1,7 ----
  /* ARM ldm/stm instruction patterns.  This file was automatically generated
     using arm-ldmstm.ml.  Please do not edit manually.
  
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/ldrdstrd.md gcc-14.1.0/gcc/config/arm/ldrdstrd.md
*** gcc-13.2.0/gcc/config/arm/ldrdstrd.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/ldrdstrd.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;; ARM ldrd/strd peephole optimizations.
  ;;
! ;; Copyright (C) 2013-2023 Free Software Foundation, Inc.
  ;;
  ;; Written by Greta Yorsh <greta.yorsh@arm.com>
  
--- 1,6 ----
  ;; ARM ldrd/strd peephole optimizations.
  ;;
! ;; Copyright (C) 2013-2024 Free Software Foundation, Inc.
  ;;
  ;; Written by Greta Yorsh <greta.yorsh@arm.com>
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/linux-eabi.h gcc-14.1.0/gcc/config/arm/linux-eabi.h
*** gcc-13.2.0/gcc/config/arm/linux-eabi.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/linux-eabi.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Configuration file for ARM GNU/Linux EABI targets.
!    Copyright (C) 2004-2023 Free Software Foundation, Inc.
     Contributed by CodeSourcery, LLC   
  
     This file is part of GCC.
--- 1,5 ----
  /* Configuration file for ARM GNU/Linux EABI targets.
!    Copyright (C) 2004-2024 Free Software Foundation, Inc.
     Contributed by CodeSourcery, LLC   
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/linux-elf.h gcc-14.1.0/gcc/config/arm/linux-elf.h
*** gcc-13.2.0/gcc/config/arm/linux-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/linux-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for ARM running Linux-based GNU systems using ELF
!    Copyright (C) 1993-2023 Free Software Foundation, Inc.
     Contributed by Philip Blundell <philb@gnu.org>
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions for ARM running Linux-based GNU systems using ELF
!    Copyright (C) 1993-2024 Free Software Foundation, Inc.
     Contributed by Philip Blundell <philb@gnu.org>
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/linux-gas.h gcc-14.1.0/gcc/config/arm/linux-gas.h
*** gcc-13.2.0/gcc/config/arm/linux-gas.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/linux-gas.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for GNU compiler.
     ARM Linux-based GNU systems version.
!    Copyright (C) 1997-2023 Free Software Foundation, Inc.
     Contributed by Russell King  <rmk92@ecs.soton.ac.uk>.
  
     This file is part of GCC.
--- 1,6 ----
  /* Definitions of target machine for GNU compiler.
     ARM Linux-based GNU systems version.
!    Copyright (C) 1997-2024 Free Software Foundation, Inc.
     Contributed by Russell King  <rmk92@ecs.soton.ac.uk>.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/marvell-f-iwmmxt.md gcc-14.1.0/gcc/config/arm/marvell-f-iwmmxt.md
*** gcc-13.2.0/gcc/config/arm/marvell-f-iwmmxt.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/marvell-f-iwmmxt.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Marvell WMMX2 pipeline description
! ;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;; Written by Marvell, Inc.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Marvell WMMX2 pipeline description
! ;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;; Written by Marvell, Inc.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/marvell-pj4.md gcc-14.1.0/gcc/config/arm/marvell-pj4.md
*** gcc-13.2.0/gcc/config/arm/marvell-pj4.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/marvell-pj4.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Marvell ARM Processor Pipeline Description
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Marvell.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Marvell ARM Processor Pipeline Description
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Marvell.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/mmintrin.h gcc-14.1.0/gcc/config/arm/mmintrin.h
*** gcc-13.2.0/gcc/config/arm/mmintrin.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/mmintrin.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2002-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2002-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 28,33 ****
--- 28,36 ----
  #error mmintrin.h included without enabling WMMX/WMMX2 instructions (e.g. -march=iwmmxt or -march=iwmmxt2)
  #endif
  
+ #ifndef __ENABLE_DEPRECATED_IWMMXT
+ #warning support for WMMX/WMMX2 is deprecated and will be removed in GCC 15.  Define __ENABLE_DEPRECATED_IWMMXT to suppress this warning
+ #endif
  
  #if defined __cplusplus
  extern "C" {
diff -Nrcpad gcc-13.2.0/gcc/config/arm/mve.md gcc-14.1.0/gcc/config/arm/mve.md
*** gcc-13.2.0/gcc/config/arm/mve.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/mve.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Arm M-profile Vector Extension Machine Description
! ;; Copyright (C) 2019-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Arm M-profile Vector Extension Machine Description
! ;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 17,23 ****
  ;; along with GCC; see the file COPYING3.  If not see
  ;; <http://www.gnu.org/licenses/>.
  
! (define_insn "*mve_mov<mode>"
    [(set (match_operand:MVE_types 0 "nonimmediate_operand" "=w,w,r,w   , w,   r,Ux,w")
  	(match_operand:MVE_types 1 "general_operand"      " w,r,w,DnDm,UxUi,r,w, Ul"))]
    "TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT"
--- 17,23 ----
  ;; along with GCC; see the file COPYING3.  If not see
  ;; <http://www.gnu.org/licenses/>.
  
! (define_insn "mve_mov<mode>"
    [(set (match_operand:MVE_types 0 "nonimmediate_operand" "=w,w,r,w   , w,   r,Ux,w")
  	(match_operand:MVE_types 1 "general_operand"      " w,r,w,DnDm,UxUi,r,w, Ul"))]
    "TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT"
***************
*** 81,98 ****
        return "";
      }
  }
!   [(set_attr "type" "mve_move,mve_move,mve_move,mve_move,mve_load,multiple,mve_store,mve_load")
     (set_attr "length" "4,8,8,4,4,8,4,8")
     (set_attr "thumb2_pool_range" "*,*,*,*,1018,*,*,*")
     (set_attr "neg_pool_range" "*,*,*,*,996,*,*,*")])
  
! (define_insn "*mve_vdup<mode>"
    [(set (match_operand:MVE_vecs 0 "s_register_operand" "=w")
  	(vec_duplicate:MVE_vecs
  	  (match_operand:<V_elem> 1 "s_register_operand" "r")))]
    "TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT"
    "vdup.<V_sz_elem>\t%q0, %1"
!   [(set_attr "length" "4")
     (set_attr "type" "mve_move")])
  
  ;;
--- 81,107 ----
        return "";
      }
  }
!    [(set_attr_alternative "mve_unpredicated_insn" [(symbol_ref "CODE_FOR_mve_mov<mode>")
! 						   (symbol_ref "CODE_FOR_nothing")
! 						   (symbol_ref "CODE_FOR_nothing")
! 						   (symbol_ref "CODE_FOR_mve_mov<mode>")
! 						   (symbol_ref "CODE_FOR_mve_mov<mode>")
! 						   (symbol_ref "CODE_FOR_nothing")
! 						   (symbol_ref "CODE_FOR_mve_mov<mode>")
! 						   (symbol_ref "CODE_FOR_nothing")])
!    (set_attr "type" "mve_move,mve_move,mve_move,mve_move,mve_load,multiple,mve_store,mve_load")
     (set_attr "length" "4,8,8,4,4,8,4,8")
     (set_attr "thumb2_pool_range" "*,*,*,*,1018,*,*,*")
     (set_attr "neg_pool_range" "*,*,*,*,996,*,*,*")])
  
! (define_insn "mve_vdup<mode>"
    [(set (match_operand:MVE_vecs 0 "s_register_operand" "=w")
  	(vec_duplicate:MVE_vecs
  	  (match_operand:<V_elem> 1 "s_register_operand" "r")))]
    "TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT"
    "vdup.<V_sz_elem>\t%q0, %1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vdup<mode>"))
!   (set_attr "length" "4")
     (set_attr "type" "mve_move")])
  
  ;;
***************
*** 130,300 ****
    [(set_attr "length" "16")])
  
  ;;
! ;; [vrndq_m_f])
! ;;
! (define_insn "mve_vrndq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRNDQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vrintzt.f%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrndxq_f])
! ;;
! (define_insn "mve_vrndxq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 VRNDXQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vrintx.f%#<V_sz_elem>	%q0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrndq_f])
! ;;
! (define_insn "mve_vrndq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 VRNDQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vrintz.f%#<V_sz_elem>	%q0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrndpq_f])
! ;;
! (define_insn "mve_vrndpq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 VRNDPQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vrintp.f%#<V_sz_elem>	%q0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrndnq_f])
! ;;
! (define_insn "mve_vrndnq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 VRNDNQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vrintn.f%#<V_sz_elem>	%q0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrndmq_f])
! ;;
! (define_insn "mve_vrndmq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 VRNDMQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vrintm.f%#<V_sz_elem>	%q0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrndaq_f])
  ;;
! (define_insn "mve_vrndaq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 VRNDAQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vrinta.f%#<V_sz_elem>	%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev64q_f])
  ;;
! (define_insn "mve_vrev64q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=&w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 VREV64Q_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vrev64.%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vnegq_f])
  ;;
! (define_insn "mve_vnegq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(neg:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vneg.f%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vdupq_n_f])
  ;;
! (define_insn "mve_vdupq_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:<V_elem> 1 "s_register_operand" "r")]
! 	 VDUPQ_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vdup.%#<V_sz_elem>\t%q0, %1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vabsq_f])
! ;;
! (define_insn "mve_vabsq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(abs:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vabs.f%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev32q_f])
  ;;
! (define_insn "mve_vrev32q_fv8hf"
    [
!    (set (match_operand:V8HF 0 "s_register_operand" "=w")
! 	(unspec:V8HF [(match_operand:V8HF 1 "s_register_operand" "w")]
! 	 VREV32Q_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vrev32.16\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  ;;
  ;; [vcvttq_f32_f16])
--- 139,221 ----
    [(set_attr "length" "16")])
  
  ;;
! ;; [vrndaq_f]
! ;; [vrndmq_f]
! ;; [vrndnq_f]
! ;; [vrndpq_f]
! ;; [vrndq_f]
! ;; [vrndxq_f]
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 MVE_FP_UNARY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_mnemo>.f%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev64q_f])
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=&w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")]
! 	 MVE_FP_VREV64Q_ONLY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vabsq_f]
! ;; [vnegq_f]
  ;;
! (define_insn "mve_v<absneg_str>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(ABSNEG:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "v<absneg_str>.f%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_v<absneg_str>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vdupq_n_f])
  ;;
! (define_insn "@mve_<mve_insn>q_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:<V_elem> 1 "s_register_operand" "r")]
! 	 MVE_FP_N_VDUPQ_ONLY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.%#<V_sz_elem>\t%q0, %1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev32q_f])
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
!    (set (match_operand:MVE_V8HF 0 "s_register_operand" "=w")
! 	(unspec:MVE_V8HF [(match_operand:MVE_V8HF 1 "s_register_operand" "w")]
! 	 MVE_FP_VREV32Q_ONLY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  ;;
  ;; [vcvttq_f32_f16])
***************
*** 307,313 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtt.f32.f16\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 228,235 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtt.f32.f16\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvttq_f32_f16v4sf"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 321,327 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtb.f32.f16\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 243,250 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtb.f32.f16\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtbq_f32_f16v4sf"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 335,355 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvt.f%#<V_sz_elem>.<supf>%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev64q_u, vrev64q_s])
  ;;
! (define_insn "mve_vrev64q_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=&w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")]
  	 VREV64Q))
    ]
    "TARGET_HAVE_MVE"
!   "vrev64.%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 258,280 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvt.f%#<V_sz_elem>.<supf>%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtq_to_f_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev64q_u, vrev64q_s])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=&w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")]
  	 VREV64Q))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 363,408 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! ;; [vqnegq_s])
! ;;
! (define_insn "mve_vqnegq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")]
! 	 VQNEGQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqneg.s%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqabsq_s])
! ;;
! (define_insn "mve_vqabsq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")]
! 	 VQABSQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqabs.s%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vnegq_s])
  ;;
! (define_insn "mve_vnegq_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(neg:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE"
!   "vneg.s%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 288,310 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtq_from_f_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vabsq_s]
! ;; [vnegq_s]
  ;;
! (define_insn "mve_v<absneg_str>q_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(ABSNEG:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE"
!   "v<absneg_str>.s%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_v<absneg_str>q_s<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 415,421 ****
    ]
    "TARGET_HAVE_MVE"
    "vmvn\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  (define_expand "mve_vmvnq_s<mode>"
    [
--- 317,324 ----
    ]
    "TARGET_HAVE_MVE"
    "vmvn\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vmvnq_u<mode>"))
!   (set_attr "type" "mve_move")
  ])
  (define_expand "mve_vmvnq_s<mode>"
    [
***************
*** 428,442 ****
  ;;
  ;; [vdupq_n_u, vdupq_n_s])
  ;;
! (define_insn "mve_vdupq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:<V_elem> 1 "s_register_operand" "r")]
  	 VDUPQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vdup.%#<V_sz_elem>\t%q0, %1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 331,346 ----
  ;;
  ;; [vdupq_n_u, vdupq_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:<V_elem> 1 "s_register_operand" "r")]
  	 VDUPQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.%#<V_sz_elem>\t%q0, %1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 449,455 ****
    ]
    "TARGET_HAVE_MVE"
    "vclz.i%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  (define_expand "mve_vclzq_u<mode>"
    [
--- 353,360 ----
    ]
    "TARGET_HAVE_MVE"
    "vclz.i%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vclzq_s<mode>"))
!   (set_attr "type" "mve_move")
  ])
  (define_expand "mve_vclzq_u<mode>"
    [
***************
*** 460,545 ****
  )
  
  ;;
! ;; [vclsq_s])
  ;;
! (define_insn "mve_vclsq_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")]
! 	 VCLSQ_S))
    ]
    "TARGET_HAVE_MVE"
!   "vcls.s%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddvq_s, vaddvq_u])
  ;;
! (define_insn "@mve_vaddvq_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")]
  	 VADDVQ))
    ]
    "TARGET_HAVE_MVE"
!   "vaddv.<supf>%#<V_sz_elem>\t%0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vabsq_s])
! ;;
! (define_insn "mve_vabsq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(abs:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")))
!   ]
!   "TARGET_HAVE_MVE"
!   "vabs.s%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev32q_u, vrev32q_s])
  ;;
! (define_insn "mve_vrev32q_<supf><mode>"
    [
     (set (match_operand:MVE_3 0 "s_register_operand" "=w")
  	(unspec:MVE_3 [(match_operand:MVE_3 1 "s_register_operand" "w")]
  	 VREV32Q))
    ]
    "TARGET_HAVE_MVE"
!   "vrev32.%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmovltq_u, vmovltq_s])
! ;;
! (define_insn "mve_vmovltq_<supf><mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
! 	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")]
! 	 VMOVLTQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmovlt.<supf>%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmovlbq_s, vmovlbq_u])
  ;;
! (define_insn "mve_vmovlbq_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")]
! 	 VMOVLBQ))
    ]
    "TARGET_HAVE_MVE"
!   "vmovlb.<supf>%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 365,431 ----
  )
  
  ;;
! ;; [vclsq_s]
! ;; [vqabsq_s]
! ;; [vqnegq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")]
! 	 MVE_INT_UNARY))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddvq_s, vaddvq_u])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")]
  	 VADDVQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev32q_u, vrev32q_s])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:MVE_3 0 "s_register_operand" "=w")
  	(unspec:MVE_3 [(match_operand:MVE_3 1 "s_register_operand" "w")]
  	 VREV32Q))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmovlbq_s, vmovlbq_u]
! ;; [vmovltq_u, vmovltq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")]
! 	 VMOVLxQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 553,559 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtp.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 439,446 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtp.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtpq_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 567,573 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtn.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 454,461 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtn.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtnq_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 581,587 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtm.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 469,476 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtm.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtmq_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 595,643 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvta.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vmvnq_n_u, vmvnq_n_s])
  ;;
! (define_insn "mve_vmvnq_n_<supf><mode>"
    [
     (set (match_operand:MVE_5 0 "s_register_operand" "=w")
  	(unspec:MVE_5 [(match_operand:<V_elem> 1 "immediate_operand" "i")]
  	 VMVNQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vmvn.i%#<V_sz_elem>\t%q0, %1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev16q_u, vrev16q_s])
  ;;
! (define_insn "mve_vrev16q_<supf>v16qi"
    [
!    (set (match_operand:V16QI 0 "s_register_operand" "=w")
! 	(unspec:V16QI [(match_operand:V16QI 1 "s_register_operand" "w")]
  	 VREV16Q))
    ]
    "TARGET_HAVE_MVE"
!   "vrev16.8\t%q0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddlvq_s vaddlvq_u])
  ;;
! (define_insn "mve_vaddlvq_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")]
  	 VADDLVQ))
    ]
    "TARGET_HAVE_MVE"
!   "vaddlv.<supf>32\t%Q0, %R0, %q1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 484,537 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvta.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtaq_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vmvnq_n_u, vmvnq_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_5 0 "s_register_operand" "=w")
  	(unspec:MVE_5 [(match_operand:<V_elem> 1 "immediate_operand" "i")]
  	 VMVNQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.i%#<V_sz_elem>\t%q0, %1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev16q_u, vrev16q_s])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
!    (set (match_operand:MVE_V16QI 0 "s_register_operand" "=w")
! 	(unspec:MVE_V16QI [(match_operand:MVE_V16QI 1 "s_register_operand" "w")]
  	 VREV16Q))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<V_sz_elem>\t%q0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddlvq_s vaddlvq_u])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")]
  	 VADDLVQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>32\t%Q0, %R0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf>v4si"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 651,657 ****
    ]
    "TARGET_HAVE_MVE"
    "vctp.<MVE_vctp>\t%1"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 545,552 ----
    ]
    "TARGET_HAVE_MVE"
    "vctp.<MVE_vctp>\t%1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vctp<MVE_vctp>q<MVE_vpred>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 665,701 ****
    ]
    "TARGET_HAVE_MVE"
    "vpnot"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vsubq_n_f])
! ;;
! (define_insn "mve_vsubq_n_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VSUBQ_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vsub.f<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vbrsrq_n_f])
  ;;
! (define_insn "mve_vbrsrq_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:SI 2 "s_register_operand" "r")]
! 	 VBRSRQ_N_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vbrsr.<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 560,583 ----
    ]
    "TARGET_HAVE_MVE"
    "vpnot"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vpnotv16bi"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vbrsrq_n_f])
  ;;
! (define_insn "@mve_<mve_insn>q_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:SI 2 "s_register_operand" "r")]
! 	 MVE_VBRSR_N_FP))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 710,726 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvt.f<V_sz_elem>.<supf><V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;; [vcreateq_f])
  ;;
! (define_insn "mve_vcreateq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:DI 1 "s_register_operand" "r")
  		       (match_operand:DI 2 "s_register_operand" "r")]
! 	 VCREATEQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vmov %q0[2], %q0[0], %Q1, %Q2\;vmov %q0[3], %q0[1], %R1, %R2"
--- 592,609 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvt.f<V_sz_elem>.<supf><V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtq_n_to_f_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;; [vcreateq_f])
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:DI 1 "s_register_operand" "r")
  		       (match_operand:DI 2 "s_register_operand" "r")]
! 	 MVE_FP_CREATE_ONLY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vmov %q0[2], %q0[0], %Q1, %Q2\;vmov %q0[3], %q0[1], %R1, %R2"
***************
*** 730,736 ****
  ;;
  ;; [vcreateq_u, vcreateq_s])
  ;;
! (define_insn "mve_vcreateq_<supf><mode>"
    [
     (set (match_operand:MVE_1 0 "s_register_operand" "=w")
  	(unspec:MVE_1 [(match_operand:DI 1 "s_register_operand" "r")
--- 613,619 ----
  ;;
  ;; [vcreateq_u, vcreateq_s])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:MVE_1 0 "s_register_operand" "=w")
  	(unspec:MVE_1 [(match_operand:DI 1 "s_register_operand" "r")
***************
*** 743,761 ****
     (set_attr "length""8")])
  
  ;;
! ;; [vshrq_n_s, vshrq_n_u])
  ;;
  ;; Version that takes an immediate as operand 2.
! (define_insn "mve_vshrq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:SI 2 "<MVE_pred2>" "<MVE_constraint2>")]
! 	 VSHRQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vshr.<supf><V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;; Versions that take constant vectors as operand 2 (with all elements
--- 626,646 ----
     (set_attr "length""8")])
  
  ;;
! ;; [vrshrq_n_s, vrshrq_n_u]
! ;; [vshrq_n_s, vshrq_n_u]
  ;;
  ;; Version that takes an immediate as operand 2.
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:SI 2 "<MVE_pred2>" "<MVE_constraint2>")]
! 	 MVE_VSHRQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf><V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;; Versions that take constant vectors as operand 2 (with all elements
***************
*** 773,779 ****
  					VALID_NEON_QREG_MODE (<MODE>mode),
  					true);
    }
!   [(set_attr "type" "mve_move")
  ])
  (define_insn "mve_vshrq_n_u<mode>_imm"
    [
--- 658,665 ----
  					VALID_NEON_QREG_MODE (<MODE>mode),
  					true);
    }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vshrq_n_s<mode>_imm"))
!   (set_attr "type" "mve_move")
  ])
  (define_insn "mve_vshrq_n_u<mode>_imm"
    [
***************
*** 788,794 ****
  					VALID_NEON_QREG_MODE (<MODE>mode),
  					true);
    }
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 674,681 ----
  					VALID_NEON_QREG_MODE (<MODE>mode),
  					true);
    }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vshrq_n_u<mode>_imm"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 803,815 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvt.<supf><V_sz_elem>.f<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddlvq_p_s])
  ;;
! (define_insn "mve_vaddlvq_p_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
--- 690,703 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvt.<supf><V_sz_elem>.f<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtq_n_from_f_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddlvq_p_s])
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
***************
*** 817,825 ****
  	 VADDLVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vaddlvt.<supf>32\t%Q0, %R0, %q1"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
  
  ;;
  ;; [vcmpneq_, vcmpcsq_, vcmpeqq_, vcmpgeq_, vcmpgtq_, vcmphiq_, vcmpleq_, vcmpltq_])
--- 705,714 ----
  	 VADDLVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>32\t%Q0, %R0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf>v4si"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")])
  
  ;;
  ;; [vcmpneq_, vcmpcsq_, vcmpeqq_, vcmpgeq_, vcmpgtq_, vcmphiq_, vcmpleq_, vcmpltq_])
***************
*** 832,844 ****
    ]
    "TARGET_HAVE_MVE"
    "vcmp.<mve_cmp_type>%#<V_sz_elem>\t<mve_cmp_op>, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vcmpcsq_n_, vcmpeqq_n_, vcmpgeq_n_, vcmpgtq_n_, vcmphiq_n_, vcmpleq_n_, vcmpltq_n_, vcmpneq_n_])
  ;;
! (define_insn "mve_vcmp<mve_cmp_op>q_n_<mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(MVE_COMPARISONS:<MVE_VPRED>
--- 721,734 ----
    ]
    "TARGET_HAVE_MVE"
    "vcmp.<mve_cmp_type>%#<V_sz_elem>\t<mve_cmp_op>, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcmp<mve_cmp_op>q_<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vcmpcsq_n_, vcmpeqq_n_, vcmpgeq_n_, vcmpgtq_n_, vcmphiq_n_, vcmpleq_n_, vcmpltq_n_, vcmpneq_n_])
  ;;
! (define_insn "@mve_vcmp<mve_cmp_op>q_n_<mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(MVE_COMPARISONS:<MVE_VPRED>
***************
*** 847,853 ****
    ]
    "TARGET_HAVE_MVE"
    "vcmp.<mve_cmp_type>%#<V_sz_elem>	<mve_cmp_op>, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 737,744 ----
    ]
    "TARGET_HAVE_MVE"
    "vcmp.<mve_cmp_type>%#<V_sz_elem>	<mve_cmp_op>, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcmp<mve_cmp_op>q_n_<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 855,893 ****
  ;; See vec-common.md
  
  ;;
! ;; [vabdq_s, vabdq_u])
  ;;
! (define_insn "mve_vabdq_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VABDQ))
    ]
    "TARGET_HAVE_MVE"
!   "vabd.<supf>%#<V_sz_elem>	%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vaddq_n_s, vaddq_n_u])
  ;;
! (define_insn "mve_vaddq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VADDQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vadd.i%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddvaq_s, vaddvaq_u])
  ;;
! (define_insn "mve_vaddvaq_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
--- 746,800 ----
  ;; See vec-common.md
  
  ;;
! ;; [vabdq_s, vabdq_u]
! ;; [vhaddq_s, vhaddq_u]
! ;; [vhsubq_s, vhsubq_u]
! ;; [vmulhq_s, vmulhq_u]
! ;; [vqaddq_u, vqaddq_s]
! ;; [vqdmulhq_s]
! ;; [vqrdmulhq_s]
! ;; [vqrshlq_s, vqrshlq_u]
! ;; [vqshlq_s, vqshlq_u]
! ;; [vqsubq_u, vqsubq_s]
! ;; [vrhaddq_s, vrhaddq_u]
! ;; [vrmulhq_s, vrmulhq_u]
! ;; [vrshlq_s, vrshlq_u]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 MVE_INT_SU_BINARY))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vaddq_n_s, vaddq_n_u]
! ;; [vsubq_n_s, vsubq_n_u]
! ;; [vmulq_n_s, vmulq_n_u]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 MVE_INT_N_BINARY))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.i%#<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddvaq_s, vaddvaq_u])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
***************
*** 895,908 ****
  	 VADDVAQ))
    ]
    "TARGET_HAVE_MVE"
!   "vaddva.<supf>%#<V_sz_elem>\t%0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddvq_p_u, vaddvq_p_s])
  ;;
! (define_insn "mve_vaddvq_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
--- 802,817 ----
  	 VADDVAQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddvq_p_u, vaddvq_p_s])
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
***************
*** 910,917 ****
  	 VADDVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vaddvt.<supf>%#<V_sz_elem>	%0, %q1"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 819,827 ----
  	 VADDVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%0, %q1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 931,938 ****
    "@
     vand\t%q0, %q1, %q2
     * return neon_output_logic_immediate (\"vand\", &operands[2], <MODE>mode, 1, VALID_NEON_QREG_MODE (<MODE>mode));"
!   [(set_attr "type" "mve_move")
  ])
  (define_expand "mve_vandq_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand")
--- 841,851 ----
    "@
     vand\t%q0, %q1, %q2
     * return neon_output_logic_immediate (\"vand\", &operands[2], <MODE>mode, 1, VALID_NEON_QREG_MODE (<MODE>mode));"
!    [(set_attr_alternative "mve_unpredicated_insn" [(symbol_ref "CODE_FOR_mve_vandq_u<mode>")
! 						   (symbol_ref "CODE_FOR_nothing")])
!   (set_attr "type" "mve_move")
  ])
+ 
  (define_expand "mve_vandq_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand")
***************
*** 953,959 ****
    ]
    "TARGET_HAVE_MVE"
    "vbic\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  (define_expand "mve_vbicq_s<mode>"
--- 866,873 ----
    ]
    "TARGET_HAVE_MVE"
    "vbic\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vbicq_u<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  (define_expand "mve_vbicq_s<mode>"
***************
*** 968,974 ****
  ;;
  ;; [vbrsrq_n_u, vbrsrq_n_s])
  ;;
! (define_insn "mve_vbrsrq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
--- 882,888 ----
  ;;
  ;; [vbrsrq_n_u, vbrsrq_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
***************
*** 976,998 ****
  	 VBRSRQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vbrsr.%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vcaddq, vcaddq_rot90, vcadd_rot180, vcadd_rot270])
  ;;
! (define_insn "mve_vcaddq<mve_rot><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VCADD))
    ]
    "TARGET_HAVE_MVE"
!   "vcadd.i%#<V_sz_elem>	%q0, %q1, %q2, #<rot>"
!   [(set_attr "type" "mve_move")
  ])
  
  ;; Auto vectorizer pattern for int vcadd
--- 890,917 ----
  	 VBRSRQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.%#<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vcaddq_rot90_s, vcaddq_rot90_u]
! ;; [vcaddq_rot270_s, vcaddq_rot270_u]
! ;; [vhcaddq_rot90_s]
! ;; [vhcaddq_rot270_s]
  ;;
! (define_insn "@mve_<mve_insn>q<mve_rot>_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VxCADDQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<isu>%#<V_sz_elem>\t%q0, %q1, %q2, #<rot>"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q<mve_rot>_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;; Auto vectorizer pattern for int vcadd
***************
*** 1015,1021 ****
    ]
    "TARGET_HAVE_MVE"
    "veor\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  (define_expand "mve_veorq_s<mode>"
    [
--- 934,941 ----
    ]
    "TARGET_HAVE_MVE"
    "veor\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_veorq_u<mode>"))
!   (set_attr "type" "mve_move")
  ])
  (define_expand "mve_veorq_s<mode>"
    [
***************
*** 1027,1405 ****
  )
  
  ;;
! ;; [vhaddq_n_u, vhaddq_n_s])
! ;;
! (define_insn "mve_vhaddq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VHADDQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vhadd.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vhaddq_s, vhaddq_u])
! ;;
! (define_insn "@mve_vhaddq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VHADDQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vhadd.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vhcaddq_rot270_s])
! ;;
! (define_insn "mve_vhcaddq_rot270_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VHCADDQ_ROT270_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vhcadd.s%#<V_sz_elem>\t%q0, %q1, %q2, #270"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vhcaddq_rot90_s])
! ;;
! (define_insn "mve_vhcaddq_rot90_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VHCADDQ_ROT90_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vhcadd.s%#<V_sz_elem>\t%q0, %q1, %q2, #90"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vhsubq_n_u, vhsubq_n_s])
  ;;
! (define_insn "mve_vhsubq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VHSUBQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vhsub.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vhsubq_s, vhsubq_u])
! ;;
! (define_insn "mve_vhsubq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VHSUBQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vhsub.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmaxaq_s])
! ;;
! (define_insn "mve_vmaxaq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMAXAQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmaxa.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmaxavq_s])
! ;;
! (define_insn "mve_vmaxavq_s<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 			  (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMAXAVQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmaxav.s%#<V_sz_elem>\t%0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmaxq_u, vmaxq_s])
! ;;
! (define_insn "mve_vmaxq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(smax:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmax.%#<V_s_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! (define_insn "mve_vmaxq_u<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(umax:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmax.%#<V_u_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmaxvq_u, vmaxvq_s])
! ;;
! (define_insn "mve_vmaxvq_<supf><mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 			  (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMAXVQ))
    ]
    "TARGET_HAVE_MVE"
!   "vmaxv.<supf>%#<V_sz_elem>\t%0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vminaq_s])
  ;;
! (define_insn "mve_vminaq_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMINAQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmina.s%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vminavq_s])
! ;;
! (define_insn "mve_vminavq_s<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 			  (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMINAVQ_S))
    ]
    "TARGET_HAVE_MVE"
!   "vminav.s%#<V_sz_elem>\t%0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vminq_s, vminq_u])
  ;;
! (define_insn "mve_vminq_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(smin:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
  		    (match_operand:MVE_2 2 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE"
!   "vmin.%#<V_s_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
- (define_insn "mve_vminq_u<mode>"
-   [
-    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
- 	(umin:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
- 		    (match_operand:MVE_2 2 "s_register_operand" "w")))
-   ]
-   "TARGET_HAVE_MVE"
-   "vmin.%#<V_u_elem>\t%q0, %q1, %q2"
-   [(set_attr "type" "mve_move")
- ])
  
  ;;
! ;; [vminvq_u, vminvq_s])
  ;;
! (define_insn "mve_vminvq_<supf><mode>"
    [
     (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
  	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
  			  (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMINVQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vminv.<supf>%#<V_sz_elem>\t%0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmladavq_u, vmladavq_s])
! ;;
! (define_insn "mve_vmladavq_<supf><mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMLADAVQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmladav.<supf>%#<V_sz_elem>\t%0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmladavxq_s])
! ;;
! (define_insn "mve_vmladavxq_s<mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMLADAVXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmladavx.s%#<V_sz_elem>\t%0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlsdavq_s])
! ;;
! (define_insn "mve_vmlsdavq_s<mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMLSDAVQ_S))
    ]
    "TARGET_HAVE_MVE"
!   "vmlsdav.s%#<V_sz_elem>\t%0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmlsdavxq_s])
  ;;
! (define_insn "mve_vmlsdavxq_s<mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
  		    (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMLSDAVXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlsdavx.s%#<V_sz_elem>\t%0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmulhq_s, vmulhq_u])
! ;;
! (define_insn "mve_vmulhq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMULHQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmulh.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmullbq_int_u, vmullbq_int_s])
! ;;
! (define_insn "mve_vmullbq_int_<supf><mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:<V_double_width> [(match_operand:MVE_2 1 "s_register_operand" "w")
! 				  (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMULLBQ_INT))
    ]
    "TARGET_HAVE_MVE"
!   "vmullb.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmulltq_int_u, vmulltq_int_s])
  ;;
! (define_insn "mve_vmulltq_int_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:MVE_2 1 "s_register_operand" "w")
  				  (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMULLTQ_INT))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmullt.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmulq_n_u, vmulq_n_s])
! ;;
! (define_insn "mve_vmulq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VMULQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vmul.i%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmulq_u, vmulq_s])
  ;;
! (define_insn "mve_vmulq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMULQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmul.i%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! (define_insn "mve_vmulq<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(mult:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE"
!   "vmul.i%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 947,1078 ----
  )
  
  ;;
! ;; [vhaddq_n_u, vhaddq_n_s]
! ;; [vhsubq_n_u, vhsubq_n_s]
! ;; [vqaddq_n_s, vqaddq_n_u]
! ;; [vqdmulhq_n_s]
! ;; [vqrdmulhq_n_s]
! ;; [vqsubq_n_s, vqsubq_n_u]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 MVE_INT_SU_N_BINARY))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmaxaq_s]
! ;; [vminaq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 MVE_VMAXAVMINAQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.s%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmaxq_u, vmaxq_s]
! ;; [vminq_s, vminq_u]
  ;;
! (define_insn "mve_<max_min_su_str>q_<max_min_supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(MAX_MIN_SU:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
  		    (match_operand:MVE_2 2 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE"
!   "<max_min_su_str>.<max_min_supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<max_min_su_str>q_<max_min_supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  
  ;;
! ;; [vmaxavq_s]
! ;; [vmaxvq_u, vmaxvq_s]
! ;; [vminavq_s]
! ;; [vminvq_u, vminvq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
  	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
  			  (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 MVE_VMAXVQ_VMINVQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "mve_safe_imp_xlane_pred" "<mve_vmaxmin_safe_imp>")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmladavq_u, vmladavq_s]
! ;; [vmladavxq_s]
! ;; [vmlsdavq_s]
! ;; [vmlsdavxq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
  		    (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 MVE_VMLxDAVQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmullbq_int_u, vmullbq_int_s]
! ;; [vmulltq_int_u, vmulltq_int_s]
  ;;
! (define_insn "@mve_<mve_insn>q_int_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:MVE_2 1 "s_register_operand" "w")
  				  (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VMULLxQ_INT))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<isu>%#<V_sz_elem>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_int_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vaddq_s, vaddq_u]
! ;; [vmulq_u, vmulq_s]
! ;; [vsubq_s, vsubq_u]
  ;;
! (define_insn "mve_<mve_addsubmul>q<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(MVE_INT_BINARY_RTX:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
! 			      (match_operand:MVE_2 2 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_addsubmul>.i%#<V_sz_elem>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_addsubmul>q<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 1413,1419 ****
    ]
    "TARGET_HAVE_MVE"
     "vorn\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  (define_expand "mve_vornq_u<mode>"
--- 1086,1093 ----
    ]
    "TARGET_HAVE_MVE"
     "vorn\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vornq_s<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  (define_expand "mve_vornq_u<mode>"
***************
*** 1442,1448 ****
    "@
     vorr\t%q0, %q1, %q2
     * return neon_output_logic_immediate (\"vorr\", &operands[2], <MODE>mode, 0, VALID_NEON_QREG_MODE (<MODE>mode));"
!   [(set_attr "type" "mve_move")
  ])
  (define_expand "mve_vorrq_u<mode>"
    [
--- 1116,1123 ----
    "@
     vorr\t%q0, %q1, %q2
     * return neon_output_logic_immediate (\"vorr\", &operands[2], <MODE>mode, 0, VALID_NEON_QREG_MODE (<MODE>mode));"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vorrq_s<mode>"))
!   (set_attr "type" "mve_move")
  ])
  (define_expand "mve_vorrq_u<mode>"
    [
***************
*** 1454,1833 ****
  )
  
  ;;
! ;; [vqaddq_n_s, vqaddq_n_u])
! ;;
! (define_insn "mve_vqaddq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VQADDQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqadd.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqaddq_u, vqaddq_s])
! ;;
! (define_insn "mve_vqaddq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VQADDQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqadd.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmulhq_n_s])
! ;;
! (define_insn "mve_vqdmulhq_n_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VQDMULHQ_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmulh.s%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmulhq_s])
! ;;
! (define_insn "mve_vqdmulhq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VQDMULHQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmulh.s%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrdmulhq_n_s])
! ;;
! (define_insn "mve_vqrdmulhq_n_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VQRDMULHQ_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrdmulh.s%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrdmulhq_s])
! ;;
! (define_insn "mve_vqrdmulhq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VQRDMULHQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrdmulh.s%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrshlq_n_s, vqrshlq_n_u])
  ;;
! (define_insn "mve_vqrshlq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "s_register_operand" "r")]
! 	 VQRSHLQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrshl.<supf>%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrshlq_s, vqrshlq_u])
! ;;
! (define_insn "mve_vqrshlq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VQRSHLQ))
    ]
    "TARGET_HAVE_MVE"
!   "vqrshl.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqshlq_n_s, vqshlq_n_u])
  ;;
! (define_insn "mve_vqshlq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:SI 2 "immediate_operand" "i")]
! 	 VQSHLQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vqshl.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqshlq_r_u, vqshlq_r_s])
  ;;
! (define_insn "mve_vqshlq_r_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "s_register_operand" "r")]
! 	 VQSHLQ_R))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqshl.<supf>%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqshlq_s, vqshlq_u])
! ;;
! (define_insn "mve_vqshlq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VQSHLQ))
    ]
    "TARGET_HAVE_MVE"
!   "vqshl.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vqshluq_n_s])
  ;;
! (define_insn "mve_vqshluq_n_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:SI 2 "<MVE_pred>" "<MVE_constraint>")]
! 	 VQSHLUQ_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqshlu.s%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqsubq_n_s, vqsubq_n_u])
! ;;
! (define_insn "mve_vqsubq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VQSUBQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqsub.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqsubq_u, vqsubq_s])
! ;;
! (define_insn "mve_vqsubq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VQSUBQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqsub.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrhaddq_s, vrhaddq_u])
! ;;
! (define_insn "@mve_vrhaddq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VRHADDQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrhadd.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrmulhq_s, vrmulhq_u])
! ;;
! (define_insn "mve_vrmulhq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VRMULHQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrmulh.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrshlq_n_u, vrshlq_n_s])
! ;;
! (define_insn "mve_vrshlq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:SI 2 "s_register_operand" "r")]
! 	 VRSHLQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrshl.<supf>%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrshlq_s, vrshlq_u])
! ;;
! (define_insn "mve_vrshlq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VRSHLQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrshl.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrshrq_n_s, vrshrq_n_u])
! ;;
! (define_insn "mve_vrshrq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:SI 2 "<MVE_pred2>" "<MVE_constraint2>")]
! 	 VRSHRQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrshr.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vshlq_n_u, vshlq_n_s])
! ;;
! (define_insn "mve_vshlq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:SI 2 "immediate_operand" "i")]
! 	 VSHLQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vshl.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vshlq_r_s, vshlq_r_u])
! ;;
! (define_insn "mve_vshlq_r_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:SI 2 "s_register_operand" "r")]
! 	 VSHLQ_R))
!   ]
!   "TARGET_HAVE_MVE"
!   "vshl.<supf>%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vsubq_n_s, vsubq_n_u])
! ;;
! (define_insn "mve_vsubq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VSUBQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vsub.i%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vsubq_s, vsubq_u])
! ;;
! (define_insn "mve_vsubq_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")]
! 	 VSUBQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vsub.i%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! (define_insn "mve_vsubq<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(minus:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
! 		     (match_operand:MVE_2 2 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE"
!   "vsub.i%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vabdq_f])
  ;;
! (define_insn "mve_vabdq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VABDQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vabd.f%#<V_sz_elem>	%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddlvaq_s vaddlvaq_u])
  ;;
! (define_insn "mve_vaddlvaq_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
--- 1129,1220 ----
  )
  
  ;;
! ;; [vqrshlq_n_s, vqrshlq_n_u]
! ;; [vrshlq_n_u, vrshlq_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "s_register_operand" "r")]
! 	 MVE_RSHIFT_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqshlq_n_s, vqshlq_n_u]
! ;; [vshlq_n_u, vshlq_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:SI 2 "immediate_operand" "i")]
! 	 MVE_SHIFT_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqshlq_r_u, vqshlq_r_s]
! ;; [vshlq_r_s, vshlq_r_u]
  ;;
! (define_insn "@mve_<mve_insn>q_r_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "s_register_operand" "r")]
! 	 MVE_SHIFT_R))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_r_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vqshluq_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:SI 2 "<MVE_pred>" "<MVE_constraint>")]
! 	 VQSHLUQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vabdq_f]
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 MVE_FP_VABDQ_ONLY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.f%#<V_sz_elem>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vaddlvaq_s vaddlvaq_u])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
***************
*** 1835,1857 ****
  	 VADDLVAQ))
    ]
    "TARGET_HAVE_MVE"
!   "vaddlva.<supf>32\t%Q0, %R0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vaddq_n_f])
  ;;
! (define_insn "mve_vaddq_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VADDQ_N_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vadd.f%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1222,1249 ----
  	 VADDLVAQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>32\t%Q0, %R0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf>v4si"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vaddq_n_f]
! ;; [vsubq_n_f]
! ;; [vmulq_n_f]
  ;;
! (define_insn "@mve_<mve_insn>q_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 MVE_FP_N_BINARY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.f%#<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 1865,1871 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vand\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1257,1264 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vand\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vandq_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 1879,1915 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vbic\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vbicq_n_s, vbicq_n_u])
! ;;
! (define_insn "mve_vbicq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_5 0 "s_register_operand" "=w")
! 	(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
! 		       (match_operand:SI 2 "immediate_operand" "i")]
! 	 VBICQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vbic.i%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vcaddq, vcaddq_rot90, vcadd_rot180, vcadd_rot270])
  ;;
! (define_insn "mve_vcaddq<mve_rot><mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VCADD))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vcadd.f%#<V_sz_elem>	%q0, %q1, %q2, #<rot>"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1272,1296 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vbic\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vbicq_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vcaddq_rot90_f, vcaddq_rot270_f]
! ;; [vcmulq, vcmulq_rot90, vcmulq_rot180, vcmulq_rot270]
  ;;
! (define_insn "@mve_<mve_insn>q<mve_rot>_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 MVE_VCADDQ_VCMULQ))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.f%#<V_sz_elem>\t%q0, %q1, %q2, #<rot>"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q<mve_rot>_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 1923,1929 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcmp.f%#<V_sz_elem>	<mve_cmp_op>, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1304,1311 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcmp.f%#<V_sz_elem>	<mve_cmp_op>, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcmp<mve_cmp_op>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 1938,1959 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcmp.f%#<V_sz_elem>	<mve_cmp_op>, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vcmulq, vcmulq_rot90, vcmulq_rot180, vcmulq_rot270])
! ;;
! (define_insn "mve_vcmulq<mve_rot><mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VCMUL))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vcmul.f%#<V_sz_elem>	%q0, %q1, %q2, #<rot>"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1320,1327 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcmp.f%#<V_sz_elem>	<mve_cmp_op>, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcmp<mve_cmp_op>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 1968,1975 ****
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vctpt.<MVE_vctp>\t%1"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
  
  ;;
  ;; [vcvtbq_f16_f32])
--- 1336,1345 ----
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vctpt.<MVE_vctp>\t%1"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vctp<MVE_vctp>q<MVE_vpred>"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")
! ])
  
  ;;
  ;; [vcvtbq_f16_f32])
***************
*** 1983,1989 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtb.f16.f32\t%q0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1353,1360 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtb.f16.f32\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtbq_f16_f32v8hf"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 1998,2004 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtt.f16.f32\t%q0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1369,1376 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vcvtt.f16.f32\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvttq_f16_f32v8hf"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 2012,2255 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "veor\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmaxnmaq_f])
! ;;
! (define_insn "mve_vmaxnmaq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VMAXNMAQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vmaxnma.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmaxnmavq_f])
! ;;
! (define_insn "mve_vmaxnmavq_f<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 			  (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VMAXNMAVQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vmaxnmav.f%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmaxnmq_f])
! ;;
! (define_insn "mve_vmaxnmq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(smax:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")
! 		    (match_operand:MVE_0 2 "s_register_operand" "w")))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vmaxnm.f%#<V_sz_elem>	%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmaxnmvq_f])
! ;;
! (define_insn "mve_vmaxnmvq_f<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 			  (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VMAXNMVQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vmaxnmv.f%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vminnmaq_f])
  ;;
! (define_insn "mve_vminnmaq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VMINNMAQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vminnma.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vminnmavq_f])
  ;;
! (define_insn "mve_vminnmavq_f<mode>"
    [
     (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
  	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
  			  (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VMINNMAVQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vminnmav.f%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vminnmq_f])
  ;;
! (define_insn "mve_vminnmq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(smin:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")
! 		    (match_operand:MVE_0 2 "s_register_operand" "w")))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vminnm.f%#<V_sz_elem>	%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vminnmvq_f])
! ;;
! (define_insn "mve_vminnmvq_f<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 			  (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 VMINNMVQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vminnmv.f%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlaldavq_u, vmlaldavq_s])
! ;;
! (define_insn "mve_vmlaldavq_<supf><mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
! 		    (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VMLALDAVQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlaldav.<supf>%#<V_sz_elem>	%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlaldavxq_s])
! ;;
! (define_insn "mve_vmlaldavxq_s<mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
! 		    (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VMLALDAVXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlaldavx.s%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlsldavq_s])
! ;;
! (define_insn "mve_vmlsldavq_s<mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
! 		    (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VMLSLDAVQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlsldav.s%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmlsldavxq_s])
  ;;
! (define_insn "mve_vmlsldavxq_s<mode>"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
  		    (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VMLSLDAVXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlsldavx.s%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmovnbq_u, vmovnbq_s])
! ;;
! (define_insn "mve_vmovnbq_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 				 (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VMOVNBQ))
    ]
    "TARGET_HAVE_MVE"
!   "vmovnb.i%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmovntq_s, vmovntq_u])
  ;;
! (define_insn "mve_vmovntq_<supf><mode>"
    [
     (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
  	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
  				 (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VMOVNTQ))
    ]
    "TARGET_HAVE_MVE"
!   "vmovnt.i%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmulq_f])
  ;;
! (define_insn "mve_vmulq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(mult:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")
  		    (match_operand:MVE_0 2 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vmul.f%#<V_sz_elem>	%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmulq_n_f])
! ;;
! (define_insn "mve_vmulq_n_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VMULQ_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vmul.f%#<V_sz_elem>	%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1384,1501 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "veor\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_veorq_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmaxnmaq_f]
! ;; [vminnmaq_f]
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 MVE_VMAXNMA_VMINNMAQ))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.f%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmaxnmavq_f]
! ;; [vmaxnmvq_f]
! ;; [vminnmavq_f]
! ;; [vminnmvq_f]
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
     (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
  	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
  			  (match_operand:MVE_0 2 "s_register_operand" "w")]
! 	 MVE_VMAXNMxV_MINNMxVQ))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.f%#<V_sz_elem>\t%0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmaxnmq_f]
! ;; [vminnmq_f]
  ;;
! (define_insn "@mve_<max_min_f_str>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(MAX_MIN_F:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")
! 			 (match_operand:MVE_0 2 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<max_min_f_str>.f%#<V_sz_elem>	%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<max_min_f_str>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmlaldavq_u, vmlaldavq_s]
! ;; [vmlaldavxq_s]
! ;; [vmlsldavq_s]
! ;; [vmlsldavxq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
  		    (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 MVE_VMLxLDAVxQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmovnbq_u, vmovnbq_s]
! ;; [vmovntq_s, vmovntq_u]
! ;; [vqmovnbq_u, vqmovnbq_s]
! ;; [vqmovntq_u, vqmovntq_s]
! ;; [vqmovunbq_s]
! ;; [vqmovuntq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
  	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
  				 (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 MVE_MOVN))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<isu>%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vaddq_f]
! ;; [vmulq_f]
! ;; [vsubq_f]
  ;;
! (define_insn "mve_<mve_addsubmul>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(MVE_INT_BINARY_RTX:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")
  		    (match_operand:MVE_0 2 "s_register_operand" "w")))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_addsubmul>.f%#<V_sz_elem>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_addsubmul>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 2263,2269 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vorn\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1509,1516 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vorn\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vornq_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 2277,2584 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vorr\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vorrq_n_u, vorrq_n_s])
  ;;
! (define_insn "mve_vorrq_n_<supf><mode>"
    [
     (set (match_operand:MVE_5 0 "s_register_operand" "=w")
  	(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "immediate_operand" "i")]
! 	 VORRQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vorr.i%#<V_sz_elem>	%q0, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmullbq_n_s])
! ;;
! (define_insn "mve_vqdmullbq_n_s<mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:<V_double_width> [(match_operand:MVE_5 1 "s_register_operand" "w")
! 				  (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VQDMULLBQ_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmullb.s%#<V_sz_elem>	%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmullbq_s])
! ;;
! (define_insn "mve_vqdmullbq_s<mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:<V_double_width> [(match_operand:MVE_5 1 "s_register_operand" "w")
! 				  (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VQDMULLBQ_S))
    ]
    "TARGET_HAVE_MVE"
!   "vqdmullb.s%#<V_sz_elem>	%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqdmulltq_n_s])
  ;;
! (define_insn "mve_vqdmulltq_n_s<mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:MVE_5 1 "s_register_operand" "w")
  				  (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 VQDMULLTQ_N_S))
    ]
    "TARGET_HAVE_MVE"
!   "vqdmullt.s%#<V_sz_elem>	%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqdmulltq_s])
  ;;
! (define_insn "mve_vqdmulltq_s<mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:MVE_5 1 "s_register_operand" "w")
  				  (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VQDMULLTQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmullt.s%#<V_sz_elem>	%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqmovnbq_u, vqmovnbq_s])
! ;;
! (define_insn "mve_vqmovnbq_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 				 (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VQMOVNBQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqmovnb.<supf>%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqmovntq_u, vqmovntq_s])
! ;;
! (define_insn "mve_vqmovntq_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 				 (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VQMOVNTQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqmovnt.<supf>%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqmovunbq_s])
! ;;
! (define_insn "mve_vqmovunbq_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 				 (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VQMOVUNBQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqmovunb.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqmovuntq_s])
! ;;
! (define_insn "mve_vqmovuntq_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 				 (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 VQMOVUNTQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqmovunt.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrmlaldavhxq_s])
! ;;
! (define_insn "mve_vrmlaldavhxq_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
! 		    (match_operand:V4SI 2 "s_register_operand" "w")]
! 	 VRMLALDAVHXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrmlaldavhx.s32\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrmlsldavhq_s])
! ;;
! (define_insn "mve_vrmlsldavhq_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
! 		    (match_operand:V4SI 2 "s_register_operand" "w")]
! 	 VRMLSLDAVHQ_S))
    ]
    "TARGET_HAVE_MVE"
!   "vrmlsldavh.s32\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vrmlsldavhxq_s])
  ;;
! (define_insn "mve_vrmlsldavhxq_sv4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
  		    (match_operand:V4SI 2 "s_register_operand" "w")]
! 	 VRMLSLDAVHXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrmlsldavhx.s32\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vshllbq_n_s, vshllbq_n_u])
! ;;
! (define_insn "mve_vshllbq_n_<supf><mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
! 	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")
! 				  (match_operand:SI 2 "immediate_operand" "i")]
! 	 VSHLLBQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vshllb.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vshlltq_n_u, vshlltq_n_s])
  ;;
! (define_insn "mve_vshlltq_n_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")
  				  (match_operand:SI 2 "immediate_operand" "i")]
! 	 VSHLLTQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vshllt.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vsubq_f])
! ;;
! (define_insn "mve_vsubq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(minus:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")
! 		     (match_operand:MVE_0 2 "s_register_operand" "w")))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vsub.f%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmulltq_poly_p])
! ;;
! (define_insn "mve_vmulltq_poly_p<mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
! 	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")
! 				  (match_operand:MVE_3 2 "s_register_operand" "w")]
! 	 VMULLTQ_POLY_P))
    ]
    "TARGET_HAVE_MVE"
!   "vmullt.p%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmullbq_poly_p])
  ;;
! (define_insn "mve_vmullbq_poly_p<mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")
  				  (match_operand:MVE_3 2 "s_register_operand" "w")]
! 	 VMULLBQ_POLY_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmullb.p%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrmlaldavhq_u vrmlaldavhq_s])
! ;;
! (define_insn "mve_vrmlaldavhq_<supf>v4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
! 		    (match_operand:V4SI 2 "s_register_operand" "w")]
! 	 VRMLALDAVHQ))
    ]
    "TARGET_HAVE_MVE"
!   "vrmlaldavh.<supf>32\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vbicq_m_n_s, vbicq_m_n_u])
! ;;
! (define_insn "mve_vbicq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_5 0 "s_register_operand" "=w")
! 	(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
! 		       (match_operand:SI 2 "immediate_operand" "i")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VBICQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vbict.i%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! ;;
! ;; [vcmpeqq_m_f])
  ;;
! (define_insn "mve_vcmpeqq_m_f<mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
  		    (match_operand:MVE_0 2 "s_register_operand" "w")
  		    (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VCMPEQQ_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmpt.f%#<V_sz_elem>	eq, %q1, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
  ;;
  ;; [vcvtaq_m_u, vcvtaq_m_s])
  ;;
--- 1524,1659 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vorr\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vorrq_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vbicq_n_s, vbicq_n_u]
! ;; [vorrq_n_u, vorrq_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_5 0 "s_register_operand" "=w")
  	(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "immediate_operand" "i")]
! 	 MVE_INT_N_BINARY_LOGIC))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.i%#<V_sz_elem>	%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqdmullbq_n_s]
! ;; [vqdmulltq_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:MVE_5 1 "s_register_operand" "w")
  				  (match_operand:<V_elem> 2 "s_register_operand" "r")]
! 	 MVE_VQDMULLxQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.s%#<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqdmullbq_s]
! ;; [vqdmulltq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:MVE_5 1 "s_register_operand" "w")
  				  (match_operand:MVE_5 2 "s_register_operand" "w")]
! 	 MVE_VQDMULLxQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.s%#<V_sz_elem>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vrmlaldavhq_u vrmlaldavhq_s]
! ;; [vrmlaldavhxq_s]
! ;; [vrmlsldavhq_s]
! ;; [vrmlsldavhxq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
  		    (match_operand:V4SI 2 "s_register_operand" "w")]
! 	 MVE_VRMLxLDAVxQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>32\t%Q0, %R0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf>v4si"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vshllbq_n_s, vshllbq_n_u]
! ;; [vshlltq_n_u, vshlltq_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")
  				  (match_operand:SI 2 "immediate_operand" "i")]
! 	 VSHLLxQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmulltq_poly_p]
! ;; [vmullbq_poly_p]
  ;;
! (define_insn "@mve_<mve_insn>q_poly_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:MVE_3 1 "s_register_operand" "w")
  				  (match_operand:MVE_3 2 "s_register_operand" "w")]
! 	 VMULLxQ_POLY))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_poly_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vcmpeqq_m_f]
! ;; [vcmpgeq_m_f]
! ;; [vcmpgtq_m_f]
! ;; [vcmpleq_m_f]
! ;; [vcmpltq_m_f]
! ;; [vcmpneq_m_f]
  ;;
! (define_insn "@mve_vcmp<mve_cmp_op1>q_m_f<mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
  		    (match_operand:MVE_0 2 "s_register_operand" "w")
  		    (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_CMP_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmpt.f%#<V_sz_elem>\t<mve_cmp_op1>, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcmp<mve_cmp_op1>q_f<mode>"))
!   (set_attr "length""8")])
! 
  ;;
  ;; [vcvtaq_m_u, vcvtaq_m_s])
  ;;
***************
*** 2592,2599 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtat.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
  ;;
  ;; [vcvtq_m_to_f_s, vcvtq_m_to_f_u])
  ;;
--- 1667,1676 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtat.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtaq_<supf><mode>"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")])
! 
  ;;
  ;; [vcvtq_m_to_f_s, vcvtq_m_to_f_u])
  ;;
***************
*** 2607,2664 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtt.f%#<V_sz_elem>.<supf>%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! ;;
! ;; [vqrshrnbq_n_u, vqrshrnbq_n_s])
! ;;
! (define_insn "mve_vqrshrnbq_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 				 (match_operand:MVE_5 2 "s_register_operand" "w")
! 				 (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 VQRSHRNBQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrshrnb.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
  ;;
! ;; [vqrshrunbq_n_s])
  ;;
! (define_insn "mve_vqrshrunbq_n_s<mode>"
    [
     (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
  	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
  				 (match_operand:MVE_5 2 "s_register_operand" "w")
  				 (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 VQRSHRUNBQ_N_S))
    ]
    "TARGET_HAVE_MVE"
!   "vqrshrunb.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
  ])
  ;;
! ;; [vrmlaldavhaq_s vrmlaldavhaq_u])
  ;;
! (define_insn "mve_vrmlaldavhaq_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
  		    (match_operand:V4SI 2 "s_register_operand" "w")
  		    (match_operand:V4SI 3 "s_register_operand" "w")]
! 	 VRMLALDAVHAQ))
    ]
    "TARGET_HAVE_MVE"
!   "vrmlaldavha.<supf>32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vabavq_s, vabavq_u])
  ;;
! (define_insn "mve_vabavq_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=r")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
--- 1684,1746 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtt.f%#<V_sz_elem>.<supf>%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtq_to_f_<supf><mode>"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")])
! 
  ;;
! ;; [vqrshrnbq_n_u, vqrshrnbq_n_s]
! ;; [vqrshrntq_n_u, vqrshrntq_n_s]
! ;; [vqrshrunbq_n_s]
! ;; [vqrshruntq_n_s]
! ;; [vqshrnbq_n_u, vqshrnbq_n_s]
! ;; [vqshrntq_n_u, vqshrntq_n_s]
! ;; [vqshrunbq_n_s]
! ;; [vqshruntq_n_s]
! ;; [vrshrnbq_n_s, vrshrnbq_n_u]
! ;; [vrshrntq_n_u, vrshrntq_n_s]
! ;; [vshrnbq_n_u, vshrnbq_n_s]
! ;; [vshrntq_n_s, vshrntq_n_u]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
  	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
  				 (match_operand:MVE_5 2 "s_register_operand" "w")
  				 (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 MVE_SHRN_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<isu>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
+ 
  ;;
! ;; [vrmlaldavhaq_s vrmlaldavhaq_u]
! ;; [vrmlaldavhaxq_s]
! ;; [vrmlsldavhaq_s]
! ;; [vrmlsldavhaxq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
  		    (match_operand:V4SI 2 "s_register_operand" "w")
  		    (match_operand:V4SI 3 "s_register_operand" "w")]
! 	 MVE_VRMLxLDAVHAxQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>32\t%Q0, %R0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf>v4si"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vabavq_s, vabavq_u])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=r")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
***************
*** 2667,2674 ****
  	 VABAVQ))
    ]
    "TARGET_HAVE_MVE"
!   "vabav.<supf>%#<V_sz_elem>\t%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
--- 1749,1758 ----
  	 VABAVQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
***************
*** 2714,2741 ****
  		   (match_dup 4)]
  	VSHLCQ))]
   "TARGET_HAVE_MVE"
!  "vshlc\t%q0, %1, %4")
  
  ;;
! ;; [vabsq_m_s])
  ;;
! (define_insn "mve_vabsq_m_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VABSQ_M_S))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vabst.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vaddvaq_p_u, vaddvaq_p_s])
  ;;
! (define_insn "mve_vaddvaq_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
--- 1798,1834 ----
  		   (match_dup 4)]
  	VSHLCQ))]
   "TARGET_HAVE_MVE"
!  "vshlc\t%q0, %1, %4"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vshlcq_<supf><mode>"))
!   (set_attr "type" "mve_move")
! ])
  
  ;;
! ;; [vabsq_m_s]
! ;; [vclsq_m_s]
! ;; [vclzq_m_s, vclzq_m_u]
! ;; [vnegq_m_s]
! ;; [vqabsq_m_s]
! ;; [vqnegq_m_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_INT_M_UNARY))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<isu>%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vaddvaq_p_u, vaddvaq_p_s])
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
***************
*** 2744,3045 ****
  	 VADDVAQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vaddvat.<supf>%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vclsq_m_s])
! ;;
! (define_insn "mve_vclsq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VCLSQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vclst.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vclzq_m_s, vclzq_m_u])
! ;;
! (define_insn "mve_vclzq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VCLZQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vclzt.i%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vcmpcsq_m_n_u])
- ;;
- (define_insn "mve_vcmpcsq_m_n_u<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPCSQ_M_N_U))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.u%#<V_sz_elem>	cs, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpcsq_m_u])
- ;;
- (define_insn "mve_vcmpcsq_m_u<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPCSQ_M_U))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.u%#<V_sz_elem>	cs, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpeqq_m_n_u, vcmpeqq_m_n_s])
- ;;
- (define_insn "mve_vcmpeqq_m_n_<supf><mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPEQQ_M_N))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.i%#<V_sz_elem>	eq, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpeqq_m_u, vcmpeqq_m_s])
- ;;
- (define_insn "mve_vcmpeqq_m_<supf><mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPEQQ_M))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.i%#<V_sz_elem>	eq, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpgeq_m_n_s])
- ;;
- (define_insn "mve_vcmpgeq_m_n_s<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPGEQ_M_N_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.s%#<V_sz_elem>	ge, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpgeq_m_s])
- ;;
- (define_insn "mve_vcmpgeq_m_s<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPGEQ_M_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.s%#<V_sz_elem>	ge, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpgtq_m_n_s])
- ;;
- (define_insn "mve_vcmpgtq_m_n_s<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPGTQ_M_N_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.s%#<V_sz_elem>	gt, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpgtq_m_s])
- ;;
- (define_insn "mve_vcmpgtq_m_s<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPGTQ_M_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.s%#<V_sz_elem>	gt, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmphiq_m_n_u])
- ;;
- (define_insn "mve_vcmphiq_m_n_u<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPHIQ_M_N_U))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.u%#<V_sz_elem>	hi, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmphiq_m_u])
- ;;
- (define_insn "mve_vcmphiq_m_u<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPHIQ_M_U))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.u%#<V_sz_elem>	hi, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpleq_m_n_s])
- ;;
- (define_insn "mve_vcmpleq_m_n_s<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPLEQ_M_N_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.s%#<V_sz_elem>	le, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpleq_m_s])
- ;;
- (define_insn "mve_vcmpleq_m_s<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPLEQ_M_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.s%#<V_sz_elem>	le, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpltq_m_n_s])
- ;;
- (define_insn "mve_vcmpltq_m_n_s<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPLTQ_M_N_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.s%#<V_sz_elem>	lt, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpltq_m_s])
- ;;
- (define_insn "mve_vcmpltq_m_s<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPLTQ_M_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vcmpt.s%#<V_sz_elem>	lt, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpneq_m_n_u, vcmpneq_m_n_s])
  ;;
! (define_insn "mve_vcmpneq_m_n_<supf><mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VCMPNEQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vcmpt.i%#<V_sz_elem>	ne, %q1, %2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vcmpneq_m_s, vcmpneq_m_u])
  ;;
! (define_insn "mve_vcmpneq_m_<supf><mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VCMPNEQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vcmpt.i%#<V_sz_elem>	ne, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vdupq_m_n_s, vdupq_m_n_u])
  ;;
! (define_insn "mve_vdupq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
--- 1837,1899 ----
  	 VADDVAQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vcmpcsq_m_n_u])
  ;; [vcmpeqq_m_n_u, vcmpeqq_m_n_s])
  ;; [vcmpgeq_m_n_s])
  ;; [vcmpgtq_m_n_s])
  ;; [vcmphiq_m_n_u])
  ;; [vcmpleq_m_n_s])
  ;; [vcmpltq_m_n_s])
  ;; [vcmpneq_m_n_u, vcmpneq_m_n_s])
  ;;
! (define_insn "@mve_vcmp<mve_cmp_op1>q_m_n_<supf><mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_CMP_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vcmpt.<isu>%#<V_sz_elem>\t<mve_cmp_op1>, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcmp<mve_cmp_op1>q_n_<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vcmpcsq_m_u]
! ;; [vcmpeqq_m_u, vcmpeqq_m_s]
! ;; [vcmpgeq_m_s]
! ;; [vcmpgtq_m_s]
! ;; [vcmphiq_m_u]
! ;; [vcmpleq_m_s]
! ;; [vcmpltq_m_s]
! ;; [vcmpneq_m_s, vcmpneq_m_u]
  ;;
! (define_insn "@mve_vcmp<mve_cmp_op1>q_m_<supf><mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(unspec:<MVE_VPRED> [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_CMP_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vcmpt.<isu>%#<V_sz_elem>\t<mve_cmp_op1>, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcmp<mve_cmp_op1>q_<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vdupq_m_n_s, vdupq_m_n_u])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
***************
*** 3048,3269 ****
  	 VDUPQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vdupt.%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmaxaq_m_s])
! ;;
! (define_insn "mve_vmaxaq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMAXAQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmaxat.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmaxavq_p_s])
! ;;
! (define_insn "mve_vmaxavq_p_s<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMAXAVQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmaxavt.s%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmaxvq_p_u, vmaxvq_p_s])
! ;;
! (define_insn "mve_vmaxvq_p_<supf><mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMAXVQ_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmaxvt.<supf>%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vminaq_m_s])
  ;;
! (define_insn "mve_vminaq_m_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMINAQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vminat.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vminavq_p_s])
! ;;
! (define_insn "mve_vminavq_p_s<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMINAVQ_P_S))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vminavt.s%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vminvq_p_s, vminvq_p_u])
  ;;
! (define_insn "mve_vminvq_p_<supf><mode>"
    [
     (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
  	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMINVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vminvt.<supf>%#<V_sz_elem>\t%0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmladavaq_u, vmladavaq_s])
  ;;
! (define_insn "mve_vmladavaq_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VMLADAVAQ))
    ]
    "TARGET_HAVE_MVE"
!   "vmladava.<supf>%#<V_sz_elem>	%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmladavq_p_u, vmladavq_p_s])
! ;;
! (define_insn "mve_vmladavq_p_<supf><mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMLADAVQ_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmladavt.<supf>%#<V_sz_elem>\t%0, %q1, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmladavxq_p_s])
  ;;
! (define_insn "mve_vmladavxq_p_s<mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMLADAVXQ_P_S))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmladavxt.s%#<V_sz_elem>\t%0, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmlaq_n_u, vmlaq_n_s])
! ;;
! (define_insn "mve_vmlaq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 VMLAQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmla.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlasq_n_u, vmlasq_n_s])
  ;;
! (define_insn "mve_vmlasq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 VMLASQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vmlas.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
- ;; [vmlsdavq_p_s])
- ;;
- (define_insn "mve_vmlsdavq_p_s<mode>"
-   [
-    (set (match_operand:SI 0 "s_register_operand" "=Te")
- 	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VMLSDAVQ_P_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vmlsdavt.s%#<V_sz_elem>	%0, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vmlsdavxq_p_s])
- ;;
- (define_insn "mve_vmlsdavxq_p_s<mode>"
-   [
-    (set (match_operand:SI 0 "s_register_operand" "=Te")
- 	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VMLSDAVXQ_P_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vmlsdavxt.s%#<V_sz_elem>	%0, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vmvnq_m_s, vmvnq_m_u])
  ;;
! (define_insn "mve_vmvnq_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
--- 1902,2017 ----
  	 VDUPQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmaxaq_m_s]
! ;; [vminaq_m_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_VMAXAVMINAQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.s%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmaxavq_p_s]
! ;; [vmaxvq_p_u, vmaxvq_p_s]
! ;; [vminavq_p_s]
! ;; [vminvq_p_s, vminvq_p_u]
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf><mode>"
    [
     (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
  	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_VMAXVQ_VMINVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmladavaq_u, vmladavaq_s]
! ;; [vmladavaxq_s]
! ;; [vmlsdavaq_s]
! ;; [vmlsdavaxq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 MVE_VMLxDAVAQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmladavq_p_u, vmladavq_p_s]
! ;; [vmladavxq_p_s]
! ;; [vmlsdavq_p_s]
! ;; [vmlsdavxq_p_s]
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_VMLxDAVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmlaq_n_u, vmlaq_n_s]
! ;; [vmlasq_n_u, vmlasq_n_s]
! ;; [vqdmlahq_n_s]
! ;; [vqdmlashq_n_s]
! ;; [vqrdmlahq_n_s]
! ;; [vqrdmlashq_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 MVE_VMLxQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vmvnq_m_s, vmvnq_m_u])
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
***************
*** 3272,3301 ****
  	 VMVNQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmvnt\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vnegq_m_s])
! ;;
! (define_insn "mve_vnegq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VNEGQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vnegt.s%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vpselq_u, vpselq_s])
  ;;
! (define_insn "@mve_vpselq_<supf><mode>"
    [
     (set (match_operand:MVE_1 0 "s_register_operand" "=w")
  	(unspec:MVE_1 [(match_operand:MVE_1 1 "s_register_operand" "w")
--- 2020,2034 ----
  	 VMVNQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vpselq_u, vpselq_s])
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:MVE_1 0 "s_register_operand" "=w")
  	(unspec:MVE_1 [(match_operand:MVE_1 1 "s_register_operand" "w")
***************
*** 3304,3509 ****
  	 VPSELQ))
    ]
    "TARGET_HAVE_MVE"
!   "vpsel\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqabsq_m_s])
! ;;
! (define_insn "mve_vqabsq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VQABSQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqabst.s%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmlahq_n_s])
! ;;
! (define_insn "mve_vqdmlahq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 VQDMLAHQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmlah.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmlashq_n_s])
! ;;
! (define_insn "mve_vqdmlashq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 VQDMLASHQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmlash.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqnegq_m_s])
! ;;
! (define_insn "mve_vqnegq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VQNEGQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqnegt.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmladhq_s])
! ;;
! (define_insn "mve_vqrdmladhq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VQRDMLADHQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrdmladh.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrdmladhxq_s])
! ;;
! (define_insn "mve_vqrdmladhxq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VQRDMLADHXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrdmladhx.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrdmlahq_n_s])
! ;;
! (define_insn "mve_vqrdmlahq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 VQRDMLAHQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrdmlah.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrdmlashq_n_s])
! ;;
! (define_insn "mve_vqrdmlashq_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 VQRDMLASHQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrdmlash.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrdmlsdhq_s])
! ;;
! (define_insn "mve_vqrdmlsdhq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VQRDMLSDHQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrdmlsdh.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqrdmlsdhxq_s])
  ;;
! (define_insn "mve_vqrdmlsdhxq_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VQRDMLSDHXQ_S))
    ]
    "TARGET_HAVE_MVE"
!   "vqrdmlsdhx.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqrshlq_m_n_s, vqrshlq_m_n_u])
  ;;
! (define_insn "mve_vqrshlq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VQRSHLQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vqrshlt.<supf>%#<V_sz_elem>	%q0, %2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqshlq_m_r_u, vqshlq_m_r_s])
  ;;
! (define_insn "mve_vqshlq_m_r_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VQSHLQ_M_R))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vqshlt.<supf>%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrev64q_m_u, vrev64q_m_s])
  ;;
! (define_insn "mve_vrev64q_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=&w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
--- 2037,2111 ----
  	 VPSELQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqdmladhq_s]
! ;; [vqdmladhxq_s]
! ;; [vqdmlsdhq_s]
! ;; [vqdmlsdhxq_s]
! ;; [vqrdmladhq_s]
! ;; [vqrdmladhxq_s]
! ;; [vqrdmlsdhq_s]
! ;; [vqrdmlsdhxq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 MVE_VQxDMLxDHxQ_S))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.s%#<V_sz_elem>\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vqrshlq_m_n_s, vqrshlq_m_n_u]
! ;; [vrshlq_m_n_s, vrshlq_m_n_u]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_RSHIFT_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqshlq_m_r_u, vqshlq_m_r_s]
! ;; [vshlq_m_r_u, vshlq_m_r_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_r_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_SHIFT_M_R))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_r_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrev64q_m_u, vrev64q_m_s])
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=&w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
***************
*** 3512,3557 ****
  	 VREV64Q_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vrev64t.%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrshlq_m_n_s, vrshlq_m_n_u])
! ;;
! (define_insn "mve_vrshlq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:SI 2 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRSHLQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrshlt.<supf>%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vshlq_m_r_u, vshlq_m_r_s])
! ;;
! (define_insn "mve_vshlq_m_r_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:SI 2 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VSHLQ_M_R))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vshlt.<supf>%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vsliq_n_u, vsliq_n_s])
  ;;
! (define_insn "mve_vsliq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
--- 2114,2128 ----
  	 VREV64Q_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vsliq_n_u, vsliq_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
***************
*** 3560,3573 ****
  	 VSLIQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vsli.%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vsriq_n_u, vsriq_n_s])
  ;;
! (define_insn "mve_vsriq_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
--- 2131,2145 ----
  	 VSLIQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vsriq_n_u, vsriq_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
***************
*** 3576,3716 ****
  	 VSRIQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "vsri.%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmlsdhxq_s])
! ;;
! (define_insn "mve_vqdmlsdhxq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VQDMLSDHXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmlsdhx.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmlsdhq_s])
! ;;
! (define_insn "mve_vqdmlsdhq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VQDMLSDHQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmlsdh.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmladhxq_s])
! ;;
! (define_insn "mve_vqdmladhxq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VQDMLADHXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmladhx.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqdmladhq_s])
! ;;
! (define_insn "mve_vqdmladhq_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VQDMLADHQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqdmladh.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlsdavaxq_s])
! ;;
! (define_insn "mve_vmlsdavaxq_s<mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")
! 		    (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VMLSDAVAXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlsdavax.s%#<V_sz_elem>\t%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlsdavaq_s])
! ;;
! (define_insn "mve_vmlsdavaq_s<mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")
! 		    (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VMLSDAVAQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlsdava.s%#<V_sz_elem>\t%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmladavaxq_s])
! ;;
! (define_insn "mve_vmladavaxq_s<mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")
! 		    (match_operand:MVE_2 3 "s_register_operand" "w")]
! 	 VMLADAVAXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmladavax.s%#<V_sz_elem>\t%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! ;;
! ;; [vabsq_m_f])
  ;;
! (define_insn "mve_vabsq_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VABSQ_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vabst.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vaddlvaq_p_s vaddlvaq_p_u])
  ;;
! (define_insn "mve_vaddlvaq_p_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
--- 2148,2186 ----
  	 VSRIQ_N))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vabsq_m_f]
! ;; [vnegq_m_f]
! ;; [vrndaq_m_f]
! ;; [vrndmq_m_f]
! ;; [vrndnq_m_f]
! ;; [vrndpq_m_f]
! ;; [vrndq_m_f]
! ;; [vrndxq_m_f]
  ;;
! (define_insn "@mve_<mve_insn>q_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_FP_M_UNARY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_mnemo>t.f%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vaddlvaq_p_s vaddlvaq_p_u])
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
***************
*** 3719,3731 ****
  	 VADDLVAQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vaddlvat.<supf>32\t%Q0, %R0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  ;;
  ;; [vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270])
  ;;
! (define_insn "mve_vcmlaq<mve_rot><mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w,w")
  	(plus:MVE_0 (match_operand:MVE_0 1 "reg_or_zero_operand" "Dz,0")
--- 2189,2202 ----
  	 VADDLVAQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>32\t%Q0, %R0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  ;;
  ;; [vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270])
  ;;
! (define_insn "@mve_<mve_insn>q<mve_rot>_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w,w")
  	(plus:MVE_0 (match_operand:MVE_0 1 "reg_or_zero_operand" "Dz,0")
***************
*** 3738,3920 ****
    "@
     vcmul.f%#<V_sz_elem>	%q0, %q2, %q3, #<rot>
     vcmla.f%#<V_sz_elem>	%q0, %q2, %q3, #<rot>"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vcmpeqq_m_n_f])
- ;;
- (define_insn "mve_vcmpeqq_m_n_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPEQQ_M_N_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	eq, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpgeq_m_f])
- ;;
- (define_insn "mve_vcmpgeq_m_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:MVE_0 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPGEQ_M_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	ge, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpgeq_m_n_f])
- ;;
- (define_insn "mve_vcmpgeq_m_n_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPGEQ_M_N_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	ge, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpgtq_m_f])
- ;;
- (define_insn "mve_vcmpgtq_m_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:MVE_0 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPGTQ_M_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	gt, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpgtq_m_n_f])
- ;;
- (define_insn "mve_vcmpgtq_m_n_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPGTQ_M_N_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	gt, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpleq_m_f])
- ;;
- (define_insn "mve_vcmpleq_m_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:MVE_0 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPLEQ_M_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	le, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpleq_m_n_f])
- ;;
- (define_insn "mve_vcmpleq_m_n_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPLEQ_M_N_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	le, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpltq_m_f])
- ;;
- (define_insn "mve_vcmpltq_m_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:MVE_0 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPLTQ_M_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	lt, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpltq_m_n_f])
- ;;
- (define_insn "mve_vcmpltq_m_n_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:<V_elem> 2 "s_register_operand" "r")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPLTQ_M_N_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	lt, %q1, %2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vcmpneq_m_f])
- ;;
- (define_insn "mve_vcmpneq_m_f<mode>"
-   [
-    (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
- 	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
- 		       (match_operand:MVE_0 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VCMPNEQ_M_F))
-   ]
-   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
-   "vpst\;vcmpt.f%#<V_sz_elem>	ne, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vcmpneq_m_n_f])
  ;;
! (define_insn "mve_vcmpneq_m_n_f<mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VCMPNEQ_M_N_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmpt.f%#<V_sz_elem>	ne, %q1, %2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2209,2239 ----
    "@
     vcmul.f%#<V_sz_elem>	%q0, %q2, %q3, #<rot>
     vcmla.f%#<V_sz_elem>	%q0, %q2, %q3, #<rot>"
!   [(set_attr_alternative "mve_unpredicated_insn" [(symbol_ref "CODE_FOR_mve_<mve_insn>q<mve_rot>_f<mode>")
! 						  (symbol_ref "CODE_FOR_mve_<mve_insn>q<mve_rot>_f<mode>")])
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vcmpeqq_m_n_f])
  ;; [vcmpgeq_m_n_f])
  ;; [vcmpgtq_m_n_f])
  ;; [vcmpleq_m_n_f])
  ;; [vcmpltq_m_n_f])
  ;; [vcmpneq_m_n_f])
  ;;
! (define_insn "@mve_vcmp<mve_cmp_op1>q_m_n_f<mode>"
    [
     (set (match_operand:<MVE_VPRED> 0 "vpr_register_operand" "=Up")
  	(unspec:<MVE_VPRED> [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_CMP_M_N_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmpt.f%#<V_sz_elem>\t<mve_cmp_op1>, %q1, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcmp<mve_cmp_op1>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 3930,3936 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtbt.f16.f32\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2249,2256 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtbt.f16.f32\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtbq_f16_f32v8hf"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 3946,3952 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtbt.f32.f16\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2266,2273 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtbt.f32.f16\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtbq_f32_f16v4sf"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 3962,3968 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvttt.f16.f32\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2283,2290 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvttt.f16.f32\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvttq_f16_f32v8hf"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 3978,4350 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvttt.f32.f16\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
  
  ;;
  ;; [vdupq_m_n_f])
  ;;
! (define_insn "mve_vdupq_m_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VDUPQ_M_N_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vdupt.%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vfmaq_f])
  ;;
! (define_insn "mve_vfmaq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")]
! 	 VFMAQ_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vfma.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vfmaq_n_f])
! ;;
! (define_insn "mve_vfmaq_n_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 VFMAQ_N_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vfma.f%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vfmasq_n_f])
  ;;
! (define_insn "mve_vfmasq_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 VFMASQ_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vfmas.f%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! ;;
! ;; [vfmsq_f])
! ;;
! (define_insn "mve_vfmsq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")]
! 	 VFMSQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vfms.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmaxnmaq_m_f])
! ;;
! (define_insn "mve_vmaxnmaq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMAXNMAQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vmaxnmat.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! ;;
! ;; [vmaxnmavq_p_f])
! ;;
! (define_insn "mve_vmaxnmavq_p_f<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMAXNMAVQ_P_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vmaxnmavt.f%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmaxnmvq_p_f])
! ;;
! (define_insn "mve_vmaxnmvq_p_f<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMAXNMVQ_P_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vmaxnmvt.f%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! ;;
! ;; [vminnmaq_m_f])
  ;;
! (define_insn "mve_vminnmaq_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMINNMAQ_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vminnmat.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vminnmavq_p_f])
! ;;
! (define_insn "mve_vminnmavq_p_f<mode>"
!   [
!    (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
! 	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMINNMAVQ_P_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vminnmavt.f%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! ;;
! ;; [vminnmvq_p_f])
  ;;
! (define_insn "mve_vminnmvq_p_f<mode>"
    [
     (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
  	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMINNMVQ_P_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vminnmvt.f%#<V_sz_elem>	%0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlaldavaq_s, vmlaldavaq_u])
! ;;
! (define_insn "mve_vmlaldavaq_<supf><mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:MVE_5 3 "s_register_operand" "w")]
! 	 VMLALDAVAQ))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlaldava.<supf>%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlaldavaxq_s])
! ;;
! (define_insn "mve_vmlaldavaxq_s<mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:MVE_5 3 "s_register_operand" "w")]
! 	 VMLALDAVAXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vmlaldavax.s%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vmlaldavq_p_u, vmlaldavq_p_s])
! ;;
! (define_insn "mve_vmlaldavq_p_<supf><mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMLALDAVQ_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlaldavt.<supf>%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlaldavxq_p_s])
! ;;
! (define_insn "mve_vmlaldavxq_p_s<mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMLALDAVXQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlaldavxt.s%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
- ;;
- ;; [vmlsldavaq_s])
- ;;
- (define_insn "mve_vmlsldavaq_s<mode>"
-   [
-    (set (match_operand:DI 0 "s_register_operand" "=r")
- 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
- 		       (match_operand:MVE_5 2 "s_register_operand" "w")
- 		       (match_operand:MVE_5 3 "s_register_operand" "w")]
- 	 VMLSLDAVAQ_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vmlsldava.s%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
-   [(set_attr "type" "mve_move")
- ])
  
  ;;
! ;; [vmlsldavaxq_s])
  ;;
! (define_insn "mve_vmlsldavaxq_s<mode>"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:MVE_5 3 "s_register_operand" "w")]
! 	 VMLSLDAVAXQ_S))
    ]
    "TARGET_HAVE_MVE"
!   "vmlsldavax.s%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmlsldavq_p_s])
  ;;
! (define_insn "mve_vmlsldavq_p_s<mode>"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMLSLDAVQ_P_S))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmlsldavt.s%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
- ;; [vmlsldavxq_p_s])
- ;;
- (define_insn "mve_vmlsldavxq_p_s<mode>"
-   [
-    (set (match_operand:DI 0 "s_register_operand" "=r")
- 	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
- 		       (match_operand:MVE_5 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VMLSLDAVXQ_P_S))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vmlsldavxt.s%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- ;;
  ;; [vmovlbq_m_u, vmovlbq_m_s])
- ;;
- (define_insn "mve_vmovlbq_m_<supf><mode>"
-   [
-    (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
- 	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
- 		       (match_operand:MVE_3 2 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
- 	 VMOVLBQ_M))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vmovlbt.<supf>%#<V_sz_elem>	%q0, %q2"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- ;;
  ;; [vmovltq_m_u, vmovltq_m_s])
  ;;
! (define_insn "mve_vmovltq_m_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_3 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMOVLTQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmovltt.<supf>%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! ;;
! ;; [vmovnbq_m_u, vmovnbq_m_s])
! ;;
! (define_insn "mve_vmovnbq_m_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMOVNBQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmovnbt.i%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmovntq_m_u, vmovntq_m_s])
  ;;
! (define_insn "mve_vmovntq_m_<supf><mode>"
    [
     (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
  	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMOVNTQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmovntt.i%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vmvnq_m_n_u, vmvnq_m_n_s])
  ;;
! (define_insn "mve_vmvnq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_5 0 "s_register_operand" "=w")
  	(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
--- 2300,2485 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvttt.f32.f16\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvttq_f32_f16v4sf"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")])
  
  ;;
  ;; [vdupq_m_n_f])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:<V_elem> 2 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_FP_M_N_VDUPQ_ONLY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vfmaq_f]
! ;; [vfmsq_f]
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")]
! 	 MVE_VFMxQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.f%#<V_sz_elem>\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vfmaq_n_f]
! ;; [vfmasq_n_f]
  ;;
! (define_insn "@mve_<mve_insn>q_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")]
! 	 MVE_VFMAxQ_N_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>.f%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmaxnmaq_m_f]
! ;; [vminnmaq_m_f]
  ;;
! (define_insn "@mve_<mve_insn>q_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_VMAXNMA_VMINNMAQ_M))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.f%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmaxnmavq_p_f]
! ;; [vmaxnmvq_p_f]
! ;; [vminnmavq_p_f]
! ;; [vminnmvq_p_f]
  ;;
! (define_insn "@mve_<mve_insn>q_p_f<mode>"
    [
     (set (match_operand:<V_elem> 0 "s_register_operand" "=r")
  	(unspec:<V_elem> [(match_operand:<V_elem> 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_VMAXNMxV_MINNMxVQ_P))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.f%#<V_sz_elem>\t%0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmlaldavaq_s, vmlaldavaq_u]
! ;; [vmlaldavaxq_s]
! ;; [vmlsldavaq_s]
! ;; [vmlsldavaxq_s]
  ;;
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:MVE_5 3 "s_register_operand" "w")]
! 	 MVE_VMLxLDAVAxQ))
    ]
    "TARGET_HAVE_MVE"
!   "<mve_insn>.<supf>%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "mve_safe_imp_xlane_pred" "yes")
!   (set_attr "type" "mve_move")
  ])
  
  ;;
! ;; [vmlaldavq_p_u, vmlaldavq_p_s]
! ;; [vmlaldavxq_p_s]
! ;; [vmlsldavq_p_s]
! ;; [vmlsldavxq_p_s]
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf><mode>"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:MVE_5 1 "s_register_operand" "w")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_VMLxLDAVxQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%Q0, %R0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vmovlbq_m_u, vmovlbq_m_s])
  ;; [vmovltq_m_u, vmovltq_m_s])
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_3 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VMOVLxQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmovnbq_m_u, vmovnbq_m_s]
! ;; [vmovntq_m_u, vmovntq_m_s]
! ;; [vqmovnbq_m_s, vqmovnbq_m_u]
! ;; [vqmovntq_m_u, vqmovntq_m_s]
! ;; [vqmovunbq_m_s]
! ;; [vqmovuntq_m_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
  	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_MOVN_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<isu>%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vmvnq_m_n_u, vmvnq_m_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_5 0 "s_register_operand" "=w")
  	(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
***************
*** 4353,4588 ****
  	 VMVNQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmvnt.i%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! ;;
! ;; [vnegq_m_f])
! ;;
! (define_insn "mve_vnegq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VNEGQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vnegt.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vorrq_m_n_s, vorrq_m_n_u])
  ;;
! (define_insn "mve_vorrq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_5 0 "s_register_operand" "=w")
  	(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "immediate_operand" "i")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VORRQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vorrt.i%#<V_sz_elem>\t%q0, %2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  ;;
  ;; [vpselq_f])
  ;;
! (define_insn "@mve_vpselq_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VPSELQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpsel\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqmovnbq_m_s, vqmovnbq_m_u])
! ;;
! (define_insn "mve_vqmovnbq_m_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VQMOVNBQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqmovnbt.<supf>%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqmovntq_m_u, vqmovntq_m_s])
! ;;
! (define_insn "mve_vqmovntq_m_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VQMOVNTQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqmovntt.<supf>%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqmovunbq_m_s])
! ;;
! (define_insn "mve_vqmovunbq_m_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VQMOVUNBQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqmovunbt.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqmovuntq_m_s])
! ;;
! (define_insn "mve_vqmovuntq_m_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VQMOVUNTQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqmovuntt.s%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrshrntq_n_u, vqrshrntq_n_s])
! ;;
! (define_insn "mve_vqrshrntq_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 VQRSHRNTQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrshrnt.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqrshruntq_n_s])
! ;;
! (define_insn "mve_vqrshruntq_n_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 VQRSHRUNTQ_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqrshrunt.s%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqshrnbq_n_u, vqshrnbq_n_s])
! ;;
! (define_insn "mve_vqshrnbq_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 VQSHRNBQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqshrnb.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqshrntq_n_u, vqshrntq_n_s])
! ;;
! (define_insn "mve_vqshrntq_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 VQSHRNTQ_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqshrnt.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqshrunbq_n_s])
! ;;
! (define_insn "mve_vqshrunbq_n_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 VQSHRUNBQ_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqshrunb.s%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vqshruntq_n_s])
! ;;
! (define_insn "mve_vqshruntq_n_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
! 	 VQSHRUNTQ_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vqshrunt.s%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev32q_m_f])
  ;;
! (define_insn "mve_vrev32q_m_fv8hf"
    [
!    (set (match_operand:V8HF 0 "s_register_operand" "=w")
! 	(unspec:V8HF [(match_operand:V8HF 1 "s_register_operand" "0")
! 		       (match_operand:V8HF 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VREV32Q_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vrev32t.16\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrev32q_m_s, vrev32q_m_u])
  ;;
! (define_insn "mve_vrev32q_m_<supf><mode>"
    [
     (set (match_operand:MVE_3 0 "s_register_operand" "=w")
  	(unspec:MVE_3 [(match_operand:MVE_3 1 "s_register_operand" "0")
--- 2488,2554 ----
  	 VMVNQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.i%#<V_sz_elem>\t%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vbicq_m_n_s, vbicq_m_n_u]
! ;; [vorrq_m_n_s, vorrq_m_n_u]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_5 0 "s_register_operand" "=w")
  	(unspec:MVE_5 [(match_operand:MVE_5 1 "s_register_operand" "0")
  		       (match_operand:SI 2 "immediate_operand" "i")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_INT_M_N_BINARY_LOGIC))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.i%#<V_sz_elem>\t%q0, %2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
+ 
  ;;
  ;; [vpselq_f])
  ;;
! (define_insn "@mve_<mve_insn>q_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_VPSELQ_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "<mve_insn>\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
  ])
  
  ;;
  ;; [vrev32q_m_f])
  ;;
! (define_insn "@mve_<mve_insn>q_m_f<mode>"
    [
!    (set (match_operand:MVE_V8HF 0 "s_register_operand" "=w")
! 	(unspec:MVE_V8HF [(match_operand:MVE_V8HF 1 "s_register_operand" "0")
! 			  (match_operand:MVE_V8HF 2 "s_register_operand" "w")
! 			  (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_FP_M_VREV32Q_ONLY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrev32q_m_s, vrev32q_m_u])
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:MVE_3 0 "s_register_operand" "=w")
  	(unspec:MVE_3 [(match_operand:MVE_3 1 "s_register_operand" "0")
***************
*** 4591,4841 ****
  	 VREV32Q_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vrev32t.%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrev64q_m_f])
  ;;
! (define_insn "mve_vrev64q_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=&w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VREV64Q_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vrev64t.%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmlaldavhaxq_s])
! ;;
! (define_insn "mve_vrmlaldavhaxq_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:V4SI 3 "s_register_operand" "w")]
! 	 VRMLALDAVHAXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrmlaldavhax.s32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrmlaldavhxq_p_s])
! ;;
! (define_insn "mve_vrmlaldavhxq_p_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
! 		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRMLALDAVHXQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrmlaldavhxt.s32\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmlsldavhaxq_s])
! ;;
! (define_insn "mve_vrmlsldavhaxq_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:V4SI 3 "s_register_operand" "w")]
! 	 VRMLSLDAVHAXQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrmlsldavhax.s32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vrmlsldavhq_p_s])
! ;;
! (define_insn "mve_vrmlsldavhq_p_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
! 		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRMLSLDAVHQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrmlsldavht.s32\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vrmlsldavhxq_p_s])
  ;;
! (define_insn "mve_vrmlsldavhxq_p_sv4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
  		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRMLSLDAVHXQ_P_S))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vrmlsldavhxt.s32\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrndaq_m_f])
! ;;
! (define_insn "mve_vrndaq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRNDAQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vrintat.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrndmq_m_f])
! ;;
! (define_insn "mve_vrndmq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRNDMQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vrintmt.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrndnq_m_f])
! ;;
! (define_insn "mve_vrndnq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRNDNQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vrintnt.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrndpq_m_f])
! ;;
! (define_insn "mve_vrndpq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRNDPQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vrintpt.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrndxq_m_f])
! ;;
! (define_insn "mve_vrndxq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 VRNDXQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vrintxt.f%#<V_sz_elem>	%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
- ;; [vrshrnbq_n_s, vrshrnbq_n_u])
- ;;
- (define_insn "mve_vrshrnbq_n_<supf><mode>"
-   [
-    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
- 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
- 		       (match_operand:MVE_5 2 "s_register_operand" "w")
- 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
- 	 VRSHRNBQ_N))
-   ]
-   "TARGET_HAVE_MVE"
-   "vrshrnb.i%#<V_sz_elem>	%q0, %q2, %3"
-   [(set_attr "type" "mve_move")
- ])
- 
- ;;
- ;; [vrshrntq_n_u, vrshrntq_n_s])
- ;;
- (define_insn "mve_vrshrntq_n_<supf><mode>"
-   [
-    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
- 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
- 		       (match_operand:MVE_5 2 "s_register_operand" "w")
- 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
- 	 VRSHRNTQ_N))
-   ]
-   "TARGET_HAVE_MVE"
-   "vrshrnt.i%#<V_sz_elem>	%q0, %q2, %3"
-   [(set_attr "type" "mve_move")
- ])
- 
- ;;
- ;; [vshrnbq_n_u, vshrnbq_n_s])
- ;;
- (define_insn "mve_vshrnbq_n_<supf><mode>"
-   [
-    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
- 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
- 		       (match_operand:MVE_5 2 "s_register_operand" "w")
- 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
- 	 VSHRNBQ_N))
-   ]
-   "TARGET_HAVE_MVE"
-   "vshrnb.i%#<V_sz_elem>	%q0, %q2, %3"
-   [(set_attr "type" "mve_move")
- ])
- 
- ;;
- ;; [vshrntq_n_s, vshrntq_n_u])
- ;;
- (define_insn "mve_vshrntq_n_<supf><mode>"
-   [
-    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
- 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
- 				 (match_operand:MVE_5 2 "s_register_operand" "w")
- 				 (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")]
- 	 VSHRNTQ_N))
-   ]
-   "TARGET_HAVE_MVE"
-   "vshrnt.i%#<V_sz_elem>\t%q0, %q2, %3"
-   [(set_attr "type" "mve_move")
- ])
- 
- ;;
  ;; [vcvtmq_m_s, vcvtmq_m_u])
  ;;
  (define_insn "mve_vcvtmq_m_<supf><mode>"
--- 2557,2605 ----
  	 VREV32Q_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrev64q_m_f])
  ;;
! (define_insn "@mve_<mve_insn>q_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=&w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
! 	 MVE_FP_M_VREV64Q_ONLY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vrmlaldavhq_p_u vrmlaldavhq_p_s]
! ;; [vrmlaldavhxq_p_s]
! ;; [vrmlsldavhq_p_s]
! ;; [vrmlsldavhxq_p_s]
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
  		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:V4BI 3 "vpr_register_operand" "Up")]
! 	 MVE_VRMLxLDAVHxQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>32\t%Q0, %R0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vcvtmq_m_s, vcvtmq_m_u])
  ;;
  (define_insn "mve_vcvtmq_m_<supf><mode>"
***************
*** 4848,4854 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtmt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2612,2619 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtmt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtmq_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 4864,4870 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtpt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2629,2636 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtpt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtpq_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 4880,4886 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtnt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2646,2653 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtnt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtnq_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 4897,4919 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrev16q_m_u, vrev16q_m_s])
  ;;
! (define_insn "mve_vrev16q_m_<supf>v16qi"
    [
!    (set (match_operand:V16QI 0 "s_register_operand" "=w")
! 	(unspec:V16QI [(match_operand:V16QI 1 "s_register_operand" "0")
! 		       (match_operand:V16QI 2 "s_register_operand" "w")
! 		       (match_operand:V16BI 3 "vpr_register_operand" "Up")]
  	 VREV16Q_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vrev16t.8\t%q0, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2664,2688 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtq_n_from_f_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrev16q_m_u, vrev16q_m_s])
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
!    (set (match_operand:MVE_V16QI 0 "s_register_operand" "=w")
! 	(unspec:MVE_V16QI [(match_operand:MVE_V16QI 1 "s_register_operand" "0")
! 			   (match_operand:MVE_V16QI 2 "s_register_operand" "w")
! 			   (match_operand:V16BI 3 "vpr_register_operand" "Up")]
  	 VREV16Q_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 4929,4973 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmlaldavhq_p_u vrmlaldavhq_p_s])
! ;;
! (define_insn "mve_vrmlaldavhq_p_<supf>v4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:V4SI 1 "s_register_operand" "w")
! 		    (match_operand:V4SI 2 "s_register_operand" "w")
! 		    (match_operand:V4BI 3 "vpr_register_operand" "Up")]
! 	 VRMLALDAVHQ_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrmlaldavht.<supf>32\t%Q0, %R0, %q1, %q2"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmlsldavhaq_s])
! ;;
! (define_insn "mve_vrmlsldavhaq_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		    (match_operand:V4SI 2 "s_register_operand" "w")
! 		    (match_operand:V4SI 3 "s_register_operand" "w")]
! 	 VRMLSLDAVHAQ_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vrmlsldavha.s32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
! ])
  
  ;;
  ;; [vabavq_p_s, vabavq_p_u])
  ;;
! (define_insn "mve_vabavq_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=r")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
--- 2698,2711 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtt.<supf>%#<V_sz_elem>.f%#<V_sz_elem>\t%q0, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtq_from_f_<supf><mode>"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")])
  
  ;;
  ;; [vabavq_p_s, vabavq_p_u])
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=r")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
***************
*** 4977,5024 ****
  	 VABAVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vabavt.<supf>%#<V_sz_elem>\t%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
  ;; [vqshluq_m_n_s])
  ;;
! (define_insn "mve_vqshluq_m_n_s<mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "<MVE_pred>" "<MVE_constraint>")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSHLUQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\n\tvqshlut.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length" "8")])
! 
! ;;
! ;; [vshlq_m_s, vshlq_m_u])
! ;;
! (define_insn "mve_vshlq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSHLQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length" "8")])
  
  ;;
  ;; [vsriq_m_n_s, vsriq_m_n_u])
  ;;
! (define_insn "mve_vsriq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
--- 2715,2747 ----
  	 VABAVQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
  ;; [vqshluq_m_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "<MVE_pred>" "<MVE_constraint>")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSHLUQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\n\t<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
!   (set_attr "length" "8")])
  
  ;;
  ;; [vsriq_m_n_s, vsriq_m_n_u])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
***************
*** 5028,5053 ****
  	 VSRIQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vsrit.%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length" "8")])
! 
! ;;
! ;; [vsubq_m_u, vsubq_m_s])
! ;;
! (define_insn "mve_vsubq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSUBQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vsubt.i%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length" "8")])
  
  ;;
  ;; [vcvtq_m_n_to_f_u, vcvtq_m_n_to_f_s])
--- 2751,2760 ----
  	 VSRIQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
!   (set_attr "length" "8")])
  
  ;;
  ;; [vcvtq_m_n_to_f_u, vcvtq_m_n_to_f_s])
***************
*** 5063,5159 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtt.f%#<V_sz_elem>.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  ;;
! ;; [vabdq_m_s, vabdq_m_u])
  ;;
! (define_insn "mve_vabdq_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VABDQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vabdt.<supf>%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vaddq_m_n_s, vaddq_m_n_u])
  ;;
! (define_insn "mve_vaddq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VADDQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vaddt.i%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vaddq_m_u, vaddq_m_s])
! ;;
! (define_insn "mve_vaddq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VADDQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vaddt.i%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
  
  ;;
! ;; [vandq_m_u, vandq_m_s])
  ;;
! (define_insn "mve_vandq_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VANDQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vandt\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vbicq_m_u, vbicq_m_s])
  ;;
! (define_insn "mve_vbicq_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VBICQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vbict\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vbrsrq_m_n_u, vbrsrq_m_n_s])
  ;;
! (define_insn "mve_vbrsrq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
--- 2770,2885 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vcvtt.f%#<V_sz_elem>.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vcvtq_n_to_f_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
+ 
  ;;
! ;; [vabdq_m_s, vabdq_m_u]
! ;; [vhaddq_m_s, vhaddq_m_u]
! ;; [vhsubq_m_s, vhsubq_m_u]
! ;; [vmaxq_m_s, vmaxq_m_u]
! ;; [vminq_m_s, vminq_m_u]
! ;; [vmulhq_m_s, vmulhq_m_u]
! ;; [vqaddq_m_u, vqaddq_m_s]
! ;; [vqdmladhq_m_s]
! ;; [vqdmladhxq_m_s]
! ;; [vqdmlsdhq_m_s]
! ;; [vqdmlsdhxq_m_s]
! ;; [vqdmulhq_m_s]
! ;; [vqrdmladhq_m_s]
! ;; [vqrdmladhxq_m_s]
! ;; [vqrdmlsdhq_m_s]
! ;; [vqrdmlsdhxq_m_s]
! ;; [vqrdmulhq_m_s]
! ;; [vqrshlq_m_u, vqrshlq_m_s]
! ;; [vqshlq_m_u, vqshlq_m_s]
! ;; [vqsubq_m_u, vqsubq_m_s]
! ;; [vrhaddq_m_u, vrhaddq_m_s]
! ;; [vrmulhq_m_u, vrmulhq_m_s]
! ;; [vrshlq_m_s, vrshlq_m_u]
! ;; [vshlq_m_s, vshlq_m_u]
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_INT_SU_M_BINARY))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vaddq_m_n_s, vaddq_m_n_u]
! ;; [vsubq_m_n_s, vsubq_m_n_u]
! ;; [vmulq_m_n_s, vmulq_m_n_u]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_INT_M_N_BINARY))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.i%#<V_sz_elem>	%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")])
  
  ;;
! ;; [vaddq_m_u, vaddq_m_s]
! ;; [vsubq_m_u, vsubq_m_s]
! ;; [vmulq_m_u, vmulq_m_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_INT_M_BINARY))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.i%#<V_sz_elem>\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vandq_m_u, vandq_m_s]
! ;; [vbicq_m_u, vbicq_m_s]
! ;; [veorq_m_u, veorq_m_s]
! ;; [vorrq_m_u, vorrq_m_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_INT_M_BINARY_LOGIC))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vbrsrq_m_n_u, vbrsrq_m_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
***************
*** 5163,5459 ****
  	 VBRSRQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vbrsrt.%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcaddq_rot270_m_u, vcaddq_rot270_m_s])
! ;;
! (define_insn "mve_vcaddq_rot270_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCADDQ_ROT270_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vcaddt.i%#<V_sz_elem>	%q0, %q2, %q3, #270"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
  
  ;;
! ;; [vcaddq_rot90_m_u, vcaddq_rot90_m_s])
  ;;
! (define_insn "mve_vcaddq_rot90_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCADDQ_ROT90_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vcaddt.i%#<V_sz_elem>	%q0, %q2, %q3, #90"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [veorq_m_s, veorq_m_u])
! ;;
! (define_insn "mve_veorq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VEORQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;veort\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vhaddq_m_n_s, vhaddq_m_n_u])
! ;;
! (define_insn "mve_vhaddq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VHADDQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vhaddt.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vhaddq_m_s, vhaddq_m_u])
! ;;
! (define_insn "mve_vhaddq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VHADDQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vhaddt.<supf>%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vhsubq_m_n_s, vhsubq_m_n_u])
  ;;
! (define_insn "mve_vhsubq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VHSUBQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vhsubt.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vhsubq_m_s, vhsubq_m_u])
! ;;
! (define_insn "mve_vhsubq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VHSUBQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vhsubt.<supf>%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmaxq_m_s, vmaxq_m_u])
! ;;
! (define_insn "mve_vmaxq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMAXQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmaxt.<supf>%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
- ;; [vminq_m_s, vminq_m_u])
- ;;
- (define_insn "mve_vminq_m_<supf><mode>"
-   [
-    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
- 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:MVE_2 3 "s_register_operand" "w")
- 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
- 	 VMINQ_M))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vmint.<supf>%#<V_sz_elem>	%q0, %q2, %q3"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
  ;;
! ;; [vmladavaq_p_u, vmladavaq_p_s])
  ;;
! (define_insn "mve_vmladavaq_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
  		    (match_operand:MVE_2 2 "s_register_operand" "w")
  		    (match_operand:MVE_2 3 "s_register_operand" "w")
  		    (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLADAVAQ_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmladavat.<supf>%#<V_sz_elem>	%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlaq_m_n_s, vmlaq_m_n_u])
! ;;
! (define_insn "mve_vmlaq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLAQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlat.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlasq_m_n_u, vmlasq_m_n_s])
! ;;
! (define_insn "mve_vmlasq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLASQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlast.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmulhq_m_s, vmulhq_m_u])
! ;;
! (define_insn "mve_vmulhq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULHQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmulht.<supf>%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmullbq_int_m_u, vmullbq_int_m_s])
! ;;
! (define_insn "mve_vmullbq_int_m_<supf><mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
! 				  (match_operand:MVE_2 2 "s_register_operand" "w")
! 				  (match_operand:MVE_2 3 "s_register_operand" "w")
! 				  (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULLBQ_INT_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmullbt.<supf>%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmulltq_int_m_s, vmulltq_int_m_u])
  ;;
! (define_insn "mve_vmulltq_int_m_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  				  (match_operand:MVE_2 2 "s_register_operand" "w")
  				  (match_operand:MVE_2 3 "s_register_operand" "w")
  				  (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULLTQ_INT_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmulltt.<supf>%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmulq_m_n_u, vmulq_m_n_s])
! ;;
! (define_insn "mve_vmulq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmult.i%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmulq_m_s, vmulq_m_u])
! ;;
! (define_insn "mve_vmulq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmult.i%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 2889,2988 ----
  	 VBRSRQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")])
  
  ;;
! ;; [vcaddq_rot90_m_u, vcaddq_rot90_m_s]
! ;; [vcaddq_rot270_m_u, vcaddq_rot270_m_s]
! ;; [vhcaddq_rot90_m_s]
! ;; [vhcaddq_rot270_m_s]
  ;;
! (define_insn "@mve_<mve_insn>q<mve_rot>_m_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:MVE_2 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VxCADDQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<isu>%#<V_sz_elem>\t%q0, %q2, %q3, #<rot>"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q<mve_rot>_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vhaddq_m_n_s, vhaddq_m_n_u]
! ;; [vhsubq_m_n_s, vhsubq_m_n_u]
! ;; [vmlaq_m_n_s, vmlaq_m_n_u]
! ;; [vmlasq_m_n_u, vmlasq_m_n_s]
! ;; [vqaddq_m_n_u, vqaddq_m_n_s]
! ;; [vqdmlahq_m_n_s]
! ;; [vqdmlashq_m_n_s]
! ;; [vqdmulhq_m_n_s]
! ;; [vqrdmlahq_m_n_s]
! ;; [vqrdmlashq_m_n_s]
! ;; [vqrdmulhq_m_n_s]
! ;; [vqsubq_m_n_u, vqsubq_m_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_INT_SU_M_N_BINARY))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;;
! ;; [vmladavaq_p_u, vmladavaq_p_s]
! ;; [vmladavaxq_p_s]
! ;; [vmlsdavaq_p_s]
! ;; [vmlsdavaxq_p_s]
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf><mode>"
    [
     (set (match_operand:SI 0 "s_register_operand" "=Te")
  	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
  		    (match_operand:MVE_2 2 "s_register_operand" "w")
  		    (match_operand:MVE_2 3 "s_register_operand" "w")
  		    (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_VMLxDAVAQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmullbq_int_m_u, vmullbq_int_m_s]
! ;; [vmulltq_int_m_s, vmulltq_int_m_u]
  ;;
! (define_insn "@mve_<mve_insn>q_int_m_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  				  (match_operand:MVE_2 2 "s_register_operand" "w")
  				  (match_operand:MVE_2 3 "s_register_operand" "w")
  				  (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULLxQ_INT_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_int_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 5470,5788 ****
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vornt\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vorrq_m_s, vorrq_m_u])
! ;;
! (define_insn "mve_vorrq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VORRQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vorrt\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqaddq_m_n_u, vqaddq_m_n_s])
! ;;
! (define_insn "mve_vqaddq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQADDQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqaddt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqaddq_m_u, vqaddq_m_s])
! ;;
! (define_insn "mve_vqaddq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQADDQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqaddt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmlahq_m_n_s])
! ;;
! (define_insn "mve_vqdmlahq_m_n_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMLAHQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmlaht.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmlashq_m_n_s])
! ;;
! (define_insn "mve_vqdmlashq_m_n_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMLASHQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmlasht.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmlahq_m_n_s])
! ;;
! (define_insn "mve_vqrdmlahq_m_n_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRDMLAHQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrdmlaht.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmlashq_m_n_s])
! ;;
! (define_insn "mve_vqrdmlashq_m_n_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRDMLASHQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrdmlasht.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrshlq_m_u, vqrshlq_m_s])
! ;;
! (define_insn "mve_vqrshlq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRSHLQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqshlq_m_n_s, vqshlq_m_n_u])
  ;;
! (define_insn "mve_vqshlq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "immediate_operand" "i")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSHLQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqshlq_m_u, vqshlq_m_s])
! ;;
! (define_insn "mve_vqshlq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSHLQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqsubq_m_n_u, vqsubq_m_n_s])
! ;;
! (define_insn "mve_vqsubq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSUBQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqsubt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqsubq_m_u, vqsubq_m_s])
! ;;
! (define_insn "mve_vqsubq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSUBQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqsubt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrhaddq_m_u, vrhaddq_m_s])
! ;;
! (define_insn "mve_vrhaddq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRHADDQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrhaddt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmulhq_m_u, vrmulhq_m_s])
! ;;
! (define_insn "mve_vrmulhq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRMULHQ_M))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrmulht.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrshlq_m_s, vrshlq_m_u])
! ;;
! (define_insn "mve_vrshlq_m_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRSHLQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vrshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrshrq_m_n_s, vrshrq_m_n_u])
- ;;
- (define_insn "mve_vrshrq_m_n_<supf><mode>"
-   [
-    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
- 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:SI 3 "<MVE_pred2>" "<MVE_constraint2>")
- 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
- 	 VRSHRQ_M_N))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vrshrt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
- ;; [vshlq_m_n_s, vshlq_m_n_u])
- ;;
- (define_insn "mve_vshlq_m_n_<supf><mode>"
-   [
-    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
- 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
- 		       (match_operand:MVE_2 2 "s_register_operand" "w")
- 		       (match_operand:SI 3 "immediate_operand" "i")
- 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
- 	 VSHLQ_M_N))
-   ]
-   "TARGET_HAVE_MVE"
-   "vpst\;vshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
-   [(set_attr "type" "mve_move")
-    (set_attr "length""8")])
- 
- ;;
  ;; [vshrq_m_n_s, vshrq_m_n_u])
  ;;
! (define_insn "mve_vshrq_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "<MVE_pred2>" "<MVE_constraint2>")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSHRQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vshrt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vsliq_m_n_u, vsliq_m_n_s])
  ;;
! (define_insn "mve_vsliq_m_n_<supf><mode>"
     [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
         (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
--- 2999,3050 ----
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vornt\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vornq_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqshlq_m_n_s, vqshlq_m_n_u]
! ;; [vshlq_m_n_s, vshlq_m_n_u]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "immediate_operand" "i")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_SHIFT_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vrshrq_m_n_s, vrshrq_m_n_u])
  ;; [vshrq_m_n_s, vshrq_m_n_u])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
  	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
  		       (match_operand:MVE_2 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "<MVE_pred2>" "<MVE_constraint2>")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_VSHRQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vsliq_m_n_u, vsliq_m_n_s])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
     [
     (set (match_operand:MVE_2 0 "s_register_operand" "=w")
         (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
***************
*** 5792,7022 ****
  	 VSLIQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vslit.%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vsubq_m_n_s, vsubq_m_n_u])
! ;;
! (define_insn "mve_vsubq_m_n_<supf><mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSUBQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vsubt.i%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vhcaddq_rot270_m_s])
! ;;
! (define_insn "mve_vhcaddq_rot270_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VHCADDQ_ROT270_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vhcaddt.s%#<V_sz_elem>\t%q0, %q2, %q3, #270"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vhcaddq_rot90_m_s])
! ;;
! (define_insn "mve_vhcaddq_rot90_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VHCADDQ_ROT90_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vhcaddt.s%#<V_sz_elem>\t%q0, %q2, %q3, #90"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmladavaxq_p_s])
! ;;
! (define_insn "mve_vmladavaxq_p_s<mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLADAVAXQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmladavaxt.s%#<V_sz_elem>\t%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlsdavaq_p_s])
! ;;
! (define_insn "mve_vmlsdavaq_p_s<mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLSDAVAQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlsdavat.s%#<V_sz_elem>\t%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlsdavaxq_p_s])
! ;;
! (define_insn "mve_vmlsdavaxq_p_s<mode>"
!   [
!    (set (match_operand:SI 0 "s_register_operand" "=Te")
! 	(unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLSDAVAXQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlsdavaxt.s%#<V_sz_elem>\t%0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmladhq_m_s])
! ;;
! (define_insn "mve_vqdmladhq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMLADHQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmladht.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmladhxq_m_s])
! ;;
! (define_insn "mve_vqdmladhxq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMLADHXQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmladhxt.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmlsdhq_m_s])
! ;;
! (define_insn "mve_vqdmlsdhq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMLSDHQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmlsdht.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmlsdhxq_m_s])
! ;;
! (define_insn "mve_vqdmlsdhxq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMLSDHXQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmlsdhxt.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmulhq_m_n_s])
! ;;
! (define_insn "mve_vqdmulhq_m_n_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMULHQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmulht.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmulhq_m_s])
! ;;
! (define_insn "mve_vqdmulhq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMULHQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmulht.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmladhq_m_s])
! ;;
! (define_insn "mve_vqrdmladhq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRDMLADHQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrdmladht.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmladhxq_m_s])
! ;;
! (define_insn "mve_vqrdmladhxq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRDMLADHXQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrdmladhxt.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmlsdhq_m_s])
! ;;
! (define_insn "mve_vqrdmlsdhq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRDMLSDHQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrdmlsdht.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmlsdhxq_m_s])
! ;;
! (define_insn "mve_vqrdmlsdhxq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRDMLSDHXQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrdmlsdhxt.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmulhq_m_n_s])
! ;;
! (define_insn "mve_vqrdmulhq_m_n_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRDMULHQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrdmulht.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrdmulhq_m_s])
! ;;
! (define_insn "mve_vqrdmulhq_m_s<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0")
! 		       (match_operand:MVE_2 2 "s_register_operand" "w")
! 		       (match_operand:MVE_2 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRDMULHQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrdmulht.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlaldavaq_p_u, vmlaldavaq_p_s])
! ;;
! (define_insn "mve_vmlaldavaq_p_<supf><mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:MVE_5 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLALDAVAQ_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlaldavat.<supf>%#<V_sz_elem>	%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmlaldavaxq_p_s])
  ;;
! (define_insn "mve_vmlaldavaxq_p_<supf><mode>"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:MVE_5 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLALDAVAXQ_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlaldavaxt.<supf>%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrshrnbq_m_n_u, vqrshrnbq_m_n_s])
! ;;
! (define_insn "mve_vqrshrnbq_m_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRSHRNBQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrshrnbt.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrshrntq_m_n_s, vqrshrntq_m_n_u])
! ;;
! (define_insn "mve_vqrshrntq_m_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRSHRNTQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrshrntt.<supf>%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqshrnbq_m_n_u, vqshrnbq_m_n_s])
! ;;
! (define_insn "mve_vqshrnbq_m_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSHRNBQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\n\tvqshrnbt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqshrntq_m_n_s, vqshrntq_m_n_u])
  ;;
! (define_insn "mve_vqshrntq_m_n_<supf><mode>"
    [
     (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
  	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSHRNTQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vqshrntt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vrmlaldavhaq_p_s])
  ;;
! (define_insn "mve_vrmlaldavhaq_p_sv4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
  		       (match_operand:V4SI 2 "s_register_operand" "w")
  		       (match_operand:V4SI 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRMLALDAVHAQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrmlaldavhat.s32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrshrnbq_m_n_u, vrshrnbq_m_n_s])
! ;;
! (define_insn "mve_vrshrnbq_m_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRSHRNBQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrshrnbt.i%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrshrntq_m_n_u, vrshrntq_m_n_s])
! ;;
! (define_insn "mve_vrshrntq_m_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRSHRNTQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrshrntt.i%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vshllbq_m_n_u, vshllbq_m_n_s])
! ;;
! (define_insn "mve_vshllbq_m_n_<supf><mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
! 	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_3 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "immediate_operand" "i")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSHLLBQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vshllbt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vshlltq_m_n_u, vshlltq_m_n_s])
  ;;
! (define_insn "mve_vshlltq_m_n_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_3 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "immediate_operand" "i")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSHLLTQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vshlltt.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vshrnbq_m_n_s, vshrnbq_m_n_u])
! ;;
! (define_insn "mve_vshrnbq_m_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSHRNBQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vshrnbt.i%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vshrntq_m_n_s, vshrntq_m_n_u])
! ;;
! (define_insn "mve_vshrntq_m_n_<supf><mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSHRNTQ_M_N))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vshrntt.i%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlsldavaq_p_s])
! ;;
! (define_insn "mve_vmlsldavaq_p_s<mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:MVE_5 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLSLDAVAQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlsldavat.s%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmlsldavaxq_p_s])
! ;;
! (define_insn "mve_vmlsldavaxq_p_s<mode>"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:MVE_5 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMLSLDAVAXQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmlsldavaxt.s%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmullbq_poly_m_p])
! ;;
! (define_insn "mve_vmullbq_poly_m_p<mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
! 	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_3 2 "s_register_operand" "w")
! 		       (match_operand:MVE_3 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULLBQ_POLY_M_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vmullbt.p%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmulltq_poly_m_p])
  ;;
! (define_insn "mve_vmulltq_poly_m_p<mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_3 2 "s_register_operand" "w")
  		       (match_operand:MVE_3 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULLTQ_POLY_M_P))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vmulltt.p%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmullbq_m_n_s])
! ;;
! (define_insn "mve_vqdmullbq_m_n_s<mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMULLBQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmullbt.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqdmullbq_m_s])
! ;;
! (define_insn "mve_vqdmullbq_m_s<mode>"
!   [
!    (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:MVE_5 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMULLBQ_M_S))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vqdmullbt.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqdmulltq_m_n_s])
  ;;
! (define_insn "mve_vqdmulltq_m_n_s<mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMULLTQ_M_N_S))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vqdmulltt.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqdmulltq_m_s])
  ;;
! (define_insn "mve_vqdmulltq_m_s<mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:MVE_5 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQDMULLTQ_M_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqdmulltt.s%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrshrunbq_m_n_s])
! ;;
! (define_insn "mve_vqrshrunbq_m_n_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRSHRUNBQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrshrunbt.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqrshruntq_m_n_s])
! ;;
! (define_insn "mve_vqrshruntq_m_n_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQRSHRUNTQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqrshruntt.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqshrunbq_m_n_s])
! ;;
! (define_insn "mve_vqshrunbq_m_n_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSHRUNBQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqshrunbt.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vqshruntq_m_n_s])
! ;;
! (define_insn "mve_vqshruntq_m_n_s<mode>"
!   [
!    (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
! 	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
! 		       (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VQSHRUNTQ_M_N_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vqshruntt.s%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmlaldavhaq_p_u])
! ;;
! (define_insn "mve_vrmlaldavhaq_p_uv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:V4SI 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRMLALDAVHAQ_P_U))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrmlaldavhat.u32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmlaldavhaxq_p_s])
! ;;
! (define_insn "mve_vrmlaldavhaxq_p_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:V4SI 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRMLALDAVHAXQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrmlaldavhaxt.s32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmlsldavhaq_p_s])
! ;;
! (define_insn "mve_vrmlsldavhaq_p_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:V4SI 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRMLSLDAVHAQ_P_S))
!   ]
!   "TARGET_HAVE_MVE"
!   "vpst\;vrmlsldavhat.s32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vrmlsldavhaxq_p_s])
! ;;
! (define_insn "mve_vrmlsldavhaxq_p_sv4si"
!   [
!    (set (match_operand:DI 0 "s_register_operand" "=r")
! 	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
! 		       (match_operand:V4SI 2 "s_register_operand" "w")
! 		       (match_operand:V4SI 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VRMLSLDAVHAXQ_P_S))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;vrmlsldavhaxt.s32\t%Q0, %R0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! ;;
! ;; [vabdq_m_f])
! ;;
! (define_insn "mve_vabdq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VABDQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vabdt.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vaddq_m_f])
  ;;
! (define_insn "mve_vaddq_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VADDQ_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vaddt.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vaddq_m_n_f])
  ;;
! (define_insn "mve_vaddq_m_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VADDQ_M_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vaddt.f%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vandq_m_f])
! ;;
! (define_insn "mve_vandq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VANDQ_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vandt\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vbicq_m_f])
  ;;
! (define_insn "mve_vbicq_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VBICQ_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vbict\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vbrsrq_m_n_f])
  ;;
! (define_insn "mve_vbrsrq_m_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VBRSRQ_M_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vbrsrt.%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcaddq_rot270_m_f])
! ;;
! (define_insn "mve_vcaddq_rot270_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCADDQ_ROT270_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcaddt.f%#<V_sz_elem>	%q0, %q2, %q3, #270"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcaddq_rot90_m_f])
! ;;
! (define_insn "mve_vcaddq_rot90_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCADDQ_ROT90_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcaddt.f%#<V_sz_elem>	%q0, %q2, %q3, #90"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcmlaq_m_f])
! ;;
! (define_insn "mve_vcmlaq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCMLAQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmlat.f%#<V_sz_elem>	%q0, %q2, %q3, #0"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcmlaq_rot180_m_f])
! ;;
! (define_insn "mve_vcmlaq_rot180_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCMLAQ_ROT180_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmlat.f%#<V_sz_elem>	%q0, %q2, %q3, #180"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcmlaq_rot270_m_f])
! ;;
! (define_insn "mve_vcmlaq_rot270_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCMLAQ_ROT270_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmlat.f%#<V_sz_elem>	%q0, %q2, %q3, #270"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcmlaq_rot90_m_f])
! ;;
! (define_insn "mve_vcmlaq_rot90_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCMLAQ_ROT90_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmlat.f%#<V_sz_elem>	%q0, %q2, %q3, #90"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcmulq_m_f])
! ;;
! (define_insn "mve_vcmulq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCMULQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmult.f%#<V_sz_elem>	%q0, %q2, %q3, #0"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcmulq_rot180_m_f])
! ;;
! (define_insn "mve_vcmulq_rot180_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCMULQ_ROT180_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmult.f%#<V_sz_elem>	%q0, %q2, %q3, #180"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vcmulq_rot270_m_f])
! ;;
! (define_insn "mve_vcmulq_rot270_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCMULQ_ROT270_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmult.f%#<V_sz_elem>	%q0, %q2, %q3, #270"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vcmulq_rot90_m_f])
  ;;
! (define_insn "mve_vcmulq_rot90_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VCMULQ_ROT90_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vcmult.f%#<V_sz_elem>	%q0, %q2, %q3, #90"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [veorq_m_f])
! ;;
! (define_insn "mve_veorq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VEORQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;veort\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vfmaq_m_f])
! ;;
! (define_insn "mve_vfmaq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VFMAQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vfmat.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vfmaq_m_n_f])
! ;;
! (define_insn "mve_vfmaq_m_n_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VFMAQ_M_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vfmat.f%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vfmasq_m_n_f])
! ;;
! (define_insn "mve_vfmasq_m_n_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VFMASQ_M_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vfmast.f%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vfmsq_m_f])
! ;;
! (define_insn "mve_vfmsq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VFMSQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vfmst.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmaxnmq_m_f])
! ;;
! (define_insn "mve_vmaxnmq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMAXNMQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vmaxnmt.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vminnmq_m_f])
! ;;
! (define_insn "mve_vminnmq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMINNMQ_M_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vminnmt.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmulq_m_f])
  ;;
! (define_insn "mve_vmulq_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vmult.f%#<V_sz_elem>	%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vmulq_m_n_f])
! ;;
! (define_insn "mve_vmulq_m_n_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULQ_M_N_F))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vmult.f%#<V_sz_elem>	%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 3054,3339 ----
  	 VSLIQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmlaldavaq_p_u, vmlaldavaq_p_s]
! ;; [vmlaldavaxq_p_s]
! ;; [vmlsldavaq_p_s]
! ;; [vmlsldavaxq_p_s]
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf><mode>"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:MVE_5 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_VMLxLDAVAxQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%Q0, %R0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqrshrnbq_m_n_u, vqrshrnbq_m_n_s]
! ;; [vqrshrntq_m_n_s, vqrshrntq_m_n_u]
! ;; [vqrshrunbq_m_n_s]
! ;; [vqrshruntq_m_n_s]
! ;; [vqshrnbq_m_n_u, vqshrnbq_m_n_s]
! ;; [vqshrntq_m_n_s, vqshrntq_m_n_u]
! ;; [vqshrunbq_m_n_s]
! ;; [vqshruntq_m_n_s]
! ;; [vrshrnbq_m_n_u, vrshrnbq_m_n_s]
! ;; [vrshrntq_m_n_u, vrshrntq_m_n_s]
! ;; [vshrnbq_m_n_s, vshrnbq_m_n_u]
! ;; [vshrntq_m_n_s, vshrntq_m_n_u]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:<V_narrow_pack> 0 "s_register_operand" "=w")
  	(unspec:<V_narrow_pack> [(match_operand:<V_narrow_pack> 1 "s_register_operand" "0")
! 				 (match_operand:MVE_5 2 "s_register_operand" "w")
! 				 (match_operand:SI 3 "<MVE_pred3>" "<MVE_constraint3>")
! 				 (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_SHRN_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<isu>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vrmlaldavhaq_p_s, vrmlaldavhaq_p_u]
! ;; [vrmlaldavhaxq_p_s]
! ;; [vrmlsldavhaq_p_s]
! ;; [vrmlsldavhaxq_p_s]
  ;;
! (define_insn "@mve_<mve_insn>q_p_<supf>v4si"
    [
     (set (match_operand:DI 0 "s_register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "s_register_operand" "0")
  		       (match_operand:V4SI 2 "s_register_operand" "w")
  		       (match_operand:V4SI 3 "s_register_operand" "w")
! 		       (match_operand:V4BI 4 "vpr_register_operand" "Up")]
! 	 MVE_VRMLxLDAVHAxQ_P))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>32\t%Q0, %R0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vshllbq_m_n_u, vshllbq_m_n_s]
! ;; [vshlltq_m_n_u, vshlltq_m_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_3 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "immediate_operand" "i")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSHLLxQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vmullbq_poly_m_p]
! ;; [vmulltq_poly_m_p]
  ;;
! (define_insn "@mve_<mve_insn>q_poly_m_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "=w")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_3 2 "s_register_operand" "w")
  		       (match_operand:MVE_3 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VMULLxQ_POLY_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.<supf>%#<V_sz_elem>\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_poly_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqdmullbq_m_n_s]
! ;; [vqdmulltq_m_n_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_VQDMULLxQ_M_N))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.s%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vqdmullbq_m_s]
! ;; [vqdmulltq_m_s]
  ;;
! (define_insn "@mve_<mve_insn>q_m_<supf><mode>"
    [
     (set (match_operand:<V_double_width> 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:<V_double_width> [(match_operand:<V_double_width> 1 "s_register_operand" "0")
  		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:MVE_5 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_VQDMULLxQ_M))
    ]
    "TARGET_HAVE_MVE"
!   "vpst\;<mve_insn>t.s%#<V_sz_elem>\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vabdq_m_f]
! ;; [vaddq_m_f]
! ;; [vfmaq_m_f]
! ;; [vfmsq_m_f]
! ;; [vmaxnmq_m_f]
! ;; [vminnmq_m_f]
! ;; [vmulq_m_f]
! ;; [vsubq_m_f]
  ;;
! (define_insn "@mve_<mve_insn>q_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_FP_M_BINARY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.f%#<V_sz_elem>	%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vaddq_m_n_f]
! ;; [vsubq_m_n_f]
! ;; [vmulq_m_n_f]
! ;; [vfmaq_m_n_f]
! ;; [vfmasq_m_n_f]
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:<V_elem> 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_FP_M_N_BINARY))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.f%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vandq_m_f]
! ;; [vbicq_m_f]
! ;; [veorq_m_f]
! ;; [vorrq_m_f]
  ;;
! (define_insn "@mve_<mve_insn>q_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_FP_M_BINARY_LOGIC))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
  ;; [vbrsrq_m_n_f])
  ;;
! (define_insn "@mve_<mve_insn>q_m_n_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:SI 3 "s_register_operand" "r")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_VBRSR_M_N_FP))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.%#<V_sz_elem>\t%q0, %q2, %3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_n_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vcaddq_rot90_m_f]
! ;; [vcaddq_rot270_m_f]
! ;; [vcmulq_m_f]
! ;; [vcmulq_rot90_m_f]
! ;; [vcmulq_rot180_m_f]
! ;; [vcmulq_rot270_m_f]
  ;;
! (define_insn "@mve_<mve_insn>q<mve_rot>_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "<earlyclobber_32>")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_VCADDQ_VCMULQ_M))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.f%#<V_sz_elem>\t%q0, %q2, %q3, #<rot>"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q<mve_rot>_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
! ;; [vcmlaq_m_f]
! ;; [vcmlaq_rot90_m_f]
! ;; [vcmlaq_rot180_m_f]
! ;; [vcmlaq_rot270_m_f]
  ;;
! (define_insn "@mve_<mve_insn>q<mve_rot>_m_f<mode>"
    [
     (set (match_operand:MVE_0 0 "s_register_operand" "=w")
  	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
  		       (match_operand:MVE_0 2 "s_register_operand" "w")
  		       (match_operand:MVE_0 3 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 MVE_VCMLAQ_M))
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;<mve_insn>t.f%#<V_sz_elem>\t%q0, %q2, %q3, #<rot>"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q<mve_rot>_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 7033,7090 ****
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vornt\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vorrq_m_f])
! ;;
! (define_insn "mve_vorrq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VORRQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vorrt\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vsubq_m_f])
! ;;
! (define_insn "mve_vsubq_m_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:MVE_0 3 "s_register_operand" "w")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSUBQ_M_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vsubt.f%#<V_sz_elem>\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
! 
! ;;
! ;; [vsubq_m_n_f])
! ;;
! (define_insn "mve_vsubq_m_n_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "0")
! 		       (match_operand:MVE_0 2 "s_register_operand" "w")
! 		       (match_operand:<V_elem> 3 "s_register_operand" "r")
! 		       (match_operand:<MVE_VPRED> 4 "vpr_register_operand" "Up")]
! 	 VSUBQ_M_N_F))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vpst\;vsubt.f%#<V_sz_elem>\t%q0, %q2, %3"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 3350,3357 ----
    ]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vornt\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vornq_f<mode>"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 7104,7110 ****
     output_asm_insn("vstrb.<V_sz_elem>\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrbq_scatter_offset_s vstrbq_scatter_offset_u]
--- 3371,3378 ----
     output_asm_insn("vstrb.<V_sz_elem>\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrbq_<supf><mode>"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrbq_scatter_offset_s vstrbq_scatter_offset_u]
***************
*** 7132,7138 ****
  	  VSTRBSOQ))]
    "TARGET_HAVE_MVE"
    "vstrb.<V_sz_elem>\t%q2, [%0, %q1]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_base_s vstrwq_scatter_base_u]
--- 3400,3407 ----
  	  VSTRBSOQ))]
    "TARGET_HAVE_MVE"
    "vstrb.<V_sz_elem>\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrbq_scatter_offset_<supf><mode>_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_base_s vstrwq_scatter_base_u]
***************
*** 7154,7160 ****
     output_asm_insn("vstrw.u32\t%q2, [%q0, %1]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrbq_gather_offset_s vldrbq_gather_offset_u]
--- 3423,3430 ----
     output_asm_insn("vstrw.u32\t%q2, [%q0, %1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_base_<supf>v4si"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrbq_gather_offset_s vldrbq_gather_offset_u]
***************
*** 7177,7183 ****
       output_asm_insn ("vldrb.<supf><V_sz_elem>\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrbq_s vldrbq_u]
--- 3447,3454 ----
       output_asm_insn ("vldrb.<supf><V_sz_elem>\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrbq_gather_offset_<supf><mode>"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrbq_s vldrbq_u]
***************
*** 7199,7205 ****
       output_asm_insn ("vldrb.<supf><V_sz_elem>\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_base_s vldrwq_gather_base_u]
--- 3470,3477 ----
       output_asm_insn ("vldrb.<supf><V_sz_elem>\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrbq_<supf><mode>"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_base_s vldrwq_gather_base_u]
***************
*** 7219,7225 ****
     output_asm_insn ("vldrw.u32\t%q0, [%q1, %2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrbq_scatter_offset_p_s vstrbq_scatter_offset_p_u]
--- 3491,3498 ----
     output_asm_insn ("vldrw.u32\t%q0, [%q1, %2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_base_<supf>v4si"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrbq_scatter_offset_p_s vstrbq_scatter_offset_p_u]
***************
*** 7251,7257 ****
  	  VSTRBSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrbt.<V_sz_elem>\t%q2, [%0, %q1]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_base_p_s vstrwq_scatter_base_p_u]
--- 3524,3531 ----
  	  VSTRBSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrbt.<V_sz_elem>\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrbq_scatter_offset_<supf><mode>_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_base_p_s vstrwq_scatter_base_p_u]
***************
*** 7274,7280 ****
     output_asm_insn ("vpst\n\tvstrwt.u32\t%q2, [%q0, %1]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  (define_insn "mve_vstrbq_p_<supf><mode>"
    [(set (match_operand:<MVE_B_ELEM> 0 "mve_memory_operand" "=Ux")
--- 3548,3555 ----
     output_asm_insn ("vpst\n\tvstrwt.u32\t%q2, [%q0, %1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_base_<supf>v4si"))
!   (set_attr "length" "8")])
  
  (define_insn "mve_vstrbq_p_<supf><mode>"
    [(set (match_operand:<MVE_B_ELEM> 0 "mve_memory_operand" "=Ux")
***************
*** 7292,7298 ****
     output_asm_insn ("vpst\;vstrbt.<V_sz_elem>\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrbq_gather_offset_z_s vldrbq_gather_offset_z_u]
--- 3567,3574 ----
     output_asm_insn ("vpst\;vstrbt.<V_sz_elem>\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrbq_<supf><mode>"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrbq_gather_offset_z_s vldrbq_gather_offset_z_u]
***************
*** 7317,7323 ****
       output_asm_insn ("vpst\n\tvldrbt.<supf><V_sz_elem>\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrbq_z_s vldrbq_z_u]
--- 3593,3600 ----
       output_asm_insn ("vpst\n\tvldrbt.<supf><V_sz_elem>\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrbq_gather_offset_<supf><mode>"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrbq_z_s vldrbq_z_u]
***************
*** 7340,7346 ****
       output_asm_insn ("vpst\;vldrbt.<supf><V_sz_elem>\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_base_z_s vldrwq_gather_base_z_u]
--- 3617,3624 ----
       output_asm_insn ("vpst\;vldrbt.<supf><V_sz_elem>\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrbq_<supf><mode>"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_base_z_s vldrwq_gather_base_z_u]
***************
*** 7361,7367 ****
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%q1, %2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_f]
--- 3639,3646 ----
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%q1, %2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_base_<supf>v4si"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_f]
***************
*** 7380,7394 ****
     output_asm_insn ("vldrh.16\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_offset_s vldrhq_gather_offset_u]
  ;;
  (define_insn "mve_vldrhq_gather_offset_<supf><mode>"
!   [(set (match_operand:MVE_6 0 "s_register_operand" "=&w")
! 	(unspec:MVE_6 [(match_operand:<MVE_H_ELEM> 1 "memory_operand" "Us")
! 		       (match_operand:MVE_6 2 "s_register_operand" "w")]
  	VLDRHGOQ))
    ]
    "TARGET_HAVE_MVE"
--- 3659,3674 ----
     output_asm_insn ("vldrh.16\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_fv8hf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_offset_s vldrhq_gather_offset_u]
  ;;
  (define_insn "mve_vldrhq_gather_offset_<supf><mode>"
!   [(set (match_operand:MVE_5 0 "s_register_operand" "=&w")
! 	(unspec:MVE_5 [(match_operand:<MVE_H_ELEM> 1 "memory_operand" "Us")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")]
  	VLDRHGOQ))
    ]
    "TARGET_HAVE_MVE"
***************
*** 7403,7417 ****
       output_asm_insn ("vldrh.<supf><V_sz_elem>\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_offset_z_s vldrhq_gather_offset_z_u]
  ;;
  (define_insn "mve_vldrhq_gather_offset_z_<supf><mode>"
!   [(set (match_operand:MVE_6 0 "s_register_operand" "=&w")
! 	(unspec:MVE_6 [(match_operand:<MVE_H_ELEM> 1 "memory_operand" "Us")
! 		       (match_operand:MVE_6 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")
  	]VLDRHGOQ))
    ]
--- 3683,3698 ----
       output_asm_insn ("vldrh.<supf><V_sz_elem>\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_gather_offset_<supf><mode>"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_offset_z_s vldrhq_gather_offset_z_u]
  ;;
  (define_insn "mve_vldrhq_gather_offset_z_<supf><mode>"
!   [(set (match_operand:MVE_5 0 "s_register_operand" "=&w")
! 	(unspec:MVE_5 [(match_operand:<MVE_H_ELEM> 1 "memory_operand" "Us")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")
  	]VLDRHGOQ))
    ]
***************
*** 7428,7442 ****
       output_asm_insn ("vpst\n\tvldrht.<supf><V_sz_elem>\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_gather_shifted_offset_s vldrhq_gather_shifted_offset_u]
  ;;
  (define_insn "mve_vldrhq_gather_shifted_offset_<supf><mode>"
!   [(set (match_operand:MVE_6 0 "s_register_operand" "=&w")
! 	(unspec:MVE_6 [(match_operand:<MVE_H_ELEM> 1 "memory_operand" "Us")
! 		       (match_operand:MVE_6 2 "s_register_operand" "w")]
  	VLDRHGSOQ))
    ]
    "TARGET_HAVE_MVE"
--- 3709,3724 ----
       output_asm_insn ("vpst\n\tvldrht.<supf><V_sz_elem>\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_gather_offset_<supf><mode>"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_gather_shifted_offset_s vldrhq_gather_shifted_offset_u]
  ;;
  (define_insn "mve_vldrhq_gather_shifted_offset_<supf><mode>"
!   [(set (match_operand:MVE_5 0 "s_register_operand" "=&w")
! 	(unspec:MVE_5 [(match_operand:<MVE_H_ELEM> 1 "memory_operand" "Us")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")]
  	VLDRHGSOQ))
    ]
    "TARGET_HAVE_MVE"
***************
*** 7451,7465 ****
       output_asm_insn ("vldrh.<supf><V_sz_elem>\t%q0, [%m1, %q2, uxtw #1]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_shifted_offset_z_s vldrhq_gather_shited_offset_z_u]
  ;;
  (define_insn "mve_vldrhq_gather_shifted_offset_z_<supf><mode>"
!   [(set (match_operand:MVE_6 0 "s_register_operand" "=&w")
! 	(unspec:MVE_6 [(match_operand:<MVE_H_ELEM> 1 "memory_operand" "Us")
! 		       (match_operand:MVE_6 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")
  	]VLDRHGSOQ))
    ]
--- 3733,3748 ----
       output_asm_insn ("vldrh.<supf><V_sz_elem>\t%q0, [%m1, %q2, uxtw #1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_gather_shifted_offset_<supf><mode>"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_shifted_offset_z_s vldrhq_gather_shited_offset_z_u]
  ;;
  (define_insn "mve_vldrhq_gather_shifted_offset_z_<supf><mode>"
!   [(set (match_operand:MVE_5 0 "s_register_operand" "=&w")
! 	(unspec:MVE_5 [(match_operand:<MVE_H_ELEM> 1 "memory_operand" "Us")
! 		       (match_operand:MVE_5 2 "s_register_operand" "w")
  		       (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")
  	]VLDRHGSOQ))
    ]
***************
*** 7476,7489 ****
       output_asm_insn ("vpst\n\tvldrht.<supf><V_sz_elem>\t%q0, [%m1, %q2, uxtw #1]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_s, vldrhq_u]
  ;;
  (define_insn "mve_vldrhq_<supf><mode>"
!   [(set (match_operand:MVE_6 0 "s_register_operand" "=w")
! 	(unspec:MVE_6 [(match_operand:<MVE_H_ELEM> 1 "mve_memory_operand" "Ux")]
  	 VLDRHQ))
    ]
    "TARGET_HAVE_MVE"
--- 3759,3773 ----
       output_asm_insn ("vpst\n\tvldrht.<supf><V_sz_elem>\t%q0, [%m1, %q2, uxtw #1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_gather_shifted_offset_<supf><mode>"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_s, vldrhq_u]
  ;;
  (define_insn "mve_vldrhq_<supf><mode>"
!   [(set (match_operand:MVE_5 0 "s_register_operand" "=w")
! 	(unspec:MVE_5 [(match_operand:<MVE_H_ELEM> 1 "mve_memory_operand" "Ux")]
  	 VLDRHQ))
    ]
    "TARGET_HAVE_MVE"
***************
*** 7498,7504 ****
       output_asm_insn ("vldrh.<supf><V_sz_elem>\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_z_f]
--- 3782,3789 ----
       output_asm_insn ("vldrh.<supf><V_sz_elem>\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_<supf><mode>"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_z_f]
***************
*** 7518,7531 ****
     output_asm_insn ("vpst\;vldrht.16\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_z_s vldrhq_z_u]
  ;;
  (define_insn "mve_vldrhq_z_<supf><mode>"
!   [(set (match_operand:MVE_6 0 "s_register_operand" "=w")
! 	(unspec:MVE_6 [(match_operand:<MVE_H_ELEM> 1 "mve_memory_operand" "Ux")
  	(match_operand:<MVE_VPRED> 2 "vpr_register_operand" "Up")]
  	 VLDRHQ))
    ]
--- 3803,3817 ----
     output_asm_insn ("vpst\;vldrht.16\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_fv8hf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_z_s vldrhq_z_u]
  ;;
  (define_insn "mve_vldrhq_z_<supf><mode>"
!   [(set (match_operand:MVE_5 0 "s_register_operand" "=w")
! 	(unspec:MVE_5 [(match_operand:<MVE_H_ELEM> 1 "mve_memory_operand" "Ux")
  	(match_operand:<MVE_VPRED> 2 "vpr_register_operand" "Up")]
  	 VLDRHQ))
    ]
***************
*** 7541,7547 ****
       output_asm_insn ("vpst\;vldrht.<supf><V_sz_elem>\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_f]
--- 3827,3834 ----
       output_asm_insn ("vpst\;vldrht.<supf><V_sz_elem>\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_<supf><mode>"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_f]
***************
*** 7560,7566 ****
     output_asm_insn ("vldrw.32\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_s vldrwq_u]
--- 3847,3854 ----
     output_asm_insn ("vldrw.32\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_fv4sf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_s vldrwq_u]
***************
*** 7579,7585 ****
     output_asm_insn ("vldrw.32\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_z_f]
--- 3867,3874 ----
     output_asm_insn ("vldrw.32\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_<supf>v4si"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_z_f]
***************
*** 7599,7605 ****
     output_asm_insn ("vpst\;vldrwt.32\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_z_s vldrwq_z_u]
--- 3888,3895 ----
     output_asm_insn ("vpst\;vldrwt.32\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_fv4sf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_z_s vldrwq_z_u]
***************
*** 7619,7627 ****
     output_asm_insn ("vpst\;vldrwt.32\t%q0, %E1",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
! (define_expand "mve_vld1q_f<mode>"
    [(match_operand:MVE_0 0 "s_register_operand")
     (unspec:MVE_0 [(match_operand:<MVE_CNVT> 1 "mve_memory_operand")] VLD1Q_F)
    ]
--- 3909,3918 ----
     output_asm_insn ("vpst\;vldrwt.32\t%q0, %E1",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_<supf>v4si"))
!   (set_attr "length" "8")])
  
! (define_expand "@mve_vld1q_f<mode>"
    [(match_operand:MVE_0 0 "s_register_operand")
     (unspec:MVE_0 [(match_operand:<MVE_CNVT> 1 "mve_memory_operand")] VLD1Q_F)
    ]
***************
*** 7631,7637 ****
    DONE;
  })
  
! (define_expand "mve_vld1q_<supf><mode>"
    [(match_operand:MVE_2 0 "s_register_operand")
     (unspec:MVE_2 [(match_operand:MVE_2 1 "mve_memory_operand")] VLD1Q)
    ]
--- 3922,3928 ----
    DONE;
  })
  
! (define_expand "@mve_vld1q_<supf><mode>"
    [(match_operand:MVE_2 0 "s_register_operand")
     (unspec:MVE_2 [(match_operand:MVE_2 1 "mve_memory_operand")] VLD1Q)
    ]
***************
*** 7659,7665 ****
     output_asm_insn ("vldrd.64\t%q0, [%q1, %2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrdq_gather_base_z_s vldrdq_gather_base_z_u]
--- 3950,3957 ----
     output_asm_insn ("vldrd.64\t%q0, [%q1, %2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrdq_gather_base_<supf>v2di"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrdq_gather_base_z_s vldrdq_gather_base_z_u]
***************
*** 7680,7686 ****
     output_asm_insn ("vpst\n\tvldrdt.u64\t%q0, [%q1, %2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrdq_gather_offset_s vldrdq_gather_offset_u]
--- 3972,3979 ----
     output_asm_insn ("vpst\n\tvldrdt.u64\t%q0, [%q1, %2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrdq_gather_base_<supf>v2di"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrdq_gather_offset_s vldrdq_gather_offset_u]
***************
*** 7700,7706 ****
    output_asm_insn ("vldrd.u64\t%q0, [%m1, %q2]",ops);
    return "";
  }
!  [(set_attr "length" "4")])
  
  ;;
  ;; [vldrdq_gather_offset_z_s vldrdq_gather_offset_z_u]
--- 3993,4000 ----
    output_asm_insn ("vldrd.u64\t%q0, [%m1, %q2]",ops);
    return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrdq_gather_offset_<supf>v2di"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrdq_gather_offset_z_s vldrdq_gather_offset_z_u]
***************
*** 7721,7727 ****
    output_asm_insn ("vpst\n\tvldrdt.u64\t%q0, [%m1, %q2]",ops);
    return "";
  }
!  [(set_attr "length" "8")])
  
  ;;
  ;; [vldrdq_gather_shifted_offset_s vldrdq_gather_shifted_offset_u]
--- 4015,4022 ----
    output_asm_insn ("vpst\n\tvldrdt.u64\t%q0, [%m1, %q2]",ops);
    return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrdq_gather_offset_<supf>v2di"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrdq_gather_shifted_offset_s vldrdq_gather_shifted_offset_u]
***************
*** 7741,7747 ****
     output_asm_insn ("vldrd.u64\t%q0, [%m1, %q2, uxtw #3]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrdq_gather_shifted_offset_z_s vldrdq_gather_shifted_offset_z_u]
--- 4036,4043 ----
     output_asm_insn ("vldrd.u64\t%q0, [%m1, %q2, uxtw #3]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrdq_gather_shifted_offset_<supf>v2di"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrdq_gather_shifted_offset_z_s vldrdq_gather_shifted_offset_z_u]
***************
*** 7762,7768 ****
     output_asm_insn ("vpst\n\tvldrdt.u64\t%q0, [%m1, %q2, uxtw #3]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_gather_offset_f]
--- 4058,4065 ----
     output_asm_insn ("vpst\n\tvldrdt.u64\t%q0, [%m1, %q2, uxtw #3]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrdq_gather_shifted_offset_<supf>v2di"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_gather_offset_f]
***************
*** 7782,7788 ****
     output_asm_insn ("vldrh.f16\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_offset_z_f]
--- 4079,4086 ----
     output_asm_insn ("vldrh.f16\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_gather_offset_fv8hf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_offset_z_f]
***************
*** 7804,7810 ****
     output_asm_insn ("vpst\n\tvldrht.f16\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_gather_shifted_offset_f]
--- 4102,4109 ----
     output_asm_insn ("vpst\n\tvldrht.f16\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_gather_offset_fv8hf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrhq_gather_shifted_offset_f]
***************
*** 7824,7830 ****
     output_asm_insn ("vldrh.f16\t%q0, [%m1, %q2, uxtw #1]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_shifted_offset_z_f]
--- 4123,4130 ----
     output_asm_insn ("vldrh.f16\t%q0, [%m1, %q2, uxtw #1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_gather_shifted_offset_fv8hf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrhq_gather_shifted_offset_z_f]
***************
*** 7846,7852 ****
     output_asm_insn ("vpst\n\tvldrht.f16\t%q0, [%m1, %q2, uxtw #1]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_base_f]
--- 4146,4153 ----
     output_asm_insn ("vpst\n\tvldrht.f16\t%q0, [%m1, %q2, uxtw #1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrhq_gather_shifted_offset_fv8hf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_base_f]
***************
*** 7866,7872 ****
     output_asm_insn ("vldrw.u32\t%q0, [%q1, %2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_base_z_f]
--- 4167,4174 ----
     output_asm_insn ("vldrw.u32\t%q0, [%q1, %2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_base_fv4sf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_base_z_f]
***************
*** 7887,7893 ****
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%q1, %2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_offset_f]
--- 4189,4196 ----
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%q1, %2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_base_fv4sf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_offset_f]
***************
*** 7907,7913 ****
     output_asm_insn ("vldrw.u32\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_offset_s vldrwq_gather_offset_u]
--- 4210,4217 ----
     output_asm_insn ("vldrw.u32\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_offset_fv4sf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_offset_s vldrwq_gather_offset_u]
***************
*** 7927,7933 ****
     output_asm_insn ("vldrw.u32\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_offset_z_f]
--- 4231,4238 ----
     output_asm_insn ("vldrw.u32\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_offset_<supf>v4si"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_offset_z_f]
***************
*** 7949,7955 ****
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_offset_z_s vldrwq_gather_offset_z_u]
--- 4254,4261 ----
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_offset_fv4sf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_offset_z_s vldrwq_gather_offset_z_u]
***************
*** 7971,7977 ****
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%m1, %q2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_shifted_offset_f]
--- 4277,4284 ----
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%m1, %q2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_offset_<supf>v4si"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_shifted_offset_f]
***************
*** 7991,7997 ****
     output_asm_insn ("vldrw.u32\t%q0, [%m1, %q2, uxtw #2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_shifted_offset_s vldrwq_gather_shifted_offset_u]
--- 4298,4305 ----
     output_asm_insn ("vldrw.u32\t%q0, [%m1, %q2, uxtw #2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_shifted_offset_fv4sf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_shifted_offset_s vldrwq_gather_shifted_offset_u]
***************
*** 8011,8017 ****
     output_asm_insn ("vldrw.u32\t%q0, [%m1, %q2, uxtw #2]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_shifted_offset_z_f]
--- 4319,4326 ----
     output_asm_insn ("vldrw.u32\t%q0, [%m1, %q2, uxtw #2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_shifted_offset_<supf>v4si"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vldrwq_gather_shifted_offset_z_f]
***************
*** 8033,8039 ****
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%m1, %q2, uxtw #2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_shifted_offset_z_s vldrwq_gather_shifted_offset_z_u]
--- 4342,4349 ----
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%m1, %q2, uxtw #2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_shifted_offset_fv4sf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vldrwq_gather_shifted_offset_z_s vldrwq_gather_shifted_offset_z_u]
***************
*** 8055,8061 ****
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%m1, %q2, uxtw #2]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_f]
--- 4365,4372 ----
     output_asm_insn ("vpst\n\tvldrwt.u32\t%q0, [%m1, %q2, uxtw #2]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_shifted_offset_<supf>v4si"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_f]
***************
*** 8074,8080 ****
     output_asm_insn ("vstrh.16\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_p_f]
--- 4385,4392 ----
     output_asm_insn ("vstrh.16\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_fv8hf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_p_f]
***************
*** 8095,8101 ****
     output_asm_insn ("vpst\;vstrht.16\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_p_s vstrhq_p_u]
--- 4407,4414 ----
     output_asm_insn ("vpst\;vstrht.16\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_fv8hf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_p_s vstrhq_p_u]
***************
*** 8103,8109 ****
  (define_insn "mve_vstrhq_p_<supf><mode>"
    [(set (match_operand:<MVE_H_ELEM> 0 "mve_memory_operand" "=Ux")
  	(unspec:<MVE_H_ELEM>
! 	 [(match_operand:MVE_6 1 "s_register_operand" "w")
  	  (match_operand:<MVE_VPRED> 2 "vpr_register_operand" "Up")
  	  (match_dup 0)]
  	 VSTRHQ))
--- 4416,4422 ----
  (define_insn "mve_vstrhq_p_<supf><mode>"
    [(set (match_operand:<MVE_H_ELEM> 0 "mve_memory_operand" "=Ux")
  	(unspec:<MVE_H_ELEM>
! 	 [(match_operand:MVE_5 1 "s_register_operand" "w")
  	  (match_operand:<MVE_VPRED> 2 "vpr_register_operand" "Up")
  	  (match_dup 0)]
  	 VSTRHQ))
***************
*** 8117,8131 ****
     output_asm_insn ("vpst\;vstrht.<V_sz_elem>\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_scatter_offset_p_s vstrhq_scatter_offset_p_u]
  ;;
  (define_expand "mve_vstrhq_scatter_offset_p_<supf><mode>"
    [(match_operand:<MVE_H_ELEM> 0 "mve_scatter_memory")
!    (match_operand:MVE_6 1 "s_register_operand")
!    (match_operand:MVE_6 2 "s_register_operand")
     (match_operand:<MVE_VPRED> 3 "vpr_register_operand")
     (unspec:V4SI [(const_int 0)] VSTRHSOQ)]
    "TARGET_HAVE_MVE"
--- 4430,4445 ----
     output_asm_insn ("vpst\;vstrht.<V_sz_elem>\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_<supf><mode>"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_scatter_offset_p_s vstrhq_scatter_offset_p_u]
  ;;
  (define_expand "mve_vstrhq_scatter_offset_p_<supf><mode>"
    [(match_operand:<MVE_H_ELEM> 0 "mve_scatter_memory")
!    (match_operand:MVE_5 1 "s_register_operand")
!    (match_operand:MVE_5 2 "s_register_operand")
     (match_operand:<MVE_VPRED> 3 "vpr_register_operand")
     (unspec:V4SI [(const_int 0)] VSTRHSOQ)]
    "TARGET_HAVE_MVE"
***************
*** 8143,8163 ****
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:SI 0 "register_operand" "r")
! 	   (match_operand:MVE_6 1 "s_register_operand" "w")
! 	   (match_operand:MVE_6 2 "s_register_operand" "w")
  	   (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
  	  VSTRHSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrht.<V_sz_elem>\t%q2, [%0, %q1]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_scatter_offset_s vstrhq_scatter_offset_u]
  ;;
  (define_expand "mve_vstrhq_scatter_offset_<supf><mode>"
    [(match_operand:<MVE_H_ELEM> 0 "mve_scatter_memory")
!    (match_operand:MVE_6 1 "s_register_operand")
!    (match_operand:MVE_6 2 "s_register_operand")
     (unspec:V4SI [(const_int 0)] VSTRHSOQ)]
    "TARGET_HAVE_MVE"
  {
--- 4457,4478 ----
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:SI 0 "register_operand" "r")
! 	   (match_operand:MVE_5 1 "s_register_operand" "w")
! 	   (match_operand:MVE_5 2 "s_register_operand" "w")
  	   (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
  	  VSTRHSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrht.<V_sz_elem>\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_scatter_offset_<supf><mode>_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_scatter_offset_s vstrhq_scatter_offset_u]
  ;;
  (define_expand "mve_vstrhq_scatter_offset_<supf><mode>"
    [(match_operand:<MVE_H_ELEM> 0 "mve_scatter_memory")
!    (match_operand:MVE_5 1 "s_register_operand")
!    (match_operand:MVE_5 2 "s_register_operand")
     (unspec:V4SI [(const_int 0)] VSTRHSOQ)]
    "TARGET_HAVE_MVE"
  {
***************
*** 8172,8191 ****
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:SI 0 "register_operand" "r")
! 	   (match_operand:MVE_6 1 "s_register_operand" "w")
! 	   (match_operand:MVE_6 2 "s_register_operand" "w")]
  	  VSTRHSOQ))]
    "TARGET_HAVE_MVE"
    "vstrh.<V_sz_elem>\t%q2, [%0, %q1]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_scatter_shifted_offset_p_s vstrhq_scatter_shifted_offset_p_u]
  ;;
  (define_expand "mve_vstrhq_scatter_shifted_offset_p_<supf><mode>"
    [(match_operand:<MVE_H_ELEM> 0 "mve_scatter_memory")
!    (match_operand:MVE_6 1 "s_register_operand")
!    (match_operand:MVE_6 2 "s_register_operand")
     (match_operand:<MVE_VPRED> 3 "vpr_register_operand")
     (unspec:V4SI [(const_int 0)] VSTRHSSOQ)]
    "TARGET_HAVE_MVE"
--- 4487,4507 ----
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:SI 0 "register_operand" "r")
! 	   (match_operand:MVE_5 1 "s_register_operand" "w")
! 	   (match_operand:MVE_5 2 "s_register_operand" "w")]
  	  VSTRHSOQ))]
    "TARGET_HAVE_MVE"
    "vstrh.<V_sz_elem>\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_scatter_offset_<supf><mode>_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_scatter_shifted_offset_p_s vstrhq_scatter_shifted_offset_p_u]
  ;;
  (define_expand "mve_vstrhq_scatter_shifted_offset_p_<supf><mode>"
    [(match_operand:<MVE_H_ELEM> 0 "mve_scatter_memory")
!    (match_operand:MVE_5 1 "s_register_operand")
!    (match_operand:MVE_5 2 "s_register_operand")
     (match_operand:<MVE_VPRED> 3 "vpr_register_operand")
     (unspec:V4SI [(const_int 0)] VSTRHSSOQ)]
    "TARGET_HAVE_MVE"
***************
*** 8203,8223 ****
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:SI 0 "register_operand" "r")
! 	   (match_operand:MVE_6 1 "s_register_operand" "w")
! 	   (match_operand:MVE_6 2 "s_register_operand" "w")
  	   (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
  	  VSTRHSSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrht.<V_sz_elem>\t%q2, [%0, %q1, uxtw #1]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_scatter_shifted_offset_s vstrhq_scatter_shifted_offset_u]
  ;;
  (define_expand "mve_vstrhq_scatter_shifted_offset_<supf><mode>"
    [(match_operand:<MVE_H_ELEM> 0 "mve_scatter_memory")
!    (match_operand:MVE_6 1 "s_register_operand")
!    (match_operand:MVE_6 2 "s_register_operand")
     (unspec:V4SI [(const_int 0)] VSTRHSSOQ)]
    "TARGET_HAVE_MVE"
  {
--- 4519,4540 ----
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:SI 0 "register_operand" "r")
! 	   (match_operand:MVE_5 1 "s_register_operand" "w")
! 	   (match_operand:MVE_5 2 "s_register_operand" "w")
  	   (match_operand:<MVE_VPRED> 3 "vpr_register_operand" "Up")]
  	  VSTRHSSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrht.<V_sz_elem>\t%q2, [%0, %q1, uxtw #1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_scatter_shifted_offset_s vstrhq_scatter_shifted_offset_u]
  ;;
  (define_expand "mve_vstrhq_scatter_shifted_offset_<supf><mode>"
    [(match_operand:<MVE_H_ELEM> 0 "mve_scatter_memory")
!    (match_operand:MVE_5 1 "s_register_operand")
!    (match_operand:MVE_5 2 "s_register_operand")
     (unspec:V4SI [(const_int 0)] VSTRHSSOQ)]
    "TARGET_HAVE_MVE"
  {
***************
*** 8233,8251 ****
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:SI 0 "register_operand" "r")
! 	   (match_operand:MVE_6 1 "s_register_operand" "w")
! 	   (match_operand:MVE_6 2 "s_register_operand" "w")]
  	  VSTRHSSOQ))]
    "TARGET_HAVE_MVE"
    "vstrh.<V_sz_elem>\t%q2, [%0, %q1, uxtw #1]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_s, vstrhq_u]
  ;;
  (define_insn "mve_vstrhq_<supf><mode>"
    [(set (match_operand:<MVE_H_ELEM> 0 "mve_memory_operand" "=Ux")
! 	(unspec:<MVE_H_ELEM> [(match_operand:MVE_6 1 "s_register_operand" "w")]
  	 VSTRHQ))
    ]
    "TARGET_HAVE_MVE"
--- 4550,4569 ----
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:SI 0 "register_operand" "r")
! 	   (match_operand:MVE_5 1 "s_register_operand" "w")
! 	   (match_operand:MVE_5 2 "s_register_operand" "w")]
  	  VSTRHSSOQ))]
    "TARGET_HAVE_MVE"
    "vstrh.<V_sz_elem>\t%q2, [%0, %q1, uxtw #1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_s, vstrhq_u]
  ;;
  (define_insn "mve_vstrhq_<supf><mode>"
    [(set (match_operand:<MVE_H_ELEM> 0 "mve_memory_operand" "=Ux")
! 	(unspec:<MVE_H_ELEM> [(match_operand:MVE_5 1 "s_register_operand" "w")]
  	 VSTRHQ))
    ]
    "TARGET_HAVE_MVE"
***************
*** 8257,8263 ****
     output_asm_insn ("vstrh.<V_sz_elem>\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_f]
--- 4575,4582 ----
     output_asm_insn ("vstrh.<V_sz_elem>\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_<supf><mode>"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_f]
***************
*** 8276,8282 ****
     output_asm_insn ("vstrw.32\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_p_f]
--- 4595,4602 ----
     output_asm_insn ("vstrw.32\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_fv4sf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_p_f]
***************
*** 8285,8291 ****
    [(set (match_operand:V4SI 0 "mve_memory_operand" "=Ux")
  	(unspec:V4SI
  	 [(match_operand:V4SF 1 "s_register_operand" "w")
! 	  (match_operand:<MVE_VPRED> 2 "vpr_register_operand" "Up")
  	  (match_dup 0)]
  	 VSTRWQ_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
--- 4605,4611 ----
    [(set (match_operand:V4SI 0 "mve_memory_operand" "=Ux")
  	(unspec:V4SI
  	 [(match_operand:V4SF 1 "s_register_operand" "w")
! 	  (match_operand:V4BI 2 "vpr_register_operand" "Up")
  	  (match_dup 0)]
  	 VSTRWQ_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
***************
*** 8297,8303 ****
     output_asm_insn ("vpst\;vstrwt.32\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_p_s vstrwq_p_u]
--- 4617,4624 ----
     output_asm_insn ("vpst\;vstrwt.32\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_fv4sf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_p_s vstrwq_p_u]
***************
*** 8318,8324 ****
     output_asm_insn ("vpst\;vstrwt.32\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_s vstrwq_u]
--- 4639,4646 ----
     output_asm_insn ("vpst\;vstrwt.32\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_<supf>v4si"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_s vstrwq_u]
***************
*** 8337,8345 ****
     output_asm_insn ("vstrw.32\t%q1, %E0",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
! (define_expand "mve_vst1q_f<mode>"
    [(match_operand:<MVE_CNVT> 0 "mve_memory_operand")
     (unspec:<MVE_CNVT> [(match_operand:MVE_0 1 "s_register_operand")] VST1Q_F)
    ]
--- 4659,4668 ----
     output_asm_insn ("vstrw.32\t%q1, %E0",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_<supf>v4si"))
!   (set_attr "length" "4")])
  
! (define_expand "@mve_vst1q_f<mode>"
    [(match_operand:<MVE_CNVT> 0 "mve_memory_operand")
     (unspec:<MVE_CNVT> [(match_operand:MVE_0 1 "s_register_operand")] VST1Q_F)
    ]
***************
*** 8349,8355 ****
    DONE;
  })
  
! (define_expand "mve_vst1q_<supf><mode>"
    [(match_operand:MVE_2 0 "mve_memory_operand")
     (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand")] VST1Q)
    ]
--- 4672,4678 ----
    DONE;
  })
  
! (define_expand "@mve_vst1q_<supf><mode>"
    [(match_operand:MVE_2 0 "mve_memory_operand")
     (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand")] VST1Q)
    ]
***************
*** 8380,8386 ****
     output_asm_insn ("vpst\;\tvstrdt.u64\t%q2, [%q0, %1]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrdq_scatter_base_s vstrdq_scatter_base_u]
--- 4703,4710 ----
     output_asm_insn ("vpst\;\tvstrdt.u64\t%q2, [%q0, %1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrdq_scatter_base_<supf>v2di"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrdq_scatter_base_s vstrdq_scatter_base_u]
***************
*** 8402,8408 ****
     output_asm_insn ("vstrd.u64\t%q2, [%q0, %1]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrdq_scatter_offset_p_s vstrdq_scatter_offset_p_u]
--- 4726,4733 ----
     output_asm_insn ("vstrd.u64\t%q2, [%q0, %1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrdq_scatter_base_<supf>v2di"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrdq_scatter_offset_p_s vstrdq_scatter_offset_p_u]
***************
*** 8433,8439 ****
  	  VSTRDSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrdt.64\t%q2, [%0, %q1]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrdq_scatter_offset_s vstrdq_scatter_offset_u]
--- 4758,4765 ----
  	  VSTRDSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrdt.64\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrdq_scatter_offset_<supf>v2di_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrdq_scatter_offset_s vstrdq_scatter_offset_u]
***************
*** 8461,8467 ****
  	  VSTRDSOQ))]
    "TARGET_HAVE_MVE"
    "vstrd.64\t%q2, [%0, %q1]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrdq_scatter_shifted_offset_p_s vstrdq_scatter_shifted_offset_p_u]
--- 4787,4794 ----
  	  VSTRDSOQ))]
    "TARGET_HAVE_MVE"
    "vstrd.64\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrdq_scatter_offset_<supf>v2di_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrdq_scatter_shifted_offset_p_s vstrdq_scatter_shifted_offset_p_u]
***************
*** 8493,8499 ****
  	  VSTRDSSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrdt.64\t%q2, [%0, %q1, uxtw #3]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrdq_scatter_shifted_offset_s vstrdq_scatter_shifted_offset_u]
--- 4820,4827 ----
  	  VSTRDSSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrdt.64\t%q2, [%0, %q1, uxtw #3]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrdq_scatter_shifted_offset_s vstrdq_scatter_shifted_offset_u]
***************
*** 8522,8528 ****
  	  VSTRDSSOQ))]
    "TARGET_HAVE_MVE"
    "vstrd.64\t%q2, [%0, %q1, uxtw #3]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_scatter_offset_f]
--- 4850,4857 ----
  	  VSTRDSSOQ))]
    "TARGET_HAVE_MVE"
    "vstrd.64\t%q2, [%0, %q1, uxtw #3]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_scatter_offset_f]
***************
*** 8550,8556 ****
  	  VSTRHQSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vstrh.16\t%q2, [%0, %q1]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_scatter_offset_p_f]
--- 4879,4886 ----
  	  VSTRHQSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vstrh.16\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_scatter_offset_fv8hf_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_scatter_offset_p_f]
***************
*** 8581,8587 ****
  	  VSTRHQSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vstrht.16\t%q2, [%0, %q1]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_scatter_shifted_offset_f]
--- 4911,4918 ----
  	  VSTRHQSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vstrht.16\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_scatter_offset_fv8hf_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrhq_scatter_shifted_offset_f]
***************
*** 8609,8615 ****
  	  VSTRHQSSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vstrh.16\t%q2, [%0, %q1, uxtw #1]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_scatter_shifted_offset_p_f]
--- 4940,4947 ----
  	  VSTRHQSSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vstrh.16\t%q2, [%0, %q1, uxtw #1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_scatter_shifted_offset_fv8hf_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrhq_scatter_shifted_offset_p_f]
***************
*** 8641,8647 ****
  	  VSTRHQSSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vstrht.16\t%q2, [%0, %q1, uxtw #1]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_base_f]
--- 4973,4980 ----
  	  VSTRHQSSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vstrht.16\t%q2, [%0, %q1, uxtw #1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrhq_scatter_shifted_offset_fv8hf_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_base_f]
***************
*** 8663,8669 ****
     output_asm_insn ("vstrw.u32\t%q2, [%q0, %1]",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_base_p_f]
--- 4996,5003 ----
     output_asm_insn ("vstrw.u32\t%q2, [%q0, %1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_base_fv4sf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_base_p_f]
***************
*** 8686,8692 ****
     output_asm_insn ("vpst\n\tvstrwt.u32\t%q2, [%q0, %1]",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_offset_f]
--- 5020,5027 ----
     output_asm_insn ("vpst\n\tvstrwt.u32\t%q2, [%q0, %1]",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_base_fv4sf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_offset_f]
***************
*** 8714,8720 ****
  	  VSTRWQSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vstrw.32\t%q2, [%0, %q1]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_offset_p_f]
--- 5049,5056 ----
  	  VSTRWQSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vstrw.32\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_offset_fv4sf_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_offset_p_f]
***************
*** 8745,8751 ****
  	  VSTRWQSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vstrwt.32\t%q2, [%0, %q1]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_offset_s vstrwq_scatter_offset_u]
--- 5081,5088 ----
  	  VSTRWQSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vstrwt.32\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_offset_fv4sf_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_offset_s vstrwq_scatter_offset_u]
***************
*** 8776,8782 ****
  	  VSTRWSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrwt.32\t%q2, [%0, %q1]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_offset_s vstrwq_scatter_offset_u]
--- 5113,5120 ----
  	  VSTRWSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrwt.32\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_offset_<supf>v4si_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_offset_s vstrwq_scatter_offset_u]
***************
*** 8804,8810 ****
  	  VSTRWSOQ))]
    "TARGET_HAVE_MVE"
    "vstrw.32\t%q2, [%0, %q1]"
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_shifted_offset_f]
--- 5142,5149 ----
  	  VSTRWSOQ))]
    "TARGET_HAVE_MVE"
    "vstrw.32\t%q2, [%0, %q1]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_offset_<supf>v4si_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_shifted_offset_f]
***************
*** 8832,8838 ****
  	 VSTRWQSSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vstrw.32\t%q2, [%0, %q1, uxtw #2]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_shifted_offset_p_f]
--- 5171,5178 ----
  	 VSTRWQSSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vstrw.32\t%q2, [%0, %q1, uxtw #2]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_shifted_offset_fv4sf_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_shifted_offset_p_f]
***************
*** 8864,8870 ****
  	  VSTRWQSSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vstrwt.32\t%q2, [%0, %q1, uxtw #2]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_shifted_offset_p_s vstrwq_scatter_shifted_offset_p_u]
--- 5204,5211 ----
  	  VSTRWQSSO_F))]
    "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
    "vpst\;vstrwt.32\t%q2, [%0, %q1, uxtw #2]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_shifted_offset_fv4sf_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_shifted_offset_p_s vstrwq_scatter_shifted_offset_p_u]
***************
*** 8896,8902 ****
  	  VSTRWSSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrwt.32\t%q2, [%0, %q1, uxtw #2]"
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_shifted_offset_s vstrwq_scatter_shifted_offset_u]
--- 5237,5244 ----
  	  VSTRWSSOQ))]
    "TARGET_HAVE_MVE"
    "vpst\;vstrwt.32\t%q2, [%0, %q1, uxtw #2]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_shifted_offset_s vstrwq_scatter_shifted_offset_u]
***************
*** 8925,8959 ****
  	  VSTRWSSOQ))]
    "TARGET_HAVE_MVE"
    "vstrw.32\t%q2, [%0, %q1, uxtw #2]"
!   [(set_attr "length" "4")])
! 
! ;;
! ;; [vaddq_s, vaddq_u])
! ;;
! (define_insn "mve_vaddq<mode>"
!   [
!    (set (match_operand:MVE_2 0 "s_register_operand" "=w")
! 	(plus:MVE_2 (match_operand:MVE_2 1 "s_register_operand" "w")
! 		    (match_operand:MVE_2 2 "s_register_operand" "w")))
!   ]
!   "TARGET_HAVE_MVE"
!   "vadd.i%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
! 
! ;;
! ;; [vaddq_f])
! ;;
! (define_insn "mve_vaddq_f<mode>"
!   [
!    (set (match_operand:MVE_0 0 "s_register_operand" "=w")
! 	(plus:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w")
! 		    (match_operand:MVE_0 2 "s_register_operand" "w")))
!   ]
!   "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT"
!   "vadd.f%#<V_sz_elem>\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
! ])
  
  ;;
  ;; [vidupq_n_u])
--- 5267,5274 ----
  	  VSTRWSSOQ))]
    "TARGET_HAVE_MVE"
    "vstrw.32\t%q2, [%0, %q1, uxtw #2]"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vidupq_n_u])
***************
*** 9021,9027 ****
  		(match_operand:SI 6 "immediate_operand" "i")))]
   "TARGET_HAVE_MVE"
   "vpst\;\tvidupt.u%#<V_sz_elem>\t%q0, %2, %4"
!  [(set_attr "length""8")])
  
  ;;
  ;; [vddupq_n_u])
--- 5336,5343 ----
  		(match_operand:SI 6 "immediate_operand" "i")))]
   "TARGET_HAVE_MVE"
   "vpst\;\tvidupt.u%#<V_sz_elem>\t%q0, %2, %4"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vidupq_u<mode>_insn"))
!   (set_attr "length""8")])
  
  ;;
  ;; [vddupq_n_u])
***************
*** 9089,9095 ****
  		 (match_operand:SI 6 "immediate_operand" "i")))]
   "TARGET_HAVE_MVE"
   "vpst\;vddupt.u%#<V_sz_elem>\t%q0, %2, %4"
!  [(set_attr "length""8")])
  
  ;;
  ;; [vdwdupq_n_u])
--- 5405,5412 ----
  		 (match_operand:SI 6 "immediate_operand" "i")))]
   "TARGET_HAVE_MVE"
   "vpst\;vddupt.u%#<V_sz_elem>\t%q0, %2, %4"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vddupq_u<mode>_insn"))
!   (set_attr "length""8")])
  
  ;;
  ;; [vdwdupq_n_u])
***************
*** 9205,9212 ****
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vdwdupt.u%#<V_sz_elem>\t%q2, %3, %R4, %5"
!   [(set_attr "type" "mve_move")
!    (set_attr "length""8")])
  
  ;;
  ;; [viwdupq_n_u])
--- 5522,5530 ----
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vdwdupt.u%#<V_sz_elem>\t%q2, %3, %R4, %5"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vdwdupq_wb_u<mode>_insn"))
!   (set_attr "type" "mve_move")
!   (set_attr "length""8")])
  
  ;;
  ;; [viwdupq_n_u])
***************
*** 9322,9328 ****
    ]
    "TARGET_HAVE_MVE"
    "vpst\;\tviwdupt.u%#<V_sz_elem>\t%q2, %3, %R4, %5"
!   [(set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
--- 5640,5647 ----
    ]
    "TARGET_HAVE_MVE"
    "vpst\;\tviwdupt.u%#<V_sz_elem>\t%q2, %3, %R4, %5"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_viwdupq_wb_u<mode>_insn"))
!   (set_attr "type" "mve_move")
     (set_attr "length""8")])
  
  ;;
***************
*** 9348,9354 ****
     output_asm_insn ("vstrw.u32\t%q2, [%q0, %1]!",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_base_wb_p_s vstrwq_scatter_base_wb_p_u]
--- 5667,5674 ----
     output_asm_insn ("vstrw.u32\t%q2, [%q0, %1]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_base_wb_<supf>v4si"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_base_wb_p_s vstrwq_scatter_base_wb_p_u]
***************
*** 9374,9380 ****
     output_asm_insn ("vpst\;\tvstrwt.u32\t%q2, [%q0, %1]!",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_base_wb_f]
--- 5694,5701 ----
     output_asm_insn ("vpst\;\tvstrwt.u32\t%q2, [%q0, %1]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_base_wb_<supf>v4si"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrwq_scatter_base_wb_f]
***************
*** 9399,9405 ****
     output_asm_insn ("vstrw.u32\t%q2, [%q0, %1]!",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_base_wb_p_f]
--- 5720,5727 ----
     output_asm_insn ("vstrw.u32\t%q2, [%q0, %1]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_base_wb_fv4sf"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrwq_scatter_base_wb_p_f]
***************
*** 9425,9431 ****
     output_asm_insn ("vpst\;vstrwt.u32\t%q2, [%q0, %1]!",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vstrdq_scatter_base_wb_s vstrdq_scatter_base_wb_u]
--- 5747,5754 ----
     output_asm_insn ("vpst\;vstrwt.u32\t%q2, [%q0, %1]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrwq_scatter_base_wb_fv4sf"))
!   (set_attr "length" "8")])
  
  ;;
  ;; [vstrdq_scatter_base_wb_s vstrdq_scatter_base_wb_u]
***************
*** 9450,9456 ****
     output_asm_insn ("vstrd.u64\t%q2, [%q0, %1]!",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  ;;
  ;; [vstrdq_scatter_base_wb_p_s vstrdq_scatter_base_wb_p_u]
--- 5773,5780 ----
     output_asm_insn ("vstrd.u64\t%q2, [%q0, %1]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrdq_scatter_base_wb_<supf>v2di"))
!   (set_attr "length" "4")])
  
  ;;
  ;; [vstrdq_scatter_base_wb_p_s vstrdq_scatter_base_wb_p_u]
***************
*** 9476,9482 ****
     output_asm_insn ("vpst\;vstrdt.u64\t%q2, [%q0, %1]!",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  (define_expand "mve_vldrwq_gather_base_wb_<supf>v4si"
    [(match_operand:V4SI 0 "s_register_operand")
--- 5800,5807 ----
     output_asm_insn ("vpst\;vstrdt.u64\t%q2, [%q0, %1]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vstrdq_scatter_base_wb_<supf>v2di"))
!   (set_attr "length" "8")])
  
  (define_expand "mve_vldrwq_gather_base_wb_<supf>v4si"
    [(match_operand:V4SI 0 "s_register_operand")
***************
*** 9528,9534 ****
     output_asm_insn ("vldrw.u32\t%q0, [%q1, %2]!",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  (define_expand "mve_vldrwq_gather_base_wb_z_<supf>v4si"
    [(match_operand:V4SI 0 "s_register_operand")
--- 5853,5860 ----
     output_asm_insn ("vldrw.u32\t%q0, [%q1, %2]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_base_wb_<supf>v4si_insn"))
!   (set_attr "length" "4")])
  
  (define_expand "mve_vldrwq_gather_base_wb_z_<supf>v4si"
    [(match_operand:V4SI 0 "s_register_operand")
***************
*** 9584,9590 ****
     output_asm_insn ("vpst\;vldrwt.u32\t%q0, [%q1, %2]!",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  (define_expand "mve_vldrwq_gather_base_wb_fv4sf"
    [(match_operand:V4SI 0 "s_register_operand")
--- 5910,5917 ----
     output_asm_insn ("vpst\;vldrwt.u32\t%q0, [%q1, %2]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_base_wb_<supf>v4si_insn"))
!   (set_attr "length" "8")])
  
  (define_expand "mve_vldrwq_gather_base_wb_fv4sf"
    [(match_operand:V4SI 0 "s_register_operand")
***************
*** 9636,9642 ****
     output_asm_insn ("vldrw.u32\t%q0, [%q1, %2]!",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  (define_expand "mve_vldrwq_gather_base_wb_z_fv4sf"
    [(match_operand:V4SI 0 "s_register_operand")
--- 5963,5970 ----
     output_asm_insn ("vldrw.u32\t%q0, [%q1, %2]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_base_wb_fv4sf_insn"))
!   (set_attr "length" "4")])
  
  (define_expand "mve_vldrwq_gather_base_wb_z_fv4sf"
    [(match_operand:V4SI 0 "s_register_operand")
***************
*** 9693,9699 ****
     output_asm_insn ("vpst\;vldrwt.u32\t%q0, [%q1, %2]!",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  (define_expand "mve_vldrdq_gather_base_wb_<supf>v2di"
    [(match_operand:V2DI 0 "s_register_operand")
--- 6021,6028 ----
     output_asm_insn ("vpst\;vldrwt.u32\t%q0, [%q1, %2]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrwq_gather_base_wb_fv4sf_insn"))
!   (set_attr "length" "8")])
  
  (define_expand "mve_vldrdq_gather_base_wb_<supf>v2di"
    [(match_operand:V2DI 0 "s_register_operand")
***************
*** 9746,9752 ****
     output_asm_insn ("vldrd.64\t%q0, [%q1, %2]!",ops);
     return "";
  }
!   [(set_attr "length" "4")])
  
  (define_expand "mve_vldrdq_gather_base_wb_z_<supf>v2di"
    [(match_operand:V2DI 0 "s_register_operand")
--- 6075,6082 ----
     output_asm_insn ("vldrd.64\t%q0, [%q1, %2]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrdq_gather_base_wb_<supf>v2di_insn"))
!   (set_attr "length" "4")])
  
  (define_expand "mve_vldrdq_gather_base_wb_z_<supf>v2di"
    [(match_operand:V2DI 0 "s_register_operand")
***************
*** 9785,9791 ****
     (unspec_volatile:SI [(reg:SI VFPCC_REGNUM)] UNSPEC_GET_FPSCR_NZCVQC))]
   "TARGET_HAVE_MVE"
   "vmrs\\t%0, FPSCR_nzcvqc"
!   [(set_attr "type" "mve_move")])
  
  (define_insn "set_fpscr_nzcvqc"
   [(set (reg:SI VFPCC_REGNUM)
--- 6115,6121 ----
     (unspec_volatile:SI [(reg:SI VFPCC_REGNUM)] UNSPEC_GET_FPSCR_NZCVQC))]
   "TARGET_HAVE_MVE"
   "vmrs\\t%0, FPSCR_nzcvqc"
!  [(set_attr "type" "mve_move")])
  
  (define_insn "set_fpscr_nzcvqc"
   [(set (reg:SI VFPCC_REGNUM)
***************
*** 9793,9799 ****
      VUNSPEC_SET_FPSCR_NZCVQC))]
   "TARGET_HAVE_MVE"
   "vmsr\\tFPSCR_nzcvqc, %0"
!   [(set_attr "type" "mve_move")])
  
  ;;
  ;; [vldrdq_gather_base_wb_z_s vldrdq_gather_base_wb_z_u]
--- 6123,6129 ----
      VUNSPEC_SET_FPSCR_NZCVQC))]
   "TARGET_HAVE_MVE"
   "vmsr\\tFPSCR_nzcvqc, %0"
!  [(set_attr "type" "mve_move")])
  
  ;;
  ;; [vldrdq_gather_base_wb_z_s vldrdq_gather_base_wb_z_u]
***************
*** 9818,9824 ****
     output_asm_insn ("vpst\;vldrdt.u64\t%q0, [%q1, %2]!",ops);
     return "";
  }
!   [(set_attr "length" "8")])
  ;;
  ;; [vadciq_m_s, vadciq_m_u])
  ;;
--- 6148,6155 ----
     output_asm_insn ("vpst\;vldrdt.u64\t%q0, [%q1, %2]!",ops);
     return "";
  }
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vldrdq_gather_base_wb_<supf>v2di_insn"))
!   (set_attr "length" "8")])
  ;;
  ;; [vadciq_m_s, vadciq_m_u])
  ;;
***************
*** 9835,9841 ****
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vadcit.i32\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
--- 6166,6173 ----
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vadcit.i32\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vadciq_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
***************
*** 9852,9858 ****
    ]
    "TARGET_HAVE_MVE"
    "vadci.i32\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "4")])
  
  ;;
--- 6184,6191 ----
    ]
    "TARGET_HAVE_MVE"
    "vadci.i32\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vadciq_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "4")])
  
  ;;
***************
*** 9871,9877 ****
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vadct.i32\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
--- 6204,6211 ----
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vadct.i32\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vadcq_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
***************
*** 9888,9894 ****
    ]
    "TARGET_HAVE_MVE"
    "vadc.i32\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "4")
     (set_attr "conds" "set")])
  
--- 6222,6229 ----
    ]
    "TARGET_HAVE_MVE"
    "vadc.i32\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vadcq_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "4")
     (set_attr "conds" "set")])
  
***************
*** 9908,9914 ****
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vsbcit.i32\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
--- 6243,6250 ----
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vsbcit.i32\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vsbciq_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
***************
*** 9925,9931 ****
    ]
    "TARGET_HAVE_MVE"
    "vsbci.i32\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "4")])
  
  ;;
--- 6261,6268 ----
    ]
    "TARGET_HAVE_MVE"
    "vsbci.i32\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vsbciq_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "4")])
  
  ;;
***************
*** 9944,9950 ****
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vsbct.i32\t%q0, %q2, %q3"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
--- 6281,6288 ----
    ]
    "TARGET_HAVE_MVE"
    "vpst\;vsbct.i32\t%q0, %q2, %q3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vsbcq_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "8")])
  
  ;;
***************
*** 9961,9967 ****
    ]
    "TARGET_HAVE_MVE"
    "vsbc.i32\t%q0, %q1, %q2"
!   [(set_attr "type" "mve_move")
     (set_attr "length" "4")])
  
  ;;
--- 6299,6306 ----
    ]
    "TARGET_HAVE_MVE"
    "vsbc.i32\t%q0, %q1, %q2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vsbcq_<supf>v4si"))
!   (set_attr "type" "mve_move")
     (set_attr "length" "4")])
  
  ;;
***************
*** 9990,9996 ****
  		    "vst21.<V_sz_elem>\t{%q0, %q1}, %3", ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vld2q])
--- 6329,6335 ----
  		    "vst21.<V_sz_elem>\t{%q0, %q1}, %3", ops);
     return "";
  }
!  [(set_attr "length" "8")])
  
  ;;
  ;; [vld2q])
***************
*** 10018,10024 ****
  		    "vld21.<V_sz_elem>\t{%q0, %q1}, %3", ops);
     return "";
  }
!   [(set_attr "length" "8")])
  
  ;;
  ;; [vld4q])
--- 6357,6363 ----
  		    "vld21.<V_sz_elem>\t{%q0, %q1}, %3", ops);
     return "";
  }
!  [(set_attr "length" "8")])
  
  ;;
  ;; [vld4q])
***************
*** 10361,10367 ****
   ]
   "TARGET_HAVE_MVE"
   "vpst\;vshlct\t%q0, %1, %4"
!  [(set_attr "type" "mve_move")
    (set_attr "length" "8")])
  
  ;; CDE instructions on MVE registers.
--- 6700,6707 ----
   ]
   "TARGET_HAVE_MVE"
   "vpst\;vshlct\t%q0, %1, %4"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_vshlcq_<supf><mode>"))
!   (set_attr "type" "mve_move")
    (set_attr "length" "8")])
  
  ;; CDE instructions on MVE registers.
***************
*** 10373,10379 ****
  	 UNSPEC_VCDE))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx1\\tp%c1, %q0, #%c2"
!   [(set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx1qav16qi"
--- 6713,6720 ----
  	 UNSPEC_VCDE))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx1\\tp%c1, %q0, #%c2"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx1qv16qi"))
!   (set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx1qav16qi"
***************
*** 10384,10390 ****
  	 UNSPEC_VCDEA))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx1a\\tp%c1, %q0, #%c3"
!   [(set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx2qv16qi"
--- 6725,6732 ----
  	 UNSPEC_VCDEA))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx1a\\tp%c1, %q0, #%c3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx1qav16qi"))
!   (set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx2qv16qi"
***************
*** 10395,10401 ****
  	 UNSPEC_VCDE))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx2\\tp%c1, %q0, %q2, #%c3"
!   [(set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx2qav16qi"
--- 6737,6744 ----
  	 UNSPEC_VCDE))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx2\\tp%c1, %q0, %q2, #%c3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx2qv16qi"))
!   (set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx2qav16qi"
***************
*** 10407,10413 ****
  	 UNSPEC_VCDEA))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx2a\\tp%c1, %q0, %q3, #%c4"
!   [(set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx3qv16qi"
--- 6750,6757 ----
  	 UNSPEC_VCDEA))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx2a\\tp%c1, %q0, %q3, #%c4"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx2qav16qi"))
!   (set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx3qv16qi"
***************
*** 10419,10425 ****
  	 UNSPEC_VCDE))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx3\\tp%c1, %q0, %q2, %q3, #%c4"
!   [(set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx3qav16qi"
--- 6763,6770 ----
  	 UNSPEC_VCDE))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx3\\tp%c1, %q0, %q2, %q3, #%c4"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx3qv16qi"))
!   (set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx3qav16qi"
***************
*** 10432,10438 ****
  	 UNSPEC_VCDEA))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx3a\\tp%c1, %q0, %q3, %q4, #%c5"
!   [(set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx1q<a>_p_v16qi"
--- 6777,6784 ----
  	 UNSPEC_VCDEA))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vcx3a\\tp%c1, %q0, %q3, %q4, #%c5"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx3qav16qi"))
!   (set_attr "type" "coproc")]
  )
  
  (define_insn "arm_vcx1q<a>_p_v16qi"
***************
*** 10444,10450 ****
  	 CDE_VCX))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vpst\;vcx1<a>t\\tp%c1, %q0, #%c3"
!   [(set_attr "type" "coproc")
     (set_attr "length" "8")]
  )
  
--- 6790,6797 ----
  	 CDE_VCX))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vpst\;vcx1<a>t\\tp%c1, %q0, #%c3"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx1q<a>v16qi"))
!   (set_attr "type" "coproc")
     (set_attr "length" "8")]
  )
  
***************
*** 10458,10464 ****
  	 CDE_VCX))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vpst\;vcx2<a>t\\tp%c1, %q0, %q3, #%c4"
!   [(set_attr "type" "coproc")
     (set_attr "length" "8")]
  )
  
--- 6805,6812 ----
  	 CDE_VCX))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vpst\;vcx2<a>t\\tp%c1, %q0, %q3, #%c4"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx2q<a>v16qi"))
!   (set_attr "type" "coproc")
     (set_attr "length" "8")]
  )
  
***************
*** 10473,10483 ****
  	 CDE_VCX))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vpst\;vcx3<a>t\\tp%c1, %q0, %q3, %q4, #%c5"
!   [(set_attr "type" "coproc")
     (set_attr "length" "8")]
  )
  
! (define_insn "*movmisalign<mode>_mve_store"
    [(set (match_operand:MVE_VLD_ST 0 "mve_memory_operand"	     "=Ux")
  	(unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "s_register_operand" " w")]
  	 UNSPEC_MISALIGNED_ACCESS))]
--- 6821,6832 ----
  	 CDE_VCX))]
    "TARGET_CDE && TARGET_HAVE_MVE"
    "vpst\;vcx3<a>t\\tp%c1, %q0, %q3, %q4, #%c5"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_arm_vcx3q<a>v16qi"))
!   (set_attr "type" "coproc")
     (set_attr "length" "8")]
  )
  
! (define_insn "movmisalign<mode>_mve_store"
    [(set (match_operand:MVE_VLD_ST 0 "mve_memory_operand"	     "=Ux")
  	(unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "s_register_operand" " w")]
  	 UNSPEC_MISALIGNED_ACCESS))]
***************
*** 10485,10495 ****
      || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (<MODE>mode)))
     && !BYTES_BIG_ENDIAN && unaligned_access"
    "vstr<V_sz_elem1>.<V_sz_elem>\t%q1, %E0"
!   [(set_attr "type" "mve_store")]
  )
  
  
! (define_insn "*movmisalign<mode>_mve_load"
    [(set (match_operand:MVE_VLD_ST 0 "s_register_operand"				 "=w")
  	(unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "mve_memory_operand" " Ux")]
  	 UNSPEC_MISALIGNED_ACCESS))]
--- 6834,6845 ----
      || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (<MODE>mode)))
     && !BYTES_BIG_ENDIAN && unaligned_access"
    "vstr<V_sz_elem1>.<V_sz_elem>\t%q1, %E0"
!   [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_movmisalign<mode>_mve_store"))
!    (set_attr "type" "mve_store")]
  )
  
  
! (define_insn "movmisalign<mode>_mve_load"
    [(set (match_operand:MVE_VLD_ST 0 "s_register_operand"				 "=w")
  	(unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "mve_memory_operand" " Ux")]
  	 UNSPEC_MISALIGNED_ACCESS))]
***************
*** 10497,10503 ****
      || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (<MODE>mode)))
     && !BYTES_BIG_ENDIAN && unaligned_access"
    "vldr<V_sz_elem1>.<V_sz_elem>\t%q0, %E1"
!   [(set_attr "type" "mve_load")]
  )
  
  ;; Expander for VxBI moves
--- 6847,6854 ----
      || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (<MODE>mode)))
     && !BYTES_BIG_ENDIAN && unaligned_access"
    "vldr<V_sz_elem1>.<V_sz_elem>\t%q0, %E1"
!   [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_movmisalign<mode>_mve_load"))
!    (set_attr "type" "mve_load")]
  )
  
  ;; Expander for VxBI moves
***************
*** 10549,10563 ****
    switch (GET_MODE_CLASS (<MODE>mode))
      {
        case MODE_VECTOR_INT:
! 	emit_insn (gen_mve_vpselq (VPSELQ_S, <MODE>mode, operands[0],
! 				   operands[1], operands[2], operands[3]));
  	break;
        case MODE_VECTOR_FLOAT:
! 	emit_insn (gen_mve_vpselq_f (<MODE>mode, operands[0],
! 				     operands[1], operands[2], operands[3]));
  	break;
        default:
  	gcc_unreachable ();
      }
    DONE;
  })
--- 6900,6932 ----
    switch (GET_MODE_CLASS (<MODE>mode))
      {
        case MODE_VECTOR_INT:
! 	emit_insn (gen_mve_q (VPSELQ_S,	VPSELQ_S, <MODE>mode, operands[0],
! 			      operands[1], operands[2], operands[3]));
  	break;
        case MODE_VECTOR_FLOAT:
! 	emit_insn (gen_mve_q_f (VPSELQ_F, <MODE>mode, operands[0],
! 				operands[1], operands[2], operands[3]));
  	break;
        default:
  	gcc_unreachable ();
      }
    DONE;
  })
+ 
+ ;; Reinterpret operand 1 in operand 0's mode, without changing its contents.
+ (define_expand "@arm_mve_reinterpret<mode>"
+   [(set (match_operand:MVE_vecs 0 "register_operand")
+ 	(unspec:MVE_vecs
+ 	  [(match_operand 1 "arm_any_register_operand")]
+ 	  REINTERPRET))]
+   "(TARGET_HAVE_MVE && VALID_MVE_SI_MODE (<MODE>mode))
+     || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (<MODE>mode))"
+   {
+     machine_mode src_mode = GET_MODE (operands[1]);
+     if (targetm.can_change_mode_class (<MODE>mode, src_mode, VFP_REGS))
+       {
+ 	emit_move_insn (operands[0], gen_lowpart (<MODE>mode, operands[1]));
+ 	DONE;
+       }
+   }
+ )
diff -Nrcpad gcc-13.2.0/gcc/config/arm/neon.md gcc-14.1.0/gcc/config/arm/neon.md
*** gcc-13.2.0/gcc/config/arm/neon.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/neon.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM NEON coprocessor Machine Description
! ;; Copyright (C) 2006-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM NEON coprocessor Machine Description
! ;; Copyright (C) 2006-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
***************
*** 408,413 ****
--- 408,462 ----
    [(set_attr "type" "neon_store1_one_lane<q>,neon_to_gp<q>")]
  )
  
+ ;; Patterns comparing two vectors and conditionally jump.
+ ;; Avdanced SIMD lacks a vector != comparison, but this is a quite common
+ ;; operation.  To not pay the penalty for inverting == we can map our any
+ ;; comparisons to all i.e. any(~x) => all(x).
+ ;;
+ ;; However unlike the AArch64 version, we can't optimize this further as the
+ ;; chain is too long for combine due to these being unspecs so it doesn't fold
+ ;; the operation to something simpler.
+ (define_expand "cbranch<mode>4"
+   [(set (pc) (if_then_else
+ 	      (match_operator 0 "expandable_comparison_operator"
+ 	       [(match_operand:VDQI 1 "register_operand")
+ 	        (match_operand:VDQI 2 "reg_or_zero_operand")])
+ 	      (label_ref (match_operand 3 "" ""))
+ 	      (pc)))]
+   "TARGET_NEON"
+ {
+   rtx mask = operands[1];
+ 
+   /* If comparing against a non-zero vector we have to do a comparison first
+      so we can have a != 0 comparison with the result.  */
+   if (operands[2] != CONST0_RTX (<MODE>mode))
+     {
+       mask = gen_reg_rtx (<MODE>mode);
+       emit_insn (gen_xor<mode>3 (mask, operands[1], operands[2]));
+     }
+ 
+   /* For 128-bit vectors we need an additional reductions.  */
+   if (known_eq (128, GET_MODE_BITSIZE (<MODE>mode)))
+     {
+       /* Always reduce using a V4SI.  */
+       rtx op1 = lowpart_subreg (V4SImode, mask, <MODE>mode);
+       mask = gen_reg_rtx (V2SImode);
+       rtx low = gen_reg_rtx (V2SImode);
+       rtx high = gen_reg_rtx (V2SImode);
+       emit_insn (gen_neon_vget_lowv4si (low, op1));
+       emit_insn (gen_neon_vget_highv4si (high, op1));
+       emit_insn (gen_neon_vpumaxv2si (mask, low, high));
+     }
+ 
+   rtx op1 = lowpart_subreg (V2SImode, mask, GET_MODE (mask));
+   emit_insn (gen_neon_vpumaxv2si (op1, op1, op1));
+ 
+   rtx val = gen_reg_rtx (SImode);
+   emit_move_insn (val, gen_lowpart (SImode, mask));
+   emit_jump_insn (gen_cbranch_cc (operands[0], val, const0_rtx, operands[3]));
+   DONE;
+ })
+ 
  ;; This pattern is renamed from "vec_extract<mode><V_elem_l>" to
  ;; "neon_vec_extract<mode><V_elem_l>" and this pattern is called
  ;; by define_expand in vec-common.md file.
***************
*** 504,514 ****
     Enabled with -funsafe-math-optimizations -freciprocal-math
     and disabled for -Os since it increases code size .  */
  
! (define_expand "div<mode>3"
    [(set (match_operand:VCVTF 0 "s_register_operand")
          (div:VCVTF (match_operand:VCVTF 1 "s_register_operand")
  		  (match_operand:VCVTF 2 "s_register_operand")))]
!   "TARGET_NEON && !optimize_size
     && flag_reciprocal_math"
    {
      rtx rec = gen_reg_rtx (<MODE>mode);
--- 553,563 ----
     Enabled with -funsafe-math-optimizations -freciprocal-math
     and disabled for -Os since it increases code size .  */
  
! (define_expand "div<VCVTF:mode>3"
    [(set (match_operand:VCVTF 0 "s_register_operand")
          (div:VCVTF (match_operand:VCVTF 1 "s_register_operand")
  		  (match_operand:VCVTF 2 "s_register_operand")))]
!   "ARM_HAVE_NEON_<MODE>_ARITH && !optimize_size
     && flag_reciprocal_math"
    {
      rtx rec = gen_reg_rtx (<MODE>mode);
*************** if (BYTES_BIG_ENDIAN)
*** 4957,4962 ****
--- 5006,5136 ----
    [(set_attr "type" "neon_load1_1reg<q>")]
  )
  
+ (define_insn "neon_vld1<VMEMX2_q>_x2<VDQX:mode>"
+   [(set (match_operand:VMEMX2 0 "s_register_operand" "=w")
+         (unspec:VMEMX2 [(match_operand:VMEMX2 1 "neon_struct_operand" "Um")
+                         (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                        UNSPEC_VLD1))]
+   "TARGET_NEON"
+   "vld1.<V_sz_elem>\t%h0, %A1"
+   [(set_attr "type" "neon_load1_2reg<q>")]
+ )
+ 
+ (define_insn "neon_vld1_x3<mode>"
+   [(set (match_operand:EI 0 "s_register_operand" "=w")
+         (unspec:EI [(match_operand:EI 1 "neon_struct_operand" "Um")
+                     (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                     UNSPEC_VLD1))]
+   "TARGET_NEON"
+   "vld1.<V_sz_elem>\t%h0, %A1"
+   [(set_attr "type" "neon_load1_3reg<q>")]
+ )
+ 
+ (define_expand "neon_vld1q_x3<mode>"
+   [(match_operand:CI 0 "s_register_operand")
+    (match_operand:CI 1 "neon_struct_operand")
+    (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+   "TARGET_NEON"
+ {
+   rtx mem = adjust_address (operands[1], EImode, 0);
+   emit_insn (gen_neon_vld1x3qa<mode> (operands[0], mem));
+   mem = adjust_address (mem, EImode, GET_MODE_SIZE (EImode));
+   emit_insn (gen_neon_vld1x3qb<mode> (operands[0], mem, operands[0]));
+   DONE;
+ })
+ 
+ (define_insn "neon_vld1x3qa<mode>"
+   [(set (match_operand:CI 0 "s_register_operand" "=w")
+         (unspec:CI [(match_operand:EI 1 "neon_struct_operand" "Um")
+                     (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VLD1X3A))]
+   "TARGET_NEON"
+ {
+   rtx ops[2];
+   ops[0] = gen_rtx_REG (EImode, REGNO (operands[0]));
+   ops[1] = operands[1];
+ 
+   output_asm_insn ("vld1.<V_sz_elem>\t%h0, %A1", ops);
+   return "";
+ }
+   [(set_attr "type" "neon_load1_3reg<q>")]
+ )
+ 
+ (define_insn "neon_vld1x3qb<mode>"
+   [(set (match_operand:CI 0 "s_register_operand" "=w")
+         (unspec:CI [(match_operand:EI 1 "neon_struct_operand" "Um")
+                     (match_operand:CI 2 "s_register_operand" "0")
+                     (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VLD1X3B))]
+   "TARGET_NEON"
+ {
+   rtx ops[2];
+   ops[0] = gen_rtx_REG (EImode, REGNO (operands[0]) + 6);
+   ops[1] = operands[1];
+ 
+   output_asm_insn ("vld1.<V_sz_elem>\t%h0, %A1", ops);
+   return "";
+ }
+   [(set_attr "type" "neon_load1_3reg<q>")]
+ )
+ 
+ (define_insn "neon_vld1_x4<mode>"
+   [(set (match_operand:OI 0 "s_register_operand" "=w")
+         (unspec:OI [(match_operand:OI 1 "neon_struct_operand" "Um")
+                     (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                     UNSPEC_VLD1))]
+   "TARGET_NEON"
+   "vld1.<V_sz_elem>\t%h0, %A1"
+   [(set_attr "type" "neon_load1_4reg<q>")]
+ )
+ (define_expand "neon_vld1q_x4<mode>"
+   [(match_operand:XI 0 "s_register_operand")
+    (match_operand:XI 1 "neon_struct_operand")
+    (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+   "TARGET_NEON"
+ {
+   rtx mem = adjust_address (operands[1], OImode, 0);
+   emit_insn (gen_neon_vld1x4qa<mode> (operands[0], mem));
+   mem = adjust_address (mem, OImode, GET_MODE_SIZE (OImode));
+   emit_insn (gen_neon_vld1x4qb<mode> (operands[0], mem, operands[0]));
+   DONE;
+ })
+ 
+ (define_insn "neon_vld1x4qa<mode>"
+   [(set (match_operand:XI 0 "s_register_operand" "=w")
+         (unspec:XI [(match_operand:OI 1 "neon_struct_operand" "Um")
+                     (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VLD1X4A))]
+   "TARGET_NEON"
+ {
+   rtx ops[2];
+   ops[0] = gen_rtx_REG (OImode, REGNO (operands[0]));
+   ops[1] = operands[1];
+ 
+   output_asm_insn ("vld1.<V_sz_elem>\t%h0, %A1", ops);
+   return "";
+ }
+   [(set_attr "type" "neon_load1_4reg<q>")]
+ )
+ 
+ (define_insn "neon_vld1x4qb<mode>"
+   [(set (match_operand:XI 0 "s_register_operand" "=w")
+         (unspec:XI [(match_operand:OI 1 "neon_struct_operand" "Um")
+                     (match_operand:XI 2 "s_register_operand" "0")
+                     (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VLD1X4B))]
+   "TARGET_NEON"
+ {
+   rtx ops[2];
+   ops[0] = gen_rtx_REG (OImode, REGNO (operands[0]) + 8);
+   ops[1] = operands[1];
+ 
+   output_asm_insn ("vld1.<V_sz_elem>\t%h0, %A1", ops);
+   return "";
+ }
+   [(set_attr "type" "neon_load1_4reg<q>")]
+ )
+ 
  ;; The lane numbers in the RTL are in GCC lane order, having been flipped
  ;; in arm_expand_neon_args. The lane numbers are restored to architectural
  ;; lane order here.
*************** if (BYTES_BIG_ENDIAN)
*** 5066,5071 ****
--- 5240,5369 ----
    "vst1.<V_sz_elem>\t%h1, %A0"
    [(set_attr "type" "neon_store1_1reg<q>")])
  
+ (define_insn "neon_vst1<VMEMX2_q>_x2<VDQX:mode>"
+   [(set (match_operand:VMEMX2 0 "neon_struct_operand" "=Um")
+         (unspec:VMEMX2 [(match_operand:VMEMX2 1 "s_register_operand" "w")
+                     (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VST1))]
+   "TARGET_NEON"
+   "vst1.<V_sz_elem>\t%h1, %A0"
+   [(set_attr "type" "neon_store1_2reg<q>")]
+ )
+ 
+ (define_insn "neon_vst1_x3<mode>"
+   [(set (match_operand:EI 0 "neon_struct_operand" "=Um")
+         (unspec:EI [(match_operand:EI 1 "s_register_operand" "w")
+                     (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VST1))]
+   "TARGET_NEON"
+   "vst1.<V_sz_elem>\t%h1, %A0"
+   [(set_attr "type" "neon_store1_3reg<q>")]
+ )
+ 
+ (define_expand "neon_vst1q_x3<mode>"
+   [(match_operand:CI 0 "neon_struct_operand")
+    (match_operand:CI 1 "s_register_operand")
+    (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+   "TARGET_NEON"
+ {
+   rtx mem = adjust_address (operands[0], EImode, 0);
+   emit_insn (gen_neon_vst1x3qa<mode> (mem, operands[1]));
+   mem = adjust_address (mem, EImode, GET_MODE_SIZE (EImode));
+   emit_insn (gen_neon_vst1x3qb<mode> (mem, operands[1]));
+   DONE;
+ })
+ 
+ (define_insn "neon_vst1x3qa<mode>"
+   [(set (match_operand:EI 0 "neon_struct_operand" "=Um")
+         (unspec:EI [(match_operand:CI 1 "s_register_operand" "w")
+                     (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VST1X3A))]
+   "TARGET_NEON"
+ {
+   rtx ops[2];
+   ops[0] = operands[0];
+   ops[1] = gen_rtx_REG (EImode, REGNO (operands[1]));
+ 
+   output_asm_insn ("vst1.<V_sz_elem>\t%h1, %A0", ops);
+   return "";
+ }
+   [(set_attr "type" "neon_store1_3reg<q>")]
+ )
+ 
+ (define_insn "neon_vst1x3qb<mode>"
+   [(set (match_operand:EI 0 "neon_struct_operand" "=Um")
+         (unspec:EI [(match_operand:CI 1 "s_register_operand" "w")
+                     (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VST1X3B))]
+   "TARGET_NEON"
+ {
+   rtx ops[2];
+   ops[0] = operands[0];
+   ops[1] = gen_rtx_REG (EImode, REGNO (operands[1]) + 6);
+ 
+   output_asm_insn ("vst1.<V_sz_elem>\t%h1, %A0", ops);
+   return "";
+ }
+   [(set_attr "type" "neon_store1_3reg<q>")]
+ )
+ 
+ (define_insn "neon_vst1_x4<mode>"
+   [(set (match_operand:OI 0 "neon_struct_operand" "=Um")
+         (unspec:OI [(match_operand:OI 1 "s_register_operand" "w")
+                     (unspec:VDQX [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VST1))]
+   "TARGET_NEON"
+   "vst1.<V_sz_elem>\t%h1, %A0"
+   [(set_attr "type" "neon_store1_4reg<q>")]
+ )
+ 
+ (define_expand "neon_vst1q_x4<mode>"
+   [(match_operand:XI 0 "neon_struct_operand")
+    (match_operand:XI 1 "s_register_operand")
+    (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+   "TARGET_NEON"
+ {
+   rtx mem = adjust_address (operands[0], OImode, 0);
+   emit_insn (gen_neon_vst1x4qa<mode> (mem, operands[1]));
+   mem = adjust_address (mem, OImode, GET_MODE_SIZE (OImode));
+   emit_insn (gen_neon_vst1x4qb<mode> (mem, operands[1]));
+   DONE;
+ })
+ 
+ (define_insn "neon_vst1x4qa<mode>"
+   [(set (match_operand:OI 0 "neon_struct_operand" "=Um")
+         (unspec:OI [(match_operand:XI 1 "s_register_operand" "w")
+                     (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VST1X4A))]
+   "TARGET_NEON"
+ {
+   rtx ops[2];
+   ops[0] = operands[0];
+   ops[1] = gen_rtx_REG (OImode, REGNO (operands[1]));
+ 
+   output_asm_insn ("vst1.<V_sz_elem>\t%h1, %A0", ops);
+   return "";
+ }
+   [(set_attr "type" "neon_store1_4reg<q>")]
+ )
+ 
+ (define_insn "neon_vst1x4qb<mode>"
+   [(set (match_operand:OI 0 "neon_struct_operand" "=Um")
+         (unspec:OI [(match_operand:XI 1 "s_register_operand" "w")
+                     (unspec:VQXBF [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
+                    UNSPEC_VST1X4B))]
+   "TARGET_NEON"
+ {
+   rtx ops[2];
+   ops[0] = operands[0];
+   ops[1] = gen_rtx_REG (OImode, REGNO (operands[1]) + 8);
+ 
+   output_asm_insn ("vst1.<V_sz_elem>\t%h1, %A0", ops);
+   return "";
+ }
+   [(set_attr "type" "neon_store1_4reg<q>")]
+ )
+ 
  ;; see comment on neon_vld1_lane for reason why the lane numbers are reversed
  ;; here on big endian targets.
  (define_insn "neon_vst1_lane<mode>"
diff -Nrcpad gcc-13.2.0/gcc/config/arm/netbsd-eabi.h gcc-14.1.0/gcc/config/arm/netbsd-eabi.h
*** gcc-13.2.0/gcc/config/arm/netbsd-eabi.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/netbsd-eabi.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by Wasabi Systems, Inc.
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Wasabi Systems, Inc.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/netbsd-elf.h gcc-14.1.0/gcc/config/arm/netbsd-elf.h
*** gcc-13.2.0/gcc/config/arm/netbsd-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/netbsd-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by Wasabi Systems, Inc.
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Wasabi Systems, Inc.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/parsecpu.awk gcc-14.1.0/gcc/config/arm/parsecpu.awk
*** gcc-13.2.0/gcc/config/arm/parsecpu.awk	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/parsecpu.awk	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Manipulate the CPU, FPU and architecture descriptions for ARM.
! # Copyright (C) 2017-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,5 ----
  # Manipulate the CPU, FPU and architecture descriptions for ARM.
! # Copyright (C) 2017-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** function boilerplate (style) {
*** 62,68 ****
      print cc "Generated automatically by parsecpu.awk from arm-cpus.in."
      print cc "Do not edit."
      print ""
!     print cc "Copyright (C) 2011-2023 Free Software Foundation, Inc."
      print ""
      print cc "This file is part of GCC."
      print ""
--- 62,68 ----
      print cc "Generated automatically by parsecpu.awk from arm-cpus.in."
      print cc "Do not edit."
      print ""
!     print cc "Copyright (C) 2011-2024 Free Software Foundation, Inc."
      print ""
      print cc "This file is part of GCC."
      print ""
*************** function check_cpu (name) {
*** 529,535 ****
  
      for (n = 2; n <= exts; n++) {
  	if (!((cpu_name, extensions[n]) in cpu_opt_remove)	\
! 	    && !((cpu_name, extensions[n]) in cpu_optaliases)) {
  	    return "error"
  	}
      }
--- 529,535 ----
  
      for (n = 2; n <= exts; n++) {
  	if (!((cpu_name, extensions[n]) in cpu_opt_remove)	\
! 	    && !((cpu_name, extensions[n]) in cpu_opt_alias)) {
  	    return "error"
  	}
      }
*************** function check_arch (name) {
*** 552,558 ****
  
      for (n = 2; n <= exts; n++) {
  	if (!((extensions[1], extensions[n]) in arch_opt_remove)	\
! 	    && !((extensions[1], extensions[n]) in arch_optaliases)) {
  	    return "error"
  	}
      }
--- 552,558 ----
  
      for (n = 2; n <= exts; n++) {
  	if (!((extensions[1], extensions[n]) in arch_opt_remove)	\
! 	    && !((extensions[1], extensions[n]) in arch_opt_alias)) {
  	    return "error"
  	}
      }
diff -Nrcpad gcc-13.2.0/gcc/config/arm/predicates.md gcc-14.1.0/gcc/config/arm/predicates.md
*** gcc-13.2.0/gcc/config/arm/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for ARM and Thumb
! ;; Copyright (C) 2004-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Predicate definitions for ARM and Thumb
! ;; Copyright (C) 2004-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
***************
*** 903,905 ****
--- 903,909 ----
  (define_special_predicate "aligned_operand"
    (ior (not (match_code "mem"))
         (match_test "MEM_ALIGN (op) >= GET_MODE_ALIGNMENT (mode)")))
+ 
+ ;; A special predicate that doesn't match a particular mode.
+ (define_special_predicate "arm_any_register_operand"
+   (match_code "reg"))
diff -Nrcpad gcc-13.2.0/gcc/config/arm/rtems.h gcc-14.1.0/gcc/config/arm/rtems.h
*** gcc-13.2.0/gcc/config/arm/rtems.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/rtems.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for RTEMS based ARM systems using EABI.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for RTEMS based ARM systems using EABI.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/arm/semi.h gcc-14.1.0/gcc/config/arm/semi.h
*** gcc-13.2.0/gcc/config/arm/semi.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/semi.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler.  ARM on semi-hosted platform
!    Copyright (C) 1994-2023 Free Software Foundation, Inc.
     Contributed by Richard Earnshaw (richard.earnshaw@arm.com)
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler.  ARM on semi-hosted platform
!    Copyright (C) 1994-2024 Free Software Foundation, Inc.
     Contributed by Richard Earnshaw (richard.earnshaw@arm.com)
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/symbian.h gcc-14.1.0/gcc/config/arm/symbian.h
*** gcc-13.2.0/gcc/config/arm/symbian.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/symbian.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Configuration file for Symbian OS on ARM processors.
!    Copyright (C) 2004-2023 Free Software Foundation, Inc.
     Contributed by CodeSourcery, LLC   
  
     This file is part of GCC.
--- 1,5 ----
  /* Configuration file for Symbian OS on ARM processors.
!    Copyright (C) 2004-2024 Free Software Foundation, Inc.
     Contributed by CodeSourcery, LLC   
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/sync.md gcc-14.1.0/gcc/config/arm/sync.md
*** gcc-13.2.0/gcc/config/arm/sync.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/sync.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for ARM processor synchronization primitives.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Written by Marcus Shawcroft (marcus.shawcroft@arm.com)
  ;; 64bit Atomics by Dave Gilbert (david.gilbert@linaro.org)
  ;;
--- 1,5 ----
  ;; Machine description for ARM processor synchronization primitives.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Written by Marcus Shawcroft (marcus.shawcroft@arm.com)
  ;; 64bit Atomics by Dave Gilbert (david.gilbert@linaro.org)
  ;;
***************
*** 62,129 ****
     (set_attr "conds" "unconditional")
     (set_attr "predicable" "no")])
  
! (define_insn "atomic_load<mode>"
!   [(set (match_operand:QHSI 0 "register_operand" "=r,r,l")
      (unspec_volatile:QHSI
!       [(match_operand:QHSI 1 "arm_sync_memory_operand" "Q,Q,Q")
!        (match_operand:SI 2 "const_int_operand" "n,Pf,n")]	;; model
        VUNSPEC_LDA))]
    "TARGET_HAVE_LDACQ"
!   {
!     if (aarch_mm_needs_acquire (operands[2]))
!       {
! 	if (TARGET_THUMB1)
! 	  return "lda<sync_sfx>\t%0, %1";
! 	else
! 	  return "lda<sync_sfx>%?\t%0, %1";
!       }
!     else
!       {
! 	if (TARGET_THUMB1)
! 	  return "ldr<sync_sfx>\t%0, %1";
! 	else
! 	  return "ldr<sync_sfx>%?\t%0, %1";
!       }
!   }
!   [(set_attr "arch" "32,v8mb,any")
!    (set_attr "predicable" "yes")])
  
! (define_insn "atomic_store<mode>"
!   [(set (match_operand:QHSI 0 "memory_operand" "=Q,Q,Q")
      (unspec_volatile:QHSI
!       [(match_operand:QHSI 1 "general_operand" "r,r,l")
!        (match_operand:SI 2 "const_int_operand" "n,Pf,n")]	;; model
        VUNSPEC_STL))]
    "TARGET_HAVE_LDACQ"
!   {
!     if (aarch_mm_needs_release (operands[2]))
!       {
! 	if (TARGET_THUMB1)
! 	  return "stl<sync_sfx>\t%1, %0";
! 	else
! 	  return "stl<sync_sfx>%?\t%1, %0";
!       }
!     else
!       {
! 	if (TARGET_THUMB1)
! 	  return "str<sync_sfx>\t%1, %0";
! 	else
! 	  return "str<sync_sfx>%?\t%1, %0";
!       }
!   }
!   [(set_attr "arch" "32,v8mb,any")
!    (set_attr "predicable" "yes")])
  
  ;; An LDRD instruction usable by the atomic_loaddi expander on LPAE targets
  
  (define_insn "arm_atomic_loaddi2_ldrd"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(unspec_volatile:DI
! 	  [(match_operand:DI 1 "arm_sync_memory_operand" "Q")]
  	    VUNSPEC_LDRD_ATOMIC))]
    "ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE"
!   "ldrd%?\t%0, %H0, %C1"
!   [(set_attr "predicable" "yes")])
  
  ;; There are three ways to expand this depending on the architecture
  ;; features available.  As for the barriers, a load needs a barrier
--- 62,171 ----
     (set_attr "conds" "unconditional")
     (set_attr "predicable" "no")])
  
! (define_insn "arm_atomic_load<mode>"
!   [(set (match_operand:QHSI 0 "register_operand" "=r,l")
      (unspec_volatile:QHSI
!       [(match_operand:QHSI 1 "memory_operand" "m,m")]
!       VUNSPEC_LDR))]
!   ""
!   "ldr<sync_sfx>\t%0, %1"
!   [(set_attr "arch" "32,any")])
! 
! (define_insn "arm_atomic_load_acquire<mode>"
!   [(set (match_operand:QHSI 0 "register_operand" "=r")
!     (unspec_volatile:QHSI
!       [(match_operand:QHSI 1 "arm_sync_memory_operand" "Q")]
        VUNSPEC_LDA))]
    "TARGET_HAVE_LDACQ"
!   "lda<sync_sfx>\t%0, %C1"
! )
  
! (define_insn "arm_atomic_store<mode>"
!   [(set (match_operand:QHSI 0 "memory_operand" "=m,m")
      (unspec_volatile:QHSI
!       [(match_operand:QHSI 1 "register_operand" "r,l")]
!       VUNSPEC_STR))]
!   ""
!   "str<sync_sfx>\t%1, %0";
!   [(set_attr "arch" "32,any")])
! 
! (define_insn "arm_atomic_store_release<mode>"
!   [(set (match_operand:QHSI 0 "arm_sync_memory_operand" "=Q")
!     (unspec_volatile:QHSI
!       [(match_operand:QHSI 1 "register_operand" "r")]
        VUNSPEC_STL))]
    "TARGET_HAVE_LDACQ"
!   "stl<sync_sfx>\t%1, %C0")
! 
! 
! (define_expand "atomic_load<mode>"
!   [(match_operand:QHSI 0 "register_operand")		;; val out
!    (match_operand:QHSI 1 "arm_sync_memory_operand")	;; memory
!    (match_operand:SI 2 "const_int_operand")]		;; model
!   ""
! {
!   memmodel model = memmodel_from_int (INTVAL (operands[2]));
! 
!   if (TARGET_HAVE_LDACQ && !is_mm_relaxed (model))
!     {
!       emit_insn (gen_arm_atomic_load_acquire<mode> (operands[0], operands[1]));
!       DONE;
!     }
! 
!   /* The seq_cst model needs a barrier before the load to block reordering with
!      earlier accesses.  */
!   if (is_mm_seq_cst (model))
!     expand_mem_thread_fence (model);
! 
!   emit_insn (gen_arm_atomic_load<mode> (operands[0], operands[1]));
! 
!   /* All non-relaxed models need a barrier after the load when load-acquire
!      instructions are not available.  */
!   if (!is_mm_relaxed (model))
!     expand_mem_thread_fence (model);
! 
!   DONE;
! })
! 
! (define_expand "atomic_store<mode>"
!   [(match_operand:QHSI 0 "arm_sync_memory_operand")	;; memory
!    (match_operand:QHSI 1 "register_operand")		;; store value
!    (match_operand:SI 2 "const_int_operand")]		;; model
!   ""
! {
!   memmodel model = memmodel_from_int (INTVAL (operands[2]));
! 
!   if (TARGET_HAVE_LDACQ && !is_mm_relaxed (model))
!     {
!       emit_insn (gen_arm_atomic_store_release<mode> (operands[0], operands[1]));
!       DONE;
!     }
! 
!   /* All non-relaxed models need a barrier after the load when load-acquire
!      instructions are not available.  */
!   if (!is_mm_relaxed (model))
!     expand_mem_thread_fence (model);
! 
!   emit_insn (gen_arm_atomic_store<mode> (operands[0], operands[1]));
! 
!   /* The seq_cst model needs a barrier after the store to block reordering with
!      later accesses.  */
!   if (is_mm_seq_cst (model))
!     expand_mem_thread_fence (model);
! 
!   DONE;
! })
  
  ;; An LDRD instruction usable by the atomic_loaddi expander on LPAE targets
  
  (define_insn "arm_atomic_loaddi2_ldrd"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(unspec_volatile:DI
! 	  [(match_operand:DI 1 "memory_operand" "m")]
  	    VUNSPEC_LDRD_ATOMIC))]
    "ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE"
!   "ldrd\t%0, %H0, %1"
! )
  
  ;; There are three ways to expand this depending on the architecture
  ;; features available.  As for the barriers, a load needs a barrier
***************
*** 152,157 ****
--- 194,204 ----
        DONE;
      }
  
+   /* The seq_cst model needs a barrier before the load to block reordering with
+      earlier accesses.  */
+   if (is_mm_seq_cst (model))
+     expand_mem_thread_fence (model);
+ 
    /* On LPAE targets LDRD and STRD accesses to 64-bit aligned
       locations are 64-bit single-copy atomic.  We still need barriers in the
       appropriate places to implement the ordering constraints.  */
***************
*** 160,166 ****
    else
      emit_insn (gen_arm_load_exclusivedi (operands[0], operands[1]));
  
- 
    /* All non-relaxed models need a barrier after the load when load-acquire
       instructions are not available.  */
    if (!is_mm_relaxed (model))
--- 207,212 ----
***************
*** 446,499 ****
    [(set_attr "arch" "32,v8mb")])
  
  (define_insn "arm_load_exclusive<mode>"
!   [(set (match_operand:SI 0 "s_register_operand" "=r,r")
          (zero_extend:SI
  	  (unspec_volatile:NARROW
! 	    [(match_operand:NARROW 1 "mem_noofs_operand" "Ua,Ua")]
  	    VUNSPEC_LL)))]
    "TARGET_HAVE_LDREXBH"
!   "@
!    ldrex<sync_sfx>%?\t%0, %C1
!    ldrex<sync_sfx>\t%0, %C1"
!   [(set_attr "arch" "32,v8mb")
!    (set_attr "predicable" "yes")])
  
  (define_insn "arm_load_acquire_exclusive<mode>"
!   [(set (match_operand:SI 0 "s_register_operand" "=r,r")
          (zero_extend:SI
  	  (unspec_volatile:NARROW
! 	    [(match_operand:NARROW 1 "mem_noofs_operand" "Ua,Ua")]
  	    VUNSPEC_LAX)))]
    "TARGET_HAVE_LDACQ"
!   "@
!    ldaex<sync_sfx>%?\\t%0, %C1
!    ldaex<sync_sfx>\\t%0, %C1"
!   [(set_attr "arch" "32,v8mb")
!    (set_attr "predicable" "yes")])
  
  (define_insn "arm_load_exclusivesi"
!   [(set (match_operand:SI 0 "s_register_operand" "=r,r")
  	(unspec_volatile:SI
! 	  [(match_operand:SI 1 "mem_noofs_operand" "Ua,Ua")]
  	  VUNSPEC_LL))]
    "TARGET_HAVE_LDREX"
!   "@
!    ldrex%?\t%0, %C1
!    ldrex\t%0, %C1"
!   [(set_attr "arch" "32,v8mb")
!    (set_attr "predicable" "yes")])
  
  (define_insn "arm_load_acquire_exclusivesi"
!   [(set (match_operand:SI 0 "s_register_operand" "=r,r")
  	(unspec_volatile:SI
! 	  [(match_operand:SI 1 "mem_noofs_operand" "Ua,Ua")]
  	  VUNSPEC_LAX))]
    "TARGET_HAVE_LDACQ"
!   "@
!    ldaex%?\t%0, %C1
!    ldaex\t%0, %C1"
!   [(set_attr "arch" "32,v8mb")
!    (set_attr "predicable" "yes")])
  
  (define_insn "arm_load_exclusivedi"
    [(set (match_operand:DI 0 "s_register_operand" "=r")
--- 492,533 ----
    [(set_attr "arch" "32,v8mb")])
  
  (define_insn "arm_load_exclusive<mode>"
!   [(set (match_operand:SI 0 "s_register_operand" "=r")
          (zero_extend:SI
  	  (unspec_volatile:NARROW
! 	    [(match_operand:NARROW 1 "mem_noofs_operand" "Ua")]
  	    VUNSPEC_LL)))]
    "TARGET_HAVE_LDREXBH"
!   "ldrex<sync_sfx>\t%0, %C1"
! )
  
  (define_insn "arm_load_acquire_exclusive<mode>"
!   [(set (match_operand:SI 0 "s_register_operand" "=r")
          (zero_extend:SI
  	  (unspec_volatile:NARROW
! 	    [(match_operand:NARROW 1 "mem_noofs_operand" "Ua")]
  	    VUNSPEC_LAX)))]
    "TARGET_HAVE_LDACQ"
!   "ldaex<sync_sfx>\\t%0, %C1"
! )
  
  (define_insn "arm_load_exclusivesi"
!   [(set (match_operand:SI 0 "s_register_operand" "=r")
  	(unspec_volatile:SI
! 	  [(match_operand:SI 1 "mem_noofs_operand" "Ua")]
  	  VUNSPEC_LL))]
    "TARGET_HAVE_LDREX"
!   "ldrex\t%0, %C1"
! )
  
  (define_insn "arm_load_acquire_exclusivesi"
!   [(set (match_operand:SI 0 "s_register_operand" "=r")
  	(unspec_volatile:SI
! 	  [(match_operand:SI 1 "mem_noofs_operand" "Ua")]
  	  VUNSPEC_LAX))]
    "TARGET_HAVE_LDACQ"
!   "ldaex\t%0, %C1"
! )
  
  (define_insn "arm_load_exclusivedi"
    [(set (match_operand:DI 0 "s_register_operand" "=r")
***************
*** 501,508 ****
  	  [(match_operand:DI 1 "mem_noofs_operand" "Ua")]
  	  VUNSPEC_LL))]
    "TARGET_HAVE_LDREXD"
!   "ldrexd%?\t%0, %H0, %C1"
!   [(set_attr "predicable" "yes")])
  
  (define_insn "arm_load_acquire_exclusivedi"
    [(set (match_operand:DI 0 "s_register_operand" "=r")
--- 535,542 ----
  	  [(match_operand:DI 1 "mem_noofs_operand" "Ua")]
  	  VUNSPEC_LL))]
    "TARGET_HAVE_LDREXD"
!   "ldrexd\t%0, %H0, %C1"
! )
  
  (define_insn "arm_load_acquire_exclusivedi"
    [(set (match_operand:DI 0 "s_register_operand" "=r")
***************
*** 510,517 ****
  	  [(match_operand:DI 1 "mem_noofs_operand" "Ua")]
  	  VUNSPEC_LAX))]
    "TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN"
!   "ldaexd%?\t%0, %H0, %C1"
!   [(set_attr "predicable" "yes")])
  
  (define_insn "arm_store_exclusive<mode>"
    [(set (match_operand:SI 0 "s_register_operand" "=&r")
--- 544,551 ----
  	  [(match_operand:DI 1 "mem_noofs_operand" "Ua")]
  	  VUNSPEC_LAX))]
    "TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN"
!   "ldaexd\t%0, %H0, %C1"
! )
  
  (define_insn "arm_store_exclusive<mode>"
    [(set (match_operand:SI 0 "s_register_operand" "=&r")
***************
*** 530,543 ****
  	   Note that the 1st register always gets the
  	   lowest word in memory.  */
  	gcc_assert ((REGNO (operands[2]) & 1) == 0 || TARGET_THUMB2);
! 	return "strexd%?\t%0, %2, %H2, %C1";
        }
!     if (TARGET_THUMB1)
!       return "strex<sync_sfx>\t%0, %2, %C1";
!     else
!       return "strex<sync_sfx>%?\t%0, %2, %C1";
    }
!   [(set_attr "predicable" "yes")])
  
  (define_insn "arm_store_release_exclusivedi"
    [(set (match_operand:SI 0 "s_register_operand" "=&r")
--- 564,574 ----
  	   Note that the 1st register always gets the
  	   lowest word in memory.  */
  	gcc_assert ((REGNO (operands[2]) & 1) == 0 || TARGET_THUMB2);
! 	return "strexd\t%0, %2, %H2, %C1";
        }
!     return "strex<sync_sfx>\t%0, %2, %C1";
    }
! )
  
  (define_insn "arm_store_release_exclusivedi"
    [(set (match_operand:SI 0 "s_register_operand" "=&r")
***************
*** 550,569 ****
    {
      /* See comment in arm_store_exclusive<mode> above.  */
      gcc_assert ((REGNO (operands[2]) & 1) == 0 || TARGET_THUMB2);
!     return "stlexd%?\t%0, %2, %H2, %C1";
    }
!   [(set_attr "predicable" "yes")])
  
  (define_insn "arm_store_release_exclusive<mode>"
!   [(set (match_operand:SI 0 "s_register_operand" "=&r,&r")
  	(unspec_volatile:SI [(const_int 0)] VUNSPEC_SLX))
!    (set (match_operand:QHSI 1 "mem_noofs_operand" "=Ua,Ua")
  	(unspec_volatile:QHSI
! 	  [(match_operand:QHSI 2 "s_register_operand" "r,r")]
  	  VUNSPEC_SLX))]
    "TARGET_HAVE_LDACQ"
!   "@
!    stlex<sync_sfx>%?\t%0, %2, %C1
!    stlex<sync_sfx>\t%0, %2, %C1"
!   [(set_attr "arch" "32,v8mb")
!    (set_attr "predicable" "yes")])
--- 581,596 ----
    {
      /* See comment in arm_store_exclusive<mode> above.  */
      gcc_assert ((REGNO (operands[2]) & 1) == 0 || TARGET_THUMB2);
!     return "stlexd\t%0, %2, %H2, %C1";
    }
! )
  
  (define_insn "arm_store_release_exclusive<mode>"
!   [(set (match_operand:SI 0 "s_register_operand" "=&r")
  	(unspec_volatile:SI [(const_int 0)] VUNSPEC_SLX))
!    (set (match_operand:QHSI 1 "mem_noofs_operand" "=Ua")
  	(unspec_volatile:QHSI
! 	  [(match_operand:QHSI 2 "s_register_operand" "r")]
  	  VUNSPEC_SLX))]
    "TARGET_HAVE_LDACQ"
!   "stlex<sync_sfx>\t%0, %2, %C1")
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-aprofile gcc-14.1.0/gcc/config/arm/t-aprofile
*** gcc-13.2.0/gcc/config/arm/t-aprofile	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-aprofile	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2012-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2012-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-arm gcc-14.1.0/gcc/config/arm/t-arm
*** gcc-13.2.0/gcc/config/arm/t-arm	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-arm	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  # Rules common to all arm targets
  #
! # Copyright (C) 2004-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  # Rules common to all arm targets
  #
! # Copyright (C) 2004-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** arm-builtins.o: $(srcdir)/config/arm/arm
*** 154,168 ****
  		$(srcdir)/config/arm/arm-builtins.cc
  
  arm-mve-builtins.o: $(srcdir)/config/arm/arm-mve-builtins.cc $(CONFIG_H) \
!   $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
!   fold-const.h langhooks.h stringpool.h attribs.h diagnostic.h \
    $(srcdir)/config/arm/arm-protos.h \
    $(srcdir)/config/arm/arm-builtins.h \
    $(srcdir)/config/arm/arm-mve-builtins.h \
!   $(srcdir)/config/arm/arm-mve-builtins.def
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/arm/arm-mve-builtins.cc
  
  arm-c.o: $(srcdir)/config/arm/arm-c.cc $(CONFIG_H) $(SYSTEM_H) \
      coretypes.h $(TM_H) $(TREE_H) output.h $(C_COMMON_H)
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
--- 154,194 ----
  		$(srcdir)/config/arm/arm-builtins.cc
  
  arm-mve-builtins.o: $(srcdir)/config/arm/arm-mve-builtins.cc $(CONFIG_H) \
!   $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) \
!   memmodel.h insn-codes.h optabs.h recog.h expr.h basic-block.h \
!   function.h fold-const.h gimple.h gimple-fold.h emit-rtl.h langhooks.h \
!   stringpool.h attribs.h diagnostic.h \
    $(srcdir)/config/arm/arm-protos.h \
    $(srcdir)/config/arm/arm-builtins.h \
    $(srcdir)/config/arm/arm-mve-builtins.h \
!   $(srcdir)/config/arm/arm-mve-builtins-base.h \
!   $(srcdir)/config/arm/arm-mve-builtins-shapes.h \
!   $(srcdir)/config/arm/arm-mve-builtins.def \
!   $(srcdir)/config/arm/arm-mve-builtins-base.def
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/arm/arm-mve-builtins.cc
  
+ arm-mve-builtins-shapes.o: \
+   $(srcdir)/config/arm/arm-mve-builtins-shapes.cc \
+   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
+   $(RTL_H) memmodel.h insn-codes.h optabs.h \
+   $(srcdir)/config/arm/arm-mve-builtins.h \
+   $(srcdir)/config/arm/arm-mve-builtins-shapes.h
+ 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ 		$(srcdir)/config/arm/arm-mve-builtins-shapes.cc
+ 
+ arm-mve-builtins-base.o: \
+   $(srcdir)/config/arm/arm-mve-builtins-base.cc \
+   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
+   memmodel.h insn-codes.h $(OPTABS_H) \
+   $(BASIC_BLOCK_H) $(FUNCTION_H) $(GIMPLE_H) \
+   $(srcdir)/config/arm/arm-mve-builtins.h \
+   $(srcdir)/config/arm/arm-mve-builtins-shapes.h \
+   $(srcdir)/config/arm/arm-mve-builtins-base.h \
+   $(srcdir)/config/arm/arm-mve-builtins-functions.h
+ 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ 		$(srcdir)/config/arm/arm-mve-builtins-base.cc
+ 
  arm-c.o: $(srcdir)/config/arm/arm-c.cc $(CONFIG_H) $(SYSTEM_H) \
      coretypes.h $(TM_H) $(TREE_H) output.h $(C_COMMON_H)
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-arm-elf gcc-14.1.0/gcc/config/arm/t-arm-elf
*** gcc-13.2.0/gcc/config/arm/t-arm-elf	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-arm-elf	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 1998-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 1998-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-fuchsia gcc-14.1.0/gcc/config/arm/t-fuchsia
*** gcc-13.2.0/gcc/config/arm/t-fuchsia	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-fuchsia	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2017-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2017-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-linux-eabi gcc-14.1.0/gcc/config/arm/t-linux-eabi
*** gcc-13.2.0/gcc/config/arm/t-linux-eabi	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-linux-eabi	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2005-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2005-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-multilib gcc-14.1.0/gcc/config/arm/t-multilib
*** gcc-13.2.0/gcc/config/arm/t-multilib	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-multilib	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-phoenix gcc-14.1.0/gcc/config/arm/t-phoenix
*** gcc-13.2.0/gcc/config/arm/t-phoenix	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-phoenix	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-rmprofile gcc-14.1.0/gcc/config/arm/t-rmprofile
*** gcc-13.2.0/gcc/config/arm/t-rmprofile	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-rmprofile	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2016-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2016-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-symbian gcc-14.1.0/gcc/config/arm/t-symbian
*** gcc-13.2.0/gcc/config/arm/t-symbian	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-symbian	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2004-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2004-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/t-vxworks gcc-14.1.0/gcc/config/arm/t-vxworks
*** gcc-13.2.0/gcc/config/arm/t-vxworks	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/t-vxworks	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2003-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2003-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/arm/thumb1.md gcc-14.1.0/gcc/config/arm/thumb1.md
*** gcc-13.2.0/gcc/config/arm/thumb1.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/thumb1.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Thumb-1 Machine Description
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; ARM Thumb-1 Machine Description
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 113,119 ****
  ;; Reloading and elimination of the frame pointer can
  ;; sometimes cause this optimization to be missed.
  (define_peephole2
!   [(set (match_operand:SI 0 "arm_general_register_operand" "")
  	(match_operand:SI 1 "const_int_operand" ""))
     (set (match_dup 0)
  	(plus:SI (match_dup 0) (reg:SI SP_REGNUM)))]
--- 113,119 ----
  ;; Reloading and elimination of the frame pointer can
  ;; sometimes cause this optimization to be missed.
  (define_peephole2
!   [(set (match_operand:SI 0 "low_register_operand" "")
  	(match_operand:SI 1 "const_int_operand" ""))
     (set (match_dup 0)
  	(plus:SI (match_dup 0) (reg:SI SP_REGNUM)))]
diff -Nrcpad gcc-13.2.0/gcc/config/arm/thumb2.md gcc-14.1.0/gcc/config/arm/thumb2.md
*** gcc-13.2.0/gcc/config/arm/thumb2.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/thumb2.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM Thumb-2 Machine Description
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery, LLC.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM Thumb-2 Machine Description
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery, LLC.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/types.md gcc-14.1.0/gcc/config/arm/types.md
*** gcc-13.2.0/gcc/config/arm/types.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/types.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;; Instruction Classification for ARM for GNU compiler.
  
! ;; Copyright (C) 1991-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
--- 1,6 ----
  ;; Instruction Classification for ARM for GNU compiler.
  
! ;; Copyright (C) 1991-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/uclinux-eabi.h gcc-14.1.0/gcc/config/arm/uclinux-eabi.h
*** gcc-13.2.0/gcc/config/arm/uclinux-eabi.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/uclinux-eabi.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for ARM EABI ucLinux
!    Copyright (C) 2006-2023 Free Software Foundation, Inc.
     Contributed by Paul Brook <paul@codesourcery.com>
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions for ARM EABI ucLinux
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
     Contributed by Paul Brook <paul@codesourcery.com>
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/uclinux-elf.h gcc-14.1.0/gcc/config/arm/uclinux-elf.h
*** gcc-13.2.0/gcc/config/arm/uclinux-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/uclinux-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for ARM running ucLinux using ELF
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
     Contributed by Philip Blundell <pb@nexus.co.uk>
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions for ARM running ucLinux using ELF
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
     Contributed by Philip Blundell <pb@nexus.co.uk>
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/uclinuxfdpiceabi.h gcc-14.1.0/gcc/config/arm/uclinuxfdpiceabi.h
*** gcc-13.2.0/gcc/config/arm/uclinuxfdpiceabi.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/uclinuxfdpiceabi.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Configuration file for ARM GNU/Linux FDPIC EABI targets.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by STMicroelectronics.
  
     This file is part of GCC.
--- 1,5 ----
  /* Configuration file for ARM GNU/Linux FDPIC EABI targets.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by STMicroelectronics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/unknown-elf.h gcc-14.1.0/gcc/config/arm/unknown-elf.h
*** gcc-13.2.0/gcc/config/arm/unknown-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/unknown-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for non-Linux based ARM systems using ELF
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Catherine Moore <clm@cygnus.com>
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions for non-Linux based ARM systems using ELF
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Catherine Moore <clm@cygnus.com>
  
     This file is part of GCC.
***************
*** 51,57 ****
  
  /* Return a nonzero value if DECL has a section attribute.  */
  #define IN_NAMED_SECTION_P(DECL)					\
!   ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL)	\
     && DECL_SECTION_NAME (DECL) != NULL)
  
  #undef  ASM_OUTPUT_ALIGNED_BSS
--- 51,57 ----
  
  /* Return a nonzero value if DECL has a section attribute.  */
  #define IN_NAMED_SECTION_P(DECL)					\
!   ((TREE_CODE (DECL) == FUNCTION_DECL || VAR_P (DECL))	\
     && DECL_SECTION_NAME (DECL) != NULL)
  
  #undef  ASM_OUTPUT_ALIGNED_BSS
diff -Nrcpad gcc-13.2.0/gcc/config/arm/unspecs.md gcc-14.1.0/gcc/config/arm/unspecs.md
*** gcc-13.2.0/gcc/config/arm/unspecs.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/unspecs.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Unspec defintions.
! ;; Copyright (C) 2012-2023 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Unspec defintions.
! ;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
  ;; Contributed by ARM Ltd.
  
  ;; This file is part of GCC.
***************
*** 221,228 ****
    VUNSPEC_SC		; Represent a store-register-exclusive.
    VUNSPEC_LAX		; Represent a load-register-acquire-exclusive.
    VUNSPEC_SLX		; Represent a store-register-release-exclusive.
!   VUNSPEC_LDA		; Represent a store-register-acquire.
    VUNSPEC_STL		; Represent a store-register-release.
    VUNSPEC_GET_FPSCR	; Represent fetch of FPSCR content.
    VUNSPEC_SET_FPSCR	; Represent assign of FPSCR content.
    VUNSPEC_SET_FPSCR_NZCVQC	; Represent assign of FPSCR_nzcvqc content.
--- 221,230 ----
    VUNSPEC_SC		; Represent a store-register-exclusive.
    VUNSPEC_LAX		; Represent a load-register-acquire-exclusive.
    VUNSPEC_SLX		; Represent a store-register-release-exclusive.
!   VUNSPEC_LDA		; Represent a load-register-acquire.
!   VUNSPEC_LDR		; Represent a load-register-relaxed.
    VUNSPEC_STL		; Represent a store-register-release.
+   VUNSPEC_STR		; Represent a store-register-relaxed.
    VUNSPEC_GET_FPSCR	; Represent fetch of FPSCR content.
    VUNSPEC_SET_FPSCR	; Represent assign of FPSCR content.
    VUNSPEC_SET_FPSCR_NZCVQC	; Represent assign of FPSCR_nzcvqc content.
***************
*** 340,345 ****
--- 342,351 ----
    UNSPEC_VHSUB_S
    UNSPEC_VHSUB_U
    UNSPEC_VLD1
+   UNSPEC_VLD1X3A
+   UNSPEC_VLD1X3B
+   UNSPEC_VLD1X4A
+   UNSPEC_VLD1X4B
    UNSPEC_VLD1_LANE
    UNSPEC_VLD2
    UNSPEC_VLD2_DUP
***************
*** 457,462 ****
--- 463,472 ----
    UNSPEC_VRSRA_U_N
    UNSPEC_VSRI
    UNSPEC_VST1
+   UNSPEC_VST1X3A
+   UNSPEC_VST1X3B
+   UNSPEC_VST1X4A
+   UNSPEC_VST1X4B
    UNSPEC_VST1_LANE
    UNSPEC_VST2
    UNSPEC_VST2_LANE
***************
*** 707,713 ****
    VCVTBQ_F16_F32
    VCVTTQ_F16_F32
    VMLALDAVQ_U
-   VMLALDAVXQ_U
    VMLALDAVXQ_S
    VMLALDAVQ_S
    VMLSLDAVQ_S
--- 717,722 ----
***************
*** 924,930 ****
    VSHRNBQ_N_S
    VRSHRNBQ_N_S
    VRSHRNBQ_N_U
-   VMLALDAVXQ_P_U
    VMLALDAVXQ_P_S
    VQMOVNTQ_M_U
    VQMOVNTQ_M_S
--- 933,938 ----
***************
*** 933,939 ****
    VQSHRNTQ_N_U
    VQSHRNTQ_N_S
    VMLALDAVAXQ_S
-   VMLALDAVAXQ_U
    VSHRNTQ_N_S
    VSHRNTQ_N_U
    VCVTBQ_M_F16_F32
--- 941,946 ----
***************
*** 995,1002 ****
    VMAXQ_M_U
    VQRDMLAHQ_M_N_U
    VCADDQ_ROT270_M_F
!   VCADDQ_ROT270_M_U
!   VCADDQ_ROT270_M_S
    VQRSHLQ_M_S
    VMULQ_M_F
    VRHADDQ_M_U
--- 1002,1008 ----
    VMAXQ_M_U
    VQRDMLAHQ_M_N_U
    VCADDQ_ROT270_M_F
!   VCADDQ_ROT270_M
    VQRSHLQ_M_S
    VMULQ_M_F
    VRHADDQ_M_U
***************
*** 1050,1057 ****
    VSLIQ_M_N_S
    VQSHLQ_M_U
    VQSHLQ_M_S
!   VCADDQ_ROT90_M_U
!   VCADDQ_ROT90_M_S
    VORNQ_M_U
    VORNQ_M_S
    VQSHLQ_M_N_S
--- 1056,1062 ----
    VSLIQ_M_N_S
    VQSHLQ_M_U
    VQSHLQ_M_S
!   VCADDQ_ROT90_M
    VORNQ_M_U
    VORNQ_M_S
    VQSHLQ_M_N_S
***************
*** 1255,1258 ****
--- 1260,1264 ----
    SQRSHRL_64
    SQRSHRL_48
    VSHLCQ_M_
+   REINTERPRET
  ])
diff -Nrcpad gcc-13.2.0/gcc/config/arm/vec-common.md gcc-14.1.0/gcc/config/arm/vec-common.md
*** gcc-13.2.0/gcc/config/arm/vec-common.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/vec-common.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine Description for shared bits common to IWMMXT and Neon.
! ;; Copyright (C) 2006-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine Description for shared bits common to IWMMXT and Neon.
! ;; Copyright (C) 2006-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
***************
*** 110,118 ****
  )
  
  (define_expand "smin<mode>3"
!   [(set (match_operand:VALLW 0 "s_register_operand")
! 	(smin:VALLW (match_operand:VALLW 1 "s_register_operand")
! 		    (match_operand:VALLW 2 "s_register_operand")))]
     "ARM_HAVE_<MODE>_ARITH"
  )
  
--- 110,118 ----
  )
  
  (define_expand "smin<mode>3"
!   [(set (match_operand:VDQWH 0 "s_register_operand")
! 	(smin:VDQWH (match_operand:VDQWH 1 "s_register_operand")
! 		    (match_operand:VDQWH 2 "s_register_operand")))]
     "ARM_HAVE_<MODE>_ARITH"
  )
  
***************
*** 124,132 ****
  )
  
  (define_expand "smax<mode>3"
!   [(set (match_operand:VALLW 0 "s_register_operand")
! 	(smax:VALLW (match_operand:VALLW 1 "s_register_operand")
! 		    (match_operand:VALLW 2 "s_register_operand")))]
     "ARM_HAVE_<MODE>_ARITH"
  )
  
--- 124,132 ----
  )
  
  (define_expand "smax<mode>3"
!   [(set (match_operand:VDQWH 0 "s_register_operand")
! 	(smax:VDQWH (match_operand:VDQWH 1 "s_register_operand")
! 		    (match_operand:VDQWH 2 "s_register_operand")))]
     "ARM_HAVE_<MODE>_ARITH"
  )
  
***************
*** 357,372 ****
      }
  })
  
! (define_insn "mve_vshlq_<supf><mode>"
    [(set (match_operand:VDQIW 0 "s_register_operand" "=w,w")
  	(unspec:VDQIW [(match_operand:VDQIW 1 "s_register_operand" "w,w")
  		       (match_operand:VDQIW 2 "imm_lshift_or_reg_neon" "w,Ds")]
  	 VSHLQ))]
    "ARM_HAVE_<MODE>_ARITH && !TARGET_REALLY_IWMMXT"
    "@
!    vshl.<supf>%#<V_sz_elem>\t%<V_reg>0, %<V_reg>1, %<V_reg>2
     * return neon_output_shift_immediate (\"vshl\", 'i', &operands[2], <MODE>mode, VALID_NEON_QREG_MODE (<MODE>mode), true);"
!   [(set_attr "type" "neon_shift_reg<q>, neon_shift_imm<q>")]
  )
  
  (define_expand "vashl<mode>3"
--- 357,373 ----
      }
  })
  
! (define_insn "@mve_<mve_insn>q_<supf><mode>"
    [(set (match_operand:VDQIW 0 "s_register_operand" "=w,w")
  	(unspec:VDQIW [(match_operand:VDQIW 1 "s_register_operand" "w,w")
  		       (match_operand:VDQIW 2 "imm_lshift_or_reg_neon" "w,Ds")]
  	 VSHLQ))]
    "ARM_HAVE_<MODE>_ARITH && !TARGET_REALLY_IWMMXT"
    "@
!    <mve_insn>.<supf>%#<V_sz_elem>\t%<V_reg>0, %<V_reg>1, %<V_reg>2
     * return neon_output_shift_immediate (\"vshl\", 'i', &operands[2], <MODE>mode, VALID_NEON_QREG_MODE (<MODE>mode), true);"
!  [(set (attr "mve_unpredicated_insn") (symbol_ref "CODE_FOR_mve_<mve_insn>q_<supf><mode>"))
!   (set_attr "type" "neon_shift_reg<q>, neon_shift_imm<q>")]
  )
  
  (define_expand "vashl<mode>3"
***************
*** 559,565 ****
        /* vaddv generates a 32 bits accumulator.  */
        rtx op0 = gen_reg_rtx (SImode);
  
!       emit_insn (gen_mve_vaddvq (VADDVQ_S, <MODE>mode, op0, operands[1]));
        emit_move_insn (operands[0], gen_lowpart (<V_elem>mode, op0));
      }
  
--- 560,566 ----
        /* vaddv generates a 32 bits accumulator.  */
        rtx op0 = gen_reg_rtx (SImode);
  
!       emit_insn (gen_mve_q (VADDVQ_S, VADDVQ_S, <MODE>mode, op0, operands[1]));
        emit_move_insn (operands[0], gen_lowpart (<V_elem>mode, op0));
      }
  
***************
*** 573,579 ****
    "ARM_HAVE_<MODE>_ARITH"
  {
    if (TARGET_HAVE_MVE)
!     emit_insn (gen_mve_vhaddq (VHADDQ_S, <MODE>mode,
  			       operands[0], operands[1], operands[2]));
    else
      emit_insn (gen_neon_vhadd (UNSPEC_VHADD_S, UNSPEC_VHADD_S, <MODE>mode,
--- 574,580 ----
    "ARM_HAVE_<MODE>_ARITH"
  {
    if (TARGET_HAVE_MVE)
!     emit_insn (gen_mve_q (VHADDQ_S, VHADDQ_S, <MODE>mode,
  			       operands[0], operands[1], operands[2]));
    else
      emit_insn (gen_neon_vhadd (UNSPEC_VHADD_S, UNSPEC_VHADD_S, <MODE>mode,
***************
*** 588,594 ****
    "ARM_HAVE_<MODE>_ARITH"
  {
    if (TARGET_HAVE_MVE)
!     emit_insn (gen_mve_vhaddq (VHADDQ_U, <MODE>mode,
  			       operands[0], operands[1], operands[2]));
    else
      emit_insn (gen_neon_vhadd (UNSPEC_VHADD_U, UNSPEC_VHADD_U, <MODE>mode,
--- 589,595 ----
    "ARM_HAVE_<MODE>_ARITH"
  {
    if (TARGET_HAVE_MVE)
!     emit_insn (gen_mve_q (VHADDQ_U, VHADDQ_U, <MODE>mode,
  			       operands[0], operands[1], operands[2]));
    else
      emit_insn (gen_neon_vhadd (UNSPEC_VHADD_U, UNSPEC_VHADD_U, <MODE>mode,
***************
*** 603,609 ****
    "ARM_HAVE_<MODE>_ARITH"
  {
    if (TARGET_HAVE_MVE)
!     emit_insn (gen_mve_vrhaddq (VRHADDQ_S, <MODE>mode,
  				operands[0], operands[1], operands[2]));
    else
      emit_insn (gen_neon_vhadd (UNSPEC_VRHADD_S, UNSPEC_VRHADD_S, <MODE>mode,
--- 604,610 ----
    "ARM_HAVE_<MODE>_ARITH"
  {
    if (TARGET_HAVE_MVE)
!     emit_insn (gen_mve_q (VRHADDQ_S, VRHADDQ_S, <MODE>mode,
  				operands[0], operands[1], operands[2]));
    else
      emit_insn (gen_neon_vhadd (UNSPEC_VRHADD_S, UNSPEC_VRHADD_S, <MODE>mode,
***************
*** 618,624 ****
    "ARM_HAVE_<MODE>_ARITH"
  {
    if (TARGET_HAVE_MVE)
!     emit_insn (gen_mve_vrhaddq (VRHADDQ_U, <MODE>mode,
  				operands[0], operands[1], operands[2]));
    else
      emit_insn (gen_neon_vhadd (UNSPEC_VRHADD_U, UNSPEC_VRHADD_U, <MODE>mode,
--- 619,625 ----
    "ARM_HAVE_<MODE>_ARITH"
  {
    if (TARGET_HAVE_MVE)
!     emit_insn (gen_mve_q (VRHADDQ_U, VRHADDQ_U, <MODE>mode,
  				operands[0], operands[1], operands[2]));
    else
      emit_insn (gen_neon_vhadd (UNSPEC_VRHADD_U, UNSPEC_VRHADD_U, <MODE>mode,
diff -Nrcpad gcc-13.2.0/gcc/config/arm/vfp.md gcc-14.1.0/gcc/config/arm/vfp.md
*** gcc-13.2.0/gcc/config/arm/vfp.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/vfp.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM VFP instruction patterns
! ;; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM VFP instruction patterns
! ;; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/vfp11.md gcc-14.1.0/gcc/config/arm/vfp11.md
*** gcc-13.2.0/gcc/config/arm/vfp11.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/vfp11.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; ARM VFP11 pipeline description
! ;; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; ARM VFP11 pipeline description
! ;; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;; Written by CodeSourcery.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/vxworks.h gcc-14.1.0/gcc/config/arm/vxworks.h
*** gcc-13.2.0/gcc/config/arm/vxworks.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/vxworks.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for GCC,
     for ARM with targeting the VXWorks run time environment. 
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
     Contributed by: Mike Stump <mrs@wrs.com>
     Brought up to date by CodeSourcery, LLC.
--- 1,6 ----
  /* Definitions of target machine for GCC,
     for ARM with targeting the VXWorks run time environment. 
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
     Contributed by: Mike Stump <mrs@wrs.com>
     Brought up to date by CodeSourcery, LLC.
diff -Nrcpad gcc-13.2.0/gcc/config/arm/vxworks.opt gcc-14.1.0/gcc/config/arm/vxworks.opt
*** gcc-13.2.0/gcc/config/arm/vxworks.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/vxworks.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; ARM VxWorks options.
  
! ; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; ARM VxWorks options.
  
! ; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/arm/vxworks.opt.urls gcc-14.1.0/gcc/config/arm/vxworks.opt.urls
*** gcc-13.2.0/gcc/config/arm/vxworks.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/arm/vxworks.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/arm/vxworks.opt and generated HTML
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/arm/xgene1.md gcc-14.1.0/gcc/config/arm/xgene1.md
*** gcc-13.2.0/gcc/config/arm/xgene1.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/arm/xgene1.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for AppliedMicro xgene1 core.
! ;; Copyright (C) 2012-2023 Free Software Foundation, Inc.
  ;; Contributed by Theobroma Systems Design und Consulting GmbH.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for AppliedMicro xgene1 core.
! ;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
  ;; Contributed by Theobroma Systems Design und Consulting GmbH.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-arch.h gcc-14.1.0/gcc/config/avr/avr-arch.h
*** gcc-13.2.0/gcc/config/avr/avr-arch.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-arch.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of types that are used to store AVR architecture and
     device information.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
  This file is part of GCC.
--- 1,6 ----
  /* Definitions of types that are used to store AVR architecture and
     device information.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
  This file is part of GCC.
*************** AVR_ISA_RCALL
*** 166,172 ****
    assume these instructions are not available and we set the built-in
    macro __AVR_HAVE_JMP_CALL__ accordingly.  This macro is used to
    determine a rough estimate of flash size in libgcc, and AVR-LibC uses
!   this macro to determine vector sizes.  */
  
  enum avr_device_specific_features
  {
--- 166,200 ----
    assume these instructions are not available and we set the built-in
    macro __AVR_HAVE_JMP_CALL__ accordingly.  This macro is used to
    determine a rough estimate of flash size in libgcc, and AVR-LibC uses
!   this macro to determine vector sizes.
! 
! AVR_ISA_FLMAP
!   The device has the NVMCTRL_CTRLB.FLMAP bitfield.  The value of FLMAP
!   determines which 32 KiB segment of the program memory (flash) is visible
!   in the RAM address space at 0x8000.
! 
!   If Binutils support emulations avrxmega2_flmap resp. avrxmega4_flmap
!   (PR31124), then  the location of the .rodata section can be determined
!   by means of option -m[no-]rodata-in-ram.  If .rodata is located in flash,
!   the user can chose which 32 KiB flash block is visible in RAM space by
!   means of defining symbol __flmap.
! 
!   The startup code from AVR-LibC initializes FLMAP according to __flmap
!   provided one of the avrxmega*_flmap emulations is used. If avrxmega2/4
!   is used, then the startup code does not initialize FLMAP.
! 
!   __AVR_HAVE_FLMAP__ is a macro defined in device-specs and supposed to be
!   consumed by code that sets FLMAP, like the startup code for example.
!   The macro is defined when all of the following conditions are met:
!     * The device is AVR_ISA_FLMAP.
!     * It's not known at compile time / assembler time whether or not .rodata
!       will be located in flash or in RAM. This implies Binutils PR31124.
!     * The definition of the macro is independent of -m[no-]rodata-in-ram.
! 
!   AVR_ISA_FLMAP does not affect multilib layout or selection in any way.
! 
!   For details on which symbols are defined in which way depending on the
!   emulation, see <Binutils>/ld/scripttempl/avr.sc.  */
  
  enum avr_device_specific_features
  {
*************** enum avr_device_specific_features
*** 175,183 ****
    AVR_SHORT_SP    = 0x2, /* Stack Pointer has 8 bits width. */
    AVR_ERRATA_SKIP = 0x4, /* device has a core erratum. */
    AVR_ISA_LDS     = 0x8, /* whether LDS / STS is valid for all data in static
!                             storage.  Only useful for reduced Tiny.  */
!   AVR_ISA_RCALL   = 0x10 /* Use RJMP / RCALL even though JMP / CALL
!                             are available (-mshort-calls).  */
  };
  
  /* Map architecture to its texinfo string.  */
--- 203,214 ----
    AVR_SHORT_SP    = 0x2, /* Stack Pointer has 8 bits width. */
    AVR_ERRATA_SKIP = 0x4, /* device has a core erratum. */
    AVR_ISA_LDS     = 0x8, /* whether LDS / STS is valid for all data in static
! 			    storage.  Only useful for reduced Tiny.	 */
!   AVR_ISA_RCALL	  = 0x10, /* Use RJMP / RCALL even though JMP / CALL
! 			     are available (-mshort-calls).	 */
!   AVR_ISA_FLMAP	  = 0x20  /* Has NVMCTRL_CTRLB.FLMAP to select which 32 KiB
! 			     block of program memory is visible in the RAM
! 			     address space.	 */
  };
  
  /* Map architecture to its texinfo string.  */
*************** typedef struct
*** 195,200 ****
--- 226,232 ----
  
  extern const avr_arch_t avr_arch_types[];
  extern const avr_arch_t *avr_arch;
+ extern const avr_arch_t *avr_get_parch (const char *mcu);
  
  extern const avr_mcu_t avr_mcu_types[];
  
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-c.cc gcc-14.1.0/gcc/config/avr/avr-c.cc
*** gcc-13.2.0/gcc/config/avr/avr-c.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-c.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by Anatoly Sokolov (aesok@post.ru)
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by Anatoly Sokolov (aesok@post.ru)
  
     This file is part of GCC.
*************** avr_resolve_overloaded_builtin (unsigned
*** 61,250 ****
  
      case AVR_BUILTIN_ABSFX:
        if (args.length() != 1)
!         {
!           error_at (loc, "%qs expects 1 argument but %d given",
!                     "absfx", (int) args.length());
  
!           fold = error_mark_node;
!           break;
!         }
  
        type0 = TREE_TYPE (args[0]);
  
        if (!FIXED_POINT_TYPE_P (type0))
!         {
!           error_at (loc, "%qs expects a fixed-point value as argument",
!                     "absfx");
  
!           fold = error_mark_node;
!         }
  
        switch (TYPE_MODE (type0))
!         {
!         case E_QQmode: id = AVR_BUILTIN_ABSHR; break;
!         case E_HQmode: id = AVR_BUILTIN_ABSR; break;
!         case E_SQmode: id = AVR_BUILTIN_ABSLR; break;
!         case E_DQmode: id = AVR_BUILTIN_ABSLLR; break;
  
!         case E_HAmode: id = AVR_BUILTIN_ABSHK; break;
!         case E_SAmode: id = AVR_BUILTIN_ABSK; break;
!         case E_DAmode: id = AVR_BUILTIN_ABSLK; break;
!         case E_TAmode: id = AVR_BUILTIN_ABSLLK; break;
  
!         case E_UQQmode:
!         case E_UHQmode:
!         case E_USQmode:
!         case E_UDQmode:
!         case E_UHAmode:
!         case E_USAmode:
!         case E_UDAmode:
!         case E_UTAmode:
!           warning_at (loc, 0, "using %qs with unsigned type has no effect",
!                       "absfx");
!           return args[0];
  
!         default:
!           error_at (loc, "no matching fixed-point overload found for %qs",
!                     "absfx");
  
!           fold = error_mark_node;
!           break;
!         }
  
        fold = targetm.builtin_decl (id, true);
  
        if (fold != error_mark_node)
!         fold = build_function_call_vec (loc, vNULL, fold, &args, NULL);
  
        break; // absfx
  
      case AVR_BUILTIN_ROUNDFX:
        if (args.length() != 2)
!         {
!           error_at (loc, "%qs expects 2 arguments but %d given",
!                     "roundfx", (int) args.length());
  
!           fold = error_mark_node;
!           break;
!         }
  
        type0 = TREE_TYPE (args[0]);
        type1 = TREE_TYPE (args[1]);
  
        if (!FIXED_POINT_TYPE_P (type0))
!         {
!           error_at (loc, "%qs expects a fixed-point value as first argument",
!                     "roundfx");
  
!           fold = error_mark_node;
!         }
  
        if (!INTEGRAL_TYPE_P (type1))
!         {
!           error_at (loc, "%qs expects an integer value as second argument",
!                     "roundfx");
  
!           fold = error_mark_node;
!         }
  
        switch (TYPE_MODE (type0))
!         {
!         case E_QQmode: id = AVR_BUILTIN_ROUNDHR; break;
!         case E_HQmode: id = AVR_BUILTIN_ROUNDR; break;
!         case E_SQmode: id = AVR_BUILTIN_ROUNDLR; break;
!         case E_DQmode: id = AVR_BUILTIN_ROUNDLLR; break;
  
!         case E_UQQmode: id = AVR_BUILTIN_ROUNDUHR; break;
!         case E_UHQmode: id = AVR_BUILTIN_ROUNDUR; break;
!         case E_USQmode: id = AVR_BUILTIN_ROUNDULR; break;
!         case E_UDQmode: id = AVR_BUILTIN_ROUNDULLR; break;
  
!         case E_HAmode: id = AVR_BUILTIN_ROUNDHK; break;
!         case E_SAmode: id = AVR_BUILTIN_ROUNDK; break;
!         case E_DAmode: id = AVR_BUILTIN_ROUNDLK; break;
!         case E_TAmode: id = AVR_BUILTIN_ROUNDLLK; break;
  
!         case E_UHAmode: id = AVR_BUILTIN_ROUNDUHK; break;
!         case E_USAmode: id = AVR_BUILTIN_ROUNDUK; break;
!         case E_UDAmode: id = AVR_BUILTIN_ROUNDULK; break;
!         case E_UTAmode: id = AVR_BUILTIN_ROUNDULLK; break;
  
!         default:
!           error_at (loc, "no matching fixed-point overload found for %qs",
!                     "roundfx");
  
!           fold = error_mark_node;
!           break;
!         }
  
        fold = targetm.builtin_decl (id, true);
  
        if (fold != error_mark_node)
!         fold = build_function_call_vec (loc, vNULL, fold, &args, NULL);
  
        break; // roundfx
  
      case AVR_BUILTIN_COUNTLSFX:
        if (args.length() != 1)
!         {
!           error_at (loc, "%qs expects 1 argument but %d given",
!                     "countlsfx", (int) args.length());
  
!           fold = error_mark_node;
!           break;
!         }
  
        type0 = TREE_TYPE (args[0]);
  
        if (!FIXED_POINT_TYPE_P (type0))
!         {
!           error_at (loc, "%qs expects a fixed-point value as first argument",
!                     "countlsfx");
  
!           fold = error_mark_node;
!         }
  
        switch (TYPE_MODE (type0))
!         {
!         case E_QQmode: id = AVR_BUILTIN_COUNTLSHR; break;
!         case E_HQmode: id = AVR_BUILTIN_COUNTLSR; break;
!         case E_SQmode: id = AVR_BUILTIN_COUNTLSLR; break;
!         case E_DQmode: id = AVR_BUILTIN_COUNTLSLLR; break;
  
!         case E_UQQmode: id = AVR_BUILTIN_COUNTLSUHR; break;
!         case E_UHQmode: id = AVR_BUILTIN_COUNTLSUR; break;
!         case E_USQmode: id = AVR_BUILTIN_COUNTLSULR; break;
!         case E_UDQmode: id = AVR_BUILTIN_COUNTLSULLR; break;
  
!         case E_HAmode: id = AVR_BUILTIN_COUNTLSHK; break;
!         case E_SAmode: id = AVR_BUILTIN_COUNTLSK; break;
!         case E_DAmode: id = AVR_BUILTIN_COUNTLSLK; break;
!         case E_TAmode: id = AVR_BUILTIN_COUNTLSLLK; break;
  
!         case E_UHAmode: id = AVR_BUILTIN_COUNTLSUHK; break;
!         case E_USAmode: id = AVR_BUILTIN_COUNTLSUK; break;
!         case E_UDAmode: id = AVR_BUILTIN_COUNTLSULK; break;
!         case E_UTAmode: id = AVR_BUILTIN_COUNTLSULLK; break;
  
!         default:
!           error_at (loc, "no matching fixed-point overload found for %qs",
!                     "countlsfx");
  
!           fold = error_mark_node;
!           break;
!         }
  
        fold = targetm.builtin_decl (id, true);
  
        if (fold != error_mark_node)
!         fold = build_function_call_vec (loc, vNULL, fold, &args, NULL);
  
        break; // countlsfx
      }
  
    return fold;
  }
!   
  
  /* Implement `REGISTER_TARGET_PRAGMAS'.  */
  
--- 61,250 ----
  
      case AVR_BUILTIN_ABSFX:
        if (args.length() != 1)
! 	{
! 	  error_at (loc, "%qs expects 1 argument but %d given",
! 		    "absfx", (int) args.length());
  
! 	  fold = error_mark_node;
! 	  break;
! 	}
  
        type0 = TREE_TYPE (args[0]);
  
        if (!FIXED_POINT_TYPE_P (type0))
! 	{
! 	  error_at (loc, "%qs expects a fixed-point value as argument",
! 		    "absfx");
  
! 	  fold = error_mark_node;
! 	}
  
        switch (TYPE_MODE (type0))
! 	{
! 	case E_QQmode: id = AVR_BUILTIN_ABSHR; break;
! 	case E_HQmode: id = AVR_BUILTIN_ABSR; break;
! 	case E_SQmode: id = AVR_BUILTIN_ABSLR; break;
! 	case E_DQmode: id = AVR_BUILTIN_ABSLLR; break;
  
! 	case E_HAmode: id = AVR_BUILTIN_ABSHK; break;
! 	case E_SAmode: id = AVR_BUILTIN_ABSK; break;
! 	case E_DAmode: id = AVR_BUILTIN_ABSLK; break;
! 	case E_TAmode: id = AVR_BUILTIN_ABSLLK; break;
  
! 	case E_UQQmode:
! 	case E_UHQmode:
! 	case E_USQmode:
! 	case E_UDQmode:
! 	case E_UHAmode:
! 	case E_USAmode:
! 	case E_UDAmode:
! 	case E_UTAmode:
! 	  warning_at (loc, 0, "using %qs with unsigned type has no effect",
! 		      "absfx");
! 	  return args[0];
  
! 	default:
! 	  error_at (loc, "no matching fixed-point overload found for %qs",
! 		    "absfx");
  
! 	  fold = error_mark_node;
! 	  break;
! 	}
  
        fold = targetm.builtin_decl (id, true);
  
        if (fold != error_mark_node)
! 	fold = build_function_call_vec (loc, vNULL, fold, &args, NULL);
  
        break; // absfx
  
      case AVR_BUILTIN_ROUNDFX:
        if (args.length() != 2)
! 	{
! 	  error_at (loc, "%qs expects 2 arguments but %d given",
! 		    "roundfx", (int) args.length());
  
! 	  fold = error_mark_node;
! 	  break;
! 	}
  
        type0 = TREE_TYPE (args[0]);
        type1 = TREE_TYPE (args[1]);
  
        if (!FIXED_POINT_TYPE_P (type0))
! 	{
! 	  error_at (loc, "%qs expects a fixed-point value as first argument",
! 		    "roundfx");
  
! 	  fold = error_mark_node;
! 	}
  
        if (!INTEGRAL_TYPE_P (type1))
! 	{
! 	  error_at (loc, "%qs expects an integer value as second argument",
! 		    "roundfx");
  
! 	  fold = error_mark_node;
! 	}
  
        switch (TYPE_MODE (type0))
! 	{
! 	case E_QQmode: id = AVR_BUILTIN_ROUNDHR; break;
! 	case E_HQmode: id = AVR_BUILTIN_ROUNDR; break;
! 	case E_SQmode: id = AVR_BUILTIN_ROUNDLR; break;
! 	case E_DQmode: id = AVR_BUILTIN_ROUNDLLR; break;
  
! 	case E_UQQmode: id = AVR_BUILTIN_ROUNDUHR; break;
! 	case E_UHQmode: id = AVR_BUILTIN_ROUNDUR; break;
! 	case E_USQmode: id = AVR_BUILTIN_ROUNDULR; break;
! 	case E_UDQmode: id = AVR_BUILTIN_ROUNDULLR; break;
  
! 	case E_HAmode: id = AVR_BUILTIN_ROUNDHK; break;
! 	case E_SAmode: id = AVR_BUILTIN_ROUNDK; break;
! 	case E_DAmode: id = AVR_BUILTIN_ROUNDLK; break;
! 	case E_TAmode: id = AVR_BUILTIN_ROUNDLLK; break;
  
! 	case E_UHAmode: id = AVR_BUILTIN_ROUNDUHK; break;
! 	case E_USAmode: id = AVR_BUILTIN_ROUNDUK; break;
! 	case E_UDAmode: id = AVR_BUILTIN_ROUNDULK; break;
! 	case E_UTAmode: id = AVR_BUILTIN_ROUNDULLK; break;
  
! 	default:
! 	  error_at (loc, "no matching fixed-point overload found for %qs",
! 		    "roundfx");
  
! 	  fold = error_mark_node;
! 	  break;
! 	}
  
        fold = targetm.builtin_decl (id, true);
  
        if (fold != error_mark_node)
! 	fold = build_function_call_vec (loc, vNULL, fold, &args, NULL);
  
        break; // roundfx
  
      case AVR_BUILTIN_COUNTLSFX:
        if (args.length() != 1)
! 	{
! 	  error_at (loc, "%qs expects 1 argument but %d given",
! 		    "countlsfx", (int) args.length());
  
! 	  fold = error_mark_node;
! 	  break;
! 	}
  
        type0 = TREE_TYPE (args[0]);
  
        if (!FIXED_POINT_TYPE_P (type0))
! 	{
! 	  error_at (loc, "%qs expects a fixed-point value as first argument",
! 		    "countlsfx");
  
! 	  fold = error_mark_node;
! 	}
  
        switch (TYPE_MODE (type0))
! 	{
! 	case E_QQmode: id = AVR_BUILTIN_COUNTLSHR; break;
! 	case E_HQmode: id = AVR_BUILTIN_COUNTLSR; break;
! 	case E_SQmode: id = AVR_BUILTIN_COUNTLSLR; break;
! 	case E_DQmode: id = AVR_BUILTIN_COUNTLSLLR; break;
  
! 	case E_UQQmode: id = AVR_BUILTIN_COUNTLSUHR; break;
! 	case E_UHQmode: id = AVR_BUILTIN_COUNTLSUR; break;
! 	case E_USQmode: id = AVR_BUILTIN_COUNTLSULR; break;
! 	case E_UDQmode: id = AVR_BUILTIN_COUNTLSULLR; break;
  
! 	case E_HAmode: id = AVR_BUILTIN_COUNTLSHK; break;
! 	case E_SAmode: id = AVR_BUILTIN_COUNTLSK; break;
! 	case E_DAmode: id = AVR_BUILTIN_COUNTLSLK; break;
! 	case E_TAmode: id = AVR_BUILTIN_COUNTLSLLK; break;
  
! 	case E_UHAmode: id = AVR_BUILTIN_COUNTLSUHK; break;
! 	case E_USAmode: id = AVR_BUILTIN_COUNTLSUK; break;
! 	case E_UDAmode: id = AVR_BUILTIN_COUNTLSULK; break;
! 	case E_UTAmode: id = AVR_BUILTIN_COUNTLSULLK; break;
  
! 	default:
! 	  error_at (loc, "no matching fixed-point overload found for %qs",
! 		    "countlsfx");
  
! 	  fold = error_mark_node;
! 	  break;
! 	}
  
        fold = targetm.builtin_decl (id, true);
  
        if (fold != error_mark_node)
! 	fold = build_function_call_vec (loc, vNULL, fold, &args, NULL);
  
        break; // countlsfx
      }
  
    return fold;
  }
! 
  
  /* Implement `REGISTER_TARGET_PRAGMAS'.  */
  
*************** avr_register_target_pragmas (void)
*** 264,270 ****
        gcc_assert (i == avr_addrspace[i].id);
  
        if (!ADDR_SPACE_GENERIC_P (i))
!         c_register_addr_space (avr_addrspace[i].name, avr_addrspace[i].id);
      }
  
    targetm.resolve_overloaded_builtin = avr_resolve_overloaded_builtin;
--- 264,270 ----
        gcc_assert (i == avr_addrspace[i].id);
  
        if (!ADDR_SPACE_GENERIC_P (i))
! 	c_register_addr_space (avr_addrspace[i].name, avr_addrspace[i].id);
      }
  
    targetm.resolve_overloaded_builtin = avr_resolve_overloaded_builtin;
*************** avr_cpu_cpp_builtins (struct cpp_reader
*** 307,312 ****
--- 307,313 ----
    if (AVR_HAVE_ELPMX)    cpp_define (pfile, "__AVR_HAVE_ELPMX__");
    if (AVR_HAVE_MOVW)     cpp_define (pfile, "__AVR_HAVE_MOVW__");
    if (AVR_HAVE_LPMX)     cpp_define (pfile, "__AVR_HAVE_LPMX__");
+   if (AVR_HAVE_ADIW)     cpp_define (pfile, "__AVR_HAVE_ADIW__");
  
    if (avr_arch->asm_only)
      cpp_define (pfile, "__AVR_ASM_ONLY__");
*************** avr_cpu_cpp_builtins (struct cpp_reader
*** 333,353 ****
        cpp_define (pfile, "__AVR_TINY__");
  
        /* Define macro "__AVR_TINY_PM_BASE_ADDRESS__" with mapped program memory
!          start address.  This macro shall be used where mapped program
!          memory is accessed, eg. copying data section (__do_copy_data)
!          contents to data memory region.
!          NOTE:
!          Program memory of AVR_TINY devices cannot be accessed directly,
!          it has been mapped to the data memory.  For AVR_TINY devices
!          (ATtiny4/5/9/10/20 and 40) mapped program memory starts at 0x4000. */
  
        cpp_define_formatted (pfile, "__AVR_TINY_PM_BASE_ADDRESS__=0x%x",
!                             avr_arch->flash_pm_offset);
      }
  
    if (avr_arch->flash_pm_offset)
      cpp_define_formatted (pfile, "__AVR_PM_BASE_ADDRESS__=0x%x",
!                           avr_arch->flash_pm_offset);
  
    if (AVR_HAVE_EIJMP_EICALL)
      {
--- 334,354 ----
        cpp_define (pfile, "__AVR_TINY__");
  
        /* Define macro "__AVR_TINY_PM_BASE_ADDRESS__" with mapped program memory
! 	 start address.  This macro shall be used where mapped program
! 	 memory is accessed, eg. copying data section (__do_copy_data)
! 	 contents to data memory region.
! 	 NOTE:
! 	 Program memory of AVR_TINY devices cannot be accessed directly,
! 	 it has been mapped to the data memory.  For AVR_TINY devices
! 	 (ATtiny4/5/9/10/20 and 40) mapped program memory starts at 0x4000. */
  
        cpp_define_formatted (pfile, "__AVR_TINY_PM_BASE_ADDRESS__=0x%x",
! 			    avr_arch->flash_pm_offset);
      }
  
    if (avr_arch->flash_pm_offset)
      cpp_define_formatted (pfile, "__AVR_PM_BASE_ADDRESS__=0x%x",
! 			  avr_arch->flash_pm_offset);
  
    if (AVR_HAVE_EIJMP_EICALL)
      {
*************** avr_cpu_cpp_builtins (struct cpp_reader
*** 377,390 ****
        cpp_define (pfile, "__AVR_ERRATA_SKIP__");
  
        if (AVR_HAVE_JMP_CALL)
!         cpp_define (pfile, "__AVR_ERRATA_SKIP_JMP_CALL__");
      }
  
    if (TARGET_RMW)
      cpp_define (pfile, "__AVR_ISA_RMW__");
  
    cpp_define_formatted (pfile, "__AVR_SFR_OFFSET__=0x%x",
!                         avr_arch->sfr_offset);
  
  #ifdef WITH_AVRLIBC
    cpp_define (pfile, "__WITH_AVRLIBC__");
--- 378,391 ----
        cpp_define (pfile, "__AVR_ERRATA_SKIP__");
  
        if (AVR_HAVE_JMP_CALL)
! 	cpp_define (pfile, "__AVR_ERRATA_SKIP_JMP_CALL__");
      }
  
    if (TARGET_RMW)
      cpp_define (pfile, "__AVR_ISA_RMW__");
  
    cpp_define_formatted (pfile, "__AVR_SFR_OFFSET__=0x%x",
! 			avr_arch->sfr_offset);
  
  #ifdef WITH_AVRLIBC
    cpp_define (pfile, "__WITH_AVRLIBC__");
*************** avr_cpu_cpp_builtins (struct cpp_reader
*** 478,494 ****
    if (lang_GNU_C ())
      {
        for (int i = 0; i < ADDR_SPACE_COUNT; i++)
!         if (!ADDR_SPACE_GENERIC_P (i)
!             /* Only supply __FLASH<n> macro if the address space is reasonable
!                for this target.  The address space qualifier itself is still
!                supported, but using it will throw an error.  */
!             && avr_addr_space_supported_p ((addr_space_t) i))
!           {
!             const char *name = avr_addrspace[i].name;
!             char *Name = (char*) alloca (1 + strlen (name));
  
!             cpp_define (pfile, avr_toupper (Name, name));
!           }
      }
  
    /* Define builtin macros so that the user can easily query whether or
--- 479,495 ----
    if (lang_GNU_C ())
      {
        for (int i = 0; i < ADDR_SPACE_COUNT; i++)
! 	if (!ADDR_SPACE_GENERIC_P (i)
! 	    /* Only supply __FLASH<n> macro if the address space is reasonable
! 	       for this target.  The address space qualifier itself is still
! 	       supported, but using it will throw an error.  */
! 	    && avr_addr_space_supported_p ((addr_space_t) i))
! 	  {
! 	    const char *name = avr_addrspace[i].name;
! 	    char *Name = (char*) alloca (1 + strlen (name));
  
! 	    cpp_define (pfile, avr_toupper (Name, name));
! 	  }
      }
  
    /* Define builtin macros so that the user can easily query whether or
*************** avr_cpu_cpp_builtins (struct cpp_reader
*** 502,509 ****
    /* Builtin macros for the __int24 and __uint24 type.  */
  
    cpp_define_formatted (pfile, "__INT24_MAX__=8388607%s",
!                         INT_TYPE_SIZE == 8 ? "LL" : "L");
    cpp_define (pfile, "__INT24_MIN__=(-__INT24_MAX__-1)");
    cpp_define_formatted (pfile, "__UINT24_MAX__=16777215%s",
!                         INT_TYPE_SIZE == 8 ? "ULL" : "UL");
  }
--- 503,510 ----
    /* Builtin macros for the __int24 and __uint24 type.  */
  
    cpp_define_formatted (pfile, "__INT24_MAX__=8388607%s",
! 			INT_TYPE_SIZE == 8 ? "LL" : "L");
    cpp_define (pfile, "__INT24_MIN__=(-__INT24_MAX__-1)");
    cpp_define_formatted (pfile, "__UINT24_MAX__=16777215%s",
! 			INT_TYPE_SIZE == 8 ? "ULL" : "UL");
  }
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-devices.cc gcc-14.1.0/gcc/config/avr/avr-devices.cc
*** gcc-13.2.0/gcc/config/avr/avr-devices.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-devices.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by Anatoly Sokolov (aesok@post.ru)
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by Anatoly Sokolov (aesok@post.ru)
  
     This file is part of GCC.
*************** avr_texinfo[] =
*** 93,100 ****
      "``Enhanced'' devices with 3-byte PC, i.e.@: with more than 128@tie{}KiB "
      "of program memory." },
    { ARCH_AVRTINY,
!     "``TINY'' Tiny core devices with 512@tie{}B up to 4@tie{}KiB of "
!     "program memory." },
    { ARCH_AVRXMEGA2,
      "``XMEGA'' devices with more than 8@tie{}KiB and up to 64@tie{}KiB "
      "of program memory." },
--- 93,100 ----
      "``Enhanced'' devices with 3-byte PC, i.e.@: with more than 128@tie{}KiB "
      "of program memory." },
    { ARCH_AVRTINY,
!     "``Reduced Tiny'' Tiny core devices with only 16 general purpose "
!     "registers and 512@tie{}B up to 4@tie{}KiB of program memory." },
    { ARCH_AVRXMEGA2,
      "``XMEGA'' devices with more than 8@tie{}KiB and up to 64@tie{}KiB "
      "of program memory." },
*************** avr_mcu_types[] =
*** 130,136 ****
  
  #ifndef IN_GEN_AVR_MMCU_TEXI
  
! static char*
  avr_archs_str (void)
  {
    char *archs = concat ("", NULL);
--- 130,136 ----
  
  #ifndef IN_GEN_AVR_MMCU_TEXI
  
! static char *
  avr_archs_str (void)
  {
    char *archs = concat ("", NULL);
*************** avr_archs_str (void)
*** 144,150 ****
    return archs;
  }
  
!   
  void
  avr_inform_core_architectures (void)
  {
--- 144,150 ----
    return archs;
  }
  
! 
  void
  avr_inform_core_architectures (void)
  {
*************** avr_inform_core_architectures (void)
*** 153,156 ****
--- 153,172 ----
    free (archs);
  }
  
+ 
+ /* When MCU names a core arch like "avr5", then return a pointer to the
+    respective entry in avr_arch_types[].  Otherwise, return NULL.  */
+ 
+ const avr_arch_t *
+ avr_get_parch (const char *mcu)
+ {
+   for (size_t i = 0; i < ARRAY_SIZE (avr_arch_types); ++i)
+     {
+       if (strcmp (mcu, avr_arch_types[i].name) == 0)
+ 	return & avr_arch_types[i];
+     }
+ 
+   return NULL;
+ }
+ 
  #endif // IN_GEN_AVR_MMCU_TEXI
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-dimode.md gcc-14.1.0/gcc/config/avr/avr-dimode.md
*** gcc-13.2.0/gcc/config/avr/avr-dimode.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-dimode.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;;   Machine description for GNU compiler,
  ;;   for Atmel AVR micro controllers.
! ;;   Copyright (C) 1998-2023 Free Software Foundation, Inc.
  ;;   Contributed by Georg Lay (avr@gjlay.de)
  ;;
  ;; This file is part of GCC.
--- 1,6 ----
  ;;   Machine description for GNU compiler,
  ;;   for Atmel AVR micro controllers.
! ;;   Copyright (C) 1998-2024 Free Software Foundation, Inc.
  ;;   Contributed by Georg Lay (avr@gjlay.de)
  ;;
  ;; This file is part of GCC.
***************
*** 43,50 ****
  ;; so that no DImode insn contains pseudos or needs reloading.
  
  (define_constants
!   [(ACC_A	18)
!    (ACC_B	10)])
  
  ;; Supported modes that are 8 bytes wide
  (define_mode_iterator ALL8 [DI DQ UDQ DA UDA TA UTA])
--- 43,50 ----
  ;; so that no DImode insn contains pseudos or needs reloading.
  
  (define_constants
!   [(ACC_A  18)
!    (ACC_B  10)])
  
  ;; Supported modes that are 8 bytes wide
  (define_mode_iterator ALL8 [DI DQ UDQ DA UDA TA UTA])
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-fixed.md gcc-14.1.0/gcc/config/avr/avr-fixed.md
*** gcc-13.2.0/gcc/config/avr/avr-fixed.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-fixed.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;;   This file contains instructions that support fixed-point operations
  ;;   for Atmel AVR micro controllers.
! ;;   Copyright (C) 2012-2023 Free Software Foundation, Inc.
  ;;
  ;;   Contributed by Sean D'Epagnier  (sean@depagnier.com)
  ;;                  Georg-Johann Lay (avr@gjlay.de)
--- 1,6 ----
  ;;   This file contains instructions that support fixed-point operations
  ;;   for Atmel AVR micro controllers.
! ;;   Copyright (C) 2012-2024 Free Software Foundation, Inc.
  ;;
  ;;   Contributed by Sean D'Epagnier  (sean@depagnier.com)
  ;;                  Georg-Johann Lay (avr@gjlay.de)
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-log.cc gcc-14.1.0/gcc/config/avr/avr-log.cc
*** gcc-13.2.0/gcc/config/avr/avr-log.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-log.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines for log output for Atmel AVR back end.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
     This file is part of GCC.
--- 1,5 ----
  /* Subroutines for log output for Atmel AVR back end.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
     This file is part of GCC.
*************** int
*** 85,91 ****
  avr_vdump (FILE *stream, const char *caller, ...)
  {
    va_list ap;
!         
    if (stream == NULL && dump_file)
      stream = dump_file;
  
--- 85,91 ----
  avr_vdump (FILE *stream, const char *caller, ...)
  {
    va_list ap;
! 
    if (stream == NULL && dump_file)
      stream = dump_file;
  
*************** avr_log_vadump (FILE *file, const char *
*** 112,272 ****
    while (*fmt)
      {
        switch (*fmt++)
!         {
!         default:
!           fputc (*(fmt-1), file);
!           break;
  
!         case '\\':
!           bs[1] = *fmt++;
!           fputs (bs, file);
!           break;
  
!         case '%':
!           switch (*fmt++)
!             {
!             case '%':
!               fputc ('%', file);
!               break;
  
!             case 't':
!               {
!                 tree t = va_arg (ap, tree);
!                 if (NULL_TREE == t)
!                   fprintf (file, "<NULL-TREE>");
!                 else
!                   {
!                     if (stderr == file)
!                       debug_tree (t);
!                     else
!                       {
!                         print_node (file, "", t, 0);
!                         putc ('\n', file);
!                       }
!                   }
!                 break;
!               }
  
!             case 'T':
!               {
!                 tree t = va_arg (ap, tree);
!                 if (NULL_TREE == t)
!                   fprintf (file, "<NULL-TREE>");
!                 else
!                   print_node_brief (file, "", t, 3);
!               }
!               break;
  
!             case 'd':
!               fprintf (file, "%d", va_arg (ap, int));
!               break;
  
!             case 'x':
!               fprintf (file, "%x", va_arg (ap, int));
!               break;
  
!             case 'b':
!               fprintf (file, "%s", va_arg (ap, int) ? "true" : "false");
!               break;
  
!             case 'c':
!               fputc (va_arg (ap, int), file);
!               break;
  
!             case 'r':
!               print_inline_rtx (file, va_arg (ap, rtx), 0);
!               break;
  
!             case 'L':
!               {
!                 rtx_insn *insn = safe_as_a <rtx_insn *> (va_arg (ap, rtx));
  
!                 while (insn)
!                   {
!                     print_inline_rtx (file, insn, 0);
!                     fprintf (file, "\n");
!                     insn = NEXT_INSN (insn);
!                   }
!                 break;
!               }
  
!             case 'f':
!               if (cfun && cfun->decl)
!                 fputs (current_function_name(), file);
!               break;
  
!             case 's':
!               {
!                 const char *str = va_arg (ap, char*);
!                 fputs (str ? str : "(null)", file);
!               }
!               break;
  
!             case 'm':
!               fputs (GET_MODE_NAME ((machine_mode) va_arg (ap, int)),
!                      file);
!               break;
  
!             case 'C':
!               fputs (rtx_name[va_arg (ap, int)], file);
!               break;
  
!             case 'R':
!               fputs (reg_class_names[va_arg (ap, int)], file);
!               break;
  
!             case 'F':
!               fputs (caller, file);
!               break;
  
!             case 'H':
!               {
!                 location_t loc = va_arg (ap, location_t);
  
!                 if (BUILTINS_LOCATION == loc)
!                   fprintf (file, "<BUILTIN-LOCATION>");
!                 else if (UNKNOWN_LOCATION == loc)
!                   fprintf (file, "<UNKNOWN-LOCATION>");
!                 else
!                   fprintf (file, "%s:%d",
!                            LOCATION_FILE (loc), LOCATION_LINE (loc));
  
!                 break;
!               }
  
!             case '!':
!               if (!current_pass)
!                 return;
!               /* FALLTHRU */
  
!             case '?':
!               avr_vdump (file, caller, "%F[%f:%P]");
!               break;
  
!             case 'P':
!               if (current_pass)
!                 fprintf (file, "%s(%d)",
!                          current_pass->name,
!                          current_pass->static_pass_number);
!               else
!                 fprintf (file, "pass=?");
  
!               break;
  
!             case 'A':
!               fflush (file);
!               abort();
  
!             default:
!               /* Unknown %-code: Stop printing */
  
!               fprintf (file, "??? %%%c ???%s\n", *(fmt-1), fmt);
!               fmt = "";
  
!               break;
!             }
!           break; /* % */
!         }
      }
  
    fflush (file);
--- 112,272 ----
    while (*fmt)
      {
        switch (*fmt++)
! 	{
! 	default:
! 	  fputc (*(fmt-1), file);
! 	  break;
  
! 	case '\\':
! 	  bs[1] = *fmt++;
! 	  fputs (bs, file);
! 	  break;
  
! 	case '%':
! 	  switch (*fmt++)
! 	    {
! 	    case '%':
! 	      fputc ('%', file);
! 	      break;
  
! 	    case 't':
! 	      {
! 		tree t = va_arg (ap, tree);
! 		if (NULL_TREE == t)
! 		  fprintf (file, "<NULL-TREE>");
! 		else
! 		  {
! 		    if (stderr == file)
! 		      debug_tree (t);
! 		    else
! 		      {
! 			print_node (file, "", t, 0);
! 			putc ('\n', file);
! 		      }
! 		  }
! 		break;
! 	      }
  
! 	    case 'T':
! 	      {
! 		tree t = va_arg (ap, tree);
! 		if (NULL_TREE == t)
! 		  fprintf (file, "<NULL-TREE>");
! 		else
! 		  print_node_brief (file, "", t, 3);
! 	      }
! 	      break;
  
! 	    case 'd':
! 	      fprintf (file, "%d", va_arg (ap, int));
! 	      break;
  
! 	    case 'x':
! 	      fprintf (file, "%x", va_arg (ap, int));
! 	      break;
  
! 	    case 'b':
! 	      fprintf (file, "%s", va_arg (ap, int) ? "true" : "false");
! 	      break;
  
! 	    case 'c':
! 	      fputc (va_arg (ap, int), file);
! 	      break;
  
! 	    case 'r':
! 	      print_inline_rtx (file, va_arg (ap, rtx), 0);
! 	      break;
  
! 	    case 'L':
! 	      {
! 		rtx_insn *insn = safe_as_a <rtx_insn *> (va_arg (ap, rtx));
  
! 		while (insn)
! 		  {
! 		    print_inline_rtx (file, insn, 0);
! 		    fprintf (file, "\n");
! 		    insn = NEXT_INSN (insn);
! 		  }
! 		break;
! 	      }
  
! 	    case 'f':
! 	      if (cfun && cfun->decl)
! 		fputs (current_function_name(), file);
! 	      break;
  
! 	    case 's':
! 	      {
! 		const char *str = va_arg (ap, char*);
! 		fputs (str ? str : "(null)", file);
! 	      }
! 	      break;
  
! 	    case 'm':
! 	      fputs (GET_MODE_NAME ((machine_mode) va_arg (ap, int)),
! 		     file);
! 	      break;
  
! 	    case 'C':
! 	      fputs (rtx_name[va_arg (ap, int)], file);
! 	      break;
  
! 	    case 'R':
! 	      fputs (reg_class_names[va_arg (ap, int)], file);
! 	      break;
  
! 	    case 'F':
! 	      fputs (caller, file);
! 	      break;
  
! 	    case 'H':
! 	      {
! 		location_t loc = va_arg (ap, location_t);
  
! 		if (BUILTINS_LOCATION == loc)
! 		  fprintf (file, "<BUILTIN-LOCATION>");
! 		else if (UNKNOWN_LOCATION == loc)
! 		  fprintf (file, "<UNKNOWN-LOCATION>");
! 		else
! 		  fprintf (file, "%s:%d",
! 			   LOCATION_FILE (loc), LOCATION_LINE (loc));
  
! 		break;
! 	      }
  
! 	    case '!':
! 	      if (!current_pass)
! 		return;
! 	      /* FALLTHRU */
  
! 	    case '?':
! 	      avr_vdump (file, caller, "%F[%f:%P]");
! 	      break;
  
! 	    case 'P':
! 	      if (current_pass)
! 		fprintf (file, "%s(%d)",
! 			 current_pass->name,
! 			 current_pass->static_pass_number);
! 	      else
! 		fprintf (file, "pass=?");
  
! 	      break;
  
! 	    case 'A':
! 	      fflush (file);
! 	      abort();
  
! 	    default:
! 	      /* Unknown %-code: Stop printing */
  
! 	      fprintf (file, "??? %%%c ???%s\n", *(fmt-1), fmt);
! 	      fmt = "";
  
! 	      break;
! 	    }
! 	  break; /* % */
! 	}
      }
  
    fflush (file);
*************** avr_log_set_avr_log (void)
*** 283,289 ****
  
    if (all)
      avr_log_details = "all";
! 	
    if (all || avr_log_details)
      {
        /* Adding , at beginning and end of string makes searching easier.  */
--- 283,289 ----
  
    if (all)
      avr_log_details = "all";
! 
    if (all || avr_log_details)
      {
        /* Adding , at beginning and end of string makes searching easier.  */
*************** avr_log_set_avr_log (void)
*** 298,310 ****
        info = strstr (str, ",?,") != NULL;
  
        if (info)
!         fprintf (stderr, "\n-mlog=");
  
  #define SET_DUMP_DETAIL(S)                                       \
        do {                                                       \
  	avr_log.S = (all || strstr (str, "," #S ",") != NULL);   \
!         if (info)                                                \
!           fprintf (stderr, #S ",");                              \
        } while (0)
  
        SET_DUMP_DETAIL (address_cost);
--- 298,310 ----
        info = strstr (str, ",?,") != NULL;
  
        if (info)
! 	fprintf (stderr, "\n-mlog=");
  
  #define SET_DUMP_DETAIL(S)                                       \
        do {                                                       \
  	avr_log.S = (all || strstr (str, "," #S ",") != NULL);   \
! 	if (info)                                                \
! 	  fprintf (stderr, #S ",");                              \
        } while (0)
  
        SET_DUMP_DETAIL (address_cost);
*************** avr_log_set_avr_log (void)
*** 320,325 ****
  #undef SET_DUMP_DETAIL
  
        if (info)
!         fprintf (stderr, "?\n\n");
      }
  }
--- 320,325 ----
  #undef SET_DUMP_DETAIL
  
        if (info)
! 	fprintf (stderr, "?\n\n");
      }
  }
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-mcus.def gcc-14.1.0/gcc/config/avr/avr-mcus.def
*** gcc-13.2.0/gcc/config/avr/avr-mcus.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-mcus.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* AVR MCUs.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* AVR MCUs.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** AVR_MCU ("attiny167",        ARCH_AVR35,
*** 138,146 ****
  AVR_MCU ("attiny1634",       ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATtiny1634__",       0x0100, 0x0, 0x4000, 0)
  /* Enhanced, <= 8K.  */
  AVR_MCU ("avr4",             ARCH_AVR4, AVR_ISA_NONE,  NULL,                       0x0060, 0x0, 0x2000, 0)
  AVR_MCU ("ata6285",          ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATA6285__",          0x0100, 0x0, 0x2000, 0)
  AVR_MCU ("ata6286",          ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATA6286__",          0x0100, 0x0, 0x2000, 0)
! AVR_MCU ("ata6289",          ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6289__",           0x0100, 0x0, 0x2000, 0)
  AVR_MCU ("ata6612c",         ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATA6612C__",         0x0100, 0x0, 0x2000, 0)
  AVR_MCU ("atmega8",          ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATmega8__",          0x0060, 0x0, 0x2000, 0)
  AVR_MCU ("atmega8a",         ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATmega8A__",         0x0060, 0x0, 0x2000, 0)
--- 138,147 ----
  AVR_MCU ("attiny1634",       ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATtiny1634__",       0x0100, 0x0, 0x4000, 0)
  /* Enhanced, <= 8K.  */
  AVR_MCU ("avr4",             ARCH_AVR4, AVR_ISA_NONE,  NULL,                       0x0060, 0x0, 0x2000, 0)
+ AVR_MCU ("ata5795",          ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATA5795__",          0x0100, 0x0, 0x2000, 0)
  AVR_MCU ("ata6285",          ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATA6285__",          0x0100, 0x0, 0x2000, 0)
  AVR_MCU ("ata6286",          ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATA6286__",          0x0100, 0x0, 0x2000, 0)
! AVR_MCU ("ata6289",          ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATA6289__",          0x0100, 0x0, 0x2000, 0)
  AVR_MCU ("ata6612c",         ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATA6612C__",         0x0100, 0x0, 0x2000, 0)
  AVR_MCU ("atmega8",          ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATmega8__",          0x0060, 0x0, 0x2000, 0)
  AVR_MCU ("atmega8a",         ARCH_AVR4, AVR_ISA_NONE,  "__AVR_ATmega8A__",         0x0060, 0x0, 0x2000, 0)
*************** AVR_MCU ("at90pwm3b",        ARCH_AVR4,
*** 165,177 ****
  AVR_MCU ("at90pwm81",        ARCH_AVR4, AVR_ISA_NONE,  "__AVR_AT90PWM81__",        0x0100, 0x0, 0x2000, 0)
  /* Enhanced, > 8K, <= 64K.  */
  AVR_MCU ("avr5",             ARCH_AVR5, AVR_ISA_NONE, NULL,                        0x0060, 0x0, 0x4000, 0)
! AVR_MCU ("ata5702m322",      ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5702M322__",       0x0200, 0x0, 0x10000, 0)
  AVR_MCU ("ata5782",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5782__",           0x0200, 0x8000, 0xd000, 0)
  AVR_MCU ("ata5790",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5790__",           0x0100, 0x0, 0x4000, 0)
  AVR_MCU ("ata5790n",         ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5790N__",          0x0100, 0x0, 0x4000, 0)
  AVR_MCU ("ata5791",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5791__",           0x0100, 0x0, 0x4000, 0)
- AVR_MCU ("ata5795",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5795__",           0x0100, 0x0, 0x2000, 0)
  AVR_MCU ("ata5831",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5831__",           0x0200, 0x8000, 0xd000, 0)
  AVR_MCU ("ata6613c",         ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA6613C__",          0x0100, 0x0, 0x4000, 0)
  AVR_MCU ("ata6614q",         ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA6614Q__",          0x0100, 0x0, 0x8000, 0)
  AVR_MCU ("ata8210",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA8210__",           0x0200, 0x8000, 0xd000, 0)
--- 166,180 ----
  AVR_MCU ("at90pwm81",        ARCH_AVR4, AVR_ISA_NONE,  "__AVR_AT90PWM81__",        0x0100, 0x0, 0x2000, 0)
  /* Enhanced, > 8K, <= 64K.  */
  AVR_MCU ("avr5",             ARCH_AVR5, AVR_ISA_NONE, NULL,                        0x0060, 0x0, 0x4000, 0)
! AVR_MCU ("ata5700m322",      ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5700M322__",       0x0200, 0x8000, 0x10000, 0)
! AVR_MCU ("ata5702m322",      ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5702M322__",       0x0200, 0x8000, 0x10000, 0)
  AVR_MCU ("ata5782",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5782__",           0x0200, 0x8000, 0xd000, 0)
+ AVR_MCU ("ata5787",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5787__",           0x0200, 0x8000, 0xd200, 0)
  AVR_MCU ("ata5790",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5790__",           0x0100, 0x0, 0x4000, 0)
  AVR_MCU ("ata5790n",         ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5790N__",          0x0100, 0x0, 0x4000, 0)
  AVR_MCU ("ata5791",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5791__",           0x0100, 0x0, 0x4000, 0)
  AVR_MCU ("ata5831",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5831__",           0x0200, 0x8000, 0xd000, 0)
+ AVR_MCU ("ata5835",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5835__",           0x0200, 0x8000, 0xd200, 0)
  AVR_MCU ("ata6613c",         ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA6613C__",          0x0100, 0x0, 0x4000, 0)
  AVR_MCU ("ata6614q",         ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA6614Q__",          0x0100, 0x0, 0x8000, 0)
  AVR_MCU ("ata8210",          ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA8210__",           0x0200, 0x8000, 0xd000, 0)
*************** AVR_MCU ("atmega2560",       ARCH_AVR6,
*** 291,297 ****
  AVR_MCU ("atmega2561",       ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2561__",        0x0200, 0x0, 0x40000, 0)
  AVR_MCU ("atmega256rfr2",    ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega256RFR2__",     0x0200, 0x0, 0x40000, 0)
  AVR_MCU ("atmega2564rfr2",   ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2564RFR2__",    0x0200, 0x0, 0x40000, 0)
! /* Xmega, 16K <= Flash < 64K, RAM <= 64K */
  AVR_MCU ("avrxmega2",        ARCH_AVRXMEGA2, AVR_ISA_NONE, NULL,                   0x2000, 0x0, 0x9000, 0)
  AVR_MCU ("atxmega8e5",       ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega8E5__",   0x2000, 0x0, 0x2800, 0)
  AVR_MCU ("atxmega16a4",      ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega16A4__",  0x2000, 0x0, 0x5000, 0)
--- 294,300 ----
  AVR_MCU ("atmega2561",       ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2561__",        0x0200, 0x0, 0x40000, 0)
  AVR_MCU ("atmega256rfr2",    ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega256RFR2__",     0x0200, 0x0, 0x40000, 0)
  AVR_MCU ("atmega2564rfr2",   ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2564RFR2__",    0x0200, 0x0, 0x40000, 0)
! /* Xmega, 16K <= Flash <= 64K, RAM <= 64K */
  AVR_MCU ("avrxmega2",        ARCH_AVRXMEGA2, AVR_ISA_NONE, NULL,                   0x2000, 0x0, 0x9000, 0)
  AVR_MCU ("atxmega8e5",       ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega8E5__",   0x2000, 0x0, 0x2800, 0)
  AVR_MCU ("atxmega16a4",      ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega16A4__",  0x2000, 0x0, 0x5000, 0)
*************** AVR_MCU ("atxmega16c4",      ARCH_AVRXME
*** 306,319 ****
  AVR_MCU ("atxmega32a4u",     ARCH_AVRXMEGA2, AVR_ISA_RMW,  "__AVR_ATxmega32A4U__", 0x2000, 0x0, 0x9000, 0)
  AVR_MCU ("atxmega32c4",      ARCH_AVRXMEGA2, AVR_ISA_RMW,  "__AVR_ATxmega32C4__",  0x2000, 0x0, 0x9000, 0)
  AVR_MCU ("atxmega32e5",      ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32E5__",  0x2000, 0x0, 0x9000, 0)
! AVR_MCU ("avr64da28",        ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_AVR64DA28__",    0x6000, 0x0, 0x8000, 0x10000)
! AVR_MCU ("avr64da32",        ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_AVR64DA32__",    0x6000, 0x0, 0x8000, 0x10000)
! AVR_MCU ("avr64da48",        ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_AVR64DA48__",    0x6000, 0x0, 0x8000, 0x10000)
! AVR_MCU ("avr64da64",        ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_AVR64DA64__",    0x6000, 0x0, 0x8000, 0x10000)
! AVR_MCU ("avr64db28",        ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_AVR64DB28__",    0x6000, 0x0, 0x8000, 0x10000)
! AVR_MCU ("avr64db32",        ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_AVR64DB32__",    0x6000, 0x0, 0x8000, 0x10000)
! AVR_MCU ("avr64db48",        ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_AVR64DB48__",    0x6000, 0x0, 0x8000, 0x10000)
! AVR_MCU ("avr64db64",        ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_AVR64DB64__",    0x6000, 0x0, 0x8000, 0x10000)
  /* Xmega, Flash + RAM < 64K, flash visible in RAM address space */
  AVR_MCU ("avrxmega3",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  NULL,                  0x3f00, 0x0, 0x8000, 0)
  AVR_MCU ("attiny202",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny202__",   0x3f80, 0x0, 0x800,  0x8000)
--- 309,331 ----
  AVR_MCU ("atxmega32a4u",     ARCH_AVRXMEGA2, AVR_ISA_RMW,  "__AVR_ATxmega32A4U__", 0x2000, 0x0, 0x9000, 0)
  AVR_MCU ("atxmega32c4",      ARCH_AVRXMEGA2, AVR_ISA_RMW,  "__AVR_ATxmega32C4__",  0x2000, 0x0, 0x9000, 0)
  AVR_MCU ("atxmega32e5",      ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32E5__",  0x2000, 0x0, 0x9000, 0)
! AVR_MCU ("avr64da28",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DA28__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64da32",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DA32__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64da48",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DA48__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64da64",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DA64__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64db28",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DB28__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64db32",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DB32__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64db48",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DB48__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64db64",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DB64__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64dd14",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DD14__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64dd20",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DD20__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64dd28",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DD28__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64dd32",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DD32__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64du28",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DU28__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64du32",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64DU32__",   0x6000, 0x0, 0x10000, 0)
! AVR_MCU ("avr64ea28",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64EA28__",   0x6800, 0x0, 0x10000, 0)
! AVR_MCU ("avr64ea32",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64EA32__",   0x6800, 0x0, 0x10000, 0)
! AVR_MCU ("avr64ea48",        ARCH_AVRXMEGA2, AVR_ISA_FLMAP, "__AVR_AVR64EA48__",   0x6800, 0x0, 0x10000, 0)
  /* Xmega, Flash + RAM < 64K, flash visible in RAM address space */
  AVR_MCU ("avrxmega3",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  NULL,                  0x3f00, 0x0, 0x8000, 0)
  AVR_MCU ("attiny202",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny202__",   0x3f80, 0x0, 0x800,  0x8000)
*************** AVR_MCU ("attiny214",        ARCH_AVRXME
*** 332,337 ****
--- 344,350 ----
  AVR_MCU ("attiny412",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny412__",   0x3f00, 0x0, 0x1000, 0x8000)
  AVR_MCU ("attiny414",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny414__",   0x3f00, 0x0, 0x1000, 0x8000)
  AVR_MCU ("attiny416",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny416__",   0x3f00, 0x0, 0x1000, 0x8000)
+ AVR_MCU ("attiny416auto",    ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny416AUTO__", 0x3f00, 0x0, 0x1000, 0x8000)
  AVR_MCU ("attiny417",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny417__",   0x3f00, 0x0, 0x1000, 0x8000)
  AVR_MCU ("attiny814",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny814__",   0x3e00, 0x0, 0x2000, 0x8000)
  AVR_MCU ("attiny816",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny816__",   0x3e00, 0x0, 0x2000, 0x8000)
*************** AVR_MCU ("attiny1617",       ARCH_AVRXME
*** 342,361 ****
  AVR_MCU ("attiny3214",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3214__",  0x3800, 0x0, 0x8000, 0x8000)
  AVR_MCU ("attiny3216",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3216__",  0x3800, 0x0, 0x8000, 0x8000)
  AVR_MCU ("attiny3217",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3217__",  0x3800, 0x0, 0x8000, 0x8000)
  AVR_MCU ("atmega808",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATmega808__",   0x3c00, 0x0, 0x2000, 0x4000)
  AVR_MCU ("atmega809",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATmega809__",   0x3c00, 0x0, 0x2000, 0x4000)
  AVR_MCU ("atmega1608",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega1608__",  0x3800, 0x0, 0x4000, 0x4000)
  AVR_MCU ("atmega1609",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega1609__",  0x3800, 0x0, 0x4000, 0x4000)
! AVR_MCU ("atmega3208",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega3208__",  0x3800, 0x0, 0x8000, 0x4000)
! AVR_MCU ("atmega3209",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega3209__",  0x3800, 0x0, 0x8000, 0x4000)
  AVR_MCU ("atmega4808",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega4808__",  0x2800, 0x0, 0xc000, 0x4000)
  AVR_MCU ("atmega4809",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega4809__",  0x2800, 0x0, 0xc000, 0x4000)
  AVR_MCU ("avr32da28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DA28__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32da32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DA32__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32da48",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DA48__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32db28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DB28__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32db32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DB32__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32db48",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DB48__",   0x7000, 0x0, 0x8000, 0x8000)
  /* Xmega, 64K < Flash <= 128K, RAM <= 64K */
  AVR_MCU ("avrxmega4",        ARCH_AVRXMEGA4, AVR_ISA_NONE, NULL,                   0x2000, 0x0, 0x11000, 0)
  AVR_MCU ("atxmega64a3",      ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64A3__",  0x2000, 0x0, 0x11000, 0)
--- 355,412 ----
  AVR_MCU ("attiny3214",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3214__",  0x3800, 0x0, 0x8000, 0x8000)
  AVR_MCU ("attiny3216",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3216__",  0x3800, 0x0, 0x8000, 0x8000)
  AVR_MCU ("attiny3217",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3217__",  0x3800, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("attiny424",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny424__",   0x3e00, 0x0, 0x1000, 0x8000)
+ AVR_MCU ("attiny426",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny426__",   0x3e00, 0x0, 0x1000, 0x8000)
+ AVR_MCU ("attiny427",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny427__",   0x3e00, 0x0, 0x1000, 0x8000)
+ AVR_MCU ("attiny824",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny824__",   0x3c00, 0x0, 0x2000, 0x8000)
+ AVR_MCU ("attiny826",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny826__",   0x3c00, 0x0, 0x2000, 0x8000)
+ AVR_MCU ("attiny827",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny827__",   0x3c00, 0x0, 0x2000, 0x8000)
+ AVR_MCU ("attiny1624",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny1624__",  0x3800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("attiny1626",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny1626__",  0x3800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("attiny1627",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny1627__",  0x3800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("attiny3224",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3224__",  0x3400, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("attiny3226",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3226__",  0x3400, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("attiny3227",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATtiny3227__",  0x3400, 0x0, 0x8000, 0x8000)
  AVR_MCU ("atmega808",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATmega808__",   0x3c00, 0x0, 0x2000, 0x4000)
  AVR_MCU ("atmega809",        ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATmega809__",   0x3c00, 0x0, 0x2000, 0x4000)
  AVR_MCU ("atmega1608",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega1608__",  0x3800, 0x0, 0x4000, 0x4000)
  AVR_MCU ("atmega1609",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega1609__",  0x3800, 0x0, 0x4000, 0x4000)
! AVR_MCU ("atmega3208",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega3208__",  0x3000, 0x0, 0x8000, 0x4000)
! AVR_MCU ("atmega3209",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega3209__",  0x3000, 0x0, 0x8000, 0x4000)
  AVR_MCU ("atmega4808",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega4808__",  0x2800, 0x0, 0xc000, 0x4000)
  AVR_MCU ("atmega4809",       ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_ATmega4809__",  0x2800, 0x0, 0xc000, 0x4000)
+ AVR_MCU ("avr16dd14",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16DD14__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16dd20",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16DD20__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16dd28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16DD28__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16dd32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16DD32__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16du14",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16DU14__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16du20",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16DU20__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16du28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16DU28__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16du32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16DU32__",   0x7800, 0x0, 0x4000, 0x8000)
  AVR_MCU ("avr32da28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DA28__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32da32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DA32__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32da48",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DA48__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32db28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DB28__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32db32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DB32__",   0x7000, 0x0, 0x8000, 0x8000)
  AVR_MCU ("avr32db48",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DB48__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32dd14",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DD14__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32dd20",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DD20__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32dd28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DD28__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32dd32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DD32__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32du14",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DU14__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32du20",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DU20__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32du28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DU28__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32du32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32DU32__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr16eb14",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16EB14__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16eb20",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16EB20__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16eb28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16EB28__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16eb32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16EB32__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16ea28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16EA28__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16ea32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16EA32__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr16ea48",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR16EA48__",   0x7800, 0x0, 0x4000, 0x8000)
+ AVR_MCU ("avr32ea28",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32EA28__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32ea32",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32EA32__",   0x7000, 0x0, 0x8000, 0x8000)
+ AVR_MCU ("avr32ea48",        ARCH_AVRXMEGA3, AVR_ISA_NONE,  "__AVR_AVR32EA48__",   0x7000, 0x0, 0x8000, 0x8000)
  /* Xmega, 64K < Flash <= 128K, RAM <= 64K */
  AVR_MCU ("avrxmega4",        ARCH_AVRXMEGA4, AVR_ISA_NONE, NULL,                   0x2000, 0x0, 0x11000, 0)
  AVR_MCU ("atxmega64a3",      ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64A3__",  0x2000, 0x0, 0x11000, 0)
*************** AVR_MCU ("atxmega64b1",      ARCH_AVRXME
*** 366,379 ****
  AVR_MCU ("atxmega64b3",      ARCH_AVRXMEGA4, AVR_ISA_RMW,  "__AVR_ATxmega64B3__",  0x2000, 0x0, 0x11000, 0)
  AVR_MCU ("atxmega64c3",      ARCH_AVRXMEGA4, AVR_ISA_RMW,  "__AVR_ATxmega64C3__",  0x2000, 0x0, 0x11000, 0)
  AVR_MCU ("atxmega64d4",      ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64D4__",  0x2000, 0x0, 0x11000, 0)
! AVR_MCU ("avr128da28",       ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_AVR128DA28__",   0x4000, 0x0, 0x8000,  0x20000)
! AVR_MCU ("avr128da32",       ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_AVR128DA32__",   0x4000, 0x0, 0x8000,  0x20000)
! AVR_MCU ("avr128da48",       ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_AVR128DA48__",   0x4000, 0x0, 0x8000,  0x20000)
! AVR_MCU ("avr128da64",       ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_AVR128DA64__",   0x4000, 0x0, 0x8000,  0x20000)
! AVR_MCU ("avr128db28",       ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_AVR128DB28__",   0x4000, 0x0, 0x8000,  0x20000)
! AVR_MCU ("avr128db32",       ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_AVR128DB32__",   0x4000, 0x0, 0x8000,  0x20000)
! AVR_MCU ("avr128db48",       ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_AVR128DB48__",   0x4000, 0x0, 0x8000,  0x20000)
! AVR_MCU ("avr128db64",       ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_AVR128DB64__",   0x4000, 0x0, 0x8000,  0x20000)
  /* Xmega, 64K < Flash <= 128K, RAM > 64K */
  AVR_MCU ("avrxmega5",        ARCH_AVRXMEGA5, AVR_ISA_NONE, NULL,                   0x2000, 0x0, 0x11000, 0)
  AVR_MCU ("atxmega64a1",      ARCH_AVRXMEGA5, AVR_ISA_NONE, "__AVR_ATxmega64A1__",  0x2000, 0x0, 0x11000, 0)
--- 417,430 ----
  AVR_MCU ("atxmega64b3",      ARCH_AVRXMEGA4, AVR_ISA_RMW,  "__AVR_ATxmega64B3__",  0x2000, 0x0, 0x11000, 0)
  AVR_MCU ("atxmega64c3",      ARCH_AVRXMEGA4, AVR_ISA_RMW,  "__AVR_ATxmega64C3__",  0x2000, 0x0, 0x11000, 0)
  AVR_MCU ("atxmega64d4",      ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64D4__",  0x2000, 0x0, 0x11000, 0)
! AVR_MCU ("avr128da28",       ARCH_AVRXMEGA4, AVR_ISA_FLMAP, "__AVR_AVR128DA28__",  0x4000, 0x0, 0x20000, 0)
! AVR_MCU ("avr128da32",       ARCH_AVRXMEGA4, AVR_ISA_FLMAP, "__AVR_AVR128DA32__",  0x4000, 0x0, 0x20000, 0)
! AVR_MCU ("avr128da48",       ARCH_AVRXMEGA4, AVR_ISA_FLMAP, "__AVR_AVR128DA48__",  0x4000, 0x0, 0x20000, 0)
! AVR_MCU ("avr128da64",       ARCH_AVRXMEGA4, AVR_ISA_FLMAP, "__AVR_AVR128DA64__",  0x4000, 0x0, 0x20000, 0)
! AVR_MCU ("avr128db28",       ARCH_AVRXMEGA4, AVR_ISA_FLMAP, "__AVR_AVR128DB28__",  0x4000, 0x0, 0x20000, 0)
! AVR_MCU ("avr128db32",       ARCH_AVRXMEGA4, AVR_ISA_FLMAP, "__AVR_AVR128DB32__",  0x4000, 0x0, 0x20000, 0)
! AVR_MCU ("avr128db48",       ARCH_AVRXMEGA4, AVR_ISA_FLMAP, "__AVR_AVR128DB48__",  0x4000, 0x0, 0x20000, 0)
! AVR_MCU ("avr128db64",       ARCH_AVRXMEGA4, AVR_ISA_FLMAP, "__AVR_AVR128DB64__",  0x4000, 0x0, 0x20000, 0)
  /* Xmega, 64K < Flash <= 128K, RAM > 64K */
  AVR_MCU ("avrxmega5",        ARCH_AVRXMEGA5, AVR_ISA_NONE, NULL,                   0x2000, 0x0, 0x11000, 0)
  AVR_MCU ("atxmega64a1",      ARCH_AVRXMEGA5, AVR_ISA_NONE, "__AVR_ATxmega64A1__",  0x2000, 0x0, 0x11000, 0)
*************** AVR_MCU ("attiny4",          ARCH_AVRTIN
*** 410,415 ****
--- 461,468 ----
  AVR_MCU ("attiny5",          ARCH_AVRTINY, AVR_ISA_LDS,  "__AVR_ATtiny5__",        0x0040, 0x0, 0x200, 0)
  AVR_MCU ("attiny9",          ARCH_AVRTINY, AVR_ISA_LDS,  "__AVR_ATtiny9__",        0x0040, 0x0, 0x400, 0)
  AVR_MCU ("attiny10",         ARCH_AVRTINY, AVR_ISA_LDS,  "__AVR_ATtiny10__",       0x0040, 0x0, 0x400, 0)
+ AVR_MCU ("attiny102",        ARCH_AVRTINY, AVR_ISA_LDS,  "__AVR_ATtiny102__",      0x0040, 0x0, 0x400, 0)
+ AVR_MCU ("attiny104",        ARCH_AVRTINY, AVR_ISA_LDS,  "__AVR_ATtiny104__",      0x0040, 0x0, 0x400, 0)
  AVR_MCU ("attiny20",         ARCH_AVRTINY, AVR_ISA_LDS,  "__AVR_ATtiny20__",       0x0040, 0x0, 0x800, 0)
  AVR_MCU ("attiny40",         ARCH_AVRTINY, AVR_ISA_NONE, "__AVR_ATtiny40__",       0x0040, 0x0, 0x1000, 0)
  /* Assembler only.  */
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-modes.def gcc-14.1.0/gcc/config/avr/avr-modes.def
*** gcc-13.2.0/gcc/config/avr/avr-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2012-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2012-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-passes.def gcc-14.1.0/gcc/config/avr/avr-passes.def
*** gcc-13.2.0/gcc/config/avr/avr-passes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-passes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Description of target passes for AVR.
!    Copyright (C) 2016-2023 Free Software Foundation, Inc. */
  
  /* This file is part of GCC.
  
--- 1,5 ----
  /* Description of target passes for AVR.
!    Copyright (C) 2016-2024 Free Software Foundation, Inc. */
  
  /* This file is part of GCC.
  
***************
*** 17,22 ****
--- 17,31 ----
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
+ /* A post reload optimization pass that fuses PLUS insns with CONST_INT
+    addend with a load or store insn to get POST_INC or PRE_DEC addressing.
+    It can also fuse two PLUSes to a single one, which may occur due to
+    splits from `avr_split_tiny_move'.  We do this in an own pass because
+    it can find more cases than peephole2, for example when there are
+    unrelated insns between the interesting ones.  */
+ 
+ INSERT_PASS_BEFORE (pass_peephole2, 1, avr_pass_fuse_add);
+ 
  /* An analysis pass that runs prior to prologue / epilogue generation.
     Computes cfun->machine->gasisr.maybe which is used in prologue and
     epilogue generation provided -mgas-isr-prologues is on.  */
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-protos.h gcc-14.1.0/gcc/config/avr/avr-protos.h
*** gcc-13.2.0/gcc/config/avr/avr-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Prototypes for exported functions defined in avr.cc
     
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
     Contributed by Denis Chertykov (chertykov@gmail.com)
  
     This file is part of GCC.
--- 1,6 ----
  /* Prototypes for exported functions defined in avr.cc
     
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
     Contributed by Denis Chertykov (chertykov@gmail.com)
  
     This file is part of GCC.
*************** extern const char *avr_out_compare64 (rt
*** 57,63 ****
  extern const char *ret_cond_branch (rtx x, int len, int reverse);
  extern const char *avr_out_movpsi (rtx_insn *, rtx*, int*);
  extern const char *avr_out_sign_extend (rtx_insn *, rtx*, int*);
! extern const char *avr_out_insert_notbit (rtx_insn *, rtx*, rtx, int*);
  extern const char *avr_out_plus_set_ZN (rtx*, int*);
  extern const char *avr_out_cmp_ext (rtx*, enum rtx_code, int*);
  
--- 57,66 ----
  extern const char *ret_cond_branch (rtx x, int len, int reverse);
  extern const char *avr_out_movpsi (rtx_insn *, rtx*, int*);
  extern const char *avr_out_sign_extend (rtx_insn *, rtx*, int*);
! extern const char *avr_out_insert_notbit (rtx_insn *, rtx*, int*);
! extern const char *avr_out_insv (rtx_insn *, rtx*, int*);
! extern const char *avr_out_extr (rtx_insn *, rtx*, int*);
! extern const char *avr_out_extr_not (rtx_insn *, rtx*, int*);
  extern const char *avr_out_plus_set_ZN (rtx*, int*);
  extern const char *avr_out_cmp_ext (rtx*, enum rtx_code, int*);
  
*************** extern void avr_expand_prologue (void);
*** 86,102 ****
  extern void avr_expand_epilogue (bool);
  extern bool avr_emit_cpymemhi (rtx*);
  extern int avr_epilogue_uses (int regno);
  
  extern void avr_output_addr_vec (rtx_insn*, rtx);
  extern const char *avr_out_sbxx_branch (rtx_insn *insn, rtx operands[]);
  extern const char* avr_out_bitop (rtx, rtx*, int*);
! extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL, bool =true);
  extern const char* avr_out_round (rtx_insn *, rtx*, int* =NULL);
  extern const char* avr_out_addto_sp (rtx*, int*);
  extern const char* avr_out_xload (rtx_insn *, rtx*, int*);
  extern const char* avr_out_cpymem (rtx_insn *, rtx*, int*);
  extern const char* avr_out_insert_bits (rtx*, int*);
  extern bool avr_popcount_each_byte (rtx, int, int);
  extern bool avr_has_nibble_0xf (rtx);
  
  extern int extra_constraint_Q (rtx x);
--- 89,107 ----
  extern void avr_expand_epilogue (bool);
  extern bool avr_emit_cpymemhi (rtx*);
  extern int avr_epilogue_uses (int regno);
+ extern bool avr_split_tiny_move (rtx_insn *insn, rtx *operands);
  
  extern void avr_output_addr_vec (rtx_insn*, rtx);
  extern const char *avr_out_sbxx_branch (rtx_insn *insn, rtx operands[]);
  extern const char* avr_out_bitop (rtx, rtx*, int*);
! extern const char* avr_out_plus (rtx, rtx*, int* =NULL, bool =true);
  extern const char* avr_out_round (rtx_insn *, rtx*, int* =NULL);
  extern const char* avr_out_addto_sp (rtx*, int*);
  extern const char* avr_out_xload (rtx_insn *, rtx*, int*);
  extern const char* avr_out_cpymem (rtx_insn *, rtx*, int*);
  extern const char* avr_out_insert_bits (rtx*, int*);
  extern bool avr_popcount_each_byte (rtx, int, int);
+ extern bool avr_xor_noclobber_dconst (rtx, int);
  extern bool avr_has_nibble_0xf (rtx);
  
  extern int extra_constraint_Q (rtx x);
*************** extern const char* avr_out_reload_inpsi
*** 107,113 ****
  extern const char* avr_out_lpm (rtx_insn *, rtx*, int*);
  extern void avr_notice_update_cc (rtx body, rtx_insn *insn);
  extern int reg_unused_after (rtx_insn *insn, rtx reg);
- extern int _reg_unused_after (rtx_insn *insn, rtx reg);
  extern int avr_jump_mode (rtx x, rtx_insn *insn);
  extern int test_hard_reg_class (enum reg_class rclass, rtx x);
  extern int jump_over_one_insn_p (rtx_insn *insn, rtx dest);
--- 112,117 ----
*************** extern enum reg_class avr_mode_code_base
*** 121,126 ****
--- 125,131 ----
  extern bool avr_regno_mode_code_ok_for_base_p (int, machine_mode, addr_space_t, RTX_CODE, RTX_CODE);
  extern rtx avr_incoming_return_addr_rtx (void);
  extern rtx avr_legitimize_reload_address (rtx*, machine_mode, int, int, int, int, rtx (*)(rtx,int));
+ extern bool avr_adiw_reg_p (rtx);
  extern bool avr_mem_flash_p (rtx);
  extern bool avr_mem_memx_p (rtx);
  extern bool avr_load_libgcc_p (rtx);
*************** extern bool avr_have_dimode;
*** 158,163 ****
--- 163,169 ----
  namespace gcc { class context; }
  class rtl_opt_pass;
  
+ extern rtl_opt_pass *make_avr_pass_fuse_add (gcc::context *);
  extern rtl_opt_pass *make_avr_pass_pre_proep (gcc::context *);
  extern rtl_opt_pass *make_avr_pass_recompute_notes (gcc::context *);
  extern rtl_opt_pass *make_avr_pass_casesi (gcc::context *);
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr-stdint.h gcc-14.1.0/gcc/config/avr/avr-stdint.h
*** gcc-13.2.0/gcc/config/avr/avr-stdint.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr-stdint.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for <stdint.h> types on systems using newlib.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for <stdint.h> types on systems using newlib.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr.cc gcc-14.1.0/gcc/config/avr/avr.cc
*** gcc-13.2.0/gcc/config/avr/avr.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines for insn-output.cc for ATMEL AVR micro controllers
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Denis Chertykov (chertykov@gmail.com)
  
     This file is part of GCC.
--- 1,5 ----
  /* Subroutines for insn-output.cc for ATMEL AVR micro controllers
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Denis Chertykov (chertykov@gmail.com)
  
     This file is part of GCC.
*************** static avr_addr_t avr_addr;
*** 147,158 ****
  
  /* Prototypes for local helper functions.  */
  
! static const char* out_movqi_r_mr (rtx_insn *, rtx[], int*);
! static const char* out_movhi_r_mr (rtx_insn *, rtx[], int*);
! static const char* out_movsi_r_mr (rtx_insn *, rtx[], int*);
! static const char* out_movqi_mr_r (rtx_insn *, rtx[], int*);
! static const char* out_movhi_mr_r (rtx_insn *, rtx[], int*);
! static const char* out_movsi_mr_r (rtx_insn *, rtx[], int*);
  
  static int get_sequence_length (rtx_insn *insns);
  static int sequent_regs_live (void);
--- 147,158 ----
  
  /* Prototypes for local helper functions.  */
  
! static const char *out_movqi_r_mr (rtx_insn *, rtx[], int *);
! static const char *out_movhi_r_mr (rtx_insn *, rtx[], int *);
! static const char *out_movsi_r_mr (rtx_insn *, rtx[], int *);
! static const char *out_movqi_mr_r (rtx_insn *, rtx[], int *);
! static const char *out_movhi_mr_r (rtx_insn *, rtx[], int *);
! static const char *out_movsi_mr_r (rtx_insn *, rtx[], int *);
  
  static int get_sequence_length (rtx_insn *insns);
  static int sequent_regs_live (void);
*************** static const char *ptrreg_to_str (int);
*** 160,180 ****
  static const char *cond_string (enum rtx_code);
  static int avr_num_arg_regs (machine_mode, const_tree);
  static int avr_operand_rtx_cost (rtx, machine_mode, enum rtx_code,
!                                  int, bool);
! static void output_reload_in_const (rtx*, rtx, int*, bool);
! static struct machine_function * avr_init_machine_status (void);
  
  
  /* Prototypes for hook implementors if needed before their implementation.  */
  
! static bool avr_rtx_costs (rtx, machine_mode, int, int, int*, bool);
  
  
! /* Allocate registers from r25 to r8 for parameters for function calls.  */
! #define FIRST_CUM_REG 26
  
  /* Last call saved register */
! #define LAST_CALLEE_SAVED_REG (AVR_TINY ? 19 : 17)
  
  /* Implicit target register of LPM instruction (R0) */
  extern GTY(()) rtx lpm_reg_rtx;
--- 160,182 ----
  static const char *cond_string (enum rtx_code);
  static int avr_num_arg_regs (machine_mode, const_tree);
  static int avr_operand_rtx_cost (rtx, machine_mode, enum rtx_code,
! 				 int, bool);
! static void output_reload_in_const (rtx *, rtx, int *, bool);
! static struct machine_function *avr_init_machine_status (void);
! static bool _reg_unused_after (rtx_insn *insn, rtx reg, bool look_at_insn);
  
  
  /* Prototypes for hook implementors if needed before their implementation.  */
  
! static bool avr_rtx_costs (rtx, machine_mode, int, int, int *, bool);
  
  
! /* Allocate registers from r25 to r8 for parameters for function calls
!    resp. r25 to r20 for reduced Tiny.  */
! #define FIRST_CUM_REG REG_26
  
  /* Last call saved register */
! #define LAST_CALLEE_SAVED_REG (AVR_TINY ? REG_19 : REG_17)
  
  /* Implicit target register of LPM instruction (R0) */
  extern GTY(()) rtx lpm_reg_rtx;
*************** extern GTY(()) rtx cc_reg_rtx;
*** 197,204 ****
  rtx cc_reg_rtx;
  
  /* RTXs for all general purpose registers as QImode */
! extern GTY(()) rtx all_regs_rtx[32];
! rtx all_regs_rtx[32];
  
  /* SREG, the processor status */
  extern GTY(()) rtx sreg_rtx;
--- 199,206 ----
  rtx cc_reg_rtx;
  
  /* RTXs for all general purpose registers as QImode */
! extern GTY(()) rtx all_regs_rtx[REG_32];
! rtx all_regs_rtx[REG_32];
  
  /* SREG, the processor status */
  extern GTY(()) rtx sreg_rtx;
*************** static GTY(()) rtx xstring_e;
*** 220,225 ****
--- 222,228 ----
  
  /* Current architecture.  */
  const avr_arch_t *avr_arch;
+ enum avr_arch_id avr_arch_index;
  
  /* Unnamed sections associated to __attribute__((progmem)) aka. PROGMEM
     or to address space __flash* or __memx.  Only used as singletons inside
*************** static GTY(()) section *progmem_section[
*** 229,243 ****
  /* Condition for insns/expanders from avr-dimode.md.  */
  bool avr_have_dimode = true;
  
! /* To track if code will use .bss and/or .data.  */
  bool avr_need_clear_bss_p = false;
  bool avr_need_copy_data_p = false;
  
  
  /* Transform UP into lowercase and write the result to LO.
     You must provide enough space for LO.  Return LO.  */
  
! static char*
  avr_tolower (char *lo, const char *up)
  {
    char *lo0 = lo;
--- 232,247 ----
  /* Condition for insns/expanders from avr-dimode.md.  */
  bool avr_have_dimode = true;
  
! /* To track if code will use .bss, .data, .rodata.  */
  bool avr_need_clear_bss_p = false;
  bool avr_need_copy_data_p = false;
+ bool avr_has_rodata_p = false;
  
  
  /* Transform UP into lowercase and write the result to LO.
     You must provide enough space for LO.  Return LO.  */
  
! static char *
  avr_tolower (char *lo, const char *up)
  {
    char *lo0 = lo;
*************** avr_popcount_each_byte (rtx xval, int n_
*** 270,276 ****
        unsigned int val8 = UINTVAL (xval8) & GET_MODE_MASK (QImode);
  
        if ((pop_mask & (1 << popcount_hwi (val8))) == 0)
!         return false;
      }
  
    return true;
--- 274,305 ----
        unsigned int val8 = UINTVAL (xval8) & GET_MODE_MASK (QImode);
  
        if ((pop_mask & (1 << popcount_hwi (val8))) == 0)
! 	return false;
!     }
! 
!   return true;
! }
! 
! 
! /* Constraint helper function.  XVAL is a CONST_INT.  Return true if we
!    can perform XOR without a clobber reg, provided the operation is on
!    a d-register.  This means each byte is in { 0, 0xff, 0x80 }.  */
! 
! bool
! avr_xor_noclobber_dconst (rtx xval, int n_bytes)
! {
!   machine_mode mode = GET_MODE (xval);
! 
!   if (VOIDmode == mode)
!     mode = SImode;
! 
!   for (int i = 0; i < n_bytes; ++i)
!     {
!       rtx xval8 = simplify_gen_subreg (QImode, xval, mode, i);
!       unsigned int val8 = UINTVAL (xval8) & GET_MODE_MASK (QImode);
! 
!       if (val8 != 0 && val8 != 0xff && val8 != 0x80)
! 	return false;
      }
  
    return true;
*************** avr_to_int_mode (rtx x)
*** 290,295 ****
--- 319,335 ----
      : simplify_gen_subreg (int_mode_for_mode (mode).require (), x, mode, 0);
  }
  
+ 
+ /* Return true if hard register REG supports the ADIW and SBIW instructions.  */
+ 
+ bool
+ avr_adiw_reg_p (rtx reg)
+ {
+   return (AVR_HAVE_ADIW
+ 	  && test_hard_reg_class (ADDW_REGS, reg));
+ }
+ 
+ 
  namespace {
  
  static const pass_data avr_pass_data_recompute_notes =
*************** public:
*** 315,321 ****
      this->name = name;
    }
  
!   virtual unsigned int execute (function*)
    {
      df_note_add_problem ();
      df_analyze ();
--- 355,361 ----
      this->name = name;
    }
  
!   virtual unsigned int execute (function *)
    {
      df_note_add_problem ();
      df_analyze ();
*************** public:
*** 347,355 ****
      this->name = name;
    }
  
!   void avr_rest_of_handle_casesi (function*);
  
!   virtual bool gate (function*) { return optimize > 0; }
  
    virtual unsigned int execute (function *func)
    {
--- 387,395 ----
      this->name = name;
    }
  
!   void avr_rest_of_handle_casesi (function *);
  
!   virtual bool gate (function *) { return optimize > 0; }
  
    virtual unsigned int execute (function *func)
    {
*************** public:
*** 382,390 ****
      this->name = name;
    }
  
!   void avr_rest_of_handle_ifelse (function*);
  
!   virtual bool gate (function*) { return optimize > 0; }
  
    virtual unsigned int execute (function *func)
    {
--- 422,430 ----
      this->name = name;
    }
  
!   void avr_rest_of_handle_ifelse (function *);
  
!   virtual bool gate (function *) { return optimize > 0; }
  
    virtual unsigned int execute (function *func)
    {
*************** public:
*** 396,414 ****
  
  } // anon namespace
  
! rtl_opt_pass*
  make_avr_pass_recompute_notes (gcc::context *ctxt)
  {
    return new avr_pass_recompute_notes (ctxt, "avr-notes-free-cfg");
  }
  
! rtl_opt_pass*
  make_avr_pass_casesi (gcc::context *ctxt)
  {
    return new avr_pass_casesi (ctxt, "avr-casesi");
  }
  
! rtl_opt_pass*
  make_avr_pass_ifelse (gcc::context *ctxt)
  {
    return new avr_pass_ifelse (ctxt, "avr-ifelse");
--- 436,454 ----
  
  } // anon namespace
  
! rtl_opt_pass *
  make_avr_pass_recompute_notes (gcc::context *ctxt)
  {
    return new avr_pass_recompute_notes (ctxt, "avr-notes-free-cfg");
  }
  
! rtl_opt_pass *
  make_avr_pass_casesi (gcc::context *ctxt)
  {
    return new avr_pass_casesi (ctxt, "avr-casesi");
  }
  
! rtl_opt_pass *
  make_avr_pass_ifelse (gcc::context *ctxt)
  {
    return new avr_pass_ifelse (ctxt, "avr-ifelse");
*************** make_avr_pass_ifelse (gcc::context *ctxt
*** 417,427 ****
  
  /* Make one parallel insn with all the patterns from insns i[0]..i[5].  */
  
! static rtx_insn*
  avr_parallel_insn_from_insns (rtx_insn *i[5])
  {
    rtvec vec = gen_rtvec (5, PATTERN (i[0]), PATTERN (i[1]), PATTERN (i[2]),
!                          PATTERN (i[3]), PATTERN (i[4]));
    start_sequence();
    emit (gen_rtx_PARALLEL (VOIDmode, vec));
    rtx_insn *insn = get_insns();
--- 457,467 ----
  
  /* Make one parallel insn with all the patterns from insns i[0]..i[5].  */
  
! static rtx_insn *
  avr_parallel_insn_from_insns (rtx_insn *i[5])
  {
    rtvec vec = gen_rtvec (5, PATTERN (i[0]), PATTERN (i[1]), PATTERN (i[2]),
! 			 PATTERN (i[3]), PATTERN (i[4]));
    start_sequence();
    emit (gen_rtx_PARALLEL (VOIDmode, vec));
    rtx_insn *insn = get_insns();
*************** avr_is_casesi_sequence (basic_block bb,
*** 447,467 ****
       the test, harvest respective insns to INSNS[0..4].  */
  
    if (!(JUMP_P (insns[4] = insn)
!         // casesi is the only insn that comes up with UNSPEC_INDEX_JMP,
!         // hence the following test ensures that we are actually dealing
!         // with code from casesi.
!         && (set_4 = single_set (insns[4]))
!         && UNSPEC == GET_CODE (SET_SRC (set_4))
!         && UNSPEC_INDEX_JMP == XINT (SET_SRC (set_4), 1)
  
!         && (insns[3] = prev_real_insn (insns[4]))
!         && (insns[2] = prev_real_insn (insns[3]))
!         && (insns[1] = prev_real_insn (insns[2]))
  
!         // Insn prior to casesi.
!         && (insns[0] = prev_real_insn (insns[1]))
!         && (set_0 = single_set (insns[0]))
!         && extend_operator (SET_SRC (set_0), SImode)))
      {
        return false;
      }
--- 487,507 ----
       the test, harvest respective insns to INSNS[0..4].  */
  
    if (!(JUMP_P (insns[4] = insn)
! 	// casesi is the only insn that comes up with UNSPEC_INDEX_JMP,
! 	// hence the following test ensures that we are actually dealing
! 	// with code from casesi.
! 	&& (set_4 = single_set (insns[4]))
! 	&& UNSPEC == GET_CODE (SET_SRC (set_4))
! 	&& UNSPEC_INDEX_JMP == XINT (SET_SRC (set_4), 1)
  
! 	&& (insns[3] = prev_real_insn (insns[4]))
! 	&& (insns[2] = prev_real_insn (insns[3]))
! 	&& (insns[1] = prev_real_insn (insns[2]))
  
! 	// Insn prior to casesi.
! 	&& (insns[0] = prev_real_insn (insns[1]))
! 	&& (set_0 = single_set (insns[0]))
! 	&& extend_operator (SET_SRC (set_0), SImode)))
      {
        return false;
      }
*************** avr_is_casesi_sequence (basic_block bb,
*** 469,477 ****
    if (dump_file)
      {
        fprintf (dump_file, ";; Sequence from casesi in "
!                "[bb %d]:\n\n", bb->index);
        for (int i = 0; i < 5; i++)
!         print_rtl_single (dump_file, insns[i]);
      }
  
    /* We have to deal with quite some operands.  Extracting them by hand
--- 509,517 ----
    if (dump_file)
      {
        fprintf (dump_file, ";; Sequence from casesi in "
! 	       "[bb %d]:\n\n", bb->index);
        for (int i = 0; i < 5; i++)
! 	print_rtl_single (dump_file, insns[i]);
      }
  
    /* We have to deal with quite some operands.  Extracting them by hand
*************** avr_is_casesi_sequence (basic_block bb,
*** 489,501 ****
    if (INSN_CODE (xinsn) < 0)
      {
        if (dump_file)
!         fprintf (dump_file, ";; Sequence not recognized, giving up.\n\n");
  
        return false;
      }
  
    gcc_assert (CODE_FOR_casesi_qi_sequence == INSN_CODE (xinsn)
!               || CODE_FOR_casesi_hi_sequence == INSN_CODE (xinsn));
  
    extract_insn (xinsn);
  
--- 529,541 ----
    if (INSN_CODE (xinsn) < 0)
      {
        if (dump_file)
! 	fprintf (dump_file, ";; Sequence not recognized, giving up.\n\n");
  
        return false;
      }
  
    gcc_assert (CODE_FOR_casesi_qi_sequence == INSN_CODE (xinsn)
! 	      || CODE_FOR_casesi_hi_sequence == INSN_CODE (xinsn));
  
    extract_insn (xinsn);
  
*************** avr_is_casesi_sequence (basic_block bb,
*** 508,514 ****
      {
        fprintf (dump_file, ";; Operands extracted:\n");
        for (int i = 0; i < recog_data.n_operands; i++)
!         avr_fdump (dump_file, ";; $%d = %r\n", i, recog_data.operand[i]);
        fprintf (dump_file, "\n");
      }
  
--- 548,554 ----
      {
        fprintf (dump_file, ";; Operands extracted:\n");
        for (int i = 0; i < recog_data.n_operands; i++)
! 	avr_fdump (dump_file, ";; $%d = %r\n", i, recog_data.operand[i]);
        fprintf (dump_file, "\n");
      }
  
*************** avr_casei_sequence_check_operands (rtx *
*** 529,535 ****
  
    if (AVR_HAVE_EIJMP_EICALL
        // The last clobber op of the tablejump.
!       && xop[8] == all_regs_rtx[24])
      {
        // $6 is: (subreg:SI ($5) 0)
        sub_5 = xop[6];
--- 569,575 ----
  
    if (AVR_HAVE_EIJMP_EICALL
        // The last clobber op of the tablejump.
!       && xop[8] == all_regs_rtx[REG_24])
      {
        // $6 is: (subreg:SI ($5) 0)
        sub_5 = xop[6];
*************** avr_casei_sequence_check_operands (rtx *
*** 537,543 ****
  
    if (!AVR_HAVE_EIJMP_EICALL
        // $6 is: (plus:HI (subreg:SI ($5) 0)
!       //                 (label_ref ($3)))
        && PLUS == GET_CODE (xop[6])
        && LABEL_REF == GET_CODE (XEXP (xop[6], 1))
        && rtx_equal_p (xop[3], XEXP (XEXP (xop[6], 1), 0))
--- 577,583 ----
  
    if (!AVR_HAVE_EIJMP_EICALL
        // $6 is: (plus:HI (subreg:SI ($5) 0)
!       //		 (label_ref ($3)))
        && PLUS == GET_CODE (xop[6])
        && LABEL_REF == GET_CODE (XEXP (xop[6], 1))
        && rtx_equal_p (xop[3], XEXP (XEXP (xop[6], 1), 0))
*************** avr_casei_sequence_check_operands (rtx *
*** 572,578 ****
        $4: Label if out-of-bounds.
        $5: $0 + $1.
        $6: 3-byte PC: subreg:HI ($5) + label_ref ($3)
!           2-byte PC: subreg:HI ($5)
        $7: HI reg index into table (Z or pseudo)
        $8: R24 or const0_rtx (to be clobbered)
        $9: Extension to SImode of an 8-bit or 16-bit integer register $10.
--- 612,618 ----
        $4: Label if out-of-bounds.
        $5: $0 + $1.
        $6: 3-byte PC: subreg:HI ($5) + label_ref ($3)
! 	  2-byte PC: subreg:HI ($5)
        $7: HI reg index into table (Z or pseudo)
        $8: R24 or const0_rtx (to be clobbered)
        $9: Extension to SImode of an 8-bit or 16-bit integer register $10.
*************** avr_optimize_casesi (rtx_insn *insns[5],
*** 615,629 ****
        // ok
      }
    else if (ZERO_EXTEND == code
!            && low_idx >= 0
!            && (unsigned) hig_idx <= umax)
      {
        // ok
      }
    else
      {
        if (dump_file)
!         fprintf (dump_file, ";; Case ranges too big, giving up.\n\n");
        return;
      }
  
--- 655,669 ----
        // ok
      }
    else if (ZERO_EXTEND == code
! 	   && low_idx >= 0
! 	   && (unsigned) hig_idx <= umax)
      {
        // ok
      }
    else
      {
        if (dump_file)
! 	fprintf (dump_file, ";; Case ranges too big, giving up.\n\n");
        return;
      }
  
*************** avr_optimize_casesi (rtx_insn *insns[5],
*** 633,640 ****
  
    start_sequence();
  
-   rtx_insn *seq1, *seq2, *last1, *last2;
- 
    rtx reg = copy_to_mode_reg (mode, xop[10]);
  
    rtx (*gen_add)(rtx,rtx,rtx) = QImode == mode ? gen_addqi3 : gen_addhi3;
--- 673,678 ----
*************** avr_optimize_casesi (rtx_insn *insns[5],
*** 644,655 ****
    emit_insn (gen_add (reg, reg, gen_int_mode (-low_idx, mode)));
    rtx op0 = reg; rtx op1 = gen_int_mode (num_idx, mode);
    rtx labelref = copy_rtx (xop[4]);
!   emit_jump_insn (gen_cbranch (gen_rtx_fmt_ee (GTU, VOIDmode, op0, op1),
!                                op0, op1,
!                                labelref));
  
!   seq1 = get_insns();
!   last1 = get_last_insn();
    end_sequence();
  
    emit_insn_after (seq1, insns[2]);
--- 682,695 ----
    emit_insn (gen_add (reg, reg, gen_int_mode (-low_idx, mode)));
    rtx op0 = reg; rtx op1 = gen_int_mode (num_idx, mode);
    rtx labelref = copy_rtx (xop[4]);
!   rtx xbranch = gen_cbranch (gen_rtx_fmt_ee (GTU, VOIDmode, op0, op1),
! 			     op0, op1, labelref);
!   rtx_insn *cbranch = emit_jump_insn (xbranch);
!   JUMP_LABEL (cbranch) = xop[4];
!   ++LABEL_NUSES (xop[4]);
  
!   rtx_insn *seq1 = get_insns();
!   rtx_insn *last1 = get_last_insn();
    end_sequence();
  
    emit_insn_after (seq1, insns[2]);
*************** avr_optimize_casesi (rtx_insn *insns[5],
*** 669,676 ****
  
    emit_insn (pat_4);
  
!   seq2 = get_insns();
!   last2 = get_last_insn();
    end_sequence();
  
    emit_insn_after (seq2, insns[3]);
--- 709,716 ----
  
    emit_insn (pat_4);
  
!   rtx_insn *seq2 = get_insns();
!   rtx_insn *last2 = get_last_insn();
    end_sequence();
  
    emit_insn_after (seq2, insns[3]);
*************** avr_optimize_casesi (rtx_insn *insns[5],
*** 680,700 ****
        fprintf (dump_file, ";; New insns: ");
  
        for (rtx_insn *insn = seq1; ; insn = NEXT_INSN (insn))
!         {
!           fprintf (dump_file, "%d, ", INSN_UID (insn));
!           if (insn == last1)
!             break;
!         }
        for (rtx_insn *insn = seq2; ; insn = NEXT_INSN (insn))
!         {
!           fprintf (dump_file, "%d%s", INSN_UID (insn),
!                    insn == last2 ? ".\n\n" : ", ");
!           if (insn == last2)
!             break;
!         }
  
        fprintf (dump_file, ";; Deleting insns: %d, %d, %d.\n\n",
!                INSN_UID (insns[1]), INSN_UID (insns[2]), INSN_UID (insns[3]));
      }
  
    // Pseudodelete the SImode and subreg of SImode insns.  We don't care
--- 720,740 ----
        fprintf (dump_file, ";; New insns: ");
  
        for (rtx_insn *insn = seq1; ; insn = NEXT_INSN (insn))
! 	{
! 	  fprintf (dump_file, "%d, ", INSN_UID (insn));
! 	  if (insn == last1)
! 	    break;
! 	}
        for (rtx_insn *insn = seq2; ; insn = NEXT_INSN (insn))
! 	{
! 	  fprintf (dump_file, "%d%s", INSN_UID (insn),
! 		   insn == last2 ? ".\n\n" : ", ");
! 	  if (insn == last2)
! 	    break;
! 	}
  
        fprintf (dump_file, ";; Deleting insns: %d, %d, %d.\n\n",
! 	       INSN_UID (insns[1]), INSN_UID (insns[2]), INSN_UID (insns[3]));
      }
  
    // Pseudodelete the SImode and subreg of SImode insns.  We don't care
*************** avr_pass_casesi::avr_rest_of_handle_case
*** 717,728 ****
        rtx_insn *insn, *insns[5];
  
        FOR_BB_INSNS (bb, insn)
!         {
!           if (avr_is_casesi_sequence (bb, insn, insns))
!             {
!               avr_optimize_casesi (insns, recog_data.operand);
!             }
!         }
      }
  }
  
--- 757,768 ----
        rtx_insn *insn, *insns[5];
  
        FOR_BB_INSNS (bb, insn)
! 	{
! 	  if (avr_is_casesi_sequence (bb, insn, insns))
! 	    {
! 	      avr_optimize_casesi (insns, recog_data.operand);
! 	    }
! 	}
      }
  }
  
*************** avr_redundant_compare (enum rtx_code con
*** 858,864 ****
     Hence, run a mini pass right before split2 which introduces REG_CC.  */
  
  void
! avr_pass_ifelse::avr_rest_of_handle_ifelse (function*)
  {
    rtx_insn *next_insn;
  
--- 898,904 ----
     Hence, run a mini pass right before split2 which introduces REG_CC.  */
  
  void
! avr_pass_ifelse::avr_rest_of_handle_ifelse (function *)
  {
    rtx_insn *next_insn;
  
*************** avr_set_core_architecture (void)
*** 1041,1067 ****
    for (const avr_mcu_t *mcu = avr_mcu_types; ; mcu++)
      {
        if (mcu->name == NULL)
!         {
!           /* Reached the end of `avr_mcu_types'.  This should actually never
!              happen as options are provided by device-specs.  It could be a
!              typo in a device-specs or calling the compiler proper directly
!              with -mmcu=<device>. */
  
!           error ("unknown core architecture %qs specified with %qs",
!                  avr_mmcu, "-mmcu=");
!           avr_inform_core_architectures ();
!           break;
!         }
        else if (strcmp (mcu->name, avr_mmcu) == 0
!                // Is this a proper architecture ?
  	       && mcu->macro == NULL)
!         {
!           avr_arch = &avr_arch_types[mcu->arch_id];
!           if (avr_n_flash < 0)
!             avr_n_flash = 1 + (mcu->flash_size - 1) / 0x10000;
  
!           return true;
!         }
      }
  
    return false;
--- 1081,1108 ----
    for (const avr_mcu_t *mcu = avr_mcu_types; ; mcu++)
      {
        if (mcu->name == NULL)
! 	{
! 	  /* Reached the end of `avr_mcu_types'.  This should actually never
! 	     happen as options are provided by device-specs.  It could be a
! 	     typo in a device-specs or calling the compiler proper directly
! 	     with -mmcu=<device>. */
  
! 	  error ("unknown core architecture %qs specified with %qs",
! 		 avr_mmcu, "-mmcu=");
! 	  avr_inform_core_architectures ();
! 	  break;
! 	}
        else if (strcmp (mcu->name, avr_mmcu) == 0
! 	       // Is this a proper architecture ?
  	       && mcu->macro == NULL)
! 	{
! 	  avr_arch = &avr_arch_types[mcu->arch_id];
! 	  avr_arch_index = mcu->arch_id;
! 	  if (avr_n_flash < 0)
! 	    avr_n_flash = 1 + (mcu->flash_size - 1) / 0x10000;
  
! 	  return true;
! 	}
      }
  
    return false;
*************** avr_option_override (void)
*** 1095,1100 ****
--- 1136,1145 ----
        flag_omit_frame_pointer = 0;
      }
  
+   /* Disable flag_delete_null_pointer_checks if zero is a valid address. */
+   if (targetm.addr_space.zero_address_valid (ADDR_SPACE_GENERIC))
+     flag_delete_null_pointer_checks = 0;
+ 
    if (flag_pic == 1)
      warning (OPT_fpic, "%<-fpic%> is not supported");
    if (flag_pic == 2)
*************** avr_init_machine_status (void)
*** 1151,1157 ****
  void
  avr_init_expanders (void)
  {
!   for (int regno = 0; regno < 32; regno ++)
      all_regs_rtx[regno] = gen_rtx_REG (QImode, regno);
  
    lpm_reg_rtx  = all_regs_rtx[LPM_REGNO];
--- 1196,1202 ----
  void
  avr_init_expanders (void)
  {
!   for (int regno = REG_0; regno < REG_32; regno ++)
      all_regs_rtx[regno] = gen_rtx_REG (QImode, regno);
  
    lpm_reg_rtx  = all_regs_rtx[LPM_REGNO];
*************** bool
*** 1269,1275 ****
  avr_mem_flash_p (rtx x)
  {
    return (MEM_P (x)
!           && !ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x)));
  }
  
  
--- 1314,1320 ----
  avr_mem_flash_p (rtx x)
  {
    return (MEM_P (x)
! 	  && !ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x)));
  }
  
  
*************** bool
*** 1280,1314 ****
  avr_mem_memx_p (rtx x)
  {
    return (MEM_P (x)
!           && ADDR_SPACE_MEMX == MEM_ADDR_SPACE (x));
  }
  
  
  /* A helper for the subsequent function attribute used to dig for
     attribute 'name' in a FUNCTION_DECL or FUNCTION_TYPE */
  
! static inline int
  avr_lookup_function_attribute1 (const_tree func, const char *name)
  {
    if (FUNCTION_DECL == TREE_CODE (func))
      {
        if (NULL_TREE != lookup_attribute (name, DECL_ATTRIBUTES (func)))
!         {
!           return true;
!         }
  
        func = TREE_TYPE (func);
      }
  
!   gcc_assert (TREE_CODE (func) == FUNCTION_TYPE
!               || TREE_CODE (func) == METHOD_TYPE);
  
    return NULL_TREE != lookup_attribute (name, TYPE_ATTRIBUTES (func));
  }
  
  /* Return nonzero if FUNC is a naked function.  */
  
! static int
  avr_naked_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "naked");
--- 1325,1358 ----
  avr_mem_memx_p (rtx x)
  {
    return (MEM_P (x)
! 	  && ADDR_SPACE_MEMX == MEM_ADDR_SPACE (x));
  }
  
  
  /* A helper for the subsequent function attribute used to dig for
     attribute 'name' in a FUNCTION_DECL or FUNCTION_TYPE */
  
! static inline bool
  avr_lookup_function_attribute1 (const_tree func, const char *name)
  {
    if (FUNCTION_DECL == TREE_CODE (func))
      {
        if (NULL_TREE != lookup_attribute (name, DECL_ATTRIBUTES (func)))
! 	{
! 	  return true;
! 	}
  
        func = TREE_TYPE (func);
      }
  
!   gcc_assert (FUNC_OR_METHOD_TYPE_P (func));
  
    return NULL_TREE != lookup_attribute (name, TYPE_ATTRIBUTES (func));
  }
  
  /* Return nonzero if FUNC is a naked function.  */
  
! static bool
  avr_naked_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "naked");
*************** avr_naked_function_p (tree func)
*** 1317,1323 ****
  /* Return nonzero if FUNC is an interrupt function as specified
     by the "interrupt" attribute.  */
  
! static int
  avr_interrupt_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "interrupt");
--- 1361,1367 ----
  /* Return nonzero if FUNC is an interrupt function as specified
     by the "interrupt" attribute.  */
  
! static bool
  avr_interrupt_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "interrupt");
*************** avr_interrupt_function_p (tree func)
*** 1326,1332 ****
  /* Return nonzero if FUNC is a signal function as specified
     by the "signal" attribute.  */
  
! static int
  avr_signal_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "signal");
--- 1370,1376 ----
  /* Return nonzero if FUNC is a signal function as specified
     by the "signal" attribute.  */
  
! static bool
  avr_signal_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "signal");
*************** avr_signal_function_p (tree func)
*** 1334,1340 ****
  
  /* Return nonzero if FUNC is an OS_task function.  */
  
! static int
  avr_OS_task_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "OS_task");
--- 1378,1384 ----
  
  /* Return nonzero if FUNC is an OS_task function.  */
  
! static bool
  avr_OS_task_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "OS_task");
*************** avr_OS_task_function_p (tree func)
*** 1342,1348 ****
  
  /* Return nonzero if FUNC is an OS_main function.  */
  
! static int
  avr_OS_main_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "OS_main");
--- 1386,1392 ----
  
  /* Return nonzero if FUNC is an OS_main function.  */
  
! static bool
  avr_OS_main_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "OS_main");
*************** avr_OS_main_function_p (tree func)
*** 1352,1358 ****
  /* Return nonzero if FUNC is a no_gccisr function as specified
     by the "no_gccisr" attribute.  */
  
! static int
  avr_no_gccisr_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "no_gccisr");
--- 1396,1402 ----
  /* Return nonzero if FUNC is a no_gccisr function as specified
     by the "no_gccisr" attribute.  */
  
! static bool
  avr_no_gccisr_function_p (tree func)
  {
    return avr_lookup_function_attribute1 (func, "no_gccisr");
*************** avr_set_current_function (tree decl)
*** 1400,1411 ****
    if (cfun->machine->is_OS_task
        && (cfun->machine->is_signal || cfun->machine->is_interrupt))
      error_at (loc, "function attributes %qs and %qs are mutually exclusive",
!               "OS_task", isr);
  
    if (cfun->machine->is_OS_main
        && (cfun->machine->is_signal || cfun->machine->is_interrupt))
      error_at (loc, "function attributes %qs and %qs are mutually exclusive",
!               "OS_main", isr);
  
    if (cfun->machine->is_interrupt || cfun->machine->is_signal)
      {
--- 1444,1455 ----
    if (cfun->machine->is_OS_task
        && (cfun->machine->is_signal || cfun->machine->is_interrupt))
      error_at (loc, "function attributes %qs and %qs are mutually exclusive",
! 	      "OS_task", isr);
  
    if (cfun->machine->is_OS_main
        && (cfun->machine->is_signal || cfun->machine->is_interrupt))
      error_at (loc, "function attributes %qs and %qs are mutually exclusive",
! 	      "OS_main", isr);
  
    if (cfun->machine->is_interrupt || cfun->machine->is_signal)
      {
*************** avr_set_current_function (tree decl)
*** 1414,1449 ****
        const char *name;
  
        name = DECL_ASSEMBLER_NAME_SET_P (decl)
!         ? IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
!         : IDENTIFIER_POINTER (DECL_NAME (decl));
  
        /* Skip a leading '*' that might still prefix the assembler name,
!          e.g. in non-LTO runs.  */
  
        name = default_strip_name_encoding (name);
  
        /* Interrupt handlers must be  void __vector (void)  functions.  */
  
        if (args && TREE_CODE (TREE_VALUE (args)) != VOID_TYPE)
!         error_at (loc, "%qs function cannot have arguments", isr);
  
        if (TREE_CODE (ret) != VOID_TYPE)
!         error_at (loc, "%qs function cannot return a value", isr);
  
  #if defined WITH_AVRLIBC
        /* Silently ignore 'signal' if 'interrupt' is present.  AVR-LibC startet
!          using this when it switched from SIGNAL and INTERRUPT to ISR.  */
  
        if (cfun->machine->is_interrupt)
!         cfun->machine->is_signal = 0;
  
        /* If the function has the 'signal' or 'interrupt' attribute, ensure
!          that the name of the function is "__vector_NN" so as to catch
!          when the user misspells the vector name.  */
  
        if (!startswith (name, "__vector"))
!         warning_at (loc, OPT_Wmisspelled_isr, "%qs appears to be a misspelled "
!                     "%qs handler, missing %<__vector%> prefix", name, isr);
  #endif // AVR-LibC naming conventions
      }
  
--- 1458,1493 ----
        const char *name;
  
        name = DECL_ASSEMBLER_NAME_SET_P (decl)
! 	? IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
! 	: IDENTIFIER_POINTER (DECL_NAME (decl));
  
        /* Skip a leading '*' that might still prefix the assembler name,
! 	 e.g. in non-LTO runs.  */
  
        name = default_strip_name_encoding (name);
  
        /* Interrupt handlers must be  void __vector (void)  functions.  */
  
        if (args && TREE_CODE (TREE_VALUE (args)) != VOID_TYPE)
! 	error_at (loc, "%qs function cannot have arguments", isr);
  
        if (TREE_CODE (ret) != VOID_TYPE)
! 	error_at (loc, "%qs function cannot return a value", isr);
  
  #if defined WITH_AVRLIBC
        /* Silently ignore 'signal' if 'interrupt' is present.  AVR-LibC startet
! 	 using this when it switched from SIGNAL and INTERRUPT to ISR.  */
  
        if (cfun->machine->is_interrupt)
! 	cfun->machine->is_signal = 0;
  
        /* If the function has the 'signal' or 'interrupt' attribute, ensure
! 	 that the name of the function is "__vector_NN" so as to catch
! 	 when the user misspells the vector name.  */
  
        if (!startswith (name, "__vector"))
! 	warning_at (loc, OPT_Wmisspelled_isr, "%qs appears to be a misspelled "
! 		    "%qs handler, missing %<__vector%> prefix", name, isr);
  #endif // AVR-LibC naming conventions
      }
  
*************** avr_set_current_function (tree decl)
*** 1451,1463 ****
    // Common problem is using "ISR" without first including avr/interrupt.h.
    const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
    name = default_strip_name_encoding (name);
!   if (strcmp ("ISR", name) == 0
!       || strcmp ("INTERRUPT", name) == 0
!       || strcmp ("SIGNAL", name) == 0)
      {
        warning_at (loc, OPT_Wmisspelled_isr, "%qs is a reserved identifier"
!                   " in AVR-LibC.  Consider %<#include <avr/interrupt.h>%>"
!                   " before using the %qs macro", name, name);
      }
  #endif // AVR-LibC naming conventions
  
--- 1495,1513 ----
    // Common problem is using "ISR" without first including avr/interrupt.h.
    const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
    name = default_strip_name_encoding (name);
!   if (strcmp ("ISR", name) == 0)
      {
        warning_at (loc, OPT_Wmisspelled_isr, "%qs is a reserved identifier"
! 		  " in AVR-LibC.  Consider %<#include <avr/interrupt.h>%>"
! 		  " before using the %qs macro", name, name);
!     }
!   if (strcmp ("INTERRUPT", name) == 0
!       || strcmp ("SIGNAL", name) == 0)
!     {
!       warning_at (loc, OPT_Wmisspelled_isr, "%qs is a deprecated identifier"
! 		  " in AVR-LibC.  Consider %<#include <avr/interrupt.h>%>"
! 		  " or %<#include <compat/deprecated.h>%>"
! 		  " before using the %qs macro", name, name);
      }
  #endif // AVR-LibC naming conventions
  
*************** avr_accumulate_outgoing_args (void)
*** 1476,1490 ****
      return TARGET_ACCUMULATE_OUTGOING_ARGS;
  
    /* FIXME: For setjmp and in avr_builtin_setjmp_frame_value we don't know
!         what offset is correct.  In some cases it is relative to
!         virtual_outgoing_args_rtx and in others it is relative to
!         virtual_stack_vars_rtx.  For example code see
!             gcc.c-torture/execute/built-in-setjmp.c
!             gcc.c-torture/execute/builtins/sprintf-chk.c   */
  
    return (TARGET_ACCUMULATE_OUTGOING_ARGS
!           && !(cfun->calls_setjmp
!                || cfun->has_nonlocal_label));
  }
  
  
--- 1526,1540 ----
      return TARGET_ACCUMULATE_OUTGOING_ARGS;
  
    /* FIXME: For setjmp and in avr_builtin_setjmp_frame_value we don't know
! 	what offset is correct.  In some cases it is relative to
! 	virtual_outgoing_args_rtx and in others it is relative to
! 	virtual_stack_vars_rtx.  For example code see
! 	    gcc.c-torture/execute/built-in-setjmp.c
! 	    gcc.c-torture/execute/builtins/sprintf-chk.c   */
  
    return (TARGET_ACCUMULATE_OUTGOING_ARGS
! 	  && !(cfun->calls_setjmp
! 	       || cfun->has_nonlocal_label));
  }
  
  
*************** avr_outgoing_args_size (void)
*** 1498,1504 ****
  }
  
  
! /* Implement TARGET_STARTING_FRAME_OFFSET.  */
  /* This is the offset from the frame pointer register to the first stack slot
     that contains a variable living in the frame.  */
  
--- 1548,1554 ----
  }
  
  
! /* Implement `TARGET_STARTING_FRAME_OFFSET'.  */
  /* This is the offset from the frame pointer register to the first stack slot
     that contains a variable living in the frame.  */
  
*************** avr_starting_frame_offset (void)
*** 1515,1526 ****
  static int
  avr_regs_to_save (HARD_REG_SET *set)
  {
!   int count;
    int int_or_sig_p = cfun->machine->is_interrupt || cfun->machine->is_signal;
  
    if (set)
      CLEAR_HARD_REG_SET (*set);
-   count = 0;
  
    /* No need to save any registers if the function never returns or
       has the "OS_task" or "OS_main" attribute.  */
--- 1565,1575 ----
  static int
  avr_regs_to_save (HARD_REG_SET *set)
  {
!   int count = 0;
    int int_or_sig_p = cfun->machine->is_interrupt || cfun->machine->is_signal;
  
    if (set)
      CLEAR_HARD_REG_SET (*set);
  
    /* No need to save any registers if the function never returns or
       has the "OS_task" or "OS_main" attribute.  */
*************** avr_regs_to_save (HARD_REG_SET *set)
*** 1530,1555 ****
        || cfun->machine->is_OS_main)
      return 0;
  
!   for (int reg = 0; reg < 32; reg++)
      {
        /* Do not push/pop __tmp_reg__, __zero_reg__, as well as
!          any global register variables.  */
  
        if (fixed_regs[reg])
!         continue;
  
        if ((int_or_sig_p && !crtl->is_leaf && call_used_or_fixed_reg_p (reg))
!           || (df_regs_ever_live_p (reg)
!               && (int_or_sig_p || !call_used_or_fixed_reg_p (reg))
!               /* Don't record frame pointer registers here.  They are treated
!                  indivitually in prologue.  */
!               && !(frame_pointer_needed
!                    && (reg == REG_Y || reg == REG_Y + 1))))
!         {
!           if (set)
!             SET_HARD_REG_BIT (*set, reg);
!           count++;
!         }
      }
    return count;
  }
--- 1579,1604 ----
        || cfun->machine->is_OS_main)
      return 0;
  
!   for (int reg = REG_0; reg < REG_32; reg++)
      {
        /* Do not push/pop __tmp_reg__, __zero_reg__, as well as
! 	 any global register variables.  */
  
        if (fixed_regs[reg])
! 	continue;
  
        if ((int_or_sig_p && !crtl->is_leaf && call_used_or_fixed_reg_p (reg))
! 	  || (df_regs_ever_live_p (reg)
! 	      && (int_or_sig_p || !call_used_or_fixed_reg_p (reg))
! 	      /* Don't record frame pointer registers here.  They are treated
! 		 indivitually in prologue.  */
! 	      && !(frame_pointer_needed
! 		   && (reg == REG_Y || reg == REG_Y + 1))))
! 	{
! 	  if (set)
! 	    SET_HARD_REG_BIT (*set, reg);
! 	  count++;
! 	}
      }
    return count;
  }
*************** avr_allocate_stack_slots_for_args (void)
*** 1564,1576 ****
  }
  
  
  /* Return true if register FROM can be eliminated via register TO.  */
  
  static bool
! avr_can_eliminate (const int from ATTRIBUTE_UNUSED, const int to)
  {
    return ((frame_pointer_needed && to == FRAME_POINTER_REGNUM)
!           || !frame_pointer_needed);
  }
  
  
--- 1613,1626 ----
  }
  
  
+ /* Implement `TARGET_CAN_ELIMINATE'.  */
  /* Return true if register FROM can be eliminated via register TO.  */
  
  static bool
! avr_can_eliminate (const int /*from*/, const int to)
  {
    return ((frame_pointer_needed && to == FRAME_POINTER_REGNUM)
! 	  || !frame_pointer_needed);
  }
  
  
*************** avr_warn_func_return (tree decl)
*** 1585,1590 ****
--- 1635,1642 ----
    return !avr_naked_function_p (decl);
  }
  
+ 
+ /* Worker function for `INITIAL_ELIMINATION_OFFSET'.  */
  /* Compute offset between arg_pointer and frame_pointer.  */
  
  int
*************** avr_initial_elimination_offset (int from
*** 1602,1608 ****
        // by gasisr prologues.
        offset += avr_regs_to_save (NULL);
        return (get_frame_size () + avr_outgoing_args_size()
!               + avr_pc_size + 1 + offset);
      }
  }
  
--- 1654,1660 ----
        // by gasisr prologues.
        offset += avr_regs_to_save (NULL);
        return (get_frame_size () + avr_outgoing_args_size()
! 	      + avr_pc_size + 1 + offset);
      }
  }
  
*************** avr_build_builtin_va_list (void)
*** 1657,1662 ****
--- 1709,1715 ----
  }
  
  
+ /* Worker function for `INCOMING_RETURN_ADDR_RTX'.  */
  /* Return contents of MEM at frame pointer + stack size + 1 (+2 if 3-byte PC).
     This is return address of function.  */
  
*************** avr_return_addr_rtx (int count, rtx tem)
*** 1673,1679 ****
      {
        r = gen_rtx_SYMBOL_REF (Pmode, ".L__stack_usage+2");
        warning (0, "%<builtin_return_address%> contains only 2 bytes"
!                " of address");
      }
    else
      r = gen_rtx_SYMBOL_REF (Pmode, ".L__stack_usage+1");
--- 1726,1732 ----
      {
        r = gen_rtx_SYMBOL_REF (Pmode, ".L__stack_usage+2");
        warning (0, "%<builtin_return_address%> contains only 2 bytes"
! 	       " of address");
      }
    else
      r = gen_rtx_SYMBOL_REF (Pmode, ".L__stack_usage+1");
*************** int
*** 1692,1704 ****
  avr_simple_epilogue (void)
  {
    return (! frame_pointer_needed
!           && get_frame_size () == 0
!           && avr_outgoing_args_size() == 0
!           && avr_regs_to_save (NULL) == 0
!           && ! cfun->machine->is_interrupt
!           && ! cfun->machine->is_signal
!           && ! cfun->machine->is_naked
!           && ! TREE_THIS_VOLATILE (current_function_decl));
  }
  
  /* This function checks sequence of live registers.  */
--- 1745,1757 ----
  avr_simple_epilogue (void)
  {
    return (! frame_pointer_needed
! 	  && get_frame_size () == 0
! 	  && avr_outgoing_args_size() == 0
! 	  && avr_regs_to_save (NULL) == 0
! 	  && ! cfun->machine->is_interrupt
! 	  && ! cfun->machine->is_signal
! 	  && ! cfun->machine->is_naked
! 	  && ! TREE_THIS_VOLATILE (current_function_decl));
  }
  
  /* This function checks sequence of live registers.  */
*************** sequent_regs_live (void)
*** 1712,1756 ****
    for (int reg = 0; reg <= LAST_CALLEE_SAVED_REG; ++reg)
      {
        if (fixed_regs[reg])
!         {
!           /* Don't recognize sequences that contain global register
!              variables.  */
  
!           if (live_seq != 0)
!             return 0;
!           else
!             continue;
!         }
  
        if (!call_used_or_fixed_reg_p (reg))
!         {
!           if (df_regs_ever_live_p (reg))
!             {
!               ++live_seq;
!               ++cur_seq;
!             }
!           else
!             cur_seq = 0;
!         }
      }
  
    if (!frame_pointer_needed)
      {
        if (df_regs_ever_live_p (REG_Y))
!         {
!           ++live_seq;
!           ++cur_seq;
!         }
        else
!         cur_seq = 0;
  
        if (df_regs_ever_live_p (REG_Y + 1))
!         {
!           ++live_seq;
!           ++cur_seq;
!         }
        else
!         cur_seq = 0;
      }
    else
      {
--- 1765,1809 ----
    for (int reg = 0; reg <= LAST_CALLEE_SAVED_REG; ++reg)
      {
        if (fixed_regs[reg])
! 	{
! 	  /* Don't recognize sequences that contain global register
! 	     variables.  */
  
! 	  if (live_seq != 0)
! 	    return 0;
! 	  else
! 	    continue;
! 	}
  
        if (!call_used_or_fixed_reg_p (reg))
! 	{
! 	  if (df_regs_ever_live_p (reg))
! 	    {
! 	      ++live_seq;
! 	      ++cur_seq;
! 	    }
! 	  else
! 	    cur_seq = 0;
! 	}
      }
  
    if (!frame_pointer_needed)
      {
        if (df_regs_ever_live_p (REG_Y))
! 	{
! 	  ++live_seq;
! 	  ++cur_seq;
! 	}
        else
! 	cur_seq = 0;
  
        if (df_regs_ever_live_p (REG_Y + 1))
! 	{
! 	  ++live_seq;
! 	  ++cur_seq;
! 	}
        else
! 	cur_seq = 0;
      }
    else
      {
*************** sequent_regs_live (void)
*** 1760,1777 ****
    return (cur_seq == live_seq) ? live_seq : 0;
  }
  
  namespace {
  static const pass_data avr_pass_data_pre_proep =
  {
    RTL_PASS,      // type
!   "",            // name (will be patched)
    OPTGROUP_NONE, // optinfo_flags
    TV_DF_SCAN,    // tv_id
!   0,             // properties_required
!   0,             // properties_provided
!   0,             // properties_destroyed
!   0,             // todo_flags_start
!   0              // todo_flags_finish
  };
  
  
--- 1813,2409 ----
    return (cur_seq == live_seq) ? live_seq : 0;
  }
  
+ 
+ namespace {
+ static const pass_data avr_pass_data_fuse_add =
+ {
+   RTL_PASS,	    // type
+   "",		    // name (will be patched)
+   OPTGROUP_NONE,    // optinfo_flags
+   TV_DF_SCAN,	    // tv_id
+   0,		    // properties_required
+   0,		    // properties_provided
+   0,		    // properties_destroyed
+   0,		    // todo_flags_start
+   TODO_df_finish    // todo_flags_finish
+ };
+ 
+ 
+ class avr_pass_fuse_add : public rtl_opt_pass
+ {
+ public:
+   avr_pass_fuse_add (gcc::context *ctxt, const char *name)
+     : rtl_opt_pass (avr_pass_data_fuse_add, ctxt)
+   {
+     this->name = name;
+   }
+ 
+   virtual bool gate (function *) { return optimize && avr_fuse_add > 0; }
+ 
+   virtual unsigned int execute (function *);
+ 
+   struct Some_Insn
+   {
+     rtx_insn *insn = nullptr;
+     rtx dest, src;
+     bool valid () const { return insn != nullptr; }
+     void set_deleted ()
+     {
+       gcc_assert (insn);
+       SET_INSN_DELETED (insn);
+       insn = nullptr;
+     }
+   };
+ 
+   // If .insn is not NULL, then this is a  reg:HI += const_int
+   // of an address register.
+   struct Add_Insn : Some_Insn
+   {
+     rtx addend;
+     int regno;
+     Add_Insn () {}
+     Add_Insn (rtx_insn *insn);
+   };
+ 
+   // If .insn is not NULL, then this sets an address register
+   // to a constant value.
+   struct Ldi_Insn : Some_Insn
+   {
+     int regno;
+     Ldi_Insn () {}
+     Ldi_Insn (rtx_insn *insn);
+   };
+ 
+   // If .insn is not NULL, then this is a load or store insn where the
+   // address is REG or POST_INC with an address register.
+   struct Mem_Insn : Some_Insn
+   {
+     rtx reg_or_0, mem, addr, addr_reg;
+     int addr_regno;
+     enum rtx_code addr_code;
+     machine_mode mode;
+     addr_space_t addr_space;
+     bool store_p, volatile_p;
+     Mem_Insn () {}
+     Mem_Insn (rtx_insn *insn);
+   };
+ 
+   rtx_insn *fuse_ldi_add (Ldi_Insn &prev_ldi, Add_Insn &add);
+   rtx_insn *fuse_add_add (Add_Insn &prev_add, Add_Insn &add);
+   rtx_insn *fuse_add_mem (Add_Insn &prev_add, Mem_Insn &mem);
+   rtx_insn *fuse_mem_add (Mem_Insn &prev_mem, Add_Insn &add);
+ }; // avr_pass_fuse_add
+ 
+ } // anon namespace
+ 
+ rtl_opt_pass *
+ make_avr_pass_fuse_add (gcc::context *ctxt)
+ {
+   return new avr_pass_fuse_add (ctxt, "avr-fuse-add");
+ }
+ 
+ /* Describe properties of AVR's indirect load and store instructions
+    LD, LDD, ST, STD, LPM, ELPM depending on register number, volatility etc.
+    Rules for "volatile" accesses are:
+ 
+          | Xmega           |  non-Xmega
+    ------+-----------------+----------------
+    load  | read LSB first  | read LSB first
+    store | write LSB first | write MSB first
+ */
+ 
+ struct AVR_LdSt_Props
+ {
+   bool has_postinc, has_predec, has_ldd;
+   // The insn printers will use POST_INC or PRE_DEC addressing, no matter
+   // what adressing modes we are feeding into them.
+   bool want_postinc, want_predec;
+ 
+   AVR_LdSt_Props (int regno, bool store_p, bool volatile_p, addr_space_t as)
+   {
+     bool generic_p = ADDR_SPACE_GENERIC_P (as);
+     bool flashx_p = ! generic_p && as != ADDR_SPACE_MEMX;
+     has_postinc = generic_p || (flashx_p && regno == REG_Z);
+     has_predec = generic_p;
+     has_ldd = ! AVR_TINY && generic_p && (regno == REG_Y || regno == REG_Z);
+     want_predec  = volatile_p && generic_p && ! AVR_XMEGA && store_p;
+     want_postinc = volatile_p && generic_p && (AVR_XMEGA || ! store_p);
+     want_postinc |= flashx_p && regno == REG_Z;
+   }
+ 
+   AVR_LdSt_Props (const avr_pass_fuse_add::Mem_Insn &m)
+     : AVR_LdSt_Props (m.addr_regno, m.store_p, m.volatile_p, m.addr_space)
+   {
+     gcc_assert (m.valid ());
+   }
+ };
+ 
+ /* Emit a single_set that clobbers REG_CC.  */
+ 
+ static rtx_insn *
+ emit_move_ccc (rtx dest, rtx src)
+ {
+   return emit_insn (gen_gen_move_clobbercc (dest, src));
+ }
+ 
+ /* Emit a single_set that clobbers REG_CC after insn AFTER.  */
+ 
+ static rtx_insn *
+ emit_move_ccc_after (rtx dest, rtx src, rtx_insn *after)
+ {
+   return emit_insn_after (gen_gen_move_clobbercc (dest, src), after);
+ }
+ 
+ static bool
+ reg_seen_between_p (const_rtx reg, const rtx_insn *from, const rtx_insn *to)
+ {
+   return (reg_used_between_p (reg, from, to)
+ 	  || reg_set_between_p (reg, from, to));
+ }
+ 
+ 
+ static void
+ avr_maybe_adjust_cfa (rtx_insn *insn, rtx reg, int addend)
+ {
+   if (addend
+       && frame_pointer_needed
+       && REGNO (reg) == FRAME_POINTER_REGNUM
+       && avr_fuse_add == 3)
+     {
+       rtx plus = plus_constant (Pmode, reg, addend);
+       RTX_FRAME_RELATED_P (insn) = 1;
+       add_reg_note (insn, REG_CFA_ADJUST_CFA, gen_rtx_SET (reg, plus));
+     }
+ }
+ 
+ 
+ // If successful, this represents a SET of a pointer register to a constant.
+ avr_pass_fuse_add::Ldi_Insn::Ldi_Insn (rtx_insn *insn)
+ {
+   rtx set = single_set (insn);
+   if (!set)
+     return;
+ 
+   src = SET_SRC (set);
+   dest = SET_DEST (set);
+ 
+   if (REG_P (dest)
+       && GET_MODE (dest) == Pmode
+       && IN_RANGE (regno = REGNO (dest), REG_X, REG_Z)
+       && CONSTANT_P (src))
+     {
+       this->insn = insn;
+     }
+ }
+ 
+ // If successful, this represents a PLUS with CONST_INT of a pointer
+ // register X, Y or Z.  Otherwise, the object is not valid().
+ avr_pass_fuse_add::Add_Insn::Add_Insn (rtx_insn *insn)
+ {
+   rtx set = single_set (insn);
+   if (!set)
+     return;
+ 
+   src = SET_SRC (set);
+   dest = SET_DEST (set);
+   if (REG_P (dest)
+       // We are only interested in PLUSes that change address regs.
+       && GET_MODE (dest) == Pmode
+       && IN_RANGE (regno = REGNO (dest), REG_X, REG_Z)
+       && PLUS == GET_CODE (src)
+       && rtx_equal_p (XEXP (src, 0), dest)
+       && CONST_INT_P (XEXP (src, 1)))
+     {
+       // This is reg:HI += const_int.
+       addend = XEXP (src, 1);
+       this->insn = insn;
+     }
+ }
+ 
+ // If successful, this represents a load or store insn where the addressing
+ // mode uses pointer register X, Y or Z.  Otherwise, the object is not valid().
+ avr_pass_fuse_add::Mem_Insn::Mem_Insn (rtx_insn *insn)
+ {
+   rtx set = single_set (insn);
+   if (!set)
+     return;
+ 
+   src = SET_SRC (set);
+   dest = SET_DEST (set);
+   mode = GET_MODE (dest);
+ 
+   if (MEM_P (dest)
+       && (REG_P (src) || src == CONST0_RTX (mode)))
+     {
+       reg_or_0 = src;
+       mem = dest;
+     }
+   else if (REG_P (dest) && MEM_P (src))
+     {
+       reg_or_0 = dest;
+       mem = src;
+     }
+   else
+     return;
+ 
+   addr = XEXP (mem, 0);
+   addr_code = GET_CODE (addr);
+ 
+   if (addr_code == REG)
+     addr_reg = addr;
+   else if (addr_code == POST_INC || addr_code == PRE_DEC)
+     addr_reg = XEXP (addr, 0);
+   else
+     return;
+ 
+   addr_regno = REGNO (addr_reg);
+ 
+   if (avr_fuse_add == 2
+       && frame_pointer_needed
+       && addr_regno == FRAME_POINTER_REGNUM)
+     MEM_VOLATILE_P (mem) = 0;
+ 
+   if (reg_overlap_mentioned_p (reg_or_0, addr) // Can handle CONSTANT_P.
+       || addr_regno > REG_Z
+       || avr_mem_memx_p (mem)
+       // The following optimizations only handle REG and POST_INC,
+       // so that's all what we allow here.
+       || (addr_code != REG && addr_code != POST_INC))
+     return;
+ 
+   addr_space = MEM_ADDR_SPACE (mem);
+   volatile_p = MEM_VOLATILE_P (mem);
+   store_p = MEM_P (dest);
+ 
+   // Turn this "valid".
+   this->insn = insn;
+ }
+ 
+ /* Try to combine a Ldi insn with a PLUS CONST_INT addend to one Ldi insn.
+    If LDI is valid, then it precedes ADD in the same block.
+    When a replacement is found, a new insn is emitted and the old insns
+    are pseudo-deleted.  The returned insn is the point where the calling
+    scanner should continue.  When no replacement is found, nullptr is
+    returned and nothing changed.  */
+ 
+ rtx_insn *
+ avr_pass_fuse_add::fuse_ldi_add (Ldi_Insn &ldi, Add_Insn &add)
+ {
+   if (! ldi.valid ()
+       || reg_seen_between_p (ldi.dest, ldi.insn, add.insn))
+     {
+       // If something is between the Ldi and the current insn, we can
+       // set the Ldi invalid to speed future scans.
+       return ldi.insn = nullptr;
+     }
+ 
+   // Found a Ldi with const and a PLUS insns in the same BB,
+   // and with no interfering insns between them.
+ 
+   // Emit new Ldi with the sum of the original offsets after the old Ldi.
+   rtx xval = plus_constant (Pmode, ldi.src, INTVAL (add.addend));
+ 
+   rtx_insn *insn = emit_move_ccc_after (ldi.dest, xval, ldi.insn);
+   avr_dump (";; new Ldi[%d] insn %d after %d: R%d = %r\n\n", ldi.regno,
+ 	    INSN_UID (insn), INSN_UID (ldi.insn), ldi.regno, xval);
+ 
+   rtx_insn *next = NEXT_INSN (add.insn);
+   ldi.set_deleted ();
+   add.set_deleted ();
+ 
+   return next;
+ }
+ 
+ /* Try to combine two PLUS insns with CONST_INT addend to one such insn.
+    If PREV_ADD is valid, then it precedes ADD in the same basic block.
+    When a replacement is found, a new insn is emitted and the old insns
+    are pseudo-deleted.  The returned insn is the point where the calling
+    scanner should continue.  When no replacement is found, nullptr is
+    returned and nothing changed.  */
+ 
+ rtx_insn *
+ avr_pass_fuse_add::fuse_add_add (Add_Insn &prev_add, Add_Insn &add)
+ {
+   if (! prev_add.valid ()
+       || reg_seen_between_p (add.dest, prev_add.insn, add.insn))
+     {
+       // If something is between the previous Add and the current insn,
+       // we can set the previous Add invalid to speed future scans.
+       return prev_add.insn = nullptr;
+     }
+ 
+   // Found two PLUS insns in the same BB, and with no interfering
+   // insns between them.
+   rtx plus = plus_constant (Pmode, add.src, INTVAL (prev_add.addend));
+ 
+   rtx_insn *next;
+   if (REG_P (plus))
+     {
+       avr_dump (";; Add[%d] from %d annihilates %d\n\n", add.regno,
+ 		INSN_UID (prev_add.insn), INSN_UID (add.insn));
+       next = NEXT_INSN (add.insn);
+     }
+   else
+     {
+       // Emit after the current insn, so that it will be picked
+       // up as next valid Add insn.
+       next = emit_move_ccc_after (add.dest, plus, add.insn);
+       avr_dump (";; #1 new Add[%d] insn %d after %d: R%d += %d\n\n",
+ 		add.regno, INSN_UID (next), INSN_UID (add.insn),
+ 		add.regno, (int) INTVAL (XEXP (plus, 1)));
+       gcc_assert (GET_CODE (plus) == PLUS);
+     }
+ 
+   add.set_deleted ();
+   prev_add.set_deleted ();
+ 
+   return next;
+ }
+ 
+ /* Try to combine a PLUS of the address register with a load or store insn.
+    If ADD is valid, then it precedes MEM in the same basic block.
+    When a replacement is found, a new insn is emitted and the old insns
+    are pseudo-deleted.  The returned insn is the point where the calling
+    scanner should continue.  When no replacement is found, nullptr is
+    returned and nothing changed.  */
+ 
+ rtx_insn *
+ avr_pass_fuse_add::fuse_add_mem (Add_Insn &add, Mem_Insn &mem)
+ {
+   if (! add.valid ()
+       || reg_seen_between_p (add.dest, add.insn, mem.insn))
+     {
+       // If something is between the Add and the current insn, we can
+       // set the Add invalid to speed future scans.
+       return add.insn = nullptr;
+     }
+ 
+   AVR_LdSt_Props ap { mem };
+ 
+   int msize = GET_MODE_SIZE (mem.mode);
+ 
+   // The mem insn really wants PRE_DEC.
+   bool case1 = ((mem.addr_code == REG || mem.addr_code == POST_INC)
+ 		&& msize > 1 && ap.want_predec && ! ap.has_ldd);
+ 
+   // The offset can be consumed by a PRE_DEC.
+   bool case2 = (- INTVAL (add.addend) == msize
+ 		&& (mem.addr_code == REG || mem.addr_code == POST_INC)
+ 		&& ap.has_predec && ! ap.want_postinc);
+ 
+   if (! case1 && ! case2)
+     return nullptr;
+ 
+   // Change from REG or POST_INC to PRE_DEC.
+   rtx xmem = change_address (mem.mem, mem.mode,
+ 			     gen_rtx_PRE_DEC (Pmode, mem.addr_reg));
+   rtx dest = mem.store_p ? xmem : mem.reg_or_0;
+   rtx src  = mem.store_p ? mem.reg_or_0 : xmem;
+ 
+   rtx_insn *next = emit_move_ccc_after (dest, src, mem.insn);
+   add_reg_note (next, REG_INC, mem.addr_reg);
+   avr_dump (";; new Mem[%d] insn %d after %d: %r = %r\n\n", mem.addr_regno,
+ 	    INSN_UID (next), INSN_UID (mem.insn), dest, src);
+ 
+   // Changing REG or POST_INC -> PRE_DEC means that the addend before
+   // the memory access must be increased by the size of the access,
+   rtx plus = plus_constant (Pmode, add.src, msize);
+   if (! REG_P (plus))
+     {
+       rtx_insn *insn = emit_move_ccc_after (add.dest, plus, add.insn);
+       avr_dump (";; #2 new Add[%d] insn %d after %d: R%d += %d\n\n",
+ 		add.regno, INSN_UID (insn), INSN_UID (add.insn),
+ 		add.regno, (int) INTVAL (XEXP (plus, 1)));
+       gcc_assert (GET_CODE (plus) == PLUS);
+     }
+   else
+     avr_dump (";; Add[%d] insn %d consumed into %d\n\n",
+ 	      add.regno, INSN_UID (add.insn), INSN_UID (next));
+ 
+   // Changing POST_INC -> PRE_DEC means that the addend after the mem has to be
+   // the size of the access.  The hope is that this new add insn may be unused.
+   if (mem.addr_code == POST_INC)
+     {
+       plus = plus_constant (Pmode, add.dest, msize);
+       rtx_insn *next2 = emit_move_ccc_after (add.dest, plus, next);
+       avr_dump (";; #3 new Add[%d] insn %d after %d: R%d += %d\n\n", add.regno,
+ 		INSN_UID (next2), INSN_UID (next), add.regno, msize);
+       next = next2;
+     }
+ 
+   add.set_deleted ();
+   mem.set_deleted ();
+ 
+   return next;
+ }
+ 
+ /* Try to combine a load or store insn with a PLUS of the address register.
+    If MEM is valid, then it precedes ADD in the same basic block.
+    When a replacement is found, a new insn is emitted and the old insns
+    are pseudo-deleted.  The returned insn is the point where the calling
+    scanner should continue.  When no replacement is found, nullptr is
+    returned and nothing changed.  */
+ 
+ rtx_insn *
+ avr_pass_fuse_add::fuse_mem_add (Mem_Insn &mem, Add_Insn &add)
+ {
+   if (! mem.valid ()
+       || reg_seen_between_p (add.dest, mem.insn, add.insn))
+     {
+       // If something is between the Mem and the current insn, we can
+       // set the Mem invalid to speed future scans.
+       return mem.insn = nullptr;
+     }
+ 
+   AVR_LdSt_Props ap { mem };
+ 
+   int msize = GET_MODE_SIZE (mem.mode);
+ 
+   // The add insn can be consumed by a POST_INC.
+   bool case1 = (mem.addr_code == REG
+ 		&& INTVAL (add.addend) == msize
+ 		&& ap.has_postinc && ! ap.want_predec);
+ 
+   // There are cases where even a partial consumption of the offset is better.
+   // This are the cases where no LD+offset addressing is available, because
+   // the address register is obviously used after the mem insn, and a mem insn
+   // with REG addressing mode will have to restore the address.
+   bool case2 = (mem.addr_code == REG
+ 		&& msize > 1 && ap.want_postinc && ! ap.has_ldd);
+ 
+   if (! case1 && ! case2)
+     return nullptr;
+ 
+   // Change addressing mode from REG to POST_INC.
+   rtx xmem = change_address (mem.mem, mem.mode,
+ 			     gen_rtx_POST_INC (Pmode, mem.addr_reg));
+   rtx dest = mem.store_p ? xmem : mem.reg_or_0;
+   rtx src  = mem.store_p ? mem.reg_or_0 : xmem;
+ 
+   rtx_insn *insn = emit_move_ccc_after (dest, src, mem.insn);
+   add_reg_note (insn, REG_INC, mem.addr_reg);
+   avr_dump (";; new Mem[%d] insn %d after %d: %r = %r\n\n", add.regno,
+ 	    INSN_UID (insn), INSN_UID (mem.insn), dest, src);
+ 
+   rtx_insn *next = NEXT_INSN (add.insn);
+ 
+   // Changing REG -> POST_INC means that the post addend must be
+   // decreased by the size of the access.
+   rtx plus = plus_constant (Pmode, add.src, -msize);
+   if (! REG_P (plus))
+     {
+       next = emit_move_ccc_after (mem.addr_reg, plus, add.insn);
+       avr_dump (";; #4 new Add[%d] insn %d after %d: R%d += %d\n\n",
+ 		add.regno, INSN_UID (next), INSN_UID (add.insn),
+ 		add.regno, (int) INTVAL (XEXP (plus, 1)));
+       gcc_assert (GET_CODE (plus) == PLUS);
+     }
+   else
+     avr_dump (";; Add[%d] insn %d consumed into %d\n\n",
+ 	      add.regno, INSN_UID (add.insn), INSN_UID (insn));
+ 
+   add.set_deleted ();
+   mem.set_deleted ();
+ 
+   return next;
+ }
+ 
+ /* Try to post-reload combine PLUS with CONST_INt of pointer registers with:
+    - Sets to a constant address.
+    - PLUS insn of that kind.
+    - Indirect loads and stores.
+    In almost all cases, combine opportunities arise from the preparation
+    done by `avr_split_tiny_move', but in some rare cases combinations are
+    found for the ordinary cores, too.
+       As we consider at most one Mem insn per try, there may still be missed
+    optimizations like  POST_INC + PLUS + POST_INC  might be performed
+    as  PRE_DEC + PRE_DEC  for two adjacent locations.  */
+ 
+ unsigned int
+ avr_pass_fuse_add::execute (function *func)
+ {
+   df_note_add_problem ();
+   df_analyze ();
+ 
+   int n_add = 0, n_mem = 0, n_ldi = 0;
+   basic_block bb;
+ 
+   FOR_EACH_BB_FN (bb, func)
+     {
+       Ldi_Insn prev_ldi_insns[REG_32];
+       Add_Insn prev_add_insns[REG_32];
+       Mem_Insn prev_mem_insns[REG_32];
+       rtx_insn *insn, *curr;
+ 
+       avr_dump ("\n;; basic block %d\n\n", bb->index);
+ 
+       FOR_BB_INSNS_SAFE (bb, insn, curr)
+ 	{
+ 	  rtx_insn *next = nullptr;
+ 	  Ldi_Insn ldi_insn { insn };
+ 	  Add_Insn add_insn { insn };
+ 	  Mem_Insn mem_insn { insn };
+ 
+ 	  if (add_insn.valid ())
+ 	    {
+ 	      // Found reg:HI += const_int
+ 	      avr_dump (";; insn %d: Add[%d]: R%d += %d\n\n",
+ 			INSN_UID (add_insn.insn), add_insn.regno,
+ 			add_insn.regno, (int) INTVAL (add_insn.addend));
+ 	      Ldi_Insn &prev_ldi_insn = prev_ldi_insns[add_insn.regno];
+ 	      Add_Insn &prev_add_insn = prev_add_insns[add_insn.regno];
+ 	      Mem_Insn &prev_mem_insn = prev_mem_insns[add_insn.regno];
+ 	      if ((next = fuse_ldi_add (prev_ldi_insn, add_insn)))
+ 		curr = next, n_ldi += 1;
+ 	      else if ((next = fuse_add_add (prev_add_insn, add_insn)))
+ 		curr = next, n_add += 1;
+ 	      else if ((next = fuse_mem_add (prev_mem_insn, add_insn)))
+ 		curr = next, n_mem += 1;
+ 	      else
+ 		prev_add_insn = add_insn;
+ 	    }
+ 	  else if (mem_insn.valid ())
+ 	    {
+ 	      int addr_regno = REGNO (mem_insn.addr_reg);
+ 	      avr_dump (";; insn %d: Mem[%d]: %r = %r\n\n",
+ 			INSN_UID (mem_insn.insn), addr_regno,
+ 			mem_insn.dest, mem_insn.src);
+ 	      Add_Insn &prev_add_insn = prev_add_insns[addr_regno];
+ 	      if ((next = fuse_add_mem (prev_add_insn, mem_insn)))
+ 		curr = next, n_mem += 1;
+ 	      else
+ 		prev_mem_insns[addr_regno] = mem_insn;
+ 	    }
+ 	  else if (ldi_insn.valid ())
+ 	    {
+ 	      if (! CONST_INT_P (ldi_insn.src))
+ 		avr_dump (";; insn %d: Ldi[%d]: R%d = %r\n\n",
+ 			  INSN_UID (ldi_insn.insn), ldi_insn.regno,
+ 			  ldi_insn.regno, ldi_insn.src);
+ 	      prev_ldi_insns[ldi_insn.regno] = ldi_insn;
+ 	    }
+ 	} // for insns
+     } // for BBs
+ 
+   avr_dump (";; Function %f: Found %d changes: %d ldi, %d add, %d mem.\n",
+ 	    n_ldi + n_add + n_mem, n_ldi, n_add, n_mem);
+ 
+   return 0;
+ }
+ 
+ 
  namespace {
  static const pass_data avr_pass_data_pre_proep =
  {
    RTL_PASS,      // type
!   "",	    // name (will be patched)
    OPTGROUP_NONE, // optinfo_flags
    TV_DF_SCAN,    // tv_id
!   0,	     // properties_required
!   0,	     // properties_provided
!   0,	     // properties_destroyed
!   0,	     // todo_flags_start
!   0	      // todo_flags_finish
  };
  
  
*************** public:
*** 1784,1805 ****
      this->name = name;
    }
  
!   void compute_maybe_gasisr (function*);
  
    virtual unsigned int execute (function *fun)
    {
      if (avr_gasisr_prologues
!         // Whether this function is an ISR worth scanning at all.
!         && !fun->machine->is_no_gccisr
!         && (fun->machine->is_interrupt
!             || fun->machine->is_signal)
!         && !cfun->machine->is_naked
!         // Paranoia: Non-local gotos and labels that might escape.
!         && !cfun->calls_setjmp
!         && !cfun->has_nonlocal_label
!         && !cfun->has_forced_label_in_static)
        {
!         compute_maybe_gasisr (fun);
        }
  
      return 0;
--- 2416,2437 ----
      this->name = name;
    }
  
!   void compute_maybe_gasisr (function *);
  
    virtual unsigned int execute (function *fun)
    {
      if (avr_gasisr_prologues
! 	// Whether this function is an ISR worth scanning at all.
! 	&& !fun->machine->is_no_gccisr
! 	&& (fun->machine->is_interrupt
! 	    || fun->machine->is_signal)
! 	&& !cfun->machine->is_naked
! 	// Paranoia: Non-local gotos and labels that might escape.
! 	&& !cfun->calls_setjmp
! 	&& !cfun->has_nonlocal_label
! 	&& !cfun->has_forced_label_in_static)
        {
! 	compute_maybe_gasisr (fun);
        }
  
      return 0;
*************** public:
*** 1809,1815 ****
  
  } // anon namespace
  
! rtl_opt_pass*
  make_avr_pass_pre_proep (gcc::context *ctxt)
  {
    return new avr_pass_pre_proep (ctxt, "avr-pre-proep");
--- 2441,2447 ----
  
  } // anon namespace
  
! rtl_opt_pass *
  make_avr_pass_pre_proep (gcc::context *ctxt)
  {
    return new avr_pass_pre_proep (ctxt, "avr-pre-proep");
*************** avr_pass_pre_proep::compute_maybe_gasisr
*** 1831,1850 ****
        // out are open coded (tail) calls.
  
        if (CALL_P (insn))
!         return;
  
        // __tablejump2__ clobbers something and is targeted by JMP so
        // that GAS won't see its usage.
  
        if (AVR_HAVE_JMP_CALL
!           && JUMP_TABLE_DATA_P (insn))
!         return;
  
        // Non-local gotos not seen in *FUN.
  
        if (JUMP_P (insn)
!           && find_reg_note (insn, REG_NON_LOCAL_GOTO, NULL_RTX))
!         return;
      }
  
    fun->machine->gasisr.maybe = 1;
--- 2463,2482 ----
        // out are open coded (tail) calls.
  
        if (CALL_P (insn))
! 	return;
  
        // __tablejump2__ clobbers something and is targeted by JMP so
        // that GAS won't see its usage.
  
        if (AVR_HAVE_JMP_CALL
! 	  && JUMP_TABLE_DATA_P (insn))
! 	return;
  
        // Non-local gotos not seen in *FUN.
  
        if (JUMP_P (insn)
! 	  && find_reg_note (insn, REG_NON_LOCAL_GOTO, NULL_RTX))
! 	return;
      }
  
    fun->machine->gasisr.maybe = 1;
*************** avr_incoming_return_addr_rtx (void)
*** 1882,1914 ****
  static int
  avr_hregs_split_reg (HARD_REG_SET *set)
  {
!   for (int regno = 0; regno < 32; regno++)
      if (TEST_HARD_REG_BIT (*set, regno))
        {
!         // Don't remove a register from *SET which might indicate that
!         // some RAMP* register might need ISR prologue / epilogue treatment.
  
!         if (AVR_HAVE_RAMPX
!             && (REG_X == regno || REG_X + 1 == regno)
!             && TEST_HARD_REG_BIT (*set, REG_X)
!             && TEST_HARD_REG_BIT (*set, REG_X + 1))
!           continue;
  
!         if (AVR_HAVE_RAMPY
!             && !frame_pointer_needed
!             && (REG_Y == regno || REG_Y + 1 == regno)
!             && TEST_HARD_REG_BIT (*set, REG_Y)
!             && TEST_HARD_REG_BIT (*set, REG_Y + 1))
!           continue;
  
!         if (AVR_HAVE_RAMPZ
!             && (REG_Z == regno || REG_Z + 1 == regno)
!             && TEST_HARD_REG_BIT (*set, REG_Z)
!             && TEST_HARD_REG_BIT (*set, REG_Z + 1))
!           continue;
!             
!         CLEAR_HARD_REG_BIT (*set, regno);
!         return regno;
        }
  
    return -1;
--- 2514,2546 ----
  static int
  avr_hregs_split_reg (HARD_REG_SET *set)
  {
!   for (int regno = REG_0; regno < REG_32; regno++)
      if (TEST_HARD_REG_BIT (*set, regno))
        {
! 	// Don't remove a register from *SET which might indicate that
! 	// some RAMP* register might need ISR prologue / epilogue treatment.
  
! 	if (AVR_HAVE_RAMPX
! 	    && (REG_X == regno || REG_X + 1 == regno)
! 	    && TEST_HARD_REG_BIT (*set, REG_X)
! 	    && TEST_HARD_REG_BIT (*set, REG_X + 1))
! 	  continue;
  
! 	if (AVR_HAVE_RAMPY
! 	    && !frame_pointer_needed
! 	    && (REG_Y == regno || REG_Y + 1 == regno)
! 	    && TEST_HARD_REG_BIT (*set, REG_Y)
! 	    && TEST_HARD_REG_BIT (*set, REG_Y + 1))
! 	  continue;
  
! 	if (AVR_HAVE_RAMPZ
! 	    && (REG_Z == regno || REG_Z + 1 == regno)
! 	    && TEST_HARD_REG_BIT (*set, REG_Z)
! 	    && TEST_HARD_REG_BIT (*set, REG_Z + 1))
! 	  continue;
! 
! 	CLEAR_HARD_REG_BIT (*set, regno);
! 	return regno;
        }
  
    return -1;
*************** emit_push_byte (unsigned regno, bool fra
*** 1942,1953 ****
  static void
  emit_push_sfr (rtx sfr, bool frame_related_p, bool clr_p, int treg)
  {
-   rtx_insn *insn;
- 
    gcc_assert (MEM_P (sfr));
  
    /* IN treg, IO(SFR) */
!   insn = emit_move_insn (all_regs_rtx[treg], sfr);
    if (frame_related_p)
      RTX_FRAME_RELATED_P (insn) = 1;
  
--- 2574,2583 ----
  static void
  emit_push_sfr (rtx sfr, bool frame_related_p, bool clr_p, int treg)
  {
    gcc_assert (MEM_P (sfr));
  
    /* IN treg, IO(SFR) */
!   rtx_insn *insn = emit_move_insn (all_regs_rtx[treg], sfr);
    if (frame_related_p)
      RTX_FRAME_RELATED_P (insn) = 1;
  
*************** emit_push_sfr (rtx sfr, bool frame_relat
*** 1959,1965 ****
        /* OUT IO(SFR), __zero_reg__ */
        insn = emit_move_insn (sfr, const0_rtx);
        if (frame_related_p)
!         RTX_FRAME_RELATED_P (insn) = 1;
      }
  }
  
--- 2589,2595 ----
        /* OUT IO(SFR), __zero_reg__ */
        insn = emit_move_insn (sfr, const0_rtx);
        if (frame_related_p)
! 	RTX_FRAME_RELATED_P (insn) = 1;
      }
  }
  
*************** avr_prologue_setup_frame (HOST_WIDE_INT
*** 1974,2235 ****
      = (HOST_WIDE_INT) GET_MODE_MASK (AVR_HAVE_8BIT_SP ? QImode : Pmode);
  
    bool minimize = (TARGET_CALL_PROLOGUES
!                    && size < size_max
!                    && live_seq
!                    && !isr_p
!                    && !cfun->machine->is_OS_task
!                    && !cfun->machine->is_OS_main
!                    && !AVR_TINY);
  
    if (minimize
        && (frame_pointer_needed
!           || avr_outgoing_args_size() > 8
!           || (AVR_2_BYTE_PC && live_seq > 6)
!           || live_seq > 7))
      {
        rtx pattern;
!       int first_reg, reg, offset;
  
        emit_move_insn (gen_rtx_REG (HImode, REG_X),
!                       gen_int_mode (size, HImode));
  
        pattern = gen_call_prologue_saves (gen_int_mode (live_seq, HImode),
!                                          gen_int_mode (live_seq+size, HImode));
        insn = emit_insn (pattern);
        RTX_FRAME_RELATED_P (insn) = 1;
  
        /* Describe the effect of the unspec_volatile call to prologue_saves.
!          Note that this formulation assumes that add_reg_note pushes the
!          notes to the front.  Thus we build them in the reverse order of
!          how we want dwarf2out to process them.  */
  
        /* The function does always set frame_pointer_rtx, but whether that
!          is going to be permanent in the function is frame_pointer_needed.  */
  
        add_reg_note (insn, REG_CFA_ADJUST_CFA,
!                     gen_rtx_SET ((frame_pointer_needed
  				  ? frame_pointer_rtx
  				  : stack_pointer_rtx),
!                                  plus_constant (Pmode, stack_pointer_rtx,
!                                                 -(size + live_seq))));
  
        /* Note that live_seq always contains r28+r29, but the other
!          registers to be saved are all below 18.  */
  
!       first_reg = (LAST_CALLEE_SAVED_REG + 1) - (live_seq - 2);
  
!       for (reg = 29, offset = -live_seq + 1;
!            reg >= first_reg;
!            reg = (reg == 28 ? LAST_CALLEE_SAVED_REG : reg - 1), ++offset)
!         {
!           rtx m, r;
  
!           m = gen_rtx_MEM (QImode, plus_constant (Pmode, stack_pointer_rtx,
!                                                   offset));
!           r = gen_rtx_REG (QImode, reg);
!           add_reg_note (insn, REG_CFA_OFFSET, gen_rtx_SET (m, r));
!         }
  
        cfun->machine->stack_usage += size + live_seq;
      }
    else /* !minimize */
      {
!       for (int reg = 0; reg < 32; ++reg)
!         if (TEST_HARD_REG_BIT (set, reg))
!           emit_push_byte (reg, true);
  
        if (frame_pointer_needed
!           && (!(cfun->machine->is_OS_task || cfun->machine->is_OS_main)))
!         {
!           /* Push frame pointer.  Always be consistent about the
!              ordering of pushes -- epilogue_restores expects the
!              register pair to be pushed low byte first.  */
  
!           emit_push_byte (REG_Y, true);
!           emit_push_byte (REG_Y + 1, true);
!         }
  
        if (frame_pointer_needed
!           && size == 0)
!         {
!           insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
!           RTX_FRAME_RELATED_P (insn) = 1;
!         }
  
        if (size != 0)
!         {
!           /*  Creating a frame can be done by direct manipulation of the
!               stack or via the frame pointer. These two methods are:
!                   fp =  sp
!                   fp -= size
!                   sp =  fp
!               or
!                   sp -= size
!                   fp =  sp    (*)
!               the optimum method depends on function type, stack and
!               frame size.  To avoid a complex logic, both methods are
!               tested and shortest is selected.
  
!               There is also the case where SIZE != 0 and no frame pointer is
!               needed; this can occur if ACCUMULATE_OUTGOING_ARGS is on.
!               In that case, insn (*) is not needed in that case.
!               We use the X register as scratch. This is save because in X
!               is call-clobbered.
!                  In an interrupt routine, the case of SIZE != 0 together with
!               !frame_pointer_needed can only occur if the function is not a
!               leaf function and thus X has already been saved.  */
  
!           int irq_state = -1;
!           HOST_WIDE_INT size_cfa = size, neg_size;
!           rtx_insn *fp_plus_insns;
!           rtx fp, my_fp;
  
!           gcc_assert (frame_pointer_needed
!                       || !isr_p
!                       || !crtl->is_leaf);
  
!           fp = my_fp = (frame_pointer_needed
!                         ? frame_pointer_rtx
!                         : gen_rtx_REG (Pmode, REG_X));
  
!           if (AVR_HAVE_8BIT_SP)
!             {
!               /* The high byte (r29) does not change:
!                  Prefer SUBI (1 cycle) over SBIW (2 cycles, same size).  */
  
!               my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
!             }
  
!           /* Cut down size and avoid size = 0 so that we don't run
!              into ICE like PR52488 in the remainder.  */
  
!           if (size > size_max)
!             {
!               /* Don't error so that insane code from newlib still compiles
!                  and does not break building newlib.  As PR51345 is implemented
!                  now, there are multilib variants with -msp8.
  
!                  If user wants sanity checks he can use -Wstack-usage=
!                  or similar options.
  
!                  For CFA we emit the original, non-saturated size so that
!                  the generic machinery is aware of the real stack usage and
!                  will print the above diagnostic as expected.  */
  
!               size = size_max;
!             }
  
!           size = trunc_int_for_mode (size, GET_MODE (my_fp));
!           neg_size = trunc_int_for_mode (-size, GET_MODE (my_fp));
  
!           /************  Method 1: Adjust frame pointer  ************/
  
!           start_sequence ();
  
!           /* Normally, the dwarf2out frame-related-expr interpreter does
!              not expect to have the CFA change once the frame pointer is
!              set up.  Thus, we avoid marking the move insn below and
!              instead indicate that the entire operation is complete after
!              the frame pointer subtraction is done.  */
  
!           insn = emit_move_insn (fp, stack_pointer_rtx);
!           if (frame_pointer_needed)
!             {
!               RTX_FRAME_RELATED_P (insn) = 1;
!               add_reg_note (insn, REG_CFA_ADJUST_CFA,
!                             gen_rtx_SET (fp, stack_pointer_rtx));
!             }
  
!           insn = emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp),
!                                                        my_fp, neg_size));
  
!           if (frame_pointer_needed)
!             {
!               RTX_FRAME_RELATED_P (insn) = 1;
!               add_reg_note (insn, REG_CFA_ADJUST_CFA,
!                             gen_rtx_SET (fp, plus_constant (Pmode, fp,
  							    -size_cfa)));
!             }
  
!           /* Copy to stack pointer.  Note that since we've already
!              changed the CFA to the frame pointer this operation
!              need not be annotated if frame pointer is needed.
!              Always move through unspec, see PR50063.
!              For meaning of irq_state see movhi_sp_r insn.  */
  
!           if (cfun->machine->is_interrupt)
!             irq_state = 1;
  
!           if (TARGET_NO_INTERRUPTS
!               || cfun->machine->is_signal
!               || cfun->machine->is_OS_main)
!             irq_state = 0;
  
!           if (AVR_HAVE_8BIT_SP)
!             irq_state = 2;
  
!           insn = emit_insn (gen_movhi_sp_r (stack_pointer_rtx,
!                                             fp, GEN_INT (irq_state)));
!           if (!frame_pointer_needed)
!             {
!               RTX_FRAME_RELATED_P (insn) = 1;
!               add_reg_note (insn, REG_CFA_ADJUST_CFA,
!                             gen_rtx_SET (stack_pointer_rtx,
!                                          plus_constant (Pmode,
!                                                         stack_pointer_rtx,
!                                                         -size_cfa)));
!             }
  
!           fp_plus_insns = get_insns ();
!           end_sequence ();
  
!           /************  Method 2: Adjust Stack pointer  ************/
  
!           /* Stack adjustment by means of RCALL . and/or PUSH __TMP_REG__
!              can only handle specific offsets.  */
  
!           int n_rcall = size / (AVR_3_BYTE_PC ? 3 : 2);
  
!           if (avr_sp_immediate_operand (gen_int_mode (-size, HImode), HImode)
!               // Don't use more than 3 RCALLs.
!               && n_rcall <= 3)
!             {
!               rtx_insn *sp_plus_insns;
  
!               start_sequence ();
  
!               insn = emit_move_insn (stack_pointer_rtx,
!                                      plus_constant (Pmode, stack_pointer_rtx,
!                                                     -size));
!               RTX_FRAME_RELATED_P (insn) = 1;
!               add_reg_note (insn, REG_CFA_ADJUST_CFA,
!                             gen_rtx_SET (stack_pointer_rtx,
!                                          plus_constant (Pmode,
!                                                         stack_pointer_rtx,
!                                                         -size_cfa)));
!               if (frame_pointer_needed)
!                 {
!                   insn = emit_move_insn (fp, stack_pointer_rtx);
!                   RTX_FRAME_RELATED_P (insn) = 1;
!                 }
  
!               sp_plus_insns = get_insns ();
!               end_sequence ();
  
!               /************ Use shortest method  ************/
  
!               emit_insn (get_sequence_length (sp_plus_insns)
!                          < get_sequence_length (fp_plus_insns)
!                          ? sp_plus_insns
!                          : fp_plus_insns);
!             }
!           else
!             {
!               emit_insn (fp_plus_insns);
!             }
  
!           cfun->machine->stack_usage += size_cfa;
!         } /* !minimize && size != 0 */
      } /* !minimize */
  }
  
--- 2604,2865 ----
      = (HOST_WIDE_INT) GET_MODE_MASK (AVR_HAVE_8BIT_SP ? QImode : Pmode);
  
    bool minimize = (TARGET_CALL_PROLOGUES
! 		   && size < size_max
! 		   && live_seq
! 		   && !isr_p
! 		   && !cfun->machine->is_OS_task
! 		   && !cfun->machine->is_OS_main
! 		   && !AVR_TINY);
  
    if (minimize
        && (frame_pointer_needed
! 	  || avr_outgoing_args_size() > 8
! 	  || (AVR_2_BYTE_PC && live_seq > 6)
! 	  || live_seq > 7))
      {
        rtx pattern;
!       int reg, offset;
  
        emit_move_insn (gen_rtx_REG (HImode, REG_X),
! 		      gen_int_mode (size, HImode));
  
        pattern = gen_call_prologue_saves (gen_int_mode (live_seq, HImode),
! 					 gen_int_mode (live_seq+size, HImode));
        insn = emit_insn (pattern);
        RTX_FRAME_RELATED_P (insn) = 1;
  
        /* Describe the effect of the unspec_volatile call to prologue_saves.
! 	 Note that this formulation assumes that add_reg_note pushes the
! 	 notes to the front.  Thus we build them in the reverse order of
! 	 how we want dwarf2out to process them.  */
  
        /* The function does always set frame_pointer_rtx, but whether that
! 	 is going to be permanent in the function is frame_pointer_needed.  */
  
        add_reg_note (insn, REG_CFA_ADJUST_CFA,
! 		    gen_rtx_SET ((frame_pointer_needed
  				  ? frame_pointer_rtx
  				  : stack_pointer_rtx),
! 				 plus_constant (Pmode, stack_pointer_rtx,
! 						-(size + live_seq))));
  
        /* Note that live_seq always contains r28+r29, but the other
! 	 registers to be saved are all below 18.  */
  
!       int first_reg = (LAST_CALLEE_SAVED_REG + 1) - (live_seq - 2);
  
!       for (reg = REG_29, offset = -live_seq + 1;
! 	   reg >= first_reg;
! 	   reg = (reg == REG_28 ? LAST_CALLEE_SAVED_REG : reg - 1), ++offset)
! 	{
! 	  rtx m, r;
  
! 	  m = gen_rtx_MEM (QImode, plus_constant (Pmode, stack_pointer_rtx,
! 						  offset));
! 	  r = gen_rtx_REG (QImode, reg);
! 	  add_reg_note (insn, REG_CFA_OFFSET, gen_rtx_SET (m, r));
! 	}
  
        cfun->machine->stack_usage += size + live_seq;
      }
    else /* !minimize */
      {
!       for (int reg = REG_0; reg < REG_32; ++reg)
! 	if (TEST_HARD_REG_BIT (set, reg))
! 	  emit_push_byte (reg, true);
  
        if (frame_pointer_needed
! 	  && (!(cfun->machine->is_OS_task || cfun->machine->is_OS_main)))
! 	{
! 	  /* Push frame pointer.  Always be consistent about the
! 	     ordering of pushes -- epilogue_restores expects the
! 	     register pair to be pushed low byte first.  */
  
! 	  emit_push_byte (REG_Y, true);
! 	  emit_push_byte (REG_Y + 1, true);
! 	}
  
        if (frame_pointer_needed
! 	  && size == 0)
! 	{
! 	  insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
! 	  RTX_FRAME_RELATED_P (insn) = 1;
! 	}
  
        if (size != 0)
! 	{
! 	  /*  Creating a frame can be done by direct manipulation of the
! 	      stack or via the frame pointer. These two methods are:
! 		  fp =  sp
! 		  fp -= size
! 		  sp =  fp
! 	      or
! 		  sp -= size
! 		  fp =  sp    (*)
! 	      the optimum method depends on function type, stack and
! 	      frame size.  To avoid a complex logic, both methods are
! 	      tested and shortest is selected.
  
! 	      There is also the case where SIZE != 0 and no frame pointer is
! 	      needed; this can occur if ACCUMULATE_OUTGOING_ARGS is on.
! 	      In that case, insn (*) is not needed in that case.
! 	      We use the X register as scratch. This is save because in X
! 	      is call-clobbered.
! 		 In an interrupt routine, the case of SIZE != 0 together with
! 	      !frame_pointer_needed can only occur if the function is not a
! 	      leaf function and thus X has already been saved.  */
  
! 	  int irq_state = -1;
! 	  HOST_WIDE_INT size_cfa = size, neg_size;
! 	  rtx_insn *fp_plus_insns;
  
! 	  gcc_assert (frame_pointer_needed
! 		      || !isr_p
! 		      || !crtl->is_leaf);
  
! 	  rtx my_fp = (frame_pointer_needed
! 		       ? frame_pointer_rtx
! 		       : gen_rtx_REG (Pmode, REG_X));
! 	  rtx fp = my_fp;
  
! 	  if (AVR_HAVE_8BIT_SP)
! 	    {
! 	      /* The high byte (r29) does not change:
! 		 Prefer SUBI (1 cycle) over SBIW (2 cycles, same size).  */
  
! 	      my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
! 	    }
  
! 	  /* Cut down size and avoid size = 0 so that we don't run
! 	     into ICE like PR52488 in the remainder.  */
  
! 	  if (size > size_max)
! 	    {
! 	      /* Don't error so that insane code from newlib still compiles
! 		 and does not break building newlib.  As PR51345 is implemented
! 		 now, there are multilib variants with -msp8.
  
! 		 If user wants sanity checks he can use -Wstack-usage=
! 		 or similar options.
  
! 		 For CFA we emit the original, non-saturated size so that
! 		 the generic machinery is aware of the real stack usage and
! 		 will print the above diagnostic as expected.  */
  
! 	      size = size_max;
! 	    }
  
! 	  size = trunc_int_for_mode (size, GET_MODE (my_fp));
! 	  neg_size = trunc_int_for_mode (-size, GET_MODE (my_fp));
  
! 	  /************  Method 1: Adjust frame pointer  ************/
  
! 	  start_sequence ();
  
! 	  /* Normally, the dwarf2out frame-related-expr interpreter does
! 	     not expect to have the CFA change once the frame pointer is
! 	     set up.  Thus, we avoid marking the move insn below and
! 	     instead indicate that the entire operation is complete after
! 	     the frame pointer subtraction is done.  */
  
! 	  insn = emit_move_insn (fp, stack_pointer_rtx);
! 	  if (frame_pointer_needed)
! 	    {
! 	      RTX_FRAME_RELATED_P (insn) = 1;
! 	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
! 			    gen_rtx_SET (fp, stack_pointer_rtx));
! 	    }
  
! 	  insn = emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp),
! 						       my_fp, neg_size));
  
! 	  if (frame_pointer_needed)
! 	    {
! 	      RTX_FRAME_RELATED_P (insn) = 1;
! 	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
! 			    gen_rtx_SET (fp, plus_constant (Pmode, fp,
  							    -size_cfa)));
! 	    }
  
! 	  /* Copy to stack pointer.  Note that since we've already
! 	     changed the CFA to the frame pointer this operation
! 	     need not be annotated if frame pointer is needed.
! 	     Always move through unspec, see PR50063.
! 	     For meaning of irq_state see movhi_sp_r insn.  */
  
! 	  if (cfun->machine->is_interrupt)
! 	    irq_state = 1;
  
! 	  if (TARGET_NO_INTERRUPTS
! 	      || cfun->machine->is_signal
! 	      || cfun->machine->is_OS_main)
! 	    irq_state = 0;
  
! 	  if (AVR_HAVE_8BIT_SP)
! 	    irq_state = 2;
  
! 	  insn = emit_insn (gen_movhi_sp_r (stack_pointer_rtx,
! 					    fp, GEN_INT (irq_state)));
! 	  if (!frame_pointer_needed)
! 	    {
! 	      RTX_FRAME_RELATED_P (insn) = 1;
! 	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
! 			    gen_rtx_SET (stack_pointer_rtx,
! 					 plus_constant (Pmode,
! 							stack_pointer_rtx,
! 							-size_cfa)));
! 	    }
  
! 	  fp_plus_insns = get_insns ();
! 	  end_sequence ();
  
! 	  /************  Method 2: Adjust Stack pointer  ************/
  
! 	  /* Stack adjustment by means of RCALL . and/or PUSH __TMP_REG__
! 	     can only handle specific offsets.  */
  
! 	  int n_rcall = size / (AVR_3_BYTE_PC ? 3 : 2);
  
! 	  if (avr_sp_immediate_operand (gen_int_mode (-size, HImode), HImode)
! 	      // Don't use more than 3 RCALLs.
! 	      && n_rcall <= 3)
! 	    {
! 	      rtx_insn *sp_plus_insns;
  
! 	      start_sequence ();
  
! 	      insn = emit_move_insn (stack_pointer_rtx,
! 				     plus_constant (Pmode, stack_pointer_rtx,
! 						    -size));
! 	      RTX_FRAME_RELATED_P (insn) = 1;
! 	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
! 			    gen_rtx_SET (stack_pointer_rtx,
! 					 plus_constant (Pmode,
! 							stack_pointer_rtx,
! 							-size_cfa)));
! 	      if (frame_pointer_needed)
! 		{
! 		  insn = emit_move_insn (fp, stack_pointer_rtx);
! 		  RTX_FRAME_RELATED_P (insn) = 1;
! 		}
  
! 	      sp_plus_insns = get_insns ();
! 	      end_sequence ();
  
! 	      /************ Use shortest method  ************/
  
! 	      emit_insn (get_sequence_length (sp_plus_insns)
! 			 < get_sequence_length (fp_plus_insns)
! 			 ? sp_plus_insns
! 			 : fp_plus_insns);
! 	    }
! 	  else
! 	    {
! 	      emit_insn (fp_plus_insns);
! 	    }
  
! 	  cfun->machine->stack_usage += size_cfa;
! 	} /* !minimize && size != 0 */
      } /* !minimize */
  }
  
*************** void
*** 2240,2248 ****
  avr_expand_prologue (void)
  {
    HARD_REG_SET set;
!   HOST_WIDE_INT size;
! 
!   size = get_frame_size() + avr_outgoing_args_size();
  
    cfun->machine->stack_usage = 0;
  
--- 2870,2876 ----
  avr_expand_prologue (void)
  {
    HARD_REG_SET set;
!   HOST_WIDE_INT size = get_frame_size() + avr_outgoing_args_size();
  
    cfun->machine->stack_usage = 0;
  
*************** avr_expand_prologue (void)
*** 2259,2337 ****
        int treg = AVR_TMP_REGNO;
        /* Enable interrupts.  */
        if (cfun->machine->is_interrupt)
!         emit_insn (gen_enable_interrupt ());
  
        if (cfun->machine->gasisr.maybe)
!         {
!           /* Let GAS PR21472 emit prologue preamble for us which handles SREG,
!              ZERO_REG and TMP_REG and one additional, optional register for
!              us in an optimal way.  This even scans through inline asm.  */
  
!           cfun->machine->gasisr.yes = 1;
  
!           // The optional reg or TMP_REG if we don't need one.  If we need one,
!           // remove that reg from SET so that it's not puhed / popped twice.
!           // We also use it below instead of TMP_REG in some places.
  
!           treg = avr_hregs_split_reg (&set);
!           if (treg < 0)
!             treg = AVR_TMP_REGNO;
!           cfun->machine->gasisr.regno = treg;
  
!           // The worst case of pushes.  The exact number can be inferred
!           // at assembly time by magic expression __gcc_isr.n_pushed.
!           cfun->machine->stack_usage += 3 + (treg != AVR_TMP_REGNO);
  
!           // Emit a Prologue chunk.  Epilogue chunk(s) might follow.
!           // The final Done chunk is emit by final postscan.
!           emit_insn (gen_gasisr (GEN_INT (GASISR_Prologue), GEN_INT (treg)));
!         }
        else // !TARGET_GASISR_PROLOGUES: Classic, dumb prologue preamble.
!         {
!           /* Push zero reg.  */
!           emit_push_byte (AVR_ZERO_REGNO, true);
  
!           /* Push tmp reg.  */
!           emit_push_byte (AVR_TMP_REGNO, true);
  
!           /* Push SREG.  */
!           /* ??? There's no dwarf2 column reserved for SREG.  */
!           emit_push_sfr (sreg_rtx, false, false /* clr */, AVR_TMP_REGNO);
  
!           /* Clear zero reg.  */
!           emit_move_insn (zero_reg_rtx, const0_rtx);
  
!           /* Prevent any attempt to delete the setting of ZERO_REG!  */
!           emit_use (zero_reg_rtx);
!         }
  
        /* Push and clear RAMPD/X/Y/Z if present and low-part register is used.
!          ??? There are no dwarf2 columns reserved for RAMPD/X/Y/Z.  */
  
        if (AVR_HAVE_RAMPD)
!         emit_push_sfr (rampd_rtx, false /* frame */, true /* clr */, treg);
  
        if (AVR_HAVE_RAMPX
!           && TEST_HARD_REG_BIT (set, REG_X)
!           && TEST_HARD_REG_BIT (set, REG_X + 1))
!         {
!           emit_push_sfr (rampx_rtx, false /* frame */, true /* clr */, treg);
!         }
  
        if (AVR_HAVE_RAMPY
!           && (frame_pointer_needed
!               || (TEST_HARD_REG_BIT (set, REG_Y)
!                   && TEST_HARD_REG_BIT (set, REG_Y + 1))))
!         {
!           emit_push_sfr (rampy_rtx, false /* frame */, true /* clr */, treg);
!         }
  
        if (AVR_HAVE_RAMPZ
!           && TEST_HARD_REG_BIT (set, REG_Z)
!           && TEST_HARD_REG_BIT (set, REG_Z + 1))
!         {
!           emit_push_sfr (rampz_rtx, false /* frame */, AVR_HAVE_RAMPD, treg);
!         }
      }  /* is_interrupt is_signal */
  
    avr_prologue_setup_frame (size, set);
--- 2887,2965 ----
        int treg = AVR_TMP_REGNO;
        /* Enable interrupts.  */
        if (cfun->machine->is_interrupt)
! 	emit_insn (gen_enable_interrupt ());
  
        if (cfun->machine->gasisr.maybe)
! 	{
! 	  /* Let GAS PR21472 emit prologue preamble for us which handles SREG,
! 	     ZERO_REG and TMP_REG and one additional, optional register for
! 	     us in an optimal way.  This even scans through inline asm.  */
  
! 	  cfun->machine->gasisr.yes = 1;
  
! 	  // The optional reg or TMP_REG if we don't need one.  If we need one,
! 	  // remove that reg from SET so that it's not puhed / popped twice.
! 	  // We also use it below instead of TMP_REG in some places.
  
! 	  treg = avr_hregs_split_reg (&set);
! 	  if (treg < 0)
! 	    treg = AVR_TMP_REGNO;
! 	  cfun->machine->gasisr.regno = treg;
  
! 	  // The worst case of pushes.  The exact number can be inferred
! 	  // at assembly time by magic expression __gcc_isr.n_pushed.
! 	  cfun->machine->stack_usage += 3 + (treg != AVR_TMP_REGNO);
  
! 	  // Emit a Prologue chunk.  Epilogue chunk(s) might follow.
! 	  // The final Done chunk is emit by final postscan.
! 	  emit_insn (gen_gasisr (GEN_INT (GASISR_Prologue), GEN_INT (treg)));
! 	}
        else // !TARGET_GASISR_PROLOGUES: Classic, dumb prologue preamble.
! 	{
! 	  /* Push zero reg.  */
! 	  emit_push_byte (AVR_ZERO_REGNO, true);
  
! 	  /* Push tmp reg.  */
! 	  emit_push_byte (AVR_TMP_REGNO, true);
  
! 	  /* Push SREG.  */
! 	  /* ??? There's no dwarf2 column reserved for SREG.  */
! 	  emit_push_sfr (sreg_rtx, false, false /* clr */, AVR_TMP_REGNO);
  
! 	  /* Clear zero reg.  */
! 	  emit_move_insn (zero_reg_rtx, const0_rtx);
  
! 	  /* Prevent any attempt to delete the setting of ZERO_REG!  */
! 	  emit_use (zero_reg_rtx);
! 	}
  
        /* Push and clear RAMPD/X/Y/Z if present and low-part register is used.
! 	 ??? There are no dwarf2 columns reserved for RAMPD/X/Y/Z.  */
  
        if (AVR_HAVE_RAMPD)
! 	emit_push_sfr (rampd_rtx, false /* frame */, true /* clr */, treg);
  
        if (AVR_HAVE_RAMPX
! 	  && TEST_HARD_REG_BIT (set, REG_X)
! 	  && TEST_HARD_REG_BIT (set, REG_X + 1))
! 	{
! 	  emit_push_sfr (rampx_rtx, false /* frame */, true /* clr */, treg);
! 	}
  
        if (AVR_HAVE_RAMPY
! 	  && (frame_pointer_needed
! 	      || (TEST_HARD_REG_BIT (set, REG_Y)
! 		  && TEST_HARD_REG_BIT (set, REG_Y + 1))))
! 	{
! 	  emit_push_sfr (rampy_rtx, false /* frame */, true /* clr */, treg);
! 	}
  
        if (AVR_HAVE_RAMPZ
! 	  && TEST_HARD_REG_BIT (set, REG_Z)
! 	  && TEST_HARD_REG_BIT (set, REG_Z + 1))
! 	{
! 	  emit_push_sfr (rampz_rtx, false /* frame */, AVR_HAVE_RAMPD, treg);
! 	}
      }  /* is_interrupt is_signal */
  
    avr_prologue_setup_frame (size, set);
*************** avr_asm_function_end_prologue (FILE *fil
*** 2355,2377 ****
    else
      {
        if (cfun->machine->is_interrupt)
!         {
!           fputs ("/* prologue: Interrupt */\n", file);
!         }
        else if (cfun->machine->is_signal)
!         {
!           fputs ("/* prologue: Signal */\n", file);
!         }
        else
!         fputs ("/* prologue: function */\n", file);
      }
  
    if (ACCUMULATE_OUTGOING_ARGS)
      fprintf (file, "/* outgoing args size = %d */\n",
!              avr_outgoing_args_size());
  
    fprintf (file, "/* frame size = " HOST_WIDE_INT_PRINT_DEC " */\n",
!            (HOST_WIDE_INT) get_frame_size());
  
    if (!cfun->machine->gasisr.yes)
      {
--- 2983,3005 ----
    else
      {
        if (cfun->machine->is_interrupt)
! 	{
! 	  fputs ("/* prologue: Interrupt */\n", file);
! 	}
        else if (cfun->machine->is_signal)
! 	{
! 	  fputs ("/* prologue: Signal */\n", file);
! 	}
        else
! 	fputs ("/* prologue: function */\n", file);
      }
  
    if (ACCUMULATE_OUTGOING_ARGS)
      fprintf (file, "/* outgoing args size = %d */\n",
! 	     avr_outgoing_args_size());
  
    fprintf (file, "/* frame size = " HOST_WIDE_INT_PRINT_DEC " */\n",
! 	   (HOST_WIDE_INT) get_frame_size());
  
    if (!cfun->machine->gasisr.yes)
      {
*************** avr_asm_function_end_prologue (FILE *fil
*** 2392,2401 ****
  }
  
  
! /* Implement `EPILOGUE_USES'.  */
  
  int
! avr_epilogue_uses (int regno ATTRIBUTE_UNUSED)
  {
    if (reload_completed
        && cfun->machine
--- 3020,3029 ----
  }
  
  
! /* Worker function for `EPILOGUE_USES'.  */
  
  int
! avr_epilogue_uses (int /*regno*/)
  {
    if (reload_completed
        && cfun->machine
*************** avr_epilogue_uses (int regno ATTRIBUTE_U
*** 2409,2419 ****
  static void
  emit_pop_byte (unsigned regno)
  {
!   rtx mem, reg;
! 
!   mem = gen_rtx_PRE_INC (HImode, stack_pointer_rtx);
    mem = gen_frame_mem (QImode, mem);
!   reg = gen_rtx_REG (QImode, regno);
  
    emit_insn (gen_rtx_SET (reg, mem));
  }
--- 3037,3045 ----
  static void
  emit_pop_byte (unsigned regno)
  {
!   rtx mem = gen_rtx_PRE_INC (HImode, stack_pointer_rtx);
    mem = gen_frame_mem (QImode, mem);
!   rtx reg = gen_rtx_REG (QImode, regno);
  
    emit_insn (gen_rtx_SET (reg, mem));
  }
*************** emit_pop_byte (unsigned regno)
*** 2423,2435 ****
  void
  avr_expand_epilogue (bool sibcall_p)
  {
-   int live_seq;
    HARD_REG_SET set;
-   int minimize;
-   HOST_WIDE_INT size;
    bool isr_p = cfun->machine->is_interrupt || cfun->machine->is_signal;
  
!   size = get_frame_size() + avr_outgoing_args_size();
  
    /* epilogue: naked  */
    if (cfun->machine->is_naked)
--- 3049,3058 ----
  void
  avr_expand_epilogue (bool sibcall_p)
  {
    HARD_REG_SET set;
    bool isr_p = cfun->machine->is_interrupt || cfun->machine->is_signal;
  
!   HOST_WIDE_INT size = get_frame_size() + avr_outgoing_args_size();
  
    /* epilogue: naked  */
    if (cfun->machine->is_naked)
*************** avr_expand_epilogue (bool sibcall_p)
*** 2441,2472 ****
      }
  
    avr_regs_to_save (&set);
!   live_seq = sequent_regs_live ();
  
!   minimize = (TARGET_CALL_PROLOGUES
!               && live_seq
!               && !isr_p
!               && !cfun->machine->is_OS_task
!               && !cfun->machine->is_OS_main
!               && !AVR_TINY);
  
    if (minimize
        && (live_seq > 4
!           || frame_pointer_needed
!           || size))
      {
        /*  Get rid of frame.  */
  
        if (!frame_pointer_needed)
!         {
!           emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
!         }
  
        if (size)
!         {
!           emit_move_insn (frame_pointer_rtx,
!                           plus_constant (Pmode, frame_pointer_rtx, size));
!         }
  
        emit_insn (gen_epilogue_restores (gen_int_mode (live_seq, HImode)));
        return;
--- 3064,3095 ----
      }
  
    avr_regs_to_save (&set);
!   int live_seq = sequent_regs_live ();
  
!   bool minimize = (TARGET_CALL_PROLOGUES
! 		   && live_seq
! 		   && !isr_p
! 		   && !cfun->machine->is_OS_task
! 		   && !cfun->machine->is_OS_main
! 		   && !AVR_TINY);
  
    if (minimize
        && (live_seq > 4
! 	  || frame_pointer_needed
! 	  || size))
      {
        /*  Get rid of frame.  */
  
        if (!frame_pointer_needed)
! 	{
! 	  emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
! 	}
  
        if (size)
! 	{
! 	  emit_move_insn (frame_pointer_rtx,
! 			  plus_constant (Pmode, frame_pointer_rtx, size));
! 	}
  
        emit_insn (gen_epilogue_restores (gen_int_mode (live_seq, HImode)));
        return;
*************** avr_expand_epilogue (bool sibcall_p)
*** 2477,2507 ****
        /* Try two methods to adjust stack and select shortest.  */
  
        int irq_state = -1;
-       rtx fp, my_fp;
-       rtx_insn *fp_plus_insns;
-       HOST_WIDE_INT size_max;
  
        gcc_assert (frame_pointer_needed
!                   || !isr_p
!                   || !crtl->is_leaf);
  
!       fp = my_fp = (frame_pointer_needed
!                     ? frame_pointer_rtx
!                     : gen_rtx_REG (Pmode, REG_X));
  
        if (AVR_HAVE_8BIT_SP)
!         {
!           /* The high byte (r29) does not change:
!              Prefer SUBI (1 cycle) over SBIW (2 cycles).  */
  
!           my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
!         }
  
        /* For rationale see comment in prologue generation.  */
  
!       size_max = (HOST_WIDE_INT) GET_MODE_MASK (GET_MODE (my_fp));
        if (size > size_max)
!         size = size_max;
        size = trunc_int_for_mode (size, GET_MODE (my_fp));
  
        /********** Method 1: Adjust fp register  **********/
--- 3100,3128 ----
        /* Try two methods to adjust stack and select shortest.  */
  
        int irq_state = -1;
  
        gcc_assert (frame_pointer_needed
! 		  || !isr_p
! 		  || !crtl->is_leaf);
  
!       rtx my_fp = (frame_pointer_needed
! 		   ? frame_pointer_rtx
! 		   : gen_rtx_REG (Pmode, REG_X));
!       rtx fp = my_fp;
  
        if (AVR_HAVE_8BIT_SP)
! 	{
! 	  /* The high byte (r29) does not change:
! 	     Prefer SUBI (1 cycle) over SBIW (2 cycles).  */
  
! 	  my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
! 	}
  
        /* For rationale see comment in prologue generation.  */
  
!       HOST_WIDE_INT size_max = (HOST_WIDE_INT) GET_MODE_MASK (GET_MODE (my_fp));
        if (size > size_max)
! 	size = size_max;
        size = trunc_int_for_mode (size, GET_MODE (my_fp));
  
        /********** Method 1: Adjust fp register  **********/
*************** avr_expand_epilogue (bool sibcall_p)
*** 2509,2562 ****
        start_sequence ();
  
        if (!frame_pointer_needed)
!         emit_move_insn (fp, stack_pointer_rtx);
  
        emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp), my_fp, size));
  
        /* Copy to stack pointer.  */
  
        if (TARGET_NO_INTERRUPTS)
!         irq_state = 0;
  
        if (AVR_HAVE_8BIT_SP)
!         irq_state = 2;
  
        emit_insn (gen_movhi_sp_r (stack_pointer_rtx, fp,
!                                  GEN_INT (irq_state)));
  
!       fp_plus_insns = get_insns ();
        end_sequence ();
  
        /********** Method 2: Adjust Stack pointer  **********/
  
        if (avr_sp_immediate_operand (gen_int_mode (size, HImode), HImode))
!         {
!           rtx_insn *sp_plus_insns;
! 
!           start_sequence ();
  
!           emit_move_insn (stack_pointer_rtx,
!                           plus_constant (Pmode, stack_pointer_rtx, size));
  
!           sp_plus_insns = get_insns ();
!           end_sequence ();
  
!           /************ Use shortest method  ************/
  
!           emit_insn (get_sequence_length (sp_plus_insns)
!                      < get_sequence_length (fp_plus_insns)
!                      ? sp_plus_insns
!                      : fp_plus_insns);
!         }
        else
!         emit_insn (fp_plus_insns);
      } /* size != 0 */
  
    if (frame_pointer_needed
        && !(cfun->machine->is_OS_task || cfun->machine->is_OS_main))
      {
        /* Restore previous frame_pointer.  See avr_expand_prologue for
!          rationale for not using pophi.  */
  
        emit_pop_byte (REG_Y + 1);
        emit_pop_byte (REG_Y);
--- 3130,3181 ----
        start_sequence ();
  
        if (!frame_pointer_needed)
! 	emit_move_insn (fp, stack_pointer_rtx);
  
        emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp), my_fp, size));
  
        /* Copy to stack pointer.  */
  
        if (TARGET_NO_INTERRUPTS)
! 	irq_state = 0;
  
        if (AVR_HAVE_8BIT_SP)
! 	irq_state = 2;
  
        emit_insn (gen_movhi_sp_r (stack_pointer_rtx, fp,
! 				 GEN_INT (irq_state)));
  
!       rtx_insn *fp_plus_insns = get_insns ();
        end_sequence ();
  
        /********** Method 2: Adjust Stack pointer  **********/
  
        if (avr_sp_immediate_operand (gen_int_mode (size, HImode), HImode))
! 	{
! 	  start_sequence ();
  
! 	  emit_move_insn (stack_pointer_rtx,
! 			  plus_constant (Pmode, stack_pointer_rtx, size));
  
! 	  rtx_insn *sp_plus_insns = get_insns ();
! 	  end_sequence ();
  
! 	  /************ Use shortest method  ************/
  
! 	  emit_insn (get_sequence_length (sp_plus_insns)
! 		     < get_sequence_length (fp_plus_insns)
! 		     ? sp_plus_insns
! 		     : fp_plus_insns);
! 	}
        else
! 	emit_insn (fp_plus_insns);
      } /* size != 0 */
  
    if (frame_pointer_needed
        && !(cfun->machine->is_OS_task || cfun->machine->is_OS_main))
      {
        /* Restore previous frame_pointer.  See avr_expand_prologue for
! 	 rationale for not using pophi.  */
  
        emit_pop_byte (REG_Y + 1);
        emit_pop_byte (REG_Y);
*************** avr_expand_epilogue (bool sibcall_p)
*** 2573,2637 ****
        CLEAR_HARD_REG_BIT (set, treg);
      }
  
!   for (int reg = 31; reg >= 0; --reg)
      if (TEST_HARD_REG_BIT (set, reg))
        emit_pop_byte (reg);
  
    if (isr_p)
      {
        /* Restore RAMPZ/Y/X/D using tmp_reg as scratch.
!          The conditions to restore them must be tha same as in prologue.  */
  
        if (AVR_HAVE_RAMPZ
!           && TEST_HARD_REG_BIT (set, REG_Z)
!           && TEST_HARD_REG_BIT (set, REG_Z + 1))
!         {
!           emit_pop_byte (treg);
!           emit_move_insn (rampz_rtx, all_regs_rtx[treg]);
!         }
  
        if (AVR_HAVE_RAMPY
!           && (frame_pointer_needed
!               || (TEST_HARD_REG_BIT (set, REG_Y)
!                   && TEST_HARD_REG_BIT (set, REG_Y + 1))))
!         {
!           emit_pop_byte (treg);
!           emit_move_insn (rampy_rtx, all_regs_rtx[treg]);
!         }
  
        if (AVR_HAVE_RAMPX
!           && TEST_HARD_REG_BIT (set, REG_X)
!           && TEST_HARD_REG_BIT (set, REG_X + 1))
!         {
!           emit_pop_byte (treg);
!           emit_move_insn (rampx_rtx, all_regs_rtx[treg]);
!         }
  
        if (AVR_HAVE_RAMPD)
!         {
!           emit_pop_byte (treg);
!           emit_move_insn (rampd_rtx, all_regs_rtx[treg]);
!         }
  
        if (cfun->machine->gasisr.yes)
!         {
!           // Emit an Epilogue chunk.
!           emit_insn (gen_gasisr (GEN_INT (GASISR_Epilogue),
!                                  GEN_INT (cfun->machine->gasisr.regno)));
!         }
        else // !TARGET_GASISR_PROLOGUES
!         {
!           /* Restore SREG using tmp_reg as scratch.  */
  
!           emit_pop_byte (AVR_TMP_REGNO);
!           emit_move_insn (sreg_rtx, tmp_reg_rtx);
  
!           /* Restore tmp REG.  */
!           emit_pop_byte (AVR_TMP_REGNO);
  
!           /* Restore zero REG.  */
!           emit_pop_byte (AVR_ZERO_REGNO);
!         }
      }
  
    if (!sibcall_p)
--- 3192,3256 ----
        CLEAR_HARD_REG_BIT (set, treg);
      }
  
!   for (int reg = REG_31; reg >= REG_0; --reg)
      if (TEST_HARD_REG_BIT (set, reg))
        emit_pop_byte (reg);
  
    if (isr_p)
      {
        /* Restore RAMPZ/Y/X/D using tmp_reg as scratch.
! 	 The conditions to restore them must be tha same as in prologue.  */
  
        if (AVR_HAVE_RAMPZ
! 	  && TEST_HARD_REG_BIT (set, REG_Z)
! 	  && TEST_HARD_REG_BIT (set, REG_Z + 1))
! 	{
! 	  emit_pop_byte (treg);
! 	  emit_move_insn (rampz_rtx, all_regs_rtx[treg]);
! 	}
  
        if (AVR_HAVE_RAMPY
! 	  && (frame_pointer_needed
! 	      || (TEST_HARD_REG_BIT (set, REG_Y)
! 		  && TEST_HARD_REG_BIT (set, REG_Y + 1))))
! 	{
! 	  emit_pop_byte (treg);
! 	  emit_move_insn (rampy_rtx, all_regs_rtx[treg]);
! 	}
  
        if (AVR_HAVE_RAMPX
! 	  && TEST_HARD_REG_BIT (set, REG_X)
! 	  && TEST_HARD_REG_BIT (set, REG_X + 1))
! 	{
! 	  emit_pop_byte (treg);
! 	  emit_move_insn (rampx_rtx, all_regs_rtx[treg]);
! 	}
  
        if (AVR_HAVE_RAMPD)
! 	{
! 	  emit_pop_byte (treg);
! 	  emit_move_insn (rampd_rtx, all_regs_rtx[treg]);
! 	}
  
        if (cfun->machine->gasisr.yes)
! 	{
! 	  // Emit an Epilogue chunk.
! 	  emit_insn (gen_gasisr (GEN_INT (GASISR_Epilogue),
! 				 GEN_INT (cfun->machine->gasisr.regno)));
! 	}
        else // !TARGET_GASISR_PROLOGUES
! 	{
! 	  /* Restore SREG using tmp_reg as scratch.  */
  
! 	  emit_pop_byte (AVR_TMP_REGNO);
! 	  emit_move_insn (sreg_rtx, tmp_reg_rtx);
  
! 	  /* Restore tmp REG.  */
! 	  emit_pop_byte (AVR_TMP_REGNO);
  
! 	  /* Restore zero REG.  */
! 	  emit_pop_byte (AVR_ZERO_REGNO);
! 	}
      }
  
    if (!sibcall_p)
*************** avr_cannot_modify_jumps_p (void)
*** 2657,2677 ****
    /* Naked Functions must not have any instructions after
       their epilogue, see PR42240 */
  
!   if (reload_completed
!       && cfun->machine
!       && cfun->machine->is_naked)
!     {
!       return true;
!     }
! 
!   return false;
  }
  
  
  /* Implement `TARGET_MODE_DEPENDENT_ADDRESS_P'.  */
  
  static bool
! avr_mode_dependent_address_p (const_rtx addr ATTRIBUTE_UNUSED, addr_space_t as)
  {
    /* FIXME:  Non-generic addresses are not mode-dependent in themselves.
         This hook just serves to hack around PR rtl-optimization/52543 by
--- 3276,3291 ----
    /* Naked Functions must not have any instructions after
       their epilogue, see PR42240 */
  
!   return (reload_completed
! 	  && cfun->machine
! 	  && cfun->machine->is_naked);
  }
  
  
  /* Implement `TARGET_MODE_DEPENDENT_ADDRESS_P'.  */
  
  static bool
! avr_mode_dependent_address_p (const_rtx /*addr*/, addr_space_t as)
  {
    /* FIXME:  Non-generic addresses are not mode-dependent in themselves.
         This hook just serves to hack around PR rtl-optimization/52543 by
*************** avr_address_tiny_absdata_p (rtx x, machi
*** 2710,2722 ****
  
  static inline bool
  avr_reg_ok_for_addr_p (rtx reg, addr_space_t as,
!                        RTX_CODE outer_code, bool strict)
  {
    return (REG_P (reg)
!           && (avr_regno_mode_code_ok_for_base_p (REGNO (reg), QImode,
!                                                  as, outer_code, UNKNOWN)
!               || (!strict
!                   && REGNO (reg) >= FIRST_PSEUDO_REGISTER)));
  }
  
  
--- 3324,3336 ----
  
  static inline bool
  avr_reg_ok_for_addr_p (rtx reg, addr_space_t as,
! 		       RTX_CODE outer_code, bool strict)
  {
    return (REG_P (reg)
! 	  && (avr_regno_mode_code_ok_for_base_p (REGNO (reg), QImode,
! 						 as, outer_code, UNKNOWN)
! 	      || (!strict
! 		  && REGNO (reg) >= FIRST_PSEUDO_REGISTER)));
  }
  
  
*************** avr_legitimate_address_p (machine_mode m
*** 2732,2782 ****
      {
      case REG:
        ok = avr_reg_ok_for_addr_p (x, ADDR_SPACE_GENERIC,
!                                   MEM, strict);
  
        if (strict
!           && GET_MODE_SIZE (mode) > 4
!           && REG_X == REGNO (x))
!         {
!           ok = false;
!         }
        break;
  
      case POST_INC:
      case PRE_DEC:
        ok = avr_reg_ok_for_addr_p (XEXP (x, 0), ADDR_SPACE_GENERIC,
!                                   GET_CODE (x), strict);
        break;
  
      case PLUS:
        {
!         rtx reg = XEXP (x, 0);
!         rtx op1 = XEXP (x, 1);
  
!         if (REG_P (reg)
!             && CONST_INT_P (op1)
!             && INTVAL (op1) >= 0)
!           {
!             bool fit = IN_RANGE (INTVAL (op1), 0, MAX_LD_OFFSET (mode));
  
!             if (fit)
!               {
!                 ok = (! strict
!                       || avr_reg_ok_for_addr_p (reg, ADDR_SPACE_GENERIC,
!                                                 PLUS, strict));
  
!                 if (reg == frame_pointer_rtx
!                     || reg == arg_pointer_rtx)
!                   {
!                     ok = true;
!                   }
!               }
!             else if (frame_pointer_needed
!                      && reg == frame_pointer_rtx)
!               {
!                 ok = true;
!               }
!           }
        }
        break;
  
--- 3346,3399 ----
      {
      case REG:
        ok = avr_reg_ok_for_addr_p (x, ADDR_SPACE_GENERIC,
! 				  MEM, strict);
  
        if (strict
! 	  && GET_MODE_SIZE (mode) > 4
! 	  && REG_X == REGNO (x))
! 	{
! 	  ok = false;
! 	}
        break;
  
      case POST_INC:
      case PRE_DEC:
        ok = avr_reg_ok_for_addr_p (XEXP (x, 0), ADDR_SPACE_GENERIC,
! 				  GET_CODE (x), strict);
        break;
  
      case PLUS:
        {
! 	rtx reg = XEXP (x, 0);
! 	rtx op1 = XEXP (x, 1);
  
! 	if (REG_P (reg)
! 	    && CONST_INT_P (op1)
! 	    && INTVAL (op1) >= 0)
! 	  {
! 	    bool fit = (IN_RANGE (INTVAL (op1), 0, MAX_LD_OFFSET (mode))
! 			// Reduced Tiny does not support PLUS addressing
! 			// anyway, so we are not restricted to LD offset.
! 			|| AVR_TINY);
  
! 	    if (fit)
! 	      {
! 		ok = (! strict
! 		      || avr_reg_ok_for_addr_p (reg, ADDR_SPACE_GENERIC,
! 						PLUS, strict));
  
! 		if (reg == frame_pointer_rtx
! 		    || reg == arg_pointer_rtx)
! 		  {
! 		    ok = true;
! 		  }
! 	      }
! 	    else if (frame_pointer_needed
! 		     && reg == frame_pointer_rtx)
! 	      {
! 		ok = true;
! 	      }
! 	  }
        }
        break;
  
*************** avr_legitimate_address_p (machine_mode m
*** 2788,2794 ****
        && CONSTANT_ADDRESS_P (x))
      {
        /* avrtiny's load / store instructions only cover addresses 0..0xbf:
!          IN / OUT range is 0..0x3f and LDS / STS can access 0x40..0xbf.  */
  
        ok = avr_address_tiny_absdata_p (x, mode);
      }
--- 3405,3411 ----
        && CONSTANT_ADDRESS_P (x))
      {
        /* avrtiny's load / store instructions only cover addresses 0..0xbf:
! 	 IN / OUT range is 0..0x3f and LDS / STS can access 0x40..0xbf.  */
  
        ok = avr_address_tiny_absdata_p (x, mode);
      }
*************** avr_legitimate_address_p (machine_mode m
*** 2796,2814 ****
    if (avr_log.legitimate_address_p)
      {
        avr_edump ("\n%?: ret=%d, mode=%m strict=%d "
!                  "reload_completed=%d reload_in_progress=%d %s:",
!                  ok, mode, strict, reload_completed, reload_in_progress,
!                  reg_renumber ? "(reg_renumber)" : "");
  
        if (GET_CODE (x) == PLUS
!           && REG_P (XEXP (x, 0))
!           && CONST_INT_P (XEXP (x, 1))
!           && IN_RANGE (INTVAL (XEXP (x, 1)), 0, MAX_LD_OFFSET (mode))
!           && reg_renumber)
!         {
!           avr_edump ("(r%d ---> r%d)", REGNO (XEXP (x, 0)),
!                      true_regnum (XEXP (x, 0)));
!         }
  
        avr_edump ("\n%r\n", x);
      }
--- 3413,3431 ----
    if (avr_log.legitimate_address_p)
      {
        avr_edump ("\n%?: ret=%d, mode=%m strict=%d "
! 		 "reload_completed=%d reload_in_progress=%d %s:",
! 		 ok, mode, strict, reload_completed, reload_in_progress,
! 		 reg_renumber ? "(reg_renumber)" : "");
  
        if (GET_CODE (x) == PLUS
! 	  && REG_P (XEXP (x, 0))
! 	  && CONST_INT_P (XEXP (x, 1))
! 	  && IN_RANGE (INTVAL (XEXP (x, 1)), 0, MAX_LD_OFFSET (mode))
! 	  && reg_renumber)
! 	{
! 	  avr_edump ("(r%d ---> r%d)", REGNO (XEXP (x, 0)),
! 		     true_regnum (XEXP (x, 0)));
! 	}
  
        avr_edump ("\n%r\n", x);
      }
*************** avr_legitimize_address (rtx x, rtx oldx,
*** 2832,2858 ****
    if (AVR_TINY)
      {
        if (CONSTANT_ADDRESS_P (x)
!           && ! avr_address_tiny_absdata_p (x, mode))
!         {
!           x = force_reg (Pmode, x);
!         }
      }
  
    if (GET_CODE (oldx) == PLUS
        && REG_P (XEXP (oldx, 0)))
      {
        if (REG_P (XEXP (oldx, 1)))
!         x = force_reg (GET_MODE (oldx), oldx);
        else if (CONST_INT_P (XEXP (oldx, 1)))
!         {
!           int offs = INTVAL (XEXP (oldx, 1));
!           if (frame_pointer_rtx != XEXP (oldx, 0)
!               && offs > MAX_LD_OFFSET (mode))
!             {
!               big_offset_p = true;
!               x = force_reg (GET_MODE (oldx), oldx);
!             }
!         }
      }
  
    if (avr_log.legitimize_address)
--- 3449,3475 ----
    if (AVR_TINY)
      {
        if (CONSTANT_ADDRESS_P (x)
! 	  && ! avr_address_tiny_absdata_p (x, mode))
! 	{
! 	  x = force_reg (Pmode, x);
! 	}
      }
  
    if (GET_CODE (oldx) == PLUS
        && REG_P (XEXP (oldx, 0)))
      {
        if (REG_P (XEXP (oldx, 1)))
! 	x = force_reg (GET_MODE (oldx), oldx);
        else if (CONST_INT_P (XEXP (oldx, 1)))
! 	{
! 	  int offs = INTVAL (XEXP (oldx, 1));
! 	  if (frame_pointer_rtx != XEXP (oldx, 0)
! 	      && offs > MAX_LD_OFFSET (mode))
! 	    {
! 	      big_offset_p = true;
! 	      x = force_reg (GET_MODE (oldx), oldx);
! 	    }
! 	}
      }
  
    if (avr_log.legitimize_address)
*************** avr_legitimize_address (rtx x, rtx oldx,
*** 2860,2866 ****
        avr_edump ("\n%?: mode=%m\n %r\n", mode, oldx);
  
        if (x != oldx)
!         avr_edump (" %s --> %r\n", big_offset_p ? "(big offset)" : "", x);
      }
  
    return x;
--- 3477,3483 ----
        avr_edump ("\n%?: mode=%m\n %r\n", mode, oldx);
  
        if (x != oldx)
! 	avr_edump (" %s --> %r\n", big_offset_p ? "(big offset)" : "", x);
      }
  
    return x;
*************** avr_legitimize_address (rtx x, rtx oldx,
*** 2873,2882 ****
     than 63 bytes or for R++ or --R addressing.  */
  
  rtx
! avr_legitimize_reload_address (rtx *px, machine_mode mode,
!                                int opnum, int type, int addr_type,
!                                int ind_levels ATTRIBUTE_UNUSED,
!                                rtx (*mk_memloc)(rtx,int))
  {
    rtx x = *px;
  
--- 3490,3498 ----
     than 63 bytes or for R++ or --R addressing.  */
  
  rtx
! avr_legitimize_reload_address (rtx *px, machine_mode mode, int opnum,
! 			       int type, int addr_type, int /*ind_levels*/,
! 			       rtx (*mk_memloc)(rtx,int))
  {
    rtx x = *px;
  
*************** avr_legitimize_reload_address (rtx *px,
*** 2884,2898 ****
      avr_edump ("\n%?:%m %r\n", mode, x);
  
    if (1 && (GET_CODE (x) == POST_INC
!             || GET_CODE (x) == PRE_DEC))
      {
        push_reload (XEXP (x, 0), XEXP (x, 0), &XEXP (x, 0), &XEXP (x, 0),
!                    POINTER_REGS, GET_MODE (x), GET_MODE (x), 0, 0,
!                    opnum, RELOAD_OTHER);
  
        if (avr_log.legitimize_reload_address)
!         avr_edump (" RCLASS.1 = %R\n IN = %r\n OUT = %r\n",
!                    POINTER_REGS, XEXP (x, 0), XEXP (x, 0));
  
        return x;
      }
--- 3500,3514 ----
      avr_edump ("\n%?:%m %r\n", mode, x);
  
    if (1 && (GET_CODE (x) == POST_INC
! 	    || GET_CODE (x) == PRE_DEC))
      {
        push_reload (XEXP (x, 0), XEXP (x, 0), &XEXP (x, 0), &XEXP (x, 0),
! 		   POINTER_REGS, GET_MODE (x), GET_MODE (x), 0, 0,
! 		   opnum, RELOAD_OTHER);
  
        if (avr_log.legitimize_reload_address)
! 	avr_edump (" RCLASS.1 = %R\n IN = %r\n OUT = %r\n",
! 		   POINTER_REGS, XEXP (x, 0), XEXP (x, 0));
  
        return x;
      }
*************** avr_legitimize_reload_address (rtx *px,
*** 2906,2949 ****
        bool fit = INTVAL (XEXP (x, 1)) <= MAX_LD_OFFSET (mode);
  
        if (fit)
!         {
!           if (reg_equiv_address (REGNO (XEXP (x, 0))) != 0)
!             {
!               int regno = REGNO (XEXP (x, 0));
!               rtx mem = mk_memloc (x, regno);
  
!               push_reload (XEXP (mem, 0), NULL_RTX, &XEXP (mem, 0), NULL,
!                            POINTER_REGS, Pmode, VOIDmode, 0, 0,
!                            1, (enum reload_type) addr_type);
  
!               if (avr_log.legitimize_reload_address)
!                 avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
!                            POINTER_REGS, XEXP (mem, 0), NULL_RTX);
  
!               push_reload (mem, NULL_RTX, &XEXP (x, 0), NULL,
!                            BASE_POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
!                            opnum, (enum reload_type) type);
  
!               if (avr_log.legitimize_reload_address)
!                 avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
!                            BASE_POINTER_REGS, mem, NULL_RTX);
  
!               return x;
!             }
!         }
        else if (! (frame_pointer_needed
!                   && XEXP (x, 0) == frame_pointer_rtx))
!         {
!           push_reload (x, NULL_RTX, px, NULL,
!                        POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
!                        opnum, (enum reload_type) type);
  
!           if (avr_log.legitimize_reload_address)
!             avr_edump (" RCLASS.3 = %R\n IN = %r\n OUT = %r\n",
!                        POINTER_REGS, x, NULL_RTX);
  
!           return x;
!         }
      }
  
    return NULL_RTX;
--- 3522,3565 ----
        bool fit = INTVAL (XEXP (x, 1)) <= MAX_LD_OFFSET (mode);
  
        if (fit)
! 	{
! 	  if (reg_equiv_address (REGNO (XEXP (x, 0))) != 0)
! 	    {
! 	      int regno = REGNO (XEXP (x, 0));
! 	      rtx mem = mk_memloc (x, regno);
  
! 	      push_reload (XEXP (mem, 0), NULL_RTX, &XEXP (mem, 0), NULL,
! 			   POINTER_REGS, Pmode, VOIDmode, 0, 0,
! 			   1, (enum reload_type) addr_type);
  
! 	      if (avr_log.legitimize_reload_address)
! 		avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
! 			   POINTER_REGS, XEXP (mem, 0), NULL_RTX);
  
! 	      push_reload (mem, NULL_RTX, &XEXP (x, 0), NULL,
! 			   BASE_POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
! 			   opnum, (enum reload_type) type);
  
! 	      if (avr_log.legitimize_reload_address)
! 		avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
! 			   BASE_POINTER_REGS, mem, NULL_RTX);
  
! 	      return x;
! 	    }
! 	}
        else if (! (frame_pointer_needed
! 		  && XEXP (x, 0) == frame_pointer_rtx))
! 	{
! 	  push_reload (x, NULL_RTX, px, NULL,
! 		       POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
! 		       opnum, (enum reload_type) type);
  
! 	  if (avr_log.legitimize_reload_address)
! 	    avr_edump (" RCLASS.3 = %R\n IN = %r\n OUT = %r\n",
! 		       POINTER_REGS, x, NULL_RTX);
  
! 	  return x;
! 	}
      }
  
    return NULL_RTX;
*************** avr_legitimize_reload_address (rtx *px,
*** 2963,2979 ****
         Don't output anything.
  */
  
! static const char*
! avr_asm_len (const char* tpl, rtx* operands, int* plen, int n_words)
  {
    if (plen == NULL)
      output_asm_insn (tpl, operands);
    else
      {
        if (n_words < 0)
!         *plen = -n_words;
        else
!         *plen += n_words;
      }
  
    return "";
--- 3579,3595 ----
         Don't output anything.
  */
  
! static const char *
! avr_asm_len (const char *tpl, rtx *operands, int *plen, int n_words)
  {
    if (plen == NULL)
      output_asm_insn (tpl, operands);
    else
      {
        if (n_words < 0)
! 	*plen = -n_words;
        else
! 	*plen += n_words;
      }
  
    return "";
*************** avr_asm_len (const char* tpl, rtx* opera
*** 2982,2988 ****
  
  /* Return a pointer register name as a string.  */
  
! static const char*
  ptrreg_to_str (int regno)
  {
    switch (regno)
--- 3598,3604 ----
  
  /* Return a pointer register name as a string.  */
  
! static const char *
  ptrreg_to_str (int regno)
  {
    switch (regno)
*************** ptrreg_to_str (int regno)
*** 2992,2998 ****
      case REG_Z: return "Z";
      default:
        output_operand_lossage ("address operand requires constraint for"
!                               " X, Y, or Z register");
      }
    return NULL;
  }
--- 3608,3614 ----
      case REG_Z: return "Z";
      default:
        output_operand_lossage ("address operand requires constraint for"
! 			      " X, Y, or Z register");
      }
    return NULL;
  }
*************** ptrreg_to_str (int regno)
*** 3000,3006 ****
  /* Return the condition name as a string.
     Used in conditional jump constructing  */
  
! static const char*
  cond_string (enum rtx_code code)
  {
    bool cc_overflow_unusable = false;
--- 3616,3622 ----
  /* Return the condition name as a string.
     Used in conditional jump constructing  */
  
! static const char *
  cond_string (enum rtx_code code)
  {
    bool cc_overflow_unusable = false;
*************** cond_string (enum rtx_code code)
*** 3013,3026 ****
        return "eq";
      case GE:
        if (cc_overflow_unusable)
!         return "pl";
        else
!         return "ge";
      case LT:
        if (cc_overflow_unusable)
!         return "mi";
        else
!         return "lt";
      case GEU:
        return "sh";
      case LTU:
--- 3629,3642 ----
        return "eq";
      case GE:
        if (cc_overflow_unusable)
! 	return "pl";
        else
! 	return "ge";
      case LT:
        if (cc_overflow_unusable)
! 	return "mi";
        else
! 	return "lt";
      case GEU:
        return "sh";
      case LTU:
*************** avr_print_operand_address (FILE *file, m
*** 3078,3117 ****
  
      default:
        if (CONSTANT_ADDRESS_P (addr)
!           && text_segment_operand (addr, VOIDmode))
!         {
!           rtx x = addr;
!           if (GET_CODE (x) == CONST)
!             x = XEXP (x, 0);
!           if (GET_CODE (x) == PLUS && CONST_INT_P (XEXP (x, 1)))
!             {
!               /* Assembler gs() will implant word address.  Make offset
!                  a byte offset inside gs() for assembler.  This is
!                  needed because the more logical (constant+gs(sym)) is not
!                  accepted by gas.  For 128K and smaller devices this is ok.
!                  For large devices it will create a trampoline to offset
!                  from symbol which may not be what the user really wanted.  */
  
!               fprintf (file, "gs(");
!               output_addr_const (file, XEXP (x, 0));
!               fprintf (file, "+" HOST_WIDE_INT_PRINT_DEC ")",
!                        2 * INTVAL (XEXP (x, 1)));
!               if (AVR_3_BYTE_PC)
!                 if (warning (0, "pointer offset from symbol maybe incorrect"))
!                   {
!                     output_addr_const (stderr, addr);
!                     fprintf (stderr, "\n");
!                   }
!             }
!           else
!             {
!               fprintf (file, "gs(");
!               output_addr_const (file, addr);
!               fprintf (file, ")");
!             }
!         }
        else
!         output_addr_const (file, addr);
      }
  }
  
--- 3694,3733 ----
  
      default:
        if (CONSTANT_ADDRESS_P (addr)
! 	  && text_segment_operand (addr, VOIDmode))
! 	{
! 	  rtx x = addr;
! 	  if (GET_CODE (x) == CONST)
! 	    x = XEXP (x, 0);
! 	  if (GET_CODE (x) == PLUS && CONST_INT_P (XEXP (x, 1)))
! 	    {
! 	      /* Assembler gs() will implant word address.  Make offset
! 		 a byte offset inside gs() for assembler.  This is
! 		 needed because the more logical (constant+gs(sym)) is not
! 		 accepted by gas.  For 128K and smaller devices this is ok.
! 		 For large devices it will create a trampoline to offset
! 		 from symbol which may not be what the user really wanted.  */
  
! 	      fprintf (file, "gs(");
! 	      output_addr_const (file, XEXP (x, 0));
! 	      fprintf (file, "+" HOST_WIDE_INT_PRINT_DEC ")",
! 		       2 * INTVAL (XEXP (x, 1)));
! 	      if (AVR_3_BYTE_PC)
! 		if (warning (0, "pointer offset from symbol maybe incorrect"))
! 		  {
! 		    output_addr_const (stderr, addr);
! 		    fprintf (stderr, "\n");
! 		  }
! 	    }
! 	  else
! 	    {
! 	      fprintf (file, "gs(");
! 	      output_addr_const (file, addr);
! 	      fprintf (file, ")");
! 	    }
! 	}
        else
! 	output_addr_const (file, addr);
      }
  }
  
*************** avr_print_operand (FILE *file, rtx x, in
*** 3144,3180 ****
    if (code == '~')
      {
        if (!AVR_HAVE_JMP_CALL)
!         fputc ('r', file);
      }
    else if (code == '!')
      {
        if (AVR_HAVE_EIJMP_EICALL)
!         fputc ('e', file);
      }
    else if (code == 't'
!            || code == 'T')
      {
        static int t_regno = -1;
        static int t_nbits = -1;
  
        if (REG_P (x) && t_regno < 0 && code == 'T')
!         {
!           t_regno = REGNO (x);
!           t_nbits = GET_MODE_BITSIZE (GET_MODE (x));
!         }
        else if (CONST_INT_P (x) && t_regno >= 0
!                && IN_RANGE (INTVAL (x), 0, t_nbits - 1))
!         {
!           int bpos = INTVAL (x);
  
!           fprintf (file, "%s", reg_names[t_regno + bpos / 8]);
!           if (code == 'T')
!             fprintf (file, ",%d", bpos % 8);
  
!           t_regno = -1;
!         }
        else
!         fatal_insn ("operands to %T/%t must be reg + const_int:", x);
      }
    else if (code == 'E' || code == 'F')
      {
--- 3760,3796 ----
    if (code == '~')
      {
        if (!AVR_HAVE_JMP_CALL)
! 	fputc ('r', file);
      }
    else if (code == '!')
      {
        if (AVR_HAVE_EIJMP_EICALL)
! 	fputc ('e', file);
      }
    else if (code == 't'
! 	   || code == 'T')
      {
        static int t_regno = -1;
        static int t_nbits = -1;
  
        if (REG_P (x) && t_regno < 0 && code == 'T')
! 	{
! 	  t_regno = REGNO (x);
! 	  t_nbits = GET_MODE_BITSIZE (GET_MODE (x));
! 	}
        else if (CONST_INT_P (x) && t_regno >= 0
! 	       && IN_RANGE (INTVAL (x), 0, t_nbits - 1))
! 	{
! 	  int bpos = INTVAL (x);
  
! 	  fprintf (file, "%s", reg_names[t_regno + bpos / 8]);
! 	  if (code == 'T')
! 	    fprintf (file, ",%d", bpos % 8);
  
! 	  t_regno = -1;
! 	}
        else
! 	fatal_insn ("operands to %T/%t must be reg + const_int:", x);
      }
    else if (code == 'E' || code == 'F')
      {
*************** avr_print_operand (FILE *file, rtx x, in
*** 3189,3289 ****
    else if (REG_P (x))
      {
        if (x == zero_reg_rtx)
!         fprintf (file, "__zero_reg__");
!       else if (code == 'r' && REGNO (x) < 32)
!         fprintf (file, "%d", (int) REGNO (x));
        else
!         fprintf (file, "%s", reg_names[REGNO (x) + abcd]);
      }
    else if (CONST_INT_P (x))
      {
        HOST_WIDE_INT ival = INTVAL (x);
  
        if ('i' != code)
!         fprintf (file, HOST_WIDE_INT_PRINT_DEC, ival + abcd);
        else if (low_io_address_operand (x, VOIDmode)
!                || high_io_address_operand (x, VOIDmode))
!         {
!           if (AVR_HAVE_RAMPZ && ival == avr_addr.rampz)
!             fprintf (file, "__RAMPZ__");
!           else if (AVR_HAVE_RAMPY && ival == avr_addr.rampy)
!             fprintf (file, "__RAMPY__");
!           else if (AVR_HAVE_RAMPX && ival == avr_addr.rampx)
!             fprintf (file, "__RAMPX__");
!           else if (AVR_HAVE_RAMPD && ival == avr_addr.rampd)
!             fprintf (file, "__RAMPD__");
!           else if ((AVR_XMEGA || AVR_TINY) && ival == avr_addr.ccp)
!             fprintf (file, "__CCP__");
!           else if (ival == avr_addr.sreg)   fprintf (file, "__SREG__");
!           else if (ival == avr_addr.sp_l)   fprintf (file, "__SP_L__");
!           else if (ival == avr_addr.sp_h)   fprintf (file, "__SP_H__");
!           else
!             {
!               fprintf (file, HOST_WIDE_INT_PRINT_HEX,
!                        ival - avr_arch->sfr_offset);
!             }
!         }
        else
!         fatal_insn ("bad address, not an I/O address:", x);
      }
    else if (MEM_P (x))
      {
        rtx addr = XEXP (x, 0);
  
        if (code == 'm')
!         {
!           if (!CONSTANT_P (addr))
!             fatal_insn ("bad address, not a constant:", addr);
!           /* Assembler template with m-code is data - not progmem section */
!           if (text_segment_operand (addr, VOIDmode))
!             if (warning (0, "accessing data memory with"
!                          " program memory address"))
!               {
!                 output_addr_const (stderr, addr);
!                 fprintf(stderr,"\n");
!               }
!           output_addr_const (file, addr);
!         }
        else if (code == 'i')
!         {
!           avr_print_operand (file, addr, 'i');
!         }
        else if (code == 'o')
!         {
!           if (GET_CODE (addr) != PLUS)
!             fatal_insn ("bad address, not (reg+disp):", addr);
  
!           avr_print_operand (file, XEXP (addr, 1), 0);
!         }
        else if (code == 'b')
!         {
!           if (GET_CODE (addr) != PLUS)
!             fatal_insn ("bad address, not (reg+disp):", addr);
  
!           avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
!         }
        else if (code == 'p' || code == 'r')
!         {
!           if (GET_CODE (addr) != POST_INC && GET_CODE (addr) != PRE_DEC)
!             fatal_insn ("bad address, not post_inc or pre_dec:", addr);
  
!           if (code == 'p')
!             /* X, Y, Z */
!             avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
!           else
!             avr_print_operand (file, XEXP (addr, 0), 0);  /* r26, r28, r30 */
!         }
        else if (GET_CODE (addr) == PLUS)
!         {
!           avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
!           if (REGNO (XEXP (addr, 0)) == REG_X)
!             fatal_insn ("internal compiler error.  Bad address:"
!                         ,addr);
!           fputc ('+', file);
!           avr_print_operand (file, XEXP (addr, 1), code);
!         }
        else
!         avr_print_operand_address (file, VOIDmode, addr);
      }
    else if (code == 'i')
      {
--- 3805,3905 ----
    else if (REG_P (x))
      {
        if (x == zero_reg_rtx)
! 	fprintf (file, "__zero_reg__");
!       else if (code == 'r' && REGNO (x) < REG_32)
! 	fprintf (file, "%d", (int) REGNO (x));
        else
! 	fprintf (file, "%s", reg_names[REGNO (x) + abcd]);
      }
    else if (CONST_INT_P (x))
      {
        HOST_WIDE_INT ival = INTVAL (x);
  
        if ('i' != code)
! 	fprintf (file, HOST_WIDE_INT_PRINT_DEC, ival + abcd);
        else if (low_io_address_operand (x, VOIDmode)
! 	       || high_io_address_operand (x, VOIDmode))
! 	{
! 	  if (AVR_HAVE_RAMPZ && ival == avr_addr.rampz)
! 	    fprintf (file, "__RAMPZ__");
! 	  else if (AVR_HAVE_RAMPY && ival == avr_addr.rampy)
! 	    fprintf (file, "__RAMPY__");
! 	  else if (AVR_HAVE_RAMPX && ival == avr_addr.rampx)
! 	    fprintf (file, "__RAMPX__");
! 	  else if (AVR_HAVE_RAMPD && ival == avr_addr.rampd)
! 	    fprintf (file, "__RAMPD__");
! 	  else if ((AVR_XMEGA || AVR_TINY) && ival == avr_addr.ccp)
! 	    fprintf (file, "__CCP__");
! 	  else if (ival == avr_addr.sreg)   fprintf (file, "__SREG__");
! 	  else if (ival == avr_addr.sp_l)   fprintf (file, "__SP_L__");
! 	  else if (ival == avr_addr.sp_h)   fprintf (file, "__SP_H__");
! 	  else
! 	    {
! 	      fprintf (file, HOST_WIDE_INT_PRINT_HEX,
! 		       ival - avr_arch->sfr_offset);
! 	    }
! 	}
        else
! 	fatal_insn ("bad address, not an I/O address:", x);
      }
    else if (MEM_P (x))
      {
        rtx addr = XEXP (x, 0);
  
        if (code == 'm')
! 	{
! 	  if (!CONSTANT_P (addr))
! 	    fatal_insn ("bad address, not a constant:", addr);
! 	  /* Assembler template with m-code is data - not progmem section */
! 	  if (text_segment_operand (addr, VOIDmode))
! 	    if (warning (0, "accessing data memory with"
! 			 " program memory address"))
! 	      {
! 		output_addr_const (stderr, addr);
! 		fprintf(stderr,"\n");
! 	      }
! 	  output_addr_const (file, addr);
! 	}
        else if (code == 'i')
! 	{
! 	  avr_print_operand (file, addr, 'i');
! 	}
        else if (code == 'o')
! 	{
! 	  if (GET_CODE (addr) != PLUS)
! 	    fatal_insn ("bad address, not (reg+disp):", addr);
  
! 	  avr_print_operand (file, XEXP (addr, 1), 0);
! 	}
        else if (code == 'b')
! 	{
! 	  if (GET_CODE (addr) != PLUS)
! 	    fatal_insn ("bad address, not (reg+disp):", addr);
  
! 	  avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
! 	}
        else if (code == 'p' || code == 'r')
! 	{
! 	  if (GET_CODE (addr) != POST_INC && GET_CODE (addr) != PRE_DEC)
! 	    fatal_insn ("bad address, not post_inc or pre_dec:", addr);
  
! 	  if (code == 'p')
! 	    /* X, Y, Z */
! 	    avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
! 	  else
! 	    avr_print_operand (file, XEXP (addr, 0), 0);  /* r26, r28, r30 */
! 	}
        else if (GET_CODE (addr) == PLUS)
! 	{
! 	  avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
! 	  if (REGNO (XEXP (addr, 0)) == REG_X)
! 	    fatal_insn ("internal compiler error.  Bad address:"
! 			,addr);
! 	  fputc ('+', file);
! 	  avr_print_operand (file, XEXP (addr, 1), code);
! 	}
        else
! 	avr_print_operand_address (file, VOIDmode, addr);
      }
    else if (code == 'i')
      {
*************** avr_print_operand (FILE *file, rtx x, in
*** 3297,3308 ****
      {
        /* Constant progmem address - like used in jmp or call */
        if (text_segment_operand (x, VOIDmode) == 0)
!         if (warning (0, "accessing program memory"
!                      " with data memory address"))
!           {
!             output_addr_const (stderr, x);
!             fprintf(stderr,"\n");
!           }
        /* Use normal symbol for direct address no linker trampoline needed */
        output_addr_const (file, x);
      }
--- 3913,3924 ----
      {
        /* Constant progmem address - like used in jmp or call */
        if (text_segment_operand (x, VOIDmode) == 0)
! 	if (warning (0, "accessing program memory"
! 		     " with data memory address"))
! 	  {
! 	    output_addr_const (stderr, x);
! 	    fprintf(stderr,"\n");
! 	  }
        /* Use normal symbol for direct address no linker trampoline needed */
        output_addr_const (file, x);
      }
*************** avr_print_operand (FILE *file, rtx x, in
*** 3310,3326 ****
      {
        HOST_WIDE_INT ival = INTVAL (avr_to_int_mode (x));
        if (code != 0)
!         output_operand_lossage ("Unsupported code '%c' for fixed-point:",
!                                 code);
        fprintf (file, HOST_WIDE_INT_PRINT_DEC, ival);
      }
    else if (CONST_DOUBLE_P (x))
      {
!       long val;
!       if (GET_MODE (x) != SFmode)
!         fatal_insn ("internal compiler error.  Unknown mode:", x);
!       REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (x), val);
!       fprintf (file, "0x%lx", val);
      }
    else if (GET_CODE (x) == CONST_STRING)
      fputs (XSTR (x, 0), file);
--- 3926,3951 ----
      {
        HOST_WIDE_INT ival = INTVAL (avr_to_int_mode (x));
        if (code != 0)
! 	output_operand_lossage ("Unsupported code '%c' for fixed-point:",
! 				code);
        fprintf (file, HOST_WIDE_INT_PRINT_DEC, ival);
      }
    else if (CONST_DOUBLE_P (x))
      {
!       if (GET_MODE (x) == SFmode)
! 	{
! 	  long val;
! 	  REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (x), val);
! 	  fprintf (file, "0x%lx", val);
! 	}
!       else if (GET_MODE (x) == DFmode)
! 	{
! 	  long l[2];
! 	  REAL_VALUE_TO_TARGET_DOUBLE (*CONST_DOUBLE_REAL_VALUE (x), l);
! 	  fprintf (file, "0x%lx%08lx", l[1] & 0xffffffff, l[0] & 0xffffffff);
! 	}
!       else
! 	fatal_insn ("internal compiler error.  Unknown mode:", x);
      }
    else if (GET_CODE (x) == CONST_STRING)
      fputs (XSTR (x, 0), file);
*************** avr_print_operand (FILE *file, rtx x, in
*** 3333,3340 ****
  }
  
  
! /* Implement TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.  */
! 
  /* Prefer sequence of loads/stores for moves of size upto
     two - two pairs of load/store instructions are always better
     than the 5 instruction sequence for a loop (1 instruction
--- 3958,3964 ----
  }
  
  
! /* Implement `TARGET_USE_BY_PIECES_INFRASTRUCTURE_P'.  */
  /* Prefer sequence of loads/stores for moves of size upto
     two - two pairs of load/store instructions are always better
     than the 5 instruction sequence for a loop (1 instruction
*************** avr_print_operand (FILE *file, rtx x, in
*** 3342,3350 ****
  
  static bool
  avr_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size,
!                                     unsigned int align ATTRIBUTE_UNUSED,
!                                     enum by_pieces_operation op,
!                                     bool speed_p)
  {
    if (op != MOVE_BY_PIECES
        || (speed_p && size > MOVE_MAX_PIECES))
--- 3966,3973 ----
  
  static bool
  avr_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size,
! 				    unsigned int align,
! 				    enum by_pieces_operation op, bool speed_p)
  {
    if (op != MOVE_BY_PIECES
        || (speed_p && size > MOVE_MAX_PIECES))
*************** int
*** 3362,3368 ****
  avr_jump_mode (rtx x, rtx_insn *insn)
  {
    int dest_addr = INSN_ADDRESSES (INSN_UID (GET_CODE (x) == LABEL_REF
!                                             ? XEXP (x, 0) : x));
    int cur_addr = INSN_ADDRESSES (INSN_UID (insn));
    int jump_distance = cur_addr - dest_addr;
  
--- 3985,3991 ----
  avr_jump_mode (rtx x, rtx_insn *insn)
  {
    int dest_addr = INSN_ADDRESSES (INSN_UID (GET_CODE (x) == LABEL_REF
! 					    ? XEXP (x, 0) : x));
    int cur_addr = INSN_ADDRESSES (INSN_UID (insn));
    int jump_distance = cur_addr - dest_addr;
  
*************** avr_jump_mode (rtx x, rtx_insn *insn)
*** 3381,3387 ****
     LEN is a number returned by avr_jump_mode function.
     If REVERSE nonzero then condition code in X must be reversed.  */
  
! const char*
  ret_cond_branch (rtx x, int len, int reverse)
  {
    RTX_CODE cond = reverse ? reverse_condition (GET_CODE (x)) : GET_CODE (x);
--- 4004,4010 ----
     LEN is a number returned by avr_jump_mode function.
     If REVERSE nonzero then condition code in X must be reversed.  */
  
! const char *
  ret_cond_branch (rtx x, int len, int reverse)
  {
    RTX_CODE cond = reverse ? reverse_condition (GET_CODE (x)) : GET_CODE (x);
*************** ret_cond_branch (rtx x, int len, int rev
*** 3411,3423 ****
  		 "jmp %0"));
      case GTU:
        return (len == 1 ? ("breq .+2" CR_TAB
!                           "brsh %0") :
!               len == 2 ? ("breq .+4" CR_TAB
!                           "brlo .+2" CR_TAB
!                           "rjmp %0") :
!               ("breq .+6" CR_TAB
!                "brlo .+4" CR_TAB
!                "jmp %0"));
      case LE:
        if (cc_overflow_unusable)
  	return (len == 1 ? ("breq %0" CR_TAB
--- 4034,4046 ----
  		 "jmp %0"));
      case GTU:
        return (len == 1 ? ("breq .+2" CR_TAB
! 			  "brsh %0") :
! 	      len == 2 ? ("breq .+4" CR_TAB
! 			  "brlo .+2" CR_TAB
! 			  "rjmp %0") :
! 	      ("breq .+6" CR_TAB
! 	       "brlo .+4" CR_TAB
! 	       "jmp %0"));
      case LE:
        if (cc_overflow_unusable)
  	return (len == 1 ? ("breq %0" CR_TAB
*************** ret_cond_branch (rtx x, int len, int rev
*** 3439,3450 ****
  		 "jmp %0"));
      case LEU:
        return (len == 1 ? ("breq %0" CR_TAB
!                           "brlo %0") :
!               len == 2 ? ("breq .+2" CR_TAB
!                           "brsh .+2" CR_TAB
  			  "rjmp %0") :
!               ("breq .+2" CR_TAB
!                "brsh .+4" CR_TAB
  	       "jmp %0"));
      default:
        if (reverse)
--- 4062,4073 ----
  		 "jmp %0"));
      case LEU:
        return (len == 1 ? ("breq %0" CR_TAB
! 			  "brlo %0") :
! 	      len == 2 ? ("breq .+2" CR_TAB
! 			  "brsh .+2" CR_TAB
  			  "rjmp %0") :
! 	      ("breq .+2" CR_TAB
! 	       "brsh .+4" CR_TAB
  	       "jmp %0"));
      default:
        if (reverse)
*************** ret_cond_branch (rtx x, int len, int rev
*** 3462,3480 ****
  	    }
  	}
        else
!         {
!           switch (len)
!             {
!             case 1:
!               return "br%j1 %0";
!             case 2:
!               return ("br%k1 .+2" CR_TAB
!                       "rjmp %0");
!             default:
!               return ("br%k1 .+4" CR_TAB
!                       "jmp %0");
!             }
!         }
      }
    return "";
  }
--- 4085,4103 ----
  	    }
  	}
        else
! 	{
! 	  switch (len)
! 	    {
! 	    case 1:
! 	      return "br%j1 %0";
! 	    case 2:
! 	      return ("br%k1 .+2" CR_TAB
! 		      "rjmp %0");
! 	    default:
! 	      return ("br%k1 .+4" CR_TAB
! 		      "jmp %0");
! 	    }
! 	}
      }
    return "";
  }
*************** ret_cond_branch (rtx x, int len, int rev
*** 3484,3509 ****
  /* Output insn cost for next insn.  */
  
  void
! avr_final_prescan_insn (rtx_insn *insn, rtx *operand ATTRIBUTE_UNUSED,
!                         int num_operands ATTRIBUTE_UNUSED)
  {
    if (avr_log.rtx_costs)
      {
        rtx set = single_set (insn);
  
        if (set)
!         fprintf (asm_out_file, "/* DEBUG: cost = %d.  */\n",
!                  set_src_cost (SET_SRC (set), GET_MODE (SET_DEST (set)),
  			       optimize_insn_for_speed_p ()));
        else
!         fprintf (asm_out_file, "/* DEBUG: pattern-cost = %d.  */\n",
!                  rtx_cost (PATTERN (insn), VOIDmode, INSN, 0,
!                            optimize_insn_for_speed_p()));
      }
  
    if (avr_log.insn_addresses)
      fprintf (asm_out_file, ";; ADDR = %d\n",
!              (int) INSN_ADDRESSES (INSN_UID (insn)));
  }
  
  
--- 4107,4132 ----
  /* Output insn cost for next insn.  */
  
  void
! avr_final_prescan_insn (rtx_insn *insn, rtx * /*operands*/,
! 			int /*num_operands*/)
  {
    if (avr_log.rtx_costs)
      {
        rtx set = single_set (insn);
  
        if (set)
! 	fprintf (asm_out_file, "/* DEBUG: cost = %d.  */\n",
! 		 set_src_cost (SET_SRC (set), GET_MODE (SET_DEST (set)),
  			       optimize_insn_for_speed_p ()));
        else
! 	fprintf (asm_out_file, "/* DEBUG: pattern-cost = %d.  */\n",
! 		 rtx_cost (PATTERN (insn), VOIDmode, INSN, 0,
! 			   optimize_insn_for_speed_p()));
      }
  
    if (avr_log.insn_addresses)
      fprintf (asm_out_file, ";; ADDR = %d\n",
! 	     (int) INSN_ADDRESSES (INSN_UID (insn)));
  }
  
  
*************** avr_final_prescan_insn (rtx_insn *insn,
*** 3513,3526 ****
     after the last epilogue.  */
  
  static void
! avr_asm_final_postscan_insn (FILE *stream, rtx_insn *insn, rtx*, int)
  {
    if (cfun->machine->gasisr.yes
        && !next_real_insn (insn))
      {
        app_disable();
        fprintf (stream, "\t__gcc_isr %d,r%d\n", GASISR_Done,
!                cfun->machine->gasisr.regno);
      }
  }
  
--- 4136,4149 ----
     after the last epilogue.  */
  
  static void
! avr_asm_final_postscan_insn (FILE *stream, rtx_insn *insn, rtx *, int)
  {
    if (cfun->machine->gasisr.yes
        && !next_real_insn (insn))
      {
        app_disable();
        fprintf (stream, "\t__gcc_isr %d,r%d\n", GASISR_Done,
! 	       cfun->machine->gasisr.regno);
      }
  }
  
*************** avr_asm_final_postscan_insn (FILE *strea
*** 3532,3538 ****
  int
  avr_function_arg_regno_p (int r)
  {
!   return AVR_TINY ? IN_RANGE (r, 20, 25) : IN_RANGE (r, 8, 25);
  }
  
  
--- 4155,4163 ----
  int
  avr_function_arg_regno_p (int r)
  {
!   return AVR_TINY
!     ? IN_RANGE (r, REG_20, REG_25)
!     : IN_RANGE (r, REG_8, REG_25);
  }
  
  
*************** avr_function_arg_regno_p (int r)
*** 3542,3551 ****
  
  void
  avr_init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype, rtx libname,
!                           tree fndecl ATTRIBUTE_UNUSED)
  {
!   cum->nregs = AVR_TINY ? 6 : 18;
    cum->regno = FIRST_CUM_REG;
    if (!libname && stdarg_p (fntype))
      cum->nregs = 0;
  
--- 4167,4177 ----
  
  void
  avr_init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype, rtx libname,
! 			  tree /*fndecl*/)
  {
!   cum->nregs = AVR_TINY ? 1 + REG_25 - REG_20 : 1 + REG_25 - REG_8;
    cum->regno = FIRST_CUM_REG;
+   cum->has_stack_args = 0;
    if (!libname && stdarg_p (fntype))
      cum->nregs = 0;
  
*************** avr_init_cumulative_args (CUMULATIVE_ARG
*** 3559,3570 ****
  static int
  avr_num_arg_regs (machine_mode mode, const_tree type)
  {
!   int size;
! 
!   if (mode == BLKmode)
!     size = int_size_in_bytes (type);
!   else
!     size = GET_MODE_SIZE (mode);
  
    /* Align all function arguments to start in even-numbered registers.
       Odd-sized arguments leave holes above them.  */
--- 4185,4193 ----
  static int
  avr_num_arg_regs (machine_mode mode, const_tree type)
  {
!   int size = (mode == BLKmode
! 	      ? int_size_in_bytes (type)
! 	      : GET_MODE_SIZE (mode));
  
    /* Align all function arguments to start in even-numbered registers.
       Odd-sized arguments leave holes above them.  */
*************** avr_function_arg (cumulative_args_t cum_
*** 3586,3591 ****
--- 4209,4216 ----
    if (cum->nregs && bytes <= cum->nregs)
      return gen_rtx_REG (arg.mode, cum->regno - bytes);
  
+   cum->has_stack_args = 1;
+ 
    return NULL_RTX;
  }
  
*************** avr_function_arg (cumulative_args_t cum_
*** 3595,3602 ****
     in the argument list.  */
  
  static void
! avr_function_arg_advance (cumulative_args_t cum_v,
! 			  const function_arg_info &arg)
  {
    CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v);
    int bytes = avr_num_arg_regs (arg.mode, arg.type);
--- 4220,4226 ----
     in the argument list.  */
  
  static void
! avr_function_arg_advance (cumulative_args_t cum_v, const function_arg_info &arg)
  {
    CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v);
    int bytes = avr_num_arg_regs (arg.mode, arg.type);
*************** avr_function_arg_advance (cumulative_arg
*** 3609,3623 ****
       a function must not pass arguments in call-saved regs in order to get
       tail-called.  */
  
!   if (cum->regno >= 8
        && cum->nregs >= 0
        && !call_used_or_fixed_reg_p (cum->regno))
      {
        /* FIXME: We ship info on failing tail-call in struct machine_function.
!          This uses internals of calls.cc:expand_call() and the way args_so_far
!          is used.  targetm.function_ok_for_sibcall() needs to be extended to
!          pass &args_so_far, too.  At present, CUMULATIVE_ARGS is target
!          dependent so that such an extension is not wanted.  */
  
        cfun->machine->sibcall_fails = 1;
      }
--- 4233,4247 ----
       a function must not pass arguments in call-saved regs in order to get
       tail-called.  */
  
!   if (cum->regno >= REG_8
        && cum->nregs >= 0
        && !call_used_or_fixed_reg_p (cum->regno))
      {
        /* FIXME: We ship info on failing tail-call in struct machine_function.
! 	 This uses internals of calls.cc:expand_call() and the way args_so_far
! 	 is used.  targetm.function_ok_for_sibcall() needs to be extended to
! 	 pass &args_so_far, too.  At present, CUMULATIVE_ARGS is target
! 	 dependent so that such an extension is not wanted.  */
  
        cfun->machine->sibcall_fails = 1;
      }
*************** avr_function_arg_advance (cumulative_arg
*** 3626,3638 ****
       user has fixed a GPR needed to pass an argument, an (implicit) function
       call will clobber that fixed register.  See PR45099 for an example.  */
  
!   if (cum->regno >= 8
        && cum->nregs >= 0)
      {
        for (int regno = cum->regno; regno < cum->regno + bytes; regno++)
!         if (fixed_regs[regno])
!           warning (0, "fixed register %s used to pass parameter to function",
!                    reg_names[regno]);
      }
  
    if (cum->nregs <= 0)
--- 4250,4262 ----
       user has fixed a GPR needed to pass an argument, an (implicit) function
       call will clobber that fixed register.  See PR45099 for an example.  */
  
!   if (cum->regno >= REG_8
        && cum->nregs >= 0)
      {
        for (int regno = cum->regno; regno < cum->regno + bytes; regno++)
! 	if (fixed_regs[regno])
! 	  warning (0, "fixed register %s used to pass parameter to function",
! 		   reg_names[regno]);
      }
  
    if (cum->nregs <= 0)
*************** avr_function_arg_advance (cumulative_arg
*** 3650,3657 ****
  static bool
  avr_function_ok_for_sibcall (tree decl_callee, tree exp_callee)
  {
-   tree fntype_callee;
- 
    /* Tail-calling must fail if callee-saved regs are used to pass
       function args.  We must not tail-call when `epilogue_restores'
       is used.  Unfortunately, we cannot tell at this point if that
--- 4274,4279 ----
*************** avr_function_ok_for_sibcall (tree decl_c
*** 3664,3670 ****
        return false;
      }
  
!   fntype_callee = TREE_TYPE (CALL_EXPR_FN (exp_callee));
  
    if (decl_callee)
      {
--- 4286,4292 ----
        return false;
      }
  
!   tree fntype_callee = TREE_TYPE (CALL_EXPR_FN (exp_callee));
  
    if (decl_callee)
      {
*************** avr_function_ok_for_sibcall (tree decl_c
*** 3675,3684 ****
        decl_callee = fntype_callee;
  
        while (FUNCTION_TYPE != TREE_CODE (decl_callee)
!              && METHOD_TYPE != TREE_CODE (decl_callee))
!         {
!           decl_callee = TREE_TYPE (decl_callee);
!         }
      }
  
    /* Ensure that caller and callee have compatible epilogues */
--- 4297,4306 ----
        decl_callee = fntype_callee;
  
        while (FUNCTION_TYPE != TREE_CODE (decl_callee)
! 	     && METHOD_TYPE != TREE_CODE (decl_callee))
! 	{
! 	  decl_callee = TREE_TYPE (decl_callee);
! 	}
      }
  
    /* Ensure that caller and callee have compatible epilogues */
*************** avr_load_libgcc_p (rtx op)
*** 3708,3715 ****
    int n_bytes = GET_MODE_SIZE (mode);
  
    return (n_bytes > 2
!           && !AVR_HAVE_LPMX
!           && avr_mem_flash_p (op));
  }
  
  /* Return true if a value of mode MODE is read by __xload_* function.  */
--- 4330,4337 ----
    int n_bytes = GET_MODE_SIZE (mode);
  
    return (n_bytes > 2
! 	  && !AVR_HAVE_LPMX
! 	  && avr_mem_flash_p (op));
  }
  
  /* Return true if a value of mode MODE is read by __xload_* function.  */
*************** avr_xload_libgcc_p (machine_mode mode)
*** 3720,3726 ****
    int n_bytes = GET_MODE_SIZE (mode);
  
    return (n_bytes > 1
!           || avr_n_flash > 1);
  }
  
  
--- 4342,4348 ----
    int n_bytes = GET_MODE_SIZE (mode);
  
    return (n_bytes > 1
! 	  || avr_n_flash > 1);
  }
  
  
*************** static rtx
*** 3739,3776 ****
  avr_find_unused_d_reg (rtx_insn *insn, rtx exclude)
  {
    bool isr_p = (avr_interrupt_function_p (current_function_decl)
!                 || avr_signal_function_p (current_function_decl));
  
!   for (int regno = 16; regno < 32; regno++)
      {
        rtx reg = all_regs_rtx[regno];
  
        if ((exclude
!            && reg_overlap_mentioned_p (exclude, reg))
!           || fixed_regs[regno])
!         {
!           continue;
!         }
  
        /* Try non-live register */
  
        if (!df_regs_ever_live_p (regno)
!           && (TREE_THIS_VOLATILE (current_function_decl)
!               || cfun->machine->is_OS_task
!               || cfun->machine->is_OS_main
!               || (!isr_p && call_used_or_fixed_reg_p (regno))))
!         {
!           return reg;
!         }
  
        /* Any live register can be used if it is unused after.
!          Prologue/epilogue will care for it as needed.  */
  
        if (df_regs_ever_live_p (regno)
!           && reg_unused_after (insn, reg))
!         {
!           return reg;
!         }
      }
  
    return NULL_RTX;
--- 4361,4398 ----
  avr_find_unused_d_reg (rtx_insn *insn, rtx exclude)
  {
    bool isr_p = (avr_interrupt_function_p (current_function_decl)
! 		|| avr_signal_function_p (current_function_decl));
  
!   for (int regno = REG_16; regno < REG_32; regno++)
      {
        rtx reg = all_regs_rtx[regno];
  
        if ((exclude
! 	   && reg_overlap_mentioned_p (exclude, reg))
! 	  || fixed_regs[regno])
! 	{
! 	  continue;
! 	}
  
        /* Try non-live register */
  
        if (!df_regs_ever_live_p (regno)
! 	  && (TREE_THIS_VOLATILE (current_function_decl)
! 	      || cfun->machine->is_OS_task
! 	      || cfun->machine->is_OS_main
! 	      || (!isr_p && call_used_or_fixed_reg_p (regno))))
! 	{
! 	  return reg;
! 	}
  
        /* Any live register can be used if it is unused after.
! 	 Prologue/epilogue will care for it as needed.  */
  
        if (df_regs_ever_live_p (regno)
! 	  && reg_unused_after (insn, reg))
! 	{
! 	  return reg;
! 	}
      }
  
    return NULL_RTX;
*************** avr_find_unused_d_reg (rtx_insn *insn, r
*** 3780,3786 ****
  /* Helper function for the next function in the case where only restricted
     version of LPM instruction is available.  */
  
! static const char*
  avr_out_lpm_no_lpmx (rtx_insn *insn, rtx *xop, int *plen)
  {
    rtx dest = xop[0];
--- 4402,4408 ----
  /* Helper function for the next function in the case where only restricted
     version of LPM instruction is available.  */
  
! static const char *
  avr_out_lpm_no_lpmx (rtx_insn *insn, rtx *xop, int *plen)
  {
    rtx dest = xop[0];
*************** avr_out_lpm_no_lpmx (rtx_insn *insn, rtx
*** 3803,3870 ****
        gcc_assert (REG_Z == REGNO (addr));
  
        switch (n_bytes)
!         {
!         default:
!           gcc_unreachable();
  
!         case 1:
!           avr_asm_len ("%4lpm", xop, plen, 1);
  
!           if (regno_dest != LPM_REGNO)
!             avr_asm_len ("mov %0,%3", xop, plen, 1);
  
!           return "";
  
!         case 2:
!           if (REGNO (dest) == REG_Z)
!             return avr_asm_len ("%4lpm"      CR_TAB
!                                 "push %3"    CR_TAB
!                                 "adiw %2,1"  CR_TAB
!                                 "%4lpm"      CR_TAB
!                                 "mov %B0,%3" CR_TAB
!                                 "pop %A0", xop, plen, 6);
  
!           avr_asm_len ("%4lpm"      CR_TAB
!                        "mov %A0,%3" CR_TAB
!                        "adiw %2,1"  CR_TAB
!                        "%4lpm"      CR_TAB
!                        "mov %B0,%3", xop, plen, 5);
  
!           if (!reg_unused_after (insn, addr))
!             avr_asm_len ("sbiw %2,1", xop, plen, 1);
  
!           break; /* 2 */
!         }
  
        break; /* REG */
  
      case POST_INC:
  
        gcc_assert (REG_Z == REGNO (XEXP (addr, 0))
!                   && n_bytes <= 4);
  
        if (regno_dest == LPM_REGNO)
!         avr_asm_len ("%4lpm"      CR_TAB
!                      "adiw %2,1", xop, plen, 2);
        else
!         avr_asm_len ("%4lpm"      CR_TAB
!                      "mov %A0,%3" CR_TAB
!                      "adiw %2,1", xop, plen, 3);
  
        if (n_bytes >= 2)
!         avr_asm_len ("%4lpm"      CR_TAB
!                      "mov %B0,%3" CR_TAB
!                      "adiw %2,1", xop, plen, 3);
  
        if (n_bytes >= 3)
!         avr_asm_len ("%4lpm"      CR_TAB
!                      "mov %C0,%3" CR_TAB
!                      "adiw %2,1", xop, plen, 3);
  
        if (n_bytes >= 4)
!         avr_asm_len ("%4lpm"      CR_TAB
!                      "mov %D0,%3" CR_TAB
!                      "adiw %2,1", xop, plen, 3);
  
        break; /* POST_INC */
  
--- 4425,4492 ----
        gcc_assert (REG_Z == REGNO (addr));
  
        switch (n_bytes)
! 	{
! 	default:
! 	  gcc_unreachable();
  
! 	case 1:
! 	  avr_asm_len ("%4lpm", xop, plen, 1);
  
! 	  if (regno_dest != LPM_REGNO)
! 	    avr_asm_len ("mov %0,%3", xop, plen, 1);
  
! 	  return "";
  
! 	case 2:
! 	  if (REGNO (dest) == REG_Z)
! 	    return avr_asm_len ("%4lpm"      CR_TAB
! 				"push %3"    CR_TAB
! 				"adiw %2,1"  CR_TAB
! 				"%4lpm"      CR_TAB
! 				"mov %B0,%3" CR_TAB
! 				"pop %A0", xop, plen, 6);
  
! 	  avr_asm_len ("%4lpm"      CR_TAB
! 		       "mov %A0,%3" CR_TAB
! 		       "adiw %2,1"  CR_TAB
! 		       "%4lpm"      CR_TAB
! 		       "mov %B0,%3", xop, plen, 5);
  
! 	  if (!reg_unused_after (insn, addr))
! 	    avr_asm_len ("sbiw %2,1", xop, plen, 1);
  
! 	  break; /* 2 */
! 	}
  
        break; /* REG */
  
      case POST_INC:
  
        gcc_assert (REG_Z == REGNO (XEXP (addr, 0))
! 		  && n_bytes <= 4);
  
        if (regno_dest == LPM_REGNO)
! 	avr_asm_len ("%4lpm"      CR_TAB
! 		     "adiw %2,1", xop, plen, 2);
        else
! 	avr_asm_len ("%4lpm"      CR_TAB
! 		     "mov %A0,%3" CR_TAB
! 		     "adiw %2,1", xop, plen, 3);
  
        if (n_bytes >= 2)
! 	avr_asm_len ("%4lpm"      CR_TAB
! 		     "mov %B0,%3" CR_TAB
! 		     "adiw %2,1", xop, plen, 3);
  
        if (n_bytes >= 3)
! 	avr_asm_len ("%4lpm"      CR_TAB
! 		     "mov %C0,%3" CR_TAB
! 		     "adiw %2,1", xop, plen, 3);
  
        if (n_bytes >= 4)
! 	avr_asm_len ("%4lpm"      CR_TAB
! 		     "mov %D0,%3" CR_TAB
! 		     "adiw %2,1", xop, plen, 3);
  
        break; /* POST_INC */
  
*************** avr_out_lpm_no_lpmx (rtx_insn *insn, rtx
*** 3879,3894 ****
     If PLEN != 0 set *PLEN to the length in words of the instruction sequence.
     Return "".  */
  
! const char*
  avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx xop[7];
    rtx dest = op[0];
    rtx src = SET_SRC (single_set (insn));
-   rtx addr;
    int n_bytes = GET_MODE_SIZE (GET_MODE (dest));
-   int segment;
-   RTX_CODE code;
    addr_space_t as = MEM_ADDR_SPACE (src);
  
    if (plen)
--- 4501,4513 ----
     If PLEN != 0 set *PLEN to the length in words of the instruction sequence.
     Return "".  */
  
! const char *
  avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx xop[7];
    rtx dest = op[0];
    rtx src = SET_SRC (single_set (insn));
    int n_bytes = GET_MODE_SIZE (GET_MODE (dest));
    addr_space_t as = MEM_ADDR_SPACE (src);
  
    if (plen)
*************** avr_out_lpm (rtx_insn *insn, rtx *op, in
*** 3897,3909 ****
    if (MEM_P (dest))
      {
        warning (0, "writing to address space %qs not supported",
!                avr_addrspace[MEM_ADDR_SPACE (dest)].name);
  
        return "";
      }
  
!   addr = XEXP (src, 0);
!   code = GET_CODE (addr);
  
    gcc_assert (REG_P (dest));
    gcc_assert (REG == code || POST_INC == code);
--- 4516,4528 ----
    if (MEM_P (dest))
      {
        warning (0, "writing to address space %qs not supported",
! 	       avr_addrspace[MEM_ADDR_SPACE (dest)].name);
  
        return "";
      }
  
!   rtx addr = XEXP (src, 0);
!   RTX_CODE code = GET_CODE (addr);
  
    gcc_assert (REG_P (dest));
    gcc_assert (REG == code || POST_INC == code);
*************** avr_out_lpm (rtx_insn *insn, rtx *op, in
*** 3915,3921 ****
    xop[5] = tmp_reg_rtx;
    xop[6] = XEXP (rampz_rtx, 0);
  
!   segment = avr_addrspace[as].segment;
  
    /* Set RAMPZ as needed.  */
  
--- 4534,4540 ----
    xop[5] = tmp_reg_rtx;
    xop[6] = XEXP (rampz_rtx, 0);
  
!   int segment = avr_addrspace[as].segment;
  
    /* Set RAMPZ as needed.  */
  
*************** avr_out_lpm (rtx_insn *insn, rtx *op, in
*** 3925,3952 ****
        xop[3] = avr_find_unused_d_reg (insn, lpm_addr_reg_rtx);
  
        if (xop[3] != NULL_RTX)
!         {
!           avr_asm_len ("ldi %3,%4" CR_TAB
!                        "out %i6,%3", xop, plen, 2);
!         }
        else if (segment == 1)
!         {
!           avr_asm_len ("clr %5" CR_TAB
!                        "inc %5" CR_TAB
!                        "out %i6,%5", xop, plen, 3);
!         }
        else
!         {
!           avr_asm_len ("mov %5,%2"   CR_TAB
!                        "ldi %2,%4"   CR_TAB
!                        "out %i6,%2"  CR_TAB
!                        "mov %2,%5", xop, plen, 4);
!         }
  
        xop[4] = xstring_e;
  
        if (!AVR_HAVE_ELPMX)
!         return avr_out_lpm_no_lpmx (insn, xop, plen);
      }
    else if (!AVR_HAVE_LPMX)
      {
--- 4544,4571 ----
        xop[3] = avr_find_unused_d_reg (insn, lpm_addr_reg_rtx);
  
        if (xop[3] != NULL_RTX)
! 	{
! 	  avr_asm_len ("ldi %3,%4" CR_TAB
! 		       "out %i6,%3", xop, plen, 2);
! 	}
        else if (segment == 1)
! 	{
! 	  avr_asm_len ("clr %5" CR_TAB
! 		       "inc %5" CR_TAB
! 		       "out %i6,%5", xop, plen, 3);
! 	}
        else
! 	{
! 	  avr_asm_len ("mov %5,%2"   CR_TAB
! 		       "ldi %2,%4"   CR_TAB
! 		       "out %i6,%2"  CR_TAB
! 		       "mov %2,%5", xop, plen, 4);
! 	}
  
        xop[4] = xstring_e;
  
        if (!AVR_HAVE_ELPMX)
! 	return avr_out_lpm_no_lpmx (insn, xop, plen);
      }
    else if (!AVR_HAVE_LPMX)
      {
*************** avr_out_lpm (rtx_insn *insn, rtx *op, in
*** 3965,4034 ****
        gcc_assert (REG_Z == REGNO (addr));
  
        switch (n_bytes)
!         {
!         default:
!           gcc_unreachable();
  
!         case 1:
!           avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
!           break;
  
!         case 2:
!           if (REGNO (dest) == REG_Z)
!             avr_asm_len ("%4lpm %5,%a2+" CR_TAB
!                          "%4lpm %B0,%a2" CR_TAB
!                          "mov %A0,%5", xop, plen, 3);
!           else
!             {
!               avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
!                            "%4lpm %B0,%a2", xop, plen, 2);
  
!               if (!reg_unused_after (insn, addr))
!                 avr_asm_len ("sbiw %2,1", xop, plen, 1);
!             }
  
!           break; /* 2 */
  
!         case 3:
  
!           avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
!                        "%4lpm %B0,%a2+" CR_TAB
!                        "%4lpm %C0,%a2", xop, plen, 3);
  
!           if (!reg_unused_after (insn, addr))
!             avr_asm_len ("sbiw %2,2", xop, plen, 1);
  
!           break; /* 3 */
  
!         case 4:
  
!           avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
!                        "%4lpm %B0,%a2+", xop, plen, 2);
  
!           if (REGNO (dest) == REG_Z - 2)
!             avr_asm_len ("%4lpm %5,%a2+" CR_TAB
!                          "%4lpm %C0,%a2" CR_TAB
!                          "mov %D0,%5", xop, plen, 3);
!           else
!             {
!               avr_asm_len ("%4lpm %C0,%a2+" CR_TAB
!                            "%4lpm %D0,%a2", xop, plen, 2);
  
!               if (!reg_unused_after (insn, addr))
!                 avr_asm_len ("sbiw %2,3", xop, plen, 1);
!             }
  
!           break; /* 4 */
!         } /* n_bytes */
  
        break; /* REG */
  
      case POST_INC:
  
        gcc_assert (REG_Z == REGNO (XEXP (addr, 0))
!                   && n_bytes <= 4);
  
!       avr_asm_len                    ("%4lpm %A0,%a2+", xop, plen, 1);
        if (n_bytes >= 2)  avr_asm_len ("%4lpm %B0,%a2+", xop, plen, 1);
        if (n_bytes >= 3)  avr_asm_len ("%4lpm %C0,%a2+", xop, plen, 1);
        if (n_bytes >= 4)  avr_asm_len ("%4lpm %D0,%a2+", xop, plen, 1);
--- 4584,4653 ----
        gcc_assert (REG_Z == REGNO (addr));
  
        switch (n_bytes)
! 	{
! 	default:
! 	  gcc_unreachable();
  
! 	case 1:
! 	  avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
! 	  break;
  
! 	case 2:
! 	  if (REGNO (dest) == REG_Z)
! 	    avr_asm_len ("%4lpm %5,%a2+" CR_TAB
! 			 "%4lpm %B0,%a2" CR_TAB
! 			 "mov %A0,%5", xop, plen, 3);
! 	  else
! 	    {
! 	      avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
! 			   "%4lpm %B0,%a2", xop, plen, 2);
  
! 	      if (!reg_unused_after (insn, addr))
! 		avr_asm_len ("sbiw %2,1", xop, plen, 1);
! 	    }
  
! 	  break; /* 2 */
  
! 	case 3:
  
! 	  avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
! 		       "%4lpm %B0,%a2+" CR_TAB
! 		       "%4lpm %C0,%a2", xop, plen, 3);
  
! 	  if (!reg_unused_after (insn, addr))
! 	    avr_asm_len ("sbiw %2,2", xop, plen, 1);
  
! 	  break; /* 3 */
  
! 	case 4:
  
! 	  avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
! 		       "%4lpm %B0,%a2+", xop, plen, 2);
  
! 	  if (REGNO (dest) == REG_Z - 2)
! 	    avr_asm_len ("%4lpm %5,%a2+" CR_TAB
! 			 "%4lpm %C0,%a2" CR_TAB
! 			 "mov %D0,%5", xop, plen, 3);
! 	  else
! 	    {
! 	      avr_asm_len ("%4lpm %C0,%a2+" CR_TAB
! 			   "%4lpm %D0,%a2", xop, plen, 2);
  
! 	      if (!reg_unused_after (insn, addr))
! 		avr_asm_len ("sbiw %2,3", xop, plen, 1);
! 	    }
  
! 	  break; /* 4 */
! 	} /* n_bytes */
  
        break; /* REG */
  
      case POST_INC:
  
        gcc_assert (REG_Z == REGNO (XEXP (addr, 0))
! 		  && n_bytes <= 4);
  
!       avr_asm_len		    ("%4lpm %A0,%a2+", xop, plen, 1);
        if (n_bytes >= 2)  avr_asm_len ("%4lpm %B0,%a2+", xop, plen, 1);
        if (n_bytes >= 3)  avr_asm_len ("%4lpm %C0,%a2+", xop, plen, 1);
        if (n_bytes >= 4)  avr_asm_len ("%4lpm %D0,%a2+", xop, plen, 1);
*************** avr_out_lpm (rtx_insn *insn, rtx *op, in
*** 4051,4058 ****
  
  /* Worker function for xload_8 insn.  */
  
! const char*
! avr_out_xload (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
  {
    rtx xop[4];
  
--- 4670,4677 ----
  
  /* Worker function for xload_8 insn.  */
  
! const char *
! avr_out_xload (rtx_insn * /*insn*/, rtx *op, int *plen)
  {
    rtx xop[4];
  
*************** avr_out_xload (rtx_insn *insn ATTRIBUTE_
*** 4064,4070 ****
    avr_asm_len (AVR_HAVE_LPMX ? "lpm %3,%a2" : "lpm", xop, plen, -1);
  
    avr_asm_len ("sbrc %1,7" CR_TAB
!                "ld %3,%a2", xop, plen, 2);
  
    if (REGNO (xop[0]) != REGNO (xop[3]))
      avr_asm_len ("mov %0,%3", xop, plen, 1);
--- 4683,4689 ----
    avr_asm_len (AVR_HAVE_LPMX ? "lpm %3,%a2" : "lpm", xop, plen, -1);
  
    avr_asm_len ("sbrc %1,7" CR_TAB
! 	       "ld %3,%a2", xop, plen, 2);
  
    if (REGNO (xop[0]) != REGNO (xop[3]))
      avr_asm_len ("mov %0,%3", xop, plen, 1);
*************** avr_out_xload (rtx_insn *insn ATTRIBUTE_
*** 4073,4079 ****
  }
  
  
! const char*
  output_movqi (rtx_insn *insn, rtx operands[], int *plen)
  {
    rtx dest = operands[0];
--- 4692,4698 ----
  }
  
  
! const char *
  output_movqi (rtx_insn *insn, rtx operands[], int *plen)
  {
    rtx dest = operands[0];
*************** output_movqi (rtx_insn *insn, rtx operan
*** 4090,4110 ****
    if (REG_P (dest))
      {
        if (REG_P (src)) /* mov r,r */
!         {
!           if (test_hard_reg_class (STACK_REG, dest))
!             return avr_asm_len ("out %0,%1", operands, plen, -1);
!           else if (test_hard_reg_class (STACK_REG, src))
!             return avr_asm_len ("in %0,%1", operands, plen, -1);
  
!           return avr_asm_len ("mov %0,%1", operands, plen, -1);
!         }
        else if (CONSTANT_P (src))
!         {
!           output_reload_in_const (operands, NULL_RTX, plen, false);
!           return "";
!         }
        else if (MEM_P (src))
!         return out_movqi_r_mr (insn, operands, plen); /* mov r,m */
      }
    else if (MEM_P (dest))
      {
--- 4709,4729 ----
    if (REG_P (dest))
      {
        if (REG_P (src)) /* mov r,r */
! 	{
! 	  if (test_hard_reg_class (STACK_REG, dest))
! 	    return avr_asm_len ("out %0,%1", operands, plen, -1);
! 	  else if (test_hard_reg_class (STACK_REG, src))
! 	    return avr_asm_len ("in %0,%1", operands, plen, -1);
  
! 	  return avr_asm_len ("mov %0,%1", operands, plen, -1);
! 	}
        else if (CONSTANT_P (src))
! 	{
! 	  output_reload_in_const (operands, NULL_RTX, plen, false);
! 	  return "";
! 	}
        else if (MEM_P (src))
! 	return out_movqi_r_mr (insn, operands, plen); /* mov r,m */
      }
    else if (MEM_P (dest))
      {
*************** output_movhi (rtx_insn *insn, rtx xop[],
*** 4137,4187 ****
    if (REG_P (dest))
      {
        if (REG_P (src)) /* mov r,r */
!         {
!           if (test_hard_reg_class (STACK_REG, dest))
!             {
!               if (AVR_HAVE_8BIT_SP)
!                 return avr_asm_len ("out __SP_L__,%A1", xop, plen, -1);
  
!               if (AVR_XMEGA)
!                 return avr_asm_len ("out __SP_L__,%A1" CR_TAB
!                                     "out __SP_H__,%B1", xop, plen, -2);
  
!               /* Use simple load of SP if no interrupts are  used.  */
  
!               return TARGET_NO_INTERRUPTS
!                 ? avr_asm_len ("out __SP_H__,%B1" CR_TAB
!                                "out __SP_L__,%A1", xop, plen, -2)
!                 : avr_asm_len ("in __tmp_reg__,__SREG__"  CR_TAB
!                                "cli"                      CR_TAB
!                                "out __SP_H__,%B1"         CR_TAB
!                                "out __SREG__,__tmp_reg__" CR_TAB
!                                "out __SP_L__,%A1", xop, plen, -5);
!             }
!           else if (test_hard_reg_class (STACK_REG, src))
!             {
!               return !AVR_HAVE_SPH
!                 ? avr_asm_len ("in %A0,__SP_L__" CR_TAB
!                                "clr %B0", xop, plen, -2)
  
!                 : avr_asm_len ("in %A0,__SP_L__" CR_TAB
!                                "in %B0,__SP_H__", xop, plen, -2);
!             }
  
!           return AVR_HAVE_MOVW
!             ? avr_asm_len ("movw %0,%1", xop, plen, -1)
  
!             : avr_asm_len ("mov %A0,%A1" CR_TAB
!                            "mov %B0,%B1", xop, plen, -2);
!         } /* REG_P (src) */
        else if (CONSTANT_P (src))
!         {
!           return output_reload_inhi (xop, NULL, plen);
!         }
        else if (MEM_P (src))
!         {
!           return out_movhi_r_mr (insn, xop, plen); /* mov r,m */
!         }
      }
    else if (MEM_P (dest))
      {
--- 4756,4806 ----
    if (REG_P (dest))
      {
        if (REG_P (src)) /* mov r,r */
! 	{
! 	  if (test_hard_reg_class (STACK_REG, dest))
! 	    {
! 	      if (AVR_HAVE_8BIT_SP)
! 		return avr_asm_len ("out __SP_L__,%A1", xop, plen, -1);
  
! 	      if (AVR_XMEGA)
! 		return avr_asm_len ("out __SP_L__,%A1" CR_TAB
! 				    "out __SP_H__,%B1", xop, plen, -2);
  
! 	      /* Use simple load of SP if no interrupts are  used.  */
  
! 	      return TARGET_NO_INTERRUPTS
! 		? avr_asm_len ("out __SP_H__,%B1" CR_TAB
! 			       "out __SP_L__,%A1", xop, plen, -2)
! 		: avr_asm_len ("in __tmp_reg__,__SREG__"  CR_TAB
! 			       "cli"                      CR_TAB
! 			       "out __SP_H__,%B1"         CR_TAB
! 			       "out __SREG__,__tmp_reg__" CR_TAB
! 			       "out __SP_L__,%A1", xop, plen, -5);
! 	    }
! 	  else if (test_hard_reg_class (STACK_REG, src))
! 	    {
! 	      return !AVR_HAVE_SPH
! 		? avr_asm_len ("in %A0,__SP_L__" CR_TAB
! 			       "clr %B0", xop, plen, -2)
  
! 		: avr_asm_len ("in %A0,__SP_L__" CR_TAB
! 			       "in %B0,__SP_H__", xop, plen, -2);
! 	    }
  
! 	  return AVR_HAVE_MOVW
! 	    ? avr_asm_len ("movw %0,%1", xop, plen, -1)
  
! 	    : avr_asm_len ("mov %A0,%A1" CR_TAB
! 			   "mov %B0,%B1", xop, plen, -2);
! 	} /* REG_P (src) */
        else if (CONSTANT_P (src))
! 	{
! 	  return output_reload_inhi (xop, NULL, plen);
! 	}
        else if (MEM_P (src))
! 	{
! 	  return out_movhi_r_mr (insn, xop, plen); /* mov r,m */
! 	}
      }
    else if (MEM_P (dest))
      {
*************** output_movhi (rtx_insn *insn, rtx xop[],
*** 4201,4207 ****
  
  /* Same as out_movqi_r_mr, but TINY does not have ADIW or SBIW */
  
! static const char*
  avr_out_movqi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 4820,4826 ----
  
  /* Same as out_movqi_r_mr, but TINY does not have ADIW or SBIW */
  
! static const char *
  avr_out_movqi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** avr_out_movqi_r_mr_reg_disp_tiny (rtx_in
*** 4209,4215 ****
    rtx x = XEXP (src, 0);
  
    avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
!                "ld %0,%b1" , op, plen, -3);
  
    if (!reg_overlap_mentioned_p (dest, XEXP (x, 0))
        && !reg_unused_after (insn, XEXP (x, 0)))
--- 4828,4834 ----
    rtx x = XEXP (src, 0);
  
    avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
! 	       "ld %0,%b1" , op, plen, -3);
  
    if (!reg_overlap_mentioned_p (dest, XEXP (x, 0))
        && !reg_unused_after (insn, XEXP (x, 0)))
*************** avr_out_movqi_r_mr_reg_disp_tiny (rtx_in
*** 4218,4224 ****
    return "";
  }
  
! static const char*
  out_movqi_r_mr (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 4837,4843 ----
    return "";
  }
  
! static const char *
  out_movqi_r_mr (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** out_movqi_r_mr (rtx_insn *insn, rtx op[]
*** 4229,4236 ****
      {
        int n_words = AVR_TINY ? 1 : 2;
        return io_address_operand (x, QImode)
!         ? avr_asm_len ("in %0,%i1", op, plen, -1)
!         : avr_asm_len ("lds %0,%m1", op, plen, -n_words);
      }
  
    if (GET_CODE (x) == PLUS
--- 4848,4855 ----
      {
        int n_words = AVR_TINY ? 1 : 2;
        return io_address_operand (x, QImode)
! 	? avr_asm_len ("in %0,%i1", op, plen, -1)
! 	: avr_asm_len ("lds %0,%m1", op, plen, -n_words);
      }
  
    if (GET_CODE (x) == PLUS
*************** out_movqi_r_mr (rtx_insn *insn, rtx op[]
*** 4242,4281 ****
        int disp = INTVAL (XEXP (x, 1));
  
        if (AVR_TINY)
!         return avr_out_movqi_r_mr_reg_disp_tiny (insn, op, plen);
  
        if (disp - GET_MODE_SIZE (GET_MODE (src)) >= 63)
!         {
!           if (REGNO (XEXP (x, 0)) != REG_Y)
!             fatal_insn ("incorrect insn:",insn);
  
!           if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
!             return avr_asm_len ("adiw r28,%o1-63" CR_TAB
!                                 "ldd %0,Y+63"     CR_TAB
!                                 "sbiw r28,%o1-63", op, plen, -3);
  
!           return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
!                               "sbci r29,hi8(-%o1)" CR_TAB
!                               "ld %0,Y"            CR_TAB
!                               "subi r28,lo8(%o1)"  CR_TAB
!                               "sbci r29,hi8(%o1)", op, plen, -5);
!         }
        else if (REGNO (XEXP (x, 0)) == REG_X)
!         {
!           /* This is a paranoid case LEGITIMIZE_RELOAD_ADDRESS must exclude
!              it but I have this situation with extremal optimizing options.  */
  
!           avr_asm_len ("adiw r26,%o1" CR_TAB
!                        "ld %0,X", op, plen, -2);
  
!           if (!reg_overlap_mentioned_p (dest, XEXP (x, 0))
!               && !reg_unused_after (insn, XEXP (x, 0)))
!             {
!               avr_asm_len ("sbiw r26,%o1", op, plen, 1);
!             }
  
!           return "";
!         }
  
        return avr_asm_len ("ldd %0,%1", op, plen, -1);
      }
--- 4861,4900 ----
        int disp = INTVAL (XEXP (x, 1));
  
        if (AVR_TINY)
! 	return avr_out_movqi_r_mr_reg_disp_tiny (insn, op, plen);
  
        if (disp - GET_MODE_SIZE (GET_MODE (src)) >= 63)
! 	{
! 	  if (REGNO (XEXP (x, 0)) != REG_Y)
! 	    fatal_insn ("incorrect insn:",insn);
  
! 	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
! 	    return avr_asm_len ("adiw r28,%o1-63" CR_TAB
! 				"ldd %0,Y+63"     CR_TAB
! 				"sbiw r28,%o1-63", op, plen, -3);
  
! 	  return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
! 			      "sbci r29,hi8(-%o1)" CR_TAB
! 			      "ld %0,Y"            CR_TAB
! 			      "subi r28,lo8(%o1)"  CR_TAB
! 			      "sbci r29,hi8(%o1)", op, plen, -5);
! 	}
        else if (REGNO (XEXP (x, 0)) == REG_X)
! 	{
! 	  /* This is a paranoid case LEGITIMIZE_RELOAD_ADDRESS must exclude
! 	     it but I have this situation with extremal optimizing options.  */
  
! 	  avr_asm_len ("adiw r26,%o1" CR_TAB
! 		       "ld %0,X", op, plen, -2);
  
! 	  if (!reg_overlap_mentioned_p (dest, XEXP (x, 0))
! 	      && !reg_unused_after (insn, XEXP (x, 0)))
! 	    {
! 	      avr_asm_len ("sbiw r26,%o1", op, plen, 1);
! 	    }
  
! 	  return "";
! 	}
  
        return avr_asm_len ("ldd %0,%1", op, plen, -1);
      }
*************** out_movqi_r_mr (rtx_insn *insn, rtx op[]
*** 4286,4292 ****
  
  /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
  
! static const char*
  avr_out_movhi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 4905,4911 ----
  
  /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
  
! static const char *
  avr_out_movhi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** avr_out_movhi_r_mr_reg_no_disp_tiny (rtx
*** 4296,4308 ****
    int reg_dest = true_regnum (dest);
    int reg_base = true_regnum (base);
  
!   if (reg_dest == reg_base)         /* R = (R) */
      return avr_asm_len ("ld __tmp_reg__,%1+" CR_TAB
  			"ld %B0,%1"          CR_TAB
  			"mov %A0,__tmp_reg__", op, plen, -3);
  
    avr_asm_len ("ld %A0,%1+" CR_TAB
!                "ld %B0,%1", op, plen, -2);
  
    if (!reg_unused_after (insn, base))
      avr_asm_len (TINY_SBIW (%E1, %F1, 1), op, plen, 2);
--- 4915,4927 ----
    int reg_dest = true_regnum (dest);
    int reg_base = true_regnum (base);
  
!   if (reg_dest == reg_base)  /* R = (R) */
      return avr_asm_len ("ld __tmp_reg__,%1+" CR_TAB
  			"ld %B0,%1"          CR_TAB
  			"mov %A0,__tmp_reg__", op, plen, -3);
  
    avr_asm_len ("ld %A0,%1+" CR_TAB
! 	       "ld %B0,%1", op, plen, -2);
  
    if (!reg_unused_after (insn, base))
      avr_asm_len (TINY_SBIW (%E1, %F1, 1), op, plen, 2);
*************** avr_out_movhi_r_mr_reg_no_disp_tiny (rtx
*** 4313,4319 ****
  
  /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
  
! static const char*
  avr_out_movhi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 4932,4938 ----
  
  /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
  
! static const char *
  avr_out_movhi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** avr_out_movhi_r_mr_reg_disp_tiny (rtx_in
*** 4326,4343 ****
    if (reg_base == reg_dest)
      {
        return avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
!                           "ld __tmp_reg__,%b1+"     CR_TAB
!                           "ld %B0,%b1"              CR_TAB
!                           "mov %A0,__tmp_reg__", op, plen, -5);
      }
    else
      {
        avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
!                    "ld %A0,%b1+"             CR_TAB
!                    "ld %B0,%b1", op, plen, -4);
  
        if (!reg_unused_after (insn, XEXP (base, 0)))
!         avr_asm_len (TINY_SBIW (%I1, %J1, %o1+1), op, plen, 2);
  
        return "";
      }
--- 4945,4962 ----
    if (reg_base == reg_dest)
      {
        return avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
! 			  "ld __tmp_reg__,%b1+"     CR_TAB
! 			  "ld %B0,%b1"              CR_TAB
! 			  "mov %A0,__tmp_reg__", op, plen, -5);
      }
    else
      {
        avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
! 		   "ld %A0,%b1+"             CR_TAB
! 		   "ld %B0,%b1", op, plen, -4);
  
        if (!reg_unused_after (insn, XEXP (base, 0)))
! 	avr_asm_len (TINY_SBIW (%I1, %J1, %o1+1), op, plen, 2);
  
        return "";
      }
*************** avr_out_movhi_r_mr_reg_disp_tiny (rtx_in
*** 4346,4378 ****
  
  /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
  
! static const char*
  avr_out_movhi_r_mr_pre_dec_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
-   int mem_volatile_p = 0;
    rtx dest = op[0];
    rtx src = op[1];
    rtx base = XEXP (src, 0);
  
    /* "volatile" forces reading low byte first, even if less efficient,
       for correct operation with 16-bit I/O registers.  */
!   mem_volatile_p = MEM_VOLATILE_P (src);
  
    if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
      fatal_insn ("incorrect insn:", insn);
  
    if (!mem_volatile_p)
      return avr_asm_len ("ld %B0,%1" CR_TAB
!                         "ld %A0,%1", op, plen, -2);
  
    return avr_asm_len (TINY_SBIW (%I1, %J1, 2)  CR_TAB
!                       "ld %A0,%p1+"            CR_TAB
!                       "ld %B0,%p1"             CR_TAB
!                       TINY_SBIW (%I1, %J1, 1), op, plen, -6);
  }
  
  
! static const char*
  out_movhi_r_mr (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 4965,4996 ----
  
  /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
  
! static const char *
  avr_out_movhi_r_mr_pre_dec_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
    rtx src = op[1];
    rtx base = XEXP (src, 0);
  
    /* "volatile" forces reading low byte first, even if less efficient,
       for correct operation with 16-bit I/O registers.  */
!   bool mem_volatile_p = MEM_VOLATILE_P (src);
  
    if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
      fatal_insn ("incorrect insn:", insn);
  
    if (!mem_volatile_p)
      return avr_asm_len ("ld %B0,%1" CR_TAB
! 			"ld %A0,%1", op, plen, -2);
  
    return avr_asm_len (TINY_SBIW (%I1, %J1, 2)  CR_TAB
! 		      "ld %A0,%p1+"            CR_TAB
! 		      "ld %B0,%p1"             CR_TAB
! 		      TINY_SBIW (%I1, %J1, 1), op, plen, -6);
  }
  
  
! static const char *
  out_movhi_r_mr (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** out_movhi_r_mr (rtx_insn *insn, rtx op[]
*** 4382,4408 ****
    int reg_base = true_regnum (base);
    /* "volatile" forces reading low byte first, even if less efficient,
       for correct operation with 16-bit I/O registers.  */
!   int mem_volatile_p = MEM_VOLATILE_P (src);
  
    if (reg_base > 0)
      {
        if (AVR_TINY)
!         return avr_out_movhi_r_mr_reg_no_disp_tiny (insn, op, plen);
  
        if (reg_dest == reg_base)         /* R = (R) */
!         return avr_asm_len ("ld __tmp_reg__,%1+" CR_TAB
!                             "ld %B0,%1"          CR_TAB
!                             "mov %A0,__tmp_reg__", op, plen, -3);
  
        if (reg_base != REG_X)
!         return avr_asm_len ("ld %A0,%1" CR_TAB
!                             "ldd %B0,%1+1", op, plen, -2);
  
        avr_asm_len ("ld %A0,X+" CR_TAB
!                    "ld %B0,X", op, plen, -2);
  
        if (!reg_unused_after (insn, base))
!         avr_asm_len ("sbiw r26,1", op, plen, 1);
  
        return "";
      }
--- 5000,5026 ----
    int reg_base = true_regnum (base);
    /* "volatile" forces reading low byte first, even if less efficient,
       for correct operation with 16-bit I/O registers.  */
!   bool mem_volatile_p = MEM_VOLATILE_P (src);
  
    if (reg_base > 0)
      {
        if (AVR_TINY)
! 	return avr_out_movhi_r_mr_reg_no_disp_tiny (insn, op, plen);
  
        if (reg_dest == reg_base)         /* R = (R) */
! 	return avr_asm_len ("ld __tmp_reg__,%1+" CR_TAB
! 			    "ld %B0,%1"          CR_TAB
! 			    "mov %A0,__tmp_reg__", op, plen, -3);
  
        if (reg_base != REG_X)
! 	return avr_asm_len ("ld %A0,%1" CR_TAB
! 			    "ldd %B0,%1+1", op, plen, -2);
  
        avr_asm_len ("ld %A0,X+" CR_TAB
! 		   "ld %B0,X", op, plen, -2);
  
        if (!reg_unused_after (insn, base))
! 	avr_asm_len ("sbiw r26,1", op, plen, 1);
  
        return "";
      }
*************** out_movhi_r_mr (rtx_insn *insn, rtx op[]
*** 4412,4467 ****
        int reg_base = true_regnum (XEXP (base, 0));
  
        if (AVR_TINY)
!         return avr_out_movhi_r_mr_reg_disp_tiny (insn, op, plen);
  
        if (disp > MAX_LD_OFFSET (GET_MODE (src)))
!         {
!           if (REGNO (XEXP (base, 0)) != REG_Y)
!             fatal_insn ("incorrect insn:",insn);
  
!           return disp <= 63 + MAX_LD_OFFSET (GET_MODE (src))
!             ? avr_asm_len ("adiw r28,%o1-62" CR_TAB
!                            "ldd %A0,Y+62"    CR_TAB
!                            "ldd %B0,Y+63"    CR_TAB
!                            "sbiw r28,%o1-62", op, plen, -4)
  
!             : avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
!                            "sbci r29,hi8(-%o1)" CR_TAB
!                            "ld %A0,Y"           CR_TAB
!                            "ldd %B0,Y+1"        CR_TAB
!                            "subi r28,lo8(%o1)"  CR_TAB
!                            "sbci r29,hi8(%o1)", op, plen, -6);
!         }
  
        /* This is a paranoid case. LEGITIMIZE_RELOAD_ADDRESS must exclude
!          it but I have this situation with extremal
!          optimization options.  */
  
        if (reg_base == REG_X)
!         {
!           if (reg_base == reg_dest)
!             return avr_asm_len ("adiw r26,%o1"      CR_TAB
!                                 "ld __tmp_reg__,X+" CR_TAB
!                                 "ld %B0,X"          CR_TAB
!                                 "mov %A0,__tmp_reg__", op, plen, -4);
  
!           avr_asm_len ("adiw r26,%o1" CR_TAB
!                        "ld %A0,X+"    CR_TAB
!                        "ld %B0,X", op, plen, -3);
  
!           if (!reg_unused_after (insn, XEXP (base, 0)))
!             avr_asm_len ("sbiw r26,%o1+1", op, plen, 1);
  
!           return "";
!         }
  
        return reg_base == reg_dest
!         ? avr_asm_len ("ldd __tmp_reg__,%A1" CR_TAB
!                        "ldd %B0,%B1"         CR_TAB
!                        "mov %A0,__tmp_reg__", op, plen, -3)
  
!         : avr_asm_len ("ldd %A0,%A1" CR_TAB
!                        "ldd %B0,%B1", op, plen, -2);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      {
--- 5030,5085 ----
        int reg_base = true_regnum (XEXP (base, 0));
  
        if (AVR_TINY)
! 	return avr_out_movhi_r_mr_reg_disp_tiny (insn, op, plen);
  
        if (disp > MAX_LD_OFFSET (GET_MODE (src)))
! 	{
! 	  if (REGNO (XEXP (base, 0)) != REG_Y)
! 	    fatal_insn ("incorrect insn:",insn);
  
! 	  return disp <= 63 + MAX_LD_OFFSET (GET_MODE (src))
! 	    ? avr_asm_len ("adiw r28,%o1-62" CR_TAB
! 			   "ldd %A0,Y+62"    CR_TAB
! 			   "ldd %B0,Y+63"    CR_TAB
! 			   "sbiw r28,%o1-62", op, plen, -4)
  
! 	    : avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
! 			   "sbci r29,hi8(-%o1)" CR_TAB
! 			   "ld %A0,Y"           CR_TAB
! 			   "ldd %B0,Y+1"        CR_TAB
! 			   "subi r28,lo8(%o1)"  CR_TAB
! 			   "sbci r29,hi8(%o1)", op, plen, -6);
! 	}
  
        /* This is a paranoid case. LEGITIMIZE_RELOAD_ADDRESS must exclude
! 	 it but I have this situation with extremal
! 	 optimization options.  */
  
        if (reg_base == REG_X)
! 	{
! 	  if (reg_base == reg_dest)
! 	    return avr_asm_len ("adiw r26,%o1"      CR_TAB
! 				"ld __tmp_reg__,X+" CR_TAB
! 				"ld %B0,X"          CR_TAB
! 				"mov %A0,__tmp_reg__", op, plen, -4);
  
! 	  avr_asm_len ("adiw r26,%o1" CR_TAB
! 		       "ld %A0,X+"    CR_TAB
! 		       "ld %B0,X", op, plen, -3);
  
! 	  if (!reg_unused_after (insn, XEXP (base, 0)))
! 	    avr_asm_len ("sbiw r26,%o1+1", op, plen, 1);
  
! 	  return "";
! 	}
  
        return reg_base == reg_dest
! 	? avr_asm_len ("ldd __tmp_reg__,%A1" CR_TAB
! 		       "ldd %B0,%B1"         CR_TAB
! 		       "mov %A0,__tmp_reg__", op, plen, -3)
  
! 	: avr_asm_len ("ldd %A0,%A1" CR_TAB
! 		       "ldd %B0,%B1", op, plen, -2);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      {
*************** out_movhi_r_mr (rtx_insn *insn, rtx op[]
*** 4469,4514 ****
  	return avr_out_movhi_r_mr_pre_dec_tiny (insn, op, plen);
  
        if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
!         fatal_insn ("incorrect insn:", insn);
  
        if (!mem_volatile_p)
!         return avr_asm_len ("ld %B0,%1" CR_TAB
!                             "ld %A0,%1", op, plen, -2);
  
        return REGNO (XEXP (base, 0)) == REG_X
!         ? avr_asm_len ("sbiw r26,2"  CR_TAB
!                        "ld %A0,X+"   CR_TAB
!                        "ld %B0,X"    CR_TAB
!                        "sbiw r26,1", op, plen, -4)
  
!         : avr_asm_len ("sbiw %r1,2"  CR_TAB
!                        "ld %A0,%p1"  CR_TAB
!                        "ldd %B0,%p1+1", op, plen, -3);
      }
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      {
        if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
!         fatal_insn ("incorrect insn:", insn);
  
        return avr_asm_len ("ld %A0,%1"  CR_TAB
!                           "ld %B0,%1", op, plen, -2);
      }
    else if (CONSTANT_ADDRESS_P (base))
      {
        int n_words = AVR_TINY ? 2 : 4;
        return io_address_operand (base, HImode)
!         ? avr_asm_len ("in %A0,%i1" CR_TAB
!                        "in %B0,%i1+1", op, plen, -2)
  
!         : avr_asm_len ("lds %A0,%m1" CR_TAB
!                        "lds %B0,%m1+1", op, plen, -n_words);
      }
  
    fatal_insn ("unknown move insn:",insn);
    return "";
  }
  
! static const char*
  avr_out_movsi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
--- 5087,5132 ----
  	return avr_out_movhi_r_mr_pre_dec_tiny (insn, op, plen);
  
        if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
! 	fatal_insn ("incorrect insn:", insn);
  
        if (!mem_volatile_p)
! 	return avr_asm_len ("ld %B0,%1" CR_TAB
! 			    "ld %A0,%1", op, plen, -2);
  
        return REGNO (XEXP (base, 0)) == REG_X
! 	? avr_asm_len ("sbiw r26,2"  CR_TAB
! 		       "ld %A0,X+"   CR_TAB
! 		       "ld %B0,X"    CR_TAB
! 		       "sbiw r26,1", op, plen, -4)
  
! 	: avr_asm_len ("sbiw %r1,2"  CR_TAB
! 		       "ld %A0,%p1"  CR_TAB
! 		       "ldd %B0,%p1+1", op, plen, -3);
      }
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      {
        if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
! 	fatal_insn ("incorrect insn:", insn);
  
        return avr_asm_len ("ld %A0,%1"  CR_TAB
! 			  "ld %B0,%1", op, plen, -2);
      }
    else if (CONSTANT_ADDRESS_P (base))
      {
        int n_words = AVR_TINY ? 2 : 4;
        return io_address_operand (base, HImode)
! 	? avr_asm_len ("in %A0,%i1" CR_TAB
! 		       "in %B0,%i1+1", op, plen, -2)
  
! 	: avr_asm_len ("lds %A0,%m1" CR_TAB
! 		       "lds %B0,%m1+1", op, plen, -n_words);
      }
  
    fatal_insn ("unknown move insn:",insn);
    return "";
  }
  
! static const char *
  avr_out_movsi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
*************** avr_out_movsi_r_mr_reg_no_disp_tiny (rtx
*** 4554,4560 ****
  }
  
  
! static const char*
  avr_out_movsi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
--- 5172,5178 ----
  }
  
  
! static const char *
  avr_out_movsi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
*************** avr_out_movsi_r_mr_reg_disp_tiny (rtx_in
*** 4567,4608 ****
      {
        /* "ld r26,-X" is undefined */
        return *l = 9, (TINY_ADIW (%I1, %J1, %o1+3) CR_TAB
!                       "ld %D0,%b1"                CR_TAB
!                       "ld %C0,-%b1"               CR_TAB
!                       "ld __tmp_reg__,-%b1"       CR_TAB
!                       TINY_SBIW (%I1, %J1, 1)     CR_TAB
!                       "ld %A0,%b1"                CR_TAB
!                       "mov %B0,__tmp_reg__");
      }
    else if (reg_dest == reg_base - 2)
      {
        return *l = 7, (TINY_ADIW (%I1, %J1, %o1) CR_TAB
!                       "ld %A0,%b1+"             CR_TAB
!                       "ld %B0,%b1+"             CR_TAB
!                       "ld __tmp_reg__,%b1+"     CR_TAB
!                       "ld %D0,%b1"              CR_TAB
!                       "mov %C0,__tmp_reg__");
      }
    else if (reg_unused_after (insn, XEXP (base, 0)))
      {
        return *l = 6, (TINY_ADIW (%I1, %J1, %o1) CR_TAB
!                       "ld %A0,%b1+"             CR_TAB
!                       "ld %B0,%b1+"             CR_TAB
!                       "ld %C0,%b1+"             CR_TAB
!                       "ld %D0,%b1");
      }
    else
      {
        return *l = 8, (TINY_ADIW (%I1, %J1, %o1)  CR_TAB
!                       "ld %A0,%b1+"              CR_TAB
!                       "ld %B0,%b1+"              CR_TAB
!                       "ld %C0,%b1+"              CR_TAB
!                       "ld %D0,%b1"               CR_TAB
!                       TINY_SBIW (%I1, %J1, %o1+3));
      }
  }
  
! static const char*
  out_movsi_r_mr (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
--- 5185,5226 ----
      {
        /* "ld r26,-X" is undefined */
        return *l = 9, (TINY_ADIW (%I1, %J1, %o1+3) CR_TAB
! 		      "ld %D0,%b1"                CR_TAB
! 		      "ld %C0,-%b1"               CR_TAB
! 		      "ld __tmp_reg__,-%b1"       CR_TAB
! 		      TINY_SBIW (%I1, %J1, 1)     CR_TAB
! 		      "ld %A0,%b1"                CR_TAB
! 		      "mov %B0,__tmp_reg__");
      }
    else if (reg_dest == reg_base - 2)
      {
        return *l = 7, (TINY_ADIW (%I1, %J1, %o1) CR_TAB
! 		      "ld %A0,%b1+"             CR_TAB
! 		      "ld %B0,%b1+"             CR_TAB
! 		      "ld __tmp_reg__,%b1+"     CR_TAB
! 		      "ld %D0,%b1"              CR_TAB
! 		      "mov %C0,__tmp_reg__");
      }
    else if (reg_unused_after (insn, XEXP (base, 0)))
      {
        return *l = 6, (TINY_ADIW (%I1, %J1, %o1) CR_TAB
! 		      "ld %A0,%b1+"             CR_TAB
! 		      "ld %B0,%b1+"             CR_TAB
! 		      "ld %C0,%b1+"             CR_TAB
! 		      "ld %D0,%b1");
      }
    else
      {
        return *l = 8, (TINY_ADIW (%I1, %J1, %o1)  CR_TAB
! 		      "ld %A0,%b1+"              CR_TAB
! 		      "ld %B0,%b1+"              CR_TAB
! 		      "ld %C0,%b1+"              CR_TAB
! 		      "ld %D0,%b1"               CR_TAB
! 		      TINY_SBIW (%I1, %J1, %o1+3));
      }
  }
  
! static const char *
  out_movsi_r_mr (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
*************** out_movsi_r_mr (rtx_insn *insn, rtx op[]
*** 4618,4628 ****
    if (reg_base > 0)
      {
        if (AVR_TINY)
!         return avr_out_movsi_r_mr_reg_no_disp_tiny (insn, op, l);
  
!       if (reg_base == REG_X)        /* (R26) */
!         {
!           if (reg_dest == REG_X)
  	    /* "ld r26,-X" is undefined */
  	    return *l=7, ("adiw r26,3"        CR_TAB
  			  "ld r29,X"          CR_TAB
--- 5236,5246 ----
    if (reg_base > 0)
      {
        if (AVR_TINY)
! 	return avr_out_movsi_r_mr_reg_no_disp_tiny (insn, op, l);
  
!       if (reg_base == REG_X)  /* (R26) */
! 	{
! 	  if (reg_dest == REG_X)
  	    /* "ld r26,-X" is undefined */
  	    return *l=7, ("adiw r26,3"        CR_TAB
  			  "ld r29,X"          CR_TAB
*************** out_movsi_r_mr (rtx_insn *insn, rtx op[]
*** 4631,4681 ****
  			  "sbiw r26,1"        CR_TAB
  			  "ld r26,X"          CR_TAB
  			  "mov r27,__tmp_reg__");
!           else if (reg_dest == REG_X - 2)
!             return *l=5, ("ld %A0,X+"          CR_TAB
!                           "ld %B0,X+"          CR_TAB
!                           "ld __tmp_reg__,X+"  CR_TAB
!                           "ld %D0,X"           CR_TAB
!                           "mov %C0,__tmp_reg__");
!           else if (reg_unused_after (insn, base))
!             return  *l=4, ("ld %A0,X+" CR_TAB
!                            "ld %B0,X+" CR_TAB
!                            "ld %C0,X+" CR_TAB
!                            "ld %D0,X");
!           else
!             return  *l=5, ("ld %A0,X+" CR_TAB
!                            "ld %B0,X+" CR_TAB
!                            "ld %C0,X+" CR_TAB
!                            "ld %D0,X"  CR_TAB
!                            "sbiw r26,3");
!         }
        else
!         {
!           if (reg_dest == reg_base)
!             return *l=5, ("ldd %D0,%1+3" CR_TAB
!                           "ldd %C0,%1+2" CR_TAB
!                           "ldd __tmp_reg__,%1+1"  CR_TAB
!                           "ld %A0,%1"  CR_TAB
!                           "mov %B0,__tmp_reg__");
!           else if (reg_base == reg_dest + 2)
!             return *l=5, ("ld %A0,%1"             CR_TAB
!                           "ldd %B0,%1+1"          CR_TAB
!                           "ldd __tmp_reg__,%1+2"  CR_TAB
!                           "ldd %D0,%1+3"          CR_TAB
!                           "mov %C0,__tmp_reg__");
!           else
!             return *l=4, ("ld %A0,%1"    CR_TAB
!                           "ldd %B0,%1+1" CR_TAB
!                           "ldd %C0,%1+2" CR_TAB
!                           "ldd %D0,%1+3");
!         }
      }
    else if (GET_CODE (base) == PLUS) /* (R + i) */
      {
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
!         return avr_out_movsi_r_mr_reg_disp_tiny (insn, op, l);
  
        if (disp > MAX_LD_OFFSET (GET_MODE (src)))
  	{
--- 5249,5299 ----
  			  "sbiw r26,1"        CR_TAB
  			  "ld r26,X"          CR_TAB
  			  "mov r27,__tmp_reg__");
! 	  else if (reg_dest == REG_X - 2)
! 	    return *l=5, ("ld %A0,X+"          CR_TAB
! 			  "ld %B0,X+"          CR_TAB
! 			  "ld __tmp_reg__,X+"  CR_TAB
! 			  "ld %D0,X"           CR_TAB
! 			  "mov %C0,__tmp_reg__");
! 	  else if (reg_unused_after (insn, base))
! 	    return  *l=4, ("ld %A0,X+" CR_TAB
! 			   "ld %B0,X+" CR_TAB
! 			   "ld %C0,X+" CR_TAB
! 			   "ld %D0,X");
! 	  else
! 	    return  *l=5, ("ld %A0,X+" CR_TAB
! 			   "ld %B0,X+" CR_TAB
! 			   "ld %C0,X+" CR_TAB
! 			   "ld %D0,X"  CR_TAB
! 			   "sbiw r26,3");
! 	}
        else
! 	{
! 	  if (reg_dest == reg_base)
! 	    return *l=5, ("ldd %D0,%1+3" CR_TAB
! 			  "ldd %C0,%1+2" CR_TAB
! 			  "ldd __tmp_reg__,%1+1"  CR_TAB
! 			  "ld %A0,%1"  CR_TAB
! 			  "mov %B0,__tmp_reg__");
! 	  else if (reg_base == reg_dest + 2)
! 	    return *l=5, ("ld %A0,%1"             CR_TAB
! 			  "ldd %B0,%1+1"          CR_TAB
! 			  "ldd __tmp_reg__,%1+2"  CR_TAB
! 			  "ldd %D0,%1+3"          CR_TAB
! 			  "mov %C0,__tmp_reg__");
! 	  else
! 	    return *l=4, ("ld %A0,%1"    CR_TAB
! 			  "ldd %B0,%1+1" CR_TAB
! 			  "ldd %C0,%1+2" CR_TAB
! 			  "ldd %D0,%1+3");
! 	}
      }
    else if (GET_CODE (base) == PLUS) /* (R + i) */
      {
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
! 	return avr_out_movsi_r_mr_reg_disp_tiny (insn, op, l);
  
        if (disp > MAX_LD_OFFSET (GET_MODE (src)))
  	{
*************** out_movsi_r_mr (rtx_insn *insn, rtx op[]
*** 4733,4753 ****
  		  "sbiw r26,%o1+3");
  	}
        if (reg_dest == reg_base)
!         return *l=5, ("ldd %D0,%D1"          CR_TAB
!                       "ldd %C0,%C1"          CR_TAB
!                       "ldd __tmp_reg__,%B1"  CR_TAB
!                       "ldd %A0,%A1"          CR_TAB
!                       "mov %B0,__tmp_reg__");
        else if (reg_dest == reg_base - 2)
!         return *l=5, ("ldd %A0,%A1"          CR_TAB
!                       "ldd %B0,%B1"          CR_TAB
!                       "ldd __tmp_reg__,%C1"  CR_TAB
!                       "ldd %D0,%D1"          CR_TAB
!                       "mov %C0,__tmp_reg__");
        return *l=4, ("ldd %A0,%A1" CR_TAB
!                     "ldd %B0,%B1" CR_TAB
!                     "ldd %C0,%C1" CR_TAB
!                     "ldd %D0,%D1");
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      return *l=4, ("ld %D0,%1" CR_TAB
--- 5351,5371 ----
  		  "sbiw r26,%o1+3");
  	}
        if (reg_dest == reg_base)
! 	return *l=5, ("ldd %D0,%D1"          CR_TAB
! 		      "ldd %C0,%C1"          CR_TAB
! 		      "ldd __tmp_reg__,%B1"  CR_TAB
! 		      "ldd %A0,%A1"          CR_TAB
! 		      "mov %B0,__tmp_reg__");
        else if (reg_dest == reg_base - 2)
! 	return *l=5, ("ldd %A0,%A1"          CR_TAB
! 		      "ldd %B0,%B1"          CR_TAB
! 		      "ldd __tmp_reg__,%C1"  CR_TAB
! 		      "ldd %D0,%D1"          CR_TAB
! 		      "mov %C0,__tmp_reg__");
        return *l=4, ("ldd %A0,%A1" CR_TAB
! 		    "ldd %B0,%B1" CR_TAB
! 		    "ldd %C0,%C1" CR_TAB
! 		    "ldd %D0,%D1");
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      return *l=4, ("ld %D0,%1" CR_TAB
*************** out_movsi_r_mr (rtx_insn *insn, rtx op[]
*** 4762,4789 ****
    else if (CONSTANT_ADDRESS_P (base))
      {
        if (io_address_operand (base, SImode))
!         {
!           *l = 4;
!           return ("in %A0,%i1"   CR_TAB
!                   "in %B0,%i1+1" CR_TAB
!                   "in %C0,%i1+2" CR_TAB
!                   "in %D0,%i1+3");
!         }
        else
!         {
!           *l = AVR_TINY ? 4 : 8;
!           return ("lds %A0,%m1"   CR_TAB
!                   "lds %B0,%m1+1" CR_TAB
!                   "lds %C0,%m1+2" CR_TAB
!                   "lds %D0,%m1+3");
!         }
      }
  
    fatal_insn ("unknown move insn:",insn);
    return "";
  }
  
! static const char*
  avr_out_movsi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
--- 5380,5407 ----
    else if (CONSTANT_ADDRESS_P (base))
      {
        if (io_address_operand (base, SImode))
! 	{
! 	  *l = 4;
! 	  return ("in %A0,%i1"   CR_TAB
! 		  "in %B0,%i1+1" CR_TAB
! 		  "in %C0,%i1+2" CR_TAB
! 		  "in %D0,%i1+3");
! 	}
        else
! 	{
! 	  *l = AVR_TINY ? 4 : 8;
! 	  return ("lds %A0,%m1"   CR_TAB
! 		  "lds %B0,%m1+1" CR_TAB
! 		  "lds %C0,%m1+2" CR_TAB
! 		  "lds %D0,%m1+3");
! 	}
      }
  
    fatal_insn ("unknown move insn:",insn);
    return "";
  }
  
! static const char *
  avr_out_movsi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
*************** avr_out_movsi_mr_r_reg_no_disp_tiny (rtx
*** 4796,4830 ****
      {
        /* "ld r26,-X" is undefined */
        if (reg_unused_after (insn, base))
!         {
!           return *l = 7, ("mov __tmp_reg__, %B1"  CR_TAB
  			  "st %0,%A1"             CR_TAB
  			  TINY_ADIW (%E0, %F0, 1) CR_TAB
  			  "st %0+,__tmp_reg__"    CR_TAB
  			  "st %0+,%C1"            CR_TAB
  			  "st %0+,%D1");
!         }
        else
!         {
!           return *l = 9, ("mov __tmp_reg__, %B1"  CR_TAB
  			  "st %0,%A1"             CR_TAB
  			  TINY_ADIW (%E0, %F0, 1) CR_TAB
  			  "st %0+,__tmp_reg__"    CR_TAB
  			  "st %0+,%C1"            CR_TAB
  			  "st %0+,%D1"            CR_TAB
  			  TINY_SBIW (%E0, %F0, 3));
!         }
      }
    else if (reg_base == reg_src + 2)
      {
        if (reg_unused_after (insn, base))
  	return *l = 7, ("mov __zero_reg__,%C1" CR_TAB
!                         "mov __tmp_reg__,%D1"  CR_TAB
!                         "st %0+,%A1"           CR_TAB
!                         "st %0+,%B1"           CR_TAB
!                         "st %0+,__zero_reg__"  CR_TAB
!                         "st %0,__tmp_reg__"    CR_TAB
!                         "clr __zero_reg__");
        else
  	return *l = 9, ("mov __zero_reg__,%C1" CR_TAB
  			"mov __tmp_reg__,%D1"  CR_TAB
--- 5414,5448 ----
      {
        /* "ld r26,-X" is undefined */
        if (reg_unused_after (insn, base))
! 	{
! 	  return *l = 7, ("mov __tmp_reg__, %B1"  CR_TAB
  			  "st %0,%A1"             CR_TAB
  			  TINY_ADIW (%E0, %F0, 1) CR_TAB
  			  "st %0+,__tmp_reg__"    CR_TAB
  			  "st %0+,%C1"            CR_TAB
  			  "st %0+,%D1");
! 	}
        else
! 	{
! 	  return *l = 9, ("mov __tmp_reg__, %B1"  CR_TAB
  			  "st %0,%A1"             CR_TAB
  			  TINY_ADIW (%E0, %F0, 1) CR_TAB
  			  "st %0+,__tmp_reg__"    CR_TAB
  			  "st %0+,%C1"            CR_TAB
  			  "st %0+,%D1"            CR_TAB
  			  TINY_SBIW (%E0, %F0, 3));
! 	}
      }
    else if (reg_base == reg_src + 2)
      {
        if (reg_unused_after (insn, base))
  	return *l = 7, ("mov __zero_reg__,%C1" CR_TAB
! 			"mov __tmp_reg__,%D1"  CR_TAB
! 			"st %0+,%A1"           CR_TAB
! 			"st %0+,%B1"           CR_TAB
! 			"st %0+,__zero_reg__"  CR_TAB
! 			"st %0,__tmp_reg__"    CR_TAB
! 			"clr __zero_reg__");
        else
  	return *l = 9, ("mov __zero_reg__,%C1" CR_TAB
  			"mov __tmp_reg__,%D1"  CR_TAB
*************** avr_out_movsi_mr_r_reg_no_disp_tiny (rtx
*** 4843,4849 ****
  		  TINY_SBIW (%E0, %F0, 3));
  }
  
! static const char*
  avr_out_movsi_mr_r_reg_disp_tiny (rtx op[], int *l)
  {
    rtx dest = op[0];
--- 5461,5467 ----
  		  TINY_SBIW (%E0, %F0, 3));
  }
  
! static const char *
  avr_out_movsi_mr_r_reg_disp_tiny (rtx op[], int *l)
  {
    rtx dest = op[0];
*************** avr_out_movsi_mr_r_reg_disp_tiny (rtx op
*** 4856,4893 ****
      {
        *l = 11;
        return ("mov __tmp_reg__,%A2"        CR_TAB
!               "mov __zero_reg__,%B2"       CR_TAB
!               TINY_ADIW (%I0, %J0, %o0)    CR_TAB
!               "st %b0+,__tmp_reg__"        CR_TAB
!               "st %b0+,__zero_reg__"       CR_TAB
!               "st %b0+,%C2"                CR_TAB
!               "st %b0,%D2"                 CR_TAB
!               "clr __zero_reg__"           CR_TAB
!               TINY_SBIW (%I0, %J0, %o0+3));
      }
    else if (reg_src == reg_base - 2)
      {
        *l = 11;
        return ("mov __tmp_reg__,%C2"         CR_TAB
!               "mov __zero_reg__,%D2"        CR_TAB
!               TINY_ADIW (%I0, %J0, %o0)     CR_TAB
!               "st %b0+,%A0"                 CR_TAB
!               "st %b0+,%B0"                 CR_TAB
!               "st %b0+,__tmp_reg__"         CR_TAB
!               "st %b0,__zero_reg__"         CR_TAB
!               "clr __zero_reg__"            CR_TAB
!               TINY_SBIW (%I0, %J0, %o0+3));
      }
    *l = 8;
    return (TINY_ADIW (%I0, %J0, %o0)     CR_TAB
!           "st %b0+,%A1"                 CR_TAB
!           "st %b0+,%B1"                 CR_TAB
!           "st %b0+,%C1"                 CR_TAB
!           "st %b0,%D1"                  CR_TAB
!           TINY_SBIW (%I0, %J0, %o0+3));
  }
  
! static const char*
  out_movsi_mr_r (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
--- 5474,5511 ----
      {
        *l = 11;
        return ("mov __tmp_reg__,%A2"        CR_TAB
! 	      "mov __zero_reg__,%B2"       CR_TAB
! 	      TINY_ADIW (%I0, %J0, %o0)    CR_TAB
! 	      "st %b0+,__tmp_reg__"        CR_TAB
! 	      "st %b0+,__zero_reg__"       CR_TAB
! 	      "st %b0+,%C2"                CR_TAB
! 	      "st %b0,%D2"                 CR_TAB
! 	      "clr __zero_reg__"           CR_TAB
! 	      TINY_SBIW (%I0, %J0, %o0+3));
      }
    else if (reg_src == reg_base - 2)
      {
        *l = 11;
        return ("mov __tmp_reg__,%C2"         CR_TAB
! 	      "mov __zero_reg__,%D2"        CR_TAB
! 	      TINY_ADIW (%I0, %J0, %o0)     CR_TAB
! 	      "st %b0+,%A0"                 CR_TAB
! 	      "st %b0+,%B0"                 CR_TAB
! 	      "st %b0+,__tmp_reg__"         CR_TAB
! 	      "st %b0,__zero_reg__"         CR_TAB
! 	      "clr __zero_reg__"            CR_TAB
! 	      TINY_SBIW (%I0, %J0, %o0+3));
      }
    *l = 8;
    return (TINY_ADIW (%I0, %J0, %o0)     CR_TAB
! 	  "st %b0+,%A1"                 CR_TAB
! 	  "st %b0+,%B1"                 CR_TAB
! 	  "st %b0+,%C1"                 CR_TAB
! 	  "st %b0,%D1"                  CR_TAB
! 	  TINY_SBIW (%I0, %J0, %o0+3));
  }
  
! static const char *
  out_movsi_mr_r (rtx_insn *insn, rtx op[], int *l)
  {
    rtx dest = op[0];
*************** out_movsi_mr_r (rtx_insn *insn, rtx op[]
*** 4903,4978 ****
    if (CONSTANT_ADDRESS_P (base))
      {
        if (io_address_operand (base, SImode))
!         {
!           return *l=4,("out %i0, %A1"  CR_TAB
!                        "out %i0+1,%B1" CR_TAB
!                        "out %i0+2,%C1" CR_TAB
!                        "out %i0+3,%D1");
!         }
        else
!         {
!           *l = AVR_TINY ? 4 : 8;
!           return ("sts %m0,%A1"   CR_TAB
!                   "sts %m0+1,%B1" CR_TAB
!                   "sts %m0+2,%C1" CR_TAB
!                   "sts %m0+3,%D1");
!         }
      }
  
!   if (reg_base > 0)                 /* (r) */
      {
        if (AVR_TINY)
!         return avr_out_movsi_mr_r_reg_no_disp_tiny (insn, op, l);
  
!       if (reg_base == REG_X)                /* (R26) */
!         {
!           if (reg_src == REG_X)
!             {
  	      /* "st X+,r26" is undefined */
!               if (reg_unused_after (insn, base))
  		return *l=6, ("mov __tmp_reg__,r27" CR_TAB
  			      "st X,r26"            CR_TAB
  			      "adiw r26,1"          CR_TAB
  			      "st X+,__tmp_reg__"   CR_TAB
  			      "st X+,r28"           CR_TAB
  			      "st X,r29");
!               else
!                 return *l=7, ("mov __tmp_reg__,r27" CR_TAB
  			      "st X,r26"            CR_TAB
  			      "adiw r26,1"          CR_TAB
  			      "st X+,__tmp_reg__"   CR_TAB
  			      "st X+,r28"           CR_TAB
  			      "st X,r29"            CR_TAB
  			      "sbiw r26,3");
!             }
!           else if (reg_base == reg_src + 2)
!             {
!               if (reg_unused_after (insn, base))
!                 return *l=7, ("mov __zero_reg__,%C1" CR_TAB
!                               "mov __tmp_reg__,%D1"  CR_TAB
!                               "st %0+,%A1"           CR_TAB
!                               "st %0+,%B1"           CR_TAB
!                               "st %0+,__zero_reg__"  CR_TAB
!                               "st %0,__tmp_reg__"    CR_TAB
!                               "clr __zero_reg__");
!               else
!                 return *l=8, ("mov __zero_reg__,%C1" CR_TAB
!                               "mov __tmp_reg__,%D1"  CR_TAB
!                               "st %0+,%A1"           CR_TAB
!                               "st %0+,%B1"           CR_TAB
!                               "st %0+,__zero_reg__"  CR_TAB
!                               "st %0,__tmp_reg__"    CR_TAB
!                               "clr __zero_reg__"     CR_TAB
!                               "sbiw r26,3");
!             }
!           return *l=5, ("st %0+,%A1" CR_TAB
!                         "st %0+,%B1" CR_TAB
!                         "st %0+,%C1" CR_TAB
!                         "st %0,%D1"  CR_TAB
!                         "sbiw r26,3");
!         }
        else
!         return *l=4, ("st %0,%A1"    CR_TAB
  		      "std %0+1,%B1" CR_TAB
  		      "std %0+2,%C1" CR_TAB
  		      "std %0+3,%D1");
--- 5521,5596 ----
    if (CONSTANT_ADDRESS_P (base))
      {
        if (io_address_operand (base, SImode))
! 	{
! 	  return *l=4,("out %i0, %A1"  CR_TAB
! 		       "out %i0+1,%B1" CR_TAB
! 		       "out %i0+2,%C1" CR_TAB
! 		       "out %i0+3,%D1");
! 	}
        else
! 	{
! 	  *l = AVR_TINY ? 4 : 8;
! 	  return ("sts %m0,%A1"   CR_TAB
! 		  "sts %m0+1,%B1" CR_TAB
! 		  "sts %m0+2,%C1" CR_TAB
! 		  "sts %m0+3,%D1");
! 	}
      }
  
!   if (reg_base > 0)  /* (r) */
      {
        if (AVR_TINY)
! 	return avr_out_movsi_mr_r_reg_no_disp_tiny (insn, op, l);
  
!       if (reg_base == REG_X)  /* (R26) */
! 	{
! 	  if (reg_src == REG_X)
! 	    {
  	      /* "st X+,r26" is undefined */
! 	      if (reg_unused_after (insn, base))
  		return *l=6, ("mov __tmp_reg__,r27" CR_TAB
  			      "st X,r26"            CR_TAB
  			      "adiw r26,1"          CR_TAB
  			      "st X+,__tmp_reg__"   CR_TAB
  			      "st X+,r28"           CR_TAB
  			      "st X,r29");
! 	      else
! 		return *l=7, ("mov __tmp_reg__,r27" CR_TAB
  			      "st X,r26"            CR_TAB
  			      "adiw r26,1"          CR_TAB
  			      "st X+,__tmp_reg__"   CR_TAB
  			      "st X+,r28"           CR_TAB
  			      "st X,r29"            CR_TAB
  			      "sbiw r26,3");
! 	    }
! 	  else if (reg_base == reg_src + 2)
! 	    {
! 	      if (reg_unused_after (insn, base))
! 		return *l=7, ("mov __zero_reg__,%C1" CR_TAB
! 			      "mov __tmp_reg__,%D1"  CR_TAB
! 			      "st %0+,%A1"           CR_TAB
! 			      "st %0+,%B1"           CR_TAB
! 			      "st %0+,__zero_reg__"  CR_TAB
! 			      "st %0,__tmp_reg__"    CR_TAB
! 			      "clr __zero_reg__");
! 	      else
! 		return *l=8, ("mov __zero_reg__,%C1" CR_TAB
! 			      "mov __tmp_reg__,%D1"  CR_TAB
! 			      "st %0+,%A1"           CR_TAB
! 			      "st %0+,%B1"           CR_TAB
! 			      "st %0+,__zero_reg__"  CR_TAB
! 			      "st %0,__tmp_reg__"    CR_TAB
! 			      "clr __zero_reg__"     CR_TAB
! 			      "sbiw r26,3");
! 	    }
! 	  return *l=5, ("st %0+,%A1" CR_TAB
! 			"st %0+,%B1" CR_TAB
! 			"st %0+,%C1" CR_TAB
! 			"st %0,%D1"  CR_TAB
! 			"sbiw r26,3");
! 	}
        else
! 	return *l=4, ("st %0,%A1"    CR_TAB
  		      "std %0+1,%B1" CR_TAB
  		      "std %0+2,%C1" CR_TAB
  		      "std %0+3,%D1");
*************** out_movsi_mr_r (rtx_insn *insn, rtx op[]
*** 4982,4988 ****
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
!         return avr_out_movsi_mr_r_reg_disp_tiny (op, l);
  
        reg_base = REGNO (XEXP (base, 0));
        if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
--- 5600,5606 ----
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
! 	return avr_out_movsi_mr_r_reg_disp_tiny (op, l);
  
        reg_base = REGNO (XEXP (base, 0));
        if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
*************** output_movsisf (rtx_insn *insn, rtx oper
*** 5117,5124 ****
  	}
        else if (CONSTANT_P (src))
  	{
!           return output_reload_insisf (operands, NULL_RTX, real_l);
!         }
        else if (MEM_P (src))
  	return out_movsi_r_mr (insn, operands, real_l); /* mov r,m */
      }
--- 5735,5742 ----
  	}
        else if (CONSTANT_P (src))
  	{
! 	  return output_reload_insisf (operands, NULL_RTX, real_l);
! 	}
        else if (MEM_P (src))
  	return out_movsi_r_mr (insn, operands, real_l); /* mov r,m */
      }
*************** output_movsisf (rtx_insn *insn, rtx oper
*** 5127,5133 ****
        const char *templ;
  
        if (src == CONST0_RTX (GET_MODE (dest)))
!         operands[1] = zero_reg_rtx;
  
        templ = out_movsi_mr_r (insn, operands, real_l);
  
--- 5745,5751 ----
        const char *templ;
  
        if (src == CONST0_RTX (GET_MODE (dest)))
! 	operands[1] = zero_reg_rtx;
  
        templ = out_movsi_mr_r (insn, operands, real_l);
  
*************** output_movsisf (rtx_insn *insn, rtx oper
*** 5144,5150 ****
  
  /* Handle loads of 24-bit types from memory to register.  */
  
! static const char*
  avr_out_load_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
--- 5762,5768 ----
  
  /* Handle loads of 24-bit types from memory to register.  */
  
! static const char *
  avr_out_load_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
*************** avr_out_load_psi_reg_no_disp_tiny (rtx_i
*** 5156,5166 ****
    if (reg_base == reg_dest)
      {
        return avr_asm_len (TINY_ADIW (%E1, %F1, 2)   CR_TAB
!                           "ld %C0,%1"               CR_TAB
!                           "ld __tmp_reg__,-%1"      CR_TAB
!                           TINY_SBIW (%E1, %F1, 1)   CR_TAB
!                           "ld %A0,%1"               CR_TAB
!                           "mov %B0,__tmp_reg__", op, plen, -8);
      }
    else
      {
--- 5774,5784 ----
    if (reg_base == reg_dest)
      {
        return avr_asm_len (TINY_ADIW (%E1, %F1, 2)   CR_TAB
! 			  "ld %C0,%1"               CR_TAB
! 			  "ld __tmp_reg__,-%1"      CR_TAB
! 			  TINY_SBIW (%E1, %F1, 1)   CR_TAB
! 			  "ld %A0,%1"               CR_TAB
! 			  "mov %B0,__tmp_reg__", op, plen, -8);
      }
    else
      {
*************** avr_out_load_psi_reg_no_disp_tiny (rtx_i
*** 5169,5183 ****
  		   "ld %C0,%1", op, plen, -3);
  
        if (reg_dest != reg_base - 2
!           && !reg_unused_after (insn, base))
!         {
!           avr_asm_len (TINY_SBIW (%E1, %F1, 2), op, plen, 2);
!         }
        return "";
      }
  }
  
! static const char*
  avr_out_load_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
--- 5787,5801 ----
  		   "ld %C0,%1", op, plen, -3);
  
        if (reg_dest != reg_base - 2
! 	  && !reg_unused_after (insn, base))
! 	{
! 	  avr_asm_len (TINY_SBIW (%E1, %F1, 2), op, plen, 2);
! 	}
        return "";
      }
  }
  
! static const char *
  avr_out_load_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
*************** avr_out_load_psi_reg_disp_tiny (rtx_insn
*** 5190,5217 ****
    if (reg_base == reg_dest)
      {
        return avr_asm_len (TINY_ADIW (%I1, %J1, %o1+2) CR_TAB
!                           "ld %C0,%b1"                CR_TAB
!                           "ld __tmp_reg__,-%b1"       CR_TAB
!                           TINY_SBIW (%I1, %J1, 1)     CR_TAB
!                           "ld %A0,%b1"                CR_TAB
!                           "mov %B0,__tmp_reg__", op, plen, -8);
      }
    else
      {
        avr_asm_len (TINY_ADIW (%I1, %J1, %o1)   CR_TAB
!                    "ld %A0,%b1+"               CR_TAB
!                    "ld %B0,%b1+"               CR_TAB
!                    "ld %C0,%b1", op, plen, -5);
  
        if (reg_dest != reg_base - 2
!           && !reg_unused_after (insn, XEXP (base, 0)))
!         avr_asm_len (TINY_SBIW (%I1, %J1, %o1+2), op, plen, 2);
  
        return "";
      }
  }
  
! static const char*
  avr_out_load_psi (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
--- 5808,5835 ----
    if (reg_base == reg_dest)
      {
        return avr_asm_len (TINY_ADIW (%I1, %J1, %o1+2) CR_TAB
! 			  "ld %C0,%b1"                CR_TAB
! 			  "ld __tmp_reg__,-%b1"       CR_TAB
! 			  TINY_SBIW (%I1, %J1, 1)     CR_TAB
! 			  "ld %A0,%b1"                CR_TAB
! 			  "mov %B0,__tmp_reg__", op, plen, -8);
      }
    else
      {
        avr_asm_len (TINY_ADIW (%I1, %J1, %o1)   CR_TAB
! 		   "ld %A0,%b1+"               CR_TAB
! 		   "ld %B0,%b1+"               CR_TAB
! 		   "ld %C0,%b1", op, plen, -5);
  
        if (reg_dest != reg_base - 2
! 	  && !reg_unused_after (insn, XEXP (base, 0)))
! 	avr_asm_len (TINY_SBIW (%I1, %J1, %o1+2), op, plen, 2);
  
        return "";
      }
  }
  
! static const char *
  avr_out_load_psi (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
*************** avr_out_load_psi (rtx_insn *insn, rtx *o
*** 5223,5348 ****
    if (reg_base > 0)
      {
        if (AVR_TINY)
!         return avr_out_load_psi_reg_no_disp_tiny (insn, op, plen);
  
!       if (reg_base == REG_X)        /* (R26) */
!         {
!           if (reg_dest == REG_X)
!             /* "ld r26,-X" is undefined */
!             return avr_asm_len ("adiw r26,2"        CR_TAB
!                                 "ld r28,X"          CR_TAB
!                                 "ld __tmp_reg__,-X" CR_TAB
!                                 "sbiw r26,1"        CR_TAB
!                                 "ld r26,X"          CR_TAB
!                                 "mov r27,__tmp_reg__", op, plen, -6);
!           else
!             {
!               avr_asm_len ("ld %A0,X+" CR_TAB
!                            "ld %B0,X+" CR_TAB
!                            "ld %C0,X", op, plen, -3);
  
!               if (reg_dest != REG_X - 2
!                   && !reg_unused_after (insn, base))
!                 {
!                   avr_asm_len ("sbiw r26,2", op, plen, 1);
!                 }
  
!               return "";
!             }
!         }
        else /* reg_base != REG_X */
!         {
!           if (reg_dest == reg_base)
!             return avr_asm_len ("ldd %C0,%1+2"          CR_TAB
!                                 "ldd __tmp_reg__,%1+1"  CR_TAB
!                                 "ld  %A0,%1"            CR_TAB
!                                 "mov %B0,__tmp_reg__", op, plen, -4);
!           else
!             return avr_asm_len ("ld  %A0,%1"    CR_TAB
!                                 "ldd %B0,%1+1"  CR_TAB
!                                 "ldd %C0,%1+2", op, plen, -3);
!         }
      }
    else if (GET_CODE (base) == PLUS) /* (R + i) */
      {
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
!         return avr_out_load_psi_reg_disp_tiny (insn, op, plen);
  
        if (disp > MAX_LD_OFFSET (GET_MODE (src)))
!         {
!           if (REGNO (XEXP (base, 0)) != REG_Y)
!             fatal_insn ("incorrect insn:",insn);
  
!           if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
!             return avr_asm_len ("adiw r28,%o1-61" CR_TAB
!                                 "ldd %A0,Y+61"    CR_TAB
!                                 "ldd %B0,Y+62"    CR_TAB
!                                 "ldd %C0,Y+63"    CR_TAB
!                                 "sbiw r28,%o1-61", op, plen, -5);
  
!           return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
!                               "sbci r29,hi8(-%o1)" CR_TAB
!                               "ld  %A0,Y"          CR_TAB
!                               "ldd %B0,Y+1"        CR_TAB
!                               "ldd %C0,Y+2"        CR_TAB
!                               "subi r28,lo8(%o1)"  CR_TAB
!                               "sbci r29,hi8(%o1)", op, plen, -7);
!         }
  
        reg_base = true_regnum (XEXP (base, 0));
        if (reg_base == REG_X)
!         {
!           /* R = (X + d) */
!           if (reg_dest == REG_X)
!             {
!               /* "ld r26,-X" is undefined */
!               return avr_asm_len ("adiw r26,%o1+2"     CR_TAB
!                                   "ld  r28,X"          CR_TAB
!                                   "ld  __tmp_reg__,-X" CR_TAB
!                                   "sbiw r26,1"         CR_TAB
!                                   "ld  r26,X"          CR_TAB
!                                   "mov r27,__tmp_reg__", op, plen, -6);
!             }
  
!           avr_asm_len ("adiw r26,%o1" CR_TAB
!                        "ld %A0,X+"    CR_TAB
!                        "ld %B0,X+"    CR_TAB
!                        "ld %C0,X", op, plen, -4);
  
!           if (reg_dest != REG_W
!               && !reg_unused_after (insn, XEXP (base, 0)))
!             avr_asm_len ("sbiw r26,%o1+2", op, plen, 1);
  
!           return "";
!         }
  
        if (reg_dest == reg_base)
!         return avr_asm_len ("ldd %C0,%C1" CR_TAB
!                             "ldd __tmp_reg__,%B1"  CR_TAB
!                             "ldd %A0,%A1" CR_TAB
!                             "mov %B0,__tmp_reg__", op, plen, -4);
  
        return avr_asm_len ("ldd %A0,%A1" CR_TAB
!                           "ldd %B0,%B1" CR_TAB
!                           "ldd %C0,%C1", op, plen, -3);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      return avr_asm_len ("ld %C0,%1" CR_TAB
!                         "ld %B0,%1" CR_TAB
!                         "ld %A0,%1", op, plen, -3);
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      return avr_asm_len ("ld %A0,%1" CR_TAB
!                         "ld %B0,%1" CR_TAB
!                         "ld %C0,%1", op, plen, -3);
  
    else if (CONSTANT_ADDRESS_P (base))
      {
        int n_words = AVR_TINY ? 3 : 6;
!       return avr_asm_len ("lds %A0,%m1" CR_TAB
!                           "lds %B0,%m1+1" CR_TAB
!                           "lds %C0,%m1+2", op, plen , -n_words);
      }
  
    fatal_insn ("unknown move insn:",insn);
--- 5841,5966 ----
    if (reg_base > 0)
      {
        if (AVR_TINY)
! 	return avr_out_load_psi_reg_no_disp_tiny (insn, op, plen);
  
!       if (reg_base == REG_X)  /* (R26) */
! 	{
! 	  if (reg_dest == REG_X)
! 	    /* "ld r26,-X" is undefined */
! 	    return avr_asm_len ("adiw r26,2"        CR_TAB
! 				"ld r28,X"          CR_TAB
! 				"ld __tmp_reg__,-X" CR_TAB
! 				"sbiw r26,1"        CR_TAB
! 				"ld r26,X"          CR_TAB
! 				"mov r27,__tmp_reg__", op, plen, -6);
! 	  else
! 	    {
! 	      avr_asm_len ("ld %A0,X+" CR_TAB
! 			   "ld %B0,X+" CR_TAB
! 			   "ld %C0,X", op, plen, -3);
  
! 	      if (reg_dest != REG_X - 2
! 		  && !reg_unused_after (insn, base))
! 		{
! 		  avr_asm_len ("sbiw r26,2", op, plen, 1);
! 		}
  
! 	      return "";
! 	    }
! 	}
        else /* reg_base != REG_X */
! 	{
! 	  if (reg_dest == reg_base)
! 	    return avr_asm_len ("ldd %C0,%1+2"          CR_TAB
! 				"ldd __tmp_reg__,%1+1"  CR_TAB
! 				"ld  %A0,%1"            CR_TAB
! 				"mov %B0,__tmp_reg__", op, plen, -4);
! 	  else
! 	    return avr_asm_len ("ld  %A0,%1"    CR_TAB
! 				"ldd %B0,%1+1"  CR_TAB
! 				"ldd %C0,%1+2", op, plen, -3);
! 	}
      }
    else if (GET_CODE (base) == PLUS) /* (R + i) */
      {
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
! 	return avr_out_load_psi_reg_disp_tiny (insn, op, plen);
  
        if (disp > MAX_LD_OFFSET (GET_MODE (src)))
! 	{
! 	  if (REGNO (XEXP (base, 0)) != REG_Y)
! 	    fatal_insn ("incorrect insn:",insn);
  
! 	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
! 	    return avr_asm_len ("adiw r28,%o1-61" CR_TAB
! 				"ldd %A0,Y+61"    CR_TAB
! 				"ldd %B0,Y+62"    CR_TAB
! 				"ldd %C0,Y+63"    CR_TAB
! 				"sbiw r28,%o1-61", op, plen, -5);
  
! 	  return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
! 			      "sbci r29,hi8(-%o1)" CR_TAB
! 			      "ld  %A0,Y"          CR_TAB
! 			      "ldd %B0,Y+1"        CR_TAB
! 			      "ldd %C0,Y+2"        CR_TAB
! 			      "subi r28,lo8(%o1)"  CR_TAB
! 			      "sbci r29,hi8(%o1)", op, plen, -7);
! 	}
  
        reg_base = true_regnum (XEXP (base, 0));
        if (reg_base == REG_X)
! 	{
! 	  /* R = (X + d) */
! 	  if (reg_dest == REG_X)
! 	    {
! 	      /* "ld r26,-X" is undefined */
! 	      return avr_asm_len ("adiw r26,%o1+2"     CR_TAB
! 				  "ld  r28,X"          CR_TAB
! 				  "ld  __tmp_reg__,-X" CR_TAB
! 				  "sbiw r26,1"         CR_TAB
! 				  "ld  r26,X"          CR_TAB
! 				  "mov r27,__tmp_reg__", op, plen, -6);
! 	    }
  
! 	  avr_asm_len ("adiw r26,%o1" CR_TAB
! 		       "ld %A0,X+"    CR_TAB
! 		       "ld %B0,X+"    CR_TAB
! 		       "ld %C0,X", op, plen, -4);
  
! 	  if (reg_dest != REG_W
! 	      && !reg_unused_after (insn, XEXP (base, 0)))
! 	    avr_asm_len ("sbiw r26,%o1+2", op, plen, 1);
  
! 	  return "";
! 	}
  
        if (reg_dest == reg_base)
! 	return avr_asm_len ("ldd %C0,%C1"          CR_TAB
! 			    "ldd __tmp_reg__,%B1"  CR_TAB
! 			    "ldd %A0,%A1"          CR_TAB
! 			    "mov %B0,__tmp_reg__", op, plen, -4);
  
        return avr_asm_len ("ldd %A0,%A1" CR_TAB
! 			  "ldd %B0,%B1" CR_TAB
! 			  "ldd %C0,%C1", op, plen, -3);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      return avr_asm_len ("ld %C0,%1" CR_TAB
! 			"ld %B0,%1" CR_TAB
! 			"ld %A0,%1", op, plen, -3);
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      return avr_asm_len ("ld %A0,%1" CR_TAB
! 			"ld %B0,%1" CR_TAB
! 			"ld %C0,%1", op, plen, -3);
  
    else if (CONSTANT_ADDRESS_P (base))
      {
        int n_words = AVR_TINY ? 3 : 6;
!       return avr_asm_len ("lds %A0,%m1"   CR_TAB
! 			  "lds %B0,%m1+1" CR_TAB
! 			  "lds %C0,%m1+2", op, plen , -n_words);
      }
  
    fatal_insn ("unknown move insn:",insn);
*************** avr_out_load_psi (rtx_insn *insn, rtx *o
*** 5350,5356 ****
  }
  
  
! static const char*
  avr_out_store_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
--- 5968,5974 ----
  }
  
  
! static const char *
  avr_out_store_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
*************** avr_out_store_psi_reg_no_disp_tiny (rtx_
*** 5362,5386 ****
    if (reg_base == reg_src)
      {
        avr_asm_len ("st %0,%A1"              CR_TAB
!                    "mov __tmp_reg__,%B1"    CR_TAB
!                    TINY_ADIW (%E0, %F0, 1)  CR_TAB /* st X+, r27 is undefined */
!                    "st %0+,__tmp_reg__"     CR_TAB
!                    "st %0,%C1", op, plen, -6);
  
      }
    else if (reg_src == reg_base - 2)
      {
        avr_asm_len ("st %0,%A1"              CR_TAB
!                    "mov __tmp_reg__,%C1"    CR_TAB
!                    TINY_ADIW (%E0, %F0, 1)  CR_TAB
!                    "st %0+,%B1"             CR_TAB
!                    "st %0,__tmp_reg__", op, plen, 6);
      }
    else
      {
        avr_asm_len ("st %0+,%A1"  CR_TAB
!                    "st %0+,%B1" CR_TAB
!                    "st %0,%C1", op, plen, -3);
      }
  
    if (!reg_unused_after (insn, base))
--- 5980,6004 ----
    if (reg_base == reg_src)
      {
        avr_asm_len ("st %0,%A1"              CR_TAB
! 		   "mov __tmp_reg__,%B1"    CR_TAB
! 		   TINY_ADIW (%E0, %F0, 1)  CR_TAB /* st X+, r27 is undefined */
! 		   "st %0+,__tmp_reg__"     CR_TAB
! 		   "st %0,%C1", op, plen, -6);
  
      }
    else if (reg_src == reg_base - 2)
      {
        avr_asm_len ("st %0,%A1"              CR_TAB
! 		   "mov __tmp_reg__,%C1"    CR_TAB
! 		   TINY_ADIW (%E0, %F0, 1)  CR_TAB
! 		   "st %0+,%B1"             CR_TAB
! 		   "st %0,__tmp_reg__", op, plen, 6);
      }
    else
      {
        avr_asm_len ("st %0+,%A1"  CR_TAB
! 		   "st %0+,%B1" CR_TAB
! 		   "st %0,%C1", op, plen, -3);
      }
  
    if (!reg_unused_after (insn, base))
*************** avr_out_store_psi_reg_no_disp_tiny (rtx_
*** 5389,5395 ****
    return "";
  }
  
! static const char*
  avr_out_store_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
--- 6007,6013 ----
    return "";
  }
  
! static const char *
  avr_out_store_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
*************** avr_out_store_psi_reg_disp_tiny (rtx_ins
*** 5400,5422 ****
  
    if (reg_src == reg_base)
      avr_asm_len ("mov __tmp_reg__,%A1"          CR_TAB
!                  "mov __zero_reg__,%B1"         CR_TAB
!                  TINY_ADIW (%I0, %J0, %o0)      CR_TAB
!                  "st %b0+,__tmp_reg__"          CR_TAB
!                  "st %b0+,__zero_reg__"         CR_TAB
!                  "st %b0,%C1"                   CR_TAB
!                  "clr __zero_reg__", op, plen, -8);
    else if (reg_src == reg_base - 2)
      avr_asm_len ("mov __tmp_reg__,%C1"          CR_TAB
!                  TINY_ADIW (%I0, %J0, %o0)      CR_TAB
!                  "st %b0+,%A1"                  CR_TAB
!                  "st %b0+,%B1"                  CR_TAB
!                  "st %b0,__tmp_reg__", op, plen, -6);
    else
      avr_asm_len (TINY_ADIW (%I0, %J0, %o0)      CR_TAB
!                  "st %b0+,%A1"                  CR_TAB
!                  "st %b0+,%B1"                  CR_TAB
!                  "st %b0,%C1", op, plen, -5);
  
    if (!reg_unused_after (insn, XEXP (base, 0)))
      avr_asm_len (TINY_SBIW (%I0, %J0, %o0+2), op, plen, 2);
--- 6018,6040 ----
  
    if (reg_src == reg_base)
      avr_asm_len ("mov __tmp_reg__,%A1"          CR_TAB
! 		 "mov __zero_reg__,%B1"         CR_TAB
! 		 TINY_ADIW (%I0, %J0, %o0)      CR_TAB
! 		 "st %b0+,__tmp_reg__"          CR_TAB
! 		 "st %b0+,__zero_reg__"         CR_TAB
! 		 "st %b0,%C1"                   CR_TAB
! 		 "clr __zero_reg__", op, plen, -8);
    else if (reg_src == reg_base - 2)
      avr_asm_len ("mov __tmp_reg__,%C1"          CR_TAB
! 		 TINY_ADIW (%I0, %J0, %o0)      CR_TAB
! 		 "st %b0+,%A1"                  CR_TAB
! 		 "st %b0+,%B1"                  CR_TAB
! 		 "st %b0,__tmp_reg__", op, plen, -6);
    else
      avr_asm_len (TINY_ADIW (%I0, %J0, %o0)      CR_TAB
! 		 "st %b0+,%A1"                  CR_TAB
! 		 "st %b0+,%B1"                  CR_TAB
! 		 "st %b0,%C1", op, plen, -5);
  
    if (!reg_unused_after (insn, XEXP (base, 0)))
      avr_asm_len (TINY_SBIW (%I0, %J0, %o0+2), op, plen, 2);
*************** avr_out_store_psi_reg_disp_tiny (rtx_ins
*** 5426,5432 ****
  
  /* Handle store of 24-bit type from register or zero to memory.  */
  
! static const char*
  avr_out_store_psi (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
--- 6044,6050 ----
  
  /* Handle store of 24-bit type from register or zero to memory.  */
  
! static const char *
  avr_out_store_psi (rtx_insn *insn, rtx *op, int *plen)
  {
    rtx dest = op[0];
*************** avr_out_store_psi (rtx_insn *insn, rtx *
*** 5438,5527 ****
      {
        int n_words = AVR_TINY ? 3 : 6;
        return avr_asm_len ("sts %m0,%A1"   CR_TAB
!                           "sts %m0+1,%B1" CR_TAB
!                           "sts %m0+2,%C1", op, plen, -n_words);
      }
  
!   if (reg_base > 0)                 /* (r) */
      {
        if (AVR_TINY)
!         return avr_out_store_psi_reg_no_disp_tiny (insn, op, plen);
  
!       if (reg_base == REG_X)        /* (R26) */
!         {
!           gcc_assert (!reg_overlap_mentioned_p (base, src));
  
!           avr_asm_len ("st %0+,%A1"  CR_TAB
!                        "st %0+,%B1" CR_TAB
!                        "st %0,%C1", op, plen, -3);
  
!           if (!reg_unused_after (insn, base))
!             avr_asm_len ("sbiw r26,2", op, plen, 1);
  
!           return "";
!         }
        else
!         return avr_asm_len ("st %0,%A1"    CR_TAB
!                             "std %0+1,%B1" CR_TAB
!                             "std %0+2,%C1", op, plen, -3);
      }
    else if (GET_CODE (base) == PLUS) /* (R + i) */
      {
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
!         return avr_out_store_psi_reg_disp_tiny (insn, op, plen);
  
        reg_base = REGNO (XEXP (base, 0));
  
        if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
!         {
!           if (reg_base != REG_Y)
!             fatal_insn ("incorrect insn:",insn);
  
!           if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
!             return avr_asm_len ("adiw r28,%o0-61" CR_TAB
!                                 "std Y+61,%A1"    CR_TAB
!                                 "std Y+62,%B1"    CR_TAB
!                                 "std Y+63,%C1"    CR_TAB
!                                 "sbiw r28,%o0-61", op, plen, -5);
  
!           return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
!                               "sbci r29,hi8(-%o0)" CR_TAB
!                               "st Y,%A1"           CR_TAB
!                               "std Y+1,%B1"        CR_TAB
!                               "std Y+2,%C1"        CR_TAB
!                               "subi r28,lo8(%o0)"  CR_TAB
!                               "sbci r29,hi8(%o0)", op, plen, -7);
!         }
        if (reg_base == REG_X)
!         {
!           /* (X + d) = R */
!           gcc_assert (!reg_overlap_mentioned_p (XEXP (base, 0), src));
  
!           avr_asm_len ("adiw r26,%o0" CR_TAB
!                        "st X+,%A1"    CR_TAB
!                        "st X+,%B1"    CR_TAB
!                        "st X,%C1", op, plen, -4);
  
!           if (!reg_unused_after (insn, XEXP (base, 0)))
!             avr_asm_len ("sbiw r26,%o0+2", op, plen, 1);
  
!           return "";
!         }
  
        return avr_asm_len ("std %A0,%A1" CR_TAB
!                           "std %B0,%B1" CR_TAB
!                           "std %C0,%C1", op, plen, -3);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      return avr_asm_len ("st %0,%C1" CR_TAB
!                         "st %0,%B1" CR_TAB
!                         "st %0,%A1", op, plen, -3);
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      return avr_asm_len ("st %0,%A1" CR_TAB
!                         "st %0,%B1" CR_TAB
!                         "st %0,%C1", op, plen, -3);
  
    fatal_insn ("unknown move insn:",insn);
    return "";
--- 6056,6145 ----
      {
        int n_words = AVR_TINY ? 3 : 6;
        return avr_asm_len ("sts %m0,%A1"   CR_TAB
! 			  "sts %m0+1,%B1" CR_TAB
! 			  "sts %m0+2,%C1", op, plen, -n_words);
      }
  
!   if (reg_base > 0)  /* (r) */
      {
        if (AVR_TINY)
! 	return avr_out_store_psi_reg_no_disp_tiny (insn, op, plen);
  
!       if (reg_base == REG_X)  /* (R26) */
! 	{
! 	  gcc_assert (!reg_overlap_mentioned_p (base, src));
  
! 	  avr_asm_len ("st %0+,%A1"  CR_TAB
! 		       "st %0+,%B1" CR_TAB
! 		       "st %0,%C1", op, plen, -3);
  
! 	  if (!reg_unused_after (insn, base))
! 	    avr_asm_len ("sbiw r26,2", op, plen, 1);
  
! 	  return "";
! 	}
        else
! 	return avr_asm_len ("st %0,%A1"    CR_TAB
! 			    "std %0+1,%B1" CR_TAB
! 			    "std %0+2,%C1", op, plen, -3);
      }
    else if (GET_CODE (base) == PLUS) /* (R + i) */
      {
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
! 	return avr_out_store_psi_reg_disp_tiny (insn, op, plen);
  
        reg_base = REGNO (XEXP (base, 0));
  
        if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
! 	{
! 	  if (reg_base != REG_Y)
! 	    fatal_insn ("incorrect insn:",insn);
  
! 	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
! 	    return avr_asm_len ("adiw r28,%o0-61" CR_TAB
! 				"std Y+61,%A1"    CR_TAB
! 				"std Y+62,%B1"    CR_TAB
! 				"std Y+63,%C1"    CR_TAB
! 				"sbiw r28,%o0-61", op, plen, -5);
  
! 	  return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
! 			      "sbci r29,hi8(-%o0)" CR_TAB
! 			      "st Y,%A1"           CR_TAB
! 			      "std Y+1,%B1"        CR_TAB
! 			      "std Y+2,%C1"        CR_TAB
! 			      "subi r28,lo8(%o0)"  CR_TAB
! 			      "sbci r29,hi8(%o0)", op, plen, -7);
! 	}
        if (reg_base == REG_X)
! 	{
! 	  /* (X + d) = R */
! 	  gcc_assert (!reg_overlap_mentioned_p (XEXP (base, 0), src));
  
! 	  avr_asm_len ("adiw r26,%o0" CR_TAB
! 		       "st X+,%A1"    CR_TAB
! 		       "st X+,%B1"    CR_TAB
! 		       "st X,%C1", op, plen, -4);
  
! 	  if (!reg_unused_after (insn, XEXP (base, 0)))
! 	    avr_asm_len ("sbiw r26,%o0+2", op, plen, 1);
  
! 	  return "";
! 	}
  
        return avr_asm_len ("std %A0,%A1" CR_TAB
! 			  "std %B0,%B1" CR_TAB
! 			  "std %C0,%C1", op, plen, -3);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      return avr_asm_len ("st %0,%C1" CR_TAB
! 			"st %0,%B1" CR_TAB
! 			"st %0,%A1", op, plen, -3);
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      return avr_asm_len ("st %0,%A1" CR_TAB
! 			"st %0,%B1" CR_TAB
! 			"st %0,%C1", op, plen, -3);
  
    fatal_insn ("unknown move insn:",insn);
    return "";
*************** avr_out_movpsi (rtx_insn *insn, rtx *op,
*** 5545,5578 ****
    if (register_operand (dest, VOIDmode))
      {
        if (register_operand (src, VOIDmode)) /* mov r,r */
!         {
!           if (true_regnum (dest) > true_regnum (src))
!             {
!               avr_asm_len ("mov %C0,%C1", op, plen, -1);
  
!               if (AVR_HAVE_MOVW)
!                 return avr_asm_len ("movw %A0,%A1", op, plen, 1);
!               else
!                 return avr_asm_len ("mov %B0,%B1"  CR_TAB
!                                     "mov %A0,%A1", op, plen, 2);
!             }
!           else
!             {
!               if (AVR_HAVE_MOVW)
!                 avr_asm_len ("movw %A0,%A1", op, plen, -1);
!               else
!                 avr_asm_len ("mov %A0,%A1"  CR_TAB
!                              "mov %B0,%B1", op, plen, -2);
  
!               return avr_asm_len ("mov %C0,%C1", op, plen, 1);
!             }
!         }
        else if (CONSTANT_P (src))
!         {
!           return avr_out_reload_inpsi (op, NULL_RTX, plen);
!         }
        else if (MEM_P (src))
!         return avr_out_load_psi (insn, op, plen); /* mov r,m */
      }
    else if (MEM_P (dest))
      {
--- 6163,6196 ----
    if (register_operand (dest, VOIDmode))
      {
        if (register_operand (src, VOIDmode)) /* mov r,r */
! 	{
! 	  if (true_regnum (dest) > true_regnum (src))
! 	    {
! 	      avr_asm_len ("mov %C0,%C1", op, plen, -1);
  
! 	      if (AVR_HAVE_MOVW)
! 		return avr_asm_len ("movw %A0,%A1", op, plen, 1);
! 	      else
! 		return avr_asm_len ("mov %B0,%B1"  CR_TAB
! 				    "mov %A0,%A1", op, plen, 2);
! 	    }
! 	  else
! 	    {
! 	      if (AVR_HAVE_MOVW)
! 		avr_asm_len ("movw %A0,%A1", op, plen, -1);
! 	      else
! 		avr_asm_len ("mov %A0,%A1"  CR_TAB
! 			     "mov %B0,%B1", op, plen, -2);
  
! 	      return avr_asm_len ("mov %C0,%C1", op, plen, 1);
! 	    }
! 	}
        else if (CONSTANT_P (src))
! 	{
! 	  return avr_out_reload_inpsi (op, NULL_RTX, plen);
! 	}
        else if (MEM_P (src))
! 	return avr_out_load_psi (insn, op, plen); /* mov r,m */
      }
    else if (MEM_P (dest))
      {
*************** avr_out_movpsi (rtx_insn *insn, rtx *op,
*** 5588,5594 ****
    return "";
  }
  
! static const char*
  avr_out_movqi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 6206,6212 ----
    return "";
  }
  
! static const char *
  avr_out_movqi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** avr_out_movqi_mr_r_reg_disp_tiny (rtx_in
*** 5598,5610 ****
    if (reg_overlap_mentioned_p (src, XEXP (x, 0)))
      {
        avr_asm_len ("mov __tmp_reg__,%1"      CR_TAB
!                    TINY_ADIW (%I0, %J0, %o0) CR_TAB
!                    "st %b0,__tmp_reg__", op, plen, -4);
      }
    else
      {
        avr_asm_len (TINY_ADIW (%I0, %J0, %o0) CR_TAB
!                    "st %b0,%1", op, plen, -3);
      }
  
    if (!reg_unused_after (insn, XEXP (x, 0)))
--- 6216,6228 ----
    if (reg_overlap_mentioned_p (src, XEXP (x, 0)))
      {
        avr_asm_len ("mov __tmp_reg__,%1"      CR_TAB
! 		   TINY_ADIW (%I0, %J0, %o0) CR_TAB
! 		   "st %b0,__tmp_reg__", op, plen, -4);
      }
    else
      {
        avr_asm_len (TINY_ADIW (%I0, %J0, %o0) CR_TAB
! 		   "st %b0,%1", op, plen, -3);
      }
  
    if (!reg_unused_after (insn, XEXP (x, 0)))
*************** avr_out_movqi_mr_r_reg_disp_tiny (rtx_in
*** 5613,5619 ****
    return "";
  }
  
! static const char*
  out_movqi_mr_r (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 6231,6237 ----
    return "";
  }
  
! static const char *
  out_movqi_mr_r (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** out_movqi_mr_r (rtx_insn *insn, rtx op[]
*** 5624,5678 ****
      {
        int n_words = AVR_TINY ? 1 : 2;
        return io_address_operand (x, QImode)
!         ? avr_asm_len ("out %i0,%1", op, plen, -1)
!         : avr_asm_len ("sts %m0,%1", op, plen, -n_words);
      }
    else if (GET_CODE (x) == PLUS
!            && REG_P (XEXP (x, 0))
!            && CONST_INT_P (XEXP (x, 1)))
      {
        /* memory access by reg+disp */
  
        int disp = INTVAL (XEXP (x, 1));
  
        if (AVR_TINY)
!         return avr_out_movqi_mr_r_reg_disp_tiny (insn, op, plen);
  
        if (disp - GET_MODE_SIZE (GET_MODE (dest)) >= 63)
!         {
!           if (REGNO (XEXP (x, 0)) != REG_Y)
!             fatal_insn ("incorrect insn:",insn);
  
!           if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
!             return avr_asm_len ("adiw r28,%o0-63" CR_TAB
!                                 "std Y+63,%1"     CR_TAB
!                                 "sbiw r28,%o0-63", op, plen, -3);
  
!           return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
!                               "sbci r29,hi8(-%o0)" CR_TAB
!                               "st Y,%1"            CR_TAB
!                               "subi r28,lo8(%o0)"  CR_TAB
!                               "sbci r29,hi8(%o0)", op, plen, -5);
!         }
        else if (REGNO (XEXP (x, 0)) == REG_X)
!         {
!           if (reg_overlap_mentioned_p (src, XEXP (x, 0)))
!             {
!               avr_asm_len ("mov __tmp_reg__,%1" CR_TAB
!                            "adiw r26,%o0"       CR_TAB
!                            "st X,__tmp_reg__", op, plen, -3);
!             }
!           else
!             {
!               avr_asm_len ("adiw r26,%o0" CR_TAB
!                            "st X,%1", op, plen, -2);
!             }
  
!           if (!reg_unused_after (insn, XEXP (x, 0)))
!             avr_asm_len ("sbiw r26,%o0", op, plen, 1);
  
!           return "";
!         }
  
        return avr_asm_len ("std %0,%1", op, plen, -1);
      }
--- 6242,6296 ----
      {
        int n_words = AVR_TINY ? 1 : 2;
        return io_address_operand (x, QImode)
! 	? avr_asm_len ("out %i0,%1", op, plen, -1)
! 	: avr_asm_len ("sts %m0,%1", op, plen, -n_words);
      }
    else if (GET_CODE (x) == PLUS
! 	   && REG_P (XEXP (x, 0))
! 	   && CONST_INT_P (XEXP (x, 1)))
      {
        /* memory access by reg+disp */
  
        int disp = INTVAL (XEXP (x, 1));
  
        if (AVR_TINY)
! 	return avr_out_movqi_mr_r_reg_disp_tiny (insn, op, plen);
  
        if (disp - GET_MODE_SIZE (GET_MODE (dest)) >= 63)
! 	{
! 	  if (REGNO (XEXP (x, 0)) != REG_Y)
! 	    fatal_insn ("incorrect insn:",insn);
  
! 	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
! 	    return avr_asm_len ("adiw r28,%o0-63" CR_TAB
! 				"std Y+63,%1"     CR_TAB
! 				"sbiw r28,%o0-63", op, plen, -3);
  
! 	  return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
! 			      "sbci r29,hi8(-%o0)" CR_TAB
! 			      "st Y,%1"            CR_TAB
! 			      "subi r28,lo8(%o0)"  CR_TAB
! 			      "sbci r29,hi8(%o0)", op, plen, -5);
! 	}
        else if (REGNO (XEXP (x, 0)) == REG_X)
! 	{
! 	  if (reg_overlap_mentioned_p (src, XEXP (x, 0)))
! 	    {
! 	      avr_asm_len ("mov __tmp_reg__,%1" CR_TAB
! 			   "adiw r26,%o0"       CR_TAB
! 			   "st X,__tmp_reg__", op, plen, -3);
! 	    }
! 	  else
! 	    {
! 	      avr_asm_len ("adiw r26,%o0" CR_TAB
! 			   "st X,%1", op, plen, -2);
! 	    }
  
! 	  if (!reg_unused_after (insn, XEXP (x, 0)))
! 	    avr_asm_len ("sbiw r26,%o0", op, plen, 1);
  
! 	  return "";
! 	}
  
        return avr_asm_len ("std %0,%1", op, plen, -1);
      }
*************** out_movqi_mr_r (rtx_insn *insn, rtx op[]
*** 5684,5690 ****
  /* Helper for the next function for XMEGA.  It does the same
     but with low byte first.  */
  
! static const char*
  avr_out_movhi_mr_r_xmega (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 6302,6308 ----
  /* Helper for the next function for XMEGA.  It does the same
     but with low byte first.  */
  
! static const char *
  avr_out_movhi_mr_r_xmega (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** avr_out_movhi_mr_r_xmega (rtx_insn *insn
*** 5695,5800 ****
  
    /* "volatile" forces writing low byte first, even if less efficient,
       for correct operation with 16-bit I/O registers like SP.  */
!   int mem_volatile_p = MEM_VOLATILE_P (dest);
  
    if (CONSTANT_ADDRESS_P (base))
      {
        return io_address_operand (base, HImode)
!         ? avr_asm_len ("out %i0,%A1" CR_TAB
!                        "out %i0+1,%B1", op, plen, -2)
  
!         : avr_asm_len ("sts %m0,%A1" CR_TAB
!                        "sts %m0+1,%B1", op, plen, -4);
      }
  
    if (reg_base > 0)
      {
        if (reg_base != REG_X)
!         return avr_asm_len ("st %0,%A1" CR_TAB
!                             "std %0+1,%B1", op, plen, -2);
  
        if (reg_src == REG_X)
!         /* "st X+,r26" and "st -X,r26" are undefined.  */
!         avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
!                      "st X,r26"            CR_TAB
!                      "adiw r26,1"          CR_TAB
!                      "st X,__tmp_reg__", op, plen, -4);
        else
!         avr_asm_len ("st X+,%A1" CR_TAB
!                      "st X,%B1", op, plen, -2);
  
        return reg_unused_after (insn, base)
!         ? ""
!         : avr_asm_len ("sbiw r26,1", op, plen, 1);
      }
    else if (GET_CODE (base) == PLUS)
      {
        int disp = INTVAL (XEXP (base, 1));
        reg_base = REGNO (XEXP (base, 0));
        if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
!         {
!           if (reg_base != REG_Y)
!             fatal_insn ("incorrect insn:",insn);
  
!           return disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))
!             ? avr_asm_len ("adiw r28,%o0-62" CR_TAB
!                            "std Y+62,%A1"    CR_TAB
!                            "std Y+63,%B1"    CR_TAB
!                            "sbiw r28,%o0-62", op, plen, -4)
  
!             : avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
!                            "sbci r29,hi8(-%o0)" CR_TAB
!                            "st Y,%A1"           CR_TAB
!                            "std Y+1,%B1"        CR_TAB
!                            "subi r28,lo8(%o0)"  CR_TAB
!                            "sbci r29,hi8(%o0)", op, plen, -6);
!         }
  
        if (reg_base != REG_X)
!         return avr_asm_len ("std %A0,%A1" CR_TAB
!                             "std %B0,%B1", op, plen, -2);
        /* (X + d) = R */
        return reg_src == REG_X
!         ? avr_asm_len ("mov __tmp_reg__,r26"  CR_TAB
!                        "mov __zero_reg__,r27" CR_TAB
!                        "adiw r26,%o0"         CR_TAB
!                        "st X+,__tmp_reg__"    CR_TAB
!                        "st X,__zero_reg__"    CR_TAB
!                        "clr __zero_reg__"     CR_TAB
!                        "sbiw r26,%o0+1", op, plen, -7)
  
!         : avr_asm_len ("adiw r26,%o0" CR_TAB
!                        "st X+,%A1"    CR_TAB
!                        "st X,%B1"     CR_TAB
!                        "sbiw r26,%o0+1", op, plen, -4);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      {
        if (!mem_volatile_p)
!         return avr_asm_len ("st %0,%B1" CR_TAB
!                             "st %0,%A1", op, plen, -2);
  
        return REGNO (XEXP (base, 0)) == REG_X
!         ? avr_asm_len ("sbiw r26,2"  CR_TAB
!                        "st X+,%A1"   CR_TAB
!                        "st X,%B1"    CR_TAB
!                        "sbiw r26,1", op, plen, -4)
  
!         : avr_asm_len ("sbiw %r0,2"  CR_TAB
!                        "st %p0,%A1"  CR_TAB
!                        "std %p0+1,%B1", op, plen, -3);
      }
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      {
        return avr_asm_len ("st %0,%A1"  CR_TAB
!                           "st %0,%B1", op, plen, -2);
  
      }
    fatal_insn ("unknown move insn:",insn);
    return "";
  }
  
! static const char*
  avr_out_movhi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 6313,6418 ----
  
    /* "volatile" forces writing low byte first, even if less efficient,
       for correct operation with 16-bit I/O registers like SP.  */
!   bool mem_volatile_p = MEM_VOLATILE_P (dest);
  
    if (CONSTANT_ADDRESS_P (base))
      {
        return io_address_operand (base, HImode)
! 	? avr_asm_len ("out %i0,%A1" CR_TAB
! 		       "out %i0+1,%B1", op, plen, -2)
  
! 	: avr_asm_len ("sts %m0,%A1" CR_TAB
! 		       "sts %m0+1,%B1", op, plen, -4);
      }
  
    if (reg_base > 0)
      {
        if (reg_base != REG_X)
! 	return avr_asm_len ("st %0,%A1" CR_TAB
! 			    "std %0+1,%B1", op, plen, -2);
  
        if (reg_src == REG_X)
! 	/* "st X+,r26" and "st -X,r26" are undefined.  */
! 	avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
! 		     "st X,r26"            CR_TAB
! 		     "adiw r26,1"          CR_TAB
! 		     "st X,__tmp_reg__", op, plen, -4);
        else
! 	avr_asm_len ("st X+,%A1" CR_TAB
! 		     "st X,%B1", op, plen, -2);
  
        return reg_unused_after (insn, base)
! 	? ""
! 	: avr_asm_len ("sbiw r26,1", op, plen, 1);
      }
    else if (GET_CODE (base) == PLUS)
      {
        int disp = INTVAL (XEXP (base, 1));
        reg_base = REGNO (XEXP (base, 0));
        if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
! 	{
! 	  if (reg_base != REG_Y)
! 	    fatal_insn ("incorrect insn:",insn);
  
! 	  return disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))
! 	    ? avr_asm_len ("adiw r28,%o0-62" CR_TAB
! 			   "std Y+62,%A1"    CR_TAB
! 			   "std Y+63,%B1"    CR_TAB
! 			   "sbiw r28,%o0-62", op, plen, -4)
  
! 	    : avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
! 			   "sbci r29,hi8(-%o0)" CR_TAB
! 			   "st Y,%A1"           CR_TAB
! 			   "std Y+1,%B1"        CR_TAB
! 			   "subi r28,lo8(%o0)"  CR_TAB
! 			   "sbci r29,hi8(%o0)", op, plen, -6);
! 	}
  
        if (reg_base != REG_X)
! 	return avr_asm_len ("std %A0,%A1" CR_TAB
! 			    "std %B0,%B1", op, plen, -2);
        /* (X + d) = R */
        return reg_src == REG_X
! 	? avr_asm_len ("mov __tmp_reg__,r26"  CR_TAB
! 		       "mov __zero_reg__,r27" CR_TAB
! 		       "adiw r26,%o0"         CR_TAB
! 		       "st X+,__tmp_reg__"    CR_TAB
! 		       "st X,__zero_reg__"    CR_TAB
! 		       "clr __zero_reg__"     CR_TAB
! 		       "sbiw r26,%o0+1", op, plen, -7)
  
! 	: avr_asm_len ("adiw r26,%o0" CR_TAB
! 		       "st X+,%A1"    CR_TAB
! 		       "st X,%B1"     CR_TAB
! 		       "sbiw r26,%o0+1", op, plen, -4);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      {
        if (!mem_volatile_p)
! 	return avr_asm_len ("st %0,%B1" CR_TAB
! 			    "st %0,%A1", op, plen, -2);
  
        return REGNO (XEXP (base, 0)) == REG_X
! 	? avr_asm_len ("sbiw r26,2"  CR_TAB
! 		       "st X+,%A1"   CR_TAB
! 		       "st X,%B1"    CR_TAB
! 		       "sbiw r26,1", op, plen, -4)
  
! 	: avr_asm_len ("sbiw %r0,2"  CR_TAB
! 		       "st %p0,%A1"  CR_TAB
! 		       "std %p0+1,%B1", op, plen, -3);
      }
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      {
        return avr_asm_len ("st %0,%A1"  CR_TAB
! 			  "st %0,%B1", op, plen, -2);
  
      }
    fatal_insn ("unknown move insn:",insn);
    return "";
  }
  
! static const char *
  avr_out_movhi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** avr_out_movhi_mr_r_reg_no_disp_tiny (rtx
*** 5802,5832 ****
    rtx base = XEXP (dest, 0);
    int reg_base = true_regnum (base);
    int reg_src = true_regnum (src);
!   int mem_volatile_p = MEM_VOLATILE_P (dest);
  
    if (reg_base == reg_src)
      {
        return !mem_volatile_p && reg_unused_after (insn, src)
!         ? avr_asm_len ("mov __tmp_reg__,%B1"   CR_TAB
!                        "st %0,%A1"             CR_TAB
!                        TINY_ADIW (%E0, %F0, 1) CR_TAB
!                        "st %0,__tmp_reg__", op, plen, -5)
!         : avr_asm_len ("mov __tmp_reg__,%B1"   CR_TAB
!                        TINY_ADIW (%E0, %F0, 1) CR_TAB
!                        "st %0,__tmp_reg__"     CR_TAB
!                        TINY_SBIW (%E0, %F0, 1) CR_TAB
!                        "st %0, %A1", op, plen, -7);
      }
  
    return !mem_volatile_p && reg_unused_after (insn, base)
      ? avr_asm_len ("st %0+,%A1" CR_TAB
!                    "st %0,%B1", op, plen, -2)
      : avr_asm_len (TINY_ADIW (%E0, %F0, 1) CR_TAB
!                    "st %0,%B1"             CR_TAB
!                    "st -%0,%A1", op, plen, -4);
  }
  
! static const char*
  avr_out_movhi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 6420,6450 ----
    rtx base = XEXP (dest, 0);
    int reg_base = true_regnum (base);
    int reg_src = true_regnum (src);
!   bool mem_volatile_p = MEM_VOLATILE_P (dest);
  
    if (reg_base == reg_src)
      {
        return !mem_volatile_p && reg_unused_after (insn, src)
! 	? avr_asm_len ("mov __tmp_reg__,%B1"   CR_TAB
! 		       "st %0,%A1"             CR_TAB
! 		       TINY_ADIW (%E0, %F0, 1) CR_TAB
! 		       "st %0,__tmp_reg__", op, plen, -5)
! 	: avr_asm_len ("mov __tmp_reg__,%B1"   CR_TAB
! 		       TINY_ADIW (%E0, %F0, 1) CR_TAB
! 		       "st %0,__tmp_reg__"     CR_TAB
! 		       TINY_SBIW (%E0, %F0, 1) CR_TAB
! 		       "st %0, %A1", op, plen, -7);
      }
  
    return !mem_volatile_p && reg_unused_after (insn, base)
      ? avr_asm_len ("st %0+,%A1" CR_TAB
! 		   "st %0,%B1", op, plen, -2)
      : avr_asm_len (TINY_ADIW (%E0, %F0, 1) CR_TAB
! 		   "st %0,%B1"             CR_TAB
! 		   "st -%0,%A1", op, plen, -4);
  }
  
! static const char *
  avr_out_movhi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** avr_out_movhi_mr_r_reg_disp_tiny (rtx_in
*** 5837,5851 ****
  
    if (reg_src == reg_base)
      avr_asm_len ("mov __tmp_reg__,%A1"          CR_TAB
!                  "mov __zero_reg__,%B1"         CR_TAB
!                  TINY_ADIW (%I0, %J0, %o0+1)    CR_TAB
!                  "st %b0,__zero_reg__"          CR_TAB
!                  "st -%b0,__tmp_reg__"          CR_TAB
!                  "clr __zero_reg__", op, plen, -7);
    else
      avr_asm_len (TINY_ADIW (%I0, %J0, %o0+1) CR_TAB
!                  "st %b0,%B1"                CR_TAB
!                  "st -%b0,%A1", op, plen, -4);
  
    if (!reg_unused_after (insn, XEXP (base, 0)))
      avr_asm_len (TINY_SBIW (%I0, %J0, %o0), op, plen, 2);
--- 6455,6469 ----
  
    if (reg_src == reg_base)
      avr_asm_len ("mov __tmp_reg__,%A1"          CR_TAB
! 		 "mov __zero_reg__,%B1"         CR_TAB
! 		 TINY_ADIW (%I0, %J0, %o0+1)    CR_TAB
! 		 "st %b0,__zero_reg__"          CR_TAB
! 		 "st -%b0,__tmp_reg__"          CR_TAB
! 		 "clr __zero_reg__", op, plen, -7);
    else
      avr_asm_len (TINY_ADIW (%I0, %J0, %o0+1) CR_TAB
! 		 "st %b0,%B1"                CR_TAB
! 		 "st -%b0,%A1", op, plen, -4);
  
    if (!reg_unused_after (insn, XEXP (base, 0)))
      avr_asm_len (TINY_SBIW (%I0, %J0, %o0), op, plen, 2);
*************** avr_out_movhi_mr_r_reg_disp_tiny (rtx_in
*** 5853,5868 ****
    return "";
  }
  
! static const char*
  avr_out_movhi_mr_r_post_inc_tiny (rtx op[], int *plen)
  {
    return avr_asm_len (TINY_ADIW (%I0, %J0, 1)  CR_TAB
!                       "st %p0,%B1"    CR_TAB
!                       "st -%p0,%A1"   CR_TAB
!                       TINY_ADIW (%I0, %J0, 2), op, plen, -6);
  }
  
! static const char*
  out_movhi_mr_r (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
--- 6471,6486 ----
    return "";
  }
  
! static const char *
  avr_out_movhi_mr_r_post_inc_tiny (rtx op[], int *plen)
  {
    return avr_asm_len (TINY_ADIW (%I0, %J0, 1)  CR_TAB
! 		      "st %p0,%B1"    CR_TAB
! 		      "st -%p0,%A1"   CR_TAB
! 		      TINY_ADIW (%I0, %J0, 2), op, plen, -6);
  }
  
! static const char *
  out_movhi_mr_r (rtx_insn *insn, rtx op[], int *plen)
  {
    rtx dest = op[0];
*************** out_movhi_mr_r (rtx_insn *insn, rtx op[]
*** 5870,5876 ****
    rtx base = XEXP (dest, 0);
    int reg_base = true_regnum (base);
    int reg_src = true_regnum (src);
-   int mem_volatile_p;
  
    /* "volatile" forces writing high-byte first (no-xmega) resp.
       low-byte first (xmega) even if less efficient, for correct
--- 6488,6493 ----
*************** out_movhi_mr_r (rtx_insn *insn, rtx op[]
*** 5879,6010 ****
    if (AVR_XMEGA)
      return avr_out_movhi_mr_r_xmega (insn, op, plen);
  
!   mem_volatile_p = MEM_VOLATILE_P (dest);
  
    if (CONSTANT_ADDRESS_P (base))
      {
        int n_words = AVR_TINY ? 2 : 4;
        return io_address_operand (base, HImode)
!         ? avr_asm_len ("out %i0+1,%B1" CR_TAB
!                        "out %i0,%A1", op, plen, -2)
  
!         : avr_asm_len ("sts %m0+1,%B1" CR_TAB
!                        "sts %m0,%A1", op, plen, -n_words);
      }
  
    if (reg_base > 0)
      {
        if (AVR_TINY)
!         return avr_out_movhi_mr_r_reg_no_disp_tiny (insn, op, plen);
  
        if (reg_base != REG_X)
!         return avr_asm_len ("std %0+1,%B1" CR_TAB
!                             "st %0,%A1", op, plen, -2);
  
        if (reg_src == REG_X)
!         /* "st X+,r26" and "st -X,r26" are undefined.  */
!         return !mem_volatile_p && reg_unused_after (insn, src)
!           ? avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
!                          "st X,r26"            CR_TAB
!                          "adiw r26,1"          CR_TAB
!                          "st X,__tmp_reg__", op, plen, -4)
  
!           : avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
!                          "adiw r26,1"          CR_TAB
!                          "st X,__tmp_reg__"    CR_TAB
!                          "sbiw r26,1"          CR_TAB
!                          "st X,r26", op, plen, -5);
  
        return !mem_volatile_p && reg_unused_after (insn, base)
!         ? avr_asm_len ("st X+,%A1" CR_TAB
!                        "st X,%B1", op, plen, -2)
!         : avr_asm_len ("adiw r26,1" CR_TAB
!                        "st X,%B1"   CR_TAB
!                        "st -X,%A1", op, plen, -3);
      }
    else if (GET_CODE (base) == PLUS)
      {
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
!         return avr_out_movhi_mr_r_reg_disp_tiny (insn, op, plen);
  
        reg_base = REGNO (XEXP (base, 0));
        if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
!         {
!           if (reg_base != REG_Y)
!             fatal_insn ("incorrect insn:",insn);
  
!           return disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))
!             ? avr_asm_len ("adiw r28,%o0-62" CR_TAB
!                            "std Y+63,%B1"    CR_TAB
!                            "std Y+62,%A1"    CR_TAB
!                            "sbiw r28,%o0-62", op, plen, -4)
  
!             : avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
!                            "sbci r29,hi8(-%o0)" CR_TAB
!                            "std Y+1,%B1"        CR_TAB
!                            "st Y,%A1"           CR_TAB
!                            "subi r28,lo8(%o0)"  CR_TAB
!                            "sbci r29,hi8(%o0)", op, plen, -6);
!         }
  
        if (reg_base != REG_X)
!         return avr_asm_len ("std %B0,%B1" CR_TAB
!                             "std %A0,%A1", op, plen, -2);
        /* (X + d) = R */
        return reg_src == REG_X
!         ? avr_asm_len ("mov __tmp_reg__,r26"  CR_TAB
!                        "mov __zero_reg__,r27" CR_TAB
!                        "adiw r26,%o0+1"       CR_TAB
!                        "st X,__zero_reg__"    CR_TAB
!                        "st -X,__tmp_reg__"    CR_TAB
!                        "clr __zero_reg__"     CR_TAB
!                        "sbiw r26,%o0", op, plen, -7)
  
!         : avr_asm_len ("adiw r26,%o0+1" CR_TAB
!                        "st X,%B1"       CR_TAB
!                        "st -X,%A1"      CR_TAB
!                        "sbiw r26,%o0", op, plen, -4);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      {
        return avr_asm_len ("st %0,%B1" CR_TAB
!                           "st %0,%A1", op, plen, -2);
      }
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      {
        if (!mem_volatile_p)
!         return avr_asm_len ("st %0,%A1"  CR_TAB
!                             "st %0,%B1", op, plen, -2);
  
        if (AVR_TINY)
!         return avr_out_movhi_mr_r_post_inc_tiny (op, plen);
  
        return REGNO (XEXP (base, 0)) == REG_X
!         ? avr_asm_len ("adiw r26,1"  CR_TAB
!                        "st X,%B1"    CR_TAB
!                        "st -X,%A1"   CR_TAB
!                        "adiw r26,2", op, plen, -4)
  
!         : avr_asm_len ("std %p0+1,%B1" CR_TAB
!                        "st %p0,%A1"    CR_TAB
!                        "adiw %r0,2", op, plen, -3);
      }
    fatal_insn ("unknown move insn:",insn);
    return "";
  }
  
  /* Return 1 if frame pointer for current function required.  */
  
  static bool
  avr_frame_pointer_required_p (void)
  {
    return (cfun->calls_alloca
!           || cfun->calls_setjmp
!           || cfun->has_nonlocal_label
!           || crtl->args.info.nregs == 0
!           || get_frame_size () > 0);
  }
  
  
--- 6496,6797 ----
    if (AVR_XMEGA)
      return avr_out_movhi_mr_r_xmega (insn, op, plen);
  
!   bool mem_volatile_p = MEM_VOLATILE_P (dest);
  
    if (CONSTANT_ADDRESS_P (base))
      {
        int n_words = AVR_TINY ? 2 : 4;
        return io_address_operand (base, HImode)
! 	? avr_asm_len ("out %i0+1,%B1" CR_TAB
! 		       "out %i0,%A1", op, plen, -2)
  
! 	: avr_asm_len ("sts %m0+1,%B1" CR_TAB
! 		       "sts %m0,%A1", op, plen, -n_words);
      }
  
    if (reg_base > 0)
      {
        if (AVR_TINY)
! 	return avr_out_movhi_mr_r_reg_no_disp_tiny (insn, op, plen);
  
        if (reg_base != REG_X)
! 	return avr_asm_len ("std %0+1,%B1" CR_TAB
! 			    "st %0,%A1", op, plen, -2);
  
        if (reg_src == REG_X)
! 	/* "st X+,r26" and "st -X,r26" are undefined.  */
! 	return !mem_volatile_p && reg_unused_after (insn, src)
! 	  ? avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
! 			 "st X,r26"            CR_TAB
! 			 "adiw r26,1"          CR_TAB
! 			 "st X,__tmp_reg__", op, plen, -4)
  
! 	  : avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
! 			 "adiw r26,1"          CR_TAB
! 			 "st X,__tmp_reg__"    CR_TAB
! 			 "sbiw r26,1"          CR_TAB
! 			 "st X,r26", op, plen, -5);
  
        return !mem_volatile_p && reg_unused_after (insn, base)
! 	? avr_asm_len ("st X+,%A1" CR_TAB
! 		       "st X,%B1", op, plen, -2)
! 	: avr_asm_len ("adiw r26,1" CR_TAB
! 		       "st X,%B1"   CR_TAB
! 		       "st -X,%A1", op, plen, -3);
      }
    else if (GET_CODE (base) == PLUS)
      {
        int disp = INTVAL (XEXP (base, 1));
  
        if (AVR_TINY)
! 	return avr_out_movhi_mr_r_reg_disp_tiny (insn, op, plen);
  
        reg_base = REGNO (XEXP (base, 0));
        if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
! 	{
! 	  if (reg_base != REG_Y)
! 	    fatal_insn ("incorrect insn:",insn);
  
! 	  return disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))
! 	    ? avr_asm_len ("adiw r28,%o0-62" CR_TAB
! 			   "std Y+63,%B1"    CR_TAB
! 			   "std Y+62,%A1"    CR_TAB
! 			   "sbiw r28,%o0-62", op, plen, -4)
  
! 	    : avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
! 			   "sbci r29,hi8(-%o0)" CR_TAB
! 			   "std Y+1,%B1"        CR_TAB
! 			   "st Y,%A1"           CR_TAB
! 			   "subi r28,lo8(%o0)"  CR_TAB
! 			   "sbci r29,hi8(%o0)", op, plen, -6);
! 	}
  
        if (reg_base != REG_X)
! 	return avr_asm_len ("std %B0,%B1" CR_TAB
! 			    "std %A0,%A1", op, plen, -2);
        /* (X + d) = R */
        return reg_src == REG_X
! 	? avr_asm_len ("mov __tmp_reg__,r26"  CR_TAB
! 		       "mov __zero_reg__,r27" CR_TAB
! 		       "adiw r26,%o0+1"       CR_TAB
! 		       "st X,__zero_reg__"    CR_TAB
! 		       "st -X,__tmp_reg__"    CR_TAB
! 		       "clr __zero_reg__"     CR_TAB
! 		       "sbiw r26,%o0", op, plen, -7)
  
! 	: avr_asm_len ("adiw r26,%o0+1" CR_TAB
! 		       "st X,%B1"       CR_TAB
! 		       "st -X,%A1"      CR_TAB
! 		       "sbiw r26,%o0", op, plen, -4);
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      {
        return avr_asm_len ("st %0,%B1" CR_TAB
! 			  "st %0,%A1", op, plen, -2);
      }
    else if (GET_CODE (base) == POST_INC) /* (R++) */
      {
        if (!mem_volatile_p)
! 	return avr_asm_len ("st %0,%A1"  CR_TAB
! 			    "st %0,%B1", op, plen, -2);
  
        if (AVR_TINY)
! 	return avr_out_movhi_mr_r_post_inc_tiny (op, plen);
  
        return REGNO (XEXP (base, 0)) == REG_X
! 	? avr_asm_len ("adiw r26,1"  CR_TAB
! 		       "st X,%B1"    CR_TAB
! 		       "st -X,%A1"   CR_TAB
! 		       "adiw r26,2", op, plen, -4)
  
! 	: avr_asm_len ("std %p0+1,%B1" CR_TAB
! 		       "st %p0,%A1"    CR_TAB
! 		       "adiw %r0,2", op, plen, -3);
      }
    fatal_insn ("unknown move insn:",insn);
    return "";
  }
  
+ 
+ /* During reload, we allow much more addresses than Reduced Tiny actually
+    supports.  Split them after reload in order to get closer to the
+    core's capabilities.  This sets the stage for pass .avr-fuse-add.  */
+ 
+ bool
+ avr_split_tiny_move (rtx_insn * /*insn*/, rtx *xop)
+ {
+   bool store_p = false;
+   rtx mem, reg_or_0;
+ 
+   if (REG_P (xop[0]) && MEM_P (xop[1]))
+     {
+       reg_or_0 = xop[0];
+       mem = xop[1];
+     }
+   else if (MEM_P (xop[0])
+ 	   && (REG_P (xop[1])
+ 	       || xop[1] == CONST0_RTX (GET_MODE (xop[0]))))
+     {
+       mem = xop[0];
+       reg_or_0 = xop[1];
+       store_p = true;
+     }
+   else
+     return false;
+ 
+   machine_mode mode = GET_MODE (mem);
+   rtx base, addr = XEXP (mem, 0);
+   enum rtx_code addr_code = GET_CODE (addr);
+ 
+   if (REG_P (reg_or_0)
+       && reg_overlap_mentioned_p (reg_or_0, addr))
+     return false;
+   else if (addr_code == PLUS || addr_code == PRE_DEC || addr_code == POST_INC)
+     base = XEXP (addr, 0);
+   else if (addr_code == REG)
+     base = addr;
+   else
+     return false;
+ 
+   if (REGNO (base) > REG_Z)
+     return false;
+ 
+   bool volatile_p = MEM_VOLATILE_P (mem);
+   bool mem_volatile_p = false;
+   if (frame_pointer_needed
+       && REGNO (base) == FRAME_POINTER_REGNUM)
+     {
+       if (avr_fuse_add < 2
+ 	  // Be a projection (we always split PLUS).
+ 	  || (avr_fuse_add == 2 && volatile_p && addr_code != PLUS))
+ 	return false;
+ 
+       // Changing the frame pointer locally may confuse later passes
+       // like .dse2 which don't track changes of FP, not even when
+       // respective CFA notes are present.  An example is pr22141-1.c.
+       if (avr_fuse_add == 2)
+ 	mem_volatile_p = true;
+     }
+ 
+   enum rtx_code new_code = UNKNOWN;
+   HOST_WIDE_INT add = 0, sub = 0;
+   int msize = GET_MODE_SIZE (mode);
+ 
+   AVR_LdSt_Props ap { REGNO (base), store_p, volatile_p, ADDR_SPACE_GENERIC };
+ 
+   switch (addr_code)
+     {
+     default:
+       return false;
+ 
+     case PLUS:
+       add = INTVAL (XEXP (addr, 1));
+       if (msize == 1)
+ 	{
+ 	  new_code = REG;
+ 	  sub = -add;
+ 	}
+       else if (ap.want_predec)
+ 	{
+ 	  // volatile stores prefer PRE_DEC (MSB first)
+ 	  sub = -add;
+ 	  add += msize;
+ 	  new_code = PRE_DEC;
+ 	}
+       else
+ 	{
+ 	  new_code = POST_INC;
+ 	  sub = -add - msize;
+ 	}
+       break;
+ 
+     case POST_INC:
+       // volatile stores prefer PRE_DEC (MSB first)
+       if (msize > 1 && ap.want_predec)
+ 	{
+ 	  add = msize;
+ 	  new_code = PRE_DEC;
+ 	  sub = msize;
+ 	  break;
+ 	}
+       return false;
+ 
+     case PRE_DEC:
+       // volatile loads prefer POST_INC (LSB first)
+       if (msize > 1 && ap.want_postinc)
+ 	{
+ 	  add = -msize;
+ 	  new_code = POST_INC;
+ 	  sub = -msize;
+ 	  break;
+ 	}
+       return false;
+ 
+     case REG:
+       if (msize == 1)
+ 	return false;
+ 
+       if (ap.want_predec)
+ 	{
+ 	  add = msize;
+ 	  new_code = PRE_DEC;
+ 	  sub = 0;
+ 	}
+       else
+ 	{
+ 	  add = 0;
+ 	  new_code = POST_INC;
+ 	  sub = -msize;
+ 	}
+       break;
+     } // switch addr_code
+ 
+   rtx_insn *insn;
+ 
+   if (add)
+     {
+       insn = emit_move_ccc (base, plus_constant (Pmode, base, add));
+       avr_maybe_adjust_cfa (insn, base, add);
+     }
+ 
+   rtx new_addr = new_code == REG
+     ? base
+     : gen_rtx_fmt_e (new_code, Pmode, base);
+ 
+   rtx new_mem = change_address (mem, mode, new_addr);
+   if (mem_volatile_p)
+     MEM_VOLATILE_P (new_mem) = 1;
+ 
+   insn = emit_move_ccc (store_p ? new_mem : reg_or_0,
+ 			store_p ? reg_or_0 : new_mem);
+   if (auto_inc_p (new_addr))
+     {
+       add_reg_note (insn, REG_INC, base);
+       int off = new_code == POST_INC ? msize : -msize;
+       avr_maybe_adjust_cfa (insn, base, off);
+     }
+ 
+   if (sub)
+     {
+       insn = emit_move_ccc (base, plus_constant (Pmode, base, sub));
+       avr_maybe_adjust_cfa (insn, base, sub);
+     }
+ 
+   return true;
+ }
+ 
+ 
+ /* Implement `TARGET_FRAME_POINTER_REQUIRED'.  */
  /* Return 1 if frame pointer for current function required.  */
  
  static bool
  avr_frame_pointer_required_p (void)
  {
    return (cfun->calls_alloca
! 	  || cfun->calls_setjmp
! 	  || cfun->has_nonlocal_label
! 	  || crtl->args.info.has_stack_args
! 	  || get_frame_size () > 0);
  }
  
  
*************** avr_canonicalize_comparison (int *icode,
*** 6149,6164 ****
     PLEN != NULL:  Set *PLEN to the length (in words) of the sequence.
                    Don't output anything.  */
  
! const char*
  avr_out_compare (rtx_insn *insn, rtx *xop, int *plen)
  {
    /* Register to compare and value to compare against. */
    rtx xreg = xop[0];
    rtx xval = xop[1];
  
-   /* MODE of the comparison.  */
-   machine_mode mode;
- 
    /* Number of bytes to operate on.  */
    int n_bytes = GET_MODE_SIZE (GET_MODE (xreg));
  
--- 6936,6948 ----
     PLEN != NULL:  Set *PLEN to the length (in words) of the sequence.
                    Don't output anything.  */
  
! const char *
  avr_out_compare (rtx_insn *insn, rtx *xop, int *plen)
  {
    /* Register to compare and value to compare against. */
    rtx xreg = xop[0];
    rtx xval = xop[1];
  
    /* Number of bytes to operate on.  */
    int n_bytes = GET_MODE_SIZE (GET_MODE (xreg));
  
*************** avr_out_compare (rtx_insn *insn, rtx *xo
*** 6174,6184 ****
        xval = avr_to_int_mode (xop[1]);
      }
  
!   mode = GET_MODE (xreg);
  
    gcc_assert (REG_P (xreg));
    gcc_assert ((CONST_INT_P (xval) && n_bytes <= 4)
!               || (const_double_operand (xval, VOIDmode) && n_bytes == 8));
  
    if (plen)
      *plen = 0;
--- 6958,6969 ----
        xval = avr_to_int_mode (xop[1]);
      }
  
!   /* MODE of the comparison.  */
!   machine_mode mode = GET_MODE (xreg);
  
    gcc_assert (REG_P (xreg));
    gcc_assert ((CONST_INT_P (xval) && n_bytes <= 4)
! 	      || (const_double_operand (xval, VOIDmode) && n_bytes == 8));
  
    if (plen)
      *plen = 0;
*************** avr_out_compare (rtx_insn *insn, rtx *xo
*** 6193,6221 ****
        && reg_unused_after (insn, xreg))
      {
        if (xval == const1_rtx)
!         {
!           avr_asm_len ("dec %A0" CR_TAB
!                        "or %A0,%B0", xop, plen, 2);
  
!           if (n_bytes >= 3)
!             avr_asm_len ("or %A0,%C0", xop, plen, 1);
  
!           if (n_bytes >= 4)
!             avr_asm_len ("or %A0,%D0", xop, plen, 1);
  
!           return "";
!         }
        else if (xval == constm1_rtx)
!         {
!           if (n_bytes >= 4)
!             avr_asm_len ("and %A0,%D0", xop, plen, 1);
  
!           if (n_bytes >= 3)
!             avr_asm_len ("and %A0,%C0", xop, plen, 1);
  
!           return avr_asm_len ("and %A0,%B0" CR_TAB
!                               "com %A0", xop, plen, 2);
!         }
      }
  
    /* Comparisons == -1 and != -1 of a d-register that's used after the
--- 6978,7006 ----
        && reg_unused_after (insn, xreg))
      {
        if (xval == const1_rtx)
! 	{
! 	  avr_asm_len ("dec %A0" CR_TAB
! 		       "or %A0,%B0", xop, plen, 2);
  
! 	  if (n_bytes >= 3)
! 	    avr_asm_len ("or %A0,%C0", xop, plen, 1);
  
! 	  if (n_bytes >= 4)
! 	    avr_asm_len ("or %A0,%D0", xop, plen, 1);
  
! 	  return "";
! 	}
        else if (xval == constm1_rtx)
! 	{
! 	  if (n_bytes >= 4)
! 	    avr_asm_len ("and %A0,%D0", xop, plen, 1);
  
! 	  if (n_bytes >= 3)
! 	    avr_asm_len ("and %A0,%C0", xop, plen, 1);
  
! 	  return avr_asm_len ("and %A0,%B0" CR_TAB
! 			      "com %A0", xop, plen, 2);
! 	}
      }
  
    /* Comparisons == -1 and != -1 of a d-register that's used after the
*************** avr_out_compare (rtx_insn *insn, rtx *xo
*** 6237,6249 ****
        rtx xhi8 = simplify_gen_subreg (QImode, xval, mode, 1);
  
        if (INTVAL (xlo8) == INTVAL (xhi8))
!         {
!           xop[0] = xreg;
!           xop[1] = xlo8;
  
!           return avr_asm_len ("cpi %A0,%1"  CR_TAB
!                               "cpc %B0,%A0", xop, plen, 2);
!         }
      }
  
    for (int i = 0; i < n_bytes; i++)
--- 7022,7034 ----
        rtx xhi8 = simplify_gen_subreg (QImode, xval, mode, 1);
  
        if (INTVAL (xlo8) == INTVAL (xhi8))
! 	{
! 	  xop[0] = xreg;
! 	  xop[1] = xlo8;
  
! 	  return avr_asm_len ("cpi %A0,%1"  CR_TAB
! 			      "cpc %B0,%A0", xop, plen, 2);
! 	}
      }
  
    for (int i = 0; i < n_bytes; i++)
*************** avr_out_compare (rtx_insn *insn, rtx *xo
*** 6264,6337 ****
        /* Word registers >= R24 can use SBIW/ADIW with 0..63.  */
  
        if (i == 0
!           && test_hard_reg_class (ADDW_REGS, reg8))
!         {
!           int val16 = trunc_int_for_mode (INTVAL (xval), HImode);
  
!           if (IN_RANGE (val16, 0, 63)
!               && (val8 == 0
!                   || reg_unused_after (insn, xreg)))
!             {
!               if (AVR_TINY)
!                 avr_asm_len (TINY_SBIW (%A0, %B0, %1), xop, plen, 2);
!               else
!                 avr_asm_len ("sbiw %0,%1", xop, plen, 1);
  
!               i++;
!               continue;
!             }
  
!           if (n_bytes == 2
!               && IN_RANGE (val16, -63, -1)
!               && compare_eq_p (insn)
!               && reg_unused_after (insn, xreg))
!             {
!               return AVR_TINY
!                 ? avr_asm_len (TINY_ADIW (%A0, %B0, %n1), xop, plen, 2)
!                 : avr_asm_len ("adiw %0,%n1", xop, plen, 1);
!             }
!         }
  
        /* Comparing against 0 is easy.  */
  
        if (val8 == 0)
!         {
!           avr_asm_len (i == 0
!                        ? "cp %0,__zero_reg__"
!                        : "cpc %0,__zero_reg__", xop, plen, 1);
!           continue;
!         }
  
        /* Upper registers can compare and subtract-with-carry immediates.
!          Notice that compare instructions do the same as respective subtract
!          instruction; the only difference is that comparisons don't write
!          the result back to the target register.  */
  
        if (ld_reg_p)
!         {
!           if (i == 0)
!             {
!               avr_asm_len ("cpi %0,%1", xop, plen, 1);
!               continue;
!             }
!           else if (reg_unused_after (insn, xreg))
!             {
!               avr_asm_len ("sbci %0,%1", xop, plen, 1);
!               continue;
!             }
!         }
  
        /* Must load the value into the scratch register.  */
  
        gcc_assert (REG_P (xop[2]));
  
        if (clobber_val != (int) val8)
!         avr_asm_len ("ldi %2,%1", xop, plen, 1);
        clobber_val = (int) val8;
  
        avr_asm_len (i == 0
!                    ? "cp %0,%2"
!                    : "cpc %0,%2", xop, plen, 1);
      }
  
    return "";
--- 7049,7117 ----
        /* Word registers >= R24 can use SBIW/ADIW with 0..63.  */
  
        if (i == 0
! 	  && avr_adiw_reg_p (reg8))
! 	{
! 	  int val16 = trunc_int_for_mode (INTVAL (xval), HImode);
  
! 	  if (IN_RANGE (val16, 0, 63)
! 	      && (val8 == 0
! 		  || reg_unused_after (insn, xreg)))
! 	    {
! 	      avr_asm_len ("sbiw %0,%1", xop, plen, 1);
  
! 	      i++;
! 	      continue;
! 	    }
  
! 	  if (n_bytes == 2
! 	      && IN_RANGE (val16, -63, -1)
! 	      && compare_eq_p (insn)
! 	      && reg_unused_after (insn, xreg))
! 	    {
! 	      return avr_asm_len ("adiw %0,%n1", xop, plen, 1);
! 	    }
! 	}
  
        /* Comparing against 0 is easy.  */
  
        if (val8 == 0)
! 	{
! 	  avr_asm_len (i == 0
! 		       ? "cp %0,__zero_reg__"
! 		       : "cpc %0,__zero_reg__", xop, plen, 1);
! 	  continue;
! 	}
  
        /* Upper registers can compare and subtract-with-carry immediates.
! 	 Notice that compare instructions do the same as respective subtract
! 	 instruction; the only difference is that comparisons don't write
! 	 the result back to the target register.  */
  
        if (ld_reg_p)
! 	{
! 	  if (i == 0)
! 	    {
! 	      avr_asm_len ("cpi %0,%1", xop, plen, 1);
! 	      continue;
! 	    }
! 	  else if (reg_unused_after (insn, xreg))
! 	    {
! 	      avr_asm_len ("sbci %0,%1", xop, plen, 1);
! 	      continue;
! 	    }
! 	}
  
        /* Must load the value into the scratch register.  */
  
        gcc_assert (REG_P (xop[2]));
  
        if (clobber_val != (int) val8)
! 	avr_asm_len ("ldi %2,%1", xop, plen, 1);
        clobber_val = (int) val8;
  
        avr_asm_len (i == 0
! 		   ? "cp %0,%2"
! 		   : "cpc %0,%2", xop, plen, 1);
      }
  
    return "";
*************** avr_out_compare (rtx_insn *insn, rtx *xo
*** 6340,6360 ****
  
  /* Prepare operands of compare_const_di2 to be used with avr_out_compare.  */
  
! const char*
  avr_out_compare64 (rtx_insn *insn, rtx *op, int *plen)
  {
!   rtx xop[3];
! 
!   xop[0] = gen_rtx_REG (DImode, 18);
!   xop[1] = op[0];
!   xop[2] = op[1];
  
    return avr_out_compare (insn, xop, plen);
  }
  
  /* Output test instruction for HImode.  */
  
! const char*
  avr_out_tsthi (rtx_insn *insn, rtx *op, int *plen)
  {
    if (compare_sign_p (insn))
--- 7120,7136 ----
  
  /* Prepare operands of compare_const_di2 to be used with avr_out_compare.  */
  
! const char *
  avr_out_compare64 (rtx_insn *insn, rtx *op, int *plen)
  {
!   rtx xop[3] = { gen_rtx_REG (DImode, ACC_A), op[0], op[1] };
  
    return avr_out_compare (insn, xop, plen);
  }
  
  /* Output test instruction for HImode.  */
  
! const char *
  avr_out_tsthi (rtx_insn *insn, rtx *op, int *plen)
  {
    if (compare_sign_p (insn))
*************** avr_out_tsthi (rtx_insn *insn, rtx *op,
*** 6362,6368 ****
        avr_asm_len ("tst %B0", op, plen, -1);
      }
    else if (reg_unused_after (insn, op[0])
!            && compare_eq_p (insn))
      {
        /* Faster than sbiw if we can clobber the operand.  */
        avr_asm_len ("or %A0,%B0", op, plen, -1);
--- 7138,7144 ----
        avr_asm_len ("tst %B0", op, plen, -1);
      }
    else if (reg_unused_after (insn, op[0])
! 	   && compare_eq_p (insn))
      {
        /* Faster than sbiw if we can clobber the operand.  */
        avr_asm_len ("or %A0,%B0", op, plen, -1);
*************** avr_out_tsthi (rtx_insn *insn, rtx *op,
*** 6378,6384 ****
  
  /* Output test instruction for PSImode.  */
  
! const char*
  avr_out_tstpsi (rtx_insn *insn, rtx *op, int *plen)
  {
    if (compare_sign_p (insn))
--- 7154,7160 ----
  
  /* Output test instruction for PSImode.  */
  
! const char *
  avr_out_tstpsi (rtx_insn *insn, rtx *op, int *plen)
  {
    if (compare_sign_p (insn))
*************** avr_out_tstpsi (rtx_insn *insn, rtx *op,
*** 6386,6396 ****
        avr_asm_len ("tst %C0", op, plen, -1);
      }
    else if (reg_unused_after (insn, op[0])
!            && compare_eq_p (insn))
      {
        /* Faster than sbiw if we can clobber the operand.  */
        avr_asm_len ("or %A0,%B0" CR_TAB
!                    "or %A0,%C0", op, plen, -2);
      }
    else
      {
--- 7162,7172 ----
        avr_asm_len ("tst %C0", op, plen, -1);
      }
    else if (reg_unused_after (insn, op[0])
! 	   && compare_eq_p (insn))
      {
        /* Faster than sbiw if we can clobber the operand.  */
        avr_asm_len ("or %A0,%B0" CR_TAB
! 		   "or %A0,%C0", op, plen, -2);
      }
    else
      {
*************** avr_out_tstpsi (rtx_insn *insn, rtx *op,
*** 6403,6409 ****
  
  /* Output test instruction for SImode.  */
  
! const char*
  avr_out_tstsi (rtx_insn *insn, rtx *op, int *plen)
  {
    if (compare_sign_p (insn))
--- 7179,7185 ----
  
  /* Output test instruction for SImode.  */
  
! const char *
  avr_out_tstsi (rtx_insn *insn, rtx *op, int *plen)
  {
    if (compare_sign_p (insn))
*************** avr_out_tstsi (rtx_insn *insn, rtx *op,
*** 6411,6422 ****
        avr_asm_len ("tst %D0", op, plen, -1);
      }
    else if (reg_unused_after (insn, op[0])
!            && compare_eq_p (insn))
      {
        /* Faster than sbiw if we can clobber the operand.  */
        avr_asm_len ("or %A0,%B0" CR_TAB
!                    "or %A0,%C0" CR_TAB
!                    "or %A0,%D0", op, plen, -3);
      }
    else
      {
--- 7187,7198 ----
        avr_asm_len ("tst %D0", op, plen, -1);
      }
    else if (reg_unused_after (insn, op[0])
! 	   && compare_eq_p (insn))
      {
        /* Faster than sbiw if we can clobber the operand.  */
        avr_asm_len ("or %A0,%B0" CR_TAB
! 		   "or %A0,%C0" CR_TAB
! 		   "or %A0,%D0", op, plen, -3);
      }
    else
      {
*************** avr_out_tstsi (rtx_insn *insn, rtx *op,
*** 6433,6439 ****
     PLEN != 0: Set *PLEN to the code length in words. Don't output anything.
     PLEN == 0: Print instructions.  */
  
! const char*
  avr_out_cmp_ext (rtx xop[], enum rtx_code code, int *plen)
  {
    // The smaller reg is the one that's to be extended.  Get its index as z.
--- 7209,7215 ----
     PLEN != 0: Set *PLEN to the code length in words. Don't output anything.
     PLEN == 0: Print instructions.  */
  
! const char *
  avr_out_cmp_ext (rtx xop[], enum rtx_code code, int *plen)
  {
    // The smaller reg is the one that's to be extended.  Get its index as z.
*************** out_shift_with_cnt (const char *templ, r
*** 6525,6580 ****
           If a scratch reg is not available, then the parallel
           will contain only a set and clobber of REG_CC. */
        bool scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
!                       && XVECLEN (PATTERN (insn), 0) == 3
!                       && REG_P (operands[3]));
        int count = INTVAL (operands[2]);
        int max_len = 10;  /* If larger than this, always use a loop.  */
  
        if (count <= 0)
!         return;
  
        if (count < 8 && !scratch)
!         use_zero_reg = true;
  
        if (optimize_size)
!         max_len = t_len + (scratch ? 3 : (use_zero_reg ? 4 : 5));
  
        if (t_len * count <= max_len)
!         {
!           /* Output shifts inline with no loop - faster.  */
  
!           while (count-- > 0)
!             avr_asm_len (templ, op, plen, t_len);
  
!           return;
!         }
  
        if (scratch)
!         {
!           avr_asm_len ("ldi %3,%2", op, plen, 1);
!         }
        else if (use_zero_reg)
!         {
!           /* Hack to save one word: use __zero_reg__ as loop counter.
!              Set one bit, then shift in a loop until it is 0 again.  */
  
!           op[3] = zero_reg_rtx;
  
!           avr_asm_len ("set" CR_TAB
!                        "bld %3,%2-1", op, plen, 2);
!         }
        else
!         {
!           /* No scratch register available, use one from LD_REGS (saved in
!              __tmp_reg__) that doesn't overlap with registers to shift.  */
  
!           op[3] = all_regs_rtx[((REGNO (op[0]) - 1) & 15) + 16];
!           op[4] = tmp_reg_rtx;
!           saved_in_tmp = true;
  
!           avr_asm_len ("mov %4,%3" CR_TAB
!                        "ldi %3,%2", op, plen, 2);
!         }
  
        second_label = false;
      }
--- 7301,7356 ----
           If a scratch reg is not available, then the parallel
           will contain only a set and clobber of REG_CC. */
        bool scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
! 		      && XVECLEN (PATTERN (insn), 0) == 3
! 		      && REG_P (operands[3]));
        int count = INTVAL (operands[2]);
        int max_len = 10;  /* If larger than this, always use a loop.  */
  
        if (count <= 0)
! 	return;
  
        if (count < 8 && !scratch)
! 	use_zero_reg = true;
  
        if (optimize_size)
! 	max_len = t_len + (scratch ? 3 : (use_zero_reg ? 4 : 5));
  
        if (t_len * count <= max_len)
! 	{
! 	  /* Output shifts inline with no loop - faster.  */
  
! 	  while (count-- > 0)
! 	    avr_asm_len (templ, op, plen, t_len);
  
! 	  return;
! 	}
  
        if (scratch)
! 	{
! 	  avr_asm_len ("ldi %3,%2", op, plen, 1);
! 	}
        else if (use_zero_reg)
! 	{
! 	  /* Hack to save one word: use __zero_reg__ as loop counter.
! 	     Set one bit, then shift in a loop until it is 0 again.  */
  
! 	  op[3] = zero_reg_rtx;
  
! 	  avr_asm_len ("set" CR_TAB
! 		       "bld %3,%2-1", op, plen, 2);
! 	}
        else
! 	{
! 	  /* No scratch register available, use one from LD_REGS (saved in
! 	     __tmp_reg__) that doesn't overlap with registers to shift.  */
  
! 	  op[3] = all_regs_rtx[((REGNO (op[0]) - 1) & 15) + REG_16];
! 	  op[4] = tmp_reg_rtx;
! 	  saved_in_tmp = true;
  
! 	  avr_asm_len ("mov %4,%3" CR_TAB
! 		       "ldi %3,%2", op, plen, 2);
! 	}
  
        second_label = false;
      }
*************** out_shift_with_cnt (const char *templ, r
*** 6592,6602 ****
        op[3] = op[2];
  
        if (!reg_unused_after (insn, op[2])
!           || reg_overlap_mentioned_p (op[0], op[2]))
!         {
!           op[3] = tmp_reg_rtx;
!           avr_asm_len ("mov %3,%2", op, plen, 1);
!         }
      }
    else
      fatal_insn ("bad shift insn:", insn);
--- 7368,7378 ----
        op[3] = op[2];
  
        if (!reg_unused_after (insn, op[2])
! 	  || reg_overlap_mentioned_p (op[0], op[2]))
! 	{
! 	  op[3] = tmp_reg_rtx;
! 	  avr_asm_len ("mov %3,%2", op, plen, 1);
! 	}
      }
    else
      fatal_insn ("bad shift insn:", insn);
*************** ashlqi3_out (rtx_insn *insn, rtx operand
*** 6710,6716 ****
      fatal_insn ("internal compiler error.  Incorrect shift:", insn);
  
    out_shift_with_cnt ("lsl %0",
!                       insn, operands, len, 1);
    return "";
  }
  
--- 7486,7492 ----
      fatal_insn ("internal compiler error.  Incorrect shift:", insn);
  
    out_shift_with_cnt ("lsl %0",
! 		      insn, operands, len, 1);
    return "";
  }
  
*************** ashlhi3_out (rtx_insn *insn, rtx operand
*** 6723,6730 ****
    if (CONST_INT_P (operands[2]))
      {
        int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
!                      && XVECLEN (PATTERN (insn), 0) == 3
!                      && REG_P (operands[3]));
        int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
        int k;
        int *t = len;
--- 7499,7506 ----
    if (CONST_INT_P (operands[2]))
      {
        int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
! 		     && XVECLEN (PATTERN (insn), 0) == 3
! 		     && REG_P (operands[3]));
        int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
        int k;
        int *t = len;
*************** ashlhi3_out (rtx_insn *insn, rtx operand
*** 6969,6982 ****
        len = t;
      }
    out_shift_with_cnt ("lsl %A0" CR_TAB
!                       "rol %B0", insn, operands, len, 2);
    return "";
  }
  
  
  /* 24-bit shift left */
  
! const char*
  avr_out_ashlpsi3 (rtx_insn *insn, rtx *op, int *plen)
  {
    if (plen)
--- 7745,7758 ----
        len = t;
      }
    out_shift_with_cnt ("lsl %A0" CR_TAB
! 		      "rol %B0", insn, operands, len, 2);
    return "";
  }
  
  
  /* 24-bit shift left */
  
! const char *
  avr_out_ashlpsi3 (rtx_insn *insn, rtx *op, int *plen)
  {
    if (plen)
*************** avr_out_ashlpsi3 (rtx_insn *insn, rtx *o
*** 6985,7038 ****
    if (CONST_INT_P (op[2]))
      {
        switch (INTVAL (op[2]))
!         {
!         default:
!           if (INTVAL (op[2]) < 24)
!             break;
  
!           return avr_asm_len ("clr %A0" CR_TAB
!                               "clr %B0" CR_TAB
!                               "clr %C0", op, plen, 3);
  
!         case 8:
!           {
!             int reg0 = REGNO (op[0]);
!             int reg1 = REGNO (op[1]);
  
!             if (reg0 >= reg1)
!               return avr_asm_len ("mov %C0,%B1"  CR_TAB
!                                   "mov %B0,%A1"  CR_TAB
!                                   "clr %A0", op, plen, 3);
!             else
!               return avr_asm_len ("clr %A0"      CR_TAB
!                                   "mov %B0,%A1"  CR_TAB
!                                   "mov %C0,%B1", op, plen, 3);
!           }
  
!         case 16:
!           {
!             int reg0 = REGNO (op[0]);
!             int reg1 = REGNO (op[1]);
  
!             if (reg0 + 2 != reg1)
!               avr_asm_len ("mov %C0,%A0", op, plen, 1);
  
!             return avr_asm_len ("clr %B0"  CR_TAB
!                                 "clr %A0", op, plen, 2);
!           }
  
!         case 23:
!           return avr_asm_len ("clr %C0" CR_TAB
!                               "lsr %A0" CR_TAB
!                               "ror %C0" CR_TAB
!                               "clr %B0" CR_TAB
!                               "clr %A0", op, plen, 5);
!         }
      }
  
    out_shift_with_cnt ("lsl %A0" CR_TAB
!                       "rol %B0" CR_TAB
!                       "rol %C0", insn, op, plen, 3);
    return "";
  }
  
--- 7761,7814 ----
    if (CONST_INT_P (op[2]))
      {
        switch (INTVAL (op[2]))
! 	{
! 	default:
! 	  if (INTVAL (op[2]) < 24)
! 	    break;
  
! 	  return avr_asm_len ("clr %A0" CR_TAB
! 			      "clr %B0" CR_TAB
! 			      "clr %C0", op, plen, 3);
  
! 	case 8:
! 	  {
! 	    int reg0 = REGNO (op[0]);
! 	    int reg1 = REGNO (op[1]);
  
! 	    if (reg0 >= reg1)
! 	      return avr_asm_len ("mov %C0,%B1"  CR_TAB
! 				  "mov %B0,%A1"  CR_TAB
! 				  "clr %A0", op, plen, 3);
! 	    else
! 	      return avr_asm_len ("clr %A0"      CR_TAB
! 				  "mov %B0,%A1"  CR_TAB
! 				  "mov %C0,%B1", op, plen, 3);
! 	  }
  
! 	case 16:
! 	  {
! 	    int reg0 = REGNO (op[0]);
! 	    int reg1 = REGNO (op[1]);
  
! 	    if (reg0 + 2 != reg1)
! 	      avr_asm_len ("mov %C0,%A0", op, plen, 1);
  
! 	    return avr_asm_len ("clr %B0"  CR_TAB
! 				"clr %A0", op, plen, 2);
! 	  }
  
! 	case 23:
! 	  return avr_asm_len ("clr %C0" CR_TAB
! 			      "lsr %A0" CR_TAB
! 			      "ror %C0" CR_TAB
! 			      "clr %B0" CR_TAB
! 			      "clr %A0", op, plen, 5);
! 	}
      }
  
    out_shift_with_cnt ("lsl %A0" CR_TAB
! 		      "rol %B0" CR_TAB
! 		      "rol %C0", insn, op, plen, 3);
    return "";
  }
  
*************** ashlsi3_out (rtx_insn *insn, rtx operand
*** 7120,7128 ****
        len = t;
      }
    out_shift_with_cnt ("lsl %A0" CR_TAB
!                       "rol %B0" CR_TAB
!                       "rol %C0" CR_TAB
!                       "rol %D0", insn, operands, len, 4);
    return "";
  }
  
--- 7896,7904 ----
        len = t;
      }
    out_shift_with_cnt ("lsl %A0" CR_TAB
! 		      "rol %B0" CR_TAB
! 		      "rol %C0" CR_TAB
! 		      "rol %D0", insn, operands, len, 4);
    return "";
  }
  
*************** ashrqi3_out (rtx_insn *insn, rtx operand
*** 7193,7199 ****
      fatal_insn ("internal compiler error.  Incorrect shift:", insn);
  
    out_shift_with_cnt ("asr %0",
!                       insn, operands, len, 1);
    return "";
  }
  
--- 7969,7975 ----
      fatal_insn ("internal compiler error.  Incorrect shift:", insn);
  
    out_shift_with_cnt ("asr %0",
! 		      insn, operands, len, 1);
    return "";
  }
  
*************** ashrhi3_out (rtx_insn *insn, rtx operand
*** 7206,7213 ****
    if (CONST_INT_P (operands[2]))
      {
        int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
!                      && XVECLEN (PATTERN (insn), 0) == 3
!                      && REG_P (operands[3]));
        int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
        int k;
        int *t = len;
--- 7982,7989 ----
    if (CONST_INT_P (operands[2]))
      {
        int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
! 		     && XVECLEN (PATTERN (insn), 0) == 3
! 		     && REG_P (operands[3]));
        int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
        int k;
        int *t = len;
*************** ashrhi3_out (rtx_insn *insn, rtx operand
*** 7253,7261 ****
  				"sbc %B0,%B0");
  	    else
  	      return *len = 4, ("mov %A0,%B1" CR_TAB
! 			        "clr %B0"     CR_TAB
! 			        "sbrc %A0,7"  CR_TAB
! 			        "dec %B0");
  	  }
  
  	case 9:
--- 8029,8037 ----
  				"sbc %B0,%B0");
  	    else
  	      return *len = 4, ("mov %A0,%B1" CR_TAB
! 				"clr %B0"     CR_TAB
! 				"sbrc %A0,7"  CR_TAB
! 				"dec %B0");
  	  }
  
  	case 9:
*************** ashrhi3_out (rtx_insn *insn, rtx operand
*** 7358,7371 ****
        len = t;
      }
    out_shift_with_cnt ("asr %B0" CR_TAB
!                       "ror %A0", insn, operands, len, 2);
    return "";
  }
  
  
  /* 24-bit arithmetic shift right */
  
! const char*
  avr_out_ashrpsi3 (rtx_insn *insn, rtx *op, int *plen)
  {
    int dest = REGNO (op[0]);
--- 8134,8147 ----
        len = t;
      }
    out_shift_with_cnt ("asr %B0" CR_TAB
! 		      "ror %A0", insn, operands, len, 2);
    return "";
  }
  
  
  /* 24-bit arithmetic shift right */
  
! const char *
  avr_out_ashrpsi3 (rtx_insn *insn, rtx *op, int *plen)
  {
    int dest = REGNO (op[0]);
*************** avr_out_ashrpsi3 (rtx_insn *insn, rtx *o
*** 7374,7423 ****
    if (CONST_INT_P (op[2]))
      {
        if (plen)
!         *plen = 0;
  
        switch (INTVAL (op[2]))
!         {
!         case 8:
!           if (dest <= src)
!             return avr_asm_len ("mov %A0,%B1" CR_TAB
!                                 "mov %B0,%C1" CR_TAB
!                                 "clr %C0"     CR_TAB
!                                 "sbrc %B0,7"  CR_TAB
!                                 "dec %C0", op, plen, 5);
!           else
!             return avr_asm_len ("clr %C0"     CR_TAB
!                                 "sbrc %C1,7"  CR_TAB
!                                 "dec %C0"     CR_TAB
!                                 "mov %B0,%C1" CR_TAB
!                                 "mov %A0,%B1", op, plen, 5);
  
!         case 16:
!           if (dest != src + 2)
!             avr_asm_len ("mov %A0,%C1", op, plen, 1);
  
!           return avr_asm_len ("clr %B0"     CR_TAB
!                               "sbrc %A0,7"  CR_TAB
!                               "com %B0"     CR_TAB
!                               "mov %C0,%B0", op, plen, 4);
  
!         default:
!           if (INTVAL (op[2]) < 24)
!             break;
  
!           /* fall through */
  
!         case 23:
!           return avr_asm_len ("lsl %C0"     CR_TAB
!                               "sbc %A0,%A0" CR_TAB
!                               "mov %B0,%A0" CR_TAB
!                               "mov %C0,%A0", op, plen, 4);
!         } /* switch */
      }
  
    out_shift_with_cnt ("asr %C0" CR_TAB
!                       "ror %B0" CR_TAB
!                       "ror %A0", insn, op, plen, 3);
    return "";
  }
  
--- 8150,8199 ----
    if (CONST_INT_P (op[2]))
      {
        if (plen)
! 	*plen = 0;
  
        switch (INTVAL (op[2]))
! 	{
! 	case 8:
! 	  if (dest <= src)
! 	    return avr_asm_len ("mov %A0,%B1" CR_TAB
! 				"mov %B0,%C1" CR_TAB
! 				"clr %C0"     CR_TAB
! 				"sbrc %B0,7"  CR_TAB
! 				"dec %C0", op, plen, 5);
! 	  else
! 	    return avr_asm_len ("clr %C0"     CR_TAB
! 				"sbrc %C1,7"  CR_TAB
! 				"dec %C0"     CR_TAB
! 				"mov %B0,%C1" CR_TAB
! 				"mov %A0,%B1", op, plen, 5);
  
! 	case 16:
! 	  if (dest != src + 2)
! 	    avr_asm_len ("mov %A0,%C1", op, plen, 1);
  
! 	  return avr_asm_len ("clr %B0"     CR_TAB
! 			      "sbrc %A0,7"  CR_TAB
! 			      "com %B0"     CR_TAB
! 			      "mov %C0,%B0", op, plen, 4);
  
! 	default:
! 	  if (INTVAL (op[2]) < 24)
! 	    break;
  
! 	  /* fall through */
  
! 	case 23:
! 	  return avr_asm_len ("lsl %C0"     CR_TAB
! 			      "sbc %A0,%A0" CR_TAB
! 			      "mov %B0,%A0" CR_TAB
! 			      "mov %C0,%A0", op, plen, 4);
! 	} /* switch */
      }
  
    out_shift_with_cnt ("asr %C0" CR_TAB
! 		      "ror %B0" CR_TAB
! 		      "ror %A0", insn, op, plen, 3);
    return "";
  }
  
*************** ashrsi3_out (rtx_insn *insn, rtx operand
*** 7513,7521 ****
        len = t;
      }
    out_shift_with_cnt ("asr %D0" CR_TAB
!                       "ror %C0" CR_TAB
!                       "ror %B0" CR_TAB
!                       "ror %A0", insn, operands, len, 4);
    return "";
  }
  
--- 8289,8297 ----
        len = t;
      }
    out_shift_with_cnt ("asr %D0" CR_TAB
! 		      "ror %C0" CR_TAB
! 		      "ror %B0" CR_TAB
! 		      "ror %A0", insn, operands, len, 4);
    return "";
  }
  
*************** lshrqi3_out (rtx_insn *insn, rtx operand
*** 7601,7616 ****
  
  	case 7:
  	  *len = 3;
! 	  return ("rol %0" CR_TAB
! 		  "clr %0" CR_TAB
! 		  "rol %0");
  	}
      }
    else if (CONSTANT_P (operands[2]))
      fatal_insn ("internal compiler error.  Incorrect shift:", insn);
  
    out_shift_with_cnt ("lsr %0",
!                       insn, operands, len, 1);
    return "";
  }
  
--- 8377,8392 ----
  
  	case 7:
  	  *len = 3;
! 	  return ("bst %1,7" CR_TAB
! 		  "clr %0"   CR_TAB
! 		  "bld %0,0");
  	}
      }
    else if (CONSTANT_P (operands[2]))
      fatal_insn ("internal compiler error.  Incorrect shift:", insn);
  
    out_shift_with_cnt ("lsr %0",
! 		      insn, operands, len, 1);
    return "";
  }
  
*************** lshrhi3_out (rtx_insn *insn, rtx operand
*** 7622,7629 ****
    if (CONST_INT_P (operands[2]))
      {
        int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
!                      && XVECLEN (PATTERN (insn), 0) == 3
!                      && REG_P (operands[3]));
        int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
        int k;
        int *t = len;
--- 8398,8405 ----
    if (CONST_INT_P (operands[2]))
      {
        int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
! 		     && XVECLEN (PATTERN (insn), 0) == 3
! 		     && REG_P (operands[3]));
        int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
        int k;
        int *t = len;
*************** lshrhi3_out (rtx_insn *insn, rtx operand
*** 7860,7881 ****
  
  	case 15:
  	  *len = 4;
! 	  return ("clr %A0" CR_TAB
! 		  "lsl %B0" CR_TAB
! 		  "rol %A0" CR_TAB
! 		  "clr %B0");
  	}
        len = t;
      }
    out_shift_with_cnt ("lsr %B0" CR_TAB
!                       "ror %A0", insn, operands, len, 2);
    return "";
  }
  
  
  /* 24-bit logic shift right */
  
! const char*
  avr_out_lshrpsi3 (rtx_insn *insn, rtx *op, int *plen)
  {
    int dest = REGNO (op[0]);
--- 8636,8657 ----
  
  	case 15:
  	  *len = 4;
! 	  return ("bst %B1,7" CR_TAB
! 		  "clr %A0"   CR_TAB
! 		  "clr %B0"   CR_TAB
! 		  "bld %A0,0");
  	}
        len = t;
      }
    out_shift_with_cnt ("lsr %B0" CR_TAB
! 		      "ror %A0", insn, operands, len, 2);
    return "";
  }
  
  
  /* 24-bit logic shift right */
  
! const char *
  avr_out_lshrpsi3 (rtx_insn *insn, rtx *op, int *plen)
  {
    int dest = REGNO (op[0]);
*************** avr_out_lshrpsi3 (rtx_insn *insn, rtx *o
*** 7884,7928 ****
    if (CONST_INT_P (op[2]))
      {
        if (plen)
!         *plen = 0;
  
        switch (INTVAL (op[2]))
!         {
!         case 8:
!           if (dest <= src)
!             return avr_asm_len ("mov %A0,%B1" CR_TAB
!                                 "mov %B0,%C1" CR_TAB
!                                 "clr %C0", op, plen, 3);
!           else
!             return avr_asm_len ("clr %C0"     CR_TAB
!                                 "mov %B0,%C1" CR_TAB
!                                 "mov %A0,%B1", op, plen, 3);
  
!         case 16:
!           if (dest != src + 2)
!             avr_asm_len ("mov %A0,%C1", op, plen, 1);
  
!           return avr_asm_len ("clr %B0"  CR_TAB
!                               "clr %C0", op, plen, 2);
  
!         default:
!           if (INTVAL (op[2]) < 24)
!             break;
  
!           /* fall through */
  
!         case 23:
!           return avr_asm_len ("clr %A0"    CR_TAB
!                               "sbrc %C0,7" CR_TAB
!                               "inc %A0"    CR_TAB
!                               "clr %B0"    CR_TAB
!                               "clr %C0", op, plen, 5);
!         } /* switch */
      }
  
    out_shift_with_cnt ("lsr %C0" CR_TAB
!                       "ror %B0" CR_TAB
!                       "ror %A0", insn, op, plen, 3);
    return "";
  }
  
--- 8660,8704 ----
    if (CONST_INT_P (op[2]))
      {
        if (plen)
! 	*plen = 0;
  
        switch (INTVAL (op[2]))
! 	{
! 	case 8:
! 	  if (dest <= src)
! 	    return avr_asm_len ("mov %A0,%B1" CR_TAB
! 				"mov %B0,%C1" CR_TAB
! 				"clr %C0", op, plen, 3);
! 	  else
! 	    return avr_asm_len ("clr %C0"     CR_TAB
! 				"mov %B0,%C1" CR_TAB
! 				"mov %A0,%B1", op, plen, 3);
  
! 	case 16:
! 	  if (dest != src + 2)
! 	    avr_asm_len ("mov %A0,%C1", op, plen, 1);
  
! 	  return avr_asm_len ("clr %B0"  CR_TAB
! 			      "clr %C0", op, plen, 2);
  
! 	default:
! 	  if (INTVAL (op[2]) < 24)
! 	    break;
  
! 	  /* fall through */
  
! 	case 23:
! 	  return avr_asm_len ("bst %C1,7" CR_TAB
! 			      "clr %A0"   CR_TAB
! 			      "clr %B0"   CR_TAB
! 			      "clr %C0"   CR_TAB
! 			      "bld %A0,0", op, plen, 5);
! 	} /* switch */
      }
  
    out_shift_with_cnt ("lsr %C0" CR_TAB
! 		      "ror %B0" CR_TAB
! 		      "ror %A0", insn, op, plen, 3);
    return "";
  }
  
*************** lshrsi3_out (rtx_insn *insn, rtx operand
*** 7999,8023 ****
  			    "clr %D0");
  
  	case 31:
  	  *len = 6;
! 	  return ("clr %A0"    CR_TAB
! 		  "sbrc %D0,7" CR_TAB
! 		  "inc %A0"    CR_TAB
! 		  "clr %B0"    CR_TAB
! 		  "clr %C0"    CR_TAB
! 		  "clr %D0");
  	}
        len = t;
      }
    out_shift_with_cnt ("lsr %D0" CR_TAB
!                       "ror %C0" CR_TAB
!                       "ror %B0" CR_TAB
!                       "ror %A0", insn, operands, len, 4);
    return "";
  }
  
  
  /* Output addition of register XOP[0] and compile time constant XOP[2].
     CODE == PLUS:  perform addition by using ADD instructions or
     CODE == MINUS: perform addition by using SUB instructions:
  
--- 8775,8806 ----
  			    "clr %D0");
  
  	case 31:
+ 	  if (AVR_HAVE_MOVW)
+ 	    return *len = 5, ("bst %D1,7"    CR_TAB
+ 			      "clr %A0"      CR_TAB
+ 			      "clr %B0"      CR_TAB
+ 			      "movw %C0,%A0" CR_TAB
+ 			      "bld %A0,0");
  	  *len = 6;
! 	  return ("bst %D1,7" CR_TAB
! 		  "clr %A0"   CR_TAB
! 		  "clr %B0"   CR_TAB
! 		  "clr %C0"   CR_TAB
! 		  "clr %D0"   CR_TAB
! 		  "bld %A0,0");
  	}
        len = t;
      }
    out_shift_with_cnt ("lsr %D0" CR_TAB
! 		      "ror %C0" CR_TAB
! 		      "ror %B0" CR_TAB
! 		      "ror %A0", insn, operands, len, 4);
    return "";
  }
  
  
  /* Output addition of register XOP[0] and compile time constant XOP[2].
+    INSN is a single_set insn or an insn pattern.
     CODE == PLUS:  perform addition by using ADD instructions or
     CODE == MINUS: perform addition by using SUB instructions:
  
*************** lshrsi3_out (rtx_insn *insn, rtx operand
*** 8030,8036 ****
     If PLEN == NULL, print assembler instructions to perform the operation;
     otherwise, set *PLEN to the length of the instruction sequence (in words)
     printed with PLEN == NULL.  XOP[3] is an 8-bit scratch register or NULL_RTX.
-    Set *PCC to effect on cc0 according to respective CC_* insn attribute.
  
     CODE_SAT == UNKNOWN: Perform ordinary, non-saturating operation.
     CODE_SAT != UNKNOWN: Perform operation and saturate according to CODE_SAT.
--- 8813,8818 ----
*************** lshrsi3_out (rtx_insn *insn, rtx operand
*** 8044,8051 ****
     fixed-point rounding, cf. `avr_out_round'.  */
  
  static void
! avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
!                 enum rtx_code code_sat, int sign, bool out_label)
  {
    /* MODE of the operation.  */
    machine_mode mode = GET_MODE (xop[0]);
--- 8826,8833 ----
     fixed-point rounding, cf. `avr_out_round'.  */
  
  static void
! avr_out_plus_1 (rtx insn, rtx *xop, int *plen, enum rtx_code code,
! 		enum rtx_code code_sat, int sign, bool out_label)
  {
    /* MODE of the operation.  */
    machine_mode mode = GET_MODE (xop[0]);
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8080,8127 ****
  
    if (REG_P (xop[2]))
      {
-       *pcc = MINUS == code ? (int) CC_SET_CZN : (int) CC_CLOBBER;
- 
        for (int i = 0; i < n_bytes; i++)
!         {
!           /* We operate byte-wise on the destination.  */
!           op[0] = simplify_gen_subreg (QImode, xop[0], mode, i);
!           op[1] = simplify_gen_subreg (QImode, xop[2], mode, i);
  
!           if (i == 0)
!             avr_asm_len (code == PLUS ? "add %0,%1" : "sub %0,%1",
!                          op, plen, 1);
!           else
!             avr_asm_len (code == PLUS ? "adc %0,%1" : "sbc %0,%1",
!                          op, plen, 1);
!         }
  
        if (reg_overlap_mentioned_p (xop[0], xop[2]))
!         {
!           gcc_assert (REGNO (xop[0]) == REGNO (xop[2]));
  
!           if (MINUS == code)
!             return;
!         }
  
        goto saturate;
      }
  
-   /* Except in the case of ADIW with 16-bit register (see below)
-      addition does not set cc0 in a usable way.  */
- 
-   *pcc = (MINUS == code) ? CC_SET_CZN : CC_CLOBBER;
- 
    if (CONST_FIXED_P (xval))
      xval = avr_to_int_mode (xval);
  
    /* Adding/Subtracting zero is a no-op.  */
  
    if (xval == const0_rtx)
!     {
!       *pcc = CC_NONE;
!       return;
!     }
  
    if (MINUS == code)
      xval = simplify_unary_operation (NEG, imode, xval, imode);
--- 8862,8899 ----
  
    if (REG_P (xop[2]))
      {
        for (int i = 0; i < n_bytes; i++)
! 	{
! 	  /* We operate byte-wise on the destination.  */
! 	  op[0] = simplify_gen_subreg (QImode, xop[0], mode, i);
! 	  op[1] = simplify_gen_subreg (QImode, xop[2], mode, i);
  
! 	  if (i == 0)
! 	    avr_asm_len (code == PLUS ? "add %0,%1" : "sub %0,%1",
! 			 op, plen, 1);
! 	  else
! 	    avr_asm_len (code == PLUS ? "adc %0,%1" : "sbc %0,%1",
! 			 op, plen, 1);
! 	}
  
        if (reg_overlap_mentioned_p (xop[0], xop[2]))
! 	{
! 	  gcc_assert (REGNO (xop[0]) == REGNO (xop[2]));
  
! 	  if (MINUS == code)
! 	    return;
! 	}
  
        goto saturate;
      }
  
    if (CONST_FIXED_P (xval))
      xval = avr_to_int_mode (xval);
  
    /* Adding/Subtracting zero is a no-op.  */
  
    if (xval == const0_rtx)
!     return;
  
    if (MINUS == code)
      xval = simplify_unary_operation (NEG, imode, xval, imode);
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8131,8149 ****
    if (SS_PLUS == code_sat && MINUS == code
        && sign < 0
        && 0x80 == (INTVAL (simplify_gen_subreg (QImode, xval, imode, n_bytes-1))
!                   & GET_MODE_MASK (QImode)))
      {
        /* We compute x + 0x80 by means of SUB instructions.  We negated the
!          constant subtrahend above and are left with  x - (-128)  so that we
!          need something like SUBI r,128 which does not exist because SUBI sets
!          V according to the sign of the subtrahend.  Notice the only case
!          where this must be done is when NEG overflowed in case [2s] because
!          the V computation needs the right sign of the subtrahend.  */
  
        rtx msb = simplify_gen_subreg (QImode, xop[0], mode, n_bytes - 1);
  
        avr_asm_len ("subi %0,128" CR_TAB
!                    "brmi 0f", &msb, plen, 2);
        out_brvc = false;
  
        goto saturate;
--- 8903,8921 ----
    if (SS_PLUS == code_sat && MINUS == code
        && sign < 0
        && 0x80 == (INTVAL (simplify_gen_subreg (QImode, xval, imode, n_bytes-1))
! 		  & GET_MODE_MASK (QImode)))
      {
        /* We compute x + 0x80 by means of SUB instructions.  We negated the
! 	 constant subtrahend above and are left with  x - (-128)  so that we
! 	 need something like SUBI r,128 which does not exist because SUBI sets
! 	 V according to the sign of the subtrahend.  Notice the only case
! 	 where this must be done is when NEG overflowed in case [2s] because
! 	 the V computation needs the right sign of the subtrahend.  */
  
        rtx msb = simplify_gen_subreg (QImode, xop[0], mode, n_bytes - 1);
  
        avr_asm_len ("subi %0,128" CR_TAB
! 		   "brmi 0f", &msb, plen, 2);
        out_brvc = false;
  
        goto saturate;
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8166,8266 ****
  
        /* To get usable cc0 no low-bytes must have been skipped.  */
  
-       if (i && !started)
-         *pcc = CC_CLOBBER;
- 
        if (!started
!           && i % 2 == 0
!           && i + 2 <= n_bytes
!           && test_hard_reg_class (ADDW_REGS, reg8))
!         {
!           rtx xval16 = simplify_gen_subreg (HImode, xval, imode, i);
!           unsigned int val16 = UINTVAL (xval16) & GET_MODE_MASK (HImode);
  
!           /* Registers R24, X, Y, Z can use ADIW/SBIW with constants < 64
!              i.e. operate word-wise.  */
  
!           if (val16 < 64)
!             {
!               if (val16 != 0)
!                 {
!                   started = true;
!                   avr_asm_len (code == PLUS ? "adiw %0,%1" : "sbiw %0,%1",
!                                op, plen, 1);
  
!                   if (n_bytes == 2 && PLUS == code)
!                     *pcc = CC_SET_CZN;
!                 }
  
!               i++;
!               continue;
!             }
!         }
  
        if (val8 == 0)
!         {
!           if (started)
!             avr_asm_len (code == PLUS
!                          ? "adc %0,__zero_reg__" : "sbc %0,__zero_reg__",
!                          op, plen, 1);
!           continue;
!         }
        else if ((val8 == 1 || val8 == 0xff)
!                && UNKNOWN == code_sat
!                && !started
!                && i == n_bytes - 1)
!         {
!           avr_asm_len ((code == PLUS) ^ (val8 == 1) ? "dec %0" : "inc %0",
!                        op, plen, 1);
!           *pcc = CC_CLOBBER;
!           break;
!         }
  
        switch (code)
!         {
!         case PLUS:
  
!           gcc_assert (plen != NULL || (op[2] && REG_P (op[2])));
  
!           if (plen != NULL && UNKNOWN != code_sat)
!             {
!               /* This belongs to the x + 0x80 corner case.  The code with
!                  ADD instruction is not smaller, thus make this case
!                  expensive so that the caller won't pick it.  */
  
!               *plen += 10;
!               break;
!             }
  
!           if (clobber_val != (int) val8)
!             avr_asm_len ("ldi %2,%1", op, plen, 1);
!           clobber_val = (int) val8;
  
!           avr_asm_len (started ? "adc %0,%2" : "add %0,%2", op, plen, 1);
  
!           break; /* PLUS */
  
!         case MINUS:
  
!           if (ld_reg_p)
!             avr_asm_len (started ? "sbci %0,%1" : "subi %0,%1", op, plen, 1);
!           else
!             {
!               gcc_assert (plen != NULL || REG_P (op[2]));
  
!               if (clobber_val != (int) val8)
!                 avr_asm_len ("ldi %2,%1", op, plen, 1);
!               clobber_val = (int) val8;
  
!               avr_asm_len (started ? "sbc %0,%2" : "sub %0,%2", op, plen, 1);
!             }
  
!           break; /* MINUS */
  
!         default:
!           /* Unknown code */
!           gcc_unreachable();
!         }
  
        started = true;
  
--- 8938,9060 ----
  
        /* To get usable cc0 no low-bytes must have been skipped.  */
  
        if (!started
! 	  && i % 2 == 0
! 	  && i + 2 <= n_bytes
! 	  && avr_adiw_reg_p (reg8))
! 	{
! 	  rtx xval16 = simplify_gen_subreg (HImode, xval, imode, i);
! 	  unsigned int val16 = UINTVAL (xval16) & GET_MODE_MASK (HImode);
  
! 	  /* Registers R24, X, Y, Z can use ADIW/SBIW with constants < 64
! 	     i.e. operate word-wise.  */
  
! 	  if (val16 < 64)
! 	    {
! 	      if (val16 != 0)
! 		{
! 		  started = true;
! 		  avr_asm_len (code == PLUS ? "adiw %0,%1" : "sbiw %0,%1",
! 			       op, plen, 1);
! 		}
  
! 	      i++;
! 	      continue;
! 	    }
! 	}
  
!       if (AVR_TINY
! 	  && optimize
! 	  && i == 0
! 	  && n_bytes == 2
! 	  // When that pass adjusts the frame pointer, then we know that
! 	  // reg Y points to ordinary memory, and the only side-effect
! 	  // of -Y and Y+ is the side effect on Y.
! 	  && avr_fuse_add >= 2
! 	  && frame_pointer_needed
! 	  && REGNO (xop[0]) == FRAME_POINTER_REGNUM)
! 	{
! 	  if (INSN_P (insn)
! 	      && _reg_unused_after (as_a <rtx_insn *> (insn), xop[0], false))
! 	    return;
! 
! 	  if (AVR_HAVE_8BIT_SP)
! 	    {
! 	      avr_asm_len ("subi %A0,%n2", xop, plen, 1);
! 	      return;
! 	    }
! 	  else if (xop[2] == const1_rtx || xop[2] == constm1_rtx)
! 	    {
! 	      avr_asm_len (xop[2] == const1_rtx
! 			   ? "ld __tmp_reg__,%a0+"
! 			   : "ld __tmp_reg__,-%a0", xop, plen, 1);
! 	      return;
! 	    }
! 	}
  
        if (val8 == 0)
! 	{
! 	  if (started)
! 	    avr_asm_len (code == PLUS
! 			 ? "adc %0,__zero_reg__" : "sbc %0,__zero_reg__",
! 			 op, plen, 1);
! 	  continue;
! 	}
        else if ((val8 == 1 || val8 == 0xff)
! 	       && UNKNOWN == code_sat
! 	       && !started
! 	       && i == n_bytes - 1)
! 	{
! 	  avr_asm_len ((code == PLUS) ^ (val8 == 1) ? "dec %0" : "inc %0",
! 		       op, plen, 1);
! 	  break;
! 	}
  
        switch (code)
! 	{
! 	case PLUS:
  
! 	  gcc_assert (plen != NULL || (op[2] && REG_P (op[2])));
  
! 	  if (plen != NULL && UNKNOWN != code_sat)
! 	    {
! 	      /* This belongs to the x + 0x80 corner case.  The code with
! 		 ADD instruction is not smaller, thus make this case
! 		 expensive so that the caller won't pick it.  */
  
! 	      *plen += 10;
! 	      break;
! 	    }
  
! 	  if (clobber_val != (int) val8)
! 	    avr_asm_len ("ldi %2,%1", op, plen, 1);
! 	  clobber_val = (int) val8;
  
! 	  avr_asm_len (started ? "adc %0,%2" : "add %0,%2", op, plen, 1);
  
! 	  break; /* PLUS */
  
! 	case MINUS:
  
! 	  if (ld_reg_p)
! 	    avr_asm_len (started ? "sbci %0,%1" : "subi %0,%1", op, plen, 1);
! 	  else
! 	    {
! 	      gcc_assert (plen != NULL || REG_P (op[2]));
  
! 	      if (clobber_val != (int) val8)
! 		avr_asm_len ("ldi %2,%1", op, plen, 1);
! 	      clobber_val = (int) val8;
  
! 	      avr_asm_len (started ? "sbc %0,%2" : "sub %0,%2", op, plen, 1);
! 	    }
  
! 	  break; /* MINUS */
  
! 	default:
! 	  /* Unknown code */
! 	  gcc_unreachable();
! 	}
  
        started = true;
  
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8271,8278 ****
    if (UNKNOWN == code_sat)
      return;
  
-   *pcc = (int) CC_CLOBBER;
- 
    /* Vanilla addition/subtraction is done.  We are left with saturation.
  
       We have to compute  A = A <op> B  where  A  is a register and
--- 9065,9070 ----
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8324,8409 ****
      case SS_MINUS:
  
        if (out_brvc)
!         avr_asm_len ("brvc 0f", op, plen, 1);
  
        if (reg_overlap_mentioned_p (xop[0], xop[2]))
!         {
!           /* [1s,reg] */
  
!           if (n_bytes == 1)
!             avr_asm_len ("ldi %0,0x7f" CR_TAB
!                          "adc %0,__zero_reg__", op, plen, 2);
!           else
!             avr_asm_len ("ldi %0,0x7f" CR_TAB
!                          "ldi %1,0xff" CR_TAB
!                          "adc %1,__zero_reg__" CR_TAB
!                          "adc %0,__zero_reg__", op, plen, 4);
!         }
        else if (sign == 0 && PLUS == code)
!         {
!           /* [1s,reg] */
  
!           op[2] = simplify_gen_subreg (QImode, xop[2], mode, n_bytes-1);
  
!           if (n_bytes == 1)
!             avr_asm_len ("ldi %0,0x80" CR_TAB
!                          "sbrs %2,7"   CR_TAB
!                          "dec %0", op, plen, 3);
!           else
!             avr_asm_len ("ldi %0,0x80" CR_TAB
!                          "cp %2,%0"    CR_TAB
!                          "sbc %1,%1"   CR_TAB
!                          "sbci %0,0", op, plen, 4);
!         }
        else if (sign == 0 && MINUS == code)
!         {
!           /* [3s,reg] */
  
!           op[2] = simplify_gen_subreg (QImode, xop[2], mode, n_bytes-1);
  
!           if (n_bytes == 1)
!             avr_asm_len ("ldi %0,0x7f" CR_TAB
!                          "sbrs %2,7"   CR_TAB
!                          "inc %0", op, plen, 3);
!           else
!             avr_asm_len ("ldi %0,0x7f" CR_TAB
!                          "cp %0,%2"    CR_TAB
!                          "sbc %1,%1"   CR_TAB
!                          "sbci %0,-1", op, plen, 4);
!         }
        else if ((sign < 0) ^ (SS_MINUS == code_sat))
!         {
!           /* [1s,const,B < 0] [2s,B < 0] */
!           /* [3s,const,B > 0] [4s,B > 0] */
  
!           if (n_bytes == 8)
!             {
!               avr_asm_len ("%~call __clr_8", op, plen, len_call);
!               need_copy = false;
!             }
  
!           avr_asm_len ("ldi %0,0x80", op, plen, 1);
!           if (n_bytes > 1 && need_copy)
!             avr_asm_len ("clr %1", op, plen, 1);
!         }
        else if ((sign > 0) ^ (SS_MINUS == code_sat))
!         {
!           /* [1s,const,B > 0] [2s,B > 0] */
!           /* [3s,const,B < 0] [4s,B < 0] */
  
!           if (n_bytes == 8)
!             {
!               avr_asm_len ("sec" CR_TAB
!                            "%~call __sbc_8", op, plen, 1 + len_call);
!               need_copy = false;
!             }
  
!           avr_asm_len ("ldi %0,0x7f", op, plen, 1);
!           if (n_bytes > 1 && need_copy)
!             avr_asm_len ("ldi %1,0xff", op, plen, 1);
!         }
        else
!         gcc_unreachable();
  
        break;
  
--- 9116,9201 ----
      case SS_MINUS:
  
        if (out_brvc)
! 	avr_asm_len ("brvc 0f", op, plen, 1);
  
        if (reg_overlap_mentioned_p (xop[0], xop[2]))
! 	{
! 	  /* [1s,reg] */
  
! 	  if (n_bytes == 1)
! 	    avr_asm_len ("ldi %0,0x7f" CR_TAB
! 			 "adc %0,__zero_reg__", op, plen, 2);
! 	  else
! 	    avr_asm_len ("ldi %0,0x7f" CR_TAB
! 			 "ldi %1,0xff" CR_TAB
! 			 "adc %1,__zero_reg__" CR_TAB
! 			 "adc %0,__zero_reg__", op, plen, 4);
! 	}
        else if (sign == 0 && PLUS == code)
! 	{
! 	  /* [1s,reg] */
  
! 	  op[2] = simplify_gen_subreg (QImode, xop[2], mode, n_bytes-1);
  
! 	  if (n_bytes == 1)
! 	    avr_asm_len ("ldi %0,0x80" CR_TAB
! 			 "sbrs %2,7"   CR_TAB
! 			 "dec %0", op, plen, 3);
! 	  else
! 	    avr_asm_len ("ldi %0,0x80" CR_TAB
! 			 "cp %2,%0"    CR_TAB
! 			 "sbc %1,%1"   CR_TAB
! 			 "sbci %0,0", op, plen, 4);
! 	}
        else if (sign == 0 && MINUS == code)
! 	{
! 	  /* [3s,reg] */
  
! 	  op[2] = simplify_gen_subreg (QImode, xop[2], mode, n_bytes-1);
  
! 	  if (n_bytes == 1)
! 	    avr_asm_len ("ldi %0,0x7f" CR_TAB
! 			 "sbrs %2,7"   CR_TAB
! 			 "inc %0", op, plen, 3);
! 	  else
! 	    avr_asm_len ("ldi %0,0x7f" CR_TAB
! 			 "cp %0,%2"    CR_TAB
! 			 "sbc %1,%1"   CR_TAB
! 			 "sbci %0,-1", op, plen, 4);
! 	}
        else if ((sign < 0) ^ (SS_MINUS == code_sat))
! 	{
! 	  /* [1s,const,B < 0] [2s,B < 0] */
! 	  /* [3s,const,B > 0] [4s,B > 0] */
  
! 	  if (n_bytes == 8)
! 	    {
! 	      avr_asm_len ("%~call __clr_8", op, plen, len_call);
! 	      need_copy = false;
! 	    }
  
! 	  avr_asm_len ("ldi %0,0x80", op, plen, 1);
! 	  if (n_bytes > 1 && need_copy)
! 	    avr_asm_len ("clr %1", op, plen, 1);
! 	}
        else if ((sign > 0) ^ (SS_MINUS == code_sat))
! 	{
! 	  /* [1s,const,B > 0] [2s,B > 0] */
! 	  /* [3s,const,B < 0] [4s,B < 0] */
  
! 	  if (n_bytes == 8)
! 	    {
! 	      avr_asm_len ("sec" CR_TAB
! 			   "%~call __sbc_8", op, plen, 1 + len_call);
! 	      need_copy = false;
! 	    }
  
! 	  avr_asm_len ("ldi %0,0x7f", op, plen, 1);
! 	  if (n_bytes > 1 && need_copy)
! 	    avr_asm_len ("ldi %1,0xff", op, plen, 1);
! 	}
        else
! 	gcc_unreachable();
  
        break;
  
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8413,8434 ****
        avr_asm_len (PLUS == code ? "brcc 0f" : "brcs 0f", op, plen, 1);
  
        if (n_bytes == 8)
!         {
!           if (MINUS == code)
!             avr_asm_len ("sec", op, plen, 1);
!           avr_asm_len ("%~call __sbc_8", op, plen, len_call);
  
!           need_copy = false;
!         }
        else
!         {
!           if (MINUS == code && !test_hard_reg_class (LD_REGS, op[0]))
!             avr_asm_len ("sec" CR_TAB
!                          "sbc %0,%0", op, plen, 2);
!           else
!             avr_asm_len (PLUS == code ? "sbc %0,%0" : "ldi %0,0xff",
!                          op, plen, 1);
!         }
        break; /* US_PLUS */
  
      case US_MINUS:
--- 9205,9226 ----
        avr_asm_len (PLUS == code ? "brcc 0f" : "brcs 0f", op, plen, 1);
  
        if (n_bytes == 8)
! 	{
! 	  if (MINUS == code)
! 	    avr_asm_len ("sec", op, plen, 1);
! 	  avr_asm_len ("%~call __sbc_8", op, plen, len_call);
  
! 	  need_copy = false;
! 	}
        else
! 	{
! 	  if (MINUS == code && !test_hard_reg_class (LD_REGS, op[0]))
! 	    avr_asm_len ("sec" CR_TAB
! 			 "sbc %0,%0", op, plen, 2);
! 	  else
! 	    avr_asm_len (PLUS == code ? "sbc %0,%0" : "ldi %0,0xff",
! 			 op, plen, 1);
! 	}
        break; /* US_PLUS */
  
      case US_MINUS:
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8437,8448 ****
        avr_asm_len (PLUS == code ? "brcs 0f" : "brcc 0f", op, plen, 1);
  
        if (n_bytes == 8)
!         {
!           avr_asm_len ("%~call __clr_8", op, plen, len_call);
!           need_copy = false;
!         }
        else
!         avr_asm_len ("clr %0", op, plen, 1);
  
        break;
      }
--- 9229,9240 ----
        avr_asm_len (PLUS == code ? "brcs 0f" : "brcc 0f", op, plen, 1);
  
        if (n_bytes == 8)
! 	{
! 	  avr_asm_len ("%~call __clr_8", op, plen, len_call);
! 	  need_copy = false;
! 	}
        else
! 	avr_asm_len ("clr %0", op, plen, 1);
  
        break;
      }
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8453,8489 ****
    if (need_copy && n_bytes > 1)
      {
        if (US_MINUS == code_sat || US_PLUS == code_sat)
!         {
!           avr_asm_len ("mov %1,%0", op, plen, 1);
  
!           if (n_bytes > 2)
!             {
!               op[0] = xop[0];
!               if (AVR_HAVE_MOVW)
!                 avr_asm_len ("movw %0,%1", op, plen, 1);
!               else
!                 avr_asm_len ("mov %A0,%1" CR_TAB
!                              "mov %B0,%1", op, plen, 2);
!             }
!         }
        else if (n_bytes > 2)
!         {
!           op[0] = xop[0];
!           avr_asm_len ("mov %A0,%1" CR_TAB
!                        "mov %B0,%1", op, plen, 2);
!         }
      }
  
    if (need_copy && n_bytes == 8)
      {
        if (AVR_HAVE_MOVW)
!         avr_asm_len ("movw %r0+2,%0" CR_TAB
!                      "movw %r0+4,%0", xop, plen, 2);
        else
!         avr_asm_len ("mov %r0+2,%0" CR_TAB
!                      "mov %r0+3,%0" CR_TAB
!                      "mov %r0+4,%0" CR_TAB
!                      "mov %r0+5,%0", xop, plen, 4);
      }
  
    if (out_label)
--- 9245,9281 ----
    if (need_copy && n_bytes > 1)
      {
        if (US_MINUS == code_sat || US_PLUS == code_sat)
! 	{
! 	  avr_asm_len ("mov %1,%0", op, plen, 1);
  
! 	  if (n_bytes > 2)
! 	    {
! 	      op[0] = xop[0];
! 	      if (AVR_HAVE_MOVW)
! 		avr_asm_len ("movw %0,%1", op, plen, 1);
! 	      else
! 		avr_asm_len ("mov %A0,%1" CR_TAB
! 			     "mov %B0,%1", op, plen, 2);
! 	    }
! 	}
        else if (n_bytes > 2)
! 	{
! 	  op[0] = xop[0];
! 	  avr_asm_len ("mov %A0,%1" CR_TAB
! 		       "mov %B0,%1", op, plen, 2);
! 	}
      }
  
    if (need_copy && n_bytes == 8)
      {
        if (AVR_HAVE_MOVW)
! 	avr_asm_len ("movw %r0+2,%0" CR_TAB
! 		     "movw %r0+4,%0", xop, plen, 2);
        else
! 	avr_asm_len ("mov %r0+2,%0" CR_TAB
! 		     "mov %r0+3,%0" CR_TAB
! 		     "mov %r0+4,%0" CR_TAB
! 		     "mov %r0+5,%0", xop, plen, 4);
      }
  
    if (out_label)
*************** avr_out_plus_1 (rtx *xop, int *plen, enu
*** 8492,8506 ****
  
  
  /* Output addition/subtraction of register XOP[0] and a constant XOP[2] that
!    is ont a compile-time constant:
  
        XOP[0] = XOP[0] +/- XOP[2]
  
     This is a helper for the function below.  The only insns that need this
     are additions/subtraction for pointer modes, i.e. HImode and PSImode.  */
  
! static const char*
! avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen, int *pcc)
  {
    machine_mode mode = GET_MODE (xop[0]);
  
--- 9284,9298 ----
  
  
  /* Output addition/subtraction of register XOP[0] and a constant XOP[2] that
!    is not a compile-time constant:
  
        XOP[0] = XOP[0] +/- XOP[2]
  
     This is a helper for the function below.  The only insns that need this
     are additions/subtraction for pointer modes, i.e. HImode and PSImode.  */
  
! static const char *
! avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen)
  {
    machine_mode mode = GET_MODE (xop[0]);
  
*************** avr_out_plus_symbol (rtx *xop, enum rtx_
*** 8508,8524 ****
  
    gcc_assert (mode == HImode || mode == PSImode);
  
-   *pcc = MINUS == code ? (int) CC_SET_CZN : (int) CC_SET_N;
- 
    avr_asm_len (PLUS == code
!                ? "subi %A0,lo8(-(%2))" CR_TAB "sbci %B0,hi8(-(%2))"
!                : "subi %A0,lo8(%2)"    CR_TAB "sbci %B0,hi8(%2)",
!                xop, plen, -2);
  
    if (PSImode == mode)
      avr_asm_len (PLUS == code
!                  ? "sbci %C0,hlo8(-(%2))"
!                  : "sbci %C0,hlo8(%2)", xop, plen, 1);
    return "";
  }
  
--- 9300,9314 ----
  
    gcc_assert (mode == HImode || mode == PSImode);
  
    avr_asm_len (PLUS == code
! 	       ? "subi %A0,lo8(-(%2))" CR_TAB "sbci %B0,hi8(-(%2))"
! 	       : "subi %A0,lo8(%2)"    CR_TAB "sbci %B0,hi8(%2)",
! 	       xop, plen, -2);
  
    if (PSImode == mode)
      avr_asm_len (PLUS == code
! 		 ? "sbci %C0,hlo8(-(%2))"
! 		 : "sbci %C0,hlo8(%2)", xop, plen, 1);
    return "";
  }
  
*************** avr_out_plus_symbol (rtx *xop, enum rtx_
*** 8536,8554 ****
     If PLEN == NULL output the instructions.
     If PLEN != NULL set *PLEN to the length of the sequence in words.
  
!    PCC is a pointer to store the instructions' effect on cc0.
!    PCC may be NULL.
! 
!    PLEN and PCC default to NULL.
  
     OUT_LABEL defaults to TRUE.  For a description, see AVR_OUT_PLUS_1.
  
     Return ""  */
  
! const char*
! avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc, bool out_label)
  {
-   int cc_plus, cc_minus, cc_dummy;
    int len_plus, len_minus;
    rtx op[4];
    rtx xpattern = INSN_P (insn) ? single_set (as_a <rtx_insn *> (insn)) : insn;
--- 9326,9340 ----
     If PLEN == NULL output the instructions.
     If PLEN != NULL set *PLEN to the length of the sequence in words.
  
!    PLEN defaults to NULL.
  
     OUT_LABEL defaults to TRUE.  For a description, see AVR_OUT_PLUS_1.
  
     Return ""  */
  
! const char *
! avr_out_plus (rtx insn, rtx *xop, int *plen, bool out_label)
  {
    int len_plus, len_minus;
    rtx op[4];
    rtx xpattern = INSN_P (insn) ? single_set (as_a <rtx_insn *> (insn)) : insn;
*************** avr_out_plus (rtx insn, rtx *xop, int *p
*** 8561,8569 ****
      = (PLUS == code_sat || SS_PLUS == code_sat || US_PLUS == code_sat
         ? PLUS : MINUS);
  
-   if (!pcc)
-     pcc = &cc_dummy;
- 
    /* PLUS and MINUS don't saturate:  Use modular wrap-around.  */
  
    if (PLUS == code_sat || MINUS == code_sat)
--- 9347,9352 ----
*************** avr_out_plus (rtx insn, rtx *xop, int *p
*** 8571,8577 ****
  
    if (n_bytes <= 4 && REG_P (xop[2]))
      {
!       avr_out_plus_1 (xop, plen, code, pcc, code_sat, 0, out_label);
        return "";
      }
  
--- 9354,9360 ----
  
    if (n_bytes <= 4 && REG_P (xop[2]))
      {
!       avr_out_plus_1 (insn, xop, plen, code, code_sat, 0, out_label);
        return "";
      }
  
*************** avr_out_plus (rtx insn, rtx *xop, int *p
*** 8584,8594 ****
    else
      {
        if (!REG_P (xop[2])
!           && !CONST_INT_P (xop[2])
!           && !CONST_FIXED_P (xop[2]))
!         {
!           return avr_out_plus_symbol (xop, code, plen, pcc);
!         }
  
        op[0] = avr_to_int_mode (xop[0]);
        op[1] = avr_to_int_mode (xop[1]);
--- 9367,9377 ----
    else
      {
        if (!REG_P (xop[2])
! 	  && !CONST_INT_P (xop[2])
! 	  && !CONST_FIXED_P (xop[2]))
! 	{
! 	  return avr_out_plus_symbol (xop, code, plen);
! 	}
  
        op[0] = avr_to_int_mode (xop[0]);
        op[1] = avr_to_int_mode (xop[1]);
*************** avr_out_plus (rtx insn, rtx *xop, int *p
*** 8614,8631 ****
  
    /* Work out the shortest sequence.  */
  
!   avr_out_plus_1 (op, &len_minus, MINUS, &cc_minus, code_sat, sign, out_label);
!   avr_out_plus_1 (op, &len_plus, PLUS, &cc_plus, code_sat, sign, out_label);
  
    if (plen)
!     {
!       *plen = (len_minus <= len_plus) ? len_minus : len_plus;
!       *pcc  = (len_minus <= len_plus) ? cc_minus : cc_plus;
!     }
    else if (len_minus <= len_plus)
!     avr_out_plus_1 (op, NULL, MINUS, pcc, code_sat, sign, out_label);
    else
!     avr_out_plus_1 (op, NULL, PLUS, pcc, code_sat, sign, out_label);
  
    return "";
  }
--- 9397,9411 ----
  
    /* Work out the shortest sequence.  */
  
!   avr_out_plus_1 (insn, op, &len_minus, MINUS, code_sat, sign, out_label);
!   avr_out_plus_1 (insn, op, &len_plus, PLUS, code_sat, sign, out_label);
  
    if (plen)
!     *plen = (len_minus <= len_plus) ? len_minus : len_plus;
    else if (len_minus <= len_plus)
!     avr_out_plus_1 (insn, op, NULL, MINUS, code_sat, sign, out_label);
    else
!     avr_out_plus_1 (insn, op, NULL, PLUS, code_sat, sign, out_label);
  
    return "";
  }
*************** avr_out_plus (rtx insn, rtx *xop, int *p
*** 8639,8645 ****
     If PLEN == NULL, then output the instructions.
     If PLEN != NULL, then set *PLEN to the length of the sequence in words. */
  
! const char*
  avr_out_plus_set_ZN (rtx *xop, int *plen)
  {
    if (plen)
--- 9419,9425 ----
     If PLEN == NULL, then output the instructions.
     If PLEN != NULL, then set *PLEN to the length of the sequence in words. */
  
! const char *
  avr_out_plus_set_ZN (rtx *xop, int *plen)
  {
    if (plen)
*************** avr_out_plus_set_ZN (rtx *xop, int *plen
*** 8664,8670 ****
      }
  
    if (n_bytes == 2
!       && test_hard_reg_class (ADDW_REGS, xreg)
        && IN_RANGE (INTVAL (xval), 1, 63))
      {
        // Add 16-bit value in [1..63] to a w register.
--- 9444,9450 ----
      }
  
    if (n_bytes == 2
!       && avr_adiw_reg_p (xreg)
        && IN_RANGE (INTVAL (xval), 1, 63))
      {
        // Add 16-bit value in [1..63] to a w register.
*************** avr_out_plus_set_ZN (rtx *xop, int *plen
*** 8691,8697 ****
  
        if (i == 0
  	  && n_bytes >= 2
! 	  && test_hard_reg_class (ADDW_REGS, op[0]))
  	{
  	  op[1] = simplify_gen_subreg (HImode, xval, mode, 0);
  	  if (IN_RANGE (INTVAL (op[1]), 0, 63))
--- 9471,9477 ----
  
        if (i == 0
  	  && n_bytes >= 2
! 	  && avr_adiw_reg_p (op[0]))
  	{
  	  op[1] = simplify_gen_subreg (HImode, xval, mode, 0);
  	  if (IN_RANGE (INTVAL (op[1]), 0, 63))
*************** avr_out_plus_set_ZN (rtx *xop, int *plen
*** 8758,8764 ****
     register or SCRATCH if no clobber register is needed for the operation.
     INSN is an INSN_P or a pattern of an insn.  */
  
! const char*
  avr_out_bitop (rtx insn, rtx *xop, int *plen)
  {
    /* CODE and MODE of the operation.  */
--- 9538,9544 ----
     register or SCRATCH if no clobber register is needed for the operation.
     INSN is an INSN_P or a pattern of an insn.  */
  
! const char *
  avr_out_bitop (rtx insn, rtx *xop, int *plen)
  {
    /* CODE and MODE of the operation.  */
*************** avr_out_bitop (rtx insn, rtx *xop, int *
*** 8806,8899 ****
        op[1] = GEN_INT (val8);
  
        switch (code)
!         {
!         case IOR:
  
  	  if (pop8 == 0)
!             continue;
!           else if (ld_reg_p)
!             avr_asm_len ("ori %0,%1", op, plen, 1);
  	  else if (pop8 == 1)
!             {
!               if (set_t != 1)
!                 avr_asm_len ("set", op, plen, 1);
!               set_t = 1;
  
!               op[1] = GEN_INT (exact_log2 (val8));
!               avr_asm_len ("bld %0,%1", op, plen, 1);
!             }
  	  else if (pop8 == 8)
!             {
!               if (op[3] != NULL_RTX)
!                 avr_asm_len ("mov %0,%3", op, plen, 1);
!               else
!                 avr_asm_len ("clr %0" CR_TAB
!                              "dec %0", op, plen, 2);
  
!               op[3] = op[0];
!             }
!           else
!             {
!               if (clobber_val != (int) val8)
!                 avr_asm_len ("ldi %2,%1", op, plen, 1);
!               clobber_val = (int) val8;
  
!               avr_asm_len ("or %0,%2", op, plen, 1);
!             }
  
!           continue; /* IOR */
  
!         case AND:
  
  	  if (pop8 == 8)
!             continue;
  	  else if (pop8 == 0)
!             avr_asm_len ("clr %0", op, plen, 1);
!           else if (ld_reg_p)
!             avr_asm_len ("andi %0,%1", op, plen, 1);
  	  else if (pop8 == 7)
!             {
!               if (set_t != 0)
!                 avr_asm_len ("clt", op, plen, 1);
!               set_t = 0;
  
!               op[1] = GEN_INT (exact_log2 (GET_MODE_MASK (QImode) & ~val8));
!               avr_asm_len ("bld %0,%1", op, plen, 1);
!             }
!           else
!             {
!               if (clobber_val != (int) val8)
!                 avr_asm_len ("ldi %2,%1", op, plen, 1);
!               clobber_val = (int) val8;
  
!               avr_asm_len ("and %0,%2", op, plen, 1);
!             }
  
!           continue; /* AND */
  
!         case XOR:
  
  	  if (pop8 == 0)
!             continue;
  	  else if (pop8 == 8)
!             avr_asm_len ("com %0", op, plen, 1);
!           else if (ld_reg_p && val8 == (1 << 7))
!             avr_asm_len ("subi %0,%1", op, plen, 1);
!           else
!             {
!               if (clobber_val != (int) val8)
!                 avr_asm_len ("ldi %2,%1", op, plen, 1);
!               clobber_val = (int) val8;
  
!               avr_asm_len ("eor %0,%2", op, plen, 1);
!             }
  
!           continue; /* XOR */
  
!         default:
!           /* Unknown rtx_code */
!           gcc_unreachable();
!         }
      } /* for all sub-bytes */
  
    return "";
--- 9586,9679 ----
        op[1] = GEN_INT (val8);
  
        switch (code)
! 	{
! 	case IOR:
  
  	  if (pop8 == 0)
! 	    continue;
! 	  else if (ld_reg_p)
! 	    avr_asm_len ("ori %0,%1", op, plen, 1);
  	  else if (pop8 == 1)
! 	    {
! 	      if (set_t != 1)
! 		avr_asm_len ("set", op, plen, 1);
! 	      set_t = 1;
  
! 	      op[1] = GEN_INT (exact_log2 (val8));
! 	      avr_asm_len ("bld %0,%1", op, plen, 1);
! 	    }
  	  else if (pop8 == 8)
! 	    {
! 	      if (op[3] != NULL_RTX)
! 		avr_asm_len ("mov %0,%3", op, plen, 1);
! 	      else
! 		avr_asm_len ("clr %0" CR_TAB
! 			     "dec %0", op, plen, 2);
  
! 	      op[3] = op[0];
! 	    }
! 	  else
! 	    {
! 	      if (clobber_val != (int) val8)
! 		avr_asm_len ("ldi %2,%1", op, plen, 1);
! 	      clobber_val = (int) val8;
  
! 	      avr_asm_len ("or %0,%2", op, plen, 1);
! 	    }
  
! 	  continue; /* IOR */
  
! 	case AND:
  
  	  if (pop8 == 8)
! 	    continue;
  	  else if (pop8 == 0)
! 	    avr_asm_len ("clr %0", op, plen, 1);
! 	  else if (ld_reg_p)
! 	    avr_asm_len ("andi %0,%1", op, plen, 1);
  	  else if (pop8 == 7)
! 	    {
! 	      if (set_t != 0)
! 		avr_asm_len ("clt", op, plen, 1);
! 	      set_t = 0;
  
! 	      op[1] = GEN_INT (exact_log2 (GET_MODE_MASK (QImode) & ~val8));
! 	      avr_asm_len ("bld %0,%1", op, plen, 1);
! 	    }
! 	  else
! 	    {
! 	      if (clobber_val != (int) val8)
! 		avr_asm_len ("ldi %2,%1", op, plen, 1);
! 	      clobber_val = (int) val8;
  
! 	      avr_asm_len ("and %0,%2", op, plen, 1);
! 	    }
  
! 	  continue; /* AND */
  
! 	case XOR:
  
  	  if (pop8 == 0)
! 	    continue;
  	  else if (pop8 == 8)
! 	    avr_asm_len ("com %0", op, plen, 1);
! 	  else if (ld_reg_p && val8 == (1 << 7))
! 	    avr_asm_len ("subi %0,%1", op, plen, 1);
! 	  else
! 	    {
! 	      if (clobber_val != (int) val8)
! 		avr_asm_len ("ldi %2,%1", op, plen, 1);
! 	      clobber_val = (int) val8;
  
! 	      avr_asm_len ("eor %0,%2", op, plen, 1);
! 	    }
  
! 	  continue; /* XOR */
  
! 	default:
! 	  /* Unknown rtx_code */
! 	  gcc_unreachable();
! 	}
      } /* for all sub-bytes */
  
    return "";
*************** avr_out_bitop (rtx insn, rtx *xop, int *
*** 8905,8911 ****
     otherwise, set *PLEN to the length of the instruction sequence (in words)
     as printed with PLEN == NULL.  */
  
! const char*
  avr_out_sign_extend (rtx_insn *insn, rtx *xop, int *plen)
  {
    // Size in bytes of source resp. destination operand.
--- 9685,9691 ----
     otherwise, set *PLEN to the length of the instruction sequence (in words)
     as printed with PLEN == NULL.  */
  
! const char *
  avr_out_sign_extend (rtx_insn *insn, rtx *xop, int *plen)
  {
    // Size in bytes of source resp. destination operand.
*************** avr_out_sign_extend (rtx_insn *insn, rtx
*** 8923,8933 ****
        gcc_assert (n_src <= 2);
  
        if (n_src == 2)
!         avr_asm_len (AVR_HAVE_MOVW
!                      ? "movw %0,%1"
!                      : "mov %B0,%B1", xop, plen, 1);
        if (n_src == 1 || !AVR_HAVE_MOVW)
!         avr_asm_len ("mov %A0,%A1", xop, plen, 1);
      }
  
    // Set Carry to the sign bit MSB.7...
--- 9703,9713 ----
        gcc_assert (n_src <= 2);
  
        if (n_src == 2)
! 	avr_asm_len (AVR_HAVE_MOVW
! 		     ? "movw %0,%1"
! 		     : "mov %B0,%B1", xop, plen, 1);
        if (n_src == 1 || !AVR_HAVE_MOVW)
! 	avr_asm_len ("mov %A0,%A1", xop, plen, 1);
      }
  
    // Set Carry to the sign bit MSB.7...
*************** avr_out_sign_extend (rtx_insn *insn, rtx
*** 8954,8960 ****
     PLEN != NULL: Set *PLEN to the length of that sequence.
     Return "".  */
  
! const char*
  avr_out_addto_sp (rtx *op, int *plen)
  {
    int pc_len = AVR_2_BYTE_PC ? 2 : 3;
--- 9734,9740 ----
     PLEN != NULL: Set *PLEN to the length of that sequence.
     Return "".  */
  
! const char *
  avr_out_addto_sp (rtx *op, int *plen)
  {
    int pc_len = AVR_2_BYTE_PC ? 2 : 3;
*************** avr_out_addto_sp (rtx *op, int *plen)
*** 8966,9057 ****
    if (addend < 0)
      {
        if (flag_verbose_asm || flag_print_asm_name)
!         avr_asm_len (ASM_COMMENT_START "SP -= %n0", op, plen, 0);
  
        while (addend <= -pc_len)
!         {
!           addend += pc_len;
!           avr_asm_len ("rcall .", op, plen, 1);
!         }
  
        while (addend++ < 0)
!         avr_asm_len ("push __tmp_reg__", op, plen, 1);
      }
    else if (addend > 0)
      {
        if (flag_verbose_asm || flag_print_asm_name)
!         avr_asm_len (ASM_COMMENT_START "SP += %0", op, plen, 0);
  
        while (addend-- > 0)
!         avr_asm_len ("pop __tmp_reg__", op, plen, 1);
      }
  
    return "";
  }
  
  
! /* Output instructions to insert an inverted bit into OPERANDS[0]:
!    $0.$1 = ~$2.$3      if XBITNO = NULL
!    $0.$1 = ~$2.XBITNO  if XBITNO != NULL.
     If PLEN = NULL then output the respective instruction sequence which
     is a combination of BST / BLD and some instruction(s) to invert the bit.
     If PLEN != NULL then store the length of the sequence (in words) in *PLEN.
     Return "".  */
  
! const char*
! avr_out_insert_notbit (rtx_insn *insn, rtx operands[], rtx xbitno, int *plen)
  {
-   rtx op[4] = { operands[0], operands[1], operands[2],
-                 xbitno == NULL_RTX ? operands [3] : xbitno };
- 
    if (INTVAL (op[1]) == 7
        && test_hard_reg_class (LD_REGS, op[0]))
      {
        /* If the inserted bit number is 7 and we have a d-reg, then invert
!          the bit after the insertion by means of SUBI *,0x80.  */
  
        if (INTVAL (op[3]) == 7
!           && REGNO (op[0]) == REGNO (op[2]))
!         {
!           avr_asm_len ("subi %0,0x80", op, plen, -1);
!         }
        else
!         {
!           avr_asm_len ("bst %2,%3" CR_TAB
!                        "bld %0,%1" CR_TAB
!                        "subi %0,0x80", op, plen, -3);
!         }
      }
    else if (test_hard_reg_class (LD_REGS, op[0])
!            && (INTVAL (op[1]) != INTVAL (op[3])
!                || !reg_overlap_mentioned_p (op[0], op[2])))
      {
        /* If the destination bit is in a d-reg we can jump depending
!          on the source bit and use ANDI / ORI.  This just applies if we
!          have not an early-clobber situation with the bit.  */
  
        avr_asm_len ("andi %0,~(1<<%1)" CR_TAB
!                    "sbrs %2,%3"       CR_TAB
!                    "ori %0,1<<%1", op, plen, -3);
      }
    else
      {
        /* Otherwise, invert the bit by means of COM before we store it with
!          BST and then undo the COM if needed.  */
  
        avr_asm_len ("com %2" CR_TAB
!                    "bst %2,%3", op, plen, -2);
  
        if (!reg_unused_after (insn, op[2])
!           // A simple 'reg_unused_after' is not enough because that function
!           // assumes that the destination register is overwritten completely
!           // and hence is in order for our purpose.  This is not the case
!           // with BLD which just changes one bit of the destination.
!           || reg_overlap_mentioned_p (op[0], op[2]))
!         {
!           /* Undo the COM from above.  */
!           avr_asm_len ("com %2", op, plen, 1);
!         }
  
        avr_asm_len ("bld %0,%1", op, plen, 1);
      }
--- 9746,9832 ----
    if (addend < 0)
      {
        if (flag_verbose_asm || flag_print_asm_name)
! 	avr_asm_len (ASM_COMMENT_START "SP -= %n0", op, plen, 0);
  
        while (addend <= -pc_len)
! 	{
! 	  addend += pc_len;
! 	  avr_asm_len ("rcall .", op, plen, 1);
! 	}
  
        while (addend++ < 0)
! 	avr_asm_len ("push __tmp_reg__", op, plen, 1);
      }
    else if (addend > 0)
      {
        if (flag_verbose_asm || flag_print_asm_name)
! 	avr_asm_len (ASM_COMMENT_START "SP += %0", op, plen, 0);
  
        while (addend-- > 0)
! 	avr_asm_len ("pop __tmp_reg__", op, plen, 1);
      }
  
    return "";
  }
  
  
! /* Output instructions to insert an inverted bit into OP[0]: $0.$1 = ~$2.$3.
     If PLEN = NULL then output the respective instruction sequence which
     is a combination of BST / BLD and some instruction(s) to invert the bit.
     If PLEN != NULL then store the length of the sequence (in words) in *PLEN.
     Return "".  */
  
! const char *
! avr_out_insert_notbit (rtx_insn *insn, rtx op[], int *plen)
  {
    if (INTVAL (op[1]) == 7
        && test_hard_reg_class (LD_REGS, op[0]))
      {
        /* If the inserted bit number is 7 and we have a d-reg, then invert
! 	 the bit after the insertion by means of SUBI *,0x80.  */
  
        if (INTVAL (op[3]) == 7
! 	  && REGNO (op[0]) == REGNO (op[2]))
! 	{
! 	  avr_asm_len ("subi %0,0x80", op, plen, -1);
! 	}
        else
! 	{
! 	  avr_asm_len ("bst %2,%3" CR_TAB
! 		       "bld %0,%1" CR_TAB
! 		       "subi %0,0x80", op, plen, -3);
! 	}
      }
    else if (test_hard_reg_class (LD_REGS, op[0])
! 	   && (INTVAL (op[1]) != INTVAL (op[3])
! 	       || !reg_overlap_mentioned_p (op[0], op[2])))
      {
        /* If the destination bit is in a d-reg we can jump depending
! 	 on the source bit and use ANDI / ORI.  This just applies if we
! 	 have not an early-clobber situation with the bit.  */
  
        avr_asm_len ("andi %0,~(1<<%1)" CR_TAB
! 		   "sbrs %2,%3"       CR_TAB
! 		   "ori %0,1<<%1", op, plen, -3);
      }
    else
      {
        /* Otherwise, invert the bit by means of COM before we store it with
! 	 BST and then undo the COM if needed.  */
  
        avr_asm_len ("com %2" CR_TAB
! 		   "bst %2,%3", op, plen, -2);
  
        if (!reg_unused_after (insn, op[2])
! 	  // A simple 'reg_unused_after' is not enough because that function
! 	  // assumes that the destination register is overwritten completely
! 	  // and hence is in order for our purpose.  This is not the case
! 	  // with BLD which just changes one bit of the destination.
! 	  || reg_overlap_mentioned_p (op[0], op[2]))
! 	{
! 	  /* Undo the COM from above.  */
! 	  avr_asm_len ("com %2", op, plen, 1);
! 	}
  
        avr_asm_len ("bld %0,%1", op, plen, 1);
      }
*************** avr_out_insert_notbit (rtx_insn *insn, r
*** 9060,9065 ****
--- 9835,10141 ----
  }
  
  
+ /* Output instructions for  XOP[0] = (XOP[1] <Shift> XOP[2]) & XOP[3]  where
+    -  XOP[0] and XOP[1] have the same mode which is one of: QI, HI, PSI, SI.
+    -  XOP[3] is an exact const_int power of 2.
+    -  XOP[2] and XOP[3] are const_int.
+    -  <Shift> is any of: ASHIFT, LSHIFTRT, ASHIFTRT.
+    -  The result depends on XOP[1].
+    or  XOP[0] = XOP[1] & XOP[2]  where
+    -  XOP[0] and XOP[1] have the same mode which is one of: HI, PSI, SI.
+    -  XOP[2] is an exact const_int power of 2.
+    Returns "".
+    PLEN != 0: Set *PLEN to the code length in words.  Don't output anything.
+    PLEN == 0: Output instructions.  */
+ 
+ const char*
+ avr_out_insv (rtx_insn *insn, rtx xop[], int *plen)
+ {
+   machine_mode mode = GET_MODE (xop[0]);
+   int n_bytes = GET_MODE_SIZE (mode);
+   rtx xsrc = SET_SRC (single_set (insn));
+ 
+   gcc_assert (AND == GET_CODE (xsrc));
+ 
+   rtx xop2 = xop[2];
+   rtx xop3 = xop[3];
+ 
+   if (REG_P (XEXP (xsrc, 0)))
+     {
+       // This function can also handle AND with an exact power of 2,
+       // which can be regarded as a XOP[1] shift with offset 0.
+       rtx xshift = gen_rtx_ASHIFT (mode, xop[1], const0_rtx);
+       xsrc = gen_rtx_AND (mode, xshift, xop[2]);
+       xop3 = xop[2];
+       xop2 = const0_rtx;
+     }
+ 
+   // Any of ASHIFT, LSHIFTRT, ASHIFTRT.
+   enum rtx_code code = GET_CODE (XEXP (xsrc, 0));
+   int shift = code == ASHIFT ? INTVAL (xop2) : -INTVAL (xop2);
+ 
+   // Determines the position of the output bit.
+   unsigned mask = GET_MODE_MASK (mode) & INTVAL (xop3);
+ 
+   // Position of the output / input bit, respectively.
+   int obit = exact_log2 (mask);
+   int ibit = obit - shift;
+ 
+   gcc_assert (IN_RANGE (obit, 0, GET_MODE_BITSIZE (mode) - 1));
+   gcc_assert (IN_RANGE (ibit, 0, GET_MODE_BITSIZE (mode) - 1));
+ 
+   // In the remainder, use the sub-bytes that hold the bits.
+   rtx op[4] =
+     {
+       // Output
+       simplify_gen_subreg (QImode, xop[0], mode, obit / 8),
+       GEN_INT (obit & 7),
+       // Input
+       simplify_gen_subreg (QImode, xop[1], mode, ibit / 8),
+       GEN_INT (ibit & 7)
+     };
+   obit &= 7;
+   ibit &= 7;
+ 
+   // The length of the default sequence at the end of this function.
+   // We only emit anything other than the default when we find a sequence
+   // that is strictly shorter than the default sequence; which is:
+   // BST + <CLR-result-bytes> + BLD.
+   const int len0 = 2 + n_bytes - (n_bytes == 4 && AVR_HAVE_MOVW);
+ 
+   // Finding something shorter than the default sequence implies that there
+   // must be at most 2 instructions that deal with the bytes containing the
+   // relevant bits.  In addition, we need  N_BYTES - 1  instructions to clear
+   // the remaining result bytes.
+ 
+   const int n_clr = n_bytes - 1;
+   bool clr_p = false;
+   bool andi_p = false;
+ 
+   if (plen)
+     *plen = 0;
+ 
+   if (REGNO (op[0]) == REGNO (op[2])
+       // Output reg allows ANDI.
+       && test_hard_reg_class (LD_REGS, op[0]))
+     {
+       if (1 + n_clr < len0
+ 	  // Same byte and bit: A single ANDI will do.
+ 	  && obit == ibit)
+ 	{
+ 	  clr_p = andi_p = true;
+ 	}
+       else if (2 + n_clr < len0
+ 	       // |obit - ibit| = 4:  SWAP + ANDI will do.
+ 	       && (obit == ibit + 4 || obit == ibit - 4))
+ 	{
+ 	  avr_asm_len ("swap %0", op, plen, 1);
+ 	  clr_p = andi_p = true;
+ 	}
+       else if (2 + n_clr < len0
+ 	       // LSL + ANDI will do.
+ 	       && obit == ibit + 1)
+ 	{
+ 	  avr_asm_len ("lsl %0", op, plen, 1);
+ 	  clr_p = andi_p = true;
+ 	}
+       else if (2 + n_clr < len0
+ 	       // LSR + ANDI will do.
+ 	       && obit == ibit - 1)
+ 	{
+ 	  avr_asm_len ("lsr %0", op, plen, 1);
+ 	  clr_p = andi_p = true;
+ 	}
+     }
+ 
+   if (REGNO (op[0]) != REGNO (op[2])
+       && obit == ibit)
+     {
+       if (2 + n_clr < len0
+ 	  // Same bit but different byte: MOV + ANDI will do.
+ 	  && test_hard_reg_class (LD_REGS, op[0]))
+ 	{
+ 	  avr_asm_len ("mov %0,%2", op, plen, 1);
+ 	  clr_p = andi_p = true;
+ 	}
+       else if (2 + n_clr < len0
+ 	       // Same bit but different byte:  We can use ANDI + MOV,
+ 	       // but only if the input byte is LD_REGS and unused after.
+ 	       && test_hard_reg_class (LD_REGS, op[2])
+ 	       && reg_unused_after (insn, op[2]))
+ 	{
+ 	  avr_asm_len ("andi %2,1<<%3"  CR_TAB
+ 		       "mov %0,%2", op, plen, 2);
+ 	  clr_p = true;
+ 	}
+     }
+ 
+   // Output remaining instructions of the shorter sequence.
+ 
+   if (andi_p)
+     avr_asm_len ("andi %0,1<<%1", op, plen, 1);
+ 
+   if (clr_p)
+     {
+       for (int b = 0; b < n_bytes; ++b)
+ 	{
+ 	  rtx byte = simplify_gen_subreg (QImode, xop[0], mode, b);
+ 	  if (REGNO (byte) != REGNO (op[0]))
+ 	    avr_asm_len ("clr %0", &byte, plen, 1);
+ 	}
+ 
+       // CLR_P means we found a shorter sequence, so we are done now.
+       return "";
+     }
+ 
+   // No shorter sequence found, just emit  BST, CLR*, BLD  sequence.
+ 
+   avr_asm_len ("bst %2,%3", op, plen, -1);
+ 
+   if (n_bytes == 4 && AVR_HAVE_MOVW)
+     avr_asm_len ("clr %A0"   CR_TAB
+ 		 "clr %B0"   CR_TAB
+ 		 "movw %C0,%A0", xop, plen, 3);
+   else
+     for (int b = 0; b < n_bytes; ++b)
+       {
+ 	rtx byte = simplify_gen_subreg (QImode, xop[0], mode, b);
+ 	avr_asm_len ("clr %0", &byte, plen, 1);
+       }
+ 
+   return avr_asm_len ("bld %0,%1", op, plen, 1);
+ }
+ 
+ 
+ /* Output instructions to extract a bit to 8-bit register XOP[0].
+    The input XOP[1] is a register or an 8-bit MEM in the lower I/O range.
+    XOP[2] is the const_int bit position.  Return "".
+ 
+    PLEN != 0: Set *PLEN to the code length in words.  Don't output anything.
+    PLEN == 0: Output instructions.  */
+ 
+ const char *
+ avr_out_extr (rtx_insn *insn, rtx xop[], int *plen)
+ {
+   rtx dest = xop[0];
+   rtx src = xop[1];
+   int bit = INTVAL (xop[2]);
+ 
+   if (GET_MODE (src) != QImode)
+     {
+       src = xop[1] = simplify_gen_subreg (QImode, src, GET_MODE (src), bit / 8);
+       bit %= 8;
+       xop[2] = GEN_INT (bit);
+     }
+ 
+   if (MEM_P (src))
+     {
+       xop[1] = XEXP (src, 0); // address
+       gcc_assert (low_io_address_operand (xop[1], Pmode));
+ 
+       return avr_asm_len ("clr %0"      CR_TAB
+ 			  "sbic %i1,%2" CR_TAB
+ 			  "inc %0", xop, plen, -3);
+     }
+ 
+   gcc_assert (REG_P (src));
+ 
+   bool ld_dest_p = test_hard_reg_class (LD_REGS, dest);
+   bool ld_src_p = test_hard_reg_class (LD_REGS, src);
+ 
+   if (ld_dest_p
+       && REGNO (src) == REGNO (dest))
+     {
+       if (bit == 0)
+ 	return avr_asm_len ("andi %0,1", xop, plen, -1);
+       if (bit == 1)
+ 	return avr_asm_len ("lsr %0" CR_TAB
+ 			    "andi %0,1", xop, plen, -2);
+       if (bit == 4)
+ 	return avr_asm_len ("swap %0" CR_TAB
+ 			    "andi %0,1", xop, plen, -2);
+     }
+ 
+   if (bit == 0
+       && REGNO (src) != REGNO (dest))
+   {
+     if (ld_dest_p)
+       return avr_asm_len ("mov %0,%1" CR_TAB
+ 			  "andi %0,1", xop, plen, -2);
+     if (ld_src_p
+ 	&& reg_unused_after (insn, src))
+       return avr_asm_len ("andi %1,1" CR_TAB
+ 			  "mov %0,%1", xop, plen, -2);
+   }
+ 
+   return avr_asm_len ("bst %1,%2" CR_TAB
+ 		      "clr %0"    CR_TAB
+ 		      "bld %0,0", xop, plen, -3);
+ }
+ 
+ 
+ /* Output instructions to extract a negated bit to 8-bit register XOP[0].
+    The input XOP[1] is an 8-bit register or MEM in the lower I/O range.
+    XOP[2] is the const_int bit position.  Return "".
+ 
+    PLEN != 0: Set *PLEN to the code length in words.  Don't output anything.
+    PLEN == 0: Output instructions.  */
+ 
+ const char *
+ avr_out_extr_not (rtx_insn * /* insn */, rtx xop[], int *plen)
+ {
+   rtx dest = xop[0];
+   rtx src = xop[1];
+   int bit = INTVAL (xop[2]);
+ 
+   if (MEM_P (src))
+     {
+       xop[1] = XEXP (src, 0); // address
+       gcc_assert (low_io_address_operand (xop[1], Pmode));
+ 
+       return avr_asm_len ("clr %0"      CR_TAB
+ 			  "sbis %i1,%2" CR_TAB
+ 			  "inc %0", xop, plen, -3);
+     }
+ 
+   gcc_assert (REG_P (src));
+ 
+   bool ld_src_p = test_hard_reg_class (LD_REGS, src);
+ 
+   if (ld_src_p
+       && REGNO (src) == REGNO (dest))
+     {
+       if (bit == 0)
+ 	return avr_asm_len ("inc %0" CR_TAB
+ 			    "andi %0,1", xop, plen, -2);
+       if (bit == 1)
+ 	return avr_asm_len ("lsr %0" CR_TAB
+ 			    "inc %0" CR_TAB
+ 			    "andi %0,1", xop, plen, -3);
+       if (bit == 4)
+ 	return avr_asm_len ("swap %0" CR_TAB
+ 			    "inc %0"  CR_TAB
+ 			    "andi %0,1", xop, plen, -3);
+     }
+ 
+   if (bit == 7
+       && ld_src_p)
+     return avr_asm_len ("cpi %1,0x80" CR_TAB
+ 			"sbc %0,%0"   CR_TAB
+ 			"neg %0", xop, plen, -3);
+ 
+   if (REGNO (src) != REGNO (dest))
+     return avr_asm_len ("clr %0"     CR_TAB
+ 			"sbrs %1,%2" CR_TAB
+ 			"inc %0", xop, plen, -3);
+ 
+   return avr_asm_len ("clr __tmp_reg__" CR_TAB
+ 		      "sbrs %1,%2"      CR_TAB
+ 		      "inc __tmp_reg__" CR_TAB
+ 		      "mov %0,__tmp_reg__", xop, plen, -4);
+ }
+ 
+ 
  /* Outputs instructions needed for fixed point type conversion.
     This includes converting between any fixed point type, as well
     as converting to any integer type.  Conversion between integer
*************** avr_out_insert_notbit (rtx_insn *insn, r
*** 9070,9076 ****
     shifted by 1 bit.  When the destination is a signed fractional, the sign
     is stored in either the carry or T bit.  */
  
! const char*
  avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
  {
    rtx xop[6];
--- 10146,10152 ----
     shifted by 1 bit.  When the destination is a signed fractional, the sign
     is stored in either the carry or T bit.  */
  
! const char *
  avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
  {
    rtx xop[6];
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9121,9137 ****
        val[i]->regno_msb = REGNO (xop[i]) + val[i]->bytes - 1;
  
        if (SCALAR_INT_MODE_P (mode))
!         {
!           val[i]->sbit = intsigned;
!           val[i]->fbit = 0;
!         }
        else if (ALL_SCALAR_FIXED_POINT_MODE_P (mode))
!         {
!           val[i]->sbit = SIGNED_SCALAR_FIXED_POINT_MODE_P (mode);
!           val[i]->fbit = GET_MODE_FBIT (mode);
!         }
        else
!         fatal_insn ("unsupported fixed-point conversion", insn);
  
        val[i]->fbyte = (1 + val[i]->fbit) / BITS_PER_UNIT;
        val[i]->ibyte = val[i]->bytes - val[i]->fbyte;
--- 10197,10213 ----
        val[i]->regno_msb = REGNO (xop[i]) + val[i]->bytes - 1;
  
        if (SCALAR_INT_MODE_P (mode))
! 	{
! 	  val[i]->sbit = intsigned;
! 	  val[i]->fbit = 0;
! 	}
        else if (ALL_SCALAR_FIXED_POINT_MODE_P (mode))
! 	{
! 	  val[i]->sbit = SIGNED_SCALAR_FIXED_POINT_MODE_P (mode);
! 	  val[i]->fbit = GET_MODE_FBIT (mode);
! 	}
        else
! 	fatal_insn ("unsupported fixed-point conversion", insn);
  
        val[i]->fbyte = (1 + val[i]->fbit) / BITS_PER_UNIT;
        val[i]->ibyte = val[i]->bytes - val[i]->fbyte;
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9170,9178 ****
        && !TARGET_FRACT_CONV_TRUNC)
      {
        bool overlap
!         = (src.regno <=
!            (offset ? dest.regno_msb - sign_bytes : dest.regno + zero_bytes - 1)
!            && dest.regno - offset -1 >= dest.regno);
        unsigned s0 = dest.regno - offset -1;
        bool use_src = true;
        unsigned sn;
--- 10246,10254 ----
        && !TARGET_FRACT_CONV_TRUNC)
      {
        bool overlap
! 	= (src.regno <=
! 	   (offset ? dest.regno_msb - sign_bytes : dest.regno + zero_bytes - 1)
! 	   && dest.regno - offset -1 >= dest.regno);
        unsigned s0 = dest.regno - offset -1;
        bool use_src = true;
        unsigned sn;
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9180,9282 ****
        bool have_carry = false;
  
        if (src.ibyte > dest.ibyte)
!         copied_msb -= src.ibyte - dest.ibyte;
  
        for (sn = s0; sn <= copied_msb; sn++)
!         if (!IN_RANGE (sn, dest.regno, dest.regno_msb)
!             && !reg_unused_after (insn, all_regs_rtx[sn]))
!           use_src = false;
        if (use_src && TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], s0))
!         {
!           avr_asm_len ("tst %0" CR_TAB "brpl 0f",
!                        &all_regs_rtx[src.regno_msb], plen, 2);
!           sn = src.regno;
!           if (sn < s0)
!             {
!               if (TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], sn))
!                 avr_asm_len ("cpi %0,1", &all_regs_rtx[sn], plen, 1);
!               else
!                 avr_asm_len ("sec" CR_TAB
!                              "cpc %0,__zero_reg__",
!                              &all_regs_rtx[sn], plen, 2);
!               have_carry = true;
!             }
!           while (++sn < s0)
!             avr_asm_len ("cpc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
  
!           avr_asm_len (have_carry ? "sbci %0,128" : "subi %0,129",
!                        &all_regs_rtx[s0], plen, 1);
!           for (sn = src.regno + src.fbyte; sn <= copied_msb; sn++)
!             avr_asm_len ("sbci %0,255", &all_regs_rtx[sn], plen, 1);
!           avr_asm_len ("\n0:", NULL, plen, 0);
!           frac_rounded = true;
!         }
        else if (use_src && overlap)
!         {
!           avr_asm_len ("clr __tmp_reg__" CR_TAB
!                        "sbrc %1,0"       CR_TAB
!                        "dec __tmp_reg__", xop, plen, 1);
!           sn = src.regno;
!           if (sn < s0)
!             {
!               avr_asm_len ("add %0,__tmp_reg__", &all_regs_rtx[sn], plen, 1);
!               have_carry = true;
!             }
  
!           while (++sn < s0)
!             avr_asm_len ("adc %0,__tmp_reg__", &all_regs_rtx[sn], plen, 1);
  
!           if (have_carry)
!             avr_asm_len ("clt"                CR_TAB
!                          "bld __tmp_reg__,7"  CR_TAB
!                          "adc %0,__tmp_reg__",
!                          &all_regs_rtx[s0], plen, 1);
!           else
!             avr_asm_len ("lsr __tmp_reg" CR_TAB
!                          "add %0,__tmp_reg__",
!                          &all_regs_rtx[s0], plen, 2);
!           for (sn = src.regno + src.fbyte; sn <= copied_msb; sn++)
!             avr_asm_len ("adc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
!           frac_rounded = true;
!         }
        else if (overlap)
!         {
!           bool use_src
!             = (TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], s0)
!                && (IN_RANGE (s0, dest.regno, dest.regno_msb)
!                    || reg_unused_after (insn, all_regs_rtx[s0])));
!           xop[2] = all_regs_rtx[s0];
!           unsigned sn = src.regno;
!           if (!use_src || sn == s0)
!             avr_asm_len ("mov __tmp_reg__,%2", xop, plen, 1);
!           /* We need to consider to-be-discarded bits
!              if the value is negative.  */
!           if (sn < s0)
!             {
!               avr_asm_len ("tst %0" CR_TAB
!                            "brpl 0f",
!                            &all_regs_rtx[src.regno_msb], plen, 2);
!               /* Test to-be-discarded bytes for any nozero bits.
!                  ??? Could use OR or SBIW to test two registers at once.  */
!               if (sn < s0)
!                 avr_asm_len ("cp %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
  
!               while (++sn < s0)
!                 avr_asm_len ("cpc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
!               /* Set bit 0 in __tmp_reg__ if any of the lower bits was set.  */
!               if (use_src)
!                 avr_asm_len ("breq 0f" CR_TAB
!                              "ori %2,1"
!                              "\n0:\t" "mov __tmp_reg__,%2",
!                              xop, plen, 3);
!               else
!                 avr_asm_len ("breq 0f" CR_TAB
!                              "set"     CR_TAB
!                              "bld __tmp_reg__,0\n0:",
!                              xop, plen, 3);
!             }
!           lsb_in_tmp_reg = true;
!         }
      }
  
    /* Step 1:  Clear bytes at the low end and copy payload bits from source
--- 10256,10358 ----
        bool have_carry = false;
  
        if (src.ibyte > dest.ibyte)
! 	copied_msb -= src.ibyte - dest.ibyte;
  
        for (sn = s0; sn <= copied_msb; sn++)
! 	if (!IN_RANGE (sn, dest.regno, dest.regno_msb)
! 	    && !reg_unused_after (insn, all_regs_rtx[sn]))
! 	  use_src = false;
        if (use_src && TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], s0))
! 	{
! 	  avr_asm_len ("tst %0" CR_TAB "brpl 0f",
! 		       &all_regs_rtx[src.regno_msb], plen, 2);
! 	  sn = src.regno;
! 	  if (sn < s0)
! 	    {
! 	      if (TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], sn))
! 		avr_asm_len ("cpi %0,1", &all_regs_rtx[sn], plen, 1);
! 	      else
! 		avr_asm_len ("sec" CR_TAB
! 			     "cpc %0,__zero_reg__",
! 			     &all_regs_rtx[sn], plen, 2);
! 	      have_carry = true;
! 	    }
! 	  while (++sn < s0)
! 	    avr_asm_len ("cpc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
  
! 	  avr_asm_len (have_carry ? "sbci %0,128" : "subi %0,129",
! 		       &all_regs_rtx[s0], plen, 1);
! 	  for (sn = src.regno + src.fbyte; sn <= copied_msb; sn++)
! 	    avr_asm_len ("sbci %0,255", &all_regs_rtx[sn], plen, 1);
! 	  avr_asm_len ("\n0:", NULL, plen, 0);
! 	  frac_rounded = true;
! 	}
        else if (use_src && overlap)
! 	{
! 	  avr_asm_len ("clr __tmp_reg__" CR_TAB
! 		       "sbrc %1,0"       CR_TAB
! 		       "dec __tmp_reg__", xop, plen, 1);
! 	  sn = src.regno;
! 	  if (sn < s0)
! 	    {
! 	      avr_asm_len ("add %0,__tmp_reg__", &all_regs_rtx[sn], plen, 1);
! 	      have_carry = true;
! 	    }
  
! 	  while (++sn < s0)
! 	    avr_asm_len ("adc %0,__tmp_reg__", &all_regs_rtx[sn], plen, 1);
  
! 	  if (have_carry)
! 	    avr_asm_len ("clt"                CR_TAB
! 			 "bld __tmp_reg__,7"  CR_TAB
! 			 "adc %0,__tmp_reg__",
! 			 &all_regs_rtx[s0], plen, 1);
! 	  else
! 	    avr_asm_len ("lsr __tmp_reg" CR_TAB
! 			 "add %0,__tmp_reg__",
! 			 &all_regs_rtx[s0], plen, 2);
! 	  for (sn = src.regno + src.fbyte; sn <= copied_msb; sn++)
! 	    avr_asm_len ("adc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
! 	  frac_rounded = true;
! 	}
        else if (overlap)
! 	{
! 	  bool use_src
! 	    = (TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], s0)
! 	       && (IN_RANGE (s0, dest.regno, dest.regno_msb)
! 		   || reg_unused_after (insn, all_regs_rtx[s0])));
! 	  xop[2] = all_regs_rtx[s0];
! 	  unsigned sn = src.regno;
! 	  if (!use_src || sn == s0)
! 	    avr_asm_len ("mov __tmp_reg__,%2", xop, plen, 1);
! 	  /* We need to consider to-be-discarded bits
! 	     if the value is negative.  */
! 	  if (sn < s0)
! 	    {
! 	      avr_asm_len ("tst %0" CR_TAB
! 			   "brpl 0f",
! 			   &all_regs_rtx[src.regno_msb], plen, 2);
! 	      /* Test to-be-discarded bytes for any nozero bits.
! 		 ??? Could use OR or SBIW to test two registers at once.  */
! 	      if (sn < s0)
! 		avr_asm_len ("cp %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
  
! 	      while (++sn < s0)
! 		avr_asm_len ("cpc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
! 	      /* Set bit 0 in __tmp_reg__ if any of the lower bits was set.  */
! 	      if (use_src)
! 		avr_asm_len ("breq 0f" CR_TAB
! 			     "ori %2,1"
! 			     "\n0:\t" "mov __tmp_reg__,%2",
! 			     xop, plen, 3);
! 	      else
! 		avr_asm_len ("breq 0f" CR_TAB
! 			     "set"     CR_TAB
! 			     "bld __tmp_reg__,0\n0:",
! 			     xop, plen, 3);
! 	    }
! 	  lsb_in_tmp_reg = true;
! 	}
      }
  
    /* Step 1:  Clear bytes at the low end and copy payload bits from source
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9309,9393 ****
        int stepw = 0;
  
        if (clr0)
!         {
!           if (AVR_HAVE_MOVW && clr1 && clrw)
!             {
!               xop[2] = all_regs_rtx[d0 & ~1];
!               xop[3] = clrw;
!               code = "movw %2,%3";
!               stepw = step;
!             }
!           else
!             {
!               xop[2] = all_regs_rtx[d0];
!               code = "clr %2";
  
!               if (++clr_n >= 2
!                   && !clrw
!                   && d0 % 2 == (step > 0))
!                 {
!                   clrw = all_regs_rtx[d0 & ~1];
!                 }
!             }
!         }
        else if (offset && s0 <= (signed) src.regno_msb)
!         {
!           int movw = AVR_HAVE_MOVW && offset % 2 == 0
!             && d0 % 2 == (offset > 0)
!             && d1 <= dest.regno_msb && d1 >= dest.regno
!             && s1 <= (signed) src.regno_msb  && s1 >= (signed) src.regno;
  
!           xop[2] = all_regs_rtx[d0 & ~movw];
!           xop[3] = all_regs_rtx[s0 & ~movw];
!           code = movw ? "movw %2,%3" : "mov %2,%3";
!           stepw = step * movw;
!         }
  
        if (code)
!         {
!           if (sign_extend && shift != ASHIFT && !sign_in_carry
!               && (d0 == src.regno_msb || d0 + stepw == src.regno_msb))
!             {
!               /* We are going to override the sign bit.  If we sign-extend,
!                  store the sign in the Carry flag.  This is not needed if
!                  the destination will be ASHIFT in the remainder because
!                  the ASHIFT will set Carry without extra instruction.  */
  
!               avr_asm_len ("lsl %0", &all_regs_rtx[src.regno_msb], plen, 1);
!               sign_in_carry = true;
!             }
  
!           unsigned src_msb = dest.regno_msb - sign_bytes - offset + 1;
  
!           if (!sign_extend && shift == ASHIFTRT && !msb_in_carry
!               && src.ibyte > dest.ibyte
!               && (d0 == src_msb || d0 + stepw == src_msb))
!             {
!               /* We are going to override the MSB.  If we shift right,
!                  store the MSB in the Carry flag.  This is only needed if
!                  we don't sign-extend becaue with sign-extension the MSB
!                  (the sign) will be produced by the sign extension.  */
  
!               avr_asm_len ("lsr %0", &all_regs_rtx[src_msb], plen, 1);
!               msb_in_carry = true;
!             }
  
!           unsigned src_lsb = dest.regno - offset -1;
  
!           if (shift == ASHIFT && src.fbyte > dest.fbyte && !lsb_in_carry
  	      && !lsb_in_tmp_reg
!               && (d0 == src_lsb || d0 + stepw == src_lsb))
!             {
!               /* We are going to override the new LSB; store it into carry.  */
  
!               avr_asm_len ("lsl %0", &all_regs_rtx[src_lsb], plen, 1);
!               code_ashift = "rol %0";
!               lsb_in_carry = true;
!             }
  
!           avr_asm_len (code, xop, plen, 1);
!           d0 += stepw;
!         }
      }
  
    /* Step 2:  Shift destination left by 1 bit position.  This might be needed
--- 10385,10469 ----
        int stepw = 0;
  
        if (clr0)
! 	{
! 	  if (AVR_HAVE_MOVW && clr1 && clrw)
! 	    {
! 	      xop[2] = all_regs_rtx[d0 & ~1];
! 	      xop[3] = clrw;
! 	      code = "movw %2,%3";
! 	      stepw = step;
! 	    }
! 	  else
! 	    {
! 	      xop[2] = all_regs_rtx[d0];
! 	      code = "clr %2";
  
! 	      if (++clr_n >= 2
! 		  && !clrw
! 		  && d0 % 2 == (step > 0))
! 		{
! 		  clrw = all_regs_rtx[d0 & ~1];
! 		}
! 	    }
! 	}
        else if (offset && s0 <= (signed) src.regno_msb)
! 	{
! 	  int movw = AVR_HAVE_MOVW && offset % 2 == 0
! 	    && d0 % 2 == (offset > 0)
! 	    && d1 <= dest.regno_msb && d1 >= dest.regno
! 	    && s1 <= (signed) src.regno_msb  && s1 >= (signed) src.regno;
  
! 	  xop[2] = all_regs_rtx[d0 & ~movw];
! 	  xop[3] = all_regs_rtx[s0 & ~movw];
! 	  code = movw ? "movw %2,%3" : "mov %2,%3";
! 	  stepw = step * movw;
! 	}
  
        if (code)
! 	{
! 	  if (sign_extend && shift != ASHIFT && !sign_in_carry
! 	      && (d0 == src.regno_msb || d0 + stepw == src.regno_msb))
! 	    {
! 	      /* We are going to override the sign bit.  If we sign-extend,
! 		 store the sign in the Carry flag.  This is not needed if
! 		 the destination will be ASHIFT in the remainder because
! 		 the ASHIFT will set Carry without extra instruction.  */
  
! 	      avr_asm_len ("lsl %0", &all_regs_rtx[src.regno_msb], plen, 1);
! 	      sign_in_carry = true;
! 	    }
  
! 	  unsigned src_msb = dest.regno_msb - sign_bytes - offset + 1;
  
! 	  if (!sign_extend && shift == ASHIFTRT && !msb_in_carry
! 	      && src.ibyte > dest.ibyte
! 	      && (d0 == src_msb || d0 + stepw == src_msb))
! 	    {
! 	      /* We are going to override the MSB.  If we shift right,
! 		 store the MSB in the Carry flag.  This is only needed if
! 		 we don't sign-extend becaue with sign-extension the MSB
! 		 (the sign) will be produced by the sign extension.  */
  
! 	      avr_asm_len ("lsr %0", &all_regs_rtx[src_msb], plen, 1);
! 	      msb_in_carry = true;
! 	    }
  
! 	  unsigned src_lsb = dest.regno - offset -1;
  
! 	  if (shift == ASHIFT && src.fbyte > dest.fbyte && !lsb_in_carry
  	      && !lsb_in_tmp_reg
! 	      && (d0 == src_lsb || d0 + stepw == src_lsb))
! 	    {
! 	      /* We are going to override the new LSB; store it into carry.  */
  
! 	      avr_asm_len ("lsl %0", &all_regs_rtx[src_lsb], plen, 1);
! 	      code_ashift = "rol %0";
! 	      lsb_in_carry = true;
! 	    }
  
! 	  avr_asm_len (code, xop, plen, 1);
! 	  d0 += stepw;
! 	}
      }
  
    /* Step 2:  Shift destination left by 1 bit position.  This might be needed
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9415,9421 ****
  
  	  /* Overflow goes with set carry.  Clear carry otherwise.  */
  	  avr_asm_len ("brvs 0f" CR_TAB
!                        "clc\n0:", NULL, plen, 2);
  	}
        /* Likewise, when converting from accumulator types to integer, we
  	 need to round up negative values.  */
--- 10491,10497 ----
  
  	  /* Overflow goes with set carry.  Clear carry otherwise.  */
  	  avr_asm_len ("brvs 0f" CR_TAB
! 		       "clc\n0:", NULL, plen, 2);
  	}
        /* Likewise, when converting from accumulator types to integer, we
  	 need to round up negative values.  */
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9465,9496 ****
  	      avr_asm_len ("dec __zero_reg__", NULL, plen, 1);
  	      if (have_carry)
  		avr_asm_len ("clt" CR_TAB
!                              "bld __zero_reg__,7", NULL, plen, 2);
  	      else
  		avr_asm_len ("lsr __zero_reg__", NULL, plen, 1);
  	      avr_asm_len (have_carry && lsb_in_tmp_reg
!                            ? "adc __tmp_reg__,__zero_reg__"
!                            : have_carry ? "adc %2,__zero_reg__"
!                            : lsb_in_tmp_reg ? "add __tmp_reg__,__zero_reg__"
!                            : "add %2,__zero_reg__",
  			   xop, plen, 1);
  	      avr_asm_len ("eor __zero_reg__,__zero_reg__", NULL, plen, 1);
  	    }
  
!           for (d0 = dest.regno + zero_bytes;
  	       d0 <= dest.regno_msb - sign_bytes; d0++)
  	    avr_asm_len ("adc %0,__zero_reg__", &all_regs_rtx[d0], plen, 1);
  
!           avr_asm_len (lsb_in_tmp_reg
  		       ? "\n0:\t" "lsl __tmp_reg__"
!                        : "\n0:\t" "lsl %2",
  		       xop, plen, 1);
  	}
        else if (MAY_CLOBBER (s0))
!         avr_asm_len ("lsl %0", &all_regs_rtx[s0], plen, 1);
        else
!         avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
!                      "lsl __tmp_reg__", &all_regs_rtx[s0], plen, 2);
  
        code_ashift = "rol %0";
        lsb_in_carry = true;
--- 10541,10572 ----
  	      avr_asm_len ("dec __zero_reg__", NULL, plen, 1);
  	      if (have_carry)
  		avr_asm_len ("clt" CR_TAB
! 			     "bld __zero_reg__,7", NULL, plen, 2);
  	      else
  		avr_asm_len ("lsr __zero_reg__", NULL, plen, 1);
  	      avr_asm_len (have_carry && lsb_in_tmp_reg
! 			   ? "adc __tmp_reg__,__zero_reg__"
! 			   : have_carry ? "adc %2,__zero_reg__"
! 			   : lsb_in_tmp_reg ? "add __tmp_reg__,__zero_reg__"
! 			   : "add %2,__zero_reg__",
  			   xop, plen, 1);
  	      avr_asm_len ("eor __zero_reg__,__zero_reg__", NULL, plen, 1);
  	    }
  
! 	  for (d0 = dest.regno + zero_bytes;
  	       d0 <= dest.regno_msb - sign_bytes; d0++)
  	    avr_asm_len ("adc %0,__zero_reg__", &all_regs_rtx[d0], plen, 1);
  
! 	  avr_asm_len (lsb_in_tmp_reg
  		       ? "\n0:\t" "lsl __tmp_reg__"
! 		       : "\n0:\t" "lsl %2",
  		       xop, plen, 1);
  	}
        else if (MAY_CLOBBER (s0))
! 	avr_asm_len ("lsl %0", &all_regs_rtx[s0], plen, 1);
        else
! 	avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
! 		     "lsl __tmp_reg__", &all_regs_rtx[s0], plen, 2);
  
        code_ashift = "rol %0";
        lsb_in_carry = true;
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9499,9509 ****
    if (shift == ASHIFT)
      {
        for (d0 = dest.regno + zero_bytes;
!            d0 <= dest.regno_msb - sign_bytes; d0++)
!         {
!           avr_asm_len (code_ashift, &all_regs_rtx[d0], plen, 1);
!           code_ashift = "rol %0";
!         }
  
        lsb_in_carry = false;
        sign_in_carry = true;
--- 10575,10585 ----
    if (shift == ASHIFT)
      {
        for (d0 = dest.regno + zero_bytes;
! 	   d0 <= dest.regno_msb - sign_bytes; d0++)
! 	{
! 	  avr_asm_len (code_ashift, &all_regs_rtx[d0], plen, 1);
! 	  code_ashift = "rol %0";
! 	}
  
        lsb_in_carry = false;
        sign_in_carry = true;
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9518,9527 ****
        unsigned s0 = dest.regno_msb - sign_bytes - offset + 1;
  
        if (MAY_CLOBBER (s0))
!         avr_asm_len ("lsr %0", &all_regs_rtx[s0], plen, 1);
        else
!         avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
!                      "lsr __tmp_reg__", &all_regs_rtx[s0], plen, 2);
  
        msb_in_carry = true;
      }
--- 10594,10603 ----
        unsigned s0 = dest.regno_msb - sign_bytes - offset + 1;
  
        if (MAY_CLOBBER (s0))
! 	avr_asm_len ("lsr %0", &all_regs_rtx[s0], plen, 1);
        else
! 	avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
! 		     "lsr __tmp_reg__", &all_regs_rtx[s0], plen, 2);
  
        msb_in_carry = true;
      }
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9534,9543 ****
        unsigned s0 = src.regno_msb;
  
        if (MAY_CLOBBER (s0))
!         avr_asm_len ("lsl %0", &all_regs_rtx[s0], plen, 1);
        else
!         avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
!                      "lsl __tmp_reg__", &all_regs_rtx[s0], plen, 2);
  
        sign_in_carry = true;
      }
--- 10610,10619 ----
        unsigned s0 = src.regno_msb;
  
        if (MAY_CLOBBER (s0))
! 	avr_asm_len ("lsl %0", &all_regs_rtx[s0], plen, 1);
        else
! 	avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
! 		     "lsl __tmp_reg__", &all_regs_rtx[s0], plen, 2);
  
        sign_in_carry = true;
      }
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9550,9570 ****
    for (d0 = dest.regno_msb - sign_bytes + 1; d0 <= dest.regno_msb; d0++)
      {
        if (AVR_HAVE_MOVW && movw
!           && d0 % 2 == 0 && d0 + 1 <= dest.regno_msb)
!         {
!           xop[2] = all_regs_rtx[d0];
!           xop[3] = movw;
!           avr_asm_len ("movw %2,%3", xop, plen, 1);
!           d0++;
!         }
        else
!         {
!           avr_asm_len (sign_extend ? "sbc %0,%0" : "clr %0",
!                        &all_regs_rtx[d0], plen, 1);
  
!           if (++copies >= 2 && !movw && d0 % 2 == 1)
!             movw = all_regs_rtx[d0-1];
!         }
      } /* for */
  
  
--- 10626,10646 ----
    for (d0 = dest.regno_msb - sign_bytes + 1; d0 <= dest.regno_msb; d0++)
      {
        if (AVR_HAVE_MOVW && movw
! 	  && d0 % 2 == 0 && d0 + 1 <= dest.regno_msb)
! 	{
! 	  xop[2] = all_regs_rtx[d0];
! 	  xop[3] = movw;
! 	  avr_asm_len ("movw %2,%3", xop, plen, 1);
! 	  d0++;
! 	}
        else
! 	{
! 	  avr_asm_len (sign_extend ? "sbc %0,%0" : "clr %0",
! 		       &all_regs_rtx[d0], plen, 1);
  
! 	  if (++copies >= 2 && !movw && d0 % 2 == 1)
! 	    movw = all_regs_rtx[d0-1];
! 	}
      } /* for */
  
  
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9576,9592 ****
        const char *code_ashiftrt = "lsr %0";
  
        if (sign_extend || msb_in_carry)
!         code_ashiftrt = "ror %0";
  
        if (src.sbit && src.ibyte == dest.ibyte)
!         code_ashiftrt = "asr %0";
  
        for (d0 = dest.regno_msb - sign_bytes;
!            d0 >= dest.regno + zero_bytes - 1 && d0 >= dest.regno; d0--)
!         {
!           avr_asm_len (code_ashiftrt, &all_regs_rtx[d0], plen, 1);
!           code_ashiftrt = "ror %0";
!         }
      }
  
  #undef MAY_CLOBBER
--- 10652,10668 ----
        const char *code_ashiftrt = "lsr %0";
  
        if (sign_extend || msb_in_carry)
! 	code_ashiftrt = "ror %0";
  
        if (src.sbit && src.ibyte == dest.ibyte)
! 	code_ashiftrt = "asr %0";
  
        for (d0 = dest.regno_msb - sign_bytes;
! 	   d0 >= dest.regno + zero_bytes - 1 && d0 >= dest.regno; d0--)
! 	{
! 	  avr_asm_len (code_ashiftrt, &all_regs_rtx[d0], plen, 1);
! 	  code_ashiftrt = "ror %0";
! 	}
      }
  
  #undef MAY_CLOBBER
*************** avr_out_fract (rtx_insn *insn, rtx opera
*** 9601,9608 ****
     of the sequence if PLEN != NULL.  Most of this function deals with
     preparing operands for calls to `avr_out_plus' and `avr_out_bitop'.  */
  
! const char*
! avr_out_round (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *xop, int *plen)
  {
    scalar_mode mode = as_a <scalar_mode> (GET_MODE (xop[0]));
    scalar_int_mode imode = int_mode_for_mode (mode).require ();
--- 10677,10684 ----
     of the sequence if PLEN != NULL.  Most of this function deals with
     preparing operands for calls to `avr_out_plus' and `avr_out_bitop'.  */
  
! const char *
! avr_out_round (rtx_insn * /*insn*/, rtx *xop, int *plen)
  {
    scalar_mode mode = as_a <scalar_mode> (GET_MODE (xop[0]));
    scalar_int_mode imode = int_mode_for_mode (mode).require ();
*************** avr_out_round (rtx_insn *insn ATTRIBUTE_
*** 9630,9639 ****
    op[0] = xop[0];
    op[1] = xop[1];
    op[2] = xadd;
!   avr_out_plus (xpattern, op, plen_add, NULL, false /* Don't print "0:" */);
  
    avr_asm_len ("rjmp 1f" CR_TAB
!                "0:", NULL, plen_add, 1);
  
    // Keep  all bits from RP and higher:   ... 2^(-RP)
    // Clear all bits from RP+1 and lower:              2^(-RP-1) ...
--- 10706,10715 ----
    op[0] = xop[0];
    op[1] = xop[1];
    op[2] = xadd;
!   avr_out_plus (xpattern, op, plen_add, false /* Don't print "0:" */);
  
    avr_asm_len ("rjmp 1f" CR_TAB
! 	       "0:", NULL, plen_add, 1);
  
    // Keep  all bits from RP and higher:   ... 2^(-RP)
    // Clear all bits from RP+1 and lower:              2^(-RP-1) ...
*************** avr_rotate_bytes (rtx operands[])
*** 9673,9679 ****
    /* Work out if byte or word move is needed.  Odd byte rotates need QImode.
       Word move if no scratch is needed, otherwise use size of scratch.  */
    machine_mode move_mode = QImode;
-   int move_size, offset, size;
  
    if (num & 0xf)
      move_mode = QImode;
--- 10749,10754 ----
*************** avr_rotate_bytes (rtx operands[])
*** 9692,9702 ****
        && QImode == move_mode)
      scratch = simplify_gen_subreg (move_mode, scratch, HImode, 0);
  
!   move_size = GET_MODE_SIZE (move_mode);
    /* Number of bytes/words to rotate.  */
!   offset = (num  >> 3) / move_size;
    /* Number of moves needed.  */
!   size = GET_MODE_SIZE (mode) / move_size;
    /* Himode byte swap is special case to avoid a scratch register.  */
    if (mode == HImode && same_reg)
      {
--- 10767,10777 ----
        && QImode == move_mode)
      scratch = simplify_gen_subreg (move_mode, scratch, HImode, 0);
  
!   int move_size = GET_MODE_SIZE (move_mode);
    /* Number of bytes/words to rotate.  */
!   int offset = (num  >> 3) / move_size;
    /* Number of moves needed.  */
!   int size = GET_MODE_SIZE (mode) / move_size;
    /* Himode byte swap is special case to avoid a scratch register.  */
    if (mode == HImode && same_reg)
      {
*************** avr_rotate_bytes (rtx operands[])
*** 9705,9805 ****
        src = simplify_gen_subreg (move_mode, operands[1], mode, 0);
        dst = simplify_gen_subreg (move_mode, operands[0], mode, 1);
        if (!rtx_equal_p (dst, src))
!         {
!           emit_move_insn (dst, gen_rtx_XOR (QImode, dst, src));
!           emit_move_insn (src, gen_rtx_XOR (QImode, src, dst));
!           emit_move_insn (dst, gen_rtx_XOR (QImode, dst, src));
!         }
      }
    else
      {
  #define MAX_SIZE 8 /* GET_MODE_SIZE (DImode) / GET_MODE_SIZE (QImode)  */
        /* Create linked list of moves to determine move order.  */
        struct {
!         rtx src, dst;
!         int links;
        } move[MAX_SIZE + 8];
        int blocked, moves;
  
        gcc_assert (size <= MAX_SIZE);
        /* Generate list of subreg moves.  */
        for (int i = 0; i < size; i++)
!         {
!           int from = i;
!           int to = (from + offset) % size;
!           move[i].src = simplify_gen_subreg (move_mode, operands[1],
!                                              mode, from * move_size);
!           move[i].dst = simplify_gen_subreg (move_mode, operands[0],
!                                              mode, to * move_size);
!           move[i].links = -1;
!         }
        /* Mark dependence where a dst of one move is the src of another move.
!          The first move is a conflict as it must wait until second is
!          performed.  We ignore moves to self - we catch this later.  */
        if (overlapped)
!         for (int i = 0; i < size; i++)
!           if (reg_overlap_mentioned_p (move[i].dst, operands[1]))
!             for (int j = 0; j < size; j++)
!               if (j != i && rtx_equal_p (move[j].src, move[i].dst))
!                 {
!                   /* The dst of move i is the src of move j.  */
!                   move[i].links = j;
!                   break;
!                 }
  
        blocked = -1;
        moves = 0;
        /* Go through move list and perform non-conflicting moves.  As each
!          non-overlapping move is made, it may remove other conflicts
!          so the process is repeated until no conflicts remain.  */
        do
!         {
!           blocked = -1;
!           moves = 0;
!           /* Emit move where dst is not also a src or we have used that
!              src already.  */
!           for (int i = 0; i < size; i++)
!             if (move[i].src != NULL_RTX)
!               {
!                 if (move[i].links == -1
!                     || move[move[i].links].src == NULL_RTX)
!                   {
!                     moves++;
!                     /* Ignore NOP moves to self.  */
!                     if (!rtx_equal_p (move[i].dst, move[i].src))
!                       emit_move_insn (move[i].dst, move[i].src);
  
!                     /* Remove  conflict from list.  */
!                     move[i].src = NULL_RTX;
!                   }
!                 else
!                   blocked = i;
!               }
  
!           /* Check for deadlock. This is when no moves occurred and we have
!              at least one blocked move.  */
!           if (moves == 0 && blocked != -1)
!             {
!               /* Need to use scratch register to break deadlock.
!                  Add move to put dst of blocked move into scratch.
!                  When this move occurs, it will break chain deadlock.
!                  The scratch register is substituted for real move.  */
  
!               gcc_assert (SCRATCH != GET_CODE (scratch));
  
!               move[size].src = move[blocked].dst;
!               move[size].dst =  scratch;
!               /* Scratch move is never blocked.  */
!               move[size].links = -1;
!               /* Make sure we have valid link.  */
!               gcc_assert (move[blocked].links != -1);
!               /* Replace src of  blocking move with scratch reg.  */
!               move[move[blocked].links].src = scratch;
!               /* Make dependent on scratch move occurring.  */
!               move[blocked].links = size;
!               size=size+1;
!             }
!         }
        while (blocked != -1);
      }
    return true;
--- 10780,10880 ----
        src = simplify_gen_subreg (move_mode, operands[1], mode, 0);
        dst = simplify_gen_subreg (move_mode, operands[0], mode, 1);
        if (!rtx_equal_p (dst, src))
! 	{
! 	  emit_move_insn (dst, gen_rtx_XOR (QImode, dst, src));
! 	  emit_move_insn (src, gen_rtx_XOR (QImode, src, dst));
! 	  emit_move_insn (dst, gen_rtx_XOR (QImode, dst, src));
! 	}
      }
    else
      {
  #define MAX_SIZE 8 /* GET_MODE_SIZE (DImode) / GET_MODE_SIZE (QImode)  */
        /* Create linked list of moves to determine move order.  */
        struct {
! 	rtx src, dst;
! 	int links;
        } move[MAX_SIZE + 8];
        int blocked, moves;
  
        gcc_assert (size <= MAX_SIZE);
        /* Generate list of subreg moves.  */
        for (int i = 0; i < size; i++)
! 	{
! 	  int from = i;
! 	  int to = (from + offset) % size;
! 	  move[i].src = simplify_gen_subreg (move_mode, operands[1],
! 					     mode, from * move_size);
! 	  move[i].dst = simplify_gen_subreg (move_mode, operands[0],
! 					     mode, to * move_size);
! 	  move[i].links = -1;
! 	}
        /* Mark dependence where a dst of one move is the src of another move.
! 	 The first move is a conflict as it must wait until second is
! 	 performed.  We ignore moves to self - we catch this later.  */
        if (overlapped)
! 	for (int i = 0; i < size; i++)
! 	  if (reg_overlap_mentioned_p (move[i].dst, operands[1]))
! 	    for (int j = 0; j < size; j++)
! 	      if (j != i && rtx_equal_p (move[j].src, move[i].dst))
! 		{
! 		  /* The dst of move i is the src of move j.  */
! 		  move[i].links = j;
! 		  break;
! 		}
  
        blocked = -1;
        moves = 0;
        /* Go through move list and perform non-conflicting moves.  As each
! 	 non-overlapping move is made, it may remove other conflicts
! 	 so the process is repeated until no conflicts remain.  */
        do
! 	{
! 	  blocked = -1;
! 	  moves = 0;
! 	  /* Emit move where dst is not also a src or we have used that
! 	     src already.  */
! 	  for (int i = 0; i < size; i++)
! 	    if (move[i].src != NULL_RTX)
! 	      {
! 		if (move[i].links == -1
! 		    || move[move[i].links].src == NULL_RTX)
! 		  {
! 		    moves++;
! 		    /* Ignore NOP moves to self.  */
! 		    if (!rtx_equal_p (move[i].dst, move[i].src))
! 		      emit_move_insn (move[i].dst, move[i].src);
  
! 		    /* Remove  conflict from list.  */
! 		    move[i].src = NULL_RTX;
! 		  }
! 		else
! 		  blocked = i;
! 	      }
  
! 	  /* Check for deadlock. This is when no moves occurred and we have
! 	     at least one blocked move.  */
! 	  if (moves == 0 && blocked != -1)
! 	    {
! 	      /* Need to use scratch register to break deadlock.
! 		 Add move to put dst of blocked move into scratch.
! 		 When this move occurs, it will break chain deadlock.
! 		 The scratch register is substituted for real move.  */
  
! 	      gcc_assert (SCRATCH != GET_CODE (scratch));
  
! 	      move[size].src = move[blocked].dst;
! 	      move[size].dst =  scratch;
! 	      /* Scratch move is never blocked.  */
! 	      move[size].links = -1;
! 	      /* Make sure we have valid link.  */
! 	      gcc_assert (move[blocked].links != -1);
! 	      /* Replace src of  blocking move with scratch reg.  */
! 	      move[move[blocked].links].src = scratch;
! 	      /* Make dependent on scratch move occurring.  */
! 	      move[blocked].links = size;
! 	      size=size+1;
! 	    }
! 	}
        while (blocked != -1);
      }
    return true;
*************** int
*** 9814,9820 ****
  avr_adjust_insn_length (rtx_insn *insn, int len)
  {
    rtx *op = recog_data.operand;
-   enum attr_adjust_len adjust_len;
  
    /* As we pretend jump tables in .text, fix branch offsets crossing jump
       tables now.  */
--- 10889,10894 ----
*************** avr_adjust_insn_length (rtx_insn *insn,
*** 9834,9845 ****
  
    /* Read from insn attribute "adjust_len" if/how length is to be adjusted.  */
  
!   adjust_len = get_attr_adjust_len (insn);
  
    if (adjust_len == ADJUST_LEN_NO)
      {
        /* Nothing to adjust: The length from attribute "length" is fine.
!          This is the default.  */
  
        return len;
      }
--- 10908,10919 ----
  
    /* Read from insn attribute "adjust_len" if/how length is to be adjusted.  */
  
!   enum attr_adjust_len adjust_len = get_attr_adjust_len (insn);
  
    if (adjust_len == ADJUST_LEN_NO)
      {
        /* Nothing to adjust: The length from attribute "length" is fine.
! 	 This is the default.  */
  
        return len;
      }
*************** avr_adjust_insn_length (rtx_insn *insn,
*** 9857,9862 ****
--- 10931,10939 ----
      case ADJUST_LEN_RELOAD_IN32: output_reload_insisf (op, op[2], &len); break;
  
      case ADJUST_LEN_OUT_BITOP: avr_out_bitop (insn, op, &len); break;
+     case ADJUST_LEN_EXTR_NOT: avr_out_extr_not (insn, op, &len); break;
+     case ADJUST_LEN_EXTR: avr_out_extr (insn, op, &len); break;
+     case ADJUST_LEN_INSV: avr_out_insv (insn, op, &len); break;
  
      case ADJUST_LEN_PLUS: avr_out_plus (insn, op, &len); break;
      case ADJUST_LEN_ADDTO_SP: avr_out_addto_sp (op, &len); break;
*************** avr_adjust_insn_length (rtx_insn *insn,
*** 9902,9916 ****
      case ADJUST_LEN_INSERT_BITS: avr_out_insert_bits (op, &len); break;
      case ADJUST_LEN_ADD_SET_ZN: avr_out_plus_set_ZN (op, &len); break;
  
!     case ADJUST_LEN_INSV_NOTBIT:
!       avr_out_insert_notbit (insn, op, NULL_RTX, &len);
!       break;
!     case ADJUST_LEN_INSV_NOTBIT_0:
!       avr_out_insert_notbit (insn, op, const0_rtx, &len);
!       break;
!     case ADJUST_LEN_INSV_NOTBIT_7:
!       avr_out_insert_notbit (insn, op, GEN_INT (7), &len);
!       break;
  
      default:
        gcc_unreachable();
--- 10979,10985 ----
      case ADJUST_LEN_INSERT_BITS: avr_out_insert_bits (op, &len); break;
      case ADJUST_LEN_ADD_SET_ZN: avr_out_plus_set_ZN (op, &len); break;
  
!     case ADJUST_LEN_INSV_NOTBIT: avr_out_insert_notbit (insn, op, &len); break;
  
      default:
        gcc_unreachable();
*************** int
*** 9925,9955 ****
  reg_unused_after (rtx_insn *insn, rtx reg)
  {
    return (dead_or_set_p (insn, reg)
! 	  || (REG_P (reg) && _reg_unused_after (insn, reg)));
  }
  
! /* Return nonzero if REG is not used after INSN.
     We assume REG is a reload reg, and therefore does
     not live past labels.  It may live past calls or jumps though.  */
  
! int
! _reg_unused_after (rtx_insn *insn, rtx reg)
  {
!   enum rtx_code code;
!   rtx set;
! 
!   /* If the reg is set by this instruction, then it is safe for our
!      case.  Disregard the case where this is a store to memory, since
!      we are checking a register used in the store address.  */
!   set = single_set (insn);
!   if (set && !MEM_P (SET_DEST (set))
!       && reg_overlap_mentioned_p (reg, SET_DEST (set)))
!     return 1;
  
    while ((insn = NEXT_INSN (insn)))
      {
        rtx set;
!       code = GET_CODE (insn);
  
  #if 0
        /* If this is a label that existed before reload, then the register
--- 10994,11025 ----
  reg_unused_after (rtx_insn *insn, rtx reg)
  {
    return (dead_or_set_p (insn, reg)
! 	  || (REG_P (reg) && _reg_unused_after (insn, reg, true)));
  }
  
! /* A helper for the previous function.
!    Return nonzero if REG is not used after INSN.
     We assume REG is a reload reg, and therefore does
     not live past labels.  It may live past calls or jumps though.  */
  
! bool
! _reg_unused_after (rtx_insn *insn, rtx reg, bool look_at_insn)
  {
!   if (look_at_insn)
!     {
!       /* If the reg is set by this instruction, then it is safe for our
! 	 case.  Disregard the case where this is a store to memory, since
! 	 we are checking a register used in the store address.  */
!       rtx set = single_set (insn);
!       if (set && !MEM_P (SET_DEST (set))
! 	  && reg_overlap_mentioned_p (reg, SET_DEST (set)))
! 	return 1;
!     }
  
    while ((insn = NEXT_INSN (insn)))
      {
        rtx set;
!       enum rtx_code code = GET_CODE (insn);
  
  #if 0
        /* If this is a label that existed before reload, then the register
*************** avr_assemble_integer (rtx x, unsigned in
*** 10073,10082 ****
        /* varasm fails to handle big fixed modes that don't fit in hwi.  */
  
        for (unsigned n = 0; n < size; n++)
!         {
!           rtx xn = simplify_gen_subreg (QImode, x, GET_MODE (x), n);
!           default_assemble_integer (xn, 1, aligned_p);
!         }
  
        return true;
      }
--- 11143,11152 ----
        /* varasm fails to handle big fixed modes that don't fit in hwi.  */
  
        for (unsigned n = 0; n < size; n++)
! 	{
! 	  rtx xn = simplify_gen_subreg (QImode, x, GET_MODE (x), n);
! 	  default_assemble_integer (xn, 1, aligned_p);
! 	}
  
        return true;
      }
*************** avr_assemble_integer (rtx x, unsigned in
*** 10090,10103 ****
    return default_assemble_integer (x, size, aligned_p);
  }
  
! /* Implement TARGET_CLASS_MAX_NREGS. Reasons described in comments for
     avr_hard_regno_nregs. */
  
  static unsigned char
  avr_class_max_nregs (reg_class_t rclass, machine_mode mode)
  {
    if (rclass == CC_REG && mode == CCmode)
! 	return 1;
  
    return CEIL (GET_MODE_SIZE (mode), UNITS_PER_WORD);
  }
--- 11160,11173 ----
    return default_assemble_integer (x, size, aligned_p);
  }
  
! /* Implement `TARGET_CLASS_MAX_NREGS'.  Reasons described in comments for
     avr_hard_regno_nregs. */
  
  static unsigned char
  avr_class_max_nregs (reg_class_t rclass, machine_mode mode)
  {
    if (rclass == CC_REG && mode == CCmode)
!     return 1;
  
    return CEIL (GET_MODE_SIZE (mode), UNITS_PER_WORD);
  }
*************** avr_class_max_nregs (reg_class_t rclass,
*** 10111,10138 ****
  static bool
  avr_class_likely_spilled_p (reg_class_t c)
  {
!   return (c != ALL_REGS &&
!            (AVR_TINY ? 1 : c != ADDW_REGS));
  }
  
  
  /* Valid attributes:
!    progmem   -  Put data to program memory.
!    signal    -  Make a function to be hardware interrupt.
!                 After function prologue interrupts remain disabled.
!    interrupt -  Make a function to be hardware interrupt. Before function
!                 prologue interrupts are enabled by means of SEI.
!    naked     -  Don't generate function prologue/epilogue and RET
!                 instruction.  */
  
  /* Handle a "progmem" attribute; arguments as in
     struct attribute_spec.handler.  */
  
  static tree
! avr_handle_progmem_attribute (tree *node, tree name,
! 			      tree args ATTRIBUTE_UNUSED,
! 			      int flags ATTRIBUTE_UNUSED,
! 			      bool *no_add_attrs)
  {
    if (DECL_P (*node))
      {
--- 11181,11206 ----
  static bool
  avr_class_likely_spilled_p (reg_class_t c)
  {
!   return (c != ALL_REGS
! 	  && (AVR_TINY ? 1 : c != ADDW_REGS));
  }
  
  
  /* Valid attributes:
!    progmem   -	Put data to program memory.
!    signal    -	Make a function to be hardware interrupt.
! 		After function prologue interrupts remain disabled.
!    interrupt -	Make a function to be hardware interrupt. Before function
! 		prologue interrupts are enabled by means of SEI.
!    naked     -	Don't generate function prologue/epilogue and RET
! 		instruction.  */
  
  /* Handle a "progmem" attribute; arguments as in
     struct attribute_spec.handler.  */
  
  static tree
! avr_handle_progmem_attribute (tree *node, tree name, tree args,
! 			      int /*flags*/, bool *no_add_attrs)
  {
    if (DECL_P (*node))
      {
*************** avr_handle_progmem_attribute (tree *node
*** 10151,10157 ****
  	}
        else if (TREE_STATIC (*node) || DECL_EXTERNAL (*node))
  	{
!           *no_add_attrs = false;
  	}
        else
  	{
--- 11219,11225 ----
  	}
        else if (TREE_STATIC (*node) || DECL_EXTERNAL (*node))
  	{
! 	  *no_add_attrs = false;
  	}
        else
  	{
*************** avr_handle_progmem_attribute (tree *node
*** 10168,10177 ****
     struct attribute_spec.handler.  */
  
  static tree
! avr_handle_fndecl_attribute (tree *node, tree name,
! 			     tree args ATTRIBUTE_UNUSED,
! 			     int flags ATTRIBUTE_UNUSED,
! 			     bool *no_add_attrs)
  {
    if (TREE_CODE (*node) != FUNCTION_DECL)
      {
--- 11236,11243 ----
     struct attribute_spec.handler.  */
  
  static tree
! avr_handle_fndecl_attribute (tree *node, tree name, tree /*args*/,
! 			     int /*flags*/, bool *no_add_attrs)
  {
    if (TREE_CODE (*node) != FUNCTION_DECL)
      {
*************** avr_handle_fndecl_attribute (tree *node,
*** 10184,10193 ****
  }
  
  static tree
! avr_handle_fntype_attribute (tree *node, tree name,
!                              tree args ATTRIBUTE_UNUSED,
!                              int flags ATTRIBUTE_UNUSED,
!                              bool *no_add_attrs)
  {
    if (TREE_CODE (*node) != FUNCTION_TYPE)
      {
--- 11250,11257 ----
  }
  
  static tree
! avr_handle_fntype_attribute (tree *node, tree name, tree /*args*/,
! 			     int /*flags*/, bool *no_add_attrs)
  {
    if (TREE_CODE (*node) != FUNCTION_TYPE)
      {
*************** avr_handle_fntype_attribute (tree *node,
*** 10201,10224 ****
  
  static tree
  avr_handle_absdata_attribute (tree *node, tree name, tree /* args */,
!                               int /* flags */, bool *no_add)
  {
    location_t loc = DECL_SOURCE_LOCATION (*node);
  
    if (AVR_TINY)
      {
        if (TREE_CODE (*node) != VAR_DECL
!           || (!TREE_STATIC (*node) && !DECL_EXTERNAL (*node)))
!         {
!           warning_at (loc, OPT_Wattributes, "%qE attribute only applies to"
!                       " variables in static storage", name);
!           *no_add = true;
!         }
      }
    else
      {
        warning_at (loc, OPT_Wattributes, "%qE attribute only supported"
!                   " for reduced Tiny cores", name);
        *no_add = true;
      }
  
--- 11265,11288 ----
  
  static tree
  avr_handle_absdata_attribute (tree *node, tree name, tree /* args */,
! 			      int /* flags */, bool *no_add)
  {
    location_t loc = DECL_SOURCE_LOCATION (*node);
  
    if (AVR_TINY)
      {
        if (TREE_CODE (*node) != VAR_DECL
! 	  || (!TREE_STATIC (*node) && !DECL_EXTERNAL (*node)))
! 	{
! 	  warning_at (loc, OPT_Wattributes, "%qE attribute only applies to"
! 		      " variables in static storage", name);
! 	  *no_add = true;
! 	}
      }
    else
      {
        warning_at (loc, OPT_Wattributes, "%qE attribute only supported"
! 		  " for reduced Tiny cores", name);
        *no_add = true;
      }
  
*************** avr_handle_absdata_attribute (tree *node
*** 10227,10235 ****
  
  static tree
  avr_handle_addr_attribute (tree *node, tree name, tree args,
! 			   int flags ATTRIBUTE_UNUSED, bool *no_add)
  {
    bool io_p = startswith (IDENTIFIER_POINTER (name), "io");
    location_t loc = DECL_SOURCE_LOCATION (*node);
  
    if (!VAR_P (*node))
--- 11291,11303 ----
  
  static tree
  avr_handle_addr_attribute (tree *node, tree name, tree args,
! 			   int /*flags*/, bool *no_add)
  {
    bool io_p = startswith (IDENTIFIER_POINTER (name), "io");
+   HOST_WIDE_INT io_start = avr_arch->sfr_offset;
+   HOST_WIDE_INT io_end = strcmp (IDENTIFIER_POINTER (name), "io_low") == 0
+     ? io_start + 0x1f
+     : io_start + 0x3f;
    location_t loc = DECL_SOURCE_LOCATION (*node);
  
    if (!VAR_P (*node))
*************** avr_handle_addr_attribute (tree *node, t
*** 10253,10264 ****
  	}
        else if (io_p
  	       && (!tree_fits_shwi_p (arg)
! 		   || !(strcmp (IDENTIFIER_POINTER (name), "io_low") == 0
! 			? low_io_address_operand : io_address_operand)
! 			 (GEN_INT (TREE_INT_CST_LOW (arg)), QImode)))
  	{
! 	  warning_at (loc, OPT_Wattributes, "%qE attribute address "
! 		      "out of range", name);
  	  *no_add = true;
  	}
        else
--- 11321,11330 ----
  	}
        else if (io_p
  	       && (!tree_fits_shwi_p (arg)
! 		   || ! IN_RANGE (TREE_INT_CST_LOW (arg), io_start, io_end)))
  	{
! 	  warning_at (loc, OPT_Wattributes, "%qE attribute address out of range"
! 		      " 0x%x%s0x%x", name, (int) io_start, "...", (int) io_end);
  	  *no_add = true;
  	}
        else
*************** avr_handle_addr_attribute (tree *node, t
*** 10284,10289 ****
--- 11350,11361 ----
      warning_at (loc, OPT_Wattributes, "%qE attribute on non-volatile variable",
  		name);
  
+   // Optimizers must not draw any conclusions from "static int addr;" etc.
+   // because the contents of `addr' are not given by its initializer but
+   // by the contents at the address as specified by the attribute.
+   if (VAR_P (*node) && ! *no_add)
+     TREE_THIS_VOLATILE (*node) = 1;
+ 
    return NULL_TREE;
  }
  
*************** avr_eval_addr_attrib (rtx x)
*** 10299,10307 ****
        if (SYMBOL_REF_FLAGS (x) & SYMBOL_FLAG_IO)
  	{
  	  attr = lookup_attribute ("io", DECL_ATTRIBUTES (decl));
!           if (!attr || !TREE_VALUE (attr))
!             attr = lookup_attribute ("io_low", DECL_ATTRIBUTES (decl));
! 	  gcc_assert (attr);
  	}
        if (!attr || !TREE_VALUE (attr))
  	attr = lookup_attribute ("address", DECL_ATTRIBUTES (decl));
--- 11371,11378 ----
        if (SYMBOL_REF_FLAGS (x) & SYMBOL_FLAG_IO)
  	{
  	  attr = lookup_attribute ("io", DECL_ATTRIBUTES (decl));
! 	  if (!attr || !TREE_VALUE (attr))
! 	    attr = lookup_attribute ("io_low", DECL_ATTRIBUTES (decl));
  	}
        if (!attr || !TREE_VALUE (attr))
  	attr = lookup_attribute ("address", DECL_ATTRIBUTES (decl));
*************** avr_eval_addr_attrib (rtx x)
*** 10313,10319 ****
  
  
  /* AVR attributes.  */
! static const struct attribute_spec avr_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
--- 11384,11390 ----
  
  
  /* AVR attributes.  */
! TARGET_GNU_ATTRIBUTES (avr_attribute_table,
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
*************** static const struct attribute_spec avr_a
*** 10338,10346 ****
    { "address",   1, 1, true, false, false,  false,
      avr_handle_addr_attribute, NULL },
    { "absdata",   0, 0, true, false, false,  false,
!     avr_handle_absdata_attribute, NULL },
!   { NULL,        0, 0, false, false, false, false, NULL, NULL }
! };
  
  
  /* Return true if we support address space AS for the architecture in effect
--- 11409,11416 ----
    { "address",   1, 1, true, false, false,  false,
      avr_handle_addr_attribute, NULL },
    { "absdata",   0, 0, true, false, false,  false,
!     avr_handle_absdata_attribute, NULL }
! });
  
  
  /* Return true if we support address space AS for the architecture in effect
*************** avr_addr_space_supported_p (addr_space_t
*** 10353,10368 ****
    if (AVR_TINY)
      {
        if (loc != UNKNOWN_LOCATION)
!         error_at (loc, "address spaces are not supported for reduced "
!                   "Tiny devices");
        return false;
      }
    else if (avr_addrspace[as].segment >= avr_n_flash)
      {
        if (loc != UNKNOWN_LOCATION)
!         error_at (loc, "address space %qs not supported for devices with "
!                   "flash size up to %d KiB", avr_addrspace[as].name,
!                   64 * avr_n_flash);
        return false;
      }
  
--- 11423,11438 ----
    if (AVR_TINY)
      {
        if (loc != UNKNOWN_LOCATION)
! 	error_at (loc, "address spaces are not supported for reduced "
! 		  "Tiny devices");
        return false;
      }
    else if (avr_addrspace[as].segment >= avr_n_flash)
      {
        if (loc != UNKNOWN_LOCATION)
! 	error_at (loc, "address space %qs not supported for devices with "
! 		  "flash size up to %d KiB", avr_addrspace[as].name,
! 		  64 * avr_n_flash);
        return false;
      }
  
*************** avr_addr_space_diagnose_usage (addr_spac
*** 10379,10384 ****
--- 11449,11466 ----
  }
  
  
+ /* Implement `TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID'.  Zero is a valid
+    address in all address spaces. Even in ADDR_SPACE_FLASH1 etc..,
+    a zero address is valid and means 0x<RAMPZ val>0000, where RAMPZ is
+    set to the appropriate segment value. */
+ 
+ static bool
+ avr_addr_space_zero_address_valid (addr_space_t)
+ {
+   return true;
+ }
+ 
+ 
  /* Look if DECL shall be placed in program memory space by
     means of attribute `progmem' or some address-space qualifier.
     Return non-zero if DECL is data that must end up in Flash and
*************** avr_addr_space_diagnose_usage (addr_spac
*** 10392,10399 ****
  int
  avr_progmem_p (tree decl, tree attributes)
  {
-   tree a;
- 
    if (TREE_CODE (decl) != VAR_DECL)
      return 0;
  
--- 11474,11479 ----
*************** avr_progmem_p (tree decl, tree attribute
*** 10407,10413 ****
        != lookup_attribute ("progmem", attributes))
      return -1;
  
!   a = decl;
  
    do
      a = TREE_TYPE(a);
--- 11487,11493 ----
        != lookup_attribute ("progmem", attributes))
      return -1;
  
!   tree a = decl;
  
    do
      a = TREE_TYPE(a);
*************** avr_progmem_p (tree decl, tree attribute
*** 10429,10436 ****
  static bool
  avr_decl_absdata_p (tree decl, tree attributes)
  {
!   return (TREE_CODE (decl) == VAR_DECL
!           && NULL_TREE != lookup_attribute ("absdata", attributes));
  }
  
  
--- 11509,11516 ----
  static bool
  avr_decl_absdata_p (tree decl, tree attributes)
  {
!   return (VAR_P (decl)
! 	  && NULL_TREE != lookup_attribute ("absdata", attributes));
  }
  
  
*************** avr_nonconst_pointer_addrspace (tree typ
*** 10447,10475 ****
  
    if (POINTER_TYPE_P (typ))
      {
-       addr_space_t as;
        tree target = TREE_TYPE (typ);
  
        /* Pointer to function: Test the function's return type.  */
  
        if (FUNCTION_TYPE == TREE_CODE (target))
!         return avr_nonconst_pointer_addrspace (TREE_TYPE (target));
  
        /* "Ordinary" pointers... */
  
        while (TREE_CODE (target) == ARRAY_TYPE)
!         target = TREE_TYPE (target);
  
        /* Pointers to non-generic address space must be const.  */
  
!       as = TYPE_ADDR_SPACE (target);
  
        if (!ADDR_SPACE_GENERIC_P (as)
!           && !TYPE_READONLY (target)
!           && avr_addr_space_supported_p (as))
!         {
!           return as;
!         }
  
        /* Scan pointer's target type.  */
  
--- 11527,11554 ----
  
    if (POINTER_TYPE_P (typ))
      {
        tree target = TREE_TYPE (typ);
  
        /* Pointer to function: Test the function's return type.  */
  
        if (FUNCTION_TYPE == TREE_CODE (target))
! 	return avr_nonconst_pointer_addrspace (TREE_TYPE (target));
  
        /* "Ordinary" pointers... */
  
        while (TREE_CODE (target) == ARRAY_TYPE)
! 	target = TREE_TYPE (target);
  
        /* Pointers to non-generic address space must be const.  */
  
!       addr_space_t as = TYPE_ADDR_SPACE (target);
  
        if (!ADDR_SPACE_GENERIC_P (as)
! 	  && !TYPE_READONLY (target)
! 	  && avr_addr_space_supported_p (as))
! 	{
! 	  return as;
! 	}
  
        /* Scan pointer's target type.  */
  
*************** avr_pgm_check_var_decl (tree node)
*** 10503,10542 ****
  
      case VAR_DECL:
        if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
!         reason = _("variable");
        break;
  
      case PARM_DECL:
        if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
!         reason = _("function parameter");
        break;
  
      case FIELD_DECL:
        if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
!         reason = _("structure field");
        break;
  
      case FUNCTION_DECL:
        if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (TREE_TYPE (node))),
!           as)
!         reason = _("return type of function");
        break;
  
      case POINTER_TYPE:
        if (as = avr_nonconst_pointer_addrspace (node), as)
!         reason = _("pointer");
        break;
      }
  
    if (reason)
      {
        if (TYPE_P (node))
!         error ("pointer targeting address space %qs must be const in %qT",
!                avr_addrspace[as].name, node);
        else
!         error ("pointer targeting address space %qs must be const"
!                " in %s %q+D",
!                avr_addrspace[as].name, reason, node);
      }
  
    return reason == NULL;
--- 11582,11621 ----
  
      case VAR_DECL:
        if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
! 	reason = _("variable");
        break;
  
      case PARM_DECL:
        if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
! 	reason = _("function parameter");
        break;
  
      case FIELD_DECL:
        if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
! 	reason = _("structure field");
        break;
  
      case FUNCTION_DECL:
        if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (TREE_TYPE (node))),
! 	  as)
! 	reason = _("return type of function");
        break;
  
      case POINTER_TYPE:
        if (as = avr_nonconst_pointer_addrspace (node), as)
! 	reason = _("pointer");
        break;
      }
  
    if (reason)
      {
        if (TYPE_P (node))
! 	error ("pointer targeting address space %qs must be const in %qT",
! 	       avr_addrspace[as].name, node);
        else
! 	error ("pointer targeting address space %qs must be const"
! 	       " in %s %q+D",
! 	       avr_addrspace[as].name, reason, node);
      }
  
    return reason == NULL;
*************** avr_pgm_check_var_decl (tree node)
*** 10548,10553 ****
--- 11627,11643 ----
  static void
  avr_insert_attributes (tree node, tree *attributes)
  {
+   if (VAR_P (node)
+       && ! TREE_STATIC (node)
+       && ! DECL_EXTERNAL (node))
+     {
+       const char *names[] = { "io", "io_low", "address", NULL };
+       for (const char **p = names; *p; ++p)
+ 	if (lookup_attribute (*p, *attributes))
+ 	  error ("variable %q+D with attribute %qs must be located in "
+ 		 "static storage", node, *p);
+     }
+ 
    avr_pgm_check_var_decl (node);
  
    if (TARGET_MAIN_IS_OS_TASK
*************** avr_insert_attributes (tree node, tree *
*** 10561,10644 ****
        && NULL == lookup_attribute ("OS_task", *attributes))
      {
        *attributes = tree_cons (get_identifier ("OS_task"),
!                                NULL, *attributes);
      }
  
    /* Add the section attribute if the variable is in progmem.  */
  
!   if (TREE_CODE (node) == VAR_DECL
        && (TREE_STATIC (node) || DECL_EXTERNAL (node))
        && avr_progmem_p (node, *attributes))
      {
-       addr_space_t as;
        tree node0 = node;
  
        /* For C++, we have to peel arrays in order to get correct
!          determination of readonlyness.  */
  
        do
!         node0 = TREE_TYPE (node0);
        while (TREE_CODE (node0) == ARRAY_TYPE);
  
        if (error_mark_node == node0)
!         return;
  
!       as = TYPE_ADDR_SPACE (TREE_TYPE (node));
  
        if (!TYPE_READONLY (node0)
!           && !TREE_READONLY (node))
!         {
!           const char *reason = "__attribute__((progmem))";
  
!           if (!ADDR_SPACE_GENERIC_P (as))
!             reason = avr_addrspace[as].name;
  
!           if (avr_log.progmem)
!             avr_edump ("\n%?: %t\n%t\n", node, node0);
  
!           error ("variable %q+D must be const in order to be put into"
!                  " read-only section by means of %qs", node, reason);
!         }
      }
  }
  
  
  /* Implement `ASM_OUTPUT_ALIGNED_DECL_LOCAL'.  */
  /* Implement `ASM_OUTPUT_ALIGNED_DECL_COMMON'.  */
  /* Track need of __do_clear_bss.  */
  
  void
! avr_asm_output_aligned_decl_common (FILE * stream,
!                                     tree decl,
!                                     const char *name,
!                                     unsigned HOST_WIDE_INT size,
!                                     unsigned int align, bool local_p)
  {
-   rtx mem = decl == NULL_TREE ? NULL_RTX : DECL_RTL (decl);
-   rtx symbol;
- 
-   if (mem != NULL_RTX && MEM_P (mem)
-       && SYMBOL_REF_P ((symbol = XEXP (mem, 0)))
-       && (SYMBOL_REF_FLAGS (symbol) & (SYMBOL_FLAG_IO | SYMBOL_FLAG_ADDRESS)))
-     {
-       if (!local_p)
- 	{
- 	  fprintf (stream, "\t.globl\t");
- 	  assemble_name (stream, name);
- 	  fprintf (stream, "\n");
- 	}
-       if (SYMBOL_REF_FLAGS (symbol) & SYMBOL_FLAG_ADDRESS)
- 	{
- 	  assemble_name (stream, name);
- 	  fprintf (stream, " = %ld\n",
- 		   (long) INTVAL (avr_eval_addr_attrib (symbol)));
- 	}
-       else if (local_p)
- 	error_at (DECL_SOURCE_LOCATION (decl),
- 		  "static IO declaration for %q+D needs an address", decl);
-       return;
-     }
- 
    /* __gnu_lto_slim is just a marker for the linker injected by toplev.cc.
       There is no need to trigger __do_clear_bss code for them.  */
  
--- 11651,11750 ----
        && NULL == lookup_attribute ("OS_task", *attributes))
      {
        *attributes = tree_cons (get_identifier ("OS_task"),
! 			       NULL, *attributes);
      }
  
    /* Add the section attribute if the variable is in progmem.  */
  
!   if (VAR_P (node)
        && (TREE_STATIC (node) || DECL_EXTERNAL (node))
        && avr_progmem_p (node, *attributes))
      {
        tree node0 = node;
  
        /* For C++, we have to peel arrays in order to get correct
! 	 determination of readonlyness.  */
  
        do
! 	node0 = TREE_TYPE (node0);
        while (TREE_CODE (node0) == ARRAY_TYPE);
  
        if (error_mark_node == node0)
! 	return;
  
!       addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (node));
  
        if (!TYPE_READONLY (node0)
! 	  && !TREE_READONLY (node))
! 	{
! 	  const char *reason = "__attribute__((progmem))";
  
! 	  if (!ADDR_SPACE_GENERIC_P (as))
! 	    reason = avr_addrspace[as].name;
  
! 	  if (avr_log.progmem)
! 	    avr_edump ("\n%?: %t\n%t\n", node, node0);
  
! 	  error ("variable %q+D must be const in order to be put into"
! 		 " read-only section by means of %qs", node, reason);
! 	}
      }
  }
  
+ #ifdef HAVE_LD_AVR_AVRXMEGA2_FLMAP
+ static const bool have_avrxmega2_flmap = true;
+ #else
+ static const bool have_avrxmega2_flmap = false;
+ #endif
+ 
+ #ifdef HAVE_LD_AVR_AVRXMEGA4_FLMAP
+ static const bool have_avrxmega4_flmap = true;
+ #else
+ static const bool have_avrxmega4_flmap = false;
+ #endif
+ 
+ #ifdef HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH
+ static const bool have_avrxmega3_rodata_in_flash = true;
+ #else
+ static const bool have_avrxmega3_rodata_in_flash = false;
+ #endif
+ 
+ 
+ static bool
+ avr_rodata_in_flash_p ()
+ {
+   switch (avr_arch_index)
+     {
+     default:
+       break;
+ 
+     case ARCH_AVRTINY:
+       return true;
+ 
+     case ARCH_AVRXMEGA3:
+       return have_avrxmega3_rodata_in_flash;
+ 
+     case ARCH_AVRXMEGA2:
+       return avr_flmap && have_avrxmega2_flmap && avr_rodata_in_ram != 1;
+ 
+     case ARCH_AVRXMEGA4:
+       return avr_flmap && have_avrxmega4_flmap && avr_rodata_in_ram != 1;
+     }
+ 
+   return false;
+ }
+ 
  
  /* Implement `ASM_OUTPUT_ALIGNED_DECL_LOCAL'.  */
  /* Implement `ASM_OUTPUT_ALIGNED_DECL_COMMON'.  */
  /* Track need of __do_clear_bss.  */
  
  void
! avr_asm_output_aligned_decl_common (FILE *stream, tree /* decl */,
! 				    const char *name,
! 				    unsigned HOST_WIDE_INT size,
! 				    unsigned int align, bool local_p)
  {
    /* __gnu_lto_slim is just a marker for the linker injected by toplev.cc.
       There is no need to trigger __do_clear_bss code for them.  */
  
*************** avr_asm_output_aligned_decl_common (FILE
*** 10651,10656 ****
--- 11757,11765 ----
      ASM_OUTPUT_ALIGNED_COMMON (stream, name, size, align);
  }
  
+ 
+ /* Implement `ASM_OUTPUT_ALIGNED_BSS'.  */
+ 
  void
  avr_asm_asm_output_aligned_bss (FILE *file, tree decl, const char *name,
  				unsigned HOST_WIDE_INT size, int align,
*************** avr_asm_asm_output_aligned_bss (FILE *fi
*** 10658,10677 ****
  				  (FILE *, tree, const char *,
  				   unsigned HOST_WIDE_INT, int))
  {
!   rtx mem = decl == NULL_TREE ? NULL_RTX : DECL_RTL (decl);
!   rtx symbol;
  
!   if (mem != NULL_RTX && MEM_P (mem)
!       && SYMBOL_REF_P ((symbol = XEXP (mem, 0)))
!       && (SYMBOL_REF_FLAGS (symbol) & (SYMBOL_FLAG_IO | SYMBOL_FLAG_ADDRESS)))
!     {
!       if (!(SYMBOL_REF_FLAGS (symbol) & SYMBOL_FLAG_ADDRESS))
! 	error_at (DECL_SOURCE_LOCATION (decl),
! 		  "IO definition for %q+D needs an address", decl);
!       avr_asm_output_aligned_decl_common (file, decl, name, size, align, false);
!     }
!   else
!     default_func (file, decl, name, size, align);
  }
  
  
--- 11767,11776 ----
  				  (FILE *, tree, const char *,
  				   unsigned HOST_WIDE_INT, int))
  {
!   if (!startswith (name, "__gnu_lto"))
!     avr_need_clear_bss_p = true;
  
!   default_func (file, decl, name, size, align);
  }
  
  
*************** avr_output_progmem_section_asm_op (const
*** 10710,10730 ****
  }
  
  
  /* Implement `TARGET_ASM_INIT_SECTIONS'.  */
  
  static void
  avr_asm_init_sections (void)
  {
!   /* Override section callbacks to keep track of `avr_need_clear_bss_p'
!      resp. `avr_need_copy_data_p'.  If flash is not mapped to RAM then
!      we have also to track .rodata because it is located in RAM then.  */
  
! #if defined HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH
!   if (avr_arch->flash_pm_offset == 0)
! #endif
      readonly_data_section->unnamed.callback = avr_output_data_section_asm_op;
    data_section->unnamed.callback = avr_output_data_section_asm_op;
    bss_section->unnamed.callback = avr_output_bss_section_asm_op;
  }
  
  
--- 11809,11880 ----
  }
  
  
+ /* A noswitch section callback to output symbol definitions for
+    attributes "io", "io_low" and "address".  */
+ 
+ static bool
+ avr_output_addr_attrib (tree decl, const char *name,
+ 			unsigned HOST_WIDE_INT /* size */,
+ 			unsigned HOST_WIDE_INT /* align */)
+ {
+   gcc_assert (DECL_RTL_SET_P (decl));
+ 
+   FILE *stream = asm_out_file;
+   bool local_p = ! DECL_WEAK (decl) && ! TREE_PUBLIC (decl);
+   rtx symbol, mem = DECL_RTL (decl);
+ 
+   if (mem != NULL_RTX && MEM_P (mem)
+       && SYMBOL_REF_P ((symbol = XEXP (mem, 0)))
+       && (SYMBOL_REF_FLAGS (symbol) & (SYMBOL_FLAG_IO | SYMBOL_FLAG_ADDRESS)))
+     {
+       if (! local_p)
+ 	{
+ 	  fprintf (stream, "\t%s\t", DECL_WEAK (decl) ? ".weak" : ".globl");
+ 	  assemble_name (stream, name);
+ 	  fprintf (stream, "\n");
+ 	}
+ 
+       if (SYMBOL_REF_FLAGS (symbol) & SYMBOL_FLAG_ADDRESS)
+ 	{
+ 	  assemble_name (stream, name);
+ 	  fprintf (stream, " = %ld\n",
+ 		   (long) INTVAL (avr_eval_addr_attrib (symbol)));
+ 	}
+       else if (local_p)
+ 	{
+ 	  const char *names[] = { "io", "io_low", "address", NULL };
+ 	  for (const char **p = names; *p; ++p)
+ 	    if (lookup_attribute (*p, DECL_ATTRIBUTES (decl)))
+ 	      {
+ 		error ("static attribute %qs declaration for %q+D needs an "
+ 		       "address", *p, decl);
+ 		break;
+ 	      }
+ 	}
+ 
+       return true;
+     }
+ 
+   gcc_unreachable();
+ 
+   return false;
+ }
+ 
+ 
  /* Implement `TARGET_ASM_INIT_SECTIONS'.  */
  
  static void
  avr_asm_init_sections (void)
  {
!   /* Override section callbacks to keep track of `avr_need_clear_bss_p',
!      `avr_need_copy_data_p' and `avr_has_rodata_p'.
!      Track also .rodata for the case when .rodata is located in RAM.  */
  
!   if (! avr_rodata_in_flash_p ())
      readonly_data_section->unnamed.callback = avr_output_data_section_asm_op;
    data_section->unnamed.callback = avr_output_data_section_asm_op;
    bss_section->unnamed.callback = avr_output_bss_section_asm_op;
+   tls_comm_section->noswitch.callback = avr_output_addr_attrib;
  }
  
  
*************** avr_asm_init_sections (void)
*** 10734,10752 ****
  static void
  avr_asm_named_section (const char *name, unsigned int flags, tree decl)
  {
!   if (flags & AVR_SECTION_PROGMEM)
      {
        addr_space_t as = (flags & AVR_SECTION_PROGMEM) / SECTION_MACH_DEP;
        const char *old_prefix = ".rodata";
        const char *new_prefix = avr_addrspace[as].section_name;
  
        if (startswith (name, old_prefix))
!         {
!           const char *sname = ACONCAT ((new_prefix,
!                                         name + strlen (old_prefix), NULL));
!           default_elf_asm_named_section (sname, flags, decl);
!           return;
!         }
  
        default_elf_asm_named_section (new_prefix, flags, decl);
        return;
--- 11884,11907 ----
  static void
  avr_asm_named_section (const char *name, unsigned int flags, tree decl)
  {
!   if (flags & AVR_SECTION_PROGMEM
!       // Only use section .progmem*.data if there is no attribute section.
!       && ! (decl
! 	    && DECL_SECTION_NAME (decl)
! 	    && symtab_node::get (decl)
! 	    && ! symtab_node::get (decl)->implicit_section))
      {
        addr_space_t as = (flags & AVR_SECTION_PROGMEM) / SECTION_MACH_DEP;
        const char *old_prefix = ".rodata";
        const char *new_prefix = avr_addrspace[as].section_name;
  
        if (startswith (name, old_prefix))
! 	{
! 	  const char *sname = ACONCAT ((new_prefix,
! 					name + strlen (old_prefix), NULL));
! 	  default_elf_asm_named_section (sname, flags, decl);
! 	  return;
! 	}
  
        default_elf_asm_named_section (new_prefix, flags, decl);
        return;
*************** avr_asm_named_section (const char *name,
*** 10756,10768 ****
      avr_need_copy_data_p = (startswith (name, ".data")
  			    || startswith (name, ".gnu.linkonce.d"));
  
!   if (!avr_need_copy_data_p
! #if defined HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH
!       && avr_arch->flash_pm_offset == 0
! #endif
!       )
!     avr_need_copy_data_p = (startswith (name, ".rodata")
! 			    || startswith (name, ".gnu.linkonce.r"));
  
    if (!avr_need_clear_bss_p)
      avr_need_clear_bss_p = startswith (name, ".bss");
--- 11911,11919 ----
      avr_need_copy_data_p = (startswith (name, ".data")
  			    || startswith (name, ".gnu.linkonce.d"));
  
!   if (!avr_has_rodata_p)
!     avr_has_rodata_p = (startswith (name, ".rodata")
! 			|| startswith (name, ".gnu.linkonce.r"));
  
    if (!avr_need_clear_bss_p)
      avr_need_clear_bss_p = startswith (name, ".bss");
*************** avr_section_type_flags (tree decl, const
*** 10780,10786 ****
  
    if (startswith (name, ".noinit"))
      {
!       if (decl && TREE_CODE (decl) == VAR_DECL
  	  && DECL_INITIAL (decl) == NULL_TREE)
  	flags |= SECTION_BSS;  /* @nobits */
        else
--- 11931,11937 ----
  
    if (startswith (name, ".noinit"))
      {
!       if (decl && VAR_P (decl)
  	  && DECL_INITIAL (decl) == NULL_TREE)
  	flags |= SECTION_BSS;  /* @nobits */
        else
*************** avr_section_type_flags (tree decl, const
*** 10794,10808 ****
        addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (decl));
  
        /* Attribute progmem puts data in generic address space.
!          Set section flags as if it was in __flash to get the right
!          section prefix in the remainder.  */
  
        if (ADDR_SPACE_GENERIC_P (as))
!         as = ADDR_SPACE_FLASH;
  
        flags |= as * SECTION_MACH_DEP;
        flags &= ~SECTION_WRITE;
        flags &= ~SECTION_BSS;
      }
  
    return flags;
--- 11945,11960 ----
        addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (decl));
  
        /* Attribute progmem puts data in generic address space.
! 	 Set section flags as if it was in __flash to get the right
! 	 section prefix in the remainder.  */
  
        if (ADDR_SPACE_GENERIC_P (as))
! 	as = ADDR_SPACE_FLASH;
  
        flags |= as * SECTION_MACH_DEP;
        flags &= ~SECTION_WRITE;
        flags &= ~SECTION_BSS;
+       flags &= ~SECTION_NOTYPE;
      }
  
    return flags;
*************** avr_decl_maybe_lds_p (tree node)
*** 10837,10843 ****
    while (ARRAY_TYPE == TREE_CODE (node));
  
    return (node != error_mark_node
!           && !TYPE_READONLY (node));
  }
  
  
--- 11989,11995 ----
    while (ARRAY_TYPE == TREE_CODE (node));
  
    return (node != error_mark_node
! 	  && !TYPE_READONLY (node));
  }
  
  
*************** avr_encode_section_info (tree decl, rtx
*** 10858,10879 ****
        && avr_progmem_p (decl, DECL_ATTRIBUTES (decl)))
      {
        if (!TREE_READONLY (decl))
!         {
!           // This might happen with C++ if stuff needs constructing.
!           error ("variable %q+D with dynamic initialization put "
!                  "into program memory area", decl);
!         }
        else if (NULL_TREE == DECL_INITIAL (decl))
!         {
!           // Don't warn for (implicit) aliases like in PR80462.
!           tree asmname = DECL_ASSEMBLER_NAME (decl);
!           varpool_node *node = varpool_node::get_for_asmname (asmname);
!           bool alias_p = node && node->alias;
  
!           if (!alias_p)
!             warning (OPT_Wuninitialized, "uninitialized variable %q+D put "
!                      "into program memory area", decl);
!         }
      }
  
    default_encode_section_info (decl, rtl, new_decl_p);
--- 12010,12031 ----
        && avr_progmem_p (decl, DECL_ATTRIBUTES (decl)))
      {
        if (!TREE_READONLY (decl))
! 	{
! 	  // This might happen with C++ if stuff needs constructing.
! 	  error ("variable %q+D with dynamic initialization put "
! 		 "into program memory area", decl);
! 	}
        else if (NULL_TREE == DECL_INITIAL (decl))
! 	{
! 	  // Don't warn for (implicit) aliases like in PR80462.
! 	  tree asmname = DECL_ASSEMBLER_NAME (decl);
! 	  varpool_node *node = varpool_node::get_for_asmname (asmname);
! 	  bool alias_p = node && node->alias;
  
! 	  if (!alias_p)
! 	    warning (OPT_Wuninitialized, "uninitialized variable %q+D put "
! 		     "into program memory area", decl);
! 	}
      }
  
    default_encode_section_info (decl, rtl, new_decl_p);
*************** avr_encode_section_info (tree decl, rtx
*** 10892,10920 ****
        addr_space_t as = TYPE_ADDR_SPACE (type);
  
        /* PSTR strings are in generic space but located in flash:
!          patch address space.  */
  
        if (!AVR_TINY && avr_progmem_p (decl, attr) == -1)
!         as = ADDR_SPACE_FLASH;
  
        AVR_SYMBOL_SET_ADDR_SPACE (sym, as);
  
        tree io_low_attr = lookup_attribute ("io_low", attr);
        tree io_attr = lookup_attribute ("io", attr);
  
        if (io_low_attr
  	  && TREE_VALUE (io_low_attr) && TREE_VALUE (TREE_VALUE (io_low_attr)))
! 	addr_attr = io_attr;
        else if (io_attr
  	       && TREE_VALUE (io_attr) && TREE_VALUE (TREE_VALUE (io_attr)))
  	addr_attr = io_attr;
        else
! 	addr_attr = lookup_attribute ("address", attr);
        if (io_low_attr
  	  || (io_attr && addr_attr
!               && low_io_address_operand
!                   (GEN_INT (TREE_INT_CST_LOW
!                             (TREE_VALUE (TREE_VALUE (addr_attr)))), QImode)))
  	SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_IO_LOW;
        if (io_attr || io_low_attr)
  	SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_IO;
--- 12044,12074 ----
        addr_space_t as = TYPE_ADDR_SPACE (type);
  
        /* PSTR strings are in generic space but located in flash:
! 	 patch address space.  */
  
        if (!AVR_TINY && avr_progmem_p (decl, attr) == -1)
! 	as = ADDR_SPACE_FLASH;
  
        AVR_SYMBOL_SET_ADDR_SPACE (sym, as);
  
        tree io_low_attr = lookup_attribute ("io_low", attr);
        tree io_attr = lookup_attribute ("io", attr);
+       tree address_attr = lookup_attribute ("address", attr);
  
        if (io_low_attr
  	  && TREE_VALUE (io_low_attr) && TREE_VALUE (TREE_VALUE (io_low_attr)))
! 	addr_attr = io_low_attr;
        else if (io_attr
  	       && TREE_VALUE (io_attr) && TREE_VALUE (TREE_VALUE (io_attr)))
  	addr_attr = io_attr;
        else
! 	addr_attr = address_attr;
! 
        if (io_low_attr
  	  || (io_attr && addr_attr
! 	      && low_io_address_operand
! 		  (GEN_INT (TREE_INT_CST_LOW
! 			    (TREE_VALUE (TREE_VALUE (addr_attr)))), QImode)))
  	SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_IO_LOW;
        if (io_attr || io_low_attr)
  	SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_IO;
*************** avr_encode_section_info (tree decl, rtx
*** 10924,10934 ****
  	 don't use the exact value for constant propagation.  */
        if (addr_attr && !DECL_EXTERNAL (decl))
  	SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_ADDRESS;
      }
  
    if (AVR_TINY
        && decl
!       && VAR_DECL == TREE_CODE (decl)
        && MEM_P (rtl)
        && SYMBOL_REF_P (XEXP (rtl, 0)))
      {
--- 12078,12118 ----
  	 don't use the exact value for constant propagation.  */
        if (addr_attr && !DECL_EXTERNAL (decl))
  	SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_ADDRESS;
+ 
+       if (io_attr || io_low_attr || address_attr)
+ 	{
+ 	  if (DECL_INITIAL (decl))
+ 	    {
+ 	      /* Initializers are not yet parsed in TARGET_INSERT_ATTRIBUTES,
+ 		 hence deny initializers now.  The values of symbols with an
+ 		 address attribute are determined by the attribute, not by
+ 		 some initializer.  */
+ 
+ 	      error ("variable %q+D with attribute %qs must not have an "
+ 		     "initializer", decl,
+ 		     io_low_attr ? "io_low" : io_attr ? "io" : "address");
+ 	    }
+ 	  else
+ 	    {
+ 	      /* PR112952: The only way to output a variable declaration in a
+ 		 custom manner is by means of a noswitch section callback.
+ 		 There are only three noswitch sections: comm_section,
+ 		 lcomm_section and tls_comm_section.  And there is no way to
+ 		 wire a custom noswitch section to a decl.  As lcomm_section
+ 		 is bypassed with -fdata-sections -fno-common, there is no
+ 		 other way than making use of tls_comm_section.  As we are
+ 		 using that section anyway, also use it in the public case.  */
+ 
+ 	      DECL_COMMON (decl) = 1;
+ 	      set_decl_section_name (decl, (const char *) nullptr);
+ 	      set_decl_tls_model (decl, (tls_model) 2);
+ 	    }
+ 	}
      }
  
    if (AVR_TINY
        && decl
!       && VAR_P (decl)
        && MEM_P (rtl)
        && SYMBOL_REF_P (XEXP (rtl, 0)))
      {
*************** avr_encode_section_info (tree decl, rtx
*** 10936,10965 ****
        bool progmem_p = avr_progmem_p (decl, DECL_ATTRIBUTES (decl)) == -1;
  
        if (progmem_p)
!         {
!           // Tag symbols for addition of 0x4000 (avr_arch->flash_pm_offset).
!           SYMBOL_REF_FLAGS (sym) |= AVR_SYMBOL_FLAG_TINY_PM;
!         }
  
        if (avr_decl_absdata_p (decl, DECL_ATTRIBUTES (decl))
!           || (TARGET_ABSDATA
!               && !progmem_p
!               && !addr_attr
!               && avr_decl_maybe_lds_p (decl))
!           || (addr_attr
!               // If addr_attr is non-null, it has an argument.  Peek into it.
!               && TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE (addr_attr))) < 0xc0))
!         {
!           // May be accessed by LDS / STS.
!           SYMBOL_REF_FLAGS (sym) |= AVR_SYMBOL_FLAG_TINY_ABSDATA;
!         }
  
        if (progmem_p
!           && avr_decl_absdata_p (decl, DECL_ATTRIBUTES (decl)))
!         {
!           error ("%q+D has incompatible attributes %qs and %qs",
!                  decl, "progmem", "absdata");
!         }
      }
  }
  
--- 12120,12149 ----
        bool progmem_p = avr_progmem_p (decl, DECL_ATTRIBUTES (decl)) == -1;
  
        if (progmem_p)
! 	{
! 	  // Tag symbols for addition of 0x4000 (avr_arch->flash_pm_offset).
! 	  SYMBOL_REF_FLAGS (sym) |= AVR_SYMBOL_FLAG_TINY_PM;
! 	}
  
        if (avr_decl_absdata_p (decl, DECL_ATTRIBUTES (decl))
! 	  || (TARGET_ABSDATA
! 	      && !progmem_p
! 	      && !addr_attr
! 	      && avr_decl_maybe_lds_p (decl))
! 	  || (addr_attr
! 	      // If addr_attr is non-null, it has an argument.  Peek into it.
! 	      && TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE (addr_attr))) < 0xc0))
! 	{
! 	  // May be accessed by LDS / STS.
! 	  SYMBOL_REF_FLAGS (sym) |= AVR_SYMBOL_FLAG_TINY_ABSDATA;
! 	}
  
        if (progmem_p
! 	  && avr_decl_absdata_p (decl, DECL_ATTRIBUTES (decl)))
! 	{
! 	  error ("%q+D has incompatible attributes %qs and %qs",
! 		 decl, "progmem", "absdata");
! 	}
      }
  }
  
*************** avr_encode_section_info (tree decl, rtx
*** 10969,10975 ****
  static section *
  avr_asm_select_section (tree decl, int reloc, unsigned HOST_WIDE_INT align)
  {
!   section * sect = default_elf_select_section (decl, reloc, align);
  
    if (decl && DECL_P (decl)
        && avr_progmem_p (decl, DECL_ATTRIBUTES (decl)))
--- 12153,12159 ----
  static section *
  avr_asm_select_section (tree decl, int reloc, unsigned HOST_WIDE_INT align)
  {
!   section *sect = default_elf_select_section (decl, reloc, align);
  
    if (decl && DECL_P (decl)
        && avr_progmem_p (decl, DECL_ATTRIBUTES (decl)))
*************** avr_asm_select_section (tree decl, int r
*** 10977,11009 ****
        addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (decl));
  
        /* __progmem__ goes in generic space but shall be allocated to
!          .progmem.data  */
  
        if (ADDR_SPACE_GENERIC_P (as))
!         as = ADDR_SPACE_FLASH;
  
        if (sect->common.flags & SECTION_NAMED)
!         {
!           const char * name = sect->named.name;
!           const char * old_prefix = ".rodata";
!           const char * new_prefix = avr_addrspace[as].section_name;
  
  	  if (startswith (name, old_prefix))
!             {
!               const char *sname = ACONCAT ((new_prefix,
!                                             name + strlen (old_prefix), NULL));
!               return get_section (sname,
!                                   sect->common.flags & ~SECTION_DECLARED,
!                                   sect->named.decl);
!             }
!         }
  
        if (!progmem_section[as])
!         {
!           progmem_section[as]
!             = get_unnamed_section (0, avr_output_progmem_section_asm_op,
!                                    avr_addrspace[as].section_name);
!         }
  
        return progmem_section[as];
      }
--- 12161,12193 ----
        addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (decl));
  
        /* __progmem__ goes in generic space but shall be allocated to
! 	 .progmem.data  */
  
        if (ADDR_SPACE_GENERIC_P (as))
! 	as = ADDR_SPACE_FLASH;
  
        if (sect->common.flags & SECTION_NAMED)
! 	{
! 	  const char *name = sect->named.name;
! 	  const char *old_prefix = ".rodata";
! 	  const char *new_prefix = avr_addrspace[as].section_name;
  
  	  if (startswith (name, old_prefix))
! 	    {
! 	      const char *sname = ACONCAT ((new_prefix,
! 					    name + strlen (old_prefix), NULL));
! 	      return get_section (sname,
! 				  sect->common.flags & ~SECTION_DECLARED,
! 				  sect->named.decl);
! 	    }
! 	}
  
        if (!progmem_section[as])
! 	{
! 	  progmem_section[as]
! 	    = get_unnamed_section (0, avr_output_progmem_section_asm_op,
! 				   avr_addrspace[as].section_name);
! 	}
  
        return progmem_section[as];
      }
*************** avr_file_end (void)
*** 11059,11065 ****
       linking in the initialization code from libgcc if resp.
       sections are empty, see PR18145.  */
  
!   if (avr_need_copy_data_p)
      fputs (".global __do_copy_data\n", asm_out_file);
  
    if (avr_need_clear_bss_p)
--- 12243,12250 ----
       linking in the initialization code from libgcc if resp.
       sections are empty, see PR18145.  */
  
!   if (avr_need_copy_data_p
!       || (avr_has_rodata_p && ! avr_rodata_in_flash_p ()))
      fputs (".global __do_copy_data\n", asm_out_file);
  
    if (avr_need_clear_bss_p)
*************** avr_adjust_reg_alloc_order (void)
*** 11135,11142 ****
       so different allocation order should be used.  */
  
    const int *order = (TARGET_ORDER_1 ? (AVR_TINY ? tiny_order_1 : order_1)
!                       : TARGET_ORDER_2 ? (AVR_TINY ? tiny_order_0 : order_2)
!                       : (AVR_TINY ? tiny_order_0 : order_0));
  
    for (size_t i = 0; i < ARRAY_SIZE (order_0); ++i)
      reg_alloc_order[i] = order[i];
--- 12320,12327 ----
       so different allocation order should be used.  */
  
    const int *order = (TARGET_ORDER_1 ? (AVR_TINY ? tiny_order_1 : order_1)
! 		      : TARGET_ORDER_2 ? (AVR_TINY ? tiny_order_0 : order_2)
! 		      : (AVR_TINY ? tiny_order_0 : order_0));
  
    for (size_t i = 0; i < ARRAY_SIZE (order_0); ++i)
      reg_alloc_order[i] = order[i];
*************** avr_adjust_reg_alloc_order (void)
*** 11146,11172 ****
  /* Implement `TARGET_REGISTER_MOVE_COST' */
  
  static int
! avr_register_move_cost (machine_mode mode ATTRIBUTE_UNUSED,
!                         reg_class_t from, reg_class_t to)
  {
    return (from == STACK_REG ? 6
!           : to == STACK_REG ? 12
!           : 2);
  }
  
  
  /* Implement `TARGET_MEMORY_MOVE_COST' */
  
  static int
! avr_memory_move_cost (machine_mode mode,
!                       reg_class_t rclass ATTRIBUTE_UNUSED,
!                       bool in ATTRIBUTE_UNUSED)
  {
    return (mode == QImode ? 2
!           : mode == HImode ? 4
!           : mode == SImode ? 8
!           : mode == SFmode ? 8
!           : 16);
  }
  
  
--- 12331,12354 ----
  /* Implement `TARGET_REGISTER_MOVE_COST' */
  
  static int
! avr_register_move_cost (machine_mode /*mode*/, reg_class_t from, reg_class_t to)
  {
    return (from == STACK_REG ? 6
! 	  : to == STACK_REG ? 12
! 	  : 2);
  }
  
  
  /* Implement `TARGET_MEMORY_MOVE_COST' */
  
  static int
! avr_memory_move_cost (machine_mode mode, reg_class_t /*rclass*/, bool /*in*/)
  {
    return (mode == QImode ? 2
! 	  : mode == HImode ? 4
! 	  : mode == SImode ? 8
! 	  : mode == SFmode ? 8
! 	  : 16);
  }
  
  
*************** avr_mul_highpart_cost (rtx x, int)
*** 11183,11196 ****
      {
        // This is the wider mode.
        machine_mode mode = GET_MODE (x);
!   
        // The middle-end might still have PR81444, i.e. it is calling the cost
        // functions with strange modes.  Fix this now by also considering
        // PSImode (should actually be SImode instead).
        if (HImode == mode || PSImode == mode || SImode == mode)
!         {
!           return COSTS_N_INSNS (2);
!         }
      }
  
    return 10000;
--- 12365,12378 ----
      {
        // This is the wider mode.
        machine_mode mode = GET_MODE (x);
! 
        // The middle-end might still have PR81444, i.e. it is calling the cost
        // functions with strange modes.  Fix this now by also considering
        // PSImode (should actually be SImode instead).
        if (HImode == mode || PSImode == mode || SImode == mode)
! 	{
! 	  return COSTS_N_INSNS (2);
! 	}
      }
  
    return 10000;
*************** avr_cbranch_cost (rtx x)
*** 11237,11242 ****
--- 12419,12432 ----
        return COSTS_N_INSNS (size + 1 + 1);
      }
  
+   if (GET_CODE (xreg) == ZERO_EXTRACT
+       && XEXP (xreg, 1) == const1_rtx)
+     {
+       // Branch on a single bit, with an additional edge due to less
+       // register pressure.
+       return (int) COSTS_N_INSNS (1.5);
+     }
+ 
    bool reg_p = register_operand (xreg, mode);
    bool reg_or_0_p = reg_or_0_operand (xval, mode);
  
*************** avr_operand_rtx_cost (rtx x, machine_mod
*** 11259,11265 ****
  		      int opno, bool speed)
  {
    enum rtx_code code = GET_CODE (x);
-   int total;
  
    switch (code)
      {
--- 12449,12454 ----
*************** avr_operand_rtx_cost (rtx x, machine_mod
*** 11276,11282 ****
        break;
      }
  
!   total = 0;
    avr_rtx_costs (x, mode, outer, opno, &total, speed);
    return total;
  }
--- 12465,12471 ----
        break;
      }
  
!   int total = 0;
    avr_rtx_costs (x, mode, outer, opno, &total, speed);
    return total;
  }
*************** avr_operand_rtx_cost (rtx x, machine_mod
*** 11289,11295 ****
  
  static bool
  avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
!                  int opno ATTRIBUTE_UNUSED, int *total, bool speed)
  {
    enum rtx_code code = GET_CODE (x);
    HOST_WIDE_INT val;
--- 12478,12484 ----
  
  static bool
  avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
! 		 int /*opno*/, int *total, bool speed)
  {
    enum rtx_code code = GET_CODE (x);
    HOST_WIDE_INT val;
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11318,11328 ****
  	  *total = COSTS_N_INSNS (1);
  	  break;
  
!         case E_HImode:
!         case E_PSImode:
!         case E_SImode:
!           *total = COSTS_N_INSNS (2 * GET_MODE_SIZE (mode) - 1);
!           break;
  
  	default:
  	  return false;
--- 12507,12517 ----
  	  *total = COSTS_N_INSNS (1);
  	  break;
  
! 	case E_HImode:
! 	case E_PSImode:
! 	case E_SImode:
! 	  *total = COSTS_N_INSNS (2 * GET_MODE_SIZE (mode) - 1);
! 	  break;
  
  	default:
  	  return false;
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11364,11403 ****
        return true;
  
      case PLUS:
        switch (mode)
  	{
  	case E_QImode:
!           if (AVR_HAVE_MUL
!               && MULT == GET_CODE (XEXP (x, 0))
!               && register_operand (XEXP (x, 1), QImode))
!             {
!               /* multiply-add */
!               *total = COSTS_N_INSNS (speed ? 4 : 3);
!               /* multiply-add with constant: will be split and load constant. */
!               if (CONST_INT_P (XEXP (XEXP (x, 0), 1)))
!                 *total = COSTS_N_INSNS (1) + *total;
!               return true;
!             }
  	  *total = COSTS_N_INSNS (1);
  	  if (!CONST_INT_P (XEXP (x, 1)))
  	    *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1, speed);
  	  break;
  
  	case E_HImode:
!           if (AVR_HAVE_MUL
!               && (MULT == GET_CODE (XEXP (x, 0))
!                   || ASHIFT == GET_CODE (XEXP (x, 0)))
!               && register_operand (XEXP (x, 1), HImode)
!               && (ZERO_EXTEND == GET_CODE (XEXP (XEXP (x, 0), 0))
!                   || SIGN_EXTEND == GET_CODE (XEXP (XEXP (x, 0), 0))))
!             {
!               /* multiply-add */
!               *total = COSTS_N_INSNS (speed ? 5 : 4);
!               /* multiply-add with constant: will be split and load constant. */
!               if (CONST_INT_P (XEXP (XEXP (x, 0), 1)))
!                 *total = COSTS_N_INSNS (1) + *total;
!               return true;
!             }
  	  if (!CONST_INT_P (XEXP (x, 1)))
  	    {
  	      *total = COSTS_N_INSNS (2);
--- 12553,12625 ----
        return true;
  
      case PLUS:
+       // uint16_t += 2 * uint8_t;
+       if (mode == HImode
+ 	  && GET_CODE (XEXP (x, 0)) == ASHIFT
+ 	  && REG_P (XEXP (x, 1))
+ 	  && XEXP (XEXP (x, 0), 1) == const1_rtx
+ 	  && GET_CODE (XEXP (XEXP (x, 0), 0)) == ZERO_EXTEND)
+ 	{
+ 	  *total = COSTS_N_INSNS (4);
+ 	  return true;
+ 	}
+ 
+       // *usum_widenqihi
+       if (mode == HImode
+ 	  && GET_CODE (XEXP (x, 0)) == ZERO_EXTEND
+ 	  && GET_CODE (XEXP (x, 1)) == ZERO_EXTEND)
+ 	{
+ 	  *total = COSTS_N_INSNS (3);
+ 	  return true;
+ 	}
+ 
+       if (GET_CODE (XEXP (x, 0)) == ZERO_EXTEND
+ 	  && REG_P (XEXP (x, 1)))
+ 	{
+ 	  *total = COSTS_N_INSNS (GET_MODE_SIZE (mode));
+ 	  return true;
+ 	}
+       if (REG_P (XEXP (x, 0))
+ 	  && GET_CODE (XEXP (x, 1)) == ZERO_EXTEND)
+ 	{
+ 	  *total = COSTS_N_INSNS (GET_MODE_SIZE (mode));
+ 	  return true;
+ 	}
+ 
        switch (mode)
  	{
  	case E_QImode:
! 	  if (AVR_HAVE_MUL
! 	      && MULT == GET_CODE (XEXP (x, 0))
! 	      && register_operand (XEXP (x, 1), QImode))
! 	    {
! 	      /* multiply-add */
! 	      *total = COSTS_N_INSNS (speed ? 4 : 3);
! 	      /* multiply-add with constant: will be split and load constant. */
! 	      if (CONST_INT_P (XEXP (XEXP (x, 0), 1)))
! 		*total = COSTS_N_INSNS (1) + *total;
! 	      return true;
! 	    }
  	  *total = COSTS_N_INSNS (1);
  	  if (!CONST_INT_P (XEXP (x, 1)))
  	    *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1, speed);
  	  break;
  
  	case E_HImode:
! 	  if (AVR_HAVE_MUL
! 	      && (MULT == GET_CODE (XEXP (x, 0))
! 		  || ASHIFT == GET_CODE (XEXP (x, 0)))
! 	      && register_operand (XEXP (x, 1), HImode)
! 	      && (ZERO_EXTEND == GET_CODE (XEXP (XEXP (x, 0), 0))
! 		  || SIGN_EXTEND == GET_CODE (XEXP (XEXP (x, 0), 0))))
! 	    {
! 	      /* multiply-add */
! 	      *total = COSTS_N_INSNS (speed ? 5 : 4);
! 	      /* multiply-add with constant: will be split and load constant. */
! 	      if (CONST_INT_P (XEXP (XEXP (x, 0), 1)))
! 		*total = COSTS_N_INSNS (1) + *total;
! 	      return true;
! 	    }
  	  if (!CONST_INT_P (XEXP (x, 1)))
  	    {
  	      *total = COSTS_N_INSNS (2);
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11410,11427 ****
  	    *total = COSTS_N_INSNS (2);
  	  break;
  
!         case E_PSImode:
!           if (!CONST_INT_P (XEXP (x, 1)))
!             {
!               *total = COSTS_N_INSNS (3);
!               *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
!                                               speed);
!             }
!           else if (IN_RANGE (INTVAL (XEXP (x, 1)), -63, 63))
!             *total = COSTS_N_INSNS (2);
!           else
!             *total = COSTS_N_INSNS (3);
!           break;
  
  	case E_SImode:
  	  if (!CONST_INT_P (XEXP (x, 1)))
--- 12632,12649 ----
  	    *total = COSTS_N_INSNS (2);
  	  break;
  
! 	case E_PSImode:
! 	  if (!CONST_INT_P (XEXP (x, 1)))
! 	    {
! 	      *total = COSTS_N_INSNS (3);
! 	      *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
! 					      speed);
! 	    }
! 	  else if (IN_RANGE (INTVAL (XEXP (x, 1)), -63, 63))
! 	    *total = COSTS_N_INSNS (2);
! 	  else
! 	    *total = COSTS_N_INSNS (3);
! 	  break;
  
  	case E_SImode:
  	  if (!CONST_INT_P (XEXP (x, 1)))
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11443,11500 ****
        return true;
  
      case MINUS:
        if (AVR_HAVE_MUL
!           && QImode == mode
!           && register_operand (XEXP (x, 0), QImode)
!           && MULT == GET_CODE (XEXP (x, 1)))
!         {
!           /* multiply-sub */
!           *total = COSTS_N_INSNS (speed ? 4 : 3);
!           /* multiply-sub with constant: will be split and load constant. */
!           if (CONST_INT_P (XEXP (XEXP (x, 1), 1)))
!             *total = COSTS_N_INSNS (1) + *total;
!           return true;
!         }
        if (AVR_HAVE_MUL
!           && HImode == mode
!           && register_operand (XEXP (x, 0), HImode)
!           && (MULT == GET_CODE (XEXP (x, 1))
!               || ASHIFT == GET_CODE (XEXP (x, 1)))
!           && (ZERO_EXTEND == GET_CODE (XEXP (XEXP (x, 1), 0))
!               || SIGN_EXTEND == GET_CODE (XEXP (XEXP (x, 1), 0))))
!         {
!           /* multiply-sub */
!           *total = COSTS_N_INSNS (speed ? 5 : 4);
!           /* multiply-sub with constant: will be split and load constant. */
!           if (CONST_INT_P (XEXP (XEXP (x, 1), 1)))
!             *total = COSTS_N_INSNS (1) + *total;
!           return true;
!         }
        /* FALLTHRU */
      case AND:
      case IOR:
        if (IOR == code
!           && HImode == mode
!           && ASHIFT == GET_CODE (XEXP (x, 0)))
!         {
!           *total = COSTS_N_INSNS (2);
!           // Just a rough estimate.  If we see no sign- or zero-extend,
!           // then increase the cost a little bit.
!           if (REG_P (XEXP (XEXP (x, 0), 0)))
!             *total += COSTS_N_INSNS (1);
!           if (REG_P (XEXP (x, 1)))
!             *total += COSTS_N_INSNS (1);
!           return true;
!         }
        if (IOR == code
!           && AND == GET_CODE (XEXP (x, 0))
!           && AND == GET_CODE (XEXP (x, 1))
!           && single_zero_operand (XEXP (XEXP (x, 0), 1), mode))
!         {
!           // Open-coded bit transfer.
!           *total = COSTS_N_INSNS (2);
!           return true;
!         }
        *total = COSTS_N_INSNS (GET_MODE_SIZE (mode));
        *total += avr_operand_rtx_cost (XEXP (x, 0), mode, code, 0, speed);
        if (!CONST_INT_P (XEXP (x, 1)))
--- 12665,12755 ----
        return true;
  
      case MINUS:
+       // *udiff_widenqihi
+       if (mode == HImode
+ 	  && GET_CODE (XEXP (x, 0)) == ZERO_EXTEND
+ 	  && GET_CODE (XEXP (x, 1)) == ZERO_EXTEND)
+ 	{
+ 	  *total = COSTS_N_INSNS (2);
+ 	  return true;
+ 	}
+       // *sub<mode>3_zero_extend1
+       if (REG_P (XEXP (x, 0))
+ 	  && GET_CODE (XEXP (x, 1)) == ZERO_EXTEND)
+ 	{
+ 	  *total = COSTS_N_INSNS (GET_MODE_SIZE (mode));
+ 	  return true;
+ 	}
+       // *sub<mode>3.sign_extend2
+       if (REG_P (XEXP (x, 0))
+ 	  && GET_CODE (XEXP (x, 1)) == SIGN_EXTEND)
+ 	{
+ 	  *total = COSTS_N_INSNS (2 + GET_MODE_SIZE (mode));
+ 	  return true;
+ 	}
+ 
        if (AVR_HAVE_MUL
! 	  && QImode == mode
! 	  && register_operand (XEXP (x, 0), QImode)
! 	  && MULT == GET_CODE (XEXP (x, 1)))
! 	{
! 	  /* multiply-sub */
! 	  *total = COSTS_N_INSNS (speed ? 4 : 3);
! 	  /* multiply-sub with constant: will be split and load constant. */
! 	  if (CONST_INT_P (XEXP (XEXP (x, 1), 1)))
! 	    *total = COSTS_N_INSNS (1) + *total;
! 	  return true;
! 	}
        if (AVR_HAVE_MUL
! 	  && HImode == mode
! 	  && register_operand (XEXP (x, 0), HImode)
! 	  && (MULT == GET_CODE (XEXP (x, 1))
! 	      || ASHIFT == GET_CODE (XEXP (x, 1)))
! 	  && (ZERO_EXTEND == GET_CODE (XEXP (XEXP (x, 1), 0))
! 	      || SIGN_EXTEND == GET_CODE (XEXP (XEXP (x, 1), 0))))
! 	{
! 	  /* multiply-sub */
! 	  *total = COSTS_N_INSNS (speed ? 5 : 4);
! 	  /* multiply-sub with constant: will be split and load constant. */
! 	  if (CONST_INT_P (XEXP (XEXP (x, 1), 1)))
! 	    *total = COSTS_N_INSNS (1) + *total;
! 	  return true;
! 	}
        /* FALLTHRU */
      case AND:
      case IOR:
        if (IOR == code
! 	  && HImode == mode
! 	  && ASHIFT == GET_CODE (XEXP (x, 0)))
! 	{
! 	  *total = COSTS_N_INSNS (2);
! 	  // Just a rough estimate.  If we see no sign- or zero-extend,
! 	  // then increase the cost a little bit.
! 	  if (REG_P (XEXP (XEXP (x, 0), 0)))
! 	    *total += COSTS_N_INSNS (1);
! 	  if (REG_P (XEXP (x, 1)))
! 	    *total += COSTS_N_INSNS (1);
! 	  return true;
! 	}
        if (IOR == code
! 	  && AND == GET_CODE (XEXP (x, 0))
! 	  && AND == GET_CODE (XEXP (x, 1))
! 	  && single_zero_operand (XEXP (XEXP (x, 0), 1), mode))
! 	{
! 	  // Open-coded bit transfer.
! 	  *total = COSTS_N_INSNS (2);
! 	  return true;
! 	}
!       if (AND == code
! 	  && single_one_operand (XEXP (x, 1), mode)
! 	  && (ASHIFT == GET_CODE (XEXP (x, 0))
! 	      || ASHIFTRT == GET_CODE (XEXP (x, 0))
! 	      || LSHIFTRT == GET_CODE (XEXP (x, 0))))
! 	{
! 	  // "*insv.any_shift.<mode>
! 	  *total = COSTS_N_INSNS (1 + GET_MODE_SIZE (mode));
! 	  return true;
! 	}
        *total = COSTS_N_INSNS (GET_MODE_SIZE (mode));
        *total += avr_operand_rtx_cost (XEXP (x, 0), mode, code, 0, speed);
        if (!CONST_INT_P (XEXP (x, 1)))
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11521,11601 ****
  
  	case E_HImode:
  	  if (AVR_HAVE_MUL)
!             {
!               rtx op0 = XEXP (x, 0);
!               rtx op1 = XEXP (x, 1);
!               enum rtx_code code0 = GET_CODE (op0);
!               enum rtx_code code1 = GET_CODE (op1);
!               bool ex0 = SIGN_EXTEND == code0 || ZERO_EXTEND == code0;
!               bool ex1 = SIGN_EXTEND == code1 || ZERO_EXTEND == code1;
  
!               if (ex0
!                   && (u8_operand (op1, HImode)
!                       || s8_operand (op1, HImode)))
!                 {
!                   *total = COSTS_N_INSNS (!speed ? 4 : 6);
!                   return true;
!                 }
!               if (ex0
!                   && register_operand (op1, HImode))
!                 {
!                   *total = COSTS_N_INSNS (!speed ? 5 : 8);
!                   return true;
!                 }
!               else if (ex0 || ex1)
!                 {
!                   *total = COSTS_N_INSNS (!speed ? 3 : 5);
!                   return true;
!                 }
!               else if (register_operand (op0, HImode)
!                        && (u8_operand (op1, HImode)
!                            || s8_operand (op1, HImode)))
!                 {
!                   *total = COSTS_N_INSNS (!speed ? 6 : 9);
!                   return true;
!                 }
!               else
!                 *total = COSTS_N_INSNS (!speed ? 7 : 10);
!             }
  	  else if (!speed)
  	    *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
  	  else
  	    return false;
  	  break;
  
!         case E_PSImode:
!           if (!speed)
!             *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
!           else
!             *total = 10;
!           break;
  
  	case E_SImode:
  	case E_DImode:
  	  if (AVR_HAVE_MUL)
!             {
!               if (!speed)
!                 {
!                   /* Add some additional costs besides CALL like moves etc.  */
  
!                   *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 5 : 4);
!                 }
!               else
!                 {
!                   /* Just a rough estimate.  Even with -O2 we don't want bulky
!                      code expanded inline.  */
  
!                   *total = COSTS_N_INSNS (25);
!                 }
!             }
!           else
!             {
!               if (speed)
!                 *total = COSTS_N_INSNS (300);
!               else
!                 /* Add some additional costs besides CALL like moves etc.  */
!                 *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 5 : 4);
!             }
  
  	  if (mode == DImode)
  	    *total *= 2;
--- 12776,12856 ----
  
  	case E_HImode:
  	  if (AVR_HAVE_MUL)
! 	    {
! 	      rtx op0 = XEXP (x, 0);
! 	      rtx op1 = XEXP (x, 1);
! 	      enum rtx_code code0 = GET_CODE (op0);
! 	      enum rtx_code code1 = GET_CODE (op1);
! 	      bool ex0 = SIGN_EXTEND == code0 || ZERO_EXTEND == code0;
! 	      bool ex1 = SIGN_EXTEND == code1 || ZERO_EXTEND == code1;
  
! 	      if (ex0
! 		  && (u8_operand (op1, HImode)
! 		      || s8_operand (op1, HImode)))
! 		{
! 		  *total = COSTS_N_INSNS (!speed ? 4 : 6);
! 		  return true;
! 		}
! 	      if (ex0
! 		  && register_operand (op1, HImode))
! 		{
! 		  *total = COSTS_N_INSNS (!speed ? 5 : 8);
! 		  return true;
! 		}
! 	      else if (ex0 || ex1)
! 		{
! 		  *total = COSTS_N_INSNS (!speed ? 3 : 5);
! 		  return true;
! 		}
! 	      else if (register_operand (op0, HImode)
! 		       && (u8_operand (op1, HImode)
! 			   || s8_operand (op1, HImode)))
! 		{
! 		  *total = COSTS_N_INSNS (!speed ? 6 : 9);
! 		  return true;
! 		}
! 	      else
! 		*total = COSTS_N_INSNS (!speed ? 7 : 10);
! 	    }
  	  else if (!speed)
  	    *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
  	  else
  	    return false;
  	  break;
  
! 	case E_PSImode:
! 	  if (!speed)
! 	    *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
! 	  else
! 	    *total = 10;
! 	  break;
  
  	case E_SImode:
  	case E_DImode:
  	  if (AVR_HAVE_MUL)
! 	    {
! 	      if (!speed)
! 		{
! 		  /* Add some additional costs besides CALL like moves etc.  */
  
! 		  *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 5 : 4);
! 		}
! 	      else
! 		{
! 		  /* Just a rough estimate.  Even with -O2 we don't want bulky
! 		     code expanded inline.  */
  
! 		  *total = COSTS_N_INSNS (25);
! 		}
! 	    }
! 	  else
! 	    {
! 	      if (speed)
! 		*total = COSTS_N_INSNS (300);
! 	      else
! 		/* Add some additional costs besides CALL like moves etc.  */
! 		*total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 5 : 4);
! 	    }
  
  	  if (mode == DImode)
  	    *total *= 2;
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11614,11627 ****
      case UDIV:
      case UMOD:
        if (!speed)
!         *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
        else
!         *total = COSTS_N_INSNS (15 * GET_MODE_SIZE (mode));
        *total += avr_operand_rtx_cost (XEXP (x, 0), mode, code, 0, speed);
        /* For div/mod with const-int divisor we have at least the cost of
!          loading the divisor. */
        if (CONST_INT_P (XEXP (x, 1)))
!         *total += COSTS_N_INSNS (GET_MODE_SIZE (mode));
        /* Add some overall penaly for clobbering and moving around registers */
        *total += COSTS_N_INSNS (2);
        return true;
--- 12869,12882 ----
      case UDIV:
      case UMOD:
        if (!speed)
! 	*total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
        else
! 	*total = COSTS_N_INSNS (15 * GET_MODE_SIZE (mode));
        *total += avr_operand_rtx_cost (XEXP (x, 0), mode, code, 0, speed);
        /* For div/mod with const-int divisor we have at least the cost of
! 	 loading the divisor. */
        if (CONST_INT_P (XEXP (x, 1)))
! 	*total += COSTS_N_INSNS (GET_MODE_SIZE (mode));
        /* Add some overall penaly for clobbering and moving around registers */
        *total += COSTS_N_INSNS (2);
        return true;
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11684,11706 ****
  	  break;
  
  	case E_HImode:
!           if (AVR_HAVE_MUL)
!             {
!               if (const_2_to_7_operand (XEXP (x, 1), HImode)
!                   && (SIGN_EXTEND == GET_CODE (XEXP (x, 0))
!                       || ZERO_EXTEND == GET_CODE (XEXP (x, 0))))
!                 {
!                   *total = COSTS_N_INSNS (!speed ? 4 : 6);
!                   return true;
!                 }
!             }
  
!           if (const1_rtx == (XEXP (x, 1))
!               && SIGN_EXTEND == GET_CODE (XEXP (x, 0)))
!             {
!               *total = COSTS_N_INSNS (2);
!               return true;
!             }
  
  	  if (!CONST_INT_P (XEXP (x, 1)))
  	    {
--- 12939,12961 ----
  	  break;
  
  	case E_HImode:
! 	  if (AVR_HAVE_MUL)
! 	    {
! 	      if (const_2_to_7_operand (XEXP (x, 1), HImode)
! 		  && (SIGN_EXTEND == GET_CODE (XEXP (x, 0))
! 		      || ZERO_EXTEND == GET_CODE (XEXP (x, 0))))
! 		{
! 		  *total = COSTS_N_INSNS (!speed ? 4 : 6);
! 		  return true;
! 		}
! 	    }
  
! 	  if (const1_rtx == (XEXP (x, 1))
! 	      && SIGN_EXTEND == GET_CODE (XEXP (x, 0)))
! 	    {
! 	      *total = COSTS_N_INSNS (2);
! 	      return true;
! 	    }
  
  	  if (!CONST_INT_P (XEXP (x, 1)))
  	    {
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11742,11777 ****
  		*total = COSTS_N_INSNS (!speed ? 5 : 10);
  		break;
  	      default:
! 	        *total = COSTS_N_INSNS (!speed ? 5 : 41);
! 	        *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
  						speed);
  	      }
  	  break;
  
!         case E_PSImode:
!           if (!CONST_INT_P (XEXP (x, 1)))
!             {
!               *total = COSTS_N_INSNS (!speed ? 6 : 73);
!             }
!           else
!             switch (INTVAL (XEXP (x, 1)))
!               {
!               case 0:
!                 *total = 0;
!                 break;
!               case 1:
!               case 8:
!               case 16:
!                 *total = COSTS_N_INSNS (3);
!                 break;
!               case 23:
!                 *total = COSTS_N_INSNS (5);
!                 break;
!               default:
!                 *total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
!                 break;
!               }
!           break;
  
  	case E_SImode:
  	  if (!CONST_INT_P (XEXP (x, 1)))
--- 12997,13032 ----
  		*total = COSTS_N_INSNS (!speed ? 5 : 10);
  		break;
  	      default:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 41);
! 		*total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
  						speed);
  	      }
  	  break;
  
! 	case E_PSImode:
! 	  if (!CONST_INT_P (XEXP (x, 1)))
! 	    {
! 	      *total = COSTS_N_INSNS (!speed ? 6 : 73);
! 	    }
! 	  else
! 	    switch (INTVAL (XEXP (x, 1)))
! 	      {
! 	      case 0:
! 		*total = 0;
! 		break;
! 	      case 1:
! 	      case 8:
! 	      case 16:
! 		*total = COSTS_N_INSNS (3);
! 		break;
! 	      case 23:
! 		*total = COSTS_N_INSNS (5);
! 		break;
! 	      default:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
! 		break;
! 	      }
! 	  break;
  
  	case E_SImode:
  	  if (!CONST_INT_P (XEXP (x, 1)))
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11858,11914 ****
  		break;
  	      case 2:
  	      case 7:
!               case 8:
!               case 9:
  		*total = COSTS_N_INSNS (4);
  		break;
!               case 10:
  	      case 14:
  		*total = COSTS_N_INSNS (5);
  		break;
!               case 11:
!                 *total = COSTS_N_INSNS (!speed ? 5 : 6);
  		break;
!               case 12:
!                 *total = COSTS_N_INSNS (!speed ? 5 : 7);
  		break;
!               case 6:
  	      case 13:
!                 *total = COSTS_N_INSNS (!speed ? 5 : 8);
  		break;
  	      default:
! 	        *total = COSTS_N_INSNS (!speed ? 5 : 41);
! 	        *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
  						speed);
  	      }
  	  break;
  
!         case E_PSImode:
!           if (!CONST_INT_P (XEXP (x, 1)))
!             {
!               *total = COSTS_N_INSNS (!speed ? 6 : 73);
!             }
!           else
!             switch (INTVAL (XEXP (x, 1)))
!               {
!               case 0:
!                 *total = 0;
!                 break;
!               case 1:
!                 *total = COSTS_N_INSNS (3);
!                 break;
!               case 16:
!               case 8:
!                 *total = COSTS_N_INSNS (5);
!                 break;
!               case 23:
!                 *total = COSTS_N_INSNS (4);
!                 break;
!               default:
!                 *total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
!                 break;
!               }
!           break;
  
  	case E_SImode:
  	  if (!CONST_INT_P (XEXP (x, 1)))
--- 13113,13169 ----
  		break;
  	      case 2:
  	      case 7:
! 	      case 8:
! 	      case 9:
  		*total = COSTS_N_INSNS (4);
  		break;
! 	      case 10:
  	      case 14:
  		*total = COSTS_N_INSNS (5);
  		break;
! 	      case 11:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 6);
  		break;
! 	      case 12:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 7);
  		break;
! 	      case 6:
  	      case 13:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 8);
  		break;
  	      default:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 41);
! 		*total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
  						speed);
  	      }
  	  break;
  
! 	case E_PSImode:
! 	  if (!CONST_INT_P (XEXP (x, 1)))
! 	    {
! 	      *total = COSTS_N_INSNS (!speed ? 6 : 73);
! 	    }
! 	  else
! 	    switch (INTVAL (XEXP (x, 1)))
! 	      {
! 	      case 0:
! 		*total = 0;
! 		break;
! 	      case 1:
! 		*total = COSTS_N_INSNS (3);
! 		break;
! 	      case 16:
! 	      case 8:
! 		*total = COSTS_N_INSNS (5);
! 		break;
! 	      case 23:
! 		*total = COSTS_N_INSNS (4);
! 		break;
! 	      default:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
! 		break;
! 	      }
! 	  break;
  
  	case E_SImode:
  	  if (!CONST_INT_P (XEXP (x, 1)))
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 11952,11961 ****
  
      case LSHIFTRT:
        if (outer_code == TRUNCATE)
!         {
!           *total = avr_mul_highpart_cost (x, speed);
!           return true;
!         }
  
        switch (mode)
  	{
--- 13207,13216 ----
  
      case LSHIFTRT:
        if (outer_code == TRUNCATE)
! 	{
! 	  *total = avr_mul_highpart_cost (x, speed);
! 	  return true;
! 	}
  
        switch (mode)
  	{
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 12004,12010 ****
  		*total = COSTS_N_INSNS (4);
  		break;
  	      case 7:
!               case 11:
  		*total = COSTS_N_INSNS (5);
  		break;
  	      case 3:
--- 13259,13265 ----
  		*total = COSTS_N_INSNS (4);
  		break;
  	      case 7:
! 	      case 11:
  		*total = COSTS_N_INSNS (5);
  		break;
  	      case 3:
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 12021,12056 ****
  		*total = COSTS_N_INSNS (!speed ? 5 : 9);
  		break;
  	      default:
! 	        *total = COSTS_N_INSNS (!speed ? 5 : 41);
! 	        *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
  						speed);
  	      }
  	  break;
  
!         case E_PSImode:
!           if (!CONST_INT_P (XEXP (x, 1)))
!             {
!               *total = COSTS_N_INSNS (!speed ? 6 : 73);
!             }
!           else
!             switch (INTVAL (XEXP (x, 1)))
!               {
!               case 0:
!                 *total = 0;
!                 break;
!               case 1:
!               case 8:
!               case 16:
!                 *total = COSTS_N_INSNS (3);
!                 break;
!               case 23:
!                 *total = COSTS_N_INSNS (5);
!                 break;
!               default:
!                 *total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
!                 break;
!               }
!           break;
  
  	case E_SImode:
  	  if (!CONST_INT_P (XEXP (x, 1)))
--- 13276,13311 ----
  		*total = COSTS_N_INSNS (!speed ? 5 : 9);
  		break;
  	      default:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 41);
! 		*total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
  						speed);
  	      }
  	  break;
  
! 	case E_PSImode:
! 	  if (!CONST_INT_P (XEXP (x, 1)))
! 	    {
! 	      *total = COSTS_N_INSNS (!speed ? 6 : 73);
! 	    }
! 	  else
! 	    switch (INTVAL (XEXP (x, 1)))
! 	      {
! 	      case 0:
! 		*total = 0;
! 		break;
! 	      case 1:
! 	      case 8:
! 	      case 16:
! 		*total = COSTS_N_INSNS (3);
! 		break;
! 	      case 23:
! 		*total = COSTS_N_INSNS (5);
! 		break;
! 	      default:
! 		*total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
! 		break;
! 	      }
! 	  break;
  
  	case E_SImode:
  	  if (!CONST_INT_P (XEXP (x, 1)))
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 12102,12130 ****
  					    1, speed);
  	  break;
  
!         case E_HImode:
  	  *total = COSTS_N_INSNS (2);
  	  if (!CONST_INT_P (XEXP (x, 1)))
!             *total += avr_operand_rtx_cost (XEXP (x, 1), HImode, code,
  					    1, speed);
  	  else if (INTVAL (XEXP (x, 1)) != 0)
  	    *total += COSTS_N_INSNS (1);
!           break;
  
!         case E_PSImode:
!           *total = COSTS_N_INSNS (3);
!           if (CONST_INT_P (XEXP (x, 1)) && INTVAL (XEXP (x, 1)) != 0)
!             *total += COSTS_N_INSNS (2);
!           break;
  
!         case E_SImode:
!           *total = COSTS_N_INSNS (4);
!           if (!CONST_INT_P (XEXP (x, 1)))
!             *total += avr_operand_rtx_cost (XEXP (x, 1), SImode, code,
  					    1, speed);
  	  else if (INTVAL (XEXP (x, 1)) != 0)
  	    *total += COSTS_N_INSNS (3);
!           break;
  
  	default:
  	  return false;
--- 13357,13385 ----
  					    1, speed);
  	  break;
  
! 	case E_HImode:
  	  *total = COSTS_N_INSNS (2);
  	  if (!CONST_INT_P (XEXP (x, 1)))
! 	    *total += avr_operand_rtx_cost (XEXP (x, 1), HImode, code,
  					    1, speed);
  	  else if (INTVAL (XEXP (x, 1)) != 0)
  	    *total += COSTS_N_INSNS (1);
! 	  break;
  
! 	case E_PSImode:
! 	  *total = COSTS_N_INSNS (3);
! 	  if (CONST_INT_P (XEXP (x, 1)) && INTVAL (XEXP (x, 1)) != 0)
! 	    *total += COSTS_N_INSNS (2);
! 	  break;
  
! 	case E_SImode:
! 	  *total = COSTS_N_INSNS (4);
! 	  if (!CONST_INT_P (XEXP (x, 1)))
! 	    *total += avr_operand_rtx_cost (XEXP (x, 1), SImode, code,
  					    1, speed);
  	  else if (INTVAL (XEXP (x, 1)) != 0)
  	    *total += COSTS_N_INSNS (3);
! 	  break;
  
  	default:
  	  return false;
*************** avr_rtx_costs_1 (rtx x, machine_mode mod
*** 12135,12144 ****
  
      case TRUNCATE:
        if (LSHIFTRT == GET_CODE (XEXP (x, 0)))
!         {
!           *total = avr_mul_highpart_cost (XEXP (x, 0), speed);
!           return true;
!         }
        break;
  
      case IF_THEN_ELSE:
--- 13390,13399 ----
  
      case TRUNCATE:
        if (LSHIFTRT == GET_CODE (XEXP (x, 0)))
! 	{
! 	  *total = avr_mul_highpart_cost (XEXP (x, 0), speed);
! 	  return true;
! 	}
        break;
  
      case IF_THEN_ELSE:
*************** avr_rtx_costs (rtx x, machine_mode mode,
*** 12168,12174 ****
    if (avr_log.rtx_costs)
      {
        avr_edump ("\n%?=%b (%s) total=%d, outer=%C:\n%r\n",
!                  done, speed ? "speed" : "size", *total, outer_code, x);
      }
  
    return done;
--- 13423,13429 ----
    if (avr_log.rtx_costs)
      {
        avr_edump ("\n%?=%b (%s) total=%d, outer=%C:\n%r\n",
! 		 done, speed ? "speed" : "size", *total, outer_code, x);
      }
  
    return done;
*************** avr_insn_cost (rtx_insn *insn, bool spee
*** 12224,12251 ****
  /* Implement `TARGET_ADDRESS_COST'.  */
  
  static int
! avr_address_cost (rtx x, machine_mode mode ATTRIBUTE_UNUSED,
!                   addr_space_t as ATTRIBUTE_UNUSED,
!                   bool speed ATTRIBUTE_UNUSED)
  {
    int cost = 4;
  
    if (GET_CODE (x) == PLUS
        && CONST_INT_P (XEXP (x, 1))
        && (REG_P (XEXP (x, 0))
!           || SUBREG_P (XEXP (x, 0))))
      {
        if (INTVAL (XEXP (x, 1)) > MAX_LD_OFFSET(mode))
!         cost = 18;
      }
    else if (CONSTANT_ADDRESS_P (x))
      {
        if (io_address_operand (x, QImode))
!         cost = 2;
  
        if (AVR_TINY
!           && avr_address_tiny_absdata_p (x, QImode))
!         cost = 2;
      }
  
    if (avr_log.address_cost)
--- 13479,13505 ----
  /* Implement `TARGET_ADDRESS_COST'.  */
  
  static int
! avr_address_cost (rtx x, machine_mode mode, addr_space_t /*as*/,
! 		  bool /*speed*/)
  {
    int cost = 4;
  
    if (GET_CODE (x) == PLUS
        && CONST_INT_P (XEXP (x, 1))
        && (REG_P (XEXP (x, 0))
! 	  || SUBREG_P (XEXP (x, 0))))
      {
        if (INTVAL (XEXP (x, 1)) > MAX_LD_OFFSET(mode))
! 	cost = 18;
      }
    else if (CONSTANT_ADDRESS_P (x))
      {
        if (io_address_operand (x, QImode))
! 	cost = 2;
  
        if (AVR_TINY
! 	  && avr_address_tiny_absdata_p (x, QImode))
! 	cost = 2;
      }
  
    if (avr_log.address_cost)
*************** extra_constraint_Q (rtx x)
*** 12273,12288 ****
        int regno = REGNO (xx);
  
        ok = (/* allocate pseudos */
!             regno >= FIRST_PSEUDO_REGISTER
!             /* strictly check */
!             || regno == REG_Z || regno == REG_Y
!             /* XXX frame & arg pointer checks */
!             || xx == frame_pointer_rtx
!             || xx == arg_pointer_rtx);
  
        if (avr_log.constraints)
!         avr_edump ("\n%?=%d reload_completed=%d reload_in_progress=%d\n %r\n",
!                    ok, reload_completed, reload_in_progress, x);
      }
  
    return ok;
--- 13527,13542 ----
        int regno = REGNO (xx);
  
        ok = (/* allocate pseudos */
! 	    regno >= FIRST_PSEUDO_REGISTER
! 	    /* strictly check */
! 	    || regno == REG_Z || regno == REG_Y
! 	    /* XXX frame & arg pointer checks */
! 	    || xx == frame_pointer_rtx
! 	    || xx == arg_pointer_rtx);
  
        if (avr_log.constraints)
! 	avr_edump ("\n%?=%d reload_completed=%d reload_in_progress=%d\n %r\n",
! 		   ok, reload_completed, reload_in_progress, x);
      }
  
    return ok;
*************** avr_normalize_condition (RTX_CODE condit
*** 12314,12320 ****
  static inline unsigned int
  avr_ret_register (void)
  {
!   return 24;
  }
  
  
--- 13568,13574 ----
  static inline unsigned int
  avr_ret_register (void)
  {
!   return REG_24;
  }
  
  
*************** avr_ret_register (void)
*** 12323,12329 ****
  static bool
  avr_function_value_regno_p (const unsigned int regno)
  {
!   return (regno == avr_ret_register ());
  }
  
  
--- 13577,13583 ----
  static bool
  avr_function_value_regno_p (const unsigned int regno)
  {
!   return regno == avr_ret_register ();
  }
  
  
*************** avr_function_value_regno_p (const unsign
*** 12332,12339 ****
     library function returns a value of mode MODE.  */
  
  static rtx
! avr_libcall_value (machine_mode mode,
! 		   const_rtx func ATTRIBUTE_UNUSED)
  {
    int offs = GET_MODE_SIZE (mode);
  
--- 13586,13592 ----
     library function returns a value of mode MODE.  */
  
  static rtx
! avr_libcall_value (machine_mode mode, const_rtx /*func*/)
  {
    int offs = GET_MODE_SIZE (mode);
  
*************** avr_libcall_value (machine_mode mode,
*** 12349,12364 ****
     function returns a value of data type VALTYPE.  */
  
  static rtx
! avr_function_value (const_tree type,
!                     const_tree fn_decl_or_type ATTRIBUTE_UNUSED,
!                     bool outgoing ATTRIBUTE_UNUSED)
  {
-   unsigned int offs;
- 
    if (TYPE_MODE (type) != BLKmode)
      return avr_libcall_value (TYPE_MODE (type), NULL_RTX);
  
!   offs = int_size_in_bytes (type);
    if (offs < 2)
      offs = 2;
    if (offs > 2 && offs < GET_MODE_SIZE (SImode))
--- 13602,13614 ----
     function returns a value of data type VALTYPE.  */
  
  static rtx
! avr_function_value (const_tree type, const_tree /*fn_decl_or_type*/,
! 		    bool /*outgoing*/)
  {
    if (TYPE_MODE (type) != BLKmode)
      return avr_libcall_value (TYPE_MODE (type), NULL_RTX);
  
!   unsigned int offs = int_size_in_bytes (type);
    if (offs < 2)
      offs = 2;
    if (offs > 2 && offs < GET_MODE_SIZE (SImode))
*************** avr_2word_insn_p (rtx_insn *insn)
*** 12403,12426 ****
      case CODE_FOR_movuqq_insn:
      case CODE_FOR_movqq_insn:
        {
!         rtx set  = single_set (insn);
!         rtx src  = SET_SRC (set);
!         rtx dest = SET_DEST (set);
  
!         /* Factor out LDS and STS from movqi_insn.  */
  
!         if (MEM_P (dest)
!             && (REG_P (src) || src == CONST0_RTX (GET_MODE (dest))))
!           {
!             return CONSTANT_ADDRESS_P (XEXP (dest, 0));
!           }
!         else if (REG_P (dest)
!                  && MEM_P (src))
!           {
!             return CONSTANT_ADDRESS_P (XEXP (src, 0));
!           }
  
!         return false;
        }
  
      case CODE_FOR_call_insn:
--- 13653,13676 ----
      case CODE_FOR_movuqq_insn:
      case CODE_FOR_movqq_insn:
        {
! 	rtx set  = single_set (insn);
! 	rtx src  = SET_SRC (set);
! 	rtx dest = SET_DEST (set);
  
! 	/* Factor out LDS and STS from movqi_insn.  */
  
! 	if (MEM_P (dest)
! 	    && (REG_P (src) || src == CONST0_RTX (GET_MODE (dest))))
! 	  {
! 	    return CONSTANT_ADDRESS_P (XEXP (dest, 0));
! 	  }
! 	else if (REG_P (dest)
! 		 && MEM_P (src))
! 	  {
! 	    return CONSTANT_ADDRESS_P (XEXP (src, 0));
! 	  }
  
! 	return false;
        }
  
      case CODE_FOR_call_insn:
*************** jump_over_one_insn_p (rtx_insn *insn, rt
*** 12441,12451 ****
    int jump_offset = dest_addr - jump_addr - get_attr_length (insn);
  
    return (jump_offset == 1
!           || (jump_offset == 2
!               && avr_2word_insn_p (next_active_insn (insn))));
  }
  
! /* Implement TARGET_HARD_REGNO_NREGS. CCmode is four units for historical
     reasons. If this hook is not defined, TARGET_HARD_REGNO_NREGS
     reports that CCmode requires four registers.
     Define this hook to allow CCmode to fit in a single REG_CC. For
--- 13691,13702 ----
    int jump_offset = dest_addr - jump_addr - get_attr_length (insn);
  
    return (jump_offset == 1
! 	  || (jump_offset == 2
! 	      && avr_2word_insn_p (next_active_insn (insn))));
  }
  
! 
! /* Implement `TARGET_HARD_REGNO_NREGS'.  CCmode is four units for historical
     reasons. If this hook is not defined, TARGET_HARD_REGNO_NREGS
     reports that CCmode requires four registers.
     Define this hook to allow CCmode to fit in a single REG_CC. For
*************** avr_hard_regno_nregs (unsigned int regno
*** 12462,12468 ****
  }
  
  
! /* Implement TARGET_HARD_REGNO_MODE_OK.  On the enhanced core, anything
     larger than 1 byte must start in even numbered register for "movw" to
     work (this way we don't have to check for odd registers everywhere).  */
  
--- 13713,13719 ----
  }
  
  
! /* Implement `TARGET_HARD_REGNO_MODE_OK'.  On the enhanced core, anything
     larger than 1 byte must start in even numbered register for "movw" to
     work (this way we don't have to check for odd registers everywhere).  */
  
*************** avr_hard_regno_mode_ok (unsigned int reg
*** 12473,12484 ****
      return mode == CCmode;
  
    /* NOTE: 8-bit values must not be disallowed for R28 or R29.
!         Disallowing QI et al. in these regs might lead to code like
!             (set (subreg:QI (reg:HI 28) n) ...)
!         which will result in wrong code because reload does not
!         handle SUBREGs of hard regsisters like this.
!         This could be fixed in reload.  However, it appears
!         that fixing reload is not wanted by reload people.  */
  
    /* Any GENERAL_REGS register can hold 8-bit values.  */
  
--- 13724,13735 ----
      return mode == CCmode;
  
    /* NOTE: 8-bit values must not be disallowed for R28 or R29.
! 	Disallowing QI et al. in these regs might lead to code like
! 	    (set (subreg:QI (reg:HI 28) n) ...)
! 	which will result in wrong code because reload does not
! 	handle SUBREGs of hard regsisters like this.
! 	This could be fixed in reload.  However, it appears
! 	that fixing reload is not wanted by reload people.  */
  
    /* Any GENERAL_REGS register can hold 8-bit values.  */
  
*************** avr_hard_regno_mode_ok (unsigned int reg
*** 12486,12494 ****
      return true;
  
    /* FIXME: Ideally, the following test is not needed.
!         However, it turned out that it can reduce the number
!         of spill fails.  AVR and it's poor endowment with
!         address registers is extreme stress test for reload.  */
  
    if (GET_MODE_SIZE (mode) >= 4
        && regno >= REG_X)
--- 13737,13745 ----
      return true;
  
    /* FIXME: Ideally, the following test is not needed.
! 	However, it turned out that it can reduce the number
! 	of spill fails.  AVR and it's poor endowment with
! 	address registers is extreme stress test for reload.  */
  
    if (GET_MODE_SIZE (mode) >= 4
        && regno >= REG_X)
*************** avr_hard_regno_mode_ok (unsigned int reg
*** 12500,12515 ****
  }
  
  
! /* Implement TARGET_HARD_REGNO_CALL_PART_CLOBBERED.  */
  
  static bool
  avr_hard_regno_call_part_clobbered (unsigned, unsigned regno,
  				    machine_mode mode)
  {
    /* FIXME: This hook gets called with MODE:REGNO combinations that don't
!         represent valid hard registers like, e.g. HI:29.  Returning TRUE
!         for such registers can lead to performance degradation as mentioned
!         in PR53595.  Thus, report invalid hard registers as FALSE.  */
  
    if (!avr_hard_regno_mode_ok (regno, mode))
      return 0;
--- 13751,13766 ----
  }
  
  
! /* Implement `TARGET_HARD_REGNO_CALL_PART_CLOBBERED'.  */
  
  static bool
  avr_hard_regno_call_part_clobbered (unsigned, unsigned regno,
  				    machine_mode mode)
  {
    /* FIXME: This hook gets called with MODE:REGNO combinations that don't
! 	represent valid hard registers like, e.g. HI:29.  Returning TRUE
! 	for such registers can lead to performance degradation as mentioned
! 	in PR53595.  Thus, report invalid hard registers as FALSE.  */
  
    if (!avr_hard_regno_mode_ok (regno, mode))
      return 0;
*************** avr_hard_regno_call_part_clobbered (unsi
*** 12518,12541 ****
       17/18 or 19/20 (if AVR_TINY), 27/28 and 29/30.  */
  
    return ((regno <= LAST_CALLEE_SAVED_REG
!            && regno + GET_MODE_SIZE (mode) > 1 + LAST_CALLEE_SAVED_REG)
!           || (regno < REG_Y && regno + GET_MODE_SIZE (mode) > REG_Y)
!           || (regno < REG_Z && regno + GET_MODE_SIZE (mode) > REG_Z));
  }
  
  
  /* Implement `MODE_CODE_BASE_REG_CLASS'.  */
  
  enum reg_class
! avr_mode_code_base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
!                               addr_space_t as, RTX_CODE outer_code,
!                               RTX_CODE index_code ATTRIBUTE_UNUSED)
  {
    if (!ADDR_SPACE_GENERIC_P (as))
      {
        return POINTER_Z_REGS;
      }
  
    if (!avr_strict_X)
      return reload_completed ? BASE_POINTER_REGS : POINTER_REGS;
  
--- 13769,13796 ----
       17/18 or 19/20 (if AVR_TINY), 27/28 and 29/30.  */
  
    return ((regno <= LAST_CALLEE_SAVED_REG
! 	   && regno + GET_MODE_SIZE (mode) > 1 + LAST_CALLEE_SAVED_REG)
! 	  || (regno < REG_Y && regno + GET_MODE_SIZE (mode) > REG_Y)
! 	  || (regno < REG_Z && regno + GET_MODE_SIZE (mode) > REG_Z));
  }
  
  
  /* Implement `MODE_CODE_BASE_REG_CLASS'.  */
  
  enum reg_class
! avr_mode_code_base_reg_class (machine_mode /*mode*/, addr_space_t as,
! 			      RTX_CODE outer_code, RTX_CODE /*index_code*/)
  {
    if (!ADDR_SPACE_GENERIC_P (as))
      {
        return POINTER_Z_REGS;
      }
  
+   if (AVR_TINY)
+     // We allow all offsets for all pointer regs.  Pass .avr-fuse-add
+     // will rectify it (register allocation cannot do it).
+     return POINTER_REGS;
+ 
    if (!avr_strict_X)
      return reload_completed ? BASE_POINTER_REGS : POINTER_REGS;
  
*************** avr_mode_code_base_reg_class (machine_mo
*** 12546,12585 ****
  /* Implement `REGNO_MODE_CODE_OK_FOR_BASE_P'.  */
  
  bool
! avr_regno_mode_code_ok_for_base_p (int regno,
!                                    machine_mode mode ATTRIBUTE_UNUSED,
!                                    addr_space_t as ATTRIBUTE_UNUSED,
!                                    RTX_CODE outer_code,
!                                    RTX_CODE index_code ATTRIBUTE_UNUSED)
  {
    bool ok = false;
  
    if (!ADDR_SPACE_GENERIC_P (as))
      {
        if (regno < FIRST_PSEUDO_REGISTER
!           && regno == REG_Z)
!         {
!           return true;
!         }
  
        if (reg_renumber)
!         {
!           regno = reg_renumber[regno];
  
!           if (regno == REG_Z)
!             {
!               return true;
!             }
!         }
  
        return false;
      }
  
    if (regno < FIRST_PSEUDO_REGISTER
        && (regno == REG_X
!           || regno == REG_Y
!           || regno == REG_Z
!           || regno == ARG_POINTER_REGNUM))
      {
        ok = true;
      }
--- 13801,13838 ----
  /* Implement `REGNO_MODE_CODE_OK_FOR_BASE_P'.  */
  
  bool
! avr_regno_mode_code_ok_for_base_p (int regno, machine_mode /*mode*/,
! 				   addr_space_t as, RTX_CODE outer_code,
! 				   RTX_CODE /*index_code*/)
  {
    bool ok = false;
  
    if (!ADDR_SPACE_GENERIC_P (as))
      {
        if (regno < FIRST_PSEUDO_REGISTER
! 	  && regno == REG_Z)
! 	{
! 	  return true;
! 	}
  
        if (reg_renumber)
! 	{
! 	  regno = reg_renumber[regno];
  
! 	  if (regno == REG_Z)
! 	    {
! 	      return true;
! 	    }
! 	}
  
        return false;
      }
  
    if (regno < FIRST_PSEUDO_REGISTER
        && (regno == REG_X
! 	  || regno == REG_Y
! 	  || regno == REG_Z
! 	  || regno == ARG_POINTER_REGNUM))
      {
        ok = true;
      }
*************** avr_regno_mode_code_ok_for_base_p (int r
*** 12588,12602 ****
        regno = reg_renumber[regno];
  
        if (regno == REG_X
!           || regno == REG_Y
!           || regno == REG_Z
!           || regno == ARG_POINTER_REGNUM)
!         {
!           ok = true;
!         }
      }
  
    if (avr_strict_X
        && PLUS == outer_code
        && regno == REG_X)
      {
--- 13841,13861 ----
        regno = reg_renumber[regno];
  
        if (regno == REG_X
! 	  || regno == REG_Y
! 	  || regno == REG_Z
! 	  || regno == ARG_POINTER_REGNUM)
! 	{
! 	  ok = true;
! 	}
      }
  
    if (avr_strict_X
+       // On Reduced Tiny, all registers are equal in that they do not
+       // support PLUS addressing; respective addresses will be fake,
+       // even for the frame pointer.  They must be handled in the
+       // printers by add-store-sub sequences -- or may be split after
+       // reload by `avr_split_tiny_move'.
+       && ! AVR_TINY
        && PLUS == outer_code
        && regno == REG_X)
      {
*************** avr_regno_mode_code_ok_for_base_p (int r
*** 12612,12618 ****
     CLOBBER_REG is a QI clobber register or NULL_RTX.
     LEN == NULL: output instructions.
     LEN != NULL: set *LEN to the length of the instruction sequence
!                 (in words) printed with LEN = NULL.
     If CLEAR_P is true, OP[0] had been cleard to Zero already.
     If CLEAR_P is false, nothing is known about OP[0].
  
--- 13871,13877 ----
     CLOBBER_REG is a QI clobber register or NULL_RTX.
     LEN == NULL: output instructions.
     LEN != NULL: set *LEN to the length of the instruction sequence
! 		(in words) printed with LEN = NULL.
     If CLEAR_P is true, OP[0] had been cleard to Zero already.
     If CLEAR_P is false, nothing is known about OP[0].
  
*************** output_reload_in_const (rtx *op, rtx clo
*** 12636,12642 ****
    int n_bytes = GET_MODE_SIZE (mode);
  
    gcc_assert (REG_P (dest)
!               && CONSTANT_P (src));
  
    if (len)
      *len = 0;
--- 13895,13901 ----
    int n_bytes = GET_MODE_SIZE (mode);
  
    gcc_assert (REG_P (dest)
! 	      && CONSTANT_P (src));
  
    if (len)
      *len = 0;
*************** output_reload_in_const (rtx *op, rtx clo
*** 12644,12651 ****
    /* (REG:SI 14) is special: It's neither in LD_REGS nor in NO_LD_REGS
       but has some subregs that are in LD_REGS.  Use the MSB (REG:QI 17).  */
  
!   if (REGNO (dest) < 16
!       && REGNO (dest) + GET_MODE_SIZE (mode) > 16)
      {
        clobber_reg = all_regs_rtx[REGNO (dest) + n_bytes - 1];
      }
--- 13903,13910 ----
    /* (REG:SI 14) is special: It's neither in LD_REGS nor in NO_LD_REGS
       but has some subregs that are in LD_REGS.  Use the MSB (REG:QI 17).  */
  
!   if (REGNO (dest) < REG_16
!       && REGNO (dest) + GET_MODE_SIZE (mode) > REG_16)
      {
        clobber_reg = all_regs_rtx[REGNO (dest) + n_bytes - 1];
      }
*************** output_reload_in_const (rtx *op, rtx clo
*** 12657,12667 ****
    if (NULL_RTX == clobber_reg
        && !test_hard_reg_class (LD_REGS, dest)
        && (! (CONST_INT_P (src) || CONST_FIXED_P (src) || CONST_DOUBLE_P (src))
!           || !avr_popcount_each_byte (src, n_bytes,
!                                       (1 << 0) | (1 << 1) | (1 << 8))))
      {
        /* We have no clobber register but need one.  Cook one up.
!          That's cheaper than loading from constant pool.  */
  
        cooked_clobber_p = true;
        clobber_reg = all_regs_rtx[REG_Z + 1];
--- 13916,13926 ----
    if (NULL_RTX == clobber_reg
        && !test_hard_reg_class (LD_REGS, dest)
        && (! (CONST_INT_P (src) || CONST_FIXED_P (src) || CONST_DOUBLE_P (src))
! 	  || !avr_popcount_each_byte (src, n_bytes,
! 				      (1 << 0) | (1 << 1) | (1 << 8))))
      {
        /* We have no clobber register but need one.  Cook one up.
! 	 That's cheaper than loading from constant pool.  */
  
        cooked_clobber_p = true;
        clobber_reg = all_regs_rtx[REG_Z + 1];
*************** output_reload_in_const (rtx *op, rtx clo
*** 12672,12706 ****
  
    for (int n = 0; n < n_bytes; n++)
      {
-       int ldreg_p;
        bool done_byte = false;
        rtx xop[3];
  
        /* Crop the n-th destination byte.  */
  
        xdest[n] = simplify_gen_subreg (QImode, dest, mode, n);
!       ldreg_p = test_hard_reg_class (LD_REGS, xdest[n]);
  
        if (!CONST_INT_P (src)
!           && !CONST_FIXED_P (src)
!           && !CONST_DOUBLE_P (src))
!         {
!           static const char* const asm_code[][2] =
!             {
!               { "ldi %2,lo8(%1)"  CR_TAB "mov %0,%2",    "ldi %0,lo8(%1)"  },
!               { "ldi %2,hi8(%1)"  CR_TAB "mov %0,%2",    "ldi %0,hi8(%1)"  },
!               { "ldi %2,hlo8(%1)" CR_TAB "mov %0,%2",    "ldi %0,hlo8(%1)" },
!               { "ldi %2,hhi8(%1)" CR_TAB "mov %0,%2",    "ldi %0,hhi8(%1)" }
!             };
  
!           xop[0] = xdest[n];
!           xop[1] = src;
!           xop[2] = clobber_reg;
  
!           avr_asm_len (asm_code[n][ldreg_p], xop, len, ldreg_p ? 1 : 2);
  
!           continue;
!         }
  
        /* Crop the n-th source byte.  */
  
--- 13931,13964 ----
  
    for (int n = 0; n < n_bytes; n++)
      {
        bool done_byte = false;
        rtx xop[3];
  
        /* Crop the n-th destination byte.  */
  
        xdest[n] = simplify_gen_subreg (QImode, dest, mode, n);
!       int ldreg_p = test_hard_reg_class (LD_REGS, xdest[n]);
  
        if (!CONST_INT_P (src)
! 	  && !CONST_FIXED_P (src)
! 	  && !CONST_DOUBLE_P (src))
! 	{
! 	  static const char *const asm_code[][2] =
! 	    {
! 	      { "ldi %2,lo8(%1)"  CR_TAB "mov %0,%2",    "ldi %0,lo8(%1)"  },
! 	      { "ldi %2,hi8(%1)"  CR_TAB "mov %0,%2",    "ldi %0,hi8(%1)"  },
! 	      { "ldi %2,hlo8(%1)" CR_TAB "mov %0,%2",    "ldi %0,hlo8(%1)" },
! 	      { "ldi %2,hhi8(%1)" CR_TAB "mov %0,%2",    "ldi %0,hhi8(%1)" }
! 	    };
  
! 	  xop[0] = xdest[n];
! 	  xop[1] = src;
! 	  xop[2] = clobber_reg;
  
! 	  avr_asm_len (asm_code[n][ldreg_p], xop, len, ldreg_p ? 1 : 2);
  
! 	  continue;
! 	}
  
        /* Crop the n-th source byte.  */
  
*************** output_reload_in_const (rtx *op, rtx clo
*** 12710,12816 ****
        /* Look if we can reuse the low word by means of MOVW.  */
  
        if (n == 2
!           && n_bytes >= 4
!           && AVR_HAVE_MOVW)
!         {
!           rtx lo16 = simplify_gen_subreg (HImode, src, mode, 0);
!           rtx hi16 = simplify_gen_subreg (HImode, src, mode, 2);
  
!           if (INTVAL (lo16) == INTVAL (hi16))
!             {
  	      if (INTVAL (lo16) != 0 || !clear_p)
  		avr_asm_len ("movw %C0,%A0", &op[0], len, 1);
  
!               break;
!             }
!         }
  
        /* Don't use CLR so that cc0 is set as expected.  */
  
        if (ival[n] == 0)
!         {
!           if (!clear_p)
!             avr_asm_len (ldreg_p ? "ldi %0,0"
!                          : AVR_ZERO_REGNO == REGNO (xdest[n]) ? "clr %0"
!                          : "mov %0,__zero_reg__",
!                          &xdest[n], len, 1);
!           continue;
!         }
  
        if (clobber_val == ival[n]
!           && REGNO (clobber_reg) == REGNO (xdest[n]))
!         {
!           continue;
!         }
  
        /* LD_REGS can use LDI to move a constant value */
  
        if (ldreg_p)
!         {
!           xop[0] = xdest[n];
!           xop[1] = xval;
!           avr_asm_len ("ldi %0,lo8(%1)", xop, len, 1);
!           continue;
!         }
  
        /* Try to reuse value already loaded in some lower byte. */
  
        for (int j = 0; j < n; j++)
!         if (ival[j] == ival[n])
!           {
!             xop[0] = xdest[n];
!             xop[1] = xdest[j];
  
!             avr_asm_len ("mov %0,%1", xop, len, 1);
!             done_byte = true;
!             break;
!           }
  
        if (done_byte)
!         continue;
  
        /* Need no clobber reg for -1: Use CLR/DEC */
  
        if (ival[n] == -1)
!         {
!           if (!clear_p)
!             avr_asm_len ("clr %0", &xdest[n], len, 1);
  
!           avr_asm_len ("dec %0", &xdest[n], len, 1);
!           continue;
!         }
        else if (ival[n] == 1)
!         {
!           if (!clear_p)
!             avr_asm_len ("clr %0", &xdest[n], len, 1);
  
!           avr_asm_len ("inc %0", &xdest[n], len, 1);
!           continue;
!         }
  
        /* Use T flag or INC to manage powers of 2 if we have
!          no clobber reg.  */
  
        if (NULL_RTX == clobber_reg
!           && single_one_operand (xval, QImode))
!         {
!           xop[0] = xdest[n];
!           xop[1] = GEN_INT (exact_log2 (ival[n] & GET_MODE_MASK (QImode)));
  
!           gcc_assert (constm1_rtx != xop[1]);
  
!           if (!set_p)
!             {
!               set_p = true;
!               avr_asm_len ("set", xop, len, 1);
!             }
  
!           if (!clear_p)
!             avr_asm_len ("clr %0", xop, len, 1);
  
!           avr_asm_len ("bld %0,%1", xop, len, 1);
!           continue;
!         }
  
        /* We actually need the LD_REGS clobber reg.  */
  
--- 13968,14074 ----
        /* Look if we can reuse the low word by means of MOVW.  */
  
        if (n == 2
! 	  && n_bytes >= 4
! 	  && AVR_HAVE_MOVW)
! 	{
! 	  rtx lo16 = simplify_gen_subreg (HImode, src, mode, 0);
! 	  rtx hi16 = simplify_gen_subreg (HImode, src, mode, 2);
  
! 	  if (INTVAL (lo16) == INTVAL (hi16))
! 	    {
  	      if (INTVAL (lo16) != 0 || !clear_p)
  		avr_asm_len ("movw %C0,%A0", &op[0], len, 1);
  
! 	      break;
! 	    }
! 	}
  
        /* Don't use CLR so that cc0 is set as expected.  */
  
        if (ival[n] == 0)
! 	{
! 	  if (!clear_p)
! 	    avr_asm_len (ldreg_p ? "ldi %0,0"
! 			 : AVR_ZERO_REGNO == REGNO (xdest[n]) ? "clr %0"
! 			 : "mov %0,__zero_reg__",
! 			 &xdest[n], len, 1);
! 	  continue;
! 	}
  
        if (clobber_val == ival[n]
! 	  && REGNO (clobber_reg) == REGNO (xdest[n]))
! 	{
! 	  continue;
! 	}
  
        /* LD_REGS can use LDI to move a constant value */
  
        if (ldreg_p)
! 	{
! 	  xop[0] = xdest[n];
! 	  xop[1] = xval;
! 	  avr_asm_len ("ldi %0,lo8(%1)", xop, len, 1);
! 	  continue;
! 	}
  
        /* Try to reuse value already loaded in some lower byte. */
  
        for (int j = 0; j < n; j++)
! 	if (ival[j] == ival[n])
! 	  {
! 	    xop[0] = xdest[n];
! 	    xop[1] = xdest[j];
  
! 	    avr_asm_len ("mov %0,%1", xop, len, 1);
! 	    done_byte = true;
! 	    break;
! 	  }
  
        if (done_byte)
! 	continue;
  
        /* Need no clobber reg for -1: Use CLR/DEC */
  
        if (ival[n] == -1)
! 	{
! 	  if (!clear_p)
! 	    avr_asm_len ("clr %0", &xdest[n], len, 1);
  
! 	  avr_asm_len ("dec %0", &xdest[n], len, 1);
! 	  continue;
! 	}
        else if (ival[n] == 1)
! 	{
! 	  if (!clear_p)
! 	    avr_asm_len ("clr %0", &xdest[n], len, 1);
  
! 	  avr_asm_len ("inc %0", &xdest[n], len, 1);
! 	  continue;
! 	}
  
        /* Use T flag or INC to manage powers of 2 if we have
! 	 no clobber reg.  */
  
        if (NULL_RTX == clobber_reg
! 	  && single_one_operand (xval, QImode))
! 	{
! 	  xop[0] = xdest[n];
! 	  xop[1] = GEN_INT (exact_log2 (ival[n] & GET_MODE_MASK (QImode)));
  
! 	  gcc_assert (constm1_rtx != xop[1]);
  
! 	  if (!set_p)
! 	    {
! 	      set_p = true;
! 	      avr_asm_len ("set", xop, len, 1);
! 	    }
  
! 	  if (!clear_p)
! 	    avr_asm_len ("clr %0", xop, len, 1);
  
! 	  avr_asm_len ("bld %0,%1", xop, len, 1);
! 	  continue;
! 	}
  
        /* We actually need the LD_REGS clobber reg.  */
  
*************** output_reload_in_const (rtx *op, rtx clo
*** 12822,12828 ****
        clobber_val = ival[n];
  
        avr_asm_len ("ldi %2,lo8(%1)" CR_TAB
!                    "mov %0,%2", xop, len, 2);
      }
  
    /* If we cooked up a clobber reg above, restore it.  */
--- 14080,14086 ----
        clobber_val = ival[n];
  
        avr_asm_len ("ldi %2,lo8(%1)" CR_TAB
! 		   "mov %0,%2", xop, len, 2);
      }
  
    /* If we cooked up a clobber reg above, restore it.  */
*************** output_reload_in_const (rtx *op, rtx clo
*** 12841,12851 ****
  
     PLEN == NULL: Output instructions.
     PLEN != NULL: Output nothing.  Set *PLEN to number of words occupied
!                  by the insns printed.
  
     Return "".  */
  
! const char*
  output_reload_inhi (rtx *op, rtx clobber_reg, int *plen)
  {
    output_reload_in_const (op, clobber_reg, plen, false);
--- 14099,14109 ----
  
     PLEN == NULL: Output instructions.
     PLEN != NULL: Output nothing.  Set *PLEN to number of words occupied
! 		 by the insns printed.
  
     Return "".  */
  
! const char *
  output_reload_inhi (rtx *op, rtx clobber_reg, int *plen)
  {
    output_reload_in_const (op, clobber_reg, plen, false);
*************** output_reload_inhi (rtx *op, rtx clobber
*** 12861,12867 ****
     LEN == NULL: Output instructions.
  
     LEN != NULL: Output nothing.  Set *LEN to number of words occupied
!                 by the insns printed.
  
     Return "".  */
  
--- 14119,14125 ----
     LEN == NULL: Output instructions.
  
     LEN != NULL: Output nothing.  Set *LEN to number of words occupied
! 		by the insns printed.
  
     Return "".  */
  
*************** output_reload_insisf (rtx *op, rtx clobb
*** 12871,12911 ****
    if (AVR_HAVE_MOVW
        && !test_hard_reg_class (LD_REGS, op[0])
        && (CONST_INT_P (op[1])
!           || CONST_FIXED_P (op[1])
!           || CONST_DOUBLE_P (op[1])))
      {
-       int len_clr, len_noclr;
- 
        /* In some cases it is better to clear the destination beforehand, e.g.
  
!              CLR R2   CLR R3   MOVW R4,R2   INC R2
  
!          is shorther than
  
!              CLR R2   INC R2   CLR  R3      CLR R4   CLR R5
  
!          We find it too tedious to work that out in the print function.
!          Instead, we call the print function twice to get the lengths of
!          both methods and use the shortest one.  */
  
        output_reload_in_const (op, clobber_reg, &len_clr, true);
        output_reload_in_const (op, clobber_reg, &len_noclr, false);
  
        if (len_noclr - len_clr == 4)
!         {
!           /* Default needs 4 CLR instructions: clear register beforehand.  */
  
!           avr_asm_len ("mov %A0,__zero_reg__" CR_TAB
!                        "mov %B0,__zero_reg__" CR_TAB
!                        "movw %C0,%A0", &op[0], len, 3);
  
!           output_reload_in_const (op, clobber_reg, len, true);
  
!           if (len)
!             *len += 3;
  
!           return "";
!         }
      }
  
    /* Default: destination not pre-cleared.  */
--- 14129,14168 ----
    if (AVR_HAVE_MOVW
        && !test_hard_reg_class (LD_REGS, op[0])
        && (CONST_INT_P (op[1])
! 	  || CONST_FIXED_P (op[1])
! 	  || CONST_DOUBLE_P (op[1])))
      {
        /* In some cases it is better to clear the destination beforehand, e.g.
  
! 	     CLR R2   CLR R3   MOVW R4,R2   INC R2
  
! 	 is shorther than
  
! 	     CLR R2   INC R2   CLR  R3      CLR R4   CLR R5
  
! 	 We find it too tedious to work that out in the print function.
! 	 Instead, we call the print function twice to get the lengths of
! 	 both methods and use the shortest one.  */
  
+       int len_clr, len_noclr;
        output_reload_in_const (op, clobber_reg, &len_clr, true);
        output_reload_in_const (op, clobber_reg, &len_noclr, false);
  
        if (len_noclr - len_clr == 4)
! 	{
! 	  /* Default needs 4 CLR instructions: clear register beforehand.  */
  
! 	  avr_asm_len ("mov %A0,__zero_reg__" CR_TAB
! 		       "mov %B0,__zero_reg__" CR_TAB
! 		       "movw %C0,%A0", &op[0], len, 3);
  
! 	  output_reload_in_const (op, clobber_reg, len, true);
  
! 	  if (len)
! 	    *len += 3;
  
! 	  return "";
! 	}
      }
  
    /* Default: destination not pre-cleared.  */
*************** output_reload_insisf (rtx *op, rtx clobb
*** 12914,12920 ****
    return "";
  }
  
! const char*
  avr_out_reload_inpsi (rtx *op, rtx clobber_reg, int *len)
  {
    output_reload_in_const (op, clobber_reg, len, false);
--- 14171,14177 ----
    return "";
  }
  
! const char *
  avr_out_reload_inpsi (rtx *op, rtx clobber_reg, int *len)
  {
    output_reload_in_const (op, clobber_reg, len, false);
*************** avr_output_addr_vec (rtx_insn *labl, rtx
*** 12972,12978 ****
        sec_name = ACONCAT ((sec_name, ".", fname, NULL));
  
        fprintf (stream, "\t.section\t%s,\"%s\",@progbits\n", sec_name,
!                AVR_HAVE_JMP_CALL ? "a" : "ax");
      }
  
    // Output the label that preceeds the table.
--- 14229,14235 ----
        sec_name = ACONCAT ((sec_name, ".", fname, NULL));
  
        fprintf (stream, "\t.section\t%s,\"%s\",@progbits\n", sec_name,
! 	       AVR_HAVE_JMP_CALL ? "a" : "ax");
      }
  
    // Output the label that preceeds the table.
*************** avr_output_addr_vec (rtx_insn *labl, rtx
*** 12989,12997 ****
        int value = CODE_LABEL_NUMBER (XEXP (XVECEXP (table, 0, idx), 0));
  
        if (AVR_HAVE_JMP_CALL)
!         fprintf (stream, "\t.word gs(.L%d)\n", value);
        else
!         fprintf (stream, "\trjmp .L%d\n", value);
      }
  
    // Switch back to original section.  As we clobbered the section above,
--- 14246,14254 ----
        int value = CODE_LABEL_NUMBER (XEXP (XVECEXP (table, 0, idx), 0));
  
        if (AVR_HAVE_JMP_CALL)
! 	fprintf (stream, "\t.word gs(.L%d)\n", value);
        else
! 	fprintf (stream, "\trjmp .L%d\n", value);
      }
  
    // Switch back to original section.  As we clobbered the section above,
*************** avr_conditional_register_usage (void)
*** 13010,13053 ****
    if (AVR_TINY)
      {
        const int tiny_reg_alloc_order[] = {
!         24, 25,
!         22, 23,
!         30, 31,
!         26, 27,
!         28, 29,
!         21, 20, 19, 18,
!         16, 17,
!         32, 33, 34, 35,
!         15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
        };
  
        /* Set R0-R17 as fixed registers. Reset R0-R17 in call used register list
!          - R0-R15 are not available in Tiny Core devices
!          - R16 and R17 are fixed registers.  */
  
!       for (size_t i = 0; i <= 17;  i++)
!         {
!           fixed_regs[i] = 1;
!           call_used_regs[i] = 1;
!         }
  
        /* Set R18 to R21 as callee saved registers
!          - R18, R19, R20 and R21 are the callee saved registers in
!            Tiny Core devices  */
  
!       for (size_t i = 18; i <= LAST_CALLEE_SAVED_REG; i++)
!         {
!           call_used_regs[i] = 0;
!         }
  
        /* Update register allocation order for Tiny Core devices */
  
        for (size_t i = 0; i < ARRAY_SIZE (tiny_reg_alloc_order); i++)
!         {
!           reg_alloc_order[i] = tiny_reg_alloc_order[i];
!         }
  
-       CLEAR_HARD_REG_SET (reg_class_contents[(int) ADDW_REGS]);
        CLEAR_HARD_REG_SET (reg_class_contents[(int) NO_LD_REGS]);
      }
  }
--- 14267,14309 ----
    if (AVR_TINY)
      {
        const int tiny_reg_alloc_order[] = {
! 	24, 25,
! 	22, 23,
! 	30, 31,
! 	26, 27,
! 	28, 29,
! 	21, 20, 19, 18,
! 	16, 17,
! 	32, 33, 34, 35,
! 	15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
        };
  
        /* Set R0-R17 as fixed registers. Reset R0-R17 in call used register list
! 	 - R0-R15 are not available in Tiny Core devices
! 	 - R16 and R17 are fixed registers.  */
  
!       for (size_t i = REG_0; i <= REG_17;  i++)
! 	{
! 	  fixed_regs[i] = 1;
! 	  call_used_regs[i] = 1;
! 	}
  
        /* Set R18 to R21 as callee saved registers
! 	 - R18, R19, R20 and R21 are the callee saved registers in
! 	   Tiny Core devices  */
  
!       for (size_t i = REG_18; i <= LAST_CALLEE_SAVED_REG; i++)
! 	{
! 	  call_used_regs[i] = 0;
! 	}
  
        /* Update register allocation order for Tiny Core devices */
  
        for (size_t i = 0; i < ARRAY_SIZE (tiny_reg_alloc_order); i++)
! 	{
! 	  reg_alloc_order[i] = tiny_reg_alloc_order[i];
! 	}
  
        CLEAR_HARD_REG_SET (reg_class_contents[(int) NO_LD_REGS]);
      }
  }
*************** avr_hard_regno_scratch_ok (unsigned int
*** 13084,13091 ****
  /* Return nonzero if register OLD_REG can be renamed to register NEW_REG.  */
  
  int
! avr_hard_regno_rename_ok (unsigned int old_reg,
! 			  unsigned int new_reg)
  {
    /* Interrupt functions can only use registers that have already been
       saved by the prologue, even if they would normally be
--- 14340,14346 ----
  /* Return nonzero if register OLD_REG can be renamed to register NEW_REG.  */
  
  int
! avr_hard_regno_rename_ok (unsigned int old_reg, unsigned int new_reg)
  {
    /* Interrupt functions can only use registers that have already been
       saved by the prologue, even if they would normally be
*************** avr_hard_regno_rename_ok (unsigned int o
*** 13101,13107 ****
  
    if ((!reload_completed || frame_pointer_needed)
        && (old_reg == REG_Y || old_reg == REG_Y + 1
!           || new_reg == REG_Y || new_reg == REG_Y + 1))
      {
        return 0;
      }
--- 14356,14362 ----
  
    if ((!reload_completed || frame_pointer_needed)
        && (old_reg == REG_Y || old_reg == REG_Y + 1
! 	  || new_reg == REG_Y || new_reg == REG_Y + 1))
      {
        return 0;
      }
*************** avr_hard_regno_rename_ok (unsigned int o
*** 13117,13123 ****
     Operand 2: bit number.
     Operand 3: label to jump to if the test is true.  */
  
! const char*
  avr_out_sbxx_branch (rtx_insn *insn, rtx operands[])
  {
    enum rtx_code comp = GET_CODE (operands[0]);
--- 14372,14378 ----
     Operand 2: bit number.
     Operand 3: label to jump to if the test is true.  */
  
! const char *
  avr_out_sbxx_branch (rtx_insn *insn, rtx operands[])
  {
    enum rtx_code comp = GET_CODE (operands[0]);
*************** avr_out_sbxx_branch (rtx_insn *insn, rtx
*** 13142,13178 ****
      case SYMBOL_REF:
  
        if (low_io_address_operand (operands[1], QImode))
!         {
!           if (comp == EQ)
!             output_asm_insn ("sbis %i1,%2", operands);
!           else
!             output_asm_insn ("sbic %i1,%2", operands);
!         }
        else
!         {
  	  gcc_assert (io_address_operand (operands[1], QImode));
!           output_asm_insn ("in __tmp_reg__,%i1", operands);
!           if (comp == EQ)
!             output_asm_insn ("sbrs __tmp_reg__,%2", operands);
!           else
!             output_asm_insn ("sbrc __tmp_reg__,%2", operands);
!         }
  
        break; /* CONST_INT */
  
      case REG:
  
        if (comp == EQ)
!         output_asm_insn ("sbrs %T1%T2", operands);
        else
!         output_asm_insn ("sbrc %T1%T2", operands);
  
        break; /* REG */
!     }        /* switch */
  
    if (long_jump)
      return ("rjmp .+4" CR_TAB
!             "jmp %x3");
  
    if (!reverse)
      return "rjmp %x3";
--- 14397,14433 ----
      case SYMBOL_REF:
  
        if (low_io_address_operand (operands[1], QImode))
! 	{
! 	  if (comp == EQ)
! 	    output_asm_insn ("sbis %i1,%2", operands);
! 	  else
! 	    output_asm_insn ("sbic %i1,%2", operands);
! 	}
        else
! 	{
  	  gcc_assert (io_address_operand (operands[1], QImode));
! 	  output_asm_insn ("in __tmp_reg__,%i1", operands);
! 	  if (comp == EQ)
! 	    output_asm_insn ("sbrs __tmp_reg__,%2", operands);
! 	  else
! 	    output_asm_insn ("sbrc __tmp_reg__,%2", operands);
! 	}
  
        break; /* CONST_INT */
  
      case REG:
  
        if (comp == EQ)
! 	output_asm_insn ("sbrs %T1%T2", operands);
        else
! 	output_asm_insn ("sbrc %T1%T2", operands);
  
        break; /* REG */
!     } /* switch */
  
    if (long_jump)
      return ("rjmp .+4" CR_TAB
! 	    "jmp %x3");
  
    if (!reverse)
      return "rjmp %x3";
*************** avr_out_sbxx_branch (rtx_insn *insn, rtx
*** 13180,13185 ****
--- 14435,14441 ----
    return "";
  }
  
+ 
  /* Worker function for `TARGET_ASM_CONSTRUCTOR'.  */
  
  static void
*************** avr_asm_out_dtor (rtx symbol, int priori
*** 13200,13209 ****
  }
  
  
! /* Worker function for `TARGET_RETURN_IN_MEMORY'.  */
  
  static bool
! avr_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
  {
    HOST_WIDE_INT size = int_size_in_bytes (type);
    HOST_WIDE_INT ret_size_limit = AVR_TINY ? 4 : 8;
--- 14456,14465 ----
  }
  
  
! /* Implement `TARGET_RETURN_IN_MEMORY'.  */
  
  static bool
! avr_return_in_memory (const_tree type, const_tree /*fntype*/)
  {
    HOST_WIDE_INT size = int_size_in_bytes (type);
    HOST_WIDE_INT ret_size_limit = AVR_TINY ? 4 : 8;
*************** avr_reg_ok_for_pgm_addr (rtx reg, bool s
*** 13284,13291 ****
  /* Implement `TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P'.  */
  
  static bool
! avr_addr_space_legitimate_address_p (machine_mode mode, rtx x,
!                                      bool strict, addr_space_t as)
  {
    bool ok = false;
  
--- 14540,14547 ----
  /* Implement `TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P'.  */
  
  static bool
! avr_addr_space_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 				     addr_space_t as, code_helper = ERROR_MARK)
  {
    bool ok = false;
  
*************** avr_addr_space_legitimate_address_p (mac
*** 13305,13340 ****
      case ADDR_SPACE_FLASH5:
  
        switch (GET_CODE (x))
!         {
!         case REG:
!           ok = avr_reg_ok_for_pgm_addr (x, strict);
!           break;
  
!         case POST_INC:
!           ok = avr_reg_ok_for_pgm_addr (XEXP (x, 0), strict);
!           break;
  
!         default:
!           break;
!         }
  
        break; /* FLASH */
  
      case ADDR_SPACE_MEMX:
        if (REG_P (x))
!         ok = (!strict
!               && can_create_pseudo_p());
  
        if (LO_SUM == GET_CODE (x))
!         {
!           rtx hi = XEXP (x, 0);
!           rtx lo = XEXP (x, 1);
  
!           ok = (REG_P (hi)
!                 && (!strict || REGNO (hi) < FIRST_PSEUDO_REGISTER)
!                 && REG_P (lo)
!                 && REGNO (lo) == REG_Z);
!         }
  
        break; /* MEMX */
      }
--- 14561,14596 ----
      case ADDR_SPACE_FLASH5:
  
        switch (GET_CODE (x))
! 	{
! 	case REG:
! 	  ok = avr_reg_ok_for_pgm_addr (x, strict);
! 	  break;
  
! 	case POST_INC:
! 	  ok = avr_reg_ok_for_pgm_addr (XEXP (x, 0), strict);
! 	  break;
  
! 	default:
! 	  break;
! 	}
  
        break; /* FLASH */
  
      case ADDR_SPACE_MEMX:
        if (REG_P (x))
! 	ok = (!strict
! 	      && can_create_pseudo_p());
  
        if (LO_SUM == GET_CODE (x))
! 	{
! 	  rtx hi = XEXP (x, 0);
! 	  rtx lo = XEXP (x, 1);
  
! 	  ok = (REG_P (hi)
! 		&& (!strict || REGNO (hi) < FIRST_PSEUDO_REGISTER)
! 		&& REG_P (lo)
! 		&& REGNO (lo) == REG_Z);
! 	}
  
        break; /* MEMX */
      }
*************** avr_addr_space_legitimate_address_p (mac
*** 13342,13360 ****
    if (avr_log.legitimate_address_p)
      {
        avr_edump ("\n%?: ret=%b, mode=%m strict=%d "
!                  "reload_completed=%d reload_in_progress=%d %s:",
!                  ok, mode, strict, reload_completed, reload_in_progress,
!                  reg_renumber ? "(reg_renumber)" : "");
  
        if (GET_CODE (x) == PLUS
!           && REG_P (XEXP (x, 0))
!           && CONST_INT_P (XEXP (x, 1))
!           && IN_RANGE (INTVAL (XEXP (x, 1)), 0, MAX_LD_OFFSET (mode))
!           && reg_renumber)
!         {
!           avr_edump ("(r%d ---> r%d)", REGNO (XEXP (x, 0)),
!                      true_regnum (XEXP (x, 0)));
!         }
  
        avr_edump ("\n%r\n", x);
      }
--- 14598,14616 ----
    if (avr_log.legitimate_address_p)
      {
        avr_edump ("\n%?: ret=%b, mode=%m strict=%d "
! 		 "reload_completed=%d reload_in_progress=%d %s:",
! 		 ok, mode, strict, reload_completed, reload_in_progress,
! 		 reg_renumber ? "(reg_renumber)" : "");
  
        if (GET_CODE (x) == PLUS
! 	  && REG_P (XEXP (x, 0))
! 	  && CONST_INT_P (XEXP (x, 1))
! 	  && IN_RANGE (INTVAL (XEXP (x, 1)), 0, MAX_LD_OFFSET (mode))
! 	  && reg_renumber)
! 	{
! 	  avr_edump ("(r%d ---> r%d)", REGNO (XEXP (x, 0)),
! 		     true_regnum (XEXP (x, 0)));
! 	}
  
        avr_edump ("\n%r\n", x);
      }
*************** avr_addr_space_legitimate_address_p (mac
*** 13367,13373 ****
  
  static rtx
  avr_addr_space_legitimize_address (rtx x, rtx old_x,
!                                    machine_mode mode, addr_space_t as)
  {
    if (ADDR_SPACE_GENERIC_P (as))
      return avr_legitimize_address (x, old_x, mode);
--- 14623,14629 ----
  
  static rtx
  avr_addr_space_legitimize_address (rtx x, rtx old_x,
! 				   machine_mode mode, addr_space_t as)
  {
    if (ADDR_SPACE_GENERIC_P (as))
      return avr_legitimize_address (x, old_x, mode);
*************** avr_addr_space_convert (rtx src, tree ty
*** 13391,13433 ****
  
    if (avr_log.progmem)
      avr_edump ("\n%!: op = %r\nfrom = %t\nto = %t\n",
!                src, type_from, type_to);
  
    /* Up-casting from 16-bit to 24-bit pointer.  */
  
    if (as_from != ADDR_SPACE_MEMX
        && as_to == ADDR_SPACE_MEMX)
      {
-       int msb;
        rtx sym = src;
        rtx reg = gen_reg_rtx (PSImode);
  
        while (CONST == GET_CODE (sym) || PLUS == GET_CODE (sym))
!         sym = XEXP (sym, 0);
  
        /* Look at symbol flags:  avr_encode_section_info set the flags
!          also if attribute progmem was seen so that we get the right
!          promotion for, e.g. PSTR-like strings that reside in generic space
!          but are located in flash.  In that case we patch the incoming
!          address space.  */
  
        if (SYMBOL_REF_P (sym)
!           && ADDR_SPACE_FLASH == AVR_SYMBOL_GET_ADDR_SPACE (sym))
!         {
!           as_from = ADDR_SPACE_FLASH;
!         }
  
        /* Linearize memory: RAM has bit 23 set.  */
  
!       msb = ADDR_SPACE_GENERIC_P (as_from)
!         ? 0x80
!         : avr_addrspace[as_from].segment;
  
        src = force_reg (Pmode, src);
  
        emit_insn (msb == 0
!                  ? gen_zero_extendhipsi2 (reg, src)
!                  : gen_n_extendhipsi2 (reg, gen_int_mode (msb, QImode), src));
  
        return reg;
      }
--- 14647,14688 ----
  
    if (avr_log.progmem)
      avr_edump ("\n%!: op = %r\nfrom = %t\nto = %t\n",
! 	       src, type_from, type_to);
  
    /* Up-casting from 16-bit to 24-bit pointer.  */
  
    if (as_from != ADDR_SPACE_MEMX
        && as_to == ADDR_SPACE_MEMX)
      {
        rtx sym = src;
        rtx reg = gen_reg_rtx (PSImode);
  
        while (CONST == GET_CODE (sym) || PLUS == GET_CODE (sym))
! 	sym = XEXP (sym, 0);
  
        /* Look at symbol flags:  avr_encode_section_info set the flags
! 	 also if attribute progmem was seen so that we get the right
! 	 promotion for, e.g. PSTR-like strings that reside in generic space
! 	 but are located in flash.  In that case we patch the incoming
! 	 address space.  */
  
        if (SYMBOL_REF_P (sym)
! 	  && ADDR_SPACE_FLASH == AVR_SYMBOL_GET_ADDR_SPACE (sym))
! 	{
! 	  as_from = ADDR_SPACE_FLASH;
! 	}
  
        /* Linearize memory: RAM has bit 23 set.  */
  
!       int msb = ADDR_SPACE_GENERIC_P (as_from)
! 	? 0x80
! 	: avr_addrspace[as_from].segment;
  
        src = force_reg (Pmode, src);
  
        emit_insn (msb == 0
! 		 ? gen_zero_extendhipsi2 (reg, src)
! 		 : gen_n_extendhipsi2 (reg, gen_int_mode (msb, QImode), src));
  
        return reg;
      }
*************** avr_addr_space_convert (rtx src, tree ty
*** 13442,13448 ****
        src = force_reg (PSImode, src);
  
        emit_move_insn (new_src,
!                       simplify_gen_subreg (Pmode, src, PSImode, 0));
        return new_src;
      }
  
--- 14697,14703 ----
        src = force_reg (PSImode, src);
  
        emit_move_insn (new_src,
! 		      simplify_gen_subreg (Pmode, src, PSImode, 0));
        return new_src;
      }
  
*************** avr_addr_space_convert (rtx src, tree ty
*** 13453,13460 ****
  /* Implement `TARGET_ADDR_SPACE_SUBSET_P'.  */
  
  static bool
! avr_addr_space_subset_p (addr_space_t subset ATTRIBUTE_UNUSED,
!                          addr_space_t superset ATTRIBUTE_UNUSED)
  {
    /* Allow any kind of pointer mess.  */
  
--- 14708,14714 ----
  /* Implement `TARGET_ADDR_SPACE_SUBSET_P'.  */
  
  static bool
! avr_addr_space_subset_p (addr_space_t /*subset*/, addr_space_t /*superset*/)
  {
    /* Allow any kind of pointer mess.  */
  
*************** avr_convert_to_type (tree type, tree exp
*** 13472,13494 ****
       provided -Waddr-space-convert is on.
  
       FIXME: Filter out cases where the target object is known to
!             be located in the right memory, like in
  
!                 (const __flash*) PSTR ("text")
  
!             Also try to distinguish between explicit casts requested by
!             the user and implicit casts like
  
!                 void f (const __flash char*);
  
!                 void g (const char *p)
!                 {
!                     f ((const __flash*) p);
!                 }
  
!             under the assumption that an explicit casts means that the user
!             knows what he is doing, e.g. interface with PSTR or old style
!             code with progmem and pgm_read_xxx.
    */
  
    if (avr_warn_addr_space_convert
--- 14726,14748 ----
       provided -Waddr-space-convert is on.
  
       FIXME: Filter out cases where the target object is known to
! 	    be located in the right memory, like in
  
! 		(const __flash*) PSTR ("text")
  
! 	    Also try to distinguish between explicit casts requested by
! 	    the user and implicit casts like
  
! 		void f (const __flash char*);
  
! 		void g (const char *p)
! 		{
! 		    f ((const __flash*) p);
! 		}
  
! 	    under the assumption that an explicit casts means that the user
! 	    knows what he is doing, e.g. interface with PSTR or old style
! 	    code with progmem and pgm_read_xxx.
    */
  
    if (avr_warn_addr_space_convert
*************** avr_convert_to_type (tree type, tree exp
*** 13500,13521 ****
        addr_space_t as_new = TYPE_ADDR_SPACE (TREE_TYPE (type));
  
        if (avr_log.progmem)
!         avr_edump ("%?: type = %t\nexpr = %t\n\n", type, expr);
  
        if (as_new != ADDR_SPACE_MEMX
!           && as_new != as_old)
!         {
!           location_t loc = EXPR_LOCATION (expr);
!           const char *name_old = avr_addrspace[as_old].name;
!           const char *name_new = avr_addrspace[as_new].name;
  
!           warning (OPT_Waddr_space_convert,
!                    "conversion from address space %qs to address space %qs",
!                    ADDR_SPACE_GENERIC_P (as_old) ? "generic" : name_old,
!                    ADDR_SPACE_GENERIC_P (as_new) ? "generic" : name_new);
  
!           return fold_build1_loc (loc, ADDR_SPACE_CONVERT_EXPR, type, expr);
!         }
      }
  
    return NULL_TREE;
--- 14754,14775 ----
        addr_space_t as_new = TYPE_ADDR_SPACE (TREE_TYPE (type));
  
        if (avr_log.progmem)
! 	avr_edump ("%?: type = %t\nexpr = %t\n\n", type, expr);
  
        if (as_new != ADDR_SPACE_MEMX
! 	  && as_new != as_old)
! 	{
! 	  location_t loc = EXPR_LOCATION (expr);
! 	  const char *name_old = avr_addrspace[as_old].name;
! 	  const char *name_new = avr_addrspace[as_new].name;
  
! 	  warning (OPT_Waddr_space_convert,
! 		   "conversion from address space %qs to address space %qs",
! 		   ADDR_SPACE_GENERIC_P (as_old) ? "generic" : name_old,
! 		   ADDR_SPACE_GENERIC_P (as_new) ? "generic" : name_new);
  
! 	  return fold_build1_loc (loc, ADDR_SPACE_CONVERT_EXPR, type, expr);
! 	}
      }
  
    return NULL_TREE;
*************** avr_convert_to_type (tree type, tree exp
*** 13523,13529 ****
  
  
  /* Implement `TARGET_LEGITIMATE_COMBINED_INSN'.  */
- 
  /* PR78883: Filter out paradoxical SUBREGs of MEM which are not handled
     properly by following passes.  As INSN_SCHEDULING is off and hence
     general_operand accepts such expressions, ditch them now.  */
--- 14777,14782 ----
*************** avr_legitimate_combined_insn (rtx_insn *
*** 13538,13549 ****
        const_rtx op = *iter;
  
        if (SUBREG_P (op)
!           && MEM_P (SUBREG_REG (op))
!           && (GET_MODE_SIZE (GET_MODE (op))
!               > GET_MODE_SIZE (GET_MODE (SUBREG_REG (op)))))
!         {
!           return false;
!         }
      }
  
    return true;
--- 14791,14802 ----
        const_rtx op = *iter;
  
        if (SUBREG_P (op)
! 	  && MEM_P (SUBREG_REG (op))
! 	  && (GET_MODE_SIZE (GET_MODE (op))
! 	      > GET_MODE_SIZE (GET_MODE (SUBREG_REG (op)))))
! 	{
! 	  return false;
! 	}
      }
  
    return true;
*************** avr_legitimate_combined_insn (rtx_insn *
*** 13561,13567 ****
     replace OP[n] with a newly created pseudo register
  
     HREG == 0:  Also emit a move insn that copies the contents of that
!                hard register into the new pseudo.
  
     HREG != 0:  Also set HREG[n] to the hard register.  */
  
--- 14814,14820 ----
     replace OP[n] with a newly created pseudo register
  
     HREG == 0:  Also emit a move insn that copies the contents of that
! 	       hard register into the new pseudo.
  
     HREG != 0:  Also set HREG[n] to the hard register.  */
  
*************** avr_fix_operands (rtx *op, rtx *hreg, un
*** 13573,13595 ****
        rtx reg = *op;
  
        if (hreg)
!         *hreg = NULL_RTX;
  
        if ((opmask & 1)
!           && REG_P (reg)
!           && REGNO (reg) < FIRST_PSEUDO_REGISTER
!           // This hard-reg overlaps other prohibited hard regs?
!           && (rmask & regmask (GET_MODE (reg), REGNO (reg))))
!         {
!           *op = gen_reg_rtx (GET_MODE (reg));
!           if (hreg == NULL)
!             emit_move_insn (*op, reg);
!           else
!             *hreg = reg;
!         }
  
        if (hreg)
!         hreg++;
      }
  }
  
--- 14826,14848 ----
        rtx reg = *op;
  
        if (hreg)
! 	*hreg = NULL_RTX;
  
        if ((opmask & 1)
! 	  && REG_P (reg)
! 	  && REGNO (reg) < FIRST_PSEUDO_REGISTER
! 	  // This hard-reg overlaps other prohibited hard regs?
! 	  && (rmask & regmask (GET_MODE (reg), REGNO (reg))))
! 	{
! 	  *op = gen_reg_rtx (GET_MODE (reg));
! 	  if (hreg == NULL)
! 	    emit_move_insn (*op, reg);
! 	  else
! 	    *hreg = reg;
! 	}
  
        if (hreg)
! 	hreg++;
      }
  }
  
*************** avr_move_fixed_operands (rtx *op, rtx *h
*** 13610,13616 ****
  {
    for (; mask; mask >>= 1, op++, hreg++)
      if ((mask & 1)
!         && *hreg)
        emit_move_insn (*hreg, *op);
  
    return true;
--- 14863,14869 ----
  {
    for (; mask; mask >>= 1, op++, hreg++)
      if ((mask & 1)
! 	&& *hreg)
        emit_move_insn (*hreg, *op);
  
    return true;
*************** avr_move_fixed_operands (rtx *op, rtx *h
*** 13632,13638 ****
  
  bool
  avr_emit3_fix_outputs (rtx (*gen)(rtx,rtx,rtx), rtx *op,
!                        unsigned opmask, unsigned rmask)
  {
    const int n = 3;
    rtx hreg[n];
--- 14885,14891 ----
  
  bool
  avr_emit3_fix_outputs (rtx (*gen)(rtx,rtx,rtx), rtx *op,
! 		       unsigned opmask, unsigned rmask)
  {
    const int n = 3;
    rtx hreg[n];
*************** avr_emit3_fix_outputs (rtx (*gen)(rtx,rt
*** 13670,13679 ****
  bool
  avr_emit_cpymemhi (rtx *xop)
  {
-   HOST_WIDE_INT count;
    machine_mode loop_mode;
    addr_space_t as = MEM_ADDR_SPACE (xop[1]);
!   rtx loop_reg, addr1, a_src, a_dest, insn, xas;
    rtx a_hi8 = NULL_RTX;
  
    if (avr_mem_flash_p (xop[0]))
--- 14923,14931 ----
  bool
  avr_emit_cpymemhi (rtx *xop)
  {
    machine_mode loop_mode;
    addr_space_t as = MEM_ADDR_SPACE (xop[1]);
!   rtx loop_reg, addr1, insn;
    rtx a_hi8 = NULL_RTX;
  
    if (avr_mem_flash_p (xop[0]))
*************** avr_emit_cpymemhi (rtx *xop)
*** 13682,13693 ****
    if (!CONST_INT_P (xop[2]))
      return false;
  
!   count = INTVAL (xop[2]);
    if (count <= 0)
      return false;
  
!   a_src  = XEXP (xop[1], 0);
!   a_dest = XEXP (xop[0], 0);
  
    if (PSImode == GET_MODE (a_src))
      {
--- 14934,14945 ----
    if (!CONST_INT_P (xop[2]))
      return false;
  
!   HOST_WIDE_INT count = INTVAL (xop[2]);
    if (count <= 0)
      return false;
  
!   rtx a_src  = XEXP (xop[1], 0);
!   rtx a_dest = XEXP (xop[0], 0);
  
    if (PSImode == GET_MODE (a_src))
      {
*************** avr_emit_cpymemhi (rtx *xop)
*** 13705,13719 ****
        int segment = avr_addrspace[as].segment;
  
        if (segment
!           && avr_n_flash > 1)
!         {
!           a_hi8 = GEN_INT (segment);
!           emit_move_insn (rampz_rtx, a_hi8 = copy_to_mode_reg (QImode, a_hi8));
!         }
        else if (!ADDR_SPACE_GENERIC_P (as))
!         {
!           as = ADDR_SPACE_FLASH;
!         }
  
        addr1 = a_src;
  
--- 14957,14971 ----
        int segment = avr_addrspace[as].segment;
  
        if (segment
! 	  && avr_n_flash > 1)
! 	{
! 	  a_hi8 = GEN_INT (segment);
! 	  emit_move_insn (rampz_rtx, a_hi8 = copy_to_mode_reg (QImode, a_hi8));
! 	}
        else if (!ADDR_SPACE_GENERIC_P (as))
! 	{
! 	  as = ADDR_SPACE_FLASH;
! 	}
  
        addr1 = a_src;
  
*************** avr_emit_cpymemhi (rtx *xop)
*** 13721,13758 ****
        loop_reg = copy_to_mode_reg (loop_mode, gen_int_mode (count, loop_mode));
      }
  
!   xas = GEN_INT (as);
  
    /* FIXME: Register allocator might come up with spill fails if it is left
!         on its own.  Thus, we allocate the pointer registers by hand:
!         Z = source address
!         X = destination address  */
  
    emit_move_insn (lpm_addr_reg_rtx, addr1);
    emit_move_insn (gen_rtx_REG (HImode, REG_X), a_dest);
  
    /* FIXME: Register allocator does a bad job and might spill address
!         register(s) inside the loop leading to additional move instruction
!         to/from stack which could clobber tmp_reg.  Thus, do *not* emit
!         load and store as separate insns.  Instead, we perform the copy
!         by means of one monolithic insn.  */
  
    gcc_assert (TMP_REGNO == LPM_REGNO);
  
    if (as != ADDR_SPACE_MEMX)
      {
        /* Load instruction ([E]LPM or LD) is known at compile time:
!          Do the copy-loop inline.  */
  
        rtx (*fun) (rtx, rtx, rtx)
!         = QImode == loop_mode ? gen_cpymem_qi : gen_cpymem_hi;
  
        insn = fun (xas, loop_reg, loop_reg);
      }
    else
      {
        rtx (*fun) (rtx, rtx)
!         = QImode == loop_mode ? gen_cpymemx_qi : gen_cpymemx_hi;
  
        emit_move_insn (gen_rtx_REG (QImode, 23), a_hi8);
  
--- 14973,15010 ----
        loop_reg = copy_to_mode_reg (loop_mode, gen_int_mode (count, loop_mode));
      }
  
!   rtx xas = GEN_INT (as);
  
    /* FIXME: Register allocator might come up with spill fails if it is left
! 	on its own.  Thus, we allocate the pointer registers by hand:
! 	Z = source address
! 	X = destination address  */
  
    emit_move_insn (lpm_addr_reg_rtx, addr1);
    emit_move_insn (gen_rtx_REG (HImode, REG_X), a_dest);
  
    /* FIXME: Register allocator does a bad job and might spill address
! 	register(s) inside the loop leading to additional move instruction
! 	to/from stack which could clobber tmp_reg.  Thus, do *not* emit
! 	load and store as separate insns.  Instead, we perform the copy
! 	by means of one monolithic insn.  */
  
    gcc_assert (TMP_REGNO == LPM_REGNO);
  
    if (as != ADDR_SPACE_MEMX)
      {
        /* Load instruction ([E]LPM or LD) is known at compile time:
! 	 Do the copy-loop inline.  */
  
        rtx (*fun) (rtx, rtx, rtx)
! 	= QImode == loop_mode ? gen_cpymem_qi : gen_cpymem_hi;
  
        insn = fun (xas, loop_reg, loop_reg);
      }
    else
      {
        rtx (*fun) (rtx, rtx)
! 	= QImode == loop_mode ? gen_cpymemx_qi : gen_cpymemx_hi;
  
        emit_move_insn (gen_rtx_REG (QImode, 23), a_hi8);
  
*************** avr_emit_cpymemhi (rtx *xop)
*** 13773,13793 ****
         X      : Destination address
  */
  
! const char*
! avr_out_cpymem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
  {
    addr_space_t as = (addr_space_t) INTVAL (op[0]);
    machine_mode loop_mode = GET_MODE (op[1]);
!   bool sbiw_p = test_hard_reg_class (ADDW_REGS, op[1]);
!   rtx xop[3];
  
    if (plen)
      *plen = 0;
  
-   xop[0] = op[0];
-   xop[1] = op[1];
-   xop[2] = tmp_reg_rtx;
- 
    /* Loop label */
  
    avr_asm_len ("0:", xop, plen, 0);
--- 15025,15041 ----
         X      : Destination address
  */
  
! const char *
! avr_out_cpymem (rtx_insn * /*insn*/, rtx *op, int *plen)
  {
    addr_space_t as = (addr_space_t) INTVAL (op[0]);
    machine_mode loop_mode = GET_MODE (op[1]);
!   bool sbiw_p = avr_adiw_reg_p (op[1]);
!   rtx xop[3] = { op[0], op[1], tmp_reg_rtx };
  
    if (plen)
      *plen = 0;
  
    /* Loop label */
  
    avr_asm_len ("0:", xop, plen, 0);
*************** avr_out_cpymem (rtx_insn *insn ATTRIBUTE
*** 13807,13816 ****
      case ADDR_SPACE_FLASH:
  
        if (AVR_HAVE_LPMX)
!         avr_asm_len ("lpm %2,Z+", xop, plen, 1);
        else
!         avr_asm_len ("lpm" CR_TAB
!                      "adiw r30,1", xop, plen, 2);
        break;
  
      case ADDR_SPACE_FLASH1:
--- 15055,15064 ----
      case ADDR_SPACE_FLASH:
  
        if (AVR_HAVE_LPMX)
! 	avr_asm_len ("lpm %2,Z+", xop, plen, 1);
        else
! 	avr_asm_len ("lpm" CR_TAB
! 		     "adiw r30,1", xop, plen, 2);
        break;
  
      case ADDR_SPACE_FLASH1:
*************** avr_out_cpymem (rtx_insn *insn ATTRIBUTE
*** 13820,13829 ****
      case ADDR_SPACE_FLASH5:
  
        if (AVR_HAVE_ELPMX)
!         avr_asm_len ("elpm %2,Z+", xop, plen, 1);
        else
!         avr_asm_len ("elpm" CR_TAB
!                      "adiw r30,1", xop, plen, 2);
        break;
      }
  
--- 15068,15077 ----
      case ADDR_SPACE_FLASH5:
  
        if (AVR_HAVE_ELPMX)
! 	avr_asm_len ("elpm %2,Z+", xop, plen, 1);
        else
! 	avr_asm_len ("elpm" CR_TAB
! 		     "adiw r30,1", xop, plen, 2);
        break;
      }
  
*************** avr_out_cpymem (rtx_insn *insn ATTRIBUTE
*** 13844,13850 ****
    else
      {
        avr_asm_len ("subi %A1,1" CR_TAB
!                    "sbci %B1,0", xop, plen, 2);
      }
  
    /* Loop until zero */
--- 15092,15098 ----
    else
      {
        avr_asm_len ("subi %A1,1" CR_TAB
! 		   "sbci %B1,0", xop, plen, 2);
      }
  
    /* Loop until zero */
*************** avr_expand_delay_cycles (rtx operands0)
*** 13876,13882 ****
        loop_count = ((cycles - 9) / 6) + 1;
        cycles_used = ((loop_count - 1) * 6) + 9;
        emit_insn (gen_delay_cycles_4 (gen_int_mode (loop_count, SImode),
!                                      avr_mem_clobber()));
        cycles -= cycles_used;
      }
  
--- 15124,15130 ----
        loop_count = ((cycles - 9) / 6) + 1;
        cycles_used = ((loop_count - 1) * 6) + 9;
        emit_insn (gen_delay_cycles_4 (gen_int_mode (loop_count, SImode),
! 				     avr_mem_clobber()));
        cycles -= cycles_used;
      }
  
*************** avr_expand_delay_cycles (rtx operands0)
*** 13884,13893 ****
      {
        loop_count = ((cycles - 7) / 5) + 1;
        if (loop_count > 0xFFFFFF)
!         loop_count = 0xFFFFFF;
        cycles_used = ((loop_count - 1) * 5) + 7;
        emit_insn (gen_delay_cycles_3 (gen_int_mode (loop_count, SImode),
!                                      avr_mem_clobber()));
        cycles -= cycles_used;
      }
  
--- 15132,15141 ----
      {
        loop_count = ((cycles - 7) / 5) + 1;
        if (loop_count > 0xFFFFFF)
! 	loop_count = 0xFFFFFF;
        cycles_used = ((loop_count - 1) * 5) + 7;
        emit_insn (gen_delay_cycles_3 (gen_int_mode (loop_count, SImode),
! 				     avr_mem_clobber()));
        cycles -= cycles_used;
      }
  
*************** avr_expand_delay_cycles (rtx operands0)
*** 13895,13904 ****
      {
        loop_count = ((cycles - 5) / 4) + 1;
        if (loop_count > 0xFFFF)
!         loop_count = 0xFFFF;
        cycles_used = ((loop_count - 1) * 4) + 5;
        emit_insn (gen_delay_cycles_2 (gen_int_mode (loop_count, HImode),
!                                      avr_mem_clobber()));
        cycles -= cycles_used;
      }
  
--- 15143,15152 ----
      {
        loop_count = ((cycles - 5) / 4) + 1;
        if (loop_count > 0xFFFF)
! 	loop_count = 0xFFFF;
        cycles_used = ((loop_count - 1) * 4) + 5;
        emit_insn (gen_delay_cycles_2 (gen_int_mode (loop_count, HImode),
! 				     avr_mem_clobber()));
        cycles -= cycles_used;
      }
  
*************** avr_expand_delay_cycles (rtx operands0)
*** 13906,13915 ****
      {
        loop_count = cycles / 3;
        if (loop_count > 255)
!         loop_count = 255;
        cycles_used = loop_count * 3;
        emit_insn (gen_delay_cycles_1 (gen_int_mode (loop_count, QImode),
!                                      avr_mem_clobber()));
        cycles -= cycles_used;
      }
  
--- 15154,15163 ----
      {
        loop_count = cycles / 3;
        if (loop_count > 255)
! 	loop_count = 255;
        cycles_used = loop_count * 3;
        emit_insn (gen_delay_cycles_1 (gen_int_mode (loop_count, QImode),
! 				     avr_mem_clobber()));
        cycles -= cycles_used;
      }
  
*************** avr_map_metric (unsigned int a, int mode
*** 13978,13994 ****
        unsigned ai = avr_map (a, i);
  
        if (mode == MAP_FIXED_0_7)
!         metric += ai == i;
        else if (mode == MAP_NONFIXED_0_7)
!         metric += ai < 8 && ai != i;
        else if (mode == MAP_MASK_FIXED_0_7)
!         metric |= ((unsigned) (ai == i)) << i;
        else if (mode == MAP_PREIMAGE_0_7)
!         metric += ai < 8;
        else if (mode == MAP_MASK_PREIMAGE_F)
!         metric |= ((unsigned) (ai == 0xf)) << i;
        else
!         gcc_unreachable();
      }
  
    return metric;
--- 15226,15242 ----
        unsigned ai = avr_map (a, i);
  
        if (mode == MAP_FIXED_0_7)
! 	metric += ai == i;
        else if (mode == MAP_NONFIXED_0_7)
! 	metric += ai < 8 && ai != i;
        else if (mode == MAP_MASK_FIXED_0_7)
! 	metric |= ((unsigned) (ai == i)) << i;
        else if (mode == MAP_PREIMAGE_0_7)
! 	metric += ai < 8;
        else if (mode == MAP_MASK_PREIMAGE_F)
! 	metric |= ((unsigned) (ai == 0xf)) << i;
        else
! 	gcc_unreachable();
      }
  
    return metric;
*************** avr_map_decompose (unsigned int f, const
*** 14083,14096 ****
        int x = avr_map (f, i);
  
        if (x <= 7)
!         {
!           x = avr_map (ginv, x);
  
!           /* The bit is no element of the image of G: no avail (cost = -1)  */
  
!           if (x > 7)
!             return f_ginv;
!         }
  
        f_ginv.map = (f_ginv.map << 4) + x;
      }
--- 15331,15344 ----
        int x = avr_map (f, i);
  
        if (x <= 7)
! 	{
! 	  x = avr_map (ginv, x);
  
! 	  /* The bit is no element of the image of G: no avail (cost = -1)  */
  
! 	  if (x > 7)
! 	    return f_ginv;
! 	}
  
        f_ginv.map = (f_ginv.map << 4) + x;
      }
*************** avr_map_decompose (unsigned int f, const
*** 14110,14121 ****
        rtx xop[4];
  
        /* Get the cost of the insn by calling the output worker with some
!          fake values.  Mimic effect of reloading xop[3]: Unused operands
!          are mapped to 0 and used operands are reloaded to xop[0].  */
  
!       xop[0] = all_regs_rtx[24];
        xop[1] = gen_int_mode (f_ginv.map, SImode);
!       xop[2] = all_regs_rtx[25];
        xop[3] = val_used_p ? xop[0] : const0_rtx;
  
        avr_out_insert_bits (xop, &f_ginv.cost);
--- 15358,15369 ----
        rtx xop[4];
  
        /* Get the cost of the insn by calling the output worker with some
! 	 fake values.  Mimic effect of reloading xop[3]: Unused operands
! 	 are mapped to 0 and used operands are reloaded to xop[0].  */
  
!       xop[0] = all_regs_rtx[REG_24];
        xop[1] = gen_int_mode (f_ginv.map, SImode);
!       xop[2] = all_regs_rtx[REG_25];
        xop[3] = val_used_p ? xop[0] : const0_rtx;
  
        avr_out_insert_bits (xop, &f_ginv.cost);
*************** avr_move_bits (rtx *xop, unsigned int ma
*** 14151,14178 ****
    for (int b = 0; b < 8; b++)
      for (int bit_dest = 0; bit_dest < 8; bit_dest++)
        {
!         int bit_src = avr_map (map, bit_dest);
  
!         if (b != bit_src
!             || bit_src >= 8
!             /* Same position: No need to copy as requested by FIXP_P.  */
!             || (bit_dest == bit_src && !fixp_p))
!           continue;
  
!         if (t_bit_src != bit_src)
!           {
!             /* Source bit is not yet in T: Store it to T.  */
  
!             t_bit_src = bit_src;
  
!             xop[3] = GEN_INT (bit_src);
!             avr_asm_len ("bst %T1%T3", xop, plen, 1);
!           }
  
!         /* Load destination bit with T.  */
  
!         xop[3] = GEN_INT (bit_dest);
!         avr_asm_len ("bld %T0%T3", xop, plen, 1);
        }
  }
  
--- 15399,15426 ----
    for (int b = 0; b < 8; b++)
      for (int bit_dest = 0; bit_dest < 8; bit_dest++)
        {
! 	int bit_src = avr_map (map, bit_dest);
  
! 	if (b != bit_src
! 	    || bit_src >= 8
! 	    /* Same position: No need to copy as requested by FIXP_P.  */
! 	    || (bit_dest == bit_src && !fixp_p))
! 	  continue;
  
! 	if (t_bit_src != bit_src)
! 	  {
! 	    /* Source bit is not yet in T: Store it to T.  */
  
! 	    t_bit_src = bit_src;
  
! 	    xop[3] = GEN_INT (bit_src);
! 	    avr_asm_len ("bst %T1%T3", xop, plen, 1);
! 	  }
  
! 	/* Load destination bit with T.  */
  
! 	xop[3] = GEN_INT (bit_dest);
! 	avr_asm_len ("bld %T0%T3", xop, plen, 1);
        }
  }
  
*************** avr_move_bits (rtx *xop, unsigned int ma
*** 14182,14199 ****
  
     OP[0]:  Result
     OP[1]:  The mapping composed of nibbles. If nibble no. N is
!            0:   Bit N of result is copied from bit OP[2].0
!            ...  ...
!            7:   Bit N of result is copied from bit OP[2].7
!            0xf: Bit N of result is copied from bit OP[3].N
     OP[2]:  Bits to be inserted
     OP[3]:  Target value  */
  
! const char*
  avr_out_insert_bits (rtx *op, int *plen)
  {
    unsigned int map = UINTVAL (op[1]) & GET_MODE_MASK (SImode);
-   unsigned mask_fixed;
    bool fixp_p = true;
    rtx xop[4];
  
--- 15430,15446 ----
  
     OP[0]:  Result
     OP[1]:  The mapping composed of nibbles. If nibble no. N is
! 	   0:   Bit N of result is copied from bit OP[2].0
! 	   ...  ...
! 	   7:   Bit N of result is copied from bit OP[2].7
! 	   0xf: Bit N of result is copied from bit OP[3].N
     OP[2]:  Bits to be inserted
     OP[3]:  Target value  */
  
! const char *
  avr_out_insert_bits (rtx *op, int *plen)
  {
    unsigned int map = UINTVAL (op[1]) & GET_MODE_MASK (SImode);
    bool fixp_p = true;
    rtx xop[4];
  
*************** avr_out_insert_bits (rtx *op, int *plen)
*** 14211,14217 ****
    /* If MAP has fixed points it might be better to initialize the result
       with the bits to be inserted instead of moving all bits by hand.  */
  
!   mask_fixed = avr_map_metric (map, MAP_MASK_FIXED_0_7);
  
    if (REGNO (xop[0]) == REGNO (xop[1]))
      {
--- 15458,15464 ----
    /* If MAP has fixed points it might be better to initialize the result
       with the bits to be inserted instead of moving all bits by hand.  */
  
!   unsigned mask_fixed = avr_map_metric (map, MAP_MASK_FIXED_0_7);
  
    if (REGNO (xop[0]) == REGNO (xop[1]))
      {
*************** avr_out_insert_bits (rtx *op, int *plen)
*** 14231,14260 ****
        gcc_assert (REG_P (xop[2]));
  
        /* Get the code size of the bit insertions; once with all bits
!          moved and once with fixed points omitted.  */
  
        avr_move_bits (xop, map, true, &n_fix);
        avr_move_bits (xop, map, false, &n_nofix);
  
        if (fixp_p && n_fix - n_nofix > 3)
!         {
!           xop[3] = gen_int_mode (~mask_fixed, QImode);
  
!           avr_asm_len ("eor %0,%1"   CR_TAB
!                        "andi %0,%3"  CR_TAB
!                        "eor %0,%1", xop, plen, 3);
!           fixp_p = false;
!         }
      }
    else
      {
        /* XOP[2] is unused */
  
        if (fixp_p && mask_fixed)
!         {
!           avr_asm_len ("mov %0,%1", xop, plen, 1);
!           fixp_p = false;
!         }
      }
  
    /* Move/insert remaining bits.  */
--- 15478,15507 ----
        gcc_assert (REG_P (xop[2]));
  
        /* Get the code size of the bit insertions; once with all bits
! 	 moved and once with fixed points omitted.  */
  
        avr_move_bits (xop, map, true, &n_fix);
        avr_move_bits (xop, map, false, &n_nofix);
  
        if (fixp_p && n_fix - n_nofix > 3)
! 	{
! 	  xop[3] = gen_int_mode (~mask_fixed, QImode);
  
! 	  avr_asm_len ("eor %0,%1"   CR_TAB
! 		       "andi %0,%3"  CR_TAB
! 		       "eor %0,%1", xop, plen, 3);
! 	  fixp_p = false;
! 	}
      }
    else
      {
        /* XOP[2] is unused */
  
        if (fixp_p && mask_fixed)
! 	{
! 	  avr_asm_len ("mov %0,%1", xop, plen, 1);
! 	  fixp_p = false;
! 	}
      }
  
    /* Move/insert remaining bits.  */
*************** avr_bdesc[AVR_BUILTIN_COUNT] =
*** 14302,14308 ****
  /* Implement `TARGET_BUILTIN_DECL'.  */
  
  static tree
! avr_builtin_decl (unsigned id, bool initialize_p ATTRIBUTE_UNUSED)
  {
    if (id < AVR_BUILTIN_COUNT)
      return avr_bdesc[id].fndecl;
--- 15549,15555 ----
  /* Implement `TARGET_BUILTIN_DECL'.  */
  
  static tree
! avr_builtin_decl (unsigned id, bool /*initialize_p*/)
  {
    if (id < AVR_BUILTIN_COUNT)
      return avr_bdesc[id].fndecl;
*************** avr_init_builtins (void)
*** 14330,14378 ****
  {
    tree void_ftype_void
      = build_function_type_list (void_type_node, NULL_TREE);
!   tree uchar_ftype_uchar
!     = build_function_type_list (unsigned_char_type_node,
!                                 unsigned_char_type_node,
!                                 NULL_TREE);
!   tree uint_ftype_uchar_uchar
!     = build_function_type_list (unsigned_type_node,
!                                 unsigned_char_type_node,
!                                 unsigned_char_type_node,
!                                 NULL_TREE);
!   tree int_ftype_char_char
!     = build_function_type_list (integer_type_node,
!                                 char_type_node,
!                                 char_type_node,
!                                 NULL_TREE);
!   tree int_ftype_char_uchar
!     = build_function_type_list (integer_type_node,
!                                 char_type_node,
!                                 unsigned_char_type_node,
!                                 NULL_TREE);
!   tree void_ftype_ulong
      = build_function_type_list (void_type_node,
!                                 long_unsigned_type_node,
!                                 NULL_TREE);
  
!   tree uchar_ftype_ulong_uchar_uchar
!     = build_function_type_list (unsigned_char_type_node,
!                                 long_unsigned_type_node,
!                                 unsigned_char_type_node,
!                                 unsigned_char_type_node,
!                                 NULL_TREE);
  
    tree const_memx_void_node
      = build_qualified_type (void_type_node,
!                             TYPE_QUAL_CONST
!                             | ENCODE_QUAL_ADDR_SPACE (ADDR_SPACE_MEMX));
  
    tree const_memx_ptr_type_node
      = build_pointer_type_for_mode (const_memx_void_node, PSImode, false);
  
!   tree char_ftype_const_memx_ptr
!     = build_function_type_list (char_type_node,
!                                 const_memx_ptr_type_node,
!                                 NULL);
  
  #define ITYP(T)                                                         \
    lang_hooks.types.type_for_size (TYPE_PRECISION (T), TYPE_UNSIGNED (T))
--- 15577,15625 ----
  {
    tree void_ftype_void
      = build_function_type_list (void_type_node, NULL_TREE);
!   tree uintQI_ftype_uintQI
!     = build_function_type_list (unsigned_intQI_type_node,
! 				unsigned_intQI_type_node,
! 				NULL_TREE);
!   tree uintHI_ftype_uintQI_uintQI
!     = build_function_type_list (unsigned_intHI_type_node,
! 				unsigned_intQI_type_node,
! 				unsigned_intQI_type_node,
! 				NULL_TREE);
!   tree intHI_ftype_intQI_intQI
!     = build_function_type_list (intHI_type_node,
! 				intQI_type_node,
! 				intQI_type_node,
! 				NULL_TREE);
!   tree intHI_ftype_intQI_uintQI
!     = build_function_type_list (intHI_type_node,
! 				intQI_type_node,
! 				unsigned_intQI_type_node,
! 				NULL_TREE);
!   tree void_ftype_uintSI
      = build_function_type_list (void_type_node,
! 				unsigned_intSI_type_node,
! 				NULL_TREE);
  
!   tree uintQI_ftype_uintSI_uintQI_uintQI
!     = build_function_type_list (unsigned_intQI_type_node,
! 				unsigned_intSI_type_node,
! 				unsigned_intQI_type_node,
! 				unsigned_intQI_type_node,
! 				NULL_TREE);
  
    tree const_memx_void_node
      = build_qualified_type (void_type_node,
! 			    TYPE_QUAL_CONST
! 			    | ENCODE_QUAL_ADDR_SPACE (ADDR_SPACE_MEMX));
  
    tree const_memx_ptr_type_node
      = build_pointer_type_for_mode (const_memx_void_node, PSImode, false);
  
!   tree intQI_ftype_const_memx_ptr
!     = build_function_type_list (intQI_type_node,
! 				const_memx_ptr_type_node,
! 				NULL);
  
  #define ITYP(T)                                                         \
    lang_hooks.types.type_for_size (TYPE_PRECISION (T), TYPE_UNSIGNED (T))
*************** avr_init_builtins (void)
*** 14490,14501 ****
    {                                                                     \
      int id = AVR_BUILTIN_ ## NAME;                                      \
      const char *Name = "__builtin_avr_" #NAME;                          \
!     char *name = (char*) alloca (1 + strlen (Name));                    \
                                                                          \
      gcc_assert (id < AVR_BUILTIN_COUNT);                                \
      avr_bdesc[id].fndecl                                                \
        = add_builtin_function (avr_tolower (name, Name), TYPE, id,       \
!                               BUILT_IN_MD, LIBNAME, NULL_TREE);         \
    }
  #include "builtins.def"
  #undef DEF_BUILTIN
--- 15737,15748 ----
    {                                                                     \
      int id = AVR_BUILTIN_ ## NAME;                                      \
      const char *Name = "__builtin_avr_" #NAME;                          \
!     char *name = (char *) alloca (1 + strlen (Name));                   \
                                                                          \
      gcc_assert (id < AVR_BUILTIN_COUNT);                                \
      avr_bdesc[id].fndecl                                                \
        = add_builtin_function (avr_tolower (name, Name), TYPE, id,       \
! 			      BUILT_IN_MD, LIBNAME, NULL_TREE);         \
    }
  #include "builtins.def"
  #undef DEF_BUILTIN
*************** avr_default_expand_builtin (enum insn_co
*** 14531,14548 ****
        machine_mode mode = insn_data[icode].operand[n + 1].mode;
  
        if ((opmode == SImode || opmode == VOIDmode) && mode == HImode)
!         {
!           opmode = HImode;
!           op = gen_lowpart (HImode, op);
!         }
  
        /* In case the insn wants input operands in modes different from
!          the result, abort.  */
  
        gcc_assert (opmode == mode || opmode == VOIDmode);
  
        if (!insn_data[icode].operand[n + 1].predicate (op, mode))
!         op = copy_to_mode_reg (mode, op);
  
        xop[n] = op;
      }
--- 15778,15795 ----
        machine_mode mode = insn_data[icode].operand[n + 1].mode;
  
        if ((opmode == SImode || opmode == VOIDmode) && mode == HImode)
! 	{
! 	  opmode = HImode;
! 	  op = gen_lowpart (HImode, op);
! 	}
  
        /* In case the insn wants input operands in modes different from
! 	 the result, abort.  */
  
        gcc_assert (opmode == mode || opmode == VOIDmode);
  
        if (!insn_data[icode].operand[n + 1].predicate (op, mode))
! 	op = copy_to_mode_reg (mode, op);
  
        xop[n] = op;
      }
*************** avr_default_expand_builtin (enum insn_co
*** 14574,14583 ****
     IGNORE is nonzero if the value is to be ignored.  */
  
  static rtx
! avr_expand_builtin (tree exp, rtx target,
!                     rtx subtarget ATTRIBUTE_UNUSED,
!                     machine_mode mode ATTRIBUTE_UNUSED,
!                     int ignore)
  {
    tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
    const char *bname = IDENTIFIER_POINTER (DECL_NAME (fndecl));
--- 15821,15828 ----
     IGNORE is nonzero if the value is to be ignored.  */
  
  static rtx
! avr_expand_builtin (tree exp, rtx target, rtx /*subtarget*/,
! 		    machine_mode mode, int ignore)
  {
    tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
    const char *bname = IDENTIFIER_POINTER (DECL_NAME (fndecl));
*************** avr_expand_builtin (tree exp, rtx target
*** 14596,14638 ****
  
      case AVR_BUILTIN_DELAY_CYCLES:
        {
!         arg0 = CALL_EXPR_ARG (exp, 0);
!         op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
  
!         if (!CONST_INT_P (op0))
!           error ("%s expects a compile time integer constant", bname);
!         else
!           avr_expand_delay_cycles (op0);
  
!         return NULL_RTX;
        }
  
      case AVR_BUILTIN_NOPS:
        {
!         arg0 = CALL_EXPR_ARG (exp, 0);
!         op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
  
!         if (!CONST_INT_P (op0))
!           error ("%s expects a compile time integer constant", bname);
!         else
!           avr_expand_nops (op0);
  
!         return NULL_RTX;
        }
  
      case AVR_BUILTIN_INSERT_BITS:
        {
!         arg0 = CALL_EXPR_ARG (exp, 0);
!         op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
  
!         if (!CONST_INT_P (op0))
!           {
!             error ("%s expects a compile time long integer constant"
!                    " as first argument", bname);
!             return target;
!           }
  
!         break;
        }
  
      case AVR_BUILTIN_ROUNDHR:   case AVR_BUILTIN_ROUNDUHR:
--- 15841,15883 ----
  
      case AVR_BUILTIN_DELAY_CYCLES:
        {
! 	arg0 = CALL_EXPR_ARG (exp, 0);
! 	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
  
! 	if (!CONST_INT_P (op0))
! 	  error ("%s expects a compile time integer constant", bname);
! 	else
! 	  avr_expand_delay_cycles (op0);
  
! 	return NULL_RTX;
        }
  
      case AVR_BUILTIN_NOPS:
        {
! 	arg0 = CALL_EXPR_ARG (exp, 0);
! 	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
  
! 	if (!CONST_INT_P (op0))
! 	  error ("%s expects a compile time integer constant", bname);
! 	else
! 	  avr_expand_nops (op0);
  
! 	return NULL_RTX;
        }
  
      case AVR_BUILTIN_INSERT_BITS:
        {
! 	arg0 = CALL_EXPR_ARG (exp, 0);
! 	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
  
! 	if (!CONST_INT_P (op0))
! 	  {
! 	    error ("%s expects a compile time long integer constant"
! 		   " as first argument", bname);
! 	    return target;
! 	  }
  
! 	break;
        }
  
      case AVR_BUILTIN_ROUNDHR:   case AVR_BUILTIN_ROUNDUHR:
*************** avr_expand_builtin (tree exp, rtx target
*** 14646,14678 ****
      case AVR_BUILTIN_ROUNDLLK:  case AVR_BUILTIN_ROUNDULLK:
  
        /* Warn about odd rounding.  Rounding points >= FBIT will have
!          no effect.  */
  
        if (TREE_CODE (CALL_EXPR_ARG (exp, 1)) != INTEGER_CST)
!         break;
  
        int rbit = (int) TREE_INT_CST_LOW (CALL_EXPR_ARG (exp, 1));
  
        if (rbit >= (int) GET_MODE_FBIT (mode))
!         {
!           warning (OPT_Wextra, "rounding to %d bits has no effect for "
!                    "fixed-point value with %d fractional bits",
!                    rbit, GET_MODE_FBIT (mode));
  
!           return expand_expr (CALL_EXPR_ARG (exp, 0), NULL_RTX, mode,
!                               EXPAND_NORMAL);
!         }
        else if (rbit <= - (int) GET_MODE_IBIT (mode))
!         {
!           warning (0, "rounding result will always be 0");
!           return CONST0_RTX (mode);
!         }
  
        /* The rounding points RP satisfies now:  -IBIT < RP < FBIT.
  
!          TR 18037 only specifies results for  RP > 0.  However, the
!          remaining cases of  -IBIT < RP <= 0  can easily be supported
!          without any additional overhead.  */
  
        break; /* round */
      }
--- 15891,15923 ----
      case AVR_BUILTIN_ROUNDLLK:  case AVR_BUILTIN_ROUNDULLK:
  
        /* Warn about odd rounding.  Rounding points >= FBIT will have
! 	 no effect.  */
  
        if (TREE_CODE (CALL_EXPR_ARG (exp, 1)) != INTEGER_CST)
! 	break;
  
        int rbit = (int) TREE_INT_CST_LOW (CALL_EXPR_ARG (exp, 1));
  
        if (rbit >= (int) GET_MODE_FBIT (mode))
! 	{
! 	  warning (OPT_Wextra, "rounding to %d bits has no effect for "
! 		   "fixed-point value with %d fractional bits",
! 		   rbit, GET_MODE_FBIT (mode));
  
! 	  return expand_expr (CALL_EXPR_ARG (exp, 0), NULL_RTX, mode,
! 			      EXPAND_NORMAL);
! 	}
        else if (rbit <= - (int) GET_MODE_IBIT (mode))
! 	{
! 	  warning (0, "rounding result will always be 0");
! 	  return CONST0_RTX (mode);
! 	}
  
        /* The rounding points RP satisfies now:  -IBIT < RP < FBIT.
  
! 	 TR 18037 only specifies results for  RP > 0.  However, the
! 	 remaining cases of  -IBIT < RP <= 0  can easily be supported
! 	 without any additional overhead.  */
  
        break; /* round */
      }
*************** avr_fold_absfx (tree tval)
*** 14730,14737 ****
  /* Implement `TARGET_FOLD_BUILTIN'.  */
  
  static tree
! avr_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *arg,
!                   bool ignore ATTRIBUTE_UNUSED)
  {
    unsigned int fcode = DECL_MD_FUNCTION_CODE (fndecl);
    tree val_type = TREE_TYPE (TREE_TYPE (fndecl));
--- 15975,15981 ----
  /* Implement `TARGET_FOLD_BUILTIN'.  */
  
  static tree
! avr_fold_builtin (tree fndecl, int /*n_args*/, tree *arg, bool /*ignore*/)
  {
    unsigned int fcode = DECL_MD_FUNCTION_CODE (fndecl);
    tree val_type = TREE_TYPE (TREE_TYPE (fndecl));
*************** avr_fold_builtin (tree fndecl, int n_arg
*** 14746,14753 ****
  
      case AVR_BUILTIN_SWAP:
        {
!         return fold_build2 (LROTATE_EXPR, val_type, arg[0],
!                             build_int_cst (val_type, 4));
        }
  
      case AVR_BUILTIN_ABSHR:
--- 15990,15997 ----
  
      case AVR_BUILTIN_SWAP:
        {
! 	return fold_build2 (LROTATE_EXPR, val_type, arg[0],
! 			    build_int_cst (val_type, 4));
        }
  
      case AVR_BUILTIN_ABSHR:
*************** avr_fold_builtin (tree fndecl, int n_arg
*** 14784,14934 ****
      case AVR_BUILTIN_BITSULLK:  case AVR_BUILTIN_ULLKBITS:
  
        gcc_assert (TYPE_PRECISION (val_type)
!                   == TYPE_PRECISION (TREE_TYPE (arg[0])));
  
        return build1 (VIEW_CONVERT_EXPR, val_type, arg[0]);
  
      case AVR_BUILTIN_INSERT_BITS:
        {
!         tree tbits = arg[1];
!         tree tval = arg[2];
!         tree tmap;
!         tree map_type = TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl)));
!         unsigned int map;
!         bool changed = false;
!         avr_map_op_t best_g;
  
!         if (TREE_CODE (arg[0]) != INTEGER_CST)
!           {
!             /* No constant as first argument: Don't fold this and run into
!                error in avr_expand_builtin.  */
  
!             break;
!           }
  
!         tmap = wide_int_to_tree (map_type, wi::to_wide (arg[0]));
!         map = TREE_INT_CST_LOW (tmap);
  
!         if (TREE_CODE (tval) != INTEGER_CST
  	    && avr_map_metric (map, MAP_MASK_PREIMAGE_F) == 0)
!           {
!             /* There are no F in the map, i.e. 3rd operand is unused.
!                Replace that argument with some constant to render
!                respective input unused.  */
  
!             tval = build_int_cst (val_type, 0);
!             changed = true;
!           }
  
!         if (TREE_CODE (tbits) != INTEGER_CST
  	    && avr_map_metric (map, MAP_PREIMAGE_0_7) == 0)
!           {
!             /* Similar for the bits to be inserted. If they are unused,
!                we can just as well pass 0.  */
  
!             tbits = build_int_cst (val_type, 0);
!           }
  
!         if (TREE_CODE (tbits) == INTEGER_CST)
!           {
!             /* Inserting bits known at compile time is easy and can be
!                performed by AND and OR with appropriate masks.  */
  
!             int bits = TREE_INT_CST_LOW (tbits);
!             int mask_ior = 0, mask_and = 0xff;
  
!             for (size_t i = 0; i < 8; i++)
!               {
!                 int mi = avr_map (map, i);
  
!                 if (mi < 8)
!                   {
!                     if (bits & (1 << mi))     mask_ior |=  (1 << i);
!                     else                      mask_and &= ~(1 << i);
!                   }
!               }
  
!             tval = fold_build2 (BIT_IOR_EXPR, val_type, tval,
!                                 build_int_cst (val_type, mask_ior));
!             return fold_build2 (BIT_AND_EXPR, val_type, tval,
!                                 build_int_cst (val_type, mask_and));
!           }
  
!         if (changed)
!           return build_call_expr (fndecl, 3, tmap, tbits, tval);
  
!         /* If bits don't change their position we can use vanilla logic
!            to merge the two arguments.  */
  
! 	if (avr_map_metric (map, MAP_NONFIXED_0_7) == 0)
!           {
!             int mask_f = avr_map_metric (map, MAP_MASK_PREIMAGE_F);
!             tree tres, tmask = build_int_cst (val_type, mask_f ^ 0xff);
  
!             tres = fold_build2 (BIT_XOR_EXPR, val_type, tbits, tval);
!             tres = fold_build2 (BIT_AND_EXPR, val_type, tres, tmask);
!             return fold_build2 (BIT_XOR_EXPR, val_type, tres, tval);
!           }
  
!         /* Try to decomposing map to reduce overall cost.  */
  
!         if (avr_log.builtin)
!           avr_edump ("\n%?: %x\n%?: ROL cost: ", map);
  
!         best_g = avr_map_op[0];
!         best_g.cost = 1000;
  
!         for (size_t i = 0; i < ARRAY_SIZE (avr_map_op); i++)
!           {
!             avr_map_op_t g
!               = avr_map_decompose (map, avr_map_op + i,
!                                    TREE_CODE (tval) == INTEGER_CST);
  
!             if (g.cost >= 0 && g.cost < best_g.cost)
!               best_g = g;
!           }
  
!         if (avr_log.builtin)
!           avr_edump ("\n");
  
!         if (best_g.arg == 0)
!           /* No optimization found */
!           break;
  
!         /* Apply operation G to the 2nd argument.  */
  
!         if (avr_log.builtin)
!           avr_edump ("%?: using OP(%s%d, %x) cost %d\n",
!                      best_g.str, best_g.arg, best_g.map, best_g.cost);
  
!         /* Do right-shifts arithmetically: They copy the MSB instead of
!            shifting in a non-usable value (0) as with logic right-shift.  */
  
!         tbits = fold_convert (signed_char_type_node, tbits);
!         tbits = fold_build2 (best_g.code, signed_char_type_node, tbits,
!                              build_int_cst (val_type, best_g.arg));
!         tbits = fold_convert (val_type, tbits);
  
!         /* Use map o G^-1 instead of original map to undo the effect of G.  */
  
!         tmap = wide_int_to_tree (map_type, best_g.map);
  
!         return build_call_expr (fndecl, 3, tmap, tbits, tval);
        } /* AVR_BUILTIN_INSERT_BITS */
      }
  
    return NULL_TREE;
  }
  
  /* Prepend to CLOBBERS hard registers that are automatically clobbered
     for an asm. We do this for CC_REGNUM to maintain source compatibility
     with the original cc0-based compiler.  */
  
  static rtx_insn *
  avr_md_asm_adjust (vec<rtx> &/*outputs*/, vec<rtx> &/*inputs*/,
!                    vec<machine_mode> & /*input_modes*/,
!                    vec<const char *> &/*constraints*/,
!                    vec<rtx> &clobbers, HARD_REG_SET &clobbered_regs,
  		   location_t /*loc*/)
  {
    clobbers.safe_push (cc_reg_rtx);
--- 16028,16182 ----
      case AVR_BUILTIN_BITSULLK:  case AVR_BUILTIN_ULLKBITS:
  
        gcc_assert (TYPE_PRECISION (val_type)
! 		  == TYPE_PRECISION (TREE_TYPE (arg[0])));
  
        return build1 (VIEW_CONVERT_EXPR, val_type, arg[0]);
  
      case AVR_BUILTIN_INSERT_BITS:
        {
! 	tree tbits = arg[1];
! 	tree tval = arg[2];
! 	tree map_type = TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl)));
! 	bool changed = false;
! 	avr_map_op_t best_g;
  
! 	if (TREE_CODE (arg[0]) != INTEGER_CST)
! 	  {
! 	    /* No constant as first argument: Don't fold this and run into
! 	       error in avr_expand_builtin.  */
  
! 	    break;
! 	  }
  
! 	tree tmap = wide_int_to_tree (map_type, wi::to_wide (arg[0]));
! 	unsigned int map = TREE_INT_CST_LOW (tmap);
  
! 	if (TREE_CODE (tval) != INTEGER_CST
  	    && avr_map_metric (map, MAP_MASK_PREIMAGE_F) == 0)
! 	  {
! 	    /* There are no F in the map, i.e. 3rd operand is unused.
! 	       Replace that argument with some constant to render
! 	       respective input unused.  */
  
! 	    tval = build_int_cst (val_type, 0);
! 	    changed = true;
! 	  }
  
! 	if (TREE_CODE (tbits) != INTEGER_CST
  	    && avr_map_metric (map, MAP_PREIMAGE_0_7) == 0)
! 	  {
! 	    /* Similar for the bits to be inserted. If they are unused,
! 	       we can just as well pass 0.  */
  
! 	    tbits = build_int_cst (val_type, 0);
! 	  }
  
! 	if (TREE_CODE (tbits) == INTEGER_CST)
! 	  {
! 	    /* Inserting bits known at compile time is easy and can be
! 	       performed by AND and OR with appropriate masks.  */
  
! 	    int bits = TREE_INT_CST_LOW (tbits);
! 	    int mask_ior = 0, mask_and = 0xff;
  
! 	    for (size_t i = 0; i < 8; i++)
! 	      {
! 		int mi = avr_map (map, i);
  
! 		if (mi < 8)
! 		  {
! 		    if (bits & (1 << mi))     mask_ior |=  (1 << i);
! 		    else		      mask_and &= ~(1 << i);
! 		  }
! 	      }
  
! 	    tval = fold_build2 (BIT_IOR_EXPR, val_type, tval,
! 				build_int_cst (val_type, mask_ior));
! 	    return fold_build2 (BIT_AND_EXPR, val_type, tval,
! 				build_int_cst (val_type, mask_and));
! 	  }
  
! 	if (changed)
! 	  return build_call_expr (fndecl, 3, tmap, tbits, tval);
  
! 	/* If bits don't change their position, we can use vanilla logic
! 	   to merge the two arguments...  */
  
! 	if (avr_map_metric (map, MAP_NONFIXED_0_7) == 0
! 	    // ...except when we are copying just one bit. In that
! 	    // case, BLD/BST is better than XOR/AND/XOR, see PR90622.
! 	    && avr_map_metric (map, MAP_FIXED_0_7) != 1)
! 	  {
! 	    int mask_f = avr_map_metric (map, MAP_MASK_PREIMAGE_F);
! 	    tree tres, tmask = build_int_cst (val_type, mask_f ^ 0xff);
  
! 	    tres = fold_build2 (BIT_XOR_EXPR, val_type, tbits, tval);
! 	    tres = fold_build2 (BIT_AND_EXPR, val_type, tres, tmask);
! 	    return fold_build2 (BIT_XOR_EXPR, val_type, tres, tval);
! 	  }
  
! 	/* Try to decomposing map to reduce overall cost.  */
  
! 	if (avr_log.builtin)
! 	  avr_edump ("\n%?: %x\n%?: ROL cost: ", map);
  
! 	best_g = avr_map_op[0];
! 	best_g.cost = 1000;
  
! 	for (size_t i = 0; i < ARRAY_SIZE (avr_map_op); i++)
! 	  {
! 	    avr_map_op_t g
! 	      = avr_map_decompose (map, avr_map_op + i,
! 				   TREE_CODE (tval) == INTEGER_CST);
  
! 	    if (g.cost >= 0 && g.cost < best_g.cost)
! 	      best_g = g;
! 	  }
  
! 	if (avr_log.builtin)
! 	  avr_edump ("\n");
  
! 	if (best_g.arg == 0)
! 	  /* No optimization found */
! 	  break;
  
! 	/* Apply operation G to the 2nd argument.  */
  
! 	if (avr_log.builtin)
! 	  avr_edump ("%?: using OP(%s%d, %x) cost %d\n",
! 		     best_g.str, best_g.arg, best_g.map, best_g.cost);
  
! 	/* Do right-shifts arithmetically: They copy the MSB instead of
! 	   shifting in a non-usable value (0) as with logic right-shift.  */
  
! 	tbits = fold_convert (signed_char_type_node, tbits);
! 	tbits = fold_build2 (best_g.code, signed_char_type_node, tbits,
! 			     build_int_cst (val_type, best_g.arg));
! 	tbits = fold_convert (val_type, tbits);
  
! 	/* Use map o G^-1 instead of original map to undo the effect of G.  */
  
! 	tmap = wide_int_to_tree (map_type, best_g.map);
  
! 	return build_call_expr (fndecl, 3, tmap, tbits, tval);
        } /* AVR_BUILTIN_INSERT_BITS */
      }
  
    return NULL_TREE;
  }
  
+ 
+ /* Implement `TARGET_MD_ASM_ADJUST'.  */
  /* Prepend to CLOBBERS hard registers that are automatically clobbered
     for an asm. We do this for CC_REGNUM to maintain source compatibility
     with the original cc0-based compiler.  */
  
  static rtx_insn *
  avr_md_asm_adjust (vec<rtx> &/*outputs*/, vec<rtx> &/*inputs*/,
! 		   vec<machine_mode> & /*input_modes*/,
! 		   vec<const char *> &/*constraints*/,
! 		   vec<rtx> &/*uses*/,
! 		   vec<rtx> &clobbers, HARD_REG_SET &clobbered_regs,
  		   location_t /*loc*/)
  {
    clobbers.safe_push (cc_reg_rtx);
*************** avr_float_lib_compare_returns_bool (mach
*** 15119,15124 ****
--- 16367,16375 ----
  #undef  TARGET_ADDR_SPACE_DIAGNOSE_USAGE
  #define TARGET_ADDR_SPACE_DIAGNOSE_USAGE avr_addr_space_diagnose_usage
  
+ #undef  TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID
+ #define TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID avr_addr_space_zero_address_valid
+ 
  #undef  TARGET_MODE_DEPENDENT_ADDRESS_P
  #define TARGET_MODE_DEPENDENT_ADDRESS_P avr_mode_dependent_address_p
  
*************** avr_float_lib_compare_returns_bool (mach
*** 15148,15153 ****
--- 16399,16410 ----
  #undef  TARGET_CANONICALIZE_COMPARISON
  #define TARGET_CANONICALIZE_COMPARISON avr_canonicalize_comparison
  
+ /* According to the opening comment in PR86772, the following applies:
+   "If the port does not (and never will in the future) need to mitigate
+    against unsafe speculation."  */
+ #undef  TARGET_HAVE_SPECULATION_SAFE_VALUE
+ #define TARGET_HAVE_SPECULATION_SAFE_VALUE speculation_safe_value_not_needed
+ 
  struct gcc_target targetm = TARGET_INITIALIZER;
  
  
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr.h gcc-14.1.0/gcc/config/avr/avr.h
*** gcc-13.2.0/gcc/config/avr/avr.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for GNU compiler,
     for ATMEL AVR at90s8515, ATmega103/103L, ATmega603/603L microcontrollers.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Denis Chertykov (chertykov@gmail.com)
  
  This file is part of GCC.
--- 1,6 ----
  /* Definitions of target machine for GNU compiler,
     for ATMEL AVR at90s8515, ATmega103/103L, ATmega603/603L microcontrollers.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Denis Chertykov (chertykov@gmail.com)
  
  This file is part of GCC.
*************** enum
*** 65,70 ****
--- 65,71 ----
  #define AVR_HAVE_JMP_CALL (avr_arch->have_jmp_call && ! AVR_SHORT_CALLS)
  #define AVR_HAVE_MUL (avr_arch->have_mul)
  #define AVR_HAVE_MOVW (avr_arch->have_movw_lpmx)
+ #define AVR_HAVE_ADIW (!AVR_TINY)
  #define AVR_HAVE_LPM (!AVR_TINY)
  #define AVR_HAVE_LPMX (avr_arch->have_movw_lpmx)
  #define AVR_HAVE_ELPM (avr_arch->have_elpm)
*************** typedef struct avr_args
*** 332,337 ****
--- 333,342 ----
  
    /* Next available register number */
    int regno;
+ 
+   /* Whether some of the arguments are passed on the stack,
+      and hence an arg pointer is needed.  */
+   int has_stack_args;
  } CUMULATIVE_ARGS;
  
  #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \
*************** typedef struct avr_args
*** 500,508 ****
--- 505,515 ----
  
  extern const char *avr_devicespecs_file (int, const char**);
  extern const char *avr_double_lib (int, const char**);
+ extern const char *avr_no_devlib (int, const char**);
  
  #define EXTRA_SPEC_FUNCTIONS                            \
    { "double-lib", avr_double_lib },                     \
+   { "no-devlib", avr_no_devlib },                       \
    { "device-specs-file", avr_devicespecs_file },
  
  /* Driver self specs has lmited functionality w.r.t. '%s' for dynamic specs.
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr.md gcc-14.1.0/gcc/config/avr/avr.md
*** gcc-13.2.0/gcc/config/avr/avr.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr.md	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ;;   Machine description for GNU compiler,
  ;;   for ATMEL AVR micro controllers.
! ;;   Copyright (C) 1998-2023 Free Software Foundation, Inc.
  ;;   Contributed by Denis Chertykov (chertykov@gmail.com)
  
  ;; This file is part of GCC.
--- 1,6 ----
  ;;   Machine description for GNU compiler,
  ;;   for ATMEL AVR micro controllers.
! ;;   Copyright (C) 1998-2024 Free Software Foundation, Inc.
  ;;   Contributed by Denis Chertykov (chertykov@gmail.com)
  
  ;; This file is part of GCC.
***************
*** 31,37 ****
  ;;  j  Branch condition.
  ;;  k  Reverse branch condition.
  ;;..m..Constant Direct Data memory address.
! ;;  i  Print the SFR address quivalent of a CONST_INT or a CONST_INT
  ;;     RAM address.  The resulting address is suitable to be used in IN/OUT.
  ;;  o  Displacement for (mem (plus (reg) (const_int))) operands.
  ;;  p  POST_INC or PRE_DEC address as a pointer (X, Y, Z)
--- 31,37 ----
  ;;  j  Branch condition.
  ;;  k  Reverse branch condition.
  ;;..m..Constant Direct Data memory address.
! ;;  i  Print the SFR address equivalent of a CONST_INT or a CONST_INT
  ;;     RAM address.  The resulting address is suitable to be used in IN/OUT.
  ;;  o  Displacement for (mem (plus (reg) (const_int))) operands.
  ;;  p  POST_INC or PRE_DEC address as a pointer (X, Y, Z)
***************
*** 51,72 ****
  ;;  ~  Output 'r' if not AVR_HAVE_JMP_CALL.
  ;;  !  Output 'e' if AVR_HAVE_EIJMP_EICALL.
  
  
  (define_constants
!   [(REG_X       26)
!    (REG_Y       28)
!    (REG_Z       30)
!    (REG_W       24)
!    (REG_SP      32)
!    (REG_CC      36)
!    (LPM_REGNO   0)      ; implicit target register of LPM
!    (TMP_REGNO   0)      ; temporary register r0
!    (ZERO_REGNO  1)      ; zero register r1
     ])
  
  (define_constants
!   [(TMP_REGNO_TINY  16) ; r16 is temp register for AVR_TINY
!    (ZERO_REGNO_TINY 17) ; r17 is zero register for AVR_TINY
    ])
  
  (define_c_enum "unspec"
--- 51,83 ----
  ;;  ~  Output 'r' if not AVR_HAVE_JMP_CALL.
  ;;  !  Output 'e' if AVR_HAVE_EIJMP_EICALL.
  
+ ;; Used in avr.cc to avoid magic numbers for register numbers.
+ (define_constants
+   [(REG_0   0)   (REG_1   1)   (REG_2   2)
+    (REG_8   8)   (REG_9   9)   (REG_10 10)   (REG_11 11)
+    (REG_12 12)   (REG_13 13)   (REG_14 14)   (REG_15 15)
+    (REG_16 16)   (REG_17 17)   (REG_18 18)   (REG_19 19)
+    (REG_20 20)   (REG_21 21)   (REG_22 22)   (REG_23 23)
+    (REG_24 24)   (REG_25 25)   (REG_26 26)   (REG_27 27)
+    (REG_28 28)   (REG_29 29)   (REG_30 30)   (REG_31 31)
+    (REG_32 32)   (REG_36 36)
+    ])
  
  (define_constants
!   [(REG_X       REG_26)
!    (REG_Y       REG_28)
!    (REG_Z       REG_30)
!    (REG_W       REG_24)
!    (REG_SP      REG_32)
!    (REG_CC      REG_36)
!    (LPM_REGNO   REG_0)      ; implicit target register of LPM
!    (TMP_REGNO   REG_0)      ; temporary register r0
!    (ZERO_REGNO  REG_1)      ; zero register r1
     ])
  
  (define_constants
!   [(TMP_REGNO_TINY  REG_16) ; r16 is temp register for AVR_TINY
!    (ZERO_REGNO_TINY REG_17) ; r17 is zero register for AVR_TINY
    ])
  
  (define_c_enum "unspec"
***************
*** 105,114 ****
  (include "predicates.md")
  (include "constraints.md")
  
- ;; Condition code settings.
- (define_attr "cc" "none,set_czn,set_zn,set_vzn,set_n,compare,clobber,
-                    plus,ldi"
-   (const_string "none"))
  
  (define_attr "type" "branch,branch1,arith,xcall"
    (const_string "arith"))
--- 116,121 ----
***************
*** 154,160 ****
  ;; Otherwise do special processing depending on the attribute.
  
  (define_attr "adjust_len"
!   "out_bitop, plus, addto_sp, sext,
     tsthi, tstpsi, tstsi, compare, compare64, call,
     mov8, mov16, mov24, mov32, reload_in16, reload_in24, reload_in32,
     ufract, sfract, round,
--- 161,167 ----
  ;; Otherwise do special processing depending on the attribute.
  
  (define_attr "adjust_len"
!   "out_bitop, plus, addto_sp, sext, extr, extr_not,
     tsthi, tstpsi, tstsi, compare, compare64, call,
     mov8, mov16, mov24, mov32, reload_in16, reload_in24, reload_in32,
     ufract, sfract, round,
***************
*** 163,169 ****
     ashlhi, ashrhi, lshrhi,
     ashlsi, ashrsi, lshrsi,
     ashlpsi, ashrpsi, lshrpsi,
!    insert_bits, insv_notbit, insv_notbit_0, insv_notbit_7,
     add_set_ZN, cmp_uext, cmp_sext,
     no"
    (const_string "no"))
--- 170,176 ----
     ashlhi, ashrhi, lshrhi,
     ashlsi, ashrsi, lshrsi,
     ashlpsi, ashrpsi, lshrpsi,
!    insert_bits, insv_notbit, insv,
     add_set_ZN, cmp_uext, cmp_sext,
     no"
    (const_string "no"))
***************
*** 176,185 ****
  ;; lpm  : ISA has no LPMX                lpmx  : ISA has LPMX
  ;; elpm : ISA has ELPM but no ELPMX      elpmx : ISA has ELPMX
  ;; no_xmega: non-XMEGA core              xmega : XMEGA core
! ;; no_tiny:  non-TINY core               tiny  : TINY core
  
  (define_attr "isa"
!   "mov,movw, rjmp,jmp, ijmp,eijmp, lpm,lpmx, elpm,elpmx, no_xmega,xmega, no_tiny,tiny,
     standard"
    (const_string "standard"))
  
--- 183,193 ----
  ;; lpm  : ISA has no LPMX                lpmx  : ISA has LPMX
  ;; elpm : ISA has ELPM but no ELPMX      elpmx : ISA has ELPMX
  ;; no_xmega: non-XMEGA core              xmega : XMEGA core
! ;; no_adiw:  ISA has no ADIW, SBIW       adiw  : ISA has ADIW, SBIW
  
  (define_attr "isa"
!   "mov,movw, rjmp,jmp, ijmp,eijmp, lpm,lpmx, elpm,elpmx, no_xmega,xmega,
!    no_adiw,adiw,
     standard"
    (const_string "standard"))
  
***************
*** 231,246 ****
                (match_test "AVR_XMEGA"))
           (const_int 1)
  
-          (and (eq_attr "isa" "tiny")
-               (match_test "AVR_TINY"))
-          (const_int 1)
- 
           (and (eq_attr "isa" "no_xmega")
                (match_test "!AVR_XMEGA"))
           (const_int 1)
  
!          (and (eq_attr "isa" "no_tiny")
!               (match_test "!AVR_TINY"))
           (const_int 1)
  
           ] (const_int 0)))
--- 239,254 ----
                (match_test "AVR_XMEGA"))
           (const_int 1)
  
           (and (eq_attr "isa" "no_xmega")
                (match_test "!AVR_XMEGA"))
           (const_int 1)
  
!          (and (eq_attr "isa" "adiw")
!               (match_test "AVR_HAVE_ADIW"))
!          (const_int 1)
! 
!          (and (eq_attr "isa" "no_adiw")
!               (match_test "!AVR_HAVE_ADIW"))
           (const_int 1)
  
           ] (const_int 0)))
***************
*** 284,295 ****
--- 292,316 ----
  (define_mode_iterator SPLIT34 [SI SF PSI
                                 SQ USQ SA USA])
  
+ ;; Where the most significant bit is located.
+ (define_mode_attr MSB  [(QI "7") (QQ "7") (UQQ "7")
+                         (HI "15") (HQ "15") (UHQ "15") (HA "15") (UHA "15")
+                         (PSI "23")
+                         (SI "31") (SQ "31") (USQ "31") (SA "31") (USA "31") (SF "31")])
+ 
+ ;; Size in bytes of the mode.
+ (define_mode_attr SIZE [(QI "1") (QQ "1") (UQQ "1")
+                         (HI "2") (HQ "2") (UHQ "2") (HA "2") (UHA "2")
+                         (PSI "3")
+                         (SI "4") (SQ "4") (USQ "4") (SA "4") (USA "4") (SF "4")])
+ 
  ;; Define code iterators
  ;; Define two incarnations so that we can build the cartesian product.
  (define_code_iterator any_extend  [sign_extend zero_extend])
  (define_code_iterator any_extend2 [sign_extend zero_extend])
  (define_code_iterator any_extract [sign_extract zero_extract])
  (define_code_iterator any_shiftrt [lshiftrt ashiftrt])
+ (define_code_iterator any_shift   [lshiftrt ashiftrt ashift])
  
  (define_code_iterator piaop [plus ior and])
  (define_code_iterator bitop [xor ior and])
***************
*** 356,363 ****
      rtx offset = gen_int_mode (targetm.starting_frame_offset (), Pmode);
      emit_move_insn (virtual_stack_vars_rtx,
                      gen_rtx_PLUS (Pmode, hard_frame_pointer_rtx, offset));
!     /* ; This might change the hard frame pointer in ways that aren't
!        ; apparent to early optimization passes, so force a clobber.  */
      emit_clobber (hard_frame_pointer_rtx);
      DONE;
    })
--- 377,384 ----
      rtx offset = gen_int_mode (targetm.starting_frame_offset (), Pmode);
      emit_move_insn (virtual_stack_vars_rtx,
                      gen_rtx_PLUS (Pmode, hard_frame_pointer_rtx, offset));
!     // This might change the hard frame pointer in ways that aren't
!     // apparent to early optimization passes, so force a clobber.
      emit_clobber (hard_frame_pointer_rtx);
      DONE;
    })
***************
*** 435,442 ****
          operands[0] = copy_to_mode_reg (<MODE>mode, operands[0]);
        }
      else if (REG_P (operands[0])
!              && IN_RANGE (REGNO (operands[0]), FIRST_VIRTUAL_REGISTER,
!                           LAST_VIRTUAL_REGISTER))
        {
          // Byte-wise pushing of virtual regs might result in something like
          //
--- 456,462 ----
          operands[0] = copy_to_mode_reg (<MODE>mode, operands[0]);
        }
      else if (REG_P (operands[0])
!              && VIRTUAL_REGISTER_P (operands[0]))
        {
          // Byte-wise pushing of virtual regs might result in something like
          //
***************
*** 455,461 ****
          //                  (reg:HI 28)))
          //    (set (mem:HI (post_dec:HI (reg:HI 32 SP))
          //         (reg:HI **)))
!  
          emit_insn (gen_pushhi1_insn (operands[0]));
          DONE;
        }
--- 475,481 ----
          //                  (reg:HI 28)))
          //    (set (mem:HI (post_dec:HI (reg:HI 32 SP))
          //         (reg:HI **)))
! 
          emit_insn (gen_pushhi1_insn (operands[0]));
          DONE;
        }
***************
*** 520,526 ****
    "#"
    "&& reload_completed"
    [(parallel [(set (reg:MOVMODE 22)
!                     (match_dup 0))
                (clobber (reg:CC REG_CC))])]
    ""
    [(set_attr "isa" "rjmp,jmp")])
--- 540,546 ----
    "#"
    "&& reload_completed"
    [(parallel [(set (reg:MOVMODE 22)
!                    (match_dup 0))
                (clobber (reg:CC REG_CC))])]
    ""
    [(set_attr "isa" "rjmp,jmp")])
***************
*** 555,565 ****
    "&& 1"
    [(clobber (const_int 0))]
    {
!     /* ; Split away the high part of the address.  GCC's register allocator
!        ; in not able to allocate segment registers and reload the resulting
!        ; expressions.  Notice that no address register can hold a PSImode.  */
  
-     rtx_insn *insn;
      rtx addr = XEXP (operands[1], 0);
      rtx hi8 = gen_reg_rtx (QImode);
      rtx reg_z = gen_rtx_REG (HImode, REG_Z);
--- 575,584 ----
    "&& 1"
    [(clobber (const_int 0))]
    {
!     // Split away the high part of the address.  GCC's register allocator
!     // is not able to allocate segment registers and reload the resulting
!     // expressions.  Notice that no address register can hold a PSImode.
  
      rtx addr = XEXP (operands[1], 0);
      rtx hi8 = gen_reg_rtx (QImode);
      rtx reg_z = gen_rtx_REG (HImode, REG_Z);
***************
*** 567,573 ****
      emit_move_insn (reg_z, simplify_gen_subreg (HImode, addr, PSImode, 0));
      emit_move_insn (hi8, simplify_gen_subreg (QImode, addr, PSImode, 2));
  
!     insn = emit_insn (gen_xload<mode>_8 (operands[0], hi8));
      set_mem_addr_space (SET_SRC (single_set (insn)),
                                   MEM_ADDR_SPACE (operands[1]));
      DONE;
--- 586,592 ----
      emit_move_insn (reg_z, simplify_gen_subreg (HImode, addr, PSImode, 0));
      emit_move_insn (hi8, simplify_gen_subreg (QImode, addr, PSImode, 2));
  
!     rtx_insn *insn = emit_insn (gen_xload<mode>_8 (operands[0], hi8));
      set_mem_addr_space (SET_SRC (single_set (insn)),
                                   MEM_ADDR_SPACE (operands[1]));
      DONE;
***************
*** 595,611 ****
      rtx reg_z = gen_rtx_REG (HImode, REG_Z);
      rtx addr_hi8 = simplify_gen_subreg (QImode, addr, PSImode, 2);
      addr_space_t as = MEM_ADDR_SPACE (operands[1]);
-     rtx_insn *insn;
  
!     /* Split the address to R21:Z */
      emit_move_insn (reg_z, simplify_gen_subreg (HImode, addr, PSImode, 0));
      emit_move_insn (gen_rtx_REG (QImode, 21), addr_hi8);
  
!     /* Load with code from libgcc */
!     insn = emit_insn (gen_xload_<mode>_libgcc ());
      set_mem_addr_space (SET_SRC (single_set (insn)), as);
  
!     /* Move to destination */
      emit_move_insn (operands[0], gen_rtx_REG (<MODE>mode, 22));
  
      DONE;
--- 614,629 ----
      rtx reg_z = gen_rtx_REG (HImode, REG_Z);
      rtx addr_hi8 = simplify_gen_subreg (QImode, addr, PSImode, 2);
      addr_space_t as = MEM_ADDR_SPACE (operands[1]);
  
!     // Split the address to R21:Z
      emit_move_insn (reg_z, simplify_gen_subreg (HImode, addr, PSImode, 0));
      emit_move_insn (gen_rtx_REG (QImode, 21), addr_hi8);
  
!     // Load with code from libgcc.
!     rtx_insn *insn = emit_insn (gen_xload_<mode>_libgcc ());
      set_mem_addr_space (SET_SRC (single_set (insn)), as);
  
!     // Move to destination.
      emit_move_insn (operands[0], gen_rtx_REG (<MODE>mode, 22));
  
      DONE;
***************
*** 701,707 ****
          SUBREG_REG (src) = copy_to_mode_reg (GET_MODE (const_addr), const_addr);
        }
  
!     /* One of the operands has to be in a register.  */
      if (!register_operand (dest, <MODE>mode)
          && !reg_or_0_operand (src, <MODE>mode))
        {
--- 719,725 ----
          SUBREG_REG (src) = copy_to_mode_reg (GET_MODE (const_addr), const_addr);
        }
  
!     // One of the operands has to be in a register.
      if (!register_operand (dest, <MODE>mode)
          && !reg_or_0_operand (src, <MODE>mode))
        {
***************
*** 716,723 ****
            src = replace_equiv_address (src, copy_to_mode_reg (PSImode, addr));
  
          if (!avr_xload_libgcc_p (<MODE>mode))
!           /* ; No <mode> here because gen_xload8<mode>_A only iterates over ALL1.
!              ; insn-emit does not depend on the mode, it's all about operands.  */
            emit_insn (gen_xload8qi_A (dest, src));
          else
            emit_insn (gen_xload<mode>_A (dest, src));
--- 734,741 ----
            src = replace_equiv_address (src, copy_to_mode_reg (PSImode, addr));
  
          if (!avr_xload_libgcc_p (<MODE>mode))
!           // No <mode> here because gen_xload8<mode>_A only iterates over ALL1.
!           // insn-emit does not depend on the mode, it's all about operands.
            emit_insn (gen_xload8qi_A (dest, src));
          else
            emit_insn (gen_xload<mode>_A (dest, src));
***************
*** 727,733 ****
  
      if (avr_load_libgcc_p (src))
        {
!         /* For the small devices, do loads per libgcc call.  */
          emit_insn (gen_load<mode>_libgcc (dest, src));
          DONE;
        }
--- 745,751 ----
  
      if (avr_load_libgcc_p (src))
        {
!         // For the small devices, do loads per libgcc call.
          emit_insn (gen_load<mode>_libgcc (dest, src));
          DONE;
        }
***************
*** 913,918 ****
--- 931,985 ----
      operands[5] = gen_rtx_REG (HImode, REGNO (operands[3]));
    })
  
+ 
+ ;; Register alloc may expand a 3-operand arithmetic X = Y o CST as
+ ;;    X = CST
+ ;;    X o= Y
+ ;; where it may be better to instead:
+ ;;    X = Y
+ ;;    X o= CST
+ ;; because 1) the first insn may use MOVW for "X = Y", and 2) the
+ ;; operation may be more efficient when performed with a constant,
+ ;; for example when ADIW or SBIW can be used, or some bytes of
+ ;; the constant are 0x00 or 0xff.
+ (define_peephole2
+   [(parallel [(set (match_operand:HISI 0 "d_register_operand")
+                    (match_operand:HISI 1 "const_int_operand"))
+               (clobber (reg:CC REG_CC))])
+    (parallel [(set (match_dup 0)
+                    (piaop:HISI (match_dup 0)
+                                (match_operand:HISI 2 "register_operand")))
+               (clobber (scratch:QI))
+               (clobber (reg:CC REG_CC))])]
+   "! reg_overlap_mentioned_p (operands[0], operands[2])"
+   [(parallel [(set (match_dup 0)
+                    (match_dup 2))
+               (clobber (reg:CC REG_CC))])
+    (parallel [(set (match_dup 0)
+                    (piaop:HISI (match_dup 0)
+                                (match_dup 1)))
+               (clobber (scratch:QI))
+               (clobber (reg:CC REG_CC))])])
+ 
+ ;; Same, but just for plus:HI without a scratch:QI.
+ (define_peephole2
+   [(parallel [(set (match_operand:HI 0 "d_register_operand")
+                    (match_operand:HI 1 "const_int_operand"))
+               (clobber (reg:CC REG_CC))])
+    (parallel [(set (match_dup 0)
+                    (plus:HI (match_dup 0)
+                             (match_operand:HI 2 "register_operand")))
+               (clobber (reg:CC REG_CC))])]
+   "! reg_overlap_mentioned_p (operands[0], operands[2])"
+   [(parallel [(set (match_dup 0)
+                    (match_dup 2))
+               (clobber (reg:CC REG_CC))])
+    (parallel [(set (match_dup 0)
+                    (plus:HI (match_dup 0)
+                             (match_dup 1)))
+               (clobber (reg:CC REG_CC))])])
+ 
+ 
  ;; For LPM loads from AS1 we split
  ;;    R = *Z
  ;; to
***************
*** 943,948 ****
--- 1010,1039 ----
      operands[4] = gen_int_mode (-GET_MODE_SIZE (<MODE>mode), HImode);
    })
  
+ 
+ ;; Legitimate address and stuff allows way more addressing modes than
+ ;; Reduced Tiny actually supports.  Split them now so that we get
+ ;; closer to real instructions which may result in some optimization
+ ;; opportunities.
+ (define_split
+   [(parallel [(set (match_operand:MOVMODE 0 "nonimmediate_operand")
+                    (match_operand:MOVMODE 1 "general_operand"))
+               (clobber (reg:CC REG_CC))])]
+   "AVR_TINY
+    && reload_completed
+    && avr_fuse_add > 0
+    // Only split this for .split2 when we are before
+    // pass .avr-fuse-add (which runs after proep).
+    && ! epilogue_completed
+    && (MEM_P (operands[0]) || MEM_P (operands[1]))"
+   [(scratch)]
+   {
+     if (avr_split_tiny_move (curr_insn, operands))
+       DONE;
+     FAIL;
+   })
+ 
+ 
  ;;==========================================================================
  ;; xpointer move (24 bit)
  
***************
*** 1247,1267 ****
                (clobber (match_dup 4))])]
    ""
    {
!     rtx addr0;
!     machine_mode mode;
! 
!     /* If value to set is not zero, use the library routine.  */
      if (operands[2] != const0_rtx)
        FAIL;
  
      if (!CONST_INT_P (operands[1]))
        FAIL;
  
!     mode = u8_operand (operands[1], VOIDmode) ? QImode : HImode;
      operands[4] = gen_rtx_SCRATCH (mode);
      operands[1] = copy_to_mode_reg (mode,
                                      gen_int_mode (INTVAL (operands[1]), mode));
!     addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
      operands[0] = gen_rtx_MEM (BLKmode, addr0);
    })
  
--- 1338,1355 ----
                (clobber (match_dup 4))])]
    ""
    {
!     // If value to set is not zero, use the library routine.
      if (operands[2] != const0_rtx)
        FAIL;
  
      if (!CONST_INT_P (operands[1]))
        FAIL;
  
!     machine_mode mode = u8_operand (operands[1], VOIDmode) ? QImode : HImode;
      operands[4] = gen_rtx_SCRATCH (mode);
      operands[1] = copy_to_mode_reg (mode,
                                      gen_int_mode (INTVAL (operands[1]), mode));
!     rtx addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
      operands[0] = gen_rtx_MEM (BLKmode, addr0);
    })
  
***************
*** 1313,1319 ****
                (use (match_dup 2))
                (clobber (match_dup 3))
                (clobber (match_dup 4))
!               (clobber (reg:CC REG_CC))])])
  
  
  (define_insn "*clrmemhi"
--- 1401,1409 ----
                (use (match_dup 2))
                (clobber (match_dup 3))
                (clobber (match_dup 4))
!               (clobber (reg:CC REG_CC))])]
!   ""
!   [(set_attr "isa" "adiw,*")])
  
  
  (define_insn "*clrmemhi"
***************
*** 1328,1334 ****
    "@
  	0:\;st %a0+,__zero_reg__\;sbiw %A1,1\;brne 0b
  	0:\;st %a0+,__zero_reg__\;subi %A1,1\;sbci %B1,0\;brne 0b"
!   [(set_attr "length" "3,4")])
  
  (define_expand "strlenhi"
    [(set (match_dup 4)
--- 1418,1425 ----
    "@
  	0:\;st %a0+,__zero_reg__\;sbiw %A1,1\;brne 0b
  	0:\;st %a0+,__zero_reg__\;subi %A1,1\;sbci %B1,0\;brne 0b"
!   [(set_attr "length" "3,4")
!    (set_attr "isa" "adiw,*")])
  
  (define_expand "strlenhi"
    [(set (match_dup 4)
***************
*** 1345,1354 ****
                (clobber (scratch:QI))])]
    ""
    {
-     rtx addr;
      if (operands[2] != const0_rtx)
        FAIL;
!     addr = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));
      operands[1] = gen_rtx_MEM (BLKmode, addr);
      operands[5] = addr;
      operands[4] = gen_reg_rtx (HImode);
--- 1436,1444 ----
                (clobber (scratch:QI))])]
    ""
    {
      if (operands[2] != const0_rtx)
        FAIL;
!     rtx addr = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));
      operands[1] = gen_rtx_MEM (BLKmode, addr);
      operands[5] = addr;
      operands[4] = gen_reg_rtx (HImode);
***************
*** 1497,1508 ****
    ""
    "#"
    "&& reload_completed"
!   [(parallel
!       [(set (match_dup 0)
!             (plus:HI
!               (sign_extend:HI (match_dup 1))
!               (match_dup 2)))
!        (clobber (reg:CC REG_CC))])])
  
  
  (define_insn "*addhi3.sign_extend1"
--- 1587,1596 ----
    ""
    "#"
    "&& reload_completed"
!   [(parallel [(set (match_dup 0)
!                    (plus:HI (sign_extend:HI (match_dup 1))
!                             (match_dup 2)))
!               (clobber (reg:CC REG_CC))])])
  
  
  (define_insn "*addhi3.sign_extend1"
***************
*** 1516,1522 ****
        ? "mov __tmp_reg__,%1\;add %A0,%1\;adc %B0,__zero_reg__\;sbrc __tmp_reg__,7\;dec %B0"
        : "add %A0,%1\;adc %B0,__zero_reg__\;sbrc %1,7\;dec %B0";
    }
!   [(set_attr "length" "5")])
  
  (define_insn_and_split "*addhi3_zero_extend.const_split"
    [(set (match_operand:HI 0 "register_operand"                         "=d")
--- 1604,1611 ----
        ? "mov __tmp_reg__,%1\;add %A0,%1\;adc %B0,__zero_reg__\;sbrc __tmp_reg__,7\;dec %B0"
        : "add %A0,%1\;adc %B0,__zero_reg__\;sbrc %1,7\;dec %B0";
    }
!   [(set (attr "length")
!         (symbol_ref ("4 + reg_overlap_mentioned_p (operands[0], operands[1])")))])
  
  (define_insn_and_split "*addhi3_zero_extend.const_split"
    [(set (match_operand:HI 0 "register_operand"                         "=d")
***************
*** 1539,1547 ****
    "subi %A0,%n2\;sbc %B0,%B0"
    [(set_attr "length" "2")])
  
  (define_insn_and_split "*usum_widenqihi3_split"
    [(set (match_operand:HI 0 "register_operand"                          "=r")
!         (plus:HI (zero_extend:HI (match_operand:QI 1 "register_operand"  "0"))
                   (zero_extend:HI (match_operand:QI 2 "register_operand"  "r"))))]
    ""
    "#"
--- 1628,1669 ----
    "subi %A0,%n2\;sbc %B0,%B0"
    [(set_attr "length" "2")])
  
+ 
+ ;; Occurs when computing offsets into 16-bit arrays.
+ ;; Saves up to 2 instructions.
+ (define_insn_and_split "*addhi3_zero_extend.ashift1.split"
+   [(set (match_operand:HI 0 "register_operand"                                    "=r")
+         (plus:HI (ashift:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "r"))
+                             (const_int 1))
+                  (match_operand:HI 2 "register_operand"                            "0")))]
+   ""
+   "#"
+   "&& reload_completed"
+   [(parallel [(set (match_dup 0)
+                    (plus:HI (ashift:HI (zero_extend:HI (match_dup 1))
+                                        (const_int 1))
+                             (match_dup 2)))
+               (clobber (reg:CC REG_CC))])])
+ 
+ (define_insn "*addhi3_zero_extend.ashift1"
+   [(set (match_operand:HI 0 "register_operand"                                    "=r")
+         (plus:HI (ashift:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "r"))
+                             (const_int 1))
+                  (match_operand:HI 2 "register_operand"                            "0")))
+    (clobber (reg:CC REG_CC))]
+   "reload_completed"
+   {
+     return reg_overlap_mentioned_p (operands[1], operands[0])
+       ? "mov __tmp_reg__,%1\;add %A0,__tmp_reg__\;adc %B0,__zero_reg__\;add %A0,__tmp_reg__\;adc %B0,__zero_reg__"
+       : "add %A0,%1\;adc %B0,__zero_reg__\;add %A0,%1\;adc %B0,__zero_reg__";
+   }
+   [(set (attr "length")
+         (symbol_ref ("4 + reg_overlap_mentioned_p (operands[1], operands[0])")))])
+ 
+ 
  (define_insn_and_split "*usum_widenqihi3_split"
    [(set (match_operand:HI 0 "register_operand"                          "=r")
!         (plus:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "%0"))
                   (zero_extend:HI (match_operand:QI 2 "register_operand"  "r"))))]
    ""
    "#"
***************
*** 1554,1560 ****
  
  (define_insn "*usum_widenqihi3"
    [(set (match_operand:HI 0 "register_operand"                          "=r")
!         (plus:HI (zero_extend:HI (match_operand:QI 1 "register_operand"  "0"))
                   (zero_extend:HI (match_operand:QI 2 "register_operand"  "r"))))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
--- 1676,1682 ----
  
  (define_insn "*usum_widenqihi3"
    [(set (match_operand:HI 0 "register_operand"                          "=r")
!         (plus:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "%0"))
                   (zero_extend:HI (match_operand:QI 2 "register_operand"  "r"))))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
***************
*** 1581,1587 ****
    "reload_completed"
    "sub %A0,%2\;sbc %B0,%B0"
    [(set_attr "length" "2")])
!     
  (define_insn_and_split "*addhi3_sp"
    [(set (match_operand:HI 1 "stack_register_operand"           "=q")
          (plus:HI (match_operand:HI 2 "stack_register_operand"   "q")
--- 1703,1709 ----
    "reload_completed"
    "sub %A0,%2\;sbc %B0,%B0"
    [(set_attr "length" "2")])
! 
  (define_insn_and_split "*addhi3_sp"
    [(set (match_operand:HI 1 "stack_register_operand"           "=q")
          (plus:HI (match_operand:HI 2 "stack_register_operand"   "q")
***************
*** 1593,1610 ****
    ""
    [(const_int 0)]
    {
!     /* Do not attempt to split this pattern. This FAIL is necessary
!        to prevent the splitter from matching *add<ALL2>3_split, splitting
!        it, and then failing later because constraints don't match, as split
!        does not look at constraints. */
      FAIL;
    }
    [(set_attr "length" "6")
     (set_attr "adjust_len" "addto_sp")])
  
! ;; "*addhi3"
! ;; "*addhq3" "*adduhq3"
! ;; "*addha3" "*adduha3"
  (define_insn_and_split "*add<mode>3_split"
    [(set (match_operand:ALL2 0 "register_operand"                   "=??r,d,!w    ,d")
          (plus:ALL2 (match_operand:ALL2 1 "register_operand"          "%0,0,0     ,0")
--- 1715,1732 ----
    ""
    [(const_int 0)]
    {
!     // Do not attempt to split this pattern. This FAIL is necessary
!     // to prevent the splitter from matching *add<ALL2>3_split, splitting
!     // it, and then failing later because constraints don't match, as split
!     // does not look at constraints.
      FAIL;
    }
    [(set_attr "length" "6")
     (set_attr "adjust_len" "addto_sp")])
  
! ;; "*addhi3_split"
! ;; "*addhq3_split"  "*adduhq3_split"
! ;; "*addha3_split"  "*adduha3_split"
  (define_insn_and_split "*add<mode>3_split"
    [(set (match_operand:ALL2 0 "register_operand"                   "=??r,d,!w    ,d")
          (plus:ALL2 (match_operand:ALL2 1 "register_operand"          "%0,0,0     ,0")
***************
*** 1615,1622 ****
    [(parallel [(set (match_dup 0)
                     (plus:ALL2 (match_dup 1)
                                (match_dup 2)))
!               (clobber (reg:CC REG_CC))])])
  
  (define_insn "*add<mode>3"
    [(set (match_operand:ALL2 0 "register_operand"                   "=??r,d,!w    ,d")
          (plus:ALL2 (match_operand:ALL2 1 "register_operand"          "%0,0,0     ,0")
--- 1737,1749 ----
    [(parallel [(set (match_dup 0)
                     (plus:ALL2 (match_dup 1)
                                (match_dup 2)))
!               (clobber (reg:CC REG_CC))])]
!   ""
!   [(set_attr "isa" "*,*,adiw,*")])
  
+ ;; "*addhi3"
+ ;; "*addhq3"  "*adduhq3"
+ ;; "*addha3"  "*adduha3"
  (define_insn "*add<mode>3"
    [(set (match_operand:ALL2 0 "register_operand"                   "=??r,d,!w    ,d")
          (plus:ALL2 (match_operand:ALL2 1 "register_operand"          "%0,0,0     ,0")
***************
*** 1627,1632 ****
--- 1754,1760 ----
      return avr_out_plus (insn, operands);
    }
    [(set_attr "length" "2")
+    (set_attr "isa" "*,*,adiw,*")
     (set_attr "adjust_len" "plus")])
  
  ;; Adding a constant to NO_LD_REGS might have lead to a reload of
***************
*** 1687,1692 ****
--- 1815,1823 ----
                (clobber (match_dup 3))
                (clobber (reg:CC REG_CC))])])
  
+ ;; "*addhi3_clobber"
+ ;; "*addhq3_clobber"  "*adduhq3_clobber"
+ ;; "*addha3_clobber"  "*adduha3_clobber"
  (define_insn "*add<mode>3_clobber"
    [(set (match_operand:ALL2 0 "register_operand"            "=!w    ,d    ,r")
          (plus:ALL2 (match_operand:ALL2 1 "register_operand"  "%0    ,0    ,0")
***************
*** 2037,2044 ****
    "#"
    "&& reload_completed"
    [(parallel [(set (match_dup 0)
!                   (minus:HI (match_dup 1)
!                             (sign_extend:HI (match_dup 2))))
                (clobber (reg:CC REG_CC))])])
  
  
--- 2168,2175 ----
    "#"
    "&& reload_completed"
    [(parallel [(set (match_dup 0)
!                    (minus:HI (match_dup 1)
!                              (sign_extend:HI (match_dup 2))))
                (clobber (reg:CC REG_CC))])])
  
  
***************
*** 2053,2059 ****
        ? "mov __tmp_reg__,%2\;sub %A0,%2\;sbc %B0,__zero_reg__\;sbrc __tmp_reg__,7\;inc %B0"
        : "sub %A0,%2\;sbc %B0,__zero_reg__\;sbrc %2,7\;inc %B0";
    }
!   [(set_attr "length" "5")])
  
  ;; "subsi3"
  ;; "subsq3" "subusq3"
--- 2184,2191 ----
        ? "mov __tmp_reg__,%2\;sub %A0,%2\;sbc %B0,__zero_reg__\;sbrc __tmp_reg__,7\;inc %B0"
        : "sub %A0,%2\;sbc %B0,__zero_reg__\;sbrc %2,7\;inc %B0";
    }
!   [(set (attr "length")
!         (symbol_ref ("4 + reg_overlap_mentioned_p (operands[0], operands[2])")))])
  
  ;; "subsi3"
  ;; "subsq3" "subusq3"
***************
*** 2294,2300 ****
                                     (const_int 0))
                              (match_dup 2)))
                (clobber (match_dup 3))
!               (clobber (reg:CC REG_CC))])])
  
  (define_insn "*addhi3.lt0"
    [(set (match_operand:HI 0 "register_operand"                   "=w,r")
--- 2426,2434 ----
                                     (const_int 0))
                              (match_dup 2)))
                (clobber (match_dup 3))
!               (clobber (reg:CC REG_CC))])]
!   ""
!   [(set_attr "isa" "adiw,*")])
  
  (define_insn "*addhi3.lt0"
    [(set (match_operand:HI 0 "register_operand"                   "=w,r")
***************
*** 2307,2313 ****
    "@
  	sbrc %1,7\;adiw %0,1
  	lsl %1\;adc %A0,__zero_reg__\;adc %B0,__zero_reg__"
!   [(set_attr "length" "2,3")])
  
  (define_insn_and_split "*addpsi3.lt0_split"
    [(set (match_operand:PSI 0 "register_operand"                         "=r")
--- 2441,2448 ----
    "@
  	sbrc %1,7\;adiw %0,1
  	lsl %1\;adc %A0,__zero_reg__\;adc %B0,__zero_reg__"
!   [(set_attr "length" "2,3")
!    (set_attr "isa" "adiw,*")])
  
  (define_insn_and_split "*addpsi3.lt0_split"
    [(set (match_operand:PSI 0 "register_operand"                         "=r")
***************
*** 2370,2376 ****
    "&& reload_completed"
    [(parallel [(set (reg:HI 24)
                     (mult:HI (zero_extend:HI (reg:QI 22))
!                    (zero_extend:HI (reg:QI 24))))
                (clobber (reg:QI 21))
                (clobber (reg:HI 22))
                (clobber (reg:CC REG_CC))])])
--- 2505,2511 ----
    "&& reload_completed"
    [(parallel [(set (reg:HI 24)
                     (mult:HI (zero_extend:HI (reg:QI 22))
!                             (zero_extend:HI (reg:QI 24))))
                (clobber (reg:QI 21))
                (clobber (reg:HI 22))
                (clobber (reg:CC REG_CC))])])
***************
*** 2754,2760 ****
  
  ;; Special case of a += 2*b as frequently seen with accesses to int arrays.
  ;; This is shorter, faster than MUL and has lower register pressure.
! 
  (define_insn_and_split "*umaddqihi4.2"
    [(set (match_operand:HI 0 "register_operand"                                  "=r")
          (plus:HI (mult:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "r"))
--- 2889,2895 ----
  
  ;; Special case of a += 2*b as frequently seen with accesses to int arrays.
  ;; This is shorter, faster than MUL and has lower register pressure.
! ;; See also "*addhi3_zero_extend.ashift1".
  (define_insn_and_split "*umaddqihi4.2"
    [(set (match_operand:HI 0 "register_operand"                                  "=r")
          (plus:HI (mult:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "r"))
***************
*** 3168,3177 ****
          DONE;
        }
  
!     /* ; For small constants we can do better by extending them on the fly.
!        ; The constant can be loaded in one instruction and the widening
!        ; multiplication is shorter.  First try the unsigned variant because it
!        ; allows constraint "d" instead of "a" for the signed version.  */
  
      if (s9_operand (operands[2], HImode))
        {
--- 3303,3312 ----
          DONE;
        }
  
!     // For small constants we can do better by extending them on the fly.
!     // The constant can be loaded in one instruction and the widening
!     // multiplication is shorter.  First try the unsigned variant because it
!     // allows constraint "d" instead of "a" for the signed version.  */
  
      if (s9_operand (operands[2], HImode))
        {
***************
*** 3220,3231 ****
             ? "mul %A1,%A1\;movw %0,r0\;mul %A1,%B1\;add %B0,r0\;add %B0,r0\;clr r1"
             : "mul %A1,%A2\;movw %0,r0\;mul %A1,%B2\;add %B0,r0\;mul %B1,%A2\;add %B0,r0\;clr r1";
    }
!   [(set_attr "length" "7")])
  
  (define_expand "mulhi3_call"
    [(set (reg:HI 24) (match_operand:HI 1 "register_operand" ""))
     (set (reg:HI 22) (match_operand:HI 2 "register_operand" ""))
!    (parallel [(set (reg:HI 24) (mult:HI (reg:HI 24) (reg:HI 22)))
                (clobber (reg:HI 22))
                (clobber (reg:QI 21))])
     (set (match_operand:HI 0 "register_operand" "")
--- 3355,3368 ----
             ? "mul %A1,%A1\;movw %0,r0\;mul %A1,%B1\;add %B0,r0\;add %B0,r0\;clr r1"
             : "mul %A1,%A2\;movw %0,r0\;mul %A1,%B2\;add %B0,r0\;mul %B1,%A2\;add %B0,r0\;clr r1";
    }
!   [(set (attr "length")
!         (symbol_ref ("7 - (REGNO (operands[1]) == REGNO (operands[2]))")))])
  
  (define_expand "mulhi3_call"
    [(set (reg:HI 24) (match_operand:HI 1 "register_operand" ""))
     (set (reg:HI 22) (match_operand:HI 2 "register_operand" ""))
!    (parallel [(set (reg:HI 24)
!                    (mult:HI (reg:HI 24) (reg:HI 22)))
                (clobber (reg:HI 22))
                (clobber (reg:QI 21))])
     (set (match_operand:HI 0 "register_operand" "")
***************
*** 3237,3255 ****
  
  
  (define_insn_and_split "*mulhi3_call_split"
!   [(set (reg:HI 24) (mult:HI (reg:HI 24) (reg:HI 22)))
     (clobber (reg:HI 22))
     (clobber (reg:QI 21))]
    "!AVR_HAVE_MUL"
    "#"
    "&& reload_completed"
!   [(parallel [(set (reg:HI 24) (mult:HI (reg:HI 24) (reg:HI 22)))
                (clobber (reg:HI 22))
                (clobber (reg:QI 21))
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*mulhi3_call"
!   [(set (reg:HI 24) (mult:HI (reg:HI 24) (reg:HI 22)))
     (clobber (reg:HI 22))
     (clobber (reg:QI 21))
     (clobber (reg:CC REG_CC))]
--- 3374,3395 ----
  
  
  (define_insn_and_split "*mulhi3_call_split"
!   [(set (reg:HI 24)
!         (mult:HI (reg:HI 24) (reg:HI 22)))
     (clobber (reg:HI 22))
     (clobber (reg:QI 21))]
    "!AVR_HAVE_MUL"
    "#"
    "&& reload_completed"
!   [(parallel [(set (reg:HI 24)
!                    (mult:HI (reg:HI 24) (reg:HI 22)))
                (clobber (reg:HI 22))
                (clobber (reg:QI 21))
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*mulhi3_call"
!   [(set (reg:HI 24)
!         (mult:HI (reg:HI 24) (reg:HI 22)))
     (clobber (reg:HI 22))
     (clobber (reg:QI 21))
     (clobber (reg:CC REG_CC))]
***************
*** 3362,3369 ****
     (set (match_dup 0)
          (reg:SI 22))]
    {
!     /* Do the QI -> HI extension explicitely before the multiplication.  */
!     /* Do the HI -> SI extension implicitely and after the multiplication.  */
  
      if (QImode == <MODE>mode)
        operands[1] = gen_rtx_ZERO_EXTEND (HImode, operands[1]);
--- 3502,3509 ----
     (set (match_dup 0)
          (reg:SI 22))]
    {
!     // Do the QI -> HI extension explicitely before the multiplication.
!     // Do the HI -> SI extension implicitely and after the multiplication.
  
      if (QImode == <MODE>mode)
        operands[1] = gen_rtx_ZERO_EXTEND (HImode, operands[1]);
***************
*** 3414,3421 ****
     (set (match_dup 0)
          (reg:SI 22))]
    {
!     /* Do the QI -> HI extension explicitely before the multiplication.  */
!     /* Do the HI -> SI extension implicitely and after the multiplication.  */
  
      if (QImode == <MODE>mode)
        operands[1] = gen_rtx_SIGN_EXTEND (HImode, operands[1]);
--- 3554,3561 ----
     (set (match_dup 0)
          (reg:SI 22))]
    {
!     // Do the QI -> HI extension explicitly before the multiplication.
!     // Do the HI -> SI extension implicitly and after the multiplication.
  
      if (QImode == <MODE>mode)
        operands[1] = gen_rtx_SIGN_EXTEND (HImode, operands[1]);
***************
*** 3528,3535 ****
      rtx xop1 = operands[1];
      rtx xop2 = operands[2];
  
!     /* Do the QI -> HI extension explicitely before the multiplication.  */
!     /* Do the HI -> SI extension implicitely and after the multiplication.  */
  
      if (QImode == <QIHI:MODE>mode)
        xop1 = gen_rtx_fmt_e (<any_extend:CODE>, HImode, xop1);
--- 3668,3675 ----
      rtx xop1 = operands[1];
      rtx xop2 = operands[2];
  
!     // Do the QI -> HI extension explicitly before the multiplication.
!     // Do the HI -> SI extension implicitly and after the multiplication.
  
      if (QImode == <QIHI:MODE>mode)
        xop1 = gen_rtx_fmt_e (<any_extend:CODE>, HImode, xop1);
***************
*** 3547,3554 ****
        }
      else
        {
!         /* <any_extend:CODE>  = SIGN_EXTEND */
!         /* <any_extend2:CODE> = ZERO_EXTEND */
  
          operands[1] = xop2;
          operands[2] = xop1;
--- 3687,3694 ----
        }
      else
        {
!         // <any_extend:CODE>  = SIGN_EXTEND
!         // <any_extend2:CODE> = ZERO_EXTEND
  
          operands[1] = xop2;
          operands[2] = xop1;
***************
*** 4216,4222 ****
                  (match_operand:SI 2 "pseudo_register_operand")))
     (set (match_operand:SI 3 "pseudo_register_operand")
          (mod:SI (match_dup 1)
! 	        (match_dup 2)))
     (clobber (reg:SI 18))
     (clobber (reg:SI 22))
     (clobber (reg:HI 26))
--- 4356,4362 ----
                  (match_operand:SI 2 "pseudo_register_operand")))
     (set (match_operand:SI 3 "pseudo_register_operand")
          (mod:SI (match_dup 1)
!                 (match_dup 2)))
     (clobber (reg:SI 18))
     (clobber (reg:SI 22))
     (clobber (reg:HI 26))
***************
*** 4332,4341 ****
    [(set_attr "length" "1,1,2")])
  
  (define_insn_and_split "andhi3"
!   [(set (match_operand:HI 0 "register_operand"       "=??r,d,d,r  ,r")
!         (and:HI (match_operand:HI 1 "register_operand" "%0,0,0,0  ,0")
!                 (match_operand:HI 2 "nonmemory_operand" "r,s,n,Ca2,n")))
!    (clobber (match_scratch:QI 3                        "=X,X,X,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
--- 4472,4481 ----
    [(set_attr "length" "1,1,2")])
  
  (define_insn_and_split "andhi3"
!   [(set (match_operand:HI 0 "register_operand"       "=??r,d,d,r  ,r  ,r")
!         (and:HI (match_operand:HI 1 "register_operand" "%0,0,0,0  ,r  ,0")
!                 (match_operand:HI 2 "nonmemory_operand" "r,s,n,Ca2,Cb2,n")))
!    (clobber (match_scratch:QI 3                        "=X,X,X,X  ,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
***************
*** 4346,4355 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*andhi3"
!   [(set (match_operand:HI 0 "register_operand"       "=??r,d,d,r  ,r")
!         (and:HI (match_operand:HI 1 "register_operand" "%0,0,0,0  ,0")
!                 (match_operand:HI 2 "nonmemory_operand" "r,s,n,Ca2,n")))
!    (clobber (match_scratch:QI 3                        "=X,X,X,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
--- 4486,4495 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*andhi3"
!   [(set (match_operand:HI 0 "register_operand"       "=??r,d,d,r  ,r  ,r")
!         (and:HI (match_operand:HI 1 "register_operand" "%0,0,0,0  ,r  ,0")
!                 (match_operand:HI 2 "nonmemory_operand" "r,s,n,Ca2,Cb2,n")))
!    (clobber (match_scratch:QI 3                        "=X,X,X,X  ,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
***************
*** 4357,4373 ****
        return "and %A0,%A2\;and %B0,%B2";
      else if (which_alternative == 1)
        return "andi %A0,lo8(%2)\;andi %B0,hi8(%2)";
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "2,2,2,4,4")
!    (set_attr "adjust_len" "*,*,out_bitop,out_bitop,out_bitop")])
  
  (define_insn_and_split "andpsi3"
!   [(set (match_operand:PSI 0 "register_operand"        "=??r,d,r  ,r")
!         (and:PSI (match_operand:PSI 1 "register_operand" "%0,0,0  ,0")
!                  (match_operand:PSI 2 "nonmemory_operand" "r,n,Ca3,n")))
!    (clobber (match_scratch:QI 3                          "=X,X,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
--- 4497,4515 ----
        return "and %A0,%A2\;and %B0,%B2";
      else if (which_alternative == 1)
        return "andi %A0,lo8(%2)\;andi %B0,hi8(%2)";
+     else if (which_alternative == 4)
+       return avr_out_insv (insn, operands, NULL);
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "2,2,2,4,4,4")
!    (set_attr "adjust_len" "*,*,out_bitop,out_bitop,insv,out_bitop")])
  
  (define_insn_and_split "andpsi3"
!   [(set (match_operand:PSI 0 "register_operand"        "=??r,d,r  ,r  ,r")
!         (and:PSI (match_operand:PSI 1 "register_operand" "%0,0,0  ,r  ,0")
!                  (match_operand:PSI 2 "nonmemory_operand" "r,n,Ca3,Cb3,n")))
!    (clobber (match_scratch:QI 3                          "=X,X,X  ,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
***************
*** 4378,4387 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*andpsi3"
!   [(set (match_operand:PSI 0 "register_operand"        "=??r,d,r  ,r")
!         (and:PSI (match_operand:PSI 1 "register_operand" "%0,0,0  ,0")
!                  (match_operand:PSI 2 "nonmemory_operand" "r,n,Ca3,n")))
!    (clobber (match_scratch:QI 3                          "=X,X,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
--- 4520,4529 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*andpsi3"
!   [(set (match_operand:PSI 0 "register_operand"        "=??r,d,r  ,r  ,r")
!         (and:PSI (match_operand:PSI 1 "register_operand" "%0,0,0  ,r  ,0")
!                  (match_operand:PSI 2 "nonmemory_operand" "r,n,Ca3,Cb3,n")))
!    (clobber (match_scratch:QI 3                          "=X,X,X  ,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
***************
*** 4390,4405 ****
               "and %B0,%B2" CR_TAB
               "and %C0,%C2";
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "3,3,6,6")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop,out_bitop")])
  
  (define_insn_and_split "andsi3"
!   [(set (match_operand:SI 0 "register_operand"       "=??r,d,r  ,r")
!         (and:SI (match_operand:SI 1 "register_operand" "%0,0,0  ,0")
!                 (match_operand:SI 2 "nonmemory_operand" "r,n,Ca4,n")))
!    (clobber (match_scratch:QI 3                        "=X,X,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
--- 4532,4550 ----
               "and %B0,%B2" CR_TAB
               "and %C0,%C2";
  
+     if (which_alternative == 3)
+       return avr_out_insv (insn, operands, NULL);
+ 
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "3,3,6,5,6")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop,insv,out_bitop")])
  
  (define_insn_and_split "andsi3"
!   [(set (match_operand:SI 0 "register_operand"       "=??r,d,r  ,r  ,r")
!         (and:SI (match_operand:SI 1 "register_operand" "%0,0,0  ,r  ,0")
!                 (match_operand:SI 2 "nonmemory_operand" "r,n,Ca4,Cb4,n")))
!    (clobber (match_scratch:QI 3                        "=X,X,X  ,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
***************
*** 4410,4419 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*andsi3"
!   [(set (match_operand:SI 0 "register_operand"       "=??r,d,r  ,r")
!         (and:SI (match_operand:SI 1 "register_operand" "%0,0,0  ,0")
!                 (match_operand:SI 2 "nonmemory_operand" "r,n,Ca4,n")))
!    (clobber (match_scratch:QI 3                        "=X,X,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
--- 4555,4564 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*andsi3"
!   [(set (match_operand:SI 0 "register_operand"       "=??r,d,r  ,r  ,r")
!         (and:SI (match_operand:SI 1 "register_operand" "%0,0,0  ,r  ,0")
!                 (match_operand:SI 2 "nonmemory_operand" "r,n,Ca4,Cb4,n")))
!    (clobber (match_scratch:QI 3                        "=X,X,X  ,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
***************
*** 4423,4432 ****
               "and %C0,%C2" CR_TAB
               "and %D0,%D2";
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "4,4,8,8")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop,out_bitop")])
  
  (define_peephole2 ; andi
    [(parallel [(set (match_operand:QI 0 "d_register_operand" "")
--- 4568,4580 ----
               "and %C0,%C2" CR_TAB
               "and %D0,%D2";
  
+     if (which_alternative == 3)
+       return avr_out_insv (insn, operands, NULL);
+ 
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "4,4,8,6,8")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop,insv,out_bitop")])
  
  (define_peephole2 ; andi
    [(parallel [(set (match_operand:QI 0 "d_register_operand" "")
***************
*** 4593,4602 ****
    [(set_attr "length" "1")])
  
  (define_insn_and_split "xorhi3"
!   [(set (match_operand:HI 0 "register_operand"       "=??r,r  ,r")
!         (xor:HI (match_operand:HI 1 "register_operand" "%0,0  ,0")
!                 (match_operand:HI 2 "nonmemory_operand" "r,Cx2,n")))
!    (clobber (match_scratch:QI 3                        "=X,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
--- 4741,4750 ----
    [(set_attr "length" "1")])
  
  (define_insn_and_split "xorhi3"
!   [(set (match_operand:HI 0 "register_operand"       "=??r,r  ,d  ,r")
!         (xor:HI (match_operand:HI 1 "register_operand" "%0,0  ,0  ,0")
!                 (match_operand:HI 2 "nonmemory_operand" "r,Cx2,CX2,n")))
!    (clobber (match_scratch:QI 3                        "=X,X  ,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
***************
*** 4607,4616 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*xorhi3"
!   [(set (match_operand:HI 0 "register_operand"       "=??r,r  ,r")
!         (xor:HI (match_operand:HI 1 "register_operand" "%0,0  ,0")
!                 (match_operand:HI 2 "nonmemory_operand" "r,Cx2,n")))
!    (clobber (match_scratch:QI 3                        "=X,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
--- 4755,4764 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*xorhi3"
!   [(set (match_operand:HI 0 "register_operand"       "=??r,r  ,d  ,r")
!         (xor:HI (match_operand:HI 1 "register_operand" "%0,0  ,0  ,0")
!                 (match_operand:HI 2 "nonmemory_operand" "r,Cx2,CX2,n")))
!    (clobber (match_scratch:QI 3                        "=X,X  ,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
***************
*** 4619,4632 ****
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "2,2,4")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop")])
  
  (define_insn_and_split "xorpsi3"
!   [(set (match_operand:PSI 0 "register_operand"        "=??r,r  ,r")
!         (xor:PSI (match_operand:PSI 1 "register_operand" "%0,0  ,0")
!                  (match_operand:PSI 2 "nonmemory_operand" "r,Cx3,n")))
!    (clobber (match_scratch:QI 3                          "=X,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
--- 4767,4780 ----
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "2,2,4,4")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop,out_bitop")])
  
  (define_insn_and_split "xorpsi3"
!   [(set (match_operand:PSI 0 "register_operand"        "=??r,r  ,d  ,r")
!         (xor:PSI (match_operand:PSI 1 "register_operand" "%0,0  ,0  ,0")
!                  (match_operand:PSI 2 "nonmemory_operand" "r,Cx3,CX3,n")))
!    (clobber (match_scratch:QI 3                          "=X,X  ,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
***************
*** 4637,4646 ****
                     (clobber (reg:CC REG_CC))])])
  
  (define_insn "*xorpsi3"
!   [(set (match_operand:PSI 0 "register_operand"        "=??r,r  ,r")
!         (xor:PSI (match_operand:PSI 1 "register_operand" "%0,0  ,0")
!                  (match_operand:PSI 2 "nonmemory_operand" "r,Cx3,n")))
!    (clobber (match_scratch:QI 3                          "=X,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
--- 4785,4794 ----
                     (clobber (reg:CC REG_CC))])])
  
  (define_insn "*xorpsi3"
!   [(set (match_operand:PSI 0 "register_operand"        "=??r,r  ,d  ,r")
!         (xor:PSI (match_operand:PSI 1 "register_operand" "%0,0  ,0  ,0")
!                  (match_operand:PSI 2 "nonmemory_operand" "r,Cx3,CX3,n")))
!    (clobber (match_scratch:QI 3                          "=X,X  ,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
***************
*** 4651,4664 ****
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "3,6,6")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop")])
  
  (define_insn_and_split "xorsi3"
!   [(set (match_operand:SI 0 "register_operand"       "=??r,r  ,r")
!         (xor:SI (match_operand:SI 1 "register_operand" "%0,0  ,0")
!                 (match_operand:SI 2 "nonmemory_operand" "r,Cx4,n")))
!    (clobber (match_scratch:QI 3                        "=X,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
--- 4799,4812 ----
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "3,6,6,6")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop,out_bitop")])
  
  (define_insn_and_split "xorsi3"
!   [(set (match_operand:SI 0 "register_operand"       "=??r,r  ,d  ,r")
!         (xor:SI (match_operand:SI 1 "register_operand" "%0,0  ,0  ,0")
!                 (match_operand:SI 2 "nonmemory_operand" "r,Cx4,CX4,n")))
!    (clobber (match_scratch:QI 3                        "=X,X  ,X  ,&d"))]
    ""
    "#"
    "&& reload_completed"
***************
*** 4669,4678 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*xorsi3"
!   [(set (match_operand:SI 0 "register_operand"       "=??r,r  ,r")
!         (xor:SI (match_operand:SI 1 "register_operand" "%0,0  ,0")
!                 (match_operand:SI 2 "nonmemory_operand" "r,Cx4,n")))
!    (clobber (match_scratch:QI 3                        "=X,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
--- 4817,4826 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*xorsi3"
!   [(set (match_operand:SI 0 "register_operand"       "=??r,r  ,d  ,r")
!         (xor:SI (match_operand:SI 1 "register_operand" "%0,0  ,0  ,0")
!                 (match_operand:SI 2 "nonmemory_operand" "r,Cx4,CX4,n")))
!    (clobber (match_scratch:QI 3                        "=X,X  ,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
***************
*** 4684,4691 ****
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "4,8,8")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop")])
  
  
  (define_split
--- 4832,4839 ----
  
      return avr_out_bitop (insn, operands, NULL);
    }
!   [(set_attr "length" "4,8,8,8")
!    (set_attr "adjust_len" "*,out_bitop,out_bitop,out_bitop")])
  
  
  (define_split
***************
*** 4708,4714 ****
      operands[4] = lo_first ? dst_hi : dst_lo;
      operands[5] = lo_first ? src_hi : src_lo;
    })
!   
  (define_split
    [(set (match_operand:HI 0 "register_operand")
          (match_operand:HI 1 "reg_or_0_operand"))]
--- 4856,4862 ----
      operands[4] = lo_first ? dst_hi : dst_lo;
      operands[5] = lo_first ? src_hi : src_lo;
    })
! 
  (define_split
    [(set (match_operand:HI 0 "register_operand")
          (match_operand:HI 1 "reg_or_0_operand"))]
***************
*** 4756,4762 ****
  ;; by
  ;;    $1 = $1 <op> const
  ;;    $0 = $1
! ;; This transorms constraint alternative "r,0,n,&d" of the first operation
  ;; to alternative "d,0,n,X".
  ;; "*addhi3_clobber"  "*addpsi3"  "*addsi3"
  ;; "*addhq3"  "*adduhq3"  "*addha3"  "*adduha3"
--- 4904,4910 ----
  ;; by
  ;;    $1 = $1 <op> const
  ;;    $0 = $1
! ;; This transforms constraint alternative "r,0,n,&d" of the first operation
  ;; to alternative "d,0,n,X".
  ;; "*addhi3_clobber"  "*addpsi3"  "*addsi3"
  ;; "*addhq3"  "*adduhq3"  "*addha3"  "*adduha3"
***************
*** 4856,4867 ****
                (clobber (match_dup 3))])]
    ""
    {
-     int offset;
- 
      if (!CONST_INT_P (operands[2]))
        FAIL;
  
!     offset = INTVAL (operands[2]);
  
      if (0 == offset % 8)
        {
--- 5004,5013 ----
                (clobber (match_dup 3))])]
    ""
    {
      if (!CONST_INT_P (operands[2]))
        FAIL;
  
!     int offset = INTVAL (operands[2]);
  
      if (0 == offset % 8)
        {
***************
*** 4873,4879 ****
      else if (offset == 1
               || offset == GET_MODE_BITSIZE (<MODE>mode) -1)
        {
!         /*; Support rotate left/right by 1  */
  
          emit_move_insn (operands[0],
                          gen_rtx_ROTATE (<MODE>mode, operands[1], operands[2]));
--- 5019,5025 ----
      else if (offset == 1
               || offset == GET_MODE_BITSIZE (<MODE>mode) -1)
        {
!         // Support rotate left/right by 1.
  
          emit_move_insn (operands[0],
                          gen_rtx_ROTATE (<MODE>mode, operands[1], operands[2]));
***************
*** 5673,5679 ****
          (lshiftrt:ALL1 (match_operand:ALL1 1 "register_operand" "")
                         (match_operand:QI 2 "nop_general_operand" "")))])
  
! (define_split	; lshrqi3_const4
    [(set (match_operand:ALL1 0 "d_register_operand" "")
          (lshiftrt:ALL1 (match_dup 0)
                         (const_int 4)))]
--- 5819,5825 ----
          (lshiftrt:ALL1 (match_operand:ALL1 1 "register_operand" "")
                         (match_operand:QI 2 "nop_general_operand" "")))])
  
! (define_split ; lshrqi3_const4
    [(set (match_operand:ALL1 0 "d_register_operand" "")
          (lshiftrt:ALL1 (match_dup 0)
                         (const_int 4)))]
***************
*** 5688,5694 ****
      operands[1] = avr_to_int_mode (operands[0]);
    })
  
! (define_split	; lshrqi3_const5
    [(set (match_operand:ALL1 0 "d_register_operand" "")
          (lshiftrt:ALL1 (match_dup 0)
                         (const_int 5)))]
--- 5834,5840 ----
      operands[1] = avr_to_int_mode (operands[0]);
    })
  
! (define_split ; lshrqi3_const5
    [(set (match_operand:ALL1 0 "d_register_operand" "")
          (lshiftrt:ALL1 (match_dup 0)
                         (const_int 5)))]
***************
*** 5700,5706 ****
      operands[1] = avr_to_int_mode (operands[0]);
    })
  
! (define_split	; lshrqi3_const6
    [(set (match_operand:QI 0 "d_register_operand" "")
          (lshiftrt:QI (match_dup 0)
                       (const_int 6)))]
--- 5846,5852 ----
      operands[1] = avr_to_int_mode (operands[0]);
    })
  
! (define_split ; lshrqi3_const6
    [(set (match_operand:QI 0 "d_register_operand" "")
          (lshiftrt:QI (match_dup 0)
                       (const_int 6)))]
***************
*** 5716,5724 ****
  ;; "*lshrqq3"
  ;; "*lshruqq3"
  (define_insn_and_split "*lshr<mode>3_split"
!   [(set (match_operand:ALL1 0 "register_operand"                  "=r,r,r,r,!d,r,r")
!         (lshiftrt:ALL1 (match_operand:ALL1 1 "register_operand"    "0,0,0,0,0 ,0,0")
!                        (match_operand:QI 2 "nop_general_operand"   "r,L,P,K,n ,n,Qm")))]
    ""
    "#"
    "&& reload_completed"
--- 5862,5870 ----
  ;; "*lshrqq3"
  ;; "*lshruqq3"
  (define_insn_and_split "*lshr<mode>3_split"
!   [(set (match_operand:ALL1 0 "register_operand"                  "=r,r,r,r,r  ,!d,r,r")
!         (lshiftrt:ALL1 (match_operand:ALL1 1 "register_operand"    "0,0,0,0,r  ,0 ,0,0")
!                        (match_operand:QI 2 "nop_general_operand"   "r,L,P,K,C07,n ,n,Qm")))]
    ""
    "#"
    "&& reload_completed"
***************
*** 5728,5751 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3"
!   [(set (match_operand:ALL1 0 "register_operand"                  "=r,r,r,r,!d,r,r")
!         (lshiftrt:ALL1 (match_operand:ALL1 1 "register_operand"    "0,0,0,0,0 ,0,0")
!                        (match_operand:QI 2 "nop_general_operand"   "r,L,P,K,n ,n,Qm")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrqi3_out (insn, operands, NULL);
    }
!   [(set_attr "length" "5,0,1,2,4,6,9")
!    (set_attr "adjust_len" "lshrqi")])
  
  ;; "lshrhi3"
  ;; "lshrhq3"  "lshruhq3"
  ;; "lshrha3"  "lshruha3"
  (define_insn_and_split "lshr<mode>3"
!   [(set (match_operand:ALL2 0 "register_operand"                "=r,r,r,r,r,r,r")
!         (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand"  "0,0,0,r,0,0,0")
!                        (match_operand:QI 2 "nop_general_operand" "r,L,P,O,K,n,Qm")))]
    ""
    "#"
    "&& reload_completed"
--- 5874,5896 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3"
!   [(set (match_operand:ALL1 0 "register_operand"                  "=r,r,r,r,r  ,!d,r,r")
!         (lshiftrt:ALL1 (match_operand:ALL1 1 "register_operand"    "0,0,0,0,r  ,0 ,0,0")
!                        (match_operand:QI 2 "nop_general_operand"   "r,L,P,K,C07,n ,n,Qm")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrqi3_out (insn, operands, NULL);
    }
!   [(set_attr "adjust_len" "lshrqi")])
  
  ;; "lshrhi3"
  ;; "lshrhq3"  "lshruhq3"
  ;; "lshrha3"  "lshruha3"
  (define_insn_and_split "lshr<mode>3"
!   [(set (match_operand:ALL2 0 "register_operand"                "=r,r,r,r,r  ,r,r,r")
!         (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand"  "0,0,0,r,r  ,0,0,0")
!                        (match_operand:QI 2 "nop_general_operand" "r,L,P,O,C15,K,n,Qm")))]
    ""
    "#"
    "&& reload_completed"
***************
*** 5755,5776 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3"
!   [(set (match_operand:ALL2 0 "register_operand"                "=r,r,r,r,r,r,r")
!         (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand"  "0,0,0,r,0,0,0")
!                        (match_operand:QI 2 "nop_general_operand" "r,L,P,O,K,n,Qm")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrhi3_out (insn, operands, NULL);
    }
!   [(set_attr "length" "6,0,2,2,4,10,10")
!    (set_attr "adjust_len" "lshrhi")])
  
  (define_insn_and_split "lshrpsi3"
!   [(set (match_operand:PSI 0 "register_operand"                 "=r,r,r,r,r")
!         (lshiftrt:PSI (match_operand:PSI 1 "register_operand"    "0,0,r,0,0")
!                       (match_operand:QI 2 "nonmemory_operand"    "r,P,O,K,n")))
!    (clobber (match_scratch:QI 3                                 "=X,X,X,X,&d"))]
    ""
    "#"
    "&& reload_completed"
--- 5900,5920 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3"
!   [(set (match_operand:ALL2 0 "register_operand"                "=r,r,r,r,r  ,r,r,r")
!         (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand"  "0,0,0,r,r  ,0,0,0")
!                        (match_operand:QI 2 "nop_general_operand" "r,L,P,O,C15,K,n,Qm")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrhi3_out (insn, operands, NULL);
    }
!   [(set_attr "adjust_len" "lshrhi")])
  
  (define_insn_and_split "lshrpsi3"
!   [(set (match_operand:PSI 0 "register_operand"                 "=r,r,r,r  ,r,r")
!         (lshiftrt:PSI (match_operand:PSI 1 "register_operand"    "0,0,r,r  ,0,0")
!                       (match_operand:QI 2 "nonmemory_operand"    "r,P,O,C23,K,n")))
!    (clobber (match_scratch:QI 3                                 "=X,X,X,X  ,X,&d"))]
    ""
    "#"
    "&& reload_completed"
***************
*** 5781,5790 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshrpsi3"
!   [(set (match_operand:PSI 0 "register_operand"                 "=r,r,r,r,r")
!         (lshiftrt:PSI (match_operand:PSI 1 "register_operand"    "0,0,r,0,0")
!                       (match_operand:QI 2 "nonmemory_operand"    "r,P,O,K,n")))
!    (clobber (match_scratch:QI 3                                 "=X,X,X,X,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
--- 5925,5934 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshrpsi3"
!   [(set (match_operand:PSI 0 "register_operand"                 "=r,r,r,r  ,r,r")
!         (lshiftrt:PSI (match_operand:PSI 1 "register_operand"    "0,0,r,r  ,0,0")
!                       (match_operand:QI 2 "nonmemory_operand"    "r,P,O,C23,K,n")))
!    (clobber (match_scratch:QI 3                                 "=X,X,X,X  ,X,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
***************
*** 5796,5804 ****
  ;; "lshrsq3"  "lshrusq3"
  ;; "lshrsa3"  "lshrusa3"
  (define_insn_and_split "lshr<mode>3"
!   [(set (match_operand:ALL4 0 "register_operand"                  "=r,r,r,r,r,r,r")
!         (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand"    "0,0,0,r,0,0,0")
!                        (match_operand:QI 2 "nop_general_operand"   "r,L,P,O,K,n,Qm")))]
    ""
    "#"
    "&& reload_completed"
--- 5940,5948 ----
  ;; "lshrsq3"  "lshrusq3"
  ;; "lshrsa3"  "lshrusa3"
  (define_insn_and_split "lshr<mode>3"
!   [(set (match_operand:ALL4 0 "register_operand"                  "=r,r,r,r,r,r  ,r,r")
!         (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand"    "0,0,0,r,0,r  ,0,0")
!                        (match_operand:QI 2 "nop_general_operand"   "r,L,P,O,K,C31,n,Qm")))]
    ""
    "#"
    "&& reload_completed"
***************
*** 5808,5823 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3"
!   [(set (match_operand:ALL4 0 "register_operand"                  "=r,r,r,r,r,r,r")
!         (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand"    "0,0,0,r,0,0,0")
!                        (match_operand:QI 2 "nop_general_operand"   "r,L,P,O,K,n,Qm")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrsi3_out (insn, operands, NULL);
    }
!   [(set_attr "length" "8,0,4,4,8,10,12")
!    (set_attr "adjust_len" "lshrsi")])
  
  ;; Optimize if a scratch register from LD_REGS happens to be available.
  
--- 5952,5966 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3"
!   [(set (match_operand:ALL4 0 "register_operand"                  "=r,r,r,r,r,r  ,r,r")
!         (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand"    "0,0,0,r,0,r  ,0,0")
!                        (match_operand:QI 2 "nop_general_operand"   "r,L,P,O,K,C31,n,Qm")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrsi3_out (insn, operands, NULL);
    }
!   [(set_attr "adjust_len" "lshrsi")])
  
  ;; Optimize if a scratch register from LD_REGS happens to be available.
  
***************
*** 5876,5882 ****
      operands[2] = avr_to_int_mode (operands[0]);
    })
  
! (define_peephole2
    [(match_scratch:QI 3 "d")
     (parallel [(set (match_operand:ALL2 0 "register_operand" "")
                     (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand" "")
--- 6019,6025 ----
      operands[2] = avr_to_int_mode (operands[0]);
    })
  
! (define_peephole2 ; "*lshrhi3_const"
    [(match_scratch:QI 3 "d")
     (parallel [(set (match_operand:ALL2 0 "register_operand" "")
                     (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand" "")
***************
*** 5893,5902 ****
  ;; "*lshrhq3_const"  "*lshruhq3_const"
  ;; "*lshrha3_const"  "*lshruha3_const"
  (define_insn_and_split "*lshr<mode>3_const_split"
!   [(set (match_operand:ALL2 0 "register_operand"                "=r,r,r,r,r")
!         (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand"  "0,0,r,0,0")
!                        (match_operand:QI 2 "const_int_operand"   "L,P,O,K,n")))
!    (clobber (match_scratch:QI 3                                 "=X,X,X,X,&d"))]
    "reload_completed"
    "#"
    "&& reload_completed"
--- 6036,6045 ----
  ;; "*lshrhq3_const"  "*lshruhq3_const"
  ;; "*lshrha3_const"  "*lshruha3_const"
  (define_insn_and_split "*lshr<mode>3_const_split"
!   [(set (match_operand:ALL2 0 "register_operand"                "=r,r,r,r  ,r,r")
!         (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand"  "0,0,r,r  ,0,0")
!                        (match_operand:QI 2 "const_int_operand"   "L,P,O,C15,K,n")))
!    (clobber (match_scratch:QI 3                                 "=X,X,X,X  ,X,&d"))]
    "reload_completed"
    "#"
    "&& reload_completed"
***************
*** 5907,5925 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3_const"
!   [(set (match_operand:ALL2 0 "register_operand"                "=r,r,r,r,r")
!         (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand"  "0,0,r,0,0")
!                        (match_operand:QI 2 "const_int_operand"   "L,P,O,K,n")))
!    (clobber (match_scratch:QI 3                                 "=X,X,X,X,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrhi3_out (insn, operands, NULL);
    }
!   [(set_attr "length" "0,2,2,4,10")
!    (set_attr "adjust_len" "lshrhi")])
  
! (define_peephole2
    [(match_scratch:QI 3 "d")
     (parallel [(set (match_operand:ALL4 0 "register_operand" "")
                     (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand" "")
--- 6050,6067 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3_const"
!   [(set (match_operand:ALL2 0 "register_operand"                "=r,r,r,r  ,r,r")
!         (lshiftrt:ALL2 (match_operand:ALL2 1 "register_operand"  "0,0,r,r  ,0,0")
!                        (match_operand:QI 2 "const_int_operand"   "L,P,O,C15,K,n")))
!    (clobber (match_scratch:QI 3                                 "=X,X,X,X  ,X,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrhi3_out (insn, operands, NULL);
    }
!   [(set_attr "adjust_len" "lshrhi")])
  
! (define_peephole2 ; "*lshrsi3_const"
    [(match_scratch:QI 3 "d")
     (parallel [(set (match_operand:ALL4 0 "register_operand" "")
                     (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand" "")
***************
*** 5936,5945 ****
  ;; "*lshrsq3_const"  "*lshrusq3_const"
  ;; "*lshrsa3_const"  "*lshrusa3_const"
  (define_insn_and_split "*lshr<mode>3_const_split"
!   [(set (match_operand:ALL4 0 "register_operand"               "=r,r,r,r")
!         (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand" "0,0,r,0")
!                        (match_operand:QI 2 "const_int_operand"  "L,P,O,n")))
!    (clobber (match_scratch:QI 3                                "=X,X,X,&d"))]
    "reload_completed"
    "#"
    "&& reload_completed"
--- 6078,6087 ----
  ;; "*lshrsq3_const"  "*lshrusq3_const"
  ;; "*lshrsa3_const"  "*lshrusa3_const"
  (define_insn_and_split "*lshr<mode>3_const_split"
!   [(set (match_operand:ALL4 0 "register_operand"               "=r,r,r,r  ,r")
!         (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand" "0,0,r,r  ,0")
!                        (match_operand:QI 2 "const_int_operand"  "L,P,O,C31,n")))
!    (clobber (match_scratch:QI 3                                "=X,X,X,X  ,&d"))]
    "reload_completed"
    "#"
    "&& reload_completed"
***************
*** 5950,5966 ****
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3_const"
!   [(set (match_operand:ALL4 0 "register_operand"               "=r,r,r,r")
!         (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand" "0,0,r,0")
!                        (match_operand:QI 2 "const_int_operand"  "L,P,O,n")))
!    (clobber (match_scratch:QI 3                                "=X,X,X,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrsi3_out (insn, operands, NULL);
    }
!   [(set_attr "length" "0,4,4,10")
!    (set_attr "adjust_len" "lshrsi")])
  
  ;; abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x)
  ;; abs
--- 6092,6107 ----
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*lshr<mode>3_const"
!   [(set (match_operand:ALL4 0 "register_operand"               "=r,r,r,r  ,r")
!         (lshiftrt:ALL4 (match_operand:ALL4 1 "register_operand" "0,0,r,r  ,0")
!                        (match_operand:QI 2 "const_int_operand"  "L,P,O,C31,n")))
!    (clobber (match_scratch:QI 3                                "=X,X,X,X  ,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    {
      return lshrsi3_out (insn, operands, NULL);
    }
!   [(set_attr "adjust_len" "lshrsi")])
  
  ;; abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x)
  ;; abs
***************
*** 6112,6128 ****
  
  (define_insn_and_split "negsf2"
    [(set (match_operand:SF 0 "register_operand" "=d,r")
! 	(neg:SF (match_operand:SF 1 "register_operand" "0,0")))]
    ""
    "#"
    "&& reload_completed"
    [(parallel [(set (match_dup 0)
! 	               (neg:SF (match_dup 1)))
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*negsf2"
    [(set (match_operand:SF 0 "register_operand" "=d,r")
! 	(neg:SF (match_operand:SF 1 "register_operand" "0,0")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    "@
--- 6253,6269 ----
  
  (define_insn_and_split "negsf2"
    [(set (match_operand:SF 0 "register_operand" "=d,r")
!         (neg:SF (match_operand:SF 1 "register_operand" "0,0")))]
    ""
    "#"
    "&& reload_completed"
    [(parallel [(set (match_dup 0)
!                    (neg:SF (match_dup 1)))
                (clobber (reg:CC REG_CC))])])
  
  (define_insn "*negsf2"
    [(set (match_operand:SF 0 "register_operand" "=d,r")
!         (neg:SF (match_operand:SF 1 "register_operand" "0,0")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
    "@
***************
*** 6627,6632 ****
--- 6768,6774 ----
      return avr_out_compare (insn, operands, NULL);
    }
    [(set_attr "length" "2,2,2,3,4,2,4")
+    (set_attr "isa" "adiw,*,*,*,*,*,*")
     (set_attr "adjust_len" "tsthi,tsthi,*,*,*,compare,compare")])
  
  (define_insn "*cmppsi"
***************
*** 6686,6691 ****
--- 6828,6838 ----
                                 (match_operand:HISI 1 "const_int_operand")))
                (clobber (match_operand:QI 2 "scratch_operand"))])])
  
+ (define_expand "gen_move_clobbercc"
+   [(parallel [(set (match_operand 0)
+                    (match_operand 1))
+               (clobber (reg:CC REG_CC))])])
+ 
  ;; ----------------------------------------------------------------------
  ;; JUMP INSTRUCTIONS
  ;; ----------------------------------------------------------------------
***************
*** 6877,6884 ****
  
  
  ;; Test a single bit in a QI/HI/SImode register.
! ;; Combine will create zero extract patterns for single bit tests.
! ;; permit any mode in source pattern by using VOIDmode.
  
  (define_insn_and_split "*sbrx_branch<mode>_split"
    [(set (pc)
--- 7024,7031 ----
  
  
  ;; Test a single bit in a QI/HI/SImode register.
! ;; Combine will create zero-extract patterns for single-bit tests.
! ;; Permit any mode in source pattern by using VOIDmode.
  
  (define_insn_and_split "*sbrx_branch<mode>_split"
    [(set (pc)
***************
*** 6930,6937 ****
                                      (const_int 2)
                                      (const_int 4))))])
  
! ;; Same test based on bitwise AND.  Keep this in case gcc changes patterns.
! ;; or for old peepholes.
  ;; Fixme - bitwise Mask will not work for DImode
  
  (define_insn_and_split "*sbrx_and_branch<mode>_split"
--- 7077,7084 ----
                                      (const_int 2)
                                      (const_int 4))))])
  
! ;; Same test based on bitwise AND.  Keep this in case gcc changes patterns
! ;; or for text peepholes.
  ;; Fixme - bitwise Mask will not work for DImode
  
  (define_insn_and_split "*sbrx_and_branch<mode>_split"
***************
*** 7078,7084 ****
             : "rjmp %x0";
    }
    [(set (attr "length")
!         (if_then_else (match_operand 0 "symbol_ref_operand" "")	
                        (if_then_else (match_test "!AVR_HAVE_JMP_CALL")
                                      (const_int 1)
                                      (const_int 2))
--- 7225,7231 ----
             : "rjmp %x0";
    }
    [(set (attr "length")
!         (if_then_else (match_operand 0 "symbol_ref_operand" "")
                        (if_then_else (match_test "!AVR_HAVE_JMP_CALL")
                                      (const_int 1)
                                      (const_int 2))
***************
*** 7129,7138 ****
    ;; Operand 2 is 1 for tail-call, 0 otherwise.
    ""
    "@
!     %!icall
!     %~call %x0
!     %!ijmp
!     %~jmp %x0"
    [(set_attr "length" "1,*,1,*")
     (set_attr "adjust_len" "*,call,*,call")])
  
--- 7276,7285 ----
    ;; Operand 2 is 1 for tail-call, 0 otherwise.
    ""
    "@
! 	%!icall
! 	%~call %x0
! 	%!ijmp
! 	%~jmp %x0"
    [(set_attr "length" "1,*,1,*")
     (set_attr "adjust_len" "*,call,*,call")])
  
***************
*** 7145,7154 ****
    ;; Operand 3 is 1 for tail-call, 0 otherwise.
    ""
    "@
!     %!icall
!     %~call %x1
!     %!ijmp
!     %~jmp %x1"
    [(set_attr "length" "1,*,1,*")
     (set_attr "adjust_len" "*,call,*,call")])
  
--- 7292,7301 ----
    ;; Operand 3 is 1 for tail-call, 0 otherwise.
    ""
    "@
! 	%!icall
! 	%~call %x1
! 	%!ijmp
! 	%~jmp %x1"
    [(set_attr "length" "1,*,1,*")
     (set_attr "adjust_len" "*,call,*,call")])
  
***************
*** 7282,7288 ****
  ;;   "casesi_<mode>_sequence" (used to recog + extract casesi
  ;;   sequences in pass .avr-casesi) and propagate all adjustments
  ;;   also to that pattern and the code of the extra pass.
!   
  (define_expand "casesi"
    [(parallel [(set (match_dup 5)
                     (plus:SI (match_operand:SI 0 "register_operand")
--- 7429,7435 ----
  ;;   "casesi_<mode>_sequence" (used to recog + extract casesi
  ;;   sequences in pass .avr-casesi) and propagate all adjustments
  ;;   also to that pattern and the code of the extra pass.
! 
  (define_expand "casesi"
    [(parallel [(set (match_dup 5)
                     (plus:SI (match_operand:SI 0 "register_operand")
***************
*** 7598,7606 ****
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
!     const char *op;
!     int jump_mode;
!     if (test_hard_reg_class (ADDW_REGS, operands[0]))
        output_asm_insn ("sbiw %0,1" CR_TAB
                         "sbc %C0,__zero_reg__" CR_TAB
                         "sbc %D0,__zero_reg__", operands);
--- 7745,7751 ----
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
!     if (avr_adiw_reg_p (operands[0]))
        output_asm_insn ("sbiw %0,1" CR_TAB
                         "sbc %C0,__zero_reg__" CR_TAB
                         "sbc %D0,__zero_reg__", operands);
***************
*** 7610,7617 ****
                         "sbc %C0,__zero_reg__" CR_TAB
                         "sbc %D0,__zero_reg__", operands);
  
!     jump_mode = avr_jump_mode (operands[2], insn);
!     op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
--- 7755,7762 ----
                         "sbc %C0,__zero_reg__" CR_TAB
                         "sbc %D0,__zero_reg__", operands);
  
!     int jump_mode = avr_jump_mode (operands[2], insn);
!     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
***************
*** 7641,7656 ****
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
!     const char *op;
!     int jump_mode;
!     if (test_hard_reg_class (ADDW_REGS, operands[0]))
        output_asm_insn ("sbiw %0,1", operands);
      else
        output_asm_insn ("subi %A0,1" CR_TAB
                         "sbc %B0,__zero_reg__", operands);
  
!     jump_mode = avr_jump_mode (operands[2], insn);
!     op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
--- 7786,7799 ----
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
!     if (avr_adiw_reg_p (operands[0]))
        output_asm_insn ("sbiw %0,1", operands);
      else
        output_asm_insn ("subi %A0,1" CR_TAB
                         "sbc %B0,__zero_reg__", operands);
  
!     int jump_mode = avr_jump_mode (operands[2], insn);
!     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
***************
*** 7682,7697 ****
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
!     const char *op;
!     int jump_mode;
!     if (test_hard_reg_class (ADDW_REGS, operands[0]))
        output_asm_insn ("sbiw %0,1", operands);
      else
        output_asm_insn ("subi %A0,1" CR_TAB
                         "sbc %B0,__zero_reg__", operands);
  
!     jump_mode = avr_jump_mode (operands[2], insn);
!     op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
--- 7825,7838 ----
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
!     if (avr_adiw_reg_p (operands[0]))
        output_asm_insn ("sbiw %0,1", operands);
      else
        output_asm_insn ("subi %A0,1" CR_TAB
                         "sbc %B0,__zero_reg__", operands);
  
!     int jump_mode = avr_jump_mode (operands[2], insn);
!     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
***************
*** 7723,7736 ****
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
-     const char *op;
-     int jump_mode;
      output_asm_insn ("ldi %3,1"   CR_TAB
                       "sub %A0,%3" CR_TAB
                       "sbc %B0,__zero_reg__", operands);
  
!     jump_mode = avr_jump_mode (operands[2], insn);
!     op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
--- 7864,7875 ----
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
      output_asm_insn ("ldi %3,1"   CR_TAB
                       "sub %A0,%3" CR_TAB
                       "sbc %B0,__zero_reg__", operands);
  
!     int jump_mode = avr_jump_mode (operands[2], insn);
!     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
***************
*** 7759,7771 ****
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
-     const char *op;
-     int jump_mode;
- 
      output_asm_insn ("subi %A0,1", operands);
  
!     jump_mode = avr_jump_mode (operands[1], insn);
!     op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[0] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
--- 7898,7907 ----
                        (pc)))]
    "dead_or_set_regno_p (insn, REG_CC)"
    {
      output_asm_insn ("subi %A0,1", operands);
  
!     int jump_mode = avr_jump_mode (operands[1], insn);
!     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
      operands[0] = gen_rtx_CONST_STRING (VOIDmode, op);
  
      switch (jump_mode)
***************
*** 7873,7879 ****
    [(unspec_volatile [(match_operand:QI 0 "const_int_operand" "L,P")]
                      UNSPECV_ENABLE_IRQS)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))]
    ""
    "@
  	cli
--- 8009,8015 ----
    [(unspec_volatile [(match_operand:QI 0 "const_int_operand" "L,P")]
                      UNSPECV_ENABLE_IRQS)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))]
    ""
    "@
  	cli
***************
*** 8013,8019 ****
                       (const_int 1)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))]
    ""
    "#"
--- 8149,8155 ----
                       (const_int 1)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))]
    ""
    "#"
***************
*** 8031,8037 ****
                       (const_int 1)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
--- 8167,8173 ----
                       (const_int 1)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
***************
*** 8045,8051 ****
                       (const_int 2)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:HI 2 "=&w,&d"))]
    ""
    "#"
--- 8181,8187 ----
                       (const_int 2)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:HI 2 "=&w,&d"))]
    ""
    "#"
***************
*** 8058,8071 ****
                (clobber (match_dup 2))
                (clobber (reg:CC REG_CC))])]
    ""
!   [(set_attr "isa" "no_tiny,tiny")])
  
  (define_insn "*delay_cycles_2"
    [(unspec_volatile [(match_operand:HI 0 "const_int_operand" "n,n")
                       (const_int 2)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:HI 2 "=&w,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
--- 8194,8207 ----
                (clobber (match_dup 2))
                (clobber (reg:CC REG_CC))])]
    ""
!   [(set_attr "isa" "adiw,no_adiw")])
  
  (define_insn "*delay_cycles_2"
    [(unspec_volatile [(match_operand:HI 0 "const_int_operand" "n,n")
                       (const_int 2)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:HI 2 "=&w,&d"))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
***************
*** 8073,8086 ****
  	ldi %A2,lo8(%0)\;ldi %B2,hi8(%0)\n1:	sbiw %A2,1\;brne 1b
  	ldi %A2,lo8(%0)\;ldi %B2,hi8(%0)\n1:	subi %A2,1\;sbci %B2,0\;brne 1b"
    [(set_attr "length" "4,5")
!    (set_attr "isa" "no_tiny,tiny")])
  
  (define_insn_and_split "delay_cycles_3"
    [(unspec_volatile [(match_operand:SI 0 "const_int_operand" "n")
                       (const_int 3)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (match_scratch:QI 3 "=&d"))
     (clobber (match_scratch:QI 4 "=&d"))]
--- 8209,8222 ----
  	ldi %A2,lo8(%0)\;ldi %B2,hi8(%0)\n1:	sbiw %A2,1\;brne 1b
  	ldi %A2,lo8(%0)\;ldi %B2,hi8(%0)\n1:	subi %A2,1\;sbci %B2,0\;brne 1b"
    [(set_attr "length" "4,5")
!    (set_attr "isa" "adiw,no_adiw")])
  
  (define_insn_and_split "delay_cycles_3"
    [(unspec_volatile [(match_operand:SI 0 "const_int_operand" "n")
                       (const_int 3)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (match_scratch:QI 3 "=&d"))
     (clobber (match_scratch:QI 4 "=&d"))]
***************
*** 8102,8108 ****
                       (const_int 3)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (match_scratch:QI 3 "=&d"))
     (clobber (match_scratch:QI 4 "=&d"))
--- 8238,8244 ----
                       (const_int 3)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (match_scratch:QI 3 "=&d"))
     (clobber (match_scratch:QI 4 "=&d"))
***************
*** 8122,8128 ****
                       (const_int 4)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (match_scratch:QI 3 "=&d"))
     (clobber (match_scratch:QI 4 "=&d"))
--- 8258,8264 ----
                       (const_int 4)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (match_scratch:QI 3 "=&d"))
     (clobber (match_scratch:QI 4 "=&d"))
***************
*** 8146,8152 ****
                       (const_int 4)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (match_scratch:QI 3 "=&d"))
     (clobber (match_scratch:QI 4 "=&d"))
--- 8282,8288 ----
                       (const_int 4)]
                      UNSPECV_DELAY_CYCLES)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))
     (clobber (match_scratch:QI 2 "=&d"))
     (clobber (match_scratch:QI 3 "=&d"))
     (clobber (match_scratch:QI 4 "=&d"))
***************
*** 8727,8733 ****
    [(unspec_volatile [(match_operand:SI 0 "const_int_operand" "P,K")]
                      UNSPECV_NOP)
     (set (match_operand:BLK 1 "" "")
! 	(unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))]
    ""
    "@
  	nop
--- 8863,8869 ----
    [(unspec_volatile [(match_operand:SI 0 "const_int_operand" "P,K")]
                      UNSPECV_NOP)
     (set (match_operand:BLK 1 "" "")
!         (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))]
    ""
    "@
  	nop
***************
*** 8749,8755 ****
  (define_insn "*sleep"
    [(unspec_volatile [(const_int 0)] UNSPECV_SLEEP)
     (set (match_operand:BLK 0 "" "")
! 	(unspec_volatile:BLK [(match_dup 0)] UNSPECV_MEMORY_BARRIER))]
    ""
    "sleep"
    [(set_attr "length" "1")])
--- 8885,8891 ----
  (define_insn "*sleep"
    [(unspec_volatile [(const_int 0)] UNSPECV_SLEEP)
     (set (match_operand:BLK 0 "" "")
!         (unspec_volatile:BLK [(match_dup 0)] UNSPECV_MEMORY_BARRIER))]
    ""
    "sleep"
    [(set_attr "length" "1")])
***************
*** 8769,8775 ****
  (define_insn "*wdr"
    [(unspec_volatile [(const_int 0)] UNSPECV_WDR)
     (set (match_operand:BLK 0 "" "")
! 	(unspec_volatile:BLK [(match_dup 0)] UNSPECV_MEMORY_BARRIER))]
    ""
    "wdr"
    [(set_attr "length" "1")])
--- 8905,8911 ----
  (define_insn "*wdr"
    [(unspec_volatile [(const_int 0)] UNSPECV_WDR)
     (set (match_operand:BLK 0 "" "")
!         (unspec_volatile:BLK [(match_dup 0)] UNSPECV_MEMORY_BARRIER))]
    ""
    "wdr"
    [(set_attr "length" "1")])
***************
*** 9145,9150 ****
--- 9281,9301 ----
  
  ;; Same, but with a NOT inverting the source bit.
  ;; Insert bit ~$2.$3 into $0.$1
+ (define_insn "insv_notbit"
+   [(set (zero_extract:QI (match_operand:QI 0 "register_operand"            "+r")
+                          (const_int 1)
+                          (match_operand:QI 1 "const_0_to_7_operand"         "n"))
+         (not:QI (zero_extract:QI (match_operand:QI 2 "register_operand"     "r")
+                                  (const_int 1)
+                                  (match_operand:QI 3 "const_0_to_7_operand" "n"))))
+    (clobber (reg:CC REG_CC))]
+   "reload_completed"
+   {
+     return avr_out_insert_notbit (insn, operands, NULL);
+   }
+   [(set_attr "adjust_len" "insv_notbit")])
+ 
+ ;; Insert bit ~$2.$3 into $0.$1
  (define_insn_and_split "*insv.not-shiftrt_split"
    [(set (zero_extract:QI (match_operand:QI 0 "register_operand"           "+r")
                           (const_int 1)
***************
*** 9154,9178 ****
    ""
    "#"
    "&& reload_completed"
!   [(parallel [(set (zero_extract:QI (match_dup 0)
!                                     (const_int 1)
!                                     (match_dup 1))
!                    (not:QI (any_shiftrt:QI (match_dup 2)
!                                            (match_dup 3))))
!               (clobber (reg:CC REG_CC))])])
! 
! (define_insn "*insv.not-shiftrt"
!   [(set (zero_extract:QI (match_operand:QI 0 "register_operand"           "+r")
!                          (const_int 1)
!                          (match_operand:QI 1 "const_0_to_7_operand"        "n"))
!         (not:QI (any_shiftrt:QI (match_operand:QI 2 "register_operand"     "r")
!                                 (match_operand:QI 3 "const_0_to_7_operand" "n"))))
!    (clobber (reg:CC REG_CC))]
!   "reload_completed"
    {
!     return avr_out_insert_notbit (insn, operands, NULL_RTX, NULL);
!   }
!   [(set_attr "adjust_len" "insv_notbit")])
  
  ;; Insert bit ~$2.0 into $0.$1
  (define_insn_and_split "*insv.xor1-bit.0_split"
--- 9305,9315 ----
    ""
    "#"
    "&& reload_completed"
!   [(scratch)]
    {
!     emit (gen_insv_notbit (operands[0], operands[1], operands[2], operands[3]));
!     DONE;
!   })
  
  ;; Insert bit ~$2.0 into $0.$1
  (define_insn_and_split "*insv.xor1-bit.0_split"
***************
*** 9184,9208 ****
    ""
    "#"
    "&& reload_completed"
!   [(parallel [(set (zero_extract:QI (match_dup 0)
!                                     (const_int 1)
!                                     (match_dup 1))
!                    (xor:QI (match_dup 2)
!                            (const_int 1)))
!               (clobber (reg:CC REG_CC))])])
! 
! (define_insn "*insv.xor1-bit.0"
!   [(set (zero_extract:QI (match_operand:QI 0 "register_operand"    "+r")
!                          (const_int 1)
!                          (match_operand:QI 1 "const_0_to_7_operand" "n"))
!         (xor:QI (match_operand:QI 2 "register_operand"              "r")
!                 (const_int 1)))
!    (clobber (reg:CC REG_CC))]
!   "reload_completed"
    {
!     return avr_out_insert_notbit (insn, operands, const0_rtx, NULL);
!   }
!   [(set_attr "adjust_len" "insv_notbit_0")])
  
  ;; Insert bit ~$2.0 into $0.$1
  (define_insn_and_split "*insv.not-bit.0_split"
--- 9321,9331 ----
    ""
    "#"
    "&& reload_completed"
!   [(scratch)]
    {
!     emit (gen_insv_notbit (operands[0], operands[1], operands[2], const0_rtx));
!     DONE;
!   })
  
  ;; Insert bit ~$2.0 into $0.$1
  (define_insn_and_split "*insv.not-bit.0_split"
***************
*** 9213,9235 ****
    ""
    "#"
    "&& reload_completed"
!   [(parallel [(set (zero_extract:QI (match_dup 0)
!                                     (const_int 1)
!                                     (match_dup 1))
!                    (not:QI (match_dup 2)))
!               (clobber (reg:CC REG_CC))])])
! 
! (define_insn "*insv.not-bit.0"
!   [(set (zero_extract:QI (match_operand:QI 0 "register_operand"    "+r")
!                          (const_int 1)
!                          (match_operand:QI 1 "const_0_to_7_operand" "n"))
!         (not:QI (match_operand:QI 2 "register_operand"              "r")))
!    (clobber (reg:CC REG_CC))]
!   "reload_completed"
    {
!     return avr_out_insert_notbit (insn, operands, const0_rtx, NULL);
!   }
!   [(set_attr "adjust_len" "insv_notbit_0")])
  
  ;; Insert bit ~$2.7 into $0.$1
  (define_insn_and_split "*insv.not-bit.7_split"
--- 9336,9346 ----
    ""
    "#"
    "&& reload_completed"
!   [(scratch)]
    {
!     emit (gen_insv_notbit (operands[0], operands[1], operands[2], const0_rtx));
!     DONE;
!   })
  
  ;; Insert bit ~$2.7 into $0.$1
  (define_insn_and_split "*insv.not-bit.7_split"
***************
*** 9241,9265 ****
    ""
    "#"
    "&& reload_completed"
!   [(parallel [(set (zero_extract:QI (match_dup 0)
!                                     (const_int 1)
!                                     (match_dup 1))
!                    (ge:QI (match_dup 2)
!                           (const_int 0)))
!                (clobber (reg:CC REG_CC))])])
! 
! (define_insn "*insv.not-bit.7"
!   [(set (zero_extract:QI (match_operand:QI 0 "register_operand"    "+r")
!                          (const_int 1)
!                          (match_operand:QI 1 "const_0_to_7_operand" "n"))
!         (ge:QI (match_operand:QI 2 "register_operand"               "r")
!                (const_int 0)))
!    (clobber (reg:CC REG_CC))]
!   "reload_completed"
    {
!     return avr_out_insert_notbit (insn, operands, GEN_INT (7), NULL);
!   }
!   [(set_attr "adjust_len" "insv_notbit_7")])
  
  ;; Insert bit ~$2.$3 into $0.$1
  (define_insn_and_split "*insv.xor-extract_split"
--- 9352,9362 ----
    ""
    "#"
    "&& reload_completed"
!   [(scratch)]
    {
!     emit (gen_insv_notbit (operands[0], operands[1], operands[2], GEN_INT(7)));
!     DONE;
!   })
  
  ;; Insert bit ~$2.$3 into $0.$1
  (define_insn_and_split "*insv.xor-extract_split"
***************
*** 9273,9303 ****
    "INTVAL (operands[4]) & (1 << INTVAL (operands[3]))"
    "#"
    "&& reload_completed"
!   [(parallel [(set (zero_extract:QI (match_dup 0)
!                                     (const_int 1)
!                                     (match_dup 1))
!                    (any_extract:QI (xor:QI (match_dup 2)
!                                            (match_dup 4))
!                                    (const_int 1)
!                                    (match_dup 3)))
!               (clobber (reg:CC REG_CC))])])
! 
! (define_insn "*insv.xor-extract"
!   [(set (zero_extract:QI (match_operand:QI 0 "register_operand"        "+r")
!                          (const_int 1)
!                          (match_operand:QI 1 "const_0_to_7_operand"     "n"))
!         (any_extract:QI (xor:QI (match_operand:QI 2 "register_operand"  "r")
!                                 (match_operand:QI 4 "const_int_operand" "n"))
!                         (const_int 1)
!                         (match_operand:QI 3 "const_0_to_7_operand"      "n")))
!    (clobber (reg:CC REG_CC))]
!   "INTVAL (operands[4]) & (1 << INTVAL (operands[3])) && reload_completed"
    {
!     return avr_out_insert_notbit (insn, operands, NULL_RTX, NULL);
!   }
!   [(set_attr "adjust_len" "insv_notbit")])
  
- 
  ;; Some combine patterns that try to fix bad code when a value is composed
  ;; from byte parts like in PR27663.
  ;; The patterns give some release but the code still is not optimal,
--- 9370,9382 ----
    "INTVAL (operands[4]) & (1 << INTVAL (operands[3]))"
    "#"
    "&& reload_completed"
!   [(scratch)]
    {
!     emit (gen_insv_notbit (operands[0], operands[1], operands[2], operands[3]));
!     DONE;
!   })
! 
  
  ;; Some combine patterns that try to fix bad code when a value is composed
  ;; from byte parts like in PR27663.
  ;; The patterns give some release but the code still is not optimal,
***************
*** 9673,9689 ****
    })
  
  
! (define_expand "extzv"
!   [(set (match_operand:QI 0 "register_operand" "")
!         (zero_extract:QI (match_operand:QI 1 "register_operand"  "")
!                          (match_operand:QI 2 "const1_operand" "")
!                          (match_operand:QI 3 "const_0_to_7_operand" "")))])
  
! (define_insn_and_split "*extzv_split"
!   [(set (match_operand:QI 0 "register_operand"                   "=*d,*d,*d,*d,r")
!         (zero_extract:QI (match_operand:QI 1 "register_operand"     "0,r,0,0,r")
                           (const_int 1)
!                          (match_operand:QI 2 "const_0_to_7_operand" "L,L,P,C04,n")))]
    ""
    "#"
    "&& reload_completed"
--- 9752,9768 ----
    })
  
  
! (define_expand "extzv<mode>"
!   [(set (match_operand:QI 0 "register_operand")
!         (zero_extract:QI (match_operand:QISI 1 "register_operand")
!                          (match_operand:QI 2 "const1_operand")
!                          (match_operand:QI 3 "const_0_to_<MSB>_operand")))])
  
! (define_insn_and_split "*extzv<mode>_split"
!   [(set (match_operand:QI 0 "register_operand" "=r")
!         (zero_extract:QI (match_operand:QISI 1 "reg_or_low_io_operand" "r Yil")
                           (const_int 1)
!                          (match_operand:QI 2 "const_0_to_<MSB>_operand" "n")))]
    ""
    "#"
    "&& reload_completed"
***************
*** 9691,9712 ****
                     (zero_extract:QI (match_dup 1)
                                      (const_int 1)
                                      (match_dup 2)))
!               (clobber (reg:CC REG_CC))])])
  
! (define_insn "*extzv"
!   [(set (match_operand:QI 0 "register_operand"                   "=*d,*d,*d,*d,r")
!         (zero_extract:QI (match_operand:QI 1 "register_operand"     "0,r,0,0,r")
                           (const_int 1)
!                          (match_operand:QI 2 "const_0_to_7_operand" "L,L,P,C04,n")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
!   "@
! 	andi %0,1
! 	mov %0,%1\;andi %0,1
! 	lsr %0\;andi %0,1
! 	swap %0\;andi %0,1
! 	bst %1,%2\;clr %0\;bld %0,0"
!   [(set_attr "length" "1,2,2,2,3")])
  
  (define_insn_and_split "*extzv.qihi1"
    [(set (match_operand:HI 0 "register_operand"                     "=r")
--- 9770,9797 ----
                     (zero_extract:QI (match_dup 1)
                                      (const_int 1)
                                      (match_dup 2)))
!               (clobber (reg:CC REG_CC))])]
!   {
!     if (! MEM_P (operands[1]))
!       {
!         int bitno = INTVAL (operands[2]);
!         operands[1] = simplify_gen_subreg (QImode, operands[1], <MODE>mode, bitno / 8);
!         operands[2] = GEN_INT (bitno % 8);
!       }
!   })
  
! (define_insn "*extzv<mode>"
!   [(set (match_operand:QI 0 "register_operand" "=r")
!         (zero_extract:QI (match_operand:QISI 1 "reg_or_low_io_operand" "r Yil")
                           (const_int 1)
!                          (match_operand:QI 2 "const_0_to_<MSB>_operand" "n")))
     (clobber (reg:CC REG_CC))]
    "reload_completed"
!   {
!     return avr_out_extr (insn, operands, nullptr);
!   }
!   [(set_attr "adjust_len" "extr")])
! 
  
  (define_insn_and_split "*extzv.qihi1"
    [(set (match_operand:HI 0 "register_operand"                     "=r")
***************
*** 9727,9742 ****
      operands[4] = simplify_gen_subreg (QImode, operands[0], HImode, 1);
    })
  
! (define_insn_and_split "*extzv.qihi2"
!   [(set (match_operand:HI 0 "register_operand"                      "=r")
!         (zero_extend:HI
!          (zero_extract:QI (match_operand:QI 1 "register_operand"     "r")
                            (const_int 1)
!                           (match_operand:QI 2 "const_0_to_7_operand" "n"))))]
    ""
    "#"
    ""
!   [(set (match_dup 3)
          (zero_extract:QI (match_dup 1)
                           (const_int 1)
                           (match_dup 2)))
--- 9812,9996 ----
      operands[4] = simplify_gen_subreg (QImode, operands[0], HImode, 1);
    })
  
! (define_insn_and_split "*extzv.not_split"
!   [(set (match_operand:QI 0 "register_operand" "=r")
!         (zero_extract:QI (not:QI (match_operand:QI 1 "reg_or_low_io_operand" "r Yil"))
!                          (const_int 1)
!                          (match_operand:QI 2 "const_0_to_7_operand" "n")))]
!   ""
!   "#"
!   "&& reload_completed"
!   [(parallel [(set (match_dup 0)
!                    (zero_extract:QI (not:QI (match_dup 1))
!                                     (const_int 1)
!                                     (match_dup 2)))
!               (clobber (reg:CC REG_CC))])])
! 
! (define_insn "*extzv.not"
!   [(set (match_operand:QI 0 "register_operand" "=r")
!         (zero_extract:QI (not:QI (match_operand:QI 1 "reg_or_low_io_operand" "r Yil"))
!                          (const_int 1)
!                          (match_operand:QI 2 "const_0_to_7_operand" "n")))
!    (clobber (reg:CC REG_CC))]
!   "reload_completed"
!   {
!     return avr_out_extr_not (insn, operands, nullptr);
!   }
!   [(set_attr "adjust_len" "extr_not")])
! 
! (define_insn_and_split "*extzv.subreg.<mode>"
!   [(set (match_operand:QI 0 "register_operand"                                "=r")
!         (subreg:QI (zero_extract:HISI (match_operand:HISI 1 "register_operand" "r")
!                                       (const_int 1)
!                                       (match_operand:QI 2 "const_0_to_<MSB>_operand" "n"))
!                    0))]
!    "! reload_completed"
!    { gcc_unreachable(); }
!    "&& 1"
!    [; "*extzv<mode>_split"
!     (set (match_dup 0)
!          (zero_extract:QI (match_dup 1)
                            (const_int 1)
!                           (match_dup 2)))])
! 
! ;; Possible subreg bytes.
! (define_int_iterator SuReB [0 1 2 3])
! 
! (define_insn_and_split "*extzv.<mode>.subreg<SuReB>"
!   [(set (match_operand:QI 0 "register_operand" "=r")
!         (zero_extract:QI (subreg:QI
!                           (and:HISI (match_operand:HISI 1 "register_operand" "r")
!                                     (match_operand:HISI 2 "single_one_operand" "n"))
!                           SuReB)
!                          (const_int 1)
!                          (match_operand:QI 3 "const_0_to_7_operand" "n")))]
!   "! reload_completed
!    && IN_RANGE (UINTVAL(operands[2]) & GET_MODE_MASK(<MODE>mode),
!                 1U << (8 * <SuReB>), 0x80U << (8 * <SuReB>))
!    && exact_log2 (UINTVAL(operands[2]) & GET_MODE_MASK(<MODE>mode))
!       == 8 * <SuReB> + INTVAL (operands[3])"
!   { gcc_unreachable(); }
!   "&& 1"
!   [; "*extzv<mode>_split"
!    (set (match_dup 0)
!         (zero_extract:QI (match_dup 1)
!                          (const_int 1)
!                          (match_dup 4)))]
!   {
!     operands[4] = plus_constant (QImode, operands[3], 8 * <SuReB>);
!   })
! 
! 
! (define_insn_and_split "*extzv.xor"
!   [(set (match_operand:QI 0 "register_operand")
!         (zero_extract:QI (xor:QI (match_operand:QI 1 "reg_or_low_io_operand")
!                                  (match_operand:QI 2 "single_one_operand"))
!                          (const_int 1)
!                          (match_operand:QI 3 "const_0_to_7_operand")))]
!   "! reload_completed
!    && ((1 << INTVAL (operands[3])) & INTVAL (operands[2])) != 0"
!   { gcc_unreachable(); }
!   "&& 1"
!   [; "*extzv.not_split"
!    (set (match_dup 0)
!         (zero_extract:QI (not:QI (match_dup 1))
!                          (const_int 1)
!                          (match_dup 3)))])
! 
! 
! (define_insn_and_split "*extzv<mode>.ge"
!   [(set (match_operand:QI 0 "register_operand" "=r")
!         (ge:QI (match_operand:QISI 1 "reg_or_low_io_operand" "r Yil")
!                (match_operand:QISI 2 "const0_operand" "Y00")))]
    ""
    "#"
+   "reload_completed"
+   [; "*extzv.not"
+    (parallel [(set (match_dup 0)
+                    (zero_extract:QI (not:QI (match_dup 1))
+                                     (const_int 1)
+                                     (const_int 7)))
+               (clobber (reg:CC REG_CC))])]
+   {
+     if (! MEM_P (operands[1]))
+       {
+         int msb = <SIZE> - 1;
+         operands[1] = simplify_gen_subreg (QImode, operands[1], <MODE>mode, msb);
+       }
+   })
+ 
+ (define_insn_and_split "*neg.ashiftrt<mode>.msb"
+   [(set (match_operand:QI 0 "register_operand" "=r")
+         (neg:QI (subreg:QI
+                  (ashiftrt:QISI (match_operand:QISI 1 "register_operand" "r")
+                                 (match_operand:QI 2 "const<MSB>_operand" "n"))
+                  0)))]
+   "! reload_completed"
+   { gcc_unreachable(); }
+   "&& 1"
+   [; "*extzv<mode>_split"
+    (set (match_dup 0)
+         (zero_extract:QI (match_dup 1)
+                          (const_int 1)
+                          (match_dup 2)))])
+ 
+ (define_insn_and_split "*extzv.io.lsr7"
+   [(set (match_operand:QI 0 "register_operand")
+         (lshiftrt:QI (match_operand:QI 1 "reg_or_low_io_operand")
+                      (const_int 7)))]
+   "! reload_completed"
+   { gcc_unreachable(); }
+   "&& 1"
+   [; "*extzv_split"
+    (set (match_dup 0)
+         (zero_extract:QI (match_dup 1)
+                          (const_int 1)
+                          (const_int 7)))])
+ 
+ ;; This insn serves as a combine bridge because insn combine will only
+ ;; combine so much (3) insns at most.  It's not actually an open coded
+ ;; bit-insertion but just a part of it.  It may occur in other contexts
+ ;; than INSV though, and in such a case the code may be worse than without
+ ;; this pattern.  We still have to emit code for it in that case because
+ ;; we cannot roll back.
+ (define_insn_and_split "*insv.any_shift.<mode>_split"
+   [(set (match_operand:QISI 0 "register_operand" "=r")
+         (and:QISI (any_shift:QISI (match_operand:QISI 1 "register_operand" "r")
+                                   (match_operand:QI 2 "const_0_to_<MSB>_operand" "n"))
+                   (match_operand:QISI 3 "single_one_operand" "n")))]
    ""
!   "#"
!   "&& reload_completed"
!   [(parallel [(set (match_dup 0)
!                    (and:QISI (any_shift:QISI (match_dup 1)
!                                              (match_dup 2))
!                              (match_dup 3)))
!               (clobber (reg:CC REG_CC))])])
! 
! (define_insn "*insv.any_shift.<mode>"
!   [(set (match_operand:QISI 0 "register_operand" "=r")
!         (and:QISI (any_shift:QISI (match_operand:QISI 1 "register_operand" "r")
!                                   (match_operand:QI 2 "const_0_to_<MSB>_operand" "n"))
!                   (match_operand:QISI 3 "single_one_operand" "n")))
!    (clobber (reg:CC REG_CC))]
!   "reload_completed"
!   {
!     return avr_out_insv (insn, operands, nullptr);
!   }
!   [(set_attr "adjust_len" "insv")])
! 
! 
! (define_insn_and_split "*extzv.<mode>hi2"
!   [(set (match_operand:HI 0 "register_operand"                      "=r")
!         (zero_extend:HI
!          (zero_extract:QI (match_operand:QISI 1 "register_operand"   "r")
!                           (const_int 1)
!                           (match_operand:QI 2 "const_0_to_<MSB>_operand" "n"))))]
!   "! reload_completed"
!   { gcc_unreachable(); }
!   "&& 1"
!   [; "*extzv<mode>_split"
!    (set (match_dup 3)
          (zero_extract:QI (match_dup 1)
                           (const_int 1)
                           (match_dup 2)))
***************
*** 9750,9773 ****
  ;; ??? do_store_flag emits a hard-coded right shift to extract a bit without
  ;; even considering rtx_costs, extzv, or a bit-test.  See PR 55181 for an example.
  (define_insn_and_split "*extract.subreg.bit"
!   [(set (match_operand:QI 0 "register_operand"                                       "=r")
!         (and:QI (subreg:QI (any_shiftrt:HISI (match_operand:HISI 1 "register_operand" "r")
!                                              (match_operand:QI 2 "const_int_operand"  "n"))
!                            0)
                  (const_int 1)))]
!   "INTVAL (operands[2]) < GET_MODE_BITSIZE (<MODE>mode)"
    { gcc_unreachable(); }
!   "&& reload_completed"
!   [;; "*extzv"
     (set (match_dup 0)
!         (zero_extract:QI (match_dup 3)
                           (const_int 1)
!                          (match_dup 4)))]
!   {
!     int bitno = INTVAL (operands[2]);
!     operands[3] = simplify_gen_subreg (QImode, operands[1], <MODE>mode, bitno / 8);
!     operands[4] = GEN_INT (bitno % 8);
!   })
  
  
  ;; Fixed-point instructions
--- 10004,10023 ----
  ;; ??? do_store_flag emits a hard-coded right shift to extract a bit without
  ;; even considering rtx_costs, extzv, or a bit-test.  See PR 55181 for an example.
  (define_insn_and_split "*extract.subreg.bit"
!   [(set (match_operand:QI 0 "register_operand"                                   "=r")
!         (and:QI (subreg:QI
!                  (any_shiftrt:HISI (match_operand:HISI 1 "register_operand"       "r")
!                                    (match_operand:QI 2 "const_0_to_<MSB>_operand" "n"))
!                  0)
                  (const_int 1)))]
!   "! reload_completed"
    { gcc_unreachable(); }
!   "&& 1"
!   [;; "*extzv<mode>_split"
     (set (match_dup 0)
!         (zero_extract:QI (match_dup 1)
                           (const_int 1)
!                          (match_dup 2)))])
  
  
  ;; Fixed-point instructions
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr.opt gcc-14.1.0/gcc/config/avr/avr.opt
*** gcc-13.2.0/gcc/config/avr/avr.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avr.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the ATMEL AVR port of the compiler.
  
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the ATMEL AVR port of the compiler.
  
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
***************
*** 19,46 ****
  ; <http://www.gnu.org/licenses/>.
  
  mcall-prologues
! Target Mask(CALL_PROLOGUES)
! Use subroutines for function prologues and epilogues.
  
  mmcu=
  Target RejectNegative Joined Var(avr_mmcu) MissingArgError(missing device or architecture after %qs)
! -mmcu=MCU	Select the target MCU.
  
  mgas-isr-prologues
! Target Var(avr_gasisr_prologues) UInteger Init(0)
! Allow usage of __gcc_isr pseudo instructions in ISR prologues and epilogues.
  
  mn-flash=
  Target RejectNegative Joined Var(avr_n_flash) UInteger Init(-1)
! Set the number of 64 KiB flash segments.
  
  mskip-bug
  Target Mask(SKIP_BUG)
! Indicate presence of a processor erratum.
  
  mrmw
  Target Mask(RMW)
! Enable Read-Modify-Write (RMW) instructions support/use.
  
  mdeb
  Target Undocumented Mask(ALL_DEBUG)
--- 19,46 ----
  ; <http://www.gnu.org/licenses/>.
  
  mcall-prologues
! Target Mask(CALL_PROLOGUES) Optimization
! Optimization. Use subroutines for function prologues and epilogues.
  
  mmcu=
  Target RejectNegative Joined Var(avr_mmcu) MissingArgError(missing device or architecture after %qs)
! -mmcu=<MCU>	Select the target MCU.
  
  mgas-isr-prologues
! Target Var(avr_gasisr_prologues) UInteger Init(0) Optimization
! Optimization. Allow usage of __gcc_isr pseudo instructions in ISR prologues and epilogues.
  
  mn-flash=
  Target RejectNegative Joined Var(avr_n_flash) UInteger Init(-1)
! This option is used internally. Set the number of 64 KiB flash segments.
  
  mskip-bug
  Target Mask(SKIP_BUG)
! This option is used internally. Indicate presence of a processor erratum.  Do not skip 32-bit instructions.
  
  mrmw
  Target Mask(RMW)
! This option is used internally. Enable Read-Modify-Write (RMW) instructions support/use.
  
  mdeb
  Target Undocumented Mask(ALL_DEBUG)
*************** Target RejectNegative Joined Undocumente
*** 50,56 ****
  
  mshort-calls
  Target RejectNegative Mask(SHORT_CALLS)
! Use RJMP / RCALL even though CALL / JMP are available.
  
  mint8
  Target Mask(INT8)
--- 50,56 ----
  
  mshort-calls
  Target RejectNegative Mask(SHORT_CALLS)
! This option is used internally for multilib generation and selection.  Assume RJMP / RCALL can target all program memory.
  
  mint8
  Target Mask(INT8)
*************** Target RejectNegative Mask(NO_INTERRUPTS
*** 61,72 ****
  Change the stack pointer without disabling interrupts.
  
  mbranch-cost=
! Target Joined RejectNegative UInteger Var(avr_branch_cost) Init(0)
! Set the branch costs for conditional branch instructions.  Reasonable values are small, non-negative integers.  The default branch cost is 0.
  
  mmain-is-OS_task
! Target Mask(MAIN_IS_OS_TASK)
! Treat main as if it had attribute OS_task.
  
  morder1
  Target Undocumented Mask(ORDER_1)
--- 61,72 ----
  Change the stack pointer without disabling interrupts.
  
  mbranch-cost=
! Target Joined RejectNegative UInteger Var(avr_branch_cost) Init(0) Optimization
! -mbranch-cost=<cost>	Optimization. Set the branch costs for conditional branch instructions.  Reasonable values are small, non-negative integers.  The default branch cost is 0.
  
  mmain-is-OS_task
! Target Mask(MAIN_IS_OS_TASK) Optimization
! Optimization. Treat main as if it had attribute OS_task.
  
  morder1
  Target Undocumented Mask(ORDER_1)
*************** Target Mask(TINY_STACK)
*** 79,103 ****
  Change only the low 8 bits of the stack pointer.
  
  mrelax
! Target
! Relax branches.
  
  mpmem-wrap-around
  Target
  Make the linker relaxation machine assume that a program counter wrap-around occurs.
  
  maccumulate-args
! Target Mask(ACCUMULATE_OUTGOING_ARGS)
! Accumulate outgoing function arguments and acquire/release the needed stack space for outgoing function arguments in function prologue/epilogue.  Without this option, outgoing arguments are pushed before calling a function and popped afterwards.  This option can lead to reduced code size for functions that call many functions that get their arguments on the stack like, for example printf.
  
  mstrict-X
! Target Var(avr_strict_X) Init(0)
! When accessing RAM, use X as imposed by the hardware, i.e. just use pre-decrement, post-increment and indirect addressing with the X register.  Without this option, the compiler may assume that there is an addressing mode X+const similar to Y+const and Z+const and emit instructions to emulate such an addressing mode for X.
  
  ;; For rationale behind -msp8 see explanation in avr.h.
  msp8
  Target RejectNegative Var(avr_sp8) Init(0)
! The device has no SPH special function register. This option will be overridden by the compiler driver with the correct setting if presence/absence of SPH can be deduced from -mmcu=MCU.
  
  Waddr-space-convert
  Warning C Var(avr_warn_addr_space_convert) Init(0)
--- 79,119 ----
  Change only the low 8 bits of the stack pointer.
  
  mrelax
! Target Optimization
! Optimization. Relax branches.
  
  mpmem-wrap-around
  Target
  Make the linker relaxation machine assume that a program counter wrap-around occurs.
  
  maccumulate-args
! Target Mask(ACCUMULATE_OUTGOING_ARGS) Optimization
! Optimization. Accumulate outgoing function arguments and acquire/release the needed stack space for outgoing function arguments in function prologue/epilogue.  Without this option, outgoing arguments are pushed before calling a function and popped afterwards.  This option can lead to reduced code size for functions that call many functions that get their arguments on the stack like, for example printf.
  
  mstrict-X
! Target Var(avr_strict_X) Init(0) Optimization
! Optimization. When accessing RAM, use X as imposed by the hardware, i.e. just use pre-decrement, post-increment and indirect addressing with the X register.  Without this option, the compiler may assume that there is an addressing mode X+const similar to Y+const and Z+const and emit instructions to emulate such an addressing mode for X.
! 
! mflmap
! Target Var(avr_flmap) Init(0)
! This option is used internally. The device has the bitfield NVMCTRL_CTRLB.FLMAP.
! 
! mrodata-in-ram
! Target Var(avr_rodata_in_ram) Init(-1)
! The device has the .rodata section located in the RAM area.
  
  ;; For rationale behind -msp8 see explanation in avr.h.
  msp8
  Target RejectNegative Var(avr_sp8) Init(0)
! This option is used internally for multilib generation and selection. The device has no SPH special function register.
! 
! mfuse-add
! Target Alias(mfuse-add=, 2, 0) Optimization
! Optimization. Split register additions from load/store instructions. Most useful on Reduced Tiny.
! 
! mfuse-add=
! Target Joined RejectNegative UInteger Var(avr_fuse_add) Init(0) Optimization IntegerRange(0, 3)
! -mfuse-add=<0,2>	Optimization. Split register additions from load/store instructions. Most useful on Reduced Tiny.
  
  Waddr-space-convert
  Warning C Var(avr_warn_addr_space_convert) Init(0)
*************** Allow to use truncation instead of round
*** 113,126 ****
  
  mabsdata
  Target Mask(ABSDATA)
! Assume that all data in static storage can be accessed by LDS / STS.  This option is only useful for reduced Tiny devices.
  
  mdouble=
! Target Joined RejectNegative Var(avr_double) Init(0) Enum(avr_bits_e)
  -mdouble=<BITS>	Use <BITS> bits wide double type.
  
  mlong-double=
! Target Joined RejectNegative Var(avr_long_double) Init(0) Enum(avr_bits_e)
  -mlong-double=<BITS>	Use <BITS> bits wide long double type.
  
  nodevicelib
--- 129,142 ----
  
  mabsdata
  Target Mask(ABSDATA)
! Assume that all data in static storage can be accessed by LDS / STS instructions.  This option is only useful for reduced Tiny devices like ATtiny40.
  
  mdouble=
! Target Joined RejectNegative Var(avr_double) Init(0) Enum(avr_bits_e) Save
  -mdouble=<BITS>	Use <BITS> bits wide double type.
  
  mlong-double=
! Target Joined RejectNegative Var(avr_long_double) Init(0) Enum(avr_bits_e) Save
  -mlong-double=<BITS>	Use <BITS> bits wide long double type.
  
  nodevicelib
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avr.opt.urls gcc-14.1.0/gcc/config/avr/avr.opt.urls
*** gcc-13.2.0/gcc/config/avr/avr.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/avr/avr.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,86 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/avr/avr.opt and generated HTML
+ 
+ mcall-prologues
+ UrlSuffix(gcc/AVR-Options.html#index-mcall-prologues)
+ 
+ mmcu=
+ UrlSuffix(gcc/AVR-Options.html#index-mmcu)
+ 
+ mgas-isr-prologues
+ UrlSuffix(gcc/AVR-Options.html#index-mgas-isr-prologues)
+ 
+ mn-flash=
+ UrlSuffix(gcc/AVR-Options.html#index-mn-flash)
+ 
+ mskip-bug
+ UrlSuffix(gcc/AVR-Options.html#index-mskip-bug)
+ 
+ mrmw
+ UrlSuffix(gcc/AVR-Options.html#index-mrmw)
+ 
+ mshort-calls
+ UrlSuffix(gcc/AVR-Options.html#index-mshort-calls)
+ 
+ mint8
+ UrlSuffix(gcc/AVR-Options.html#index-mint8)
+ 
+ mno-interrupts
+ UrlSuffix(gcc/AVR-Options.html#index-mno-interrupts)
+ 
+ mbranch-cost=
+ UrlSuffix(gcc/AVR-Options.html#index-mbranch-cost-1)
+ 
+ mmain-is-OS_task
+ UrlSuffix(gcc/AVR-Options.html#index-mmain-is-OS_005ftask)
+ 
+ mtiny-stack
+ UrlSuffix(gcc/AVR-Options.html#index-mtiny-stack)
+ 
+ mrelax
+ UrlSuffix(gcc/AVR-Options.html#index-mrelax)
+ 
+ maccumulate-args
+ UrlSuffix(gcc/AVR-Options.html#index-maccumulate-args)
+ 
+ mstrict-X
+ UrlSuffix(gcc/AVR-Options.html#index-mstrict-X)
+ 
+ mflmap
+ UrlSuffix(gcc/AVR-Options.html#index-mflmap)
+ 
+ mrodata-in-ram
+ UrlSuffix(gcc/AVR-Options.html#index-mrodata-in-ram)
+ 
+ msp8
+ UrlSuffix(gcc/AVR-Options.html#index-msp8)
+ 
+ mfuse-add
+ UrlSuffix(gcc/AVR-Options.html#index-mfuse-add)
+ 
+ mfuse-add=
+ UrlSuffix(gcc/AVR-Options.html#index-mfuse-add)
+ 
+ Waddr-space-convert
+ UrlSuffix(gcc/AVR-Options.html#index-Waddr-space-convert)
+ 
+ Wmisspelled-isr
+ UrlSuffix(gcc/AVR-Options.html#index-Wmisspelled-isr)
+ 
+ mfract-convert-truncate
+ UrlSuffix(gcc/AVR-Options.html#index-mfract-convert-truncate)
+ 
+ mabsdata
+ UrlSuffix(gcc/AVR-Options.html#index-mabsdata)
+ 
+ mdouble=
+ UrlSuffix(gcc/AVR-Options.html#index-mdouble)
+ 
+ mlong-double=
+ UrlSuffix(gcc/AVR-Options.html#index-mlong-double)
+ 
+ nodevicelib
+ UrlSuffix(gcc/AVR-Options.html#index-nodevicelib)
+ 
+ nodevicespecs
+ UrlSuffix(gcc/AVR-Options.html#index-nodevicespecs)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/avr/avrlibc.h gcc-14.1.0/gcc/config/avr/avrlibc.h
*** gcc-13.2.0/gcc/config/avr/avrlibc.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/avrlibc.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Definitions of target machine for the GNU compiler collection
     for Atmel AVR micro controller if configured for AVR-Libc.
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
  This file is part of GCC.
--- 1,6 ----
  /* Definitions of target machine for the GNU compiler collection
     for Atmel AVR micro controller if configured for AVR-Libc.
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/avr/builtins.def gcc-14.1.0/gcc/config/avr/builtins.def
*** gcc-13.2.0/gcc/config/avr/builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2012-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2012-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** DEF_BUILTIN (SLEEP, 0, void_ftype_void,
*** 43,59 ****
  /* Mapped to respective instruction but might also be folded away
     or emit as libgcc call if ISA does not provide the instruction.  */
  
! DEF_BUILTIN (SWAP,   1, uchar_ftype_uchar,      rotlqi3_4, NULL)
! DEF_BUILTIN (FMUL,   2, uint_ftype_uchar_uchar, fmul, NULL)
! DEF_BUILTIN (FMULS,  2, int_ftype_char_char,    fmuls, NULL)
! DEF_BUILTIN (FMULSU, 2, int_ftype_char_uchar,   fmulsu, NULL)
  
  /* More complex stuff that cannot be mapped 1:1 to an instruction.  */
  
! DEF_BUILTIN (DELAY_CYCLES, -1, void_ftype_ulong, nothing, NULL)
! DEF_BUILTIN (NOPS,         -1, void_ftype_ulong, nothing, NULL)
! DEF_BUILTIN (INSERT_BITS, 3, uchar_ftype_ulong_uchar_uchar, insert_bits, NULL)
! DEF_BUILTIN (FLASH_SEGMENT, 1, char_ftype_const_memx_ptr, flash_segment, NULL)
  
  /* ISO/IEC TR 18037 "Embedded C"
     The following builtins are undocumented and used by stdfix.h.  */
--- 43,59 ----
  /* Mapped to respective instruction but might also be folded away
     or emit as libgcc call if ISA does not provide the instruction.  */
  
! DEF_BUILTIN (SWAP,   1, uintQI_ftype_uintQI,        rotlqi3_4, NULL)
! DEF_BUILTIN (FMUL,   2, uintHI_ftype_uintQI_uintQI, fmul, NULL)
! DEF_BUILTIN (FMULS,  2, intHI_ftype_intQI_intQI,    fmuls, NULL)
! DEF_BUILTIN (FMULSU, 2, intHI_ftype_intQI_uintQI,   fmulsu, NULL)
  
  /* More complex stuff that cannot be mapped 1:1 to an instruction.  */
  
! DEF_BUILTIN (DELAY_CYCLES, -1, void_ftype_uintSI, nothing, NULL)
! DEF_BUILTIN (NOPS,         -1, void_ftype_uintSI, nothing, NULL)
! DEF_BUILTIN (INSERT_BITS, 3, uintQI_ftype_uintSI_uintQI_uintQI, insert_bits, NULL)
! DEF_BUILTIN (FLASH_SEGMENT, 1, intQI_ftype_const_memx_ptr, flash_segment, NULL)
  
  /* ISO/IEC TR 18037 "Embedded C"
     The following builtins are undocumented and used by stdfix.h.  */
diff -Nrcpad gcc-13.2.0/gcc/config/avr/constraints.md gcc-14.1.0/gcc/config/avr/constraints.md
*** gcc-13.2.0/gcc/config/avr/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for ATMEL AVR micro controllers.
! ;; Copyright (C) 2006-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Constraint definitions for ATMEL AVR micro controllers.
! ;; Copyright (C) 2006-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 133,138 ****
--- 133,153 ----
    (and (match_code "const_int")
         (match_test "ival == 7")))
  
+ (define_constraint "C15"
+   "Constant integer 15."
+   (and (match_code "const_int")
+        (match_test "ival == 15")))
+ 
+ (define_constraint "C23"
+   "Constant integer 23."
+   (and (match_code "const_int")
+        (match_test "ival == 23")))
+ 
+ (define_constraint "C31"
+   "Constant integer 31."
+   (and (match_code "const_int")
+        (match_test "ival == 31")))
+ 
  (define_constraint "Ca1"
    "Constant 1-byte integer that allows AND by means of CLT + BLD."
    (and (match_code "const_int")
***************
*** 154,160 ****
         (match_test "avr_popcount_each_byte (op, 4, (1<<0) | (1<<7) | (1<<8))")))
  
  (define_constraint "Co1"
!   "Constant 1-byte integer that allows AND by means of SET + BLD."
    (and (match_code "const_int")
         (match_test "avr_popcount_each_byte (op, 1, 1<<1)")))
  
--- 169,175 ----
         (match_test "avr_popcount_each_byte (op, 4, (1<<0) | (1<<7) | (1<<8))")))
  
  (define_constraint "Co1"
!   "Constant 1-byte integer that allows OR by means of SET + BLD."
    (and (match_code "const_int")
         (match_test "avr_popcount_each_byte (op, 1, 1<<1)")))
  
***************
*** 173,178 ****
--- 188,208 ----
    (and (match_code "const_int")
         (match_test "avr_popcount_each_byte (op, 4, (1<<0) | (1<<1) | (1<<8))")))
  
+ (define_constraint "Cb2"
+   "Constant 2-byte integer that has exactly 1 bit set."
+   (and (match_code "const_int")
+        (match_test "single_one_operand (op, HImode)")))
+ 
+ (define_constraint "Cb3"
+   "Constant 3-byte integer that has exactly 1 bit set."
+   (and (match_code "const_int")
+        (match_test "single_one_operand (op, PSImode)")))
+ 
+ (define_constraint "Cb4"
+   "Constant 4-byte integer that has exactly 1 bit set."
+   (and (match_code "const_int")
+        (match_test "single_one_operand (op, SImode)")))
+ 
  (define_constraint "Cx2"
    "Constant 2-byte integer that allows XOR without clobber register."
    (and (match_code "const_int")
***************
*** 188,193 ****
--- 218,238 ----
    (and (match_code "const_int")
         (match_test "avr_popcount_each_byte (op, 4, (1<<0) | (1<<8))")))
  
+ (define_constraint "CX2"
+   "Constant 2-byte integer that allows XOR without clobber register but requires a d-register."
+   (and (match_code "const_int")
+        (match_test "avr_xor_noclobber_dconst (op, 2)")))
+ 
+ (define_constraint "CX3"
+   "Constant 3-byte integer that allows XOR without clobber register but requires a d-register."
+   (and (match_code "const_int")
+        (match_test "avr_xor_noclobber_dconst (op, 3)")))
+ 
+ (define_constraint "CX4"
+   "Constant 4-byte integer that allows XOR without clobber register but requires a d-register."
+   (and (match_code "const_int")
+        (match_test "avr_xor_noclobber_dconst (op, 4)")))
+ 
  (define_constraint "Csp"
    "Integer constant in the range -11 @dots{} 6."
    (and (match_code "const_int")
***************
*** 224,248 ****
  (define_constraint "Y01"
    "Fixed-point or integer constant with bit representation 0x1"
    (ior (and (match_code "const_fixed")
! 	    (match_test "INTVAL (avr_to_int_mode (op)) == 1"))
         (match_test "satisfies_constraint_P (op)")))
  
  (define_constraint "Ym1"
    "Fixed-point or integer constant with bit representation -0x1"
    (ior (and (match_code "const_fixed")
! 	    (match_test "INTVAL (avr_to_int_mode (op)) == -1"))
         (match_test "satisfies_constraint_N (op)")))
  
  (define_constraint "Y02"
    "Fixed-point or integer constant with bit representation 0x2"
    (ior (and (match_code "const_fixed")
! 	    (match_test "INTVAL (avr_to_int_mode (op)) == 2"))
         (match_test "satisfies_constraint_K (op)")))
  
  (define_constraint "Ym2"
    "Fixed-point or integer constant with bit representation -0x2"
    (ior (and (match_code "const_fixed")
! 	    (match_test "INTVAL (avr_to_int_mode (op)) == -2"))
         (match_test "satisfies_constraint_Cm2 (op)")))
  
  ;; Constraint that's the empty set.  Useful with mode and code iterators.
--- 269,293 ----
  (define_constraint "Y01"
    "Fixed-point or integer constant with bit representation 0x1"
    (ior (and (match_code "const_fixed")
!             (match_test "INTVAL (avr_to_int_mode (op)) == 1"))
         (match_test "satisfies_constraint_P (op)")))
  
  (define_constraint "Ym1"
    "Fixed-point or integer constant with bit representation -0x1"
    (ior (and (match_code "const_fixed")
!             (match_test "INTVAL (avr_to_int_mode (op)) == -1"))
         (match_test "satisfies_constraint_N (op)")))
  
  (define_constraint "Y02"
    "Fixed-point or integer constant with bit representation 0x2"
    (ior (and (match_code "const_fixed")
!             (match_test "INTVAL (avr_to_int_mode (op)) == 2"))
         (match_test "satisfies_constraint_K (op)")))
  
  (define_constraint "Ym2"
    "Fixed-point or integer constant with bit representation -0x2"
    (ior (and (match_code "const_fixed")
!             (match_test "INTVAL (avr_to_int_mode (op)) == -2"))
         (match_test "satisfies_constraint_Cm2 (op)")))
  
  ;; Constraint that's the empty set.  Useful with mode and code iterators.
***************
*** 262,264 ****
--- 307,314 ----
    "Fixed-point constant from @minus{}0x003f to 0x003f."
    (and (match_code "const_fixed")
         (match_test "IN_RANGE (INTVAL (avr_to_int_mode (op)), -63, 63)")))
+ 
+ (define_constraint "Yil"
+   "Memory in the lower half of the I/O space."
+   (and (match_code "mem")
+        (match_test "low_io_address_operand (XEXP (op, 0), Pmode)")))
diff -Nrcpad gcc-13.2.0/gcc/config/avr/driver-avr.cc gcc-14.1.0/gcc/config/avr/driver-avr.cc
*** gcc-13.2.0/gcc/config/avr/driver-avr.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/driver-avr.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines for the gcc driver.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay <avr@gjlay.de>
  
  This file is part of GCC.
--- 1,5 ----
  /* Subroutines for the gcc driver.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay <avr@gjlay.de>
  
  This file is part of GCC.
*************** static const char dir_separator_str[] =
*** 40,46 ****
     or core name as supplied by -mmcu=*. When building GCC the path might be
     relative.  */
  
! const char*
  avr_devicespecs_file (int argc, const char **argv)
  {
    const char *mmcu = NULL;
--- 40,46 ----
     or core name as supplied by -mmcu=*. When building GCC the path might be
     relative.  */
  
! const char *
  avr_devicespecs_file (int argc, const char **argv)
  {
    const char *mmcu = NULL;
*************** avr_devicespecs_file (int argc, const ch
*** 48,76 ****
  #ifdef DEBUG_SPECS
    if (verbose_flag)
      fnotice (stderr, "Running spec function '%s' with %d args\n\n",
!              __FUNCTION__, argc);
  #endif
  
    switch (argc)
      {
      case 0:
        fatal_error (input_location,
!                    "bad usage of spec function %qs", "device-specs-file");
        return X_NODEVLIB;
  
      case 1:
        if (strcmp ("device-specs", argv[0]) == 0)
!         {
!           /* FIXME:  This means "device-specs%s" from avr.h:DRIVER_SELF_SPECS
!              has not been resolved to a path.  That case can occur when the
!              c++ testsuite is run from the build directory.  DejaGNU's
!              libgloss.exp:get_multilibs runs $compiler without -B, i.e.runs
!              xgcc without specifying a prefix.  Without any prefix, there is
!              no means to find out where the specs files might be located.
!              get_multilibs runs xgcc --print-multi-lib, hence we don't actually
!              need information form a specs file and may skip it here.  */
!           return X_NODEVLIB;
!         }
  
        mmcu = AVR_MMCU_DEFAULT;
        break;
--- 48,76 ----
  #ifdef DEBUG_SPECS
    if (verbose_flag)
      fnotice (stderr, "Running spec function '%s' with %d args\n\n",
! 	     __FUNCTION__, argc);
  #endif
  
    switch (argc)
      {
      case 0:
        fatal_error (input_location,
! 		   "bad usage of spec function %qs", "device-specs-file");
        return X_NODEVLIB;
  
      case 1:
        if (strcmp ("device-specs", argv[0]) == 0)
! 	{
! 	  /* FIXME:  This means "device-specs%s" from avr.h:DRIVER_SELF_SPECS
! 	     has not been resolved to a path.  That case can occur when the
! 	     c++ testsuite is run from the build directory.  DejaGNU's
! 	     libgloss.exp:get_multilibs runs $compiler without -B, i.e.runs
! 	     xgcc without specifying a prefix.  Without any prefix, there is
! 	     no means to find out where the specs files might be located.
! 	     get_multilibs runs xgcc --print-multi-lib, hence we don't actually
! 	     need information form a specs file and may skip it here.  */
! 	  return X_NODEVLIB;
! 	}
  
        mmcu = AVR_MMCU_DEFAULT;
        break;
*************** avr_devicespecs_file (int argc, const ch
*** 82,91 ****
  
        for (int i = 2; i < argc; i++)
  	if (strcmp (mmcu, argv[i]) != 0)
!           {
!             error ("specified option %qs more than once", "-mmcu");
!             return X_NODEVLIB;
!           }
  
        break;
      }
--- 82,91 ----
  
        for (int i = 2; i < argc; i++)
  	if (strcmp (mmcu, argv[i]) != 0)
! 	  {
! 	    error ("specified option %qs more than once", "-mmcu");
! 	    return X_NODEVLIB;
! 	  }
  
        break;
      }
*************** avr_devicespecs_file (int argc, const ch
*** 94,122 ****
  
    for (const char *s = mmcu; *s; s++)
      if (!ISALNUM (*s)
!         && '-' != *s
!         && '_' != *s)
        {
!         error ("strange device name %qs after %qs: bad character %qc",
!                mmcu, "-mmcu=", *s);
!         return X_NODEVLIB;
        }
  
    return concat ("%{!nodevicespecs:-specs=device-specs", dir_separator_str,
! 				 "specs-", mmcu, "%s} %<nodevicespecs"
  #if defined (WITH_AVRLIBC)
!                  " %{mmcu=avr*:" X_NODEVLIB "} %{!mmcu=*:" X_NODEVLIB "}",
  #else
!                  " " X_NODEVLIB,
  #endif
!                  NULL);
  }
  
  
  /* Re-build the -mdouble= and -mlong-double= options.  This is needed
     because these options are not independent of each other.  */
  
! const char*
  avr_double_lib (int argc, const char **argv)
  {
  #if defined (WITH_DOUBLE64)
--- 94,143 ----
  
    for (const char *s = mmcu; *s; s++)
      if (!ISALNUM (*s)
! 	&& '-' != *s
! 	&& '_' != *s)
        {
! 	error ("strange device name %qs after %qs: bad character %qc",
! 	       mmcu, "-mmcu=", *s);
! 	return X_NODEVLIB;
        }
  
    return concat ("%{!nodevicespecs:-specs=device-specs", dir_separator_str,
! 		 "specs-", mmcu, "%s} %<nodevicespecs"
  #if defined (WITH_AVRLIBC)
! 		 // Return X_NODEVLIB when we are compiling for a core.  As
! 		 // there are devices like AVR128DA32, a simple mmcu=avr* to
! 		 // discriminate between cores and devices ceased to work,
! 		 // hence use spec function no-devlib=avr_no_devlib from below.
! 		 // See also PR107201.
! 		 " %{mmcu=avr*:%:no-devlib(avr%*)} %{!mmcu=*:" X_NODEVLIB "}",
  #else
! 		 " " X_NODEVLIB,
  #endif
! 		 NULL);
! }
! 
! 
! /* Return X_NODEVLIB when ARGV[] contains a core like "avr5",
!    otherwise return "".  */
! 
! const char *
! avr_no_devlib (int argc, const char **argv)
! {
!   for (int i = 0; i < argc; ++i)
!     {
!       if (avr_get_parch (argv[i]))
! 	return X_NODEVLIB;
!     }
! 
!   return "";
  }
  
  
  /* Re-build the -mdouble= and -mlong-double= options.  This is needed
     because these options are not independent of each other.  */
  
! const char *
  avr_double_lib (int argc, const char **argv)
  {
  #if defined (WITH_DOUBLE64)
*************** avr_double_lib (int argc, const char **a
*** 138,167 ****
    for (int i = 0; i < argc; i++)
      {
        if (strcmp (argv[i], "mdouble=32") == 0)
!         {
!           dbl = 32;
  #ifdef HAVE_LONG_DOUBLE_IS_DOUBLE
!           ldb = dbl;
  #endif
!         }
        else if (strcmp (argv[i], "mdouble=64") == 0)
!         {
!           ldb = dbl = 64;
!         }
        else if (strcmp (argv[i], "mlong-double=32") == 0)
!         {
!           ldb = dbl = 32;
!         }
        else if (strcmp (argv[i], "mlong-double=64") == 0)
!         {
!           ldb = 64;
  #ifdef HAVE_LONG_DOUBLE_IS_DOUBLE
!           dbl = ldb;
  #endif
!         }
      }
  
    return concat (" %<mdouble=* -mdouble=", dbl == 32 ? "32" : "64",
!                  " %<mlong-double=* -mlong-double=", ldb == 32 ? "32" : "64",
!                  NULL);
  }
--- 159,188 ----
    for (int i = 0; i < argc; i++)
      {
        if (strcmp (argv[i], "mdouble=32") == 0)
! 	{
! 	  dbl = 32;
  #ifdef HAVE_LONG_DOUBLE_IS_DOUBLE
! 	  ldb = dbl;
  #endif
! 	}
        else if (strcmp (argv[i], "mdouble=64") == 0)
! 	{
! 	  ldb = dbl = 64;
! 	}
        else if (strcmp (argv[i], "mlong-double=32") == 0)
! 	{
! 	  ldb = dbl = 32;
! 	}
        else if (strcmp (argv[i], "mlong-double=64") == 0)
! 	{
! 	  ldb = 64;
  #ifdef HAVE_LONG_DOUBLE_IS_DOUBLE
! 	  dbl = ldb;
  #endif
! 	}
      }
  
    return concat (" %<mdouble=* -mdouble=", dbl == 32 ? "32" : "64",
! 		 " %<mlong-double=* -mlong-double=", ldb == 32 ? "32" : "64",
! 		 NULL);
  }
diff -Nrcpad gcc-13.2.0/gcc/config/avr/elf.h gcc-14.1.0/gcc/config/avr/elf.h
*** gcc-13.2.0/gcc/config/avr/elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/elf.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/avr/gen-avr-mmcu-specs.cc gcc-14.1.0/gcc/config/avr/gen-avr-mmcu-specs.cc
*** gcc-13.2.0/gcc/config/avr/gen-avr-mmcu-specs.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/gen-avr-mmcu-specs.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Joern Rennecke
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Joern Rennecke
  
     This file is part of GCC.
***************
*** 30,36 ****
  #include "avr-devices.cc"
  
  // Get rid of "defaults.h".  We just need tm.h for `WITH_AVRLIBC' and
! // and `WITH_RTEMS'.  */
  #define GCC_DEFAULTS_H
  
  #include "tm.h"
--- 30,36 ----
  #include "avr-devices.cc"
  
  // Get rid of "defaults.h".  We just need tm.h for `WITH_AVRLIBC' and
! // and `WITH_RTEMS'.
  #define GCC_DEFAULTS_H
  
  #include "tm.h"
***************
*** 44,55 ****
  #endif
  
  
! #define SPECFILE_DOC_URL                                \
    "https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html"
  
! #define SPECFILE_USAGE_URL                              \
    "https://gcc.gnu.org/gcc-5/changes.html"
  
  
  static const char header[] =
    "#\n"
--- 44,57 ----
  #endif
  
  
! #define SPECFILE_DOC_URL				\
    "https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html"
  
! #define SPECFILE_USAGE_URL			        \
    "https://gcc.gnu.org/gcc-5/changes.html"
  
+ #define WIKI_URL					\
+   "https://gcc.gnu.org/wiki/avr-gcc#spec-files"
  
  static const char header[] =
    "#\n"
*************** static const char header[] =
*** 68,76 ****
  
  static const char help_copy_paste[] =
    "# If you intend to use an existing device specs file as a starting point\n"
!   "# for a new device spec file, make sure you are copying from a specs\n"
!   "# file for a device from the same core architecture and SP width.\n"
!   "# See <" SPECFILE_USAGE_URL "> for a description\n"
    "# of how to use such own spec files.\n";
  
  #if defined (WITH_AVRLIBC)
--- 70,82 ----
  
  static const char help_copy_paste[] =
    "# If you intend to use an existing device specs file as a starting point\n"
!   "# for a new device spec file, make sure you are copying from a specs file\n"
!   "# for a device from the same or compatible:\n"
!   "#     compiler version, compiler vendor, core architecture, SP width,\n"
!   "#     short-calls and FLMAP.\n"
!   "# Otherwise, errors and wrong or sub-optimal code may likely occur.\n"
!   "# See <" WIKI_URL ">\n"
!   "# and <" SPECFILE_USAGE_URL "> for a description\n"
    "# of how to use such own spec files.\n";
  
  #if defined (WITH_AVRLIBC)
*************** static const char help_dev_lib_name[] =
*** 103,124 ****
    "\n";
  #endif // WITH_AVRLIBC
  
  static void
! print_mcu (const avr_mcu_t *mcu)
  {
    const char *sp8_spec;
    const char *rcall_spec;
    const avr_mcu_t *arch_mcu;
-   const avr_arch_t *arch;
-   enum avr_arch_id arch_id = mcu->arch_id;
  
    for (arch_mcu = mcu; arch_mcu->macro; )
      arch_mcu--;
!   if (arch_mcu->arch_id != arch_id)
      exit (EXIT_FAILURE);
  
-   arch = &avr_arch_types[arch_id];
- 
    char name[100];
    if (snprintf (name, sizeof name, "specs-%s", mcu->name) >= (int) sizeof name)
     exit (EXIT_FAILURE);
--- 109,198 ----
    "\n";
  #endif // WITH_AVRLIBC
  
+ 
+ #ifdef HAVE_LD_AVR_AVRXMEGA2_FLMAP
+ static const bool have_avrxmega2_flmap = true;
+ #else
+ static const bool have_avrxmega2_flmap = false;
+ #endif
+ 
+ #ifdef HAVE_LD_AVR_AVRXMEGA4_FLMAP
+ static const bool have_avrxmega4_flmap = true;
+ #else
+ static const bool have_avrxmega4_flmap = false;
+ #endif
+ 
+ #ifdef HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH
+ static const bool have_avrxmega3_rodata_in_flash = true;
+ #else
+ static const bool have_avrxmega3_rodata_in_flash = false;
+ #endif
+ 
+ 
+ struct McuInfo
+ {
+   enum avr_arch_id arch_id;
+   const avr_arch_t *arch;
+   bool is_arch, is_device;
+   bool flmap, have_flmap2, have_flmap4, have_flmap;
+   bool rodata_in_flash;
+   // Device name as used by the vendor, extracted from "__AVR_<Name>__".
+   char mcu_Name[50] = { 0 };
+ 
+   McuInfo (const avr_mcu_t *mcu)
+     : arch_id (mcu->arch_id), arch (& avr_arch_types[arch_id]),
+       is_arch (mcu->macro == NULL), is_device (! is_arch),
+       flmap (mcu->dev_attribute & AVR_ISA_FLMAP),
+       have_flmap2 (have_avrxmega2_flmap && arch_id == ARCH_AVRXMEGA2),
+       have_flmap4 (have_avrxmega4_flmap && arch_id == ARCH_AVRXMEGA4),
+       have_flmap (flmap && (have_flmap2 || have_flmap4)),
+       rodata_in_flash (arch_id == ARCH_AVRTINY
+ 		       || (arch_id == ARCH_AVRXMEGA3
+ 			   && have_avrxmega3_rodata_in_flash))
+   {
+     if (is_device)
+       snprintf (mcu_Name, 1 + strlen (mcu->macro) - strlen ("__AVR_" "__"),
+ 		"%s", mcu->macro + strlen ("__AVR_"));
+   }
+ };
+ 
+ 
  static void
! diagnose_mrodata_in_ram (FILE *f, const char *spec, const avr_mcu_t *mcu,
! 			 const McuInfo &mi)
! {
!   fprintf (f, "%s:\n", spec);
!   if (mi.rodata_in_flash && mi.is_arch)
!     fprintf (f, "\t%%{mrodata-in-ram: %%e-mrodata-in-ram is not supported"
! 	     " for %s}", mcu->name);
!   else if (mi.rodata_in_flash)
!     fprintf (f, "\t%%{mrodata-in-ram: %%e-mrodata-in-ram is not supported"
! 	     " for %s (arch=%s)}", mi.mcu_Name, mi.arch->name);
!   else if (mi.is_arch)
!     {
!       if (! mi.have_flmap2 && ! mi.have_flmap4)
! 	fprintf (f, "\t%%{mno-rodata-in-ram: %%e-mno-rodata-in-ram is not"
! 		 " supported for %s}", mcu->name);
!     }
!   else if (! mi.have_flmap)
!     fprintf (f, "\t%%{mno-rodata-in-ram: %%e-mno-rodata-in-ram is not supported"
! 	     " for %s (arch=%s)}", mi.mcu_Name, mi.arch->name);
!   fprintf (f, "\n\n");
! }
! 
! 
! static void
! print_mcu (const avr_mcu_t *mcu, const McuInfo &mi)
  {
    const char *sp8_spec;
    const char *rcall_spec;
    const avr_mcu_t *arch_mcu;
  
    for (arch_mcu = mcu; arch_mcu->macro; )
      arch_mcu--;
!   if (arch_mcu->arch_id != mi.arch_id)
      exit (EXIT_FAILURE);
  
    char name[100];
    if (snprintf (name, sizeof name, "specs-%s", mcu->name) >= (int) sizeof name)
     exit (EXIT_FAILURE);
*************** print_mcu (const avr_mcu_t *mcu)
*** 130,149 ****
    bool rmw = (mcu->dev_attribute & AVR_ISA_RMW) != 0;
    bool sp8 = (mcu->dev_attribute & AVR_SHORT_SP) != 0;
    bool rcall = (mcu->dev_attribute & AVR_ISA_RCALL);
!   bool is_arch = mcu->macro == NULL;
!   bool is_device = ! is_arch;
!   int flash_pm_offset = 0;
  
!   if (arch->flash_pm_offset
        && mcu->flash_pm_offset
!       && mcu->flash_pm_offset != arch->flash_pm_offset)
      {
!       flash_pm_offset = mcu->flash_pm_offset;
      }
  
!   if (is_arch
!       && (ARCH_AVR2 == arch_id
!           || ARCH_AVR25 == arch_id))
      {
        // Leave "avr2" and "avr25" alone.  These two architectures are
        // the only ones that mix devices with 8-bit SP and 16-bit SP.
--- 204,229 ----
    bool rmw = (mcu->dev_attribute & AVR_ISA_RMW) != 0;
    bool sp8 = (mcu->dev_attribute & AVR_SHORT_SP) != 0;
    bool rcall = (mcu->dev_attribute & AVR_ISA_RCALL);
!   int rodata_pm_offset = 0;
!   int pm_base_address = 0;
  
!   if (mi.arch->flash_pm_offset
        && mcu->flash_pm_offset
!       && mcu->flash_pm_offset != mi.arch->flash_pm_offset)
      {
!       rodata_pm_offset = mcu->flash_pm_offset;
      }
  
!   if (mi.arch->flash_pm_offset)
!     {
!       pm_base_address = mcu->flash_pm_offset
! 	? mcu->flash_pm_offset
! 	: mi.arch->flash_pm_offset;
!     }
! 
!   if (mi.is_arch
!       && (ARCH_AVR2 == mi.arch_id
! 	  || ARCH_AVR25 == mi.arch_id))
      {
        // Leave "avr2" and "avr25" alone.  These two architectures are
        // the only ones that mix devices with 8-bit SP and 16-bit SP.
*************** print_mcu (const avr_mcu_t *mcu)
*** 154,161 ****
        sp8_spec = sp8 ? "-msp8" :"%<msp8";
      }
  
!   if (is_arch
!       && ARCH_AVRXMEGA3 == arch_id)
      {
        // Leave "avrxmega3" alone.  This architectures is the only one
        // that mixes devices with and without JMP / CALL.
--- 234,241 ----
        sp8_spec = sp8 ? "-msp8" :"%<msp8";
      }
  
!   if (mi.is_arch
!       && ARCH_AVRXMEGA3 == mi.arch_id)
      {
        // Leave "avrxmega3" alone.  This architectures is the only one
        // that mixes devices with and without JMP / CALL.
*************** print_mcu (const avr_mcu_t *mcu)
*** 166,187 ****
        rcall_spec = rcall ? "-mshort-calls" : "%<mshort-calls";
      }
  
    fprintf (f, "#\n"
!            "# Auto-generated specs for AVR ");
!   if (is_arch)
!     fprintf (f, "core architecture %s\n", arch->name);
    else
!     fprintf (f, "device %s (core %s, %d-bit SP%s)\n", mcu->name,
!              arch->name, sp8 ? 8 : 16, rcall ? ", short-calls" : "");
    fprintf (f, "%s\n", header);
  
!   if (is_device)
      fprintf (f, "%s\n", help_copy_paste);
  
  #if defined (WITH_AVRLIBC)
    // AVR-LibC specific.  See avrlibc.h for the specs using them as subspecs.
  
!   if (is_device)
      {
        fprintf (f, "*avrlibc_startfile:\n");
        fprintf (f, "\tcrt%s.o%%s", mcu->name);
--- 246,275 ----
        rcall_spec = rcall ? "-mshort-calls" : "%<mshort-calls";
      }
  
+   const char *flmap_spec = mi.flmap ? "-mflmap" : "%<mflmap";
+   const char *link_arch_spec = "%{mmcu=*:-m%*}";
+   const char *link_arch_flmap_spec = "%{mmcu=*:-m%*%{!mrodata-in-ram:_flmap}}";
+ 
+   if (mi.have_flmap)
+     link_arch_spec = link_arch_flmap_spec;
+ 
    fprintf (f, "#\n"
! 	   "# Auto-generated specs for AVR ");
!   if (mi.is_arch)
!     fprintf (f, "core architecture %s\n", mi.arch->name);
    else
!     fprintf (f, "device %s (core %s, %d-bit SP%s%s)\n", mi.mcu_Name,
! 	     mi.arch->name, sp8 ? 8 : 16, rcall ? ", short-calls" : "",
! 	     mi.have_flmap ? ", FLMAP" : "");
    fprintf (f, "%s\n", header);
  
!   if (mi.is_device)
      fprintf (f, "%s\n", help_copy_paste);
  
  #if defined (WITH_AVRLIBC)
    // AVR-LibC specific.  See avrlibc.h for the specs using them as subspecs.
  
!   if (mi.is_device)
      {
        fprintf (f, "*avrlibc_startfile:\n");
        fprintf (f, "\tcrt%s.o%%s", mcu->name);
*************** print_mcu (const avr_mcu_t *mcu)
*** 193,220 ****
      }
  #endif  // WITH_AVRLIBC
  
    // avr-gcc specific specs for the compilation / the compiler proper.
  
    int n_flash = 1 + (mcu->flash_size - 1) / 0x10000;
  
    fprintf (f, "*cc1_n_flash:\n"
!            "\t%%{!mn-flash=*:-mn-flash=%d}\n\n", n_flash);
  
    fprintf (f, "*cc1_rmw:\n%s\n\n", rmw
!            ? "\t%{!mno-rmw: -mrmw}"
!            : "\t%{mrmw}");
  
    fprintf (f, "*cc1_errata_skip:\n%s\n\n", errata_skip
!            ? "\t%{!mno-skip-bug: -mskip-bug}"
!            : "\t%{!mskip-bug: -mno-skip-bug}");
  
    fprintf (f, "*cc1_absdata:\n%s\n\n", absdata
!            ? "\t%{!mno-absdata: -mabsdata}"
!            : "\t%{mabsdata}");
  
    // avr-gcc specific specs for assembling / the assembler.
  
!   fprintf (f, "*asm_arch:\n\t-mmcu=%s\n\n", arch->name);
  
  #ifdef HAVE_AS_AVR_MLINK_RELAX_OPTION
    fprintf (f, "*asm_relax:\n\t%s\n\n", ASM_RELAX_SPEC);
--- 281,314 ----
      }
  #endif  // WITH_AVRLIBC
  
+   // Diagnose usage of -m[no-]rodata-in-ram.
+   diagnose_mrodata_in_ram (f, "*check_rodata_in_ram", mcu, mi);
+ 
    // avr-gcc specific specs for the compilation / the compiler proper.
  
    int n_flash = 1 + (mcu->flash_size - 1) / 0x10000;
  
    fprintf (f, "*cc1_n_flash:\n"
! 	   "\t%%{!mn-flash=*:-mn-flash=%d}\n\n", n_flash);
  
    fprintf (f, "*cc1_rmw:\n%s\n\n", rmw
! 	   ? "\t%{!mno-rmw: -mrmw}"
! 	   : "\t%{mrmw}");
  
    fprintf (f, "*cc1_errata_skip:\n%s\n\n", errata_skip
! 	   ? "\t%{!mno-skip-bug: -mskip-bug}"
! 	   : "\t%{!mskip-bug: -mno-skip-bug}");
  
    fprintf (f, "*cc1_absdata:\n%s\n\n", absdata
! 	   ? "\t%{!mno-absdata: -mabsdata}"
! 	   : "\t%{mabsdata}");
! 
!   // -m[no-]rodata-in-ram basically affects linking, but sanity-check early.
!   fprintf (f, "*cc1_rodata_in_ram:\n\t%%(check_rodata_in_ram)\n\n");
  
    // avr-gcc specific specs for assembling / the assembler.
  
!   fprintf (f, "*asm_arch:\n\t-mmcu=%s\n\n", mi.arch->name);
  
  #ifdef HAVE_AS_AVR_MLINK_RELAX_OPTION
    fprintf (f, "*asm_relax:\n\t%s\n\n", ASM_RELAX_SPEC);
*************** print_mcu (const avr_mcu_t *mcu)
*** 222,239 ****
  
  #ifdef HAVE_AS_AVR_MRMW_OPTION
    fprintf (f, "*asm_rmw:\n%s\n\n", rmw
!            ? "\t%{!mno-rmw: -mrmw}"
!            : "\t%{mrmw}");
  #endif // have avr-as -mrmw
  
  #ifdef HAVE_AS_AVR_MGCCISR_OPTION
    fprintf (f, "*asm_gccisr:\n%s\n\n",
!            "\t%{!mno-gas-isr-prologues: -mgcc-isr}");
  #endif // have avr-as -mgcc-isr
  
    fprintf (f, "*asm_errata_skip:\n%s\n\n", errata_skip
!            ? "\t%{mno-skip-bug}"
!            : "\t%{!mskip-bug: -mno-skip-bug}");
  
    // avr-specific specs for linking / the linker.
  
--- 316,333 ----
  
  #ifdef HAVE_AS_AVR_MRMW_OPTION
    fprintf (f, "*asm_rmw:\n%s\n\n", rmw
! 	   ? "\t%{!mno-rmw: -mrmw}"
! 	   : "\t%{mrmw}");
  #endif // have avr-as -mrmw
  
  #ifdef HAVE_AS_AVR_MGCCISR_OPTION
    fprintf (f, "*asm_gccisr:\n%s\n\n",
! 	   "\t%{!mno-gas-isr-prologues: -mgcc-isr}");
  #endif // have avr-as -mgcc-isr
  
    fprintf (f, "*asm_errata_skip:\n%s\n\n", errata_skip
! 	   ? "\t%{mno-skip-bug}"
! 	   : "\t%{!mskip-bug: -mno-skip-bug}");
  
    // avr-specific specs for linking / the linker.
  
*************** print_mcu (const avr_mcu_t *mcu)
*** 253,285 ****
  
    fprintf (f, "*link_relax:\n\t%s\n\n", LINK_RELAX_SPEC);
  
!   fprintf (f, "*link_arch:\n\t%s", LINK_ARCH_SPEC);
!   if (is_device
!       && flash_pm_offset)
!     fprintf (f, " --defsym=__RODATA_PM_OFFSET__=0x%x", flash_pm_offset);
    fprintf (f, "\n\n");
  
!   if (is_device)
      {
        fprintf (f, "*link_data_start:\n");
        if (mcu->data_section_start
!           != arch->default_data_section_start)
!         fprintf (f, "\t%%{!Tdata:-Tdata 0x%lX}",
!                  0x800000UL + mcu->data_section_start);
        fprintf (f, "\n\n");
  
        fprintf (f, "*link_text_start:\n");
        if (mcu->text_section_start != 0x0)
!         fprintf (f, "\t%%{!Ttext:-Ttext 0x%lX}", 0UL + mcu->text_section_start);
        fprintf (f, "\n\n");
      }
  
    // Specs known to GCC.
  
!   if (is_device)
      {
        fprintf (f, "*self_spec:\n");
!       fprintf (f, "\t%%<mmcu=* -mmcu=%s ", arch->name);
        fprintf (f, "%s ", rcall_spec);
        fprintf (f, "%s\n\n", sp8_spec);
  
--- 347,386 ----
  
    fprintf (f, "*link_relax:\n\t%s\n\n", LINK_RELAX_SPEC);
  
!   fprintf (f, "*link_arch:\n\t%s", link_arch_spec);
!   if (mi.is_device
!       && rodata_pm_offset)
!     fprintf (f, " --defsym=__RODATA_PM_OFFSET__=0x%x", rodata_pm_offset);
    fprintf (f, "\n\n");
  
!   if (mi.is_device)
      {
        fprintf (f, "*link_data_start:\n");
        if (mcu->data_section_start
! 	  != mi.arch->default_data_section_start)
! 	fprintf (f, "\t%%{!Tdata:-Tdata 0x%lX}",
! 		 0x800000UL + mcu->data_section_start);
        fprintf (f, "\n\n");
  
        fprintf (f, "*link_text_start:\n");
        if (mcu->text_section_start != 0x0)
! 	fprintf (f, "\t%%{!Ttext:-Ttext 0x%lX}", 0UL + mcu->text_section_start);
        fprintf (f, "\n\n");
      }
  
+   // -m[no-]rodata-in-ram affects linking.  Sanity check its usage.
+   fprintf (f, "*link_rodata_in_ram:\n\t%%(check_rodata_in_ram)");
+   if (mi.is_device && mi.have_flmap)
+     fprintf (f, " %%{!mrodata-in-ram:-u __do_flmap_init}");
+   fprintf (f, "\n\n");
+ 
    // Specs known to GCC.
  
!   if (mi.is_device)
      {
        fprintf (f, "*self_spec:\n");
!       fprintf (f, "\t%%<mmcu=* -mmcu=%s ", mi.arch->name);
!       fprintf (f, "%s ", flmap_spec);
        fprintf (f, "%s ", rcall_spec);
        fprintf (f, "%s\n\n", sp8_spec);
  
*************** print_mcu (const avr_mcu_t *mcu)
*** 293,307 ****
  
        fprintf (f, "*cpp_mcu:\n");
        fprintf (f, "\t-D%s", mcu->macro);
!       if (flash_pm_offset)
  	{
  	  fprintf (f, " -U__AVR_PM_BASE_ADDRESS__");
! 	  fprintf (f, " -D__AVR_PM_BASE_ADDRESS__=0x%x", flash_pm_offset);
  	}
        fprintf (f, "\n\n");
  
        fprintf (f, "*cpp:\n");
!       fprintf (f, "\t%%(cpp_mcu)");
  #if defined (WITH_AVRLIBC)
        fprintf (f, " %%(cpp_avrlibc)");
  #endif // WITH_AVRLIBC
--- 394,421 ----
  
        fprintf (f, "*cpp_mcu:\n");
        fprintf (f, "\t-D%s", mcu->macro);
!       if (pm_base_address)
  	{
  	  fprintf (f, " -U__AVR_PM_BASE_ADDRESS__");
! 	  fprintf (f, " -D__AVR_PM_BASE_ADDRESS__=0x%x", pm_base_address);
  	}
+       if (mi.have_flmap)
+ 	fprintf (f, " -D__AVR_HAVE_FLMAP__");
+ 
+       fprintf (f, "\n\n"); // *cpp_mcu
+ 
+       fprintf (f, "*cpp_rodata_in_ram:\n\t-D__AVR_RODATA_IN_RAM__=");
+       if (mi.rodata_in_flash)
+ 	fprintf (f, "0");
+       else if (! mi.have_flmap)
+ 	fprintf (f, "1");
+       else
+ 	fprintf (f, "%%{!mrodata-in-ram:%%{!mno-rodata-in-ram:0}}"
+ 		 "%%{mrodata-in-ram:1}" "%%{mno-rodata-in-ram:0}");
        fprintf (f, "\n\n");
  
        fprintf (f, "*cpp:\n");
!       fprintf (f, "\t%%(cpp_mcu) %%(cpp_rodata_in_ram)");
  #if defined (WITH_AVRLIBC)
        fprintf (f, " %%(cpp_avrlibc)");
  #endif // WITH_AVRLIBC
*************** print_mcu (const avr_mcu_t *mcu)
*** 317,323 ****
  int main (void)
  {
    for (const avr_mcu_t *mcu = avr_mcu_types; mcu->name; mcu++)
!     print_mcu (mcu);
  
    return EXIT_SUCCESS;
  }
--- 431,437 ----
  int main (void)
  {
    for (const avr_mcu_t *mcu = avr_mcu_types; mcu->name; mcu++)
!     print_mcu (mcu, McuInfo (mcu));
  
    return EXIT_SUCCESS;
  }
diff -Nrcpad gcc-13.2.0/gcc/config/avr/gen-avr-mmcu-texi.cc gcc-14.1.0/gcc/config/avr/gen-avr-mmcu-texi.cc
*** gcc-13.2.0/gcc/config/avr/gen-avr-mmcu-texi.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/gen-avr-mmcu-texi.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
     This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
     This file is part of GCC.
*************** comparator (const void *va, const void *
*** 118,140 ****
  
        if (*a != *b)
  	return *a - *b;
!       
        a++;
        b++;
      }
  
    return *a - *b;
! } 
  
  static void
  print_mcus (size_t n_mcus)
  {
    int duplicate = 0;
    size_t i;
!     
    if (!n_mcus)
      return;
!     
    qsort (mcus, n_mcus, sizeof (avr_mcu_t*), comparator);
  
    printf ("@*@var{mcu}@tie{}=");
--- 118,140 ----
  
        if (*a != *b)
  	return *a - *b;
! 
        a++;
        b++;
      }
  
    return *a - *b;
! }
  
  static void
  print_mcus (size_t n_mcus)
  {
    int duplicate = 0;
    size_t i;
! 
    if (!n_mcus)
      return;
! 
    qsort (mcus, n_mcus, sizeof (avr_mcu_t*), comparator);
  
    printf ("@*@var{mcu}@tie{}=");
*************** int main (void)
*** 162,168 ****
    size_t i, n_mcus = 0;
    const avr_mcu_t *mcu;
  
!   printf ("@c Copyright (C) 2012-2023 Free Software Foundation, Inc.\n");
    printf ("@c This is part of the GCC manual.\n");
    printf ("@c For copying conditions, see the file "
  	  "gcc/doc/include/fdl.texi.\n\n");
--- 162,168 ----
    size_t i, n_mcus = 0;
    const avr_mcu_t *mcu;
  
!   printf ("@c Copyright (C) 2012-2024 Free Software Foundation, Inc.\n");
    printf ("@c This is part of the GCC manual.\n");
    printf ("@c For copying conditions, see the file "
  	  "gcc/doc/include/fdl.texi.\n\n");
*************** int main (void)
*** 189,195 ****
  
  	  for (i = 0; i < ARRAY_SIZE (avr_texinfo); i++)
  	    if (arch_id == avr_texinfo[i].arch_id)
! 	      printf ("@item %s\n%s\n", mcu->name, avr_texinfo[i].texinfo);
  	}
        else if (arch_id == (enum avr_arch_id) mcu->arch_id)
  	{
--- 189,196 ----
  
  	  for (i = 0; i < ARRAY_SIZE (avr_texinfo); i++)
  	    if (arch_id == avr_texinfo[i].arch_id)
! 	      printf ("@item @anchor{%s}%s\n%s\n", mcu->name, mcu->name,
! 		      avr_texinfo[i].texinfo);
  	}
        else if (arch_id == (enum avr_arch_id) mcu->arch_id)
  	{
diff -Nrcpad gcc-13.2.0/gcc/config/avr/genmultilib.awk gcc-14.1.0/gcc/config/avr/genmultilib.awk
*** gcc-13.2.0/gcc/config/avr/genmultilib.awk	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/genmultilib.awk	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2011-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2011-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/avr/predicates.md gcc-14.1.0/gcc/config/avr/predicates.md
*** gcc-13.2.0/gcc/config/avr/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for ATMEL AVR micro controllers.
! ;; Copyright (C) 2006-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Predicate definitions for ATMEL AVR micro controllers.
! ;; Copyright (C) 2006-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 50,59 ****
  ;; Return true if OP is a valid address for lower half of I/O space.
  (define_special_predicate "low_io_address_operand"
    (ior (and (match_code "const_int")
! 	    (match_test "IN_RANGE (INTVAL (op) - avr_arch->sfr_offset,
! 				   0, 0x1F)"))
         (and (match_code "symbol_ref")
! 	    (match_test "SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_IO_LOW"))))
  
  ;; Return true if OP is a valid address for high half of I/O space.
  (define_predicate "high_io_address_operand"
--- 50,69 ----
  ;; Return true if OP is a valid address for lower half of I/O space.
  (define_special_predicate "low_io_address_operand"
    (ior (and (match_code "const_int")
!             (match_test "IN_RANGE (INTVAL (op) - avr_arch->sfr_offset,
!                                    0, 0x1F)"))
         (and (match_code "symbol_ref")
!             (match_test "SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_IO_LOW"))))
! 
! ;; Return true if OP is a register_operand or low_io_operand.
! (define_predicate "reg_or_low_io_operand"
!   (ior (match_operand 0 "register_operand")
!        (and (match_code "mem")
!             ; Deliberately only allow QImode no matter what the mode of
!             ; the operand is.  This effectively disallows and I/O that
!             ; is not QImode for that operand.
!             (match_test "GET_MODE (op) == QImode")
!             (match_test "low_io_address_operand (XEXP (op, 0), Pmode)"))))
  
  ;; Return true if OP is a valid address for high half of I/O space.
  (define_predicate "high_io_address_operand"
***************
*** 64,73 ****
  ;; Return true if OP is a valid address of I/O space.
  (define_special_predicate "io_address_operand"
    (ior (and (match_code "const_int")
! 	    (match_test "IN_RANGE (INTVAL (op) - avr_arch->sfr_offset,
! 				   0, 0x3F)"))
         (and (match_code "symbol_ref")
! 	    (match_test "SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_IO"))))
  
  ;; Return 1 if OP is a general operand not in flash memory
  (define_predicate "nop_general_operand"
--- 74,83 ----
  ;; Return true if OP is a valid address of I/O space.
  (define_special_predicate "io_address_operand"
    (ior (and (match_code "const_int")
!             (match_test "IN_RANGE (INTVAL (op) - avr_arch->sfr_offset,
!                                    0, 0x3F)"))
         (and (match_code "symbol_ref")
!             (match_test "SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_IO"))))
  
  ;; Return 1 if OP is a general operand not in flash memory
  (define_predicate "nop_general_operand"
***************
*** 91,102 ****
--- 101,147 ----
    (and (match_code "const_int")
         (match_test "op == CONST1_RTX (mode)")))
  
+ ;; Return 1 if OP is the constant integer 7 for MODE.
+ (define_predicate "const7_operand"
+   (and (match_code "const_int")
+        (match_test "INTVAL(op) == 7")))
+ 
+ ;; Return 1 if OP is the constant integer 15 for MODE.
+ (define_predicate "const15_operand"
+   (and (match_code "const_int")
+        (match_test "INTVAL(op) == 15")))
+ 
+ ;; Return 1 if OP is the constant integer 23 for MODE.
+ (define_predicate "const23_operand"
+   (and (match_code "const_int")
+        (match_test "INTVAL(op) == 23")))
+ 
+ ;; Return 1 if OP is the constant integer 31 for MODE.
+ (define_predicate "const31_operand"
+   (and (match_code "const_int")
+        (match_test "INTVAL(op) == 31")))
+ 
  
  ;; Return 1 if OP is constant integer 0..7 for MODE.
  (define_predicate "const_0_to_7_operand"
    (and (match_code "const_int")
         (match_test "IN_RANGE (INTVAL (op), 0, 7)")))
  
+ ;; Return 1 if OP is constant integer 0..15 for MODE.
+ (define_predicate "const_0_to_15_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 15)")))
+ 
+ ;; Return 1 if OP is constant integer 0..23 for MODE.
+ (define_predicate "const_0_to_23_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 23)")))
+ 
+ ;; Return 1 if OP is constant integer 0..31 for MODE.
+ (define_predicate "const_0_to_31_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 31)")))
+ 
  ;; Return 1 if OP is constant integer 2..7 for MODE.
  (define_predicate "const_2_to_7_operand"
    (and (match_code "const_int")
***************
*** 140,147 ****
      case SYMBOL_REF :
        return SYMBOL_REF_FUNCTION_P (op);
      case PLUS :
!       /* Assume canonical format of symbol + constant.
! 	 Fall through.  */
      case CONST :
        return text_segment_operand (XEXP (op, 0), VOIDmode);
      default :
--- 185,192 ----
      case SYMBOL_REF :
        return SYMBOL_REF_FUNCTION_P (op);
      case PLUS :
!       // Assume canonical format of symbol + constant.
!       // Fall through.
      case CONST :
        return text_segment_operand (XEXP (op, 0), VOIDmode);
      default :
diff -Nrcpad gcc-13.2.0/gcc/config/avr/specs.h gcc-14.1.0/gcc/config/avr/specs.h
*** gcc-13.2.0/gcc/config/avr/specs.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/specs.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Specs definitions for Atmel AVR back end.
  
!    Copyright (C) 2012-2023 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
  This file is part of GCC.
--- 1,6 ----
  /* Specs definitions for Atmel AVR back end.
  
!    Copyright (C) 2012-2024 Free Software Foundation, Inc.
     Contributed by Georg-Johann Lay (avr@gjlay.de)
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 35,41 ****
    "%(cc1_n_flash) "                             \
    "%(cc1_errata_skip) "                         \
    "%(cc1_rmw) "                                 \
!   "%(cc1_absdata) "
  
  #undef  CC1PLUS_SPEC
  #define CC1PLUS_SPEC                                    \
--- 35,42 ----
    "%(cc1_n_flash) "                             \
    "%(cc1_errata_skip) "                         \
    "%(cc1_rmw) "                                 \
!   "%(cc1_absdata) "                             \
!   "%(cc1_rodata_in_ram) "
  
  #undef  CC1PLUS_SPEC
  #define CC1PLUS_SPEC                                    \
*************** along with GCC; see the file COPYING3.
*** 55,63 ****
    "%(asm_gccisr) "                              \
    "%(asm_errata_skip) "
  
- #define LINK_ARCH_SPEC                          \
-   "%{mmcu=*:-m%*} "
- 
  #define LINK_RELAX_SPEC                         \
    "%{mrelax:--relax} "
  
--- 56,61 ----
*************** along with GCC; see the file COPYING3.
*** 68,73 ****
--- 66,72 ----
    "%(link_text_start) "                         \
    "%(link_relax) "                              \
    "%(link_pmem_wrap) "                          \
+   "%(link_rodata_in_ram) "                      \
    "%{shared:%eshared is not supported} "
  
  #undef  LIB_SPEC
diff -Nrcpad gcc-13.2.0/gcc/config/avr/stdfix.h gcc-14.1.0/gcc/config/avr/stdfix.h
*** gcc-13.2.0/gcc/config/avr/stdfix.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/stdfix.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2007-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2007-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/avr/t-avr gcc-14.1.0/gcc/config/avr/t-avr
*** gcc-13.2.0/gcc/config/avr/t-avr	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/avr/t-avr	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2000-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2000-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/bfin-modes.def gcc-14.1.0/gcc/config/bfin/bfin-modes.def
*** gcc-13.2.0/gcc/config/bfin/bfin-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/bfin-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, for Blackfin.
!    Copyright (C) 2005-2023 Free Software Foundation, Inc.
     Contributed by Analog Devices.
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, for Blackfin.
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
     Contributed by Analog Devices.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/bfin-opts.h gcc-14.1.0/gcc/config/bfin/bfin-opts.h
*** gcc-13.2.0/gcc/config/bfin/bfin-opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/bfin-opts.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for the Blackfin port needed for option handling.
!    Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for the Blackfin port needed for option handling.
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/bfin-protos.h gcc-14.1.0/gcc/config/bfin/bfin-protos.h
*** gcc-13.2.0/gcc/config/bfin/bfin-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/bfin-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Prototypes for Blackfin functions used in the md file & elsewhere.
!    Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
     This file is part of GNU CC.
  
--- 1,5 ----
  /* Prototypes for Blackfin functions used in the md file & elsewhere.
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
     This file is part of GNU CC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/bfin.cc gcc-14.1.0/gcc/config/bfin/bfin.cc
*** gcc-13.2.0/gcc/config/bfin/bfin.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/bfin.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* The Blackfin code generation auxiliary output file.
!    Copyright (C) 2005-2023 Free Software Foundation, Inc.
     Contributed by Analog Devices.
  
     This file is part of GCC.
--- 1,5 ----
  /* The Blackfin code generation auxiliary output file.
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
     Contributed by Analog Devices.
  
     This file is part of GCC.
*************** bfin_valid_reg_p (unsigned int regno, in
*** 2718,2724 ****
  */
  
  static bool
! bfin_legitimate_address_p (machine_mode mode, rtx x, bool strict)
  {
    switch (GET_CODE (x)) {
    case REG:
--- 2718,2725 ----
  */
  
  static bool
! bfin_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 			   code_helper = ERROR_MARK)
  {
    switch (GET_CODE (x)) {
    case REG:
*************** bfin_handle_l2_attribute (tree *node, tr
*** 4877,4883 ****
        else
  	set_decl_section_name (decl, ".l2.text");
      }
!   else if (TREE_CODE (decl) == VAR_DECL)
      {
        if (DECL_SECTION_NAME (decl) != NULL
  	  && strcmp (DECL_SECTION_NAME (decl),
--- 4878,4884 ----
        else
  	set_decl_section_name (decl, ".l2.text");
      }
!   else if (VAR_P (decl))
      {
        if (DECL_SECTION_NAME (decl) != NULL
  	  && strcmp (DECL_SECTION_NAME (decl),
*************** bfin_handle_l2_attribute (tree *node, tr
*** 4895,4901 ****
  }
  
  /* Table of valid machine attributes.  */
! static const struct attribute_spec bfin_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
--- 4896,4902 ----
  }
  
  /* Table of valid machine attributes.  */
! TARGET_GNU_ATTRIBUTES (bfin_attribute_table,
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
*************** static const struct attribute_spec bfin_
*** 4920,4928 ****
      bfin_handle_l1_data_attribute, NULL },
    { "l1_data_B", 0, 0, true, false, false, false,
      bfin_handle_l1_data_attribute, NULL },
!   { "l2", 0, 0, true, false, false, false, bfin_handle_l2_attribute, NULL },
!   { NULL, 0, 0, false, false, false, false, NULL, NULL }
! };
  
  /* Implementation of TARGET_ASM_INTEGER.  When using FD-PIC, we need to
     tell the assembler to generate pointers to function descriptors in
--- 4921,4928 ----
      bfin_handle_l1_data_attribute, NULL },
    { "l1_data_B", 0, 0, true, false, false, false,
      bfin_handle_l1_data_attribute, NULL },
!   { "l2", 0, 0, true, false, false, false, bfin_handle_l2_attribute, NULL }
! });
  
  /* Implementation of TARGET_ASM_INTEGER.  When using FD-PIC, we need to
     tell the assembler to generate pointers to function descriptors in
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/bfin.h gcc-14.1.0/gcc/config/bfin/bfin.h
*** gcc-13.2.0/gcc/config/bfin/bfin.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/bfin.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for the Blackfin port.
!    Copyright (C) 2005-2023 Free Software Foundation, Inc.
     Contributed by Analog Devices.
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions for the Blackfin port.
!    Copyright (C) 2005-2024 Free Software Foundation, Inc.
     Contributed by Analog Devices.
  
     This file is part of GCC.
*************** typedef enum directives {
*** 995,1008 ****
          fputc ('\n',FILE);			\
        } while (0)
  
! #define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL) \
!   do {					\
!     fputs (".type ", FILE);           	\
!     assemble_name (FILE, NAME);         \
!     fputs (", STT_FUNC", FILE);         \
!     fputc (';',FILE);                   \
!     fputc ('\n',FILE);			\
!     ASM_OUTPUT_LABEL(FILE, NAME);	\
    } while (0)
  
  #define ASM_OUTPUT_LABEL(FILE, NAME)    \
--- 995,1008 ----
          fputc ('\n',FILE);			\
        } while (0)
  
! #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL)	\
!   do {							\
!     fputs (".type ", FILE);				\
!     assemble_name (FILE, NAME);				\
!     fputs (", STT_FUNC", FILE);				\
!     fputc (';', FILE);					\
!     fputc ('\n', FILE);					\
!     ASM_OUTPUT_FUNCTION_LABEL (FILE, NAME, DECL);	\
    } while (0)
  
  #define ASM_OUTPUT_LABEL(FILE, NAME)    \
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/bfin.md gcc-14.1.0/gcc/config/bfin/bfin.md
*** gcc-13.2.0/gcc/config/bfin/bfin.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/bfin.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;;- Machine description for Blackfin for GNU compiler
! ;;  Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;;  Contributed by Analog Devices.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;;- Machine description for Blackfin for GNU compiler
! ;;  Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;;  Contributed by Analog Devices.
  
  ;; This file is part of GCC.
***************
*** 1401,1407 ****
  	 (popcount:SI (match_operand:SI 1 "register_operand" "d"))))]
    ""
    "%h0 = ONES %1;"
!   [(set_attr "type" "alu0")])
  
  (define_expand "popcountsi2"
    [(set (match_dup 2)
--- 1401,1408 ----
  	 (popcount:SI (match_operand:SI 1 "register_operand" "d"))))]
    ""
    "%h0 = ONES %1;"
!   [(set_attr "type" "alu0")
!    (set_attr "length" "4")])
  
  (define_expand "popcountsi2"
    [(set (match_dup 2)
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/bfin.opt gcc-14.1.0/gcc/config/bfin/bfin.opt
*** gcc-13.2.0/gcc/config/bfin/bfin.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/bfin.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the Blackfin port of the compiler
  ;
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the Blackfin port of the compiler
  ;
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/bfin.opt.urls gcc-14.1.0/gcc/config/bfin/bfin.opt.urls
*** gcc-13.2.0/gcc/config/bfin/bfin.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/bfin/bfin.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,61 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/bfin/bfin.opt and generated HTML
+ 
+ msim
+ UrlSuffix(gcc/Blackfin-Options.html#index-msim)
+ 
+ mcpu=
+ UrlSuffix(gcc/Blackfin-Options.html#index-mcpu_003d)
+ 
+ momit-leaf-frame-pointer
+ UrlSuffix(gcc/Blackfin-Options.html#index-momit-leaf-frame-pointer-1)
+ 
+ mlow64k
+ UrlSuffix(gcc/Blackfin-Options.html#index-mlow64k)
+ 
+ mcsync-anomaly
+ UrlSuffix(gcc/Blackfin-Options.html#index-mcsync-anomaly)
+ 
+ mspecld-anomaly
+ UrlSuffix(gcc/Blackfin-Options.html#index-mspecld-anomaly)
+ 
+ mid-shared-library
+ UrlSuffix(gcc/Blackfin-Options.html#index-mid-shared-library)
+ 
+ mleaf-id-shared-library
+ UrlSuffix(gcc/Blackfin-Options.html#index-mleaf-id-shared-library)
+ 
+ mshared-library-id=
+ UrlSuffix(gcc/Blackfin-Options.html#index-mshared-library-id)
+ 
+ msep-data
+ UrlSuffix(gcc/Blackfin-Options.html#index-msep-data)
+ 
+ mlong-calls
+ UrlSuffix(gcc/Blackfin-Options.html#index-mlong-calls-3)
+ 
+ mfast-fp
+ UrlSuffix(gcc/Blackfin-Options.html#index-mfast-fp)
+ 
+ ; skipping UrlSuffix for 'mfdpic' due to finding no URLs
+ 
+ minline-plt
+ UrlSuffix(gcc/Blackfin-Options.html#index-minline-plt)
+ 
+ mstack-check-l1
+ UrlSuffix(gcc/Blackfin-Options.html#index-mstack-check-l1)
+ 
+ mmulticore
+ UrlSuffix(gcc/Blackfin-Options.html#index-mmulticore)
+ 
+ mcorea
+ UrlSuffix(gcc/Blackfin-Options.html#index-mcorea)
+ 
+ mcoreb
+ UrlSuffix(gcc/Blackfin-Options.html#index-mcoreb)
+ 
+ msdram
+ UrlSuffix(gcc/Blackfin-Options.html#index-msdram)
+ 
+ micplb
+ UrlSuffix(gcc/Blackfin-Options.html#index-micplb)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/constraints.md gcc-14.1.0/gcc/config/bfin/constraints.md
*** gcc-13.2.0/gcc/config/bfin/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for Blackfin
! ;; Copyright (C) 2008-2023 Free Software Foundation, Inc.
  ;; Contributed by Analog Devices
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Constraint definitions for Blackfin
! ;; Copyright (C) 2008-2024 Free Software Foundation, Inc.
  ;; Contributed by Analog Devices
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/elf.h gcc-14.1.0/gcc/config/bfin/elf.h
*** gcc-13.2.0/gcc/config/bfin/elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/elf.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/linux.h gcc-14.1.0/gcc/config/bfin/linux.h
*** gcc-13.2.0/gcc/config/bfin/linux.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/linux.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2007-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2007-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/predicates.md gcc-14.1.0/gcc/config/bfin/predicates.md
*** gcc-13.2.0/gcc/config/bfin/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for the Blackfin.
! ;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;; Contributed by Analog Devices.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Predicate definitions for the Blackfin.
! ;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;; Contributed by Analog Devices.
  ;;
  ;; This file is part of GCC.
***************
*** 175,181 ****
  (define_predicate "symbol_ref_operand"
    (match_code "symbol_ref"))
  
! ;; True for any non-virtual or eliminable register.  Used in places where
  ;; instantiation of such a register may cause the pattern to not be recognized.
  (define_predicate "register_no_elim_operand"
    (match_operand 0 "register_operand")
--- 175,181 ----
  (define_predicate "symbol_ref_operand"
    (match_code "symbol_ref"))
  
! ;; True for any non-virtual and non-eliminable register.  Used in places where
  ;; instantiation of such a register may cause the pattern to not be recognized.
  (define_predicate "register_no_elim_operand"
    (match_operand 0 "register_operand")
***************
*** 184,191 ****
      op = SUBREG_REG (op);
    return !(op == arg_pointer_rtx
  	   || op == frame_pointer_rtx
! 	   || (REGNO (op) >= FIRST_PSEUDO_REGISTER
! 	       && REGNO (op) <= LAST_VIRTUAL_REGISTER));
  })
  
  ;; Test for an operator valid in a BImode conditional branch
--- 184,190 ----
      op = SUBREG_REG (op);
    return !(op == arg_pointer_rtx
  	   || op == frame_pointer_rtx
! 	   || VIRTUAL_REGISTER_P (op));
  })
  
  ;; Test for an operator valid in a BImode conditional branch
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/print-sysroot-suffix.sh gcc-14.1.0/gcc/config/bfin/print-sysroot-suffix.sh
*** gcc-13.2.0/gcc/config/bfin/print-sysroot-suffix.sh	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/print-sysroot-suffix.sh	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  #!/bin/sh
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  # This file is part of GCC.
  
  # GCC is free software; you can redistribute it and/or modify
--- 1,5 ----
  #!/bin/sh
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  # This file is part of GCC.
  
  # GCC is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/rtems.h gcc-14.1.0/gcc/config/bfin/rtems.h
*** gcc-13.2.0/gcc/config/bfin/rtems.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/rtems.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for rtems targeting a bfin
!    Copyright (C) 2006-2023 Free Software Foundation, Inc.
     Contributed by Ralf Corsépius (ralf.corsepius@rtems.org).
  
     This file is part of GCC.
--- 1,5 ----
  /* Definitions for rtems targeting a bfin
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
     Contributed by Ralf Corsépius (ralf.corsepius@rtems.org).
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/sync.md gcc-14.1.0/gcc/config/bfin/sync.md
*** gcc-13.2.0/gcc/config/bfin/sync.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/sync.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; GCC machine description for Blackfin synchronization instructions.
! ;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;; Contributed by Analog Devices.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; GCC machine description for Blackfin synchronization instructions.
! ;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;; Contributed by Analog Devices.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/t-bfin-elf gcc-14.1.0/gcc/config/bfin/t-bfin-elf
*** gcc-13.2.0/gcc/config/bfin/t-bfin-elf	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/t-bfin-elf	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2005-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2005-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/t-bfin-linux gcc-14.1.0/gcc/config/bfin/t-bfin-linux
*** gcc-13.2.0/gcc/config/bfin/t-bfin-linux	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/t-bfin-linux	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/t-bfin-uclinux gcc-14.1.0/gcc/config/bfin/t-bfin-uclinux
*** gcc-13.2.0/gcc/config/bfin/t-bfin-uclinux	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/t-bfin-uclinux	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2007-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2007-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/bfin/uclinux.h gcc-14.1.0/gcc/config/bfin/uclinux.h
*** gcc-13.2.0/gcc/config/bfin/uclinux.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bfin/uclinux.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/atomic.md gcc-14.1.0/gcc/config/bpf/atomic.md
*** gcc-13.2.0/gcc/config/bpf/atomic.md	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/bpf/atomic.md	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,185 ----
+ ;; Machine description for eBPF.
+ ;; Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ 
+ ;; This file is part of GCC.
+ 
+ ;; GCC is free software; you can redistribute it and/or modify
+ ;; it under the terms of the GNU General Public License as published by
+ ;; the Free Software Foundation; either version 3, or (at your option)
+ ;; any later version.
+ 
+ ;; GCC is distributed in the hope that it will be useful,
+ ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ ;; GNU General Public License for more details.
+ 
+ ;; You should have received a copy of the GNU General Public License
+ ;; along with GCC; see the file COPYING3.  If not see
+ ;; <http://www.gnu.org/licenses/>.
+ 
+ 
+ (define_mode_iterator AMO [SI DI])
+ 
+ ;;; Plain atomic modify operations.
+ 
+ ;; Non-fetching atomic add predates all other BPF atomic insns.
+ ;; Use xadd{w,dw} for compatibility with older GAS without support
+ ;; for v3 atomics.  Newer GAS supports "aadd[32]" in line with the
+ ;; other atomic operations.
+ (define_insn "atomic_add<AMO:mode>"
+   [(set (match_operand:AMO 0 "memory_operand" "+m")
+         (unspec_volatile:AMO
+          [(plus:AMO (match_dup 0)
+                     (match_operand:AMO 1 "register_operand" "r"))
+           (match_operand:SI 2 "const_int_operand")] ;; Memory model.
+          UNSPEC_AADD))]
+   ""
+   "{xadd<mop>\t%0,%1|lock *(<smop> *)(%w0) += %w1}"
+   [(set_attr "type" "atomic")])
+ 
+ (define_insn "atomic_and<AMO:mode>"
+   [(set (match_operand:AMO 0 "memory_operand" "+m")
+         (unspec_volatile:AMO
+          [(and:AMO (match_dup 0)
+                    (match_operand:AMO 1 "register_operand" "r"))
+           (match_operand:SI 2 "const_int_operand")] ;; Memory model.
+          UNSPEC_AAND))]
+   "bpf_has_v3_atomics"
+   "{aand<msuffix>\t%0,%1|lock *(<smop> *)(%w0) &= %w1}")
+ 
+ (define_insn "atomic_or<AMO:mode>"
+   [(set (match_operand:AMO 0 "memory_operand" "+m")
+         (unspec_volatile:AMO
+          [(ior:AMO (match_dup 0)
+                    (match_operand:AMO 1 "register_operand" "r"))
+           (match_operand:SI 2 "const_int_operand")] ;; Memory model.
+          UNSPEC_AOR))]
+   "bpf_has_v3_atomics"
+   "{aor<msuffix>\t%0,%1|lock *(<smop> *)(%w0) %|= %w1}")
+ 
+ (define_insn "atomic_xor<AMO:mode>"
+   [(set (match_operand:AMO 0 "memory_operand" "+m")
+         (unspec_volatile:AMO
+          [(xor:AMO (match_dup 0)
+                    (match_operand:AMO 1 "register_operand" "r"))
+           (match_operand:SI 2 "const_int_operand")] ;; Memory model.
+          UNSPEC_AXOR))]
+   "bpf_has_v3_atomics"
+   "{axor<msuffix>\t%0,%1|lock *(<smop> *)(%w0) ^= %w1}")
+ 
+ ;;; Feching (read-modify-store) versions of atomic operations.
+ 
+ (define_insn "atomic_fetch_add<AMO:mode>"
+   [(set (match_operand:AMO 0 "register_operand" "=r") ; output
+         (match_operand:AMO 1 "memory_operand" "+m"))
+    (set (match_dup 1)
+         (unspec_volatile:AMO
+          [(plus:AMO (match_dup 1)
+                     (match_operand:AMO 2 "nonmemory_operand" "0")) ; second operand to op
+           (match_operand:AMO 3 "const_int_operand")] ;; Memory model
+         UNSPEC_AFADD))]
+   "bpf_has_v3_atomics"
+   "{afadd<msuffix>\t%1,%0|%w0 = atomic_fetch_add((<smop> *)(%1), %w0)}")
+ 
+ (define_insn "atomic_fetch_and<AMO:mode>"
+   [(set (match_operand:AMO 0 "register_operand" "=r")
+         (match_operand:AMO 1 "memory_operand" "+m"))
+    (set (match_dup 1)
+         (unspec_volatile:AMO
+          [(and:AMO (match_dup 1)
+                     (match_operand:AMO 2 "nonmemory_operand" "0"))
+           (match_operand:AMO 3 "const_int_operand")]
+          UNSPEC_AFAND))]
+   "bpf_has_v3_atomics"
+   "{afand<msuffix>\t%1,%0|%w0 = atomic_fetch_and((<smop> *)(%1), %w0)}")
+ 
+ (define_insn "atomic_fetch_or<AMO:mode>"
+   [(set (match_operand:AMO 0 "register_operand" "=r")
+         (match_operand:AMO 1 "memory_operand" "+m"))
+    (set (match_dup 1)
+         (unspec_volatile:AMO
+          [(ior:AMO (match_dup 1)
+                    (match_operand:AMO 2 "nonmemory_operand" "0"))
+           (match_operand:AMO 3 "const_int_operand")]
+          UNSPEC_AFOR))]
+   "bpf_has_v3_atomics"
+   "{afor<msuffix>\t%1,%0|%w0 = atomic_fetch_or((<smop> *)(%1), %w0)}")
+ 
+ (define_insn "atomic_fetch_xor<AMO:mode>"
+   [(set (match_operand:AMO 0 "register_operand" "=r")
+         (match_operand:AMO 1 "memory_operand" "+m"))
+    (set (match_dup 1)
+         (unspec_volatile:AMO
+          [(xor:AMO (match_dup 1)
+                    (match_operand:AMO 2 "nonmemory_operand" "0"))
+           (match_operand:AMO 3 "const_int_operand")]
+          UNSPEC_AFXOR))]
+   "bpf_has_v3_atomics"
+   "{afxor<msuffix>\t%1,%0|%w0 = atomic_fetch_xor((<smop> *)(%1), %w0)}")
+ 
+ ;; Weird suffixes used in pseudo-c atomic compare-exchange insns.
+ (define_mode_attr pcaxsuffix [(SI "32_32") (DI "_64")])
+ 
+ (define_insn "atomic_exchange<AMO:mode>"
+   [(set (match_operand:AMO 0 "register_operand" "=r")
+         (unspec_volatile:AMO
+          [(match_operand:AMO 1 "memory_operand" "+m")
+           (match_operand:AMO 3 "const_int_operand")]
+          UNSPEC_AXCHG))
+    (set (match_dup 1)
+         (match_operand:AMO 2 "nonmemory_operand" "0"))]
+   "bpf_has_v3_atomics"
+   "{axchg<msuffix>\t%1,%0|%w0 = xchg<pcaxsuffix>(%1, %w0)}")
+ 
+ ;; The eBPF atomic-compare-and-exchange instruction has the form
+ ;;   acmp [%dst+offset], %src
+ ;; The instruction atomically compares the value addressed by %dst+offset
+ ;; with register R0.  If they match, the value at %dst+offset is overwritten
+ ;; with the value of %src.  Otherwise, no write occurs.  In either case, the
+ ;; original value of %dst+offset is zero-extended and loaded back into R0.
+ 
+ (define_expand "atomic_compare_and_swap<AMO:mode>"
+   [(match_operand:SI 0 "register_operand" "=r")    ;; bool success
+    (match_operand:AMO 1 "register_operand" "=r")   ;; old value
+    (match_operand:AMO 2 "memory_operand" "+m")     ;; memory
+    (match_operand:AMO 3 "register_operand")        ;; expected
+    (match_operand:AMO 4 "register_operand")        ;; desired
+    (match_operand:SI 5 "const_int_operand")        ;; is_weak (unused)
+    (match_operand:SI 6 "const_int_operand")        ;; success model (unused)
+    (match_operand:SI 7 "const_int_operand")]       ;; failure model (unused)
+   "bpf_has_v3_atomics"
+ {
+   /* Load the expected value (into R0 by constraint of below).  */
+   emit_move_insn (operands[1], operands[3]);
+ 
+   /* Emit the acmp.  */
+   emit_insn (gen_atomic_compare_and_swap<AMO:mode>_1 (operands[1], operands[2], operands[3], operands[4]));
+ 
+   /* Assume that the operation was successful.  */
+   emit_move_insn (operands[0], const1_rtx);
+   rtx_code_label *success_label = gen_label_rtx ();
+ 
+   /* Compare value that was in memory (now in R0/op[1]) to expected value.
+      If they are equal, then the write occurred. Otherwise, indicate fail in output.  */
+   emit_cmp_and_jump_insns (operands[1], operands[3], EQ, 0,
+                            GET_MODE (operands[1]), 1, success_label);
+   emit_move_insn (operands[0], const0_rtx);
+ 
+   if (success_label)
+     {
+        emit_label (success_label);
+        LABEL_NUSES (success_label) = 1;
+     }
+   DONE;
+ })
+ 
+ (define_insn "atomic_compare_and_swap<AMO:mode>_1"
+   [(set (match_operand:AMO 0 "register_operand" "+t") ;; R0 is both input (expected value)
+         (unspec_volatile:AMO                          ;;       and output (original value)
+          [(match_dup 0)                               ;; result depends on R0
+           (match_operand:AMO 1 "memory_operand")      ;; memory
+           (match_operand:AMO 2 "register_operand")    ;; expected
+           (match_operand:AMO 3 "register_operand")]   ;; desired
+          UNSPEC_ACMP))]
+   "bpf_has_v3_atomics"
+   "{acmp<msuffix>\t%1,%3|%w0 = cmpxchg<pcaxsuffix>(%1, %w0, %w3)}")
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf-c.cc gcc-14.1.0/gcc/config/bpf/bpf-c.cc
*** gcc-13.2.0/gcc/config/bpf/bpf-c.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/bpf/bpf-c.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,88 ----
+ /* BPF-specific code for C family languages.
+    Copyright (C) 2024 Free Software Foundation, Inc.
+    Contributed by Oracle Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #define IN_TARGET_CODE 1
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "c-family/c-common.h"
+ #include "cpplib.h"
+ 
+ /* Define target-specific CPP macros.  This function in used in the
+    definition of TARGET_CPU_CPP_BUILTINS in bpf.h */
+ 
+ #define builtin_define(TXT) cpp_define (pfile, TXT)
+ 
+ void
+ bpf_target_macros (cpp_reader *pfile)
+ {
+   builtin_define ("__BPF__");
+   builtin_define ("__bpf__");
+ 
+   if (TARGET_BIG_ENDIAN)
+     builtin_define ("__BPF_BIG_ENDIAN__");
+   else
+     builtin_define ("__BPF_LITTLE_ENDIAN__");
+ 
+   switch (bpf_isa)
+     {
+     case ISA_V1:
+       builtin_define_with_int_value ("__BPF_CPU_VERSION__", 1);
+       break;
+     case ISA_V2:
+       builtin_define_with_int_value ("__BPF_CPU_VERSION__", 2);
+       break;
+     case ISA_V3:
+       builtin_define_with_int_value ("__BPF_CPU_VERSION__", 3);
+       break;
+     case ISA_V4:
+       builtin_define_with_int_value ("__BPF_CPU_VERSION__", 4);
+       break;
+     default:
+       gcc_unreachable ();
+       break;
+     }
+ 
+   /* Different BPF CPU versions support different features.  Some of
+      them can be enabled/disabled explicitly.  */
+   if (bpf_has_alu32)
+     builtin_define ("__BPF_FEATURE_ALU32");
+   if (bpf_has_jmp32)
+     builtin_define ("__BPF_FEATURE_JMP32");
+   if (bpf_has_jmpext)
+     builtin_define ("__BPF_FEATURE_JMP_EXT");
+   if (bpf_has_bswap)
+     builtin_define ("__BPF_FEATURE_BSWAP");
+   if (bpf_has_sdiv)
+     builtin_define ("__BPF_FEATURE_SDIV_SMOD");
+   if (bpf_has_smov)
+     builtin_define ("__BPF_FEATURE_MOVSX");
+ 
+   /* Other CPU features can only be enabled/disabled generically by
+      selecting the corresponding CPU version.  */
+   if (bpf_isa >= ISA_V4)
+     {
+       builtin_define ("__BPF_FEATURE_LDSX");
+       builtin_define ("__BPF_FEATURE_GOTOL");
+       builtin_define ("__BPF_FEATURE_ST");
+     }
+ }
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf-helpers.h gcc-14.1.0/gcc/config/bpf/bpf-helpers.h
*** gcc-13.2.0/gcc/config/bpf/bpf-helpers.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/bpf-helpers.h	Thu Jan  1 00:00:00 1970
***************
*** 1,427 ****
- /* Copyright (C) 2019-2023 Free Software Foundation, Inc.
- 
-    This file is part of GCC.
- 
-    GCC is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 3, or (at your option)
-    any later version.
- 
-    GCC is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
- 
-    Under Section 7 of GPL version 3, you are granted additional
-    permissions described in the GCC Runtime Library Exception, version
-    3.1, as published by the Free Software Foundation.
- 
-    You should have received a copy of the GNU General Public License and
-    a copy of the GCC Runtime Library Exception along with this program;
-    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-    <http://www.gnu.org/licenses/>.  */
- 
- /* The purpose of this file is to provide a compatiblity layer with
-    the Linux kernel bpf_helpers.h header that is located in
-    linux/tools/testing/selftests/bpf/bpf_helpers.h.  That file is
-    currently llvm-specific.  */
- 
- #ifndef __BPF_HELPERS_H
- #define __BPF_HELPERS_H
- 
- #define SEC(NAME) __attribute__((section(NAME), used))
- #define KERNEL_HELPER(NUM) __attribute__((kernel_helper(NUM)))
- 
- /* Flags used in some kernel helpers.  */
- 
- #define BPF_ANY     0
- #define BPF_NOEXIST 1
- #define BPF_EXIST   2
- 
- #define BPF_F_LOCK 4
- #define BPF_F_NO_COMMON_LRU (1U << 1)
- #define BPF_F_NUMA_NODE (1U << 2)
- 
- /* Prototypes of functions to call kernel helpers.
-    Please keep these protoypes sorted by helper number.  */
- 
- void *bpf_map_lookup_elem (void *map, const void *key)
-   KERNEL_HELPER (1);
- 
- int bpf_map_update_elem (void *map, const void *key, const void *value,
- 			 unsigned long long flags)
-   KERNEL_HELPER (2);
- 
- int bpf_map_delete_elem (void *map, const void *key)
-   KERNEL_HELPER (3);
- 
- int bpf_probe_read (void *dst, int size, const void *unsafe_ptr)
-   KERNEL_HELPER (4);
- 
- unsigned long long bpf_ktime_get_ns (void)
-   KERNEL_HELPER (5);
- 
- int bpf_trace_printk (const char *fmt, int fmt_size, ...)
-   KERNEL_HELPER (6);
- 
- unsigned long long bpf_get_prandom_u32 (void)
-   KERNEL_HELPER (7);
- 
- unsigned long long bpf_get_smp_processor_id (void)
-   KERNEL_HELPER (8);
- 
- int bpf_skb_store_bytes (void *ctx, int off, void *from, int len,
- 			 unsigned int start_header)
-   KERNEL_HELPER (9);
- 
- int bpf_l3_csum_replace (void *ctx, int off, int from, int to, int flags)
-   KERNEL_HELPER (10);
- 
- int bpf_l4_csum_replace (void *ctx, int off, int from, int to, int flags)
-   KERNEL_HELPER (11);
- 
- int bpf_tail_call (void *ctx, void *map, unsigned int index)
-   KERNEL_HELPER (12);
- 
- int bpf_clone_redirect (void *ctx, int ifindex, int flags)
-   KERNEL_HELPER (13);
- 
- unsigned long long bpf_get_current_pid_tgid (void)
-   KERNEL_HELPER (14);
- 
- unsigned long long bpf_get_current_uid_gid (void)
-   KERNEL_HELPER (15);
- 
- int bpf_get_current_comm (void *buf, int buf_size)
-   KERNEL_HELPER (16);
- 
- unsigned int bpf_get_cgroup_classid (void *ctx)
-   KERNEL_HELPER (17);
- 
- int bpf_skb_vlan_push (void *ctx, short vlan_proto,
- 		       unsigned short vlan_tci)
-   KERNEL_HELPER (18);
- 
- int bpf_skb_vlan_pop (void *ctx)
-   KERNEL_HELPER (19);
- 
- int bpf_skb_get_tunnel_key (void *ctx, void *key, int size, int flags)
-   KERNEL_HELPER (20);
- 
- int bpf_skb_set_tunnel_key (void *ctx, void *key, int size, int flags)
-   KERNEL_HELPER (21);
- 
- unsigned long long bpf_perf_event_read (void *map, unsigned long long flags)
-   KERNEL_HELPER (22);
- 
- int bpf_redirect (int ifindex, int flags)
-   KERNEL_HELPER (23);
- 
- unsigned int bpf_get_route_realm (void *ctx)
-   KERNEL_HELPER (24);
- 
- int bpf_perf_event_output (void *ctx, void *map, unsigned long long flags,
- 			   void *data, int size)
-   KERNEL_HELPER (25);
- 
- int bpf_skb_load_bytes (void *ctx, int off, void *to, int len)
-   KERNEL_HELPER (26);
- 
- int bpf_get_stackid (void *ctx, void *map, int flags)
-   KERNEL_HELPER (27);
- 
- int bpf_csum_diff (void *from, int from_size, void *to, int to_size, int seed)
-   KERNEL_HELPER (28);
- 
- int bpf_skb_get_tunnel_opt (void *ctx, void *md, int size)
-   KERNEL_HELPER (29);
- 
- int bpf_skb_set_tunnel_opt (void *ctx, void *md, int size)
-   KERNEL_HELPER (30);
- 
- int bpf_skb_change_proto (void *ctx, short proto, unsigned long flags)
-   KERNEL_HELPER (31);
- 
- int bpf_skb_change_type (void *ctx, unsigned int type)
-   KERNEL_HELPER (32);
- 
- int bpf_skb_under_cgroup (void *ctx, void *map, int index)
-   KERNEL_HELPER (33);
- 
- unsigned int bpf_get_hash_recalc (void *ctx)
-   KERNEL_HELPER (34);
- 
- unsigned long long bpf_get_current_task (void)
-   KERNEL_HELPER (35);
- 
- int bpf_probe_write_user (void *dst, const void *src, int size)
-   KERNEL_HELPER (36);
- 
- int bpf_current_task_under_cgroup (void *map, int index)
-   KERNEL_HELPER (37);
- 
- int bpf_skb_change_tail (void *ctx, unsigned int len, unsigned long flags)
-   KERNEL_HELPER (38);
- 
- int bpf_skb_pull_data (void *, int len)
-   KERNEL_HELPER (39);
- 
- long long bpf_csum_update (void *ctx, unsigned int csum)
-   KERNEL_HELPER (40);
- 
- void bpf_set_hash_invalid (void *ctx)
-   KERNEL_HELPER (41);
- 
- int bpf_get_numa_node_id (void)
-   KERNEL_HELPER (42);
- 
- int bpf_skb_change_head (void *, int len, int flags)
-   KERNEL_HELPER (43);
- 
- int bpf_xdp_adjust_head (void *ctx, int offset)
-   KERNEL_HELPER (44);
- 
- int bpf_probe_read_str (void *ctx, unsigned int size, const void *unsafe_ptr)
-   KERNEL_HELPER (45);
- 
- int bpf_get_socket_cookie (void *ctx)
-   KERNEL_HELPER (46);
- 
- unsigned int bpf_get_socket_uid (void *ctx)
-   KERNEL_HELPER (47);
- 
- unsigned int bpf_set_hash (void *ctx, unsigned int hash)
-   KERNEL_HELPER (48);
- 
- int bpf_setsockopt (void *ctx, int level, int optname, void *optval, int optlen)
-   KERNEL_HELPER (49);
- 
- int bpf_skb_adjust_room (void *ctx, int len_diff, unsigned int mode,
- 			 unsigned long long flags)
-   KERNEL_HELPER (50);
- 
- int bpf_redirect_map (void *map, int key, int flags)
-   KERNEL_HELPER (51);
- 
- int bpf_sk_redirect_map (void *ctx, void *map, int key, int flags)
-   KERNEL_HELPER (52);
- 
- int bpf_sock_map_update (void *map, void *key, void *value,
- 			 unsigned long long flags)
-   KERNEL_HELPER (53);
- 
- int bpf_xdp_adjust_meta (void *ctx, int offset)
-   KERNEL_HELPER (54);
- 
- int bpf_perf_event_read_value (void *map, unsigned long long flags,
- 			       void *buf, unsigned int buf_size)
-   KERNEL_HELPER (55);
- 
- int bpf_perf_prog_read_value (void *ctx, void *buf, unsigned int buf_size)
-   KERNEL_HELPER (56);
- 
- int bpf_getsockopt (void *ctx, int level, int optname, void *optval,
- 		    int optlen)
-   KERNEL_HELPER (57);
- 
- int bpf_override_return (void *ctx, unsigned long rc)
-   KERNEL_HELPER (58);
- 
- int bpf_sock_ops_cb_flags_set (void *ctx, int flags)
-   KERNEL_HELPER (59);
- 
- int bpf_msg_redirect_map (void *ctx, void *map, int key, int flags)
-   KERNEL_HELPER (60);
- 
- int bpf_msg_apply_bytes (void *ctx, int len)
-   KERNEL_HELPER (61);
- 
- int bpf_msg_cork_bytes (void *ctx, int len)
-   KERNEL_HELPER (62);
- 
- int bpf_msg_pull_data (void *, int len)
-   KERNEL_HELPER (63);
- 
- int bpf_bind (void *ctx, void *addr, int addr_len)
-   KERNEL_HELPER (64);
- 
- int bpf_xdp_adjust_tail (struct xdp_md *xdp_md, int delta)
-   KERNEL_HELPER (65);
- 
- int bpf_skb_get_xfrm_state (void *ctx, int index, void *state,
- 			    int size, int flags)
-   KERNEL_HELPER (66);
- 
- int bpf_get_stack (void *ctx, void *buf, int size, int flags)
-   KERNEL_HELPER (67);
- 
- int bpf_skb_load_bytes_relative (void *ctx, int off, void *to, int len,
- 				 unsigned int start_header)
-   KERNEL_HELPER (68);
- 
- int bpf_fib_lookup (void *ctx, struct bpf_fib_lookup *params,
- 		    int plen, unsigned int flags)
-   KERNEL_HELPER (69);
- 
- int bpf_sock_hash_update (void *map, void *key, void *value,
- 			  unsigned long long flags)
-   KERNEL_HELPER (70);
- 
- int bpf_msg_redirect_hash (void *ctx, void *map, void *key, int flags)
-   KERNEL_HELPER (71);
- 
- int bpf_sk_redirect_hash (void *ctx, void *map, void *key, int flags)
-   KERNEL_HELPER (72);
- 
- int bpf_lwt_push_encap (void *ctx, unsigned int type, void *hdr,
- 			unsigned int len)
-   KERNEL_HELPER (73);
- 
- int bpf_lwt_seg6_store_bytes (void *ctx, unsigned int offset,
- 			      void *from, unsigned int len)
-   KERNEL_HELPER (74);
- 
- int bpf_lwt_seg6_adjust_srh (void *ctx, unsigned int offset,
- 			     unsigned int len)
-   KERNEL_HELPER (75);
- 
- int bpf_lwt_seg6_action (void *ctx, unsigned int action, void *param,
- 			 unsigned int param_len)
-   KERNEL_HELPER (76);
- 
- int bpf_rc_repeat (void *ctx)
-   KERNEL_HELPER (77);
- 
- int bpf_rc_keydown (void *ctx, unsigned int protocol,
- 		    unsigned long long scancode, unsigned int toggle)
-   KERNEL_HELPER (78);
- 
- unsigned bpf_skb_cgroup_id (void *ctx)
-   KERNEL_HELPER (79);
- 
- unsigned long long bpf_get_current_cgroup_id (void)
-   KERNEL_HELPER (80);
- 
- void *bpf_get_local_storage (void *map, unsigned long long flags)
-   KERNEL_HELPER (81);
- 
- int bpf_sk_select_reuseport (void *ctx, void *map, void *key, unsigned int flags)
-   KERNEL_HELPER (82);
- 
- unsigned long long bpf_skb_ancestor_cgroup_id (void *ctx, int level)
-   KERNEL_HELPER (83);
- 
- struct bpf_sock *bpf_sk_lookup_tcp (void *ctx, struct bpf_sock_tuple *tuple,
- 				    int size, unsigned long long netns_id,
- 				    unsigned long long flags)
-   KERNEL_HELPER (84);
- 
- struct bpf_sock *bpf_sk_lookup_udp (void *ctx, struct bpf_sock_tuple *tuple,
- 				    int size, unsigned long long netns_id,
- 				    unsigned long long flags)
-   KERNEL_HELPER (85);
- 
- int bpf_sk_release (struct bpf_sock *sk)
-   KERNEL_HELPER (86);
- 
- int bpf_map_push_elem (void *map, const void *value, unsigned long long flags)
-   KERNEL_HELPER (87);
- 
- int bpf_map_pop_elem (void *map, void *value)
-   KERNEL_HELPER (88);
- 
- int bpf_map_peek_elem (void *map, void *value)
-   KERNEL_HELPER (89);
- 
- int bpf_msg_push_data (void *ctx, int start, int cut, int flags)
-   KERNEL_HELPER (90);
- 
- int bpf_msg_pop_data (void *ctx, int start, int cut, int flags)
-   KERNEL_HELPER (91);
- 
- int bpf_rc_pointer_rel (void *ctx, int rel_x, int rel_y)
-   KERNEL_HELPER (92);
- 
- void bpf_spin_lock (struct bpf_spin_lock *lock)
-   KERNEL_HELPER (93);
- 
- void bpf_spin_unlock (struct bpf_spin_lock *lock)
-   KERNEL_HELPER (94);
- 
- struct bpf_sock *bpf_sk_fullsock (struct bpf_sock *sk)
-   KERNEL_HELPER (95);
- 
- struct bpf_sock *bpf_tcp_sock (struct bpf_sock *sk)
-   KERNEL_HELPER (96);
- 
- int bpf_skb_ecn_set_ce (void *ctx)
-   KERNEL_HELPER (97);
- 
- struct bpf_sock *bpf_get_listener_sock (struct bpf_sock *sk)
-   KERNEL_HELPER (98);
- 
- struct bpf_sock *bpf_skc_lookup_tcp (void *ctx,
- 				     struct bpf_sock_tuple *tuple,
- 				     unsigned int tuple_size,
- 				     unsigned long netns,
- 				     unsigned long flags)
-   KERNEL_HELPER (99);
- 
- int bpf_tcp_check_syncookie (struct bpf_sock *sk, void *iph,
- 			     unsigned int iph_len,
- 			     struct tcp_hdr *th,
- 			     unsigned int th_len)
-   KERNEL_HELPER (100);
- 
- int bpf_sysctl_get_name (struct bpf_sysctl *ctx,
- 			 char *buf, unsigned long buf_len,
- 			 unsigned long flags)
-   KERNEL_HELPER (101);
- 
- int bpf_sysctl_get_current_value (struct bpf_sysctl *ctx,
- 				  char *buf, unsigned long buf_len)
-   KERNEL_HELPER (102);
- 
- int bpf_sysctl_get_new_value (struct bpf_sysctl *ctx, char *buf,
- 			      unsigned long buf_len)
-   KERNEL_HELPER (103);
- 
- int bpf_sysctl_set_new_value (struct bpf_sysctl *ctx, const char *buf,
- 			      unsigned long buf_len)
-   KERNEL_HELPER (104);
- 
- int bpf_strtol (const char *buf, unsigned long buf_len,
- 		unsigned long flags, long *res)
-   KERNEL_HELPER (105);
- 
- int bpf_strtoul (const char *buf, unsigned long buf_len,
- 		 unsigned long flags, unsigned long *res)
-   KERNEL_HELPER (106);
- 
- void *bpf_sk_storage_get (void *map, struct bpf_sock *sk,
- 			  void *value, long flags)
-   KERNEL_HELPER (107);
- 
- int bpf_sk_storage_delete (void *map, struct bpf_sock *sk)
-   KERNEL_HELPER (108);
- 
- /* Functions to emit BPF_LD_ABS and BPF_LD_IND instructions.  We
-    provide the "standard" names as synonyms of the corresponding GCC
-    builtins.  Note how the SKB argument is ignored.  */
- 
- #define load_byte(SKB,OFF) __builtin_bpf_load_byte ((OFF))
- #define load_half(SKB,OFF) __builtin_bpf_load_half ((OFF))
- #define load_word(SKB,OFF) __builtin_bpf_load_word ((OFF))
- 
- struct bpf_map_def
- {
-   unsigned int type;
-   unsigned int key_size;
-   unsigned int value_size;
-   unsigned int max_entries;
-   unsigned int map_flags;
-   unsigned int inner_map_idx;
-   unsigned int numa_node;
- };
- 
- #endif /* ! __BPF_HELPERS_H */
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf-opts.h gcc-14.1.0/gcc/config/bpf/bpf-opts.h
*** gcc-13.2.0/gcc/config/bpf/bpf-opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/bpf-opts.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for option handling for eBPF.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for option handling for eBPF.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 20,63 ****
  #ifndef BPF_OPTS_H
  #define BPF_OPTS_H
  
- /* Supported versions of the Linux kernel.  */
- enum bpf_kernel_version
- {
-   /* Linux 4.x */
-   LINUX_V4_0,
-   LINUX_V4_1,
-   LINUX_V4_2,
-   LINUX_V4_3,
-   LINUX_V4_4,
-   LINUX_V4_5,
-   LINUX_V4_6,
-   LINUX_V4_7,
-   LINUX_V4_8,
-   LINUX_V4_9,
-   LINUX_V4_10,
-   LINUX_V4_11,
-   LINUX_V4_12,
-   LINUX_V4_13,
-   LINUX_V4_14,
-   LINUX_V4_15,
-   LINUX_V4_16,
-   LINUX_V4_17,
-   LINUX_V4_18,
-   LINUX_V4_19,
-   LINUX_V4_20,
-   /* Linux 5.x  */
-   LINUX_V5_0,
-   LINUX_V5_1,
-   LINUX_V5_2,
-   LINUX_LATEST = LINUX_V5_2,
-   LINUX_NATIVE,
- };
- 
  enum bpf_isa_version
  {
    ISA_V1,
    ISA_V2,
    ISA_V3,
  };
  
  #endif /* ! BPF_OPTS_H */
--- 20,37 ----
  #ifndef BPF_OPTS_H
  #define BPF_OPTS_H
  
  enum bpf_isa_version
  {
    ISA_V1,
    ISA_V2,
    ISA_V3,
+   ISA_V4
+ };
+ 
+ enum bpf_asm_dialect
+ {
+   ASM_NORMAL,
+   ASM_PSEUDOC
  };
  
  #endif /* ! BPF_OPTS_H */
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf-passes.def gcc-14.1.0/gcc/config/bpf/bpf-passes.def
*** gcc-13.2.0/gcc/config/bpf/bpf-passes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/bpf-passes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declaration of target-specific passes for eBPF.
!    Copyright (C) 2021-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Declaration of target-specific passes for eBPF.
!    Copyright (C) 2023-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 17,20 ****
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
! INSERT_PASS_AFTER (pass_df_initialize_opt, 1, pass_bpf_core_attr);
--- 17,20 ----
     along with GCC; see the file COPYING3.  If not see
     <http://www.gnu.org/licenses/>.  */
  
! INSERT_PASS_BEFORE (pass_lower_omp, 1, pass_lower_bpf_core);
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf-protos.h gcc-14.1.0/gcc/config/bpf/bpf-protos.h
*** gcc-13.2.0/gcc/config/bpf/bpf-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/bpf-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definition of eBPF target for GNU compiler.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definition of eBPF target for GNU compiler.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern void bpf_print_operand_address (F
*** 30,36 ****
  extern void bpf_expand_prologue (void);
  extern void bpf_expand_epilogue (void);
  extern void bpf_expand_cbranch (machine_mode, rtx *);
  
! rtl_opt_pass * make_pass_bpf_core_attr (gcc::context *);
  
  #endif /* ! GCC_BPF_PROTOS_H */
--- 30,41 ----
  extern void bpf_expand_prologue (void);
  extern void bpf_expand_epilogue (void);
  extern void bpf_expand_cbranch (machine_mode, rtx *);
+ const char *bpf_output_move (rtx *operands, const char *templ);
  
! class gimple_opt_pass;
! gimple_opt_pass *make_pass_lower_bpf_core (gcc::context *ctxt);
! 
! bool bpf_expand_cpymem (rtx *, bool);
! bool bpf_expand_setmem (rtx *);
  
  #endif /* ! GCC_BPF_PROTOS_H */
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf.cc gcc-14.1.0/gcc/config/bpf/bpf.cc
*** gcc-13.2.0/gcc/config/bpf/bpf.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/bpf.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines used for code generation for eBPF.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Subroutines used for code generation for eBPF.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 69,88 ****
  #include "gimplify.h"
  #include "gimplify-me.h"
  
! #include "ctfc.h"
! #include "btf.h"
! 
! #include "coreout.h"
  
  /* Per-function machine data.  */
  struct GTY(()) machine_function
  {
    /* Number of bytes saved on the stack for local variables.  */
    int local_vars_size;
- 
-   /* Number of bytes saved on the stack for callee-saved
-      registers.  */
-   int callee_saved_reg_size;
  };
  
  /* Handle an attribute requiring a FUNCTION_DECL;
--- 69,82 ----
  #include "gimplify.h"
  #include "gimplify-me.h"
  
! #include "core-builtins.h"
! #include "opts.h"
  
  /* Per-function machine data.  */
  struct GTY(()) machine_function
  {
    /* Number of bytes saved on the stack for local variables.  */
    int local_vars_size;
  };
  
  /* Handle an attribute requiring a FUNCTION_DECL;
*************** bpf_handle_preserve_access_index_attribu
*** 146,152 ****
  
  /* Target-specific attributes.  */
  
! static const struct attribute_spec bpf_attribute_table[] =
  {
    /* Syntax: { name, min_len, max_len, decl_required, type_required,
  	       function_type_required, affects_type_identity, handler,
--- 140,146 ----
  
  /* Target-specific attributes.  */
  
! TARGET_GNU_ATTRIBUTES (bpf_attribute_table,
  {
    /* Syntax: { name, min_len, max_len, decl_required, type_required,
  	       function_type_required, affects_type_identity, handler,
*************** static const struct attribute_spec bpf_a
*** 161,169 ****
   { "preserve_access_index", 0, -1, false, true, false, true,
     bpf_handle_preserve_access_index_attribute, NULL },
  
!  /* The last attribute spec is set to be NULL.  */
!  { NULL,	0,  0, false, false, false, false, NULL, NULL }
! };
  
  #undef TARGET_ATTRIBUTE_TABLE
  #define TARGET_ATTRIBUTE_TABLE bpf_attribute_table
--- 155,164 ----
   { "preserve_access_index", 0, -1, false, true, false, true,
     bpf_handle_preserve_access_index_attribute, NULL },
  
!  /* Support for `naked' function attribute.  */
!  { "naked", 0, 1, false, false, false, false,
!    bpf_handle_fndecl_attribute, NULL }
! });
  
  #undef TARGET_ATTRIBUTE_TABLE
  #define TARGET_ATTRIBUTE_TABLE bpf_attribute_table
*************** static const struct attribute_spec bpf_a
*** 174,195 ****
     one.  */
  #define BPF_BUILTIN_MAX_ARGS 5
  
! enum bpf_builtins
! {
!   BPF_BUILTIN_UNUSED = 0,
!   /* Built-ins for non-generic loads and stores.  */
!   BPF_BUILTIN_LOAD_BYTE,
!   BPF_BUILTIN_LOAD_HALF,
!   BPF_BUILTIN_LOAD_WORD,
! 
!   /* Compile Once - Run Everywhere (CO-RE) support.  */
!   BPF_BUILTIN_PRESERVE_ACCESS_INDEX,
!   BPF_BUILTIN_PRESERVE_FIELD_INFO,
! 
!   BPF_BUILTIN_MAX,
! };
! 
! static GTY (()) tree bpf_builtins[(int) BPF_BUILTIN_MAX];
  
  void bpf_register_coreattr_pass (void);
  
--- 169,175 ----
     one.  */
  #define BPF_BUILTIN_MAX_ARGS 5
  
! GTY (()) tree bpf_builtins[(int) BPF_BUILTIN_MAX];
  
  void bpf_register_coreattr_pass (void);
  
*************** bpf_option_override (void)
*** 212,224 ****
    init_machine_status = bpf_init_machine_status;
  
    /* BPF CO-RE support requires BTF debug info generation.  */
!   if (TARGET_BPF_CORE && !btf_debuginfo_p ())
      error ("BPF CO-RE requires BTF debugging information, use %<-gbtf%>");
  
!   /* To support the portability needs of BPF CO-RE approach, BTF debug
!      information includes the BPF CO-RE relocations.  */
!   if (TARGET_BPF_CORE)
!     write_symbols |= BTF_WITH_CORE_DEBUG;
  
    /* Unlike much of the other BTF debug information, the information necessary
       for CO-RE relocations is added to the CTF container by the BPF backend.
--- 192,203 ----
    init_machine_status = bpf_init_machine_status;
  
    /* BPF CO-RE support requires BTF debug info generation.  */
!   if (TARGET_BPF_CORE
!       && (!btf_debuginfo_p () || (debug_info_level < DINFO_LEVEL_NORMAL)))
      error ("BPF CO-RE requires BTF debugging information, use %<-gbtf%>");
  
!   /* BPF applications always generate .BTF.ext.  */
!   write_symbols |= BTF_WITH_CORE_DEBUG;
  
    /* Unlike much of the other BTF debug information, the information necessary
       for CO-RE relocations is added to the CTF container by the BPF backend.
*************** bpf_option_override (void)
*** 237,247 ****
  
    /* -gbtf implies -mcore when using the BPF backend, unless -mno-co-re
       is specified.  */
!   if (btf_debuginfo_p () && !(target_flags_explicit & MASK_BPF_CORE))
!     {
!       target_flags |= MASK_BPF_CORE;
!       write_symbols |= BTF_WITH_CORE_DEBUG;
!     }
  
    /* Determine available features from ISA setting (-mcpu=).  */
    if (bpf_has_jmpext == -1)
--- 216,225 ----
  
    /* -gbtf implies -mcore when using the BPF backend, unless -mno-co-re
       is specified.  */
!   if (btf_debuginfo_p ()
!       && (debug_info_level >= DINFO_LEVEL_NORMAL)
!       && !(target_flags_explicit & MASK_BPF_CORE))
!     target_flags |= MASK_BPF_CORE;
  
    /* Determine available features from ISA setting (-mcpu=).  */
    if (bpf_has_jmpext == -1)
*************** bpf_option_override (void)
*** 253,266 ****
    if (bpf_has_jmp32 == -1)
      bpf_has_jmp32 = (bpf_isa >= ISA_V3);
  
    /* Disable -fstack-protector as it is not supported in BPF.  */
    if (flag_stack_protect)
      {
!       inform (input_location,
!               "%<-fstack-protector%> does not work "
! 	      "on this architecture");
        flag_stack_protect = 0;
      }
  }
  
  #undef TARGET_OPTION_OVERRIDE
--- 231,260 ----
    if (bpf_has_jmp32 == -1)
      bpf_has_jmp32 = (bpf_isa >= ISA_V3);
  
+   if (bpf_has_v3_atomics == -1)
+     bpf_has_v3_atomics = (bpf_isa >= ISA_V3);
+ 
+   if (bpf_has_bswap == -1)
+     bpf_has_bswap = (bpf_isa >= ISA_V4);
+ 
+   if (bpf_has_sdiv == -1)
+     bpf_has_sdiv = (bpf_isa >= ISA_V4);
+ 
+   if (bpf_has_smov == -1)
+     bpf_has_smov = (bpf_isa >= ISA_V4);
+ 
    /* Disable -fstack-protector as it is not supported in BPF.  */
    if (flag_stack_protect)
      {
!       if (!flag_stack_protector_set_by_fhardened_p)
! 	inform (input_location,
! 		"%<-fstack-protector%> does not work "
! 		"on this architecture");
        flag_stack_protect = 0;
      }
+ 
+   /* The BPF target does not support tail call optimization.  */
+   flag_optimize_sibling_calls = 0;
  }
  
  #undef TARGET_OPTION_OVERRIDE
*************** bpf_option_override (void)
*** 271,277 ****
  static void
  bpf_asm_init_sections (void)
  {
!   if (TARGET_BPF_CORE)
      btf_ext_init ();
  }
  
--- 265,271 ----
  static void
  bpf_asm_init_sections (void)
  {
!   if (btf_debuginfo_p () && btf_with_core_debuginfo_p ())
      btf_ext_init ();
  }
  
*************** bpf_asm_init_sections (void)
*** 283,352 ****
  static void
  bpf_file_end (void)
  {
!   if (TARGET_BPF_CORE)
!     btf_ext_output ();
  }
  
  #undef TARGET_ASM_FILE_END
  #define TARGET_ASM_FILE_END bpf_file_end
  
- /* Define target-specific CPP macros.  This function in used in the
-    definition of TARGET_CPU_CPP_BUILTINS in bpf.h */
- 
- #define builtin_define(TXT) cpp_define (pfile, TXT)
- 
- void
- bpf_target_macros (cpp_reader *pfile)
- {
-   builtin_define ("__BPF__");
-   builtin_define ("__bpf__");
- 
-   if (TARGET_BIG_ENDIAN)
-     builtin_define ("__BPF_BIG_ENDIAN__");
-   else
-     builtin_define ("__BPF_LITTLE_ENDIAN__");
- 
-   /* Define BPF_KERNEL_VERSION_CODE */
-   {
-     const char *version_code;
-     char *kernel_version_code;
- 
-     switch (bpf_kernel)
-       {
-       case LINUX_V4_0: version_code = "0x40000"; break;
-       case LINUX_V4_1: version_code = "0x40100"; break;
-       case LINUX_V4_2: version_code = "0x40200"; break;
-       case LINUX_V4_3: version_code = "0x40300"; break;
-       case LINUX_V4_4: version_code = "0x40400"; break;
-       case LINUX_V4_5: version_code = "0x40500"; break;
-       case LINUX_V4_6: version_code = "0x40600"; break;
-       case LINUX_V4_7: version_code = "0x40700"; break;
-       case LINUX_V4_8: version_code = "0x40800"; break;
-       case LINUX_V4_9: version_code = "0x40900"; break;
-       case LINUX_V4_10: version_code = "0x40a00"; break;
-       case LINUX_V4_11: version_code = "0x40b00"; break;
-       case LINUX_V4_12: version_code = "0x40c00"; break;
-       case LINUX_V4_13: version_code = "0x40d00"; break;
-       case LINUX_V4_14: version_code = "0x40e00"; break;
-       case LINUX_V4_15: version_code = "0x40f00"; break;
-       case LINUX_V4_16: version_code = "0x41000"; break;
-       case LINUX_V4_17: version_code = "0x42000"; break;
-       case LINUX_V4_18: version_code = "0x43000"; break;
-       case LINUX_V4_19: version_code = "0x44000"; break;
-       case LINUX_V4_20: version_code = "0x45000"; break;
-       case LINUX_V5_0: version_code = "0x50000"; break;
-       case LINUX_V5_1: version_code = "0x50100"; break;
-       case LINUX_V5_2: version_code = "0x50200"; break;
-       default:
- 	gcc_unreachable ();
-       }
- 
-     kernel_version_code = ACONCAT (("__BPF_KERNEL_VERSION_CODE__=",
- 				    version_code, NULL));
-     builtin_define (kernel_version_code);
-   }
- }
- 
  /* Return an RTX representing the place where a function returns or
     receives a value of data type RET_TYPE, a tree node representing a
     data type.  */
--- 277,292 ----
  static void
  bpf_file_end (void)
  {
!   if (btf_debuginfo_p () && btf_with_core_debuginfo_p ())
!     {
!       btf_ext_output ();
!       btf_finalize ();
!     }
  }
  
  #undef TARGET_ASM_FILE_END
  #define TARGET_ASM_FILE_END bpf_file_end
  
  /* Return an RTX representing the place where a function returns or
     receives a value of data type RET_TYPE, a tree node representing a
     data type.  */
*************** bpf_function_value_regno_p (const unsign
*** 382,387 ****
--- 322,342 ----
  #undef TARGET_FUNCTION_VALUE_REGNO_P
  #define TARGET_FUNCTION_VALUE_REGNO_P bpf_function_value_regno_p
  
+ 
+ /* Determine whether to warn about lack of return statement in a
+    function.  */
+ 
+ static bool
+ bpf_warn_func_return (tree decl)
+ {
+   /* Naked functions are implemented entirely in assembly, including
+      the return instructions.  */
+   return lookup_attribute ("naked", DECL_ATTRIBUTES (decl)) == NULL_TREE;
+ }
+ 
+ #undef TARGET_WARN_FUNC_RETURN
+ #define TARGET_WARN_FUNC_RETURN bpf_warn_func_return
+ 
  /* Compute the size of the function's stack frame, including the local
     area and the register-save area.  */
  
*************** static void
*** 389,395 ****
  bpf_compute_frame_layout (void)
  {
    int stack_alignment = STACK_BOUNDARY / BITS_PER_UNIT;
!   int padding_locals, regno;
  
    /* Set the space used in the stack by local variables.  This is
       rounded up to respect the minimum stack alignment.  */
--- 344,350 ----
  bpf_compute_frame_layout (void)
  {
    int stack_alignment = STACK_BOUNDARY / BITS_PER_UNIT;
!   int padding_locals;
  
    /* Set the space used in the stack by local variables.  This is
       rounded up to respect the minimum stack alignment.  */
*************** bpf_compute_frame_layout (void)
*** 401,423 ****
  
    cfun->machine->local_vars_size += padding_locals;
  
-   if (TARGET_XBPF)
-     {
-       /* Set the space used in the stack by callee-saved used
- 	 registers in the current function.  There is no need to round
- 	 up, since the registers are all 8 bytes wide.  */
-       for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
- 	if ((df_regs_ever_live_p (regno)
- 	     && !call_used_or_fixed_reg_p (regno))
- 	    || (cfun->calls_alloca
- 		&& regno == STACK_POINTER_REGNUM))
- 	  cfun->machine->callee_saved_reg_size += 8;
-     }
- 
    /* Check that the total size of the frame doesn't exceed the limit
       imposed by eBPF.  */
!   if ((cfun->machine->local_vars_size
!        + cfun->machine->callee_saved_reg_size) > bpf_frame_limit)
      {
        static int stack_limit_exceeded = 0;
  
--- 356,364 ----
  
    cfun->machine->local_vars_size += padding_locals;
  
    /* Check that the total size of the frame doesn't exceed the limit
       imposed by eBPF.  */
!   if (cfun->machine->local_vars_size > bpf_frame_limit)
      {
        static int stack_limit_exceeded = 0;
  
*************** bpf_compute_frame_layout (void)
*** 430,504 ****
  #undef TARGET_COMPUTE_FRAME_LAYOUT
  #define TARGET_COMPUTE_FRAME_LAYOUT bpf_compute_frame_layout
  
  /* Expand to the instructions in a function prologue.  This function
     is called when expanding the 'prologue' pattern in bpf.md.  */
  
  void
  bpf_expand_prologue (void)
  {
-   HOST_WIDE_INT size;
- 
-   size = (cfun->machine->local_vars_size
- 	  + cfun->machine->callee_saved_reg_size);
- 
    /* The BPF "hardware" provides a fresh new set of registers for each
       called function, some of which are initialized to the values of
       the arguments passed in the first five registers.  In doing so,
!      it saves the values of the registers of the caller, and restored
       them upon returning.  Therefore, there is no need to save the
!      callee-saved registers here.  What is worse, the kernel
!      implementation refuses to run programs in which registers are
!      referred before being initialized.  */
!   if (TARGET_XBPF)
!     {
!       int regno;
!       int fp_offset = -cfun->machine->local_vars_size;
! 
!       /* Save callee-saved hard registes.  The register-save-area
! 	 starts right after the local variables.  */
!       for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
! 	{
! 	  if ((df_regs_ever_live_p (regno)
! 	       && !call_used_or_fixed_reg_p (regno))
! 	      || (cfun->calls_alloca
! 		  && regno == STACK_POINTER_REGNUM))
! 	    {
! 	      rtx mem;
! 
! 	      if (!IN_RANGE (fp_offset, -1 - 0x7fff, 0x7fff))
! 		/* This has been already reported as an error in
! 		   bpf_compute_frame_layout. */
! 		break;
! 	      else
! 		{
! 		  mem = gen_frame_mem (DImode,
! 				       plus_constant (DImode,
! 						      hard_frame_pointer_rtx,
! 						      fp_offset - 8));
! 		  emit_move_insn (mem, gen_rtx_REG (DImode, regno));
! 		  fp_offset -= 8;
! 		}
! 	    }
! 	}
!     }
  
!   /* Set the stack pointer, if the function allocates space
!      dynamically.  Note that the value of %sp should be directly
!      derived from %fp, for the kernel verifier to track it as a stack
!      accessor.  */
!   if (cfun->calls_alloca)
!     {
!       emit_move_insn (stack_pointer_rtx,
!                       hard_frame_pointer_rtx);
  
!       if (size > 0)
! 	{
! 	  emit_insn (gen_rtx_SET (stack_pointer_rtx,
!                                   gen_rtx_PLUS (Pmode,
!                                                 stack_pointer_rtx,
!                                                 GEN_INT (-size))));
! 	}
!     }
  }
  
  /* Expand to the instructions in a function epilogue.  This function
--- 371,410 ----
  #undef TARGET_COMPUTE_FRAME_LAYOUT
  #define TARGET_COMPUTE_FRAME_LAYOUT bpf_compute_frame_layout
  
+ /* Defined to initialize data for func_info region in .BTF.ext section.  */
+ 
+ static void
+ bpf_function_prologue (FILE *f ATTRIBUTE_UNUSED)
+ {
+   if (btf_debuginfo_p ())
+     btf_add_func_info_for (cfun->decl, current_function_func_begin_label);
+ }
+ 
+ #undef TARGET_ASM_FUNCTION_PROLOGUE
+ #define TARGET_ASM_FUNCTION_PROLOGUE bpf_function_prologue
+ 
  /* Expand to the instructions in a function prologue.  This function
     is called when expanding the 'prologue' pattern in bpf.md.  */
  
  void
  bpf_expand_prologue (void)
  {
    /* The BPF "hardware" provides a fresh new set of registers for each
       called function, some of which are initialized to the values of
       the arguments passed in the first five registers.  In doing so,
!      it saves the values of the registers of the caller, and restores
       them upon returning.  Therefore, there is no need to save the
!      callee-saved registers here.  In fact, the kernel implementation
!      refuses to run programs in which registers are referred before
!      being initialized.  */
  
!   /* BPF does not support functions that allocate stack space
!      dynamically.  This should have been checked already and an error
!      emitted.  */
!   gcc_assert (!cfun->calls_alloca);
  
!   /* If we ever need to have a proper prologue here, please mind the
!      `naked' function attribute.  */
  }
  
  /* Expand to the instructions in a function epilogue.  This function
*************** bpf_expand_epilogue (void)
*** 509,546 ****
  {
    /* See note in bpf_expand_prologue for an explanation on why we are
       not restoring callee-saved registers in BPF.  */
-   if (TARGET_XBPF)
-     {
-       int regno;
-       int fp_offset = -cfun->machine->local_vars_size;
- 
-       /* Restore callee-saved hard registes from the stack.  */
-       for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
- 	{
- 	  if ((df_regs_ever_live_p (regno)
- 	       && !call_used_or_fixed_reg_p (regno))
- 	      || (cfun->calls_alloca
- 		  && regno == STACK_POINTER_REGNUM))
- 	    {
- 	      rtx mem;
- 
- 	      if (!IN_RANGE (fp_offset, -1 - 0x7fff, 0x7fff))
- 		/* This has been already reported as an error in
- 		   bpf_compute_frame_layout. */
- 		break;
- 	      else
- 		{
- 		  mem = gen_frame_mem (DImode,
- 				       plus_constant (DImode,
- 						      hard_frame_pointer_rtx,
- 						      fp_offset - 8));
- 		  emit_move_insn (gen_rtx_REG (DImode, regno), mem);
- 		  fp_offset -= 8;
- 		}
- 	    }
- 	}
-     }
  
    emit_jump_insn (gen_exit ());
  }
  
--- 415,423 ----
  {
    /* See note in bpf_expand_prologue for an explanation on why we are
       not restoring callee-saved registers in BPF.  */
  
+   if (lookup_attribute ("naked", DECL_ATTRIBUTES (cfun->decl)) != NULL_TREE)
+     return;
    emit_jump_insn (gen_exit ());
  }
  
*************** bpf_initial_elimination_offset (int from
*** 586,596 ****
  {
    HOST_WIDE_INT ret;
  
!   if (from == ARG_POINTER_REGNUM && to == STACK_POINTER_REGNUM)
!     ret = (cfun->machine->local_vars_size
! 	   + cfun->machine->callee_saved_reg_size);
!   else if (from == ARG_POINTER_REGNUM && to == FRAME_POINTER_REGNUM)
      ret = 0;
    else
      gcc_unreachable ();
  
--- 463,472 ----
  {
    HOST_WIDE_INT ret;
  
!   if (from == ARG_POINTER_REGNUM && to == FRAME_POINTER_REGNUM)
      ret = 0;
+   else if (from == STACK_POINTER_REGNUM && to == FRAME_POINTER_REGNUM)
+     ret = -(cfun->machine->local_vars_size);
    else
      gcc_unreachable ();
  
*************** bpf_address_base_p (rtx x, bool strict)
*** 668,674 ****
  static bool
  bpf_legitimate_address_p (machine_mode mode,
  			  rtx x,
! 			  bool strict)
  {
    switch (GET_CODE (x))
      {
--- 544,551 ----
  static bool
  bpf_legitimate_address_p (machine_mode mode,
  			  rtx x,
! 			  bool strict,
! 			  code_helper = ERROR_MARK)
  {
    switch (GET_CODE (x))
      {
*************** bpf_legitimate_address_p (machine_mode m
*** 693,698 ****
--- 570,585 ----
  	if (bpf_address_base_p (x0, strict) && GET_CODE (x1) == CONST_INT)
  	  return IN_RANGE (INTVAL (x1), -1 - 0x7fff, 0x7fff);
  
+ 	/* Check if any of the PLUS operation operands is a CORE unspec, and at
+ 	   least the local value for the offset fits in the 16 bits available
+ 	   in the encoding.  */
+ 	if (bpf_address_base_p (x1, strict)
+ 	    && GET_CODE (x0) == UNSPEC && XINT (x0, 1) == UNSPEC_CORE_RELOC)
+ 	      return IN_RANGE (INTVAL (XVECEXP (x0, 0, 0)), -1 - 0x7fff, 0x7fff);
+ 	if (bpf_address_base_p (x0, strict)
+ 	    && GET_CODE (x1) == UNSPEC && XINT (x1, 1) == UNSPEC_CORE_RELOC)
+ 	      return IN_RANGE (INTVAL (XVECEXP (x1, 0, 0)), -1 - 0x7fff, 0x7fff);
+ 
  	break;
        }
      default:
*************** bpf_rtx_costs (rtx x ATTRIBUTE_UNUSED,
*** 724,729 ****
--- 611,631 ----
  #undef TARGET_RTX_COSTS
  #define TARGET_RTX_COSTS bpf_rtx_costs
  
+ static int
+ bpf_insn_cost (rtx_insn *insn, bool speed ATTRIBUTE_UNUSED)
+ {
+   rtx pat = PATTERN (insn);
+   if(GET_CODE (pat) == SET
+      && GET_CODE (XEXP (pat, 1)) == UNSPEC
+      && XINT (XEXP (pat, 1), 1) == UNSPEC_CORE_RELOC)
+     return COSTS_N_INSNS (100);
+ 
+   return COSTS_N_INSNS (1);
+ }
+ 
+ #undef TARGET_INSN_COST
+ #define TARGET_INSN_COST bpf_insn_cost
+ 
  /* Return true if an argument at the position indicated by CUM should
     be passed by reference.  If the hook returns true, a copy of that
     argument is made in memory and a pointer to the argument is passed
*************** bpf_function_arg_advance (cumulative_arg
*** 774,780 ****
    unsigned num_words = CEIL (num_bytes, UNITS_PER_WORD);
  
    if (*cum <= 5 && *cum + num_words > 5)
!     error ("too many function arguments for eBPF");
  
    *cum += num_words;
  }
--- 676,689 ----
    unsigned num_words = CEIL (num_bytes, UNITS_PER_WORD);
  
    if (*cum <= 5 && *cum + num_words > 5)
!     {
!       /* Too many arguments for BPF.  However, if the function is
!          gonna be inline for sure, we let it pass.  Otherwise, issue
!          an error.  */
!       if (!lookup_attribute ("always_inline",
!                              DECL_ATTRIBUTES (cfun->decl)))
!         error ("too many function arguments for eBPF");
!     }
  
    *cum += num_words;
  }
*************** bpf_output_call (rtx target)
*** 873,888 ****
    return "";
  }
  
  /* Print an instruction operand.  This function is called in the macro
     PRINT_OPERAND defined in bpf.h */
  
  void
! bpf_print_operand (FILE *file, rtx op, int code ATTRIBUTE_UNUSED)
  {
    switch (GET_CODE (op))
      {
      case REG:
!       fprintf (file, "%s", reg_names[REGNO (op)]);
        break;
      case MEM:
        output_address (GET_MODE (op), XEXP (op, 0));
--- 782,840 ----
    return "";
  }
  
+ const char *
+ bpf_output_move (rtx *operands, const char *templ)
+ {
+   bpf_output_core_reloc (operands, 2);
+   return templ;
+ }
+ 
+ /* Print register name according to assembly dialect.  In normal
+    syntax registers are printed like %rN where N is the register
+    number.
+ 
+    In pseudoc syntax, the register names do not feature a '%' prefix.
+    Additionally, the code 'w' denotes that the register should be
+    printed as wN instead of rN, where N is the register number, but
+    only when the value stored in the operand OP is 32-bit wide.
+    Finally, the code 'W' denotes that the register should be printed
+    as wN instead of rN, in all cases, regardless of the mode of the
+    value stored in the operand.  */
+ 
+ static void
+ bpf_print_register (FILE *file, rtx op, int code)
+ {
+   if(asm_dialect == ASM_NORMAL)
+     fprintf (file, "%s", reg_names[REGNO (op)]);
+   else
+     {
+       if (code == 'W' || (code == 'w' && GET_MODE_SIZE (GET_MODE (op)) <= 4))
+ 	{
+ 	  if (REGNO (op) == BPF_FP)
+ 	    fprintf (file, "w10");
+ 	  else
+ 	    fprintf (file, "w%s", reg_names[REGNO (op)]+2);
+ 	}
+       else
+ 	{
+ 	  if (REGNO (op) == BPF_FP)
+ 	    fprintf (file, "r10");
+ 	  else
+ 	    fprintf (file, "%s", reg_names[REGNO (op)]+1);
+ 	}
+     }
+ }
+ 
  /* Print an instruction operand.  This function is called in the macro
     PRINT_OPERAND defined in bpf.h */
  
  void
! bpf_print_operand (FILE *file, rtx op, int code)
  {
    switch (GET_CODE (op))
      {
      case REG:
!       bpf_print_register (file, op, code);
        break;
      case MEM:
        output_address (GET_MODE (op), XEXP (op, 0));
*************** bpf_print_operand (FILE *file, rtx op, i
*** 918,923 ****
--- 870,881 ----
  	    gcc_unreachable ();
  	}
        break;
+     case UNSPEC:
+       if (XINT (op, 1) == UNSPEC_CORE_RELOC)
+ 	bpf_print_operand (file, XVECEXP (op, 0, 0), code);
+       else
+ 	gcc_unreachable ();
+       break;
      default:
        output_addr_const (file, op);
      }
*************** bpf_print_operand_address (FILE *file, r
*** 936,953 ****
    switch (GET_CODE (addr))
      {
      case REG:
!       fprintf (file, "[%s+0]", reg_names[REGNO (addr)]);
        break;
      case PLUS:
        {
  	rtx op0 = XEXP (addr, 0);
  	rtx op1 = XEXP (addr, 1);
  
! 	if (GET_CODE (op0) == REG && GET_CODE (op1) == CONST_INT)
  	  {
! 	    fprintf (file, "[%s+", reg_names[REGNO (op0)]);
! 	    output_addr_const (file, op1);
! 	    fputs ("]", file);
  	  }
  	else
  	  fatal_insn ("invalid address in operand", addr);
--- 894,929 ----
    switch (GET_CODE (addr))
      {
      case REG:
!       if (asm_dialect == ASM_NORMAL)
! 	fprintf (file, "[");
!       bpf_print_register (file, addr, 0);
!       fprintf (file, asm_dialect == ASM_NORMAL ? "+0]" : "+0");
        break;
      case PLUS:
        {
  	rtx op0 = XEXP (addr, 0);
  	rtx op1 = XEXP (addr, 1);
  
! 	if (GET_CODE (op1) == REG) {
! 	  op0 = op1;
! 	  op1 = XEXP (addr, 0);
! 	}
! 
! 	if (GET_CODE (op0) == REG
! 	    && (GET_CODE (op1) == CONST_INT
! 		|| (GET_CODE (op1) == UNSPEC
! 		    && XINT (op1, 1) == UNSPEC_CORE_RELOC)))
  	  {
! 	    if (asm_dialect == ASM_NORMAL)
! 	      fprintf (file, "[");
! 	    bpf_print_register (file, op0, 0);
! 	    fprintf (file, "+");
! 	    if (GET_CODE (op1) == UNSPEC)
! 	      output_addr_const (file, XVECEXP (op1, 0, 0));
! 	    else
! 	      output_addr_const (file, op1);
! 	    if (asm_dialect == ASM_NORMAL)
! 	      fprintf (file, "]");
  	  }
  	else
  	  fatal_insn ("invalid address in operand", addr);
*************** bpf_print_operand_address (FILE *file, r
*** 968,980 ****
  /* Add a BPF builtin function with NAME, CODE and TYPE.  Return
     the function decl or NULL_TREE if the builtin was not added.  */
  
! static tree
  def_builtin (const char *name, enum bpf_builtins code, tree type)
  {
    tree t
!     = add_builtin_function (name, type, code, BUILT_IN_MD, NULL, NULL_TREE);
  
    bpf_builtins[code] = t;
    return t;
  }
  
--- 944,957 ----
  /* Add a BPF builtin function with NAME, CODE and TYPE.  Return
     the function decl or NULL_TREE if the builtin was not added.  */
  
! static inline tree
  def_builtin (const char *name, enum bpf_builtins code, tree type)
  {
    tree t
!     = add_builtin_function (name, type, code, BUILT_IN_MD, NULL, NULL);
  
    bpf_builtins[code] = t;
+ 
    return t;
  }
  
*************** bpf_init_builtins (void)
*** 993,1205 ****
  	       build_function_type_list (ullt, ullt, 0));
    def_builtin ("__builtin_bpf_load_word", BPF_BUILTIN_LOAD_WORD,
  	       build_function_type_list (ullt, ullt, 0));
    def_builtin ("__builtin_preserve_access_index",
  	       BPF_BUILTIN_PRESERVE_ACCESS_INDEX,
  	       build_function_type_list (ptr_type_node, ptr_type_node, 0));
    def_builtin ("__builtin_preserve_field_info",
  	       BPF_BUILTIN_PRESERVE_FIELD_INFO,
! 	       build_function_type_list (unsigned_type_node, ptr_type_node, unsigned_type_node, 0));
! }
! 
! #undef TARGET_INIT_BUILTINS
! #define TARGET_INIT_BUILTINS bpf_init_builtins
! 
! static tree bpf_core_compute (tree, vec<unsigned int> *);
! static int bpf_core_get_index (const tree);
! static bool is_attr_preserve_access (tree);
! 
! /* BPF Compile Once - Run Everywhere (CO-RE) support. Construct a CO-RE
!    relocation record for EXPR of kind KIND to be emitted in the .BTF.ext
!    section. Does nothing if we are not targetting BPF CO-RE, or if the
!    constructed relocation would be a no-op.  */
! 
! static void
! maybe_make_core_relo (tree expr, enum btf_core_reloc_kind kind)
! {
!   /* If we are not targetting BPF CO-RE, do not make a relocation. We
!      might not be generating any debug info at all.  */
!   if (!TARGET_BPF_CORE)
!     return;
! 
!   auto_vec<unsigned int, 16> accessors;
!   tree container = bpf_core_compute (expr, &accessors);
! 
!   /* Any valid use of the builtin must have at least one access. Otherwise,
!      there is nothing to record and nothing to do. This is primarily a
!      guard against optimizations leading to unexpected expressions in the
!      argument of the builtin. For example, if the builtin is used to read
!      a field of a structure which can be statically determined to hold a
!      constant value, the argument to the builtin will be optimized to that
!      constant. This is OK, and means the builtin call is superfluous.
!      e.g.
!      struct S foo;
!      foo.a = 5;
!      int x = __preserve_access_index (foo.a);
!      ... do stuff with x
!      'foo.a' in the builtin argument will be optimized to '5' with -01+.
!      This sequence does not warrant recording a CO-RE relocation.  */
! 
!   if (accessors.length () < 1)
!     return;
!   accessors.reverse ();
! 
!   rtx_code_label *label = gen_label_rtx ();
!   LABEL_PRESERVE_P (label) = 1;
!   emit_label (label);
  
!   /* Determine what output section this relocation will apply to.
!      If this function is associated with a section, use that. Otherwise,
!      fall back on '.text'.  */
!   const char * section_name;
!   if (current_function_decl && DECL_SECTION_NAME (current_function_decl))
!     section_name = DECL_SECTION_NAME (current_function_decl);
!   else
!     section_name = ".text";
  
!   /* Add the CO-RE relocation information to the BTF container.  */
!   bpf_core_reloc_add (TREE_TYPE (container), section_name, &accessors, label,
! 		      kind);
  }
  
! /* Expand a call to __builtin_preserve_field_info by evaluating the requested
!    information about SRC according to KIND, and return a tree holding
!    the result.  */
! 
! static tree
! bpf_core_field_info (tree src, enum btf_core_reloc_kind kind)
! {
!   unsigned int result;
!   poly_int64 bitsize, bitpos;
!   tree var_off = NULL_TREE;
!   machine_mode mode;
!   int unsignedp, reversep, volatilep;
!   location_t loc = EXPR_LOCATION (src);
! 
!   get_inner_reference (src, &bitsize, &bitpos, &var_off, &mode, &unsignedp,
! 		       &reversep, &volatilep);
! 
!   /* Note: Use DECL_BIT_FIELD_TYPE rather than DECL_BIT_FIELD here, because it
!      remembers whether the field in question was originally declared as a
!      bitfield, regardless of how it has been optimized.  */
!   bool bitfieldp = (TREE_CODE (src) == COMPONENT_REF
! 		    && DECL_BIT_FIELD_TYPE (TREE_OPERAND (src, 1)));
! 
!   unsigned int align = TYPE_ALIGN (TREE_TYPE (src));
!   if (TREE_CODE (src) == COMPONENT_REF)
!     {
!       tree field = TREE_OPERAND (src, 1);
!       if (DECL_BIT_FIELD_TYPE (field))
! 	align = TYPE_ALIGN (DECL_BIT_FIELD_TYPE (field));
!       else
! 	align = TYPE_ALIGN (TREE_TYPE (field));
!     }
! 
!   unsigned int start_bitpos = bitpos & ~(align - 1);
!   unsigned int end_bitpos = start_bitpos + align;
! 
!   switch (kind)
!     {
!     case BPF_RELO_FIELD_BYTE_OFFSET:
!       {
! 	if (var_off != NULL_TREE)
! 	  {
! 	    error_at (loc, "unsupported variable field offset");
! 	    return error_mark_node;
! 	  }
! 
! 	if (bitfieldp)
! 	  result = start_bitpos / 8;
! 	else
! 	  result = bitpos / 8;
!       }
!       break;
! 
!     case BPF_RELO_FIELD_BYTE_SIZE:
!       {
! 	if (mode == BLKmode && bitsize == -1)
! 	  {
! 	    error_at (loc, "unsupported variable size field access");
! 	    return error_mark_node;
! 	  }
! 
! 	if (bitfieldp)
! 	  {
! 	    /* To match LLVM behavior, byte size of bitfields is recorded as
! 	       the full size of the base type. A 3-bit bitfield of type int is
! 	       therefore recorded as having a byte size of 4 bytes. */
! 	    result = end_bitpos - start_bitpos;
! 	    if (result & (result - 1))
! 	      {
! 		error_at (loc, "unsupported field expression");
! 		return error_mark_node;
! 	      }
! 	    result = result / 8;
! 	  }
! 	else
! 	  result = bitsize / 8;
!       }
!       break;
! 
!     case BPF_RELO_FIELD_EXISTS:
!       /* The field always exists at compile time.  */
!       result = 1;
!       break;
! 
!     case BPF_RELO_FIELD_SIGNED:
!       result = !unsignedp;
!       break;
! 
!     case BPF_RELO_FIELD_LSHIFT_U64:
!     case BPF_RELO_FIELD_RSHIFT_U64:
!       {
! 	if (mode == BLKmode && bitsize == -1)
! 	  {
! 	    error_at (loc, "unsupported variable size field access");
! 	    return error_mark_node;
! 	  }
! 	if (var_off != NULL_TREE)
! 	  {
! 	    error_at (loc, "unsupported variable field offset");
! 	    return error_mark_node;
! 	  }
! 
! 	if (!bitfieldp)
! 	  {
! 	    if (bitsize > 64)
! 	      {
! 		error_at (loc, "field size too large");
! 		return error_mark_node;
! 	      }
! 	    result = 64 - bitsize;
! 	    break;
! 	  }
! 
! 	if (end_bitpos - start_bitpos > 64)
! 	  {
! 	    error_at (loc, "field size too large");
! 	    return error_mark_node;
! 	  }
! 
! 	if (kind == BPF_RELO_FIELD_LSHIFT_U64)
! 	  {
! 	    if (TARGET_BIG_ENDIAN)
! 	      result = bitpos + 64 - start_bitpos - align;
! 	    else
! 	      result = start_bitpos + 64 - bitpos - bitsize;
! 	  }
! 	else /* RSHIFT_U64 */
! 	  result = 64 - bitsize;
!       }
!       break;
! 
!     default:
!       error ("invalid second argument to built-in function");
!       return error_mark_node;
!       break;
!     }
! 
!   return build_int_cst (unsigned_type_node, result);
! }
  
  /* Expand a call to a BPF-specific built-in function that was set up
     with bpf_init_builtins.  */
--- 970,1009 ----
  	       build_function_type_list (ullt, ullt, 0));
    def_builtin ("__builtin_bpf_load_word", BPF_BUILTIN_LOAD_WORD,
  	       build_function_type_list (ullt, ullt, 0));
+ 
    def_builtin ("__builtin_preserve_access_index",
  	       BPF_BUILTIN_PRESERVE_ACCESS_INDEX,
  	       build_function_type_list (ptr_type_node, ptr_type_node, 0));
    def_builtin ("__builtin_preserve_field_info",
  	       BPF_BUILTIN_PRESERVE_FIELD_INFO,
! 	       build_function_type_list (unsigned_type_node, ptr_type_node,
! 					 unsigned_type_node, 0));
!   def_builtin ("__builtin_btf_type_id",
! 	       BPF_BUILTIN_BTF_TYPE_ID,
! 	       build_function_type_list (integer_type_node, ptr_type_node,
! 					 integer_type_node, 0));
!   def_builtin ("__builtin_preserve_type_info",
! 	       BPF_BUILTIN_PRESERVE_TYPE_INFO,
! 	       build_function_type_list (integer_type_node, ptr_type_node,
! 					 integer_type_node, 0));
!   def_builtin ("__builtin_preserve_enum_value",
! 	       BPF_BUILTIN_PRESERVE_ENUM_VALUE,
! 	       build_function_type_list (integer_type_node, ptr_type_node,
! 					 integer_type_node, integer_type_node,
! 					 0));
  
!   def_builtin ("__builtin_core_reloc",
! 	       BPF_BUILTIN_CORE_RELOC,
! 	       build_function_type_list (integer_type_node,integer_type_node,
! 					 0));
!   DECL_PURE_P (bpf_builtins[BPF_BUILTIN_CORE_RELOC]) = 1;
!   TREE_NOTHROW (bpf_builtins[BPF_BUILTIN_CORE_RELOC]) = 1;
  
!   bpf_init_core_builtins ();
  }
  
! #undef TARGET_INIT_BUILTINS
! #define TARGET_INIT_BUILTINS bpf_init_builtins
  
  /* Expand a call to a BPF-specific built-in function that was set up
     with bpf_init_builtins.  */
*************** bpf_expand_builtin (tree exp, rtx target
*** 1251,1322 ****
        /* The result of the load is in R0.  */
        return gen_rtx_REG (ops[0].mode, BPF_R0);
      }
! 
!   else if (code == -BPF_BUILTIN_PRESERVE_ACCESS_INDEX)
      {
!       /* A resolved overloaded __builtin_preserve_access_index.  */
!       tree arg = CALL_EXPR_ARG (exp, 0);
! 
!       if (arg == NULL_TREE)
! 	return NULL_RTX;
! 
!       if (TREE_CODE (arg) == SSA_NAME)
! 	{
! 	  gimple *def_stmt = SSA_NAME_DEF_STMT (arg);
! 
! 	  if (is_gimple_assign (def_stmt))
! 	    arg = gimple_assign_rhs1 (def_stmt);
! 	  else
! 	    return expand_normal (arg);
! 	}
! 
!       /* Avoid double-recording information if the argument is an access to
! 	 a struct/union marked __attribute__((preserve_access_index)). This
! 	 Will be handled by the attribute handling pass.  */
!       if (!is_attr_preserve_access (arg))
! 	maybe_make_core_relo (arg, BPF_RELO_FIELD_BYTE_OFFSET);
! 
!       return expand_normal (arg);
      }
  
!   else if (code == -BPF_BUILTIN_PRESERVE_FIELD_INFO)
!     {
!       /* A resolved overloaded __builtin_preserve_field_info.  */
!       tree src = CALL_EXPR_ARG (exp, 0);
!       tree kind_tree = CALL_EXPR_ARG (exp, 1);
!       unsigned HOST_WIDE_INT kind_val = 0;
!       if (tree_fits_uhwi_p (kind_tree))
! 	kind_val = tree_to_uhwi (kind_tree);
!       else
! 	{
! 	  error ("invalid argument to built-in function");
! 	  return expand_normal (error_mark_node);
! 	}
! 
!       enum btf_core_reloc_kind kind = (enum btf_core_reloc_kind) kind_val;
  
!       if (TREE_CODE (src) == SSA_NAME)
! 	{
! 	  gimple *def_stmt = SSA_NAME_DEF_STMT (src);
! 	  if (is_gimple_assign (def_stmt))
! 	    src = gimple_assign_rhs1 (def_stmt);
! 	}
!       if (TREE_CODE (src) == ADDR_EXPR)
! 	src = TREE_OPERAND (src, 0);
  
!       tree result = bpf_core_field_info (src, kind);
  
!       if (result != error_mark_node)
! 	maybe_make_core_relo (src, kind);
  
!       return expand_normal (result);
!     }
  
!   gcc_unreachable ();
  }
  
! #undef TARGET_EXPAND_BUILTIN
! #define TARGET_EXPAND_BUILTIN bpf_expand_builtin
  
  /* Initialize target-specific function library calls.  This is mainly
     used to call library-provided soft-fp operations, since eBPF
--- 1055,1099 ----
        /* The result of the load is in R0.  */
        return gen_rtx_REG (ops[0].mode, BPF_R0);
      }
!   else
      {
!       rtx ret = bpf_expand_core_builtin (exp, (enum bpf_builtins) code);
!       if (ret != NULL_RTX)
! 	return ret;
      }
  
!   error ("invalid built-in function at expansion");
!   gcc_unreachable ();
! }
  
! #undef TARGET_EXPAND_BUILTIN
! #define TARGET_EXPAND_BUILTIN bpf_expand_builtin
  
! static tree
! bpf_resolve_overloaded_builtin (location_t loc, tree fndecl, void *arglist)
! {
!   int code = DECL_MD_FUNCTION_CODE (fndecl);
!   if (code > BPF_CORE_BUILTINS_MARKER)
!     return bpf_resolve_overloaded_core_builtin (loc, fndecl, arglist);
!   else
!     return NULL_TREE;
! }
  
! #undef TARGET_RESOLVE_OVERLOADED_BUILTIN
! #define TARGET_RESOLVE_OVERLOADED_BUILTIN bpf_resolve_overloaded_builtin
  
! static rtx
! bpf_delegitimize_address (rtx rtl)
! {
!   if (GET_CODE (rtl) == UNSPEC
!       && XINT (rtl, 1) == UNSPEC_CORE_RELOC)
!     return XVECEXP (rtl, 0, 0);
  
!   return rtl;
  }
  
! #undef TARGET_DELEGITIMIZE_ADDRESS
! #define TARGET_DELEGITIMIZE_ADDRESS bpf_delegitimize_address
  
  /* Initialize target-specific function library calls.  This is mainly
     used to call library-provided soft-fp operations, since eBPF
*************** bpf_debug_unwind_info ()
*** 1365,1578 ****
  #undef TARGET_ASM_ALIGNED_DI_OP
  #define TARGET_ASM_ALIGNED_DI_OP "\t.dword\t"
  
  
! /* BPF Compile Once - Run Everywhere (CO-RE) support routines.
! 
!    BPF CO-RE is supported in two forms:
!    - A target builtin, __builtin_preserve_access_index
! 
!      This builtin accepts a single argument. Any access to an aggregate data
!      structure (struct, union or array) within the argument will be recorded by
!      the CO-RE machinery, resulting in a relocation record being placed in the
!      .BTF.ext section of the output.
! 
!      It is implemented in bpf_resolve_overloaded_builtin () and
!      bpf_expand_builtin (), using the supporting routines below.
! 
!    - An attribute, __attribute__((preserve_access_index))
! 
!      This attribute can be applied to struct and union types. Any access to a
!      type with this attribute will be recorded by the CO-RE machinery.
! 
!      The pass pass_bpf_core_attr, below, implements support for
!      this attribute.  */
! 
! /* Traverse the subtree under NODE, which is expected to be some form of
!    aggregate access the CO-RE machinery cares about (like a read of a member of
!    a struct or union), collecting access indices for the components and storing
!    them in the vector referenced by ACCESSORS.
! 
!    Return the ultimate (top-level) container of the aggregate access. In general,
!    this will be a VAR_DECL or some kind of REF.
! 
!    Note that the accessors are computed *in reverse order* of how the BPF
!    CO-RE machinery defines them. The vector needs to be reversed (or simply
!    output in reverse order) for the .BTF.ext relocation information.  */
! 
! static tree
! bpf_core_compute (tree node, vec<unsigned int> *accessors)
! {
! 
!   if (TREE_CODE (node) == ADDR_EXPR)
!     node = TREE_OPERAND (node, 0);
! 
!   else if (TREE_CODE (node) == INDIRECT_REF
! 	   || TREE_CODE (node) == POINTER_PLUS_EXPR)
!     {
!       accessors->safe_push (0);
!       return TREE_OPERAND (node, 0);
!     }
! 
!   while (1)
!     {
!       switch (TREE_CODE (node))
! 	{
! 	case COMPONENT_REF:
! 	  accessors->safe_push (bpf_core_get_index (TREE_OPERAND (node, 1)));
! 	  break;
! 
! 	case ARRAY_REF:
! 	case ARRAY_RANGE_REF:
! 	  accessors->safe_push (bpf_core_get_index (node));
! 	  break;
! 
! 	case MEM_REF:
! 	  accessors->safe_push (bpf_core_get_index (node));
! 	  if (TREE_CODE (TREE_OPERAND (node, 0)) == ADDR_EXPR)
! 	    node = TREE_OPERAND (TREE_OPERAND (node, 0), 0);
! 	  goto done;
! 
! 	default:
! 	  goto done;
! 	}
!       node = TREE_OPERAND (node, 0);
!     }
!  done:
!   return node;
! 
! }
! 
! /* Compute the index of the NODE in its immediate container.
!    NODE should be a FIELD_DECL (i.e. of struct or union), or an ARRAY_REF. */
! static int
! bpf_core_get_index (const tree node)
! {
!   enum tree_code code = TREE_CODE (node);
! 
!   if (code == FIELD_DECL)
!     {
!       /* Lookup the index from the BTF information.  Some struct/union members
! 	 may not be emitted in BTF; only the BTF container has enough
! 	 information to compute the correct index.  */
!       int idx = bpf_core_get_sou_member_index (ctf_get_tu_ctfc (), node);
!       if (idx >= 0)
! 	return idx;
!     }
! 
!   else if (code == ARRAY_REF || code == ARRAY_RANGE_REF || code == MEM_REF)
!     {
!       /* For array accesses, the index is operand 1.  */
!       tree index = TREE_OPERAND (node, 1);
! 
!       /* If the indexing operand is a constant, extracting is trivial.  */
!       if (TREE_CODE (index) == INTEGER_CST && tree_fits_shwi_p (index))
! 	return tree_to_shwi (index);
!     }
! 
!   return -1;
! }
! 
! /* Synthesize a new builtin function declaration with signature TYPE.
!    Used by bpf_resolve_overloaded_builtin to resolve calls to
!    __builtin_preserve_access_index.  */
! 
! static tree
! bpf_core_newdecl (tree type, enum bpf_builtins which)
! {
!   tree rettype;
!   char name[80];
!   static unsigned long pai_count = 0;
!   static unsigned long pfi_count = 0;
! 
!   switch (which)
!     {
!     case BPF_BUILTIN_PRESERVE_ACCESS_INDEX:
!       {
! 	rettype = build_function_type_list (type, type, NULL);
! 	int len = snprintf (name, sizeof (name), "%s", "__builtin_pai_");
! 	len = snprintf (name + len, sizeof (name) - len, "%lu", pai_count++);
!       }
!       break;
! 
!     case BPF_BUILTIN_PRESERVE_FIELD_INFO:
!       {
! 	rettype = build_function_type_list (unsigned_type_node, type,
! 					    unsigned_type_node, NULL);
! 	int len = snprintf (name, sizeof (name), "%s", "__builtin_pfi_");
! 	len = snprintf (name + len, sizeof (name) - len, "%lu", pfi_count++);
!       }
!       break;
! 
!     default:
!       gcc_unreachable ();
!     }
! 
!   return add_builtin_function_ext_scope (name, rettype, -which,
! 					 BUILT_IN_MD, NULL, NULL_TREE);
! }
! 
! /* Return whether EXPR could access some aggregate data structure that
!    BPF CO-RE support needs to know about.  */
! 
! static bool
! bpf_core_is_maybe_aggregate_access (tree expr)
  {
!   switch (TREE_CODE (expr))
!     {
!     case COMPONENT_REF:
!     case BIT_FIELD_REF:
!     case ARRAY_REF:
!     case ARRAY_RANGE_REF:
!       return true;
!     case ADDR_EXPR:
!     case NOP_EXPR:
!       return bpf_core_is_maybe_aggregate_access (TREE_OPERAND (expr, 0));
!     default:
!       return false;
!     }
! }
  
! struct core_walk_data {
!   location_t loc;
!   enum bpf_builtins which;
!   tree arg;
! };
  
! /* Callback function used with walk_tree from bpf_resolve_overloaded_builtin.  */
  
! static tree
! bpf_core_walk (tree *tp, int *walk_subtrees, void *data)
! {
!   struct core_walk_data *dat = (struct core_walk_data *) data;
  
!   /* If this is a type, don't do anything. */
!   if (TYPE_P (*tp))
      {
!       *walk_subtrees = 0;
!       return NULL_TREE;
!     }
  
!   /* Build a new function call to a type-resolved temporary builtin for the
!      desired operation, and pass along args as necessary.  */
!   tree newdecl = bpf_core_newdecl (TREE_TYPE (*tp), dat->which);
  
!   if (dat->which == BPF_BUILTIN_PRESERVE_ACCESS_INDEX)
!     {
!       if (bpf_core_is_maybe_aggregate_access (*tp))
! 	{
! 	  *tp = build_call_expr_loc (dat->loc, newdecl, 1, *tp);
! 	  *walk_subtrees = 0;
! 	}
      }
    else
!     {
!       *tp = build_call_expr_loc (dat->loc, newdecl, 2, *tp, dat->arg);
!       *walk_subtrees = 0;
!     }
! 
!   return NULL_TREE;
  }
  
  /* Implement target hook small_register_classes_for_mode_p.  */
  
  static bool
--- 1142,1202 ----
  #undef TARGET_ASM_ALIGNED_DI_OP
  #define TARGET_ASM_ALIGNED_DI_OP "\t.dword\t"
  
+ /* Implement target hook TARGET_ASM_NAMED_SECTION.  */
  
! static void
! bpf_asm_named_section (const char *name, unsigned int flags,
!                        tree decl)
  {
!   /* In BPF section names are used to encode the kind of BPF program
!      and other metadata, involving all sort of non alphanumeric
!      characters.  This includes for example names like /foo//bar/baz.
!      This makes it necessary to quote section names to make sure the
!      assembler doesn't get confused.  For example, the example above
!      would be interpreted unqouted as a section name "/foo" followed
!      by a line comment "//bar/baz".
  
!      Note that we only quote the section name if it contains any
!      character not in the set [0-9a-zA-Z_].  This is because
!      default_elf_asm_named_section generally expects unquoted names
!      and checks for particular names like
!      __patchable_function_entries.  */
  
!   bool needs_quoting = false;
  
!   for (const char *p = name; *p != '\0'; ++p)
!     if (!(*p == '_'
!           || (*p >= '0' && *p <= '9')
!           || (*p >= 'a' && *p <= 'z')
!           || (*p >= 'A' && *p <= 'Z')))
!       needs_quoting = true;
  
!   if (needs_quoting)
      {
!       char *quoted_name
!         = (char *) xcalloc (1, strlen (name) * 2 + 2);
!       char *q = quoted_name;
  
!       *(q++) = '"';
!       for (const char *p = name; *p != '\0'; ++p)
!         {
!           if (*p == '"' || *p == '\\')
!             *(q++) = '\\';
!           *(q++) = *p;
!         }
!       *(q++) = '"';
!       *(q++) = '\0';
  
!       default_elf_asm_named_section (quoted_name, flags, decl);
!       free (quoted_name);
      }
    else
!     default_elf_asm_named_section (name, flags, decl);
  }
  
+ #undef TARGET_ASM_NAMED_SECTION
+ #define TARGET_ASM_NAMED_SECTION bpf_asm_named_section
+ 
  /* Implement target hook small_register_classes_for_mode_p.  */
  
  static bool
*************** bpf_small_register_classes_for_mode_p (m
*** 1590,1865 ****
  #define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P \
    bpf_small_register_classes_for_mode_p
  
- /* Return whether EXPR is a valid first argument for a call to
-    __builtin_preserve_field_info.  */
- 
  static bool
! bpf_is_valid_preserve_field_info_arg (tree expr)
  {
!   switch (TREE_CODE (expr))
!     {
!     case COMPONENT_REF:
!     case BIT_FIELD_REF:
!     case ARRAY_REF:
!     case ARRAY_RANGE_REF:
!       return true;
!     case NOP_EXPR:
!       return bpf_is_valid_preserve_field_info_arg (TREE_OPERAND (expr, 0));
!     case ADDR_EXPR:
!       /* Do not accept ADDR_EXPRs like &foo.bar, but do accept accesses like
! 	 foo.baz where baz is an array.  */
!       return (TREE_CODE (TREE_TYPE (TREE_OPERAND (expr, 0))) == ARRAY_TYPE);
!     default:
!       return false;
!     }
  }
  
! /* Implement TARGET_RESOLVE_OVERLOADED_BUILTIN (see gccint manual section
!    Target Macros::Misc.).
!    Used for CO-RE support builtins such as __builtin_preserve_access_index
!    and __builtin_preserve_field_info.
  
!    FNDECL is the declaration of the builtin, and ARGLIST is the list of
!    arguments passed to it, and is really a vec<tree,_> *.  */
  
! static tree
! bpf_resolve_overloaded_builtin (location_t loc, tree fndecl, void *arglist)
  {
!   enum bpf_builtins which = (enum bpf_builtins) DECL_MD_FUNCTION_CODE (fndecl);
! 
!   if (which < BPF_BUILTIN_PRESERVE_ACCESS_INDEX
!       || which >= BPF_BUILTIN_MAX)
!     return NULL_TREE;
! 
!   vec<tree, va_gc> *params = static_cast<vec<tree, va_gc> *> (arglist);
!   unsigned n_params = params ? params->length() : 0;
  
!   if (!(which == BPF_BUILTIN_PRESERVE_ACCESS_INDEX && n_params == 1)
!       && n_params != 2)
      {
!       error_at (loc, "wrong number of arguments");
!       return error_mark_node;
      }
  
!   tree param = (*params)[0];
! 
!   /* If not generating BPF_CORE information, preserve_access_index does
!      nothing, and simply "resolves to" the argument.  */
!   if (which == BPF_BUILTIN_PRESERVE_ACCESS_INDEX && !TARGET_BPF_CORE)
!     return param;
! 
!   /* For __builtin_preserve_field_info, enforce that the parameter is exactly a
!      field access and not a more complex expression.  */
!   else if (which == BPF_BUILTIN_PRESERVE_FIELD_INFO
! 	   && !bpf_is_valid_preserve_field_info_arg (param))
      {
!       error_at (EXPR_LOC_OR_LOC (param, loc),
! 		"argument is not a field access");
!       return error_mark_node;
      }
- 
-   /* Do remove_c_maybe_const_expr for the arg.
-      TODO: WHY do we have to do this here? Why doesn't c-typeck take care
-      of it before or after this hook? */
-   if (TREE_CODE (param) == C_MAYBE_CONST_EXPR)
-     param = C_MAYBE_CONST_EXPR_EXPR (param);
- 
-   /* Construct a new function declaration with the correct type, and return
-      a call to it.
- 
-      Calls with statement-expressions, for example:
-      _(({ foo->a = 1; foo->u[2].b = 2; }))
-      require special handling.
- 
-      We rearrange this into a new block scope in which each statement
-      becomes a unique builtin call:
-      {
-        _ ({ foo->a = 1;});
-        _ ({ foo->u[2].b = 2;});
-      }
- 
-      This ensures that all the relevant information remains within the
-      expression trees the builtin finally gets.  */
- 
-   struct core_walk_data data;
-   data.loc = loc;
-   data.which = which;
-   if (which == BPF_BUILTIN_PRESERVE_ACCESS_INDEX)
-     data.arg = NULL_TREE;
-   else
-     data.arg = (*params)[1];
- 
-   walk_tree (&param, bpf_core_walk, (void *) &data, NULL);
- 
-   return param;
  }
  
! #undef TARGET_RESOLVE_OVERLOADED_BUILTIN
! #define TARGET_RESOLVE_OVERLOADED_BUILTIN bpf_resolve_overloaded_builtin
! 
! 
! /* Handling for __attribute__((preserve_access_index)) for BPF CO-RE support.
! 
!    This attribute marks a structure/union/array type as "preseve", so that
!    every access to that type should be recorded and replayed by the BPF loader;
!    this is just the same functionality as __builtin_preserve_access_index,
!    but in the form of an attribute for an entire aggregate type.
! 
!    Note also that nested structs behave as though they all have the attribute.
!    For example:
!      struct X { int a; };
!      struct Y { struct X bar} __attribute__((preserve_access_index));
!      struct Y foo;
!      foo.bar.a;
!    will record access all the way to 'a', even though struct X does not have
!    the preserve_access_index attribute.
! 
!    This is to follow LLVM behavior.
! 
!    This pass finds all accesses to objects of types marked with the attribute,
!    and wraps them in the same "low-level" builtins used by the builtin version.
!    All logic afterwards is therefore identical to the builtin version of
!    preserve_access_index.  */
! 
! /* True iff tree T accesses any member of a struct/union/class which is marked
!    with the PRESERVE_ACCESS_INDEX attribute.  */
  
! static bool
! is_attr_preserve_access (tree t)
  {
!   if (t == NULL_TREE)
!     return false;
! 
!   poly_int64 bitsize, bitpos;
!   tree var_off;
!   machine_mode mode;
!   int sign, reverse, vol;
  
!   tree base = get_inner_reference (t, &bitsize, &bitpos, &var_off, &mode,
! 				   &sign, &reverse, &vol);
  
!   if (TREE_CODE (base) == MEM_REF)
      {
!       return lookup_attribute ("preserve_access_index",
! 			       TYPE_ATTRIBUTES (TREE_TYPE (base)));
      }
  
!   if (TREE_CODE (t) == COMPONENT_REF)
      {
!       /* preserve_access_index propegates into nested structures,
! 	 so check whether this is a component of another component
! 	 which in turn is part of such a struct.  */
  
!       const tree op = TREE_OPERAND (t, 0);
  
!       if (TREE_CODE (op) == COMPONENT_REF)
! 	return is_attr_preserve_access (op);
  
!       const tree container = DECL_CONTEXT (TREE_OPERAND (t, 1));
  
!       return lookup_attribute ("preserve_access_index",
! 			       TYPE_ATTRIBUTES (container));
      }
  
!   else if (TREE_CODE (t) == ADDR_EXPR)
!     return is_attr_preserve_access (TREE_OPERAND (t, 0));
  
!   return false;
  }
  
! /* The body of pass_bpf_core_attr. Scan RTL for accesses to structs/unions
!    marked with __attribute__((preserve_access_index)) and generate a CO-RE
!    relocation for any such access.  */
  
! static void
! handle_attr_preserve (function *fn)
  {
!   basic_block bb;
!   rtx_insn *insn;
!   FOR_EACH_BB_FN (bb, fn)
      {
!       FOR_BB_INSNS (bb, insn)
! 	{
! 	  if (!NONJUMP_INSN_P (insn))
! 	    continue;
! 	  rtx pat = PATTERN (insn);
! 	  if (GET_CODE (pat) != SET)
! 	    continue;
! 
! 	  start_sequence();
! 
! 	  for (int i = 0; i < 2; i++)
! 	    {
! 	      rtx mem = XEXP (pat, i);
! 	      if (MEM_P (mem))
! 		{
! 		  tree expr = MEM_EXPR (mem);
! 		  if (!expr)
! 		    continue;
! 
! 		  if (TREE_CODE (expr) == MEM_REF
! 		      && TREE_CODE (TREE_OPERAND (expr, 0)) == SSA_NAME)
! 		    {
! 		      gimple *def_stmt = SSA_NAME_DEF_STMT (TREE_OPERAND (expr, 0));
! 		      if (def_stmt && is_gimple_assign (def_stmt))
! 			expr = gimple_assign_rhs1 (def_stmt);
! 		    }
! 
! 		  if (is_attr_preserve_access (expr))
! 		    maybe_make_core_relo (expr, BPF_RELO_FIELD_BYTE_OFFSET);
! 		}
! 	    }
! 	  rtx_insn *seq = get_insns ();
! 	  end_sequence ();
! 	  emit_insn_before (seq, insn);
! 	}
      }
- }
- 
  
! /* This pass finds accesses to structures marked with the BPF target attribute
!    __attribute__((preserve_access_index)). For every such access, a CO-RE
!    relocation record is generated, to be output in the .BTF.ext section.  */
! 
! namespace {
! 
! const pass_data pass_data_bpf_core_attr =
! {
!   RTL_PASS, /* type */
!   "bpf_core_attr", /* name */
!   OPTGROUP_NONE, /* optinfo_flags */
!   TV_NONE, /* tv_id */
!   0, /* properties_required */
!   0, /* properties_provided */
!   0, /* properties_destroyed */
!   0, /* todo_flags_start */
!   0, /* todo_flags_finish */
! };
  
! class pass_bpf_core_attr : public rtl_opt_pass
! {
! public:
!   pass_bpf_core_attr (gcc::context *ctxt)
!     : rtl_opt_pass (pass_data_bpf_core_attr, ctxt)
!   {}
  
!   virtual bool gate (function *) { return TARGET_BPF_CORE; }
!   virtual unsigned int execute (function *);
! };
  
! unsigned int
! pass_bpf_core_attr::execute (function *fn)
! {
!   handle_attr_preserve (fn);
!   return 0;
! }
  
! } /* Anonymous namespace.  */
  
! rtl_opt_pass *
! make_pass_bpf_core_attr (gcc::context *ctxt)
! {
!   return new pass_bpf_core_attr (ctxt);
  }
  
  /* Finally, build the GCC target.  */
--- 1214,1438 ----
  #define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P \
    bpf_small_register_classes_for_mode_p
  
  static bool
! bpf_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size,
! 				    unsigned int align ATTRIBUTE_UNUSED,
! 				    enum by_pieces_operation op,
! 				    bool speed_p)
  {
!   if (op != COMPARE_BY_PIECES)
!     return default_use_by_pieces_infrastructure_p (size, align, op, speed_p);
! 
!   return size <= COMPARE_MAX_PIECES;
  }
  
! #undef TARGET_USE_BY_PIECES_INFRASTRUCTURE_P
! #define TARGET_USE_BY_PIECES_INFRASTRUCTURE_P \
!   bpf_use_by_pieces_infrastructure_p
  
! /* Helper for bpf_expand_cpymem.  Emit an unrolled loop moving the bytes
!    from SRC to DST.  */
  
! static void
! emit_move_loop (rtx src, rtx dst, machine_mode mode, int offset, int inc,
! 		unsigned iters, unsigned remainder)
  {
!   rtx reg = gen_reg_rtx (mode);
  
!   /* First copy in chunks as large as alignment permits.  */
!   for (unsigned int i = 0; i < iters; i++)
      {
!       emit_move_insn (reg, adjust_address (src, mode, offset));
!       emit_move_insn (adjust_address (dst, mode, offset), reg);
!       offset += inc;
      }
  
!   /* Handle remaining bytes which might be smaller than the chunks
!      used above.  */
!   if (remainder & 4)
      {
!       emit_move_insn (reg, adjust_address (src, SImode, offset));
!       emit_move_insn (adjust_address (dst, SImode, offset), reg);
!       offset += (inc < 0 ? -4 : 4);
!       remainder -= 4;
!     }
!   if (remainder & 2)
!     {
!       emit_move_insn (reg, adjust_address (src, HImode, offset));
!       emit_move_insn (adjust_address (dst, HImode, offset), reg);
!       offset += (inc < 0 ? -2 : 2);
!       remainder -= 2;
!     }
!   if (remainder & 1)
!     {
!       emit_move_insn (reg, adjust_address (src, QImode, offset));
!       emit_move_insn (adjust_address (dst, QImode, offset), reg);
      }
  }
  
! /* Expand cpymem/movmem, as from __builtin_memcpy/memmove.
!    OPERANDS are the same as the cpymem/movmem patterns.
!    IS_MOVE is true if this is a memmove, false for memcpy.
!    Return true if we successfully expanded, or false if we cannot
!    and must punt to a libcall.  */
  
! bool
! bpf_expand_cpymem (rtx *operands, bool is_move)
  {
!   /* Size must be constant for this expansion to work.  */
!   const char *name = is_move ? "memmove" : "memcpy";
!   if (!CONST_INT_P (operands[2]))
!     {
!       if (flag_building_libgcc)
! 	warning (0, "could not inline call to %<__builtin_%s%>: "
! 		 "size must be constant", name);
!       else
! 	error ("could not inline call to %<__builtin_%s%>: "
! 	       "size must be constant", name);
!       return false;
!     }
  
!   /* Alignment is a CONST_INT.  */
!   gcc_assert (CONST_INT_P (operands[3]));
  
!   rtx dst = operands[0];
!   rtx src = operands[1];
!   rtx size = operands[2];
!   unsigned HOST_WIDE_INT size_bytes = UINTVAL (size);
!   unsigned align = UINTVAL (operands[3]);
!   enum machine_mode mode;
!   switch (align)
      {
!     case 1: mode = QImode; break;
!     case 2: mode = HImode; break;
!     case 4: mode = SImode; break;
!     case 8: mode = DImode; break;
!     default:
!       gcc_unreachable ();
      }
  
!   /* For sizes above threshold, always use a libcall.  */
!   if (size_bytes > (unsigned HOST_WIDE_INT) bpf_inline_memops_threshold)
      {
!       if (flag_building_libgcc)
! 	warning (0, "could not inline call to %<__builtin_%s%>: "
! 		 "too many bytes, use %<-minline-memops-threshold%>", name);
!       else
! 	error ("could not inline call to %<__builtin_%s%>: "
! 	       "too many bytes, use %<-minline-memops-threshold%>", name);
!       return false;
!     }
  
!   unsigned iters = size_bytes >> ceil_log2 (align);
!   unsigned remainder = size_bytes & (align - 1);
  
!   int inc = GET_MODE_SIZE (mode);
!   rtx_code_label *fwd_label, *done_label;
!   if (is_move)
!     {
!       /* For memmove, be careful of overlap.  It is not a concern for memcpy.
! 	 To handle overlap, we check (at runtime) if SRC < DST, and if so do
! 	 the move "backwards" starting from SRC + SIZE.  */
!       fwd_label = gen_label_rtx ();
!       done_label = gen_label_rtx ();
  
!       rtx dst_addr = copy_to_mode_reg (Pmode, XEXP (dst, 0));
!       rtx src_addr = copy_to_mode_reg (Pmode, XEXP (src, 0));
!       emit_cmp_and_jump_insns (src_addr, dst_addr, GEU, NULL_RTX, Pmode,
! 			       true, fwd_label, profile_probability::even ());
  
!       /* Emit the "backwards" unrolled loop.  */
!       emit_move_loop (src, dst, mode, size_bytes, -inc, iters, remainder);
!       emit_jump_insn (gen_jump (done_label));
!       emit_barrier ();
! 
!       emit_label (fwd_label);
      }
  
!   emit_move_loop (src, dst, mode, 0, inc, iters, remainder);
  
!   if (is_move)
!     emit_label (done_label);
! 
!   return true;
  }
  
! /* Expand setmem, as from __builtin_memset.
!    OPERANDS are the same as the setmem pattern.
!    Return true if the expansion was successful, false otherwise.  */
  
! bool
! bpf_expand_setmem (rtx *operands)
  {
!   /* Size must be constant for this expansion to work.  */
!   if (!CONST_INT_P (operands[1]))
      {
!       if (flag_building_libgcc)
! 	warning (0, "could not inline call to %<__builtin_memset%>: "
! 		 "size must be constant");
!       else
! 	error ("could not inline call to %<__builtin_memset%>: "
! 	       "size must be constant");
!       return false;
      }
  
!   /* Alignment is a CONST_INT.  */
!   gcc_assert (CONST_INT_P (operands[3]));
  
!   rtx dst = operands[0];
!   rtx size = operands[1];
!   rtx val = operands[2];
!   unsigned HOST_WIDE_INT size_bytes = UINTVAL (size);
!   unsigned align = UINTVAL (operands[3]);
!   enum machine_mode mode;
!   switch (align)
!     {
!     case 1: mode = QImode; break;
!     case 2: mode = HImode; break;
!     case 4: mode = SImode; break;
!     case 8: mode = DImode; break;
!     default:
!       gcc_unreachable ();
!     }
  
!   /* For sizes above threshold, always use a libcall.  */
!   if (size_bytes > (unsigned HOST_WIDE_INT) bpf_inline_memops_threshold)
!     {
!       if (flag_building_libgcc)
! 	warning (0, "could not inline call to %<__builtin_memset%>: "
! 		 "too many bytes, use %<-minline-memops-threshold%>");
!       else
! 	error ("could not inline call to %<__builtin_memset%>: "
! 	       "too many bytes, use %<-minline-memops-threshold%>");
!       return false;
!     }
  
!   unsigned iters = size_bytes >> ceil_log2 (align);
!   unsigned remainder = size_bytes & (align - 1);
!   unsigned inc = GET_MODE_SIZE (mode);
!   unsigned offset = 0;
  
!   for (unsigned int i = 0; i < iters; i++)
!     {
!       emit_move_insn (adjust_address (dst, mode, offset), val);
!       offset += inc;
!     }
!   if (remainder & 4)
!     {
!       emit_move_insn (adjust_address (dst, SImode, offset), val);
!       offset += 4;
!       remainder -= 4;
!     }
!   if (remainder & 2)
!     {
!       emit_move_insn (adjust_address (dst, HImode, offset), val);
!       offset += 2;
!       remainder -= 2;
!     }
!   if (remainder & 1)
!     emit_move_insn (adjust_address (dst, QImode, offset), val);
  
!   return true;
  }
  
  /* Finally, build the GCC target.  */
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf.h gcc-14.1.0/gcc/config/bpf/bpf.h
*** gcc-13.2.0/gcc/config/bpf/bpf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/bpf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definition of the eBPF target for GCC.
!    Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definition of the eBPF target for GCC.
!    Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
***************
*** 22,28 ****
  
  /**** Controlling the Compilation Driver.  */
  
! #define ASM_SPEC "%{mbig-endian:-EB} %{!mbig-endian:-EL} %{mxbpf:-mxbpf}"
  #define LINK_SPEC "%{mbig-endian:-EB} %{!mbig-endian:-EL}"
  #define LIB_SPEC ""
  #define STARTFILE_SPEC ""
--- 22,31 ----
  
  /**** Controlling the Compilation Driver.  */
  
! #define ASM_SPEC "%{mbig-endian:-EB} %{!mbig-endian:-EL} %{mxbpf:-mxbpf} " \
!   "%{masm=normal:-mdialect=normal} " \
!   "%{masm=pseudoc:-mdialect=pseudoc} " \
!   "%{!masm=normal:%{!masm=pseudoc:-mdialect=pseudoc}}"
  #define LINK_SPEC "%{mbig-endian:-EB} %{!mbig-endian:-EL}"
  #define LIB_SPEC ""
  #define STARTFILE_SPEC ""
***************
*** 98,104 ****
  
  #define SIG_ATOMIC_TYPE "char"
  
! #define INT8_TYPE "char"
  #define INT16_TYPE "short int"
  #define INT32_TYPE "int"
  #define INT64_TYPE "long int"
--- 101,107 ----
  
  #define SIG_ATOMIC_TYPE "char"
  
! #define INT8_TYPE "signed char"
  #define INT16_TYPE "short int"
  #define INT32_TYPE "int"
  #define INT64_TYPE "long int"
***************
*** 152,181 ****
  #define BPF_R7	7
  #define BPF_R8	8
  #define BPF_R9	9
- #define BPF_SP BPF_R9
  #define BPF_R10	10
  #define BPF_FP  BPF_R10
  /* 11 is not a real eBPF hard register and is eliminated or not used
     in the final assembler.  See below.  */
  
! #define FIRST_PSEUDO_REGISTER 12
  
  /* The registers %r0..%r8 are available for general allocation.
-    %r9 is the pseudo-stack pointer.
     %r10 is the stack frame, which is read-only.
!    %r11 (__arg__) is a fake register that always gets eliminated.  */
  #define FIXED_REGISTERS				\
!   {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}
  
  /* %r0..%r5 are clobbered by function calls.  */
  #define CALL_USED_REGISTERS				\
!   {1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1}
  
  /**** Register Classes.  */
  
  enum reg_class
  {
    NO_REGS,		/* no registers in set.  */
    ALL_REGS,		/* all registers.  */
    LIM_REG_CLASSES	/* max value + 1.  */
  };
--- 155,188 ----
  #define BPF_R7	7
  #define BPF_R8	8
  #define BPF_R9	9
  #define BPF_R10	10
  #define BPF_FP  BPF_R10
+ #define BPF_R11 11
+ #define BPF_R12 12
+ #define BPF_SP  BPF_R12
+ 
  /* 11 is not a real eBPF hard register and is eliminated or not used
     in the final assembler.  See below.  */
  
! #define FIRST_PSEUDO_REGISTER 13
  
  /* The registers %r0..%r8 are available for general allocation.
     %r10 is the stack frame, which is read-only.
!    %r11 (__arg__) is a fake register that always gets eliminated.
!    %r12 is the pseudo-stack pointer that always gets eliminated.  */
  #define FIXED_REGISTERS				\
!   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}
  
  /* %r0..%r5 are clobbered by function calls.  */
  #define CALL_USED_REGISTERS				\
!   {1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1}
  
  /**** Register Classes.  */
  
  enum reg_class
  {
    NO_REGS,		/* no registers in set.  */
+   R0,		        /* register r0.  */
    ALL_REGS,		/* all registers.  */
    LIM_REG_CLASSES	/* max value + 1.  */
  };
*************** enum reg_class
*** 189,194 ****
--- 196,202 ----
  #define REG_CLASS_NAMES				\
  {						\
    "NO_REGS",					\
+   "R0",					\
    "ALL_REGS"					\
  }
  
*************** enum reg_class
*** 202,215 ****
  #define REG_CLASS_CONTENTS			\
  {						\
     0x00000000, /* NO_REGS */			\
!    0x00000fff, /* ALL_REGS */		        \
  }
  
  /* A C expression whose value is a register class containing hard
     register REGNO.  In general there is more that one such class;
     choose a class which is "minimal", meaning that no smaller class
     also contains the register.  */
! #define REGNO_REG_CLASS(REGNO) ((void)(REGNO), GENERAL_REGS)
  
  /* A macro whose definition is the name of the class to which a
     valid base register must belong.  A base register is one used in
--- 210,225 ----
  #define REG_CLASS_CONTENTS			\
  {						\
     0x00000000, /* NO_REGS */			\
!    0x00000001, /* R0 */                         \
!    0x00001fff, /* ALL_REGS */		        \
  }
  
  /* A C expression whose value is a register class containing hard
     register REGNO.  In general there is more that one such class;
     choose a class which is "minimal", meaning that no smaller class
     also contains the register.  */
! #define REGNO_REG_CLASS(REGNO) \
!   ((REGNO) == 0 ? R0 : GENERAL_REGS)
  
  /* A macro whose definition is the name of the class to which a
     valid base register must belong.  A base register is one used in
*************** enum reg_class
*** 235,240 ****
--- 245,255 ----
  
  /**** Debugging Info ****/
  
+ /* Use BTF debug info by default.  */
+ 
+ #undef  PREFERRED_DEBUGGING_TYPE
+ #define PREFERRED_DEBUGGING_TYPE BTF_DEBUG
+ 
  /* In eBPF it is not possible to unwind frames. Disable CFA.  */
  
  #define DWARF2_FRAME_INFO 0
*************** enum reg_class
*** 255,269 ****
  /*** Registers That Address the Stack Frame.  */
  
  #define FRAME_POINTER_REGNUM 10
- #define STACK_POINTER_REGNUM 9
  #define ARG_POINTER_REGNUM 11
  #define STATIC_CHAIN_REGNUM 8
  
  /*** Registers elimination.  */
  
  #define ELIMINABLE_REGS					\
    {{ ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM },	\
!    { ARG_POINTER_REGNUM, STACK_POINTER_REGNUM }}
  
  /* Define the offset between two registers, one to be eliminated, and
     the other its replacement, at the start of a routine.  */
--- 270,284 ----
  /*** Registers That Address the Stack Frame.  */
  
  #define FRAME_POINTER_REGNUM 10
  #define ARG_POINTER_REGNUM 11
+ #define STACK_POINTER_REGNUM 12
  #define STATIC_CHAIN_REGNUM 8
  
  /*** Registers elimination.  */
  
  #define ELIMINABLE_REGS					\
    {{ ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM },	\
!    { STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM }}
  
  /* Define the offset between two registers, one to be eliminated, and
     the other its replacement, at the start of a routine.  */
*************** enum reg_class
*** 385,391 ****
  
  /*** The Overall Framework of an Assembler File.  */
  
! #define ASM_COMMENT_START ";"
  
  /* Output to assembler file text saying following lines
     may contain character constants, extra white space, comments, etc.  */
--- 400,406 ----
  
  /*** The Overall Framework of an Assembler File.  */
  
! #define ASM_COMMENT_START "#"
  
  /* Output to assembler file text saying following lines
     may contain character constants, extra white space, comments, etc.  */
*************** enum reg_class
*** 439,445 ****
  
  #define REGISTER_NAMES						\
    { "%r0", "%r1", "%r2", "%r3", "%r4", "%r5", "%r6", "%r7",	\
!     "%r8", "%r9", "%fp", "__arg__" }
  
  #define ADDITIONAL_REGISTER_NAMES		\
    { { "%a", 0 }, { "%ctx", 6 }, { "%r10" , 10 } }
--- 454,460 ----
  
  #define REGISTER_NAMES						\
    { "%r0", "%r1", "%r2", "%r3", "%r4", "%r5", "%r6", "%r7",	\
!       "%r8", "%r9", "%fp", "__arg__", "__sp__" }
  
  #define ADDITIONAL_REGISTER_NAMES		\
    { { "%a", 0 }, { "%ctx", 6 }, { "%r10" , 10 } }
*************** enum reg_class
*** 481,486 ****
--- 496,506 ----
     locations.  */
  #define MOVE_MAX 8
  
+ /* Allow upto 1024 bytes moves to occur using by_pieces
+    infrastructure.  This mimics clang behaviour when using
+    __builtin_memcmp.  */
+ #define COMPARE_MAX_PIECES 1024
+ 
  /* An alias for the machine mode for pointers.  */
  #define Pmode DImode
  
*************** enum reg_class
*** 503,506 ****
--- 523,528 ----
  #define DO_GLOBAL_DTORS_BODY			\
    do { } while (0)
  
+ #define ASSEMBLER_DIALECT ((int) asm_dialect)
+ 
  #endif /* ! GCC_BPF_H */
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf.md gcc-14.1.0/gcc/config/bpf/bpf.md
*** gcc-13.2.0/gcc/config/bpf/bpf.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/bpf.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for eBPF.
! ;; Copyright (C) 2019-2023 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
--- 1,5 ----
  ;; Machine description for eBPF.
! ;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
***************
*** 20,30 ****
  (include "predicates.md")
  (include "constraints.md")
  
  ;;;; Unspecs
  
  (define_c_enum "unspec" [
    UNSPEC_LDINDABS
!   UNSPEC_XADD
  ])
  
  ;;;; Constants
--- 20,51 ----
  (include "predicates.md")
  (include "constraints.md")
  
+ ;;;; Instruction Scheduler FSM
+ 
+ ;; This is just to get INSN_SCHEDULING defined, so that combine does
+ ;; not make paradoxical subregs of memory.  These subregs seems to
+ ;; confuse LRA that ends generating wrong instructions.
+ 
+ (define_automaton "frob")
+ (define_cpu_unit "frob_unit" "frob")
+ (define_insn_reservation "frobnicator" 814
+   (const_int 0) "frob_unit")
+ 
  ;;;; Unspecs
  
  (define_c_enum "unspec" [
    UNSPEC_LDINDABS
!   UNSPEC_AADD
!   UNSPEC_AAND
!   UNSPEC_AOR
!   UNSPEC_AXOR
!   UNSPEC_AFADD
!   UNSPEC_AFAND
!   UNSPEC_AFOR
!   UNSPEC_AFXOR
!   UNSPEC_AXCHG
!   UNSPEC_ACMP
!   UNSPEC_CORE_RELOC
  ])
  
  ;;;; Constants
***************
*** 49,66 ****
  ;; Instruction classes.
  ;; alu		64-bit arithmetic.
  ;; alu32	32-bit arithmetic.
! ;; end		endianness conversion instructions.
  ;; ld		load instructions.
  ;; lddx		load 64-bit immediate instruction.
  ;; ldx		generic load instructions.
  ;; st		generic store instructions for immediates.
  ;; stx		generic store instructions.
  ;; jmp		jump instructions.
- ;; xadd		atomic exchange-and-add instructions.
  ;; multi	multiword sequence (or user asm statements).
  
  (define_attr "type"
!   "unknown,alu,alu32,end,ld,lddw,ldx,st,stx,jmp,xadd,multi"
    (const_string "unknown"))
  
  ;; Length of instruction in bytes.
--- 70,86 ----
  ;; Instruction classes.
  ;; alu		64-bit arithmetic.
  ;; alu32	32-bit arithmetic.
! ;; end		endianness conversion or byte swap instructions.
  ;; ld		load instructions.
  ;; lddx		load 64-bit immediate instruction.
  ;; ldx		generic load instructions.
  ;; st		generic store instructions for immediates.
  ;; stx		generic store instructions.
  ;; jmp		jump instructions.
  ;; multi	multiword sequence (or user asm statements).
  
  (define_attr "type"
!   "unknown,alu,alu32,end,ld,lddw,ldx,st,stx,jmp,multi,atomic"
    (const_string "unknown"))
  
  ;; Length of instruction in bytes.
***************
*** 77,82 ****
--- 97,104 ----
  
  (define_mode_attr mop [(QI "b") (HI "h") (SI "w") (DI "dw")
                         (SF "w") (DF "dw")])
+ (define_mode_attr smop [(QI "u8") (HI "u16") (SI "u32") (DI "u64")
+                        (SF "u32") (DF "u64")])
  (define_mode_attr mtype [(SI "alu32") (DI "alu")])
  (define_mode_attr msuffix [(SI "32") (DI "")])
  
***************
*** 90,98 ****
  (define_insn "nop"
    [(const_int 0)]
    ""
!   "ja\t0"
    [(set_attr "type" "alu")])
  
  ;;;; Arithmetic/Logical
  
  ;; The arithmetic and logic operations below are defined for SI and DI
--- 112,133 ----
  (define_insn "nop"
    [(const_int 0)]
    ""
!   "{ja\t0|goto 0}"
    [(set_attr "type" "alu")])
  
+ ;;;; Stack usage
+ 
+ (define_expand "allocate_stack"
+   [(match_operand:DI 0 "general_operand" "")
+    (match_operand:DI 1 "general_operand" "")]
+   ""
+   "
+ {
+   error (\"BPF does not support dynamic stack allocation\");
+   emit_insn (gen_nop ());
+   DONE;
+ }")
+ 
  ;;;; Arithmetic/Logical
  
  ;; The arithmetic and logic operations below are defined for SI and DI
***************
*** 110,116 ****
          (plus:AM (match_operand:AM 1 "register_operand"   " 0,0")
                   (match_operand:AM 2 "reg_or_imm_operand" " r,I")))]
    "1"
!   "add<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  ;;; Subtraction
--- 145,151 ----
          (plus:AM (match_operand:AM 1 "register_operand"   " 0,0")
                   (match_operand:AM 2 "reg_or_imm_operand" " r,I")))]
    "1"
!   "{add<msuffix>\t%0,%2|%w0 += %w2}"
    [(set_attr "type" "<mtype>")])
  
  ;;; Subtraction
***************
*** 123,137 ****
          (minus:AM (match_operand:AM 1 "register_operand" " 0")
                    (match_operand:AM 2 "register_operand" " r")))]
    ""
!   "sub<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  ;;; Negation
  (define_insn "neg<AM:mode>2"
!   [(set (match_operand:AM 0 "register_operand" "=r")
          (neg:AM (match_operand:AM 1 "register_operand" " 0")))]
    ""
!   "neg<msuffix>\t%0"
    [(set_attr "type" "<mtype>")])
  
  ;;; Multiplication
--- 158,172 ----
          (minus:AM (match_operand:AM 1 "register_operand" " 0")
                    (match_operand:AM 2 "register_operand" " r")))]
    ""
!   "{sub<msuffix>\t%0,%2|%w0 -= %w2}"
    [(set_attr "type" "<mtype>")])
  
  ;;; Negation
  (define_insn "neg<AM:mode>2"
!   [(set (match_operand:AM         0 "register_operand" "=r")
          (neg:AM (match_operand:AM 1 "register_operand" " 0")))]
    ""
!   "{neg<msuffix>\t%0|%w0 = -%w1}"
    [(set_attr "type" "<mtype>")])
  
  ;;; Multiplication
***************
*** 140,146 ****
          (mult:AM (match_operand:AM 1 "register_operand"   " 0,0")
                   (match_operand:AM 2 "reg_or_imm_operand" " r,I")))]
    ""
!   "mul<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  (define_insn "*mulsidi3_zeroextend"
--- 175,181 ----
          (mult:AM (match_operand:AM 1 "register_operand"   " 0,0")
                   (match_operand:AM 2 "reg_or_imm_operand" " r,I")))]
    ""
!   "{mul<msuffix>\t%0,%2|%w0 *= %w2}"
    [(set_attr "type" "<mtype>")])
  
  (define_insn "*mulsidi3_zeroextend"
***************
*** 149,201 ****
           (mult:SI (match_operand:SI 1 "register_operand" "0,0")
                    (match_operand:SI 2 "reg_or_imm_operand" "r,I"))))]
    ""
!   "mul32\t%0,%2"
    [(set_attr "type" "alu32")])
  
  ;;; Division
  
! ;; Note that eBPF doesn't provide instructions for signed integer
! ;; division.
  
  (define_insn "udiv<AM:mode>3"
    [(set (match_operand:AM 0 "register_operand" "=r,r")
          (udiv:AM (match_operand:AM 1 "register_operand" " 0,0")
                   (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "div<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
! ;; However, xBPF does provide a signed division operator, sdiv.
  
  (define_insn "div<AM:mode>3"
    [(set (match_operand:AM 0 "register_operand" "=r,r")
          (div:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
!   "TARGET_XBPF"
!   "sdiv<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  ;;; Modulus
  
! ;; Note that eBPF doesn't provide instructions for signed integer
! ;; remainder.
  
  (define_insn "umod<AM:mode>3"
    [(set (match_operand:AM 0 "register_operand" "=r,r")
          (umod:AM (match_operand:AM 1 "register_operand" " 0,0")
                   (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "mod<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
! ;; Again, xBPF provides a signed version, smod.
  
  (define_insn "mod<AM:mode>3"
    [(set (match_operand:AM 0 "register_operand" "=r,r")
          (mod:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
!   "TARGET_XBPF"
!   "smod<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  ;;; Logical AND
--- 184,236 ----
           (mult:SI (match_operand:SI 1 "register_operand" "0,0")
                    (match_operand:SI 2 "reg_or_imm_operand" "r,I"))))]
    ""
!   "{mul32\t%0,%2|%W0 *= %W2}"
    [(set_attr "type" "alu32")])
  
  ;;; Division
  
! ;; Note that eBPF <= V3 doesn't provide instructions for signed
! ;; integer division.
  
  (define_insn "udiv<AM:mode>3"
    [(set (match_operand:AM 0 "register_operand" "=r,r")
          (udiv:AM (match_operand:AM 1 "register_operand" " 0,0")
                   (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "{div<msuffix>\t%0,%2|%w0 /= %w2}"
    [(set_attr "type" "<mtype>")])
  
! ;; However, BPF V4 does provide a signed division operator, sdiv.
  
  (define_insn "div<AM:mode>3"
    [(set (match_operand:AM 0 "register_operand" "=r,r")
          (div:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
!   "bpf_has_sdiv"
!   "{sdiv<msuffix>\t%0,%2|%w0 s/= %w2}"
    [(set_attr "type" "<mtype>")])
  
  ;;; Modulus
  
! ;; Note that eBPF <= V3 doesn't provide instructions for signed
! ;; integer remainder.
  
  (define_insn "umod<AM:mode>3"
    [(set (match_operand:AM 0 "register_operand" "=r,r")
          (umod:AM (match_operand:AM 1 "register_operand" " 0,0")
                   (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "{mod<msuffix>\t%0,%2|%w0 %%= %w2}"
    [(set_attr "type" "<mtype>")])
  
! ;; However, BPF V4 does provide a signed modulus operator, smod.
  
  (define_insn "mod<AM:mode>3"
    [(set (match_operand:AM 0 "register_operand" "=r,r")
          (mod:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
!   "bpf_has_sdiv"
!   "{smod<msuffix>\t%0,%2|%w0 s%%= %w2}"
    [(set_attr "type" "<mtype>")])
  
  ;;; Logical AND
***************
*** 204,210 ****
          (and:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "and<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  ;;; Logical inclusive-OR
--- 239,245 ----
          (and:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "{and<msuffix>\t%0,%2|%w0 &= %w2}"
    [(set_attr "type" "<mtype>")])
  
  ;;; Logical inclusive-OR
***************
*** 213,219 ****
          (ior:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "or<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  ;;; Logical exclusive-OR
--- 248,254 ----
          (ior:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "{or<msuffix>\t%0,%2|%w0 %|= %w2}"
    [(set_attr "type" "<mtype>")])
  
  ;;; Logical exclusive-OR
***************
*** 222,228 ****
          (xor:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "xor<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  ;;;; Conversions
--- 257,263 ----
          (xor:AM (match_operand:AM 1 "register_operand" " 0,0")
                  (match_operand:AM 2 "reg_or_imm_operand" "r,I")))]
    ""
!   "{xor<msuffix>\t%0,%2|%w0 ^= %w2}"
    [(set_attr "type" "<mtype>")])
  
  ;;;; Conversions
***************
*** 245,253 ****
  	(zero_extend:DI (match_operand:HI 1 "nonimmediate_operand" "0,r,q")))]
    ""
    "@
!    and\t%0,0xffff
!    mov\t%0,%1\;and\t%0,0xffff
!    ldxh\t%0,%1"
    [(set_attr "type" "alu,alu,ldx")])
  
  (define_insn "zero_extendqidi2"
--- 280,288 ----
  	(zero_extend:DI (match_operand:HI 1 "nonimmediate_operand" "0,r,q")))]
    ""
    "@
!    {and\t%0,0xffff|%0 &= 0xffff}
!    *return bpf_output_move (operands, \"{mov\t%0,%1\;and\t%0,0xffff|%0 = %1;%0 &= 0xffff}\");
!    *return bpf_output_move (operands, \"{ldxh\t%0,%1|%0 = *(u16 *) (%1)}\");"
    [(set_attr "type" "alu,alu,ldx")])
  
  (define_insn "zero_extendqidi2"
***************
*** 255,263 ****
  	(zero_extend:DI (match_operand:QI 1 "nonimmediate_operand" "0,r,q")))]
    ""
    "@
!    and\t%0,0xff
!    mov\t%0,%1\;and\t%0,0xff
!    ldxb\t%0,%1"
    [(set_attr "type" "alu,alu,ldx")])
  
  (define_insn "zero_extendsidi2"
--- 290,298 ----
  	(zero_extend:DI (match_operand:QI 1 "nonimmediate_operand" "0,r,q")))]
    ""
    "@
!    {and\t%0,0xff|%0 &= 0xff}
!    *return bpf_output_move (operands, \"{mov\t%0,%1\;and\t%0,0xff|%0 = %1;%0 &= 0xff}\");
!    *return bpf_output_move (operands, \"{ldxb\t%0,%1|%0 = *(u8 *) (%1)}\");"
    [(set_attr "type" "alu,alu,ldx")])
  
  (define_insn "zero_extendsidi2"
***************
*** 266,273 ****
  	  (match_operand:SI 1 "nonimmediate_operand" "r,q")))]
    ""
    "@
!    * return bpf_has_alu32 ? \"mov32\t%0,%1\" : \"mov\t%0,%1\;and\t%0,0xffffffff\";
!    ldxw\t%0,%1"
    [(set_attr "type" "alu,ldx")])
  
  ;;; Sign-extension
--- 301,308 ----
  	  (match_operand:SI 1 "nonimmediate_operand" "r,q")))]
    ""
    "@
!    *return bpf_output_move (operands, bpf_has_alu32 ? \"{mov32\t%0,%1|%0 = %1}\" : \"{mov\t%0,%1\;and\t%0,0xffffffff|%0 = %1;%0 &= 0xffffffff}\");
!    *return bpf_output_move (operands, \"{ldxw\t%0,%1|%0 = *(u32 *) (%1)}\");"
    [(set_attr "type" "alu,ldx")])
  
  ;;; Sign-extension
***************
*** 286,291 ****
--- 321,369 ----
    DONE;
  })
  
+ ;; ISA V4 introduces sign-extending move and load operations.
+ 
+ (define_insn "*extendsidi2"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "r,q")))]
+   "bpf_has_smov"
+   "@
+    *return bpf_output_move (operands, \"{movs\t%0,%1,32|%0 = (s32) %1}\");
+    *return bpf_output_move (operands, \"{ldxsw\t%0,%1|%0 = *(s32 *) (%1)}\");"
+   [(set_attr "type" "alu,ldx")])
+ 
+ (define_insn "extendhidi2"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (sign_extend:DI (match_operand:HI 1 "nonimmediate_operand" "r,q")))]
+   "bpf_has_smov"
+   "@
+    *return bpf_output_move (operands, \"{movs\t%0,%1,16|%0 = (s16) %1}\");
+    *return bpf_output_move (operands, \"{ldxsh\t%0,%1|%0 = *(s16 *) (%1)}\");"
+   [(set_attr "type" "alu,ldx")])
+ 
+ (define_insn "extendqidi2"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (sign_extend:DI (match_operand:QI 1 "nonimmediate_operand" "r,q")))]
+   "bpf_has_smov"
+   "@
+    *return bpf_output_move (operands, \"{movs\t%0,%1,8|%0 = (s8) %1}\");
+    *return bpf_output_move (operands, \"{ldxsb\t%0,%1|%0 = *(s8 *) (%1)}\");"
+   [(set_attr "type" "alu,ldx")])
+ 
+ (define_insn "extendhisi2"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+         (sign_extend:SI (match_operand:HI 1 "register_operand" "r")))]
+   "bpf_has_smov"
+   "*return bpf_output_move (operands, \"{movs32\t%0,%1,16|%w0 = (s16) %w1}\");"
+   [(set_attr "type" "alu")])
+ 
+ (define_insn "extendqisi2"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+         (sign_extend:SI (match_operand:QI 1 "register_operand" "r")))]
+   "bpf_has_smov"
+   "*return bpf_output_move (operands, \"{movs32\t%0,%1,8|%w0 = (s8) %w1}\");"
+   [(set_attr "type" "alu")])
+ 
  ;;;; Data movement
  
  (define_mode_iterator MM [QI HI SI DI SF DF])
***************
*** 302,316 ****
  }")
  
  (define_insn "*mov<MM:mode>"
!   [(set (match_operand:MM 0 "nonimmediate_operand" "=r, r,r,q,q")
!         (match_operand:MM 1 "mov_src_operand"      " q,rI,B,r,I"))]
    ""
    "@
!    ldx<mop>\t%0,%1
!    mov\t%0,%1
!    lddw\t%0,%1
!    stx<mop>\t%0,%1
!    st<mop>\t%0,%1"
  [(set_attr "type" "ldx,alu,alu,stx,st")])
  
  ;;;; Shifts
--- 380,394 ----
  }")
  
  (define_insn "*mov<MM:mode>"
!   [(set (match_operand:MM 0 "nonimmediate_operand" "=r,  r, r,q,q")
!         (match_operand:MM 1 "mov_src_operand"      " q,rIc,BC,r,I"))]
    ""
    "@
!    *return bpf_output_move (operands, \"{ldx<mop>\t%0,%1|%0 = *(<smop> *) (%1)}\");
!    *return bpf_output_move (operands, \"{mov\t%0,%1|%0 = %1}\");
!    *return bpf_output_move (operands, \"{lddw\t%0,%1|%0 = %1 ll}\");
!    *return bpf_output_move (operands, \"{stx<mop>\t%0,%1|*(<smop> *) (%0) = %1}\");
!    *return bpf_output_move (operands, \"{st<mop>\t%0,%1|*(<smop> *) (%0) = %1}\");"
  [(set_attr "type" "ldx,alu,alu,stx,st")])
  
  ;;;; Shifts
***************
*** 322,328 ****
          (ashiftrt:SIM (match_operand:SIM 1 "register_operand"   " 0,0")
                        (match_operand:SIM 2 "reg_or_imm_operand" " r,I")))]
    ""
!   "arsh<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  (define_insn "ashl<SIM:mode>3"
--- 400,406 ----
          (ashiftrt:SIM (match_operand:SIM 1 "register_operand"   " 0,0")
                        (match_operand:SIM 2 "reg_or_imm_operand" " r,I")))]
    ""
!   "{arsh<msuffix>\t%0,%2|%w0 s>>= %w2}"
    [(set_attr "type" "<mtype>")])
  
  (define_insn "ashl<SIM:mode>3"
***************
*** 330,336 ****
          (ashift:SIM (match_operand:SIM 1 "register_operand"   " 0,0")
                      (match_operand:SIM 2 "reg_or_imm_operand" " r,I")))]
    ""
!   "lsh<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
  (define_insn "lshr<SIM:mode>3"
--- 408,414 ----
          (ashift:SIM (match_operand:SIM 1 "register_operand"   " 0,0")
                      (match_operand:SIM 2 "reg_or_imm_operand" " r,I")))]
    ""
!   "{lsh<msuffix>\t%0,%2|%w0 <<= %w2}"
    [(set_attr "type" "<mtype>")])
  
  (define_insn "lshr<SIM:mode>3"
***************
*** 338,360 ****
          (lshiftrt:SIM (match_operand:SIM 1 "register_operand"   " 0,0")
                        (match_operand:SIM 2 "reg_or_imm_operand" " r,I")))]
    ""
!   "rsh<msuffix>\t%0,%2"
    [(set_attr "type" "<mtype>")])
  
! ;;;; Endianness conversion
  
  (define_mode_iterator BSM [HI SI DI])
  (define_mode_attr endmode [(HI "16") (SI "32") (DI "64")])
  
  (define_insn "bswap<BSM:mode>2"
    [(set (match_operand:BSM 0 "register_operand"            "=r")
!         (bswap:BSM (match_operand:BSM 1 "register_operand" " r")))]
    ""
  {
!   if (TARGET_BIG_ENDIAN)
!     return "endle\t%0, <endmode>";
    else
!     return "endbe\t%0, <endmode>";
  }
    [(set_attr "type" "end")])
  
--- 416,443 ----
          (lshiftrt:SIM (match_operand:SIM 1 "register_operand"   " 0,0")
                        (match_operand:SIM 2 "reg_or_imm_operand" " r,I")))]
    ""
!   "{rsh<msuffix>\t%0,%2|%w0 >>= %w2}"
    [(set_attr "type" "<mtype>")])
  
! ;;;; Byte swapping
  
  (define_mode_iterator BSM [HI SI DI])
  (define_mode_attr endmode [(HI "16") (SI "32") (DI "64")])
  
  (define_insn "bswap<BSM:mode>2"
    [(set (match_operand:BSM 0 "register_operand"            "=r")
!         (bswap:BSM (match_operand:BSM 1 "register_operand" " 0")))]
    ""
  {
!   if (bpf_has_bswap)
!     return "{bswap\t%0, <endmode>|%0 = bswap<endmode> %1}";
    else
!     {
!       if (TARGET_BIG_ENDIAN)
!         return "{endle\t%0, <endmode>|%0 = le<endmode> %1}";
!       else
!         return "{endbe\t%0, <endmode>|%0 = be<endmode> %1}";
!     }
  }
    [(set_attr "type" "end")])
  
***************
*** 393,408 ****
  
    switch (code)
    {
!   case EQ: return "jeq<msuffix>\t%0,%1,%2"; break;
!   case NE: return "jne<msuffix>\t%0,%1,%2"; break;
!   case LT: return "jslt<msuffix>\t%0,%1,%2"; break;
!   case LE: return "jsle<msuffix>\t%0,%1,%2"; break;
!   case GT: return "jsgt<msuffix>\t%0,%1,%2"; break;
!   case GE: return "jsge<msuffix>\t%0,%1,%2"; break;
!   case LTU: return "jlt<msuffix>\t%0,%1,%2"; break;
!   case LEU: return "jle<msuffix>\t%0,%1,%2"; break;
!   case GTU: return "jgt<msuffix>\t%0,%1,%2"; break;
!   case GEU: return "jge<msuffix>\t%0,%1,%2"; break;
    default:
      gcc_unreachable ();
      return "";
--- 476,491 ----
  
    switch (code)
    {
!   case EQ: return  "{jeq<msuffix>\t%0,%1,%2|if %w0 == %w1 goto %2}"; break;
!   case NE: return  "{jne<msuffix>\t%0,%1,%2|if %w0 != %w1 goto %2}"; break;
!   case LT: return  "{jslt<msuffix>\t%0,%1,%2|if %w0 s< %w1 goto %2}"; break;
!   case LE: return  "{jsle<msuffix>\t%0,%1,%2|if %w0 s<= %w1 goto %2}"; break;
!   case GT: return  "{jsgt<msuffix>\t%0,%1,%2|if %w0 s> %w1 goto %2}"; break;
!   case GE: return  "{jsge<msuffix>\t%0,%1,%2|if %w0 s>= %w1 goto %2}"; break;
!   case LTU: return "{jlt<msuffix>\t%0,%1,%2|if %w0 < %w1 goto %2}"; break;
!   case LEU: return "{jle<msuffix>\t%0,%1,%2|if %w0 <= %w1 goto %2}"; break;
!   case GTU: return "{jgt<msuffix>\t%0,%1,%2|if %w0 > %w1 goto %2}"; break;
!   case GEU: return "{jge<msuffix>\t%0,%1,%2|if %w0 >= %w1 goto %2}"; break;
    default:
      gcc_unreachable ();
      return "";
***************
*** 416,422 ****
    [(set (pc)
          (label_ref (match_operand 0 "" "")))]
    ""
!   "ja\t%0"
  [(set_attr "type" "jmp")])
  
  ;;;; Function prologue/epilogue
--- 499,505 ----
    [(set (pc)
          (label_ref (match_operand 0 "" "")))]
    ""
!   "{ja\t%0|goto %0}"
  [(set_attr "type" "jmp")])
  
  ;;;; Function prologue/epilogue
***************
*** 495,507 ****
    ;; operands[2] is next_arg_register
    ;; operands[3] is struct_value_size_rtx.
    ""
!   "ja\t%0"
    [(set_attr "type" "jmp")])
  
  ;;;; Non-generic load instructions
  
  (define_mode_iterator LDM [QI HI SI DI])
  (define_mode_attr ldop [(QI "b") (HI "h") (SI "w") (DI "dw")])
  
  (define_insn "ldind<ldop>"
    [(set (reg:LDM R0_REGNUM)
--- 578,591 ----
    ;; operands[2] is next_arg_register
    ;; operands[3] is struct_value_size_rtx.
    ""
!   "{ja\t%0|goto %0}"
    [(set_attr "type" "jmp")])
  
  ;;;; Non-generic load instructions
  
  (define_mode_iterator LDM [QI HI SI DI])
  (define_mode_attr ldop [(QI "b") (HI "h") (SI "w") (DI "dw")])
+ (define_mode_attr pldop [(QI "u8") (HI "u16") (SI "u32") (DI "u64")])
  
  (define_insn "ldind<ldop>"
    [(set (reg:LDM R0_REGNUM)
***************
*** 513,519 ****
     (clobber (reg:DI R3_REGNUM))
     (clobber (reg:DI R4_REGNUM))]
    ""
!   "ldind<ldop>\t%0,%1"
    [(set_attr "type" "ld")])
  
  (define_insn "ldabs<ldop>"
--- 597,603 ----
     (clobber (reg:DI R3_REGNUM))
     (clobber (reg:DI R4_REGNUM))]
    ""
!   "{ldind<ldop>\t%0,%1|r0 = *(<pldop> *) skb[%0 + %1]}"
    [(set_attr "type" "ld")])
  
  (define_insn "ldabs<ldop>"
***************
*** 526,545 ****
     (clobber (reg:DI R3_REGNUM))
     (clobber (reg:DI R4_REGNUM))]
    ""
!   "ldabs<ldop>\t%0"
    [(set_attr "type" "ld")])
  
! ;;;; Atomic increments
  
! (define_mode_iterator AMO [SI DI])
  
! (define_insn "atomic_add<AMO:mode>"
!   [(set (match_operand:AMO 0 "memory_operand" "+m")
!         (unspec_volatile:AMO
!          [(plus:AMO (match_dup 0)
!                     (match_operand:AMO 1 "register_operand" "r"))
!           (match_operand:SI 2 "const_int_operand")] ;; Memory model.
!          UNSPEC_XADD))]
!   ""
!   "xadd<mop>\t%0,%1"
!   [(set_attr "type" "xadd")])
--- 610,669 ----
     (clobber (reg:DI R3_REGNUM))
     (clobber (reg:DI R4_REGNUM))]
    ""
!   "{ldabs<ldop>\t%0|r0 = *(<pldop> *) skb[%0]}"
    [(set_attr "type" "ld")])
  
! ;;; memmove and memcopy
  
! ;; 0 is dst
! ;; 1 is src
! ;; 2 is size of copy in bytes
! ;; 3 is alignment
  
! (define_expand "cpymemdi"
!   [(match_operand:BLK 0 "memory_operand")
!    (match_operand:BLK 1 "memory_operand")
!    (match_operand:DI 2 "general_operand")
!    (match_operand:DI 3 "immediate_operand")]
!    ""
! {
!   if (bpf_expand_cpymem (operands, false))
!     DONE;
!   FAIL;
! })
! 
! ;; 0 is dst
! ;; 1 is src
! ;; 2 is size of copy in bytes
! ;; 3 is alignment
! 
! (define_expand "movmemdi"
!   [(match_operand:BLK 0 "memory_operand")
!    (match_operand:BLK 1 "memory_operand")
!    (match_operand:DI 2 "general_operand")
!    (match_operand:DI 3 "immediate_operand")]
!    ""
! {
!   if (bpf_expand_cpymem (operands, true))
!     DONE;
!   FAIL;
! })
! 
! ;; memset
! ;; 0 is dst
! ;; 1 is length
! ;; 2 is value
! ;; 3 is alignment
! (define_expand "setmemdi"
!   [(set (match_operand:BLK 0 "memory_operand")
! 	(match_operand:QI  2 "nonmemory_operand"))
!    (use (match_operand:DI  1 "general_operand"))
!    (match_operand 3 "immediate_operand")]
!  ""
!  {
!   if (bpf_expand_setmem (operands))
!     DONE;
!   FAIL;
! })
! 
! (include "atomic.md")
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf.opt gcc-14.1.0/gcc/config/bpf/bpf.opt
*** gcc-13.2.0/gcc/config/bpf/bpf.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/bpf.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the eBPF compiler port.
  
! ; Copyright (C) 2019-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the eBPF compiler port.
  
! ; Copyright (C) 2019-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
***************
*** 21,113 ****
  HeaderInclude
  config/bpf/bpf-opts.h
  
- ; Selecting the kind of kernel the eBPF will be running on.
- 
- mkernel=
- Target RejectNegative Joined Var(bpf_kernel) Enum(bpf_kernel) Init(LINUX_LATEST)
- Generate eBPF for the given Linux kernel version.
- 
- Enum
- Name(bpf_kernel) Type(enum bpf_kernel_version)
- 
- EnumValue
- Enum(bpf_kernel) String(native) Value(LINUX_NATIVE) DriverOnly
- 
- EnumValue
- Enum(bpf_kernel) String(latest) Value(LINUX_LATEST) DriverOnly
- 
- EnumValue
- Enum(bpf_kernel) String(4.0) Value(LINUX_V4_0)
- 
- EnumValue
- Enum(bpf_kernel) String(4.1) Value(LINUX_V4_1)
- 
- EnumValue
- Enum(bpf_kernel) String(4.2) Value(LINUX_V4_2)
- 
- EnumValue
- Enum(bpf_kernel) String(4.3) Value(LINUX_V4_3)
- 
- EnumValue
- Enum(bpf_kernel) String(4.4) Value(LINUX_V4_4)
- 
- EnumValue
- Enum(bpf_kernel) String(4.5) Value(LINUX_V4_5)
- 
- EnumValue
- Enum(bpf_kernel) String(4.6) Value(LINUX_V4_6)
- 
- EnumValue
- Enum(bpf_kernel) String(4.7) Value(LINUX_V4_7)
- 
- EnumValue
- Enum(bpf_kernel) String(4.8) Value(LINUX_V4_8)
- 
- EnumValue
- Enum(bpf_kernel) String(4.9) Value(LINUX_V4_9)
- 
- EnumValue
- Enum(bpf_kernel) String(4.10) Value(LINUX_V4_10)
- 
- EnumValue
- Enum(bpf_kernel) String(4.11) Value(LINUX_V4_11)
- 
- EnumValue
- Enum(bpf_kernel) String(4.12) Value(LINUX_V4_12)
- 
- EnumValue
- Enum(bpf_kernel) String(4.13) Value(LINUX_V4_13)
- 
- EnumValue
- Enum(bpf_kernel) String(4.14) Value(LINUX_V4_14)
- 
- EnumValue
- Enum(bpf_kernel) String(4.15) Value(LINUX_V4_15)
- 
- EnumValue
- Enum(bpf_kernel) String(4.16) Value(LINUX_V4_16)
- 
- EnumValue
- Enum(bpf_kernel) String(4.17) Value(LINUX_V4_17)
- 
- EnumValue
- Enum(bpf_kernel) String(4.18) Value(LINUX_V4_18)
- 
- EnumValue
- Enum(bpf_kernel) String(4.19) Value(LINUX_V4_19)
- 
- EnumValue
- Enum(bpf_kernel) String(4.20) Value(LINUX_V4_20)
- 
- EnumValue
- Enum(bpf_kernel) String(5.0) Value(LINUX_V5_0)
- 
- EnumValue
- Enum(bpf_kernel) String(5.1) Value(LINUX_V5_1)
- 
- EnumValue
- Enum(bpf_kernel) String(5.2) Value(LINUX_V5_2)
- 
  ; Use xBPF extensions.
  
  mxbpf
--- 21,26 ----
*************** Target RejectNegative InverseMask(BIG_EN
*** 125,131 ****
  Generate little-endian eBPF.
  
  mframe-limit=
! Target Joined RejectNegative UInteger IntegerRange(0, 32767) Var(bpf_frame_limit) Init(512)
  Set a hard limit for the size of each stack frame, in bytes.
  
  mco-re
--- 38,44 ----
  Generate little-endian eBPF.
  
  mframe-limit=
! Target Joined RejectNegative UInteger IntegerRange(0, 32767) Var(bpf_frame_limit) Init(32767)
  Set a hard limit for the size of each stack frame, in bytes.
  
  mco-re
*************** mjmp32
*** 146,156 ****
  Target Var(bpf_has_jmp32) Init(-1)
  Enable 32-bit jump instructions.
  
  mcpu=
! Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V3)
  
  Enum
  Name(bpf_isa) Type(enum bpf_isa_version)
  
  EnumValue
  Enum(bpf_isa) String(v1) Value(ISA_V1)
--- 59,87 ----
  Target Var(bpf_has_jmp32) Init(-1)
  Enable 32-bit jump instructions.
  
+ mv3-atomics
+ Target Var(bpf_has_v3_atomics) Init(-1)
+ Enable general atomic operations introduced in v3 ISA.
+ 
+ mbswap
+ Target Var(bpf_has_bswap) Init(-1)
+ Enable byte swap instructions.
+ 
+ msdiv
+ Target Var(bpf_has_sdiv) Init(-1)
+ Enable signed division and modulus instructions.
+ 
+ msmov
+ Target Var(bpf_has_smov) Init(-1)
+ Enable signed move and memory load instructions.
+ 
  mcpu=
! Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V4)
! Select the eBPF ISA version to target in code generation.
  
  Enum
  Name(bpf_isa) Type(enum bpf_isa_version)
+ Valid ISA versions (for use with the -mcpu= option)
  
  EnumValue
  Enum(bpf_isa) String(v1) Value(ISA_V1)
*************** Enum(bpf_isa) String(v2) Value(ISA_V2)
*** 160,162 ****
--- 91,114 ----
  
  EnumValue
  Enum(bpf_isa) String(v3) Value(ISA_V3)
+ 
+ EnumValue
+ Enum(bpf_isa) String(v4) Value(ISA_V4)
+ 
+ masm=
+ Target RejectNegative Joined Var(asm_dialect) Enum(asm_dialect) Init(ASM_PSEUDOC)
+ Use given assembler dialect.
+ 
+ Enum
+ Name(asm_dialect) Type(enum bpf_asm_dialect)
+ Known assembler dialects (for use with the -masm= option)
+ 
+ EnumValue
+ Enum(asm_dialect) String(normal) Value(ASM_NORMAL)
+ 
+ EnumValue
+ Enum(asm_dialect) String(pseudoc) Value(ASM_PSEUDOC)
+ 
+ minline-memops-threshold=
+ Target RejectNegative Joined UInteger Var(bpf_inline_memops_threshold) Init(1024)
+ -minline-memops-threshold=<number> Maximum size of memset/memmove/memcpy to inline, larger sizes will use a library call.
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/bpf.opt.urls gcc-14.1.0/gcc/config/bpf/bpf.opt.urls
*** gcc-13.2.0/gcc/config/bpf/bpf.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/bpf/bpf.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,35 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/bpf/bpf.opt and generated HTML
+ 
+ mbig-endian
+ UrlSuffix(gcc/eBPF-Options.html#index-mbig-endian-5)
+ 
+ mlittle-endian
+ UrlSuffix(gcc/eBPF-Options.html#index-mlittle-endian-5)
+ 
+ mco-re
+ UrlSuffix(gcc/eBPF-Options.html#index-mco-re)
+ 
+ mjmpext
+ UrlSuffix(gcc/eBPF-Options.html#index-mjmpext)
+ 
+ malu32
+ UrlSuffix(gcc/eBPF-Options.html#index-malu32)
+ 
+ mjmp32
+ UrlSuffix(gcc/eBPF-Options.html#index-mjmp32)
+ 
+ mv3-atomics
+ UrlSuffix(gcc/eBPF-Options.html#index-mv3-atomics)
+ 
+ mbswap
+ UrlSuffix(gcc/eBPF-Options.html#index-mbswap)
+ 
+ msdiv
+ UrlSuffix(gcc/eBPF-Options.html#index-msdiv)
+ 
+ msmov
+ UrlSuffix(gcc/eBPF-Options.html#index-msmov)
+ 
+ mcpu=
+ UrlSuffix(gcc/eBPF-Options.html#index-mcpu-5)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/btfext-out.cc gcc-14.1.0/gcc/config/bpf/btfext-out.cc
*** gcc-13.2.0/gcc/config/bpf/btfext-out.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/bpf/btfext-out.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,618 ----
+ /* BPF Compile Once - Run Everywhere (CO-RE) support.
+    Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #define IN_TARGET_CODE 1
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+ #include "memmodel.h"
+ #include "tm_p.h"
+ #include "output.h"
+ #include "dwarf2asm.h"
+ #include "ctfc.h"
+ #include "btf.h"
+ #include "rtl.h"
+ #include "tree-pretty-print.h"
+ #include "cgraph.h"
+ 
+ #include "btfext-out.h"
+ 
+ /* This file contains data structures and routines for construction and output
+    of BPF Compile Once - Run Everywhere (BPF CO-RE) information.
+ 
+    eBPF programs written in C usually include Linux kernel headers, so that
+    they may interact with kernel data structures in a useful way. This
+    intrudces two major portability issues:
+ 
+    1. Kernel data structures regularly change, with fields added, moved or
+       deleted between versions. An eBPF program cannot in general be expected
+       to run on any systems which does not share an identical kernel version to
+       the system on which it was compiled.
+ 
+    2. Included kernel headers (and used data structures) may be internal, not
+       exposed in an userspace API, and therefore target-specific. An eBPF
+       program compiled on an x86_64 machine will include x86_64 kernel headers.
+       The resulting program may not run well (or at all) in machines of
+       another architecture.
+ 
+    BPF CO-RE is designed to solve the first issue by leveraging the BPF loader
+    to adjust references to kernel data structures made by the program as-needed
+    according to versions of structures actually present on the host kernel.
+ 
+    To achieve this, additional information is placed in a ".BTF.ext" section.
+    This information tells the loader which references will require adjusting,
+    and how to perform each necessary adjustment.
+ 
+    For any access to a data structure which may require load-time adjustment,
+    the following information is recorded (making up a CO-RE relocation record):
+    - The BTF type ID of the outermost structure which is accessed.
+    - An access string encoding the accessed member via a series of member and
+      array indexes. These indexes are used to look up detailed BTF information
+      about the member.
+    - The offset of the appropriate instruction to patch in the BPF program.
+    - An integer specifying what kind of relocation to perform.
+ 
+    A CO-RE-capable BPF loader reads this information together with the BTF
+    information of the program, compares it against BTF information of the host
+    kernel, and determines the appropriate way to patch the specified
+    instruction.
+ 
+    Once all CO-RE relocations are resolved, the program is loaded and verified
+    as usual. The process can be summarized with the following diagram:
+ 
+               +------------+
+               | C compiler |
+               +-----+------+
+                     | BPF + BTF + CO-RE relocations
+                     v
+               +------------+
+          +--->| BPF loader |
+          |    +-----+------+
+          |          | BPF (adapted)
+      BTF |          v
+          |    +------------+
+          +----+   Kernel   |
+               +------------+
+ 
+    Note that a single ELF object may contain multiple eBPF programs. As a
+    result, a single .BTF.ext section can contain CO-RE relocations for multiple
+    programs in distinct sections.  */
+ 
+ /* BTF.ext debug info section.  */
+ static GTY (()) section * btf_ext_info_section;
+ 
+ #ifndef BTF_EXT_INFO_SECTION_NAME
+ #define BTF_EXT_INFO_SECTION_NAME ".BTF.ext"
+ #endif
+ #define BTF_EXT_INFO_SECTION_FLAGS (SECTION_DEBUG)
+ 
+ #ifndef BTF_EXT_INFO_SECTION_LABEL
+ #define BTF_EXT_INFO_SECTION_LABEL "Lbtfext"
+ #endif
+ 
+ #define MAX_BTF_EXT_LABEL_BYTES 40
+ static char btf_ext_info_section_label[MAX_BTF_EXT_LABEL_BYTES];
+ 
+ /* A funcinfo record, in the .BTF.ext funcinfo section.  */
+ struct GTY ((chain_next ("%h.next"))) btf_ext_funcinfo
+ {
+   uint32_t type;     /* Type ID of a BTF_KIND_FUNC type.  */
+   const char *fnname;
+   const char *label;
+ 
+   struct btf_ext_funcinfo *next; /* Linked list to collect func_info elems.  */
+ };
+ 
+ /* A lineinfo record, in the .BTF.ext lineinfo section.  */
+ struct GTY ((chain_next ("%h.next"))) btf_ext_lineinfo
+ {
+   uint32_t insn_off;      /* Offset of the instruction.  */
+   uint32_t file_name_off; /* Offset of file name in BTF string table.  */
+   uint32_t line_off;      /* Offset of source line in BTF string table.  */
+   uint32_t line_col;      /* Line number (bits 31-11) and column (11-0).  */
+ 
+   struct btf_ext_lineinfo *next; /* Linked list to collect line_info elems.  */
+ };
+ 
+ /* Internal representation of a BPF CO-RE relocation record.  */
+ struct GTY ((chain_next ("%h.next"))) btf_ext_core_reloc {
+   unsigned int bpfcr_type;		/* BTF type ID of container.  */
+   unsigned int  bpfcr_astr_off;		/* Offset of access string in .BTF
+ 					   string table.  */
+   rtx_code_label * bpfcr_insn_label;	/* RTX label attached to instruction
+ 					   to patch.  */
+   enum btf_core_reloc_kind bpfcr_kind;	/* Kind of relocation to perform.  */
+ 
+   struct {
+     const char *accessor_str;
+     tree type;
+   } info;
+ 
+   struct btf_ext_core_reloc *next;
+ };
+ 
+ /* Main data structure to keep .BTF.ext section data.  */
+ struct GTY ((chain_next ("%h.next"))) btf_ext_info_sec {
+   const char *sec_name;
+   uint32_t   sec_name_off; /* offset to section name.  */
+ 
+   struct {
+     uint32_t num_info;
+     struct btf_ext_funcinfo *head;
+   } func_info;
+   struct {
+     uint32_t num_info;
+     struct btf_ext_lineinfo *head;
+   } line_info;
+   struct {
+     uint32_t num_info;
+     struct btf_ext_core_reloc *head;
+   } core_info;
+ 
+   struct btf_ext_info_sec *next;
+ };
+ 
+ static GTY (()) struct btf_ext_info_sec *btf_ext = NULL;
+ 
+ /* Helper function to add a section structure to the linked list with entry
+    point in info static variable.  */
+ 
+ static struct btf_ext_info_sec *
+ btfext_info_sec_find_or_add (const char *sec_name, bool add)
+ {
+   struct btf_ext_info_sec **tmp = &btf_ext;
+ 
+   while (*tmp != NULL)
+     {
+       if (strcmp ((*tmp)->sec_name, sec_name) == 0)
+ 	return *tmp;
+       tmp = &((*tmp)->next);
+     }
+ 
+   if (add == false)
+     return NULL;
+ 
+   struct btf_ext_info_sec *ret = ggc_cleared_alloc<struct btf_ext_info_sec> ();
+   *tmp = ret;
+ 
+   /* Set data for section info.  */
+   ret->sec_name = sec_name;
+   ret->sec_name_off = btf_ext_add_string (sec_name);
+ 
+   return ret;
+ }
+ 
+ #define SEARCH_NODE_AND_RETURN(TYPE, FIELD, CONDITION) __extension__ ({ \
+   TYPE **head = &(FIELD); \
+   while (*head != NULL) \
+     { \
+       if (CONDITION) \
+ 	return (*head); \
+       head = &((*head)->next); \
+     } \
+   head; \
+ })
+ 
+ /* Function to create or find a funcinfo node in info.  */
+ 
+ static struct btf_ext_funcinfo *
+ bpf_create_or_find_funcinfo (const char *fnname, const char *sec_name,
+ 			     btf_ext_info_sec **in_sec = NULL)
+ {
+   struct btf_ext_info_sec *sec_elem =
+     btfext_info_sec_find_or_add (sec_name, true);
+ 
+   if (in_sec != NULL)
+     *in_sec = sec_elem;
+ 
+   struct btf_ext_funcinfo **head =
+     SEARCH_NODE_AND_RETURN(struct btf_ext_funcinfo,
+ 			   sec_elem->func_info.head,
+ 			   strcmp ((*head)->fnname, fnname) == 0);
+ 
+   *head = ggc_cleared_alloc<struct btf_ext_funcinfo> ();
+   (*head)->fnname = fnname;
+   (*head)->label = NULL;
+ 
+   return *head;
+ }
+ 
+ /* Function to create a core_reloc node in info.  */
+ 
+ static struct btf_ext_core_reloc *
+ bpf_create_core_reloc (const char *sec_name,
+ 		       struct btf_ext_info_sec **in_sec = NULL)
+ {
+   struct btf_ext_info_sec *sec_elem =
+     btfext_info_sec_find_or_add (sec_name, true);
+ 
+   if (in_sec != NULL)
+     *in_sec = sec_elem;
+ 
+   struct btf_ext_core_reloc **head =
+     SEARCH_NODE_AND_RETURN(struct btf_ext_core_reloc,
+ 			   sec_elem->core_info.head,
+ 			   false);
+ 
+   *head = ggc_cleared_alloc<struct btf_ext_core_reloc> ();
+ 
+   return *head;
+ }
+ 
+ /* String caching to avoid repeated strings added to BTF string table.  */
+ struct GTY((chain_next ("%h.next"))) string_cache {
+   const char *str;
+   unsigned int offset;
+   struct string_cache *next;
+ };
+ static GTY(()) struct string_cache *btf_ext_strings = NULL;
+ 
+ unsigned int
+ btf_ext_add_string (const char *str)
+ {
+   ctf_container_ref ctfc = ctf_get_tu_ctfc ();
+   struct string_cache **tmp = &btf_ext_strings;
+   while (*tmp != NULL)
+     {
+       if (strcmp ((*tmp)->str, str) == 0)
+ 	return (*tmp)->offset;
+       tmp = &((*tmp)->next);
+     }
+ 
+   *tmp = ggc_cleared_alloc<struct string_cache> ();
+   (*tmp)->str = ggc_strdup (str);
+   ctf_add_string (ctfc, (*tmp)->str, &((*tmp)->offset), CTF_AUX_STRTAB);
+ 
+   return (*tmp)->offset;
+ }
+ 
+ /* Create a new BPF CO-RE relocation record, and add it to the appropriate
+    CO-RE section.  */
+ void
+ bpf_core_reloc_add (const tree type, const char * section_name,
+ 		    const char *accessor,
+ 		    rtx_code_label *label,
+ 		    enum btf_core_reloc_kind kind)
+ {
+   struct btf_ext_info_sec *sec = NULL;
+   struct btf_ext_core_reloc *bpfcr = bpf_create_core_reloc (section_name, &sec);
+ 
+   ctf_container_ref ctfc = ctf_get_tu_ctfc ();
+ 
+   /* Buffer the access string in the auxiliary strtab.  */
+   bpfcr->bpfcr_astr_off = 0;
+   gcc_assert (accessor != NULL);
+   bpfcr->bpfcr_astr_off = btf_ext_add_string (accessor);
+ 
+   bpfcr->bpfcr_type = get_btf_id (ctf_lookup_tree_type (ctfc, type));
+   bpfcr->bpfcr_insn_label = label;
+   bpfcr->bpfcr_kind = kind;
+ 
+   bpfcr->info.accessor_str = accessor;
+   bpfcr->info.type = type;
+ 
+   sec->core_info.num_info += 1;
+ }
+ 
+ /* Return the 0-based index of the field NODE in its containing struct or union
+    type.  */
+ 
+ int
+ bpf_core_get_sou_member_index (ctf_container_ref ctfc, const tree node)
+ {
+   if (TREE_CODE (node) == FIELD_DECL)
+     {
+       const tree container = DECL_CONTEXT (node);
+ 
+       /* Lookup the CTF type info for the containing type.  */
+       dw_die_ref die = lookup_type_die (container);
+       if (die == NULL)
+         return -1;
+ 
+       ctf_dtdef_ref dtd = ctf_dtd_lookup (ctfc, die);
+       if (dtd == NULL)
+         return -1;
+ 
+       unsigned int kind = CTF_V2_INFO_KIND (dtd->dtd_data.ctti_info);
+       if (kind != CTF_K_STRUCT && kind != CTF_K_UNION)
+         return -1;
+ 
+       tree field = TYPE_FIELDS (container);
+       int i = 0;
+       ctf_dmdef_t * dmd;
+       for (dmd = dtd->dtd_u.dtu_members;
+            dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
+         {
+ 	  bool field_has_btf = get_btf_id (dmd->dmd_type) <= BTF_MAX_TYPE;
+ 
+ 	  if (field == node)
+ 	    return field_has_btf ? i : -1;
+ 
+ 	  if (field_has_btf)
+ 	    i++;
+ 
+ 	  field = DECL_CHAIN (field);
+         }
+     }
+   return -1;
+ }
+ 
+ /* Helper function to check if a particular named function exists as a
+    BTF_KIND_FUNC type record.  */
+ 
+ static bool
+ btf_funcinfo_type_callback (ctf_dtdef_ref func, void *data)
+ {
+   struct btf_ext_funcinfo *info = (struct btf_ext_funcinfo *) data;
+   if (strcmp (func->dtd_name, info->fnname) == 0)
+     {
+       uint32_t type = func->dtd_type;
+       info->type = type;
+       return true;
+     }
+   return false;
+ }
+ 
+ /* Entry point function to add a func_info  in local data structures
+    represented by info static variable.
+    This function is used in bpf.cc.  */
+ 
+ struct btf_ext_funcinfo *
+ btf_add_func_info_for (tree decl, const char *label)
+ {
+   const char *fnname = IDENTIFIER_POINTER (DECL_NAME (decl));
+   const char *sec_name = decl_section_name (decl);
+ 
+   /* Recover the original function name, which may have been mangled by
+      optimizations.  */
+   const char *cp_ptr = strstr (fnname, ".");
+   if (cp_ptr != NULL)
+     {
+       char new_name[100];
+       strcpy (new_name, fnname);
+       int pos = cp_ptr - fnname;
+       new_name[pos] = 0;
+       fnname = ggc_strdup (new_name);
+     }
+ 
+   if (sec_name == NULL)
+     sec_name = ".text";
+ 
+   struct btf_ext_info_sec *sec = NULL;
+   struct btf_ext_funcinfo *info =
+     bpf_create_or_find_funcinfo (fnname, sec_name, &sec);
+ 
+   info->label = label;
+   return info;
+ }
+ 
+ /* This function traverses all func_info entries and verified they do have a
+    BTF_KIND_FUNC type record associated.  If they do not it is marked as
+    invalided by clearing the associated label.  */
+ 
+ static void
+ btf_validate_funcinfo (btf_ext_info_sec *sec)
+ {
+   while (sec != NULL)
+     {
+       struct btf_ext_funcinfo *funcinfo = sec->func_info.head;
+       while (funcinfo != NULL)
+ 	{
+ 	  bool found = traverse_btf_func_types (btf_funcinfo_type_callback,
+ 						funcinfo);
+ 	  if (found == true)
+ 	    sec->func_info.num_info += 1;
+ 	  else
+ 	    funcinfo->label = NULL;
+ 
+ 	  funcinfo = funcinfo->next;
+ 	}
+       sec = sec->next;
+     }
+ }
+ 
+ /* Compute the section size in section for func_info, line_info and core_info
+    regions of .BTF.ext.  */
+ 
+ static void
+ btf_ext_info_len (uint32_t *fi_len, uint32_t *li_len, uint32_t *cr_len)
+ {
+   *fi_len = *li_len = *cr_len = 0;
+   struct btf_ext_info_sec *tmp = btf_ext;
+   if (tmp != NULL)
+   while (tmp != NULL)
+     {
+       /* Size computation does 8 bytes per section entry plus num_info of the
+        * respective structure size:
+ 	  - 8 bytes for func_info,
+ 	  - 16 bytes for both line_info and core_info.  */
+       if (tmp->func_info.num_info > 0)
+ 	*fi_len +=  8 + (8 * tmp->func_info.num_info);
+       if (tmp->line_info.num_info > 0)
+ 	*li_len +=  8 + (16 * tmp->line_info.num_info);
+       if (tmp->core_info.num_info > 0)
+ 	*cr_len +=  8 + (16 * tmp->core_info.num_info);
+       tmp = tmp->next;
+     }
+ 
+   /* If there are entries within the regions, add 4 bytes to set the header of
+      the respective sections that contains the size for each of the entry.  */
+   *fi_len += *fi_len != 0 ? 4 : 0;
+   *li_len += *li_len != 0 ? 4 : 0;
+   *cr_len += *cr_len != 0 ? 4 : 0;
+ }
+ 
+ /* Compute and output the header of a .BTF.ext debug info section.  */
+ 
+ static void
+ output_btfext_header (void)
+ {
+   switch_to_section (btf_ext_info_section);
+   ASM_OUTPUT_LABEL (asm_out_file, btf_ext_info_section_label);
+ 
+   dw2_asm_output_data (2, BTF_MAGIC, "btf_magic");
+   dw2_asm_output_data (1, BTF_VERSION, "btfext_version");
+   dw2_asm_output_data (1, 0, "btfext_flags");
+   dw2_asm_output_data (4, sizeof (struct btf_ext_header), "btfext_hdr_len");
+ 
+   btf_validate_funcinfo (btf_ext);
+ 
+   uint32_t func_info_len = 0;
+   uint32_t line_info_len = 0;
+   uint32_t core_info_len = 0;
+   btf_ext_info_len (&func_info_len, &line_info_len, &core_info_len);
+ 
+   if (!TARGET_BPF_CORE)
+     core_info_len = 0;
+ 
+   uint32_t func_info_off = 0;
+   uint32_t line_info_off = func_info_len;
+   uint32_t core_info_off = line_info_off + line_info_len;
+ 
+   dw2_asm_output_data (4, func_info_off, "func_info_offset");
+   dw2_asm_output_data (4, func_info_len, "func_info_len");
+ 
+   dw2_asm_output_data (4, line_info_off, "line_info_offset");
+   dw2_asm_output_data (4, line_info_len, "line_info_len");
+ 
+   dw2_asm_output_data (4, core_info_off, "core_relo_offset");
+   dw2_asm_output_data (4, core_info_len, "core_relo_len");
+ }
+ 
+ /* Outputs func_info region on .BTF.ext.  */
+ 
+ static void
+ output_btfext_func_info (struct btf_ext_info_sec *sec)
+ {
+   unsigned int str_aux_off = ctfc_get_strtab_len (ctf_get_tu_ctfc (),
+ 						  CTF_STRTAB);
+   bool executed = false;
+   while (sec != NULL)
+     {
+       uint32_t count = 0;
+       if (sec->func_info.num_info > 0)
+ 	{
+ 	  if (executed == false && (executed = true))
+ 	    dw2_asm_output_data (4, 8, "FuncInfo entry size");
+ 	  dw2_asm_output_data (4, sec->sec_name_off + str_aux_off,
+ 			       "FuncInfo section string for %s",
+ 			       sec->sec_name);
+ 	  dw2_asm_output_data (4, sec->func_info.num_info, "Number of entries");
+ 
+ 	  struct btf_ext_funcinfo *elem = sec->func_info.head;
+ 	  while (elem != NULL)
+ 	    {
+ 	      if (elem->label != NULL)
+ 		{
+ 		  count += 1;
+ 		  dw2_asm_output_offset (4, elem->label,
+ 		       NULL, "label for function %s", elem->fnname);
+ 		  dw2_asm_output_data (4, elem->type, "btf_type_id");
+ 		}
+ 	      elem = elem->next;
+ 	    }
+ 	}
+ 
+       gcc_assert (count == sec->func_info.num_info);
+       sec = sec->next;
+     }
+ }
+ 
+ /* Output all CO-RE relocation sections.  */
+ 
+ static void
+ output_btfext_core_sections (void)
+ {
+   struct btf_ext_info_sec *sec = btf_ext;
+   unsigned int str_aux_off = ctfc_get_strtab_len (ctf_get_tu_ctfc (),
+ 						  CTF_STRTAB);
+   bool executed = false;
+   while (sec != NULL)
+     {
+       uint32_t count = 0;
+       if (sec->core_info.num_info > 0)
+ 	{
+ 	  if (executed == false && (executed = true))
+ 	    dw2_asm_output_data (4, 16, "CoreInfo entry size");
+ 	  dw2_asm_output_data (4, sec->sec_name_off + str_aux_off,
+ 			       "CoreInfo section string for %s",
+ 			       sec->sec_name);
+ 	  dw2_asm_output_data (4, sec->core_info.num_info, "Number of entries");
+ 
+ 	  struct btf_ext_core_reloc *bpfcr = sec->core_info.head;
+ 	  while (bpfcr != NULL)
+ 	    {
+ 	      count += 1;
+ 	      dw2_assemble_integer (4,
+ 			gen_rtx_LABEL_REF (Pmode, bpfcr->bpfcr_insn_label));
+ 	      fprintf (asm_out_file, "\t%s%s\n",
+ 		       flag_debug_asm ? ASM_COMMENT_START : "",
+ 		       (flag_debug_asm ? " bpfcr_insn" : ""));
+ 
+ 	      /* Extract the pretty print for the type expression.  */
+ 	      pretty_printer pp;
+ 	      dump_generic_node (&pp, bpfcr->info.type, 0,
+ 				 TDF_VOPS|TDF_MEMSYMS|TDF_SLIM,
+ 				 false);
+ 	      char *str = xstrdup (pp_formatted_text (&pp));
+ 
+ 	      dw2_asm_output_data (4, bpfcr->bpfcr_type, "bpfcr_type (%s)",
+ 				   str);
+ 	      dw2_asm_output_data (4, bpfcr->bpfcr_astr_off + str_aux_off,
+ 				   "bpfcr_astr_off (\"%s\")",
+ 				   bpfcr->info.accessor_str);
+ 	      dw2_asm_output_data (4, bpfcr->bpfcr_kind, "bpfcr_kind");
+ 	      bpfcr = bpfcr->next;
+ 	    }
+ 	}
+ 
+       gcc_assert (count == sec->core_info.num_info);
+       sec = sec->next;
+     }
+ }
+ 
+ /* Initialize sections, labels, and data structures for BTF.ext output.  */
+ 
+ void
+ btf_ext_init (void)
+ {
+   btf_ext_info_section = get_section (BTF_EXT_INFO_SECTION_NAME,
+ 				      BTF_EXT_INFO_SECTION_FLAGS, NULL);
+ 
+   ASM_GENERATE_INTERNAL_LABEL (btf_ext_info_section_label,
+ 			       "Lbtfext", 0);
+ }
+ 
+ /* Output the entire .BTF.ext section.  */
+ 
+ void
+ btf_ext_output (void)
+ {
+   output_btfext_header ();
+   output_btfext_func_info (btf_ext);
+   if (TARGET_BPF_CORE)
+     output_btfext_core_sections ();
+ 
+   /* Extra padding required by BPF code, in case all structures are empty.  */
+   dw2_asm_output_data (4, 0, "Required padding by libbpf structs");
+ }
+ 
+ #include "gt-btfext-out.h"
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/btfext-out.h gcc-14.1.0/gcc/config/bpf/btfext-out.h
*** gcc-13.2.0/gcc/config/bpf/btfext-out.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/bpf/btfext-out.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,108 ----
+ /* btfext-out.h - Declarations and definitions related to
+    BPF Compile Once - Run Everywhere (CO-RE) support.
+    Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ 
+ #ifndef __COREOUT_H
+ #define __COREOUT_H
+ 
+ #include <stdint.h>
+ #include "ctfc.h"
+ 
+ #ifdef	__cplusplus
+ extern "C"
+ {
+ #endif
+ 
+ /* .BTF.ext information.  */
+ 
+ struct btf_ext_section_header
+ {
+   uint32_t sec_name_off;
+   uint32_t num_records;
+ };
+ 
+ enum btf_core_reloc_kind
+ {
+   BPF_RELO_INVALID = -1,
+   BPF_RELO_FIELD_BYTE_OFFSET = 0,
+   BPF_RELO_FIELD_BYTE_SIZE = 1,
+   BPF_RELO_FIELD_EXISTS = 2,
+   BPF_RELO_FIELD_SIGNED = 3,
+   BPF_RELO_FIELD_LSHIFT_U64 = 4,
+   BPF_RELO_FIELD_RSHIFT_U64 = 5,
+   BPF_RELO_TYPE_ID_LOCAL = 6,
+   BPF_RELO_TYPE_ID_TARGET = 7,
+   BPF_RELO_TYPE_EXISTS = 8,
+   BPF_RELO_TYPE_SIZE = 9,
+   BPF_RELO_ENUMVAL_EXISTS = 10,
+   BPF_RELO_ENUMVAL_VALUE = 11,
+   BPF_RELO_TYPE_MATCHES = 12
+ };
+ 
+ struct btf_ext_reloc
+ {
+   uint32_t insn_off;       /* Offset of instruction to be patched. A
+ 			      section-relative label at compile time.  */
+   uint32_t type_id;        /* Type ID of the outermost containing entity, e.g.
+ 			      the containing structure.  */
+   uint32_t access_str_off; /* Offset of CO-RE accessor string in .BTF strings
+ 			      section.  */
+   uint32_t kind;           /* An enum btf_core_reloc_kind. Note that it always
+ 			      takes 32 bits.  */
+ };
+ 
+ struct btf_ext_header
+ {
+   uint16_t magic;		/* Magic number (BTF_MAGIC).  */
+   uint8_t  version;		/* Data format version (BTF_VERSION).  */
+   uint8_t  flags;		/* Flags. Currently unused.  */
+   uint32_t hdr_len;		/* Length of this header in bytes.  */
+ 
+   /* Following offsets are relative to the end of this header, in bytes.
+      Following lengths are in bytes.  */
+   uint32_t func_info_off;	/* Offset of funcinfo section.  */
+   uint32_t func_info_len;	/* Length of funcinfo section.  */
+   uint32_t line_info_off;	/* Offset of lineinfo section.  */
+   uint32_t line_info_len;	/* Length of lineinfo section.  */
+ 
+   uint32_t core_relo_off;	/* Offset of CO-RE relocation section.  */
+   uint32_t core_relo_len;	/* Length of CO-RE relocation section.  */
+ };
+ 
+ extern void btf_ext_init (void);
+ extern void btf_ext_output (void);
+ 
+ void
+ bpf_core_reloc_add (const tree type, const char * section_name,
+ 		    const char *accessor,
+ 		    rtx_code_label *label,
+ 		    enum btf_core_reloc_kind kind);
+ 
+ extern int bpf_core_get_sou_member_index (ctf_container_ref, const tree);
+ 
+ struct btf_ext_funcinfo *btf_add_func_info_for (tree decl,
+ 						const char *label);
+ unsigned int btf_ext_add_string (const char *str);
+ 
+ #ifdef	__cplusplus
+ }
+ #endif
+ 
+ #endif /* __COREOUT_H */
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/constraints.md gcc-14.1.0/gcc/config/bpf/constraints.md
*** gcc-13.2.0/gcc/config/bpf/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for eBPF.
! ;; Copyright (C) 2019-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Constraint definitions for eBPF.
! ;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 30,35 ****
--- 30,58 ----
    "A constant call address."
    (match_code "const,symbol_ref,label_ref,const_int"))
  
+ (define_register_constraint "t" "R0"
+   "Register r0")
+ 
+ ;;
+ ;; BPF CO-RE immediate constraints.
+ ;; This constraints are used to match with the immediate operand that is
+ ;; represented with an UNSPEC_CORE_RELOC. This unspec is the result of using the
+ ;; BPF CO-RE infrastructure.
+ ;; It differentiates from a normal immediate constraints, as the instruction
+ ;; will also emit a BTF based specific relocation, i.e. a CO-RE relocation.
+ ;;
+ 
+ (define_constraint "c"
+   "A 32-bit CO-RE signed immediate."
+   (and (match_code "unspec")
+        (match_test "XINT (op, 1) == UNSPEC_CORE_RELOC")
+        (match_test "IN_RANGE (XVECEXP (op, 0, 0), -1 - 0x7fffffff, 0x7fffffff)")))
+ 
+ (define_constraint "C"
+   "For 64-bit CO-RE signed immediate."
+   (and (match_code "unspec")
+        (match_test "XINT (op, 1) == UNSPEC_CORE_RELOC")))
+ 
  ;;
  ;; Memory constraints.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/core-builtins.cc gcc-14.1.0/gcc/config/bpf/core-builtins.cc
*** gcc-13.2.0/gcc/config/bpf/core-builtins.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/bpf/core-builtins.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,1838 ----
+ /* Subroutines used for code generation for eBPF.
+    Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #define IN_TARGET_CODE 1
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+ #include "rtl.h"
+ #include "output.h"
+ #include "tree.h"
+ #include "stringpool.h"
+ #include "attribs.h"
+ #include "function.h"
+ #include "memmodel.h"
+ #include "emit-rtl.h"
+ #include "expr.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "basic-block.h"
+ #include "gimple.h"
+ #include "gimple-iterator.h"
+ #include "gimple-walk.h"
+ #include "gimple-fold.h"
+ #include "tree-pass.h"
+ #include "plugin.h"
+ #include "gimplify.h"
+ 
+ #include "ctfc.h"
+ #include "btf.h"
+ #include "btfext-out.h"
+ #include "core-builtins.h"
+ 
+ /* BPF CO-RE builtins definition.
+ 
+     The expansion of CO-RE builtins occur in three steps:
+     1. - bpf_resolve_overloaded_core_builtin (pack step)
+       Right after the front-end, all of the CO-RE builtins are converted to an
+       internal builtin __builtin_core_reloc, which takes a single argument and
+       has polymorphic return value to fit the particular expected return type
+       from the original builtin.  The first argument contains an index argument
+       which points to the information stored in a vec<struct cr_builtins> which
+       collects the required information from the original CO-RE builtin in
+       order to use it later on in the __builtin_core_reloc expansion (the next
+       step).
+ 
+     2. - bpf_expand_core_builtin
+       In this step, the __builtin_core_reloc is expanded to a
+       unspec:UNSPEC_CORE_RELOC with 3 operands, destination, source and the
+       index.  The index operand is the index in the vec constructed in the
+       previous step.
+ 
+     3. - final asm output (process step)
+       This is the output of the unspec:UNSPEC_CORE_RELOC.  The index passed in
+       the third operand is read and extracted as a integer from the rtx node.
+       The data is collected from the vec and it is used to create the proper
+       CO-RE relocation as well as do the final assembly output.  It also
+       creates a label to mark the location of the move instruction that is used
+       in the CO-RE relocation.
+ 
+     The initialization of the CO-RE builtins infrastructure occurs in
+     bpf_init_core_builtins function.  It creates a struct builtin_helpers_t
+     arrays which defines the kind argument position, the callback helpers,
+     kind, compare, pack and process, for each individual type of builtin
+     argument possible in the original CO-RE builtins.
+ 
+     More precisely, field expression, type and enum value, used in the
+     following relocations:
+       - __builtin_core_field_info (<field_expr>, <kind>)
+       - __builtin_core_type_id (<type>, <kind>)
+       - __builtin_core_type_info (<type>, <kind>)
+       - __builtin_core_enum_value (<enum_value>, <kind>)
+ 
+     The kind helper allows to identify the proper relocation for the builtin
+     call based on the value within the kind argument.
+ 
+     The compare helper is used to identify if a new builtin call has similar
+     arguments to any other builtin call with the compiling unit.  This enables
+     the possibility to optimize consecutive similar calls of the builtins.
+ 
+     The pack helper callbacks are suppose to decode the original CO-RE builtin
+     call arguments, verify that it is a valid tree node for the particular
+     builtin, allocate a struct cr_local in vector and write it with the
+     relevant data for the particular builtin type.
+ 
+     The process helper should take the data constructed in the pack helper and
+     create a struct cr_final element which contains the essential information
+     to create a CO-RE relocation.
+     This information is further used by the final assembly output step to
+     define the CO-RE relocation and pass-through the default value for the
+     original CO-RE builtin.
+ 
+     BPF CO-RE preserve access is supported in two forms:
+     - A target builtin, __builtin_preserve_access_index
+ 
+       This builtin accepts a single argument.  Any access to an aggregate data
+       structure (struct, union or array), also referred through the document as
+       an field expression,  within the argument will be recorded by the CO-RE
+       machinery, resulting in one or more relocations being inserted in the
+       .BTF.ext section of the output.
+ 
+     - An attribute, __attribute__((preserve_access_index))
+ 
+       This attribute can be applied to struct and union types.  Any access done
+       through a node typed with this attribute will be recorded by the CO-RE
+       machinery.  This conversion is done in an independent gimple pass very
+       early in compilation, making sure that the field expression is
+       originating from a tree node which his type is attributed.
+ 
+     Both these variants of preserve_access_index rely on a tree walker that
+     identifies and converts any CO-RE valid field expressions.  Apart from the
+     gimple specific requirements for the attribute implementation both builtin
+     and attribute implementations rely on the same mechanism.  */
+ 
+ struct GTY(()) cr_builtins
+ {
+   tree type;
+   tree expr;
+   tree default_value;
+   rtx rtx_default_value;
+   enum btf_core_reloc_kind kind;
+   enum bpf_builtins orig_builtin_code;
+   tree orig_arg_expr;
+   tree access_node;
+ };
+ typedef struct cr_builtins *cr_builtins_ref;
+ 
+ #define CORE_BUILTINS_DATA_EMPTY \
+   { NULL_TREE, NULL_TREE, NULL_TREE, NULL_RTX, BPF_RELO_INVALID, \
+     BPF_BUILTIN_UNUSED, NULL_TREE, NULL_TREE}
+ 
+ /* Vector definition and its access function.  */
+ static GTY(()) vec<cr_builtins_ref, va_gc> *builtins_data = NULL;
+ 
+ static inline int
+ allocate_builtin_data ()
+ {
+   if (builtins_data == NULL)
+     vec_alloc (builtins_data, 1);
+ 
+   cr_builtins_ref data = ggc_cleared_alloc<struct cr_builtins> ();
+   int ret = builtins_data->length ();
+   vec_safe_push (builtins_data, data);
+   return ret;
+ }
+ 
+ static inline struct cr_builtins *
+ get_builtin_data (int index)
+ {
+   return (*builtins_data)[index];
+ }
+ 
+ typedef bool
+ (*builtin_local_data_compare_fn) (struct cr_builtins *a,
+ 				  struct cr_builtins *b);
+ static inline int
+ search_builtin_data (builtin_local_data_compare_fn callback,
+ 		     struct cr_builtins *elem)
+ {
+   unsigned int i;
+   if (builtins_data != NULL)
+     for (i = 0; i < builtins_data->length (); i++)
+       if ((callback != NULL && (callback) (elem, (*builtins_data)[i]))
+ 	  || (callback == NULL
+ 	      && ((*builtins_data)[i]->orig_arg_expr == elem->orig_arg_expr)))
+ 	return (int) i;
+ 
+   return -1;
+ }
+ 
+ /* Possible relocation decisions.  */
+ enum cr_decision
+ {
+   FAILED_VALIDATION = 0,
+   REPLACE_CREATE_RELOCATION,
+   REPLACE_NO_RELOCATION
+ };
+ 
+ /* Core Relocation Pack local structure.  */
+ struct cr_local
+ {
+   struct cr_builtins reloc_data;
+   enum cr_decision reloc_decision;
+   bool fail;
+ };
+ #define CR_LOCAL_EMPTY { CORE_BUILTINS_DATA_EMPTY, FAILED_VALIDATION, false }
+ 
+ /* Core Relocation Final data */
+ struct cr_final
+ {
+   const char *str;
+   tree type;
+   enum btf_core_reloc_kind kind;
+ };
+ 
+ /* CO-RE builtin helpers struct.  Used and initialized in
+    bpf_init_core_builtins.  */
+ struct builtin_helpers
+ {
+   enum btf_core_reloc_kind (*kind) (tree *args, int nargs);
+   bool (*compare) (struct cr_builtins *a, struct cr_builtins *b);
+   struct cr_local (*pack) (tree *args,
+ 			   enum btf_core_reloc_kind kind,
+ 			   enum bpf_builtins code);
+   struct cr_final (*process) (struct cr_builtins *data);
+   bool is_pure;
+   bool is_valid;
+ };
+ 
+ struct builtin_helpers
+   core_builtin_helpers[(int) BPF_BUILTIN_MAX];
+ 
+ #define BPF_CORE_HELPER_NOTSET { NULL, NULL, NULL, NULL, false, false }
+ #define BPF_CORE_HELPER_SET(KIND, COMPARE, PACK, PROCESS, IS_PURE) \
+ 	{ KIND, COMPARE, PACK, PROCESS, IS_PURE, true }
+ 
+ enum bpf_plugin_states
+ {
+   BPF_PLUGIN_DISABLED = 0,
+   BPF_PLUGIN_ENABLED,
+   BPF_PLUGIN_REMOVED
+ };
+ enum bpf_plugin_states plugin_state = BPF_PLUGIN_DISABLED;
+ 
+ static void
+ remove_parser_plugin ()
+ {
+   /* Restore state of the plugin system.  */
+   if (flag_plugin_added == true && plugin_state != BPF_PLUGIN_REMOVED)
+     {
+       unregister_callback ("bpf_collect_enum_info", PLUGIN_FINISH_TYPE);
+       flag_plugin_added = (bool) plugin_state == BPF_PLUGIN_ENABLED;
+       plugin_state = BPF_PLUGIN_REMOVED;
+     }
+ }
+ 
+ #define bpf_error(MSG) { \
+   remove_parser_plugin (); \
+   error (MSG); \
+ }
+ 
+ #define bpf_error_at(LOC, MSG) { \
+   remove_parser_plugin (); \
+   error_at (LOC, MSG); \
+ }
+ 
+ 
+ /* Helper compare functions used to verify if multiple builtin calls contain
+    the same argument as input.  In that case the builtin calls can be optimized
+    out by identifying redundat calls.  This happen since the internal
+    __core_reloc builtin is marked as PURE.  */
+ 
+ static inline bool
+ compare_same_kind (struct cr_builtins *a, struct cr_builtins *b)
+ {
+   return a->kind == b->kind;
+ }
+ static inline bool
+ compare_same_ptr_expr (struct cr_builtins *a, struct cr_builtins *b)
+ {
+   return compare_same_kind (a, b) && a->expr == b->expr;
+ }
+ static inline bool
+ compare_same_ptr_type (struct cr_builtins *a, struct cr_builtins *b)
+ {
+   return compare_same_kind (a, b) && a->type == b->type;
+ }
+ 
+ /* Handling for __attribute__((preserve_access_index)) for BPF CO-RE support.
+ 
+    This attribute marks a structure/union/array type as "preserve", so that
+    every access to that type should be recorded and replayed by the BPF loader;
+    this is just the same functionality as __builtin_preserve_access_index,
+    but in the form of an attribute for an entire aggregate type.
+ 
+    Note also that nested structs behave as though they all have the attribute.
+    For example:
+      struct X { int a; };
+      struct Y { struct X bar} __attribute__((preserve_access_index));
+      struct Y foo;
+      foo.bar.a;
+    will record access all the way to 'a', even though struct X does not have
+    the preserve_access_index attribute.
+ 
+    This is to follow LLVM behavior.  */
+ 
+ /* True if tree T accesses any member of a struct/union/class which is marked
+    with the PRESERVE_ACCESS_INDEX attribute.  */
+ 
+ static bool
+ is_attr_preserve_access (tree t)
+ {
+   if (t == NULL_TREE)
+     return false;
+ 
+   poly_int64 bitsize, bitpos;
+   tree var_off;
+   machine_mode mode;
+   int sign, reverse, vol;
+ 
+   tree base = get_inner_reference (t, &bitsize, &bitpos, &var_off, &mode,
+ 				   &sign, &reverse, &vol);
+ 
+   if (TREE_CODE (t) == SSA_NAME
+       || TREE_CODE (t) == VAR_DECL)
+     return lookup_attribute ("preserve_access_index",
+ 			     TYPE_ATTRIBUTES (TREE_TYPE (base)));
+ 
+   if (TREE_CODE (base) == MEM_REF)
+     return lookup_attribute ("preserve_access_index",
+ 			     TYPE_ATTRIBUTES (TREE_TYPE (base)));
+ 
+   if (TREE_CODE (t) == COMPONENT_REF)
+     {
+       /* preserve_access_index propagates into nested structures,
+ 	 so check whether this is a component of another component
+ 	 which in turn is part of such a struct.  */
+ 
+       const tree op = TREE_OPERAND (t, 0);
+ 
+       if (TREE_CODE (op) == COMPONENT_REF)
+ 	return is_attr_preserve_access (op);
+ 
+       const tree container = DECL_CONTEXT (TREE_OPERAND (t, 1));
+ 
+       return lookup_attribute ("preserve_access_index",
+ 			       TYPE_ATTRIBUTES (container))
+ 	     || is_attr_preserve_access (op);
+     }
+ 
+   else if (TREE_CODE (t) == ADDR_EXPR)
+     return is_attr_preserve_access (TREE_OPERAND (t, 0));
+ 
+   return false;
+ }
+ 
+ static tree
+ root_for_core_field_info (tree node)
+ {
+   bool done = false;
+   while (!done)
+     {
+       switch (TREE_CODE (node))
+ 	{
+ 	case ADDR_EXPR:
+ 	case NOP_EXPR:
+ 	  node = TREE_OPERAND (node, 0);
+ 	  break;
+ 	default:
+ 	  done = true;
+ 	  break;
+ 	}
+     }
+   return node;
+ }
+ 
+ /* Expand a call to __builtin_preserve_field_info by evaluating the requested
+    information about SRC according to KIND, and return a tree holding
+    the result.  */
+ 
+ static tree
+ core_field_info (tree src, enum btf_core_reloc_kind kind)
+ {
+   unsigned int result;
+   poly_int64 bitsize, bitpos;
+   tree var_off = NULL_TREE;
+   machine_mode mode;
+   int unsignedp, reversep, volatilep;
+   location_t loc = EXPR_LOCATION (src);
+   tree type = TREE_TYPE (src);
+ 
+   src = root_for_core_field_info (src);
+ 
+   tree root = get_inner_reference (src, &bitsize, &bitpos, &var_off, &mode,
+ 				   &unsignedp, &reversep, &volatilep);
+ 
+   /* Note: Use DECL_BIT_FIELD_TYPE rather than DECL_BIT_FIELD here, because it
+      remembers whether the field in question was originally declared as a
+      bitfield, regardless of how it has been optimized.  */
+   bool bitfieldp = (TREE_CODE (src) == COMPONENT_REF
+ 		    && DECL_BIT_FIELD_TYPE (TREE_OPERAND (src, 1)));
+ 
+   unsigned int align = TYPE_ALIGN (TREE_TYPE (src));
+   if (TREE_CODE (src) == COMPONENT_REF)
+     {
+       tree field = TREE_OPERAND (src, 1);
+       if (DECL_BIT_FIELD_TYPE (field))
+ 	align = TYPE_ALIGN (DECL_BIT_FIELD_TYPE (field));
+       else
+ 	align = TYPE_ALIGN (TREE_TYPE (field));
+     }
+ 
+   unsigned int start_bitpos = bitpos & ~(align - 1);
+   unsigned int end_bitpos = start_bitpos + align;
+ 
+   switch (kind)
+     {
+     case BPF_RELO_FIELD_BYTE_OFFSET:
+       {
+ 	result = 0;
+ 	if (var_off == NULL_TREE
+ 	    && TREE_CODE (root) == INDIRECT_REF
+ 	    && TREE_CODE (TREE_OPERAND (root, 0)) == POINTER_PLUS_EXPR)
+ 	  {
+ 	    tree node = TREE_OPERAND (root, 0);
+ 	    tree offset = TREE_OPERAND (node, 1);
+ 	    tree type = TREE_TYPE (TREE_OPERAND (node, 0));
+ 	    type = TREE_TYPE (type);
+ 
+ 	    gcc_assert (TREE_CODE (offset) == INTEGER_CST && tree_fits_shwi_p (offset)
+ 		&& COMPLETE_TYPE_P (type) && tree_fits_shwi_p (TYPE_SIZE (type)));
+ 
+ 	    HOST_WIDE_INT offset_i = tree_to_shwi (offset);
+ 	    result += offset_i;
+ 	  }
+ 
+ 	type = unsigned_type_node;
+ 	if (var_off != NULL_TREE)
+ 	  {
+ 	    bpf_error_at (loc, "unsupported variable field offset");
+ 	    return error_mark_node;
+ 	  }
+ 
+ 	if (bitfieldp)
+ 	  result += start_bitpos / 8;
+ 	else
+ 	  result += bitpos / 8;
+       }
+       break;
+ 
+     case BPF_RELO_FIELD_BYTE_SIZE:
+       {
+ 	type = unsigned_type_node;
+ 	if (mode == BLKmode && bitsize == -1)
+ 	  {
+ 	    bpf_error_at (loc, "unsupported variable size field access");
+ 	    return error_mark_node;
+ 	  }
+ 
+ 	if (bitfieldp)
+ 	  {
+ 	    /* To match LLVM behavior, byte size of bitfields is recorded as
+ 	       the full size of the base type.  A 3-bit bitfield of type int is
+ 	       therefore recorded as having a byte size of 4 bytes.  */
+ 	    result = end_bitpos - start_bitpos;
+ 	    if (result & (result - 1))
+ 	      {
+ 		bpf_error_at (loc, "unsupported field expression");
+ 		return error_mark_node;
+ 	      }
+ 	    result = result / 8;
+ 	  }
+ 	else
+ 	  result = bitsize / 8;
+       }
+       break;
+ 
+     case BPF_RELO_FIELD_EXISTS:
+       type = unsigned_type_node;
+       /* The field always exists at compile time.  */
+       result = 1;
+       break;
+ 
+     case BPF_RELO_FIELD_SIGNED:
+       type = unsigned_type_node;
+       result = !unsignedp;
+       break;
+ 
+     case BPF_RELO_FIELD_LSHIFT_U64:
+     case BPF_RELO_FIELD_RSHIFT_U64:
+       {
+ 	type = unsigned_type_node;
+ 	if (mode == BLKmode && bitsize == -1)
+ 	  {
+ 	    bpf_error_at (loc, "unsupported variable size field access");
+ 	    return error_mark_node;
+ 	  }
+ 	if (var_off != NULL_TREE)
+ 	  {
+ 	    bpf_error_at (loc, "unsupported variable field offset");
+ 	    return error_mark_node;
+ 	  }
+ 
+ 	if (!bitfieldp)
+ 	  {
+ 	    if (bitsize > 64)
+ 	      {
+ 		bpf_error_at (loc, "field size too large");
+ 		return error_mark_node;
+ 	      }
+ 	    result = 64 - bitsize;
+ 	    break;
+ 	  }
+ 
+ 	if (end_bitpos - start_bitpos > 64)
+ 	  {
+ 	    bpf_error_at (loc, "field size too large");
+ 	    return error_mark_node;
+ 	  }
+ 
+ 	if (kind == BPF_RELO_FIELD_LSHIFT_U64)
+ 	  {
+ 	    if (TARGET_BIG_ENDIAN)
+ 	      result = bitpos + 64 - start_bitpos - align;
+ 	    else
+ 	      result = start_bitpos + 64 - bitpos - bitsize;
+ 	  }
+ 	else /* RSHIFT_U64 */
+ 	  result = 64 - bitsize;
+       }
+       break;
+ 
+     default:
+       bpf_error ("invalid second argument to built-in function");
+       return error_mark_node;
+       break;
+     }
+ 
+   return build_int_cst (type, result);
+ }
+ 
+ /* Compute the index of the NODE in its immediate container.
+    NODE should be a FIELD_DECL (i.e. of struct or union), or an ARRAY_REF.  */
+ 
+ static int
+ bpf_core_get_index (const tree node, bool *valid)
+ {
+   enum tree_code code = TREE_CODE (node);
+ 
+   if (code == FIELD_DECL)
+     {
+       /* Lookup the index from the type fields information.  */
+       const tree container = DECL_CONTEXT (node);
+       int i = 0;
+       for (tree l = TYPE_FIELDS (container); l; l = DECL_CHAIN (l))
+ 	{
+ 	  if (l == node)
+ 	    return i;
+ 	  /* Skip unnamed padding, not represented by BTF.  */
+ 	  if (DECL_NAME(l) != NULL_TREE
+ 	      || TREE_CODE (TREE_TYPE (l)) == UNION_TYPE
+ 	      || TREE_CODE (TREE_TYPE (l)) == RECORD_TYPE)
+ 	    i++;
+ 	}
+     }
+   else if (code == ARRAY_REF || code == ARRAY_RANGE_REF || code == MEM_REF)
+     {
+       /* For array accesses, the index is operand 1.  */
+       tree index = TREE_OPERAND (node, 1);
+ 
+       /* If the indexing operand is a constant, extracting is trivial.  */
+       if (TREE_CODE (index) == INTEGER_CST && tree_fits_shwi_p (index))
+ 	return tree_to_shwi (index);
+     }
+   else if (code == POINTER_PLUS_EXPR)
+     {
+       tree offset = TREE_OPERAND (node, 1);
+       tree type = TREE_TYPE (TREE_OPERAND (node, 0));
+       type = TREE_TYPE (type);
+ 
+       if (TREE_CODE (offset) == INTEGER_CST && tree_fits_shwi_p (offset)
+ 	  && COMPLETE_TYPE_P (type) && tree_fits_shwi_p (TYPE_SIZE (type)))
+ 	{
+ 	  HOST_WIDE_INT offset_i = tree_to_shwi (offset);
+ 	  HOST_WIDE_INT type_size_i = tree_to_shwi (TYPE_SIZE_UNIT (type));
+ 	  if ((offset_i % type_size_i) == 0)
+ 	    return offset_i / type_size_i;
+ 	}
+     }
+ 
+   if (valid != NULL)
+     *valid = false;
+   return -1;
+ }
+ 
+ #define PREPARE_FAKE_PTR(P) \
+   _fake_##P; \
+   if (P == NULL) \
+     P = &_fake_##P; \
+   _fake_##P
+ 
+ #define MAX_NR_ACCESSORS 100
+ 
+ /* This function validates and extracts information for CO-RE field expression.
+    Any parametric expression is allowed to be passed in argument NODE.
+ 
+    If NODE is a valid CO-RE expression VALID boolean pointer would be set to
+    true.
+ 
+    A CO-RE field expression is an expression accessing structures, arrays and
+    unions.
+    An examples of CO-RE valid expression is:
+      A->B[2].UNION_C.D
+ 
+    This function traverses the tree structure to verify if the expression in
+    NODE is valid and extracts other characteristics of the expression, and
+    returns it by updating the pointer arguments:
+ 
+    ACCESSORS: is an array with the indexes of the particular fields
+      within the expression.  The indexes are related to actual index on the
+      struct/union type, or the array access index.  The RETURN of the function
+      is the number of accessors required to represent this expression in CO-RE
+      access string.
+    VALID - boolean pointer that sets if expression is valid or not for CO-RE.
+    ACCESS_NODE - It is the base of the expression.  Using the example below is
+      the node that represents the A in the expression.
+ 
+    ALLOW_ENTRY_CAST is an input arguments and specifies if the function should
+    consider as valid expressions in which NODE entry is a cast expression (or
+    tree code nop_expr).  */
+ 
+ static unsigned char
+ compute_field_expr (tree node, unsigned int *accessors,
+ 		    bool *valid,
+ 		    tree *access_node,
+ 		    bool allow_entry_cast = true)
+ {
+   unsigned char n = 0;
+   unsigned int fake_accessors[MAX_NR_ACCESSORS];
+   if (accessors == NULL)
+     accessors = fake_accessors;
+   bool PREPARE_FAKE_PTR (valid) = true;
+   tree PREPARE_FAKE_PTR (access_node) = NULL_TREE;
+ 
+   if (node == NULL_TREE)
+     {
+       *valid = false;
+       return 0;
+     }
+ 
+   *access_node = node;
+ 
+   switch (TREE_CODE (node))
+     {
+     case INDIRECT_REF:
+       if (TREE_CODE (node = TREE_OPERAND (node, 0)) == POINTER_PLUS_EXPR)
+ 	{
+ 	  accessors[0] = bpf_core_get_index (node, valid);
+ 	  *access_node = TREE_OPERAND (node, 0);
+ 	  return 1;
+ 	}
+       else
+ 	{
+ 	  accessors[0] = 0;
+ 	  return 1;
+ 	}
+     case COMPONENT_REF:
+       n = compute_field_expr (TREE_OPERAND (node, 0), accessors,
+ 			      valid,
+ 			      access_node, false);
+       accessors[n] = bpf_core_get_index (TREE_OPERAND (node, 1), valid);
+       return n + 1;
+     case ARRAY_REF:
+     case ARRAY_RANGE_REF:
+     case MEM_REF:
+       n = compute_field_expr (TREE_OPERAND (node, 0), accessors,
+ 			      valid,
+ 			      access_node, false);
+       accessors[n++] = bpf_core_get_index (node, valid);
+       return n;
+     case NOP_EXPR:
+       if (allow_entry_cast == true)
+ 	{
+ 	  *valid = false;
+ 	  return 0;
+ 	}
+       n = compute_field_expr (TREE_OPERAND (node, 0), accessors,
+ 			      valid,
+ 			      access_node, false);
+       return n;
+ 
+     case ADDR_EXPR:
+     case CALL_EXPR:
+     case SSA_NAME:
+     case VAR_DECL:
+     case PARM_DECL:
+       return 0;
+     default:
+       *valid = false;
+       return 0;
+     }
+ }
+ #undef PREPARE_FAKE_PTR
+ 
+ 
+ /* Pack helper for the __builtin_preserve_field_info.  */
+ 
+ static struct cr_local
+ pack_field_expr (tree *args,
+ 		 enum btf_core_reloc_kind kind,
+ 		 enum bpf_builtins code ATTRIBUTE_UNUSED)
+ {
+   struct cr_local ret = CR_LOCAL_EMPTY;
+   ret.fail = false;
+ 
+   tree arg = args[0];
+   tree root = arg;
+   tree access_node = NULL_TREE;
+   tree type = NULL_TREE;
+ 
+   if (TREE_CODE (root) == ADDR_EXPR)
+     root = TREE_OPERAND (root, 0);
+ 
+   ret.reloc_decision = REPLACE_CREATE_RELOCATION;
+ 
+   unsigned int accessors[100];
+   bool valid = true;
+   compute_field_expr (root, accessors, &valid, &access_node, false);
+ 
+   type = TREE_TYPE (access_node);
+   if (POINTER_TYPE_P (type))
+     type = TREE_TYPE (type);
+ 
+   if (valid == true)
+     {
+       ret.reloc_data.expr = root;
+ 
+       /* Note: the type of default_value is used to define the return type of
+        __builtin_core_reloc in bpf_resolve_overloaded_core_builtin.  */
+       ret.reloc_data.access_node = access_node;
+       ret.reloc_data.type = type;
+       ret.reloc_data.default_value = core_field_info (root, kind);
+       ret.reloc_data.kind = kind;
+ 
+       if (TREE_CODE (ret.reloc_data.default_value) == ERROR_MARK)
+ 	ret.fail = true;
+     }
+   else
+     {
+       bpf_error_at (EXPR_LOC_OR_LOC (arg, UNKNOWN_LOCATION),
+ 		    "argument is not a field access");
+       ret.fail = true;
+     }
+ 
+   return ret;
+ }
+ 
+ /* Process helper for the __builtin_preserve_field_info.  */
+ 
+ static struct cr_final
+ process_field_expr (struct cr_builtins *data)
+ {
+   gcc_assert (data->kind == BPF_RELO_FIELD_BYTE_OFFSET
+ 	      || data->kind == BPF_RELO_FIELD_BYTE_SIZE
+ 	      || data->kind == BPF_RELO_FIELD_LSHIFT_U64
+ 	      || data->kind == BPF_RELO_FIELD_RSHIFT_U64
+ 	      || data->kind == BPF_RELO_FIELD_SIGNED
+ 	      || data->kind == BPF_RELO_FIELD_EXISTS);
+ 
+   unsigned int accessors[MAX_NR_ACCESSORS];
+   unsigned char nr_accessors = 0;
+   tree expr = data->expr;
+   tree type = data->type;
+ 
+   if (TREE_CODE (expr) == ADDR_EXPR)
+     expr = TREE_OPERAND (expr, 0);
+ 
+   expr = root_for_core_field_info (expr);
+   nr_accessors = compute_field_expr (expr, accessors, NULL, NULL, false);
+ 
+   struct cr_final ret = { NULL, type, data->kind };
+ 
+   char str[100];
+   if (nr_accessors > 0)
+     {
+       int n = 0;
+       for (int i = 0; i < nr_accessors; i++)
+ 	n += snprintf (str + n, sizeof (str) - n,
+ 		       i == 0 ? "%u" : ":%u", accessors[i]);
+       ret.str = CONST_CAST (char *, ggc_strdup (str));
+     }
+   else
+     gcc_unreachable ();
+ 
+   return ret;
+ }
+ 
+ static GTY(()) hash_map<tree, tree> *bpf_enum_mappings;
+ tree enum_value_type = NULL_TREE;
+ 
+ static int
+ get_index_for_enum_value (tree type, tree expr)
+ {
+   gcc_assert (TREE_CODE (expr) == CONST_DECL
+ 	      && TREE_CODE (type) == ENUMERAL_TYPE);
+ 
+   unsigned int index = 0;
+   for (tree l = TYPE_VALUES (type); l; l = TREE_CHAIN (l))
+     {
+       gcc_assert (index < (1 << 16));
+       if (TREE_VALUE (l) == expr)
+ 	return index;
+       index++;
+     }
+   return -1;
+ }
+ 
+ /* Pack helper for the __builtin_preserve_enum_value.  */
+ 
+ static struct cr_local
+ pack_enum_value (tree *args, enum btf_core_reloc_kind kind,
+ 		 enum bpf_builtins code ATTRIBUTE_UNUSED)
+ {
+   struct cr_local ret = CR_LOCAL_EMPTY;
+   ret.reloc_decision = REPLACE_CREATE_RELOCATION;
+   ret.fail = false;
+ 
+   tree *result = NULL;
+   tree tmp = args[0];
+   tree enum_value = args[1];
+   tree type = NULL_TREE;
+ 
+   /* Deconstructing "*(typeof (enum_type) *) enum_value" to collect both the
+      enum_type and enum_value.  */
+   if (TREE_CODE (tmp) != TARGET_EXPR
+       || (type = TREE_TYPE (tmp)) == NULL_TREE
+       || (TREE_CODE (type) != POINTER_TYPE)
+       || (type = TREE_TYPE (type)) == NULL_TREE
+       || (TREE_CODE (type) != ENUMERAL_TYPE))
+     {
+       bpf_error ("invalid type argument format for enum value builtin");
+       ret.fail = true;
+     }
+ 
+   if (TREE_CODE (enum_value) != INTEGER_CST)
+     goto pack_enum_value_fail;
+ 
+   result = bpf_enum_mappings->get (enum_value);
+   if (result == NULL)
+     goto pack_enum_value_fail;
+ 
+   tmp = *result;
+ 
+   if (TREE_CODE (tmp) != CONST_DECL)
+     {
+ pack_enum_value_fail:
+       bpf_error ("invalid enum value argument for enum value builtin");
+       ret.fail = true;
+     }
+   else
+     {
+       ret.reloc_data.expr = tmp;
+       if (kind == BPF_RELO_ENUMVAL_VALUE)
+ 	ret.reloc_data.default_value = enum_value;
+       else
+ 	ret.reloc_data.default_value = integer_one_node;
+     }
+ 
+   if (ret.fail == false )
+     {
+       int index = get_index_for_enum_value (type, tmp);
+       if (index == -1 || index >= (1 << 16))
+ 	{
+ 	  bpf_error ("enum value in CO-RE builtin cannot be represented");
+ 	  ret.fail = true;
+ 	}
+     }
+ 
+   ret.reloc_data.type = type;
+   ret.reloc_data.kind = kind;
+   return ret;
+ }
+ 
+ /* Process helper for the __builtin_preserve_enum_value.  */
+ 
+ static struct cr_final
+ process_enum_value (struct cr_builtins *data)
+ {
+   gcc_assert (data->kind == BPF_RELO_ENUMVAL_EXISTS
+ 	      || data->kind == BPF_RELO_ENUMVAL_VALUE);
+ 
+   tree expr = data->expr;
+   tree type = data->type;
+ 
+   struct cr_final ret = { NULL, type, data->kind };
+ 
+   gcc_assert (TREE_CODE (expr) == CONST_DECL
+ 	      && TREE_CODE (type) == ENUMERAL_TYPE);
+ 
+   int index = get_index_for_enum_value (type, expr);
+   gcc_assert (index != -1 && index < (1 << 16));
+ 
+   /* Index can only be a value up to 2^16.  Should always fit
+      in 6 chars.  */
+   char tmp[6];
+   sprintf (tmp, "%u", index);
+   ret.str = CONST_CAST (char *, ggc_strdup(tmp));
+ 
+   return ret;
+ }
+ 
+ /* Pack helper for the __builtin_preserve_type_info.  */
+ 
+ static struct cr_local
+ pack_type (tree *args, enum btf_core_reloc_kind kind,
+ 	   enum bpf_builtins code ATTRIBUTE_UNUSED)
+ {
+   struct cr_local ret = CR_LOCAL_EMPTY;
+   ret.reloc_decision = FAILED_VALIDATION;
+   ret.reloc_data.default_value = integer_zero_node;
+   ret.fail = false;
+ 
+   tree root_type = NULL_TREE;
+   tree tmp = args[0];
+   HOST_WIDE_INT type_size_i;
+ 
+   if (TYPE_P (tmp))
+     goto is_already_type;
+   /* Typical structure to match:
+ 	*({ extern typeof (TYPE) *<tmp_name>; <tmp_name>; })  */
+ 
+   /* Extract Pointer dereference from the construct.  */
+   while (tmp != NULL_TREE
+ 	&& (TREE_CODE (tmp) == INDIRECT_REF
+ 	    || TREE_CODE (tmp) == NOP_EXPR))
+     tmp = TREE_OPERAND (tmp, 0);
+ 
+   if (TREE_CODE (tmp) != TARGET_EXPR
+       || TREE_CODE (tmp = TREE_OPERAND (tmp, 1)) != BIND_EXPR)
+     goto pack_type_fail;
+ 
+   tmp = BIND_EXPR_VARS (tmp);
+ 
+   if (TREE_CODE (tmp) != TYPE_DECL
+       && TREE_CODE (tmp) != VAR_DECL)
+     goto pack_type_fail;
+ 
+   tmp = TREE_TYPE (tmp);
+ 
+ is_already_type:
+   if (TREE_CODE (tmp) == POINTER_TYPE)
+     tmp = TREE_TYPE (tmp);
+ 
+   root_type = tmp;
+ 
+   if (TREE_CODE (tmp) != RECORD_TYPE
+       && TREE_CODE (tmp) != UNION_TYPE
+       && TREE_CODE (tmp) != ENUMERAL_TYPE
+       && (TREE_CODE (tmp) != POINTER_TYPE
+ 	  || TREE_CODE (TREE_TYPE (tmp)) == FUNCTION_TYPE)
+       && (TREE_CODE (tmp) != POINTER_TYPE
+ 	  || TREE_CODE (TREE_TYPE (tmp)) == VOID_TYPE)
+       && TREE_CODE (tmp) != ARRAY_TYPE
+       && TREE_CODE (tmp) != INTEGER_TYPE)
+     goto pack_type_fail;
+ 
+   ret.reloc_data.type = root_type;
+   ret.reloc_decision = REPLACE_CREATE_RELOCATION;
+ 
+   /* Force this type to be marked as used in dwarf2out.  */
+   gcc_assert (cfun);
+   if (cfun->used_types_hash == NULL)
+     cfun->used_types_hash = hash_set<tree>::create_ggc (37);
+   cfun->used_types_hash->add (root_type);
+ 
+   type_size_i = tree_to_shwi (TYPE_SIZE_UNIT (ret.reloc_data.type));
+ 
+   switch (kind)
+     {
+       case BPF_RELO_TYPE_SIZE:
+ 	ret.reloc_data.default_value = build_int_cst (integer_type_node,
+ 						      type_size_i);
+ 	break;
+       case BPF_RELO_TYPE_EXISTS:
+       case BPF_RELO_TYPE_MATCHES:
+ 	ret.reloc_data.default_value = integer_one_node;
+ 	break;
+       case BPF_RELO_TYPE_ID_LOCAL:
+       case BPF_RELO_TYPE_ID_TARGET:
+ 	ret.reloc_data.default_value = integer_zero_node;
+ 	break;
+       default:
+ 	break;
+     }
+ 
+   ret.reloc_data.kind = kind;
+   return ret;
+ 
+ pack_type_fail:
+       bpf_error_at (EXPR_LOC_OR_LOC (args[0], UNKNOWN_LOCATION),
+ 		    "invalid first argument format for enum value builtin");
+       ret.fail = true;
+   return ret;
+ }
+ 
+ /* Process helper for the __builtin_preserve_type_info.  */
+ 
+ static struct cr_final
+ process_type (struct cr_builtins *data)
+ {
+   gcc_assert (data->kind == BPF_RELO_TYPE_ID_LOCAL
+ 	      || data->kind == BPF_RELO_TYPE_ID_TARGET
+ 	      || data->kind == BPF_RELO_TYPE_EXISTS
+ 	      || data->kind == BPF_RELO_TYPE_SIZE
+ 	      || data->kind == BPF_RELO_TYPE_MATCHES);
+ 
+   struct cr_final ret;
+   ret.str = ggc_strdup ("0");
+   ret.type = data->type;
+   ret.kind = data->kind;
+ 
+   if ((data->kind == BPF_RELO_TYPE_ID_LOCAL
+       || data->kind == BPF_RELO_TYPE_ID_TARGET)
+       && data->default_value != NULL)
+   {
+     ctf_container_ref ctfc = ctf_get_tu_ctfc ();
+     unsigned int btf_id = get_btf_id (ctf_lookup_tree_type (ctfc, ret.type));
+     data->rtx_default_value = expand_normal (build_int_cst (integer_type_node,
+ 							    btf_id));
+   }
+ 
+   return ret;
+ }
+ 
+ static bool
+ bpf_require_core_support ()
+ {
+   if (!TARGET_BPF_CORE)
+     {
+       bpf_error ("BPF CO-RE is required but not enabled");
+       return false;
+     }
+   return true;
+ }
+ 
+ /* BPF Compile Once - Run Everywhere (CO-RE) support.  Construct a CO-RE
+    relocation record in DATA to be emitted in the .BTF.ext
+    section.  Does nothing if we are not targetting BPF CO-RE, or if the
+    constructed relocation would be a no-op.  */
+ 
+ static void
+ make_core_relo (struct cr_final *data, rtx_code_label *label)
+ {
+   /* If we are not targetting BPF CO-RE, do not make a relocation.  We
+      might not be generating any debug info at all.  */
+   if (!bpf_require_core_support ())
+     return;
+ 
+   gcc_assert (data->type);
+ 
+   /* Determine what output section this relocation will apply to.
+      If this function is associated with a section, use that.  Otherwise,
+      fall back on '.text'.  */
+   const char * section_name;
+   if (current_function_decl && DECL_SECTION_NAME (current_function_decl))
+     section_name = DECL_SECTION_NAME (current_function_decl);
+   else
+     section_name = ".text";
+ 
+   /* Add the CO-RE relocation information to the BTF container.  */
+   bpf_core_reloc_add (data->type, section_name, data->str, label,
+ 		      data->kind);
+ }
+ 
+ /* Support function to extract kind information for CO-RE builtin
+    calls.  */
+ 
+ static inline char
+ read_kind (tree kind, char max_value, char enum_offset)
+ {
+   char kind_val = 0;
+ 
+   if (kind == NULL_TREE)
+     goto invalid_kind_arg_error;
+ 
+   if (TREE_CODE (kind) != CONST_DECL
+       && TREE_CODE (kind) == NOP_EXPR)
+     kind = TREE_OPERAND (kind, 0);
+ 
+   if (TREE_CODE (kind) == CONST_DECL)
+     kind = DECL_INITIAL (kind);
+ 
+   if (TREE_CODE (kind) == INTEGER_CST
+       && tree_fits_uhwi_p (kind))
+     kind_val = tree_to_uhwi (kind);
+   else
+     goto invalid_kind_arg_error;
+ 
+   if (kind_val > max_value)
+     {
+ invalid_kind_arg_error:
+       bpf_error ("invalid kind argument to core builtin");
+       return -1;
+     }
+   return kind_val + enum_offset;
+ }
+ 
+ #define KIND_EXPECT_NARGS(N, MSG) \
+   { if (nargs != N) { bpf_error (MSG); return BPF_RELO_INVALID; } }
+ 
+ /* Helper functions to extract kind information.  */
+ static inline enum btf_core_reloc_kind
+ kind_access_index (tree *args ATTRIBUTE_UNUSED, int nargs)
+ {
+   KIND_EXPECT_NARGS (1,
+ 	"wrong number of arguments for access index core builtin");
+   return BPF_RELO_FIELD_BYTE_OFFSET;
+ }
+ static inline enum btf_core_reloc_kind
+ kind_preserve_field_info (tree *args, int nargs)
+ {
+   KIND_EXPECT_NARGS (2,
+ 	"wrong number of arguments for field info core builtin");
+   return (enum btf_core_reloc_kind) read_kind (args[1], 5,
+ 					       BPF_RELO_FIELD_BYTE_OFFSET);
+ }
+ static inline enum btf_core_reloc_kind
+ kind_enum_value (tree *args, int nargs)
+ {
+   KIND_EXPECT_NARGS (3,
+ 	"wrong number of arguments for enum value core builtin");
+   return (enum btf_core_reloc_kind) read_kind (args[2], 1,
+ 					       BPF_RELO_ENUMVAL_EXISTS);
+ }
+ static inline enum btf_core_reloc_kind
+ kind_type_id (tree *args, int nargs)
+ {
+   KIND_EXPECT_NARGS (2,
+ 	"wrong number of arguments for type id core builtin");
+   return (enum btf_core_reloc_kind) read_kind (args[1], 1,
+ 					       BPF_RELO_TYPE_ID_LOCAL);
+ }
+ static inline enum btf_core_reloc_kind
+ kind_preserve_type_info (tree *args, int nargs)
+ {
+   KIND_EXPECT_NARGS (2,
+ 	"wrong number of arguments for type info core builtin");
+   char val = read_kind (args[1], 2, 0);
+   switch (val)
+     {
+     case 0:
+       return BPF_RELO_TYPE_EXISTS;
+     case 1:
+       return BPF_RELO_TYPE_SIZE;
+     case 2:
+       return BPF_RELO_TYPE_MATCHES;
+     default:
+       break;
+     }
+   return BPF_RELO_INVALID;
+ }
+ 
+ /* Plugin handler used in the parser that allows to collect enum value
+    information that other wise would be folded and non recoverable.  */
+ 
+ void
+ bpf_handle_plugin_finish_type (void *event_data,
+ 			       void *data ATTRIBUTE_UNUSED)
+ {
+   tree type = (tree) event_data;
+ 
+   if (bpf_enum_mappings == NULL)
+     bpf_enum_mappings = hash_map<tree, tree>::create_ggc (10);
+ 
+   if (TREE_CODE (type) == ENUMERAL_TYPE)
+     for (tree l = TYPE_VALUES (type); l; l = TREE_CHAIN (l))
+       {
+ 	tree value = TREE_VALUE (l);
+ 
+ 	tree initial = DECL_INITIAL (value);
+ 	initial = copy_node (initial);
+ 	DECL_INITIAL (value) = initial;
+ 
+ 	tree *found = bpf_enum_mappings->get (initial);
+ 	if (found == NULL)
+ 	  bpf_enum_mappings->put (initial, value);
+       }
+ }
+ 
+ /* Initializes support information to process CO-RE builtins.
+    Defines information for the builtin processing, such as helper functions to
+    support the builtin convertion.  */
+ 
+ void
+ bpf_init_core_builtins (void)
+ {
+   memset (core_builtin_helpers, 0, sizeof (core_builtin_helpers));
+ 
+   core_builtin_helpers[BPF_BUILTIN_PRESERVE_ACCESS_INDEX] =
+     BPF_CORE_HELPER_SET (kind_access_index,
+ 			 NULL,
+ 			 NULL,
+ 			 NULL,
+ 			 true);
+   core_builtin_helpers[BPF_BUILTIN_PRESERVE_FIELD_INFO] =
+     BPF_CORE_HELPER_SET (kind_preserve_field_info,
+ 			 NULL,
+ 			 pack_field_expr,
+ 			 process_field_expr,
+ 			 true);
+   core_builtin_helpers[BPF_BUILTIN_BTF_TYPE_ID] =
+     BPF_CORE_HELPER_SET (kind_type_id,
+ 			 compare_same_ptr_type,
+ 			 pack_type,
+ 			 process_type,
+ 			 true);
+ 
+   core_builtin_helpers[BPF_BUILTIN_PRESERVE_TYPE_INFO] =
+     BPF_CORE_HELPER_SET (kind_preserve_type_info,
+ 			 compare_same_ptr_type,
+ 			 pack_type,
+ 			 process_type,
+ 			 true);
+ 
+   core_builtin_helpers[BPF_BUILTIN_PRESERVE_ENUM_VALUE] =
+     BPF_CORE_HELPER_SET (kind_enum_value,
+ 			 compare_same_ptr_expr,
+ 			 pack_enum_value,
+ 			 process_enum_value,
+ 			 true);
+ 
+   core_builtin_helpers[BPF_BUILTIN_CORE_RELOC] =
+     BPF_CORE_HELPER_SET (NULL, NULL, NULL, NULL, true);
+ 
+   /* Initialize plugin handler to record enums value for use in
+      __builtin_preserve_enum_value.  */
+   plugin_state = (enum bpf_plugin_states) flag_plugin_added;
+   flag_plugin_added = true;
+   register_callback ("bpf_collect_enum_info", PLUGIN_FINISH_TYPE,
+ 		     bpf_handle_plugin_finish_type, NULL);
+ }
+ 
+ /* This function returns the related __builtin_core_reloc call tree node to a
+    particular CO-RE builtin definition in FNDECL when called with
+    arguments ARGS.  */
+ 
+ static tree
+ construct_builtin_core_reloc (location_t loc, tree fndecl, tree *args,
+ 			      int nargs)
+ {
+   int code = DECL_MD_FUNCTION_CODE (fndecl);
+   builtin_helpers helper = core_builtin_helpers[code];
+ 
+   if (helper.is_valid)
+     {
+       gcc_assert (helper.kind);
+       gcc_assert (helper.pack);
+       gcc_assert (helper.process);
+ 
+       struct cr_local local_data = CR_LOCAL_EMPTY;
+       local_data.fail = false;
+ 
+       enum btf_core_reloc_kind kind = helper.kind (args, nargs);
+       if (kind == BPF_RELO_INVALID)
+ 	local_data.fail = true;
+       else if (helper.pack != NULL)
+ 	{
+ 	  local_data = helper.pack (args, kind, (enum bpf_builtins) code);
+ 	  local_data.reloc_data.orig_builtin_code = (enum bpf_builtins) code;
+ 	  local_data.reloc_data.orig_arg_expr = args[0];
+ 	}
+       else
+ 	gcc_unreachable ();
+ 
+       if (local_data.fail == true)
+ 	return error_mark_node;
+ 
+       if (local_data.reloc_decision == REPLACE_CREATE_RELOCATION)
+ 	{
+ 	  int index = search_builtin_data (helper.compare,
+ 					   &local_data.reloc_data);
+ 	  if (index == -1)
+ 	    index = allocate_builtin_data ();
+ 	  struct cr_builtins *data = get_builtin_data (index);
+ 	  memcpy (data, &local_data.reloc_data, sizeof (struct cr_builtins));
+ 
+ 	  tree fndecl = bpf_builtins[BPF_BUILTIN_CORE_RELOC];
+ 	  return  build_call_expr_loc (loc,
+ 				fndecl, 1,
+ 				build_int_cst (integer_type_node, index));
+ 	}
+     }
+   return NULL_TREE;
+ }
+ 
+ /* This function constructs the CO-RE safe code around field expressions.
+    If the expression is an array access, create an offset by multiplying the
+    index access by the __builtin_type_info call requesting the size of the
+    array element and multiplying by the index.  The offset is added to the
+    base pointer.
+    In a more formal way:
+      - base + (__blt_preserve_type_info (typeof(expr), SIZEOF) * array_i)
+ 
+    Please notice that __builtin_preserve_type_info is never really created, but
+    rather a call to __builtin_core_reloc that represents it.
+ 
+    Any other case, it is assumed to be a field access and instead a CO-RE field
+    expressions offset relocation is created and added to the base node.
+    More precisely:
+      - base + __builtin_preserve_field_expr (expr, SIZEOF)  */
+ 
+ static tree
+ core_expr_with_field_expr_plus_base (tree base, tree expr, bool leaf_node)
+ {
+   tree type = TREE_TYPE (expr);
+   tree args[2];
+ 
+   if (base == expr)
+     return expr;
+   else if (TREE_CODE (expr) == ARRAY_REF
+ 	   && leaf_node == false)
+     {
+       if (TREE_CODE (base) == MEM_REF)
+ 	base = TREE_OPERAND (base, 0);
+ 
+       tree array_index = TREE_OPERAND (expr, 1);
+       tree fndecl = bpf_builtins[BPF_BUILTIN_PRESERVE_TYPE_INFO];
+ 
+       tree type = TREE_TYPE (base);
+       gcc_assert (POINTER_TYPE_P (type)
+ 		  && TREE_CODE (type = TREE_TYPE (type)) == ARRAY_TYPE
+ 		  && (type = TREE_TYPE (type)) != NULL_TREE);
+       args[0] = type;
+       args[1] = build_int_cst (integer_type_node, BPF_TYPE_SIZE);
+       tree builtin_call = construct_builtin_core_reloc (UNKNOWN_LOCATION,
+ 							fndecl,
+ 							args, 2);
+ 
+       tree offset = fold_build2 (MULT_EXPR, size_type_node,
+ 			fold_build1 (NOP_EXPR, size_type_node, builtin_call),
+ 			fold_build1 (NOP_EXPR, size_type_node, array_index));
+ 
+       if (!POINTER_TYPE_P (TREE_TYPE (base)))
+ 	base = fold_build1 (ADDR_EXPR,
+ 			    build_pointer_type (TREE_TYPE (base)), base);
+ 
+       tree tmp = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node,
+ 			 fold_build1 (NOP_EXPR, ptr_type_node, base),
+ 			 offset);
+ 
+       tmp = fold_build1 (NOP_EXPR, build_pointer_type (type), tmp);
+       return tmp;
+     }
+   else
+     {
+       tree fndecl = bpf_builtins[BPF_BUILTIN_PRESERVE_FIELD_INFO];
+       args[0] = expr;
+       args[1] = build_int_cst (integer_type_node, BPF_FIELD_BYTE_OFFSET);
+       tree builtin_call = construct_builtin_core_reloc (UNKNOWN_LOCATION,
+ 							fndecl,
+ 							args, 2);
+ 
+       if (!POINTER_TYPE_P (TREE_TYPE (base)))
+ 	base = fold_build1 (ADDR_EXPR,
+ 			    build_pointer_type (TREE_TYPE (base)), base);
+ 
+       tree tmp = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node,
+ 			 fold_build1 (NOP_EXPR, ptr_type_node, base),
+ 			 fold_build1 (NOP_EXPR, size_type_node, builtin_call));
+       tmp = fold_build1 (NOP_EXPR, build_pointer_type (type), tmp);
+       return tmp;
+     }
+ }
+ 
+ /* This function takes arbitrary field expression and returns a CO-RE
+    compatible version by introducing CO-RE relocations.
+ 
+    In cases where the expression is not supported in CO-RE with a single
+    relocation, it creates multiple levels of access, i.e. if the expression
+    contains multiple indirections.
+    For example:
+      - A->B->C
+ 
+    It recursively traverses the expression to its leaf nodes and rollbacks
+    constructing the CO-RE relocations.  It calls
+    core_expr_with_field_expr_plus_base that creates the necessary CO-RE
+    relocations.
+ 
+    Arguments:
+     - EXPR: is the expression to be converted.  It should be validated by
+     compute_field_expr function before this function is called.
+     - CHANGED: is set to true if the returned tree node is different from
+     the input expr argument.
+     - ENTRY: internal only.  Should not be set in a call.  */
+ 
+ static tree
+ make_core_safe_access_index (tree expr, bool *changed, bool entry = true)
+ {
+   poly_int64 bitsize, bitpos;
+   tree var_off;
+   machine_mode mode;
+   int sign, reverse, vol;
+ 
+   tree base = get_inner_reference (expr, &bitsize, &bitpos, &var_off, &mode,
+ 				   &sign, &reverse, &vol);
+ 
+   if (base == NULL_TREE || base == expr)
+     return expr;
+ 
+   base = expr;
+ 
+   tree ret = NULL_TREE;
+   int n;
+   bool valid = true;
+   tree access_node = NULL_TREE;
+ 
+   /* In case the base is itself a valid field expression, first convert the
+      base in a CO-RE safe expression.
+      This seems to be a requirement since get_inner_reference not always
+      returns the true base of the expression.  */
+   if ((n = compute_field_expr (base, NULL, &valid, &access_node)) > 0
+       && valid == true)
+     {
+       if (TREE_CODE (access_node) == INDIRECT_REF)
+ 	base = TREE_OPERAND (access_node, 0);
+       else
+ 	base = access_node;
+ 
+       bool local_changed = false;
+       ret = make_core_safe_access_index (base, &local_changed, false);
+       if (local_changed == true)
+ 	{
+ 	  if (TREE_CODE (access_node) == INDIRECT_REF)
+ 	    base = fold_build1 (INDIRECT_REF,
+ 				TREE_TYPE (base),
+ 				ret);
+ 	  else
+ 	    base = ret;
+ 	}
+     }
+ 
+   /* The remaining is to traverse the field part of the field expression.  */
+   if (mode != VOIDmode && var_off == NULL_TREE)
+     {
+       *changed = true;
+       return core_expr_with_field_expr_plus_base (base, expr, true);
+     }
+   else
+     {
+       switch (TREE_CODE (expr))
+ 	{
+ 	case COMPONENT_REF:
+ 	case ARRAY_REF:
+ 	case ADDR_EXPR:
+ 	  {
+ 	    bool local_changed = false;
+ 	    tree type = TREE_TYPE (TREE_OPERAND (expr, 0));
+ 	    ret = make_core_safe_access_index (TREE_OPERAND (expr, 0),
+ 					       &local_changed, false);
+ 
+ 	    /* This variable is a replaced in the expr for algorithmic purposes.
+ 	       It reduces the expression just to the remaining sub-expression
+ 	       that still was not processed.  */
+ 	    if (local_changed == true)
+ 	      TREE_OPERAND (expr, 0) = create_tmp_var (type, "fake");
+ 	  }
+ 	  break;
+ 	default:
+ 	  ret = expr;
+ 	  break;
+ 	}
+     }
+ 
+   base = get_inner_reference (expr, &bitsize, &bitpos, &var_off, &mode,
+ 			      &sign, &reverse, &vol);
+ 
+   if ((ret != NULL_TREE
+        && mode != VOIDmode && var_off != NULL_TREE)
+       || entry == true)
+     {
+       *changed = true;
+       ret = core_expr_with_field_expr_plus_base (ret, expr, false);
+     }
+   return ret;
+ }
+ 
+ /* This function verifies if the NODE expression is a field expression and
+    changes and converts it to CO-RE.  This is used by a tree walker for any
+    __builtin_preserve_access_index argument expression from within
+    bpf_resolve_overloaded_core_builtin.  */
+ 
+ static tree
+ replace_core_access_index_comp_expr (tree *node, int *walk_subtrees,
+ 				     void *data ATTRIBUTE_UNUSED)
+ {
+   bool valid = true;
+   gcc_assert (*node != NULL_TREE);
+ 
+   tree *expr = node;
+   bool should_indirect = false;
+   if (TREE_CODE (*expr) == ADDR_EXPR)
+     expr = &TREE_OPERAND (*expr, 0);
+   else
+     should_indirect = true;
+ 
+   int n = compute_field_expr (*node, NULL, &valid, NULL);
+   if (valid == true && n > 0)
+     {
+       bool changed = false;
+       tree expr_test = make_core_safe_access_index (*expr, &changed);
+       *walk_subtrees = 0;
+ 
+       if (changed == true)
+ 	{
+ 	  if (should_indirect == true)
+ 	    expr_test = fold_build1 (INDIRECT_REF,
+ 				     TREE_TYPE (TREE_TYPE (expr_test)),
+ 				     expr_test);
+ 
+ 	  *expr = expr_test;
+ 	}
+     }
+   return NULL_TREE;
+ }
+ 
+ /* This function is used by bpf_resolve_overloaded_builtin defined in bpf.cc.
+    It is executed in a very early stage and processes any CO-RE builtins,
+    adapting the code and creating the more generic __builtin_core_reloc calls.
+    */
+ 
+ #define MAX_CORE_BUILTIN_ARGS 3
+ tree
+ bpf_resolve_overloaded_core_builtin (location_t loc, tree fndecl,
+ 				     void *arglist)
+ {
+   if (!bpf_require_core_support ())
+     return error_mark_node;
+ 
+   vec<tree, va_gc> *argsvec = static_cast<vec<tree, va_gc> *> (arglist);
+   tree args[MAX_CORE_BUILTIN_ARGS];
+   for (unsigned int i = 0; i < argsvec->length (); i++)
+     args[i] = (*argsvec)[i];
+ 
+   int code = DECL_MD_FUNCTION_CODE (fndecl);
+   if (code == BPF_BUILTIN_PRESERVE_ACCESS_INDEX)
+   {
+     walk_tree (&args[0], replace_core_access_index_comp_expr, NULL, NULL);
+     return args[0];
+   }
+ 
+   return construct_builtin_core_reloc (loc, fndecl, args, argsvec->length ());
+ }
+ 
+ /* Used in bpf_expand_builtin.  This function is called in RTL expand stage to
+    convert the internal __builtin_core_reloc in unspec:UNSPEC_CORE_RELOC RTL,
+    which will contain a third argument that is the index in the vec collected
+    in bpf_resolve_overloaded_core_builtin.  */
+ 
+ rtx
+ bpf_expand_core_builtin (tree exp, enum bpf_builtins code)
+ {
+   if (!TARGET_BPF_CORE)
+     return NULL_RTX;
+ 
+   switch (code)
+     {
+     case BPF_BUILTIN_CORE_RELOC:
+       {
+ 	tree index = CALL_EXPR_ARG (exp, 0);
+ 	struct cr_builtins *data = get_builtin_data (TREE_INT_CST_LOW (index));
+ 
+ 	rtx v = expand_normal (data->default_value);
+ 	rtx i = expand_normal (index);
+ 	  return gen_rtx_UNSPEC (DImode,
+ 				 gen_rtvec (2, v, i),
+ 				 UNSPEC_CORE_RELOC);
+       }
+       break;
+     default:
+       break;
+     }
+ 
+   return NULL_RTX;
+ }
+ 
+ 
+ /* This function is called in the final assembly output for the
+    unspec:UNSPEC_CORE_RELOC.  It recovers the vec index kept as the third
+    operand and collects the data from the vec.  With that it calls the process
+    helper in order to construct the data required for the CO-RE relocation.
+    Also it creates a label pointing to the unspec instruction and uses it in
+    the CO-RE relocation creation.  */
+ 
+ void
+ bpf_output_core_reloc (rtx *operands, int nr_ops)
+ {
+   /* Search for an UNSPEC_CORE_RELOC within the operands of the emitting
+      intructions.  */
+   rtx unspec_exp = NULL_RTX;
+   for (int i = 0; i < nr_ops; i++)
+     {
+       rtx op = operands[i];
+ 
+       /* An immediate CO-RE reloc.  */
+       if (GET_CODE (op) == UNSPEC
+ 	  && XINT (op, 1) == UNSPEC_CORE_RELOC)
+ 	unspec_exp = op;
+ 
+       /* In case of a MEM operation with an offset resolved in CO-RE.  */
+       if (GET_CODE (op) == MEM
+ 	  && (op = XEXP (op, 0)) != NULL_RTX
+ 	  && (GET_CODE (op) == PLUS))
+ 	{
+ 	  rtx x0 = XEXP (op, 0);
+ 	  rtx x1 = XEXP (op, 1);
+ 
+ 	  if (GET_CODE (x0) == UNSPEC
+ 	      && XINT (x0, 1) == UNSPEC_CORE_RELOC)
+ 	    unspec_exp = x0;
+ 	  if (GET_CODE (x1) == UNSPEC
+ 	      && XINT (x1, 1) == UNSPEC_CORE_RELOC)
+ 	    unspec_exp = x1;
+ 	}
+       if (unspec_exp != NULL_RTX)
+ 	break;
+     }
+ 
+   if (unspec_exp != NULL_RTX)
+     {
+       int index = INTVAL (XVECEXP (unspec_exp, 0, 1));
+       struct cr_builtins *data = get_builtin_data (index);
+       builtin_helpers helper;
+       helper = core_builtin_helpers[data->orig_builtin_code];
+ 
+       rtx_code_label * tmp_label = gen_label_rtx ();
+       output_asm_label (tmp_label);
+       assemble_name (asm_out_file, ":\n");
+ 
+       rtx orig_default_value = data->rtx_default_value;
+ 
+       gcc_assert (helper.process != NULL);
+       struct cr_final reloc_data = helper.process (data);
+       make_core_relo (&reloc_data, tmp_label);
+ 
+       /* Replace default value for later processing builtin types.
+ 	 An example are the type id builtins.  */
+       if (data->rtx_default_value != NULL_RTX
+ 	  && orig_default_value != data->rtx_default_value)
+ 	XVECEXP (unspec_exp, 0, 0) = data->rtx_default_value;
+     }
+ }
+ 
+ static tree
+ maybe_get_base_for_field_expr (tree expr)
+ {
+   poly_int64 bitsize, bitpos;
+   tree var_off;
+   machine_mode mode;
+   int sign, reverse, vol;
+ 
+   if (expr == NULL_TREE)
+     return NULL_TREE;
+ 
+   return get_inner_reference (expr, &bitsize, &bitpos, &var_off, &mode,
+ 			      &sign, &reverse, &vol);
+ }
+ 
+ /* Access functions to mark sub expressions as attributed with
+    __preserve_access_index.
+    This is required since in gimple format, in order to convert an expression as
+    CO-RE safe, we must create multiple gimple statements.
+    Also, only the type of the base of the expression might be attributed with
+    __preserve_access_index.  Nevertheless all the consecutive accesses to this
+    attributed node should also be converted to CO-RE safe.
+    Any LHS assigned values with CO-RE converted expressions are marked and
+    any uses of these values are later checked for further convertion.
+    The core_access_index_map functions allow to mark this nodes for later
+    convertion to CO-RE.
+    This mechanism are used by make_gimple_core_safe_access_index.  */
+ 
+ static GTY(()) hash_map<tree, tree> *core_access_index_map = NULL;
+ 
+ static void
+ core_access_clean (void)
+ {
+   if (core_access_index_map == NULL)
+     core_access_index_map = hash_map<tree, tree>::create_ggc (10);
+   core_access_index_map->empty ();
+ }
+ 
+ static bool
+ core_is_access_index (tree expr)
+ {
+   if (TREE_CODE (expr) == MEM_REF
+       || TREE_CODE (expr) == INDIRECT_REF)
+     expr = TREE_OPERAND (expr, 0);
+ 
+   tree *def = core_access_index_map->get (expr);
+   if (def)
+     return true;
+   return false;
+ }
+ 
+ static void
+ core_mark_as_access_index (tree expr)
+ {
+   if (TREE_CODE (expr) == MEM_REF
+       || TREE_CODE (expr) == INDIRECT_REF)
+     expr = TREE_OPERAND (expr, 0);
+ 
+   if (core_access_index_map->get (expr) == NULL)
+     core_access_index_map->put (expr, NULL_TREE);
+ }
+ 
+ /* This function is an adaptation of make_core_safe_access_index but to be used
+    in gimple format trees.  It is used by execute_lower_bpf_core, when
+    traversing the gimple tree looking for nodes that would have its type
+    attributed with __preserve_access_index.  In this particular cases any of
+    the expressions using such attributed types must be made CO-RE safe.  */
+ 
+ static tree
+ make_gimple_core_safe_access_index (tree *tp,
+ 				    int *walk_subtrees ATTRIBUTE_UNUSED,
+ 				    void *data)
+ {
+   struct walk_stmt_info *wi = (struct walk_stmt_info *) data;
+   bool valid = true;
+   int n = 0;
+ 
+   tree *patch = tp;
+   if (TREE_CODE (*patch) == ADDR_EXPR)
+     patch = &(TREE_OPERAND (*tp, 0));
+   tree orig_type = TREE_TYPE (*patch);
+ 
+   if ((is_attr_preserve_access (*patch)
+       || core_is_access_index (maybe_get_base_for_field_expr (*patch)))
+       && (n = compute_field_expr (*patch, NULL, &valid, NULL)) > 0
+       && valid == true)
+     {
+       bool changed = false;
+       tree expr_test = make_core_safe_access_index (*patch, &changed);
+ 
+ 
+       gimple_seq before = NULL;
+       push_gimplify_context ();
+       gimplify_expr (&expr_test, &before, NULL, is_gimple_val, fb_rvalue);
+ 
+       /* In case the ADDR_EXPR bypassed above is no longer needed.  */
+       if (patch != tp && TREE_TYPE (expr_test) == TREE_TYPE (*tp))
+ 	*tp = expr_test;
+       /* For non pointer value accesses.  */
+       else if (TREE_TYPE (expr_test) == build_pointer_type (orig_type))
+ 	*patch = fold_build2 (MEM_REF, TREE_TYPE (*patch),
+ 			      expr_test, build_int_cst (ptr_type_node, 0));
+       else
+ 	*patch = expr_test;
+ 
+       *tp = fold (*tp);
+ 
+       gsi_insert_seq_before (&(wi->gsi), before, GSI_LAST_NEW_STMT);
+       pop_gimplify_context (NULL);
+ 
+       wi->changed = true;
+       *walk_subtrees = false;
+ 
+       tree lhs;
+       if (!wi->is_lhs
+ 	  && (lhs = gimple_get_lhs (wi->stmt)) != NULL_TREE)
+ 	core_mark_as_access_index (lhs);
+     }
+   return NULL_TREE;
+ }
+ 
+ /* This is the entry point for the pass_data_lower_bpg_core.  It walks all the
+    statements in gimple, looking for expressions that are suppose to be CO-RE
+    preserve_access_index attributed.
+    Those expressions are processed and split by
+    make_gimple_core_safe_access_index function, which will both create the
+    calls to __build_core_reloc and split the expression in smaller parts in
+    case it cannot be represented CO-RE safeguarded by a single CO-RE
+    relocation.  */
+ 
+ static unsigned int
+ execute_lower_bpf_core (void)
+ {
+   remove_parser_plugin ();
+   if (!TARGET_BPF_CORE)
+     return 0;
+ 
+   gimple_seq body = gimple_body (current_function_decl);
+ 
+   struct walk_stmt_info wi;
+   core_access_clean ();
+ 
+   memset (&wi, 0, sizeof (wi));
+   wi.info = NULL;
+ 
+   /* Split preserve_access_index expressions when needed.  */
+   walk_gimple_seq_mod (&body, NULL, make_gimple_core_safe_access_index, &wi);
+   return 0;
+ }
+ 
+ namespace {
+ 
+ const pass_data pass_data_lower_bpf_core =
+ {
+   GIMPLE_PASS, /* type */
+   "bpf_core_lower", /* name */
+   OPTGROUP_NONE, /* optinfo_flags */
+   TV_NONE, /* tv_id */
+   PROP_gimple_any, /* properties_required */
+   0, /* properties_provided */
+   0, /* properties_destroyed */
+   0, /* todo_flags_start */
+   0, /* todo_flags_finish */
+ };
+ 
+ class pass_lower_bpf_core: public gimple_opt_pass
+ {
+ public:
+   pass_lower_bpf_core (gcc::context *ctxt)
+     : gimple_opt_pass (pass_data_lower_bpf_core, ctxt)
+   {}
+ 
+   /* opt_pass methods: */
+   unsigned int execute (function *) final override
+   {
+     return execute_lower_bpf_core ();
+   }
+ 
+ }; /* class pass_lower_bpf_core */
+ 
+ } /* anon namespace */
+ 
+ gimple_opt_pass *
+ make_pass_lower_bpf_core (gcc::context *ctxt)
+ {
+   return new pass_lower_bpf_core (ctxt);
+ }
+ 
+ #include "gt-core-builtins.h"
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/core-builtins.h gcc-14.1.0/gcc/config/bpf/core-builtins.h
*** gcc-13.2.0/gcc/config/bpf/core-builtins.h	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/bpf/core-builtins.h	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,65 ----
+ #ifndef BPF_CORE_BUILTINS_H
+ #define BPF_CORE_BUILTINS_H
+ 
+ #include "btfext-out.h"
+ 
+ enum bpf_builtins
+ {
+   BPF_BUILTIN_UNUSED = 0,
+   /* Built-ins for non-generic loads and stores.  */
+   BPF_BUILTIN_LOAD_BYTE,
+   BPF_BUILTIN_LOAD_HALF,
+   BPF_BUILTIN_LOAD_WORD,
+ 
+   /* Compile Once - Run Everywhere (CO-RE) support.  */
+   BPF_CORE_BUILTINS_MARKER = 10,
+   BPF_BUILTIN_PRESERVE_ACCESS_INDEX,
+   BPF_BUILTIN_PRESERVE_FIELD_INFO,
+   BPF_BUILTIN_BTF_TYPE_ID,
+   BPF_BUILTIN_PRESERVE_TYPE_INFO,
+   BPF_BUILTIN_PRESERVE_ENUM_VALUE,
+ 
+   /* CO-RE INTERNAL reloc.  */
+   BPF_BUILTIN_CORE_RELOC,
+ 
+   BPF_BUILTIN_MAX,
+ };
+ 
+ enum bpf_field_info_kind {
+   BPF_FIELD_BYTE_OFFSET = 0,	/* field byte offset */
+   BPF_FIELD_BYTE_SIZE = 1,
+   BPF_FIELD_EXISTS = 2,		/* field existence in target kernel */
+   BPF_FIELD_SIGNED = 3,
+   BPF_FIELD_LSHIFT_U64 = 4,
+   BPF_FIELD_RSHIFT_U64 = 5,
+ };
+ 
+ /* second argument to __builtin_btf_type_id () built-in */
+ enum bpf_type_id_kind {
+   BPF_TYPE_ID_LOCAL = 0,		/* BTF type ID in local program */
+   BPF_TYPE_ID_TARGET = 1,		/* BTF type ID in target kernel */
+ };
+ 
+ /* second argument to __builtin_preserve_type_info () built-in */
+ enum bpf_type_info_kind {
+   BPF_TYPE_EXISTS = 0,		/* type existence in target kernel */
+   BPF_TYPE_SIZE = 1,		/* type size in target kernel */
+   BPF_TYPE_MATCHES = 2,		/* type match in target kernel */
+ };
+ 
+ /* second argument to __builtin_preserve_enum_value () built-in */
+ enum bpf_enum_value_kind {
+   BPF_ENUMVAL_EXISTS = 0,		/* enum value existence in kernel */
+   BPF_ENUMVAL_VALUE = 1,		/* enum value value relocation */
+ };
+ 
+ extern GTY (()) tree bpf_builtins[(int) BPF_BUILTIN_MAX];
+ 
+ void bpf_init_core_builtins (void);
+ rtx bpf_expand_core_builtin (tree exp, enum bpf_builtins code);
+ tree bpf_resolve_overloaded_core_builtin (location_t loc, tree fndecl,
+ 					  void *arglist);
+ void
+ bpf_output_core_reloc (rtx *operands, int nr_ops);
+ 
+ #endif
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/coreout.cc gcc-14.1.0/gcc/config/bpf/coreout.cc
*** gcc-13.2.0/gcc/config/bpf/coreout.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/coreout.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,369 ****
- /* BPF Compile Once - Run Everywhere (CO-RE) support.
-    Copyright (C) 2021-2023 Free Software Foundation, Inc.
- 
-    This file is part of GCC.
- 
-    GCC is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 3, or (at your option)
-    any later version.
- 
-    GCC is distributed in the hope that it will be useful, but
-    WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    General Public License for more details.
- 
-    You should have received a copy of the GNU General Public License
-    along with GCC; see the file COPYING3.  If not see
-    <http://www.gnu.org/licenses/>.  */
- 
- #define IN_TARGET_CODE 1
- 
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "target.h"
- #include "memmodel.h"
- #include "tm_p.h"
- #include "output.h"
- #include "dwarf2asm.h"
- #include "ctfc.h"
- #include "btf.h"
- #include "rtl.h"
- 
- #include "coreout.h"
- 
- /* This file contains data structures and routines for construction and output
-    of BPF Compile Once - Run Everywhere (BPF CO-RE) information.
- 
-    eBPF programs written in C usually include Linux kernel headers, so that
-    they may interact with kernel data structures in a useful way. This
-    intrudces two major portability issues:
- 
-    1. Kernel data structures regularly change, with fields added, moved or
-       deleted between versions. An eBPF program cannot in general be expected
-       to run on any systems which does not share an identical kernel version to
-       the system on which it was compiled.
- 
-    2. Included kernel headers (and used data structures) may be internal, not
-       exposed in an userspace API, and therefore target-specific. An eBPF
-       program compiled on an x86_64 machine will include x86_64 kernel headers.
-       The resulting program may not run well (or at all) in machines of
-       another architecture.
- 
-    BPF CO-RE is designed to solve the first issue by leveraging the BPF loader
-    to adjust references to kernel data structures made by the program as-needed
-    according to versions of structures actually present on the host kernel.
- 
-    To achieve this, additional information is placed in a ".BTF.ext" section.
-    This information tells the loader which references will require adjusting,
-    and how to perform each necessary adjustment.
- 
-    For any access to a data structure which may require load-time adjustment,
-    the following information is recorded (making up a CO-RE relocation record):
-    - The BTF type ID of the outermost structure which is accessed.
-    - An access string encoding the accessed member via a series of member and
-      array indexes. These indexes are used to look up detailed BTF information
-      about the member.
-    - The offset of the appropriate instruction to patch in the BPF program.
-    - An integer specifying what kind of relocation to perform.
- 
-    A CO-RE-capable BPF loader reads this information together with the BTF
-    information of the program, compares it against BTF information of the host
-    kernel, and determines the appropriate way to patch the specified
-    instruction.
- 
-    Once all CO-RE relocations are resolved, the program is loaded and verified
-    as usual. The process can be summarized with the following diagram:
- 
-               +------------+
-               | C compiler |
-               +-----+------+
-                     | BPF + BTF + CO-RE relocations
-                     v
-               +------------+
-          +--->| BPF loader |
-          |    +-----+------+
-          |          | BPF (adapted)
-      BTF |          v
-          |    +------------+
-          +----+   Kernel   |
-               +------------+
- 
-    Note that a single ELF object may contain multiple eBPF programs. As a
-    result, a single .BTF.ext section can contain CO-RE relocations for multiple
-    programs in distinct sections.  */
- 
- /* Internal representation of a BPF CO-RE relocation record.  */
- 
- typedef struct GTY (()) bpf_core_reloc {
-   unsigned int bpfcr_type;		/* BTF type ID of container.  */
-   unsigned int  bpfcr_astr_off;		/* Offset of access string in .BTF
- 					   string table.  */
-   rtx_code_label * bpfcr_insn_label;	/* RTX label attached to instruction
- 					   to patch.  */
-   enum btf_core_reloc_kind bpfcr_kind;	/* Kind of relocation to perform.  */
- } bpf_core_reloc_t;
- 
- typedef bpf_core_reloc_t * bpf_core_reloc_ref;
- 
- /* Internal representation of a CO-RE relocation (sub)section of the
-    .BTF.ext information. One such section is generated for each ELF section
-    in the output object having relocations that a BPF loader must resolve.  */
- 
- typedef struct GTY (()) bpf_core_section {
-   /* Name of ELF section to which these CO-RE relocations apply.  */
-   const char * name;
- 
-   /* Offset of section name in .BTF string table.  */
-   uint32_t name_offset;
- 
-   /* Relocations in the section.  */
-   vec <bpf_core_reloc_ref, va_gc> * GTY (()) relocs;
- } bpf_core_section_t;
- 
- typedef bpf_core_section_t * bpf_core_section_ref;
- 
- /* BTF.ext debug info section.  */
- 
- static GTY (()) section * btf_ext_info_section;
- 
- static int btf_ext_label_num;
- 
- #ifndef BTF_EXT_INFO_SECTION_NAME
- #define BTF_EXT_INFO_SECTION_NAME ".BTF.ext"
- #endif
- 
- #define BTF_EXT_INFO_SECTION_FLAGS (SECTION_DEBUG)
- 
- #define MAX_BTF_EXT_LABEL_BYTES 40
- 
- static char btf_ext_info_section_label[MAX_BTF_EXT_LABEL_BYTES];
- 
- #ifndef BTF_EXT_INFO_SECTION_LABEL
- #define BTF_EXT_INFO_SECTION_LABEL "Lbtfext"
- #endif
- 
- static GTY (()) vec<bpf_core_section_ref, va_gc> *bpf_core_sections;
- 
- 
- /* Create a new BPF CO-RE relocation record, and add it to the appropriate
-    CO-RE section.  */
- 
- void
- bpf_core_reloc_add (const tree type, const char * section_name,
- 		    vec<unsigned int> *accessors, rtx_code_label *label,
- 		    enum btf_core_reloc_kind kind)
- {
-   char buf[40];
-   unsigned int i, n = 0;
- 
-   /* A valid CO-RE access must have at least one accessor.  */
-   if (accessors->length () < 1)
-     return;
- 
-   for (i = 0; i < accessors->length () - 1; i++)
-     n += snprintf (buf + n, sizeof (buf) - n, "%u:", (*accessors)[i]);
-   snprintf (buf + n, sizeof (buf) - n, "%u", (*accessors)[i]);
- 
-   bpf_core_reloc_ref bpfcr = ggc_cleared_alloc<bpf_core_reloc_t> ();
-   ctf_container_ref ctfc = ctf_get_tu_ctfc ();
- 
-   /* Buffer the access string in the auxiliary strtab.  */
-   ctf_add_string (ctfc, buf, &(bpfcr->bpfcr_astr_off), CTF_AUX_STRTAB);
- 
-   bpfcr->bpfcr_type = get_btf_id (ctf_lookup_tree_type (ctfc, type));
-   bpfcr->bpfcr_insn_label = label;
-   bpfcr->bpfcr_kind = kind;
- 
-   /* Add the CO-RE reloc to the appropriate section.  */
-   bpf_core_section_ref sec;
-   FOR_EACH_VEC_ELT (*bpf_core_sections, i, sec)
-     if (strcmp (sec->name, section_name) == 0)
-       {
- 	vec_safe_push (sec->relocs, bpfcr);
- 	return;
-       }
- 
-   /* If the CO-RE section does not yet exist, create it.  */
-   sec = ggc_cleared_alloc<bpf_core_section_t> ();
- 
-   ctf_add_string (ctfc, section_name, &sec->name_offset, CTF_AUX_STRTAB);
-   if (strcmp (section_name, ""))
-     ctfc->ctfc_aux_strlen += strlen (section_name) + 1;
- 
-   sec->name = section_name;
-   vec_alloc (sec->relocs, 1);
-   vec_safe_push (sec->relocs, bpfcr);
- 
-   vec_safe_push (bpf_core_sections, sec);
- }
- 
- /* Return the 0-based index of the field NODE in its containing struct or union
-    type.  */
- 
- int
- bpf_core_get_sou_member_index (ctf_container_ref ctfc, const tree node)
- {
-   if (TREE_CODE (node) == FIELD_DECL)
-     {
-       const tree container = DECL_CONTEXT (node);
- 
-       /* Lookup the CTF type info for the containing type.  */
-       dw_die_ref die = lookup_type_die (container);
-       if (die == NULL)
-         return -1;
- 
-       ctf_dtdef_ref dtd = ctf_dtd_lookup (ctfc, die);
-       if (dtd == NULL)
-         return -1;
- 
-       unsigned int kind = CTF_V2_INFO_KIND (dtd->dtd_data.ctti_info);
-       if (kind != CTF_K_STRUCT && kind != CTF_K_UNION)
-         return -1;
- 
-       tree field = TYPE_FIELDS (container);
-       int i = 0;
-       ctf_dmdef_t * dmd;
-       for (dmd = dtd->dtd_u.dtu_members;
-            dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd))
-         {
- 	  bool field_has_btf = get_btf_id (dmd->dmd_type) <= BTF_MAX_TYPE;
- 
- 	  if (field == node)
- 	    return field_has_btf ? i : -1;
- 
- 	  if (field_has_btf)
- 	    i++;
- 
- 	  field = DECL_CHAIN (field);
-         }
-     }
-   return -1;
- }
- 
- /* Compute and output the header of a .BTF.ext debug info section.  */
- 
- static void
- output_btfext_header (void)
- {
-   switch_to_section (btf_ext_info_section);
-   ASM_OUTPUT_LABEL (asm_out_file, btf_ext_info_section_label);
- 
-   dw2_asm_output_data (2, BTF_MAGIC, "btf_magic");
-   dw2_asm_output_data (1, BTF_VERSION, "btfext_version");
-   dw2_asm_output_data (1, 0, "btfext_flags");
-   dw2_asm_output_data (4, sizeof (struct btf_ext_header), "btfext_hdr_len");
- 
-   uint32_t func_info_off = 0, func_info_len = 0;
-   uint32_t line_info_off = 0, line_info_len = 0;
-   uint32_t core_relo_off = 0, core_relo_len = 0;
- 
-   /* Header core_relo_len is the sum total length in bytes of all CO-RE
-      relocation sections, plus the 4 byte record size.  */
-   size_t i;
-   bpf_core_section_ref sec;
-   core_relo_len += vec_safe_length (bpf_core_sections)
-     * sizeof (struct btf_ext_section_header);
- 
-   FOR_EACH_VEC_ELT (*bpf_core_sections, i, sec)
-     core_relo_len +=
-       vec_safe_length (sec->relocs) * sizeof (struct btf_ext_reloc);
- 
-   if (core_relo_len)
-     core_relo_len += sizeof (uint32_t);
- 
-   dw2_asm_output_data (4, func_info_off, "func_info_offset");
-   dw2_asm_output_data (4, func_info_len, "func_info_len");
- 
-   dw2_asm_output_data (4, line_info_off, "line_info_offset");
-   dw2_asm_output_data (4, line_info_len, "line_info_len");
- 
-   dw2_asm_output_data (4, core_relo_off, "core_relo_offset");
-   dw2_asm_output_data (4, core_relo_len, "core_relo_len");
- }
- 
- /* Output a single CO-RE relocation record.  */
- 
- static void
- output_asm_btfext_core_reloc (bpf_core_reloc_ref bpfcr)
- {
-   bpfcr->bpfcr_astr_off += ctfc_get_strtab_len (ctf_get_tu_ctfc (),
- 						CTF_STRTAB);
- 
-   dw2_assemble_integer (4, gen_rtx_LABEL_REF (Pmode, bpfcr->bpfcr_insn_label));
-   fprintf (asm_out_file, "\t%s bpfcr_insn\n", ASM_COMMENT_START);
- 
-   dw2_asm_output_data (4, bpfcr->bpfcr_type, "bpfcr_type");
-   dw2_asm_output_data (4, bpfcr->bpfcr_astr_off, "bpfcr_astr_off");
-   dw2_asm_output_data (4, bpfcr->bpfcr_kind, "bpfcr_kind");
- }
- 
- /* Output all CO-RE relocation records for a section.  */
- 
- static void
- output_btfext_core_relocs (bpf_core_section_ref sec)
- {
-   size_t i;
-   bpf_core_reloc_ref bpfcr;
-   FOR_EACH_VEC_ELT (*(sec->relocs), i, bpfcr)
-     output_asm_btfext_core_reloc (bpfcr);
- }
- 
- /* Output all CO-RE relocation sections.  */
- 
- static void
- output_btfext_core_sections (void)
- {
-   size_t i;
-   bpf_core_section_ref sec;
- 
-   /* BTF Ext section info. */
-   dw2_asm_output_data (4, sizeof (struct btf_ext_reloc),
- 		       "btfext_core_info_rec_size");
- 
-   FOR_EACH_VEC_ELT (*bpf_core_sections, i, sec)
-     {
-       /* Section name offset, refers to the offset of a string with the name of
- 	 the section to which these CORE relocations refer, e.g. '.text'.
- 	 The string is buffered in the BTF strings table.  */
- 
-       /* BTF specific strings are in CTF_AUX_STRTAB, which is concatenated
- 	 after CTF_STRTAB. Add the length of STRTAB to the final offset.  */
-       sec->name_offset += ctfc_get_strtab_len (ctf_get_tu_ctfc (), CTF_STRTAB);
- 
-       dw2_asm_output_data (4, sec->name_offset,  "btfext_secinfo_sec_name_off");
-       dw2_asm_output_data (4, vec_safe_length (sec->relocs),
- 			   "btfext_secinfo_num_recs");
- 
-       output_btfext_core_relocs (sec);
-     }
- }
- 
- /* Initialize sections, labels, and data structures for BTF.ext output.  */
- 
- void
- btf_ext_init (void)
- {
-   btf_ext_info_section = get_section (BTF_EXT_INFO_SECTION_NAME,
- 				      BTF_EXT_INFO_SECTION_FLAGS, NULL);
- 
-   ASM_GENERATE_INTERNAL_LABEL (btf_ext_info_section_label,
- 			       BTF_EXT_INFO_SECTION_LABEL,
- 			       btf_ext_label_num++);
- 
-   vec_alloc (bpf_core_sections, 1);
- }
- 
- /* Output the entire .BTF.ext section.  */
- 
- void
- btf_ext_output (void)
- {
-   output_btfext_header ();
-   output_btfext_core_sections ();
- 
-   bpf_core_sections = NULL;
- }
- 
- #include "gt-coreout.h"
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/coreout.h gcc-14.1.0/gcc/config/bpf/coreout.h
*** gcc-13.2.0/gcc/config/bpf/coreout.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/coreout.h	Thu Jan  1 00:00:00 1970
***************
*** 1,113 ****
- /* coreout.h - Declarations and definitions related to
-    BPF Compile Once - Run Everywhere (CO-RE) support.
-    Copyright (C) 2021-2023 Free Software Foundation, Inc.
- 
-    This file is part of GCC.
- 
-    GCC is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 3, or (at your option)
-    any later version.
- 
-    GCC is distributed in the hope that it will be useful, but
-    WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    General Public License for more details.
- 
-    You should have received a copy of the GNU General Public License
-    along with GCC; see the file COPYING3.  If not see
-    <http://www.gnu.org/licenses/>.  */
- 
- 
- #ifndef __COREOUT_H
- #define __COREOUT_H
- 
- #include <stdint.h>
- 
- #ifdef	__cplusplus
- extern "C"
- {
- #endif
- 
- /* .BTF.ext information.  */
- 
- struct btf_ext_section_header
- {
-   uint32_t sec_name_off;
-   uint32_t num_records;
- };
- 
- /* A funcinfo record, in the .BTF.ext funcinfo section.  */
- struct btf_ext_funcinfo
- {
-   uint32_t insn_off; /* Offset of the first instruction of the function.  */
-   uint32_t type;     /* Type ID of a BTF_KIND_FUNC type.  */
- };
- 
- /* A lineinfo record, in the .BTF.ext lineinfo section.  */
- struct btf_ext_lineinfo
- {
-   uint32_t insn_off;      /* Offset of the instruction.  */
-   uint32_t file_name_off; /* Offset of file name in BTF string table.  */
-   uint32_t line_off;      /* Offset of source line in BTF string table.  */
-   uint32_t line_col;      /* Line number (bits 31-11) and column (11-0).  */
- };
- 
- enum btf_core_reloc_kind
- {
-   BPF_RELO_FIELD_BYTE_OFFSET = 0,
-   BPF_RELO_FIELD_BYTE_SIZE = 1,
-   BPF_RELO_FIELD_EXISTS = 2,
-   BPF_RELO_FIELD_SIGNED = 3,
-   BPF_RELO_FIELD_LSHIFT_U64 = 4,
-   BPF_RELO_FIELD_RSHIFT_U64 = 5,
-   BPF_RELO_TYPE_ID_LOCAL = 6,
-   BPF_RELO_TYPE_ID_TARGET = 7,
-   BPF_RELO_TYPE_EXISTS = 8,
-   BPF_RELO_TYPE_SIZE = 9,
-   BPF_RELO_ENUMVAL_EXISTS = 10,
-   BPF_RELO_ENUMVAL_VALUE = 11
- };
- 
- struct btf_ext_reloc
- {
-   uint32_t insn_off;       /* Offset of instruction to be patched. A
- 			      section-relative label at compile time.  */
-   uint32_t type_id;        /* Type ID of the outermost containing entity, e.g.
- 			      the containing structure.  */
-   uint32_t access_str_off; /* Offset of CO-RE accessor string in .BTF strings
- 			      section.  */
-   uint32_t kind;           /* An enum btf_core_reloc_kind. Note that it always
- 			      takes 32 bits.  */
- };
- 
- struct btf_ext_header
- {
-   uint16_t magic;		/* Magic number (BTF_MAGIC).  */
-   uint8_t  version;		/* Data format version (BTF_VERSION).  */
-   uint8_t  flags;		/* Flags. Currently unused.  */
-   uint32_t hdr_len;		/* Length of this header in bytes.  */
- 
-   /* Following offsets are relative to the end of this header, in bytes.
-      Following lengths are in bytes.  */
-   uint32_t func_info_off;	/* Offset of funcinfo section.  */
-   uint32_t func_info_len;	/* Length of funcinfo section.  */
-   uint32_t line_info_off;	/* Offset of lineinfo section.  */
-   uint32_t line_info_len;	/* Length of lineinfo section.  */
- 
-   uint32_t core_relo_off;	/* Offset of CO-RE relocation section.  */
-   uint32_t core_relo_len;	/* Length of CO-RE relocation section.  */
- };
- 
- extern void btf_ext_init (void);
- extern void btf_ext_output (void);
- 
- extern void bpf_core_reloc_add (const tree, const char *, vec<unsigned int> *,
- 				rtx_code_label *, enum btf_core_reloc_kind);
- extern int bpf_core_get_sou_member_index (ctf_container_ref, const tree);
- 
- #ifdef	__cplusplus
- }
- #endif
- 
- #endif /* __COREOUT_H */
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/predicates.md gcc-14.1.0/gcc/config/bpf/predicates.md
*** gcc-13.2.0/gcc/config/bpf/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for eBPF.
! ;; Copyright (C) 2019-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Predicate definitions for eBPF.
! ;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 27,32 ****
--- 27,36 ----
              (match_test "IN_RANGE (INTVAL (op), 0, 0xffffffff)"))
         (match_code "symbol_ref,label_ref,const")))
  
+ (define_predicate "core_imm_operand"
+   (and (match_code "unspec")
+        (match_test "XINT (op, 1) == UNSPEC_CORE_RELOC")))
+ 
  (define_predicate "lddw_operand"
    (match_code "symbol_ref,label_ref,const,const_double,const_int"))
  
***************
*** 57,63 ****
  (define_predicate "mov_src_operand"
    (ior (match_operand 0 "memory_operand")
         (match_operand 0 "reg_or_imm_operand")
!        (match_operand 0 "lddw_operand")))
  
  (define_predicate "register_compare_operator"
    (match_code "eq,ne,geu,gtu,ge,gt"))
--- 61,68 ----
  (define_predicate "mov_src_operand"
    (ior (match_operand 0 "memory_operand")
         (match_operand 0 "reg_or_imm_operand")
!        (match_operand 0 "lddw_operand")
!        (match_operand 0 "core_imm_operand")))
  
  (define_predicate "register_compare_operator"
    (match_code "eq,ne,geu,gtu,ge,gt"))
diff -Nrcpad gcc-13.2.0/gcc/config/bpf/t-bpf gcc-14.1.0/gcc/config/bpf/t-bpf
*** gcc-13.2.0/gcc/config/bpf/t-bpf	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/bpf/t-bpf	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  
! TM_H += $(srcdir)/config/bpf/coreout.h
  
! coreout.o: $(srcdir)/config/bpf/coreout.cc
  	$(COMPILE) $<
  	$(POSTCOMPILE)
  
--- 1,15 ----
  
! TM_H += $(srcdir)/config/bpf/btfext-out.h $(srcdir)/config/bpf/core-builtins.h
  
! bpf-c.o: $(srcdir)/config/bpf/bpf-c.cc
! 	$(COMPILE) $<
! 	$(POSTCOMPILE)
! 
! btfext-out.o: $(srcdir)/config/bpf/btfext-out.cc
! 	$(COMPILE) $<
! 	$(POSTCOMPILE)
! 
! core-builtins.o: $(srcdir)/config/bpf/core-builtins.cc
  	$(COMPILE) $<
  	$(POSTCOMPILE)
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-isas.def gcc-14.1.0/gcc/config/c6x/c6x-isas.def
*** gcc-13.2.0/gcc/config/c6x/c6x-isas.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-isas.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* C6X ISA names.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* C6X ISA names.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-modes.def gcc-14.1.0/gcc/config/c6x/c6x-modes.def
*** gcc-13.2.0/gcc/config/c6x/c6x-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, for TI C6x.
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, for TI C6x.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-mult.md gcc-14.1.0/gcc/config/c6x/c6x-mult.md
*** gcc-13.2.0/gcc/config/c6x/c6x-mult.md	Thu Jul 27 08:17:14 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-mult.md	Tue May  7 06:52:51 2024
***************
*** 3,9 ****
  ;; Multiplication patterns for TI C6X.
  ;; This file is processed by genmult.sh to produce two variants of each
  ;; pattern, a normal one and a real_mult variant for modulo scheduling.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
--- 3,9 ----
  ;; Multiplication patterns for TI C6X.
  ;; This file is processed by genmult.sh to produce two variants of each
  ;; pattern, a normal one and a real_mult variant for modulo scheduling.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
***************
*** 424,430 ****
  ;; Multiplication patterns for TI C6X.
  ;; This file is processed by genmult.sh to produce two variants of each
  ;; pattern, a normal one and a real_mult variant for modulo scheduling.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
--- 424,430 ----
  ;; Multiplication patterns for TI C6X.
  ;; This file is processed by genmult.sh to produce two variants of each
  ;; pattern, a normal one and a real_mult variant for modulo scheduling.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-mult.md.in gcc-14.1.0/gcc/config/c6x/c6x-mult.md.in
*** gcc-13.2.0/gcc/config/c6x/c6x-mult.md.in	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-mult.md.in	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  ;; Multiplication patterns for TI C6X.
  ;; This file is processed by genmult.sh to produce two variants of each
  ;; pattern, a normal one and a real_mult variant for modulo scheduling.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
--- 1,7 ----
  ;; Multiplication patterns for TI C6X.
  ;; This file is processed by genmult.sh to produce two variants of each
  ;; pattern, a normal one and a real_mult variant for modulo scheduling.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-opts.h gcc-14.1.0/gcc/config/c6x/c6x-opts.h
*** gcc-13.2.0/gcc/config/c6x/c6x-opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-opts.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for option handling for TI C6X.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for option handling for TI C6X.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-protos.h gcc-14.1.0/gcc/config/c6x/c6x-protos.h
*** gcc-13.2.0/gcc/config/c6x/c6x-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Prototypes for exported functions defined in c6x.cc.
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
--- 1,5 ----
  /* Prototypes for exported functions defined in c6x.cc.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-sched.md gcc-14.1.0/gcc/config/c6x/c6x-sched.md
*** gcc-13.2.0/gcc/config/c6x/c6x-sched.md	Thu Jul 27 08:17:14 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-sched.md	Tue May  7 06:52:51 2024
***************
*** 4,10 ****
  ;; Definitions for side 1, cross n
  
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
--- 4,10 ----
  ;; Definitions for side 1, cross n
  
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
***************
*** 237,243 ****
  ;; Definitions for side 2, cross n
  
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
--- 237,243 ----
  ;; Definitions for side 2, cross n
  
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
***************
*** 470,476 ****
  ;; Definitions for side 1, cross y
  
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
--- 470,476 ----
  ;; Definitions for side 1, cross y
  
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
***************
*** 703,709 ****
  ;; Definitions for side 2, cross y
  
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
--- 703,709 ----
  ;; Definitions for side 2, cross y
  
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-sched.md.in gcc-14.1.0/gcc/config/c6x/c6x-sched.md.in
*** gcc-13.2.0/gcc/config/c6x/c6x-sched.md.in	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-sched.md.in	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
--- 1,5 ----
  ;; Scheduling description for TI C6X.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-tables.opt gcc-14.1.0/gcc/config/c6x/c6x-tables.opt
*** gcc-13.2.0/gcc/config/c6x/c6x-tables.opt	Thu Jul 27 08:17:14 2023
--- gcc-14.1.0/gcc/config/c6x/c6x-tables.opt	Tue May  7 06:52:51 2024
***************
*** 1,7 ****
  ; -*- buffer-read-only: t -*-
  ; Generated automatically by genopt.sh from c6x-isas.def.
  ;
! ; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,7 ----
  ; -*- buffer-read-only: t -*-
  ; Generated automatically by genopt.sh from c6x-isas.def.
  ;
! ; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x-tables.opt.urls gcc-14.1.0/gcc/config/c6x/c6x-tables.opt.urls
*** gcc-13.2.0/gcc/config/c6x/c6x-tables.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/c6x/c6x-tables.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/c6x/c6x-tables.opt and generated HTML
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x.cc gcc-14.1.0/gcc/config/c6x/c6x.cc
*** gcc-13.2.0/gcc/config/c6x/c6x.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target Code for TI C6X
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
--- 1,5 ----
  /* Target Code for TI C6X
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
*************** c6x_in_small_data_p (const_tree exp)
*** 855,864 ****
    if (TREE_CODE (exp) == FUNCTION_DECL)
      return false;
  
!   if (TREE_CODE (exp) == VAR_DECL && DECL_WEAK (exp))
      return false;
  
!   if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
      {
        const char *section = DECL_SECTION_NAME (exp);
  
--- 855,864 ----
    if (TREE_CODE (exp) == FUNCTION_DECL)
      return false;
  
!   if (VAR_P (exp) && DECL_WEAK (exp))
      return false;
  
!   if (VAR_P (exp) && DECL_SECTION_NAME (exp))
      {
        const char *section = DECL_SECTION_NAME (exp);
  
*************** c6x_legitimate_address_p_1 (machine_mode
*** 2444,2450 ****
  }
  
  static bool
! c6x_legitimate_address_p (machine_mode mode, rtx x, bool strict)
  {
    return c6x_legitimate_address_p_1 (mode, x, strict, false);
  }
--- 2444,2451 ----
  }
  
  static bool
! c6x_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 			  code_helper = ERROR_MARK)
  {
    return c6x_legitimate_address_p_1 (mode, x, strict, false);
  }
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x.h gcc-14.1.0/gcc/config/c6x/c6x.h
*** gcc-13.2.0/gcc/config/c6x/c6x.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target Definitions for TI C6X.
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
--- 1,5 ----
  /* Target Definitions for TI C6X.
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
*************** struct GTY(()) machine_function
*** 459,465 ****
        c6x_output_file_unwind (FILE);				\
        ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function");	\
        ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL));		\
!       ASM_OUTPUT_LABEL (FILE, NAME);				\
      }								\
    while (0)
  
--- 459,465 ----
        c6x_output_file_unwind (FILE);				\
        ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function");	\
        ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL));		\
!       ASM_OUTPUT_FUNCTION_LABEL (FILE, NAME, DECL);		\
      }								\
    while (0)
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x.md gcc-14.1.0/gcc/config/c6x/c6x.md
*** gcc-13.2.0/gcc/config/c6x/c6x.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for TI C6X.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Andrew Jenner <andrew@codesourcery.com>
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
--- 1,5 ----
  ;; Machine description for TI C6X.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Andrew Jenner <andrew@codesourcery.com>
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
***************
*** 1440,1446 ****
  
  (define_insn "mvilc"
    [(set (reg:SI REG_ILC)
! 	(unspec [(match_operand:SI 0 "register_operand" "a,b")] UNSPEC_MVILC))]
    "TARGET_INSNS_64PLUS"
    "%|%.\\tmvc\\t%$\\t%0, ILC"
    [(set_attr "predicable" "no")
--- 1440,1446 ----
  
  (define_insn "mvilc"
    [(set (reg:SI REG_ILC)
! 	(unspec:SI [(match_operand:SI 0 "register_operand" "a,b")] UNSPEC_MVILC))]
    "TARGET_INSNS_64PLUS"
    "%|%.\\tmvc\\t%$\\t%0, ILC"
    [(set_attr "predicable" "no")
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x.opt gcc-14.1.0/gcc/config/c6x/c6x.opt
*** gcc-13.2.0/gcc/config/c6x/c6x.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x.opt	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ; Option definitions for TI C6X.
! ; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ; Contributed by CodeSourcery.
  ;
--- 1,5 ----
  ; Option definitions for TI C6X.
! ; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ; Contributed by CodeSourcery.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x.opt.urls gcc-14.1.0/gcc/config/c6x/c6x.opt.urls
*** gcc-13.2.0/gcc/config/c6x/c6x.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/c6x/c6x.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,18 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/c6x/c6x.opt and generated HTML
+ 
+ mbig-endian
+ UrlSuffix(gcc/C6X-Options.html#index-mbig-endian-3)
+ 
+ mlittle-endian
+ UrlSuffix(gcc/C6X-Options.html#index-mlittle-endian-3)
+ 
+ msim
+ UrlSuffix(gcc/C6X-Options.html#index-msim-1)
+ 
+ ; skipping UrlSuffix for 'msdata=' due to finding no URLs
+ 
+ ; skipping UrlSuffix for 'mlong-calls' due to finding no URLs
+ 
+ march=
+ UrlSuffix(gcc/C6X-Options.html#index-march-3)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/c6x_intrinsics.h gcc-14.1.0/gcc/config/c6x/c6x_intrinsics.h
*** gcc-13.2.0/gcc/config/c6x/c6x_intrinsics.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/c6x_intrinsics.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Intrinsics for TI C6X.
  
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
--- 1,6 ----
  /* Intrinsics for TI C6X.
  
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by CodeSourcery.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/constraints.md gcc-14.1.0/gcc/config/c6x/constraints.md
*** gcc-13.2.0/gcc/config/c6x/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for TI C6X.
! ;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;; Contributed by Andrew Jenner <andrew@codesourcery.com>
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
--- 1,5 ----
  ;; Constraint definitions for TI C6X.
! ;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;; Contributed by Andrew Jenner <andrew@codesourcery.com>
  ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>
  ;; Contributed by CodeSourcery.
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/elf-common.h gcc-14.1.0/gcc/config/c6x/elf-common.h
*** gcc-13.2.0/gcc/config/c6x/elf-common.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/elf-common.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ELF definitions for TI C6X
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
--- 1,5 ----
  /* ELF definitions for TI C6X
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/elf.h gcc-14.1.0/gcc/config/c6x/elf.h
*** gcc-13.2.0/gcc/config/c6x/elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ELF definitions for TI C6X
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
--- 1,5 ----
  /* ELF definitions for TI C6X
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/genmult.sh gcc-14.1.0/gcc/config/c6x/genmult.sh
*** gcc-13.2.0/gcc/config/c6x/genmult.sh	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/genmult.sh	Tue May  7 06:51:37 2024
***************
*** 2,8 ****
  # Generate c6x-mult.md from c6x-mult.md.in
  # The input file is passed as an argument.
  
! # Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 2,8 ----
  # Generate c6x-mult.md from c6x-mult.md.in
  # The input file is passed as an argument.
  
! # Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/genopt.sh gcc-14.1.0/gcc/config/c6x/genopt.sh
*** gcc-13.2.0/gcc/config/c6x/genopt.sh	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/genopt.sh	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/bin/sh
  # Generate c6x-tables.opt from the lists in *.def.
! # Copyright (C) 2011-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/bin/sh
  # Generate c6x-tables.opt from the lists in *.def.
! # Copyright (C) 2011-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** cat <<EOF
*** 22,28 ****
  ; -*- buffer-read-only: t -*-
  ; Generated automatically by genopt.sh from c6x-isas.def.
  ;
! ; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 22,28 ----
  ; -*- buffer-read-only: t -*-
  ; Generated automatically by genopt.sh from c6x-isas.def.
  ;
! ; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/gensched.sh gcc-14.1.0/gcc/config/c6x/gensched.sh
*** gcc-13.2.0/gcc/config/c6x/gensched.sh	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/gensched.sh	Tue May  7 06:51:37 2024
***************
*** 2,8 ****
  # Generate c6x-sched.md from c6x-sched.md.in
  # The input file is passed as an argument.
  
! # Copyright (C) 2010-2023 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 2,8 ----
  # Generate c6x-sched.md from c6x-sched.md.in
  # The input file is passed as an argument.
  
! # Copyright (C) 2010-2024 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/predicates.md gcc-14.1.0/gcc/config/c6x/predicates.md
*** gcc-13.2.0/gcc/config/c6x/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Predicates for TI C6X
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
--- 1,5 ----
  /* Predicates for TI C6X
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/sync.md gcc-14.1.0/gcc/config/c6x/sync.md
*** gcc-13.2.0/gcc/config/c6x/sync.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/sync.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; GCC machine description for C6X synchronization instructions.
! ;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; GCC machine description for C6X synchronization instructions.
! ;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/t-c6x gcc-14.1.0/gcc/config/c6x/t-c6x
*** gcc-13.2.0/gcc/config/c6x/t-c6x	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/t-c6x	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Target Makefile Fragment for TI C6X.
! # Copyright (C) 2010-2023 Free Software Foundation, Inc.
  # Contributed by CodeSourcery.
  #
  # This file is part of GCC.
--- 1,5 ----
  # Target Makefile Fragment for TI C6X.
! # Copyright (C) 2010-2024 Free Software Foundation, Inc.
  # Contributed by CodeSourcery.
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/t-c6x-elf gcc-14.1.0/gcc/config/c6x/t-c6x-elf
*** gcc-13.2.0/gcc/config/c6x/t-c6x-elf	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/t-c6x-elf	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Target Makefile Fragment for TI C6X using ELF.
! # Copyright (C) 2010-2023 Free Software Foundation, Inc.
  # Contributed by CodeSourcery.
  #
  # This file is part of GCC.
--- 1,5 ----
  # Target Makefile Fragment for TI C6X using ELF.
! # Copyright (C) 2010-2024 Free Software Foundation, Inc.
  # Contributed by CodeSourcery.
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/c6x/uclinux-elf.h gcc-14.1.0/gcc/config/c6x/uclinux-elf.h
*** gcc-13.2.0/gcc/config/c6x/uclinux-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/c6x/uclinux-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for TI C6X running ucLinux using ELF
!    Copyright (C) 2010-2023 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
--- 1,5 ----
  /* Definitions for TI C6X running ucLinux using ELF
!    Copyright (C) 2010-2024 Free Software Foundation, Inc.
     Contributed by Andrew Jenner <andrew@codesourcery.com>
     Contributed by Bernd Schmidt <bernds@codesourcery.com>
  
diff -Nrcpad gcc-13.2.0/gcc/config/cris/constraints.md gcc-14.1.0/gcc/config/cris/constraints.md
*** gcc-13.2.0/gcc/config/cris/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for CRIS.
! ;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Constraint definitions for CRIS.
! ;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 96,102 ****
  (define_memory_constraint "Q"
    "@internal"
    (and (match_code "mem")
!        (match_test "cris_base_p (XEXP (op, 0), reload_in_progress
  					       || reload_completed)")))
  
  ;; Extra constraints.
--- 96,102 ----
  (define_memory_constraint "Q"
    "@internal"
    (and (match_code "mem")
!        (match_test "cris_base_p (XEXP (op, 0), lra_in_progress
  					       || reload_completed)")))
  
  ;; Extra constraints.
***************
*** 107,113 ****
  	    ;; Double indirect: [[reg]] or [[reg+]]?
         (ior (and (match_code "mem" "0")
  		 (match_test "cris_base_or_autoincr_p (XEXP (XEXP (op, 0), 0),
! 						       reload_in_progress
  						       || reload_completed)"))
  	    ;; Just an explicit indirect reference: [const]?
  	    (match_test "CONSTANT_P (XEXP (op, 0))")
--- 107,113 ----
  	    ;; Double indirect: [[reg]] or [[reg+]]?
         (ior (and (match_code "mem" "0")
  		 (match_test "cris_base_or_autoincr_p (XEXP (XEXP (op, 0), 0),
! 						       lra_in_progress
  						       || reload_completed)"))
  	    ;; Just an explicit indirect reference: [const]?
  	    (match_test "CONSTANT_P (XEXP (op, 0))")
***************
*** 115,143 ****
  	    (and (match_code "plus" "0")
  		      ;; A BDAP constant: [reg+(8|16|32)bit offset]?
  		 (ior (and (match_test "cris_base_p (XEXP (XEXP (op, 0), 0),
! 						     reload_in_progress
  						     || reload_completed)")
  			   (match_test "CONSTANT_P (XEXP (XEXP (op, 0), 1))"))
  		      ;; A BDAP register: [reg+[reg(+)].S]?
  		      (and (match_test "cris_base_p (XEXP (XEXP (op, 0), 0),
! 						     reload_in_progress
  						     || reload_completed)")
  			   (match_test "cris_bdap_index_p (XEXP (XEXP (op, 0), 1),
! 							   reload_in_progress
  							   || reload_completed)"))
  		      ;; Same, but with swapped arguments (no canonical
  		      ;; ordering between e.g. REG and MEM as of LAST_UPDATED
  		      ;; "Thu May 12 03:59:11 UTC 2005").
  		      (and (match_test "cris_base_p (XEXP (XEXP (op, 0), 1),
! 						     reload_in_progress
  						     || reload_completed)")
  			   (match_test "cris_bdap_index_p (XEXP (XEXP (op, 0), 0),
! 							   reload_in_progress
  							   || reload_completed)"))
  		      ;; A BIAP: [reg+reg.S] (MULT comes first).
  		      (and (match_test "cris_base_p (XEXP (XEXP (op, 0), 1),
! 						     reload_in_progress
  						     || reload_completed)")
  			   (match_test "cris_biap_index_p (XEXP (XEXP (op, 0), 0),
! 							   reload_in_progress
  							   || reload_completed)")))))))
--- 115,143 ----
  	    (and (match_code "plus" "0")
  		      ;; A BDAP constant: [reg+(8|16|32)bit offset]?
  		 (ior (and (match_test "cris_base_p (XEXP (XEXP (op, 0), 0),
! 						     lra_in_progress
  						     || reload_completed)")
  			   (match_test "CONSTANT_P (XEXP (XEXP (op, 0), 1))"))
  		      ;; A BDAP register: [reg+[reg(+)].S]?
  		      (and (match_test "cris_base_p (XEXP (XEXP (op, 0), 0),
! 						     lra_in_progress
  						     || reload_completed)")
  			   (match_test "cris_bdap_index_p (XEXP (XEXP (op, 0), 1),
! 							   lra_in_progress
  							   || reload_completed)"))
  		      ;; Same, but with swapped arguments (no canonical
  		      ;; ordering between e.g. REG and MEM as of LAST_UPDATED
  		      ;; "Thu May 12 03:59:11 UTC 2005").
  		      (and (match_test "cris_base_p (XEXP (XEXP (op, 0), 1),
! 						     lra_in_progress
  						     || reload_completed)")
  			   (match_test "cris_bdap_index_p (XEXP (XEXP (op, 0), 0),
! 							   lra_in_progress
  							   || reload_completed)"))
  		      ;; A BIAP: [reg+reg.S] (MULT comes first).
  		      (and (match_test "cris_base_p (XEXP (XEXP (op, 0), 1),
! 						     lra_in_progress
  						     || reload_completed)")
  			   (match_test "cris_biap_index_p (XEXP (XEXP (op, 0), 0),
! 							   lra_in_progress
  							   || reload_completed)")))))))
diff -Nrcpad gcc-13.2.0/gcc/config/cris/cris-modes.def gcc-14.1.0/gcc/config/cris/cris-modes.def
*** gcc-13.2.0/gcc/config/cris/cris-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/cris-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, for CRIS.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, for CRIS.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/cris/cris-passes.def gcc-14.1.0/gcc/config/cris/cris-passes.def
*** gcc-13.2.0/gcc/config/cris/cris-passes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/cris-passes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Description of target passes for Visium.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Description of target passes for Visium.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/cris/cris-protos.h gcc-14.1.0/gcc/config/cris/cris-protos.h
*** gcc-13.2.0/gcc/config/cris/cris-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/cris-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for GCC.  Part of the machine description for CRIS.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Axis Communications.
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions for GCC.  Part of the machine description for CRIS.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Axis Communications.
  
  This file is part of GCC.
*************** extern bool cris_reload_address_legitimi
*** 28,33 ****
--- 28,34 ----
  extern int cris_side_effect_mode_ok (enum rtx_code, rtx *, int, int,
                                       int, int, int);
  extern rtx cris_return_addr_rtx (int, rtx);
+ extern rtx cris_eh_return_handler_rtx ();
  extern rtx cris_split_movdx (rtx *);
  extern bool cris_base_p (const_rtx, bool);
  extern bool cris_base_or_autoincr_p (const_rtx, bool);
*************** extern rtx cris_emit_movem_store (rtx, r
*** 44,49 ****
--- 45,56 ----
  extern rtx_insn *cris_emit_insn (rtx x);
  extern void cris_order_for_addsi3 (rtx *, int);
  extern void cris_emit_trap_for_misalignment (rtx);
+ extern int cris_split_constant (HOST_WIDE_INT, enum rtx_code,
+ 				machine_mode, bool,
+ 				bool generate = false,
+ 				rtx dest = NULL_RTX,
+ 				rtx op = NULL_RTX);
+ #define cris_splittable_constant_p cris_split_constant
  #endif /* RTX_CODE */
  extern void cris_asm_output_label_ref (FILE *, char *);
  extern void cris_asm_output_ident (const char *);
diff -Nrcpad gcc-13.2.0/gcc/config/cris/cris.cc gcc-14.1.0/gcc/config/cris/cris.cc
*** gcc-13.2.0/gcc/config/cris/cris.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/cris.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for GCC.  Part of the machine description for CRIS.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Axis Communications.  Written by Hans-Peter Nilsson.
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions for GCC.  Part of the machine description for CRIS.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Axis Communications.  Written by Hans-Peter Nilsson.
  
  This file is part of GCC.
*************** static void cris_init_libfuncs (void);
*** 134,139 ****
--- 134,140 ----
  static unsigned int cris_postdbr_cmpelim (void);
  
  static reg_class_t cris_preferred_reload_class (rtx, reg_class_t);
+ static reg_class_t cris_spill_class (reg_class_t, machine_mode);
  
  static int cris_register_move_cost (machine_mode, reg_class_t, reg_class_t);
  static int cris_memory_move_cost (machine_mode, reg_class_t, bool);
*************** static void cris_function_arg_advance (c
*** 151,157 ****
  				       const function_arg_info &);
  static rtx_insn *cris_md_asm_adjust (vec<rtx> &, vec<rtx> &,
  				     vec<machine_mode> &, vec<const char *> &,
! 				     vec<rtx> &, HARD_REG_SET &, location_t);
  
  static void cris_option_override (void);
  
--- 152,159 ----
  				       const function_arg_info &);
  static rtx_insn *cris_md_asm_adjust (vec<rtx> &, vec<rtx> &,
  				     vec<machine_mode> &, vec<const char *> &,
! 				     vec<rtx> &, vec<rtx> &,
! 				     HARD_REG_SET &, location_t);
  
  static void cris_option_override (void);
  
*************** static unsigned int cris_hard_regno_nreg
*** 167,172 ****
--- 169,176 ----
  static bool cris_hard_regno_mode_ok (unsigned int, machine_mode);
  static HOST_WIDE_INT cris_static_rtx_alignment (machine_mode);
  static HOST_WIDE_INT cris_constant_alignment (const_tree, HOST_WIDE_INT);
+ static bool cris_legitimate_address_p_hook (machine_mode, rtx, bool,
+ 					    code_helper);
  
  /* This is the parsed result of the "-max-stack-stackframe=" option.  If
     it (still) is zero, then there was no such option given.  */
*************** int cris_cpu_version = CRIS_DEFAULT_CPU_
*** 215,229 ****
  #undef TARGET_INIT_LIBFUNCS
  #define TARGET_INIT_LIBFUNCS cris_init_libfuncs
  
- #undef TARGET_LRA_P
- #define TARGET_LRA_P hook_bool_void_false
- 
  #undef TARGET_LEGITIMATE_ADDRESS_P
! #define TARGET_LEGITIMATE_ADDRESS_P cris_legitimate_address_p
  
  #undef TARGET_PREFERRED_RELOAD_CLASS
  #define TARGET_PREFERRED_RELOAD_CLASS cris_preferred_reload_class
  
  /* We don't define TARGET_FIXED_CONDITION_CODE_REGS, as at the time of
     this writing, it has an effect only on pre-reload CSE and when
     scheduling (and for "macro fusion" at that).  Neither applies for
--- 219,233 ----
  #undef TARGET_INIT_LIBFUNCS
  #define TARGET_INIT_LIBFUNCS cris_init_libfuncs
  
  #undef TARGET_LEGITIMATE_ADDRESS_P
! #define TARGET_LEGITIMATE_ADDRESS_P cris_legitimate_address_p_hook
  
  #undef TARGET_PREFERRED_RELOAD_CLASS
  #define TARGET_PREFERRED_RELOAD_CLASS cris_preferred_reload_class
  
+ #undef TARGET_SPILL_CLASS
+ #define TARGET_SPILL_CLASS cris_spill_class
+ 
  /* We don't define TARGET_FIXED_CONDITION_CODE_REGS, as at the time of
     this writing, it has an effect only on pre-reload CSE and when
     scheduling (and for "macro fusion" at that).  Neither applies for
*************** cris_postdbr_cmpelim ()
*** 374,380 ****
    for (insn = get_insns (); insn; insn = next)
      {
        rtx_insn *outer_insn = insn;
-       rtx pat = PATTERN (insn);
  
        next = NEXT_INSN (outer_insn);
  
--- 378,383 ----
*************** cris_postdbr_cmpelim ()
*** 388,393 ****
--- 391,397 ----
  
        if (!NONDEBUG_INSN_P (insn))
  	continue;
+       rtx pat = PATTERN (insn);
  
        /* Consider filled delay slots; there might be a comparison there.
  	 It's only the second insn in a sequence that is interesting.  */
*************** cris_postdbr_cmpelim ()
*** 432,438 ****
  		  machine_mode ccmode = GET_MODE (src);
  		  rtx modeadjusted_dccr
  		    = (ccmode == CCmode ? dccr
! 		       : gen_rtx_REG (CCmode, CRIS_CC0_REGNUM));
  		  rtx compare
  		    /* We don't need to copy_rtx pat: we're going to
  		       delete that insn. */
--- 436,442 ----
  		  machine_mode ccmode = GET_MODE (src);
  		  rtx modeadjusted_dccr
  		    = (ccmode == CCmode ? dccr
! 		       : gen_rtx_REG (ccmode, CRIS_CC0_REGNUM));
  		  rtx compare
  		    /* We don't need to copy_rtx pat: we're going to
  		       delete that insn. */
*************** cris_return_addr_rtx (int count, rtx fra
*** 1378,1383 ****
--- 1382,1403 ----
      : NULL_RTX;
  }
  
+ /* Setting the EH return return address is done by a *store* to a memory
+    address expressed as relative to "*incoming* args".  That store will
+    be optimized away, unless the MEM is marked as volatile.  N.B.: no
+    optimization opportunities are expected to be lost due to this hack;
+    __builtin_eh_return isn't called from elsewhere than the EH machinery
+    in libgcc.  */
+ 
+ rtx
+ cris_eh_return_handler_rtx ()
+ {
+   rtx ret = cris_return_addr_rtx (0, NULL_RTX);
+   gcc_assert (MEM_P (ret));
+   MEM_VOLATILE_P (ret) = true;
+   return ret;
+ }
+ 
  /* Accessor used in cris.md:return because cfun->machine isn't available
     there.  */
  
*************** cris_biap_index_p (const_rtx x, bool str
*** 1535,1540 ****
--- 1555,1567 ----
  
  /* Worker function for TARGET_LEGITIMATE_ADDRESS_P.  */
  
+ static bool
+ cris_legitimate_address_p_hook (machine_mode mode, rtx x, bool strict,
+ 				code_helper)
+ {
+   return cris_legitimate_address_p (mode, x, strict);
+ }
+ 
  bool
  cris_legitimate_address_p (machine_mode mode, rtx x, bool strict)
  {
*************** cris_preferred_reload_class (rtx x, reg_
*** 1684,1689 ****
--- 1711,1724 ----
    return rclass;
  }
  
+ /* Worker function for TARGET_SPILL_CLASS.  */
+ 
+ static reg_class_t
+ cris_spill_class (reg_class_t /* orig_class */, machine_mode)
+ {
+   return ALL_REGS;
+ }
+ 
  /* Worker function for TARGET_REGISTER_MOVE_COST.  */
  
  static int
*************** cris_side_effect_mode_ok (enum rtx_code
*** 2137,2148 ****
    /* The operands may be swapped.  Canonicalize them in reg_rtx and
       val_rtx, where reg_rtx always is a reg (for this constraint to
       match).  */
!   if (! cris_base_p (reg_rtx, reload_in_progress || reload_completed))
      reg_rtx = val_rtx, val_rtx = ops[rreg];
  
    /* Don't forget to check that reg_rtx really is a reg.  If it isn't,
       we have no business.  */
!   if (! cris_base_p (reg_rtx, reload_in_progress || reload_completed))
      return 0;
  
    /* Don't do this when -mno-split.  */
--- 2172,2183 ----
    /* The operands may be swapped.  Canonicalize them in reg_rtx and
       val_rtx, where reg_rtx always is a reg (for this constraint to
       match).  */
!   if (! cris_base_p (reg_rtx, lra_in_progress || reload_completed))
      reg_rtx = val_rtx, val_rtx = ops[rreg];
  
    /* Don't forget to check that reg_rtx really is a reg.  If it isn't,
       we have no business.  */
!   if (! cris_base_p (reg_rtx, lra_in_progress || reload_completed))
      return 0;
  
    /* Don't do this when -mno-split.  */
*************** cris_side_effect_mode_ok (enum rtx_code
*** 2167,2175 ****
        /* Check if the lvalue register is the same as the "other
  	 operand".  If so, the result is undefined and we shouldn't do
  	 this.  FIXME:  Check again.  */
!       if ((cris_base_p (ops[lreg], reload_in_progress || reload_completed)
  	   && cris_base_p (ops[other_op],
! 			   reload_in_progress || reload_completed)
  	   && REGNO (ops[lreg]) == REGNO (ops[other_op]))
  	  || rtx_equal_p (ops[other_op], ops[lreg]))
        return 0;
--- 2202,2210 ----
        /* Check if the lvalue register is the same as the "other
  	 operand".  If so, the result is undefined and we shouldn't do
  	 this.  FIXME:  Check again.  */
!       if ((cris_base_p (ops[lreg], lra_in_progress || reload_completed)
  	   && cris_base_p (ops[other_op],
! 			   lra_in_progress || reload_completed)
  	   && REGNO (ops[lreg]) == REGNO (ops[other_op]))
  	  || rtx_equal_p (ops[other_op], ops[lreg]))
        return 0;
*************** cris_side_effect_mode_ok (enum rtx_code
*** 2182,2188 ****
      return 0;
  
    if (code == PLUS
!       && ! cris_base_p (val_rtx, reload_in_progress || reload_completed))
      {
  
        /* Do not allow rx = rx + n if a normal add or sub with same size
--- 2217,2223 ----
      return 0;
  
    if (code == PLUS
!       && ! cris_base_p (val_rtx, lra_in_progress || reload_completed))
      {
  
        /* Do not allow rx = rx + n if a normal add or sub with same size
*************** cris_side_effect_mode_ok (enum rtx_code
*** 2198,2210 ****
  
        if (MEM_P (val_rtx)
  	  && cris_base_or_autoincr_p (XEXP (val_rtx, 0),
! 				      reload_in_progress || reload_completed))
  	return 1;
  
        if (GET_CODE (val_rtx) == SIGN_EXTEND
  	  && MEM_P (XEXP (val_rtx, 0))
  	  && cris_base_or_autoincr_p (XEXP (XEXP (val_rtx, 0), 0),
! 				      reload_in_progress || reload_completed))
  	return 1;
  
        /* If we got here, it's not a valid addressing mode.  */
--- 2233,2245 ----
  
        if (MEM_P (val_rtx)
  	  && cris_base_or_autoincr_p (XEXP (val_rtx, 0),
! 				      lra_in_progress || reload_completed))
  	return 1;
  
        if (GET_CODE (val_rtx) == SIGN_EXTEND
  	  && MEM_P (XEXP (val_rtx, 0))
  	  && cris_base_or_autoincr_p (XEXP (XEXP (val_rtx, 0), 0),
! 				      lra_in_progress || reload_completed))
  	return 1;
  
        /* If we got here, it's not a valid addressing mode.  */
*************** cris_side_effect_mode_ok (enum rtx_code
*** 2213,2219 ****
    else if (code == MULT
  	   || (code == PLUS
  	       && cris_base_p (val_rtx,
! 			       reload_in_progress || reload_completed)))
      {
        /* Do not allow rx = rx + ry.S, since it doesn't give better code.  */
        if (rtx_equal_p (ops[lreg], reg_rtx)
--- 2248,2254 ----
    else if (code == MULT
  	   || (code == PLUS
  	       && cris_base_p (val_rtx,
! 			       lra_in_progress || reload_completed)))
      {
        /* Do not allow rx = rx + ry.S, since it doesn't give better code.  */
        if (rtx_equal_p (ops[lreg], reg_rtx)
*************** cris_side_effect_mode_ok (enum rtx_code
*** 2225,2231 ****
  	return 0;
  
        /* Only allow  r + ...  */
!       if (! cris_base_p (reg_rtx, reload_in_progress || reload_completed))
  	return 0;
  
        /* If we got here, all seems ok.
--- 2260,2266 ----
  	return 0;
  
        /* Only allow  r + ...  */
!       if (! cris_base_p (reg_rtx, lra_in_progress || reload_completed))
  	return 0;
  
        /* If we got here, all seems ok.
*************** cris_split_movdx (rtx *operands)
*** 2626,2631 ****
--- 2661,2767 ----
    return val;
  }
  
+ /* Try to split the constant WVAL into a number of separate insns of less cost
+    for the rtx operation CODE and the metric SPEED than using val as-is.
+    Generate those insns if GENERATE.  DEST holds the destination, and OP holds
+    the other operand for binary operations; NULL when CODE is SET.  Return the
+    number of insns for the operation or 0 if the constant can't be usefully
+    split (because it's already minimal or is not within range for the known
+    methods).  Parts stolen from arm.cc.  */
+ 
+ int
+ cris_split_constant (HOST_WIDE_INT wval, enum rtx_code code,
+ 		     machine_mode mode, bool speed ATTRIBUTE_UNUSED,
+ 		     bool generate, rtx dest, rtx op)
+ {
+   int32_t ival = (int32_t) wval;
+   uint32_t uval = (uint32_t) wval;
+ 
+   /* Can we do with two addq or two subq, improving chances of filling a
+      delay-slot?  At worst, we break even, both performance and
+      size-wise.  */
+   if (code == PLUS
+       && (IN_RANGE (ival, -63 * 2, -63 - 1)
+ 	  || IN_RANGE (ival, 63 + 1, 63 * 2)))
+     {
+       if (generate)
+ 	{
+ 	  int sign = ival < 0 ? -1 : 1;
+ 	  int aval = abs (ival);
+ 
+ 	  if (mode != SImode)
+ 	    {
+ 	      dest = gen_rtx_REG (SImode, REGNO (dest));
+ 	      op = gen_rtx_REG (SImode, REGNO (op));
+ 	    }
+ 	  emit_insn (gen_addsi3 (dest, op, GEN_INT (63 * sign)));
+ 	  emit_insn (gen_addsi3 (dest, op, GEN_INT ((aval - 63) * sign)));
+ 	}
+       return 2;
+     }
+ 
+   if (code != AND || IN_RANGE (ival, -32, 31)
+       /* Implemented using movu.[bw] elsewhere.  */
+       || ival == 255 || ival == 65535
+       /* Implemented using clear.[bw] elsewhere.  */
+       || uval == 0xffffff00 || uval == 0xffff0000)
+     return 0;
+ 
+   int i;
+ 
+   int msb_zeros = 0;
+   int lsb_zeros = 0;
+ 
+   /* Count number of leading zeros.  */
+   for (i = 31; i >= 0; i--)
+     {
+       if ((uval & (1 << i)) == 0)
+ 	msb_zeros++;
+       else
+ 	break;
+     }
+ 
+   /* Count number of trailing zero's.  */
+   for (i = 0; i <= 31; i++)
+     {
+       if ((uval & (1 << i)) == 0)
+ 	lsb_zeros++;
+       else
+ 	break;
+     }
+ 
+   /* Is there a lowest or highest part that is zero (but not both)
+      and the non-zero part is just ones?  */
+   if (exact_log2 ((uval >> lsb_zeros) + 1) > 0
+       && (lsb_zeros != 0) != (msb_zeros != 0))
+     {
+       /* If so, we can shift OP in the zero direction, then back.  We don't
+ 	 nominally win anything for uval < 256, except that the insns are split
+ 	 into slottable insns so it's always beneficial.  */
+       if (generate)
+ 	{
+ 	  if (mode != SImode)
+ 	    {
+ 	      dest = gen_rtx_REG (SImode, REGNO (dest));
+ 	      op = gen_rtx_REG (SImode, REGNO (op));
+ 	    }
+ 	  if (msb_zeros)
+ 	    {
+ 	      emit_insn (gen_ashlsi3 (dest, op, GEN_INT (msb_zeros)));
+ 	      emit_insn (gen_lshrsi3 (dest, op, GEN_INT (msb_zeros)));
+ 	    }
+ 	  else
+ 	    {
+ 	      emit_insn (gen_lshrsi3 (dest, op, GEN_INT (lsb_zeros)));
+ 	      emit_insn (gen_ashlsi3 (dest, op, GEN_INT (lsb_zeros)));
+ 	    }
+ 	}
+       return 2;
+     }
+ 
+   return 0;
+ }
+ 
  /* Try to change a comparison against a constant to be against zero, and
     an unsigned compare against zero to be an equality test.  Beware:
     only valid for compares of integer-type operands.  Also, note that we
*************** cris_function_arg_advance (cumulative_ar
*** 3527,3533 ****
  static rtx_insn *
  cris_md_asm_adjust (vec<rtx> &outputs, vec<rtx> &inputs,
  		    vec<machine_mode> & /*input_modes*/,
! 		    vec<const char *> &constraints, vec<rtx> &clobbers,
  		    HARD_REG_SET &clobbered_regs, location_t /*loc*/)
  {
    /* For the time being, all asms clobber condition codes.
--- 3663,3670 ----
  static rtx_insn *
  cris_md_asm_adjust (vec<rtx> &outputs, vec<rtx> &inputs,
  		    vec<machine_mode> & /*input_modes*/,
! 		    vec<const char *> &constraints,
! 		    vec<rtx> &/*uses*/, vec<rtx> &clobbers,
  		    HARD_REG_SET &clobbered_regs, location_t /*loc*/)
  {
    /* For the time being, all asms clobber condition codes.
diff -Nrcpad gcc-13.2.0/gcc/config/cris/cris.h gcc-14.1.0/gcc/config/cris/cris.h
*** gcc-13.2.0/gcc/config/cris/cris.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/cris.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for GCC.  Part of the machine description for CRIS.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Axis Communications.  Written by Hans-Peter Nilsson.
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions for GCC.  Part of the machine description for CRIS.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Axis Communications.  Written by Hans-Peter Nilsson.
  
  This file is part of GCC.
*************** enum reg_class
*** 551,558 ****
  #define CRIS_STACKADJ_REG CRIS_STRUCT_VALUE_REGNUM
  #define EH_RETURN_STACKADJ_RTX gen_rtx_REG (SImode, CRIS_STACKADJ_REG)
  
! #define EH_RETURN_HANDLER_RTX \
!   cris_return_addr_rtx (0, NULL)
  
  #define INIT_EXPANDERS cris_init_expanders ()
  
--- 551,557 ----
  #define CRIS_STACKADJ_REG CRIS_STRUCT_VALUE_REGNUM
  #define EH_RETURN_STACKADJ_RTX gen_rtx_REG (SImode, CRIS_STACKADJ_REG)
  
! #define EH_RETURN_HANDLER_RTX cris_eh_return_handler_rtx ()
  
  #define INIT_EXPANDERS cris_init_expanders ()
  
diff -Nrcpad gcc-13.2.0/gcc/config/cris/cris.md gcc-14.1.0/gcc/config/cris/cris.md
*** gcc-13.2.0/gcc/config/cris/cris.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/cris.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; GCC machine description for CRIS cpu cores.
! ;; Copyright (C) 1998-2023 Free Software Foundation, Inc.
  ;; Contributed by Axis Communications.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; GCC machine description for CRIS cpu cores.
! ;; Copyright (C) 1998-2024 Free Software Foundation, Inc.
  ;; Contributed by Axis Communications.
  
  ;; This file is part of GCC.
***************
*** 50,58 ****
    [
     ;; Stack frame deallocation barrier.
     CRIS_UNSPEC_FRAME_DEALLOC
- 
-    ;; Swap all 32 bits of the operand; 31 <=> 0, 30 <=> 1...
-    CRIS_UNSPEC_SWAP_BITS
    ])
  
  ;; Register numbers.
--- 50,55 ----
***************
*** 208,213 ****
--- 205,213 ----
  ;; Ditto, commutative operators (i.e. not minus).
  (define_code_iterator plusumin [plus umin])
  
+ ;; For opsplit1.
+ (define_code_iterator splitop [and plus])
+ 
  ;; The addsubbo and nd code-attributes form a hack.  We need to output
  ;; "addu.b", "subu.b" but "bound.b" (no "u"-suffix) which means we'd
  ;; need to refer to one iterator from the next.  But, that can't be
***************
*** 528,534 ****
       emitted) is the final value.  */
    if ((CONST_INT_P (operands[1]) || GET_CODE (operands[1]) == CONST_DOUBLE)
        && ! reload_completed
!       && ! reload_in_progress)
      {
        rtx insns;
        rtx op0 = operands[0];
--- 528,534 ----
       emitted) is the final value.  */
    if ((CONST_INT_P (operands[1]) || GET_CODE (operands[1]) == CONST_DOUBLE)
        && ! reload_completed
!       && ! lra_in_progress)
      {
        rtx insns;
        rtx op0 = operands[0];
***************
*** 1328,1334 ****
     && operands[1] != frame_pointer_rtx
     && CONST_INT_P (operands[3])
     && (INTVAL (operands[3]) == 2 || INTVAL (operands[3]) == 4)
!    && (reload_in_progress || reload_completed)"
    "#"
    "&& 1"
    [(set (match_dup 0)
--- 1328,1334 ----
     && operands[1] != frame_pointer_rtx
     && CONST_INT_P (operands[3])
     && (INTVAL (operands[3]) == 2 || INTVAL (operands[3]) == 4)
!    && (lra_in_progress || reload_completed)"
    "#"
    "&& 1"
    [(set (match_dup 0)
***************
*** 2174,2181 ****
  
  (define_insn "cris_swap_bits"
    [(set (match_operand:SI 0 "register_operand" "=r")
! 	(unspec:SI [(match_operand:SI 1 "register_operand" "0")]
! 		   CRIS_UNSPEC_SWAP_BITS))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
    "TARGET_HAS_SWAP"
    "swapwbr %0"
--- 2174,2180 ----
  
  (define_insn "cris_swap_bits"
    [(set (match_operand:SI 0 "register_operand" "=r")
! 	(bitreverse:SI (match_operand:SI 1 "register_operand" "0")))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
    "TARGET_HAS_SWAP"
    "swapwbr %0"
***************
*** 2190,2197 ****
  	  (match_operand:SI 1 "register_operand"))
       (clobber (reg:CC CRIS_CC0_REGNUM))])
     (parallel
!     [(set (match_dup 2)
! 	  (unspec:SI [(match_dup 2)] CRIS_UNSPEC_SWAP_BITS))
       (clobber (reg:CC CRIS_CC0_REGNUM))])
     (parallel
      [(set (match_operand:SI 0 "register_operand")
--- 2189,2195 ----
  	  (match_operand:SI 1 "register_operand"))
       (clobber (reg:CC CRIS_CC0_REGNUM))])
     (parallel
!     [(set (match_dup 2) (bitreverse:SI (match_dup 2)))
       (clobber (reg:CC CRIS_CC0_REGNUM))])
     (parallel
      [(set (match_operand:SI 0 "register_operand")
***************
*** 2687,2692 ****
--- 2685,2743 ----
      = INTVAL (operands[2]) <= 0xff ? GEN_INT (0xff) :  GEN_INT (0xffff);
  })
  
+ ;; Avoid, after opsplit1 with AND (below), sequences of:
+ ;;  lsrq N,R
+ ;;  lslq M,R
+ ;;  lsrq M,R
+ ;; (N < M), where we can fold the first lsrq into the lslq-lsrq, like:
+ ;;  lslq M-N,R
+ ;;  lsrq M,R
+ ;; We have to match this before opsplit1 below and before other peephole2s of
+ ;; lesser value, since peephole2 matching resumes at the first generated insn,
+ ;; and thus wouldn't match a pattern of the three shifts after opsplit1/AND.
+ ;; Note that this lsrandsplit1 is in turn of lesser value than movulsr, since
+ ;; that one doesn't require the same operand for source and destination, but
+ ;; they happen to be the same hard-register at peephole2 time even if
+ ;; naturally separated like in peep2-movulsr2.c, thus this placement.  (Source
+ ;; and destination will be re-separated and the move optimized out in
+ ;; cprop_hardreg at time of this writing.)
+ ;; Testcase: gcc.target/cris/peep2-lsrandsplit1.c
+ (define_peephole2 ; lsrandsplit1
+   [(parallel
+     [(set (match_operand:SI 0 "register_operand")
+ 	  (lshiftrt:SI
+ 	   (match_operand:SI 1 "register_operand")
+ 	   (match_operand:SI 2 "const_int_operand")))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])
+    (parallel
+     [(set (match_operand 3 "register_operand")
+ 	  (and
+ 	   (match_operand 4 "register_operand")
+ 	   (match_operand 5 "const_int_operand")))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])]
+   "REGNO (operands[0]) == REGNO (operands[1])
+    && REGNO (operands[0]) == REGNO (operands[3])
+    && REGNO (operands[0]) == REGNO (operands[4])
+    && (INTVAL (operands[2])
+        < (clz_hwi (INTVAL (operands[5])) - (HOST_BITS_PER_WIDE_INT - 32)))
+    && cris_splittable_constant_p (INTVAL (operands[5]), AND, SImode,
+ 				  optimize_function_for_speed_p (cfun)) == 2"
+   ;; We're guaranteed by the above hw_clz test (certainly non-zero) and the
+   ;; test for a two-insn return-value from cris_splittable_constant_p, that
+   ;; the cris_splittable_constant_p AND-replacement would be lslq-lsrq.
+   [(parallel
+     [(set (match_dup 0) (ashift:SI (match_dup 0) (match_dup 9)))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])
+    (parallel
+     [(set (match_dup 0) (lshiftrt:SI (match_dup 0) (match_dup 10)))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])]
+ {
+   HOST_WIDE_INT shiftval
+     = clz_hwi (INTVAL (operands[5])) - (HOST_BITS_PER_WIDE_INT - 32);
+   operands[9] = GEN_INT (shiftval - INTVAL (operands[2]));
+   operands[10] = GEN_INT (shiftval);
+ })
+ 
  ;; Testcase for the following four peepholes: gcc.target/cris/peep2-xsrand.c
  
  (define_peephole2 ; asrandb
***************
*** 2888,2893 ****
--- 2939,3009 ----
    operands[4] = GEN_INT (trunc_int_for_mode (INTVAL (operands[1]), QImode));
  })
  
+ ;; Somewhat similar to andqu, but a different range and expansion,
+ ;; intended to feed the output into opsplit1 with AND:
+ ;;  move.d 0x7ffff,$r10
+ ;;  and.d $r11,$r10
+ ;; into:
+ ;;  move.d $r11,$r10
+ ;;  and.d 0x7ffff,$r10
+ ;; which opsplit1/AND will change into:
+ ;;  move.d $r11,$r10 (unaffected by opsplit1/AND; shown only for context)
+ ;;  lslq 13,$r10
+ ;;  lsrq 13,$r10
+ ;; thereby winning in space, but in time only if the 0x7ffff happened to
+ ;; be unaligned in the code.
+ (define_peephole2 ; movandsplit1
+   [(parallel
+     [(set (match_operand 0 "register_operand")
+ 	  (match_operand 1 "const_int_operand"))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])
+    (parallel
+     [(set (match_operand 2 "register_operand")
+ 	  (and (match_operand 3 "register_operand")
+ 	       (match_operand 4 "register_operand")))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])]
+   "REGNO (operands[0]) == REGNO (operands[2])
+    && REGNO (operands[0]) == REGNO (operands[3])
+    && cris_splittable_constant_p (INTVAL (operands[1]), AND,
+ 				  GET_MODE (operands[2]),
+ 				  optimize_function_for_speed_p (cfun))"
+   [(parallel
+     [(set (match_dup 2) (match_dup 4))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])
+    (parallel
+     [(set (match_dup 2) (match_dup 5))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])]
+ {
+   operands[5] = gen_rtx_AND (GET_MODE (operands[2]), operands[2], operands[1]);
+ })
+ 
+ ;; Large (read: non-quick) numbers can sometimes be AND:ed by other means.
+ ;; Testcase: gcc.target/cris/peep2-andsplit1.c
+ ;; 
+ ;; Another case is add<ext> N,rx with -126..-64,64..126: it has the same
+ ;; size and execution time as two addq or subq, but addq and subq can fill
+ ;; a delay-slot.
+ (define_peephole2 ; opsplit1
+   [(parallel
+     [(set (match_operand 0 "register_operand")
+ 	  (splitop
+ 	   (match_operand 1 "register_operand")
+ 	   (match_operand 2 "const_int_operand")))
+      (clobber (reg:CC CRIS_CC0_REGNUM))])]
+    ;; Operands 0 and 1 can be separate identical objects, at least
+    ;; after matching peepholes above.  */
+   "REGNO (operands[0]) == REGNO (operands[1])
+    && cris_splittable_constant_p (INTVAL (operands[2]), <CODE>,
+ 				  GET_MODE (operands[0]),
+ 				  optimize_function_for_speed_p (cfun))"
+   [(const_int 0)]
+ {
+   cris_split_constant (INTVAL (operands[2]), <CODE>, GET_MODE (operands[0]),
+ 		       optimize_function_for_speed_p (cfun),
+ 		       true, operands[0], operands[0]);
+   DONE;
+ })
+ 
  ;; Fix a decomposed szext: fuse it with the memory operand of the
  ;; load.  This is typically the sign-extension part of a decomposed
  ;; "indirect offset" address.
diff -Nrcpad gcc-13.2.0/gcc/config/cris/cris.opt gcc-14.1.0/gcc/config/cris/cris.opt
*** gcc-13.2.0/gcc/config/cris/cris.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/cris.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the CRIS port of the compiler.
  
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the CRIS port of the compiler.
  
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/cris/cris.opt.urls gcc-14.1.0/gcc/config/cris/cris.opt.urls
*** gcc-13.2.0/gcc/config/cris/cris.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/cris/cris.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,65 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/cris/cris.opt and generated HTML
+ 
+ mmul-bug-workaround
+ UrlSuffix(gcc/CRIS-Options.html#index-mmul-bug-workaround)
+ 
+ metrax4
+ UrlSuffix(gcc/CRIS-Options.html#index-metrax4)
+ 
+ metrax100
+ UrlSuffix(gcc/CRIS-Options.html#index-metrax100)
+ 
+ mpdebug
+ UrlSuffix(gcc/CRIS-Options.html#index-mpdebug)
+ 
+ mcc-init
+ UrlSuffix(gcc/CRIS-Options.html#index-mcc-init)
+ 
+ mside-effects
+ UrlSuffix(gcc/CRIS-Options.html#index-mside-effects)
+ 
+ mno-side-effects
+ UrlSuffix(gcc/CRIS-Options.html#index-mno-side-effects)
+ 
+ mstack-align
+ UrlSuffix(gcc/CRIS-Options.html#index-mstack-align)
+ 
+ mno-stack-align
+ UrlSuffix(gcc/CRIS-Options.html#index-mno-stack-align)
+ 
+ mdata-align
+ UrlSuffix(gcc/CRIS-Options.html#index-mdata-align)
+ 
+ mno-data-align
+ UrlSuffix(gcc/CRIS-Options.html#index-mno-data-align)
+ 
+ mconst-align
+ UrlSuffix(gcc/CRIS-Options.html#index-mconst-align)
+ 
+ mno-const-align
+ UrlSuffix(gcc/CRIS-Options.html#index-mno-const-align)
+ 
+ m32-bit
+ UrlSuffix(gcc/CRIS-Options.html#index-m32-bit)
+ 
+ m16-bit
+ UrlSuffix(gcc/CRIS-Options.html#index-m16-bit)
+ 
+ m8-bit
+ UrlSuffix(gcc/CRIS-Options.html#index-m8-bit)
+ 
+ mprologue-epilogue
+ UrlSuffix(gcc/CRIS-Options.html#index-mprologue-epilogue)
+ 
+ mno-prologue-epilogue
+ UrlSuffix(gcc/CRIS-Options.html#index-mno-prologue-epilogue)
+ 
+ mcpu=
+ UrlSuffix(gcc/CRIS-Options.html#index-mcpu-3)
+ 
+ march=
+ UrlSuffix(gcc/CRIS-Options.html#index-march-4)
+ 
+ mtune=
+ UrlSuffix(gcc/CRIS-Options.html#index-mtune-5)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/cris/elf.opt gcc-14.1.0/gcc/config/cris/elf.opt
*** gcc-13.2.0/gcc/config/cris/elf.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/elf.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; ELF-specific options for the CRIS port of the compiler.
  
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; ELF-specific options for the CRIS port of the compiler.
  
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/cris/elf.opt.urls gcc-14.1.0/gcc/config/cris/elf.opt.urls
*** gcc-13.2.0/gcc/config/cris/elf.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/cris/elf.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,8 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/cris/elf.opt and generated HTML
+ 
+ melf
+ UrlSuffix(gcc/CRIS-Options.html#index-melf)
+ 
+ sim
+ UrlSuffix(gcc/CRIS-Options.html#index-sim)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/cris/predicates.md gcc-14.1.0/gcc/config/cris/predicates.md
*** gcc-13.2.0/gcc/config/cris/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Operand and operator predicates for the GCC CRIS port.
! ;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Operand and operator predicates for the GCC CRIS port.
! ;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/cris/sync.md gcc-14.1.0/gcc/config/cris/sync.md
*** gcc-13.2.0/gcc/config/cris/sync.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/sync.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; GCC machine description for CRIS atomic memory sequences.
! ;; Copyright (C) 2012-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; GCC machine description for CRIS atomic memory sequences.
! ;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/cris/t-cris gcc-14.1.0/gcc/config/cris/t-cris
*** gcc-13.2.0/gcc/config/cris/t-cris	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/t-cris	Tue May  7 06:51:37 2024
***************
*** 3,9 ****
  #
  # The Makefile fragment to include when compiling gcc et al for CRIS.
  #
! # Copyright (C) 2001-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 3,9 ----
  #
  # The Makefile fragment to include when compiling gcc et al for CRIS.
  #
! # Copyright (C) 2001-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/cris/t-elfmulti gcc-14.1.0/gcc/config/cris/t-elfmulti
*** gcc-13.2.0/gcc/config/cris/t-elfmulti	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/cris/t-elfmulti	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2001-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2001-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/csky/constraints.md gcc-14.1.0/gcc/config/csky/constraints.md
*** gcc-13.2.0/gcc/config/csky/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraints for C-SKY.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Constraints for C-SKY.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky-elf.h gcc-14.1.0/gcc/config/csky/csky-elf.h
*** gcc-13.2.0/gcc/config/csky/csky-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declarations for bare-metal C-SKY targets.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* Declarations for bare-metal C-SKY targets.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky-linux-elf.h gcc-14.1.0/gcc/config/csky/csky-linux-elf.h
*** gcc-13.2.0/gcc/config/csky/csky-linux-elf.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky-linux-elf.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declarations for C-SKY targets running Linux.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* Declarations for C-SKY targets running Linux.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky-modes.def gcc-14.1.0/gcc/config/csky/csky-modes.def
*** gcc-13.2.0/gcc/config/csky/csky-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* C-SKY extra machine modes.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* C-SKY extra machine modes.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky-protos.h gcc-14.1.0/gcc/config/csky/csky-protos.h
*** gcc-13.2.0/gcc/config/csky/csky-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Prototype declarations for the C-SKY back end.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* Prototype declarations for the C-SKY back end.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky.cc gcc-14.1.0/gcc/config/csky/csky.cc
*** gcc-13.2.0/gcc/config/csky/csky.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* GCC backend functions for C-SKY targets.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* GCC backend functions for C-SKY targets.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
*************** const int csky_debugger_regno[FIRST_PSEU
*** 211,226 ****
  /* Table of machine attributes.  */
  static tree csky_handle_fndecl_attribute (tree *, tree, tree, int, bool *);
  static tree csky_handle_isr_attribute (tree *, tree, tree, int, bool *);
! static const struct attribute_spec csky_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
    { "naked",	 0, 0, true,  false, false, false, csky_handle_fndecl_attribute, NULL },
    /* Interrupt Service Routines have special prologue and epilogue requirements.  */
    { "interrupt", 0, 1, false, false, false, false, csky_handle_isr_attribute,	 NULL },
!   { "isr",	 0, 1, false, false, false, false, csky_handle_isr_attribute,	 NULL },
!   { NULL,	 0, 0, false, false, false, false, NULL,			 NULL }
! };
  
  /* A C structure for machine-specific, per-function data.
     This is added to the cfun structure.  */
--- 211,225 ----
  /* Table of machine attributes.  */
  static tree csky_handle_fndecl_attribute (tree *, tree, tree, int, bool *);
  static tree csky_handle_isr_attribute (tree *, tree, tree, int, bool *);
! TARGET_GNU_ATTRIBUTES (csky_attribute_table,
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
    { "naked",	 0, 0, true,  false, false, false, csky_handle_fndecl_attribute, NULL },
    /* Interrupt Service Routines have special prologue and epilogue requirements.  */
    { "interrupt", 0, 1, false, false, false, false, csky_handle_isr_attribute,	 NULL },
!   { "isr",	 0, 1, false, false, false, false, csky_handle_isr_attribute,	 NULL }
! });
  
  /* A C structure for machine-specific, per-function data.
     This is added to the cfun structure.  */
*************** csky_setup_incoming_varargs (cumulative_
*** 2091,2097 ****
  
    cfun->machine->uses_anonymous_args = 1;
    local_cum = *pcum;
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl)))
      csky_function_arg_advance (local_cum_v, arg);
    regs_to_push = CSKY_NPARM_REGS - local_cum.reg;
    if (regs_to_push)
--- 2090,2097 ----
  
    cfun->machine->uses_anonymous_args = 1;
    local_cum = *pcum;
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl))
!       || arg.type != NULL_TREE)
      csky_function_arg_advance (local_cum_v, arg);
    regs_to_push = CSKY_NPARM_REGS - local_cum.reg;
    if (regs_to_push)
*************** csky_legitimate_index_p (machine_mode mo
*** 3186,3192 ****
     be recognized.  */
  
  static bool
! csky_legitimate_address_p (machine_mode mode, rtx addr, bool strict_p)
  {
    enum rtx_code code = GET_CODE (addr);
  
--- 3186,3193 ----
     be recognized.  */
  
  static bool
! csky_legitimate_address_p (machine_mode mode, rtx addr, bool strict_p,
! 			   code_helper = ERROR_MARK)
  {
    enum rtx_code code = GET_CODE (addr);
  
*************** csky_handle_isr_attribute (tree *node, t
*** 6490,6497 ****
      }
    else
      {
!       if (TREE_CODE (*node) == FUNCTION_TYPE
! 	  || TREE_CODE (*node) == METHOD_TYPE)
  	{
  	  if (csky_isr_value (args) == CSKY_FT_UNKNOWN)
  	    {
--- 6491,6497 ----
      }
    else
      {
!       if (FUNC_OR_METHOD_TYPE_P (*node))
  	{
  	  if (csky_isr_value (args) == CSKY_FT_UNKNOWN)
  	    {
*************** csky_handle_isr_attribute (tree *node, t
*** 6500,6507 ****
  	    }
  	}
        else if (TREE_CODE (*node) == POINTER_TYPE
! 	       && (TREE_CODE (TREE_TYPE (*node)) == FUNCTION_TYPE
! 		   || TREE_CODE (TREE_TYPE (*node)) == METHOD_TYPE)
  	       && csky_isr_value (args) != CSKY_FT_UNKNOWN)
  	{
  	  *node = build_variant_type_copy (*node);
--- 6500,6506 ----
  	    }
  	}
        else if (TREE_CODE (*node) == POINTER_TYPE
! 	       && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (*node))
  	       && csky_isr_value (args) != CSKY_FT_UNKNOWN)
  	{
  	  *node = build_variant_type_copy (*node);
*************** csky_init_builtins (void)
*** 7319,7325 ****
  static const char *
  csky_mangle_type (const_tree type)
  {
!   if (TREE_CODE (type) == REAL_TYPE
        && TYPE_PRECISION (type) == 16
        && TYPE_MAIN_VARIANT (type) != float16_type_node)
      return "Dh";
--- 7318,7324 ----
  static const char *
  csky_mangle_type (const_tree type)
  {
!   if (SCALAR_FLOAT_TYPE_P (type)
        && TYPE_PRECISION (type) == 16
        && TYPE_MAIN_VARIANT (type) != float16_type_node)
      return "Dh";
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky.h gcc-14.1.0/gcc/config/csky/csky.h
*** gcc-13.2.0/gcc/config/csky/csky.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Declarations for the C-SKY back end.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* Declarations for the C-SKY back end.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky.md gcc-14.1.0/gcc/config/csky/csky.md
*** gcc-13.2.0/gcc/config/csky/csky.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for C-SKY processors.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for C-SKY processors.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky.opt gcc-14.1.0/gcc/config/csky/csky.opt
*** gcc-13.2.0/gcc/config/csky/csky.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky.opt	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Command-line options for the C-SKY back end.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Command-line options for the C-SKY back end.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky.opt.urls gcc-14.1.0/gcc/config/csky/csky.opt.urls
*** gcc-13.2.0/gcc/config/csky/csky.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/csky/csky.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,104 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/csky/csky.opt and generated HTML
+ 
+ march=
+ UrlSuffix(gcc/C-SKY-Options.html#index-march_003d)
+ 
+ mcpu=
+ UrlSuffix(gcc/C-SKY-Options.html#index-mcpu_003d-1)
+ 
+ mbig-endian
+ UrlSuffix(gcc/C-SKY-Options.html#index-mbig-endian-4)
+ 
+ EB
+ UrlSuffix(gcc/C-SKY-Options.html#index-EB-1)
+ 
+ mlittle-endian
+ UrlSuffix(gcc/C-SKY-Options.html#index-mlittle-endian-4)
+ 
+ EL
+ UrlSuffix(gcc/C-SKY-Options.html#index-EL-1)
+ 
+ mhard-float
+ UrlSuffix(gcc/C-SKY-Options.html#index-mhard-float)
+ 
+ msoft-float
+ UrlSuffix(gcc/C-SKY-Options.html#index-msoft-float-1)
+ 
+ mfloat-abi=
+ UrlSuffix(gcc/C-SKY-Options.html#index-mfloat-abi-1)
+ 
+ mfpu=
+ UrlSuffix(gcc/C-SKY-Options.html#index-mfpu_003d)
+ 
+ mdouble-float
+ UrlSuffix(gcc/C-SKY-Options.html#index-mdouble-float)
+ 
+ mfdivdu
+ UrlSuffix(gcc/C-SKY-Options.html#index-mfdivdu)
+ 
+ melrw
+ UrlSuffix(gcc/C-SKY-Options.html#index-melrw)
+ 
+ mistack
+ UrlSuffix(gcc/C-SKY-Options.html#index-mistack)
+ 
+ mmp
+ UrlSuffix(gcc/C-SKY-Options.html#index-mmp)
+ 
+ mcp
+ UrlSuffix(gcc/C-SKY-Options.html#index-mcp)
+ 
+ mcache
+ UrlSuffix(gcc/C-SKY-Options.html#index-mcache)
+ 
+ msecurity
+ UrlSuffix(gcc/C-SKY-Options.html#index-msecurity)
+ 
+ mtrust
+ UrlSuffix(gcc/C-SKY-Options.html#index-mtrust)
+ 
+ mdsp
+ UrlSuffix(gcc/C-SKY-Options.html#index-mdsp)
+ 
+ medsp
+ UrlSuffix(gcc/C-SKY-Options.html#index-medsp)
+ 
+ mvdsp
+ UrlSuffix(gcc/C-SKY-Options.html#index-mvdsp)
+ 
+ mdiv
+ UrlSuffix(gcc/C-SKY-Options.html#index-mdiv)
+ 
+ msmart
+ UrlSuffix(gcc/C-SKY-Options.html#index-msmart)
+ 
+ mhigh-registers
+ UrlSuffix(gcc/C-SKY-Options.html#index-mhigh-registers)
+ 
+ manchor
+ UrlSuffix(gcc/C-SKY-Options.html#index-manchor)
+ 
+ mpushpop
+ UrlSuffix(gcc/C-SKY-Options.html#index-mpushpop)
+ 
+ mmultiple-stld
+ UrlSuffix(gcc/C-SKY-Options.html#index-mmultiple-stld)
+ 
+ mconstpool
+ UrlSuffix(gcc/C-SKY-Options.html#index-mconstpool)
+ 
+ mstack-size
+ UrlSuffix(gcc/C-SKY-Options.html#index-mstack-size-1)
+ 
+ mccrt
+ UrlSuffix(gcc/C-SKY-Options.html#index-mccrt)
+ 
+ mbranch-cost=
+ UrlSuffix(gcc/C-SKY-Options.html#index-mbranch-cost_003d)
+ 
+ msched-prolog
+ UrlSuffix(gcc/C-SKY-Options.html#index-msched-prolog-1)
+ 
+ msim
+ UrlSuffix(gcc/C-SKY-Options.html#index-msim-2)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_cores.def gcc-14.1.0/gcc/config/csky/csky_cores.def
*** gcc-13.2.0/gcc/config/csky/csky_cores.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_cores.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Architecture and core descriptions for the C-SKY back end.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* Architecture and core descriptions for the C-SKY back end.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_genopt.sh gcc-14.1.0/gcc/config/csky/csky_genopt.sh
*** gcc-13.2.0/gcc/config/csky/csky_genopt.sh	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_genopt.sh	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  #!/bin/sh
  # Generate csky_tables.opt from the lists in *.def.
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  # Contributed by C-SKY Microsystems and Mentor Graphics.
  #
  # This file is part of GCC.
--- 1,6 ----
  #!/bin/sh
  # Generate csky_tables.opt from the lists in *.def.
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  # Contributed by C-SKY Microsystems and Mentor Graphics.
  #
  # This file is part of GCC.
*************** cat <<EOF
*** 23,29 ****
  ; -*- buffer-read-only: t -*-
  ; Generated automatically by csky_genopt.sh from csky_cores.def.
  
! ; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 23,29 ----
  ; -*- buffer-read-only: t -*-
  ; Generated automatically by csky_genopt.sh from csky_cores.def.
  
! ; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_insn_dsp.md gcc-14.1.0/gcc/config/csky/csky_insn_dsp.md
*** gcc-13.2.0/gcc/config/csky/csky_insn_dsp.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_insn_dsp.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; C-SKY DSP instruction descriptions.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; C-SKY DSP instruction descriptions.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_insn_fpu.md gcc-14.1.0/gcc/config/csky/csky_insn_fpu.md
*** gcc-13.2.0/gcc/config/csky/csky_insn_fpu.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_insn_fpu.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; C-SKY FPU instruction descriptions.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; C-SKY FPU instruction descriptions.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_insn_fpuv2.md gcc-14.1.0/gcc/config/csky/csky_insn_fpuv2.md
*** gcc-13.2.0/gcc/config/csky/csky_insn_fpuv2.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_insn_fpuv2.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; C-SKY FPUV2 instruction descriptions.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; C-SKY FPUV2 instruction descriptions.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_insn_fpuv3.md gcc-14.1.0/gcc/config/csky/csky_insn_fpuv3.md
*** gcc-13.2.0/gcc/config/csky/csky_insn_fpuv3.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_insn_fpuv3.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; C-SKY FPUV3 instruction descriptions.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; C-SKY FPUV3 instruction descriptions.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_isa.def gcc-14.1.0/gcc/config/csky/csky_isa.def
*** gcc-13.2.0/gcc/config/csky/csky_isa.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_isa.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ISA feature descriptions for the C-SKY back end.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* ISA feature descriptions for the C-SKY back end.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_isa.h gcc-14.1.0/gcc/config/csky/csky_isa.h
*** gcc-13.2.0/gcc/config/csky/csky_isa.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_isa.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* ISA feature enumerations for C-SKY targets.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* ISA feature enumerations for C-SKY targets.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_opts.h gcc-14.1.0/gcc/config/csky/csky_opts.h
*** gcc-13.2.0/gcc/config/csky/csky_opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_opts.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Processor and arch enumerations for C-SKY targets.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
--- 1,5 ----
  /* Processor and arch enumerations for C-SKY targets.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
     Contributed by C-SKY Microsystems and Mentor Graphics.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_pipeline_ck801.md gcc-14.1.0/gcc/config/csky/csky_pipeline_ck801.md
*** gcc-13.2.0/gcc/config/csky/csky_pipeline_ck801.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_pipeline_ck801.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Scheduler information for C-SKY CK801 processors.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Scheduler information for C-SKY CK801 processors.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_pipeline_ck802.md gcc-14.1.0/gcc/config/csky/csky_pipeline_ck802.md
*** gcc-13.2.0/gcc/config/csky/csky_pipeline_ck802.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_pipeline_ck802.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Instruction scheduling information for C-SKY CK802 processors.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Instruction scheduling information for C-SKY CK802 processors.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_pipeline_ck803.md gcc-14.1.0/gcc/config/csky/csky_pipeline_ck803.md
*** gcc-13.2.0/gcc/config/csky/csky_pipeline_ck803.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_pipeline_ck803.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Scheduler information for C-SKY CK803 processors.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Scheduler information for C-SKY CK803 processors.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_pipeline_ck810.md gcc-14.1.0/gcc/config/csky/csky_pipeline_ck810.md
*** gcc-13.2.0/gcc/config/csky/csky_pipeline_ck810.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_pipeline_ck810.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Instruction scheduling information for C-SKY CK810 processors.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Instruction scheduling information for C-SKY CK810 processors.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_tables.opt gcc-14.1.0/gcc/config/csky/csky_tables.opt
*** gcc-13.2.0/gcc/config/csky/csky_tables.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/csky_tables.opt	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  ; -*- buffer-read-only: t -*-
  ; Generated automatically by csky_genopt.sh from csky_cores.def.
  
! ; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,7 ----
  ; -*- buffer-read-only: t -*-
  ; Generated automatically by csky_genopt.sh from csky_cores.def.
  
! ; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/csky/csky_tables.opt.urls gcc-14.1.0/gcc/config/csky/csky_tables.opt.urls
*** gcc-13.2.0/gcc/config/csky/csky_tables.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/csky/csky_tables.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,2 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/csky/csky_tables.opt and generated HTML
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/csky/predicates.md gcc-14.1.0/gcc/config/csky/predicates.md
*** gcc-13.2.0/gcc/config/csky/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicates for C-SKY.
! ;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Predicates for C-SKY.
! ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
  ;; Contributed by C-SKY Microsystems and Mentor Graphics.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/t-csky gcc-14.1.0/gcc/config/csky/t-csky
*** gcc-13.2.0/gcc/config/csky/t-csky	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/t-csky	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  # Make rules for all C-SKY targets.
  #
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  # Contributed by C-SKY Microsystems and Mentor Graphics.
  #
  # This file is part of GCC.
--- 1,6 ----
  # Make rules for all C-SKY targets.
  #
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  # Contributed by C-SKY Microsystems and Mentor Graphics.
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/t-csky-elf gcc-14.1.0/gcc/config/csky/t-csky-elf
*** gcc-13.2.0/gcc/config/csky/t-csky-elf	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/t-csky-elf	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  # Multilib configuration for csky*-elf.
  #
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  # Contributed by C-SKY Microsystems and Mentor Graphics.
  #
  # This file is part of GCC.
--- 1,6 ----
  # Multilib configuration for csky*-elf.
  #
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  # Contributed by C-SKY Microsystems and Mentor Graphics.
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/csky/t-csky-linux gcc-14.1.0/gcc/config/csky/t-csky-linux
*** gcc-13.2.0/gcc/config/csky/t-csky-linux	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/csky/t-csky-linux	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  # Multilib configuration for csky*-linux-*.
  #
! # Copyright (C) 2018-2023 Free Software Foundation, Inc.
  # Contributed by C-SKY Microsystems and Mentor Graphics.
  #
  # This file is part of GCC.
--- 1,6 ----
  # Multilib configuration for csky*-linux-*.
  #
! # Copyright (C) 2018-2024 Free Software Foundation, Inc.
  # Contributed by C-SKY Microsystems and Mentor Graphics.
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/darwin-c.cc gcc-14.1.0/gcc/config/darwin-c.cc
*** gcc-13.2.0/gcc/config/darwin-c.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin-c.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Darwin support needed only by C/C++ frontends.
!    Copyright (C) 2001-2023 Free Software Foundation, Inc.
     Contributed by Apple Computer Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Darwin support needed only by C/C++ frontends.
!    Copyright (C) 2001-2024 Free Software Foundation, Inc.
     Contributed by Apple Computer Inc.
  
  This file is part of GCC.
*************** darwin_pragma_unused (cpp_reader *pfile
*** 139,145 ****
  	{
  	  tree local = lookup_name (decl);
  	  if (local && (TREE_CODE (local) == PARM_DECL
! 			|| TREE_CODE (local) == VAR_DECL))
  	    {
  	      TREE_USED (local) = 1;
  	      DECL_READ_P (local) = 1;
--- 139,145 ----
  	{
  	  tree local = lookup_name (decl);
  	  if (local && (TREE_CODE (local) == PARM_DECL
! 			|| VAR_P (local)))
  	    {
  	      TREE_USED (local) = 1;
  	      DECL_READ_P (local) = 1;
*************** find_subframework_header (cpp_reader *pf
*** 555,561 ****
    return 0;
  }
  
! /* Given an OS X version VERSION_STR, return it as a statically-allocated array
     of three integers. If VERSION_STR is invalid, return NULL.
  
     VERSION_STR must consist of one, two, or three tokens, each separated by
--- 555,561 ----
    return 0;
  }
  
! /* Given an macOS version VERSION_STR, return it as a statically-allocated array
     of three integers. If VERSION_STR is invalid, return NULL.
  
     VERSION_STR must consist of one, two, or three tokens, each separated by
*************** parse_version (const char *version_str)
*** 612,618 ****
    return version_array;
  }
  
! /* Given VERSION -- a three-component OS X version represented as an array of
     non-negative integers -- return a statically-allocated string suitable for
     the legacy __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  If VERSION
     is invalid and cannot be coerced into a valid form, return NULL.
--- 612,618 ----
    return version_array;
  }
  
! /* Given VERSION -- a three-component macOS version represented as an array of
     non-negative integers -- return a statically-allocated string suitable for
     the legacy __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  If VERSION
     is invalid and cannot be coerced into a valid form, return NULL.
*************** version_as_legacy_macro (const unsigned
*** 645,651 ****
    return result;
  }
  
! /* Given VERSION -- a three-component OS X version represented as an array of
     non-negative integers -- return a statically-allocated string suitable for
     the modern __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  If VERSION
     is invalid, return NULL.
--- 645,651 ----
    return result;
  }
  
! /* Given VERSION -- a three-component macOS version represented as an array of
     non-negative integers -- return a statically-allocated string suitable for
     the modern __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  If VERSION
     is invalid, return NULL.
*************** version_as_modern_macro (const unsigned
*** 675,681 ****
  
  /* Return the value of darwin_macosx_version_min, suitably formatted for the
     __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  Values representing
!    OS X 10.9 and earlier are encoded using the legacy four-character format,
     while 10.10 and later use a modern six-character format.  (For example,
     "10.9" produces "1090", and "10.10.1" produces "101001".)  If
     darwin_macosx_version_min is invalid and cannot be coerced into a valid
--- 675,681 ----
  
  /* Return the value of darwin_macosx_version_min, suitably formatted for the
     __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  Values representing
!    macOS 10.9 and earlier are encoded using the legacy four-character format,
     while 10.10 and later use a modern six-character format.  (For example,
     "10.9" produces "1090", and "10.10.1" produces "101001".)  If
     darwin_macosx_version_min is invalid and cannot be coerced into a valid
diff -Nrcpad gcc-13.2.0/gcc/config/darwin-d.cc gcc-14.1.0/gcc/config/darwin-d.cc
*** gcc-13.2.0/gcc/config/darwin-d.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin-d.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Darwin support needed only by D front-end.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
--- 1,5 ----
  /* Darwin support needed only by D front-end.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
diff -Nrcpad gcc-13.2.0/gcc/config/darwin-driver.cc gcc-14.1.0/gcc/config/darwin-driver.cc
*** gcc-13.2.0/gcc/config/darwin-driver.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin-driver.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Additional functions for the GCC driver on Darwin native.
!    Copyright (C) 2006-2023 Free Software Foundation, Inc.
     Contributed by Apple Computer Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Additional functions for the GCC driver on Darwin native.
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
     Contributed by Apple Computer Inc.
  
  This file is part of GCC.
*************** darwin_driver_init (unsigned int *decode
*** 440,446 ****
  	}
      }
  
!   /* We will need to know the OS X version we're trying to build for here
       so that we can figure out the mechanism and source for the sysroot to
       be used.  */
    if (!seen_version_min)
--- 440,446 ----
  	}
      }
  
!   /* We will need to know the macOS version we're trying to build for here
       so that we can figure out the mechanism and source for the sysroot to
       be used.  */
    if (!seen_version_min)
diff -Nrcpad gcc-13.2.0/gcc/config/darwin-f.cc gcc-14.1.0/gcc/config/darwin-f.cc
*** gcc-13.2.0/gcc/config/darwin-f.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin-f.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Darwin support needed only by Fortran frontends.
!    Copyright (C) 2008-2023 Free Software Foundation, Inc.
     Contributed by Daniel Franke.
  
  This file is part of GCC.
--- 1,5 ----
  /* Darwin support needed only by Fortran frontends.
!    Copyright (C) 2008-2024 Free Software Foundation, Inc.
     Contributed by Daniel Franke.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/darwin-ppc-ldouble-patch.def gcc-14.1.0/gcc/config/darwin-ppc-ldouble-patch.def
*** gcc-13.2.0/gcc/config/darwin-ppc-ldouble-patch.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin-ppc-ldouble-patch.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2008-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2008-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/darwin-protos.h gcc-14.1.0/gcc/config/darwin-protos.h
*** gcc-13.2.0/gcc/config/darwin-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Prototypes.
!    Copyright (C) 2001-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Prototypes.
!    Copyright (C) 2001-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern void darwin_patch_builtins (void)
*** 129,132 ****
--- 129,143 ----
  extern void darwin_rename_builtins (void);
  extern bool darwin_libc_has_function (enum function_class fn_class, tree);
  
+ /* For this port, there are several possible sources for external toolchain
+    components (e.g. as, ld, dsymutil) and we have to alter the allowable
+    output in response to which version and source is in use.  */
+ enum darwin_external_toolchain {
+   DET_UNKNOWN=0,
+   CCTOOLS,
+   DWARFUTILS,
+   LLVM,
+   CLANG
+ };
+ 
  #endif /* CONFIG_DARWIN_PROTOS_H */
diff -Nrcpad gcc-13.2.0/gcc/config/darwin-rust.cc gcc-14.1.0/gcc/config/darwin-rust.cc
*** gcc-13.2.0/gcc/config/darwin-rust.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/darwin-rust.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,44 ----
+ /* Darwin support needed only by Rust front-end.
+    Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "tm_rust.h"
+ #include "rust/rust-target.h"
+ #include "rust/rust-target-def.h"
+ 
+ /* Implement TARGET_RUST_OS_INFO for Darwin targets.  */
+ 
+ static void
+ darwin_rust_target_os_info (void)
+ {
+   rust_add_target_info ("target_family", "unix");
+ 
+   /* TODO: rust actually has "macos", "ios", and "tvos" for darwin targets, but
+      gcc seems to have no current support for them, so assuming that target_os
+      is always macos for now.  */
+   rust_add_target_info ("target_os", "macos");
+   rust_add_target_info ("target_vendor", "apple");
+   rust_add_target_info ("target_env", "");
+ }
+ 
+ #undef TARGET_RUST_OS_INFO
+ #define TARGET_RUST_OS_INFO darwin_rust_target_os_info
+ 
+ struct gcc_targetrustm targetrustm = TARGETRUSTM_INITIALIZER;
diff -Nrcpad gcc-13.2.0/gcc/config/darwin-sections.def gcc-14.1.0/gcc/config/darwin-sections.def
*** gcc-13.2.0/gcc/config/darwin-sections.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin-sections.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2005-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2005-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** DEF_SECTION (mod_init_section, 0, ".mod_
*** 98,103 ****
--- 98,105 ----
  DEF_SECTION (mod_term_section, 0, ".mod_term_func", 0)
  DEF_SECTION (constructor_section, 0, ".constructor", 0)
  DEF_SECTION (destructor_section, 0, ".destructor", 0)
+ DEF_SECTION (static_init_section, SECTION_CODE,
+ 	     ".section\t__TEXT,__StaticInit,regular,pure_instructions", 0)
  
  /* Objective-C ABI=0 (Original version) sections.  */
  DEF_SECTION (objc_class_section, 0, ".objc_class", 1)
*************** DEF_SECTION (machopic_picsymbol_stub3_se
*** 157,163 ****
  
  /* Exception-related.  */
  DEF_SECTION (darwin_exception_section, SECTION_NO_ANCHOR,
! 	     ".section __DATA,__gcc_except_tab", 0)
  DEF_SECTION (darwin_eh_frame_section, SECTION_NO_ANCHOR,
  	     ".section " EH_FRAME_SECTION_NAME ",__eh_frame"
  	     EH_FRAME_SECTION_ATTR, 0)
--- 159,165 ----
  
  /* Exception-related.  */
  DEF_SECTION (darwin_exception_section, SECTION_NO_ANCHOR,
! 	     ".section __TEXT,__gcc_except_tab", 0)
  DEF_SECTION (darwin_eh_frame_section, SECTION_NO_ANCHOR,
  	     ".section " EH_FRAME_SECTION_NAME ",__eh_frame"
  	     EH_FRAME_SECTION_ATTR, 0)
diff -Nrcpad gcc-13.2.0/gcc/config/darwin.cc gcc-14.1.0/gcc/config/darwin.cc
*** gcc-13.2.0/gcc/config/darwin.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Functions for generic Darwin as target machine for GNU C compiler.
!    Copyright (C) 1989-2023 Free Software Foundation, Inc.
     Contributed by Apple Computer Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Functions for generic Darwin as target machine for GNU C compiler.
!    Copyright (C) 1989-2024 Free Software Foundation, Inc.
     Contributed by Apple Computer Inc.
  
  This file is part of GCC.
*************** static bool ld_needs_eh_markers = false;
*** 114,119 ****
--- 114,132 ----
  /* Emit a section-start symbol for mod init and term sections.  */
  static bool ld_init_term_start_labels = false;
  
+ /* The source and version of dsymutil in use.  */
+ #ifndef DSYMUTIL_VERSION
+ # warning Darwin toolchain without a defined dsymutil.
+ # define DSYMUTIL_VERSION DET_UNKNOWN,0,0,0
+ #endif
+ 
+ struct {
+   darwin_external_toolchain kind; /* cctools, llvm, clang etc.  */
+   int major; /* version number.  */
+   int minor;
+   int tiny;
+ } dsymutil_version = {DSYMUTIL_VERSION};
+ 
  /* Section names.  */
  section * darwin_sections[NUM_DARWIN_SECTIONS];
  
*************** name_needs_quotes (const char *name)
*** 258,263 ****
--- 271,315 ----
    return 0;
  }
  
+ DEBUG_FUNCTION void
+ dump_machopic_symref_flags (FILE *dump, rtx sym_ref)
+ {
+   unsigned long flags = SYMBOL_REF_FLAGS (sym_ref);
+ 
+   fprintf (dump, "flags: %08lx %c%c%c%c%c%c%c",
+ 	   flags,
+ 	   (MACHO_SYMBOL_STATIC_P (sym_ref) ? 's' : '-'),
+ 	   (MACHO_SYMBOL_INDIRECTION_P (sym_ref) ? 'I' : '-'),
+ 	   (MACHO_SYMBOL_LINKER_VIS_P (sym_ref) ? 'l' : '-'),
+ 	   (MACHO_SYMBOL_HIDDEN_VIS_P (sym_ref) ? 'h' : '-'),
+ 	   (MACHO_SYMBOL_DEFINED_P (sym_ref) ? 'd' : '-'),
+ 	   (MACHO_SYMBOL_MUST_INDIRECT_P (sym_ref) ? 'i' : '-'),
+ 	   (MACHO_SYMBOL_VARIABLE_P (sym_ref) ? 'v' : '-'));
+ 
+ #if (DARWIN_X86)
+   fprintf (dump, "%c%c%c%c",
+ 	 (SYMBOL_REF_STUBVAR_P (sym_ref) ? 'S' : '-'),
+ 	 (SYMBOL_REF_DLLEXPORT_P (sym_ref) ? 'X' : '-'),
+ 	 (SYMBOL_REF_DLLIMPORT_P (sym_ref) ? 'I' : '-'),
+ 	 (SYMBOL_REF_FAR_ADDR_P (sym_ref) ? 'F' : '-'));
+ #endif
+ 
+   fprintf (dump, "%c%c%c%03u%c%c%c\n",
+ 	   (SYMBOL_REF_ANCHOR_P (sym_ref) ? 'a' : '-'),
+ 	   (SYMBOL_REF_HAS_BLOCK_INFO_P (sym_ref) ? 'b' : '-'),
+ 	   (SYMBOL_REF_EXTERNAL_P (sym_ref) ? 'e' : '-'),
+ 	   (unsigned)SYMBOL_REF_TLS_MODEL (sym_ref),
+ 	   (SYMBOL_REF_SMALL_P (sym_ref) ? 'm' : '-'),
+ 	   (SYMBOL_REF_LOCAL_P (sym_ref) ? 'l' : '-'),
+ 	   (SYMBOL_REF_FUNCTION_P (sym_ref) ? 'f' : '-'));
+ }
+ 
+ DEBUG_FUNCTION void
+ debug_machopic_symref_flags (rtx sym_ref)
+ {
+   dump_machopic_symref_flags (stderr, sym_ref);
+ }
+ 
  /* Return true if SYM_REF can be used without an indirection.  */
  int
  machopic_symbol_defined_p (rtx sym_ref)
*************** static tree
*** 1415,1421 ****
  is_objc_metadata (tree decl)
  {
    if (DECL_P (decl)
!       && (TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == CONST_DECL)
        && DECL_ATTRIBUTES (decl))
      {
        tree meta = lookup_attribute ("OBJC2META", DECL_ATTRIBUTES (decl));
--- 1467,1473 ----
  is_objc_metadata (tree decl)
  {
    if (DECL_P (decl)
!       && (VAR_P (decl) || TREE_CODE (decl) == CONST_DECL)
        && DECL_ATTRIBUTES (decl))
      {
        tree meta = lookup_attribute ("OBJC2META", DECL_ATTRIBUTES (decl));
*************** darwin_objc1_section (tree decl ATTRIBUT
*** 1586,1592 ****
    else if (startswith (p, "V1_CEXT"))
      return darwin_sections[objc1_class_ext_section];
  
!   else if (startswith (p, "V2_CSTR"))
      return darwin_sections[objc_constant_string_object_section];
  
    return base;
--- 1638,1644 ----
    else if (startswith (p, "V1_CEXT"))
      return darwin_sections[objc1_class_ext_section];
  
!   else if (startswith (p, "V1_CSTR"))
      return darwin_sections[objc_constant_string_object_section];
  
    return base;
*************** machopic_select_section (tree decl,
*** 1679,1685 ****
  	    base_section = darwin_sections[zobj_data_section];
  	}
        else if (ro)
! 	base_section = darwin_sections[const_data_section];
        else
  	base_section = data_section;
        break;
--- 1731,1746 ----
  	    base_section = darwin_sections[zobj_data_section];
  	}
        else if (ro)
! 	{
! 	  if (VAR_P (decl) && TREE_TYPE (decl)
! 	      && TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE
! 	      && DECL_NAME (decl)
! 	      && strncmp (IDENTIFIER_POINTER (DECL_NAME (decl)),
! 			  "__anon_cfstring", 15) == 0)
! 	   base_section = darwin_sections[cfstring_constant_object_section];
! 	  else
! 	    base_section = darwin_sections[const_data_section];
! 	}
        else
  	base_section = data_section;
        break;
*************** machopic_select_section (tree decl,
*** 1721,1727 ****
  	return base_section; /* GNU runtime is happy with it all in one pot.  */
      }
  
!   /* b) Constant string objects.  */
    if (TREE_CODE (decl) == CONSTRUCTOR
        && TREE_TYPE (decl)
        && TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE
--- 1782,1788 ----
  	return base_section; /* GNU runtime is happy with it all in one pot.  */
      }
  
!   /* b) Constructors for constant NSstring [but not CFString] objects.  */
    if (TREE_CODE (decl) == CONSTRUCTOR
        && TREE_TYPE (decl)
        && TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE
*************** machopic_select_section (tree decl,
*** 1744,1750 ****
  	    return darwin_sections[objc_string_object_section];
  	}
        else if (!strcmp (IDENTIFIER_POINTER (name), "__builtin_CFString"))
! 	return darwin_sections[cfstring_constant_object_section];
        else
  	return base_section;
      }
--- 1805,1815 ----
  	    return darwin_sections[objc_string_object_section];
  	}
        else if (!strcmp (IDENTIFIER_POINTER (name), "__builtin_CFString"))
! 	{
! 	  /* We should have handled __anon_cfstrings above.  */
! 	  gcc_checking_assert (0);
! 	  return darwin_sections[cfstring_constant_object_section];
! 	}
        else
  	return base_section;
      }
*************** darwin_emit_except_table_label (FILE *fi
*** 2232,2237 ****
--- 2297,2303 ----
  {
    char section_start_label[30];
  
+   fputs ("\t.p2align\t2\n", file);
    ASM_GENERATE_INTERNAL_LABEL (section_start_label, "GCC_except_table",
  			       except_table_label_num++);
    ASM_OUTPUT_LABEL (file, section_start_label);
*************** darwin_asm_output_dwarf_offset (FILE *fi
*** 3020,3026 ****
  void
  darwin_file_start (void)
  {
!   /* Nothing to do.  */
  }
  
  /* Called for the TARGET_ASM_FILE_END hook.
--- 3086,3120 ----
  void
  darwin_file_start (void)
  {
! #ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
!   /* This should not happen with a well-formed command line, but the user could
!      invoke cc1* directly without it.  */
!   if (!darwin_macosx_version_min)
!     return;
!   /* This assumes that the version passed has been validated in the driver.  */
!   unsigned maj, min, tiny;
!   int count = sscanf (darwin_macosx_version_min, "%u.%u.%u", &maj, &min, &tiny);
!   if (count < 0)
!     return;
!   if (count < 3)
!     tiny = 0;
!   if (count < 2)
!     min = 0;
!   const char *directive;
! #ifdef HAVE_AS_MACOS_BUILD_VERSION
!   /* We only handle macos, so far.  */
!   if (generating_for_darwin_version >= 18)
!     directive = "build_version macos, ";
!   else
! #endif
!     directive = "macosx_version_min ";
!   if (count > 2 && tiny != 0)
!     fprintf (asm_out_file, "\t.%s %u, %u, %u\n", directive, maj, min, tiny);
!   else if (count > 1)
!     fprintf (asm_out_file, "\t.%s %u, %u\n", directive, maj, min);
!   else
!      fprintf (asm_out_file, "\t.%s %u, 0\n", directive, maj);
! #endif
  }
  
  /* Called for the TARGET_ASM_FILE_END hook.
*************** darwin_override_options (void)
*** 3242,3248 ****
    /* Keep track of which (major) version we're generating code for.  */
    if (darwin_macosx_version_min)
      {
!       if (strverscmp (darwin_macosx_version_min, "10.7") >= 0)
  	generating_for_darwin_version = 11;
        else if (strverscmp (darwin_macosx_version_min, "10.6") >= 0)
  	generating_for_darwin_version = 10;
--- 3336,3346 ----
    /* Keep track of which (major) version we're generating code for.  */
    if (darwin_macosx_version_min)
      {
!       if (strverscmp (darwin_macosx_version_min, "10.14") >= 0)
! 	generating_for_darwin_version = 18;
!       else if (strverscmp (darwin_macosx_version_min, "10.8") >= 0)
! 	generating_for_darwin_version = 12;
!       else if (strverscmp (darwin_macosx_version_min, "10.7") >= 0)
  	generating_for_darwin_version = 11;
        else if (strverscmp (darwin_macosx_version_min, "10.6") >= 0)
  	generating_for_darwin_version = 10;
*************** darwin_override_options (void)
*** 3317,3330 ****
  		  global_options.x_flag_objc_abi);
      }
  
-   /* Don't emit DWARF3/4 unless specifically selected.  This is a
-      workaround for tool bugs.  */
-   if (!OPTION_SET_P (dwarf_strict))
-     dwarf_strict = 1;
    if (!OPTION_SET_P (dwarf_version))
!     dwarf_version = 2;
  
!   if (OPTION_SET_P (dwarf_split_debug_info))
      {
        inform (input_location,
  	      "%<-gsplit-dwarf%> is not supported on this platform, ignored");
--- 3415,3435 ----
  		  global_options.x_flag_objc_abi);
      }
  
    if (!OPTION_SET_P (dwarf_version))
!     {
!       /* External toolchains based on LLVM or clang 7+ have support for
! 	 dwarf-4.  */
!       if ((dsymutil_version.kind == LLVM && dsymutil_version.major >= 7)
! 	  || (dsymutil_version.kind == CLANG && dsymutil_version.major >= 700))
! 	dwarf_version = 4;
!       else if (dsymutil_version.kind == DWARFUTILS
! 	       && dsymutil_version.major >= 121)
! 	dwarf_version = 3;  /* From XC 6.4.  */
!       else
! 	dwarf_version = 2;  /* Older cannot safely exceed dwarf-2.  */
!     }
  
!   if (OPTION_SET_P (dwarf_split_debug_info) && dwarf_split_debug_info)
      {
        inform (input_location,
  	      "%<-gsplit-dwarf%> is not supported on this platform, ignored");
*************** darwin_override_options (void)
*** 3332,3337 ****
--- 3437,3460 ----
        OPTION_SET_P (dwarf_split_debug_info) = 0;
      }
  
+   /* Cases where dsymutil will exclude files with .macinfo sections; we are
+      better off forcing the debug level to 2 than completely excluding the
+      files.  If strict dwarf is set, then emit the macinfo anyway.  */
+   if (debug_info_level == DINFO_LEVEL_VERBOSE
+       && (!OPTION_SET_P (dwarf_strict) || dwarf_strict == 0)
+       && ((dsymutil_version.kind == CLANG && dsymutil_version.major >= 1500)
+ 	  || (dsymutil_version.kind == LLVM && dsymutil_version.major >= 15)))
+     {
+       inform (input_location,
+ 	      "%<-g3%> is not supported by the debug linker in use (set to 2)");
+       debug_info_level = DINFO_LEVEL_NORMAL;
+     }
+ 
+   /* Limit DWARF to the chosen version, the linker and debug linker might not
+      be able to consume newer structures.  */
+   if (!OPTION_SET_P (dwarf_strict))
+     dwarf_strict = 1;
+ 
    /* Do not allow unwind tables to be generated by default for m32.
       fnon-call-exceptions will override this, regardless of what we do.  */
    if (generating_for_darwin_version < 10
*************** darwin_override_options (void)
*** 3400,3407 ****
        && dwarf_debuginfo_p ())
      flag_var_tracking_uninit = flag_var_tracking;
  
!   /* Final check on PCI options; for Darwin these are not dependent on the PIE
!      ones, although PIE does require PIC to support it.  */
    if (MACHO_DYNAMIC_NO_PIC_P)
      {
        if (flag_pic)
--- 3523,3539 ----
        && dwarf_debuginfo_p ())
      flag_var_tracking_uninit = flag_var_tracking;
  
!   if (OPTION_SET_P (flag_pie) && flag_pie)
!     {
!       /* This is a little complicated, to match Xcode tools.
! 	 For Darwin, PIE requires PIC codegen, but otherwise is only a link-
! 	 time change.  For almost all Darwin, we do not report __PIE__; the
! 	 exception is Darwin12-17 and for 32b only.  */
!       flag_pie = generating_for_darwin_version >= 12 && !TARGET_64BIT ? 2 : 0;
!       flag_pic = 2; /* We always set this.  */
!     }
! 
!   /* Final check on PIC options.  */
    if (MACHO_DYNAMIC_NO_PIC_P)
      {
        if (flag_pic)
*************** darwin_patch_builtins (void)
*** 3506,3511 ****
--- 3638,3666 ----
  }
  #endif
  
+ void
+ darwin_rename_builtins (void)
+ {
+ }
+ 
+ /* Implementation for the TARGET_LIBC_HAS_FUNCTION hook.  */
+ 
+ bool
+ darwin_libc_has_function (enum function_class fn_class,
+ 			  tree type ATTRIBUTE_UNUSED)
+ {
+   if (fn_class == function_sincos && darwin_macosx_version_min)
+     return (strverscmp (darwin_macosx_version_min, "10.9") >= 0);
+ #if DARWIN_PPC && SUPPORT_DARWIN_LEGACY
+   if (fn_class == function_c99_math_complex
+       || fn_class == function_c99_misc)
+     return (TARGET_64BIT
+ 	    || (darwin_macosx_version_min &&
+ 		strverscmp (darwin_macosx_version_min, "10.3") >= 0));
+ #endif
+   return default_libc_has_function (fn_class, type);
+ }
+ 
  /*  CFStrings implementation.  */
  static GTY(()) tree cfstring_class_reference = NULL_TREE;
  static GTY(()) tree cfstring_type_node = NULL_TREE;
*************** typedef struct GTY ((for_user)) cfstring
*** 3523,3529 ****
    /* The string literal.  */
    tree literal;
    /* The resulting constant CFString.  */
!   tree constructor;
  } cfstring_descriptor;
  
  struct cfstring_hasher : ggc_ptr_hash<cfstring_descriptor>
--- 3678,3684 ----
    /* The string literal.  */
    tree literal;
    /* The resulting constant CFString.  */
!   tree ccf_str;
  } cfstring_descriptor;
  
  struct cfstring_hasher : ggc_ptr_hash<cfstring_descriptor>
*************** darwin_init_cfstring_builtins (unsigned
*** 3598,3604 ****
    /* Make a lang-specific section - dup_lang_specific_decl makes a new node
       in place of the existing, which may be NULL.  */
    DECL_LANG_SPECIFIC (cfsfun) = NULL;
!   (*lang_hooks.dup_lang_specific_decl) (cfsfun);
    set_decl_built_in_function (cfsfun, BUILT_IN_MD, darwin_builtin_cfstring);
    lang_hooks.builtin_function (cfsfun);
  
--- 3753,3759 ----
    /* Make a lang-specific section - dup_lang_specific_decl makes a new node
       in place of the existing, which may be NULL.  */
    DECL_LANG_SPECIFIC (cfsfun) = NULL;
!   lang_hooks.dup_lang_specific_decl (cfsfun);
    set_decl_built_in_function (cfsfun, BUILT_IN_MD, darwin_builtin_cfstring);
    lang_hooks.builtin_function (cfsfun);
  
*************** darwin_init_cfstring_builtins (unsigned
*** 3609,3615 ****
  
    TREE_PUBLIC (cfstring_class_reference) = 1;
    DECL_ARTIFICIAL (cfstring_class_reference) = 1;
!   (*lang_hooks.decls.pushdecl) (cfstring_class_reference);
    DECL_EXTERNAL (cfstring_class_reference) = 1;
    rest_of_decl_compilation (cfstring_class_reference, 0, 0);
  
--- 3764,3770 ----
  
    TREE_PUBLIC (cfstring_class_reference) = 1;
    DECL_ARTIFICIAL (cfstring_class_reference) = 1;
!   lang_hooks.decls.pushdecl (cfstring_class_reference);
    DECL_EXTERNAL (cfstring_class_reference) = 1;
    rest_of_decl_compilation (cfstring_class_reference, 0, 0);
  
*************** darwin_fold_builtin (tree fndecl, int n_
*** 3646,3674 ****
    return NULL_TREE;
  }
  
- void
- darwin_rename_builtins (void)
- {
- }
- 
- /* Implementation for the TARGET_LIBC_HAS_FUNCTION hook.  */
- 
- bool
- darwin_libc_has_function (enum function_class fn_class,
- 			  tree type ATTRIBUTE_UNUSED)
- {
-   if (fn_class == function_sincos && darwin_macosx_version_min)
-     return (strverscmp (darwin_macosx_version_min, "10.9") >= 0);
- #if DARWIN_PPC && SUPPORT_DARWIN_LEGACY
-   if (fn_class == function_c99_math_complex
-       || fn_class == function_c99_misc)
-     return (TARGET_64BIT
- 	    || (darwin_macosx_version_min &&
- 		strverscmp (darwin_macosx_version_min, "10.3") >= 0));
- #endif
-   return default_libc_has_function (fn_class, type);
- }
- 
  hashval_t
  cfstring_hasher::hash (cfstring_descriptor *ptr)
  {
--- 3801,3806 ----
*************** darwin_build_constant_cfstring (tree str
*** 3766,3794 ****
  			     build_int_cst (TREE_TYPE (field), length));
  
        constructor = build_constructor (ccfstring_type_node, v);
!       TREE_READONLY (constructor) = 1;
!       TREE_CONSTANT (constructor) = 1;
!       TREE_STATIC (constructor) = 1;
  
!       /* Fromage: The C++ flavor of 'build_unary_op' expects constructor nodes
! 	 to have the TREE_HAS_CONSTRUCTOR (...) bit set.  However, this file is
! 	 being built without any knowledge of C++ tree accessors; hence, we shall
! 	 use the generic accessor that TREE_HAS_CONSTRUCTOR actually maps to!  */
        if (darwin_running_cxx)
  	TREE_LANG_FLAG_4 (constructor) = 1;  /* TREE_HAS_CONSTRUCTOR  */
  
        /* Create an anonymous global variable for this CFString.  */
!       var = build_decl (input_location, CONST_DECL,
  			NULL, TREE_TYPE (constructor));
!       DECL_ARTIFICIAL (var) = 1;
!       TREE_STATIC (var) = 1;
        DECL_INITIAL (var) = constructor;
!       /* FIXME: This should use a translation_unit_decl to indicate file scope.  */
        DECL_CONTEXT (var) = NULL_TREE;
!       desc->constructor = var;
      }
  
!   addr = build1 (ADDR_EXPR, pccfstring_type_node, desc->constructor);
    TREE_CONSTANT (addr) = 1;
  
    return addr;
--- 3898,3934 ----
  			     build_int_cst (TREE_TYPE (field), length));
  
        constructor = build_constructor (ccfstring_type_node, v);
!       TREE_READONLY (constructor) = true;
!       TREE_CONSTANT (constructor) = true;
!       TREE_STATIC (constructor) = true;
  
!       /* This file is being built without any knowledge of C++ tree accessors;
! 	 hence, we shall use the generic accessor to set TREE_HAS_CONSTRUCTOR.
! 	 ??? Is this actually used any more? */
        if (darwin_running_cxx)
  	TREE_LANG_FLAG_4 (constructor) = 1;  /* TREE_HAS_CONSTRUCTOR  */
  
        /* Create an anonymous global variable for this CFString.  */
!       var = build_decl (input_location, VAR_DECL,
  			NULL, TREE_TYPE (constructor));
!       char *name = xasprintf ("__anon_cfstring.%u", DECL_UID (var));
!       DECL_NAME (var) = get_identifier (name);
!       free (name);
!       DECL_ARTIFICIAL (var) = true;
!       TREE_STATIC (var) = true;
!       TREE_READONLY (var) = true;
!       TREE_CONSTANT (var) = true;
        DECL_INITIAL (var) = constructor;
!       /* global namespace.  */
        DECL_CONTEXT (var) = NULL_TREE;
!       DECL_INITIAL (var) = constructor;
!       DECL_USER_ALIGN (var) = 1;
!       lang_hooks.decls.pushdecl (var);
!       rest_of_decl_compilation (var, 1, 0);
!       desc->ccf_str = var;
      }
  
!   addr = build1 (ADDR_EXPR, pccfstring_type_node, desc->ccf_str);
    TREE_CONSTANT (addr) = 1;
  
    return addr;
*************** darwin_function_section (tree decl, enum
*** 3853,3863 ****
    if (decl && DECL_SECTION_NAME (decl) != NULL)
      return get_named_section (decl, NULL, 0);
  
!   /* We always put unlikely executed stuff in the cold section.  */
    if (freq == NODE_FREQUENCY_UNLIKELY_EXECUTED)
      return (use_coal) ? darwin_sections[text_cold_coal_section]
  		      : darwin_sections[text_cold_section];
  
    /* If we have LTO *and* feedback information, then let LTO handle
       the function ordering, it makes a better job (for normal, hot,
       startup and exit - hence the bailout for cold above).  */
--- 3993,4014 ----
    if (decl && DECL_SECTION_NAME (decl) != NULL)
      return get_named_section (decl, NULL, 0);
  
!   /* We always put unlikely executed stuff in the cold section; we have to put
!      this ahead of the global init section, since partitioning within a section
!      breaks some assumptions made in the DWARF handling.  */
    if (freq == NODE_FREQUENCY_UNLIKELY_EXECUTED)
      return (use_coal) ? darwin_sections[text_cold_coal_section]
  		      : darwin_sections[text_cold_section];
  
+   /* Intercept functions in global init; these are placed in separate sections.
+      FIXME: there should be some neater way to do this, FIXME we should be able
+      to partition within a section.  */
+   if (DECL_NAME (decl)
+       && (startswith (IDENTIFIER_POINTER (DECL_NAME (decl)), "_GLOBAL__sub_I")
+ 	  || startswith (IDENTIFIER_POINTER (DECL_NAME (decl)),
+ 			 "__static_initialization_and_destruction")))
+     return  darwin_sections[static_init_section];
+ 
    /* If we have LTO *and* feedback information, then let LTO handle
       the function ordering, it makes a better job (for normal, hot,
       startup and exit - hence the bailout for cold above).  */
diff -Nrcpad gcc-13.2.0/gcc/config/darwin.h gcc-14.1.0/gcc/config/darwin.h
*** gcc-13.2.0/gcc/config/darwin.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
! /* Target definitions for Darwin (Mac OS X) systems.
!    Copyright (C) 1989-2023 Free Software Foundation, Inc.
     Contributed by Apple Computer Inc.
  
  This file is part of GCC.
--- 1,5 ----
! /* Target definitions for Darwin (macOS) systems.
!    Copyright (C) 1989-2024 Free Software Foundation, Inc.
     Contributed by Apple Computer Inc.
  
  This file is part of GCC.
*************** see the files COPYING3 and COPYING.RUNTI
*** 27,33 ****
  #define CONFIG_DARWIN_H
  
  /* The definitions in this file are common to all processor types
!    running Darwin, which is the kernel for Mac OS X.  Darwin is
     basically a BSD user layer laid over a Mach kernel, then evolved
     for many years (at NeXT) in parallel with other Unix systems.  So
     while the runtime is a somewhat idiosyncratic Mach-based thing,
--- 27,33 ----
  #define CONFIG_DARWIN_H
  
  /* The definitions in this file are common to all processor types
!    running Darwin, which is the kernel for macOS.  Darwin is
     basically a BSD user layer laid over a Mach kernel, then evolved
     for many years (at NeXT) in parallel with other Unix systems.  So
     while the runtime is a somewhat idiosyncratic Mach-based thing,
*************** extern GTY(()) int darwin_ms_struct;
*** 133,142 ****
     cases where these driver opts are used multiple times, or to control
     operations on more than one command (e.g. dynamiclib).  These are handled
     specially and we then add %<xxxx specs for the commands that _don't_ need
!    them.  NOTE: the order of 'shared' and 'dynamiclib' is significant, hence
!    they are placed out of alphabetical order at the start.  Likewise, we keep
!    a couple of cases where a negative option originally appeared after the
!    positive alternate, potentially overriding it.
     When we report an error with %e, it seems necessary to strip the option
     before doing so, otherwise it survives to the cc1 command line (%e doesn't
     appear to abort the program before this).
--- 133,141 ----
     cases where these driver opts are used multiple times, or to control
     operations on more than one command (e.g. dynamiclib).  These are handled
     specially and we then add %<xxxx specs for the commands that _don't_ need
!    them.
!    We keep a couple of cases where a negative option originally appeared after
!    the positive alternate, potentially overriding it.
     When we report an error with %e, it seems necessary to strip the option
     before doing so, otherwise it survives to the cc1 command line (%e doesn't
     appear to abort the program before this).
*************** extern GTY(()) int darwin_ms_struct;
*** 147,155 ****
  
  #undef SUBTARGET_DRIVER_SELF_SPECS
  #define SUBTARGET_DRIVER_SELF_SPECS					\
!   "%{shared:%{!dynamiclib:-dynamiclib}} %<shared",			\
!   "%{static:%{dynamic|dynamiclib:%econflicting code generation switches}}",\
!   "%{dynamiclib:-Xlinker -dylib \
       %{allowable_client*:-Xlinker -allowable_client -Xlinker %*} \
         %<allowable_client* \
       %{bundle_loader*: %<bundle_loader* \
--- 146,154 ----
  
  #undef SUBTARGET_DRIVER_SELF_SPECS
  #define SUBTARGET_DRIVER_SELF_SPECS					\
!   "%{static|fapple-kext|mkernel:%{shared|dynamic|dynamiclib: \
!      %econflicting code generation switches}}",\
!   "%{shared|dynamiclib:-Xlinker -dylib \
       %{allowable_client*:-Xlinker -allowable_client -Xlinker %*} \
         %<allowable_client* \
       %{bundle_loader*: %<bundle_loader* \
*************** extern GTY(()) int darwin_ms_struct;
*** 167,174 ****
         %e-keep_private_externs not allowed with -dynamiclib} \
       %{private_bundle: %<private_bundle \
         %e-private_bundle not allowed with -dynamiclib} \
!     }",									\
!   "%{!dynamiclib: \
       %{bundle_loader*:-Xlinker -bundle_loader -Xlinker %*} \
         %<bundle_loader* \
       %{client_name*:-Xlinker -client_name -Xlinker %*} \
--- 166,173 ----
         %e-keep_private_externs not allowed with -dynamiclib} \
       %{private_bundle: %<private_bundle \
         %e-private_bundle not allowed with -dynamiclib} \
!     }",							\
!   "%{!dynamiclib:%{!shared: \
       %{bundle_loader*:-Xlinker -bundle_loader -Xlinker %*} \
         %<bundle_loader* \
       %{client_name*:-Xlinker -client_name -Xlinker %*} \
*************** extern GTY(()) int darwin_ms_struct;
*** 183,195 ****
         %<keep_private_externs \
       %{private_bundle:-Xlinker -private_bundle} \
         %<private_bundle \
!     }",									\
    "%{all_load:-Xlinker -all_load} %<all_load",				\
    "%{arch_errors_fatal:-Xlinker -arch_errors_fatal} \
      %<arch_errors_fatal",						\
    "%{bind_at_load:-Xlinker -bind_at_load} %<bind_at_load",		\
!   "%{bundle:%{!dynamiclib:-Xlinker -bundle; \
!               :%e-bundle not allowed with -dynamiclib}}",	\
    "%{dead_strip:-Xlinker -dead_strip} %<dead_strip",			\
    "%{dylib_file*:-Xlinker -dylib_file -Xlinker %*} %<dylib_file*",	\
    "%{dylinker:-Xlinker -dylinker} %<dylinker",				\
--- 182,195 ----
         %<keep_private_externs \
       %{private_bundle:-Xlinker -private_bundle} \
         %<private_bundle \
!     }}",									\
    "%{all_load:-Xlinker -all_load} %<all_load",				\
    "%{arch_errors_fatal:-Xlinker -arch_errors_fatal} \
      %<arch_errors_fatal",						\
    "%{bind_at_load:-Xlinker -bind_at_load} %<bind_at_load",		\
!   "%{bundle:%{!dynamiclib:%{!shared: -Xlinker -bundle; \
! 			    :%e-bundle not allowed with -shared}; \
! 	      :%e-bundle not allowed with -dynamiclib}}",		\
    "%{dead_strip:-Xlinker -dead_strip} %<dead_strip",			\
    "%{dylib_file*:-Xlinker -dylib_file -Xlinker %*} %<dylib_file*",	\
    "%{dylinker:-Xlinker -dylinker} %<dylinker",				\
*************** extern GTY(()) int darwin_ms_struct;
*** 270,275 ****
--- 270,281 ----
    "%<y*",								\
    "%<Mach "
  
+ #if LD64_HAS_DEMANGLE
+ #define DARWIN_LD_DEMANGLE " -demangle "
+ #else
+ #define DARWIN_LD_DEMANGLE ""
+ #endif
+ 
  #if LD64_HAS_EXPORT_DYNAMIC
  #define DARWIN_RDYNAMIC "%{rdynamic:-export_dynamic}"
  #else
*************** extern GTY(()) int darwin_ms_struct;
*** 301,307 ****
     %:version-compare(>= 10.7 mmacosx-version-min= -no_pie) }"
  
  #define DARWIN_CC1_SPEC							\
!   "%<dynamic %<dynamiclib %<force_cpusubtype_ALL %<multiply_defined* "
  
  #define SUBSUBTARGET_OVERRIDE_OPTIONS					\
    do {									\
--- 307,342 ----
     %:version-compare(>= 10.7 mmacosx-version-min= -no_pie) }"
  
  #define DARWIN_CC1_SPEC							\
!   "%<dynamic %<force_cpusubtype_ALL %<multiply_defined* %<dynamiclib"
! 
! /* When we are using embedded runpaths DARWIN_AT_RPATH is set. */
! #if DARWIN_AT_RPATH
! # define DARWIN_RPATH_LINK \
! "%{!r:%{!nostdlib:%{!nodefaultrpaths:%(darwin_rpaths)}}}"
! # define DARWIN_SHARED_LIBGCC "-lgcc_s.1.1"
! # define DARWIN_SHARED_WEAK_ADDS " "
! #else
! # define DARWIN_RPATH_LINK ""
! # define DARWIN_SHARED_LIBGCC \
! "%:version-compare(!> 10.11 mmacosx-version-min= -lgcc_s.1.1)"
! # define DARWIN_SHARED_WEAK_ADDS \
! "%{%:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w): \
!  " DARWIN_HEAP_T_LIB "}"
! #endif
! 
! 
! /* We might elect to add a path even when this compiler does not use embedded
!    run paths, so that we can use libraries from an alternate compiler that is
!    using embedded runpaths.  */
! #if DARWIN_DO_EXTRA_RPATH
! # define DARWIN_EXTRA_RPATH \
! "%{!r:%{!nostdlib:%{!nodefaultrpaths:\
!     %:version-compare(>= 10.5 mmacosx-version-min= -rpath) \
!     %:version-compare(>= 10.5 mmacosx-version-min= " DARWIN_ADD_RPATH ") \
!   }}}"
! #else
! # define DARWIN_EXTRA_RPATH ""
! #endif
  
  #define SUBSUBTARGET_OVERRIDE_OPTIONS					\
    do {									\
*************** extern GTY(()) int darwin_ms_struct;
*** 356,361 ****
--- 391,397 ----
  #define LINK_COMMAND_SPEC_A \
     "%{!c:%{!E:%{!S:%{!M:%{!MM:%{!fsyntax-only:%{!fdump=*: \
      %(linker)" \
+     DARWIN_LD_DEMANGLE \
      LINK_PLUGIN_SPEC \
      "%{flto*:%<fcompare-debug*} \
       %{flto} %{fno-lto} %{flto=*} \
*************** extern GTY(()) int darwin_ms_struct;
*** 366,374 ****
      %{e*} %{r} \
      %{o*}%{!o:-o a.out} \
      %{!r:%{!nostdlib:%{!nostartfiles:%S}}} \
!     %{L*} %(link_libgcc) %o \
      %{!r:%{!nostdlib:%{!nodefaultlibs:\
!       %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \
        %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1): \
  	%{static|static-libgcc|static-libstdc++|static-libgfortran: \
  	  libgomp.a%s; : -lgomp }} \
--- 402,412 ----
      %{e*} %{r} \
      %{o*}%{!o:-o a.out} \
      %{!r:%{!nostdlib:%{!nostartfiles:%S}}} \
!     %{L*} %(link_libgcc) \
!     %{!r:%{!nostdlib:%{!nodefaultlibs: " DARWIN_WEAK_CRTS "}}} \
!     %o \
      %{!r:%{!nostdlib:%{!nodefaultlibs:\
!       %{fprofile-arcs|fcondition-coverage|fprofile-generate*|coverage:-lgcov} \
        %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1): \
  	%{static|static-libgcc|static-libstdc++|static-libgfortran: \
  	  libgomp.a%s; : -lgomp }} \
*************** extern GTY(()) int darwin_ms_struct;
*** 380,394 ****
        %(link_ssp) \
        %:version-compare(>< 10.6 10.7 mmacosx-version-min= -ld10-uwfef) \
        %(link_gcc_c_sequence) \
!       %{!nodefaultexport:%{dylib|dynamiclib|bundle: \
! 	%:version-compare(>= 10.11 asm_macosx_version_min= -U) \
! 	%:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_get_address) \
! 	%:version-compare(>= 10.11 asm_macosx_version_min= -exported_symbol) \
! 	%:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_get_address) \
! 	%:version-compare(>= 10.11 asm_macosx_version_min= -U) \
! 	%:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_register_common) \
! 	%:version-compare(>= 10.11 asm_macosx_version_min= -exported_symbol) \
! 	%:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_register_common) \
        }} \
      }}}\
      %{!r:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} "\
--- 418,432 ----
        %(link_ssp) \
        %:version-compare(>< 10.6 10.7 mmacosx-version-min= -ld10-uwfef) \
        %(link_gcc_c_sequence) \
!       %{!nodefaultexport: \
! 	%{%:version-compare(>= 10.11 asm_macosx_version_min= -U): \
! 	   ___emutls_get_address -exported_symbol ___emutls_get_address \
! 	  -U ___emutls_register_common \
! 	  -exported_symbol ___emutls_register_common \
! 	  -U ___gcc_nested_func_ptr_created \
! 	  -exported_symbol ___gcc_nested_func_ptr_created \
! 	  -U ___gcc_nested_func_ptr_deleted \
! 	  -exported_symbol ___gcc_nested_func_ptr_deleted \
        }} \
      }}}\
      %{!r:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} "\
*************** extern GTY(()) int darwin_ms_struct;
*** 396,402 ****
      DARWIN_NOPIE_SPEC \
      DARWIN_RDYNAMIC \
      DARWIN_NOCOMPACT_UNWIND \
!     "}}}}}}} %<pie %<no-pie %<rdynamic %<X %<rpath "
  
  /* Spec that controls whether the debug linker is run automatically for
     a link step.  This needs to be done if there is a source file on the
--- 434,442 ----
      DARWIN_NOPIE_SPEC \
      DARWIN_RDYNAMIC \
      DARWIN_NOCOMPACT_UNWIND \
!     DARWIN_EXTRA_RPATH \
!     DARWIN_RPATH_LINK \
!     "}}}}}}} %<pie %<no-pie %<rdynamic %<X %<rpath %<nodefaultrpaths "
  
  /* Spec that controls whether the debug linker is run automatically for
     a link step.  This needs to be done if there is a source file on the
*************** extern GTY(()) int darwin_ms_struct;
*** 508,530 ****
  #undef REAL_LIBGCC_SPEC
  #define REAL_LIBGCC_SPEC \
  "%{static-libgcc|static:						  \
!     %:version-compare(!> 10.6 mmacosx-version-min= -lgcc_eh)		  \
!     %:version-compare(>= 10.6 mmacosx-version-min= -lemutls_w);		  \
     shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime:		  \
!     %:version-compare(!> 10.11 mmacosx-version-min= -lgcc_s.1.1)	  \
!     %:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w)		  \
      %:version-compare(!> 10.3.9 mmacosx-version-min= -lgcc_eh)		  \
      %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4)   \
!     %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5);	  \
!    : -lemutls_w								  \
    } -lgcc "
  
  /* We specify crt0.o as -lcrt0.o so that ld will search the library path.  */
  
  #undef  STARTFILE_SPEC
  #define STARTFILE_SPEC							    \
! "%{dynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}}			   \
!  %{!dynamiclib:%{bundle:%(darwin_bundle1)}				    \
       %{!bundle:%{pg:%{static:-lgcrt0.o}					    \
                       %{!static:%{object:-lgcrt0.o}			    \
                                 %{!object:%{preload:-lgcrt0.o}		    \
--- 548,574 ----
  #undef REAL_LIBGCC_SPEC
  #define REAL_LIBGCC_SPEC \
  "%{static-libgcc|static:						  \
!     %:version-compare(!> 10.6 mmacosx-version-min= -lgcc_eh);		  \
     shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime:		  \
!    " DARWIN_SHARED_LIBGCC "						  \
      %:version-compare(!> 10.3.9 mmacosx-version-min= -lgcc_eh)		  \
      %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4)   \
!     %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)	  \
    } -lgcc "
  
+ #define DARWIN_WEAK_CRTS \
+ "%{static-libgcc|static:						  \
+     %{%:version-compare(>= 10.6 mmacosx-version-min= -lemutls_w):	  \
+       " DARWIN_HEAP_T_LIB "} ;						  \
+    : -lemutls_w	" DARWIN_HEAP_T_LIB "					  \
+   }"
+ 
  /* We specify crt0.o as -lcrt0.o so that ld will search the library path.  */
  
  #undef  STARTFILE_SPEC
  #define STARTFILE_SPEC							    \
! "%{dynamiclib|shared: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}}		   \
!  %{!dynamiclib:%{!shared:%{bundle:%(darwin_bundle1)}			    \
       %{!bundle:%{pg:%{static:-lgcrt0.o}					    \
                       %{!static:%{object:-lgcrt0.o}			    \
                                 %{!object:%{preload:-lgcrt0.o}		    \
*************** extern GTY(()) int darwin_ms_struct;
*** 535,542 ****
                        %{!static:%{object:-lcrt0.o}			    \
                                  %{!object:%{preload:-lcrt0.o}		    \
                                    %{!preload: %(darwin_crt1)		    \
! 					      %(darwin_crt2)}}}}}}	    \
!  %(darwin_crt3) %<dynamiclib "
  
  /* We want a destructor last in the list.  */
  #define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}"
--- 579,586 ----
                        %{!static:%{object:-lcrt0.o}			    \
                                  %{!object:%{preload:-lcrt0.o}		    \
                                    %{!preload: %(darwin_crt1)		    \
! 					      %(darwin_crt2)}}}}}}}	    \
!  %(darwin_crt3) "
  
  /* We want a destructor last in the list.  */
  #define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}"
*************** extern GTY(()) int darwin_ms_struct;
*** 547,553 ****
    { "darwin_crt2", DARWIN_CRT2_SPEC },					\
    { "darwin_crt3", DARWIN_CRT3_SPEC },					\
    { "darwin_dylib1", DARWIN_DYLIB1_SPEC },				\
!   { "darwin_bundle1", DARWIN_BUNDLE1_SPEC },
  
  #define DARWIN_CRT1_SPEC						\
    "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o)		\
--- 591,598 ----
    { "darwin_crt2", DARWIN_CRT2_SPEC },					\
    { "darwin_crt3", DARWIN_CRT3_SPEC },					\
    { "darwin_dylib1", DARWIN_DYLIB1_SPEC },				\
!   { "darwin_bundle1", DARWIN_BUNDLE1_SPEC },				\
!   { "darwin_rpaths", DARWIN_RPATH_SPEC },
  
  #define DARWIN_CRT1_SPEC						\
    "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o)		\
*************** extern GTY(()) int darwin_ms_struct;
*** 573,578 ****
--- 618,633 ----
  "%{!static:%:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o)	\
  	   %{fgnu-tm: -lcrttms.o}}"
  
+ #if DARWIN_AT_RPATH
+ /* A default rpath, that picks up dependent libraries installed in the same
+    director as one being loaded.  */
+ #define DARWIN_RPATH_SPEC \
+   "%:version-compare(>= 10.5 mmacosx-version-min= -rpath) \
+    %{%:version-compare(>= 10.5 mmacosx-version-min= @loader_path): %P }"
+ #else
+ #define DARWIN_RPATH_SPEC ""
+ #endif
+ 
  #ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
  /* Emit macosx version (but only major).  */
  #define ASM_MMACOSX_VERSION_MIN_SPEC \
*************** int darwin_label_is_anonymous_local_objc
*** 823,829 ****
         else if (xname[0] == '+' || xname[0] == '-')			     \
           fprintf (FILE, "\"%s\"", xname);				     \
         else if (darwin_label_is_anonymous_local_objc_name (xname))	     \
!          fprintf (FILE, "L%s", xname);					     \
         else if (xname[0] != '"' && name_needs_quotes (xname))		     \
  	 asm_fprintf (FILE, "\"%U%s\"", xname);				     \
         else								     \
--- 878,886 ----
         else if (xname[0] == '+' || xname[0] == '-')			     \
           fprintf (FILE, "\"%s\"", xname);				     \
         else if (darwin_label_is_anonymous_local_objc_name (xname))	     \
! 	fprintf (FILE, "%c%s", flag_next_runtime ? 'L' : 'l', xname);	     \
!        else if (strncmp (xname, "__anon_cfstring", 15) == 0)		     \
! 	fprintf (FILE, "L%s", xname);					     \
         else if (xname[0] != '"' && name_needs_quotes (xname))		     \
  	 asm_fprintf (FILE, "\"%U%s\"", xname);				     \
         else								     \
*************** enum machopic_addr_class {
*** 1082,1088 ****
  
  #undef ASM_PREFERRED_EH_DATA_FORMAT
  #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL)  \
!   (((CODE) == 2 && (GLOBAL) == 1) \
     ? (DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4) : \
       ((CODE) == 1 || (GLOBAL) == 0) ? DW_EH_PE_pcrel : DW_EH_PE_absptr)
  
--- 1139,1145 ----
  
  #undef ASM_PREFERRED_EH_DATA_FORMAT
  #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL)  \
!   (((CODE) == 2 && (GLOBAL) == 1) || ((CODE) == 0 && (GLOBAL) == 1) \
     ? (DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4) : \
       ((CODE) == 1 || (GLOBAL) == 0) ? DW_EH_PE_pcrel : DW_EH_PE_absptr)
  
diff -Nrcpad gcc-13.2.0/gcc/config/darwin.opt gcc-14.1.0/gcc/config/darwin.opt
*** gcc-13.2.0/gcc/config/darwin.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/darwin.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Processor-independent options for Darwin.
  
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Processor-independent options for Darwin.
  
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** Driver RejectNegative Separate
*** 211,217 ****
  
  init
  Driver RejectNegative Separate
! -init <symbol_name>	The symbol <symbol_name> will be used as the first initialiser for a dylib.
  
  install_name
  Driver RejectNegative Separate
--- 211,217 ----
  
  init
  Driver RejectNegative Separate
! -init <symbol_name>	The symbol <symbol_name> will be used as the first initializer for a dylib.
  
  install_name
  Driver RejectNegative Separate
*************** nodefaultexport
*** 241,246 ****
--- 241,250 ----
  Driver RejectNegative
  Do not add a default symbol exports to modules or dynamic libraries.
  
+ nodefaultrpaths
+ Driver RejectNegative
+ Do not add default run paths (for the compiler library directories) to executables, modules or dynamic libraries.
+ 
  nofixprebinding
  Driver RejectNegative
  (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable.
diff -Nrcpad gcc-13.2.0/gcc/config/darwin.opt.urls gcc-14.1.0/gcc/config/darwin.opt.urls
*** gcc-13.2.0/gcc/config/darwin.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/darwin.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,224 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/darwin.opt and generated HTML
+ 
+ dependency-file
+ UrlSuffix(gcc/Darwin-Options.html#index-dependency-file)
+ 
+ fconstant-cfstrings
+ UrlSuffix(gcc/Darwin-Options.html#index-fconstant-cfstrings)
+ 
+ iframework
+ UrlSuffix(gcc/Darwin-Options.html#index-iframework)
+ 
+ mconstant-cfstrings
+ UrlSuffix(gcc/Darwin-Options.html#index-mconstant-cfstrings)
+ 
+ ; skipping UrlSuffix for 'mdynamic-no-pic' due to finding no URLs
+ 
+ mfix-and-continue
+ UrlSuffix(gcc/Darwin-Options.html#index-mfix-and-continue)
+ 
+ mkernel
+ UrlSuffix(gcc/Darwin-Options.html#index-mkernel)
+ 
+ mmacosx-version-min=
+ UrlSuffix(gcc/Darwin-Options.html#index-mmacosx-version-min)
+ 
+ mone-byte-bool
+ UrlSuffix(gcc/Darwin-Options.html#index-mone-byte-bool)
+ 
+ all_load
+ UrlSuffix(gcc/Darwin-Options.html#index-all_005fload)
+ 
+ allowable_client
+ UrlSuffix(gcc/Darwin-Options.html#index-allowable_005fclient)
+ 
+ arch_errors_fatal
+ UrlSuffix(gcc/Darwin-Options.html#index-arch_005ferrors_005ffatal)
+ 
+ bind_at_load
+ UrlSuffix(gcc/Darwin-Options.html#index-bind_005fat_005fload)
+ 
+ bundle
+ UrlSuffix(gcc/Darwin-Options.html#index-bundle)
+ 
+ bundle_loader
+ UrlSuffix(gcc/Darwin-Options.html#index-bundle_005floader)
+ 
+ client_name
+ UrlSuffix(gcc/Darwin-Options.html#index-client_005fname)
+ 
+ compatibility_version
+ UrlSuffix(gcc/Darwin-Options.html#index-compatibility_005fversion)
+ 
+ current_version
+ UrlSuffix(gcc/Darwin-Options.html#index-current_005fversion)
+ 
+ dead_strip
+ UrlSuffix(gcc/Darwin-Options.html#index-dead_005fstrip)
+ 
+ dylib_file
+ UrlSuffix(gcc/Darwin-Options.html#index-dylib_005ffile)
+ 
+ dylinker_install_name
+ UrlSuffix(gcc/Darwin-Options.html#index-dylinker_005finstall_005fname)
+ 
+ dynamic
+ UrlSuffix(gcc/Darwin-Options.html#index-dynamic)
+ 
+ dynamiclib
+ UrlSuffix(gcc/Darwin-Options.html#index-dynamiclib)
+ 
+ exported_symbols_list
+ UrlSuffix(gcc/Darwin-Options.html#index-exported_005fsymbols_005flist)
+ 
+ filelist
+ UrlSuffix(gcc/Darwin-Options.html#index-filelist)
+ 
+ flat_namespace
+ UrlSuffix(gcc/Darwin-Options.html#index-flat_005fnamespace)
+ 
+ force_cpusubtype_ALL
+ UrlSuffix(gcc/Darwin-Options.html#index-force_005fcpusubtype_005fALL)
+ 
+ force_flat_namespace
+ UrlSuffix(gcc/Darwin-Options.html#index-force_005fflat_005fnamespace)
+ 
+ gfull
+ UrlSuffix(gcc/Darwin-Options.html#index-gfull)
+ 
+ gused
+ UrlSuffix(gcc/Darwin-Options.html#index-gused)
+ 
+ headerpad_max_install_names
+ UrlSuffix(gcc/Darwin-Options.html#index-headerpad_005fmax_005finstall_005fnames)
+ 
+ image_base
+ UrlSuffix(gcc/Darwin-Options.html#index-image_005fbase)
+ 
+ init
+ UrlSuffix(gcc/Darwin-Options.html#index-init)
+ 
+ install_name
+ UrlSuffix(gcc/Darwin-Options.html#index-install_005fname)
+ 
+ keep_private_externs
+ UrlSuffix(gcc/Darwin-Options.html#index-keep_005fprivate_005fexterns)
+ 
+ multi_module
+ UrlSuffix(gcc/Darwin-Options.html#index-multi_005fmodule)
+ 
+ multiply_defined
+ UrlSuffix(gcc/Darwin-Options.html#index-multiply_005fdefined)
+ 
+ multiply_defined_unused
+ UrlSuffix(gcc/Darwin-Options.html#index-multiply_005fdefined_005funused)
+ 
+ no_dead_strip_inits_and_terms
+ UrlSuffix(gcc/Darwin-Options.html#index-no_005fdead_005fstrip_005finits_005fand_005fterms)
+ 
+ nodefaultrpaths
+ UrlSuffix(gcc/Darwin-Options.html#index-nodefaultrpaths)
+ 
+ nofixprebinding
+ UrlSuffix(gcc/Darwin-Options.html#index-nofixprebinding)
+ 
+ nomultidefs
+ UrlSuffix(gcc/Darwin-Options.html#index-nomultidefs)
+ 
+ noprebind
+ UrlSuffix(gcc/Darwin-Options.html#index-noprebind)
+ 
+ noseglinkedit
+ UrlSuffix(gcc/Darwin-Options.html#index-noseglinkedit)
+ 
+ pagezero_size
+ UrlSuffix(gcc/Darwin-Options.html#index-pagezero_005fsize)
+ 
+ prebind
+ UrlSuffix(gcc/Darwin-Options.html#index-prebind)
+ 
+ prebind_all_twolevel_modules
+ UrlSuffix(gcc/Darwin-Options.html#index-prebind_005fall_005ftwolevel_005fmodules)
+ 
+ private_bundle
+ UrlSuffix(gcc/Darwin-Options.html#index-private_005fbundle)
+ 
+ ; skipping UrlSuffix for 'pthread' due to multiple URLs:
+ ;   duplicate: 'gcc/Link-Options.html#index-pthread-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-pthread'
+ 
+ rdynamic
+ UrlSuffix(gcc/Link-Options.html#index-rdynamic)
+ 
+ read_only_relocs
+ UrlSuffix(gcc/Darwin-Options.html#index-read_005fonly_005frelocs)
+ 
+ sectalign
+ UrlSuffix(gcc/Darwin-Options.html#index-sectalign)
+ 
+ sectcreate
+ UrlSuffix(gcc/Darwin-Options.html#index-sectcreate)
+ 
+ sectobjectsymbols
+ UrlSuffix(gcc/Darwin-Options.html#index-sectobjectsymbols)
+ 
+ sectorder
+ UrlSuffix(gcc/Darwin-Options.html#index-sectorder)
+ 
+ seg_addr_table
+ UrlSuffix(gcc/Darwin-Options.html#index-seg_005faddr_005ftable)
+ 
+ seg_addr_table_filename
+ UrlSuffix(gcc/Darwin-Options.html#index-seg_005faddr_005ftable_005ffilename)
+ 
+ seg1addr
+ UrlSuffix(gcc/Darwin-Options.html#index-seg1addr)
+ 
+ segaddr
+ UrlSuffix(gcc/Darwin-Options.html#index-segaddr)
+ 
+ seglinkedit
+ UrlSuffix(gcc/Darwin-Options.html#index-seglinkedit)
+ 
+ segprot
+ UrlSuffix(gcc/Darwin-Options.html#index-segprot)
+ 
+ segs_read_only_addr
+ UrlSuffix(gcc/Darwin-Options.html#index-segs_005fread_005fonly_005faddr)
+ 
+ segs_read_write_addr
+ UrlSuffix(gcc/Darwin-Options.html#index-segs_005fread_005fwrite_005faddr)
+ 
+ single_module
+ UrlSuffix(gcc/Darwin-Options.html#index-single_005fmodule)
+ 
+ sub_library
+ UrlSuffix(gcc/Darwin-Options.html#index-sub_005flibrary)
+ 
+ sub_umbrella
+ UrlSuffix(gcc/Darwin-Options.html#index-sub_005fumbrella)
+ 
+ twolevel_namespace
+ UrlSuffix(gcc/Darwin-Options.html#index-twolevel_005fnamespace)
+ 
+ umbrella
+ UrlSuffix(gcc/Darwin-Options.html#index-umbrella)
+ 
+ undefined
+ UrlSuffix(gcc/Darwin-Options.html#index-undefined)
+ 
+ unexported_symbols_list
+ UrlSuffix(gcc/Darwin-Options.html#index-unexported_005fsymbols_005flist)
+ 
+ weak_reference_mismatches
+ UrlSuffix(gcc/Darwin-Options.html#index-weak_005freference_005fmismatches)
+ 
+ whatsloaded
+ UrlSuffix(gcc/Darwin-Options.html#index-whatsloaded)
+ 
+ whyload
+ UrlSuffix(gcc/Darwin-Options.html#index-whyload)
+ 
+ X
+ LangUrlSuffix_D(gdc/Code-Generation.html#index-X)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/default-c.cc gcc-14.1.0/gcc/config/default-c.cc
*** gcc-13.2.0/gcc/config/default-c.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/default-c.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Default C-family target hooks initializer.
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Default C-family target hooks initializer.
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/default-d.cc gcc-14.1.0/gcc/config/default-d.cc
*** gcc-13.2.0/gcc/config/default-d.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/default-d.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Default D language target hooks initializer.
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
--- 1,5 ----
  /* Default D language target hooks initializer.
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
diff -Nrcpad gcc-13.2.0/gcc/config/default-rust.cc gcc-14.1.0/gcc/config/default-rust.cc
*** gcc-13.2.0/gcc/config/default-rust.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/default-rust.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,29 ----
+ /* Default Rust language target hooks initializer.
+    Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm_rust.h"
+ #include "rust/rust-target.h"
+ #include "rust/rust-target-def.h"
+ 
+ /* Do not include tm.h or tm_p.h here; definitions needed by the target
+    architecture to initialize targetrustm should instead be added to tm_rust.h.
+  */
+ 
+ struct gcc_targetrustm targetrustm = TARGETRUSTM_INITIALIZER;
diff -Nrcpad gcc-13.2.0/gcc/config/dragonfly-d.cc gcc-14.1.0/gcc/config/dragonfly-d.cc
*** gcc-13.2.0/gcc/config/dragonfly-d.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/dragonfly-d.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* DragonFly support needed only by D front-end.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
--- 1,5 ----
  /* DragonFly support needed only by D front-end.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
diff -Nrcpad gcc-13.2.0/gcc/config/dragonfly-rust.cc gcc-14.1.0/gcc/config/dragonfly-rust.cc
*** gcc-13.2.0/gcc/config/dragonfly-rust.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/dragonfly-rust.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,40 ----
+ /* DragonFly support needed only by Rust front-end.
+    Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "tm_rust.h"
+ #include "rust/rust-target.h"
+ #include "rust/rust-target-def.h"
+ 
+ /* Implement TARGET_RUST_OS_INFO for DragonFly targets.  */
+ 
+ static void
+ dragonfly_rust_target_os_info (void)
+ {
+   rust_add_target_info ("target_family", "unix");
+   rust_add_target_info ("target_os", "dragonfly");
+   rust_add_target_info ("target_vendor", "unknown");
+   rust_add_target_info ("target_env", "");
+ }
+ 
+ #undef TARGET_RUST_OS_INFO
+ #define TARGET_RUST_OS_INFO dragonfly_rust_target_os_info
+ 
+ struct gcc_targetrustm targetrustm = TARGETRUSTM_INITIALIZER;
diff -Nrcpad gcc-13.2.0/gcc/config/dragonfly-stdint.h gcc-14.1.0/gcc/config/dragonfly-stdint.h
*** gcc-13.2.0/gcc/config/dragonfly-stdint.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/dragonfly-stdint.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for <stdint.h> types for DragonFly systems.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by John Marino <gnugcc@marino.st>
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions for <stdint.h> types for DragonFly systems.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by John Marino <gnugcc@marino.st>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/dragonfly.h gcc-14.1.0/gcc/config/dragonfly.h
*** gcc-13.2.0/gcc/config/dragonfly.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/dragonfly.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Base configuration file for all DragonFly targets.
!    Copyright (C) 2014-2023 Free Software Foundation, Inc.
     Contributed by John Marino <gnugcc@marino.st>
  
  This file is part of GCC.
--- 1,5 ----
  /* Base configuration file for all DragonFly targets.
!    Copyright (C) 2014-2024 Free Software Foundation, Inc.
     Contributed by John Marino <gnugcc@marino.st>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/dragonfly.opt gcc-14.1.0/gcc/config/dragonfly.opt
*** gcc-13.2.0/gcc/config/dragonfly.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/dragonfly.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; DragonFly BSD options.
  
! ; Copyright (C) 2014-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; DragonFly BSD options.
  
! ; Copyright (C) 2014-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/dragonfly.opt.urls gcc-14.1.0/gcc/config/dragonfly.opt.urls
*** gcc-13.2.0/gcc/config/dragonfly.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/dragonfly.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,9 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/dragonfly.opt and generated HTML
+ 
+ ; skipping UrlSuffix for 'pthread' due to multiple URLs:
+ ;   duplicate: 'gcc/Link-Options.html#index-pthread-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-pthread'
+ 
+ rdynamic
+ UrlSuffix(gcc/Link-Options.html#index-rdynamic)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/elfos.h gcc-14.1.0/gcc/config/elfos.h
*** gcc-13.2.0/gcc/config/elfos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/elfos.h	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* elfos.h  --  operating system specific defines to be used when
     targeting GCC for some generic ELF system
!    Copyright (C) 1991-2023 Free Software Foundation, Inc.
     Based on svr4.h contributed by Ron Guilmette (rfg@netcom.com).
  
  This file is part of GCC.
--- 1,6 ----
  /* elfos.h  --  operating system specific defines to be used when
     targeting GCC for some generic ELF system
!    Copyright (C) 1991-2024 Free Software Foundation, Inc.
     Based on svr4.h contributed by Ron Guilmette (rfg@netcom.com).
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/constraints.md gcc-14.1.0/gcc/config/epiphany/constraints.md
*** gcc-13.2.0/gcc/config/epiphany/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for Adaptiva epiphany
! ;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
  ;; Contributed by Embecosm on behalf of Adapteva, Inc.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Constraint definitions for Adaptiva epiphany
! ;; Copyright (C) 2007-2024 Free Software Foundation, Inc.
  ;; Contributed by Embecosm on behalf of Adapteva, Inc.
  
  ;; This file is part of GCC.
***************
*** 98,109 ****
         (match_test "REGNO (op) >= FIRST_PSEUDO_REGISTER || REGNO (op) <= 7")))
  
  ;; Constant suitable for the addsi3_r pattern.
  (define_constraint "Car"
    "addsi3_r constant."
    (and (match_code "const_int")
!        (ior (match_test "RTX_OK_FOR_OFFSET_P (SImode, op)")
! 	    (match_test "RTX_OK_FOR_OFFSET_P (HImode, op)")
! 	    (match_test "RTX_OK_FOR_OFFSET_P (QImode, op)"))))
  
  ;; The return address if it can be replaced with GPR_LR.
  (define_constraint "Rra"
--- 98,109 ----
         (match_test "REGNO (op) >= FIRST_PSEUDO_REGISTER || REGNO (op) <= 7")))
  
  ;; Constant suitable for the addsi3_r pattern.
+ ;; No idea why we previously used RTX_OK_FOR_OFFSET with SI, HI an QI
+ ;; modes.  The instruction in question accepts 11 bit signed constants.
  (define_constraint "Car"
    "addsi3_r constant."
    (and (match_code "const_int")
!        (match_test "IN_RANGE (INTVAL (op), -1024, 1023)")))
  
  ;; The return address if it can be replaced with GPR_LR.
  (define_constraint "Rra"
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany-modes.def gcc-14.1.0/gcc/config/epiphany/epiphany-modes.def
*** gcc-13.2.0/gcc/config/epiphany/epiphany-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/epiphany-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, Adapteva Epiphany cpu.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, Adapteva Epiphany cpu.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany-protos.h gcc-14.1.0/gcc/config/epiphany/epiphany-protos.h
*** gcc-13.2.0/gcc/config/epiphany/epiphany-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/epiphany-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, EPIPHANY cpu.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, EPIPHANY cpu.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
*************** extern void emit_set_fp_mode (int entity
*** 44,51 ****
  #endif
  extern void epiphany_insert_mode_switch_use (rtx_insn *insn, int, int);
  extern void epiphany_expand_set_fp_mode (rtx *operands);
! extern int epiphany_mode_needed (int entity, rtx_insn *insn);
! extern int epiphany_mode_after (int entity, int last_mode, rtx_insn *insn);
  extern bool epiphany_epilogue_uses (int regno);
  extern bool epiphany_optimize_mode_switching (int entity);
  extern bool epiphany_is_interrupt_p (tree);
--- 44,54 ----
  #endif
  extern void epiphany_insert_mode_switch_use (rtx_insn *insn, int, int);
  extern void epiphany_expand_set_fp_mode (rtx *operands);
! #ifdef HARD_CONST
! extern int epiphany_mode_needed (int entity, rtx_insn *insn, HARD_REG_SET);
! extern int epiphany_mode_after (int entity, int last_mode, rtx_insn *insn,
! 				HARD_REG_SET);
! #endif
  extern bool epiphany_epilogue_uses (int regno);
  extern bool epiphany_optimize_mode_switching (int entity);
  extern bool epiphany_is_interrupt_p (tree);
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany-sched.md gcc-14.1.0/gcc/config/epiphany/epiphany-sched.md
*** gcc-13.2.0/gcc/config/epiphany/epiphany-sched.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/epiphany-sched.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; DFA scheduling description for EPIPHANY
! ;; Copyright (C) 2004-2023 Free Software Foundation, Inc.
  ;; Contributed by Embecosm on behalf of Adapteva, Inc.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; DFA scheduling description for EPIPHANY
! ;; Copyright (C) 2004-2024 Free Software Foundation, Inc.
  ;; Contributed by Embecosm on behalf of Adapteva, Inc.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany.cc gcc-14.1.0/gcc/config/epiphany/epiphany.cc
*** gcc-13.2.0/gcc/config/epiphany/epiphany.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/epiphany.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Subroutines used for code generation on the EPIPHANY cpu.
!    Copyright (C) 1994-2023 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Subroutines used for code generation on the EPIPHANY cpu.
!    Copyright (C) 1994-2024 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
*************** static rtx_insn *frame_insn (rtx);
*** 106,113 ****
  #define TARGET_SCHED_ISSUE_RATE epiphany_issue_rate
  #define TARGET_SCHED_ADJUST_COST epiphany_adjust_cost
  
- #define TARGET_LRA_P hook_bool_void_false
- 
  #define TARGET_LEGITIMATE_ADDRESS_P epiphany_legitimate_address_p
  
  #define TARGET_SECONDARY_RELOAD epiphany_secondary_reload
--- 106,111 ----
*************** epiphany_init_reg_tables (void)
*** 460,466 ****
                       They unmask them while calling an interruptible
  		     function, though.  */
  
! static const struct attribute_spec epiphany_attribute_table[] =
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
--- 458,464 ----
                       They unmask them while calling an interruptible
  		     function, though.  */
  
! TARGET_GNU_ATTRIBUTES (epiphany_attribute_table,
  {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
         affects_type_identity, handler, exclude } */
*************** static const struct attribute_spec epiph
*** 470,478 ****
      epiphany_handle_forwarder_attribute, NULL },
    { "long_call",  0, 0, false, true, true, false, NULL, NULL },
    { "short_call", 0, 0, false, true, true, false, NULL, NULL },
!   { "disinterrupt", 0, 0, false, true, true, true, NULL, NULL },
!   { NULL,         0, 0, false, false, false, false, NULL, NULL }
! };
  
  /* Handle an "interrupt" attribute; arguments as in
     struct attribute_spec.handler.  */
--- 468,475 ----
      epiphany_handle_forwarder_attribute, NULL },
    { "long_call",  0, 0, false, true, true, false, NULL, NULL },
    { "short_call", 0, 0, false, true, true, false, NULL, NULL },
!   { "disinterrupt", 0, 0, false, true, true, true, NULL, NULL }
! });
  
  /* Handle an "interrupt" attribute; arguments as in
     struct attribute_spec.handler.  */
*************** epiphany_setup_incoming_varargs (cumulat
*** 731,737 ****
      gcc_assert (arg.mode != BLKmode);
  
    next_cum = *get_cumulative_args (cum);
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl)))
      next_cum = (ROUND_ADVANCE_CUM (next_cum, arg.mode, arg.type)
  		+ ROUND_ADVANCE_ARG (arg.mode, arg.type));
    first_anon_arg = next_cum;
--- 728,735 ----
      gcc_assert (arg.mode != BLKmode);
  
    next_cum = *get_cumulative_args (cum);
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl))
!       || arg.type != NULL_TREE)
      next_cum = (ROUND_ADVANCE_CUM (next_cum, arg.mode, arg.type)
  		+ ROUND_ADVANCE_ARG (arg.mode, arg.type));
    first_anon_arg = next_cum;
*************** epiphany_adjust_cost (rtx_insn *insn, in
*** 2055,2061 ****
       || RTX_OK_FOR_OFFSET_P (MODE, XEXP (X, 1))))
  
  static bool
! epiphany_legitimate_address_p (machine_mode mode, rtx x, bool strict)
  {
  #define REG_OK_FOR_BASE_P(X) \
    (strict ? GPR_P (REGNO (X)) : GPR_AP_OR_PSEUDO_P (REGNO (X)))
--- 2053,2060 ----
       || RTX_OK_FOR_OFFSET_P (MODE, XEXP (X, 1))))
  
  static bool
! epiphany_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 			       code_helper = ERROR_MARK)
  {
  #define REG_OK_FOR_BASE_P(X) \
    (strict ? GPR_P (REGNO (X)) : GPR_AP_OR_PSEUDO_P (REGNO (X)))
*************** epiphany_function_ok_for_sibcall (tree d
*** 2161,2168 ****
  
        gcc_assert (POINTER_TYPE_P (fn_type));
        fn_type = TREE_TYPE (fn_type);
!       gcc_assert (TREE_CODE (fn_type) == FUNCTION_TYPE
! 		  || TREE_CODE (fn_type) == METHOD_TYPE);
        call_interrupt_p
  	= lookup_attribute ("interrupt", TYPE_ATTRIBUTES (fn_type)) != NULL;
      }
--- 2160,2166 ----
  
        gcc_assert (POINTER_TYPE_P (fn_type));
        fn_type = TREE_TYPE (fn_type);
!       gcc_assert (FUNC_OR_METHOD_TYPE_P (fn_type));
        call_interrupt_p
  	= lookup_attribute ("interrupt", TYPE_ATTRIBUTES (fn_type)) != NULL;
      }
*************** epiphany_mode_priority (int entity, int
*** 2402,2408 ****
  }
  
  int
! epiphany_mode_needed (int entity, rtx_insn *insn)
  {
    enum attr_fp_mode mode;
  
--- 2400,2406 ----
  }
  
  int
! epiphany_mode_needed (int entity, rtx_insn *insn, HARD_REG_SET)
  {
    enum attr_fp_mode mode;
  
*************** epiphany_mode_needed (int entity, rtx_in
*** 2439,2445 ****
      return 2;
    case EPIPHANY_MSW_ENTITY_ROUND_KNOWN:
      if (recog_memoized (insn) == CODE_FOR_set_fp_mode)
!       mode = (enum attr_fp_mode) epiphany_mode_after (entity, mode, insn);
      /* Fall through.  */
    case EPIPHANY_MSW_ENTITY_NEAREST:
    case EPIPHANY_MSW_ENTITY_TRUNC:
--- 2437,2443 ----
      return 2;
    case EPIPHANY_MSW_ENTITY_ROUND_KNOWN:
      if (recog_memoized (insn) == CODE_FOR_set_fp_mode)
!       mode = (enum attr_fp_mode) epiphany_mode_after (entity, mode, insn, {});
      /* Fall through.  */
    case EPIPHANY_MSW_ENTITY_NEAREST:
    case EPIPHANY_MSW_ENTITY_TRUNC:
*************** epiphany_mode_entry_exit (int entity, bo
*** 2500,2506 ****
  }
  
  int
! epiphany_mode_after (int entity, int last_mode, rtx_insn *insn)
  {
    /* We have too few call-saved registers to hope to keep the masks across
       calls.  */
--- 2498,2505 ----
  }
  
  int
! epiphany_mode_after (int entity, int last_mode, rtx_insn *insn,
! 		     HARD_REG_SET)
  {
    /* We have too few call-saved registers to hope to keep the masks across
       calls.  */
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany.h gcc-14.1.0/gcc/config/epiphany/epiphany.h
*** gcc-13.2.0/gcc/config/epiphany/epiphany.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/epiphany.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler, Argonaut EPIPHANY cpu.
!    Copyright (C) 1994-2023 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions of target machine for GNU compiler, Argonaut EPIPHANY cpu.
!    Copyright (C) 1994-2024 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 170,181 ****
  /* layout_type overrides our ADJUST_ALIGNMENT settings from epiphany-modes.def
     for vector modes, so we have to override it back.  */
  #define ROUND_TYPE_ALIGN(TYPE, MANGLED_ALIGN, SPECIFIED_ALIGN) \
!  (TREE_CODE (TYPE) == VECTOR_TYPE && !TYPE_USER_ALIGN (TYPE) \
    && SPECIFIED_ALIGN <= GET_MODE_ALIGNMENT (TYPE_MODE (TYPE)) \
    ? GET_MODE_ALIGNMENT (TYPE_MODE (TYPE)) \
!   : ((TREE_CODE (TYPE) == RECORD_TYPE \
!       || TREE_CODE (TYPE) == UNION_TYPE \
!       || TREE_CODE (TYPE) == QUAL_UNION_TYPE) \
       && !TYPE_PACKED (TYPE)) \
    ? epiphany_special_round_type_align ((TYPE), (MANGLED_ALIGN), \
  				       (SPECIFIED_ALIGN)) \
--- 170,179 ----
  /* layout_type overrides our ADJUST_ALIGNMENT settings from epiphany-modes.def
     for vector modes, so we have to override it back.  */
  #define ROUND_TYPE_ALIGN(TYPE, MANGLED_ALIGN, SPECIFIED_ALIGN) \
!  (VECTOR_TYPE_P (TYPE) && !TYPE_USER_ALIGN (TYPE) \
    && SPECIFIED_ALIGN <= GET_MODE_ALIGNMENT (TYPE_MODE (TYPE)) \
    ? GET_MODE_ALIGNMENT (TYPE_MODE (TYPE)) \
!   : (RECORD_OR_UNION_TYPE_P (TYPE) \
       && !TYPE_PACKED (TYPE)) \
    ? epiphany_special_round_type_align ((TYPE), (MANGLED_ALIGN), \
  				       (SPECIFIED_ALIGN)) \
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany.md gcc-14.1.0/gcc/config/epiphany/epiphany.md
*** gcc-13.2.0/gcc/config/epiphany/epiphany.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/epiphany.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description of the Adaptiva epiphany cpu for GNU C compiler
! ;; Copyright (C) 1994-2023 Free Software Foundation, Inc.
  ;; Contributed by Embecosm on behalf of Adapteva, Inc.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description of the Adaptiva epiphany cpu for GNU C compiler
! ;; Copyright (C) 1994-2024 Free Software Foundation, Inc.
  ;; Contributed by Embecosm on behalf of Adapteva, Inc.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany.opt gcc-14.1.0/gcc/config/epiphany/epiphany.opt
*** gcc-13.2.0/gcc/config/epiphany/epiphany.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/epiphany.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the Adapteva EPIPHANY port of the compiler
  ;
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ; Contributed by Embecosm on behalf of Adapteva, Inc.
  ;
  ; This file is part of GCC.
--- 1,6 ----
  ; Options for the Adapteva EPIPHANY port of the compiler
  ;
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ; Contributed by Embecosm on behalf of Adapteva, Inc.
  ;
  ; This file is part of GCC.
*************** Enum(attr_fp_mode) String(int) Value(FP_
*** 105,111 ****
  
  may-round-for-trunc
  Target Mask(MAY_ROUND_FOR_TRUNC)
! A floatig point to integer truncation may be replaced with rounding to save mode switching.
  
  mvect-double
  Target Mask(VECT_DOUBLE)
--- 105,111 ----
  
  may-round-for-trunc
  Target Mask(MAY_ROUND_FOR_TRUNC)
! A floating point to integer truncation may be replaced with rounding to save mode switching.
  
  mvect-double
  Target Mask(VECT_DOUBLE)
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany.opt.urls gcc-14.1.0/gcc/config/epiphany/epiphany.opt.urls
*** gcc-13.2.0/gcc/config/epiphany/epiphany.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/epiphany/epiphany.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,52 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/epiphany/epiphany.opt and generated HTML
+ 
+ mhalf-reg-file
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mhalf-reg-file)
+ 
+ mprefer-short-insn-regs
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mprefer-short-insn-regs)
+ 
+ mbranch-cost=
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mbranch-cost)
+ 
+ mcmove
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mcmove)
+ 
+ mnops=
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mnops)
+ 
+ msoft-cmpsf
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-msoft-cmpsf)
+ 
+ msplit-lohi
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-msplit-lohi)
+ 
+ mstack-offset=
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mstack-offset)
+ 
+ mround-nearest
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mround-nearest)
+ 
+ mlong-calls
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mlong-calls)
+ 
+ ; skipping UrlSuffix for 'mshort-calls' due to finding no URLs
+ 
+ msmall16
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-msmall16)
+ 
+ mfp-mode=
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mfp-mode)
+ 
+ mvect-double
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-mvect-double)
+ 
+ max-vect-align=
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-max-vect-align)
+ 
+ msplit-vecmove-early
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-msplit-vecmove-early)
+ 
+ m1reg-
+ UrlSuffix(gcc/Adapteva-Epiphany-Options.html#index-m1reg-)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/epiphany_intrinsics.h gcc-14.1.0/gcc/config/epiphany/epiphany_intrinsics.h
*** gcc-13.2.0/gcc/config/epiphany/epiphany_intrinsics.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/epiphany_intrinsics.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Epiphany intrinsic functions
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Epiphany intrinsic functions
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/mode-switch-use.cc gcc-14.1.0/gcc/config/epiphany/mode-switch-use.cc
*** gcc-13.2.0/gcc/config/epiphany/mode-switch-use.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/mode-switch-use.cc	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  /* Insert USEs in instructions that require mode switching.
     This should probably be merged into mode-switching.cc .
!    Copyright (C) 2011-2023 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
--- 1,6 ----
  /* Insert USEs in instructions that require mode switching.
     This should probably be merged into mode-switching.cc .
!    Copyright (C) 2011-2024 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
*************** insert_uses (void)
*** 58,64 ****
  	{
  	  if (!INSN_P (insn))
  	    continue;
! 	  mode = epiphany_mode_needed (e, insn);
  	  if (mode == no_mode)
  	    continue;
  	  if (target_insert_mode_switch_use)
--- 58,64 ----
  	{
  	  if (!INSN_P (insn))
  	    continue;
! 	  mode = epiphany_mode_needed (e, insn, {});
  	  if (mode == no_mode)
  	    continue;
  	  if (target_insert_mode_switch_use)
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/predicates.md gcc-14.1.0/gcc/config/epiphany/predicates.md
*** gcc-13.2.0/gcc/config/epiphany/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for code generation on the EPIPHANY cpu.
! ;; Copyright (C) 1994-2023 Free Software Foundation, Inc.
  ;; Contributed by Embecosm on behalf of Adapteva, Inc.
  ;;
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Predicate definitions for code generation on the EPIPHANY cpu.
! ;; Copyright (C) 1994-2024 Free Software Foundation, Inc.
  ;; Contributed by Embecosm on behalf of Adapteva, Inc.
  ;;
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/resolve-sw-modes.cc gcc-14.1.0/gcc/config/epiphany/resolve-sw-modes.cc
*** gcc-13.2.0/gcc/config/epiphany/resolve-sw-modes.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/resolve-sw-modes.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Mode switching cleanup pass for the EPIPHANY cpu.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Mode switching cleanup pass for the EPIPHANY cpu.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
     Contributed by Embecosm on behalf of Adapteva, Inc.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/rtems.h gcc-14.1.0/gcc/config/epiphany/rtems.h
*** gcc-13.2.0/gcc/config/epiphany/rtems.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/rtems.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for RTEMS based EPIPHANY systems.
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for RTEMS based EPIPHANY systems.
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/epiphany/t-epiphany gcc-14.1.0/gcc/config/epiphany/t-epiphany
*** gcc-13.2.0/gcc/config/epiphany/t-epiphany	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/epiphany/t-epiphany	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 1997-2023 Free Software Foundation, Inc.
  # Contributed by Embecosm on behalf of Adapteva, Inc.
  #
  # This file is part of GCC.
--- 1,4 ----
! # Copyright (C) 1997-2024 Free Software Foundation, Inc.
  # Contributed by Embecosm on behalf of Adapteva, Inc.
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/flat.h gcc-14.1.0/gcc/config/flat.h
*** gcc-13.2.0/gcc/config/flat.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/flat.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Defines to be used for targets that support flat executables.
!    Copyright (C) 2006-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Defines to be used for targets that support flat executables.
!    Copyright (C) 2006-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/fr30/constraints.md gcc-14.1.0/gcc/config/fr30/constraints.md
*** gcc-13.2.0/gcc/config/fr30/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fr30/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for the FR30.
! ;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
--- 1,5 ----
  ;; Constraint definitions for the FR30.
! ;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
  
  ;; This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/fr30/fr30-protos.h gcc-14.1.0/gcc/config/fr30/fr30-protos.h
*** gcc-13.2.0/gcc/config/fr30/fr30-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fr30/fr30-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Prototypes for fr30.cc functions used in the md file & elsewhere.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Prototypes for fr30.cc functions used in the md file & elsewhere.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/fr30/fr30.cc gcc-14.1.0/gcc/config/fr30/fr30.cc
*** gcc-13.2.0/gcc/config/fr30/fr30.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fr30/fr30.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* FR30 specific functions.
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Cygnus Solutions.
  
     This file is part of GCC.
--- 1,5 ----
  /* FR30 specific functions.
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Cygnus Solutions.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/fr30/fr30.h gcc-14.1.0/gcc/config/fr30/fr30.h
*** gcc-13.2.0/gcc/config/fr30/fr30.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fr30/fr30.h	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /*{{{  Comment.  */ 
  
  /* Definitions of FR30 target. 
!    Copyright (C) 1998-2023 Free Software Foundation, Inc.
     Contributed by Cygnus Solutions.
  
  This file is part of GCC.
--- 1,7 ----
  /*{{{  Comment.  */ 
  
  /* Definitions of FR30 target. 
!    Copyright (C) 1998-2024 Free Software Foundation, Inc.
     Contributed by Cygnus Solutions.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/fr30/fr30.md gcc-14.1.0/gcc/config/fr30/fr30.md
*** gcc-13.2.0/gcc/config/fr30/fr30.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fr30/fr30.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; FR30 machine description.
! ;; Copyright (C) 1998-2023 Free Software Foundation, Inc.
  ;; Contributed by Cygnus Solutions.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; FR30 machine description.
! ;; Copyright (C) 1998-2024 Free Software Foundation, Inc.
  ;; Contributed by Cygnus Solutions.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/fr30/fr30.opt gcc-14.1.0/gcc/config/fr30/fr30.opt
*** gcc-13.2.0/gcc/config/fr30/fr30.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fr30/fr30.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the FR30 port of the compiler.
  
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the FR30 port of the compiler.
  
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/fr30/fr30.opt.urls gcc-14.1.0/gcc/config/fr30/fr30.opt.urls
*** gcc-13.2.0/gcc/config/fr30/fr30.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/fr30/fr30.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,8 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/fr30/fr30.opt and generated HTML
+ 
+ msmall-model
+ UrlSuffix(gcc/FR30-Options.html#index-msmall-model)
+ 
+ mno-lsim
+ UrlSuffix(gcc/FR30-Options.html#index-mno-lsim)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/fr30/predicates.md gcc-14.1.0/gcc/config/fr30/predicates.md
*** gcc-13.2.0/gcc/config/fr30/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fr30/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for FR30.
! ;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Predicate definitions for FR30.
! ;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/freebsd-d.cc gcc-14.1.0/gcc/config/freebsd-d.cc
*** gcc-13.2.0/gcc/config/freebsd-d.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/freebsd-d.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* FreeBSD support needed only by D front-end.
!    Copyright (C) 2020-2023 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
--- 1,5 ----
  /* FreeBSD support needed only by D front-end.
!    Copyright (C) 2020-2024 Free Software Foundation, Inc.
  
  GCC is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free
diff -Nrcpad gcc-13.2.0/gcc/config/freebsd-nthr.h gcc-14.1.0/gcc/config/freebsd-nthr.h
*** gcc-13.2.0/gcc/config/freebsd-nthr.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/freebsd-nthr.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* FreeBSD configuration setting for FreeBSD systems.
!    Copyright (C) 2001-2023 Free Software Foundation, Inc.
     Contributed by Loren J. Rittle <ljrittle@acm.org>
  
  This file is part of GCC.
--- 1,5 ----
  /* FreeBSD configuration setting for FreeBSD systems.
!    Copyright (C) 2001-2024 Free Software Foundation, Inc.
     Contributed by Loren J. Rittle <ljrittle@acm.org>
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/freebsd-rust.cc gcc-14.1.0/gcc/config/freebsd-rust.cc
*** gcc-13.2.0/gcc/config/freebsd-rust.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/freebsd-rust.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,40 ----
+ /* FreeBSD support needed only by Rust front-end.
+    Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "tm_rust.h"
+ #include "rust/rust-target.h"
+ #include "rust/rust-target-def.h"
+ 
+ /* Implement TARGET_RUST_OS_INFO for FreeBSD targets.  */
+ 
+ static void
+ freebsd_rust_target_os_info (void)
+ {
+   rust_add_target_info ("target_family", "unix");
+   rust_add_target_info ("target_os", "freebsd");
+   rust_add_target_info ("target_vendor", "unknown");
+   rust_add_target_info ("target_env", "");
+ }
+ 
+ #undef TARGET_RUST_OS_INFO
+ #define TARGET_RUST_OS_INFO freebsd_rust_target_os_info
+ 
+ struct gcc_targetrustm targetrustm = TARGETRUSTM_INITIALIZER;
diff -Nrcpad gcc-13.2.0/gcc/config/freebsd-spec.h gcc-14.1.0/gcc/config/freebsd-spec.h
*** gcc-13.2.0/gcc/config/freebsd-spec.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/freebsd-spec.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Base configuration file for all FreeBSD targets.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Base configuration file for all FreeBSD targets.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/freebsd-stdint.h gcc-14.1.0/gcc/config/freebsd-stdint.h
*** gcc-13.2.0/gcc/config/freebsd-stdint.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/freebsd-stdint.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions for <stdint.h> types for FreeBSD systems.
!    Copyright (C) 2009-2023 Free Software Foundation, Inc.
     Contributed by Gerald Pfeifer <gerald@pfeifer.com>.
  
  This file is part of GCC.
--- 1,5 ----
  /* Definitions for <stdint.h> types for FreeBSD systems.
!    Copyright (C) 2009-2024 Free Software Foundation, Inc.
     Contributed by Gerald Pfeifer <gerald@pfeifer.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/freebsd.h gcc-14.1.0/gcc/config/freebsd.h
*** gcc-13.2.0/gcc/config/freebsd.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/freebsd.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Base configuration file for all FreeBSD targets.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Base configuration file for all FreeBSD targets.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/freebsd.opt gcc-14.1.0/gcc/config/freebsd.opt
*** gcc-13.2.0/gcc/config/freebsd.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/freebsd.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; FreeBSD options.
  
! ; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; FreeBSD options.
  
! ; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/freebsd.opt.urls gcc-14.1.0/gcc/config/freebsd.opt.urls
*** gcc-13.2.0/gcc/config/freebsd.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/freebsd.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,9 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/freebsd.opt and generated HTML
+ 
+ ; skipping UrlSuffix for 'pthread' due to multiple URLs:
+ ;   duplicate: 'gcc/Link-Options.html#index-pthread-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-pthread'
+ 
+ rdynamic
+ UrlSuffix(gcc/Link-Options.html#index-rdynamic)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/frv/constraints.md gcc-14.1.0/gcc/config/frv/constraints.md
*** gcc-13.2.0/gcc/config/frv/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for FRV.
! ;; Copyright (C) 2001-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Constraint definitions for FRV.
! ;; Copyright (C) 2001-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv-asm.h gcc-14.1.0/gcc/config/frv/frv-asm.h
*** gcc-13.2.0/gcc/config/frv/frv-asm.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/frv-asm.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Assembler Support.
!    Copyright (C) 2000-2023 Free Software Foundation, Inc.
     Contributed by Red Hat, Inc.
  
     This file is part of GCC.
--- 1,5 ----
  /* Assembler Support.
!    Copyright (C) 2000-2024 Free Software Foundation, Inc.
     Contributed by Red Hat, Inc.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv-modes.def gcc-14.1.0/gcc/config/frv/frv-modes.def
*** gcc-13.2.0/gcc/config/frv/frv-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/frv-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Definitions of target machine for GNU compiler for FRV.
!    Copyright (C) 2002-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions of target machine for GNU compiler for FRV.
!    Copyright (C) 2002-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv-opts.h gcc-14.1.0/gcc/config/frv/frv-opts.h
*** gcc-13.2.0/gcc/config/frv/frv-opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/frv-opts.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Frv option-handling defitions.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Frv option-handling defitions.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv-protos.h gcc-14.1.0/gcc/config/frv/frv-protos.h
*** gcc-13.2.0/gcc/config/frv/frv-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/frv-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Frv prototypes.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
     Contributed by Red Hat, Inc.
  
  This file is part of GCC.
--- 1,5 ----
  /* Frv prototypes.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
     Contributed by Red Hat, Inc.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv.cc gcc-14.1.0/gcc/config/frv/frv.cc
*** gcc-13.2.0/gcc/config/frv/frv.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/frv.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 1997-2023 Free Software Foundation, Inc.
     Contributed by Red Hat, Inc.
  
  This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 1997-2024 Free Software Foundation, Inc.
     Contributed by Red Hat, Inc.
  
  This file is part of GCC.
*************** static frv_stack_t *frv_stack_cache = (f
*** 261,267 ****
  /* Forward references */
  
  static void frv_option_override			(void);
! static bool frv_legitimate_address_p		(machine_mode, rtx, bool);
  static int frv_default_flags_for_cpu		(void);
  static FRV_INLINE bool frv_small_data_reloc_p	(rtx, int);
  static void frv_print_operand			(FILE *, rtx, int);
--- 261,268 ----
  /* Forward references */
  
  static void frv_option_override			(void);
! static bool frv_legitimate_address_p (machine_mode, rtx, bool,
! 				      code_helper = ERROR_MARK);
  static int frv_default_flags_for_cpu		(void);
  static FRV_INLINE bool frv_small_data_reloc_p	(rtx, int);
  static void frv_print_operand			(FILE *, rtx, int);
*************** frv_legitimate_address_p_1 (machine_mode
*** 3396,3402 ****
  }
  
  bool
! frv_legitimate_address_p (machine_mode mode, rtx x, bool strict_p)
  {
    return frv_legitimate_address_p_1 (mode, x, strict_p, FALSE, FALSE);
  }
--- 3397,3403 ----
  }
  
  bool
! frv_legitimate_address_p (machine_mode mode, rtx x, bool strict_p, code_helper)
  {
    return frv_legitimate_address_p_1 (mode, x, strict_p, FALSE, FALSE);
  }
*************** frv_emit_movsi (rtx dest, rtx src)
*** 4061,4067 ****
  			   || !DECL_COMMON (SYMBOL_REF_DECL (sym))))
  		{
  		  tree decl = SYMBOL_REF_DECL (sym);
! 		  tree init = TREE_CODE (decl) == VAR_DECL
  		    ? DECL_INITIAL (decl)
  		    : TREE_CODE (decl) == CONSTRUCTOR
  		    ? decl : 0;
--- 4062,4068 ----
  			   || !DECL_COMMON (SYMBOL_REF_DECL (sym))))
  		{
  		  tree decl = SYMBOL_REF_DECL (sym);
! 		  tree init = VAR_P (decl)
  		    ? DECL_INITIAL (decl)
  		    : TREE_CODE (decl) == CONSTRUCTOR
  		    ? decl : 0;
*************** frv_emit_movsi (rtx dest, rtx src)
*** 4071,4077 ****
  		  if (init && init != error_mark_node)
  		    reloc = compute_reloc_for_constant (init);
  
! 		  named_section = TREE_CODE (decl) == VAR_DECL
  		    && lookup_attribute ("section", DECL_ATTRIBUTES (decl));
  		  readonly = decl_readonly_section (decl, reloc);
  
--- 4072,4078 ----
  		  if (init && init != error_mark_node)
  		    reloc = compute_reloc_for_constant (init);
  
! 		  named_section = VAR_P (decl)
  		    && lookup_attribute ("section", DECL_ATTRIBUTES (decl));
  		  readonly = decl_readonly_section (decl, reloc);
  
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv.h gcc-14.1.0/gcc/config/frv/frv.h
*** gcc-13.2.0/gcc/config/frv/frv.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/frv.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target macros for the FRV port of GCC.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
     Contributed by Red Hat Inc.
  
     This file is part of GCC.
--- 1,5 ----
  /* Target macros for the FRV port of GCC.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
     Contributed by Red Hat Inc.
  
     This file is part of GCC.
*************** typedef struct frv_stack {
*** 1241,1246 ****
--- 1241,1247 ----
  #if ! __FRV_FDPIC__
  #define TRANSFER_FROM_TRAMPOLINE					\
  extern int Twrite (int, const void *, unsigned);			\
+ extern void exit (int);							\
  									\
  void									\
  __trampoline_setup (short * addr, int size, int fnaddr, int sc)		\
*************** __asm__("\n"								\
*** 1284,1289 ****
--- 1285,1291 ----
  #else
  #define TRANSFER_FROM_TRAMPOLINE					\
  extern int Twrite (int, const void *, unsigned);			\
+ extern void exit (int);							\
  									\
  void									\
  __trampoline_setup (addr, size, fnaddr, sc)				\
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv.md gcc-14.1.0/gcc/config/frv/frv.md
*** gcc-13.2.0/gcc/config/frv/frv.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/frv.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Frv Machine Description
! ;; Copyright (C) 1999-2023 Free Software Foundation, Inc.
  ;; Contributed by Red Hat, Inc.
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Frv Machine Description
! ;; Copyright (C) 1999-2024 Free Software Foundation, Inc.
  ;; Contributed by Red Hat, Inc.
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv.opt gcc-14.1.0/gcc/config/frv/frv.opt
*** gcc-13.2.0/gcc/config/frv/frv.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/frv.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the FR-V port of the compiler.
  
! ; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the FR-V port of the compiler.
  
! ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/frv/frv.opt.urls gcc-14.1.0/gcc/config/frv/frv.opt.urls
*** gcc-13.2.0/gcc/config/frv/frv.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/frv/frv.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,111 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/frv/frv.opt and generated HTML
+ 
+ macc-4
+ UrlSuffix(gcc/FRV-Options.html#index-macc-4)
+ 
+ macc-8
+ UrlSuffix(gcc/FRV-Options.html#index-macc-8)
+ 
+ malign-labels
+ UrlSuffix(gcc/FRV-Options.html#index-malign-labels)
+ 
+ malloc-cc
+ UrlSuffix(gcc/FRV-Options.html#index-malloc-cc)
+ 
+ ; skipping UrlSuffix for 'mbranch-cost=' due to finding no URLs
+ 
+ mcond-exec
+ UrlSuffix(gcc/FRV-Options.html#index-mcond-exec)
+ 
+ mcond-move
+ UrlSuffix(gcc/FRV-Options.html#index-mcond-move)
+ 
+ mcpu=
+ UrlSuffix(gcc/FRV-Options.html#index-mcpu-6)
+ 
+ ; skipping UrlSuffix for 'mdebug' due to finding no URLs
+ 
+ mdouble
+ UrlSuffix(gcc/FRV-Options.html#index-mdouble-1)
+ 
+ mdword
+ UrlSuffix(gcc/FRV-Options.html#index-mdword)
+ 
+ mfdpic
+ UrlSuffix(gcc/FRV-Options.html#index-mfdpic-1)
+ 
+ mfixed-cc
+ UrlSuffix(gcc/FRV-Options.html#index-mfixed-cc)
+ 
+ mfpr-32
+ UrlSuffix(gcc/FRV-Options.html#index-mfpr-32)
+ 
+ mfpr-64
+ UrlSuffix(gcc/FRV-Options.html#index-mfpr-64)
+ 
+ mgpr-32
+ UrlSuffix(gcc/FRV-Options.html#index-mgpr-32)
+ 
+ mgpr-64
+ UrlSuffix(gcc/FRV-Options.html#index-mgpr-64)
+ 
+ mgprel-ro
+ UrlSuffix(gcc/FRV-Options.html#index-mgprel-ro)
+ 
+ mhard-float
+ UrlSuffix(gcc/FRV-Options.html#index-mhard-float-1)
+ 
+ minline-plt
+ UrlSuffix(gcc/FRV-Options.html#index-minline-plt-1)
+ 
+ mlibrary-pic
+ UrlSuffix(gcc/FRV-Options.html#index-mlibrary-pic)
+ 
+ mlinked-fp
+ UrlSuffix(gcc/FRV-Options.html#index-mlinked-fp)
+ 
+ mlong-calls
+ UrlSuffix(gcc/FRV-Options.html#index-mlong-calls-4)
+ 
+ mmedia
+ UrlSuffix(gcc/FRV-Options.html#index-mmedia)
+ 
+ mmuladd
+ UrlSuffix(gcc/FRV-Options.html#index-mmuladd)
+ 
+ mmulti-cond-exec
+ UrlSuffix(gcc/FRV-Options.html#index-mmulti-cond-exec)
+ 
+ mnested-cond-exec
+ UrlSuffix(gcc/FRV-Options.html#index-mnested-cond-exec)
+ 
+ mno-eflags
+ UrlSuffix(gcc/FRV-Options.html#index-mno-eflags)
+ 
+ moptimize-membar
+ UrlSuffix(gcc/FRV-Options.html#index-moptimize-membar)
+ 
+ mpack
+ UrlSuffix(gcc/FRV-Options.html#index-mpack)
+ 
+ mscc
+ UrlSuffix(gcc/FRV-Options.html#index-mscc)
+ 
+ msoft-float
+ UrlSuffix(gcc/FRV-Options.html#index-msoft-float-3)
+ 
+ mTLS
+ UrlSuffix(gcc/FRV-Options.html#index-mTLS)
+ 
+ mtls
+ UrlSuffix(gcc/FRV-Options.html#index-mtls)
+ 
+ mtomcat-stats
+ UrlSuffix(gcc/FRV-Options.html#index-mtomcat-stats)
+ 
+ multilib-library-pic
+ UrlSuffix(gcc/FRV-Options.html#index-multilib-library-pic)
+ 
+ mvliw-branch
+ UrlSuffix(gcc/FRV-Options.html#index-mvliw-branch)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/frv/linux.h gcc-14.1.0/gcc/config/frv/linux.h
*** gcc-13.2.0/gcc/config/frv/linux.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/linux.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target macros for the FRV Linux port of GCC.
!    Copyright (C) 1999-2023 Free Software Foundation, Inc.
     Contributed by Red Hat Inc.
  
     This file is part of GCC.
--- 1,5 ----
  /* Target macros for the FRV Linux port of GCC.
!    Copyright (C) 1999-2024 Free Software Foundation, Inc.
     Contributed by Red Hat Inc.
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/frv/predicates.md gcc-14.1.0/gcc/config/frv/predicates.md
*** gcc-13.2.0/gcc/config/frv/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for Frv.
! ;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Predicate definitions for Frv.
! ;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
diff -Nrcpad gcc-13.2.0/gcc/config/frv/t-frv gcc-14.1.0/gcc/config/frv/t-frv
*** gcc-13.2.0/gcc/config/frv/t-frv	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/t-frv	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2002-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2002-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/frv/t-linux gcc-14.1.0/gcc/config/frv/t-linux
*** gcc-13.2.0/gcc/config/frv/t-linux	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/frv/t-linux	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! # Copyright (C) 2004-2023 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2004-2024 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/constraints.md gcc-14.1.0/gcc/config/ft32/constraints.md
*** gcc-13.2.0/gcc/config/ft32/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/ft32/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for FT32
! ;; Copyright (C) 2015-2023 Free Software Foundation, Inc.
  ;; Contributed by FTDI <support@ftdi.com>
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Constraint definitions for FT32
! ;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
  ;; Contributed by FTDI <support@ftdi.com>
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/ft32-protos.h gcc-14.1.0/gcc/config/ft32/ft32-protos.h
*** gcc-13.2.0/gcc/config/ft32/ft32-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/ft32/ft32-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Prototypes for ft32.cc functions used in the md file & elsewhere.
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Prototypes for ft32.cc functions used in the md file & elsewhere.
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/ft32.cc gcc-14.1.0/gcc/config/ft32/ft32.cc
*** gcc-13.2.0/gcc/config/ft32/ft32.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/ft32/ft32.cc	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target Code for ft32
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
     Contributed by FTDI <support@ftdi.com>
  
     This file is part of GCC.
--- 1,5 ----
  /* Target Code for ft32
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
     Contributed by FTDI <support@ftdi.com>
  
     This file is part of GCC.
*************** ft32_setup_incoming_varargs (cumulative_
*** 635,643 ****
  {
    CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v);
    int named_size = 0;
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl)))
!     named_size =
!       GET_MODE_SIZE (SImode) * (*cum - FT32_R0) + GET_MODE_SIZE (arg.mode);
  
    if (named_size < 24)
      *pretend_size = 24 - named_size;
--- 635,644 ----
  {
    CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v);
    int named_size = 0;
!   if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl))
!       || arg.type != NULL_TREE)
!     named_size
!       = GET_MODE_SIZE (SImode) * (*cum - FT32_R0) + GET_MODE_SIZE (arg.mode);
  
    if (named_size < 24)
      *pretend_size = 24 - named_size;
*************** reg_ok_for_base_p (rtx r, bool strict)
*** 856,862 ****
  
  static bool
  ft32_addr_space_legitimate_address_p (machine_mode mode, rtx x, bool strict,
!                                       addr_space_t as ATTRIBUTE_UNUSED)
  {
    int max_offset = TARGET_FT32B ? 16384 : 128;
  
--- 857,864 ----
  
  static bool
  ft32_addr_space_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 				      addr_space_t as ATTRIBUTE_UNUSED,
! 				      code_helper = ERROR_MARK)
  {
    int max_offset = TARGET_FT32B ? 16384 : 128;
  
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/ft32.h gcc-14.1.0/gcc/config/ft32/ft32.h
*** gcc-13.2.0/gcc/config/ft32/ft32.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/ft32/ft32.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Target Definitions for ft32.
!    Copyright (C) 2015-2023 Free Software Foundation, Inc.
     Contributed by FTDI <support@ftdi.com>
  
     This file is part of GCC.
--- 1,5 ----
  /* Target Definitions for ft32.
!    Copyright (C) 2015-2024 Free Software Foundation, Inc.
     Contributed by FTDI <support@ftdi.com>
  
     This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/ft32.md gcc-14.1.0/gcc/config/ft32/ft32.md
*** gcc-13.2.0/gcc/config/ft32/ft32.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/ft32/ft32.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Machine description for FT32
! ;; Copyright (C) 2015-2023 Free Software Foundation, Inc.
  ;; Contributed by FTDI <support@ftdi.com>
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Machine description for FT32
! ;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
  ;; Contributed by FTDI <support@ftdi.com>
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/ft32.opt gcc-14.1.0/gcc/config/ft32/ft32.opt
*** gcc-13.2.0/gcc/config/ft32/ft32.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/ft32/ft32.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; Options for the FT32 port of the compiler.
  
! ; Copyright (C) 2015-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; Options for the FT32 port of the compiler.
  
! ; Copyright (C) 2015-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/ft32.opt.urls gcc-14.1.0/gcc/config/ft32/ft32.opt.urls
*** gcc-13.2.0/gcc/config/ft32/ft32.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/ft32/ft32.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,20 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/ft32/ft32.opt and generated HTML
+ 
+ msim
+ UrlSuffix(gcc/FT32-Options.html#index-msim-3)
+ 
+ mlra
+ UrlSuffix(gcc/FT32-Options.html#index-mlra-1)
+ 
+ mnodiv
+ UrlSuffix(gcc/FT32-Options.html#index-mnodiv)
+ 
+ mft32b
+ UrlSuffix(gcc/FT32-Options.html#index-mft32b)
+ 
+ mcompress
+ UrlSuffix(gcc/FT32-Options.html#index-mcompress)
+ 
+ mnopm
+ UrlSuffix(gcc/FT32-Options.html#index-mnopm)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/predicates.md gcc-14.1.0/gcc/config/ft32/predicates.md
*** gcc-13.2.0/gcc/config/ft32/predicates.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/ft32/predicates.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Predicate definitions for FT32
! ;; Copyright (C) 2015-2023 Free Software Foundation, Inc.
  ;; Contributed by FTDI <support@ftdi.com>
  
  ;; This file is part of GCC.
--- 1,5 ----
  ;; Predicate definitions for FT32
! ;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
  ;; Contributed by FTDI <support@ftdi.com>
  
  ;; This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/ft32/t-ft32 gcc-14.1.0/gcc/config/ft32/t-ft32
*** gcc-13.2.0/gcc/config/ft32/t-ft32	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/ft32/t-ft32	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  # Target Makefile Fragment for ft32
! # Copyright (C) 2015-2023 Free Software Foundation, Inc.
  # Contributed by FTDI <support@ftdi.com>
  #
  # This file is part of GCC.
--- 1,5 ----
  # Target Makefile Fragment for ft32
! # Copyright (C) 2015-2024 Free Software Foundation, Inc.
  # Contributed by FTDI <support@ftdi.com>
  #
  # This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/fuchsia-rust.cc gcc-14.1.0/gcc/config/fuchsia-rust.cc
*** gcc-13.2.0/gcc/config/fuchsia-rust.cc	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/fuchsia-rust.cc	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,40 ----
+ /* Fuchsia support needed only by Rust front-end.
+    Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 3, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "tm_rust.h"
+ #include "rust/rust-target.h"
+ #include "rust/rust-target-def.h"
+ 
+ /* Implement TARGET_RUST_OS_INFO for Fuchsia targets.  */
+ 
+ static void
+ fushsia_rust_target_os_info (void)
+ {
+   rust_add_target_info ("target_family", "unix");
+   rust_add_target_info ("target_os", "fushsia");
+   rust_add_target_info ("target_vendor", "unknown");
+   rust_add_target_info ("target_env", "");
+ }
+ 
+ #undef TARGET_RUST_OS_INFO
+ #define TARGET_RUST_OS_INFO fushsia_rust_target_os_info
+ 
+ struct gcc_targetrustm targetrustm = TARGETRUSTM_INITIALIZER;
diff -Nrcpad gcc-13.2.0/gcc/config/fuchsia.h gcc-14.1.0/gcc/config/fuchsia.h
*** gcc-13.2.0/gcc/config/fuchsia.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fuchsia.h	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  /* Base configuration file for all Fuchsia targets.
!    Copyright (C) 2017-2023 Free Software Foundation, Inc.
     Contributed by Google.
  
  This file is part of GCC.
--- 1,5 ----
  /* Base configuration file for all Fuchsia targets.
!    Copyright (C) 2017-2024 Free Software Foundation, Inc.
     Contributed by Google.
  
  This file is part of GCC.
diff -Nrcpad gcc-13.2.0/gcc/config/fused-madd.opt gcc-14.1.0/gcc/config/fused-madd.opt
*** gcc-13.2.0/gcc/config/fused-madd.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/fused-madd.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; -mfused-madd option (some targets only).
  ;
! ; Copyright (C) 2010-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; -mfused-madd option (some targets only).
  ;
! ; Copyright (C) 2010-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/fused-madd.opt.urls gcc-14.1.0/gcc/config/fused-madd.opt.urls
*** gcc-13.2.0/gcc/config/fused-madd.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/fused-madd.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,4 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/fused-madd.opt and generated HTML
+ 
+ ; skipping UrlSuffix for 'mfused-madd' due to finding no URLs
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/g.opt gcc-14.1.0/gcc/config/g.opt
*** gcc-13.2.0/gcc/config/g.opt	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/g.opt	Tue May  7 06:51:37 2024
***************
*** 1,6 ****
  ; -G option (small data, some targets only).
  
! ; Copyright (C) 2003-2023 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; -G option (small data, some targets only).
  
! ; Copyright (C) 2003-2024 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
diff -Nrcpad gcc-13.2.0/gcc/config/g.opt.urls gcc-14.1.0/gcc/config/g.opt.urls
*** gcc-13.2.0/gcc/config/g.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-14.1.0/gcc/config/g.opt.urls	Tue May  7 06:51:37 2024
***************
*** 0 ****
--- 1,5 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/config/g.opt and generated HTML
+ 
+ G
+ UrlSuffix(gcc/System-V-Options.html#index-G-5)
+ 
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/constraints.md gcc-14.1.0/gcc/config/gcn/constraints.md
*** gcc-13.2.0/gcc/config/gcn/constraints.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/constraints.md	Tue May  7 06:51:37 2024
***************
*** 1,5 ****
  ;; Constraint definitions for GCN.
! ;; Copyright (C) 2016-2023 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
--- 1,5 ----
  ;; Constraint definitions for GCN.
! ;; Copyright (C) 2016-2024 Free Software Foundation, Inc.
  ;;
  ;; This file is part of GCC.
  ;;
***************
*** 77,82 ****
--- 77,85 ----
  (define_register_constraint "v" "VGPR_REGS"
    "VGPR registers")
  
+ (define_register_constraint "a" "TARGET_CDNA1_PLUS ? AVGPR_REGS : NO_REGS"
+   "Accumulator VGPR registers")
+ 
  (define_register_constraint "Sg" "SGPR_REGS"
    "SGPR registers")
  
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/driver-gcn.cc gcc-14.1.0/gcc/config/gcn/driver-gcn.cc
*** gcc-13.2.0/gcc/config/gcn/driver-gcn.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/driver-gcn.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,32 ****
- /* Subroutines for the gcc driver.
-    Copyright (C) 2018-2023 Free Software Foundation, Inc.
- 
- This file is part of GCC.
- 
- GCC is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
- 
- GCC is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
- 
- You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3.  If not see
- <http://www.gnu.org/licenses/>.  */
- 
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "tm.h"
- 
- const char *
- last_arg_spec_function (int argc, const char **argv)
- {
-   if (argc == 0)
-     return NULL;
- 
-   return argv[argc-1];
- }
--- 0 ----
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn-builtins.def gcc-14.1.0/gcc/config/gcn/gcn-builtins.def
*** gcc-13.2.0/gcc/config/gcn/gcn-builtins.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn-builtins.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
--- 1,4 ----
! /* Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
*************** DEF_BUILTIN (FIRST_CALL_THIS_THREAD_P, -
*** 164,169 ****
--- 164,171 ----
  	     _A1 (GCN_BTI_BOOL), gcn_expand_builtin_1)
  DEF_BUILTIN (KERNARG_PTR, -1, "kernarg_ptr", B_INSN, _A1 (GCN_BTI_VOIDPTR),
  	     gcn_expand_builtin_1)
+ DEF_BUILTIN (DISPATCH_PTR, -1, "dispatch_ptr", B_INSN, _A1 (GCN_BTI_VOIDPTR),
+ 	     gcn_expand_builtin_1)
  DEF_BUILTIN (GET_STACK_LIMIT, -1, "get_stack_limit", B_INSN,
  	     _A1 (GCN_BTI_VOIDPTR), gcn_expand_builtin_1)
  
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn-hsa.h gcc-14.1.0/gcc/config/gcn/gcn-hsa.h
*** gcc-13.2.0/gcc/config/gcn/gcn-hsa.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn-hsa.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
--- 1,4 ----
! /* Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
*************** extern unsigned int gcn_local_sym_hash (
*** 75,93 ****
     supported for gcn.  */
  #define GOMP_SELF_SPECS ""
  
! #define NO_XNACK "!march=*:;march=fiji:;"
! #define NO_SRAM_ECC "!march=*:;march=fiji:;march=gfx900:;march=gfx906:;"
  
  /* In HSACOv4 no attribute setting means the binary supports "any" hardware
     configuration.  The name of the attribute also changed.  */
  #define SRAMOPT "msram-ecc=on:-mattr=+sramecc;msram-ecc=off:-mattr=-sramecc"
  
  /* Use LLVM assembler and linker options.  */
  #define ASM_SPEC  "-triple=amdgcn--amdhsa "  \
! 		  "%:last_arg(%{march=*:-mcpu=%*}) " \
! 		  "%{!march=*|march=fiji:--amdhsa-code-object-version=3} " \
! 		  "%{" NO_XNACK "mxnack:-mattr=+xnack;:-mattr=-xnack} " \
  		  "%{" NO_SRAM_ECC SRAMOPT "} " \
  		  "-filetype=obj"
  #define LINK_SPEC "--pie --export-dynamic"
  #define LIB_SPEC  "-lc"
--- 75,113 ----
     supported for gcn.  */
  #define GOMP_SELF_SPECS ""
  
! /* Explicitly set the ABI version; in principle, we could use just the
!    default; however, when debugging symbols are turned on, mkoffload.cc
!    writes a new AMD GPU object file and the ABI version needs to be the
!    same. - LLVM <= 17 defaults to 4 while LLVM >= 18 defaults to 5.
!    GCC supports LLVM >= 13.0.1 and only LLVM >= 14 supports version 5.
!    Note that Fiji is only suppored with LLVM <= 17 as version 3 is no longer
!    supported in LLVM >= 18.  */
! #define ABI_VERSION_SPEC "march=fiji:--amdhsa-code-object-version=3;" \
! 			 "!march=*|march=*:--amdhsa-code-object-version=4"
! 
! /* Note that the XNACK and SRAM-ECC settings must match those in mkoffload.cc
!    as the latter creates new ELF object file when debugging is enabled and
!    the ELF flags (e_flags) of that generated file must be identical to those
!    generated by the compiler.  */
! 
! #define NO_XNACK "march=fiji:;march=gfx1030:;march=gfx1036:;march=gfx1100:;march=gfx1103:;" \
!     /* These match the defaults set in gcn.cc.  */ \
!     "!mxnack*|mxnack=default:%{march=gfx900|march=gfx906|march=gfx908:-mattr=-xnack};"
! #define NO_SRAM_ECC "!march=*:;march=fiji:;march=gfx900:;march=gfx906:;march=gfx90c:;"
  
  /* In HSACOv4 no attribute setting means the binary supports "any" hardware
     configuration.  The name of the attribute also changed.  */
  #define SRAMOPT "msram-ecc=on:-mattr=+sramecc;msram-ecc=off:-mattr=-sramecc"
+ #define XNACKOPT "mxnack=on:-mattr=+xnack;mxnack=off:-mattr=-xnack"
  
  /* Use LLVM assembler and linker options.  */
  #define ASM_SPEC  "-triple=amdgcn--amdhsa "  \
! 		  "%{march=*:-mcpu=%*} " \
! 		  "%{" ABI_VERSION_SPEC "} " \
! 		  "%{" NO_XNACK XNACKOPT "} " \
  		  "%{" NO_SRAM_ECC SRAMOPT "} " \
+ 		  "%{march=gfx1030|march=gfx1036|march=gfx1100|march=gfx1103:-mattr=+wavefrontsize64} " \
+ 		  "%{march=gfx1030|march=gfx1036|march=gfx1100|march=gfx1103:-mattr=+cumode} " \
  		  "-filetype=obj"
  #define LINK_SPEC "--pie --export-dynamic"
  #define LIB_SPEC  "-lc"
*************** extern unsigned int gcn_local_sym_hash (
*** 97,108 ****
  #define ENDFILE_SPEC   ""
  #define STANDARD_STARTFILE_PREFIX_2 ""
  
- /* The LLVM assembler rejects multiple -mcpu options, so we must drop
-    all but the last.  */
- extern const char *last_arg_spec_function (int argc, const char **argv);
- #define EXTRA_SPEC_FUNCTIONS	\
-     { "last_arg", last_arg_spec_function },
- 
  #undef LOCAL_INCLUDE_DIR
  
  /* FIXME: Review debug info settings.
--- 117,122 ----
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn-modes.def gcc-14.1.0/gcc/config/gcn/gcn-modes.def
*** gcc-13.2.0/gcc/config/gcn/gcn-modes.def	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn-modes.def	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
--- 1,4 ----
! /* Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn-opts.h gcc-14.1.0/gcc/config/gcn/gcn-opts.h
*** gcc-13.2.0/gcc/config/gcn/gcn-opts.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn-opts.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
--- 1,4 ----
! /* Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
*************** enum processor_type
*** 24,30 ****
    PROCESSOR_VEGA10,  // gfx900
    PROCESSOR_VEGA20,  // gfx906
    PROCESSOR_GFX908,
!   PROCESSOR_GFX90a
  };
  
  #define TARGET_FIJI (gcn_arch == PROCESSOR_FIJI)
--- 24,35 ----
    PROCESSOR_VEGA10,  // gfx900
    PROCESSOR_VEGA20,  // gfx906
    PROCESSOR_GFX908,
!   PROCESSOR_GFX90a,
!   PROCESSOR_GFX90c,
!   PROCESSOR_GFX1030,
!   PROCESSOR_GFX1036,
!   PROCESSOR_GFX1100,
!   PROCESSOR_GFX1103
  };
  
  #define TARGET_FIJI (gcn_arch == PROCESSOR_FIJI)
*************** enum processor_type
*** 32,43 ****
--- 37,55 ----
  #define TARGET_VEGA20 (gcn_arch == PROCESSOR_VEGA20)
  #define TARGET_GFX908 (gcn_arch == PROCESSOR_GFX908)
  #define TARGET_GFX90a (gcn_arch == PROCESSOR_GFX90a)
+ #define TARGET_GFX90c (gcn_arch == PROCESSOR_GFX90c)
+ #define TARGET_GFX1030 (gcn_arch == PROCESSOR_GFX1030)
+ #define TARGET_GFX1036 (gcn_arch == PROCESSOR_GFX1036)
+ #define TARGET_GFX1100 (gcn_arch == PROCESSOR_GFX1100)
+ #define TARGET_GFX1103 (gcn_arch == PROCESSOR_GFX1103)
  
  /* Set in gcn_option_override.  */
  extern enum gcn_isa {
    ISA_UNKNOWN,
    ISA_GCN3,
    ISA_GCN5,
+   ISA_RDNA2,
+   ISA_RDNA3,
    ISA_CDNA1,
    ISA_CDNA2
  } gcn_isa;
*************** extern enum gcn_isa {
*** 50,64 ****
  #define TARGET_CDNA1_PLUS (gcn_isa >= ISA_CDNA1)
  #define TARGET_CDNA2 (gcn_isa == ISA_CDNA2)
  #define TARGET_CDNA2_PLUS (gcn_isa >= ISA_CDNA2)
  
  #define TARGET_M0_LDS_LIMIT (TARGET_GCN3)
! #define TARGET_PACKED_WORK_ITEMS (TARGET_CDNA2_PLUS)
  
! enum sram_ecc_type
  {
!   SRAM_ECC_OFF,
!   SRAM_ECC_ON,
!   SRAM_ECC_ANY
  };
  
  #endif
--- 62,83 ----
  #define TARGET_CDNA1_PLUS (gcn_isa >= ISA_CDNA1)
  #define TARGET_CDNA2 (gcn_isa == ISA_CDNA2)
  #define TARGET_CDNA2_PLUS (gcn_isa >= ISA_CDNA2)
+ #define TARGET_RDNA2 (gcn_isa == ISA_RDNA2)
+ #define TARGET_RDNA2_PLUS (gcn_isa >= ISA_RDNA2 && gcn_isa < ISA_CDNA1)
+ #define TARGET_RDNA3 (gcn_isa == ISA_RDNA3)
+ 
  
  #define TARGET_M0_LDS_LIMIT (TARGET_GCN3)
! #define TARGET_PACKED_WORK_ITEMS (TARGET_CDNA2_PLUS || TARGET_RDNA3)
  
! #define TARGET_XNACK (flag_xnack != HSACO_ATTR_OFF)
! 
! enum hsaco_attr_type
  {
!   HSACO_ATTR_OFF,
!   HSACO_ATTR_ON,
!   HSACO_ATTR_ANY,
!   HSACO_ATTR_DEFAULT
  };
  
  #endif
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn-protos.h gcc-14.1.0/gcc/config/gcn/gcn-protos.h
*** gcc-13.2.0/gcc/config/gcn/gcn-protos.h	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn-protos.h	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
--- 1,4 ----
! /* Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
*************** vgpr_2reg_mode_p (machine_mode mode)
*** 136,141 ****
--- 136,152 ----
    return (mode == DImode || mode == DFmode);
  }
  
+ /* Return true if MODE is valid for four VGPR registers.  */
+ 
+ inline bool
+ vgpr_4reg_mode_p (machine_mode mode)
+ {
+   if (VECTOR_MODE_P (mode))
+     mode = GET_MODE_INNER (mode);
+ 
+   return (mode == TImode);
+ }
+ 
  /* Return true if MODE can be handled directly by VGPR operations.  */
  
  inline bool
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn-run.cc gcc-14.1.0/gcc/config/gcn/gcn-run.cc
*** gcc-13.2.0/gcc/config/gcn/gcn-run.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn-run.cc	Tue May  7 06:51:37 2024
***************
*** 1,7 ****
  /* Run a stand-alone AMD GCN kernel.
  
     Copyright 2017 Mentor Graphics Corporation
!    Copyright (C) 2018-2023 Free Software Foundation, Inc.
  
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
--- 1,7 ----
  /* Run a stand-alone AMD GCN kernel.
  
     Copyright 2017 Mentor Graphics Corporation
!    Copyright (C) 2018-2024 Free Software Foundation, Inc.
  
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
*************** main (int argc, char *argv[])
*** 755,761 ****
  
    /* Clean shut down.  */
    XHSA (hsa_fns.hsa_memory_free_fn (kernargs),
! 	"Clean up device memory");
    XHSA (hsa_fns.hsa_executable_destroy_fn (executable),
  	"Clean up GCN executable");
    XHSA (hsa_fns.hsa_queue_destroy_fn (queue),
--- 755,767 ----
  
    /* Clean shut down.  */
    XHSA (hsa_fns.hsa_memory_free_fn (kernargs),
! 	"Clean up device kernargs memory");
!   XHSA (hsa_fns.hsa_memory_free_fn (args),
! 	"Clean up device args memory");
!   XHSA (hsa_fns.hsa_memory_free_fn (heap),
! 	"Clean up device heap memory");
!   XHSA (hsa_fns.hsa_memory_free_fn (stack),
! 	"Clean up device stack memory");
    XHSA (hsa_fns.hsa_executable_destroy_fn (executable),
  	"Clean up GCN executable");
    XHSA (hsa_fns.hsa_queue_destroy_fn (queue),
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn-tree.cc gcc-14.1.0/gcc/config/gcn/gcn-tree.cc
*** gcc-13.2.0/gcc/config/gcn/gcn-tree.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn-tree.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2017-2023 Free Software Foundation, Inc.
  
     This file is part of GCC.
     
--- 1,4 ----
! /* Copyright (C) 2017-2024 Free Software Foundation, Inc.
  
     This file is part of GCC.
     
*************** gcn_lockless_update (location_t loc, gim
*** 104,110 ****
    tree var_type = TREE_TYPE (var);
  
    if (TREE_CODE (var_type) == COMPLEX_TYPE
!       || TREE_CODE (var_type) == REAL_TYPE)
      code = VIEW_CONVERT_EXPR;
  
    if (TYPE_SIZE (var_type) == TYPE_SIZE (long_long_unsigned_type_node))
--- 104,110 ----
    tree var_type = TREE_TYPE (var);
  
    if (TREE_CODE (var_type) == COMPLEX_TYPE
!       || SCALAR_FLOAT_TYPE_P (var_type))
      code = VIEW_CONVERT_EXPR;
  
    if (TYPE_SIZE (var_type) == TYPE_SIZE (long_long_unsigned_type_node))
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn-valu.md gcc-14.1.0/gcc/config/gcn/gcn-valu.md
*** gcc-13.2.0/gcc/config/gcn/gcn-valu.md	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn-valu.md	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! ;; Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
  ;; This file is free software; you can redistribute it and/or modify it under
  ;; the terms of the GNU General Public License as published by the Free
--- 1,4 ----
! ;; Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
  ;; This file is free software; you can redistribute it and/or modify it under
  ;; the terms of the GNU General Public License as published by the Free
***************
*** 96,101 ****
--- 96,105 ----
  		       V32DI V32DF
  		       V64DI V64DF])
  
+ ; Vector modes for four vector registers
+ (define_mode_iterator V_4REG [V2TI V4TI V8TI V16TI V32TI V64TI])
+ (define_mode_iterator V_4REG_ALT [V2TI V4TI V8TI V16TI V32TI V64TI])
+ 
  ; Vector modes with native support
  (define_mode_iterator V_noQI
  		      [V2HI V2HF V2SI V2SF V2DI V2DF
***************
*** 136,142 ****
  		       V32SF V32DF
  		       V64SF V64DF])
  
! ; All of above
  (define_mode_iterator V_ALL
  		      [V2QI V2HI V2HF V2SI V2SF V2DI V2DF
  		       V4QI V4HI V4HF V4SI V4SF V4DI V4DF
--- 140,146 ----
  		       V32SF V32DF
  		       V64SF V64DF])
  
! ; All modes in which we want to do more than just moves.
  (define_mode_iterator V_ALL
  		      [V2QI V2HI V2HF V2SI V2SF V2DI V2DF
  		       V4QI V4HI V4HF V4SI V4SF V4DI V4DF
***************
*** 175,271 ****
  		       V32HF V32SF V32DF
  		       V64HF V64SF V64DF])
  
  (define_mode_attr scalar_mode
!   [(QI "qi") (HI "hi") (SI "si")
     (HF "hf") (SF "sf") (DI "di") (DF "df")
!    (V2QI "qi") (V2HI "hi") (V2SI "si")
     (V2HF "hf") (V2SF "sf") (V2DI "di") (V2DF "df")
!    (V4QI "qi") (V4HI "hi") (V4SI "si")
     (V4HF "hf") (V4SF "sf") (V4DI "di") (V4DF "df")
!    (V8QI "qi") (V8HI "hi") (V8SI "si")
     (V8HF "hf") (V8SF "sf") (V8DI "di") (V8DF "df")
!    (V16QI "qi") (V16HI "hi") (V16SI "si")
     (V16HF "hf") (V16SF "sf") (V16DI "di") (V16DF "df")
!    (V32QI "qi") (V32HI "hi") (V32SI "si")
     (V32HF "hf") (V32SF "sf") (V32DI "di") (V32DF "df")
!    (V64QI "qi") (V64HI "hi") (V64SI "si")
     (V64HF "hf") (V64SF "sf") (V64DI "di") (V64DF "df")])
  
  (define_mode_attr SCALAR_MODE
!   [(QI "QI") (HI "HI") (SI "SI")
     (HF "HF") (SF "SF") (DI "DI") (DF "DF")
!    (V2QI "QI") (V2HI "HI") (V2SI "SI")
     (V2HF "HF") (V2SF "SF") (V2DI "DI") (V2DF "DF")
!    (V4QI "QI") (V4HI "HI") (V4SI "SI")
     (V4HF "HF") (V4SF "SF") (V4DI "DI") (V4DF "DF")
!    (V8QI "QI") (V8HI "HI") (V8SI "SI")
     (V8HF "HF") (V8SF "SF") (V8DI "DI") (V8DF "DF")
!    (V16QI "QI") (V16HI "HI") (V16SI "SI")
     (V16HF "HF") (V16SF "SF") (V16DI "DI") (V16DF "DF")
!    (V32QI "QI") (V32HI "HI") (V32SI "SI")
     (V32HF "HF") (V32SF "SF") (V32DI "DI") (V32DF "DF")
!    (V64QI "QI") (V64HI "HI") (V64SI "SI")
     (V64HF "HF") (V64SF "SF") (V64DI "DI") (V64DF "DF")])
  
  (define_mode_attr vnsi
!   [(QI "si") (HI "si") (SI "si")
     (HF "si") (SF "si") (DI "si") (DF "si")
     (V2QI "v2si") (V2HI "v2si") (V2HF "v2si") (V2SI "v2si")
!    (V2SF "v2si") (V2DI "v2si") (V2DF "v2si")
     (V4QI "v4si") (V4HI "v4si") (V4HF "v4si") (V4SI "v4si")
!    (V4SF "v4si") (V4DI "v4si") (V4DF "v4si")
     (V8QI "v8si") (V8HI "v8si") (V8HF "v8si") (V8SI "v8si")
!    (V8SF "v8si") (V8DI "v8si") (V8DF "v8si")
     (V16QI "v16si") (V16HI "v16si") (V16HF "v16si") (V16SI "v16si")
!    (V16SF "v16si") (V16DI "v16si") (V16DF "v16si")
     (V32QI "v32si") (V32HI "v32si") (V32HF "v32si") (V32SI "v32si")
!    (V32SF "v32si") (V32DI "v32si") (V32DF "v32si")
     (V64QI "v64si") (V64HI "v64si") (V64HF "v64si") (V64SI "v64si")
!    (V64SF "v64si") (V64DI "v64si") (V64DF "v64si")])
  
  (define_mode_attr VnSI
!   [(QI "SI") (HI "SI") (SI "SI")
     (HF "SI") (SF "SI") (DI "SI") (DF "SI")
     (V2QI "V2SI") (V2HI "V2SI") (V2HF "V2SI") (V2SI "V2SI")
!    (V2SF "V2SI") (V2DI "V2SI") (V2DF "V2SI")
     (V4QI "V4SI") (V4HI "V4SI") (V4HF "V4SI") (V4SI "V4SI")
!    (V4SF "V4SI") (V4DI "V4SI") (V4DF "V4SI")
     (V8QI "V8SI") (V8HI "V8SI") (V8HF "V8SI") (V8SI "V8SI")
!    (V8SF "V8SI") (V8DI "V8SI") (V8DF "V8SI")
     (V16QI "V16SI") (V16HI "V16SI") (V16HF "V16SI") (V16SI "V16SI")
!    (V16SF "V16SI") (V16DI "V16SI") (V16DF "V16SI")
     (V32QI "V32SI") (V32HI "V32SI") (V32HF "V32SI") (V32SI "V32SI")
!    (V32SF "V32SI") (V32DI "V32SI") (V32DF "V32SI")
     (V64QI "V64SI") (V64HI "V64SI") (V64HF "V64SI") (V64SI "V64SI")
!    (V64SF "V64SI") (V64DI "V64SI") (V64DF "V64SI")])
  
  (define_mode_attr vndi
    [(V2QI "v2di") (V2HI "v2di") (V2HF "v2di") (V2SI "v2di")
!    (V2SF "v2di") (V2DI "v2di") (V2DF "v2di")
     (V4QI "v4di") (V4HI "v4di") (V4HF "v4di") (V4SI "v4di")
!    (V4SF "v4di") (V4DI "v4di") (V4DF "v4di")
     (V8QI "v8di") (V8HI "v8di") (V8HF "v8di") (V8SI "v8di")
!    (V8SF "v8di") (V8DI "v8di") (V8DF "v8di")
     (V16QI "v16di") (V16HI "v16di") (V16HF "v16di") (V16SI "v16di")
!    (V16SF "v16di") (V16DI "v16di") (V16DF "v16di")
     (V32QI "v32di") (V32HI "v32di") (V32HF "v32di") (V32SI "v32di")
!    (V32SF "v32di") (V32DI "v32di") (V32DF "v32di")
     (V64QI "v64di") (V64HI "v64di") (V64HF "v64di") (V64SI "v64di")
!    (V64SF "v64di") (V64DI "v64di") (V64DF "v64di")])
  
  (define_mode_attr VnDI
    [(V2QI "V2DI") (V2HI "V2DI") (V2HF "V2DI") (V2SI "V2DI")
!    (V2SF "V2DI") (V2DI "V2DI") (V2DF "V2DI")
     (V4QI "V4DI") (V4HI "V4DI") (V4HF "V4DI") (V4SI "V4DI")
!    (V4SF "V4DI") (V4DI "V4DI") (V4DF "V4DI")
     (V8QI "V8DI") (V8HI "V8DI") (V8HF "V8DI") (V8SI "V8DI")
!    (V8SF "V8DI") (V8DI "V8DI") (V8DF "V8DI")
     (V16QI "V16DI") (V16HI "V16DI") (V16HF "V16DI") (V16SI "V16DI")
!    (V16SF "V16DI") (V16DI "V16DI") (V16DF "V16DI")
     (V32QI "V32DI") (V32HI "V32DI") (V32HF "V32DI") (V32SI "V32DI")
!    (V32SF "V32DI") (V32DI "V32DI") (V32DF "V32DI")
     (V64QI "V64DI") (V64HI "V64DI") (V64HF "V64DI") (V64SI "V64DI")
!    (V64SF "V64DI") (V64DI "V64DI") (V64DF "V64DI")])
  
  (define_mode_attr sdwa
    [(V2QI "BYTE_0") (V2HI "WORD_0") (V2SI "DWORD")
--- 179,291 ----
  		       V32HF V32SF V32DF
  		       V64HF V64SF V64DF])
  
+ ; All modes that need moves, including those without many insns.
+ (define_mode_iterator V_MOV
+ 		      [V2QI V2HI V2HF V2SI V2SF V2DI V2DF V2TI
+ 		       V4QI V4HI V4HF V4SI V4SF V4DI V4DF V4TI
+ 		       V8QI V8HI V8HF V8SI V8SF V8DI V8DF V8TI
+ 		       V16QI V16HI V16HF V16SI V16SF V16DI V16DF V16TI
+ 		       V32QI V32HI V32HF V32SI V32SF V32DI V32DF V32TI
+ 		       V64QI V64HI V64HF V64SI V64SF V64DI V64DF V64TI])
+ (define_mode_iterator V_MOV_ALT
+ 		      [V2QI V2HI V2HF V2SI V2SF V2DI V2DF V2TI
+ 		       V4QI V4HI V4HF V4SI V4SF V4DI V4DF V4TI
+ 		       V8QI V8HI V8HF V8SI V8SF V8DI V8DF V8TI
+ 		       V16QI V16HI V16HF V16SI V16SF V16DI V16DF V16TI
+ 		       V32QI V32HI V32HF V32SI V32SF V32DI V32DF V32TI
+ 		       V64QI V64HI V64HF V64SI V64SF V64DI V64DF V64TI])
+ 
  (define_mode_attr scalar_mode
!   [(QI "qi") (HI "hi") (SI "si") (TI "ti")
     (HF "hf") (SF "sf") (DI "di") (DF "df")
!    (V2QI "qi") (V2HI "hi") (V2SI "si") (V2TI "ti")
     (V2HF "hf") (V2SF "sf") (V2DI "di") (V2DF "df")
!    (V4QI "qi") (V4HI "hi") (V4SI "si") (V4TI "ti")
     (V4HF "hf") (V4SF "sf") (V4DI "di") (V4DF "df")
!    (V8QI "qi") (V8HI "hi") (V8SI "si") (V8TI "ti")
     (V8HF "hf") (V8SF "sf") (V8DI "di") (V8DF "df")
!    (V16QI "qi") (V16HI "hi") (V16SI "si") (V16TI "ti")
     (V16HF "hf") (V16SF "sf") (V16DI "di") (V16DF "df")
!    (V32QI "qi") (V32HI "hi") (V32SI "si") (V32TI "ti")
     (V32HF "hf") (V32SF "sf") (V32DI "di") (V32DF "df")
!    (V64QI "qi") (V64HI "hi") (V64SI "si") (V64TI "ti")
     (V64HF "hf") (V64SF "sf") (V64DI "di") (V64DF "df")])
  
  (define_mode_attr SCALAR_MODE
!   [(QI "QI") (HI "HI") (SI "SI") (TI "TI")
     (HF "HF") (SF "SF") (DI "DI") (DF "DF")
!    (V2QI "QI") (V2HI "HI") (V2SI "SI") (V2TI "TI")
     (V2HF "HF") (V2SF "SF") (V2DI "DI") (V2DF "DF")
!    (V4QI "QI") (V4HI "HI") (V4SI "SI") (V4TI "TI")
     (V4HF "HF") (V4SF "SF") (V4DI "DI") (V4DF "DF")
!    (V8QI "QI") (V8HI "HI") (V8SI "SI") (V8TI "TI")
     (V8HF "HF") (V8SF "SF") (V8DI "DI") (V8DF "DF")
!    (V16QI "QI") (V16HI "HI") (V16SI "SI") (V16TI "TI")
     (V16HF "HF") (V16SF "SF") (V16DI "DI") (V16DF "DF")
!    (V32QI "QI") (V32HI "HI") (V32SI "SI") (V32TI "TI")
     (V32HF "HF") (V32SF "SF") (V32DI "DI") (V32DF "DF")
!    (V64QI "QI") (V64HI "HI") (V64SI "SI") (V64TI "TI")
     (V64HF "HF") (V64SF "SF") (V64DI "DI") (V64DF "DF")])
  
  (define_mode_attr vnsi
!   [(QI "si") (HI "si") (SI "si") (TI "si")
     (HF "si") (SF "si") (DI "si") (DF "si")
     (V2QI "v2si") (V2HI "v2si") (V2HF "v2si") (V2SI "v2si")
!    (V2SF "v2si") (V2DI "v2si") (V2DF "v2si") (V2TI "v2si")
     (V4QI "v4si") (V4HI "v4si") (V4HF "v4si") (V4SI "v4si")
!    (V4SF "v4si") (V4DI "v4si") (V4DF "v4si") (V4TI "v4si")
     (V8QI "v8si") (V8HI "v8si") (V8HF "v8si") (V8SI "v8si")
!    (V8SF "v8si") (V8DI "v8si") (V8DF "v8si") (V8TI "v8si")
     (V16QI "v16si") (V16HI "v16si") (V16HF "v16si") (V16SI "v16si")
!    (V16SF "v16si") (V16DI "v16si") (V16DF "v16si") (V16TI "v16si")
     (V32QI "v32si") (V32HI "v32si") (V32HF "v32si") (V32SI "v32si")
!    (V32SF "v32si") (V32DI "v32si") (V32DF "v32si") (V32TI "v32si")
     (V64QI "v64si") (V64HI "v64si") (V64HF "v64si") (V64SI "v64si")
!    (V64SF "v64si") (V64DI "v64si") (V64DF "v64si") (V64TI "v64si")])
  
  (define_mode_attr VnSI
!   [(QI "SI") (HI "SI") (SI "SI") (TI "SI")
     (HF "SI") (SF "SI") (DI "SI") (DF "SI")
     (V2QI "V2SI") (V2HI "V2SI") (V2HF "V2SI") (V2SI "V2SI")
!    (V2SF "V2SI") (V2DI "V2SI") (V2DF "V2SI") (V2TI "V2SI")
     (V4QI "V4SI") (V4HI "V4SI") (V4HF "V4SI") (V4SI "V4SI")
!    (V4SF "V4SI") (V4DI "V4SI") (V4DF "V4SI") (V4TI "V4SI")
     (V8QI "V8SI") (V8HI "V8SI") (V8HF "V8SI") (V8SI "V8SI")
!    (V8SF "V8SI") (V8DI "V8SI") (V8DF "V8SI") (V8TI "V8SI")
     (V16QI "V16SI") (V16HI "V16SI") (V16HF "V16SI") (V16SI "V16SI")
!    (V16SF "V16SI") (V16DI "V16SI") (V16DF "V16SI") (V16TI "V16SI")
     (V32QI "V32SI") (V32HI "V32SI") (V32HF "V32SI") (V32SI "V32SI")
!    (V32SF "V32SI") (V32DI "V32SI") (V32DF "V32SI") (V32TI "V32SI")
     (V64QI "V64SI") (V64HI "V64SI") (V64HF "V64SI") (V64SI "V64SI")
!    (V64SF "V64SI") (V64DI "V64SI") (V64DF "V64SI") (V64TI "V64SI")])
  
  (define_mode_attr vndi
    [(V2QI "v2di") (V2HI "v2di") (V2HF "v2di") (V2SI "v2di")
!    (V2SF "v2di") (V2DI "v2di") (V2DF "v2di") (V2TI "v2di")
     (V4QI "v4di") (V4HI "v4di") (V4HF "v4di") (V4SI "v4di")
!    (V4SF "v4di") (V4DI "v4di") (V4DF "v4di") (V4TI "v4di")
     (V8QI "v8di") (V8HI "v8di") (V8HF "v8di") (V8SI "v8di")
!    (V8SF "v8di") (V8DI "v8di") (V8DF "v8di") (V8TI "v8di")
     (V16QI "v16di") (V16HI "v16di") (V16HF "v16di") (V16SI "v16di")
!    (V16SF "v16di") (V16DI "v16di") (V16DF "v16di") (V16TI "v16di")
     (V32QI "v32di") (V32HI "v32di") (V32HF "v32di") (V32SI "v32di")
!    (V32SF "v32di") (V32DI "v32di") (V32DF "v32di") (V32TI "v32di")
     (V64QI "v64di") (V64HI "v64di") (V64HF "v64di") (V64SI "v64di")
!    (V64SF "v64di") (V64DI "v64di") (V64DF "v64di") (V64TI "v64di")])
  
  (define_mode_attr VnDI
    [(V2QI "V2DI") (V2HI "V2DI") (V2HF "V2DI") (V2SI "V2DI")
!    (V2SF "V2DI") (V2DI "V2DI") (V2DF "V2DI") (V2TI "V2DI")
     (V4QI "V4DI") (V4HI "V4DI") (V4HF "V4DI") (V4SI "V4DI")
!    (V4SF "V4DI") (V4DI "V4DI") (V4DF "V4DI") (V4TI "V4DI")
     (V8QI "V8DI") (V8HI "V8DI") (V8HF "V8DI") (V8SI "V8DI")
!    (V8SF "V8DI") (V8DI "V8DI") (V8DF "V8DI") (V8TI "V8DI")
     (V16QI "V16DI") (V16HI "V16DI") (V16HF "V16DI") (V16SI "V16DI")
!    (V16SF "V16DI") (V16DI "V16DI") (V16DF "V16DI") (V16TI "V16DI")
     (V32QI "V32DI") (V32HI "V32DI") (V32HF "V32DI") (V32SI "V32DI")
!    (V32SF "V32DI") (V32DI "V32DI") (V32DF "V32DI") (V32TI "V32DI")
     (V64QI "V64DI") (V64HI "V64DI") (V64HF "V64DI") (V64SI "V64DI")
!    (V64SF "V64DI") (V64DI "V64DI") (V64DF "V64DI") (V64TI "V64DI")])
  
  (define_mode_attr sdwa
    [(V2QI "BYTE_0") (V2HI "WORD_0") (V2SI "DWORD")
***************
*** 288,325 ****
  		   "" "_exec")
  
  (define_subst "vec_merge"
!   [(set (match_operand:V_ALL 0)
! 	(match_operand:V_ALL 1))]
    ""
    [(set (match_dup 0)
! 	(vec_merge:V_ALL
  	  (match_dup 1)
! 	  (match_operand:V_ALL 3 "gcn_register_or_unspec_operand" "U0")
  	  (match_operand:DI 4 "gcn_exec_reg_operand" "e")))])
  
  (define_subst "vec_merge_with_clobber"
!   [(set (match_operand:V_ALL 0)
! 	(match_operand:V_ALL 1))
     (clobber (match_operand 2))]
    ""
    [(set (match_dup 0)
! 	(vec_merge:V_ALL
  	  (match_dup 1)
! 	  (match_operand:V_ALL 3 "gcn_register_or_unspec_operand" "U0")
  	  (match_operand:DI 4 "gcn_exec_reg_operand" "e")))
     (clobber (match_dup 2))])
  
  (define_subst "vec_merge_with_vcc"
!   [(set (match_operand:V_ALL 0)
! 	(match_operand:V_ALL 1))
     (set (match_operand:DI 2)
  	(match_operand:DI 3))]
    ""
    [(parallel
       [(set (match_dup 0)
! 	   (vec_merge:V_ALL
  	     (match_dup 1)
! 	     (match_operand:V_ALL 4 "gcn_register_or_unspec_operand" "U0")
  	     (match_operand:DI 5 "gcn_exec_reg_operand" "e")))
        (set (match_dup 2)
  	   (and:DI (match_dup 3)
--- 308,345 ----
  		   "" "_exec")
  
  (define_subst "vec_merge"
!   [(set (match_operand:V_MOV 0)
! 	(match_operand:V_MOV 1))]
    ""
    [(set (match_dup 0)
! 	(vec_merge:V_MOV
  	  (match_dup 1)
! 	  (match_operand:V_MOV 3 "gcn_register_or_unspec_operand" "U0")
  	  (match_operand:DI 4 "gcn_exec_reg_operand" "e")))])
  
  (define_subst "vec_merge_with_clobber"
!   [(set (match_operand:V_MOV 0)
! 	(match_operand:V_MOV 1))
     (clobber (match_operand 2))]
    ""
    [(set (match_dup 0)
! 	(vec_merge:V_MOV
  	  (match_dup 1)
! 	  (match_operand:V_MOV 3 "gcn_register_or_unspec_operand" "U0")
  	  (match_operand:DI 4 "gcn_exec_reg_operand" "e")))
     (clobber (match_dup 2))])
  
  (define_subst "vec_merge_with_vcc"
!   [(set (match_operand:V_MOV 0)
! 	(match_operand:V_MOV 1))
     (set (match_operand:DI 2)
  	(match_operand:DI 3))]
    ""
    [(parallel
       [(set (match_dup 0)
! 	   (vec_merge:V_MOV
  	     (match_dup 1)
! 	     (match_operand:V_MOV 4 "gcn_register_or_unspec_operand" "U0")
  	     (match_operand:DI 5 "gcn_exec_reg_operand" "e")))
        (set (match_dup 2)
  	   (and:DI (match_dup 3)
***************
*** 351,358 ****
  ; gather/scatter, maskload/store, etc.
  
  (define_expand "mov<mode>"
!   [(set (match_operand:V_ALL 0 "nonimmediate_operand")
! 	(match_operand:V_ALL 1 "general_operand"))]
    ""
    {
      /* Bitwise reinterpret casts via SUBREG don't work with GCN vector
--- 371,378 ----
  ; gather/scatter, maskload/store, etc.
  
  (define_expand "mov<mode>"
!   [(set (match_operand:V_MOV 0 "nonimmediate_operand")
! 	(match_operand:V_MOV 1 "general_operand"))]
    ""
    {
      /* Bitwise reinterpret casts via SUBREG don't work with GCN vector
***************
*** 421,459 ****
  ; A pseudo instruction that helps LRA use the "U0" constraint.
  
  (define_insn "mov<mode>_unspec"
!   [(set (match_operand:V_ALL 0 "nonimmediate_operand" "=v")
! 	(match_operand:V_ALL 1 "gcn_unspec_operand"   " U"))]
    ""
    ""
    [(set_attr "type" "unknown")
     (set_attr "length" "0")])
  
  (define_insn "*mov<mode>"
!   [(set (match_operand:V_1REG 0 "nonimmediate_operand" "=v,v")
! 	(match_operand:V_1REG 1 "general_operand"      "vA,B"))]
    ""
!   "v_mov_b32\t%0, %1"
!   [(set_attr "type" "vop1,vop1")
!    (set_attr "length" "4,8")])
  
  (define_insn "mov<mode>_exec"
!   [(set (match_operand:V_1REG 0 "nonimmediate_operand"	 "=v, v, v, v, v, m")
  	(vec_merge:V_1REG
! 	  (match_operand:V_1REG 1 "general_operand"	 "vA, B, v,vA, m, v")
! 	  (match_operand:V_1REG 2 "gcn_alu_or_unspec_operand"
! 							 "U0,U0,vA,vA,U0,U0")
! 	  (match_operand:DI 3 "register_operand"	 " e, e,cV,Sv, e, e")))
!    (clobber (match_scratch:<VnDI> 4			 "=X, X, X, X,&v,&v"))]
    "!MEM_P (operands[0]) || REG_P (operands[1])"
!   "@
!    v_mov_b32\t%0, %1
!    v_mov_b32\t%0, %1
!    v_cndmask_b32\t%0, %2, %1, vcc
!    v_cndmask_b32\t%0, %2, %1, %3
!    #
!    #"
!   [(set_attr "type" "vop1,vop1,vop2,vop3a,*,*")
!    (set_attr "length" "4,8,4,8,16,16")])
  
  ; This variant does not accept an unspec, but does permit MEM
  ; read/modify/write which is necessary for maskstore.
--- 441,481 ----
  ; A pseudo instruction that helps LRA use the "U0" constraint.
  
  (define_insn "mov<mode>_unspec"
!   [(set (match_operand:V_MOV 0 "nonimmediate_operand" "=v")
! 	(match_operand:V_MOV 1 "gcn_unspec_operand"   " U"))]
    ""
    ""
    [(set_attr "type" "unknown")
     (set_attr "length" "0")])
  
  (define_insn "*mov<mode>"
!   [(set (match_operand:V_1REG 0 "nonimmediate_operand")
! 	(match_operand:V_1REG 1 "general_operand"))]
    ""
!   {@ [cons: =0, 1; attrs: type, length, gcn_version]
!   [v  ,vA;vop1     ,4,*    ] v_mov_b32\t%0, %1
!   [v  ,B ;vop1     ,8,*    ] ^
!   [v  ,a ;vop3p_mai,8,*    ] v_accvgpr_read_b32\t%0, %1
!   [$a ,v ;vop3p_mai,8,*    ] v_accvgpr_write_b32\t%0, %1
!   [a  ,a ;vop1     ,4,cdna2] v_accvgpr_mov_b32\t%0, %1
!   })
  
  (define_insn "mov<mode>_exec"
!   [(set (match_operand:V_1REG 0 "nonimmediate_operand")
  	(vec_merge:V_1REG
! 	  (match_operand:V_1REG 1 "general_operand")
! 	  (match_operand:V_1REG 2 "gcn_alu_or_unspec_operand")
! 	  (match_operand:DI 3 "register_operand")))
!    (clobber (match_scratch:<VnDI> 4))]
    "!MEM_P (operands[0]) || REG_P (operands[1])"
!   {@ [cons: =0, 1, 2, 3, =4; attrs: type, length]
!   [v,vA,U0,e ,X ;vop1 ,4 ] v_mov_b32\t%0, %1
!   [v,B ,U0,e ,X ;vop1 ,8 ] v_mov_b32\t%0, %1
!   [v,v ,vA,cV,X ;vop2 ,4 ] v_cndmask_b32\t%0, %2, %1, vcc
!   [v,vA,vA,Sv,X ;vop3a,8 ] v_cndmask_b32\t%0, %2, %1, %3
!   [v,m ,U0,e ,&v;*    ,16] #
!   [m,v ,U0,e ,&v;*    ,16] #
!   })
  
  ; This variant does not accept an unspec, but does permit MEM
  ; read/modify/write which is necessary for maskstore.
***************
*** 475,491 ****
  ;   (set_attr "length" "4,8,16,16")])
  
  (define_insn "*mov<mode>"
!   [(set (match_operand:V_2REG 0 "nonimmediate_operand" "=v")
! 	(match_operand:V_2REG 1 "general_operand"      "vDB"))]
    ""
!   {
!     if (!REG_P (operands[1]) || REGNO (operands[0]) <= REGNO (operands[1]))
!       return "v_mov_b32\t%L0, %L1\;v_mov_b32\t%H0, %H1";
!     else
!       return "v_mov_b32\t%H0, %H1\;v_mov_b32\t%L0, %L1";
!   }
!   [(set_attr "type" "vmult")
!    (set_attr "length" "16")])
  
  (define_insn "mov<mode>_exec"
    [(set (match_operand:V_2REG 0 "nonimmediate_operand" "= v,   v,   v, v, m")
--- 497,525 ----
  ;   (set_attr "length" "4,8,16,16")])
  
  (define_insn "*mov<mode>"
!   [(set (match_operand:V_2REG 0 "nonimmediate_operand" "=v, v,$a,a")
! 	(match_operand:V_2REG 1 "general_operand"      "vDB,a, v,a"))]
    ""
!   "@
!    * if (!REG_P (operands[1]) || REGNO (operands[0]) <= REGNO (operands[1])) \
!        return \"v_mov_b32\t%L0, %L1\;v_mov_b32\t%H0, %H1\"; \
!      else \
!        return \"v_mov_b32\t%H0, %H1\;v_mov_b32\t%L0, %L1\";
!    * if (REGNO (operands[0]) <= REGNO (operands[1])) \
!        return \"v_accvgpr_read_b32\t%L0, %L1\;v_accvgpr_read_b32\t%H0, %H1\"; \
!      else \
!        return \"v_accvgpr_read_b32\t%H0, %H1\;v_accvgpr_read_b32\t%L0, %L1\";
!    * if (REGNO (operands[0]) <= REGNO (operands[1])) \
!        return \"v_accvgpr_write_b32\t%L0, %L1\;v_accvgpr_write_b32\t%H0, %H1\"; \
!      else \
!        return \"v_accvgpr_write_b32\t%H0, %H1\;v_accvgpr_write_b32\t%L0, %L1\";
!    * if (REGNO (operands[0]) <= REGNO (operands[1])) \
!        return \"v_accvgpr_mov_b32\t%L0, %L1\;v_accvgpr_mov_b32\t%H0, %H1\"; \
!      else \
!        return \"v_accvgpr_mov_b32\t%H0, %H1\;v_accvgpr_mov_b32\t%L0, %L1\";"
!   [(set_attr "type" "vmult,vmult,vmult,vmult")
!    (set_attr "length" "16,16,16,8")
!    (set_attr "gcn_version" "*,*,*,cdna2")])
  
  (define_insn "mov<mode>_exec"
    [(set (match_operand:V_2REG 0 "nonimmediate_operand" "= v,   v,   v, v, m")
***************
*** 527,532 ****
--- 561,627 ----
    [(set_attr "type" "vmult,vmult,vmult,*,*")
     (set_attr "length" "16,16,16,16,16")])
  
+ (define_insn "*mov<mode>_4reg"
+   [(set (match_operand:V_4REG 0 "nonimmediate_operand")
+ 	(match_operand:V_4REG 1 "general_operand"))]
+   ""
+   {@ [cons: =0, 1; attrs: type, length, gcn_version]
+   [v ,vDB;vmult,16,*    ]           v_mov_b32\t%L0, %L1\;          v_mov_b32\t%H0, %H1\;          v_mov_b32\t%J0, %J1\;          v_mov_b32\t%K0, %K1
+   [v ,a  ;vmult,32,*    ]  v_accvgpr_read_b32\t%L0, %L1\; v_accvgpr_read_b32\t%H0, %H1\; v_accvgpr_read_b32\t%J0, %J1\; v_accvgpr_read_b32\t%K0, %K1
+   [$a,v  ;vmult,32,*    ] v_accvgpr_write_b32\t%L0, %L1\;v_accvgpr_write_b32\t%H0, %H1\;v_accvgpr_write_b32\t%J0, %J1\;v_accvgpr_write_b32\t%K0, %K1
+   [a ,a  ;vmult,32,cdna2]   v_accvgpr_mov_b32\t%L0, %L1\;  v_accvgpr_mov_b32\t%H0, %H1\;  v_accvgpr_mov_b32\t%J0, %J1\;  v_accvgpr_mov_b32\t%K0, %K1
+   })
+ 
+ (define_insn "mov<mode>_exec"
+   [(set (match_operand:V_4REG 0 "nonimmediate_operand" "= v,   v,   v, v, m")
+ 	(vec_merge:V_4REG
+ 	  (match_operand:V_4REG 1 "general_operand"    "vDB,  v0,  v0, m, v")
+ 	  (match_operand:V_4REG 2 "gcn_alu_or_unspec_operand"
+ 						       " U0,vDA0,vDA0,U0,U0")
+ 	  (match_operand:DI 3 "register_operand"       "  e,  cV,  Sv, e, e")))
+    (clobber (match_scratch:<VnDI> 4		       "= X,   X,   X,&v,&v"))]
+   "!MEM_P (operands[0]) || REG_P (operands[1])"
+   {
+     if (!REG_P (operands[1]) || REGNO (operands[0]) <= REGNO (operands[1]))
+       switch (which_alternative)
+ 	{
+ 	case 0:
+ 	  return "v_mov_b32\t%L0, %L1\;v_mov_b32\t%H0, %H1\;"
+                  "v_mov_b32\t%J0, %J1\;v_mov_b32\t%K0, %K1";
+ 	case 1:
+ 	  return "v_cndmask_b32\t%L0, %L2, %L1, vcc\;"
+ 		 "v_cndmask_b32\t%H0, %H2, %H1, vcc\;"
+ 		 "v_cndmask_b32\t%J0, %J2, %J1, vcc\;"
+ 		 "v_cndmask_b32\t%K0, %K2, %K1, vcc";
+ 	case 2:
+ 	  return "v_cndmask_b32\t%L0, %L2, %L1, %3\;"
+ 		 "v_cndmask_b32\t%H0, %H2, %H1, %3\;"
+ 		 "v_cndmask_b32\t%J0, %J2, %J1, %3\;"
+ 		 "v_cndmask_b32\t%K0, %K2, %K1, %3";
+ 	}
+     else
+       switch (which_alternative)
+ 	{
+ 	case 0:
+ 	  return "v_mov_b32\t%H0, %H1\;v_mov_b32\t%L0, %L1\;"
+                  "v_mov_b32\t%J0, %J1\;v_mov_b32\t%K0, %K1";
+ 	case 1:
+ 	  return "v_cndmask_b32\t%H0, %H2, %H1, vcc\;"
+ 		 "v_cndmask_b32\t%L0, %L2, %L1, vcc\;"
+ 		 "v_cndmask_b32\t%J0, %J2, %J1, vcc\;"
+ 		 "v_cndmask_b32\t%K0, %K2, %K1, vcc";
+ 	case 2:
+ 	  return "v_cndmask_b32\t%H0, %H2, %H1, %3\;"
+ 		 "v_cndmask_b32\t%L0, %L2, %L1, %3\;"
+ 		 "v_cndmask_b32\t%J0, %J2, %J1, %3\;"
+ 		 "v_cndmask_b32\t%K0, %K2, %K1, %3";
+ 	}
+ 
+     return "#";
+   }
+   [(set_attr "type" "vmult,vmult,vmult,*,*")
+    (set_attr "length" "32")])
+ 
  ; This variant does not accept an unspec, but does permit MEM
  ; read/modify/write which is necessary for maskstore.
  
***************
*** 560,586 ****
  ;   vT += Sv
  ;   flat_load v, vT
  
! (define_insn "mov<mode>_sgprbase"
!   [(set (match_operand:V_1REG 0 "nonimmediate_operand" "= v, v, v, m")
  	(unspec:V_1REG
! 	  [(match_operand:V_1REG 1 "general_operand"   " vA,vB, m, v")]
  	  UNSPEC_SGPRBASE))
!    (clobber (match_operand:<VnDI> 2 "register_operand"  "=&v,&v,&v,&v"))]
    "lra_in_progress || reload_completed"
!   "@
!    v_mov_b32\t%0, %1
!    v_mov_b32\t%0, %1
!    #
!    #"
!   [(set_attr "type" "vop1,vop1,*,*")
!    (set_attr "length" "4,8,12,12")])
  
! (define_insn "mov<mode>_sgprbase"
!   [(set (match_operand:V_2REG 0 "nonimmediate_operand" "= v, v, m")
  	(unspec:V_2REG
! 	  [(match_operand:V_2REG 1 "general_operand"   "vDB, m, v")]
  	  UNSPEC_SGPRBASE))
!    (clobber (match_operand:<VnDI> 2 "register_operand"  "=&v,&v,&v"))]
    "lra_in_progress || reload_completed"
    "@
     * if (!REG_P (operands[1]) || REGNO (operands[0]) <= REGNO (operands[1])) \
--- 655,682 ----
  ;   vT += Sv
  ;   flat_load v, vT
  
! (define_insn "@mov<mode>_sgprbase"
!   [(set (match_operand:V_1REG 0 "nonimmediate_operand")
  	(unspec:V_1REG
! 	  [(match_operand:V_1REG 1 "general_operand")]
  	  UNSPEC_SGPRBASE))
!    (clobber (match_operand:<VnDI> 2 "register_operand"))]
    "lra_in_progress || reload_completed"
!   {@ [cons: =0, 1, =2; attrs: type, length, gcn_version]
!   [v,vA,&v;vop1,4 ,*    ] v_mov_b32\t%0, %1
!   [v,vB,&v;vop1,8 ,*    ] ^
!   [v,m ,&v;*   ,12,*    ] #
!   [m,v ,&v;*   ,12,*    ] #
!   [a,m ,&v;*   ,12,cdna2] #
!   [m,a ,&v;*   ,12,cdna2] #
!   })
  
! (define_insn "@mov<mode>_sgprbase"
!   [(set (match_operand:V_2REG 0 "nonimmediate_operand" "= v, v, m, a, m")
  	(unspec:V_2REG
! 	  [(match_operand:V_2REG 1 "general_operand"   "vDB, m, v, m, a")]
  	  UNSPEC_SGPRBASE))
!    (clobber (match_operand:<VnDI> 2 "register_operand"  "=&v,&v,&v,&v,&v"))]
    "lra_in_progress || reload_completed"
    "@
     * if (!REG_P (operands[1]) || REGNO (operands[0]) <= REGNO (operands[1])) \
***************
*** 588,628 ****
       else \
         return \"v_mov_b32\t%H0, %H1\;v_mov_b32\t%L0, %L1\";
     #
     #"
!   [(set_attr "type" "vmult,*,*")
!    (set_attr "length" "8,12,12")])
! 
! ; reload_in was once a standard name, but here it's only referenced by
! ; gcn_secondary_reload.  It allows a reload with a scratch register.
! 
! (define_expand "reload_in<mode>"
!   [(set (match_operand:V_ALL 0 "register_operand"     "= v")
! 	(match_operand:V_ALL 1 "memory_operand"	      "  m"))
!    (clobber (match_operand:<VnDI> 2 "register_operand" "=&v"))]
!   ""
!   {
!     emit_insn (gen_mov<mode>_sgprbase (operands[0], operands[1], operands[2]));
!     DONE;
!   })
! 
! ; reload_out is similar to reload_in, above.
  
! (define_expand "reload_out<mode>"
!   [(set (match_operand:V_ALL 0 "memory_operand"	      "= m")
! 	(match_operand:V_ALL 1 "register_operand"     "  v"))
!    (clobber (match_operand:<VnDI> 2 "register_operand" "=&v"))]
!   ""
!   {
!     emit_insn (gen_mov<mode>_sgprbase (operands[0], operands[1], operands[2]));
!     DONE;
    })
  
  ; Expand scalar addresses into gather/scatter patterns
  
  (define_split
!   [(set (match_operand:V_ALL 0 "memory_operand")
! 	(unspec:V_ALL
! 	  [(match_operand:V_ALL 1 "general_operand")]
  	  UNSPEC_SGPRBASE))
     (clobber (match_scratch:<VnDI> 2))]
    ""
--- 684,715 ----
       else \
         return \"v_mov_b32\t%H0, %H1\;v_mov_b32\t%L0, %L1\";
     #
+    #
+    #
     #"
!   [(set_attr "type" "vmult,*,*,*,*")
!    (set_attr "length" "8,12,12,12,12")
!    (set_attr "gcn_version" "*,*,*,cdna2,cdna2")])
  
! (define_insn "@mov<mode>_sgprbase"
!   [(set (match_operand:V_4REG 0 "nonimmediate_operand")
! 	(unspec:V_4REG
! 	  [(match_operand:V_4REG 1 "general_operand")]
! 	  UNSPEC_SGPRBASE))
!    (clobber (match_operand:<VnDI> 2 "register_operand"))]
!   "lra_in_progress || reload_completed"
!   {@ [cons: =0, 1, =2; attrs: type, length]
!   [v,vDB,&v;vmult,8 ] v_mov_b32\t%L0, %L1\;v_mov_b32\t%H0, %H1\;v_mov_b32\t%J0, %J1\;v_mov_b32\t%K0, %K1
!   [v,m  ,&v;*    ,12] #
!   [m,v  ,&v;*    ,12] #
    })
  
  ; Expand scalar addresses into gather/scatter patterns
  
  (define_split
!   [(set (match_operand:V_MOV 0 "memory_operand")
! 	(unspec:V_MOV
! 	  [(match_operand:V_MOV 1 "general_operand")]
  	  UNSPEC_SGPRBASE))
     (clobber (match_scratch:<VnDI> 2))]
    ""
***************
*** 638,647 ****
    })
  
  (define_split
!   [(set (match_operand:V_ALL 0 "memory_operand")
! 	(vec_merge:V_ALL
! 	  (match_operand:V_ALL 1 "general_operand")
! 	  (match_operand:V_ALL 2 "")
  	  (match_operand:DI 3 "gcn_exec_reg_operand")))
     (clobber (match_scratch:<VnDI> 4))]
    ""
--- 725,734 ----
    })
  
  (define_split
!   [(set (match_operand:V_MOV 0 "memory_operand")
! 	(vec_merge:V_MOV
! 	  (match_operand:V_MOV 1 "general_operand")
! 	  (match_operand:V_MOV 2 "")
  	  (match_operand:DI 3 "gcn_exec_reg_operand")))
     (clobber (match_scratch:<VnDI> 4))]
    ""
***************
*** 659,672 ****
    })
  
  (define_split
!   [(set (match_operand:V_ALL 0 "nonimmediate_operand")
! 	(unspec:V_ALL
! 	  [(match_operand:V_ALL 1 "memory_operand")]
  	  UNSPEC_SGPRBASE))
     (clobber (match_scratch:<VnDI> 2))]
    ""
    [(set (match_dup 0)
! 	(unspec:V_ALL [(match_dup 5) (match_dup 6) (match_dup 7)
  		       (mem:BLK (scratch))]
  		      UNSPEC_GATHER))]
    {
--- 746,759 ----
    })
  
  (define_split
!   [(set (match_operand:V_MOV 0 "nonimmediate_operand")
! 	(unspec:V_MOV
! 	  [(match_operand:V_MOV 1 "memory_operand")]
  	  UNSPEC_SGPRBASE))
     (clobber (match_scratch:<VnDI> 2))]
    ""
    [(set (match_dup 0)
! 	(unspec:V_MOV [(match_dup 5) (match_dup 6) (match_dup 7)
  		       (mem:BLK (scratch))]
  		      UNSPEC_GATHER))]
    {
***************
*** 678,693 ****
    })
  
  (define_split
!   [(set (match_operand:V_ALL 0 "nonimmediate_operand")
! 	(vec_merge:V_ALL
! 	  (match_operand:V_ALL 1 "memory_operand")
! 	  (match_operand:V_ALL 2 "")
  	  (match_operand:DI 3 "gcn_exec_reg_operand")))
     (clobber (match_scratch:<VnDI> 4))]
    ""
    [(set (match_dup 0)
! 	(vec_merge:V_ALL
! 	  (unspec:V_ALL [(match_dup 5) (match_dup 6) (match_dup 7)
  			 (mem:BLK (scratch))]
  			 UNSPEC_GATHER)
  	  (match_dup 2)
--- 765,780 ----
    })
  
  (define_split
!   [(set (match_operand:V_MOV 0 "nonimmediate_operand")
! 	(vec_merge:V_MOV
! 	  (match_operand:V_MOV 1 "memory_operand")
! 	  (match_operand:V_MOV 2 "")
  	  (match_operand:DI 3 "gcn_exec_reg_operand")))
     (clobber (match_scratch:<VnDI> 4))]
    ""
    [(set (match_dup 0)
! 	(vec_merge:V_MOV
! 	  (unspec:V_MOV [(match_dup 5) (match_dup 6) (match_dup 7)
  			 (mem:BLK (scratch))]
  			 UNSPEC_GATHER)
  	  (match_dup 2)
***************
*** 744,752 ****
     (set_attr "laneselect" "yes")])
  
  (define_expand "vec_set<mode>"
!   [(set (match_operand:V_ALL 0 "register_operand")
! 	(vec_merge:V_ALL
! 	  (vec_duplicate:V_ALL
  	    (match_operand:<SCALAR_MODE> 1 "register_operand"))
  	  (match_dup 0)
  	  (ashift (const_int 1) (match_operand:SI 2 "gcn_alu_operand"))))]
--- 831,839 ----
     (set_attr "laneselect" "yes")])
  
  (define_expand "vec_set<mode>"
!   [(set (match_operand:V_MOV 0 "register_operand")
! 	(vec_merge:V_MOV
! 	  (vec_duplicate:V_MOV
  	    (match_operand:<SCALAR_MODE> 1 "register_operand"))
  	  (match_dup 0)
  	  (ashift (const_int 1) (match_operand:SI 2 "gcn_alu_operand"))))]
***************
*** 804,809 ****
--- 891,905 ----
    [(set_attr "type" "vop3a")
     (set_attr "length" "16")])
  
+ (define_insn "vec_duplicate<mode><exec>"
+   [(set (match_operand:V_4REG 0 "register_operand"	   "=  v")
+ 	(vec_duplicate:V_4REG
+ 	  (match_operand:<SCALAR_MODE> 1 "gcn_alu_operand" "SvDB")))]
+   ""
+   "v_mov_b32\t%L0, %L1\;v_mov_b32\t%H0, %H1\;v_mov_b32\t%J0, %J1\;v_mov_b32\t%K0, %K1"
+   [(set_attr "type" "mult")
+    (set_attr "length" "32")])
+ 
  (define_insn "vec_extract<mode><scalar_mode>"
    [(set (match_operand:<SCALAR_MODE> 0 "register_operand"  "=Sg")
  	(vec_select:<SCALAR_MODE>
***************
*** 828,840 ****
     (set_attr "exec" "none")
     (set_attr "laneselect" "yes")])
  
  (define_insn "vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop"
    [(set (match_operand:V_1REG_ALT 0 "register_operand" "=v,v")
  	(vec_select:V_1REG_ALT
  	  (match_operand:V_1REG 1 "register_operand"   " 0,v")
  	  (match_operand 2 "ascending_zero_int_parallel" "")))]
    "MODE_VF (<V_1REG_ALT:MODE>mode) < MODE_VF (<V_1REG:MODE>mode)
!    && <V_1REG_ALT:SCALAR_MODE>mode == <V_1REG:SCALAR_MODE>mode"
    "@
    ; in-place extract %0
    v_mov_b32\t%L0, %L1"
--- 924,949 ----
     (set_attr "exec" "none")
     (set_attr "laneselect" "yes")])
  
+ (define_insn "vec_extract<mode><scalar_mode>"
+   [(set (match_operand:<SCALAR_MODE> 0 "register_operand"  "=&Sg")
+ 	(vec_select:<SCALAR_MODE>
+ 	  (match_operand:V_4REG 1 "register_operand"	   "   v")
+ 	  (parallel [(match_operand:SI 2 "gcn_alu_operand" " SvB")])))]
+   ""
+   "v_readlane_b32 %L0, %L1, %2\;v_readlane_b32 %H0, %H1, %2\;v_readlane_b32 %J0, %J1, %2\;v_readlane_b32 %K0, %K1, %2"
+   [(set_attr "type" "vmult")
+    (set_attr "length" "32")
+    (set_attr "exec" "none")
+    (set_attr "laneselect" "yes")])
+ 
  (define_insn "vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop"
    [(set (match_operand:V_1REG_ALT 0 "register_operand" "=v,v")
  	(vec_select:V_1REG_ALT
  	  (match_operand:V_1REG 1 "register_operand"   " 0,v")
  	  (match_operand 2 "ascending_zero_int_parallel" "")))]
    "MODE_VF (<V_1REG_ALT:MODE>mode) < MODE_VF (<V_1REG:MODE>mode)
!    && <V_1REG_ALT:SCALAR_MODE>mode == <V_1REG:SCALAR_MODE>mode
!    /* This comment silences a warning for operands[2]. */"
    "@
    ; in-place extract %0
    v_mov_b32\t%L0, %L1"
***************
*** 847,892 ****
  	  (match_operand:V_2REG 1 "register_operand"   " 0,v")
  	  (match_operand 2 "ascending_zero_int_parallel" "")))]
    "MODE_VF (<V_2REG_ALT:MODE>mode) < MODE_VF (<V_2REG:MODE>mode)
!    && <V_2REG_ALT:SCALAR_MODE>mode == <V_2REG:SCALAR_MODE>mode"
    "@
    ; in-place extract %0
    v_mov_b32\t%L0, %L1\;v_mov_b32\t%H0, %H1"
    [(set_attr "type" "vmult")
     (set_attr "length" "0,8")])
    
! (define_expand "vec_extract<V_ALL:mode><V_ALL_ALT:mode>"
!   [(match_operand:V_ALL_ALT 0 "register_operand")
!    (match_operand:V_ALL 1 "register_operand")
     (match_operand 2 "immediate_operand")]
!   "MODE_VF (<V_ALL_ALT:MODE>mode) < MODE_VF (<V_ALL:MODE>mode)
!    && <V_ALL_ALT:SCALAR_MODE>mode == <V_ALL:SCALAR_MODE>mode"
    {
!     int numlanes = GET_MODE_NUNITS (<V_ALL_ALT:MODE>mode);
      int firstlane = INTVAL (operands[2]) * numlanes;
      rtx tmp;
  
      if (firstlane == 0)
        {
! 	rtx parallel = gen_rtx_PARALLEL (<V_ALL:MODE>mode,
  					  rtvec_alloc (numlanes));
  	for (int i = 0; i < numlanes; i++)
  	  XVECEXP (parallel, 0, i) = GEN_INT (i);
! 	emit_insn (gen_vec_extract<V_ALL:mode><V_ALL_ALT:mode>_nop
  		   (operands[0], operands[1], parallel));
        } else {
          /* FIXME: optimize this by using DPP where available.  */
  
!         rtx permutation = gen_reg_rtx (<V_ALL:VnSI>mode);
! 	emit_insn (gen_vec_series<V_ALL:vnsi> (permutation,
  					       GEN_INT (firstlane*4),
  					       GEN_INT (4)));
  
! 	tmp = gen_reg_rtx (<V_ALL:MODE>mode);
! 	emit_insn (gen_ds_bpermute<V_ALL:mode> (tmp, permutation, operands[1],
! 						get_exec (<V_ALL:MODE>mode)));
  
  	emit_move_insn (operands[0],
! 			gen_rtx_SUBREG (<V_ALL_ALT:MODE>mode, tmp, 0));
        }
      DONE;
    })
--- 956,1016 ----
  	  (match_operand:V_2REG 1 "register_operand"   " 0,v")
  	  (match_operand 2 "ascending_zero_int_parallel" "")))]
    "MODE_VF (<V_2REG_ALT:MODE>mode) < MODE_VF (<V_2REG:MODE>mode)
!    && <V_2REG_ALT:SCALAR_MODE>mode == <V_2REG:SCALAR_MODE>mode
!    /* This comment silences a warning for operands[2]. */"
    "@
    ; in-place extract %0
    v_mov_b32\t%L0, %L1\;v_mov_b32\t%H0, %H1"
    [(set_attr "type" "vmult")
     (set_attr "length" "0,8")])
    
! (define_insn "vec_extract<V_4REG:mode><V_4REG_ALT:mode>_nop"
!   [(set (match_operand:V_4REG_ALT 0 "register_operand" "=v,v")
! 	(vec_select:V_4REG_ALT
! 	  (match_operand:V_4REG 1 "register_operand"   " 0,v")
! 	  (match_operand 2 "ascending_zero_int_parallel" "")))]
!   "MODE_VF (<V_4REG_ALT:MODE>mode) < MODE_VF (<V_4REG:MODE>mode)
!    && <V_4REG_ALT:SCALAR_MODE>mode == <V_4REG:SCALAR_MODE>mode"
!   "@
!   ; in-place extract %0
!   v_mov_b32\t%L0, %L1\;v_mov_b32\t%H0, %H1\;v_mov_b32\t%J0, %J1\;v_mov_b32\t%K0, %K1"
!   [(set_attr "type" "vmult")
!    (set_attr "length" "0,16")])
!   
! (define_expand "vec_extract<V_MOV:mode><V_MOV_ALT:mode>"
!   [(match_operand:V_MOV_ALT 0 "register_operand")
!    (match_operand:V_MOV 1 "register_operand")
     (match_operand 2 "immediate_operand")]
!   "MODE_VF (<V_MOV_ALT:MODE>mode) < MODE_VF (<V_MOV:MODE>mode)
!    && <V_MOV_ALT:SCALAR_MODE>mode == <V_MOV:SCALAR_MODE>mode
!    && (!TARGET_RDNA2_PLUS || MODE_VF (<V_MOV:MODE>mode) <= 32)"
    {
!     int numlanes = GET_MODE_NUNITS (<V_MOV_ALT:MODE>mode);
      int firstlane = INTVAL (operands[2]) * numlanes;
      rtx tmp;
  
      if (firstlane == 0)
        {
! 	rtx parallel = gen_rtx_PARALLEL (<V_MOV:MODE>mode,
  					  rtvec_alloc (numlanes));
  	for (int i = 0; i < numlanes; i++)
  	  XVECEXP (parallel, 0, i) = GEN_INT (i);
! 	emit_insn (gen_vec_extract<V_MOV:mode><V_MOV_ALT:mode>_nop
  		   (operands[0], operands[1], parallel));
        } else {
          /* FIXME: optimize this by using DPP where available.  */
  
!         rtx permutation = gen_reg_rtx (<V_MOV:VnSI>mode);
! 	emit_insn (gen_vec_series<V_MOV:vnsi> (permutation,
  					       GEN_INT (firstlane*4),
  					       GEN_INT (4)));
  
! 	tmp = gen_reg_rtx (<V_MOV:MODE>mode);
! 	emit_insn (gen_ds_bpermute<V_MOV:mode> (tmp, permutation, operands[1],
! 						get_exec (<V_MOV:MODE>mode)));
  
  	emit_move_insn (operands[0],
! 			gen_rtx_SUBREG (<V_MOV_ALT:MODE>mode, tmp, 0));
        }
      DONE;
    })
***************
*** 894,900 ****
  (define_expand "extract_last_<mode>"
    [(match_operand:<SCALAR_MODE> 0 "register_operand")
     (match_operand:DI 1 "gcn_alu_operand")
!    (match_operand:V_ALL 2 "register_operand")]
    "can_create_pseudo_p ()"
    {
      rtx dst = operands[0];
--- 1018,1024 ----
  (define_expand "extract_last_<mode>"
    [(match_operand:<SCALAR_MODE> 0 "register_operand")
     (match_operand:DI 1 "gcn_alu_operand")
!    (match_operand:V_MOV 2 "register_operand")]
    "can_create_pseudo_p ()"
    {
      rtx dst = operands[0];
***************
*** 912,918 ****
    [(match_operand:<SCALAR_MODE> 0 "register_operand")
     (match_operand:<SCALAR_MODE> 1 "gcn_alu_operand")
     (match_operand:DI 2 "gcn_alu_operand")
!    (match_operand:V_ALL 3 "register_operand")]
    "can_create_pseudo_p ()"
    {
      rtx dst = operands[0];
--- 1036,1042 ----
    [(match_operand:<SCALAR_MODE> 0 "register_operand")
     (match_operand:<SCALAR_MODE> 1 "gcn_alu_operand")
     (match_operand:DI 2 "gcn_alu_operand")
!    (match_operand:V_MOV 3 "register_operand")]
    "can_create_pseudo_p ()"
    {
      rtx dst = operands[0];
***************
*** 934,940 ****
    })
  
  (define_expand "vec_init<mode><scalar_mode>"
!   [(match_operand:V_ALL 0 "register_operand")
     (match_operand 1)]
    ""
    {
--- 1058,1064 ----
    })
  
  (define_expand "vec_init<mode><scalar_mode>"
!   [(match_operand:V_MOV 0 "register_operand")
     (match_operand 1)]
    ""
    {
***************
*** 942,952 ****
      DONE;
    })
  
! (define_expand "vec_init<V_ALL:mode><V_ALL_ALT:mode>"
!   [(match_operand:V_ALL 0 "register_operand")
!    (match_operand:V_ALL_ALT 1)]
!   "<V_ALL:SCALAR_MODE>mode == <V_ALL_ALT:SCALAR_MODE>mode
!    && MODE_VF (<V_ALL_ALT:MODE>mode) < MODE_VF (<V_ALL:MODE>mode)"
    {
      gcn_expand_vector_init (operands[0], operands[1]);
      DONE;
--- 1066,1076 ----
      DONE;
    })
  
! (define_expand "vec_init<V_MOV:mode><V_MOV_ALT:mode>"
!   [(match_operand:V_MOV 0 "register_operand")
!    (match_operand:V_MOV_ALT 1)]
!   "<V_MOV:SCALAR_MODE>mode == <V_MOV_ALT:SCALAR_MODE>mode
!    && MODE_VF (<V_MOV_ALT:MODE>mode) < MODE_VF (<V_MOV:MODE>mode)"
    {
      gcn_expand_vector_init (operands[0], operands[1]);
      DONE;
***************
*** 988,994 ****
  ;; TODO: implement combined gather and zero_extend, but only for -msram-ecc=on
  
  (define_expand "gather_load<mode><vnsi>"
!   [(match_operand:V_ALL 0 "register_operand")
     (match_operand:DI 1 "register_operand")
     (match_operand:<VnSI> 2 "register_operand")
     (match_operand 3 "immediate_operand")
--- 1112,1118 ----
  ;; TODO: implement combined gather and zero_extend, but only for -msram-ecc=on
  
  (define_expand "gather_load<mode><vnsi>"
!   [(match_operand:V_MOV 0 "register_operand")
     (match_operand:DI 1 "register_operand")
     (match_operand:<VnSI> 2 "register_operand")
     (match_operand 3 "immediate_operand")
***************
*** 1011,1018 ****
  
  ; Allow any address expression
  (define_expand "gather<mode>_expr<exec>"
!   [(set (match_operand:V_ALL 0 "register_operand")
! 	(unspec:V_ALL
  	  [(match_operand 1 "")
  	   (match_operand 2 "immediate_operand")
  	   (match_operand 3 "immediate_operand")
--- 1135,1142 ----
  
  ; Allow any address expression
  (define_expand "gather<mode>_expr<exec>"
!   [(set (match_operand:V_MOV 0 "register_operand")
! 	(unspec:V_MOV
  	  [(match_operand 1 "")
  	   (match_operand 2 "immediate_operand")
  	   (match_operand 3 "immediate_operand")
***************
*** 1022,1034 ****
      {})
  
  (define_insn "gather<mode>_insn_1offset<exec>"
!   [(set (match_operand:V_ALL 0 "register_operand"		   "=v")
! 	(unspec:V_ALL
! 	  [(plus:<VnDI> (match_operand:<VnDI> 1 "register_operand" " v")
  			(vec_duplicate:<VnDI>
! 			  (match_operand 2 "immediate_operand"	   " n")))
! 	   (match_operand 3 "immediate_operand"			   " n")
! 	   (match_operand 4 "immediate_operand"			   " n")
  	   (mem:BLK (scratch))]
  	  UNSPEC_GATHER))]
    "(AS_FLAT_P (INTVAL (operands[3]))
--- 1146,1158 ----
      {})
  
  (define_insn "gather<mode>_insn_1offset<exec>"
!   [(set (match_operand:V_MOV 0 "register_operand"		   "=v,a,&v,&a")
! 	(unspec:V_MOV
! 	  [(plus:<VnDI> (match_operand:<VnDI> 1 "register_operand" " v,v, v, v")
  			(vec_duplicate:<VnDI>
! 			  (match_operand 2 "immediate_operand"	   " n,n, n, n")))
! 	   (match_operand 3 "immediate_operand"			   " n,n, n, n")
! 	   (match_operand 4 "immediate_operand"			   " n,n, n, n")
  	   (mem:BLK (scratch))]
  	  UNSPEC_GATHER))]
    "(AS_FLAT_P (INTVAL (operands[3]))
***************
*** 1058,1073 ****
      return buf;
    }
    [(set_attr "type" "flat")
!    (set_attr "length" "12")])
  
  (define_insn "gather<mode>_insn_1offset_ds<exec>"
!   [(set (match_operand:V_ALL 0 "register_operand"		   "=v")
! 	(unspec:V_ALL
! 	  [(plus:<VnSI> (match_operand:<VnSI> 1 "register_operand" " v")
  			(vec_duplicate:<VnSI>
! 			  (match_operand 2 "immediate_operand"	   " n")))
! 	   (match_operand 3 "immediate_operand"			   " n")
! 	   (match_operand 4 "immediate_operand"			   " n")
  	   (mem:BLK (scratch))]
  	  UNSPEC_GATHER))]
    "(AS_ANY_DS_P (INTVAL (operands[3]))
--- 1182,1199 ----
      return buf;
    }
    [(set_attr "type" "flat")
!    (set_attr "length" "12")
!    (set_attr "gcn_version" "*,cdna2,*,cdna2")
!    (set_attr "xnack" "off,off,on,on")])
  
  (define_insn "gather<mode>_insn_1offset_ds<exec>"
!   [(set (match_operand:V_MOV 0 "register_operand"		   "=v,a")
! 	(unspec:V_MOV
! 	  [(plus:<VnSI> (match_operand:<VnSI> 1 "register_operand" " v,v")
  			(vec_duplicate:<VnSI>
! 			  (match_operand 2 "immediate_operand"	   " n,n")))
! 	   (match_operand 3 "immediate_operand"			   " n,n")
! 	   (match_operand 4 "immediate_operand"			   " n,n")
  	   (mem:BLK (scratch))]
  	  UNSPEC_GATHER))]
    "(AS_ANY_DS_P (INTVAL (operands[3]))
***************
*** 1080,1099 ****
      return buf;
    }
    [(set_attr "type" "ds")
!    (set_attr "length" "12")])
  
  (define_insn "gather<mode>_insn_2offsets<exec>"
!   [(set (match_operand:V_ALL 0 "register_operand"			"=v")
! 	(unspec:V_ALL
  	  [(plus:<VnDI>
  	     (plus:<VnDI>
  	       (vec_duplicate:<VnDI>
! 		 (match_operand:DI 1 "register_operand"			"Sv"))
  	       (sign_extend:<VnDI>
! 		 (match_operand:<VnSI> 2 "register_operand"		" v")))
! 	     (vec_duplicate:<VnDI> (match_operand 3 "immediate_operand" " n")))
! 	   (match_operand 4 "immediate_operand"				" n")
! 	   (match_operand 5 "immediate_operand"				" n")
  	   (mem:BLK (scratch))]
  	  UNSPEC_GATHER))]
    "(AS_GLOBAL_P (INTVAL (operands[4]))
--- 1206,1227 ----
      return buf;
    }
    [(set_attr "type" "ds")
!    (set_attr "length" "12")
!    (set_attr "gcn_version" "*,cdna2")])
  
  (define_insn "gather<mode>_insn_2offsets<exec>"
!   [(set (match_operand:V_MOV 0 "register_operand"		"=v,a,&v,&a")
! 	(unspec:V_MOV
  	  [(plus:<VnDI>
  	     (plus:<VnDI>
  	       (vec_duplicate:<VnDI>
! 		 (match_operand:DI 1 "register_operand"		"Sv,Sv,Sv,Sv"))
  	       (sign_extend:<VnDI>
! 		 (match_operand:<VnSI> 2 "register_operand"	" v, v, v, v")))
! 	     (vec_duplicate:<VnDI> (match_operand 3 "immediate_operand"
! 								" n, n, n, n")))
! 	   (match_operand 4 "immediate_operand"			" n, n, n, n")
! 	   (match_operand 5 "immediate_operand"			" n, n, n, n")
  	   (mem:BLK (scratch))]
  	  UNSPEC_GATHER))]
    "(AS_GLOBAL_P (INTVAL (operands[4]))
***************
*** 1112,1125 ****
      return buf;
    }
    [(set_attr "type" "flat")
!    (set_attr "length" "12")])
  
  (define_expand "scatter_store<mode><vnsi>"
    [(match_operand:DI 0 "register_operand")
     (match_operand:<VnSI> 1 "register_operand")
     (match_operand 2 "immediate_operand")
     (match_operand:SI 3 "gcn_alu_operand")
!    (match_operand:V_ALL 4 "register_operand")]
    ""
    {
      rtx addr = gcn_expand_scaled_offsets (DEFAULT_ADDR_SPACE, operands[0],
--- 1240,1255 ----
      return buf;
    }
    [(set_attr "type" "flat")
!    (set_attr "length" "12")
!    (set_attr "gcn_version" "*,cdna2,*,cdna2")
!    (set_attr "xnack" "off,off,on,on")])
  
  (define_expand "scatter_store<mode><vnsi>"
    [(match_operand:DI 0 "register_operand")
     (match_operand:<VnSI> 1 "register_operand")
     (match_operand 2 "immediate_operand")
     (match_operand:SI 3 "gcn_alu_operand")
!    (match_operand:V_MOV 4 "register_operand")]
    ""
    {
      rtx addr = gcn_expand_scaled_offsets (DEFAULT_ADDR_SPACE, operands[0],
***************
*** 1141,1147 ****
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:<VnDI> 0 "")
! 	   (match_operand:V_ALL 1 "register_operand")
  	   (match_operand 2 "immediate_operand")
  	   (match_operand 3 "immediate_operand")]
  	  UNSPEC_SCATTER))]
--- 1271,1277 ----
    [(set (mem:BLK (scratch))
  	(unspec:BLK
  	  [(match_operand:<VnDI> 0 "")
! 	   (match_operand:V_MOV 1 "register_operand")
  	   (match_operand 2 "immediate_operand")
  	   (match_operand 3 "immediate_operand")]
  	  UNSPEC_SCATTER))]
***************
*** 1151,1162 ****
  (define_insn "scatter<mode>_insn_1offset<exec_scatter>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(plus:<VnDI> (match_operand:<VnDI> 0 "register_operand" "v")
  			(vec_duplicate:<VnDI>
! 			  (match_operand 1 "immediate_operand"	   "n")))
! 	   (match_operand:V_ALL 2 "register_operand"		   "v")
! 	   (match_operand 3 "immediate_operand"			   "n")
! 	   (match_operand 4 "immediate_operand"			   "n")]
  	  UNSPEC_SCATTER))]
    "(AS_FLAT_P (INTVAL (operands[3]))
      && (INTVAL(operands[1]) == 0
--- 1281,1292 ----
  (define_insn "scatter<mode>_insn_1offset<exec_scatter>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(plus:<VnDI> (match_operand:<VnDI> 0 "register_operand" "v,v")
  			(vec_duplicate:<VnDI>
! 			  (match_operand 1 "immediate_operand"	   "n,n")))
! 	   (match_operand:V_MOV 2 "register_operand"		   "v,a")
! 	   (match_operand 3 "immediate_operand"			   "n,n")
! 	   (match_operand 4 "immediate_operand"			   "n,n")]
  	  UNSPEC_SCATTER))]
    "(AS_FLAT_P (INTVAL (operands[3]))
      && (INTVAL(operands[1]) == 0
***************
*** 1184,1200 ****
      return buf;
    }
    [(set_attr "type" "flat")
!    (set_attr "length" "12")])
  
  (define_insn "scatter<mode>_insn_1offset_ds<exec_scatter>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(plus:<VnSI> (match_operand:<VnSI> 0 "register_operand" "v")
  			(vec_duplicate:<VnSI>
! 			  (match_operand 1 "immediate_operand"	   "n")))
! 	   (match_operand:V_ALL 2 "register_operand"		   "v")
! 	   (match_operand 3 "immediate_operand"			   "n")
! 	   (match_operand 4 "immediate_operand"			   "n")]
  	  UNSPEC_SCATTER))]
    "(AS_ANY_DS_P (INTVAL (operands[3]))
      && ((unsigned HOST_WIDE_INT)INTVAL(operands[1]) < 0x10000))"
--- 1314,1331 ----
      return buf;
    }
    [(set_attr "type" "flat")
!    (set_attr "length" "12")
!    (set_attr "gcn_version" "*,cdna2")])
  
  (define_insn "scatter<mode>_insn_1offset_ds<exec_scatter>"
    [(set (mem:BLK (scratch))
  	(unspec:BLK
! 	  [(plus:<VnSI> (match_operand:<VnSI> 0 "register_operand" "v,v")
  			(vec_duplicate:<VnSI>
! 			  (match_operand 1 "immediate_operand"	   "n,n")))
! 	   (match_operand:V_MOV 2 "register_operand"		   "v,a")
! 	   (match_operand 3 "immediate_operand"			   "n,n")
! 	   (match_operand 4 "immediate_operand"			   "n,n")]
  	  UNSPEC_SCATTER))]
    "(AS_ANY_DS_P (INTVAL (operands[3]))
      && ((unsigned HOST_WIDE_INT)INTVAL(operands[1]) < 0x10000))"
***************
*** 1206,1212 ****
      return buf;
    }
    [(set_attr "type" "ds")
!    (set_attr "length" "12")])
  
  (define_insn "scatter<mode>_insn_2offsets<exec_scatter>"
    [(set (mem:BLK (scratch))
--- 1337,1344 ----
      return buf;
    }
    [(set_attr "type" "ds")
!    (set_attr "length" "12")
!    (set_attr "gcn_version" "*,cdna2")])
  
  (define_insn "scatter<mode>_insn_2offsets<exec_scatter>"
    [(set (mem:BLK (scratch))
***************
*** 1214,1226 ****
  	  [(plus:<VnDI>
  	     (plus:<VnDI>
  	       (vec_duplicate:<VnDI>
! 		 (match_operand:DI 0 "register_operand"			"Sv"))
  	       (sign_extend:<VnDI>
! 		 (match_operand:<VnSI> 1 "register_operand"		" v")))
! 	     (vec_duplicate:<VnDI> (match_operand 2 "immediate_operand" " n")))
! 	   (match_operand:V_ALL 3 "register_operand"			" v")
! 	   (match_operand 4 "immediate_operand"				" n")
! 	   (match_operand 5 "immediate_operand"				" n")]
  	  UNSPEC_SCATTER))]
    "(AS_GLOBAL_P (INTVAL (operands[4]))
      && (((unsigned HOST_WIDE_INT)INTVAL(operands[2]) + 0x1000) < 0x2000))"
--- 1346,1358 ----
  	  [(plus:<VnDI>
  	     (plus:<VnDI>
  	       (vec_duplicate:<VnDI>
! 		 (match_operand:DI 0 "register_operand"		       "Sv,Sv"))
  	       (sign_extend:<VnDI>
! 		 (match_operand:<VnSI> 1 "register_operand"		"v,v")))
! 	     (vec_duplicate:<VnDI> (match_operand 2 "immediate_operand" "n,n")))
! 	   (match_operand:V_MOV 3 "register_operand"			"v,a")
! 	   (match_operand 4 "immediate_operand"				"n,n")
! 	   (match_operand 5 "immediate_operand"				"n,n")]
  	  UNSPEC_SCATTER))]
    "(AS_GLOBAL_P (INTVAL (operands[4]))
      && (((unsigned HOST_WIDE_INT)INTVAL(operands[2]) + 0x1000) < 0x2000))"
***************
*** 1237,1243 ****
      return buf;
    }
    [(set_attr "type" "flat")
!    (set_attr "length" "12")])
  
  ;; }}}
  ;; {{{ Permutations
--- 1369,1376 ----
      return buf;
    }
    [(set_attr "type" "flat")
!    (set_attr "length" "12")
!    (set_attr "gcn_version" "*,cdna2")])
  
  ;; }}}
  ;; {{{ Permutations
***************
*** 1285,1291 ****
  	  [(match_operand:V_noHI 1 "register_operand" " v")
  	   (match_operand:SI 2 "const_int_operand"    " n")]
  	  UNSPEC_MOV_DPP_SHR))]
!   ""
    {
      return gcn_expand_dpp_shr_insn (<MODE>mode, "v_mov_b32",
  				    UNSPEC_MOV_DPP_SHR, INTVAL (operands[2]));
--- 1418,1424 ----
  	  [(match_operand:V_noHI 1 "register_operand" " v")
  	   (match_operand:SI 2 "const_int_operand"    " n")]
  	  UNSPEC_MOV_DPP_SHR))]
!   "!TARGET_RDNA2_PLUS"
    {
      return gcn_expand_dpp_shr_insn (<MODE>mode, "v_mov_b32",
  				    UNSPEC_MOV_DPP_SHR, INTVAL (operands[2]));
***************
*** 1336,1393 ****
  ;; {{{ ALU special case: add/sub
  
  (define_insn "add<mode>3<exec_clobber>"
!   [(set (match_operand:V_INT_1REG 0 "register_operand"   "=  v")
  	(plus:V_INT_1REG
! 	  (match_operand:V_INT_1REG 1 "register_operand" "%  v")
! 	  (match_operand:V_INT_1REG 2 "gcn_alu_operand"  "vSvB")))
     (clobber (reg:DI VCC_REG))]
    ""
!   "v_add%^_u32\t%0, vcc, %2, %1"
!   [(set_attr "type" "vop2")
!    (set_attr "length" "8")])
  
  (define_insn "add<mode>3_dup<exec_clobber>"
!   [(set (match_operand:V_INT_1REG 0 "register_operand"	     "= v")
  	(plus:V_INT_1REG
  	  (vec_duplicate:V_INT_1REG
! 	    (match_operand:<SCALAR_MODE> 2 "gcn_alu_operand" "SvB"))
! 	  (match_operand:V_INT_1REG 1 "register_operand"     "  v")))
     (clobber (reg:DI VCC_REG))]
    ""
!   "v_add%^_u32\t%0, vcc, %2, %1"
!   [(set_attr "type" "vop2")
!    (set_attr "length" "8")])
  
  (define_insn "add<mode>3_vcc<exec_vcc>"
!   [(set (match_operand:V_SI 0 "register_operand"   "=  v,   v")
  	(plus:V_SI
! 	  (match_operand:V_SI 1 "register_operand" "%  v,   v")
! 	  (match_operand:V_SI 2 "gcn_alu_operand"  "vSvB,vSvB")))
!    (set (match_operand:DI 3 "register_operand"	   "= cV,  Sg")
  	(ltu:DI (plus:V_SI (match_dup 1) (match_dup 2))
  		(match_dup 1)))]
    ""
!   "v_add%^_u32\t%0, %3, %2, %1"
!   [(set_attr "type" "vop2,vop3b")
!    (set_attr "length" "8")])
  
  ; This pattern only changes the VCC bits when the corresponding lane is
  ; enabled, so the set must be described as an ior.
  
  (define_insn "add<mode>3_vcc_dup<exec_vcc>"
!   [(set (match_operand:V_SI 0 "register_operand"   "= v,  v")
  	(plus:V_SI
  	  (vec_duplicate:V_SI
! 	    (match_operand:SI 1 "gcn_alu_operand"  "SvB,SvB"))
! 	  (match_operand:V_SI 2 "register_operand" "  v,  v")))
!    (set (match_operand:DI 3 "register_operand"	   "=cV, Sg")
  	(ltu:DI (plus:V_SI (vec_duplicate:V_SI (match_dup 2))
  			   (match_dup 1))
  		(vec_duplicate:V_SI (match_dup 2))))]
    ""
!   "v_add%^_u32\t%0, %3, %2, %1"
!   [(set_attr "type" "vop2,vop3b")
!    (set_attr "length" "8,8")])
  
  ; v_addc does not accept an SGPR because the VCC read already counts as an
  ; SGPR use and the number of SGPR operands is limited to 1.  It does not
--- 1469,1532 ----
  ;; {{{ ALU special case: add/sub
  
  (define_insn "add<mode>3<exec_clobber>"
!   [(set (match_operand:V_INT_1REG 0 "register_operand")
  	(plus:V_INT_1REG
! 	  (match_operand:V_INT_1REG 1 "register_operand")
! 	  (match_operand:V_INT_1REG 2 "gcn_alu_operand")))
     (clobber (reg:DI VCC_REG))]
    ""
!   {@ [cons: =0, %1, 2; attrs: type, length]
!   [v,v,vSvA;vop2,4] v_add%^_u32\t%0, vcc, %2, %1
!   [v,v,vSvB;vop2,8] ^
!   })
  
  (define_insn "add<mode>3_dup<exec_clobber>"
!   [(set (match_operand:V_INT_1REG 0 "register_operand")
  	(plus:V_INT_1REG
  	  (vec_duplicate:V_INT_1REG
! 	    (match_operand:<SCALAR_MODE> 2 "gcn_alu_operand"))
! 	  (match_operand:V_INT_1REG 1 "register_operand")))
     (clobber (reg:DI VCC_REG))]
    ""
!   {@ [cons: =0, 1, 2; attrs: type, length]
!   [v,v,SvA;vop2,4] v_add%^_u32\t%0, vcc, %2, %1
!   [v,v,SvB;vop2,8] ^
!   })
  
  (define_insn "add<mode>3_vcc<exec_vcc>"
!   [(set (match_operand:V_SI 0 "register_operand")
  	(plus:V_SI
! 	  (match_operand:V_SI 1 "register_operand")
! 	  (match_operand:V_SI 2 "gcn_alu_operand")))
!    (set (match_operand:DI 3 "register_operand")
  	(ltu:DI (plus:V_SI (match_dup 1) (match_dup 2))
  		(match_dup 1)))]
    ""
!   {@ [cons: =0, %1, 2, =3; attrs: type, length]
!   [v,v,vSvA,cV;vop2 ,4] v_add%^_u32\t%0, %3, %2, %1
!   [v,v,vSvB,cV;vop2 ,8] ^
!   [v,v,vSvA,Sg;vop3b,8] ^
!   })
  
  ; This pattern only changes the VCC bits when the corresponding lane is
  ; enabled, so the set must be described as an ior.
  
  (define_insn "add<mode>3_vcc_dup<exec_vcc>"
!   [(set (match_operand:V_SI 0 "register_operand")
  	(plus:V_SI
  	  (vec_duplicate:V_SI
! 	    (match_operand:SI 1 "gcn_alu_operand"))
! 	  (match_operand:V_SI 2 "register_operand")))
!    (set (match_operand:DI 3 "register_operand")
  	(ltu:DI (plus:V_SI (vec_duplicate:V_SI (match_dup 2))
  			   (match_dup 1))
  		(vec_duplicate:V_SI (match_dup 2))))]
    ""
!   {@ [cons: =0, 1, 2, =3; attrs: type, length]
!   [v,SvA,v,cV;vop2 ,4] v_add%^_u32\t%0, %3, %1, %2
!   [v,SvB,v,cV;vop2 ,8] ^
!   [v,SvA,v,Sg;vop3b,8] ^
!   })
  
  ; v_addc does not accept an SGPR because the VCC read already counts as an
  ; SGPR use and the number of SGPR operands is limited to 1.  It does not
***************
*** 1421,1427 ****
  			  (match_dup 1))
  			(match_dup 1))))]
    ""
!   "v_addc%^_u32\t%0, %4, %2, %1, %3"
    [(set_attr "type" "vop2,vop3b")
     (set_attr "length" "4,8")])
  
--- 1560,1566 ----
  			  (match_dup 1))
  			(match_dup 1))))]
    ""
!   "{v_addc%^_u32|v_add_co_ci_u32}\t%0, %4, %2, %1, %3"
    [(set_attr "type" "vop2,vop3b")
     (set_attr "length" "4,8")])
  
***************
*** 1486,1495 ****
  			(match_dup 1))))]
    ""
    "@
!    v_subb%^_u32\t%0, %4, %1, %2, %3
!    v_subb%^_u32\t%0, %4, %1, %2, %3
!    v_subbrev%^_u32\t%0, %4, %2, %1, %3
!    v_subbrev%^_u32\t%0, %4, %2, %1, %3"
    [(set_attr "type" "vop2,vop3b,vop2,vop3b")
     (set_attr "length" "4,8,4,8")])
  
--- 1625,1634 ----
  			(match_dup 1))))]
    ""
    "@
!    {v_subb%^_u32|v_sub_co_ci_u32}\t%0, %4, %1, %2, %3
!    {v_subb%^_u32|v_sub_co_ci_u32}\t%0, %4, %1, %2, %3
!    {v_subbrev%^_u32|v_subrev_co_ci_u32}\t%0, %4, %2, %1, %3
!    {v_subbrev%^_u32|v_subrev_co_ci_u32}\t%0, %4, %2, %1, %3"
    [(set_attr "type" "vop2,vop3b,vop2,vop3b")
     (set_attr "length" "4,8,4,8")])
  
***************
*** 1691,1709 ****
     (set_attr "length" "8")])
  
  (define_insn_and_split "add<mode>3_vcc_zext_dup"
!   [(set (match_operand:V_DI 0 "register_operand"    "=    v,    v")
  	(plus:V_DI
  	  (zero_extend:V_DI
  	    (vec_duplicate:<VnSI>
! 	      (match_operand:SI 1 "gcn_alu_operand" "   BSv,  ASv")))
! 	  (match_operand:V_DI 2 "gcn_alu_operand"   "   vDA,  vDb")))
!    (set (match_operand:DI 3 "register_operand"	    "=&SgcV,&SgcV")
  	(ltu:DI (plus:V_DI 
  		  (zero_extend:V_DI (vec_duplicate:<VnSI> (match_dup 1)))
  		  (match_dup 2))
  		(match_dup 1)))]
    ""
!   "#"
    "gcn_can_split_p  (<MODE>mode, operands[0])
     && gcn_can_split_p (<MODE>mode, operands[2])"
    [(const_int 0)]
--- 1830,1851 ----
     (set_attr "length" "8")])
  
  (define_insn_and_split "add<mode>3_vcc_zext_dup"
!   [(set (match_operand:V_DI 0 "register_operand")
  	(plus:V_DI
  	  (zero_extend:V_DI
  	    (vec_duplicate:<VnSI>
! 	      (match_operand:SI 1 "gcn_alu_operand")))
! 	  (match_operand:V_DI 2 "gcn_alu_operand")))
!    (set (match_operand:DI 3 "register_operand")
  	(ltu:DI (plus:V_DI 
  		  (zero_extend:V_DI (vec_duplicate:<VnSI> (match_dup 1)))
  		  (match_dup 2))
  		(match_dup 1)))]
    ""
!   {@ [cons: =0, 1, 2, =3]
!   [v,ASv,v,&Sg] #
!   [v,BSv,v,&cV] ^
!   }
    "gcn_can_split_p  (<MODE>mode, operands[0])
     && gcn_can_split_p (<MODE>mode, operands[2])"
    [(const_int 0)]
***************
*** 1735,1750 ****
    })
  
  (define_insn_and_split "add<mode>3_vcc_zext_dup_exec"
!   [(set (match_operand:V_DI 0 "register_operand"	      "=    v,    v")
  	(vec_merge:V_DI
  	  (plus:V_DI
  	    (zero_extend:V_DI
  	      (vec_duplicate:<VnSI>
! 		(match_operand:SI 1 "gcn_alu_operand"	      "   ASv,  BSv")))
! 	    (match_operand:V_DI 2 "gcn_alu_operand"	      "   vDb,  vDA"))
! 	  (match_operand:V_DI 4 "gcn_register_or_unspec_operand" " U0,   U0")
! 	  (match_operand:DI 5 "gcn_exec_reg_operand"	      "     e,    e")))
!    (set (match_operand:DI 3 "register_operand"		      "=&SgcV,&SgcV")
  	(and:DI
  	  (ltu:DI (plus:V_DI 
  		    (zero_extend:V_DI (vec_duplicate:<VnSI> (match_dup 1)))
--- 1877,1892 ----
    })
  
  (define_insn_and_split "add<mode>3_vcc_zext_dup_exec"
!   [(set (match_operand:V_DI 0 "register_operand")
  	(vec_merge:V_DI
  	  (plus:V_DI
  	    (zero_extend:V_DI
  	      (vec_duplicate:<VnSI>
! 		(match_operand:SI 1 "gcn_alu_operand")))
! 	    (match_operand:V_DI 2 "gcn_alu_operand"))
! 	  (match_operand:V_DI 4 "gcn_register_or_unspec_operand")
! 	  (match_operand:DI 5 "gcn_exec_reg_operand")))
!    (set (match_operand:DI 3 "register_operand")
  	(and:DI
  	  (ltu:DI (plus:V_DI 
  		    (zero_extend:V_DI (vec_duplicate:<VnSI> (match_dup 1)))
***************
*** 1752,1758 ****
  		  (match_dup 1))
  	  (match_dup 5)))]
    ""
!   "#"
    "gcn_can_split_p  (<MODE>mode, operands[0])
     && gcn_can_split_p (<MODE>mode, operands[2])
     && gcn_can_split_p (<MODE>mode, operands[4])"
--- 1894,1903 ----
  		  (match_dup 1))
  	  (match_dup 5)))]
    ""
!   {@ [cons: =0, 1, 2, =3, 4, 5]
!   [v,ASv,v,&Sg,U0,e] #
!   [v,BSv,v,&cV,U0,e] ^
!   }
    "gcn_can_split_p  (<MODE>mode, operands[0])
     && gcn_can_split_p (<MODE>mode, operands[2])
     && gcn_can_split_p (<MODE>mode, operands[4])"
***************
*** 1792,1808 ****
    })
  
  (define_insn_and_split "add<mode>3_vcc_zext_dup2"
!   [(set (match_operand:V_DI 0 "register_operand"		   "=    v")
  	(plus:V_DI
! 	  (zero_extend:V_DI (match_operand:<VnSI> 1 "gcn_alu_operand" " vA"))
! 	  (vec_duplicate:V_DI (match_operand:DI 2 "gcn_alu_operand" " DbSv"))))
!    (set (match_operand:DI 3 "register_operand"			   "=&SgcV")
  	(ltu:DI (plus:V_DI 
  		  (zero_extend:V_DI (match_dup 1))
  		  (vec_duplicate:V_DI (match_dup 2)))
  		(match_dup 1)))]
    ""
!   "#"
    "gcn_can_split_p (<MODE>mode, operands[0])"
    [(const_int 0)]
    {
--- 1937,1956 ----
    })
  
  (define_insn_and_split "add<mode>3_vcc_zext_dup2"
!   [(set (match_operand:V_DI 0 "register_operand")
  	(plus:V_DI
! 	  (zero_extend:V_DI (match_operand:<VnSI> 1 "gcn_alu_operand"))
! 	  (vec_duplicate:V_DI (match_operand:DI 2 "gcn_alu_operand"))))
!    (set (match_operand:DI 3 "register_operand")
  	(ltu:DI (plus:V_DI 
  		  (zero_extend:V_DI (match_dup 1))
  		  (vec_duplicate:V_DI (match_dup 2)))
  		(match_dup 1)))]
    ""
!   {@ [cons: =0, 1, 2, =3]
!   [v,v,DbSv,&cV] #
!   [v,v,DASv,&Sg] ^
!   }
    "gcn_can_split_p (<MODE>mode, operands[0])"
    [(const_int 0)]
    {
***************
*** 1834,1847 ****
    })
  
  (define_insn_and_split "add<mode>3_vcc_zext_dup2_exec"
!   [(set (match_operand:V_DI 0 "register_operand"		    "=    v")
  	(vec_merge:V_DI
  	  (plus:V_DI
! 	    (zero_extend:V_DI (match_operand:<VnSI> 1 "gcn_alu_operand" "vA"))
! 	    (vec_duplicate:V_DI (match_operand:DI 2 "gcn_alu_operand"  "BSv")))
! 	  (match_operand:V_DI 4 "gcn_register_or_unspec_operand"    "    U0")
! 	  (match_operand:DI 5 "gcn_exec_reg_operand"		    "     e")))
!    (set (match_operand:DI 3 "register_operand"			    "=&SgcV")
  	(and:DI
  	  (ltu:DI (plus:V_DI 
  		    (zero_extend:V_DI (match_dup 1))
--- 1982,1995 ----
    })
  
  (define_insn_and_split "add<mode>3_vcc_zext_dup2_exec"
!   [(set (match_operand:V_DI 0 "register_operand")
  	(vec_merge:V_DI
  	  (plus:V_DI
! 	    (zero_extend:V_DI (match_operand:<VnSI> 1 "gcn_alu_operand"))
! 	    (vec_duplicate:V_DI (match_operand:DI 2 "gcn_alu_operand")))
! 	  (match_operand:V_DI 4 "gcn_register_or_unspec_operand")
! 	  (match_operand:DI 5 "gcn_exec_reg_operand")))
!    (set (match_operand:DI 3 "register_operand")
  	(and:DI
  	  (ltu:DI (plus:V_DI 
  		    (zero_extend:V_DI (match_dup 1))
***************
*** 1849,1855 ****
  		  (match_dup 1))
  	  (match_dup 5)))]
    ""
!   "#"
    "gcn_can_split_p  (<MODE>mode, operands[0])
     && gcn_can_split_p (<MODE>mode, operands[4])"
    [(const_int 0)]
--- 1997,2006 ----
  		  (match_dup 1))
  	  (match_dup 5)))]
    ""
!   {@ [cons: =0, 1, 2, =3, 4, 5]
!   [v,v,ASv,&Sg,U0,e] #
!   [v,v,BSv,&cV,U0,e] ^
!   }
    "gcn_can_split_p  (<MODE>mode, operands[0])
     && gcn_can_split_p (<MODE>mode, operands[4])"
    [(const_int 0)]
***************
*** 3405,3434 ****
  ;; }}}
  ;; {{{ Int/int conversions
  
  (define_code_iterator zero_convert [truncate zero_extend])
  (define_code_attr convop [
  	(sign_extend "extend")
  	(zero_extend "zero_extend")
  	(truncate "trunc")])
  
! (define_insn "<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>"
    [(set (match_operand:V_INT_1REG 0 "register_operand"      "=v")
          (zero_convert:V_INT_1REG
  	  (match_operand:V_INT_1REG_ALT 1 "gcn_alu_operand" " v")))]
!   ""
    "v_mov_b32_sdwa\t%0, %1 dst_sel:<V_INT_1REG:sdwa> dst_unused:UNUSED_PAD src0_sel:<V_INT_1REG_ALT:sdwa>"
    [(set_attr "type" "vop_sdwa")
     (set_attr "length" "8")])
  
! (define_insn "extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>"
    [(set (match_operand:V_INT_1REG 0 "register_operand"	    "=v")
          (sign_extend:V_INT_1REG
  	  (match_operand:V_INT_1REG_ALT 1 "gcn_alu_operand" " v")))]
!   ""
    "v_mov_b32_sdwa\t%0, sext(%1) src0_sel:<V_INT_1REG_ALT:sdwa>"
    [(set_attr "type" "vop_sdwa")
     (set_attr "length" "8")])
  
  ;; GCC can already do these for scalar types, but not for vector types.
  ;; Unfortunately you can't just do SUBREG on a vector to select the low part,
  ;; so there must be a few tricks here.
--- 3556,3618 ----
  ;; }}}
  ;; {{{ Int/int conversions
  
+ (define_code_iterator all_convert [truncate zero_extend sign_extend])
  (define_code_iterator zero_convert [truncate zero_extend])
  (define_code_attr convop [
  	(sign_extend "extend")
  	(zero_extend "zero_extend")
  	(truncate "trunc")])
  
! (define_expand "<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>"
!   [(set (match_operand:V_INT_1REG 0 "register_operand"      "=v")
!         (all_convert:V_INT_1REG
! 	  (match_operand:V_INT_1REG_ALT 1 "gcn_alu_operand" " v")))]
!   "")
! 
! (define_insn "*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>"
    [(set (match_operand:V_INT_1REG 0 "register_operand"      "=v")
          (zero_convert:V_INT_1REG
  	  (match_operand:V_INT_1REG_ALT 1 "gcn_alu_operand" " v")))]
!   "!TARGET_RDNA3"
    "v_mov_b32_sdwa\t%0, %1 dst_sel:<V_INT_1REG:sdwa> dst_unused:UNUSED_PAD src0_sel:<V_INT_1REG_ALT:sdwa>"
    [(set_attr "type" "vop_sdwa")
     (set_attr "length" "8")])
  
! (define_insn "extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>"
    [(set (match_operand:V_INT_1REG 0 "register_operand"	    "=v")
          (sign_extend:V_INT_1REG
  	  (match_operand:V_INT_1REG_ALT 1 "gcn_alu_operand" " v")))]
!   "!TARGET_RDNA3"
    "v_mov_b32_sdwa\t%0, sext(%1) src0_sel:<V_INT_1REG_ALT:sdwa>"
    [(set_attr "type" "vop_sdwa")
     (set_attr "length" "8")])
  
+ (define_insn "*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>"
+   [(set (match_operand:V_INT_1REG 0 "register_operand"      "=v")
+         (all_convert:V_INT_1REG
+ 	  (match_operand:V_INT_1REG_ALT 1 "gcn_alu_operand" " v")))]
+   "TARGET_RDNA3"
+   {
+     enum {extend, zero_extend, trunc};
+     rtx shiftwidth = (<V_INT_1REG_ALT:SCALAR_MODE>mode == QImode
+ 		      || <V_INT_1REG:SCALAR_MODE>mode == QImode
+ 		      ? GEN_INT (24)
+ 		      : <V_INT_1REG_ALT:SCALAR_MODE>mode == HImode
+ 		        || <V_INT_1REG:SCALAR_MODE>mode == HImode
+ 		      ? GEN_INT (16)
+ 		      : NULL);
+     operands[2] = shiftwidth;
+ 
+     if (!shiftwidth)
+       return "v_mov_b32 %0, %1";
+     else if (<convop> == extend || <convop> == trunc)
+       return "v_lshlrev_b32\t%0, %2, %1\;v_ashrrev_i32\t%0, %2, %0";
+     else
+       return "v_lshlrev_b32\t%0, %2, %1\;v_lshrrev_b32\t%0, %2, %0";
+   }
+   [(set_attr "type" "mult")
+    (set_attr "length" "8")])
+ 
  ;; GCC can already do these for scalar types, but not for vector types.
  ;; Unfortunately you can't just do SUBREG on a vector to select the low part,
  ;; so there must be a few tricks here.
***************
*** 3540,3550 ****
  ;; {{{ Vector comparison/merge
  
  (define_insn "vec_cmp<mode>di"
!   [(set (match_operand:DI 0 "register_operand"	      "=cV,cV,  e, e,Sg,Sg")
  	(match_operator:DI 1 "gcn_fp_compare_operator"
! 	  [(match_operand:V_noQI 2 "gcn_alu_operand"  "vSv, B,vSv, B, v,vA")
! 	   (match_operand:V_noQI 3 "gcn_vop3_operand" "  v, v,  v, v,vA, v")]))
!    (clobber (match_scratch:DI 4			      "= X, X, cV,cV, X, X"))]
    ""
    "@
     v_cmp%E1\tvcc, %2, %3
--- 3724,3734 ----
  ;; {{{ Vector comparison/merge
  
  (define_insn "vec_cmp<mode>di"
!   [(set (match_operand:DI 0 "register_operand"	      "=cV,cV,  e, e,Sg,Sg,  e, e")
  	(match_operator:DI 1 "gcn_fp_compare_operator"
! 	  [(match_operand:V_noQI 2 "gcn_alu_operand"  "vSv, B,vSv, B, v,vA,vSv, B")
! 	   (match_operand:V_noQI 3 "gcn_vop3_operand" "  v, v,  v, v,vA, v,  v, v")]))
!    (clobber (match_scratch:DI 4			      "= X, X, cV,cV, X, X,  X, X"))]
    ""
    "@
     v_cmp%E1\tvcc, %2, %3
***************
*** 3552,3560 ****
     v_cmpx%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
     v_cmp%E1\t%0, %2, %3
!    v_cmp%E1\t%0, %2, %3"
!   [(set_attr "type" "vopc,vopc,vopc,vopc,vop3a,vop3a")
!    (set_attr "length" "4,8,4,8,8,8")])
  
  (define_expand "vec_cmpu<mode>di"
    [(match_operand:DI 0 "register_operand")
--- 3736,3747 ----
     v_cmpx%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
     v_cmp%E1\t%0, %2, %3
!    v_cmp%E1\t%0, %2, %3
!    v_cmpx%E1\t%2, %3
!    v_cmpx%E1\t%2, %3"
!   [(set_attr "type" "vopc,vopc,vopc,vopc,vop3a,vop3a,vopc,vopc")
!    (set_attr "length" "4,8,4,8,8,8,4,8")
!    (set_attr "rdna" "*,*,no,no,*,*,yes,yes")])
  
  (define_expand "vec_cmpu<mode>di"
    [(match_operand:DI 0 "register_operand")
***************
*** 3589,3601 ****
    })
  
  (define_insn "vec_cmp<mode>di_exec"
!   [(set (match_operand:DI 0 "register_operand"	       "=cV,cV,  e, e,Sg,Sg")
  	(and:DI
  	  (match_operator 1 "gcn_fp_compare_operator"
! 	    [(match_operand:V_noQI 2 "gcn_alu_operand" "vSv, B,vSv, B, v,vA")
! 	     (match_operand:V_noQI 3 "gcn_vop3_operand" " v, v,  v, v,vA, v")])
! 	  (match_operand:DI 4 "gcn_exec_reg_operand"   "  e, e,  e, e, e, e")))
!    (clobber (match_scratch:DI 5			       "= X, X, cV,cV, X, X"))]
    ""
    "@
     v_cmp%E1\tvcc, %2, %3
--- 3776,3788 ----
    })
  
  (define_insn "vec_cmp<mode>di_exec"
!   [(set (match_operand:DI 0 "register_operand"	       "=cV,cV,  e, e,Sg,Sg,  e, e")
  	(and:DI
  	  (match_operator 1 "gcn_fp_compare_operator"
! 	    [(match_operand:V_noQI 2 "gcn_alu_operand" "vSv, B,vSv, B, v,vA,vSv, B")
! 	     (match_operand:V_noQI 3 "gcn_vop3_operand" " v, v,  v, v,vA, v,  v, v")])
! 	  (match_operand:DI 4 "gcn_exec_reg_operand"   "  e, e,  e, e, e, e,  e, e")))
!    (clobber (match_scratch:DI 5			       "= X, X, cV,cV, X, X,  X, X"))]
    ""
    "@
     v_cmp%E1\tvcc, %2, %3
***************
*** 3603,3611 ****
     v_cmpx%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
     v_cmp%E1\t%0, %2, %3
!    v_cmp%E1\t%0, %2, %3"
!   [(set_attr "type" "vopc,vopc,vopc,vopc,vop3a,vop3a")
!    (set_attr "length" "4,8,4,8,8,8")])
  
  (define_expand "vec_cmpu<mode>di_exec"
    [(match_operand:DI 0 "register_operand")
--- 3790,3801 ----
     v_cmpx%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
     v_cmp%E1\t%0, %2, %3
!    v_cmp%E1\t%0, %2, %3
!    v_cmpx%E1\t%2, %3
!    v_cmpx%E1\t%2, %3"
!   [(set_attr "type" "vopc,vopc,vopc,vopc,vop3a,vop3a,vopc,vopc")
!    (set_attr "length" "4,8,4,8,8,8,4,8")
!    (set_attr "rdna" "*,*,no,no,*,*,yes,yes")])
  
  (define_expand "vec_cmpu<mode>di_exec"
    [(match_operand:DI 0 "register_operand")
***************
*** 3645,3686 ****
    })
  
  (define_insn "vec_cmp<mode>di_dup"
!   [(set (match_operand:DI 0 "register_operand"		   "=cV,cV, e,e,Sg")
  	(match_operator:DI 1 "gcn_fp_compare_operator"
  	  [(vec_duplicate:V_noQI
  	     (match_operand:<SCALAR_MODE> 2 "gcn_alu_operand"
! 							   " Sv, B,Sv,B, A"))
! 	   (match_operand:V_noQI 3 "gcn_vop3_operand"	   "  v, v, v,v, v")]))
!    (clobber (match_scratch:DI 4				   "= X,X,cV,cV, X"))]
    ""
    "@
     v_cmp%E1\tvcc, %2, %3
     v_cmp%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
!    v_cmp%E1\t%0, %2, %3"
!   [(set_attr "type" "vopc,vopc,vopc,vopc,vop3a")
!    (set_attr "length" "4,8,4,8,8")])
  
  (define_insn "vec_cmp<mode>di_dup_exec"
!   [(set (match_operand:DI 0 "register_operand"		    "=cV,cV, e,e,Sg")
  	(and:DI
  	  (match_operator 1 "gcn_fp_compare_operator"
  	    [(vec_duplicate:V_noQI
  	       (match_operand:<SCALAR_MODE> 2 "gcn_alu_operand"
! 							    " Sv, B,Sv,B, A"))
! 	     (match_operand:V_noQI 3 "gcn_vop3_operand"	    "  v, v, v,v, v")])
! 	  (match_operand:DI 4 "gcn_exec_reg_operand"	    "  e, e, e,e, e")))
!    (clobber (match_scratch:DI 5				    "= X,X,cV,cV, X"))]
    ""
    "@
     v_cmp%E1\tvcc, %2, %3
     v_cmp%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
!    v_cmp%E1\t%0, %2, %3"
!   [(set_attr "type" "vopc,vopc,vopc,vopc,vop3a")
!    (set_attr "length" "4,8,4,8,8")])
  
  (define_expand "vcond_mask_<mode>di"
    [(parallel
--- 3835,3882 ----
    })
  
  (define_insn "vec_cmp<mode>di_dup"
!   [(set (match_operand:DI 0 "register_operand"		   "=cV,cV, e,e,Sg, e,e")
  	(match_operator:DI 1 "gcn_fp_compare_operator"
  	  [(vec_duplicate:V_noQI
  	     (match_operand:<SCALAR_MODE> 2 "gcn_alu_operand"
! 							   " Sv, B,Sv,B, A,Sv,B"))
! 	   (match_operand:V_noQI 3 "gcn_vop3_operand"	   "  v, v, v,v, v, v,v")]))
!    (clobber (match_scratch:DI 4				   "= X,X,cV,cV, X, X,X"))]
    ""
    "@
     v_cmp%E1\tvcc, %2, %3
     v_cmp%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
!    v_cmp%E1\t%0, %2, %3
!    v_cmpx%E1\t%2, %3
!    v_cmpx%E1\t%2, %3"
!   [(set_attr "type" "vopc,vopc,vopc,vopc,vop3a,vopc,vopc")
!    (set_attr "length" "4,8,4,8,8,4,8")
!    (set_attr "rdna" "*,*,no,no,*,yes,yes")])
  
  (define_insn "vec_cmp<mode>di_dup_exec"
!   [(set (match_operand:DI 0 "register_operand"		    "=cV,cV, e,e,Sg, e,e")
  	(and:DI
  	  (match_operator 1 "gcn_fp_compare_operator"
  	    [(vec_duplicate:V_noQI
  	       (match_operand:<SCALAR_MODE> 2 "gcn_alu_operand"
! 							    " Sv, B,Sv,B, A,Sv,B"))
! 	     (match_operand:V_noQI 3 "gcn_vop3_operand"	    "  v, v, v,v, v, v,v")])
! 	  (match_operand:DI 4 "gcn_exec_reg_operand"	    "  e, e, e,e, e, e,e")))
!    (clobber (match_scratch:DI 5				    "= X,X,cV,cV, X, X,X"))]
    ""
    "@
     v_cmp%E1\tvcc, %2, %3
     v_cmp%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
     v_cmpx%E1\tvcc, %2, %3
!    v_cmp%E1\t%0, %2, %3
!    v_cmpx%E1\t%2, %3
!    v_cmpx%E1\t%2, %3"
!   [(set_attr "type" "vopc,vopc,vopc,vopc,vop3a,vopc,vopc")
!    (set_attr "length" "4,8,4,8,8,4,8")
!    (set_attr "rdna" "*,*,no,no,*,yes,yes")])
  
  (define_expand "vcond_mask_<mode>di"
    [(parallel
***************
*** 3804,3811 ****
    })
  
  (define_expand "maskload<mode>di"
!   [(match_operand:V_ALL 0 "register_operand")
!    (match_operand:V_ALL 1 "memory_operand")
     (match_operand 2 "")]
    ""
    {
--- 4000,4007 ----
    })
  
  (define_expand "maskload<mode>di"
!   [(match_operand:V_MOV 0 "register_operand")
!    (match_operand:V_MOV 1 "memory_operand")
     (match_operand 2 "")]
    ""
    {
***************
*** 3824,3831 ****
    })
  
  (define_expand "maskstore<mode>di"
!   [(match_operand:V_ALL 0 "memory_operand")
!    (match_operand:V_ALL 1 "register_operand")
     (match_operand 2 "")]
    ""
    {
--- 4020,4027 ----
    })
  
  (define_expand "maskstore<mode>di"
!   [(match_operand:V_MOV 0 "memory_operand")
!    (match_operand:V_MOV 1 "register_operand")
     (match_operand 2 "")]
    ""
    {
***************
*** 3839,3845 ****
    })
  
  (define_expand "mask_gather_load<mode><vnsi>"
!   [(match_operand:V_ALL 0 "register_operand")
     (match_operand:DI 1 "register_operand")
     (match_operand:<VnSI> 2 "register_operand")
     (match_operand 3 "immediate_operand")
--- 4035,4041 ----
    })
  
  (define_expand "mask_gather_load<mode><vnsi>"
!   [(match_operand:V_MOV 0 "register_operand")
     (match_operand:DI 1 "register_operand")
     (match_operand:<VnSI> 2 "register_operand")
     (match_operand 3 "immediate_operand")
***************
*** 3874,3880 ****
     (match_operand:<VnSI> 1 "register_operand")
     (match_operand 2 "immediate_operand")
     (match_operand:SI 3 "gcn_alu_operand")
!    (match_operand:V_ALL 4 "register_operand")
     (match_operand:DI 5 "")]
    ""
    {
--- 4070,4076 ----
     (match_operand:<VnSI> 1 "register_operand")
     (match_operand 2 "immediate_operand")
     (match_operand:SI 3 "gcn_alu_operand")
!    (match_operand:V_MOV 4 "register_operand")
     (match_operand:DI 5 "")]
    ""
    {
***************
*** 4049,4055 ****
  	(unspec:<SCALAR_MODE>
  	  [(match_operand:V_ALL 1 "register_operand")]
  	  REDUC_UNSPEC))]
!   ""
    {
      rtx tmp = gcn_expand_reduc_scalar (<MODE>mode, operands[1],
  				       <reduc_unspec>);
--- 4245,4251 ----
  	(unspec:<SCALAR_MODE>
  	  [(match_operand:V_ALL 1 "register_operand")]
  	  REDUC_UNSPEC))]
!   "!TARGET_RDNA2_PLUS"
    {
      rtx tmp = gcn_expand_reduc_scalar (<MODE>mode, operands[1],
  				       <reduc_unspec>);
***************
*** 4065,4071 ****
    [(match_operand:<SCALAR_MODE> 0 "register_operand")
     (fminmaxop:V_FP
       (match_operand:V_FP 1 "register_operand"))]
!   ""
    {
      /* fmin/fmax are identical to smin/smax.  */
      emit_insn (gen_reduc_<expander>_scal_<mode> (operands[0], operands[1]));
--- 4261,4267 ----
    [(match_operand:<SCALAR_MODE> 0 "register_operand")
     (fminmaxop:V_FP
       (match_operand:V_FP 1 "register_operand"))]
!   "!TARGET_RDNA2_PLUS"
    {
      /* fmin/fmax are identical to smin/smax.  */
      emit_insn (gen_reduc_<expander>_scal_<mode> (operands[0], operands[1]));
***************
*** 4079,4085 ****
   [(match_operand:<SCALAR_MODE> 0 "register_operand")
    (match_operand:<SCALAR_MODE> 1 "gcn_alu_operand")
    (match_operand:V_FP 2 "gcn_alu_operand")]
!   "can_create_pseudo_p ()
     && (flag_openacc || flag_openmp
         || flag_associative_math)"
    {
--- 4275,4282 ----
   [(match_operand:<SCALAR_MODE> 0 "register_operand")
    (match_operand:<SCALAR_MODE> 1 "gcn_alu_operand")
    (match_operand:V_FP 2 "gcn_alu_operand")]
!   "!TARGET_RDNA2_PLUS
!    && can_create_pseudo_p ()
     && (flag_openacc || flag_openmp
         || flag_associative_math)"
    {
***************
*** 4102,4108 ****
  	  REDUC_UNSPEC))]
    ; GCN3 requires a carry out, GCN5 not
    "!(TARGET_GCN3 && SCALAR_INT_MODE_P (<SCALAR_MODE>mode)
!      && <reduc_unspec> == UNSPEC_PLUS_DPP_SHR)"
    {
      return gcn_expand_dpp_shr_insn (<MODE>mode, "<reduc_insn>",
  				    <reduc_unspec>, INTVAL (operands[3]));
--- 4299,4306 ----
  	  REDUC_UNSPEC))]
    ; GCN3 requires a carry out, GCN5 not
    "!(TARGET_GCN3 && SCALAR_INT_MODE_P (<SCALAR_MODE>mode)
!      && <reduc_unspec> == UNSPEC_PLUS_DPP_SHR)
!    && !TARGET_RDNA2_PLUS"
    {
      return gcn_expand_dpp_shr_insn (<MODE>mode, "<reduc_insn>",
  				    <reduc_unspec>, INTVAL (operands[3]));
***************
*** 4147,4153 ****
  	   (match_operand:SI 3 "const_int_operand"	  "n")]
  	  UNSPEC_PLUS_CARRY_DPP_SHR))
     (clobber (reg:DI VCC_REG))]
!   ""
    {
      return gcn_expand_dpp_shr_insn (<VnSI>mode, "v_add%^_u32",
  				    UNSPEC_PLUS_CARRY_DPP_SHR,
--- 4345,4351 ----
  	   (match_operand:SI 3 "const_int_operand"	  "n")]
  	  UNSPEC_PLUS_CARRY_DPP_SHR))
     (clobber (reg:DI VCC_REG))]
!   "!TARGET_RDNA2_PLUS"
    {
      return gcn_expand_dpp_shr_insn (<VnSI>mode, "v_add%^_u32",
  				    UNSPEC_PLUS_CARRY_DPP_SHR,
***************
*** 4165,4171 ****
  	   (match_operand:DI 4 "register_operand"   "cV")]
  	  UNSPEC_PLUS_CARRY_IN_DPP_SHR))
     (clobber (reg:DI VCC_REG))]
!   ""
    {
      return gcn_expand_dpp_shr_insn (<MODE>mode, "v_addc%^_u32",
  				    UNSPEC_PLUS_CARRY_IN_DPP_SHR,
--- 4363,4369 ----
  	   (match_operand:DI 4 "register_operand"   "cV")]
  	  UNSPEC_PLUS_CARRY_IN_DPP_SHR))
     (clobber (reg:DI VCC_REG))]
!   "!TARGET_RDNA2_PLUS"
    {
      return gcn_expand_dpp_shr_insn (<MODE>mode, "v_addc%^_u32",
  				    UNSPEC_PLUS_CARRY_IN_DPP_SHR,
diff -Nrcpad gcc-13.2.0/gcc/config/gcn/gcn.cc gcc-14.1.0/gcc/config/gcn/gcn.cc
*** gcc-13.2.0/gcc/config/gcn/gcn.cc	Thu Jul 27 08:13:04 2023
--- gcc-14.1.0/gcc/config/gcn/gcn.cc	Tue May  7 06:51:37 2024
***************
*** 1,4 ****
! /* Copyright (C) 2016-2023 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
--- 1,4 ----
! /* Copyright (C) 2016-2024 Free Software Foundation, Inc.
  
     This file is free software; you can redistribute it and/or modify it under
     the terms of the GNU General Public License as published by the Free
*************** static hash_map<tree, int> lds_allocs;
*** 96,101 ****
--- 96,102 ----
  
  #define MAX_NORMAL_SGPR_COUNT	62  // i.e. 64 with VCC
  #define MAX_NORMAL_VGPR_COUNT	24
+ #define MAX_NORMAL_AVGPR_COUNT	24
  
  /* }}}  */
  /* {{{ Initialization and options.  */
*************** gcn_init_machine_status (void)
*** 109,115 ****
  
    f = ggc_cleared_alloc<machine_function> ();
  
!   if (TARGET_GCN3)
      f->use_flat_addressing = true;
  
    return f;
--- 110,117 ----
  
    f = ggc_cleared_alloc<machine_function> ();
  
!   // FIXME: re-enable global addressing with safety for LDS-flat addresses
!   //if (TARGET_GCN3)
      f->use_flat_addressing = true;
  
    return f;
*************** gcn_option_override (void)
*** 136,141 ****
--- 138,148 ----
        : gcn_arch == PROCESSOR_VEGA20 ? ISA_GCN5
        : gcn_arch == PROCESSOR_GFX908 ? ISA_CDNA1
        : gcn_arch == PROCESSOR_GFX90a ? ISA_CDNA2
+       : gcn_arch == PROCESSOR_GFX90c ? ISA_GCN5
+       : gcn_arch == PROCESSOR_GFX1030 ? ISA_RDNA2
+       : gcn_arch == PROCESSOR_GFX1036 ? ISA_RDNA2
+       : gcn_arch == PROCESSOR_GFX1100 ? ISA_RDNA3
+       : gcn_arch == PROCESSOR_GFX1103 ? ISA_RDNA3
        : ISA_UNKNOWN);
    gcc_assert (gcn_isa != ISA_UNKNOWN);
  
*************** gcn_option_override (void)
*** 157,165 ****
  	acc_lds_size = 32768;
      }
  
!   /* The xnack option is a placeholder, for now.  */
!   if (flag_xnack)
!     sorry ("XNACK support");
  }
  
  /* }}}  */
--- 164,211 ----
  	acc_lds_size = 32768;
      }
  
!   /* gfx803 "Fiji", gfx1030 and gfx1100 do not support XNACK.  */
!   if (gcn_arch == PROCESSOR_FIJI
!       || gcn_arch == PROCESSOR_GFX1030
!       || gcn_arch == PROCESSOR_GFX1036
!       || gcn_arch == PROCESSOR_GFX1100
!       || gcn_arch == PROCESSOR_GFX1103)
!     {
!       if (flag_xnack == HSACO_ATTR_ON)
! 	error ("%<-mxnack=on%> is incompatible with %<-march=%s%>",
! 	       (gcn_arch == PROCESSOR_FIJI ? "fiji"
! 		: gcn_arch == PROCESSOR_GFX1030 ? "gfx1030"
! 		: gcn_arch == PROCESSOR_GFX1036 ? "gfx1036"
! 		: gcn_arch == PROCESSOR_GFX1100 ? "gfx1100"
! 		: gcn_arch == PROCESSOR_GFX1103 ? "gfx1103"
! 		: NULL));
!       /* Allow HSACO_ATTR_ANY silently because that's the default.  */
!       flag_xnack = HSACO_ATTR_OFF;
!     }
! 
!   /* There's no need for XNACK on devices without USM, and there are register
!      allocation problems caused by the early-clobber when AVGPR spills are not
!      available.
!      FIXME: can the regalloc mean the default can be really "any"?  */
!   if (flag_xnack == HSACO_ATTR_DEFAULT)
!     switch (gcn_arch)
!       {
!       case PROCESSOR_FIJI:
!       case PROCESSOR_VEGA10:
!       case PROCESSOR_VEGA20:
!       case PROCESSOR_GFX908:
! 	flag_xnack = HSACO_ATTR_OFF;
! 	break;
!       case PROCESSOR_GFX90a:
!       case PROCESSOR_GFX90c:
! 	flag_xnack = HSACO_ATTR_ANY;
! 	break;
!       default:
! 	gcc_unreachable ();
!       }
! 
!   if (flag_sram_ecc == HSACO_ATTR_DEFAULT)
!     flag_sram_ecc = HSACO_ATTR_ANY;
  }
  
  /* }}}  */
*************** gcn_handle_amdgpu_hsa_kernel_attribute (
*** 354,367 ****
   
     Create target-specific __attribute__ types.  */
  
! static const struct attribute_spec gcn_attribute_table[] = {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
       affects_type_identity } */
    {"amdgpu_hsa_kernel", 0, GCN_KERNEL_ARG_TYPES, false, true,
!    true, true, gcn_handle_amdgpu_hsa_kernel_attribute, NULL},
!   /* End element.  */
!   {NULL, 0, 0, false, false, false, false, NULL, NULL}
! };
  
  /* }}}  */
  /* {{{ Registers and modes.  */
--- 400,411 ----
   
     Create target-specific __attribute__ types.  */
  
! TARGET_GNU_ATTRIBUTES (gcn_attribute_table, {
    /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
       affects_type_identity } */
    {"amdgpu_hsa_kernel", 0, GCN_KERNEL_ARG_TYPES, false, true,
!    true, true, gcn_handle_amdgpu_hsa_kernel_attribute, NULL}
! });
  
  /* }}}  */
  /* {{{ Registers and modes.  */
*************** gcn_class_max_nregs (reg_class_t rclass,
*** 480,493 ****
  {
    /* Scalar registers are 32bit, vector registers are in fact tuples of
       64 lanes.  */
!   if (rclass == VGPR_REGS)
      {
        if (vgpr_1reg_mode_p (mode))
  	return 1;
        if (vgpr_2reg_mode_p (mode))
  	return 2;
        /* TImode is used by DImode compare_and_swap.  */
!       if (mode == TImode)
  	return 4;
      }
    else if (rclass == VCC_CONDITIONAL_REG && mode == BImode)
--- 524,538 ----
  {
    /* Scalar registers are 32bit, vector registers are in fact tuples of
       64 lanes.  */
!   if (rclass == VGPR_REGS || rclass == AVGPR_REGS
!       || rclass == ALL_VGPR_REGS)
      {
        if (vgpr_1reg_mode_p (mode))
  	return 1;
        if (vgpr_2reg_mode_p (mode))
  	return 2;
        /* TImode is used by DImode compare_and_swap.  */
!       if (vgpr_4reg_mode_p (mode))
  	return 4;
      }
    else if (rclass == VCC_CONDITIONAL_REG && mode == BImode)
*************** gcn_hard_regno_mode_ok (unsigned int reg
*** 580,586 ****
      return (sgpr_1reg_mode_p (mode)
  	    || (!((regno - FIRST_SGPR_REG) & 1) && sgpr_2reg_mode_p (mode))
  	    || (((regno - FIRST_SGPR_REG) & 3) == 0 && mode == TImode));
!   if (VGPR_REGNO_P (regno))
      /* Vector instructions do not care about the alignment of register
         pairs, but where there is no 64-bit instruction, many of the
         define_split do not work if the input and output registers partially
--- 625,631 ----
      return (sgpr_1reg_mode_p (mode)
  	    || (!((regno - FIRST_SGPR_REG) & 1) && sgpr_2reg_mode_p (mode))
  	    || (((regno - FIRST_SGPR_REG) & 3) == 0 && mode == TImode));
!   if (VGPR_REGNO_P (regno) || (AVGPR_REGNO_P (regno) && TARGET_CDNA1_PLUS))
      /* Vector instructions do not care about the alignment of register
         pairs, but where there is no 64-bit instruction, many of the
         define_split do not work if the input and output registers partially
*************** gcn_hard_regno_mode_ok (unsigned int reg
*** 590,598 ****
         Therefore, we restrict ourselved to aligned registers.  */
      return (vgpr_1reg_mode_p (mode)
  	    || (!((regno - FIRST_VGPR_REG) & 1) && vgpr_2reg_mode_p (mode))
! 	    /* TImode is used by DImode compare_and_swap.  */
! 	    || (mode == TImode
! 		&& !((regno - FIRST_VGPR_REG) & 3)));
    return false;
  }
  
--- 635,643 ----
         Therefore, we restrict ourselved to aligned registers.  */
      return (vgpr_1reg_mode_p (mode)
  	    || (!((regno - FIRST_VGPR_REG) & 1) && vgpr_2reg_mode_p (mode))
! 	    /* TImode is used by DImode compare_and_swap,
! 	       and by DIVMOD V64DImode libfuncs.  */
! 	    || (!((regno - FIRST_VGPR_REG) & 3) && vgpr_4reg_mode_p (mode)));
    return false;
  }
  
*************** gcn_regno_reg_class (int regno)
*** 620,625 ****
--- 665,672 ----
      }
    if (VGPR_REGNO_P (regno))
      return VGPR_REGS;
+   if (AVGPR_REGNO_P (regno))
+     return AVGPR_REGS;
    if (SGPR_REGNO_P (regno))
      return SGPR_REGS;
    if (regno < FIRST_VGPR_REG)
*************** gcn_spill_class (reg_class_t c, machine_
*** 810,816 ****
        || c == VCC_CONDITIONAL_REG || c == EXEC_MASK_REG)
      return SGPR_REGS;
    else
!     return NO_REGS;
  }
  
  /* Implement TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS.
--- 857,863 ----
        || c == VCC_CONDITIONAL_REG || c == EXEC_MASK_REG)
      return SGPR_REGS;
    else
!     return c == VGPR_REGS && TARGET_CDNA1_PLUS ? AVGPR_REGS : NO_REGS;
  }
  
  /* Implement TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS.
*************** GEN_VN (PREFIX, si##SUFFIX, A(PARAMS), A
*** 1324,1329 ****
--- 1371,1377 ----
  GEN_VN (PREFIX, sf##SUFFIX, A(PARAMS), A(ARGS)) \
  GEN_VN (PREFIX, di##SUFFIX, A(PARAMS), A(ARGS)) \
  GEN_VN (PREFIX, df##SUFFIX, A(PARAMS), A(ARGS)) \
+ USE_TI (GEN_VN (PREFIX, ti##SUFFIX, A(PARAMS), A(ARGS))) \
  static rtx \
  gen_##PREFIX##vNm##SUFFIX (PARAMS, rtx merge_src=NULL, rtx exec=NULL) \
  { \
*************** gen_##PREFIX##vNm##SUFFIX (PARAMS, rtx m
*** 1338,1343 ****
--- 1386,1393 ----
      case E_SFmode: return gen_##PREFIX##vNsf##SUFFIX (ARGS, merge_src, exec); \
      case E_DImode: return gen_##PREFIX##vNdi##SUFFIX (ARGS, merge_src, exec); \
      case E_DFmode: return gen_##PREFIX##vNdf##SUFFIX (ARGS, merge_src, exec); \
+     case E_TImode: \
+ 	USE_TI (return gen_##PREFIX##vNti##SUFFIX (ARGS, merge_src, exec);) \
      default: \
        break; \
      } \
*************** gen_##PREFIX##vNm##SUFFIX (PARAMS, rtx m
*** 1346,1351 ****
--- 1396,1409 ----
    return NULL_RTX; \
  }
  
+ /* These have TImode support.  */
+ #define USE_TI(ARGS) ARGS
+ GEN_VNM (mov,, A(rtx dest, rtx src), A(dest, src))
+ GEN_VNM (vec_duplicate,, A(rtx dest, rtx src), A(dest, src))
+ 
+ /* These do not have TImode support.  */
+ #undef USE_TI
+ #define USE_TI(ARGS)
  GEN_VNM (add,3, A(rtx dest, rtx src1, rtx src2), A(dest, src1, src2))
  GEN_VN (add,si3_dup, A(rtx dest, rtx src1, rtx src2), A(dest, src1, src2))
  GEN_VN (add,si3_vcc_dup, A(rtx dest, rtx src1, rtx src2, rtx vcc),
*************** GEN_VNM_NOEXEC (ds_bpermute,, A(rtx dest
*** 1364,1436 ****
  		A(dest, addr, src, exec))
  GEN_VNM (gather,_expr, A(rtx dest, rtx addr, rtx as, rtx vol),
  	 A(dest, addr, as, vol))
- GEN_VNM (mov,, A(rtx dest, rtx src), A(dest, src))
  GEN_VN (mul,si3_dup, A(rtx dest, rtx src1, rtx src2), A(dest, src1, src2))
  GEN_VN (sub,si3, A(rtx dest, rtx src1, rtx src2), A(dest, src1, src2))
- GEN_VNM (vec_duplicate,, A(rtx dest, rtx src), A(dest, src))
  GEN_VN_NOEXEC (vec_series,si, A(rtx dest, rtx x, rtx c), A(dest, x, c))
  
  #undef GEN_VNM
  #undef GEN_VN
  #undef GET_VN_FN
  #undef A
  
- /* Get icode for vector instructions without an optab.  */
- 
- #define CODE_FOR(PREFIX, SUFFIX) \
- static int \
- get_code_for_##PREFIX##vN##SUFFIX (int nunits) \
- { \
-   switch (nunits) \
-     { \
-     case 2: return CODE_FOR_##PREFIX##v2##SUFFIX; \
-     case 4: return CODE_FOR_##PREFIX##v4##SUFFIX; \
-     case 8: return CODE_FOR_##PREFIX##v8##SUFFIX; \
-     case 16: return CODE_FOR_##PREFIX##v16##SUFFIX; \
-     case 32: return CODE_FOR_##PREFIX##v32##SUFFIX; \
-     case 64: return CODE_FOR_##PREFIX##v64##SUFFIX; \
-     } \
-   \
-   gcc_unreachable (); \
-   return CODE_FOR_nothing; \
- }
- 
- #define CODE_FOR_OP(PREFIX) \
- 	  CODE_FOR (PREFIX, qi) \
- 	CODE_FOR (PREFIX, hi) \
- 	CODE_FOR (PREFIX, hf) \
- 	CODE_FOR (PREFIX, si) \
- 	CODE_FOR (PREFIX, sf) \
- 	CODE_FOR (PREFIX, di) \
- 	CODE_FOR (PREFIX, df) \
- static int \
- get_code_for_##PREFIX (machine_mode mode) \
- { \
-   int vf = GET_MODE_NUNITS (mode); \
-   machine_mode smode = GET_MODE_INNER (mode); \
-   \
-   switch (smode) \
-     { \
-     case E_QImode: return get_code_for_##PREFIX##vNqi (vf); \
-     case E_HImode: return get_code_for_##PREFIX##vNhi (vf); \
-     case E_HFmode: return get_code_for_##PREFIX##vNhf (vf); \
-     case E_SImode: return get_code_for_##PREFIX##vNsi (vf); \
-     case E_SFmode: return get_code_for_##PREFIX##vNsf (vf); \
-     case E_DImode: return get_code_for_##PREFIX##vNdi (vf); \
-     case E_DFmode: return get_code_for_##PREFIX##vNdf (vf); \
-     default: break; \
-     } \
-   \
-   gcc_unreachable (); \
-   return CODE_FOR_nothing; \
- }
- 
- CODE_FOR_OP (reload_in)
- CODE_FOR_OP (reload_out)
- 
- #undef CODE_FOR_OP
- #undef CODE_FOR
- 
  /* Return true if OP is a PARALLEL of CONST_INTs that form a linear
     series with step STEP.  */
  
--- 1422,1437 ----
  		A(dest, addr, src, exec))
  GEN_VNM (gather,_expr, A(rtx dest, rtx addr, rtx as, rtx vol),
  	 A(dest, addr, as, vol))
  GEN_VN (mul,si3_dup, A(rtx dest, rtx src1, rtx src2), A(dest, src1, src2))
  GEN_VN (sub,si3, A(rtx dest, rtx src1, rtx src2), A(dest, src1, src2))
  GEN_VN_NOEXEC (vec_series,si, A(rtx dest, rtx x, rtx c), A(dest, x, c))
  
+ #undef USE_TI
  #undef GEN_VNM
  #undef GEN_VN
  #undef GET_VN_FN
  #undef A
  
  /* Return true if OP is a PARALLEL of CONST_INTs that form a linear
     series with step STEP.  */
  
*************** gcn_global_address_p (rtx addr)
*** 1602,1610 ****
      {
        rtx base = XEXP (addr, 0);
        rtx offset = XEXP (addr, 1);
        bool immediate_p = (CONST_INT_P (offset)
! 			  && INTVAL (offset) >= -(1 << 12)
! 			  && INTVAL (offset) < (1 << 12));
  
        if ((gcn_address_register_p (base, DImode, false)
  	   || gcn_vec_address_register_p (base, DImode, false))
--- 1603,1612 ----
      {
        rtx base = XEXP (addr, 0);
        rtx offset = XEXP (addr, 1);
+       int offsetbits = (TARGET_RDNA2_PLUS ? 11 : 12);
        bool immediate_p = (CONST_INT_P (offset)
! 			  && INTVAL (offset) >= -(1 << offsetbits)
! 			  && INTVAL (offset) < (1 << offsetbits));
  
        if ((gcn_address_register_p (base, DImode, false)
  	   || gcn_vec_address_register_p (base, DImode, false))
*************** gcn_global_address_p (rtx addr)
*** 1640,1646 ****
  
  static bool
  gcn_addr_space_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 				     addr_space_t as)
  {
    /* All vector instructions need to work on addresses in registers.  */
    if (!TARGET_GCN5_PLUS && (vgpr_vector_mode_p (mode) && !REG_P (x)))
--- 1642,1648 ----
  
  static bool
  gcn_addr_space_legitimate_address_p (machine_mode mode, rtx x, bool strict,
! 				     addr_space_t as, code_helper = ERROR_MARK)
  {
    /* All vector instructions need to work on addresses in registers.  */
    if (!TARGET_GCN5_PLUS && (vgpr_vector_mode_p (mode) && !REG_P (x)))
*************** gcn_addr_space_legitimate_address_p (mac
*** 1734,1743 ****
  	  rtx base = XEXP (x, 0);
  	  rtx offset = XEXP (x, 1);
  
  	  bool immediate_p = (GET_CODE (offset) == CONST_INT
! 			      /* Signed 13-bit immediate.  */
! 			      && INTVAL (offset) >= -(1 << 12)
! 			      && INTVAL (offset) < (1 << 12)
  			      /* The low bits of the offset are ignored, even
  			         when they're meant to realign the pointer.  */
  			      && !(INTVAL (offset) & 0x3));
--- 1736,1746 ----
  	  rtx base = XEXP (x, 0);
  	  rtx offset = XEXP (x, 1);
  
+ 	  int offsetbits = (TARGET_RDNA2_PLUS ? 11 : 12);
  	  bool immediate_p = (GET_CODE (offset) == CONST_INT
! 			      /* Signed 12/13-bit immediate.  */
! 			      && INTVAL (offset) >= -(1 << offsetbits)
! 			      && INTVAL (offset) < (1 << offsetbits)
  			      /* The low bits of the offset are ignored, even
  			         when they're meant to realign the pointer.  */
  			      && !(INTVAL (offset) & 0x3));
*************** gcn_sgpr_move_p (rtx op0, rtx op1)
*** 2389,2400 ****
      return true;
    if (MEM_P (op1) && AS_SCALAR_FLAT_P (MEM_ADDR_SPACE (op1)))
      return true;
!   if (!REG_P (op0) || REGNO (op0) >= FIRST_PSEUDO_REGISTER
!       || VGPR_REGNO_P (REGNO (op0)))
      return false;
    if (REG_P (op1)
        && REGNO (op1) < FIRST_PSEUDO_REGISTER
!       && !VGPR_REGNO_P (REGNO (op1)))
      return true;
    return immediate_operand (op1, VOIDmode) || memory_operand (op1, VOIDmode);
  }
--- 2392,2406 ----
      return true;
    if (MEM_P (op1) && AS_SCALAR_FLAT_P (MEM_ADDR_SPACE (op1)))
      return true;
!   if (!REG_P (op0)
!       || REGNO (op0) >= FIRST_PSEUDO_REGISTER
!       || VGPR_REGNO_P (REGNO (op0))
!       || AVGPR_REGNO_P (REGNO (op0)))
      return false;
    if (REG_P (op1)
        && REGNO (op1) < FIRST_PSEUDO_REGISTER
!       && !VGPR_REGNO_P (REGNO (op1))
!       && !AVGPR_REGNO_P (REGNO (op1)))
      return true;
    return immediate_operand (op1, VOIDmode) || memory_operand (op1, VOIDmode);
  }
*************** gcn_secondary_reload (bool in_p, rtx x,
*** 2455,2464 ****
  	  if (GET_MODE_CLASS (reload_mode) == MODE_VECTOR_INT
  	      || GET_MODE_CLASS (reload_mode) == MODE_VECTOR_FLOAT)
  	    {
! 	      if (in_p)
! 		sri->icode = get_code_for_reload_in (reload_mode);
! 	      else
! 		sri->icode = get_code_for_reload_out (reload_mode);
  	      break;
  	    }
  	  /* Fallthrough.  */
--- 2461,2467 ----
  	  if (GET_MODE_CLASS (reload_mode) == MODE_VECTOR_INT
  	      || GET_MODE_CLASS (reload_mode) == MODE_VECTOR_FLOAT)
  	    {
! 	      sri->icode = code_for_mov_sgprbase (reload_mode);
  	      break;
  	    }
  	  /* Fallthrough.  */
*************** gcn_secondary_reload (bool in_p, rtx x,
*** 2468,2473 ****
--- 2471,2481 ----
  	  result = (rclass == VGPR_REGS ? NO_REGS : VGPR_REGS);
  	  break;
  	}
+ 
+       /* CDNA1 doesn't have an instruction for going between the accumulator
+ 	 registers and memory.  Go via a VGPR in this case.  */
+       if (TARGET_CDNA1 && rclass == AVGPR_REGS && result != VGPR_REGS)
+ 	result = VGPR_REGS;
      }
  
    if (dump_file && (dump_flags & TDF_DETAILS))
*************** gcn_conditional_register_usage (void)
*** 2489,2495 ****
  
    if (cfun->machine->normal_function)
      {
!       /* Restrict the set of SGPRs and VGPRs used by non-kernel functions.  */
        for (int i = SGPR_REGNO (MAX_NORMAL_SGPR_COUNT);
  	   i <= LAST_SGPR_REG; i++)
  	fixed_regs[i] = 1, call_used_regs[i] = 1;
--- 2497,2504 ----
  
    if (cfun->machine->normal_function)
      {
!       /* Restrict the set of SGPRs, VGPRs and AVGPRs used by non-kernel
! 	 functions.  */
        for (int i = SGPR_REGNO (MAX_NORMAL_SGPR_COUNT);
  	   i <= LAST_SGPR_REG; i++)
  	fixed_regs[i] = 1, call_used_regs[i] = 1;
*************** gcn_conditional_register_usage (void)
*** 2498,2503 ****
--- 2507,2515 ----
  	   i <= LAST_VGPR_REG; i++)
  	fixed_regs[i] = 1, call_used_regs[i] = 1;
  
+       for (int i = AVGPR_REGNO (MAX_NORMAL_AVGPR_COUNT);
+ 	   i <= LAST_AVGPR_REG; i++)
+ 	fixed_regs[i] = 1, call_used_regs[i] = 1;
        return;
      }
  
*************** gcn_conditional_register_usage (void)
*** 2551,2556 ****
--- 2563,2578 ----
      fixed_regs[cfun->machine->args.reg[WORK_ITEM_ID_Z_ARG]] = 1;
  }
  
+ static bool
+ gcn_vgpr_equivalent_register_operand (rtx x, machine_mode mode)
+ {
+   if (gcn_vgpr_register_operand (x, mode))
+     return true;
+   if (TARGET_CDNA2_PLUS && gcn_avgpr_register_operand (x, mode))
+     return true;
+   return false;
+ }
+ 
  /* Determine if a load or store is valid, according to the register classes
     and address space.  Used primarily by the machine description to decide
     when to split a move into two steps.  */
*************** bool
*** 2559,2579 ****
  gcn_valid_move_p (machine_mode mode, rtx dest, rtx src)
  {
    if (!MEM_P (dest) && !MEM_P (src))
!     return true;
  
    if (MEM_P (dest)
        && AS_FLAT_P (MEM_ADDR_SPACE (dest))
        && (gcn_flat_address_p (XEXP (dest, 0), mode)
  	  || GET_CODE (XEXP (dest, 0)) == SYMBOL_REF
  	  || GET_CODE (XEXP (dest, 0)) == LABEL_REF)
!       && gcn_vgpr_register_operand (src, mode))
      return true;
    else if (MEM_P (src)
  	   && AS_FLAT_P (MEM_ADDR_SPACE (src))
  	   && (gcn_flat_address_p (XEXP (src, 0), mode)
  	       || GET_CODE (XEXP (src, 0)) == SYMBOL_REF
  	       || GET_CODE (XEXP (src, 0)) == LABEL_REF)
! 	   && gcn_vgpr_register_operand (dest, mode))
      return true;
  
    if (MEM_P (dest)
--- 2581,2616 ----
  gcn_valid_move_p (machine_mode mode, rtx dest, rtx src)
  {
    if (!MEM_P (dest) && !MEM_P (src))
!     {
!       if (gcn_vgpr_register_operand (src, mode)
! 	  && gcn_avgpr_register_operand (dest, mode))
! 	return true;
!       if (gcn_avgpr_register_operand (src, mode)
! 	  && gcn_vgpr_register_operand (dest, mode))
! 	return true;
!       if (TARGET_CDNA2_PLUS
! 	  && gcn_avgpr_register_operand (src, mode)
! 	  && gcn_avgpr_register_operand (dest, mode))
! 	return true;
!       if (gcn_avgpr_hard_register_operand (src, mode)
! 	  || gcn_avgpr_hard_register_operand (dest, mode))
! 	return false;
!       return true;
!     }
  
    if (MEM_P (dest)
        && AS_FLAT_P (MEM_ADDR_SPACE (dest))
        && (gcn_flat_address_p (XEXP (dest, 0), mode)
  	  || GET_CODE (XEXP (dest, 0)) == SYMBOL_REF
  	  || GET_CODE (XEXP (dest, 0)) == LABEL_REF)
!       && gcn_vgpr_equivalent_register_operand (src, mode))
      return true;
    else if (MEM_P (src)
  	   && AS_FLAT_P (MEM_ADDR_SPACE (src))
  	   && (gcn_flat_address_p (XEXP (src, 0), mode)
  	       || GET_CODE (XEXP (src, 0)) == SYMBOL_REF
  	       || GET_CODE (XEXP (src, 0)) == LABEL_REF)
! 	   && gcn_vgpr_equivalent_register_operand (dest, mode))
      return true;
  
    if (MEM_P (dest)
*************** gcn_valid_move_p (machine_mode mode, rtx
*** 2581,2594 ****
        && (gcn_global_address_p (XEXP (dest, 0))
  	  || GET_CODE (XEXP (dest, 0)) == SYMBOL_REF
  	  || GET_CODE (XEXP (dest, 0)) == LABEL_REF)
!       && gcn_vgpr_register_operand (src, mode))
      return true;
    else if (MEM_P (src)
  	   && AS_GLOBAL_P (MEM_ADDR_SPACE (src))
  	   && (gcn_global_address_p (XEXP (src, 0))
  	       || GET_CODE (XEXP (src, 0)) == SYMBOL_REF
  	       || GET_CODE (XEXP (src, 0)) == LABEL_REF)
! 	   && gcn_vgpr_register_operand (dest, mode))
      return true;
  
    if (MEM_P (dest)
--- 2618,2631 ----
        && (gcn_global_address_p (XEXP (dest, 0))
  	  || GET_CODE (XEXP (dest, 0)) == SYMBOL_REF
  	  || GET_CODE (XEXP (dest, 0)) == LABEL_REF)
!       && gcn_vgpr_equivalent_register_operand (src, mode))
      return true;
    else if (MEM_P (src)
  	   && AS_GLOBAL_P (MEM_ADDR_SPACE (src))
  	   && (gcn_global_address_p (XEXP (src, 0))
  	       || GET_CODE (XEXP (src, 0)) == SYMBOL_REF
  	       || GET_CODE (XEXP (src, 0)) == LABEL_REF)
! 	   && gcn_vgpr_equivalent_register_operand (dest, mode))
      return true;
  
    if (MEM_P (dest)
*************** gcn_valid_move_p (machine_mode mode, rtx
*** 2609,2620 ****
    if (MEM_P (dest)
        && AS_ANY_DS_P (MEM_ADDR_SPACE (dest))
        && gcn_ds_address_p (XEXP (dest, 0))
!       && gcn_vgpr_register_operand (src, mode))
      return true;
    else if (MEM_P (src)
  	   && AS_ANY_DS_P (MEM_ADDR_SPACE (src))
  	   && gcn_ds_address_p (XEXP (src, 0))
! 	   && gcn_vgpr_register_operand (dest, mode))
      return true;
  
    return false;
--- 2646,2657 ----
    if (MEM_P (dest)
        && AS_ANY_DS_P (MEM_ADDR_SPACE (dest))
        && gcn_ds_address_p (XEXP (dest, 0))
!       && gcn_vgpr_equivalent_register_operand (src, mode))
      return true;
    else if (MEM_P (src)
  	   && AS_ANY_DS_P (MEM_ADDR_SPACE (src))
  	   && gcn_ds_address_p (XEXP (src, 0))
! 	   && gcn_vgpr_equivalent_register_operand (dest, mode))
      return true;
  
    return false;
*************** gcn_omp_device_kind_arch_isa (enum omp_d
*** 3015,3020 ****
--- 3052,3067 ----
  	return gcn_arch == PROCESSOR_GFX908;
        if (strcmp (name, "gfx90a") == 0)
  	return gcn_arch == PROCESSOR_GFX90a;
+       if (strcmp (name, "gfx90c") == 0)
+ 	return gcn_arch == PROCESSOR_GFX90c;
+       if (strcmp (name, "gfx1030") == 0)
+ 	return gcn_arch == PROCESSOR_GFX1030;
+       if (strcmp (name, "gfx1036") == 0)
+ 	return gcn_arch == PROCESSOR_GFX1036;
+       if (strcmp (name, "gfx1100") == 0)
+ 	return gcn_arch == PROCESSOR_GFX1100;
+       if (strcmp (name, "gfx1103") == 0)
+ 	return gcn_arch == PROCESSOR_GFX1103;
        return 0;
      default:
        gcc_unreachable ();
*************** gcn_compute_frame_offsets (void)
*** 3048,3054 ****
      if ((df_regs_ever_live_p (regno) && !call_used_or_fixed_reg_p (regno))
  	|| ((regno & ~1) == HARD_FRAME_POINTER_REGNUM
  	    && frame_pointer_needed))
!       offsets->callee_saves += (VGPR_REGNO_P (regno) ? 256 : 4);
  
    /* Round up to 64-bit boundary to maintain stack alignment.  */
    offsets->callee_saves = (offsets->callee_saves + 7) & ~7;
--- 3095,3102 ----
      if ((df_regs_ever_live_p (regno) && !call_used_or_fixed_reg_p (regno))
  	|| ((regno & ~1) == HARD_FRAME_POINTER_REGNUM
  	    && frame_pointer_needed))
!       offsets->callee_saves += (VGPR_REGNO_P (regno)
! 			       	|| AVGPR_REGNO_P (regno) ? 256 : 4);
  
    /* Round up to 64-bit boundary to maintain stack alignment.  */
    offsets->callee_saves = (offsets->callee_saves + 7) & ~7;
*************** gcn_expand_epilogue (void)
*** 3586,3606 ****
        /* Assume that an exit value compatible with gcn-run is expected.
           That is, the third input parameter is an int*.
  
!          We can't allocate any new registers, but the kernarg_reg is
!          dead after this, so we'll use that.  */
        rtx kernarg_reg = gen_rtx_REG (DImode, cfun->machine->args.reg
  				     [KERNARG_SEGMENT_PTR_ARG]);
        rtx retptr_mem = gen_rtx_MEM (DImode,
  				    gen_rtx_PLUS (DImode, kernarg_reg,
  						  GEN_INT (16)));
        set_mem_addr_space (retptr_mem, ADDR_SPACE_SCALAR_FLAT);
!       emit_move_insn (kernarg_reg, retptr_mem);
  
!       rtx retval_mem = gen_rtx_MEM (SImode, kernarg_reg);
!       rtx scalar_retval = gen_rtx_REG (SImode, FIRST_PARM_REG);
!       set_mem_addr_space (retval_mem, ADDR_SPACE_SCALAR_FLAT);
!       emit_move_insn (scalar_retval, gen_rtx_REG (SImode, RETURN_VALUE_REG));
!       emit_move_insn (retval_mem, scalar_retval);
      }
  
    emit_jump_insn (gen_gcn_return ());
--- 3634,3656 ----
        /* Assume that an exit value compatible with gcn-run is expected.
           That is, the third input parameter is an int*.
  
!          We can't allocate any new registers, but the dispatch_ptr and
! 	 kernarg_reg are dead after this, so we'll use those.  */
!       rtx dispatch_ptr_reg = gen_rtx_REG (DImode, cfun->machine->args.reg
! 					  [DISPATCH_PTR_ARG]);
        rtx kernarg_reg = gen_rtx_REG (DImode, cfun->machine->args.reg
  				     [KERNARG_SEGMENT_PTR_ARG]);
        rtx retptr_mem = gen_rtx_MEM (DImode,
  				    gen_rtx_PLUS (DImode, kernarg_reg,
  						  GEN_INT (16)));
        set_mem_addr_space (retptr_mem, ADDR_SPACE_SCALAR_FLAT);
!       emit_move_insn (dispatch_ptr_reg, retptr_mem);
  
!       rtx retval_addr = gen_rtx_REG (DImode, FIRST_VPARM_REG + 2);
!       emit_move_insn (retval_addr, dispatch_ptr_reg);
!       rtx retval_mem = gen_rtx_MEM (SImode, retval_addr);
!       set_mem_addr_space (retval_mem, ADDR_SPACE_FLAT);
!       emit_move_insn (retval_mem, gen_rtx_REG (SImode, RETURN_VALUE_REG));
      }
  
    emit_jump_insn (gen_gcn_return ());
*************** gcn_trampoline_init (rtx m_tramp, tree f
*** 3772,3777 ****
--- 3822,3868 ----
  					      TRAMPOLINE_SIZE)));
  }
  
+ /* Implement TARGET_EXPAND_DIVMOD_LIBFUNC.
+ 
+    There are divmod libfuncs for all modes except TImode.  They return the
+    two values packed into a larger integer/vector.  */
+ 
+ void
+ gcn_expand_divmod_libfunc (rtx libfunc, machine_mode mode, rtx op0, rtx op1,
+ 			   rtx *quot, rtx *rem)
+ {
+   machine_mode innermode = (VECTOR_MODE_P (mode)
+ 			    ? GET_MODE_INNER (mode) : mode);
+   machine_mode wideinnermode = VOIDmode;
+   machine_mode widemode = VOIDmode;
+ 
+   switch (innermode)
+     {
+     case E_QImode:
+     case E_HImode:
+     case E_SImode:
+       wideinnermode = DImode;
+       break;
+     case E_DImode:
+       wideinnermode = TImode;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   if (VECTOR_MODE_P (mode))
+     widemode = VnMODE (GET_MODE_NUNITS (mode), wideinnermode);
+   else
+     widemode = wideinnermode;
+ 
+   emit_library_call_value (libfunc, gen_rtx_REG (widemode, RETURN_VALUE_REG),
+ 			   LCT_NORMAL, widemode, op0, mode, op1, mode);
+ 
+   *quot = gen_rtx_REG (mode, RETURN_VALUE_REG);
+   *rem = gen_rtx_REG (mode,
+ 		      RETURN_VALUE_REG + (wideinnermode == TImode ? 2 : 1));
+ }
+ 
  /* }}}  */
  /* {{{ Miscellaneous.  */
  
*************** gcn_memory_move_cost (machine_mode mode,
*** 3950,3955 ****
--- 4041,4051 ----
        if (in)
  	return (LOAD_COST + 2) * nregs;
        return STORE_COST * nregs;
+     case AVGPR_REGS:
+     case ALL_VGPR_REGS:
+       if (in)
+ 	return (LOAD_COST + (TARGET_CDNA2_PLUS ? 2 : 4)) * nregs;
+       return (STORE_COST + (TARGET_CDNA2_PLUS ? 0 : 2)) * nregs;
      case ALL_REGS:
      case ALL_GPR_REGS:
      case SRCDST_REGS:
*************** gcn_memory_move_cost (machine_mode mode,
*** 3969,3974 ****
--- 4065,4079 ----
  static int
  gcn_register_move_cost (machine_mode, reg_class_t dst, reg_class_t src)
  {
+   if (src == AVGPR_REGS)
+     {
+       if (dst == AVGPR_REGS)
+ 	return TARGET_CDNA1 ? 6 : 2;
+       if (dst != VGPR_REGS)
+ 	return 6;
+     }
+   if (dst == AVGPR_REGS && src != VGPR_REGS)
+     return 6;
    /* Increase cost of moving from and to vector registers.  While this is
       fast in hardware (I think), it has hidden cost of setting up the exec
       flags.  */
*************** gcn_init_libfuncs (void)
*** 4210,4215 ****
--- 4315,4521 ----
    set_optab_libfunc (popcount_optab, TImode, "__popcountti2");
    set_optab_libfunc (parity_optab, TImode, "__parityti2");
    set_optab_libfunc (bswap_optab, TImode, "__bswapti2");
+ 
+   set_optab_libfunc (sdivmod_optab, SImode, "__divmodsi4");
+   set_optab_libfunc (udivmod_optab, SImode, "__udivmodsi4");
+   set_optab_libfunc (sdivmod_optab, DImode, "__divmoddi4");
+   set_optab_libfunc (udivmod_optab, DImode, "__udivmoddi4");
+ 
+   set_optab_libfunc (sdiv_optab, V2QImode, "__divv2qi3");
+   set_optab_libfunc (udiv_optab, V2QImode, "__udivv2qi3");
+   set_optab_libfunc (smod_optab, V2QImode, "__modv2qi3");
+   set_optab_libfunc (umod_optab, V2QImode, "__umodv2qi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V2QImode, "__divmodv2qi4");
+   set_optab_libfunc (udivmod_optab, V2QImode, "__udivmodv2qi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V4QImode, "__divv4qi3");
+   set_optab_libfunc (udiv_optab, V4QImode, "__udivv4qi3");
+   set_optab_libfunc (smod_optab, V4QImode, "__modv4qi3");
+   set_optab_libfunc (umod_optab, V4QImode, "__umodv4qi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V4QImode, "__divmodv4qi4");
+   set_optab_libfunc (udivmod_optab, V4QImode, "__udivmodv4qi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V8QImode, "__divv8qi3");
+   set_optab_libfunc (udiv_optab, V8QImode, "__udivv8qi3");
+   set_optab_libfunc (smod_optab, V8QImode, "__modv8qi3");
+   set_optab_libfunc (umod_optab, V8QImode, "__umodv8qi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V8QImode, "__divmodv8qi4");
+   set_optab_libfunc (udivmod_optab, V8QImode, "__udivmodv8qi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V16QImode, "__divv16qi3");
+   set_optab_libfunc (udiv_optab, V16QImode, "__udivv16qi3");
+   set_optab_libfunc (smod_optab, V16QImode, "__modv16qi3");
+   set_optab_libfunc (umod_optab, V16QImode, "__umodv16qi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V16QImode, "__divmodv16qi4");
+   set_optab_libfunc (udivmod_optab, V16QImode, "__udivmodv16qi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V32QImode, "__divv32qi3");
+   set_optab_libfunc (udiv_optab, V32QImode, "__udivv32qi3");
+   set_optab_libfunc (smod_optab, V32QImode, "__modv32qi3");
+   set_optab_libfunc (umod_optab, V32QImode, "__umodv32qi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V32QImode, "__divmodv32qi4");
+   set_optab_libfunc (udivmod_optab, V32QImode, "__udivmodv32qi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V64QImode, "__divv64qi3");
+   set_optab_libfunc (udiv_optab, V64QImode, "__udivv64qi3");
+   set_optab_libfunc (smod_optab, V64QImode, "__modv64qi3");
+   set_optab_libfunc (umod_optab, V64QImode, "__umodv64qi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V64QImode, "__divmodv64qi4");
+   set_optab_libfunc (udivmod_optab, V64QImode, "__udivmodv64qi4");
+ #endif
+ 
+   set_optab_libfunc (sdiv_optab, V2HImode, "__divv2hi3");
+   set_optab_libfunc (udiv_optab, V2HImode, "__udivv2hi3");
+   set_optab_libfunc (smod_optab, V2HImode, "__modv2hi3");
+   set_optab_libfunc (umod_optab, V2HImode, "__umodv2hi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V2HImode, "__divmodv2hi4");
+   set_optab_libfunc (udivmod_optab, V2HImode, "__udivmodv2hi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V4HImode, "__divv4hi3");
+   set_optab_libfunc (udiv_optab, V4HImode, "__udivv4hi3");
+   set_optab_libfunc (smod_optab, V4HImode, "__modv4hi3");
+   set_optab_libfunc (umod_optab, V4HImode, "__umodv4hi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V4HImode, "__divmodv4hi4");
+   set_optab_libfunc (udivmod_optab, V4HImode, "__udivmodv4hi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V8HImode, "__divv8hi3");
+   set_optab_libfunc (udiv_optab, V8HImode, "__udivv8hi3");
+   set_optab_libfunc (smod_optab, V8HImode, "__modv8hi3");
+   set_optab_libfunc (umod_optab, V8HImode, "__umodv8hi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V8HImode, "__divmodv8hi4");
+   set_optab_libfunc (udivmod_optab, V8HImode, "__udivmodv8hi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V16HImode, "__divv16hi3");
+   set_optab_libfunc (udiv_optab, V16HImode, "__udivv16hi3");
+   set_optab_libfunc (smod_optab, V16HImode, "__modv16hi3");
+   set_optab_libfunc (umod_optab, V16HImode, "__umodv16hi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V16HImode, "__divmodv16hi4");
+   set_optab_libfunc (udivmod_optab, V16HImode, "__udivmodv16hi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V32HImode, "__divv32hi3");
+   set_optab_libfunc (udiv_optab, V32HImode, "__udivv32hi3");
+   set_optab_libfunc (smod_optab, V32HImode, "__modv32hi3");
+   set_optab_libfunc (umod_optab, V32HImode, "__umodv32hi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V32HImode, "__divmodv32hi4");
+   set_optab_libfunc (udivmod_optab, V32HImode, "__udivmodv32hi4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V64HImode, "__divv64hi3");
+   set_optab_libfunc (udiv_optab, V64HImode, "__udivv64hi3");
+   set_optab_libfunc (smod_optab, V64HImode, "__modv64hi3");
+   set_optab_libfunc (umod_optab, V64HImode, "__umodv64hi3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V64HImode, "__divmodv64hi4");
+   set_optab_libfunc (udivmod_optab, V64HImode, "__udivmodv64hi4");
+ #endif
+ 
+   set_optab_libfunc (sdiv_optab, V2SImode, "__divv2si3");
+   set_optab_libfunc (udiv_optab, V2SImode, "__udivv2si3");
+   set_optab_libfunc (smod_optab, V2SImode, "__modv2si3");
+   set_optab_libfunc (umod_optab, V2SImode, "__umodv2si3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V2SImode, "__divmodv2si4");
+   set_optab_libfunc (udivmod_optab, V2SImode, "__udivmodv2si4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V4SImode, "__divv4si3");
+   set_optab_libfunc (udiv_optab, V4SImode, "__udivv4si3");
+   set_optab_libfunc (smod_optab, V4SImode, "__modv4si3");
+   set_optab_libfunc (umod_optab, V4SImode, "__umodv4si3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V4SImode, "__divmodv4si4");
+   set_optab_libfunc (udivmod_optab, V4SImode, "__udivmodv4si4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V8SImode, "__divv8si3");
+   set_optab_libfunc (udiv_optab, V8SImode, "__udivv8si3");
+   set_optab_libfunc (smod_optab, V8SImode, "__modv8si3");
+   set_optab_libfunc (umod_optab, V8SImode, "__umodv8si3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V8SImode, "__divmodv8si4");
+   set_optab_libfunc (udivmod_optab, V8SImode, "__udivmodv8si4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V16SImode, "__divv16si3");
+   set_optab_libfunc (udiv_optab, V16SImode, "__udivv16si3");
+   set_optab_libfunc (smod_optab, V16SImode, "__modv16si3");
+   set_optab_libfunc (umod_optab, V16SImode, "__umodv16si3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V16SImode, "__divmodv16si4");
+   set_optab_libfunc (udivmod_optab, V16SImode, "__udivmodv16si4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V32SImode, "__divv32si3");
+   set_optab_libfunc (udiv_optab, V32SImode, "__udivv32si3");
+   set_optab_libfunc (smod_optab, V32SImode, "__modv32si3");
+   set_optab_libfunc (umod_optab, V32SImode, "__umodv32si3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V32SImode, "__divmodv32si4");
+   set_optab_libfunc (udivmod_optab, V32SImode, "__udivmodv32si4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V64SImode, "__divv64si3");
+   set_optab_libfunc (udiv_optab, V64SImode, "__udivv64si3");
+   set_optab_libfunc (smod_optab, V64SImode, "__modv64si3");
+   set_optab_libfunc (umod_optab, V64SImode, "__umodv64si3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V64SImode, "__divmodv64si4");
+   set_optab_libfunc (udivmod_optab, V64SImode, "__udivmodv64si4");
+ #endif
+ 
+   set_optab_libfunc (sdiv_optab, V2DImode, "__divv2di3");
+   set_optab_libfunc (udiv_optab, V2DImode, "__udivv2di3");
+   set_optab_libfunc (smod_optab, V2DImode, "__modv2di3");
+   set_optab_libfunc (umod_optab, V2DImode, "__umodv2di3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V2DImode, "__divmodv2di4");
+   set_optab_libfunc (udivmod_optab, V2DImode, "__udivmodv2di4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V4DImode, "__divv4di3");
+   set_optab_libfunc (udiv_optab, V4DImode, "__udivv4di3");
+   set_optab_libfunc (smod_optab, V4DImode, "__modv4di3");
+   set_optab_libfunc (umod_optab, V4DImode, "__umodv4di3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V4DImode, "__divmodv4di4");
+   set_optab_libfunc (udivmod_optab, V4DImode, "__udivmodv4di4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V8DImode, "__divv8di3");
+   set_optab_libfunc (udiv_optab, V8DImode, "__udivv8di3");
+   set_optab_libfunc (smod_optab, V8DImode, "__modv8di3");
+   set_optab_libfunc (umod_optab, V8DImode, "__umodv8di3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V8DImode, "__divmodv8di4");
+   set_optab_libfunc (udivmod_optab, V8DImode, "__udivmodv8di4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V16DImode, "__divv16di3");
+   set_optab_libfunc (udiv_optab, V16DImode, "__udivv16di3");
+   set_optab_libfunc (smod_optab, V16DImode, "__modv16di3");
+   set_optab_libfunc (umod_optab, V16DImode, "__umodv16di3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V16DImode, "__divmodv16di4");
+   set_optab_libfunc (udivmod_optab, V16DImode, "__udivmodv16di4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V32DImode, "__divv32di3");
+   set_optab_libfunc (udiv_optab, V32DImode, "__udivv32di3");
+   set_optab_libfunc (smod_optab, V32DImode, "__modv32di3");
+   set_optab_libfunc (umod_optab, V32DImode, "__umodv32di3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V32DImode, "__divmodv32di4");
+   set_optab_libfunc (udivmod_optab, V32DImode, "__udivmodv32di4");
+ #endif
+   set_optab_libfunc (sdiv_optab, V64DImode, "__divv64di3");
+   set_optab_libfunc (udiv_optab, V64DImode, "__udivv64di3");
+   set_optab_libfunc (smod_optab, V64DImode, "__modv64di3");
+   set_optab_libfunc (umod_optab, V64DImode, "__umodv64di3");
+ #if 0
+   set_optab_libfunc (sdivmod_optab, V64DImode, "__divmodv64di4");
+   set_optab_libfunc (udivmod_optab, V64DImode, "__udivmodv64di4");
+ #endif
  }
  
  /* Expand the CMP_SWAP GCN builtins.  We have our own versions that do
*************** gcn_expand_builtin_1 (tree exp, rtx targ
*** 4625,4634 ****
  	  }
  	return ptr;
        }
      case GCN_BUILTIN_FIRST_CALL_THIS_THREAD_P:
        {
! 	/* Stash a marker in the unused upper 16 bits of s[0:1] to indicate
! 	   whether it was the first call.  */
  	rtx result = gen_reg_rtx (BImode);
  	emit_move_insn (result, const0_rtx);
  	if (cfun->machine->args.reg[QUEUE_PTR_ARG] >= 0)
--- 4931,4953 ----
  	  }
  	return ptr;
        }
+     case GCN_BUILTIN_DISPATCH_PTR:
+       {
+ 	rtx ptr;
+ 	if (cfun->machine->args.reg[DISPATCH_PTR_ARG] >= 0)
+ 	   ptr = gen_rtx_REG (DImode,
+ 			      cfun->machine->args.reg[DISPATCH_PTR_ARG]);
+ 	else
+ 	  {
+ 	    ptr = gen_reg_rtx (DImode);
+ 	    emit_move_insn (ptr, const0_rtx);
+ 	  }
+ 	return ptr;
+       }
      case GCN_BUILTIN_FIRST_CALL_THIS_THREAD_P:
        {
! 	/* Stash a marker in the unused upper 16 bits of QUEUE_PTR_ARG to
! 	   indicate whether it was the first call.  */
  	rtx result = gen_reg_rtx (BImode);
  	emit_move_insn (result, const0_rtx);
  	if (cfun->machine->args.reg[QUEUE_PTR_ARG] >= 0)
*************** gcn_vectorize_vec_perm_const (machine_mo
*** 4794,4800 ****
  			      rtx dst, rtx src0, rtx src1,
  			      const vec_perm_indices & sel)
  {
!   if (vmode != op_mode)
      return false;
  
    unsigned int nelt = GET_MODE_NUNITS (vmode);
--- 5113,5121 ----
  			      rtx dst, rtx src0, rtx src1,
  			      const vec_perm_indices & sel)
  {
!   if (vmode != op_mode
!       || !VECTOR_MODE_P (vmode)
!       || GET_MODE_INNER (vmode) == TImode)
      return false;
  
    unsigned int nelt = GET_MODE_NUNITS (vmode);
*************** gcn_vectorize_vec_perm_const (machine_mo
*** 4803,4821 ****
    gcc_assert (nelt <= 64);
    gcc_assert (sel.length () == nelt);
  
-   if (!dst)
-     {
-       /* All vector permutations are possible on this architecture,
-          with varying degrees of efficiency depending on the permutation. */
-       return true;
-     }
- 
    unsigned int perm[64];
    for (unsigned int i = 0; i < nelt; ++i)
      perm[i] = sel[i] & (2 * nelt - 1);
    for (unsigned int i = nelt; i < 64; ++i)
      perm[i] = 0;
  
    src0 = force_reg (vmode, src0);
    src1 = force_reg (vmode, src1);
  
--- 5124,5147 ----
    gcc_assert (nelt <= 64);
    gcc_assert (sel.length () == nelt);
  
    unsigned int perm[64];
    for (unsigned int i = 0; i < nelt; ++i)
      perm[i] = sel[i] & (2 * nelt - 1);
    for (unsigned int i = nelt; i < 64; ++i)
      perm[i] = 0;
  
+   /* RDNA devices can only do permutations within each group of 32-lanes.
+      Reject permutations that cross the boundary.  */
+   if (TARGET_RDNA2_PLUS)
+     for (unsigned int i = 0; i < nelt; i++)
+       if (i < 31 ? perm[i] > 31 : perm[i] < 32)
+ 	return false;
+ 
+   /* All vector permutations are possible on other architectures,
+      with varying degrees of efficiency depending on the permutation. */
+   if (!dst)
+     return true;
+ 
    src0 = force_reg (vmode, src0);
    src1 = force_reg (vmode, src1);
  
*************** gcn_vector_mode_supported_p (machine_mod
*** 4893,4899 ****
  	  || mode == V4SFmode || mode == V4DFmode
  	  || mode == V2QImode || mode == V2HImode
  	  || mode == V2SImode || mode == V2DImode
! 	  || mode == V2SFmode || mode == V2DFmode);
  }
  
  /* Implement TARGET_VECTORIZE_PREFERRED_SIMD_MODE.
--- 5219,5231 ----
  	  || mode == V4SFmode || mode == V4DFmode
  	  || mode == V2QImode || mode == V2HImode
  	  || mode == V2SImode || mode == V2DImode
! 	  || mode == V2SFmode || mode == V2DFmode
! 	  /* TImode vectors are allowed to exist for divmod, but there
! 	     are almost no instructions defined for them, and the
! 	     autovectorizer does not use them.  */
! 	  || mode == V64TImode || mode == V32TImode
! 	  || mode == V16TImode || mode == V8TImode
! 	  || mode == V4TImode || mode == V2TImode);
  }
  
  /* Implement TARGET_VECTORIZE_PREFERRED_SIMD_MODE.
*************** gcn_vector_mode_supported_p (machine_mod
*** 4903,4908 ****
--- 5235,5278 ----
  static machine_mode
  gcn_vectorize_preferred_simd_mode (scalar_mode mode)
  {
+   bool v32;
+   if (gcn_preferred_vectorization_factor == 32)
+     v32 = true;
+   else if (gcn_preferred_vectorization_factor == 64)
+     v32 = false;
+   else if (gcn_preferred_vectorization_factor != -1)
+     gcc_unreachable ();
+   else if (TARGET_RDNA2_PLUS)
+   /* RDNA devices have 32-lane vectors with limited support for 64-bit vectors
+      (in particular, permute operations are only available for cases that don't
+      span the 32-lane boundary).
+ 
+      From the RDNA3 manual: "Hardware may choose to skip either half if the
+      EXEC mask for that half is all zeros...". This means that preferring
+      32-lanes is a good stop-gap until we have proper wave32 support.  */
+     v32 = true;
+   else
+     v32 = false;
+ 
+   if (v32)
+     switch (mode)
+       {
+       case E_QImode:
+ 	return V32QImode;
+       case E_HImode:
+ 	return V32HImode;
+       case E_SImode:
+ 	return V32SImode;
+       case E_DImode:
+ 	return V32DImode;
+       case E_SFmode:
+ 	return V32SFmode;
+       case E_DFmode:
+ 	return V32DFmode;
+       default:
+ 	return word_mode;
+       }
+ 
    switch (mode)
      {
      case E_QImode:
*************** char *
*** 5130,5135 ****
--- 5500,5507 ----
  gcn_expand_dpp_shr_insn (machine_mode mode, const char *insn,
  			 int unspec, int shift)
  {
+   gcc_checking_assert (!TARGET_RDNA2_PLUS);
+ 
    static char buf[128];
    const char *dpp;
    const char *vcc_in = "";
*************** gcn_expand_dpp_shr_insn (machine_mode mo
*** 5191,5196 ****
--- 5563,5570 ----
  rtx
  gcn_expand_reduc_scalar (machine_mode mode, rtx src, int unspec)
  {
+   gcc_checking_assert (!TARGET_RDNA2_PLUS);
+ 
    machine_mode orig_mode = mode;
    machine_mode scalar_mode = GET_MODE_INNER (mode);
    int vf = GET_MODE_NUNITS (mode);
*************** gcn_expand_reduc_scalar (machine_mode mo
*** 5247,5253 ****
  	{
  	  rtx tmp = gen_reg_rtx (mode);
  	  emit_insn (gen_dpp_move (mode, tmp, in, shift_val));
! 	  emit_insn (gen_rtx_SET (out, gen_rtx_fmt_ee (code, mode, tmp, in)));
  	}
        else
  	{
--- 5621,5635 ----
  	{
  	  rtx tmp = gen_reg_rtx (mode);
  	  emit_insn (gen_dpp_move (mode, tmp, in, shift_val));
! 	  rtx insn = gen_rtx_SET (out, gen_rtx_fmt_ee (code, mode, tmp, in));
! 	  if (scalar_mode == DImode)
! 	    {
! 	      rtx clobber = gen_rtx_CLOBBER (VOIDmode,
! 					     gen_rtx_REG (DImode, VCC_REG));
! 	      insn = gen_rtx_PARALLEL (VOIDmode,
! 				       gen_rtvec (2, insn, clobber));
! 	    }
! 	  emit_insn (insn);
  	}
        else
  	{
*************** gcn_vectorize_builtin_vectorized_functio
*** 5361,5368 ****
  
    machine_mode out_mode = TYPE_MODE (TREE_TYPE (type_out));
    int out_n = TYPE_VECTOR_SUBPARTS (type_out);
-   machine_mode in_mode = TYPE_MODE (TREE_TYPE (type_in));
-   int in_n = TYPE_VECTOR_SUBPARTS (type_in);
    combined_fn cfn = combined_fn (fn);
  
    /* Keep this consistent with the list of vectorized math routines.  */
--- 5743,5748 ----
*************** gcn_vmem_insn_p (attr_type type)
*** 5462,5467 ****
--- 5842,5848 ----
      case TYPE_MUBUF:
      case TYPE_MTBUF:
      case TYPE_FLAT:
+     case TYPE_VOP3P_MAI:
        return true;
      case TYPE_UNKNOWN:
      case TYPE_SOP1:
*************** gcn_md_reorg (void)
*** 5701,5707 ****
  		FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST)
  		  {
  		    const_rtx x = *iter;
! 		    if (REG_P (x) && VGPR_REGNO_P (REGNO (x)))
  		      {
  			if (VECTOR_MODE_P (GET_MODE (x)))
  			  {
--- 6082,6089 ----
  		FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST)
  		  {
  		    const_rtx x = *iter;
! 		    if (REG_P (x) && (VGPR_REGNO_P (REGNO (x))
! 				      || AVGPR_REGNO_P (REGNO (x))))
  		      {
  			if (VECTOR_MODE_P (GET_MODE (x)))
  			  {
*************** gcn_md_reorg (void)
*** 5857,5873 ****
  	  if (!prev_insn->insn)
  	    continue;
  
  	  /* VALU writes SGPR followed by VMEM reading the same SGPR
  	     requires 5 wait states.  */
  	  if ((prev_insn->age + nops_rqd) < 5
  	      && prev_insn->unit == UNIT_VECTOR
! 	      && gcn_vmem_insn_p (itype))
! 	    {
! 	      HARD_REG_SET regs = prev_insn->writes & ireads;
! 	      if (hard_reg_set_intersect_p
! 		  (regs, reg_class_contents[(int) SGPR_REGS]))
! 		nops_rqd = 5 - prev_insn->age;
! 	    }
  
  	  /* VALU sets VCC/EXEC followed by VALU uses VCCZ/EXECZ
  	     requires 5 wait states.  */
--- 6239,6254 ----
  	  if (!prev_insn->insn)
  	    continue;
  
+ 	  HARD_REG_SET depregs = prev_insn->writes & ireads;
+ 
  	  /* VALU writes SGPR followed by VMEM reading the same SGPR
  	     requires 5 wait states.  */
  	  if ((prev_insn->age + nops_rqd) < 5
  	      && prev_insn->unit == UNIT_VECTOR
! 	      && gcn_vmem_insn_p (itype)
! 	      && hard_reg_set_intersect_p
! 		   (depregs, reg_class_contents[(int) SGPR_REGS]))
! 	    nops_rqd = 5 - prev_insn->age;
  
  	  /* VALU sets VCC/EXEC followed by VALU uses VCCZ/EXECZ
  	     requires 5 wait states.  */
*************** gcn_md_reorg (void)
*** 5889,5903 ****
  	     SGPR/VCC as lane select requires 4 wait states.  */
  	  if ((prev_insn->age + nops_rqd) < 4
  	      && prev_insn->unit == UNIT_VECTOR
! 	      && get_attr_laneselect (insn) == LANESELECT_YES)
! 	    {
! 	      HARD_REG_SET regs = prev_insn->writes & ireads;
! 	      if (hard_reg_set_intersect_p
! 		  (regs, reg_class_contents[(int) SGPR_REGS])
  		  || hard_reg_set_intersect_p
! 		     (regs, reg_class_contents[(int) VCC_CONDITIONAL_REG]))
! 		nops_rqd = 4 - prev_insn->age;
! 	    }
  
  	  /* VALU writes VGPR followed by VALU_DPP reading that VGPR
  	     requires 2 wait states.  */
--- 6270,6281 ----
  	     SGPR/VCC as lane select requires 4 wait states.  */
  	  if ((prev_insn->age + nops_rqd) < 4
  	      && prev_insn->unit == UNIT_VECTOR
! 	      && get_attr_laneselect (insn) == LANESELECT_YES
! 	      && (hard_reg_set_intersect_p
! 		    (depregs, reg_class_contents[(int) SGPR_REGS])
  		  || hard_reg_set_intersect_p
! 		       (depregs, reg_class_contents[(int) VCC_CONDITIONAL_REG])))
! 	    nops_rqd = 4 - prev_insn->age;
  
  	  /* VALU writes VGPR followed by VALU_DPP reading that VGPR
  	     requires 2 wait states.  */
*************** gcn_md_reorg (void)
*** 5905,5913 ****
  	      && prev_insn->unit == UNIT_VECTOR
  	      && itype == TYPE_VOP_DPP)
  	    {
- 	      HARD_REG_SET regs = prev_insn->writes & ireads;
  	      if (hard_reg_set_intersect_p
! 		  (regs, reg_class_contents[(int) VGPR_REGS]))
  		nops_rqd = 2 - prev_insn->age;
  	    }
  
--- 6283,6290 ----
  	      && prev_insn->unit == UNIT_VECTOR
  	      && itype == TYPE_VOP_DPP)
  	    {
  	      if (hard_reg_set_intersect_p
! 		  (depregs, reg_class_contents[(int) VGPR_REGS]))
  		nops_rqd = 2 - prev_insn->age;
  	    }
  
*************** gcn_md_reorg (void)
*** 5926,5931 ****
--- 6303,6337 ----
  		  (prev_insn->writes,
  		   reg_class_contents[(int)VCC_CONDITIONAL_REG])))
  	    nops_rqd = ivccwait - prev_insn->age;
+ 
+ 	  /* CDNA1: write VGPR before v_accvgpr_write reads it.  */
+ 	  if (TARGET_CDNA1
+ 	      && (prev_insn->age + nops_rqd) < 2
+ 	      && hard_reg_set_interse